[med-svn] [praat] 04/10: Imported Upstream version 5.4.18

Rafael Laboissière rlaboiss-guest at moszumanska.debian.org
Mon Jun 13 07:46:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

rlaboiss-guest pushed a commit to branch master
in repository praat.

commit 78ff604ca1d64d6788c4ba0a7dc342d4beeba5c0
Author: Rafael Laboissiere <rafael at laboissiere.net>
Date:   Sun Jun 12 13:40:16 2016 -0300

    Imported Upstream version 5.4.18
---
 EEG/EEG.cpp                                        |   322 +-
 EEG/EEG.h                                          |    19 +-
 EEG/EEGWindow.cpp                                  |    24 +-
 EEG/EEGWindow.h                                    |     4 +-
 EEG/EEG_def.h                                      |     5 +-
 EEG/ERP.cpp                                        |    34 +-
 EEG/ERP.h                                          |     5 +-
 EEG/ERPTier.cpp                                    |   169 +-
 EEG/ERPTier.h                                      |    23 +-
 EEG/ERPTier_def.h                                  |    11 +-
 EEG/ERPWindow.cpp                                  |    62 +-
 EEG/ERPWindow.h                                    |     4 +-
 EEG/praat_EEG.cpp                                  |   331 +-
 FFNet/FFNet.cpp                                    |   267 +-
 FFNet/FFNet.h                                      |    27 +-
 FFNet/FFNet_Activation_Categories.cpp              |    36 +-
 FFNet/FFNet_Activation_Categories.h                |     8 +-
 FFNet/FFNet_Eigen.cpp                              |    32 +-
 FFNet/FFNet_Eigen.h                                |     4 +-
 FFNet/FFNet_Matrix.cpp                             |    22 +-
 FFNet/FFNet_Matrix.h                               |     6 +-
 FFNet/FFNet_Pattern.cpp                            |     2 +-
 FFNet/FFNet_Pattern.h                              |     2 +-
 FFNet/FFNet_Pattern_Activation.cpp                 |   115 +-
 FFNet/FFNet_Pattern_Activation.h                   |     8 +-
 FFNet/FFNet_Pattern_Categories.cpp                 |    76 +-
 FFNet/FFNet_Pattern_Categories.h                   |     8 +-
 FFNet/FFNet_def.h                                  |    10 +-
 FFNet/manual_FFNet.cpp                             |    56 +-
 FFNet/praat_FFNet_init.cpp                         |   156 +-
 LPC/Cepstrogram.cpp                                |   167 +-
 LPC/Cepstrogram.h                                  |    36 +-
 LPC/Cepstrum.cpp                                   |   227 +-
 LPC/Cepstrum.h                                     |    25 +-
 LPC/Cepstrum_and_Spectrum.cpp                      |    93 +-
 LPC/Cepstrum_and_Spectrum.h                        |    28 +-
 LPC/Cepstrumc.cpp                                  |    21 +-
 LPC/Cepstrumc.h                                    |     9 +-
 LPC/Cepstrumc_def.h                                |    15 +-
 LPC/Formant_extensions.cpp                         |    26 +-
 LPC/Formant_extensions.h                           |     4 +-
 LPC/LPC.cpp                                        |    40 +-
 LPC/LPC.h                                          |    20 +-
 LPC/LPC_and_Cepstrumc.cpp                          |    12 +-
 LPC/LPC_and_Cepstrumc.h                            |     6 +-
 LPC/LPC_and_Formant.cpp                            |    20 +-
 LPC/LPC_and_Formant.h                              |     9 +-
 LPC/LPC_and_LFCC.cpp                               |    17 +-
 LPC/LPC_and_LFCC.h                                 |     6 +-
 LPC/LPC_and_Polynomial.cpp                         |    10 +-
 LPC/LPC_and_Polynomial.h                           |     6 +-
 LPC/LPC_and_Tube.cpp                               |    60 +-
 LPC/LPC_and_Tube.h                                 |     8 +-
 LPC/LPC_to_Spectrogram.cpp                         |    10 +-
 LPC/LPC_to_Spectrogram.h                           |     4 +-
 LPC/LPC_to_Spectrum.cpp                            |    20 +-
 LPC/LPC_to_Spectrum.h                              |    10 +-
 LPC/Sound_and_Cepstrum.cpp                         |    36 +-
 LPC/Sound_and_Cepstrum.h                           |     8 +-
 LPC/Sound_and_LPC.cpp                              |   127 +-
 LPC/Sound_and_LPC.h                                |    25 +-
 LPC/Sound_and_LPC_robust.cpp                       |    80 +-
 LPC/Sound_and_LPC_robust.h                         |     6 +-
 LPC/Tube.cpp                                       |    31 +-
 LPC/Tube.h                                         |    24 +-
 LPC/VocalTractTier.cpp                             |    95 +-
 LPC/VocalTractTier.h                               |    18 +-
 LPC/VocalTractTier_def.h                           |     6 +-
 LPC/manual_LPC.cpp                                 |    12 +-
 LPC/praat_LPC_init.cpp                             |   150 +-
 README.md                                          |   148 -
 artsynth/Art_Speaker_to_VocalTract.cpp             |    28 +-
 artsynth/Art_Speaker_to_VocalTract.h               |     4 +-
 artsynth/Articulation.cpp                          |     6 +-
 artsynth/Articulation.h                            |     5 +-
 artsynth/Articulation_def.h                        |     4 +-
 artsynth/Artword.cpp                               |    22 +-
 artsynth/Artword.h                                 |    19 +-
 artsynth/ArtwordEditor.cpp                         |    57 +-
 artsynth/ArtwordEditor.h                           |     6 +-
 artsynth/Artword_Speaker.cpp                       |    26 +-
 artsynth/Artword_Speaker_Sound.cpp                 |    43 +-
 artsynth/Artword_Speaker_to_Sound.cpp              |   340 +-
 artsynth/Artword_Speaker_to_Sound.h                |    10 +-
 artsynth/Artword_def.h                             |     5 +-
 artsynth/Artword_to_Art.cpp                        |     8 +-
 artsynth/Artword_to_Art.h                          |     4 +-
 artsynth/Delta.cpp                                 |    10 +-
 artsynth/Delta.h                                   |    14 +-
 artsynth/Speaker.cpp                               |     7 +-
 artsynth/Speaker.h                                 |     3 +-
 artsynth/Speaker_def.h                             |    49 +-
 artsynth/Speaker_to_Delta.cpp                      |   206 +-
 artsynth/Speaker_to_Delta.h                        |     2 +-
 artsynth/praat_Artsynth.cpp                        |   165 +-
 contrib/ola/FeatureWeights.cpp                     |   113 +-
 contrib/ola/FeatureWeights.h                       |     7 +-
 contrib/ola/FeatureWeights_def.h                   |     5 +-
 contrib/ola/KNN.cpp                                |   453 +-
 contrib/ola/KNN.h                                  |    19 +-
 contrib/ola/KNN_def.h                              |    16 +-
 contrib/ola/KNN_prune.cpp                          |    30 +-
 contrib/ola/KNN_threads.cpp                        |    26 +-
 contrib/ola/KNN_threads.h                          |     4 +-
 contrib/ola/Pattern_to_Categories_cluster.cpp      |    56 +-
 contrib/ola/Pattern_to_Categories_cluster.h        |     2 +-
 contrib/ola/manual_KNN.cpp                         |     2 +-
 contrib/ola/praat_contrib_Ola_KNN.cpp              |   211 +-
 dwsys/Collection_extensions.cpp                    |   191 +-
 dwsys/Collection_extensions.h                      |    24 +-
 dwsys/Command.cpp                                  |    82 +-
 dwsys/Command.h                                    |    60 +-
 dwsys/DLL.cpp                                      |   226 +
 dwsys/DLL.h                                        |    64 +
 dwsys/DoublyLinkedList.cpp                         |   223 -
 dwsys/DoublyLinkedList.h                           |    67 -
 dwsys/Eigen.cpp                                    |   257 +-
 dwsys/Eigen.h                                      |    65 +-
 dwsys/Eigen_def.h                                  |     2 +-
 dwsys/FileInMemory.cpp                             |   177 +-
 dwsys/FileInMemory.h                               |    48 +-
 dwsys/Graphics_extensions.cpp                      |    14 +-
 dwsys/Index.cpp                                    |    47 +-
 dwsys/Index.h                                      |     8 +-
 dwsys/Index_def.h                                  |    10 +-
 dwsys/Makefile                                     |     2 +-
 dwsys/NUM2.cpp                                     |   817 +-
 dwsys/NUM2.h                                       |   113 +-
 dwsys/NUMf2c.cpp                                   |     6 +-
 dwsys/NUMfft_core.h                                |     1 +
 dwsys/NUMhuber.cpp                                 |    12 +-
 dwsys/NUMsort2.cpp                                 |   227 +-
 dwsys/NUMstring.cpp                                |    65 +-
 dwsys/Permutation.cpp                              |   140 +-
 dwsys/Permutation.h                                |    27 +-
 dwsys/Permutation_and_Index.cpp                    |    14 +-
 dwsys/Permutation_and_Index.h                      |     4 +-
 dwsys/Permutation_def.h                            |     2 +-
 dwsys/SVD.cpp                                      |    75 +-
 dwsys/SVD.h                                        |    22 +-
 dwsys/SVD_def.h                                    |     4 +-
 dwsys/SimpleVector.cpp                             |    24 +-
 dwsys/SimpleVector.h                               |    14 +-
 dwsys/SimpleVector_def.h                           |     4 +-
 dwsys/Simple_extensions.cpp                        |    20 +-
 dwsys/Simple_extensions.h                          |    10 +-
 dwsys/regularExp.cpp                               |     6 +-
 dwtest/pols_50males_format0.Discriminant           |   389 -
 dwtest/runAllTests.praat                           |    20 +-
 dwtest/test_Activation.praat                       |    25 -
 dwtest/test_Confusion.praat                        |     8 +-
 dwtest/test_Covariance.praat                       |    61 -
 dwtest/test_Discriminant.praat                     |    48 +-
 dwtest/test_FFNet.praat                            |    31 -
 dwtest/test_HMM.praat                              |    64 -
 dwtest/test_KlattGrid.praat                        |     7 +-
 dwtest/test_KruskalWallis.praat                    |     7 +-
 dwtest/test_MDS.praat                              |    37 +-
 dwtest/test_OnewayAnova.praat                      |     7 +-
 dwtest/test_Polygon_simplify.praat                 |     4 +
 dwtest/test_Procrustes.praat                       |   263 +-
 dwtest/test_Sound_draw_where.praat                 |     1 -
 dwtest/test_Sound_paint_where.praat                |     2 +-
 dwtest/test_SpeechSynthesizer.praat                |    41 +-
 dwtest/test_TableOfReal_extensions.praat           |     3 +-
 dwtest/test_bss_twoSoundsMixed.praat               |    31 -
 ...est_henzeZirklerMultivariateNormalityTest.praat |     4 +-
 dwtest/test_sigma_ellipse.praat                    |     2 -
 dwtools/Activation.cpp                             |    31 +-
 dwtools/Activation.h                               |    11 +-
 dwtools/AffineTransform.cpp                        |    49 +-
 dwtools/AffineTransform.h                          |    13 +-
 dwtools/AffineTransform_def.h                      |     9 +-
 dwtools/CC.cpp                                     |    97 +-
 dwtools/CC.h                                       |    28 +-
 dwtools/CCA.cpp                                    |   191 +-
 dwtools/CCA.h                                      |    16 +-
 dwtools/CCA_and_Correlation.cpp                    |    43 +-
 dwtools/CCA_and_Correlation.h                      |     4 +-
 dwtools/CCA_def.h                                  |    14 +-
 dwtools/CCs_to_DTW.cpp                             |    60 +-
 dwtools/CCs_to_DTW.h                               |     4 +-
 dwtools/Categories.cpp                             |    75 +-
 dwtools/Categories.h                               |    16 +-
 dwtools/CategoriesEditor.cpp                       |   826 +-
 dwtools/CategoriesEditor.h                         |    36 +-
 dwtools/Categories_and_Strings.cpp                 |    22 +-
 dwtools/Categories_and_Strings.h                   |     6 +-
 dwtools/ClassificationTable.cpp                    |    95 +-
 dwtools/ClassificationTable.h                      |    13 +-
 dwtools/ComplexSpectrogram.cpp                     |    78 +-
 dwtools/ComplexSpectrogram.h                       |    12 +-
 dwtools/Configuration.cpp                          |   231 +-
 dwtools/Configuration.h                            |    39 +-
 dwtools/Configuration_AffineTransform.cpp          |    59 +-
 dwtools/Configuration_AffineTransform.h            |     8 +-
 dwtools/Configuration_and_Procrustes.cpp           |     6 +-
 dwtools/Configuration_and_Procrustes.h             |     4 +-
 dwtools/Confusion.cpp                              |   226 +-
 dwtools/Confusion.h                                |    29 +-
 dwtools/ContingencyTable.cpp                       |    99 +-
 dwtools/ContingencyTable.h                         |    35 +-
 dwtools/DTW.cpp                                    |   404 +-
 dwtools/DTW.h                                      |    41 +-
 dwtools/DTW_and_TextGrid.cpp                       |   114 +-
 dwtools/DTW_and_TextGrid.h                         |    13 +-
 dwtools/DTW_def.h                                  |    19 +-
 dwtools/DataModeler.cpp                            |  1006 +-
 dwtools/DataModeler.h                              |   103 +-
 dwtools/DataModeler_def.h                          |    39 +-
 dwtools/Discriminant.cpp                           |   523 +-
 dwtools/Discriminant.h                             |    52 +-
 dwtools/Discriminant_Pattern_Categories.cpp        |    18 +-
 dwtools/Discriminant_Pattern_Categories.h          |     7 +-
 dwtools/Discriminant_def.h                         |    19 +-
 dwtools/Distance.cpp                               |     8 +-
 dwtools/Distance.h                                 |     4 +-
 dwtools/EEG_extensions.cpp                         |   127 +-
 dwtools/EEG_extensions.h                           |    29 +-
 dwtools/EditDistanceTable.cpp                      |   147 +-
 dwtools/EditDistanceTable.h                        |    38 +-
 dwtools/EditDistanceTable_def.h                    |     8 +-
 dwtools/Eigen_and_Matrix.cpp                       |    58 +-
 dwtools/Eigen_and_Matrix.h                         |    16 +-
 dwtools/Eigen_and_Procrustes.cpp                   |    14 +-
 dwtools/Eigen_and_Procrustes.h                     |     4 +-
 dwtools/Eigen_and_SSCP.cpp                         |    22 +-
 dwtools/Eigen_and_SSCP.h                           |     7 +-
 dwtools/Eigen_and_TableOfReal.cpp                  |    53 +-
 dwtools/Eigen_and_TableOfReal.h                    |    14 +-
 dwtools/Excitations.cpp                            |    68 +-
 dwtools/Excitations.h                              |    24 +-
 dwtools/FilterBank.cpp                             |   283 +-
 dwtools/FilterBank.h                               |    62 +-
 dwtools/FormantGrid_extensions.cpp                 |    52 +-
 dwtools/FormantGrid_extensions.h                   |     2 +-
 dwtools/GaussianMixture.cpp                        |   841 +-
 dwtools/GaussianMixture.h                          |    56 +-
 dwtools/GaussianMixture_def.h                      |     6 +-
 dwtools/HMM.cpp                                    |  1045 +-
 dwtools/HMM.h                                      |   178 +-
 dwtools/HMM_def.h                                  |    35 +-
 dwtools/ICA.cpp                                    |   334 +-
 dwtools/ICA.h                                      |    69 +-
 dwtools/Intensity_extensions.cpp                   |    39 +-
 dwtools/Intensity_extensions.h                     |     8 +-
 dwtools/KlattGrid.cpp                              |  1960 +-
 dwtools/KlattGrid.h                                |   117 +-
 dwtools/KlattGridEditors.cpp                       |   264 +-
 dwtools/KlattGridEditors.h                         |    72 +-
 dwtools/KlattGrid_def.h                            |   150 +-
 dwtools/KlattTable.cpp                             |   165 +-
 dwtools/KlattTable.h                               |    18 +-
 dwtools/LFCC.cpp                                   |     9 +-
 dwtools/LFCC.h                                     |     4 +-
 dwtools/LongSound_extensions.cpp                   |    39 +-
 dwtools/LongSound_extensions.h                     |     7 +-
 dwtools/MDS.cpp                                    |  1851 +-
 dwtools/MDS.h                                      |   522 +-
 dwtools/MFCC.cpp                                   |    35 +-
 dwtools/MFCC.h                                     |    17 +-
 dwtools/Makefile                                   |     5 +-
 dwtools/Matrix_Categories.cpp                      |    23 +-
 dwtools/Matrix_Categories.h                        |     4 +-
 dwtools/Matrix_extensions.cpp                      |   226 +-
 dwtools/Matrix_extensions.h                        |    12 +-
 dwtools/Minimizers.cpp                             |   179 +-
 dwtools/Minimizers.h                               |   123 +-
 dwtools/OptimalCeilingTier.cpp                     |    11 +-
 dwtools/OptimalCeilingTier.h                       |     4 +-
 dwtools/OptimalCeilingTierEditor.cpp               |    10 +-
 dwtools/OptimalCeilingTierEditor.h                 |     4 +-
 dwtools/PCA.cpp                                    |   233 +-
 dwtools/PCA.h                                      |    29 +-
 dwtools/Pattern.cpp                                |    24 +-
 dwtools/Pattern.h                                  |     7 +-
 dwtools/Pitch_extensions.cpp                       |    94 +-
 dwtools/Pitch_extensions.h                         |     8 +-
 dwtools/Polygon_extensions.cpp                     |   489 +-
 dwtools/Polygon_extensions.h                       |    39 +-
 dwtools/Polynomial.cpp                             |   421 +-
 dwtools/Polynomial.h                               |   118 +-
 dwtools/Procrustes.cpp                             |    30 +-
 dwtools/Procrustes.h                               |     5 +-
 dwtools/Procrustes_def.h                           |     7 +-
 dwtools/Proximity.cpp                              |     6 +-
 dwtools/Resonator.cpp                              |    16 +-
 dwtools/Resonator.h                                |    10 +-
 dwtools/SPINET.cpp                                 |    99 +-
 dwtools/SPINET.h                                   |     8 +-
 dwtools/SPINET_def.h                               |     2 +-
 dwtools/SPINET_to_Pitch.cpp                        |    26 +-
 dwtools/SPINET_to_Pitch.h                          |     5 +-
 dwtools/SSCP.cpp                                   |  1157 +-
 dwtools/SSCP.h                                     |   147 +-
 dwtools/SSCP_def.h                                 |     4 +-
 dwtools/Sampled2.cpp                               |   217 +
 dwtools/Sampled2.h                                 |    83 +
 dwtools/{Procrustes.h => Sampled2_def.h}           |    23 +-
 dwtools/Sound_and_FilterBank.cpp                   |   421 +
 ...trogram_extensions.h => Sound_and_FilterBank.h} |    29 +-
 dwtools/Sound_and_PCA.cpp                          |    26 +-
 dwtools/Sound_and_PCA.h                            |    12 +-
 dwtools/Sound_and_Spectrogram_extensions.cpp       |   150 +-
 dwtools/Sound_and_Spectrogram_extensions.h         |    15 +-
 dwtools/Sound_extensions.cpp                       |   665 +-
 dwtools/Sound_extensions.h                         |    97 +-
 dwtools/{Sound_to_MFCC.h => Sound_to_DTW.h}        |     4 +-
 dwtools/Sound_to_MFCC.cpp                          |     8 +-
 dwtools/Sound_to_MFCC.h                            |     4 +-
 dwtools/Sound_to_Pitch2.cpp                        |    40 +-
 dwtools/Sound_to_Pitch2.h                          |     6 +-
 dwtools/Sound_to_SPINET.cpp                        |    22 +-
 dwtools/Sound_to_SPINET.h                          |     4 +-
 dwtools/Sounds_to_DTW.cpp                          |    12 +-
 dwtools/Sounds_to_DTW.h                            |     4 +-
 dwtools/Spectrogram_extensions.cpp                 |   135 +-
 dwtools/Spectrogram_extensions.h                   |    26 +-
 dwtools/Spectrum_extensions.cpp                    |    76 +-
 dwtools/Spectrum_extensions.h                      |    14 +-
 dwtools/SpeechSynthesizer.cpp                      |   461 +-
 dwtools/SpeechSynthesizer.h                        |    19 +-
 dwtools/SpeechSynthesizer_and_TextGrid.cpp         |   499 +-
 dwtools/SpeechSynthesizer_and_TextGrid.h           |    20 +-
 dwtools/SpeechSynthesizer_def.h                    |    17 +-
 dwtools/Strings_extensions.cpp                     |   125 +-
 dwtools/Strings_extensions.h                       |    40 +-
 dwtools/TableOfReal_and_Permutation.cpp            |    14 +-
 dwtools/TableOfReal_and_Permutation.h              |     6 +-
 dwtools/TableOfReal_and_SVD.cpp                    |    26 +-
 dwtools/TableOfReal_and_SVD.h                      |    20 +-
 dwtools/TableOfReal_extensions.cpp                 |   565 +-
 dwtools/TableOfReal_extensions.h                   |   115 +-
 dwtools/Table_extensions.cpp                       |   924 +-
 dwtools/Table_extensions.h                         |    43 +-
 dwtools/TextGrid_extensions.cpp                    |   379 +-
 dwtools/TextGrid_extensions.h                      |    27 +-
 dwtools/VowelEditor.cpp                            |  1121 +-
 dwtools/VowelEditor.h                              |    67 +-
 dwtools/Vowel_def.h                                |     6 +-
 dwtools/manual_BSS.cpp                             |    36 +-
 dwtools/manual_HMM.cpp                             |    46 +-
 dwtools/manual_MDS.cpp                             |    51 +-
 dwtools/manual_dwtools.cpp                         |   298 +-
 dwtools/praat_BSS_init.cpp                         |   228 +-
 dwtools/praat_DataModeler_init.cpp                 |   221 +-
 dwtools/praat_David_init.cpp                       |  3388 +-
 dwtools/praat_HMM_init.cpp                         |   594 +-
 dwtools/praat_KlattGrid_init.cpp                   |   654 +-
 dwtools/praat_MDS_init.cpp                         |  1169 +-
 external/espeak/READ_ME.TXT                        |    18 +-
 external/espeak/StdAfx.h                           |     0
 external/espeak/compiledict.cpp                    |   362 +-
 external/espeak/debug.h                            |     0
 external/espeak/dictionary.cpp                     |  1083 +-
 external/espeak/espeak_command.h                   |     0
 external/espeak/espeakdata_FileInMemory.cpp        |   114 +-
 external/espeak/espeakdata_FileInMemory.h          |    39 +-
 external/espeak/espeakdata_dicts.cpp               | 79065 ++++++++-----------
 external/espeak/espeakdata_phons.cpp               | 25929 +++---
 external/espeak/espeakdata_variants.cpp            |   131 +-
 external/espeak/espeakdata_voices.cpp              |  1272 +-
 external/espeak/event.h                            |     0
 external/espeak/fifo.h                             |     0
 external/espeak/intonation.cpp                     |    46 +-
 external/espeak/klatt.cpp                          |   453 +-
 external/espeak/klatt.h                            |     5 +-
 external/espeak/numbers.cpp                        |  1274 +-
 external/espeak/phoneme.h                          |     8 +-
 external/espeak/phonemelist.cpp                    |   232 +-
 external/espeak/readclause.cpp                     |   455 +-
 external/espeak/setlengths.cpp                     |    51 +-
 external/espeak/sintab.h                           |     0
 external/espeak/sonic.cpp                          |     0
 external/espeak/sonic.h                            |     0
 external/espeak/speak_lib.cpp                      |    71 +-
 external/espeak/speak_lib.h                        |   107 +-
 external/espeak/speech.h                           |    16 +-
 external/espeak/synth_mbrola.cpp                   |     5 +-
 external/espeak/synthdata.cpp                      |    75 +-
 external/espeak/synthesize.cpp                     |    92 +-
 external/espeak/synthesize.h                       |    35 +-
 external/espeak/tr_languages.cpp                   |   417 +-
 external/espeak/translate.cpp                      |  1136 +-
 external/espeak/translate.h                        |   186 +-
 external/espeak/voice.h                            |     6 +-
 external/espeak/voices.cpp                         |   523 +-
 external/espeak/wave.h                             |     2 +-
 external/espeak/wavegen.cpp                        |    75 +-
 external/flac/flac_FLAC_format.h                   |     2 +-
 external/flac/flac_stream_decoder.c                |     6 +-
 external/flac/flac_stream_encoder.c                |     4 +-
 external/mp3/mp3.cpp                               |    91 +-
 external/mp3/mp3.h                                 |     2 +-
 external/portaudio2007/Makefile                    |    27 +
 external/portaudio2007/READ_ME.TXT                 |    22 +
 external/portaudio2007/pa_allocation.c             |   243 +
 external/portaudio2007/pa_allocation.h             |   104 +
 external/portaudio2007/pa_converters.c             |  1935 +
 external/portaudio2007/pa_converters.h             |   263 +
 external/portaudio2007/pa_cpuload.c                |   105 +
 external/portaudio2007/pa_cpuload.h                |    72 +
 external/portaudio2007/pa_debugprint.c             |   107 +
 external/portaudio2007/pa_debugprint.h             |   149 +
 external/portaudio2007/pa_dither.c                 |   215 +
 external/portaudio2007/pa_dither.h                 |   100 +
 external/portaudio2007/pa_endianness.h             |   141 +
 external/portaudio2007/pa_front.c                  |  1760 +
 external/portaudio2007/pa_hostapi.h                |   253 +
 external/portaudio2007/pa_linux_alsa.c             |  3565 +
 external/portaudio2007/pa_linux_alsa.h             |    95 +
 external/portaudio2007/pa_mac_core.c               |  2328 +
 external/portaudio2007/pa_mac_core.h               |   171 +
 external/portaudio2007/pa_mac_core_blocking.c      |   585 +
 external/portaudio2007/pa_mac_core_blocking.h      |   136 +
 external/portaudio2007/pa_mac_core_internal.h      |   164 +
 external/portaudio2007/pa_mac_core_utilities.c     |   620 +
 external/portaudio2007/pa_mac_core_utilities.h     |   205 +
 external/portaudio2007/pa_mac_hostapis.c           |    71 +
 external/portaudio2007/pa_mac_util.c               |   142 +
 external/portaudio2007/pa_mac_util.h               |   222 +
 external/portaudio2007/pa_process.c                |  1772 +
 external/portaudio2007/pa_process.h                |   750 +
 external/portaudio2007/pa_ringbuffer.c             |   285 +
 external/portaudio2007/pa_ringbuffer.h             |   198 +
 external/portaudio2007/pa_skeleton.c               |   816 +
 external/portaudio2007/pa_stream.c                 |   150 +
 external/portaudio2007/pa_stream.h                 |   205 +
 external/portaudio2007/pa_trace.c                  |    97 +
 external/portaudio2007/pa_trace.h                  |    79 +
 external/portaudio2007/pa_types.h                  |    82 +
 external/portaudio2007/pa_unix_hostapis.c          |    68 +
 external/portaudio2007/pa_unix_oss.c               |  1955 +
 external/portaudio2007/pa_unix_util.c              |   668 +
 external/portaudio2007/pa_unix_util.h              |   224 +
 external/portaudio2007/pa_util.h                   |   159 +
 external/portaudio2007/pa_win_ds.c                 |  2512 +
 external/portaudio2007/pa_win_ds.h                 |   100 +
 external/portaudio2007/pa_win_ds_dynlink.c         |   181 +
 external/portaudio2007/pa_win_ds_dynlink.h         |    95 +
 external/portaudio2007/pa_win_hostapis.c           |    81 +
 external/portaudio2007/pa_win_util.c               |   150 +
 external/portaudio2007/pa_win_waveformat.c         |   162 +
 external/portaudio2007/pa_win_waveformat.h         |   180 +
 external/portaudio2007/pa_win_wdmks.c              |  3300 +
 external/portaudio2007/pa_win_wdmks_utils.h        |    65 +
 external/portaudio2007/pa_win_wmme.c               |  3903 +
 external/portaudio2007/pa_win_wmme.h               |   176 +
 external/portaudio2007/portaudio.h                 |  1133 +
 fon/AmplitudeTier.cpp                              |    99 +-
 fon/AmplitudeTier.h                                |    20 +-
 fon/AmplitudeTierEditor.cpp                        |    14 +-
 fon/AmplitudeTierEditor.h                          |     4 +-
 fon/AnyTier.cpp                                    |   129 +-
 fon/AnyTier.h                                      |    54 +-
 EEG/EEG_def.h => fon/AnyTier_def.h                 |    28 +-
 fon/Cochleagram.cpp                                |    38 +-
 fon/Cochleagram.h                                  |    14 +-
 fon/Cochleagram_and_Excitation.cpp                 |     4 +-
 fon/Cochleagram_and_Excitation.h                   |     4 +-
 fon/Corpus.h                                       |     1 +
 fon/Distributions_and_Transition.cpp               |    22 +-
 fon/Distributions_and_Transition.h                 |    10 +-
 fon/DurationTier.cpp                               |    24 +-
 fon/DurationTier.h                                 |     4 +-
 fon/DurationTierEditor.cpp                         |    14 +-
 fon/DurationTierEditor.h                           |     4 +-
 fon/Excitation.cpp                                 |    60 +-
 fon/Excitation.h                                   |     6 +-
 fon/Excitation_to_Formant.cpp                      |     4 +-
 fon/Excitation_to_Formant.h                        |     4 +-
 fon/ExperimentMFC.cpp                              |   126 +-
 fon/ExperimentMFC.h                                |    22 +-
 fon/ExperimentMFC_def.h                            |    28 +-
 fon/Formant.cpp                                    |   108 +-
 fon/Formant.h                                      |    15 +-
 fon/FormantGrid.cpp                                |   221 +-
 fon/FormantGrid.h                                  |    33 +-
 fon/FormantGridEditor.cpp                          |   257 +-
 fon/FormantGridEditor.h                            |     4 +-
 fon/FormantGrid_def.h                              |     4 +-
 fon/FormantTier.cpp                                |   153 +-
 fon/FormantTier.h                                  |    19 +-
 fon/FormantTier_def.h                              |    13 +-
 fon/FujisakiPitch.cpp                              |    42 +-
 fon/FujisakiPitch.h                                |    12 +-
 fon/FujisakiPitch_def.h                            |     9 +-
 fon/Function.cpp                                   |     2 +-
 fon/Function.h                                     |     1 +
 fon/FunctionEditor.cpp                             |   649 +-
 fon/FunctionEditor.h                               |    16 +-
 fon/Function_def.h                                 |     2 +-
 fon/Harmonicity.cpp                                |    18 +-
 fon/Harmonicity.h                                  |     9 +-
 fon/Harmonics.h                                    |    11 +-
 fon/Harmonics_def.h                                |     2 +-
 fon/Image.h                                        |     3 +-
 fon/Intensity.cpp                                  |    41 +-
 fon/Intensity.h                                    |     6 +-
 fon/IntensityTier.cpp                              |    54 +-
 fon/IntensityTier.h                                |    18 +-
 fon/IntensityTierEditor.cpp                        |    12 +-
 fon/IntensityTierEditor.h                          |     4 +-
 fon/Label.cpp                                      |    86 +-
 fon/Label.h                                        |    82 +-
 fon/LongSound.cpp                                  |   169 +-
 fon/LongSound.h                                    |    28 +-
 fon/Ltas.cpp                                       |   116 +-
 fon/Ltas.h                                         |    36 +-
 fon/Ltas_to_SpectrumTier.cpp                       |     7 +-
 fon/Ltas_to_SpectrumTier.h                         |     4 +-
 fon/Manipulation.cpp                               |   328 +-
 fon/Manipulation.h                                 |    33 +-
 fon/ManipulationEditor.cpp                         |   651 +-
 fon/ManipulationEditor.h                           |    12 +-
 fon/Manipulation_def.h                             |    37 +-
 fon/Matrix.cpp                                     |   104 +-
 fon/Matrix.h                                       |   109 +-
 fon/Matrix_and_Pitch.cpp                           |    10 +-
 fon/Matrix_and_Pitch.h                             |     6 +-
 fon/Matrix_and_PointProcess.cpp                    |    20 +-
 fon/Matrix_and_PointProcess.h                      |    10 +-
 fon/Matrix_and_Polygon.cpp                         |    18 +-
 fon/Matrix_and_Polygon.h                           |    10 +-
 fon/Movie.cpp                                      |    25 +-
 fon/Movie.h                                        |     9 +-
 fon/MovieWindow.cpp                                |    66 +-
 fon/MovieWindow.h                                  |     4 +-
 fon/Movie_def.h                                    |     4 +-
 fon/ParamCurve.cpp                                 |    78 +-
 fon/ParamCurve.h                                   |    10 +-
 fon/ParamCurve_def.h                               |     4 +-
 fon/Photo.cpp                                      |    82 +-
 fon/Photo.h                                        |    13 +-
 fon/Photo_def.h                                    |     8 +-
 fon/Pitch.cpp                                      |   114 +-
 fon/Pitch.h                                        |    39 +-
 fon/PitchEditor.cpp                                |   154 +-
 fon/PitchEditor.h                                  |     4 +-
 fon/PitchTier.cpp                                  |    49 +-
 fon/PitchTier.h                                    |     6 +-
 fon/PitchTierEditor.cpp                            |    14 +-
 fon/PitchTierEditor.h                              |     4 +-
 fon/PitchTier_to_PointProcess.cpp                  |    62 +-
 fon/PitchTier_to_PointProcess.h                    |    16 +-
 fon/PitchTier_to_Sound.cpp                         |    55 +-
 fon/PitchTier_to_Sound.h                           |    14 +-
 fon/Pitch_AnyTier_to_PitchTier.cpp                 |    35 +-
 fon/Pitch_AnyTier_to_PitchTier.h                   |     6 +-
 fon/Pitch_Intensity.cpp                            |    68 +-
 fon/Pitch_Intensity.h                              |     8 +-
 fon/Pitch_def.h                                    |     1 -
 fon/Pitch_to_PitchTier.cpp                         |    32 +-
 fon/Pitch_to_PitchTier.h                           |     4 +-
 fon/Pitch_to_PointProcess.cpp                      |    61 +-
 fon/Pitch_to_PointProcess.h                        |     6 +-
 fon/Pitch_to_Sound.cpp                             |    32 +-
 fon/Pitch_to_Sound.h                               |     8 +-
 fon/PointEditor.cpp                                |   115 +-
 fon/PointEditor.h                                  |     8 +-
 fon/PointProcess.cpp                               |   104 +-
 fon/PointProcess.h                                 |    19 +-
 fon/PointProcess_and_Sound.cpp                     |    68 +-
 fon/PointProcess_and_Sound.h                       |    11 +-
 fon/Polygon.cpp                                    |    10 +-
 fon/Polygon.h                                      |     9 +-
 fon/Polygon_def.h                                  |     2 +-
 fon/Praat_tests.cpp                                |   118 +-
 fon/Praat_tests_enums.h                            |    26 +-
 fon/RealTier.cpp                                   |   248 +-
 fon/RealTier.h                                     |    25 +-
 fon/RealTierEditor.cpp                             |   185 +-
 fon/RealTierEditor.h                               |     6 +-
 fon/RealTier_def.h                                 |    19 +-
 fon/RunnerMFC.cpp                                  |   227 +-
 fon/RunnerMFC.h                                    |     8 +-
 fon/Sampled.cpp                                    |    42 +-
 fon/Sampled.h                                      |     1 +
 fon/SampledXY.cpp                                  |    14 -
 fon/SampledXY.h                                    |     1 +
 fon/SampledXY_def.h                                |    16 +-
 fon/Sampled_def.h                                  |    12 -
 fon/Sound.cpp                                      |   210 +-
 fon/Sound.h                                        |   101 +-
 fon/SoundEditor.cpp                                |   131 +-
 fon/SoundEditor.h                                  |     4 +-
 fon/SoundRecorder.cpp                              |   250 +-
 fon/SoundRecorder.h                                |     6 +-
 fon/Sound_PointProcess.cpp                         |     4 +-
 fon/Sound_PointProcess.h                           |     4 +-
 fon/Sound_and_Spectrogram.cpp                      |    18 +-
 fon/Sound_and_Spectrogram.h                        |     6 +-
 fon/Sound_and_Spectrum.cpp                         |    66 +-
 fon/Sound_and_Spectrum.h                           |    16 +-
 fon/Sound_audio.cpp                                |    55 +-
 fon/Sound_enhance.cpp                              |    64 +-
 fon/Sound_files.cpp                                |    38 +-
 fon/Sound_to_Cochleagram.cpp                       |    80 +-
 fon/Sound_to_Cochleagram.h                         |     6 +-
 fon/Sound_to_Formant.cpp                           |    37 +-
 fon/Sound_to_Formant.h                             |    10 +-
 fon/Sound_to_Harmonicity.cpp                       |     8 +-
 fon/Sound_to_Harmonicity.h                         |     8 +-
 fon/Sound_to_Harmonicity_GNE.cpp                   |    64 +-
 fon/Sound_to_Intensity.cpp                         |    21 +-
 fon/Sound_to_Intensity.h                           |     6 +-
 fon/Sound_to_Pitch.cpp                             |    26 +-
 fon/Sound_to_Pitch.h                               |    12 +-
 fon/Sound_to_PointProcess.cpp                      |    43 +-
 fon/Sound_to_PointProcess.h                        |    16 +-
 fon/Spectrogram.cpp                                |    32 +-
 fon/Spectrogram.h                                  |     8 +-
 fon/SpectrogramEditor.cpp                          |    42 +-
 fon/SpectrogramEditor.h                            |     4 +-
 fon/Spectrum.cpp                                   |   125 +-
 fon/Spectrum.h                                     |    25 +-
 fon/SpectrumEditor.cpp                             |    79 +-
 fon/SpectrumEditor.h                               |     4 +-
 fon/SpectrumTier.cpp                               |    34 +-
 fon/SpectrumTier.h                                 |     8 +-
 fon/Spectrum_and_Spectrogram.cpp                   |    10 +-
 fon/Spectrum_and_Spectrogram.h                     |     8 +-
 fon/Spectrum_to_Excitation.cpp                     |    28 +-
 fon/Spectrum_to_Excitation.h                       |     4 +-
 fon/Spectrum_to_Formant.cpp                        |     4 +-
 fon/Spectrum_to_Formant.h                          |     4 +-
 fon/SpellingChecker.cpp                            |    75 +-
 fon/SpellingChecker.h                              |     9 +-
 fon/SpellingChecker_def.h                          |    12 +-
 fon/TextGrid.cpp                                   |   763 +-
 fon/TextGrid.h                                     |    78 +-
 fon/TextGridEditor.cpp                             |   927 +-
 fon/TextGridEditor.h                               |     8 +-
 fon/TextGrid_Sound.cpp                             |   364 +-
 fon/TextGrid_Sound.h                               |    16 +-
 fon/TextGrid_def.h                                 |    41 +-
 fon/TimeSoundAnalysisEditor.cpp                    |   752 +-
 fon/TimeSoundAnalysisEditor.h                      |    16 +-
 fon/TimeSoundEditor.cpp                            |   254 +-
 fon/TimeSoundEditor.h                              |     6 +-
 fon/Transition.cpp                                 |    36 +-
 fon/Transition.h                                   |    14 +-
 fon/Transition_def.h                               |     2 +-
 fon/Vector.cpp                                     |    14 +-
 fon/Vector.h                                       |     2 +-
 fon/VocalTract.cpp                                 |   190 +-
 fon/VocalTract.h                                   |    12 +-
 fon/VocalTract_to_Spectrum.cpp                     |     4 +-
 fon/VocalTract_to_Spectrum.h                       |     4 +-
 fon/VoiceAnalysis.cpp                              |    33 +-
 fon/WordList.cpp                                   |    20 +-
 fon/WordList.h                                     |     5 +-
 fon/WordList_def.h                                 |     2 +-
 fon/manual_Fon.cpp                                 |    16 +-
 fon/manual_Picture.cpp                             |     8 +-
 fon/manual_Script.cpp                              |   284 +-
 fon/manual_exampleSound.cpp                        |    26 +-
 fon/manual_exampleSound.h                          |     4 +-
 fon/manual_glossary.cpp                            |     4 +-
 fon/manual_programming.cpp                         |   401 +-
 fon/manual_sound.cpp                               |    92 +-
 fon/manual_soundFiles.cpp                          |     2 +-
 fon/manual_spectrum.cpp                            |   103 +-
 fon/manual_tutorials.cpp                           |   102 +-
 fon/praat_Exp.cpp                                  |   100 +-
 fon/praat_Fon.cpp                                  |  2829 +-
 fon/praat_Sound_init.cpp                           |  1420 +-
 fon/praat_TextGrid_init.cpp                        |  1003 +-
 gram/Network.cpp                                   |    50 +-
 gram/Network.h                                     |     9 +-
 gram/Network_def.h                                 |     6 +-
 gram/OTGrammar.cpp                                 |   335 +-
 gram/OTGrammar.h                                   |    51 +-
 gram/OTGrammarEditor.cpp                           |    79 +-
 gram/OTGrammarEditor.h                             |     2 +-
 gram/OTGrammar_def.h                               |     6 +-
 gram/OTGrammar_ex_NPA.cpp                          |    22 +-
 gram/OTGrammar_ex_NoCoda.cpp                       |    10 +-
 gram/OTGrammar_ex_metrics.cpp                      |    83 +-
 gram/OTGrammar_ex_tongueRoot.cpp                   |    10 +-
 gram/OTMulti.cpp                                   |    95 +-
 gram/OTMulti.h                                     |    11 +-
 gram/OTMultiEditor.cpp                             |    76 +-
 gram/OTMultiEditor.h                               |     2 +-
 gram/OTMulti_def.h                                 |     6 +-
 gram/OTMulti_ex_metrics.cpp                        |    82 +-
 gram/manual_gram.cpp                               |    62 +-
 gram/praat_gram.cpp                                |   382 +-
 kar/longchar.cpp                                   |     2 +-
 main/GNU_General_Public_License.txt                |     2 +-
 main/main_Praat.cpp                                |    50 +-
 makefiles/makefile.defs.cygwin64                   |    25 -
 makefiles/makefile.defs.linux.pulse                |    23 -
 makefiles/makefile.defs.linuxc.alsa                |    23 +
 makefiles/makefile.defs.linuxs.alsa                |    23 +
 makefiles/makefile.defs.linuxs.pulse               |    23 -
 makefiles/makefile.defs.mingw32                    |    23 +-
 makefiles/makefile.defs.mingw32-490                |    24 +
 ...kefile.defs.darmin32 => makefile.defs.mingw32c} |     8 +-
 makefiles/makefile.defs.mingw64                    |    23 +-
 makefiles/makefile.defs.mingw64-490                |    24 +
 ...kefile.defs.darmin64 => makefile.defs.mingw64c} |     8 +-
 num/NUM.cpp                                        |     6 +-
 num/NUM.h                                          |    46 +-
 num/NUMarrays.cpp                                  |    52 +-
 num/NUMlinprog.cpp                                 |     6 +-
 num/NUMrandom.cpp                                  |    32 +-
 stat/Distributions.cpp                             |    40 +-
 stat/Distributions.h                               |     6 +-
 stat/Distributions_and_Strings.cpp                 |    20 +-
 stat/Distributions_and_Strings.h                   |     8 +-
 stat/LogisticRegression.cpp                        |    61 +-
 stat/LogisticRegression.h                          |     5 +-
 stat/PairDistribution.cpp                          |   126 +-
 stat/PairDistribution.h                            |    13 +-
 stat/PairDistribution_def.h                        |     6 +-
 stat/Regression.cpp                                |    48 +-
 stat/Regression.h                                  |     6 +-
 stat/Regression_def.h                              |     6 +-
 stat/Table.cpp                                     |   723 +-
 stat/Table.h                                       |    32 +-
 stat/TableEditor.cpp                               |   190 +-
 stat/TableEditor.h                                 |    14 +-
 stat/TableEditor_prefs.h                           |    26 -
 stat/TableOfReal.cpp                               |   239 +-
 stat/TableOfReal.h                                 |    40 +-
 stat/TableOfReal_def.h                             |     2 +-
 stat/Table_def.h                                   |    13 +-
 stat/praat_Stat.cpp                                |   704 +-
 sys/ButtonEditor.cpp                               |    62 +-
 sys/ButtonEditor.h                                 |     2 +-
 sys/Collection.cpp                                 |   533 +-
 sys/Collection.h                                   |   971 +-
 sys/Data.cpp                                       |   173 +-
 sys/Data.h                                         |   135 +-
 sys/DataEditor.cpp                                 |   239 +-
 sys/DataEditor.h                                   |    10 +-
 sys/DemoEditor.cpp                                 |   296 +-
 sys/DemoEditor.h                                   |    30 +-
 sys/Editor.cpp                                     |   151 +-
 sys/Editor.h                                       |    71 +-
 sys/EditorM.h                                      |    75 +-
 sys/Formula.cpp                                    |   630 +-
 sys/Formula.h                                      |     8 +-
 sys/Graphics.cpp                                   |    21 +-
 sys/Graphics.h                                     |    42 +-
 sys/GraphicsP.h                                    |    12 +-
 sys/GraphicsPostscript.cpp                         |    78 +-
 sys/GraphicsScreen.cpp                             |   297 +-
 sys/Graphics_altitude.cpp                          |     8 +-
 sys/Graphics_colour.cpp                            |    65 +-
 sys/Graphics_grey.cpp                              |     4 +-
 sys/Graphics_image.cpp                             |    52 +-
 sys/Graphics_linesAndAreas.cpp                     |   121 +-
 sys/Graphics_mouse.cpp                             |    20 +-
 sys/Graphics_record.cpp                            |     9 +-
 sys/Graphics_text.cpp                              |   166 +-
 sys/Graphics_utils.cpp                             |   212 +-
 sys/Gui.cpp                                        |    18 +-
 sys/Gui.h                                          |   248 +-
 sys/GuiButton.cpp                                  |    87 +-
 sys/GuiCheckButton.cpp                             |    58 +-
 sys/GuiControl.cpp                                 |    26 +-
 sys/GuiDialog.cpp                                  |    87 +-
 sys/GuiDrawingArea.cpp                             |   168 +-
 sys/GuiFileSelect.cpp                              |    88 +-
 sys/GuiForm.cpp                                    |    14 +-
 sys/GuiLabel.cpp                                   |    28 +-
 sys/GuiList.cpp                                    |   228 +-
 sys/GuiMenu.cpp                                    |   247 +-
 sys/GuiMenuItem.cpp                                |   100 +-
 sys/GuiObject.cpp                                  |    10 +-
 sys/GuiOptionMenu.cpp                              |    72 +-
 sys/GuiP.h                                         |    11 +-
 sys/GuiProgressBar.cpp                             |    22 +-
 sys/GuiRadioButton.cpp                             |   108 +-
 sys/GuiScale.cpp                                   |    24 +-
 sys/GuiScrollBar.cpp                               |    55 +-
 sys/GuiScrolledWindow.cpp                          |    24 +-
 sys/GuiShell.cpp                                   |    73 +-
 sys/GuiText.cpp                                    |   279 +-
 sys/GuiThing.cpp                                   |     6 +-
 sys/GuiWindow.cpp                                  |   120 +-
 sys/HyperPage.cpp                                  |   306 +-
 sys/HyperPage.h                                    |    16 +-
 sys/InfoEditor.cpp                                 |    53 +-
 sys/InfoEditor.h                                   |     2 +-
 sys/Interpreter.cpp                                |   167 +-
 sys/Interpreter.h                                  |    12 +-
 fon/Corpus.h => sys/Interpreter_decl.h             |    14 +-
 sys/ManPages.cpp                                   |   347 +-
 sys/ManPages.h                                     |    10 +-
 sys/ManPagesM.h                                    |     2 +-
 sys/Manual.cpp                                     |   128 +-
 sys/Manual.h                                       |     4 +-
 sys/MelderThread.h                                 |    30 +-
 sys/Picture.cpp                                    |   180 +-
 sys/Picture.h                                      |    47 +-
 sys/Preferences.cpp                                |    64 +-
 sys/Printer.cpp                                    |   112 +-
 sys/Printer.h                                      |    17 +-
 sys/Script.cpp                                     |     8 +-
 sys/Script.h                                       |     4 +-
 sys/ScriptEditor.cpp                               |   168 +-
 sys/ScriptEditor.h                                 |    16 +-
 sys/Simple.cpp                                     |    28 +-
 sys/Simple.h                                       |    14 +-
 sys/Simple_def.h                                   |     8 +-
 sys/Strings.cpp                                    |    39 +-
 sys/StringsEditor.cpp                              |    46 +-
 sys/StringsEditor.h                                |     4 +-
 sys/Strings_.h                                     |     7 +-
 sys/Strings_def.h                                  |     2 +-
 sys/TextEditor.cpp                                 |   258 +-
 sys/TextEditor.h                                   |    10 +-
 sys/Thing.cpp                                      |    50 +-
 sys/Thing.h                                        |   360 +-
 sys/Ui.cpp                                         |   405 +-
 sys/Ui.h                                           |   142 +-
 sys/UiFile.cpp                                     |    99 +-
 sys/UiPause.cpp                                    |   136 +-
 sys/UiPause.h                                      |     2 +-
 sys/abcio.cpp                                      |   138 +-
 sys/abcio.h                                        |    76 +-
 sys/machine.cpp                                    |    10 +-
 sys/machine.h                                      |    10 +-
 sys/melder.cpp                                     |   210 +-
 sys/melder.h                                       |   309 +-
 sys/melder_alloc.cpp                               |   100 +-
 sys/melder_atof.cpp                                |    24 +-
 sys/melder_audio.cpp                               |   640 +-
 sys/melder_audiofiles.cpp                          |    24 +-
 sys/melder_console.cpp                             |    33 +-
 sys/melder_debug.cpp                               |   335 +-
 sys/melder_enums.h                                 |    46 +-
 sys/melder_error.cpp                               |     6 +-
 sys/melder_files.cpp                               |   120 +-
 sys/melder_ftoa.cpp                                |    49 +-
 sys/melder_info.cpp                                |    14 +-
 sys/melder_readtext.cpp                            |    72 +-
 sys/melder_strings.cpp                             |    20 +-
 sys/melder_sysenv.cpp                              |    16 +-
 sys/melder_textencoding.cpp                        |    40 +-
 sys/melder_time.cpp                                |    14 +-
 sys/melder_token.cpp                               |    10 +-
 sys/melder_writetext.cpp                           |   101 +-
 sys/motifEmulator.cpp                              |   195 +-
 sys/oo.h                                           |    23 +-
 sys/oo_CAN_WRITE_AS_ENCODING.h                     |    13 +-
 sys/oo_COPY.h                                      |    25 +-
 sys/oo_DESCRIPTION.h                               |    13 +-
 sys/oo_DESTROY.h                                   |    12 +-
 sys/oo_EQUAL.h                                     |    17 +-
 sys/oo_READ_BINARY.h                               |    29 +-
 sys/oo_READ_TEXT.h                                 |    25 +-
 sys/oo_WRITE_BINARY.h                              |    21 +-
 sys/oo_WRITE_TEXT.h                                |    39 +-
 sys/oo_undef.h                                     |     5 +-
 sys/praat.cpp                                      |   904 +-
 sys/praat.h                                        |   125 +-
 sys/praatP.h                                       |    25 +-
 sys/praat_actions.cpp                              |   442 +-
 sys/praat_logo.cpp                                 |    52 +-
 sys/praat_menuCommands.cpp                         |   327 +-
 sys/praat_objectMenus.cpp                          |   288 +-
 sys/praat_picture.cpp                              |   609 +-
 sys/praat_script.cpp                               |    95 +-
 sys/praat_script.h                                 |     5 +-
 sys/praat_statistics.cpp                           |    64 +-
 sys/praat_version.h                                |    10 +-
 sys/sendpraat.c                                    |     2 -
 sys/site.cpp                                       |     4 +-
 sys/site.h                                         |     4 +-
 sys/winport_off.h                                  |     3 +-
 sys/winport_on.h                                   |     3 +-
 test/dwtools/Discriminant.praat                    |    41 -
 test/dwtools/KlattSlope.praat                      |     3 +-
 test/dwtools/Pols.binary.Discriminant              |   Bin 5057 -> 0 bytes
 test/dwtools/Pols.text.Discriminant                |   389 -
 test/fon Exp/Sounds/M1F1-float32-AFsp.wav          |   Bin 188168 -> 0 bytes
 test/fon Exp/Sounds/again.wav                      |   Bin 27688 -> 0 bytes
 test/fon Exp/Sounds/heed.wav                       |   Bin 16016 -> 0 bytes
 test/fon Exp/Sounds/hid.wav                        |   Bin 14866 -> 0 bytes
 test/fon Exp/Sounds/hood.wav                       |   Bin 23258 -> 0 bytes
 test/fon Exp/Sounds/hud.wav                        |   Bin 21716 -> 0 bytes
 test/fon Exp/Sounds/weSayTheWord.wav               |   Bin 25926 -> 0 bytes
 test/fon Exp/continuousGoodness.ExperimentMFC      |   144 -
 test/fon Exp/csl.ExperimentMFC                     |    35 -
 test/fon Exp/experimentMFC.praat                   |    15 -
 test/fon Exp/hoofdletters.ExperimentMFC            |    43 -
 test/fon Exp/pictures.ExperimentMFC                |    40 -
 test/fon Exp/pictures/paul.jpg                     |   Bin 7776 -> 0 bytes
 test/fon Exp/pictures/silke.jpg                    |   Bin 21362 -> 0 bytes
 test/fon Exp/simplest.ExperimentMFC                |    45 -
 test/fon Exp/simplest_broken.ExperimentMFC         |    45 -
 test/fon Exp/simplest_missing.ExperimentMFC        |    45 -
 test/fon Exp/stereo.ExperimentMFC                  |    38 -
 test/fon Exp/test.ExperimentMFC                    |    33 -
 test/fon Exp/version3.ExperimentMFC                |    32 -
 test/fon Exp/version4.ExperimentMFC                |    50 -
 test/fon Exp/version6.ExperimentMFC                |    53 -
 test/fon/PitchTier.praat                           |    40 -
 test/fon/Spectrum_draw.praat                       |    12 -
 test/fon/TextGrid_Sound_extractIntervals.praat     |    11 -
 test/fon/data.praat                                |   Bin 13492 -> 13494 bytes
 test/fon/endian.praat                              |     1 -
 test/fon/examples/OTGrammar/Infant.OTGrammar       |   198 -
 test/fon/examples/OTGrammar/Infant2.OTGrammar      |   198 -
 .../fon/examples/OTGrammar/Infant_binary.OTGrammar |   Bin 3689 -> 0 bytes
 .../examples/OTGrammar/Infant_binary2.OTGrammar    |   Bin 3689 -> 0 bytes
 test/fon/examples/banner.praat                     |    11 -
 test/fon/examples/example.wav                      |   Bin 40958 -> 0 bytes
 test/fon/examples/sineWithNoise.TextGrid           |    10 -
 test/fon/examples/sounds/aaaa02.nsp                |   Bin 1520078 -> 0 bytes
 test/fon/examples/sounds/aaaa02.wav                |   Bin 1520044 -> 0 bytes
 test/fon/examples/sounds/cl_F1_2b_egg.wav          |   Bin 312142 -> 0 bytes
 .../fon/examples/sounds/elephant calls/27_Ella.wav |   Bin 1254122 -> 0 bytes
 test/fon/texio.praat                               |   Bin 10074 -> 10042 bytes
 test/fon/textioSpeed.praat                         |     3 +-
 .../kar/a\314\212bc\314\247e\314\201u\314\210.wav" |   Bin
 test/kar/unicode.praat                             |   Bin 9020 -> 9022 bytes
 test/manually/Demo_recording_problem.praat         |    36 -
 test/manually/PairDistributions_append.praat       |    44 -
 test/manually/testCommandLineCalls.praat           |    33 -
 test/menuSpeed.praat                               |    19 -
 test/num/fisherQ.praat                             |     2 +-
 test/num/mathFunctions.praat                       |     4 +-
 test/runAllTests.praat                             |    88 +-
 test/runAllTests_leak.praat                        |   128 -
 test/stat/Table.praat                              |    11 +-
 test/stat/linearRegression.praat                   |    19 -
 test/stat/logisticRegression.praat                 |    11 +-
 test/stat/logisticRegression/rh.LogisticRegression |    17 -
 test/stat/pb.Table                                 | 31944 --------
 test/sys/graphics.praat                            |   Bin 8230 -> 8026 bytes
 test/sys/progress.praat                            |   Bin 946 -> 786 bytes
 test/sys/script2.praat                             |   Bin 4276 -> 3890 bytes
 937 files changed, 120538 insertions(+), 138866 deletions(-)

diff --git a/EEG/EEG.cpp b/EEG/EEG.cpp
index e273fde..9ccb8b0 100644
--- a/EEG/EEG.cpp
+++ b/EEG/EEG.cpp
@@ -1,6 +1,6 @@
 /* EEG.cpp
  *
- * Copyright (C) 2011-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -42,12 +42,12 @@
 Thing_implement (EEG, Function, 0);
 
 void structEEG :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", our xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", our xmax, U" seconds");
 	MelderInfo_writeLine (U"   Total duration: ", our xmax - our xmin, U" seconds");
-	if (our sound) {
+	if (our sound != NULL) {
 		MelderInfo_writeLine (U"Time sampling of the signal:");
 		MelderInfo_writeLine (U"   Number of samples: ", our sound -> nx);
 		MelderInfo_writeLine (U"   Sampling period: ", our sound -> dx, U" seconds");
@@ -61,14 +61,14 @@ void structEEG :: v_info () {
 
 void structEEG :: v_shiftX (double xfrom, double xto) {
 	EEG_Parent :: v_shiftX (xfrom, xto);
-	if (our sound   )  Function_shiftXTo (our sound.get(),    xfrom, xto);
-	if (our textgrid)  Function_shiftXTo (our textgrid.get(), xfrom, xto);
+	if (our sound    != NULL)  Function_shiftXTo (our sound,    xfrom, xto);
+	if (our textgrid != NULL)  Function_shiftXTo (our textgrid, xfrom, xto);
 }
 
 void structEEG :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	EEG_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our sound   )  our sound    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our textgrid)  our textgrid -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (our sound    != NULL)  our sound    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (our textgrid != NULL)  our textgrid -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 }
 
 void EEG_init (EEG me, double tmin, double tmax) {
@@ -76,11 +76,11 @@ void EEG_init (EEG me, double tmin, double tmax) {
 	my xmax = tmax;
 }
 
-autoEEG EEG_create (double tmin, double tmax) {
+EEG EEG_create (double tmin, double tmax) {
 	try {
 		autoEEG me = Thing_new (EEG);
-		EEG_init (me.get(), tmin, tmax);
-		return me;
+		EEG_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"EEG object not created.");
 	}
@@ -95,7 +95,7 @@ long EEG_getChannelNumber (EEG me, const char32 *channelName) {
 	return 0;
 }
 
-autoEEG EEG_readFromBdfFile (MelderFile file) {
+EEG EEG_readFromBdfFile (MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 		char buffer [81];
@@ -115,7 +115,7 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 		fread (buffer, 1, 44, f); buffer [44] = '\0';
 		trace (U"Version of data format: \"", Melder_peek8to32 (buffer), U"\"");
 		fread (buffer, 1, 8, f); buffer [8] = '\0';
-		long numberOfDataRecords = strtol (buffer, nullptr, 10);
+		long numberOfDataRecords = strtol (buffer, NULL, 10);
 		trace (U"Number of data records: ", numberOfDataRecords);
 		fread (buffer, 1, 8, f); buffer [8] = '\0';
 		double durationOfDataRecord = atof (buffer);
@@ -198,7 +198,7 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 		for (long record = 1; record <= numberOfDataRecords; record ++) {
 			for (long channel = 1; channel <= numberOfChannels; channel ++) {
 				double factor = channel == numberOfChannels ? 1.0 : physicalMinimum [channel] / digitalMinimum [channel];
-				if (channel < numberOfChannels - EEG_getNumberOfExtraSensors (him.get())) factor /= 1000000.0;
+				if (channel < numberOfChannels - EEG_getNumberOfExtraSensors (him.peek())) factor /= 1000000.0;
 				if (is24bit) {
 					fread (& dataBuffer [0], 3, numberOfSamplesPerDataRecord, f);
 					unsigned char *p = & dataBuffer [0];
@@ -233,7 +233,7 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 		}
 		autoTextGrid thee;
 		if (hasLetters) {
-			thee = TextGrid_create (0, duration, U"Mark Trigger", U"Mark Trigger");
+			thee.reset (TextGrid_create (0, duration, U"Mark Trigger", U"Mark Trigger"));
 			autoMelderString letters;
 			double time = NUMundefined;
 			for (long i = 1; i <= my nx; i ++) {
@@ -247,7 +247,7 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 						if (letters. string [0] == U'+') {
 							if (NUMdefined (time)) {
 								try {
-									TextGrid_insertPoint (thee.get(), 1, time, U"");
+									TextGrid_insertPoint (thee.peek(), 1, time, U"");
 								} catch (MelderError) {
 									Melder_throw (U"Did not insert empty mark (", letters. string, U") on Mark tier.");
 								}
@@ -262,13 +262,13 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 							try {
 								if (Melder_nequ (letters. string, U"Trigger-", 8)) {
 									try {
-										TextGrid_insertPoint (thee.get(), 2, time, & letters. string [8]);
+										TextGrid_insertPoint (thee.peek(), 2, time, & letters. string [8]);
 									} catch (MelderError) {
 										Melder_clearError ();
 										trace (U"Duplicate trigger at ", time, U" seconds: ", & letters. string [8]);
 									}
 								} else {
-									TextGrid_insertPoint (thee.get(), 1, time, & letters. string [0]);
+									TextGrid_insertPoint (thee.peek(), 1, time, & letters. string [0]);
 								}
 							} catch (MelderError) {
 								Melder_throw (U"Did not insert mark (", letters. string, U") on Trigger tier.");
@@ -280,132 +280,132 @@ autoEEG EEG_readFromBdfFile (MelderFile file) {
 				}
 			}
 			if (NUMdefined (time)) {
-				TextGrid_insertPoint (thee.get(), 1, time, U"");
+				TextGrid_insertPoint (thee.peek(), 1, time, U"");
 				time = NUMundefined;   // defensive
 			}
 		} else {
-			thee = TextGrid_create (0, duration,
-				numberOfStatusBits == 8 ? U"S1 S2 S3 S4 S5 S6 S7 S8" : U"S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16", U"");
+			thee.reset (TextGrid_create (0, duration,
+				numberOfStatusBits == 8 ? U"S1 S2 S3 S4 S5 S6 S7 S8" : U"S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16", U""));
 			for (int bit = 1; bit <= numberOfStatusBits; bit ++) {
 				unsigned long bitValue = 1 << (bit - 1);
-				IntervalTier tier = (IntervalTier) thy tiers->at [bit];
+				IntervalTier tier = (IntervalTier) thy tiers -> item [bit];
 				for (long i = 1; i <= my nx; i ++) {
 					unsigned long previousValue = i == 1 ? 0 : (long) my z [numberOfChannels] [i - 1];
 					unsigned long thisValue = (long) my z [numberOfChannels] [i];
 					if ((thisValue & bitValue) != (previousValue & bitValue)) {
 						double time = i == 1 ? 0.0 : my x1 + (i - 1.5) * my dx;
 						if (time != 0.0)
-							TextGrid_insertBoundary (thee.get(), bit, time);
+							TextGrid_insertBoundary (thee.peek(), bit, time);
 						if ((thisValue & bitValue) != 0)
-							TextGrid_setIntervalText (thee.get(), bit, tier -> intervals.size, U"1");
+							TextGrid_setIntervalText (thee.peek(), bit, tier -> intervals -> size, U"1");
 					}
 				}
 			}
 		}
 		f.close (file);
 		his channelNames = channelNames.transfer();
-		his sound = me.move();
-		his textgrid = thee.move();
-		if (EEG_getNumberOfCapElectrodes (him.get()) == 32) {
-			EEG_setChannelName (him.get(), 1, U"Fp1");
-			EEG_setChannelName (him.get(), 2, U"AF3");
-			EEG_setChannelName (him.get(), 3, U"F7");
-			EEG_setChannelName (him.get(), 4, U"F3");
-			EEG_setChannelName (him.get(), 5, U"FC1");
-			EEG_setChannelName (him.get(), 6, U"FC5");
-			EEG_setChannelName (him.get(), 7, U"T7");
-			EEG_setChannelName (him.get(), 8, U"C3");
-			EEG_setChannelName (him.get(), 9, U"CP1");
-			EEG_setChannelName (him.get(), 10, U"CP5");
-			EEG_setChannelName (him.get(), 11, U"P7");
-			EEG_setChannelName (him.get(), 12, U"P3");
-			EEG_setChannelName (him.get(), 13, U"Pz");
-			EEG_setChannelName (him.get(), 14, U"PO3");
-			EEG_setChannelName (him.get(), 15, U"O1");
-			EEG_setChannelName (him.get(), 16, U"Oz");
-			EEG_setChannelName (him.get(), 17, U"O2");
-			EEG_setChannelName (him.get(), 18, U"PO4");
-			EEG_setChannelName (him.get(), 19, U"P4");
-			EEG_setChannelName (him.get(), 20, U"P8");
-			EEG_setChannelName (him.get(), 21, U"CP6");
-			EEG_setChannelName (him.get(), 22, U"CP2");
-			EEG_setChannelName (him.get(), 23, U"C4");
-			EEG_setChannelName (him.get(), 24, U"T8");
-			EEG_setChannelName (him.get(), 25, U"FC6");
-			EEG_setChannelName (him.get(), 26, U"FC2");
-			EEG_setChannelName (him.get(), 27, U"F4");
-			EEG_setChannelName (him.get(), 28, U"F8");
-			EEG_setChannelName (him.get(), 29, U"AF4");
-			EEG_setChannelName (him.get(), 30, U"Fp2");
-			EEG_setChannelName (him.get(), 31, U"Fz");
-			EEG_setChannelName (him.get(), 32, U"Cz");
-		} else if (EEG_getNumberOfCapElectrodes (him.get()) == 64) {
-			EEG_setChannelName (him.get(), 1, U"Fp1");
-			EEG_setChannelName (him.get(), 2, U"AF7");
-			EEG_setChannelName (him.get(), 3, U"AF3");
-			EEG_setChannelName (him.get(), 4, U"F1");
-			EEG_setChannelName (him.get(), 5, U"F3");
-			EEG_setChannelName (him.get(), 6, U"F5");
-			EEG_setChannelName (him.get(), 7, U"F7");
-			EEG_setChannelName (him.get(), 8, U"FT7");
-			EEG_setChannelName (him.get(), 9, U"FC5");
-			EEG_setChannelName (him.get(), 10, U"FC3");
-			EEG_setChannelName (him.get(), 11, U"FC1");
-			EEG_setChannelName (him.get(), 12, U"C1");
-			EEG_setChannelName (him.get(), 13, U"C3");
-			EEG_setChannelName (him.get(), 14, U"C5");
-			EEG_setChannelName (him.get(), 15, U"T7");
-			EEG_setChannelName (him.get(), 16, U"TP7");
-			EEG_setChannelName (him.get(), 17, U"CP5");
-			EEG_setChannelName (him.get(), 18, U"CP3");
-			EEG_setChannelName (him.get(), 19, U"CP1");
-			EEG_setChannelName (him.get(), 20, U"P1");
-			EEG_setChannelName (him.get(), 21, U"P3");
-			EEG_setChannelName (him.get(), 22, U"P5");
-			EEG_setChannelName (him.get(), 23, U"P7");
-			EEG_setChannelName (him.get(), 24, U"P9");
-			EEG_setChannelName (him.get(), 25, U"PO7");
-			EEG_setChannelName (him.get(), 26, U"PO3");
-			EEG_setChannelName (him.get(), 27, U"O1");
-			EEG_setChannelName (him.get(), 28, U"Iz");
-			EEG_setChannelName (him.get(), 29, U"Oz");
-			EEG_setChannelName (him.get(), 30, U"POz");
-			EEG_setChannelName (him.get(), 31, U"Pz");
-			EEG_setChannelName (him.get(), 32, U"CPz");
-			EEG_setChannelName (him.get(), 33, U"Fpz");
-			EEG_setChannelName (him.get(), 34, U"Fp2");
-			EEG_setChannelName (him.get(), 35, U"AF8");
-			EEG_setChannelName (him.get(), 36, U"AF4");
-			EEG_setChannelName (him.get(), 37, U"AFz");
-			EEG_setChannelName (him.get(), 38, U"Fz");
-			EEG_setChannelName (him.get(), 39, U"F2");
-			EEG_setChannelName (him.get(), 40, U"F4");
-			EEG_setChannelName (him.get(), 41, U"F6");
-			EEG_setChannelName (him.get(), 42, U"F8");
-			EEG_setChannelName (him.get(), 43, U"FT8");
-			EEG_setChannelName (him.get(), 44, U"FC6");
-			EEG_setChannelName (him.get(), 45, U"FC4");
-			EEG_setChannelName (him.get(), 46, U"FC2");
-			EEG_setChannelName (him.get(), 47, U"FCz");
-			EEG_setChannelName (him.get(), 48, U"Cz");
-			EEG_setChannelName (him.get(), 49, U"C2");
-			EEG_setChannelName (him.get(), 50, U"C4");
-			EEG_setChannelName (him.get(), 51, U"C6");
-			EEG_setChannelName (him.get(), 52, U"T8");
-			EEG_setChannelName (him.get(), 53, U"TP8");
-			EEG_setChannelName (him.get(), 54, U"CP6");
-			EEG_setChannelName (him.get(), 55, U"CP4");
-			EEG_setChannelName (him.get(), 56, U"CP2");
-			EEG_setChannelName (him.get(), 57, U"P2");
-			EEG_setChannelName (him.get(), 58, U"P4");
-			EEG_setChannelName (him.get(), 59, U"P6");
-			EEG_setChannelName (him.get(), 60, U"P8");
-			EEG_setChannelName (him.get(), 61, U"P10");
-			EEG_setChannelName (him.get(), 62, U"PO8");
-			EEG_setChannelName (him.get(), 63, U"PO4");
-			EEG_setChannelName (him.get(), 64, U"O2");
+		his sound = me.transfer();
+		his textgrid = thee.transfer();
+		if (EEG_getNumberOfCapElectrodes (him.peek()) == 32) {
+			EEG_setChannelName (him.peek(), 1, U"Fp1");
+			EEG_setChannelName (him.peek(), 2, U"AF3");
+			EEG_setChannelName (him.peek(), 3, U"F7");
+			EEG_setChannelName (him.peek(), 4, U"F3");
+			EEG_setChannelName (him.peek(), 5, U"FC1");
+			EEG_setChannelName (him.peek(), 6, U"FC5");
+			EEG_setChannelName (him.peek(), 7, U"T7");
+			EEG_setChannelName (him.peek(), 8, U"C3");
+			EEG_setChannelName (him.peek(), 9, U"CP1");
+			EEG_setChannelName (him.peek(), 10, U"CP5");
+			EEG_setChannelName (him.peek(), 11, U"P7");
+			EEG_setChannelName (him.peek(), 12, U"P3");
+			EEG_setChannelName (him.peek(), 13, U"Pz");
+			EEG_setChannelName (him.peek(), 14, U"PO3");
+			EEG_setChannelName (him.peek(), 15, U"O1");
+			EEG_setChannelName (him.peek(), 16, U"Oz");
+			EEG_setChannelName (him.peek(), 17, U"O2");
+			EEG_setChannelName (him.peek(), 18, U"PO4");
+			EEG_setChannelName (him.peek(), 19, U"P4");
+			EEG_setChannelName (him.peek(), 20, U"P8");
+			EEG_setChannelName (him.peek(), 21, U"CP6");
+			EEG_setChannelName (him.peek(), 22, U"CP2");
+			EEG_setChannelName (him.peek(), 23, U"C4");
+			EEG_setChannelName (him.peek(), 24, U"T8");
+			EEG_setChannelName (him.peek(), 25, U"FC6");
+			EEG_setChannelName (him.peek(), 26, U"FC2");
+			EEG_setChannelName (him.peek(), 27, U"F4");
+			EEG_setChannelName (him.peek(), 28, U"F8");
+			EEG_setChannelName (him.peek(), 29, U"AF4");
+			EEG_setChannelName (him.peek(), 30, U"Fp2");
+			EEG_setChannelName (him.peek(), 31, U"Fz");
+			EEG_setChannelName (him.peek(), 32, U"Cz");
+		} else if (EEG_getNumberOfCapElectrodes (him.peek()) == 64) {
+			EEG_setChannelName (him.peek(), 1, U"Fp1");
+			EEG_setChannelName (him.peek(), 2, U"AF7");
+			EEG_setChannelName (him.peek(), 3, U"AF3");
+			EEG_setChannelName (him.peek(), 4, U"F1");
+			EEG_setChannelName (him.peek(), 5, U"F3");
+			EEG_setChannelName (him.peek(), 6, U"F5");
+			EEG_setChannelName (him.peek(), 7, U"F7");
+			EEG_setChannelName (him.peek(), 8, U"FT7");
+			EEG_setChannelName (him.peek(), 9, U"FC5");
+			EEG_setChannelName (him.peek(), 10, U"FC3");
+			EEG_setChannelName (him.peek(), 11, U"FC1");
+			EEG_setChannelName (him.peek(), 12, U"C1");
+			EEG_setChannelName (him.peek(), 13, U"C3");
+			EEG_setChannelName (him.peek(), 14, U"C5");
+			EEG_setChannelName (him.peek(), 15, U"T7");
+			EEG_setChannelName (him.peek(), 16, U"TP7");
+			EEG_setChannelName (him.peek(), 17, U"CP5");
+			EEG_setChannelName (him.peek(), 18, U"CP3");
+			EEG_setChannelName (him.peek(), 19, U"CP1");
+			EEG_setChannelName (him.peek(), 20, U"P1");
+			EEG_setChannelName (him.peek(), 21, U"P3");
+			EEG_setChannelName (him.peek(), 22, U"P5");
+			EEG_setChannelName (him.peek(), 23, U"P7");
+			EEG_setChannelName (him.peek(), 24, U"P9");
+			EEG_setChannelName (him.peek(), 25, U"PO7");
+			EEG_setChannelName (him.peek(), 26, U"PO3");
+			EEG_setChannelName (him.peek(), 27, U"O1");
+			EEG_setChannelName (him.peek(), 28, U"Iz");
+			EEG_setChannelName (him.peek(), 29, U"Oz");
+			EEG_setChannelName (him.peek(), 30, U"POz");
+			EEG_setChannelName (him.peek(), 31, U"Pz");
+			EEG_setChannelName (him.peek(), 32, U"CPz");
+			EEG_setChannelName (him.peek(), 33, U"Fpz");
+			EEG_setChannelName (him.peek(), 34, U"Fp2");
+			EEG_setChannelName (him.peek(), 35, U"AF8");
+			EEG_setChannelName (him.peek(), 36, U"AF4");
+			EEG_setChannelName (him.peek(), 37, U"AFz");
+			EEG_setChannelName (him.peek(), 38, U"Fz");
+			EEG_setChannelName (him.peek(), 39, U"F2");
+			EEG_setChannelName (him.peek(), 40, U"F4");
+			EEG_setChannelName (him.peek(), 41, U"F6");
+			EEG_setChannelName (him.peek(), 42, U"F8");
+			EEG_setChannelName (him.peek(), 43, U"FT8");
+			EEG_setChannelName (him.peek(), 44, U"FC6");
+			EEG_setChannelName (him.peek(), 45, U"FC4");
+			EEG_setChannelName (him.peek(), 46, U"FC2");
+			EEG_setChannelName (him.peek(), 47, U"FCz");
+			EEG_setChannelName (him.peek(), 48, U"Cz");
+			EEG_setChannelName (him.peek(), 49, U"C2");
+			EEG_setChannelName (him.peek(), 50, U"C4");
+			EEG_setChannelName (him.peek(), 51, U"C6");
+			EEG_setChannelName (him.peek(), 52, U"T8");
+			EEG_setChannelName (him.peek(), 53, U"TP8");
+			EEG_setChannelName (him.peek(), 54, U"CP6");
+			EEG_setChannelName (him.peek(), 55, U"CP4");
+			EEG_setChannelName (him.peek(), 56, U"CP2");
+			EEG_setChannelName (him.peek(), 57, U"P2");
+			EEG_setChannelName (him.peek(), 58, U"P4");
+			EEG_setChannelName (him.peek(), 59, U"P6");
+			EEG_setChannelName (him.peek(), 60, U"P8");
+			EEG_setChannelName (him.peek(), 61, U"P10");
+			EEG_setChannelName (him.peek(), 62, U"PO8");
+			EEG_setChannelName (him.peek(), 63, U"PO4");
+			EEG_setChannelName (him.peek(), 64, U"O2");
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"BDF file not read.");
 	}
@@ -435,14 +435,14 @@ void EEG_filter (EEG me, double lowFrequency, double lowWidth, double highFreque
 	NUMfft_Table_init (& fftTable, nsampFFT);
 */
 		for (long ichan = 1; ichan <= my numberOfChannels - EEG_getNumberOfExtraSensors (me); ichan ++) {
-			autoSound channel = Sound_extractChannel (my sound.get(), ichan);
-			autoSpectrum spec = Sound_to_Spectrum (channel.get(), true);
-			Spectrum_passHannBand (spec.get(), lowFrequency, 0.0, lowWidth);
-			Spectrum_passHannBand (spec.get(), 0.0, highFrequency, highWidth);
+			autoSound channel = Sound_extractChannel (my sound, ichan);
+			autoSpectrum spec = Sound_to_Spectrum (channel.peek(), TRUE);
+			Spectrum_passHannBand (spec.peek(), lowFrequency, 0.0, lowWidth);
+			Spectrum_passHannBand (spec.peek(), 0.0, highFrequency, highWidth);
 			if (doNotch50Hz) {
-				Spectrum_stopHannBand (spec.get(), 48.0, 52.0, 1.0);
+				Spectrum_stopHannBand (spec.peek(), 48.0, 52.0, 1.0);
 			}
-			autoSound him = Spectrum_to_Sound (spec.get());
+			autoSound him = Spectrum_to_Sound (spec.peek());
 			NUMvector_copyElements (his z [1], my sound -> z [ichan], 1, my sound -> nx);
 		}
 	} catch (MelderError) {
@@ -537,15 +537,15 @@ void EEG_setChannelToZero (EEG me, const char32 *channelName) {
 
 void EEG_removeTriggers (EEG me, int which_Melder_STRING, const char32 *criterion) {
 	try {
-		if (my textgrid -> tiers->size < 2 || ! Melder_equ (my textgrid -> tiers->at [2] -> name, U"Trigger"))
+		if (my textgrid -> numberOfTiers () < 2 || ! Melder_equ (my textgrid -> tier (2) -> name, U"Trigger"))
 			Melder_throw (me, U" does not have a Trigger channel.");
-		TextGrid_removePoints (my textgrid.get(), 2, which_Melder_STRING, criterion);
+		TextGrid_removePoints (my textgrid, 2, which_Melder_STRING, criterion);
 	} catch (MelderError) {
 		Melder_throw (me, U": triggers not removed.");
 	}
 }
 
-autoEEG EEG_extractChannel (EEG me, long channelNumber) {
+EEG EEG_extractChannel (EEG me, long channelNumber) {
 	try {
 		if (channelNumber < 1 || channelNumber > my numberOfChannels)
 			Melder_throw (U"No channel ", channelNumber, U".");
@@ -553,15 +553,15 @@ autoEEG EEG_extractChannel (EEG me, long channelNumber) {
 		thy numberOfChannels = 1;
 		thy channelNames = NUMvector <char32 *> (1, 1);
 		thy channelNames [1] = Melder_dup (my channelNames [1]);
-		thy sound = Sound_extractChannel (my sound.get(), channelNumber);
-		thy textgrid = Data_copy (my textgrid.get());
-		return thee;
+		thy sound = Sound_extractChannel (my sound, channelNumber);
+		thy textgrid = Data_copy (my textgrid);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": channel ", channelNumber, U" not extracted.");
 	}
 }
 
-autoEEG EEG_extractChannel (EEG me, const char32 *channelName) {
+EEG EEG_extractChannel (EEG me, const char32 *channelName) {
 	try {
 		long channelNumber = EEG_getChannelNumber (me, channelName);
 		if (channelNumber == 0)
@@ -572,15 +572,15 @@ autoEEG EEG_extractChannel (EEG me, const char32 *channelName) {
 	}
 }
 
-autoEEG EEGs_concatenate (OrderedOf<structEEG>* me) {
+EEG EEGs_concatenate (Collection me) {
 	try {
 		if (my size < 1)
 			Melder_throw (U"Cannot concatenate zero EEG objects.");
-		EEG first = my at [1];
+		EEG first = (EEG) my item [1];
 		long numberOfChannels = first -> numberOfChannels;
 		char32 **channelNames = first -> channelNames;
 		for (long ieeg = 2; ieeg <= my size; ieeg ++) {
-			EEG other = my at [ieeg];
+			EEG other = (EEG) my item [ieeg];
 			if (other -> numberOfChannels != numberOfChannels)
 				Melder_throw (U"The number of channels of ", other, U" does not match the number of channels of ", first, U".");
 			for (long ichan = 1; ichan <= numberOfChannels; ichan ++) {
@@ -588,12 +588,14 @@ autoEEG EEGs_concatenate (OrderedOf<structEEG>* me) {
 					Melder_throw (U"Channel ", ichan, U" has a different name in ", other, U" (", other -> channelNames [ichan], U") than in ", first, U" (", channelNames [ichan], U").");
 			}
 		}
-		OrderedOf<structSound> soundList;
-		OrderedOf<structTextGrid> textgridList;
+		autoOrdered soundCollection = Ordered_create ();
+		Collection_dontOwnItems (soundCollection.peek());
+		autoOrdered textgridCollection = Ordered_create ();
+		Collection_dontOwnItems (textgridCollection.peek());
 		for (long ieeg = 1; ieeg <= my size; ieeg ++) {
-			EEG eeg = my at [ieeg];
-			soundList. addItem_ref (eeg -> sound.get());
-			textgridList. addItem_ref (eeg -> textgrid.get());
+			EEG eeg = (EEG) my item [ieeg];
+			Collection_addItem (soundCollection.peek(), eeg -> sound);
+			Collection_addItem (textgridCollection.peek(), eeg -> textgrid);
 		}
 		autoEEG thee = Thing_new (EEG);
 		thy numberOfChannels = numberOfChannels;
@@ -601,17 +603,17 @@ autoEEG EEGs_concatenate (OrderedOf<structEEG>* me) {
 		for (long ichan = 1; ichan <= numberOfChannels; ichan ++) {
 			thy channelNames [ichan] = Melder_dup (channelNames [ichan]);
 		}
-		thy sound = Sounds_concatenate (soundList, 0.0);
-		thy textgrid = TextGrids_concatenate (& textgridList);
+		thy sound = Sounds_concatenate_e (soundCollection.peek(), 0.0);
+		thy textgrid = TextGrids_concatenate (textgridCollection.peek());
 		thy xmin = thy textgrid -> xmin;
 		thy xmax = thy textgrid -> xmax;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrids not concatenated.");
 	}
 }
 
-autoEEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes) {
+EEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes) {
 	try {
 		autoEEG thee = Thing_new (EEG);
 		thy numberOfChannels = my numberOfChannels;
@@ -619,11 +621,11 @@ autoEEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes) {
 		for (long ichan = 1; ichan <= my numberOfChannels; ichan ++) {
 			thy channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
-		thy sound = Sound_extractPart (my sound.get(), tmin, tmax, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
-		thy textgrid = TextGrid_extractPart (my textgrid.get(), tmin, tmax, preserveTimes);
+		thy sound = Sound_extractPart (my sound, tmin, tmax, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
+		thy textgrid = TextGrid_extractPart (my textgrid, tmin, tmax, preserveTimes);
 		thy xmin = thy textgrid -> xmin;
 		thy xmax = thy textgrid -> xmax;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": part not extracted.");
 	}
@@ -631,22 +633,24 @@ autoEEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes) {
 
 void EEG_replaceTextGrid (EEG me, TextGrid textgrid) {
 	try {
-		my textgrid = Data_copy (textgrid);
+		autoTextGrid textgrid2 = Data_copy (textgrid);
+		forget (my textgrid);
+		my textgrid = textgrid2.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": TextGrid not replaced with ", textgrid, U".");
 	}
 }
 
-autoMixingMatrix EEG_to_MixingMatrix (EEG me, long maxNumberOfIterations, double tol, int method) {
+MixingMatrix EEG_to_MixingMatrix (EEG me, long maxNumberOfIterations, double tol, int method) {
 	try {
-		autoCrossCorrelationTableList tables = Sound_to_CrossCorrelationTableList (my sound.get(), 0.0, 0.0, 0.002, 1);
+		autoCrossCorrelationTables tables = Sound_to_CrossCorrelationTables (my sound, 0.0, 0.0, 0.002, 1);
 		autoMixingMatrix thee = MixingMatrix_create (my sound -> ny, my sound -> ny);
 		for (long ichan = 1; ichan <= my numberOfChannels; ichan ++) {
-			TableOfReal_setRowLabel (thee.get(), ichan, my channelNames [ichan]);
-			TableOfReal_setColumnLabel (thee.get(), ichan, Melder_cat (U"ic", ichan));
+			TableOfReal_setRowLabel (thee.peek(), ichan, my channelNames [ichan]);
+			TableOfReal_setColumnLabel (thee.peek(), ichan, Melder_cat (U"ic", ichan));
 		}
-		MixingMatrix_and_CrossCorrelationTableList_improveUnmixing (thee.get(), tables.get(), maxNumberOfIterations, tol, method);
-		return thee;
+		MixingMatrix_and_CrossCorrelationTables_improveUnmixing (thee.peek(), tables.peek(), maxNumberOfIterations, tol, method);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MixingMatrix created.");
 	}
diff --git a/EEG/EEG.h b/EEG/EEG.h
index 884f9dd..e3314ab 100644
--- a/EEG/EEG.h
+++ b/EEG/EEG.h
@@ -24,12 +24,13 @@
 #include "../dwtools/ICA.h"
 
 #include "EEG_def.h"
+oo_CLASS_CREATE (EEG, Function);
 
-autoEEG EEG_create (double tmin, double tmax);
+EEG EEG_create (double tmin, double tmax);
 
-autoEEG EEG_readFromBdfFile (MelderFile file);
+EEG EEG_readFromBdfFile (MelderFile file);
 
-autoEEG EEGs_concatenate (OrderedOf<structEEG>* me);
+EEG EEGs_concatenate (Collection me);
 
 void EEG_init (EEG me, double tmin, double tmax);
 long EEG_getChannelNumber (EEG me, const char32 *channelName);
@@ -52,13 +53,13 @@ void EEG_subtractMeanChannel (EEG me, long fromChannel, long toChannel);
 void EEG_setChannelToZero (EEG me, long channelNumber);
 void EEG_setChannelToZero (EEG me, const char32 *channelName);
 void EEG_removeTriggers (EEG me, int which_Melder_STRING, const char32 *criterion);
-autoEEG EEG_extractChannel (EEG me, long channelNumber);
-autoEEG EEG_extractChannel (EEG me, const char32 *channelName);
-static inline autoSound EEG_extractSound (EEG me) { return Data_copy (my sound.get()); }
-static inline autoTextGrid EEG_extractTextGrid (EEG me) { return Data_copy (my textgrid.get()); }
-autoEEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes);
+EEG EEG_extractChannel (EEG me, long channelNumber);
+EEG EEG_extractChannel (EEG me, const char32 *channelName);
+static inline Sound EEG_extractSound (EEG me) { return Data_copy (my sound); }
+static inline TextGrid EEG_extractTextGrid (EEG me) { return Data_copy (my textgrid); }
+EEG EEG_extractPart (EEG me, double tmin, double tmax, bool preserveTimes);
 void EEG_replaceTextGrid (EEG me, TextGrid textgrid);
-autoMixingMatrix EEG_to_MixingMatrix (EEG me, long maxNumberOfIterations, double tol, int method);
+MixingMatrix EEG_to_MixingMatrix (EEG me, long maxNumberOfIterations, double tol, int method);
 
 /* End of file EEG.h */
 #endif
diff --git a/EEG/EEGWindow.cpp b/EEG/EEGWindow.cpp
index 939985a..ca8ab16 100644
--- a/EEG/EEGWindow.cpp
+++ b/EEG/EEGWindow.cpp
@@ -1,6 +1,6 @@
 /* EEGWindow.cpp
  *
- * Copyright (C) 2011-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@ Thing_implement (EEGWindow, TextGridEditor, 0);
 #include "prefs_copyToInstance.h"
 #include "EEGWindow_prefs.h"
 
-static void menu_cb_EEGWindowHelp (EEGWindow, EDITOR_ARGS_DIRECT) { Melder_help (U"EEG window"); }
+static void menu_cb_EEGWindowHelp (EDITOR_ARGS) { EDITOR_IAM (EEGWindow); Melder_help (U"EEG window"); }
 
 void structEEGWindow :: v_createMenus () {
 	EEGWindow_Parent :: v_createMenus ();
@@ -41,20 +41,22 @@ void structEEGWindow :: v_createHelpMenuItems (EditorMenu menu) {
 }
 
 const char32 * structEEGWindow :: v_getChannelName (long channelNumber) {
-	Melder_assert (our eeg != nullptr);
+	Melder_assert (our eeg != NULL);
 	return our eeg -> channelNames [channelNumber];
 }
 
-static void menu_cb_ExtractSelectedEEG_preserveTimes (EEGWindow me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtractSelectedEEG_preserveTimes (EDITOR_ARGS) {
+	EDITOR_IAM (EEGWindow);
 	if (my d_endSelection <= my d_startSelection) Melder_throw (U"No selection.");
 	autoEEG extract = EEG_extractPart (my eeg, my d_startSelection, my d_endSelection, true);
-	Editor_broadcastPublication (me, extract.move());
+	Editor_broadcastPublication (me, extract.transfer());
 }
 
-static void menu_cb_ExtractSelectedEEG_timeFromZero (EEGWindow me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtractSelectedEEG_timeFromZero (EDITOR_ARGS) {
+	EDITOR_IAM (EEGWindow);
 	if (my d_endSelection <= my d_startSelection) Melder_throw (U"No selection.");
 	autoEEG extract = EEG_extractPart (my eeg, my d_startSelection, my d_endSelection, false);
-	Editor_broadcastPublication (me, extract.move());
+	Editor_broadcastPublication (me, extract.transfer());
 }
 
 void structEEGWindow :: v_createMenuItems_file_extract (EditorMenu menu) {
@@ -73,14 +75,14 @@ void structEEGWindow :: v_updateMenuItems_file () {
 
 void EEGWindow_init (EEGWindow me, const char32 *title, EEG eeg) {
 	my eeg = eeg;   // before initing, because initing will already draw!
-	TextGridEditor_init (me, title, eeg -> textgrid.get(), eeg -> sound.get(), false, nullptr, nullptr);
+	TextGridEditor_init (me, title, eeg -> textgrid, eeg -> sound, false, NULL, NULL);
 }
 
-autoEEGWindow EEGWindow_create (const char32 *title, EEG eeg) {
+EEGWindow EEGWindow_create (const char32 *title, EEG eeg) {
 	try {
 		autoEEGWindow me = Thing_new (EEGWindow);
-		EEGWindow_init (me.get(), title, eeg);
-		return me;
+		EEGWindow_init (me.peek(), title, eeg);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"EEG window not created.");
 	}
diff --git a/EEG/EEGWindow.h b/EEG/EEGWindow.h
index c6f7107..06d51a7 100644
--- a/EEG/EEGWindow.h
+++ b/EEG/EEGWindow.h
@@ -22,7 +22,7 @@
 #include "TextGridEditor.h"
 #include "EEG.h"
 
-Thing_define (EEGWindow, TextGridEditor) {
+Thing_define (EEGWindow, TextGridEditor) { public:
 	EEG eeg;
 	GuiMenuItem extractSelectedEEGPreserveTimesButton, extractSelectedEEGTimeFromZeroButton;
 
@@ -50,7 +50,7 @@ Thing_define (EEGWindow, TextGridEditor) {
 
 void EEGWindow_init (EEGWindow me, const char32 *title, EEG eeg);
 
-autoEEGWindow EEGWindow_create (const char32 *title, EEG eeg);
+EEGWindow EEGWindow_create (const char32 *title, EEG eeg);
 
 /* End of file EEGWindow.h */
 #endif
diff --git a/EEG/EEG_def.h b/EEG/EEG_def.h
index fb24071..7708ebb 100644
--- a/EEG/EEG_def.h
+++ b/EEG/EEG_def.h
@@ -23,8 +23,8 @@ oo_DEFINE_CLASS (EEG, Function)
 
 	oo_LONG (numberOfChannels)
 	oo_STRING_VECTOR (channelNames, numberOfChannels)
-	oo_AUTO_OBJECT (Sound, 2, sound)
-	oo_AUTO_OBJECT (TextGrid, 0, textgrid)
+	oo_OBJECT (Sound, 2, sound)
+	oo_OBJECT (TextGrid, 0, textgrid)
 
 	#if oo_DECLARING
 		void v_info ()
@@ -40,5 +40,4 @@ oo_DEFINE_CLASS (EEG, Function)
 oo_END_CLASS (EEG)
 #undef ooSTRUCT
 
-
 /* End of file EEG_def.h */
diff --git a/EEG/ERP.cpp b/EEG/ERP.cpp
index 5047c96..5de9beb 100644
--- a/EEG/ERP.cpp
+++ b/EEG/ERP.cpp
@@ -1,6 +1,6 @@
 /* ERP.cpp
  *
- * Copyright (C) 2011-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -88,12 +88,12 @@ void ERP_drawChannel_number (ERP me, Graphics graphics, long channelNumber, doub
 		Graphics_textBottom (graphics, true, U"Time (s)");
 		Graphics_marksBottom (graphics, 2, true, true, false);
 		if (0.0 > tmin && 0.0 < tmax)
-			Graphics_markBottom (graphics, 0.0, true, true, true, nullptr);
-		Graphics_markLeft (graphics, vmin, true, true, false, nullptr);
-		Graphics_markLeft (graphics, vmax, true, true, false, nullptr);
-			Graphics_markBottom (graphics, 0.0, true, true, true, nullptr);
+			Graphics_markBottom (graphics, 0.0, true, true, true, NULL);
+		Graphics_markLeft (graphics, vmin, true, true, false, NULL);
+		Graphics_markLeft (graphics, vmax, true, true, false, NULL);
+			Graphics_markBottom (graphics, 0.0, true, true, true, NULL);
 		if (vmin != 0.0 && vmax != 0.0 && (vmin > 0.0) != (vmax > 0.0)) {
-			Graphics_markLeft (graphics, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (graphics, 0.0, true, true, true, NULL);
 		}
 	}
 
@@ -103,7 +103,7 @@ void ERP_drawChannel_name (ERP me, Graphics graphics, const char32 *channelName,
 	ERP_drawChannel_number (me, graphics, ERP_getChannelNumber (me, channelName), tmin, tmax, vmin, vmax, garnish);
 }
 
-autoTable ERP_tabulate (ERP me, bool includeSampleNumbers, bool includeTime, int timeDecimals, int voltageDecimals, int units) {
+Table ERP_tabulate (ERP me, bool includeSampleNumbers, bool includeTime, int timeDecimals, int voltageDecimals, int units) {
 	double voltageScaling = 1.0;
 	const char32 *unitText = U"(V)";
 	if (units == 2) {
@@ -114,30 +114,30 @@ autoTable ERP_tabulate (ERP me, bool includeSampleNumbers, bool includeTime, int
 	try {
 		autoTable thee = Table_createWithoutColumnNames (my nx, includeSampleNumbers + includeTime + my ny);
 		long icol = 0;
-		if (includeSampleNumbers) Table_setColumnLabel (thee.get(), ++ icol, U"sample");
-		if (includeTime) Table_setColumnLabel (thee.get(), ++ icol, U"time(s)");
+		if (includeSampleNumbers) Table_setColumnLabel (thee.peek(), ++ icol, U"sample");
+		if (includeTime) Table_setColumnLabel (thee.peek(), ++ icol, U"time(s)");
 		for (long ichan = 1; ichan <= my ny; ichan ++) {
-			Table_setColumnLabel (thee.get(), ++ icol, Melder_cat (my channelNames [ichan], unitText));
+			Table_setColumnLabel (thee.peek(), ++ icol, Melder_cat (my channelNames [ichan], unitText));
 		}
 		for (long isamp = 1; isamp <= my nx; isamp ++) {
 			icol = 0;
-			if (includeSampleNumbers) Table_setNumericValue (thee.get(), isamp, ++ icol, isamp);
-			if (includeTime) Table_setStringValue (thee.get(), isamp, ++ icol, Melder_fixed (my x1 + (isamp - 1) * my dx, timeDecimals));
+			if (includeSampleNumbers) Table_setNumericValue (thee.peek(), isamp, ++ icol, isamp);
+			if (includeTime) Table_setStringValue (thee.peek(), isamp, ++ icol, Melder_fixed (my x1 + (isamp - 1) * my dx, timeDecimals));
 			for (long ichan = 1; ichan <= my ny; ichan ++) {
-				Table_setStringValue (thee.get(), isamp, ++ icol, Melder_fixed (voltageScaling * my z [ichan] [isamp], voltageDecimals));
+				Table_setStringValue (thee.peek(), isamp, ++ icol, Melder_fixed (voltageScaling * my z [ichan] [isamp], voltageDecimals));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
 }
 
-autoSound ERP_downto_Sound (ERP me) {
+Sound ERP_downto_Sound (ERP me) {
 	try {
 		autoSound thee = Thing_new (Sound);
-		my structSound :: v_copy (thee.get());
-		return thee;
+		my structSound :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
diff --git a/EEG/ERP.h b/EEG/ERP.h
index d301e92..2d9b24f 100644
--- a/EEG/ERP.h
+++ b/EEG/ERP.h
@@ -22,6 +22,7 @@
 #include "Sound.h"
 
 #include "ERP_def.h"
+oo_CLASS_CREATE (ERP, Sound);
 
 /**
 	Look up the channel number from its name.
@@ -41,12 +42,12 @@ void ERP_drawScalp_garnish (Graphics graphics, double vmin, double vmax, enum kG
 void ERP_drawChannel_number (ERP me, Graphics graphics, long channelNumber, double tmin, double tmax, double vmin, double vmax, bool garnish);
 void ERP_drawChannel_name (ERP me, Graphics graphics, const char32 *channelName, double tmin, double tmax, double vmin, double vmax, bool garnish);
 
-autoTable ERP_tabulate (ERP me, bool includeSampleNumbers, bool includeTime, int timeDecimals, int voltageDecimals, int units);
+Table ERP_tabulate (ERP me, bool includeSampleNumbers, bool includeTime, int timeDecimals, int voltageDecimals, int units);
 
 /**
 	Extract the Sound part from the ERP. The channel names are lost.
 */
-autoSound ERP_downto_Sound (ERP me);
+Sound ERP_downto_Sound (ERP me);
 
 /* End of file ERP.h */
 #endif
diff --git a/EEG/ERPTier.cpp b/EEG/ERPTier.cpp
index fb680bd..c427bb8 100644
--- a/EEG/ERPTier.cpp
+++ b/EEG/ERPTier.cpp
@@ -1,6 +1,6 @@
 /* ERPTier.cpp
  *
- * Copyright (C) 2011-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -44,7 +44,19 @@ Thing_implement (ERPPoint, AnyPoint, 0);
 
 /***** ERPTier *****/
 
-Thing_implement (ERPTier, AnyTier, 0);
+Thing_implement (ERPTier, Function, 0);
+
+void structERPTier :: v_shiftX (double xfrom, double xto) {
+	ERPTier_Parent :: v_shiftX (xfrom, xto);
+	//if (our sound    != NULL)  Function_shiftXTo (our sound,    xfrom, xto);
+	//if (our textgrid != NULL)  Function_shiftXTo (our textgrid, xfrom, xto);
+}
+
+void structERPTier :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
+	ERPTier_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	//if (our sound    != NULL)  our sound    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	//if (our textgrid != NULL)  our textgrid -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+}
 
 long ERPTier_getChannelNumber (ERPTier me, const char32 *channelName) {
 	for (long ichan = 1; ichan <= my numberOfChannels; ichan ++) {
@@ -56,20 +68,20 @@ long ERPTier_getChannelNumber (ERPTier me, const char32 *channelName) {
 }
 
 double ERPTier_getMean (ERPTier me, long pointNumber, long channelNumber, double tmin, double tmax) {
-	if (pointNumber < 1 || pointNumber > my points.size) return NUMundefined;
+	if (pointNumber < 1 || pointNumber > my events -> size) return NUMundefined;
 	if (channelNumber < 1 || channelNumber > my numberOfChannels) return NUMundefined;
-	ERPPoint point = my points.at [pointNumber];
-	return Vector_getMean (point -> erp.get(), tmin, tmax, channelNumber);
+	ERPPoint point = my event (pointNumber);
+	return Vector_getMean (point -> erp, tmin, tmax, channelNumber);
 }
 
 double ERPTier_getMean (ERPTier me, long pointNumber, const char32 *channelName, double tmin, double tmax) {
 	return ERPTier_getMean (me, pointNumber, ERPTier_getChannelNumber (me, channelName), tmin, tmax);
 }
 
-static autoERPTier EEG_PointProcess_to_ERPTier (EEG me, PointProcess events, double fromTime, double toTime) {
+static ERPTier EEG_PointProcess_to_ERPTier (EEG me, PointProcess events, double fromTime, double toTime) {
 	try {
 		autoERPTier thee = Thing_new (ERPTier);
-		Function_init (thee.get(), fromTime, toTime);
+		Function_init (thee.peek(), fromTime, toTime);
 		thy numberOfChannels = my numberOfChannels - EEG_getNumberOfExtraSensors (me);
 		Melder_assert (thy numberOfChannels > 0);
 		thy channelNames = NUMvector <char32 *> (1, thy numberOfChannels);
@@ -77,6 +89,7 @@ static autoERPTier EEG_PointProcess_to_ERPTier (EEG me, PointProcess events, dou
 			thy channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
 		long numberOfEvents = events -> nt;
+		thy events = SortedSetOfDouble_create ();
 		double soundDuration = toTime - fromTime;
 		double samplingPeriod = my sound -> dx;
 		long numberOfSamples = (long) floor (soundDuration / samplingPeriod) + 1;
@@ -100,103 +113,105 @@ static autoERPTier EEG_PointProcess_to_ERPTier (EEG me, PointProcess events, dou
 					event -> erp -> z [ichannel] [isample] = jsample < 1 || jsample > my sound -> nx ? 0.0 : my sound -> z [ichannel] [jsample];
 				}
 			}
-			thy points. addItem_move (event.move());
+			Collection_addItem (thy events, event.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERP analysis not performed.");
 	}
 }
 
-autoERPTier EEG_to_ERPTier_bit (EEG me, double fromTime, double toTime, int markerBit) {
+ERPTier EEG_to_ERPTier_bit (EEG me, double fromTime, double toTime, int markerBit) {
 	try {
-		autoPointProcess events = TextGrid_getStartingPoints (my textgrid.get(), markerBit, kMelder_string_EQUAL_TO, U"1");
-		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.get(), fromTime, toTime);
-		return thee;
+		autoPointProcess events = TextGrid_getStartingPoints (my textgrid, markerBit, kMelder_string_EQUAL_TO, U"1");
+		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.peek(), fromTime, toTime);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERPTier not created.");
 	}
 }
 
-static autoPointProcess TextGrid_getStartingPoints_multiNumeric (TextGrid me, uint16_t number) {
+static PointProcess TextGrid_getStartingPoints_multiNumeric (TextGrid me, uint16_t number) {
 	try {
-		autoPointProcess thee;
-		int numberOfBits = my tiers->size;
+		autoPointProcess thee = NULL;
+		int numberOfBits = my numberOfTiers();
 		for (int ibit = 0; ibit < numberOfBits; ibit ++) {
 			(void) TextGrid_checkSpecifiedTierIsIntervalTier (me, ibit + 1);
 			if (number & (1 << ibit)) {
 				autoPointProcess bitEvents = TextGrid_getStartingPoints (me, ibit + 1, kMelder_string_EQUAL_TO, U"1");
-				if (thee) {
-					thee = PointProcesses_intersection (thee.get(), bitEvents.get());
+				if (thee.peek()) {
+					autoPointProcess intersection = PointProcesses_intersection (thee.peek(), bitEvents.peek());
+					thee.reset (intersection.transfer());
 				} else {
-					thee = bitEvents.move();
+					thee.reset (bitEvents.transfer());
 				}
 			}
 		}
 		for (int ibit = 0; ibit < numberOfBits; ibit ++) {
 			autoPointProcess bitEvents = TextGrid_getStartingPoints (me, ibit + 1, kMelder_string_EQUAL_TO, U"1");
 			if (! (number & (1 << ibit))) {
-				if (thee) {
-					thee = PointProcesses_difference (thee.get(), bitEvents.get());
+				if (thee.peek()) {
+					autoPointProcess difference = PointProcesses_difference (thee.peek(), bitEvents.peek());
+					thee.reset (difference.transfer());
 				} else {
-					thee = PointProcess_create (my xmin, my xmax, 10);
+					thee.reset (PointProcess_create (my xmin, my xmax, 10));
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": starting points not converted to PointProcess.");
 	}
 }
 
-autoERPTier EEG_to_ERPTier_marker (EEG me, double fromTime, double toTime, uint16_t marker) {
+ERPTier EEG_to_ERPTier_marker (EEG me, double fromTime, double toTime, uint16_t marker) {
 	try {
-		autoPointProcess events = TextGrid_getStartingPoints_multiNumeric (my textgrid.get(), marker);
-		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.get(), fromTime, toTime);
-		return thee;
+		autoPointProcess events = TextGrid_getStartingPoints_multiNumeric (my textgrid, marker);
+		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.peek(), fromTime, toTime);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERPTier not created.");
 	}
 }
 
-autoERPTier EEG_to_ERPTier_triggers (EEG me, double fromTime, double toTime,
+ERPTier EEG_to_ERPTier_triggers (EEG me, double fromTime, double toTime,
 	int which_Melder_STRING, const char32 *criterion)
 {
 	try {
-		autoPointProcess events = TextGrid_getPoints (my textgrid.get(), 2, which_Melder_STRING, criterion);
-		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.get(), fromTime, toTime);
-		return thee;
+		autoPointProcess events = TextGrid_getPoints (my textgrid, 2, which_Melder_STRING, criterion);
+		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.peek(), fromTime, toTime);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERPTier not created.");
 	}
 }
 
-autoERPTier EEG_to_ERPTier_triggers_preceded (EEG me, double fromTime, double toTime,
+ERPTier EEG_to_ERPTier_triggers_preceded (EEG me, double fromTime, double toTime,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_precededBy, const char32 *criterion_precededBy)
 {
 	try {
-		autoPointProcess events = TextGrid_getPoints_preceded (my textgrid.get(), 2,
+		autoPointProcess events = TextGrid_getPoints_preceded (my textgrid, 2,
 			which_Melder_STRING, criterion,
 			which_Melder_STRING_precededBy, criterion_precededBy);
-		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.get(), fromTime, toTime);
-		return thee;
+		autoERPTier thee = EEG_PointProcess_to_ERPTier (me, events.peek(), fromTime, toTime);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERPTier not created.");
 	}
 }
 
 void ERPTier_subtractBaseline (ERPTier me, double tmin, double tmax) {
-	long numberOfEvents = my points.size;
+	long numberOfEvents = my events -> size;
 	if (numberOfEvents < 1)
 		return;   // nothing to do
-	ERPPoint firstEvent = my points.at [1];
+	ERPPoint firstEvent = my event (1);
 	long numberOfChannels = firstEvent -> erp -> ny;
 	long numberOfSamples = firstEvent -> erp -> nx;
 	for (long ievent = 1; ievent <= numberOfEvents; ievent ++) {
-		ERPPoint event = my points.at [ievent];
+		ERPPoint event = my event (ievent);
 		for (long ichannel = 1; ichannel <= numberOfChannels; ichannel ++) {
-			double mean = Vector_getMean (event -> erp.get(), tmin, tmax, ichannel);
+			double mean = Vector_getMean (event -> erp, tmin, tmax, ichannel);
 			double *channel = event -> erp -> z [ichannel];
 			for (long isample = 1; isample <= numberOfSamples; isample ++) {
 				channel [isample] -= mean;
@@ -206,16 +221,16 @@ void ERPTier_subtractBaseline (ERPTier me, double tmin, double tmax) {
 }
 
 void ERPTier_rejectArtefacts (ERPTier me, double threshold) {
-	long numberOfEvents = my points.size;
+	long numberOfEvents = my events -> size;
 	if (numberOfEvents < 1)
 		return;   // nothing to do
-	ERPPoint firstEvent = my points.at [1];
+	ERPPoint firstEvent = my event (1);
 	long numberOfChannels = firstEvent -> erp -> ny;
 	long numberOfSamples = firstEvent -> erp -> nx;
 	if (numberOfSamples < 1)
 		return;   // nothing to do
 	for (long ievent = numberOfEvents; ievent >= 1; ievent --) {   // cycle down because of removal
-		ERPPoint event = my points.at [ievent];
+		ERPPoint event = my event (ievent);
 		double minimum = event -> erp -> z [1] [1];
 		double maximum = minimum;
 		for (long ichannel = 1; ichannel <= (numberOfChannels & ~ 15); ichannel ++) {
@@ -227,22 +242,22 @@ void ERPTier_rejectArtefacts (ERPTier me, double threshold) {
 			}
 		}
 		if (minimum < - threshold || maximum > threshold) {
-			my points. removeItem (ievent);
+			Collection_removeItem (my events, ievent);
 		}
 	}
 }
 
-autoERP ERPTier_extractERP (ERPTier me, long eventNumber) {
+ERP ERPTier_extractERP (ERPTier me, long eventNumber) {
 	try {
-		long numberOfEvents = my points.size;
+		long numberOfEvents = my events -> size;
 		if (numberOfEvents < 1)
 			Melder_throw (U"No events.");
 		ERPTier_checkEventNumber (me, eventNumber);
-		ERPPoint event = my points.at [eventNumber];
+		ERPPoint event = my event (eventNumber);
 		long numberOfChannels = event -> erp -> ny;
 		long numberOfSamples = event -> erp -> nx;
 		autoERP thee = Thing_new (ERP);
-		event -> erp -> structSound :: v_copy (thee.get());
+		event -> erp -> structSound :: v_copy (thee.peek());
 		for (long ichannel = 1; ichannel <= numberOfChannels; ichannel ++) {
 			double *oldChannel = event -> erp -> z [ichannel];
 			double *newChannel = thy z [ichannel];
@@ -254,24 +269,24 @@ autoERP ERPTier_extractERP (ERPTier me, long eventNumber) {
 		for (long ichan = 1; ichan <= thy ny; ichan ++) {
 			thy channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": ERP not extracted.");
 	}
 }
 
-autoERP ERPTier_to_ERP_mean (ERPTier me) {
+ERP ERPTier_to_ERP_mean (ERPTier me) {
 	try {
-		long numberOfEvents = my points.size;
+		long numberOfEvents = my events -> size;
 		if (numberOfEvents < 1)
 			Melder_throw (U"No events.");
-		ERPPoint firstEvent = my points.at [1];
+		ERPPoint firstEvent = my event (1);
 		long numberOfChannels = firstEvent -> erp -> ny;
 		long numberOfSamples = firstEvent -> erp -> nx;
 		autoERP mean = Thing_new (ERP);
-		firstEvent -> erp -> structSound :: v_copy (mean.get());
+		firstEvent -> erp -> structSound :: v_copy (mean.peek());
 		for (long ievent = 2; ievent <= numberOfEvents; ievent ++) {
-			ERPPoint event = my points.at [ievent];
+			ERPPoint event = my event (ievent);
 			for (long ichannel = 1; ichannel <= numberOfChannels; ichannel ++) {
 				double *erpChannel = event -> erp -> z [ichannel];
 				double *meanChannel = mean -> z [ichannel];
@@ -291,70 +306,72 @@ autoERP ERPTier_to_ERP_mean (ERPTier me) {
 		for (long ichan = 1; ichan <= mean -> ny; ichan ++) {
 			mean -> channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
-		return mean;
+		return mean.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": mean not computed.");
 	}
 }
 
-autoERPTier ERPTier_extractEventsWhereColumn_number (ERPTier me, Table table, long columnNumber, int which_Melder_NUMBER, double criterion) {
+ERPTier ERPTier_extractEventsWhereColumn_number (ERPTier me, Table table, long columnNumber, int which_Melder_NUMBER, double criterion) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (table, columnNumber);
 		Table_numericize_Assert (table, columnNumber);   // extraction should work even if cells are not defined
-		if (my points.size != table -> rows.size)
-			Melder_throw (me, U" & ", table, U": the number of rows in the table (", table -> rows.size,
-				U") doesn't match the number of events (", my points.size, U").");
+		if (my events -> size != table -> rows -> size)
+			Melder_throw (me, U" & ", table, U": the number of rows in the table (", table -> rows -> size,
+				U") doesn't match the number of events (", my events -> size, U").");
 		autoERPTier thee = Thing_new (ERPTier);
-		Function_init (thee.get(), my xmin, my xmax);
+		Function_init (thee.peek(), my xmin, my xmax);
 		thy numberOfChannels = my numberOfChannels;
 		thy channelNames = NUMvector <char32 *> (1, thy numberOfChannels);
 		for (long ichan = 1; ichan <= thy numberOfChannels; ichan ++) {
 			thy channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
-		for (long ievent = 1; ievent <= my points.size; ievent ++) {
-			ERPPoint oldEvent = my points.at [ievent];
-			TableRow row = table -> rows.at [ievent];
+		thy events = SortedSetOfDouble_create ();
+		for (long ievent = 1; ievent <= my events -> size; ievent ++) {
+			ERPPoint oldEvent = my event (ievent);
+			TableRow row = table -> row (ievent);
 			if (Melder_numberMatchesCriterion (row -> cells [columnNumber]. number, which_Melder_NUMBER, criterion)) {
 				autoERPPoint newEvent = Data_copy (oldEvent);
-				thy points. addItem_move (newEvent.move());
+				Collection_addItem (thy events, newEvent.transfer());
 			}
 		}
-		if (thy points.size == 0) {
+		if (thy events -> size == 0) {
 			Melder_warning (U"No event matches criterion.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": events not extracted.");
 	}
 }
 
-autoERPTier ERPTier_extractEventsWhereColumn_string (ERPTier me, Table table,
+ERPTier ERPTier_extractEventsWhereColumn_string (ERPTier me, Table table,
 	long columnNumber, int which_Melder_STRING, const char32 *criterion)
 {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (table, columnNumber);
-		if (my points.size != table -> rows.size)
-			Melder_throw (me, U" & ", table, U": the number of rows in the table (", table -> rows.size,
-				U") doesn't match the number of events (", my points.size, U").");
+		if (my events -> size != table -> rows -> size)
+			Melder_throw (me, U" & ", table, U": the number of rows in the table (", table -> rows -> size,
+				U") doesn't match the number of events (", my events -> size, U").");
 		autoERPTier thee = Thing_new (ERPTier);
-		Function_init (thee.get(), my xmin, my xmax);
+		Function_init (thee.peek(), my xmin, my xmax);
 		thy numberOfChannels = my numberOfChannels;
 		thy channelNames = NUMvector <char32 *> (1, thy numberOfChannels);
 		for (long ichan = 1; ichan <= thy numberOfChannels; ichan ++) {
 			thy channelNames [ichan] = Melder_dup (my channelNames [ichan]);
 		}
-		for (long ievent = 1; ievent <= my points.size; ievent ++) {
-			ERPPoint oldEvent = my points.at [ievent];
-			TableRow row = table -> rows.at [ievent];
+		thy events = SortedSetOfDouble_create ();
+		for (long ievent = 1; ievent <= my events -> size; ievent ++) {
+			ERPPoint oldEvent = my event (ievent);
+			TableRow row = table -> row (ievent);
 			if (Melder_stringMatchesCriterion (row -> cells [columnNumber]. string, which_Melder_STRING, criterion)) {
 				autoERPPoint newEvent = Data_copy (oldEvent);
-				thy points. addItem_move (newEvent.move());
+				Collection_addItem (thy events, newEvent.transfer());
 			}
 		}
-		if (thy points.size == 0) {
+		if (thy events -> size == 0) {
 			Melder_warning (U"No event matches criterion.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": events not extracted.");
 	}
diff --git a/EEG/ERPTier.h b/EEG/ERPTier.h
index a0a03be..ad717eb 100644
--- a/EEG/ERPTier.h
+++ b/EEG/ERPTier.h
@@ -23,28 +23,31 @@
 #include "ERP.h"
 
 #include "ERPTier_def.h"
+oo_CLASS_CREATE (ERPPoint, AnyPoint);
+oo_CLASS_CREATE (ERPTier, Function);
+
 
 long ERPTier_getChannelNumber (ERPTier me, const char32 *channelName);
 static inline void ERPTier_checkEventNumber (ERPTier me, long eventNumber) {
 	if (eventNumber < 1)
 		Melder_throw (U"The specified event number is ", eventNumber, U" but should have been positive.");
-	if (eventNumber > my points.size)
-		Melder_throw (U"The specified event number (", eventNumber, U") exceeds the number of events (", my points.size, U").");
+	if (eventNumber > my events -> size)
+		Melder_throw (U"The specified event number (", eventNumber, U") exceeds the number of events (", my events -> size, U").");
 }
 double ERPTier_getMean (ERPTier me, long pointNumber, long channelNumber, double tmin, double tmax);
 double ERPTier_getMean (ERPTier me, long pointNumber, const char32 *channelName, double tmin, double tmax);
 void ERPTier_subtractBaseline (ERPTier me, double tmin, double tmax);
 void ERPTier_rejectArtefacts (ERPTier me, double threshold);
-autoERP ERPTier_extractERP (ERPTier me, long pointNumber);
-autoERP ERPTier_to_ERP_mean (ERPTier me);
-autoERPTier ERPTier_extractEventsWhereColumn_number (ERPTier me, Table table, long columnNumber, int which_Melder_NUMBER, double criterion);
-autoERPTier ERPTier_extractEventsWhereColumn_string (ERPTier me, Table table, long columnNumber, int which_Melder_STRING, const char32 *criterion);
+ERP ERPTier_extractERP (ERPTier me, long pointNumber);
+ERP ERPTier_to_ERP_mean (ERPTier me);
+ERPTier ERPTier_extractEventsWhereColumn_number (ERPTier me, Table table, long columnNumber, int which_Melder_NUMBER, double criterion);
+ERPTier ERPTier_extractEventsWhereColumn_string (ERPTier me, Table table, long columnNumber, int which_Melder_STRING, const char32 *criterion);
 
-autoERPTier EEG_to_ERPTier_bit (EEG me, double fromTime, double toTime, int markerBit);
-autoERPTier EEG_to_ERPTier_marker (EEG me, double fromTime, double toTime, uint16 marker);
-autoERPTier EEG_to_ERPTier_triggers (EEG me, double fromTime, double toTime,
+ERPTier EEG_to_ERPTier_bit (EEG me, double fromTime, double toTime, int markerBit);
+ERPTier EEG_to_ERPTier_marker (EEG me, double fromTime, double toTime, uint16 marker);
+ERPTier EEG_to_ERPTier_triggers (EEG me, double fromTime, double toTime,
 	int which_Melder_STRING, const char32 *criterion);
-autoERPTier EEG_to_ERPTier_triggers_preceded (EEG me, double fromTime, double toTime,
+ERPTier EEG_to_ERPTier_triggers_preceded (EEG me, double fromTime, double toTime,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_precededBy, const char32 *criterion_precededBy);
 
diff --git a/EEG/ERPTier_def.h b/EEG/ERPTier_def.h
index 3fa5ae8..4941036 100644
--- a/EEG/ERPTier_def.h
+++ b/EEG/ERPTier_def.h
@@ -21,7 +21,7 @@
 #define ooSTRUCT ERPPoint
 oo_DEFINE_CLASS (ERPPoint, AnyPoint)
 
-	oo_AUTO_OBJECT (Sound, 2, erp)
+	oo_OBJECT (Sound, 2, erp)
 
 oo_END_CLASS (ERPPoint)
 #undef ooSTRUCT
@@ -30,16 +30,21 @@ oo_END_CLASS (ERPPoint)
 #define ooSTRUCT ERPTier
 oo_DEFINE_CLASS (ERPTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, points, ERPPoint, 0)
+	oo_COLLECTION (SortedSetOfDouble, events, ERPPoint, 0)
 
 	oo_LONG (numberOfChannels)
 	oo_STRING_VECTOR (channelNames, numberOfChannels)
 
 	#if oo_DECLARING
-		AnyTier_METHODS
+		ERPPoint event (long i)   // rvalue accessor
+			{ return static_cast <ERPPoint> (our events -> item [i]); }
 
 		int v_domainQuantity ()
 			override { return MelderQuantity_TIME_SECONDS; }
+		void v_shiftX (double xfrom, double xto)
+			override;
+		void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
+			override;
 	#endif
 
 oo_END_CLASS (ERPTier)
diff --git a/EEG/ERPWindow.cpp b/EEG/ERPWindow.cpp
index 4715976..6ac0d6a 100644
--- a/EEG/ERPWindow.cpp
+++ b/EEG/ERPWindow.cpp
@@ -1,6 +1,6 @@
 /* ERPWindow.cpp
  *
- * Copyright (C) 2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -272,10 +272,10 @@ void ERP_drawScalp (ERP me, Graphics graphics, double tmin, double tmax, double
 
 void structERPWindow :: v_drawSelectionViewer () {
 	ERP erp = (ERP) data;
-	Graphics_setWindow (d_graphics.get(), -1.1, 1.1, -1.01, 1.19);
-	Graphics_setColour (d_graphics.get(), Graphics_WINDOW_BACKGROUND_COLOUR);
-	Graphics_fillRectangle (d_graphics.get(), -1.1, 1.1, -1.01, 1.19);
-	Graphics_setColour (d_graphics.get(), Graphics_BLACK);
+	Graphics_setWindow (d_graphics, -1.1, 1.1, -1.01, 1.19);
+	Graphics_setColour (d_graphics, Graphics_WINDOW_BACKGROUND_COLOUR);
+	Graphics_fillRectangle (d_graphics, -1.1, 1.1, -1.01, 1.19);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
 	long numberOfDrawableChannels =
 			erp -> ny >= 64 && Melder_equ (erp -> channelNames [64], U"O2") ? 64 :
 			erp -> ny >= 32 && Melder_equ (erp -> channelNames [32], U"Cz") ? 32 :
@@ -355,43 +355,43 @@ void structERPWindow :: v_drawSelectionViewer () {
 			}
 		}
 	}
-	Graphics_setColourScale (our d_graphics.get(), our p_scalp_colourScale);
-	Graphics_image (our d_graphics.get(), image.peek(), 1, n, -1.0-0.5/n, 1.0+0.5/n, 1, n, -1.0-0.5/n, 1.0+0.5/n, minimum, maximum);
-	Graphics_setColourScale (our d_graphics.get(), kGraphics_colourScale_GREY);
-	Graphics_setLineWidth (our d_graphics.get(), 2.0);
+	Graphics_setColourScale (d_graphics, our p_scalp_colourScale);
+	Graphics_image (d_graphics, image.peek(), 1, n, -1.0-0.5/n, 1.0+0.5/n, 1, n, -1.0-0.5/n, 1.0+0.5/n, minimum, maximum);
+	Graphics_setColourScale (d_graphics, kGraphics_colourScale_GREY);
+	Graphics_setLineWidth (d_graphics, 2.0);
 	/*
 	 * Nose.
 	 */
-	Graphics_setGrey (our d_graphics.get(), our p_scalp_colourScale == kGraphics_colourScale_BLUE_TO_RED ? 1.0 : 0.5);
+	Graphics_setGrey (d_graphics, our p_scalp_colourScale == kGraphics_colourScale_BLUE_TO_RED ? 1.0 : 0.5);
 	{// scope
 		double x [3] = { -0.08, 0.0, 0.08 }, y [3] = { 0.99, 1.18, 0.99 };
-		Graphics_fillArea (our d_graphics.get(), 3, x, y);
+		Graphics_fillArea (d_graphics, 3, x, y);
 	}
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-	Graphics_line (our d_graphics.get(), -0.08, 0.99, 0.0, 1.18);
-	Graphics_line (our d_graphics.get(), 0.08, 0.99, 0.0, 1.18);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
+	Graphics_line (d_graphics, -0.08, 0.99, 0.0, 1.18);
+	Graphics_line (d_graphics, 0.08, 0.99, 0.0, 1.18);
 	/*
 	 * Ears.
 	 */
-	Graphics_setGrey (our d_graphics.get(), our p_scalp_colourScale == kGraphics_colourScale_BLUE_TO_RED ? 1.0 : 0.5);
-	Graphics_fillRectangle (our d_graphics.get(), -1.09, -1.00, -0.08, 0.08);
-	Graphics_fillRectangle (our d_graphics.get(), 1.09, 1.00, -0.08, 0.08);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-	Graphics_line (our d_graphics.get(), -0.99, 0.08, -1.09, 0.08);
-	Graphics_line (our d_graphics.get(), -1.09, 0.08, -1.09, -0.08);
-	Graphics_line (our d_graphics.get(), -1.09, -0.08, -0.99, -0.08);
-	Graphics_line (our d_graphics.get(), 0.99, 0.08, 1.09, 0.08);
-	Graphics_line (our d_graphics.get(), 1.09, 0.08, 1.09, -0.08);
-	Graphics_line (our d_graphics.get(), 1.09, -0.08, 0.99, -0.08);
+	Graphics_setGrey (d_graphics, our p_scalp_colourScale == kGraphics_colourScale_BLUE_TO_RED ? 1.0 : 0.5);
+	Graphics_fillRectangle (d_graphics, -1.09, -1.00, -0.08, 0.08);
+	Graphics_fillRectangle (d_graphics, 1.09, 1.00, -0.08, 0.08);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
+	Graphics_line (d_graphics, -0.99, 0.08, -1.09, 0.08);
+	Graphics_line (d_graphics, -1.09, 0.08, -1.09, -0.08);
+	Graphics_line (d_graphics, -1.09, -0.08, -0.99, -0.08);
+	Graphics_line (d_graphics, 0.99, 0.08, 1.09, 0.08);
+	Graphics_line (d_graphics, 1.09, 0.08, 1.09, -0.08);
+	Graphics_line (d_graphics, 1.09, -0.08, 0.99, -0.08);
 	/*
 	 * Scalp.
 	 */
-	Graphics_ellipse (our d_graphics.get(), -1.0, 1.0, -1.0, 1.0);
-	Graphics_setLineWidth (our d_graphics.get(), 1.0);
+	Graphics_ellipse (d_graphics, -1.0, 1.0, -1.0, 1.0);
+	Graphics_setLineWidth (d_graphics, 1.0);
 }
 
 void structERPWindow :: v_prefs_addFields (EditorCommand cmd) {
-	UiField radio;
+	Any radio;
 	OPTIONMENU_ENUM (U"Scalp colour space", kGraphics_colourScale, kGraphics_colourScale_BLUE_TO_RED)
 }
 void structERPWindow :: v_prefs_setValues (EditorCommand cmd) {
@@ -402,12 +402,12 @@ void structERPWindow :: v_prefs_getValues (EditorCommand cmd) {
 	FunctionEditor_redraw (this);
 }
 
-autoERPWindow ERPWindow_create (const char32 *title, ERP data) {
-	Melder_assert (data);
+ERPWindow ERPWindow_create (const char32 *title, ERP data) {
+	Melder_assert (data != NULL);
 	try {
 		autoERPWindow me = Thing_new (ERPWindow);
-		SoundEditor_init (me.get(), title, data);
-		return me;
+		SoundEditor_init (me.peek(), title, data);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ERP window not created.");
 	}
diff --git a/EEG/ERPWindow.h b/EEG/ERPWindow.h
index 90e0b77..becab6e 100644
--- a/EEG/ERPWindow.h
+++ b/EEG/ERPWindow.h
@@ -22,7 +22,7 @@
 #include "SoundEditor.h"
 #include "ERP.h"
 
-Thing_define (ERPWindow, SoundEditor) {
+Thing_define (ERPWindow, SoundEditor) { public:
 	const char32 * v_getChannelName (long channelNumber)
 		override {
 			ERP erp = (ERP) our data;
@@ -51,7 +51,7 @@ Thing_define (ERPWindow, SoundEditor) {
 /**
 	Create an ERPWindow.
 */
-autoERPWindow ERPWindow_create (const char32 *title, ERP data);
+ERPWindow ERPWindow_create (const char32 *title, ERP data);
 
 /* End of file ERPWindow.h */
 #endif
diff --git a/EEG/praat_EEG.cpp b/EEG/praat_EEG.cpp
index 61685c6..4eb8890 100644
--- a/EEG/praat_EEG.cpp
+++ b/EEG/praat_EEG.cpp
@@ -1,6 +1,6 @@
 /* praat_EEG.cpp
  *
- * Copyright (C) 2011-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,13 +30,9 @@
 /***** EEG *****/
 
 DIRECT2 (EEGs_concatenate) {
-	OrderedOf<structEEG> eegs;
-	LOOP {
-		iam (EEG);
-		eegs. addItem_ref (me);
-	}
-	autoEEG thee = EEGs_concatenate (& eegs);
-	praat_new (thee.move(), U"chain");
+	autoCollection eegs = praat_getSelectedObjects ();
+	autoEEG thee = EEGs_concatenate (eegs.peek());
+	praat_new (thee.transfer(), U"chain");
 END2 }
 
 DIRECT2 (EEG_detrend) {
@@ -47,7 +43,7 @@ DIRECT2 (EEG_detrend) {
 	}
 END2 }
 
-FORM (EEG_editExternalElectrodeNames, U"Edit external electrode names", nullptr) {
+FORM (EEG_editExternalElectrodeNames, U"Edit external electrode names", 0) {
 	WORD (U"External electrode 1", U"EXG1")
 	WORD (U"External electrode 2", U"EXG2")
 	WORD (U"External electrode 3", U"EXG3")
@@ -84,7 +80,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_extractChannel, U"EEG: Extract channel", nullptr) {
+FORM (EEG_extractChannel, U"EEG: Extract channel", 0) {
 	SENTENCE (U"Channel name", U"Cz")
 	OK2
 DO
@@ -92,20 +88,20 @@ DO
 		iam (EEG);
 		const char32 *channelName = GET_STRING (U"Channel name");
 		autoEEG thee = EEG_extractChannel (me, channelName);
-		praat_new (thee.move(), my name, U"_", channelName);
+		praat_new (thee.transfer(), my name, U"_", channelName);
 	}
 END2 }
 
-FORM (EEG_extractPart, U"EEG: Extract part", nullptr) {
+FORM (EEG_extractPart, U"EEG: Extract part", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"1.0")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	OK2
 DO
 	LOOP {
 		iam (EEG);
 		autoEEG thee = EEG_extractPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_INTEGER (U"Preserve times"));
-		praat_new (thee.move(), my name, U"_part");
+		praat_new (thee.transfer(), my name, U"_part");
 	}
 END2 }
 
@@ -114,7 +110,7 @@ DIRECT2 (EEG_extractSound) {
 		iam (EEG);
 		if (! my sound) Melder_throw (me, U": I don't contain a waveform.");
 		autoSound thee = EEG_extractSound (me);
-		praat_new (thee.move());
+		praat_new (thee.transfer());
 	}
 END2 }
 
@@ -123,11 +119,11 @@ DIRECT2 (EEG_extractTextGrid) {
 		iam (EEG);
 		if (! my textgrid) Melder_throw (me, U": I don't contain marks.");
 		autoTextGrid thee = EEG_extractTextGrid (me);
-		praat_new (thee.move());
+		praat_new (thee.transfer());
 	}
 END2 }
 
-FORM (EEG_filter, U"Filter", nullptr) {
+FORM (EEG_filter, U"Filter", 0) {
 	REAL (U"Low frequency (Hz)", U"1.0")
 	REAL (U"Low width (Hz)", U"0.5")
 	REAL (U"High frequency (Hz)", U"25.0")
@@ -142,7 +138,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_getChannelName, U"Get channel name", nullptr) {
+FORM (EEG_getChannelName, U"Get channel name", 0) {
 	NATURAL (U"Channel number", U"1")
 	OK2
 DO
@@ -155,7 +151,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_getChannelNumber, U"Get channel number", nullptr) {
+FORM (EEG_getChannelNumber, U"Get channel number", 0) {
 	WORD (U"Channel name", U"Cz")
 	OK2
 DO
@@ -165,7 +161,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_removeTriggers, U"Remove triggers", nullptr) {
+FORM (EEG_removeTriggers, U"Remove triggers", 0) {
 	OPTIONMENU_ENUM (U"Remove every trigger that...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
 	OK2
@@ -177,7 +173,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_setChannelName, U"Set channel name", nullptr) {
+FORM (EEG_setChannelName, U"Set channel name", 0) {
 	NATURAL (U"Channel number", U"1")
 	WORD (U"New name", U"BLA")
 	OK2
@@ -189,7 +185,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_setChannelToZero, U"Set channel to zero", nullptr) {
+FORM (EEG_setChannelToZero, U"Set channel to zero", 0) {
 	SENTENCE (U"Channel", U"Iz")
 	OK2
 DO
@@ -200,7 +196,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_subtractMeanChannel, U"Subtract mean channel", nullptr) {
+FORM (EEG_subtractMeanChannel, U"Subtract mean channel", 0) {
 	LABEL (U"label", U"Range of reference channels:")
 	NATURAL (U"From channel", U"1")
 	NATURAL (U"To channel", U"32")
@@ -213,7 +209,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_subtractReference, U"Subtract reference", nullptr) {
+FORM (EEG_subtractReference, U"Subtract reference", 0) {
 	WORD (U"Reference channel 1", U"MASL")
 	WORD (U"Reference channel 2 (optional)", U"MASR")
 	OK2
@@ -225,7 +221,7 @@ DO
 	}
 END2 }
 
-FORM (EEG_to_ERPTier_bit, U"To ERPTier (bit)", nullptr) {
+FORM (EEG_to_ERPTier_bit, U"To ERPTier (bit)", 0) {
 	REAL (U"From time (s)", U"-0.11")
 	REAL (U"To time (s)", U"0.39")
 	NATURAL (U"Marker bit", U"8")
@@ -235,11 +231,11 @@ DO
 		iam (EEG);
 		int markerBit = GET_INTEGER (U"Marker bit");
 		autoERPTier thee = EEG_to_ERPTier_bit (me, GET_REAL (U"From time"), GET_REAL (U"To time"), markerBit);
-		praat_new (thee.move(), my name, U"_bit", markerBit);
+		praat_new (thee.transfer(), my name, U"_bit", markerBit);
 	}
 END2 }
 
-FORM (EEG_to_ERPTier_marker, U"To ERPTier (marker)", nullptr) {
+FORM (EEG_to_ERPTier_marker, U"To ERPTier (marker)", 0) {
 	REAL (U"From time (s)", U"-0.11")
 	REAL (U"To time (s)", U"0.39")
 	NATURAL (U"Marker number", U"12")
@@ -249,11 +245,11 @@ DO
 		iam (EEG);
 		uint16 markerNumber = GET_INTEGER (U"Marker number");
 		autoERPTier thee = EEG_to_ERPTier_marker (me, GET_REAL (U"From time"), GET_REAL (U"To time"), markerNumber);
-		praat_new (thee.move(), my name, U"_", markerNumber);
+		praat_new (thee.transfer(), my name, U"_", markerNumber);
 	}
 END2 }
 
-FORM (EEG_to_ERPTier_triggers, U"To ERPTier (triggers)", nullptr) {
+FORM (EEG_to_ERPTier_triggers, U"To ERPTier (triggers)", 0) {
 	REAL (U"From time (s)", U"-0.11")
 	REAL (U"To time (s)", U"0.39")
 	OPTIONMENU_ENUM (U"Get every event with a trigger that", kMelder_string, DEFAULT)
@@ -264,11 +260,11 @@ DO
 		iam (EEG);
 		autoERPTier thee = EEG_to_ERPTier_triggers (me, GET_REAL (U"From time"), GET_REAL (U"To time"),
 			GET_ENUM (kMelder_string, U"Get every event with a trigger that"), GET_STRING (U"...the text"));
-		praat_new (thee.move(), my name, U"_trigger", GET_STRING (U"...the text"));
+		praat_new (thee.transfer(), my name, U"_trigger", GET_STRING (U"...the text"));
 	}
 END2 }
 
-FORM (EEG_to_ERPTier_triggers_preceded, U"To ERPTier (triggers, preceded)", nullptr) {
+FORM (EEG_to_ERPTier_triggers_preceded, U"To ERPTier (triggers, preceded)", 0) {
 	REAL (U"From time (s)", U"-0.11")
 	REAL (U"To time (s)", U"0.39")
 	OPTIONMENU_ENUM (U"Get every event with a trigger that", kMelder_string, DEFAULT)
@@ -282,11 +278,11 @@ DO
 		autoERPTier thee = EEG_to_ERPTier_triggers_preceded (me, GET_REAL (U"From time"), GET_REAL (U"To time"),
 			GET_ENUM (kMelder_string, U"Get every event with a trigger that"), GET_STRING (U"...the text"),
 			GET_ENUM (kMelder_string, U"and is preceded by a trigger that"), GET_STRING (U" ...the text"));
-		praat_new (thee.move(), my name, U"_trigger", GET_STRING (U" ...the text"));
+		praat_new (thee.transfer(), my name, U"_trigger", GET_STRING (U" ...the text"));
 	}
 END2 }
 
-FORM (EEG_to_MixingMatrix, U"To MixingMatrix", nullptr) {
+FORM (EEG_to_MixingMatrix, U"To MixingMatrix", 0) {
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
 	OPTIONMENU (U"Diagonalization method", 2)
@@ -299,25 +295,25 @@ DO
 		autoMixingMatrix thee = EEG_to_MixingMatrix (me,
 			GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance"),
 			GET_INTEGER (U"Diagonalization method"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-static void cb_EEGWindow_publication (Editor /* editor */, autoDaata publication) {
+static void cb_EEGWindow_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	/*
 	 * Keep the gate for error handling.
 	 */
 	try {
-		bool isaSpectralSlice = Thing_isa (publication.get(), classSpectrum) && str32equ (Thing_getName (publication.get()), U"slice");
-		praat_new (publication.move());
+		praat_new (publication);
 		praat_updateSelection ();
-		if (isaSpectralSlice) {
+		if (Thing_isa (publication, classSpectrum) && str32equ (Thing_getName (publication), U"slice")) {
 			int IOBJECT;
 			LOOP {
 				iam (Spectrum);
 				autoSpectrumEditor editor2 = SpectrumEditor_create (ID_AND_FULL_NAME, me);
-				praat_installEditor (editor2.get(), IOBJECT);
-				editor2.releaseToUser();
+				praat_installEditor (editor2.transfer(), IOBJECT);
 			}
 		}
 	} catch (MelderError) {
@@ -329,9 +325,8 @@ DIRECT2 (EEG_viewAndEdit) {
 	LOOP {
 		iam (EEG);
 		autoEEGWindow editor = EEGWindow_create (ID_AND_FULL_NAME, me);
-		Editor_setPublicationCallback (editor.get(), cb_EEGWindow_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		Editor_setPublicationCallback (editor.peek(), cb_EEGWindow_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -349,11 +344,11 @@ DIRECT2 (ERP_downto_Sound) {
 	LOOP {
 		iam (ERP);
 		autoSound thee = ERP_downto_Sound (me);
-		praat_new (thee.move());
+		praat_new (thee.transfer());
 	}
 END2 }
 
-FORM (ERP_downto_Table, U"ERP: Down to Table", nullptr) {
+FORM (ERP_downto_Table, U"ERP: Down to Table", 0) {
 	BOOLEAN (U"Include sample number", false)
 	BOOLEAN (U"Include time", true)
 	NATURAL (U"Time decimals", U"6")
@@ -367,17 +362,17 @@ DO
 		iam (ERP);
 		autoTable thee = ERP_tabulate (me, GET_INTEGER (U"Include sample number"),
 			GET_INTEGER (U"Include time"), GET_INTEGER (U"Time decimals"), GET_INTEGER (U"Voltage decimals"), GET_INTEGER (U"Voltage units"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (ERP_draw, U"ERP: Draw", nullptr) {
+FORM (ERP_draw, U"ERP: Draw", 0) {
 	SENTENCE (U"Channel name", U"Cz")
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range", U"0.0 (= all)")
 	REAL (U"left Voltage range (V)", U"10e-6")
 	REAL (U"right Voltage range", U"-10e-6")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
@@ -388,12 +383,12 @@ DO
 	}
 END2 }
 
-FORM (ERP_drawScalp, U"ERP: Draw scalp", nullptr) {
+FORM (ERP_drawScalp, U"ERP: Draw scalp", 0) {
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range", U"0.2")
 	REAL (U"left Voltage range (V)", U"10e-6")
 	REAL (U"right Voltage range", U"-10e-6")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
@@ -404,13 +399,13 @@ DO
 	}
 END2 }
 
-FORM (ERP_drawScalp_colour, U"ERP: Draw scalp (colour)", nullptr) {
+FORM (ERP_drawScalp_colour, U"ERP: Draw scalp (colour)", 0) {
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range", U"0.2")
 	REAL (U"left Voltage range (V)", U"10e-6")
 	REAL (U"right Voltage range", U"-10e-6")
 	RADIO_ENUM (U"Colour scale", kGraphics_colourScale, BLUE_TO_RED)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
@@ -421,7 +416,7 @@ DO
 	}
 END2 }
 
-FORM (ERP_drawScalp_garnish, U"ERP: Draw scalp (garnish)", nullptr) {
+FORM (ERP_drawScalp_garnish, U"ERP: Draw scalp (garnish)", 0) {
 	REAL (U"left Voltage range (V)", U"10e-6")
 	REAL (U"right Voltage range", U"-10e-6")
 	RADIO_ENUM (U"Colour scale", kGraphics_colourScale, BLUE_TO_RED)
@@ -432,7 +427,7 @@ DO
 		GET_REAL (U"left Voltage range"), GET_REAL (U"right Voltage range"), GET_ENUM (kGraphics_colourScale, U"Colour scale"));
 END2 }
 
-FORM (ERP_extractOneChannelAsSound, U"ERP: Extract one channel as Sound", nullptr) {
+FORM (ERP_extractOneChannelAsSound, U"ERP: Extract one channel as Sound", 0) {
 	WORD (U"Channel name", U"Cz")
 	OK2
 DO
@@ -442,7 +437,7 @@ DO
 		long channelNumber = ERP_getChannelNumber (me, channelName);
 		if (channelNumber == 0) Melder_throw (me, U": no channel named \"", channelName, U"\".");
 		autoSound thee = Sound_extractChannel (me, channelNumber);
-		praat_new (thee.move(), my name, U"_", channelName);
+		praat_new (thee.transfer(), my name, U"_", channelName);
 	}
 END2 }
 
@@ -459,7 +454,7 @@ DO
 	LOOP {
 		iam (ERP);
 		try {
-			Matrix_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the ERP may have partially changed
@@ -482,7 +477,7 @@ DO
 			Matrix_formula_part (me,
 				GET_REAL (U"From time"), GET_REAL (U"To time"),
 				GET_INTEGER (U"From channel") - 0.5, GET_INTEGER (U"To channel") + 0.5,
-				GET_STRING (U"formula"), interpreter, nullptr);
+				GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the ERP may have partially changed
@@ -491,7 +486,7 @@ DO
 	}
 END2 }
 
-FORM (ERP_getChannelName, U"Get channel name", nullptr) {
+FORM (ERP_getChannelName, U"Get channel name", 0) {
 	NATURAL (U"Channel number", U"1")
 	OK2
 DO
@@ -504,7 +499,7 @@ DO
 	}
 END2 }
 
-FORM (ERP_getChannelNumber, U"Get channel number", nullptr) {
+FORM (ERP_getChannelNumber, U"Get channel number", 0) {
 	WORD (U"Channel name", U"Cz")
 	OK2
 DO
@@ -532,7 +527,7 @@ DO
 		long channelNumber = ERP_getChannelNumber (me, channelName);
 		if (channelNumber == 0) Melder_throw (me, U": no channel named \"", channelName, U"\".");
 		double maximum;
-		Vector_getMaximumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, & maximum, nullptr);
+		Vector_getMaximumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, & maximum, NULL);
 		Melder_informationReal (maximum, U"Volt");
 	}
 END2 }
@@ -571,7 +566,7 @@ DO
 		long channelNumber = ERP_getChannelNumber (me, channelName);
 		if (channelNumber == 0) Melder_throw (me, U": no channel named \"", channelName, U"\".");
 		double minimum;
-		Vector_getMinimumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, & minimum, nullptr);
+		Vector_getMinimumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, & minimum, NULL);
 		Melder_informationReal (minimum, U"Volt");
 	}
 END2 }
@@ -594,7 +589,7 @@ DO
 		long channelNumber = ERP_getChannelNumber (me, channelName);
 		if (channelNumber == 0) Melder_throw (me, U": no channel named \"", channelName, U"\".");
 		double timeOfMaximum;
-		Vector_getMaximumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, nullptr, & timeOfMaximum);
+		Vector_getMaximumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, NULL, & timeOfMaximum);
 		Melder_informationReal (timeOfMaximum, U"seconds");
 	}
 END2 }
@@ -617,26 +612,26 @@ DO
 		long channelNumber = ERP_getChannelNumber (me, channelName);
 		if (channelNumber == 0) Melder_throw (me, U": no channel named \"", channelName, U"\".");
 		double timeOfMinimum;
-		Vector_getMinimumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, nullptr, & timeOfMinimum);
+		Vector_getMinimumAndX (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), channelNumber, GET_INTEGER (U"Interpolation") - 1, NULL, & timeOfMinimum);
 		Melder_informationReal (timeOfMinimum, U"seconds");
 	}
 END2 }
 
-static void cb_ERPWindow_publication (Editor /* editor */, autoDaata publication) {
+static void cb_ERPWindow_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	/*
 	 * Keep the gate for error handling.
 	 */
 	try {
-		bool isaSpectralSlice = Thing_isa (publication.get(), classSpectrum) && str32equ (Thing_getName (publication.get()), U"slice");
-		praat_new (publication.move());
+		praat_new (publication);
 		praat_updateSelection ();
-		if (isaSpectralSlice) {
+		if (Thing_isa (publication, classSpectrum) && str32equ (Thing_getName (publication), U"slice")) {
 			int IOBJECT;
 			LOOP {
 				iam (Spectrum);
 				autoSpectrumEditor editor2 = SpectrumEditor_create (ID_AND_FULL_NAME, me);
-				praat_installEditor (editor2.get(), IOBJECT);
-				editor2.releaseToUser();
+				praat_installEditor (editor2.transfer(), IOBJECT);
 			}
 		}
 	} catch (MelderError) {
@@ -648,15 +643,14 @@ DIRECT2 (ERP_viewAndEdit) {
 	LOOP {
 		iam (ERP);
 		autoERPWindow editor = ERPWindow_create (ID_AND_FULL_NAME, me);
-		Editor_setPublicationCallback (editor.get(), cb_ERPWindow_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		Editor_setPublicationCallback (editor.peek(), cb_ERPWindow_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 /***** ERPTier *****/
 
-FORM (ERPTier_getChannelName, U"Get channel name", nullptr) {
+FORM (ERPTier_getChannelName, U"Get channel name", 0) {
 	NATURAL (U"Channel number", U"1")
 	OK2
 DO
@@ -669,7 +663,7 @@ DO
 	}
 END2 }
 
-FORM (ERPTier_getChannelNumber, U"Get channel number", nullptr) {
+FORM (ERPTier_getChannelNumber, U"Get channel number", 0) {
 	WORD (U"Channel name", U"Cz")
 	OK2
 DO
@@ -693,7 +687,7 @@ DO
 	}
 END2 }
 
-FORM (ERPTier_rejectArtefacts, U"Reject artefacts", nullptr) {
+FORM (ERPTier_rejectArtefacts, U"Reject artefacts", 0) {
 	POSITIVE (U"Threshold (V)", U"75e-6")
 	OK2
 DO
@@ -711,12 +705,12 @@ FORM (ERPTier_removeEventsBetween, U"Remove events", U"ERPTier: Remove events be
 DO
 	LOOP {
 		iam (ERPTier);
-		AnyTier_removePointsBetween (me->asAnyTier(), GET_REAL (U"left Time range"), GET_REAL (U"right Time range"));
+		AnyTier_removePointsBetween (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"));
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM (ERPTier_subtractBaseline, U"Subtract baseline", nullptr) {
+FORM (ERPTier_subtractBaseline, U"Subtract baseline", 0) {
 	REAL (U"From time (s)", U"-0.11")
 	REAL (U"To time (s)", U"0.0")
 	OK2
@@ -728,14 +722,14 @@ DO
 	}
 END2 }
 
-FORM (ERPTier_to_ERP, U"ERPTier: To ERP", nullptr) {
+FORM (ERPTier_to_ERP, U"ERPTier: To ERP", 0) {
 	NATURAL (U"Event number", U"1")
 	OK2
 DO
 	LOOP {
 		iam (ERPTier);
 		autoERP thee = ERPTier_extractERP (me, GET_INTEGER (U"Event number"));
-		praat_new (thee.move(), my name, U"_mean");
+		praat_new (thee.transfer(), my name, U"_mean");
 	}
 END2 }
 
@@ -743,13 +737,13 @@ DIRECT2 (ERPTier_to_ERP_mean) {
 	LOOP {
 		iam (ERPTier);
 		autoERP thee = ERPTier_to_ERP_mean (me);
-		praat_new (thee.move(), my name, U"_mean");
+		praat_new (thee.transfer(), my name, U"_mean");
 	}
 END2 }
 
 /***** ERPTier & Table *****/
 
-FORM (ERPTier_Table_extractEventsWhereColumn_number, U"Extract events where column (number)", nullptr) {
+FORM (ERPTier_Table_extractEventsWhereColumn_number, U"Extract events where column (number)", 0) {
 	WORD (U"Extract all events where column...", U"")
 	RADIO_ENUM (U"...is...", kMelder_number, DEFAULT)
 	REAL (U"...the number", U"0.0")
@@ -759,7 +753,7 @@ DO
 	Table table = FIRST (Table);
 	long columnNumber = Table_getColumnIndexFromColumnLabel (table, GET_STRING (U"Extract all events where column..."));
 	autoERPTier thee = ERPTier_extractEventsWhereColumn_number (erpTier, table, columnNumber, GET_ENUM (kMelder_number, U"...is..."), GET_REAL (U"...the number"));
-	praat_new (thee.move(), erpTier -> name);
+	praat_new (thee.transfer(), erpTier -> name);
 END2 }
 
 FORM (ERPTier_Table_extractEventsWhereColumn_text, U"Extract events where column (text)", 0) {
@@ -772,7 +766,7 @@ DO
 	Table table = FIRST (Table);
 	long columnNumber = Table_getColumnIndexFromColumnLabel (table, GET_STRING (U"Extract all events where column..."));
 	autoERPTier thee = ERPTier_extractEventsWhereColumn_string (erpTier, table, columnNumber, GET_ENUM (kMelder_string, U"..."), GET_STRING (U"...the text"));
-	praat_new (thee.move(), erpTier -> name);
+	praat_new (thee.transfer(), erpTier -> name);
 END2 }
 
 /***** Help menus *****/
@@ -787,13 +781,14 @@ END2 }
 
 /***** file recognizers *****/
 
-static autoDaata bdfFileRecognizer (int nread, const char * /* header */, MelderFile file) {
+static Any bdfFileRecognizer (int nread, const char *header, MelderFile file) {
+	(void) header;
 	const char32 *fileName = MelderFile_name (file);
 	bool isBdfFile = Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".bdf") ||
 	                 Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".BDF");
 	bool isEdfFile = Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".edf") ||
 	                 Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".EDF");
-	if (nread < 512 || (! isBdfFile && ! isEdfFile)) return autoDaata ();
+	if (nread < 512 || (! isBdfFile && ! isEdfFile)) return NULL;
 	return EEG_readFromBdfFile (file);
 }
 
@@ -801,94 +796,94 @@ static autoDaata bdfFileRecognizer (int nread, const char * /* header */, Melder
 
 void praat_TimeTier_query_init (ClassInfo klas);   // Query buttons for time-based subclasses of AnyTier.
 
-void praat_EEG_init ();
-void praat_EEG_init () {
+void praat_EEG_init (void);
+void praat_EEG_init (void) {
 
-	Thing_recognizeClassesByName (classEEG, classERPTier, classERP, nullptr);
+	Thing_recognizeClassesByName (classEEG, classERPTier, classERP, NULL);
 
 	Data_recognizeFileType (bdfFileRecognizer);
 
-	praat_addAction1 (classEEG, 0, U"EEG help", nullptr, 0, DO_EEG_help);
-	praat_addAction1 (classEEG, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_EEG_viewAndEdit);
-	praat_addAction1 (classEEG, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"Get channel name...", nullptr, 1, DO_EEG_getChannelName);
-		praat_addAction1 (classEEG, 0, U"Get channel number...", nullptr, 1, DO_EEG_getChannelNumber);
-	praat_addAction1 (classEEG, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"Set channel name...", nullptr, 1, DO_EEG_setChannelName);
-		praat_addAction1 (classEEG, 1, U"Edit external electrode names...", nullptr, 1, DO_EEG_editExternalElectrodeNames);
-		praat_addAction1 (classEEG, 0, U"-- processing --", nullptr, 1, nullptr);
-		praat_addAction1 (classEEG, 0, U"Subtract reference...", nullptr, 1, DO_EEG_subtractReference);
-		praat_addAction1 (classEEG, 0, U"Subtract mean channel...", nullptr, 1, DO_EEG_subtractMeanChannel);
-		praat_addAction1 (classEEG, 0, U"Detrend", nullptr, 1, DO_EEG_detrend);
-		praat_addAction1 (classEEG, 0, U"Filter...", nullptr, 1, DO_EEG_filter);
-		praat_addAction1 (classEEG, 0, U"Remove triggers...", nullptr, 1, DO_EEG_removeTriggers);
-		praat_addAction1 (classEEG, 0, U"Set channel to zero...", nullptr, 1, DO_EEG_setChannelToZero);
-	praat_addAction1 (classEEG, 0, U"Analyse", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"Extract channel...", nullptr, 0, DO_EEG_extractChannel);
-		praat_addAction1 (classEEG, 1, U"Extract part...", nullptr, 0, DO_EEG_extractPart);
-		praat_addAction1 (classEEG, 0, U"To ERPTier -", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"To ERPTier (bit)...", nullptr, 1, DO_EEG_to_ERPTier_bit);
-		praat_addAction1 (classEEG, 0, U"To ERPTier (marker)...", nullptr, 1, DO_EEG_to_ERPTier_marker);
-		praat_addAction1 (classEEG, 0, U"To ERPTier (triggers)...", nullptr, 1, DO_EEG_to_ERPTier_triggers);
-		praat_addAction1 (classEEG, 0, U"To ERPTier (triggers, preceded)...", nullptr, 1, DO_EEG_to_ERPTier_triggers_preceded);
-		praat_addAction1 (classEEG, 0, U"To ERPTier...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_EEG_to_ERPTier_bit);
-		praat_addAction1 (classEEG, 0, U"To MixingMatrix...", nullptr, 0, DO_EEG_to_MixingMatrix);
-	praat_addAction1 (classEEG, 0, U"Synthesize", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"Concatenate", nullptr, 0, DO_EEGs_concatenate);
-	praat_addAction1 (classEEG, 0, U"Hack -", nullptr, 0, nullptr);
-		praat_addAction1 (classEEG, 0, U"Extract waveforms as Sound", nullptr, 1, DO_EEG_extractSound);
-		praat_addAction1 (classEEG, 0, U"Extract marks as TextGrid", nullptr, 1, DO_EEG_extractTextGrid);
-
-	praat_addAction1 (classERP, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_ERP_viewAndEdit);
-	praat_addAction1 (classERP, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classERP, 0, U"Draw...", nullptr, 1, DO_ERP_draw);
-		praat_addAction1 (classERP, 0, U"Draw scalp...", nullptr, 1, DO_ERP_drawScalp);
-		praat_addAction1 (classERP, 0, U"Draw scalp (colour)...", nullptr, 1, DO_ERP_drawScalp_colour);
-		praat_addAction1 (classERP, 0, U"Draw scalp (garnish)...", nullptr, 1, DO_ERP_drawScalp_garnish);
-	praat_addAction1 (classERP, 0, U"Tabulate -", nullptr, 0, nullptr);
-		praat_addAction1 (classERP, 0, U"Down to Table...", nullptr, 1, DO_ERP_downto_Table);
-	praat_addAction1 (classERP, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classERP, 0, U"Get channel name...", nullptr, 1, DO_ERP_getChannelName);
-		praat_addAction1 (classERP, 0, U"Get channel number...", nullptr, 1, DO_ERP_getChannelNumber);
-		praat_addAction1 (classERP, 0, U"-- get shape --", nullptr, 1, nullptr);
-		praat_addAction1 (classERP, 0, U"Get minimum...", nullptr, 1, DO_ERP_getMinimum);
-		praat_addAction1 (classERP, 0, U"Get time of minimum...", nullptr, 1, DO_ERP_getTimeOfMinimum);
-		praat_addAction1 (classERP, 0, U"Get maximum...", nullptr, 1, DO_ERP_getMaximum);
-		praat_addAction1 (classERP, 0, U"Get time of maximum...", nullptr, 1, DO_ERP_getTimeOfMaximum);
-		praat_addAction1 (classERP, 0, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classERP, 0, U"Get mean...", nullptr, 1, DO_ERP_getMean);
-	praat_addAction1 (classERP, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classERP, 0, U"Formula...", nullptr, 1, DO_ERP_formula);
-		praat_addAction1 (classERP, 0, U"Formula (part)...", nullptr, 1, DO_ERP_formula_part);
-	// praat_addAction1 (classERP, 0, U"Analyse -", nullptr, 0, nullptr);
-		// praat_addAction1 (classERP, 0, U"To ERP (difference)", nullptr, 1, DO_ERP_to_ERP_difference);
-		// praat_addAction1 (classERP, 0, U"To ERP (mean)", nullptr, 1, DO_ERP_to_ERP_mean);
-	praat_addAction1 (classERP, 0, U"Hack -", nullptr, 0, nullptr);
-		praat_addAction1 (classERP, 0, U"Down to Sound", nullptr, 1, DO_ERP_downto_Sound);
-		praat_addAction1 (classERP, 0, U"Extract one channel as Sound...", nullptr, 1, DO_ERP_extractOneChannelAsSound);
-
-	praat_addAction1 (classERPTier, 0, U"ERPTier help", nullptr, 0, DO_ERPTier_help);
-	// praat_addAction1 (classERPTier, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_ERPTier_viewAndEdit);
-	praat_addAction1 (classERPTier, 0, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classEEG, 0, U"EEG help", 0, 0, DO_EEG_help);
+	praat_addAction1 (classEEG, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_EEG_viewAndEdit);
+	praat_addAction1 (classEEG, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"Get channel name...", 0, 1, DO_EEG_getChannelName);
+		praat_addAction1 (classEEG, 0, U"Get channel number...", 0, 1, DO_EEG_getChannelNumber);
+	praat_addAction1 (classEEG, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"Set channel name...", 0, 1, DO_EEG_setChannelName);
+		praat_addAction1 (classEEG, 1, U"Edit external electrode names...", 0, 1, DO_EEG_editExternalElectrodeNames);
+		praat_addAction1 (classEEG, 0, U"-- processing --", 0, 1, 0);
+		praat_addAction1 (classEEG, 0, U"Subtract reference...", 0, 1, DO_EEG_subtractReference);
+		praat_addAction1 (classEEG, 0, U"Subtract mean channel...", 0, 1, DO_EEG_subtractMeanChannel);
+		praat_addAction1 (classEEG, 0, U"Detrend", 0, 1, DO_EEG_detrend);
+		praat_addAction1 (classEEG, 0, U"Filter...", 0, 1, DO_EEG_filter);
+		praat_addAction1 (classEEG, 0, U"Remove triggers...", 0, 1, DO_EEG_removeTriggers);
+		praat_addAction1 (classEEG, 0, U"Set channel to zero...", 0, 1, DO_EEG_setChannelToZero);
+	praat_addAction1 (classEEG, 0, U"Analyse", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"Extract channel...", 0, 0, DO_EEG_extractChannel);
+		praat_addAction1 (classEEG, 1, U"Extract part...", 0, 0, DO_EEG_extractPart);
+		praat_addAction1 (classEEG, 0, U"To ERPTier -", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"To ERPTier (bit)...", 0, 1, DO_EEG_to_ERPTier_bit);
+		praat_addAction1 (classEEG, 0, U"To ERPTier (marker)...", 0, 1, DO_EEG_to_ERPTier_marker);
+		praat_addAction1 (classEEG, 0, U"To ERPTier (triggers)...", 0, 1, DO_EEG_to_ERPTier_triggers);
+		praat_addAction1 (classEEG, 0, U"To ERPTier (triggers, preceded)...", 0, 1, DO_EEG_to_ERPTier_triggers_preceded);
+		praat_addAction1 (classEEG, 0, U"To ERPTier...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_EEG_to_ERPTier_bit);
+		praat_addAction1 (classEEG, 0, U"To MixingMatrix...", 0, 0, DO_EEG_to_MixingMatrix);
+	praat_addAction1 (classEEG, 0, U"Synthesize", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"Concatenate", 0, 0, DO_EEGs_concatenate);
+	praat_addAction1 (classEEG, 0, U"Hack -", 0, 0, 0);
+		praat_addAction1 (classEEG, 0, U"Extract waveforms as Sound", 0, 1, DO_EEG_extractSound);
+		praat_addAction1 (classEEG, 0, U"Extract marks as TextGrid", 0, 1, DO_EEG_extractTextGrid);
+
+	praat_addAction1 (classERP, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_ERP_viewAndEdit);
+	praat_addAction1 (classERP, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classERP, 0, U"Draw...", 0, 1, DO_ERP_draw);
+		praat_addAction1 (classERP, 0, U"Draw scalp...", 0, 1, DO_ERP_drawScalp);
+		praat_addAction1 (classERP, 0, U"Draw scalp (colour)...", 0, 1, DO_ERP_drawScalp_colour);
+		praat_addAction1 (classERP, 0, U"Draw scalp (garnish)...", 0, 1, DO_ERP_drawScalp_garnish);
+	praat_addAction1 (classERP, 0, U"Tabulate -", 0, 0, 0);
+		praat_addAction1 (classERP, 0, U"Down to Table...", 0, 1, DO_ERP_downto_Table);
+	praat_addAction1 (classERP, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classERP, 0, U"Get channel name...", 0, 1, DO_ERP_getChannelName);
+		praat_addAction1 (classERP, 0, U"Get channel number...", 0, 1, DO_ERP_getChannelNumber);
+		praat_addAction1 (classERP, 0, U"-- get shape --", 0, 1, 0);
+		praat_addAction1 (classERP, 0, U"Get minimum...", 0, 1, DO_ERP_getMinimum);
+		praat_addAction1 (classERP, 0, U"Get time of minimum...", 0, 1, DO_ERP_getTimeOfMinimum);
+		praat_addAction1 (classERP, 0, U"Get maximum...", 0, 1, DO_ERP_getMaximum);
+		praat_addAction1 (classERP, 0, U"Get time of maximum...", 0, 1, DO_ERP_getTimeOfMaximum);
+		praat_addAction1 (classERP, 0, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classERP, 0, U"Get mean...", 0, 1, DO_ERP_getMean);
+	praat_addAction1 (classERP, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classERP, 0, U"Formula...", 0, 1, DO_ERP_formula);
+		praat_addAction1 (classERP, 0, U"Formula (part)...", 0, 1, DO_ERP_formula_part);
+	// praat_addAction1 (classERP, 0, U"Analyse -", 0, 0, 0);
+		// praat_addAction1 (classERP, 0, U"To ERP (difference)", 0, 1, DO_ERP_to_ERP_difference);
+		// praat_addAction1 (classERP, 0, U"To ERP (mean)", 0, 1, DO_ERP_to_ERP_mean);
+	praat_addAction1 (classERP, 0, U"Hack -", 0, 0, 0);
+		praat_addAction1 (classERP, 0, U"Down to Sound", 0, 1, DO_ERP_downto_Sound);
+		praat_addAction1 (classERP, 0, U"Extract one channel as Sound...", 0, 1, DO_ERP_extractOneChannelAsSound);
+
+	praat_addAction1 (classERPTier, 0, U"ERPTier help", 0, 0, DO_ERPTier_help);
+	// praat_addAction1 (classERPTier, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_ERPTier_viewAndEdit);
+	praat_addAction1 (classERPTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classERPTier);
-		praat_addAction1 (classERPTier, 0, U"-- channel names --", nullptr, 1, nullptr);
-		praat_addAction1 (classERPTier, 0, U"Get channel name...", nullptr, 1, DO_ERPTier_getChannelName);
-		praat_addAction1 (classERPTier, 0, U"Get channel number...", nullptr, 1, DO_ERPTier_getChannelNumber);
-		praat_addAction1 (classERPTier, 0, U"-- erp --", nullptr, 1, nullptr);
-		praat_addAction1 (classERPTier, 0, U"Get mean...", nullptr, 1, DO_ERPTier_getMean);
-	praat_addAction1 (classERPTier, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classERPTier, 0, U"Subtract baseline...", nullptr, 1, DO_ERPTier_subtractBaseline);
-		praat_addAction1 (classERPTier, 0, U"Reject artefacts...", nullptr, 1, DO_ERPTier_rejectArtefacts);
-		praat_addAction1 (classERPTier, 0, U"-- structure --", nullptr, 1, nullptr);
-		praat_addAction1 (classERPTier, 0, U"Remove events between...", nullptr, 1, DO_ERPTier_removeEventsBetween);
-	praat_addAction1 (classERPTier, 0, U"Analyse", nullptr, 0, nullptr);
-		praat_addAction1 (classERPTier, 0, U"Extract ERP...", nullptr, 0, DO_ERPTier_to_ERP);
-		praat_addAction1 (classERPTier, 0, U"To ERP (mean)", nullptr, 0, DO_ERPTier_to_ERP_mean);
-
-	praat_addAction2 (classEEG, 1, classTextGrid, 1, U"Replace TextGrid", nullptr, 0, DO_EEG_TextGrid_replaceTextGrid);
-	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract -", nullptr, 0, nullptr);
-	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract events where column (number)...", nullptr, 1, DO_ERPTier_Table_extractEventsWhereColumn_number);
-	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract events where column (text)...", nullptr, 1, DO_ERPTier_Table_extractEventsWhereColumn_text);
+		praat_addAction1 (classERPTier, 0, U"-- channel names --", 0, 1, 0);
+		praat_addAction1 (classERPTier, 0, U"Get channel name...", 0, 1, DO_ERPTier_getChannelName);
+		praat_addAction1 (classERPTier, 0, U"Get channel number...", 0, 1, DO_ERPTier_getChannelNumber);
+		praat_addAction1 (classERPTier, 0, U"-- erp --", 0, 1, 0);
+		praat_addAction1 (classERPTier, 0, U"Get mean...", 0, 1, DO_ERPTier_getMean);
+	praat_addAction1 (classERPTier, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classERPTier, 0, U"Subtract baseline...", 0, 1, DO_ERPTier_subtractBaseline);
+		praat_addAction1 (classERPTier, 0, U"Reject artefacts...", 0, 1, DO_ERPTier_rejectArtefacts);
+		praat_addAction1 (classERPTier, 0, U"-- structure --", 0, 1, 0);
+		praat_addAction1 (classERPTier, 0, U"Remove events between...", 0, 1, DO_ERPTier_removeEventsBetween);
+	praat_addAction1 (classERPTier, 0, U"Analyse", 0, 0, 0);
+		praat_addAction1 (classERPTier, 0, U"Extract ERP...", 0, 0, DO_ERPTier_to_ERP);
+		praat_addAction1 (classERPTier, 0, U"To ERP (mean)", 0, 0, DO_ERPTier_to_ERP_mean);
+
+	praat_addAction2 (classEEG, 1, classTextGrid, 1, U"Replace TextGrid", 0, 0, DO_EEG_TextGrid_replaceTextGrid);
+	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract -", 0, 0, 0);
+	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract events where column (number)...", 0, 1, DO_ERPTier_Table_extractEventsWhereColumn_number);
+	praat_addAction2 (classERPTier, 1, classTable, 1, U"Extract events where column (text)...", 0, 1, DO_ERPTier_Table_extractEventsWhereColumn_text);
 
 	structEEGWindow :: f_preferences ();
 	structERPWindow :: f_preferences ();
diff --git a/FFNet/FFNet.cpp b/FFNet/FFNet.cpp
index 5296936..b24b1bd 100644
--- a/FFNet/FFNet.cpp
+++ b/FFNet/FFNet.cpp
@@ -1,6 +1,6 @@
 /* FFNet.cpp
  *
- * Copyright (C) 1997-2011, 2015-2016 David Weenink
+ * Copyright (C) 1997-2011, 2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -62,12 +62,12 @@ static void bookkeeping (FFNet me);
 #include "oo_DESCRIPTION.h"
 #include "FFNet_def.h"
 
-Thing_implement (FFNet, Daata, 0);
+Thing_implement (FFNet, Data, 0);
 
 static void FFNet_checkLayerNumber (FFNet me, long layer) {
 	if (layer < 1 || layer > my nLayers) {
 		if (layer == 0) {
-			Melder_throw (U"A layer number of 0 is not allowed.");
+			Melder_throw (U"A Layer number of 0 is not allowed.");
 		} else if (layer < 0) {
 			Melder_throw (U"A negative layer number is not allowed.");
 		} else if (layer > my nLayers) {
@@ -87,25 +87,26 @@ static void FFNet_checkLayerNumber (FFNet me, long layer) {
 	}
 }
 
-autostring32 FFNet_createNameFromTopology (FFNet me) {
+char32 *FFNet_createNameFromTopology (FFNet me) {
 	autoMelderString name;
 	MelderString_copy (&name, my nUnitsInLayer[0]);
 	for (long i = 1; i <= my nLayers; i++) {
 		MelderString_appendCharacter (&name, U'-');
 		MelderString_append (&name, my nUnitsInLayer[i]);
 	}
-	autostring32 naam = Melder_dup (name.string);
-	return naam.transfer();
+	return name.transfer();
 }
 
 /****** non-linearities ****************************************************/
 
-static double sigmoid (FFNet /*me*/, double x, double *deriv) {
+static double sigmoid (I, double x, double *deriv) {
 	double act = NUMsigmoid (x);
+	(void) void_me;
 	*deriv = act * (1.0 - act);
 	return act;
 }
 
+
 /* ******************* cost functions ****************************************/
 
 /*
@@ -114,7 +115,8 @@ static double sigmoid (FFNet /*me*/, double x, double *deriv) {
 		if target < activity ==> error < 0
 */
 
-static double minimumSquaredError (FFNet me, const double target[]) {
+static double minimumSquaredError (I, const double target[]) {
+	iam (FFNet);
 	long k = my nNodes - my nOutputs + 1;
 	double cost = 0.0;
 	for (long i = 1; i <= my nOutputs; i++, k++) {
@@ -127,7 +129,8 @@ static double minimumSquaredError (FFNet me, const double target[]) {
 /* E = - sum (i=1; i=nPatterns; sum (k=1;k=nOutputs; t[k]*ln (o[k]) + (1-t[k])ln (1-o[k]))) */
 /* dE/do[k] = -(1-t[k])/ (1-o[k]) + t[k]/o[k] */
 /* werkt niet bij (grote?) netten */
-static double minimumCrossEntropy (FFNet me, const double target[]) {
+static double minimumCrossEntropy (I, const double target[]) {
+	iam (FFNet);
 	long k = my nNodes - my nOutputs + 1;
 	double cost = 0.0;
 
@@ -144,7 +147,7 @@ static double minimumCrossEntropy (FFNet me, const double target[]) {
 
 /* *********************************************************************** */
 
-static void bookkeeping (FFNet me) {
+void bookkeeping (FFNet me) {
 	long nWeights = 0;
 	my nNodes = my nUnitsInLayer[0];
 	for (long i = 1; i <= my nLayers; i++) {
@@ -197,46 +200,47 @@ static void bookkeeping (FFNet me) {
 }
 
 void structFFNet :: v_info () {
-	our structDaata :: v_info ();
-	MelderInfo_writeLine (U"Number of layers: ", our nLayers);
+	structData :: v_info ();
+	MelderInfo_writeLine (U"Number of layers: ", nLayers);
 	MelderInfo_writeLine (U"Total number of units: ", FFNet_getNumberOfUnits (this));
-	MelderInfo_writeLine (U"   Number of units in layer ", our nLayers, U" (output): ", our nUnitsInLayer [nLayers]);
-	for (long i = our nLayers - 1; i >= 1; i --) {
-		MelderInfo_writeLine (U"   Number of units in layer ", i, U" (hidden): ", our nUnitsInLayer [i]);
+	MelderInfo_writeLine (U"   Number of units in layer ", nLayers, U" (output): ", nUnitsInLayer[nLayers]);
+	for (long i = nLayers - 1; i >= 1; i--) {
+		MelderInfo_writeLine (U"   Number of units in layer ", i, U" (hidden): ", nUnitsInLayer[i]);
 	}
-	MelderInfo_writeLine (U"   Number of units in layer 0 (input): ", our nUnitsInLayer [0]);
-	MelderInfo_writeLine (U"Outputs are linear: ", Melder_boolean (our outputsAreLinear));
-	MelderInfo_writeLine (U"Number of weights: ", our nWeights, U" (",
+	MelderInfo_writeLine (U"   Number of units in layer 0 (input): ", nUnitsInLayer[0]);
+	MelderInfo_writeLine (U"Outputs are linear: ", Melder_boolean (outputsAreLinear));
+	MelderInfo_writeLine (U"Number of weights: ", nWeights, U" (",
 	                       FFNet_dimensionOfSearchSpace (this), U" selected)");
-	MelderInfo_writeLine (U"Number of nodes: ", our nNodes);
+	MelderInfo_writeLine (U"Number of nodes: ", nNodes);
 }
 
-void FFNet_init (FFNet me, long numberOfInputs, long nodesInLayer1, long nodesInLayer2, long numberOfOutputs, bool outputsAreLinear) {
+void FFNet_init (FFNet me, long numberOfInputs, long nodesInLayer1, long nodesInLayer2,
+                 long numberOfOutputs, int outputsAreLinear) {
 	long numberOfLayers = 3;
 
 	if (numberOfInputs < 1) {
-		Melder_throw (U"Number of inputs must be a natural number.");
+		Melder_throw (U"Number of inputs must be a natrural number.");
 	}
 	if (numberOfOutputs < 1) {
-		Melder_throw (U"Number of outputs must be a natural number.");
+		Melder_throw (U"Number of outputs must be a natrural number.");
 	}
 	if (nodesInLayer1 < 1) {
-		numberOfLayers --;
+		numberOfLayers--;
 	}
 	if (nodesInLayer2 < 1) {
-		numberOfLayers --;
+		numberOfLayers--;
 	}
 	my nLayers = numberOfLayers;
 	my nUnitsInLayer = NUMvector<long> (0, numberOfLayers);
 
-	my nUnitsInLayer [numberOfLayers --] = numberOfOutputs;
+	my nUnitsInLayer[numberOfLayers--] = numberOfOutputs;
 	if (nodesInLayer2 > 0) {
-		my nUnitsInLayer [numberOfLayers --] = nodesInLayer2;
+		my nUnitsInLayer[numberOfLayers--] = nodesInLayer2;
 	}
 	if (nodesInLayer1 > 0) {
-		my nUnitsInLayer [numberOfLayers --] = nodesInLayer1;
+		my nUnitsInLayer[numberOfLayers--] = nodesInLayer1;
 	}
-	my nUnitsInLayer [numberOfLayers] = numberOfInputs;
+	my nUnitsInLayer[numberOfLayers] = numberOfInputs;
 	Melder_assert (numberOfLayers == 0);
 	my outputsAreLinear = outputsAreLinear;
 
@@ -248,17 +252,19 @@ void FFNet_init (FFNet me, long numberOfInputs, long nodesInLayer1, long nodesIn
 }
 
 void FFNet_setOutputCategories (FFNet me, Categories thee) {
-	autoCategories uniq = Categories_selectUniqueItems (thee);
-	if (uniq->size == thy size) {
-		my outputCategories = uniq.move();
+	autoCategories uniq = Categories_selectUniqueItems (thee, 1);
+	if (uniq -> size == thy size) {
+		forget (my outputCategories);
+		my outputCategories = uniq.transfer();
 	}
 }
 
-autoFFNet FFNet_create (long numberOfInputs, long numberInLayer1, long numberInLayer2, long numberOfOutputs, bool outputsAreLinear) {
+FFNet FFNet_create (long numberOfInputs, long numberInLayer1, long numberInLayer2,
+                    long numberOfOutputs, int outputsAreLinear) {
 	try {
 		autoFFNet me = Thing_new (FFNet);
-		FFNet_init (me.get(), numberOfInputs, numberInLayer1, numberInLayer2, numberOfOutputs, outputsAreLinear);
-		return me;
+		FFNet_init (me.peek(), numberOfInputs, numberInLayer1, numberInLayer2, numberOfOutputs, outputsAreLinear);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FFNet not created.");
 	}
@@ -267,7 +273,7 @@ autoFFNet FFNet_create (long numberOfInputs, long numberInLayer1, long numberInL
 void FFNet_setNonLinearity (FFNet me, int nonLinearityType) {
 	my nonLinearityType = nonLinearityType;
 	my nonLinearity = sigmoid;
-	my nlClosure = nullptr;
+	my nlClosure = NULL;
 }
 
 void FFNet_setCostFunction (FFNet me, int costType) {
@@ -277,7 +283,7 @@ void FFNet_setCostFunction (FFNet me, int costType) {
 	} else {
 		my costFunction = minimumSquaredError;
 	}
-	my cfClosure = nullptr;
+	my cfClosure = NULL;
 }
 
 double FFNet_getBias (FFNet me, long layer, long unit) {
@@ -298,7 +304,7 @@ void FFNet_setBias (FFNet me, long layer, long unit, double value) {
 	if (node < 1) {
 		Melder_throw (U"Not a valid unit / layer combination.");
 	}
-	long bias_unit = my wLast [node]; // ??? +1
+	long bias_unit = my wLast[node]; // ??? +1
 	my w[bias_unit] = value;
 }
 
@@ -311,7 +317,7 @@ void FFNet_setWeight (FFNet me, long layer, long unit, long unit_from, double va
 	if (nodef < 1) {
 		Melder_throw (U"Not a valid unit / layer combination.");
 	}
-	long w_unit = my wFirst [node] + unit_from - 1;
+	long w_unit = my wFirst[node] + unit_from - 1;
 	my w[w_unit] = value;
 }
 
@@ -328,17 +334,16 @@ double FFNet_getWeight (FFNet me, long layer, long unit, long unit_from) {
 	return my w[w_unit];
 }
 
-void FFNet_reset (FFNet me, double weightRange) {
-	for (long i = 1; i <= my nWeights; i ++) {
-		if (my wSelected [i]) {
-			my w [i] = NUMrandomUniform (- weightRange, weightRange);
+void FFNet_reset (FFNet me, double wrange) {
+	for (long i = 1; i <= my nWeights; i++)
+		if (my wSelected[i]) {
+			my w[i] = NUMrandomUniform (-wrange, wrange);
 		}
-	}
-	for (long i = 1; i <= my nNodes; i ++) {
-		my activity [i] = ( my isbias [i] ? 1.0 : 0.0 );
+	for (long i = 1; i <= my nNodes; i++) {
+		my activity[i] = (my isbias[i] ? 1.0 : 0.0);
 	}
 	my accumulatedCost = 0.0;
-	my minimizer.reset();
+	forget (my minimizer);
 }
 
 
@@ -377,11 +382,9 @@ void FFNet_propagate (FFNet me, const double input[], double output[]) {
 		}
 	}
 	k = my nNodes - my nOutputs + 1;
-	if (output) {
-		for (long i = 1; i <= my nOutputs; i++, k++) {
+	if (output) for (long i = 1; i <= my nOutputs; i++, k++) {
 			output[i] = my activity[k];
 		}
-	}
 }
 
 
@@ -423,16 +426,14 @@ void FFNet_computeDerivative (FFNet me) {
 long FFNet_getWinningUnit (FFNet me, int labeling) {
 	long pos = 1, k = my nNodes - my nOutputs;
 	if (labeling == 2) { /* stochastic */
-		double sum = 0.0;
+		double sum = 0;
 		for (long i = 1; i <= my nOutputs; i++) {
 			sum += my activity[k + i];
 		}
-		double random = NUMrandomUniform (0.0, sum);
-		for (pos = my nOutputs; pos >= 2; pos--) {
-			if (random > (sum -= my activity[k + pos])) {
+		double random = NUMrandomUniform (0, sum);
+		for (pos = my nOutputs; pos >= 2; pos--) if (random > (sum -= my activity[k + pos])) {
 				break;
 			}
-		}
 	} else { /* winner-takes-all */
 		double max = my activity[k + 1];
 		for (long i = 2; i <= my nOutputs; i++) if (my activity[k + i] > max) {
@@ -446,7 +447,7 @@ long FFNet_getWinningUnit (FFNet me, int labeling) {
 void FFNet_propagateToLayer (FFNet me, const double input[], double activity[], long layer) {
 	Melder_assert (activity);
 	long k = 0;
-	FFNet_propagate (me, input, nullptr);
+	FFNet_propagate (me, input, 0);
 	for (long i = 0; i < layer; i++) {
 		k += my nUnitsInLayer[i] + 1;
 	}
@@ -478,7 +479,7 @@ void FFNet_selectBiasesInLayer (FFNet me, long layer) {
 		return;
 	}
 	for (long i = 1; i <= my nWeights; i++) {
-		my wSelected[i] = 0.0;
+		my wSelected[i] = 0;
 	}
 	for (long i = 1; i < layer; i++) {
 		node += my nUnitsInLayer[i] + 1;
@@ -500,15 +501,9 @@ void FFNet_weightConnectsUnits (FFNet me, long index, long *fromUnit, long *toUn
 	if (i > 1) {
 		index -= nw - np;
 	}
-	if (fromUnit) {
-		*fromUnit = index % (my nUnitsInLayer[i - 1] + 1);
-	}
-	if (toUnit) {
-		*toUnit = (index - 1) / (my nUnitsInLayer[i - 1] + 1) + 1;
-	}
-	if (layer) {
-		*layer = i;
-	}
+	*fromUnit = index % (my nUnitsInLayer[i - 1] + 1);
+	*toUnit = (index - 1) / (my nUnitsInLayer[i - 1] + 1) + 1;
+	*layer = i;
 }
 
 long FFNet_getNodeNumberFromUnitNumber (FFNet me, long unit, long layer) {
@@ -561,7 +556,7 @@ long FFNet_getNumberOfUnitsInLayer (FFNet me, int layer) {
 }
 
 double FFNet_getMinimum (FFNet me) {
-	return my minimizer ? Minimizer_getMinimum (my minimizer.get()) : NUMundefined;
+	return my minimizer ? Minimizer_getMinimum (my minimizer) : NUMundefined;
 }
 
 void FFNet_drawTopology (FFNet me, Graphics g) {
@@ -575,7 +570,7 @@ void FFNet_drawTopology (FFNet me, Graphics g) {
 		}
 	}
 	double dx = 1.0 / maxNumOfUnits;
-	double radius = dx / 10.0;
+	double radius = dx / 10;
 	Graphics_setInner (g);
 	Graphics_setWindow (g, 0.0, 1.0, 0.0, 1.0);
 	for (long i = 0; i <= my nLayers; i++) {
@@ -584,13 +579,13 @@ void FFNet_drawTopology (FFNet me, Graphics g) {
 		/* draw the units */
 		if (! dxIsFixed) {
 			dx2 = 1.0 / my nUnitsInLayer[i];
-			x2 = dx2 / 2.0;
+			x2 = dx2 / 2;
 		}
 		if (i == 0) {
 			Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_TOP);
 			x2WC = x2;
 			for (long j = 1; j <= my nInputs; j++) {
-				Graphics_arrow (g, x2WC, y2WC - radius - dy / 4.0, x2WC, y2WC - radius);
+				Graphics_arrow (g, x2WC, y2WC - radius - dy / 4, x2WC, y2WC - radius);
 				x2WC += dx2;
 			}
 		}
@@ -606,11 +601,11 @@ void FFNet_drawTopology (FFNet me, Graphics g) {
 		Graphics_setColour (g, Graphics_BLACK);
 		if (i > 0) {
 			double dx1 = dx;
-			double x1 = (maxNumOfUnits - my nUnitsInLayer[i - 1] + 1) * dx1 / 2.0;
+			double x1 = (maxNumOfUnits - my nUnitsInLayer[i - 1] + 1) * dx1 / 2;
 			double y1WC = y2WC - dy;
 			if (! dxIsFixed) {
 				dx1 = 1.0 / my nUnitsInLayer[i - 1];
-				x1 = dx1 / 2.0;
+				x1 = dx1 / 2;
 			}
 			x2WC = x2;
 			for (long j = 1; j <= my nUnitsInLayer[i]; j++) {
@@ -629,9 +624,9 @@ void FFNet_drawTopology (FFNet me, Graphics g) {
 			x2WC = x2;
 			Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
 			for (long j = 1; j <= my nOutputs; j++) {
-				Graphics_arrow (g, x2WC, y2WC + radius, x2WC, y2WC + radius + dy / 4.0);
+				Graphics_arrow (g, x2WC, y2WC + radius, x2WC, y2WC + radius + dy / 4);
 				if (my outputCategories) {
-					Categories_drawItem (my outputCategories.get(), g, j, x2WC, y2WC + radius + dy / 4.0);
+					Categories_drawItem (my outputCategories, g, j, x2WC, y2WC + radius + dy / 4);
 				}
 				x2WC += dx2;
 			}
@@ -654,13 +649,13 @@ void FFNet_drawActivation (FFNet me, Graphics g) {
 		}
 	}
 	double dx = 1.0 / maxNumOfUnits;
-	double r1 = dx / 2.0; /* May touch when neighbouring activities are both 1 (very rare). */
+	double r1 = dx / 2; /* May touch when neighbouring activities are both 1 (very rare). */
 	for (long i = 0; i <= my nLayers; i++, node++) {
-		double dx2 = dx, x2WC, y2WC = dy / 2.0 + i * dy;
-		double x2 = (maxNumOfUnits - my nUnitsInLayer[i] + 1) * dx2 / 2.0;
+		double dx2 = dx, x2WC, y2WC = dy / 2 + i * dy;
+		double x2 = (maxNumOfUnits - my nUnitsInLayer[i] + 1) * dx2 / 2;
 		if (! dxIsFixed) {
 			dx2 = 1.0 / my nUnitsInLayer[i];
-			x2 = dx2 / 2.0;
+			x2 = dx2 / 2;
 		}
 		x2WC = x2;
 		for (long j = 1; j <= my nUnitsInLayer[i]; j++, node++) {
@@ -683,9 +678,9 @@ void FFNet_drawWeightsToLayer (FFNet me, Graphics g, int layer, int scaling, int
 	if (layer < 1 || layer > my nLayers) {
 		Melder_throw (U"Layer must be in [1,", my nLayers, U"].");
 	}
-	autoMatrix weights = FFNet_weightsToMatrix (me, layer, false);
-	Matrix_scale (weights.get(), scaling);
-	Matrix_drawAsSquares (weights.get(), g, 0.0, 0.0, 0.0, 0.0, 0);
+	autoMatrix weights = FFNet_weightsToMatrix (me, layer, 0);
+	Matrix_scale (weights.peek(), scaling);
+	Matrix_drawAsSquares (weights.peek(), g, 0, 0, 0, 0, 0);
 	if (garnish) {
 		double x1WC, x2WC, y1WC, y2WC;
 		Graphics_inqWindow (g, & x1WC, & x2WC, & y1WC, & y2WC);
@@ -705,95 +700,94 @@ void FFNet_drawWeightsToLayer (FFNet me, Graphics g, int layer, int scaling, int
 
 void FFNet_drawWeights (FFNet me, Graphics g, long layer, int garnish) {
 	autoTableOfReal thee = FFNet_extractWeights (me, layer);
-	TableOfReal_drawAsSquares (thee.get(), g, 1, thy numberOfRows, 1, thy numberOfColumns, garnish);
+	TableOfReal_drawAsSquares (thee.peek(), g, 1, thy numberOfRows, 1, thy numberOfColumns, garnish);
 }
 
 void FFNet_drawCostHistory (FFNet me, Graphics g, long iFrom, long iTo, double costMin, double costMax, int garnish) {
-	if (my minimizer) {
-		Minimizer_drawHistory (my minimizer.get(), g, iFrom, iTo, costMin, costMax, 0);
-	}
+	if (my minimizer) Minimizer_drawHistory (my minimizer, g, iFrom, iTo,
+		        costMin, costMax, 0);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textLeft (g, true, my costFunctionType == FFNet_COST_MSE ?
+		Graphics_textLeft (g, 1, my costFunctionType == FFNet_COST_MSE ?
 		                   U"Minimum squared error" : U"Minimum cross entropy");
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Number of epochs");
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Number of epochs");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 	}
 }
 
-autoCollection FFNet_createIrisExample (long numberOfHidden1, long numberOfHidden2) {
+Collection FFNet_createIrisExample (long numberOfHidden1, long numberOfHidden2) {
 	try {
-		autoCollection collection = Collection_create ();
-		autoCategories uniq = Categories_createWithSequentialNumbers (3);
-		autoFFNet me = FFNet_create (4, numberOfHidden1, numberOfHidden2, 3, false);
-		FFNet_setOutputCategories (me.get(), uniq.get());
-		autostring32 name = FFNet_createNameFromTopology (me.get());
-		Thing_setName (me.get(), name.peek());
-		collection -> addItem_move (me.move());
+		autoCollection c = Collection_create (classData, 3);
+		autoCategories uniq = Categories_sequentialNumbers (3);
+		autoFFNet me = FFNet_create (4, numberOfHidden1, numberOfHidden2, 3, 0);
+		FFNet_setOutputCategories (me.peek(), uniq.peek());
+		autostring32 name = FFNet_createNameFromTopology (me.peek());
+		Thing_setName (me.peek(), name.peek());
+		Collection_addItem (c.peek(), me.transfer());
 		autoTableOfReal iris = TableOfReal_createIrisDataset ();
 
-		/*
-		 * Scale data to interval [0-1]
-		 */
-		for (long i = 1; i <= 150; i ++) {
-			for (long j = 1; j <= 4; j ++) {
-				iris -> data [i] [j] /= 10.0;
+		// Scale data to interval [0-1]
+
+		for (long i = 1; i <= 150; i++) {
+			for (long j = 1; j <= 4; j++) {
+				iris -> data[i][j] /= 10.0;
 			}
 		}
 
-		autoPattern ap;
-		autoCategories ac;
-		TableOfReal_to_Pattern_and_Categories (iris.get(), 0, 0, 0, 0, & ap, & ac);
-		Thing_setName (ap.get(), U"iris");
-		Thing_setName (ac.get(), U"iris");
-		collection -> addItem_move (ap.move());
-		collection -> addItem_move (ac.move());
-		return collection;
+		Pattern thee = 0; Categories him = 0;
+		TableOfReal_to_Pattern_and_Categories (iris.peek(), 0, 0, 0, 0, &thee, &him);
+		autoPattern ap = thee; autoCategories ac = him;
+		Thing_setName (ap.peek(), U"iris");
+		Thing_setName (ac.peek(), U"iris");
+		Collection_addItem (c.peek(), ap.transfer());
+		Collection_addItem (c.peek(), ac.transfer());
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Iris example not created.");
 	}
 }
 
-autoTableOfReal FFNet_extractWeights (FFNet me, long layer) {
+TableOfReal FFNet_extractWeights (FFNet me, long layer) {
 	try {
 		FFNet_checkLayerNumber (me, layer);
 
-		long numberOfUnitsFrom = my nUnitsInLayer [layer - 1] + 1;
-		long numberOfUnitsTo = my nUnitsInLayer [layer];
+		long numberOfUnitsFrom = my nUnitsInLayer[layer - 1] + 1;
+		long numberOfUnitsTo = my nUnitsInLayer[layer];
 		autoTableOfReal thee = TableOfReal_create (numberOfUnitsFrom, numberOfUnitsTo);
 
-		char32 label [40];
-		for (long i = 1; i <= numberOfUnitsFrom - 1; i ++) {
-			Melder_sprint (label,40, U"L", layer - 1, U"-", i);
-			TableOfReal_setRowLabel (thee.get(), i, label);
+		char32 label[40];
+		for (long i = 1; i <= numberOfUnitsFrom - 1; i++) {
+			Melder_sprint (label,40, U"L", layer - 1, U"-", i);   // ppgb: 20 chars is niet genoeg voor een long
+			TableOfReal_setRowLabel (thee.peek(), i, label);
 		}
-		TableOfReal_setRowLabel (thee.get(), numberOfUnitsFrom, U"Bias");
+		TableOfReal_setRowLabel (thee.peek(), numberOfUnitsFrom, U"Bias");
 		for (long i = 1; i <= numberOfUnitsTo; i++) {
-			Melder_sprint (label,40, U"L", layer, U"-", i);
-			TableOfReal_setColumnLabel (thee.get(), i, label);
+			Melder_sprint (label,40, U"L", layer, U"-", i);   // ppgb: 20 chars is niet genoeg voor een long
+			TableOfReal_setColumnLabel (thee.peek(), i, label);
 		}
 
 		long node = 1;
-		for (long i = 0; i < layer; i ++) {
+		for (long i = 0; i < layer; i++) {
 			node += my nUnitsInLayer[i] + 1;
 		}
-		for (long i = 1; i <= numberOfUnitsTo; i ++, node ++) {
+		for (long i = 1; i <= numberOfUnitsTo; i++, node++) {
 			long k = 1;
-			for (long j = my wFirst [node]; j <= my wLast [node]; j ++) {
-				thy data [k ++] [i] = my w [j];
+			for (long j = my wFirst[node]; j <= my wLast[node]; j++) {
+				thy data[k++][i] = my w[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TableOfReal created.");
 	}
 }
 
-autoFFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer) {
+FFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer) {
 	try {
 		FFNet_checkLayerNumber (me, layer);
-		if (my nUnitsInLayer [layer] != his numberOfColumns || my nUnitsInLayer [layer - 1] + 1 == his numberOfRows) {
+		if ( (my nUnitsInLayer[layer] != his numberOfColumns) ||
+		        (my nUnitsInLayer[layer] == his numberOfColumns && my nUnitsInLayer[layer - 1] + 1 == his numberOfRows)) {
 			long trys[1+3], rows[1+3], cols[1+3], ntry = my nLayers > 3 ? 3 : my nLayers, ok = 0;
 			if (my nLayers > 3) {
 				Melder_throw (U"Dimensions don't fit.");
@@ -806,19 +800,18 @@ autoFFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer)
 					ok ++;
 				}
 			}
-			if (! rows[layer]){
-				Melder_throw (U"The number of rows in the TableOfReal does not equal \n"
-				U"the number of units in the layer that connect to layer ", layer, U".");
-			} else {
+			if (! rows[layer]) Melder_throw (U"The number of rows in the TableOfReal does not equal \n"
+				                                 U"the number of units in the layer that connect to layer ", layer, U".");
+			else
 				Melder_throw (U"The number of columns in the TableOfReal does not equal \n"
-				    U"the number of units in layer ", layer, U".");
-			}
+				              U"the number of units in layer ", layer, U".");
 			if (ok == 0) {
 				Melder_throw (U"Please quit, there is no appropriate layer in the FFNet for this TableOfReal.");
 			} else {
-				if (ok == 1) {
-					Melder_throw (U"Please try again with layer number ", trys[1] ? trys[1] : (trys[2] ? trys[2] : trys[3]), U".");
-				} else {
+				if (ok == 1)
+					Melder_throw (U"Please try again with layer number ",
+					              trys[1] ? trys[1] : (trys[2] ? trys[2] : trys[3]), U".");
+				else {
 					Melder_throw (U"Please try again with one of the other two layer numbers.");
 				}
 			}
@@ -834,7 +827,7 @@ autoFFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer)
 				thy w[j] = his data[k][i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no FFNet created.");
 	}
diff --git a/FFNet/FFNet.h b/FFNet/FFNet.h
index 576e00e..b29fa7b 100644
--- a/FFNet/FFNet.h
+++ b/FFNet/FFNet.h
@@ -2,7 +2,7 @@
 #define _FFNet_h_
 /* FFNet.h
  *
- * Copyright (C) 1997-2011, 2015 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,6 +36,7 @@
 #include "TableOfReal.h"
 
 #include "FFNet_def.h"
+oo_CLASS_CREATE (FFNet, Data);
 
 /* Parameters:
  *  long nLayers	    : the #layers in the net (exclusive the inputs)
@@ -117,12 +118,12 @@
  */
 
 void FFNet_init (FFNet me, long numberOfInputs, long nodesInLayer1, long nodesInLayer2,
-	long numberOfOutputs, bool outputsAreLinear);
+	long numberOfOutputs, int outputsAreLinear);
 
-autoFFNet FFNet_create (long numberOfInputs, long numberInLayer1, long numberInLayer2,
-	long numberOfOutputs, bool outputsAreLinear);
+FFNet FFNet_create (long numberOfInputs, long numberInLayer1, long numberInLayer2,
+	long numberOfOutputs, int outputsAreLinear	);
 
-autostring32 FFNet_createNameFromTopology (FFNet me);
+char32 * FFNet_createNameFromTopology (FFNet me);
 /* Create names as <inputs>-<outputs>, <inputs>-<hidden>-<outputs>,
 	<inputs>-<hidden1>-<hidden2>-<outputs> for 1, 2 or 3 layer networks.
 */
@@ -138,11 +139,8 @@ void FFNet_setNonLinearity (FFNet me, int type);
 void FFNet_setOutputCategories (FFNet me, Categories thee);
 
 double FFNet_getBias (FFNet me, long layer, long unit);
-
 void FFNet_setBias (FFNet me, long layer, long node, double value);
-
 void FFNet_setWeight (FFNet me, long later, long node, long node_from, double value);
-
 double FFNet_getWeight (FFNet me, long later, long node, long node_from);
 
 void FFNet_reset (FFNet me, double wrange);
@@ -157,7 +155,7 @@ void FFNet_propagateToLayer (FFNet me, const double input[], double activity[],
 
 void FFNet_propagate (FFNet me, const double input[], double output[]);
 /* step (1) feed forward input from "input layer" to "output layer"
- * if output != nullptr the output activity is copied into output.
+ * if output != NULL the output activity is copied into output.
  * postcondition: my activities defined
  */
 
@@ -175,7 +173,6 @@ long FFNet_getWinningUnit (FFNet me, int labeling);
 /* labeling = 2 : stochastic */
 
 void FFNet_selectAllWeights (FFNet me);
-
 void FFNet_selectBiasesInLayer (FFNet me, long layer);
 
 long FFNet_dimensionOfSearchSpace (FFNet me);
@@ -206,9 +203,7 @@ long FFNet_getNumberOfUnitsInLayer (FFNet me, int layer);
 double FFNet_getMinimum (FFNet me);
 
 void FFNet_drawTopology (FFNet me, Graphics g);
-
 void FFNet_drawActivation (FFNet me, Graphics g);
-
 void FFNet_drawWeightsToLayer (FFNet me, Graphics g, int toLayer, int scaling, int garnish);
 /* Deprecated: the strengths of the weights that connect to the nodes in later 'layer' */
 /* are drawn with boxes. The area of each box corresponds to the strength. */
@@ -218,12 +213,10 @@ void FFNet_drawCostHistory (FFNet me, Graphics g, long from_iteration, long to_i
 	double from_cost, double to_cost, int garnish);
 /* draw cost vs epochs */
 
-autoCollection FFNet_createIrisExample (long numberOfHidden1, long numberOfHidden2);
-
-autoTableOfReal FFNet_extractWeights (FFNet me, long layer);
+Collection FFNet_createIrisExample (long numberOfHidden1, long numberOfHidden2);
 
+TableOfReal FFNet_extractWeights (FFNet me, long layer);
 void FFNet_drawWeights (FFNet me, Graphics g, long layer, int garnish);
-
-autoFFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer);
+FFNet FFNet_and_TabelOfReal_to_FFNet (FFNet me, TableOfReal him, long layer);
 
 #endif /* _FFNet_h_ */
diff --git a/FFNet/FFNet_Activation_Categories.cpp b/FFNet/FFNet_Activation_Categories.cpp
index 3d27b46..55346dd 100644
--- a/FFNet/FFNet_Activation_Categories.cpp
+++ b/FFNet/FFNet_Activation_Categories.cpp
@@ -1,6 +1,6 @@
 /* FFNet_Activation_Categories.cpp
  *
- * Copyright (C) 1997-2011, 2015-2016 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,11 +39,12 @@ static long winnerTakesAll (FFNet me, const double activation[]) {
 
 static long stochastic (FFNet me, const double activation[]) {
 	long i;
-	double range = 0.0, lower = 0.0;
+	double range = 0;
 	for (i = 1; i <= my nOutputs; i++) {
 		range += activation[i];
 	}
-	double number = NUMrandomUniform (0.0, range);
+	double number = NUMrandomUniform (0, range);
+	double lower = 0;
 	for (i = 1; i <= my nOutputs; i++) {
 		lower += activation[i];
 		if (number < lower) {
@@ -53,51 +54,52 @@ static long stochastic (FFNet me, const double activation[]) {
 	return i;
 }
 
-autoCategories FFNet_Activation_to_Categories (FFNet me, Activation activation, int labeling) {
+Categories FFNet_Activation_to_Categories (FFNet me, Activation activation, int labeling) {
 	try {
+		Categories categories = (Categories) my outputCategories;
 		long (*labelingFunction) (FFNet me, const double act[]);
 
-		if (! my outputCategories) {
+		if (my outputCategories == 0) {
 			Melder_throw (U"No Categories (has the FFNet been trained yet?).");
 		}
-		if (my nOutputs != activation -> nx) {
+		if (my nOutputs != activation->nx) {
 			Melder_throw (U"Number of columns and number of outputs must be equal.");
 		}
 		autoCategories thee = Categories_create ();
 		labelingFunction = labeling == 2 ? stochastic : winnerTakesAll;
 		for (long i = 1; i <= activation->ny; i++) {
 			long index = labelingFunction (me, activation -> z[i]);
-			autoSimpleString item = Data_copy (my outputCategories->at [index]);
-			thy addItem_move (item.move());
+			autoSimpleString item = Data_copy ( (SimpleString) categories -> item[index]);
+			Collection_addItem (thee.peek(), item.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Categories created.");
 	}
 }
 
-autoActivation FFNet_Categories_to_Activation (FFNet me, Categories thee) {
+Activation FFNet_Categories_to_Activation (FFNet me, Categories thee) {
 	try {
-		autoCategories uniq = Categories_selectUniqueItems (thee);
+		autoCategories uniq = Categories_selectUniqueItems (thee, 1);
 
-		if (! my outputCategories) {
+		if (my outputCategories == 0) {
 			Melder_throw (U"The FFNet does not have categories.");
 		}
-		long nl = OrderedOfString_isSubsetOf (uniq.get(), my outputCategories.get(), 0);
+		long nl =  OrderedOfString_isSubsetOf (uniq.peek(), my outputCategories, 0);
 		if (nl == 0) {
 			Melder_throw (U"The Categories do not match the categories of the FFNet.");
 		}
 
 		autoActivation him = Activation_create (thy size, my nOutputs);
-		for (long i = 1; i <= thy size; i ++) {
+		for (long i = 1; i <= thy size; i++) {
 			const char32 *citem = OrderedOfString_itemAtIndex_c (thee, i);
-			long pos = OrderedOfString_indexOfItem_c (my outputCategories.get(), citem);
+			long pos =  OrderedOfString_indexOfItem_c (my outputCategories, citem);
 			if (pos < 1) {
 				Melder_throw (U"The FFNet doesn't know the category ", citem, U".");
 			}
-			his z [i] [pos] = 1.0;
+			his z[i][pos] = 1.0;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Activation created.");
 	}
diff --git a/FFNet/FFNet_Activation_Categories.h b/FFNet/FFNet_Activation_Categories.h
index 634c055..5a7d5f3 100644
--- a/FFNet/FFNet_Activation_Categories.h
+++ b/FFNet/FFNet_Activation_Categories.h
@@ -2,7 +2,7 @@
 #define _FFNet_Activation_Categories_h_
 /* FFNet_Activation_Categories.h
  *
- * Copyright (C) 1997-2011, 2015 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,11 +29,11 @@
 #include "Activation.h"
 #include "Categories.h"
 
-autoCategories FFNet_Activation_to_Categories (FFNet me, Activation activation, int labeling);
+Categories FFNet_Activation_to_Categories (FFNet me, Activation activation, int labeling);
 /* labeling = 1 : winner-takes-all */
 /* labeling = 2 : stochastic */
 
-autoActivation FFNet_Categories_to_Activation (FFNet me, Categories labels);
-/* Postcondition: my outputCategories != nullptr; */
+Activation FFNet_Categories_to_Activation (FFNet me, Categories labels);
+/* Postcondition: my outputCategories != NULL; */
 
 #endif /* _FFNet_Activation_Categories_h_ */
diff --git a/FFNet/FFNet_Eigen.cpp b/FFNet/FFNet_Eigen.cpp
index 24fc1b3..bd99f80 100644
--- a/FFNet/FFNet_Eigen.cpp
+++ b/FFNet/FFNet_Eigen.cpp
@@ -1,6 +1,6 @@
 /* FFNet_Eigen.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,8 @@
 #include "Graphics.h"
 #include "NUM2.h"
 
-void FFNet_Eigen_drawIntersection (FFNet me, Eigen eigen, Graphics g, long pcx, long pcy, double xmin, double xmax, double ymin, double ymax) {
+void FFNet_Eigen_drawIntersection (FFNet me, Eigen eigen, Graphics g, long pcx, long pcy,
+                                   double xmin, double xmax, double ymin, double ymax) {
 	long ix = labs (pcx), iy = labs (pcy);
 	long numberOfEigenvalues = eigen -> numberOfEigenvalues;
 	long dimension = eigen -> dimension;
@@ -85,9 +86,10 @@ void FFNet_Eigen_drawIntersection (FFNet me, Eigen eigen, Graphics g, long pcx,
 	Draw the intersection line of the decision hyperplane 'w.e-b' of the weights of unit i
 	from layer j with the plane spanned by eigenvectors pcx and pcy.
 */
-void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, Eigen thee, Graphics g, long unit, long layer,
-	long pcx, long pcy, double xmin, double xmax, double ymin, double ymax)
-{
+void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, thou, Graphics g, long unit,
+        long layer, long pcx, long pcy, double xmin, double xmax, double ymin, double ymax) {
+	thouart (Eigen);
+
 	if (layer < 1 || layer > my nLayers) {
 		return;
 	}
@@ -144,7 +146,7 @@ void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, Eigen thee, Graphics g
 	*/
 
 	long iw = my wFirst[node] - 1;
-	double we1 = 0.0, we2 = 0.0;
+	double we1 = 0, we2 = 0;
 	for (long i = 1; i <= my nUnitsInLayer[layer - 1]; i++) {
 		we1 += my w[iw + i] * thy eigenvectors[pcx][i];
 		we2 += my w[iw + i] * thy eigenvectors[pcy][i];
@@ -153,24 +155,24 @@ void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, Eigen thee, Graphics g
 	double bias = my w[my wLast[node]];
 	x1 = xmin; x2 = xmax;
 	y1 = ymin; y2 = ymax;
-	if (we1 != 0.0) {
-		x1 = -bias / we1; y1 = 0.0;
+	if (we1 != 0) {
+		x1 = -bias / we1; y1 = 0;
 	}
-	if (we2 != 0.0) {
-		x2 = 0.0; y2 = -bias / we2;
+	if (we2 != 0) {
+		x2 = 0; y2 = -bias / we2;
 	}
-	if (we1 == 0.0 && we2 == 0.0) {
+	if (we1 == 0 && we2 == 0) {
 		Melder_warning (U"We cannot draw the intersection of the neural net decision plane\n"
-		    "for unit ", unit, U" in layer ", layer, U" with the plane spanned by the eigenvectors because \nboth planes are parallel.");
+		                 "for unit ", unit, U" in layer ", layer,
+		                 U" with the plane spanned by the eigenvectors because \nboth planes are parallel.");
 		return;
 	}
 	double xi[3], yi[3]; /* Intersections */
 	double ni = NUMgetIntersectionsWithRectangle (x1, y1, x2, y2, xmin, ymin, xmax, ymax, xi, yi);
 	if (ni == 2) {
 		Graphics_line (g, xi[1], yi[1], xi[2], yi[2]);
-	} else {
-		Melder_warning (U"There were no intersections in the drawing area.\nPlease enlarge the drawing area.");
-	}
+	} else Melder_warning (U"There were no intersections in the drawing area.\n"
+		                        U"Please enlarge the drawing area.");
 	Graphics_unsetInner (g);
 }
 
diff --git a/FFNet/FFNet_Eigen.h b/FFNet/FFNet_Eigen.h
index 60c16c5..aaa4d0f 100644
--- a/FFNet/FFNet_Eigen.h
+++ b/FFNet/FFNet_Eigen.h
@@ -2,7 +2,7 @@
 #define _FFNet_Eigen_h_
 /* FFNet_Eigen.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ void FFNet_Eigen_drawIntersection (FFNet me, Eigen eigen, Graphics g, long pcx,
 /* pcx (pcy) > 0	: negative values left (bottom), positive right (top) */
 /* pcx (pcy) < 0	: negative values right (top). */
 
-void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, Eigen thee, Graphics g, long unit,
+void FFNet_Eigen_drawDecisionPlaneInEigenspace (FFNet me, thou, Graphics g, long unit, 
 	long layer,	long pcx, long pcy, double xmin, double xmax, double ymin, double ymax);
 
 #endif /* _FFNet_Eigen_h_ */
diff --git a/FFNet/FFNet_Matrix.cpp b/FFNet/FFNet_Matrix.cpp
index 5e07415..68ad037 100644
--- a/FFNet/FFNet_Matrix.cpp
+++ b/FFNet/FFNet_Matrix.cpp
@@ -1,6 +1,6 @@
 /* FFNet_Matrix.cpp
  *
- * Copyright (C) 1997-2011, 2015 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,13 +24,14 @@
 
 #include "FFNet_Matrix.h"
 
-autoMatrix FFNet_weightsToMatrix (FFNet me, long layer, bool deltaWeights) {
+Matrix FFNet_weightsToMatrix (FFNet me, long layer, int deltaWeights) {
 	try {
 		if (layer < 1 || layer > my nLayers) {
 			Melder_throw (U"Layer must be > 0 and < ", my nLayers, U".");
 		}
-		autoMatrix thee = Matrix_create (0.5, my nUnitsInLayer[layer] + 0.5, my nUnitsInLayer[layer], 1.0, 1.0,
-		    0.5, my nUnitsInLayer[layer - 1] + 1 + 0.5, my nUnitsInLayer[layer - 1] + 1, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (
+		                      0.5, my nUnitsInLayer[layer] + 0.5, my nUnitsInLayer[layer], 1, 1,
+		                      0.5, my nUnitsInLayer[layer - 1] + 1 + 0.5, my nUnitsInLayer[layer - 1] + 1, 1, 1);
 		long node = 1;
 		for (long i = 0; i < layer; i++) {
 			node += my nUnitsInLayer[i] + 1;
@@ -41,25 +42,24 @@ autoMatrix FFNet_weightsToMatrix (FFNet me, long layer, bool deltaWeights) {
 				thy z[k++][i] = deltaWeights ? my dwi[j] : my w[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix created.");
 	}
 }
 
-autoFFNet FFNet_weightsFromMatrix (FFNet me, Matrix him, long layer) {
+FFNet FFNet_weightsFromMatrix (FFNet me, Matrix him, long layer) {
 	try {
 		if (layer < 1 || layer > my nLayers) {
 			Melder_throw (U"Layer must be > 0 and < ", my nLayers, U".");
 		}
-		if (my nUnitsInLayer[layer] != his nx) {
-			Melder_throw (U"The #columns (", his nx, U") must equal #units (", my nUnitsInLayer[layer], U") in layer ", layer, U".");
-		}
+		if (my nUnitsInLayer[layer] != his nx) Melder_throw (U"The #columns (", his nx, U") must equal "
+			        U"#units (", my nUnitsInLayer[layer], U") in layer ", layer, U".");
 		long nunits = my nUnitsInLayer[layer - 1] + 1;
 		if (nunits != his ny) {
 			Melder_throw (U" The #rows (", his ny, U")  must equal #units (", nunits , U") in layer ", layer - 1, U".");
 		}
-		autoFFNet thee = Data_copy (me);
+		autoFFNet thee = (FFNet) Data_copy (me);
 		long node = 1;
 		for (long i = 0; i < layer; i++) {
 			node += thy nUnitsInLayer[i] + 1;
@@ -70,7 +70,7 @@ autoFFNet FFNet_weightsFromMatrix (FFNet me, Matrix him, long layer) {
 				thy w[j] = his z[k][i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no FFNet created.");
 	}
diff --git a/FFNet/FFNet_Matrix.h b/FFNet/FFNet_Matrix.h
index 0d12af8..6878663 100644
--- a/FFNet/FFNet_Matrix.h
+++ b/FFNet/FFNet_Matrix.h
@@ -2,7 +2,7 @@
 #define _FFNet_Matrix_h_
 /* FFNet_Matrix.h
  *
- * Copyright (C) 1997-2011, 2015 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,10 +38,10 @@
 /* x1 = y1 = 1																*/
 /*																			*/
 
-autoMatrix FFNet_weightsToMatrix (FFNet me, long layer, bool deltaWeights);
+Matrix FFNet_weightsToMatrix (FFNet me, long layer, int deltaWeights);
 /* (delta) weights connected to layer into Matrix */
 
-autoFFNet FFNet_weightsFromMatrix (FFNet me, Matrix matrix, long layer);
+FFNet FFNet_weightsFromMatrix (FFNet me, Matrix matrix, long layer);
 /* creates a new FFNet in which the weights that connect to layer are		*/
 /* replaced by the weights in the matrix									*/
 
diff --git a/FFNet/FFNet_Pattern.cpp b/FFNet/FFNet_Pattern.cpp
index 82f7dea..0e214e2 100644
--- a/FFNet/FFNet_Pattern.cpp
+++ b/FFNet/FFNet_Pattern.cpp
@@ -28,7 +28,7 @@ void FFNet_Pattern_drawActivation (FFNet me, Pattern pattern, Graphics g, long i
 	if (index < 1 || index > pattern->ny) {
 		return;
 	}
-	FFNet_propagate (me, pattern->z[index], nullptr);
+	FFNet_propagate (me, pattern->z[index], NULL);
 	FFNet_drawActivation (me, g);
 }
 
diff --git a/FFNet/FFNet_Pattern.h b/FFNet/FFNet_Pattern.h
index 824aec7..41c890d 100644
--- a/FFNet/FFNet_Pattern.h
+++ b/FFNet/FFNet_Pattern.h
@@ -2,7 +2,7 @@
 #define _FFNet_Pattern_h_
 /* FFNet_Pattern.h
  *
- * Copyright (C) 1997-2011, 2015 David Weenink
+ * Copyright (C) 1997-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/FFNet/FFNet_Pattern_Activation.cpp b/FFNet/FFNet_Pattern_Activation.cpp
index ad2dd1c..5ec1f8f 100644
--- a/FFNet/FFNet_Pattern_Activation.cpp
+++ b/FFNet/FFNet_Pattern_Activation.cpp
@@ -1,6 +1,6 @@
 /* FFNet_Pattern_Activation.cpp
  *
- * Copyright (C) 1994-2011,2015-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,10 +28,10 @@
 #include "Graphics.h"
 #include "FFNet_Pattern_Activation.h"
 
-static double func (Daata object, const double p[]) {
+static double func (Data object, const double p[]) {
 	FFNet me = (FFNet) object;
-	Minimizer thee = my minimizer.get();
-	double fp = 0.0;
+	Minimizer thee = my minimizer;
+	double fp = 0;
 
 	for (long j = 1, k = 1; k <= my nWeights; k++) {
 		my dw[k] = 0.0;
@@ -40,7 +40,7 @@ static double func (Daata object, const double p[]) {
 		}
 	}
 	for (long i = 1; i <= my nPatterns; i++) {
-		FFNet_propagate (me, my inputPattern[i], nullptr);
+		FFNet_propagate (me, my inputPattern[i], NULL);
 		fp += FFNet_computeError (me, my targetActivation[i]);
 		FFNet_computeDerivative (me);
 		/* derivative (cumulative) */
@@ -52,7 +52,7 @@ static double func (Daata object, const double p[]) {
 	return fp;
 }
 
-static void dfunc_optimized (Daata object, const double p[], double dp[]) {
+static void dfunc_optimized (Data object, const double p[], double dp[]) {
 	FFNet me = (FFNet) object;
 	(void) p;
 
@@ -65,25 +65,26 @@ static void dfunc_optimized (Daata object, const double p[], double dp[]) {
 }
 
 static void _FFNet_Pattern_Activation_checkDimensions (FFNet me, Pattern p, Activation a) {
-	if (my nInputs != p -> nx) {
-		Melder_throw (U"The Pattern and the FFNet do not match.\nThe number of columns in the Pattern must equal the number of inputs in the FFNet.");
-	}
-	if (my nOutputs != a -> nx) {
-		Melder_throw (U"The Activation and the FFNet do not match.\nThe number of columns in the Activation must equal the number of outputs in the FFNet.");
-	}
-	if (p -> ny != a -> ny) {
-		Melder_throw (U"The Pattern and the Activation do not match.\nThe number of rows in the Pattern must equal the number of rows in the Activation.");
-	}
-	if (! _Pattern_checkElements (p)) {
-		Melder_throw (U"All Pattern elements must be in the interval [0, 1].\nYou could use \"Formula...\" to scale the Pattern values first.");	}
-	if (! _Activation_checkElements (a)) {
-		Melder_throw (U"All Activation elements must be in the interval [0, 1].\nYou could use \"Formula...\" to scale the Activation values first.");
-	}
+	if (my nInputs != p -> nx) Melder_throw (U"The Pattern and the FFNet do not match.\n"
+		        "The number of colums in the Pattern must equal the number of inputs in the FFNet.");
+	if (my nOutputs != a -> nx) Melder_throw (U"The Activation and the FFNet do not match.\n"
+		        "The number of colums in the Activation must equal the number of outputs in the FFNet.");
+	if (p -> ny != a -> ny) Melder_throw (U"The Pattern and the Activation do not match.\n"
+		                                      "The number of rows in the Pattern must equal the number of rows in the Activation.");
+	if (! _Pattern_checkElements (p)) Melder_throw (U"The elements in the Pattern are not all "
+		        "in the interval [0, 1].\nThe input of the neural net can only process values that are between 0 "
+		        "and 1.\nYou could use a \"Formula...\" to scale the Pattern values first.");
+	if (! _Activation_checkElements (a)) Melder_throw (U"The elements in the Activation are not "
+		        "all in the interval [0, 1].\nThe output of the neural net can only process values that are "
+		        "between 0 and 1.\nYou could use \"Formula...\" to scale the Activation values first.");
 }
 
-static void _FFNet_Pattern_Activation_learn (FFNet me, Pattern pattern, Activation activation, long maxNumOfEpochs, double tolerance, int costFunctionType, bool reset) {
+static void _FFNet_Pattern_Activation_learn (FFNet me, Pattern pattern,
+        Activation activation, long maxNumOfEpochs, double tolerance,
+        Any parameters, int costFunctionType, int reset) {
 	try {
 		_FFNet_Pattern_Activation_checkDimensions (me, pattern, activation);
+		Minimizer_setParameters (my minimizer, parameters);
 
 		// Link the things to be learned
 
@@ -100,56 +101,58 @@ static void _FFNet_Pattern_Activation_learn (FFNet me, Pattern pattern, Activati
 					wbuf[k++] = my w[i];
 				}
 			}
-			Minimizer_reset (my minimizer.get(), wbuf.peek());
+			Minimizer_reset (my minimizer, wbuf.peek());
 		}
 
-		Minimizer_minimize (my minimizer.get(), maxNumOfEpochs, tolerance, 1);
+		Minimizer_minimize (my minimizer, maxNumOfEpochs, tolerance, 1);
 
 		// Unlink
 
 		my nPatterns = 0;
-		my inputPattern = nullptr;
-		my targetActivation = nullptr;
+		my inputPattern = NULL;
+		my targetActivation = NULL;
 	} catch (MelderError) {
 		my nPatterns = 0;
-		my inputPattern = nullptr;
-		my targetActivation = nullptr;
+		my inputPattern = 0;
+		my targetActivation = 0;
 	}
 }
 
 
-void FFNet_Pattern_Activation_learnSD (FFNet me, Pattern p, Activation a, long maxNumOfEpochs, double tolerance, double learningRate, double momentum, int costFunctionType) {
+void FFNet_Pattern_Activation_learnSD (FFNet me, Pattern p, Activation a,
+                                       long maxNumOfEpochs, double tolerance, Any parameters, int costFunctionType) {
 	int resetMinimizer = 0;
 	/* Did we choose another minimizer */
-	if (my minimizer && ! Thing_isa (my minimizer.get(), classSteepestDescentMinimizer)) {
-		my minimizer.reset();
+	if (my minimizer != 0 && ! Thing_isa (my minimizer, classSteepestDescentMinimizer)) {
+		forget (my minimizer);
 		resetMinimizer = 1;
 	}
 	/* create the minimizer if it doesn't exist */
-	if (! my minimizer) {
+	if (my minimizer == 0) {
 		resetMinimizer = 1;
-		my minimizer = SteepestDescentMinimizer_create (my dimension, me, func, dfunc_optimized);
+		my minimizer = (Minimizer) SteepestDescentMinimizer_create (my dimension, me, func, dfunc_optimized);
 	}
-	((SteepestDescentMinimizer) my minimizer.get()) -> eta = learningRate;
-	((SteepestDescentMinimizer) my minimizer.get()) -> momentum = momentum;
-	_FFNet_Pattern_Activation_learn (me, p, a, maxNumOfEpochs, tolerance, costFunctionType, resetMinimizer);
+	_FFNet_Pattern_Activation_learn (me, p, a, maxNumOfEpochs,
+	                                 tolerance, parameters, costFunctionType, resetMinimizer);
 }
 
-void FFNet_Pattern_Activation_learnSM (FFNet me, Pattern p, Activation a, long maxNumOfEpochs, double tolerance, int costFunctionType) {
+void FFNet_Pattern_Activation_learnSM (FFNet me, Pattern p, Activation a,
+                                       long maxNumOfEpochs, double tolerance, Any parameters, int costFunctionType) {
 	int resetMinimizer = 0;
-
-	// Did we choose another minimizer
-
-	if (my minimizer.get() && ! Thing_isa (my minimizer.get(), classVDSmagtMinimizer)) {
-		my minimizer.reset();
+	/*
+		Did we choose another minimizer
+	*/
+	if (my minimizer != 0 && ! Thing_isa (my minimizer, classVDSmagtMinimizer)) {
+		forget (my minimizer);
 		resetMinimizer = 1;
 	}
-	// create the minimizer if it doesn't exist
-	if (! my minimizer.get()) {
+	/* create the minimizer if it doesn't exist */
+	if (my minimizer == 0) {
 		resetMinimizer = 1;
-		my minimizer = VDSmagtMinimizer_create (my dimension, me, func, dfunc_optimized);
+		my minimizer = (Minimizer) VDSmagtMinimizer_create (my dimension, me, func, dfunc_optimized);
 	}
-	_FFNet_Pattern_Activation_learn (me, p, a, maxNumOfEpochs, tolerance, costFunctionType, resetMinimizer);
+	_FFNet_Pattern_Activation_learn (me, p, a, maxNumOfEpochs,
+	                                 tolerance, parameters, costFunctionType, resetMinimizer);
 }
 
 double FFNet_Pattern_Activation_getCosts_total (FFNet me, Pattern p, Activation a, int costFunctionType) {
@@ -157,9 +160,9 @@ double FFNet_Pattern_Activation_getCosts_total (FFNet me, Pattern p, Activation
 		_FFNet_Pattern_Activation_checkDimensions (me, p, a);
 		FFNet_setCostFunction (me, costFunctionType);
 
-		double cost = 0.0;
+		double cost = 0;
 		for (long i = 1; i <= p -> ny; i++) {
-			FFNet_propagate (me, p -> z[i], nullptr);
+			FFNet_propagate (me, p -> z[i], NULL);
 			cost += FFNet_computeError (me, a -> z[i]);
 		}
 		return cost;
@@ -173,24 +176,26 @@ double FFNet_Pattern_Activation_getCosts_average (FFNet me, Pattern p, Activatio
 	return costs == NUMundefined ? NUMundefined : costs / p -> ny;
 }
 
-autoActivation FFNet_Pattern_to_Activation (FFNet me, Pattern p, long layer) {
+Activation FFNet_Pattern_to_Activation (FFNet me, Pattern p, long layer) {
 	try {
 		if (layer < 1 || layer > my nLayers) {
 			layer = my nLayers;
 		}
-		if (my nInputs != p -> nx) {
-			Melder_throw (U"The Pattern and the FFNet do not match. The number of colums in the Pattern (", p -> nx, U") should equal the number of inputs in the FFNet (", my nInputs, U").");
-		}
-		if (! _Pattern_checkElements (p)) {
-			Melder_throw (U"All Pattern elements must be in the interval [0, 1].\nYou could use \"Formula...\" to scale the Pattern values first.");
-		}
+		if (my nInputs != p -> nx) Melder_throw (U"The Pattern and the FFNet do not match. "
+			        U"The number of colums in the Pattern (", p -> nx, U") should equal the number of inputs "
+			        U"in the FFNet (", my nInputs, U").");
+		if (! _Pattern_checkElements (p)) Melder_throw
+			(U"The elements in the Activation are not all in the interval [0, 1].\n"
+			 U"The output units of the neural net can only process values that are between 0 and 1.\n"
+			 U"You could use \"Formula...\" to scale the Activation values first.");
+
 		long nPatterns = p -> ny;
 		autoActivation thee = Activation_create (nPatterns, my nUnitsInLayer[layer]);
 
 		for (long i = 1; i <= nPatterns; i++) {
 			FFNet_propagateToLayer (me, p -> z[i], thy z[i], layer);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Activation created.");
 	}
diff --git a/FFNet/FFNet_Pattern_Activation.h b/FFNet/FFNet_Pattern_Activation.h
index db3e7b2..db0ce55 100644
--- a/FFNet/FFNet_Pattern_Activation.h
+++ b/FFNet/FFNet_Pattern_Activation.h
@@ -2,7 +2,7 @@
 #define _FFNet_Pattern_Activation_h_
 /* FFNet_Pattern_Activation.h
  *
- * Copyright (C) 1994-2011,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,16 +33,16 @@
 #include "Minimizers.h"
 
 void FFNet_Pattern_Activation_learnSD (FFNet me, Pattern p, Activation a, long maxNumOfEpochs,
-    double tolerance, double learningRate, double momentum, int costFunctionType);
+    double tolerance, Any parameters, int costFunctionType);
 /* Steepest Descent minimization */
 
 void FFNet_Pattern_Activation_learnSM (FFNet me, Pattern p, Activation a, long maxNumOfEpochs,
-    double tolerance, int costFunctionType);
+    double tolerance, Any parameters, int costFunctionType);
 
 double FFNet_Pattern_Activation_getCosts_total (FFNet me, Pattern p, Activation a, int costFunctionType);
 double FFNet_Pattern_Activation_getCosts_average (FFNet me, Pattern p, Activation a, int costFunctionType);
 
-autoActivation FFNet_Pattern_to_Activation (FFNet me, Pattern p, long layer);
+Activation FFNet_Pattern_to_Activation (FFNet me, Pattern p, long layer);
 /* Calculate the activations at a layer */
 /* if (layer<1 || layer > my nLayers) layer = my nLayers; */
 
diff --git a/FFNet/FFNet_Pattern_Categories.cpp b/FFNet/FFNet_Pattern_Categories.cpp
index c4c2eea..86c955f 100644
--- a/FFNet/FFNet_Pattern_Categories.cpp
+++ b/FFNet/FFNet_Pattern_Categories.cpp
@@ -1,6 +1,6 @@
 /* FFNet_Pattern_Categories.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,22 +29,31 @@
 #include "FFNet_Pattern_Activation.h"
 
 static void _FFNet_Pattern_Categories_checkDimensions (FFNet me, Pattern p, Categories c) {
-	if (my nInputs != p -> nx) {
-		Melder_throw (U"The Pattern and the FFNet do not match.\nThe number of colums in the Pattern must equal the number of inputs in the FFNet.");
-	}
-	if (p -> ny != c->size) {
-		Melder_throw (U"The Pattern and the categories do not match.\nThe number of rows in the Pattern must equal the number of categories.");
-	}
-	if (! _Pattern_checkElements (p)) {
-		Melder_throw (U"All Pattern elements must be in the interval [0, 1].\nYou could use \"Formula...\" to scale the Pattern values first.");
-	}
+
+	if (my nInputs != p -> nx) Melder_throw (U"The Pattern and the FFNet do not match.\n"
+		        U"The number of colums in the Pattern must equal the number of inputs in the FFNet.");
+	if (p -> ny != c -> size) Melder_throw (U"The Pattern and the categories do not match.\n"
+		                                        U"The number of rows in the Pattern must equal the number of categories.");
+	if (! _Pattern_checkElements (p)) Melder_throw (U"The elements in the Pattern are not all "
+		        U"in the interval [0, 1].\nThe input of the neural net can only process values that are between 0 "
+		        U"and 1.\nYou could use \"Formula...\" to scale the Pattern values first.");
+}
+
+static void _FFNet_Pattern_Categories_learn (FFNet me, Pattern p, Categories c,
+        long maxNumOfEpochs, double tolerance, Any parameters, int costFunctionType,
+        void (*learn) (FFNet, Pattern, Activation, long, double, Any, int)) {
+	_FFNet_Pattern_Categories_checkDimensions (me, p, c);
+	autoActivation activation = FFNet_Categories_to_Activation (me, c);
+	double min, max;
+	Matrix_getWindowExtrema (p, 0, 0, 0, 0, &min, &max);
+	learn (me, p, activation.peek(), maxNumOfEpochs, tolerance, parameters, costFunctionType);
 }
 
 double FFNet_Pattern_Categories_getCosts_total (FFNet me, Pattern p, Categories c, int costFunctionType) {
 	try {
 		_FFNet_Pattern_Categories_checkDimensions (me, p, c);
 		autoActivation activation = FFNet_Categories_to_Activation (me, c);
-		return FFNet_Pattern_Activation_getCosts_total (me, p, activation.get(), costFunctionType);
+		return FFNet_Pattern_Activation_getCosts_total (me, p, activation.peek(), costFunctionType);
 	} catch (MelderError) {
 		return NUMundefined;
 	}
@@ -55,43 +64,38 @@ double FFNet_Pattern_Categories_getCosts_average (FFNet me, Pattern p, Categorie
 	return costs == NUMundefined ? NUMundefined : costs / p -> ny;
 }
 
-void FFNet_Pattern_Categories_learnSD (FFNet me, Pattern p, Categories c, long maxNumOfEpochs, double tolerance, double learningRate, double momentum, int costFunctionType) {
-	_FFNet_Pattern_Categories_checkDimensions (me, p, c);
-	autoActivation activation = FFNet_Categories_to_Activation (me, c);
-	double min, max;
-	Matrix_getWindowExtrema (p, 0, 0, 0, 0, & min, & max);
-	FFNet_Pattern_Activation_learnSD (me, p, activation.get(), maxNumOfEpochs, tolerance, learningRate, momentum, costFunctionType);
+void FFNet_Pattern_Categories_learnSM (FFNet me, Pattern p, Categories c,
+                                       long maxNumOfEpochs, double tolerance, Any parameters, int costFunctionType) {
+	_FFNet_Pattern_Categories_learn (me, p, c, maxNumOfEpochs, tolerance, parameters, costFunctionType, FFNet_Pattern_Activation_learnSM);
 }
 
-void FFNet_Pattern_Categories_learnSM (FFNet me, Pattern p, Categories c, long maxNumOfEpochs, double tolerance, int costFunctionType) {
-	_FFNet_Pattern_Categories_checkDimensions (me, p, c);
-	autoActivation activation = FFNet_Categories_to_Activation (me, c);
-	double min, max;
-	Matrix_getWindowExtrema (p, 0, 0, 0, 0, & min, & max);
-	FFNet_Pattern_Activation_learnSM (me, p, activation.get(), maxNumOfEpochs, tolerance, costFunctionType);
+void FFNet_Pattern_Categories_learnSD (FFNet me, Pattern p, Categories c,
+                                       long maxNumOfEpochs, double tolerance, Any parameters, int costFunctionType) {
+	_FFNet_Pattern_Categories_learn (me, p, c, maxNumOfEpochs, tolerance, parameters, costFunctionType, FFNet_Pattern_Activation_learnSD);
 }
 
-autoCategories FFNet_Pattern_to_Categories (FFNet me, Pattern thee, int labeling) {
+Categories FFNet_Pattern_to_Categories (FFNet me, Pattern thee, int labeling) {
 	try {
-		if (! my outputCategories) {
+		if (my outputCategories == 0) {
 			Melder_throw (U"The FFNet has no output categories.");
 		}
-		if (my nInputs != thy nx) {
-			Melder_throw (U"The number of colums in the Pattern (", thy nx, U") should equal the number of inputs in the FFNet (", my nInputs, U").");
-		}
-		if (! _Pattern_checkElements (thee)) {
-			Melder_throw (U"All Pattern elements must be in the interval [0, 1].\nYou could use \"Formula...\" to scale the Pattern values first.");
-		}
+		if (my nInputs != thy nx) Melder_throw (U"The number of colums in the Pattern (", thy nx,
+			                                        U") should equal the number of inputs in the FFNet (", my nInputs, U").");
+		if (! _Pattern_checkElements (thee)) Melder_throw
+			(U"The elements in the Pattern are not all in the interval [0, 1].\n"
+			 U"The input of the neural net can only process values that are between 0 and 1.\n"
+			 U"You could use \"Formula...\" to scale the Pattern values first.");
+
 
 		autoCategories him = Categories_create ();
 
-		for (long k = 1; k <= thy ny; k ++) {
-			FFNet_propagate (me, thy z [k], nullptr);
+		for (long k = 1; k <= thy ny; k++) {
+			FFNet_propagate (me, thy z[k], 0);
 			long index = FFNet_getWinningUnit (me, labeling);
-			autoSimpleString item = Data_copy (my outputCategories->at [index]);
-			his addItem_move (item.move());
+			autoData item = Data_copy ( (Data) my outputCategories -> item[index]);
+			Collection_addItem (him.peek(), item.transfer());
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Categories created.");
 	}
diff --git a/FFNet/FFNet_Pattern_Categories.h b/FFNet/FFNet_Pattern_Categories.h
index 2d704ac..d25a223 100644
--- a/FFNet/FFNet_Pattern_Categories.h
+++ b/FFNet/FFNet_Pattern_Categories.h
@@ -2,7 +2,7 @@
 #define _FFNet_Pattern_Categories_h_
 /* FFNet_Pattern_Categories.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,17 +31,17 @@
 #include "Minimizers.h"
 
 void FFNet_Pattern_Categories_learnSD (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
-    double tolerance, double learningRate, double momentum, int costFunctionType);
+    double tolerance, Any parameters, int costFunctionType);
 /* Steepest descent */
 
 void FFNet_Pattern_Categories_learnSM (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
-    double tolerance, int costFunctionType);
+    double tolerance, Any parameters, int costFunctionType);
 /* Conj. Gradient vdSmagt */
 
 double FFNet_Pattern_Categories_getCosts_total (FFNet me, Pattern p, Categories c, int costFunctionType);
 double FFNet_Pattern_Categories_getCosts_average (FFNet me, Pattern p, Categories c, int costFunctionType);
 
-autoCategories FFNet_Pattern_to_Categories (FFNet me, Pattern p, int labeling);
+Categories FFNet_Pattern_to_Categories (FFNet me, Pattern p, int labeling);
 /* classify the Pattern */
 /* labeling = 1 : winner-takes-all */
 /* labeling = 2 : stochastic */
diff --git a/FFNet/FFNet_def.h b/FFNet/FFNet_def.h
index a60d3c3..3aa1421 100644
--- a/FFNet/FFNet_def.h
+++ b/FFNet/FFNet_def.h
@@ -25,7 +25,7 @@
 */
 
 #define ooSTRUCT FFNet
-oo_DEFINE_CLASS (FFNet, Daata)
+oo_DEFINE_CLASS (FFNet, Data)
 
 	oo_LONG (nLayers)	/* number of layers */
 	
@@ -37,7 +37,7 @@ oo_DEFINE_CLASS (FFNet, Daata)
 
 	oo_INT (costFunctionType)
 
-	oo_AUTO_COLLECTION (Categories, outputCategories, SimpleString, 0)
+	oo_COLLECTION (Categories, outputCategories, SimpleString, 0)
 
 	oo_LONG (nWeights)	/* number of weights */
 
@@ -50,9 +50,9 @@ oo_DEFINE_CLASS (FFNet, Daata)
 		oo_LONG (dimension)
 
 		#if oo_DECLARING
-			double (*nonLinearity) (FFNet /* me */, double /* x */, double * /* deriv */);
+			double (*nonLinearity) (I, double /* x */, double * /* deriv */);
     		void *nlClosure;
-    		double (*costFunction) (FFNet /* me */, const double * /* target */);
+    		double (*costFunction) (I, const double * /* target */);
 			void *cfClosure;
 		#endif
 		
@@ -63,7 +63,7 @@ oo_DEFINE_CLASS (FFNet, Daata)
 			double **inputPattern, **targetActivation;
 		#endif
 		#if oo_DECLARING || oo_DESTROYING
-			oo_AUTO_OBJECT (Minimizer, 0, minimizer)
+			oo_OBJECT (Minimizer, 0, minimizer)
 		#endif
 
 		oo_DOUBLE_VECTOR (activity, nNodes)
diff --git a/FFNet/manual_FFNet.cpp b/FFNet/manual_FFNet.cpp
index 21ef3f4..ef46aeb 100644
--- a/FFNet/manual_FFNet.cpp
+++ b/FFNet/manual_FFNet.cpp
@@ -1,6 +1,6 @@
 /* manual_FFNet.c
  *
- * Copyright (C) 1994-2013, 2016 David Weenink
+ * Copyright (C) 1994-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,8 +27,8 @@
 
 static void drawFFNet_345 (Graphics g)
 {
-	autoFFNet me = FFNet_create (3, 4, 0, 5, false);
-	FFNet_drawTopology (me.get(), g);
+	autoFFNet me = FFNet_create (3, 4, 0, 5, 0);
+	FFNet_drawTopology (me.peek(), g);
 }
 
 void manual_FFNet_init (ManPages me);
@@ -95,77 +95,78 @@ NORMAL (U"The FFNet uses a %supervised learning algorithm: besides the input pat
 	"is a little bit higher than it is now and that, at the same time, the output values of all the other incorrect outputs are a "
 	"little bit lower than they are now. (The differences between the actual outputs and the idealized outputs "
 	"are propagated back from the top layer to lower layers to be used at these layers to modify connection weights. "
-	"This is why the term %%backpropagation network% is also often used to describe this type of neural network.)")
+	"This is why the term %%backpropagation network% is also often used to describe this type of neural network.")
 NORMAL (U"If you perform the procedure above once for every pattern and category pair in your data "
-	"set you have performed one @epoch of learning.")
+	"set you have have performed 1 @epoch of learning.")
 NORMAL (U"The hope is that eventually, probably after many epochs, "
-	"the neural net will come to remember these pattern-category pairs. "
-	"You even hope that the neural net, when the learning phase has terminated, will be able to %generalize "
+	"the neural net will remember these pattern-category pairs. "
+	"You even hope that the neural net when the learning phase has terminated, will be able to %generalize "
 	"and has learned to "
 	"@@FFNet & Pattern: To Categories...|classify@ correctly any unknown pattern presented to it. ")
-NORMAL (U"Because real-life data often contains noise as well as partly contradictory information, "
-	"these hopes can be fulfilled only partly. ")
+NORMAL (U"Because real-life data many times contains noise as well as partly contradictory information "
+	"these hopes can only be partly fulfilled. ")
 NORMAL (U"For @@FFNet & Pattern & Categories: Learn...|learning@ you "
-	"need to select three different objects together: a FFNet (the %classifier), "
+	"need to select 3 different objects together: a FFNet (the %classifier), "
 	"a Pattern (the %inputs) and a Categories (the %%correct outputs%).")
 ENTRY (U"How long will the learning phase take?")
-NORMAL (U"In general, this question is hard to answer. It depends on the size of the neural network, "
+NORMAL (U"In general this question is hard to answer. It depends on the size of the neural network, "
 	"the number of patterns to be learned, the number of epochs, the tolerance of the minimizer "
 	"and the speed of your computer, how much computing time the learning phase may take. ")
 NORMAL (U"If computing time becomes excessive in your interactive environment then consider using the "
-	"powerful @@Scripting|scripting@ facilities in Praat to process your learning job as a batch job. ")
+	"powerful @@Scripting|scripting@ facilities in P\\s{RAAT} to process your learning job as a batch job. ")
 MAN_END
 
 MAN_BEGIN (U"Feedforward neural networks 1.2. The classification phase", U"djmw", 20040428)
-INTRO (U"In the classification phase, the weights of the network are fixed. ")
+INTRO (U"In the classification phase the weights of the network are fixed. ")
 NORMAL (U"A pattern, presented at the inputs, will be transformed from layer to layer until it reaches the output layer. "
 	"Now classification can occur by selecting the category associated with the output unit that has "
 	"the largest output value.  "
 	"For classification we only need to select an FFNet and a Pattern together and "
-	"choose @@FFNet & Pattern: To Categories...|To Categories... at . ")
+	"choose  @@FFNet & Pattern: To Categories...|To Categories... at . ")
 NORMAL (U"In contrast to the @@Feedforward neural networks 1.1. The learning phase|learning phase@ classification is very fast.")
 MAN_END
 
 MAN_BEGIN (U"Feedforward neural networks 2. Quick start", U"djmw", 20040426)
 INTRO (U"You may create the iris example set with the @@Create iris example...@ command "
-	"that you will find under the ##Feedforward neural networks# option in the #New menu. "
+	"that you will find under the ##Neural nets# option in the #New menu. "
 	"Three new objects will appear in the @@List of Objects@: a @FFNet, a @Categories and "
 	"a @Pattern.")
-NORMAL (U"The #Pattern contains the @@iris data set@ in a matrix of 150 rows by 4 columns. "
-	"To guarantee that every cell in the Pattern is in the [0,1] interval, all measurement "
+NORMAL (U"The #Pattern contains the @@iris data set@ in a 150 rows by 4 columns matrix. "
+	"To  guarantee that every cell in the Pattern is in the [0,1] interval, all measurement "
 	"values were divided by 10. In the #Categories the three iris species %setosa, "
 	"%versicolor, and %virginica were categorized with the numbers #1, #2 and #3, respectively. "
 	"Because there are 4 data columns in the Pattern and 3 different iris species in the Categories, "
 	"the newly created #FFNet has 4 inputs and 3 outputs. "
-	"If you enter a positive number in one of the fields in the form, the FFNet will have "
+	"If you have entered a positive number in one of the fields in the form, the FFNet will have "
 	"this number of units in a %%hidden layer%. The name of the newly created FFNet "
-	"will reflect its topology. If you opt for the standard setting, which is 0 hidden units, the FFNet will be named 4-3.")
+	"will reflect its topology. If you did opt for the default, 0 hidden units, the FFNet will be named 4-3.")
 ENTRY (U"Learning the iris data")
 NORMAL (U"The first thing you probably might want to do is to let the #FFNet learn the association in "
-	"each pattern-category pair. To do this select all three objects together and choose "
+	"each pattern-category pair.  To do this select all three objects together and choose "
 	"@@FFNet & Pattern & Categories: Learn...|Learn... at . "
 	"A form will appear, asking you to supply some settings for "
-	"the learning algorithm. Learning starts after you have clicked the OK button. "
-	"As the example network has only a small number of weights that need to be adjusted, "
-	"and the learning data set is very small, this will only take a very short time.")
-ENTRY (U"Classification")
+	"the learning algorithm. Learning starts after you have clicked the OK-button. "
+	"Since the example network does not have too many weights that need to be adjusted and "
+	"the learning data set is very small and computers nowadays are very fast, this will only take a "
+	"very short time.")
+ENTRY (U"Classify")
 NORMAL (U"Now, if you are curious how well the FFNet has learned the iris data, you may select the "
 	"#FFNet and the #Pattern together and choose @@FFNet & Pattern: To Categories...|To Categories... at . "
-	"A new #Categories appears in the ##List of Objects# with the name %%4-3_iris% (if %%4-3% was the name of the FFNet and %iris% the name of the Pattern). "
+	"A new #Categories appears in the ##List of Objects# with the name %4-3_iris (if %%4-3% was the name of the FFNet and %iris% the name of the Pattern). "
 	"We have two different Categories in the list of objects, the topmost one has the original categories, the other "
 	"the categories as were assigned by the FFNet classifier. The obvious thing to do now is to compare the "
 	"original categories with the assigned categories by making a @@Confusion|confusion table at . "
 	"Select the two #Categories and choose @@Categories: To Confusion|To Confusion@ and a newly "
 	"created @Confusion appears. Pressing the @Info button will show you an info window with, "
 	"among others, the fraction correct. ")
-NORMAL (U"You may also want to "
+NORMAL (U"You might also want to "
 	"@@Feedforward neural networks 3. FFNet versus discriminant classifier|compare the FFNet classifier with a discriminant classifier at .")
 ENTRY (U"Create other neural net topologies")
 NORMAL (U"With a #Pattern and a #Categories selected together, you can for example create a new #FFNet of a different topology.")
 MAN_END
 
 MAN_BEGIN (U"Feedforward neural networks 3. FFNet versus discriminant classifier", U"djmw", 20040426)
-NORMAL (U"You may want to compare the FFNet classifier with a discriminant classifier. "
+NORMAL (U"You might want to compare the FFNet classifier with a discriminant classifier. "
 	"Unlike the FFNet, a @@Discriminant|discriminant@ classifier does not need any iterative procedure in the "
 	"learning phase and can be used immediately after creation for classification. "
 	"The following three simple steps will give you the confusion matrix based on discriminant analysis:")
@@ -271,6 +272,7 @@ NORMAL (U"For a network with only one layer, the inputs are connected directly t
 	"In a two-layer network the inputs are connected to a hidden layer.")
 MAN_END
 
+
 MAN_BEGIN (U"FFNet: Get number of hidden units...", U"djmw", 20040420)
 INTRO (U"Queries the selected @FFNet for the number of units in a hidden layer.")
 ENTRY (U"Settings")
diff --git a/FFNet/praat_FFNet_init.cpp b/FFNet/praat_FFNet_init.cpp
index bc0a519..731b5d4 100644
--- a/FFNet/praat_FFNet_init.cpp
+++ b/FFNet/praat_FFNet_init.cpp
@@ -1,6 +1,6 @@
 /* praat_FFNet_init.cpp
  *
- * Copyright (C) 1994-2011, 2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,22 +57,22 @@ static char32 const *EXTRACT_BUTTON = U"Extract -";
 
 /**************** New FFNet ***************************/
 
-static void FFNet_create_addCommonFields_inputOutput (UiForm dia) {
+static void FFNet_create_addCommonFields_inputOutput (void *dia) {
 	NATURAL (U"Number of inputs", U"4")
 	NATURAL (U"Number of outputs", U"3")
 }
 
-static void FFNet_create_checkCommonFields_inputOutput (UiForm dia, long *numberOfInputs, long *numberOfOutputs) {
+static void FFNet_create_checkCommonFields_inputOutput (void *dia, long *numberOfInputs, long *numberOfOutputs) {
 	*numberOfInputs = GET_INTEGER (U"Number of inputs");
 	*numberOfOutputs = GET_INTEGER (U"Number of outputs");
 }
 
-static void FFNet_create_addCommonFields_hidden (UiForm dia) {
+static void FFNet_create_addCommonFields_hidden (void *dia) {
 	INTEGER (U"Number of units in hidden layer 1", U"0")
 	INTEGER (U"Number of units in hidden layer 2", U"0")
 }
 
-static void FFNet_create_checkCommonFields_hidden (UiForm dia, 	long *numberOfHidden1, long *numberOfHidden2) {
+static void FFNet_create_checkCommonFields_hidden (void *dia, 	long *numberOfHidden1, long *numberOfHidden2) {
 	*numberOfHidden1 = GET_INTEGER (U"Number of units in hidden layer 1");
 	*numberOfHidden2 = GET_INTEGER (U"Number of units in hidden layer 2");
 	if (*numberOfHidden1 < 0 || *numberOfHidden2 < 0) {
@@ -80,12 +80,12 @@ static void FFNet_create_checkCommonFields_hidden (UiForm dia, 	long *numberOfHi
 	}
 }
 
-static void FFNet_create_addCommonFields (UiForm dia) {
+static void FFNet_create_addCommonFields (void *dia) {
 	FFNet_create_addCommonFields_inputOutput (dia);
 	FFNet_create_addCommonFields_hidden (dia);
 }
 
-static void FFNet_create_checkCommonFields (UiForm dia, long *numberOfInputs, long *numberOfOutputs,
+static void FFNet_create_checkCommonFields (void *dia, long *numberOfInputs, long *numberOfOutputs,
         long *numberOfHidden1, long *numberOfHidden2) {
 	FFNet_create_checkCommonFields_inputOutput (dia, numberOfInputs, numberOfOutputs);
 	FFNet_create_checkCommonFields_hidden (dia, numberOfHidden1, numberOfHidden2);
@@ -98,8 +98,8 @@ FORM (FFNet_create, U"Create FFNet", U"Create FFNet...")
 DO
 	long numberOfInputs, numberOfOutputs, numberOfHidden1, numberOfHidden2;
 	FFNet_create_checkCommonFields (dia, &numberOfInputs, &numberOfOutputs, &numberOfHidden1, &numberOfHidden2);
-	autoFFNet thee = FFNet_create (numberOfInputs, numberOfHidden1, numberOfHidden2, numberOfOutputs, false);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	autoFFNet thee = FFNet_create (numberOfInputs, numberOfHidden1, numberOfHidden2, numberOfOutputs, 0);
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END
 
 FORM (FFNet_create_linearOutputs, U"Create FFNet", U"Create FFNet (linear outputs)...")
@@ -109,8 +109,8 @@ FORM (FFNet_create_linearOutputs, U"Create FFNet", U"Create FFNet (linear output
 DO
 	long numberOfInputs, numberOfOutputs, numberOfHidden1, numberOfHidden2;
 	FFNet_create_checkCommonFields (dia, &numberOfInputs, &numberOfOutputs, &numberOfHidden1, &numberOfHidden2);
-	autoFFNet thee = FFNet_create (numberOfInputs, numberOfHidden1, numberOfHidden2, numberOfOutputs, true);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	autoFFNet thee = FFNet_create (numberOfInputs, numberOfHidden1, numberOfHidden2, numberOfOutputs, 1);
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END
 
 FORM (FFNet_createIrisExample, U"Create iris example", U"Create iris example...")
@@ -120,8 +120,7 @@ FORM (FFNet_createIrisExample, U"Create iris example", U"Create iris example..."
 DO
 	long numberOfHidden1, numberOfHidden2;
 	FFNet_create_checkCommonFields_hidden (dia, &numberOfHidden1, &numberOfHidden2);
-	autoCollection thee = FFNet_createIrisExample (numberOfHidden1, numberOfHidden2);
-	praat_new (thee.move());
+	praat_new (FFNet_createIrisExample (numberOfHidden1, numberOfHidden2), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
 DIRECT (FFNet_getNumberOfInputs)
@@ -153,31 +152,33 @@ DO
 	}
 END
 
-FORM (FFNet_getCategoryOfOutputUnit, U"FFNet: Get category of output unit", nullptr)
+FORM (FFNet_getCategoryOfOutputUnit, U"FFNet: Get category of output unit", U"")
 	NATURAL (U"Output unit", U"1")
 	OK
-DO
+	DO
 	LOOP {
 		iam (FFNet);
+		Categories c = (Categories) my outputCategories;
 		long unit = GET_INTEGER (U"Output unit");
-		if (unit > my outputCategories->size) {
-			Melder_throw (U"Output unit cannot be larger than ", my outputCategories->size, U".");
+		if (unit > c -> size) {
+			Melder_throw (U"Output unit cannot be larger than ", c -> size, U".");
 		}
-		SimpleString ss = my outputCategories->at [unit];
+		SimpleString ss = (SimpleString) c -> item[unit];
 		Melder_information (ss -> string);
 	}
 END
 
-FORM (FFNet_getOutputUnitOfCategory, U"FFNet: Get output unit of category", nullptr)
+FORM (FFNet_getOutputUnitOfCategory, U"FFNet: Get output unit of category", U"")
 	SENTENCE (U"Category", U"u")
 	OK
 DO
 	LOOP {
 		iam (FFNet);
+		Categories c = my outputCategories;
 		char32 *category = GET_STRING (U"Category");
 		long index = 0;
-		for (long i = 1; i <= my outputCategories->size; i ++) {
-			SimpleString s = my outputCategories->at [i];
+		for (long i = 1; i <= c -> size; i++) {
+			SimpleString s = (SimpleString) c -> item[i];
 			if (Melder_equ (s -> string, category)) {
 				index = i;
 				break;
@@ -187,7 +188,7 @@ DO
 	}
 END
 
-FORM (FFNet_getBias, U"FFNet: Get bias", nullptr)
+FORM (FFNet_getBias, U"FFNet: Get bias", 0)
 	NATURAL (U"Layer", U"1")
 	NATURAL (U"Unit", U"1")
 	OK
@@ -201,7 +202,7 @@ DO
 	}
 END
 
-FORM (FFNet_setBias, U"FFNet: Set bias", nullptr)
+FORM (FFNet_setBias, U"FFNet: Set bias", 0)
 	NATURAL (U"Layer", U"1")
 	NATURAL (U"Unit", U"1")
 	REAL (U"Value", U"0.0")
@@ -213,7 +214,7 @@ DO
 	}
 END
 
-FORM (FFNet_getWeight, U"FFNet: Get weight", nullptr)
+FORM (FFNet_getWeight, U"FFNet: Get weight", 0)
 	NATURAL (U"Layer", U"1")
 	NATURAL (U"Unit", U"1")
 	NATURAL (U"Unit from", U"1")
@@ -231,7 +232,7 @@ DO
 	}
 END
 
-FORM (FFNet_setWeight, U"FFNet: Set weight", nullptr)
+FORM (FFNet_setWeight, U"FFNet: Set weight", 0)
 	NATURAL (U"Layer", U"1")
 	NATURAL (U"Unit", U"1")
 	NATURAL (U"Unit (from)", U"1")
@@ -272,7 +273,7 @@ END
 
 /**************** New Pattern ***************************/
 
-FORM (Pattern_create, U"Create Pattern", nullptr)
+FORM (Pattern_create, U"Create Pattern", 0)
 	WORD (U"Name", U"1x1")
 	NATURAL (U"Dimension of a pattern", U"1")
 	NATURAL (U"Number of patterns", U"1")
@@ -284,12 +285,11 @@ END
 
 /**************** New Categories ***************************/
 
-FORM (Categories_create, U"Create Categories", nullptr)
+FORM (Categories_create, U"Create Categories", U"")
 	WORD (U"Name", U"empty")
 	OK
 DO
-	autoCategories thee = Categories_create ();
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (Categories_create (), GET_STRING (U"Name"));
 END
 
 DIRECT (FFNet_help) Melder_help (U"Feedforward neural networks"); END
@@ -319,7 +319,7 @@ FORM (FFNet_selectBiasesInLayer, U"FFNet: Select biases", U"FFNet: Select biases
 	LABEL (U"", U"during a following learning phase.")
 	NATURAL (U"Layer number", U"1")
 	OK
-DO
+	DO
 	LOOP {
 		iam (FFNet);
 		FFNet_selectBiasesInLayer (me, GET_INTEGER (U"Layer number"));
@@ -343,14 +343,14 @@ DIRECT (FFNet_drawTopology)
 	}
 END
 
-FORM (FFNet_drawWeightsToLayer, U"FFNet: Draw weights to layer", nullptr)
+FORM (FFNet_drawWeightsToLayer, U"FFNet: Draw weights to layer", 0)
 	LABEL (U"", U"Warning: Disapproved. Use \"Draw weights..\" instead.")
 	NATURAL (U"Layer number", U"1")
 	RADIO (U"Scale", 1)
-		RADIOBUTTON (U"by maximum of all weights to layer")
-		RADIOBUTTON (U"by maximum weight from 'from-unit'")
-		RADIOBUTTON (U"by maximum weight to 'to-unit'")
-	BOOLEAN (U"Garnish", true)
+	RADIOBUTTON (U"by maximum of all weights to layer")
+	RADIOBUTTON (U"by maximum weight from 'from-unit'")
+	RADIOBUTTON (U"by maximum weight to 'to-unit'")
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -363,7 +363,7 @@ END
 
 FORM (FFNet_drawWeights, U"FFNet: Draw weights", U"FFNet: Draw weights...")
 	NATURAL (U"Layer number", U"1")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -378,7 +378,7 @@ FORM (FFNet_drawCostHistory, U"FFNet: Draw cost history", U"FFNet: Draw cost his
 	INTEGER (U"right Iteration_range", U"0")
 	REAL (U"left Cost_range", U"0.0")
 	REAL (U"right Cost_range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -393,23 +393,21 @@ END
 FORM (FFNet_extractWeights, U"FFNet: Extract weights", U"FFNet: Extract weights...")
 	NATURAL (U"Layer number", U"1")
 	OK
-DO
+	DO
 	LOOP {
 		iam (FFNet);
-		autoTableOfReal thee = FFNet_extractWeights (me, GET_INTEGER (U"Layer number"));
-		praat_new (thee.move());
+		praat_new (FFNet_extractWeights (me, GET_INTEGER (U"Layer number")), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 	}
 END
 
-FORM (FFNet_weightsToMatrix, U"FFNet: Weights to Matrix ", nullptr)
+FORM (FFNet_weightsToMatrix, U"FFNet: Weights to Matrix ", 0)
 	LABEL (U"", U"Warning: Use \"Extract weights..\" instead.")
 	NATURAL (U"Layer number", U"1")
 	OK
 DO
 	LOOP {
 		iam (FFNet);
-		autoMatrix thee = FFNet_weightsToMatrix (me, GET_INTEGER (U"Layer number"), false);
-		praat_new (thee.move(), my name);
+		praat_new (FFNet_weightsToMatrix (me, GET_INTEGER (U"Layer number"), 0), my name);
 	}
 END
 
@@ -423,8 +421,7 @@ FORM (FFNet_Activation_to_Categories, U"FFNet & Activation: To Categories", 0)
 DO
 	FFNet me = FIRST (FFNet);
 	Activation thee = FIRST (Activation);
-	autoCategories him = FFNet_Activation_to_Categories (me, thee, GET_INTEGER (U"Kind of labeling"));
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (FFNet_Activation_to_Categories (me, thee, GET_INTEGER (U"Kind of labeling")), my name, U"_", thy name);
 END
 
 /******************* FFNet && Eigen ******************************************/
@@ -475,8 +472,7 @@ END
 DIRECT (FFNet_Categories_to_Activation)
 	FFNet me = FIRST (FFNet);
 	Categories thee = FIRST (Categories);
-	autoActivation him = FFNet_Categories_to_Activation (me, thee);
-	praat_new (him.move(), my name);
+	praat_new (FFNet_Categories_to_Activation (me, thee), my name);
 END
 
 /************************* FFNet && Matrix **********************************/
@@ -487,8 +483,7 @@ FORM (FFNet_weightsFromMatrix, U"Replace weights by values from Matrix", 0)
 DO
 	FFNet me = FIRST (FFNet);
 	Matrix thee = FIRST (Matrix);
-	autoFFNet him = FFNet_weightsFromMatrix (me, thee, GET_INTEGER (U"Layer"));
-	praat_new (him.move(), my name);
+	praat_new (FFNet_weightsFromMatrix (me, thee, GET_INTEGER (U"Layer")), my name);
 END
 
 /************************* FFNet && Pattern **********************************/
@@ -509,8 +504,7 @@ FORM (FFNet_Pattern_to_Activation, U"To activations in layer", 0)
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
-	autoActivation him = FFNet_Pattern_to_Activation (me, thee, GET_INTEGER (U"Layer"));
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (FFNet_Pattern_to_Activation (me, thee, GET_INTEGER (U"Layer")), my name, U"_", thy name);
 END
 
 DIRECT (hint_FFNet_and_Pattern_classify)
@@ -525,14 +519,13 @@ END
 
 FORM (FFNet_Pattern_to_Categories, U"FFNet & Pattern: To Categories", U"FFNet & Pattern: To Categories...")
 	RADIO (U"Determine output category as", 1)
-		RADIOBUTTON (U"Winner-takes-all")
-		RADIOBUTTON (U"Stochastic")
+	RADIOBUTTON (U"Winner-takes-all")
+	RADIOBUTTON (U"Stochastic")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
-	autoCategories him = FFNet_Pattern_to_Categories (me, thee, GET_INTEGER (U"Determine output category as"));
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (FFNet_Pattern_to_Categories (me, thee, GET_INTEGER (U"Determine output category as")), my name, U"_", thy name);
 END
 
 /*********** FFNet Pattern Activation **********************************/
@@ -568,38 +561,42 @@ FORM (FFNet_Pattern_Activation_learnSD, U"FFNet & Pattern & Activation: Learn sl
 	POSITIVE (U"Learning rate", U"0.1")
 	REAL (U"Momentum", U"0.9")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
 	Activation him = FIRST (Activation);
+	struct structSteepestDescentMinimizer_parameters p;
+	p.eta = GET_REAL (U"Learning rate");
+	p.momentum = GET_REAL (U"Momentum");
 	return FFNet_Pattern_Activation_learnSD (me, thee, him, GET_INTEGER (U"Maximum number of epochs"),
-			GET_REAL (U"Tolerance of minimizer"), GET_REAL (U"Learning rate"), GET_REAL (U"Momentum"), GET_INTEGER (U"Cost function"));
+			GET_REAL (U"Tolerance of minimizer"), & p, GET_INTEGER (U"Cost function"));
 END
 
 FORM (FFNet_Pattern_Activation_learnSM, U"FFNet & Pattern & Activation: Learn", 0)
 	NATURAL (U"Maximum number of epochs", U"100")
 	POSITIVE (U"Tolerance of minimizer", U"1e-7")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
 	Activation him = FIRST (Activation);
 	return FFNet_Pattern_Activation_learnSM (me, thee, him, GET_INTEGER (U"Maximum number of epochs"),
-		GET_REAL (U"Tolerance of minimizer"), GET_INTEGER (U"Cost function"));
+		GET_REAL (U"Tolerance of minimizer"), NULL,
+		GET_INTEGER (U"Cost function"));
 END
 
 /*********** FFNet Pattern Categories **********************************/
 
 FORM (FFNet_Pattern_Categories_getCosts_total, U"FFNet & Pattern & Categories: Get total costs", U"FFNet & Pattern & Categories: Get total costs...")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
@@ -611,8 +608,8 @@ END
 
 FORM (FFNet_Pattern_Categories_getCosts_average, U"FFNet & Pattern & Categories: Get average costs", U"FFNet & Pattern & Categories: Get average costs...")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
@@ -638,30 +635,30 @@ DO
 	if (nHidden2 < 1) {
 		nHidden2 = 0;
 	}
-	autoCategories uniq = Categories_selectUniqueItems (thee);
-	long numberOfOutputs = uniq->size;
+	autoCategories uniq = Categories_selectUniqueItems (thee, 1);
+	long numberOfOutputs = uniq -> size;
 	if (numberOfOutputs < 1) Melder_throw (U"There are not enough categories in the Categories.\n"
 		U"Please try again with more categories in the Categories.");
 
-	autoFFNet ffnet = FFNet_create (my nx, nHidden1, nHidden2, numberOfOutputs, false);
-	FFNet_setOutputCategories (ffnet.get(), uniq.get());
-	autostring32 ffnetName = FFNet_createNameFromTopology (ffnet.get());
-	praat_new (ffnet.move(), ffnetName.peek());
+	autoFFNet ffnet = FFNet_create (my nx, nHidden1, nHidden2, numberOfOutputs, 0);
+	FFNet_setOutputCategories (ffnet.peek(), uniq.peek());
+	autostring32 ffnetName = FFNet_createNameFromTopology (ffnet.peek());
+	praat_new (ffnet.transfer(), ffnetName.peek());
 END
 
 FORM (FFNet_Pattern_Categories_learnSM, U"FFNet & Pattern & Categories: Learn", U"FFNet & Pattern & Categories: Learn...")
 	NATURAL (U"Maximum number of epochs", U"100")
 	POSITIVE (U"Tolerance of minimizer", U"1e-7")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
 	Categories him = FIRST (Categories);
 	FFNet_Pattern_Categories_learnSM (me, thee, him, GET_INTEGER (U"Maximum number of epochs"),
-		GET_REAL (U"Tolerance of minimizer"), GET_INTEGER (U"Cost function"));
+		GET_REAL (U"Tolerance of minimizer"), NULL, GET_INTEGER (U"Cost function"));
 END
 
 FORM (FFNet_Pattern_Categories_learnSD, U"FFNet & Pattern & Categories: Learn slow", U"FFNet & Pattern & Categories: Learn slow...")
@@ -671,22 +668,25 @@ FORM (FFNet_Pattern_Categories_learnSD, U"FFNet & Pattern & Categories: Learn sl
 	POSITIVE (U"Learning rate", U"0.1")
 	REAL (U"Momentum", U"0.9")
 	RADIO (U"Cost function", 1)
-		RADIOBUTTON (U"Minimum-squared-error")
-		RADIOBUTTON (U"Minimum-cross-entropy")
+	RADIOBUTTON (U"Minimum-squared-error")
+	RADIOBUTTON (U"Minimum-cross-entropy")
 	OK
 DO
 	FFNet me = FIRST (FFNet);
 	Pattern thee = FIRST (Pattern);
 	Categories him = FIRST (Categories);
+	struct structSteepestDescentMinimizer_parameters p;
+	p.eta = GET_REAL (U"Learning rate");
+	p.momentum = GET_REAL (U"Momentum");
 	FFNet_Pattern_Categories_learnSD (me, thee, him, GET_INTEGER (U"Maximum number of epochs"),
-		GET_REAL (U"Tolerance of minimizer"), GET_REAL (U"Learning rate"), GET_REAL (U"Momentum"), GET_INTEGER (U"Cost function"));
+		GET_REAL (U"Tolerance of minimizer"), &p, GET_INTEGER (U"Cost function"));
 END
 
 void praat_uvafon_FFNet_init ();
 void praat_uvafon_FFNet_init () {
 	Thing_recognizeClassesByName (classFFNet, NULL);
 
-	praat_addMenuCommand (U"Objects", U"New", U"Feedforward neural networks", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Neural nets", 0, 0, 0);
 	praat_addMenuCommand (U"Objects", U"New", U"Feedforward neural networks", 0, 1, DO_FFNet_help);
 	praat_addMenuCommand (U"Objects", U"New", U"-- FFNet --", 0, 1, 0);
 	praat_addMenuCommand (U"Objects", U"New", U"Create iris example...", 0, 1, DO_FFNet_createIrisExample);
diff --git a/LPC/Cepstrogram.cpp b/LPC/Cepstrogram.cpp
index 6e4bd07..2d1a936 100644
--- a/LPC/Cepstrogram.cpp
+++ b/LPC/Cepstrogram.cpp
@@ -1,6 +1,6 @@
 /* Cepstrogram.cpp
  *
- * Copyright (C) 2013, 2016 David Weenink
+ * Copyright (C) 2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -37,25 +37,25 @@
 Thing_implement (Cepstrogram, Matrix, 2);
 Thing_implement (PowerCepstrogram, Cepstrogram, 2); // derives from Matrix -> also version 2
 
-autoCepstrogram Cepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+Cepstrogram Cepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
 	double qmin, double qmax, long nq, double dq, double q1) {
 	try {
 		autoCepstrogram me = Thing_new (Cepstrogram);
 
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, qmin, qmax, nq, dq, q1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, qmin, qmax, nq, dq, q1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cepstrogram not created.");
 	}
 }
 
-autoPowerCepstrogram PowerCepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+PowerCepstrogram PowerCepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
 	double qmin, double qmax, long nq, double dq, double q1) {
 	try {
 		autoPowerCepstrogram me = Thing_new (PowerCepstrogram);
 
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, qmin, qmax, nq, dq, q1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, qmin, qmax, nq, dq, q1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PowerCepstrogram not created.");
 	}
@@ -69,8 +69,8 @@ void PowerCepstrogram_paint (PowerCepstrogram me, Graphics g, double tmin, doubl
 		 ! Matrix_getWindowSamplesY (me, qmin - 0.49999 * my dy, qmax + 0.49999 * my dy, & ifmin, & ifmax)) {
 		return;
 	}
-	autoMatrix thee = Data_copy (me);
-	double min = 1e308, max = -min;
+	autoMatrix thee = (Matrix) Data_copy (me);
+	double min = 1e38, max = -min;
 	for (long i = 1; i <= my ny; i++) {
 		for (long j = 1; j <= my nx; j++) {
 			double val = TO10LOG (my z[i][j]);
@@ -101,20 +101,20 @@ void PowerCepstrogram_paint (PowerCepstrogram me, Graphics g, double tmin, doubl
 	Graphics_setWindow (g, tmin, tmax, qmin, qmax);
 	Graphics_image (g, thy z,
 		itmin, itmax,
-		Matrix_columnToX (thee.get(), itmin - 0.5),
-		Matrix_columnToX (thee.get(), itmax + 0.5),
+		Matrix_columnToX (thee.peek(), itmin - 0.5),
+		Matrix_columnToX (thee.peek(), itmax + 0.5),
 		ifmin, ifmax,
-		Matrix_rowToY (thee.get(), ifmin - 0.5),
-		Matrix_rowToY (thee.get(), ifmax + 0.5),
+		Matrix_rowToY (thee.peek(), ifmin - 0.5),
+		Matrix_rowToY (thee.peek(), ifmax + 0.5),
 		dBminimum, dBmaximum);
 
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Quefrency (s)");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Quefrency (s)");
 	}
 }
 
@@ -125,7 +125,7 @@ void PowerCepstrogram_subtractTilt_inline (PowerCepstrogram me, double qstartFit
 			for (long j = 1; j <= my ny; j++) {
 				thy z[1][j] = my z[j][i];
 			}
-			PowerCepstrum_subtractTilt_inline (thee.get(), qstartFit, qendFit, lineType, fitMethod);
+			PowerCepstrum_subtractTilt_inline (thee.peek(), qstartFit, qendFit, lineType, fitMethod);
 			for (long j = 1; j <= my ny; j++) {
 				my z[j][i] = thy z[1][j];
 			}
@@ -135,18 +135,18 @@ void PowerCepstrogram_subtractTilt_inline (PowerCepstrogram me, double qstartFit
 	}
 }
 
-autoPowerCepstrogram PowerCepstrogram_subtractTilt (PowerCepstrogram me, double qstartFit, double qendFit, int lineType, int fitMethod) {
+PowerCepstrogram PowerCepstrogram_subtractTilt (PowerCepstrogram me, double qstartFit, double qendFit, int lineType, int fitMethod) {
 	try {
 		autoPowerCepstrogram thee = Data_copy (me);
-		PowerCepstrogram_subtractTilt_inline (thee.get(), qstartFit, qendFit, lineType, fitMethod);
-		return thee;
+		PowerCepstrogram_subtractTilt_inline (thee.peek(), qstartFit, qendFit, lineType, fitMethod);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no tilt subtracted.");
 	}
 	
 }
 
-autoTable PowerCepstrogram_to_Table_hillenbrand (PowerCepstrogram me, double pitchFloor, double pitchCeiling) {
+Table PowerCepstrogram_to_Table_hillenbrand (PowerCepstrogram me, double pitchFloor, double pitchCeiling) {
 	try {
 		autoTable thee = Table_createWithColumnNames (my nx, U"time quefrency cpp f0");
 		autoPowerCepstrum him = PowerCepstrum_create (my ymax, my ny);
@@ -154,20 +154,20 @@ autoTable PowerCepstrogram_to_Table_hillenbrand (PowerCepstrogram me, double pit
 			for (long j = 1; j <= my ny; j++) {
 				his z[1][j] = my z[j][i];
 			}
-			double qpeak, cpp = PowerCepstrum_getPeakProminence_hillenbrand (him.get(), pitchFloor, pitchCeiling, &qpeak);
+			double qpeak, cpp = PowerCepstrum_getPeakProminence_hillenbrand (him.peek(), pitchFloor, pitchCeiling, &qpeak);
 			double time = Sampled_indexToX (me, i);
-			Table_setNumericValue (thee.get(), i, 1, time);
-			Table_setNumericValue (thee.get(), i, 2, qpeak);
-			Table_setNumericValue (thee.get(), i, 3, cpp); // Cepstrogram_getCPPS depends on this index 3!!
-			Table_setNumericValue (thee.get(), i, 4, 1.0 / qpeak);
+			Table_setNumericValue (thee.peek(), i, 1, time);
+			Table_setNumericValue (thee.peek(), i, 2, qpeak);
+			Table_setNumericValue (thee.peek(), i, 3, cpp); // Cepstrogram_getCPPS depends on this index 3!!
+			Table_setNumericValue (thee.peek(), i, 4, 1.0 / qpeak);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Table with cepstral peak prominence values created.");
 	}
 }
 
-autoTable PowerCepstrogram_to_Table_cpp (PowerCepstrogram me, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod) {
+Table PowerCepstrogram_to_Table_cpp (PowerCepstrogram me, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod) {
 	try {
 		autoTable thee = Table_createWithColumnNames (my nx, U"time quefrency cpp f0 rnr");
 		autoPowerCepstrum him = PowerCepstrum_create (my ymax, my ny);
@@ -175,25 +175,25 @@ autoTable PowerCepstrogram_to_Table_cpp (PowerCepstrogram me, double pitchFloor,
 			for (long j = 1; j <= my ny; j++) {
 				his z[1][j] = my z[j][i];
 			}
-			double qpeak, cpp = PowerCepstrum_getPeakProminence (him.get(), pitchFloor, pitchCeiling, interpolation,
+			double qpeak, cpp = PowerCepstrum_getPeakProminence (him.peek(), pitchFloor, pitchCeiling, interpolation,
 				qstartFit, qendFit, lineType, fitMethod, &qpeak);
-			double rnr = PowerCepstrum_getRNR (him.get(), pitchFloor, pitchCeiling, deltaF0);
+			double rnr = PowerCepstrum_getRNR (him.peek(), pitchFloor, pitchCeiling, deltaF0);
 			double time = Sampled_indexToX (me, i);
-			Table_setNumericValue (thee.get(), i, 1, time);
-			Table_setNumericValue (thee.get(), i, 2, qpeak);
-			Table_setNumericValue (thee.get(), i, 3, cpp); // Cepstrogram_getCPPS depends on this index!!
-			Table_setNumericValue (thee.get(), i, 4, 1.0 / qpeak);
-			Table_setNumericValue (thee.get(), i, 5, rnr);
+			Table_setNumericValue (thee.peek(), i, 1, time);
+			Table_setNumericValue (thee.peek(), i, 2, qpeak);
+			Table_setNumericValue (thee.peek(), i, 3, cpp); // Cepstrogram_getCPPS depends on this index!!
+			Table_setNumericValue (thee.peek(), i, 4, 1.0 / qpeak);
+			Table_setNumericValue (thee.peek(), i, 5, rnr);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Table with cepstral peak prominence values created.");
 	}
 }
 
-autoPowerCepstrogram PowerCepstrogram_smooth (PowerCepstrogram me, double timeAveragingWindow, double quefrencyAveragingWindow) {
+PowerCepstrogram PowerCepstrogram_smooth (PowerCepstrogram me, double timeAveragingWindow, double quefrencyAveragingWindow) {
 	try {
-		autoPowerCepstrogram thee = Data_copy (me);
+		autoPowerCepstrogram thee = (PowerCepstrogram) Data_copy (me);
 		// 1. average across time
 		long numberOfFrames = (long) floor (timeAveragingWindow / my dx);
 		if (numberOfFrames > 1) {
@@ -228,23 +228,23 @@ autoPowerCepstrogram PowerCepstrogram_smooth (PowerCepstrogram me, double timeAv
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not smoothed.");
 	}
 }
 
-autoMatrix PowerCepstrogram_to_Matrix (PowerCepstrogram me) {
+Matrix PowerCepstrogram_to_Matrix (PowerCepstrogram me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not converted to Matrix.");
+		Melder_throw (me, U": no Matrix created.");
 	}
 }
 
-autoPowerCepstrum PowerCepstrogram_to_PowerCepstrum_slice (PowerCepstrogram me, double time) {
+PowerCepstrum PowerCepstrogram_to_PowerCepstrum_slice (PowerCepstrogram me, double time) {
 	try {
 		long iframe = Sampled_xToNearestIndex (me, time);
 		iframe = iframe < 1 ? 1 : iframe > my nx ? my nx : iframe;
@@ -252,27 +252,28 @@ autoPowerCepstrum PowerCepstrogram_to_PowerCepstrum_slice (PowerCepstrogram me,
 		for (long i = 1; i <= my ny; i++) {
 			thy z[1][i] = my z[i][iframe];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Cepstrum not extracted.");
 	}
 }
 
-autoPowerCepstrogram Matrix_to_PowerCepstrogram (Matrix me) {
+PowerCepstrogram Matrix_to_PowerCepstrogram (Matrix me);
+PowerCepstrogram Matrix_to_PowerCepstrogram (Matrix me) {
 	try {
 		autoPowerCepstrogram thee = Thing_new (PowerCepstrogram);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not converted to PowerCepstrogram.");
+		Melder_throw (me, U": no PowerCepstrogram created.");
 	}
 }
 
-autoPowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double pitchFloor, double dt, double maximumFrequency, double preEmphasisFrequency) {
+PowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double pitchFloor, double dt, double maximumFrequency, double preEmphasisFrequency) {
 	try {
 		// minimum analysis window has 3 periods of lowest pitch
-		double analysisWidth = 3.0  / pitchFloor;
-		double windowDuration = 2.0 * analysisWidth; /* gaussian window */
+		double analysisWidth = 3  / pitchFloor;
+		double windowDuration = 2 * analysisWidth; /* gaussian window */
 		long nFrames;
 
 		// Convenience: analyse the whole sound into one Cepstrogram_frame
@@ -281,7 +282,7 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double pitchFloor, dou
 		}
 		double t1, samplingFrequency = 2 * maximumFrequency;
 		autoSound sound = Sound_resample (me, samplingFrequency, 50);
-		Sound_preEmphasis (sound.get(), preEmphasisFrequency);
+		Sound_preEmphasis (sound.peek(), preEmphasisFrequency);
 		Sampled_shortTermAnalysis (me, windowDuration, dt, & nFrames, & t1);
 		autoSound sframe = Sound_createSimple (1, windowDuration, samplingFrequency);
 		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
@@ -295,12 +296,12 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double pitchFloor, dou
 		autoMelderProgress progress (U"Cepstrogram analysis");
 
 		for (long iframe = 1; iframe <= nFrames; iframe++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
-			Sound_into_Sound (sound.get(), sframe.get(), t - windowDuration / 2);
-			Vector_subtractMean (sframe.get());
-			Sounds_multiply (sframe.get(), window.get());
-			autoSpectrum spec = Sound_to_Spectrum (sframe.get(), 1); // FFT yes
-			autoPowerCepstrum cepstrum = Spectrum_to_PowerCepstrum (spec.get());
+			double t = Sampled_indexToX (thee.peek(), iframe);
+			Sound_into_Sound (sound.peek(), sframe.peek(), t - windowDuration / 2);
+			Vector_subtractMean (sframe.peek());
+			Sounds_multiply (sframe.peek(), window.peek());
+			autoSpectrum spec = Sound_to_Spectrum (sframe.peek(), 1); // FFT yes
+			autoPowerCepstrum cepstrum = Spectrum_to_PowerCepstrum (spec.peek());
 			for (long i = 1; i <= nq; i++) {
 				thy z[i][iframe] = cepstrum -> z[1][i];
 			}
@@ -309,14 +310,14 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double pitchFloor, dou
 					iframe, U" out of ", nFrames, U".");
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PowerCepstrogram created.");
 	}
 }
 
-autoCepstrum Spectrum_to_Cepstrum_hillenbrand (Spectrum me);
-autoCepstrum Spectrum_to_Cepstrum_hillenbrand (Spectrum me) {
+Cepstrum Spectrum_to_Cepstrum_hillenbrand (Spectrum me);
+Cepstrum Spectrum_to_Cepstrum_hillenbrand (Spectrum me) {
 	try {
 		autoNUMfft_Table fftTable;
 		// originalNumberOfSamplesProbablyOdd irrelevant
@@ -337,7 +338,7 @@ autoCepstrum Spectrum_to_Cepstrum_hillenbrand (Spectrum me) {
 			double val = amp[i] / numberOfSamples;// scaling 1/n because ifft(fft(1))= n;
 			thy z[1][i] = val * val; // power cepstrum
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
@@ -363,20 +364,21 @@ static void complexfftoutput_to_power (double *fft, long nfft, double *dbs, bool
 	}
 }
 
-autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double minimumPitch, double dt) {
+
+PowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double minimumPitch, double dt) {
 	try {
 		// minimum analysis window has 3 periods of lowest pitch
 		double analysisWidth = 3  / minimumPitch;
 		if (analysisWidth > my dx * my nx) {
 			analysisWidth = my dx * my nx;
 		}
-		double samplingFrequency = 1.0 / my dx;
+		double t1, samplingFrequency = 1 / my dx;
 		autoSound thee;
 		if (samplingFrequency > 30000) {
-			samplingFrequency = samplingFrequency / 2.0;
-			thee = Sound_resample (me, samplingFrequency, 1);
+			samplingFrequency = samplingFrequency / 2;
+			thee.reset (Sound_resample (me, samplingFrequency, 1));
 		} else {
-			thee = Data_copy (me);
+			thee.reset (Data_copy (me));
 		}
 		// pre-emphasis with fixed coefficient 0.9
 		for (long i = thy nx; i > 1; i--) {
@@ -386,8 +388,7 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double min
 		if (nosInWindow < 8) {
 			Melder_throw (U"Analysis window too short.");
 		}
-		double t1;
-		Sampled_shortTermAnalysis (thee.get(), analysisWidth, dt, & nFrames, & t1);
+		Sampled_shortTermAnalysis (thee.peek(), analysisWidth, dt, & nFrames, & t1);
 		autoNUMvector<double> hamming (1, nosInWindow);
 		for (long i = 1; i <= nosInWindow; i++) {
 			hamming[i] = 0.54 -0.46 * cos(2 * NUMpi * (i - 1) / (nosInWindow - 1));
@@ -408,7 +409,7 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double min
 		for (long iframe = 1; iframe <= nFrames; iframe++) {
 			double tbegin = t1 + (iframe - 1) * dt - analysisWidth / 2;
 			tbegin = tbegin < thy xmin ? thy xmin : tbegin;
-			long istart = Sampled_xToLowIndex (thee.get(), tbegin);   // ppgb: afronding naar beneden?
+			long istart = Sampled_xToLowIndex (thee.peek(), tbegin);   // ppgb: afronding naar beneden?
 			istart = istart < 1 ? 1 : istart;
 			long iend = istart + nosInWindow - 1;
 			iend = iend > thy nx ? thy nx : iend;
@@ -433,7 +434,7 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double min
 			 * Here we diverge from Hillenbrand as he takes the fft of half of the spectral values.
 			 * H. forgets that the actual spectrum has nfft/2+1 values. Thefore, we take the inverse
 			 * transform because this keeps the number of samples a power of 2.
-			 * At the same time this results in twice as many numbers in the quefrency domain, i.e. we end up with nfft/2+1
+			 * At the same time this results in twice as much numbers in the quefrency domain, i.e. we end with nfft/2+1
 			 * numbers while H. has only nfft/4!
 			 */
 			fftbuf[1] = spectrum[1];
@@ -451,7 +452,7 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double min
 					 iframe, U" out of ", nFrames, U".");
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Cepstrogram created.");
 	}
@@ -459,13 +460,13 @@ autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double min
 
 double PowerCepstrogram_getCPPS (PowerCepstrogram me, bool subtractTiltBeforeSmoothing, double timeAveragingWindow, double quefrencyAveragingWindow, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod) {
 	try {
-		autoPowerCepstrogram flattened;
+		autoPowerCepstrogram him;
 		if (subtractTiltBeforeSmoothing) {
-			flattened = PowerCepstrogram_subtractTilt (me, qstartFit, qendFit, lineType, fitMethod);
+			him.reset(PowerCepstrogram_subtractTilt (me, qstartFit, qendFit, lineType, fitMethod));
 		}
-		autoPowerCepstrogram smooth = PowerCepstrogram_smooth (flattened ? flattened.get() : me, timeAveragingWindow, quefrencyAveragingWindow);
-		autoTable table = PowerCepstrogram_to_Table_cpp (smooth.get(), pitchFloor, pitchCeiling, deltaF0, interpolation, qstartFit, qendFit, lineType, fitMethod);
-		double cpps = Table_getMean (table.get(), 3);
+		autoPowerCepstrogram smooth = PowerCepstrogram_smooth (subtractTiltBeforeSmoothing ? him.peek() : me, timeAveragingWindow, quefrencyAveragingWindow);
+		autoTable table = PowerCepstrogram_to_Table_cpp (smooth.peek(), pitchFloor, pitchCeiling, deltaF0, interpolation, qstartFit, qendFit, lineType, fitMethod);
+		double cpps = Table_getMean (table.peek(), 3);
 		return cpps;
 	} catch (MelderError) {
 		Melder_throw (me, U": no CPPS value calculated.");
@@ -476,11 +477,11 @@ double PowerCepstrogram_getCPPS_hillenbrand (PowerCepstrogram me, bool subtractT
 	try {
 		autoPowerCepstrogram him;
 		if (subtractTiltBeforeSmoothing) {
-			him = PowerCepstrogram_subtractTilt (me, 0.001, 0, 1, 1);
+			him.reset(PowerCepstrogram_subtractTilt (me, 0.001, 0, 1, 1));
 		}
-		autoPowerCepstrogram smooth = PowerCepstrogram_smooth (subtractTiltBeforeSmoothing ? him.get() : me, timeAveragingWindow, quefrencyAveragingWindow);
-		autoTable table = PowerCepstrogram_to_Table_hillenbrand (smooth.get(), pitchFloor, pitchCeiling);
-		double cpps = Table_getMean (table.get(), 3);
+		autoPowerCepstrogram smooth = PowerCepstrogram_smooth (subtractTiltBeforeSmoothing ? him.peek() : me, timeAveragingWindow, quefrencyAveragingWindow);
+		autoTable table = PowerCepstrogram_to_Table_hillenbrand (smooth.peek(), pitchFloor, pitchCeiling);
+		double cpps = Table_getMean (table.peek(), 3);
 		return cpps;
 	} catch (MelderError) {
 		Melder_throw (me, U": no CPPS value calculated.");
diff --git a/LPC/Cepstrogram.h b/LPC/Cepstrogram.h
index 8644c65..e198212 100644
--- a/LPC/Cepstrogram.h
+++ b/LPC/Cepstrogram.h
@@ -2,7 +2,7 @@
 #define _Cepstrogram_h_
 /* Cepstrogram.h
  *
- * Copyright (C) 2012-2013, 2016 David Weenink
+ * Copyright (C) 2012-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,34 +49,30 @@ Thing_define (PowerCepstrogram, Cepstrogram) {
 
 */
 
-autoCepstrogram Cepstrogram_create (double tmin, double tmax, long nt, double dt, double t1, double qmin, double qmax, long nq, double dq, double q1);
-
-autoPowerCepstrogram PowerCepstrogram_create (double tmin, double tmax, long nt, double dt, double t1, double qmin, double qmax, long nq, double dq, double q1);
+Cepstrogram Cepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+	double qmin, double qmax, long nq, double dq, double q1);
+PowerCepstrogram PowerCepstrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+	double qmin, double qmax, long nq, double dq, double q1);
 
 void PowerCepstrogram_paint (PowerCepstrogram me, Graphics g, double tmin, double tmax, double qmin, double qmax, double dBmaximum, int autoscaling, double dynamicRangedB, double dynamicCompression, int garnish);
 
-autoPowerCepstrogram PowerCepstrogram_smooth (PowerCepstrogram me, double timeAveragingWindow, double quefrencyAveragingWindow);
-
-autoPowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double analysisWidth, double dt, double maximumFrequency, double preEmphasisFrequency);
-
-autoPowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double analysisWidth, double dt);
-
-autoTable PowerCepstrogram_to_Table_hillenbrand (PowerCepstrogram me, double pitchFloor, double pitchCeiling);
+PowerCepstrogram PowerCepstrogram_smooth (PowerCepstrogram me, double timeAveragingWindow, double quefrencyAveragingWindow);
 
-autoTable PowerCepstrogram_to_Table_cpp (PowerCepstrogram me, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int method);
+PowerCepstrogram Sound_to_PowerCepstrogram (Sound me, double analysisWidth, double dt, double maximumFrequency, double preEmphasisFrequency);
 
-autoPowerCepstrum PowerCepstrogram_to_PowerCepstrum_slice (PowerCepstrogram me, double time);
+PowerCepstrogram Sound_to_PowerCepstrogram_hillenbrand (Sound me, double analysisWidth, double dt);
 
-autoPowerCepstrogram PowerCepstrogram_subtractTilt (PowerCepstrogram me, double qstartFit, double qendFit, int lineType, int fitMethod);
+Table PowerCepstrogram_to_Table_hillenbrand (PowerCepstrogram me, double pitchFloor, double pitchCeiling);
+Table PowerCepstrogram_to_Table_cpp (PowerCepstrogram me, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int method);
+PowerCepstrum PowerCepstrogram_to_PowerCepstrum_slice (PowerCepstrogram me, double time);
 
+PowerCepstrogram PowerCepstrogram_subtractTilt (PowerCepstrogram me, double qstartFit, double qendFit, int lineType, int fitMethod);
 void PowerCepstrogram_subtractTilt_inline (PowerCepstrogram me, double qstartFit, double qendFit, int lineType, int fitMethod);
 
 double PowerCepstrogram_getCPPS_hillenbrand (PowerCepstrogram me, bool subtractTiltBeforeSmoothing, double timeAveragingWindow, double quefrencyAveragingWindow, double pitchFloor, double pitchCeiling);
+double PowerCepstrogram_getCPPS (PowerCepstrogram me, bool subtractTiltBeforeSmoothing, double timeAveragingWindow, double quefrencyAveragingWindow,
+	double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod);
 
-double PowerCepstrogram_getCPPS (PowerCepstrogram me, bool subtractTiltBeforeSmoothing, double timeAveragingWindow, double quefrencyAveragingWindow, double pitchFloor, double pitchCeiling, double deltaF0, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod);
-
-autoMatrix PowerCepstrogram_to_Matrix (PowerCepstrogram me);
-
-autoPowerCepstrogram Matrix_to_PowerCepstrogram (Matrix me);
-
+Matrix PowerCepstrogram_to_Matrix (PowerCepstrogram me);
+PowerCepstrogram Matrix_to_Cepstrogram (Matrix me);
 #endif /* _Cepstrogram_h_ */
diff --git a/LPC/Cepstrum.cpp b/LPC/Cepstrum.cpp
index aee59a5..c3c40ac 100644
--- a/LPC/Cepstrum.cpp
+++ b/LPC/Cepstrum.cpp
@@ -1,6 +1,6 @@
 /* Cepstrum.cpp
  *
- * Copyright (C) 1994-2016 David Weenink
+ * Copyright (C) 1994-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,6 +28,53 @@
 #include "NUM2.h"
 #include "Vector.h"
 
+static void NUMvector_gaussianBlur (double sigma, long filterLength, double *filter) {
+	if (filterLength <= 1) {
+		filter[1] = 1;
+		return;
+	}
+	double sum = 0, mid = (filterLength + 1) / 2;
+	for (long i = 1; i <= filterLength; i++) {
+		double val = (mid - i) / sigma;
+		filter[i] = exp (- 0.5 * val * val);
+		sum += filter[i];
+	}
+	for (long i = 1; i <= filterLength; i++) {
+		filter[i] /= sum;
+	}
+}
+
+// filter must be normalised: sum(i=1, nfilters, filter[i]) == 1
+static void NUMvector_filter (double *input, long numberOfDataPoints, double *filter, long numberOfFilterCoefficients, double *output, int edgeTreatment) {
+	long nleft = (numberOfFilterCoefficients - 1) / 2;
+	if (edgeTreatment == 0) { // outside values are zero
+		for (long i = 1; i <= numberOfDataPoints; i++) {
+			long ifrom = i - nleft, ito = i + nleft;
+			ito = numberOfFilterCoefficients % 2 == 0 ? ito - 1 : ito;
+			long jfrom = ifrom < 1 ? 1 : ifrom;
+			long jto = ito > numberOfDataPoints ? numberOfDataPoints : ito;
+			long index = ifrom < 1 ? 2 - ifrom : 1;
+			double out = 0, sum = 0;
+			for (long j = jfrom; j <= jto; j++, index++) {
+				out += filter[index] * input[j];
+				sum += filter[index];
+			}
+			output[i] = out / sum;
+		}
+	} else if (edgeTreatment == 1) { // wrap-around
+		for (long i = 1; i <= numberOfDataPoints; i++) {
+			double out = 0;
+			for (long j = 1; j <= numberOfFilterCoefficients; j++) {
+				long index = (i - nleft + j - 2) % numberOfDataPoints + 1;
+				out += filter[j] * input[index];
+			}
+			output[i] = out;
+		}
+	}
+	
+	
+}
+
 Thing_implement (Cepstrum, Matrix, 2);
 Thing_implement (PowerCepstrum, Cepstrum, 2); // derives from Matrix therefore also version 2
 
@@ -53,37 +100,37 @@ double structPowerCepstrum :: v_getValueAtSample (long isamp, long which, int un
 	return NUMundefined;
 }
 
-autoCepstrum Cepstrum_create (double qmax, long nq) {
+Cepstrum Cepstrum_create (double qmax, long nq) {
 	try {
 		autoCepstrum me = Thing_new (Cepstrum);
 		double dq = qmax / (nq - 1);
 
-		Matrix_init (me.get(), 0.0, qmax, nq, dq, 0.0, 1.0, 1.0, 1, 1, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0, qmax, nq, dq, 0, 1, 1, 1, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cepstrum not created.");
 	}
 }
 
-autoPowerCepstrum Cepstrum_downto_PowerCepstrum (Cepstrum me ) {
+PowerCepstrum Cepstrum_downto_PowerCepstrum (Cepstrum me ) {
 	try {
 		autoPowerCepstrum thee = PowerCepstrum_create (my xmax, my nx);
 		for (long i = 1; i <= my nx; i++) {
 			thy z[1][i] = my z[1][i] * my z[1][i];
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U" not converted.");
 	}
 }
 
-autoPowerCepstrum PowerCepstrum_create (double qmax, long nq) {
+PowerCepstrum PowerCepstrum_create (double qmax, long nq) {
 	try {
 		autoPowerCepstrum me = Thing_new (PowerCepstrum);
 		double dq = qmax / (nq - 1);
 
-		Matrix_init (me.get(), 0.0, qmax, nq, dq, 0.0, 1.0, 1.0, 1, 1, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0, qmax, nq, dq, 0, 1, 1, 1, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PowerCepstrum not created.");
 	}
@@ -126,10 +173,10 @@ static void _Cepstrum_draw (Cepstrum me, Graphics g, double qmin, double qmax, d
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Quefrency (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, power ? U"Amplitude (dB)" : U"Amplitude");
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Quefrency (s)");
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+		Graphics_textLeft (g, 1, power ? U"Amplitude (dB)" : U"Amplitude");
+		Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
 	}
 }
 
@@ -267,7 +314,6 @@ void PowerCepstrum_fitTiltLine (PowerCepstrum me, double qmin, double qmax, doub
 	}
 }
 
-#if 0
 // Hillenbrand subtracts dB values and if the result is negative it is made zero
 static void PowerCepstrum_subtractTiltLine_inline2 (PowerCepstrum me, double slope, double intercept, int lineType) {
 	for (long j = 1; j <= my nx; j++) {
@@ -280,7 +326,6 @@ static void PowerCepstrum_subtractTiltLine_inline2 (PowerCepstrum me, double slo
 		my z[1][j] = diff;
 	}
 }
-#endif
 
 // clip with tilt line
 static void PowerCepstrum_subtractTiltLine_inline (PowerCepstrum me, double slope, double intercept, int lineType) {
@@ -294,7 +339,7 @@ static void PowerCepstrum_subtractTiltLine_inline (PowerCepstrum me, double slop
 		if (diff < 0) {
 			diff = 0;
 		}
-		my z[1][j] = exp (diff * NUMln10 / 10.0) - 1e-30;
+		my z[1][j] = exp (diff * NUMln10 / 10) - 1e-30;
 	}
 }
 
@@ -305,33 +350,52 @@ void PowerCepstrum_subtractTilt_inline (PowerCepstrum me, double qstartFit, doub
 	PowerCepstrum_subtractTiltLine_inline (me, slope, intercept, lineType);
 }
 
-autoPowerCepstrum PowerCepstrum_subtractTilt (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod) {
+PowerCepstrum PowerCepstrum_subtractTilt (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod) {
 	try {
 		autoPowerCepstrum thee = Data_copy (me);
-		PowerCepstrum_subtractTilt_inline (thee.get(), qstartFit,  qendFit, lineType, fitMethod);
-		return thee;
+		PowerCepstrum_subtractTilt_inline (thee.peek(), qstartFit,  qendFit, lineType, fitMethod);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": couldn't subtract tilt line.");
 	}
 }
 
+static void PowerCepstrum_smooth_inline2 (PowerCepstrum me, double quefrencyAveragingWindow) {
+	try {
+		long numberOfQuefrencyBins = (long) floor (quefrencyAveragingWindow / my dx);
+		if (numberOfQuefrencyBins > 1) {
+			autoNUMvector<double> qin (1, my nx);
+			autoNUMvector<double> qout (1, my nx);
+			for (long iq = 1; iq <= my nx; iq++) {
+				qin[iq] = my z[1][iq];
+			}
+			NUMvector_smoothByMovingAverage (qin.peek(), my nx, numberOfQuefrencyBins, qout.peek());
+			for (long iq = 1; iq <= my nx; iq++) {
+				my z[1][iq] = qout[iq];
+			}
+		}
+	} catch (MelderError) {
+		Melder_throw (me, U": not smoothed.");
+	}
+}
+
 void PowerCepstrum_smooth_inline (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations) {
 	try {
 		long numberOfQuefrencyBins = (long) floor (quefrencyAveragingWindow / my dx);
 		if (numberOfQuefrencyBins > 1) {
 			autoNUMvector<double> qin (1, my nx);
 			autoNUMvector<double> qout (1, my nx);
-			for (long iq = 1; iq <= my nx; iq ++) {
-				qin [iq] = my z [1] [iq];
+			for (long iq = 1; iq <= my nx; iq++) {
+				qin[iq] = my z[1][iq];
 			}
 			double *xin, *xout;
-			for (long k = 1; k <= numberOfIterations; k ++) {
+			for (long k = 1; k <= numberOfIterations; k++) {
 				xin  = k % 2 == 1 ? qin.peek() : qout.peek ();
 				xout = k % 2 == 1 ? qout.peek () : qin.peek();
 				NUMvector_smoothByMovingAverage (xin, my nx, numberOfQuefrencyBins, xout);
 			}
 			for (long iq = 1; iq <= my nx; iq++) {
-				my z [1] [iq] = xout [iq];
+				my z[1][iq] = xout[iq];
 			}
 		}
 	} catch (MelderError) {
@@ -339,46 +403,71 @@ void PowerCepstrum_smooth_inline (PowerCepstrum me, double quefrencyAveragingWin
 	}
 }
 
-autoPowerCepstrum PowerCepstrum_smooth (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations) {
+PowerCepstrum PowerCepstrum_smooth (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations) {
 	autoPowerCepstrum thee = Data_copy (me);
-	PowerCepstrum_smooth_inline (thee.get(), quefrencyAveragingWindow, numberOfIterations);
-	return thee;
+	PowerCepstrum_smooth_inline (thee.peek(), quefrencyAveragingWindow, numberOfIterations);
+	return thee.transfer();
 }
 
 void PowerCepstrum_getMaximumAndQuefrency (PowerCepstrum me, double pitchFloor, double pitchCeiling, int interpolation, double *peakdB, double *quefrency) {
+	*peakdB = *quefrency = NUMundefined;
 	autoPowerCepstrum thee = Data_copy (me);
-	double lowestQuefrency = 1.0 / pitchCeiling, highestQuefrency = 1.0 / pitchFloor;
-	for (long i = 1; i <= my nx; i ++) {
+	double lowestQuefrency = 1 / pitchCeiling, highestQuefrency = 1 / pitchFloor;
+	for (long i = 1; i <= my nx; i++) {
 		thy z[1][i] = my v_getValueAtSample (i, 1, 0); // 10 log val^2
 	}
-	Vector_getMaximumAndX ((Vector) thee.get(), lowestQuefrency, highestQuefrency, 1, interpolation, peakdB, quefrency);   // FIXME cast
+	Vector_getMaximumAndX ((Vector) thee.peek(), lowestQuefrency, highestQuefrency, 1, interpolation, peakdB, quefrency);
+}
+
+static void Cepstrum_getZ2 (Cepstrum me, long imin, long imax, double peakdB, long margin, long keep, double *z) {
+	*z = NUMundefined;
+	long npeaks = 0, n = (imax - imin) / 2 + keep;
+	autoNUMvector<double> ymax (1, n);
+	autoNUMvector<long> index (1, n);
+	for (long i = imin + 1; i < imax; i++) {
+		if (my z[1][i] > my z[1][i-1] && my z[1][i] > my z[1][i+1]) {
+			ymax[++npeaks] = my z[1][i];
+			index[npeaks] = i;
+		}
+	}
+	NUMsort2<double, long> (npeaks, ymax.peek(), index.peek());
+	long i = npeaks - 1, ipeak = 0;
+	while (i > 0 && ipeak < keep) {
+		if (labs(index[i] - index[npeaks]) > margin) {
+			ipeak++;
+			ymax[npeaks +ipeak] = ymax[i];
+		}
+		i--;
+	}
+	double mean, variance;
+	NUMvector_avevar (&ymax[npeaks], ipeak, &mean, &variance);
+	double sigma = sqrt (variance / (ipeak - 1));
+	double peak = exp (peakdB * NUMln10 / 10) - 1e-30;
+	*z = sigma <= 0 ? NUMundefined : peak / sigma;
 }
 
-#if 0
 static void Cepstrum_getZ (Cepstrum me, long imin, long imax, double peakdB, double slope, double intercept, int lineType, double *z) {
 	long ndata = imax - imin + 1;
 	autoNUMvector<double> dabs (1, ndata);
-	for (long i = imin; i <= imax; i ++) {
+	for (long i = imin; i <= imax; i++) {
 		double q = my x1 + (i - 1) * my dx;
-		q = ( i == 1 ? 0.5 * my dx : q );   // approximation
-		double xq = ( lineType == 2 ? log (q) : q );
+		q = i == 1 ? 0.5 * my dx : q; // approximation
+		double xq = lineType == 2 ? log(q) : q;
 		double db_background = slope * xq + intercept;
 		double db_cepstrum = my v_getValueAtSample (i, 1, 0);
-		double diff = exp ((db_cepstrum - db_background) * NUMln10 / 10.0) - 1e-30;
+		double diff = exp ((db_cepstrum - db_background) * NUMln10 / 10) - 1e-30;
 		//double diff = fabs (db_cepstrum - db_background);
-		dabs [i - imin + 1] = diff;
+		dabs[i - imin + 1] = diff;
 	}
 	double q50 = NUMquantile (ndata, dabs.peek(), 0.5);
-	double peak = exp (peakdB * NUMln10 / 10.0) - 1e-30;
-	if (z) {
-		*z = peak / q50;
-	}
+	double peak = exp (peakdB * NUMln10 / 10) - 1e-30;
+	//*z = peakdB / q50;
+	*z = peak / q50;
 }
-#endif
 
 double PowerCepstrum_getRNR (PowerCepstrum me, double pitchFloor, double pitchCeiling, double f0fractionalWidth) {
 	double rnr = NUMundefined;
-	double qmin = 1.0 / pitchCeiling, qmax = 1.0 / pitchFloor, peakdB, qpeak;
+	double qmin = 1 / pitchCeiling, qmax = 1 / pitchFloor, peakdB, qpeak;
 	PowerCepstrum_getMaximumAndQuefrency (me, pitchFloor, pitchCeiling, 2, &peakdB, &qpeak);
 	long imin, imax;
 	if (! Matrix_getWindowSamplesX (me, qmin, qmax, & imin, & imax)) {
@@ -399,15 +488,14 @@ double PowerCepstrum_getRNR (PowerCepstrum me, double pitchFloor, double pitchCe
 		double qx = my x1 + (i - 1) * my dx;
 		sum += val;
 		// is qx within an interval around a multiple of the peak's q ?
-		for (long j = 1; j <= npeaks; j ++) {
-			double f0c = 1.0 / (j * qpeak);
-			double f0clow = f0c * (1.0 - f0fractionalWidth);
-			double f0chigh = f0c * (1.0 + f0fractionalWidth);
-			double qclow =  1.0 / f0chigh;
-			double qchigh = ( f0fractionalWidth >= 1 ? qmax : 1.0 / f0clow );
-			if (qx >= qclow && qx <= qchigh) {   // yes in rahmonic interval
-				sumr += val;
-				break;
+		for (long j = 1; j <= npeaks; j++) {
+			double f0c = 1 / (j * qpeak);
+			double f0clow = f0c * (1 - f0fractionalWidth);
+			double f0chigh = f0c * (1 + f0fractionalWidth);
+			double qclow =  1 / f0chigh;
+			double qchigh = f0fractionalWidth >= 1 ? qmax : 1 / f0clow;
+			if (qx >= qclow && qx <= qchigh) { // yes in rhamonic interval
+				sumr += val; break;
 			}
 		}
 	}
@@ -419,64 +507,63 @@ double PowerCepstrum_getPeakProminence_hillenbrand (PowerCepstrum me, double pit
 	double slope, intercept, quefrency, peakdB;
 	PowerCepstrum_fitTiltLine (me, 0.001, 0, &slope, &intercept, 1, 1);
 	autoPowerCepstrum thee = Data_copy (me);
-	PowerCepstrum_subtractTiltLine_inline (thee.get(), slope, intercept, 1);
-	PowerCepstrum_getMaximumAndQuefrency (thee.get(), pitchFloor, pitchCeiling, 0, & peakdB, & quefrency);
+	PowerCepstrum_subtractTiltLine_inline (thee.peek(), slope, intercept, 1);
+	PowerCepstrum_getMaximumAndQuefrency (thee.peek(), pitchFloor, pitchCeiling, 0, &peakdB, &quefrency);
 	if (qpeak) {
 		*qpeak = quefrency;
 	}
 	return peakdB;
 }
 
-double PowerCepstrum_getPeakProminence (PowerCepstrum me, double pitchFloor, double pitchCeiling, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod, double *p_qpeak) {
-	double slope, intercept, qpeak, peakdB;
+double PowerCepstrum_getPeakProminence (PowerCepstrum me, double pitchFloor, double pitchCeiling, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod, double *qpeak) {
+	double slope, intercept, quefrency, peakdB;
 	PowerCepstrum_fitTiltLine (me, qstartFit, qendFit, &slope, &intercept, lineType, fitMethod);
-	PowerCepstrum_getMaximumAndQuefrency (me, pitchFloor, pitchCeiling, interpolation, & peakdB, & qpeak);
-	double xq = lineType == 2 ? log(qpeak) : qpeak;
+	PowerCepstrum_getMaximumAndQuefrency (me, pitchFloor, pitchCeiling, interpolation, &peakdB, &quefrency);
+	double xq = lineType == 2 ? log(quefrency) : quefrency;
 	double db_background = slope * xq + intercept;
 	double cpp = peakdB - db_background;
-	if (p_qpeak) {
-		*p_qpeak = qpeak;
+	if (qpeak != NULL) {
+		*qpeak = quefrency;
 	}
 	return cpp;
 }
 
-autoMatrix PowerCepstrum_to_Matrix (PowerCepstrum me) {
+Matrix PowerCepstrum_to_Matrix (PowerCepstrum me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix created.");
 	}
 }
 
-autoPowerCepstrum Matrix_to_PowerCepstrum (Matrix me) {
+PowerCepstrum Matrix_to_PowerCepstrum (Matrix me) {
 	try {
-		if (my ny != 1) {
+		if (my ny != 1)
 			Melder_throw (U"Matrix should have exactly 1 row.");
-		}
 		autoPowerCepstrum thee = Thing_new (PowerCepstrum);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PowerCepstrum.");
 	}
 }
 
-autoPowerCepstrum Matrix_to_PowerCepstrum_row (Matrix me, long row) {
+PowerCepstrum Matrix_to_PowerCepstrum_row (Matrix me, long row) {
 	try {
 		autoPowerCepstrum thee = PowerCepstrum_create (my xmax, my nx);
 		if (row < 1 || row > my ny) {
 			Melder_throw (U"Row number should be between 1 and ", my ny, U" inclusive.");
 		}
 		NUMvector_copyElements (my z[row], thy z[1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PowerCepstrum created.");
 	}
 }
 
-autoPowerCepstrum Matrix_to_PowerCepstrum_column (Matrix me, long col) {
+PowerCepstrum Matrix_to_PowerCepstrum_column (Matrix me, long col) {
 	try {
 		autoPowerCepstrum thee = PowerCepstrum_create (my ymax, my ny);
 		if (col < 1 || col > my nx) {
@@ -485,7 +572,7 @@ autoPowerCepstrum Matrix_to_PowerCepstrum_column (Matrix me, long col) {
 		for (long i = 1; i <= my ny; i++) {
 			thy z[1][i] = my z[i][col];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PowerCepstrum created.");
 	}
diff --git a/LPC/Cepstrum.h b/LPC/Cepstrum.h
index 6e4533a..86e65e2 100644
--- a/LPC/Cepstrum.h
+++ b/LPC/Cepstrum.h
@@ -2,7 +2,7 @@
 #define _Cepstrum_h_
 /* Cepstrum.h
  *
- * Copyright (C) 1994-2013, 2015-2016 David Weenink
+ * Copyright (C) 1994-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -60,9 +60,8 @@ Thing_define (PowerCepstrum, Cepstrum) {
 	ny = 1
 */
 
-autoCepstrum Cepstrum_create (double qmax, long nq);
-
-autoPowerCepstrum PowerCepstrum_create (double qmax, long nq);
+Cepstrum Cepstrum_create (double qmax, long nq);
+PowerCepstrum PowerCepstrum_create (double qmax, long nq);
 /* Preconditions:
 		nq >= 2;
 	Postconditions:
@@ -75,9 +74,7 @@ autoPowerCepstrum PowerCepstrum_create (double qmax, long nq);
 */
 
 void PowerCepstrum_draw (PowerCepstrum me, Graphics g, double qmin, double qmax, double dBminimum, double dBmaximum, int garnish);
-
 void Cepstrum_drawLinear (Cepstrum me, Graphics g, double qmin, double qmax, double minimum, double maximum, int garnish);
-
 void PowerCepstrum_drawTiltLine (PowerCepstrum me, Graphics g, double qmin, double qmax, double dBminimum, double dBmaximum, double qstart, double qend, int lineType, int method);
 /*
 	Function:
@@ -99,16 +96,16 @@ double PowerCepstrum_getPeakProminence_hillenbrand (PowerCepstrum me, double pit
 double PowerCepstrum_getRNR (PowerCepstrum me, double pitchFloor, double pitchCeiling, double f0fractionalWidth);
 double PowerCepstrum_getPeakProminence (PowerCepstrum me, double pitchFloor, double pitchCeiling, int interpolation, double qstartFit, double qendFit, int lineType, int fitMethod, double *qpeak);
 void PowerCepstrum_fitTiltLine (PowerCepstrum me, double qmin, double qmax, double *slope, double *intercept, int lineType, int method);
-autoPowerCepstrum PowerCepstrum_subtractTilt (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod);
+PowerCepstrum PowerCepstrum_subtractTilt (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod);
 void PowerCepstrum_subtractTilt_inline (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod);
-
+PowerCepstrum PowerCepstrum_subtractTilt (PowerCepstrum me, double qstartFit, double qendFit, int lineType, int fitMethod);
 void PowerCepstrum_smooth_inline (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations);
-autoPowerCepstrum PowerCepstrum_smooth (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations);
+PowerCepstrum PowerCepstrum_smooth (PowerCepstrum me, double quefrencyAveragingWindow, long numberOfIterations);
 
-autoMatrix PowerCepstrum_to_Matrix (PowerCepstrum me);
-autoPowerCepstrum Matrix_to_PowerCepstrum (Matrix me);
-autoPowerCepstrum Matrix_to_PowerCepstrum_row (Matrix me, long row);
-autoPowerCepstrum Matrix_to_PowerCepstrum_column (Matrix me, long col);
-autoPowerCepstrum Cepstrum_downto_PowerCepstrum (Cepstrum me);
+Matrix PowerCepstrum_to_Matrix (PowerCepstrum me);
+PowerCepstrum Matrix_to_PowerCepstrum (Matrix me);
+PowerCepstrum Matrix_to_PowerCepstrum_row (Matrix me, long row);
+PowerCepstrum Matrix_to_PowerCepstrum_column (Matrix me, long col);
+PowerCepstrum Cepstrum_downto_PowerCepstrum (Cepstrum me);
 
 #endif /* _Cepstrum_h_ */
diff --git a/LPC/Cepstrum_and_Spectrum.cpp b/LPC/Cepstrum_and_Spectrum.cpp
index 90f5ad9..38a869c 100644
--- a/LPC/Cepstrum_and_Spectrum.cpp
+++ b/LPC/Cepstrum_and_Spectrum.cpp
@@ -1,6 +1,6 @@
 /* Cepstrum_and_Spectrum.cpp
  *
- * Copyright (C) 1994-2012, 2015 David Weenink
+ * Copyright (C) 1994-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,8 +30,7 @@
 #include "Spectrum_extensions.h"
 #include "Sound_and_Spectrum.h"
 
-#if 0
-static autoCepstrum Spectrum_to_Cepstrum_cmplx (Spectrum me) {
+static Cepstrum Spectrum_to_Cepstrum_cmplx (Spectrum me) {
 	try {
 		autoMatrix unwrap = Spectrum_unwrap (me);
 		autoSpectrum sx = Data_copy (me);
@@ -40,23 +39,22 @@ static autoCepstrum Spectrum_to_Cepstrum_cmplx (Spectrum me) {
 
 		for (long i = 1; i <= my nx; i ++) {
 			double xa = unwrap -> z[1][i];
-			sx -> z[1][i] = xa > 0.0 ? 0.5 * log (xa) : -300.0;
+			sx -> z[1][i] = xa > 0 ? 0.5 * log (xa) : -300;
 			sx -> z[2][i] = unwrap -> z[2][i];
 		}
 
 		// Compute complex cepstrum x.
 
-		autoSound x = Spectrum_to_Sound (sx.get());
+		autoSound x = Spectrum_to_Sound (sx.peek());
 		autoCepstrum thee = Cepstrum_create (x -> xmax - x -> xmin, x -> nx);
 		NUMvector_copyElements (x -> z[1], thy z[1], 1, x -> nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Cepstrum created.");
 	}
 }
-#endif
 
-autoPowerCepstrum Spectrum_to_PowerCepstrum (Spectrum me) {
+PowerCepstrum Spectrum_to_PowerCepstrum (Spectrum me) {
 	try {
 		autoSpectrum dBspectrum = Data_copy (me);
 		double *re = dBspectrum -> z[1], *im = dBspectrum -> z[2];
@@ -64,19 +62,19 @@ autoPowerCepstrum Spectrum_to_PowerCepstrum (Spectrum me) {
 			re[i] = log (re[i] * re[i] + im[i] * im[i] + 1e-300);
 			im[i] = 0.0;
 		}
-		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.get());
+		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.peek());
 		autoPowerCepstrum thee = PowerCepstrum_create (0.5 / my dx, my nx);
 		for (long i = 1; i <= thy nx; i++) {
 			double val = cepstrum -> z[1][i];
 			thy z[1][i] = val * val;
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
 }
 
-autoCepstrum Spectrum_to_Cepstrum (Spectrum me) {
+Cepstrum Spectrum_to_Cepstrum (Spectrum me) {
 	try {
 		autoSpectrum dBspectrum = Data_copy (me);
 		double *re = dBspectrum -> z[1], *im = dBspectrum -> z[2];
@@ -84,33 +82,96 @@ autoCepstrum Spectrum_to_Cepstrum (Spectrum me) {
 			re[i] = log (re[i] * re[i] + im[i] * im[i] + 1e-300);
 			im[i] = 0.0;
 		}
-		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.get());
+		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.peek());
 		autoCepstrum thee = Cepstrum_create (0.5 / my dx, my nx);
 		for (long i = 1; i <= thy nx; i++) {
 			double val = cepstrum -> z[1][i];
 			thy z[1][i] = val;
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
 }
 
-autoSpectrum Cepstrum_to_Spectrum (Cepstrum me) { //TODO power cepstrum
+Spectrum Cepstrum_to_Spectrum (Cepstrum me) { //TODO power cepstrum
 	try {
 		autoCepstrum cepstrum = Data_copy (me);
 		cepstrum ->  z[1][1] = my z[1][1];
 		for (long i = 2; i <= cepstrum -> nx; i++) {
 			cepstrum -> z[1][i] = 2 * my z[1][i];
 		}
-		autoSpectrum thee = Sound_to_Spectrum ((Sound) cepstrum.get(), 1);
+		autoSpectrum thee = Sound_to_Spectrum ((Sound) cepstrum.peek(), 1);
 
 		double *re = thy z[1], *im = thy z[2];
 		for (long i = 1; i <= thy nx; i ++) {
 			re[i] =  exp (0.5 * re[i]);   // i.e., sqrt (exp(re [i]))
 			im[i] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, U": no Spectrum created.");
+	}
+}
+
+static Cepstrum Spectrum_to_Cepstrum2 (Spectrum me) {
+	try {
+		autoNUMfft_Table fftTable;
+		// originalNumberOfSamplesProbablyOdd irrelevant
+		if (my x1 != 0.0) {
+			Melder_throw (U"A Fourier-transformable Spectrum must have a first frequency of 0 Hz, not ", my x1, U" Hz.");
+		}
+		long numberOfSamples = 2 * my nx - 2;
+		autoCepstrum thee = Cepstrum_create (0.5 / my dx, my nx);
+		// my dx = 1 / (dT * N) = 1 / (duration of sound)
+		thy dx = 1 / (my dx * numberOfSamples); // Cepstrum is on [-T/2, T/2] !
+		NUMfft_Table_init (&fftTable, numberOfSamples);
+		autoNUMvector<double> fftbuf (1, numberOfSamples);
+
+		fftbuf[1] = my v_getValueAtSample (1, 0, 2);
+		for (long i = 2; i < my nx; i++) {
+			fftbuf [i + i - 2] = my v_getValueAtSample (i, 0, 2);
+			fftbuf [i + i - 1] = 0;
+		}
+		fftbuf [numberOfSamples] = my v_getValueAtSample (my nx, 0, 2);
+		NUMfft_backward (&fftTable, fftbuf.peek());
+		for (long i = 1; i <= my nx; i++) {
+			double val = fftbuf[i] / numberOfSamples; // scaling 1/n because ifft(fft(1))= n;
+			thy z[1][i] = val * val; // power cepstrum
+		}
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, U": not converted to Cepstrum.");
+	}
+}
+
+
+static Spectrum Cepstrum_to_Spectrum2 (Cepstrum me) { //TODO power cepstrum
+	try {
+		autoNUMfft_Table fftTable;
+		long numberOfSamples = 2 * my nx - 2;
+
+		autoNUMvector<double> fftbuf (1, numberOfSamples);
+		autoSpectrum thee = Spectrum_create (0.5 / my dx, my nx);
+		fftbuf[1] = sqrt (my z[1][1]);
+		for (long i = 2; i <= my nx; i++) {
+			fftbuf[i] = 2 * sqrt (my z[1][i]);
+		}
+		// fftbuf[my nx+1 ... numberOfSamples] = 0
+		NUMfft_Table_init (&fftTable, numberOfSamples);
+		NUMfft_forward (&fftTable, fftbuf.peek());
+		
+		thy z[1][1] = fabs (fftbuf[1]);
+		for (long i = 2; i < my nx; i++) {
+			double br = fftbuf[i + i - 2], bi = fftbuf[i + i - 1];
+			thy z[1][i] = sqrt (br * br + bi * bi);
+		}
+		thy z[1][my nx] = fabs (fftbuf[numberOfSamples]);
+		for (long i = 1; i <= my nx; i++) {
+			thy z[1][i] = exp (NUMln10 * thy z[1][i] / 20) * 2e-5 / sqrt (2 * thy dx);
+			thy z[2][i] = 0;
+		}
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum created.");
 	}
diff --git a/LPC/Cepstrum_and_Spectrum.h b/LPC/Cepstrum_and_Spectrum.h
index 30e9a61..17daeae 100644
--- a/LPC/Cepstrum_and_Spectrum.h
+++ b/LPC/Cepstrum_and_Spectrum.h
@@ -1,31 +1,11 @@
 #ifndef _Cepstrum_and_Spectrum_h_
 #define _Cepstrum_and_Spectrum_h_
-/* Cepstrum_and_Spectrum.h
- *
- * Copyright (C) 1994-2012, 2015 David Weenink
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
+/* David Weenink, 20010101 */
 
 #include "Spectrum.h"
 #include "Cepstrum.h"
 
-autoCepstrum Spectrum_to_Cepstrum (Spectrum me);
-
-autoSpectrum Cepstrum_to_Spectrum (Cepstrum me);
-
-autoPowerCepstrum Spectrum_to_PowerCepstrum (Spectrum me);
-
+Cepstrum Spectrum_to_Cepstrum (Spectrum me);
+Spectrum Cepstrum_to_Spectrum (Cepstrum me);
+PowerCepstrum Spectrum_to_PowerCepstrum (Spectrum me);
 #endif /* _Cepstrum_and_Spectrum_h_ */
diff --git a/LPC/Cepstrumc.cpp b/LPC/Cepstrumc.cpp
index 9c9cb5e..9df4426 100644
--- a/LPC/Cepstrumc.cpp
+++ b/LPC/Cepstrumc.cpp
@@ -1,6 +1,6 @@
 /* Cepstrumc.c
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@
 Thing_implement (Cepstrumc, Sampled, 1);
 
 void structCepstrumc :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"  Start time: ", xmin);
 	MelderInfo_writeLine (U"  End time: ", xmax);
 	MelderInfo_writeLine (U"  Number of frames: ", nx);
@@ -72,12 +72,12 @@ void Cepstrumc_init (Cepstrumc me, double tmin, double tmax, long nt, double dt,
 	my frame = NUMvector<structCepstrumc_Frame> (1, nt);
 }
 
-autoCepstrumc Cepstrumc_create (double tmin, double tmax, long nt, double dt, double t1,
+Cepstrumc Cepstrumc_create (double tmin, double tmax, long nt, double dt, double t1,
                             int nCoefficients, double samplingFrequency) {
 	try {
 		autoCepstrumc me = Thing_new (Cepstrumc);
-		Cepstrumc_init (me.get(), tmin, tmax, nt, dt, t1, nCoefficients, samplingFrequency);
-		return me;
+		Cepstrumc_init (me.peek(), tmin, tmax, nt, dt, t1, nCoefficients, samplingFrequency);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cepstrum not created.");
 	}
@@ -106,7 +106,8 @@ static void regression (Cepstrumc me, long frame, double r[], long nr) {
 	}
 }
 
-autoDTW Cepstrumc_to_DTW (Cepstrumc me, Cepstrumc thee, double wc, double wle, double wr, double wer, double dtr, int matchStart, int matchEnd, int constraint) {
+DTW Cepstrumc_to_DTW (Cepstrumc me, Cepstrumc thee, double wc, double wle,
+                      double wr, double wer, double dtr, int matchStart, int matchEnd, int constraint) {
 	try {
 		long nr = (long) floor (dtr / my dx);
 
@@ -166,14 +167,14 @@ autoDTW Cepstrumc_to_DTW (Cepstrumc me, Cepstrumc thee, double wc, double wle, d
 			Melder_progress ( (double) i / my nx, U"Calculate distances: frame ",
 			                   i, U" from ", my nx, U".");
 		}
-		DTW_findPath (him.get(), matchStart, matchEnd, constraint);
-		return him;
+		DTW_findPath (him.peek(), matchStart, matchEnd, constraint);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created.");
 	}
 }
 
-autoMatrix Cepstrumc_to_Matrix (Cepstrumc me) {
+Matrix Cepstrumc_to_Matrix (Cepstrumc me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
 		                                 0, my maxnCoefficients, my maxnCoefficients + 1, 1, 0);
@@ -184,7 +185,7 @@ autoMatrix Cepstrumc_to_Matrix (Cepstrumc me) {
 				thy z[j][i] = his c[j - 1];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix created.");
 	}
diff --git a/LPC/Cepstrumc.h b/LPC/Cepstrumc.h
index a68da57..49b30d9 100644
--- a/LPC/Cepstrumc.h
+++ b/LPC/Cepstrumc.h
@@ -2,7 +2,7 @@
 #define _Cepstrumc_h_
 /* Cepstrumc.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,18 +31,19 @@
 #include "DTW.h"
 
 #include "Cepstrumc_def.h"
+oo_CLASS_CREATE (Cepstrumc, Sampled);
 
 void Cepstrumc_init (Cepstrumc me, double tmin, double tmax, long nt, double dt, double t1,
 	int nCoefficients, double samplingFrequency);
 	
-autoCepstrumc Cepstrumc_create (double tmin, double tmax, long nt, double dt, double t1,
+Cepstrumc Cepstrumc_create (double tmin, double tmax, long nt, double dt, double t1,
 	int nCoefficients, double samplingFrequency);
 
 /******************* Frames ************************************************/
 
 void Cepstrumc_Frame_init (Cepstrumc_Frame me, int nCoefficients);
 	
-autoDTW Cepstrumc_to_DTW ( Cepstrumc me, Cepstrumc thee, double wc, double wle,
+DTW Cepstrumc_to_DTW ( Cepstrumc me, Cepstrumc thee, double wc, double wle,
 	double wr, double wer, double dtr, int matchStart, int matchEnd, int constraint);
 /*
 	1. Calculate distances between Cepstra:
@@ -63,6 +64,6 @@ autoDTW Cepstrumc_to_DTW ( Cepstrumc me, Cepstrumc thee, double wc, double wle,
 	at least one of wc, wle, wr, wer != 0
 */
 
-autoMatrix Cepstrumc_to_Matrix (Cepstrumc me);
+Matrix Cepstrumc_to_Matrix (Cepstrumc me);
 
 #endif /* _Cepstrumc_h_ */
diff --git a/LPC/Cepstrumc_def.h b/LPC/Cepstrumc_def.h
index 578b07b..fedb108 100644
--- a/LPC/Cepstrumc_def.h
+++ b/LPC/Cepstrumc_def.h
@@ -18,19 +18,21 @@
  */
 
 /*
-	djmw 20020812 GPL header
-	djmw 20080122 Version 1: float -> double
+ djmw 20020812 GPL header
+ djmw 20080122 Version 1: float -> double
 */
 
 #define ooSTRUCT Cepstrumc_Frame
 oo_DEFINE_STRUCT (Cepstrumc_Frame)
 
 	oo_INT (nCoefficients)
-
 	#if oo_READING_BINARY
-		if (formatVersion == 0) {
+		if (formatVersion == 0)
+		{
 			oo_FLOAT_VECTOR_FROM (c, 0, nCoefficients)
-		} else {
+		}
+		else
+		{
 			oo_DOUBLE_VECTOR_FROM (c, 0, nCoefficients)
 		}
 	#else
@@ -44,7 +46,7 @@ oo_END_STRUCT (Cepstrumc_Frame)
 #define ooSTRUCT Cepstrumc
 oo_DEFINE_CLASS (Cepstrumc, Sampled)
 
-	oo_DOUBLE (samplingFrequency)   // from Sound
+	oo_DOUBLE (samplingFrequency) /* from Sound */
 	oo_INT (maxnCoefficients)
 	oo_STRUCT_VECTOR (Cepstrumc_Frame, frame, nx)
 
@@ -56,5 +58,4 @@ oo_DEFINE_CLASS (Cepstrumc, Sampled)
 oo_END_CLASS (Cepstrumc)
 #undef ooSTRUCT
 
-
 /* End of file Cepstrumc_def.h */
diff --git a/LPC/Formant_extensions.cpp b/LPC/Formant_extensions.cpp
index 278aa66..a90b9ab 100644
--- a/LPC/Formant_extensions.cpp
+++ b/LPC/Formant_extensions.cpp
@@ -1,6 +1,6 @@
-/* Formant_extensions.cpp
+/* Formant_extensions.c
  *
- * Copyright (C) 2012,2015-2016 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,10 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020813 GPL header
+*/
+
 #include "Formant_extensions.h"
 #include "NUM2.h"
 
@@ -44,12 +48,12 @@ void Formant_formula (Formant me, double tmin, double tmax, long formantmin, lon
 			}
 		}
 		// Apply formula
-		double ymin = 2.0 * formantmin - 1.0, ymax = 2.0 * formantmax;
-		Matrix_formula_part (fb.get(), tmin, tmax, ymin, ymax, expression, interpreter, nullptr);
+		double ymin = 2 * formantmin - 1, ymax = 2 * formantmax;
+		Matrix_formula_part (fb.peek(), tmin, tmax, ymin, ymax, expression, interpreter, NULL);
 		// Put results back in Formant
 		long ixmin, ixmax, iymin, iymax;
-		(void) Matrix_getWindowSamplesX (fb.get(), tmin, tmax, & ixmin, & ixmax);
-		(void) Matrix_getWindowSamplesY (fb.get(), ymin, ymax, & iymin, & iymax);
+		(void) Matrix_getWindowSamplesX (fb.peek(), tmin, tmax, & ixmin, & ixmax);
+		(void) Matrix_getWindowSamplesY (fb.peek(), ymin, ymax, & iymin, & iymax);
 
 		for (long iframe = ixmin; iframe <= ixmax; iframe++) {
 			// if some of the formant frequencies are set to zero => remove the formant
@@ -86,7 +90,7 @@ void Formant_formula (Formant me, double tmin, double tmax, long formantmin, lon
 	}
 }
 
-autoIntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrogram thee, long iformant) {
+IntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrogram thee, long iformant) {
 	try {
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"The start and end times of the Formant and the Spectrogram must be equal.");
@@ -95,7 +99,7 @@ autoIntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrog
 			Melder_throw (U"Formant number not in range [1, ", my maxnFormants, U"].");
 		}
 		autoIntensityTier him = IntensityTier_create (my xmin, my xmax);
-		double previousValue = -80000.0; // can never occur
+		double previousValue = -80000; // can never occur
 		double previousTime = my xmin;
 		for (long iframe = 1; iframe <= my nx; iframe++) {
 			Formant_Frame frame = & my d_frames [iframe];
@@ -110,14 +114,14 @@ autoIntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrog
 			value = 10.0 * log10 ((value + 1e-30) / 4.0e-10); /* dB / Hz */
 			if (value != previousValue) {
 				if (iframe > 1 && previousTime < time - 1.5 * my dx) { // mark the end of the same interval
-					RealTier_addPoint (him.get(), time - my dx, previousValue);
+					RealTier_addPoint (him.peek(), time - my dx, previousValue);
 				}
-				RealTier_addPoint (him.get(), time, value);
+				RealTier_addPoint (him.peek(), time, value);
 				previousTime = time;
 			}
 			previousValue = value;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"IntensityTier not created from ", me, U" and ", thee, U".");
 	}
diff --git a/LPC/Formant_extensions.h b/LPC/Formant_extensions.h
index 57048fa..cbe5d18 100644
--- a/LPC/Formant_extensions.h
+++ b/LPC/Formant_extensions.h
@@ -2,7 +2,7 @@
 #define _Formant_extensions_h_
 /* Formant_extensions.h
  *
- * Copyright (C) 2012, 2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,6 +30,6 @@
 
 
 void Formant_formula (Formant me, double tmin, double tmax, long formantmin, long formantmax, Interpreter interpreter, char32 *expression);
-autoIntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrogram thee, long iformant);
+IntensityTier Formant_and_Spectrogram_to_IntensityTier (Formant me, Spectrogram thee, long iformant);
 
 #endif /* _Formant_extensions_h_ */
diff --git a/LPC/LPC.cpp b/LPC/LPC.cpp
index e977f94..1149ef0 100644
--- a/LPC/LPC.cpp
+++ b/LPC/LPC.cpp
@@ -1,6 +1,6 @@
 /* LPC.cpp
  *
- * Copyright (C) 1994-2016 David Weenink
+ * Copyright (C) 1994-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@
 Thing_implement (LPC, Sampled, 1);
 
 void structLPC :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain: ", xmin, U" to ", xmax, U" (s).");
 	MelderInfo_writeLine (U"Prediction order: ", maxnCoefficients);
 	MelderInfo_writeLine (U"Number of frames: ", nx);
@@ -76,12 +76,12 @@ void LPC_init (LPC me, double tmin, double tmax, long nt, double dt, double t1,
 	my d_frames = NUMvector<structLPC_Frame> (1, nt);
 }
 
-autoLPC LPC_create (double tmin, double tmax, long nt, double dt, double t1,
+LPC LPC_create (double tmin, double tmax, long nt, double dt, double t1,
                 int predictionOrder, double samplingPeriod) {
 	try {
 		autoLPC me = Thing_new (LPC);
-		LPC_init (me.get(), tmin, tmax, nt, dt, t1, predictionOrder, samplingPeriod);
-		return me;
+		LPC_init (me.peek(), tmin, tmax, nt, dt, t1, predictionOrder, samplingPeriod);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LPC not created.");
 	}
@@ -118,37 +118,37 @@ void LPC_drawGain (LPC me, Graphics g, double tmin, double tmax, double gmin, do
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (seconds)");
-		Graphics_textLeft (g, true, U"Gain");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Time (seconds)");
+		Graphics_textLeft (g, 1, U"Gain");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
 void LPC_drawPoles (LPC me, Graphics g, double time, int garnish) {
 	autoPolynomial p = LPC_to_Polynomial (me, time);
-	autoRoots r = Polynomial_to_Roots (p.get());
-	Roots_draw (r.get(), g, -1.0, 1.0, -1.0, 1.0, U"+", 12, garnish);
+	autoRoots r = Polynomial_to_Roots (p.peek());
+	Roots_draw (r.peek(), g, -1, 1, -1, 1, U"+", 12, garnish);
 }
 
-autoMatrix LPC_downto_Matrix_lpc (LPC me) {
+Matrix LPC_downto_Matrix_lpc (LPC me) {
 	try {
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1, 1);
 		for (long j = 1; j <= my nx; j++) {
 			LPC_Frame lpc = & my d_frames[j];
 			for (long i = 1; i <= lpc -> nCoefficients; i++) {
 				thy z[i][j] = lpc -> a[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix with linear prediction coefficients created.");
 	}
 }
 
-autoMatrix LPC_downto_Matrix_rc (LPC me) {
+Matrix LPC_downto_Matrix_rc (LPC me) {
 	try {
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1, 1);
 		autoNUMvector<double> rc (1, my maxnCoefficients);
 		for (long j = 1; j <= my nx; j++) {
 			LPC_Frame lpc = & my d_frames[j];
@@ -157,15 +157,15 @@ autoMatrix LPC_downto_Matrix_rc (LPC me) {
 				thy z[i][j] = rc[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix with relection coefficients created.");
 	}
 }
 
-autoMatrix LPC_downto_Matrix_area (LPC me) {
+Matrix LPC_downto_Matrix_area (LPC me) {
 	try {
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, 0.5 + my maxnCoefficients, my maxnCoefficients, 1, 1);
 		autoNUMvector<double> rc (1, my maxnCoefficients);
 		autoNUMvector<double> area (1, my maxnCoefficients);
 		for (long j = 1; j <= my nx; j++) {
@@ -176,7 +176,7 @@ autoMatrix LPC_downto_Matrix_area (LPC me) {
 				thy z[i][j] = area[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix with areas created.");
 	}
diff --git a/LPC/LPC.h b/LPC/LPC.h
index bb88208..d824b07 100644
--- a/LPC/LPC.h
+++ b/LPC/LPC.h
@@ -2,7 +2,7 @@
 #define _LPC_h_
 /* LPC.h
  *
- * Copyright (C) 1994-2012, 2015-2016 David Weenink
+ * Copyright (C) 1994-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
 #include "Graphics.h"
 
 #include "LPC_def.h"
+oo_CLASS_CREATE (LPC, Sampled);
 
 /*
 	From Sampled:
@@ -32,19 +33,20 @@
 	nx : number of frames
 */
 
-void LPC_init (LPC me, double tmin, double tmax, long nt, double dt, double t1, int predictionOrder, double samplingPeriod);
+void LPC_init (LPC me, double tmin, double tmax, long nt, double dt, double t1,
+	int predictionOrder, double samplingPeriod);
 
-autoLPC LPC_create (double tmin, double tmax, long nt, double dt, double t1, int predictionOrder, double samplingPeriod);
+LPC LPC_create (double tmin, double tmax, long nt, double dt, double t1,
+	int predictionOrder, double samplingPeriod);
 
-void LPC_drawGain (LPC me, Graphics g, double t1, double t2, double gmin, double gmax, int garnish);
+void LPC_drawGain (LPC me, Graphics g, double t1, double t2,
+	double gmin, double gmax, int garnish);
 
 void LPC_drawPoles (LPC me, Graphics g, double time, int garnish);
 
-autoMatrix LPC_downto_Matrix_lpc (LPC me);
-
-autoMatrix LPC_downto_Matrix_rc (LPC me);
-
-autoMatrix LPC_downto_Matrix_area (LPC me);
+Matrix LPC_downto_Matrix_lpc (LPC me);
+Matrix LPC_downto_Matrix_rc (LPC me);
+Matrix LPC_downto_Matrix_area (LPC me);
 
 /******************* Frames ************************************************/
 
diff --git a/LPC/LPC_and_Cepstrumc.cpp b/LPC/LPC_and_Cepstrumc.cpp
index 54c3f23..2d20588 100644
--- a/LPC/LPC_and_Cepstrumc.cpp
+++ b/LPC/LPC_and_Cepstrumc.cpp
@@ -1,6 +1,6 @@
 /* LPC_and_Cepstrumc.cpp
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@ void LPC_Frame_into_Cepstrumc_Frame (LPC_Frame me, Cepstrumc_Frame thee) {
 
 void Cepstrumc_Frame_into_LPC_Frame (Cepstrumc_Frame me, LPC_Frame thee) {
 	double *c = my c, *a = thy a;
-	thy gain = exp (2.0 * c[0]);
+	thy gain = exp (2 * c[0]);
 	if (thy nCoefficients == 0) {
 		return;
 	}
@@ -66,7 +66,7 @@ void Cepstrumc_Frame_into_LPC_Frame (Cepstrumc_Frame me, LPC_Frame thee) {
 	}
 }
 
-autoCepstrumc LPC_to_Cepstrumc (LPC me) {
+Cepstrumc LPC_to_Cepstrumc (LPC me) {
 	try {
 		autoCepstrumc thee = Cepstrumc_create (my xmin, my xmax, my nx, my dx, my x1,
 		                                       my maxnCoefficients, 1.0 / my samplingPeriod);
@@ -75,13 +75,13 @@ autoCepstrumc LPC_to_Cepstrumc (LPC me) {
 			Cepstrumc_Frame_init (& thy frame[i], my d_frames[i].nCoefficients);
 			LPC_Frame_into_Cepstrumc_Frame (& my d_frames[i], & thy frame[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Cepstrum created.");
 	}
 }
 
-autoLPC Cepstrumc_to_LPC (Cepstrumc me) {
+LPC Cepstrumc_to_LPC (Cepstrumc me) {
 	try {
 		autoLPC thee = LPC_create (my xmin, my xmax, my nx, my dx, my x1,
 		                           my maxnCoefficients, 1.0 / my samplingFrequency);
@@ -89,7 +89,7 @@ autoLPC Cepstrumc_to_LPC (Cepstrumc me) {
 			LPC_Frame_init (& thy d_frames[i], my frame[i].nCoefficients);
 			Cepstrumc_Frame_into_LPC_Frame (& my frame[i], & thy d_frames[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U":no LPC created.");
 	}
diff --git a/LPC/LPC_and_Cepstrumc.h b/LPC/LPC_and_Cepstrumc.h
index 40b55d6..320bd40 100644
--- a/LPC/LPC_and_Cepstrumc.h
+++ b/LPC/LPC_and_Cepstrumc.h
@@ -2,7 +2,7 @@
 #define _LPC_and_Cepstrumc_h_
 /* LPC_and_Cepstrumc.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,9 +28,9 @@
 #include "LPC.h"
 #include "Cepstrumc.h"
 
-autoCepstrumc LPC_to_Cepstrumc (LPC me);
+Cepstrumc LPC_to_Cepstrumc (LPC me);
 
-autoLPC Cepstrumc_to_LPC (Cepstrumc me);
+LPC Cepstrumc_to_LPC (Cepstrumc me);
 
 void LPC_Frame_into_Cepstrumc_Frame (LPC_Frame me, Cepstrumc_Frame thee);
 void Cepstrumc_Frame_into_LPC_Frame (Cepstrumc_Frame me, LPC_Frame thee);
diff --git a/LPC/LPC_and_Formant.cpp b/LPC/LPC_and_Formant.cpp
index 2266f57..e8df254 100644
--- a/LPC/LPC_and_Formant.cpp
+++ b/LPC/LPC_and_Formant.cpp
@@ -1,6 +1,6 @@
 /* LPC_and_Formant.cpp
  *
- * Copyright (C) 1994-2013, 2015-2016 David Weenink
+ * Copyright (C) 1994-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@ void Roots_into_Formant_Frame (Roots me, Formant_Frame thee, double samplingFreq
 		if (my v[i].im < 0) {
 			continue;
 		}
-		double f = fabs (atan2 (my v[i].im, my v[i].re)) * samplingFrequency / 2.0 / NUMpi;
+		double f = fabs (atan2 (my v[i].im, my v[i].re)) * samplingFrequency / 2 / NUMpi;
 		if (f >= fLow && f <= fHigh) {
 			/*b = - log (my v[i].re * my v[i].re + my v[i].im * my v[i].im) * samplingFrequency / 2 / NUMpi;*/
 			double b = - log (dcomplex_abs (my v[i])) * samplingFrequency / NUMpi;
@@ -79,12 +79,12 @@ void LPC_Frame_into_Formant_Frame (LPC_Frame me, Formant_Frame thee, double samp
 	}
 
 	autoPolynomial p = LPC_Frame_to_Polynomial (me);
-	autoRoots r = Polynomial_to_Roots (p.get());
-	Roots_fixIntoUnitCircle (r.get());
-	Roots_into_Formant_Frame (r.get(), thee, 1 / samplingPeriod, margin);
+	autoRoots r = Polynomial_to_Roots (p.peek());
+	Roots_fixIntoUnitCircle (r.peek());
+	Roots_into_Formant_Frame (r.peek(), thee, 1 / samplingPeriod, margin);
 }
 
-autoFormant LPC_to_Formant (LPC me, double margin) {
+Formant LPC_to_Formant (LPC me, double margin) {
 	try {
 		double samplingFrequency = 1.0 / my samplingPeriod;
 		long nmax = my maxnCoefficients, err = 0;
@@ -120,11 +120,11 @@ autoFormant LPC_to_Formant (LPC me, double margin) {
 			}
 		}
 
-		Formant_sort (thee.get());
+		Formant_sort (thee.peek());
 		if (err > 0) {
 			Melder_warning (err, U" formant frames out of ", my nx, U" are suspect.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Formant created.");
 	}
@@ -169,7 +169,7 @@ void Formant_Frame_into_LPC_Frame (Formant_Frame me, LPC_Frame thee, double samp
 	thy gain = my intensity;
 }
 
-autoLPC Formant_to_LPC (Formant me, double samplingPeriod) {
+LPC Formant_to_LPC (Formant me, double samplingPeriod) {
 	try {
 		autoLPC thee = LPC_create (my xmin, my xmax, my nx, my dx, my x1, 2 * my maxnFormants, samplingPeriod);
 
@@ -181,7 +181,7 @@ autoLPC Formant_to_LPC (Formant me, double samplingPeriod) {
 			LPC_Frame_init (lpc, m);
 			Formant_Frame_into_LPC_Frame (f, lpc, samplingPeriod);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC created.");
 	}
diff --git a/LPC/LPC_and_Formant.h b/LPC/LPC_and_Formant.h
index 980a57b..ed5171c 100644
--- a/LPC/LPC_and_Formant.h
+++ b/LPC/LPC_and_Formant.h
@@ -2,7 +2,7 @@
 #define  _LPC_and_Formant_h_
 /* LPC_and_Formant.h
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,11 +28,12 @@
 #include "Polynomial.h"
 #include "Formant.h"
 
-autoFormant LPC_to_Formant (LPC me, double margin);
+Formant LPC_to_Formant (LPC me, double margin);
 
-autoLPC Formant_to_LPC (Formant me, double samplingPeriod);
+LPC Formant_to_LPC (Formant me, double samplingPeriod);
 
-void LPC_Frame_into_Formant_Frame (LPC_Frame me, Formant_Frame thee, double samplingPeriod, double margin);
+void LPC_Frame_into_Formant_Frame (LPC_Frame me, Formant_Frame thee, 
+	double samplingPeriod, double margin);
 
 void Formant_Frame_into_LPC_Frame (Formant_Frame me, LPC_Frame thee, double samplingPeriod);
 
diff --git a/LPC/LPC_and_LFCC.cpp b/LPC/LPC_and_LFCC.cpp
index b102f12..65a1db6 100644
--- a/LPC/LPC_and_LFCC.cpp
+++ b/LPC/LPC_and_LFCC.cpp
@@ -1,6 +1,6 @@
 /* LPC_and_LFCC.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@ void CC_Frame_into_LPC_Frame (CC_Frame me, LPC_Frame thee) {
 	long n = MIN (my numberOfCoefficients, thy nCoefficients);
 	double *c = my c, *a = thy a;
 
-	thy gain = exp (2.0 * my c0);
+	thy gain = exp (2 * my c0);
 
 	if (n < 1) {
 		return;
@@ -72,25 +72,26 @@ void CC_Frame_into_LPC_Frame (CC_Frame me, LPC_Frame thee) {
 	}
 }
 
-autoLFCC LPC_to_LFCC (LPC me, long numberOfCoefficients) {
+LFCC LPC_to_LFCC (LPC me, long numberOfCoefficients) {
 	try {
 		if (numberOfCoefficients < 1) {
 			numberOfCoefficients = my maxnCoefficients;
 		}
 
-		autoLFCC thee = LFCC_create (my xmin, my xmax, my nx, my dx, my x1, numberOfCoefficients, 0, 0.5 / my samplingPeriod);
+		autoLFCC thee = LFCC_create (my xmin, my xmax, my nx, my dx, my x1,
+		                             numberOfCoefficients, 0, 0.5 / my samplingPeriod);
 
 		for (long i = 1; i <= my nx; i++) {
 			CC_Frame_init (& thy frame[i], numberOfCoefficients);
 			LPC_Frame_into_CC_Frame (& my d_frames[i], & thy frame[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LFCC created.");
 	}
 }
 
-autoLPC LFCC_to_LPC (LFCC me, long numberOfCoefficients) {
+LPC LFCC_to_LPC (LFCC me, long numberOfCoefficients) {
 	try {
 		if (numberOfCoefficients < 1) {
 			numberOfCoefficients = my maximumNumberOfCoefficients;
@@ -102,7 +103,7 @@ autoLPC LFCC_to_LPC (LFCC me, long numberOfCoefficients) {
 			LPC_Frame_init (& thy d_frames[i], numberOfCoefficients);
 			CC_Frame_into_LPC_Frame (& my frame[i], & thy d_frames[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC created.");
 	}
@@ -110,4 +111,4 @@ autoLPC LFCC_to_LPC (LFCC me, long numberOfCoefficients) {
 
 #undef MIN
 
-/* End of file LPC_and_LFCC.cpp  */
+/* End of file LPC_and_LFCC.c  */
diff --git a/LPC/LPC_and_LFCC.h b/LPC/LPC_and_LFCC.h
index 508ebe8..1d9ce90 100644
--- a/LPC/LPC_and_LFCC.h
+++ b/LPC/LPC_and_LFCC.h
@@ -2,7 +2,7 @@
 #define _LPC_and_LFCC_h_
 /* LPC_and_LFCC.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,9 +28,9 @@
 #include "LPC.h"
 #include "LFCC.h"
 
-autoLFCC LPC_to_LFCC (LPC me, long numberOfCoefficients);
+LFCC LPC_to_LFCC (LPC me, long numberOfCoefficients);
 
-autoLPC LFCC_to_LPC (LFCC me, long numberOfCoefficients);
+LPC LFCC_to_LPC (LFCC me, long numberOfCoefficients);
 
 void LPC_Frame_into_CC_Frame (LPC_Frame me, CC_Frame thee);
 /*
diff --git a/LPC/LPC_and_Polynomial.cpp b/LPC/LPC_and_Polynomial.cpp
index 784dec9..eb2eade 100644
--- a/LPC/LPC_and_Polynomial.cpp
+++ b/LPC/LPC_and_Polynomial.cpp
@@ -1,6 +1,6 @@
 /* LPC_and_Polynomial.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,17 +23,17 @@
 
 #include "LPC_and_Polynomial.h"
 
-autoPolynomial LPC_Frame_to_Polynomial (LPC_Frame me) {
+Polynomial LPC_Frame_to_Polynomial (LPC_Frame me) {
 	long degree = (long) my nCoefficients;
 	autoPolynomial thee = Polynomial_create (-1, 1, degree);
 	for (long i = 1; i <= degree; i++) {
 		thy coefficients[i] = my a[degree - i + 1];
 	}
 	thy coefficients[degree + 1] = 1;
-	return thee;
+	return thee.transfer();
 }
 
-autoPolynomial LPC_to_Polynomial (LPC me, double time) {
+Polynomial LPC_to_Polynomial (LPC me, double time) {
 	try {
 		long iFrame = Sampled_xToIndex (me, time);
 
@@ -41,7 +41,7 @@ autoPolynomial LPC_to_Polynomial (LPC me, double time) {
 			Melder_throw (U"invalid frame number.");
 		}
 		autoPolynomial thee = LPC_Frame_to_Polynomial (&my d_frames[iFrame]);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U":no Polynomial created.");
 	}
diff --git a/LPC/LPC_and_Polynomial.h b/LPC/LPC_and_Polynomial.h
index f685655..540efaa 100644
--- a/LPC/LPC_and_Polynomial.h
+++ b/LPC/LPC_and_Polynomial.h
@@ -2,7 +2,7 @@
 #define _LPC_and_Polynomial_h_
 /* LPC_and_Polynomial.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,8 +29,8 @@
 #include "LPC.h"
 #include "Polynomial.h"
 
-autoPolynomial LPC_to_Polynomial (LPC me, double t);
+Polynomial LPC_to_Polynomial (LPC me, double t);
 
-autoPolynomial LPC_Frame_to_Polynomial (LPC_Frame me);
+Polynomial LPC_Frame_to_Polynomial (LPC_Frame me);
 
 #endif /* _LPC_and_Polynomial_h_ */
diff --git a/LPC/LPC_and_Tube.cpp b/LPC/LPC_and_Tube.cpp
index 7765309..ccd8fdd 100644
--- a/LPC/LPC_and_Tube.cpp
+++ b/LPC/LPC_and_Tube.cpp
@@ -1,6 +1,6 @@
 /* LPC_and_Tube.cpp
  *
- * Copyright (C) 1993-2012, 2014-2015 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -72,15 +72,15 @@ double VocalTract_and_LPC_Frame_getMatchingLength (VocalTract me, LPC_Frame thee
 	try {
 		// match the average distance between the first two formants in the VocaTract and the LPC spectrum
 		long numberOfFrequencies = 1000;
-		double maximumFrequency = 5000.0;
+		double maximumFrequency = 5000;
 		autoSpectrum vts = VocalTract_to_Spectrum (me, numberOfFrequencies, maximumFrequency, glottalDamping, radiationDamping, internalDamping);
 		double samplingFrequency =  1000.0 * my nx;
 		autoSpectrum lps = Spectrum_create (0.5 * samplingFrequency, numberOfFrequencies);
-		LPC_Frame_into_Spectrum (thee, lps.get(), 0, 50);
-		autoSpectrumTier vtst = Spectrum_to_SpectrumTier_peaks (vts.get());
-		autoSpectrumTier lpst = Spectrum_to_SpectrumTier_peaks (lps.get());
-		double vt_f1 = vtst -> points.at [1] -> number, vt_f2 = vtst -> points.at [2] -> number;
-		double lp_f1 = lpst -> points.at [1] -> number, lp_f2 = lpst -> points.at [2] -> number;
+		LPC_Frame_into_Spectrum (thee, lps.peek(), 0, 50);
+		autoSpectrumTier vtst = Spectrum_to_SpectrumTier_peaks (vts.peek());
+		autoSpectrumTier lpst = Spectrum_to_SpectrumTier_peaks (lps.peek());
+		double vt_f1 = vtst -> point(1) -> number, vt_f2 = vtst -> point(2) -> number;
+		double lp_f1 = lpst -> point(1) -> number, lp_f2 = lpst -> point(2) -> number;
 		double df1 = lp_f1 - vt_f1, df2 =  lp_f2 - vt_f2, df = 0.5 * (df1 + df2);
 		double dl = - df / lp_f2;
 		return my dx * my nx * (1 + dl);
@@ -99,7 +99,7 @@ double LPC_Frame_getVTL_wakita (LPC_Frame me, double samplingPeriod, double refL
 	try {
 		long m = my nCoefficients;
 		double length, dlength = 0.001, wakita_length = NUMundefined;
-		double varMin = 1e308;
+		double varMin = 1e38;
 
 		memset (& lpc_struct, 0, sizeof (lpc_struct));
 		memset (& f_struct, 0, sizeof (f_struct));
@@ -159,14 +159,14 @@ double LPC_Frame_getVTL_wakita (LPC_Frame me, double samplingPeriod, double refL
 
 			// step 6.2 Log(areas)
 
-			double logSum = 0.0;
+			double logSum = 0;
 			for (long i = 1; i <= af -> nSegments; i++) {
 				area[i] = log (area[i]);
 				logSum += area[i];
 			}
 
 			// step 6.3 and 7
-			double var = 0.0;
+			double var = 0;
 			for (long i = 1; i <= af -> nSegments; i++) {
 				double delta = area[i] - logSum / af -> nSegments;
 				var += delta * delta;
@@ -212,7 +212,7 @@ void VocalTract_setLength (VocalTract me, double newLength) {
 	my x1 = 0.5 * my dx;
 }
 
-autoVocalTract LPC_to_VocalTract (LPC me, double time, double glottalDamping, bool radiationDamping, bool internalDamping) {
+VocalTract LPC_to_VocalTract (LPC me, double time, double glottalDamping, bool radiationDamping, bool internalDamping) {
 	try {
 		long iframe = Sampled_xToLowIndex (me, time);   // ppgb: BUG? Is rounding down the correct thing to do? not nearestIndex?
 		if (iframe < 1) {
@@ -223,15 +223,39 @@ autoVocalTract LPC_to_VocalTract (LPC me, double time, double glottalDamping, bo
 		}
 		LPC_Frame lpc = & my d_frames[iframe];
 		autoVocalTract thee = LPC_Frame_to_VocalTract (lpc, 0.17);
-		double length = VocalTract_and_LPC_Frame_getMatchingLength (thee.get(), lpc, glottalDamping, radiationDamping, internalDamping);
-		VocalTract_setLength (thee.get(), length);
-		return thee;
+		double length = VocalTract_and_LPC_Frame_getMatchingLength (thee.peek(), lpc, glottalDamping, radiationDamping, internalDamping);
+		VocalTract_setLength (thee.peek(), length);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no VocalTract created.");
 	}
 }
 
-autoVocalTract LPC_Frame_to_VocalTract (LPC_Frame me, double length) {
+static VocalTract LPC_Frame_to_VocalTract2 (LPC_Frame me, double length) {
+	struct structTube_Frame area_struct = { 0 };
+	Tube_Frame area = & area_struct;
+	try {
+		long m = my nCoefficients;
+
+		Tube_Frame_init (area, m, length);
+		LPC_Frame_into_Tube_Frame_area (me, area);
+
+		autoVocalTract thee = VocalTract_create (m, area -> length / m);
+
+		// area[lips..glottis] (m^2) to VocalTract[glottis..lips] (m^2)
+
+		for (long i = 1; i <= m; i++) {
+			thy z[1][i] = area -> c[m + 1 - i];
+		}
+		area -> destroy ();
+		return thee.transfer();
+	} catch (MelderError) {
+		area -> destroy ();
+		Melder_throw (U"No VocalTract created from LPC_Frame.");
+	}
+}
+
+VocalTract LPC_Frame_to_VocalTract (LPC_Frame me, double length) {
 	try {
 		long m = my nCoefficients;
 		autoNUMvector<double> area (1, m + 1);
@@ -243,13 +267,13 @@ autoVocalTract LPC_Frame_to_VocalTract (LPC_Frame me, double length) {
 		for (long i = 1; i <= m; i++) {
 			thy z[1][i] = area[m + 1 - i];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No VocalTract created from LPC_Frame.");
 	}
 }
 
-autoVocalTract LPC_to_VocalTract (LPC me, double time, double length) {
+VocalTract LPC_to_VocalTract (LPC me, double time, double length) {
 	try {
 		long iframe = Sampled_xToLowIndex (me, time);   // ppgb: BUG? Is rounding down the correct thing to do?
 		if (iframe < 1) {
@@ -260,7 +284,7 @@ autoVocalTract LPC_to_VocalTract (LPC me, double time, double length) {
 		}
 		LPC_Frame lpc = & my d_frames[iframe];
 		autoVocalTract thee = LPC_Frame_to_VocalTract (lpc, length);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no VocalTract created.");
 	}
diff --git a/LPC/LPC_and_Tube.h b/LPC/LPC_and_Tube.h
index 54b3e99..84d3332 100644
--- a/LPC/LPC_and_Tube.h
+++ b/LPC/LPC_and_Tube.h
@@ -2,7 +2,7 @@
 #define _LPC_and_Tube_h_
 /* LPC_and_Tube.h
  *
- * Copyright (C) 1994-2012, 2015 David Weenink
+ * Copyright (C) 1994-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
 void LPC_Frame_into_Tube_Frame_rc (LPC_Frame me, Tube_Frame thee);
 void LPC_Frame_into_Tube_Frame_area (LPC_Frame me, Tube_Frame thee);
 
-autoVocalTract LPC_Frame_to_VocalTract (LPC_Frame me, double length);
+VocalTract LPC_Frame_to_VocalTract (LPC_Frame me, double length);
 
 double LPC_Frame_getVTL_wakita (LPC_Frame me, double samplingPeriod, double refLength);
 double VocalTract_and_LPC_Frame_getMatchingLength (VocalTract me, LPC_Frame thee, double glottalDamping, bool radiationDamping, bool internalDamping);
@@ -40,9 +40,9 @@ int Tube_Frame_into_LPC_Frame_area (Tube_Frame me, LPC_Frame thee);
 
 int Tube_Frame_into_LPC_Frame_rc (Tube_Frame me, LPC_Frame thee);
 
-autoVocalTract LPC_to_VocalTract (LPC me, double time, double length);
+VocalTract LPC_to_VocalTract (LPC me, double time, double length);
 void VocalTract_setLength (VocalTract me, double newLength);
 
-autoVocalTract LPC_to_VocalTract (LPC me, double time, double glottalDamping, bool radiationDamping, bool internalDamping);
+VocalTract LPC_to_VocalTract (LPC me, double time, double glottalDamping, bool radiationDamping, bool internalDamping);
 
 #endif /* _LPC_and_Tube_h_ */
diff --git a/LPC/LPC_to_Spectrogram.cpp b/LPC/LPC_to_Spectrogram.cpp
index 3cb46b4..4e6300a 100644
--- a/LPC/LPC_to_Spectrogram.cpp
+++ b/LPC/LPC_to_Spectrogram.cpp
@@ -1,6 +1,6 @@
 /* LPC_to_Spectrogram.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
 
 #include "LPC_to_Spectrogram.h"
 
-autoSpectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduction, double deEmphasisFrequency) {
+Spectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduction, double deEmphasisFrequency) {
 	try {
 		double samplingFrequency = 1.0 / my samplingPeriod;
 		long nfft = 2;
@@ -36,8 +36,8 @@ autoSpectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduct
 		}
 		double freqStep = samplingFrequency / nfft;
 
-		autoSpectrogram thee = Spectrogram_create (my xmin, my xmax, my nx, my dx, my x1,
-		                                           0.0, samplingFrequency / 2.0, nfft / 2 + 1, freqStep, 0.0);
+		autoSpectrogram thee = (Spectrogram) Spectrogram_create (my xmin, my xmax, my nx, my dx, my x1,
+		                       0, samplingFrequency / 2, nfft / 2 + 1, freqStep, 0);
 
 		for (long i = 1; i <= my nx; i++) {
 			double t = Sampled_indexToX (me, i);
@@ -47,7 +47,7 @@ autoSpectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduct
 				thy z[j][i] =  re * re + im * im;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrogram created.");
 	}
diff --git a/LPC/LPC_to_Spectrogram.h b/LPC/LPC_to_Spectrogram.h
index d7772cd..291f635 100644
--- a/LPC/LPC_to_Spectrogram.h
+++ b/LPC/LPC_to_Spectrogram.h
@@ -2,7 +2,7 @@
 #define _LPC_to_Spectrogram_h_
 /* LPC_to_Spectrogram.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@
 #include "Spectrogram.h"
 #include "LPC_to_Spectrum.h"
 
-autoSpectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduction, double deEmphasisFrequency);
+Spectrogram LPC_to_Spectrogram (LPC me, double dfMin, double bandwidthReduction, double deEmphasisFrequency);
 /* if(dfMin >= 0) df <= dfMin else df = NyquistFrequency / 512 */
 
 #endif /* _LPC_and_Spectrogram_h_ */
diff --git a/LPC/LPC_to_Spectrum.cpp b/LPC/LPC_to_Spectrum.cpp
index a8f752e..28f386c 100644
--- a/LPC/LPC_to_Spectrum.cpp
+++ b/LPC/LPC_to_Spectrum.cpp
@@ -1,6 +1,6 @@
 /* LPC_to_Spectrum.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@ void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduc
                               double deEmphasisFrequency) {
 	if (my nCoefficients == 0) {
 		for (long i = 1; i <= thy nx; i++) {
-			thy z[1][i] = thy z[2][i] = 0.0;
+			thy z[1][i] = thy z[2][i] = 0;
 		}
 		return;
 	}
@@ -46,7 +46,7 @@ void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduc
 	// When deEmphasisFrequency is effective we need 1 extra position in the fftbuffer.
 
 	long nfft = 2 * (thy nx - 1), ndata = my nCoefficients + 1;
-	double scale = 1.0 / sqrt (2.0 * thy xmax * thy dx);
+	double scale = 1.0 / sqrt (2 * thy xmax * thy dx);
 	if (ndata >= nfft - 1 && (deEmphasisFrequency < thy xmax || ndata > nfft)) {
 		Melder_throw (U"Spectrum size not large enough.");
 	}
@@ -87,11 +87,11 @@ void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduc
 	*/
 
 	NUMforwardRealFastFourierTransform (fftbuffer.peek(), nfft);
-	if (my gain > 0.0) {
+	if (my gain > 0) {
 		scale *= sqrt (my gain);
 	}
 	thy z[1][1] = scale / fftbuffer[1];
-	thy z[2][1] = 0.0;
+	thy z[2][1] = 0;
 	for (long i = 2; i <= nfft / 2; i++) {
 		// We use: 1 / (a + ib) = (a - ib) / (a^2 + b^2)
 
@@ -101,10 +101,10 @@ void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduc
 		thy z[2][i] = -im * invSquared;
 	}
 	thy z[1][thy nx] = scale / fftbuffer[2];
-	thy z[2][thy nx] = 0.0;
+	thy z[2][thy nx] = 0;
 }
 
-autoSpectrum LPC_to_Spectrum (LPC me, double t, double dfMin, double bandwidthReduction, double deEmphasisFrequency) {
+Spectrum LPC_to_Spectrum (LPC me, double t, double dfMin, double bandwidthReduction, double deEmphasisFrequency) {
 	try {
 		double samplingFrequency = 1.0 / my samplingPeriod;
 		long nfft = 2, index = Sampled_xToNearestIndex (me, t);
@@ -121,9 +121,9 @@ autoSpectrum LPC_to_Spectrum (LPC me, double t, double dfMin, double bandwidthRe
 		while (samplingFrequency / nfft > dfMin || nfft <= my d_frames[index].nCoefficients) {
 			nfft *= 2;
 		}
-		autoSpectrum thee = Spectrum_create (samplingFrequency / 2.0, nfft / 2 + 1);
-		LPC_Frame_into_Spectrum (& my d_frames[index], thee.get(), bandwidthReduction, deEmphasisFrequency);
-		return thee;
+		autoSpectrum thee = Spectrum_create (samplingFrequency / 2, nfft / 2 + 1);
+		LPC_Frame_into_Spectrum (& my d_frames[index], thee.peek(), bandwidthReduction, deEmphasisFrequency);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum created.");
 	}
diff --git a/LPC/LPC_to_Spectrum.h b/LPC/LPC_to_Spectrum.h
index 7a11ef1..44be603 100644
--- a/LPC/LPC_to_Spectrum.h
+++ b/LPC/LPC_to_Spectrum.h
@@ -2,7 +2,7 @@
 #define _LPC_to_Spectrum_h_
 /* LPC_to_Spectrum.h
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,11 +28,13 @@
 #include "LPC.h"
 #include "Spectrum.h"
 
-void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduction, double deEmphasisFrequency);
+void LPC_Frame_into_Spectrum (LPC_Frame me, Spectrum thee, double bandwidthReduction,
+	double deEmphasisFrequency);
 	
-autoSpectrum LPC_to_Spectrum (LPC me, double t, double dfMin, double bandwidthReduction, double deEmphasisFrequency);
+Spectrum LPC_to_Spectrum (LPC me, double t, double dfMin, double bandwidthReduction,
+	double deEmphasisFrequency);
 	
-autoSpectrum LPC_to_Spectrum2 (LPC me, double t, double dfMin, double bandwidthReduction);
+Spectrum LPC_to_Spectrum2 (LPC me, double t, double dfMin, double bandwidthReduction);
 /* if(dfMin >= 0) df <= dfMin else df = NyquistFrequency / 512 */
 /* integration radius r = exp (- pi * bandwidthReduction / samplingFrequency) */
 
diff --git a/LPC/Sound_and_Cepstrum.cpp b/LPC/Sound_and_Cepstrum.cpp
index d1b66a9..5619d94 100644
--- a/LPC/Sound_and_Cepstrum.cpp
+++ b/LPC/Sound_and_Cepstrum.cpp
@@ -1,6 +1,6 @@
 /* Sound_and_Cepstrum.cpp
  *
- * Copyright (C) 1994-2011,2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
 	without Phase Unwrapping or Integration, IEEE Trans. on ASSP 33,
 	1014-1017 (Does not work yet).
 */
-autoCepstrum Sound_to_Cepstrum_bw (Sound me) {
+Cepstrum Sound_to_Cepstrum_bw (Sound me) {
 	try {
 		long nfft = 2;
 		while (nfft < my nx) {
@@ -62,13 +62,13 @@ autoCepstrum Sound_to_Cepstrum_bw (Sound me) {
 		// Compute Avg (ln |X(f)|) as Avg (ln |X(f)|^2) / 2.
 		// Treat i=1 separately: x[1] * nx[1] / |x[1]|^2
 
-		double lnxa = 0.0;
-		if (x[1] != 0.0) {
-			lnxa = 2.0 * log (fabs (x[1]));
+		double lnxa = 0;
+		if (x[1] != 0) {
+			lnxa = 2 * log (fabs (x[1]));
 			x[1] = nx[1] / x[1];
 		}
-		if (x[2] != 0.0) {
-			lnxa = 2.0 * log (fabs (x[2]));
+		if (x[2] != 0) {
+			lnxa = 2 * log (fabs (x[2]));
 			x[2] = nx[2] / x[2];
 		}
 
@@ -76,16 +76,16 @@ autoCepstrum Sound_to_Cepstrum_bw (Sound me) {
 			double xr = x[i], nxr = nx[i];
 			double xi = x[i + 1], nxi = nx[i + 1];
 			double xa = xr * xr + xi * xi;
-			if (xa > 0.0) {
+			if (xa > 0) {
 				x[i]   = (xr * nxr + xi * nxi) / xa;
 				x[i + 1] = (xr * nxi - xi * nxr) / xa;
 				lnxa += log (xa);
 			} else {
-				x[i] = x[i + 1] = 0.0;
+				x[i] = x[i + 1] = 0;
 			}
 		}
 
-		lnxa /= 2.0 * nfft / 2.0; // TODO
+		lnxa /= 2 * nfft / 2;
 
 		// Step 4: Inverse transform of complex array x
 		//	results in: n * xhat (n)
@@ -102,7 +102,7 @@ autoCepstrum Sound_to_Cepstrum_bw (Sound me) {
 		// Step 6: xhat[0] = Avg (ln |X(f)|)
 
 		thy z[1][1] = lnxa;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Cepstrum created.");
 	}
@@ -110,21 +110,21 @@ autoCepstrum Sound_to_Cepstrum_bw (Sound me) {
 
 /* Zijn nog niet elkaars inverse!!!!*/
 
-autoCepstrum Sound_to_Cepstrum (Sound me) {
+Cepstrum Sound_to_Cepstrum (Sound me) {
 	try {
-		autoSpectrum spectrum = Sound_to_Spectrum (me, true);
-		autoCepstrum thee = Spectrum_to_Cepstrum (spectrum.get());
-		return thee;
+		autoSpectrum spectrum = Sound_to_Spectrum (me, TRUE);
+		autoCepstrum thee = Spectrum_to_Cepstrum (spectrum.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Cepstrum calculated.");
 	}
 }
 
-autoSound Cepstrum_to_Sound (Cepstrum me) {
+Sound Cepstrum_to_Sound (Cepstrum me) {
 	try {
 		autoSpectrum sx = Cepstrum_to_Spectrum (me);
-		autoSound thee = Spectrum_to_Sound (sx.get());
-		return thee;
+		autoSound thee = Spectrum_to_Sound (sx.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound calculated.");
 	}
diff --git a/LPC/Sound_and_Cepstrum.h b/LPC/Sound_and_Cepstrum.h
index a4d040e..60f6a22 100644
--- a/LPC/Sound_and_Cepstrum.h
+++ b/LPC/Sound_and_Cepstrum.h
@@ -2,7 +2,7 @@
 #define _Sound_and_Cepstrum_h_
 /* Sound_and_Cepstrum.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,10 +27,10 @@
 #include "Sound.h"
 #include "Cepstrum.h"
 
-autoCepstrum Sound_to_Cepstrum (Sound me);
+Cepstrum Sound_to_Cepstrum (Sound me);
 
-autoCepstrum Sound_to_Cepstrum_bw (Sound me);
+Cepstrum Sound_to_Cepstrum_bw (Sound me);
 
-autoSound Cepstrum_to_Sound (Cepstrum me);
+Sound Cepstrum_to_Sound (Cepstrum me);
 
 #endif /* _Sound_and_Cepstrum_h_ */
diff --git a/LPC/Sound_and_LPC.cpp b/LPC/Sound_and_LPC.cpp
index ef9486d..4718e4d 100644
--- a/LPC/Sound_and_LPC.cpp
+++ b/LPC/Sound_and_LPC.cpp
@@ -1,6 +1,6 @@
 /* Sound_and_LPC.cpp
  *
- * Copyright (C) 1994-2013, 2015-2016 David Weenink
+ * Copyright (C) 1994-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -86,13 +86,13 @@ static int Sound_into_LPC_Frame_auto (Sound me, LPC_Frame thee) {
 			r[i] += x[j] * x[j + i - 1];
 		}
 	}
-	if (r[1] == 0.0) {
+	if (r[1] == 0) {
 		i = 1; /* ! */ goto end;
 	}
 	a[1] = 1; a[2] = rc[1] = - r[2] / r[1];
 	thy gain = r[1] + r[2] * rc[1];
 	for (i = 2; i <= m; i++) {
-		double s = 0.0;
+		double s = 0;
 		for (long j = 1; j <= i; j++) {
 			s += r[i - j + 2] * a[j];
 		}
@@ -117,7 +117,7 @@ end:
 	}
 	thy nCoefficients = i;
 	for (long j = i + 1; j <= m; j++) {
-		thy a[j] = 0.0;
+		thy a[j] = 0;
 	}
 	return 0; // Melder_warning ("Less coefficienst than asked for.");
 }
@@ -141,38 +141,38 @@ static int Sound_into_LPC_Frame_covar (Sound me, LPC_Frame thee) {
 	autoNUMvector<double> beta (1, m);
 	autoNUMvector<double> cc (1, m + 1);
 
-	thy gain = 0.0;
+	thy gain = 0;
 	for (i = m + 1; i <= n; i++) {
 		thy gain += x[i] * x[i];
 		cc[1] += x[i] * x[i - 1];
 		cc[2] += x[i - 1] * x[i - 1];
 	}
 
-	if (thy gain == 0.0) {
+	if (thy gain == 0) {
 		i = 1; /* ! */ goto end;
 	}
 
-	b[1] = 1.0;
+	b[1] = 1;
 	beta[1] = cc[2];
-	a[1] = 1.0;
+	a[1] = 1;
 	a[2] = grc[1] = -cc[1] / cc[2];
 	thy gain += grc[1] * cc[1];
 
 	for (i = 2; i <= m; i++) { /*130*/
-		double s = 0.0; /* 20 */
+		double s = 0; /* 20 */
 		for (long j = 1; j <= i; j++) {
 			cc[i - j + 2] = cc[i - j + 1] + x[m - i + 1] * x[m - i + j] - x[n - i + 1] * x[n - i + j];
 		}
-		cc[1] = 0.0;
+		cc[1] = 0;
 		for (long j = m + 1; j <= n; j++) {
 			cc[1] += x[j - i] * x[j]; /* 30 */
 		}
-		b[i * (i + 1) / 2] = 1.0;
+		b[i * (i + 1) / 2] = 1;
 		for (long j = 1; j <= i - 1; j++) { /* 70 */
-			double gam = 0.0;
-			if (beta[j] < 0.0) {
+			double gam = 0;
+			if (beta[j] < 0) {
 				goto end;
-			} else if (beta[j] == 0.0) {
+			} else if (beta[j] == 0) {
 				continue;
 			}
 			for (long k = 1; k <= j; k++) {
@@ -184,11 +184,11 @@ static int Sound_into_LPC_Frame_covar (Sound me, LPC_Frame thee) {
 			}
 		}
 
-		beta[i] = 0.0;
+		beta[i] = 0;
 		for (long j = 1; j <= i; j++) {
 			beta[i] += cc[j + 1] * b[i * (i - 1) / 2 + j]; /*80*/
 		}
-		if (beta[i] <= 0.0) {
+		if (beta[i] <= 0) {
 			goto end;
 		}
 
@@ -203,7 +203,7 @@ static int Sound_into_LPC_Frame_covar (Sound me, LPC_Frame thee) {
 		a[i + 1] = grc[i];
 		s = grc[i] * grc[i] * beta[i];
 		thy gain -= s;
-		if (thy gain <= 0.0) {
+		if (thy gain <= 0) {
 			goto end;
 		}
 	}
@@ -219,7 +219,7 @@ end:
 
 	thy nCoefficients = i;
 	for (long j = i + 1; j <= m; j++) {
-		thy a[j] = 0.0;
+		thy a[j] = 0;
 	}
 	return 0; // Melder_warning ("Less coefficienst than asked for.");
 }
@@ -241,12 +241,12 @@ static int Sound_into_LPC_Frame_marple (Sound me, LPC_Frame thee, double tol1, d
 	autoNUMvector<double> c (1, mmax + 1);
 	autoNUMvector<double> d (1, mmax + 1);
 	autoNUMvector<double> r (1, mmax + 1);
-	double e0 = 0.0;
+	double e0 = 0;
 	for (long k = 1; k <= n; k++) {
 		e0 += x[k] * x[k];
 	}
-	e0 *= 2.0;
-	if (e0 == 0.0) {
+	e0 *= 2;
+	if (e0 == 0) {
 		m = 0; thy gain *= 0.5; /* because e0 is twice the energy */
 		thy nCoefficients = m; return 0; // warning no signal
 	}
@@ -290,7 +290,7 @@ static int Sound_into_LPC_Frame_marple (Sound me, LPC_Frame thee, double tol1, d
 		double y5 = 2.0 * h * s;
 		q += y1 * q1 + q4 * (y2 * q6 + q7 * q5 + v * y5);
 		w += y3 * q1 + q4 * (y4 * q5 + q7 * q6 + u * y5);
-		h = s = u = v = 0.0;
+		h = s = u = v = 0;
 		for (long k = 0; k <= m; k++) {
 			h += x[n - m + k] * c[k + 1];
 			s += x[n - k] * c[k + 1];
@@ -300,7 +300,7 @@ static int Sound_into_LPC_Frame_marple (Sound me, LPC_Frame thee, double tol1, d
 		q5 = 1.0 - q;
 		q6 = 1.0 - w;
 		den = q5 * q6 - h * h;
-		if (den <= 0.0) {
+		if (den <= 0) {
 			status = 2; goto end; /* 2: ill-conditioning */
 		}
 		q4 = 1.0 / den;
@@ -369,7 +369,8 @@ end:
 	return status == 1 || status == 4 || status == 5;
 }
 
-static autoLPC _Sound_to_LPC (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency, int method, double tol1, double tol2) {
+static LPC _Sound_to_LPC (Sound me, int predictionOrder, double analysisWidth, double dt,
+                          double preEmphasisFrequency, int method, double tol1, double tol2) {
 	double t1, samplingFrequency = 1.0 / my dx;
 	double windowDuration = 2 * analysisWidth; /* gaussian window */
 	long nFrames, frameErrorCount = 0;
@@ -390,30 +391,30 @@ static autoLPC _Sound_to_LPC (Sound me, int predictionOrder, double analysisWidt
 	autoMelderProgress progress (U"LPC analysis");
 
 	if (preEmphasisFrequency < samplingFrequency / 2) {
-		Sound_preEmphasis (sound.get(), preEmphasisFrequency);
+		Sound_preEmphasis (sound.peek(), preEmphasisFrequency);
 	}
 
 	for (long i = 1; i <= nFrames; i++) {
 		LPC_Frame lpcframe = (LPC_Frame) & thy d_frames[i];
-		double t = Sampled_indexToX (thee.get(), i);
+		double t = Sampled_indexToX (thee.peek(), i);
 		LPC_Frame_init (lpcframe, predictionOrder);
-		Sound_into_Sound (sound.get(), sframe.get(), t - windowDuration / 2);
-		Vector_subtractMean (sframe.get());
-		Sounds_multiply (sframe.get(), window.get());
+		Sound_into_Sound (sound.peek(), sframe.peek(), t - windowDuration / 2);
+		Vector_subtractMean (sframe.peek());
+		Sounds_multiply (sframe.peek(), window.peek());
 		if (method == LPC_METHOD_AUTO) {
-			if (! Sound_into_LPC_Frame_auto (sframe.get(), lpcframe)) {
+			if (! Sound_into_LPC_Frame_auto (sframe.peek(), lpcframe)) {
 				frameErrorCount++;
 			}
 		} else if (method == LPC_METHOD_COVAR) {
-			if (! Sound_into_LPC_Frame_covar (sframe.get(), lpcframe)) {
+			if (! Sound_into_LPC_Frame_covar (sframe.peek(), lpcframe)) {
 				frameErrorCount++;
 			}
 		} else if (method == LPC_METHOD_BURG) {
-			if (! Sound_into_LPC_Frame_burg (sframe.get(), lpcframe)) {
+			if (! Sound_into_LPC_Frame_burg (sframe.peek(), lpcframe)) {
 				frameErrorCount++;
 			}
 		} else if (method == LPC_METHOD_MARPLE) {
-			if (! Sound_into_LPC_Frame_marple (sframe.get(), lpcframe, tol1, tol2)) {
+			if (! Sound_into_LPC_Frame_marple (sframe.peek(), lpcframe, tol1, tol2)) {
 				frameErrorCount++;
 			}
 		}
@@ -422,46 +423,50 @@ static autoLPC _Sound_to_LPC (Sound me, int predictionOrder, double analysisWidt
 			                   i, U" out of ", nFrames, U".");
 		}
 	}
-	return thee;
+	return thee.transfer();
 }
 
-autoLPC Sound_to_LPC_auto (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency) {
+LPC Sound_to_LPC_auto (Sound me, int predictionOrder, double analysisWidth, double dt,
+                       double preEmphasisFrequency) {
 	try {
 		autoLPC thee = _Sound_to_LPC (me, predictionOrder, analysisWidth, dt, preEmphasisFrequency, LPC_METHOD_AUTO, 0, 0);
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC (auto) created.");
 	}
 }
 
-autoLPC Sound_to_LPC_covar (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency) {
+LPC Sound_to_LPC_covar (Sound me, int predictionOrder, double analysisWidth, double dt,
+                        double preEmphasisFrequency) {
 	try {
 		autoLPC thee = _Sound_to_LPC (me, predictionOrder, analysisWidth, dt, preEmphasisFrequency, LPC_METHOD_COVAR, 0, 0);
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC (covar) created.");
 	}
 }
 
-autoLPC Sound_to_LPC_burg (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency) {
+LPC Sound_to_LPC_burg (Sound me, int predictionOrder, double analysisWidth, double dt,
+                       double preEmphasisFrequency) {
 	try {
 		autoLPC thee = _Sound_to_LPC (me, predictionOrder, analysisWidth, dt, preEmphasisFrequency, LPC_METHOD_BURG, 0, 0);
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC (burg) created.");
 	}
 }
 
-autoLPC Sound_to_LPC_marple (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency, double tol1, double tol2) {
+LPC Sound_to_LPC_marple (Sound me, int predictionOrder, double analysisWidth, double dt,
+                         double preEmphasisFrequency, double tol1, double tol2) {
 	try {
 		autoLPC thee = _Sound_to_LPC (me, predictionOrder, analysisWidth, dt, preEmphasisFrequency, LPC_METHOD_MARPLE, tol1, tol2);
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LPC (marple) created.");
 	}
 }
 
-autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee) {
+Sound LPC_and_Sound_filterInverse (LPC me, Sound thee) {
 	try {
 		if (my samplingPeriod != thy dx) {
 			Melder_throw (U"Sampling frequencies are not the same.");
@@ -477,7 +482,7 @@ autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee) {
 			long iFrame = lround ( (t - my x1) / my dx + 1.0); /* Sampled_xToNearestIndex (me, t) */
 			double *a;
 			if (iFrame < 1 || iFrame > my nx) {
-				e[i] = 0.0;
+				e[i] = 0;
 				continue;
 			}
 			a = my d_frames[iFrame].a;
@@ -486,7 +491,7 @@ autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee) {
 				e[i] += a[j] * x[i - j];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (thee, U": not inverse filtered.");
 	}
@@ -496,7 +501,7 @@ autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee) {
 	gain used as a constant amplitude multiplyer within a frame of duration my dx.
 	future alternative: convolve gain with a  smoother.
 */
-autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain) {
+Sound LPC_and_Sound_filter (LPC me, Sound thee, int useGain) {
 	try {
 		double xmin = my xmin > thy xmin ? my xmin : thy xmin;
 		double xmax = my xmax < thy xmax ? my xmax : thy xmax;
@@ -505,10 +510,10 @@ autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain) {
 				my xmin, U",", my xmax, U"] do not overlap.");
 		}
 		// resample sound if samplings don't match
-		autoSound source;
+		autoSound source = 0;
 		if (my samplingPeriod != thy dx) {
-			source = Sound_resample (thee, 1.0 / my samplingPeriod, 50);
-			thee = source.get();   // reference copy; remove at end
+			source.reset (Sound_resample (thee, 1.0 / my samplingPeriod, 50));
+			thee = source.peek();   // reference copy; remove at end
 		}
 
 		autoSound him = Data_copy (thee);
@@ -535,11 +540,11 @@ autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain) {
 		// Make samples before first frame and after last frame zero.
 
 		for (long i = 1; i < ifirst; i++) {
-			x[i] = 0.0;
+			x[i] = 0;
 		}
 
 		for (long i = ilast + 1; i <= his nx; i++) {
-			x[i] = 0.0;
+			x[i] = 0;
 		}
 		if (useGain) {
 			for (long i = ifirst; i <= ilast; i++) {
@@ -548,16 +553,16 @@ autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain) {
 				long iFrame = (long) floor (riFrame);
 				double phase = riFrame - iFrame;
 				if (iFrame < 0 || iFrame > my nx) {
-					x[i] = 0.0;
+					x[i] = 0;
 				} else if (iFrame == 0) {
 					x[i] *= sqrt (my d_frames[1].gain) * phase;
 				} else if (iFrame == my nx) {
-					x[i] *= sqrt (my d_frames[my nx].gain) * (1.0 - phase);
+					x[i] *= sqrt (my d_frames[my nx].gain) * (1 - phase);
 				} else x[i] *=
-					    phase * sqrt (my d_frames[iFrame + 1].gain) + (1.0 - phase) * sqrt (my d_frames[iFrame].gain);
+					    phase * sqrt (my d_frames[iFrame + 1].gain) + (1 - phase) * sqrt (my d_frames[iFrame].gain);
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (thee, U": not filtered.");
 	}
@@ -586,11 +591,11 @@ void LPC_and_Sound_filterWithFilterAtTime_inline (LPC me, Sound thee, int channe
 	}
 }
 
-autoSound LPC_and_Sound_filterWithFilterAtTime (LPC me, Sound thee, int channel, double time) {
+Sound LPC_and_Sound_filterWithFilterAtTime (LPC me, Sound thee, int channel, double time) {
 	try {
 		autoSound him = Data_copy (thee);
-		LPC_and_Sound_filterWithFilterAtTime_inline (me, him.get(), channel, time);
-		return him;
+		LPC_and_Sound_filterWithFilterAtTime_inline (me, him.peek(), channel, time);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (thee, U": not filtered.");
 	}
@@ -620,11 +625,11 @@ void LPC_and_Sound_filterInverseWithFilterAtTime_inline (LPC me, Sound thee, int
 	}
 }
 
-autoSound LPC_and_Sound_filterInverseWithFilterAtTime (LPC me, Sound thee, int channel, double time) {
+Sound LPC_and_Sound_filterInverseWithFilterAtTime (LPC me, Sound thee, int channel, double time) {
 	try {
 		autoSound him = Data_copy (thee);
-		LPC_and_Sound_filterInverseWithFilterAtTime_inline (me, him.get(), channel, time);
-		return him;
+		LPC_and_Sound_filterInverseWithFilterAtTime_inline (me, him.peek(), channel, time);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (thee, U": not inverse filtered.");
 	}
diff --git a/LPC/Sound_and_LPC.h b/LPC/Sound_and_LPC.h
index 1af6377..fbcad33 100644
--- a/LPC/Sound_and_LPC.h
+++ b/LPC/Sound_and_LPC.h
@@ -2,7 +2,7 @@
 #define _Sound_and_LPC_h_
 /* Sound_and_LPC.h
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,13 +29,17 @@
 #include "LPC.h"
 #include "Sound.h"
 
-autoLPC Sound_to_LPC_auto (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency);
+LPC Sound_to_LPC_auto (Sound me, int predictionOrder, double analysisWidth, double dt,
+	double preEmphasisFrequency);
 
-autoLPC Sound_to_LPC_covar (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency);
+LPC Sound_to_LPC_covar (Sound me, int predictionOrder, double analysisWidth, double dt,
+	double preEmphasisFrequency);
 
-autoLPC Sound_to_LPC_burg (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency);
+LPC Sound_to_LPC_burg (Sound me, int predictionOrder, double analysisWidth, double dt,
+	double preEmphasisFrequency);
 
-autoLPC Sound_to_LPC_marple (Sound me, int predictionOrder, double analysisWidth, double dt, double preEmphasisFrequency, double tol1, double tol2);
+LPC Sound_to_LPC_marple (Sound me, int predictionOrder, double analysisWidth, double dt,
+	double preEmphasisFrequency, double tol1, double tol2);
 
 /*
  * Function:
@@ -67,8 +71,7 @@ autoLPC Sound_to_LPC_marple (Sound me, int predictionOrder, double analysisWidth
  */
 
 void LPC_Frame_and_Sound_filterInverse (LPC_Frame me, Sound thee, int channel);
-
-autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain);
+Sound LPC_and_Sound_filter (LPC me, Sound thee, int useGain);
 /*
 	E(z) = X(z)A(z),
 	A(z) = 1 + Sum (k=1, k=m, a(k)z^-k);
@@ -80,10 +83,9 @@ autoSound LPC_and_Sound_filter (LPC me, Sound thee, int useGain);
 */
 
 void LPC_and_Sound_filterWithFilterAtTime_inline (LPC me, Sound thee, int channel, double time);
+Sound LPC_and_Sound_filterWithFilterAtTime (LPC me, Sound thee, int channel, double time);
 
-autoSound LPC_and_Sound_filterWithFilterAtTime (LPC me, Sound thee, int channel, double time);
-
-autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee);
+Sound LPC_and_Sound_filterInverse (LPC me, Sound thee);
 /*
 	E(z) = X(z)A(z),
 	A(z) = 1 + Sum (k=1, k=m, a(k)z^-k);
@@ -93,8 +95,7 @@ autoSound LPC_and_Sound_filterInverse (LPC me, Sound thee);
 		e(n) = x(n) + Sum (k=1, m, a(k)x(n-k))
 */
 
-autoSound LPC_and_Sound_filterInverseWithFilterAtTime (LPC me, Sound thee, int channel, double time);
-
+Sound LPC_and_Sound_filterInverseWithFilterAtTime (LPC me, Sound thee, int channel, double time);
 void LPC_and_Sound_filterInverseWithFilterAtTime_inline (LPC me, Sound thee, int channel, double time);
 
 #endif /* _Sound_and_LPC_h_ */
diff --git a/LPC/Sound_and_LPC_robust.cpp b/LPC/Sound_and_LPC_robust.cpp
index 6990d7c..12db555 100644
--- a/LPC/Sound_and_LPC_robust.cpp
+++ b/LPC/Sound_and_LPC_robust.cpp
@@ -1,6 +1,6 @@
 /* Sound_and_LPC_robust.cpp
  *
- * Copyright (C) 1994-2013, 2015-2016 David Weenink
+ * Copyright (C) 1994-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
 #include "NUM2.h"
 
 struct huber_struct {
-	autoSound e;
+	Sound e;
 	double k, tol, tol_svd;
 	long iter, itermax;
 	int wantlocation, wantscale;
@@ -45,13 +45,13 @@ struct huber_struct {
 	double *w, *work;
 	double *a;
 	double **covar, *c;
-	autoSVD svd;
+	SVD svd;
 };
 
-static void huber_struct_init (struct huber_struct *hs, double windowDuration, long p, double samplingFrequency, double location, int wantlocation) {
-	hs -> w = hs -> work = hs -> a = hs -> c = nullptr;
-	hs -> covar = nullptr;
-	hs -> svd = autoSVD();
+static void huber_struct_init (struct huber_struct *hs, double windowDuration,
+                               long p, double samplingFrequency, double location, int wantlocation) {
+	hs -> w = hs -> work = hs -> a = hs -> c = 0;
+	hs -> covar = 0; hs -> svd = 0;
 	hs -> e = Sound_createSimple (1, windowDuration, samplingFrequency);
 	long n = hs -> e -> nx;
 	hs -> n = n;
@@ -70,8 +70,8 @@ static void huber_struct_init (struct huber_struct *hs, double windowDuration, l
 }
 
 static void huber_struct_destroy (struct huber_struct *hs) {
-	hs -> e.reset();
-	hs -> svd.reset();
+	forget (hs -> e);
+	forget (hs -> svd);
 	NUMvector_free<double> (hs -> w, 1);
 	NUMvector_free<double> (hs -> work, 1);
 	NUMvector_free<double> (hs -> a, 1);
@@ -85,7 +85,7 @@ static void huber_struct_getWeights (struct huber_struct *hs, double *e) {
 
 	for (long i = 1 ; i <= hs -> n; i++) {
 		double ei = e[i] - hs -> location;
-		w[i] = ei > -ks && ei < ks ? 1.0 : ks / fabs (ei);
+		w[i] = ei > -ks && ei < ks ? 1 : ks / fabs (ei);
 	}
 }
 
@@ -111,7 +111,7 @@ static void huber_struct_getWeightedCovars (struct huber_struct *hs, double *s)
 }
 
 static void huber_struct_solvelpc (struct huber_struct *hs) {
-	SVD me = hs -> svd.get();
+	SVD me = hs -> svd;
 	double **covar = hs -> covar;
 
 	for (long i = 1; i <= my numberOfRows; i++) {
@@ -134,12 +134,12 @@ void LPC_Frames_and_Sound_huber (LPC_Frame me, Sound thee, LPC_Frame him, struct
 	double *e = hs -> e -> z[1], *s = thy z[1];
 
 	hs -> iter = 0;
-	hs -> scale = 1e308;
+	hs -> scale = 1e38;
 	hs -> p = p;
 
 	double s0;
 	do {
-		Sound hse = hs -> e.get();
+		Sound hse = hs -> e;
 		for (long i = 1; i <= thy nx; i++) {
 			hse -> z[1][i] = thy z[1][i];
 		}
@@ -147,7 +147,8 @@ void LPC_Frames_and_Sound_huber (LPC_Frame me, Sound thee, LPC_Frame him, struct
 
 		s0 = hs -> scale;
 
-		NUMstatistics_huber (e, n, & (hs -> location), hs -> wantlocation, & (hs -> scale), hs -> wantscale, hs -> k, hs -> tol, hs -> work);
+		NUMstatistics_huber (e, n, & (hs -> location), hs -> wantlocation, & (hs -> scale), hs -> wantscale,
+		                     hs -> k, hs -> tol, hs -> work);
 
 		huber_struct_getWeights (hs, e);
 		huber_struct_getWeightedCovars (hs, s);
@@ -170,22 +171,10 @@ void LPC_Frames_and_Sound_huber (LPC_Frame me, Sound thee, LPC_Frame him, struct
 	} while ( (hs -> iter < hs -> itermax) && (fabs (s0 - hs -> scale) > hs -> tol * s0));
 }
 
-#if 0
-	autoSound e;
-	double k, tol, tol_svd;
-	long iter, itermax;
-	int wantlocation, wantscale;
-	double location, scale;
-	long n, p;
-	double *w, *work;
-	double *a;
-	double **covar, *c;
-	autoSVD svd;
-#endif
-	
-autoLPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth, double preEmphasisFrequency, double k,
+
+LPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth, double preEmphasisFrequency, double k,
 	int itermax, double tol, int wantlocation) {
-	struct huber_struct struct_huber { autoSound(), 0.0, 0.0, 0.0, 0, 0, 0, 0, 0.0, 0.0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, autoSVD() };
+	struct huber_struct struct_huber = { 0 };
 	try {
 		double t1, samplingFrequency = 1.0 / my dx, tol_svd = 0.000001;
 		double location = 0, windowDuration = 2 * analysisWidth; /* Gaussian window */
@@ -219,19 +208,19 @@ autoLPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth, d
 
 		autoMelderProgress progess (U"LPC analysis");
 
-		Sound_preEmphasis (sound.get(), preEmphasisFrequency);
+		Sound_preEmphasis (sound.peek(), preEmphasisFrequency);
 
 		for (long i = 1; i <= nFrames; i++) {
 			LPC_Frame lpc = (LPC_Frame) & thy d_frames[i];
 			LPC_Frame lpcto = (LPC_Frame) & his d_frames[i];
 			double t = Sampled_indexToX (thee, i);
 
-			Sound_into_Sound (sound.get(), sframe.get(), t - windowDuration / 2);
-			Vector_subtractMean (sframe.get());
-			Sounds_multiply (sframe.get(), window.get());
+			Sound_into_Sound (sound.peek(), sframe.peek(), t - windowDuration / 2);
+			Vector_subtractMean (sframe.peek());
+			Sounds_multiply (sframe.peek(), window.peek());
 
 			try {
-				LPC_Frames_and_Sound_huber (lpc, sframe.get(), lpcto, & struct_huber);
+				LPC_Frames_and_Sound_huber (lpc, sframe.peek(), lpcto, & struct_huber);
 			} catch (MelderError) {
 				frameErrorCount++;
 			}
@@ -239,7 +228,8 @@ autoLPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth, d
 			iter += struct_huber.iter;
 
 			if ( (i % 10) == 1) {
-				Melder_progress ( (double) i / nFrames, U"LPC analysis of frame ", i, U" out of ", nFrames, U".");
+				Melder_progress ( (double) i / nFrames, U"LPC analysis of frame ",
+				                   i, U" out of ", nFrames, U".");
 			}
 		}
 
@@ -248,31 +238,31 @@ autoLPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth, d
 		MelderInfo_writeLine (U"Number of iterations: ", iter,
 			U"\n   Average per frame: ", ((double) iter) / nFrames);
 		huber_struct_destroy (&struct_huber);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		huber_struct_destroy (&struct_huber);
 		Melder_throw (me, U": no robust LPC created.");
 	}
 }
 
-autoFormant Sound_to_Formant_robust (Sound me, double dt_in, double numberOfFormants, double maximumFrequency,
+Formant Sound_to_Formant_robust (Sound me, double dt_in, double numberOfFormants, double maximumFrequency,
 	double halfdt_window, double preEmphasisFrequency, double safetyMargin, double k, int itermax, double tol, int wantlocation)
 {
 	double dt = dt_in > 0.0 ? dt_in : halfdt_window / 4.0;
 	double nyquist = 0.5 / my dx;
 	int predictionOrder = (long) floor (2 * numberOfFormants);
 	try {
-		autoSound sound;
-		if (maximumFrequency <= 0.0 || fabs (maximumFrequency / nyquist - 1.0) < 1.0e-12) {
-			sound = Data_copy (me);   // will be modified
+		autoSound sound = NULL;
+		if (maximumFrequency <= 0.0 || fabs (maximumFrequency / nyquist - 1) < 1.0e-12) {
+			sound.reset (Data_copy (me));   // will be modified
 		} else {
-			sound = Sound_resample (me, maximumFrequency * 2.0, 50);
+			sound.reset (Sound_resample (me, maximumFrequency * 2, 50));
 		}
 
-		autoLPC lpc = Sound_to_LPC_auto (sound.get(), predictionOrder, halfdt_window, dt, preEmphasisFrequency);
-		autoLPC lpcr = LPC_and_Sound_to_LPC_robust (lpc.get(), sound.get(), halfdt_window, preEmphasisFrequency, k, itermax, tol, wantlocation);
-		autoFormant thee = LPC_to_Formant (lpcr.get(), safetyMargin);
-		return thee;
+		autoLPC lpc = Sound_to_LPC_auto (sound.peek(), predictionOrder, halfdt_window, dt, preEmphasisFrequency);
+		autoLPC lpcr = LPC_and_Sound_to_LPC_robust (lpc.peek(), sound.peek(), halfdt_window, preEmphasisFrequency, k, itermax, tol, wantlocation);
+		autoFormant thee = LPC_to_Formant (lpcr.peek(), safetyMargin);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no robust Formant created.");
 	}
diff --git a/LPC/Sound_and_LPC_robust.h b/LPC/Sound_and_LPC_robust.h
index 605b338..5d86f9e 100644
--- a/LPC/Sound_and_LPC_robust.h
+++ b/LPC/Sound_and_LPC_robust.h
@@ -2,7 +2,7 @@
 #define _Sound_and_LPC_robust_h_
 /* Sound_and_LPC_robust.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,10 +36,10 @@ void LPC_Frames_and_Sound_huber (LPC_Frame me, Sound thee, LPC_Frame him, struct
 	By defining a void pointer we circumvent the complaint.
 */
 
-autoLPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth,
+LPC LPC_and_Sound_to_LPC_robust (LPC thee, Sound me, double analysisWidth,
 	double preEmphasisFrequency, double k, int itermax, double tol, int wantlocation);
 
-autoFormant Sound_to_Formant_robust (Sound me, double dt_in, double numberOfFormants, double maximumFrequency,
+Formant Sound_to_Formant_robust (Sound me, double dt_in, double numberOfFormants, double maximumFrequency,
 	double halfdt_window, double preemphasisFrequency, double safetyMargin, double k, int itermax, double tol, int wantlocation);
 
 #endif /* _Sound_and_LPC_robust_h_ */
diff --git a/LPC/Tube.cpp b/LPC/Tube.cpp
index 0aaa536..9cd14d0 100644
--- a/LPC/Tube.cpp
+++ b/LPC/Tube.cpp
@@ -1,6 +1,6 @@
 /* Tube.cpp
  *
- * Copyright (C) 1994-2012, 2015-2016 David Weenink
+ * Copyright (C) 1994-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,7 +48,7 @@
 Thing_implement (Tube, Sampled, 0);
 
 void structTube :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain: ", xmin, U" to ", xmax, U" seconds");
 	MelderInfo_writeLine (U"Maximum number of segments: ", maxnSegments);
 	MelderInfo_writeLine (U"Number of frames: ", nx);
@@ -79,7 +79,8 @@ void Tube_Frames_rc_into_area (Tube_Frame me, Tube_Frame thee) {
 	}
 }
 
-static void Tube_setLengths (Tube me, double length) {
+static void Tube_setLengths (I, double length) {
+	iam (Tube);
 	for (long i = 1; i <= my nx; i++) {
 		Tube_Frame f = & my frame[i];
 		if (f) {
@@ -88,7 +89,9 @@ static void Tube_setLengths (Tube me, double length) {
 	}
 }
 
-void Tube_init (Tube me, double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength) {
+void Tube_init (I, double tmin, double tmax, long nt, double dt, double t1,
+                long maxnSegments, double defaultLength) {
+	iam (Tube);
 	my maxnSegments = maxnSegments;
 	Sampled_init (me, tmin, tmax, nt, dt, t1);
 	my frame = NUMvector<structTube_Frame> (1, nt);
@@ -97,15 +100,17 @@ void Tube_init (Tube me, double tmin, double tmax, long nt, double dt, double t1
 
 Thing_implement (Area, Tube, 0);
 
-void Area_init (Area me, double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength) {
+void Area_init (Area me, double tmin, double tmax, long nt, double dt, double t1,
+                long maxnSegments, double defaultLength) {
 	Tube_init (me, tmin, tmax, nt, dt, t1, maxnSegments, defaultLength);
 }
 
-autoArea Area_create (double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength) {
+Area Area_create (double tmin, double tmax, long nt, double dt, double t1,
+                  long maxnSegments, double defaultLength) {
 	try {
 		autoArea me = Thing_new (Area);
-		Area_init (me.get(), tmin, tmax, nt, dt, t1, maxnSegments, defaultLength);
-		return me;
+		Area_init (me.peek(), tmin, tmax, nt, dt, t1, maxnSegments, defaultLength);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Area not crteated.");
 	}
@@ -113,15 +118,17 @@ autoArea Area_create (double tmin, double tmax, long nt, double dt, double t1, l
 
 Thing_implement (RC, Tube, 0);
 
-void RC_init (RC me, double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength) {
+void RC_init (RC me, double tmin, double tmax, long nt, double dt, double t1,
+              long maxnSegments, double defaultLength) {
 	Tube_init (me, tmin, tmax, nt, dt, t1, maxnSegments, defaultLength);
 }
 
-autoRC RC_create (double tmin, double tmax, long nt, double dt, double t1, long maxnCoefficients, double defaultLength) {
+RC RC_create (double tmin, double tmax, long nt, double dt, double t1,
+              long maxnCoefficients, double defaultLength) {
 	try {
 		autoRC me = Thing_new (RC);
-		RC_init (me.get(), tmin, tmax, nt, dt, t1, maxnCoefficients, defaultLength);
-		return me;
+		RC_init (me.peek(), tmin, tmax, nt, dt, t1, maxnCoefficients, defaultLength);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"RC not crteated.");
 	}
diff --git a/LPC/Tube.h b/LPC/Tube.h
index 38f7a91..b847316 100644
--- a/LPC/Tube.h
+++ b/LPC/Tube.h
@@ -2,7 +2,7 @@
 #define _Tube_h_
 /* Tube.h
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 #include "Sampled.h"
 
 #include "Tube_def.h"
+oo_CLASS_CREATE (Tube, Sampled);
 
 /*
 	Tube's as a function of time.
@@ -35,7 +36,8 @@ void Tube_Frame_free (Tube_Frame me);
 
 void Tube_Frames_rc_into_area (Tube_Frame me, Tube_Frame thee);
 
-void Tube_init (Tube me, double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength);
+void Tube_init (I, double tmin, double tmax, long nt, double dt, double t1,
+	long maxnSegments, double defaultLength);
 
 Thing_define (Area, Tube) {
 };
@@ -45,17 +47,25 @@ Thing_define (Area, Tube) {
 	units in m^2.
 */
 
-void Area_init (Area me, double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength);
+void Area_init (Area me, double tmin, double tmax, long nt, double dt, double t1,
+	long maxnSegments, double defaultLength);
 
-autoArea Area_create (double tmin, double tmax, long nt, double dt, double t1, long maxnSegments, double defaultLength);
+Area Area_create (double tmin, double tmax, long nt, double dt, double t1,
+	long maxnSegments, double defaultLength);
 
 Thing_define (RC, Tube) {
 };
 
-// Reflection Coefficients as a function of time.
+/*
+	Reflection Coefficients as a function of time.
+
+*/
+
 
-void RC_init (RC me, double tmin, double tmax, long nt, double dt, double t1, long maxnCoefficients, double defaultLength);
+void RC_init (RC me, double tmin, double tmax, long nt, double dt, double t1,
+	long maxnCoefficients, double defaultLength);
 
-autoRC RC_create (double tmin, double tmax, long nt, double dt, double t1, long maxnCoefficients, double defaultLength);
+RC RC_create (double tmin, double tmax, long nt, double dt, double t1,
+	long maxnCoefficients, double defaultLength);
 
 #endif // _Tube_h_
diff --git a/LPC/VocalTractTier.cpp b/LPC/VocalTractTier.cpp
index 9fe8415..b9ae97c 100644
--- a/LPC/VocalTractTier.cpp
+++ b/LPC/VocalTractTier.cpp
@@ -1,6 +1,6 @@
 /* VocalTractTier.cpp
  *
- * Copyright (C) 2012, 2015-2016 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -40,13 +40,15 @@
 #include "oo_DESCRIPTION.h"
 #include "VocalTractTier_def.h"
 
+/***** VocalTractPoint *****/
+
 void VocalTract_drawSegments (VocalTract me, Graphics g, double maxLength, double maxArea, bool closedAtGlottis)
 {
 	Graphics_setInner (g);
 	double maxCrossection = sqrt (maxArea);
-	Graphics_setWindow (g, 0.0, maxLength, -maxCrossection, maxCrossection);
+	Graphics_setWindow (g, 0, maxLength, -maxCrossection, maxCrossection);
 	for (long isection = 1; isection <= my nx; isection++) {
-		double x1 = (isection - 1.0) * my dx, x2 = x1 + my dx;
+		double x1 = (isection - 1) * my dx, x2 = x1 + my dx;
 		double crosssection2 = sqrt (my z[1][isection]);
 		Graphics_line (g, x1, crosssection2, x2, crosssection2);
 		Graphics_line (g, x1, -crosssection2, x2, -crosssection2);
@@ -61,16 +63,14 @@ void VocalTract_drawSegments (VocalTract me, Graphics g, double maxLength, doubl
 	Graphics_unsetInner (g);
 }
 
-/***** VocalTractPoint *****/
-
 Thing_implement (VocalTractPoint, AnyPoint, 0);
 
-autoVocalTractPoint VocalTract_to_VocalTractPoint (VocalTract me, double time) {
+VocalTractPoint VocalTract_to_VocalTractPoint (VocalTract me, double time) {
 	try {
 		autoVocalTractPoint thee = Thing_new (VocalTractPoint);
 		thy number = time;
-		thy d_vocalTract = Data_copy (me);
-		return thee;
+		thy d_vocalTract = (VocalTract) Data_copy (me);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to VocalTractPoint.");
 	}
@@ -80,99 +80,100 @@ autoVocalTractPoint VocalTract_to_VocalTractPoint (VocalTract me, double time) {
 
 Thing_implement (VocalTractTier, Function, 0);
 
-autoVocalTractTier VocalTractTier_create (double fromTime, double toTime) {
+VocalTractTier VocalTractTier_create (double fromTime, double toTime) {
 	try {
 		autoVocalTractTier me = Thing_new (VocalTractTier);
-		Function_init (me.get(), fromTime, toTime);
-		return me;
+		Function_init (me.peek(), fromTime, toTime);
+		my d_vocalTracts = SortedSetOfDouble_create ();
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U": VocalTractTier not created.");
 	}
 }
 
-autoVocalTractTier VocalTract_to_VocalTractTier (VocalTract me, double startTime, double endTime, double time) {
+VocalTractTier VocalTract_to_VocalTractTier (VocalTract me, double startTime, double endTime, double time) {
 	try {
 		autoVocalTractTier thee = VocalTractTier_create (startTime, endTime);
-		VocalTractTier_addVocalTract_copy (thee.get(), time, me);
-		return thee;
+		VocalTractTier_addVocalTract (thee.peek(), time, me);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to VocalTractTier");
 	}
 }
 
-void VocalTractTier_addVocalTract_copy (VocalTractTier me, double time, VocalTract vocaltract) {
+void VocalTractTier_addVocalTract (VocalTractTier me, double time, VocalTract vocaltract) {
 	try {
-		autoVocalTractPoint thee = VocalTract_to_VocalTractPoint (vocaltract, time);
-		if (my d_vocalTracts.size > 0) {
-			VocalTractPoint vtp = my d_vocalTracts.at [1];
+		autoVocalTractPoint thee =  VocalTract_to_VocalTractPoint (vocaltract, time);
+		if (my d_vocalTracts -> size > 1) {
+			VocalTractPoint vtp = (VocalTractPoint) my d_vocalTracts -> item[1];
 			long numberOfSections = vtp -> d_vocalTract -> nx;
 			if (numberOfSections != vocaltract -> nx) {
+				forget (vocaltract);
 				Melder_throw (U"The number of sections must be equal to ", numberOfSections, U".");
 			}
 		}
-		my d_vocalTracts. addItem_move (thee.move());
+		Collection_addItem (my d_vocalTracts, thee.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": no VocalTract added.");
 	}
 }
 
-autoVocalTract VocalTractTier_to_VocalTract (VocalTractTier me, double time) {
+VocalTract VocalTractTier_to_VocalTract (VocalTractTier me, double time) {
 	try {
-		Melder_assert (my d_vocalTracts.size > 0);
-		VocalTractPoint vtp = my d_vocalTracts.at [1];
+		VocalTractPoint vtp = (VocalTractPoint) my d_vocalTracts -> item[1];
 		long numberOfSections = vtp -> d_vocalTract -> nx;
 		autoVocalTract thee = VocalTract_create (numberOfSections, vtp -> d_vocalTract -> dx);
-		for (long isection = 1; isection <= numberOfSections; isection ++) {
+		for (long isection = 1; isection <= numberOfSections; isection++) {
 			autoRealTier section = RealTier_create (my xmin, my xmax);
-			for (long i = 1; i <= my d_vocalTracts.size; i ++) {
-				VocalTractPoint vtpi = my d_vocalTracts.at [i];
-				double areai = vtpi -> d_vocalTract -> z [1] [isection];
-				RealTier_addPoint (section.get(), vtpi -> number, areai);
+			for (long i = 1; i <= my d_vocalTracts -> size; i++) {
+				VocalTractPoint vtpi = (VocalTractPoint) my d_vocalTracts -> item[i];
+				double areai = vtpi -> d_vocalTract -> z[1][isection];
+				RealTier_addPoint (section.peek(), vtpi -> number, areai);
 			}
-			thy z[1][isection] = RealTier_getValueAtTime (section.get(), time);
+			thy z[1][isection] = RealTier_getValueAtTime (section.peek(), time);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no VocalTract created.");
 	}
 }
 
-autoLPC VocalTractTier_to_LPC (VocalTractTier me, double timeStep) {
+LPC VocalTractTier_to_LPC (VocalTractTier me, double timeStep) {
 	try {
-		if (my d_vocalTracts.size == 0) {
+		if (my d_vocalTracts -> size == 0) {
 			Melder_throw (U"Empty VocalTractTier");
 		}
 		long numberOfFrames = (long) floor ((my xmax - my xmin) / timeStep);
-		VocalTractPoint vtp = my d_vocalTracts.at [1];
+		VocalTractPoint vtp = (VocalTractPoint) my d_vocalTracts -> item[1];
 		long numberOfSections = vtp -> d_vocalTract -> nx;
 		double samplingPeriod = 1.0 / (1000.0 * numberOfSections);
 		autoNUMmatrix<double> area (1, numberOfFrames, 1, numberOfSections + 1);
 		autoNUMvector<double> areavec (1, numberOfSections + 1);
-		autoLPC thee = LPC_create (my xmin, my xmax, numberOfFrames, timeStep, timeStep / 2.0, numberOfSections, samplingPeriod);
+		autoLPC thee = LPC_create (my xmin, my xmax, numberOfFrames, timeStep, timeStep / 2, numberOfSections, samplingPeriod);
 		// interpolate each section
-		for (long isection = 1; isection <= numberOfSections; isection ++) {
+		for (long isection = 1; isection <= numberOfSections; isection++) {
 			autoRealTier sectioni = RealTier_create (my xmin, my xmax);
-			for (long i = 1; i <= my d_vocalTracts.size; i ++) {
-				VocalTractPoint vtpi = my d_vocalTracts.at [i];
-				double areai = vtpi -> d_vocalTract -> z [1] [isection];
-				RealTier_addPoint (sectioni.get(), vtpi -> number, areai);
+			for (long i = 1; i <= my d_vocalTracts -> size; i++) {
+				VocalTractPoint vtpi = (VocalTractPoint) my d_vocalTracts -> item[i];
+				double areai = vtpi -> d_vocalTract -> z[1][isection];
+				RealTier_addPoint (sectioni.peek(), vtpi -> number, areai);
 			}
-			for (long iframe = 1; iframe <= numberOfFrames; iframe ++) {
+			for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
 				double time = thy x1 + (iframe - 1) * thy dx;
-				area [iframe] [isection] = RealTier_getValueAtTime (sectioni.get(), time);
-				area [iframe] [numberOfSections + 1] = 0.0001;   // normalisation is area[n+1] = 0.0001
+				area[iframe][isection] = RealTier_getValueAtTime (sectioni.peek(), time);
+				area[iframe][numberOfSections + 1] = 0.0001; // normalisation is area[n+1] = 0.0001
 			}
 		}
-		for (long iframe = 1; iframe <= numberOfFrames; iframe ++) {
-			LPC_Frame frame = & thy d_frames [iframe];
+		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
+			LPC_Frame frame = &thy d_frames[iframe];
 			LPC_Frame_init (frame, numberOfSections);
-			for (long i = 1; i <= numberOfSections + 1; i ++) {
-				areavec [i] = area [iframe] [numberOfSections + 1 - i];
+			for (long i = 1; i <= numberOfSections + 1; i++) {
+				areavec[i] = area[iframe][numberOfSections + 1 - i];
 			}
 			NUMlpc_area_to_lpc (areavec.peek(), numberOfSections + 1, frame -> a);
-			frame -> gain = 1e-6;   // something
+			frame -> gain = 1e-6; // something
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U": not converted to LPC.");
 	}
diff --git a/LPC/VocalTractTier.h b/LPC/VocalTractTier.h
index 003b4f5..7151d86 100644
--- a/LPC/VocalTractTier.h
+++ b/LPC/VocalTractTier.h
@@ -2,7 +2,7 @@
 #define _VocalTractTier_h_
 /* VocalTractTier.h
  *
- * Copyright (C) 2012, 2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,20 +24,20 @@
 #include "VocalTract.h"
 
 #include "VocalTractTier_def.h"
+oo_CLASS_CREATE (VocalTractPoint, AnyPoint);
+oo_CLASS_CREATE (VocalTractTier, Function);
 
 void VocalTract_drawSegments (VocalTract me, Graphics g, double maxLength, double maxArea, bool closedAtGlottis);
 
-autoVocalTractPoint VocalTract_to_VocalTractPoint (VocalTract me, double time);
+VocalTractPoint VocalTract_to_VocalTractPoint (VocalTract me, double time);
 
-autoVocalTractTier VocalTractTier_create (double fromTime, double toTime);
+VocalTractTier VocalTractTier_create (double fromTime, double toTime);
+VocalTractTier VocalTract_to_VocalTractTier (VocalTract me, double startTime, double endTime, double time);
 
-autoVocalTractTier VocalTract_to_VocalTractTier (VocalTract me, double startTime, double endTime, double time);
+void VocalTractTier_addVocalTract (VocalTractTier me, double time, VocalTract thee);
 
-void VocalTractTier_addVocalTract_copy (VocalTractTier me, double time, VocalTract thee);
-
-autoLPC VocalTractTier_to_LPC (VocalTractTier me, double timeStep);
-
-autoVocalTract VocalTractTier_to_VocalTract (VocalTractTier me, double time);
+LPC VocalTractTier_to_LPC (VocalTractTier me, double timeStep);
+VocalTract VocalTractTier_to_VocalTract (VocalTractTier me, double time);
 
 /* End of file VocalTractTier.h */
 #endif
diff --git a/LPC/VocalTractTier_def.h b/LPC/VocalTractTier_def.h
index e815670..da55923 100644
--- a/LPC/VocalTractTier_def.h
+++ b/LPC/VocalTractTier_def.h
@@ -1,6 +1,6 @@
 /* VocalTractTier_def.h
  *
- * Copyright (C) 2012 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
 #define ooSTRUCT VocalTractPoint
 oo_DEFINE_CLASS (VocalTractPoint, AnyPoint)
 
-	oo_AUTO_OBJECT (VocalTract, 0, d_vocalTract)
+	oo_OBJECT (VocalTract, 0, d_vocalTract)
 
 oo_END_CLASS (VocalTractPoint)
 #undef ooSTRUCT
@@ -29,7 +29,7 @@ oo_END_CLASS (VocalTractPoint)
 #define ooSTRUCT VocalTractTier
 oo_DEFINE_CLASS (VocalTractTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, d_vocalTracts, VocalTractPoint, 0)
+	oo_COLLECTION (SortedSetOfDouble, d_vocalTracts, VocalTractPoint, 0)
 
 oo_END_CLASS (VocalTractTier)
 #undef ooSTRUCT
diff --git a/LPC/manual_LPC.cpp b/LPC/manual_LPC.cpp
index be1fe93..93899e8 100644
--- a/LPC/manual_LPC.cpp
+++ b/LPC/manual_LPC.cpp
@@ -1,6 +1,6 @@
-/* manual_LPC.cpp
+/* manual_LPC.c
  *
- * Copyright (C) 1994-2016 David Weenink
+ * Copyright (C) 1994-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -475,10 +475,10 @@ TAG (U"##Use filter at time (s)")
 DEFINITION (U"determines which LPC frame will be chosen to inverse filter the sound. ")
 MAN_END
 
-MAN_BEGIN (U"MFCC", U"djmw", 20160225)
+MAN_BEGIN (U"MFCC", U"djmw", 20141022)
 INTRO (U"One of the @@types of objects@ in P\\s{RAAT}.")
 NORMAL (U"An object of type MFCC represents mel frequency cepstral coefficients "
-	"as a function of time. The coefficients are represented in a number of frames centred at equally spaced times. "
+	"as a function of time. The coefficients are represented in frames "
 	"at constant sampling period.")
 ENTRY (U"MFCC commands")
 NORMAL (U"Creation:")
@@ -558,7 +558,7 @@ MAN_END
 
 #define Sound_to_LPC_COMMON_HELP(method) \
 INTRO (U"With this command you create a new @LPC from every selected @Sound, " \
-	"using " method " method.") \
+	"using " #method " method.") \
 ENTRY (U"Warning") \
 NORMAL (U"You are advised not to use this command for formant analysis. " \
 	"For formant analysis, instead use @@Sound: To Formant (burg)...@, " \
@@ -690,4 +690,4 @@ MAN_END
  19980322 djmw Sound_into_LPC_Frame_auto did not return (nCoefficients == 0) when (r[1] == 0).
 */
 
-/* End of file manual_LPC.cpp */
+/* End of file manual_LPC.c */
diff --git a/LPC/praat_LPC_init.cpp b/LPC/praat_LPC_init.cpp
index c1a1b20..3717fee 100644
--- a/LPC/praat_LPC_init.cpp
+++ b/LPC/praat_LPC_init.cpp
@@ -71,7 +71,7 @@ DIRECT (Cepstrum_downto_PowerCepstrum)
 	LOOP {
 		iam (Cepstrum);
 		autoPowerCepstrum thee = Cepstrum_downto_PowerCepstrum (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -178,7 +178,7 @@ DO
 		iam (PowerCepstrum);
 		double peakdB, quefrency;
 		PowerCepstrum_getMaximumAndQuefrency (me, GET_REAL (U"left Search peak in pitch range"), GET_REAL (U"right Search peak in pitch range"), GET_INTEGER (U"Interpolation") - 1, &peakdB, &quefrency);
-		double f = 1.0 / quefrency;
+		double f = 1 / quefrency;
 		Melder_information (quefrency, U" s (f =", f, U" Hz)");
 	}
 END
@@ -206,7 +206,7 @@ DO
 		double qpeak, cpp = PowerCepstrum_getPeakProminence_hillenbrand (me,
 			GET_REAL (U"left Search peak in pitch range"), GET_REAL (U"right Search peak in pitch range"), &qpeak);
 		Melder_information (cpp, U" dB; quefrency=", qpeak, U" s (f=",
-			1.0 / qpeak, U" Hz).");
+			1 / qpeak, U" Hz).");
 	}
 END
 
@@ -279,7 +279,7 @@ DO
 			GET_REAL (U"left Tilt line quefrency range"), GET_REAL (U"right Tilt line quefrency range"),
 			GET_INTEGER (U"Line type"), GET_INTEGER (U"Fit method"), &qpeak);
 		Melder_information (cpp, U" dB; quefrency=", qpeak, U" s (f=",
-			1.0 / qpeak, U" Hz).");
+			1 / qpeak, U" Hz).");
 	}
 END
 
@@ -320,7 +320,7 @@ DO
 	LOOP {
 		iam (PowerCepstrum);
 		autoPowerCepstrum thee = PowerCepstrum_smooth (me, GET_REAL (U"Quefrency averaging window"), GET_INTEGER (U"Number of iterations"));
-		praat_new (thee.move(), my name, U"_smooth");
+		praat_new (thee.transfer(), my name, U"_smooth");
 	}
 END
 
@@ -339,23 +339,21 @@ DO
 		iam (PowerCepstrum);
 		autoPowerCepstrum thee = PowerCepstrum_subtractTilt (me, GET_REAL (U"left Tilt line quefrency range"), 
 			GET_REAL (U"right Tilt line quefrency range"), GET_INTEGER (U"Line type"), GET_INTEGER (U"Fit method"));
-		praat_new (thee.move(), my name, U"minusTilt");
+		praat_new (thee.transfer(), my name, U"minusTilt");
 	}
 END
 
 DIRECT (Cepstrum_to_Spectrum)
 	LOOP {
 		iam (Cepstrum);
-		autoSpectrum thee = Cepstrum_to_Spectrum (me);
-		praat_new (thee.move(), my name);
+		praat_new (Cepstrum_to_Spectrum (me), my name);
 	}
 END
 
 DIRECT (PowerCepstrum_to_Matrix)
 	LOOP {
 		iam (PowerCepstrum);
-		autoMatrix thee = PowerCepstrum_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (PowerCepstrum_to_Matrix (me), my name);
 	}
 END
 
@@ -415,7 +413,7 @@ DO
 	LOOP {
 		iam (PowerCepstrogram);
 		autoPowerCepstrogram thee = PowerCepstrogram_smooth (me, GET_REAL (U"Time averaging window"), GET_REAL (U"Quefrency averaging window"));
-		praat_new (thee.move(), my name, U"_smoothed");
+		praat_new (thee.transfer(), my name, U"_smoothed");
 	}
 END
 
@@ -462,7 +460,7 @@ DO
 		iam (PowerCepstrogram);
 		autoPowerCepstrogram thee = PowerCepstrogram_subtractTilt (me, GET_REAL (U"left Tilt line quefrency range"), 
 			GET_REAL (U"right Tilt line quefrency range"), GET_INTEGER (U"Line type"), GET_INTEGER (U"Fit method"));
-		praat_new (thee.move(), my name, U"_minusTilt");
+		praat_new (thee.transfer(), my name, U"_minusTilt");
 	}
 END
 
@@ -551,7 +549,7 @@ DO
 	LOOP {
 		iam (PowerCepstrogram);
 		try {
-			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the PowerCepstrogram may have partially changed
@@ -568,7 +566,7 @@ DO
 		iam (PowerCepstrogram);
 		double time = GET_REAL (U"Time");
 		autoPowerCepstrum thee = PowerCepstrogram_to_PowerCepstrum_slice (me, time);
-		praat_new (thee.move(), my name, NUMstring_timeNoDot (time));
+		praat_new (thee.transfer(), my name, NUMstring_timeNoDot (time));
 	}
 END
 
@@ -598,7 +596,7 @@ DO
 			GET_INTEGER (U"Interpolation") - 1,
 			GET_REAL (U"left Tilt line quefrency range"), GET_REAL (U"right Tilt line quefrency range"),
 			GET_INTEGER (U"Line type"), GET_INTEGER (U"Fit method"));
-		praat_new (thee.move(), my name, U"_cpp");
+		praat_new (thee.transfer(), my name, U"_cpp");
 	}
 END
 
@@ -611,7 +609,7 @@ DO
 		iam (PowerCepstrogram);
 		autoTable thee = PowerCepstrogram_to_Table_hillenbrand (me,
 			GET_REAL (U"left Peak search pitch range"), GET_REAL (U"right Peak search pitch range"));
-		praat_new (thee.move(), my name, U"_cpp");
+		praat_new (thee.transfer(), my name, U"_cpp");
 	}
 END
 
@@ -619,7 +617,7 @@ DIRECT (PowerCepstrogram_to_Matrix)
 	LOOP {
 		iam (PowerCepstrogram);
 		autoMatrix thee = PowerCepstrogram_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -628,8 +626,7 @@ END
 DIRECT (Cepstrumc_to_LPC)
 	LOOP {
 		iam (Cepstrumc);
-		autoLPC thee = Cepstrumc_to_LPC (me);
-		praat_new (thee.move(), my name);
+		praat_new (Cepstrumc_to_LPC (me), my name);
 	}
 END
 
@@ -650,25 +647,23 @@ FORM (Cepstrumc_to_DTW, U"Cepstrumc: To DTW", U"Cepstrumc: To DTW...")
 	RADIOBUTTON (U"2/3 < slope < 3/2")
 	OK
 DO
-	Cepstrumc c1 = nullptr, c2 = nullptr;
+	Cepstrumc c1 = 0, c2 = 0;
 	LOOP {
 		iam (Cepstrumc);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
-	autoDTW thee = Cepstrumc_to_DTW (c1, c2, GET_REAL (U"Cepstral weight"),
+	praat_new (Cepstrumc_to_DTW (c1, c2, GET_REAL (U"Cepstral weight"),
 		GET_REAL (U"Log energy weight"), GET_REAL (U"Regression weight"),
 		GET_REAL (U"Regression weight log energy"), GET_REAL (U"Window for regression coefficients"),
 		GET_INTEGER (U"Match begin positions"), GET_INTEGER (U"Match end positions"),
-		GET_INTEGER (U"Slope constraints"));
-	praat_new (thee.move(), c1 -> name, U"_", c2 -> name);
+		GET_INTEGER (U"Slope constraints")), c1->name, U"_", c2->name);
 END
 
 DIRECT (Cepstrumc_to_Matrix)
 	LOOP {
 		iam (Cepstrumc);
-		autoMatrix thee = Cepstrumc_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (Cepstrumc_to_Matrix (me), my name);
 	}
 END
 
@@ -680,8 +675,7 @@ FORM (Formant_to_LPC, U"Formant: To LPC", 0)
 DO
 	LOOP {
 		iam (Formant);
-		autoLPC thee = Formant_to_LPC (me, 1.0 / GET_REAL (U"Sampling frequency"));
-		praat_new (thee.move(), my name);
+		praat_new (Formant_to_LPC (me, 1.0 / GET_REAL (U"Sampling frequency")), my name);
 	}
 END
 
@@ -713,7 +707,7 @@ DO
 	long iformant = GET_INTEGER (U"Formant number");
 	Spectrogram thee = FIRST (Spectrogram);
 	autoIntensityTier him = Formant_and_Spectrogram_to_IntensityTier (me, thee, iformant);
-	praat_new (him.move(), my name, U"_", GET_INTEGER (U"Formant number"));
+	praat_new (him.transfer(), my name, U"_", GET_INTEGER (U"Formant number"));
 END
 
 /********************LFCC ********************************************/
@@ -732,8 +726,7 @@ DO
 	}
 	LOOP {
 		iam (LFCC);
-		autoLPC thee = LFCC_to_LPC (me, ncof);
-		praat_new (thee.move(), my name);
+		praat_new (LFCC_to_LPC (me, ncof), my name);
 	}
 END
 
@@ -793,21 +786,19 @@ END
 DIRECT (LPC_to_Formant)
 	LOOP {
 		iam (LPC);
-		autoFormant thee = LPC_to_Formant (me, 50);
-		praat_new (thee.move(), my name);
+		praat_new (LPC_to_Formant (me, 50), my name);
 	}
 END
 
 DIRECT (LPC_to_Formant_keep_all)
 	LOOP {
 		iam (LPC);
-		autoFormant thee = LPC_to_Formant (me, 0);
-		praat_new (thee.move(), my name);
+		praat_new (LPC_to_Formant (me, 0), my name);
 	}
 END
 
 FORM (LPC_to_LFCC, U"LPC: To LFCC", U"LPC: To LFCC...")
-	NATURAL (U"Number of coefficients", U"0")
+	INTEGER (U"Number of coefficients", U"0")
 	OK
 DO
 	long ncof = GET_INTEGER (U"Number of coefficients");
@@ -816,20 +807,18 @@ DO
 	}
 	LOOP {
 		iam (LPC);
-		autoLFCC thee = LPC_to_LFCC (me, ncof);
-		praat_new (thee.move(), my name);
+		praat_new (LPC_to_LFCC (me, ncof), my name);
 	}
 END
 
 FORM (LPC_to_Polynomial, U"LPC: To Polynomial", U"LPC: To Polynomial (slice)...")
 	REAL (U"Time (seconds)", U"0.0")
 	OK
-DO
-	double time = GET_REAL (U"Time");
+	DO
 	LOOP {
 		iam (LPC);
-		autoPolynomial thee = LPC_to_Polynomial (me, time);
-		praat_new (thee.move(), my name, NUMstring_timeNoDot (time));
+		double time = GET_REAL (U"Time");
+		praat_new (LPC_to_Polynomial (me, time), my name, NUMstring_timeNoDot (time));
 	}
 END
 
@@ -843,9 +832,8 @@ DO
 	LOOP {
 		iam (LPC);
 		double time = GET_REAL (U"Time");
-		autoSpectrum thee = LPC_to_Spectrum (me, time, GET_REAL (U"Minimum frequency resolution"),
-		GET_REAL (U"Bandwidth reduction"), GET_REAL (U"De-emphasis frequency"));
-		praat_new (thee.move(), my name, NUMstring_timeNoDot (time));
+		praat_new (LPC_to_Spectrum (me, time, GET_REAL (U"Minimum frequency resolution"),
+		GET_REAL (U"Bandwidth reduction"), GET_REAL (U"De-emphasis frequency")), my name, NUMstring_timeNoDot (time));
 	}
 END
 
@@ -857,8 +845,8 @@ FORM (LPC_to_Spectrogram, U"LPC: To Spectrogram", U"LPC: To Spectrogram...")
 DO
 	LOOP {
 		iam (LPC);
-		autoSpectrogram thee = LPC_to_Spectrogram (me, GET_REAL (U"Minimum frequency resolution"), GET_REAL (U"Bandwidth reduction"), GET_REAL (U"De-emphasis frequency"));
-		praat_new (thee.move(), my name);
+		praat_new (LPC_to_Spectrogram (me, GET_REAL (U"Minimum frequency resolution"),
+			GET_REAL (U"Bandwidth reduction"), GET_REAL (U"De-emphasis frequency")), my name);
 	}
 END
 
@@ -875,8 +863,7 @@ DO
 	LOOP {
 		iam (LPC);
 		double time = GET_REAL (U"Time");
-		autoVocalTract thee = LPC_to_VocalTract (me, time, glottalDamping, radiationDamping, internalDamping);
-		praat_new (thee.move(), my name, NUMstring_timeNoDot (time));
+		praat_new (LPC_to_VocalTract (me, time, glottalDamping, radiationDamping, internalDamping), my name, NUMstring_timeNoDot (time));
 	}
 END
 
@@ -885,35 +872,31 @@ FORM (LPC_to_VocalTract, U"LPC: To VocalTract", U"LPC: To VocalTract (slice)..."
 	POSITIVE (U"Length (m)", U"0.17")
 	OK
 DO
-	double time = GET_REAL (U"Time");
 	LOOP {
 		iam (LPC);
-		autoVocalTract thee = LPC_to_VocalTract (me, time, GET_REAL (U"Length"));
-		praat_new (thee.move(), my name, NUMstring_timeNoDot (time));
+		double time = GET_REAL (U"Time");
+		praat_new (LPC_to_VocalTract (me, time, GET_REAL (U"Length")), my name, NUMstring_timeNoDot (time));
 	}
 END
 
 DIRECT (LPC_downto_Matrix_lpc)
 	LOOP {
 		iam (LPC);
-		autoMatrix thee = LPC_downto_Matrix_lpc (me);
-		praat_new (thee.move(), my name, U"_lpc");
+		praat_new (LPC_downto_Matrix_lpc (me), my name, U"_lpc");
 	}
 END
 
 DIRECT (LPC_downto_Matrix_rc)
 	LOOP {
 		iam (LPC);
-		autoMatrix thee = LPC_downto_Matrix_rc (me);
-		praat_new (thee.move(), my name, U"_rc");
+		praat_new (LPC_downto_Matrix_rc (me), my name, U"_rc");
 	}
 END
 
 DIRECT (LPC_downto_Matrix_area)
 	LOOP {
 		iam (LPC);
-		autoMatrix thee = LPC_downto_Matrix_area (me);
-		praat_new (thee.move(), my name, U"_area");
+		praat_new (LPC_downto_Matrix_area (me), my name, U"_area");
 	}
 END
 
@@ -930,7 +913,7 @@ DO
 		iam (Sound);
 		autoPowerCepstrogram thee = Sound_to_PowerCepstrogram (me, GET_REAL (U"Pitch floor"), GET_REAL (U"Time step"), GET_REAL(U"Maximum frequency"),
 			 GET_REAL (U"Pre-emphasis from"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -943,7 +926,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoPowerCepstrogram thee = Sound_to_PowerCepstrogram_hillenbrand (me, GET_REAL (U"Pitch floor"), GET_REAL (U"Time step"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 	
@@ -967,7 +950,7 @@ DO
 	}
 END
 
-static void Sound_to_LPC_addCommonFields (UiForm dia) {
+static void Sound_to_LPC_addCommonFields (void *dia) {
 	LABEL (U"", U"Warning 1:  for formant analysis, use \"To Formant\" instead.")
 	LABEL (U"", U"Warning 2:  if you do use \"To LPC\", you may want to resample first.")
 	LABEL (U"", U"Click Help for more details.")
@@ -978,7 +961,7 @@ static void Sound_to_LPC_addCommonFields (UiForm dia) {
 	REAL (U"Pre-emphasis frequency (Hz)", U"50.0")
 }
 
-static void Sound_to_LPC_checkCommonFields (UiForm dia, long *predictionOrder, double *analysisWindowDuration,
+static void Sound_to_LPC_checkCommonFields (void *dia, long *predictionOrder, double *analysisWindowDuration,
         double *timeStep, double *preemphasisFrequency) {
 	*predictionOrder = GET_INTEGER (U"Prediction order");
 	*analysisWindowDuration = GET_REAL (U"Window length");
@@ -998,8 +981,7 @@ DO
 	Sound_to_LPC_checkCommonFields (dia, & numberOfPoles, & analysisWindowDuration, & timeStep, &preemphasisFrequency);
 	LOOP {
 		iam (Sound);
-		autoLPC thee = Sound_to_LPC_auto (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency);
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_LPC_auto (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency), my name);
 	}
 END
 
@@ -1012,8 +994,7 @@ DO
 	Sound_to_LPC_checkCommonFields (dia, & numberOfPoles, & analysisWindowDuration, & timeStep, & preemphasisFrequency);
 	LOOP {
 		iam (Sound);
-		autoLPC thee = Sound_to_LPC_covar (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency);
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_LPC_covar (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency), my name);
 	}
 END
 
@@ -1026,8 +1007,7 @@ DO
 	Sound_to_LPC_checkCommonFields (dia, & numberOfPoles, & analysisWindowDuration, & timeStep, & preemphasisFrequency);
 	LOOP {
 		iam (Sound);
-		autoLPC thee = Sound_to_LPC_burg (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency);
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_LPC_burg (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency), my name);
 	}
 END
 
@@ -1042,8 +1022,8 @@ DO
 	Sound_to_LPC_checkCommonFields (dia, & numberOfPoles, & analysisWindowDuration, &timeStep, & preemphasisFrequency);
 	LOOP {
 		iam (Sound);
-		autoLPC thee = Sound_to_LPC_marple (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency, GET_REAL (U"Tolerance 1"), GET_REAL (U"Tolerance 2"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_LPC_marple (me, numberOfPoles, analysisWindowDuration, timeStep, preemphasisFrequency,
+		GET_REAL (U"Tolerance 1"), GET_REAL (U"Tolerance 2")), my name);
 	}
 END
 
@@ -1076,8 +1056,8 @@ FORM (VocalTract_drawSegments, U"VocalTract: Draw segments", 0)
 	OK
 DO
 	autoPraatPicture picture;
-	double maxLength = GET_REAL (U"Maximum length") / 100.0;
-	double maxArea = GET_REAL (U"Maximum area") / 10000.0;
+	double maxLength = GET_REAL (U"Maximum length") / 100;
+	double maxArea = GET_REAL (U"Maximum area") / 10000;
 	bool closedAtGlottis = GET_INTEGER (U"Closed at glottis");
 	LOOP {
 		iam (VocalTract);
@@ -1117,7 +1097,7 @@ DO
 	LOOP {
 		iam (VocalTract);
 		autoVocalTractTier thee = VocalTract_to_VocalTractTier (me, xmin, xmax, time);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -1131,8 +1111,7 @@ FORM (VocalTractTier_to_LPC, U"VocalTractTier: To LPC", 0)
 DO
 	LOOP {
 		iam (VocalTractTier);
-		autoLPC thee = VocalTractTier_to_LPC (me, GET_REAL (U"Time step"));
-		praat_new (thee.move(), my name);
+		praat_new (VocalTractTier_to_LPC (me, GET_REAL (U"Time step")), my name);
 	}
 END
 
@@ -1143,8 +1122,7 @@ DO
 	double time = GET_REAL (U"Time");
 	LOOP {
 		iam (VocalTractTier);
-		autoVocalTract thee = VocalTractTier_to_VocalTract (me, time);
-		praat_new (thee.move(), my name);
+		praat_new (VocalTractTier_to_VocalTract (me, time), my name);
 	}
 END
 
@@ -1154,7 +1132,7 @@ FORM (VocalTractTier_addVocalTract, U"VocalTractTier: Add VocalTract", 0)
 DO
 	VocalTractTier me = FIRST (VocalTractTier);
 	VocalTract thee = FIRST (VocalTract);
-	VocalTractTier_addVocalTract_copy (me, GET_REAL (U"Time"), thee);
+	VocalTractTier_addVocalTract (me, GET_REAL (U"Time"), thee);
 	praat_dataChanged (me);
 END
 
@@ -1166,8 +1144,7 @@ FORM (LPC_and_Sound_filter, U"LPC & Sound: Filter", U"LPC & Sound: Filter...")
 DO
 	LPC me = FIRST (LPC);
 	Sound s = FIRST (Sound);
-	autoSound thee = LPC_and_Sound_filter (me , s, GET_INTEGER (U"Use LPC gain"));
-	praat_new (thee.move(), my name);
+	praat_new (LPC_and_Sound_filter (me , s, GET_INTEGER (U"Use LPC gain")), my name);
 END
 
 FORM (LPC_and_Sound_filterWithFilterAtTime, U"LPC & Sound: Filter with one filter at time",
@@ -1182,15 +1159,13 @@ DO
 	LPC me = FIRST (LPC);
 	Sound s = FIRST (Sound);
 	long channel = GET_INTEGER (U"Channel") - 1;
-	autoSound thee = LPC_and_Sound_filterWithFilterAtTime (me , s, channel, GET_REAL (U"Use filter at time"));
-	praat_new (thee.move(), my name);
+	praat_new (LPC_and_Sound_filterWithFilterAtTime (me , s, channel, GET_REAL (U"Use filter at time")), my name);
 END
 
 DIRECT (LPC_and_Sound_filterInverse)
 	LPC me = FIRST (LPC);
 	Sound s = FIRST (Sound);
-	autoSound thee = LPC_and_Sound_filterInverse (me , s);
-	praat_new (thee.move(), my name);
+	praat_new (LPC_and_Sound_filterInverse (me , s), my name);
 END
 
 FORM (LPC_and_Sound_filterInverseWithFilterAtTime, U"LPC & Sound: Filter (inverse) with filter at time",
@@ -1205,8 +1180,7 @@ DO
 	LPC me = FIRST (LPC);
 	Sound s = FIRST (Sound);
 	long channel = GET_INTEGER (U"Channel") - 1;
-	autoSound thee = LPC_and_Sound_filterInverseWithFilterAtTime (me , s, channel, GET_REAL (U"Use filter at time"));
-	praat_new (thee.move(), my name);
+	praat_new (LPC_and_Sound_filterInverseWithFilterAtTime (me , s, channel, GET_REAL (U"Use filter at time")), my name);
 END
 
 FORM (LPC_and_Sound_to_LPC_robust, U"Robust LPC analysis", U"LPC & Sound: To LPC (robust)...")
@@ -1227,9 +1201,9 @@ END
 
 extern void praat_TimeTier_query_init (ClassInfo klas);
 extern void praat_TimeTier_modify_init (ClassInfo klas);
-void praat_uvafon_LPC_init ();
-void praat_uvafon_LPC_init () {
-	Thing_recognizeClassesByName (classCepstrumc, classPowerCepstrum, classCepstrogram, classPowerCepstrogram, classLPC, classLFCC, classMFCC, classVocalTractTier, nullptr);
+void praat_uvafon_LPC_init (void);
+void praat_uvafon_LPC_init (void) {
+	Thing_recognizeClassesByName (classCepstrumc, classPowerCepstrum, classCepstrogram, classPowerCepstrogram, classLPC, classLFCC, classMFCC, classVocalTractTier, NULL);
 
 	praat_addAction1 (classPowerCepstrum, 0, U"PowerCepstrum help", 0, 0, DO_PowerCepstrum_help);
 	praat_addAction1 (classPowerCepstrum, 0, U"Draw...", 0, 0, DO_PowerCepstrum_draw);
diff --git a/README.md b/README.md
deleted file mode 100644
index ba30762..0000000
--- a/README.md
+++ /dev/null
@@ -1,148 +0,0 @@
-# Praat: doing phonetics by computer
-
-Most information on how the program works is in its manual and on http://www.praat.org,
-which is also where you can download the latest binary executables from.
-
-## 1. Compiling the source code
-
-You need the Praat source code only in the following cases:
-
-1. you want to extend Praat’s functionality by adding C or C++ code to it; or
-2. you want to understand or reuse Praat’s source code; or
-3. you want to compile Praat for a computer for which we do not provide binary executables,
-e.g. Linux for non-Intel computers, FreeBSD, HP-UX, SGI, or SPARC Solaris.
-
-Before trying to dive into Praat’s source code, you should be familiar with the working of the Praat program
-and with writing Praat scripts. The Praat program can be downloaded from http://www.praat.org.
-
-### 1.1. License
-
-All of the code is available on GitHub under the
-[GNU General Public License](http://www.fon.hum.uva.nl/praat/GNU_General_Public_License.txt).
-Of course, any improvements are welcomed by the authors.
-
-### 1.2. Downloading the archive
-
-To download the latest source code of Praat from GitHub,
-click on the *zip* or *tar.gz* archive at the latest release,
-or clone ("fork") the praat/praat repository at any later change.
-
-### 1.3. Steps to take if you want to extend Praat
-
-First make sure that the source code can be compiled as is.
-Then add your own buttons by editing `main/main_Praat.cpp` or `fon/praat_Fon.cpp`.
-Consult the manual page on [Programming](http://www.fon.hum.uva.nl/praat/manual/Programming_with_Praat.html).
-
-### 1.4. The programming language
-
-Most of the source code is written in C++, but some parts are written in C.
-The code requires that your compiler supports C99 and C++11 (for e.g. `char32_t` and rvalue references).
-
-### 1.5. Compiling for Windows
-
-Install Cygwin (on a 64-bit computer),
-and under Cygwin install the Devel packages i686-w64-mingw32 (for 32-bit targets)
-and/or x86_64-w64-mingw32 (for 64-bit targets).
-Move the Praat sources directory somewhere in your `/home/yourname` tree.
-Go into this sources directory (where the folders `fon` and `sys` are) and type
-
-    cp makefiles/makefile.defs.mingw32 ./makefile.defs
-
-if you want to build Praat's 32-bit edition, or
-
-    cp makefiles/makefile.defs.mingw64 ./makefile.defs
-
-if you want to build Praat's 64-bit edition. Then type `make` to build `Praat.exe`
-(use `make -j4` to speed this up, e.g. to use 4 processors in parallel).
-
-Cross-compiling for Windows: use the [MinGW](http://www.mingw.org) compiler, perhaps on a Mac or Linux computer.
-You can find toolchains for 32 and 64 bits
-[here](http://sourceforge.net/projects/mingw-w64/files/) (look for Automated Builds).
-Install the GDI+ headers and the GDI+ library ([32-bit](http://www.fon.hum.uva.nl/praat/libgdiplus.a-32.zip);
-for 64-bit Windows just extract a GDI+ DLL from somewhere).
-Then copy the file `makefiles/makefile.defs.darmin32` or `makefiles/makefile.defs.darmin64`
-to the sources directory and rename it to `makefile.defs`.
-Then type `make`.
-
-### 1.6. Compiling for Macintosh
-
-Extract the *xcodeproj64.zip* file from the latest release into the directory that contains
-`sys`, `fon`, `dwtools` and so on. Then open the project `praat64.xcodeproj` in Xcode
-and choose Build or Run for the target `praat_mac64`.
-If you want to compile the 32-bit edition instead, try *xcodeproj32.zip*.
-
-If you get an error message like “Code Signing Identity xxx does not match any valid, non-expired,
-code-signing certificate in your keychain”, then select the target `praat_mac64`, go to Info → Build,
-and switch “Code Signing Identity” to “Don’t Code Sign”,
-or sign with your own certificate if you have one as a registered Apple developer.
-
-If you get lots of errors saying “Expected unqualified-id” or “Unknown type name NSString”,
-then you may have to switch the Type of some .cpp file from “C++ Source” to “Objective-C++ Source”
-(under “Identity and Type” in the righthand sidebar).
-
-If you want to build the Praat library instead of the executable,
-try the target `praat_mac64_a` (static) or `praat_mac64_so` (dynamic).
-
-### 1.7. Compiling on Linux and other Unixes
-
-To set up the required system libraries, install some graphics and sound packages:
-
-	sudo apt-get install libgtk2.0-dev
-	sudo apt-get install libasound2-dev
-	sudo apt-get install libpulse-dev
-
-To set up your source tree for Linux, go to Praat's sources directory (where the folders `fon` and `sys` are) and type
-
-    cp makefiles/makefile.defs.linux.pulse ./makefile.defs
-
-To build the Praat executable, type `make`.
-If your Unix isn’t Linux, you may have to edit the library names in the makefile
-(you may need pthread, gtk-x11-2.0, gdk-x11-2.0, atk-1.0, pangoft2-1.0, gdk_pixbuf-2.0, m, pangocairo-1.0,
-cairo, gio-2.0, pango-1.0, freetype, fontconfig, gobject-2.0, gmodule-2.0, gthread-2.0, rt, glib-2.0, asound).
-
-When compiling Praat on an external supercomputer or so, you will not have sound.
-If you do have `libgtk2.0-dev` (and its dependencies), do
-
-    cp makefiles/makefile.defs.linux.silent ./makefile.defs
-
-Then type `make` to build the program. If your Unix isn’t Linux,
-you may have to edit the library names in the makefile (you may need pthread, gtk-x11-2.0, gdk-x11-2.0, atk-1.0,
-pangoft2-1.0, gdk_pixbuf-2.0, m, pangocairo-1.0, cairo, gio-2.0, pango-1.0, freetype, fontconfig, gobject-2.0,
-gmodule-2.0, gthread-2.0, rt, glib-2.0).
-
-## 2. Binary executables
-
-While the [Praat website](http://www.praat.org) contains the latest executable for all platforms that we support
-(or used to support), the releases on GitHub contain many older executables as well.
-
-The meaning of the names of binary files available on GitHub is as follows:
-
-### 2.1. Windows binaries
-- `praatXXXX_win64.zip`: zipped executable for 64-bit Windows (XP and higher)
-- `praatXXXX_win32.zip`: zipped executable for 32-bit Windows (XP and higher)
-- `praatconXXXX_win64.zip`: zipped executable for 64-bit Windows, console edition
-- `praatconXXXX_win32.zip`: zipped executable for 32-bit Windows, console edition
-- `praatconXXXX_win32sit.exe`: self-extracting StuffIt archive with executable for 32-bit Windows, console edition
-- `praatXXXX_win98.zip`: zipped executable for Windows 98
-- `praatXXXX_win98sit.exe`: self-extracting StuffIt archive with executable for Windows 98
-
-### 2.2. Mac binaries
-- `praatXXXX_mac64.dmg`: disk image with executable for 64-bit Intel Macs (Cocoa)
-- `praatXXXX_mac32.dmg`: disk image with executable for 32-bit Intel Macs (Carbon)
-- `praatXXXX_xcodeproj64.zip`: zipped Xcode project file for the 64-bit edition (Cocoa)
-- `praatXXXX_xcodeproj32.zip`: zipped Xcode project file for the 32-bit edition (Carbon)
-- `praatXXXX_macU.dmg`: disk image with universal executable for (32-bit) PPC and Intel Macs (Carbon)
-- `praatXXXX_macU.sit`: StuffIt archive with universal executable for (32-bit) PPC and Intel Macs (Carbon)
-- `praatXXXX_macU.zip`: zipped universal executable for (32-bit) PPC and Intel Macs (Carbon)
-- `praatXXXX_macX.zip`: zipped executable for MacOS X (PPC)
-- `praatXXXX_mac9.sit`: StuffIt archive with executable for MacOS 9
-- `praatXXXX_mac9.zip`: zipped executable for MacOS 9
-- `praatXXXX_mac7.sit`: StuffIt archive with executable for MacOS 7
-
-### 2.3. Unix binaries
-- `praatXXXX_linux64.tar.gz`: gzipped tarred executable for 64-bit Linux (GTK)
-- `praatXXXX_linux32.tar.gz`: gzipped tarred executable for 32-bit Linux (GTK)
-- `praatXXXX_linux_motif64.tar.gz`: gzipped tarred executable for 64-bit Linux (Motif)
-- `praatXXXX_linux_motif32.tar.gz`: gzipped tarred executable for 32-bit Linux (Motif)
-- `praatXXXX_solaris.tar.gz`: gzipped tarred executable for Solaris
-
diff --git a/artsynth/Art_Speaker_to_VocalTract.cpp b/artsynth/Art_Speaker_to_VocalTract.cpp
index 84b615e..99d2391 100644
--- a/artsynth/Art_Speaker_to_VocalTract.cpp
+++ b/artsynth/Art_Speaker_to_VocalTract.cpp
@@ -22,22 +22,32 @@
 #include "Art_Speaker_Delta.h"
 #include "Art_Speaker_to_VocalTract.h"
 
-autoVocalTract Art_Speaker_to_VocalTract (Art art, Speaker speaker) {
-	autoDelta delta = Speaker_to_Delta (speaker);
-	Art_Speaker_intoDelta (art, speaker, delta.get());
+VocalTract Art_Speaker_to_VocalTract (Art art, Speaker speaker)
+{
+	VocalTract thee = NULL;
+	long isection;
 	double area [300];
-	constexpr double sectionLength = 0.001;   // one millimetre
-	int numberOfSections = 0;
-	for (long isection = 1; isection <= 27; isection ++) {
+	int numberOfSections;
+	double sectionLength = 0.001;   // one millimetre
+	Delta delta = NULL;
+
+	delta = Speaker_to_Delta (speaker); if (! delta) goto end;
+	Art_Speaker_intoDelta (art, speaker, delta);
+	numberOfSections = 0;
+	for (isection = 1; isection <= 27; isection ++)
+	{
 		Delta_Tube tube = delta -> tube + 37 + isection;
 		int numberOfConstantSections = lround (tube -> Dxeq / sectionLength);
 		double constantArea = tube -> Dyeq * tube -> Dzeq;
-		for (int jsection = 1; jsection <= numberOfConstantSections; jsection ++)
+		int jsection; for (jsection = 1; jsection <= numberOfConstantSections; jsection ++)
 			area [++ numberOfSections] = constantArea;
 	}
-	autoVocalTract thee = VocalTract_create (numberOfSections, sectionLength);
-	for (long isection = 1; isection <= numberOfSections; isection ++)
+	thee = VocalTract_create (numberOfSections, sectionLength); if (! thee) goto end;
+	for (isection = 1; isection <= numberOfSections; isection ++)
 		thy z [1] [isection] = area [isection];
+
+end:
+	forget (delta);
 	return thee;
 }
 
diff --git a/artsynth/Art_Speaker_to_VocalTract.h b/artsynth/Art_Speaker_to_VocalTract.h
index 05e50b4..4391b67 100644
--- a/artsynth/Art_Speaker_to_VocalTract.h
+++ b/artsynth/Art_Speaker_to_VocalTract.h
@@ -1,6 +1,6 @@
 /* Art_Speaker_to_VocalTract.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,6 +21,6 @@
 #include "Speaker.h"
 #include "VocalTract.h"
 
-autoVocalTract Art_Speaker_to_VocalTract (Art art, Speaker speaker);
+VocalTract Art_Speaker_to_VocalTract (Art art, Speaker speaker);
 
 /* End of file Art_Speaker_to_VocalTract.h */
diff --git a/artsynth/Articulation.cpp b/artsynth/Articulation.cpp
index 9ab4a02..38ee2d3 100644
--- a/artsynth/Articulation.cpp
+++ b/artsynth/Articulation.cpp
@@ -1,6 +1,6 @@
 /* Articulation.cpp
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,9 +43,9 @@
 #include "enums_getValue.h"
 #include "Articulation_enums.h"
 
-Thing_implement (Art, Daata, 0);
+Thing_implement (Art, Data, 0);
 
-autoArt Art_create () {
+Art Art_create (void) {
 	return Thing_new (Art);
 }
 
diff --git a/artsynth/Articulation.h b/artsynth/Articulation.h
index 1cd7675..4cd041f 100644
--- a/artsynth/Articulation.h
+++ b/artsynth/Articulation.h
@@ -2,7 +2,7 @@
 #define _Articulation_h_
 /* Articulation.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,8 +28,9 @@
 #include "Articulation_enums.h"
 
 #include "Articulation_def.h"
+oo_CLASS_CREATE (Art, Data);
 
-autoArt Art_create ();
+Art Art_create (void);
 /*
 	Return value:
 		an array of double, with indices from enum Art.
diff --git a/artsynth/Articulation_def.h b/artsynth/Articulation_def.h
index 8847f01..6e5f9a2 100644
--- a/artsynth/Articulation_def.h
+++ b/artsynth/Articulation_def.h
@@ -1,6 +1,6 @@
 /* Articulation_def.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Art
-oo_DEFINE_CLASS (Art, Daata)
+oo_DEFINE_CLASS (Art, Data)
 
 	oo_DOUBLE_SET (art, kArt_muscle)
 
diff --git a/artsynth/Artword.cpp b/artsynth/Artword.cpp
index 64a1416..73dc831 100644
--- a/artsynth/Artword.cpp
+++ b/artsynth/Artword.cpp
@@ -38,13 +38,14 @@
 #include "oo_DESCRIPTION.h"
 #include "Artword_def.h"
 
-Thing_implement (Artword, Daata, 0);
+Thing_implement (Artword, Data, 0);
 
-autoArtword Artword_create (double totalTime) {
-	autoArtword me = Thing_new (Artword);
+Artword Artword_create (double totalTime) {
+	Artword me = Thing_new (Artword);
+	if (! me) return NULL;
 	my totalTime = totalTime;
 	for (int i = 1; i <= kArt_muscle_MAX; i ++)
-		Artword_setDefault (me.get(), i);
+		Artword_setDefault (me, i);
 	return me;
 }
 
@@ -113,7 +114,8 @@ void Artword_removeTarget (Artword me, int feature, int iTarget) {
 	else if (iTarget == f -> numberOfTargets)
 		f -> targets [f -> numberOfTargets] = 0.0;
 	else {
-		for (int i = iTarget; i < f -> numberOfTargets; i ++) {
+		int i;
+		for (i = iTarget; i < f -> numberOfTargets; i ++) {
 			f -> times [i] = f -> times [i + 1];
 			f -> targets [i] = f -> targets [i + 1];
 		}
@@ -134,7 +136,7 @@ void Artword_draw (Artword me, Graphics g, int feature, int garnish) {
 		autoNUMvector <double> x (1, numberOfTargets);
 		autoNUMvector <double> y (1, numberOfTargets);
 		Graphics_setInner (g);
-		Graphics_setWindow (g, 0, my totalTime, -1.0, 1.0);
+		Graphics_setWindow (g, 0, my totalTime, -1, 1);
 		for (int i = 1; i <= numberOfTargets; i ++) {
 			x [i] = my data [feature]. times [i];
 			y [i] = my data [feature]. targets [i];
@@ -145,10 +147,10 @@ void Artword_draw (Artword me, Graphics g, int feature, int garnish) {
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 3, true, true, true);
-		Graphics_textTop (g, false, kArt_muscle_getText (feature));
-		Graphics_textBottom (g, true, U"Time (s)");
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+		Graphics_marksLeft (g, 3, TRUE, TRUE, TRUE);
+		Graphics_textTop (g, FALSE, kArt_muscle_getText (feature));
+		Graphics_textBottom (g, TRUE, U"Time (s)");
 	}
 }
 
diff --git a/artsynth/Artword.h b/artsynth/Artword.h
index f7f5a88..431c0c2 100644
--- a/artsynth/Artword.h
+++ b/artsynth/Artword.h
@@ -2,7 +2,7 @@
 #define _Artword_h_
 /* Artword.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,8 +23,9 @@
 #include "Graphics.h"
 
 #include "Artword_def.h"
+oo_CLASS_CREATE (Artword, Data);
 
-autoArtword Artword_create (double totalTime);
+Artword Artword_create (double totalTime);
 
 void Artword_setDefault (Artword me, int feature);
 /*
@@ -48,7 +49,7 @@ void Artword_removeTarget (Artword me, int feature, int iTarget);
 		If "iTarget" is the first or the last target in the list,
 		only set the target to zero (begin and end targets remain).
 	Preconditions:
-		self != nullptr;
+		self != NULL;
 		feature in enum Art_MUSCLE;
 		iTarget >= 1;
 		iTarget <= self -> data [feature]. numberOfTargets;
@@ -64,13 +65,21 @@ void Artword_removeTarget (Artword me, int feature, int iTarget);
 				self -> data [feature]. targets [i] == old self -> data [feature]. targets [i + 1];	
 */
 
+/*
+	Implemented methods:
+
+		int Artword::writeText (I, FILE *f)
+			writes an Artword as text to the stream f.
+
+*/
+
 void Artword_intoArt (Artword me, Art art, double tim);
 /*
 	Function:
 		Linear interpolation between targets, into an existing Art.
 	Preconditions:
-		me != nullptr;
-		art != nullptr;
+		me != NULL;
+		art != NULL;
 */
 	
 void Artword_draw (Artword me, Graphics graphics, int feature, int garnish);
diff --git a/artsynth/ArtwordEditor.cpp b/artsynth/ArtwordEditor.cpp
index 5121880..667497a 100644
--- a/artsynth/ArtwordEditor.cpp
+++ b/artsynth/ArtwordEditor.cpp
@@ -22,7 +22,8 @@
 
 Thing_implement (ArtwordEditor, Editor, 0);
 
-void structArtwordEditor :: v_destroy () noexcept {
+void structArtwordEditor :: v_destroy () {
+	forget (graphics);
 	ArtwordEditor_Parent :: v_destroy ();
 }
 
@@ -35,14 +36,16 @@ static void updateList (ArtwordEditor me) {
 			Melder_cat (Melder_single (a -> times [i]), U"  ", Melder_single (a -> targets [i])),
 			i);
 	}
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my graphics);
 }
 
-static void gui_button_cb_removeTarget (ArtwordEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_removeTarget (I, GuiButtonEvent event) {
+	(void) event;
+	iam (ArtwordEditor);
 	Artword artword = (Artword) my data;
 	long numberOfSelectedPositions;
 	long *selectedPositions = GuiList_getSelectedPositions (my list, & numberOfSelectedPositions);   // BUG memory
-	if (selectedPositions) {
+	if (selectedPositions != NULL) {
 		for (long ipos = numberOfSelectedPositions; ipos > 0; ipos --)
 			Artword_removeTarget (artword, my feature, selectedPositions [ipos]);
 	}
@@ -51,7 +54,9 @@ static void gui_button_cb_removeTarget (ArtwordEditor me, GuiButtonEvent /* even
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_button_cb_addTarget (ArtwordEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_addTarget (I, GuiButtonEvent event) {
+	(void) event;
+	iam (ArtwordEditor);
 	Artword artword = (Artword) my data;
 	char32 *timeText = GuiText_getString (my time);
 	double tim = Melder_atof (timeText);
@@ -77,39 +82,43 @@ static void gui_button_cb_addTarget (ArtwordEditor me, GuiButtonEvent /* event *
 	} else {
 		GuiList_insertItem (my list, itemText, i);
 	}
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my graphics);
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_radiobutton_cb_toggle (ArtwordEditor me, GuiRadioButtonEvent event) {
+static void gui_radiobutton_cb_toggle (I, GuiRadioButtonEvent event) {
+	iam (ArtwordEditor);
 	my feature = event -> position;
 	Melder_assert (my feature > 0);
 	Melder_assert (my feature <= kArt_muscle_MAX);
 	updateList (me);
 }
 
-static void gui_drawingarea_cb_expose (ArtwordEditor me, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! my graphics) return;
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (ArtwordEditor);
+	(void) event;
+	if (my graphics == NULL) return;
 	Artword artword = (Artword) my data;
-	Graphics_clearWs (my graphics.get());
-	Artword_draw (artword, my graphics.get(), my feature, true);
+	Graphics_clearWs (my graphics);
+	Artword_draw (artword, my graphics, my feature, TRUE);
 }
 
-static void gui_drawingarea_cb_click (ArtwordEditor me, GuiDrawingArea_ClickEvent event) {
-	if (! my graphics) return;
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (ArtwordEditor);
+	if (my graphics == NULL) return;
 	Artword artword = (Artword) my data;
-	Graphics_setWindow (my graphics.get(), 0, artword -> totalTime, -1.0, 1.0);
-	Graphics_setInner (my graphics.get());
+	Graphics_setWindow (my graphics, 0, artword -> totalTime, -1.0, 1.0);
+	Graphics_setInner (my graphics);
 	double xWC, yWC;
-	Graphics_DCtoWC (my graphics.get(), event -> x, event -> y, & xWC, & yWC);
-	Graphics_unsetInner (my graphics.get());
+	Graphics_DCtoWC (my graphics, event -> x, event -> y, & xWC, & yWC);
+	Graphics_unsetInner (my graphics);
 	GuiText_setString (my time,  Melder_fixed (xWC, 6));
 	GuiText_setString (my value, Melder_fixed (yWC, 6));
 }
 
 void structArtwordEditor :: v_dataChanged () {
 	updateList (this);
-	Graphics_updateWs (graphics.get());
+	Graphics_updateWs (graphics);
 }
 
 void structArtwordEditor :: v_createChildren () {
@@ -117,12 +126,12 @@ void structArtwordEditor :: v_createChildren () {
 	GuiLabel_createShown (d_windowForm, 40, 100, dy + 3, dy + 3 + Gui_LABEL_HEIGHT, U"Targets:", 0);
 	GuiLabel_createShown (d_windowForm, 5, 65, dy + 20, dy + 20 + Gui_LABEL_HEIGHT, U"Times:", 0);
 	GuiLabel_createShown (d_windowForm, 80, 140, dy + 20, dy + 20 + Gui_LABEL_HEIGHT, U"Values:", 0);
-	list = GuiList_createShown (d_windowForm, 0, 140, dy + 40, dy + 340, true, nullptr);
+	list = GuiList_createShown (d_windowForm, 0, 140, dy + 40, dy + 340, true, NULL);
 
 	GuiButton_createShown (d_windowForm, 10, 130, dy + 410, dy + 410 + Gui_PUSHBUTTON_HEIGHT, U"Remove target", gui_button_cb_removeTarget, this, 0);
 
 	drawingArea = GuiDrawingArea_createShown (d_windowForm, 170, 470, dy + 10, dy + 310,
-		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, nullptr, this, 0);
+		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, NULL, this, 0);
 
 	GuiLabel_createShown (d_windowForm, 220, 270, dy + 340, dy + 340 + Gui_LABEL_HEIGHT, U"Time:", 0);
 	time = GuiText_createShown (d_windowForm, 270, 370, dy + 340, dy + 340 + Gui_TEXTFIELD_HEIGHT, 0);
@@ -145,14 +154,14 @@ void structArtwordEditor :: v_createChildren () {
 	GuiRadioButton_set (button [feature]);
 }
 
-autoArtwordEditor ArtwordEditor_create (const char32 *title, Artword data) {
+ArtwordEditor ArtwordEditor_create (const char32 *title, Artword data) {
 	try {
 		autoArtwordEditor me = Thing_new (ArtwordEditor);
-		Editor_init (me.get(), 20, 40, 650, 600, title, data);
+		Editor_init (me.peek(), 20, 40, 650, 600, title, data);
 		//XtUnmanageChild (my menuBar);
 		my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-		updateList (me.get());
-		return me;
+		updateList (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Artword window not created.");
 	}
diff --git a/artsynth/ArtwordEditor.h b/artsynth/ArtwordEditor.h
index 9c690f2..efe2beb 100644
--- a/artsynth/ArtwordEditor.h
+++ b/artsynth/ArtwordEditor.h
@@ -23,14 +23,14 @@
 #include "Artword.h"
 
 Thing_define (ArtwordEditor, Editor) {
-	autoGraphics graphics;
+	Graphics graphics;
 	int feature;
 	GuiList list;
 	GuiDrawingArea drawingArea;
 	GuiText time, value;
 	GuiRadioButton button [1 + kArt_muscle_MAX];
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_createChildren ()
 		override;
@@ -38,7 +38,7 @@ Thing_define (ArtwordEditor, Editor) {
 		override;
 };
 
-autoArtwordEditor ArtwordEditor_create (const char32 *title, Artword data);
+ArtwordEditor ArtwordEditor_create (const char32 *title, Artword data);
 
 /* End of file ArtwordEditor.h */
 #endif
diff --git a/artsynth/Artword_Speaker.cpp b/artsynth/Artword_Speaker.cpp
index f363a13..1a388cd 100644
--- a/artsynth/Artword_Speaker.cpp
+++ b/artsynth/Artword_Speaker.cpp
@@ -1,6 +1,6 @@
 /* Artword_Speaker.cpp
  *
- * Copyright (C) 1992-2011,2016 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,24 +22,26 @@
 
 void Artword_Speaker_draw (Artword artword, Speaker speaker, Graphics g, int numberOfSteps) {
 	double oldLineWidth = Graphics_inqLineWidth (g);
-	autoArt art = Art_create ();
+	Art art = Art_create ();
 	for (int i = 0; i <= numberOfSteps; i ++) {
-		Artword_intoArt (artword, art.get(), i * artword -> totalTime / numberOfSteps);
+		Artword_intoArt (artword, art, i * artword -> totalTime / numberOfSteps);
 		Graphics_setLineWidth (g, 2 + i + i);
-		Art_Speaker_draw (art.get(), speaker, g);
+		Art_Speaker_draw (art, speaker, g);
 	}
+	forget (art);
 	Graphics_setLineWidth (g, oldLineWidth);
 }
 
-void Artword_Speaker_movie (Artword artword, Speaker speaker, Graphics graphics) {
-	constexpr double timeStep = 0.03;
-	autoArt art = Art_create ();
+void Artword_Speaker_movie (Artword artword, Speaker speaker, Graphics g) {
+	double timeStep = 0.00001;
+	Art art = Art_create ();
 	for (double tim = 0.0; tim < artword -> totalTime; tim += timeStep) {
-		Artword_intoArt (artword, art.get(), tim);
-		Graphics_beginMovieFrame (graphics, & Graphics_WHITE);
-		Graphics_setWindow (graphics, 0.0, 1.0, 0.0, 1.0);
-		Art_Speaker_draw (art.get(), speaker, graphics);
-		Graphics_endMovieFrame (graphics, timeStep);
+		Artword_intoArt (artword, art, tim);
+		Graphics_setViewport (g, 0, 1, 0, 1);
+		Graphics_clearWs (g);
+		Art_Speaker_draw (art, speaker, g);
+		Graphics_flushWs (g);
+		// TODO: we should pause here a bit
 	}
 }
 
diff --git a/artsynth/Artword_Speaker_Sound.cpp b/artsynth/Artword_Speaker_Sound.cpp
index e234f44..02c4b92 100644
--- a/artsynth/Artword_Speaker_Sound.cpp
+++ b/artsynth/Artword_Speaker_Sound.cpp
@@ -1,6 +1,6 @@
 /* Artword_Speaker_Sound.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,40 +21,33 @@
 #include "Artword_Speaker.h"
 #include "Art_Speaker.h"
 
-Thing_define (Artword_Speaker_Sound_PlayInfo, Thing) {
+struct playInfo {
 	Artword artword;
 	Speaker speaker;
 	Graphics graphics;
 };
 
-Thing_implement (Artword_Speaker_Sound_PlayInfo, Thing, 0);
-
-static int playCallback (Artword_Speaker_Sound_PlayInfo me, int /* phase */, double /* tmin */, double /* tmax */, double t) {
-	static autoArt art;
-	if (! art)
-		art = Art_create ();
-	Artword_intoArt (my artword, art.get(), t);
-	Graphics_beginMovieFrame (my graphics, & Graphics_WHITE);
-	Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
-	Art_Speaker_draw (art.get(), my speaker, my graphics);
-	Graphics_endMovieFrame (my graphics, 0.0);
+static int playCallback (void *playClosure, int phase, double tmin, double tmax, double t) {
+	struct playInfo *me = (struct playInfo *) playClosure;
+	static Art art;
+	(void) phase;
+	(void) tmin;
+	(void) tmax;
+	if (! art) art = Art_create ();
+	Artword_intoArt (my artword, art, t);
+	Graphics_clearWs (my graphics);
+	Art_Speaker_draw (art, my speaker, my graphics);
 	return 1;
 }
 
 void Artword_Speaker_Sound_movie (Artword artword, Speaker speaker, Sound sound, Graphics graphics) {
 	try {
-		static autoArtword_Speaker_Sound_PlayInfo info;
-		if (! info)
-			info = Thing_new (Artword_Speaker_Sound_PlayInfo);
-		info -> artword = artword;
-		info -> speaker = speaker;
-		info -> graphics = graphics;
-		if (sound) {
-			Sound_play (sound, playCallback, info.get());
-		} else {
-			autoSound silence = Sound_createSimple (1, artword -> totalTime, 44100.0);
-			Sound_play (silence.get(), playCallback, info.get());
-		}
+		static struct playInfo info;   // must be static!!!
+		info. artword = artword;
+		info. speaker = speaker;
+		info. graphics = graphics;
+		autoSound mySound = sound ? NULL : Sound_createSimple (1, artword -> totalTime, 44100);
+		Sound_play (sound ? sound : mySound.peek(), playCallback, & info);
 	} catch (MelderError) {
 		Melder_throw (artword, U" & ", speaker, U": movie not played.");
 	}
diff --git a/artsynth/Artword_Speaker_to_Sound.cpp b/artsynth/Artword_Speaker_to_Sound.cpp
index 3d90666..28b7f1f 100644
--- a/artsynth/Artword_Speaker_to_Sound.cpp
+++ b/artsynth/Artword_Speaker_to_Sound.cpp
@@ -1,6 +1,6 @@
 /* Artword_Speaker_to_Sound.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,12 +21,12 @@
 #include "Art_Speaker_Delta.h"
 #include "Artword_Speaker_to_Sound.h"
 
-#define Dymin  0.00001
-#define criticalVelocity  10.0
+#define Dymin 0.00001
+#define criticalVelocity 10.0
 
-#define noiseFactor  0.1
+#define noiseFactor 0.1
 
-#define MONITOR_SAMPLES  100
+#define MONITOR_SAMPLES 11
 
 /* While debugging, some of these can be 1; otherwise, they are all 0: */
 #define EQUAL_TUBE_WIDTHS  0
@@ -36,137 +36,135 @@
 #define NO_RADIATION_DAMPING  0
 #define NO_BERNOULLI_EFFECT  0
 #define MASS_LEAPFROG  0
-#define B91  0
+#define B91 0
 
-autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
+Sound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 	double fsamp, int oversampling,
-	autoSound *out_w1, int iw1, autoSound *out_w2, int iw2, autoSound *out_w3, int iw3,
-	autoSound *out_p1, int ip1, autoSound *out_p2, int ip2, autoSound *out_p3, int ip3,
-	autoSound *out_v1, int iv1, autoSound *out_v2, int iv2, autoSound *out_v3, int iv3)
+	Sound *out_w1, int iw1, Sound *out_w2, int iw2, Sound *out_w3, int iw3,
+	Sound *out_p1, int ip1, Sound *out_p2, int ip2, Sound *out_p3, int ip3,
+	Sound *out_v1, int iv1, Sound *out_v2, int iv2, Sound *out_v3, int iv3)
 {
 	try {
 		autoSound result = Sound_createSimple (1, artword -> totalTime, fsamp);
 		long numberOfSamples = result -> nx;
-		double minTract [1+78], maxTract [1+78];   // for drawing
-		double Dt = 1.0 / fsamp / oversampling,
+		double minTract [1+78], maxTract [1+78];   /* For drawing. */
+		double Dt = 1 / fsamp / oversampling,
 			rho0 = 1.14,
-			c = 353.0,
+			c = 353,
 			onebyc2 = 1.0 / (c * c),
 			rho0c2 = rho0 * c * c,
 			halfDt = 0.5 * Dt,
-			twoDt = 2.0 * Dt,
+			twoDt = 2 * Dt,
 			halfc2Dt = 0.5 * c * c * Dt,
-			twoc2Dt = 2.0 * c * c * Dt,
+			twoc2Dt = 2 * c * c * Dt,
 			onebytworho0 = 1.0 / (2.0 * rho0),
 			Dtbytworho0 = Dt / (2.0 * rho0);
 		double tension, rrad, onebygrad, totalVolume;
 		autoArt art = Art_create ();
+		long sample;
+		int n, m, M;
 		autoDelta delta = Speaker_to_Delta (speaker);
 		autoMelderMonitor monitor (U"Articulatory synthesis");
-		Artword_intoArt (artword, art.get(), 0.0);
-		Art_Speaker_intoDelta (art.get(), speaker, delta.get());
-		int M = delta -> numberOfTubes;
+		Artword_intoArt (artword, art.peek(), 0.0);
+		Art_Speaker_intoDelta (art.peek(), speaker, delta.peek());
+		M = delta -> numberOfTubes;
 		autoSound w1, w2, w3, p1, p2, p3, v1, v2, v3;
-		if (iw1 > 0 && iw1 <= M) w1 = Sound_createSimple (1, artword -> totalTime, fsamp); else iw1 = 0;
-		if (iw2 > 0 && iw2 <= M) w2 = Sound_createSimple (1, artword -> totalTime, fsamp); else iw2 = 0;
-		if (iw3 > 0 && iw3 <= M) w3 = Sound_createSimple (1, artword -> totalTime, fsamp); else iw3 = 0;
-		if (ip1 > 0 && ip1 <= M) p1 = Sound_createSimple (1, artword -> totalTime, fsamp); else ip1 = 0;
-		if (ip2 > 0 && ip2 <= M) p2 = Sound_createSimple (1, artword -> totalTime, fsamp); else ip2 = 0;
-		if (ip3 > 0 && ip3 <= M) p3 = Sound_createSimple (1, artword -> totalTime, fsamp); else ip3 = 0;
-		if (iv1 > 0 && iv1 <= M) v1 = Sound_createSimple (1, artword -> totalTime, fsamp); else iv1 = 0;
-		if (iv2 > 0 && iv2 <= M) v2 = Sound_createSimple (1, artword -> totalTime, fsamp); else iv2 = 0;
-		if (iv3 > 0 && iv3 <= M) v3 = Sound_createSimple (1, artword -> totalTime, fsamp); else iv3 = 0;
+		if (iw1 > 0 && iw1 <= M) w1.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iw1 = 0;
+		if (iw2 > 0 && iw2 <= M) w2.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iw2 = 0;
+		if (iw3 > 0 && iw3 <= M) w3.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iw3 = 0;
+		if (ip1 > 0 && ip1 <= M) p1.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else ip1 = 0;
+		if (ip2 > 0 && ip2 <= M) p2.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else ip2 = 0;
+		if (ip3 > 0 && ip3 <= M) p3.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else ip3 = 0;
+		if (iv1 > 0 && iv1 <= M) v1.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iv1 = 0;
+		if (iv2 > 0 && iv2 <= M) v2.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iv2 = 0;
+		if (iv3 > 0 && iv3 <= M) v3.reset (Sound_createSimple (1, artword -> totalTime, fsamp)); else iv3 = 0;
 		/* Initialize drawing. */
-		for (int i = 1; i <= 78; i ++) {
-			minTract [i] = 100.0;
-			maxTract [i] = -100.0;
-		}
+		{ int i; for (i = 1; i <= 78; i ++) { minTract [i] = 100; maxTract [i] = -100; } }
 		totalVolume = 0.0;
-		for (int m = 1; m <= M; m ++) {
+		for (m = 1; m <= M; m ++) {
 			Delta_Tube t = delta->tube + m;
 			if (! t -> left1 && ! t -> right1) continue;
-			t->Dx = t->Dxeq; t->dDxdt = 0.0;   // 5.113 (numbers refer to equations in Boersma (1998)
-			t->Dy = t->Dyeq; t->dDydt = 0.0;   // 5.113
-			t->Dz = t->Dzeq;   // 5.113
+			t->Dx = t->Dxeq; t->dDxdt = 0;   /* 5.113 */
+			t->Dy = t->Dyeq; t->dDydt = 0;   /* 5.113 */
+			t->Dz = t->Dzeq;   /* 5.113 */
 			t->A = t->Dz * ( t->Dy >= t->dy ? t->Dy + Dymin :
 				t->Dy <= - t->dy ? Dymin :
-				(t->dy + t->Dy) * (t->dy + t->Dy) / (4.0 * t->dy) + Dymin );   // 4.4, 4.5
+				(t->dy + t->Dy) * (t->dy + t->Dy) / (4 * t->dy) + Dymin );   /* 4.4, 4.5 */
 			#if EQUAL_TUBE_WIDTHS
 				t->A = 0.0001;
 			#endif
-			t->Jleft = t->Jright = 0.0;   // 5.113
-			t->Qleft = t->Qright = rho0c2;   // 5.113
-			t->pleft = t->pright = 0.0;   // 5.114
-			t->Kleft = t->Kright = 0.0;   // 5.114
-			t->V = t->A * t->Dx;   // 5.114
+			t->Jleft = t->Jright = 0;   /* 5.113 */
+			t->Qleft = t->Qright = rho0c2;   /* 5.113 */
+			t->pleft = t->pright = 0;   /* 5.114 */
+			t->Kleft = t->Kright = 0;   /* 5.114 */
+			t->V = t->A * t->Dx;   /* 5.114 */
 			totalVolume += t->V;
 		}
 		//Melder_casual (U"Starting volume: ", totalVolume * 1000, U" litres.");
-		for (long sample = 1; sample <= numberOfSamples; sample ++) {
+		for (sample = 1; sample <= numberOfSamples; sample ++) {
 			double time = (sample - 1) / fsamp;
-			Artword_intoArt (artword, art.get(), time);
-			Art_Speaker_intoDelta (art.get(), speaker, delta.get());
+			Artword_intoArt (artword, art.peek(), time);
+			Art_Speaker_intoDelta (art.peek(), speaker, delta.peek());
 			if (sample % MONITOR_SAMPLES == 0 && monitor.graphics()) {   // because we can be in batch
 				Graphics graphics = monitor.graphics();
 				double area [1+78];
+				Graphics_Viewport vp;
 				for (int i = 1; i <= 78; i ++) {
 					area [i] = delta -> tube [i]. A;
 					if (area [i] < minTract [i]) minTract [i] = area [i];
 					if (area [i] > maxTract [i]) maxTract [i] = area [i];
 				}
-				Graphics_beginMovieFrame (graphics, & Graphics_WHITE);
+				Graphics_clearWs (graphics);
 
-				Graphics_Viewport vp = Graphics_insetViewport (monitor.graphics(), 0.0, 0.5, 0.5, 1.0);
-				Graphics_setWindow (graphics, 0.0, 1.0, 0.0, 0.05);
+				vp = Graphics_insetViewport (monitor.graphics(), 0, 0.5, 0.5, 1);
+				Graphics_setWindow (graphics, 0, 1, 0, 0.05);
 				Graphics_setColour (graphics, Graphics_RED);
-				Graphics_function (graphics, minTract, 1, 35, 0.0, 0.9);
-				Graphics_function (graphics, maxTract, 1, 35, 0.0, 0.9);
+				Graphics_function (graphics, minTract, 1, 35, 0, 0.9);
+				Graphics_function (graphics, maxTract, 1, 35, 0, 0.9);
 				Graphics_setColour (graphics, Graphics_BLACK);
-				Graphics_function (graphics, area, 1, 35, 0.0, 0.9);
+				Graphics_function (graphics, area, 1, 35, 0, 0.9);
 				Graphics_setLineType (graphics, Graphics_DOTTED);
-				Graphics_line (graphics, 0.0, 0.0, 1.0, 0.0);
+				Graphics_line (graphics, 0, 0, 1, 0);
 				Graphics_setLineType (graphics, Graphics_DRAWN);
 				Graphics_resetViewport (graphics, vp);
 
 				vp = Graphics_insetViewport (graphics, 0, 0.5, 0, 0.5);
-				Graphics_setWindow (graphics, 0.0, 1.0, -0.000003, 0.00001);
+				Graphics_setWindow (graphics, 0, 1, -0.000003, 0.00001);
 				Graphics_setColour (graphics, Graphics_RED);
 				Graphics_function (graphics, minTract, 36, 37, 0.2, 0.8);
 				Graphics_function (graphics, maxTract, 36, 37, 0.2, 0.8);
 				Graphics_setColour (graphics, Graphics_BLACK);
 				Graphics_function (graphics, area, 36, 37, 0.2, 0.8);
 				Graphics_setLineType (graphics, Graphics_DOTTED);
-				Graphics_line (graphics, 0.0, 0.0, 1.0, 0.0);
+				Graphics_line (graphics, 0, 0, 1, 0);
 				Graphics_setLineType (graphics, Graphics_DRAWN);
 				Graphics_resetViewport (graphics, vp);
 
-				vp = Graphics_insetViewport (graphics, 0.5, 1.0, 0.5, 1.0);
-				Graphics_setWindow (graphics, 0.0, 1.0, 0.0, 0.001);
+				vp = Graphics_insetViewport (graphics, 0.5, 1, 0.5, 1);
+				Graphics_setWindow (graphics, 0, 1, 0, 0.001);
 				Graphics_setColour (graphics, Graphics_RED);
-				Graphics_function (graphics, minTract, 38, 64, 0.0, 1.0);
-				Graphics_function (graphics, maxTract, 38, 64, 0.0, 1.0);
+				Graphics_function (graphics, minTract, 38, 64, 0, 1);
+				Graphics_function (graphics, maxTract, 38, 64, 0, 1);
 				Graphics_setColour (graphics, Graphics_BLACK);
-				Graphics_function (graphics, area, 38, 64, 0.0, 1.0);
+				Graphics_function (graphics, area, 38, 64, 0, 1);
 				Graphics_setLineType (graphics, Graphics_DOTTED);
-				Graphics_line (graphics, 0.0, 0.0, 1.0, 0.0);
+				Graphics_line (graphics, 0, 0, 1, 0);
 				Graphics_setLineType (graphics, Graphics_DRAWN);
 				Graphics_resetViewport (graphics, vp);
 
-				vp = Graphics_insetViewport (graphics, 0.5, 1.0, 0.0, 0.5);
-				Graphics_setWindow (graphics, 0.0, 1.0, 0.001, 0.0);
+				vp = Graphics_insetViewport (graphics, 0.5, 1, 0, 0.5);
+				Graphics_setWindow (graphics, 0, 1, 0.001, 0);
 				Graphics_setColour (graphics, Graphics_RED);
-				Graphics_function (graphics, minTract, 65, 78, 0.5, 1.0);
-				Graphics_function (graphics, maxTract, 65, 78, 0.5, 1.0);
+				Graphics_function (graphics, minTract, 65, 78, 0.5, 1);
+				Graphics_function (graphics, maxTract, 65, 78, 0.5, 1);
 				Graphics_setColour (graphics, Graphics_BLACK);
-				Graphics_function (graphics, area, 65, 78, 0.5, 1.0);
+				Graphics_function (graphics, area, 65, 78, 0.5, 1);
 				Graphics_setLineType (graphics, Graphics_DRAWN);
 				Graphics_resetViewport (graphics, vp);
-
-				Graphics_endMovieFrame (graphics, 0.0);
 				Melder_monitor ((double) sample / numberOfSamples, U"Articulatory synthesis: ", Melder_half (time), U" seconds");
 			}
-			for (int n = 1; n <= oversampling; n ++) {
-				for (int m = 1; m <= M; m ++) {
+			for (n = 1; n <= oversampling; n ++) {
+				for (m = 1; m <= M; m ++) {
 					Delta_Tube t = delta -> tube + m;
 					if (! t -> left1 && ! t -> right1) continue;
 
@@ -175,26 +173,26 @@ autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 					#if CONSTANT_TUBE_LENGTHS
 						t->Dxnew = t->Dx;
 					#else
-						t->dDxdtnew = (t->dDxdt + Dt * 10000.0 * (t->Dxeq - t->Dx)) /
-							(1.0 + 200.0 * Dt);   // critical damping, 10 ms
+						t->dDxdtnew = (t->dDxdt + Dt * 10000 * (t->Dxeq - t->Dx)) /
+							(1 + 200 * Dt);   /* Critical damping, 10 ms. */
 						t->Dxnew = t->Dx + t->dDxdtnew * Dt;
 					#endif
 					/* 3-way: equal lengths. */
 					/* This requires left tubes to be processed before right tubes. */
 					if (t->left1 && t->left1->right2) t->Dxnew = t->left1->Dxnew;
 					t->Dz = t->Dzeq;   /* immediate... */
-					t->eleft = (t->Qleft - t->Kleft) * t->V;   // 5.115
-					t->eright = (t->Qright - t->Kright) * t->V;   // 5.115
-					t->e = 0.5 * (t->eleft + t->eright);   // 5.116
-					t->p = 0.5 * (t->pleft + t->pright);   // 5.116
-					t->DeltaP = t->e / t->V - rho0c2;   // 5.117
-					t->v = t->p / (rho0 + onebyc2 * t->DeltaP);   // 5.118
+					t->eleft = (t->Qleft - t->Kleft) * t->V;   /* 5.115 */
+					t->eright = (t->Qright - t->Kright) * t->V;   /* 5.115 */
+					t->e = 0.5 * (t->eleft + t->eright);   /* 5.116 */
+					t->p = 0.5 * (t->pleft + t->pright);   /* 5.116 */
+					t->DeltaP = t->e / t->V - rho0c2;   /* 5.117 */
+					t->v = t->p / (rho0 + onebyc2 * t->DeltaP);   /* 5.118 */
 					{
 						double dDy = t->Dyeq - t->Dy;
 						double cubic = t->k3 * dDy * dDy;
 						Delta_Tube l1 = t->left1, l2 = t->left2, r1 = t->right1, r2 = t->right2;
 						tension = dDy * (t->k1 + cubic);
-						t->B = 2.0 * t->Brel * sqrt (t->mass * (t->k1 + 3.0 * cubic));
+						t->B = 2 * t->Brel * sqrt (t->mass * (t->k1 + 3 * cubic));
 						if (t->k1left1 != 0.0 && l1)
 							tension += t->k1left1 * t->k1 * (dDy - (l1->Dyeq - l1->Dy));
 						if (t->k1left2 != 0.0 && l2)
@@ -207,157 +205,157 @@ autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 					if (t->Dy < t->dy) {
 						if (t->Dy >= - t->dy) {
 							double dDy = t->dy - t->Dy, dDy2 = dDy * dDy;
-							tension += dDy2 / (4.0 * t->dy) * (t->s1 + 0.5 * t->s3 * dDy2);
-							t->B += 2.0 * dDy / (2.0 * t->dy) *
+							tension += dDy2 / (4 * t->dy) * (t->s1 + 0.5 * t->s3 * dDy2);
+							t->B += 2 * dDy / (2 * t->dy) *
 								sqrt (t->mass * (t->s1 + t->s3 * dDy2));
 						} else {
 							tension -= t->Dy * (t->s1 + t->s3 * (t->Dy * t->Dy + t->dy * t->dy));
-							t->B += 2.0 * sqrt (t->mass * (t->s1 + t->s3 * (3.0 * t->Dy * t->Dy + t->dy * t->dy)));
+							t->B += 2 * sqrt (t->mass * (t->s1 + t->s3 * (3 * t->Dy * t->Dy + t->dy * t->dy)));
 						}
 					}
-					t->dDydtnew = (t->dDydt + Dt / t->mass * (tension + 2.0 * t->DeltaP * t->Dz * t->Dx)) /
-						(1.0 + t->B * Dt / t->mass);   // 5.119
-					t->Dynew = t->Dy + t->dDydtnew * Dt;   // 5.119
+					t->dDydtnew = (t->dDydt + Dt / t->mass * (tension + 2 * t->DeltaP * t->Dz * t->Dx)) /
+						(1 + t->B * Dt / t->mass);   /* 5.119 */
+					t->Dynew = t->Dy + t->dDydtnew * Dt;   /* 5.119 */
 					#if NO_MOVING_WALLS
 						t->Dynew = t->Dy;
 					#endif
 					t->Anew = t->Dz * ( t->Dynew >= t->dy ? t->Dynew + Dymin :
 						t->Dynew <= - t->dy ? Dymin :
-						(t->dy + t->Dynew) * (t->dy + t->Dynew) / (4.0 * t->dy) + Dymin );   // 4.4, 4.5
+						(t->dy + t->Dynew) * (t->dy + t->Dynew) / (4 * t->dy) + Dymin );   /* 4.4, 4.5 */
 					#if EQUAL_TUBE_WIDTHS
 						t->Anew = 0.0001;
 					#endif
-					t->Ahalf = 0.5 * (t->A + t->Anew);   // 5.120
-					t->Dxhalf = 0.5 * (t->Dxnew + t->Dx);   // 5.121
-					t->Vnew = t->Anew * t->Dxnew;   // 5.128
+					t->Ahalf = 0.5 * (t->A + t->Anew);   /* 5.120 */
+					t->Dxhalf = 0.5 * (t->Dxnew + t->Dx);   /* 5.121 */
+					t->Vnew = t->Anew * t->Dxnew;   /* 5.128 */
 					{ double oneByDyav = t->Dz / t->A;
-					/*t->R = 12.0 * 1.86e-5 * t->parallel * t->parallel * oneByDyav * oneByDyav;*/
-					if (t->Dy < 0.0)
-						t->R = 12.0 * 1.86e-5 / (Dymin * Dymin + t->dy * t->dy);
+					/*t->R = 12 * 1.86e-5 * t->parallel * t->parallel * oneByDyav * oneByDyav;*/
+					if (t->Dy < 0)
+						t->R = 12 * 1.86e-5 / (Dymin * Dymin + t->dy * t->dy);
 					else
-						t->R = 12.0 * 1.86e-5 * t->parallel * t->parallel /
+						t->R = 12 * 1.86e-5 * t->parallel * t->parallel /
 							((t->Dy + Dymin) * (t->Dy + Dymin) + t->dy * t->dy);
 					t->R += 0.3 * t->parallel * oneByDyav;   /* 5.23 */ }
-					t->r = (1.0 + t->R * Dt / rho0) * t->Dxhalf / t->Anew;   // 5.122
-					t->ehalf = t->e + halfc2Dt * (t->Jleft - t->Jright);   // 5.123
-					t->phalf = (t->p + halfDt * (t->Qleft - t->Qright) / t->Dx) / (1.0 + Dtbytworho0 * t->R);   // 5.123
+					t->r = (1 + t->R * Dt / rho0) * t->Dxhalf / t->Anew;   /* 5.122 */
+					t->ehalf = t->e + halfc2Dt * (t->Jleft - t->Jright);   /* 5.123 */
+					t->phalf = (t->p + halfDt * (t->Qleft - t->Qright) / t->Dx) / (1 + Dtbytworho0 * t->R);   /* 5.123 */
 					#if MASS_LEAPFROG
-						t->ehalf = t->ehalfold + 2.0 * halfc2Dt * (t->Jleft - t->Jright);
+						t->ehalf = t->ehalfold + 2 * halfc2Dt * (t->Jleft - t->Jright);
 					#endif
-					t->Jhalf = t->phalf * t->Ahalf;   // 5.124
-					t->Qhalf = t->ehalf / (t->Ahalf * t->Dxhalf) + onebytworho0 * t->phalf * t->phalf;   // 5.124
+					t->Jhalf = t->phalf * t->Ahalf;   /* 5.124 */
+					t->Qhalf = t->ehalf / (t->Ahalf * t->Dxhalf) + onebytworho0 * t->phalf * t->phalf;   /* 5.124 */
 					#if NO_BERNOULLI_EFFECT
 						t->Qhalf = t->ehalf / (t->Ahalf * t->Dxhalf);
 					#endif
 				}
-				for (int m = 1; m <= M; m ++) {   // compute Jleftnew and Qleftnew
+				for (m = 1; m <= M; m ++) {   /* Compute Jleftnew and Qleftnew. */
 					Delta_Tube l = delta->tube + m, r1 = l -> right1, r2 = l -> right2, r = r1;
-					Delta_Tube l1 = l, l2 = r ? r -> left2 : nullptr;
-					if (! l->left1) {   // closed boundary at the left side (diaphragm)?
-						if (! r) continue;   // tube not connected at all
-						l->Jleftnew = 0;   // 5.132
-						l->Qleftnew = (l->eleft - twoc2Dt * l->Jhalf) / l->Vnew;   // 5.132
+					Delta_Tube l1 = l, l2 = r ? r -> left2 : NULL;
+					if (l->left1 == NULL) {   /* Closed boundary at the left side (diaphragm)? */
+						if (r == NULL) continue;   /* Tube not connected at all. */
+						l->Jleftnew = 0;   /* 5.132. */
+						l->Qleftnew = (l->eleft - twoc2Dt * l->Jhalf) / l->Vnew;   /* 5.132. */
 					}
-					else   // left boundary open to another tube will be handled...
-						(void) 0;   // ...together with the right boundary of the tube to the left
-					if (! r) {   // open boundary at the right side (lips, nostrils)?
-						rrad = 1.0 - c * Dt / 0.02;   // radiation resistance, 5.135
-						onebygrad = 1.0 / (1.0 + c * Dt / 0.02);   // radiation conductance, 5.135
+					else   /* Left boundary open to another tube will be handled... */
+						(void) 0;   /* ...together with the right boundary of the tube to the left. */
+					if (r == NULL) {   /* Open boundary at the right side (lips, nostrils)? */
+						rrad = 1 - c * Dt / 0.02;   /* Radiation resistance, 5.135. */
+						onebygrad = 1 / (1 + c * Dt / 0.02);   /* Radiation conductance, 5.135. */
 						#if NO_RADIATION_DAMPING
 							rrad = 0;
 							onebygrad = 0;
 						#endif
 						l->prightnew = ((l->Dxhalf / Dt + c * onebygrad) * l->pright +
-							 2.0 * ((l->Qhalf - rho0c2) - (l->Qright - rho0c2) * onebygrad)) /
-							(l->r * l->Anew / Dt + c * onebygrad);   // 5.136
-						l->Jrightnew = l->prightnew * l->Anew;   // 5.136
+							 2 * ((l->Qhalf - rho0c2) - (l->Qright - rho0c2) * onebygrad)) /
+							(l->r * l->Anew / Dt + c * onebygrad);   /* 5.136 */
+						l->Jrightnew = l->prightnew * l->Anew;   /* 5.136 */
 						l->Qrightnew = (rrad * (l->Qright - rho0c2) +
-							c * (l->prightnew - l->pright)) * onebygrad + rho0c2;   // 5.136
-					} else if (! l2 && ! r2) {   // two-way boundary
+							c * (l->prightnew - l->pright)) * onebygrad + rho0c2;   /* 5.136 */
+					} else if (l2 == NULL && r2 == NULL) {   /* Two-way boundary. */
 						if (l->v > criticalVelocity && l->A < r->A) {
 							l->Pturbrightnew = -0.5 * rho0 * (l->v - criticalVelocity) *
-								(1.0 - l->A / r->A) * (1.0 - l->A / r->A) * l->v;
+								(1 - l->A / r->A) * (1 - l->A / r->A) * l->v;
 							if (l->Pturbrightnew != 0.0)
-								l->Pturbrightnew *= NUMrandomGauss (1.0, noiseFactor) /* * l->A */;
+								l->Pturbrightnew *= 1 + NUMrandomGauss (0, noiseFactor) /* * l->A */;
 						}
 						if (r->v < - criticalVelocity && r->A < l->A) {
 							l->Pturbrightnew = 0.5 * rho0 * (r->v + criticalVelocity) *
-								(1.0 - r->A / l->A) * (1.0 - r->A / l->A) * r->v;
+								(1 - r->A / l->A) * (1 - r->A / l->A) * r->v;
 							if (l->Pturbrightnew != 0.0)
-								l->Pturbrightnew *= NUMrandomGauss (1.0, noiseFactor) /* * r->A */;
+								l->Pturbrightnew *= 1 + NUMrandomGauss (0, noiseFactor) /* * r->A */;
 						}
 						#if NO_TURBULENCE
-							l->Pturbrightnew = 0.0;
+							l->Pturbrightnew = 0;
 						#endif
 						l->Jrightnew = r->Jleftnew =
 							(l->Dxhalf * l->pright + r->Dxhalf * r->pleft +
 							 twoDt * (l->Qhalf - r->Qhalf + l->Pturbright)) /
-							(l->r + r->r);   // 5.127
+							(l->r + r->r);   /* 5.127 */
 						#if B91
 							l->Jrightnew = r->Jleftnew =
 								(l->pright + r->pleft +
-								 2.0 * twoDt * (l->Qhalf - r->Qhalf + l->Pturbright) / (l->Dxhalf + r->Dxhalf)) /
+								 2 * twoDt * (l->Qhalf - r->Qhalf + l->Pturbright) / (l->Dxhalf + r->Dxhalf)) /
 								(l->r / l->Dxhalf + r->r / r->Dxhalf);
 						#endif
-						l->prightnew = l->Jrightnew / l->Anew;   // 5.128
-						r->pleftnew = r->Jleftnew / r->Anew;   // 5.128
-						l->Krightnew = onebytworho0 * l->prightnew * l->prightnew;   // 5.128
-						r->Kleftnew = onebytworho0 * r->pleftnew * r->pleftnew;   // 5.128
+						l->prightnew = l->Jrightnew / l->Anew;   /* 5.128 */
+						r->pleftnew = r->Jleftnew / r->Anew;   /* 5.128 */
+						l->Krightnew = onebytworho0 * l->prightnew * l->prightnew;   /* 5.128 */
+						r->Kleftnew = onebytworho0 * r->pleftnew * r->pleftnew;   /* 5.128 */
 						#if NO_BERNOULLI_EFFECT
-							l->Krightnew = r->Kleftnew = 0.0;
+							l->Krightnew = r->Kleftnew = 0;
 						#endif
 						l->Qrightnew =
 							(l->eright + r->eleft + twoc2Dt * (l->Jhalf - r->Jhalf)
 							 + l->Krightnew * l->Vnew + (r->Kleftnew - l->Pturbrightnew) * r->Vnew) /
-							(l->Vnew + r->Vnew);   // 5.131
-						r->Qleftnew = l->Qrightnew + l->Pturbrightnew;   // 5.131
-					} else if (r2) {   // two adjacent tubes at the right side (velic)
+							(l->Vnew + r->Vnew);   /* 5.131 */
+						r->Qleftnew = l->Qrightnew + l->Pturbrightnew;   /* 5.131 */
+					} else if (r2) {   /* Two adjacent tubes at the right side (velic). */
 						r1->Jleftnew =
-							(r1->Jleft * r1->Dxhalf * (1.0 / (l->A + r2->A) + 1.0 / r1->A) +
+							(r1->Jleft * r1->Dxhalf * (1 / (l->A + r2->A) + 1 / r1->A) +
 							 twoDt * ((l->Ahalf * l->Qhalf + r2->Ahalf * r2->Qhalf ) / (l->Ahalf  + r2->Ahalf) - r1->Qhalf)) /
-							(1.0 / (1.0 / l->r + 1.0 / r2->r) + r1->r);   // 5.138
+							(1 / (1 / l->r + 1 / r2->r) + r1->r);   /* 5.138 */
 						r2->Jleftnew =
-							(r2->Jleft * r2->Dxhalf * (1.0 / (l->A + r1->A) + 1.0 / r2->A) +
+							(r2->Jleft * r2->Dxhalf * (1 / (l->A + r1->A) + 1 / r2->A) +
 							 twoDt * ((l->Ahalf * l->Qhalf + r1->Ahalf * r1->Qhalf ) / (l->Ahalf  + r1->Ahalf) - r2->Qhalf)) /
-							(1.0 / (1.0 / l->r + 1.0 / r1->r) + r2->r);   // 5.138
-						l->Jrightnew = r1->Jleftnew + r2->Jleftnew;   // 5.139
-						l->prightnew = l->Jrightnew / l->Anew;   // 5.128
-						r1->pleftnew = r1->Jleftnew / r1->Anew;   // 5.128
-						r2->pleftnew = r2->Jleftnew / r2->Anew;   // 5.128
-						l->Krightnew = onebytworho0 * l->prightnew * l->prightnew;   // 5.128
-						r1->Kleftnew = onebytworho0 * r1->pleftnew * r1->pleftnew;   // 5.128
-						r2->Kleftnew = onebytworho0 * r2->pleftnew * r2->pleftnew;   // 5.128
+							(1 / (1 / l->r + 1 / r1->r) + r2->r);   /* 5.138 */
+						l->Jrightnew = r1->Jleftnew + r2->Jleftnew;   /* 5.139 */
+						l->prightnew = l->Jrightnew / l->Anew;   /* 5.128 */
+						r1->pleftnew = r1->Jleftnew / r1->Anew;   /* 5.128 */
+						r2->pleftnew = r2->Jleftnew / r2->Anew;   /* 5.128 */
+						l->Krightnew = onebytworho0 * l->prightnew * l->prightnew;   /* 5.128 */
+						r1->Kleftnew = onebytworho0 * r1->pleftnew * r1->pleftnew;   /* 5.128 */
+						r2->Kleftnew = onebytworho0 * r2->pleftnew * r2->pleftnew;   /* 5.128 */
 						#if NO_BERNOULLI_EFFECT
 							l->Krightnew = r1->Kleftnew = r2->Kleftnew = 0;
 						#endif
 						l->Qrightnew = r1->Qleftnew = r2->Qleftnew =
 							(l->eright + r1->eleft + r2->eleft + twoc2Dt * (l->Jhalf - r1->Jhalf - r2->Jhalf) +
 							 l->Krightnew * l->Vnew + r1->Kleftnew * r1->Vnew + r2->Kleftnew * r2->Vnew) /
-							(l->Vnew + r1->Vnew + r2->Vnew);   // 5.137
+							(l->Vnew + r1->Vnew + r2->Vnew);   /* 5.137 */
 					} else {
-						Melder_assert (l2 != nullptr);
+						Melder_assert (l2 != NULL);
 						l1->Jrightnew =
-							(l1->Jright * l1->Dxhalf * (1.0 / (r->A + l2->A) + 1.0 / l1->A) -
+							(l1->Jright * l1->Dxhalf * (1 / (r->A + l2->A) + 1 / l1->A) -
 							 twoDt * ((r->Ahalf * r->Qhalf + l2->Ahalf * l2->Qhalf ) / (r->Ahalf  + l2->Ahalf) - l1->Qhalf)) /
-							(1.0 / (1.0 / r->r + 1.0 / l2->r) + l1->r);   // 5.138
+							(1 / (1 / r->r + 1 / l2->r) + l1->r);   /* 5.138 */
 						l2->Jrightnew =
-							(l2->Jright * l2->Dxhalf * (1.0 / (r->A + l1->A) + 1.0 / l2->A) -
+							(l2->Jright * l2->Dxhalf * (1 / (r->A + l1->A) + 1 / l2->A) -
 							 twoDt * ((r->Ahalf * r->Qhalf + l1->Ahalf  * l1->Qhalf ) / (r->Ahalf  + l1->Ahalf) - l2->Qhalf)) /
-							(1.0 / (1.0 / r->r + 1.0 / l1->r) + l2->r);   // 5.138
-						r->Jleftnew = l1->Jrightnew + l2->Jrightnew;   // 5.139
-						r->pleftnew = r->Jleftnew / r->Anew;   // 5.128
-						l1->prightnew = l1->Jrightnew / l1->Anew;   // 5.128
-						l2->prightnew = l2->Jrightnew / l2->Anew;   // 5.128
-						r->Kleftnew = onebytworho0 * r->pleftnew * r->pleftnew;   // 5.128
-						l1->Krightnew = onebytworho0 * l1->prightnew * l1->prightnew;   // 5.128
-						l2->Krightnew = onebytworho0 * l2->prightnew * l2->prightnew;   // 5.128
+							(1 / (1 / r->r + 1 / l1->r) + l2->r);   /* 5.138 */
+						r->Jleftnew = l1->Jrightnew + l2->Jrightnew;   /* 5.139 */
+						r->pleftnew = r->Jleftnew / r->Anew;   /* 5.128 */
+						l1->prightnew = l1->Jrightnew / l1->Anew;   /* 5.128 */
+						l2->prightnew = l2->Jrightnew / l2->Anew;   /* 5.128 */
+						r->Kleftnew = onebytworho0 * r->pleftnew * r->pleftnew;   /* 5.128 */
+						l1->Krightnew = onebytworho0 * l1->prightnew * l1->prightnew;   /* 5.128 */
+						l2->Krightnew = onebytworho0 * l2->prightnew * l2->prightnew;   /* 5.128 */
 						#if NO_BERNOULLI_EFFECT
-							r->Kleftnew = l1->Krightnew = l2->Krightnew = 0.0;
+							r->Kleftnew = l1->Krightnew = l2->Krightnew = 0;
 						#endif
 						r->Qleftnew = l1->Qrightnew = l2->Qrightnew =
 							(r->eleft + l1->eright + l2->eright + twoc2Dt * (l1->Jhalf + l2->Jhalf - r->Jhalf) +
 							 r->Kleftnew * r->Vnew + l1->Krightnew * l1->Vnew + l2->Krightnew * l2->Vnew) /
-							(r->Vnew + l1->Vnew + l2->Vnew);   // 5.137
+							(r->Vnew + l1->Vnew + l2->Vnew);   /* 5.137 */
 					}
 				}
 
@@ -365,13 +363,13 @@ autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 
 				if (n == (oversampling + 1) / 2) {
 					double out = 0.0;
-					for (int m = 1; m <= M; m ++) {
+					for (m = 1; m <= M; m ++) {
 						Delta_Tube t = delta->tube + m;
-						out += rho0 * t->Dx * t->Dz * t->dDydt * Dt * 1000.0;   // radiation of wall movement, 5.140
-						if (! t->right1)
-							out += t->Jrightnew - t->Jright;   // radiation of open tube end
+						out += rho0 * t->Dx * t->Dz * t->dDydt * Dt * 1000;   /* Radiation of wall movement, 5.140. */
+						if (t->right1 == NULL)
+							out += t->Jrightnew - t->Jright;   /* Radiation of open tube end. */
 					}
-					result -> z [1] [sample] = out /= 4.0 * NUMpi * 0.4 * Dt;   // at 0.4 metres
+					result -> z [1] [sample] = out /= 4 * NUMpi * 0.4 * Dt;   /* At 0.4 metres. */
 					if (iw1) w1 -> z [1] [sample] = delta->tube[iw1].Dy;
 					if (iw2) w2 -> z [1] [sample] = delta->tube[iw2].Dy;
 					if (iw3) w3 -> z [1] [sample] = delta->tube[iw3].Dy;
@@ -382,7 +380,7 @@ autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 					if (iv2) v2 -> z [1] [sample] = delta->tube[iv2].v;
 					if (iv3) v3 -> z [1] [sample] = delta->tube[iv3].v;
 				}
-				for (int m = 1; m <= M; m ++) {
+				for (m = 1; m <= M; m ++) {
 					Delta_Tube t = delta->tube + m;
 					t->Jleft = t->Jleftnew;
 					t->Jright = t->Jrightnew;
@@ -408,19 +406,19 @@ autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
 			}
 		}
 		totalVolume = 0.0;
-		for (int m = 1; m <= M; m ++)
+		for (m = 1; m <= M; m ++)
 			totalVolume += delta->tube [m]. V;
 		//Melder_casual (U"Ending volume: ", totalVolume * 1000, U" litres.");
-		if (out_w1) *out_w1 = w1.move();
-		if (out_w2) *out_w2 = w2.move();
-		if (out_w3) *out_w3 = w3.move();
-		if (out_p1) *out_p1 = p1.move();
-		if (out_p2) *out_p2 = p2.move();
-		if (out_p3) *out_p3 = p3.move();
-		if (out_v1) *out_v1 = v1.move();
-		if (out_v2) *out_v2 = v2.move();
-		if (out_v3) *out_v3 = v3.move();
-		return result;
+		if (out_w1) *out_w1 = w1.transfer();
+		if (out_w2) *out_w2 = w2.transfer();
+		if (out_w3) *out_w3 = w3.transfer();
+		if (out_p1) *out_p1 = p1.transfer();
+		if (out_p2) *out_p2 = p2.transfer();
+		if (out_p3) *out_p3 = p3.transfer();
+		if (out_v1) *out_v1 = v1.transfer();
+		if (out_v2) *out_v2 = v2.transfer();
+		if (out_v3) *out_v3 = v3.transfer();
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (artword, U" & ", speaker, U": articulatory synthesis not performed.");
 	}
diff --git a/artsynth/Artword_Speaker_to_Sound.h b/artsynth/Artword_Speaker_to_Sound.h
index 266f8a2..969d181 100644
--- a/artsynth/Artword_Speaker_to_Sound.h
+++ b/artsynth/Artword_Speaker_to_Sound.h
@@ -1,6 +1,6 @@
 /* Artword_Speaker_to_Sound.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,10 +21,10 @@
 #include "Speaker.h"
 #include "Sound.h"
 
-autoSound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
+Sound Artword_Speaker_to_Sound (Artword artword, Speaker speaker,
    double samplingFrequency, int oversampling,
-   autoSound *w1, int iw1, autoSound *w2, int iw2, autoSound *w3, int iw3,
-   autoSound *p1, int ip1, autoSound *p2, int ip2, autoSound *p3, int ip3,
-   autoSound *v1, int iv1, autoSound *v2, int iv2, autoSound *v3, int iv3);
+   Sound *w1, int iw1, Sound *w2, int iw2, Sound *w3, int iw3,
+   Sound *p1, int ip1, Sound *p2, int ip2, Sound *p3, int ip3,
+   Sound *v1, int iv1, Sound *v2, int iv2, Sound *v3, int iv3);
 
 /* End of file Artword_Speaker_to_Sound.h */
diff --git a/artsynth/Artword_def.h b/artsynth/Artword_def.h
index 3755eb2..d2c7ef0 100644
--- a/artsynth/Artword_def.h
+++ b/artsynth/Artword_def.h
@@ -1,6 +1,6 @@
 /* Artword_def.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,6 @@ oo_DEFINE_STRUCT (ArtwordData)
 	oo_INT (numberOfTargets)
 	oo_DOUBLE_VECTOR (targets, numberOfTargets)
 	oo_DOUBLE_VECTOR (times, numberOfTargets)
-
 	#if oo_DECLARING
 		oo_INT (_iTarget)
 	#endif
@@ -34,7 +33,7 @@ oo_END_STRUCT (ArtwordData)
 
 
 #define ooSTRUCT Artword
-oo_DEFINE_CLASS (Artword, Daata)
+oo_DEFINE_CLASS (Artword, Data)
 
 	oo_DOUBLE (totalTime)
 	oo_STRUCT_SET (ArtwordData, data, kArt_muscle)
diff --git a/artsynth/Artword_to_Art.cpp b/artsynth/Artword_to_Art.cpp
index 7c216cf..a85923c 100644
--- a/artsynth/Artword_to_Art.cpp
+++ b/artsynth/Artword_to_Art.cpp
@@ -1,6 +1,6 @@
 /* Artword_to_Art.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,11 +19,11 @@
 
 #include "Artword_to_Art.h"
 
-autoArt Artword_to_Art (Artword me, double tim) {
+Art Artword_to_Art (Artword me, double tim) {
 	try {
 		autoArt thee = Art_create ();
-		Artword_intoArt (me, thee.get(), tim);
-		return thee;
+		Artword_intoArt (me, thee.peek(), tim);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Articulation.");
 	}
diff --git a/artsynth/Artword_to_Art.h b/artsynth/Artword_to_Art.h
index 01b7b66..d5f2b8a 100644
--- a/artsynth/Artword_to_Art.h
+++ b/artsynth/Artword_to_Art.h
@@ -1,6 +1,6 @@
 /* Artword_to_Art.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 
 #include "Artword.h"
 
-autoArt Artword_to_Art (Artword me, double time);
+Art Artword_to_Art (Artword me, double time);
 /*
 	Function:
 		linear interpolation between targets.	
diff --git a/artsynth/Delta.cpp b/artsynth/Delta.cpp
index d9375d2..294a997 100644
--- a/artsynth/Delta.cpp
+++ b/artsynth/Delta.cpp
@@ -1,6 +1,6 @@
 /* Delta.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
 
 Thing_implement (Delta, Thing, 0);
 
-void structDelta :: v_destroy () noexcept {
+void structDelta :: v_destroy () {
 	NUMvector_free (our tube, 1);
 	Delta_Parent :: v_destroy ();
 }
@@ -36,10 +36,10 @@ void Delta_init (Delta me, int numberOfTubes) {
 	}
 }
 
-autoDelta Delta_create (int numberOfTubes) {
+Delta Delta_create (int numberOfTubes) {
 	autoDelta me = Thing_new (Delta);
-	Delta_init (me.get(), numberOfTubes);
-	return me;
+	Delta_init (me.peek(), numberOfTubes);
+	return me.transfer();
 }
 
 /* End of file Delta.cpp */
diff --git a/artsynth/Delta.h b/artsynth/Delta.h
index b739ab2..7769338 100644
--- a/artsynth/Delta.h
+++ b/artsynth/Delta.h
@@ -26,10 +26,10 @@ struct structDelta_Tube
 {
 	/* Structure: static. */
 
-	Delta_Tube left1;   /* If null: closed at left edge. */
-	Delta_Tube left2;   /* If not null: two merging streams. */
-	Delta_Tube right1;  /* If null: radiation at right edge. */
-	Delta_Tube right2;  /* If not null: a stream splitting into two. */
+	Delta_Tube left1;   /* If NULL: closed at left edge. */
+	Delta_Tube left2;   /* If not NULL: two merging streams. */
+	Delta_Tube right1;  /* If NULL: radiation at right edge. */
+	Delta_Tube right2;  /* If not NULL: a stream splitting into two. */
 	long parallel;   /* Parallel subdivision. */
 
 	/* Controlled by articulation: quasistatic. */
@@ -57,13 +57,13 @@ Thing_define (Delta, Thing) {
 	int numberOfTubes;              // >= 1
 	struct structDelta_Tube *tube;  // tube [1..numberOfTubes]
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
 void Delta_init (Delta me, int numberOfTubes);
 
-autoDelta Delta_create (int numberOfTubes);
+Delta Delta_create (int numberOfTubes);
 /*
 	Function:
 		return a new Delta.
@@ -71,7 +71,7 @@ autoDelta Delta_create (int numberOfTubes);
 		numberOfTubes >= 1;
 	Postconditions:
 		result -> numberOfTubes = numberOfTubes;
-		all members of result -> tube [1..numberOfTubes] are zero or null,
+		all members of result -> tube [1..numberOfTubes] are zero or NULL,
 		except 'parallel', which is 1.
 */
 
diff --git a/artsynth/Speaker.cpp b/artsynth/Speaker.cpp
index 33b7007..3bc8e7c 100644
--- a/artsynth/Speaker.cpp
+++ b/artsynth/Speaker.cpp
@@ -38,10 +38,10 @@
 #include "oo_DESCRIPTION.h"
 #include "Speaker_def.h"
 
-Thing_implement (Speaker, Daata, 0);
+Thing_implement (Speaker, Data, 0);
 
-autoSpeaker Speaker_create (char32 *kindOfSpeaker, int numberOfVocalCordMasses) {
-	autoSpeaker me = Thing_new (Speaker);
+Speaker Speaker_create (char32 *kindOfSpeaker, int numberOfVocalCordMasses) {
+	Speaker me = Thing_new (Speaker);
 
 	/* Supralaryngeal dimensions are taken from P. Mermelstein (1973):		*/
 	/*    "Articulatory model for the study of speech production",		*/
@@ -49,6 +49,7 @@ autoSpeaker Speaker_create (char32 *kindOfSpeaker, int numberOfVocalCordMasses)
 	/* That was a male speaker, so we need scaling for other speakers:		*/
 
 	double scaling;
+	if (! me) return NULL;
 	if (str32equ (kindOfSpeaker, U"Male")) my relativeSize = 1.1;
 	else if (str32equ (kindOfSpeaker, U"Child")) my relativeSize = 0.7;
 	else my relativeSize = 1.0;
diff --git a/artsynth/Speaker.h b/artsynth/Speaker.h
index 79fbf9b..f1f7510 100644
--- a/artsynth/Speaker.h
+++ b/artsynth/Speaker.h
@@ -22,8 +22,9 @@
 #include "Data.h"
 
 #include "Speaker_def.h"
+oo_CLASS_CREATE (Speaker, Data);
 
-autoSpeaker Speaker_create (char32 *kindOfSpeaker, int numberOfVocalCordMasses);
+Speaker Speaker_create (char32 *kindOfSpeaker, int numberOfVocalCordMasses);
 	/* Preconditions:								*/
 	/*    1 <= numberOfVocalCordMasses <= 2;					*/
 	/* Failures:									*/
diff --git a/artsynth/Speaker_def.h b/artsynth/Speaker_def.h
index bdfaacc..b5012f8 100644
--- a/artsynth/Speaker_def.h
+++ b/artsynth/Speaker_def.h
@@ -1,6 +1,6 @@
 /* Speaker_def.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,132 +20,97 @@
 
 #define ooSTRUCT Speaker_CordDimensions
 oo_DEFINE_STRUCT (Speaker_CordDimensions)
-
 	oo_INT (numberOfMasses)
 	oo_DOUBLE (length)
-
 oo_END_STRUCT (Speaker_CordDimensions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_CordSpring
 oo_DEFINE_STRUCT (Speaker_CordSpring)
-
 	oo_DOUBLE (thickness)
 	oo_DOUBLE (mass)
 	oo_DOUBLE (k1)
-
 oo_END_STRUCT (Speaker_CordSpring)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_GlottalShunt
 oo_DEFINE_STRUCT (Speaker_GlottalShunt)
-
 	oo_DOUBLE (Dx)
 	oo_DOUBLE (Dy)
 	oo_DOUBLE (Dz)
-
 oo_END_STRUCT (Speaker_GlottalShunt)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Velum
-oo_DEFINE_STRUCT (Speaker_Velum)   // V
-
+oo_DEFINE_STRUCT (Speaker_Velum)   /* V */
 	oo_DOUBLE (x)
 	oo_DOUBLE (y)
 	oo_DOUBLE (a)
-
 oo_END_STRUCT (Speaker_Velum)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Palate
-oo_DEFINE_STRUCT (Speaker_Palate)   // OM
-
+oo_DEFINE_STRUCT (Speaker_Palate)   /* OM */
 	oo_DOUBLE (radius)
-
 oo_END_STRUCT (Speaker_Palate)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Tip
 oo_DEFINE_STRUCT (Speaker_Tip)
-
 	oo_DOUBLE (length)
-
 oo_END_STRUCT (Speaker_Tip)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Alveoli
 oo_DEFINE_STRUCT (Speaker_Alveoli)
-
 	oo_DOUBLE (x)
 	oo_DOUBLE (y)
 	oo_DOUBLE (a)
-
 oo_END_STRUCT (Speaker_Alveoli)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_TeethCavity
 oo_DEFINE_STRUCT (Speaker_TeethCavity)
-
 	oo_DOUBLE (dx1)
 	oo_DOUBLE (dx2)
 	oo_DOUBLE (dy)
-
 oo_END_STRUCT (Speaker_TeethCavity)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_LowerTeeth
-oo_DEFINE_STRUCT (Speaker_LowerTeeth)   // rest position of J
-
+oo_DEFINE_STRUCT (Speaker_LowerTeeth)   /* rest position of J */
 	oo_DOUBLE (r)
 	oo_DOUBLE (a)
-
 oo_END_STRUCT (Speaker_LowerTeeth)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_UpperTeeth
-oo_DEFINE_STRUCT (Speaker_UpperTeeth)   // U
-
+oo_DEFINE_STRUCT (Speaker_UpperTeeth)   /* U */
 	oo_DOUBLE (x)
 	oo_DOUBLE (y)
-
 oo_END_STRUCT (Speaker_UpperTeeth)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Lip
 oo_DEFINE_STRUCT (Speaker_Lip)
-
 	oo_DOUBLE (dx)
 	oo_DOUBLE (dy)
-
 oo_END_STRUCT (Speaker_Lip)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT Speaker_Nose
 oo_DEFINE_STRUCT (Speaker_Nose)
-
 	oo_DOUBLE (Dx)
 	oo_DOUBLE (Dz)
 	oo_DOUBLE_ARRAY (weq, 14, 14)
-
 oo_END_STRUCT (Speaker_Nose)
 #undef ooSTRUCT
 
 
 #define ooSTRUCT Speaker
-oo_DEFINE_CLASS (Speaker, Daata)
+oo_DEFINE_CLASS (Speaker, Data)
 
-	oo_DOUBLE (relativeSize)   // different for female, male, child
+	oo_DOUBLE (relativeSize)   /* Different for female, male, child. */
 
 	/* In the larynx. */
 
diff --git a/artsynth/Speaker_to_Delta.cpp b/artsynth/Speaker_to_Delta.cpp
index 387d183..4bc5458 100644
--- a/artsynth/Speaker_to_Delta.cpp
+++ b/artsynth/Speaker_to_Delta.cpp
@@ -1,6 +1,6 @@
 /* Speaker_to_Delta.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,11 +19,11 @@
 
 #include "Art_Speaker.h"
 #include "Speaker_to_Delta.h"
-#define SMOOTH_LUNGS  true
+#define SMOOTH_LUNGS  TRUE
 #define FIRST_TUBE  7
 
-autoDelta Speaker_to_Delta (Speaker me) {
-	double f = my relativeSize * 1e-3;   // we shall use millimetres and grams
+Delta Speaker_to_Delta (Speaker me) {
+	double f = my relativeSize * 1e-3;   /* We shall use millimetres and grams. */
 	double xe [30], ye [30], xi [30], yi [30], xmm [30], ymm [30], dx, dy;
 	int closed [40];
 	int itube;
@@ -34,11 +34,11 @@ autoDelta Speaker_to_Delta (Speaker me) {
 
 	for (itube = 1; itube <= 23; itube ++) {
 		Delta_Tube t = thy tube + itube;
-		t -> Dx = t -> Dxeq = 10.0 * f;
-		t -> Dy = t -> Dyeq = 100.0 * f;
-		t -> Dz = t -> Dzeq = 230.0 * f;
-		t -> mass = 10.0 * my relativeSize * t -> Dx * t -> Dz;   // 80 * f; 35 * Dx * Dz
-		t -> k1 = 200.0;   // 90000 * Dx * Dz; Newtons per metre
+		t -> Dx = t -> Dxeq = 10 * f;
+		t -> Dy = t -> Dyeq = 100 * f;
+		t -> Dz = t -> Dzeq = 230 * f;
+		t -> mass = 10 * my relativeSize * t -> Dx * t -> Dz;   /* 80 * f; 35 * Dx * Dz */
+		t -> k1 = 200;   /* 90000 * Dx * Dz; Newtons per metre */
 		t -> k3 = 0.0;
 		t -> Brel = 0.8;
 		t -> parallel = 1000;
@@ -48,11 +48,11 @@ autoDelta Speaker_to_Delta (Speaker me) {
 
 	for (itube = 24; itube <= 29; itube ++) {
 		Delta_Tube t = thy tube + itube;
-		t -> Dx = t -> Dxeq = 10.0 * f;
-		t -> Dy = t -> Dyeq = 15.0 * f;
-		t -> Dz = t -> Dzeq = 30.0 * f;
-		t -> mass = 10.0 * f;
-		t -> k1 = 40.0;   // 125000 * Dx * Dz; Newtons per metre
+		t -> Dx = t -> Dxeq = 10 * f;
+		t -> Dy = t -> Dyeq = 15 * f;
+		t -> Dz = t -> Dzeq = 30 * f;
+		t -> mass = 10 * f;
+		t -> k1 = 40;   /* 125000 * Dx * Dz; Newtons per metre */
 		t -> k3 = 0.0;
 		t -> Brel = 0.8;
 	}
@@ -61,24 +61,24 @@ autoDelta Speaker_to_Delta (Speaker me) {
 
 	for (itube = 30; itube <= 35; itube ++) {
 		Delta_Tube t = thy tube + itube;
-		t -> Dx = t -> Dxeq = 10.0 * f;
-		t -> Dy = t -> Dyeq = 15.0 * f;
-		t -> Dz = t -> Dzeq = 16.0 * f;
-		t -> mass = 5.0 * f;
-		t -> k1 = 160.0;   // 100000 * Dx * Dz; Newtons per metre
+		t -> Dx = t -> Dxeq = 10 * f;
+		t -> Dy = t -> Dyeq = 15 * f;
+		t -> Dz = t -> Dzeq = 16 * f;
+		t -> mass = 5 * f;
+		t -> k1 = 160;   /* 100000 * Dx * Dz; Newtons per metre */
 		t -> k3 = 0.0;
 		t -> Brel = 0.8;
 	}
 
 	if (SMOOTH_LUNGS) {
 		struct { int itube; double Dy, Dz, parallel; } data [] = {
-			{  7, 120.0, 240.0, 5000.0 }, {  8, 120.0, 240.0, 5000.0 }, {  9, 120.0, 240.0, 5000.0 },
-			{ 10, 120.0, 240.0, 5000.0 }, { 11, 120.0, 240.0, 5000.0 }, { 12, 120.0, 240.0, 5000.0 },
-			{ 13, 120.0, 240.0, 2500.0 }, { 14, 120.0, 240.0, 1250.0 }, { 15, 120.0, 240.0,  640.0 },
-			{ 16, 120.0, 240.0,  320.0 }, { 17, 120.0, 240.0,  160.0 }, { 18, 120.0, 140.0,   80.0 },
-			{ 19,  70.0,  70.0,   40.0 }, { 20,  35.0,  35.0,   20.0 }, { 21,  18.0,  18.0,   10.0 },
-			{ 22,  12.0,  12.0,    5.0 }, { 23,  12.0,  12.0,    3.0 }, { 24,  18.0,   9.0,    2.0 },
-			{ 25,  18.0,  19.0,    2.0 }, { 0 } };
+			{  7, 120, 240, 5000 }, {  8, 120, 240, 5000 }, {  9, 120, 240, 5000 },
+			{ 10, 120, 240, 5000 }, { 11, 120, 240, 5000 }, { 12, 120, 240, 5000 },
+			{ 13, 120, 240, 2500 }, { 14, 120, 240, 1250 }, { 15, 120, 240,  640 },
+			{ 16, 120, 240,  320 }, { 17, 120, 240,  160 }, { 18, 120, 140,   80 },
+			{ 19,  70,  70,   40 }, { 20,  35,  35,   20 }, { 21,  18,  18,   10 },
+			{ 22,  12,  12,    5 }, { 23,  12,  12,    3 }, { 24,  18,   9,    2 },
+			{ 25,  18,  19,    2 }, { 0 } };
 		int i;
 		for (i = 0; data [i]. itube; i ++) {
 			Delta_Tube t = thy tube + data [i]. itube;
@@ -88,25 +88,25 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		}
 		for (itube = 26; itube <= 35; itube ++) {
 			Delta_Tube t = thy tube + itube;
-			t -> Dy = t -> Dyeq = 11.0 * f;
-			t -> Dz = t -> Dzeq = 14.0 * f;
+			t -> Dy = t -> Dyeq = 11 * f;
+			t -> Dz = t -> Dzeq = 14 * f;
 			t -> parallel = 1;
 		}
 		for (itube = FIRST_TUBE; itube <= 18; itube ++) {
 			Delta_Tube t = thy tube + itube;
-			t -> Dx = t -> Dxeq = 10.0 * f;
-			t -> mass = 10.0 * my relativeSize * t -> Dx * t -> Dz;   // 10 mm
-			t -> k1 = 1e5 * t -> Dx * t -> Dz;   // elastic tissue: 1 mbar/mm
+			t -> Dx = t -> Dxeq = 10 * f;
+			t -> mass = 10 * my relativeSize * t -> Dx * t -> Dz;   /* 10 mm */
+			t -> k1 = 1e5 * t -> Dx * t -> Dz;   /* elastic tissue: 1 mbar/mm */
 			t -> k3 = 0.0;
-			t -> Brel = 1.0;
+			t -> Brel = 1;
 		}
 		for (itube = 19; itube <= 35; itube ++) {
 			Delta_Tube t = thy tube + itube;
-			t -> Dx = t -> Dxeq = 10.0 * f;
-			t -> mass = 3.0 * my relativeSize * t -> Dx * t -> Dz;   // 3 mm
-			t -> k1 = 10e5 * t -> Dx * t -> Dz;   // cartilage: 10 mbar/mm
+			t -> Dx = t -> Dxeq = 10 * f;
+			t -> mass = 3 * my relativeSize * t -> Dx * t -> Dz;   /* 3 mm */
+			t -> k1 = 10e5 * t -> Dx * t -> Dz;   /* cartilage: 10 mbar/mm */
 			t -> k3 = 0.0;
-			t -> Brel = 1.0;
+			t -> Brel = 1;
 		}
 	}
 
@@ -118,7 +118,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		t -> Dz = t -> Dzeq = my cord.length;
 		t -> mass = my lowerCord.mass;
 		t -> k1 = my lowerCord.k1;
-		t -> k3 = t -> k1 * (20.0 / t -> Dz) * (20.0 / t -> Dz);
+		t -> k3 = t -> k1 * (20 / t -> Dz) * (20 / t -> Dz);
 		t -> Brel = 0.2;
 	}
 
@@ -132,7 +132,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		t -> Dz = t -> Dzeq = my cord.length;
 		t -> mass = my upperCord.mass;
 		t -> k1 = my upperCord.k1;
-		t -> k3 = t -> k1 * (20.0 / t -> Dz) * (20.0 / t -> Dz);
+		t -> k3 = t -> k1 * (20 / t -> Dz) * (20 / t -> Dz);
 		t -> Brel = 0.2;
 
 		/* Couple spring with lower cord. */
@@ -143,41 +143,41 @@ autoDelta Speaker_to_Delta (Speaker me) {
 	 * Fill in the values for the conus elasticus (tubes 79..86) only if we want to model it.
 	 */
 	if (my cord.numberOfMasses == 10) {
-		thy tube [79]. Dx = thy tube [79]. Dxeq = 8.0 * f;
-		thy tube [80]. Dx = thy tube [80]. Dxeq = 7.0 * f;
-		thy tube [81]. Dx = thy tube [81]. Dxeq = 6.0 * f;
-		thy tube [82]. Dx = thy tube [82]. Dxeq = 5.0 * f;
-		thy tube [83]. Dx = thy tube [83]. Dxeq = 4.0 * f;
-		thy tube [84]. Dx = thy tube [84]. Dxeq = 0.75 * 4.0 * f + 0.25 * my lowerCord.thickness;
-		thy tube [85]. Dx = thy tube [85]. Dxeq = 0.50 * 4.0 * f + 0.50 * my lowerCord.thickness;
-		thy tube [86]. Dx = thy tube [86]. Dxeq = 0.25 * 4.0 * f + 0.75 * my lowerCord.thickness;
-
-		thy tube [79]. Dy = thy tube [79]. Dyeq = 11.0 * f;
-		thy tube [80]. Dy = thy tube [80]. Dyeq = 7.0 * f;
-		thy tube [81]. Dy = thy tube [81]. Dyeq = 4.0 * f;
-		thy tube [82]. Dy = thy tube [82]. Dyeq = 2.0 * f;
-		thy tube [83]. Dy = thy tube [83]. Dyeq = 1.0 * f;
+		thy tube [79]. Dx = thy tube [79]. Dxeq = 8 * f;
+		thy tube [80]. Dx = thy tube [80]. Dxeq = 7 * f;
+		thy tube [81]. Dx = thy tube [81]. Dxeq = 6 * f;
+		thy tube [82]. Dx = thy tube [82]. Dxeq = 5 * f;
+		thy tube [83]. Dx = thy tube [83]. Dxeq = 4 * f;
+		thy tube [84]. Dx = thy tube [84]. Dxeq = 0.75 * 4 * f + 0.25 * my lowerCord.thickness;
+		thy tube [85]. Dx = thy tube [85]. Dxeq = 0.50 * 4 * f + 0.50 * my lowerCord.thickness;
+		thy tube [86]. Dx = thy tube [86]. Dxeq = 0.25 * 4 * f + 0.75 * my lowerCord.thickness;
+
+		thy tube [79]. Dy = thy tube [79]. Dyeq = 11 * f;
+		thy tube [80]. Dy = thy tube [80]. Dyeq = 7 * f;
+		thy tube [81]. Dy = thy tube [81]. Dyeq = 4 * f;
+		thy tube [82]. Dy = thy tube [82]. Dyeq = 2 * f;
+		thy tube [83]. Dy = thy tube [83]. Dyeq = 1 * f;
 		thy tube [84]. Dy = thy tube [84]. Dyeq = 0.75 * f;
 		thy tube [85]. Dy = thy tube [85]. Dyeq = 0.50 * f;
 		thy tube [86]. Dy = thy tube [86]. Dyeq = 0.25 * f;
 
-		thy tube [79]. Dz = thy tube [79]. Dzeq = 16.0 * f;
-		thy tube [80]. Dz = thy tube [80]. Dzeq = 16.0 * f;
-		thy tube [81]. Dz = thy tube [81]. Dzeq = 16.0 * f;
-		thy tube [82]. Dz = thy tube [82]. Dzeq = 16.0 * f;
-		thy tube [83]. Dz = thy tube [83]. Dzeq = 16.0 * f;
-		thy tube [84]. Dz = thy tube [84]. Dzeq = 0.75 * 16.0 * f + 0.25 * my cord.length;
-		thy tube [85]. Dz = thy tube [85]. Dzeq = 0.50 * 16.0 * f + 0.50 * my cord.length;
-		thy tube [86]. Dz = thy tube [86]. Dzeq = 0.25 * 16.0 * f + 0.75 * my cord.length;
-
-		thy tube [79]. k1 = 160.0;
-		thy tube [80]. k1 = 160.0;
-		thy tube [81]. k1 = 160.0;
-		thy tube [82]. k1 = 160.0;
-		thy tube [83]. k1 = 160.0;
-		thy tube [84]. k1 = 0.75 * 160.0 * f + 0.25 * my lowerCord.k1;
-		thy tube [85]. k1 = 0.50 * 160.0 * f + 0.50 * my lowerCord.k1;
-		thy tube [86]. k1 = 0.25 * 160.0 * f + 0.75 * my lowerCord.k1;
+		thy tube [79]. Dz = thy tube [79]. Dzeq = 16 * f;
+		thy tube [80]. Dz = thy tube [80]. Dzeq = 16 * f;
+		thy tube [81]. Dz = thy tube [81]. Dzeq = 16 * f;
+		thy tube [82]. Dz = thy tube [82]. Dzeq = 16 * f;
+		thy tube [83]. Dz = thy tube [83]. Dzeq = 16 * f;
+		thy tube [84]. Dz = thy tube [84]. Dzeq = 0.75 * 16 * f + 0.25 * my cord.length;
+		thy tube [85]. Dz = thy tube [85]. Dzeq = 0.50 * 16 * f + 0.50 * my cord.length;
+		thy tube [86]. Dz = thy tube [86]. Dzeq = 0.25 * 16 * f + 0.75 * my cord.length;
+
+		thy tube [79]. k1 = 160;
+		thy tube [80]. k1 = 160;
+		thy tube [81]. k1 = 160;
+		thy tube [82]. k1 = 160;
+		thy tube [83]. k1 = 160;
+		thy tube [84]. k1 = 0.75 * 160 * f + 0.25 * my lowerCord.k1;
+		thy tube [85]. k1 = 0.50 * 160 * f + 0.50 * my lowerCord.k1;
+		thy tube [86]. k1 = 0.25 * 160 * f + 0.75 * my lowerCord.k1;
 
 		thy tube [79]. Brel = 0.7;
 		thy tube [80]. Brel = 0.6;
@@ -190,12 +190,12 @@ autoDelta Speaker_to_Delta (Speaker me) {
 
 		for (itube = 79; itube <= 86; itube ++) {
 			Delta_Tube t = thy tube + itube;
-			t -> mass = t -> Dx * t -> Dz / (30.0 * f);
-			t -> k3 = t -> k1 * (20.0 / t -> Dz) * (20.0 / t -> Dz);
+			t -> mass = t -> Dx * t -> Dz / (30 * f);
+			t -> k3 = t -> k1 * (20 / t -> Dz) * (20 / t -> Dz);
 			t -> k1left1 = t -> k1right1 = 1.0;
 		}
 		thy tube [79]. k1left1 = 0.0;
-		thy tube [36]. k1left1 = 1.0;   // the essence: couple spring with lower vocal cords
+		thy tube [36]. k1left1 = 1.0;   /* The essence: couple spring with lower vocal cords. */
 	}
 
 	/*
@@ -207,17 +207,17 @@ autoDelta Speaker_to_Delta (Speaker me) {
 			t -> Dx = t -> Dxeq = my shunt.Dx;
 			t -> Dy = t -> Dyeq = my shunt.Dy;
 			t -> Dz = t -> Dzeq = my shunt.Dz;
-			t -> mass = 3.0 * my upperCord.mass;   // heavy...
-			t -> k1 = 3.0 * my upperCord.k1;   // ...and stiff...
-			t -> k3 = t -> k1 * (20.0 / t -> Dz) * (20.0 / t -> Dz);
-			t -> Brel = 3.0;   // ...and inelastic, so that the walls will not vibrate
+			t -> mass = 3 * my upperCord.mass;   /* Heavy... */
+			t -> k1 = 3 * my upperCord.k1;   /* ...and stiff... */
+			t -> k3 = t -> k1 * (20 / t -> Dz) * (20 / t -> Dz);
+			t -> Brel = 3.0;   /* ...and inelastic, so that the walls will not vibrate. */
 		}
 	}
 
 	/* Vocal tract from neutral articulation. */
 	{
 		autoArt art = Art_create ();
-		Art_Speaker_meshVocalTract (art.get(), me, xi, yi, xe, ye, xmm, ymm, closed);
+		Art_Speaker_meshVocalTract (art.peek(), me, xi, yi, xe, ye, xmm, ymm, closed);
 	}
 
 	/* Pharynx and mouth: tubes 38..64. */
@@ -231,7 +231,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		t -> Dy = t -> Dyeq;
 		t -> Dz = t -> Dzeq = 0.015;
 		t -> mass = 0.006;
-		t -> k1 = 30.0;
+		t -> k1 = 30;
 		t -> k3 = 0.0;
 		t -> Brel = 1.0;
 	}
@@ -245,11 +245,11 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		t -> Dy = t -> Dyeq = my nose.weq [itube - 65];
 		t -> Dz = t -> Dzeq = my nose.Dz;
 		t -> mass = 0.006;
-		t -> k1 = 100.0;
+		t -> k1 = 100;
 		t -> k3 = 0.0;
 		t -> Brel = 1.0;
 	}
-	thy tube [65]. Dy = thy tube [65]. Dyeq = 0.0;   // override: nasopharyngeal port closed
+	thy tube [65]. Dy = thy tube [65]. Dyeq = 0.0;   /* Override: nasopharyngeal port closed. */
 
 	/* The default structure:
 	 * every tube is connected on the left to the previous tube (index one lower).
@@ -260,8 +260,8 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		t -> s1 = 5e6 * t -> Dx * t -> Dz;
 		t -> s3 = t -> s1 / (0.9e-3 * 0.9e-3);
 		t -> dy = 1e-5;
-		t -> left1 = t - 1;   // connect to the previous tube on the left
-		t -> right1 = t + 1;   // connect to the next tube on the right
+		t -> left1 = t - 1;   /* Connect to the previous tube on the left. */
+		t -> right1 = t + 1;   /* Connect to the next tube on the right. */
 	}
 
 	/***** Connections: boundaries and interfaces. *****/
@@ -269,7 +269,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 	/* The leftmost boundary: the diaphragm (tube 1).
 	 * Disconnect on the left.
 	 */
-	thy tube [SMOOTH_LUNGS ? FIRST_TUBE : 1]. left1 = nullptr;   // closed at diaphragm
+	thy tube [SMOOTH_LUNGS ? FIRST_TUBE : 1]. left1 = NULL;   /* Closed at diaphragm. */
 
 	/* Optional one-mass model of the vocal cords.
 	 * Short-circuit over tube 37 (upper glottis).
@@ -281,7 +281,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		thy tube [38]. left1 = thy tube + 36;
 
 		/* Disconnect tube 37 on both sides. */
-		thy tube [37]. left1 = thy tube [37]. right1 = nullptr;
+		thy tube [37]. left1 = thy tube [37]. right1 = NULL;
 	}
 
 	/* Optionally couple vocal cords with conus elasticus.
@@ -298,58 +298,58 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		thy tube [36]. left1 = thy tube + 86;
 
 		/* Disconnect tubes 32..35 on both sides. */
-		thy tube [32]. left1 = thy tube [32]. right1 = nullptr;
-		thy tube [33]. left1 = thy tube [33]. right1 = nullptr;
-		thy tube [34]. left1 = thy tube [34]. right1 = nullptr;
-		thy tube [35]. left1 = thy tube [35]. right1 = nullptr;
+		thy tube [32]. left1 = thy tube [32]. right1 = NULL;
+		thy tube [33]. left1 = thy tube [33]. right1 = NULL;
+		thy tube [34]. left1 = thy tube [34]. right1 = NULL;
+		thy tube [35]. left1 = thy tube [35]. right1 = NULL;
 	} else {
 
 		/* Disconnect tubes 79..86 on both sides. */
 		for (itube = 79; itube <= 86; itube ++)
-			thy tube [itube]. left1 = thy tube [itube]. right1 = nullptr;
+			thy tube [itube]. left1 = thy tube [itube]. right1 = NULL;
 	}
 
 	/* Optionally add a shunt parallel to the glottis.
 	 * Create a side branch from tube 34/35 (or 85/86) to tube 38/39 with tubes 87..89.
 	 */
 	if (my shunt.Dx != 0.0) {
-		int topOfTrachea = ( my cord.numberOfMasses == 10 ? 86 : 35 );
+		int topOfTrachea = my cord.numberOfMasses == 10 ? 86 : 35;
 
 		/* Create a three-way interface below the shunt.
 		 * Connect lowest shunt tube (87) with top of trachea (34/35 or 85/86).
 		 */
-		thy tube [topOfTrachea - 1]. right2 = thy tube + 87;   // trachea to shunt
-		thy tube [87]. left1 = thy tube + topOfTrachea - 1;   // shunt to trachea
-		thy tube [87]. Dxeq = thy tube [topOfTrachea - 1]. Dxeq = thy tube [topOfTrachea]. Dxeq;   // equal length
+		thy tube [topOfTrachea - 1]. right2 = thy tube + 87;   /* Trachea to shunt. */
+		thy tube [87]. left1 = thy tube + topOfTrachea - 1;   /* Shunt to trachea. */
+		thy tube [87]. Dxeq = thy tube [topOfTrachea - 1]. Dxeq = thy tube [topOfTrachea]. Dxeq;   /* Equal length. */
 		thy tube [87]. Dx = thy tube [topOfTrachea - 1]. Dx = thy tube [topOfTrachea]. Dx;
 
 		/* Create a three-way interface above the shunt.
 		 * Connect highest shunt tube (89) with bottom of pharynx (38/39).
 		 */
-		thy tube [89]. right1 = thy tube + 39;   // shunt to pharynx
-		thy tube [39]. left2 = thy tube + 89;   // pharynx to shunt
-		thy tube [89]. Dxeq = thy tube [39]. Dxeq = thy tube [38]. Dxeq;   // all three of equal length
+		thy tube [89]. right1 = thy tube + 39;   /* Shunt to pharynx. */
+		thy tube [39]. left2 = thy tube + 89;   /* Pharynx to shunt. */
+		thy tube [89]. Dxeq = thy tube [39]. Dxeq = thy tube [38]. Dxeq;   /* All three of equal length. */
 		thy tube [89]. Dx = thy tube [39]. Dx = thy tube [38]. Dx;
 	} else {
 
 		/* Disconnect tubes 87..89 on both sides. */
 		for (itube = 87; itube <= 89; itube ++)
-			thy tube [itube]. left1 = thy tube [itube]. right1 = nullptr;
+			thy tube [itube]. left1 = thy tube [itube]. right1 = NULL;
 	}
 
 	/* Create a three-way interface at the nasopharyngeal port.
 	 * Connect tubes 50 (pharynx), 51 (mouth), and 65 (nose).
 	 */
-	thy tube [50]. right2 = thy tube + 65;   // pharynx to nose
-	thy tube [65]. left1 = thy tube + 50;   // nose to pharynx
-	thy tube [65]. Dxeq = thy tube [51]. Dxeq = thy tube [50]. Dxeq;   // all three must be of equal length
+	thy tube [50]. right2 = thy tube + 65;   /* Pharynx to nose. */
+	thy tube [65]. left1 = thy tube + 50;   /* Nose to pharynx. */
+	thy tube [65]. Dxeq = thy tube [51]. Dxeq = thy tube [50]. Dxeq;   /* All three must be of equal length. */
 	thy tube [65]. Dx = thy tube [51]. Dx = thy tube [50]. Dx;
 
 	/* The rightmost boundaries: the lips (tube 64) and the nostrils (tube 78).
 	 * Disconnect on the right.
 	 */
-	thy tube [64]. right1 = nullptr;   // radiation at the lips
-	thy tube [78]. right1 = nullptr;   // radiation at the nostrils
+	thy tube [64]. right1 = NULL;   /* Radiation at the lips. */
+	thy tube [78]. right1 = NULL;   /* Radiation at the nostrils. */
 
 	for (itube = 1; itube <= thy numberOfTubes; itube ++) {
 		Delta_Tube t = thy tube + itube;
@@ -358,7 +358,7 @@ autoDelta Speaker_to_Delta (Speaker me) {
 		Melder_assert (! t->right1 || t->right1->left1 == t || t->right1->left2 == t);
 		Melder_assert (! t->right2 || t->right2->left1 == t);
 	}
-	return thee;
+	return thee.transfer();
 }
 
 /* End of file Speaker_to_Delta.cpp */
diff --git a/artsynth/Speaker_to_Delta.h b/artsynth/Speaker_to_Delta.h
index 12b64d5..ad6d42e 100644
--- a/artsynth/Speaker_to_Delta.h
+++ b/artsynth/Speaker_to_Delta.h
@@ -20,6 +20,6 @@
 #include "Speaker.h"
 #include "Delta.h"
 
-autoDelta Speaker_to_Delta (Speaker me);
+Delta Speaker_to_Delta (Speaker me);
 
 /* End of file Speaker_to_Delta.h */
diff --git a/artsynth/praat_Artsynth.cpp b/artsynth/praat_Artsynth.cpp
index 1b33fbb..4086af7 100644
--- a/artsynth/praat_Artsynth.cpp
+++ b/artsynth/praat_Artsynth.cpp
@@ -38,8 +38,7 @@ FORM (Art_create, U"Create a default Articulation", U"Articulatory synthesis") {
 	WORD (U"Name", U"articulation")
 	OK2
 DO
-	autoArt me = Art_create ();
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (Art_create (), GET_STRING (U"Name"));
 END2 }
 
 FORM (Art_edit, U"View & Edit Articulation", 0) {
@@ -69,7 +68,7 @@ DO
 	praat_new (Artword_create (GET_REAL (U"Duration")), GET_STRING (U"Name"));
 END2 }
 
-FORM (Artword_draw, U"Draw one Artword tier", nullptr) {
+FORM (Artword_draw, U"Draw one Artword tier", NULL) {
 	OPTIONMENU (U"Muscle", kArt_muscle_LUNGS)
 	for (int ienum = 1; ienum <= kArt_muscle_MAX; ienum ++)
 		OPTION (kArt_muscle_getText (ienum))
@@ -89,8 +88,7 @@ DIRECT2 (Artword_edit) {
 	WHERE (SELECTED) {
 		iam_LOOP (Artword);
 		autoArtwordEditor editor = ArtwordEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -136,7 +134,7 @@ DO
 	LOOP {
 		iam (Artword);
 		autoArt thee = Artword_to_Art (me, GET_REAL (U"Time"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -167,7 +165,7 @@ DIRECT2 (Art_Speaker_to_VocalTract) {
 	iam_ONLY (Art);
 	thouart_ONLY (Speaker);
 	autoVocalTract him = Art_Speaker_to_VocalTract (me, thee);
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (him.transfer(), my name, U"_", thy name);
 END2 }
 
 /***** ARTWORD & SPEAKER *****/
@@ -196,7 +194,7 @@ FORM (Artword_Speaker_to_Sound, U"Articulatory synthesizer", U"Artword & Speaker
 	INTEGER (U"Velocity 3", U"0")
 	OK2
 DO
-	autoSound w1, w2, w3, p1, p2, p3, v1, v2, v3;
+	Sound w1, w2, w3, p1, p2, p3, v1, v2, v3;
 	int iw1 = GET_INTEGER (U"Width 1");
 	int iw2 = GET_INTEGER (U"Width 2");
 	int iw3 = GET_INTEGER (U"Width 3");
@@ -213,33 +211,26 @@ DO
 			& w1, iw1, & w2, iw2, & w3, iw3,
 			& p1, ip1, & p2, ip2, & p3, ip3,
 			& v1, iv1, & v2, iv2, & v3, iv3);
-	praat_new (him.move(), my name, U"_", thy name);
-	if (iw1) praat_new (w1.move(), U"width", iw1);
-	if (iw2) praat_new (w2.move(), U"width", iw2);
-	if (iw3) praat_new (w3.move(), U"width", iw3);
-	if (ip1) praat_new (p1.move(), U"pressure", ip1);
-	if (ip2) praat_new (p2.move(), U"pressure", ip2);
-	if (ip3) praat_new (p3.move(), U"pressure", ip3);
-	if (iv1) praat_new (v1.move(), U"velocity", iv1);
-	if (iv2) praat_new (v2.move(), U"velocity", iv2);
-	if (iv3) praat_new (v3.move(), U"velocity", iv3);
-END2 }
-
-DIRECT2 (Artword_Speaker_movie) {
-	Graphics graphics = Movie_create (U"Artword & Speaker movie", 300, 300);
-	iam_ONLY (Artword);
-	thouart_ONLY (Speaker);
-	Artword_Speaker_movie (me, thee, graphics);
+	praat_new (him.transfer(), my name, U"_", thy name);
+	if (iw1) praat_new (w1, U"width", iw1);
+	if (iw2) praat_new (w2, U"width", iw2);
+	if (iw3) praat_new (w3, U"width", iw3);
+	if (ip1) praat_new (p1, U"pressure", ip1);
+	if (ip2) praat_new (p2, U"pressure", ip2);
+	if (ip3) praat_new (p3, U"pressure", ip3);
+	if (iv1) praat_new (v1, U"velocity", iv1);
+	if (iv2) praat_new (v2, U"velocity", iv2);
+	if (iv3) praat_new (v3, U"velocity", iv3);
 END2 }
 
 /***** ARTWORD & SPEAKER [ & SOUND ] *****/
 
-DIRECT2 (Artword_Speaker_Sound_movie) {
-	Graphics graphics = Movie_create (U"Artword & Speaker & Sound movie", 300, 300);
+DIRECT2 (Artword_Speaker_movie) {
+	Graphics g = Movie_create (U"Artword & Speaker movie", 300, 300);
 	iam_ONLY (Artword);
 	thouart_ONLY (Speaker);
 	heis_ONLY (Sound);   // can be null
-	Artword_Speaker_Sound_movie (me, thee, him, graphics);
+	Artword_Speaker_Sound_movie (me, thee, him, g);
 END2 }
 
 /***** SPEAKER *****/
@@ -257,7 +248,7 @@ FORM (Speaker_create, U"Create a Speaker", U"Create Speaker...") {
 	OK2
 DO
 	autoSpeaker me = Speaker_create (GET_STRING (U"Kind of speaker"), Melder_atoi (GET_STRING (U"Number of tubes in glottis")));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (Speaker_help) {
@@ -293,7 +284,7 @@ FORM (VocalTract_createFromPhone, U"Create Vocal Tract from phone", U"Create Voc
 	OK2
 DO
 	autoVocalTract me = VocalTract_createFromPhone (GET_STRING (U"Phone"));
-	praat_new (me.move(), GET_STRING (U"Phone"));
+	praat_new (me.transfer(), GET_STRING (U"Phone"));
 END2 }
 
 DIRECT2 (VocalTract_draw) {
@@ -313,7 +304,7 @@ DO
 	LOOP {
 		iam (VocalTract);
 		try {
-			Matrix_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -330,7 +321,7 @@ DIRECT2 (VocalTract_to_Matrix) {
 	WHERE (SELECTED) {
 		iam_LOOP (VocalTract);
 		autoMatrix thee = VocalTract_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -348,7 +339,7 @@ DO
 		autoSpectrum thee = VocalTract_to_Spectrum (me, GET_INTEGER (U"Number of frequencies"),
 			GET_REAL (U"Maximum frequency"), GET_REAL (U"Glottal damping"),
 			GET_INTEGER (U"Radiation damping"), GET_INTEGER (U"Internal damping"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -358,60 +349,60 @@ END2 }
 
 void manual_Artsynth_init (ManPages me);
 
-void praat_uvafon_Artsynth_init ();
-void praat_uvafon_Artsynth_init () {
-	Thing_recognizeClassesByName (classArt, classArtword, classSpeaker, nullptr);
-
-	praat_addMenuCommand (U"Objects", U"New", U"Articulatory synthesis", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Articulatory synthesis tutorial", nullptr, 1, DO_ArticulatorySynthesisTutorial);
-	praat_addMenuCommand (U"Objects", U"New", U"-- new articulatory synthesis -- ", nullptr, 1, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Articulation...", nullptr, 1, DO_Art_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Speaker...", nullptr, 1, DO_Speaker_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Artword...", nullptr, 1, DO_Artword_create);
-	praat_addMenuCommand (U"Objects", U"New", U"-- new vocal tract --", nullptr, 1, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Vocal Tract from phone...", nullptr, 1, DO_VocalTract_createFromPhone);
-
-	praat_addAction1 (classArt, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Art_edit);
-	praat_addAction1 (classArt, 1, U"Edit", nullptr, praat_HIDDEN, DO_Art_edit);
-
-	praat_addAction1 (classArtword, 0, U"Artword help", nullptr, 0, DO_Artword_help);
-	praat_addAction1 (classArtword, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Artword_edit);
-	praat_addAction1 (classArtword, 1, U"Edit", nullptr, praat_HIDDEN, DO_Artword_edit);
-	praat_addAction1 (classArtword, 0, U"Info", nullptr, 0, nullptr);
-	praat_addAction1 (classArtword, 1, U"Get target...", nullptr, 0, DO_Artword_getTarget);
-	praat_addAction1 (classArtword, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classArtword, 0, U"Draw...", nullptr, 0, DO_Artword_draw);
-	praat_addAction1 (classArtword, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classArtword, 1, U"Set target...", nullptr, 0, DO_Artword_setTarget);
-	praat_addAction1 (classArtword, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classArtword, 0, U"To Art (slice)...", nullptr, 0, DO_Artword_to_Art);
-
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw", nullptr, 0, nullptr);
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw", nullptr, 0, DO_Art_Speaker_draw);
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Fill inner contour", nullptr, 0, DO_Art_Speaker_fillInnerContour);
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw mesh", nullptr, 0, DO_Art_Speaker_drawMesh);
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction2 (classArt, 1, classSpeaker, 1, U"To VocalTract", nullptr, 0, DO_Art_Speaker_to_VocalTract);
-
-	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Movie", nullptr, 0, DO_Artword_Speaker_movie);
-	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Draw", nullptr, 0, nullptr);
-	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Draw...", nullptr, 0, DO_Artword_Speaker_draw);
-	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"To Sound...", nullptr, 0, DO_Artword_Speaker_to_Sound);
-
-	praat_addAction3 (classArtword, 1, classSpeaker, 1, classSound, 1, U"Movie", nullptr, 0, DO_Artword_Speaker_Sound_movie);
-
-	praat_addAction1 (classSpeaker, 0, U"Speaker help", nullptr, 0, DO_Speaker_help);
-
-	praat_addAction1 (classVocalTract, 0, U"VocalTract help", nullptr, 0, DO_VocalTract_help);
-	praat_addAction1 (classVocalTract, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classVocalTract, 0, U"Draw", nullptr, 0, DO_VocalTract_draw);
-	praat_addAction1 (classVocalTract, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classVocalTract, 0, U"To Spectrum...", nullptr, 0, DO_VocalTract_to_Spectrum);
-	praat_addAction1 (classVocalTract, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classVocalTract, 0, U"Formula...", nullptr, 0, DO_VocalTract_formula);
-	praat_addAction1 (classVocalTract, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classVocalTract, 0, U"To Matrix", nullptr, 0, DO_VocalTract_to_Matrix);
+void praat_uvafon_Artsynth_init (void);
+void praat_uvafon_Artsynth_init (void) {
+	Thing_recognizeClassesByName (classArt, classArtword, classSpeaker, NULL);
+
+	praat_addMenuCommand (U"Objects", U"New", U"Articulatory synthesis", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Articulatory synthesis tutorial", 0, 1, DO_ArticulatorySynthesisTutorial);
+	praat_addMenuCommand (U"Objects", U"New", U"-- new articulatory synthesis -- ", 0, 1, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Articulation...", 0, 1, DO_Art_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Speaker...", 0, 1, DO_Speaker_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Artword...", 0, 1, DO_Artword_create);
+	praat_addMenuCommand (U"Objects", U"New", U"-- new vocal tract --", 0, 1, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Vocal Tract from phone...", 0, 1, DO_VocalTract_createFromPhone);
+
+	praat_addAction1 (classArt, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Art_edit);
+	praat_addAction1 (classArt, 1, U"Edit", 0, praat_HIDDEN, DO_Art_edit);
+
+	praat_addAction1 (classArtword, 0, U"Artword help", 0, 0, DO_Artword_help);
+	praat_addAction1 (classArtword, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Artword_edit);
+	praat_addAction1 (classArtword, 1, U"Edit", 0, praat_HIDDEN, DO_Artword_edit);
+	praat_addAction1 (classArtword, 0, U"Info", 0, 0, 0);
+	praat_addAction1 (classArtword, 1, U"Get target...", 0, 0, DO_Artword_getTarget);
+	praat_addAction1 (classArtword, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classArtword, 0, U"Draw...", 0, 0, DO_Artword_draw);
+	praat_addAction1 (classArtword, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classArtword, 1, U"Set target...", 0, 0, DO_Artword_setTarget);
+	praat_addAction1 (classArtword, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classArtword, 0, U"To Art (slice)...", 0, 0, DO_Artword_to_Art);
+
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw", 0, 0, 0);
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw", 0, 0, DO_Art_Speaker_draw);
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Fill inner contour", 0, 0, DO_Art_Speaker_fillInnerContour);
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Draw mesh", 0, 0, DO_Art_Speaker_drawMesh);
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"Synthesize", 0, 0, 0);
+	praat_addAction2 (classArt, 1, classSpeaker, 1, U"To VocalTract", 0, 0, DO_Art_Speaker_to_VocalTract);
+
+	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Movie", 0, 0, DO_Artword_Speaker_movie);
+	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Draw", 0, 0, 0);
+	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Draw...", 0, 0, DO_Artword_Speaker_draw);
+	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"Synthesize", 0, 0, 0);
+	praat_addAction2 (classArtword, 1, classSpeaker, 1, U"To Sound...", 0, 0, DO_Artword_Speaker_to_Sound);
+
+	praat_addAction3 (classArtword, 1, classSpeaker, 1, classSound, 1, U"Movie", 0, 0, DO_Artword_Speaker_movie);
+
+	praat_addAction1 (classSpeaker, 0, U"Speaker help", 0, 0, DO_Speaker_help);
+
+	praat_addAction1 (classVocalTract, 0, U"VocalTract help", 0, 0, DO_VocalTract_help);
+	praat_addAction1 (classVocalTract, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classVocalTract, 0, U"Draw", 0, 0, DO_VocalTract_draw);
+	praat_addAction1 (classVocalTract, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classVocalTract, 0, U"To Spectrum...", 0, 0, DO_VocalTract_to_Spectrum);
+	praat_addAction1 (classVocalTract, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classVocalTract, 0, U"Formula...", 0, 0, DO_VocalTract_formula);
+	praat_addAction1 (classVocalTract, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classVocalTract, 0, U"To Matrix", 0, 0, DO_VocalTract_to_Matrix);
 
 	manual_Artsynth_init (theCurrentPraatApplication -> manPages);
 }
diff --git a/contrib/ola/FeatureWeights.cpp b/contrib/ola/FeatureWeights.cpp
index 5db4c27..7c3b738 100644
--- a/contrib/ola/FeatureWeights.cpp
+++ b/contrib/ola/FeatureWeights.cpp
@@ -1,6 +1,6 @@
 /* FeatureWeights.cpp
  *
- * Copyright (C) 2007-2008 Ola So"der, 2010-2012,2015,2016 Paul Boersma
+ * Copyright (C) 2007-2008 Ola So"der, 2010-2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,17 +48,17 @@
 
 void structFeatureWeights :: v_info ()
 {
-    our structDaata :: v_info ();
-    MelderInfo_writeLine (U"Number of weights: ", our fweights -> numberOfColumns);
+    this -> structData :: v_info ();
+    MelderInfo_writeLine (U"Number of weights: ", fweights -> numberOfColumns);
 }
 
-Thing_implement (FeatureWeights, Daata, 0);
+Thing_implement (FeatureWeights, Data, 0);
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 // Creation...    //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoFeatureWeights FeatureWeights_create
+FeatureWeights FeatureWeights_create
 (
     ///////////////////////////////
     // Parameters                //
@@ -74,7 +74,7 @@ autoFeatureWeights FeatureWeights_create
 		for (long i = 1; i <= nweights; i ++) {
 			my fweights -> data [1] [i] = 1;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FeatureWeights not created.");
 	}
@@ -100,32 +100,32 @@ long FeatureWeights_computePriors
 
 {
     long nc = 0;
-    for (long y = 1; y <= c->size; y ++)
+    for (long y = 1; y <= c->size; y++)
     {
         long ifriend = -1;
-        for (long sc = 0; sc < nc; sc ++)
-            if (FeatureWeights_areFriends (c->at [y], c->at [indices [sc]])) ifriend = sc;
+        for (long sc = 0; sc < nc; sc++)
+            if (FeatureWeights_areFriends ((SimpleString) c->item[y], (SimpleString) c->item[indices[sc]])) ifriend = sc;
 
         if (ifriend < 0)
         {
-            indices [nc] = y;
-            priors [nc] = 1;
-            nc ++;
+            indices[nc] = y;
+            priors[nc] = 1;
+            nc++;
         }
         else
         {
-            priors [ifriend] ++;
+            priors[ifriend]++;
         }
     }
-    for (long q = 0; q < nc; q++) priors [q] /= c->size;
-    return nc;
+    for (long q = 0; q < nc; q++) priors[q] /= c->size;
+    return(nc);
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 // Compute feature weights                                                                 //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoFeatureWeights FeatureWeights_compute           // Obsolete
+FeatureWeights FeatureWeights_compute           // Obsolete
 (
     ///////////////////////////////
     // Parameters                //
@@ -139,7 +139,7 @@ autoFeatureWeights FeatureWeights_compute           // Obsolete
 )
 
 {
-    return FeatureWeights_computeRELIEF (pp, c, k);
+    return(FeatureWeights_computeRELIEF(pp, c, k));
 }
 
 
@@ -147,7 +147,7 @@ autoFeatureWeights FeatureWeights_compute           // Obsolete
 // Compute feature weights (wrapper), evaluate using folding                               //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoFeatureWeights FeatureWeights_computeWrapperInt
+FeatureWeights FeatureWeights_computeWrapperInt
 (
     ///////////////////////////////
     // Parameters                //
@@ -172,14 +172,14 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 )
 
 {
-	if (! me) return autoFeatureWeights();
+	if (! me) return NULL;
 
 	try {
 		double pivot = 0.5;
 		double range = 0.5;
 		autoNUMvector <double> results (0L, nseeds);
 
-		autoThingVector <structFeatureWeights> cs (0L, nseeds);
+		autoThingVector <FeatureWeights> cs (0L, nseeds);
 		for (long y = 0; y <= nseeds; y++) {
 			cs [y] = FeatureWeights_create (my input -> nx);
 		}
@@ -187,7 +187,7 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 		for (long x = 1; x <= my input -> nx; x ++)
 			cs [nseeds] -> fweights -> data [1] [x] = pivot;
 
-		results [nseeds] = KNN_evaluate (me, cs [nseeds].get(), k, d, emode);
+		results [nseeds] = KNN_evaluate (me, cs [nseeds], k, d, emode);
 
 		while (range > 0 && results [nseeds] < stop)
 		{
@@ -195,20 +195,20 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 
 			if (mode == 2)
 			{
-				for (long x = 1; x <= (my input)->nx; x ++)
+				for (long x = 1; x <= (my input)->nx; x++)
 				{
-					for (long y = 0; y < nseeds; y ++)
+					for (long y = 0; y < nseeds; y++)
 					{
 						cs[y]->fweights->data[1][x] = NUMrandomUniform(OlaMAX(0, cs[nseeds]->fweights->data[1][x] - range),
 													  OlaMIN(1, cs[nseeds]->fweights->data[1][x] + range));
-						results[y] = KNN_evaluate (me, cs [y].get(), k, d, emode);
+						results[y] = KNN_evaluate(me, cs[y], k, d, emode);
 					}
 					for (long q = 0; q < nseeds; q++)
 						if (results[q] > results[best]) best = q;
 
 					if (results[best] > results[nseeds])
 					{
-						for (long x = 1; x <= (my input)->nx; x++)   // HELP FIXME the same index for an inner and an outer loop!!!
+						for (long x = 1; x <= (my input)->nx; x++)
 							cs[nseeds]->fweights->data[1][x] = cs[best]->fweights->data[1][x];
 						results[nseeds] = results[best];
 					}
@@ -223,7 +223,7 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 						cs[y]->fweights->data[1][x] = NUMrandomUniform(OlaMAX(0, cs[nseeds]->fweights->data[1][x] - range),
 													  OlaMIN(1, cs[nseeds]->fweights->data[1][x] + range));
 					}
-					results[y] = KNN_evaluate (me, cs [y].get(), k, d, emode);
+					results[y] = KNN_evaluate (me, cs [y], k, d, emode);
 				}
 
 				for (long q = 0; q < nseeds; q++)
@@ -239,7 +239,8 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 			range -= alfa;
 		}
 
-		autoFeatureWeights result = cs [nseeds].move();
+		FeatureWeights result = cs [nseeds];
+		cs [nseeds] = NULL;   // prevent destruction
 		return result;
 	} catch (MelderError) {
 		Melder_throw (U"FeatureWeights: wrapper not computed.");
@@ -250,7 +251,7 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 // Compute feature weights (wrapper), evaluate using separate test set                     //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoFeatureWeights FeatureWeights_computeWrapperExt
+FeatureWeights FeatureWeights_computeWrapperExt
 (
     ///////////////////////////////
     // Parameters                //
@@ -277,14 +278,14 @@ autoFeatureWeights FeatureWeights_computeWrapperExt
 )
 
 {
-	if (! nn) return autoFeatureWeights();
+	if (nn == NULL) return NULL;
 
 	try {
 		double pivot = 0.5;
 		double range = 0.5;
 		autoNUMvector <double> results (0L, nseeds);
 
-		autoThingVector <structFeatureWeights> cs (0L, nseeds);
+		autoThingVector <FeatureWeights> cs (0L, nseeds);
 		for (long y = 0; y <= nseeds; y++) {
 			cs [y] = FeatureWeights_create (pp -> nx);
 		}
@@ -292,7 +293,7 @@ autoFeatureWeights FeatureWeights_computeWrapperExt
 		for (long x = 1; x <= pp -> nx; x ++)
 			cs [nseeds] -> fweights -> data [1] [x] = pivot;
 
-		results [nseeds] = FeatureWeights_evaluate (cs [nseeds].get(), nn, pp, c, k, d);
+		results [nseeds] = FeatureWeights_evaluate (cs [nseeds], nn, pp, c, k, d);
 
 		while (range > 0 && results [nseeds] < stop)
 		{
@@ -304,16 +305,16 @@ autoFeatureWeights FeatureWeights_computeWrapperExt
 				{
 					for (long y = 0; y < nseeds; y++)
 					{
-						cs[y]->fweights->data[1][x] = NUMrandomUniform(OlaMAX(0, (cs[nseeds]->fweights)->data[1][x] - range),
+						cs[y]->fweights->data[1][x] = NUMrandomUniform(OlaMAX(0, cs[nseeds]->fweights->data[1][x] - range),
 													  OlaMIN(1, cs[nseeds]->fweights->data[1][x] + range));
-						results[y] = FeatureWeights_evaluate (cs[y].get(), nn, pp, c, k, d);
+						results[y] = FeatureWeights_evaluate(cs[y], nn, pp, c, k, d);
 					}
 					for (long q = 0; q < nseeds; q++)
 						if (results[q] > results[best]) best = q;
 
 					if (results[best] > results[nseeds])
 					{
-						for (long x = 1; x <= pp->nx; x++)   // BUG: a loop over x inside a loop over x; just hope mode is never 2
+						for (long x = 1; x <= pp->nx; x++)
 							cs[nseeds]->fweights->data[1][x] = cs[best]->fweights->data[1][x];
 						results[nseeds] = results[best];
 					}
@@ -328,7 +329,7 @@ autoFeatureWeights FeatureWeights_computeWrapperExt
 						cs[y]->fweights->data[1][x] = NUMrandomUniform(OlaMAX(0, cs[nseeds]->fweights->data[1][x] - range),
 													  OlaMIN(1, cs[nseeds]->fweights->data[1][x] + range));
 					}
-					results[y] = FeatureWeights_evaluate (cs [y].get(), nn, pp, c, k, d);
+					results[y] = FeatureWeights_evaluate (cs [y], nn, pp, c, k, d);
 				}
 
 				for (long q = 0; q < nseeds; q++)
@@ -344,7 +345,8 @@ autoFeatureWeights FeatureWeights_computeWrapperExt
 			range -= alfa;
 		}
 
-		autoFeatureWeights result = cs [nseeds].move();
+		FeatureWeights result = cs [nseeds];
+		cs [nseeds] = NULL;   // prevent destruction
 		return result;
 	} catch (MelderError) {
 		Melder_throw (U"FeatureWeights: wrapper not computed.");
@@ -380,13 +382,14 @@ double FeatureWeights_evaluate      // Obsolete - use *_EvaluateWithTestSet
 {
 	try {
 		autoCategories o = KNN_classifyToCategories (nn, pp, fws, k, d);
-		double hits = 0.0;
-		for (long y = 1; y <= o->size; y ++)
-			if (FeatureWeights_areFriends (o->at [y], c->at [y])) hits ++;
-		hits /= o->size;
+		double hits = 0;
+		for (long y = 1; y <= o->size; y++)
+			if (FeatureWeights_areFriends ((SimpleString) o -> item [y], (SimpleString) c -> item [y])) hits ++;
+		hits /= o -> size;
 		return hits;
 	} catch (MelderError) {
 		throw;
+		return 0;
 	}
 }
 
@@ -394,7 +397,7 @@ double FeatureWeights_evaluate      // Obsolete - use *_EvaluateWithTestSet
 // Compute feature weights according to the RELIEF-F algorithm                             //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoFeatureWeights FeatureWeights_computeRELIEF
+FeatureWeights FeatureWeights_computeRELIEF
 (
     ///////////////////////////////
     // Parameters                //
@@ -409,7 +412,7 @@ autoFeatureWeights FeatureWeights_computeRELIEF
 )
 
 {
-	autoPattern p = Data_copy (pp);
+	autoPattern p = (Pattern) Data_copy (pp);
 	autoFeatureWeights me = FeatureWeights_create (p -> nx);
 
 	/////////////////////////////////
@@ -445,10 +448,10 @@ autoFeatureWeights FeatureWeights_computeRELIEF
 
 	for (long y = 1; y <= p->ny; y++) {
 		for (long x = 1; x <= p->nx; x++) {
-			if (alfa [x] != 0.0) {
+			if (alfa [x]) {
 				p->z[y][x] = (p->z[y][x] - min[x]) / alfa[x];
 			} else {
-				p->z[y][x] = 0.0;
+				p->z[y][x] = 0;
 			}
 		}
 	}
@@ -470,33 +473,33 @@ autoFeatureWeights FeatureWeights_computeRELIEF
 
 	for (long y = 1; y <= p -> ny; y ++) {
 
-		long nfriends = KNN_kFriends (p.get(), p.get(), c, y, k, friends.peek());
-		long nenemies = KNN_kUniqueEnemies (p.get(), p.get(), c, y, nclasses - 1, enemies.peek());
+		long nfriends = KNN_kFriends (p.peek(), p.peek(), c, y, k, friends.peek());
+		long nenemies = KNN_kUniqueEnemies (p.peek(), p.peek(), c, y, nclasses - 1, enemies.peek());
 
 		if (nfriends && nenemies) {
 			autoNUMvector <double> classps (0L, nenemies - 1);
-			for (long eq = 0; eq < nenemies; eq ++) {
-				for (long iq = 0; iq < nclasses; iq ++) {
-					if (FeatureWeights_areFriends (c->at [enemies [eq]], c->at [classes [iq]])) {
-						classps [eq] = priors [iq];
+			for (long eq = 0; eq < nenemies; eq++) {
+				for (long iq = 0; iq < nclasses; iq++) {
+					if (FeatureWeights_areFriends ((SimpleString) c->item[enemies[eq]], (SimpleString) c->item[classes[iq]])) {
+						classps[eq] = priors[iq];
 						break;
 					}
 				}
 			}
-			for (long x = 1; x <= p -> nx; x ++) {
+			for (long x = 1; x <= p->nx; x++) {
 				double p1 = 0.0;
 				double p2 = 0.0;
-				for (long ec = 0; ec < nfriends; ec ++) {
-					p1 += fabs (p -> z [y] [x] - p -> z [friends [ec]] [x]) / (p -> ny * nfriends);
+				for (long ec = 0; ec < nfriends; ec++) {
+					p1 += fabs(p->z[y][x] - p->z[friends[ec]][x]) / (p->ny * nfriends);
 				}
 				for (long ec = 0; ec < nenemies; ec++) {
-					p2 += (fabs (p->z[y][x] - p->z[enemies[ec]][x]) * classps[ec]) / p->ny;
+					p2 += (fabs(p->z[y][x] - p->z[enemies[ec]][x]) * classps[ec]) / p->ny;
 				}
 				my fweights -> data [1] [x] = my fweights -> data [1] [x] - p1 + p2;
 			}
 		}
 	}
-	return me;
+	return me.transfer();
 }
 
 /* End of file FeatureWeights.cpp */
diff --git a/contrib/ola/FeatureWeights.h b/contrib/ola/FeatureWeights.h
index ae458da..74786a2 100644
--- a/contrib/ola/FeatureWeights.h
+++ b/contrib/ola/FeatureWeights.h
@@ -44,6 +44,7 @@
 /////////////////////////////////////////////////////
 
 #include "FeatureWeights_def.h"
+oo_CLASS_CREATE (FeatureWeights, Data);
 
 /////////////////////////////////////////////////////
 // Private definitions and macros                  //
@@ -57,7 +58,7 @@
 /////////////////////////////////////////////////////
 
 // Create
-autoFeatureWeights FeatureWeights_create
+FeatureWeights FeatureWeights_create
 (
     long nweights           // number of weights
 );
@@ -71,7 +72,7 @@ long FeatureWeights_computePriors
 );
 
 // Compute feature weights (obsolete)
-autoFeatureWeights FeatureWeights_compute
+FeatureWeights FeatureWeights_compute
 (
     Pattern pp,             // Source pattern
     Categories c,           // Source categories
@@ -79,7 +80,7 @@ autoFeatureWeights FeatureWeights_compute
 );
 
 // Compute feature weights according to the RELIEF-F algorithm
-autoFeatureWeights FeatureWeights_computeRELIEF
+FeatureWeights FeatureWeights_computeRELIEF
 (
     Pattern pp,             // source pattern
     Categories c,           // source categories
diff --git a/contrib/ola/FeatureWeights_def.h b/contrib/ola/FeatureWeights_def.h
index 7fa12be..f5d14d6 100644
--- a/contrib/ola/FeatureWeights_def.h
+++ b/contrib/ola/FeatureWeights_def.h
@@ -19,9 +19,8 @@
 
 
 #define ooSTRUCT FeatureWeights
-oo_DEFINE_CLASS (FeatureWeights, Daata)
-
-	oo_AUTO_OBJECT (TableOfReal, 0, fweights)
+oo_DEFINE_CLASS (FeatureWeights, Data)
+	oo_OBJECT (TableOfReal, 0, fweights)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/contrib/ola/KNN.cpp b/contrib/ola/KNN.cpp
index 64aed9f..7a7e259 100644
--- a/contrib/ola/KNN.cpp
+++ b/contrib/ola/KNN.cpp
@@ -1,6 +1,6 @@
 /* KNN.cpp
  *
- * Copyright (C) 2008 Ola So"der, 2010-2012,2016 Paul Boersma
+ * Copyright (C) 2008 Ola So"der, 2010-2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,7 +49,7 @@
 #include "KNN_def.h"
 
 
-Thing_implement (KNN, Daata, 0);
+Thing_implement (KNN, Data, 0);
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 // Praat specifics                                                                         //
@@ -57,7 +57,7 @@ Thing_implement (KNN, Daata, 0);
 
 void structKNN :: v_info ()
 {
-    structDaata :: v_info ();
+    structData :: v_info ();
     MelderInfo_writeLine (U"Size of instancebase: ", nInstances);
 }
 
@@ -65,12 +65,12 @@ void structKNN :: v_info ()
 // Creation                                                                                //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoKNN KNN_create ()
+KNN KNN_create ()   
 {
 	try {
 		autoKNN me = Thing_new (KNN);
         my nInstances = 0;
-        return me;
+        return me.transfer();
     } catch (MelderError) {
 		Melder_throw (U"KNN classifier not created.");
 	}
@@ -104,8 +104,14 @@ int KNN_learn
         {
         case kOla_REPLACE:          // in REPLACE mode simply
                                     // dispose of the current
-            my input = Data_copy (p);   // LEAK
-            my output = Data_copy (c);
+            if (my nInstances > 0)  // instance base and store
+            {                       // the new one.
+                forget (my input);
+                forget (my output);
+            }
+
+            my input = (Pattern) Data_copy (p);   // LEAK
+            my output = (Categories) Data_copy (c);
             my nInstances = c->size;
 
             break;
@@ -124,16 +130,16 @@ int KNN_learn
 				/*
 				 * Create without change.
 				 */
-				autoMatrix matrix = Matrix_appendRows (my input.get(), p, classPattern);
-                autoPattern tinput = matrix.static_cast_move <structPattern>();
-				autoCategories toutput = Data_copy (my output.get());
-				toutput -> merge (c);
+                autoPattern tinput = (Pattern) Matrix_appendRows (my input, p, classPattern);
+                autoCategories toutput = (Categories) Collections_merge (my output, c);
 
 				/*
 				 * Change without error.
 				 */
-                my input = tinput.move();
-                my output = toutput.move();
+                forget (my input);
+                forget (my output);
+                my input = tinput.transfer();
+                my output = toutput.transfer();
                 my nInstances += p->ny;
             }
             else                                    // fail
@@ -173,7 +179,7 @@ typedef struct
 
 } KNN_input_ToCategories_t;
 
-autoCategories KNN_classifyToCategories
+Categories KNN_classifyToCategories
 (
     ///////////////////////////////
     // Parameters                //
@@ -207,26 +213,26 @@ autoCategories KNN_classifyToCategories
     long istart = 1;
     long istop = chunksize;
 
-    autoCategories output = Categories_create ();
+    Categories output = Categories_create();
     KNN_input_ToCategories_t ** input = (KNN_input_ToCategories_t **) malloc(nthreads * sizeof(KNN_input_ToCategories_t *));
 
-    if (!input)
-        return autoCategories();
+    if(!input)
+        return(NULL);
 
-    for (int i = 0; i < nthreads; i ++)
+    for(int i = 0; i < nthreads; ++i)
     {
-        input [i] = (KNN_input_ToCategories_t *) malloc(sizeof(KNN_input_ToCategories_t));
-        if (! input [i])
+        input[i] = (KNN_input_ToCategories_t *) malloc(sizeof(KNN_input_ToCategories_t));
+        if(!input[i])
         {
-            while (input [i --])
-                free (input [i]);
+            while(input[i--])
+                free(input[i]);
 
-            free (input);
-            return autoCategories();
+            free(input);
+            return(NULL);
         }
     }
 
-    for (int i = 0; i < nthreads; i ++)
+    for(int i = 0; i < nthreads; ++i)
     {  
         input[i]->me = me;
         input[i]->ps = ps;
@@ -236,7 +242,7 @@ autoCategories KNN_classifyToCategories
         input[i]->dist = dist;
         input[i]->istart = istart;
 
-        if (istop + chunksize > ps->ny)
+        if(istop + chunksize > ps->ny)
         {  
             input[i]->istop = ps->ny; 
             break;
@@ -251,19 +257,21 @@ autoCategories KNN_classifyToCategories
  
     enum KNN_thread_status * error = (enum KNN_thread_status *) KNN_threadDistribution(KNN_classifyToCategoriesAux, (void **) input, nthreads);
     //void *error = KNN_classifyToCategoriesAux (input [0]);
-    for (int i = 0; i < nthreads; i ++)
+    for (int i = 0; i < nthreads; ++ i)
         free (input [i]);
   
     free (input);
     if (error)           // Something went very wrong, you ought to inform the user!
     {
         free (error);
-        return autoCategories();
+        return NULL;
     }
 
-	for (long i = 1; i <= ps -> ny; i ++) {
-		output -> addItem_move (Data_copy (my output->at [outputindices [i]]));
-	}
+    if (output)
+    {
+        for (long i = 1; i <= ps->ny; ++i)
+            Collection_addItem (output, Data_copy ((SimpleString) my output -> item [outputindices [i]]));
+    }
 	NUMvector_free (outputindices, 0);
     return output;
 }
@@ -303,7 +311,7 @@ void * KNN_classifyToCategoriesAux
         ncollected = KNN_kNeighbours
         (
             ((KNN_input_ToCategories_t *) input)->ps, 
-            ((KNN_input_ToCategories_t *) input)->me->input.get(),
+            ((KNN_input_ToCategories_t *) input)->me->input, 
             ((KNN_input_ToCategories_t *) input)->fws, y, 
             ((KNN_input_ToCategories_t *) input)->k, indices, distances
         );
@@ -314,7 +322,7 @@ void * KNN_classifyToCategoriesAux
 
         ncategories = KNN_kIndicesToFrequenciesAndDistances
         (
-            ((KNN_input_ToCategories_t *) input)->me->output.get(),
+            ((KNN_input_ToCategories_t *) input)->me->output, 
             ((KNN_input_ToCategories_t *) input)->k, 
             indices, distances, freqs, freqindices
         );
@@ -343,26 +351,29 @@ void * KNN_classifyToCategoriesAux
 	NUMvector_free (freqindices, 0);
 	NUMvector_free (distances, 0);
 	NUMvector_free (freqs, 0);
-    return nullptr;
+    return(NULL);
+
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 // Classification - To TableOfReal                                                         //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-typedef struct {
-	KNN me;
-	Pattern ps;
-	Categories uniqueCategories;
-	TableOfReal output;
-	FeatureWeights fws;
-	long k;
-	int dist;
-	long istart;
-	long istop;
+typedef struct
+{
+        KNN me;
+        Pattern ps;
+        Categories uniqueCategories;
+        TableOfReal output;
+        FeatureWeights fws;
+        long k;
+        int dist;
+        long istart;
+        long istop;
+
 } KNN_input_ToTableOfReal_t;
 
-autoTableOfReal KNN_classifyToTableOfReal
+TableOfReal KNN_classifyToTableOfReal
 (
     ///////////////////////////////
     // Parameters                //
@@ -382,17 +393,17 @@ autoTableOfReal KNN_classifyToTableOfReal
 {
     int nthreads = KNN_getNumberOfCPUs();
     long chunksize =  ps->ny / nthreads;
-    autoCategories uniqueCategories = Categories_selectUniqueItems (my output.get());
-    long ncategories = Categories_getSize (uniqueCategories.get());
+    Categories uniqueCategories = Categories_selectUniqueItems(my output, 1);
+    long ncategories = Categories_getSize(uniqueCategories);
    
-    Melder_assert (nthreads > 0);
-    Melder_assert (ncategories > 0);
-    Melder_assert (k > 0 && k <= my nInstances);
+    Melder_assert(nthreads > 0);
+    Melder_assert(ncategories > 0);
+    Melder_assert(k > 0 && k <= my nInstances);
  
-    if (! ncategories)
-        return autoTableOfReal();
+    if(!ncategories)
+        return(NULL);
 
-    if (chunksize < 1)
+    if(chunksize < 1)
     {
         chunksize = 1;
         nthreads = ps->ny;
@@ -401,35 +412,35 @@ autoTableOfReal KNN_classifyToTableOfReal
     long istart = 1;
     long istop = chunksize;
 
-    KNN_input_ToTableOfReal_t ** input = (KNN_input_ToTableOfReal_t **) malloc (nthreads * sizeof (KNN_input_ToTableOfReal_t *));
+    KNN_input_ToTableOfReal_t ** input = (KNN_input_ToTableOfReal_t **) malloc(nthreads * sizeof(KNN_input_ToTableOfReal_t *));
     
-    if(! input)
-        return autoTableOfReal();
+    if(!input)
+        return(NULL);
 
-    autoTableOfReal output = TableOfReal_create(ps->ny, ncategories);
+    TableOfReal output = TableOfReal_create(ps->ny, ncategories);
 
-    for (long i = 1; i <= ncategories; i ++)
-        TableOfReal_setColumnLabel (output.get(), i, SimpleString_c (uniqueCategories->at [i]));
+    for (long i = 1; i <= ncategories; ++i)
+        TableOfReal_setColumnLabel (output, i,  SimpleString_c ((SimpleString) uniqueCategories->item[i]));
 
-    for (int i = 0; i < nthreads; i ++)
+    for(int i = 0; i < nthreads; ++i)
     {
-        input [i] = (KNN_input_ToTableOfReal_t *) malloc (sizeof (KNN_input_ToTableOfReal_t));
-        if (! input [i])
+        input[i] = (KNN_input_ToTableOfReal_t *) malloc(sizeof(KNN_input_ToTableOfReal_t));
+        if(!input[i])
         {
-            while (input [i --])   // ppgb FIXME: is always false
-                free (input [i]);   // ppgb FIXME: the stopping condition is incorrect
+            while(input[i--])
+                free(input[i]);
 
-            free (input);
-            return autoTableOfReal();
+            free(input);
+            return(NULL);
         }
     }
 
-    for (int i = 0; i < nthreads; i ++)
+    for(int i = 0; i < nthreads; ++i)
     {  
         input[i]->me = me;
         input[i]->ps = ps;
-        input[i]->output = output.get();   // YUCK: reference copy
-        input[i]->uniqueCategories = uniqueCategories.releaseToAmbiguousOwner();
+        input[i]->output = output;
+        input[i]->uniqueCategories = uniqueCategories;
         input[i]->fws = fws;
         input[i]->k = k;
         input[i]->dist = dist;
@@ -449,16 +460,16 @@ autoTableOfReal KNN_classifyToTableOfReal
     }
  
     enum KNN_thread_status * error = (enum KNN_thread_status *) KNN_threadDistribution(KNN_classifyToTableOfRealAux, (void **) input, nthreads);
-    for (int i = 0; i < nthreads; i ++)
-        free (input [i]);
+    for(int i = 0; i < nthreads; ++i)
+        free(input[i]);
   
-    free (input);
-    if (error)           // Something went very wrong, you ought to inform the user!
+    free(input);
+    if(error)           // Something went very wrong, you ought to inform the user!
     {
-        free (error);
-        return autoTableOfReal();
+        free(error);
+        return(NULL);
     }
-    return output;
+    return(output);
 }
 
 
@@ -474,32 +485,28 @@ void * KNN_classifyToTableOfRealAux
 
 {
     long ncategories = Categories_getSize (((KNN_input_ToTableOfReal_t *) input)->uniqueCategories);
-    autoNUMvector <long> indices (0L, ((KNN_input_ToTableOfReal_t *) input)->k);
-    autoNUMvector <double> distances (0L, ((KNN_input_ToTableOfReal_t *) input)->k);
+    long *indices = NUMvector <long> (0, ((KNN_input_ToTableOfReal_t *) input)->k);
+    double *distances = NUMvector <double> (0, ((KNN_input_ToTableOfReal_t *) input)->k);
 
     for (long y = ((KNN_input_ToTableOfReal_t *) input)->istart; y <= ((KNN_input_ToTableOfReal_t *) input)->istop; ++y)
     {
         KNN_kNeighbours(((KNN_input_ToTableOfReal_t *) input)->ps, 
-                        ((KNN_input_ToTableOfReal_t *) input)->me->input.get(),
+                        ((KNN_input_ToTableOfReal_t *) input)->me->input, 
                         ((KNN_input_ToTableOfReal_t *) input)->fws, y, 
-                        ((KNN_input_ToTableOfReal_t *) input)->k, indices.peek(), distances.peek());
+                        ((KNN_input_ToTableOfReal_t *) input)->k, indices, distances);
 
         for(long i = 0; i < ((KNN_input_ToTableOfReal_t *) input)->k; ++i)
         {
-            for(long j = 1; j <= ncategories; ++j) {
-                if (FeatureWeights_areFriends (((KNN_input_ToTableOfReal_t *) input) -> me -> output->at [indices [i]],
-											   ((KNN_input_ToTableOfReal_t *) input) -> uniqueCategories->at [j]))
-				{
-                    ++((KNN_input_ToTableOfReal_t *) input) -> output -> data [y] [j];
-				}
-			}
+            for(long j = 1; j <= ncategories; ++j)
+                if(FeatureWeights_areFriends ((SimpleString) ((KNN_input_ToTableOfReal_t *) input)->me->output->item[indices[i]], (SimpleString) ((KNN_input_ToTableOfReal_t *) input)->uniqueCategories->item[j])) 
+                    ++((KNN_input_ToTableOfReal_t *) input)->output->data[y][j];
         }
     }
  
     switch (((KNN_input_ToTableOfReal_t *) input)->dist)
     {
         case kOla_DISTANCE_WEIGHTED_VOTING:
-            for (long y = ((KNN_input_ToTableOfReal_t *) input) -> istart; y <= ((KNN_input_ToTableOfReal_t *) input) -> istop; y ++)
+            for (long y = ((KNN_input_ToTableOfReal_t *) input)->istart; y <= ((KNN_input_ToTableOfReal_t *) input)->istop; ++y)
             {
                 double sum = 0;
                 for(long c = 1; c <= ncategories; ++c)
@@ -541,14 +548,16 @@ void * KNN_classifyToTableOfRealAux
             }
 
     }
-    return nullptr;
+	NUMvector_free (indices, 0);
+	NUMvector_free (distances, 0);
+    return(NULL);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////
 // Classification - Folding                                                                //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoCategories KNN_classifyFold
+Categories KNN_classifyFold
 (
     ///////////////////////////////
     // Parameters                //
@@ -596,13 +605,13 @@ autoCategories KNN_classifyFold
         // Localizing the k nearest neighbours //
         /////////////////////////////////////////
 
-        ncollected = KNN_kNeighboursSkipRange (ps, my input.get(), fws, y, k, indices.peek(), distances.peek(), begin, end);
+        ncollected = KNN_kNeighboursSkipRange (ps, my input, fws, y, k, indices.peek(), distances.peek(), begin, end);
 
         /////////////////////////////////////////////////
         // Computing frequencies and average distances //
         /////////////////////////////////////////////////
 
-        ncategories = KNN_kIndicesToFrequenciesAndDistances (my output.get(), k, indices.peek(), distances.peek(), freqs.peek(), freqindices.peek());
+        ncategories = KNN_kIndicesToFrequenciesAndDistances (my output, k, indices.peek(), distances.peek(), freqs.peek(), freqindices.peek());
 
         ////////////////////////
         // Distance weighting //
@@ -612,21 +621,21 @@ autoCategories KNN_classifyFold
         {
             case kOla_DISTANCE_WEIGHTED_VOTING:
                 for (long c = 0; c < ncategories; c ++)
-                    freqs [c] *= 1.0 / OlaMAX (distances [c], kOla_MINFLOAT);
+                    freqs [c] *= 1 / OlaMAX (distances [c], kOla_MINFLOAT);
                 break;
 
             case kOla_SQUARED_DISTANCE_WEIGHTED_VOTING:
                 for (long c = 0; c < ncategories; c ++)
-                    freqs [c] *= 1.0 / OlaMAX (OlaSQUARE (distances [c]), kOla_MINFLOAT);
+                    freqs [c] *= 1 / OlaMAX (OlaSQUARE (distances [c]), kOla_MINFLOAT);
         }
 
         KNN_normalizeFloatArray (freqs.peek(), ncategories);
         outputindices [noutputindices++] = freqindices [KNN_max (freqs.peek(), ncategories)];
     }
 
-	autoCategories output = Categories_create ();
+    Categories output = Categories_create ();
 	for (long o = 0; o < noutputindices; o ++) {
-		output -> addItem_move (Data_copy (my output->at [outputindices [o]]));
+		Collection_addItem (output, Data_copy ((SimpleString) my output -> item [outputindices [o]]));
 	}
 	return output;
 }
@@ -654,7 +663,7 @@ double KNN_evaluate
 )
 
 {
-    double correct = 0.0;
+    double correct = 0;
     long adder;
 
     switch(mode)
@@ -674,19 +683,21 @@ double KNN_evaluate
             adder = 0;
     }
     
-    if (adder == 0)
+    if (adder ==  0)
         return -1;
 
     for (long begin = 1; begin <= my nInstances; begin += adder)
     {
-        autoCategories c = KNN_classifyFold (me, my input.get(), fws, k, dist, begin, OlaMIN (begin + adder - 1, my nInstances));
-        for (long y = 1; y <= c->size; y ++)
-            if (FeatureWeights_areFriends (c->at [y], my output->at [begin + y - 1]))
-                correct += 1.0;
+        autoCategories c = KNN_classifyFold (me, my input, fws, k, dist, begin, OlaMIN (begin + adder - 1, my nInstances));
+        for (long y = 1; y <= c -> size; y ++)
+            if (FeatureWeights_areFriends ((SimpleString) c -> item [y], (SimpleString) my output -> item [begin + y - 1])) 
+                ++ correct;
     }
 
     correct /= (double) my nInstances;
+
     return correct;
+
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -714,11 +725,20 @@ double KNN_evaluateWithTestSet
 )
 
 {
-    double correct = 0.0;
-    autoCategories t = KNN_classifyToCategories (me, p, fws, k, dist);
-	for (long y = 1; y <= t->size; y ++)
-		if (FeatureWeights_areFriends (t->at [y], c->at [y])) correct += 1.0;
-	return correct / c->size;
+    double correct = 0;
+    Categories t = KNN_classifyToCategories(me, p, fws, k, dist);
+
+    if (t)
+    {
+        for (long y = 1; y <= t->size; y++)
+            if (FeatureWeights_areFriends ((SimpleString) t->item[y], (SimpleString) c->item[y])) correct++;
+        forget(t);
+        return(correct / c->size);
+    }
+    else
+    {
+        return(0);
+    }
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -764,11 +784,11 @@ double KNN_modelSearch
 		};
 
 		long max = *k;
-		double range = (double) max / 2.0;
+		double range = (double) max / 2;
 		double pivot = range;
 
-		double dpivot = 1.0;
-		double drange = 1.0;
+		double dpivot = 1;
+		double drange = 1;
 		double drate = rate / range;
 
 		soil best = {0, lround(dpivot), lround(dpivot)};
@@ -778,9 +798,9 @@ double KNN_modelSearch
 		{
 			for (long n = 0; n < nseeds; n++)
 			{
-				field[n].k = lround (NUMrandomUniform (OlaMAX (pivot - range, 1), OlaMIN (pivot + range, max)));
-				field[n].dist = lround (NUMrandomUniform (OlaMAX (dpivot - drange, 0), OlaMIN (dpivot + drange, 2)));
-				field[n].performance = KNN_evaluate (me, fws, field[n].k, dists[field[n].dist], mode);
+				field[n].k = lround(NUMrandomUniform(OlaMAX(pivot - range, 1), OlaMIN(pivot + range, max)));
+				field[n].dist = lround(NUMrandomUniform(OlaMAX(dpivot - drange, 0), OlaMIN(dpivot + drange, 2)));
+				field[n].performance = KNN_evaluate(me, fws, field[n].k, dists[field[n].dist], mode);
 			}
 
 			long maxindex = 0;
@@ -828,10 +848,11 @@ double KNN_distanceEuclidean
 )
 
 {
-    double distance = 0.0;
+    double distance = 0;
     for (long x = 1; x <= ps->nx; ++x)
-        distance += OlaSQUARE ((ps->z[rows][x] - pt->z[rowt][x]) * fws->fweights->data[1][x]);
-    return sqrt (distance);
+        distance += OlaSQUARE((ps->z[rows][x] - pt->z[rowt][x]) * fws->fweights->data[1][x]);
+
+    return(sqrt(distance));
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -851,10 +872,11 @@ double KNN_distanceManhattan
 )
 
 {
-    double distance = 0.0;
+    double distance = 0;
     for (long x = 1; x <= ps->nx; ++x)
-        distance += fabs (ps->z[rows][x] - pt->z[rowt][x]);
-    return distance;
+        distance += fabs(ps->z[rows][x] - pt->z[rowt][x]);
+
+    return(distance);
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -871,10 +893,12 @@ long KNN_max
 
 {
     long maxndx = 0;
-    for (long maxc = 1; maxc < ndistances; ++maxc)
+
+    for(long maxc = 1; maxc < ndistances; ++maxc)
         if (distances[maxc] > distances[maxndx]) 
             maxndx = maxc;
-    return maxndx;
+
+    return(maxndx);
 }
 
 
@@ -912,9 +936,9 @@ long KNN_kNeighboursSkip
 
     autoNUMvector <double> distances (0L, k - 1);
 
-    Melder_assert (jy > 0 && jy <= j->ny);
-    Melder_assert (k > 0 && k <= p->ny);
-    Melder_assert (skipper <= p->ny);
+    Melder_assert(jy > 0 && jy <= j->ny);
+    Melder_assert(k > 0 && k <= p->ny);
+    Melder_assert(skipper <= p->ny);
 
     while (dc < k && py <= p -> ny)
     {
@@ -996,18 +1020,18 @@ long KNN_kNeighboursSkipRange
                                     //
     long py = 0;                    //
 
-    Melder_assert (jy > 0 && jy <= j->ny);
-    Melder_assert (k > 0 && k <= p->ny);
-    Melder_assert (end > 0 && end <= j->ny);
-    Melder_assert (begin > 0 && begin <= j->ny);
+    Melder_assert(jy > 0 && jy <= j->ny);
+    Melder_assert(k > 0 && k <= p->ny);
+    Melder_assert(end > 0 && end <= j->ny);
+    Melder_assert(begin > 0 && begin <= j->ny);
 
     while (dc < k && (end + py) % p->ny + 1 != begin)   // the first k neighbours are the nearest found
     {                                                   // sofar
 
         if ((end + py) % p->ny + 1 != jy)               // no instance is its own neighbour
         {
-            distances [dc] = KNN_distanceEuclidean (j, p, fws, jy, (end + py) % p->ny + 1);
-            indices [dc] = (end + py) % p->ny + 1;
+            distances[dc] = KNN_distanceEuclidean(j, p, fws, jy, (end + py) % p->ny + 1);
+            indices[dc] = (end + py) % p->ny + 1;
             ++dc;
         }
         ++py;
@@ -1021,15 +1045,15 @@ long KNN_kNeighboursSkipRange
             double d = KNN_distanceEuclidean(j, p, fws, jy, (end + py) % p->ny + 1);
             if (d < distances[maxi])
             {
-                distances [maxi] = d;
-                indices [maxi] = (end + py) % p->ny + 1;
-                maxi = KNN_max (distances, k);
+                distances[maxi] = d;
+                indices[maxi] = (end + py) % p->ny + 1;
+                maxi = KNN_max(distances, k);
             }
         }
         ++py;
     }
 
-    return OlaMIN (k, dc); // return the number of found neighbours
+    return(OlaMIN(k, dc)); // return the number of found neighbours
 
 }
 
@@ -1067,16 +1091,16 @@ long KNN_kNeighbours
     long dc = 0;
     long py = 1;
 
-    Melder_assert (jy > 0 && jy <= j->ny);
-    Melder_assert (k > 0 && k <= p->ny);
-    Melder_assert (indices);
-    Melder_assert (distances);
+    Melder_assert(jy > 0 && jy <= j->ny);
+    Melder_assert(k > 0 && k <= p->ny);
+    Melder_assert(indices);
+    Melder_assert(distances);
 
     while (dc < k && py <= p->ny)
     {
         if (py != jy)
         {
-            distances[dc] = KNN_distanceEuclidean (j, p, fws, jy, py);
+            distances[dc] = KNN_distanceEuclidean(j, p, fws, jy, py);
             indices[dc] = py;
             ++dc;
         }
@@ -1088,25 +1112,25 @@ long KNN_kNeighbours
     {
         if (py != jy)
         {
-            double d = KNN_distanceEuclidean (j, p, fws, jy, py);
-            if (d < distances [maxi])
+            double d = KNN_distanceEuclidean(j, p, fws, jy, py);
+            if (d < distances[maxi])
             {
-                distances [maxi] = d;
-                indices [maxi] = py;
-                maxi = KNN_max (distances, k);
+                distances[maxi] = d;
+                indices[maxi] = py;
+                maxi = KNN_max(distances, k);
             }
         }
         ++py;
     }
 
-    long ret = OlaMIN (k, dc);
+    long ret = OlaMIN(k, dc);
     if (ret < 1)
     {
-        indices [0] = jy;
-        return 0;
+        indices[0] = jy;
+        return(0);
     }
     else
-        return ret;
+        return(ret);
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -1138,39 +1162,40 @@ long KNN_kFriends
     long maxi;
     long dc = 0;
     long py = 1;
-    autoNUMvector <double> distances (0L, k - 1);
+    double *distances = NUMvector <double> (0, k - 1);
 
-    Melder_assert (jy <= j->ny  && k <= p->ny && k > 0);
-    Melder_assert (indices);
+    Melder_assert(jy <= j->ny  && k <= p->ny && k > 0);
+    Melder_assert(indices);
 
     while (dc < k && py < p->ny)
     {
-        if (jy != py && FeatureWeights_areFriends (c->at [jy], c->at [py]))
+        if (jy != py && FeatureWeights_areFriends ((SimpleString) c->item[jy], (SimpleString) c->item[py]))
         {
-            distances[dc] = KNN_distanceManhattan (j, p, jy, py);
+            distances[dc] = KNN_distanceManhattan(j, p, jy, py);
             indices[dc] = py;
             dc++;
         }
         ++py;
     }
 
-    maxi = KNN_max (distances.peek(), k);
+    maxi = KNN_max(distances, k);
     while (py <= p->ny)
     {
-        if (jy != py && FeatureWeights_areFriends (c->at [jy], c->at [py]))
+        if (jy != py && FeatureWeights_areFriends ((SimpleString) c->item[jy],(SimpleString) c->item[py]))
         {
-            double d = KNN_distanceManhattan (j, p, jy, py);
-            if (d < distances [maxi])
+            double d = KNN_distanceManhattan(j, p, jy, py);
+            if (d < distances[maxi])
             {
-                distances [maxi] = d;
-                indices [maxi] = py;
-                maxi = KNN_max (distances.peek(), k);
+                distances[maxi] = d;
+                indices[maxi] = py;
+                maxi = KNN_max(distances, k);
             }
         }
         ++py;
     }
 
-    return OlaMIN (k, dc);
+	NUMvector_free (distances, 0);
+    return(OlaMIN(k,dc));
 
 }
 
@@ -1200,13 +1225,14 @@ double KNN_nearestEnemy
 
     for (long y = 2; y <= p->ny; y++)
     {
-        if (FeatureWeights_areEnemies (c->at [jy], c->at [y]))
+        if (FeatureWeights_areEnemies ((SimpleString) c->item[jy], (SimpleString) c->item[y]))
         {
             double newdist = KNN_distanceManhattan(j, p, jy, y);
             if (newdist > distance) distance = newdist;
         }
     }
-    return distance;
+
+    return(distance);
 
 }
 
@@ -1241,12 +1267,12 @@ long KNN_friendsAmongkNeighbours
     Melder_assert (jy > 0 && jy <= j->ny  && k <= p->ny && k > 0);
 
     autoFeatureWeights fws = FeatureWeights_create (p -> nx);
-    long ncollected = KNN_kNeighbours (j, p, fws.get(), jy, k, indices.peek(), distances.peek());
+    long ncollected = KNN_kNeighbours (j, p, fws.peek(), jy, k, indices.peek(), distances.peek());
 
     while (ncollected--)
-        if (FeatureWeights_areFriends (c->at [jy], c->at [indices [ncollected]])) friends ++;
+        if (FeatureWeights_areFriends ((SimpleString) c->item[jy], (SimpleString) c->item[indices[ncollected]])) friends++;
     
-    return friends;
+    return friends ;
 
 }
 
@@ -1284,15 +1310,15 @@ long KNN_kUniqueEnemies
     Melder_assert (jy <= j->ny);
 	Melder_assert (k <= p->ny);
 	Melder_assert (k > 0);
-    Melder_assert (indices);
+    Melder_assert (indices != NULL);
 
     while (dc < k && py <= p->ny)
     {
-        if (FeatureWeights_areEnemies (c->at [jy], c->at [py]))
+        if (FeatureWeights_areEnemies ((SimpleString) c->item[jy], (SimpleString) c->item[py]))
         {
             int hasfriend = 0;
             for (long sc = 0; sc < dc; ++sc)
-                if (FeatureWeights_areFriends (c->at [py], c->at [indices [sc]])) hasfriend = 1;
+                if (FeatureWeights_areFriends ((SimpleString) c->item[py], (SimpleString) c->item[indices[sc]])) hasfriend = 1;
 
             if (!hasfriend)
             {
@@ -1307,16 +1333,16 @@ long KNN_kUniqueEnemies
     maxi = KNN_max(distances, k);
     while (py <= p->ny)
     {
-        if (FeatureWeights_areEnemies (c->at [jy], c->at [py]))
+        if (FeatureWeights_areEnemies ((SimpleString) c->item[jy], (SimpleString) c->item[py]))
         {
             int hasfriend = 0;
             for (long sc = 0; sc < dc; ++sc)
-                if (FeatureWeights_areFriends (c->at [py], c->at [indices[sc]])) hasfriend = 1;
+                if (FeatureWeights_areFriends ((SimpleString) c->item[py], (SimpleString) c->item[indices[sc]])) hasfriend = 1;
 
             if (!hasfriend)
             {
                 double d = KNN_distanceManhattan(j, p, jy, py);
-                if (d < distances[maxi] && FeatureWeights_areFriends (c->at [jy], c->at [py]))
+                if (d < distances[maxi] && FeatureWeights_areFriends ((SimpleString) c->item[jy], (SimpleString) c->item[py]))
                 {
                     distances[maxi] = d;
                     indices[maxi] = py;
@@ -1327,14 +1353,14 @@ long KNN_kUniqueEnemies
         ++py;
     }
 	NUMvector_free (distances, 0);
-    return OlaMIN (k, dc);
+    return(OlaMIN(k,dc));
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 // Compute dissimilarity matrix                                                            //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoDissimilarity KNN_patternToDissimilarity
+Dissimilarity KNN_patternToDissimilarity
 (
     ///////////////////////////////
     // Parameters                //
@@ -1351,7 +1377,7 @@ autoDissimilarity KNN_patternToDissimilarity
 	for (long y = 1; y <= p -> ny; ++ y)
 		for (long x = 1; x <= p -> ny; ++ x)
 			output -> data [y] [x] = KNN_distanceEuclidean (p, p, fws, y, x);
-	return output;
+	return output.transfer();
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -1380,8 +1406,8 @@ long KNN_kIndicesToFrequenciesAndDistances
 {
     long ncategories = 0;
     
-    Melder_assert (k <= c->size && k > 0);
-    Melder_assert (distances && indices && freqs && freqindices);
+    Melder_assert(k <= c->size && k > 0);
+    Melder_assert(distances && indices && freqs  && freqindices);
 
     for (long y = 0; y < k; ++y)
     {
@@ -1390,7 +1416,7 @@ long KNN_kIndicesToFrequenciesAndDistances
 
         while (ifriend < ncategories)
         {
-            if (FeatureWeights_areFriends (c->at [indices [y]], c->at [freqindices [ifriend]]))
+            if (FeatureWeights_areFriends ((SimpleString) c->item[indices[y]], (SimpleString) c->item[freqindices[ifriend]]))
             {
                 hasfriend = 1;
                 break;
@@ -1458,28 +1484,36 @@ void KNN_removeInstance
 )
 
 {
-    if (y == 1 && my nInstances == 1) {
+    if (y == 1 && my nInstances == 1)
+    {
         my nInstances = 0;
-        my input.reset();
-        my output.reset();
+        forget(my input);
+        forget(my output);
         return;
     }
 
-    Melder_assert (y > 0 && y <= my nInstances);
+    Melder_assert(y > 0 && y <= my nInstances);
+    if (y > my nInstances || y < 1) 
+        return;                         // safety belt
 
-    autoPattern newPattern = Pattern_create (my nInstances - 1, my input -> nx);
-	long yt = 1;
-	for (long cy = 1; cy <= my nInstances; cy ++) {
-		if (cy != y) {
-			for (long cx = 1; cx <= my input -> nx; cx ++)
-				newPattern -> z [yt] [cx] = my input -> z [cy] [cx];
-			yt ++;
-		}
-	}
+    Pattern newPattern = (Pattern) Pattern_create(my nInstances - 1, (my input)->nx);
+    Melder_assert(newPattern);
+    if (newPattern)
+    {
+        long yt = 1;
+        for (long cy = 1; cy <= my nInstances; ++cy)
+            if (cy != y)
+            {
+                for (long cx = 1; cx <= (my input)->nx; ++cx)
+                    newPattern->z[yt][cx] = (my input)->z[cy][cx];
+                ++yt;
+            }
 
-	my input = newPattern.move();
-	my output -> removeItem (y);
-	my nInstances--;
+        forget(my input);
+        my input = newPattern;
+        Collection_removeItem(my output, y);
+        my nInstances--;
+    }
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////////
@@ -1495,35 +1529,38 @@ void KNN_shuffleInstances
     KNN me      // Classifier whose instance
                 // base is to be shuffled
 )
+
 {
     if (my nInstances < 2) 
-        return;   // it takes at least two to tango
+        return;                 // It takes atleast two to tango
 
     autoPattern new_input = Pattern_create (my nInstances, my input -> nx);
     autoCategories new_output = Categories_create ();
 	long y = 1;
 	while (my nInstances)
 	{
-		long pick = NUMrandomInteger (1, my nInstances);
-		new_output -> addItem_move (Data_copy (my output->at [pick]));
+		long pick = (long) lround (NUMrandomUniform (1, my nInstances));
+		Collection_addItem (new_output.peek(), Data_copy ((SimpleString) my output -> item [pick]));
 
-		for (long x = 1; x <= my input -> nx; x ++)
-			new_input -> z [y] [x] = my input -> z [pick] [x];
+		for (long x = 1;x <= (my input)->nx; ++x)
+			new_input -> z [y] [x] = my input-> z [pick] [x];
 
 		KNN_removeInstance (me, pick);
-		y ++;
+		++y;
 	}
 
-	my nInstances = new_output->size;
-	my input = new_input.move();
-	my output = new_output.move();
+	forget (my input);
+	forget (my output);
+	my nInstances = new_output -> size;
+	my input = new_input.transfer();
+	my output = new_output.transfer();
 }
 
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 // KNN to Permutation (experimental)                                                       //
 /////////////////////////////////////////////////////////////////////////////////////////////
-autoPermutation KNN_SA_ToPermutation
+Permutation KNN_SA_ToPermutation
 (
     ///////////////////////////////
     // Parameters                //
@@ -1551,8 +1588,8 @@ autoPermutation KNN_SA_ToPermutation
     gsl_rng * r;
     const gsl_rng_type * T;
 
-    KNN_SA_t * istruct = KNN_SA_t_create (my input.get());
-    autoPermutation result = Permutation_create (my nInstances);
+    KNN_SA_t * istruct = KNN_SA_t_create(my input); 
+    Permutation result = Permutation_create(my nInstances);
 
     gsl_siman_params_t params = { (int) tries, (int) iterations, step_size, boltzmann_c, temp_start, damping_f, temp_stop};
 
@@ -1565,7 +1602,7 @@ autoPermutation KNN_SA_ToPermutation
                     KNN_SA_t_energy, 
                     KNN_SA_t_step, 
                     KNN_SA_t_metric, 
-                    nullptr,                // KNN_SA_t_print
+                    NULL,                // KNN_SA_t_print, 
                     KNN_SA_t_copy, 
                     KNN_SA_t_copy_construct, 
                     KNN_SA_t_destroy, 
@@ -1577,7 +1614,7 @@ autoPermutation KNN_SA_ToPermutation
 
     KNN_SA_t_destroy(istruct);
 
-    return result;
+    return(result);
 }
 
 
diff --git a/contrib/ola/KNN.h b/contrib/ola/KNN.h
index c0a845b..b5fea78 100644
--- a/contrib/ola/KNN.h
+++ b/contrib/ola/KNN.h
@@ -48,6 +48,7 @@
 /////////////////////////////////////////////////////
 
 #include "KNN_def.h"
+oo_CLASS_CREATE (KNN, Data);
 
 /////////////////////////////////////////////////////
 // Private definitions and macros                  //
@@ -83,7 +84,7 @@
 /////////////////////////////////////////////////////
 
 // a near-dummy function
-autoKNN KNN_create ();
+KNN KNN_create(void);
 
 // Learning
 int KNN_learn
@@ -96,7 +97,7 @@ int KNN_learn
 );
 
 // Classification - To Categories
-autoCategories KNN_classifyToCategories
+Categories KNN_classifyToCategories
 (
     KNN me,             // the classifier being used
     Pattern ps,         // target pattern (where neighbours are sought for)
@@ -112,7 +113,7 @@ void * KNN_classifyToCategoriesAux
 );
 
 // Classification - To TableOfReal
-autoTableOfReal KNN_classifyToTableOfReal
+TableOfReal KNN_classifyToTableOfReal
 (
     KNN me,             // the classifier being used
     Pattern ps,         // target pattern (where neighbours are sought for)
@@ -128,7 +129,7 @@ void * KNN_classifyToTableOfRealAux
 );
 
 // Classification - To TableOfReal, all candidates
-autoTableOfReal KNN_classifyToTableOfRealAll
+TableOfReal KNN_classifyToTableOfRealAll
 (
     KNN me,             // the classifier being used
     Pattern ps,         // target pattern (where neighbours are sought for)
@@ -138,7 +139,7 @@ autoTableOfReal KNN_classifyToTableOfRealAll
 );
 
 // Classification - Folding
-autoCategories KNN_classifyFold
+Categories KNN_classifyFold
 (
     KNN me,             // the classifier being used
     Pattern ps,         // target pattern (where neighbours are sought for)
@@ -303,7 +304,7 @@ long KNN_kUniqueEnemies
 );
 
 // Compute dissimilarity matrix
-autoDissimilarity KNN_patternToDissimilarity
+Dissimilarity KNN_patternToDissimilarity
 (
     Pattern p,          // Pattern
     FeatureWeights fws  // Feature weights
@@ -344,7 +345,7 @@ void KNN_shuffleInstances
 );
 
 // Experimental code
-autoPermutation KNN_SA_ToPermutation
+Permutation KNN_SA_ToPermutation
 (
     KNN me,             // the classifier being used
     long tries,         //
@@ -426,7 +427,7 @@ void KNN_SA_partition
 );
 
 // Compute feature weights (wrapper), evaluate using folding
-autoFeatureWeights FeatureWeights_computeWrapperInt
+FeatureWeights FeatureWeights_computeWrapperInt
 (
     KNN me,                 // Classifier
     long k,                 // k(!)
@@ -439,7 +440,7 @@ autoFeatureWeights FeatureWeights_computeWrapperInt
 );
 
 // Compute feature weights (wrapper), evaluate using separate test set
-autoFeatureWeights FeatureWeights_computeWrapperExt
+FeatureWeights FeatureWeights_computeWrapperExt
 (
     KNN nn,                 // Classifier
     Pattern pp,             // test pattern
diff --git a/contrib/ola/KNN_def.h b/contrib/ola/KNN_def.h
index deffd72..74444d9 100644
--- a/contrib/ola/KNN_def.h
+++ b/contrib/ola/KNN_def.h
@@ -1,6 +1,6 @@
 /* KNN_def.h
  *
- * Copyright (C) 2007-2009 Ola Söder, 2011,2015 Paul Boersma
+ * Copyright (C) 2007-2009 Ola Söder, 2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,20 +18,20 @@
  */
 
 
-#define ooSTRUCT KNN
-oo_DEFINE_CLASS (KNN, Daata)
+#include "Pattern.h"
 
+#define ooSTRUCT KNN
+oo_DEFINE_CLASS (KNN, Data)
 	oo_LONG (nInstances)
-	oo_AUTO_OBJECT (Pattern, 2, input)
-	oo_AUTO_OBJECT (Categories, 0, output)
+	oo_OBJECT (Pattern, 2, input)
+	oo_OBJECT (Categories, 0, output)
 
 	#if oo_DECLARING
-		void v_info ()
-			override;
+		// overridden methods:
+			virtual void v_info ();
 	#endif
 
 oo_END_CLASS (KNN)
 #undef ooSTRUCT
 
-
 /* End of file KNN_def.h */
diff --git a/contrib/ola/KNN_prune.cpp b/contrib/ola/KNN_prune.cpp
index a21b70d..0d7658e 100644
--- a/contrib/ola/KNN_prune.cpp
+++ b/contrib/ola/KNN_prune.cpp
@@ -1,6 +1,6 @@
 /* KNN_prune.cpp
  *
- * Copyright (C) 2007-2008 Ola So"der, 2010-2011,2015,2016 Paul Boersma
+ * Copyright (C) 2007-2008 Ola So"der, 2010-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,8 +39,8 @@ long KNN_prune_prune
     long k      // k(!)
 )
 {
-	autoCategories uniqueCategories = Categories_selectUniqueItems (my output.get());
-	if (Categories_getSize (uniqueCategories.get()) == my nInstances)
+	autoCategories uniqueCategories = Categories_selectUniqueItems (my output, 1);
+	if (Categories_getSize (uniqueCategories.peek()) == my nInstances)
 		return 0;
 	long removals = 0;
 	long ncandidates = 0;
@@ -48,7 +48,7 @@ long KNN_prune_prune
 	if (my nInstances <= 1)
 		return 0;
 	for (long y = 1; y <= my nInstances; y ++) {
-		if (KNN_prune_noisy (my input.get(), my output.get(), y, k)) {
+		if (KNN_prune_noisy (my input, my output, y, k)) {
 			if (n == 1 || NUMrandomUniform (0, 1) <= n) {
 				KNN_removeInstance (me, y);
 				++ removals;
@@ -56,13 +56,13 @@ long KNN_prune_prune
 		}
 	}
 	for (long y = 1; y <= my nInstances; ++ y) {
-		if (KNN_prune_superfluous (my input.get(), my output.get(), y, k, 0) && ! KNN_prune_critical (my input.get(), my output.get(), y, k))
+		if (KNN_prune_superfluous (my input, my output, y, k, 0) && ! KNN_prune_critical (my input, my output, y, k))
 			candidates [ncandidates ++] = y;
 	}
-	KNN_prune_sort (my input.get(), my output.get(), k, candidates.peek(), ncandidates);
+	KNN_prune_sort (my input, my output, k, candidates.peek(), ncandidates);
 	for (long y = 0; y < ncandidates; ++ y) {
-		if (KNN_prune_superfluous (my input.get(), my output.get(), candidates [y], k, 0) && ! KNN_prune_critical (my input.get(), my output.get(), candidates [y], k)) {
-			if (r == 1.0 || NUMrandomUniform (0.0, 1.0) <= r) {
+		if (KNN_prune_superfluous (my input, my output, candidates [y], k, 0) && ! KNN_prune_critical (my input, my output, candidates [y], k)) {
+			if (r == 1 || NUMrandomUniform (0, 1) <= r) {
 				KNN_removeInstance (me, candidates[y]);
 				for (long i = y + 1; i < ncandidates; ++ i) {
 					if(candidates[i] > candidates[y])
@@ -130,9 +130,9 @@ long KNN_prune_kCoverage
 	long cc = 0;
 	autoFeatureWeights fws = FeatureWeights_create (p -> nx);
 	autoNUMvector <long> tempindices (0L, p -> ny - 1);
-	for (long yy = 1; yy <= p -> ny; yy ++) {
-		if (y != yy && FeatureWeights_areFriends (c->at [y], c->at [yy])) {
-			long n = KNN_kNeighboursSkip (p, p, fws.get(), yy, k, tempindices.peek(), y);
+	for (long yy = 1; yy <= p -> ny; yy++) {
+		if (y != yy && FeatureWeights_areFriends ((SimpleString) c -> item [y], (SimpleString) c -> item [yy])) {
+			long n = KNN_kNeighboursSkip (p, p, fws.peek(), yy, k, tempindices.peek(), y);
 			while (n) {
 				Melder_assert (n <= p -> ny);
 				if (tempindices [-- n] == y) {
@@ -165,9 +165,9 @@ int KNN_prune_superfluous
 	autoNUMvector <long> freqindices (0L, k - 1);
 	autoNUMvector <double> distances (0L, k - 1);
 	autoNUMvector <double> freqs (0L, k - 1);
-	if (! KNN_kNeighboursSkip (p, p, fws.get(), y, k, indices.peek(), skipper)) return 0;
+	if (! KNN_kNeighboursSkip (p, p, fws.peek(), y, k, indices.peek(), skipper)) return 0;
 	long ncategories = KNN_kIndicesToFrequenciesAndDistances (c, k, indices.peek(), distances.peek(), freqs.peek(), freqindices.peek());
-	int result = FeatureWeights_areFriends (c->at [y], c->at [freqindices [KNN_max (freqs.peek(), ncategories)]]);
+	int result = FeatureWeights_areFriends ((SimpleString) c -> item [y], (SimpleString) c -> item [freqindices [KNN_max (freqs.peek(), ncategories)]]);
 	if (result)
 		return 1;
 	return 0;
@@ -189,7 +189,7 @@ int KNN_prune_critical
 	if (k > p -> ny) k = p -> ny;
 	autoFeatureWeights fws = FeatureWeights_create (p -> nx);
 	autoNUMvector <long> indices (0L, k - 1);
-	long ncollected = KNN_kNeighboursSkip (p, p, fws.get(), y, k, indices.peek(), y);
+	long ncollected = KNN_kNeighboursSkip (p, p, fws.peek(), y, k, indices.peek(), y);
 	for (long ic = 0; ic < ncollected; ic ++) {
 		if (! KNN_prune_superfluous (p, c, indices [ic], k, 0) || ! KNN_prune_superfluous (p, c, indices [ic], k, y)) {
 			return 1;
@@ -215,7 +215,7 @@ int KNN_prune_noisy
 	if (k > p -> ny) k = p -> ny;
 	autoFeatureWeights fws = FeatureWeights_create (p -> nx);
 	autoNUMvector <long> indices (0L, p->ny - 1);    // the coverage is not bounded by k but by n
-	long reachability = KNN_kNeighboursSkip (p, p, fws.get(), y, k, indices.peek(), y);
+	long reachability = KNN_kNeighboursSkip (p, p, fws.peek(), y, k, indices.peek(), y); 
 	long coverage = KNN_prune_kCoverage (p, c, y, k, indices.peek());
 	if (! KNN_prune_superfluous (p, c, y, k, 0) && reachability > coverage)
 		return 1;
diff --git a/contrib/ola/KNN_threads.cpp b/contrib/ola/KNN_threads.cpp
index 313a278..58a970b 100644
--- a/contrib/ola/KNN_threads.cpp
+++ b/contrib/ola/KNN_threads.cpp
@@ -1,4 +1,4 @@
-/* KNN_threads.cpp
+/* KNN_threads.c
  *
  * Copyright (C) 2009 Ola Söder
  *
@@ -55,7 +55,7 @@
 // KNN_getNumberOfCPUs                             //
 /////////////////////////////////////////////////////
 
-int KNN_getNumberOfCPUs ()
+int KNN_getNumberOfCPUs(void)
 {
     return(1);
     
@@ -97,8 +97,8 @@ int KNN_getNumberOfCPUs ()
     if(!Glpi) 
         return(1);
     
-    done = false;
-    buffer = nullptr;
+    done = FALSE;
+    buffer = NULL;
     returnLength = 0;
 
     while(!done) 
@@ -112,7 +112,7 @@ int KNN_getNumberOfCPUs ()
                     free(buffer);
                 return (1);
             } 
-            else done = true;
+            else done = TRUE;
         }
         byteOffset = 0;
         ptr=buffer;
@@ -169,7 +169,7 @@ void * KNN_threadDistribution
         /*
         HANDLE hHandle[nthreads];
         for(int i = 0; i < nthreds; ++)
-            hHandle[i] = CreateThread(nullptr, 0, function, input[i], 0, nullptr);
+            hHandle[i] = CreateThread(NULL, 0, function, input[i], 0, NULL);    
         while(nthreads--)
             WaitForSingleObject(hHandle[nthreds], INFINITE);
         */
@@ -178,10 +178,10 @@ void * KNN_threadDistribution
         /*
         pthread_t thread_ids[nthreads];
         for(int i = 0; i < nthreads; ++i)
-            pthread_create(&thread_ids[i], nullptr, function, input[i]);
+            pthread_create(&thread_ids[i], NULL, function, input[i]);
         while(nthreads--)
-            pthread_join(thread_ids[nthreads], nullptr);
-        return nullptr;
+            pthread_join(thread_ids[nthreads], NULL);
+        return(NULL);
         */
 #endif
 	}
@@ -195,7 +195,7 @@ void * KNN_threadDistribution
 // KNN_threadTest                                  //
 /////////////////////////////////////////////////////
 
-void KNN_threadTest ()
+void KNN_threadTest(void)
 {
     void * dummy[KNN_getNumberOfCPUs()];
     KNN_threadDistribution(KNN_threadTestAux, (void **) &dummy, KNN_getNumberOfCPUs());
@@ -207,14 +207,14 @@ void KNN_threadTest ()
 // KNN_threadTestAux                               //
 /////////////////////////////////////////////////////
 
-void * KNN_threadTestAux (void * dummy)
+void * KNN_threadTestAux(void * dummy)
 {
-    dummy = nullptr; // dummy assignment to avoid compiler warnings;
+    dummy = NULL; // dummy assignment to avoid compiler warnings;
 
     for(int i = 0; i < 50000; ++i)
         for(int i = 0; i < 50000; ++i) ;
 
-    return nullptr;
+    return(NULL);
 }
 
 
diff --git a/contrib/ola/KNN_threads.h b/contrib/ola/KNN_threads.h
index f57476c..a50a805 100644
--- a/contrib/ola/KNN_threads.h
+++ b/contrib/ola/KNN_threads.h
@@ -37,7 +37,7 @@ enum KNN_thread_status
 };
 
 // Query the number of available CPUs
-int KNN_getNumberOfCPUs ();
+int KNN_getNumberOfCPUs(void);
 
 // Distribute the work specified by 
 // (*function) and input over nthreads 
@@ -50,7 +50,7 @@ void * KNN_threadDistribution
 );
 
 // Test threading
-void KNN_threadTest ();
+void KNN_threadTest(void);
 
 // Test threading aux
 void * KNN_threadTestAux
diff --git a/contrib/ola/Pattern_to_Categories_cluster.cpp b/contrib/ola/Pattern_to_Categories_cluster.cpp
index ccb338d..75e904e 100644
--- a/contrib/ola/Pattern_to_Categories_cluster.cpp
+++ b/contrib/ola/Pattern_to_Categories_cluster.cpp
@@ -1,6 +1,6 @@
 /* Pattern_to_Categories_cluster.cpp
  *
- * Copyright (C) 2007-2008 Ola So"der, 2010-2011,2016 Paul Boersma
+ * Copyright (C) 2007-2008 Ola So"der, 2010-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 // Pattern_to_Categories_cluster                                                                              //
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-autoCategories Pattern_to_Categories_cluster
+Categories Pattern_to_Categories_cluster
 (
     ///////////////////////////////
     // Parameters                //
@@ -52,21 +52,21 @@ autoCategories Pattern_to_Categories_cluster
 )
 
 {
-		autoCategories categories = Categories_createWithSequentialNumbers (k);
+		autoCategories categories = Categories_sequentialNumbers (k);
 		if (k == p->ny)
-			return categories;
+			return categories.transfer();
 
 		autoKNN knn = KNN_create();
-		if (p -> ny % k)
-			if (s > (double) (p -> ny / k) / (double) (p -> ny / k + 1))   // FIXME check whether integer division is correct
-				s = (double) (p -> ny / k) / (double) (p -> ny / k + 1);
+		if(p->ny % k) 
+			if (s > (double) (p->ny / k) / (double) (p->ny / k + 1)) 
+				s = (double) (p->ny / k) / (double) (p->ny / k + 1);
 
 		double progress = m;
 		autoNUMvector <double> sizes (0L, k);
 		autoNUMvector <long> seeds (0L, k);
 
-		autoPattern centroids = Pattern_create (k, p -> nx);
-		autoNUMvector <double> beta (0L, centroids -> nx);
+		autoPattern centroids = (Pattern) Pattern_create (k, p->nx);
+		autoNUMvector <double> beta (0L, centroids->nx);
 
 		do
 		{
@@ -105,47 +105,47 @@ autoCategories Pattern_to_Categories_cluster
 			do
 			{
 				delta = 0;
-				KNN_learn (knn.get(), centroids.get(), categories.get(), kOla_REPLACE, kOla_SEQUENTIAL);
-				autoCategories interim = KNN_classifyToCategories (knn.get(), p, fws, 1, kOla_FLAT_VOTING);
+				KNN_learn (knn.peek(), centroids.peek(), categories.peek(), kOla_REPLACE, kOla_SEQUENTIAL);
+				autoCategories interim = KNN_classifyToCategories (knn.peek(), p, fws, 1, kOla_FLAT_VOTING);
 
-				for (long x = 1; x <= k; x ++)
+				for (long x = 1; x <= k; x++)
 					sizes [x] = 0;
 
-				for (long yp = 1; yp <= categories->size; yp ++)
+				for (long yp = 1; yp <= categories->size; yp++)
 				{
 					double alfa = 1;
-					Melder_assert (yp <= centroids -> ny);
+					Melder_assert (yp <= centroids->ny);
 
-					for (long x = 1; x <= centroids -> nx; x ++)
+					for (long x = 1; x <= centroids->nx; x++)
 					{
-						beta [x] = centroids -> z [yp] [x];
+						beta[x] = centroids->z[yp][x];
 					}
 
-					for (long ys = 1; ys <= interim->size; ys ++)
+					for (long ys = 1; ys <= interim->size; ys++)
 					{
-						if (FeatureWeights_areFriends (categories->at [yp], interim->at [ys]))
+						if (FeatureWeights_areFriends ((SimpleString) categories->item[yp], (SimpleString) interim->item[ys]))
 						{
-							for (long x = 1; x <= p -> nx; x ++)
+							for (long x = 1; x <= p->nx; x++)
 							{
-								Melder_assert (ys <= p -> ny);
+								Melder_assert (ys <= p->ny);
 								if (alfa == 1)
 								{
-									centroids -> z [yp] [x] = p -> z [ys] [x];
+									centroids->z[yp][x] = p->z[ys][x];
 								}
 								else
 								{
-									centroids -> z [yp] [x] += (p -> z [ys] [x] - centroids -> z [yp] [x]) / alfa;
+									centroids->z[yp][x] += (p->z[ys][x] - centroids->z[yp][x]) / alfa;
 								}
 							}
 							Melder_assert (yp <= k);
 							sizes [yp] ++;
-							alfa ++;
+							alfa++;
 						}
 					}
 
-					for (long x = 1; x <= centroids -> nx; x ++)
+					for (long x = 1; x <= centroids->nx; x++)
 					{
-						delta += fabs (beta [x] - centroids -> z [yp] [x]);
+						delta += fabs (beta[x] - centroids->z[yp][x]);
 					}
 				}
 			}
@@ -161,13 +161,13 @@ autoCategories Pattern_to_Categories_cluster
 			}
 
 			sizes [0] = smin / smax;
-			-- m;
+			--m;
 		}
 		while (sizes[0] < s && m > 0);
 
-		autoCategories output = KNN_classifyToCategories (knn.get(), p, fws, 1, kOla_FLAT_VOTING);
+		autoCategories output = KNN_classifyToCategories (knn.peek(), p, fws, 1, kOla_FLAT_VOTING);
 
-		return output;
+		return output.transfer();
 }
 
 /* End of file Pattern_to_Categories_cluster.cpp */
diff --git a/contrib/ola/Pattern_to_Categories_cluster.h b/contrib/ola/Pattern_to_Categories_cluster.h
index f556286..69334e5 100644
--- a/contrib/ola/Pattern_to_Categories_cluster.h
+++ b/contrib/ola/Pattern_to_Categories_cluster.h
@@ -46,7 +46,7 @@
 /////////////////////////////////////////////////////
 
 // Pattern_to_Categories_cluster                                                                            
-autoCategories Pattern_to_Categories_cluster
+Categories Pattern_to_Categories_cluster
 (
     Pattern p,              // source
     FeatureWeights fws,     // feature weights
diff --git a/contrib/ola/manual_KNN.cpp b/contrib/ola/manual_KNN.cpp
index 03972a4..965ec15 100644
--- a/contrib/ola/manual_KNN.cpp
+++ b/contrib/ola/manual_KNN.cpp
@@ -149,7 +149,7 @@ MAN_END
 MAN_BEGIN (U"kNN classifiers 2. Quick start", U"Ola Söder", 20080809)
 ENTRY (U"An example: Learning the Iris data set")
 NORMAL (U"In the @@Feedforward neural networks|the feedforward neural networks tutorial@ a description of how the @FFNet classifier in Praat can be applied to @@iris data set|the Iris data set@ can be found.")
-NORMAL (U"The same data can be used to test the %%k%NN feature of Praat. To do so create an example data set using the @@Create iris example...@ command found in the ##Feedforward neural networks# submenu. The form prompting for network topology settings can be ignored by selecting OK. Select the newly created @Pattern and @Categories objects and click ##To KNN Classifier...#. A form prompting for a name of the classifier to be created will be shown. The ordering in which instances are t [...]
+NORMAL (U"The same data can be used to test the %%k%NN feature of Praat. To do so create an example data set using the @@Create iris example...@ command found in the ##Neural nets# submenu. The form prompting for network topology settings can be ignored by selecting OK. Select the newly created @Pattern and @Categories objects and click ##To KNN Classifier...#. A form prompting for a name of the classifier to be created will be shown. The ordering in which instances are to be inserted in [...]
 NORMAL (U"To estimate how well the classifier can be expected to classify new samples of Irises select ##Query -# \\=> ##Get accuracy estimate...#. A form prompting for %%k%NN parameter settings and evaluation method will be shown. Experiment with the parameter settings until satisfactory results are achieved. If everything worked out the estimate will likely end up somewhere in the range of 94-98 percent.")
 NORMAL (U"An alternative to manually experimenting with model parameters is to let the computer do the job. This is done be choosing the @KNN object and thereafter selecting ##Query -# \\=> ##Get optimized parameters...#. The form shown prompts for a selection of parameters controlling the search. The default values will in most cases, including this, be appropriate.")
 NORMAL (U"Another way of improving classification accuracy is to transform the instance space in which the individual instances, in this case Irises, are stored as to maximize the distance between instances of different classes and minimize the distance between instances of the same class. This can be done by means of feature weighting. To do so select the @KNN object and choose ##To FeatureWeights...#. Adjust the %%k%NN settings according to the ones found by the model search algorithm  [...]
diff --git a/contrib/ola/praat_contrib_Ola_KNN.cpp b/contrib/ola/praat_contrib_Ola_KNN.cpp
index adf8c3c..dc89a5e 100644
--- a/contrib/ola/praat_contrib_Ola_KNN.cpp
+++ b/contrib/ola/praat_contrib_Ola_KNN.cpp
@@ -1,6 +1,6 @@
 /* praat_contrib_Ola_KNN.cpp
  *
- * Copyright (C) 2007-2009 Ola Söder, 2010-2011,2015,2016 Paul Boersma
+ * Copyright (C) 2007-2009 Ola Söder, 2010-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@ FORM (KNN_create, U"Create kNN Classifier", U"kNN classifiers 1. What is a kNN c
 	OK2
 DO
 	autoKNN knn = KNN_create ();
-	praat_new (knn.move(), GET_STRING (U"Name"));
+	praat_new (knn.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (KNN_Pattern_Categories_to_KNN, U"Create kNN classifier", U"kNN classifiers 1. What is a kNN classifier?") {
@@ -66,14 +66,14 @@ DO
 		case 2:
 			ordering = kOla_SEQUENTIAL;
 	}
-	int result = KNN_learn (knn.get(), me, thee, kOla_REPLACE, ordering);
+	int result = KNN_learn (knn.peek(), me, thee, kOla_REPLACE, ordering);
 	switch (result) {
 		case kOla_PATTERN_CATEGORIES_MISMATCH:
 			Melder_throw (U"The number of Categories should be equal to the number of rows in Pattern.");
 		case kOla_DIMENSIONALITY_MISMATCH:
 			Melder_throw (U"The dimensionality of Pattern should be equal to that of the instance base.");
 		default:
-			praat_new (knn.move(), GET_STRING(U"Name"));
+			praat_new (knn.transfer(), GET_STRING(U"Name"));
 	}
 END2 }
 
@@ -114,7 +114,7 @@ DO
 	}
 	autoFeatureWeights fws = FeatureWeights_create ((my input) -> nx);
 	int dist;
-	KNN_modelSearch (me, fws.get(), &k, &dist, mode, lrate, nseeds);
+	KNN_modelSearch (me, fws.peek(), &k, &dist, mode, lrate, nseeds);
 	switch (dist) {
 		case kOla_SQUARED_DISTANCE_WEIGHTED_VOTING:
 			Melder_information (U"Vote weighting: Inversed squared distance\n", U"k: ", k);
@@ -167,7 +167,7 @@ DO
 			break;
 	}
 	autoFeatureWeights fws = FeatureWeights_create (my input -> nx);
-	double result = KNN_evaluate (me, fws.get(), k, vt, mode);
+	double result = KNN_evaluate (me, fws.peek(), k, vt, mode);
 	if (lround (result) == kOla_FWEIGHTS_MISMATCH)
 		Melder_throw (U"The number of feature weights should be equal to the dimensionality of the Pattern.");
 	Melder_information (100 * result, U" percent of the instances correctly classified.");   // BUG: use Melder_percent
@@ -220,18 +220,20 @@ END2 }
 
 DIRECT2 (KNN_extractInputPatterns) {
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances > 0) {
+		praat_new (Data_copy (my input), U"Input Patterns");
+	} else {
 		Melder_throw (U"Instance base is empty.");
-	autoPattern input = Data_copy (my input.get());
-	praat_new (input.move(), U"Input Patterns");
+	}
 END2 }
 
 DIRECT2 (KNN_extractOutputCategories) {
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances > 0) {
+		praat_new (Data_copy (my output), U"Output Categories");
+	} else {
 		Melder_throw (U"Instance base is empty.");
-	autoCategories output = Data_copy (my output.get());
-	praat_new (output.move(), U"Output Categories");
+	}
 END2 }
 
 FORM (KNN_reset, U"Reset", U"KNN: Reset...") {
@@ -239,17 +241,18 @@ FORM (KNN_reset, U"Reset", U"KNN: Reset...") {
     OK2
 DO
 	iam_ONLY (KNN);
-	my input.reset();
-	my output.reset();
+	forget (my input);
+	forget (my output);
 	my nInstances = 0;
 	praat_dataChanged (me);   // BUG: this should be inserted much more often
 END2 }
 
 DIRECT2 (KNN_shuffle) {
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances > 0)  
+		KNN_shuffleInstances (me);
+	else
 		Melder_throw (U"Instance base is empty.");
-	KNN_shuffleInstances (me);
 END2 }
 
 FORM (KNN_prune, U"Pruning", U"KNN: Prune...") {
@@ -259,7 +262,7 @@ FORM (KNN_prune, U"Pruning", U"KNN: Prune...") {
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty.");
 	long oldn = my nInstances;   // save before it changes!
 	long k = GET_INTEGER (U"k neighbours");
@@ -328,7 +331,7 @@ FORM (KNN_evaluateWithTestSet, U"Evaluation", U"KNN & Pattern & Categories: Eval
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty");
 	thouart_ONLY (Pattern);
 	heis_ONLY (Categories);
@@ -352,7 +355,7 @@ DO
 	if (thy nx != (my input)->nx)
 		Melder_throw (U"The dimensionality of Pattern should be equal to that of the instance base.");
 	autoFeatureWeights fws = FeatureWeights_create (thy nx);
-	double result = KNN_evaluateWithTestSet (me, thee, him, fws.get(), k, vt);
+	double result = KNN_evaluateWithTestSet (me, thee, him, fws.peek(), k, vt);
 	Melder_information (100 * result, U" percent of the instances correctly classified.");
 END2 }
 
@@ -365,7 +368,7 @@ FORM (KNN_evaluateWithTestSetAndFeatureWeights, U"Evaluation", U"KNN & Pattern &
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty");
 	Pattern p = (Pattern) ONLY (classPattern);
 	Categories c = (Categories) ONLY (classCategories);
@@ -385,7 +388,7 @@ DO
 			vt = kOla_FLAT_VOTING;
 			break;
 	}
-	if (p -> ny != c->size)
+	if (p -> ny != c -> size)
 		Melder_throw (U"The number of Categories should be equal to the number of rows in Pattern.");
 	if (p -> nx != my input -> nx)
 		Melder_throw (U"The dimensionality of Pattern should be equal to that of the instance base.");
@@ -408,7 +411,7 @@ FORM (KNN_toCategories, U"Classification", U"KNN & Pattern: To Categories...") {
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty.");
 	thouart_ONLY (Pattern);
 	long k = GET_INTEGER (U"k neighbours");
@@ -429,8 +432,7 @@ DO
 	if (thy nx != my input -> nx)
 		Melder_throw (U"The dimensionality of Pattern should match that of the instance base.");
 	autoFeatureWeights fws = FeatureWeights_create (thy nx);
-	autoCategories result = KNN_classifyToCategories (me, thee, fws.get(), k, vt);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_classifyToCategories (me, thee, fws.peek(), k, vt), U"Output");
 END2 }
 
 FORM (KNN_toTableOfReal, U"Classification", U"KNN & Pattern: To TabelOfReal...") {
@@ -442,7 +444,7 @@ FORM (KNN_toTableOfReal, U"Classification", U"KNN & Pattern: To TabelOfReal...")
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty.");
 	thouart_ONLY (Pattern);
 	long k = GET_INTEGER (U"k neighbours");
@@ -463,8 +465,7 @@ DO
 	}
 	if (thy nx != my input -> nx)
 		Melder_throw (U"The dimensionality of Pattern should match that of the instance base.");
-	autoTableOfReal result = KNN_classifyToTableOfReal (me, thee, fws.get(), k, vt);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_classifyToTableOfReal (me, thee, fws.peek(), k, vt), U"Output");
 END2 }
 
 FORM (KNN_toCategoriesWithFeatureWeights, U"Classification", U"KNN & Pattern & FeatureWeights: To Categories...") {
@@ -476,7 +477,7 @@ FORM (KNN_toCategoriesWithFeatureWeights, U"Classification", U"KNN & Pattern & F
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty.");
 	thouart_ONLY (Pattern);
 	heis_ONLY (FeatureWeights);
@@ -499,8 +500,7 @@ DO
 		Melder_throw (U"The dimensionality of Pattern should be equal to that of the instance base.");
 	if (thy nx != his fweights -> numberOfColumns)
 		Melder_throw (U"The number of feature weights should be equal to the dimensionality of the Pattern.");
-	autoCategories result = KNN_classifyToCategories (me, thee, him, k, vt);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_classifyToCategories (me, thee, him, k, vt), U"Output");
 END2 }
 
 FORM (KNN_toTableOfRealWithFeatureWeights, U"Classification", U"KNN & Pattern & FeatureWeights: To TableOfReal...") {
@@ -512,7 +512,7 @@ FORM (KNN_toTableOfRealWithFeatureWeights, U"Classification", U"KNN & Pattern &
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty.");
 	thouart_ONLY (Pattern);
 	heis_ONLY (FeatureWeights);
@@ -533,8 +533,7 @@ DO
 			vt = kOla_FLAT_VOTING;
 			break;
 	}
-	autoTableOfReal result = KNN_classifyToTableOfReal (me, thee, him, k, vt);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_classifyToTableOfReal (me, thee, him, k, vt), U"Output");
 END2 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -559,8 +558,7 @@ DO
 		if (rc > 1 || rc <= 0)
 			Melder_throw (U"Please select a value of the cluster size ratio constraint c such that 0 < c <= 1.");
 		autoFeatureWeights fws = FeatureWeights_create (my nx);
-		autoCategories result = Pattern_to_Categories_cluster (me, fws.get(), k, rc, rs);
-		praat_new (result.move(), U"Output");
+		praat_new (Pattern_to_Categories_cluster (me, fws.peek(), k, rc, rs), U"Output");
 	} else {
 		Melder_throw (U"Pattern is empty.");
 	}
@@ -586,8 +584,7 @@ DO
 		double rc =  GET_REAL(U"Cluster size ratio constraint");
 		if (rc > 1 || rc <= 0)
 			Melder_throw (U"Please select a value of the cluster size ratio constraint c such that 0 < c <= 1.");
-		autoCategories result = Pattern_to_Categories_cluster (me, thee, k, rc, rs);
-		praat_new (result.move(), U"Output");
+		praat_new (Pattern_to_Categories_cluster (me, thee, k, rc, rs), U"Output");
 	} else {
 		Melder_throw (U"Pattern is empty.");
 	}
@@ -600,8 +597,7 @@ END2 }
 DIRECT2 (KNN_patternToDissimilarity) {
 	iam_ONLY (Pattern);
 	autoFeatureWeights fws = FeatureWeights_create (my nx);
-	autoDissimilarity result = KNN_patternToDissimilarity (me, fws.get());
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_patternToDissimilarity (me, fws.peek()), U"Output");
 END2 }
 
 DIRECT2 (KNN_patternToDissimilarityWithFeatureWeights) {
@@ -609,8 +605,7 @@ DIRECT2 (KNN_patternToDissimilarityWithFeatureWeights) {
 	thouart_ONLY (FeatureWeights);  
 	if (my nx != thy fweights -> numberOfColumns)
 		Melder_throw (U"The number of features and the number of feature weights should be equal.");
-	autoDissimilarity result = KNN_patternToDissimilarity (me, thee);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_patternToDissimilarity (me, thee), U"Output");
 END2 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -635,8 +630,7 @@ DO
 	double temp_start = GET_REAL (U"Initial temperature");
 	double temp_damp = GET_REAL (U"Damping factor");
 	double temp_stop = GET_REAL (U"Final temperature");
-	autoPermutation result = KNN_SA_ToPermutation (me, tries, iterations, step_size, bolzmann_c, temp_start, temp_damp, temp_stop);
-	praat_new (result.move(), U"Output");
+	praat_new (KNN_SA_ToPermutation (me, tries, iterations, step_size, bolzmann_c, temp_start, temp_damp, temp_stop), U"Output");
 END2 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -650,11 +644,10 @@ DO
 	iam_ONLY (Pattern);
 	thouart_ONLY (Categories);
 	if (my ny < 2)
-		Melder_throw (U"The Pattern object should contain at least two rows.");
+		Melder_throw (U"The Pattern object should contain at least 2 rows.");
 	if (my ny != thy size)
 		Melder_throw (U"The number of rows in the Pattern object should equal the number of categories in the Categories object.");
-	autoFeatureWeights result = FeatureWeights_compute (me, thee, GET_INTEGER (U"Number of neighbours"));
-	praat_new (result.move(), U"Output");
+	praat_new (FeatureWeights_compute (me, thee, GET_INTEGER (U"Number of neighbours")), U"Output");
 END2 }
 
 FORM (FeatureWeights_computeWrapperExt, U"Feature weights", U"KNN & Pattern & Categories: To FeatureWeights..") {
@@ -672,7 +665,7 @@ FORM (FeatureWeights_computeWrapperExt, U"Feature weights", U"KNN & Pattern & Ca
 	OK2
 DO
 	iam_ONLY (KNN);
-	if (my nInstances <= 0)
+	if (my nInstances < 1)
 		Melder_throw (U"Instance base is empty");
 	thouart_ONLY (Pattern);
 	heis_ONLY (Categories);
@@ -693,9 +686,8 @@ DO
 		Melder_throw (U"Please select a value of k such that 0 < k < ", my nInstances + 1, U".");
 	if (thy nx != my input -> nx)
 		Melder_throw (U"The dimensionality of Pattern should be equal to that of the instance base.");
-	autoFeatureWeights result = FeatureWeights_computeWrapperExt (me, thee, him, k, mode, GET_INTEGER (U"Number of seeds"),
-		GET_REAL (U"Learning rate"), GET_REAL (U"Stop at"), (int) GET_INTEGER (U"Optimization"));
-	praat_new (result.move(), U"Output");
+	praat_new (FeatureWeights_computeWrapperExt (me, thee, him, k, mode, GET_INTEGER (U"Number of seeds"),
+		GET_REAL (U"Learning rate"), GET_REAL (U"Stop at"), (int) GET_INTEGER (U"Optimization")), U"Output");
 END2 }
 
 FORM (FeatureWeights_computeWrapperInt, U"Feature weights", U"KNN: To FeatureWeights...") {
@@ -742,9 +734,8 @@ DO
 	long k = GET_INTEGER (U"k neighbours");
 	if (k < 1 || k > my nInstances)
 		Melder_throw (U"Please select a value of k such that 0 < k < ", my nInstances + 1, U".");
-	autoFeatureWeights result = FeatureWeights_computeWrapperInt (me, k, mode, GET_INTEGER (U"Number of seeds"), GET_REAL (U"Learning rate"),
-		GET_REAL (U"Stop at"), (int) GET_INTEGER (U"Optimization"), emode);
-	praat_new (result.move(), U"Output");
+	praat_new (FeatureWeights_computeWrapperInt (me, k, mode, GET_INTEGER (U"Number of seeds"), GET_REAL (U"Learning rate"),
+		GET_REAL (U"Stop at"), (int) GET_INTEGER (U"Optimization"), emode), U"Output");
 END2 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -757,16 +748,14 @@ FORM (Pattern_create, U"Create Pattern", 0) {
 	NATURAL (U"Number of patterns", U"1")
 	OK2
 DO
-	autoPattern result = Pattern_create (GET_INTEGER (U"Number of patterns"), GET_INTEGER (U"Dimension of a pattern"));
-	praat_new (result.move(), GET_STRING (U"Name"));
+	praat_new (Pattern_create (GET_INTEGER (U"Number of patterns"), GET_INTEGER (U"Dimension of a pattern")), GET_STRING (U"Name"));
 END2 }
 
 FORM (Categories_create, U"Create Categories", 0) {
 	WORD (U"Name", U"empty")
 	OK2
 DO
-	autoCategories result = Categories_create ();
-	praat_new (result.move(), GET_STRING (U"Name"));
+	praat_new (Categories_create (), GET_STRING (U"Name"));
 END2 }
 
 FORM (FeatureWeights_create, U"Create FeatureWeights", 0) {
@@ -774,8 +763,7 @@ FORM (FeatureWeights_create, U"Create FeatureWeights", 0) {
 	NATURAL (U"Number of weights", U"1")
 	OK2
 DO
-	autoFeatureWeights result = FeatureWeights_create (GET_INTEGER (U"Number of weights"));
-	praat_new (result.move(), GET_STRING (U"Name"));
+	praat_new (FeatureWeights_create (GET_INTEGER (U"Number of weights")), GET_STRING (U"Name"));
 END2 }
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -788,7 +776,7 @@ END2 }
 
 DIRECT (KNN_debug_KNN_SA_partition)
     Pattern p = ONLY (classPattern);
-    autoPattern output = Pattern_create (p->ny, p->nx);
+    Pattern output = Pattern_create (p->ny, p->nx);
     autoNUMvector <long> result (0, p->ny);
     KNN_SA_partition (p, 1, p->ny, result);
 
@@ -801,7 +789,7 @@ DIRECT (KNN_debug_KNN_SA_partition)
                 ++k;
             }
 
-    praat_new (output.move(), U"Output");
+    praat_new (output, U"Output");
 
 END
 
@@ -860,68 +848,69 @@ END2 }
 // Setting callbacks                                                                   //
 /////////////////////////////////////////////////////////////////////////////////////////
 
-void praat_contrib_Ola_KNN_init ();
-void praat_contrib_Ola_KNN_init ()
+void praat_contrib_Ola_KNN_init (void);
+void praat_contrib_Ola_KNN_init (void)
 {
-    Thing_recognizeClassesByName (classKNN, classFeatureWeights, nullptr);
+    Thing_recognizeClassesByName (classKNN, NULL);
+    Thing_recognizeClassesByName (classFeatureWeights, NULL);
 
 //////////
 // Menu //
 //////////
 
-    praat_addMenuCommand (U"Objects", U"New", U"kNN classifiers", nullptr, 0, nullptr);
+    praat_addMenuCommand (U"Objects", U"New", U"kNN classifiers", 0, 0, 0);
 
-    praat_addMenuCommand (U"Objects", U"New", U"kNN classifiers", nullptr, 1, DO_KNN_help);
-    praat_addMenuCommand (U"Objects", U"New", U"-- KNN --", nullptr, 1, nullptr);
+    praat_addMenuCommand (U"Objects", U"New", U"kNN classifiers", 0, 1, DO_KNN_help);
+    praat_addMenuCommand (U"Objects", U"New", U"-- KNN --", 0, 1, 0);
 
-    praat_addMenuCommand (U"Objects", U"New", U"Create kNN classifier...", nullptr, 1, DO_KNN_create);
+    praat_addMenuCommand (U"Objects", U"New", U"Create kNN classifier...", 0, 1, DO_KNN_create);
 
-    praat_addMenuCommand (U"Objects", U"New", U"Advanced", nullptr, 1, nullptr);
-    praat_addMenuCommand (U"Objects", U"New", U"Create Pattern...", nullptr, 2, DO_Pattern_create);
-    praat_addMenuCommand (U"Objects", U"New", U"Create Categories...", nullptr, 2, DO_Categories_create);
-    praat_addMenuCommand (U"Objects", U"New", U"Create FeatureWeights...", nullptr, 2, DO_FeatureWeights_create);
+    praat_addMenuCommand (U"Objects", U"New", U"Advanced", 0, 1, 0);
+    praat_addMenuCommand (U"Objects", U"New", U"Create Pattern...", 0, 2, DO_Pattern_create);
+    praat_addMenuCommand (U"Objects", U"New", U"Create Categories...", 0, 2, DO_Categories_create);
+    praat_addMenuCommand (U"Objects", U"New", U"Create FeatureWeights...", 0, 2, DO_FeatureWeights_create);
 
 /////////////
 // Actions //
 /////////////
 
-    praat_addAction1 (classKNN, 0, U"kNN help", nullptr, 0, DO_KNN_help);
-    praat_addAction1 (classKNN, 0, QUERY_BUTTON, nullptr, 0, nullptr);
-    praat_addAction1 (classKNN, 1, U"Get optimized parameters...", nullptr, 2, DO_KNN_getOptimumModel);
-    praat_addAction1 (classKNN, 1, U"Get accuracy estimate...", nullptr, 2, DO_KNN_evaluate);
-    praat_addAction1 (classKNN, 1, U"Get size of instancebase", nullptr, 2, DO_KNN_getNumberOfInstances);
+    praat_addAction1 (classKNN, 0, U"kNN help", 0, 0, DO_KNN_help);
+    praat_addAction1 (classKNN, 0, QUERY_BUTTON, 0, 0, 0);
+    praat_addAction1 (classKNN, 1, U"Get optimized parameters...", 0, 2, DO_KNN_getOptimumModel);
+    praat_addAction1 (classKNN, 1, U"Get accuracy estimate...", 0, 2, DO_KNN_evaluate);
+    praat_addAction1 (classKNN, 1, U"Get size of instancebase", 0, 2, DO_KNN_getNumberOfInstances);
 
-    praat_addAction1 (classKNN, 0, MODIFY_BUTTON, nullptr, 0, nullptr);
-    praat_addAction1 (classKNN, 1, U"Shuffle", nullptr, 1, DO_KNN_shuffle);
-    praat_addAction1 (classKNN, 1, U"Prune...", nullptr, 1, DO_KNN_prune);
-    praat_addAction1 (classKNN, 1, U"Reset...", nullptr, 1, DO_KNN_reset);
-    praat_addAction1 (classKNN, 0, EXTRACT_BUTTON, nullptr, 0, nullptr);
-    praat_addAction1 (classKNN, 0, U"Extract input Patterns", nullptr, 1, DO_KNN_extractInputPatterns);
-    praat_addAction1 (classKNN, 0, U"Extract output Categories", nullptr, 1, DO_KNN_extractOutputCategories);
+    praat_addAction1 (classKNN, 0, MODIFY_BUTTON, 0, 0, 0);
+    praat_addAction1 (classKNN, 1, U"Shuffle", 0, 1, DO_KNN_shuffle);
+    praat_addAction1 (classKNN, 1, U"Prune...", 0, 1, DO_KNN_prune);
+    praat_addAction1 (classKNN, 1, U"Reset...", 0, 1, DO_KNN_reset);
+    praat_addAction1 (classKNN, 0, EXTRACT_BUTTON, 0, 0, 0);
+    praat_addAction1 (classKNN, 0, U"Extract input Patterns", 0, 1, DO_KNN_extractInputPatterns);
+    praat_addAction1 (classKNN, 0, U"Extract output Categories", 0, 1, DO_KNN_extractOutputCategories);
 
-    praat_addAction1 (classKNN, 0, U"To FeatureWeights...", nullptr, 0, DO_FeatureWeights_computeWrapperInt);
+    praat_addAction1 (classKNN, 0, U"To FeatureWeights...", 0, 0, DO_FeatureWeights_computeWrapperInt);
 
- // praat_addAction1 (classKNN, 0, U"To Permutation...", nullptr, 0, DO_KNN_SA_computePermutation);
- // praat_addAction2 (classKNN, 1, classFeatureWeights, 1, U"To Permutation...", nullptr, 0, DO_KNN_evaluateWithFeatureWeights);
+ // praat_addAction1 (classKNN, 0, U"To Permutation...", 0, 0, DO_KNN_SA_computePermutation);
+ // praat_addAction2 (classKNN, 1, classFeatureWeights, 1, U"To Permutation...", 0, 0, DO_KNN_evaluateWithFeatureWeights);
 
-    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"Learn...", nullptr, 0, DO_KNN_learn);
-    praat_addAction2 (classKNN, 1, classFeatureWeights, 1, U"Evaluate...", nullptr, 0, DO_KNN_evaluateWithFeatureWeights);
-    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"Evaluate...", nullptr, 0, DO_KNN_evaluateWithTestSet);
-    praat_addAction4 (classKNN, 1, classPattern, 1, classCategories, 1, classFeatureWeights, 1, U"Evaluate...", nullptr, 0, DO_KNN_evaluateWithTestSetAndFeatureWeights);
-    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"To FeatureWeights...", nullptr, 0, DO_FeatureWeights_computeWrapperExt);
-    praat_addAction2 (classKNN, 1, classPattern, 1, U"To Categories...", nullptr, 0, DO_KNN_toCategories);
-    praat_addAction2 (classKNN, 1, classPattern, 1, U"To TableOfReal...", nullptr, 0, DO_KNN_toTableOfReal);
+    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"Learn...", 0, 0, DO_KNN_learn);
+    praat_addAction2 (classKNN, 1, classFeatureWeights, 1, U"Evaluate...", 0, 0, DO_KNN_evaluateWithFeatureWeights);
+    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"Evaluate...", 0, 0, DO_KNN_evaluateWithTestSet);
+    praat_addAction4 (classKNN, 1, classPattern, 1, classCategories, 1, classFeatureWeights, 1, U"Evaluate...", 0, 0, DO_KNN_evaluateWithTestSetAndFeatureWeights);
+    praat_addAction (classKNN, 1, classPattern, 1, classCategories, 1, U"To FeatureWeights...", 0, 0, DO_FeatureWeights_computeWrapperExt);
+    praat_addAction2 (classKNN, 1, classPattern, 1, U"To Categories...", 0, 0, DO_KNN_toCategories);
+    praat_addAction2 (classKNN, 1, classPattern, 1, U"To TableOfReal...", 0, 0, DO_KNN_toTableOfReal);
 
-    praat_addAction (classKNN, 1, classPattern, 1, classFeatureWeights, 1, U"To Categories...", nullptr, 0, DO_KNN_toCategoriesWithFeatureWeights);
-    praat_addAction (classKNN, 1, classPattern, 1, classFeatureWeights, 1, U"To TableOfReal...", nullptr, 0, DO_KNN_toTableOfRealWithFeatureWeights);
+    praat_addAction (classKNN, 1, classPattern, 1, classFeatureWeights, 1, U"To Categories...", 0, 0, DO_KNN_toCategoriesWithFeatureWeights);
+    praat_addAction (classKNN, 1, classPattern, 1, classFeatureWeights, 1, U"To TableOfReal...", 0, 0, DO_KNN_toTableOfRealWithFeatureWeights);
 
-    praat_addAction1 (classPattern, 1, U"To Dissimilarity", nullptr, 1, DO_KNN_patternToDissimilarity);
-    praat_addAction1 (classPattern, 1, U"To Categories...", nullptr, 1, DO_Pattern_to_Categories_cluster);
-    praat_addAction2 (classPattern, 1, classFeatureWeights, 1, U"To Dissimilarity", nullptr, 0, DO_KNN_patternToDissimilarityWithFeatureWeights);
-    praat_addAction2 (classPattern, 1, classFeatureWeights, 1, U"To Categories...", nullptr, 0, DO_Pattern_to_Categories_clusterWithFeatureWeights);
+    praat_addAction1 (classPattern, 1, U"To Dissimilarity", 0, 1, DO_KNN_patternToDissimilarity);
+    praat_addAction1 (classPattern, 1, U"To Categories...", 0, 1, DO_Pattern_to_Categories_cluster);
+    praat_addAction2 (classPattern, 1, classFeatureWeights, 1, U"To Dissimilarity", 0, 0, DO_KNN_patternToDissimilarityWithFeatureWeights);
+    praat_addAction2 (classPattern, 1, classFeatureWeights, 1, U"To Categories...", 0, 0, DO_Pattern_to_Categories_clusterWithFeatureWeights);
 
-    praat_addAction2 (classPattern, 1, classCategories, 1, U"To FeatureWeights...", nullptr, 0, DO_FeatureWeights_computeRELIEF);
-    praat_addAction2 (classPattern, 1, classCategories, 1, U"To KNN Classifier...", nullptr, 0, DO_KNN_Pattern_Categories_to_KNN);
+    praat_addAction2 (classPattern, 1, classCategories, 1, U"To FeatureWeights...", 0, 0, DO_FeatureWeights_computeRELIEF);
+    praat_addAction2 (classPattern, 1, classCategories, 1, U"To KNN Classifier...", 0, 0, DO_KNN_Pattern_Categories_to_KNN);
 
 ///////////
 // DEBUG //
@@ -941,16 +930,16 @@ void praat_contrib_Ola_KNN_init ()
 // Hints //
 ///////////
 
-    praat_addAction1 (classPattern, 0, U"& FeatureWeights: To Categories?", nullptr, 0, DO_hint_Pattern_and_FeatureWeights_to_Categories);
-    praat_addAction1 (classPattern, 0, U"& FeatureWeights: To Dissimilarity?", nullptr, 0, DO_hint_Pattern_and_FeatureWeights_to_Dissimilarity);
+    praat_addAction1 (classPattern, 0, U"& FeatureWeights: To Categories?", 0, 0, DO_hint_Pattern_and_FeatureWeights_to_Categories);
+    praat_addAction1 (classPattern, 0, U"& FeatureWeights: To Dissimilarity?", 0, 0, DO_hint_Pattern_and_FeatureWeights_to_Dissimilarity);
 
-    praat_addAction1 (classKNN, 0, U"& FeatureWeights: Evaluate?", nullptr, 0, DO_hint_KNN_and_FeatureWeights_evaluate);
-//  praat_addAction1 (classKNN, 0, U"& FeatureWeights: To Permutation?", nullptr, 0, DO_hint_Pattern_and_FeatureWeights_to_Dissimilarity);
-    praat_addAction1 (classKNN, 0, U"& Pattern: Classify?", nullptr, 0, DO_hint_KNN_and_Pattern_classify);
-    praat_addAction1 (classKNN, 0, U"& Pattern & FeatureWeights: Classify?", nullptr, 0, DO_hint_KNN_and_Pattern_and_FeatureWeights_classify);
-    praat_addAction1 (classKNN, 0, U"& Pattern & Categories: Learn?", nullptr, 0, DO_hint_KNN_and_Pattern_and_Categories_learn);
-    praat_addAction1 (classKNN, 0, U"& Pattern & Categories: Evaluate?", nullptr, 0, DO_hint_KNN_and_Pattern_and_Categories_evaluate);
-    praat_addAction1 (classKNN, 0, U"& Pattern & Categories & FeatureWeights: Evaluate?", nullptr, 0, DO_hint_KNN_and_Pattern_and_Categories_and_FeatureWeights_evaluate);
+    praat_addAction1 (classKNN, 0, U"& FeatureWeights: Evaluate?", 0, 0, DO_hint_KNN_and_FeatureWeights_evaluate);
+//  praat_addAction1 (classKNN, 0, U"& FeatureWeights: To Permutation?", 0, 0, DO_hint_Pattern_and_FeatureWeights_to_Dissimilarity);
+    praat_addAction1 (classKNN, 0, U"& Pattern: Classify?", 0, 0, DO_hint_KNN_and_Pattern_classify);
+    praat_addAction1 (classKNN, 0, U"& Pattern & FeatureWeights: Classify?", 0, 0, DO_hint_KNN_and_Pattern_and_FeatureWeights_classify);
+    praat_addAction1 (classKNN, 0, U"& Pattern & Categories: Learn?", 0, 0, DO_hint_KNN_and_Pattern_and_Categories_learn);
+    praat_addAction1 (classKNN, 0, U"& Pattern & Categories: Evaluate?", 0, 0, DO_hint_KNN_and_Pattern_and_Categories_evaluate);
+    praat_addAction1 (classKNN, 0, U"& Pattern & Categories & FeatureWeights: Evaluate?", 0, 0, DO_hint_KNN_and_Pattern_and_Categories_and_FeatureWeights_evaluate);
 
     INCLUDE_MANPAGES (manual_KNN_init)
 }
diff --git a/dwsys/Collection_extensions.cpp b/dwsys/Collection_extensions.cpp
index 8b4f7e2..7a872b5 100644
--- a/dwsys/Collection_extensions.cpp
+++ b/dwsys/Collection_extensions.cpp
@@ -1,6 +1,6 @@
-/* Collection_extensions.cpp
+/* Collection_extensions.c
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,46 +30,46 @@
 #include "Simple_extensions.h"
 #include "NUM2.h"
 
-autoCollection Collection_and_Permutation_permuteItems (Collection me, Permutation him) {
+Collection Collection_and_Permutation_permuteItems (Collection me, Permutation him) {
 	try {
 		if (my size != his numberOfElements) {
 			Melder_throw (me, U"The number of elements are not equal.");
 		}
 		autoNUMvector<long> pos (1, my size);
-		autoCollection thee = Data_copy (me);
+		autoCollection thee = static_cast<Collection> (Data_copy (me));
 
-		for (long i = 1; i <= my size; i ++) {
-			pos [i] = i;
+		for (long i = 1; i <= my size; i++) {
+			pos[i] = i;
 		}
 		/* Dual meaning of array pos: */
 		/* k <  i : position of item 'k' */
 		/* k >= i : the item at position 'k' */
 		for (long i = 1; i <= my size; i++) {
-			long ti = pos [i], which = Permutation_getValueAtIndex (him, i);
-			long where = pos [which];   // where >= i
-			Daata tmp = static_cast<Daata> (thy at [i]);
+			long ti = pos[i], which = Permutation_getValueAtIndex (him, i);
+			long where = pos[which]; /* where >= i */
+			Data tmp =  static_cast<Data> (thy item[i]);
 			if (i == where) {
 				continue;
 			}
-			thy at [i] = thy at [where];
-			thy at [where] = tmp;
+			thy item[i] = thy item[ where ];
+			thy item[where] = tmp;
 			/* order is important !! */
-			pos [ti] = where;
-			pos [where] = ti;
-			pos [which] = ( which <= i ? i : ti );
+			pos[ti] = where;
+			pos[where] = ti;
+			pos[which] = which <= i ? i : ti;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not permuted.");
 	}
 }
 
-autoCollection Collection_permuteItems (Collection me) {
+Collection Collection_permuteItems (Collection me) {
 	try {
 		autoPermutation p = Permutation_create (my size);
-		Permutation_permuteRandomly_inline (p.get(), 0, 0);
-		autoCollection thee = Collection_and_Permutation_permuteItems (me, p.get());
-		return thee;
+		Permutation_permuteRandomly_inline (p.peek(), 0, 0);
+		autoCollection thee = Collection_and_Permutation_permuteItems (me, p.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": items not permuted.");
 	}
@@ -78,67 +78,98 @@ autoCollection Collection_permuteItems (Collection me) {
 /****************** class OrderedOfString ******************/
 
 void structOrderedOfString :: v_info () {
-	structDaata :: v_info ();
-	MelderInfo_writeLine (U"Number of strings: ", our size);
-	autoOrderedOfString uStrings = OrderedOfString_selectUniqueItems (this);
-	MelderInfo_writeLine (U"Number of unique categories: ", uStrings->size);   // FIXME: "categories"?, and why mention a Set property?
+	structData :: v_info ();
+	MelderInfo_writeLine (U"Number of strings: ", size);
+	autoOrderedOfString uStrings = OrderedOfString_selectUniqueItems (this, 1);
+	MelderInfo_writeLine (U"Number of unique categories: ", uStrings -> size);
 }
 
 Thing_implement (OrderedOfString, Ordered, 0);
 
-int OrderedOfString_append (OrderedOfString me, const char32 *append) {
+int OrderedOfString_init (OrderedOfString me, long initialCapacity) {
+	Ordered_init (me, classSimpleString, initialCapacity);
+	return 1;
+}
+
+OrderedOfString OrderedOfString_create () {
 	try {
-		if (! append) {
+		autoOrderedOfString me = Thing_new (OrderedOfString);
+		OrderedOfString_init (me.peek(), 10);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"OrderedOfString not created.");
+	}
+}
+
+int OrderedOfString_append (OrderedOfString me, char32 *append) {
+	try {
+		if (append == 0) {
 			return 1;    // BUG: lege string appenden??
 		}
 		autoSimpleString item = SimpleString_create (append);
-		my addItem_move (item.move());
+		Collection_addItem (me, item.transfer());
 		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": text not appended.");
 	}
 }
 
-autoOrderedOfString OrderedOfString_joinItems (OrderedOfString me, OrderedOfString thee) {
+OrderedOfString OrderedOfString_joinItems (OrderedOfString me, OrderedOfString thee) {
 	try {
+
+
 		if (my size != thy size) {
 			Melder_throw (U"sizes must be equal.");
 		}
 		autoOrderedOfString him = Data_copy (me);
 
-		for (long i = 1; i <= my size; i ++) {
-			SimpleString_append (his at [i], thy at [i]);
+		for (long i = 1; i <= my size; i++) {
+			SimpleString_append ( (SimpleString) his item[i], (SimpleString) thy item[i]);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Items not joinmed.");
 	}
 }
 
-autoOrderedOfString OrderedOfString_selectUniqueItems (OrderedOfString me) {
+
+OrderedOfString OrderedOfString_selectUniqueItems (OrderedOfString me, int sort) {
 	try {
-		autoStringSet thee = StringSet_create ();
-		for (long i = 1; i <= my size; i ++) {
-			if (! thy hasItem (my at [i])) {   // FIXME: first sort, then unicize
-				autoSimpleString item = Data_copy (my at [i]);
-				thy addItem_move (item.move());
+		if (! sort) {
+			autoOrderedOfString him = OrderedOfString_create ();
+			for (long i = 1; i <= my size; i++) {
+				SimpleString ss = (SimpleString) my item[i];
+				if (! OrderedOfString_indexOfItem_c (him.peek(), ss -> string)) {
+					autoSimpleString item = Data_copy (ss);
+					Collection_addItem (him.peek(), item.transfer());
+				}
+			}
+			Collection_shrinkToFit (him.peek());
+			return him.transfer();
+		}
+		autoSortedSetOfString thee = SortedSetOfString_create ();
+		/* Collection_to_SortedSet (I, int (*compare)(I, thou)) */
+		for (long i = 1; i <= my size; i++) {
+			if (! SortedSet_hasItem (thee.peek(), my item[i])) {
+				autoSimpleString item = Data_copy ( (SimpleString) my item[i]);
+				Collection_addItem (thee.peek(), item.transfer());
 			}
 		}
 		autoOrderedOfString him = OrderedOfString_create ();
-		for (long i = 1; i <= thy size; i ++) {
-			autoSimpleString item = Data_copy (thy at [i]);
-			his addItem_move (item.move());
+		for (long i = 1; i <= thy size; i++) {
+			autoSimpleString item = Data_copy ( (SimpleString) thy item[i]);
+			Collection_addItem (him.peek(), item.transfer());
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": unique items not selected.");
 	}
 }
 
 void OrderedOfString_frequency (OrderedOfString me, OrderedOfString thee, long *count) {
-	for (long i = 1; i <= my size; i ++) {
-		for (long j = 1; j <= thy size; j ++) {
-			if (Data_equal (my at [i], thy at [j])) {
+	for (long i = 1; i <= my size; i++) {
+		for (long j = 1; j <= thy size; j++) {
+			if (Data_equal ( (Data) my item[i], (Data) thy item[j])) {
 				count[j]++;
 				break;
 			}
@@ -152,8 +183,8 @@ long OrderedOfString_getNumberOfDifferences (OrderedOfString me, OrderedOfString
 	if (my size != thy size) {
 		return -1;
 	}
-	for (long i = 1; i <= my size; i ++) {
-		if (! Data_equal (my at [i], thy at [i])) {
+	for (long i = 1; i <= my size; i++) {
+		if (! Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[i])) {
 			numberOfDifferences++;
 		}
 	}
@@ -166,18 +197,17 @@ double OrderedOfString_getFractionDifferent (OrderedOfString me, OrderedOfString
 	if (numberOfDifferences < 0) {
 		return NUMundefined;
 	}
-	return my size == 0 ? 0.0 : (0.0 + numberOfDifferences) / my size;
+	return my size == 0 ? 0 : (0.0 + numberOfDifferences) / my size;
 }
 
 int OrderedOfString_difference (OrderedOfString me, OrderedOfString thee, long *ndif, double *fraction) {
-	*ndif = 0;
-	*fraction = 1.0;
+	*ndif = 0; *fraction = 1;
 	if (my size != thy size) {
-		Melder_flushError (U"OrderedOfString_difference: the numbers of items differ");
+		Melder_flushError (U"OrderedOfString_difference: the number of items differ");
 		return 0;
 	}
-	for (long i = 1; i <= my size; i ++) {
-		if (! Data_equal (my at [i], thy at [i])) {
+	for (long i = 1; i <= my size; i++) {
+		if (! Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[i])) {
 			(*ndif) ++;
 		}
 	}
@@ -190,8 +220,8 @@ long OrderedOfString_indexOfItem_c (OrderedOfString me, const char32 *str) {
 	long index = 0;
 	autoSimpleString s = SimpleString_create (str);
 
-	for (long i = 1; i <= my size; i ++) {
-		if (Data_equal (my at [i], s.get())) {
+	for (long i = 1; i <= my size; i++) {
+		if (Data_equal ( (Data) my item[i], s.peek())) {
 			index = i;
 			break;
 		}
@@ -200,32 +230,43 @@ long OrderedOfString_indexOfItem_c (OrderedOfString me, const char32 *str) {
 }
 
 const char32 *OrderedOfString_itemAtIndex_c (OrderedOfString me, long index) {
-	return index > 0 && index <= my size ? SimpleString_c (my at [index]) : nullptr;
+	return index > 0 && index <= my size ? SimpleString_c ( (SimpleString) my item[index]) : NULL;
 }
 
-void OrderedOfString_initWithSequentialNumbers (OrderedOfString me, long n) {
-	for (long i = 1; i <= n; i ++) {
-		my addItem_move (SimpleString_create (Melder_integer (i)));
+void OrderedOfString_sequentialNumbers (OrderedOfString me, long n) {
+	Collection_removeAllItems (me);
+	for (long i = 1; i <= n; i++) {
+		char32 s[40];
+		Melder_sprint (s,40, i);   // ppgb: 20 chars is niet genoeg voor een long
+		autoSimpleString str = SimpleString_create (s);
+		Collection_addItem (me, str.transfer());
 	}
 }
-
-void OrderedOfString_changeStrings (OrderedOfString me, char32 *search, char32 *replace, int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp) {
-	regexp *compiled_search = nullptr;
+void OrderedOfString_changeStrings (OrderedOfString me, char32 *search, char32 *replace,
+                                    int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp) {
+	regexp *compiled_search = NULL;
 	try {
-		if (! search) {
+		char32 *r;
+
+		if (search == NULL) {
 			Melder_throw (U"Missing search string.");
 		}
-		if (! replace) {
+		if (replace == NULL) {
 			Melder_throw (U"Missing replace string.");
 		}
 
 		if (use_regexp) {
 			compiled_search = CompileRE_throwable (search, 0);
 		}
-		for (long i = 1; i <= my size; i ++) {
-			SimpleString ss = my at [i];
+		for (long i = 1; i <= my size; i++) {
+			SimpleString ss = (SimpleString) my item[i];
 			long nmatches_sub;
-			char32 *r = use_regexp ? str_replace_regexp (ss -> string, compiled_search, replace, maximumNumberOfReplaces, &nmatches_sub) : str_replace_literal (ss -> string, search, replace, maximumNumberOfReplaces, &nmatches_sub);
+
+			if (use_regexp) {
+				r = str_replace_regexp (ss -> string, compiled_search,
+				                        replace, maximumNumberOfReplaces, &nmatches_sub);
+			} else r = str_replace_literal (ss -> string, search, replace,
+				                                maximumNumberOfReplaces, &nmatches_sub);
 
 			// Change without error:
 			Melder_free (ss -> string);
@@ -249,12 +290,12 @@ void OrderedOfString_changeStrings (OrderedOfString me, char32 *search, char32 *
 long OrderedOfString_isSubsetOf (OrderedOfString me, OrderedOfString thee, long *translation) { // ?? test and give number
 	long nStrings = 0;
 
-	for (long i = 1; i <= my size; i ++) {
+	for (long i = 1; i <= my size; i++) {
 		if (translation) {
-			translation [i] = 0;
+			translation[i] = 0;
 		}
-		for (long j = 1; j <= thy size; j ++)
-			if (Data_equal (my at [i], thy at [j])) {
+		for (long j = 1; j <= thy size; j++)
+			if (Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[j])) {
 				if (translation) {
 					translation[i] = j;
 				}
@@ -266,7 +307,7 @@ long OrderedOfString_isSubsetOf (OrderedOfString me, OrderedOfString thee, long
 
 void OrderedOfString_drawItem (OrderedOfString me, Graphics g, long index, double xWC, double yWC) {
 	if (index > 0 && index <= my size) {
-		SimpleString_draw (my at [index], g, xWC, yWC);
+		SimpleString_draw ( (SimpleString) my item[index], g, xWC, yWC);
 	}
 }
 
@@ -275,16 +316,16 @@ long OrderedOfString_getSize (OrderedOfString me) {
 }
 
 void OrderedOfString_removeOccurrences (OrderedOfString me, const char32 *search, int use_regexp) {
-	if (! search) {
+	if (search == NULL) {
 		return;
 	}
-	for (long i = my size; i >= 1; i --) {
-		SimpleString ss = my at [i];
+	for (long i = my size; i >= 1; i--) {
+		SimpleString ss = (SimpleString) my item[i];
 		if ( (use_regexp && strstr_regexp (ss -> string, search)) ||
 		        (!use_regexp && str32str (ss -> string, search))) {
-			my removeItem (i);
+			Collection_removeItem (me, i);
 		}
 	}
 }
 
-/* End of file Collection_extensions.cpp */
+/* End of file Collection_extensions.c */
diff --git a/dwsys/Collection_extensions.h b/dwsys/Collection_extensions.h
index 598153d..341f8bb 100644
--- a/dwsys/Collection_extensions.h
+++ b/dwsys/Collection_extensions.h
@@ -2,7 +2,7 @@
 #define _Collection_extensions_h_
 /* Collection_extensions.h
  *
- * Copyright (C) 1994-2002,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1994-2002 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,28 +19,34 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020812 GPL header
+ djmw 20110414 Latest modification.
+*/
+
 #include "Collection.h"
 #include "Graphics.h"
 #include "Permutation.h"
 
-autoCollection Collection_and_Permutation_permuteItems (Collection me, Permutation him);
-
-autoCollection Collection_permuteItems (Collection me);
+Collection Collection_and_Permutation_permuteItems (Collection me, Permutation him);
+Collection Collection_permuteItems (Collection me);
 /* permute the order of my items */
 
 /****************** class OrderedOfString ******************/
 
-Collection_define (OrderedOfString, OrderedOf, SimpleString) {
+Thing_define (OrderedOfString, Ordered) {
 	void v_info ()
 		override;
 };
 
-int OrderedOfString_append (OrderedOfString me, const char32 *append);
+OrderedOfString OrderedOfString_create ();
+int OrderedOfString_init (OrderedOfString me, long initialCapacity);
 
-autoOrderedOfString OrderedOfString_joinItems (OrderedOfString me, OrderedOfString thee);
+int OrderedOfString_append (OrderedOfString me, char32 *append);
+OrderedOfString OrderedOfString_joinItems (OrderedOfString me, OrderedOfString thee);
 /* Join each item */
 
-autoOrderedOfString OrderedOfString_selectUniqueItems (OrderedOfString me);
+OrderedOfString OrderedOfString_selectUniqueItems (OrderedOfString me, int sort);
 /* Postcondition: thy size <= my size */
 
 void OrderedOfString_frequency (OrderedOfString me, OrderedOfString thee, long *count);
@@ -59,7 +65,7 @@ long OrderedOfString_indexOfItem_c (OrderedOfString me, const char32 *str);
 
 void OrderedOfString_drawItem (OrderedOfString me, Graphics g, long index, double xWC, double yWC);
 
-void OrderedOfString_initWithSequentialNumbers (OrderedOfString me, long n);
+void OrderedOfString_sequentialNumbers (OrderedOfString me, long n);
 
 void OrderedOfString_removeOccurrences (OrderedOfString me, const char32 *search, int user_regexp);
 
diff --git a/dwsys/Command.cpp b/dwsys/Command.cpp
index 3dbd5a5..5f5a575 100644
--- a/dwsys/Command.cpp
+++ b/dwsys/Command.cpp
@@ -1,6 +1,6 @@
 /* Command.cpp
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,71 +17,101 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include "Command.h"
+/*
+ djmw 19950710
+ djmw 20020812 GPL header
+ djmw 20071007 wchar
+ djmw 20110304 Thing_new
+*/
 
-#pragma mark - class Command
+#include "Command.h"
 
 Thing_implement (Command, Thing, 0);
 
-void Command_init (Command me, const char32 *name, Thing boss, Command_Callback execute, Command_Callback undo) {
+void Command_init (I, const char32 *name, Any data, int (*execute) (Any), int (*undo) (Any)) {
+	iam (Command);
 	Melder_assert (execute && undo);
 	Thing_setName (me, name);
-	my boss = boss;
+	my data = data;
 	my execute = execute;
 	my undo = undo;
 }
 
-int Command_do (Command me) {
+int Command_do (I) {
+	iam (Command);
 	return my execute (me);
 }
 
-int Command_undo (Command me) {
+int Command_undo (I) {
+	iam (Command);
 	return my undo (me);
 }
 
-#pragma mark - class CommandHistory
-
 Thing_implement (CommandHistory, Ordered, 0);
 
-void CommandHistory_forth (CommandHistory me) {
-	my current ++;
+CommandHistory CommandHistory_create (long maximumCapacity) {
+	try {
+		autoCommandHistory me = Thing_new (CommandHistory);
+		Collection_init (me.peek(), classCommand, maximumCapacity);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Command not created.");
+	}
+}
+
+void CommandHistory_forth (I) {
+	iam (CommandHistory);
+	my current++;
 }
 
-void CommandHistory_back (CommandHistory me) {
-	my current --;
+void CommandHistory_back (I) {
+	iam (CommandHistory);
+	my current--;
 }
 
-Command CommandHistory_getItem (CommandHistory me) {
+Any CommandHistory_getItem (I) {
+	iam (CommandHistory);
 	Melder_assert (my current > 0 && my current <= my size);
-	return my at [my current];
+	return my item[my current];
 }
 
-void CommandHistory_insertItem_move (CommandHistory me, autoCommand command) {
-	for (long i = my size; i >= my current + 1; i --) {
-		my removeItem (i);
+void CommandHistory_insertItem (I, Any data) {
+	iam (CommandHistory);
+
+	Melder_assert (data && (Thing_isa ( (Thing) data, my itemClass) || my itemClass == NULL));
+	if (my current < my size) {
+		for (long i = my current + 1; i <= my size; i++) {
+			forget ( ( (Command *) my item) [i]);
+		}
+		my size = my current;
 	}
-	my addItem_move (command.move());
-	while (my size > 20) {
-		my removeItem (1);
+	if (my size >= my _capacity) {
+		Collection_removeItem (me, 1);
 	}
+	my item[++my size] = data;
 	my current = my size;
 }
 
-int CommandHistory_empty (CommandHistory me) {
+int CommandHistory_empty (I) {
+	iam (CommandHistory);
 	return my size == 0;
 }
 
-int CommandHistory_offleft (CommandHistory me) {
+int CommandHistory_offleft (I) {
+	iam (CommandHistory);
 	return my current == 0;
 }
 
-int CommandHistory_offright (CommandHistory me) {
+int CommandHistory_offright (I) {
+	iam (CommandHistory);
 	return my size == 0 || my current == my size + 1;
 }
 
-char32 *CommandHistory_commandName (CommandHistory me, long offsetFromCurrent) {
+char32 *CommandHistory_commandName (I, long offsetFromCurrent) {
+	iam (CommandHistory);
 	long pos = my current + offsetFromCurrent;
-	return pos >= 1 && pos <= my size ? Thing_getName (my at [pos]) : nullptr;
+
+	return pos >= 1 && pos <= my size ? Thing_getName ( (Thing) my item[pos]) : NULL;
 }
 
 /* End of file Command.cpp */
diff --git a/dwsys/Command.h b/dwsys/Command.h
index 1412628..a674d1a 100644
--- a/dwsys/Command.h
+++ b/dwsys/Command.h
@@ -2,7 +2,7 @@
 #define _Command_h_
 /* Command.h
  *
- * Copyright (C) 1994-2011,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,33 +19,33 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 19950711
+ djmw 20020812 GPL header
+ djmw 20110306 Latest modification
+*/
+
 #include "Thing.h"
 #include "Collection.h"
 
-
-#pragma mark - class Command
-
-Thing_declare (Command);
-
-typedef MelderCallback<int, structCommand> Command_Callback;
-
 Thing_define (Command, Thing) {
-	Thing boss;
-	Command_Callback execute;
-	Command_Callback undo;
+	// new data:
+	public:
+		Any data;
+		int (*execute) (I);
+		int (*undo) (I);
 };
 
-void Command_init (Command me, const char32 *name, Thing boss, Command_Callback execute, Command_Callback undo);
+void Command_init (I, const char32 *name, Any data, int (*execute)(Any), int (*undo)(Any));
+	
+int Command_do (I);
 
-int Command_do (Command me);
+int Command_undo (I);
 
-int Command_undo (Command me);
-
-
-#pragma mark - class CommandHistory
-
-Collection_define (CommandHistory, OrderedOf, Command) {
-	long current;
+Thing_define (CommandHistory, Ordered) {
+	// new data:
+	public:
+		long current;
 };
 
 /* Active data structure. 'current' is position of the cursor in the list */
@@ -53,33 +53,35 @@ Collection_define (CommandHistory, OrderedOf, Command) {
 /* Invariants: */
 /*	0 <= current <= size + 1; */
 
-void CommandHistory_forth (CommandHistory me);
+CommandHistory CommandHistory_create (long maximumCapacity);
+
+void CommandHistory_forth (I);
 /* Precondition: ! offright */
 /* my current++; */
 
-void CommandHistory_back (CommandHistory me);
+void CommandHistory_back (I);
 /* Precondition: ! offleft */
 /* my current--; */
 
-Command CommandHistory_getItem (CommandHistory me);
+Any CommandHistory_getItem (I);
 /* return (pointer to) my item[my current]; */
 
-void CommandHistory_insertItem_move (CommandHistory me, autoCommand command);
+void CommandHistory_insertItem (I, Any item);
 /* 1. forget about item[ current+1..size ] */
 /* 2. insert item after current. */
 /* 3. current = size */
 
-int CommandHistory_empty (CommandHistory me);
+int CommandHistory_empty (I);
 /*	return my size == 0; */
 
-int CommandHistory_offleft (CommandHistory me);
+int CommandHistory_offleft (I);
 /*	return my current == 0; */
 
-int CommandHistory_offright (CommandHistory me);
+int CommandHistory_offright (I);
 /*	return my size == 0 || my current == my size + 1; */
 
-char32 *CommandHistory_commandName (CommandHistory me, long offsetFromCurrent);
+char32 *CommandHistory_commandName (I, long offsetFromCurrent);
 /* offsetFromCurrent may be zero, positive or negative. */
-/* References outside the list will return nullptr. */
+/* References outside the list will return NULL. */
 
 #endif /* _Command_h_ */
diff --git a/dwsys/DLL.cpp b/dwsys/DLL.cpp
new file mode 100644
index 0000000..0099845
--- /dev/null
+++ b/dwsys/DLL.cpp
@@ -0,0 +1,226 @@
+/* DLL.cpp
+ *
+ * Copyright (C) 2011-2013 David Weenink
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "DLL.h"
+
+Thing_implement (DLLNode, Data, 0);
+
+void structDLLNode :: v_destroy () {
+	forget (data);
+	DLLNode_Parent :: v_destroy ();
+}
+
+void structDLLNode :: v_copy (thou) {
+	thouart (DLLNode);
+	thy data = Data_copy (data);
+}
+
+Thing_implement (DLL, Thing, 0);
+
+void structDLL :: v_destroy () {
+	DLLNode v = front;
+	while (v != 0) {
+		DLLNode cur = v;
+		v = v -> next;
+		forget (cur);
+	}
+	DLL_Parent :: v_destroy ();
+}
+
+int structDLL :: s_compare (Any node1, Any node2) {
+	(void) node1;
+	(void) node2;
+	return 0;
+}
+
+DLLNode DLLNode_create (Data data) {
+	DLLNode me = Thing_new (DLLNode);
+	my data = data;
+	return me;
+}
+
+void DLL_init (DLL) {
+}
+
+DLL DLL_create() {
+	try {
+		DLL me = Thing_new (DLL);
+		DLL_init (me);
+		return me;
+	} catch (MelderError) {
+		Melder_throw (U"DLL not created.");
+	}
+
+}
+
+void DLL_addFront (DLL me, DLLNode n) {
+	if (my front == 0) { // empty list
+		my front = n;
+		my back = n;
+		n -> next = 0;
+		n -> prev = 0;
+		my numberOfNodes++;
+	} else {
+		DLL_addBefore (me, my front, n);
+	}
+}
+
+void DLL_addBack (DLL me, DLLNode n) {
+	if (my back == 0) {
+		DLL_addFront (me, n);    // empty list
+	} else {
+		DLL_addAfter (me, my back, n);
+	}
+}
+
+void DLL_addBefore (DLL me, DLLNode pos, DLLNode n) {
+	n -> prev = pos -> prev;
+	n -> next = pos;
+	if (pos -> prev == 0) {
+		my front = n;
+	} else {
+		pos -> prev -> next = n;
+	}
+	pos -> prev = n;
+	my numberOfNodes++;
+}
+
+void DLL_addAfter (DLL me, DLLNode pos, DLLNode n) {
+	n -> prev = pos;
+	n -> next = pos -> next;
+	if (pos -> next == 0) {
+		my back = n;
+	} else {
+		pos -> next -> prev = n;
+	}
+	pos -> next = n;
+	my numberOfNodes++;
+}
+
+void DLL_remove (DLL me, DLLNode n) {
+	if (my numberOfNodes == 0) {
+		return;
+	}
+	if (n == my front) {
+		my front = my front -> next;
+		my front -> prev = 0;
+	} else if (n == my back) {
+		my back = my back -> prev;
+		my back -> next = 0;
+	} else {
+		n -> prev -> next = n -> next;
+		n -> next -> prev = n -> prev;
+	}
+	forget (n);
+	my numberOfNodes++;
+}
+
+// Preconditions:
+//	from and to must be part of the list
+//	from must occur before to
+void DLL_sortPart (DLL me, DLLNode from, DLLNode to) {
+	// Save data
+	if (from == to) {
+		return;    // nothing to do
+	}
+	DLLNode from_prev = from -> prev;
+	DLLNode to_next = to -> next;
+	DLLNode my_front = my front;
+	DLLNode my_back = my back;
+
+	from -> prev = to -> next = 0;
+	my front = from;
+	my back = to;
+	DLL_sort (me);
+	// restore complete list
+	my front -> prev = from_prev;
+	if (from_prev != 0) {
+		from_prev -> next = my front;
+	}
+	my back -> next = to_next;
+	if (to_next != 0) {
+		to_next -> prev = my back;
+	}
+	if (my_front != from) {
+		my front = my_front;
+	}
+	if (my_back != to) {
+		my back = my_back;
+	}
+}
+
+void DLL_sort (DLL me) {
+	Data_CompareFunction compare = my v_getCompareFunction ();
+	long increment = 1;
+	DLLNode front = my front, back;
+	for (;;) {
+		DLLNode n1 = front;
+		front = 0;
+		back = 0;
+
+		long numberOfMerges = 0;
+
+		while (n1 != 0) {
+			DLLNode n2 = n1, n;
+			long n1size = 0;
+			numberOfMerges++;
+
+			for (long i = 1; i <= increment; i++) {
+				n1size++;
+				n2 = n2 -> next;
+				if (n2 == 0) {
+					break;
+				}
+			}
+
+			long n2size = increment;
+
+			while (n1size > 0 || (n2size > 0 && n2 != 0)) { // merge n1 and n2
+				if (n1size == 0) {
+					n2size--; n = n2; n2 = n2 -> next;
+				} else if (n2size == 0 || n2 == 0) {
+					n1size--; n = n1; n1 = n1 -> next;
+				} else if (compare (n1, n2) <= 0) {
+					n1size--; n = n1; n1 = n1 -> next;
+				} else {
+					n2size--; n = n2; n2 = n2 -> next;
+				}
+
+				if (back != 0) {
+					back -> next = n;
+				} else {
+					front = n;
+				}
+				n -> prev = back;
+				back = n;
+			}
+			n1 = n2;
+		}
+		back -> next = 0;
+		if (numberOfMerges <= 1) {
+			break;
+		}
+		increment *= 2;
+	}
+	//
+	my front = front;
+	my back = back;
+}
+
+// end of file DLL.cpp
diff --git a/dwsys/DLL.h b/dwsys/DLL.h
new file mode 100644
index 0000000..4ec1c00
--- /dev/null
+++ b/dwsys/DLL.h
@@ -0,0 +1,64 @@
+#ifndef _DLL_h_
+#define _DLL_h_
+/* DLL.h
+ *
+ * Copyright (C) 2011 David Weenink
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include "Data.h"
+
+Thing_define (DLLNode, Data) {
+	// new data:
+	public:
+		DLLNode next, prev;
+		Data data;
+	// overridden methods:
+	protected:
+		virtual void v_destroy ();
+		virtual void v_copy (Any data_to);
+};
+
+Thing_define (DLL, Thing) {
+	// new data:
+	public:
+		long numberOfNodes;
+		DLLNode front, back;
+	// overridden methods:
+	protected:
+		virtual void v_destroy ();
+	// new methods:
+	public:
+		static int s_compare (Any data1, Any data2);
+		virtual Data_CompareFunction v_getCompareFunction () { return s_compare; }
+};
+
+DLLNode DLLNode_create (Data data); // DLLNode owns the data
+
+void DLL_init (DLL me);
+DLL DLL_create ();
+
+void DLL_addFront (DLL me, DLLNode n);
+void DLL_addBack (DLL me, DLLNode n);
+void DLL_addBefore (DLL me, DLLNode pos, DLLNode n);
+void DLL_addAfter (DLL me, DLLNode pos, DLLNode n);
+void DLL_remove (DLL me, DLLNode n);
+void DLL_sort (DLL me);
+void DLL_sortPart (DLL me, DLLNode from, DLLNode to);
+
+#endif // _DLL_h_
+
diff --git a/dwsys/DoublyLinkedList.cpp b/dwsys/DoublyLinkedList.cpp
deleted file mode 100644
index 986a108..0000000
--- a/dwsys/DoublyLinkedList.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/* DoublyLinkedList.cpp
- *
- * Copyright (C) 2011-2013, 2015-2016 David Weenink
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "DoublyLinkedList.h"
-
-Thing_implement (DoublyLinkedNode, Daata, 0);
-
-void structDoublyLinkedNode :: v_destroy () noexcept {
-	DoublyLinkedNode_Parent :: v_destroy ();
-}
-
-void structDoublyLinkedNode :: v_copy (Daata thee_Daata) {
-	DoublyLinkedNode thee = static_cast <DoublyLinkedNode> (thee_Daata);
-	thy data = Data_copy (our data.get());
-}
-
-Thing_implement (DoublyLinkedList, Thing, 0);
-
-void structDoublyLinkedList :: v_destroy () noexcept {
-	DoublyLinkedNode v = front;
-	while (v) {
-		DoublyLinkedNode cur = v;
-		v = v -> next;
-		forget (cur);
-	}
-	DoublyLinkedList_Parent :: v_destroy ();
-}
-
-int structDoublyLinkedList :: s_compareHook (Daata /* node1 */, Daata /* node2 */) noexcept {
-	return 0;
-}
-
-autoDoublyLinkedNode DoublyLinkedNode_create (autoDaata data) {
-	autoDoublyLinkedNode me = Thing_new (DoublyLinkedNode);
-	my data = data.move();
-	return me;
-}
-
-void DoublyLinkedList_init (DoublyLinkedList) {
-}
-
-autoDoublyLinkedList DoublyLinkedList_create() {
-	try {
-		autoDoublyLinkedList me = Thing_new (DoublyLinkedList);
-		DoublyLinkedList_init (me.get());
-		return me;
-	} catch (MelderError) {
-		Melder_throw (U"DoublyLinkedList not created.");
-	}
-
-}
-
-void DoublyLinkedList_addFront (DoublyLinkedList me, DoublyLinkedNode node) {
-	if (my front) {
-		DoublyLinkedList_addBefore (me, my front, node);
-	} else {   // empty list
-		my front = node;
-		my back = node;
-		node -> next = nullptr;
-		node -> prev = nullptr;
-		my numberOfNodes++;
-	}
-}
-
-void DoublyLinkedList_addBack (DoublyLinkedList me, DoublyLinkedNode node) {
-	if (my back) {
-		DoublyLinkedList_addAfter (me, my back, node);
-	} else {
-		DoublyLinkedList_addFront (me, node);    // empty list
-	}
-}
-
-void DoublyLinkedList_addBefore (DoublyLinkedList me, DoublyLinkedNode pos, DoublyLinkedNode node) {
-	node -> prev = pos -> prev;
-	node -> next = pos;
-	if (pos -> prev == nullptr) {
-		my front = node;
-	} else {
-		pos -> prev -> next = node;
-	}
-	pos -> prev = node;
-	my numberOfNodes++;
-}
-
-void DoublyLinkedList_addAfter (DoublyLinkedList me, DoublyLinkedNode pos, DoublyLinkedNode node) {
-	node -> prev = pos;
-	node -> next = pos -> next;
-	if (pos -> next == nullptr) {
-		my back = node;
-	} else {
-		pos -> next -> prev = node;
-	}
-	pos -> next = node;
-	my numberOfNodes++;
-}
-
-void DoublyLinkedList_remove (DoublyLinkedList me, DoublyLinkedNode node) {
-	if (my numberOfNodes == 0) {
-		return;
-	}
-	if (node == my front) {
-		my front = my front -> next;
-		my front -> prev = nullptr;
-	} else if (node == my back) {
-		my back = my back -> prev;
-		my back -> next = nullptr;
-	} else {
-		node -> prev -> next = node -> next;
-		node -> next -> prev = node -> prev;
-	}
-	forget (node);
-	my numberOfNodes++;
-}
-
-// Preconditions:
-//	from and to must be part of the list
-//	from must occur before to
-void DoublyLinkedList_sortPart (DoublyLinkedList me, DoublyLinkedNode from, DoublyLinkedNode to) {
-	// Save data
-	if (from == to) {
-		return;   // nothing to do
-	}
-	DoublyLinkedNode from_prev = from -> prev;
-	DoublyLinkedNode to_next = to -> next;
-	DoublyLinkedNode my_front = my front;
-	DoublyLinkedNode my_back = my back;
-
-	from -> prev = to -> next = nullptr;
-	my front = from;
-	my back = to;
-	DoublyLinkedList_sort (me);
-	// restore complete list
-	my front -> prev = from_prev;
-	if (from_prev) {
-		from_prev -> next = my front;
-	}
-	my back -> next = to_next;
-	if (to_next) {
-		to_next -> prev = my back;
-	}
-	if (my_front != from) {
-		my front = my_front;
-	}
-	if (my_back != to) {
-		my back = my_back;
-	}
-}
-
-void DoublyLinkedList_sort (DoublyLinkedList me) {
-	Data_CompareHook::FunctionType compare = my v_getCompareHook ().get();
-	long increment = 1;
-	DoublyLinkedNode front = my front, back;
-	for (;;) {
-		DoublyLinkedNode node1 = front;
-		front = nullptr;
-		back = nullptr;
-
-		long numberOfMerges = 0;
-
-		while (node1) {
-			DoublyLinkedNode node2 = node1, node;
-			long node1size = 0;
-			numberOfMerges++;
-
-			for (long i = 1; i <= increment; i++) {
-				node1size++;
-				node2 = node2 -> next;
-				if (! node2) {
-					break;
-				}
-			}
-
-			long node2size = increment;
-
-			while (node1size > 0 || (node2size > 0 && node2)) { // merge node1 and node2
-				if (node1size == 0) {
-					node2size--; node = node2; node2 = node2 -> next;
-				} else if (node2size == 0 || ! node2) {
-					node1size--; node = node1; node1 = node1 -> next;
-				} else if (compare (node1, node2) <= 0) {
-					node1size--; node = node1; node1 = node1 -> next;
-				} else {
-					node2size--; node = node2; node2 = node2 -> next;
-				}
-
-				if (back) {
-					back -> next = node;
-				} else {
-					front = node;
-				}
-				node -> prev = back;
-				back = node;
-			}
-			node1 = node2;
-		}
-		back -> next = nullptr;
-		if (numberOfMerges <= 1) {
-			break;
-		}
-		increment *= 2;
-	}
-	//
-	my front = front;
-	my back = back;
-}
-
-// end of file DoublyLinkedList.cpp
diff --git a/dwsys/DoublyLinkedList.h b/dwsys/DoublyLinkedList.h
deleted file mode 100644
index 4d60bf8..0000000
--- a/dwsys/DoublyLinkedList.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _DoublyLinkedList_h_
-#define _DoublyLinkedList_h_
-/* DoublyLinkedList.h
- *
- * Copyright (C) 2011, 2015 David Weenink, 2015 Paul Boersma
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "Data.h"
-
-Thing_define (DoublyLinkedNode, Daata) {
-	DoublyLinkedNode next, prev;
-	autoDaata data;
-
-	void v_destroy () noexcept
-		override;
-	void v_copy (Daata data_to)
-		override;
-};
-
-Thing_define (DoublyLinkedList, Thing) {
-	long numberOfNodes;
-	DoublyLinkedNode front, back;
-
-	void v_destroy () noexcept
-		override;
-
-	static int s_compareHook (Daata /* data1 */, Daata /* data2 */) noexcept;
-	virtual Data_CompareHook v_getCompareHook () { return s_compareHook; }
-};
-
-autoDoublyLinkedNode DoublyLinkedNode_create (autoDaata data);
-
-void DoublyLinkedList_init (DoublyLinkedList me);
-
-autoDoublyLinkedList DoublyLinkedList_create ();
-
-void DoublyLinkedList_addFront (DoublyLinkedList me, DoublyLinkedNode n);
-
-void DoublyLinkedList_addBack (DoublyLinkedList me, DoublyLinkedNode n);
-
-void DoublyLinkedList_addBefore (DoublyLinkedList me, DoublyLinkedNode pos, DoublyLinkedNode n);
-
-void DoublyLinkedList_addAfter (DoublyLinkedList me, DoublyLinkedNode pos, DoublyLinkedNode n);
-
-void DoublyLinkedList_remove (DoublyLinkedList me, DoublyLinkedNode n);
-
-void DoublyLinkedList_sort (DoublyLinkedList me);
-
-void DoublyLinkedList_sortPart (DoublyLinkedList me, DoublyLinkedNode from, DoublyLinkedNode to);
-
-#endif // _DoublyLinkedList_h_
-
diff --git a/dwsys/Eigen.cpp b/dwsys/Eigen.cpp
index 3bfac3b..98fc389 100644
--- a/dwsys/Eigen.cpp
+++ b/dwsys/Eigen.cpp
@@ -1,6 +1,6 @@
 /* Eigen.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -63,30 +63,31 @@
 #include "oo_DESCRIPTION.h"
 #include "Eigen_def.h"
 
-Thing_implement (Eigen, Daata, 0);
+Thing_implement (Eigen, Data, 0);
 
 #define MAX(m,n) ((m) > (n) ? (m) : (n))
 #define MIN(m,n) ((m) < (n) ? (m) : (n))
 #define SWAP(a,b) {temp=(a);(a)=(b);(b)=temp;}
 
-static void Graphics_ticks (Graphics g, double min, double max, bool hasNumber, bool hasTick, bool hasDottedLine, bool integers) {
-	double range = max - min, scale = 1.0, tick = min, dtick = 1.0;
+static void Graphics_ticks (Graphics g, double min, double max, int hasNumber,
+                            int hasTick, int hasDottedLine, int integers) {
+	double range = max - min, scale = 1, tick = min, dtick = 1;
 
-	if (range == 0.0) {
+	if (range == 0) {
 		return;
-	} else if (range > 1.0) {
-		while (range / scale > 10.0) {
-			scale *= 10.0;
+	} else if (range > 1) {
+		while (range / scale > 10) {
+			scale *= 10;
 		}
 		range /= scale;
 	} else {
-		while (range / scale < 10.0) {
-			scale /= 10.0;
+		while (range / scale < 10) {
+			scale /= 10;
 		}
 		range *= scale;
 	}
 
-	if (range < 3.0) {
+	if (range < 3) {
 		dtick = 0.5;
 	}
 	dtick *= scale;
@@ -95,13 +96,14 @@ static void Graphics_ticks (Graphics g, double min, double max, bool hasNumber,
 		tick += dtick;
 	}
 	while (tick <= max) {
-		double num = integers ? round (tick) : tick;
-		Graphics_markBottom (g, num, hasNumber, hasTick, hasDottedLine, nullptr);
+		double num = integers ? floor (tick + 0.5) : tick;
+		Graphics_markBottom (g, num, hasNumber, hasTick, hasDottedLine, NULL);
 		tick += dtick;
 	}
 }
 
-void Eigen_init (Eigen me, long numberOfEigenvalues, long dimension) {
+void Eigen_init (I, long numberOfEigenvalues, long dimension) {
+	iam (Eigen);
 	my numberOfEigenvalues = numberOfEigenvalues;
 	my dimension = dimension;
 	my eigenvalues = NUMvector<double> (1, numberOfEigenvalues);
@@ -115,7 +117,8 @@ void Eigen_init (Eigen me, long numberOfEigenvalues, long dimension) {
 	Eigenvectors: the columns of the matrix V
 	Eigenvalues: D_i^2
 */
-void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long numberOfColumns) {
+void Eigen_initFromSquareRoot (I, double **a, long numberOfRows, long numberOfColumns) {
+	iam (Eigen);
 	long numberOfZeroed, numberOfEigenvalues;
 	long nsv = MIN (numberOfRows, numberOfColumns);
 
@@ -131,7 +134,7 @@ void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long num
 		basis.)
 	*/
 
-	numberOfZeroed = SVD_zeroSmallSingularValues (svd.get(), 0.0);
+	numberOfZeroed = SVD_zeroSmallSingularValues (svd.peek(), 0);
 
 	numberOfEigenvalues = nsv - numberOfZeroed;
 
@@ -139,7 +142,7 @@ void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long num
 	long k = 0;
 	for (long i = 1; i <= nsv; i++) {
 		double t = svd -> d[i];
-		if (t > 0.0) {
+		if (t > 0) {
 			my eigenvalues[++k] = t * t;
 			for (long j = 1; j <= numberOfColumns; j++) {
 				my eigenvectors[k][j] = svd -> v[j][i];
@@ -149,8 +152,10 @@ void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long num
 	Eigen_sort (me);
 }
 
-void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long numberOfColumns, double **b, long numberOfRows_b) {
-	double *u = nullptr, *v = nullptr, maxsv2 = -10.0;
+void Eigen_initFromSquareRootPair (I, double **a, long numberOfRows,
+                                   long numberOfColumns, double **b, long numberOfRows_b) {
+	iam (Eigen);
+	double *u = NULL, *v = NULL, maxsv2 = -10;
 	char jobu = 'N', jobv = 'N', jobq = 'Q';
 	long k, ll, m = numberOfRows, n = numberOfColumns, p = numberOfRows_b;
 	long lda = m, ldb = p, ldu = lda, ldv = ldb, ldq = n;
@@ -176,9 +181,11 @@ void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long
 		Melder_throw (U"dggsvd fails.");
 	}
 
-	// Calculate the eigenvalues (alpha[i]/beta[i])^2 and store in alpha[i].
+	/*
+		Calculate the eigenvalues (alpha[i]/beta[i])^2 and store in alpha[i].
+	*/
 
-	maxsv2 = -1.0;
+	maxsv2 = -1;
 	for (long i = k + 1; i <= k + ll; i++) {
 		double t = alpha[i] / beta[i];
 		alpha[i] = t * t;
@@ -187,12 +194,13 @@ void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long
 		}
 	}
 
-	// Deselect the eigenvalues < eps * max_eigenvalue.
-
+	/*
+		Deselect the eigenvalues < eps * max_eigenvalue.
+	*/
 	n = 0;
 	for (long i = k + 1; i <= k + ll; i++) {
 		if (alpha[i] < NUMfpp -> eps * maxsv2) {
-			n++; alpha[i] = -1.0;
+			n++; alpha[i] = -1;
 		}
 	}
 
@@ -204,7 +212,7 @@ void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long
 
 	long ii = 0;
 	for (long i = k + 1; i <= k + ll; i++) {
-		if (alpha[i] == -1.0) {
+		if (alpha[i] == -1) {
 			continue;
 		}
 
@@ -219,20 +227,35 @@ void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long
 	NUMnormalizeRows (my eigenvectors, my numberOfEigenvalues, numberOfColumns, 1);
 }
 
-void Eigen_initFromSymmetricMatrix (Eigen me, double **a, long n) {
+void Eigen_initFromSymmetricMatrix_f (I, float **a, long n) {
+	iam (Eigen);
+
+	autoNUMmatrix<double> m (1, n, 1, n);
+	for (long i = 1; i <= n; i++) {
+		for (long j = 1; j <= n; j++) {
+			m[i][j] = a[i][j];
+		}
+	}
+	Eigen_initFromSymmetricMatrix (me, m.peek(), n);
+}
+
+void Eigen_initFromSymmetricMatrix (I, double **a, long n) {
+	iam (Eigen);
 	double wt[1], temp;
 	char jobz = 'V', uplo = 'U';
 	long lwork = -1, info;
 
 	my dimension = my numberOfEigenvalues = n;
 
-	if (! my eigenvectors) {
+	if (my eigenvectors == NULL) {
 		Eigen_init (me, n, n);
 	}
 
 	NUMmatrix_copyElements (a, my eigenvectors, 1, n, 1, n);
 
-	// Get size of work array
+	/*
+		Get size of work array
+	*/
 
 	(void) NUMlapack_dsyev (&jobz, &uplo, &n, &my eigenvectors[1][1], &n,
 	                        &my eigenvalues[1], wt, &lwork, &info);
@@ -243,12 +266,15 @@ void Eigen_initFromSymmetricMatrix (Eigen me, double **a, long n) {
 	lwork = (long) floor (wt[0]);
 	autoNUMvector<double> work (0L, lwork);
 
-	(void) NUMlapack_dsyev (&jobz, &uplo, &n, &my eigenvectors[1][1], &n, &my eigenvalues[1], work.peek(), &lwork, &info);
+	(void) NUMlapack_dsyev (&jobz, &uplo, &n, &my eigenvectors[1][1], &n,
+	                        &my eigenvalues[1], work.peek(), &lwork, &info);
 	if (info != 0) {
 		Melder_throw (U"dsyev fails");
 	}
 
-	// We want descending order instead of ascending.
+	/*
+		We want descending order instead of ascending.
+	*/
 
 	for (long i = 1; i <= n / 2; i++) {
 		long ilast = n - i + 1;
@@ -260,32 +286,37 @@ void Eigen_initFromSymmetricMatrix (Eigen me, double **a, long n) {
 	}
 }
 
-autoEigen Eigen_create (long numberOfEigenvalues, long dimension) {
+Eigen Eigen_create (long numberOfEigenvalues, long dimension) {
 	try {
 		autoEigen me = Thing_new (Eigen);
-		Eigen_init (me.get(), numberOfEigenvalues, dimension);
-		return me;
+		Eigen_init (me.peek(), numberOfEigenvalues, dimension);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Eigen not created.");
 	}
 }
 
-long Eigen_getNumberOfEigenvectors (Eigen me) {
+long Eigen_getNumberOfEigenvectors (I) {
+	iam (Eigen);
 	return my numberOfEigenvalues;
 }
 
-double Eigen_getEigenvectorElement (Eigen me, long ivec, long element) {
+double Eigen_getEigenvectorElement (I, long ivec, long element) {
+	iam (Eigen);
 	if (ivec > my numberOfEigenvalues || element < 1 || element > my dimension) {
 		return NUMundefined;
 	}
 	return my eigenvectors[ivec][element];
 }
 
-long Eigen_getDimensionOfComponents (Eigen me) {
+long Eigen_getDimensionOfComponents (I) {
+	iam (Eigen);
 	return my dimension;
 }
 
-double Eigen_getSumOfEigenvalues (Eigen me, long from, long to) {
+double Eigen_getSumOfEigenvalues (I, long from, long to) {
+	iam (Eigen);
+
 	if (from < 1) {
 		from = 1;
 	}
@@ -295,15 +326,16 @@ double Eigen_getSumOfEigenvalues (Eigen me, long from, long to) {
 	if (to > my numberOfEigenvalues || from > to) {
 		return NUMundefined;
 	}
-	double sum = 0.0;
+	double sum = 0;
 	for (long i = from; i <= to; i++) {
 		sum += my eigenvalues[i];
 	}
 	return sum;
 }
 
-double Eigen_getCumulativeContributionOfComponents (Eigen me, long from, long to) {
-	double partial = 0.0, sum = 0.0;
+double Eigen_getCumulativeContributionOfComponents (I, long from, long to) {
+	iam (Eigen);
+	double partial = 0, sum = 0;
 
 	if (to == 0) {
 		to = my numberOfEigenvalues;
@@ -316,14 +348,15 @@ double Eigen_getCumulativeContributionOfComponents (Eigen me, long from, long to
 			}
 		}
 	}
-	return sum > 0.0 ? partial / sum : 0.0;
+	return sum > 0 ? partial / sum : 0;
 
 }
 
-long Eigen_getDimensionOfFraction (Eigen me, double fraction) {
+long Eigen_getDimensionOfFraction (I, double fraction) {
+	iam (Eigen);
 	double sum = Eigen_getSumOfEigenvalues (me, 0, 0);
 
-	if (sum == 0.0) {
+	if (sum == 0) {
 		return 1;
 	}
 
@@ -335,7 +368,8 @@ long Eigen_getDimensionOfFraction (Eigen me, double fraction) {
 	return n;
 }
 
-void Eigen_sort (Eigen me) {
+void Eigen_sort (I) {
+	iam (Eigen);
 	double temp, *e = my eigenvalues, **v = my eigenvectors;
 
 	for (long i = 1; i < my numberOfEigenvalues; i++) {
@@ -347,8 +381,9 @@ void Eigen_sort (Eigen me) {
 			}
 		}
 		if (k != i) {
-
-			// Swap eigenvalues and eigenvectors
+			/*
+				Swap eigenvalues and eigenvectors
+			*/
 
 			SWAP (e[i], e[k])
 			for (long j = 1; j <= my dimension; j++) {
@@ -358,7 +393,8 @@ void Eigen_sort (Eigen me) {
 	}
 }
 
-void Eigen_invertEigenvector (Eigen me, long ivec) {
+void Eigen_invertEigenvector (I, long ivec) {
+	iam (Eigen);
 
 	if (ivec < 1 || ivec > my numberOfEigenvalues) {
 		return;
@@ -369,8 +405,11 @@ void Eigen_invertEigenvector (Eigen me, long ivec) {
 	}
 }
 
-void Eigen_drawEigenvalues (Eigen me, Graphics g, long first, long last, double ymin, double ymax, bool fractionOfTotal, bool cumulative, double size_mm, const char32 *mark, bool garnish) {
-	double xmin = first, xmax = last, scale = 1.0, sumOfEigenvalues = 0.0;
+void Eigen_drawEigenvalues (I, Graphics g, long first, long last, double ymin, double ymax,
+                            int fractionOfTotal, int cumulative, double size_mm, const char32 *mark, int garnish) {
+	iam (Eigen);
+	double xmin = first, xmax = last, scale = 1, sumOfEigenvalues = 0;
+	long i;
 
 	if (first < 1) {
 		first = 1;
@@ -384,40 +423,40 @@ void Eigen_drawEigenvalues (Eigen me, Graphics g, long first, long last, double
 	xmin = first - 0.5; xmax = last + 0.5;
 	if (fractionOfTotal || cumulative) {
 		sumOfEigenvalues = Eigen_getSumOfEigenvalues (me, 0, 0);
-		if (sumOfEigenvalues <= 0.0) {
-			sumOfEigenvalues = 1.0;
+		if (sumOfEigenvalues <= 0) {
+			sumOfEigenvalues = 1;
 		}
 		scale = sumOfEigenvalues;
 	}
 	if (ymax <= ymin) {
-		ymax = Eigen_getSumOfEigenvalues (me, ( cumulative ? 1 : first ), first) / scale;
-		ymin = Eigen_getSumOfEigenvalues (me, ( cumulative ? 1 : last ), last) / scale;
+		ymax = Eigen_getSumOfEigenvalues (me, (cumulative ? 1 : first), first) / scale;
+		ymin = Eigen_getSumOfEigenvalues (me, (cumulative ? 1 : last), last) / scale;
 		if (ymin > ymax) {
 			double tmp = ymin; ymin = ymax; ymax = tmp;
 		}
-		if (ymin == ymax) { // only one eigenvalue
-			ymin -= 0.1 * ymin; ymax = ymax += 0.1 * ymax;
-		}
 	}
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
-	for (long i = first; i <= last; i ++) {
-		double accu = Eigen_getSumOfEigenvalues (me, ( cumulative ? 1 : i ), i);
+	for (i = first; i <= last; i++) {
+		double accu = Eigen_getSumOfEigenvalues (me, (cumulative ? 1 : i), i);
 		Graphics_mark (g, i, accu / scale, size_mm, mark);
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textLeft (g, true, ( fractionOfTotal ? ( cumulative ? U"Cumulative fractional eigenvalue" : U"Fractional eigenvalue" ) :
-			                   ( cumulative ? U"Cumulative eigenvalue" : U"Eigenvalue" ) ));
-		Graphics_ticks (g, first, last, true, true, false, true);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Index");
+		Graphics_textLeft (g, 1, fractionOfTotal ? (cumulative ? U"Cumulative fractional eigenvalue" : U"Fractional eigenvalue") :
+			                   (cumulative ? U"Cumulative eigenvalue" : U"Eigenvalue"));
+		Graphics_ticks (g, first, last, 1, 1, 0, 1);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Index");
 	}
 }
 
-void Eigen_drawEigenvector (Eigen me, Graphics g, long ivec, long first, long last, double ymin, double ymax, bool weigh, double size_mm, const char32 *mark, bool connect, char32 **rowLabels, bool garnish) {
-	double xmin = first, xmax = last;
+void Eigen_drawEigenvector (I, Graphics g, long ivec, long first, long last,
+                            double ymin, double ymax, int weigh, double size_mm, const char32 *mark,
+                            int connect, char32 **rowLabels, int garnish) {
+	iam (Eigen);
+	double xmin = first, xmax = last, *vec, w;
 
 	if (ivec < 1 || ivec > my numberOfEigenvalues) {
 		return;
@@ -427,10 +466,11 @@ void Eigen_drawEigenvector (Eigen me, Graphics g, long ivec, long first, long la
 		first = 1; last = my dimension;
 		xmin = 0.5; xmax = last + 0.5;
 	}
-	double *vec = my eigenvectors[ivec];
-	double w = weigh ? sqrt (my eigenvalues[ivec]) : 1.0;
-
-	// If ymax < ymin the eigenvector will automatically be drawn inverted.
+	vec = my eigenvectors[ivec];
+	w = weigh ? sqrt (my eigenvalues[ivec]) : 1;
+	/*
+		If ymax < ymin the eigenvector will automatically be drawn inverted.
+	*/
 
 	if (ymax == ymin) {
 		NUMvector_extrema (vec, first, last, &ymin, &ymax);
@@ -442,36 +482,36 @@ void Eigen_drawEigenvector (Eigen me, Graphics g, long ivec, long first, long la
 	for (long i = first; i <= last; i++) {
 		Graphics_mark (g, i, w * vec[i], size_mm, mark);
 		if (connect && i > first) {
-			Graphics_line (g, i - 1.0, w * vec[i - 1], i, w * vec[i]);
+			Graphics_line (g, i - 1, w * vec[i - 1], i, w * vec[i]);
 		}
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
-		Graphics_markBottom (g, first, false, true, false, rowLabels ? rowLabels[first] : Melder_integer (first));
-		Graphics_markBottom (g, last, false, true, false, rowLabels ? rowLabels[last] : Melder_integer (last));
+		Graphics_markBottom (g, first, 0, 1, 0, rowLabels ? rowLabels[first] : Melder_integer (first));
+		Graphics_markBottom (g, last, 0, 1, 0, rowLabels ? rowLabels[last] : Melder_integer (last));
 		Graphics_drawInnerBox (g);
-		if (ymin * ymax < 0.0) {
-			Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+		if (ymin * ymax < 0) {
+			Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 		}
-		Graphics_marksLeft (g, 2, true, true, false);
-		if (! rowLabels) {
-			Graphics_textBottom (g, true, U"Element number");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		if (rowLabels == NULL) {
+			Graphics_textBottom (g, 1, U"Element number");
 		}
 	}
 }
 
-void Eigens_alignEigenvectors (OrderedOf<structEigen>* me) {
+void Eigens_alignEigenvectors (Collection me) {
 	if (my size < 2) {
 		return;
 	}
 
-	Eigen e1 = my at [1];
+	Eigen e1 = (Eigen) my item[1];
 	double **evec1 = e1 -> eigenvectors;
 	long nev1 = e1 -> numberOfEigenvalues;
 	long dimension = e1 -> dimension;
 
-	for (long i = 2; i <= my size; i ++) {
-		Eigen e2 = my at [i];
+	for (long i = 2; i <= my size; i++) {
+		Eigen e2 = (Eigen) my item[i];
 		if (e2 -> dimension != dimension) {
 			Melder_throw (U"The dimension of the eigenvectors must be equal (offending object is ",  i, U").");
 		}
@@ -482,25 +522,26 @@ void Eigens_alignEigenvectors (OrderedOf<structEigen>* me) {
 		If r < 0 then mirror the eigenvector.
 	*/
 
-	for (long i = 2; i <= my size; i ++) {
-		Eigen e2 = my at [i];
+	for (long i = 2; i <= my size; i++) {
+		Eigen e2 = (Eigen) my item[i];
 		double **evec2 = e2 -> eigenvectors;
 
-		for (long j = 1; j <= MIN (nev1, e2 -> numberOfEigenvalues); j ++) {
-			double ip = 0.0;
-			for (long k = 1; k <= dimension; k ++) {
-				ip += evec1 [j] [k] * evec2 [j] [k];
+		for (long j = 1; j <= MIN (nev1, e2 -> numberOfEigenvalues); j++) {
+			double ip = 0;
+			for (long k = 1; k <= dimension; k++) {
+				ip += evec1[j][k] * evec2[j][k];
 			}
-			if (ip < 0.0) {
-				for (long k = 1; k <= dimension; k ++) {
-					evec2 [j] [k] = - evec2 [j] [k];
+			if (ip < 0) {
+				for (long k = 1; k <= dimension; k++) {
+					evec2[j][k] = - evec2[j][k];
 				}
 			}
 		}
 	}
 }
 
-static void Eigens_getAnglesBetweenSubspaces (Eigen me, Eigen thee, long ivec_from, long ivec_to, double *angles_degrees) {
+static void Eigens_getAnglesBetweenSubspaces (I, thou, long ivec_from, long ivec_to, double *angles_degrees) {
+	iam (Eigen); thouart (Eigen);
 	long nvectors = ivec_to - ivec_from + 1;
 	for (long i = 1; i <= nvectors; i++) {
 		angles_degrees[i] = NUMundefined;
@@ -532,46 +573,18 @@ static void Eigens_getAnglesBetweenSubspaces (Eigen me, Eigen thee, long ivec_fr
 	}
 	autoSVD svd = SVD_create_d (c.peek(), nvectors, nvectors);
 	for (long i = 1; i <= nvectors; i++) {
-		angles_degrees[i] = acos (svd -> d[i]) * 180.0 / NUMpi;
+		angles_degrees[i] = acos (svd -> d[i]) * 180 / NUMpi;
 	}
 }
 
-double Eigens_getAngleBetweenEigenplanes_degrees (Eigen me, Eigen thee) {
+double Eigens_getAngleBetweenEigenplanes_degrees (I, thou) {
+	iam (Eigen); thouart (Eigen);
 	double angles_degrees[3];
 
 	Eigens_getAnglesBetweenSubspaces (me, thee, 1, 2, angles_degrees);
 	return angles_degrees[2];
 }
 
-/* Very low level */
-
-void Eigen_and_matrix_into_matrix_principalComponents (Eigen me, double **from, long numberOfRows, long from_colbegin, double **to, long numberOfDimensionsToKeep, long to_colbegin) {
-	/*
-	 * Preconditions:
-	 * 
-	 * 	from[numberOfRows, from_colbegin - 1 + my dimension] exists
-	 * 	to [numberOfRows, to_colbegin - 1 + numberOfDimensionsToKeep] exists
-	 * 
-	 * Project/rotate the vectors in matrix 'from' along the 'numberOfDimensionsToKeep' eigenvectors into the matrix 'to'.
-	 */
-	from_colbegin = from_colbegin <= 0 ? 1 : from_colbegin;
-	to_colbegin = to_colbegin <= 0 ? 1 : to_colbegin;
-	if (numberOfDimensionsToKeep > my numberOfEigenvalues) {
-		Melder_throw (U"The number of dimensions to keep must not be larger than the number of eigenvalues.");
-	}
-	for (long irow = 1; irow <= numberOfRows; irow ++) {
-		for (long icol = 1; icol <= numberOfDimensionsToKeep; icol ++) {
-			double r = 0.0;
-			for (long k = 1; k <= my dimension; k ++) {
-				// eigenvector[icol] is in row[icol] of my eigenvectors
-				r += my eigenvectors  [icol] [k] * from [irow] [from_colbegin + k - 1];
-			}
-			to [irow] [to_colbegin + icol - 1] = r;
-		}
-	}
-}
-
-
 #undef MAX
 #undef MIN
 #undef SWAP
diff --git a/dwsys/Eigen.h b/dwsys/Eigen.h
index ee706ab..56ad63f 100644
--- a/dwsys/Eigen.h
+++ b/dwsys/Eigen.h
@@ -2,7 +2,7 @@
 #define _Eigen_h_
 /* Eigen.h
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,15 +28,19 @@
 #include "Graphics.h"
 #include "Strings_.h"
 
+
 #include "Eigen_def.h"
+oo_CLASS_CREATE (Eigen, Data);
 
-autoEigen Eigen_create (long numberOfEigenvalues, long dimension);
+Eigen Eigen_create (long numberOfEigenvalues, long dimension);
 
-void Eigen_init (Eigen me, long numberOfEigenvalues, long dimension);
+void Eigen_init (I, long numberOfEigenvalues, long dimension);
 
-void Eigen_initFromSymmetricMatrix (Eigen me, double **a, long n);
+void Eigen_initFromSymmetricMatrix_f (I, float **a, long n);
+void Eigen_initFromSymmetricMatrix (I, double **a, long n);
 
-void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long numberOfColumns);
+void Eigen_initFromSquareRoot (I, double **a, long numberOfRows,
+	long numberOfColumns);
 /*
 	Calculate eigenstructure for symmetric matrix A'A (e.g. covariance matrix),
 	when only A is given.
@@ -44,7 +48,8 @@ void Eigen_initFromSquareRoot (Eigen me, double **a, long numberOfRows, long num
 	Method: SVD.
 */
 
-void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long numberOfColumns, double **b, long numberOfRows_b);
+void Eigen_initFromSquareRootPair (I, double **a, long numberOfRows,
+	long numberOfColumns, double **b, long numberOfRows_b);
 /*
 	Calculate eigenstructure for A'Ax - lambda B'Bx = 0
 	Preconditions: numberOfRows >= numberOfColumns &&
@@ -52,56 +57,46 @@ void Eigen_initFromSquareRootPair (Eigen me, double **a, long numberOfRows, long
 	Method: Generalized SVD.
 */
 
-long Eigen_getNumberOfEigenvectors (Eigen me);
+long Eigen_getNumberOfEigenvectors (I);
 
-long Eigen_getDimensionOfComponents (Eigen me);
+long Eigen_getDimensionOfComponents (I);
 
-double Eigen_getCumulativeContributionOfComponents (Eigen me, long from, long to);
+double Eigen_getCumulativeContributionOfComponents (I, long from, long to);
 
-long Eigen_getDimensionOfFraction (Eigen me, double fraction);
+long Eigen_getDimensionOfFraction (I, double fraction);
 
-double Eigen_getEigenvectorElement (Eigen me, long ivec, long element);
+double Eigen_getEigenvectorElement (I, long ivec, long element);
 
-double Eigen_getSumOfEigenvalues (Eigen me, long from, long to);
+double Eigen_getSumOfEigenvalues (I, long from, long to);
 
 
-void Eigen_sort (Eigen me);
+void Eigen_sort (I);
 /*
 	Sort eigenvalues and corresponding eigenvectors in decreasing order.
 */
 
-void Eigen_invertEigenvector (Eigen me, long ivec);
+void Eigen_invertEigenvector (I, long ivec);
 
-void Eigen_drawEigenvalues (Eigen me, Graphics g, long first, long last, double ymin, double ymax,
-	bool fractionOfTotal, bool cumulative, double size_mm, const char32 *mark, bool garnish);
+void Eigen_drawEigenvalues (I, Graphics g, long first, long last, double ymin, double ymax,
+	int fractionOfTotal, int cumulative, double size_mm, const char32 *mark, int garnish);
 
-void Eigen_drawEigenvector (Eigen me, Graphics g, long ivec, long first, long last, double minimum, double maximum, bool weigh,
-	double size_mm, const char32 *mark, bool connect, char32 **rowLabels, bool garnish);
+void Eigen_drawEigenvector (I, Graphics g, long ivec, long first, long last,
+	double minimum, double maximum, int weigh, double size_mm, const char32 *mark,
+	int connect, char32 **rowLabels, int garnish);
 /*
-	Draw eigenvector. When rowLabels != nullptr, draw row text labels on bottom axis.
+	Draw eigenvector. When rowLabels != NULL, draw row text labels on bottom axis.
 */
 
-/**
-	Adapt the sign of each eigenvector except the first
-	in such a way that it correlates positively with the first eigenvector.
+void Eigens_alignEigenvectors (Collection me);
+/*
+	Correlate all eigenvectors with the eigenvectors of the first Eigen.
+	If r < 0 then mirror the eigenvectors of
 */
-void Eigens_alignEigenvectors (OrderedOf<structEigen>* me);
 
-double Eigens_getAngleBetweenEigenplanes_degrees (Eigen me, Eigen thee);
+double Eigens_getAngleBetweenEigenplanes_degrees (I, thou);
 /*
 	Get angle between the eigenplanes, spanned by the first two eigenvectors, .
 */
 
-void Eigen_and_matrix_into_matrix_principalComponents (Eigen me, double **from, long numberOfRows, long from_colbegin, double **to, long numberOfDimensionsToKeep, long to_colbegin);
-/*
- * Preconditions:
- * 
- * 	from[numberOfRows, from_colbegin - 1 + my dimension] exists
- * 	to [numberOfRows, to_colbegin - 1 + numberOfDimensionsToKeep] exists
- * 
- * Project the vectors in matrix 'from' along the 'numberOfDimensionsToKeep' eigenvectors into the matrix 'to'.
- */
-
-
 #endif /* _Eigen_h_ */
 
diff --git a/dwsys/Eigen_def.h b/dwsys/Eigen_def.h
index 0bc638d..a3c3fdb 100644
--- a/dwsys/Eigen_def.h
+++ b/dwsys/Eigen_def.h
@@ -22,7 +22,7 @@
 */
 
 #define ooSTRUCT Eigen
-oo_DEFINE_CLASS (Eigen, Daata)
+oo_DEFINE_CLASS (Eigen, Data)
 
 	oo_LONG (numberOfEigenvalues)
 	oo_LONG (dimension)
diff --git a/dwsys/FileInMemory.cpp b/dwsys/FileInMemory.cpp
index d3723dd..556c4f6 100644
--- a/dwsys/FileInMemory.cpp
+++ b/dwsys/FileInMemory.cpp
@@ -1,6 +1,6 @@
 /* FileInMemory.cpp
  *
- * Copyright (C) 2012-2013, 2015-2016 David Weenink
+ * Copyright (C) 2012-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,35 +20,33 @@
 #include "FileInMemory.h"
 #include "Strings_.h"
 
-Thing_implement (FileInMemory, Daata, 0);
+Thing_implement (FileInMemory, Data, 0);
 
-void structFileInMemory :: v_copy (Daata thee_Daata) {
-	FileInMemory thee = static_cast <FileInMemory> (thee_Daata);
-	our FileInMemory_Parent :: v_copy (thee);
-	thy d_path = Melder_dup (our d_path);
-	thy d_id = Melder_dup (our d_id);
-	thy d_numberOfBytes = our d_numberOfBytes;
-	thy ownData = our ownData;
-	thy d_data = NUMvector<char> (0, our d_numberOfBytes);
-	memcpy (thy d_data, our d_data, our d_numberOfBytes + 1);
+void structFileInMemory :: v_copy (thou) {
+	thouart (FileInMemory);
+	FileInMemory_Parent :: v_copy (thee);
+	thy d_path = Melder_dup (d_path);
+	thy d_id = Melder_dup (d_id);
+	thy d_numberOfBytes = d_numberOfBytes;
+	thy d_data = NUMvector<char> (0, d_numberOfBytes);
+	memcpy (thy d_data, d_data, d_numberOfBytes+1);
 }
 
-void structFileInMemory :: v_destroy () noexcept {
-	Melder_free (our d_path);
-	Melder_free (our d_id);
-	if (our ownData)
-		NUMvector_free <char> (our d_data, 0);
-	our FileInMemory_Parent :: v_destroy ();
+void structFileInMemory :: v_destroy () {
+	Melder_free (d_path);
+	Melder_free (d_id);
+	NUMvector_free <char>  (d_data, 0);
+	FileInMemory_Parent :: v_destroy ();
 }
 
 void structFileInMemory :: v_info () {
-	our structDaata :: v_info ();
-	MelderInfo_writeLine (U"File name: ", our d_path);
-	MelderInfo_writeLine (U"Id: ", our d_id);
-	MelderInfo_writeLine (U"Number of bytes: ", our d_numberOfBytes);
+	structData :: v_info ();
+	MelderInfo_writeLine (U"File name: ", d_path);
+	MelderInfo_writeLine (U"Id: ", d_id);
+	MelderInfo_writeLine (U"Number of bytes: ", d_numberOfBytes);
 }
 
-autoFileInMemory FileInMemory_create (MelderFile file) {
+FileInMemory FileInMemory_create (MelderFile file) {
 	try {
 		if (! MelderFile_readable (file)) {
 			Melder_throw (U"File not readable.");
@@ -61,30 +59,28 @@ autoFileInMemory FileInMemory_create (MelderFile file) {
 		my d_path = Melder_dup (file -> path);
 		my d_id = Melder_dup (MelderFile_name (file));
 		my d_numberOfBytes = length;
-		my ownData = true;
-		my d_data = NUMvector <char> (0, my d_numberOfBytes);   // includes room for a final null byte in case the file happens to contain text
+		my d_data = NUMvector <char> (0, my d_numberOfBytes); // one extra for 0-byte at end if text
 		MelderFile_open (file);
 		for (long i = 0; i < my d_numberOfBytes; i++) {
 			unsigned int number = bingetu1 (file -> filePointer);
 			my d_data[i] = number;
 		}
-		my d_data[my d_numberOfBytes] = 0;   // one extra
+		my d_data[my d_numberOfBytes] = 0; // one extra
 		MelderFile_close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FileInMemory not created from \"", Melder_fileToPath (file), U"\".");
 	}
 }
 
-autoFileInMemory FileInMemory_createWithData (long numberOfBytes, const char *data, const char32 *path, const char32 *id) {
+FileInMemory FileInMemory_createWithData (long numberOfBytes, const char *data, const char32 *path, const char32 *id) {
 	try {
 		autoFileInMemory me = Thing_new (FileInMemory);
 		my d_path = Melder_dup (path);
 		my d_id = Melder_dup (id);
 		my d_numberOfBytes = numberOfBytes;
-		my ownData = false;
 		my d_data = const_cast<char *> (data); // copy pointer to data only
-		return me;
+		return me.transfer ();
 	} catch (MelderError) {
 		Melder_throw (U"FileInMemory not create from data.");
 	}
@@ -97,143 +93,150 @@ void FileInMemory_setId (FileInMemory me, const char32 *newId) {
 
 void FileInMemory_showAsCode (FileInMemory me, const char32 *name, long numberOfBytesPerLine)
 {
-	if (numberOfBytesPerLine <= 0) {
-		numberOfBytesPerLine = 20;
-	}
+	if (numberOfBytesPerLine <= 0) numberOfBytesPerLine = 20;
 	// autoNUMvector<unsigned char> data (0, my d_numberOfBytes); ????
 	MelderInfo_writeLine (U"\t\tstatic unsigned char ", name, U"_data[", my d_numberOfBytes+1, U"] = {");
 	for (long i = 0; i < my d_numberOfBytes; i++) {
 		unsigned char number = my d_data[i];
 		MelderInfo_write ((i % numberOfBytesPerLine == 0 ? U"\t\t\t" : U""), number, U",",
-			((i % numberOfBytesPerLine == (numberOfBytesPerLine - 1)) ? U"\n" : U" "));
+			((i % numberOfBytesPerLine  == (numberOfBytesPerLine - 1)) ? U"\n" : U" "));
 	}
 	MelderInfo_writeLine ((my d_numberOfBytes - 1) % numberOfBytesPerLine == (numberOfBytesPerLine - 1) ? U"\t\t\t0};" : U"0};");
 	MelderInfo_write (U"\t\tautoFileInMemory ", name, U" = FileInMemory_createWithData (");
 	MelderInfo_writeLine (my d_numberOfBytes, U", reinterpret_cast<const char *> (&", name, U"_data), \n\t\t\tU\"", my d_path, U"\", \n\t\t\tU\"", my d_id, U"\");");
 }
 
-Thing_implement (FileInMemorySet, SortedSet, 0);
+Thing_implement (FilesInMemory, SortedSet, 0);
 
-int structFileInMemorySet :: s_compare_name (FileInMemory me, FileInMemory thee) {
+int structFilesInMemory :: s_compare_name (I, thou) {
+	iam (FileInMemory); thouart (FileInMemory);
 	return Melder_cmp (my d_path, thy d_path);
 }
 
-int structFileInMemorySet :: s_compare_id (FileInMemory me, FileInMemory thee) {
+int structFilesInMemory :: s_compare_id (I, thou) {
+	iam (FileInMemory); thouart (FileInMemory);
 	return Melder_cmp (my d_id, thy d_id);
 }
 
-autoFileInMemorySet FileInMemorySet_createFromDirectoryContents (const char32 *dirpath, const char32 *fileGlobber) {
+FilesInMemory FilesInMemory_create () {
+	try {
+		autoFilesInMemory me = Thing_new (FilesInMemory);
+		Collection_init (me.peek(), classFileInMemory, 30);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"FilesInMemory not created.");
+	}
+}
+
+FilesInMemory FilesInMemory_createFromDirectoryContents (const char32 *dirpath, const char32 *fileGlobber) {
 	try {
-		structMelderDir parent { { 0 } };
+		structMelderDir parent = { { 0 } };
 		Melder_pathToDir (dirpath, &parent);
 		autoStrings thee = Strings_createAsFileList (Melder_cat (dirpath, U"/", fileGlobber));
 		if (thy numberOfStrings < 1) {
 			Melder_throw (U"No files found.");
 		}
-		autoFileInMemorySet me = FileInMemorySet_create ();
-		for (long i = 1; i <= thy numberOfStrings; i ++) {
-			structMelderFile file { 0 };
-			MelderDir_getFile (& parent, thy strings [i], & file);
-			autoFileInMemory fim = FileInMemory_create (& file);
-			my addItem_move (fim.move());
+		autoFilesInMemory me = FilesInMemory_create ();
+		for (long i = 1; i <= thy numberOfStrings; i++) {
+			structMelderFile file = { 0 };
+			MelderDir_getFile (&parent, thy strings[i], &file);
+			autoFileInMemory fim = FileInMemory_create (&file);
+			Collection_addItem (me.peek(), fim.transfer());
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"FileInMemorySet not created from directory \"", dirpath, U"\" for files that match \"", fileGlobber, U"\".");
+		Melder_throw (U"FilesInMemory not created from directory \"", dirpath, U"\" for files that match \"",
+		fileGlobber, U"\".");
 	}
 }
 
-void FileInMemorySet_showAsCode (FileInMemorySet me, const char32 *name, long numberOfBytesPerLine) {
+void FilesInMemory_showAsCode (FilesInMemory me, const char32 *name, long numberOfBytesPerLine) {
 	autoMelderString one_fim;
 	MelderInfo_writeLine (U"#include \"Collection.h\"");
 	MelderInfo_writeLine (U"#include \"FileInMemory.h\"");
 	MelderInfo_writeLine (U"#include \"melder.h\"\n");
-	MelderInfo_writeLine (U"autoFilesInMemory create_", name, U" () {");
+	MelderInfo_writeLine (U"FilesInMemory create_", name, U" () {");
 	MelderInfo_writeLine (U"\ttry {");
 	MelderInfo_writeLine (U"\t\tautoFilesInMemory me = FilesInMemory_create ();");
-	for (long ifile = 1; ifile <= my size; ifile ++) {
-		FileInMemory fim = my at [ifile];
-		MelderString_copy (& one_fim, name, ifile);
+	for (long ifile = 1; ifile <= my size; ifile++) {
+		FileInMemory fim = (FileInMemory) my item[ifile];
+		MelderString_copy (&one_fim, name, ifile);
 		FileInMemory_showAsCode (fim, one_fim.string, numberOfBytesPerLine);
-		MelderInfo_writeLine (U"\t\tCollection_addItem_move (me.get(), ", one_fim.string, U".move());\n");
+		MelderInfo_writeLine (U"\t\tCollection_addItem (me.peek(), ", one_fim.string, U".transfer());\n");
 	}
-	MelderInfo_writeLine (U"\t\treturn me;");
+	MelderInfo_writeLine (U"\t\treturn me.transfer();");
 	MelderInfo_writeLine (U"\t} catch (MelderError) {");
-	MelderInfo_writeLine (U"\t\tMelder_throw (U\"FileInMemorySet not created.\");");
+	MelderInfo_writeLine (U"\t\tMelder_throw (L\"FilesInMemory not created.\");");
 	MelderInfo_writeLine (U"\t}");
 	MelderInfo_writeLine (U"}\n\n");
 }
 
-void FileInMemorySet_showOneFileAsCode (FileInMemorySet me, long index, const char32 *name, long numberOfBytesPerLine)
+void FilesInMemory_showOneFileAsCode (FilesInMemory me, long index, const char32 *name, long numberOfBytesPerLine)
 {
 	if (index < 1 || index > my size) return;
 	MelderInfo_writeLine (U"#include \"FileInMemory.h\"");
 	MelderInfo_writeLine (U"#include \"melder.h\"\n");
-	MelderInfo_writeLine (U"static autoFileInMemory create_new_object () {");
+	MelderInfo_writeLine (U"static FileInMemory create_new_object () {");
 	MelderInfo_writeLine (U"\ttry {");
 	autoMelderString one_fim;
-	FileInMemory fim = my at [index];
-	MelderString_append (& one_fim, name, index);
+	FileInMemory fim = (FileInMemory) my item[index];
+	MelderString_append (&one_fim, name, index);
 	FileInMemory_showAsCode (fim, U"me", numberOfBytesPerLine);
-	MelderInfo_writeLine (U"\t\treturn me;");
+	MelderInfo_writeLine (U"\t\treturn me.transfer();");
 	MelderInfo_writeLine (U"\t} catch (MelderError) {");
-	MelderInfo_writeLine (U"\t\tMelder_throw (U\"FileInMemory not created.\");");
+	MelderInfo_writeLine (U"\t\tMelder_throw (L\"FileInMemory not created.\");");
 	MelderInfo_writeLine (U"\t}");
 	MelderInfo_writeLine (U"}\n\n");
-	MelderInfo_writeLine (U"autoFileInMemory ", name, U" = create_new_object ();");
+	MelderInfo_writeLine (U"FileInMemory ", name, U" = create_new_object ();");
 }
 
-long FileInMemorySet_getIndexFromId (FileInMemorySet me, const char32 *id) {
+long FilesInMemory_getIndexFromId (FilesInMemory me, const char32 *id) {
 	long index = 0;
-	for (long i = 1; i <= my size; i ++) {
-		FileInMemory fim = my at [i];
-		if (Melder_equ (id, fim -> d_id)) {
-			index = i;
-			break;
+	for (long i = 1; i <= my size; i++) {
+		FileInMemory fim = (FileInMemory) my item[i];
+		if (Melder_cmp (id, fim -> d_id) == 0) {
+			index = i; break;
 		}
 	}
 	return index;
 }
 
-autoStrings FileInMemorySet_to_Strings_id (FileInMemorySet me) {
+Strings FilesInMemory_to_Strings_id (FilesInMemory me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector <char32 *> (1, my size);
 		thy numberOfStrings = 0;
-		for (long ifile = 1; ifile <= my size; ifile ++) {
-			FileInMemory fim = my at [ifile];
-			thy strings [ifile] = Melder_dup_f (fim -> d_id);
-			thy numberOfStrings ++;
+		for (long ifile = 1; ifile <= my size; ifile++) {
+			FileInMemory fim = (FileInMemory) my item[ifile];
+			thy strings[ifile] = Melder_dup_f (fim -> d_id);
+			thy numberOfStrings++;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Strings created from FilesinMemory.");
 	}
 }
 
-char * FileInMemorySet_getCopyOfData (FileInMemorySet me, const char32 *id, long *numberOfBytes) {
+char * FilesInMemory_getCopyOfData (FilesInMemory me, const char32 *id, long *numberOfBytes) {
 	*numberOfBytes = 0;
-	long index = FileInMemorySet_getIndexFromId (me, id);
-	if (index == 0) {
-		return nullptr;
-	}
-	FileInMemory fim = my at [index];
+	long index = FilesInMemory_getIndexFromId (me, id);
+	if (index == 0) return 0;
+	FileInMemory fim = (FileInMemory) my item[index];
 	char *data = (char *) _Melder_malloc (fim -> d_numberOfBytes);
-	if (! data || ! memcpy (data, fim -> d_data, fim -> d_numberOfBytes)) {
+	if (data == 0 ||
+		(memcpy (data, fim -> d_data, fim -> d_numberOfBytes) == NULL)) {
 		//Melder_appendError (U"No memory for dictionary.");
-		return nullptr;
+		return 0;
 	}
 	*numberOfBytes = fim -> d_numberOfBytes;
 	return data;
 }
 
-const char * FileInMemorySet_getData (FileInMemorySet me, const char32 *id, long *numberOfBytes) {
+const char * FilesInMemory_getData (FilesInMemory me, const char32 *id, long *numberOfBytes) {
 	*numberOfBytes = 0;
-	long index = FileInMemorySet_getIndexFromId (me, id);
-	if (index == 0) {
-		return nullptr;
-	}
-	FileInMemory fim = my at [index];
+	long index = FilesInMemory_getIndexFromId (me, id);
+	if (index == 0) return 0;
+	FileInMemory fim = (FileInMemory) my item[index];
 	*numberOfBytes = fim -> d_numberOfBytes;
 	return fim -> d_data;
 }
diff --git a/dwsys/FileInMemory.h b/dwsys/FileInMemory.h
index e417355..5948e94 100644
--- a/dwsys/FileInMemory.h
+++ b/dwsys/FileInMemory.h
@@ -2,7 +2,7 @@
 #define _FileInMemory_h_
 /* FileInMemory.h
  *
- * Copyright (C) 2011-2012,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2011-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,55 +19,55 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+	djmw 20120125
+*/
 #include "Collection.h"
+
+#include "Strings_.h"
+#include "melder.h"
 #include "Strings_.h"
 
-Thing_define (FileInMemory, Daata) {
+Thing_define (FileInMemory, Data) {
 	char32 *d_path;
 	char32 *d_id;
 	long d_numberOfBytes;
 	char *d_data;
-	bool ownData;
 
-	void v_copy (Daata data_to)
+	void v_copy (Any data_to)
 		override;
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
 };
 
-autoFileInMemory FileInMemory_create (MelderFile file);
-
-autoFileInMemory FileInMemory_createWithData (long numberOfBytes, const char *data, const char32 *path, const char32 *id);
+FileInMemory FileInMemory_create (MelderFile file);
+FileInMemory FileInMemory_createWithData (long numberOfBytes, const char *data, const char32 *path, const char32 *id);
 
 void FileInMemory_dontOwnData (FileInMemory me);
-
 void FileInMemory_setId (FileInMemory me, const char32 *newId);
 
 void FileInMemory_showAsCode (FileInMemory me, const char32 *name, long numberOfBytesPerLine);
 
-Collection_define (FileInMemorySet, SortedSetOf, FileInMemory) {
+Thing_define (FilesInMemory, SortedSet) {
 	int d_sortKey;
 
-	static int s_compare_name (FileInMemory data1, FileInMemory data2);
-	static int s_compare_id (FileInMemory data1, FileInMemory data2);
-	CompareHook v_getCompareHook ()
+	static int s_compare_name (Any data1, Any data2);
+	static int s_compare_id (Any data1, Any data2);
+	Data_CompareFunction v_getCompareFunction ()
 		override { return d_sortKey == 0 ? s_compare_name : s_compare_id; }
 };
 
-autoFileInMemorySet FileInMemorySet_createFromDirectoryContents (const char32 *dirpath, const char32 *file);
-
-void FileInMemorySet_showAsCode (FileInMemorySet me, const char32 *name, long numberOfBytesPerLine);
-
-void FileInMemorySet_showOneFileAsCode (FileInMemorySet me, long index, const char32 *name, long numberOfBytesPerLine);
-
-long FileInMemorySet_getIndexFromId (FileInMemorySet me, const char32 *id);
-
-autoStrings FileInMemorySet_to_Strings_id (FileInMemorySet me);
+FilesInMemory FilesInMemory_create ();
+FilesInMemory FilesInMemory_createFromDirectoryContents (const char32 *dirpath, const char32 *file);
 
-char * FileInMemorySet_getCopyOfData (FileInMemorySet me, const char32 *id, long *numberOfBytes);
+void FilesInMemory_showAsCode (FilesInMemory me, const char32 *name, long numberOfBytesPerLine);
+void FilesInMemory_showOneFileAsCode (FilesInMemory me, long index, const char32 *name, long numberOfBytesPerLine);
 
-const char * FileInMemorySet_getData (FileInMemorySet me, const char32 *id, long *numberOfBytes);
+long FilesInMemory_getIndexFromId (FilesInMemory me, const char32 *id);
+Strings FilesInMemory_to_Strings_id (FilesInMemory me);
+char * FilesInMemory_getCopyOfData (FilesInMemory me, const char32 *id, long *numberOfBytes);
+const char * FilesInMemory_getData (FilesInMemory me, const char32 *id, long *numberOfBytes);
 
 #endif // _FileInMemory_h_
diff --git a/dwsys/Graphics_extensions.cpp b/dwsys/Graphics_extensions.cpp
index 5949d70..1ea79cf 100644
--- a/dwsys/Graphics_extensions.cpp
+++ b/dwsys/Graphics_extensions.cpp
@@ -1,6 +1,6 @@
 /* Graphics_extensions.c
  *
- * Copyright (C) 2012 -2015 David Weenink
+ * Copyright (C) 2012 -2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
 void Graphics_boxAndWhiskerPlot (Graphics g, double data[], long ndata, double x, double r, double w, double ymin, double ymax) {
 	int lineType = Graphics_inqLineType (g);
 
-	Melder_assert (r > 0.0 && w > 0.0);
+	Melder_assert (r > 0 && w > 0);
 	if (ndata < 3) {
 		return;
 	}
@@ -60,7 +60,7 @@ void Graphics_boxAndWhiskerPlot (Graphics g, double data[], long ndata, double x
 		return;
 	}
 
-	double mean = 0.0;
+	double mean = 0;
 	for (long i = 1; i <= ndata; i++) {
 		mean += data[i];
 	}
@@ -187,7 +187,7 @@ void Graphics_quantileQuantilePlot (Graphics g, long numberOfQuantiles, double x
 	long numberOfData = xnumberOfData < ynumberOfData ? xnumberOfData : ynumberOfData;
 	numberOfQuantiles = numberOfData < numberOfQuantiles ? numberOfData : numberOfQuantiles;
 	double un = pow (0.5, 1.0 / numberOfQuantiles);
-	double u1 = 1.0 - un;
+	double u1 = 1 - un;
 	if (xmin == xmax) {
 		xmin = NUMquantile (xnumberOfData, xsorted.peek(), u1);
 		xmax = NUMquantile (xnumberOfData, xsorted.peek(), un);
@@ -213,7 +213,7 @@ void Graphics_matrixAsSquares (Graphics g, double **matrix, long numberOfRows, l
 	long numberOfCells = numberOfRows * numberOfColumns;
 	autoPermutation p = Permutation_create (numberOfCells);
 	if (randomFillOrder) {
-		Permutation_permuteRandomly_inline (p.get(), 1, numberOfCells);
+		Permutation_permuteRandomly_inline (p.peek(), 1, numberOfCells);
 	}
 	double zAbsMax = fabs (zmax) > fabs (zmin) ? fabs (zmax) : fabs (zmin);
 	Graphics_Colour colour = Graphics_inqColour (g);
@@ -222,7 +222,7 @@ void Graphics_matrixAsSquares (Graphics g, double **matrix, long numberOfRows, l
 	double dx = fabs (x2WC - x1WC) / numberOfColumns;
 	double dy = fabs (y2WC - y1WC) / numberOfRows;
 	for (long i = 1; i <= numberOfCells; i++) {
-		long index = Permutation_getValueAtIndex (p.get(), i);
+		long index = Permutation_getValueAtIndex (p.peek(), i);
 		long irow = (index - 1) / numberOfColumns + 1;
 		long icol = (index - 1) % numberOfColumns + 1;
 		double z = matrix[irow][icol];
@@ -239,7 +239,7 @@ void Graphics_matrixAsSquares (Graphics g, double **matrix, long numberOfRows, l
 		y1 = y1 < y1WC ? y1WC : y1;
 		double y2 = y1WC + ycenter + zweight * 0.5 * dy * cellSizeFactor;
 		y2 = y2 > y2WC ? y2WC : y2;
-		if (z > 0.0) {
+		if (z > 0) {
 			Graphics_setColour (g, Graphics_WHITE);
 		}
 		Graphics_fillRectangle (g, x1, x2, y1, y2);
diff --git a/dwsys/Index.cpp b/dwsys/Index.cpp
index 9c7fdb8..b0452f1 100644
--- a/dwsys/Index.cpp
+++ b/dwsys/Index.cpp
@@ -1,6 +1,6 @@
 /* Index.cpp
  *
- * Copyright (C) 2005-2011, 2015-2016 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,14 +49,15 @@
 #include "Index_def.h"
 
 
-Thing_implement (Index, Daata, 0);
+Thing_implement (Index, Data, 0);
 
 void structIndex :: v_info () {
-	structDaata :: v_info ();
-	MelderInfo_writeLine (U"Number of elements: ", our numberOfElements);
+	structData :: v_info ();
+	MelderInfo_writeLine (U"Number of elements: ", numberOfElements);
 }
 
-void Index_init (Index me, long numberOfElements) {
+void Index_init (I, long numberOfElements) {
+	iam (Index);
 	if (numberOfElements < 1) {
 		Melder_throw (U"Cannot create index without elements.");
 	}
@@ -65,7 +66,8 @@ void Index_init (Index me, long numberOfElements) {
 	my classIndex = NUMvector<long> (1, numberOfElements);
 }
 
-autoIndex Index_extractPart (Index me, long from, long to) {
+Index Index_extractPart (I, long from, long to) {
+	iam (Index);
 	try {
 		if (from == 0) {
 			from = 1;
@@ -73,16 +75,15 @@ autoIndex Index_extractPart (Index me, long from, long to) {
 		if (to == 0) {
 			to = my numberOfElements;
 		}
-		if (to < from || from < 1 || to > my numberOfElements) {
-			Melder_throw (U"Range should be in interval [1,", my numberOfElements, U"].");
-		}
+		if (to < from || from < 1 || to > my numberOfElements) Melder_throw
+			(U"Range should be in interval [1,", my numberOfElements, U"].");
 		autoIndex thee = Data_copy (me);
 		thy numberOfElements = to - from + 1;
-		
-		for (long i = 1; i <= thy numberOfElements; i ++) {
-			thy classIndex [i] = my classIndex [from + i - 1];
+		/* */
+		for (long i = 1; i <= thy numberOfElements; i++) {
+			thy classIndex[i] = my classIndex[from + i - 1];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": part not extracted.");
 	}
@@ -90,20 +91,20 @@ autoIndex Index_extractPart (Index me, long from, long to) {
 
 Thing_implement (StringsIndex, Index, 0);
 
-autoStringsIndex StringsIndex_create (long numberOfElements) {
+StringsIndex StringsIndex_create (long numberOfElements) {
 	try {
-		autoStringsIndex me = Thing_new (StringsIndex);
-		Index_init (me.get(), numberOfElements);
-		return me;
+		autoStringsIndex me = (StringsIndex) Thing_new (StringsIndex);
+		Index_init (me.peek(), numberOfElements);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"StringsIndex not created.");
 	}
 }
 
 int StringsIndex_getClass (StringsIndex me, char32 *klasLabel) {
-	for (long i = 1; i <= my classes->size; i ++) {
-		SimpleString ss = (SimpleString) my classes->at [i];   // FIXME cast
-		if (Melder_equ (ss -> string, klasLabel)) {
+	for (long i = 1; i <= my classes -> size; i++) {
+		SimpleString ss = (SimpleString) my classes -> item[i];
+		if (Melder_cmp (ss -> string, klasLabel) == 0) {
 			return i;
 		}
 	}
@@ -112,11 +113,9 @@ int StringsIndex_getClass (StringsIndex me, char32 *klasLabel) {
 
 long StringsIndex_countItems (StringsIndex me, int iclass) {
 	long sum = 0;
-	for (long i = 1; i <= my numberOfElements; i ++) {
-		if (my classIndex [i] == iclass) {
-			sum ++;
+	for (long i = 1; i <= my numberOfElements; i++) if (my classIndex[i] == iclass) {
+			sum++;
 		}
-	}
 	return sum;
 }
 
diff --git a/dwsys/Index.h b/dwsys/Index.h
index 4d5adb1..e4a4a0d 100644
--- a/dwsys/Index.h
+++ b/dwsys/Index.h
@@ -22,12 +22,14 @@
 #include "Collection.h"
 
 #include "Index_def.h"
+oo_CLASS_CREATE (Index, Data);
+oo_CLASS_CREATE (StringsIndex, Index);
 
-void Index_init (Index me, long numberOfElements);
+void Index_init (I, long numberOfElements);
 
-autoIndex Index_extractPart (Index me, long from, long to);
+Index Index_extractPart (I, long from, long to);
 
-autoStringsIndex StringsIndex_create (long numberOfElements);
+StringsIndex StringsIndex_create (long numberOfElements);
 
 int StringsIndex_getClass (StringsIndex me, char32 *classLabel);
 
diff --git a/dwsys/Index_def.h b/dwsys/Index_def.h
index e95e800..e94151e 100644
--- a/dwsys/Index_def.h
+++ b/dwsys/Index_def.h
@@ -1,6 +1,6 @@
 /* Index_def.h
  *
- * Copyright (C) 2005-2006, 2015 David Weenink
+ * Copyright (C) 2005-2006 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,9 +23,8 @@
 */
 
 #define ooSTRUCT Index
-oo_DEFINE_CLASS (Index, Daata)
-
-	oo_AUTO_OBJECT (Ordered, 0, classes)
+oo_DEFINE_CLASS (Index, Data)
+	oo_OBJECT (Ordered, 0, classes)
 	oo_LONG (numberOfElements)
 	oo_LONG_VECTOR (classIndex, numberOfElements)
 
@@ -37,12 +36,9 @@ oo_DEFINE_CLASS (Index, Daata)
 oo_END_CLASS(Index)	
 #undef ooSTRUCT
 
-
 #define ooSTRUCT StringsIndex
 oo_DEFINE_CLASS (StringsIndex, Index)
-
 oo_END_CLASS(StringsIndex)
 #undef ooSTRUCT
 
-
 /* End of file Index_def.h */	
diff --git a/dwsys/Makefile b/dwsys/Makefile
index 2e71955..598c65e 100644
--- a/dwsys/Makefile
+++ b/dwsys/Makefile
@@ -8,7 +8,7 @@ CPPFLAGS =  -I ../stat -I ../num -I ../sys -I dwsys -I ../external/gsl -I ../kar
 all: libdwsys.a
 
 OBJECTS = Collection_extensions.o Command.o \
-	DoublyLinkedList.o Eigen.o FileInMemory.o Graphics_extensions.o Index.o \
+	DLL.o Eigen.o FileInMemory.o Graphics_extensions.o Index.o \
 	NUM2.o NUMhuber.o NUMlapack.o NUMmachar.o \
 	NUMf2c.o NUMcblas.o NUMclapack.o NUMfft_d.o NUMsort2.o \
 	NUMmathlib.o NUMstring.o \
diff --git a/dwsys/NUM2.cpp b/dwsys/NUM2.cpp
index 61adfde..1ce213b 100644
--- a/dwsys/NUM2.cpp
+++ b/dwsys/NUM2.cpp
@@ -1,6 +1,6 @@
 /* NUM2.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -105,6 +105,24 @@ struct pdf2_struct {
 	double df2;
 };
 
+int NUMdmatrix_hasInfinities (double **m, long rb, long re, long cb, long ce) {
+	double min = m[rb][cb];
+	double max = min;
+	for (long i = rb; i <= re; i++) {
+		for (long j = cb; j <= ce; j++) {
+			if (m[i][j] > max) {
+				max = m[i][j];
+			} else if (m[i][j] < min) {
+				min = m[i][j];
+			}
+		}
+	}
+	if (! NUMfpp) {
+		NUMmachar ();
+	}
+	return max >= NUMfpp -> rmax || min <= - NUMfpp -> rmax;
+}
+
 void NUMdmatrix_printMatlabForm (double **m, long nr, long nc, const char32 *name) {
 	long npc = 5;
 	ldiv_t n = ldiv (nc, npc);
@@ -114,13 +132,19 @@ void NUMdmatrix_printMatlabForm (double **m, long nr, long nc, const char32 *nam
 	for (long i = 1; i <= nr; i++) {
 		for (long j = 1; j <= n.quot; j++) {
 			for (long k = 1; k <= npc; k++) {
-				MelderInfo_write (m[i][ (j - 1) *npc + k], (k < npc ? U", " : U""));
+				MelderInfo_write (
+					m[i][ (j - 1) *npc + k],
+					(k < npc ? U", " : U"")
+				);
 			}
 			MelderInfo_write (j < n.quot ? U",\n" : U"");
 		}
 
 		for (long k = 1; k <= n.rem; k++) {
-			MelderInfo_write (m[i][n.quot * npc + k], (k < n.rem ? U", " : U""));
+			MelderInfo_write (
+				m[i][n.quot * npc + k],
+				(k < n.rem ? U", " : U"")
+			);
 		}
 		MelderInfo_write (i < nr ? U";\n" : U"];\n");
 	}
@@ -129,7 +153,7 @@ void NUMdmatrix_printMatlabForm (double **m, long nr, long nc, const char32 *nam
 
 void NUMcentreRows (double **a, long rb, long re, long cb, long ce) {
 	for (long i = rb; i <= re; i++) {
-		double rowmean = 0.0;
+		double rowmean = 0;
 		for (long j = cb; j <= ce; j++) {
 			rowmean += a[i][j];
 		}
@@ -142,7 +166,7 @@ void NUMcentreRows (double **a, long rb, long re, long cb, long ce) {
 
 void NUMcentreColumns (double **a, long rb, long re, long cb, long ce, double *centres) {
 	for (long j = cb; j <= ce; j++) {
-		double colmean = 0.0;
+		double colmean = 0;
 		for (long i = rb; i <= re; i++) {
 			colmean += a[i][j];
 		}
@@ -150,7 +174,7 @@ void NUMcentreColumns (double **a, long rb, long re, long cb, long ce, double *c
 		for (long i = rb; i <= re; i++) {
 			a[i][j] -= colmean;
 		}
-		if (centres) {
+		if (centres != NULL) {
 			centres[j - cb + 1] = colmean;
 		}
 	}
@@ -164,11 +188,11 @@ void NUMdoubleCentre (double **a, long rb, long re, long cb, long ce) {
 void NUMnormalizeColumns (double **a, long nr, long nc, double norm) {
 	Melder_assert (norm > 0);
 	for (long j = 1; j <= nc; j++) {
-		double s = 0.0;
+		double s = 0;
 		for (long i = 1; i <= nr; i++) {
 			s += a[i][j] * a[i][j];
 		}
-		if (s <= 0.0) {
+		if (s <= 0) {
 			continue;
 		}
 		s = sqrt (norm / s);
@@ -181,11 +205,11 @@ void NUMnormalizeColumns (double **a, long nr, long nc, double norm) {
 void NUMnormalizeRows (double **a, long nr, long nc, double norm) {
 	Melder_assert (norm > 0);
 	for (long i = 1; i <= nr; i++) {
-		double s = 0.0;
+		double s = 0;
 		for (long j = 1; j <= nc; j++) {
 			s += a[i][j] * a[i][j];
 		}
-		if (s <= 0.0) {
+		if (s <= 0) {
 			continue;
 		}
 		s = sqrt (norm / s);
@@ -197,13 +221,13 @@ void NUMnormalizeRows (double **a, long nr, long nc, double norm) {
 
 void NUMnormalize (double **a, long nr, long nc, double norm) {
 	Melder_assert (norm > 0);
-	double sq = 0.0;
+	double sq = 0;
 	for (long i = 1; i <= nr; i++) {
 		for (long j = 1; j <= nc; j++) {
 			sq += a[i][j] * a[i][j];
 		}
 	}
-	if (sq <= 0.0) {
+	if (sq <= 0) {
 		return;
 	}
 	norm = sqrt (norm / sq);
@@ -220,7 +244,7 @@ void NUMstandardizeColumns (double **a, long rb, long re, long cb, long ce) {
 		return;
 	}
 	for (long j = cb; j <= ce; j++) {
-		double ep = 0.0, s = 0.0, sdev, var = 0.0;
+		double ep = 0, s = 0, sdev, var = 0;
 		for (long i = rb; i <= re; i++) {
 			s += a[i][j];
 		}
@@ -230,12 +254,12 @@ void NUMstandardizeColumns (double **a, long rb, long re, long cb, long ce) {
 			ep += s;
 			var += s * s;
 		}
-		if (ave != 0.0) {
+		if (ave != 0) {
 			for (long i = rb; i <= re; i++) {
 				a[i][j] -= ave;
 			}
 		}
-		if (var > 0.0) {
+		if (var > 0) {
 			var = (var - ep * ep / n) / (n - 1);
 			sdev = sqrt (var);
 			for (long i = rb; i <= re; i++) {
@@ -251,7 +275,7 @@ void NUMstandardizeRows (double **a, long rb, long re, long cb, long ce) {
 		return;
 	}
 	for (long i = rb; i <= re; i++) {
-		double ep = 0.0, s = 0.0, sdev, var = 0.0;
+		double ep = 0, s = 0, sdev, var = 0;
 		for (long j = cb; j <= ce; j++) {
 			s += a[i][j];
 		}
@@ -261,12 +285,12 @@ void NUMstandardizeRows (double **a, long rb, long re, long cb, long ce) {
 			ep += s;
 			var += s * s;
 		}
-		if (ave != 0.0) {
+		if (ave != 0) {
 			for (long j = cb; j <= ce; j++) {
 				a[i][j] -= ave;
 			}
 		}
-		if (var > 0.0) {
+		if (var > 0) {
 			var = (var - ep * ep / n) / (n - 1);
 			sdev = sqrt (var);
 			for (long j = cb; j <= ce; j++) {
@@ -282,7 +306,7 @@ void NUMaverageColumns (double **a, long rb, long re, long cb, long ce) {
 		return;
 	}
 	for (long j = cb; j <= ce; j++) {
-		double ave = 0.0;
+		double ave = 0;
 		for (long i = rb; i <= re; i++) {
 			ave += a[i][j];
 		}
@@ -294,73 +318,81 @@ void NUMaverageColumns (double **a, long rb, long re, long cb, long ce) {
 
 }
 
-void NUMvector_avevar (double *a, long n, double *p_mean, double *p_var) {
+void NUMvector_avevar (double *a, long n, double *average, double *variance) {
+
+	double eps = 0, mean = 0, var = 0;
 
-	double mean = 0.0;
 	for (long i = 1; i <= n; i++) {
 		mean += a[i];
 	}
 
 	mean /= n;
 
-	if (p_mean) {
-		*p_mean = mean;
+	if (average != NULL) {
+		*average = mean;
 	}
 
-	if (p_var) {
-		double eps = 0.0, var = 0.0;
-		if (n > 1) {
-			for (long i = 1; i <= n; i++) {
-				double s = a[i] - mean;
-				eps += s;
-				var += s * s;
-			}
+	if (variance == NULL) {
+		return;
+	}
 
-			var = (var - eps * eps / n);
-		} else {
-			var = NUMundefined;
+	if (n > 1) {
+		for (long i = 1; i <= n; i++) {
+			double s = a[i] - mean;
+			eps += s;
+			var += s * s;
 		}
-		*p_var = var;
+
+		var = (var - eps * eps / n);
+	} else {
+		var = NUMundefined;
 	}
+	*variance = var;
 }
 
-void NUMcolumn_avevar (double **a, long nr, long nc, long icol, double *p_mean, double *p_var) {
+void NUMcolumn_avevar (double **a, long nr, long nc, long icol, double *average, double *variance) {
+
+	double eps = 0, mean = 0, var = 0;
 
 	Melder_assert (nr > 0 && nc > 0 && icol > 0 && icol <= nc);
 
-	double mean = 0.0;
 	for (long i = 1; i <= nr; i++) {
 		mean += a[i][icol];
 	}
 
 	mean /= nr;
 
-	if (p_mean) {
-		*p_mean = mean;
+	if (average != NULL) {
+		*average = mean;
 	}
 
-	if (p_var) {
-		double eps = 0.0, var = 0.0;
-		if (nr > 1) {
-			for (long i = 1; i <= nr; i++) {
-				double s = a[i][icol] - mean;
-				eps += s;
-				var += s * s;
-			}
+	if (variance == NULL) {
+		return;
+	}
 
-			var = (var - eps * eps / nr);
-		} else {
-			var = NUMundefined;
+	if (nr > 1) {
+		for (long i = 1; i <= nr; i++) {
+			double s = a[i][icol] - mean;
+			eps += s;
+			var += s * s;
 		}
-		*p_var = var;
+
+		var = (var - eps * eps / nr);
+	} else {
+		var = NUMundefined;
 	}
+
+	*variance = var;
 }
 
-void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2, double *p_mean1, double *p_var1, double *p_mean2, double *p_var2, double *p_covar) {
+void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2,
+                        double *average1, double *variance1, double *average2, double *variance2,
+                        double *covariance) {
+	double eps1 = 0, eps2 = 0, mean1 = 0, mean2 = 0;
+	double var1 = 0, var2 = 0, covar = 0;
 
 	Melder_assert (icol1 > 0 && icol1 <= nc && icol2 > 0 && icol2 <= nc);
 
-	double mean1 = 0.0, mean2 = 0.0;
 	for (long i = 1; i <= nr; i++) {
 		mean1 += a[i][icol1];
 		mean2 += a[i][icol2];
@@ -369,46 +401,47 @@ void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2, do
 	mean1 /= nr;
 	mean2 /= nr;
 
-	if (p_mean1) {
-		*p_mean1 = mean1;
+	if (average1 != NULL) {
+		*average1 = mean1;
 	}
-	if (p_mean2) {
-		*p_mean2 = mean2;
+	if (average2 != NULL) {
+		*average2 = mean2;
 	}
 
-	if (p_var1 || p_var2 || p_covar) {
-		double eps1 = 0.0, eps2 = 0.0, var1 = 0.0, var2 = 0.0, covar = 0.0;
-
-		if (nr > 1) {
-			for (long i = 1; i <= nr; i++) {
-				double s1 = a[i][icol1] - mean1;
-				double s2 = a[i][icol2] - mean2;
-				eps1 += s1;
-				eps2 += s2;
-				var1 += s1 * s1;
-				var2 += s2 * s2;
-				covar += s1 * s2;
-			}
+	if (variance1 == NULL && variance2 == NULL && covariance == NULL) {
+		return;
+	}
 
-			var1 = (var1 - eps1 * eps1 / nr);
-			var2 = (var2 - eps2 * eps2 / nr);;
-		} else {
-			var1 = NUMundefined;
-			var2 = NUMundefined;
-			covar = NUMundefined;
-		}
-		if (p_var1) {
-			*p_var1 = var1;
-		}
-		if (p_var2) {
-			*p_var2 = var2;
-		}
-		if (icol1 == icol2) {
-			covar = var1;
-		}
-		if (p_covar) {
-			*p_covar = covar;
+	if (nr > 1) {
+		for (long i = 1; i <= nr; i++) {
+			double s1 = a[i][icol1] - mean1;
+			double s2 = a[i][icol2] - mean2;
+			eps1 += s1;
+			eps2 += s2;
+			var1 += s1 * s1;
+			var2 += s2 * s2;
+			covar += s1 * s2;
 		}
+
+		var1 = (var1 - eps1 * eps1 / nr);
+		var2 = (var2 - eps2 * eps2 / nr);;
+	} else {
+		var1 = NUMundefined;
+		var2 = NUMundefined;
+		covar = NUMundefined;
+	}
+
+	if (variance1 != NULL) {
+		*variance1 = var1;
+	}
+	if (variance2 != NULL) {
+		*variance2 = var2;
+	}
+	if (covariance != NULL) {
+		*covariance = covar;
+	}
+	if (icol1 == icol2) {
+		*covariance = *variance1;
 	}
 }
 
@@ -435,7 +468,7 @@ void NUMcovarianceFromColumnCentredMatrix (double **x, long nrows, long ncols, l
 	}
 	for (long i = 1; i <= ncols; i++) {
 		for (long j = i; j <= ncols; j++) {
-			double sum = 0.0;
+			double sum = 0;
 			for (long k = 1; k <= nrows; k++) {
 				sum += x[k][i] * x[k][j];
 			}
@@ -455,18 +488,18 @@ double NUMmultivariateKurtosis (double **x, long nrows, long ncols, int method)
 	NUMcentreColumns (x, 1, nrows, 1, ncols, mean.peek());
 	NUMcovarianceFromColumnCentredMatrix (x, nrows, ncols, 1, covar.peek());
 	if (method == 1) { // Schott (2001, page 33)
-		kurt = 0.0;
+		kurt = 0;
 		for (long l = 1; l <= ncols; l++) {
-			double zl = 0.0, wl, sll2 = covar[l][l] * covar[l][l];
+			double zl = 0, wl, sll2 = covar[l][l] * covar[l][l];
 			for (long j = 1; j <= nrows; j++) {
 				double d = x[j][l] - mean[l], d2 = d * d;
 				zl += d2 * d2;
 			}
-			zl = (zl - 6.0 * sll2) / (nrows - 4);
+			zl = (zl - 6 * sll2) / (nrows - 4);
 			wl = (sll2 - zl / nrows) * nrows / (nrows - 1);
 			kurt += zl / wl;
 		}
-		kurt = kurt / (3 * ncols) - 1.0;
+		kurt = kurt / (3 * ncols) - 1;
 	}
 	return kurt;
 }
@@ -506,14 +539,14 @@ void eigenSort (double d[], double **v, long n, int sort) {
 }
 
 int NUMstrcmp (const char *s1, const char *s2) {
-	if (! s1 || s1[0] == '\0') {
-		if (s2 && s2[0] != '\0') {
+	if (s1 == NULL || s1[0] == '\0') {
+		if (s2 != NULL && s2[0] != '\0') {
 			return -1;
 		} else {
 			return 0;
 		}
 	} else {
-		if (! s2) {
+		if (s2 == NULL) {
 			return +1;
 		} else {
 			return strcmp (s1, s2);
@@ -596,45 +629,41 @@ void NUMmonotoneRegression (const double x[], long n, double xs[]) {
 }
 
 double NUMvector_getNorm1 (const double v[], long n) {
-	double norm = 0;
-	for (long i = 1; i <= n; i++) {
+	double norm = 0; long i;
+	for (i = 1; i <= n; i++) {
 		norm += fabs (v[i]);
 	}
 	return norm;
 }
 
 double NUMvector_getNorm2 (const double v[], long n) {
-	double norm = 0.0;
-	for (long i = 1; i <= n; i++) {
+	double norm = 0; long i;
+	for (i = 1; i <= n; i++) {
 		norm += v[i] * v[i];
 	}
 	return sqrt (norm);
 }
 
 double NUMvector_normalize1 (double v[], long n) {
-	double norm = 0.0;
-	for (long i = 1; i <= n; i++) {
+	double norm = 0; long i;
+	for (i = 1; i <= n; i++) {
 		norm += fabs (v[i]);
 	}
-	if (norm > 0.0) {
-		for (long i = 1; i <= n; i++) {
+	if (norm > 0) for (i = 1; i <= n; i++) {
 			v[i] /= norm;
 		}
-	}
 	return norm;
 }
 
 double NUMvector_normalize2 (double v[], long n) {
-	double norm = 0;
-	for (long i = 1; i <= n; i++) {
+	double norm = 0; long i;
+	for (i = 1; i <= n; i++) {
 		norm += v[i] * v[i];
 	}
 	norm = sqrt (norm);
-	if (norm > 0) {
-		for (long i = 1; i <= n; i++) {
+	if (norm > 0) for (i = 1; i <= n; i++) {
 			v[i] /= norm;
 		}
-	}
 	return norm;
 }
 
@@ -657,7 +686,7 @@ void NUMcholeskySolve (double **a, long n, double d[], double b[], double x[]) {
 	}
 }
 
-void NUMdeterminant_cholesky (double **a, long n, double *p_lnd) {
+void NUMdeterminant_cholesky (double **a, long n, double *lnd) {
 	// Save the diagonal
 	autoNUMvector<double> d (1, n);
 	for (long i = 1; i <= n; i++) {
@@ -674,13 +703,12 @@ void NUMdeterminant_cholesky (double **a, long n, double *p_lnd) {
 	}
 
 	// Determinant from diagonal, restore diagonal
-
-	double lnd = 0.0;
+	*lnd = 0;
 	for (long i = 1; i <= n; i++) {
-		lnd += log (a[i][i]);
+		*lnd += log (a[i][i]);
 		a[i][i] = d[i];
 	}
-	lnd *= 2.0; // because A = L . L' TODO
+	*lnd *= 2; // because A = L . L'
 
 	// Restore lower from upper */
 
@@ -689,9 +717,6 @@ void NUMdeterminant_cholesky (double **a, long n, double *p_lnd) {
 			a[j][i] = a[i][j];
 		}
 	}
-	if (p_lnd) {
-		*p_lnd = lnd;
-	}
 }
 
 void NUMlowerCholeskyInverse (double **a, long n, double *lnd) {
@@ -709,12 +734,12 @@ void NUMlowerCholeskyInverse (double **a, long n, double *lnd) {
 
 	// Determinant from diagonal, diagonal is now sqrt (a[i][i]) !
 
-	if (lnd) {
-		*lnd = 0.0;
+	if (lnd != NULL) {
+		*lnd = 0;
 		for (long i = 1; i <= n; i++) {
 			*lnd += log (a[i][i]);
 		}
-		*lnd *= 2.0; /* because A = L . L' */
+		*lnd *= 2; /* because A = L . L' */
 	}
 
 	// Get the inverse */
@@ -748,7 +773,7 @@ double NUMmahalanobisDistance_chi (double **linv, double *v, double *m, long nr,
 		}
 	} else { // nxn matrix
 		for (long i = n; i > 0; i--) {
-			double t = 0.0;
+			double t = 0;
 			for (long j = 1; j <= i; j++) {
 				t += linv[i][j] * (v[j] - m[j]);
 			}
@@ -759,7 +784,7 @@ double NUMmahalanobisDistance_chi (double **linv, double *v, double *m, long nr,
 }
 
 double NUMtrace (double **a, long n) {
-	double trace = 0.0;
+	double trace = 0;
 	for (long i = 1; i <= n; i++) {
 		trace += a[i][i];
 	}
@@ -767,7 +792,7 @@ double NUMtrace (double **a, long n) {
 }
 
 double NUMtrace2 (double **a1, double **a2, long n) {
-	double trace = 0.0;
+	double trace = 0;
 	for (long i = 1; i <= n; i++) {
 		for (long k = 1; k <= n; k++) {
 			trace += a1[i][k] * a2[k][i];
@@ -778,7 +803,7 @@ double NUMtrace2 (double **a1, double **a2, long n) {
 
 void NUMeigensystem (double **a, long n, double **evec, double eval[]) {
 	autoEigen me = Thing_new (Eigen);
-	Eigen_initFromSymmetricMatrix (me.get(), a, n);
+	Eigen_initFromSymmetricMatrix (me.peek(), a, n);
 	if (evec) {
 		NUMmatrix_copyElements (my eigenvectors, evec, 1, n, 1, n);
 	}
@@ -787,24 +812,24 @@ void NUMeigensystem (double **a, long n, double **evec, double eval[]) {
 	}
 }
 
-void NUMdominantEigenvector (double **mns, long n, double *q, double *p_lambda, double tolerance) {
+void NUMdominantEigenvector (double **mns, long n, double *q, double *lambda, double tolerance) {
 	autoNUMvector<double> z (1, n);
 
-	double lambda0, lambda = 0.0;
+	double val, cval = 0;
 	for (long k = 1; k <= n; k++) {
 		for (long l = 1; l <= n; l++) {
-			lambda += q[k] * mns[k][l] * q[l];
+			cval += q[k] * mns[k][l] * q[l];
 		}
 	}
-	if (lambda == 0.0) {
+	if (cval == 0) {
 		Melder_throw (U"Zero matrices ??");
 	}
 
 	long iter = 0;
 	do {
-		double znorm2 = 0.0;
+		double znorm2 = 0;
 		for (long l = 1; l <= n; l++) {
-			z[l] = 0.0;
+			z[l] = 0;
 			for (long k = 1; k <= n; k++) {
 				z[l] += mns[l][k] * q[k];
 			}
@@ -819,19 +844,16 @@ void NUMdominantEigenvector (double **mns, long n, double *q, double *p_lambda,
 			q[k] = z[k] / znorm2;
 		}
 
-		lambda0 = lambda; 
-		
-		lambda = 0.0;
+		val = cval; cval = 0;
+
 		for (long k = 1; k <= n; k++) {
 			for (long l = 1; l <= n; l++) {
-				lambda += q[k] * mns[k][l] * q[l];
+				cval += q[k] * mns[k][l] * q[l];
 			}
 		}
 
-	} while (fabs (lambda - lambda0) > tolerance || ++iter < 30);
-	if (p_lambda) {
-		*p_lambda = lambda;
-	}
+	} while (fabs (cval - val) > tolerance || ++iter < 30);
+	*lambda = cval;
 }
 
 void NUMprincipalComponents (double **a, long n, long nComponents, double **pc) {
@@ -839,7 +861,7 @@ void NUMprincipalComponents (double **a, long n, long nComponents, double **pc)
 	NUMeigensystem (a, n, evec.peek(), NULL);
 	for (long i = 1; i <= n; i++) {
 		for (long j = 1; j <= nComponents; j++) {
-			double s = 0.0;
+			double s = 0;
 			for (long k = 1; k <= n; k++) {
 				s += a[k][i] * evec[k][j]; /* times sqrt(eigenvalue) ?? */
 			}
@@ -848,56 +870,6 @@ void NUMprincipalComponents (double **a, long n, long nComponents, double **pc)
 	}
 }
 
-void NUMdmatrix_projectRowsOnEigenspace (double **data, long numberOfRows, long from_col, double **eigenvectors, long numberOfEigenvectors, long dimension, double **projection, long to_col) {
-	/* Input:
-	 * 	data[numberOfRows, from_col - 1 + my dimension] 
-	 * 		contains the 'numberOfRows' vectors to be projected on the eigenspace. 
-	 *  eigenvectors [numberOfEigenvectors][dimension] 
-	 * 		the eigenvectors stored as rows
-	 * Input/Output
-	 * 	projection [numberOfRows, to_colbegin - 1 + numberOfEigenvectors] 
-	 * 		the projected vectors from 'data'
-	 * 
-	 * Project (part of) the vectors in matrix 'data' along the 'numberOfEigenvectors' eigenvectors into the matrix 'projection'.
-	 */
-	from_col = from_col <= 0 ? 1 : from_col;
-	to_col = to_col <= 0 ? 1 : to_col;
-
-	for (long irow = 1; irow <= numberOfRows; irow ++) {
-		for (long icol = 1; icol <= numberOfEigenvectors; icol ++) {
-			double r = 0.0;
-			for (long k = 1; k <= dimension; k ++) {
-				r += eigenvectors  [icol] [k] * data [irow] [from_col + k - 1];
-			}
-			projection [irow] [to_col + icol - 1] = r;
-		}
-	}
-}
-
-void NUMdmatrix_projectColumnsOnEigenspace (double **data, long numberOfColumns, double **eigenvectors, long numberOfEigenvectors, long dimension, double **projection) {
-	/* Input:
-	 * 	data[dimension, numberOfColumns] 
-	 * 		contains the column vectors to be projected on the eigenspace. 
-	 *  eigenvectors [numberOfEigenvectors][dimension] 
-	 * 		the eigenvectors stored as rows
-	 * Input/Output
-	 * 	projection [numberOfEigenvectors, numberOfColumns] 
-	 * 		the projected vectors from 'data'
-	 * 
-	 * Project the columnvectors in matrix 'data' along the 'numberOfEigenvectors' eigenvectors into the matrix 'projection'.
-	 */
-
-	for (long icol = 1; icol <= numberOfColumns; icol++) {
-		for (long irow = 1; irow <= numberOfEigenvectors; irow++) {
-			double r = 0.0;
-			for (long k = 1; k <= dimension; k ++) {
-				r += eigenvectors  [irow] [k] * data [k] [icol];
-			}
-			projection [irow][icol] = r;
-		}
-	}
-}
-
 void NUMdmatrix_into_principalComponents (double **m, long nrows, long ncols, long numberOfComponents, double **pc) {
 	Melder_assert (numberOfComponents > 0 && numberOfComponents <= ncols);
 	autoNUMmatrix<double> mc (NUMmatrix_copy (m, 1, nrows, 1, ncols), 1, 1);
@@ -906,7 +878,7 @@ void NUMdmatrix_into_principalComponents (double **m, long nrows, long ncols, lo
 	autoSVD svd = SVD_create_d (mc.peek(), nrows, ncols);
 	for (long i = 1; i <= nrows; i++) {
 		for (long j = 1; j <= numberOfComponents; j++) {
-			pc[i][j] = 0.0;
+			pc[i][j] = 0;
 			for (long k = 1; k <= ncols; k++) {
 				pc[i][j] += svd -> v[k][j] * m[i][k];
 			}
@@ -917,12 +889,12 @@ void NUMdmatrix_into_principalComponents (double **m, long nrows, long ncols, lo
 void NUMpseudoInverse (double **y, long nr, long nc, double **yinv, double tolerance) {
 	autoSVD me = SVD_create_d (y, nr, nc);
 
-	(void) SVD_zeroSmallSingularValues (me.get(), tolerance);
+	(void) SVD_zeroSmallSingularValues (me.peek(), tolerance);
 	for (long i = 1; i <= nc; i++) {
 		for (long j = 1; j <= nr; j++) {
-			double s = 0.0;
+			double s = 0;
 			for (long k = 1; k <= nc; k++) {
-				if (my d[k] != 0.0) {
+				if (my d[k] != 0) {
 					s += my v[i][k] * my u[j][k] / my d[k];
 				}
 			}
@@ -943,8 +915,8 @@ void NUMsolveEquation (double **a, long nr, long nc, double *b, double tolerance
 	}
 
 	autoSVD me = SVD_create_d (a, nr, nc);
-	SVD_zeroSmallSingularValues (me.get(), tol);
-	SVD_solve (me.get(), b, result);
+	SVD_zeroSmallSingularValues (me.peek(), tol);
+	SVD_solve (me.peek(), b, result);
 }
 
 
@@ -959,14 +931,14 @@ void NUMsolveEquations (double **a, long nr, long nc, double **b, long ncb, doub
 	autoNUMvector<double> bt (1, nr + nc);
 	double *xt = & bt[nr];
 
-	SVD_zeroSmallSingularValues (me.get(), tol);
+	SVD_zeroSmallSingularValues (me.peek(), tol);
 
 	for (long k = 1; k <= ncb; k++) {
 		for (long j = 1; j <= nr; j++) {
 			bt[j] = b[j][k];
 		}
 
-		SVD_solve (me.get(), bt.peek(), xt);
+		SVD_solve (me.peek(), bt.peek(), xt);
 
 		for (long j = 1; j <= nc; j++) {
 			x[j][k] = xt[j];
@@ -976,14 +948,15 @@ void NUMsolveEquations (double **a, long nr, long nc, double **b, long ncb, doub
 
 
 void NUMsolveNonNegativeLeastSquaresRegression (double **m, long nr, long nc, double *d, double tol, long itermax, double *b) {
-	double difsq, difsqp = 0.0;
+	double difsq, difsqp = 0;
 
 	for (long iter = 1; iter <= itermax; iter++) {
-
-		// Fix all weights except b[j]
+		/*
+			Fix all weights except b[j]
+		*/
 
 		for (long j = 1; j <= nc; j++) {
-			double mjr = 0.0, mjmj = 0.0;
+			double mjr = 0, mjmj = 0;
 			for (long i = 1; i <= nr; i++) {
 				double ri = d[i], mij = m[i][j];
 				for (long l = 1; l <= nc; l++) {
@@ -995,14 +968,16 @@ void NUMsolveNonNegativeLeastSquaresRegression (double **m, long nr, long nc, do
 				mjmj += mij * mij;
 			}
 			b[j] = mjr / mjmj;
-			if (b[j] < 0.0) {
-				b[j] = 0.0;
+			if (b[j] < 0) {
+				b[j] = 0;
 			}
 		}
 
-		// Calculate t(b) and compare with previous result.
+		/*
+			Calculate t(b) and compare with previous result.
+		*/
 
-		difsq = 0.0;
+		difsq = 0;
 		for (long i = 1; i <= nr; i++) {
 			double dmb = d[i];
 			for (long j = 1; j <= nc; j++) {
@@ -1028,7 +1003,7 @@ struct nr_struct {
 
 static void nr_func (double x, double *f, double *df, void *data) {
 	struct nr_struct *me = (struct nr_struct *) data;
-	*f = *df = 0.0;
+	*f = *df = 0;
 	for (long i = 1; i <= 3; i++) {
 		double t1 = (my delta[i] - x);
 		double t2 = my y[i] / t1;
@@ -1074,19 +1049,19 @@ void NUMsolveConstrainedLSQuadraticRegression (double **o, const double d[], lon
 	if (info != 0) {
 		Melder_throw (U"dpotf2 fails.");
 	}
-	ftinv[1][2] = ftinv[1][3] = ftinv[2][3] = 0.0;
+	ftinv[1][2] = ftinv[1][3] = ftinv[2][3] = 0;
 
 	// Construct G and its eigen-decomposition (eq. (4,5))
 	// Sort eigenvalues (& eigenvectors) ascending.
 
-	b[3][1] = b[1][3] = -0.5; b[2][2] = 1.0;
+	b[3][1] = b[1][3] = -0.5; b[2][2] = 1;
 
 	// G = F^-1 B (F')^-1 (eq. 4)
 
 	for (long i = 1; i <= 3; i++) {
 		for (long j = 1; j <= 3; j++) {
 			for (long k = 1; k <= 3; k++) {
-				if (ftinv[k][i] != 0.0) {
+				if (ftinv[k][i] != 0) {
 					for (long l = 1; l <= 3; l++) {
 						g[i][j] += ftinv[k][i] * b[k][l] * ftinv[l][j];
 					}
@@ -1106,7 +1081,7 @@ void NUMsolveConstrainedLSQuadraticRegression (double **o, const double d[], lon
 
 	for (long i = 1; i <= 3; i++) {
 		for (long j = 1; j <= 3; j++) {
-			if (ftinv[i][j] != 0.0) {
+			if (ftinv[i][j] != 0) {
 				for (long k = 1; k <= 3; k++) {
 					ftinvp[i][k] += ftinv[i][j] * p[3 + 1 - j][k]; /* is sorted desc. */
 				}
@@ -1149,7 +1124,8 @@ void NUMsolveConstrainedLSQuadraticRegression (double **o, const double d[], lon
 		t1 = y[1] / (delta[1] - delta[2]);
 		t3 = y[3] / (delta[3] - delta[2]);
 		w[1] = t1 * delta[1];
-		if ( (delta[2] < delta[3] && (t2 = (t1 * t1 * delta[1] + t3 * t3 * delta[3])) < eps)) {
+		if ( (delta[2] < delta[3] &&
+		        (t2 = (t1 * t1 * delta[1] + t3 * t3 * delta[3])) < eps)) {
 			w[2] = sqrt (- delta[2] * t2); /* +- */
 			w[3] = t3 * delta[3];
 			NUMsolveEquation (ptfinv.peek(), 3, 3, w.peek(), 1e-6, chi.peek());
@@ -1157,7 +1133,8 @@ void NUMsolveConstrainedLSQuadraticRegression (double **o, const double d[], lon
 			if (fabs (chi[3] / chi[1]) < eps) {
 				NUMsolveEquation (ptfinvc.peek(), 3, 3, w.peek(), 1e-6, chi.peek());
 			}
-		} else if (((delta[2] < delta[3] + eps) || (delta[2] > delta[3] - eps)) && fabs (y[3]) < eps) {
+		} else if ( ( (delta[2] < delta[3] + eps) || (delta[2] > delta[3] - eps))
+		            && fabs (y[3]) < eps) {
 			// choose one value for w[2] from an infinite number
 
 			w[2] = w[1];
@@ -1212,13 +1189,13 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 	autoNUMvector<long> indx (1, m);
 
 	for (long j = 1; j <= m; j++) {
-		t[j] = 0.0;
+		t[j] = 0;
 	}
 
 	autoSVD svd = SVD_create_d (f, n, m);
 
-	if (alpha == 0.0) {
-		SVD_solve (svd.get(), phi, t);    // standard least squares
+	if (alpha == 0) {
+		SVD_solve (svd.peek(), phi, t);    // standard least squares
 	}
 
 
@@ -1263,7 +1240,7 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 	me.x = x.peek();
 	me.c = c.peek();
 
-	double xqsq = 0.0;
+	double xqsq = 0;
 	for (long j = m - q + 1; j <= m; j++) {
 		xqsq += x[j] * x[j];
 	}
@@ -1274,7 +1251,7 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 		r = m - q;
 		me.m = r;
 		nr2_func (c[m], &fm, &df, & me);
-		if (fm >= 0.0) { /* step 3.b1 */
+		if (fm >= 0) { /* step 3.b1 */
 			x[r + 1] = sqrt (fm);
 			for (long j = 1; j <= r; j++) {
 				x[j] /= c[j] - c[m];
@@ -1286,16 +1263,16 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 			}
 			return;
 		}
-		// else continue with r = m - q
+		/* else continue with r = m - q */
 	}
 
 	// step 3a & 3b2, determine interval lower bound for Newton-Raphson root finder
 
-	double xCx = 0.0;
+	double xCx = 0;
 	for (long j = 1; j <= r; j++) {
 		xCx += x[j] * x[j] / c[j];
 	}
-	double b0, bmin = delta > 0.0 ? - xCx / delta : -2.0 * sqrt (alpha * xCx);
+	double b0, bmin = delta > 0 ? - xCx / delta : -2 * sqrt (alpha * xCx);
 	double eps = (c[m] - bmin) * tol;
 
 	// find the root of d(psi(b)/db in interval (bmin, c[m])
@@ -1309,8 +1286,8 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 	}
 }
 
-void NUMProcrustes (double **x, double **y, long nPoints, long nDimensions, double **t, double v[], double *s) {
-	bool orthogonal = ! v || ! s; // else similarity transform
+void NUMProcrustes (double **x, double **y, long nPoints, long nDimensions, double **t, double *v, double *s) {
+	int orthogonal = v == 0 || s == 0; /* else similarity transform */
 
 	autoNUMmatrix<double> c (1, nDimensions, 1, nDimensions);
 	autoNUMmatrix<double> yc (1, nPoints, 1, nDimensions);
@@ -1338,12 +1315,12 @@ void NUMProcrustes (double **x, double **y, long nPoints, long nDimensions, doub
 	// 2. Decompose C by SVD:  C = PDQ' (SVD attribute is Q instead of Q'!)
 
 	autoSVD svd = SVD_create_d (c.peek(), nDimensions, nDimensions);
-	double trace = 0.0;
+	double trace = 0;
 	for (long i = 1; i <= nDimensions; i++) {
 		trace += svd -> d[i];
 	}
 
-	if (trace == 0.0) {
+	if (trace == 0) {
 		Melder_throw (U"NUMProcrustes: degenerate configuration(s).");
 	}
 
@@ -1351,7 +1328,7 @@ void NUMProcrustes (double **x, double **y, long nPoints, long nDimensions, doub
 
 	for (long i = 1; i <= nDimensions; i++) {
 		for (long j = 1; j <= nDimensions; j++) {
-			t[i][j] = 0.0;
+			t[i][j] = 0;
 			for (long k = 1; k <= nDimensions; k++) {
 				t[i][j] += svd -> v[i][k] * svd -> u[j][k];
 			}
@@ -1380,13 +1357,13 @@ void NUMProcrustes (double **x, double **y, long nPoints, long nDimensions, doub
 
 		// tr X'J YT == tr xc' yt
 
-		double traceXtJYT = 0.0;
+		double traceXtJYT = 0;
 		for (long i = 1; i <= nDimensions; i++) {
 			for (long j = 1; j <= nPoints; j++) {
 				traceXtJYT += xc[j][i] * yt[j][i];
 			}
 		}
-		double traceYtJY = 0.0;
+		double traceYtJY = 0;
 		for (long i = 1; i <= nDimensions; i++) {
 			for (long j = 1; j <= nPoints; j++) {
 				traceYtJY += y[j][i] * yc[j][i];
@@ -1419,7 +1396,7 @@ void NUMmspline (double knot[], long nKnots, long order, long i, double x, doubl
 	// First and last 'order' knots are equal, i.e.,
 	// knot[1] = ... = knot[order] && knot[nKnots-order+1] = ... knot[nKnots].
 
-	*y = 0.0;
+	*y = 0;
 	if (i > nSplines || order < 1) {
 		Melder_throw (U"Combination of order and index not correct.");
 	}
@@ -1448,7 +1425,7 @@ void NUMmspline (double knot[], long nKnots, long order, long i, double x, doubl
 		for (long j = i; j <= i + order - k; j++) {
 			double kj = knot[j], kjpk = knot[j + k];
 			if (kjpk > kj) {
-				m[j] = k * ((x - kj) * m[j] + (kjpk - x) * m[j + 1]) / ((k - 1) * (kjpk - kj));
+				m[j] = k * ( (x - kj) * m[j] + (kjpk - x) * m[j + 1]) / ( (k - 1) * (kjpk - kj));
 			}
 		}
 	}
@@ -1458,7 +1435,7 @@ void NUMmspline (double knot[], long nKnots, long order, long i, double x, doubl
 void NUMispline (double aknot[], long nKnots, long order, long i, double x, double *y) {
 	long j, orderp1 = order + 1;
 
-	*y = 0.0;
+	*y = 0;
 
 	for (j = orderp1; j <= nKnots - order; j++) {
 		if (x < aknot[j]) {
@@ -1470,7 +1447,7 @@ void NUMispline (double aknot[], long nKnots, long order, long i, double x, doub
 		return;
 	}
 	if (j > i + order || (j == nKnots - order && x == aknot[j])) {
-		*y = 1.0; return;
+		*y = 1; return;
 	}
 
 	// Equation 5 in Ramsay's article contains some errors!!!
@@ -1487,9 +1464,9 @@ void NUMispline (double aknot[], long nKnots, long order, long i, double x, doub
 }
 
 double NUMwilksLambda (double *lambda, long from, long to) {
-	double result = 1.0;
+	double result = 1;
 	for (long i = from; i <= to; i++) {
-		result /= (1.0 + lambda[i]);
+		result /= (1 + lambda[i]);
 	}
 	return result;
 }
@@ -1557,7 +1534,7 @@ void NUMnrbis (void (*f) (double x, double *fx, double *dfx, void *closure), dou
 				return;
 			}
 		}
-		tol = NUMfpp -> eps	* (*root == 0.0 ? 1.0 : fabs (*root));
+		tol = NUMfpp -> eps	* (*root == 0 ? 1 : fabs (*root));
 		if (fabs (dx) < tol) {
 			return;
 		}
@@ -1595,7 +1572,7 @@ double NUMridders (double (*f) (double x, void *closure), double x1, double x2,
 	if (f2 == NUMundefined) {
 		return NUMundefined;
 	}
-	if ( (f1 < 0.0 && f2 < 0.0) || (f1 > 0.0 && f2 > 0.0)) {
+	if ( (f1 < 0 && f2 < 0) || (f1 > 0 && f2 > 0)) {
 		Melder_warning (U"NUMridders: root must be bracketed.");
 		return NUMundefined;
 	}
@@ -1610,7 +1587,10 @@ double NUMridders (double (*f) (double x, void *closure), double x1, double x2,
 			return NUMundefined;
 		}
 
-		// New guess: x4 = x3 + (x3 - x1) * sign(f1 - f2) * f3 / sqrt(f3^2 - f1*f2)
+		/*
+			New guess:
+			x4 = x3 + (x3 - x1) * sign(f1 - f2) * f3 / sqrt(f3^2 - f1*f2)
+		*/
 
 		d = f3 * f3 - f1 * f2;
 		if (d < 0.0) {
@@ -1619,59 +1599,59 @@ double NUMridders (double (*f) (double x, void *closure), double x1, double x2,
 		}
 
 		if (d == 0.0) {
-			// pb test added because f1 f2 f3 may be 1e-170 or so
+			/* pb test added because f1 f2 f3 may be 1e-170 or so */
 			tol = NUMfpp -> eps * fabs (x3);
 			if (iter > 1 && fabs (x3 - root) < tol) {
 				return root;
 			}
 			root = x3;
-
-			// Perform bisection.
-
-			if (f1 > 0.0) { 
-				// falling curve: f1 > 0, f2 < 0 
+			/*
+			 * Perform bisection.
+			 */
+			if (f1 > 0.0) {
+				/* falling curve: f1 > 0, f2 < 0 */
 				if (f3 > 0.0) {
-					x1 = x3; f1 = f3;   // retain invariant: f1 > 0, f2 < 0
+					x1 = x3; f1 = f3;   /* retain invariant: f1 > 0, f2 < 0 */
 				} else {
-					// f3 <= 0.0
-					x2 = x3; f2 = f3;   // retain invariant: f1 > 0, f2 < 0
+					/* f3 < 0.0 */
+					x2 = x3; f2 = f3;   /* retain invariant: f1 > 0, f2 < 0 */
 				}
 			} else {
-				// rising curve: f1 < 0, f2 > 0 
+				/* rising curve: f1 < 0, f2 > 0 */
 				if (f3 > 0.0) {
-					x2 = x3; f2 = f3;   // retain invariant: f1 < 0, f2 > 0
+					x2 = x3; f2 = f3;   /* retain invariant: f1 < 0, f2 > 0 */
 				} else {
-					// f3 < 0.0
-					x1 = x3; f1 = f3;   // retain invariant: f1 < 0, f2 > 0
+					/* f3 < 0.0 */
+					x1 = x3; f1 = f3;   /* retain invariant: f1 < 0, f2 > 0 */
 				}
 			}
 		} else {
 			d = sqrt (d);
 			if (isnan (d)) {
-				// pb: square root of denormalized small number fails on some computers
+				/* pb: square root of denormalized small number fails on some computers */
 				tol = NUMfpp -> eps * fabs (x3);
 				if (iter > 1 && fabs (x3 - root) < tol) {
 					return root;
 				}
 				root = x3;
-
-				// Perform bisection.
-
+				/*
+				 * Perform bisection.
+				 */
 				if (f1 > 0.0) {
-					// falling curve: f1 > 0, f2 < 0
+					/* falling curve: f1 > 0, f2 < 0 */
 					if (f3 > 0.0) {
-						x1 = x3; f1 = f3;   // retain invariant: f1 > 0, f2 < 0
+						x1 = x3; f1 = f3;   /* retain invariant: f1 > 0, f2 < 0 */
 					} else {
-						// f3 <= 0.0
-						x2 = x3; f2 = f3;   // retain invariant: f1 > 0, f2 < 0
+						/* f3 < 0.0 */
+						x2 = x3; f2 = f3;   /* retain invariant: f1 > 0, f2 < 0 */
 					}
 				} else {
-					// rising curve: f1 < 0, f2 > 0
+					/* rising curve: f1 < 0, f2 > 0 */
 					if (f3 > 0.0) {
-						x2 = x3; f2 = f3;   // retain invariant: f1 < 0, f2 > 0
+						x2 = x3; f2 = f3;   /* retain invariant: f1 < 0, f2 > 0 */
 					} else {
-						// f3 < 0.0
-						x1 = x3; f1 = f3;   // retain invariant: f1 < 0, f2 > 0 */
+						/* f3 < 0.0 */
+						x1 = x3; f1 = f3;   /* retain invariant: f1 < 0, f2 > 0 */
 					}
 				}
 			} else {
@@ -1689,7 +1669,7 @@ double NUMridders (double (*f) (double x, void *closure), double x1, double x2,
 				if (f4 == NUMundefined) {
 					return NUMundefined;
 				}
-				if ((f1 > f2) == (d > 0.0) /* pb: instead of x3 < x4 */) {
+				if ( (f1 > f2) == (d > 0.0) /* pb: instead of x3 < x4 */) {
 					if (SIGN (f3, f4) != f3) {
 						x1 = x3; f1 = f3;
 						x2 = x4; f2 = f4;
@@ -1728,7 +1708,7 @@ double NUMlogNormalQ (double x, double zeta, double sigma) {
 }
 
 double NUMstudentP (double t, double df) {
-	if (df < 1.0) {
+	if (df < 1) {
 		return NUMundefined;
 	}
 	double ib = NUMincompleteBeta (0.5 * df, 0.5, df / (df + t * t));
@@ -1736,7 +1716,7 @@ double NUMstudentP (double t, double df) {
 		return NUMundefined;
 	}
 	ib *= 0.5;
-	return t < 0.0 ? ib : 1.0 - ib;
+	return t < 0 ? ib : 1 - ib;
 }
 
 double NUMstudentQ (double t, double df) {
@@ -1748,22 +1728,22 @@ double NUMstudentQ (double t, double df) {
 		return NUMundefined;
 	}
 	ib *= 0.5;
-	return t > 0.0 ? ib : 1.0 - ib;
+	return t > 0 ? ib : 1 - ib;
 }
 
 double NUMfisherP (double f, double df1, double df2) {
-	if (f < 0.0 || df1 < 1.0 || df2 < 1.0) {
+	if (f < 0 || df1 < 1 || df2 < 1) {
 		return NUMundefined;
 	}
 	double ib = NUMincompleteBeta (0.5 * df2, 0.5 * df1, df2 / (df2 + f * df1));
 	if (ib == NUMundefined) {
 		return NUMundefined;
 	}
-	return 1.0 - ib;
+	return 1 - ib;
 }
 
 double NUMfisherQ (double f, double df1, double df2) {
-	if (f < 0.0 || df1 < 1.0 || df2 < 1.0) {
+	if (f < 0 || df1 < 1 || df2 < 1) {
 		return NUMundefined;
 	}
 	if (Melder_debug == 28) {
@@ -1779,11 +1759,11 @@ double NUMfisherQ (double f, double df1, double df2) {
 
 double NUMinvGaussQ (double p) {
 	double pc = p;
-	if (p <= 0.0 || p >= 1.0) {
+	if (p <= 0 || p >= 1.0) {
 		return NUMundefined;
 	}
 	if (p > 0.5) {
-		pc = 1.0 - p;
+		pc = 1 - p;
 	}
 	double t = sqrt (- 2.0 * log (pc));
 	t -= (2.515517 + (0.802853 + 0.010328 * t) * t) /
@@ -1799,15 +1779,15 @@ static double studentQ_func (double x, void *voidParams) {
 
 double NUMinvStudentQ (double p, double df) {
 	struct pdf1_struct params;
-	double pc = p > 0.5 ? 1.0 - p : p, xmin, xmax = 1.0, x;
+	double pc = p > 0.5 ? 1 - p : p, xmin, xmax = 1, x;
 
-	if (p < 0.0 || p >= 1.0) {
+	if (p < 0 || p >= 1) {
 		return NUMundefined;
 	}
 
-
-	// Bracket the function f(x) = NUMstudentQ (x, df) - p.
-
+	/*
+		Bracket the function f(x) = NUMstudentQ (x, df) - p.
+	*/
 	for (;;) {
 		double q = NUMstudentQ (xmax, df);
 		if (q == NUMundefined) {
@@ -1816,13 +1796,14 @@ double NUMinvStudentQ (double p, double df) {
 		if (q < pc) {
 			break;
 		}
-		xmax *= 2.0;
+		xmax *= 2;
 	}
 
-	xmin = xmax > 1.0 ? xmax / 2.0 : 0.0;
-
-	// Find zero of f(x) with Ridders' method.
+	xmin = xmax > 1 ? xmax / 2 : 0;
 
+	/*
+		Find zero of f(x) with Ridders' method.
+	*/
 	params. df = df;
 	params. p = pc;
 	x = NUMridders (studentQ_func, xmin, xmax, & params);
@@ -1843,12 +1824,13 @@ double NUMinvChiSquareQ (double p, double df) {
 	struct pdf1_struct params;
 	double xmin, xmax = 1;
 
-	if (p < 0.0 || p >= 1.0) {
+	if (p < 0 || p >= 1) {
 		return NUMundefined;
 	}
 
-	// Bracket the function f(x) = NUMchiSquareQ (x, df) - p.
-
+	/*
+		Bracket the function f(x) = NUMchiSquareQ (x, df) - p.
+	*/
 	for (;;) {
 		double q = NUMchiSquareQ (xmax, df);
 		if (q == NUMundefined) {
@@ -1857,12 +1839,13 @@ double NUMinvChiSquareQ (double p, double df) {
 		if (q < p) {
 			break;
 		}
-		xmax *= 2.0;
+		xmax *= 2;
 	}
-	xmin = xmax > 1.0 ? xmax / 2.0 : 0.0;
-
-	// Find zero of f(x) with Ridders' method.
+	xmin = xmax > 1 ? xmax / 2 : 0;
 
+	/*
+		Find zero of f(x) with Ridders' method.
+	*/
 	params. df = df;
 	params. p = p;
 	return NUMridders (chiSquareQ_func, xmin, xmax, & params);
@@ -1875,7 +1858,7 @@ static double fisherQ_func (double x, void *voidParams) {
 }
 
 double NUMinvFisherQ (double p, double df1, double df2) {
-	if (p <= 0.0 || p > 1.0 || df1 < 1.0 || df2 < 1.0) {
+	if (p <= 0.0 || p > 1.0 || df1 < 1 || df2 < 1) {
 		return NUMundefined;
 	}
 	if (Melder_debug == 29) {
@@ -1921,12 +1904,12 @@ double NUMlnBeta (double a, double b) {
 
 double NUMnormalityTest_HenzeZirkler (double **data, long n, long p, double *beta, double *tnb, double *lnmu, double *lnvar) {
 	if (*beta <= 0) {
-		*beta = (1.0 / sqrt (2.0)) * pow ((1.0 + 2 * p) / 4.0, 1.0 / (p + 4)) * pow (n, 1.0 / (p + 4));
+		*beta = (1.0 / sqrt (2)) * pow ( (1.0 + 2 * p) / 4, 1.0 / (p + 4)) * pow (n, 1.0 / (p + 4));
 	}
 	double p2 = p / 2.0;
 	double beta2 = *beta * *beta, beta4 = beta2 * beta2, beta8 = beta4 * beta4;
-	double gamma = 1.0 + 2.0 * beta2, gamma2 = gamma * gamma, gamma4 = gamma2 * gamma2;
-	double delta = 1.0 + beta2 * (4.0 + 3.0 * beta2), delta2 = delta * delta;
+	double gamma = 1 + 2 * beta2, gamma2 = gamma * gamma, gamma4 = gamma2 * gamma2;
+	double delta = 1.0 + beta2 * (4 + 3 * beta2), delta2 = delta * delta;
 	double prob = NUMundefined;
 
 	*tnb = *lnmu = *lnvar = NUMundefined;
@@ -1945,8 +1928,8 @@ double NUMnormalityTest_HenzeZirkler (double **data, long n, long p, double *bet
 
 	try {
 		NUMlowerCholeskyInverse (covar.peek(), p, NULL);
-		double djk, djj, sumjk = 0.0, sumj = 0.0;
-		double b1 = beta2 / 2.0, b2 = b1 / (1.0 + beta2);
+		double djk, djj, sumjk = 0, sumj = 0;
+		double b1 = beta2 / 2, b2 = b1 / (1.0 + beta2);
 		/* Heinze & Wagner (1997), page 3
 			We use d[j][k] = ||Y[j]-Y[k]||^2 = (Y[j]-Y[k])'S^(-1)(Y[j]-Y[k])
 			So d[j][k]= d[k][j] and d[j][j] = 0
@@ -1954,22 +1937,22 @@ double NUMnormalityTest_HenzeZirkler (double **data, long n, long p, double *bet
 		for (long j = 1; j <= n; j++) {
 			for (long k = 1; k < j; k++) {
 				djk = NUMmahalanobisDistance_chi (covar.peek(), x[j], x[k], p, p);
-				sumjk += 2.0 * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
+				sumjk += 2 * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
 			}
-			sumjk += 1.0; // for k == j
+			sumjk += 1; // for k == j
 			djj = NUMmahalanobisDistance_chi (covar.peek(), x[j], zero.peek(), p, p);
 			sumj += exp (-b2 * djj);
 		}
 		*tnb = (1.0 / n) * sumjk - 2.0 * pow (1.0 + beta2, - p2) * sumj + n * pow (gamma, - p2); // n *
 	} catch (MelderError) {
 		Melder_clearError ();
-		*tnb = 4.0 * n;
+		*tnb = 4 * n;
 	}
 
-	double mu = 1.0 - pow (gamma, -p2) * (1.0 + p * beta2 / gamma + p * (p + 2) * beta4 / (2.0 * gamma2));
-	double var = 2.0 * pow (1.0 + 4.0 * beta2, -p2)
-	     + 2.0 * pow (gamma,  -p) * (1.0 + 2.0 * p * beta4 / gamma2  + 3.0 * p * (p + 2) * beta8 / (4.0 * gamma4))
-	     - 4.0 * pow (delta, -p2) * (1.0 + 3.0 * p * beta4 / (2.0 * delta) + p * (p + 2) * beta8 / (2.0 * delta2));
+	double mu = 1.0 - pow (gamma, -p2) * (1.0 + p * beta2 / gamma + p * (p + 2) * beta4 / (2 * gamma2));
+	double var = 2.0 * pow (1 + 4 * beta2, -p2)
+	             + 2.0 * pow (gamma,  -p) * (1.0 + 2 * p * beta4 / gamma2  + 3 * p * (p + 2) * beta8 / (4 * gamma4))
+	             - 4.0 * pow (delta, -p2) * (1.0 + 3 * p * beta4 / (2 * delta) + p * (p + 2) * beta8 / (2 * delta2));
 	double mu2 = mu * mu;
 	*lnmu = log (sqrt (mu2 * mu2 / (mu2 + var)));
 	*lnvar = sqrt (log ( (mu2 + var) / mu2));
@@ -1980,45 +1963,45 @@ double NUMnormalityTest_HenzeZirkler (double **data, long n, long p, double *bet
 /*************** Hz <--> other freq reps *********************/
 
 double NUMmelToHertz3 (double mel) {
-	if (mel < 0.0) {
+	if (mel < 0) {
 		return NUMundefined;
 	}
-	return mel < 1000.0 ? mel : 1000.0 * (exp (mel * log10 (2.0) / 1000.0) - 1.0);
+	return mel < 1000 ? mel : 1000 * (exp (mel * log10 (2) / 1000) - 1);
 }
 
 double NUMhertzToMel3 (double hz) {
-	if (hz < 0.0) {
+	if (hz < 0) {
 		return NUMundefined;
 	}
-	return hz < 1000.0 ? hz : 1000.0 * log10 (1.0 + hz / 1000.0) / log10 (2.0);
+	return hz < 1000 ? hz : 1000 * log10 (1 + hz / 1000) / log10 (2);
 }
 
 double NUMmelToHertz2 (double mel) {
-	if (mel < 0.0) {
+	if (mel < 0) {
 		return NUMundefined;
 	}
-	return 700.0 * (pow (10.0, mel / 2595.0) - 1.0);
+	return 700 * (pow (10.0, mel / 2595.0) - 1);
 }
 
 double NUMhertzToMel2 (double hz) {
-	if (hz < 0.0) {
+	if (hz < 0) {
 		return NUMundefined;
 	}
-	return 2595.0 * log10 (1.0 + hz / 700.0);
+	return 2595 * log10 (1 + hz / 700);
 }
 
 double NUMhertzToBark_traunmueller (double hz) {
-	if (hz < 0.0) {
+	if (hz < 0) {
 		return NUMundefined;
 	}
-	return 26.81 * hz / (1960.0 + hz) - 0.53;
+	return 26.81 * hz / (1960 + hz) - 0.53;
 }
 
 double NUMbarkToHertz_traunmueller (double bark) {
-	if (bark < 0.0 || bark > 26.28) {
+	if (bark < 0 || bark > 26.28) {
 		return NUMundefined;
 	}
-	return 1960.0 * (bark + 0.53) / (26.28 - bark);
+	return 1960 * (bark + 0.53) / (26.28 - bark);
 }
 
 double NUMbarkToHertz_schroeder (double bark) {
@@ -2026,22 +2009,23 @@ double NUMbarkToHertz_schroeder (double bark) {
 }
 
 double NUMbarkToHertz_zwickerterhardt (double hz) {
-	if (hz < 0.0) {
+	if (hz < 0) {
 		return NUMundefined;
 	}
-	return 13.0 * atan (0.00076 * hz) + 3.5 * atan (hz / 7500.0);
+	return 13 * atan (0.00076 * hz) + 3.5 * atan (hz / 7500);
 }
 
 double NUMhertzToBark_schroeder (double hz) {
-	if (hz < 0.0) {
+	double h650;
+	if (hz < 0) {
 		return NUMundefined;
 	}
-	double h650 = hz / 650.0;
-	return 7.0 * log (h650 + sqrt (1.0 + h650 * h650));
+	h650 = hz / 650;
+	return 7.0 * log (h650 + sqrt (1 + h650 * h650));
 }
 
 double NUMbarkToHertz2 (double bark) {
-	if (bark < 0.0) {
+	if (bark < 0) {
 		return NUMundefined;
 	}
 	return 650.0 * sinh (bark / 7.0);
@@ -2051,22 +2035,22 @@ double NUMhertzToBark2 (double hz) {
 	if (hz < 0) {
 		return NUMundefined;
 	}
-	double h650 = hz / 650.0;
-	return 7.0 * log (h650 + sqrt (1.0 + h650 * h650));
+	double h650 = hz / 650;
+	return 7.0 * log (h650 + sqrt (1 + h650 * h650));
 }
 
 double NUMbladonlindblomfilter_amplitude (double zc, double z) {
 	double dz = zc - z + 0.474;
-	return pow (10.0, 1.581 + 0.75 * dz - 1.75 * sqrt (1.0 + dz * dz));
+	return pow (10, 1.581 + 0.75 * dz - 1.75 * sqrt (1 + dz * dz));
 }
 
 double NUMsekeyhansonfilter_amplitude (double zc, double z) {
 	double dz = zc - z - 0.215;
-	return pow (10.0, 0.7 - 0.75 * dz - 1.75 * sqrt (0.196 + dz * dz));
+	return pow (10, 0.7 - 0.75 * dz - 1.75 * sqrt (0.196 + dz * dz));
 }
 
 double NUMtriangularfilter_amplitude (double fl, double fc, double fh, double f) {
-	double a = 0.0;
+	double a = 0;
 	if (f > fl && f < fh) {
 		a = f < fc ? (f - fl) / (fc - fl) : (fh - f) / (fh - fc);
 
@@ -2091,7 +2075,7 @@ for (i=1; i<=n+n+n; i++) work[i]=0;
 */
 int NUMburg (double x[], long n, double a[], int m, double *xms) {
 	for (long j = 1; j <= m; j++) {
-		a[j] = 0.0;
+		a[j] = 0;
 	}
 
 	autoNUMvector<double> b1 (1, n);
@@ -2106,7 +2090,7 @@ int NUMburg (double x[], long n, double a[], int m, double *xms) {
 	}
 
 	*xms = p / n;
-	if (*xms <= 0.0) {
+	if (*xms <= 0) {
 		return 0;    // warning empty
 	}
 
@@ -2127,7 +2111,7 @@ int NUMburg (double x[], long n, double a[], int m, double *xms) {
 			denum += b1[j] * b1[j] + b2[j] * b2[j];
 		}
 
-		if (denum <= 0.0) {
+		if (denum <= 0) {
 			return 0;    // warning ill-conditioned
 		}
 
@@ -2160,7 +2144,7 @@ int NUMburg (double x[], long n, double a[], int m, double *xms) {
 }
 
 void NUMdmatrix_to_dBs (double **m, long rb, long re, long cb, long ce, double ref, double factor, double floor) {
-	double ref_db, factor10 = factor * 10.0;
+	double ref_db, factor10 = factor * 10;
 	double max = m[rb][cb], min = max;
 
 	Melder_assert (ref > 0 && factor > 0 && rb <= re && cb <= ce);
@@ -2183,7 +2167,7 @@ void NUMdmatrix_to_dBs (double **m, long rb, long re, long cb, long ce, double r
 	for (long i = rb; i <= re; i++) {
 		for (long j = cb; j <= ce; j++) {
 			double mij = floor;
-			if (m[i][j] > 0.0) {
+			if (m[i][j] > 0) {
 				mij = factor10 * log10 (m[i][j]) - ref_db;
 				if (mij < floor) {
 					mij = floor;
@@ -2206,7 +2190,8 @@ double **NUMcosinesTable (long first, long last, long npoints) {
 	return m.transfer();
 }
 
-void NUMspline (double x[], double y[], long n, double yp1, double ypn, double y2[]) {
+void NUMspline (double x[], double y[], long n, double yp1, double ypn,
+                double y2[]) {
 	autoNUMvector<double> u (1, n - 1);
 
 	if (yp1 > 0.99e30) {
@@ -2277,7 +2262,7 @@ int NUMdoLineSegmentsIntersect (double x1, double y1, double x2, double y2, doub
 	int o12 = NUMgetOrientationOfPoints (x1, y1, x2, y2, x4, y4);
 	int o21 = NUMgetOrientationOfPoints (x3, y3, x4, y4, x1, y1);
 	int o22 = NUMgetOrientationOfPoints (x3, y3, x4, y4, x2, y2);
-	return ((o11 * o12 < 0) && (o21 * o22 < 0)) || (o11 *o12 *o21 *o22 == 0);
+	return ( (o11 * o12 < 0) && (o21 * o22 < 0)) || (o11 *o12 *o21 *o22 == 0);
 }
 
 int NUMgetOrientationOfPoints (double x1, double y1, double x2, double y2, double x3, double y3) {
@@ -2289,9 +2274,9 @@ int NUMgetOrientationOfPoints (double x1, double y1, double x2, double y2, doubl
 	} else if (dx2 * dy3 < dy2 * dx3) {
 		orientation = -1;
 	} else {
-		if ((dx2 * dx3 < 0) || (dy2 * dy3 < 0)) {
+		if ( (dx2 * dx3 < 0) || (dy2 * dy3 < 0)) {
 			orientation = -1;
-		} else if ((dx2 * dx2 + dy2 * dy2) >= (dx3 * dx3 + dy3 * dy3)) {
+		} else if ( (dx2 * dx2 + dy2 * dy2) >= (dx3 * dx3 + dy3 * dy3)) {
 			orientation = 0;
 		} else {
 			orientation = 1;
@@ -2340,7 +2325,7 @@ int NUMgetIntersectionsWithRectangle (double x1, double y1, double x2, double y2
 	for (long i = 1; i <= 4; i++) {
 		double denom = (x[i + 1] - x[i]) * (y2 - y1) - (y[i + 1] - y[i]) * (x2 - x1);
 		double s, t, x3, y3;
-		if (denom == 0.0) {
+		if (denom == 0) {
 			continue;
 		}
 		/* We have an intersection. */
@@ -2511,14 +2496,16 @@ void NUMgetEllipseBoundingBox (double a, double b, double cospsi, double *width,
 	Melder_assert (cospsi >= -1 && cospsi <= 1);
 
 	if (cospsi == 1) {
-
-		// a-axis along x-axis
+		/*
+			a-axis along x-axis
+		*/
 
 		*width = a;
 		*height = b;
 	} else if (cospsi == 0) {
-
-		// a-axis along y-axis
+		/*
+			a-axis along y-axis
+		*/
 
 		*width = b;
 		*height = a;
@@ -2534,7 +2521,8 @@ void NUMgetEllipseBoundingBox (double a, double b, double cospsi, double *width,
 /*
 Closely modelled after the netlib code by Oleg Keselyov.
 */
-double NUMminimize_brent (double (*f) (double x, void *closure), double a, double b, void *closure, double tol, double *fx) {
+double NUMminimize_brent (double (*f) (double x, void *closure), double a, double b,
+                          void *closure, double tol, double *fx) {
 	double x, v, fv, w, fw;
 	const double golden = 1 - NUM_goldenSection;
 	const double sqrt_epsilon = sqrt (NUMfpp -> eps);
@@ -2551,19 +2539,22 @@ double NUMminimize_brent (double (*f) (double x, void *closure), double a, doubl
 
 	for (long iter = 1; iter <= itermax; iter++) {
 		double range = b - a;
-		double middle_range = (a + b) / 2.0;
-		double tol_act = sqrt_epsilon * fabs (x) + tol / 3.0;
+		double middle_range = (a + b) / 2;
+		double tol_act = sqrt_epsilon * fabs (x) + tol / 3;
 		double new_step; /* Step at this iteration */
 
-		if (fabs (x - middle_range) + range / 2.0 <= 2.0 * tol_act) {
+
+
+		if (fabs (x - middle_range) + range / 2 <= 2 * tol_act) {
 			return x;
 		}
 
-		// Obtain the golden section step
+		/* Obtain the golden section step */
 
 		new_step = golden * (x < middle_range ? b - x : a - x);
 
-		// Decide if the parabolic interpolation can be tried
+
+		/* Decide if the parabolic interpolation can be tried	*/
 
 		if (fabs (x - w) >= tol_act) {
 			/*
@@ -2571,12 +2562,14 @@ double NUMminimize_brent (double (*f) (double x, void *closure), double a, doubl
 				division operation is delayed until last moment.
 			*/
 
-			double t = (x - w) * (*fx - fv);
-			double q = (x - v) * (*fx - fw);
-			double p = (x - v) * q - (x - w) * t;
-			q = 2.0 * (q - t);
+			double p, q, t;
+
+			t = (x - w) * (*fx - fv);
+			q = (x - v) * (*fx - fw);
+			p = (x - v) * q - (x - w) * t;
+			q = 2 * (q - t);
 
-			if (q > 0.0) {
+			if (q > 0) {
 				p = -p;
 			} else {
 				q = -q;
@@ -2590,22 +2583,22 @@ double NUMminimize_brent (double (*f) (double x, void *closure), double a, doubl
 			*/
 
 			if (fabs (p) < fabs (new_step * q) &&
-			        p > q * (a - x + 2.0 * tol_act) &&
-			        p < q * (b - x - 2.0 * tol_act)) {
+			        p > q * (a - x + 2 * tol_act) &&
+			        p < q * (b - x - 2 * tol_act)) {
 				new_step = p / q;
 			}
 		}
 
-		// Adjust the step to be not less than tolerance.
+		/* Adjust the step to be not less than tolerance. */
 
 		if (fabs (new_step) < tol_act) {
-			new_step = new_step > 0.0 ? tol_act : - tol_act;
+			new_step = new_step > 0 ? tol_act : - tol_act;
 		}
 
-		// Obtain the next approximation to min	and reduce the enveloping range
+		/* Obtain the next approximation to min	and reduce the enveloping range */
 
 		{
-			double t = x + new_step;	// Tentative point for the min
+			double t = x + new_step;	/* Tentative point for the min	*/
 			double ft = (*f) (t, closure);
 
 			/*
@@ -2659,7 +2652,7 @@ long NUMgetIndexFromProbability (double *probs, long nprobs, double p) {
 
 // straight line fitting
 
-void NUMlineFit_theil (double *x, double *y, long numberOfPoints, double *p_m, double *p_intercept, bool incompleteMethod) {
+void NUMlineFit_theil (double *x, double *y, long numberOfPoints, double *m, double *intercept, bool incompleteMethod) {
 	try {
 		/* Theil's incomplete method:
 		 * Split (x[i],y[i]) as
@@ -2668,15 +2661,14 @@ void NUMlineFit_theil (double *x, double *y, long numberOfPoints, double *p_m, d
 		 * m = median (m[i])
 		 * b = median(y[i]-m*x[i])
 		 */
-		double m, intercept;
 		if (numberOfPoints <= 0) {
-			m = intercept = NUMundefined;
+			*m = *intercept = NUMundefined;
 		} else if (numberOfPoints == 1) {
-			intercept = y[1];
-			m = 0;
+			*intercept = y[1];
+			*m = 0;
 		} else if (numberOfPoints == 2) {
-			m = (y[2] - y[1]) / (x[2] - x[1]);
-			intercept = y[1] - m * x[1];
+			*m = (y[2] - y[1]) / (x[2] - x[1]);
+			*intercept = y[1] - *m * x[1];
 		} else {
 			long numberOfCombinations;
 			autoNUMvector<double> mbs;
@@ -2698,45 +2690,35 @@ void NUMlineFit_theil (double *x, double *y, long numberOfPoints, double *p_m, d
 				}
 			}
 			NUMsort_d (numberOfCombinations, mbs.peek());
-			m = NUMquantile (numberOfCombinations, mbs.peek(), 0.5);
+			*m = NUMquantile (numberOfCombinations, mbs.peek(), 0.5);
 			for (long i = 1; i <= numberOfPoints; i++) {
-				mbs[i] = y[i] - m * x[i];
+				mbs[i] = y[i] - *m * x[i];
 			}
 			NUMsort_d (numberOfPoints, mbs.peek());
-			intercept = NUMquantile (numberOfPoints, mbs.peek(), 0.5);
-		}
-		if (p_m) {
-			*p_m = m;
-		}
-		if (p_intercept) {
-			*p_intercept = intercept;
+			*intercept = NUMquantile (numberOfPoints, mbs.peek(), 0.5);
 		}
 	} catch (MelderError) {
 		Melder_throw (U"No line fit (Theil's method)");
 	}
 }
 
-void NUMlineFit_LS (double *x, double *y, long numberOfPoints, double *p_m, double *intercept) {
-	double sx = 0.0, sy = 0.0;
+void NUMlineFit_LS (double *x, double *y, long numberOfPoints, double *m, double *intercept) {
+	double sx = 0, sy = 0;
 	for (long i = 1; i <= numberOfPoints; i++) {
 		sx += x[i];
 		sy += y[i];
 	}
 	double xmean = sx / numberOfPoints;
-	double st2 = 0.0, m = 0.0;
+	double st2 = 0, a = 0;
 	for (long i = 1; i <= numberOfPoints; i++) {
 		double t = x[i] - xmean;
 		st2 += t * t;
-		m += t * y[i];
-	}
-	// y = m*x + b
-	m /= st2;
-	if (intercept) {
-		*intercept = (sy - m * sx) / numberOfPoints;
-	}
-	if (p_m) {
-		*p_m = m;
+		a += t * y[i];
 	}
+	// y = a*x + b
+	a /= st2;
+	*intercept = (sy - a * sx) / numberOfPoints;
+	*m = a;
 }
 
 void NUMlineFit (double *x, double *y, long numberOfPoints, double *m, double *intercept, int method) {
@@ -2808,7 +2790,7 @@ void NUMlpc_lpc_to_rc2 (double *lpc, long m, double *rc) { // klopt nog niet
 		long jb = m + 1 - j;
 		long mh = (jb + 1) / 2;
 		double rct = rc[jb+1];
-		double d = 1.0 - rct * rct;
+		double d = 1 - rct * rct;
 		for (long k = 1; k <= mh; k++) {
 			rc[k] *= (1 - rct) / d;
 		}
@@ -2818,7 +2800,7 @@ void NUMlpc_lpc_to_rc2 (double *lpc, long m, double *rc) { // klopt nog niet
 void NUMlpc_rc_to_area (double *rc, long m, double *area) {
 	area[m+1] = 0.0001; /* 1.0 cm^2 */
 	for (long j = 1; j <= m; j++) {
-		double ar = (1.0 - rc[m+1-j]) / (1.0 + rc[m+1-j]);
+		double ar = (1 - rc[m+1-j]) / (1 + rc[m+1-j]);
 		area[m+1-j] = area[m+2-j] / ar;
 	}
 }
@@ -2827,7 +2809,7 @@ void NUMlpc_rc_to_area (double *rc, long m, double *area) {
 void NUMlpc_area_to_rc (double *area, long m, double *rc) {
 	for (long j = 1; j <= m - 1; j++) {
 		double ar = area[j+1] / area[j];
-		rc[j] = (1.0 - ar) / (1.0 + ar);
+		rc[j] = (1 - ar) / (1 + ar);
 	}
 }
 
@@ -2887,7 +2869,7 @@ inline static double Stirling (double y1)
 // djmw 20121211 replaced calls to gsl_rng_uniform with NUMrandomUniform (0,1)
 
 long NUMrandomBinomial (double p, long n) {
-	if (p < 0.0 || p > 1.0 || n < 0) {
+	if (p < 0 || p > 1 || n < 0) {
 		return -100000000;
 	}
 	long ix;                       /* return value */
@@ -2901,7 +2883,7 @@ long NUMrandomBinomial (double p, long n) {
 		flipped = 1;
 	}
 
-	double q = 1.0 - p;
+	double q = 1 - p;
 	double s = p / q;
 	double np = n * p;
 
@@ -2920,7 +2902,7 @@ long NUMrandomBinomial (double p, long n) {
 			*/
 
 			double f = f0;
-			double u = NUMrandomUniform (0.0, 1.0); //djmw gsl_rng_uniform (rng);
+			double u = NUMrandomUniform (0, 1); //djmw gsl_rng_uniform (rng);
 
 			for (ix = 0; ix <= BINV_CUTOFF; ++ix) {
 				if (u < f) {
@@ -2928,7 +2910,7 @@ long NUMrandomBinomial (double p, long n) {
 				}
 				u -= f;
 				/* Use recursion f(x+1) = f(x)*[(n-x)/(x+1)]*[p/(1-p)] */
-				f *= s * (n - ix) / (ix + 1.0);
+				f *= s * (n - ix) / (ix + 1);
 			}
 
 			/* It should be the case that the 'goto Finish' was encountered
@@ -2996,8 +2978,8 @@ long NUMrandomBinomial (double p, long n) {
 TryAgain:
 
 		/* generate random variates, u specifies which region: Tri, Par, Tail */
-		u = p4 * NUMrandomUniform (0.0, 1.0); // djmw gsl_rng_uniform (rng) * p4;
-		v = NUMrandomUniform (0.0, 1.0); // djmw gsl_rng_uniform (rng);
+		u = p4 * NUMrandomUniform (0, 1); // djmw gsl_rng_uniform (rng) * p4;
+		v = NUMrandomUniform (0, 1); // djmw gsl_rng_uniform (rng);
 
 		if (u <= p1) {
 			/* Triangular region */
@@ -3144,57 +3126,4 @@ Finish:
   	return (flipped) ? (n - ix) : ix;
 }
 
-void NUMlngamma_complex (double zr, double zi, double *lnr, double *arg) {
-	double ln_re = NUMundefined, ln_arg = NUMundefined;
-	gsl_sf_result gsl_lnr, gsl_arg;
-	if (gsl_sf_lngamma_complex_e (zr, zi, & gsl_lnr, & gsl_arg)) {
-		ln_re = gsl_lnr.val; ln_arg = gsl_arg.val;
-	}
-	if (lnr) {
-		*lnr = ln_re;
-	}
-	if (arg) {
-		*arg = ln_arg;
-	}
-}
-
-bool NUMdmatrix_hasFiniteElements (double **m, long row1, long row2, long col1, long col2) {
-	for (long i = row1; i <= row2; i ++) {
-		for (long j = col1; j <= col2; j ++) {
-			if (! isfinite (m [i] [j])) {
-				return false;
-			}
-		}
-	}
-	return true;
-}
-
-void NUMdmatrix_diagnoseCells (double **m, long rb, long re, long cb, long ce, long maximumNumberOfPositionsToReport) {
-	long numberOfInvalids = 0;
-	bool firstTime = true;
-	for (long i = rb; i <= re; i++) {
-		for (long j = cb; j <= ce; j++) {
-			if (! isfinite (m [i][j])) {
-				numberOfInvalids ++;
-				if (firstTime) {
-					MelderInfo_writeLine (U"Invalid data at the following [row] [column] positions:");
-					firstTime = false;
-				}
-				if (numberOfInvalids <= maximumNumberOfPositionsToReport) {
-					if (numberOfInvalids % 10 != 0) {
-						MelderInfo_write (U"[", i, U"][", j, U"]  ");
-					} else {
-						MelderInfo_writeLine (U"[", i, U"][", j, U"]");
-					}
-				} else {
-					return;
-				}
-			}
-		}
-	}
-	if (numberOfInvalids == 0) {
-		MelderInfo_writeLine (U"All cells have valid data.");
-	}
-}
-
 /* End of file NUM2.cpp */
diff --git a/dwsys/NUM2.h b/dwsys/NUM2.h
index 073bd44..74e57f3 100644
--- a/dwsys/NUM2.h
+++ b/dwsys/NUM2.h
@@ -2,7 +2,7 @@
 #define _NUM2_h_
 /* NUM2.h
  *
- * Copyright (C) 1997-2016 David Weenink
+ * Copyright (C) 1997-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,9 +39,7 @@ int NUMstrcmp (const char *s1, const char *s2);
 */
 
 int NUMstring_containsPrintableCharacter (const char32 *s);
-
 void NUMstring_chopWhiteSpaceAtExtremes_inline (char32 *string);
-
 double *NUMstring_to_numbers (const char32 *s, long *numbers_found);
 /* return array with the number of numbers found */
 
@@ -53,14 +51,11 @@ double *NUMstring_to_numbers (const char32 *s, long *numbers_found);
 long *NUMstring_getElementsOfRanges (const char32 *ranges, long maximumElement, long *numberOfElements, long *numberOfMultiples, const char32 *elementType, bool sortedUniques);
 
 char32 * NUMstring_timeNoDot (double time);
-
 int NUMstrings_equal (const char32 **s1, const char32 **s2, long lo, long hi);
-
 void NUMstrings_copyElements (char32 **from, char32**to, long lo, long hi);
-
 void NUMstrings_free (char32 **s, long lo, long hi);
-
-int NUMstrings_setSequentialNumbering (char32 **s, long lo, long hi, const char32 *precursor, long number, long increment, int asArray);
+int NUMstrings_setSequentialNumbering (char32 **s, long lo, long hi,
+	const char32 *precursor, long number, long increment, int asArray);
 /*
 	Set s[lo]   = precursor<number>
 	    s[lo+1] = precursor<number+1>
@@ -130,12 +125,6 @@ void NUMdmatrix_printMatlabForm (double **m, long nr, long nc, const char32 *nam
 	7, 8, 9];
 */
 
-bool NUMdmatrix_hasFiniteElements (double **m, long row1, long row2, long col1, long col2);
-/* true if all the elements are finite i.e. not plus or minus infinity, and not NaN */
-
-void NUMdmatrix_diagnoseCells (double **m, long rb, long re, long cb, long ce, long maximumNumberOfPositionsToReport);
-/* which cells are not finite? */
-
 double **NUMdmatrix_transpose (double **m, long nr, long nc);
 /*
 	Transpose a nr x nc matrix.
@@ -149,38 +138,29 @@ double **NUMdmatrix_transpose (double **m, long nr, long nc);
  *     lo and hi must be valid indices in the array.
 */
 template <class T>
-void NUMvector_extrema (T *v, long lo, long hi, double *p_min, double *p_max) {
-    T min = v[lo];
-    T max = min;
+void NUMvector_extrema (T *v, long lo, long hi, double *min, double *max) {
+    T tmin = v[lo];
+    T tmax = tmin;
     for (long i = lo + 1; i <= hi; i++)
     {
-        if (v[i] < min) min = v[i];
-        else if (v[i] > max) max = v[i];
+        if (v[i] < tmin) tmin = v[i];
+        else if (v[i] > tmax) tmax = v[i];
     }
-    if (p_min) {
-		*p_min = min;
-	}
-	if (p_max) {
-		*p_max = max;
-	}
+    *min = tmin; *max = tmax;
 }
 
 template <class T>
-void NUMmatrix_extrema (T **x, long rb, long re, long cb, long ce, double *p_min, double *p_max) {
-    T min = x[rb][cb], max = min;
+void NUMmatrix_extrema (T **x, long rb, long re, long cb, long ce, double *min, double *max) {
+    T xmin, xmax;
+    xmax = xmin = x[rb][cb];
     for (long i = rb; i <= re; i++) {
         for (long j = cb; j <= ce; j++) {
             T t = x[i][j];
-            if (t < min) min = t;
-            else if (t > max) max = t;
+            if (t < xmin) xmin = t;
+            else if (t > xmax) xmax = t;
         }
     }
-    if (p_min) {
-		*p_min = min;
-	}
-	if (p_max) {
-		*p_max = max;
-	}
+    *min = xmin; *max = xmax;
 }
 
 
@@ -191,10 +171,11 @@ void NUMmatrix_extrema (T **x, long rb, long re, long cb, long ce, double *p_min
 */
 template <class T>
 void NUMvector_clip (T *v, long lo, long hi, double min, double max) {
+    T tmin = min, tmax = max;
     for (long i = lo; i <= hi; i++)
     {
-        if (v[i] < min) v[i] = min;
-        else if (v[i] > max) v[i] = max;
+        if (v[i] < tmin) v[i] = tmin;
+        else if (v[i] > tmax) v[i] = tmax;
     }
 }
 
@@ -210,12 +191,11 @@ T ** NUMmatrix_transpose (T **m, long nr, long nc) {
     return to.transfer();
 }
 
-double NUMvector_normalize1 (double v[], long n);
+int NUMdmatrix_hasInfinities (double **m, long rb, long re, long cb, long ce);
 
+double NUMvector_normalize1 (double v[], long n);
 double NUMvector_normalize2 (double v[], long n);
-
 double NUMvector_getNorm1 (const double v[], long n);
-
 double NUMvector_getNorm2 (const double v[], long n);
 
 void  NUMcentreRows (double **a, long rb, long re, long cb, long ce);
@@ -249,7 +229,6 @@ void NUMnormalize (double **a, long nr, long nc, double norm);
 
 void NUMstandardizeColumns (double **a, long rb, long re, long cb, long ce);
 /* a[i][j] = (a[i][j] - average[j]) / sigma[j] */
-
 void NUMstandardizeRows (double **a, long rb, long re, long cb, long ce);
 /* a[i][j] = (a[i][j] - average[i]) / sigma[i] */
 
@@ -258,14 +237,17 @@ void NUMaverageColumns (double **a, long rb, long re, long cb, long ce);
 
 void NUMvector_avevar (double *a, long n, double *average, double *variance);
 
-void NUMcolumn_avevar (double **a, long nr, long nc, long icol, double *average, double *variance);
+void NUMcolumn_avevar (double **a, long nr, long nc, long icol,
+	double *average, double *variance);
 /*
 	Get mean and variance of a column.
 	When average and/or variance are NULL, the corresponding output is
 	NOT given.
  */
 
-void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2, double *average1, double *variance1, double *average2, double *variance2, double *covariance);
+void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2,
+	double *average1, double *variance1, double *average2, double *variance2,
+	double *covariance);
 /*
 	Get mean and variance of two columns.
 	When average and/or variance are NULL, the corresponding output is
@@ -274,6 +256,7 @@ void NUMcolumn2_avevar (double **a, long nr, long nc, long icol1, long icol2, do
 
 void NUMvector_smoothByMovingAverage (double *xin, long n, long nwindow, double *xout);
 
+
 void NUMcovarianceFromColumnCentredMatrix (double **x, long nrows, long ncols, long ndf, double **covar);
 /*
 	Calculate covariance matrix(ncols x ncols) from data matrix (nrows x ncols);
@@ -287,7 +270,8 @@ double NUMmultivariateKurtosis (double **x, long nrows, long ncols, int method);
 	method = 1 : Schott (2001), J. of Statistical planning and Inference 94, 25-36.
 */
 
-void NUMmad (double *x, long n, double *location, int wantlocation, double *mad, double *work);
+void NUMmad (double *x, long n, double *location, int wantlocation,
+	double *mad, double *work);
 /*
 	Computes the median absolute deviation, i.e., the median of the
 	absolute deviations from the median, and adjust by a factor for
@@ -577,33 +561,6 @@ void NUMeigensystem (double **a, long n, double **evec, double eval[]);
 	Eigenvalues (with corresponding eigenvectors) are sorted in descending order.
 */
 
-void NUMdmatrix_projectRowsOnEigenspace (double **data, long numberOfRows, long from_col, double **eigenvectors, long numberOfEigenvectors, long dimension, double **projection, long to_col);
-/* Input:
-	data[numberOfRows, from_col - 1 + my dimension] 
-		contains the 'numberOfRows' vectors to be projected on the eigenspace. 
-	eigenvectors [numberOfEigenvectors][dimension] 
-		the eigenvectors stored as rows
-   Input/Output
-		projection [numberOfRows, to_colbegin - 1 + numberOfDimensionsToKeep] 
-		the projected vectors from 'data'
-
-   Project (part of) the vectors in matrix 'data' along the 'numberOfEigenvectors' eigenvectors into the matrix 'projection'.
- */
-
-void NUMdmatrix_projectColumnsOnEigenspace (double **data, long numberOfColumns, double **eigenvectors, long numberOfEigenvectors, long dimension, double **projection);
-/* Input:
- 	data[dimension, numberOfColumns]
- 		contains the column vectors to be projected on the eigenspace.
-  eigenvectors [numberOfEigenvectors][dimension]
- 		the eigenvectors stored as rowvectors
- Input/Output
- 	projection [numberOfEigenvectors, numberOfColumns] 
- 		the projected vectors from 'data'
- 
- Project the columnvectors in matrix 'data' along the 'numberOfEigenvectors' eigenvectors into the matrix 'projection'.
-*/
-
-
 void NUMdominantEigenvector (double **mns, long n, double *q, double *lambda, double tolerance);
 /*
 	Determines the first dominant eigenvector from a GENERAL matrix
@@ -722,7 +679,7 @@ void NUMsolveWeaklyConstrainedLinearRegression (double **f, long n, long m, doub
 */
 
 void NUMProcrustes (double **x, double **y, long nPoints,
-	long nDimensions, double **t, double v[], double *s);
+	long nDimensions, double **t, double *v, double *s);
 /*
 	Given two configurations x and y (nPoints x nDimensions), find the
 	the Procrustes rotation/reflection matrix T, the translation vector v and the scaling
@@ -798,18 +755,6 @@ double NUMbetaContinuedFraction(double a, double b, double x);
 double NUMfactln (int n);
 /* Returns ln (n!) */
 
-void NUMlngamma_complex (double zr, double zi, double *lnr, double *arg);
-/* Log[Gamma(z)] for z complex, z not a negative integer
- * Uses complex Lanczos method. Note that the phase part (arg)
- * is not well-determined when |z| is very large, due
- * to inevitable roundoff in restricting to (-pi, pi].
- * The absolute value part (lnr), however, never suffers.
- *
- * Calculates:
- *   lnr = log|Gamma(z)|
- *   arg = arg(Gamma(z))  in (-Pi, Pi]
- */
-
 /***** STATISTICS: PROBABILITY DENSITY FUNCTIONS ********************/
 
 double NUMlogNormalP (double x, double zeta, double sigma);
diff --git a/dwsys/NUMf2c.cpp b/dwsys/NUMf2c.cpp
index 895f3a7..7dc8c11 100644
--- a/dwsys/NUMf2c.cpp
+++ b/dwsys/NUMf2c.cpp
@@ -6,8 +6,8 @@
 
 double d_sign (double *a, double *b) {
 	double x;
-	x = (*a >= 0.0 ? *a : - *a);
-	return (*b >= 0.0 ? x : -x);
+	x = (*a >= 0 ? *a : - *a);
+	return (*b >= 0 ? x : -x);
 }
 
 long int lsame_ (const char *ca, const char *cb) {
@@ -28,7 +28,7 @@ double pow_di (double *ap, long *bp) {
 	if (n != 0) {
 		if (n < 0) {
 			n = -n;
-			x = 1.0 / x;
+			x = 1 / x;
 		}
 		for (u = n; ;) {
 			if (u & 01) {
diff --git a/dwsys/NUMfft_core.h b/dwsys/NUMfft_core.h
index a546581..c0f2d84 100644
--- a/dwsys/NUMfft_core.h
+++ b/dwsys/NUMfft_core.h
@@ -79,6 +79,7 @@ static void drfti1 (long n, FFT_DATA_TYPE * wa, long *ifac)
 
 	if (nfm1 == 0)
 		return;
+
 	for (k1 = 0; k1 < nfm1; k1++)
 	{
 		ip = ifac[k1 + 2];
diff --git a/dwsys/NUMhuber.cpp b/dwsys/NUMhuber.cpp
index eef151f..3839476 100644
--- a/dwsys/NUMhuber.cpp
+++ b/dwsys/NUMhuber.cpp
@@ -1,6 +1,6 @@
 /* NUMhuber.cpp
 *
-* Copyright (C) 1994-2008, 2015 David Weenink
+* Copyright (C) 1994-2008 David Weenink
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@ void NUMmad (double *x, long n, double *location, int wantlocation, double *mad,
 		return;
 	}
 	autoNUMvector<double> atmp;
-	if (! work)  {
+	if (work == 0)  {
 		atmp.reset (1, n);
 		tmp = atmp.peek();
 	}
@@ -65,8 +65,8 @@ static double NUMgauss (double x) {
 void NUMstatistics_huber (double *x, long n, double *location, int wantlocation,
                           double *scale, int wantscale, double k, double tol, double *work) {
 	double *tmp = work;
-	double theta = 2.0 * NUMgaussP (k) - 1.0;
-	double beta = theta + k * k * (1.0 - theta) - 2.0 * k * NUMgauss (k);
+	double theta = 2 * NUMgaussP (k) - 1;
+	double beta = theta + k * k * (1 - theta) - 2 * k * NUMgauss (k);
 	long n1 = n;
 
 	autoNUMvector<double> atmp;
@@ -107,14 +107,14 @@ void NUMstatistics_huber (double *x, long n, double *location, int wantlocation,
 			}
 		}
 		if (wantlocation) {
-			mu1 = 0.0;
+			mu1 = 0;
 			for (long i = 1; i <= n; i++) {
 				mu1 += tmp[i];
 			}
 			mu1 /= n;
 		}
 		if (wantscale) {
-			s1 = 0.0;
+			s1 = 0;
 			for (long i = 1; i <= n; i++) {
 				double dx = tmp[i] - mu1;
 				s1 += dx * dx;
diff --git a/dwsys/NUMsort2.cpp b/dwsys/NUMsort2.cpp
index d87f4f8..d24331b 100644
--- a/dwsys/NUMsort2.cpp
+++ b/dwsys/NUMsort2.cpp
@@ -56,76 +56,6 @@ void NUMrankColumns (double **m, long rb, long re, long cb, long ce) {
 	}
 }
 
-template <class T>
-void NUMindexx (const T a[], long n, long index[], int (*compare) (void *, void *)) {
-	long ii, imin;
-	T min;
-	for (long j = 1; j <= n; j++) {
-		index[j] = j;
-	}
-	if (n < 2) return;   // Already sorted
-	if (n == 2) {
-		if (COMPARELT(a[2], a[1])) {
-			index[1] = 2; index[2] = 1;
-		}
-		return;
-	} 
-	if (n <= 12) {
-		for (long i = 1; i < n; i++) {
-			imin = i;
-			min = a[index[imin]];
-			for (long j = i + 1; j <= n; j++) {
-				if (COMPARELT(a[index[j]], min)) {
-					imin = j;
-					min = a[index[j]];
-				}
-			}
-			ii = index[imin]; index[imin] = index[i]; index[i] = ii;
-		}
-		return;
-	}
-	// H1
-	long l = n / 2 + 1, r = n;
-	for (;;) { // H2
-		long k, i;
-		if (l > 1) {
-			l--;
-			k = index[l];
-		} else { // l == 1
-			k = index[r];
-			index[r] = index[1];
-			r--;
-			if (r == 1) {
-				index[1] = k; break;
-			}
-		}
-		// H3 
-		long j = l;
-		for (;;) {
-			// H4
-			i = j;
-			j *= 2;
-			if (j > r) {
-				break;
-			}
-			if (j < r && COMPARELT (a[index[j]], a[index[j + 1]])) {
-				j++; // H5
-			}
-			index[i] = index[j]; // H7
-		}
-		for (;;) { // H8' 
-			j = i;
-			i = j >> 1;
-			// H9'
-			if (j == l || COMPARELT (a[k], a[index[i]])) {
-				index[j] = k; break;
-			}
-			index[j] = index[i];
-		}
-	}
-}
-
-
 #define MACRO_NUMindex(TYPE) \
 { \
 	long l, r, j, i, ii, k, imin; \
@@ -216,81 +146,96 @@ MACRO_NUMindex (char32 *)
 #undef COMPARELT
 #undef MACRO_INDEXX
 
-template <class T>
-void NUMsort1 (long n, T a[]) {
+
 /*
 	Knuth's heapsort algorithm (vol. 3, page 145),
 	modified with Floyd's optimization (vol. 3, page 642).
 */
-	T min;
-	if (n < 2) return;   // Already sorted. 
-	/*	
-		This n<2 step is absent from Press et al.'s implementation,
-		which will therefore not terminate on if(--ir==1).
-		Knuth's initial assumption is now fulfilled: n >= 2.
-	*/
-	if (n == 2) {
-		if (a[1] > a[2]) {
-			min = a[2]; a[2] = a[1]; a[1] = min;
-		}
-		return;
-	}
-	if (n <= 12) {
-		long imin;
-		for (long i = 1; i < n; i++) {
-			min = a[i];
-			imin = i;
-			for (long j = i + 1; j <= n; j++) {
-				if (a[j] < min) {
-					min = a [j];
-					imin = j;
-				}
-			}
-			a[imin] = a[i];
-			a[i] = min;
-		}
-		return;
-	}
-	// H1
-	long l = (n >> 1) + 1, r = n;
-	for (;;) { // H2
-		T ak;
-		if (l > 1) {
-			l--;
-			ak = a[l];
-		} else { // l == 1
-			ak = a[r];
-			a[r] = a[1];
-			r--;
-			if (r == 1) {
-				a[1] = ak; return;
-			}
-		}
-		// H3
-		long i, j = l;
-		for (;;) { // H4
-			i = j;
-			j = j << 1;
-			if (j > r) {
-				break;
-			}
-			if (j < r && a[j] < a[j + 1]) {
-				j++; // H5
-			}
-			// if (k >= a[j]) break;
-			a[i] = a[j]; // H7 
-		}
-		//	a[i] = k; H8 
-		for (;;) { // H8'
-			j = i;
-			i = j >> 1;
-			// H9'
-			if (j == l || ak <= a[i]) {
-				a[j] = ak; break;
-			}
-			a[j] = a[i];
-		}
-	}
+#define MACRO_NUMsortkf(TYPE)  { \
+	long l, r, j, i, imin; \
+	TYPE k, min; \
+	if (n < 2) return;   /* Already sorted. */ \
+	/* This n<2 step is absent from Press et al.'s implementation, */ \
+	/* which will therefore not terminate on if(--ir==1). */ \
+	/* Knuth's initial assumption is now fulfilled: n >= 2. */ \
+	if (n == 2) \
+	{ \
+		if (a[1] > a[2]) \
+		{\
+			min = a[2]; a[2] = a[1]; a[1] = min; \
+		} \
+		return; \
+	} \
+	if (n <= 12) \
+	{ \
+		for (i = 1; i < n; i++) \
+		{ \
+			min = a[i]; \
+			imin = i; \
+			for (j = i + 1; j <= n; j++) \
+			{\
+				if (a[j] < min)\
+				{ \
+					min = a [j]; \
+					imin = j; \
+				} \
+			} \
+			a[imin] = a[i]; \
+			a[i] = min; \
+		} \
+		return; \
+	} \
+	/* H1 */\
+	l = (n >> 1) + 1; \
+	r = n; \
+	for (;;) /* H2 */\
+	{ \
+		if (l > 1) \
+		{ \
+			l--; \
+			k = a[l]; \
+		} \
+		else /* l == 1 */ \
+		{ \
+			k = a[r]; \
+			a[r] = a[1]; \
+			r--; \
+			if (r == 1) \
+			{ \
+				a[1] = k; return; \
+			} \
+		} \
+		/* H3 */ \
+		j = l; \
+		for (;;) \
+		{ \
+			/* H4 */ \
+			i = j; \
+			j = j << 1; \
+			if (j > r) break; \
+			if (j < r && a[j] < a[j + 1]) j++; /* H5 */\
+			/*if (k >= a[j]) break; */\
+			a[i] = a[j]; /* H7 */\
+		} \
+/*		a[i] = k; H8 */\
+		for (;;)  /*H8' */\
+		{\
+			j = i; \
+			i = j >> 1; \
+			/* H9' */ \
+			if (j == l || k <= a[i]) \
+			{ \
+				a[j] = k; break; \
+			} \
+			a[j] = a[i]; \
+		}\
+	} \
 }
 
+void NUMsort1_d (long n, double a[]);
+void NUMsort1_d (long n, double a[])
+MACRO_NUMsortkf (double)
+
+#undef MACRO_NUMsortkf
+
 /* End of file NUMsort.cpp */
diff --git a/dwsys/NUMstring.cpp b/dwsys/NUMstring.cpp
index db24ce6..a4bf7ee 100644
--- a/dwsys/NUMstring.cpp
+++ b/dwsys/NUMstring.cpp
@@ -1,6 +1,6 @@
 /* NUMstring.cpp
 *
-* Copyright (C) 2012-2016 David Weenink
+* Copyright (C) 2012 David Weenink
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
@@ -54,19 +54,16 @@ void NUMstring_chopWhiteSpaceAtExtremes_inline (char32 *string) {
 	string[n] = 0;
 }
 
-double *NUMstring_to_numbers (const char32 *s, long *p_numbers_found) {
-	long numbers_found = Melder_countTokens (s);
-	if (numbers_found < 1) {
+double *NUMstring_to_numbers (const char32 *s, long *numbers_found) {
+	*numbers_found = Melder_countTokens (s);
+	if (*numbers_found < 1) {
 		Melder_throw (U"Empty string.");
 	}
-	autoNUMvector<double> numbers (1, numbers_found);
+	autoNUMvector<double> numbers (1, *numbers_found);
 	long inum = 1;
 	for (char32 *token = Melder_firstToken (s); token != 0; token = Melder_nextToken (), inum++) {
 		Interpreter_numericExpression (0, token, &numbers[inum]);
 	}
-	if (p_numbers_found) {
-		*p_numbers_found = numbers_found;
-	}
 	return numbers.transfer();
 }
 
@@ -337,33 +334,29 @@ char32 *str_replace_regexp (const char32 *string, regexp *compiledSearchRE,
 }
 
 static char32 **strs_replace_literal (char32 **from, long lo, long hi, const char32 *search,
-	const char32 *replace, int maximumNumberOfReplaces, long *p_nmatches, long *p_nstringmatches) {
+	const char32 *replace, int maximumNumberOfReplaces, long *nmatches, long *nstringmatches) {
 	if (search == NULL || replace == NULL) {
 		return NULL;
 	}
 	autostring32vector result (lo, hi);
 
-	long nmatches_sub = 0, nmatches = 0, nstringmatches = 0;
-	for (long i = lo; i <= hi; i ++) {
-		const char32 *string = ( from [i] ? from [i] : U"" );   // treat null as an empty string
+	long nmatches_sub = 0;
+	*nmatches = 0; *nstringmatches = 0;
+	for (long i = lo; i <= hi; i++) {
+		/* Treat a NULL as an empty string */
+		const char32 *string = from[i] == NULL ? U"" : from[i];
 
-		result [i] = str_replace_literal (string, search, replace, maximumNumberOfReplaces, & nmatches_sub);
+		result[i] = str_replace_literal (string, search, replace, maximumNumberOfReplaces, &nmatches_sub);
 		if (nmatches_sub > 0) {
-			nmatches += nmatches_sub;
-			nstringmatches ++;
+			*nmatches += nmatches_sub;
+			(*nstringmatches) ++;
 		}
 	}
-	if (p_nmatches) {
-		*p_nmatches = nmatches;
-	}
-	if (p_nstringmatches) {
-		*p_nstringmatches = nstringmatches;
-	}
 	return result.transfer();
 }
 
 static char32 **strs_replace_regexp (char32 **from, long lo, long hi, const char32 *searchRE,
-	const char32 *replaceRE, int maximumNumberOfReplaces, long *p_nmatches, long *p_nstringmatches) {
+	const char32 *replaceRE, int maximumNumberOfReplaces, long *nmatches, long *nstringmatches) {
 	if (searchRE == NULL || replaceRE == NULL) {
 		return NULL;
 	}
@@ -375,28 +368,26 @@ static char32 **strs_replace_regexp (char32 **from, long lo, long hi, const char
 
 	result.reset (lo, hi);
 
-	long nmatches = 0, nstringmatches = 0;
+	*nmatches = 0; *nstringmatches = 0;
 	for (long i = lo; i <= hi; i++) {
-		const char32 *string = ( from [i] ? from [i] : U"" );   // treat null as an empty string
-
-		result [i] = str_replace_regexp (string, compiledRE, replaceRE, maximumNumberOfReplaces, &nmatches_sub);
+		/* Treat a NULL as an empty string */
+		const char32 *string = from[i] == NULL ? U"" : from[i];
+		result [i] = str_replace_regexp (string, compiledRE, replaceRE,
+										 maximumNumberOfReplaces, &nmatches_sub);
 		if (nmatches_sub > 0) {
-			nmatches += nmatches_sub;
-			nstringmatches ++;
+			*nmatches += nmatches_sub;
+			(*nstringmatches) ++;
 		}
 	}
-	if (p_nmatches) {
-		*p_nmatches = nmatches;
-	}
-	if (p_nstringmatches) {
-		*p_nstringmatches = nstringmatches;
-	}
 	return result.transfer();
 }
 
-char32 **strs_replace (char32 **from, long lo, long hi, const char32 *search, const char32 *replace, int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp) {
-	return use_regexp ? strs_replace_regexp (from, lo, hi, search, replace, maximumNumberOfReplaces, nmatches, nstringmatches) :
-		strs_replace_literal (from, lo, hi, search, replace, maximumNumberOfReplaces, nmatches, nstringmatches);
+char32 **strs_replace (char32 **from, long lo, long hi, const char32 *search, const char32 *replace,
+                        int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp) {
+	if (use_regexp) return strs_replace_regexp (from, lo, hi, search,
+		                       replace, maximumNumberOfReplaces, nmatches, nstringmatches);
+	else return strs_replace_literal (from, lo, hi, search, replace,
+		                                  maximumNumberOfReplaces, nmatches, nstringmatches);
 }
 
 
diff --git a/dwsys/Permutation.cpp b/dwsys/Permutation.cpp
index 227b14e..6f19941 100644
--- a/dwsys/Permutation.cpp
+++ b/dwsys/Permutation.cpp
@@ -1,6 +1,6 @@
 /* Permutation.cpp
  *
- * Copyright (C) 2005-2012, 2015-2016 David Weenink
+ * Copyright (C) 2005-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@
 #include "oo_DESCRIPTION.h"
 #include "Permutation_def.h"
 
-Thing_implement (Permutation, Daata, 0);
+Thing_implement (Permutation, Data, 0);
 
 static long Permutation_checkRange (Permutation me, long *from, long *to) {
 	if ( (*from < 0 || *from > my numberOfElements) || (*to < 0 || *to > my numberOfElements)) {
@@ -73,7 +73,7 @@ void Permutation_checkInvariant (Permutation me) {
 }
 
 void structPermutation :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of elements: ", numberOfElements);
 }
 
@@ -92,11 +92,11 @@ void Permutation_init (Permutation me, long numberOfElements) {
 	Permutation_sort (me);
 }
 
-autoPermutation Permutation_create (long numberOfElements) {
+Permutation Permutation_create (long numberOfElements) {
 	try {
 		autoPermutation me = Thing_new (Permutation);
-		Permutation_init (me.get(), numberOfElements);
-		return me;
+		Permutation_init (me.peek(), numberOfElements);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Permulation not created.");
 	}
@@ -150,9 +150,8 @@ void Permutation_swapNumbers (Permutation me, long i1, long i2) {
 
 void Permutation_swapBlocks (Permutation me, long from, long to, long blocksize) {
 	try {
-		if (blocksize < 1 || blocksize > my numberOfElements) {
-			Melder_throw (U"Blocksize must be in [1, %d] range.", my numberOfElements / 2);
-		}
+		if (blocksize < 1 || blocksize > my numberOfElements) Melder_throw
+			(U"Blocksize must be in [1, %d] range.", my numberOfElements / 2);
 		if (from < 0 || from + blocksize - 1 > my numberOfElements || to < 0 || to + blocksize - 1 > my numberOfElements) {
 			Melder_throw (U"Start and finish positions of the two blocks must be in [1,", my numberOfElements, U"] range.");
 		}
@@ -188,17 +187,17 @@ void Permutation_permuteRandomly_inline (Permutation me, long from, long to) {
 	}
 }
 
-autoPermutation Permutation_permuteRandomly (Permutation me, long from, long to) {
+Permutation Permutation_permuteRandomly (Permutation me, long from, long to) {
 	try {
 		autoPermutation thee = Data_copy (me);
-		Permutation_permuteRandomly_inline (thee.get(), from, to);
-		return thee;
+		Permutation_permuteRandomly_inline (thee.peek(), from, to);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not permuted.");
 	}
 }
 
-autoPermutation Permutation_rotate (Permutation me, long from, long to, long step) {
+Permutation Permutation_rotate (Permutation me, long from, long to, long step) {
 	try {
 		long n = Permutation_checkRange (me, &from, &to);
 		step = (step - 1) % n + 1;
@@ -214,7 +213,7 @@ autoPermutation Permutation_rotate (Permutation me, long from, long to, long ste
 			}
 			thy p[ifrom] = my p[i];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not rotated.");
 	}
@@ -228,7 +227,7 @@ void Permutation_swapOneFromRange (Permutation me, long from, long to, long pos,
 			if (n == 1) {
 				Melder_throw (U"Impossible to satisfy \"forbid same\" constraint within the chosen range.");
 			}
-			while ((newpos = NUMrandomInteger (from, to)) == pos) {
+			while ( (newpos = NUMrandomInteger (from, to)) == pos) {
 				;
 			}
 		}
@@ -239,29 +238,31 @@ void Permutation_swapOneFromRange (Permutation me, long from, long to, long pos,
 	}
 }
 
-autoPermutation Permutation_permuteBlocksRandomly (Permutation me, long from, long to, long blocksize, int permuteWithinBlocks, int noDoublets) {
+
+Permutation Permutation_permuteBlocksRandomly (Permutation me, long from, long to, long blocksize,
+        int permuteWithinBlocks, int noDoublets) {
 	try {
 		long n = Permutation_checkRange (me, &from, &to);
 		if (blocksize == 1 || (blocksize >= n && permuteWithinBlocks)) {
 			autoPermutation thee = Permutation_permuteRandomly (me, from, to);
-			return thee;
+			return thee.transfer();
 		}
 		autoPermutation thee = Data_copy (me);
 		if (blocksize >= n) {
-			return thee;
+			return thee.transfer();
 		}
 
 		long nblocks  = n / blocksize, nrest = n % blocksize;
-		if (nrest != 0) {
-			Melder_throw (U"It is not possible to fit an integer number of blocks in the range.\n(The last block is only of size ", nrest, U").");
-		}
+		if (nrest != 0) Melder_throw (U"It is not possible to fit an integer number of blocks "
+			                              U"in the range.\n(The last block is only of size ", nrest, U").");
+
 		autoPermutation pblocks = Permutation_create (nblocks);
 
-		Permutation_permuteRandomly_inline (pblocks.get(), 1, nblocks);
+		Permutation_permuteRandomly_inline (pblocks.peek(), 1, nblocks);
 		long first = from;
 		for (long iblock = 1; iblock <= nblocks; iblock++, first += blocksize) {
 			/* (n1,n2,n3,...) means: move block n1 to position 1 etc... */
-			long blocktomove = Permutation_getValueAtIndex (pblocks.get(), iblock);
+			long blocktomove = Permutation_getValueAtIndex (pblocks.peek(), iblock);
 
 			for (long j = 1; j <= blocksize; j++) {
 				thy p[first - 1 + j] = my p[from - 1 + (blocktomove - 1) * blocksize + j];
@@ -269,60 +270,60 @@ autoPermutation Permutation_permuteBlocksRandomly (Permutation me, long from, lo
 
 			if (permuteWithinBlocks) {
 				long last = first + blocksize - 1;
-				Permutation_permuteRandomly_inline (thee.get(), first, last);
+				Permutation_permuteRandomly_inline (thee.peek(), first, last);
 				if (noDoublets && iblock > 0 && (thy p[first - 1] % blocksize) == (thy p[first] % blocksize)) {
-					Permutation_swapOneFromRange (thee.get(), first + 1, last, first, 0);
+					Permutation_swapOneFromRange (thee.peek(), first + 1, last, first, 0);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not permuted block randomly.");
 	}
 }
 
-autoPermutation Permutation_interleave (Permutation me, long from, long to, long blocksize, long offset) {
+Permutation Permutation_interleave (Permutation me, long from, long to, long blocksize, long offset) {
 	try {
 		long n = Permutation_checkRange (me, &from, &to);
 		long nblocks = n / blocksize;
 		long nrest = n % blocksize;
-		if (nrest != 0) {
-			Melder_throw (U"There is not an integer number of blocks in the range.\n"
-				U"(The last block is only of size ", nrest, U" instead of ", blocksize, U").");
-		}
+		if (nrest != 0) Melder_throw (U"There is not an integer number of blocks in the range.\n"
+			                              U"(The last block is only of size ", nrest, U" instead of ", blocksize, U").");
 		if (offset >= blocksize) {
 			Melder_throw (U"Offset must be smaller than blocksize.");
 		}
 
 		autoPermutation thee = Data_copy (me);
 
-		if (nblocks > 1) {
-			autoNUMvector<long> occupied (1, blocksize);
+		if (nblocks == 1) {
+			return thee.transfer();
+		}
+
+		autoNUMvector<long> occupied (1, blocksize);
 
-			long posinblock = 1 - offset;
-			for (long i = 1; i <= n; i++) {
-				long index, rblock = (i - 1) % nblocks + 1;
+		long posinblock = 1 - offset;
+		for (long i = 1; i <= n; i++) {
+			long index, rblock = (i - 1) % nblocks + 1;
 
-				posinblock += offset;
-				if (posinblock > blocksize) {
-					posinblock -= blocksize;
-				}
+			posinblock += offset;
+			if (posinblock > blocksize) {
+				posinblock -= blocksize;
+			}
 
-				if (i % nblocks == 1) {
-					long count = blocksize;
-					while (occupied[posinblock] == 1 && count > 0) {
-						posinblock++; count--;
-						if (posinblock > blocksize) {
-							posinblock -= blocksize;
-						}
+			if (i % nblocks == 1) {
+				long count = blocksize;
+				while (occupied[posinblock] == 1 && count > 0) {
+					posinblock++; count--;
+					if (posinblock > blocksize) {
+						posinblock -= blocksize;
 					}
-					occupied[posinblock] = 1;
 				}
-				index = from - 1 + (rblock - 1) * blocksize + posinblock;
-				thy p[from - 1 + i] = my p[index];
+				occupied[posinblock] = 1;
 			}
+			index = from - 1 + (rblock - 1) * blocksize + posinblock;
+			thy p[from - 1 + i] = my p[index];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not interleaved.");
 	}
@@ -341,26 +342,26 @@ long Permutation_getIndexAtValue (Permutation me, long value) {
 	return -1;
 }
 
-autoPermutation Permutation_invert (Permutation me) {
+Permutation Permutation_invert (Permutation me) {
 	try {
 		autoPermutation thee = Data_copy (me);
 		for (long i = 1; i <= my numberOfElements; i++) {
 			thy p[my p[i]] = i;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not inverted.");
 	}
 }
 
-autoPermutation Permutation_reverse (Permutation me, long from, long to) {
+Permutation Permutation_reverse (Permutation me, long from, long to) {
 	try {
 		long n = Permutation_checkRange (me, &from, &to);
 		autoPermutation thee = Data_copy (me);
 		for (long i = 1; i <= n; i++) {
 			thy p[from + i - 1] = my p[to - i + 1];
 		}
-		return thee;
+		return thee.transfer();
 
 	} catch (MelderError) {
 		Melder_throw (me, U": not reversed.");
@@ -380,25 +381,25 @@ void Permutation_next_inline (Permutation me) {
 
 	long i = size - 2;
 
-	while ((p[i] > p[i + 1]) && (i != 0)) {
+	while ( (p[i] > p[i + 1]) && (i != 0)) {
 		i--;
 	}
 
-	if ((i == 0) && (p[0] > p[1])) {
+	if ( (i == 0) && (p[0] > p[1])) {
 		Melder_throw (U"No next.");
 	}
 
 	long k = i + 1;
 
 	for (long j = i + 2; j < size; j++) {
-		if ((p[j] > p[i]) && (p[j] < p[k])) {
+		if ( (p[j] > p[i]) && (p[j] < p[k])) {
 			k = j;
 		}
 	}
 
 	long tmp = p[i]; p[i] = p[k]; p[k] = tmp;
 
-	for (long j = i + 1; j <= (size + i) / 2; j++) {
+	for (long j = i + 1; j <= ( (size + i) / 2); j++) {
 		tmp = p[j];
 		p[j] = p[size + i - j];
 		p[size + i - j] = tmp;
@@ -408,6 +409,7 @@ void Permutation_next_inline (Permutation me) {
 /* Replaces p with the previous permutation (in the standard lexicographical ordering.
    Adapted from the GSL library
 */
+
 void Permutation_previous_inline (Permutation me) {
 	long size = my numberOfElements;
 	long *p = & my p[1];
@@ -418,18 +420,18 @@ void Permutation_previous_inline (Permutation me) {
 
 	long i = size - 2;
 
-	while ((p[i] < p[i + 1]) && (i != 0)) {
+	while ( (p[i] < p[i + 1]) && (i != 0)) {
 		i--;
 	}
 
-	if ((i == 0) && (p[0] < p[1])) {
+	if ( (i == 0) && (p[0] < p[1])) {
 		Melder_throw (U"No previous");
 	}
 
 	long k = i + 1;
 
 	for (long j = i + 2; j < size; j++) {
-		if ((p[j] < p[i]) && (p[j] > p[k])) {
+		if ( (p[j] < p[i]) && (p[j] > p[k])) {
 			k = j;
 		}
 	}
@@ -443,7 +445,7 @@ void Permutation_previous_inline (Permutation me) {
 	}
 }
 
-autoPermutation Permutations_multiply2 (Permutation me, Permutation thee) {
+Permutation Permutations_multiply2 (Permutation me, Permutation thee) {
 	try {
 		if (my numberOfElements != thy numberOfElements) {
 			Melder_throw (U"Number of elements must be equal.");
@@ -452,22 +454,22 @@ autoPermutation Permutations_multiply2 (Permutation me, Permutation thee) {
 		for (long i = 1; i <= my numberOfElements; i++) {
 			his p[i] = my p[thy p[i]];
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U" not multiplied.");
 	}
 }
 
-autoPermutation Permutations_multiply (OrderedOf<structPermutation>* me) {
+Permutation Permutations_multiply (Collection me) {
 	try {
 		if (my size < 2) {
 			Melder_throw (U"There must be at least 2 Permutations in the set.");
 		}
-		autoPermutation thee = Permutations_multiply2 (my at [1], my at [2]);
-		for (long i = 3; i <= my size; i ++) {
-			thee = Permutations_multiply2 (thee.get(), my at [i]);
+		autoPermutation thee = Permutations_multiply2 ( (Permutation) my item[1], (Permutation) my item[2]);
+		for (long i = 3; i <= my size; i++) {
+			thee.reset (Permutations_multiply2 (thee.peek(), (Permutation) my item[i]));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Permutations not multiplied.");
 	}
diff --git a/dwsys/Permutation.h b/dwsys/Permutation.h
index 530cc3b..41d8bad 100644
--- a/dwsys/Permutation.h
+++ b/dwsys/Permutation.h
@@ -2,7 +2,7 @@
 #define _Permutation_h_
 /* Permutation.h
  *
- * Copyright (C) 2005-2011, 2015 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,14 +22,16 @@
 #include "Collection.h"
 
 #include "Permutation_def.h"
+oo_CLASS_CREATE (Permutation, Data);
 
 /*
 	Class invariant: any permutation equals the identity permutation after all its elements are sorted ascendingly.
 */
 
+
 void Permutation_init (Permutation me, long numberOfElements);
 
-autoPermutation Permutation_create (long numberOfElements);
+Permutation Permutation_create (long numberOfElements);
 /*
 	Create the Permutation data structure and fill
 		with the identical permutation (1,2,..n)
@@ -44,10 +46,10 @@ void Permutation_sort (Permutation me);
 
 void Permutation_permuteRandomly_inline (Permutation me, long from, long to);
 
-autoPermutation Permutation_permuteRandomly (Permutation me, long from, long to);
+Permutation Permutation_permuteRandomly (Permutation me, long from, long to);
 /* Generate a new sequence by permuting the elements from..to */
 
-autoPermutation Permutation_rotate (Permutation me, long from, long to, long step);
+Permutation Permutation_rotate (Permutation me, long from, long to, long step);
 
 void Permutation_swapOneFromRange (Permutation me, long from, long to, long pos, int forbidsame);
 /* Swap item at pos with one randomly chosen in interval [from,to]. If pos in [from,to]
@@ -57,12 +59,11 @@ void Permutation_swapBlocks (Permutation me, long from, long to, long blocksize)
 /* Swap two blocks */
 
 void Permutation_swapPositions (Permutation me, long i1, long i2);
-
 void Permutation_swapNumbers (Permutation me, long i1, long i2);
+Permutation Permutation_interleave (Permutation me, long from, long to, long blocksize, long offset);
 
-autoPermutation Permutation_interleave (Permutation me, long from, long to, long blocksize, long offset);
-
-autoPermutation Permutation_permuteBlocksRandomly (Permutation me, long from, long to, long blocksize, int permuteWithinBlocks, int noDoublets);
+Permutation Permutation_permuteBlocksRandomly (Permutation me, long from, long to, long blocksize,
+	int permuteWithinBlocks, int noDoublets);
 /* Permute blocks of size blocksize randomly. If permuteWithinBlocks=true and noDoublets=true forbid that the last
 	number in a block and the first number in the following block are 'equal modulo blocksize'. */
 
@@ -72,18 +73,16 @@ long Permutation_getValueAtIndex (Permutation me, long i);
 long Permutation_getIndexAtValue (Permutation me, long value);
 /* Find i for which p[i] = value */
 
-autoPermutation Permutation_invert (Permutation me);
+Permutation Permutation_invert (Permutation me);
 /*  */
 
-autoPermutation Permutation_reverse (Permutation me, long from, long to);
+Permutation Permutation_reverse (Permutation me, long from, long to);
 /* (n1,n2,...nn) to (nn,...n2,n1) */
 
 void Permutation_next_inline (Permutation me);
-
 void Permutation_previous_inline (Permutation me);
 
-autoPermutation Permutations_multiply2 (Permutation me, Permutation thee);
-
-autoPermutation Permutations_multiply (OrderedOf<structPermutation>* me);
+Permutation Permutations_multiply2 (Permutation me, Permutation thee);
+Permutation Permutations_multiply (Collection me);
 
 #endif /* _Permutation_h_ */
diff --git a/dwsys/Permutation_and_Index.cpp b/dwsys/Permutation_and_Index.cpp
index 359b0ed..847b535 100644
--- a/dwsys/Permutation_and_Index.cpp
+++ b/dwsys/Permutation_and_Index.cpp
@@ -1,6 +1,6 @@
 /* Permutation_and_Index.cpp
  *
- * Copyright (C) 2005-2011, 2015-2016 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,14 +25,14 @@
 
 #include "Permutation_and_Index.h"
 
-autoPermutation Index_to_Permutation_permuteRandomly (Index me, int permuteWithinClasses) {
+Permutation Index_to_Permutation_permuteRandomly (Index me, int permuteWithinClasses) {
 	try {
-		long numberOfClasses = my classes->size;
+		long numberOfClasses = my classes -> size;
 
 		autoPermutation thee = Permutation_create (my numberOfElements);
 		autoPermutation classes = Permutation_create (numberOfClasses);
-		Permutation_permuteRandomly_inline (classes.get(), 0, 0);
-		autoPermutation classesinv = Permutation_invert (classes.get());
+		Permutation_permuteRandomly_inline (classes.peek(), 0, 0);
+		autoPermutation classesinv = Permutation_invert (classes.peek());
 		autoNUMmatrix<long> indices (0, numberOfClasses, 1, 4);
 
 		for (long i = 1; i <= my numberOfElements; i++) {
@@ -57,11 +57,11 @@ autoPermutation Index_to_Permutation_permuteRandomly (Index me, int permuteWithi
 				long from = indices[i][3] + 1;
 				long to = from + indices[i][2] - 1;
 				if (to > from) {
-					Permutation_permuteRandomly_inline (thee.get(), from, to);
+					Permutation_permuteRandomly_inline (thee.peek(), from, to);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Permutation not created.");
 	}
diff --git a/dwsys/Permutation_and_Index.h b/dwsys/Permutation_and_Index.h
index af6ea1f..9f1eac8 100644
--- a/dwsys/Permutation_and_Index.h
+++ b/dwsys/Permutation_and_Index.h
@@ -3,7 +3,7 @@
 
 /* Permutation_and_Index.h
  *
- * Copyright (C) 2005-2011, 2015 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,6 +27,6 @@
 #include "Permutation.h"
 #include "Index.h"
 
-autoPermutation Index_to_Permutation_permuteRandomly (Index me, int permuteWithinClass);
+Permutation Index_to_Permutation_permuteRandomly (Index me, int permuteWithinClass);
 
 #endif /* _Permutation_and_Index_h_ */
diff --git a/dwsys/Permutation_def.h b/dwsys/Permutation_def.h
index 29077e6..5b85adf 100644
--- a/dwsys/Permutation_def.h
+++ b/dwsys/Permutation_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Permutation
-oo_DEFINE_CLASS (Permutation, Daata)
+oo_DEFINE_CLASS (Permutation, Data)
 
 	oo_LONG (numberOfElements)
 	oo_LONG_VECTOR (p, numberOfElements)
diff --git a/dwsys/SVD.cpp b/dwsys/SVD.cpp
index ae63d2a..6730b37 100644
--- a/dwsys/SVD.cpp
+++ b/dwsys/SVD.cpp
@@ -1,6 +1,6 @@
 /* SVD.cpp
  *
- * Copyright (C) 1994-2016 David Weenink
+ * Copyright (C) 1994-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ void structSVD :: v_info () {
 	MelderInfo_writeLine (U"Number of columns: ", numberOfColumns);
 }
 
-Thing_implement (SVD, Daata, 0);
+Thing_implement (SVD, Data, 0);
 
 static void NUMtranspose_d (double **m, long n);
 
@@ -87,7 +87,8 @@ static void SVD_transpose (SVD me) {
 	m >=n, mxn matrix A has svd UDV', where u is mxn, D is n and V is nxn.
 	m < n, mxn matrix A. Consider A' with svd (UDV')'= VDU', where v is mxm, D is m and U' is mxn
 */
-void SVD_init (SVD me, long numberOfRows, long numberOfColumns) {
+void SVD_init (I, long numberOfRows, long numberOfColumns) {
+	iam (SVD);
 	long mn_min = MIN (numberOfRows, numberOfColumns);
 	my numberOfRows = numberOfRows;
 	my numberOfColumns = numberOfColumns;
@@ -100,31 +101,31 @@ void SVD_init (SVD me, long numberOfRows, long numberOfColumns) {
 	my d = NUMvector<double> (1, mn_min);
 }
 
-autoSVD SVD_create (long numberOfRows, long numberOfColumns) {
+SVD SVD_create (long numberOfRows, long numberOfColumns) {
 	try {
 		autoSVD me = Thing_new (SVD);
-		SVD_init (me.get(), numberOfRows, numberOfColumns);
-		return me;
+		SVD_init (me.peek(), numberOfRows, numberOfColumns);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SVD not created.");
 	}
 }
 
-autoSVD SVD_create_d (double **m, long numberOfRows, long numberOfColumns) {
+SVD SVD_create_d (double **m, long numberOfRows, long numberOfColumns) {
 	try {
 		autoSVD me = SVD_create (numberOfRows, numberOfColumns);
-		SVD_svd_d (me.get(), m);
-		return me;
+		SVD_svd_d (me.peek(), m);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SVD not created from vector.");
 	}
 }
 
-autoSVD SVD_create_f (float **m, long numberOfRows, long numberOfColumns) {
+SVD SVD_create_f (float **m, long numberOfRows, long numberOfColumns) {
 	try {
 		autoSVD me = SVD_create (numberOfRows, numberOfColumns);
-		SVD_svd_f (me.get(), m);
-		return me;
+		SVD_svd_f (me.peek(), m);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SVD not created from vector.");
 	}
@@ -132,14 +133,14 @@ autoSVD SVD_create_f (float **m, long numberOfRows, long numberOfColumns) {
 
 void SVD_svd_d (SVD me, double **m) {
 	if (my numberOfRows >= my numberOfColumns) {
-		// Store m in u
+		/* Store m in u */
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				my u[i][j] = m[i][j];
 			}
 		}
 	} else {
-		// Store m transposed in v
+		/* Store m transposed in v */
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				my v[j][i] = m[i][j];
@@ -151,14 +152,14 @@ void SVD_svd_d (SVD me, double **m) {
 
 void SVD_svd_f (SVD me, float **m) {
 	if (my numberOfRows >= my numberOfColumns) {
-		// Store in u
+		/* Store in u */
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				my u[j][i] = m[i][j];
 			}
 		}
 	} else {
-		// Store transposed in v
+		/* Store transposed in v */
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				my v[i][j] = m[j][i];
@@ -209,7 +210,7 @@ void SVD_compute (SVD me) {
 		double wt[2];
 		int transpose = my numberOfRows < my numberOfColumns;
 
-		// Transpose: if rows < cols then data in v
+		/* transpose: if rows < cols then data in v */
 		if (transpose) {
 			SVD_transpose (me);
 		}
@@ -217,7 +218,8 @@ void SVD_compute (SVD me) {
 		lda = ldu = ldvt = m = my numberOfColumns;
 		long n = my numberOfRows;
 
-		(void) NUMlapack_dgesvd (&jobu, &jobvt, &m, &n, &my u[1][1], &lda, &my d[1], &my v[1][1], &ldu, nullptr, &ldvt, wt, &lwork, &info);
+		(void) NUMlapack_dgesvd (&jobu, &jobvt, &m, &n, &my u[1][1], &lda, &my d[1], &my v[1][1], &ldu,
+		                         NULL, &ldvt, wt, &lwork, &info);
 
 		if (info != 0) {
 			Melder_throw (U"SVD not precomputed.");
@@ -225,7 +227,8 @@ void SVD_compute (SVD me) {
 
 		lwork = wt[0];
 		autoNUMvector<double> work (0L, lwork);
-		(void) NUMlapack_dgesvd (&jobu, &jobvt, &m, &n, &my u[1][1], &lda, &my d[1], &my v[1][1], &ldu, nullptr, &ldvt, work.peek(), &lwork, &info);
+		(void) NUMlapack_dgesvd (&jobu, &jobvt, &m, &n, &my u[1][1], &lda, &my d[1], &my v[1][1], &ldu,
+		                         NULL, &ldvt, work.peek(), &lwork, &info);
 		if (info != 0) {
 			Melder_throw (U"SVD not computed.");
 		}
@@ -243,11 +246,11 @@ void SVD_compute (SVD me) {
 void SVD_getSquared (SVD me, double **m, bool inverse) {
 	for (long i = 1; i <= my numberOfColumns; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			double val = 0.0;
+			double val = 0;
 			for (long k = 1; k <= my numberOfColumns; k++) {
-				if (my d[k] > 0.0) {
+				if (my d[k] > 0) {
 					double dsq = my d[k] * my d[k];
-					double factor = inverse ? 1.0 / dsq : dsq;
+					double factor = inverse ? 1 / dsq : dsq;
 					val += my v[i][k] * my v[j][k] * factor;
 				}
 			}
@@ -266,8 +269,8 @@ void SVD_solve (SVD me, double b[], double x[]) {
 			Solution: x = V D^-1 U' b */
 
 		for (long j = 1; j <= mn_min; j++) {
-			double tmp = 0.0;
-			if (my d[j] > 0.0) {
+			double tmp = 0;
+			if (my d[j] > 0) {
 				for (long i = 1; i <= my numberOfRows; i++) {
 					tmp += my u[i][j] * b[i];
 				}
@@ -277,7 +280,7 @@ void SVD_solve (SVD me, double b[], double x[]) {
 		}
 
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			double tmp = 0.0;
+			double tmp = 0;
 			for (long i = 1; i <= mn_min; i++) {
 				tmp += my v[j][i] * t[i];
 			}
@@ -315,7 +318,7 @@ long SVD_zeroSmallSingularValues (SVD me, double tolerance) {
 	long numberOfZeroed = 0, mn_min = MIN (my numberOfRows, my numberOfColumns);
 	double dmax = my d[1];
 
-	if (tolerance == 0.0) {
+	if (tolerance == 0) {
 		tolerance = my tolerance;
 	}
 	for (long i = 2; i <= mn_min; i++) {
@@ -325,7 +328,7 @@ long SVD_zeroSmallSingularValues (SVD me, double tolerance) {
 	}
 	for (long i = 1; i <= mn_min; i++) {
 		if (my d[i] < dmax * tolerance) {
-			my d[i] = 0.0; numberOfZeroed++;
+			my d[i] = 0; numberOfZeroed++;
 		}
 	}
 	return numberOfZeroed;
@@ -335,7 +338,7 @@ long SVD_zeroSmallSingularValues (SVD me, double tolerance) {
 long SVD_getRank (SVD me) {
 	long rank = 0, mn_min = MIN (my numberOfRows, my numberOfColumns);
 	for (long i = 1; i <= mn_min; i++) {
-		if (my d[i] > 0.0) {
+		if (my d[i] > 0) {
 			rank++;
 		}
 	}
@@ -362,7 +365,7 @@ void SVD_synthesize (SVD me, long sv_from, long sv_to, double **m) {
 
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
-				m[i][j] = 0.0;
+				m[i][j] = 0;
 			}
 		}
 
@@ -378,13 +381,13 @@ void SVD_synthesize (SVD me, long sv_from, long sv_to, double **m) {
 	}
 }
 
-Thing_implement (GSVD, Daata, 0);
+Thing_implement (GSVD, Data, 0);
 
 void structGSVD :: v_info () {
 	MelderInfo_writeLine (U"Number of columns: ", numberOfColumns);
 }
 
-autoGSVD GSVD_create (long numberOfColumns) {
+GSVD GSVD_create (long numberOfColumns) {
 	try {
 		autoGSVD me = Thing_new (GSVD);
 		my numberOfColumns = numberOfColumns;
@@ -393,13 +396,13 @@ autoGSVD GSVD_create (long numberOfColumns) {
 		my r = NUMmatrix<double> (1, numberOfColumns, 1, numberOfColumns);
 		my d1 = NUMvector<double> (1, numberOfColumns);
 		my d2 = NUMvector<double> (1, numberOfColumns);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"GSVD not created.");
 	}
 }
 
-autoGSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns, double **m2, long numberOfRows2) {
+GSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns, double **m2, long numberOfRows2) {
 	try {
 		long m = numberOfRows1, n = numberOfColumns, p = numberOfRows2;
 		long lwork = MAX (MAX (3 * n, m), p) + n;
@@ -417,8 +420,8 @@ autoGSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns, d
 		char jobu1 = 'N', jobu2 = 'N', jobq = 'Q';
 		long k, l, info;
 		NUMlapack_dggsvd (&jobu1, &jobu2, &jobq, &m, &n, &p, &k, &l,
-		    &a[1][1], &m, &b[1][1], &p, &alpha[1], &beta[1], nullptr, &m,
-		    nullptr, &p, &q[1][1], &n, &work[1], &iwork[1], &info);
+		    &a[1][1], &m, &b[1][1], &p, &alpha[1], &beta[1], NULL, &m,
+		    NULL, &p, &q[1][1], &n, &work[1], &iwork[1], &info);
 		if (info != 0) {
 			Melder_throw (U"dggsvd failed, error = ", info);
 		}
@@ -450,7 +453,7 @@ autoGSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns, d
 				my r[i][j] = pr[i - 1 + (n - kl + j - 1) * m]; /* from col-major */
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"GSVD not created.");
 	}
diff --git a/dwsys/SVD.h b/dwsys/SVD.h
index c498b1e..119cd13 100644
--- a/dwsys/SVD.h
+++ b/dwsys/SVD.h
@@ -1,6 +1,6 @@
 /* SVD.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,24 +28,26 @@
 #include "Data.h"
 
 #include "SVD_def.h"
+oo_CLASS_CREATE (SVD, Data);
 
-void SVD_init (SVD me, long numberOfRows, long numberOfColumns);
+#define GSVD__methods(klas) Data__methods(klas)
+oo_CLASS_CREATE (GSVD, Data);
 
-autoSVD SVD_create (long numberOfRows, long numberOfColumns);
+void SVD_init (I, long numberOfRows, long numberOfColumns);
+
+SVD SVD_create (long numberOfRows, long numberOfColumns);
 /*
 	my tolerance = eps * MAX (numberOfRows, numberOfColumns)
 	where eps is the floating point precision, approximately 2.2e-16
 */
 
-autoSVD SVD_create_d (double **m, long numberOfRows, long numberOfColumns);
-
-autoSVD SVD_create_f (float **m, long numberOfRows, long numberOfColumns);
+SVD SVD_create_d (double **m, long numberOfRows, long numberOfColumns);
+SVD SVD_create_f (float **m, long numberOfRows, long numberOfColumns);
 /*
 	Copy matrix into svd->u and calculate U D V'
 */
 
 void SVD_svd_d (SVD me, double **m);
-
 void SVD_svd_f (SVD me, float **m);
 /*
 	Perform SVD analysis on matrix M, i.e., decompose M as M = UDV'.
@@ -63,7 +65,6 @@ void SVD_sort (SVD me);
 */
 
 void SVD_setTolerance (SVD me, double tolerance);
-
 double SVD_getTolerance (SVD me);
 
 long SVD_zeroSmallSingularValues (SVD me, double tolerance);
@@ -87,9 +88,10 @@ void SVD_getSquared (SVD me, double **m, bool inverse);
 
 long SVD_getRank (SVD me);
 
-autoGSVD GSVD_create (long numberOfColumns);
+GSVD GSVD_create (long numberOfColumns);
 
-autoGSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns, double **m2, long numberOfRows2);
+GSVD GSVD_create_d (double **m1, long numberOfRows1, long numberOfColumns,
+	double **m2, long numberOfRows2);
 
 void GSVD_setTolerance (GSVD me, double tolerance);
 
diff --git a/dwsys/SVD_def.h b/dwsys/SVD_def.h
index c9ccb31..d52bbce 100644
--- a/dwsys/SVD_def.h
+++ b/dwsys/SVD_def.h
@@ -18,7 +18,7 @@
  */
 
 #define ooSTRUCT SVD
-oo_DEFINE_CLASS (SVD, Daata)
+oo_DEFINE_CLASS (SVD, Data)
 
 	oo_DOUBLE (tolerance)
 	oo_LONG (numberOfRows)
@@ -37,7 +37,7 @@ oo_END_CLASS (SVD)
 
 
 #define ooSTRUCT GSVD
-oo_DEFINE_CLASS (GSVD, Daata)
+oo_DEFINE_CLASS (GSVD, Data)
 
 	oo_DOUBLE (tolerance)
 	oo_LONG (numberOfColumns)
diff --git a/dwsys/SimpleVector.cpp b/dwsys/SimpleVector.cpp
index ae868af..571f5ce 100644
--- a/dwsys/SimpleVector.cpp
+++ b/dwsys/SimpleVector.cpp
@@ -1,6 +1,6 @@
 /* SimpleVector.cpp
  *
- * Copyright (C) 1994-2012, 2015-2016 David Weenink
+ * Copyright (C) 1994-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,35 +43,37 @@
 #include "oo_DESCRIPTION.h"
 #include "SimpleVector_def.h"
 
-Thing_implement (DoubleVector, Daata, 0);
+Thing_implement (DoubleVector, Data, 0);
 
-void DoubleVector_init (DoubleVector me, long min, long max) {
+void DoubleVector_init (I, long min, long max) {
+	iam (DoubleVector);
 	my min = min; my max = max;
 	my v = NUMvector<double> (min, max);
 }
 
-autoDoubleVector DoubleVector_create (long min, long max) {
+DoubleVector DoubleVector_create (long min, long max) {
 	try {
 		autoDoubleVector me = Thing_new (DoubleVector);
-		DoubleVector_init (me.get(), min, max);
-		return me;
+		DoubleVector_init (me.peek(), min, max);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DoubleVector not created.");
 	}
 }
 
-Thing_implement (ComplexVector, Daata, 0);
+Thing_implement (ComplexVector, Data, 0);
 
-void ComplexVector_init (ComplexVector me, long min, long max) {
+void ComplexVector_init (I, long min, long max) {
+	iam (ComplexVector);
 	my min = min; my max = max;
 	my v = NUMvector<dcomplex> (min, max);
 }
 
-autoComplexVector ComplexVector_create (long min, long max) {
+ComplexVector ComplexVector_create (long min, long max) {
 	try {
 		autoComplexVector me = Thing_new (ComplexVector);
-		ComplexVector_init (me.get(), min, max);
-		return me;
+		ComplexVector_init (me.peek(), min, max);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ComplexVector not created.");
 	}
diff --git a/dwsys/SimpleVector.h b/dwsys/SimpleVector.h
index 44508de..4e9d5c5 100644
--- a/dwsys/SimpleVector.h
+++ b/dwsys/SimpleVector.h
@@ -2,7 +2,7 @@
 #define _SimpleVector_h_
 /* SimpleVector.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,13 +22,13 @@
 #include "Data.h"
 
 #include "SimpleVector_def.h"
+oo_CLASS_CREATE (DoubleVector, Data);
+oo_CLASS_CREATE (ComplexVector, Data);
 
-void DoubleVector_init (DoubleVector me, long min, long max);
+void DoubleVector_init (I, long min, long max);
+DoubleVector DoubleVector_create (long min, long max);
 
-autoDoubleVector DoubleVector_create (long min, long max);
-
-void ComplexVector_init (ComplexVector me, long min, long max);
-
-autoComplexVector ComplexVector_create (long min, long max);
+void ComplexVector_init (I, long min, long max);
+ComplexVector ComplexVector_create (long min, long max);
 
 #endif /* _SimpleVector_h_ */
diff --git a/dwsys/SimpleVector_def.h b/dwsys/SimpleVector_def.h
index ade0247..a8738a0 100644
--- a/dwsys/SimpleVector_def.h
+++ b/dwsys/SimpleVector_def.h
@@ -22,7 +22,7 @@
 */
 
 #define ooSTRUCT DoubleVector
-oo_DEFINE_CLASS (DoubleVector, Daata)
+oo_DEFINE_CLASS (DoubleVector, Data)
 
 	oo_LONG (min)
 	oo_LONG (max)
@@ -32,7 +32,7 @@ oo_END_CLASS (DoubleVector)
 #undef ooSTRUCT
 
 #define ooSTRUCT ComplexVector
-oo_DEFINE_CLASS (ComplexVector, Daata)
+oo_DEFINE_CLASS (ComplexVector, Data)
 
 	oo_LONG (min)
 	oo_LONG (max)
diff --git a/dwsys/Simple_extensions.cpp b/dwsys/Simple_extensions.cpp
index f16a72d..ffcdeca 100644
--- a/dwsys/Simple_extensions.cpp
+++ b/dwsys/Simple_extensions.cpp
@@ -1,6 +1,6 @@
 /* Simple_extensions.cpp
  *
- * Copyright (C) 1994-2011, 2015-2016 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,6 +29,10 @@ void SimpleString_init (SimpleString me, const char32 *string) {
 	my string = Melder_dup (string);
 }
 
+int SimpleString_compare (SimpleString me, SimpleString thee) {
+	return str32cmp (my string, thy string);
+}
+
 const char32 *SimpleString_c (SimpleString me) {
 	return my string;
 }
@@ -38,7 +42,7 @@ void SimpleString_append (SimpleString me, SimpleString thee) {
 }
 
 void SimpleString_append_c (SimpleString me, const char32 *str) {
-	if (! str) {
+	if (str == 0) {
 		return;
 	}
 	long myLength = str32len (my string);
@@ -46,16 +50,16 @@ void SimpleString_append_c (SimpleString me, const char32 *str) {
 	str32cpy (& my string[myLength], str);
 }
 
-autoSimpleString SimpleString_concat (SimpleString me, SimpleString thee) {
+SimpleString SimpleString_concat (SimpleString me, SimpleString thee) {
 	autoSimpleString him = Data_copy (me);
-	SimpleString_append_c (him.get(), thy string);
-	return him;
+	SimpleString_append_c (him.peek(), thy string);
+	return him.transfer();
 }
 
-autoSimpleString SimpleString_concat_c (SimpleString me, const char32 *str) {
+SimpleString SimpleString_concat_c (SimpleString me, const char32 *str) {
 	autoSimpleString him = Data_copy (me);
-	SimpleString_append_c (him.get(), str);
-	return him;
+	SimpleString_append_c (him.peek(), str);
+	return him.transfer();
 }
 
 void SimpleString_replace_c (SimpleString me, const char32 *str) {
diff --git a/dwsys/Simple_extensions.h b/dwsys/Simple_extensions.h
index dcf3ba8..2a75a67 100644
--- a/dwsys/Simple_extensions.h
+++ b/dwsys/Simple_extensions.h
@@ -2,7 +2,7 @@
 #define _Simple_extensions_h_
 /* Simple_extensions.h
  *
- * Copyright (C) 1994-2011, 2015 David Weenink
+ * Copyright (C) 1994-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,17 +29,19 @@
 #include "Simple.h"
 
 void SimpleString_init (SimpleString me, const char32 *value);
-/* return 0 when value == nullptr */
+/* return 0 when value == NULL */
 
 const char32 *SimpleString_c (SimpleString me);
 /* return pointer to the string */
 
+int SimpleString_compare (SimpleString me, SimpleString thee);
+
 void SimpleString_append (SimpleString me, SimpleString thee);
 void SimpleString_append_c (SimpleString me, const char32 *str);
 /* append string to me */
 
-autoSimpleString SimpleString_concat (SimpleString me, SimpleString thee);
-autoSimpleString SimpleString_concat_c (SimpleString me, const char32 *str);
+SimpleString SimpleString_concat (SimpleString me, SimpleString thee);
+SimpleString SimpleString_concat_c (SimpleString me, const char32 *str);
 /* concatenate two strings */
 
 void SimpleString_replace_c (SimpleString me, const char32 *replacement);
diff --git a/dwsys/regularExp.cpp b/dwsys/regularExp.cpp
index f38d767..f7c98a6 100644
--- a/dwsys/regularExp.cpp
+++ b/dwsys/regularExp.cpp
@@ -520,7 +520,7 @@ static char32 *piece (int *flag_param, len_range *range_param);
 static void tail (char32 *search_from, char32 *point_t);
 static char32 *shortcut_escape (char32 c, int *flag_param, int emit);
 
-static int             init_ansi_classes ();
+static int             init_ansi_classes (void);
 
 /*----------------------------------------------------------------------*
  * CompileRE
@@ -2952,7 +2952,7 @@ SINGLE_RETURN: if (Brace) {
  *
  *--------------------------------------------------------------------*/
 
-static int init_ansi_classes () {
+static int init_ansi_classes (void) {
 
 	static int initialized = 0;
 	static int underscore = (int) '_';
@@ -3720,7 +3720,7 @@ static int match (char32 *prog, int *branch_index_param) {
 			case LOOK_BEHIND_CLOSE:
 				MATCH_RETURN (1);  /* We have reached the end of the look-ahead or
 	                    look-behind which implies that we matched it,
-			    so return `true`. */
+			    so return TRUE. */
 			default:
 				if ( (GET_OP_CODE (scan) > OPEN) &&
 				        (GET_OP_CODE (scan) < OPEN + NSUBEXP)) {
diff --git a/dwtest/pols_50males_format0.Discriminant b/dwtest/pols_50males_format0.Discriminant
deleted file mode 100644
index b2ac059..0000000
--- a/dwtest/pols_50males_format0.Discriminant
+++ /dev/null
@@ -1,389 +0,0 @@
-File type = "ooTextFile"
-Object class = "Discriminant"
-
-numberOfEigenvalues = 3 
-dimension = 3 
-eigenvalues []: 
-    eigenvalues [1] = 21.139001553325844 
-    eigenvalues [2] = 4.355295817120748 
-    eigenvalues [3] = 0.6828853876561858 
-eigenvectors [] []: 
-    eigenvectors [1]:
-        eigenvectors [1] [1] = -0.4968246733001902 
-        eigenvectors [1] [2] = 0.7929232798703864 
-        eigenvectors [1] [3] = -0.35275758849349803 
-    eigenvectors [2]:
-        eigenvectors [2] [1] = 0.8675540972437397 
-        eigenvectors [2] [2] = 0.46440535560029494 
-        eigenvectors [2] [3] = -0.17798189246483306 
-    eigenvectors [3]:
-        eigenvectors [3] [1] = -0.022696527394271637 
-        eigenvectors [3] [2] = 0.39446208680854555 
-        eigenvectors [3] [3] = 0.9186318793264734 
-numberOfGroups = 12 
-groups? <exists> 
-size = 12 
-item []: 
-    item [1]:
-        class = "SSCP" 
-        name = "\as" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.1371322072880503	0.06507801179217895	-0.011074735561417193
-row [2]: "F2"	0.06507801179217895	0.07640416821463858	-0.0019956280460737305
-row [3]: "F3"	-0.011074735561417193	-0.0019956280460737305	0.04095240135530774
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.829041821512515 
-            centroid [2] = 3.0200046382498926 
-            centroid [3] = 3.4171619939756255 
-    item [2]:
-        class = "SSCP" 
-        name = "\ct" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.09067302012389811	0.03716882530705852	0.010895111765093148
-row [2]: "F2"	0.03716882530705852	0.06623815158562135	-0.008040088713702414
-row [3]: "F3"	0.010895111765093148	-0.008040088713702414	0.047514137896571926
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.7164753792040868 
-            centroid [2] = 2.9358032337839095 
-            centroid [3] = 3.428957254834133 
-    item [3]:
-        class = "SSCP" 
-        name = "\ep" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.12325126739884948	0.007977535637010664	0.014713593912108792
-row [2]: "F2"	0.007977535637010664	0.08256097042007325	0.05045318851511985
-row [3]: "F3"	0.014713593912108792	0.05045318851511985	0.07438879619774624
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.763135965884448 
-            centroid [2] = 3.2349692064700704 
-            centroid [3] = 3.391162711212973 
-    item [4]:
-        class = "SSCP" 
-        name = "\ic" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.17647612299370122	-0.02063302628174945	-0.005697855587989537
-row [2]: "F2"	-0.02063302628174945	0.07460647712948608	0.049614643436171904
-row [3]: "F3"	-0.005697855587989537	0.049614643436171904	0.05109063361148622
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.585018518814506 
-            centroid [2] = 3.3000373347537915 
-            centroid [3] = 3.408994217433088 
-    item [5]:
-        class = "SSCP" 
-        name = "\o/" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.09908822912163297	0.015541819671631943	0.013775375020258235
-row [2]: "F2"	0.015541819671631943	0.056684926460000895	0.025520496405190735
-row [3]: "F3"	0.013775375020258235	0.025520496405190735	0.03527931367299332
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.643922974695668 
-            centroid [2] = 3.174039321160438 
-            centroid [3] = 3.353368431962918 
-    item [6]:
-        class = "SSCP" 
-        name = "\yc" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.11604848853561119	0.004638097797573026	0.014234726305389083
-row [2]: "F2"	0.004638097797573026	0.08910829880242509	0.05772847540761414
-row [3]: "F3"	0.014234726305389083	0.05772847540761414	0.059535232541858635
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.638814682287954 
-            centroid [2] = 3.1732312476628675 
-            centroid [3] = 3.3702977370451324 
-    item [7]:
-        class = "SSCP" 
-        name = "a" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.13373820303933756	0.043918895913021325	0.009483926777506332
-row [2]: "F2"	0.043918895913021325	0.07185378889695229	0.017946300429884602
-row [3]: "F3"	0.009483926777506332	0.017946300429884602	0.056974025547855855
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.8971834611872826 
-            centroid [2] = 3.1126947721089406 
-            centroid [3] = 3.407776548856642 
-    item [8]:
-        class = "SSCP" 
-        name = "e" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.16197482567602983	0.002298374666522604	0.012604046776579057
-row [2]: "F2"	0.002298374666522604	0.061562730940411266	0.04116004354455001
-row [3]: "F3"	0.012604046776579057	0.04116004354455001	0.043223685110515324
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.606165152281404 
-            centroid [2] = 3.3033427054078994 
-            centroid [3] = 3.406164846453073 
-    item [9]:
-        class = "SSCP" 
-        name = "i" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.15428266876841684	0.013276386826015094	0.012320309785365528
-row [2]: "F2"	0.013276386826015094	0.055510083642718484	0.03784952638535774
-row [3]: "F3"	0.012320309785365528	0.03784952638535774	0.05006027585038744
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.464795953065796 
-            centroid [2] = 3.3427245505456598 
-            centroid [3] = 3.4407579626513725 
-    item [10]:
-        class = "SSCP" 
-        name = "o" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.06861045715394555	0.035093223137004324	-0.0023606822102749565
-row [2]: "F2"	0.035093223137004324	0.09021650740495563	0.006512208041729222
-row [3]: "F3"	-0.0023606822102749565	0.006512208041729222	0.07700471610942107
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.6855835642500985 
-            centroid [2] = 2.9572369144661237 
-            centroid [3] = 3.392825472161562 
-    item [11]:
-        class = "SSCP" 
-        name = "u" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.1699999779614091	0.021885675183543243	0.0161142422435738
-row [2]: "F2"	0.021885675183543243	0.1039591160562141	-0.00200153380888963
-row [3]: "F3"	0.0161142422435738	-0.00200153380888963	0.07540959694619889
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.5268057305429337 
-            centroid [2] = 2.9058781887555085 
-            centroid [3] = 3.3643364436087393 
-    item [12]:
-        class = "SSCP" 
-        name = "y" 
-        numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-        numberOfRows = 3 
-row [1]: "F1"	0.18909356327139404	0.014010234547664086	0.020273089008566562
-row [2]: "F2"	0.014010234547664086	0.0734940861707178	0.054864607563280654
-row [3]: "F3"	0.020273089008566562	0.054864607563280654	0.08826214244880358
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 2.4797538722099293 
-            centroid [2] = 3.236360871766193 
-            centroid [3] = 3.341855942791658 
-total? <exists> 
-numberOfColumns = 3 
-columnLabels []: 
-"F1"	"F2"	"F3"	
-numberOfRows = 3 
-row [1]: "F1"	11.43514736353313	-3.8028772011835716	0.7254293171774202
-row [2]: "F2"	-3.8028772011835716	13.851776134183913	0.4932432271899076
-row [3]: "F3"	0.7254293171774202	0.4932432271899076	1.2160403917859772
-numberOfObservations = 600 
-centroid []: 
-    centroid [1] = 2.6530580896613785 
-    centroid [2] = 3.141360248760944 
-    centroid [3] = 3.3936382969155714 
-aprioriProbabilities []: 
-    aprioriProbabilities [1] = 0.08333333333333333 
-    aprioriProbabilities [2] = 0.08333333333333333 
-    aprioriProbabilities [3] = 0.08333333333333333 
-    aprioriProbabilities [4] = 0.08333333333333333 
-    aprioriProbabilities [5] = 0.08333333333333333 
-    aprioriProbabilities [6] = 0.08333333333333333 
-    aprioriProbabilities [7] = 0.08333333333333333 
-    aprioriProbabilities [8] = 0.08333333333333333 
-    aprioriProbabilities [9] = 0.08333333333333333 
-    aprioriProbabilities [10] = 0.08333333333333333 
-    aprioriProbabilities [11] = 0.08333333333333333 
-    aprioriProbabilities [12] = 0.08333333333333333 
-costs [] []: 
-    costs [1]:
-        costs [1] [1] = 0 
-        costs [1] [2] = 1 
-        costs [1] [3] = 1 
-        costs [1] [4] = 1 
-        costs [1] [5] = 1 
-        costs [1] [6] = 1 
-        costs [1] [7] = 1 
-        costs [1] [8] = 1 
-        costs [1] [9] = 1 
-        costs [1] [10] = 1 
-        costs [1] [11] = 1 
-        costs [1] [12] = 1 
-    costs [2]:
-        costs [2] [1] = 1 
-        costs [2] [2] = 0 
-        costs [2] [3] = 1 
-        costs [2] [4] = 1 
-        costs [2] [5] = 1 
-        costs [2] [6] = 1 
-        costs [2] [7] = 1 
-        costs [2] [8] = 1 
-        costs [2] [9] = 1 
-        costs [2] [10] = 1 
-        costs [2] [11] = 1 
-        costs [2] [12] = 1 
-    costs [3]:
-        costs [3] [1] = 1 
-        costs [3] [2] = 1 
-        costs [3] [3] = 0 
-        costs [3] [4] = 1 
-        costs [3] [5] = 1 
-        costs [3] [6] = 1 
-        costs [3] [7] = 1 
-        costs [3] [8] = 1 
-        costs [3] [9] = 1 
-        costs [3] [10] = 1 
-        costs [3] [11] = 1 
-        costs [3] [12] = 1 
-    costs [4]:
-        costs [4] [1] = 1 
-        costs [4] [2] = 1 
-        costs [4] [3] = 1 
-        costs [4] [4] = 0 
-        costs [4] [5] = 1 
-        costs [4] [6] = 1 
-        costs [4] [7] = 1 
-        costs [4] [8] = 1 
-        costs [4] [9] = 1 
-        costs [4] [10] = 1 
-        costs [4] [11] = 1 
-        costs [4] [12] = 1 
-    costs [5]:
-        costs [5] [1] = 1 
-        costs [5] [2] = 1 
-        costs [5] [3] = 1 
-        costs [5] [4] = 1 
-        costs [5] [5] = 0 
-        costs [5] [6] = 1 
-        costs [5] [7] = 1 
-        costs [5] [8] = 1 
-        costs [5] [9] = 1 
-        costs [5] [10] = 1 
-        costs [5] [11] = 1 
-        costs [5] [12] = 1 
-    costs [6]:
-        costs [6] [1] = 1 
-        costs [6] [2] = 1 
-        costs [6] [3] = 1 
-        costs [6] [4] = 1 
-        costs [6] [5] = 1 
-        costs [6] [6] = 0 
-        costs [6] [7] = 1 
-        costs [6] [8] = 1 
-        costs [6] [9] = 1 
-        costs [6] [10] = 1 
-        costs [6] [11] = 1 
-        costs [6] [12] = 1 
-    costs [7]:
-        costs [7] [1] = 1 
-        costs [7] [2] = 1 
-        costs [7] [3] = 1 
-        costs [7] [4] = 1 
-        costs [7] [5] = 1 
-        costs [7] [6] = 1 
-        costs [7] [7] = 0 
-        costs [7] [8] = 1 
-        costs [7] [9] = 1 
-        costs [7] [10] = 1 
-        costs [7] [11] = 1 
-        costs [7] [12] = 1 
-    costs [8]:
-        costs [8] [1] = 1 
-        costs [8] [2] = 1 
-        costs [8] [3] = 1 
-        costs [8] [4] = 1 
-        costs [8] [5] = 1 
-        costs [8] [6] = 1 
-        costs [8] [7] = 1 
-        costs [8] [8] = 0 
-        costs [8] [9] = 1 
-        costs [8] [10] = 1 
-        costs [8] [11] = 1 
-        costs [8] [12] = 1 
-    costs [9]:
-        costs [9] [1] = 1 
-        costs [9] [2] = 1 
-        costs [9] [3] = 1 
-        costs [9] [4] = 1 
-        costs [9] [5] = 1 
-        costs [9] [6] = 1 
-        costs [9] [7] = 1 
-        costs [9] [8] = 1 
-        costs [9] [9] = 0 
-        costs [9] [10] = 1 
-        costs [9] [11] = 1 
-        costs [9] [12] = 1 
-    costs [10]:
-        costs [10] [1] = 1 
-        costs [10] [2] = 1 
-        costs [10] [3] = 1 
-        costs [10] [4] = 1 
-        costs [10] [5] = 1 
-        costs [10] [6] = 1 
-        costs [10] [7] = 1 
-        costs [10] [8] = 1 
-        costs [10] [9] = 1 
-        costs [10] [10] = 0 
-        costs [10] [11] = 1 
-        costs [10] [12] = 1 
-    costs [11]:
-        costs [11] [1] = 1 
-        costs [11] [2] = 1 
-        costs [11] [3] = 1 
-        costs [11] [4] = 1 
-        costs [11] [5] = 1 
-        costs [11] [6] = 1 
-        costs [11] [7] = 1 
-        costs [11] [8] = 1 
-        costs [11] [9] = 1 
-        costs [11] [10] = 1 
-        costs [11] [11] = 0 
-        costs [11] [12] = 1 
-    costs [12]:
-        costs [12] [1] = 1 
-        costs [12] [2] = 1 
-        costs [12] [3] = 1 
-        costs [12] [4] = 1 
-        costs [12] [5] = 1 
-        costs [12] [6] = 1 
-        costs [12] [7] = 1 
-        costs [12] [8] = 1 
-        costs [12] [9] = 1 
-        costs [12] [10] = 1 
-        costs [12] [11] = 1 
-        costs [12] [12] = 0 
diff --git a/dwtest/runAllTests.praat b/dwtest/runAllTests.praat
index 95766f2..147f247 100644
--- a/dwtest/runAllTests.praat
+++ b/dwtest/runAllTests.praat
@@ -6,22 +6,6 @@ for itest to ntests
 	select tests
 	test$ = Get string... itest
 	printline 'test$'
-	report_before$ = Report memory use
 	execute 'test$'
-	@check_memory: report_before$, "   "
-endfor
-
-procedure check_memory: .report_before$, .preprint$
-	.m$[1] = "Strings: "
-	.m$[2] = "Arrays: "
-	.m$[3] = "Things: "
-	.report_after$ = Report memory use
-	appendInfoLine: .preprint$, "Memory:"
-	for .i to 3
-		.nb = extractNumber (.report_before$, .m$[.i])
-		.na = extractNumber (.report_after$, .m$[.i])
-		.post$ = if .nb <> .na then " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" else "" endif
-		appendInfoLine: .preprint$, .m$[.i], .nb, " ", .na, .post$
-	endfor
-endproc
-removeObject: tests
+	endif
+endfor
\ No newline at end of file
diff --git a/dwtest/test_Activation.praat b/dwtest/test_Activation.praat
deleted file mode 100644
index a271347..0000000
--- a/dwtest/test_Activation.praat
+++ /dev/null
@@ -1,25 +0,0 @@
-# test_Activation.praat
-# djmw 20151020
-
-appendInfoLine: "test_Activation.praat"
-
-for irun to 2
-	nrows = 10
-	for ncols to 10
-		tab = Create simple Matrix: "act", nrows, ncols, "0"
-		act = To Activation
-		Formula:  "randomUniform (0, 0.99)"
-		mat = To Matrix
-		for irow to nrows
-			for icol to ncols
-				val = Get value in cell: irow, icol
-				assert 0<= val and val <= 0.99; 'irow' icol' 'val'
-			endfor
-		endfor
-		removeObject: tab, act, mat
-	endfor
-endfor
-		
-appendInfoLine: "test_Activation.praat OK"
-
-
diff --git a/dwtest/test_Confusion.praat b/dwtest/test_Confusion.praat
index f486166..866d2ec 100644
--- a/dwtest/test_Confusion.praat
+++ b/dwtest/test_Confusion.praat
@@ -1,12 +1,11 @@
 # test_Confusion.praat
-# djmw 20110511, 20151020
-
-printline test_Confusion.praat
+# djmw 20110511
 
 l$[1] = "u"
 l$[2] = "i"
 l$[3] = "e"
 nlabels = 3
+printline Confusion test...
 c1 = Create simple Confusion... test 'l$[1]'  'l$[2]'   'l$[3]' 
 nrows = Get number of rows
 ncols = Get number of columns
@@ -61,5 +60,4 @@ assert v = 8
 
 plus c2
 Remove
-
-printline test_Confusion.praat OK
+printline Confusion test... ok
diff --git a/dwtest/test_Covariance.praat b/dwtest/test_Covariance.praat
deleted file mode 100644
index 5e7e38b..0000000
--- a/dwtest/test_Covariance.praat
+++ /dev/null
@@ -1,61 +0,0 @@
-# test_Covariance.praat
-# djmw 2015
-
-appendInfoLine: "test_Covariance"
-appendInfoLine: tab$, "Morrison_example_7.3"
- at test_Morrison_example_7_3
-appendInfoLine: tab$, "Morrison_example_3.5"
- at test_Morrison_example_3_5
-appendInfoLine: "test_Covariance OK"
-
-procedure test_Morrison_example_7_3
-	.p = 2
-	.k = 2
-	.sm = Create simple Covariance: "sm", "4.32 1.88 9.18", "0 0",  32
-	.numberOfColumns = Get number of columns
-	.numberOfRows = Get number of rows
-	assert .numberOfColumns = .p and .numberOfRows = .p; "nrows = ncols = 2"
-	.numberOfObservations = Get number of observations
-	assert .numberOfObservations = 32; "numberOfObservations" 'no' <> 32
-	.dof = Get degrees of freedom
-	assert .dof = .numberOfObservations - 1 ; "dof = no-1", 'dof'
-	.x = Get centroid element: 1
-	assert .x = 0
-	.c11 = Get value: 1, 1
-	.c22 = Get value: 2, 2
-	assert .c11 = 4.32
-	assert .c22 = 9.18
-	.ln_det_sm = Get ln(determinant)
-	.det_sm = exp (.ln_det_sm)
-	.det_sm$ = fixed$ (.det_sm, 3)
-	assert .det_sm$ = "36.123"
-
-	.sf = Create simple Covariance: "sf", "2.52 1.90 10.06", "0 0",  32
-	.ln_det_sf = Get ln(determinant)
-	.det_sf = exp (.ln_det_sf)
-	.det_sf$ = fixed$ (.det_sf, 3)
-	assert .det_sf$ = "21.741"
-	selectObject: .sm, .sf
-	.report$ = Report equality of covariances
-	.chisq = extractNumber (.report$, "Chi-squared (bartlett) = ")
-	.chisq$ = fixed$ (.chisq, 2)
-	assert .chisq$ = "2.72" 
-	.cInv = 1 - (2*.p^2+3*.p-1)/(6*(.p+1)*(.k-1))*(1/31+1/31-1/62)
-	appendInfoLine: "C^-1 = ", .cInv
-	removeObject: .sm, .sf
-endproc
-
-procedure test_Morrison_example_3_5
-	.cor = Create simple Correlation: "correlation", "1.0 0.69 0.43 1.0 0.3 1.0", "0.0 0.0 0.0", 54
-	.report$ = Get diagonality (bartlett): 1
- 	.chisq = extractNumber (.report$, "chisq = ")
-	.chisq$ = fixed$ (.chisq, 2)
-	assert .chisq$ = "43.54"
-	.ln_det_r = Get ln(determinant)
-	.det_r = exp (.ln_det_r)
-	.det_r$ = fixed$ (.det_r, 3)
-	assert .det_r$ = "0.427"
-	removeObject: .cor
-endproc
-
-;Difference
\ No newline at end of file
diff --git a/dwtest/test_Discriminant.praat b/dwtest/test_Discriminant.praat
index 89f3d88..6277964 100644
--- a/dwtest/test_Discriminant.praat
+++ b/dwtest/test_Discriminant.praat
@@ -1,48 +1,18 @@
 # test_Discriminant.praat
-# djmw 20110518, 20141030, 20150128
+# djmw 20110518, 20141030
 
 appendInfoLine: "test_Discriminant"
 
-# old format
-appendInfoLine: tab$ + "Read Discriminant format 0 from disk"
-discriminant[1] = Read from file: "pols_50males_format0.Discriminant"
-
-tableOfReal = Create TableOfReal (Pols 1973): "no"
+t = Create TableOfReal (Pols 1973): "no"
 Formula: "log10(self)"
 
-discriminant[2] = To Discriminant
-
-appendInfoLine: tab$ + "Query old and new Discriminant"
- at query: discriminant[1]
- at query: discriminant[2]
-
-appendInfoLine: tab$ + "Assert old and new Discriminant classify the same"
- at classify: discriminant[1], tableOfReal, 1
- at classify: discriminant[2], tableOfReal, 2
-assert classify.fc[1] = classify.fc[2]
-
-procedure classify: .discriminant, .tableOfReal, .index
-	selectObject: .discriminant, .tableOfReal
-	.classificationTable = To ClassificationTable: "yes", "yes"
-	.confusion = To Confusion: "no"
-	.fc[.index] = Get fraction correct
-	assert .fc[.index] -0.74 < 0.00001
-	removeObject: .classificationTable, .confusion
-endproc
-
-procedure query: .discriminant
-	for .ieigen to 3
-		.eigenvalue[.ieigen] = Get eigenvalue: .ieigen
-	endfor
-	.numberOfEigenvectors = Get number of eigenvectors
-	.dimension = Get eigenvector dimension
-	assert (.eigenvalue[1] - 21.139) < 0.00001
-	assert (.eigenvalue[2] - 4.35530) < 0.00001
-	assert (.eigenvalue[3] - 0.68289) < 0.00001
-	assert .numberOfEigenvectors = 3
-	assert .dimension = 3
-endproc
+dis = To Discriminant
+plus t
+clas = To ClassificationTable: "yes", "yes"
+conf = To Confusion: "no"
+fc = Get fraction correct
+assert fc -0.74 < 0.00001
 
-removeObject: discriminant[2], tableOfReal, discriminant[1]
+removeObject: t, dis, clas, conf
 
 appendInfoLine: "test_Discriminant OK"
diff --git a/dwtest/test_FFNet.praat b/dwtest/test_FFNet.praat
index ee2058d..bb034d5 100644
--- a/dwtest/test_FFNet.praat
+++ b/dwtest/test_FFNet.praat
@@ -8,14 +8,7 @@ ffnet = selected ("FFNet")
 pattern = selected ("Pattern")
 cat = selected ("Categories")
 
-selectObject: pattern, cat
-tab = To TableOfReal
-To Pattern and Categories: 0, 0, 0, 0
-Remove
-removeObject: tab
-
 ntries = 10
-selectObject: ffnet, pattern, cat
 error1 = Get total costs... Minimum-squared-error
 tab = Create Table with column names... results ntries costsb  costsa fc 
 
@@ -49,30 +42,6 @@ plus pattern
 plus cat
 Remove
 
- at test_openSave
-
 printline FFNet ok
 
-procedure test_openSave
-	.ffnet_read= Read from file: "iris_4-2-3-3.FFNet"
-	Create iris example: 2, 3
-	.ffnet = selected ("FFNet")
-	.pattern = selected ("Pattern")
-	.categories = selected ("Categories")
-
-	selectObject: .ffnet
-	Save as binary file: "kanweg.FFNet"
-	.ffnet_read2 = Read from file: "kanweg.FFNet"
-	# are they the same ??
-
-	selectObject: .ffnet_read, .pattern, .categories
-	.costs[1] = Get total costs: "Minimum-squared-error"
-	selectObject: .ffnet_read, .pattern, .categories
-	Learn: 100, 1e-7, "Minimum-squared-error"
-	.costs[2] = Get total costs: "Minimum-squared-error"
-	assert .costs[1] >= .costs[2]
-
-	removeObject: 	.ffnet, .ffnet_read, .ffnet_read2, .pattern, .categories
-endproc
-
 
diff --git a/dwtest/test_HMM.praat b/dwtest/test_HMM.praat
deleted file mode 100644
index e55c0be..0000000
--- a/dwtest/test_HMM.praat
+++ /dev/null
@@ -1,64 +0,0 @@
-# test_HMM.praat
-
-appendInfoLine: "test_HMM"
- at mm
- at hmms_test_multiple_os
-
-
-# two state not hidden model
-procedure mm
-	.mm1 = Create simple HMM: "m1", "no", "1 2", ""
-	Set transition probabilities: 1, "0.8 0.2"
-	Set transition probabilities: 2, "0.4 0.6"
-
-	# check sum of p leaving
-	for .it to 10
- 		.psum = 0
-		for .istate to 2
-			.lnp = Get p (time, state): .it , .istate
-			.p = exp(.lnp)
-			.psum += .p
-		endfor
- 		assert (.psum>0.999 and .psum<1.001)
-	endfor
-	.os = To HMMObservationSequence: 0, 2000
-	.mm2 = To HMM: 0, "no"
-	plusObject: .os
-	Learn: 0.001, 0.00000001, "no"
-
-	selectObject: .mm2
-  	# check sum of p leaving
-	for .it to 10
-		.psum = 0
-		for .istate to 2
-			.p = Get p (time, state): .it, .istate
- 			.p = exp(.p)
-			.psum += .p
-		endfor
-		assert (.psum>0.999 and .psum<1.001)
-	endfor
-
-	removeObject: .mm1, .mm2, .os
-endproc
-
-procedure hmms_test_multiple_os
-	.hmm = Create simple HMM: "hmm1", "no", "1 2 3", ""
-	Set transition probabilities: 1, "0.5 0.1 0.4"
-	Set transition probabilities: 2, "0.3 0.5 0.2"
-	Set transition probabilities: 3, "0.4 0.1 0.5"
-	.os = To HMMObservationSequence: 0, 20000
-	.s = To Strings
-	.s1 = Extract part: 1, 10001
-	.os1 = To HMMObservationSequence
-	selectObject: .s
-	.s2 = Extract part: 10002, 20000
-	.os2 = To HMMObservationSequence
-
-	.hmm2 = Create simple HMM: "hmm3", "no", "1 2 3", ""
-	selectObject: .hmm2, .os1, .os2
-	Learn: 0001, 0.00000001, "no"
-	removeObject: .s, .s1, .s2, .hmm2, .os, .os1, .os2, .hmm
-endproc
-
-appendInfoLine: "test_HMM OK"
-
diff --git a/dwtest/test_KlattGrid.praat b/dwtest/test_KlattGrid.praat
index 7f07893..f0ef799 100644
--- a/dwtest/test_KlattGrid.praat
+++ b/dwtest/test_KlattGrid.praat
@@ -1,7 +1,6 @@
 # test_KlattGrid.praat
-# djmw 20151020
 
-printline test_KlattGrid.praat
+printline test_KlattGrid
 
 t = Create Table with column names... t 25 tier min max nf
 Set string value... 1 tier pitch
@@ -156,6 +155,4 @@ for i from nPhonationTiers+1 to 25
 	print 'newline$'
 endfor
 
-removeObject: kg, t
-
-printline test_KlattGrid.praat OK
\ No newline at end of file
+printline test_KlattGrid OK
\ No newline at end of file
diff --git a/dwtest/test_KruskalWallis.praat b/dwtest/test_KruskalWallis.praat
index d68a358..76d0dae 100644
--- a/dwtest/test_KruskalWallis.praat
+++ b/dwtest/test_KruskalWallis.praat
@@ -1,7 +1,6 @@
 # test_KruskalWallis.praat
 
-printline test_KruskalWallis.praat
-
+printline One-way Kruskal-Wallis test
 table = Read from file... Hayes_table_19.7.1.txt
 report$ = Report one-way Kruskal-Wallis... Data Group
 hprime = extractNumber (report$, "Chi squared:")
@@ -13,8 +12,6 @@ assert abs(hprime-13.8443) < 0.0001
 assert groupI = 139
 assert groupII = 200
 assert groupIII = 327
-removeObject: table
-
-printline test_KruskalWallis.praat OK
+printline One-way Kruskal-Wallis test OK
 
 
diff --git a/dwtest/test_MDS.praat b/dwtest/test_MDS.praat
index 37daa6b..e773897 100644
--- a/dwtest/test_MDS.praat
+++ b/dwtest/test_MDS.praat
@@ -16,21 +16,6 @@ c[5] = To Configuration (absolute mds)... 2 1e-05 50 1
 select dr
 c[6] = To Configuration (kruskal)... 2 2 "Primary approach" Formula1 1e-05 50 1
 
-selectObject: dr, c[1]
-c[6+1]= To Configuration (monotone mds): "Primary approach", 1e-7, 50, 1
-
-selectObject: dr, c[2]
-c[6+2] = To Configuration (i-spline mds): 1, 1, 1e-07, 50, 1
-selectObject: dr, c[3]
-c[6+3] = To Configuration (interval mds): 1e-05, 50, 1
-selectObject: dr, c[4]
-c[6+4] = To Configuration (ratio mds): 1e-05, 50, 1
-selectObject: dr, c[5]
-c[6+5] = To Configuration (absolute mds): 1e-05, 50, 1
-selectObject: dr, c[6]
-c[6+6] = To Configuration (kruskal): "Primary approach", "Formula1", 1e-05, 50, 1
-
-
 printline ... comparing configurations
 for i from 2 to  6
 	select c[1]
@@ -56,36 +41,26 @@ for i to 6
 endfor
 
 To Configuration (indscal)... 2 yes 1e-5 100 1
-ic[1] = selected ("Configuration")
-is[1] = selected ("Salience")
-
-selectObject: ic[1]
-for i to 6
-	plusObject: dist[i]
-endfor
-
-To Configuration (indscal): "yes", 1e-5, 100
-ic[2] = selected ("Configuration")
-is[2] = selected ("Salience")
+ic = selected ("Configuration")
+is = selected ("Salience")
 
 select c[1]
-plus ic[1]
+plus ic
 p3 = To Procrustes... no
-plus ic[1]
+plus ic
 cp3 = To Configuration
 plus c[1]
 p4 = To Procrustes... no
 call check_if_identity_transform  p4
 
 select dr
-plusObject: ic[1], ic[2]
-plusObject: is[1], is[2]
+plus ic
+plus is
 plus p3
 plus p4
 plus cp3
 for i to 6
 	plus c[i]
-	plus c[i+6]
 	plus ct[i]
 	plus dist[i]
 endfor
diff --git a/dwtest/test_OnewayAnova.praat b/dwtest/test_OnewayAnova.praat
index 444eca9..2868063 100644
--- a/dwtest/test_OnewayAnova.praat
+++ b/dwtest/test_OnewayAnova.praat
@@ -1,7 +1,7 @@
 # test_OnewayAnova.praat
 # djmw 20120625
 
-printline test_OnewayAnova.praat
+printline One-way Anova test
 
 # unequal groups hayes pg 371
 
@@ -14,6 +14,7 @@ total = extractNumber (report$, "Total")
 assert abs (between-22.57) < 0.01
 assert abs (within - 878.93) < 0.01
 assert abs (total - 901.5) < 0.1
-removeObject: table
 
-printline test_OnewayAnova.praat OK
+printline One-way Anova test OK
+
+
diff --git a/dwtest/test_Polygon_simplify.praat b/dwtest/test_Polygon_simplify.praat
index f5afaaa..5fa9240 100644
--- a/dwtest/test_Polygon_simplify.praat
+++ b/dwtest/test_Polygon_simplify.praat
@@ -2,6 +2,10 @@
 
 printline test_Polygon_simplify
 
+
+p = Create simple Polygon... p 0 0 0 1 0.25 0.75 -0.25 0.75 0.25 0.25 -0.25 0.25
+
+
 for j to 10
 	m = Create simple Matrix... ps 2 100  randomUniform (0,1)
 	p1x = Get value in cell... 1 1
diff --git a/dwtest/test_Procrustes.praat b/dwtest/test_Procrustes.praat
index c4a7a8a..210c974 100644
--- a/dwtest/test_Procrustes.praat
+++ b/dwtest/test_Procrustes.praat
@@ -10,157 +10,156 @@ printline
 printline ----- succeeded: test_Procrustes.praat (end) -----
 
 procedure test_procrustes_bg_19_4
-	# example Borg&Groenen section 19.4
-	printline   test example in Borg & Groenen section 19.4
-	nr = 4 
- 	nc = 2
-	s = 0.5
-	t1 = 1
- 	t2 = 2
-	alpha = 30
-	eps = 2.3e-16
+  # example Borg&Groenen section 19.4
+  printline   test example in Borg & Groenen section 19.4
+  nr = 4 
+  nc = 2
+  s = 0.5
+  t1 = 1
+  t2 = 2
+  alpha = 30
+  eps = 2.3e-16
   
-	Create Configuration... X nr nc 0
-	Set value... 1 1 1
-	Set value... 1 2 2
-	Set value... 2 1 -1
-	Set value... 2 2 2
-	Set value... 3 1 -1
-	Set value... 3 2 -2
-	Set value... 4 1 1
-	Set value... 4 2 -2
+  Create Configuration... X nr nc 0
+  Set value... 1 1 1
+  Set value... 1 2 2
+  Set value... 2 1 -1
+  Set value... 2 2 2
+  Set value... 3 1 -1
+  Set value... 3 2 -2
+  Set value... 4 1 1
+  Set value... 4 2 -2
   
-	for i to 4
-		Set row label (index)... i x_'i'
-	endfor
+  for i to 4
+    Set row label (index)... i x_'i'
+  endfor
   
-	Copy... Y
-	! Horizontal reflection
-	Invert dimension... 1
-	Rotate... 1 2 alpha
+  Copy... Y
+  ! Horizontal reflection
+  Invert dimension... 1
+  Rotate... 1 2 alpha
   
-	Formula...  0.5*self + (if col=1 then t1 else t2 fi)
+  Formula...  0.5*self + (if col=1 then t1 else t2 fi)
   
-	plus Configuration X
-	To Procrustes... 0
-	Rename... X_Y
-	plus Configuration Y
-	To Configuration
-	Rename... Z
-	Formula... self-Configuration_X[]
-	for i to 4
-		for j to 2
-			assert Configuration_Z[i,j] < nr*nc*eps; Configuration_Z['i','j'] < 'nr'*'nc'*'eps'
-		endfor
-	endfor
+  plus Configuration X
+  To Procrustes... 0
+  Rename... X_Y
+  plus Configuration Y
+  To Configuration
+  Rename... Z
+  Formula... self-Configuration_X[]
+  for i to 4
+    for j to 2
+      assert Configuration_Z[i,j] < nr*nc*eps; Configuration_Z['i','j'] < 'nr'*'nc'*'eps'
+    endfor
+  endfor
   
-	select Procrustes X_Y
-	Invert
-	Rename... X_Yi
-	for i to 2
-		tp = Get translation element... i
-		assert t'i' - tp < nr*nc*eps; translation['i']
-	endfor
-	sp = Get scale
-	assert s - tp < nr*nc*eps; scale
+  select Procrustes X_Y
+  Invert
+  Rename... X_Yi
+  for i to 2
+    tp = Get translation element... i
+    assert t'i' - tp < nr*nc*eps; translation['i']
+  endfor
+  sp = Get scale
+  assert s - tp < nr*nc*eps; scale
   
-	select Configuration X
-	plus Configuration Y
-	plus Configuration Z
-	plus Procrustes X_Y
-	plus Procrustes X_Yi
-	Remove
+  select Configuration X
+  plus Configuration Y
+  plus Configuration Z
+  plus Procrustes X_Y
+  plus Procrustes X_Yi
+  Remove
 endproc
 
 procedure test_procrustes_random_configurations numconf
-	printline   'numconf' randomly generated configurations of dimension 2^1 x 2 .. 2^12 x 2
-	nr = 2
-	print     Configuration:
-	for k to numconf
-		print  'k'
-		Create Configuration... X nr nc randomUniform(-1,1)
- 		Copy... Y
-		Invert dimension... 1
-		alpha = randomUniform (0,90)
-		Rotate... 1 2 alpha
-		t1 = randomUniform (0,2)
- 		t2 = randomUniform (0,2)
- 		scale = randomUniform(0.5,2)
-		Formula...  scale*self + (if col=1 then t1 else t2 fi)
+  printline   'numconf' randomly generated configurations of dimension 2^1 x 2 .. 2^12 x 2
+  nr = 2
+  print     Configuration:
+  for k to numconf
+    print  'k'
+    Create Configuration... X nr nc randomUniform(-1,1)
+    Copy... Y
+    Invert dimension... 1
+    alpha = randomUniform (0,90)
+    Rotate... 1 2 alpha
+    t1 = randomUniform (0,2)
+    t2 = randomUniform (0,2)
+    scale = randomUniform(0.5,2)
+    Formula...  scale*self + (if col=1 then t1 else t2 fi)
   
-		plus Configuration X
-		To Procrustes... 0
-		Rename... X_Y
-		plus Configuration Y
-		To Configuration
-		Rename... Z
-		Formula... self-Configuration_X[]
-		.eps = 10 * nr * nc * eps
-		for i to nr
- 			for j to 2
- 				assert Configuration_Z[i,j] < .eps; Configuration_Z['i','j'] < '.eps'
-			endfor
-		endfor
+    plus Configuration X
+    To Procrustes... 0
+    Rename... X_Y
+    plus Configuration Y
+    To Configuration
+    Rename... Z
+    Formula... self-Configuration_X[]
+    for i to nr
+      for j to 2
+        assert Configuration_Z[i,j] < nr*nc*eps; Configuration_Z['i','j'] < 'nr'*'nc'*'eps'
+      endfor
+    endfor
   
-		select Procrustes X_Y
-		Invert
-		Rename... X_Yi
-		# no need to test the translations, they need not be equal (see BG page 347)
-		sp = Get scale
- 		assert abs(scale - sp) < .eps; scale
+    select Procrustes X_Y
+    Invert
+    Rename... X_Yi
+    # no need to test the translations, they need not be equal (see BG page 347)
+    sp = Get scale
+    assert abs(scale - sp) < nr*nc*eps; scale
   
-		#   printline o.k.: nr='nr', nc='nc', alpha='alpha' degrees, scale='scale', t=('t1', 't2')
- 		nr *= 2
-		select Configuration X
-		plus Configuration Y
-		plus Configuration Z
-		plus Procrustes X_Y
-		plus Procrustes X_Yi
- 		Remove
-	endfor
+#   printline o.k.: nr='nr', nc='nc', alpha='alpha' degrees, scale='scale', t=('t1', 't2')
+    nr *= 2
+    select Configuration X
+    plus Configuration Y
+    plus Configuration Z
+    plus Procrustes X_Y
+    plus Procrustes X_Yi
+    Remove
+  endfor
 endproc
 
 procedure test_orthogional_procrustes_gvl_12_4_3
-	printline   test orthognal Procrustes transform (example 12.4.1 Golub & van Loan)
-	Create Configuration... a 4 2 0
-	Set value... 1 1 1
-	Set value... 2 1 3
-	Set value... 3 1 5
-	Set value... 4 1 7
-	Set value... 1 2 2
-	Set value... 2 2 4
-	Set value... 3 2 6
-	Set value... 4 2 8
+  printline   test orthognal Procrustes transform (example 12.4.1 Golub & van Loan)
+  Create Configuration... a 4 2 0
+  Set value... 1 1 1
+  Set value... 2 1 3
+  Set value... 3 1 5
+  Set value... 4 1 7
+  Set value... 1 2 2
+  Set value... 2 2 4
+  Set value... 3 2 6
+  Set value... 4 2 8
 
-	Create Configuration... b 4 2 0
-	Set value... 1 1 1.2
-	Set value... 2 1 2.9
-	Set value... 3 1 5.2
-	Set value... 4 1 6.8
-	Set value... 1 2 2.1
-	Set value... 2 2 4.3
-	Set value... 3 2 6.1
-	Set value... 4 2 8.1
+  Create Configuration... b 4 2 0
+  Set value... 1 1 1.2
+  Set value... 2 1 2.9
+  Set value... 3 1 5.2
+  Set value... 4 1 6.8
+  Set value... 1 2 2.1
+  Set value... 2 2 4.3
+  Set value... 3 2 6.1
+  Set value... 4 2 8.1
 
-	plus Configuration a
-	To Procrustes... y
+  plus Configuration a
+  To Procrustes... y
 
-	t2 = Get translation element... 2
-	assert t2 = 0
-	s = Get scale
-	assert s = 1; 
+  t2 = Get translation element... 2
+  assert t2 = 0
+  s = Get scale
+  assert s = 1; 
 
-	eps = 5e-5
-	r11 = Get transformation element... 1 1
-	r22 = Get transformation element... 2 2
-	assert r11-r22 < eps
-	assert r11-0.9999 < eps
-	r12 = Get transformation element... 1 2
-	r21 = Get transformation element... 2 1
-	assert r12+0.0126 < eps
-	assert r21-0.0126 < eps
+  eps = 5e-5
+  r11 = Get transformation element... 1 1
+  r22 = Get transformation element... 2 2
+  assert r11-r22 < eps
+  assert r11-0.9999 < eps
+  r12 = Get transformation element... 1 2
+  r21 = Get transformation element... 2 1
+  assert r12+0.0126 < eps
+  assert r21-0.0126 < eps
 
-	plus Configuration a
-	plus Configuration b
-	Remove
+  plus Configuration a
+  plus Configuration b
+  Remove
 endproc
diff --git a/dwtest/test_Sound_draw_where.praat b/dwtest/test_Sound_draw_where.praat
index 5626051..d60363f 100644
--- a/dwtest/test_Sound_draw_where.praat
+++ b/dwtest/test_Sound_draw_where.praat
@@ -75,6 +75,5 @@ Marks bottom every... 1 0.0005 n y y
 Marks bottom every... 1 0.001 y y y
 Draw inner box
 Text top... n Random amplitudes: parts > 0.5 blue only in the first half of every 0.001 s
-Remove
 printline Draw where... End tests
 
diff --git a/dwtest/test_Sound_paint_where.praat b/dwtest/test_Sound_paint_where.praat
index 754a1e1..0b8f56b 100644
--- a/dwtest/test_Sound_paint_where.praat
+++ b/dwtest/test_Sound_paint_where.praat
@@ -34,5 +34,5 @@ plus s1
 Select outer viewport... 0 6 9 12
 Paint enclosed... Grey 0 0 -1 1 yes
 Text top... n Paint enclosed: between sine and straight line
-removeObject: s1, s3
+
 
diff --git a/dwtest/test_SpeechSynthesizer.praat b/dwtest/test_SpeechSynthesizer.praat
index 4de2370..e20d364 100644
--- a/dwtest/test_SpeechSynthesizer.praat
+++ b/dwtest/test_SpeechSynthesizer.praat
@@ -1,37 +1,34 @@
 # test_SpeechSynthesizer.praat
 # djmw 20120130, 20120522
 
-appendInfoLine: "SpeechSynthesizer test..."
+printline SpeechSynthesizer test...
 
-variantslist = Create copy from FilesInMemory: "variants_names"
+variantslist = Create copy from FilesInMemory... variants_names
 nvariants = Get number of strings
 
-voiceslist = Create copy from FilesInMemory: "voices_names"
+voiceslist = Create copy from FilesInMemory... voices_names
 nvoices = Get number of strings
 
-numberOfSounds = 0
 for ivoice to nvoices
-	selectObject: voiceslist
-	voice$ = Get string: ivoice
-	appendInfoLine: tab$, voice$
+	select voiceslist
+	voice$ = Get string... ivoice
+	printline 'tab$' 'voice$'
 	for ivariant to nvariants
-		selectObject: variantslist
-		variant$ = Get string: ivariant
-		appendInfoLine: tab$, tab$, variant$
+		select variantslist
+		variant$ = Get string... ivariant
+		printline 'tab$''tab$' 'variant$'
 		# some voices have spaces!
-		ss = Create SpeechSynthesizer: voice$, variant$
-		sound = To Sound: "a e u", "no"
-		;Play
-		removeObject: ss, sound
-		numberOfSounds += 1
+		ss = Create SpeechSynthesizer... "'voice$'" 'variant$'
+		sound = To Sound... a e u
+		Remove
+		select ss
+		Remove
 	endfor
 endfor
-appendInfoLine: tab$, numberOfSounds, " sounds created/removed"
-appendInfoLine: tab$, "Writing and reading..."
-ss = Create SpeechSynthesizer: voice$, variant$
-Save as text file: "kanweg.SpeechSynthesizer"
-ss2 = Read from file: "kanweg.SpeechSynthesizer"
 
-removeObject: variantslist, voiceslist, ss, ss2
+select variantslist
+plus voiceslist
+Remove
 
-appendInfoLine: "SpeechSynthesizer test OK"
+
+printline SpeechSynthesizer test OK
diff --git a/dwtest/test_TableOfReal_extensions.praat b/dwtest/test_TableOfReal_extensions.praat
index 035f71b..432719a 100644
--- a/dwtest/test_TableOfReal_extensions.praat
+++ b/dwtest/test_TableOfReal_extensions.praat
@@ -35,6 +35,5 @@ procedure means_by_row_labels
 			endif
 			assert .dif <= eps
 		endfor
-	endfor
-	removeObject: 	.tab1, .tabm	
+	endfor		
 endproc
diff --git a/dwtest/test_bss_twoSoundsMixed.praat b/dwtest/test_bss_twoSoundsMixed.praat
deleted file mode 100644
index 891da76..0000000
--- a/dwtest/test_bss_twoSoundsMixed.praat
+++ /dev/null
@@ -1,31 +0,0 @@
-# bss_twoSoundsMixed.praat
-# test_bss_example_manual.praat
-# djmw 20151030
-
-Erase all
-
-synth = Create SpeechSynthesizer: "English", "default"
-s1 = To Sound: "This is some text.", "no"
-selectObject: synth
-selectObject: "SpeechSynthesizer English_default"
-Set speech output settings: 44100, 0.01, 80, 50, 145, "no", "IPA"
-
-s2 =To Sound: "abracadabra, abra", "no"
-plusObject: s1
-stereo = Combine to stereo
-Select inner viewport: 1, 6, 0.1, 1.9
-Draw: 0, 0, 0, 0, "no", "Curve"
-Draw inner box
-mm = Create simple MixingMatrix: "mm", 2, 2, "1.0 2.0 2.0 1.0"
-plus stereo
-mixed = Mix
-Select inner viewport: 1, 6, 2.1, 3.9
-Draw: 0, 0, 0, 0, "no", "Curve"
-Draw inner box
-
-unmixed = To Sound (bss): 0.1, 1, 20, 0.00021, 100, 0.001, "ffdiag"
-Select inner viewport: 1, 6, 4.1, 5.9
-Draw: 0, 0, 0, 0, "no", "Curve"
-Draw inner box
-
-removeObject: synth, stereo, s1, s2, mixed, mm, unmixed
diff --git a/dwtest/test_henzeZirklerMultivariateNormalityTest.praat b/dwtest/test_henzeZirklerMultivariateNormalityTest.praat
index 4e59b57..1afdfc0 100644
--- a/dwtest/test_henzeZirklerMultivariateNormalityTest.praat
+++ b/dwtest/test_henzeZirklerMultivariateNormalityTest.praat
@@ -7,9 +7,9 @@ ir50 = Extract row ranges...  1:50
 report$ = Report multivariate normality... 0
 tol = 1e-10
 stat = extractNumber (report$, "statistic:")
-assert abs(stat - 0.9583666347568522)<tol
+assert abs(stat - 0.958366538697967)<tol
 prob = extractNumber (report$, " normality:")
-assert abs (prob - 0.042925190989665477) < tol
+assert abs (prob - 0.04292525730817163) < tol
 lmean = extractNumber (report$, " mean:")
 assert abs (lmean  + 0.27940830765481794)<tol
 lvariance = extractNumber (report$, " variance:")
diff --git a/dwtest/test_sigma_ellipse.praat b/dwtest/test_sigma_ellipse.praat
index ca077b6..66dbe27 100644
--- a/dwtest/test_sigma_ellipse.praat
+++ b/dwtest/test_sigma_ellipse.praat
@@ -30,5 +30,3 @@ procedure get_p .nsigma
   Draw confidence ellipse... psigma 1 2  -6 6 -12 12 no
   Black
 endproc
-
-removeObject: tor, sscp
\ No newline at end of file
diff --git a/dwtools/Activation.cpp b/dwtools/Activation.cpp
index 97855ca..4a10d25 100644
--- a/dwtools/Activation.cpp
+++ b/dwtools/Activation.cpp
@@ -1,6 +1,6 @@
 /* Activation.cpp
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@ Thing_implement (Activation, Matrix, 2);
 int _Activation_checkElements (Activation me) {
 	for (long i = 1; i <= my ny; i++) {
 		for (long j = 1; j <= my nx; j++) {
-			if (my z[i][j] < 0.0 || my z[i][j] > 1) {
+			if (my z[i][j] < 0 || my z[i][j] > 1) {
 				return 0;
 			}
 		}
@@ -39,35 +39,42 @@ int _Activation_checkElements (Activation me) {
 	return 1;
 }
 
-void Activation_init (Activation me, long ny, long nx) {
-	Matrix_init (me, 1.0, nx, nx, 1.0, 1.0, 1.0, ny, ny, 1.0, 1.0);
+void Activation_init (I, long ny, long nx) {
+	iam (Activation);
+	double xmin = 1, xmax = nx, dx = 1, x1 = 1, ymin = 1, ymax = ny;
+	double dy = 1, y1 = 1;
+	my ny = ny; my nx = nx;
+	Matrix_init (me, xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
 }
 
-autoActivation Activation_create (long ny, long nx) {
+Activation Activation_create (long ny, long nx) {
 	try {
 		autoActivation me = Thing_new (Activation);
-		Activation_init (me.get(), ny, nx);
-		return me;
+		Activation_init (me.peek(), ny, nx);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Activation not created.");
 	}
 }
 
-autoActivation Matrix_to_Activation (Matrix me) {
+Activation Matrix_to_Activation (I) {
+	iam (Matrix);
 	try {
 		autoActivation thee = Activation_create (my ny, my nx);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Activation.");
 	}
 }
 
-autoMatrix Activation_to_Matrix (Activation me) {
+Matrix Activation_to_Matrix (I) {
+	iam (Activation);
 	try {
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
+		                                 my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/dwtools/Activation.h b/dwtools/Activation.h
index 74188fb..14c0192 100644
--- a/dwtools/Activation.h
+++ b/dwtools/Activation.h
@@ -2,7 +2,7 @@
 #define _Activation_h_
 /* Activation.h
  * 
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  * 
  * This program is free oftware; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,13 +43,14 @@ Thing_define (Activation, Matrix) {
    z[iy][ix]		:the activities
 */
 
-void Activation_init (Activation me, long ny, long nx);
+void Activation_init (I, long ny, long nx);
 
-autoActivation Activation_create (long ny, long nx);
+Activation Activation_create (long ny, long nx);
 
-autoActivation Matrix_to_Activation (Matrix me);
+Activation Matrix_to_Activation (I);
+
+Matrix Activation_to_Matrix (I);
 
-autoMatrix Activation_to_Matrix (Activation me);
 
 int _Activation_checkElements (Activation me);
 /* Return 1 if all elements are in interval [0,1] else 0. */
diff --git a/dwtools/AffineTransform.cpp b/dwtools/AffineTransform.cpp
index c65df14..649fdf9 100644
--- a/dwtools/AffineTransform.cpp
+++ b/dwtools/AffineTransform.cpp
@@ -1,6 +1,6 @@
 /* AffineTransform.cpp
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -61,23 +61,24 @@ void structAffineTransform :: v_transform (double **in, long nrows, double **out
 	}
 }
 
-autoAffineTransform structAffineTransform :: v_invert () {
+Any structAffineTransform :: v_invert () {
 	autoAffineTransform thee = Data_copy (this);
 	double tolerance = 0.000001;
 
 	NUMpseudoInverse (r, n, n, thy r, tolerance);
-	for (long i = 1; i <= n; i ++) {
-		thy t[i] = 0.0;
-		for (long j = 1; j <= thy n; j ++) {
+	for (long i = 1; i <= n; i++) {
+		thy t[i] = 0;
+		for (long j = 1; j <= thy n; j++) {
 			thy t[i] -= thy r[i][j] * t[j];
 		}
 	}
-	return thee;
+	return thee.transfer();
 }
 
-Thing_implement (AffineTransform, Daata, 0);
+Thing_implement (AffineTransform, Data, 0);
 
-void AffineTransform_init (AffineTransform me, long n) {
+void AffineTransform_init (I, long n) {
+	iam (AffineTransform);
 	if (n < 1) {
 		Melder_throw (U"Dimensionality must be at least 1.");
 	}
@@ -86,43 +87,47 @@ void AffineTransform_init (AffineTransform me, long n) {
 	my t = NUMvector<double> (1, n);
 }
 
-autoAffineTransform AffineTransform_create (long n) {
+AffineTransform AffineTransform_create (long n) {
 	try {
 		autoAffineTransform me = Thing_new (AffineTransform);
-		AffineTransform_init (me.get(), n);
-		return me;
+		AffineTransform_init (me.peek(), n);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"AffineTransform not created.");
 	}
 }
 
-autoAffineTransform AffineTransform_invert (AffineTransform me) {
-	return my v_invert ();
+Any AffineTransform_invert (I) {
+	iam (AffineTransform);
+	AffineTransform thee = (AffineTransform) my v_invert ();
+	return thee;
 }
 
-autoTableOfReal AffineTransform_extractMatrix (AffineTransform me) {
+TableOfReal AffineTransform_extractMatrix (I) {
+	iam (AffineTransform);
 	try {
 		autoTableOfReal thee = TableOfReal_create (my n, my n);
 		NUMmatrix_copyElements (my r, thy data, 1, my n, 1, my n);
-		for (long i = 1; i <= my n; i ++) {
-			char32 label [40];
-			Melder_sprint (label,40, i);
-			TableOfReal_setRowLabel (thee.get(), i, label);
-			TableOfReal_setColumnLabel (thee.get(), i, label);
+		for (long i = 1; i <= my n; i++) {
+			char32 label[40];
+			Melder_sprint (label,40, i);   // ppgb: 20 chars is niet genoeg voor een long
+			TableOfReal_setRowLabel (thee.peek(), i, label);
+			TableOfReal_setColumnLabel (thee.peek(), i, label);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": transformation matrix not extracted.");
 	}
 }
 
-autoTableOfReal AffineTransform_extractTranslationVector (AffineTransform me) {
+TableOfReal AffineTransform_extractTranslationVector (I) {
+	iam (AffineTransform);
 	try {
 		autoTableOfReal thee = TableOfReal_create (1, my n);
 		for (long i = 1; i <= my n; i++) {
 			thy data[1][i] = my t[i];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": translation vector not extracted.");
 	}
diff --git a/dwtools/AffineTransform.h b/dwtools/AffineTransform.h
index 988540e..a5e06b1 100644
--- a/dwtools/AffineTransform.h
+++ b/dwtools/AffineTransform.h
@@ -2,7 +2,7 @@
 #define _AffineTransform_h_
 /* AffineTransform.h
  *
- * Copyright (C) 2001-2011, 2015 David Weenink
+ * Copyright (C) 2001-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,19 +23,20 @@
 #include "TableOfReal.h"
 
 #include "AffineTransform_def.h"
+oo_CLASS_CREATE (AffineTransform, Data);
 
-void AffineTransform_init (AffineTransform me, long n);
+void AffineTransform_init (I, long n);
 
-autoAffineTransform AffineTransform_create (long n);
+AffineTransform AffineTransform_create (long n);
 
-autoAffineTransform AffineTransform_invert (AffineTransform me);
+Any AffineTransform_invert (I);
 /*
 	Get inverse transform for y = A x + t:
 		x = A^(-1)y - A^(-1) t
 */
 
-autoTableOfReal AffineTransform_extractMatrix (AffineTransform me);
+TableOfReal AffineTransform_extractMatrix (I);
 
-autoTableOfReal AffineTransform_extractTranslationVector (AffineTransform me);
+TableOfReal AffineTransform_extractTranslationVector (I);
 
 #endif /* _AffineTransform_h_ */
diff --git a/dwtools/AffineTransform_def.h b/dwtools/AffineTransform_def.h
index c98b3fd..0dc6be6 100644
--- a/dwtools/AffineTransform_def.h
+++ b/dwtools/AffineTransform_def.h
@@ -1,6 +1,6 @@
 /* AffineTransform_def.h
  * 
- * Copyright (C) 1993-2008,2015 David Weenink
+ * Copyright (C) 1993-2008 David Weenink
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,15 +19,16 @@
 
 
 #define ooSTRUCT AffineTransform
-oo_DEFINE_CLASS (AffineTransform, Daata)
+oo_DEFINE_CLASS (AffineTransform, Data)
 
 	oo_LONG (n)
 	oo_DOUBLE_VECTOR (t, n)
 	oo_DOUBLE_MATRIX (r, n, n)
 
 	#if oo_DECLARING
-		virtual void v_transform (double **in, long nrows, double **out);
-		virtual autoAffineTransform v_invert ();
+		// new methods:
+			virtual void v_transform (double **in, long nrows, double **out);
+			virtual Any v_invert ();
 	#endif
 
 oo_END_CLASS(AffineTransform)
diff --git a/dwtools/CC.cpp b/dwtools/CC.cpp
index 9ad4500..069f836 100644
--- a/dwtools/CC.cpp
+++ b/dwtools/CC.cpp
@@ -1,6 +1,6 @@
 /* CC.cpp
  *
- * Copyright (C) 1993-2012, 2014-2015 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
  djmw 20011016 removed some causes for compiler warnings
  djmw 20020315 GPL header
  djmw 20061212 Changed info to Melder_writeLine<x> format.
- djmw 20071012 Added: oo_CAN_WRITE_AS_ENCODING.h
+ djmw 20071012 Added: o_CAN_WRITE_AS_ENCODING.h
  djmw 20080122 float -> double
  djmw 20080513 CC_getValue
  */
@@ -51,7 +51,7 @@
 Thing_implement (CC, Sampled, 1);
 
 void structCC :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:", xmin, U" to ", xmax, U" seconds");
 	MelderInfo_writeLine (U"Number of frames: ", nx);
 	MelderInfo_writeLine (U"Time step: ", dx, U" seconds");
@@ -66,7 +66,9 @@ void CC_Frame_init (CC_Frame me, long numberOfCoefficients) {
 	my numberOfCoefficients = numberOfCoefficients;
 }
 
-void CC_init (CC me, double tmin, double tmax, long nt, double dt, double t1, long maximumNumberOfCoefficients, double fmin, double fmax) {
+void CC_init (I, double tmin, double tmax, long nt, double dt, double t1,
+              long maximumNumberOfCoefficients, double fmin, double fmax) {
+	iam (CC);
 	my fmin = fmin;
 	my fmax = fmax;
 	my maximumNumberOfCoefficients = maximumNumberOfCoefficients;
@@ -74,45 +76,42 @@ void CC_init (CC me, double tmin, double tmax, long nt, double dt, double t1, lo
 	my frame = NUMvector<structCC_Frame> (1, nt);
 }
 
-autoMatrix CC_to_Matrix (CC me) {
+Matrix CC_to_Matrix (I) {
+	iam (CC);
 	try {
-		// find number of coefficients by quering all frames.
-		// We cannot use maximumNumberOfCoefficiennts because this number is only used to calculate the inverse
-		long numberOfCoefficients = 0;
-		for (long i = 1; i <= my nx; i++) {
-			CC_Frame cf = & my frame[i];
-			if (cf -> numberOfCoefficients > numberOfCoefficients) {
-				numberOfCoefficients = cf -> numberOfCoefficients;
-			}
-		}
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1.0, numberOfCoefficients, numberOfCoefficients, 1.0, 1.0);
-		
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
+		                                 1, my maximumNumberOfCoefficients, my maximumNumberOfCoefficients, 1, 1);
+
 		for (long i = 1; i <= my nx; i++) {
 			CC_Frame cf = & my frame[i];
 			for (long j = 1; j <= cf -> numberOfCoefficients; j++) {
 				thy z[j][i] = cf -> c[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-void CC_paint (CC me, Graphics g, double xmin, double xmax, long cmin, long cmax, double minimum, double maximum, int garnish) {
+void CC_paint (I, Graphics g, double xmin, double xmax, long cmin,
+               long cmax, double minimum, double maximum, int garnish) {
+	iam (CC);
 	autoMatrix thee = CC_to_Matrix (me);
 
-	Matrix_paintCells (thee.get(), g, xmin, xmax, cmin, cmax, minimum, maximum);
+	Matrix_paintCells (thee.peek(), g, xmin, xmax, cmin, cmax, minimum, maximum);
 
 	if (garnish) {
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Coefficients");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Coefficients");
 	}
 }
 
-void CC_drawC0 (CC me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void CC_drawC0 (I, Graphics g, double xmin, double xmax, double ymin,
+                double ymax, int garnish) {
+	iam (CC);
 	(void) garnish;
 
 	if (xmin >= xmax) {
@@ -141,7 +140,8 @@ void CC_drawC0 (CC me, Graphics g, double xmin, double xmax, double ymin, double
 	Graphics_unsetInner (g);
 }
 
-void CC_getNumberOfCoefficients_extrema (CC me, long startframe, long endframe, long *p_min, long *p_max) {
+void CC_getNumberOfCoefficients_extrema (I, long startframe, long endframe, long *min, long *max) {
+	iam (CC);
 
 	Melder_assert (startframe <= endframe);
 
@@ -155,28 +155,23 @@ void CC_getNumberOfCoefficients_extrema (CC me, long startframe, long endframe,
 		endframe = my nx;
 	}
 
-	long min = my maximumNumberOfCoefficients;
-	long max = 0;
+	*min = my maximumNumberOfCoefficients;
+	*max = 0;
 
 	for (long i = startframe; i <= endframe; i++) {
 		CC_Frame f = & my frame[i];
 		long nc = f -> numberOfCoefficients;
 
-		if (nc < min) {
-			min = nc;
-		} else if (nc > max) {
-			max = nc;
+		if (nc < *min) {
+			*min = nc;
+		} else if (nc > *max) {
+			*max = nc;
 		}
 	}
-	if (p_min) {
-		*p_min = min;
-	}
-	if (p_max) {
-		*p_max = max;
-	}
 }
 
-long CC_getMinimumNumberOfCoefficients (CC me, long startframe, long endframe) {
+long CC_getMinimumNumberOfCoefficients (I, long startframe, long endframe) {
+	iam (CC);
 	long min, max;
 
 	CC_getNumberOfCoefficients_extrema (me, startframe, endframe, &min, &max);
@@ -184,7 +179,8 @@ long CC_getMinimumNumberOfCoefficients (CC me, long startframe, long endframe) {
 	return min;
 }
 
-long CC_getMaximumNumberOfCoefficients (CC me, long startframe, long endframe) {
+long CC_getMaximumNumberOfCoefficients (I, long startframe, long endframe) {
+	iam (CC);
 	long min, max;
 
 	CC_getNumberOfCoefficients_extrema (me, startframe, endframe, &min, &max);
@@ -192,7 +188,8 @@ long CC_getMaximumNumberOfCoefficients (CC me, long startframe, long endframe) {
 	return max;
 }
 
-long CC_getNumberOfCoefficients (CC me, long iframe) {
+long CC_getNumberOfCoefficients (I, long iframe) {
+	iam (CC);
 	if (iframe < 1 || iframe > my nx) {
 		return 0;
 	}
@@ -201,7 +198,8 @@ long CC_getNumberOfCoefficients (CC me, long iframe) {
 }
 
 
-double CC_getValueInFrame (CC me, long iframe, long index) {
+double CC_getValueInFrame (I, long iframe, long index) {
+	iam (CC);
 	if (iframe < 1 || iframe > my nx) {
 		return NUMundefined;
 	}
@@ -209,7 +207,14 @@ double CC_getValueInFrame (CC me, long iframe, long index) {
 	return index > cf -> numberOfCoefficients ? NUMundefined : cf -> c[index];
 }
 
-double CC_getValue (CC me, double t, long index) {
+double CC_getValueAtTime (I, double t, long index) {
+	iam (CC);
+	long iframe = Sampled_xToNearestIndex (me, t);
+	return CC_getValueInFrame (me, iframe, index);
+}
+
+double CC_getValue (I, double t, long index) {
+	iam (CC);
 	long iframe = Sampled_xToNearestIndex (me, t);
 	if (iframe < 1 || iframe > my nx) {
 		return NUMundefined;
@@ -218,7 +223,8 @@ double CC_getValue (CC me, double t, long index) {
 	return index > cf -> numberOfCoefficients ? NUMundefined : cf -> c[index];
 }
 
-double CC_getC0ValueInFrame (CC me, long iframe) {
+double CC_getC0ValueInFrame (I, long iframe) {
+	iam (CC);
 	if (iframe < 1 || iframe > my nx) {
 		return NUMundefined;
 	}
@@ -226,11 +232,10 @@ double CC_getC0ValueInFrame (CC me, long iframe) {
 	return cf -> c0;
 }
 
-#if 0
-double CC_getC0ValueAtTime (CC me, double t) {
+double CC_getC0ValueAtTime (I, double t) {
+	iam (CC);
 	long iframe = Sampled_xToNearestIndex (me, t);
 	return CC_getC0ValueInFrame (me, iframe);
 }
-#endif
 
 /* End of file CC.cpp */
diff --git a/dwtools/CC.h b/dwtools/CC.h
index 18555c7..d9983cf 100644
--- a/dwtools/CC.h
+++ b/dwtools/CC.h
@@ -30,28 +30,32 @@
 #include "Matrix.h"
 
 #include "CC_def.h"
+oo_CLASS_CREATE (CC, Sampled);
 
-void CC_init (CC me, double tmin, double tmax, long nt, double dt, double t1, long maximumNumberOfCoefficients, double fmin, double fmax);
+void CC_init (I, double tmin, double tmax, long nt, double dt, double t1,
+	long maximumNumberOfCoefficients, double fmin, double fmax);
 
-void CC_getNumberOfCoefficients_extrema (CC me, long startframe, long endframe, long *min, long *max);
+void CC_getNumberOfCoefficients_extrema (I, long startframe,
+	long endframe, long *min, long *max);
 
-long CC_getMinimumNumberOfCoefficients (CC me, long startframe, long endframe);
+long CC_getMinimumNumberOfCoefficients (I, long startframe, long endframe);
 
-long CC_getMaximumNumberOfCoefficients (CC me, long startframe, long endframe);
+long CC_getMaximumNumberOfCoefficients (I, long startframe, long endframe);
 
-long CC_getNumberOfCoefficients (CC me, long iframe);
+long CC_getNumberOfCoefficients (I, long iframe);
 
-double CC_getValueInFrame (CC me, long iframe, long index);
+double CC_getValueInFrame (I, long iframe, long index);
+double CC_getC0ValueInFrame (I, long iframe);
 
-double CC_getC0ValueInFrame (CC me, long iframe);
+void CC_paint (I, Graphics g, double xmin, double xmax, long cmin,
+	long cmax, double minimum, double maximum, int garnish);
 
-void CC_paint (CC me, Graphics g, double xmin, double xmax, long cmin, long cmax, double minimum, double maximum, int garnish);
+void CC_drawC0 (I, Graphics g, double xmin, double xmax, double ymin,
+	double ymax, int garnish);
 
-void CC_drawC0 (CC me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
+Matrix CC_to_Matrix (I);
 
-autoMatrix CC_to_Matrix (CC me);
-
-double CC_getValue (CC me, double t, long index);
+double CC_getValue (I, double t, long index);
 
 /******************* Frames ************************************************/
 
diff --git a/dwtools/CCA.cpp b/dwtools/CCA.cpp
index 2cbff65..6019e15 100644
--- a/dwtools/CCA.cpp
+++ b/dwtools/CCA.cpp
@@ -1,6 +1,6 @@
 /* CCA.c
  *
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,15 +57,15 @@
 #include "CCA_def.h"
 
 void structCCA :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of coefficients: ", numberOfCoefficients);
 	MelderInfo_writeLine (U"ny: ", y -> dimension);
 	MelderInfo_writeLine (U"nx: ", x -> dimension);
 }
 
-Thing_implement (CCA, Daata, 0);
+Thing_implement (CCA, Data, 0);
 
-autoCCA CCA_create (long numberOfCoefficients, long ny, long nx) {
+CCA CCA_create (long numberOfCoefficients, long ny, long nx) {
 	try {
 		autoCCA me = Thing_new (CCA);
 		my numberOfCoefficients = numberOfCoefficients;
@@ -73,45 +73,42 @@ autoCCA CCA_create (long numberOfCoefficients, long ny, long nx) {
 		my xLabels = Thing_new (Strings);
 		my y = Eigen_create (numberOfCoefficients, ny);
 		my x = Eigen_create (numberOfCoefficients, nx);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CCA not created.");
 	}
 }
 
-void CCA_drawEigenvector (CCA me, Graphics g, int x_or_y, long ivec, long first, long last, double ymin, double ymax, int weigh, double size_mm, const char32 *mark,	int connect, int garnish) {
-	Eigen e = my x.get();
-	Strings labels = my xLabels.get();
+void CCA_drawEigenvector (CCA me, Graphics g, int x_or_y, long ivec, long first, long last,
+                          double ymin, double ymax, int weigh, double size_mm, const char32 *mark,	int connect, int garnish) {
+	Eigen e = my x;
+	Strings labels = my xLabels;
 	if (x_or_y == 1) {
-		e = my y.get();
-		labels = my yLabels.get();
+		e = my y; labels = my yLabels;
 	}
-	Eigen_drawEigenvector (e, g, ivec, first, last, ymin, ymax, weigh, size_mm, mark, connect, labels -> strings, garnish);
+	Eigen_drawEigenvector (e, g, ivec, first, last, ymin, ymax, weigh, size_mm, mark,
+	                       connect, labels -> strings, garnish);
 }
 
 double CCA_getEigenvectorElement (CCA me, int x_or_y, long ivec, long element) {
-	Eigen e = ( x_or_y == 1 ? my y.get() : my x.get() );
+	Eigen e = x_or_y == 1 ? my y : my x;
 	return Eigen_getEigenvectorElement (e, ivec, element);
 }
 
-autoCCA TableOfReal_to_CCA (TableOfReal me, long ny) {
+CCA TableOfReal_to_CCA (TableOfReal me, long ny) {
 	try {
 		long n = my numberOfRows, nx = my numberOfColumns - ny;
 
 		if (ny < 1 || ny > my numberOfColumns - 1) {
 			Melder_throw (U"Dimension of first part not correct.");
 		}
-		if (ny > nx) {
-			Melder_throw (U"The dimension of the dependent part (", ny, U") must be less than or equal to "
-				"the dimension of the independent part (", nx, U").");
-		}
+		if (ny > nx) Melder_throw (U"The dimension of the dependent part (", ny, U") must be less than or equal to "
+			                           "the dimension of the independent part (", nx, U").");
 		if (n < ny) {
 			Melder_throw (U"The number of observations must be larger then ", ny, U".");
 		}
-			
-		if (! NUMdmatrix_hasFiniteElements (my data, 1, my numberOfRows, 1, my numberOfColumns)) {
-			Melder_throw (U"At least one of the table's elements is not finite or undefined.");;
-		}
+
+		TableOfReal_areAllCellsDefined (me, 0, 0, 0, 0);
 		// Use svd as (temporary) storage, and copy data
 
 		autoSVD svdy = SVD_create (n, ny);
@@ -132,39 +129,42 @@ autoCCA TableOfReal_to_CCA (TableOfReal me, long ny) {
 		double **vx = svdx -> v;
 		double fnormy = NUMfrobeniusnorm (n, ny, uy);
 		double fnormx = NUMfrobeniusnorm (n, nx, ux);
-		if (fnormy == 0.0 || fnormx == 0.0) {
+		if (fnormy == 0 || fnormx == 0) {
 			Melder_throw (U"One of the parts of the table contains only zeros.");
 		}
 
-		// Centre the data and svd it.
+		/*
+			Centre the data and svd it.
+		*/
 
-		NUMcentreColumns (uy, 1, n, 1, ny, nullptr);
-		NUMcentreColumns (ux, 1, n, 1, nx, nullptr);
+		NUMcentreColumns (uy, 1, n, 1, ny, NULL);
+		NUMcentreColumns (ux, 1, n, 1, nx, NULL);
 
-		SVD_compute (svdy.get());
-		SVD_compute (svdx.get());
+		SVD_compute (svdy.peek()); SVD_compute (svdx.peek());
 
-		long numberOfZeroedy = SVD_zeroSmallSingularValues (svdy.get(), 0.0);
-		long numberOfZeroedx = SVD_zeroSmallSingularValues (svdx.get(), 0.0);
+		long numberOfZeroedy = SVD_zeroSmallSingularValues (svdy.peek(), 0);
+		long numberOfZeroedx = SVD_zeroSmallSingularValues (svdx.peek(), 0);
 
-		// Form the matrix C = ux' uy (use svd-object storage)
+		/*
+			Form the matrix C = ux' uy (use svd-object storage)
+		*/
 
 		autoSVD svdc = SVD_create (nx, ny);
 		double **uc = svdc -> u;
 		double **vc = svdc -> v;
 
-		for (long i = 1; i <= nx; i ++) {
-			for (long j = 1; j <= ny; j ++) {
-				double t = 0.0;
-				for (long q = 1; q <= n; q ++) {
-					t += ux [q] [i] * uy [q] [j];
+		for (long i = 1; i <= nx; i++) {
+			for (long j = 1; j <= ny; j++) {
+				double t = 0;
+				for (long q = 1; q <= n; q++) {
+					t += ux[q][i] * uy[q][j];
 				}
-				uc [i] [j] = t;
+				uc[i][j] = t;
 			}
 		}
 
-		SVD_compute (svdc.get());
-		long numberOfZeroedc = SVD_zeroSmallSingularValues (svdc.get(), 0.0);
+		SVD_compute (svdc.peek());
+		long numberOfZeroedc = SVD_zeroSmallSingularValues (svdc.peek(), 0);
 		long numberOfCoefficients = ny - numberOfZeroedc;
 
 		autoCCA thee = CCA_create (numberOfCoefficients, ny, nx);
@@ -185,64 +185,66 @@ autoCCA TableOfReal_to_CCA (TableOfReal me, long ny) {
 			rows(X') = evecx[i][j] = Uc[k][i] * Vx[j][k] / Dx[k]
 		*/
 
-		for (long i = 1; i <= numberOfCoefficients; i ++) {
-			double ccc = svdc -> d [i];
-			thy y -> eigenvalues [i] = thy x -> eigenvalues [i] = ccc * ccc;
-			for (long j = 1; j <= ny; j ++) {
-				double t = 0.0;
-				for (long q = 1; q <= ny - numberOfZeroedy; q ++) {
-					t += vc [q] [i] * vy [j] [q] / svdy -> d [q];
+		for (long i = 1; i <= numberOfCoefficients; i++) {
+			double ccc = svdc -> d[i];
+			thy y -> eigenvalues[i] = thy x -> eigenvalues[i] = ccc * ccc;
+			for (long j = 1; j <= ny; j++) {
+				double t = 0;
+				for (long q = 1; q <= ny - numberOfZeroedy; q++) {
+					t += vc[q][i] * vy[j][q] / svdy -> d[q];
 				}
-				evecy [i] [j] = t;
+				evecy[i][j] = t;
 			}
-			for (long j = 1; j <= nx; j ++) {
-				double t = 0.0;
-				for (long q = 1; q <= nx - numberOfZeroedx; q ++) {
-					t += uc [q] [i] * vx [j] [q] / svdx -> d [q];
+			for (long j = 1; j <= nx; j++) {
+				double t = 0;
+				for (long q = 1; q <= nx - numberOfZeroedx; q++) {
+					t += uc[q][i] * vx[j][q] / svdx -> d[q];
 				}
-				evecx [i] [j] = t;
+				evecx[i][j] = t;
 			}
 		}
 
-		// Normalize eigenvectors.
-
+		/*
+			Normalize eigenvectors.
+		*/
 		NUMnormalizeRows (thy y -> eigenvectors, numberOfCoefficients, ny, 1);
 		NUMnormalizeRows (thy x -> eigenvectors, numberOfCoefficients, nx, 1);
 		Melder_assert (thy x -> dimension == thy xLabels -> numberOfStrings &&
 		               thy y -> dimension == thy yLabels -> numberOfStrings);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": CCA not created.");
 	}
 }
 
-autoTableOfReal CCA_and_TableOfReal_scores (CCA me, TableOfReal thee, long numberOfFactors) {
+TableOfReal CCA_and_TableOfReal_scores (CCA me, TableOfReal thee, long numberOfFactors) {
 	try {
 		long n = thy numberOfRows;
 		long nx = my x -> dimension, ny = my y -> dimension;
 
-		if (ny + nx != thy numberOfColumns) {
-			Melder_throw (U"The number of columns in the table (", thy numberOfColumns, U") does not agree with the dimensions of the CCA object (ny + nx = ", ny, U" + ", nx, U").");
-		}
+		if (ny + nx != thy numberOfColumns) Melder_throw (U"The number of columns in the table (", thy numberOfColumns,
+			        U") does not agree with the dimensions of the CCA object (ny + nx = ", ny, U" + ", nx, U").");
+
 		if (numberOfFactors == 0) {
 			numberOfFactors = my numberOfCoefficients;
 		}
-		if (numberOfFactors < 1 || numberOfFactors > my numberOfCoefficients) {
-			Melder_throw (U"The number of factors must be in interval [1, ", my numberOfCoefficients, U"].");
-		}
+		if (numberOfFactors < 1 || numberOfFactors > my numberOfCoefficients) Melder_throw
+			(U"The number of factors must be in interval [1, ", my numberOfCoefficients, U"].");
+
 		autoTableOfReal him = TableOfReal_create (n, 2 * numberOfFactors);
+		TableOfReal phim = him.peek();
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, thy numberOfRows);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (my y.get(), thee, 1, him.get(), 1, numberOfFactors);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (my x.get(), thee, ny + 1, him.get(), numberOfFactors + 1, numberOfFactors);
-		TableOfReal_setSequentialColumnLabels (him.get(), 1, numberOfFactors, U"y_", 1, 1);
-		TableOfReal_setSequentialColumnLabels (him.get(), numberOfFactors + 1, his numberOfColumns, U"x_", 1, 1);
-		return him;
+		Eigen_and_TableOfReal_project_into (my y, thee, 1, ny, &phim, 1, numberOfFactors);
+		Eigen_and_TableOfReal_project_into (my x, thee, ny + 1, thy numberOfColumns, &phim, numberOfFactors + 1, his numberOfColumns);
+		TableOfReal_setSequentialColumnLabels (him.peek(), 1, numberOfFactors, U"y_", 1, 1);
+		TableOfReal_setSequentialColumnLabels (him.peek(), numberOfFactors + 1, his numberOfColumns, U"x_", 1, 1);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TableOfReal with scores created.");
 	}
 }
 
-autoTableOfReal CCA_and_TableOfReal_predict (CCA me, TableOfReal thee, long from) {
+TableOfReal CCA_and_TableOfReal_predict (CCA me, TableOfReal thee, long from) {
 	try {
 		long ny = my y -> dimension, nx = my x -> dimension;
 		long nev = my y -> numberOfEigenvalues;
@@ -266,34 +268,34 @@ autoTableOfReal CCA_and_TableOfReal_predict (CCA me, TableOfReal thee, long from
 
 		// ???? dimensions if nx .. ny ??
 
-		autoTableOfReal him = Eigen_and_TableOfReal_to_TableOfReal_projectRows (my x.get(), thee, from, ny);
+		autoTableOfReal him = Eigen_and_TableOfReal_project (my x, thee, from, ny);
 		autoNUMvector<double> buf (1, ny);
 
 		// u = V a -> a = V'u
 
 		double **v = my y -> eigenvectors;
 		double *d = my y -> eigenvalues;
-		for (long i = 1; i <= thy numberOfRows; i ++) {
-			NUMvector_copyElements (his data [i], buf.peek(), 1, ny);
-			for (long j = 1; j <= ny; j ++) {
-				double t = 0.0;
-				for (long k = 1; k <= ny; k ++) {
-					t += sqrt (d [k]) * v [k] [j] * buf [k];
+		for (long i = 1; i <= thy numberOfRows; i++) {
+			NUMvector_copyElements (his data[i], buf.peek(), 1, ny);
+			for (long j = 1; j <= ny; j++) {
+				double t = 0;
+				for (long k = 1; k <= ny; k++) {
+					t += sqrt (d[k]) * v[k][j] * buf[k];
 				}
-				his data [i] [j] = t;
+				his data [i][j] = t;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no predictions created.");
 	}
 }
 
-autoTableOfReal CCA_and_TableOfReal_factorLoadings (CCA me, TableOfReal thee) {
+TableOfReal CCA_and_TableOfReal_factorLoadings (CCA me, TableOfReal thee) {
 	try {
 		autoCorrelation c = TableOfReal_to_Correlation (thee);
-		autoTableOfReal him = CCA_and_Correlation_factorLoadings (me, c.get());
-		return him;
+		autoTableOfReal him = CCA_and_Correlation_factorLoadings (me, c.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no factor loadings created.");
 	}
@@ -303,33 +305,28 @@ double CCA_getCorrelationCoefficient (CCA me, long index) {
 	if (index < 1 || index > my numberOfCoefficients) {
 		return NUMundefined;
 	}
+
 	return sqrt (my y -> eigenvalues[index]);
 }
 
-void CCA_getZeroCorrelationProbability (CCA me, long index, double *p_prob, double *p_chisq, double *p_df) {
-	double lambda = 1.0, *ev = my y -> eigenvalues;
+void CCA_getZeroCorrelationProbability (CCA me, long index, double *chisq, long *ndf, double *probability) {
+	double lambda = 1, *ev = my y -> eigenvalues;
 	long nev = my y -> numberOfEigenvalues;
 	long ny = my y -> dimension, nx = my x -> dimension;
 
-	double chisq = NUMundefined, prob = NUMundefined, df = NUMundefined;
+	*chisq = *probability = NUMundefined;
+	*ndf = 0;
 
-	if (index >= 1 && index <= nev) {
-		for (long i = index; i <= nev; i ++) {
-			lambda *= 1.0 - ev [i];
-		}
-		df = (ny - index + 1) * (nx - index + 1);
-		chisq = - (my numberOfObservations - (ny + nx + 3.0) / 2.0) * log (lambda);
-		prob = NUMchiSquareQ (chisq, df);
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
+	if (index < 1 || index > nev) {
+		return;
 	}
-	if (p_df) {
-		*p_df = df;
-	}
-	if (p_prob) {
-		*p_prob = prob;
+
+	for (long i = index; i <= nev; i++) {
+		lambda *= (1 - ev[i]);
 	}
+	*ndf = (ny - index + 1) * (nx - index + 1);
+	*chisq = - (my numberOfObservations - (ny + nx + 3) / 2) * log (lambda);
+	*probability = NUMchiSquareQ (*chisq, *ndf);
 }
 
 /* End of file CCA.c */
diff --git a/dwtools/CCA.h b/dwtools/CCA.h
index 79907a4..2450793 100644
--- a/dwtools/CCA.h
+++ b/dwtools/CCA.h
@@ -2,7 +2,7 @@
 #define _CCA_h_
 /* CCA.h
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
 #include "TableOfReal.h"
 
 #include "CCA_def.h"
+oo_CLASS_CREATE (CCA, Data);
 
 /*
 	Class CCA represents the Canonical Correlation Analysis of two datasets
@@ -49,14 +50,14 @@
 	uncorrelated with c1[1] and c2[1], and so on, for all p possible pairs.
 */
 
-autoCCA CCA_create (long numberOfCoefficients, long ny, long nx);
+CCA CCA_create (long numberOfCoefficients, long ny, long nx);
 
 void CCA_drawEigenvector (CCA me, Graphics g, int x_or_y, long ivec, long first, long last,
 	double ymin, double ymax, int weigh, double size_mm, const char32 *mark, int connect, int garnish);
 
 double CCA_getEigenvectorElement (CCA me, int x_or_y, long ivec, long element);
 
-autoCCA TableOfReal_to_CCA (TableOfReal me, long ny);
+CCA TableOfReal_to_CCA (TableOfReal me, long ny);
 /*
 	Solves the canonical correlation analysis equations:
 
@@ -99,7 +100,7 @@ autoCCA TableOfReal_to_CCA (TableOfReal me, long ny);
 	X2 = V2*inv(D2)*U
 */
 
-autoTableOfReal CCA_and_TableOfReal_scores (CCA me, TableOfReal thee, long numberOfFactors);
+TableOfReal CCA_and_TableOfReal_scores (CCA me, TableOfReal thee, long numberOfFactors);
 /*
 	Return the factors in a table with 2*numberOfFactors columns.
 	The first 'numberOfFactors' columns are the scores for the dependent part
@@ -107,7 +108,7 @@ autoTableOfReal CCA_and_TableOfReal_scores (CCA me, TableOfReal thee, long numbe
 	independent part.
 */
 
-autoTableOfReal CCA_and_TableOfReal_factorLoadings (CCA me, TableOfReal thee);
+TableOfReal CCA_and_TableOfReal_factorLoadings (CCA me, TableOfReal thee);
 /*
 	Get the canonical factor loadings (also structure correlation coefficients),
 	the correlation of a canonical variable with an original variable.
@@ -115,9 +116,10 @@ autoTableOfReal CCA_and_TableOfReal_factorLoadings (CCA me, TableOfReal thee);
 
 double CCA_getCorrelationCoefficient (CCA me, long index);
 
-void CCA_getZeroCorrelationProbability (CCA me, long index, double *prob, double *chisq, double *df);
+void CCA_getZeroCorrelationProbability (CCA me, long index, double *chisq,
+	long *ndf, double *probability);
 
-autoTableOfReal CCA_and_TableOfReal_predict (CCA me, TableOfReal thee, long from);
+TableOfReal CCA_and_TableOfReal_predict (CCA me, TableOfReal thee, long from);
 /*
 	Given independent table, predict the dependent one, on the basis of
 	the canonical correlations.
diff --git a/dwtools/CCA_and_Correlation.cpp b/dwtools/CCA_and_Correlation.cpp
index a6c28cb..9ab4f1d 100644
--- a/dwtools/CCA_and_Correlation.cpp
+++ b/dwtools/CCA_and_Correlation.cpp
@@ -1,6 +1,6 @@
 /* CCA_and_Correlation.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,37 +27,38 @@
 #include "CCA_and_Correlation.h"
 #include "NUM2.h"
 
-autoTableOfReal CCA_and_Correlation_factorLoadings (CCA me, Correlation thee) {
+TableOfReal CCA_and_Correlation_factorLoadings (CCA me, Correlation thee) {
 	try {
 		long ny = my y -> dimension, nx = my x -> dimension;
 
-		if (ny + nx != thy numberOfColumns) {
-			Melder_throw (U"The number of columns in the Correlation must equal the sum of the dimensions in the CCA object");
-		}
+		if (ny + nx != thy numberOfColumns) Melder_throw (U"The number of columns in the Correlation "
+			        U"must equal the sum of the dimensions in the CCA object");
+
 		autoTableOfReal him = TableOfReal_create (2 * my numberOfCoefficients, thy numberOfColumns);
 
 		NUMstrings_copyElements (thy columnLabels, his columnLabels, 1, thy numberOfColumns);
-		TableOfReal_setSequentialRowLabels (him.get(), 1, my numberOfCoefficients, U"dv", 1, 1);
-		TableOfReal_setSequentialRowLabels (him.get(), my numberOfCoefficients + 1, 2 * my numberOfCoefficients, U"iv", 1, 1);
+		TableOfReal_setSequentialRowLabels (him.peek(), 1, my numberOfCoefficients, U"dv", 1, 1);
+		TableOfReal_setSequentialRowLabels (him.peek(), my numberOfCoefficients + 1,
+		                                    2 * my numberOfCoefficients, U"iv", 1, 1);
 
 		double **evecy = my y -> eigenvectors, **evecx = my x -> eigenvectors;
 		for (long i = 1; i <= thy numberOfRows; i++) {
-			for (long j = 1; j <= my numberOfCoefficients; j ++) {
-				double t = 0.0;
-				for (long k = 1; k <= ny; k ++) {
-					t += thy data [i] [k] * evecy [j] [k];
+			for (long j = 1; j <= my numberOfCoefficients; j++) {
+				double t = 0;
+				for (long k = 1; k <= ny; k++) {
+					t += thy data[i][k] * evecy[j][k];
 				}
 				his data[j][i] = t;
 			}
-			for (long j = 1; j <= my numberOfCoefficients; j ++) {
-				double t = 0.0;
-				for (long k = 1; k <= nx; k ++) {
-					t += thy data [i] [ny + k] * evecx [j] [k];
+			for (long j = 1; j <= my numberOfCoefficients; j++) {
+				double t = 0;
+				for (long k = 1; k <= nx; k++) {
+					t += thy data[i][ny + k] * evecx[j][k];
 				}
-				his data [my numberOfCoefficients + j] [i] = t;
+				his data[my numberOfCoefficients + j][i] = t;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not created from CCA & Correlation.");
 	}
@@ -102,12 +103,12 @@ double CCA_and_Correlation_getVarianceFraction (CCA me, Correlation thee, int x_
 		ioffset = 0;
 	}
 
-	double varianceFraction = 0.0;
+	double varianceFraction = 0;
 	for (long icv = canonicalVariate_from; icv <= canonicalVariate_to; icv++) {
-		double variance = 0.0, varianceScaling = 0.0;
+		double variance = 0, varianceScaling = 0;
 
 		for (long i = 1; i <= n; i++) {
-			double si = 0.0;
+			double si = 0;
 			for (long j = 1; j <= n; j++) {
 				si += thy data[ioffset + i][ioffset + j] * evec[icv][j]; /* Rxx.e */
 			}
@@ -123,7 +124,7 @@ double CCA_and_Correlation_getVarianceFraction (CCA me, Correlation thee, int x_
 double CCA_and_Correlation_getRedundancy_sl (CCA me, Correlation thee, int x_or_y, int canonicalVariate_from, int canonicalVariate_to) {
 	_CCA_and_Correlation_check (me, thee, canonicalVariate_from, canonicalVariate_to);
 
-	double redundancy = 0.0;
+	double redundancy = 0;
 	for (long icv = canonicalVariate_from; icv <= canonicalVariate_to; icv++) {
 		double varianceFraction = CCA_and_Correlation_getVarianceFraction (me, thee, x_or_y, icv, icv);
 		if (varianceFraction == NUMundefined) {
diff --git a/dwtools/CCA_and_Correlation.h b/dwtools/CCA_and_Correlation.h
index e68bef5..44967e6 100644
--- a/dwtools/CCA_and_Correlation.h
+++ b/dwtools/CCA_and_Correlation.h
@@ -2,7 +2,7 @@
 #define _CCA_and_Correlation_h_
 /* CCA_and_Correlation.h
  * 
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "CCA.h"
 #include "SSCP.h"
 
-autoTableOfReal CCA_and_Correlation_factorLoadings (CCA me, Correlation thee);
+TableOfReal CCA_and_Correlation_factorLoadings (CCA me, Correlation thee);
 /*
 	Get the canonical factor loadings (also structure correlation coefficients),
 	the correlation of a canonical variable with an original variable.
diff --git a/dwtools/CCA_def.h b/dwtools/CCA_def.h
index 2fde7c1..3423a46 100644
--- a/dwtools/CCA_def.h
+++ b/dwtools/CCA_def.h
@@ -1,6 +1,6 @@
 /* CCA_def.h
  * 
- * Copyright (C) 1993-2008, 2015 David Weenink
+ * Copyright (C) 1993-2008 David Weenink
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,16 +25,15 @@
  djmw 20080122 float -> double
  */
 
-
 #define ooSTRUCT CCA
-oo_DEFINE_CLASS (CCA, Daata)
+oo_DEFINE_CLASS (CCA, Data)
 
 	oo_LONG (numberOfCoefficients)
 	oo_LONG (numberOfObservations)
-	oo_AUTO_OBJECT (Strings, 0, yLabels)
-	oo_AUTO_OBJECT (Strings, 0, xLabels)
-	oo_AUTO_OBJECT(Eigen, 0, y)
-	oo_AUTO_OBJECT(Eigen, 0, x)
+	oo_OBJECT (Strings, 0, yLabels)
+	oo_OBJECT (Strings, 0, xLabels)
+	oo_OBJECT(Eigen, 0, y)
+	oo_OBJECT(Eigen, 0, x)
 
 	#if oo_DECLARING
 		void v_info ()
@@ -44,5 +43,4 @@ oo_DEFINE_CLASS (CCA, Daata)
 oo_END_CLASS (CCA)
 #undef ooSTRUCT
 
-
 /* End of file CCA_def.h */
diff --git a/dwtools/CCs_to_DTW.cpp b/dwtools/CCs_to_DTW.cpp
index 4089459..e85607f 100644
--- a/dwtools/CCs_to_DTW.cpp
+++ b/dwtools/CCs_to_DTW.cpp
@@ -2,7 +2,7 @@
  *
  *	Dynamic Time Warp of two CCs.
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,14 +32,14 @@ static void regression (CC me, long frame, double r[], long nr) {
 	// sum(i^2;i=-n..n) = 2n^3/3 + n^2 +n/3 = n (n (2n/3 + 1) + 1/3);
 
 	long nrd2 = nr / 2;
-	double sumsq = nrd2 * (nrd2 * (nr / 3.0 + 1.0) + 1.0 / 3.0);
+	double sumsq = nrd2 * (nrd2 * (nr / 3 + 1) + 1 / 3);
 
 	if (frame <= nrd2 || frame >= my nx - nrd2) {
 		return;
 	}
 
 	for (long i = 0; i <= my maximumNumberOfCoefficients; i++) {
-		r[i] = 0.0;
+		r[i] = 0;
 	}
 
 	long nmin = CC_getMinimumNumberOfCoefficients (me, frame - nrd2, frame + nrd2);
@@ -55,20 +55,20 @@ static void regression (CC me, long frame, double r[], long nr) {
 	}
 }
 
-autoDTW CCs_to_DTW (CC me, CC thee, double wc, double wle, double wr, double wer, double dtr) {
+DTW CCs_to_DTW (CC me, CC thee, double wc, double wle, double wr, double wer, double dtr) {
 	try {
 		if (my maximumNumberOfCoefficients != thy maximumNumberOfCoefficients) {
 			Melder_throw (U"CC orders must be equal.");
 		}
 		long nr = (long) floor (dtr / my dx);
-		if (wr != 0.0 && nr < 2) {
+		if (wr != 0 && nr < 2) {
 			Melder_throw (U"Time window for regression is too small.");
 		}
 
 		if (nr % 2 == 0) {
-			nr ++;
+			nr++;
 		}
-		if (wr != 0.0) {
+		if (wr != 0) {
 			Melder_casual (nr, U" frames used for regression coefficients.");
 		}
 
@@ -76,65 +76,65 @@ autoDTW CCs_to_DTW (CC me, CC thee, double wc, double wle, double wr, double wer
 		autoNUMvector<double> ri (0L, my maximumNumberOfCoefficients);
 		autoNUMvector<double> rj (0L, my maximumNumberOfCoefficients);
 
-		/* Calculate distance matrix. */
+		// Calculate distance matrix
 
 		autoMelderProgress progess (U"CCs_to_DTW");
-		for (long i = 1; i <= my nx; i ++) {
-			CC_Frame fi = & my frame [i];
+		for (long i = 1; i <= my nx; i++) {
+			CC_Frame fi = & my frame[i];
 
 			regression (me, i, ri.peek(), nr);
 
-			for (long j = 1; j <= thy nx; j ++) {
-				CC_Frame fj = & thy frame [j];
-				double dist = 0.0, distr = 0.0;
+			for (long j = 1; j <= thy nx; j++) {
+				CC_Frame fj = & thy frame[j];
+				double dist = 0, distr = 0;
 
-				/* Cepstral distance. */
+				// Cepstral distance
 
-				if (wc != 0.0) {
-					for (long k = 1; k <= fj -> numberOfCoefficients; k ++) {
-						double d = fi -> c [k] - fj -> c [k];
+				if (wc != 0) {
+					for (long k = 1; k <= fj -> numberOfCoefficients; k++) {
+						double d = fi -> c[k] - fj -> c[k];
 						dist += d * d;
 					}
 					dist *= wc;
 				}
 
-				/* Log energy distance. */
+				// Log energy distance
 
-				if (wle != 0.0) {
+				if (wle != 0) {
 					double d = fi -> c0 - fj -> c0;
 					dist += wle * d * d;
 				}
 
-				/* Regression distance. */
+				// Regression distance
 
-				if (wr != 0.0) {
+				if (wr != 0) {
 					regression (thee, j, rj.peek(), nr);
-					for (long k = 1; k <= fj -> numberOfCoefficients; k ++) {
-						double d = ri [k] - rj [k];
+					for (long k = 1; k <= fj -> numberOfCoefficients; k++) {
+						double d = ri[k] - rj[k];
 						distr += d * d;
 					}
 					dist += wr * distr;
 				}
 
-				/* Regression on c[0]: log(energy) */
+				// Regression on c[0]: log(energy)
 
-				if (wer != 0.0) {
-					if (wr == 0.0) {
+				if (wer != 0) {
+					if (wr == 0) {
 						regression (thee, j, rj.peek(), nr);
 					}
-					double d = ri [0] - rj [0];
+					double d = ri[0] - rj[0];
 					dist += wer * d * d;
 				}
 
 				dist /= wc + wle + wr + wer;
-				his z [i] [j] = sqrt (dist);   // prototype along y-direction
+				his z[i][j] = sqrt (dist);	/* prototype along y-direction */
 			}
 
-			if (i % 10 == 1) {
+			if ( (i % 10) == 1) {
 				Melder_progress (0.999 * i / my nx, U"Calculate distances: frame ", i, U" from ", my nx, U".");
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created from CCs.");
 	}
diff --git a/dwtools/CCs_to_DTW.h b/dwtools/CCs_to_DTW.h
index b2ceac1..a47f0b6 100644
--- a/dwtools/CCs_to_DTW.h
+++ b/dwtools/CCs_to_DTW.h
@@ -4,7 +4,7 @@
  *
  *	Dynamic Time Warp of two CCs.
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,7 +30,7 @@
 #include "DTW.h"
 
 
-autoDTW CCs_to_DTW (CC me, CC thee, double wc, double wle, double wr, double wer, double dtr);
+DTW CCs_to_DTW (CC me, CC thee, double wc, double wle, double wr, double wer, double dtr);
 /*
 	1. Calculate distances between CCs:
 		Distance between frame i (from me) and j (from thee) is
diff --git a/dwtools/Categories.cpp b/dwtools/Categories.cpp
index d704ef3..4188058 100644
--- a/dwtools/Categories.cpp
+++ b/dwtools/Categories.cpp
@@ -1,6 +1,6 @@
 /* Categories.cpp
  *
- * Copyright (C) 1993-2013, 2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2013 David Weenink, 2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,24 +27,24 @@
 void structCategories :: v_readText (MelderReadText a_text, int /*formatVersion*/) {
 	long l_size = texgeti4 (a_text);
 	if (l_size == 0) {
-		(void) 0;
+		OrderedOfString_init (this, 1);
 	} else if (l_size < 0) {
 		Melder_throw (U"Size cannot be negative.");
 	} else {
-		our _grow (l_size);
+		OrderedOfString_init (this, l_size);
 	}
 	for (long i = 1; i <= l_size; i ++) {
 		autoSimpleString itemi = Thing_new (SimpleString);
 		itemi -> v_readText (a_text, 0);
-		our addItemAtPosition_move (itemi.move(), i);
+		Ordered_addItemPos (this, itemi.transfer(), i);
 	}
 }
 
 void structCategories :: v_writeText (MelderFile file) {
-	texputi4 (file, our size, U"size", nullptr, nullptr, nullptr, nullptr, nullptr);
-	for (long i = 1; i <= our size; i ++) {
-		SimpleString data = our at [i];
-		texputintro (file, U"item [", Melder_integer (i), U"]:", nullptr, nullptr, nullptr);
+	texputi4 (file, size, U"size", 0, 0, 0, 0, 0);
+	for (long i = 1; i <= size; i++) {
+		SimpleString data = (SimpleString) item [i];
+		texputintro (file, U"item" " [", Melder_integer (i), U"]:", NULL, NULL, NULL);
 		data -> structSimpleString :: v_writeText (file);
 		texexdent (file);
 	}
@@ -52,51 +52,58 @@ void structCategories :: v_writeText (MelderFile file) {
 
 Thing_implement (Categories, OrderedOfString, 0);
 
-autoCategories Categories_create () {
+void Categories_init (Categories me, long size) {
+	OrderedOfString_init (me, size);
+}
+
+Categories Categories_create () {
 	try {
 		autoCategories me = Thing_new (Categories);
-		return me;
+		Categories_init (me.peek(), 10);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Categories not created.");
 	}
 }
 
-autoCategories Categories_createWithSequentialNumbers (long n) {
+Categories Categories_sequentialNumbers (long n) {
 	try {
 		autoCategories me = Thing_new (Categories);
-		OrderedOfString_initWithSequentialNumbers (me.get(), n);
-		return me;
+		OrderedOfString_init (me.peek(), 5);
+		OrderedOfString_sequentialNumbers (me.peek(), n);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sequential number Categories not created.");
 	}
 }
 
-autoCategories Categories_selectUniqueItems (Categories me) {
+Categories Categories_selectUniqueItems (Categories me, int sorted) {
 	try {
-		autoOrderedOfString s = OrderedOfString_selectUniqueItems (me);
-		autoCategories thee = OrderedOfString_to_Categories (s.get());
-		return thee;
+		autoOrderedOfString s = OrderedOfString_selectUniqueItems (me, sorted);
+		autoCategories thee = OrderedOfString_to_Categories (s.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no unique categories created.");
 	}
 }
 
-void Categories_drawItem (Categories me, Graphics g, long position, double xWC, double yWC) {
+void Categories_drawItem (Categories me, Graphics g, long position,
+                          double xWC, double yWC) {
 	if (position < 1 || position > my size) {
 		return;
 	}
-	SimpleString_draw (my at [position], g, xWC, yWC);
+	SimpleString_draw ( (SimpleString) my item[position], g, xWC, yWC);
 }
 
-autoCategories OrderedOfString_to_Categories (OrderedOfString me) {
+Categories OrderedOfString_to_Categories (OrderedOfString me) {
 	try {
 		autoCategories thee = Categories_create();
 
-		for (long i = 1; i <= my size; i ++) {
-			autoSimpleString item = Data_copy (my at [i]);
-			thy addItem_move (item.move());
+		for (long i = 1; i <= my size; i++) {
+			autoSimpleString item = Data_copy ( (SimpleString) my item [i]);
+			Collection_addItem (thee.peek(), item.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Categories.");
 	}
@@ -107,33 +114,33 @@ long Categories_getSize (Categories me) {
 }
 
 /* TableOfReal_Rowlabels_to_Categories  ??? */
-autoCategories TableOfReal_to_CategoriesRow (TableOfReal me) {
+Categories TableOfReal_to_CategoriesRow (TableOfReal me) {
 	try {
 		autoCategories thee = Categories_create ();
 
-		for (long i = 1; i <= my numberOfRows; i ++) {
+		for (long i = 1; i <= my numberOfRows; i++) {
 			if (my rowLabels[i]) {
-				autoSimpleString s = SimpleString_create (my rowLabels [i]);
-				thy addItem_move (s.move());
+				autoSimpleString s = SimpleString_create (my rowLabels[i]);
+				Collection_addItem (thee.peek(), s.transfer());
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": row labels not converted to Categories.");
 	}
 }
 
-autoCategories TableOfReal_to_CategoriesColumn (TableOfReal me) {
+Categories TableOfReal_to_CategoriesColumn (TableOfReal me) {
 	try {
 		autoCategories thee = Categories_create ();
 
-		for (long i = 1; i <= my numberOfColumns; i ++) {
+		for (long i = 1; i <= my numberOfColumns; i++) {
 			if (my columnLabels[i]) {
-				autoSimpleString s = SimpleString_create (my columnLabels [i]);
-				thy addItem_move (s.move());
+				autoSimpleString s = SimpleString_create (my columnLabels[i]);
+				Collection_addItem (thee.peek(), s.transfer());
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": columnlabels not converted to Categories.");
 	}
diff --git a/dwtools/Categories.h b/dwtools/Categories.h
index 25ffc01..33f970f 100644
--- a/dwtools/Categories.h
+++ b/dwtools/Categories.h
@@ -2,7 +2,7 @@
 #define _Categories_h_
 /* Categories.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink, 2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,21 +31,21 @@ Thing_define (Categories, OrderedOfString) {
 		override;
 };
 
-autoCategories Categories_create ();
+void Categories_init (Categories me, long size);
 
-autoCategories Categories_createWithSequentialNumbers (long n);
+Categories Categories_create ();
+Categories Categories_sequentialNumbers (long n);
 
-autoCategories Categories_selectUniqueItems (Categories me);
+Categories Categories_selectUniqueItems (Categories me, int sorted);
 
 void Categories_drawItem (Categories me, Graphics g, long position, double xWC, double yWC);
 
-autoCategories OrderedOfString_to_Categories (OrderedOfString me);
+Categories OrderedOfString_to_Categories (OrderedOfString me);
 
 long Categories_getSize (Categories me);
 /* return my size */
 
-autoCategories TableOfReal_to_CategoriesRow (TableOfReal me);
-
-autoCategories TableOfReal_to_CategoriesColumn (TableOfReal me);
+Categories TableOfReal_to_CategoriesRow (TableOfReal me);
+Categories TableOfReal_to_CategoriesColumn (TableOfReal me);
 
 #endif /* _Categories_h_ */
diff --git a/dwtools/CategoriesEditor.cpp b/dwtools/CategoriesEditor.cpp
index 8c87de9..75b9cb3 100644
--- a/dwtools/CategoriesEditor.cpp
+++ b/dwtools/CategoriesEditor.cpp
@@ -1,6 +1,6 @@
 /* CategoriesEditor.cpp
  *
- * Copyright (C) 1993-2013 David Weenink, 2008,2015,2016 Paul Boersma
+ * Copyright (C) 1993-2013 David Weenink, 2008,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,59 +38,65 @@
 #define CategoriesEditor_TEXTMAXLENGTH 100
 
 #include "CategoriesEditor.h"
+//#include "Preferences.h"
 #include "EditorM.h"
 
 Thing_implement (CategoriesEditor, Editor, 0);
 
+/* forward declarations */
+static void update (I, long from, long to, const long *select, long nSelect);
+static void update_dos (I);
+
 const char32 *CategoriesEditor_EMPTYLABEL = U"(empty)";
 
-static void menu_cb_help (CategoriesEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_help (EDITOR_ARGS) {
+	EDITOR_IAM (CategoriesEditor);
 	Melder_help (U"CategoriesEditor");
 }
 
-#pragma mark - Collection extensions
+/**************** Some methods for Collection  ****************/
 
 /* Preconditions: */
 /*	1 <= (position[i], newpos) <= size; */
 /*	newpos <= position[1] || newpos >= position[npos] */
-static void Ordered_moveItems (Ordered me, long position [], long npos, long newpos) {
-	long pos, min = position [1], max = position [1];
-
-	for (long i = 2; i <= npos; i ++) {
-		if (position [i] > max) {
-			max = position [i];
-		} else if (position [i] < min) {
-			min = position [i];
+static void Ordered_moveItems (I, long position[], long npos, long newpos) {
+	iam (Ordered);
+	long pos, min = position[1], max = position[1];
+
+	for (long i = 2; i <= npos; i++) {
+		if (position[i] > max) {
+			max = position[i];
+		} else if (position[i] < min) {
+			min = position[i];
 		}
 	}
 
 	Melder_assert (min >= 1 && max <= my size && (newpos <= min || newpos >= max));
 
-	autoNUMvector<Daata> tmp (1, npos);
+	autoNUMvector<Data> tmp (1, npos);
+
+	// 'remove'
 
-	/*
-		Move some data from `me` into `tmp`, in a different order.
-	*/
-	for (long i = 1; i <= npos; i ++) {
-		tmp [i] = (Daata) my at [position [i]];   // dangle
-		my at [position [i]] = nullptr;   // undangle
+	for (long i = 1; i <= npos; i++) {
+		tmp[i] = (Data) my item[position[i]];
+		my item[position[i]] = 0;
 	}
 
 	// create a contiguous 'hole'
 
 	if (newpos <= min) {
 		pos = max;
-		for (long i = max; i >= newpos; i --) {
-			if (my at [i]) {
-				my at [pos --] = my at [i];
+		for (long i = max; i >= newpos; i--) {
+			if (my item[i]) {
+				my item[pos--] = my item[i];
 			}
 		}
 		pos = newpos;
 	} else {
 		pos = min;
-		for (long i = min; i <= newpos; i ++) {
-			if (my at [i]) {
-				my at [pos ++] = my at [i];
+		for (long i = min; i <= newpos; i++) {
+			if (my item[i]) {
+				my item[pos++] = my item[i];
 			}
 		}
 		pos = newpos - npos + 1;
@@ -98,22 +104,23 @@ static void Ordered_moveItems (Ordered me, long position [], long npos, long new
 
 	// fill the 'hole'
 
-	for (long i = 1; i <= npos; i ++) {
-		my at [pos ++] = tmp [i];
+	for (long i = 1; i <= npos; i++) {
+		my item[pos++] = tmp[i];
 	}
 }
 
-/*
-static void OrderedOfString_replaceItemPos (Collection me, autoSimpleString data, long pos) {
+static void Collection_replaceItemPos (I, Any item, long pos) {
+	iam (Collection);
 	if (pos < 1 || pos > my size) {
 		return;
 	}
-	my replaceItem_move (data.move(), pos);
+	forget ( ( (SimpleString *) my item) [pos]);
+	my item[pos] = item;
 }
-*/
 
 /* Remove the item at position 'from' and insert it at position 'to'. */
-static void Ordered_moveItem (Ordered me, long from, long to) {
+static void Ordered_moveItem (I, long from, long to) {
+	iam (Ordered);
 	if (from < 1 || from > my size) {
 		from = my size;
 	}
@@ -123,416 +130,243 @@ static void Ordered_moveItem (Ordered me, long from, long to) {
 	if (from == to) {
 		return;
 	}
-	Daata tmp = my at [from];
+	Data tmp = (Data) my item[from];
 	if (from > to) {
-		for (long i = from; i > to; i --) {
-			my at [i] = my at [i - 1];
+		for (long i = from; i > to; i--) {
+			my item[i] = my item[i - 1];
 		}
 	} else {
-		for (long i = from; i < to; i ++) {
-			my at [i] = my at [i + 1];
+		for (long i = from; i < to; i++) {
+			my item[i] = my item[i + 1];
 		}
 	}
-	my at [to] = tmp;
-}
-
-#pragma mark - Widget updates
-
-static void notifyNumberOfSelected (CategoriesEditor me) {
-	autoMelderString tmp;
-	long posCount;
-	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);  // waste
-	if (posCount > 0) {
-		MelderString_append (&tmp, posCount, U" selection", (posCount > 1 ? U"s." : U"."));
-	}
-	if (tmp.string) GuiLabel_setText (my outOfView, tmp.string);
+	my item[to] = tmp;
 }
 
-static void updateUndoAndRedoMenuItems (CategoriesEditor me)
-{
-	const char32 *commandName;
-
-	/*
-	 * Menu item `Undo`.
-	 */
-	bool undoItemIsSensitive = true;
-	if (commandName = CommandHistory_commandName (my history.get(), 0), ! commandName) {
-		commandName = U"nothing";
-		undoItemIsSensitive = false;
-	}
-	GuiButton_setText (my undo, Melder_cat (U"Undo ", U"\"", commandName, U"\""));
-	GuiThing_setSensitive (my undo, undoItemIsSensitive);
-
-	/*
-	 * Menu item `Redo`.
-	 */
-	bool redoItemIsSensitive = true;
-	if (commandName = CommandHistory_commandName (my history.get(), 1), ! commandName) {
-		commandName = U"nothing";
-		redoItemIsSensitive = false;
-	}
-	GuiButton_setText (my redo, Melder_cat (U"Redo ", U"\"", commandName, U"\""));
-	GuiThing_setSensitive (my redo, redoItemIsSensitive);
-}
-
-static void updateWidgets (CategoriesEditor me) {   // all buttons except undo & redo
-	Categories data = (Categories) my data;
-	long size = data->size;
-	bool insert = false, insertAtEnd = true, replace = false, remove = false;
-	bool moveUp = false, moveDown = false;
-	long posCount;
-	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
-	if (posList.peek()) {
-		long firstPos = posList[1], lastPos = posList[posCount];
-		bool contiguous = ( lastPos - firstPos + 1 == posCount );
-		moveUp = contiguous && firstPos > 1;
-		moveDown = contiguous && lastPos < size;
-		my position = firstPos;
-		remove = true;
-		replace = true;
-		//insertAtEnd = false;
-		if (posCount == 1) {
-			insert = true;
-			//if (posList[1] == size) insertAtEnd = true;
-			if (size == 1 && ! str32cmp (CategoriesEditor_EMPTYLABEL,
-			                           OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, 1))) {
-				remove = false;
-			}
-		}
-	}
-	GuiThing_setSensitive (my insert,      insert);
-	GuiThing_setSensitive (my insertAtEnd, insertAtEnd);
-	GuiThing_setSensitive (my replace,     replace);
-	GuiThing_setSensitive (my remove,      remove);
-	GuiThing_setSensitive (my moveUp,      moveUp);
-	GuiThing_setSensitive (my moveDown,    moveDown);
-	if (my history) {
-		updateUndoAndRedoMenuItems (me);
-	}
-	notifyNumberOfSelected (me);
-}
-
-static void update (CategoriesEditor me, long from, long to, const long *select, long nSelect) {
-	Categories data = (Categories) my data;
-	long size = data->size;
-
-	if (size == 0) {
-		autoSimpleString str = SimpleString_create (CategoriesEditor_EMPTYLABEL);
-		data -> addItem_move (str.move());
-		update (me, 0, 0, nullptr, 0);
-		return;
-	}
-	if (from == 0 && from == to) {
-		from = 1; to = size;
-	}
-	if (from < 1 || from > size) {
-		from = size;
-	}
-	if (to < 1 || to > size) {
-		to = size;
-	}
-	if (from > to) {
-		long ti = from; from = to; to = ti;
-	}
-
-	// Begin optimization: add the items from a table instead of separately.
-	try {
-		autostring32vector table (from, to);
-		long itemCount = GuiList_getNumberOfItems (my list);
-		for (long i = from; i <= to; i++) {
-			char wcindex[20];
-			snprintf (wcindex,20, "%5ld ", i);
-			table[i] = Melder_dup_f (Melder_cat (Melder_peek8to32 (wcindex), OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, i)));
-		}
-		if (itemCount > size) { // some items have been removed from Categories?
-			for (long j = itemCount; j > size; j --) {
-				GuiList_deleteItem (my list, j);
-			}
-			itemCount = size;
-		}
-		if (to > itemCount) {
-			for (long j = 1; j <= to - itemCount; j ++) {
-				GuiList_insertItem (my list, table [itemCount + j], 0);
-			}
-		}
-		if (from <= itemCount) {
-			long n = (to < itemCount ? to : itemCount);
-			for (long j = from; j <= n; j++) {
-				GuiList_replaceItem (my list, table[j], j);
-			}
-		}
-	} catch (MelderError) {
-		throw;
-	}
-
-	// End of optimization
-
-	// HIGHLIGHT
-
-	GuiList_deselectAllItems (my list);
-	if (size == 1) { /* the only item is always selected */
-		const char32 *catg = OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, 1);
-		GuiList_selectItem (my list, 1);
-		updateWidgets (me);   // instead of "notify". BUG?
-		GuiText_setString (my text, catg);
-	} else if (nSelect > 0) {
-		// Select but postpone highlighting
-
-		for (long i = 1; i <= nSelect; i++) {
-			GuiList_selectItem (my list, select[i] > size ? size : select[i]);
-		}
-	}
-
-	// VIEWPORT
-
-	{
-		long top = GuiList_getTopPosition (my list), bottom = GuiList_getBottomPosition (my list);
-		long visible = bottom - top + 1;
-		if (nSelect == 0) {
-			top = my position - visible / 2;
-		} else if (select[nSelect] < top) {
-			// selection above visible area
-			top = select[1];
-		} else if (select[1] > bottom) {
-			// selection below visible area
-			top = select[nSelect] - visible + 1;
-		} else {
-			long deltaTopPos = -1, nUpdate = to - from + 1;
-			if ( (from == select[1] && to == select[nSelect]) || // Replace
-			        (nUpdate > 2 && nSelect == 1) /* Inserts */) {
-				deltaTopPos = 0;
-			} else if (nUpdate == nSelect + 1 && select[1] == from + 1) { // down
-				deltaTopPos = 1;
-			}
-			top += deltaTopPos;
-		}
-		if (top + visible > size) {
-			top = size - visible + 1;
-		}
-		if (top < 1) {
-			top = 1;
-		}
-		GuiList_setTopPosition (my list, top);
-	}
-}
-
-#pragma mark - Commands for Undo and Redo
+/********************** General Command **********************/
 
 Thing_define (CategoriesEditorCommand, Command) {
-	autoCategories categories;
-	long *selection;
-	long nSelected, newPos;
-
-	void v_destroy () noexcept
-		override;
+	// new data:
+public:
+	Categories categories;
+	long *selection; long nSelected, newPos;
+	// overridden methods:
+	virtual void v_destroy ();
 };
 
 Thing_implement (CategoriesEditorCommand, Command, 0);
 
-void structCategoriesEditorCommand :: v_destroy () noexcept {
+void structCategoriesEditorCommand :: v_destroy () {
 	NUMvector_free (selection, 1);
+	forget (categories);
 	CategoriesEditorCommand_Parent :: v_destroy ();
 }
 
-static void CategoriesEditorCommand_init (CategoriesEditorCommand me, const char32 *name, Thing boss,
-        Command_Callback execute, Command_Callback undo, int /*nCategories*/, int nSelected) {
+static void CategoriesEditorCommand_init (I, const char32 *name,  Any data,
+        int (*execute) (Any), int (*undo) (Any), int nCategories, int nSelected) {
+	iam (CategoriesEditorCommand);
+	(void) nCategories;
 
 	my nSelected = nSelected;
-	Command_init (me, name, boss, execute, undo);
+	Command_init (me, name, data, execute, undo);
 	my categories = Categories_create();
 	my selection = NUMvector<long> (1, nSelected);
 }
 
-#pragma mark Insert
+/*********************** Insert Command ***********************/
 
 Thing_define (CategoriesEditorInsert, CategoriesEditorCommand) {
 };
 
 Thing_implement (CategoriesEditorInsert, CategoriesEditorCommand, 0);
 
-static int CategoriesEditorInsert_execute (CategoriesEditorInsert me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
-	{// scope
-		autoSimpleString str = Data_copy (my categories->at [1]);
-		categories -> addItemAtPosition_move (str.move(), my selection [1]);
-	}
-	update (editor, my selection [1], 0, my selection, 1);
+static int CategoriesEditorInsert_execute (I) {
+	iam (CategoriesEditorInsert);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Categories categories = (Categories) editor -> data;
+	autoSimpleString str = Data_copy ( (SimpleString) ( (Categories) my categories)->item[1]);
+	Ordered_addItemPos (categories, str.transfer(), my selection[1]);
+	update (editor, my selection[1], 0, my selection, 1);
 	return 1;
 }
 
-static int CategoriesEditorInsert_undo (CategoriesEditorInsert me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
-
-	categories -> removeItem (my selection [1]);
-	update (editor, my selection [1], 0, my selection, 1);
+static int CategoriesEditorInsert_undo (I) {
+	iam (CategoriesEditorInsert);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Categories categories = (Categories) editor -> data;
+	Collection_removeItem (categories, my selection[1]);
+	update (editor, my selection[1], 0, my selection, 1);
 	return 1;
 }
 
-static autoCategoriesEditorInsert CategoriesEditorInsert_create (Thing boss, autoSimpleString str, int position) {
+static CategoriesEditorInsert CategoriesEditorInsert_create (Any data, Any str, int position) {
 	try {
 		autoCategoriesEditorInsert me = Thing_new (CategoriesEditorInsert);
-		CategoriesEditorCommand_init (me.get(), U"Insert", boss, CategoriesEditorInsert_execute, CategoriesEditorInsert_undo, 1, 1);
-		my selection [1] = position;
-		my categories -> addItem_move (str.move());
-		return me;
+		CategoriesEditorCommand_init (me.peek(), U"Insert", data, CategoriesEditorInsert_execute,
+		                              CategoriesEditorInsert_undo, 1, 1);
+		my selection[1] = position;
+		Collection_addItem (my categories, (SimpleString) str);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CategoriesEditorInsert not created.");
 	}
 }
 
-#pragma mark Remove
+/*********************** Remove Command ***********************/
 
 Thing_define (CategoriesEditorRemove, CategoriesEditorCommand) {
 };
 
 Thing_implement (CategoriesEditorRemove, CategoriesEditorCommand, 0);
 
-static int CategoriesEditorRemove_execute (CategoriesEditorRemove me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
+static int CategoriesEditorRemove_execute (I) {
+	iam (CategoriesEditorRemove);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Categories l_categories = (Categories) editor -> data;   // David, weer link: tweemaal dezelfde naam (categories): is ok, geen conflict. Naam toch maar aangepast
 
 	for (long i = my nSelected; i >= 1; i--) {
-		autoSimpleString item = Data_copy (categories->at [my selection [i]]);   // FIXME this copy can probably be replaced with a move
-		my categories -> addItemAtPosition_move (item.move(), 1);
-		categories -> removeItem (my selection [i]);
+		Ordered_addItemPos (my categories, (SimpleString) l_categories -> item[my selection[i]], 1);
+		l_categories -> item[my selection[i]] = 0;
+		Collection_removeItem (l_categories, my selection[i]);
 	}
-	update (editor, my selection [1], 0, nullptr, 0);
+	update (editor, my selection[1], 0, 0, 0);
 	return 1;
 }
 
-static int CategoriesEditorRemove_undo (CategoriesEditorRemove me) {
-	CategoriesEditor editor = (CategoriesEditor) my boss;
+static int CategoriesEditorRemove_undo (I) {
+	iam (CategoriesEditorRemove);
+	CategoriesEditor editor = (CategoriesEditor) my data;
 	Categories categories = (Categories) editor -> data;
 
-	for (long i = 1; i <= my nSelected; i ++) {
-		autoSimpleString item = Data_copy (my categories->at [i]);
-		categories -> addItemAtPosition_move (item.move(), my selection [i]);
+	for (long i = 1; i <= my nSelected; i++) {
+		autoSimpleString item = Data_copy ( (SimpleString) my categories -> item[i]);
+		Ordered_addItemPos (categories, item.transfer(), my selection[i]);
 	}
-	update (editor, my selection [1], 0, my selection, my nSelected);
+	update (editor, my selection[1], 0, my selection, my nSelected);
 	return 1;
 }
 
-static autoCategoriesEditorRemove CategoriesEditorRemove_create (Thing boss, long *posList, long posCount) {
+static CategoriesEditorRemove CategoriesEditorRemove_create (Any data, long *posList, long posCount) {
 	try {
 		autoCategoriesEditorRemove me = Thing_new (CategoriesEditorRemove);
-		CategoriesEditorCommand_init (me.get(), U"Remove", boss, CategoriesEditorRemove_execute,
+		CategoriesEditorCommand_init (me.peek(), U"Remove", data, CategoriesEditorRemove_execute,
 		                              CategoriesEditorRemove_undo, posCount, posCount);
-		for (long i = 1; i <= posCount; i ++) {
-			my selection [i] = posList [i];
+		for (long i = 1; i <= posCount; i++) {
+			my selection[i] = posList[i];
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CategoriesEditorRemove not created.");
 	}
 }
 
-#pragma mark Replace
+//update (me);
+/*********************** Replace Command ***********************/
 
 Thing_define (CategoriesEditorReplace, CategoriesEditorCommand) {
 };
 
 Thing_implement (CategoriesEditorReplace, CategoriesEditorCommand, 0);
 
-static int CategoriesEditorReplace_execute (CategoriesEditorReplace me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
+static int CategoriesEditorReplace_execute (I) {
+	iam (CategoriesEditorReplace);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Categories categories = (Categories) editor -> data;
 
-	for (long i = my nSelected; i >= 1; i --) {
-		autoSimpleString str = Data_copy (my categories->at [1]);
-		my categories -> addItemAtPosition_move (autoSimpleString (categories->at [my selection [i]]), 2);   // YUCK
-		categories->at [my selection [i]] = str.releaseToAmbiguousOwner();
+	for (long i = my nSelected; i >= 1; i--) {
+		autoSimpleString str = Data_copy ( (SimpleString) my categories -> item[1]);
+		Ordered_addItemPos (my categories, (SimpleString) categories -> item[my selection[i]], 2);
+		categories -> item[my selection[i]] =  str.transfer();
 	}
-	update (editor, my selection [1], my selection [my nSelected], my selection, my nSelected);
+	update (editor, my selection[1], my selection[my nSelected], my selection, my nSelected);
 	return 1;
 }
 
-static int CategoriesEditorReplace_undo (CategoriesEditorReplace me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
+static int CategoriesEditorReplace_undo (I) {
+	iam (CategoriesEditorReplace);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Categories categories = (Categories) editor -> data;
 
-	for (long i = 1; i <= my nSelected; i ++) {
-		autoSimpleString str = Data_copy (my categories->at [i + 1]);
-		categories -> replaceItem_move (str.move(), my selection [i]);
+	for (long i = 1; i <= my nSelected; i++) {
+		autoSimpleString str = Data_copy ( (SimpleString) my categories -> item[i + 1]);
+		Collection_replaceItemPos (categories, str.transfer(), my selection[i]);
 	}
-	update (editor, my selection [1], my selection[my nSelected], my selection, my nSelected);
+	update (editor, my selection[1], my selection[my nSelected], my selection, my nSelected);
 	return 1;
 }
 
-static autoCategoriesEditorReplace CategoriesEditorReplace_create (Thing boss, autoSimpleString str, long *posList, long posCount) {
+static CategoriesEditorReplace CategoriesEditorReplace_create (Any data, Any str, long *posList, long posCount) {
 	try {
 		autoCategoriesEditorReplace me = Thing_new (CategoriesEditorReplace);
-		CategoriesEditorCommand_init (me.get(), U"Replace", boss, CategoriesEditorReplace_execute,
+		CategoriesEditorCommand_init (me.peek(), U"Replace", data, CategoriesEditorReplace_execute,
 		                              CategoriesEditorReplace_undo, posCount + 1, posCount);
-		for (long i = 1; i <= posCount; i ++) {
-			my selection [i] = posList [i];
+		for (long i = 1; i <= posCount; i++) {
+			my selection[i] = posList[i];
 		}
-		my categories -> addItem_move (str.move());
-		return me;
+		Collection_addItem (my categories, (SimpleString) str);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CategoriesEditorReplace not created.");
 	}
 }
 
-#pragma mark MoveUp
+/*********************** MoveUp Command ***********************/
 
 Thing_define (CategoriesEditorMoveUp, CategoriesEditorCommand) {
 };
 
 Thing_implement (CategoriesEditorMoveUp, CategoriesEditorCommand, 0);
 
-static int CategoriesEditorMoveUp_execute (CategoriesEditorMoveUp me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
-
-	Ordered_moveItems ((Ordered) categories, my selection, my nSelected, my newPos);   // FIXME cast
+static int CategoriesEditorMoveUp_execute (I) {
+	iam (CategoriesEditorMoveUp);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Ordered_moveItems (editor->data, my selection, my nSelected, my newPos);
 	autoNUMvector<long> selection (1, my nSelected);
-	for (long i = 1; i <= my nSelected; i ++) {
+	for (long i = 1; i <= my nSelected; i++) {
 		selection[i] = my newPos + i - 1;
 	}
 	update (editor, my newPos, my selection[my nSelected], selection.peek(), my nSelected);
 	return 1;
 }
 
-static int CategoriesEditorMoveUp_undo (CategoriesEditorMoveUp me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
+static int CategoriesEditorMoveUp_undo (I) {
+	iam (CategoriesEditorMoveUp);
+	CategoriesEditor editor = (CategoriesEditor) my data;
 
-	for (long i = 1; i <= my nSelected; i ++) {
-		Ordered_moveItem ((Ordered) categories, my newPos, my selection [my nSelected]);   // FIXME cast
+	for (long i = 1; i <= my nSelected; i++) {
+		Ordered_moveItem (editor->data, my newPos, my selection[my nSelected]);
 	}
 	update (editor, my newPos, my selection[my nSelected], my selection, my nSelected);
 	return 1;
 }
 
-static autoCategoriesEditorMoveUp CategoriesEditorMoveUp_create (Thing boss, long *posList, long posCount, long newPos) {
-
+static CategoriesEditorMoveUp CategoriesEditorMoveUp_create (Any data, long *posList,
+        long posCount, long newPos) {
 	try {
 		autoCategoriesEditorMoveUp me = Thing_new (CategoriesEditorMoveUp);
-		CategoriesEditorCommand_init (me.get(), U"Move up", boss, CategoriesEditorMoveUp_execute, CategoriesEditorMoveUp_undo, 0, posCount);
-		for (long i = 1; i <= posCount; i ++) {
-			my selection [i] = posList [i];
+		CategoriesEditorCommand_init (me.peek(), U"Move up", data, CategoriesEditorMoveUp_execute,
+		                              CategoriesEditorMoveUp_undo, 0, posCount);
+		for (long i = 1; i <= posCount; i++) {
+			my selection[i] = posList[i];
 		}
 		my newPos = newPos;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CategoriesEditorMoveUp not created.");
 	}
 }
 
-#pragma mark MoveDown
+/*********************** MoveDown Command ***********************/
 
 Thing_define (CategoriesEditorMoveDown, CategoriesEditorCommand) {
 };
 
 Thing_implement (CategoriesEditorMoveDown, CategoriesEditorCommand, 0);
 
-static int CategoriesEditorMoveDown_execute (CategoriesEditorMoveDown me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
-
-	Ordered_moveItems ((Ordered) categories, my selection, my nSelected, my newPos);   // FIXME cast
+static int CategoriesEditorMoveDown_execute (I) {
+	iam (CategoriesEditorMoveDown);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	Ordered_moveItems ( (Ordered) editor -> data, my selection, my nSelected, my newPos);
 	autoNUMvector<long> selection (1, my nSelected);
 	for (long i = 1; i <= my nSelected; i++) {
 		selection[i] = my newPos - my nSelected + i;
@@ -541,84 +375,277 @@ static int CategoriesEditorMoveDown_execute (CategoriesEditorMoveDown me) {
 	return 1;
 }
 
-static int CategoriesEditorMoveDown_undo (CategoriesEditorMoveDown me) {
-	CategoriesEditor editor = static_cast<CategoriesEditor> (my boss);
-	Categories categories = static_cast<Categories> (editor -> data);
-
-	for (long i = 1; i <= my nSelected; i ++) {
-		Ordered_moveItem ((Ordered) categories, my newPos, my selection [1]); // TODO 1 or i ??     // FIXME cast
+static int CategoriesEditorMoveDown_undo (I) {
+	iam (CategoriesEditorMoveDown);
+	CategoriesEditor editor = (CategoriesEditor) my data;
+	for (long i = 1; i <= my nSelected; i++) {
+		Ordered_moveItem (editor -> data, my newPos, my selection[1]); // TODO 1 or i ??
 	}
 	long from = my selection[1];
-	update (editor, ( from > 1 ? from -- : from ), my newPos, my selection, my nSelected);
+	update (editor, (from > 1 ? from-- : from), my newPos, my selection, my nSelected);
 	return 1;
 }
 
-static autoCategoriesEditorMoveDown CategoriesEditorMoveDown_create (Thing boss, long *posList,
+static CategoriesEditorMoveDown CategoriesEditorMoveDown_create (Any data, long *posList,
         long posCount, long newPos) {
 	try {
 		autoCategoriesEditorMoveDown me = Thing_new (CategoriesEditorMoveDown);
-		CategoriesEditorCommand_init (me.get(), U"Move down", boss, CategoriesEditorMoveDown_execute, CategoriesEditorMoveDown_undo, 0, posCount);
+		CategoriesEditorCommand_init (me.peek(), U"Move down", data, CategoriesEditorMoveDown_execute,
+		                              CategoriesEditorMoveDown_undo, 0, posCount);
 		for (long i = 1; i <= posCount; i++) {
 			my selection[i] = posList[i];
 		}
 		my newPos = newPos;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CategoriesEditorMoveDown not created.");
 	}
 }
 
-#pragma mark - Callbacks
+/********************* Commands (End)  *************************************/
 
-static void gui_button_cb_remove (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void notifyOutOfView (I) {
+	iam (CategoriesEditor);
+	autoMelderString tmp;
+	MelderString_copy (&tmp, U"");
 	long posCount;
 	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
-	if (posList.peek()) {
+	if (posList.peek() != 0) {
+		long outOfView = 0, top = GuiList_getTopPosition (my list), bottom = GuiList_getBottomPosition (my list);
+
+		for (long i = posCount; i > 0; i--) {
+			if (posList[i] < top || posList[i] > bottom) {
+				outOfView++;
+			}
+		}
+		if (outOfView > 0) {
+			MelderString_append (&tmp, outOfView, U" selection(s) out of view");
+		}
+	}
+	GuiLabel_setText (my outOfView, tmp.string);
+}
+
+static void update_dos (I) {
+	iam (CategoriesEditor);
+	bool undoSense = true, redoSense = true;
+
+	// undo
+
+	const char32 *name;
+	if (! (name = CommandHistory_commandName (my history, 0))) {
+		name = U"nothing"; undoSense = false;
+	}
+
+	GuiButton_setText (my undo, Melder_cat (U"Undo ", U"\"", name, U"\""));
+	GuiThing_setSensitive (my undo, undoSense);
+
+	// redo
+
+	if (! (name = CommandHistory_commandName (my history, 1))) {
+		name = U"nothing"; redoSense = false;
+	}
+	GuiButton_setText (my redo, Melder_cat (U"Redo ", U"\"", name, U"\""));
+	GuiThing_setSensitive (my redo, redoSense);
+}
+
+static void updateWidgets (I) { /*all buttons except undo & redo */
+	iam (CategoriesEditor);
+	long size = ( (Categories) my data)->size;
+	bool insert = false, insertAtEnd = true, replace = false, remove = false;
+	bool moveUp = false, moveDown = false;
+	long posCount;
+	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
+	if (posList.peek() != 0) {
+		long firstPos = posList[1], lastPos = posList[posCount];
+		bool contiguous = lastPos - firstPos + 1 == posCount;
+		moveUp = contiguous && firstPos > 1;
+		moveDown = contiguous && lastPos < size;
+		my position = firstPos;
+		remove = true; replace = true; //insertAtEnd = False;
+		if (posCount == 1) {
+			insert = true;
+			//if (posList[1] == size) insertAtEnd = True;
+			if (size == 1 && ! str32cmp (CategoriesEditor_EMPTYLABEL,
+			                           OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, 1))) {
+				remove = false;
+			}
+		}
+	}
+	GuiThing_setSensitive (my insert,      insert);
+	GuiThing_setSensitive (my insertAtEnd, insertAtEnd);
+	GuiThing_setSensitive (my replace,     replace);
+	GuiThing_setSensitive (my remove,      remove);
+	GuiThing_setSensitive (my moveUp,      moveUp);
+	GuiThing_setSensitive (my moveDown,    moveDown);
+	if (my history) {
+		update_dos (me);
+	}
+	notifyOutOfView (me);
+}
+
+static void update (I, long from, long to, const long *select, long nSelect) {
+	iam (CategoriesEditor);
+	long size = ((Categories) my data) -> size;
+
+	if (size == 0) {
+		autoSimpleString str = SimpleString_create (CategoriesEditor_EMPTYLABEL);
+		Collection_addItem ( (Categories) my data, str.transfer());
+		update (me, 0, 0, 0, 0);
+		return;
+	}
+	if (from == 0 && from == to) {
+		from = 1; to = size;
+	}
+	if (from < 1 || from > size) {
+		from = size;
+	}
+	if (to < 1 || to > size) {
+		to = size;
+	}
+	if (from > to) {
+		long ti = from; from = to; to = ti;
+	}
+
+	// Begin optimization: add the items from a table instead of separately.
+	try {
+		autostring32vector table (from, to);
+		long itemCount = GuiList_getNumberOfItems (my list);
+		for (long i = from; i <= to; i++) {
+			char wcindex[20];
+			snprintf (wcindex,20, "%5ld ", i);
+			table[i] = Melder_dup_f (Melder_cat (Melder_peek8to32 (wcindex), OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, i)));
+		}
+		if (itemCount > size) { // some items have been removed from Categories?
+			for (long j = itemCount; j > size; j --) {
+				GuiList_deleteItem (my list, j);
+			}
+			itemCount = size;
+		}
+		if (to > itemCount) {
+			for (long j = 1; j <= to - itemCount; j ++) {
+				GuiList_insertItem (my list, table [itemCount + j], 0);
+			}
+		}
+		if (from <= itemCount) {
+			long n = (to < itemCount ? to : itemCount);
+			for (long j = from; j <= n; j++) {
+				GuiList_replaceItem (my list, table[j], j);
+			}
+		}
+	} catch (MelderError) {
+		throw;
+	}
+
+	// End of optimization
+
+	// HIGHLIGHT
+
+	GuiList_deselectAllItems (my list);
+	if (size == 1) { /* the only item is always selected */
+		const char32 *catg = OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, 1);
+		GuiList_selectItem (my list, 1);
+		updateWidgets (me);   // instead of "notify". BUG?
+		GuiText_setString (my text, catg);
+	} else if (nSelect > 0) {
+		// Select but postpone highlighting
+
+		for (long i = 1; i <= nSelect; i++) {
+			GuiList_selectItem (my list, select[i] > size ? size : select[i]);
+		}
+	}
+
+	// VIEWPORT
+
+	{
+		long top = GuiList_getTopPosition (my list), bottom = GuiList_getBottomPosition (my list);
+		long visible = bottom - top + 1;
+		if (nSelect == 0) {
+			top = my position - visible / 2;
+		} else if (select[nSelect] < top) {
+			// selection above visible area
+			top = select[1];
+		} else if (select[1] > bottom) {
+			// selection below visible area
+			top = select[nSelect] - visible + 1;
+		} else {
+			long deltaTopPos = -1, nUpdate = to - from + 1;
+			if ( (from == select[1] && to == select[nSelect]) || // Replace
+			        (nUpdate > 2 && nSelect == 1) /* Inserts */) {
+				deltaTopPos = 0;
+			} else if (nUpdate == nSelect + 1 && select[1] == from + 1) { // down
+				deltaTopPos = 1;
+			}
+			top += deltaTopPos;
+		}
+		if (top + visible > size) {
+			top = size - visible + 1;
+		}
+		if (top < 1) {
+			top = 1;
+		}
+		GuiList_setTopPosition (my list, top);
+	}
+}
+
+static void gui_button_cb_remove (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
+	long posCount;
+	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
+	if (posList.peek() != 0) {
 		autoCategoriesEditorRemove command = CategoriesEditorRemove_create (me, posList.peek(), posCount);
-		if (! Command_do (command.get())) {
+		if (! Command_do (command.peek())) {
 			return;
 		}
 		if (my history) {
-			CommandHistory_insertItem_move (my history.get(), command.move());
+			CommandHistory_insertItem (my history, command.transfer());
 		}
 		updateWidgets (me);
 	}
 }
 
-static void insert (CategoriesEditor me, int position) {
+static void insert (I, int position) {
+	iam (CategoriesEditor);
 	autostring32 text = GuiText_getString (my text);
 	if (str32len (text.peek()) != 0) {
 		autoSimpleString str = SimpleString_create (text.peek());
-		autoCategoriesEditorInsert command = CategoriesEditorInsert_create (me, str.move(), position);
-		Command_do (command.get());
+		autoCategoriesEditorInsert command = CategoriesEditorInsert_create (me, str.transfer(), position);
+		Command_do (command.peek());
 		if (my history) {
-			CommandHistory_insertItem_move (my history.get(), command.move());
+			CommandHistory_insertItem (my history, command.transfer());
 		}
 		updateWidgets (me);
 	}
 }
 
-static void gui_button_cb_insert (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_insert (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
 	insert (me, my position);
 }
 
-static void gui_button_cb_insertAtEnd (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_insertAtEnd (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
 	Categories categories = (Categories) my data;
-	insert (me, categories->size + 1);
-	my position = categories->size;
+	insert (me, categories -> size + 1);
+	my position = categories -> size;
 }
 
-static void gui_button_cb_replace (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_replace (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
 	long posCount;
 	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
 	if (posCount > 0) {
 		autostring32 text = GuiText_getString (my text);
 		if (str32len (text.peek()) != 0) {
 			autoSimpleString str = SimpleString_create (text.peek());
-			autoCategoriesEditorReplace command = CategoriesEditorReplace_create (me, str.move(), posList.peek(), posCount);
-			Command_do (command.get());
+			autoCategoriesEditorReplace command = CategoriesEditorReplace_create (me, str.transfer(),
+			                                      posList.peek(), posCount);
+			Command_do (command.peek());
 			if (my history) {
-				CommandHistory_insertItem_move (my history.get(), command.move());
+				CommandHistory_insertItem (my history, command.transfer());
 			}
 			updateWidgets (me);
 		}
@@ -626,81 +653,82 @@ static void gui_button_cb_replace (CategoriesEditor me, GuiButtonEvent /* event
 }
 
 /* Precondition: contiguous selection */
-static void gui_button_cb_moveUp (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_moveUp (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
 	long posCount;
 	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
 	if (posCount > 0) {
-		autoCategoriesEditorMoveUp command = CategoriesEditorMoveUp_create (me, posList.peek(), posCount, posList[1] - 1);
-		Command_do (command.get());
+		autoCategoriesEditorMoveUp command = CategoriesEditorMoveUp_create
+		                                     (me, posList.peek(), posCount, posList[1] - 1);
+		Command_do (command.peek());
 		if (my history) {
-			CommandHistory_insertItem_move (my history.get(), command.move());
+			CommandHistory_insertItem (my history, command.transfer());
 		}
 		updateWidgets (me);
 	}
 }
 
 /* Precondition: contiguous selection */
-static void gui_button_cb_moveDown (CategoriesEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_moveDown (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
 	long posCount;
 	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
 	if (posCount > 0) {
-		autoCategoriesEditorMoveDown command = CategoriesEditorMoveDown_create (me, posList.peek(), posCount, posList[posCount] + 1);
-		Command_do (command.get());
+		autoCategoriesEditorMoveDown command = CategoriesEditorMoveDown_create
+		                                       (me, posList.peek(), posCount, posList[posCount] + 1);
+		Command_do (command.peek());
 		if (my history) {
-			CommandHistory_insertItem_move (my history.get(), command.move());
+			CommandHistory_insertItem (my history, command.transfer());
 		}
 		updateWidgets (me);
 	}
 }
 
-static void gui_list_cb_selectionChanged (CategoriesEditor me, GuiList_SelectionChangedEvent /* event */) {
-	updateWidgets (me);
-}
-
-static void gui_list_cb_doubleClick (CategoriesEditor me, GuiList_DoubleClickEvent event) {
-	Melder_assert (event -> list == my list);
 
-	//  `my position` should just have been updated by the selectionChanged callback.
+static void gui_cb_scroll (GUI_ARGS) {
+	GUI_IAM (CategoriesEditor);
+	notifyOutOfView (me);
+}
 
-	long posCount;
-	autoNUMvector<long> posList (GuiList_getSelectedPositions (my list, & posCount), 1);
-	if (posCount == 1   // often or even usually true when double-clicking?
-	    && posList [1] == my position)   // should be true, but we don't crash if it's false
-	{
-		const char32 *catg = OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, my position);
-		if (catg) {   // should be non-null, but we don't crash if not
-			GuiText_setString (my text, catg);
-		}
-	}
+static void gui_list_cb_double_click (void *void_me, GuiListEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
+	const char32 *catg = OrderedOfString_itemAtIndex_c ((OrderedOfString) my data, my position);
+	GuiText_setString (my text, catg);
 }
 
-static void gui_list_cb_scroll (CategoriesEditor me, GuiList_ScrollEvent /* event */) {
-	notifyNumberOfSelected (me);
+static void gui_list_cb_extended (void *void_me, GuiListEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
+	updateWidgets (me);
 }
 
-static void gui_button_cb_undo (CategoriesEditor me, GuiButtonEvent /* event */) {
-	if (CommandHistory_offleft (my history.get())) {
+static void gui_button_cb_undo (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
+	if (CommandHistory_offleft (my history)) {
 		return;
 	}
-	Command command = CommandHistory_getItem (my history.get());
-	Command_undo (command);
-	CommandHistory_back (my history.get());
+	Command_undo (CommandHistory_getItem (my history));
+	CommandHistory_back (my history);
 	updateWidgets (me);
 }
 
-static void gui_button_cb_redo (CategoriesEditor me, GuiButtonEvent /* event */) {
-	CommandHistory_forth (my history.get());
-	if (CommandHistory_offright (my history.get())) {
+static void gui_button_cb_redo (I, GuiButtonEvent event) {
+	(void) event;
+	iam (CategoriesEditor);
+	CommandHistory_forth (my history);
+	if (CommandHistory_offright (my history)) {
 		return;
 	}
-	Command command = CommandHistory_getItem (my history.get());
-	Command_do (command);
+	Command_do (CommandHistory_getItem (my history));
 	updateWidgets (me);
 }
 
-#pragma mark - Editor methods
-
-void structCategoriesEditor :: v_destroy () noexcept {
+void structCategoriesEditor :: v_destroy () {
+	forget (history); /* !! Editor */
 	CategoriesEditor_Parent :: v_destroy ();
 }
 
@@ -711,25 +739,23 @@ void structCategoriesEditor :: v_createHelpMenuItems (EditorMenu menu) {
 
 // origin is at top left.
 void structCategoriesEditor :: v_createChildren () {
-	constexpr int menuBarOffset { 40 };
-	constexpr int button_width { 130 }, button_height { menuBarOffset }, list_width { 260 }, list_height { 420 };
-	constexpr int delta_x { 15 }, delta_y { menuBarOffset / 2 }, text_button_height { button_height / 2 };
+	double menuBarOffset = 40;
+	double button_width = 90, button_height = menuBarOffset, list_width = 260, list_height = 200, list_bottom;
+	double delta_x = 15, delta_y = menuBarOffset / 2, text_button_height = button_height / 2;
+	double left, right, top, bottom, buttons_left, buttons_top;
 
-	int left = 5, right = left + button_width, top = 3 + menuBarOffset, bottom = top + text_button_height;
+	left = 5; right = left + button_width; top = 3 + menuBarOffset; bottom = top + text_button_height;
 	GuiLabel_createShown (d_windowForm, left, right, top, bottom, U"Positions:", 0);
 	left = right + delta_x ; right = left + button_width;
 	GuiLabel_createShown (d_windowForm, left, right, top, bottom, U"Values:", 0);
 
-	left = 0; right = left + list_width; 
-	// int buttons_top = (top = bottom + delta_y);
-	int list_bottom = bottom = top + list_height;
+	left = 0; right = left + list_width; buttons_top = (top = bottom + delta_y); list_bottom = bottom = top + list_height;
 	list = GuiList_create (d_windowForm, left, right, top, bottom, true, 0);
-	GuiList_setSelectionChangedCallback (list, gui_list_cb_selectionChanged, this);
-	GuiList_setDoubleClickCallback (list, gui_list_cb_doubleClick, this);
-	GuiList_setScrollCallback (list, gui_list_cb_scroll, this);
+	GuiList_setSelectionChangedCallback (list, gui_list_cb_extended, this);
+	GuiList_setDoubleClickCallback (list, gui_list_cb_double_click, this);
 	GuiThing_show (list);
 
-	int buttons_left = left = right + 2 * delta_x; right = left + button_width; bottom = top + button_height;
+	buttons_left = left = right + 2 * delta_x; right = left + button_width; bottom = top + button_height;
 	GuiLabel_createShown (d_windowForm, left, right, top, bottom, U"Value:", 0);
 	left = right + delta_x; right = left + button_width;
 	text = GuiText_createShown (d_windowForm, left, right, top, bottom, 0);
@@ -739,7 +765,7 @@ void structCategoriesEditor :: v_createChildren () {
 	insert = GuiButton_createShown (d_windowForm, left, right, top, bottom,	U"Insert", gui_button_cb_insert, this, GuiButton_DEFAULT);
 	left = right + delta_x; right = left + button_width;
 	replace = GuiButton_createShown (d_windowForm, left, right, top, bottom, U"Replace", gui_button_cb_replace, this, 0);
-	left = buttons_left; right = left + int (1.5 * button_width); top = bottom + delta_y; bottom = top + button_height;
+	left = buttons_left; right = left + 1.5 * button_width; top = bottom + delta_y; bottom = top + button_height;
 	insertAtEnd = GuiButton_createShown (d_windowForm, left, right, top, bottom, U"Insert at end", gui_button_cb_insertAtEnd, this, 0);
 	top = bottom + delta_y; bottom = top + button_height;
 	undo = GuiButton_createShown (d_windowForm, left, right, top, bottom, U"Undo", gui_button_cb_undo, this, 0);
@@ -757,20 +783,18 @@ void structCategoriesEditor :: v_createChildren () {
 }
 
 void structCategoriesEditor :: v_dataChanged () {
-	update (this, 0, 0, nullptr, 0);
+	update (this, 0, 0, 0, 0);
 	updateWidgets (this);
 }
 
-#pragma mark -
-
-autoCategoriesEditor CategoriesEditor_create (const char32 *title, Categories data) {
+CategoriesEditor CategoriesEditor_create (const char32 *title, Categories data) {
 	try {
 		autoCategoriesEditor me = Thing_new (CategoriesEditor);
-		Editor_init (me.get(), 20, 40, 600, 600, title, data);
-		my history = CommandHistory_create ();
-		update (me.get(), 0, 0, nullptr, 0);
-		updateWidgets (me.get());
-		return me;
+		Editor_init (me.peek(), 20, 40, 600, 600, title, data);
+		my history = CommandHistory_create (100);
+		update (me.peek(), 0, 0, 0, 0);
+		updateWidgets (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Categories window not created.");
 	}
diff --git a/dwtools/CategoriesEditor.h b/dwtools/CategoriesEditor.h
index c40aace..2c54c31 100644
--- a/dwtools/CategoriesEditor.h
+++ b/dwtools/CategoriesEditor.h
@@ -2,7 +2,7 @@
 #define _CategoriesEditor_h_
 /* CategoriesEditor.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,24 +24,22 @@
 #include "Categories.h"
 
 Thing_define (CategoriesEditor, Editor) {
-	autoCommandHistory history;
-	int position;
-	GuiList list;
-	GuiText text;
-	GuiButton undo, redo;
-	GuiLabel outOfView;
-	GuiButton remove, insert, insertAtEnd, replace, moveUp, moveDown;
-
-	void v_destroy () noexcept
-		override;
-	void v_createChildren ()
-		override;
-	void v_createHelpMenuItems (EditorMenu menu)
-		override;
-	void v_dataChanged ()
-		override;
+	// new data:
+	public:
+		CommandHistory history;
+		int position;
+		GuiList list;
+		GuiText text;
+		GuiButton undo, redo;
+		GuiLabel outOfView;
+		GuiButton remove, insert, insertAtEnd, replace, moveUp, moveDown;
+	// overridden methods:
+		void v_destroy ();
+		void v_createChildren ();
+		void v_createHelpMenuItems (EditorMenu menu);
+		void v_dataChanged ();
 };
 
-autoCategoriesEditor CategoriesEditor_create (const char32 *title, Categories data);
+CategoriesEditor CategoriesEditor_create (const char32 *title, Categories data);
 
-#endif /* _CategoriesEditor_h_ */
+#endif /* _CategoriesEditor_h_ */
\ No newline at end of file
diff --git a/dwtools/Categories_and_Strings.cpp b/dwtools/Categories_and_Strings.cpp
index d902067..b7337d3 100644
--- a/dwtools/Categories_and_Strings.cpp
+++ b/dwtools/Categories_and_Strings.cpp
@@ -1,6 +1,6 @@
 /* Categories_and_Strings.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
 
 #include "Categories_and_Strings.h"
 
-autoStrings Categories_to_Strings (Categories me) {
+Strings Categories_to_Strings (Categories me) {
 	try {
 		if (my size < 1) {
 			Melder_throw (U"No elements.");
@@ -33,29 +33,29 @@ autoStrings Categories_to_Strings (Categories me) {
 		thy strings = NUMvector<char32 *> (1, my size);
 		thy numberOfStrings = my size;
 
-		for (long i = 1; i <= my size; i ++) {
-			SimpleString s = my at [i];
-			thy strings [i] = Melder_dup (s -> string);
+		for (long i = 1; i <= my size; i++) {
+			SimpleString s = (SimpleString) my item[i];
+			thy strings[i] = Melder_dup (s -> string);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Strings.");
 	}
 }
 
-autoCategories Strings_to_Categories (Strings me) {
+Categories Strings_to_Categories (Strings me) {
 	try {
 		if (my numberOfStrings < 1) {
 			Melder_throw (U"Empty strings.");
 		}
 		autoCategories thee = Thing_new (Categories);
-		thy _grow (my numberOfStrings);
+		Categories_init (thee.peek(), my numberOfStrings);
 
 		for (long i = 1; i <= my numberOfStrings; i++) {
-			autoSimpleString s = SimpleString_create (my strings [i]);
-			thy addItem_move (s.move());
+			autoSimpleString s = SimpleString_create (my strings[i]);
+			Collection_addItem (thee.peek(), s.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted.");
 	}
diff --git a/dwtools/Categories_and_Strings.h b/dwtools/Categories_and_Strings.h
index 83c3bbb..dffd680 100644
--- a/dwtools/Categories_and_Strings.h
+++ b/dwtools/Categories_and_Strings.h
@@ -2,7 +2,7 @@
 #define _Categories_and_Strings_h_
 /* Categories_and_Strings.h
  *
- * Copyright (C) 2001-2012, 2015 David Weenink
+ * Copyright (C) 2001-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,8 +27,8 @@
 #include "Categories.h"
 #include "Strings_.h"
 
-autoStrings Categories_to_Strings (Categories me);
+Strings Categories_to_Strings (Categories me);
 
-autoCategories Strings_to_Categories (Strings me);
+Categories Strings_to_Categories (Strings me);
 
 #endif /* _Categories_and_Strings_h_ */
diff --git a/dwtools/ClassificationTable.cpp b/dwtools/ClassificationTable.cpp
index 23a9fab..07e7ba5 100644
--- a/dwtools/ClassificationTable.cpp
+++ b/dwtools/ClassificationTable.cpp
@@ -1,6 +1,6 @@
 /* ClassificationTable.cpp
  *
- * Copyright (C) 1993-2011, 2014-2016 David Weenink
+ * Copyright (C) 1993-2011, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,25 +34,25 @@
 
 Thing_implement (ClassificationTable, TableOfReal, 0);
 
-autoClassificationTable ClassificationTable_create (long numberOfRows, long numberOfClasses) {
+ClassificationTable ClassificationTable_create (long numberOfRows, long numberOfClasses) {
 	try {
 		autoClassificationTable me = Thing_new (ClassificationTable);
-		TableOfReal_init (me.get(), numberOfRows, numberOfClasses);
-		return me;
+		TableOfReal_init (me.peek(), numberOfRows, numberOfClasses );
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ClassificationTable not created.");
 	}
 }
 
-autoConfusion ClassificationTable_to_Confusion (ClassificationTable me, bool onlyClassLabels) {
+Confusion ClassificationTable_to_Confusion (ClassificationTable me, int onlyClassLabels) {
 	try {
 		autoStrings responses = TableOfReal_extractColumnLabelsAsStrings (me);
 		autoStrings s2 = TableOfReal_extractRowLabelsAsStrings (me);
-		autoDistributions d2 = Strings_to_Distributions (s2.get());
-		autoStrings stimuli = TableOfReal_extractRowLabelsAsStrings (d2.get());
-		autoConfusion thee = Confusion_createFromStringses (( onlyClassLabels ? responses.get() : stimuli.get() ), responses.get());
-		Confusion_and_ClassificationTable_increase (thee.get(), me);
-		return thee;
+		autoDistributions d2 = Strings_to_Distributions (s2.peek());
+		autoStrings stimuli = TableOfReal_extractRowLabelsAsStrings (d2.peek());
+		autoConfusion thee = Confusion_createFromStringses ((onlyClassLabels ? responses.peek() : stimuli.peek()), responses.peek());
+		Confusion_and_ClassificationTable_increase (thee.peek(), me);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": confusions cannot be calculated.");
 	}
@@ -62,82 +62,79 @@ void Confusion_and_ClassificationTable_increase (Confusion me, ClassificationTab
 	if (my numberOfColumns != thy numberOfColumns) {
 		Melder_throw (U"The number of columns must be equal.");
 	}
-	for (long irow = 1; irow <= thy numberOfRows; irow ++) {
+	for (long irow = 1; irow <= thy numberOfRows; irow++) {
 		long index = TableOfReal_getColumnIndexAtMaximumInRow (thee, irow);
-		Confusion_increase (me, thy rowLabels [irow], my columnLabels [index]);
+		Confusion_increase (me, thy rowLabels[irow], my columnLabels[index]);
 	}
 }
 
-autoStrings ClassificationTable_to_Strings_maximumProbability (ClassificationTable me) {
+Strings ClassificationTable_to_Strings_maximumProbability (ClassificationTable me) {
 	try {
 		autoStrings thee = Strings_createFixedLength (my numberOfRows);
-		Melder_assert (my numberOfColumns > 0);
-		for (long i = 1; i <= my numberOfRows; i ++) {
-			double max = my data [i] [1];
+
+		for (long i = 1; i <= my numberOfRows; i++) {
+			double max = my data[i][1];
 			long col = 1;
-			for (long j = 2; j <= my numberOfColumns; j ++) {
-				if (my data [i] [j] > max) {
-					max = my data [i] [j];
-					col = j;
+			for (long j = 2; j <= my numberOfColumns; j++) {
+				if (my data[i][j] > max) {
+					max = my data[i][j]; col = j;
 				}
 			}
-			if (my columnLabels [col]) {
-				Strings_replace (thee.get(), i, my columnLabels [col]);
+			if (my columnLabels[col] != 0) {
+				Strings_replace (thee.peek(), i, my columnLabels[col]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": strings cannot be created.");
 	}
 }
 
-autoCategories ClassificationTable_to_Categories_maximumProbability (ClassificationTable me) {
+Categories ClassificationTable_to_Categories_maximumProbability (ClassificationTable me) {
 	try {
 		autoCategories thee = Categories_create ();
-		Melder_assert (my numberOfColumns > 0);
-		for (long i = 1; i <= my numberOfRows; i ++) {
-			double max = my data [i] [1];
+		for (long i = 1; i <= my numberOfRows; i++) {
+			double max = my data[i][1];
 			long col = 1;
-			for (long j = 2; j <= my numberOfColumns; j ++) {
-				if (my data [i] [j] > max) {
-					max = my data [i] [j];
-					col = j;
+			for (long j = 2; j <= my numberOfColumns; j++) {
+				if (my data[i][j] > max) {
+					max = my data[i][j]; col = j;
 				}
 			}
-			OrderedOfString_append (thee.get(), my columnLabels [col]);
+			OrderedOfString_append (thee.peek(), my columnLabels[col]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Categories created.");
 	}
 }
 
-autoCorrelation ClassificationTable_to_Correlation_columns (ClassificationTable me) {
+Correlation ClassificationTable_to_Correlation_columns (ClassificationTable me) {
 	try {
 		autoCorrelation thee = Correlation_create (my numberOfColumns);
-		for (long icol = 1; icol <= thy numberOfColumns; icol ++) {
-			char32 *label = my columnLabels [icol];
-			TableOfReal_setRowLabel (thee.get(), icol, label);
-			TableOfReal_setColumnLabel (thee.get(), icol, label);
+		for (long icol = 1; icol <= thy numberOfColumns; icol++) {
+			char32 *label = my columnLabels[icol];
+			TableOfReal_setRowLabel (thee.peek(), icol, label);
+			TableOfReal_setColumnLabel (thee.peek(), icol, label);
 		}
 
-		for (long irow = 1; irow <= thy numberOfColumns; irow ++) {
-			thy data [irow] [irow] = 1.0;
-			for (long icol = irow + 1; icol <= thy numberOfColumns; icol ++) {
-				double n11 = 0.0, n22 = 0.0, n12 = 0.0;
-				for (long i = 1; i <= my numberOfRows; i ++) {
-					n12 += my data [i] [irow] * my data [i] [icol];
-					n11 += my data [i] [irow] * my data [i] [irow];
-					n22 += my data [i] [icol] * my data [i] [icol];
+		for (long irow = 1; irow <= thy numberOfColumns; irow++) {
+			thy data[irow][irow] = 1;
+			for (long icol = irow + 1; icol <= thy numberOfColumns; icol++) {
+				double n11 = 0, n22 = 0, n12 = 0;
+				for (long i = 1; i <= my numberOfRows; i++) {
+					n12 += my data[i][irow] * my data[i][icol];
+					n11 += my data[i][irow] * my data[i][irow];
+					n22 += my data[i][icol] * my data[i][icol];
 				}
 				// probabilities might be very low!
-				if (n12 > 0.0 && n22 > 0.0) {
-					thy data [irow] [icol] = thy data [icol] [irow] = n12 / sqrt (n11 * n22);
+				if (n12 > 0 && n22 > 0) {
+					thy data[irow][icol] = thy data[icol][irow] = n12 / sqrt (n11 * n22);
 				}
 			}
 		}
 		thy numberOfObservations = my numberOfRows;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no correlation created.");
 	}
diff --git a/dwtools/ClassificationTable.h b/dwtools/ClassificationTable.h
index 16c9fe4..be25084 100644
--- a/dwtools/ClassificationTable.h
+++ b/dwtools/ClassificationTable.h
@@ -2,7 +2,7 @@
 #define _ClassificationTable_h_
 /* ClassificationTable.h
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,16 +29,15 @@
 Thing_define (ClassificationTable, TableOfReal) {
 };
 
-autoClassificationTable ClassificationTable_create (long numberOfRows, long numberOfColumns);
+ClassificationTable ClassificationTable_create (long numberOfRows, long numberOfColumns);
 
-autoCategories ClassificationTable_to_Categories_maximumProbability (ClassificationTable me);
+Categories ClassificationTable_to_Categories_maximumProbability (ClassificationTable me);
+Strings ClassificationTable_to_Strings_maximumProbability (ClassificationTable me);
 
-autoStrings ClassificationTable_to_Strings_maximumProbability (ClassificationTable me);
-
-autoConfusion ClassificationTable_to_Confusion (ClassificationTable me, bool onlyClassLabels);
+Confusion ClassificationTable_to_Confusion (ClassificationTable me, int onlyClassLabels);
 
 /* Correlations between the classes (columns) */
-autoCorrelation ClassificationTable_to_Correlation_columns (ClassificationTable me);
+Correlation ClassificationTable_to_Correlation_columns (ClassificationTable me);
 
 void Confusion_and_ClassificationTable_increase (Confusion me, ClassificationTable thee);
 
diff --git a/dwtools/ComplexSpectrogram.cpp b/dwtools/ComplexSpectrogram.cpp
index d5c94f4..6ce9fbd 100644
--- a/dwtools/ComplexSpectrogram.cpp
+++ b/dwtools/ComplexSpectrogram.cpp
@@ -1,6 +1,6 @@
 /* ComplexSpectrogram.cpp
  * 
- * Copyright (C) 2014-2015 David Weenink
+ * Copyright (C) 2014 David Weenink
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -42,19 +42,19 @@
 Thing_implement (ComplexSpectrogram, Matrix, 2);
 
 
-autoComplexSpectrogram ComplexSpectrogram_create (double tmin, double tmax, long nt, double dt,
+ComplexSpectrogram ComplexSpectrogram_create (double tmin, double tmax, long nt, double dt,
 	double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoComplexSpectrogram me = Thing_new (ComplexSpectrogram);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
 		my phase = NUMmatrix <double> (1, my ny, 1, my nx);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ComplexSpectrogram not created.");
 	}
 }
 
-autoComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLength, double timeStep) {
+ComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLength, double timeStep) {
 	try {
 		double samplingFrequency = 1.0 / my dx, myDuration = my xmax - my xmin, t1;
 		if (windowLength > myDuration) {
@@ -75,14 +75,15 @@ autoComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLengt
 		// Compute sampling of the spectrum
 
 		long numberOfFrequencies = halfnsamp_window + 1;
-		double df = samplingFrequency / (numberOfFrequencies - 1);
+		long df = (long) floor (samplingFrequency / (numberOfFrequencies - 1));
 		
-		autoComplexSpectrogram thee = ComplexSpectrogram_create (my xmin, my xmax, numberOfFrames, timeStep, t1, 0.0, 0.5 * samplingFrequency, numberOfFrequencies, df, 0.0);
+		autoComplexSpectrogram thee = ComplexSpectrogram_create (my xmin, my xmax, numberOfFrames, timeStep, t1,
+			0, 0.5 * samplingFrequency, numberOfFrequencies, df, 0);
 		// 
-		autoSound analysisWindow = Sound_create (1, 0.0, nsamp_window * my dx, nsamp_window, my dx, 0.5 * my dx);
+		autoSound analysisWindow = Sound_create (1, 0, nsamp_window * my dx, nsamp_window, my dx, 0.5 * my dx);
 		
 		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
+			double t = Sampled_indexToX (thee.peek(), iframe);
 			long leftSample = Sampled_xToLowIndex (me, t), rightSample = leftSample + 1;
 			long startSample = rightSample - halfnsamp_window;
 			long endSample = leftSample + halfnsamp_window;
@@ -93,10 +94,10 @@ autoComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLengt
 				analysisWindow -> z[1][j] = my z[1][startSample - 1 + j];
 			}
 			// window ?
-			autoSpectrum spec = Sound_to_Spectrum (analysisWindow.get(), 0);
+			autoSpectrum spec = Sound_to_Spectrum (analysisWindow.peek(), 0);
 			
 			thy z[1][iframe] = spec -> z[1][1] * spec -> z[1][1];
-			thy phase[1][iframe] = 0.0;
+			thy phase[1][iframe] = 0;
 			for (long ifreq = 2; ifreq <= numberOfFrequencies - 1; ifreq++) {
 				double x = spec -> z[1][ifreq], y = spec -> z[2][ifreq];
 				thy z[ifreq][iframe] = x * x + y * y; // power
@@ -104,21 +105,21 @@ autoComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLengt
 			}
 			// even number of samples
 			thy z[numberOfFrequencies][iframe] = spec -> z[1][numberOfFrequencies] * spec -> z[1][numberOfFrequencies];
-			thy phase[numberOfFrequencies][iframe] = 0.0;
+			thy phase[numberOfFrequencies][iframe] = 0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no ComplexSpectrogram created.");
 	}
 }
 
-autoSound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFactor) {
+Sound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFactor) {
 	try {
 		/* original number of samples is odd: imaginary part of last spectral value is zero -> 
 		 * phase is either zero or +/-pi
 		 */
-		double pi = atan2 (0.0, - 0.5);
-		double samplingFrequency = 2.0 * my ymax;
+		double pi = atan2 (0, - 0.5);
+		double samplingFrequency = 2 * my ymax;
 		double lastFrequency = my y1 + (my ny - 1) * my dy, lastPhase = my phase[my ny][1];
 		int originalNumberOfSamplesProbablyOdd = (lastPhase != 0.0 && lastPhase != pi && lastPhase != -pi) || 
 			my ymax - lastFrequency > 0.25 * my dx;
@@ -136,18 +137,17 @@ autoSound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFact
 		for (long iframe = 1; iframe <= my nx; iframe++) {
 			// "original" sound :
 			double tmid = Sampled_indexToX (me, iframe);
-			long leftSample = Sampled_xToLowIndex (thee.get(), tmid);
-			long rightSample = leftSample + 1;
+			long leftSample = Sampled_xToLowIndex (thee.peek(), tmid), rightSample = leftSample + 1;
 			long startSample = rightSample - halfnsamp_window;
-			double startTime = Sampled_indexToX (thee.get(), startSample);
+			double startTime = Sampled_indexToX (thee.peek(), startSample);
 			if (iframe == 1) {
-				thyStartTime = Sampled_indexToX (thee.get(), startSample);
+				thyStartTime = Sampled_indexToX (thee.peek(), startSample);
 			}
 			//long endSample = leftSample + halfnsamp_window;
 			// New Sound with stretch
-			long thyStartSample = Sampled_xToLowIndex (thee.get(),thyStartTime);
+			long thyStartSample = Sampled_xToLowIndex (thee.peek(),thyStartTime);
 			double thyEndTime = thyStartTime + my dx * stretchFactor;
-			long thyEndSample = Sampled_xToLowIndex (thee.get(), thyEndTime);
+			long thyEndSample = Sampled_xToLowIndex (thee.peek(), thyEndTime);
 			long stretchedStepSizeSamples = thyEndSample - thyStartSample + 1;
 			//double extraTime = (thyStartSample - startSample + 1) * thy dx;
 			double extraTime = (thyStartTime - startTime);
@@ -156,16 +156,16 @@ autoSound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFact
 				double f = my y1 + (ifreq - 1) * my dy;
 				double a = sqrt (my z[ifreq][iframe]);
 				double phi = my phase[ifreq][iframe], intPart;
-				double extraPhase = 2.0 * pi * modf (extraTime * f, &intPart); // fractional part
+				double extraPhase = 2 * pi * modf (extraTime * f, &intPart); // fractional part
 				phi += extraPhase;
 				spectrum -> z[1][ifreq] = a * cos (phi);
 				spectrum -> z[2][ifreq] = a * sin (phi);
 			}
 
-			autoSound synthesis = Spectrum_to_Sound (spectrum.get());
-
-			// Where should the sound be placed?
-
+			autoSound synthesis = Spectrum_to_Sound (spectrum.peek());
+			/*
+			 * Where should the sound be placed?
+			 */
 			long thyEndSampleP = (long) floor (fmin (thyStartSample + synthesis -> nx - 1, thyStartSample + stretchedStepSizeSamples - 1)); // guard against extreme stretches
 			if (iframe == my nx) {
 				thyEndSampleP = (long) floor (fmin (thy nx, thyStartSample + synthesis -> nx - 1));   // ppgb: waarom naar beneden afgerond?
@@ -175,20 +175,19 @@ autoSound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFact
 			}
 			thyStartTime += my dx * stretchFactor;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
 
-#if 0
-static autoSound ComplexSpectrogram_to_Sound2 (ComplexSpectrogram me, double stretchFactor) {
+static Sound ComplexSpectrogram_to_Sound2 (ComplexSpectrogram me, double stretchFactor) {
 	try {
 		/* original number of samples is odd: imaginary part of last spectral value is zero -> 
 		 * phase is either zero or pi
 		 */
-		double pi = atan2 (0.0, - 0.5);
-		double samplingFrequency = 2.0 * my ymax;
+		double pi = atan2 (0, - 0.5);
+		double samplingFrequency = 2 * my ymax;
 		double lastFrequency = my y1 + (my ny - 1) * my dy;
 		int originalNumberOfSamplesProbablyOdd = (my phase [my ny][1] != 0.0 && my phase[my ny][1] != pi) || my ymax - lastFrequency > 0.25 * my dx;
 		if (my y1 != 0.0) {
@@ -208,35 +207,34 @@ static autoSound ComplexSpectrogram_to_Sound2 (ComplexSpectrogram me, double str
 				double f = my y1 + (ifreq - 1) * my dy;
 				double a = sqrt (my z[ifreq][iframe]);
 				double phi = my phase[ifreq][iframe];
-				double extraPhase = 2.0 * pi * (stretchFactor - 1.0) * my dx * f;
+				double extraPhase = 2 * pi * (stretchFactor - 1) * my dx * f;
 				phi += extraPhase;
 				spectrum -> z[1][ifreq] = a * cos (phi);
 				spectrum -> z[2][ifreq] = a * sin (phi);
 			}
-			autoSound synthesis = Spectrum_to_Sound (spectrum.get());
+			autoSound synthesis = Spectrum_to_Sound (spectrum.peek());
 			for (long j = istart; j <= iend; j++) {
 				thy z[1][j] = synthesis -> z[1][j - istart + 1];
 			}
 			istart = iend + 1; iend = istart + stepSizeSamples - 1;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
-#endif
 
-autoSpectrogram ComplexSpectrogram_to_Spectrogram (ComplexSpectrogram me) {
+Spectrogram ComplexSpectrogram_to_Spectrogram (ComplexSpectrogram me) {
 	try {
 		autoSpectrogram thee = Spectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements<double> (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrogram.");
 	}
 }
 
-autoSpectrum ComplexSpectrogram_to_Spectrum (ComplexSpectrogram me, double time) {
+Spectrum ComplexSpectrogram_to_Spectrum (ComplexSpectrogram me, double time) {
 	try {
 		long iframe = Sampled_xToLowIndex (me, time);   // ppgb: geen Sampled_xToIndex gebruiken voor integers (afrondingen altijd expliciet maken)
 		iframe = iframe < 1 ? 1 : (iframe > my nx ? my nx : iframe);
@@ -247,7 +245,7 @@ autoSpectrum ComplexSpectrogram_to_Spectrum (ComplexSpectrogram me, double time)
 			thy z[1][ifreq] = a * cos (phi);
 			thy z[2][ifreq] = a * sin (phi);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum created.");
 	}
diff --git a/dwtools/ComplexSpectrogram.h b/dwtools/ComplexSpectrogram.h
index a42d66a..e526a52 100644
--- a/dwtools/ComplexSpectrogram.h
+++ b/dwtools/ComplexSpectrogram.h
@@ -25,17 +25,19 @@
 #include "Spectrogram.h"
 
 #include "ComplexSpectrogram_def.h"
+oo_CLASS_CREATE (ComplexSpectrogram, Matrix);
 
-autoComplexSpectrogram ComplexSpectrogram_create (double tmin, double tmax, long nt, double dt,
+
+ComplexSpectrogram ComplexSpectrogram_create (double tmin, double tmax, long nt, double dt,
 	double t1, double fmin, double fmax, long nf, double df, double f1);
 
-autoComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLength, double timeStep);
+ComplexSpectrogram Sound_to_ComplexSpectrogram (Sound me, double windowLength, double timeStep);
 /* Hann window because we want to reconstruct */
 
-autoSound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFactor);
+Sound ComplexSpectrogram_to_Sound (ComplexSpectrogram me, double stretchFactor);
 
-autoSpectrogram ComplexSpectrogram_to_Spectrogram (ComplexSpectrogram me);
+Spectrogram ComplexSpectrogram_to_Spectrogram (ComplexSpectrogram me);
 
-autoSpectrum ComplexSpectrogram_to_Spectrum (ComplexSpectrogram me, double time);
+Spectrum ComplexSpectrogram_to_Spectrum (ComplexSpectrogram me, double time);
 
 #endif  /* _ComplexSpectrogram_h_ */
diff --git a/dwtools/Configuration.cpp b/dwtools/Configuration.cpp
index 7a62a67..72af4a6 100644
--- a/dwtools/Configuration.cpp
+++ b/dwtools/Configuration.cpp
@@ -1,6 +1,6 @@
 /* Configuration.cpp
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
  djmw 20030801 Configuration_drawConcentrationEllipses extra argument
  djmw 20040303 Moved containsPrintableCharacter to NUM2.c
  djmw 20041026 Removed non-used code.
- djmw 20050314 Configuration_draw crashed when rowlabel==nullptr
+ djmw 20050314 Configuration_draw crashed when rowlabel==NULL
  djmw 20061021 printf expects %ld for 'long int'
  djmw 20061212 Changed info to Melder_writeLine<x> format.
  djmw 20071009 wchar
@@ -63,24 +63,25 @@
 Thing_implement (Configuration, TableOfReal, 0);
 
 void structConfiguration :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of points: ", numberOfRows);
 	MelderInfo_writeLine (U"Number of dimensions: ", numberOfColumns);
 	MelderInfo_writeLine (U"Metric: ", metric);
 }
 
-autoConfiguration Configuration_create (long numberOfPoints, long numberOfDimensions) {
+Configuration Configuration_create (long numberOfPoints,
+                                    long numberOfDimensions) {
 	try {
 		autoConfiguration me = Thing_new (Configuration);
-		TableOfReal_init (me.get(), numberOfPoints, numberOfDimensions);
+		TableOfReal_init (me.peek(), numberOfPoints, numberOfDimensions);
 		my w = NUMvector<double> (1, numberOfDimensions);
-		TableOfReal_setSequentialRowLabels (me.get(), 0, 0, nullptr, 1, 1);
-		TableOfReal_setSequentialColumnLabels (me.get(), 0, 0, U"dimension ", 1, 1);
+		TableOfReal_setSequentialRowLabels (me.peek(), 0, 0, NULL, 1, 1);
+		TableOfReal_setSequentialColumnLabels (me.peek(), 0, 0, U"dimension ", 1, 1);
 
 		my metric = 2;
-		Configuration_setDefaultWeights (me.get());
-		Configuration_randomize (me.get());
-		return me;
+		Configuration_setDefaultWeights (me.peek());
+		Configuration_randomize (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Configuration not created.");
 	}
@@ -102,29 +103,30 @@ void Configuration_setSqWeights (Configuration me, const double weight[]) {
 	}
 }
 
-void Configuration_normalize (Configuration me, double sumsq, bool columns) {
+void Configuration_normalize (Configuration me, double sumsq, int columns) {
 	TableOfReal_centreColumns (me);
 	if (columns) {
-		sumsq = sumsq <= 0.0 ? 1.0 : sqrt (sumsq);
+		sumsq = sumsq <= 0 ? 1.0 : sqrt (sumsq);
 		NUMnormalizeColumns (my data, my numberOfRows, my numberOfColumns, sumsq);
 	} else {
-		if (sumsq <= 0.0) {
+		if (sumsq <= 0) {
 			sumsq = my numberOfRows;
 		}
-		NUMnormalize (my data, my numberOfRows, my numberOfColumns, sqrt (sumsq));
+		NUMnormalize (my data, my numberOfRows, my numberOfColumns,
+		              sqrt (sumsq));
 	}
 }
 
 void Configuration_randomize (Configuration me) {
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			my data[i][j] = NUMrandomUniform (-1.0, 1.0);
+			my data[i][j] = NUMrandomUniform (-1, 1);
 		}
 	}
 }
 
 void Configuration_rotate (Configuration me, long dimension1, long dimension2, double angle_degrees) {
-	double f = NUMpi * (2.0 - angle_degrees / 180.0);
+	double f = NUMpi * (2 - angle_degrees / 180);
 	double cosa = cos (f), sina = sin (f);
 
 	if (dimension1 == dimension2 || angle_degrees == 0) {
@@ -156,10 +158,10 @@ void Configuration_invertDimension (Configuration me, int dimension) {
 
 
 static double NUMsquaredVariance (double **a, long nr, long nc, int rawPowers) {
-	double v4 = 0.0;
+	double v4 = 0;
 
 	for (long j = 1; j <= nc; j++) {
-		double sum4 = 0.0, mean = 0.0;
+		double sum4 = 0, mean = 0;
 		for (long i = 1; i <= nr; i++) {
 			double sq = a[i][j] * a[i][j];
 			sum4 += sq * sq;
@@ -179,7 +181,8 @@ static double NUMsquaredVariance (double **a, long nr, long nc, int rawPowers) {
 		planar rotations: a remedy against nonoptimal varimax rotations",
 		Psychometrika 60, 437-446.
 */
-static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normalizeRows, int quartimax, long maximumNumberOfIterations, double tolerance) {
+static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normalizeRows, int quartimax,
+                        long maximumNumberOfIterations, double tolerance) {
 	Melder_assert (nr > 0 && nc > 0);
 
 	NUMmatrix_copyElements (xm, ym, 1, nr, 1, nc);
@@ -204,7 +207,7 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 			for (long j = 1; j <= nc; j++) {
 				norm[i] += ym[i][j] * ym[i][j];
 			}
-			if (norm[i] <= 0.0) {
+			if (norm[i] <= 0) {
 				continue;
 			}
 			norm[i] = sqrt (norm[i]);
@@ -217,7 +220,7 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 	// Initial squared "variance".
 
 	double varianceSq = NUMsquaredVariance (ym, nr, nc, quartimax);
-	if (varianceSq == 0.0) {
+	if (varianceSq == 0) {
 		return;
 	}
 
@@ -228,17 +231,17 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 	do {
 		for (long c1 = 1; c1 <= nc; c1++) {
 			for (long c2 = c1 + 1; c2 <= nc; c2++) {
-				double um = 0.0, vm = 0.0;
+				double um = 0, vm = 0;
 				for (long i = 1; i <= nr; i++) {
 					double x = ym[i][c1], y = ym[i][c2];
 					u[i] = x * x - y * y;
 					um += u[i];
-					v[i] = 2.0 * x * y;
+					v[i] = 2 * x * y;
 					vm += v[i];
 				}
 				um /= nr; vm /= nr;
 				if (quartimax || nr == 1) {
-					um = vm = 0.0;
+					um = vm = 0;
 				}
 
 				/*
@@ -248,15 +251,15 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 					Tricks: multiplication with n drops out!
 						a's multiplication by 2 outside the loop.
 				*/
-				double a = 0.0, b = 0.0;
+				double a = 0, b = 0;
 				for (long i = 1; i <= nr; i++) {
 					double ui = u[i] - um, vi = v[i] - vm;
 					a += ui * vi;
 					b += ui * ui - vi * vi;
 				}
-				double c = sqrt (4.0 * a * a + b * b);
-				double w = sqrt ( (c + b) / (2.0 * c));
-				if (a > 0.0) {
+				double c = sqrt (4 * a * a + b * b);
+				double w = sqrt ( (c + b) / (2 * c));
+				if (a > 0) {
 					w = -w;
 				}
 				double cost = sqrt (0.5 + 0.5 * w);
@@ -268,7 +271,7 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 
 				// Prevent permutations: when w < 0, i.e., a > 0, swap columns of T:/
 
-				if (w < 0.0) {
+				if (w < 0) {
 					t11 = sint; t12 = t21 = cost; t22 = -sint;
 				}
 
@@ -298,22 +301,23 @@ static void NUMvarimax (double **xm, double **ym, long nr, long nc, int normaliz
 	}
 }
 
-autoConfiguration Configuration_varimax (Configuration me, int normalizeRows,
+Configuration Configuration_varimax (Configuration me, int normalizeRows,
                                      int quartimax, long maximumNumberOfIterations, double tolerance) {
 	try {
 		autoConfiguration thee = Data_copy (me);
-		NUMvarimax (my data, thy data, my numberOfRows, my numberOfColumns, normalizeRows, quartimax, maximumNumberOfIterations, tolerance);
-		return thee;
+		NUMvarimax (my data, thy data, my numberOfRows, my numberOfColumns, normalizeRows, quartimax,
+		            maximumNumberOfIterations, tolerance);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": varimax rotation not performed.");
 	}
 }
 
-autoConfiguration Configuration_congruenceRotation (Configuration me, Configuration thee, long maximumNumberOfIterations, double tolerance) {
+Configuration Configuration_congruenceRotation (Configuration me, Configuration thee, long maximumNumberOfIterations, double tolerance) {
 	try {
 		autoAffineTransform at = Configurations_to_AffineTransform_congruence (me, thee, maximumNumberOfIterations, tolerance);
-		autoConfiguration him = Configuration_and_AffineTransform_to_Configuration (me, at.get());
-		return him;
+		autoConfiguration him = Configuration_and_AffineTransform_to_Configuration (me, at.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": congruence rotation not performed.");
 	}
@@ -333,12 +337,12 @@ void Configuration_rotateToPrincipalDirections (Configuration me) {
 	}
 }
 
-void Configuration_draw (Configuration me, Graphics g, int xCoordinate, int yCoordinate, double xmin, double xmax, double ymin, double ymax,
-	int labelSize, bool useRowLabels, const char32 *label, bool garnish)
-{
+void Configuration_draw (Configuration me, Graphics g, int xCoordinate, int yCoordinate, double xmin, double xmax,
+                         double ymin, double ymax, int labelSize, int useRowLabels, const char32 *label, int garnish) {
 	long nPoints = my numberOfRows, numberOfDimensions = my numberOfColumns;
 
-	if (numberOfDimensions > 1 && (xCoordinate > numberOfDimensions || yCoordinate > numberOfDimensions)) {
+	if (numberOfDimensions > 1 && (xCoordinate > numberOfDimensions ||
+	                               yCoordinate > numberOfDimensions)) {
 		return;
 	}
 	if (numberOfDimensions == 1) {
@@ -351,35 +355,35 @@ void Configuration_draw (Configuration me, Graphics g, int xCoordinate, int yCoo
 	autoNUMvector<double> x (1, nPoints);
 	autoNUMvector<double> y (1, nPoints);
 
-	for (long i = 1; i <= nPoints; i ++) {
-		x[i] = my data [i] [xCoordinate] * my w [xCoordinate];
-		y[i] = ( numberOfDimensions > 1 ? my data [i] [yCoordinate] * my w [yCoordinate] : 0.0 );
+	for (long i = 1; i <= nPoints; i++) {
+		x[i] = my data[i][xCoordinate] * my w[xCoordinate];
+		y[i] = numberOfDimensions > 1 ? my data[i][yCoordinate] * my w[yCoordinate] : 0;
 	}
 	if (xmax <= xmin) {
 		NUMvector_extrema (x.peek(), 1, nPoints, &xmin, &xmax);
 	}
 	if (xmax <= xmin) {
-		xmax += 1.0;
-		xmin -= 1.0;
+		xmax += 1;
+		xmin -= 1;
 	}
 	if (ymax <= ymin) {
 		NUMvector_extrema (y.peek(), 1, nPoints, &ymin, &ymax);
 	}
 	if (ymax <= ymin) {
-		ymax += 1.0;
-		ymin -= 1.0;
+		ymax += 1;
+		ymin -= 1;
 	}
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_setInner (g);
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 	Graphics_setFontSize (g, labelSize);
-	for (long i = 1; i <= my numberOfRows; i ++) {
-		if (x [i] >= xmin && x [i] <= xmax && y [i] >= ymin && y [i] <= ymax) {
-			const char32 *plotLabel = ( useRowLabels ? my rowLabels [i] : label );
+	for (long i = 1; i <= my numberOfRows; i++) {
+		if (x[i] >= xmin && x[i] <= xmax && y[i] >= ymin && y[i] <= ymax) {
+			const char32 *plotLabel = useRowLabels ? my rowLabels[i] : label;
 			if (NUMstring_containsPrintableCharacter (plotLabel)) {
-				Graphics_text (g, x [i], y [i], plotLabel);
+				Graphics_text (g, x[i], y[i], plotLabel);
 			} else {
-				noLabel ++;
+				noLabel++;
 			}
 		}
 	}
@@ -388,49 +392,52 @@ void Configuration_draw (Configuration me, Graphics g, int xCoordinate, int yCoo
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		if (numberOfDimensions > 1) {
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 			if (my columnLabels[xCoordinate]) {
-				Graphics_textBottom (g, true, my columnLabels[xCoordinate]);
+				Graphics_textBottom (g, 1, my columnLabels[xCoordinate]);
 			}
 			if (my columnLabels[yCoordinate]) {
-				Graphics_textLeft (g, true, my columnLabels[yCoordinate]);
+				Graphics_textLeft (g, 1, my columnLabels[yCoordinate]);
 			}
 		}
 	}
 
-	if (noLabel > 0) {
-		Melder_warning (U"Configuration_draw: ", noLabel, U" from ", my numberOfRows, U" labels are not visible because they are empty or they contain only spaces or they contain only non-printable characters");
-	}
+	if (noLabel > 0) Melder_warning (U"Configuration_draw: ", noLabel, U" from ", my numberOfRows,
+		                                 U" labels are not visible because they are empty or they contain only spaces or they contain only non-printable characters");
 }
 
-void Configuration_drawConcentrationEllipses (Configuration me, Graphics g, double scale, bool confidence, const char32 *label, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, bool garnish) {
-	autoSSCPList sscps = TableOfReal_to_SSCPList_byLabel (me);
-	SSCPList_drawConcentrationEllipses (sscps.get(), g, scale, confidence, label, d1, d2, xmin, xmax, ymin, ymax, fontSize, garnish);
+void Configuration_drawConcentrationEllipses (Configuration me, Graphics g,
+        double scale, int confidence, const char32 *label, long d1, long d2, double xmin, double xmax,
+        double ymin, double ymax, int fontSize, int garnish) {
+	autoSSCPs sscps = TableOfReal_to_SSCPs_byLabel (me);
+	SSCPs_drawConcentrationEllipses (sscps.peek(), g, scale, confidence, label,
+	                                 d1, d2, xmin, xmax, ymin, ymax, fontSize, garnish);
 }
 
-autoConfiguration TableOfReal_to_Configuration (TableOfReal me) {
+Configuration TableOfReal_to_Configuration (I) {
+	iam (TableOfReal);
 	try {
 		autoConfiguration thee = Configuration_create (my numberOfRows, my numberOfColumns);
 
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
-		return thee;
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted.");
 	}
 }
 
-autoConfiguration TableOfReal_to_Configuration_pca (TableOfReal me, long numberOfDimensions) {
+Configuration TableOfReal_to_Configuration_pca (TableOfReal me, long numberOfDimensions) {
 	try {
 		if (numberOfDimensions < 1 || numberOfDimensions > my numberOfColumns) {
 			numberOfDimensions = my numberOfColumns;
 		}
 
-		autoPCA pca = TableOfReal_to_PCA_byRows (me);
-		autoConfiguration thee = PCA_and_TableOfReal_to_Configuration (pca.get(), me, numberOfDimensions);
-		return thee;
+		autoPCA pca = TableOfReal_to_PCA (me);
+		autoConfiguration thee = PCA_and_TableOfReal_to_Configuration (pca.peek(), me, numberOfDimensions);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pca not performed.");
 	}
@@ -438,65 +445,69 @@ autoConfiguration TableOfReal_to_Configuration_pca (TableOfReal me, long numberO
 
 /********************** Examples *********************************************/
 
-autoConfiguration Configuration_createLetterRExample (int choice) {
+Configuration Configuration_createLetterRExample (int choice) {
 	double x1[33] = { 0,
-		-5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
-		-5, -4, -3, -2, -1,  0,  1, 2.25,  3,  3,
-		2.25,  1,  0, -1, -2, -3, -4,   -1,  0,  1, 2, 3 };
+	                  -5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
+	                  -5, -4, -3, -2, -1,  0,  1, 2.25,  3,  3,
+	                  2.25,  1,  0, -1, -2, -3, -4,   -1,  0,  1, 2, 3
+	                };
 	double y1[33] = { 0,
-		-6, -5, -4, -3, -2, -1, 0,   1,  2,  3,
-		4,  4,  4,  4,  4,  4, 4, 3.5,  2,  1,
-		-0.5, -1, -1, -1, -1, -1, -1, -2, -3, -4, -5, -6 };
+	                  -6, -5, -4, -3, -2, -1, 0,   1,  2,  3,
+	                  4,  4,  4,  4,  4,  4, 4, 3.5,  2,  1,
+	                  -0.5, -1, -1, -1, -1, -1, -1, -2, -3, -4, -5, -6
+	                };
 	double x2[33] = {0, 0.94756043346272423, 0.73504466902509913,
-		0.4528453515175927,    0.46311499024105723,   0.30345454816993439,
-		0.075184942115601547, -0.090010071904764719, -0.19630977381424003,
-		-0.36341509807865086,  -0.54216996409132612,  -0.68704678013309872,
-		-0.67370169194623086,  -0.69336494336440502,  -0.67809065144478664,
-		-0.61382610572366281,  -0.68656530656078996,  -0.57704879646736551,
-		-0.63417502349009069,  -0.37153350651419026,  -0.091809666009009777,
-		0.054833807442559397,  0.1445593164362155,    0.055587230806920782,
-		0.18201798315035453,   0.048445620192953162,  0.081595930742961439,
-		0.20063623749033621,   0.28546520751183313,   0.39384438699721991,
-		0.62832258520372286,   0.78548335015622228,   1.0610707888793069 };
+	                 0.4528453515175927,    0.46311499024105723,   0.30345454816993439,
+	                 0.075184942115601547, -0.090010071904764719, -0.19630977381424003,
+	                 -0.36341509807865086,  -0.54216996409132612,  -0.68704678013309872,
+	                 -0.67370169194623086,  -0.69336494336440502,  -0.67809065144478664,
+	                 -0.61382610572366281,  -0.68656530656078996,  -0.57704879646736551,
+	                 -0.63417502349009069,  -0.37153350651419026,  -0.091809666009009777,
+	                 0.054833807442559397,  0.1445593164362155,    0.055587230806920782,
+	                 0.18201798315035453,   0.048445620192953162,  0.081595930742961439,
+	                 0.20063623749033621,   0.28546520751183313,   0.39384438699721991,
+	                 0.62832258520372286,   0.78548335015622228,   1.0610707888793069
+	                };
 	double y2[33] = {0, 0.49630791172076621, 0.53320347382055022,
-		0.62384637225470441,  0.47592708487655661,  0.50364353255684202,
-		0.55311720162084443,  0.55118713773007066,  0.50007736370068601,
-		0.40432332354648709,  0.49817059660482677,  0.49803436631629411,
-		0.33213829258059019,  0.14585700576425648, -0.022110500334692869,
-		-0.1752555003289698,  -0.29448744336706828, -0.45639468287493545,
-		-0.59177815505008013, -0.74980550818568981, -0.78095916436791279,
-		-0.64447562732895125, -0.49526830813007033, -0.22443396573313243,
-		-0.066378148077667398, -0.03498490725857361,  0.16196028200653381,
-		0.30633527000982519, -0.14894460651161745, -0.30808798640907431,
-		-0.35920781945385832, -0.62766325578928184, -0.60389363590825562 };
+	                 0.62384637225470441,  0.47592708487655661,  0.50364353255684202,
+	                 0.55311720162084443,  0.55118713773007066,  0.50007736370068601,
+	                 0.40432332354648709,  0.49817059660482677,  0.49803436631629411,
+	                 0.33213829258059019,  0.14585700576425648, -0.022110500334692869,
+	                 -0.1752555003289698,  -0.29448744336706828, -0.45639468287493545,
+	                 -0.59177815505008013, -0.74980550818568981, -0.78095916436791279,
+	                 -0.64447562732895125, -0.49526830813007033, -0.22443396573313243,
+	                 -0.066378148077667398, -0.03498490725857361,  0.16196028200653381,
+	                 0.30633527000982519, -0.14894460651161745, -0.30808798640907431,
+	                 -0.35920781945385832, -0.62766325578928184, -0.60389363590825562
+	                };
 	try {
 		double *x, *y;
 		autoConfiguration me = Configuration_create (32, 2);
 
 		if (choice == 2) {
 			x = x2; y = y2;
-			Thing_setName (me.get(), U"R_fit");
+			Thing_setName (me.peek(), U"R_fit");
 		} else {
 			x = x1; y = y1;
-			Thing_setName (me.get(), U"R");
+			Thing_setName (me.peek(), U"R");
 		}
 
 		for (long i = 1; i <= 32; i++) {
 			char32 s[20];
 			Melder_sprint (s,20, i);
-			TableOfReal_setRowLabel (me.get(), i, s);
+			TableOfReal_setRowLabel (me.peek(), i, s);
 			my data [i][1] = x[i];
 			my data [i][2] = y[i];
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Letter R Configuration not created.");
 	}
 }
 
-autoConfiguration Configuration_createCarrollWishExample () {
-	double  x[10] = {0.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, -1.0,  0.0,  1.0};
-	double  y[10] = {0.0,  1.0, 1.0, 1.0,  0.0, 0.0, 0.0, -1.0, -1.0, -1.0};
+Configuration Configuration_createCarrollWishExample () {
+	double  x[10] = {0, -1, 0, 1, -1, 0, 1, -1,  0,  1};
+	double  y[10] = {0,  1, 1, 1,  0, 0, 0, -1, -1, -1};
 	char32 const *label[] = { U"", U"A", U"B", U"C", U"D", U"E", U"F", U"G", U"H", U"I"};
 	try {
 		long nObjects = 9;
@@ -504,9 +515,9 @@ autoConfiguration Configuration_createCarrollWishExample () {
 		for (long i = 1; i <= nObjects; i++) {
 			my data[i][1] = x[i];
 			my data[i][2] = y[i];
-			TableOfReal_setRowLabel (me.get(), i, label[i]);
+			TableOfReal_setRowLabel (me.peek(), i, label[i]);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Carroll Wish Configuration not created.");
 	}
@@ -514,6 +525,16 @@ autoConfiguration Configuration_createCarrollWishExample () {
 
 /************ CONFIGURATIONS **************************************/
 
-Thing_implement (ConfigurationList, TableOfRealList, 0);
+Thing_implement (Configurations, Ordered, 0);
+
+Configurations Configurations_create () {
+	try {
+		autoConfigurations me = Thing_new (Configurations);
+		Ordered_init (me.peek(), classConfiguration, 10);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Configurations not created.");
+	}
+}
 
 /* End of file Configuration.cpp */
diff --git a/dwtools/Configuration.h b/dwtools/Configuration.h
index 85dc29a..490787a 100644
--- a/dwtools/Configuration.h
+++ b/dwtools/Configuration.h
@@ -2,7 +2,7 @@
 #define _Configuration_h_
 /* Configuration.h
  *
- * Copyright (C) 1992-2011,2015 David Weenink
+ * Copyright (C) 1992-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,11 +24,9 @@
 #include "Collection.h"
 
 #include "Configuration_def.h"
+oo_CLASS_CREATE (Configuration, TableOfReal);
 
-
-#pragma mark - class Configuration
-
-autoConfiguration Configuration_create (long numberOfPoints, long numberOfDimensions);
+Configuration Configuration_create (long numberOfPoints, long numberOfDimensions);
 
 void Configuration_setMetric (Configuration me, long metric);
 
@@ -43,7 +41,7 @@ void Configuration_randomize (Configuration me);
 	new x[i][j] = randomUniform (-1,1)
 */
 
-void Configuration_normalize (Configuration me, double variance, bool choice);
+void Configuration_normalize (Configuration me, double variance, int choice);
 /*
 	1. centre columns
 	2.
@@ -66,7 +64,7 @@ void Configuration_invertDimension (Configuration me, int dimension);
 			my data[i][dimension] = - my data[i][dimension];
 */
 
-autoConfiguration Configuration_congruenceRotation (Configuration me, Configuration thee,
+Configuration Configuration_congruenceRotation (Configuration me, Configuration thee,
 	long maximumNumberOfIterations, double tolerance);
 /*
 	Rotate thee for maximum congruence. Algorithm:
@@ -74,7 +72,8 @@ autoConfiguration Configuration_congruenceRotation (Configuration me, Configurat
 		orthogonal congruence rotation", Psychometrika 61, 375-389.
 */
 
-autoConfiguration Configuration_varimax (Configuration me, int normalizeRows, int quartimax, long maximumNumberOfIterations, double tolerance);
+Configuration Configuration_varimax (Configuration me, int normalizeRows,
+	int quartimax, long maximumNumberOfIterations, double tolerance);
 /*
 	Perform varimax rotation. Algorithm with extra security from:
 	Jos Ten Berge (1995), "Suppressing permutations or rigid planar rotations:
@@ -85,15 +84,16 @@ void Configuration_rotateToPrincipalDirections (Configuration me);
 
 void Configuration_draw (Configuration me, Graphics g, int xCoordinate,
 	int yCoordinate, double xmin, double xmax, double ymin, double ymax,
-	int labelSize, bool useRowLabels, const char32 *label, bool garnish);
+	int labelSize, int useRowLabels, const char32 *label, int garnish);
 
 void Configuration_drawConcentrationEllipses (Configuration me, Graphics g,
-	double scale, bool confidence, const char32 *label, long d1, long d2, double xmin, double xmax,
-	double ymin, double ymax, int fontSize, bool garnish);
+	double scale, int confidence, const char32 *label, long d1, long d2, double xmin, double xmax,
+	double ymin, double ymax, int fontSize, int garnish);
 
-autoConfiguration TableOfReal_to_Configuration (TableOfReal me);
+Configuration TableOfReal_to_Configuration (I);
 
-autoConfiguration TableOfReal_to_Configuration_pca (TableOfReal me, long numberOfDimensions);
+Configuration TableOfReal_to_Configuration_pca (TableOfReal me,
+	long numberOfDimensions);
 /*
 	Precondition:
 		numberOfDimensions > 0
@@ -103,20 +103,21 @@ autoConfiguration TableOfReal_to_Configuration_pca (TableOfReal me, long numberO
 		(Configuration) numberOfColumns = MIN (my numberOfColumns, numberOfDimensions)
 */
 
-autoConfiguration Configuration_createLetterRExample (int choice);
+Configuration Configuration_createLetterRExample (int choice);
 /*
   	Create a two-dimensional configuartion from the letter R.
   	choice = 1 : undistorted;
   	choice = 2 : result of monotone fit on distorted (d^2 + 5 +32.5*z)
 */
 
-autoConfiguration Configuration_createCarrollWishExample ();
+Configuration Configuration_createCarrollWishExample ();
 
 
-#pragma mark - class ConfigurationList
+/************************** class Configurations **************************************/
 
-Collection_define (ConfigurationList, OrderedOf, Configuration) {
+Thing_define (Configurations, Ordered) {
 };
 
-/* End of file Configuration.h */
-#endif
+Configurations Configurations_create ();
+
+#endif /* _Configuration_h_ */
diff --git a/dwtools/Configuration_AffineTransform.cpp b/dwtools/Configuration_AffineTransform.cpp
index a6c7713..bc38e7c 100644
--- a/dwtools/Configuration_AffineTransform.cpp
+++ b/dwtools/Configuration_AffineTransform.cpp
@@ -1,6 +1,6 @@
 /* Configuration_AffineTransform.cpp
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,11 +33,11 @@ static void do_steps45 (double **w, double **t, double **c, long n, double *f) {
 	// Step 4 || 10: If W'T has negative diagonal elements, multiply corresponding columns in T by -1.
 
 	for (long i = 1; i <= n; i++) {
-		double d = 0.0;
+		double d = 0;
 		for (long k = 1; k <= n; k++) {
 			d += w[k][i] * t[k][i];
 		}
-		if (d < 0.0) {
+		if (d < 0) {
 			for (long k = 1; k <= n; k++) {
 				t[k][i] = -t[k][i];
 			}
@@ -46,22 +46,23 @@ static void do_steps45 (double **w, double **t, double **c, long n, double *f) {
 
 	// Step 5 & 11: f = tr W'T (Diag (T'CT))^-1/2
 
-	*f = 0.0;
+	*f = 0;
 	for (long i = 1; i <= n; i++) {
-		double d = 0.0, tct = 0.0;
+		double d = 0, tct = 0;
 		for (long k = 1; k <= n; k++) {
 			d += w[k][i] * t[k][i];
 			for (long j = 1; j <= n; j++) {
 				tct += t[k][i] * c[k][j] * t[j][i];
 			}
 		}
-		if (tct > 0.0) {
+		if (tct > 0) {
 			*f += d / sqrt (tct);
 		}
 	}
 }
 
-static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, double **t, long maximumNumberOfIterations, double tolerance) {
+static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc,
+                                   double **t, long maximumNumberOfIterations, double tolerance) {
 	long numberOfIterations = 0;
 	Melder_assert (nr > 0 && nc > 0);
 	Melder_assert (t);
@@ -88,19 +89,19 @@ static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, dou
 		}
 	}
 
-	if (checkc == 0.0 || checkw == 0.0) {
+	if (checkc == 0 || checkw == 0) {
 		Melder_throw (U"NUMmaximizeCongruence: we cannot rotate a zero matrix.");
 	}
 
 	// Scale W by (diag(B'B))^-1/2
 
 	for (long j = 1; j <= nc; j++) {
-		double scale = 0.0;
+		double scale = 0;
 		for (long k = 1; k <= nr; k++) {
 			scale += b[k][j] * b[k][j];
 		}
-		if (scale > 0.0) {
-			scale = 1.0 / sqrt (scale);
+		if (scale > 0) {
+			scale = 1 / sqrt (scale);
 		}
 		for (long i = 1; i <= nc; i++) {
 			w[i][j] *= scale;
@@ -109,7 +110,7 @@ static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, dou
 
 	// Step 3: largest eigenvalue of C
 
-	evec[1] = 1.0;
+	evec[1] = 1;
 	double rho, f, f_old;
 	NUMdominantEigenvector (c.peek(), nc, evec.peek(), &rho, 1.0e-6);
 
@@ -118,7 +119,7 @@ static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, dou
 		for (long j = 1; j <= nc; j++) {
 			// Step 7.a
 
-			double p = 0.0;
+			double p = 0;
 			for (long k = 1; k <= nc; k++) {
 				for (long i = 1; i <= nc; i++) {
 					p += t[k][j] * c[k][i] * t[i][j];
@@ -127,41 +128,41 @@ static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, dou
 
 			// Step 7.b
 
-			double q = 0.0;
+			double q = 0;
 			for (long k = 1; k <= nc; k++) {
 				q += w[k][j] * t[k][j];
 			}
 
 			// Step 7.c
 
-			if (q == 0.0) {
+			if (q == 0) {
 				for (long i = 1; i <= nc; i++) {
-					u[i][j] = 0.0;
+					u[i][j] = 0;
 				}
 			} else {
-				double ww = 0.0;
+				double ww = 0;
 				for (long k = 1; k <= nc; k++) {
 					ww += w[k][j] * w[k][j];
 				}
 				for (long i = 1; i <= nc; i++) {
-					double ct = 0.0;
+					double ct = 0;
 					for (long k = 1; k <= nc; k++) {
 						ct += c[i][k] * t[k][j];
 					}
-					u[i][j] = (q * (ct - rho * t[i][j]) / p - 2.0 * ww * t[i][j] / q - w[i][j]) / sqrt (p);
+					u[i][j] = (q * (ct - rho * t[i][j]) / p - 2 * ww * t[i][j] / q - w[i][j]) / sqrt (p);
 				}
 			}
 		}
 
 		// Step 8
 
-		SVD_svd_d (svd.get(), u.peek());
+		SVD_svd_d (svd.peek(), u.peek());
 
 		// Step 9
 
 		for (long i = 1; i <= nc; i++) {
 			for (long j = 1; j <= nc; j++) {
-				t[i][j] = 0.0;
+				t[i][j] = 0;
 				for (long  k = 1; k <= nc; k++) {
 					t[i][j] -= svd -> u[i][k] * svd -> v[j][k];
 				}
@@ -178,32 +179,36 @@ static void NUMmaximizeCongruence (double **b, double **a, long nr, long nc, dou
 	} while (fabs (f_old - f) / f_old > tolerance && numberOfIterations < maximumNumberOfIterations);
 }
 
-autoAffineTransform Configurations_to_AffineTransform_congruence (Configuration me, Configuration thee, long maximumNumberOfIterations, double tolerance) {
+AffineTransform Configurations_to_AffineTransform_congruence (Configuration me,
+        Configuration thee, long maximumNumberOfIterations, double tolerance) {
 	try {
 		// Use Procrustes transform to obtain starting configuration.
 		// (We only need the transformation matrix T.)
 		autoProcrustes p = Configurations_to_Procrustes (me, thee, 0);
-		NUMmaximizeCongruence (my data, thy data, my numberOfRows, p -> n, p -> r, maximumNumberOfIterations, tolerance);
+		NUMmaximizeCongruence (my data, thy data, my numberOfRows,
+		                       p -> n, p -> r, maximumNumberOfIterations, tolerance);
 
 		autoAffineTransform at = AffineTransform_create (p -> n);
 		NUMmatrix_copyElements (p -> r, at -> r, 1, p -> n, 1, p -> n);
-		return at;
+		return at.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no congruence transformation created.");
 	}
 }
 
-autoConfiguration Configuration_and_AffineTransform_to_Configuration (Configuration me, AffineTransform thee) {
+Configuration Configuration_and_AffineTransform_to_Configuration (Configuration me, thou) {
 	try {
+		thouart (AffineTransform);
+
 		if (my numberOfColumns != thy n) {
 			Melder_throw (U"Dimensions do not agree.");
 		}
-		autoConfiguration him = Data_copy (me);
+		autoConfiguration him = (Configuration) Data_copy (me);
 
 		// Apply transformation YT
 
 		thy v_transform (my data, my numberOfRows, his data);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Configuration not created.");
 	}
diff --git a/dwtools/Configuration_AffineTransform.h b/dwtools/Configuration_AffineTransform.h
index 7cb4741..a6e74c1 100644
--- a/dwtools/Configuration_AffineTransform.h
+++ b/dwtools/Configuration_AffineTransform.h
@@ -2,7 +2,7 @@
 #define _Configuration_AffineTransform_h_
 /* Configuration_AffineTransform.c
  * 
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,8 +27,10 @@
 #include "Configuration.h"
 #include "AffineTransform.h"
 
-autoAffineTransform Configurations_to_AffineTransform_congruence (Configuration me,	Configuration thee, long maximumNumberOfIterations, double tolerance);
+AffineTransform Configurations_to_AffineTransform_congruence (Configuration me,
+	Configuration thee, long maximumNumberOfIterations, double tolerance);
 
-autoConfiguration Configuration_and_AffineTransform_to_Configuration (Configuration me, AffineTransform thee);
+Configuration Configuration_and_AffineTransform_to_Configuration 
+	(Configuration me, thou);
 
 #endif /* _Configuration_AffineTransform_h_ */
diff --git a/dwtools/Configuration_and_Procrustes.cpp b/dwtools/Configuration_and_Procrustes.cpp
index af82cad..161f503 100644
--- a/dwtools/Configuration_and_Procrustes.cpp
+++ b/dwtools/Configuration_and_Procrustes.cpp
@@ -1,6 +1,6 @@
 /* Configuration_and_Procrustes.c
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 #include "Configuration_and_Procrustes.h"
 #include "NUM2.h"
 
-autoProcrustes Configurations_to_Procrustes (Configuration me, Configuration thee, int orthogonal) {
+Procrustes Configurations_to_Procrustes (Configuration me, Configuration thee, int orthogonal) {
 	try {
 		if (my numberOfRows != thy numberOfRows || my numberOfColumns != thy numberOfColumns) {
 			Melder_throw (U"Configurations must have the same number of points and the same dimension.");
@@ -39,7 +39,7 @@ autoProcrustes Configurations_to_Procrustes (Configuration me, Configuration the
 			scale = & (p -> s);
 		}
 		NUMProcrustes (my data, thy data, my numberOfRows, my numberOfColumns, p -> r, translation, scale);
-		return p;
+		return p.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Procrustes from two Configurations not created.");
 	}
diff --git a/dwtools/Configuration_and_Procrustes.h b/dwtools/Configuration_and_Procrustes.h
index 98d9665..5cb6a0b 100644
--- a/dwtools/Configuration_and_Procrustes.h
+++ b/dwtools/Configuration_and_Procrustes.h
@@ -2,7 +2,7 @@
 #define _Configuration_and_Procrustes_h_
 /* Configuration_and_Procrustes.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,6 +31,6 @@
 	#include "Procrustes.h"
 #endif
 
-autoProcrustes Configurations_to_Procrustes (Configuration me, Configuration thee, int orthogonal);
+Procrustes Configurations_to_Procrustes (Configuration me, Configuration thee, int orthogonal);
 
 #endif /* _Configuration_and_Procrustes_h_ */
diff --git a/dwtools/Confusion.cpp b/dwtools/Confusion.cpp
index 82d0aff..0f70085 100644
--- a/dwtools/Confusion.cpp
+++ b/dwtools/Confusion.cpp
@@ -1,6 +1,6 @@
 /* Confusion.cpp
  *
- * Copyright (C) 1993-2011, 2014, 2015 David Weenink
+ * Copyright (C) 1993-2011, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -41,7 +41,8 @@ void structConfusion :: v_info () {
 	double h, hx, hy, hygx, hxgy, uygx, uxgy, uxy, frac;
 	long nCorrect;
 
-	Confusion_getEntropies (this, & h, & hx, & hy, & hygx, & hxgy, & uygx, & uxgy, & uxy);
+	Confusion_getEntropies (this, & h, & hx, & hy, & hygx, & hxgy, & uygx,
+	                        & uxgy, & uxy);
 	Confusion_getFractionCorrect (this, & frac, & nCorrect);
 	MelderInfo_writeLine (U"Number of rows: ", numberOfRows);
 	MelderInfo_writeLine (U"Number of colums: ", numberOfColumns);
@@ -58,7 +59,7 @@ void structConfusion :: v_info () {
 	MelderInfo_writeLine (U" Fraction correct: ", frac);
 }
 
-autoConfusion Confusion_createFromStringses (Strings me, Strings thee) {
+Confusion Confusion_createFromStringses (Strings me, Strings thee) {
 	try {
 		if (my numberOfStrings < 1 || thy numberOfStrings < 1) {
 			Melder_throw (U"Empty Strings.");
@@ -66,29 +67,29 @@ autoConfusion Confusion_createFromStringses (Strings me, Strings thee) {
 		autoConfusion him = Confusion_create (my numberOfStrings, thy numberOfStrings);
 		for (long irow = 1; irow <= my numberOfStrings; irow++) {
 			const char32 *label = my strings[irow];
-			TableOfReal_setRowLabel (him.get(), irow, label);
+			TableOfReal_setRowLabel (him.peek(), irow, label);
 		}
 		for (long icol = 1; icol <= thy numberOfStrings; icol++) {
 			const char32 *label = thy strings[icol];
-			TableOfReal_setColumnLabel (him.get(), icol, label);
+			TableOfReal_setColumnLabel (him.peek(), icol, label);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": could not create Confusion with ", thee);
 	}
 }
 
-autoConfusion Confusion_create (long numberOfStimuli, long numberOfResponses) {
+Confusion Confusion_create (long numberOfStimuli, long numberOfResponses) {
 	try {
 		autoConfusion me = Thing_new (Confusion);
-		TableOfReal_init (me.get(), numberOfStimuli, numberOfResponses);
-		return me;
+		TableOfReal_init (me.peek(), numberOfStimuli, numberOfResponses);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Confusion not created.");
 	}
 }
 
-autoConfusion Confusion_createSimple (const char32 *labels) {
+Confusion Confusion_createSimple (const char32 *labels) {
 	try {
 		long numberOfLabels = Melder_countTokens (labels);
 		if (numberOfLabels < 1) {
@@ -102,39 +103,39 @@ autoConfusion Confusion_createSimple (const char32 *labels) {
 					Melder_throw (U"Label ", i, U"and ", ilabel, U"may not be equal.");
 				}
 			}
-			TableOfReal_setRowLabel (me.get(), ilabel, token);
-			TableOfReal_setColumnLabel (me.get(), ilabel, token);
+			TableOfReal_setRowLabel (me.peek(), ilabel, token);
+			TableOfReal_setColumnLabel (me.peek(), ilabel, token);
 			ilabel++;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Simple Confusion not created.");
 	}
 }
 
-autoConfusion Categories_to_Confusion (Categories me, Categories thee) {
+Confusion Categories_to_Confusion (Categories me, Categories thee) {
 	try {
 		if (my size != thy size) {
 			Melder_throw (U"Categories_to_Confusion: dimensions do not agree.");
 		}
 
-		autoCategories ul1 = Categories_selectUniqueItems (me);
-		autoCategories ul2 = Categories_selectUniqueItems (thee);
-		autoConfusion him = Confusion_create (ul1->size, ul2->size);
+		autoCategories ul1 = Categories_selectUniqueItems (me, 1);
+		autoCategories ul2 = Categories_selectUniqueItems (thee, 1);
+		autoConfusion him = Confusion_create (ul1 -> size, ul2 -> size);
 
-		for (long i = 1; i <= ul1->size; i ++) {
-			SimpleString s = ul1->at [i];
-			TableOfReal_setRowLabel (him.get(), i, s -> string);
+		for (long i = 1; i <= ul1 -> size; i++) {
+			SimpleString s = (SimpleString) ul1 -> item[i];
+			TableOfReal_setRowLabel (him.peek(), i, s -> string);
 		}
-		for (long i = 1; i <= ul2->size; i ++) {
-			SimpleString s = ul2->at [i];
-			TableOfReal_setColumnLabel (him.get(), i, s -> string);
+		for (long i = 1; i <= ul2 -> size; i++) {
+			SimpleString s = (SimpleString) ul2 -> item[i];
+			TableOfReal_setColumnLabel (him.peek(), i, s -> string);
 		}
-		for (long i = 1; i <= my size; i ++) {
-			SimpleString myi = my at [i], thyi = thy at [i];
-			Confusion_increase (him.get(), SimpleString_c (myi), SimpleString_c (thyi));
+		for (long i = 1; i <= my size; i++) {
+			SimpleString myi = (SimpleString) my item[i], thyi = (SimpleString) thy item[i];
+			Confusion_increase (him.peek(), SimpleString_c (myi), SimpleString_c (thyi));
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Confusion created.");
 	}
@@ -142,8 +143,9 @@ autoConfusion Categories_to_Confusion (Categories me, Categories thee) {
 
 #define TINY 1.0e-30
 
-void Confusion_getEntropies (Confusion me, double *p_h, double *p_hx, double *p_hy, double *p_hygx, double *p_hxgy, double *p_uygx, double *p_uxgy, double *p_uxy) {
-	double h = 0.0, hx = 0.0, hy = 0.0, hxgy = 0.0, hygx = 0.0, uygx = 0.0, uxgy = 0.0, uxy = 0.0;
+void Confusion_getEntropies (Confusion me, double *h, double *hx, double *hy,
+                             double *hygx, double *hxgy, double *uygx, double *uxgy, double *uxy) {
+	*h = *hx = *hy = *hxgy = *hygx = *uygx = *uxgy = *uxy = 0;
 
 	autoNUMvector<double> rowSum (1, my numberOfRows);
 	autoNUMvector<double> colSum (1, my numberOfColumns);
@@ -157,52 +159,28 @@ void Confusion_getEntropies (Confusion me, double *p_h, double *p_hx, double *p_
 		}
 	}
 	for (long i = 1; i <= my numberOfRows; i++) {
-		if (rowSum[i] > 0.0) {
-			hy -= rowSum[i] / sum * NUMlog2 (rowSum[i] / sum);
+		if (rowSum[i] > 0) {
+			*hy -= rowSum[i] / sum * NUMlog2 (rowSum[i] / sum);
 		}
 	}
 	for (long j = 1; j <= my numberOfColumns; j++) {
-		if (colSum[j] > 0.0) {
-			hx -= colSum[j] / sum * NUMlog2 (colSum[j] / sum);
+		if (colSum[j] > 0) {
+			*hx -= colSum[j] / sum * NUMlog2 (colSum[j] / sum);
 		}
 	}
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (my data[i][j] > 0.0) {
-				h -= my data[i][j] / sum * NUMlog2 (my data[i][j] / sum);
+			if (my data[i][j] > 0) {
+				*h -= my data[i][j] / sum * NUMlog2 (my data[i][j] / sum);
 			}
 		}
 	}
 
-	hygx = h - hx;
-	hxgy = h - hy;
-	uygx = (hy - hygx) / (hy + TINY);
-	uxgy = (hx - hxgy) / (hx + TINY);
-	uxy = 2.0 * (hx + hy - h) / (hx + hy + TINY);
-	if (p_h) {
-		*p_h  = h;
-	}
-	if (p_hx) {
-		*p_hx  = hx;
-	}
-	if (p_hy) {
-		*p_hy  = hy;
-	}
-	if (p_hygx) {
-		*p_hygx  = hygx;
-	}
-	if (p_hxgy) {
-		*p_hxgy  = hxgy;
-	}
-	if (p_uygx) {
-		*p_uygx  = uygx;
-	}
-	if (p_uxgy) {
-		*p_uxgy  = uxgy;
-	}
-	if (p_uxy) {
-		*p_uxy  = uxy;
-	}
+	*hygx = *h - *hx;
+	*hxgy = *h - *hy;
+	*uygx = (*hy - *hygx) / (*hy + TINY);
+	*uxgy = (*hx - *hxgy) / (*hx + TINY);
+	*uxy = 2.0 * (*hx + *hy - *h) / (*hx + *hy + TINY);
 }
 
 void Confusion_increase (Confusion me, const char32 *stim, const char32 *resp) {
@@ -216,7 +194,7 @@ void Confusion_increase (Confusion me, const char32 *stim, const char32 *resp) {
 			Melder_throw (U"Response not valid.");
 		}
 
-		my data[stimIndex][respIndex] += 1.0;
+		my data[stimIndex][respIndex] += 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": not increased.");
 	}
@@ -238,10 +216,10 @@ void Confusion_getFractionCorrect (Confusion me, double *fraction, long *numberO
 	*fraction = NUMundefined;
 	*numberOfCorrect = -1;
 
-	double c = 0.0, ct = 0.0;
+	double c = 0, ct = 0;
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (! my rowLabels[i] || ! my columnLabels[j]) {
+			if (my rowLabels[i] == 0 || my columnLabels[j] == 0) {
 				return;
 			}
 			ct += my data[i][j];
@@ -251,7 +229,7 @@ void Confusion_getFractionCorrect (Confusion me, double *fraction, long *numberO
 		}
 	}
 
-	if (ct != 0.0) {
+	if (ct != 0) {
 		*fraction = c / ct;
 	}
 	*numberOfCorrect = (long) floor (c);
@@ -261,25 +239,27 @@ void Confusion_getFractionCorrect (Confusion me, double *fraction, long *numberO
 
 #define NPOINTS 6
 
-static autoPolygon Polygon_createPointer () {
+static Polygon Polygon_createPointer () {
 	try {
-		double x[NPOINTS + 1] = { 0.0, 0.0, 0.9, 1.0, 0.9, 0.0, 0.0 };
-		double y[NPOINTS + 1] = { 0.0, 0.0, 0.0, 0.5, 1.0, 1.0, 0.0 };
+		double x[NPOINTS + 1] = { 0, 0, 0.9, 1, 0.9, 0, 0 };
+		double y[NPOINTS + 1] = { 0, 0, 0, 0.5,   1, 1, 0 };
 		autoPolygon me = Polygon_create (NPOINTS);
 		for (long i = 1; i <= NPOINTS; i++) {
 			my x[i] = x[i]; my y[i] = y[i];
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polygon not created.");
 	}
 }
 
-static void Polygon_drawInside (Polygon me, Graphics g) {
+static void Polygon_drawInside (I, Graphics g) {
+	iam (Polygon);
 	Graphics_polyline (g, my numberOfPoints, & my x[1], & my y[1]);
 }
 
-void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, double lowerPercentage, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, double lowerPercentage,
+                            double xmin, double xmax, double ymin, double ymax, int garnish) {
 	long ib = 1, ie = my numberOfRows;
 	if (index > 0 && index <= my numberOfColumns) {
 		ib = ie = index;
@@ -304,7 +284,7 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, d
 	if (ymax <= ymin) {
 		return;
 	}
-	double rmax = fabs (xmax - xmin) / 10.0;
+	double rmax = fabs (xmax - xmin) / 10;
 	double rmin = rmax / 10;
 
 	Graphics_setInner (g);
@@ -314,12 +294,12 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, d
 		Graphics_text (g, thy z[i][1], thy z[i][2], my rowLabels[i]);
 	}
 	for (long i = ib; i <= ie; i++) {
-		double xSum = 0.0;
+		double xSum = 0;
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			xSum += my data[i][j];
 		}
 
-		if (xSum <= 0.0) {
+		if (xSum <= 0) {
 			continue;    /* no confusions */
 		}
 
@@ -331,11 +311,11 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, d
 
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			double x2 = thy z[j][1], y2 = thy z[j][2];
-			double perc =  100.0 * my data[i][j] / xSum;
+			double perc =  100 * my data[i][j] / xSum;
 			double dx = x2 - x1, dy = y2 - y1;
 			double alpha = atan2 (dy, dx);
 
-			if (perc == 0.0 || perc < lowerPercentage || j == i) {
+			if (perc == 0 || perc < lowerPercentage || j == i) {
 				continue;
 			}
 
@@ -349,15 +329,15 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, d
 			}
 			autoPolygon p = Polygon_createPointer();
 			double xs = sqrt (dx * dx + dy * dy) - 2.2 * r;
-			if (xs < 0.0) {
-				xs = 0.0;
+			if (xs < 0) {
+				xs = 0;
 			}
-			double ys = perc * rmax / 100.0;
-			Polygon_scale (p.get(), xs, ys);
-			Polygon_translate (p.get(), x1, y1 - ys / 2);
-			Polygon_rotate (p.get(), alpha, x1, y1);
-			Polygon_translate (p.get(), 1.1 * r * cos (alpha), 1.1 * r * sin (alpha));
-			Polygon_drawInside (p.get(), g);
+			double ys = perc * rmax / 100;
+			Polygon_scale (p.peek(), xs, ys);
+			Polygon_translate (p.peek(), x1, y1 - ys / 2);
+			Polygon_rotate (p.peek(), alpha, x1, y1);
+			Polygon_translate (p.peek(), 1.1 * r * cos (alpha), 1.1 * r * sin (alpha));
+			Polygon_drawInside (p.peek(), g);
 		}
 	}
 
@@ -365,39 +345,39 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g, long index, d
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		if (ymin * ymax < 0.0) {
-			Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 		}
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (xmin * xmax < 0.0) {
-			Graphics_markBottom (g, 0.0, true, true, true, nullptr);
+			Graphics_markBottom (g, 0.0, 1, 1, 1, NULL);
 		}
 	}
 }
 
-autoMatrix Confusion_difference (Confusion me, Confusion thee) {
+Matrix Confusion_difference (Confusion me, Confusion thee) {
 	try {
 		/* categories must be the same too*/
-		if (my numberOfColumns != thy numberOfColumns || my numberOfRows != thy numberOfRows) {
-			Melder_throw (U"Dimensions not equal.");
-		}
+		if (my numberOfColumns != thy numberOfColumns || my numberOfRows != thy numberOfRows) Melder_throw
+			(U"Dimensions not equal.");
 
-		autoMatrix him = Matrix_create (0.5, my numberOfColumns + 0.5, my numberOfColumns, 1.0, 1.0, 0.5, my numberOfRows + 0.5, my numberOfRows, 1.0, 1.0);
+		autoMatrix him = Matrix_create (0.5, my numberOfColumns + 0.5, my numberOfColumns,
+		                                1, 1, 0.5, my numberOfRows + 0.5, my numberOfRows, 1, 1);
 
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				his z[i][j] = my data[i][j] - thy data[i][j];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix not created from two Confusions.");
 	}
 }
 
 long Confusion_getNumberOfEntries (Confusion me) {
-	double total = 0.0;
+	double total = 0;
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			total += my data[i][j];
@@ -418,7 +398,7 @@ static void create_index (char32 **s, long sb, long se, char32 **ref, long rb, l
 	}
 }
 
-autoConfusion Confusion_condense (Confusion me, const char32 *search, const char32 *replace,
+Confusion Confusion_condense (Confusion me, const char32 *search, const char32 *replace,
 	long maximumNumberOfReplaces, int use_regexp) {
 	try {
 		long nmatches, nstringmatches;
@@ -441,10 +421,10 @@ autoConfusion Confusion_condense (Confusion me, const char32 *search, const char
 		scol -> strings = columnLabels.transfer();
 
 		/* Find dimension of new Confusion */
-		autoDistributions dcol = Strings_to_Distributions (scol.get());
+		autoDistributions dcol = Strings_to_Distributions (scol.peek());
 		long nresp = dcol -> numberOfRows;
 
-		autoDistributions drow = Strings_to_Distributions (srow.get());
+		autoDistributions drow = Strings_to_Distributions (srow.peek());
 		long nstim = drow -> numberOfRows;
 
 		autoConfusion thee = Confusion_create (nstim, nresp);
@@ -462,36 +442,36 @@ autoConfusion Confusion_condense (Confusion me, const char32 *search, const char
 				thy data [rowIndex [i]][columnIndex[j]] += my data[i][j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not condensed.");
 	}
 }
 
-autoConfusion TableOfReal_to_Confusion (TableOfReal me) {
+Confusion TableOfReal_to_Confusion (TableOfReal me) {
 	try {
 		if (! TableOfReal_checkPositive (me)) {
 			Melder_throw (U"Elements may not be less than zero.");
 		}
 		autoConfusion thee = Thing_new (Confusion);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Confusion.");
 	}
 }
 
-autoConfusion Confusion_group (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
+Confusion Confusion_group (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
 	try {
 		autoConfusion stim = Confusion_groupStimuli (me, labels, newLabel, newpos);
-		autoConfusion thee = Confusion_groupResponses (stim.get(), labels, newLabel, newpos);
-		return thee;
+		autoConfusion thee = Confusion_groupResponses (stim.peek(), labels, newLabel, newpos);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not grouped.");
 	}
 }
 
-autoConfusion Confusion_groupStimuli (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
+Confusion Confusion_groupStimuli (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
 	try {
 		long ncondense = Melder_countTokens (labels);
 		autoNUMvector<long> irow (1, my numberOfRows);
@@ -530,7 +510,7 @@ autoConfusion Confusion_groupStimuli (Confusion me, const char32 *labels, const
 		autoConfusion thee = Confusion_create (newnstim, my numberOfColumns);
 		NUMstrings_copyElements (my columnLabels, thy columnLabels, 1, my numberOfColumns);
 
-		TableOfReal_setRowLabel (thee.get(), newpos, newLabel);
+		TableOfReal_setRowLabel (thee.peek(), newpos, newLabel);
 		long inewrow = 1;
 		for (long i = 1; i <= my numberOfRows; i++) {
 			long rowpos = newpos;
@@ -540,19 +520,19 @@ autoConfusion Confusion_groupStimuli (Confusion me, const char32 *labels, const
 				}
 				rowpos = inewrow;
 				inewrow++;
-				TableOfReal_setRowLabel (thee.get(), rowpos, my rowLabels[i]);
+				TableOfReal_setRowLabel (thee.peek(), rowpos, my rowLabels[i]);
 			}
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				thy data[rowpos][j] += my data[i][j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": stimuli not grouped.");
 	}
 }
 
-autoConfusion Confusion_groupResponses (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
+Confusion Confusion_groupResponses (Confusion me, const char32 *labels, const char32 *newLabel, long newpos) {
 	try {
 		long ncondense = Melder_countTokens (labels);
 		autoNUMvector<long> icol (1, my numberOfColumns);
@@ -590,7 +570,7 @@ autoConfusion Confusion_groupResponses (Confusion me, const char32 *labels, cons
 		}
 		autoConfusion thee = Confusion_create (my numberOfRows, newnresp);
 		NUMstrings_copyElements (my rowLabels, thy rowLabels, 1, my numberOfRows);
-		TableOfReal_setColumnLabel (thee.get(), newpos, newLabel);
+		TableOfReal_setColumnLabel (thee.peek(), newpos, newLabel);
 		long inewcol = 1;
 		for (long i = 1; i <= my numberOfColumns; i++) {
 			long colpos = newpos;
@@ -600,25 +580,25 @@ autoConfusion Confusion_groupResponses (Confusion me, const char32 *labels, cons
 				}
 				colpos = inewcol;
 				inewcol++;
-				TableOfReal_setColumnLabel (thee.get(), colpos, my columnLabels[i]);
+				TableOfReal_setColumnLabel (thee.peek(), colpos, my columnLabels[i]);
 			}
 			for (long j = 1; j <= my numberOfRows; j++) {
 				thy data[j][colpos] += my data[j][i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": responses not grouped.");
 	}
 }
 
-autoTableOfReal Confusion_to_TableOfReal_marginals (Confusion me) {
+TableOfReal Confusion_to_TableOfReal_marginals (Confusion me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows + 1, my numberOfColumns + 1);
 
-		double total = 0.0;
+		double total = 0;
 		for (long i = 1; i <= my numberOfRows; i++) {
-			double rowsum = 0.0;
+			double rowsum = 0;
 			for (long j = 1; j <= my numberOfColumns; j++) {
 				thy data[i][j] = my data[i][j];
 				rowsum += my data[i][j];
@@ -639,7 +619,7 @@ autoTableOfReal Confusion_to_TableOfReal_marginals (Confusion me) {
 
 		NUMstrings_copyElements (my rowLabels, thy rowLabels, 1, my numberOfRows);
 		NUMstrings_copyElements (my columnLabels, thy columnLabels, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": table with marginals not created.");
 	}
@@ -647,10 +627,10 @@ autoTableOfReal Confusion_to_TableOfReal_marginals (Confusion me) {
 
 void Confusion_drawAsNumbers (Confusion me, Graphics g, int marginals, int iformat, int precision) {
 	TableOfReal thee = me;
-	autoTableOfReal athee;
+	autoTableOfReal athee = 0;
 	if (marginals) {
-		athee = Confusion_to_TableOfReal_marginals (me);
-		thee = athee.get();
+		athee.reset (Confusion_to_TableOfReal_marginals (me));
+		thee = athee.peek();
 	}
 	TableOfReal_drawAsNumbers (thee, g, 1, thy numberOfRows, iformat, precision);
 }
diff --git a/dwtools/Confusion.h b/dwtools/Confusion.h
index 58acc48..9d0d8d9 100644
--- a/dwtools/Confusion.h
+++ b/dwtools/Confusion.h
@@ -2,7 +2,7 @@
 #define _Confusion_h_
 /* Confusion.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,13 +33,13 @@ Thing_define (Confusion, TableOfReal) {
 	A Confusion matrix has both row and column labels.
 */
 
-autoConfusion Confusion_create (long numberOfStimuli, long numberOfResponses);
+Confusion Confusion_create (long numberOfStimuli, long numberOfResponses);
 
-autoConfusion Confusion_createSimple (const char32 *labels);
+Confusion Confusion_createSimple (const char32 *labels);
 
-autoConfusion Confusion_createFromStringses (Strings stimulusLabels, Strings responseLabels);
+Confusion Confusion_createFromStringses (Strings stimulusLabels, Strings responseLabels);
 
-autoConfusion Categories_to_Confusion (Categories me, Categories thee);
+Confusion Categories_to_Confusion (Categories me, Categories thee);
 
 void Confusion_increase (Confusion me, const char32 *stimulus, const char32 *response);
 /* data['stim']['resp'] += 1; */
@@ -79,25 +79,24 @@ void Confusion_Matrix_draw (Confusion me, Matrix thee, Graphics g,
  *	}
  */
 
-autoMatrix Confusion_difference (Confusion me, Confusion thee);
+Matrix Confusion_difference (Confusion me, Confusion thee);
 /* return matrix with the difference between the two confusion matrices */
 
 long Confusion_getNumberOfEntries (Confusion me);
 
-autoConfusion Confusion_groupStimuli (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
+Confusion Confusion_groupStimuli (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
+Confusion Confusion_groupResponses (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
+Confusion Confusion_group (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
 
-autoConfusion Confusion_groupResponses (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
-
-autoConfusion Confusion_group (Confusion me, const char32 *labels, const char32 *newLabel, long newpos);
-
-autoConfusion Confusion_condense (Confusion me, const char32 *search, const char32 *replace, long maximumNumberOfReplaces, int use_regexp);
-/* 
+Confusion Confusion_condense (Confusion me, const char32 *search, const char32 *replace,
+	long maximumNumberOfReplaces, int use_regexp);
+/*
 	Group row and column labels according to search and replace.
 */
 
-autoConfusion TableOfReal_to_Confusion (TableOfReal me);
+Confusion TableOfReal_to_Confusion (TableOfReal me);
 
-autoTableOfReal Confusion_to_TableOfReal_marginals (Confusion me);
+TableOfReal Confusion_to_TableOfReal_marginals (Confusion me);
 /*
 	Create a table with one extra row and one extra column with marginals,
 	i.e., column and row sums.
diff --git a/dwtools/ContingencyTable.cpp b/dwtools/ContingencyTable.cpp
index fa2dbe1..6e521da 100644
--- a/dwtools/ContingencyTable.cpp
+++ b/dwtools/ContingencyTable.cpp
@@ -1,6 +1,6 @@
 /* ContingencyTable.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,9 +26,9 @@ Thing_implement (ContingencyTable, TableOfReal, 0);
 #define TINY 1e-30
 
 void structContingencyTable :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 
-	double ndf;
+	long ndf;
 	double h, hx, hy, hygx, hxgy, uygx, uxgy, uxy, chisq;
 	ContingencyTable_entropies (this, &h, &hx, &hy, &hygx, &hxgy, &uygx, &uxgy, &uxy);
 	ContingencyTable_chisq (this, &chisq, &ndf);
@@ -49,31 +49,32 @@ void structContingencyTable :: v_info () {
 	MelderInfo_writeLine (U"  Probability: ", ContingencyTable_chisqProbability (this));
 }
 
-autoContingencyTable ContingencyTable_create (long numberOfRows, long numberOfColumns) {
+ContingencyTable ContingencyTable_create (long numberOfRows, long numberOfColumns) {
 	try {
 		autoContingencyTable me = Thing_new (ContingencyTable);
-		TableOfReal_init (me.get(), numberOfRows, numberOfColumns);
-		return me;
+		TableOfReal_init (me.peek(), numberOfRows, numberOfColumns);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ContingencyTable not created.");
 	}
 }
 
 double ContingencyTable_chisqProbability (ContingencyTable me) {
-	double chisq, df;
+	double chisq;
+	long df;
 	ContingencyTable_chisq (me, &chisq, &df);
-	if (chisq == 0.0 && df == 0.0) {
-		return 0.0;
+	if (chisq == 0 && df == 0) {
+		return 0;
 	}
 	return NUMchiSquareQ (chisq, df);
 }
 
 double ContingencyTable_cramersStatistic (ContingencyTable me) {
-	double chisq, sum = 0.0, df;
-	long nr = my numberOfRows, nc = my numberOfColumns, nmin = nr;
+	double chisq, sum = 0;
+	long df, nr = my numberOfRows, nc = my numberOfColumns, nmin = nr;
 
 	if (nr == 1 || nc == 1) {
-		return 0.0;
+		return 0;
 	}
 
 	for (long i = 1; i <= nr; i++) {
@@ -88,15 +89,15 @@ double ContingencyTable_cramersStatistic (ContingencyTable me) {
 	nmin--;
 
 	ContingencyTable_chisq (me, &chisq, &df);
-	if (chisq == 0.0 && df == 0.0) {
-		return 0.0;
+	if (chisq == 0 && df == 0) {
+		return 0;
 	}
 	return sqrt (chisq / (sum * nmin));
 }
 
 double ContingencyTable_contingencyCoefficient (ContingencyTable me) {
-	double chisq, sum = 0.0, df;
-	long nr = my numberOfRows, nc = my numberOfColumns;
+	double chisq, sum = 0;
+	long df, nr = my numberOfRows, nc = my numberOfColumns;
 
 	for (long i = 1; i <= nr; i++) {
 		for (long j = 1; j <= nc; j++) {
@@ -105,23 +106,25 @@ double ContingencyTable_contingencyCoefficient (ContingencyTable me) {
 	}
 
 	ContingencyTable_chisq (me, &chisq, &df);
-	if (chisq == 0.0 && df == 0.0) {
-		return 0.0;
+	if (chisq == 0 && df == 0) {
+		return 0;
 	}
 	return sqrt (chisq / (chisq + sum));
 }
 
-void ContingencyTable_chisq (ContingencyTable me, double *chisq, double *df) {
+void ContingencyTable_chisq (ContingencyTable me, double *chisq, long *df) {
 	long nr = my numberOfRows, nc = my numberOfColumns;
 
-	*chisq = 0.0; *df = 0.0;
+	*chisq = 0; *df = 0;
 
 	autoNUMvector<double> rowsum (1, nr);
 	autoNUMvector<double> colsum (1, nc);
 
-	// row and column marginals
+	/*
+		row and column marginals
+	*/
 
-	double sum = 0.0;
+	double sum = 0;
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			rowsum[i] += my data[i][j];
@@ -131,23 +134,23 @@ void ContingencyTable_chisq (ContingencyTable me, double *chisq, double *df) {
 	}
 
 	for (long i = 1; i <= my numberOfRows; i++) {
-		if (rowsum[i] == 0.0) {
+		if (rowsum[i] == 0) {
 			--nr;
 		}
 	}
 	for (long j = 1; j <= my numberOfColumns; j++) {
-		if (colsum[j] == 0.0) {
+		if (colsum[j] == 0) {
 			--nc;
 		}
 	}
 
-	*df = (nr - 1.0) * (nc - 1.0);
+	*df = (nr - 1) * (nc - 1);
 	for (long i = 1; i <= my numberOfRows; i++) {
-		if (rowsum[i] == 0.0) {
+		if (rowsum[i] == 0) {
 			continue;
 		}
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (colsum[j] == 0.0) {
+			if (colsum[j] == 0) {
 				continue;
 			}
 			double expt = rowsum[i] * colsum[j] / sum;
@@ -157,13 +160,16 @@ void ContingencyTable_chisq (ContingencyTable me, double *chisq, double *df) {
 	}
 }
 
-void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, double *hy, double *hygx, double *hxgy, double *uygx, double *uxgy, double *uxy) {
+void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, double *hy,
+                                 double *hygx, double *hxgy, double *uygx, double *uxgy, double *uxy) {
 	*h = *hx = *hy = *hxgy = *hygx = *uygx = *uxgy = *uxy = 0;
 
 	autoNUMvector<double> rowsum (1, my numberOfRows);
 	autoNUMvector<double> colsum (1, my numberOfColumns);
 
-	// row and column totals
+	/*
+		row and column totals
+	*/
 
 	double sum = 0.0;
 	for (long i = 1; i <= my numberOfRows; i++) {
@@ -174,36 +180,44 @@ void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, dou
 		sum += rowsum[i];
 	}
 
-	// Entropy of x distribution
+	/*
+		Entropy of x distribution
+	*/
 
 	for (long j = 1; j <= my numberOfColumns; j++) {
-		if (colsum[j] > 0.0) {
+		if (colsum[j] > 0) {
 			double p = colsum[j] / sum;
 			*hx -= p * NUMlog2 (p);
 		}
 	}
 
-	// Entropy of y distribution
+	/*
+		Entropy of y distribution
+	*/
 
 	for (long i = 1; i <= my numberOfRows; i++) {
-		if (rowsum[i] > 0.0) {
+		if (rowsum[i] > 0) {
 			double p = rowsum[i] / sum;
 			*hy -= p * NUMlog2 (p);
 		}
 	}
 
-	// Total entropy
+	/*
+		Total entropy
+	*/
 
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (my data[i][j] > 0.0) {
+			if (my data[i][j] > 0) {
 				double p = my data[i][j] / sum;
 				*h -= p * NUMlog2 (p);
 			}
 		}
 	}
 
-	// Conditional entropies
+	/*
+		Conditional entropies
+	*/
 
 	*hygx = *h - *hx;
 	*hxgy = *h - *hy;
@@ -213,22 +227,23 @@ void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, dou
 }
 
 
-autoContingencyTable Confusion_to_ContingencyTable (Confusion me) {
+ContingencyTable Confusion_to_ContingencyTable (Confusion me) {
 	try {
 		autoContingencyTable thee = Thing_new (ContingencyTable);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ContingencyTable.");
 	}
 }
 
-autoContingencyTable TableOfReal_to_ContingencyTable (TableOfReal me) {
+ContingencyTable TableOfReal_to_ContingencyTable (I) {
+	iam (TableOfReal);
 	try {
 		TableOfReal_checkPositive (me);
 		autoContingencyTable thee = Thing_new (ContingencyTable);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ContingencyTable.");
 	}
diff --git a/dwtools/ContingencyTable.h b/dwtools/ContingencyTable.h
index b4810a8..ee52671 100644
--- a/dwtools/ContingencyTable.h
+++ b/dwtools/ContingencyTable.h
@@ -1,23 +1,5 @@
 #ifndef _ContingencyTable_h_
 #define _ContingencyTable_h_
-/* ContingencyTable.h
- *
- * Copyright (C) 1993-2011, 2015 David Weenink
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
 
 #include "TableOfReal.h"
 #include "Confusion.h"
@@ -29,20 +11,15 @@ Thing_define (ContingencyTable, TableOfReal) {
 
 // entries must be nonnegative numbers
 
-autoContingencyTable ContingencyTable_create (long numberOfRows, long numberOfColumns);
+ContingencyTable ContingencyTable_create (long numberOfRows, long numberOfColumns);
 
 double ContingencyTable_chisqProbability (ContingencyTable me);
-
 double ContingencyTable_cramersStatistic (ContingencyTable me);
-
 double ContingencyTable_contingencyCoefficient (ContingencyTable me);
-
-void ContingencyTable_chisq (ContingencyTable me, double *chisq, double *df);
-
-void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, double *hy, double *hygx, double *hxgy, double *uygx, double *uxgy, double *uxy);
-
-autoContingencyTable Confusion_to_ContingencyTable (Confusion me);
-
-autoContingencyTable TableOfReal_to_ContingencyTable (TableOfReal me);
+void ContingencyTable_chisq (ContingencyTable me, double *chisq, long *df);
+void ContingencyTable_entropies (ContingencyTable me, double *h, double *hx, double *hy,
+	double *hygx, double *hxgy, double *uygx, double *uxgy, double *uxy);
+ContingencyTable Confusion_to_ContingencyTable (Confusion me);
+ContingencyTable TableOfReal_to_ContingencyTable (I);
 
 #endif // _ContingencyTable_h_
diff --git a/dwtools/DTW.cpp b/dwtools/DTW.cpp
index fdc20e4..5d21d4d 100644
--- a/dwtools/DTW.cpp
+++ b/dwtools/DTW.cpp
@@ -1,6 +1,6 @@
 /* DTW.cpp
  *
- * Copyright (C) 1993-2013, 2015-2016 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -64,10 +64,10 @@
 
 Thing_implement (DTW, Matrix, 2);
 
-#define DTW_BIG 1e308
+#define DTW_BIG 1e38
 
 void structDTW :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Domain prototype:", ymin, U" to ", ymax, U" (s).");   // ppgb: Wat is een domain prototype?
 	MelderInfo_writeLine (U"Domain candidate:", xmin, U" to ", xmax, U" (s).");   // ppgb: Wat is een domain candidate?
 	MelderInfo_writeLine (U"Number of frames prototype: ", ny);
@@ -86,9 +86,10 @@ void structDTW :: v_info () {
 static void DTW_drawWarpX_raw (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double tx, int garnish, int inset);
 static void DTW_paintDistances_raw (DTW me, Graphics g, double xmin, double xmax, double ymin,
                                     double ymax, double minimum, double maximum, int garnish, int inset);
-static void DTW_drawPath_raw (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish, int inset);
+static void DTW_drawPath_raw (DTW me, Graphics g, double xmin, double xmax, double ymin,
+                              double ymax, int garnish, int inset);
 static double _DTW_and_Sounds_getPartY (Graphics g, double dtw_part_x);
-static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slope, autoMatrix *cummulativeDists);
+static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slope, Matrix *cummulativeDists);
 /*
 	Two 'slope lines, lh and ll, start in the lower left corner, the upper/lower has the maximum/minimum allowed slope.
 	Two other lines, ru and rl, end in the upper-right corner. The upper/lower line have minimum/maximum slope.
@@ -101,10 +102,10 @@ static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slop
 /*
    The actual path will be interpolated as follows:
    The distance matrix has cells of dimensions dx by dy.
-   The optimal path connects these cells with one another in the following way:
+   The optimal path connects these cells with one another in the following ways:
 
    In a diagonal ''path'' segment, i.e. when cells have no side in common,
-   the interpolated path runs from the lowerleft corner to the upperright corner.
+   the interplated path runs from the lowerleft corner to the upperright corner.
    If a path segment is horizontal or vertical the path also runs from lowerleft to upperright.
    It is only when a horizontal and a vertical segment have a cell in common that we have to make
    some adjustments to the path in the common cell.
@@ -133,20 +134,46 @@ static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slop
 
 /* DTW_getXTime (DTW me, (DTW_getYTime (DTW me, double tx)) == tx */
 double DTW_getYTimeFromXTime (DTW me, double tx) {
-	// Catch cases where tier would give constant extrapolation
+	DTW_Path_Query thee = & my pathQuery;
+
 	if (tx < my xmin) {
 		return my ymin - (my xmin - tx);
 	}
 	if (tx > my xmax) {
 		return my ymax + (tx - my xmax);
 	}
-	DTW_Path_Query thee = & my pathQuery;
-	return RealTier_getValueAtTime(thy yfromx.get(), tx);
 
+	if (! NUMfpp) {
+		NUMmachar ();
+	}
+	double eps = 3 * NUMfpp -> eps;
+
+	/* Find in which column is tx */
+
+	long ib, ie;
+	long ix = (long) floor ( (tx - my x1) / my dx + 1.5);
+	if (ix < 1) {
+		ib = 1; ie = 2;
+	} else if (ix > my nx) {
+		ib = thy nxy - 1; ie = thy nxy;
+	} else {
+		ib = thy xindex[ix].ibegin; ie = thy xindex[ix].iend;
+	}
+	if (ie - ib > 1) {
+		long it = ib + 1;
+		while (tx - thy xytimes[it].x > eps) {
+			it++;
+		}
+		ie = it; ib = it - 1;
+	}
+	double a = (thy xytimes[ib].y - thy xytimes[ie].y) / (thy xytimes[ib].x - thy xytimes[ie].x);
+	double b = thy xytimes[ib].y - a * thy xytimes[ib].x;
+	return a * tx + b;
 }
 
 double DTW_getXTimeFromYTime (DTW me, double ty) {
-	// Catch cases where tier would give constant extrapolation
+	DTW_Path_Query thee = & my pathQuery;
+
 	if (ty < my ymin) {
 		return my ymin - (my ymin - ty);
 	}
@@ -154,8 +181,32 @@ double DTW_getXTimeFromYTime (DTW me, double ty) {
 		return my ymax + (ty - my ymax);
 	}
 
-	DTW_Path_Query thee = & my pathQuery;
-	return RealTier_getValueAtTime(thy xfromy.get(), ty);
+	if (! NUMfpp) {
+		NUMmachar ();
+	}
+	double eps = 3 * NUMfpp -> eps;
+
+	/* Find in which row is ty */
+
+	long ib, ie;
+	long iy = (long) floor ( (ty - my y1) / my dy + 1.5);
+	if (iy < 1) {
+		ib = 1; ie = 2;
+	} else if (iy > my ny) {
+		ib = thy nxy - 1; ie = thy nxy;
+	} else {
+		ib = thy yindex[iy].ibegin; ie = thy yindex[iy].iend;
+	}
+	if (ie - ib > 1) {
+		long it = ib + 1;
+		while (ty - thy xytimes[it].y > eps) {
+			it++;
+		}
+		ie = it; ib = it - 1;
+	}
+	double a = (thy xytimes[ib].y - thy xytimes[ie].y) / (thy xytimes[ib].x - thy xytimes[ie].x);
+	double b = thy xytimes[ib].y - a * thy xytimes[ib].x;
+	return (ty - b) / a;
 }
 
 void DTW_Path_Query_init (DTW_Path_Query me, long ny, long nx) {
@@ -163,128 +214,56 @@ void DTW_Path_Query_init (DTW_Path_Query me, long ny, long nx) {
 	my ny = ny;
 	my nx = nx;
 	my nxy = 2 * (ny > nx ? ny : nx) + 2; // maximum number of points
-	my xfromy = Thing_new (RealTier);
-	my yfromx = Thing_new (RealTier);
+	my xytimes = NUMvector<structDTW_Path_xytime> (1, my nxy);
+	my yindex = NUMvector<structDTW_Path_Index> (1, my ny);
+	my xindex = NUMvector<structDTW_Path_Index> (1, my nx);
 }
 
-/* Recode the path from a chain of cells to a piecewise linear path. */
-void DTW_Path_recode (DTW me) {
-	try {
-		DTW_Path_Query thee = & my pathQuery;
-		long nxy;		// current number of elements in recoded path
-		long nsc_x = 1;	// current number of successive horizontal cells in the cells chain
-		long nsc_y = 1;	// current number of successive vertical cells in the cells chain
-		long nd = 0;	// current number of successive diagonal cells in the cells chain
-		bool yDirection = false;	// previous segment in the original path was vertical
-		bool xDirection = false;	// previous segment in the original path was horizontal
-		long ixp = 0, iyp = 0; // previous cell
-		struct structPoint {
-			double x,y;
-		};
-
-		/* 1. Starting point always at origin */
-		long nxymax = thy nx + thy ny + 2;
-		autoNUMvector<struct structPoint> xytimes (1, nxymax);
-		xytimes[1].x = my xmin;
-		xytimes[1].y = my ymin;
-		/* 2. next point lower left of first cell */
-		nsc_x = my path[1].x;
-		ixp = nsc_x - 1;
-		xytimes[2].x = my x1 + (nsc_x - 1 - 0.5) * my dx;
-		nsc_y = my path[1].y;
-		iyp = nsc_y - 1;
-		xytimes[2].y = my y1 + (nsc_y - 1 - 0.5) * my dy;
-		/* 3. follow all cells. implicit: my x1 - 0.5 * my dx > my xmin && my y1 - 0.5 * my dy > my ymin */
-		nxy = 2;
-		for (long j = 1; j <= my pathLength; j++) {
-			long index; // where are we in the new path?
-			long ix = my path[j].x, iy = my path[j].y;
-			double xright = my x1 + (ix - 1 + 0.5) * my dx;
-			double x, y, f, ytop = my y1 + (iy - 1 + 0.5) * my dy;
-
-			if (iy == iyp) { // horizontal path?
-				xDirection = true;
-				if (yDirection) { // we came from vertical direction?
-					// We came from a vertical direction so this is the second horizontal cell in a row.
-					// The statement after this "if" updates nsc_x to 2.
-					nsc_x = 1; yDirection = false;
-				}
-				nsc_x++;
-
-				if (nsc_y > 1 || nd > 1) {
-					// Previous segment was diagonal or vertical: modify intersection
-					// The vh intersection (x,y) = (nsc_x*dx, dy) * (nsc_y-1)/(nsc_x*nsc_y-1)
-					// A diagonal segment has nsc_y = 1.
-					f = (nsc_y - 1.0) / (nsc_x * nsc_y - 1);
-					x = xright - nsc_x * my dx + nsc_x * my dx * f;
-					y = ytop - my dy + my dy * f;
-					index = nxy - 1;
-					if (nsc_x == 2) {
-						index = nxy;
-						nxy++;
-					}
-					xytimes[index].x = x;
-					xytimes[index].y = y;
-				}
-				nd = 0;
-			} else if (ix == ixp) { // vertical
-				yDirection = true;
-				if (xDirection) {
-					nsc_y = 1; xDirection = false;
-				}
-				nsc_y++;
-
-				if (nsc_x > 1 || nd > 1) {
-					// The hv intersection (x,y) = (dx, dy*nsc_y ) * (nsc_x-1)/(nsc_x*nsc_y-1)
-					f = (nsc_x - 1.0) / (nsc_x * nsc_y - 1);
-					x = xright - my dx + my dx * f;
-					y = ytop - nsc_y * my dy + nsc_y * my dy * f;
-					index = nxy - 1;
-					if (nsc_y == 2) {
-						index = nxy;
-						nxy++;
-					}
-					xytimes[index].x = x;
-					xytimes[index].y = y;
-				}
-				nd = 0;
-			} else if (ix == (ixp + 1) && iy == (iyp + 1)) { // diagonal
-				nd++;
-				if (nd == 1) {
-					nxy++;
-				}
-				nsc_x = nsc_y = 1;
-			} else {
-				Melder_throw (U"The path goes back in time.");
-			}
-			// update
-			xytimes[nxy].x = xright;
-			xytimes[nxy].y = ytop;
-			ixp = ix; iyp = iy;
-		}
+static void DTW_Path_makeIndex (DTW me, int xory) {
+	DTW_Path_Query thee = & my pathQuery;
+	DTW_Path_Index index;
+	double x1, dx;
+	long nx;
 
-		if (my xmax > xytimes[nxy].x || my ymax > xytimes[nxy].y) {
-			nxy++;
-			xytimes[nxy].x = my xmax;
-			xytimes[nxy].y = my ymax;
+	if (! NUMfpp) {
+		NUMmachar ();
+	}
+	double eps = 3 * NUMfpp -> eps;
+
+	if (xory == DTW_X) {
+		index = thy xindex;
+		nx = my nx;
+		x1 = my x1;
+		dx = my dx;
+	} else {
+		index = thy yindex;
+		nx = my ny;
+		x1 = my y1;
+		dx = my dy;
+	}
+	double xy_x2 = xory == DTW_X ? thy xytimes[3].x : thy xytimes[3].y;
+	long i = 3;
+	for (long j = 1; j <= nx; j++) {
+		double xlow = x1 + (j - 1 - 0.5) * dx;
+		double xhigh = xlow + dx;
+
+		if (xlow - xy_x2 > -eps && i < thy nxy) { // i.e. xlow >= xy_x2
+			i++;
+			xy_x2 = xory == DTW_X ? thy xytimes[i].x : thy xytimes[i].y;
 		}
-		Melder_assert (nxy <= 2 * (my ny > my nx ? my ny : my nx) + 2);
-		
-		thy nxy = nxy;
-		thy yfromx = RealTier_create (my xmin, my xmax);
-		thy xfromy = RealTier_create (my ymin, my ymax);
-		for (long i = 1; i <= nxy; i++) {
-			RealTier_addPoint (thy yfromx.get(), xytimes[i].x, xytimes[i].y);
-			RealTier_addPoint (thy xfromy.get(), xytimes[i].y, xytimes[i].x);
+
+		index[j].ibegin = i - 1;
+
+		while (xhigh - xy_x2 > eps && i < thy nxy) { // i.e. xhigh > xy_x2
+			i++;
+			xy_x2 = xory == DTW_X ? thy xytimes[i].x : thy xytimes[i].y;
 		}
-		//DTW_Path_makeIndex (me, DTW_X);
-		//DTW_Path_makeIndex (me, DTW_Y);
-	} catch (MelderError) {
-		Melder_throw (me, U": not recoded.");
+
+		index[j].iend = i;
 	}
 }
 
-#if 0
+/* Recode the path from a chain of cells to a piecewise linear path. */
 void DTW_Path_recode (DTW me) {
 	DTW_Path_Query thee = & my pathQuery;
 	long nxy;		// current number of elements in recoded path
@@ -389,7 +368,6 @@ void DTW_Path_recode (DTW me) {
 	DTW_Path_makeIndex (me, DTW_X);
 	DTW_Path_makeIndex (me, DTW_Y);
 }
-#endif
 
 void DTW_pathRemoveRedundantNodes (DTW me) {
 	long i = 1, skip = 0;
@@ -419,14 +397,15 @@ void DTW_pathRemoveRedundantNodes (DTW me) {
 
 /* Prototype must be on y-axis and test on x-axis */
 
-autoDTW DTW_create (double tminp, double tmaxp, long ntp, double dtp, double t1p, double tminc, double tmaxc, long ntc, double dtc, double t1c) {
+DTW DTW_create (double tminp, double tmaxp, long ntp, double dtp, double t1p,
+                double tminc, double tmaxc, long ntc, double dtc, double t1c) {
 	try {
 		autoDTW me = Thing_new (DTW);
-		Matrix_init (me.get(), tminc, tmaxc, ntc, dtc, t1c, tminp, tmaxp, ntp, dtp, t1p);
+		Matrix_init (me.peek(), tminc, tmaxc, ntc, dtc, t1c, tminp, tmaxp, ntp, dtp, t1p);
 		my path = NUMvector<structDTW_Path> (1, ntc + ntp - 1);
 		DTW_Path_Query_init (& my pathQuery, ntp, ntc);
 		my wx = 1; my wy = 1; my wd = 2;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created.");
 	}
@@ -436,7 +415,7 @@ void DTW_setWeights (DTW me, double wx, double wy, double wd) {
 	my wx = wx; my wy = wy; my wd = wd;
 }
 
-autoDTW DTW_swapAxes (DTW me) {
+DTW DTW_swapAxes (DTW me) {
 	try {
 		autoDTW thee = DTW_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 
@@ -450,7 +429,7 @@ autoDTW DTW_swapAxes (DTW me) {
 			thy path[i].x = my path[i].y;
 			thy path[i].y = my path[i].x;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": axes not swapped.");
 	}
@@ -633,8 +612,8 @@ static void DTW_paintDistances_raw (DTW me, Graphics g, double xmin, double xmax
 		Graphics_unsetInner (g);
 	}
 	if (garnish) {
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
@@ -643,14 +622,6 @@ void DTW_paintDistances (DTW me, Graphics g, double xmin, double xmax, double ym
 	DTW_paintDistances_raw (me, g, xmin, xmax, ymin, ymax, minimum, maximum, garnish, 1);
 }
 
-static double RealTier_getXAtIndex (RealTier me, long point) {
-	double x = NUMundefined;
-	if (point > 0 && point <= my points.size) {
-		x = my points.at [point] -> number;
-	}
-	return x;
-}
-
 static void DTW_drawPath_raw (DTW me, Graphics g, double xmin, double xmax, double ymin,
                               double ymax, int garnish, int inset) {
 	DTW_Path_Query thee = & my pathQuery;
@@ -666,17 +637,14 @@ static void DTW_drawPath_raw (DTW me, Graphics g, double xmin, double xmax, doub
 		Graphics_setInner (g);
 	}
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
-	double x1 = RealTier_getXAtIndex (thy yfromx.get(), 1);
-	double y1 = RealTier_getValueAtIndex (thy yfromx.get(), 1);
-	for (long i = 2; i <= thy yfromx -> points.size; i++) {
-		double x2 = RealTier_getXAtIndex (thy yfromx.get(), i);
-		double y2 = RealTier_getValueAtIndex (thy yfromx.get(), i);
-		double xc1, yc1, xc2, yc2;
-		if (NUMclipLineWithinRectangle (x1, y1,x2, y2, xmin, ymin, xmax, ymax, &xc1, &yc1, &xc2, &yc2)) {
-			Graphics_line (g, xc1, yc1, xc2, yc2);
+
+	for (long i = 1; i < thy nxy; i++) {
+		double x1, y1, x2, y2;
+		if (NUMclipLineWithinRectangle (thy xytimes[i].x, thy xytimes[i].y,
+            thy xytimes[i + 1].x, thy xytimes[i + 1].y,
+            xmin, ymin, xmax, ymax, &x1, &y1, &x2, &y2)) {
+			Graphics_line (g, x1, y1, x2, y2);
 		}
-		x1 = x2; 
-		y1 = y2;
 	}
 
 	if (inset) {
@@ -684,18 +652,18 @@ static void DTW_drawPath_raw (DTW me, Graphics g, double xmin, double xmax, doub
 	}
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-void DTW_drawPath (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void DTW_drawPath (DTW me, Graphics g, double xmin, double xmax, double ymin,
+                   double ymax, int garnish) {
 	DTW_drawPath_raw (me, g, xmin, xmax, ymin, ymax, garnish, 1);
 }
 
-static void DTW_drawWarp_raw (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double t, int garnish, bool inset, bool warpX) {
-	double tx = warpX ? t : DTW_getXTimeFromYTime (me, t);
-	double ty = warpX ? DTW_getYTimeFromXTime (me, t): t;
+static void DTW_drawWarpX_raw (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double tx, int garnish, int inset) {
+	double ty = DTW_getYTimeFromXTime (me, tx);
 	int lineType = Graphics_inqLineType (g);
 
 	if (xmin >= xmax) {
@@ -710,6 +678,7 @@ static void DTW_drawWarp_raw (DTW me, Graphics g, double xmin, double xmax, doub
 	}
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 
+	ty = DTW_getYTimeFromXTime (me, tx);
 	Graphics_setLineType (g, Graphics_DOTTED);
 	if (ty <= ymax) {
 		Graphics_line (g, tx, ymin, tx, ty);
@@ -725,19 +694,15 @@ static void DTW_drawWarp_raw (DTW me, Graphics g, double xmin, double xmax, doub
 	}
 
 	if (garnish) {
-		Graphics_markBottom (g, tx, true, true, false, nullptr);
+		Graphics_markBottom (g, tx, 1, 1, 0, (char32 *)  NULL);
 		if (ty <= ymax) {
-			Graphics_markLeft (g, ty, true, true, false, nullptr);
+			Graphics_markLeft (g, ty, 1, 1, 0, (char32 *)  NULL);
 		}
 	}
 }
 
 void DTW_drawWarpX (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double tx, int garnish) {
-	DTW_drawWarp_raw (me, g, xmin, xmax, ymin, ymax, tx, garnish, true, true);
-}
-
-void DTW_drawWarpY (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double ty, int garnish) {
-	DTW_drawWarp_raw (me, g, xmin, xmax, ymin, ymax, ty, garnish, true, false);
+	DTW_drawWarpX_raw (me, g, xmin, xmax, ymin, ymax, tx, garnish, 1);
 }
 
 static void DTW_and_Sounds_checkDomains (DTW me, Sound *y, Sound *x, double *xmin, double *xmax, double *ymin, double *ymax) {
@@ -829,11 +794,11 @@ void DTW_and_Sounds_draw (DTW me, Sound y, Sound x, Graphics g, double xmin, dou
 	Graphics_unsetInner (g);
 
 	if (garnish) {
-		Graphics_markLeft (g, ymin, true, true, false, nullptr);
-		Graphics_markLeft (g, ymax, true, true, false, nullptr);
+		Graphics_markLeft (g, ymin, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ymax, 1, 1, 0, NULL);
 
-		Graphics_markBottom (g, xmin, true, true, false, nullptr);
-		Graphics_markBottom (g, xmax, true, true, false, nullptr);
+		Graphics_markBottom (g, xmin, 1, 1, 0, NULL);
+		Graphics_markBottom (g, xmax, 1, 1, 0, NULL);
 	}
 }
 
@@ -863,16 +828,16 @@ void DTW_and_Sounds_drawWarpX (DTW me, Sound yy, Sound xx, Graphics g, double xm
 	Graphics_unsetInner (g);
 
 	if (garnish) {
-		Graphics_markBottom (g, tx, true, true, false, nullptr);
-		Graphics_markLeft (g, ty, true, true, false, nullptr);
+		Graphics_markBottom (g, tx, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ty, 1, 1, 0, NULL);
 	}
 }
 
-autoMatrix DTW_to_Matrix_distances (DTW me) {
+Matrix DTW_to_Matrix_distances (DTW me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": distances not converted to Matrix.");
 	}
@@ -924,17 +889,19 @@ void DTW_drawDistancesAlongPath (DTW me, Graphics g, double xmin, double xmax, d
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textLeft (g, true, U"distance");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textLeft (g, 1, U"distance");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
 /*
 	metric = 1...n (sum (a_i^n))^(1/n)
 */
-autoDTW Matrices_to_DTW (Matrix me, Matrix thee, int matchStart, int matchEnd, int slope, double metric) {
+DTW Matrices_to_DTW (I, thou, int matchStart, int matchEnd, int slope, double metric) {
 	try {
+		iam (Matrix); thouart (Matrix);
+
 		if (thy ny != my ny) {
 			Melder_throw (U"Columns must have the same dimensions.");
 		}
@@ -968,14 +935,14 @@ autoDTW Matrices_to_DTW (Matrix me, Matrix thee, int matchStart, int matchEnd, i
 				Melder_progress (0.999 * i / my nx, U"Calculate distances: column ", i, U" from ", my nx, U".");
 			}
 		}
-		DTW_findPath (him.get(), matchStart, matchEnd, slope);
-		return him;
+		DTW_findPath (him.peek(), matchStart, matchEnd, slope);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created from matrices.");
 	}
 }
 
-autoDTW Spectrograms_to_DTW (Spectrogram me, Spectrogram thee, int matchStart, int matchEnd, int slope, double metric) {
+DTW Spectrograms_to_DTW (Spectrogram me, Spectrogram thee, int matchStart, int matchEnd, int slope, double metric) {
 	try {
 		if (my xmin != thy xmin || my ymax != thy ymax || my ny != thy ny) {
 			Melder_throw (U"The number of frequencies and/or frequency ranges do not match.");
@@ -997,8 +964,8 @@ autoDTW Spectrograms_to_DTW (Spectrogram me, Spectrogram thee, int matchStart, i
 			}
 		}
 
-		autoDTW him = Matrices_to_DTW (m1.get(), m2.get(), matchStart, matchEnd, slope, metric);
-		return him;
+		autoDTW him = Matrices_to_DTW (m1.peek(), m2.peek(), matchStart, matchEnd, slope, metric);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created from Spectrograms.");
 	}
@@ -1019,8 +986,8 @@ static int Pitch_findFirstAndLastVoicedFrame (Pitch me, long *first, long *last)
 	return *first <= my nx && *last >= 1;
 }
 
-autoDTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope);
-autoDTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope) { // vuv_costs=24, time_weight=10 ?
+DTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope);
+DTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope) { // vuv_costs=24, time_weight=10 ?
 	try {
 		if (vuv_costs < 0) {
 			Melder_throw (U"Voiced-unvoiced costs may not be negative.");
@@ -1031,7 +998,7 @@ autoDTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_
 
 		long myfirst, mylast, thyfirst, thylast;
 		if (! Pitch_findFirstAndLastVoicedFrame (me, &myfirst, &mylast) ||
-			! Pitch_findFirstAndLastVoicedFrame (thee, &thyfirst, &thylast)) {
+		        ! Pitch_findFirstAndLastVoicedFrame (thee, &thyfirst, &thylast)) {
 			Melder_throw (U"No voiced frames.");
 		}
 		/*
@@ -1066,14 +1033,15 @@ autoDTW Pitches_to_DTW_sgc (Pitch me, Pitch thee, double vuv_costs, double time_
 				his z[i][j] = sqrt (dist_f * dist_f + time_weight * dist_t * dist_t);
 			}
 		}
-		DTW_findPath (him.get(), matchStart, matchEnd, slope);
-		return him;
+		DTW_findPath (him.peek(), matchStart, matchEnd, slope);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created from Pitches.");
 	}
 }
 
-autoDTW Pitches_to_DTW (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope) { // vuv_costs=24, time_weight=10 ?
+DTW Pitches_to_DTW (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart,
+                    int matchEnd, int slope) { // vuv_costs=24, time_weight=10 ?
 	try {
 		if (vuv_costs < 0) {
 			Melder_throw (U"Voiced-unvoiced costs must not be negative.");
@@ -1109,15 +1077,17 @@ autoDTW Pitches_to_DTW (Pitch me, Pitch thee, double vuv_costs, double time_weig
 			}
 		}
 
-		DTW_findPath (him.get(), matchStart, matchEnd, slope);
-		return him;
+		DTW_findPath (him.peek(), matchStart, matchEnd, slope);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DTW not created from Pitches.");
 	}
 }
 
-autoDurationTier DTW_to_DurationTier (DTW /* me */) {
-	return autoDurationTier();
+DurationTier DTW_to_DurationTier (DTW me) {
+	(void) me;
+	DurationTier thee = NULL;
+	return thee;
 }
 
 void DTW_and_Matrix_replace (DTW me, Matrix thee) {
@@ -1142,12 +1112,12 @@ void DTW_and_Matrix_replace (DTW me, Matrix thee) {
 /****************** new implementation ********/
 
 void DTW_findPath (DTW me, int matchStart, int matchEnd, int slope) {
-    DTW_findPath_special (me, matchStart, matchEnd, slope, nullptr);
+    DTW_findPath_special (me, matchStart, matchEnd, slope, 0);
 }
 
-autoMatrix DTW_to_Matrix_cummulativeDistances (DTW me, double sakoeChibaBand, int slope) {
+Matrix DTW_to_Matrix_cummulativeDistances (DTW me, double sakoeChibaBand, int slope) {
     try {
-        autoMatrix cummulativeDistances;
+        Matrix cummulativeDistances;
         DTW_findPath_bandAndSlope (me, sakoeChibaBand, slope, &cummulativeDistances);
         return cummulativeDistances;
     } catch (MelderError) {
@@ -1225,12 +1195,12 @@ static void DTW_and_Polygon_setUnreachableParts (DTW me, Polygon thee, long **ps
 }
 
 #define DTW_ISREACHABLE(y,x) ((psi[y][x] != DTW_UNREACHABLE) && (psi[y][x] != DTW_FORBIDDEN))
-static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slope, autoMatrix *cummulativeDists) {
+static void DTW_findPath_special (DTW me, int matchStart, int matchEnd, int slope, Matrix *cummulativeDists) {
     (void) matchStart;
     (void) matchEnd;
 	try {
        autoPolygon thee = DTW_to_Polygon (me, 0.0, slope);
-       DTW_and_Polygon_findPathInside (me, thee.get(), slope, cummulativeDists);
+       DTW_and_Polygon_findPathInside (me, thee.peek(), slope, cummulativeDists);
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot find path.");
 	}
@@ -1243,7 +1213,7 @@ static void getIntersectionPoint (double x1, double y1, double x2, double y2, do
     *y3 = a * *x3 + y1 - a * x1;
 }
 
-autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
+Polygon DTW_to_Polygon (DTW me, double band, int slope) {
     try {
         DTW_checkSlopeConstraints (me, band, slope);
         double slopes[5] = { DTW_BIG, DTW_BIG, 3, 2, 1.5 } ;
@@ -1254,7 +1224,7 @@ autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
                 thy x[2] = my xmin; thy y[2] = my ymax;
                 thy x[3] = my xmax; thy y[3] = my ymax;
                 thy x[4] = my xmax; thy y[4] = my ymin;
-                return thee;
+                return thee.transfer();
             } else {
                 autoPolygon thee = Polygon_create (4);
                 thy x[1] = my xmin; thy y[1] = my ymin;
@@ -1274,7 +1244,7 @@ autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
                 if (y > my ymax) y = my ymax;
                 thy x[4] = x;
                 thy y[4] = y;
-                return thee;
+                return thee.transfer();
             }
         } else {
             if (slope == 1) {
@@ -1285,7 +1255,7 @@ autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
                 thy x[4] = my xmax; thy y[4] = my ymax;
                 thy x[5] = my xmax; thy y[5] = my ymax - band;
                 thy x[6] = my xmin + band; thy y[6] = my ymin;
-                return thee;
+                return thee.transfer();
             } else {
                 autoPolygon thee = Polygon_create (8);
                 double x, y;
@@ -1309,7 +1279,7 @@ autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
                 thy x[7] = x;
                 thy y[7] = y;
                 thy x[8] = my xmin + band; thy y[8] = my ymin;
-                return thee;
+                return thee.transfer();
             }
         }
     } catch (MelderError) {
@@ -1317,9 +1287,9 @@ autoPolygon DTW_to_Polygon (DTW me, double band, int slope) {
     }
 }
 
-autoMatrix DTW_and_Polygon_to_Matrix_cummulativeDistances (DTW me, Polygon thee, int localSlope) {
+Matrix DTW_and_Polygon_to_Matrix_cummulativeDistances (DTW me, Polygon thee, int localSlope) {
     try {
-        autoMatrix cummulativeDistances;
+        Matrix cummulativeDistances;
         DTW_and_Polygon_findPathInside (me, thee, localSlope, &cummulativeDistances);
         return cummulativeDistances;
     } catch (MelderError) {
@@ -1327,18 +1297,19 @@ autoMatrix DTW_and_Polygon_to_Matrix_cummulativeDistances (DTW me, Polygon thee,
     }
 }
 
-void DTW_findPath_bandAndSlope (DTW me, double sakoeChibaBand, int localSlope, autoMatrix *cummulativeDists) {
+void DTW_findPath_bandAndSlope (DTW me, double sakoeChibaBand, int localSlope, Matrix *cummulativeDists) {
     try {
         autoPolygon thee = DTW_to_Polygon (me, sakoeChibaBand, localSlope);
-        DTW_and_Polygon_findPathInside (me, thee.get(), localSlope, cummulativeDists);
+        DTW_and_Polygon_findPathInside (me, thee.peek(), localSlope, cummulativeDists);
     } catch (MelderError) {
         Melder_throw (me, U" cannot determine the path.");
     }
 }
 
-void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoMatrix *cummulativeDists) {
+void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, Matrix *cummulativeDists) {
     try {
         double slopes[5] = { DTW_BIG, DTW_BIG, 3, 2, 1.5 };
+        long pathIndex = my nx + my ny - 1; /* Maximum path length */
         // if localSlope == 1 start of path is within 10% of minimum duration. Starts farther away
         long delta_xy = (my nx < my ny ? my nx : my ny) / 10; // if localSlope == 1 start within 10% of
 
@@ -1367,9 +1338,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
 
         // Make begin part of first column reachable
         long rowto = delta_xy;
-        if (localSlope != 1) {
-			rowto = (long) floor (slopes[localSlope]) + 1;
-		}
+        if (localSlope != 1) rowto = (long) floor (slopes[localSlope]) + 1;
         for (long iy = 2; iy <= rowto; iy++) {
             if (localSlope != 1) {
                 delta[iy][1] = delta[iy - 1][1] + my z[iy][1];
@@ -1380,9 +1349,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
         }
         // Make begin part of first row reachable
         long colto = delta_xy;
-        if (localSlope != 1) {
-			colto = (long) floor (slopes[localSlope]) + 1;
-		}
+        if (localSlope != 1) colto = (long) floor (slopes[localSlope]) + 1;
         for (long ix = 2; ix <= colto; ix++) {
             if (localSlope != 1) {
                 delta[1][ix] = delta[1][ix -1] + my z[1][ix];
@@ -1510,8 +1477,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
                 minimum = delta[iy = i][my nx];
             }
         }
-        
-        long pathIndex = my nx + my ny - 1; /* Maximum path length */
+
         my weightedDistance = minimum / (my nx + my ny);
         my path[pathIndex].y = iy;
         long ix = my path[pathIndex].x = my nx;
@@ -1535,7 +1501,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
             my path[pathIndex].y = iy;
         }
 
-        my pathLength = my nx + my ny - 1 - pathIndex + 1;
+        my pathLength = my nx + my ny - pathIndex;
         if (pathIndex > 1) {
             for (long j = 1; j <= my pathLength; j++) {
                 my path[j] = my path[pathIndex++];
@@ -1543,7 +1509,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
         }
 
         DTW_Path_recode (me);
-        if (cummulativeDists) {
+        if (cummulativeDists != 0) {
             autoMatrix him = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
                 my ymin, my ymax, my ny, my dy, my y1);
             for (long i = 1; i <= my ny; i++) {
@@ -1551,7 +1517,7 @@ void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoM
                     his z[i][j] = delta[i][j];
                 }
             }
-            *cummulativeDists = him.move();
+            *cummulativeDists = him.transfer();
         }
     } catch (MelderError) {
         Melder_throw (me, U": cannot find path.");
diff --git a/dwtools/DTW.h b/dwtools/DTW.h
index ef4a037..91f6f0a 100644
--- a/dwtools/DTW.h
+++ b/dwtools/DTW.h
@@ -31,6 +31,7 @@
 #include "Sound.h"
 
 #include "DTW_def.h"
+oo_CLASS_CREATE (DTW, Matrix);
 
 #define DTW_SAKOECHIBA 1
 #define DTW_SLOPES 2
@@ -45,15 +46,14 @@
 void DTW_Path_Query_init (DTW_Path_Query me, long ny, long nx);
 
 /* Prototype on y-axis and test on x-axis */
-autoDTW DTW_create (double tminp, double tmaxp, long ntp, double dtp, double t1p,
+DTW DTW_create (double tminp, double tmaxp, long ntp, double dtp, double t1p,
 	double tminc, double tmaxc, long ntc, double dtc, double t1c);
 
 void DTW_setWeights (DTW me, double wx, double wy, double wd);
 
-autoDTW DTW_swapAxes (DTW me);
-
-void DTW_findPath_bandAndSlope (DTW me, double sakoeChibaBand, int localSlope, autoMatrix *cummulativeDists);
+DTW DTW_swapAxes (DTW me);
 
+void DTW_findPath_bandAndSlope (DTW me, double sakoeChibaBand, int localSlope, Matrix *cummulativeDists);
 void DTW_findPath (DTW me, int matchStart, int matchEnd, int slope); // deprecated
 /* Obsolete
 	Function:
@@ -75,8 +75,11 @@ void DTW_findPath (DTW me, int matchStart, int matchEnd, int slope); // deprecat
 
 void DTW_Path_recode (DTW me);
 
+double DTW_getPathY (DTW me, double tx);
+/*
+	Get the time Y-time that corresponds to time t (along X).
+*/
 double DTW_getYTimeFromXTime (DTW me, double tx);
-
 double DTW_getXTimeFromYTime (DTW me, double ty);
 
 long DTW_getMaximumConsecutiveSteps (DTW me, int direction);
@@ -86,39 +89,33 @@ void DTW_paintDistances (DTW me, Graphics g, double xmin, double xmax, double ym
 
 void DTW_drawPath (DTW me, Graphics g, double xmin, double xmax, double ymin,
 	double ymax, int garnish);
-
 void DTW_drawWarpX (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double tx, int garnish);
-void DTW_drawWarpY (DTW me, Graphics g, double xmin, double xmax, double ymin, double ymax, double ty, int garnish);
-
 void DTW_pathRemoveRedundantNodes (DTW me);
-
 void DTW_pathQueryRecode (DTW me);
 
-void DTW_drawDistancesAlongPath (DTW me, Graphics g, double xmin, double xmax, double dmin, double dmax, int garnish);
+void DTW_drawDistancesAlongPath (DTW me, Graphics g, double xmin, double xmax,
+	double dmin, double dmax, int garnish);
 
 void DTW_and_Sounds_draw (DTW me, Sound yy, Sound xx, Graphics g, double xmin, double xmax,
 	double ymin, double ymax, int garnish);
-
 void DTW_and_Sounds_drawWarpX (DTW me, Sound yy, Sound xx, Graphics g, double xmin, double xmax,
 	double ymin, double ymax, double tx, int garnish);
 
-autoPolygon DTW_to_Polygon (DTW me, double band, int slope);
-
-void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, autoMatrix *cummulativeDists);
-
-autoMatrix DTW_to_Matrix_distances(DTW me);
+Polygon DTW_to_Polygon (DTW me, double band, int slope);
 
-autoMatrix DTW_to_Matrix_cummulativeDistances (DTW me, double sakoeChibaBand, int slope);
+void DTW_and_Polygon_findPathInside (DTW me, Polygon thee, int localSlope, Matrix *cummulativeDists);
 
-autoMatrix DTW_and_Polygon_to_Matrix_cummulativeDistances (DTW me, Polygon thee, int localSlope);
+Matrix DTW_to_Matrix_distances(DTW me);
+Matrix DTW_to_Matrix_cummulativeDistances (DTW me, double sakoeChibaBand, int slope);
+Matrix DTW_and_Polygon_to_Matrix_cummulativeDistances (DTW me, Polygon thee, int localSlope);
 
-autoDTW Matrices_to_DTW (Matrix me, Matrix thee, int matchStart, int matchEnd, int slope, double metric);
+DTW Matrices_to_DTW (I, thou, int matchStart, int matchEnd, int slope, double metric);
 
-autoDTW Spectrograms_to_DTW (Spectrogram me, Spectrogram thee, int matchStart, int matchEnd, int slope, double metric);
+DTW Spectrograms_to_DTW (Spectrogram me, Spectrogram thee, int matchStart, int matchEnd, int slope, double metric);
 
-autoDTW Pitches_to_DTW (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope);
+DTW Pitches_to_DTW (Pitch me, Pitch thee, double vuv_costs, double time_weight, int matchStart, int matchEnd, int slope);
 
-autoDurationTier DTW_to_DurationTier (DTW me);
+DurationTier DTW_to_DurationTier (DTW me);
 
 void DTW_and_Matrix_replace (DTW me, Matrix thee);
 
diff --git a/dwtools/DTW_and_TextGrid.cpp b/dwtools/DTW_and_TextGrid.cpp
index e432ed0..634c55a 100644
--- a/dwtools/DTW_and_TextGrid.cpp
+++ b/dwtools/DTW_and_TextGrid.cpp
@@ -1,6 +1,6 @@
 /* DTW_and_TextGrid.cpp
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,34 +26,34 @@
 #include "DTW_and_TextGrid.h"
 
 // begin old prototypes for compatibility reasons with the past
-autoTextGrid DTW_and_TextGrid_to_TextGrid_old (DTW me, TextGrid thee);
-autoIntervalTier DTW_and_IntervalTier_to_IntervalTier_old (DTW me, IntervalTier thee);
-autoTextTier DTW_and_TextTier_to_TextTier_old (DTW me, TextTier thee);
+TextGrid DTW_and_TextGrid_to_TextGrid_old (DTW me, TextGrid thee);
+IntervalTier DTW_and_IntervalTier_to_IntervalTier_old (DTW me, IntervalTier thee);
+TextTier DTW_and_TextTier_to_TextTier_old (DTW me, TextTier thee);
 // end old
 
 /* Get times from TextGrid and substitute new time form the y-times of the DTW. */
-autoTextTier DTW_and_TextTier_to_TextTier (DTW me, TextTier thee, double precision) {
+TextTier DTW_and_TextTier_to_TextTier (DTW me, TextTier thee, double precision) {
 	try {
 		if (fabs (my ymin - thy xmin) <= precision && fabs (my ymax - thy xmax) <= precision) { // map from Y to X
 			autoTextTier him = Data_copy (thee);
 			his xmin = my xmin;
 			his xmax = my xmax;
-			for (long i = 1; i <= his points.size; i++) {
-				TextPoint textpoint = his points.at [i];
+			for (long i = 1; i <= his points -> size; i++) {
+				TextPoint textpoint = (TextPoint) his points -> item[i];
 				double time = DTW_getXTimeFromYTime (me, textpoint -> number);
 				textpoint -> number = time;
 			}
-			return him;
+			return him.transfer();
 		} else if (fabs (my xmin - thy xmin) <= precision && fabs (my xmax - thy xmax) <= precision) { // map from X to Y
 			autoTextTier him = Data_copy (thee);
 			his xmin = my ymin;
 			his xmax = my ymax;
-			for (long i = 1; i <= his points.size; i++) {
-				TextPoint textpoint = his points.at [i];
+			for (long i = 1; i <= his points -> size; i++) {
+				TextPoint textpoint = (TextPoint) his points -> item[i];
 				double time = DTW_getYTimeFromXTime (me, textpoint -> number);
 				textpoint -> number = time;
 			}
-			return him;
+			return him.transfer();
 		} else {
 			Melder_throw (U"The domain of the TextTier and one of the domains of the DTW must be equal.");
 		}
@@ -62,32 +62,32 @@ autoTextTier DTW_and_TextTier_to_TextTier (DTW me, TextTier thee, double precisi
 	}
 }
 
-autoIntervalTier DTW_and_IntervalTier_to_IntervalTier (DTW me, IntervalTier thee, double precision) {
+IntervalTier DTW_and_IntervalTier_to_IntervalTier (DTW me, IntervalTier thee, double precision) {
 	try {
 		if (fabs (my ymin - thy xmin) <= precision && fabs (my ymax - thy xmax) <= precision) { // map from Y to X
 			autoIntervalTier him = Data_copy (thee);
 			his xmin = my xmin;
 			his xmax = my xmax;
-			for (long i = 1; i <= his intervals.size; i ++) {
-				TextInterval textinterval = his intervals.at [i];
+			for (long i = 1; i <= his intervals -> size; i++) {
+				TextInterval textinterval = (TextInterval) his intervals -> item[i];
 				double xmin = DTW_getXTimeFromYTime (me, textinterval -> xmin);
 				textinterval -> xmin = xmin;
 				double xmax = DTW_getXTimeFromYTime (me, textinterval -> xmax);
 				textinterval -> xmax = xmax;
 			}
-			return him;
+			return him.transfer();
 		} else if (fabs (my xmin - thy xmin) <= precision && fabs (my xmax - thy xmax) <= precision) { // map from X to Y
 			autoIntervalTier him = Data_copy (thee);
 			his xmin = my ymin;
 			his xmax = my ymax;
-			for (long i = 1; i <= his intervals.size; i ++) {
-				TextInterval textinterval = his intervals.at [i];
+			for (long i = 1; i <= his intervals -> size; i++) {
+				TextInterval textinterval = (TextInterval) his intervals -> item[i];
 				double xmin = DTW_getYTimeFromXTime (me, textinterval -> xmin);
 				textinterval -> xmin = xmin;
 				double xmax = DTW_getYTimeFromXTime (me, textinterval -> xmax);
 				textinterval -> xmax = xmax;
 			}
-			return him;
+			return him.transfer();
 		} else {
 			Melder_throw (U"The domain of the IntervalTier and one of the domains of the DTW must be equal.");
 		}
@@ -96,7 +96,7 @@ autoIntervalTier DTW_and_IntervalTier_to_IntervalTier (DTW me, IntervalTier thee
 	}
 }
 
-autoTextGrid DTW_and_TextGrid_to_TextGrid (DTW me, TextGrid thee, double precision) {
+TextGrid DTW_and_TextGrid_to_TextGrid (DTW me, TextGrid thee, double precision) {
 	try {
 		double tmin, tmax;
 		if (fabs (my ymin - thy xmin) <= precision && fabs (my ymax - thy xmax) <= precision) {
@@ -111,33 +111,33 @@ autoTextGrid DTW_and_TextGrid_to_TextGrid (DTW me, TextGrid thee, double precisi
 
 		autoTextGrid him = TextGrid_createWithoutTiers (tmin, tmax);
 
-		for (long i = 1; i <= thy tiers->size; i ++) {
-			Function anyTier = thy tiers->at [i];
+		for (long i = 1; i <= thy tiers -> size; i++) {
+			Function anyTier = (Function) thy tiers -> item[i];
 
 			if (anyTier -> classInfo == classIntervalTier) {
 				autoIntervalTier tier = DTW_and_IntervalTier_to_IntervalTier (me, (IntervalTier) anyTier, precision);
-				TextGrid_addTier_copy (him.get(), tier.get());
+				TextGrid_addTier (him.peek(), tier.peek());
 			} else if (anyTier -> classInfo == classTextTier) {
 				autoTextTier tier = DTW_and_TextTier_to_TextTier (me, (TextTier) anyTier, precision);
-				TextGrid_addTier_copy (him.get(), tier.get());
+				TextGrid_addTier (him.peek(), tier.peek());
 			} else {
 				Melder_throw (U"Unknown tier.");
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not created from DTW & TextGrid.");
 	}
 }
 
-autoTable DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double precision) {
+Table DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double precision) {
 	try {
-		long numberOfIntervals = thy intervals.size;
+		long numberOfIntervals = thy intervals -> size;
 		autoTable him = Table_createWithColumnNames (numberOfIntervals, U"tmin tmax label dist");
 		if (fabs (my ymin - thy xmin) <= precision && fabs (my ymax - thy xmax) <= precision) { // map from Y to X
 			long pathIndex = 1;
-			for (long i = 1; i <= numberOfIntervals; i ++) {
-				TextInterval textinterval = thy intervals.at [i];
+			for (long i = 1; i <= numberOfIntervals; i++) {
+				TextInterval textinterval = (TextInterval) thy intervals -> item[i];
 				double xmin = DTW_getXTimeFromYTime (me, textinterval -> xmin);
 				double xmax = DTW_getXTimeFromYTime (me, textinterval -> xmax);
 				long ixmin, ixmax;
@@ -147,15 +147,15 @@ autoTable DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double preci
 					sumOfDistances += my z[my path[pathIndex].y][my path[pathIndex].x];
 					pathIndex++;
 				}
-				Table_setNumericValue (him.get(), i, 1, textinterval -> xmin);
-				Table_setNumericValue (him.get(), i, 2, textinterval -> xmax);
-				Table_setStringValue  (him.get(), i, 3, textinterval -> text);
-				Table_setNumericValue (him.get(), i, 4, sumOfDistances / numberOfFrames);
+				Table_setNumericValue (him.peek(), i, 1, textinterval -> xmin);
+				Table_setNumericValue (him.peek(), i, 2, textinterval -> xmax);
+				Table_setStringValue  (him.peek(), i, 3, textinterval -> text);
+				Table_setNumericValue (him.peek(), i, 4, sumOfDistances / numberOfFrames);
 			}
 		} else if (fabs (my xmin - thy xmin) <= precision && fabs (my xmax - thy xmax) <= precision) {  // map from X to Y
 			long pathIndex = 1;
-			for (long i = 1; i <= numberOfIntervals; i ++) {
-				TextInterval textinterval = thy intervals.at [i];
+			for (long i = 1; i <= numberOfIntervals; i++) {
+				TextInterval textinterval = (TextInterval) thy intervals -> item[i];
 				double ymin = DTW_getYTimeFromXTime (me, textinterval -> xmin);
 				double ymax = DTW_getYTimeFromXTime (me, textinterval -> xmax);
 				long iymin, iymax;
@@ -165,15 +165,15 @@ autoTable DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double preci
 					sumOfDistances += my z[my path[pathIndex].y][my path[pathIndex].x];
 					pathIndex++;
 				}
-				Table_setNumericValue (him.get(), i, 1, textinterval -> xmin);
-				Table_setNumericValue (him.get(), i, 2, textinterval -> xmax);
-				Table_setStringValue  (him.get(), i, 3, textinterval -> text);
-				Table_setNumericValue (him.get(), i, 4, sumOfDistances / numberOfFrames);
+				Table_setNumericValue (him.peek(), i, 1, textinterval -> xmin);
+				Table_setNumericValue (him.peek(), i, 2, textinterval -> xmax);
+				Table_setStringValue  (him.peek(), i, 3, textinterval -> text);
+				Table_setNumericValue (him.peek(), i, 4, sumOfDistances / numberOfFrames);
 			}
 		} else {
 			Melder_throw (U"The domain of the IntervalTier and one of the domains of the DTW must be equal.");
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Table with distances created.");
 	}
@@ -182,7 +182,7 @@ autoTable DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double preci
 }
 
 /* Get times from TextGrid and substitute new time form the y-times of the DTW. */
-autoTextTier DTW_and_TextTier_to_TextTier_old (DTW me, TextTier thee) {
+TextTier DTW_and_TextTier_to_TextTier_old (DTW me, TextTier thee) {
 	try {
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"The domain of the TextTier and the DTW must be equal.");
@@ -191,18 +191,18 @@ autoTextTier DTW_and_TextTier_to_TextTier_old (DTW me, TextTier thee) {
 		his xmin = my ymin;
 		his xmax = my ymax;
 
-		for (long i = 1; i <= his points.size; i ++) {
-			TextPoint textpoint = his points.at [i];
-			double time = DTW_getYTimeFromXTime (me, textpoint -> number);
+		for (long i = 1; i <= his points -> size; i++) {
+			TextPoint textpoint = (TextPoint) his points -> item[i];
+			double time = DTW_getPathY (me, textpoint -> number);
 			textpoint -> number = time;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextTier not created.");
 	}
 }
 
-autoIntervalTier DTW_and_IntervalTier_to_IntervalTier_old (DTW me, IntervalTier thee) {
+IntervalTier DTW_and_IntervalTier_to_IntervalTier_old (DTW me, IntervalTier thee) {
 	try {
 		if ( (my xmin != thy xmin) || my xmax != thy xmax) Melder_throw
 			(U"The domain of the IntervalTier and the DTW must be equal.");
@@ -212,20 +212,20 @@ autoIntervalTier DTW_and_IntervalTier_to_IntervalTier_old (DTW me, IntervalTier
 		his xmin = my ymin;
 		his xmax = my ymax;
 
-		for (long i = 1; i <= his intervals.size; i ++) {
-			TextInterval textinterval = his intervals.at [i];
-			double xmin = DTW_getYTimeFromXTime (me, textinterval -> xmin);
+		for (long i = 1; i <= his intervals -> size; i++) {
+			TextInterval textinterval = (TextInterval) his intervals -> item[i];
+			double xmin = DTW_getPathY (me, textinterval -> xmin);
 			textinterval -> xmin = xmin;
-			double xmax = DTW_getYTimeFromXTime (me, textinterval -> xmax);
+			double xmax = DTW_getPathY (me, textinterval -> xmax);
 			textinterval -> xmax = xmax;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"IntervalTier not created.");
 	}
 }
 
-autoTextGrid DTW_and_TextGrid_to_TextGrid_old (DTW me, TextGrid thee) {
+TextGrid DTW_and_TextGrid_to_TextGrid_old (DTW me, TextGrid thee) {
 	try {
 		autoTextGrid him = Thing_new (TextGrid);
 		if (my xmin != thy xmin || my xmax != thy xmax) {
@@ -234,23 +234,23 @@ autoTextGrid DTW_and_TextGrid_to_TextGrid_old (DTW me, TextGrid thee) {
 
 		his xmin = my ymin;
 		his xmax = my ymax;
-		his tiers = FunctionList_create ();
+		his tiers = Ordered_create ();
 
-		for (long i = 1; i <= thy tiers->size; i ++) {
-			Daata anyTier = thy tiers->at [i];
+		for (long i = 1; i <= thy tiers -> size; i++) {
+			Data anyTier = (Data) thy tiers -> item[i];
 
 			if (anyTier -> classInfo == classIntervalTier) {
 
 				autoIntervalTier tier = DTW_and_IntervalTier_to_IntervalTier_old (me, (IntervalTier) anyTier);
-				TextGrid_addTier_copy (him.get(), tier.get());
+				TextGrid_addTier (him.peek(), tier.peek());
 			} else if (anyTier -> classInfo == classTextTier) {
 				autoTextTier tier = DTW_and_TextTier_to_TextTier_old (me, (TextTier) anyTier);
-				TextGrid_addTier_copy (him.get(), tier.get());
+				TextGrid_addTier (him.peek(), tier.peek());
 			} else {
 				Melder_throw (U"Unknown tier.");
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not created.");
 	}
diff --git a/dwtools/DTW_and_TextGrid.h b/dwtools/DTW_and_TextGrid.h
index 280636f..e63dcac 100644
--- a/dwtools/DTW_and_TextGrid.h
+++ b/dwtools/DTW_and_TextGrid.h
@@ -3,7 +3,7 @@
 
 /* DTW_and_TextGrid.h
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,21 +22,20 @@
 
 /*
  djmw 20060906
+ djmw 20120328 Latest modification
 */
 
 #include "DTW.h"
 #include "TextGrid.h"
 #include "Table.h"
 
-autoTextTier DTW_and_TextTier_to_TextTier (DTW me, TextTier thee, double precision);
-
-autoIntervalTier DTW_and_IntervalTier_to_IntervalTier (DTW me, IntervalTier thee, double precision);
-
-autoTextGrid DTW_and_TextGrid_to_TextGrid (DTW me, TextGrid thee, double precision);
+TextTier DTW_and_TextTier_to_TextTier (DTW me, TextTier thee, double precision);
+IntervalTier DTW_and_IntervalTier_to_IntervalTier (DTW me, IntervalTier thee, double precision);
+TextGrid DTW_and_TextGrid_to_TextGrid (DTW me, TextGrid thee, double precision);
 /*
 	Purpose: Create the new TextGrid with all times determined by the DTW.
 */
 
-autoTable DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double precision);
+Table DTW_and_IntervalTier_to_Table (DTW me, IntervalTier thee, double precision);
 
 #endif /* _DTW_and_TextGrid_h_ */
diff --git a/dwtools/DTW_def.h b/dwtools/DTW_def.h
index 4380f4d..86bcf54 100644
--- a/dwtools/DTW_def.h
+++ b/dwtools/DTW_def.h
@@ -30,13 +30,28 @@ oo_DEFINE_STRUCT (DTW_Path)
 oo_END_STRUCT (DTW_Path) 
 #undef ooSTRUCT
 
+#define ooSTRUCT DTW_Path_Index
+oo_DEFINE_STRUCT (DTW_Path_Index)
+	oo_LONG (ibegin)
+	oo_LONG (iend)
+oo_END_STRUCT (DTW_Path_Index)
+#undef ooSTRUCT
+
+#define ooSTRUCT DTW_Path_xytime
+oo_DEFINE_STRUCT (DTW_Path_xytime)
+	oo_DOUBLE (x)
+	oo_DOUBLE (y)
+oo_END_STRUCT (DTW_Path_xytime) 
+#undef ooSTRUCT
+
 #define ooSTRUCT DTW_Path_Query
 oo_DEFINE_STRUCT (DTW_Path_Query)
 	oo_LONG (nx)
 	oo_LONG (ny)
 	oo_LONG (nxy)
-	oo_AUTO_OBJECT (RealTier, 0, yfromx)
-	oo_AUTO_OBJECT (RealTier, 0, xfromy)
+	oo_STRUCT_VECTOR (DTW_Path_xytime, xytimes, nxy)
+	oo_STRUCT_VECTOR (DTW_Path_Index, xindex, nx)
+	oo_STRUCT_VECTOR (DTW_Path_Index, yindex, ny)
 oo_END_STRUCT (DTW_Path_Query) 
 #undef ooSTRUCT
 
diff --git a/dwtools/DataModeler.cpp b/dwtools/DataModeler.cpp
index 8035263..6d56696 100644
--- a/dwtools/DataModeler.cpp
+++ b/dwtools/DataModeler.cpp
@@ -1,6 +1,6 @@
 /* DataModeler.cpp
  *
- * Copyright (C) 2014-2016 David Weenink
+ * Copyright (C) 2014-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,6 +49,7 @@
 #include "DataModeler_def.h"
 
 extern machar_Table NUMfpp;
+void FormantModeler_getSumOfVariancesBetweenShiftedAndEstimatedTracks (FormantModeler me, int shiftDirection, long *fromFormant, long *toFormant, double var[]);
 
 Thing_implement (DataModeler, Function, 0);
 
@@ -57,7 +58,7 @@ void structDataModeler :: v_info () {
 	MelderInfo_writeLine (U"      Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"      End time: ", xmax, U" seconds");
 	MelderInfo_writeLine (U"      Total duration: ", xmax - xmin, U" seconds");
-	double ndf, rSquared = DataModeler_getCoefficientOfDetermination (this, nullptr, nullptr);
+	double ndf, rSquared = DataModeler_getCoefficientOfDetermination (this, NULL, NULL);
 	double probability, chisq = DataModeler_getChiSquaredQ (this, useSigmaY, &probability, &ndf);
 	MelderInfo_writeLine (U"   Fit:");
 	MelderInfo_writeLine (U"      Number of data points: ", numberOfDataPoints);
@@ -76,11 +77,11 @@ void structDataModeler :: v_info () {
 	}
 }
 
-static double polynomial_evaluate (DataModeler me, double xin, double p[])
+static double polynome_evaluate (DataModeler me, double xin, double p[])
 {
-	double xpi = 1.0, result = p[1];
+	double xpi = 1, result = p[1];
 	// From domain [xmin, xmax] to domain [-(xmax -xmin)/2, (xmax-xmin)/2]
-	double x = (2.0 * xin - my xmin - my xmax) / 2.0;
+	double x = (2 * xin - my xmin - my xmax) / 2;
 	for (long i = 2; i <= my numberOfParameters; i++) {
 		xpi *= x;
 		result += p[i] * xpi;
@@ -88,10 +89,10 @@ static double polynomial_evaluate (DataModeler me, double xin, double p[])
 	return result;
 }
 
-static void polynomial_evaluateBasisFunctions (DataModeler me, double xin, double term[]) {
-	term[1] = 1.0;
+static void polynome_evaluateBasisFunctions (DataModeler me, double xin, double term[]) {
+	term[1] = 1;
 	// From domain [xmin, xmax] to domain [-(xmax -xmin)/2, (xmax-xmin)/2]
-	double x = (2.0 * xin - my xmin - my xmax) / 2.0;
+	double x = (2 * xin - my xmin - my xmax) / 2;
 	for (long i = 2; i <= my numberOfParameters; i++) {
 		term[i] = term[i-1] * x;
 	}
@@ -99,28 +100,27 @@ static void polynomial_evaluateBasisFunctions (DataModeler me, double xin, doubl
 
 static double legendre_evaluate (DataModeler me, double xin, double p[]) {
 	// From domain [xmin, xmax] to domain [-1, 1]
-	double x = (2.0 * xin - my xmin - my xmax) / (my xmax - my xmin);
+	double x = (2 * xin - my xmin - my xmax) / (my xmax - my xmin);
 	double pti, ptim1, ptim2 = 1, result = p[1];
 	if (my numberOfParameters > 1) {
-		double twox = 2.0 * x, f2 = x, d = 1.0;
+		double twox = 2 * x, f2 = x, d = 1.0;
 		result += p[2] * (ptim1 = x);
 		for (long i = 3; i <= my numberOfParameters; i++) {
 			double f1 = d++;
 			f2 += twox;
 			result += p[i] * (pti = (f2 * ptim1 - f1 * ptim2) / d);
-			ptim2 = ptim1;
-			ptim1 = pti;
+			ptim2 = ptim1; ptim1 = pti;
 		}
 	}
 	return result;
 }
 
 static void legendre_evaluateBasisFunctions (DataModeler me, double xin, double term[]) {
-	term[1] = 1.0;
+	term[1] = 1;
 	/* transform x from domain [xmin, xmax] to domain [-1, 1] */
-	double x = (2.0 * xin - my xmin - my xmax) / (my xmax - my xmin);
+	double x = ( 2 * xin - my xmin - my xmax) / (my xmax - my xmin);
 	if (my numberOfParameters > 1) {
-		double twox = 2.0 * x, f2 = term[2] = x, d = 1.0;
+		double twox = 2 * x, f2 = term[2] = x, d = 1.0;
 		for (long i = 3; i <= my numberOfParameters; i++) {
 			double f1 = d++;
 			f2 += twox;
@@ -129,32 +129,32 @@ static void legendre_evaluateBasisFunctions (DataModeler me, double xin, double
 	}
 }
 
-static void chisqFromZScores (double *zscores, long numberOfZScores, double *p_chisq, long *p_numberOfValidZScores) {
-	long numberOfValidZScores = numberOfZScores;
-	double chisq = 0.0;
+static void chisqFromZScores (double *zscores, long numberOfZScores, double *chisq, long *numberOfValidZScores) {
+	long numberOfValid = numberOfZScores;
+	double chisqt = 0;
 	for (long i = 1; i <= numberOfZScores; i++) {
 		if (NUMdefined (zscores[i])) {
-			chisq += zscores[i] * zscores[i];
+			chisqt += zscores[i] * zscores[i];
 		} else {
-			numberOfValidZScores--;
+			numberOfValid--;
 		}
 	}
-	if (p_chisq) {
-		*p_chisq = chisq;
+	if (chisq) {
+		*chisq = chisqt;
 	}
-	if (p_numberOfValidZScores) {
-		*p_numberOfValidZScores = numberOfValidZScores;
+	if (numberOfValidZScores) {
+		*numberOfValidZScores = numberOfValid;
 	}
 }
 
-static double DataModeler_getDataPointInverseWeight (DataModeler me, long iPoint, int useSigmaY ) {
-	double iweight = 1.0;
+double DataModeler_getDataPointInverseWeight (DataModeler me, long iPoint, int useSigmaY ) {
+	double iweight = 1;
 	if (iPoint > 0 && iPoint <= my numberOfDataPoints && my dataPointStatus[iPoint] != DataModeler_DATA_INVALID) {
 		if (useSigmaY == DataModeler_DATA_WEIGH_SIGMA) {
 			iweight = my sigmaY[iPoint];
 		} else if (useSigmaY == DataModeler_DATA_WEIGH_RELATIVE) {
 			double q = my y[iPoint] / my sigmaY[iPoint];
-			iweight = 500.0 / q; //
+			iweight = 500 / q; //
 		} else if (useSigmaY == DataModeler_DATA_WEIGH_SQRT) {
 			iweight = 7.071 * sqrt (my sigmaY[iPoint]); // .bw = 50 gives 50
 		}
@@ -178,23 +178,23 @@ double DataModeler_getModelValueAtIndex (DataModeler me, long index) {
 	return f;
 }
 
-void DataModeler_getExtremaY (DataModeler me, double *p_ymin, double *p_ymax) {
-	double ymin = 1e308, ymax = -ymin;
+void DataModeler_getExtremaY (DataModeler me, double *ymin, double *ymax) {
+	double min = 1e38, max = -min;
 	for (long i = 1; i <= my numberOfDataPoints; i++) {
 		if (my dataPointStatus[i] != DataModeler_DATA_INVALID) {
-			if (my y[i] < ymin) {
-				ymin = my y[i];
+			if (my y[i] < min) {
+				min = my y[i];
 			}
-			if (my y[i] > ymax) {
-				ymax = my y[i];
+			if (my y[i] > max) {
+				max = my y[i];
 			}
 		}
 	}
-	if (p_ymin) {
-		*p_ymin = ymin;
+	if (ymin != NULL) {
+		*ymin = min;
 	}
-	if (p_ymax) {
-		*p_ymax = ymax;
+	if (ymax != NULL) {
+		*ymax = max;
 	}
 }
 
@@ -243,7 +243,7 @@ void DataModeler_setDataPointStatus (DataModeler me, long index, int status) {
 	}
 }
 
-static void DataModeler_setDataPointValueAndStatus (DataModeler me, long index, double value, int dataStatus) {
+void DataModeler_setDataPointValueAndStatus (DataModeler me, long index, double value, int dataStatus) {
 	if (index > 0 && index <= my numberOfDataPoints) {
 		my y[index] = value;
 		my dataPointStatus[index] = dataStatus;
@@ -285,23 +285,23 @@ double DataModeler_getParameterStandardDeviation (DataModeler me, long index) {
 	return stdev;
 }
 
-double DataModeler_getVarianceOfParameters (DataModeler me, long fromIndex, long toIndex, long *p_numberOfFreeParameters) {
+double DataModeler_getVarianceOfParameters (DataModeler me, long fromIndex, long toIndex, long *numberOfFreeParameters) {
 	double variance = NUMundefined;
 	if (toIndex < fromIndex || (toIndex == 0 && fromIndex == 0)) {
 		fromIndex = 1; toIndex = my numberOfParameters;
 	}
-	long numberOfFreeParameters = 0;
+	long numberOfParameters = 0;
 	if (fromIndex <= toIndex && fromIndex > 0 && toIndex <= my numberOfParameters) {
 		variance = 0;
 		for (long index = fromIndex; index <= toIndex; index++) {
 			if (my parameterStatus[index] != DataModeler_PARAMETER_FIXED) {
 				variance += my parameterCovariances -> data[index][index];
-				numberOfFreeParameters++;
+				numberOfParameters++;
 			}
 		}
 	}
-	if (p_numberOfFreeParameters) {
-		*p_numberOfFreeParameters = numberOfFreeParameters;
+	if (numberOfFreeParameters != NULL) {
+		*numberOfFreeParameters = numberOfParameters;
 	}
 	return variance;
 }
@@ -324,7 +324,7 @@ void DataModeler_setParameterValuesToZero (DataModeler me, double numberOfSigmas
 			double value = my parameter[i];
 			double sigmas = numberOfSigmas * DataModeler_getParameterStandardDeviation (me, i);
 			if ((value - sigmas) * (value + sigmas) < 0) {
-				DataModeler_setParameterValueFixed (me, i, 0.0);
+				DataModeler_setParameterValueFixed (me, i, 0);
 				numberOfChangedParameters++;
 			}
 		}
@@ -358,7 +358,7 @@ long DataModeler_getNumberOfInvalidDataPoints (DataModeler me) {
 }
 
 void DataModeler_setTolerance (DataModeler me, double tolerance) {
-	my tolerance = tolerance > 0.0 ? tolerance : my numberOfDataPoints * NUMfpp -> eps;
+	my tolerance = tolerance > 0 ? tolerance : my numberOfDataPoints * NUMfpp -> eps;
 }
 
 double DataModeler_getDegreesOfFreedom (DataModeler me) {
@@ -374,7 +374,7 @@ double DataModeler_getDegreesOfFreedom (DataModeler me) {
 
 void DataModeler_getZScores (DataModeler me, int useSigmaY, double zscores[]) {
 	try {
-		Melder_assert (zscores != nullptr);
+		Melder_assert (zscores != NULL);
 		double estimatedSigmaY;
 		if (useSigmaY == DataModeler_DATA_WEIGH_EQUAL) {
 			long numberOfValidDataPoints;
@@ -400,9 +400,9 @@ void DataModeler_getZScores (DataModeler me, int useSigmaY, double zscores[]) {
 
 // chisq and zscores may be the same arrays!
 static void DataModeler_getChisqScoresFromZScores (DataModeler me, double *zscores, bool substituteAverage, double *chisq) {
-	Melder_assert (zscores != nullptr && chisq != nullptr);
+	Melder_assert (zscores != NULL && chisq != NULL);
 	long numberOfDefined = my numberOfDataPoints;
-	double sumchisq = 0.0;
+	double sumchisq = 0;
 	for (long i = 1; i <= my numberOfDataPoints; i++) {
 		if (NUMdefined (zscores[i])) {
 			chisq[i] = zscores[i] * zscores[i];
@@ -421,29 +421,29 @@ static void DataModeler_getChisqScoresFromZScores (DataModeler me, double *zscor
 	}
 }
 
-double DataModeler_getChiSquaredQ (DataModeler me, int useSigmaY, double *p_prob, double *p_df)
+double DataModeler_getChiSquaredQ (DataModeler me, int useSigmaY, double *probability, double *ndf)
 {
-	double chisq;
-	long numberOfValidZScores;
+	double chisq; long numberOfValidZScores;
 	autoNUMvector<double> zscores (1, my numberOfDataPoints);
 	DataModeler_getZScores (me, useSigmaY, zscores.peek());
 	chisqFromZScores (zscores.peek(), my numberOfDataPoints, & chisq, & numberOfValidZScores);
-	double df = useSigmaY == DataModeler_DATA_WEIGH_EQUAL ? numberOfValidZScores - 1.0 : numberOfValidZScores; // we loose one df if sigma is estimated from the data
-	if (p_prob) {
-		*p_prob = NUMchiSquareQ (chisq, df);
+	double dof = numberOfValidZScores;
+	dof = useSigmaY == DataModeler_DATA_WEIGH_EQUAL ? dof - 1 : dof; // we loose one dof if sigma is estimated from the data
+	if (probability != NULL) {
+		*probability = NUMchiSquareQ (chisq, dof);
 	}
-	if (p_df) {
-		*p_df = df;
+	if (ndf != NULL) {
+		*ndf = dof;
 	}
 	return chisq;
 }
 
 double DataModeler_getWeightedMean (DataModeler me) {
-	double ysum = 0.0, wsum = 0.0;
+	double ysum = 0, wsum = 0;
 	for (long i = 1; i <= my numberOfDataPoints; i++) {
 		if (my dataPointStatus[i] != DataModeler_DATA_INVALID) {
 			double s = DataModeler_getDataPointInverseWeight (me, i, my useSigmaY);
-			double weight = 1.0 / (s * s);
+			double weight =  1 / (s * s);
 			ysum += my y[i] * weight;
 			wsum += weight;
 		}
@@ -451,7 +451,7 @@ double DataModeler_getWeightedMean (DataModeler me) {
 	return ysum / wsum;
 }
 
-double DataModeler_getCoefficientOfDetermination (DataModeler me, double *p_ssreg, double *p_sstot) {
+double DataModeler_getCoefficientOfDetermination (DataModeler me, double *ssreg, double *sstot) {
 
 	/* We cannot use the standard expressions for ss_tot, and ss_reg because our data are weighted by 1 / sigma[i].
 	 * We need the weighted mean and we need to weigh all sums-of-squares accordingly;
@@ -460,28 +460,29 @@ double DataModeler_getCoefficientOfDetermination (DataModeler me, double *p_ssre
 	 */
 
 	double ymean = DataModeler_getWeightedMean (me);
-	double sstot = 0.0, ssreg = 0.0;
+	double ss_tot = 0, ss_reg = 0;
 	for (long i = 1; i <= my numberOfDataPoints; i++) {
 		if (my dataPointStatus[i] != DataModeler_DATA_INVALID) {
 			double s = DataModeler_getDataPointInverseWeight (me, i, my useSigmaY);
 			double diff = (my y[i] - ymean) / s;
-			sstot += diff * diff; // total sum of squares
+			ss_tot += diff * diff; // total sum of squares
 			double estimate = my f_evaluate (me, my x[i], my parameter);
 			diff = (estimate - my y[i]) / s;
-			ssreg += diff * diff; // regression sum of squares
+			ss_reg += diff * diff; // regression sum of squares
 		}
 	}
-	double rSquared = sstot > 0.0 ? 1.0 - ssreg / sstot : 1.0;
-	if (p_ssreg) {
-		*p_ssreg = sstot - ssreg;
+	double rSquared = ss_tot > 0 ? 1 - ss_reg / ss_tot : 1;
+	if (ssreg != NULL) {
+		*ssreg = ss_tot - ss_reg;
 	}
-	if (p_sstot) {
-		*p_sstot = sstot;
+	if (sstot != NULL) {
+		*sstot = ss_tot;
 	}
 	return rSquared;
 }
 
-static void DataModeler_drawBasisFunction_inside (DataModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax, long iterm, bool scale, long numberOfPoints) {
+void DataModeler_drawBasisFunction_inside (DataModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax,
+ 	long iterm, bool scale, long numberOfPoints) {
 	if (xmax <= xmin) {
 		xmin = my xmin; xmax = my xmax;
 	}
@@ -495,7 +496,7 @@ static void DataModeler_drawBasisFunction_inside (DataModeler me, Graphics g, do
 		y[i] = scale ? y[i] * my parameter[iterm] : y[i];
 	}
 	if (ymax <= ymin) {
-		ymin = 1e308; ymax = -ymin;
+		ymin = 1e38;ymax = -ymin;
 		for (long i = 1; i <= numberOfPoints; i++) {
 			ymax = y[i] > ymax ? y[i] : ymax;
 			ymin = y[i] < ymin ? y[i] : ymin;
@@ -576,7 +577,7 @@ void DataModeler_draw_inside (DataModeler me, Graphics g, double xmin, double xm
 	
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	double horizontalOffset_wc = Graphics_dxMMtoWC (g, horizontalOffset_mm);
-	double barWidth_wc = barWidth_mm <= 0.0 ? 0.0 : Graphics_dxMMtoWC (g, barWidth_mm);
+	double barWidth_wc = barWidth_mm <= 0 ? 0 : Graphics_dxMMtoWC (g, barWidth_mm);
 	double x1, y1, x2, y2;
 	bool x1defined = false, x2defined = false;
 	for (long idata = ixmin; idata <= ixmax; idata++) {
@@ -613,14 +614,14 @@ void DataModeler_draw_inside (DataModeler me, Graphics g, double xmin, double xm
 				double ym = y1;
 				double yt = ym + 0.5 * sigma, yb = ym - 0.5 * sigma;
 				if (estimated) {
-					yt = (y - y1) > 0.0 ? y : y1;
-					yb = (y - y1) > 0.0 ? y1 : y;
+					yt = (y - y1) > 0 ? y : y1;
+					yb = (y - y1) > 0 ? y1 : y;
 				}
 				int topOutside = yt > ymax, bottomOutside = yb < ymin;
 				yt = topOutside ? ymax : yt;
 				yb = bottomOutside ? ymin : yb;
 				Graphics_line (g, x1 + horizontalOffset_wc, yb, x1 + horizontalOffset_wc, yt);
-				if (barWidth_wc > 0.0 && ! estimated) {
+				if (barWidth_wc > 0 && ! estimated) {
 					double xl = x1 - 0.5 * barWidth_wc + horizontalOffset_wc;
 					double xr = xl + barWidth_wc;
 					if (! topOutside) {
@@ -650,8 +651,8 @@ void DataModeler_drawTrack (DataModeler me, Graphics g, double xmin, double xmax
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
@@ -670,30 +671,30 @@ void DataModeler_speckle (DataModeler me, Graphics g, double xmin, double xmax,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-autoTable DataModeler_to_Table_zscores (DataModeler me, int useSigmaY) {
+Table DataModeler_to_Table_zscores (DataModeler me, int useSigmaY) {
 	try {
 		autoTable ztable = Table_createWithColumnNames (my numberOfDataPoints, U"x z");
 		autoNUMvector<double> zscores (1, my numberOfDataPoints);
 		DataModeler_getZScores (me, useSigmaY, zscores.peek());
 		for (long i = 1; i <= my numberOfDataPoints; i++) {
-			Table_setNumericValue (ztable.get(), i, 1, my x[i]);
-			Table_setNumericValue (ztable.get(), i, 2, zscores[i]);
+			Table_setNumericValue (ztable.peek(), i, 1, my x[i]);
+			Table_setNumericValue (ztable.peek(), i, 2, zscores[i]);
 		}
-		return ztable;
+		return ztable.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created.");
 	}	
 }
 
-static void DataModeler_normalProbabilityPlot (DataModeler me, Graphics g, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, bool garnish) {
+void DataModeler_normalProbabilityPlot (DataModeler me, Graphics g, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, int garnish) {
 	try {
 		autoTable thee = DataModeler_to_Table_zscores (me, useSigmaY);
-		Table_normalProbabilityPlot (thee.get(), g, 2, numberOfQuantiles, numberOfSigmas, labelSize, label, garnish);
+		Table_normalProbabilityPlot (thee.peek(), g, 2, numberOfQuantiles, numberOfSigmas, labelSize, label, garnish);
 	} catch (MelderError) {
 		// ignore
 	}
@@ -704,15 +705,14 @@ void DataModeler_setBasisFunctions (DataModeler me, int type) {
 		my f_evaluate = legendre_evaluate;
 		my f_evaluateBasisFunctions = legendre_evaluateBasisFunctions;
 	} else {
-		my f_evaluate = polynomial_evaluate;
-		my f_evaluateBasisFunctions = polynomial_evaluateBasisFunctions;
+		my f_evaluate = polynome_evaluate;
+		my f_evaluateBasisFunctions = polynome_evaluateBasisFunctions;
 	}
 	my type = type;
 }
 
-void DataModeler_init (DataModeler me, double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type) {
-	my xmin = xmin;
-	my xmax = xmax;
+void  DataModeler_init (DataModeler me, double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type) {
+	my xmin = xmin; my xmax = xmax;
 	DataModeler_setBasisFunctions (me, type);
 	my numberOfDataPoints = numberOfDataPoints;
 	my x = NUMvector<double> (1, numberOfDataPoints);
@@ -732,18 +732,18 @@ void DataModeler_init (DataModeler me, double xmin, double xmax, long numberOfDa
 	my parameterCovariances = Covariance_create (numberOfParameters);
 }
 
-autoDataModeler DataModeler_create (double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type) {
+DataModeler DataModeler_create (double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type) {
 	try {
 		autoDataModeler me = Thing_new (DataModeler);
-		DataModeler_init (me.get(), xmin, xmax, numberOfDataPoints, numberOfParameters, type);
+		DataModeler_init (me.peek(), xmin, xmax, numberOfDataPoints, numberOfParameters, type);
 		my xmin = xmin; my xmax = xmax;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DataModeler not created.");
 	}
 }
 
-autoDataModeler DataModeler_createSimple (double xmin, double xmax, long numberOfDataPoints, char32 *parameters, double gaussianNoiseStd, int type) {
+DataModeler DataModeler_createSimple (double xmin, double xmax, long numberOfDataPoints, char32 *parameters, double gaussianNoiseStd, int type) {
 	try {
 		long numberOfParameters;
 		autoNUMvector<double> parameter (NUMstring_to_numbers (parameters, &numberOfParameters), 1);
@@ -760,12 +760,12 @@ autoDataModeler DataModeler_createSimple (double xmin, double xmax, long numberO
 		// generate the data that belong to the parameter values
 		for (long i = 1; i <= numberOfDataPoints; i++) {
 			my x[i] = xmin + (i - 0.5) * (xmax - xmin) / numberOfDataPoints;
-			double modelY = my f_evaluate (me.get(), my x[i], my parameter);
-			my y[i] = modelY + NUMrandomGauss (0.0, gaussianNoiseStd);
+			double modelY = my f_evaluate (me.peek(), my x[i], my parameter);
+			my y[i] = modelY + NUMrandomGauss (0, gaussianNoiseStd);
 			my sigmaY[i] = NUMundefined;
 		}
 		my useSigmaY = DataModeler_DATA_WEIGH_EQUAL;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No simple DataModeler created.");
 	}
@@ -787,7 +787,7 @@ void DataModeler_fit (DataModeler me)
 		// For function evaluation with only the FIXED parameters
 
 		for (long ipar = 1; ipar <= my numberOfParameters; ipar++) {
-			parameter[ipar] = my parameterStatus[ipar] == DataModeler_PARAMETER_FIXED ? my parameter[ipar] : 0.0;
+			parameter[ipar] = my parameterStatus[ipar] == DataModeler_PARAMETER_FIXED ? my parameter[ipar] : 0;
 		}
 
 		// estimate sigma if we weigh all datapoint equally. 
@@ -824,11 +824,11 @@ void DataModeler_fit (DataModeler me)
 		if (! NUMfpp) {
 			NUMmachar ();
 		}
-		SVD_zeroSmallSingularValues (thee.get(), my tolerance > 0.0 ? my tolerance : numberOfDataPoints * NUMfpp -> eps);
-		SVD_solve (thee.get(), b.peek(), parameter.peek()); // re-use parameter
+		SVD_zeroSmallSingularValues (thee.peek(), my tolerance > 0 ? my tolerance : numberOfDataPoints * NUMfpp -> eps);
+		SVD_solve (thee.peek(), b.peek(), parameter.peek()); // re-use parameter
 
 		// Put the calculated parameters at the correct position in 'my p'
-		Covariance cov = my parameterCovariances.get();
+		Covariance cov = my parameterCovariances;
 		long ipar = 0;
 		for (long j = 1; j <= my numberOfParameters; j++) {
 			if (my parameterStatus[j] != DataModeler_PARAMETER_FIXED) {
@@ -840,18 +840,17 @@ void DataModeler_fit (DataModeler me)
 		// estimate covariances between parameters
 		if (numberOfParameters < my numberOfParameters) {
 			autoNUMmatrix<double> covtmp (1, numberOfParameters, 1, numberOfParameters);
-			SVD_getSquared (thee.get(), covtmp.peek(), true);
+			SVD_getSquared (thee.peek(), covtmp.peek(), true);
 			// Set fixed parameters variances and covariances to zero.
 			for (long i = 1; i <= my numberOfParameters; i++) {
 				for (long j = i; j <= my numberOfParameters; j++) {
-					cov -> data[i][j] = cov -> data[j][i] = 0.0;
+					cov -> data[i][j] = cov -> data[j][i] = 0;
 				}
 			}
-			ipar = 0;
+			long ipar = 0, jpar;
 			for (long i = 1; i <= my numberOfParameters; i++) {
 				if (my parameterStatus[i] != DataModeler_PARAMETER_FIXED) {
-					long jpar = 0;
-					ipar++;
+					jpar = 0; ipar++;
 					for (long j = 1; j <= my numberOfParameters; j++) {
 						if (my parameterStatus[j] != DataModeler_PARAMETER_FIXED) {
 							jpar++;
@@ -861,7 +860,7 @@ void DataModeler_fit (DataModeler me)
 				}
 			}
 		} else {
-			SVD_getSquared (thee.get(), cov -> data, true);
+			SVD_getSquared (thee.peek(), cov -> data, true);
 		}
 	} catch (MelderError) {
 		Melder_throw (U"DataModeler no fit.");
@@ -875,16 +874,16 @@ void DataModeler_setDataWeighing (DataModeler me, int useSigmaY) {
 	}
 }
 
-autoCovariance DataModeler_to_Covariance_parameters (DataModeler me) {
+Covariance DataModeler_to_Covariance_parameters (DataModeler me) {
 	try {
-		autoCovariance cov = Data_copy (my parameterCovariances.get());
-		return cov;
+		autoCovariance cov = (Covariance) Data_copy (my parameterCovariances);
+		return cov.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Covariance not created.");
 	}
 }
 
-autoDataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long xcolumn, long ycolumn, long scolumn, long numberOfParameters, int type) {
+DataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long xcolumn, long ycolumn, long scolumn, long numberOfParameters, int type) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, xcolumn);
 		Table_checkSpecifiedColumnNumberWithinRange (me, ycolumn);
@@ -892,7 +891,7 @@ autoDataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long x
 		if (useSigmaY) {
 			Table_checkSpecifiedColumnNumberWithinRange (me, scolumn);
 		}
-		long numberOfRows = my rows.size, numberOfData = 0;
+		long numberOfRows = my rows -> size, numberOfData = 0;
 		autoNUMvector<double> x (1, numberOfRows), y (1, numberOfRows), sy (1, numberOfRows);
 		for (long i = 1; i <= numberOfRows; i++) {
 			double val = Table_getNumericValue_Assert (me, i, xcolumn);
@@ -941,9 +940,9 @@ autoDataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long x
 		if (validData < numberOfParameters) {
 			Melder_throw (U"The number of parameters must not exceed the number of data points.");
 		}
-		DataModeler_setDataWeighing (thee.get(), DataModeler_DATA_WEIGH_SIGMA);
-		DataModeler_fit (thee.get());
-		return thee;
+		DataModeler_setDataWeighing (thee.peek(), DataModeler_DATA_WEIGH_SIGMA);
+		DataModeler_fit (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Datamodeler not created from Table.");
 	}
@@ -957,8 +956,8 @@ void structFormantModeler :: v_info () {
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
 	MelderInfo_writeLine (U"   Total duration: ", xmax - xmin, U" seconds");
-	for (long iformant = 1; iformant <= trackmodelers.size; iformant ++) {
-		DataModeler ffi = trackmodelers.at [iformant];
+	for (long iformant = 1; iformant <= trackmodelers -> size; iformant++) {
+		DataModeler ffi = (DataModeler) trackmodelers -> item[iformant];
 		MelderInfo_writeLine (U"Formant ", iformant);
 		ffi -> v_info();
 	}
@@ -966,7 +965,7 @@ void structFormantModeler :: v_info () {
 
 double DataModeler_getResidualSumOfSquares (DataModeler me, long *numberOfDataPoints) {
 	long n = 0;
-	double rss = 0.0;
+	double rss = 0;
 	for (long i = 1; i <= my numberOfDataPoints; i++) {
 		if (my dataPointStatus[i] != DataModeler_DATA_INVALID) {
 				++n;
@@ -990,7 +989,7 @@ double DataModeler_estimateSigmaY (DataModeler me) {
 			}
 		}
 		double variance;
-		NUMvector_avevar (y.peek(), numberOfDataPoints, nullptr, &variance);
+		NUMvector_avevar (y.peek(), numberOfDataPoints, NULL, &variance);
 		double sigma = NUMdefined (variance) ? sqrt (variance / (numberOfDataPoints - 1)) : NUMundefined;
 		return sigma;
 	} catch (MelderError) {
@@ -1000,8 +999,8 @@ double DataModeler_estimateSigmaY (DataModeler me) {
 
 double FormantModeler_getStandardDeviation (FormantModeler me, long iformant) {
 	double sigma = NUMundefined;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		sigma = DataModeler_estimateSigmaY (ff);
 	}
 	return sigma;
@@ -1009,40 +1008,40 @@ double FormantModeler_getStandardDeviation (FormantModeler me, long iformant) {
 
 double FormantModeler_getDataPointValue (FormantModeler me, long iformant, long index) {
 	double value = NUMundefined;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		value = DataModeler_getDataPointValue (ff, index);
 	}
 	return value;
 }
 
 void FormantModeler_setDataPointValue (FormantModeler me, long iformant, long index, double value) {
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
  		DataModeler_setDataPointValue (ff, index, value);
 	}
 }
 
 double FormantModeler_getDataPointSigma (FormantModeler me, long iformant, long index) {
 	double sigma = NUMundefined;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = (DataModeler) my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		sigma = DataModeler_getDataPointSigma (ff, index);
 	}
 	return sigma;
 }
 
 void FormantModeler_setDataPointSigma (FormantModeler me, long iformant, long index, double sigma) {
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
  		DataModeler_setDataPointSigma (ff, index, sigma);
 	}
 }
 
 int FormantModeler_getDataPointStatus (FormantModeler me, long iformant, long index) {
 	int value = DataModeler_DATA_INVALID;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		value = DataModeler_getDataPointStatus (ff, index);
 	}
 	return value;
@@ -1050,45 +1049,44 @@ int FormantModeler_getDataPointStatus (FormantModeler me, long iformant, long in
 
 void FormantModeler_setDataPointStatus (FormantModeler me, long iformant, long index, int status)
 {
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setDataPointStatus (ff, index, status);
 	}
 }
 
-static void FormantModeler_setDataPointValueAndStatus (FormantModeler me, long iformant, long index, double value, int dataStatus)
+void FormantModeler_setDataPointValueAndStatus (FormantModeler me, long iformant, long index, double value, int dataStatus)
 {
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setDataPointValueAndStatus (ff, index, value, dataStatus);
 	}
 }
 
 void FormantModeler_setParameterValueFixed (FormantModeler me, long iformant, long index, double value) {
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ffi = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setParameterValueFixed (ffi, index, value);
 	}
 }
 
 void FormantModeler_setParametersFree (FormantModeler me, long fromFormant, long toFormant, long fromIndex, long toIndex) {
-	long numberOfFormants = my trackmodelers.size;
+	long numberOfFormants = my trackmodelers -> size;
 	if (toFormant < fromFormant || (fromFormant == toFormant && fromFormant == 0)) {
-		fromFormant = 1;
-		toFormant = numberOfFormants;
+		fromFormant = 1; toFormant= numberOfFormants;
 	}
 	if (! (toFormant >= 1 && toFormant <= numberOfFormants && fromFormant >= 1 && fromFormant <= numberOfFormants &&
 		fromFormant <= toFormant)) {
 		Melder_throw (U"Formant number(s) must be in the interval [1, ", numberOfFormants, U"].");
 	}
-	for (long iformant = fromFormant; iformant <= toFormant; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
+	for (long iformant = fromFormant; iformant <= toFormant; iformant++) {
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setParametersFree (ffi, fromIndex, toIndex);
 	}
 }
 
 void FormantModeler_setDataWeighing (FormantModeler me, long fromFormant, long toFormant, int useSigmaY) {
-	long numberOfFormants = my trackmodelers.size;
+	long numberOfFormants = my trackmodelers -> size;
 	if (toFormant < fromFormant || (fromFormant == toFormant && fromFormant == 0)) {
 		fromFormant = 1; toFormant= numberOfFormants;
 	}
@@ -1097,55 +1095,53 @@ void FormantModeler_setDataWeighing (FormantModeler me, long fromFormant, long t
 		Melder_throw (U"Formant number(s) must be in the interval [1, ", numberOfFormants, U"].");
 	}
 	for (long iformant = fromFormant; iformant <= toFormant; iformant++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setDataWeighing (ffi, useSigmaY);
 	}
 }
 
 void FormantModeler_fit (FormantModeler me) {
-	for (long iformant = 1; iformant <= my trackmodelers.size; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
+	for (long iformant = 1; iformant <= my trackmodelers -> size; iformant++) {
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_fit (ffi);
 	}
 }
 
 void FormantModeler_drawBasisFunction (FormantModeler me, Graphics g, double tmin, double tmax, double fmin, double fmax,
- 	long iformant, long iterm, bool scaled, long numberOfPoints, bool garnish)
-{
+ 	long iformant, long iterm, bool scaled, long numberOfPoints, int garnish) {
 	if (tmax <= tmin) {
 		tmin = my xmin; tmax = my xmax; 
 	}
-	if (iformant < 1 || iformant > my trackmodelers.size) {
+	if (iformant < 1 || iformant > my trackmodelers -> size) {
 		return;
 	}
 	Graphics_setInner (g);
-	DataModeler ffi = my trackmodelers.at [iformant];
+	DataModeler ffi =  (DataModeler) my trackmodelers -> item[iformant];
 	DataModeler_drawBasisFunction_inside (ffi, g, tmin, tmax, fmin, fmax, iterm, scaled, numberOfPoints);
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_inqWindow (g, &tmin, &tmax, &fmin, &fmax);
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, (scaled ? U"Frequency (Hz)" : U"Amplitude"));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_markLeft (g, fmin, true, true, false, U"");
-		Graphics_markLeft (g, fmax, true, true, false, U"");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, (scaled ? U"Frequency (Hz)" : U"Amplitude"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_markLeft (g, fmin, 1, 1, 0, U"");
+		Graphics_markLeft (g, fmax, 1, 1, 0, U"");
 	}
 }
 
 static long FormantModeler_drawingSpecifiers_x (FormantModeler me, double *xmin, double *xmax, long *ixmin, long *ixmax) {
-	Melder_assert (my trackmodelers.size > 0);
-	DataModeler fm = my trackmodelers.at [1];
+	DataModeler fm = (DataModeler) my trackmodelers -> item[1];
 	return DataModeler_drawingSpecifiers_x (fm, xmin, xmax, ixmin, ixmax);
 }
 
-static void FormantModeler_getCumulativeChiScores (FormantModeler me, int useSigmaY, double chisq[]) {
+void FormantModeler_getCumulativeChiScores (FormantModeler me, int useSigmaY, double chisq[]) {
 	try {
 		long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
-		long numberOfFormants = my trackmodelers.size;
+		long numberOfFormants = my trackmodelers -> size;
 		autoNUMvector<double> zscores (1, numberOfDataPoints);
-		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-			DataModeler fm = my trackmodelers.at [iformant];
+		for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
+			DataModeler fm = (DataModeler) my trackmodelers -> item[iformant];
 			DataModeler_getZScores (fm, useSigmaY, zscores.peek());
 			DataModeler_getChisqScoresFromZScores (fm, zscores.peek(), true, zscores.peek()); // undefined -> average
 			for (long i = 1; i <= numberOfDataPoints; i++) {
@@ -1157,62 +1153,8 @@ static void FormantModeler_getCumulativeChiScores (FormantModeler me, int useSig
 	}
 }
 
-static void FormantModeler_getVariancesBetweenTrackAndEstimatedTrack (FormantModeler me, long iformant, long estimatedFormant, double var[]) {
-	long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
-	long numberOfFormants = my trackmodelers.size;
-	
-	if (iformant < 1 || iformant > numberOfFormants || estimatedFormant < 1 || estimatedFormant > numberOfFormants) {
-		return;
-	}
-	DataModeler fi = my trackmodelers.at [iformant];
-	DataModeler fe = my trackmodelers.at [estimatedFormant];
-	for (long i = 1; i <= numberOfDataPoints; i ++) {
-		var[i] = NUMundefined;
-		if (fi -> dataPointStatus[i] != DataModeler_DATA_INVALID) {
-			double ye = fe -> f_evaluate (fe, fe -> x[i], fe -> parameter);
-			double diff = ye - fi -> y[i];
-			var[i] = diff * diff;
-		}
-	}
-}
-
-static void FormantModeler_getSumOfVariancesBetweenShiftedAndEstimatedTracks (FormantModeler me, int shiftDirection, long *fromFormant, long *toFormant, double var[]) {
-	try {
-		long numberOfFormants = my trackmodelers.size;
-		if (*fromFormant < 1 || *fromFormant > numberOfFormants || *toFormant < 1 || *toFormant > numberOfFormants || *toFormant < *fromFormant) {
-			*toFormant = 1; *fromFormant = numberOfFormants;
-		}
-
-		long formantTrack = *fromFormant, estimatedFormantTrack = *fromFormant; // FormantModeler_NOSHIFT_TRACKS
-		if (shiftDirection == FormantModeler_DOWNSHIFT_TRACKS) {
-			estimatedFormantTrack = *fromFormant;
-			formantTrack = *fromFormant + 1;
-			*fromFormant = *fromFormant == 1 ? 2 : *fromFormant;
-		} else if (shiftDirection == FormantModeler_UPSHIFT_TRACKS) {
-			formantTrack = *fromFormant;
-			estimatedFormantTrack = *fromFormant + 1;
-			*toFormant = *toFormant == numberOfFormants ? numberOfFormants - 1 : *toFormant;
-		}
-		long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
-		autoNUMvector<double> vari (1, numberOfDataPoints);
-		for (long iformant = *fromFormant; iformant <= *toFormant; iformant++) {
-			FormantModeler_getVariancesBetweenTrackAndEstimatedTrack (me, formantTrack, estimatedFormantTrack, vari.peek());
-			for (long i = 1; i <= numberOfDataPoints; i ++) {
-				if (NUMdefined (vari [i])) {
-					var [i] += vari [i];
-				}
-			}
-			formantTrack ++;
-			estimatedFormantTrack ++;
-		}
-	} catch (MelderError) {
-		Melder_throw (me, U" cannot get variances.");
-	}
-}
-
 void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g, double xmin, double xmax,
-	double ymin, double ymax, int shiftDirection, long fromFormant, long toFormant, bool garnish)
-{
+	double ymin, double ymax, int shiftDirection, long fromFormant, long toFormant, int garnish) {
 	try {
 		long ixmin, ixmax;
 		if (FormantModeler_drawingSpecifiers_x (me, &xmin, &xmax, &ixmin, &ixmax) < 1) {
@@ -1223,9 +1165,9 @@ void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g,
 		autoNUMvector<double> varShifted (1, numberOfDataPoints);
 		FormantModeler_getSumOfVariancesBetweenShiftedAndEstimatedTracks (me, shiftDirection, &fromFormant, &toFormant, varShifted.peek());
 		FormantModeler_getSumOfVariancesBetweenShiftedAndEstimatedTracks (me, 0, &fromFormant, &toFormant, var.peek());
-		for (long i = ixmin + 1; i <= ixmax; i ++) {
-			if (NUMdefined (varShifted [i]) && NUMdefined (var [i])) {
-				var [i] -= varShifted [i];
+		for (long i = ixmin + 1; i <= ixmax; i++) {
+			if (NUMdefined (varShifted[i]) && NUMdefined (var[i])) {
+				var[i] -= varShifted[i];
 			}
 		}
 		if (ymax <= ymin) {
@@ -1233,23 +1175,22 @@ void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g,
 		}
 		Graphics_setInner (g);
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
-		DataModeler thee = my trackmodelers.at [1];
-		while (! NUMdefined (var [ixmin]) && ixmin <= ixmax) {
+		DataModeler thee = (DataModeler) my trackmodelers -> item[1];
+		while (! NUMdefined (var[ixmin]) && ixmin <= ixmax) {
 			ixmin++;
 		}
-		double xp = thy x [ixmin], yp = var [ixmin];
-		for (long i = ixmin + 1; i <= ixmax; i ++) {
-			if (NUMdefined (var [i])) {
-				Graphics_line (g, xp, yp, thy x [i], var [i]);
-				xp = thy x [i];
-				yp = var [i];
+		double xp = thy x[ixmin], yp = var[ixmin];
+		for (long i = ixmin + 1; i <= ixmax; i++) {
+			if (NUMdefined (var[i])) {
+				Graphics_line (g, xp, yp, thy x[i], var[i]);
+				xp = thy x[i]; yp = var[i];
 			}
 		}
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksBottom (g, 2, true, true, false);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 
 	} catch (MelderError) {
@@ -1261,7 +1202,7 @@ void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g,
 void FormantModeler_drawCumulativeChiScores (FormantModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax, int useSigmaY, int garnish) {
 	try {
 		long ixmin, ixmax;
-		if (FormantModeler_drawingSpecifiers_x (me, & xmin, & xmax, & ixmin, & ixmax) < 1) {
+		if (FormantModeler_drawingSpecifiers_x (me, &xmin, &xmax, &ixmin, &ixmax) < 1) {
 			Melder_throw (me, U" not enough data points in drawing range.");
 		}
 		long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
@@ -1272,15 +1213,15 @@ void FormantModeler_drawCumulativeChiScores (FormantModeler me, Graphics g, doub
 		}
 		Graphics_setInner (g);
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
-		DataModeler thee = my trackmodelers.at [1];
-		for (long i = ixmin + 1; i <= ixmax; i ++) {
-			Graphics_line (g, thy x [i - 1], chisq [i - 1], thy x [i], chisq [i]);
+		DataModeler thee = (DataModeler) my trackmodelers -> item[1];
+		for (long i = ixmin + 1; i <= ixmax; i++) {
+			Graphics_line (g, thy x[i-1], chisq[i-1], thy x[i], chisq[i]);
 		}
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksBottom (g, 2, true, true, false);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		//
@@ -1291,7 +1232,7 @@ void FormantModeler_drawOutliersMarked (FormantModeler me, Graphics g, double tm
 	if (tmax <= tmin) { 
 		tmin = my xmin; tmax = my xmax; 
 	}
-	long maxTrack = my trackmodelers.size;
+	long maxTrack = my trackmodelers -> size;
 	if (toTrack == 0 && fromTrack == 0) {
 		fromTrack = 1; toTrack = maxTrack;
 	}
@@ -1301,34 +1242,34 @@ void FormantModeler_drawOutliersMarked (FormantModeler me, Graphics g, double tm
 	}
 	Graphics_setInner (g);
 	int currectFontSize = Graphics_inqFontSize (g);
-	for (long iformant = fromTrack; iformant <= toTrack; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
-		double xOffset_mm = ( iformant % 2 == 1 ? horizontalOffset_mm : -horizontalOffset_mm );
+	for (long iformant = fromTrack; iformant <= toTrack; iformant++) {
+		DataModeler ffi =  (DataModeler) my trackmodelers -> item[iformant];
+		double xOffset_mm = (iformant % 2 == 1) ? horizontalOffset_mm : -horizontalOffset_mm;
 		DataModeler_drawOutliersMarked_inside (ffi, g, tmin, tmax, 0, fmax, numberOfSigmas, useSigmaY, mark, marksFontSize, xOffset_mm);
 	}
 	Graphics_setFontSize (g, currectFontSize);
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Formant frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
 	}
 }
 
-void FormantModeler_normalProbabilityPlot (FormantModeler me, Graphics g, long iformant, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, bool garnish) {
-	if (iformant > 0 || iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+void FormantModeler_normalProbabilityPlot (FormantModeler me, Graphics g, long iformant, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, int garnish) {
+	if (iformant > 0 || iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers ->item[iformant];
 		DataModeler_normalProbabilityPlot (ff, g, useSigmaY, numberOfQuantiles, numberOfSigmas, labelSize, label, garnish);
 	}
 }
 
-static void FormantModeler_drawTracks_inside (FormantModeler me, Graphics g, double xmin, double xmax, double fmax,
+void FormantModeler_drawTracks_inside (FormantModeler me, Graphics g, double xmin, double xmax, double fmax,
 	long fromTrack, long toTrack, int estimated, long numberOfParameters, double horizontalOffset_mm) {
-	for (long iformant = fromTrack; iformant <= toTrack; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
-		double xOffset_mm = ( iformant % 2 == 1 ? horizontalOffset_mm : -horizontalOffset_mm );
+	for (long iformant = fromTrack; iformant <= toTrack; iformant++) {
+		DataModeler ffi =  (DataModeler) my trackmodelers -> item[iformant];
+		double xOffset_mm = (iformant % 2 == 1) ? horizontalOffset_mm : -horizontalOffset_mm;
 		DataModeler_drawTrack_inside (ffi, g, xmin, xmax, 0, fmax, estimated, numberOfParameters, xOffset_mm);
 	}
 }
@@ -1338,7 +1279,7 @@ void FormantModeler_drawTracks (FormantModeler me, Graphics g, double tmin, doub
 	if (tmax <= tmin) { 
 		tmin = my xmin; tmax = my xmax; 
 	}
-	long maxTrack = my trackmodelers.size;
+	long maxTrack = my trackmodelers -> size;
 	if (toTrack == 0 && fromTrack == 0) {
 		fromTrack = 1; toTrack = maxTrack;
 	}
@@ -1351,18 +1292,18 @@ void FormantModeler_drawTracks (FormantModeler me, Graphics g, double tmin, doub
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Formant frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
 	}
 }
 
-static void FormantModeler_speckle_inside (FormantModeler me, Graphics g, double xmin, double xmax, double fmax,
+void FormantModeler_speckle_inside (FormantModeler me, Graphics g, double xmin, double xmax, double fmax,
 	long fromTrack, long toTrack, int estimated, long numberOfParameters, int errorBars, double barWidth_mm, double horizontalOffset_mm) {
-	for (long iformant = fromTrack; iformant <= toTrack; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
-		double xOffset_mm = ( iformant % 2 == 1 ? horizontalOffset_mm : -horizontalOffset_mm );
+	for (long iformant = fromTrack; iformant <= toTrack; iformant++) {
+		DataModeler ffi =  (DataModeler) my trackmodelers -> item[iformant];
+		double xOffset_mm = (iformant % 2 == 1) ? horizontalOffset_mm : -horizontalOffset_mm;
 		DataModeler_speckle_inside (ffi, g, xmin, xmax, 0, fmax, estimated, numberOfParameters, errorBars, barWidth_mm, xOffset_mm);
 	}
 }
@@ -1372,7 +1313,7 @@ void FormantModeler_speckle (FormantModeler me, Graphics g, double tmin, double
 	if (tmax <= tmin) { 
 		tmin = my xmin; tmax = my xmax; 
 	}
-	long maxTrack = my trackmodelers.size;
+	long maxTrack = my trackmodelers -> size;
 	if (toTrack == 0 && fromTrack == 0) {
 		fromTrack = 1; toTrack = maxTrack;
 	}
@@ -1385,22 +1326,23 @@ void FormantModeler_speckle (FormantModeler me, Graphics g, double tmin, double
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Formant frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
 	}
 }
 
-autoFormantModeler FormantModeler_create (double tmin, double tmax, long numberOfFormants, long numberOfDataPoints, long numberOfParameters) {
+FormantModeler FormantModeler_create (double tmin, double tmax, long numberOfFormants, long numberOfDataPoints, long numberOfParameters) {
 	try {
 		autoFormantModeler me = Thing_new (FormantModeler);
 		my xmin = tmin; my xmax = tmax;
-		for (long itrack = 1; itrack <= numberOfFormants; itrack ++) {
+		my trackmodelers = Ordered_create ();
+		for (long itrack = 1; itrack <= numberOfFormants; itrack++) {
 			autoDataModeler ff = DataModeler_create (tmin, tmax, numberOfDataPoints, numberOfParameters,  DataModeler_TYPE_LEGENDRE);
-			my trackmodelers. addItem_move (ff.move());
+			Collection_addItem (my trackmodelers, ff.transfer());
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantModeler not created.");
 	}
@@ -1408,40 +1350,51 @@ autoFormantModeler FormantModeler_create (double tmin, double tmax, long numberO
 
 double FormantModeler_getModelValueAtTime (FormantModeler me, long iformant, double time) {
 	double f = NUMundefined;
-	if (iformant >= 1 && iformant <= my trackmodelers.size) {
-		DataModeler thee = my trackmodelers.at [iformant];
-		f = DataModeler_getModelValueAtX (thee, time);
+	if (iformant >= 1 && iformant <= my trackmodelers -> size) {
+		DataModeler thee =  (DataModeler) my trackmodelers -> item[iformant];
+		f =  DataModeler_getModelValueAtX (thee, time);
 	}
 	return f;
 }
 
 double FormantModeler_getModelValueAtIndex (FormantModeler me, long iformant, long index) {
 	double f = NUMundefined;
-	if (iformant >= 1 && iformant <= my trackmodelers.size) {
-		DataModeler thee = my trackmodelers.at [iformant];
-		f = DataModeler_getModelValueAtIndex (thee, index);
+	if (iformant >= 1 && iformant <= my trackmodelers -> size) {
+		DataModeler thee =  (DataModeler) my trackmodelers -> item[iformant];
+		f =  DataModeler_getModelValueAtIndex (thee, index);
 	}
 	return f;
 }
 
 double FormantModeler_getWeightedMean (FormantModeler me, long iformant) {
 	double f = NUMundefined;
-	if (iformant >= 1 && iformant <= my trackmodelers.size) {
-		DataModeler thee = my trackmodelers.at [iformant];
-		f = DataModeler_getWeightedMean (thee);
+	if (iformant >= 1 && iformant <= my trackmodelers -> size) {
+		DataModeler thee =  (DataModeler) my trackmodelers -> item[iformant];
+		f =  DataModeler_getWeightedMean (thee);
 	}
 	return f;
 	
 }
 
+long FormantModeler_getMaximumNumberOfParameters (FormantModeler me) {
+	long maxnum = 1;
+	for (long i = 1; i <= my trackmodelers -> size; i++) {
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[i];
+		if (ffi -> numberOfParameters > maxnum) {
+			maxnum = ffi -> numberOfParameters;
+		}
+	}
+	return maxnum;
+}
+
 long FormantModeler_getNumberOfTracks (FormantModeler me) {
-	return my trackmodelers.size;
+	return my trackmodelers -> size;
 }
 
 long FormantModeler_getNumberOfParameters (FormantModeler me, long iformant) {
 	long numberOfParameters = 0;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		numberOfParameters = ff -> numberOfParameters;
 	}
 	return numberOfParameters;
@@ -1449,8 +1402,8 @@ long FormantModeler_getNumberOfParameters (FormantModeler me, long iformant) {
 
 long FormantModeler_getNumberOfFixedParameters (FormantModeler me, long iformant) {
 	long numberOfParameters = 0;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		numberOfParameters = ff -> numberOfParameters;
 		numberOfParameters -= DataModeler_getNumberOfFreeParameters (ff);
 	}
@@ -1460,8 +1413,8 @@ long FormantModeler_getNumberOfFixedParameters (FormantModeler me, long iformant
 
 long FormantModeler_getNumberOfInvalidDataPoints (FormantModeler me, long iformant) {
 	long numberOfInvalidDataPoints = 0;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		numberOfInvalidDataPoints = DataModeler_getNumberOfInvalidDataPoints (ff);
 	}
 	return numberOfInvalidDataPoints;
@@ -1469,8 +1422,8 @@ long FormantModeler_getNumberOfInvalidDataPoints (FormantModeler me, long iforma
 
 double FormantModeler_getParameterValue (FormantModeler me, long iformant, long iparameter) {
 	double value = NUMundefined;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		value = DataModeler_getParameterValue (ff, iparameter);
 	}
 	return value;
@@ -1478,8 +1431,8 @@ double FormantModeler_getParameterValue (FormantModeler me, long iformant, long
 
 int FormantModeler_getParameterStatus (FormantModeler me, long iformant, long index) {
 	int status = DataModeler_PARAMETER_UNDEFINED;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		status = DataModeler_getParameterStatus (ff, index);
 	}
 	return status;
@@ -1487,17 +1440,17 @@ int FormantModeler_getParameterStatus (FormantModeler me, long iformant, long in
 
 double FormantModeler_getParameterStandardDeviation ( FormantModeler me, long iformant, long index) {
 	double stdev = NUMundefined;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		stdev = DataModeler_getParameterStandardDeviation (ff, index);
 	}
 	return stdev;
 }
 
 double FormantModeler_getDegreesOfFreedom (FormantModeler me, long iformant) {
-	double dof = 0.0;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
+	double dof = 0;
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 		dof = DataModeler_getDegreesOfFreedom (ff);
 	}
 	return dof;
@@ -1505,79 +1458,78 @@ double FormantModeler_getDegreesOfFreedom (FormantModeler me, long iformant) {
 
 double FormantModeler_getVarianceOfParameters (FormantModeler me, long fromFormant, long toFormant, long fromIndex, long toIndex, long *numberOfFreeParameters) {
 	double variance = NUMundefined;
-	long numberOfFormants = my trackmodelers.size, numberOfParameters = 0, nofp;
+	long numberOfFormants = my trackmodelers -> size, numberOfParameters = 0, nofp;
 	if (toFormant < fromFormant || (toFormant == 0 && fromFormant == 0)) {
 		fromFormant = 1; toFormant = numberOfFormants;
 	}
 	if (fromFormant <= toFormant && fromFormant > 0 && toFormant <= numberOfFormants) {
-		variance = 0.0;
-		for (long iformant = fromFormant; iformant <= toFormant; iformant ++) {
-			DataModeler ff = my trackmodelers.at [iformant];
+		variance = 0;
+		for (long iformant = fromFormant; iformant <= toFormant; iformant++) {
+			DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
 			variance += DataModeler_getVarianceOfParameters (ff, fromIndex, toIndex, &nofp);
 			numberOfParameters += nofp;
 		}
 	}
-	if (numberOfFreeParameters) {
+	if (numberOfFreeParameters != NULL) {
 		*numberOfFreeParameters = numberOfParameters;
 	}
 	return variance;
 }
 
 long FormantModeler_getNumberOfDataPoints (FormantModeler me) {
-	Melder_assert (my trackmodelers.size > 0);
-	DataModeler thee = my trackmodelers.at [1];
+	DataModeler thee = (DataModeler) my trackmodelers -> item[1];
 	// all tracks have the same number of data points
 	return thy numberOfDataPoints;
 }
 
-autoTable FormantModeler_to_Table_zscores (FormantModeler me, int useSigmaY) {
+Table FormantModeler_to_Table_zscores (FormantModeler me, int useSigmaY) {
 	try {
-		long icolt = 1, numberOfFormants = my trackmodelers.size;
+		long icolt = 1, numberOfFormants = my trackmodelers -> size;
 		long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
 		autoNUMvector<double> zscores (1, numberOfDataPoints);
 		autoTable ztable = Table_createWithoutColumnNames (numberOfDataPoints, numberOfFormants + 1);
-		Table_setColumnLabel (ztable.get(), icolt, U"time");
-		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
+		Table_setColumnLabel (ztable.peek(), icolt, U"time");
+		for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
 			long icolz = iformant + 1;
-			Table_setColumnLabel (ztable.get(), icolz, Melder_cat (U"z", iformant));
-			DataModeler ffi = my trackmodelers.at [iformant];
+			Table_setColumnLabel (ztable.peek(), icolz, Melder_cat (U"z", iformant));
+			DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 			if (iformant == 1) {
-				for (long i = 1; i <= numberOfDataPoints; i ++) { // only once all tracks have same x-values
-				Table_setNumericValue (ztable.get(), i, icolt, ffi -> x [i]);
+				for (long i = 1; i <= numberOfDataPoints; i++) { // only once all tracks have same x-values
+				Table_setNumericValue (ztable.peek(), i, icolt, ffi -> x[i]);
 				}
 			}
 			DataModeler_getZScores (ffi, useSigmaY, zscores.peek());
-			for (long i = 1; i <= numberOfDataPoints; i ++) {
-				Table_setNumericValue (ztable.get(), i, icolz, zscores[i]);
+			for (long i = 1; i <= numberOfDataPoints; i++) {
+				Table_setNumericValue (ztable.peek(), i, icolz, zscores[i]);
 			}
 		}
-		return ztable;
+		return ztable.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created.");
 	}	
 }
 
-autoDataModeler FormantModeler_extractDataModeler (FormantModeler me, long iformant) {
+DataModeler FormantModeler_extractDataModeler (FormantModeler me, long iformant) {
 	try {
-		if (iformant < 1 || iformant > my trackmodelers.size) {
+		if (! (iformant > 0 && iformant <= my trackmodelers -> size)) {
 			Melder_throw (U"");
 		}
-		DataModeler ff = my trackmodelers.at [iformant];
-		autoDataModeler thee = Data_copy (ff);
-		return thee;
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
+		autoDataModeler thee = (DataModeler) Data_copy (ff);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DataModeler not created.");
 	}	
 }
 
-autoCovariance FormantModeler_to_Covariance_parameters (FormantModeler me, long iformant) {
+Covariance FormantModeler_to_Covariance_parameters (FormantModeler me, long iformant) {
 	try {
-		if (iformant < 1 || iformant > my trackmodelers.size) {
-			Melder_throw (U"The formant should be greater than zero and smaller than or equal to ", my trackmodelers.size);
+		if (iformant < 1 || iformant > my trackmodelers -> size) {
+			Melder_throw (U"The formant should be greater than zero and smaller than or equal to ", my trackmodelers -> size);
 		}
-		DataModeler thee = my trackmodelers.at [iformant];
-		autoCovariance cov = Data_copy (thy parameterCovariances.get());
-		return cov;
+		DataModeler thee = (DataModeler) my trackmodelers -> item[iformant];
+		autoCovariance cov = (Covariance) Data_copy (thy parameterCovariances);
+		return cov.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Covariance not created.");
 	}
@@ -1585,19 +1537,18 @@ autoCovariance FormantModeler_to_Covariance_parameters (FormantModeler me, long
 }
 
 void FormantModeler_setTolerance (FormantModeler me, double tolerance) {
-	for (long iformant = 1; iformant <= my trackmodelers.size; iformant ++) {
-		DataModeler ffi = my trackmodelers.at [iformant];
+	for (long iformant = 1; iformant <= my trackmodelers -> size; iformant++) {
+		DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 		DataModeler_setTolerance (ffi, tolerance);
 	}
 }
 
 double FormantModeler_indexToTime (FormantModeler me, long index) {
-	Melder_assert (my trackmodelers.size > 0);
-	DataModeler thee = my trackmodelers.at [1];
+	DataModeler thee = (DataModeler) my trackmodelers -> item[1];
 	return index > 0 && index <= thy numberOfDataPoints ? thy x[index] : NUMundefined;
 }
 
-autoFormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tmax, long numberOfFormants, long numberOfParametersPerTrack, int bandwidthEstimatesSigma) {
+FormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tmax, long numberOfFormants, long numberOfParametersPerTrack, int bandwidthEstimatesSigma) {
 	try {
 		long ifmin, ifmax, posInCollection = 0;
 		if (tmax <= tmin) {
@@ -1608,21 +1559,21 @@ autoFormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tm
 			Melder_throw (U"Not enought data points, extend the selection.");
 		}
 		autoFormantModeler thee = FormantModeler_create (tmin, tmax, numberOfFormants, numberOfDataPoints, numberOfParametersPerTrack);
-		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-			posInCollection ++;
-			DataModeler ffi = thy trackmodelers.at [posInCollection];
+		for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
+			posInCollection++;
+			DataModeler ffi = (DataModeler) thy trackmodelers -> item[posInCollection];
 			long idata = 0, validData = 0;
-			for (long iframe = ifmin; iframe <= ifmax; iframe ++) {
-				Formant_Frame curFrame = & my d_frames [iframe];
-				ffi -> x [++ idata] = Sampled_indexToX (me, iframe);
-				ffi -> dataPointStatus [idata] = DataModeler_DATA_INVALID;
+			for (long iframe = ifmin; iframe <= ifmax; iframe++) {
+				Formant_Frame curFrame = & my d_frames[iframe];
+				ffi -> x[++idata] = Sampled_indexToX (me, iframe);
+				ffi -> dataPointStatus[idata] = DataModeler_DATA_INVALID;
 				if (iformant <= curFrame -> nFormants) {
-					double frequency = curFrame -> formant [iformant]. frequency;
+					double frequency = curFrame -> formant[iformant].frequency;
 					if (NUMdefined (frequency)) {
-						double bw = curFrame -> formant [iformant]. bandwidth;
-						ffi -> y [idata] = curFrame -> formant [iformant]. frequency;
-						ffi -> sigmaY [idata] = bw;
-						ffi -> dataPointStatus [idata] = DataModeler_DATA_VALID;
+						double bw = curFrame -> formant[iformant].bandwidth;
+						ffi -> y[idata] = curFrame -> formant[iformant].frequency;
+						ffi -> sigmaY[idata] = bw;
+						ffi -> dataPointStatus[idata] = DataModeler_DATA_VALID;
 						validData++;
 					}
 				}
@@ -1631,83 +1582,82 @@ autoFormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tm
 			ffi -> numberOfDataPoints = idata;
 			ffi -> tolerance = 1e-5;
 			if (validData < numberOfParametersPerTrack) { // remove don't throw exception
-				thy trackmodelers. removeItem (posInCollection);
-				posInCollection --;
+				Collection_removeItem (thy trackmodelers, posInCollection);
+				posInCollection--;
 			}
 		}
 		if (posInCollection == 0) {
 			Melder_throw (U"Not enought data points in all the formants!");
 		}
-		FormantModeler_fit (thee.get());
-		return thee;
+		FormantModeler_fit (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantModeler not created.");
 	}
 }
 
-autoFormant FormantModeler_to_Formant (FormantModeler me, int useEstimates, int estimateUndefineds) {
+Formant FormantModeler_to_Formant (FormantModeler me, int useEstimates, int estimateUndefineds) {
 	try {
-		long numberOfFormants = my trackmodelers.size;
-		DataModeler ff = my trackmodelers.at [1];
+		long numberOfFormants = my trackmodelers -> size;
+		DataModeler ff = (DataModeler) my trackmodelers -> item[1];
 		long numberOfFrames = ff -> numberOfDataPoints;
-		double t1 = ff -> x [1], dt = ff -> x [2] - t1;
+		double t1 = ff -> x[1], dt = ff -> x[2] -ff -> x[1];
 		autoFormant thee = Formant_create (my xmin, my xmax, numberOfFrames, dt, t1, numberOfFormants);
 		autoNUMvector<double> sigma (1, numberOfFormants);
 		if (useEstimates || estimateUndefineds) {
-			for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
+			for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
 				sigma[iformant] = FormantModeler_getStandardDeviation (me, iformant);
 			}
 		}
-		for (long iframe = 1; iframe <= numberOfFrames; iframe ++) {
+		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
 			Formant_Frame thyFrame = & thy d_frames [iframe];
-			thyFrame -> intensity = 1.0; //???
+			thyFrame -> intensity = 1; //???
 			thyFrame -> formant = NUMvector <structFormant_Formant> (1, numberOfFormants);
 			
-			for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-				DataModeler ffi = my trackmodelers.at [iformant];
+			for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
+				DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 				double f = NUMundefined, b = f;
 				if (ffi -> dataPointStatus[iframe] != DataModeler_DATA_INVALID) {
-					f = ( useEstimates ? DataModeler_getModelValueAtX (ffi, ffi -> x [iframe]) : ffi -> y [iframe]);
+					f = useEstimates ? DataModeler_getModelValueAtX (ffi, ffi -> x[iframe]) : ffi -> y[iframe];
 					b = ff -> sigmaY[iframe]; // copy original value
 				} else {
 					if (estimateUndefineds) {
-						f = FormantModeler_getModelValueAtTime (me, iformant, ffi -> x [iframe]);
-						b = sigma [iformant];
+						f = FormantModeler_getModelValueAtTime (me, iformant, ffi -> x[iframe]);
+						b = sigma[iformant];
 					}
 				}
-				thyFrame -> formant [iformant]. frequency = f;
-				thyFrame -> formant [iformant]. bandwidth = b;
+				thyFrame -> formant[iformant].frequency = f;
+				thyFrame -> formant[iformant].bandwidth = b;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cannot create Formant from FormantModeler.");
 	}
 }
 
 double FormantModeler_getChiSquaredQ (FormantModeler me, long fromFormant, long toFormant, int useSigmaY, double *probability, double *ndf) {
-	double chisq = NUMundefined, ndfTotal = 0.0;
+	double chisq = NUMundefined, ndfTotal = 0;
 	if (toFormant < fromFormant || (fromFormant == 0 && toFormant == 0)) {
-		fromFormant = 1; toFormant = my trackmodelers.size;
+		fromFormant = 1; toFormant = my trackmodelers -> size;
 	}
-	if (fromFormant >= 1 && toFormant <= my trackmodelers.size) {
-		chisq = 0.0;
+	if (fromFormant >= 1 && toFormant <= my trackmodelers -> size) {
+		chisq = 0;
 		long numberOfDefined = 0;
-		for (long iformant= fromFormant; iformant <= toFormant; iformant ++) {
-			DataModeler ffi = my trackmodelers.at [iformant];
+		for (long iformant= fromFormant; iformant <= toFormant; iformant++) {
+			DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 			double p, df, chisqi = DataModeler_getChiSquaredQ (ffi, useSigmaY, &p, &df);
 			if (NUMdefined (chisqi)) {
 				chisq += df * chisqi;
-				ndfTotal += df;
-				numberOfDefined ++;
+				ndfTotal += df; numberOfDefined++;
 			}
 		}
 		if (numberOfDefined == toFormant - fromFormant + 1) { // chisq of all tracks defined
 			chisq /= ndfTotal;
-			if (ndf) {
+			if (ndf != NULL) {
 				*ndf = ndfTotal;
 			}
-			if (probability) {
+			if (probability != NULL) {
 				*probability = NUMchiSquareQ (chisq, ndfTotal);
 			}
 		}
@@ -1718,49 +1668,96 @@ double FormantModeler_getChiSquaredQ (FormantModeler me, long fromFormant, long
 double FormantModeler_getCoefficientOfDetermination (FormantModeler me, long fromFormant, long toFormant) {
 	double rSquared = NUMundefined;
 	if (fromFormant == 0 && toFormant == 0) {
-		fromFormant = 1; toFormant = my trackmodelers.size;
+		fromFormant = 1; toFormant = my trackmodelers -> size;
 	}
-	if (fromFormant >= 1 && toFormant <= my trackmodelers.size) {
-		double ssreg = 0.0, sstot = 0.0;
-		for (long iformant= fromFormant; iformant <= toFormant; iformant ++) {
-			DataModeler ffi = my trackmodelers.at [iformant];
-			double ssregi, sstoti;
-			DataModeler_getCoefficientOfDetermination (ffi, & ssregi, & sstoti);
-			sstot += sstoti;
-			ssreg += ssregi;
+	if (fromFormant >= 1 && toFormant <= my trackmodelers -> size) {
+		double ssreg = 0, sstot = 0, ssregi, sstoti;
+		for (long iformant= fromFormant; iformant <= toFormant; iformant++) {
+			DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
+			DataModeler_getCoefficientOfDetermination (ffi, &ssregi, &sstoti);
+			sstot += sstoti; ssreg += ssregi;
 		}
-		rSquared = ( sstot > 0.0 ? ssreg / sstot : 1.0 );
+		rSquared = sstot > 0 ? ssreg / sstot : 1;
 	}
 	return rSquared;
 }
 
-double FormantModeler_getResidualSumOfSquares (FormantModeler me, long iformant, long *p_numberOfDataPoints) {
-	double rss = NUMundefined; long numberOfDataPoints = -1;
-	if (iformant > 0 && iformant <= my trackmodelers.size) {
-		DataModeler ff = my trackmodelers.at [iformant];
-		rss = DataModeler_getResidualSumOfSquares (ff, & numberOfDataPoints);
-	}
-	if (p_numberOfDataPoints) {
-		*p_numberOfDataPoints = numberOfDataPoints;
+double FormantModeler_getResidualSumOfSquares (FormantModeler me, long iformant, long *numberOfDataPoints) {
+	double rss = NUMundefined;
+	if (iformant > 0 && iformant <= my trackmodelers -> size) {
+		DataModeler ff = (DataModeler) my trackmodelers -> item[iformant];
+		rss = DataModeler_getResidualSumOfSquares (ff, numberOfDataPoints);
 	}
 	return rss;
 }
 
 void FormantModeler_setParameterValuesToZero (FormantModeler me, long fromFormant, long toFormant, double numberOfSigmas) {
 	if (fromFormant == 0 && toFormant == 0) {
-		fromFormant = 1; toFormant = my trackmodelers.size;
+		fromFormant = 1; toFormant = my trackmodelers -> size;
 	}
-	if (fromFormant >= 1 && toFormant <= my trackmodelers.size) {
-		for (long iformant= fromFormant; iformant <= toFormant; iformant ++) {
-			DataModeler ffi = my trackmodelers.at [iformant];
+	if (fromFormant >= 1 && toFormant <= my trackmodelers -> size) {
+		for (long iformant= fromFormant; iformant <= toFormant; iformant++) {
+			DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 			DataModeler_setParameterValuesToZero (ffi, numberOfSigmas);
 		}
 	}
 }
 
-autoFormantModeler FormantModeler_processOutliers (FormantModeler me, double numberOfSigmas, int useSigmaY) {
+void FormantModeler_getVariancesBetweenTrackAndEstimatedTrack (FormantModeler me, long iformant, long estimatedFormant, double var[]) {
+	long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
+	long numberOfFormants = my trackmodelers -> size;
+	
+	if (iformant < 1 || iformant > numberOfFormants || estimatedFormant < 1 || estimatedFormant > numberOfFormants) {
+		return;
+	}
+	DataModeler fi = (DataModeler) my trackmodelers -> item[iformant];
+	DataModeler fe = (DataModeler) my trackmodelers -> item[estimatedFormant];
+	for (long i = 1; i <= numberOfDataPoints; i++) {
+		var[i] = NUMundefined;
+		if (fi -> dataPointStatus[i] != DataModeler_DATA_INVALID) {
+			double ye = fe -> f_evaluate (fe, fe -> x[i], fe -> parameter);
+			double diff = ye - fi -> y[i];
+			var[i] = diff * diff;
+		}
+	}
+}
+
+void FormantModeler_getSumOfVariancesBetweenShiftedAndEstimatedTracks (FormantModeler me, int shiftDirection, long *fromFormant, long *toFormant, double var[]) {
 	try {
-		long numberOfFormants = my trackmodelers.size;
+		long numberOfFormants = my trackmodelers -> size;
+		if (*fromFormant < 1 || *fromFormant > numberOfFormants || *toFormant < 1 || *toFormant > numberOfFormants || *toFormant < *fromFormant) {
+			*toFormant = 1; *fromFormant = numberOfFormants;
+		}
+
+		long formantTrack = *fromFormant, estimatedFormantTrack = *fromFormant; // FormantModeler_NOSHIFT_TRACKS
+		if (shiftDirection == FormantModeler_DOWNSHIFT_TRACKS) {
+			estimatedFormantTrack = *fromFormant;
+			formantTrack = *fromFormant + 1;
+			*fromFormant = *fromFormant == 1 ? 2 : *fromFormant;
+		} else if (shiftDirection == FormantModeler_UPSHIFT_TRACKS) {
+			formantTrack = *fromFormant;
+			estimatedFormantTrack = *fromFormant + 1;
+			*toFormant = *toFormant == numberOfFormants ? numberOfFormants - 1 : *toFormant;
+		}
+		long numberOfDataPoints = FormantModeler_getNumberOfDataPoints (me);
+		autoNUMvector<double> vari (1, numberOfDataPoints);
+		for (long iformant = *fromFormant; iformant <= *toFormant; iformant++) {
+			FormantModeler_getVariancesBetweenTrackAndEstimatedTrack (me, formantTrack, estimatedFormantTrack, vari.peek());
+			for (long i = 1; i <= numberOfDataPoints; i++) {
+				if (NUMdefined (vari[i])) {
+					var[i] += vari[i];
+				}
+			}
+			formantTrack++; estimatedFormantTrack++;
+		}
+	} catch (MelderError) {
+		Melder_throw (me, U" cannot get variances.");
+	}
+}
+
+FormantModeler FormantModeler_processOutliers (FormantModeler me, double numberOfSigmas, int useSigmaY) {
+	try {
+		long numberOfFormants = my trackmodelers -> size;
 		if (numberOfFormants < 3) {
 			Melder_throw (U"We need at least three formants to process outliers.");
 		}
@@ -1770,15 +1767,15 @@ autoFormantModeler FormantModeler_processOutliers (FormantModeler me, double num
 		// maybe some of the formants had NUMundefind's.
 
 		// 1. calculate z-scores for each formant and sort them in descending order
-		DataModeler ff = my trackmodelers.at [1];
+		DataModeler ff = (DataModeler) my trackmodelers -> item[1];
 		NUMvector_copyElements<double> (ff -> x, x.peek(), 1, numberOfDataPoints);
-		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-			DataModeler ffi = my trackmodelers.at [iformant];
+		for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
+			DataModeler ffi = (DataModeler) my trackmodelers -> item[iformant];
 			DataModeler_getZScores (ffi, useSigmaY, z[iformant]);
 		}
 		// 2. Do the manipulation in a copy
-		autoFormantModeler thee = Data_copy (me);
-		for (long i = 1; i <= numberOfDataPoints; i ++) {
+		autoFormantModeler thee = (FormantModeler) Data_copy (me);
+		for (long i = 1; i <= numberOfDataPoints; i++) {
 			// First the easy one: first formant missing: F1' = F2; F2' = F3
 			if (NUMdefined (z[1][i]) && NUMdefined (z[1][i]) && NUMdefined (z[3][i])) {
 				if (z[1][i] > numberOfSigmas && z[2][i] > numberOfSigmas && z[3][i] > numberOfSigmas) {
@@ -1787,14 +1784,14 @@ autoFormantModeler FormantModeler_processOutliers (FormantModeler me, double num
 					// try if f2 <- F1 and f3 <- F2 reduces chisq
 					double f2 = FormantModeler_getDataPointValue (me, 1, i); // F1
 					double f3 = FormantModeler_getDataPointValue (me, 2, i); // F2
-					FormantModeler_setDataPointStatus (thee.get(), 1, i, DataModeler_DATA_INVALID);
-					FormantModeler_setDataPointValueAndStatus (thee.get(), 2, i, f2, FormantModeler_UPSHIFT_TRACKS);
-					FormantModeler_setDataPointValueAndStatus (thee.get(), 3, i, f3, FormantModeler_UPSHIFT_TRACKS);
+					FormantModeler_setDataPointStatus (thee.peek(), 1, i, DataModeler_DATA_INVALID);
+					FormantModeler_setDataPointValueAndStatus (thee.peek(), 2, i, f2, FormantModeler_UPSHIFT_TRACKS);
+					FormantModeler_setDataPointValueAndStatus (thee.peek(), 3, i, f3, FormantModeler_UPSHIFT_TRACKS);
 				}
 			}
 		}
-		FormantModeler_fit (thee.get());
-		return thee;
+		FormantModeler_fit (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cannot calculate track discontinuities");
 	}
@@ -1803,12 +1800,12 @@ autoFormantModeler FormantModeler_processOutliers (FormantModeler me, double num
 double FormantModeler_getSmoothnessValue (FormantModeler me, long fromFormant, long toFormant, long numberOfParametersPerTrack, double power) {
 	double smoothness = NUMundefined;
 	if (toFormant < fromFormant || (toFormant == 0 && fromFormant == 0)) {
-		fromFormant = 1; toFormant = my trackmodelers. size;
+		fromFormant = 1; toFormant = my trackmodelers -> size;
 	}
-	if (fromFormant > 0 && fromFormant <= toFormant && toFormant <= my trackmodelers. size) {
+	if (fromFormant > 0 && fromFormant <= toFormant && toFormant <= my trackmodelers -> size) {
 		long nofp;
 		double ndof, var = FormantModeler_getVarianceOfParameters (me, fromFormant, toFormant, 1, numberOfParametersPerTrack, &nofp);
-		double chisq = FormantModeler_getChiSquaredQ (me, fromFormant, toFormant, true, nullptr, &ndof);
+		double chisq = FormantModeler_getChiSquaredQ (me, fromFormant, toFormant, TRUE, NULL, &ndof);
 		if (NUMdefined (var) && NUMdefined (chisq) && nofp > 0) {
 			smoothness = log10 (pow (var / nofp, power) * (chisq / ndof));
 		}
@@ -1821,13 +1818,12 @@ double FormantModeler_getAverageDistanceBetweenTracks (FormantModeler me, long t
 	if (track1 == track2) {
 		return 0;
 	}
-	if (track1 <= my trackmodelers. size && track2 <= my trackmodelers.size) {
-		DataModeler fi = my trackmodelers.at [track1];
-		DataModeler fj = my trackmodelers.at [track2];
+	if (track1 <= my trackmodelers -> size && track2 <= my trackmodelers -> size) {
+		DataModeler fi = (DataModeler) my trackmodelers -> item[track1];
+		DataModeler fj = (DataModeler) my trackmodelers -> item[track2];
 		// fi and fj have equal number of data points
-		long numberOfDataPoints = 0;
-		diff = 0.0;
-		for (long i = 1; i <= fi -> numberOfDataPoints; i ++) {
+		long numberOfDataPoints = 0; diff = 0;
+		for (long i = 1; i <= fi -> numberOfDataPoints; i++) {
 			if (type != 0) {
 				double fie = fi -> f_evaluate (fi, fi -> x[i], fi -> parameter);
 				double fje = fj -> f_evaluate (fj, fj -> x[i], fj -> parameter);
@@ -1845,17 +1841,17 @@ double FormantModeler_getAverageDistanceBetweenTracks (FormantModeler me, long t
 
 double FormantModeler_getFormantsConstraintsFactor (FormantModeler me, double minF1, double maxF1, double minF2, double maxF2, double minF3) {
 	double f1 = FormantModeler_getParameterValue (me, 1, 1); // trackmodelers -> item[1] -> parameter[1]
-	double minF1Factor = f1 > minF1 ? 1 : sqrt (minF1 - f1 + 1.0);
-	double maxF1Factor = f1 < maxF1 ? 1 : sqrt (f1 - maxF1 + 1.0);
+	double minF1Factor = f1 > minF1 ? 1 : sqrt (minF1 - f1 + 1);
+	double maxF1Factor = f1 < maxF1 ? 1 : sqrt (f1 - maxF1 + 1);
 	double f2 = FormantModeler_getParameterValue (me, 2, 1); // trackmodelers -> item[2] -> parameter[1]
-	double minF2Factor = f2 > minF2 ? 1 : sqrt (minF2 - f2 + 1.0);
-	double maxF2Factor = f2 < maxF2 ? 1 : sqrt (f2 - maxF2 + 1.0);
+	double minF2Factor = f2 > minF2 ? 1 : sqrt (minF2 - f2 + 1);
+	double maxF2Factor = f2 < maxF2 ? 1 : sqrt (f2 - maxF2 + 1);
 	double f3 = FormantModeler_getParameterValue (me, 3, 1); // trackmodelers -> item[3] -> parameter[1]
-	double minF3Factor = f3 > minF3 ? 1 : sqrt (minF3 - f3 + 1.0);
+	double minF3Factor = f3 > minF3 ? 1 : sqrt (minF3 - f3 + 1);
 	return minF1Factor * maxF1Factor * minF2Factor * maxF2Factor * minF3Factor;
 }
 
-long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,
+long Formants_getSmoothestInInterval (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,
 	int useBandWidthsForTrackEstimation, int useConstraints, double numberOfSigmas, double power,
 	double minF1, double maxF1, double minF2, double maxF2, double minF3)
 {
@@ -1866,19 +1862,19 @@ long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tm
 		}
 		autoNUMvector<long> numberOfFormants (1, numberOfFormantObjects);
 		autoNUMvector<int> invalid (1, numberOfFormantObjects);
-		double tminf = 0.0, tmaxf = 0.0;
-		for (long iobject = 1; iobject <= numberOfFormantObjects; iobject ++) {
+		double tminf = 0, tmaxf = 0;
+		for (long iobject = 1; iobject <= numberOfFormantObjects; iobject++) {
 			// Check that all Formants have the same domain
-			Formant fi = my at [iobject];
+			Formant fi = (Formant) my item[iobject];
 			if (tminf == tmaxf) {
 				tminf = fi -> xmin; tmaxf = fi -> xmax;
 			} else if (fi -> xmin != tminf || fi -> xmax != tmaxf) {
 				Melder_throw (U"All Formant objects must have the same starting and finishing times.");
 			}
 			// Find the one that has least formant tracks
-			numberOfFormants [iobject] = Formant_getMaxNumFormants (fi);
-			if (numberOfFormants [iobject] < minNumberOfFormants) {
-				minNumberOfFormants = numberOfFormants [iobject];
+			numberOfFormants[iobject] = Formant_getMaxNumFormants (fi);
+			if (numberOfFormants[iobject] < minNumberOfFormants) {
+				minNumberOfFormants = numberOfFormants[iobject];
 			}
 		}
 		if (numberOfFormantTracks == 0) { // default
@@ -1887,10 +1883,10 @@ long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tm
 		if (numberOfFormantTracks > minNumberOfFormants) {
 			// make formants with not enough tracks invalid for the competition
 			long numberOfInvalids = 0;
-			for (long iobject = 1; iobject <= numberOfFormantObjects; iobject ++) {
-				if (numberOfFormants [iobject] < numberOfFormantTracks) {
-					invalid [iobject] = 1;
-					numberOfInvalids ++;
+			for (long iobject = 1; iobject <= numberOfFormantObjects; iobject++) {
+				if (numberOfFormants[iobject] < numberOfFormantTracks) {
+					invalid[iobject] = 1;
+					numberOfInvalids++;
 				}
 			}
 			if (numberOfInvalids == numberOfFormantObjects) {
@@ -1908,15 +1904,15 @@ long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tm
 		 * This is not what we want.
 		 * We test therefore the variances of the parameters because if sigma1[i] < sigma2[i] than pvar1 < pvar2.
 		 */
-		double minChiVar = 1e308;
+		double minChiVar = 1e38;
 		long index = 0;
-		for (long iobject = 1; iobject <= numberOfFormantObjects; iobject ++) {
-			if (invalid [iobject] != 1) {
-				Formant fi = my at [iobject];
+		for (long iobject = 1; iobject <= numberOfFormantObjects; iobject++) {
+			if (invalid[iobject] != 1) {
+				Formant fi = (Formant) my item[iobject];
 				autoFormantModeler fs = Formant_to_FormantModeler (fi, tmin, tmax, numberOfFormantTracks, numberOfParametersPerTrack, useBandWidthsForTrackEstimation);
-				FormantModeler_setParameterValuesToZero (fs.get(), 1, numberOfFormantTracks, numberOfSigmas);
-				double cf = useConstraints ? FormantModeler_getFormantsConstraintsFactor (fs.get(), minF1, maxF1, minF2, maxF2, minF3) : 1;
-				double chiVar = FormantModeler_getSmoothnessValue (fs.get(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
+				FormantModeler_setParameterValuesToZero (fs.peek(), 1, numberOfFormantTracks, numberOfSigmas);
+				double cf = useConstraints ? FormantModeler_getFormantsConstraintsFactor (fs.peek(), minF1, maxF1, minF2, maxF2, minF3) : 1;
+				double chiVar = FormantModeler_getSmoothnessValue (fs.peek(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
 				if (NUMdefined (chiVar) && cf * chiVar < minChiVar) {
 					minChiVar = cf * chiVar;
 					index = iobject;
@@ -1929,7 +1925,7 @@ long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tm
 	}
 }
 
-autoFormant Formant_extractPart (Formant me, double tmin, double tmax) {
+Formant Formant_extractPart (Formant me, double tmin, double tmax) {
 	try {
 		if (tmin >= tmax) {
 			tmin = my xmin; tmax = my xmax;
@@ -1946,34 +1942,37 @@ autoFormant Formant_extractPart (Formant me, double tmin, double tmax) {
 			Formant_Frame thyFrame = & thy d_frames [thyindex];
 			myFrame -> copy (thyFrame);
 		}
-		return thee;
+		return thee.transfer();
 		
 	} catch (MelderError) {
 		Melder_throw (U"Formant part could not be extracted.");
 	}
 }
 
-autoFormant Formants_extractSmoothestPart (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, double numberOfSigmas, double power)
+Formant Formants_extractSmoothestPart (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,
+	int useBandWidthsForTrackEstimation, double numberOfSigmas, double power)
 {
 	try {
 		long index = Formants_getSmoothestInInterval (me, tmin, tmax, numberOfFormantTracks, numberOfParametersPerTrack,
-			useBandWidthsForTrackEstimation, 0, numberOfSigmas, power, 1.0, 1.0, 1.0, 1.0, 1.0); // last five are just fillers
-		Formant bestfit = my at [index];
+			useBandWidthsForTrackEstimation, 0, numberOfSigmas, power, 1, 1, 1, 1, 1); // last five are just fillers
+		Formant bestfit = (Formant) my item[index];
 		autoFormant thee = Formant_extractPart (bestfit, tmin, tmax);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Smoothest Formant part could not be extracted.");
 	}
 }
 
 
-autoFormant Formants_extractSmoothestPart_withFormantsConstraints (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,	int useBandWidthsForTrackEstimation, double numberOfSigmas, double power, double minF1, double maxF1, double minF2, double maxF2, double minF3) {
+Formant Formants_extractSmoothestPart_withFormantsConstraints (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,
+	int useBandWidthsForTrackEstimation, double numberOfSigmas, double power, double minF1, double maxF1, double minF2, double maxF2, double minF3)
+{
 	try {
 		long index = Formants_getSmoothestInInterval (me, tmin, tmax, numberOfFormantTracks, numberOfParametersPerTrack,
 			useBandWidthsForTrackEstimation, 1, numberOfSigmas, power, minF1, maxF1, minF2, maxF2, minF3);
-		Formant bestfit = my at [index];
+		Formant bestfit = (Formant) my item[index];
 		autoFormant thee = Formant_extractPart (bestfit, tmin, tmax);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Smoothest Formant part could not be extracted.");
 	}
@@ -1981,7 +1980,7 @@ autoFormant Formants_extractSmoothestPart_withFormantsConstraints (CollectionOf<
 
 Thing_implement (PitchModeler, DataModeler, 0);
 
-autoPitchModeler Pitch_to_PitchModeler (Pitch me, double tmin, double tmax, long numberOfParameters) {
+PitchModeler Pitch_to_PitchModeler (Pitch me, double tmin, double tmax, long numberOfParameters) {
 	try {
 		long ifmin, ifmax;
 		if (tmax <= tmin) {
@@ -1992,23 +1991,23 @@ autoPitchModeler Pitch_to_PitchModeler (Pitch me, double tmin, double tmax, long
 			Melder_throw (U"Not enough data points, extend the selection.");
 		}
 		autoPitchModeler thee = Thing_new (PitchModeler);
-		DataModeler_init (thee.get(), tmin, tmax, numberOfDataPoints, numberOfParameters, DataModeler_TYPE_LEGENDRE);
+		DataModeler_init (thee.peek(), tmin, tmax, numberOfDataPoints, numberOfParameters, DataModeler_TYPE_LEGENDRE);
 		long idata = 0, validData = 0;
-		for (long iframe = ifmin; iframe <= ifmax; iframe ++) {
-			thy x [++ idata] = Sampled_indexToX (me, iframe);
+		for (long iframe = ifmin; iframe <= ifmax; iframe++) {
+			thy x[++idata] = Sampled_indexToX (me, iframe);
 			thy dataPointStatus[idata] = DataModeler_DATA_INVALID;
 			if (Pitch_isVoiced_i (me, iframe)) {
 				thy y[idata] = my frame [iframe]. candidate [1]. frequency;
-				thy dataPointStatus [idata] = DataModeler_DATA_VALID;
-				validData ++;
+				thy dataPointStatus[idata] = DataModeler_DATA_VALID;
+				validData++;
 			}
 		}
 		thy numberOfDataPoints = idata;
 		if (validData < numberOfParameters) { // remove don't throw exception
 			Melder_throw (U"Not enough valid data in interval.");
 		}
-		DataModeler_fit (thee.get());
-		return thee;
+		DataModeler_fit (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No PitchModeler could be created.");
 	}
@@ -2020,20 +2019,20 @@ void PitchModeler_draw (PitchModeler me, Graphics g, double tmin, double tmax, d
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 100.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 100.0, 1, 1, 1);
 	}
 }
 
 double Sound_getOptimalFormantCeiling (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power) {
 	double optimalCeiling;
-	autoFormant thee = Sound_to_Formant_interval (me, startTime, endTime, windowLength, timeStep, minFreq, maxFreq,  numberOfFrequencySteps, preemphasisFrequency, numberOfFormantTracks, numberOfParametersPerTrack, weighData,  numberOfSigmas, power, false, 0.0, 5000.0, 0.0, 5000.0, 0.0, & optimalCeiling);
+	autoFormant thee = Sound_to_Formant_interval (me, startTime, endTime, windowLength, timeStep, minFreq, maxFreq,  numberOfFrequencySteps, preemphasisFrequency, numberOfFormantTracks, numberOfParametersPerTrack, weighData,  numberOfSigmas, power, false, 0, 5000, 0, 5000, 0, &optimalCeiling);
 	return optimalCeiling;
 }
 
-autoFormant Sound_to_Formant_interval (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *p_optimalCeiling) {
+Formant Sound_to_Formant_interval (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling) {
 	try {
 		// parameter check
 		if (endTime <= startTime) {
@@ -2043,52 +2042,51 @@ autoFormant Sound_to_Formant_interval (Sound me, double startTime, double endTim
 		if (maxFreq > nyquistFrequency) {
 			Melder_throw (U"The upper value of the maximum frequency range is higher than the Nyquist frequency of the sound.");
 		}
-		double df = 0, mincriterium = 1e28;
+		double df = 0, ceiling_best, mincriterium = 1e28;
 		if (minFreq >= maxFreq) {
 			numberOfFrequencySteps = 1;
 		} else {
 			df = (maxFreq - minFreq) / (numberOfFrequencySteps - 1);
 		}
-		double optimalCeiling = minFreq;
 		long i_best = 0;
 		
 		// extract part +- windowLength because of Gaussian windowing in the formant analysis
 		// +timeStep/2 to have the analysis points maximally spread in the new domain.
 		
-		autoSound part = Sound_extractPart (me, startTime - windowLength + timeStep / 2.0, endTime + windowLength + timeStep / 2.0, kSound_windowShape_RECTANGULAR, 1, 1);
+		autoSound part = Sound_extractPart (me, startTime - windowLength + timeStep / 2, endTime + windowLength + timeStep / 2, kSound_windowShape_RECTANGULAR, 1, 1);
 
 		// Resample to 2*maxFreq to reduce resampling load in Sound_to_Formant
 		
-		autoSound resampled = Sound_resample (part.get(), 2.0 * maxFreq, 50);
-		OrderedOf<structFormant> formants;
+		autoSound resampled = Sound_resample (part.peek(), 2 * maxFreq, 50);
+		autoOrdered formants = Ordered_create ();
 		Melder_progressOff ();
-		for (long i = 1; i <= numberOfFrequencySteps; i ++) {
+		for (long i = 1; i <= numberOfFrequencySteps; i++) {
 			double currentCeiling = minFreq + (i - 1) * df;
-			autoFormant formant = Sound_to_Formant_burg (resampled.get(), timeStep, 5.0, currentCeiling, windowLength, preemphasisFrequency);
-			autoFormantModeler fm = Formant_to_FormantModeler (formant.get(), startTime, endTime, numberOfFormantTracks, numberOfParametersPerTrack, weighData);
-			FormantModeler_setParameterValuesToZero (fm.get(), 1, numberOfFormantTracks, numberOfSigmas);
-			formants. addItem_move (formant.move());
-			double cf = ( useConstraints ? FormantModeler_getFormantsConstraintsFactor (fm.get(), minF1, maxF1, minF2, maxF2, minF3) : 1 );
-			double chiVar = FormantModeler_getSmoothnessValue (fm.get(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
+			autoFormant formant = Sound_to_Formant_burg (resampled.peek(), timeStep, 5, currentCeiling, windowLength, preemphasisFrequency);
+			autoFormantModeler fm = Formant_to_FormantModeler (formant.peek(), startTime, endTime, numberOfFormantTracks, numberOfParametersPerTrack, weighData);
+			FormantModeler_setParameterValuesToZero (fm.peek(), 1, numberOfFormantTracks, numberOfSigmas);
+			Collection_addItem (formants.peek(), formant.transfer());
+			double cf = useConstraints ? FormantModeler_getFormantsConstraintsFactor (fm.peek(), minF1, maxF1, minF2, maxF2, minF3) : 1;
+			double chiVar = FormantModeler_getSmoothnessValue (fm.peek(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
 			double criterium = chiVar * cf;
 			if (NUMdefined (chiVar) && criterium < mincriterium) {
 				mincriterium = criterium;
-				optimalCeiling = currentCeiling;
+				ceiling_best= currentCeiling;
 				i_best = i;
 			}
 		}
-		autoFormant thee = Formant_extractPart (formants.at [i_best], startTime, endTime);
+		autoFormant thee = Formant_extractPart ((Formant) formants -> item[i_best], startTime, endTime);
 		Melder_progressOn ();
-		if (p_optimalCeiling) {
-			*p_optimalCeiling = optimalCeiling;
+		if (optimalCeiling) {
+			*optimalCeiling = ceiling_best;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Formant object created.");
 	}
 }
 
-autoFormant Sound_to_Formant_interval_robust (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *p_optimalCeiling) {
+Formant Sound_to_Formant_interval_robust (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling) {
 	try {
 		// parameter check
 		if (endTime <= startTime) {
@@ -2098,14 +2096,14 @@ autoFormant Sound_to_Formant_interval_robust (Sound me, double startTime, double
 		if (maxFreq > nyquistFrequency) {
 			Melder_throw (U"The upper value of the maximum frequency range is higher than the Nyquist frequency of the sound.");
 		}
-		double df = 0, mincriterium = 1e28;
+		double df = 0, ceiling_best, mincriterium = 1e28;
 		if (minFreq >= maxFreq) {
 			numberOfFrequencySteps = 1;
 		} else {
 			df = (maxFreq - minFreq) / (numberOfFrequencySteps - 1);
 		}
 		long i_best = 0;
-		double optimalCeiling = minFreq;
+		
 		// extract part +- windowLength because of Gaussian windowing in the formant analysis
 		// +timeStep/2 to have the analysis points maximally spread in the new domain.
 		
@@ -2113,68 +2111,78 @@ autoFormant Sound_to_Formant_interval_robust (Sound me, double startTime, double
 
 		// Resample to 2*maxFreq to reduce resampling load in Sound_to_Formant
 		
-		autoSound resampled = Sound_resample (part.get(), 2.0 * maxFreq, 50);
-		OrderedOf<structFormant> formants;
+		autoSound resampled = Sound_resample (part.peek(), 2 * maxFreq, 50);
+		autoOrdered formants = Ordered_create ();
 		Melder_progressOff ();
 		for (long i = 1; i <= numberOfFrequencySteps; i++) {
 			double currentCeiling = minFreq + (i - 1) * df;
-			autoFormant formant = Sound_to_Formant_robust (resampled.get(), timeStep, 5.0, currentCeiling, windowLength, preemphasisFrequency, 50.0, 1.5, 3, 0.0000001, 1);
-			autoFormantModeler fm = Formant_to_FormantModeler (formant.get(), startTime, endTime, numberOfFormantTracks, numberOfParametersPerTrack, weighData);
-			FormantModeler_setParameterValuesToZero (fm.get(), 1, numberOfFormantTracks, numberOfSigmas);
-			formants. addItem_move (formant.move());
-			double cf = ( useConstraints ? FormantModeler_getFormantsConstraintsFactor (fm.get(), minF1, maxF1, minF2, maxF2, minF3) : 1 );
-			double chiVar = FormantModeler_getSmoothnessValue (fm.get(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
+			autoFormant formant = Sound_to_Formant_robust (resampled.peek(), timeStep, 5, currentCeiling, windowLength, preemphasisFrequency, 50, 1.5, 3, 0.0000001, 1);
+			autoFormantModeler fm = Formant_to_FormantModeler (formant.peek(), startTime, endTime, numberOfFormantTracks, numberOfParametersPerTrack, weighData);
+			FormantModeler_setParameterValuesToZero (fm.peek(), 1, numberOfFormantTracks, numberOfSigmas);
+			Collection_addItem (formants.peek(), formant.transfer());
+			double cf = useConstraints ? FormantModeler_getFormantsConstraintsFactor (fm.peek(), minF1, maxF1, minF2, maxF2, minF3) : 1;
+			double chiVar = FormantModeler_getSmoothnessValue (fm.peek(), 1, numberOfFormantTracks, numberOfParametersPerTrack, power);
 			double criterium = chiVar * cf;
 			if (NUMdefined (chiVar) && criterium < mincriterium) {
 				mincriterium = criterium;
-				optimalCeiling = currentCeiling;
+				ceiling_best= currentCeiling;
 				i_best = i;
 			}
 		}
-		autoFormant thee = Formant_extractPart (formants.at [i_best], startTime, endTime);
+		autoFormant thee = Formant_extractPart ((Formant) formants -> item[i_best], startTime, endTime);
 		Melder_progressOn ();
-		if (p_optimalCeiling) {
-			*p_optimalCeiling = optimalCeiling;
+		if (optimalCeiling) {
+			*optimalCeiling = ceiling_best;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Formant object created.");
 	}
 }
 
-#if 0
+void FormantModeler_Formant_correctFormantsProbablyIndexedFalsely (FormantModeler me, Formant thee) {
+	try {
+		(void) thee;
+		autoFormantModeler him = (FormantModeler) Data_copy (me);
+	} catch (MelderError) {
+		Melder_throw (U"Nothing corrected.");
+	}
+}
+
 // If e.g. first formant is obviously "missing" then assign F1 as 
-static void FormantModeler_correctFormantsProbablyIndexedFalsely (FormantModeler /* me */) {
+void FormantModeler_correctFormantsProbablyIndexedFalsely (FormantModeler me) {
+	(void) me;
 	/* if shift down F1 ("correct" F1 missed)
 	 * elsif shift down F2  ("correct" F2 missed)
 	 * else if spurious formant before F1
 	 * else if spurious formant between F1 and F2
 	 * endif
 	 * */
+	
 }
-#endif
 
-autoOptimalCeilingTier Sound_to_OptimalCeilingTier (Sound me, double windowLength, double timeStep, double minCeiling, double maxCeiling, long numberOfFrequencySteps, double preemphasisFrequency, double smoothingWindow, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power) {
+OptimalCeilingTier Sound_to_OptimalCeilingTier (Sound me, double windowLength, double timeStep, double minCeiling, double maxCeiling, long numberOfFrequencySteps, double preemphasisFrequency, double smoothingWindow, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power) {
 	try {
-		OrderedOf<structFormant> formants;
+		autoOrdered formants = Ordered_create ();
 		double frequencyStep = numberOfFrequencySteps > 1 ? (maxCeiling - minCeiling) / (numberOfFrequencySteps - 1) : 0;
 		for (long i = 1; i <= numberOfFrequencySteps; i++) {
 			double ceiling = minCeiling + (i - 1) * frequencyStep;
 			autoFormant formant = Sound_to_Formant_burg (me, timeStep, 5, ceiling, windowLength, preemphasisFrequency);
-			formants. addItem_move (formant.move());
+			Collection_addItem (formants.peek(), formant.transfer());
 		}
 		long numberOfFrames; double firstTime, modelingTimeStep = timeStep;
 		autoOptimalCeilingTier octier = OptimalCeilingTier_create (my xmin, my xmax);
 		Sampled_shortTermAnalysis (me, smoothingWindow, modelingTimeStep, & numberOfFrames, & firstTime);
 		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
 			double time = firstTime + (iframe - 1) * modelingTimeStep;
-			double tmin = time - smoothingWindow / 2.0;
+			double tmin = time - smoothingWindow / 2;
 			double tmax = tmin + smoothingWindow;
-			long index = Formants_getSmoothestInInterval (& formants, tmin, tmax, numberOfFormantTracks, numberOfParametersPerTrack,	weighData, 0, numberOfSigmas, power, 200.0, 1500.0, 300.0, 3000.0, 1000.0); // min/max values are not used
+			long index = Formants_getSmoothestInInterval (formants.peek(), tmin, tmax, numberOfFormantTracks, numberOfParametersPerTrack,
+				weighData, 0, numberOfSigmas, power, 200, 1500, 300, 3000, 1000); // min/max values are not used
 			double ceiling = minCeiling + (index - 1) * frequencyStep;
-			RealTier_addPoint (octier.get(), time, ceiling);
+			RealTier_addPoint (octier.peek(), time, ceiling);
 		}
-		return octier;
+		return octier.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" no OptimalCeilingTier calculated.");
 	}
diff --git a/dwtools/DataModeler.h b/dwtools/DataModeler.h
index 2393e93..af24d44 100644
--- a/dwtools/DataModeler.h
+++ b/dwtools/DataModeler.h
@@ -36,6 +36,7 @@
 #define DataModeler_DATA_WEIGH_SQRT 3
 #define DataModeler_DATA_WEIGH_SQRT 3
 
+
 #define DataModeler_DATA_VALID 0
 #define DataModeler_DATA_INVALID -1
 #define DataModeler_DATA_FROM_FIT 1
@@ -59,17 +60,19 @@
 #include "Table.h"
 
 #include "DataModeler_def.h"
+oo_CLASS_CREATE (DataModeler, Function);
+oo_CLASS_CREATE (FormantModeler, Function);
 
 Thing_define (PitchModeler, DataModeler) {
 	// void v_info ()
 	//     override;
 };
 
-void  DataModeler_init (DataModeler me, double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type);
 
-autoDataModeler DataModeler_create (double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type);
+void  DataModeler_init (DataModeler me, double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type);
 
-autoDataModeler DataModeler_createSimple (double xmin, double xmax, long numberOfDataPoints, char32 *parameters, double gaussianNoiseStd, int type);
+DataModeler DataModeler_create (double xmin, double xmax, long numberOfDataPoints, long numberOfParameters, int type);
+DataModeler DataModeler_createSimple (double xmin, double xmax, long numberOfDataPoints, char32 *parameters, double gaussianNoiseStd, int type);
 
 void DataModeler_setBasisFunctions (DataModeler me, int type);
 
@@ -93,78 +96,53 @@ void DataModeler_fit (DataModeler me);
 
 // sigmaY used in fit or not.
 void DataModeler_setDataWeighing (DataModeler me, int useSigmaY);
-
 long DataModeler_getNumberOfFixedParameters (DataModeler me);
-
 void DataModeler_setParameterValue (DataModeler me, long index, double value, int status);
-
 void DataModeler_setParameterValueFixed (DataModeler me, long index, double value);
-
 void DataModeler_setParametersFree (DataModeler me, long fromIndex, long toIndex);
-
 double DataModeler_getParameterValue (DataModeler me, long index);
-
 int DataModeler_getParameterStatus (DataModeler me, long index);
-
 double DataModeler_getParameterStandardDeviation (DataModeler me, long index);
-
 double DataModeler_getVarianceOfParameters (DataModeler me, long fromIndex, long toIndex, long *numberOfFreeParameters);
-
 void DataModeler_setParameterValuesToZero (DataModeler me, double numberOfSigmas);
-
 double DataModeler_estimateSigmaY (DataModeler me);
 
 void DataModeler_getExtremaY (DataModeler me, double *ymin, double *ymax);
-
 double DataModeler_getModelValueAtX (DataModeler me, double x);
-
 double DataModeler_getModelValueAtIndex (DataModeler me, long index);
-
 double DataModeler_getWeightedMean (DataModeler me);
 
 long DataModeler_getNumberOfInvalidDataPoints (DataModeler me);
-
 double DataModeler_getDataPointValue (DataModeler me, long index);
-
 void DataModeler_setDataPointValue (DataModeler me, long index, double value);
-
 int DataModeler_getDataPointStatus (DataModeler me, long index);
-
 void DataModeler_setDataPointStatus (DataModeler me, long index, int status);
-
 void DataModeler_setDataPointSigma (DataModeler me, long index, double sigma);
-
 double DataModeler_getDataPointSigma (DataModeler me, long index);
 double DataModeler_getResidualSumOfSquares (DataModeler me, long *numberOfDataPoints);
 
 void DataModeler_getZScores (DataModeler me, int useSigmaY, double zscores[]);
-
 double DataModeler_getDegreesOfFreedom (DataModeler me);
-
 double DataModeler_getChiSquaredQ (DataModeler me, int useSigmaY, double *probability, double *ndf);
-
 double DataModeler_getCoefficientOfDetermination (DataModeler me, double *ssreg, double *sstot);
 
-autoFormant Formant_extractPart (Formant me, double tmin, double tmax);
+Formant Formant_extractPart (Formant me, double tmin, double tmax);
 
-autoCovariance DataModeler_to_Covariance_parameters (DataModeler me);
+Covariance DataModeler_to_Covariance_parameters (DataModeler me);
+Table DataModeler_to_Table_zscores (DataModeler me, int useSigmaY);
 
-autoTable DataModeler_to_Table_zscores (DataModeler me, int useSigmaY);
-
-autoFormantModeler FormantModeler_create (double tmin, double tmax, long numberOfFormants, long numberOfDataPoints, long numberOfParameters);
+FormantModeler FormantModeler_create (double tmin, double tmax, long numberOfFormants, long numberOfDataPoints, long numberOfParameters);
 
 double FormantModeler_indexToTime (FormantModeler me, long index);
 
 void FormantModeler_fit (FormantModeler me);
-
-void FormantModeler_drawBasisFunction (FormantModeler me, Graphics g, double tmin, double tmax, double fmin, double fmax, long iformant, long iterm, bool scaled, long numberOfPoints, bool garnish);
+void FormantModeler_drawBasisFunction (FormantModeler me, Graphics g, double tmin, double tmax, double fmin, double fmax,
+ 	long iformant, long iterm, bool scaled, long numberOfPoints, int garnish);
 
 void FormantModeler_setDataWeighing (FormantModeler me, long fromFormant, long toFormant, int useSigmaY);
 
 void FormantModeler_setParameterValueFixed (FormantModeler me, long iformant, long index, double value);
-
 void FormantModeler_setParametersFree (FormantModeler me, long fromFormant, long toFormant, long fromIndex, long toIndex);
-
 void FormantModeler_setParameterValuesToZero (FormantModeler me, long fromFormant, long toFormant, double numberOfSigmas);
 
 void FormantModeler_setTolerance (FormantModeler me, double tolerance);
@@ -172,100 +150,83 @@ void FormantModeler_setTolerance (FormantModeler me, double tolerance);
 void FormantModeler_speckle (FormantModeler me, Graphics g, double tmin, double tmax, double fmax,
 	long fromTrack, long toTrack, int estimated, long numberOfParameters, int errorBars, double barWidth_mm, double horizontalOffset_mm, int garnish);
 
-void FormantModeler_drawTracks (FormantModeler me, Graphics g, double tmin, double tmax, double fmax, long fromTrack, long toTrack, int estimated, long numberOfParameters, double horizontalOffset_mm, int garnish);
+void FormantModeler_drawTracks (FormantModeler me, Graphics g, double tmin, double tmax, double fmax, long fromTrack, long toTrack, 
+	 int estimated, long numberOfParameters, double horizontalOffset_mm, int garnish);
 
 void FormantModeler_drawOutliersMarked (FormantModeler me, Graphics g, double tmin, double tmax, double fmax, long fromTrack, long toTrack, double numberOfSigmas, int useSigmaY, char32 *mark, int marksFontSize, double horizontalOffset_mm, int garnish);
-
 void FormantModeler_drawCumulativeChiScores (FormantModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax, int useSigmaY, int garnish);
 
-void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax, int shiftDirection, long fromFormant, long toFormant, bool garnish);
-
-void FormantModeler_normalProbabilityPlot (FormantModeler me, Graphics g, long iformant, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, bool garnish);
+void FormantModeler_drawVariancesOfShiftedTracks (FormantModeler me, Graphics g, double xmin, double xmax, double ymin, double ymax, int shiftDirection, long fromFormant, long toFormant, int garnish);
+void FormantModeler_normalProbabilityPlot (FormantModeler me, Graphics g, long iformant, int useSigmaY, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, int garnish);
 
-autoTable FormantModeler_to_Table_zscores (FormantModeler me, int useSigmaY);
+Table FormantModeler_to_Table_zscores (FormantModeler me, int useSigmaY);
 
-autoCovariance FormantModeler_to_Covariance_parameters (FormantModeler me, long iformant);
+Covariance FormantModeler_to_Covariance_parameters (FormantModeler me, long iformant);
 
 double FormantModeler_getChiSquaredQ (FormantModeler me, long fromFormant, long toFormant, int useSigmaY, double *probability, double *ndf);
 
 double FormantModeler_getCoefficientOfDetermination (FormantModeler me, long fromFormant, long toFormant);
-
 double FormantModeler_getStandardDeviation (FormantModeler me, long iformant);
-
 double FormantModeler_getResidualSumOfSquares (FormantModeler me, long iformant, long *numberOfDataPoints);
-
 double FormantModeler_getEstimatedValueAtTime (FormantModeler me, long iformant, double time);
 
 long FormantModeler_getNumberOfParameters (FormantModeler me, long iformant);
-
 long FormantModeler_getNumberOfFixedParameters (FormantModeler me, long iformant);
 
 double FormantModeler_getParameterStandardDeviation ( FormantModeler me, long iformant, long index);
-
 double FormantModeler_getVarianceOfParameters (FormantModeler me, long fromFormant, long toFormant, long fromIndex, long toIndex, long *numberOfFreeParameters);
-
 int FormantModeler_getParameterStatus (FormantModeler me, long iformant, long index);
 
 long FormantModeler_getNumberOfDataPoints (FormantModeler me);
-
 long FormantModeler_getNumberOfInvalidDataPoints (FormantModeler me, long iformant);
 
 void FormantModeler_setDataPointStatus (FormantModeler me, long iformant, long index, int status);
-
 int FormantModeler_getDataPointStatus (FormantModeler me, long iformant, long index);
-
 double FormantModeler_getDataPointValue (FormantModeler me, long iformant, long index);
-
 void FormantModeler_setDataPointValue (FormantModeler me, long iformant, long index, double value);
-
 double FormantModeler_getDataPointSigma (FormantModeler me, long iformant, long index);
-
 void FormantModeler_setDataPointSigma (FormantModeler me, long iformant, long index, double sigma);
 
 double FormantModeler_getDegreesOfFreedom (FormantModeler me, long iformant);
-
 long FormantModeler_getNumberOfTracks (FormantModeler me);
 
 double FormantModeler_getModelValueAtTime (FormantModeler me, long iformant, double time);
-
 double FormantModeler_getModelValueAtIndex (FormantModeler me, long iformant, long index);
 
 double FormantModeler_getWeightedMean (FormantModeler me, long iformant);
 
 double FormantModeler_getParameterValue (FormantModeler me, long iformant, long iparameter);
 
-autoFormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tmax, long numberOfFormants, long numberOfParametersPerTrack, int bandwidthEstimatesSigma);
-
-autoFormant FormantModeler_to_Formant (FormantModeler me, int estimate, int estimateUndefined);
-
-autoFormantModeler FormantModeler_processOutliers (FormantModeler me, double numberOfSigmas, int useSigmaY);
+FormantModeler Formant_to_FormantModeler (Formant me, double tmin, double tmax, long numberOfFormants, long numberOfParametersPerTrack, int bandwidthEstimatesSigma);
+Formant FormantModeler_to_Formant (FormantModeler me, int estimate, int estimateUndefined);
 
+FormantModeler FormantModeler_processOutliers (FormantModeler me, double numberOfSigmas, int useSigmaY);
 double FormantModeler_getSmoothnessValue (FormantModeler me, long fromFormant, long toFormant, long numberOfParametersPerTrack, double power);
-
 double FormantModeler_getAverageDistanceBetweenTracks (FormantModeler me, long track1, long track2, int type);
 
-long Formants_getSmoothestInInterval (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, int useConstraints, double numberOfSigmas, double power, double minF1, double maxF1, double minF2, double maxF2, double minF3);
+long Formants_getSmoothestInInterval (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack,
+	int useBandWidthsForTrackEstimation, int useConstraints, double numberOfSigmas, double power,
+	double minF1, double maxF1, double minF2, double maxF2, double minF3);
 
 double FormantModeler_getFormantsConstraintsFactor (FormantModeler me, double minF1, double maxF1, double minF2, double maxF2, double minF3);
 
-autoFormant Formants_extractSmoothestPart (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, double numberOfSigmas, double power);
-
-autoFormant Formants_extractSmoothestPart_withFormantsConstraints (CollectionOf<structFormant>* me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, double numberOfSigmas, double power, double minF1, double maxF1, double minF2, double maxF2, double minF3);
+Formant Formants_extractSmoothestPart (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, double numberOfSigmas, double power);
+Formant Formants_extractSmoothestPart_withFormantsConstraints (Collection me, double tmin, double tmax, long numberOfFormantTracks, long numberOfParametersPerTrack, int useBandWidthsForTrackEstimation, double numberOfSigmas, double power, double minF1, double maxF1, double minF2, double maxF2, double minF3);
 
-autoDataModeler FormantModeler_extractDataModeler (FormantModeler me, long iformant);
+DataModeler FormantModeler_extractDataModeler (FormantModeler me, long iformant);
 
-autoPitchModeler Pitch_to_PitchModeler (Pitch me, double tmin, double tmax, long numberOfParameters);
+PitchModeler Pitch_to_PitchModeler (Pitch me, double tmin, double tmax, long numberOfParameters);
 
 void PitchModeler_draw (PitchModeler me, Graphics g, double tmin, double tmax, double fmin, double fmax, long numberOfParameters, int garnish);
 
-autoDataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long xcolumn, long ycolumn, long scolumn, long numberOfParameters, int type);
+DataModeler Table_to_DataModeler (Table me, double xmin, double xmax, long xcolumn, long ycolumn, long scolumn, long numberOfParameters, int type);
 
-autoFormant Sound_to_Formant_interval (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling);
+Formant Sound_to_Formant_interval (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling);
 
-autoFormant Sound_to_Formant_interval_robust (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling);
+Formant Sound_to_Formant_interval_robust (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power, bool useConstraints, double minF1, double maxF1, double minF2, double maxF2, double minF3, double *optimalCeiling);
 
 double Sound_getOptimalFormantCeiling (Sound me, double startTime, double endTime, double windowLength, double timeStep, double minFreq, double maxFreq, long numberOfFrequencySteps, double preemphasisFrequency, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power);
 
-autoOptimalCeilingTier Sound_to_OptimalCeilingTier (Sound me, double windowLength, double timeStep, double minCeiling, double maxCeiling, long numberOfFrequencySteps, double preemphasisFrequency, double smoothingWindow, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power); 
+OptimalCeilingTier Sound_to_OptimalCeilingTier (Sound me, double windowLength, double timeStep, double minCeiling, double maxCeiling, long numberOfFrequencySteps, double preemphasisFrequency, double smoothingWindow, long numberOfFormantTracks, long numberOfParametersPerTrack, int weighData, double numberOfSigmas, double power); 
 
 #endif /* _DataModeler_h_ */
diff --git a/dwtools/DataModeler_def.h b/dwtools/DataModeler_def.h
index c4d54be..c62fd66 100644
--- a/dwtools/DataModeler_def.h
+++ b/dwtools/DataModeler_def.h
@@ -1,26 +1,8 @@
-/* DataModeler_def.h
- *
- * Copyright (C) 2014 David Weenink
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
+/* DataModeler_def.h */
+/* David Weenink, 20140216 */
 
 #define ooSTRUCT DataModeler
 oo_DEFINE_CLASS (DataModeler, Function)
-
 	oo_INT (type)	// polynomial, legendre ...
 	oo_LONG (numberOfDataPoints)
 	oo_LONG (numberOfParameters)
@@ -32,9 +14,8 @@ oo_DEFINE_CLASS (DataModeler, Function)
 	oo_INT_VECTOR (parameterStatus, numberOfParameters)
 	oo_DOUBLE (tolerance)
 	oo_INT (useSigmaY)
-	oo_AUTO_OBJECT (Strings, 0, parameterNames)
-	oo_AUTO_OBJECT (Covariance, 0, parameterCovariances)
-
+	oo_OBJECT (Strings, 0, parameterNames)
+	oo_OBJECT (Covariance, 0, parameterCovariances)
 	#if oo_DECLARING
 		double (*f_evaluate) (DataModeler me, double x, double p[]);
 		void (*f_evaluateBasisFunctions) (DataModeler me, double x, double term[]);
@@ -42,31 +23,23 @@ oo_DEFINE_CLASS (DataModeler, Function)
 		void v_info ()
 			override;
 	#endif
-
 	#if oo_COPYING
-		DataModeler_setBasisFunctions (thee, thy type);
+			DataModeler_setBasisFunctions (thee, thy type);
 	#endif
-
 	#if oo_READING
 		 DataModeler_setBasisFunctions (this, type);
 	#endif
-
 oo_END_CLASS (DataModeler)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT FormantModeler
 oo_DEFINE_CLASS (FormantModeler, Function)
-
-	oo_COLLECTION_OF (OrderedOf, trackmodelers, DataModeler, 0)
-
+	oo_COLLECTION (Ordered, trackmodelers, DataModeler, 0)
 	#if oo_DECLARING
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (FormantModeler)
 #undef ooSTRUCT
 
-
 /* End of file DataModeler_def.h */	
diff --git a/dwtools/Discriminant.cpp b/dwtools/Discriminant.cpp
index f25ba00..34281ee 100644
--- a/dwtools/Discriminant.cpp
+++ b/dwtools/Discriminant.cpp
@@ -1,6 +1,6 @@
 /* Discriminant.c
  *
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -68,27 +68,26 @@
 #define MAX(m,n) ((m) > (n) ? (m) : (n))
 #define MIN(m,n) ((m) < (n) ? (m) : (n))
 
-Thing_implement (Discriminant, Daata, 1);
+Thing_implement (Discriminant, Eigen, 0);
 
 void structDiscriminant :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of groups: ", numberOfGroups);
-	MelderInfo_writeLine (U"Number of eigenvalues: ", eigen -> numberOfEigenvalues);
-	MelderInfo_writeLine (U"Dimension of eigenvector: ", eigen -> dimension);
+	MelderInfo_writeLine (U"Number of variables: ", dimension);
 	MelderInfo_writeLine (U"Number of discriminant functions: ", Discriminant_getNumberOfFunctions (this));
 	MelderInfo_writeLine (U"Number of observations (total): ", Discriminant_getNumberOfObservations (this, 0));
 }
 
-autoDiscriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension) {
+Discriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension) {
 	try {
 		autoDiscriminant me = Thing_new (Discriminant);
-		my eigen = Eigen_create (numberOfEigenvalues, dimension);
 		my numberOfGroups = numberOfGroups;
-		my groups = SSCPList_create ();
+		Eigen_init (me.peek(), numberOfEigenvalues, dimension);
+		my groups = SSCPs_create ();
 		my total = SSCP_create (dimension);
 		my aprioriProbabilities = NUMvector<double> (1, numberOfGroups);
 		my costs = NUMmatrix<double> (1, numberOfGroups, 1, numberOfGroups);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Discriminant not created.");
 	}
@@ -97,8 +96,8 @@ autoDiscriminant Discriminant_create (long numberOfGroups, long numberOfEigenval
 long Discriminant_groupLabelToIndex (Discriminant me, const char32 *label) {
 	char32 *name;
 
-	for (long i = 1; i <= my numberOfGroups; i ++) {
-		if (!! (name = Thing_getName (my groups -> at [i])) && str32equ (name, label)) {
+	for (long i = 1; i <= my numberOfGroups; i++) {
+		if ( (name = Thing_getName ( (Thing) my groups -> item[i])) && str32equ (name, label)) {
 			return i;
 		}
 	}
@@ -111,9 +110,10 @@ long Discriminant_getNumberOfGroups (Discriminant me) {
 
 long Discriminant_getNumberOfObservations (Discriminant me, long group) {
 	if (group == 0) {
-		return (long) floor (my total -> numberOfObservations);
+		SSCP sscp = (SSCP) my total;
+		return (long) floor (sscp -> numberOfObservations);
 	} else if (group >= 1 && group <= my numberOfGroups) {
-		SSCP sscp = my groups->at [group];
+		SSCP sscp = (SSCP) my groups -> item[group];
 		return (long) floor (sscp -> numberOfObservations);
 	} else {
 		return -1;
@@ -131,73 +131,72 @@ void Discriminant_setAprioriProbability (Discriminant me, long group, double p)
 }
 
 long Discriminant_getNumberOfFunctions (Discriminant me) {
-	long numberOfFunctions = MIN (my numberOfGroups - 1, my eigen -> dimension);
-	numberOfFunctions = MIN (numberOfFunctions, my eigen ->  numberOfEigenvalues);
-	return numberOfFunctions;
+	long nf = MIN (my numberOfGroups - 1, my dimension);
+	nf = MIN (nf, my numberOfEigenvalues);
+	return nf;
 }
 
 void Discriminant_setGroupLabels (Discriminant me, Strings thee) {
-	if (my numberOfGroups != thy numberOfStrings) {
-		Melder_throw (U"The number of strings must equal the number of groups.");
-	}
+	if (my numberOfGroups != thy numberOfStrings) Melder_throw
+		(U"The number of strings must equal the number of groups.");
 
-	for (long i = 1; i <= my numberOfGroups; i ++) {
+	for (long i = 1; i <= my numberOfGroups; i++) {
 		const char32 *noname = U"", *name;
-		name = thy strings [i];
+		name = thy strings[i];
 		if (name == 0) {
 			name = noname;
 		}
-		Thing_setName (my groups->at [i], name);
+		Thing_setName ( (Thing) my groups -> item[i], name);
 	}
 }
 
-autoStrings Discriminant_extractGroupLabels (Discriminant me) {
+Strings Discriminant_extractGroupLabels (Discriminant me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector<char32 *> (1, my numberOfGroups);
 		thy numberOfStrings = my numberOfGroups;
-		for (long i = 1; i <= my numberOfGroups; i ++) {
-			char32 *name = Thing_getName (my groups->at [i]);
-			thy strings [i] = Melder_dup (name);
+		for (long i = 1; i <= my numberOfGroups; i++) {
+			char32 *name = Thing_getName ( (Thing) my groups -> item[i]);
+			thy strings[i] = Melder_dup (name);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": group labels not extracted.");
 	}
 }
 
-autoTableOfReal Discriminant_extractGroupCentroids (Discriminant me) {
+TableOfReal Discriminant_extractGroupCentroids (Discriminant me) {
 	try {
-		long m = my groups -> size, n = my eigen -> dimension;
+		long m = my groups -> size, n = my dimension;
 		autoTableOfReal thee = TableOfReal_create (m, n);
 
-		for (long i = 1; i <= m; i ++) {
-			SSCP sscp = my groups->at [i];
-			TableOfReal_setRowLabel (thee.get(), i, Thing_getName (sscp));
-			NUMvector_copyElements (sscp -> centroid, thy data [i], 1, n);
+		for (long i = 1; i <= m; i++) {
+			SSCP sscp = (SSCP) my groups -> item[i];
+			TableOfReal_setRowLabel (thee.peek(), i, Thing_getName (sscp));
+			NUMvector_copyElements (sscp -> centroid, thy data[i], 1, n);
 		}
-		NUMstrings_copyElements (my groups->at [m] -> columnLabels, thy columnLabels, 1, n);
-		return thee;
+		NUMstrings_copyElements ( ( (SSCP) my groups -> item[m]) -> columnLabels, thy columnLabels, 1, n);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": group centroids not extracted.");
 	}
 }
 
-autoTableOfReal Discriminant_extractGroupStandardDeviations (Discriminant me) {
+TableOfReal Discriminant_extractGroupStandardDeviations (Discriminant me) {
 	try {
-		long m = my groups->size, n = my eigen -> dimension;
+		long m = my groups -> size, n = my dimension;
 		autoTableOfReal thee = TableOfReal_create (m, n);
 
-		for (long i = 1; i <= m; i ++) {
-			SSCP sscp = my groups->at [i];
-			TableOfReal_setRowLabel (thee.get(), i, Thing_getName (sscp));
+		for (long i = 1; i <= m; i++) {
+			SSCP sscp = (SSCP) my groups -> item[i];
+			TableOfReal_setRowLabel (thee.peek(), i, Thing_getName (sscp));
 			long numberOfObservationsm1 = (long) floor (sscp -> numberOfObservations) - 1;
-			for (long j = 1; j <= n; j ++) {
-				thy data [i] [j] = numberOfObservationsm1 > 0 ? sqrt (sscp -> data [j] [j] / numberOfObservationsm1) : NUMundefined;
+			for (long j = 1; j <= n; j++) {
+				thy data[i][j] = numberOfObservationsm1 > 0 ? sqrt (sscp -> data[j][j] / numberOfObservationsm1) : NUMundefined;
 			}
 		}
-		NUMstrings_copyElements (my groups->at [m] -> columnLabels, thy columnLabels, 1, n);
-		return thee;
+		NUMstrings_copyElements ( ( (SSCP) my groups -> item[m]) -> columnLabels, thy columnLabels, 1, n);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": group standard deviations not extracted.");
 	}
@@ -211,7 +210,7 @@ double Discriminant_getWilksLambda (Discriminant me, long from) {
 	if (from < 1) {
 		from = 1;
 	}
-	return NUMwilksLambda (my eigen -> eigenvalues, 1 + from, numberOfFunctions);
+	return NUMwilksLambda (my eigenvalues, 1 + from, numberOfFunctions);
 }
 
 /*
@@ -219,37 +218,37 @@ double Discriminant_getWilksLambda (Discriminant me, long from) {
 	unstandardized u[j]: sqrt(N-g) * r[j]
 	standardized s[j]: u[j] sqrt (w[i][i] / (N-g))
 */
-autoTableOfReal Discriminant_extractCoefficients (Discriminant me, int choice) {
+TableOfReal Discriminant_extractCoefficients (Discriminant me, int choice) {
 	try {
 		int raw = choice == 0, standardized = choice == 2;
-		long nx = my eigen -> dimension, ny = my eigen -> numberOfEigenvalues;
+		long nx = my dimension, ny = my numberOfEigenvalues;
 
-		SSCP total = my total.get();
+		SSCP total = my total;
 		autoTableOfReal thee = TableOfReal_create (ny, nx + 1);
 		NUMstrings_copyElements (my total -> columnLabels, thy columnLabels, 1, nx);
 
-		autoSSCP within;
+		autoSSCP within = 0;
 		if (standardized) {
-			within = Discriminant_extractPooledWithinGroupsSSCP (me);
+			within.reset (Discriminant_extractPooledWithinGroupsSSCP (me));
 		}
 
-		TableOfReal_setColumnLabel (thee.get(), nx + 1, U"constant");
-		TableOfReal_setSequentialRowLabels (thee.get(), 1, ny, U"function_", 1, 1);
+		TableOfReal_setColumnLabel (thee.peek(), nx + 1, U"constant");
+		TableOfReal_setSequentialRowLabels (thee.peek(), 1, ny, U"function_", 1, 1);
 
 		double scale = sqrt (total -> numberOfObservations - my numberOfGroups);
 		double *centroid = my total -> centroid;
 		for (long i = 1; i <= ny; i++) {
-			double u0 = 0.0, ui;
+			double u0 = 0, ui;
 			for (long j = 1; j <= nx; j++) {
 				if (standardized) {
 					scale = sqrt (within -> data[j][j]);
 				}
-				thy data[i][j] = ui = scale * my eigen -> eigenvectors[i][j];;
+				thy data[i][j] = ui = scale * my eigenvectors[i][j];;
 				u0 += ui * centroid[j];
 			}
-			thy data[i][nx + 1] = raw ? 0.0 : -u0;
+			thy data[i][nx + 1] = raw ? 0 : -u0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": coefficients not extracted.");
 	}
@@ -257,45 +256,40 @@ autoTableOfReal Discriminant_extractCoefficients (Discriminant me, int choice) {
 
 static long Discriminant_getDegreesOfFreedom (Discriminant me) {
 	long ndf = 0;
-	for (long i = 1; i <= my groups->size; i ++) {
-		ndf += SSCP_getDegreesOfFreedom (my groups->at [i]);
+	for (long i = 1; i <= my groups -> size; i++) {
+		ndf += SSCP_getDegreesOfFreedom ((SSCP) my groups -> item[i]);
 	}
 	return ndf;
 }
 
-void Discriminant_getPartialDiscriminationProbability (Discriminant me, long numberOfDimensions, double *p_prob, double *p_chisq, double *p_df)
-{
+void Discriminant_getPartialDiscriminationProbability (Discriminant me,
+        long numberOfDimensions, double *probability, double *chisq, long *ndf) {
 	long g = my numberOfGroups;
-	long p = my eigen -> dimension, k = numberOfDimensions;
+	long p = my dimension, k = numberOfDimensions;
 	long numberOfFunctions = Discriminant_getNumberOfFunctions (me);
 	double degreesOfFreedom = Discriminant_getDegreesOfFreedom (me);
+	double lambda;
 
-	double prob = NUMundefined,  chisq = NUMundefined, df = NUMundefined;
+	*probability = 1; *chisq = 0; *ndf = 0;
 
-	if (k < numberOfFunctions) {
-		double lambda = NUMwilksLambda (my eigen -> eigenvalues, k + 1, numberOfFunctions);
-		if (lambda != 1.0) {
-			chisq = - (degreesOfFreedom + (g - p) / 2.0 - 1.0) * log (lambda);
-			df = (p - k) * (g - k - 1);
-			if (p_prob) {
-				prob =  NUMchiSquareQ (chisq, df);
-			}
-		}
-	}
-	if (p_prob) {
-		*p_prob = prob;
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
+	if (k >= numberOfFunctions) {
+		return;
 	}
-	if (p_df) {
-		*p_df = df;
+
+	lambda = NUMwilksLambda (my eigenvalues, k + 1, numberOfFunctions);
+
+	if (lambda == 1) {
+		return;
 	}
+
+	*chisq = - (degreesOfFreedom + (g - p) / 2 - 1) * log (lambda);
+	*ndf = (p - k) * (g - k - 1);
+	*probability =  NUMchiSquareQ (*chisq, *ndf);
 }
 
 double Discriminant_getConcentrationEllipseArea (Discriminant me, long group,
-        double scale, bool confidence, int discriminantDirections, long d1, long d2)
-{
+        double scale, int confidence, int discriminantDirections, long d1, long d2) {
+	SSCPs groups = my groups;
 	double area = NUMundefined;
 
 	if (group < 1 || group > my numberOfGroups) {
@@ -303,10 +297,10 @@ double Discriminant_getConcentrationEllipseArea (Discriminant me, long group,
 	}
 
 	if (discriminantDirections) {
-		autoSSCP thee = Eigen_and_SSCP_project (my eigen.get(), my groups->at [group]);
-		area = SSCP_getConcentrationEllipseArea (thee.get(), scale, confidence, d1, d2);
+		autoSSCP thee = Eigen_and_SSCP_project (me, (SSCP) groups -> item[group]);
+		area = SSCP_getConcentrationEllipseArea (thee.peek(), scale, confidence, d1, d2);
 	} else {
-		area = SSCP_getConcentrationEllipseArea (my groups->at [group], scale, confidence, d1, d2);
+		area = SSCP_getConcentrationEllipseArea ((SSCP) groups -> item[group], scale, confidence, d1, d2);
 	}
 	return area;
 }
@@ -315,62 +309,66 @@ double Discriminant_getLnDeterminant_group (Discriminant me, long group) {
 	if (group < 1 || group > my numberOfGroups) {
 		return NUMundefined;
 	}
-	autoCovariance c = SSCP_to_Covariance (my groups->at [group], 1);
-	double ln_d = SSCP_getLnDeterminant (c.get());
+	autoCovariance c = SSCP_to_Covariance ( (SSCP) my groups -> item[group], 1);
+	double ln_d = SSCP_getLnDeterminant (c.peek());
 	return ln_d;
 }
 
 double Discriminant_getLnDeterminant_total (Discriminant me) {
-	autoCovariance c = SSCP_to_Covariance (my total.get(), 1);
-	double ln_d = SSCP_getLnDeterminant (c.get());
+	autoCovariance c = SSCP_to_Covariance (my total, 1);
+	double ln_d = SSCP_getLnDeterminant (c.peek());
 	return ln_d;
 }
 
-autoSSCP Discriminant_extractPooledWithinGroupsSSCP (Discriminant me) {
-	return SSCPList_to_SSCP_pool (my groups.get());
+SSCP Discriminant_extractPooledWithinGroupsSSCP (Discriminant me) {
+	return SSCPs_to_SSCP_pool (my groups);
 }
 
-autoSSCP Discriminant_extractWithinGroupSSCP (Discriminant me, long index) {
+SSCP Discriminant_extractWithinGroupSSCP (Discriminant me, long index) {
 	try {
 		if (index < 1 || index > my numberOfGroups) Melder_throw
 			(U"Index must be in interval [1,", my numberOfGroups, U"].");
-		autoSSCP thee = Data_copy (my groups->at [index]);
-		return thee;
+		autoSSCP thee = Data_copy ( (SSCP) my groups -> item[index]);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": within group SSCP not created.");
 	}
 }
 
-autoSSCP Discriminant_extractBetweenGroupsSSCP (Discriminant me) {
+SSCP Discriminant_extractBetweenGroupsSSCP (Discriminant me) {
 	try {
 		long n = my total -> numberOfRows;
-		autoSSCP b = Data_copy (my total.get());
-		autoSSCP w = SSCPList_to_SSCP_pool (my groups.get());
-		for (long i = 1; i <= n; i ++) {
-			for (long j = i; j <= n; j ++) {
-				b -> data [j] [i] = (b -> data [i] [j] -= w -> data [i] [j]);
+		autoSSCP b = Data_copy (my total);
+		autoSSCP w = SSCPs_to_SSCP_pool (my groups);
+		for (long i = 1; i <= n; i++) {
+			for (long j = i; j <= n; j++) {
+				b -> data[j][i] = (b -> data[i][j] -= w -> data[i][j]);
 			}
 		}
-		return b;
+		return b.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": between group SSCP not created.");
 	}
 }
 
-void Discriminant_drawTerritorialMap (Discriminant me, Graphics g, int discriminantDirections, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, int poolCovarianceMatrices, int garnish) {
+void Discriminant_drawTerritorialMap (Discriminant me, Graphics g,
+                                      int discriminantDirections, long d1, long d2, double xmin, double xmax,
+                                      double ymin, double ymax, int fontSize, int poolCovarianceMatrices,
+                                      int garnish) {
 	(void) me; (void) g; (void) discriminantDirections; (void) d1; (void) d2;
 	(void) xmin; (void) xmax; (void) ymin;
 	(void) ymax; (void) fontSize; (void) poolCovarianceMatrices; (void) garnish;
 
 }
 
-void Discriminant_drawConcentrationEllipses (Discriminant me, Graphics g, double scale, bool confidence, char32 *label,
-	int discriminantDirections, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish)
-{
+void Discriminant_drawConcentrationEllipses (Discriminant me, Graphics g,
+        double scale, int confidence, char32 *label, int discriminantDirections, long d1, long d2,
+        double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
 	long numberOfFunctions = Discriminant_getNumberOfFunctions (me);
 
 	if (! discriminantDirections) {
-		SSCPList_drawConcentrationEllipses (my groups.get(), g, scale, confidence, label, d1, d2, xmin, xmax, ymin, ymax, fontSize, garnish);
+		SSCPs_drawConcentrationEllipses (my groups, g, scale, confidence, label,
+		                                 d1, d2, xmin, xmax, ymin, ymax, fontSize, garnish);
 		return;
 	}
 
@@ -389,33 +387,34 @@ void Discriminant_drawConcentrationEllipses (Discriminant me, Graphics g, double
 		return;
 	}
 
-	double *v1 = my eigen -> eigenvectors [d1];
-	double *v2 = my eigen -> eigenvectors [d2];
-
+	double *v1 = my eigenvectors[d1];
+	double *v2 = my eigenvectors[d2];
 
-	autoSSCPList thee = SSCPList_toTwoDimensions (my groups.get(), v1, v2);
+	autoSSCPs thee = SSCPs_toTwoDimensions (my groups, v1, v2);
 
-	SSCPList_drawConcentrationEllipses (thee.get(), g, scale, confidence, label, 1, 2, xmin, xmax, ymin, ymax, fontSize, 0);
+	SSCPs_drawConcentrationEllipses (thee.peek(), g, scale, confidence, label, 1, 2, xmin, xmax, ymin, ymax, fontSize, 0);
 
 	if (garnish) {
 		char32 llabel[40];
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		Melder_sprint (llabel,40, U"function ", d2);
-		Graphics_textLeft (g, true, llabel);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_textLeft (g, 1, llabel);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		Melder_sprint (llabel,40, U"function ", d1);
-		Graphics_textBottom (g, true, llabel);
+		Graphics_textBottom (g, 1, llabel);
 	}
 }
 
-autoDiscriminant TableOfReal_to_Discriminant (TableOfReal me) {
+Discriminant TableOfReal_to_Discriminant (TableOfReal me) {
 	try {
 		autoDiscriminant thee = Thing_new (Discriminant);
 		long dimension = my numberOfColumns;
 
-		if (! NUMdmatrix_hasFiniteElements(my data, 1, my numberOfRows, 1, my numberOfColumns)) {
-			Melder_throw (U"At least one of the table's elements is not finite or undefined.");
+		TableOfReal_areAllCellsDefined (me, 0, 0, 0, 0);
+
+		if (NUMdmatrix_hasInfinities (my data, 1, my numberOfRows, 1, dimension)) {
+			Melder_throw (U"Table contains infinities.");
 		}
 
 		if (! TableOfReal_hasRowLabels (me)) {
@@ -423,18 +422,18 @@ autoDiscriminant TableOfReal_to_Discriminant (TableOfReal me) {
 		}
 
 		autoTableOfReal mew = TableOfReal_sortOnlyByRowLabels (me);
-		if (! TableOfReal_hasColumnLabels (mew.get())) {
-			TableOfReal_setSequentialColumnLabels (mew.get(), 0, 0, U"c", 1, 1);
+		if (! TableOfReal_hasColumnLabels (mew.peek())) {
+			TableOfReal_setSequentialColumnLabels (mew.peek(), 0, 0, U"c", 1, 1);
 		}
 
-		thy groups = TableOfReal_to_SSCPList_byLabel (mew.get());
-		thy total = TableOfReal_to_SSCP (mew.get(), 0, 0, 0, 0);
+		thy groups = TableOfReal_to_SSCPs_byLabel (mew.peek());
+		thy total = TableOfReal_to_SSCP (mew.peek(), 0, 0, 0, 0);
 
-		if ((thy numberOfGroups = thy groups -> size) < 2) {
+		if ( (thy numberOfGroups = thy groups -> size) < 2) {
 			Melder_throw (U"Number of groups must be greater than one.");
 		}
 
-		TableOfReal_centreColumns_byRowLabel (mew.get());
+		TableOfReal_centreColumns_byRowLabel (mew.peek());
 
 		// Overall centroid and apriori probabilities and costs.
 
@@ -444,57 +443,57 @@ autoDiscriminant TableOfReal_to_Discriminant (TableOfReal me) {
 		thy costs = NUMmatrix<double> (1, thy numberOfGroups, 1, thy numberOfGroups);
 
 		double sum = 0, scale;
-		for (long k = 1; k <= thy numberOfGroups; k ++) {
-			SSCP m = thy groups->at [k];
+		for (long k = 1; k <= thy numberOfGroups; k++) {
+			SSCP m = (SSCP) thy groups -> item[k];
 			sum += scale = SSCP_getNumberOfObservations (m);
-			for (long j = 1; j <= dimension; j ++) {
-				centroid [j] += scale * m -> centroid [j];
+			for (long j = 1; j <= dimension; j++) {
+				centroid[j] += scale * m -> centroid[j];
 			}
 		}
 
-		for	(long j = 1; j <= dimension; j ++) {
-			centroid [j] /= sum;
+		for	(long j = 1; j <= dimension; j++) {
+			centroid[j] /= sum;
 		}
 
-		for (long k = 1; k <= thy numberOfGroups; k ++) {
-			SSCP m = thy groups->at [k];
+		for (long k = 1; k <= thy numberOfGroups; k++) {
+			SSCP m = (SSCP) thy groups -> item[k];
 			scale = SSCP_getNumberOfObservations (m);
 			thy aprioriProbabilities[k] = scale / my numberOfRows;
-			for (long j = 1; j <= dimension; j ++) {
-				between [k] [j] = sqrt (scale) * (m -> centroid [j] - centroid [j]);
+			for (long j = 1; j <= dimension; j++) {
+				between[k][j] = sqrt (scale) * (m -> centroid[j] - centroid[j]);
 			}
 		}
 
 		// We need to solve B'B.x = lambda W'W.x, where B'B and W'W are the between and within covariance matrices.
 		// We do not calculate these covariance matrices directly from the data but instead use the GSVD to solve for
 		// the eigenvalues and eigenvectors of the equation.
-		
-		thy eigen = Thing_new (Eigen);
-		Eigen_initFromSquareRootPair (thy eigen.get(), between.peek(), thy numberOfGroups, dimension, mew -> data, my numberOfRows);
+
+		Eigen_initFromSquareRootPair (thee.peek(), between.peek(), thy numberOfGroups, dimension, mew -> data, my numberOfRows);
 
 		// Default priors and costs
 
-		for (long igroup = 1; igroup <= thy numberOfGroups; igroup ++) {
-			for (long jgroup = igroup + 1; jgroup <= thy numberOfGroups; jgroup ++) {
-				thy costs [igroup] [jgroup] = thy costs [jgroup] [igroup] = 1.0;
+		for (long k = 1; k <= thy numberOfGroups; k++) {
+			for (long j = k + 1; j <= thy numberOfGroups; j++) {
+				thy costs[k][j] = thy costs[j][k] = 1;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Discriminant not created.");
 	}
 }
 
-autoConfiguration Discriminant_and_TableOfReal_to_Configuration (Discriminant me, TableOfReal thee, long numberOfDimensions) {
+Configuration Discriminant_and_TableOfReal_to_Configuration (Discriminant me, TableOfReal thee, long numberOfDimensions) {
 	try {
 		if (numberOfDimensions == 0) {
 			numberOfDimensions = Discriminant_getNumberOfFunctions (me);
 		}
 		autoConfiguration him = Configuration_create (thy numberOfRows, numberOfDimensions);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (my eigen.get(), thee, 1, him.get(), 1, numberOfDimensions);
-		TableOfReal_copyLabels (thee, him.get(), 1, 0);
-		TableOfReal_setSequentialColumnLabels (him.get(), 0, 0, U"Eigenvector ", 1, 1);
-		return him;
+		Configuration thim = him.peek();
+		Eigen_and_TableOfReal_project_into (me, thee, 1, thy numberOfColumns, & thim, 1, numberOfDimensions);
+		TableOfReal_copyLabels (thee, thim, 1, 0);
+		TableOfReal_setSequentialColumnLabels (him.peek(), 0, 0, U"Eigenvector ", 1, 1);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Configuration not created.");
 	}
@@ -505,72 +504,73 @@ autoConfiguration Discriminant_and_TableOfReal_to_Configuration (Discriminant me
 	Input matrix (li) is the inverse L^-1 of the Cholesky decomposition
 	S = L.L'.
 */
-static double mahalanobisDistanceSq (double **li, long n, double *v, double *m, double *buf) {
-	for (long i = 1; i <= n; i ++) {
-		buf [i] = v [i] - m [i];
+static double mahalanobisDistanceSq (double **li, long n, double *v, double *m,
+                                     double *buf) {
+	for (long i = 1; i <= n; i++) {
+		buf[i] = v[i] - m[i];
 	}
 
-	double chisq = 0.0;
+	double chisq = 0;
 	for (long i = n; i > 0; i--) {
-		double t = 0.0;
-		for (long j = 1; j <= i; j ++) {
-			t += li [i] [j] * buf [j];
+		double t = 0;
+		for (long j = 1; j <= i; j++) {
+			t += li[i][j] * buf[j];
 		}
 		chisq += t * t;
 	}
 	return chisq;
 }
 
-autoTableOfReal Discriminant_and_TableOfReal_mahalanobis (Discriminant me, TableOfReal thee, long group, bool poolCovarianceMatrices) {
+TableOfReal Discriminant_and_TableOfReal_mahalanobis (Discriminant me, TableOfReal thee, long group, bool poolCovarianceMatrices) {
 	try {
 		if (group < 1 || group > my numberOfGroups) {
 			Melder_throw (U"Group does not exist.");
 		}
-		autoSSCP pool = SSCPList_to_SSCP_pool (my groups.get());
-		autoCovariance covg = SSCP_to_Covariance (pool.get(), my numberOfGroups);
-		autoCovariance cov = SSCP_to_Covariance (my groups->at [group], 1);
-		autoTableOfReal him;
+		autoSSCP pool = SSCPs_to_SSCP_pool (my groups);
+		autoCovariance covg = SSCP_to_Covariance (pool.peek(), my numberOfGroups);
+		autoCovariance cov = SSCP_to_Covariance ( (SSCP) my groups -> item[group], 1);
+		autoTableOfReal him = 0;
 		if (poolCovarianceMatrices) { // use group mean instead of overall mean!
 			NUMvector_copyElements (cov -> centroid, covg -> centroid, 1, cov -> numberOfColumns);
-			him = Covariance_and_TableOfReal_mahalanobis (covg.get(), thee, false);
+			him.reset (Covariance_and_TableOfReal_mahalanobis (covg.peek(), thee, false));
 		} else {
-			him = Covariance_and_TableOfReal_mahalanobis (cov.get(), thee, false);
+			him.reset (Covariance_and_TableOfReal_mahalanobis (cov.peek(), thee, false));
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not created.");
 	}
 }
 
-autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable (Discriminant me, TableOfReal thee,
+ClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable (Discriminant me, TableOfReal thee,
         int poolCovarianceMatrices, int useAprioriProbabilities) {
 	try {
-		long g = Discriminant_getNumberOfGroups (me);   // ppgb wat betekent g?
-		long p = Eigen_getDimensionOfComponents (my eigen.get());   // ppgb wat betekent p?
-		long m = thy numberOfRows;   // ppgb wat betekent m?
+		long g = Discriminant_getNumberOfGroups (me);
+		long p = Eigen_getDimensionOfComponents (me);
+		long m = thy numberOfRows;
+
+		if (p != thy numberOfColumns) Melder_throw
+			(U"The number of columns does not agree with the dimension of the discriminant.");
 
-		if (p != thy numberOfColumns) {
-			Melder_throw (U"The number of columns does not agree with the dimension of the discriminant.");
-		}
 		autoNUMvector<double> log_p (1, g);
 		autoNUMvector<double> log_apriori (1, g);
 		autoNUMvector<double> ln_determinant (1, g);
 		autoNUMvector<double> buf (1, p);
 		autoNUMvector<SSCP> sscpvec (1, g);
-		autoSSCP pool = SSCPList_to_SSCP_pool (my groups.get());
+		autoSSCP pool = SSCPs_to_SSCP_pool (my groups);
 		autoClassificationTable him = ClassificationTable_create (m, g);
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, m);
 
 		// Scale the sscp to become a covariance matrix.
 
-		for (long i = 1; i <= p; i ++) {
-			for (long k = i; k <= p; k ++) {
-				pool -> data [k] [i] = pool -> data [i] [k] /= pool -> numberOfObservations - g;
+		for (long i = 1; i <= p; i++) {
+			for (long k = i; k <= p; k++) {
+				pool -> data[k][i] = (pool -> data[i][k] /= (pool -> numberOfObservations - g));
 			}
 		}
 
 		double lnd;
-		autoSSCPList agroups; SSCPList groups;   // ppgb FIXME dit kan niet goed izjn
+		autoSSCPs agroups = 0; SSCPs groups;
 		if (poolCovarianceMatrices) {
 			/*
 				Covariance matrix S can be decomposed as S = L.L'. Calculate L^-1.
@@ -579,40 +579,39 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable (Dis
 			*/
 
 			NUMlowerCholeskyInverse (pool -> data, p, &lnd);
-			for (long j = 1; j <= g; j ++) {
-				ln_determinant [j] = lnd;
-				sscpvec [j] = pool.get();
+			for (long j = 1; j <= g; j++) {
+				ln_determinant[j] = lnd;
+				sscpvec[j] = pool.peek();
 			}
-			groups = my groups.get();
+			groups = (SSCPs) my groups;
 		} else {
 			// Calculate the inverses of all group covariance matrices.
 			// In case of a singular matrix, substitute inverse of pooled.
 
-			agroups = Data_copy (my groups.get());
-			groups = agroups.get();
+			agroups.reset (Data_copy ( (SSCPs) my groups)); groups = agroups.peek();
 			long npool = 0;
-			for (long j = 1; j <= g; j ++) {
-				SSCP t = groups->at [j];
+			for (long j = 1; j <= g; j++) {
+				SSCP t = (SSCP) groups -> item[j];
 				long no = (long) floor (SSCP_getNumberOfObservations (t));
-				for (long i = 1; i <= p; i ++) {
-					for (long k = i; k <= p; k ++) {
-						t -> data [k] [i] = t -> data [i] [k] /= no - 1;
+				for (long i = 1; i <= p; i++) {
+					for (long k = i; k <= p; k++) {
+						t -> data[k][i] = (t -> data[i][k] /= (no - 1));
 					}
 				}
-				sscpvec [j] = groups->at [j];
+				sscpvec[j] = (SSCP) groups -> item[j];
 				try {
-					NUMlowerCholeskyInverse (t -> data, p, & ln_determinant [j]);
+					NUMlowerCholeskyInverse (t -> data, p, &ln_determinant[j]);
 				} catch (MelderError) {
 					// Try the alternative: the pooled covariance matrix.
 					// Clear the error.
 
 					Melder_clearError ();
 					if (npool == 0) {
-						NUMlowerCholeskyInverse (pool -> data, p, & lnd);
+						NUMlowerCholeskyInverse (pool -> data, p, &lnd);
 					}
-					npool ++;
-					sscpvec [j] = pool.get();
-					ln_determinant [j] = lnd;
+					npool++;
+					sscpvec[j] = pool.peek();
+					ln_determinant[j] = lnd;
 				}
 			}
 			if (npool > 0) {
@@ -622,12 +621,12 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable (Dis
 
 		// Labels for columns in ClassificationTable
 
-		for (long j = 1; j <= g; j ++) {
-			const char32 *name = Thing_getName (my groups->at [j]);
+		for (long j = 1; j <= g; j++) {
+			const char32 *name = Thing_getName ( (Thing) my groups -> item[j]);
 			if (! name) {
 				name = U"?";
 			}
-			TableOfReal_setColumnLabel (him.get(), j, name);
+			TableOfReal_setColumnLabel (him.peek(), j, name);
 		}
 
 		// Normalize the sum of the apriori probabilities to 1.
@@ -635,41 +634,42 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable (Dis
 
 		NUMvector_normalize1 (my aprioriProbabilities, g);
 		double logg = log (g);
-		for (long j = 1; j <= g; j ++) {
-			log_apriori [j] = useAprioriProbabilities ? log (my aprioriProbabilities [j]) : - logg;
+		for (long j = 1; j <= g; j++) {
+			log_apriori[j] = useAprioriProbabilities ? log (my aprioriProbabilities[j]) : - logg;
 		}
 
 		// Generalized squared distance function:
 		// D^2(x) = (x - mu)' S^-1 (x - mu) + ln (determinant(S)) - 2 ln (apriori)
 
-		for (long i = 1; i <= m; i ++) {
-			double norm = 0.0, pt_max = -1e308;
-			for (long j = 1; j <= g; j ++) {
-				SSCP t = groups->at [j];
-				double md = mahalanobisDistanceSq (sscpvec [j] -> data, p, thy data [i], t -> centroid, buf.peek());
-				double pt = log_apriori [j] - 0.5 * (ln_determinant [j] + md);
+		for (long i = 1; i <= m; i++) {
+			double norm = 0, pt_max = -1e38;
+			for (long j = 1; j <= g; j++) {
+				SSCP t = (SSCP) groups -> item[j];
+				double md = mahalanobisDistanceSq (sscpvec[j] -> data, p, thy data[i], t -> centroid, buf.peek());
+				double pt = log_apriori[j] - 0.5 * (ln_determinant[j] + md);
 				if (pt > pt_max) {
 					pt_max = pt;
 				}
 				log_p[j] = pt;
 			}
-			for (long j = 1; j <= g; j ++) {
-				norm += log_p [j] = exp (log_p [j] - pt_max);
+			for (long j = 1; j <= g; j++) {
+				norm += (log_p[j] = exp (log_p[j] - pt_max));
 			}
-			for (long j = 1; j <= g; j ++) {
-				his data [i] [j] = log_p [j] / norm;
+			for (long j = 1; j <= g; j++) {
+				his data[i][j] = log_p[j] / norm;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ClassificationTable from Discriminant & TableOfReal not created.");
 	}
 }
 
-autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw (Discriminant me, TableOfReal thee, int poolCovarianceMatrices, int useAprioriProbabilities, double alpha, double minProb, autoTableOfReal *displacements) {
+ClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw (Discriminant me, TableOfReal thee,
+        int poolCovarianceMatrices, int useAprioriProbabilities, double alpha, double minProb, TableOfReal *displacements) {
 	try {
 		long g = Discriminant_getNumberOfGroups (me);
-		long p = Eigen_getDimensionOfComponents (my eigen.get());
+		long p = Eigen_getDimensionOfComponents (me);
 		long m = thy numberOfRows;
 
 		if (p != thy numberOfColumns) Melder_throw
@@ -682,62 +682,60 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw (
 		autoNUMvector<double> displacement (1, p);
 		autoNUMvector<double> x (1, p);
 		autoNUMvector<SSCP> sscpvec (1, g);
-		autoSSCP pool = SSCPList_to_SSCP_pool (my groups.get());
+		autoSSCP pool = SSCPs_to_SSCP_pool (my groups);
 		autoClassificationTable him = ClassificationTable_create (m, g);
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, m);
 		autoTableOfReal adisplacements = Data_copy (thee);
 
 		// Scale the sscp to become a covariance matrix.
 
-		for (long i = 1; i <= p; i ++) {
-			for (long k = i; k <= p; k ++) {
-				pool -> data [k] [i] = pool -> data [i] [k] /= pool -> numberOfObservations - g;
+		for (long i = 1; i <= p; i++) {
+			for (long k = i; k <= p; k++) {
+				pool -> data[k][i] = (pool -> data[i][k] /= (pool -> numberOfObservations - g));
 			}
 		}
 
 		double lnd;
-		autoSSCPList agroups;
-		SSCPList groups;
+		autoSSCPs agroups = 0; SSCPs groups;
 		if (poolCovarianceMatrices) {
 			// Covariance matrix S can be decomposed as S = L.L'. Calculate L^-1.
 			// L^-1 will be used later in the Mahalanobis distance calculation:
 			// v'.S^-1.v == v'.L^-1'.L^-1.v == (L^-1.v)'.(L^-1.v).
 
-			NUMlowerCholeskyInverse (pool -> data, p, & lnd);
-			for (long j = 1; j <= g; j ++) {
-				ln_determinant [j] = lnd;
-				sscpvec [j] = pool.get();
+			NUMlowerCholeskyInverse (pool -> data, p, &lnd);
+			for (long j = 1; j <= g; j++) {
+				ln_determinant[j] = lnd;
+				sscpvec[j] = pool.peek();
 			}
-			groups = my groups.get();
+			groups = my groups;
 		} else {
 			//Calculate the inverses of all group covariance matrices.
 			// In case of a singular matrix, substitute inverse of pooled.
 
-			agroups = Data_copy (my groups.get()); 
-			groups = agroups.get();
+			agroups.reset (Data_copy ( (SSCPs) my groups)); groups = agroups.peek();
 			long npool = 0;
-			for (long j = 1; j <= g; j ++) {
-				SSCP t = groups->at [j];
+			for (long j = 1; j <= g; j++) {
+				SSCP t = (SSCP) groups -> item[j];
 				long no = (long) floor (SSCP_getNumberOfObservations (t));
-				for (long i = 1; i <= p; i ++) {
-					for (long k = i; k <= p; k ++) {
-						t -> data [k] [i] = t -> data [i] [k] /= no - 1;
+				for (long i = 1; i <= p; i++) {
+					for (long k = i; k <= p; k++) {
+						t -> data[k][i] = (t -> data[i][k] /= (no - 1));
 					}
 				}
-				sscpvec [j] = groups->at [j];
+				sscpvec[j] = (SSCP) groups -> item[j];
 				try {
-					NUMlowerCholeskyInverse (t -> data, p, & ln_determinant [j]);
+					NUMlowerCholeskyInverse (t -> data, p, &ln_determinant[j]);
 				} catch (MelderError) {
 					// Try the alternative: the pooled covariance matrix.
 					// Clear the error.
 
 					Melder_clearError ();
 					if (npool == 0) {
-						NUMlowerCholeskyInverse (pool -> data, p, & lnd);
+						NUMlowerCholeskyInverse (pool -> data, p, &lnd);
 					}
-					npool ++;
-					sscpvec [j] = pool.get();
-					ln_determinant [j] = lnd;
+					npool++;
+					sscpvec[j] = pool.peek();
+					ln_determinant[j] = lnd;
 				}
 			}
 			if (npool > 0) {
@@ -747,12 +745,12 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw (
 
 		// Labels for columns in ClassificationTable
 
-		for (long j = 1; j <= g; j ++) {
-			const char32 *name = Thing_getName (my groups->at [j]);
+		for (long j = 1; j <= g; j++) {
+			const char32 *name = Thing_getName ( (Thing) my groups -> item[j]);
 			if (! name) {
 				name = U"?";
 			}
-			TableOfReal_setColumnLabel (him.get(), j, name);
+			TableOfReal_setColumnLabel (him.peek(), j, name);
 		}
 
 		// Normalize the sum of the apriori probabilities to 1.
@@ -760,61 +758,60 @@ autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw (
 
 		double logg = log (g);
 		NUMvector_normalize1 (my aprioriProbabilities, g);
-		for (long j = 1; j <= g; j ++) {
-			log_apriori[j] = ( useAprioriProbabilities ? log (my aprioriProbabilities[j]) : - logg );
+		for (long j = 1; j <= g; j++) {
+			log_apriori[j] = useAprioriProbabilities ? log (my aprioriProbabilities[j]) : - logg;
 		}
 
 		// Generalized squared distance function:
 		// D^2(x) = (x - mu)' S^-1 (x - mu) + ln (determinant(S)) - 2 ln (apriori)
 
-		for (long i = 1; i <= m; i ++) {
+		for (long i = 1; i <= m; i++) {
 			SSCP winner;
-			double norm = 0, pt_max = -1e308;
+			double norm = 0, pt_max = -1e38;
 			long iwinner = 1;
-			for (long k = 1; k <= p; k ++) {
-				x [k] = thy data [i] [k] + displacement [k];
+			for (long k = 1; k <= p; k++) {
+				x[k] = thy data[i][k] + displacement[k];
 			}
-			for (long j = 1; j <= g; j ++) {
-				SSCP t = groups->at [j];
-				double md = mahalanobisDistanceSq (sscpvec [j] -> data, p, x.peek(), t -> centroid, buf.peek());
-				double pt = log_apriori [j] - 0.5 * (ln_determinant [j] + md);
+			for (long j = 1; j <= g; j++) {
+				SSCP t = (SSCP) groups -> item[j];
+				double md = mahalanobisDistanceSq (sscpvec[j] -> data, p, x.peek(), t -> centroid, buf.peek());
+				double pt = log_apriori[j] - 0.5 * (ln_determinant[j] + md);
 				if (pt > pt_max) {
-					pt_max = pt;
-					iwinner = j;
+					pt_max = pt; iwinner = j;
 				}
-				log_p [j] = pt;
+				log_p[j] = pt;
 			}
-			for (long j = 1; j <= g; j ++) {
-				norm += log_p [j] = exp (log_p [j] - pt_max);
+			for (long j = 1; j <= g; j++) {
+				norm += (log_p[j] = exp (log_p[j] - pt_max));
 			}
 
-			for (long j = 1; j <= g; j ++) {
-				his data [i] [j] = log_p [j] / norm;
+			for (long j = 1; j <= g; j++) {
+				his data[i][j] = log_p[j] / norm;
 			}
 
 			// Save old displacement, calculate new displacement
 
-			winner = groups->at [iwinner];
-			for (long k = 1; k <= p; k ++) {
-				adisplacements -> data [i] [k] = displacement [k];
-				if (his data [i] [iwinner] > minProb) {
-					double delta_k = winner -> centroid [k] - x [k];
-					displacement [k] += alpha * delta_k;
+			winner = (SSCP) groups -> item[iwinner];
+			for (long k = 1; k <= p; k++) {
+				adisplacements -> data[i][k] = displacement[k];
+				if (his data[i][iwinner] > minProb) {
+					double delta_k = winner -> centroid[k] - x[k];
+					displacement[k] += alpha * delta_k;
 				}
 			}
 		}
-		*displacements = adisplacements.move();
-		return him;
+		*displacements = adisplacements.transfer();
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ClassificationTable for Weenink procedure not created.");
 	}
 }
 
-autoConfiguration TableOfReal_to_Configuration_lda (TableOfReal me, long numberOfDimensions) {
+Configuration TableOfReal_to_Configuration_lda (TableOfReal me, long numberOfDimensions) {
 	try {
 		autoDiscriminant thee = TableOfReal_to_Discriminant (me);
-		autoConfiguration him = Discriminant_and_TableOfReal_to_Configuration (thee.get(), me, numberOfDimensions);
-		return him;
+		autoConfiguration him = Discriminant_and_TableOfReal_to_Configuration (thee.peek(), me, numberOfDimensions);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Configuration with lda data not created.");
 	}
@@ -823,4 +820,4 @@ autoConfiguration TableOfReal_to_Configuration_lda (TableOfReal me, long numberO
 #undef MAX
 #undef MIN
 
-/* End of file Discriminant.cpp */
+/* End of file Discriminant.c 1043*/
diff --git a/dwtools/Discriminant.h b/dwtools/Discriminant.h
index d800364..7f8204b 100644
--- a/dwtools/Discriminant.h
+++ b/dwtools/Discriminant.h
@@ -2,7 +2,7 @@
 #define _Discriminant_h_
 /* Discriminant.h
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,8 +26,9 @@
 #include "SSCP.h"
 
 #include "Discriminant_def.h"
+oo_CLASS_CREATE (Discriminant, Eigen);
 
-autoDiscriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension);
+Discriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension);
 
 long Discriminant_groupLabelToIndex (Discriminant me, const char32 *label);
 
@@ -42,13 +43,12 @@ long Discriminant_getNumberOfFunctions (Discriminant me);
 double Discriminant_getWilksLambda (Discriminant me, long numberOfDimensions);
 
 void Discriminant_getPartialDiscriminationProbability (Discriminant me,
-	long numberOfDimensions, double *probability, double *chisq, double *df);
+	long numberOfDimensions, double *probability, double *chisq, long *ndf);
 
 double Discriminant_getConcentrationEllipseArea (Discriminant me, long group,
-	double scale, bool confidence, int discriminantDirections, long d1, long d2);
+	double scale, int confidence, int discriminantDirections, long d1, long d2);
 
 double Discriminant_getLnDeterminant_group (Discriminant me, long group);
-
 double Discriminant_getLnDeterminant_total (Discriminant me);
 
 void Discriminant_drawTerritorialMap (Discriminant me, Graphics g, int discriminantDirections,
@@ -56,39 +56,39 @@ void Discriminant_drawTerritorialMap (Discriminant me, Graphics g, int discrimin
 	int poolCovarianceMatrices, int garnish);
 
 void Discriminant_drawConcentrationEllipses (Discriminant me, Graphics g,
-	double scale, bool confidence, char32 *label, int discriminantDirections,
+	double scale, int confidence, char32 *label, int discriminantDirections,
 	long d1, long d2, double xmin, double xmax, double ymin, double ymax,
 	int fontSize, int garnish);
 
-autoTableOfReal Discriminant_extractCoefficients (Discriminant me, int choice);
-
-autoTableOfReal Discriminant_extractGroupCentroids (Discriminant me);
-
-autoTableOfReal Discriminant_extractGroupStandardDeviations (Discriminant me);
-
-autoSSCP Discriminant_extractPooledWithinGroupsSSCP (Discriminant me);
-
-autoSSCP Discriminant_extractWithinGroupSSCP (Discriminant me, long index);
-
-autoSSCP Discriminant_extractBetweenGroupsSSCP (Discriminant me);
+TableOfReal Discriminant_extractCoefficients (Discriminant me, int choice);
 
-autoStrings Discriminant_extractGroupLabels (Discriminant me);
+TableOfReal Discriminant_extractGroupCentroids (Discriminant me);
+TableOfReal Discriminant_extractGroupStandardDeviations (Discriminant me);
 
+SSCP Discriminant_extractPooledWithinGroupsSSCP (Discriminant me);
+SSCP Discriminant_extractWithinGroupSSCP (Discriminant me, long index);
+SSCP Discriminant_extractBetweenGroupsSSCP (Discriminant me);
+Strings Discriminant_extractGroupLabels (Discriminant me);
 void Discriminant_setGroupLabels (Discriminant me, Strings thee);
 
-autoConfiguration Discriminant_and_TableOfReal_to_Configuration	(Discriminant me, TableOfReal thee, long numberOfDimensions);
+Configuration Discriminant_and_TableOfReal_to_Configuration
+	(Discriminant me, TableOfReal thee, long numberOfDimensions);
 
-autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable
-	(Discriminant me, TableOfReal thee, int poolCovarianceMatrices,	int useAprioriProbabilities);
+ClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable
+	(Discriminant me, TableOfReal thee, int poolCovarianceMatrices,
+	int useAprioriProbabilities);
 
-autoClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw
-	(Discriminant me, TableOfReal thee, int poolCovarianceMatrices,	int useAprioriProbabilities, double alpha, double minProb, autoTableOfReal *displacements);
+ClassificationTable Discriminant_and_TableOfReal_to_ClassificationTable_dw
+	(Discriminant me, TableOfReal thee, int poolCovarianceMatrices,
+	int useAprioriProbabilities, double alpha, double minProb,
+	TableOfReal *displacements);
 
-autoTableOfReal Discriminant_and_TableOfReal_mahalanobis (Discriminant me, TableOfReal thee, long group, bool poolCovarianceMatrices);
+TableOfReal Discriminant_and_TableOfReal_mahalanobis (Discriminant me, TableOfReal thee, long group, bool poolCovarianceMatrices);
 /* Mahalanobis distance with respect to group mean */
 
-autoDiscriminant TableOfReal_to_Discriminant (TableOfReal me);
+Discriminant TableOfReal_to_Discriminant (TableOfReal me);
 
-autoConfiguration TableOfReal_to_Configuration_lda (TableOfReal me, long numberOfDimensions);
+Configuration TableOfReal_to_Configuration_lda (TableOfReal me,
+	long numberOfDimensions);
 
 #endif /* _Discriminant_h_ */
diff --git a/dwtools/Discriminant_Pattern_Categories.cpp b/dwtools/Discriminant_Pattern_Categories.cpp
index bc884b4..14954cd 100644
--- a/dwtools/Discriminant_Pattern_Categories.cpp
+++ b/dwtools/Discriminant_Pattern_Categories.cpp
@@ -1,6 +1,6 @@
 /* Discriminant_Pattern_Categories.cpp
  *
- * Copyright (C) 2004-2011, 2015 David Weenink
+ * Copyright (C) 2004-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,22 +25,24 @@
 #include "TableOfReal.h"
 #include "Matrix_Categories.h"
 
-autoDiscriminant Pattern_and_Categories_to_Discriminant (Pattern me, Categories thee) {
+Discriminant Pattern_and_Categories_to_Discriminant (Pattern me, Categories thee) {
 	try {
 		autoTableOfReal t = Matrix_and_Categories_to_TableOfReal (me, thee);
-		autoDiscriminant him = TableOfReal_to_Discriminant (t.get());
-		return him;
+		autoDiscriminant him = TableOfReal_to_Discriminant (t.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Discriminant not created from Pattern & Categories.");
 	}
 }
 
-autoCategories Discriminant_and_Pattern_to_Categories (Discriminant me, Pattern thee, int poolCovarianceMatrices, int useAprioriProbabilities) {
+Categories Discriminant_and_Pattern_to_Categories (Discriminant me, Pattern thee,
+        int poolCovarianceMatrices, int useAprioriProbabilities) {
 	try {
 		autoTableOfReal t = Matrix_to_TableOfReal (thee);
-		autoClassificationTable ct = Discriminant_and_TableOfReal_to_ClassificationTable (me, t.get(), poolCovarianceMatrices, useAprioriProbabilities);
-		autoCategories him =  ClassificationTable_to_Categories_maximumProbability (ct.get());
-		return him;
+		autoClassificationTable ct = Discriminant_and_TableOfReal_to_ClassificationTable (me, t.peek(),
+		                             poolCovarianceMatrices, useAprioriProbabilities);
+		autoCategories him =  ClassificationTable_to_Categories_maximumProbability (ct.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Categories not created from Pattern & Discriminant.");
 	}
diff --git a/dwtools/Discriminant_Pattern_Categories.h b/dwtools/Discriminant_Pattern_Categories.h
index 38bc093..a6b9738 100644
--- a/dwtools/Discriminant_Pattern_Categories.h
+++ b/dwtools/Discriminant_Pattern_Categories.h
@@ -2,7 +2,7 @@
 #define _Discriminant_Pattern_Categories_h_
 /* Discriminant_Pattern_Categories.h
  *
- * Copyright (C) 2004-2011, 2015 David Weenink
+ * Copyright (C) 2004-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,8 +34,9 @@
 	#include "Categories.h"
 #endif
 
-autoDiscriminant Pattern_and_Categories_to_Discriminant (Pattern me, Categories thee);
+Discriminant Pattern_and_Categories_to_Discriminant (Pattern me, Categories thee);
 
-autoCategories Discriminant_and_Pattern_to_Categories (Discriminant me, Pattern thee, int poolCovarianceMatrices, int useAprioriProbabilities);
+Categories Discriminant_and_Pattern_to_Categories (Discriminant me, Pattern thee, 
+	int poolCovarianceMatrices,int useAprioriProbabilities);
 
 #endif /* _Discriminant_Pattern_Categories_h_ */
diff --git a/dwtools/Discriminant_def.h b/dwtools/Discriminant_def.h
index 1c83925..6e9d2ef 100644
--- a/dwtools/Discriminant_def.h
+++ b/dwtools/Discriminant_def.h
@@ -19,24 +19,11 @@
 
 
 #define ooSTRUCT Discriminant
-oo_DEFINE_CLASS (Discriminant, Daata)
-	oo_FROM (1)
-		oo_AUTO_OBJECT (Eigen, 0, eigen)
-	oo_ENDFROM
-
-	#if oo_READING
-		if (formatVersion < 1) {
-			eigen = Thing_new (Eigen);
-			oo_LONG (eigen -> numberOfEigenvalues)
-			oo_LONG (eigen -> dimension)
-			oo_DOUBLE_VECTOR (eigen -> eigenvalues, eigen -> numberOfEigenvalues)
-			oo_DOUBLE_MATRIX (eigen -> eigenvectors, eigen -> numberOfEigenvalues, eigen -> dimension)
-		}
-	#endif
+oo_DEFINE_CLASS (Discriminant, Eigen)
 	
 	oo_LONG (numberOfGroups)
-	oo_AUTO_OBJECT (SSCPList, 0, groups)
-	oo_AUTO_OBJECT (SSCP, 0, total)
+	oo_OBJECT (SSCPs, 0, groups)
+	oo_OBJECT (SSCP, 0, total)
 	oo_DOUBLE_VECTOR (aprioriProbabilities, numberOfGroups)
 	oo_DOUBLE_MATRIX (costs, numberOfGroups, numberOfGroups)
 
diff --git a/dwtools/Distance.cpp b/dwtools/Distance.cpp
index 51a1961..e35dc94 100644
--- a/dwtools/Distance.cpp
+++ b/dwtools/Distance.cpp
@@ -1,6 +1,6 @@
 /* Distance.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,11 +26,11 @@
 
 Thing_implement (Distance, Proximity, 0);
 
-autoDistance Distance_create (long numberOfPoints) {
+Distance Distance_create (long numberOfPoints) {
 	try {
 		autoDistance me = Thing_new (Distance);
-		Proximity_init (me.get(), numberOfPoints);
-		return me;
+		Proximity_init (me.peek(), numberOfPoints);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
diff --git a/dwtools/Distance.h b/dwtools/Distance.h
index 8f28abc..727f0a2 100644
--- a/dwtools/Distance.h
+++ b/dwtools/Distance.h
@@ -2,7 +2,7 @@
 #define _Distance_h_
 /* Distance.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 Thing_define (Distance, Proximity) {
 };
 
-autoDistance Distance_create (long numberOfPoints);
+Distance Distance_create (long numberOfPoints);
 
 void Distance_drawDendogram (Distance me, Graphics g, int method);
 
diff --git a/dwtools/EEG_extensions.cpp b/dwtools/EEG_extensions.cpp
index 760c899..96714b5 100644
--- a/dwtools/EEG_extensions.cpp
+++ b/dwtools/EEG_extensions.cpp
@@ -1,6 +1,6 @@
 /* EEG_extensions.cpp
  *
- * Copyright (C) 2012-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2012-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,17 +26,17 @@
 #include "Spectrum_extensions.h"
 #include "Sound_and_Spectrum.h"
 
-static autoEEG EEG_copyWithoutSound (EEG me) {
+static EEG EEG_copyWithoutSound (EEG me) {
 	try {
  		autoEEG thee = EEG_create (my xmin, my xmax);
 		thy numberOfChannels = my numberOfChannels;
-		thy textgrid = Data_copy (my textgrid.get());
+		thy textgrid = (TextGrid) Data_copy (my textgrid);
 		autostring32vector channelNames (1, my numberOfChannels);
 		for (long i = 1; i <= my numberOfChannels; i++) {
 			channelNames[i] = Melder_dup (my channelNames[i]);
 		}
 		thy channelNames = channelNames.transfer();
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not copied.");
 	}
@@ -81,7 +81,7 @@ static void EEG_setChannelNames_selected (EEG me, const char32 *precursor, long
 	}
 }
 
-autoCrossCorrelationTable EEG_to_CrossCorrelationTable (EEG me, double startTime, double endTime, double lagStep, const char32 *channelRanges)
+CrossCorrelationTable EEG_to_CrossCorrelationTable (EEG me, double startTime, double endTime, double lagStep, const char32 *channelRanges)
 {
 	try {
 		// autowindow
@@ -97,36 +97,36 @@ autoCrossCorrelationTable EEG_to_CrossCorrelationTable (EEG me, double startTime
 		}
 		autoEEG thee = EEG_extractPart (me, startTime, endTime, true);
 		long numberOfChannels;
-		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (channelRanges, thy numberOfChannels, & numberOfChannels, nullptr, U"channel", true), 1);
-		autoSound soundPart = Sound_copyChannelRanges (thy sound.get(), channelRanges);
-		autoCrossCorrelationTable him = Sound_to_CrossCorrelationTable (soundPart.get(), startTime, endTime, lagStep);
+		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (channelRanges, thy numberOfChannels, & numberOfChannels, NULL, U"channel", true), 1);
+		autoSound soundPart = Sound_copyChannelRanges (thy sound, channelRanges);
+		autoCrossCorrelationTable him = Sound_to_CrossCorrelationTable (soundPart.peek(), startTime, endTime, lagStep);
 		// assign channel names
 		for (long i = 1; i <= numberOfChannels; i++) {
 			long ichannel = channels[i];
 			char32 *label = my channelNames[ichannel];
-			TableOfReal_setRowLabel (him.get(), i, label);
-			TableOfReal_setColumnLabel (him.get(), i, label);
+			TableOfReal_setRowLabel (him.peek(), i, label);
+			TableOfReal_setColumnLabel (him.peek(), i, label);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no CrossCorrelationTable calculated.");
 	}
 }
 
-autoCovariance EEG_to_Covariance (EEG me, double startTime, double endTime, const char32 *channelRanges)
+Covariance EEG_to_Covariance (EEG me, double startTime, double endTime, const char32 *channelRanges)
 {
 	try {
 		double lagStep = 0.0;
 		autoCrossCorrelationTable thee = EEG_to_CrossCorrelationTable (me, startTime, endTime, lagStep, channelRanges);
         autoCovariance him = Thing_new (Covariance);
-        thy structCrossCorrelationTable :: v_copy (him.get());
-		return him;
+        thy structCrossCorrelationTable :: v_copy (him.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Covariance calculated.");
 	}
 }
 
-autoCrossCorrelationTableList EEG_to_CrossCorrelationTableList (EEG me, double startTime, double endTime, double lagStep, long ncovars, const char32 *channelRanges) {
+CrossCorrelationTables EEG_to_CrossCorrelationTables (EEG me, double startTime, double endTime, double lagStep, long ncovars, const char32 *channelRanges) {
 	try {
 		// autowindow
 		if (startTime == endTime) {
@@ -141,54 +141,54 @@ autoCrossCorrelationTableList EEG_to_CrossCorrelationTableList (EEG me, double s
 		}
 		autoEEG thee = EEG_extractPart (me, startTime, endTime, true);
 		long numberOfChannels;
-		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (channelRanges, thy numberOfChannels, & numberOfChannels, nullptr, U"channel", true), 1);
-		autoSound soundPart = Sound_copyChannelRanges (thy sound.get(), channelRanges);
-		autoCrossCorrelationTableList him = Sound_to_CrossCorrelationTableList (soundPart.get(), startTime, endTime, lagStep, ncovars);
-		return him;
+		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (channelRanges, thy numberOfChannels, & numberOfChannels, NULL, U"channel", true), 1);
+		autoSound soundPart = Sound_copyChannelRanges (thy sound, channelRanges);
+		autoCrossCorrelationTables him = Sound_to_CrossCorrelationTables (soundPart.peek(), startTime, endTime, lagStep, ncovars);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no CrossCorrelationTables calculated.");
 	}
 }
 
-autoPCA EEG_to_PCA (EEG me, double startTime, double endTime, const char32 *channelRanges, int fromCorrelation) {
+PCA EEG_to_PCA (EEG me, double startTime, double endTime, const char32 *channelRanges, int fromCorrelation) {
 	try {
 		autoCovariance cov = EEG_to_Covariance (me, startTime, endTime, channelRanges);
-		autoPCA him;
 		if (fromCorrelation) {
-			autoCorrelation cor = SSCP_to_Correlation (cov.get());
-			him = SSCP_to_PCA (cor.get());
+			autoCorrelation cor = SSCP_to_Correlation (cov.peek());
+			autoPCA him = SSCP_to_PCA (cor.peek());
+			return him.transfer();
 		} else {
-			him = SSCP_to_PCA (cov.get());
+			autoPCA him = SSCP_to_PCA (cov.peek());
+			return him.transfer();
 		}
-		return him;
 	} catch (MelderError) {
 		Melder_throw (me, U": no PCA calculated.");
 	}
 }
 
-autoEEG EEG_and_PCA_to_EEG_whiten (EEG me, PCA thee, long numberOfComponents) {
+EEG EEG_and_PCA_to_EEG_whiten (EEG me, PCA thee, long numberOfComponents) {
 	try {
 		if (numberOfComponents <= 0 || numberOfComponents > thy numberOfEigenvalues) {
 			numberOfComponents = thy numberOfEigenvalues;
 		}
-		numberOfComponents = ( numberOfComponents > my numberOfChannels ? my numberOfChannels : numberOfComponents );
+		numberOfComponents = numberOfComponents > my numberOfChannels ? my numberOfChannels : numberOfComponents;
 
 		autoNUMvector<long> channelNumbers (EEG_channelNames_to_channelNumbers (me, thy labels, thy dimension), 1);
 
-		autoEEG him = Data_copy (me);
-		autoSound white = Sound_and_PCA_whitenSelectedChannels (my sound.get(), thee, numberOfComponents, channelNumbers.peek(), thy dimension);
+		autoEEG him = (EEG) Data_copy (me);
+		autoSound white = Sound_and_PCA_whitenSelectedChannels (my sound, thee, numberOfComponents, channelNumbers.peek(), thy dimension);
 		for (long i = 1; i <= thy dimension; i++) {
 			long ichannel = channelNumbers[i];
 			NUMvector_copyElements<double> (white -> z[i], his sound -> z[ichannel], 1, his sound -> nx);
 		}
-		EEG_setChannelNames_selected (him.get(), U"wh", channelNumbers.peek(), thy dimension);
-		return him;
+		EEG_setChannelNames_selected (him.peek(), U"wh", channelNumbers.peek(), thy dimension);
+		return him.transfer();
 	} catch(MelderError) {
 		Melder_throw (me, U": not whitened with ", thee);
 	}
 }
 
-autoEEG EEG_and_PCA_to_EEG_principalComponents (EEG me, PCA thee, long numberOfComponents) {
+EEG EEG_and_PCA_to_EEG_principalComponents (EEG me, PCA thee, long numberOfComponents) {
 	try {
 		if (numberOfComponents <= 0 || numberOfComponents > thy numberOfEigenvalues) {
 			numberOfComponents = thy numberOfEigenvalues;
@@ -196,20 +196,20 @@ autoEEG EEG_and_PCA_to_EEG_principalComponents (EEG me, PCA thee, long numberOfC
 		numberOfComponents = numberOfComponents > my numberOfChannels ? my numberOfChannels : numberOfComponents;
 
 		autoNUMvector<long> channelNumbers (EEG_channelNames_to_channelNumbers (me, thy labels, thy dimension), 1);
-		autoEEG him = Data_copy (me);
-		autoSound pc = Sound_and_PCA_to_Sound_pc_selectedChannels (my sound.get(), thee, numberOfComponents, channelNumbers.peek(), thy dimension);
-		for (long i = 1; i <= thy dimension; i ++) {
+		autoEEG him = (EEG) Data_copy (me);
+		autoSound pc = Sound_and_PCA_to_Sound_pc_selectedChannels (my sound, thee, numberOfComponents, channelNumbers.peek(), thy dimension);
+		for (long i = 1; i <= thy dimension; i++) {
 			long ichannel = channelNumbers[i];
 			NUMvector_copyElements<double> (pc -> z[i], his sound -> z[ichannel], 1, his sound -> nx);
 		}
-		EEG_setChannelNames_selected (him.get(), U"pc", channelNumbers.peek(), thy dimension);
-		return him;
+		EEG_setChannelNames_selected (him.peek(), U"pc", channelNumbers.peek(), thy dimension);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not projected.");
 	}
 }
 
-autoEEG EEG_to_EEG_bss (EEG me, double startTime, double endTime, long ncovars, double lagStep, const char32 *channelRanges, int whiteningMethod, int diagonalizerMethod, long maxNumberOfIterations, double tol) {
+EEG EEG_to_EEG_bss (EEG me, double startTime, double endTime, long ncovars, double lagStep, const char32 *channelRanges, int whiteningMethod, int diagonalizerMethod, long maxNumberOfIterations, double tol) {
 	try {
 		// autowindow
 		if (startTime == endTime) {
@@ -223,34 +223,34 @@ autoEEG EEG_to_EEG_bss (EEG me, double startTime, double endTime, long ncovars,
 			endTime = my xmax;
 		}
 		long numberOfChannels;
-		autoNUMvector <long> channelNumbers (NUMstring_getElementsOfRanges (channelRanges, my numberOfChannels, & numberOfChannels, nullptr, U"channel", true), 1);
+		autoNUMvector <long> channelNumbers (NUMstring_getElementsOfRanges (channelRanges, my numberOfChannels, & numberOfChannels, NULL, U"channel", true), 1);
 		autoEEG thee = EEG_extractPart (me, startTime, endTime, true);
 		if (whiteningMethod != 0) {
-			bool fromCorrelation = ( whiteningMethod == 2 );
-			autoPCA pca = EEG_to_PCA (thee.get(), thy xmin, thy xmax, channelRanges, fromCorrelation);
-			autoEEG white = EEG_and_PCA_to_EEG_whiten (thee.get(), pca.get(), 0);
-			thee = white.move();
+			bool fromCorrelation = whiteningMethod == 2;
+			autoPCA pca = EEG_to_PCA (thee.peek(), thy xmin, thy xmax, channelRanges, fromCorrelation);
+			autoEEG white = EEG_and_PCA_to_EEG_whiten (thee.peek(), pca.peek(), 0);
+			thee.reset (white.transfer());
 		}
-		autoMixingMatrix mm = Sound_to_MixingMatrix (thy sound.get(), startTime, endTime, ncovars, lagStep, maxNumberOfIterations, tol, diagonalizerMethod);
+		autoMixingMatrix mm = Sound_to_MixingMatrix (thy sound, startTime, endTime, ncovars, lagStep, maxNumberOfIterations, tol, diagonalizerMethod);
 
 		autoEEG him = EEG_copyWithoutSound (me);
-		his sound = Sound_and_MixingMatrix_unmix (my sound.get(), mm.get());
-		EEG_setChannelNames_selected (him.get(), U"ic", channelNumbers.peek(), numberOfChannels);
+		his sound = Sound_and_MixingMatrix_unmix (my sound, mm.peek());
+		EEG_setChannelNames_selected (him.peek(), U"ic", channelNumbers.peek(), numberOfChannels);
 
 		// Calculate the cross-correlations between eye-channels and the ic's
 
 
-		return him;
+		return him.transfer();
 
 	} catch (MelderError) {
 		Melder_throw (me, U": no independent components determined.");
 	}
 }
 
-autoSound EEG_to_Sound_modulated (EEG me, double baseFrequency, double channelBandwidth, const char32 *channelRanges) {
+Sound EEG_to_Sound_modulated (EEG me, double baseFrequency, double channelBandwidth, const char32 *channelRanges) {
 	try {
 		long numberOfChannels;
-		autoNUMvector <long> channelNumbers (NUMstring_getElementsOfRanges (channelRanges, my numberOfChannels, & numberOfChannels, nullptr, U"channel", true), 1);
+		autoNUMvector <long> channelNumbers (NUMstring_getElementsOfRanges (channelRanges, my numberOfChannels, & numberOfChannels, NULL, U"channel", true), 1);
 		double maxFreq = baseFrequency + my numberOfChannels * channelBandwidth;
 		double samplingFrequency = 2 * maxFreq;
 		samplingFrequency = samplingFrequency < 44100 ? 44100 : samplingFrequency;
@@ -258,36 +258,35 @@ autoSound EEG_to_Sound_modulated (EEG me, double baseFrequency, double channelBa
 		for (long i = 1; i <= numberOfChannels; i++) {
 			long ichannel = channelNumbers[i];
 			double fbase = baseFrequency;// + (ichannel - 1) * channelBandwidth;
-			autoSound si = Sound_extractChannel (my sound.get(), ichannel);
-			autoSpectrum spi = Sound_to_Spectrum (si.get(), 1);
-			Spectrum_passHannBand (spi.get(), 0.5, channelBandwidth - 0.5, 0.5);
-			autoSpectrum spi_shifted = Spectrum_shiftFrequencies (spi.get(), fbase, samplingFrequency / 2.0, 30);
-			autoSound resampled = Spectrum_to_Sound (spi_shifted.get());
+			autoSound si = Sound_extractChannel (my sound, ichannel);
+			autoSpectrum spi = Sound_to_Spectrum (si.peek(), 1);
+			Spectrum_passHannBand (spi.peek(), 0.5, channelBandwidth - 0.5, 0.5);
+			autoSpectrum spi_shifted = Spectrum_shiftFrequencies (spi.peek(), fbase, samplingFrequency / 2, 30);
+			autoSound resampled = Spectrum_to_Sound (spi_shifted.peek());
 			long nx = resampled -> nx < thy nx ? resampled -> nx : thy nx;
 			for (long j = 1; j <= nx; j++) {
 				thy z[1][j] += resampled -> z[1][j];
 			}
 		}
-		Vector_scale (thee.get(), 0.99);
-		return thee;
+		Vector_scale (thee.peek(), 0.99);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no playable sound created.");
 	}
 }
 
-autoSound EEG_to_Sound_frequencyShifted (EEG me, long channel, double frequencyShift, double samplingFrequency, double maxAmp) {
+Sound EEG_to_Sound_frequencyShifted (EEG me, long channel, double frequencyShift, double samplingFrequency, double maxAmp) {
 	try {
-		autoSound si = Sound_extractChannel (my sound.get(), channel);
-		autoSpectrum spi = Sound_to_Spectrum (si.get(), 1);
-		autoSpectrum spi_shifted = Spectrum_shiftFrequencies (spi.get(), frequencyShift, samplingFrequency / 2.0, 30);
-		autoSound thee = Spectrum_to_Sound (spi_shifted.get());
+		autoSound si = Sound_extractChannel (my sound, channel);
+		autoSpectrum spi = Sound_to_Spectrum (si.peek(), 1);
+		autoSpectrum spi_shifted = Spectrum_shiftFrequencies (spi.peek(), frequencyShift, samplingFrequency / 2, 30);
+		autoSound thee = Spectrum_to_Sound (spi_shifted.peek());
 		if (maxAmp > 0) {
-			Vector_scale (thee.get(), maxAmp);
+			Vector_scale (thee.peek(), maxAmp);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": channel not converted to sound.");
 	}
 }
-
 /* End of file EEG_extensions.cpp */
diff --git a/dwtools/EEG_extensions.h b/dwtools/EEG_extensions.h
index 9022ed9..46987f2 100644
--- a/dwtools/EEG_extensions.h
+++ b/dwtools/EEG_extensions.h
@@ -2,7 +2,7 @@
 #define _EEG_extensions_h_
 /* EEG_extensions.h
  *
- * Copyright (C) 2012,2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,26 +19,29 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20120926 Initial
+*/
+
+
 #include "ICA.h"
 #include "EEG.h"
 
-autoCrossCorrelationTable EEG_to_CrossCorrelationTable (EEG me, double startTime, double endTime, double lagTime, const char32 *channelRanges);
-
-autoCovariance EEG_to_Covariance (EEG me, double startTime, double endTime, const char32 *channelRanges);
+CrossCorrelationTable EEG_to_CrossCorrelationTable (EEG me, double startTime, double endTime, double lagTime, const char32 *channelRanges);
 
-autoCrossCorrelationTableList EEG_to_CrossCorrelationTableList (EEG me, double startTime, double endTime, double lagTime, long ncovars, const char32 *channelRanges);
+Covariance EEG_to_Covariance (EEG me, double startTime, double endTime, const char32 *channelRanges);
 
-autoPCA EEG_to_PCA (EEG me, double startTime, double endTime, const char32 *channelRanges, int fromCorrelation);
+CrossCorrelationTables EEG_to_CrossCorrelationTables (EEG me, double startTime, double endTime, double lagTime, long ncovars, const char32 *channelRanges);
 
-autoEEG EEG_and_PCA_to_EEG_whiten (EEG me, PCA thee, long numberOfComponents);
+PCA EEG_to_PCA (EEG me, double startTime, double endTime, const char32 *channelRanges, int fromCorrelation);
 
-autoEEG EEG_and_PCA_to_EEG_principalComponents (EEG me, PCA thee, long numberOfComponents);
+EEG EEG_and_PCA_to_EEG_whiten (EEG me, PCA thee, long numberOfComponents);
 
-autoEEG EEG_to_EEG_bss (EEG me, double startTime, double endTime, long ncovars, double lagTime, const char32 *channelRanges, int whiteningMethod, int diagonalizerMethod, long maxNumberOfIterations, double tol);
+EEG EEG_and_PCA_to_EEG_principalComponents (EEG me, PCA thee, long numberOfComponents);
 
-autoSound EEG_to_Sound_frequencyShifted (EEG me, long channel, double frequencyShift, double samplingFrequency, double maxAmp);
+EEG EEG_to_EEG_bss (EEG me, double startTime, double endTime, long ncovars, double lagTime, const char32 *channelRanges, int whiteningMethod, int diagonalizerMethod, long maxNumberOfIterations, double tol);
 
-autoSound EEG_to_Sound_modulated (EEG me, double baseFrequency, double channelBandWidth, const char32 *channelRanges);
+Sound EEG_to_Sound_frequencyShifted (EEG me, long channel, double frequencyShift, double samplingFrequency, double maxAmp);
+Sound EEG_to_Sound_modulated (EEG me, double baseFrequency, double channelBandWidth, const char32 *channelRanges);
 
-/* End of file EEG_extensions.h */
-#endif
+#endif /* _EEG_extensions_h_ */
diff --git a/dwtools/EditDistanceTable.cpp b/dwtools/EditDistanceTable.cpp
index 486d43a..3c36c61 100644
--- a/dwtools/EditDistanceTable.cpp
+++ b/dwtools/EditDistanceTable.cpp
@@ -1,6 +1,6 @@
 /* EditDistanceTable.c
  *
- * Copyright (C) 2012, 2014-2016 David Weenink
+ * Copyright (C) 2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,7 +43,7 @@
 #include "EditDistanceTable_def.h"
 
 // prototypes
-autoEditCostsTable EditCostsTable_createDefault ();
+EditCostsTable EditCostsTable_createDefault ();
 
 /* The insertion, deletion and substitution costs are specified in a TableOfReal
  * 1..n-2 target symbols/alphabet
@@ -55,14 +55,14 @@ autoEditCostsTable EditCostsTable_createDefault ();
  * cell [n][m] if nomatch target != nomatch source
  */
 
-Thing_implement (WarpingPath, Daata, 0);
+Thing_implement (WarpingPath, Data, 0);
 
-autoWarpingPath WarpingPath_create (long length) {
+WarpingPath WarpingPath_create (long length) {
 	try {
 		autoWarpingPath me = Thing_new (WarpingPath);
 		my path = NUMvector<structPairOfInteger> (1, length);
 		my _capacity = my pathLength = length;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"WarpPath not created.");
 	}
@@ -106,59 +106,40 @@ static void WarpingPath_shiftPathByOne (WarpingPath me) {
 	}
 }
 
-long WarpingPath_getColumnsFromRowIndex (WarpingPath me, long iy, long *p_ix1, long *p_ix2) {
-	long ix1 = 0, ix2 = 0, numberOfColumns = 0;
-	if (iy > 0) {
-		for (long i = 1; i <= my pathLength; i++) {
-			if (my path[i].y < iy) {
-				continue;
-			} else if (my path[i].y == iy) {
-				if (ix1 == 0) {
-					ix1 = my path[i].x;
-				}
-				ix2 = my path[i].x;
-			} else {
-				break;
-			}
-		}
-		numberOfColumns = ix2 - ix1 + 1;
-	}
-	if (p_ix1) {
-		*p_ix1 = ix1;
+long WarpingPath_getColumnsFromRowIndex (WarpingPath me, long iy, long *ix1, long *ix2) {
+	if (iy <= 0) {
+		return 0;
 	}
-	if (p_ix2) {
-		*p_ix2 = ix2;
+	*ix1 = 0; *ix2 = 0;
+	for (long i = 1; i <= my pathLength; i++) {
+		if (my path[i].y < iy) {
+			continue;
+		} else if (my path[i].y == iy) {
+			if (*ix1 == 0) *ix1 = my path[i].x;
+			*ix2 = my path[i].x;
+		} else {
+			break;
+		}
 	}
-	return numberOfColumns;
+	return *ix2 - *ix1 + 1;
 }
 
-long WarpingPath_getRowsFromColumnIndex (WarpingPath me, long ix, long *p_iy1, long *p_iy2) {
+long WarpingPath_getRowsFromColumnIndex (WarpingPath me, long ix, long *iy1, long *iy2) {
 	if (ix <= 0) {
 		return 0;
 	}
-	long iy1 = 0, iy2 = 0, numberOfRows = 0;
-	if (ix > 0) {
-		for (long i = 1; i <= my pathLength; i++) {
-			if (my path[i].x < ix) {
-				continue;
-			} else if (my path[i].x == ix) {
-				if (iy1 == 0) {
-					iy1 = my path[i].y;
-				}
-				iy2 = my path[i].y;
-			} else {
-				break;
-			}
+	*iy1 = 0; *iy2 = 0;
+	for (long i = 1; i <= my pathLength; i++) {
+		if (my path[i].x < ix) {
+			continue;
+		} else if (my path[i].x == ix) {
+			if (*iy1 == 0) *iy1 = my path[i].y;
+			*iy2 = my path[i].y;
+		} else {
+			break;
 		}
-		numberOfRows = iy2 - iy1 + 1;
-	}
-	if (p_iy1) {
-		*p_iy1 = iy1;
-	}
-	if (p_iy2) {
-		*p_iy2 = iy2;
 	}
-	return numberOfRows;
+	return *iy2 - *iy1 + 1;
 }
 
 Thing_implement (EditCostsTable, TableOfReal, 0);
@@ -181,24 +162,24 @@ bool structEditCostsTable :: v_matchTargetWithSourceSymbol (const char32 *target
 	return Melder_equ (targetSymbol, sourceSymbol);
 }
 
-autoEditCostsTable EditCostsTable_create (long targetAlphabetSize, long sourceAlphabetSize) {
+EditCostsTable EditCostsTable_create (long targetAlphabetSize, long sourceAlphabetSize) {
 	try{
 		autoEditCostsTable me = Thing_new (EditCostsTable);
-		TableOfReal_init (me.get(), targetAlphabetSize + 2, sourceAlphabetSize + 2);
-		return me;
+		TableOfReal_init (me.peek(), targetAlphabetSize + 2, sourceAlphabetSize + 2);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"EditCostsTable not created.");
 	}
 }
 
-autoEditCostsTable EditCostsTable_createDefault () {
+EditCostsTable EditCostsTable_createDefault () {
 	try {
 		autoEditCostsTable me = EditCostsTable_create (0, 0);
 		my data[1][1] = 0; // default substitution cost (nomatch == nomatch)
 		my data[2][2] = 2; // default substitution cost (nomatch != nomatch)
 		my data[2][1] = 1; // default insertion cost
 		my data[1][2] = 1; // default deletion cost
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Default EditCostsTable not created.");
 	}
@@ -323,7 +304,7 @@ double EditCostsTable_getSubstitutionCost (EditCostsTable me, const char32 *symb
 	return my data[irow][icol];
 }
 
-autoTableOfReal EditCostsTable_to_TableOfReal (EditCostsTable me) {
+TableOfReal EditCostsTable_to_TableOfReal (EditCostsTable me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 		for (long j = 1; j <= my numberOfColumns; j++) {
@@ -333,7 +314,7 @@ autoTableOfReal EditCostsTable_to_TableOfReal (EditCostsTable me) {
 			thy rowLabels[i] = Melder_dup (my rowLabels[i]);
 		}
 		NUMmatrix_copyElements<double> (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
@@ -348,23 +329,23 @@ void structEditDistanceTable :: v_info () {
 	MelderInfo_writeLine (U"Source:", numberOfColumns, U" symbols.");
 }
 
-autoEditDistanceTable EditDistanceTable_create (Strings target, Strings source) {
+EditDistanceTable EditDistanceTable_create (Strings target, Strings source) {
 	try {
 		autoEditDistanceTable me = Thing_new (EditDistanceTable);
 		long numberOfSourceSymbols = source -> numberOfStrings, numberOfTargetSymbols = target -> numberOfStrings;
-		TableOfReal_init (me.get(), numberOfTargetSymbols + 1, numberOfSourceSymbols + 1);
-		TableOfReal_setColumnLabel (me.get(), 1, U"");
+		TableOfReal_init (me.peek(), numberOfTargetSymbols + 1, numberOfSourceSymbols + 1);
+		TableOfReal_setColumnLabel (me.peek(), 1, U"");
 		for (long j = 1; j <= numberOfSourceSymbols; j++) {
 			my columnLabels[j + 1] = Melder_dup (source -> strings[j]);
 		}
-		TableOfReal_setRowLabel (me.get(), 1, U"");
+		TableOfReal_setRowLabel (me.peek(), 1, U"");
 		for (long i = 1; i <= numberOfTargetSymbols; i++) {
 			my rowLabels[i + 1] = Melder_dup (target -> strings[i]);
 		}
 		my warpingPath = WarpingPath_create (numberOfTargetSymbols + numberOfSourceSymbols + 1);
 		my editCostsTable = EditCostsTable_createDefault ();
-		EditDistanceTable_findPath (me.get(), 0);
-		return me;
+		EditDistanceTable_findPath (me.peek(), 0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"EditDistanceTable not created.");
 	}
@@ -372,18 +353,20 @@ autoEditDistanceTable EditDistanceTable_create (Strings target, Strings source)
 
 void EditDistanceTable_setEditCosts (EditDistanceTable me, EditCostsTable thee) {
 	try {
-		my editCostsTable = Data_copy (thee);
+		forget (my editCostsTable);
+		autoEditCostsTable ect = (EditCostsTable) Data_copy (thee);
+		my editCostsTable = ect.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": edit costs not set.");
 	}
 }
 
-autoEditDistanceTable EditDistanceTable_createFromCharacterStrings (const char32 *chars1, const char32 *chars2) {
+EditDistanceTable EditDistanceTable_createFromCharacterStrings (const char32 *chars1, const char32 *chars2) {
 	try {
 		autoStrings s1 = Strings_createAsCharacters (chars1);
 		autoStrings s2 = Strings_createAsCharacters (chars2);
-		autoEditDistanceTable me = EditDistanceTable_create (s1.get(), s2.get());
-		return me;
+		autoEditDistanceTable me = EditDistanceTable_create (s1.peek(), s2.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"EditDistanceTable not created from character strings.");
 	}
@@ -430,7 +413,7 @@ static double getMaxRowLabelWidth (TableOfReal me, Graphics graphics, long rowmi
 	if (! my rowLabels) return 0.0;
 	fixRows (me, & rowmin, & rowmax);
 	for (long irow = rowmin; irow <= rowmax; irow ++) if (my rowLabels [irow] && my rowLabels [irow] [0]) {
-		double textWidth = Graphics_textWidth_ps (graphics, my rowLabels [irow], true);   /* SILIPA is bigger than XIPA */
+		double textWidth = Graphics_textWidth_ps (graphics, my rowLabels [irow], TRUE);   /* SILIPA is bigger than XIPA */
 		if (textWidth > maxWidth) maxWidth = textWidth;
 	}
 	return maxWidth;
@@ -527,17 +510,17 @@ void EditDistanceTable_drawEditOperations (EditDistanceTable me, Graphics graphi
 }
 
 void EditDistanceTable_setDefaultCosts (EditDistanceTable me, double insertionCosts, double deletionCosts, double substitutionCosts) {
-	EditCostsTable_setDefaultCosts (my editCostsTable.get(), insertionCosts, deletionCosts, substitutionCosts);
+	EditCostsTable_setDefaultCosts (my editCostsTable, insertionCosts, deletionCosts, substitutionCosts);
 	EditDistanceTable_findPath (me, 0);
 }
 
-autoTableOfReal EditDistanceTable_to_TableOfReal_directions (EditDistanceTable me) {
-		autoTableOfReal tor;
+TableOfReal EditDistanceTable_to_TableOfReal_directions (EditDistanceTable me) {
+		TableOfReal tor;
 		EditDistanceTable_findPath (me, &tor);
 		return tor;
 }
 
-void EditDistanceTable_findPath (EditDistanceTable me, autoTableOfReal *directions) {
+void EditDistanceTable_findPath (EditDistanceTable me, TableOfReal *directions) {
 	try {
 		/* What do we have to do to source to get target?
 		 * Origin [0][0] is at bottom-left corner
@@ -549,19 +532,19 @@ void EditDistanceTable_findPath (EditDistanceTable me, autoTableOfReal *directio
 		autoNUMmatrix<double> delta (0, numberOfTargets, 0, numberOfSources);
 
 		for (long j = 1; j <= numberOfSources; j++) {
-			delta[0][j] = delta[0][j - 1] + EditCostsTable_getDeletionCost (my editCostsTable.get(), my columnLabels[j+1]);
+			delta[0][j] = delta[0][j - 1] + EditCostsTable_getDeletionCost (my editCostsTable, my columnLabels[j+1]);
 			psi[0][j] = WARPING_fromLeft;
 		}
 		for (long i = 1; i <= numberOfTargets; i++) {
-			delta[i][0] = delta[i - 1][0] + EditCostsTable_getInsertionCost (my editCostsTable.get(), my rowLabels[i+1]);
+			delta[i][0] = delta[i - 1][0] + EditCostsTable_getInsertionCost (my editCostsTable, my rowLabels[i+1]);
 			psi[i][0] = WARPING_fromBelow;
 		}
 		for (long j = 1; j <= numberOfSources; j++) {
 			for (long i = 1; i <= numberOfTargets; i++) {
 				// the substitution, deletion and insertion costs.
-				double left = delta[i][j - 1] + EditCostsTable_getInsertionCost (my editCostsTable.get(), my rowLabels[i+1]);
-				double bottom = delta[i - 1][j] + EditCostsTable_getDeletionCost (my editCostsTable.get(), my columnLabels[j+1]);
-				double mindist = delta[i - 1][j - 1] + EditCostsTable_getSubstitutionCost (my editCostsTable.get(), my rowLabels[i+1], my columnLabels[j+1]); // diag
+				double left = delta[i][j - 1] + EditCostsTable_getInsertionCost (my editCostsTable, my rowLabels[i+1]);
+				double bottom = delta[i - 1][j] + EditCostsTable_getDeletionCost (my editCostsTable, my columnLabels[j+1]);
+				double mindist = delta[i - 1][j - 1] + EditCostsTable_getSubstitutionCost (my editCostsTable, my rowLabels[i+1], my columnLabels[j+1]); // diag
 				psi[i][j] = WARPING_fromDiag;
 				if (bottom < mindist) {
 					mindist = bottom;
@@ -577,11 +560,11 @@ void EditDistanceTable_findPath (EditDistanceTable me, autoTableOfReal *directio
 		// find minimum distance in last column
 		long iy = numberOfTargets, ix = numberOfSources;
 
-		WarpingPath_reset (my warpingPath.get());
+		WarpingPath_reset (my warpingPath);
 
-		WarpingPath_getPath (my warpingPath.get(), psi.peek(), iy, ix);
+		WarpingPath_getPath (my warpingPath, psi.peek(), iy, ix);
 
-		WarpingPath_shiftPathByOne (my warpingPath.get());
+		WarpingPath_shiftPathByOne (my warpingPath);
 
 		for (long i = 0; i <= numberOfTargets; i++) {
 			for (long j = 0; j <= numberOfSources; j++) {
@@ -595,14 +578,14 @@ void EditDistanceTable_findPath (EditDistanceTable me, autoTableOfReal *directio
 					his data[i+1][j+1] = psi[i][j];
 				}
 			}
-			*directions = him.move();
+			*directions = him.transfer();
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": minimum path not found.");
 	}
 }
 
-autoTableOfReal EditDistanceTable_to_TableOfReal (EditDistanceTable me) {
+TableOfReal EditDistanceTable_to_TableOfReal (EditDistanceTable me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 		for (long j = 1; j <= my numberOfColumns; j++) {
@@ -612,7 +595,7 @@ autoTableOfReal EditDistanceTable_to_TableOfReal (EditDistanceTable me) {
 			thy rowLabels[i] = Melder_dup (my rowLabels[i]);
 		}
 		NUMmatrix_copyElements<double> (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TableOfReal created.");
 	}
diff --git a/dwtools/EditDistanceTable.h b/dwtools/EditDistanceTable.h
index 7bfcfe9..1dd825d 100644
--- a/dwtools/EditDistanceTable.h
+++ b/dwtools/EditDistanceTable.h
@@ -2,7 +2,7 @@
 #define _EditDistanceTable_h_
 /* EditDistanceTable.h
  *
- * Copyright (C) 2012, 2015-2016 David Weenink
+ * Copyright (C) 2012,2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,17 +27,19 @@
 #define WARPING_fromDiag 4
 
 #include "EditDistanceTable_def.h"
+oo_CLASS_CREATE (WarpingPath, Data);
+oo_CLASS_CREATE (EditCostsTable, TableOfReal);
+oo_CLASS_CREATE (EditDistanceTable, TableOfReal);
 
-autoWarpingPath WarpingPath_create (long length);
+WarpingPath WarpingPath_create (long length);
 
 // Search the path for the corresponding axis value. If path is horizontal/vertical
 //  ivar1 and ivar2 will not be equal. The return value is the length of the path segment (ivar2-ivar1 +1)
 long WarpingPath_getColumnsFromRowIndex (WarpingPath me, long irow, long *icol1, long *icol2);
-
 long WarpingPath_getRowsFromColumnIndex (WarpingPath me, long icol, long *irow1, long *irow2);
 
 
-autoEditCostsTable EditCostsTable_create (long targetAlphabetSize, long sourceAlphabetSize);
+EditCostsTable EditCostsTable_create (long targetAlphabetSize, long sourceAlphabetSize);
 /* The insertion, deletion and substitution costs are specified in this table
  * 1..n-2 target symbols (target alphabet)
  * 1..m-2 source symbols (source alphabet)
@@ -49,46 +51,30 @@ autoEditCostsTable EditCostsTable_create (long targetAlphabetSize, long sourceAl
  */
 
 void EditCostsTable_setDefaultCosts (EditCostsTable me, double insertionCosts, double deletionCosts, double substitutionCosts);
-
 long EditCostsTable_getTargetIndex (EditCostsTable me, const char32 *symbol);
-
 long EditCostsTable_getSourceIndex (EditCostsTable me, const char32 *symbol);
-
 double EditCostsTable_getInsertionCost (EditCostsTable me, const char32 *symbol);
-
 void EditCostsTable_setInsertionCosts (EditCostsTable me, char32 *targets, double cost);
-
 void EditCostsTable_setOthersCosts (EditCostsTable me, double insertionCosts, double deletionCost, double substitutionCost_equal, double substitutionCost_unequal);
-
 double EditCostsTable_getOthersCost (EditCostsTable me, int type);
-
 double EditCostsTable_getDeletionCost (EditCostsTable me, const char32 *symbol);
-
 void EditCostsTable_setDeletionCosts (EditCostsTable me, char32 *sources, double cost);
-
 double EditCostsTable_getSubstitutionCost (EditCostsTable me, const char32 *symbol, const char32 *replacement);
-
 void EditCostsTable_setSubstitutionCosts (EditCostsTable me, char32 *targets, char32 *sources, double cost);
+TableOfReal EditCostsTable_to_TableOfReal (EditCostsTable me);
 
-autoTableOfReal EditCostsTable_to_TableOfReal (EditCostsTable me);
-
-
-autoEditDistanceTable EditDistanceTable_create (Strings target, Strings source);
-
-autoEditDistanceTable EditDistanceTable_createFromCharacterStrings (const char32 *chars1, const char32 *chars2);
 
+EditDistanceTable EditDistanceTable_create (Strings target, Strings source);
+EditDistanceTable EditDistanceTable_createFromCharacterStrings (const char32 *chars1, const char32 *chars2);
 void EditDistanceTable_draw (EditDistanceTable me, Graphics graphics, int iformat, int precision, double angle);
-
 void EditDistanceTable_drawEditOperations (EditDistanceTable me, Graphics graphics);
-
 void EditDistanceTable_setDefaultCosts (EditDistanceTable me, double insertionCosts, double deletionCosts, double substitutionCosts);
-
-void EditDistanceTable_findPath (EditDistanceTable me, autoTableOfReal *directions);
+void EditDistanceTable_findPath (EditDistanceTable me, TableOfReal *directions);
 
 void EditDistanceTable_setEditCosts (EditDistanceTable me, EditCostsTable thee);
 
-autoTableOfReal EditDistanceTable_to_TableOfReal_directions (EditDistanceTable me);
+TableOfReal EditDistanceTable_to_TableOfReal_directions (EditDistanceTable me);
 
-autoTableOfReal EditDistanceTable_to_TableOfReal (EditDistanceTable me);
+TableOfReal EditDistanceTable_to_TableOfReal (EditDistanceTable me);
 
 #endif /* _EditDistanceTable_h_ */
diff --git a/dwtools/EditDistanceTable_def.h b/dwtools/EditDistanceTable_def.h
index 5ce1b28..76deec9 100644
--- a/dwtools/EditDistanceTable_def.h
+++ b/dwtools/EditDistanceTable_def.h
@@ -29,7 +29,7 @@ oo_END_STRUCT (PairOfInteger)
 #undef ooSTRUCT
 
 #define ooSTRUCT WarpingPath
-oo_DEFINE_CLASS (WarpingPath, Daata)
+oo_DEFINE_CLASS (WarpingPath, Data)
 	oo_LONG (_capacity)
 	oo_LONG (pathLength)
 	oo_STRUCT_VECTOR (PairOfInteger, path, pathLength)
@@ -50,10 +50,10 @@ oo_END_CLASS (EditCostsTable)
 #undef ooSTRUCT
 
 #define ooSTRUCT EditDistanceTable
-oo_DEFINE_CLASS (EditDistanceTable, TableOfReal)
-	oo_AUTO_OBJECT (WarpingPath, 0, warpingPath)
+	oo_DEFINE_CLASS (EditDistanceTable, TableOfReal)
+	oo_OBJECT (WarpingPath, 0, warpingPath)
 	#if oo_DECLARING
-		oo_AUTO_OBJECT (EditCostsTable, 0, editCostsTable)
+		oo_OBJECT (EditCostsTable, 0, editCostsTable)
 
 		void v_info ()
 			override;
diff --git a/dwtools/Eigen_and_Matrix.cpp b/dwtools/Eigen_and_Matrix.cpp
index 1142bb3..75199d7 100644
--- a/dwtools/Eigen_and_Matrix.cpp
+++ b/dwtools/Eigen_and_Matrix.cpp
@@ -1,6 +1,6 @@
 /* Eigen_and_Matrix.cpp
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,40 +23,44 @@
 */
 
 #include "Eigen_and_Matrix.h"
-#include "Matrix_extensions.h"
-#include "NUM2.h"
 
-autoMatrix Eigen_and_Matrix_to_Matrix_projectRows (Eigen me, Matrix thee, long numberOfDimensionsToKeep) {
+Matrix Eigen_and_Matrix_project (Eigen me, Matrix thee, long numberOfComponents) {
 	try {
-		if (numberOfDimensionsToKeep <= 0 || numberOfDimensionsToKeep > my numberOfEigenvalues) {
-			numberOfDimensionsToKeep = my numberOfEigenvalues;
+		if (numberOfComponents == 0) {
+			numberOfComponents = my numberOfEigenvalues;
 		}
-		if (thy nx != my dimension) { 
-			Melder_throw (U"The number of columns (", thy nx, U") must equal the size of the eigenvectors (", my dimension, U").");
-		}
-		autoMatrix him = Matrix_create (0.5, 0.5 + numberOfDimensionsToKeep, numberOfDimensionsToKeep, 1.0, 1.0, thy ymin, thy ymax, thy ny, thy dy, thy y1);
-		NUMdmatrix_projectRowsOnEigenspace (thy z, thy ny, 1, my eigenvectors, numberOfDimensionsToKeep, my dimension, his z, 1);
-		//Eigen_and_matrix_into_matrix_principalComponents (me, thy z, thy ny, 1, his z, numberOfDimensionsToKeep, 1);
-		
-		return him;
+
+		autoMatrix him = Matrix_create (thy xmin, thy xmax, thy nx, thy dx, thy x1, 0.5, 0.5 +
+		                                numberOfComponents, numberOfComponents, 1, 1);
+		Matrix thim = him.peek();
+		Eigen_and_Matrix_project_into (me, thee, &thim);
+		return him.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"Projection Matrix from ", me, U" and ", thee, U" not created.");
+		Melder_throw (U"Projection Matrix not created.");
 	}
 }
 
-autoMatrix Eigen_and_Matrix_to_Matrix_projectColumns (Eigen me, Matrix thee, long numberOfDimensionsToKeep) {
-	try {
-		if (numberOfDimensionsToKeep <= 0 || numberOfDimensionsToKeep > my numberOfEigenvalues) {
-			numberOfDimensionsToKeep = my numberOfEigenvalues;
-		}
-		if (thy ny != my dimension) { 
-			Melder_throw (U"The number of rows (", thy ny, U") must equal the size of the eigenvectors (", my dimension, U").");
+void Eigen_and_Matrix_project_into (Eigen me, Matrix thee, Matrix *pointer_to_him) {
+	Matrix him = *pointer_to_him;
+
+	if (my dimension != thy ny) Melder_throw
+		(U"The number of rows in the 'from' Matrix must equal the dimension of the eigenvector.");
+	if (his nx != thy nx) {
+		Melder_throw (U"The number of columns in the Matrixes must be equal.");
+	}
+	if (his ny > my numberOfEigenvalues) Melder_throw
+		(U"The number of rows in the 'to' Matrix cannot exceed the number of eigenvectors.");
+
+	for (long i = 1; i <= thy nx; i++) {
+		for (long j = 1; j <= his ny; j++) {
+			double r = 0;
+			for (long k = 1; k <= my dimension; k++) {
+				// eigenvector in row, data in column
+
+				r += my eigenvectors[j][k] * thy z[k][i];
+			}
+			his z[j][i] = r;
 		}
-		autoMatrix him = Matrix_create (thy xmin, thy xmax, thy nx, thy dx, thy x1, 0.5, 0.5 + numberOfDimensionsToKeep, numberOfDimensionsToKeep, 1.0, 1.0);
-		NUMdmatrix_projectColumnsOnEigenspace (thy z, thy nx, my eigenvectors, numberOfDimensionsToKeep, my dimension, his z);
-		return him;
-	} catch (MelderError) {
-		Melder_throw (U"Projection Matrix from ", me, U" and ", thee, U" not created.");
 	}
 }
 
diff --git a/dwtools/Eigen_and_Matrix.h b/dwtools/Eigen_and_Matrix.h
index 5c44175..9945640 100644
--- a/dwtools/Eigen_and_Matrix.h
+++ b/dwtools/Eigen_and_Matrix.h
@@ -3,7 +3,7 @@
 
 /* Eigen_and_Matrix.h
  *
- * Copyright (C) 1993-2011,2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,17 +27,19 @@
 */
 
 #include "Eigen.h"
-#include "Pattern.h"
+#include "Matrix.h"
 
-autoMatrix Eigen_and_Matrix_to_Matrix_projectRows (Eigen me, Matrix thee, long numberOfDimensionsToKeep);
+Matrix Eigen_and_Matrix_project (Eigen me, Matrix thee, long numberOfComponents);
 /*
-	Purpose: project the rows of the matrix (thee) on the eigenspace (me). 
+	Purpose: project the columns of the matrix (thou) on the 
+	eigenspace (me). 
 */
 
-autoMatrix Eigen_and_Matrix_to_Matrix_projectColumns (Eigen me, Matrix thee, long numberOfDimensionsToKeep);
+void Eigen_and_Matrix_project_into (Eigen me, Matrix thee, Matrix *pointer_to_him);
 /*
-	Purpose: project the columnss of the matrix (thee) on the eigenspace (me). 
-*/
+	Purpose: project the columns of the Matrix (thou) on the 
+	eigenspace (me). Result in existing Matrix (him). 
 
+*/
 
 #endif /* _Eigen_and_Matrix_h_ */
diff --git a/dwtools/Eigen_and_Procrustes.cpp b/dwtools/Eigen_and_Procrustes.cpp
index 01a3276..b564b94 100644
--- a/dwtools/Eigen_and_Procrustes.cpp
+++ b/dwtools/Eigen_and_Procrustes.cpp
@@ -1,5 +1,5 @@
 /* Eigen_and_Procrustes.cpp
- * Copyright (C) 2005-2011, 2015-2016 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,8 +22,9 @@
 #include "Configuration_and_Procrustes.h"
 #include "NUM2.h"
 
-autoProcrustes Eigens_to_Procrustes (Eigen me, Eigen thee, long evec_from, long evec_to) {
+Procrustes Eigens_to_Procrustes (I, thou, long evec_from, long evec_to) {
 	try {
+		iam (Eigen); thouart (Eigen);
 		long nvectors = evec_to - evec_from + 1;
 		long nmin = my numberOfEigenvalues < thy numberOfEigenvalues ? my numberOfEigenvalues : thy numberOfEigenvalues;
 
@@ -40,18 +41,19 @@ autoProcrustes Eigens_to_Procrustes (Eigen me, Eigen thee, long evec_from, long
 
 		for (long j = 1; j <= nvectors; j++) {
 			for (long i = 1; i <= my dimension; i++) {
-				x[i][j] =  my eigenvectors [evec_from + j - 1] [i];
-				y[i][j] = thy eigenvectors [evec_from + j - 1] [i];
+				x[i][j] =  my eigenvectors[evec_from + j - 1][i];
+				y[i][j] = thy eigenvectors[evec_from + j - 1][i];
 			}
 		}
 
 		autoProcrustes him = Procrustes_create (nvectors);
 
-		NUMProcrustes (x.peek(), y.peek(), my dimension, nvectors, his r, nullptr, nullptr);
-		return him;
+		NUMProcrustes (x.peek(), y.peek(), my dimension, nvectors, his r, NULL, NULL);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Procrustes not created from Eigens.");
 	}
 }
 
+
 /* End of file Eigen_and_Procrustes.cpp */
diff --git a/dwtools/Eigen_and_Procrustes.h b/dwtools/Eigen_and_Procrustes.h
index fc0c83f..94248b2 100644
--- a/dwtools/Eigen_and_Procrustes.h
+++ b/dwtools/Eigen_and_Procrustes.h
@@ -2,7 +2,7 @@
 #define _Eigen_and_Procrustes_h_
 
 /* Eigen_and_Procrustes.h
- * Copyright (C) 2004-2011, 2015 David Weenink
+ * Copyright (C) 2004-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,6 +27,6 @@
 #include "Eigen.h"
 #include "Procrustes.h"
 
-autoProcrustes Eigens_to_Procrustes (Eigen me, Eigen thee, long evec_from, long evec_to);
+Procrustes Eigens_to_Procrustes (I, thou, long evec_from, long evec_to);
 
 #endif /* _Eigen_and_Procrustes_h_ */
diff --git a/dwtools/Eigen_and_SSCP.cpp b/dwtools/Eigen_and_SSCP.cpp
index d50a3e9..09d35d7 100644
--- a/dwtools/Eigen_and_SSCP.cpp
+++ b/dwtools/Eigen_and_SSCP.cpp
@@ -1,6 +1,6 @@
 /* Eigen_and_SSCP.c
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,7 +25,11 @@
 
 #include "Eigen_and_SSCP.h"
 
-static void Eigen_and_SSCP_into_SSCP_project (Eigen me, SSCP thee, SSCP him) {
+static void Eigen_and_SSCP_project_ (I, thou, Any sscp) {
+	iam (Eigen);
+	thouart (SSCP);
+	SSCP him = (SSCP) sscp;
+
 	for (long i = 1; i <= my numberOfEigenvalues; i++) {
 		for (long j = i; j <= my numberOfEigenvalues; j++) {
 			double tmp = 0;
@@ -47,27 +51,29 @@ static void Eigen_and_SSCP_into_SSCP_project (Eigen me, SSCP thee, SSCP him) {
 }
 
 
-autoSSCP Eigen_and_SSCP_project (Eigen me, SSCP thee) {
+SSCP Eigen_and_SSCP_project (I, SSCP thee) {
 	try {
+		iam (Eigen);
 		if (thy numberOfRows != my dimension) {
 			Melder_throw (U"SSCP_and_Eigen_project: dimensions don't agree.");
 		}
 		autoSSCP him = SSCP_create (my numberOfEigenvalues);
-		Eigen_and_SSCP_into_SSCP_project (me, thee, him.get());
-		return him;
+		Eigen_and_SSCP_project_ (me, thee, him.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SSCP not projected.");
 	}
 }
 
-autoCovariance Eigen_and_Covariance_project (Eigen me, Covariance thee) {
+Covariance Eigen_and_Covariance_project (I, Covariance thee) {
 	try {
+		iam (Eigen);
 		if (thy numberOfRows != my dimension) {
 			Melder_throw (U"Covariance_and_Eigen_project: dimensions don't agree.");
 		}
 		autoCovariance him = Covariance_create (my numberOfEigenvalues);
-		Eigen_and_SSCP_into_SSCP_project (me, thee, him.get());
-		return him;
+		Eigen_and_SSCP_project_ (me, thee, him.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Covariance not projected.");
 	}
diff --git a/dwtools/Eigen_and_SSCP.h b/dwtools/Eigen_and_SSCP.h
index 37a7798..38c7f59 100644
--- a/dwtools/Eigen_and_SSCP.h
+++ b/dwtools/Eigen_and_SSCP.h
@@ -2,7 +2,7 @@
 #define _Eigen_and_SSCP_h_
 /* Eigen_and_SSCP.h
  *
- * Copyright (C) 1993-2004, 2015 David Weenink
+ * Copyright (C) 1993-2004 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,9 +27,8 @@
 #include "Eigen.h"
 #include "SSCP.h"
 
-autoSSCP Eigen_and_SSCP_project (Eigen me, SSCP thee);
-
-autoCovariance Eigen_and_Covariance_project (Eigen me, Covariance thee);
+SSCP Eigen_and_SSCP_project (I, SSCP thee);
+Covariance Eigen_and_Covariance_project (I, Covariance thee);
 /*
 	Purpose: project the SSCP (thee) on the eigenspace (me): S' = E' S E
 	Returns SSCP-object with square matrix dimension 'my numberOfEigenvalues'
diff --git a/dwtools/Eigen_and_TableOfReal.cpp b/dwtools/Eigen_and_TableOfReal.cpp
index 62632b4..78ffe38 100644
--- a/dwtools/Eigen_and_TableOfReal.cpp
+++ b/dwtools/Eigen_and_TableOfReal.cpp
@@ -1,6 +1,6 @@
 /* Eigen_and_TableOfReal.cpp
  *
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,46 +28,61 @@
 #include "Eigen_and_TableOfReal.h"
 #include "NUM2.h"
 
-autoTableOfReal Eigen_and_TableOfReal_to_TableOfReal_projectRows (Eigen me, TableOfReal thee, long from_col, long numberOfComponents) {
+TableOfReal Eigen_and_TableOfReal_project (Eigen me, TableOfReal thee, long from,
+        long numberOfComponents) {
 	try {
-		if (numberOfComponents <= 0 || numberOfComponents > my numberOfEigenvalues) {
+		if (numberOfComponents == 0) {
 			numberOfComponents = my numberOfEigenvalues;
 		}
 
 		autoTableOfReal him = TableOfReal_create (thy numberOfRows, numberOfComponents);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (me, thee, from_col, him.get(), 1, numberOfComponents);
+		TableOfReal thim = him.peek();
+		Eigen_and_TableOfReal_project_into (me, thee, from, thy numberOfColumns, &thim, 1, numberOfComponents);
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, thy numberOfRows);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not created from projection.");
 	}
 }
 
-void Eigen_and_TableOfReal_into_TableOfReal_projectRows (Eigen me, TableOfReal data, long data_startColumn, TableOfReal to, long to_startColumn, long numberOfComponentsToKeep) {
+void Eigen_and_TableOfReal_project_into (Eigen me, TableOfReal thee, long thee_from, long thee_to,
+        Any void_pointer_to_him, long his_from, long his_to) {
+	TableOfReal him = * ( (TableOfReal *) void_pointer_to_him);
+	long thee_ncols = thee_to - thee_from + 1;
+	long his_ncols = his_to - his_from + 1;
 
-	data_startColumn = data_startColumn <= 0 ? 1 : data_startColumn;
-	to_startColumn = to_startColumn <= 0 ? 1 : to_startColumn;
-	numberOfComponentsToKeep = numberOfComponentsToKeep <= 0 ? my numberOfEigenvalues : numberOfComponentsToKeep;
-	if (data_startColumn + my dimension - 1 > data -> numberOfColumns) {
-		Melder_throw (data, U" Your start column in the table is too large.");
+	if (thee_from < 1 || thee_to > thy numberOfColumns || his_from < 1 || his_to > his numberOfColumns) {
+		Melder_throw (U"Column selection not correct.");
 	}
-	if (to_startColumn + numberOfComponentsToKeep - 1 > to -> numberOfColumns) {
-		Melder_throw (to, U" Your start column in the 'to' matrix is too large.");
+	if (thee_ncols != my dimension) {
+		Melder_throw (U"The number of selected columns to project (", thee_ncols, U") must equal the dimension of the eigenvectors (", my dimension, U").");
 	}
-	if (data -> numberOfRows != to -> numberOfRows) {
-		Melder_throw (U"Both tables must have the same number of rows.");
+	if (his_ncols > my numberOfEigenvalues) {
+		Melder_throw (U"The number of selected columns in the result (", his_ncols, U") cannot exceed the number of eigenvectors (", my numberOfEigenvalues, U").");
+	}
+
+	for (long i = 1; i <= thy numberOfRows; i++) { /* row */
+		for (long j = 1; j <= his_ncols; j++) {
+			double r = 0;
+			for (long k = 1; k <= my dimension; k++) {
+				/*
+					eigenvector in row, data in row
+				*/
+				r += my eigenvectors[j][k] * thy data[i][thee_from + k - 1];
+			}
+			his data[i][his_from + j - 1] = r;
+		}
 	}
-	NUMdmatrix_projectRowsOnEigenspace (data -> data, data -> numberOfRows, data_startColumn, my eigenvectors, numberOfComponentsToKeep, my dimension, to -> data, to_startColumn);
 }
 
-autoEigen TablesOfReal_to_Eigen_gsvd (TableOfReal me, TableOfReal thee) {
+Eigen TablesOfReal_to_Eigen_gsvd (TableOfReal me, TableOfReal thee) {
 	try {
 		if (my numberOfColumns != thy numberOfColumns) {
 			Melder_throw (U"TablesOfReal_to_Eigen: Number of columns must be equal.");
 		}
 		autoEigen him = Thing_new (Eigen);
-		Eigen_initFromSquareRootPair (him.get(), my data, my numberOfRows, my numberOfColumns, thy data, thy numberOfRows);
-		return him;
+		Eigen_initFromSquareRootPair (him.peek(), my data, my numberOfRows, my numberOfColumns, thy data, thy numberOfRows);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Eigen not created.");
 	}
diff --git a/dwtools/Eigen_and_TableOfReal.h b/dwtools/Eigen_and_TableOfReal.h
index d72e1cf..cae7ad6 100644
--- a/dwtools/Eigen_and_TableOfReal.h
+++ b/dwtools/Eigen_and_TableOfReal.h
@@ -3,7 +3,7 @@
 
 /* Eigen_and_TableOfReal.h
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,19 +29,21 @@
 #include "Eigen.h"
 #include "TableOfReal.h"
 
-autoTableOfReal Eigen_and_TableOfReal_to_TableOfReal_projectRows (Eigen me, TableOfReal thee, long from, long numberOfComponents);
+TableOfReal Eigen_and_TableOfReal_project (Eigen me, TableOfReal thee, long from,
+	long numberOfComponents);
 /*
 	Purpose: project the rows of the TableOfReal (thee) starting at index 'from'
 	on the eigenspace (me).
 */
 
-void Eigen_and_TableOfReal_into_TableOfReal_projectRows (Eigen me, TableOfReal data, long data_startColumn, TableOfReal to, long to_startColumn, long numberOfComponentsToKeep);
+void Eigen_and_TableOfReal_project_into (Eigen me, TableOfReal thee, long thee_from, long thee_to,
+	Any void_pointer_to_him, long his_from, long his_to);
 /*
-	Purpose: project vectors of length 'me -> dimension' that start at 'data_startColumn' in 'data' on the
-	eigenspace of 'me'. Results are stored from column 'to_startColumn' on in existing TableOfReal (to).
+	Purpose: project the rows of the TableOfReal (thee) on the
+	eigenspace (me). Result in existing TableOfReal (him).
 */
 
-autoEigen TablesOfReal_to_Eigen_gsvd (TableOfReal me, TableOfReal thee);
+Eigen TablesOfReal_to_Eigen_gsvd (TableOfReal me, TableOfReal thee);
 /*
 	Solve A'A x -lambda B'B x = 0
 */
diff --git a/dwtools/Excitations.cpp b/dwtools/Excitations.cpp
index 1a43050..59cadb0 100644
--- a/dwtools/Excitations.cpp
+++ b/dwtools/Excitations.cpp
@@ -1,6 +1,6 @@
 /* Excitations.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,12 +27,38 @@
 
 #include "Excitations.h"
 
-Thing_implement (ExcitationList, Ordered, 0);
+/*
+static int readText (I, FILE *f)
+{
+	iam (Excitations);
+	my itemClass =  classExcitation;
+	return inherited (Ordered) readText (me, f);
+}
+
+static int readBinary (I, FILE *f)
+{
+	iam (Excitations);
+	my itemClass =  classExcitation;
+	return inherited (Ordered) readBinary (me, f);
+}
+*/
+
+Thing_implement (Excitations, Ordered, 0);
+
+Excitations Excitations_create (long initialCapacity) {
+	try {
+		autoExcitations me = Thing_new (Excitations);
+		Ordered_init (me.peek(), classExcitation, initialCapacity);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Excitations not created.");
+	}
+}
 
-autoPattern ExcitationList_to_Pattern (ExcitationList me, long join) {
+Pattern Excitations_to_Pattern (Excitations me, long join) {
 	try {
 		Melder_assert (my size > 0);
-		Matrix m = my at [1];
+		Matrix m = (Matrix) my item[1];
 		if (join < 1) {
 			join = 1;
 		}
@@ -41,47 +67,47 @@ autoPattern ExcitationList_to_Pattern (ExcitationList me, long join) {
 		}
 		autoPattern thee = Pattern_create (my size / join, join * m -> nx);
 		long r = 0, c = 1;
-		for (long i = 1; i <= my size; i ++) {
-			double *z = my at [i] -> z [1];
-			if ((i - 1) % join == 0) {
-				r ++;
+		for (long i = 1; i <= my size; i++) {
+			double *z = ( (Matrix) my item[i])->z[1];
+			if ( (i - 1) % join == 0) {
+				r++;
 				c = 1;
 			}
-			for (long j = 1; j <= m -> nx; j ++) {
-				thy z [r] [c ++] = z [j];
+			for (long j = 1; j <= m -> nx; j++) {
+				thy z[r][c++] = z[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Pattern created.");
 	}
 }
 
-autoTableOfReal ExcitationList_to_TableOfReal (ExcitationList me) {
+TableOfReal Excitations_to_TableOfReal (Excitations me) {
 	try {
 		Melder_assert (my size > 0);
-		Matrix m = my at [1];
+		Matrix m = (Matrix) my item[1];
 		autoTableOfReal thee = TableOfReal_create (my size, m -> nx);
-		for (long i = 1;  i <= my size; i ++) {
-			double *z = my at [i] -> z [1];
-			for (long j = 1; j <= m -> nx; j ++) {
+		for (long i = 1;  i <= my size; i++) {
+			double *z = ( (Matrix) my item[i]) -> z[1];
+			for (long j = 1; j <= m -> nx; j++) {
 				thy data[i][j] = z[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TableOfReal created.");
 	}
 }
 
-autoExcitation ExcitationList_getItem (ExcitationList me, long item) {
+Excitation Excitations_getItem (Excitations me, long item) {
 	try {
 		if (item < 1 || item > my size) {
 			Melder_throw (U"Not a valid element number.");
 		}
-		autoExcitation thee = Data_copy (my at [item]);
-		Thing_setName (thee.get(), Thing_getName (my at [item]));
-		return thee;
+		autoExcitation thee = Data_copy ( (Excitation) my item[item]);
+		Thing_setName (thee.peek(), Thing_getName ( (Thing) my item[item]));
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Excitation created.");
 	}
diff --git a/dwtools/Excitations.h b/dwtools/Excitations.h
index 5138c81..515a220 100644
--- a/dwtools/Excitations.h
+++ b/dwtools/Excitations.h
@@ -2,7 +2,7 @@
 #define _Excitations_h_
 /* Excitations.h
  *
- * Copyright (C) 1993-2011,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,25 +19,29 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020813 GPL header
+ djmw 20110306 Latest modification.
+*/
+
 #include "Collection.h"
 #include "Excitation.h"
 #include "Pattern.h"
 #include "TableOfReal.h"
 
+Thing_define (Excitations, Ordered) {
+};
 
-#pragma mark - class ExcitationList
+/* Excitations is a collection of objects of the same class Excitation */
 
-Collection_define (ExcitationList, OrderedOf, Excitation) {
-};
+Excitations Excitations_create (long initialCapacity);
 
-autoPattern ExcitationList_to_Pattern (ExcitationList me, long join);
+Pattern Excitations_to_Pattern (Excitations me, long join);
 /* Precondition: my size >= 1, all items have same dimension */
 
-autoTableOfReal ExcitationList_to_TableOfReal (ExcitationList me);
+TableOfReal Excitations_to_TableOfReal (Excitations me);
 /* Precondition: my size >= 1, all items have same dimension */
 
-autoExcitation ExcitationList_getItem (ExcitationList m, long item);
-
+Excitation Excitations_getItem (Excitations m, long item);
 
-/* End of file Excitations.h */
-#endif
+#endif /* _Excitations_h_ */
diff --git a/dwtools/FilterBank.cpp b/dwtools/FilterBank.cpp
index 15c7df7..eb02f65 100644
--- a/dwtools/FilterBank.cpp
+++ b/dwtools/FilterBank.cpp
@@ -1,6 +1,6 @@
 /* FilterBank.cpp
  *
- * Copyright (C) 1993-2012, 2014-2015 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -82,7 +82,9 @@ static char32 const *GetFreqScaleText (int scale) {
 	return error;
 }
 
-static int checkLimits (Matrix me, int fromFreqScale, int toFreqScale, int *fromFilter, int *toFilter, double *zmin, double *zmax, int dbScale, double *ymin, double *ymax) {
+static int checkLimits (Matrix me, int fromFreqScale, int toFreqScale, int *fromFilter,
+                        int *toFilter, double *zmin, double *zmax, int dbScale,
+                        double *ymin, double *ymax) {
 
 	if (*fromFilter == 0) {
 		*fromFilter = 1;
@@ -142,7 +144,7 @@ static void setDrawingLimits (double *a, long n, double amin, double amax, long
 	for (long i = 1; i <= n; i++) {
 		if (a[i] == NUMundefined) {
 			if (lower == 0) {
-				// high frequency part
+				/* high frequency part */
 				*iend = i;
 				break;
 			}
@@ -165,33 +167,40 @@ Thing_implement (FilterBank, Matrix, 2);
 
 Thing_implement (BarkFilter, FilterBank, 2);
 
-autoBarkFilter BarkFilter_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
+BarkFilter BarkFilter_create (double tmin, double tmax, long nt, double dt,
+                              double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoBarkFilter me = Thing_new (BarkFilter);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"BarkFilter not created.");
 	}
 }
 
-double FilterBank_getFrequencyInHertz (FilterBank /* me */, double f, int scale_from) {
+double FilterBank_getFrequencyInHertz (I, double f, int scale_from) {
+	(void) void_me;
 	return scaleFrequency (f, scale_from, FilterBank_HERTZ);
 }
 
-double FilterBank_getFrequencyInBark (FilterBank /* me */, double f, int scale_from) {
+double FilterBank_getFrequencyInBark (I, double f, int scale_from) {
+	(void) void_me;
 	return scaleFrequency (f, scale_from, FilterBank_BARK);
 }
 
-double FilterBank_getFrequencyInMel (FilterBank /* me */, double f, int scale_from) {
+double FilterBank_getFrequencyInMel (I, double f, int scale_from) {
+	(void) void_me;
 	return scaleFrequency (f, scale_from, FilterBank_MEL);
 }
 
-int FilterBank_getFrequencyScale (FilterBank me) {
+int FilterBank_getFrequencyScale (I) {
+	iam (FilterBank);
 	return my v_getFrequencyScale ();
 }
 
-void FilterBank_drawFrequencyScales (FilterBank me, Graphics g, int horizontalScale, double xmin, double xmax, int verticalScale, double ymin, double ymax, int garnish) {
+void FilterBank_drawFrequencyScales (I, Graphics g, int horizontalScale, double xmin,
+                                     double xmax, int verticalScale, double ymin, double ymax, int garnish) {
+	iam (FilterBank);
 	int myFreqScale = FilterBank_getFrequencyScale (me);
 
 	if (xmin < 0 || xmax < 0 || ymin < 0 || ymax < 0) {
@@ -239,10 +248,10 @@ void FilterBank_drawFrequencyScales (FilterBank me, Graphics g, int horizontalSc
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, GetFreqScaleText (verticalScale));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, GetFreqScaleText (horizontalScale));
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, GetFreqScaleText (verticalScale));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, GetFreqScaleText (horizontalScale));
 	}
 }
 
@@ -275,15 +284,18 @@ void FilterBank_paint (FilterBank me, Graphics g, double xmin, double xmax, doub
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, GetFreqScaleText (my v_getFrequencyScale ()));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Time (s)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, GetFreqScaleText (my v_getFrequencyScale ()));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Time (s)");
 	}
 }
 
-void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter me, Graphics g, int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax, int dbScale, double ymin, double ymax, int garnish) {
-	if (! checkLimits (me, FilterBank_BARK, toFreqScale, & fromFilter, & toFilter, & zmin, & zmax, dbScale, & ymin, & ymax)) {
+void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter me, Graphics g,
+        int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax,
+        int dbScale, double ymin, double ymax, int garnish) {
+	if (! checkLimits (me, FilterBank_BARK, toFreqScale, & fromFilter, & toFilter,
+	                   & zmin, & zmax, dbScale, & ymin, & ymax)) {
 		return;
 	}
 
@@ -305,9 +317,9 @@ void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter me, Graphics g, int t
 				a[i] = NUMundefined;
 			} else {
 				z -= zMid + 0.215;
-				a[i] = 7.0 - 7.5 * z - 17.5 * sqrt (0.196 + z * z);
+				a[i] = 7 - 7.5 * z - 17.5 * sqrt (0.196 + z * z);
 				if (! dbScale) {
-					a[i] = pow (10.0, a[i]);
+					a[i] = pow (10, a[i]);
 				}
 			}
 		}
@@ -325,23 +337,24 @@ void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter me, Graphics g, int t
 	Graphics_unsetInner (g);
 
 	if (garnish) {
-		double distance = dbScale ? 10.0 : 1.0;
+		double distance = dbScale ? 10 : 1;
 		const char32 *ytext = dbScale ? U"Amplitude (dB)" : U"Amplitude";
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, distance, true, true, false);
-		Graphics_textLeft (g, true, ytext);
-		Graphics_textBottom (g, true, GetFreqScaleText (toFreqScale));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
+		Graphics_textLeft (g, 1, ytext);
+		Graphics_textBottom (g, 1, GetFreqScaleText (toFreqScale));
 	}
 }
 
 Thing_implement (MelFilter, FilterBank, 2);
 
-autoMelFilter MelFilter_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
+MelFilter MelFilter_create (double tmin, double tmax, long nt, double dt,
+                            double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoMelFilter me = Thing_new (MelFilter);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MelFilter not created.");
 	}
@@ -358,20 +371,25 @@ void FilterBank_drawFilters (I, Graphics g, long fromf, long tof,
 
 }*/
 
-void FilterBank_drawTimeSlice (FilterBank me, Graphics g, double t, double fmin, double fmax, double min, double max, const char32 *xlabel, int garnish) {
+void FilterBank_drawTimeSlice (I, Graphics g, double t, double fmin,
+                               double fmax, double min, double max, const char32 *xlabel, int garnish) {
+	iam (Matrix);
 	Matrix_drawSliceY (me, g, t, fmin, fmax, min, max);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (xlabel) {
-			Graphics_textBottom (g, false, xlabel);
+			Graphics_textBottom (g, 0, xlabel);
 		}
 	}
 }
 
-void MelFilter_drawFilterFunctions (MelFilter me, Graphics g, int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax, int dbScale, double ymin, double ymax, int garnish) {
-	if (! checkLimits (me, FilterBank_MEL, toFreqScale, & fromFilter, & toFilter, & zmin, & zmax, dbScale, & ymin, & ymax)) {
+void MelFilter_drawFilterFunctions (MelFilter me, Graphics g,
+                                    int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax,
+                                    int dbScale, double ymin, double ymax, int garnish) {
+	if (! checkLimits (me, FilterBank_MEL, toFreqScale, & fromFilter, & toFilter,
+	                   & zmin, & zmax, dbScale, & ymin, & ymax)) {
 		return;
 	}
 	long n = 1000;
@@ -400,6 +418,7 @@ void MelFilter_drawFilterFunctions (MelFilter me, Graphics g, int toFreqScale, i
 					a[i] = to_dB (a[i], 10, ymin);
 				}
 			}
+
 		}
 
 		setDrawingLimits (a.peek(), n, ymin, ymax,	&ibegin, &iend);
@@ -414,13 +433,13 @@ void MelFilter_drawFilterFunctions (MelFilter me, Graphics g, int toFreqScale, i
 	Graphics_unsetInner (g);
 
 	if (garnish) {
-		double distance = dbScale ? 10.0 : 1.0;
+		double distance = dbScale ? 10 : 1;
 		char32 const *ytext = dbScale ? U"Amplitude (dB)" : U"Amplitude";
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, distance, true, true, false);
-		Graphics_textLeft (g, true, ytext);
-		Graphics_textBottom (g, true, GetFreqScaleText (toFreqScale));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
+		Graphics_textLeft (g, 1, ytext);
+		Graphics_textBottom (g, 1, GetFreqScaleText (toFreqScale));
 	}
 }
 
@@ -442,7 +461,7 @@ void MelFilter_drawFilters (MelFilter me, Graphics g, long from, long to,
 		from = 1;
 		to = my ny;
 	}
-	Graphics_setWindow (g, my ymin, my ymax, 0.0, 1.0);
+	Graphics_setWindow (g, my ymin, my ymax, 0, 1);
 	Graphics_setInner (g);
 	for (i = from; i <= to; i++)
 	{
@@ -453,37 +472,43 @@ void MelFilter_drawFilters (MelFilter me, Graphics g, long from, long to,
 		*//*
 			Draw triangle
 		*//*
-		Graphics_line (g, fl_hz, 0.0, fc_hz, 1.0);
-		Graphics_line (g, fc_hz, 1.0, fh_hz, 0.0);
+		Graphics_line (g, fl_hz, 0, fc_hz, 1);
+		Graphics_line (g, fc_hz, 1, fh_hz, 0);
 	}
 	Graphics_unsetInner (g);
 }
 */
-autoMatrix FilterBank_to_Matrix (FilterBank me) {
+Matrix FilterBank_to_Matrix (I) {
+	iam (Matrix);
 	try {
-		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
+		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
+		                                 my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoBarkFilter Matrix_to_BarkFilter (Matrix me) {
+BarkFilter Matrix_to_BarkFilter (I) {
+	iam (Matrix);
 	try {
-		autoBarkFilter thee = BarkFilter_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
+		autoBarkFilter thee = BarkFilter_create (my xmin, my xmax, my nx, my dx, my x1,
+		                      my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to BarkFilter.");
 	}
 }
 
-autoMelFilter Matrix_to_MelFilter (Matrix me) {
+MelFilter Matrix_to_MelFilter (I) {
+	iam (Matrix);
 	try {
-		autoMelFilter thee = MelFilter_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
+		autoMelFilter thee = MelFilter_create (my xmin, my xmax, my nx, my dx, my x1,
+		                                       my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to MelFilter.");
 	}
@@ -491,18 +516,22 @@ autoMelFilter Matrix_to_MelFilter (Matrix me) {
 
 Thing_implement (FormantFilter, FilterBank, 2);
 
-autoFormantFilter FormantFilter_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
+FormantFilter FormantFilter_create (double tmin, double tmax, long nt,
+                                    double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoFormantFilter me = Thing_new (FormantFilter);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantFilter not created.");
 	}
 }
 
-void FormantFilter_drawFilterFunctions (FormantFilter me, Graphics g, double bandwidth, int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax, int dbScale, double ymin, double ymax, int garnish) {
-	if (! checkLimits (me, FilterBank_HERTZ, toFreqScale, & fromFilter, & toFilter, & zmin, & zmax, dbScale, & ymin, & ymax)) {
+void FormantFilter_drawFilterFunctions (FormantFilter me, Graphics g, double bandwidth,
+                                        int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax,
+                                        int dbScale, double ymin, double ymax, int garnish) {
+	if (! checkLimits (me, FilterBank_HERTZ, toFreqScale, & fromFilter, & toFilter,
+	                   & zmin, & zmax, dbScale, & ymin, & ymax)) {
 		return;
 	}
 
@@ -543,31 +572,33 @@ void FormantFilter_drawFilterFunctions (FormantFilter me, Graphics g, double ban
 		}
 	}
 
+
 	Graphics_unsetInner (g);
 
 	if (garnish) {
 		double distance = dbScale ? 10 : 1;
 		char32 const *ytext = dbScale ? U"Amplitude (dB)" : U"Amplitude";
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, distance, true, true, false);
-		Graphics_textLeft (g, true, ytext);
-		Graphics_textBottom (g, true, GetFreqScaleText (toFreqScale));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
+		Graphics_textLeft (g, 1, ytext);
+		Graphics_textBottom (g, 1, GetFreqScaleText (toFreqScale));
 	}
 }
 
-autoFormantFilter Matrix_to_FormantFilter (Matrix me) {
+FormantFilter Matrix_to_FormantFilter (I) {
+	iam (Matrix);
 	try {
 		autoFormantFilter thee = FormantFilter_create (my xmin, my xmax, my nx, my dx, my x1,
 		                         my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to FormantFilter.");
 	}
 }
 
-autoSpectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t) {
+Spectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t) {
 	try {
 		double sqrtref = sqrt (FilterBank_DBREF);
 		double factor2 = 2 * 10 * FilterBank_DBFAC;
@@ -594,13 +625,14 @@ autoSpectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t) {
 			thy z[1][i] = sqrtref * pow (10, my z[i][frame] / factor2);
 			thy z[2][i] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Spectral slice not created.");
 	}
 }
 
-autoIntensity FilterBank_to_Intensity (FilterBank me) {
+Intensity FilterBank_to_Intensity (I) {
+	iam (Matrix);
 	try {
 		autoIntensity thee = Intensity_create (my xmin, my xmax, my nx, my dx, my x1);
 
@@ -612,13 +644,14 @@ autoIntensity FilterBank_to_Intensity (FilterBank me) {
 			}
 			thy z[1][j] = 10 * log10 (p) - db_ref;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Intensity not created.");
 	}
 }
 
-void FilterBank_equalizeIntensities (FilterBank me, double intensity_db) {
+void FilterBank_equalizeIntensities (I, double intensity_db) {
+	iam (Matrix);
 	for (long j = 1; j <= my nx; j++) {
 		double p = 0;
 		for (long i = 1; i <= my ny; i++) {
@@ -633,25 +666,27 @@ void FilterBank_equalizeIntensities (FilterBank me, double intensity_db) {
 	}
 }
 
-void FilterBank_and_PCA_drawComponent (FilterBank me, PCA thee, Graphics g, long component, double dblevel, double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax) {
+void FilterBank_and_PCA_drawComponent (I, PCA thee, Graphics g, long component, double dblevel,
+                                       double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax) {
+	iam (FilterBank);
 	if (component < 1 || component > thy numberOfEigenvalues) {
 		Melder_throw (U"Component too large.");
 	}
 
 	// Scale Intensity
 
-	autoFilterBank fcopy = Data_copy (me);
-	FilterBank_equalizeIntensities (fcopy.get(), dblevel);
-	autoMatrix him = Eigen_and_Matrix_to_Matrix_projectColumns (thee, fcopy.get(), component);
+	autoFilterBank fcopy = (FilterBank) Data_copy (me);
+	FilterBank_equalizeIntensities (fcopy.peek(), dblevel);
+	autoMatrix him = Eigen_and_Matrix_project (thee, fcopy.peek(), component);
 	for (long j = 1; j <= my nx; j++) {
 		fcopy -> z[component][j] = frequencyOffset + scale * fcopy -> z[component][j];
 	}
-	Matrix_drawRows (fcopy.get(), g, tmin, tmax, component - 0.5, component + 0.5, fmin, fmax);
+	Matrix_drawRows (fcopy.peek(), g, tmin, tmax, component - 0.5, component + 0.5, fmin, fmax);
 }
 
 // Convert old types to new types
 
-autoMelSpectrogram MelFilter_to_MelSpectrogram (MelFilter me) {
+MelSpectrogram MelFilter_to_MelSpectrogram (MelFilter me) {
 	try {
 		autoMelSpectrogram thee = MelSpectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		for (long i = 1; i <= my ny; i++) {
@@ -659,13 +694,13 @@ autoMelSpectrogram MelFilter_to_MelSpectrogram (MelFilter me) {
 				thy z[i][j] = 4e-10 * pow (10, my z[i][j] / 10);
 			}
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (U"MelSpectrogram not created.");
 	}
 }
 
-autoBarkSpectrogram BarkFilter_to_BarkSpectrogram (BarkFilter me) {
+BarkSpectrogram BarkFilter_to_BarkSpectrogram (BarkFilter me) {
 	try {
 		autoBarkSpectrogram thee = BarkSpectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		for (long i = 1; i <= my ny; i++) {
@@ -673,13 +708,13 @@ autoBarkSpectrogram BarkFilter_to_BarkSpectrogram (BarkFilter me) {
 				thy z[i][j] = 4e-10 * pow (10, my z[i][j] / 10);
 			}
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (U"BarkSpectrogram not created.");
 	}
 }
 
-autoSpectrogram FormantFilter_to_Spectrogram (FormantFilter me) {
+Spectrogram FormantFilter_to_Spectrogram (FormantFilter me) {
 	try {
 		autoSpectrogram thee = Spectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		for (long i = 1; i <= my ny; i++) {
@@ -687,7 +722,7 @@ autoSpectrogram FormantFilter_to_Spectrogram (FormantFilter me) {
 				thy z[i][j] = 4e-10 * pow (10, my z[i][j] / 10);
 			}
 		}
-		return thee;
+		return thee.transfer ();
 	} catch (MelderError) {
 		Melder_throw (U"Spectrogram not created.");
 	}
@@ -725,7 +760,7 @@ static void NUMinverseCosineTransform (double *x, double *y, long n, double **co
 		y[j] *= 2.0 / n;
 	}
 }
-/*
+
 static double testCosineTransform (long n) {
 	try {
 		autoNUMvector<double> x (1, n);
@@ -748,9 +783,8 @@ static double testCosineTransform (long n) {
 		Melder_throw (U"Test cosine transform error");
 	}
 }
-*/
 
-autoMFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients) {
+MFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients) {
 	try {
 		autoNUMmatrix<double> cosinesTable (NUMcosinesTable (my ny), 1, 1);
 		autoNUMvector<double> x (1, my ny);
@@ -773,13 +807,13 @@ autoMFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients) {
 			}
 			cf -> c0 = y[1];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MFCC created.");
 	}
 }
 
-autoMelFilter MFCC_to_MelFilter (MFCC me, long first, long last) {
+MelFilter MFCC_to_MelFilter (MFCC me, long first, long last) {
 	try {
 		long nf = my maximumNumberOfCoefficients + 1;
 		autoNUMmatrix<double> cosinesTable (NUMcosinesTable (nf), 1, 1);
@@ -808,14 +842,14 @@ autoMelFilter MFCC_to_MelFilter (MFCC me, long first, long last) {
 				thy z[i][frame] = y[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MelFilter created.");
 	}
 }
 
-#if 0
-static autoMelFilter MFCC_to_MelFilter2 (MFCC me, long first_cc, long last_cc, double f1_mel, double df_mel) {
+
+static MelFilter MFCC_to_MelFilter2 (MFCC me, long first_cc, long last_cc, double f1_mel, double df_mel) {
 	try {
 		int use_c0 = 0;
 		long nf = lround ((my fmax - my fmin) / df_mel);
@@ -842,7 +876,7 @@ static autoMelFilter MFCC_to_MelFilter2 (MFCC me, long first_cc, long last_cc, d
 			Melder_throw (U"MFCC_to_MelFilter: coefficients must be in interval [1,", my maximumNumberOfCoefficients, U"].");
 		}
 		autoNUMmatrix<double> dct (NUMcosinesTable (first_cc, last_cc, nf), first_cc, 1); // TODO ??
-		//if ((dct = NUMcosinesTable (first_cc, last_cc, nf)) == nullptr) return nullptr;
+		//if ((dct = NUMcosinesTable (first_cc, last_cc, nf)) == NULL) return NULL;
 
 		autoMelFilter thee = MelFilter_create (my xmin, my xmax, my nx, my dx, my x1, fmin, fmax, nf, df_mel, f1_mel);
 
@@ -864,17 +898,16 @@ static autoMelFilter MFCC_to_MelFilter2 (MFCC me, long first_cc, long last_cc, d
 				thy z[j][frame] = t;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MelFilter created.");
 	}
 }
-#endif
 
 /* Sound_and_FilterBank.cpp */
 
 // prototypes
-autoSound FilterBank_as_Sound (FilterBank me);
+Sound FilterBank_as_Sound (FilterBank me);
 
 /*
 	The gaussian(x) = (exp(-48*((i-(n+1)/2)/(n+1))^2)-exp(-12))/(1-exp(-12));
@@ -898,9 +931,9 @@ static double gaussian_window_squared_correction (long n) {
 	return (p2 - p1 + 24 * (n - 1) * e12 * e12) / denum;
 }
 
-static autoMatrix Sound_to_spectralpower (Sound me) {
+static Matrix Sound_to_spectralpower (Sound me) {
 	try {
-		autoSpectrum s = Sound_to_Spectrum (me, true);
+		autoSpectrum s = Sound_to_Spectrum (me, TRUE);
 		autoMatrix thee = Matrix_create (s -> xmin, s -> xmax, s -> nx, s -> dx, s -> x1, 1, 1, 1, 1, 1);
 		double scale = 2.0 * s -> dx / (my xmax - my xmin);
 
@@ -917,7 +950,7 @@ static autoMatrix Sound_to_spectralpower (Sound me) {
 
 		z[1] *= 0.5;
 		z[s -> nx] *= 0.5;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Matrix with spectral power created.");
 	}
@@ -949,7 +982,7 @@ static int Sound_into_BarkFilter_frame (Sound me, BarkFilter thee, long frame) {
 	return 1;
 }
 
-autoBarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt, double f1_bark, double fmax_bark, double df_bark) {
+BarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt, double f1_bark, double fmax_bark, double df_bark) {
 	try {
 		double t1, nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist;
 		double windowDuration = 2 * analysisWidth; /* gaussian window */
@@ -984,13 +1017,13 @@ autoBarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt, d
 		autoMelderProgress progess (U"BarkFilter analysis");
 
 		for (long i = 1; i <= nt; i++) {
-			double t = Sampled_indexToX (thee.get(), i);
+			double t = Sampled_indexToX (thee.peek(), i);
 
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2);
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
 
-			Sounds_multiply (sframe.get(), window.get());
+			Sounds_multiply (sframe.peek(), window.peek());
 
-			if (! Sound_into_BarkFilter_frame (sframe.get(), thee.get(), i)) {
+			if (! Sound_into_BarkFilter_frame (sframe.peek(), thee.peek(), i)) {
 				frameErrorCount++;
 			}
 
@@ -1008,7 +1041,7 @@ autoBarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt, d
 		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
 
 		NUMdmatrix_to_dBs (thy z, 1, thy ny, 1, thy nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no BarkFilter created.");
 	}
@@ -1040,7 +1073,7 @@ static int Sound_into_MelFilter_frame (Sound me, MelFilter thee, long frame) {
 	return 1;
 }
 
-autoMelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
+MelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
 	try {
 		double t1, samplingFrequency = 1 / my dx, nyquist = 0.5 * samplingFrequency;
 		double windowDuration = 2 * analysisWidth; /* gaussian window */
@@ -1076,10 +1109,10 @@ autoMelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt, dou
 		autoMelderProgress progress (U"MelFilters analysis");
 
 		for (long i = 1; i <= nt; i++) {
-			double t = Sampled_indexToX (thee.get(), i);
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2);
-			Sounds_multiply (sframe.get(), window.get());
-			if (! Sound_into_MelFilter_frame (sframe.get(), thee.get(), i)) {
+			double t = Sampled_indexToX (thee.peek(), i);
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
+			if (! Sound_into_MelFilter_frame (sframe.peek(), thee.peek(), i)) {
 				frameErrorCount++;
 			}
 			if ( (i % 10) == 1) {
@@ -1097,7 +1130,7 @@ autoMelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt, dou
 		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
 
 		NUMdmatrix_to_dBs (thy z, 1, thy ny, 1, thy nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MelFilter created.");
 	}
@@ -1133,7 +1166,9 @@ static int Sound_into_FormantFilter_frame (Sound me, FormantFilter thee, long fr
 	return 1;
 }
 
-autoFormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw, double minimumPitch, double maximumPitch) {
+FormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth,
+                                      double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw,
+                                      double minimumPitch, double maximumPitch) {
 	try {
 		double floor = 80, ceiling = 600;
 		if (minimumPitch >= maximumPitch) {
@@ -1147,14 +1182,16 @@ autoFormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth, double
 		}
 
 		autoPitch thee = Sound_to_Pitch (me, dt, minimumPitch, maximumPitch);
-		autoFormantFilter ff = Sound_and_Pitch_to_FormantFilter (me, thee.get(), analysisWidth, dt, f1_hz, fmax_hz, df_hz, relative_bw);
-		return ff;
+		autoFormantFilter ff = Sound_and_Pitch_to_FormantFilter (me, thee.peek(), analysisWidth, dt,
+		                       f1_hz, fmax_hz, df_hz, relative_bw);
+		return ff.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no FormantFilter created.");
 	}
 }
 
-autoFormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw) {
+FormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee, double analysisWidth, double dt,
+        double f1_hz, double fmax_hz, double df_hz, double relative_bw) {
 	try {
 		double t1, windowDuration = 2 * analysisWidth; /* gaussian window */
 		double nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist, fmin_hz = 0;
@@ -1196,17 +1233,17 @@ autoFormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee, double
 		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
 		autoMelderProgress progress (U"Sound & Pitch: To FormantFilter");
 		for (long i = 1; i <= nt; i++) {
-			double t = Sampled_indexToX (him.get(), i);
+			double t = Sampled_indexToX (him.peek(), i);
 			double b, f0 = Pitch_getValueAtTime (thee, t, kPitch_unit_HERTZ, 0);
 
 			if (f0 == NUMundefined || f0 == 0) {
 				f0_undefined++; f0 = f0_median;
 			}
 			b = relative_bw * f0;
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2);
-			Sounds_multiply (sframe.get(), window.get());
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
 
-			Sound_into_FormantFilter_frame (sframe.get(), him.get(), i, b);
+			Sound_into_FormantFilter_frame (sframe.peek(), him.peek(), i, b);
 
 			if ( (i % 10) == 1) {
 				Melder_progress ( (double) i / nt, U"Frame ", i, U" out of ",
@@ -1216,38 +1253,38 @@ autoFormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee, double
 
 		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
 		NUMdmatrix_to_dBs (his z, 1, his ny, 1, his nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantFilter not created from Pitch & FormantFilter.");
 	}
 }
 
-autoSound FilterBank_as_Sound (FilterBank me) {
+Sound FilterBank_as_Sound (FilterBank me) {
 	try {
 		autoSound thee = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
 		for (long i = 1; i <= my ny; i++) {
 			for (long j = 1; j <= my nx; j++)
 				thy z[i][j] = my z[i][j];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
 
-autoSound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		autoSound cc = Sounds_crossCorrelate ((Sound) me, (Sound) thee, scaling, signalOutsideTimeDomain);
-		return cc;
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" and ", thee, U" not cross-correlated.");
 	}
 }
 
-autoSound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		autoSound cc = Sounds_convolve ((Sound) me, (Sound) thee, scaling, signalOutsideTimeDomain);
-		return cc;
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" and ", thee, U" not convolved.");
 	}
diff --git a/dwtools/FilterBank.h b/dwtools/FilterBank.h
index 417e254..14930eb 100644
--- a/dwtools/FilterBank.h
+++ b/dwtools/FilterBank.h
@@ -77,27 +77,28 @@ Interpretation:
     ny the number of filters.
  */
 
-double FilterBank_getFrequencyInHertz (FilterBank me, double f, int scale_from);
-double FilterBank_getFrequencyInBark (FilterBank me, double f, int scale_from);
-double FilterBank_getFrequencyInMel (FilterBank me, double f, int scale_from);
+double FilterBank_getFrequencyInHertz (I, double f, int scale_from);
+double FilterBank_getFrequencyInBark (I, double f, int scale_from);
+double FilterBank_getFrequencyInMel (I, double f, int scale_from);
 
-int FilterBank_getFrequencyScale (FilterBank me);
+int FilterBank_getFrequencyScale (I);
 
-void FilterBank_drawFrequencyScales (FilterBank me, Graphics g, int horizontalScale, double xmin,
+void FilterBank_drawFrequencyScales (I, Graphics g, int horizontalScale, double xmin,
 	double xmax, int verticalScale, double ymin, double ymax, int garnish);
 
 void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter me, Graphics g,
 	int freqScale,	int fromFilter, int toFilter, double zmin, double zmax,
 	int dbScale, double ymin, double ymax, int garnish);
 
-void FilterBank_drawTimeSlice (FilterBank me, Graphics g, double t, double fmin, double fmax,
+void FilterBank_drawTimeSlice (I, Graphics g, double t, double fmin, double fmax,
 	double min, double max, const char32 *xlabel, int garnish);
 
 void FilterBank_paint (FilterBank me, Graphics g, double xmin, double xmax, double ymin, double ymax, double minimum, double maximum, int garnish);
 
-autoBarkFilter BarkFilter_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1);
+BarkFilter BarkFilter_create (double tmin, double tmax, long nt, double dt,
+	double t1, double fmin, double fmax, long nf, double df, double f1);
 
-autoBarkFilter Matrix_to_BarkFilter (Matrix me);
+BarkFilter Matrix_to_BarkFilter (I);
 
 Thing_define (MelFilter, FilterBank) {
 	int v_getFrequencyScale ()
@@ -115,23 +116,23 @@ Interpretation:
     ny the number of filters.
  */
 
-autoMelFilter MelFilter_create (double tmin, double tmax, long nt, double dt,
+MelFilter MelFilter_create (double tmin, double tmax, long nt, double dt,
 	double t1, double fmin, double fmax, long nf, double df, double f1);
 
-autoMelFilter Matrix_to_MelFilter (Matrix);
+MelFilter Matrix_to_MelFilter (I);
 
 void MelFilter_drawFilterFunctions (MelFilter me, Graphics g,
 	int freqScale, int fromFilter, int toFilter, double zmin, double zmax,
 	int dbScale, double ymin, double ymax, int garnish);
 
-autoMFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients);
+MFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients);
 
 Thing_define (FormantFilter, FilterBank) {
 	const char32 *v_getFrequencyUnit ()
 		override { return U"Hz"; }
 };
 
-autoFormantFilter FormantFilter_create (double tmin, double tmax, long nt,
+FormantFilter FormantFilter_create (double tmin, double tmax, long nt,
 	double dt, double t1, double fmin, double fmax, long nf, double df,
 	double f1);
 
@@ -139,14 +140,14 @@ void FormantFilter_drawFilterFunctions (FormantFilter me, Graphics g, double ban
 	int freqScale, int fromFilter, int toFilter, double zmin, double zmax,
 	int dbScale, double ymin, double ymax, int garnish);
 
-autoFormantFilter Matrix_to_FormantFilter (Matrix me);
+FormantFilter Matrix_to_FormantFilter (I);
 
-void FilterBank_equalizeIntensities (FilterBank me, double intensity_db);
+void FilterBank_equalizeIntensities (I, double intensity_db);
 
-autoMatrix FilterBank_to_Matrix (FilterBank me);
+Matrix FilterBank_to_Matrix (I);
 /* Generieke ...Filters_to_Matrix */
 
-autoSpectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t);
+Spectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t);
 /*
 	Calculate amplitude spectrum at time t.
 	power[i] = ref * 10 ^ (my z[i][t] / 10)
@@ -154,31 +155,29 @@ autoSpectrum FormantFilter_to_Spectrum_slice (FormantFilter me, double t);
 	spec->z[2][i] = 0
 */
 
-autoIntensity FilterBank_to_Intensity (FilterBank me);
+Intensity FilterBank_to_Intensity (I);
 
-void FilterBank_and_PCA_drawComponent (FilterBank me, PCA thee, Graphics g, long component, double dblevel,
+void FilterBank_and_PCA_drawComponent (I, PCA thee, Graphics g, long component, double dblevel,
 	double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax);
 
 // Convert old types to new types
 
-autoMelSpectrogram MelFilter_to_MelSpectrogram (MelFilter me);
-
-autoBarkSpectrogram BarkFilter_to_BarkSpectrogram (BarkFilter me);
+MelSpectrogram MelFilter_to_MelSpectrogram (MelFilter me);
+BarkSpectrogram BarkFilter_to_BarkSpectrogram (BarkFilter me);
+Spectrogram FormantFilter_to_Spectrogram (FormantFilter me);
 
-autoSpectrogram FormantFilter_to_Spectrogram (FormantFilter me);
 
-
-autoMFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients);
+MFCC MelFilter_to_MFCC (MelFilter me, long numberOfCoefficients);
 /*
 Calculates the Cosine Transform of the filterbank values.
 */
 
-autoMelFilter MFCC_to_MelFilter (MFCC me, long firstCoefficient, long lastCoefficient);
+MelFilter MFCC_to_MelFilter (MFCC me, long firstCoefficient, long lastCoefficient);
 /*
 Calculates the Inverse CT of cepstral coefficients.
 */
 
-autoBarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt,
+BarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt,
 	double f1_bark, double fmax_bark, double df_bark);
 /*
 	Filtering with filters on a Bark scale as defined by
@@ -189,20 +188,19 @@ autoBarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt,
 	10 log F(z) = 15.8 + 7.5(z + 0.5) - 17.5 * sqrt(1 + (z + 0.5)^2)
 */
 
-autoMelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt,
+MelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt,
 	double f1_mel, double fmax_mel, double df_mel);
 
-autoFormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth,
+FormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth,
 	double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw,
 	double minimumPitch, double maximumPitch);
 
-autoFormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee,
+FormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee,
 	double analysisWidth, double dt, double f1_hz, double fmax_hz,
 	double df_hz, double relative_bw);
 
-autoSound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
-
-autoSound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
 
 #endif /* _FilterBank_h_ */
diff --git a/dwtools/FormantGrid_extensions.cpp b/dwtools/FormantGrid_extensions.cpp
index 55fe8c4..a3bcb5a 100644
--- a/dwtools/FormantGrid_extensions.cpp
+++ b/dwtools/FormantGrid_extensions.cpp
@@ -1,6 +1,6 @@
-/* FormantGrid_extensions.cpp
+/* FormantGrid_extensions.c
  *
- * Copyright (C) 2009-2011 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2009-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,27 +17,27 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20090310
+*/
+
 #include "FormantGrid_extensions.h"
 #include "NUM2.h"
 
-void FormantGrid_draw (FormantGrid me, Graphics g, double xmin, double xmax, double ymin, double ymax,
-	bool bandwidths, bool garnish, const char32 *method)
-{
-	OrderedOf<structRealTier>* tiers = bandwidths ? & my bandwidths : & my formants;
+void FormantGrid_draw (FormantGrid me, Graphics g, double xmin, double xmax, double ymin, double ymax, bool bandwidths, bool garnish, const char32 *method) {
+	Ordered tiers = bandwidths ? my bandwidths : my formants;
 
 	if (xmax <= xmin) {
-		xmin = my xmin;
-		xmax = my xmax;
+		xmin = my xmin; xmax = my xmax;
 	}
 	if (ymax <= ymin) {
-		ymin = 0.0;
-		ymax = bandwidths ? 1000.0 : 8000.0;
+		ymin = 0; ymax = bandwidths ? 1000 : 8000;
 	}
-	for (long iformant = 1; iformant <= tiers->size; iformant++) {
+	for (long iformant = 1; iformant <= my formants -> size; iformant++) {
 		const char32 *quantity = 0;
 		bool garnish2 = false;
-		RealTier tier = tiers->at [iformant];
-		if (iformant == my formants.size) {
+		RealTier tier = (RealTier) tiers -> item[iformant];
+		if (iformant == my formants -> size) {
 			quantity = U"Frequency (Hz)";
 			if (garnish) {
 				garnish2 = true;
@@ -48,17 +48,17 @@ void FormantGrid_draw (FormantGrid me, Graphics g, double xmin, double xmax, dou
 }
 
 static void FormantGrid_removeFormantTier (FormantGrid me, int position) {
-	if (position < 1 || position > my formants.size) {
+	if (position < 1 || position > my formants -> size) {
 		return;
 	}
-	my formants. removeItem (position);
+	Collection_removeItem (my formants, position);
 }
 
 static void FormantGrid_removeBandwidthTier (FormantGrid me, int position) {
-	if (position < 1 || position > my bandwidths.size) {
+	if (position < 1 || position > my bandwidths -> size) {
 		return;
 	}
-	my bandwidths. removeItem (position);
+	Collection_removeItem (my bandwidths, position);
 }
 
 void FormantGrid_removeFormantAndBandwidthTiers (FormantGrid me, int position) {
@@ -67,28 +67,28 @@ void FormantGrid_removeFormantAndBandwidthTiers (FormantGrid me, int position) {
 }
 
 static void FormantGrid_addFormantTier (FormantGrid me, int position) {
-	if (position > my formants.size || position < 1) {
-		position = my formants.size + 1;
+	if (position > my formants -> size || position < 1) {
+		position = my formants -> size + 1;
 	}
 	autoRealTier rt = RealTier_create (my xmin, my xmax);
-	my formants. addItemAtPosition_move (rt.move(), position);
+	Ordered_addItemPos (my formants, rt.transfer(), position);
 }
 
 static void FormantGrid_addBandwidthTier (FormantGrid me, int position) {
-	if (position > my bandwidths.size || position < 1) {
-		position = my bandwidths.size + 1;
+	if (position > my bandwidths -> size || position < 1) {
+		position = my bandwidths -> size + 1;
 	}
 	autoRealTier rt = RealTier_create (my xmin, my xmax);
-	my bandwidths. addItemAtPosition_move (rt.move(), position);
+	Ordered_addItemPos (my bandwidths, rt.transfer(), position);
 }
 
 void FormantGrid_addFormantAndBandwidthTiers (FormantGrid me, int position) {
 	try {
-		if (my formants.size != my bandwidths.size) {
+		if (my formants -> size != my bandwidths -> size) {
 			Melder_throw (U"Number of formants and bandwidths must be equal.");
 		}
-		if (position > my formants.size || position < 1) {
-			position = my formants.size + 1;
+		if (position > my formants -> size || position < 1) {
+			position = my formants -> size + 1;
 		}
 		FormantGrid_addFormantTier (me, position);
 		try {
diff --git a/dwtools/FormantGrid_extensions.h b/dwtools/FormantGrid_extensions.h
index 847e8a6..5f1c42d 100644
--- a/dwtools/FormantGrid_extensions.h
+++ b/dwtools/FormantGrid_extensions.h
@@ -2,7 +2,7 @@
 #define _FormantGrid_extensions_h_
 /* FormantGrid_extensions.h
  *
- * Copyright (C) 2009-2011, 2015 David Weenink
+ * Copyright (C) 2009-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/dwtools/GaussianMixture.cpp b/dwtools/GaussianMixture.cpp
index 2373718..6ed15e9 100644
--- a/dwtools/GaussianMixture.cpp
+++ b/dwtools/GaussianMixture.cpp
@@ -1,6 +1,6 @@
 /* GaussianMixture.cpp
  *
- * Copyright (C) 2011-2014, 2015-2016 David Weenink
+ * Copyright (C) 2011-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@
 #include "oo_DESCRIPTION.h"
 #include "GaussianMixture_def.h"
 
-Thing_implement (GaussianMixture, Daata, 0);
+Thing_implement (GaussianMixture, Data, 0);
 
 const char32 *GaussianMixture_criterionText (int criterion) {
 	const char32 *criterionText[6] =  { U"(1/n)*LLH", U"(1/n)*MML", U"(1/n)*BIC", U"(1/n)*AIC", U"(1/n)*AICc", U"(1/n)*CD_LLH" };
@@ -75,47 +75,47 @@ static void GaussianMixture_updateCovariance (GaussianMixture me, long component
 	if (component < 1 || component > my numberOfComponents) {
 		return;
 	}
-	Covariance thee = my covariances->at [component];
+	Covariance thee = (Covariance) my covariances -> item[component];
 
-	double mixprob = my mixingProbabilities [component];
-	double gsum = p [numberOfRows + 1] [component];
+	double mixprob = my mixingProbabilities[component];
+	double gsum = p[numberOfRows + 1][component];
 	// update the means
 
-	for (long j = 1; j <= thy numberOfColumns; j ++) {
-		thy centroid [j] = 0;
-		for (long i = 1; i <= numberOfRows; i ++) {
-			double gamma = mixprob * p [i] [component] / p [i] [my numberOfComponents + 1];
-			thy centroid [j] += gamma * data [i] [j] ; // eq. Bishop 9.17
+	for (long j = 1; j <= thy numberOfColumns; j++) {
+		thy centroid[j] = 0;
+		for (long i = 1; i <= numberOfRows; i++) {
+			double gamma = mixprob * p[i][component] / p[i][my numberOfComponents + 1];
+			thy centroid[j] += gamma * data[i][j] ; // eq. Bishop 9.17
 		}
-		thy centroid [j] /= gsum;
+		thy centroid[j] /= gsum;
 	}
 
 	// update covariance with the new mean
 
 	if (thy numberOfRows == 1) { // 1xn covariance
-		for (long j = 1; j <= thy numberOfColumns; j ++) {
+		for (long j = 1; j <= thy numberOfColumns; j++) {
 			thy data[1][j] = 0;
 		}
-		for (long i = 1; i <= numberOfRows; i ++) {
-			double gamma = mixprob * p [i] [component] / p [i] [my numberOfComponents + 1];
+		for (long i = 1; i <= numberOfRows; i++) {
+			double gamma = mixprob * p[i][component] / p[i][my numberOfComponents + 1];
 			double gdn = gamma / gsum;
-			for (long j = 1; j <= thy numberOfColumns; j ++) {
-				double xj = thy centroid [j] - data [i] [j];
-				thy data [1] [j] += gdn * xj * xj;
+			for (long j = 1; j <= thy numberOfColumns; j++) {
+				double xj = thy centroid[j] - data[i][j];
+				thy data[1][j] += gdn * xj * xj;
 			}
 		}
 	} else { // nxn covariance
-		for (long j = 1; j <= thy numberOfRows; j ++)
-			for (long k = j; k <= thy numberOfColumns; k ++) {
-				thy data [k] [j] = thy data [j] [k] = 0;
+		for (long j = 1; j <= thy numberOfRows; j++)
+			for (long k = j; k <= thy numberOfColumns; k++) {
+				thy data[k][j] = thy data[j][k] = 0;
 			}
-		for (long i = 1; i <= numberOfRows; i ++) {
-			double gamma = mixprob * p [i] [component] / p [i] [my numberOfComponents + 1];
+		for (long i = 1; i <= numberOfRows; i++) {
+			double gamma = mixprob * p[i][component] / p[i][my numberOfComponents + 1];
 			double gdn = gamma / gsum; // we cannot divide by nk - 1, this could cause instability
-			for (long j = 1; j <= thy numberOfColumns; j ++) {
-				double xj = thy centroid [j] - data [i] [j];
-				for (long k = j; k <= thy numberOfColumns; k ++) {
-					thy data [j] [k] = thy data [k] [j] += gdn * xj * (thy centroid [k] - data [i] [k]);
+			for (long j = 1; j <= thy numberOfColumns; j++) {
+				double xj = thy centroid[j] - data[i][j];
+				for (long k = j; k <= thy numberOfColumns; k++) {
+					thy data[j][k] = thy data[k][j] += gdn * xj * (thy centroid[k] - data[i][k]);
 				}
 			}
 		}
@@ -128,39 +128,39 @@ static void GaussianMixture_addCovarianceFraction (GaussianMixture me, long im,
 		return;
 	}
 
-	Covariance thee = my covariances->at [im];
+	Covariance thee = (Covariance) my covariances -> item[im];
 
 	// prevent instability: add lambda fraction of global covariances
 
 	if (thy numberOfRows == 1) {
-		for (long j = 1; j <= thy numberOfColumns; j ++) {
-			thy data [1] [j] += fraction * his data [j] [j];
+		for (long j = 1; j <= thy numberOfColumns; j++) {
+			thy data[1][j] += fraction * his data[j][j];
 		}
 	} else {
 		for (long j = 1; j <= thy numberOfColumns; j++) {
 			for (long k = j; k <= thy numberOfColumns; k++) {
-				thy data [k] [j] = thy data [j] [k] += fraction * his data [j] [k];
+				thy data[k][j] = thy data[j][k] += fraction * his data[j][k];
 			}
 		}
 	}
 }
 
 void structGaussianMixture :: v_info () {
-	our structDaata :: v_info ();
-	MelderInfo_writeLine (U"Number of components: ", our numberOfComponents);
-	MelderInfo_writeLine (U"Dimension of component: ", our dimension);
+	structData :: v_info ();
+	MelderInfo_writeLine (U"Number of components: ", numberOfComponents);
+	MelderInfo_writeLine (U"Dimension of component: ", dimension);
 	MelderInfo_writeLine (U"Mixing probabilities:");
-	for (long im = 1; im <= numberOfComponents; im ++) {
-		MelderInfo_writeLine (U"  ", im, U": p = ", our mixingProbabilities [im],
-		                       U"  Name =  \"", Thing_getName (our covariances->at [im]), U"\"");
+	for (long im = 1; im <= numberOfComponents; im++) {
+		MelderInfo_writeLine (U"  ", im, U": p = ", mixingProbabilities[im],
+		                       U"  Name =  \"", Thing_getName ( (Thing) covariances -> item[im]), U"\"");
 	}
 }
 
 static void GaussianMixture_setLabelsFromTableOfReal (GaussianMixture me, TableOfReal thee) {
-	for (long im = 1; im <= my numberOfComponents; im ++) {
-		Covariance cov = my covariances->at [im];
-		for (long j = 1; j <= my dimension; j ++) {
-			TableOfReal_setColumnLabel (cov, j, thy columnLabels [j]);
+	for (long im = 1; im <= my numberOfComponents; im++) {
+		Covariance cov = (Covariance) my covariances -> item[im];
+		for (long j = 1; j <= my dimension; j++) {
+			TableOfReal_setColumnLabel (cov, j, thy columnLabels[j]);
 		}
 	}
 }
@@ -175,7 +175,7 @@ static void Covariance_into_Covariance (Covariance me, Covariance thee) {
 
 	thy numberOfObservations = my numberOfObservations;
 	// copy centroid & column labels
-	for (long ic = 1; ic <= my numberOfColumns; ic ++) {
+	for (long ic = 1; ic <= my numberOfColumns; ic++) {
 		thy centroid[ic] = my centroid[ic];
 	}
 	NUMstrings_copyElements (my columnLabels, thy columnLabels, 1, thy numberOfColumns);
@@ -185,11 +185,11 @@ static void Covariance_into_Covariance (Covariance me, Covariance thee) {
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
 		return;
 	} else {
-		for (long ir = 1; ir <= my numberOfRows; ir ++) {
-			for (long ic = ir; ic <= my numberOfColumns; ic ++) {
+		for (long ir = 1; ir <= my numberOfRows; ir++) {
+			for (long ic = ir; ic <= my numberOfColumns; ic++) {
 				long dij = ic - ir;
 				if (dij < thy numberOfRows) {
-					thy data [dij + 1] [ic] = my data [ir] [ic];
+					thy data[dij + 1][ic] = my data[ir][ic];
 				}
 			}
 		}
@@ -197,28 +197,28 @@ static void Covariance_into_Covariance (Covariance me, Covariance thee) {
 }
 
 static void GaussianMixture_setDefaultMixtureNames (GaussianMixture me) {
-	for (long im = 1; im <= my numberOfComponents; im ++) {
-		Covariance cov = my covariances->at [im];
+	for (long im = 1; im <= my numberOfComponents; im++) {
+		Covariance cov = (Covariance) my covariances -> item[im];
 		Thing_setName (cov, Melder_cat (U"m", im));
 	}
 }
 
-autoGaussianMixture GaussianMixture_create (long numberOfComponents, long dimension, long storage) {
+GaussianMixture GaussianMixture_create (long numberOfComponents, long dimension, long storage) {
 	try {
 		autoGaussianMixture me = Thing_new (GaussianMixture);
 		my numberOfComponents = numberOfComponents;
 		my dimension = dimension;
 		my mixingProbabilities = NUMvector<double> (1, numberOfComponents);
-		my covariances = CovarianceList_create ();
-		for (long im = 1; im <= numberOfComponents; im ++) {
+		my covariances = Ordered_create ();
+		for (long im = 1; im <= numberOfComponents; im++) {
 			autoCovariance cov = Covariance_create_reduceStorage (dimension, storage);
-			my covariances -> addItemAtPosition_move (cov.move(), im);
+			Ordered_addItemPos (my covariances, cov.transfer(), im);
 		}
-		for (long im = 1; im <= numberOfComponents; im ++) {
+		for (long im = 1; im <= numberOfComponents; im++) {
 			my mixingProbabilities[im] = 1.0 / numberOfComponents;
 		}
-		GaussianMixture_setDefaultMixtureNames (me.get());
-		return me;
+		GaussianMixture_setDefaultMixtureNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"GaussianMixture not created.");
 	}
@@ -227,19 +227,19 @@ autoGaussianMixture GaussianMixture_create (long numberOfComponents, long dimens
 /* c is double vector 1..dimension !!!!!! */
 int GaussianMixture_generateOneVector (GaussianMixture me, double *c, char32 **covname, double *buf) {
 	try {
-		double p = NUMrandomUniform (0.0, 1.0);
+		double p = NUMrandomUniform (0, 1);
 		long im = NUMgetIndexFromProbability (my mixingProbabilities, my numberOfComponents, p);
-		Covariance thee = my covariances->at [im];
+		Covariance thee = (Covariance) my covariances -> item[im];
 		*covname = thy name;
 		if (thy numberOfRows == 1) { // 1xn reduced form
-			for (long i = 1; i <= my dimension; i ++) {
-				c[i] = NUMrandomGauss (thy centroid [i], sqrt (thy data [1] [i]));
+			for (long i = 1; i <= my dimension; i++) {
+				c[i] = NUMrandomGauss (thy centroid[i], sqrt (thy data[1][i]));
 			}
 		} else { // nxn
-			if (! thy pca) {
+			if (thy pca == 0) {
 				SSCP_expandPCA (thee);    // on demand expanding
 			}
-			Covariance_and_PCA_generateOneVector (thee, thy pca.get(), c, buf);
+			Covariance_and_PCA_generateOneVector (thee, thy pca, c, buf);
 		}
 		return 1;
 	} catch (MelderError) {
@@ -247,102 +247,102 @@ int GaussianMixture_generateOneVector (GaussianMixture me, double *c, char32 **c
 	}
 }
 
-autoGaussianMixture TableOfReal_to_GaussianMixture_fromRowLabels (TableOfReal me, long storage) {
+GaussianMixture TableOfReal_to_GaussianMixture_fromRowLabels (TableOfReal me, long storage) {
 	try {
 		autoStrings rowLabels = TableOfReal_extractRowLabels (me);
-		autoDistributions dist = Strings_to_Distributions (rowLabels.get());
+		autoDistributions dist = Strings_to_Distributions (rowLabels.peek());
 		long numberOfComponents = dist -> numberOfRows;
 
 		autoGaussianMixture thee = GaussianMixture_create (numberOfComponents, my numberOfColumns, storage);
 
-		GaussianMixture_setLabelsFromTableOfReal (thee.get(), me);
+		GaussianMixture_setLabelsFromTableOfReal (thee.peek(), me);
 
-		for (long i = 1; i <= numberOfComponents; i ++) {
-			autoTableOfReal tab = TableOfReal_extractRowsWhereLabel (me, kMelder_string_EQUAL_TO, dist -> rowLabels [i]);
-			autoCovariance cov = TableOfReal_to_Covariance (tab.get());
-			Covariance_into_Covariance (cov.get(), thy covariances->at [i]);
-			Thing_setName (thy covariances->at [i], dist -> rowLabels [i]);
+		for (long i = 1; i <= numberOfComponents; i++) {
+			autoTableOfReal tab = TableOfReal_extractRowsWhereLabel (me, kMelder_string_EQUAL_TO, dist->rowLabels[i]);
+			autoCovariance cov = TableOfReal_to_Covariance (tab.peek());
+			Covariance_into_Covariance (cov.peek(), (Covariance) thy covariances -> item[i]);
+			Thing_setName ( (Thing) thy covariances -> item[i], dist -> rowLabels[i]);
 		}
-		for (long im = 1; im <= numberOfComponents; im ++) {
-			thy mixingProbabilities [im] = dist -> data [im] [1] / my numberOfRows;
+		for (long im = 1; im <= numberOfComponents; im++) {
+			thy mixingProbabilities[im] = dist -> data[im][1] / my numberOfRows;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no GaussianMixture created.");
 	}
 }
 
-autoCovariance GaussianMixture_to_Covariance_between (GaussianMixture me) {
+Covariance GaussianMixture_to_Covariance_between (GaussianMixture me) {
 	try {
 		autoCovariance thee = Covariance_create (my dimension);
 
 		//	First the new centroid, based on the mixture centroids
 
 		double nobs_total = 0;
-		for (long i = 1; i <= my numberOfComponents; i ++) {
-			Covariance him = my covariances->at [i];
+		for (long i = 1; i <= my numberOfComponents; i++) {
+			Covariance him = (Covariance) my covariances -> item[i];
 			double nobs = his numberOfObservations; // the weighting factor
-			for (long ic = 1; ic <= my dimension; ic ++) {
-				thy centroid [ic] += nobs * his centroid [ic];
+			for (long ic = 1; ic <= my dimension; ic++) {
+				thy centroid[ic] += nobs * his centroid[ic];
 			}
 			nobs_total += nobs;
 		}
-		for (long ic = 1; ic <= my dimension; ic ++) {
+		for (long ic = 1; ic <= my dimension; ic++) {
 			thy centroid[ic] /= nobs_total;
 		}
 
-		Covariance cov = my covariances->at [1];
-		for (long i = 1; i <= thy numberOfColumns; i ++) {
-			if (cov -> columnLabels [i]) {
-				TableOfReal_setColumnLabel (thee.get(), i, cov -> columnLabels [i]);
-				TableOfReal_setRowLabel (thee.get(), i, cov -> columnLabels [i]); // if diagonal !
+		Covariance cov = (Covariance) my covariances -> item[1];
+		for (long i = 1; i <= thy numberOfColumns; i++) {
+			if (cov -> columnLabels[i]) {
+				TableOfReal_setColumnLabel (thee.peek(), i, cov -> columnLabels[i]);
+				TableOfReal_setRowLabel (thee.peek(), i, cov -> columnLabels[i]); // if diagonal !
 			}
 		}
 
 		// Between covariance, scale by the number of observations
 
-		for (long i = 1; i <= my numberOfComponents; i ++) {
-			Covariance him = my covariances->at [i];
+		for (long i = 1; i <= my numberOfComponents; i++) {
+			Covariance him = (Covariance) my covariances -> item[i];
 			double nobs = his numberOfObservations - 1; // we loose 1 degree of freedom
-			for (long ir = 1; ir <= my dimension; ir ++) {
-				double dir = his centroid [ir] - thy centroid [ir];
-				for (long ic = ir; ic <= my dimension; ic ++) {
+			for (long ir = 1; ir <= my dimension; ir++) {
+				double dir = his centroid[ir] - thy centroid[ir];
+				for (long ic = ir; ic <= my dimension; ic++) {
 					double dic = his centroid[ic] - thy centroid[ic];
-					thy data [ir] [ic] = thy data [ic] [ir] += nobs * dir * dic;
+					thy data[ir][ic] = thy data[ic][ir] += nobs * dir * dic;
 				}
 			}
 		}
 
 		// Scale back
 
-		for (long ir = 1; ir <= my dimension; ir ++) {
-			for (long ic = ir; ic <= my dimension; ic ++) {
-				thy data [ir] [ic] = thy data [ic] [ir] /= nobs_total;
+		for (long ir = 1; ir <= my dimension; ir++) {
+			for (long ic = ir; ic <= my dimension; ic++) {
+				thy data[ir][ic] = thy data[ic][ir] /= nobs_total;
 			}
 		}
 
 		thy numberOfObservations = nobs_total;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Covariance (between) created.");
 	}
 }
 
-autoCovariance GaussianMixture_to_Covariance_within (GaussianMixture me) {
+Covariance GaussianMixture_to_Covariance_within (GaussianMixture me) {
 	try {
 		autoCovariance thee = Covariance_create (my dimension);
 
-		for (long i = 1; i <= my numberOfComponents; i ++) {
-			double p = my mixingProbabilities [i];
-			Covariance him = my covariances->at [i];
+		for (long i = 1; i <= my numberOfComponents; i++) {
+			double p = my mixingProbabilities[i];
+			Covariance him = (Covariance) my covariances -> item[i];
 			if (his numberOfRows == 1) {
-				for (long ic = 1; ic <= my dimension; ic ++) {
-					thy data [ic] [ic] += p * his data [1] [ic];
+				for (long ic = 1; ic <= my dimension; ic++) {
+					thy data[ic][ic] += p * his data[1][ic];
 				}
 			} else {
-				for (long ir = 1; ir <= my dimension; ir ++) {
-					for (long ic = ir; ic <= my dimension; ic ++) {
-						thy data [ir] [ic] = thy data [ic] [ir] += p * his data [ir] [ic];
+				for (long ir = 1; ir <= my dimension; ir++) {
+					for (long ic = ir; ic <= my dimension; ic++) {
+						thy data[ir][ic] = thy data[ic][ir] += p * his data[ir][ic];
 					}
 				}
 			}
@@ -351,14 +351,14 @@ autoCovariance GaussianMixture_to_Covariance_within (GaussianMixture me) {
 
 		// Leave centroid at 0 so we can add the within and between covariance nicely
 		// Copy row labels from columns, because covar might be diagonal
-		TableOfReal_copyLabels (my covariances->at [1], thee.get(), -1, 1);
-		return thee;
+		TableOfReal_copyLabels ((Covariance) my covariances -> item[1], thee.peek(), -1, 1);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Covariance (within) created.");
 	}
 }
 
-autoCovariance GaussianMixture_to_Covariance_total (GaussianMixture me) {
+Covariance GaussianMixture_to_Covariance_total (GaussianMixture me) {
 	try {
 		autoCovariance thee = GaussianMixture_to_Covariance_between (me);
 		autoCovariance within = GaussianMixture_to_Covariance_within (me);
@@ -368,68 +368,67 @@ autoCovariance GaussianMixture_to_Covariance_total (GaussianMixture me) {
 				thy data[ir][ic] = thy data[ic][ir] += within -> data[ir][ic];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Covariance (total) created.");
 	}
 }
 
-autoCovariance GaussianMixture_extractComponent (GaussianMixture me, long component) {
+Covariance GaussianMixture_extractComponent (GaussianMixture me, long component) {
 	try {
 		if (component < 1 || component > my numberOfComponents) {
 			Melder_throw (U"Illegal component.");
 		}
-		autoCovariance thee = Data_copy (my covariances->at [component]);
-		return thee;
+		return Data_copy ( (Covariance) my covariances -> item[component]);
 	} catch (MelderError) {
 		Melder_throw (me, U": no component extracted.");
 	}
 }
 
-autoTableOfReal GaussianMixture_extractMixingProbabilities (GaussianMixture me) {
+TableOfReal GaussianMixture_extractMixingProbabilities (GaussianMixture me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfComponents, 2);
-		TableOfReal_setColumnLabel (thee.get(), 1, U"p");
-		TableOfReal_setColumnLabel (thee.get(), 2, U"n");
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
-			thy data [im] [1] = my mixingProbabilities [im];
-			thy data [im] [2] = cov -> numberOfObservations;
-			TableOfReal_setRowLabel (thee.get(), im, Thing_getName (cov));
-		}
-		return thee;
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"p");
+		TableOfReal_setColumnLabel (thee.peek(), 2, U"n");
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance) my covariances -> item[im];
+			thy data[im][1] = my mixingProbabilities[im];
+			thy data[im][2] = cov -> numberOfObservations;
+			TableOfReal_setRowLabel (thee.peek(), im, Thing_getName (cov));
+		}
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no mixing probabilities extracted.");
 	}
 }
 
-autoTableOfReal GaussianMixture_extractCentroids (GaussianMixture me) {
+TableOfReal GaussianMixture_extractCentroids (GaussianMixture me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfComponents, my dimension);
 
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance)  my covariances -> item[im];
 			if (im == 1) {
-				for (long j = 1; j <= my dimension; j ++) {
-					TableOfReal_setColumnLabel (thee.get(), j, cov -> columnLabels [j]);
+				for (long j = 1; j <= my dimension; j++) {
+					TableOfReal_setColumnLabel (thee.peek(), j, cov -> columnLabels[j]);
 				}
 			}
-			TableOfReal_setRowLabel (thee.get(), im, Thing_getName (cov));
-			for (long j = 1; j <= my dimension; j ++) {
-				thy data [im] [j] = cov -> centroid [j];
+			TableOfReal_setRowLabel (thee.peek(), im, Thing_getName (cov));
+			for (long j = 1; j <= my dimension; j++) {
+				thy data[im][j] = cov -> centroid[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no centroid extracted.");
 	}
 }
 
-autoPCA GaussianMixture_to_PCA (GaussianMixture me) {
+PCA GaussianMixture_to_PCA (GaussianMixture me) {
 	try {
 		autoCovariance him = GaussianMixture_to_Covariance_total (me);
-		autoPCA thee = SSCP_to_PCA (him.get());
-		return thee;
+		autoPCA thee = SSCP_to_PCA (him.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PCA calculated.");
 	}
@@ -440,8 +439,8 @@ void GaussianMixture_getIntervalsAlongDirections (GaussianMixture me, long d1, l
 	if (d1 < 1 || d1 > my dimension || d2 < 1 || d2 > my dimension) {
 		Melder_throw (U"Incorrect directions.");
 	}
-	autoSSCPList sscps = SSCPList_extractTwoDimensions (my covariances->asSSCPList(), d1, d2);
-	SSCPList_getEllipsesBoundingBoxCoordinates (sscps.get(), -nsigmas, 0, xmin, xmax, ymin, ymax);
+	autoSSCPs sscps = SSCPs_extractTwoDimensions ((SSCPs) my covariances, d1, d2);
+	SSCPs_getEllipsesBoundingBoxCoordinates (sscps.peek(), -nsigmas, 0, xmin, xmax, ymin, ymax);
 }
 
 void GaussianMixture_getIntervalAlongDirection (GaussianMixture me, long d, double nsigmas, double *xmin, double *xmax) {
@@ -450,16 +449,18 @@ void GaussianMixture_getIntervalAlongDirection (GaussianMixture me, long d, doub
 }
 
 void GaussianMixture_and_PCA_getIntervalsAlongDirections (GaussianMixture me, PCA thee, long d1, long d2, double nsigmas, double *xmin, double *xmax, double *ymin, double *ymax) {
+	*xmin = *xmax = *ymin = *ymax = NUMundefined;
 	if (my dimension != thy dimension || d1 < 1 || d1 > my dimension || d2 < 1 || d2 > my dimension) {
 		Melder_throw (U"Incorrect directions.");
 	}
-	autoSSCPList sscps = SSCPList_toTwoDimensions (my covariances->asSSCPList(), thy eigenvectors [d1], thy eigenvectors [d2]);
-	SSCPList_getEllipsesBoundingBoxCoordinates (sscps.get(), -nsigmas, 0, xmin, xmax, ymin, ymax);
+	autoSSCPs sscps = SSCPs_toTwoDimensions ( (SSCPs) my covariances, thy eigenvectors[d1], thy eigenvectors[d2]);
+	SSCPs_getEllipsesBoundingBoxCoordinates (sscps.peek(), -nsigmas, 0, xmin, xmax, ymin, ymax);
 }
 
 
 void GaussianMixture_and_PCA_getIntervalAlongDirection (GaussianMixture me, PCA thee, long d, double nsigmas, double *xmin, double *xmax) {
-	GaussianMixture_and_PCA_getIntervalsAlongDirections (me, thee, d, d, nsigmas, xmin, xmax, nullptr, nullptr);
+	double ymin, ymax;
+	GaussianMixture_and_PCA_getIntervalsAlongDirections (me, thee, d, d, nsigmas, xmin, xmax, &ymin, &ymax);
 }
 
 void GaussianMixture_and_PCA_drawMarginalPdf (GaussianMixture me, PCA thee, Graphics g, long d, double xmin, double xmax, double ymin, double ymax, long npoints, long nbins, int garnish) {
@@ -478,7 +479,7 @@ void GaussianMixture_and_PCA_drawMarginalPdf (GaussianMixture me, PCA thee, Grap
 		GaussianMixture_and_PCA_getIntervalAlongDirection (me, thee, d, nsigmas, &xmin, &xmax);
 	}
 
-	double pmax = 0.0, dx = (xmax - xmin) / npoints, x1 = xmin + 0.5 * dx;
+	double pmax = 0, dx = (xmax - xmin) / npoints, x1 = xmin + 0.5 * dx;
 	double scalef = nbins <= 0 ? 1 : 1; // TODO
 	for (long i = 1; i <= npoints; i++) {
 		double x = x1 + (i - 1) * dx;
@@ -488,7 +489,7 @@ void GaussianMixture_and_PCA_drawMarginalPdf (GaussianMixture me, PCA thee, Grap
 		}
 	}
 	if (ymin >= ymax) {
-		ymin = 0.0;
+		ymin = 0;
 		ymax = pmax;
 	}
 
@@ -499,10 +500,10 @@ void GaussianMixture_and_PCA_drawMarginalPdf (GaussianMixture me, PCA thee, Grap
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_markBottom (g, xmin, true, true, false, nullptr);
-		Graphics_markBottom (g, xmax, true, true, false, nullptr);
-		Graphics_markLeft (g, ymin, true, true, false, nullptr);
-		Graphics_markLeft (g, ymax, true, true, false, nullptr);
+		Graphics_markBottom (g, xmin, 1, 1, 0, NULL);
+		Graphics_markBottom (g, xmax, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ymin, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ymax, 1, 1, 0, NULL);
 	}
 }
 
@@ -546,14 +547,16 @@ void GaussianMixture_drawMarginalPdf (GaussianMixture me, Graphics g, long d, do
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_markBottom (g, xmin, true, true, false, nullptr);
-		Graphics_markBottom (g, xmax, true, true, false, nullptr);
-		Graphics_markLeft (g, ymin, true, true, false, nullptr);
-		Graphics_markLeft (g, ymax, true, true, false, nullptr);
+		Graphics_markBottom (g, xmin, 1, 1, 0, NULL);
+		Graphics_markBottom (g, xmax, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ymin, 1, 1, 0, NULL);
+		Graphics_markLeft (g, ymax, 1, 1, 0, NULL);
 	}
 }
 
-void GaussianMixture_and_PCA_drawConcentrationEllipses (GaussianMixture me, PCA him, Graphics g, double scale, int confidence, char32 *label, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
+void GaussianMixture_and_PCA_drawConcentrationEllipses (GaussianMixture me, PCA him, Graphics g, double scale,
+        int confidence, char32 *label, long d1, long d2,
+        double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
 	if (my dimension != his dimension) {
 		Melder_warning (U"Dimensions don't agree.");
 		return;
@@ -571,7 +574,7 @@ void GaussianMixture_and_PCA_drawConcentrationEllipses (GaussianMixture me, PCA
 		d2_inverted = 1;
 	}
 
-	autoSSCPList thee = SSCPList_toTwoDimensions (my covariances->asSSCPList(), his eigenvectors [d1], his eigenvectors [d2]);   // FIXME
+	autoSSCPs thee = SSCPs_toTwoDimensions ( (SSCPs) my covariances, his eigenvectors[d1], his eigenvectors[d2]);
 
 	if (d1_inverted) {
 		Eigen_invertEigenvector (him, d1);
@@ -580,21 +583,24 @@ void GaussianMixture_and_PCA_drawConcentrationEllipses (GaussianMixture me, PCA
 		Eigen_invertEigenvector (him, d2);
 	}
 
-	SSCPList_drawConcentrationEllipses (thee.get(), g, -scale, confidence, label, 1, 2, xmin, xmax, ymin, ymax, fontSize, 0);
+	SSCPs_drawConcentrationEllipses (thee.peek(), g, -scale, confidence, label, 1, 2,
+	                                 xmin, xmax, ymin, ymax, fontSize, 0);
 
 	if (garnish) {
 		char32 llabel[40];
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		Melder_sprint (llabel,40, U"pc ", d2);
-		Graphics_textLeft (g, true, llabel);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_textLeft (g, 1, llabel);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		Melder_sprint (llabel,40, U"pc ", d1);
-		Graphics_textBottom (g, true, llabel);
+		Graphics_textBottom (g, 1, llabel);
 	}
 }
 
-void GaussianMixture_drawConcentrationEllipses (GaussianMixture me, Graphics g, double scale, int confidence, char32 *label, int pcaDirections, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
+void GaussianMixture_drawConcentrationEllipses (GaussianMixture me, Graphics g,
+        double scale, int confidence, char32 *label, int pcaDirections, long d1, long d2,
+        double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
 	if (d1 == 0 && d2 == 0) {
 		d1 = 1;
 		d2 = 2;
@@ -604,14 +610,14 @@ void GaussianMixture_drawConcentrationEllipses (GaussianMixture me, Graphics g,
 	}
 
 	if (! pcaDirections) {
-		SSCPList_drawConcentrationEllipses (my covariances->asSSCPList(), g, -scale, confidence, label,
+		SSCPs_drawConcentrationEllipses ( (SSCPs) my covariances, g, -scale, confidence, label,
 		                                  labs (d1), labs (d2), xmin, xmax, ymin, ymax, fontSize, garnish);
 		return;
 	}
 
 	autoPCA him = GaussianMixture_to_PCA (me);
 
-	GaussianMixture_and_PCA_drawConcentrationEllipses (me, him.get(), g, scale, confidence, label, d1, d2,
+	GaussianMixture_and_PCA_drawConcentrationEllipses (me, him.peek(), g, scale, confidence, label, d1, d2,
 	        xmin, xmax, ymin, ymax, fontSize, garnish);
 }
 
@@ -624,41 +630,40 @@ void GaussianMixture_initialGuess (GaussianMixture me, TableOfReal thee, double
 		// spread centroids on an ellips in pc1-pc2 plane?
 
 		if (my dimension == 1) {
-			double dm = 2.0 * sqrt (cov_t -> data [1] [1]) / my numberOfComponents;
-			double m1 = cov_t -> centroid [1] - dm;
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				Covariance covi = my covariances->at [im];
-				covi -> centroid [1] = m1;
-				covi -> data [1] [1] = dm * dm;
+			double dm = 2 * sqrt (cov_t -> data[1][1]) / my numberOfComponents;
+			double m1 = cov_t -> centroid[1] - dm;
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				Covariance covi = (Covariance) my covariances -> item[im];
+				covi -> centroid[1] = m1;
+				covi -> data[1][1] = dm * dm;
 				m1 += dm;
 				covi -> numberOfObservations = thy numberOfRows / my numberOfComponents;
 			}
 		} else {
-			autoPCA pca = SSCP_to_PCA (cov_t.get());
-			autoSSCP s2d = SSCP_toTwoDimensions (cov_t.get(), pca -> eigenvectors [1], pca -> eigenvectors [2]);
+			autoPCA pca = SSCP_to_PCA (cov_t.peek());
+			autoSSCP s2d = SSCP_toTwoDimensions (cov_t.peek(), pca -> eigenvectors[1], pca -> eigenvectors[2]);
 			autoConfiguration means2d = Configuration_create (my numberOfComponents, 2);
 
 			double a, b, cs, sn;
-			NUMeigencmp22 (s2d -> data [1] [1], s2d -> data [1] [2], s2d -> data[2][2], &a, &b, &cs, &sn);
+			NUMeigencmp22 (s2d -> data[1][1], s2d -> data[1][2], s2d -> data[2][2], &a, &b, &cs, &sn);
 
-			a = nSigmas * sqrt (a);
-			b = nSigmas * sqrt (b);
-			double angle = 0.0, angle_inc = NUM2pi / my numberOfComponents;
+			a = nSigmas * sqrt (a); b = nSigmas * sqrt (b);
+			double angle = 0, angle_inc = NUM2pi / my numberOfComponents;
 			for (long im = 1; im <= my numberOfComponents; im++, angle += angle_inc) {
-				double xc = a * (1.0 + NUMrandomUniform (-ru_range, ru_range)) * cos (angle);
-				double yc = b * (1.0 + NUMrandomUniform (-ru_range, ru_range)) * sin (angle);
-				means2d -> data [im] [1] = s2d -> centroid [1] + xc * cs - yc * sn;
-				means2d -> data [im] [2] = s2d -> centroid [2] + xc * sn + yc * cs;
+				double xc = a * (1 + NUMrandomUniform (-ru_range, ru_range)) * cos (angle);
+				double yc = b * (1 + NUMrandomUniform (-ru_range, ru_range)) * sin (angle);
+				means2d -> data[im][1] = s2d -> centroid[1] + xc * cs - yc * sn;
+				means2d -> data[im][2] = s2d -> centroid[2] + xc * sn + yc * cs;
 			}
 
 			// reconstruct the n-dimensional means from the 2-d from the eigenvectors
 
-			autoTableOfReal means = PCA_and_Configuration_to_TableOfReal_reconstruct (pca.get(), means2d.get());
+			autoTableOfReal means = PCA_and_Configuration_to_TableOfReal_reconstruct (pca.peek(), means2d.peek());
 
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				Covariance covi = my covariances->at [im];
-				for (long ic = 1; ic <= my dimension; ic ++) {
-					covi -> centroid [ic] = means -> data [im] [ic];
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				Covariance covi = (Covariance) my covariances -> item[im];
+				for (long ic = 1; ic <= my dimension; ic++) {
+					covi -> centroid[ic] = means -> data[im][ic];
 				}
 				covi -> numberOfObservations = thy numberOfRows / my numberOfComponents;
 			}
@@ -667,40 +672,40 @@ void GaussianMixture_initialGuess (GaussianMixture me, TableOfReal thee, double
 			// if there is only one component the cov_b will be zero!
 
 			autoCovariance cov_b = GaussianMixture_to_Covariance_between (me);
-			double var_t = SSCP_getTotalVariance (cov_t.get());
-			double var_b = SSCP_getTotalVariance (cov_b.get());
+			double var_t = SSCP_getTotalVariance (cov_t.peek());
+			double var_b = SSCP_getTotalVariance (cov_b.peek());
 			if (var_b >= var_t) { // we have chosen our initial values too far out
 				double scale = 0.9 * sqrt (var_t / var_b);
-				for (long im = 1; im <= my numberOfComponents; im ++) {
-					Covariance covi = my covariances->at [im];
-					for (long ic = 1; ic <= my dimension; ic ++) {
-						covi -> centroid [ic] -= (1.0 - scale) * (covi -> centroid [ic] - cov_b -> centroid[ic]);
+				for (long im = 1; im <= my numberOfComponents; im++) {
+					Covariance covi = (Covariance) my covariances -> item[im];
+					for (long ic = 1; ic <= my dimension; ic++) {
+						covi -> centroid[ic] -= (1 - scale) * (covi -> centroid[ic] - cov_b -> centroid[ic]);
 					}
 				}
-				cov_b = GaussianMixture_to_Covariance_between (me);
+				cov_b.reset (GaussianMixture_to_Covariance_between (me));
 			}
 
 			// Within variances are now (total - between) / numberOfComponents;
 
-			for (long ir = 1; ir <= my dimension; ir ++) {
-				for (long ic = ir; ic <= my dimension; ic ++) {
-					double scalef = my numberOfComponents == 1 ? 1.0 : (var_b / var_t) / my numberOfComponents;
-					cov_t -> data [ic] [ir] = cov_t -> data [ir] [ic] *= scalef;
+			for (long ir = 1; ir <= my dimension; ir++) {
+				for (long ic = ir; ic <= my dimension; ic++) {
+					double scalef = my numberOfComponents == 1 ? 1 : (var_b / var_t) / my numberOfComponents;
+					cov_t -> data[ic][ir] = cov_t -> data[ir][ic] *= scalef;
 				}
 			}
 
 			// Copy them
 
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				Covariance cov = my covariances->at [im];
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				Covariance cov = (Covariance) my covariances -> item[im];
 				if (cov -> numberOfRows == 1) {
-					for (long ic = 1; ic <= my dimension; ic ++) {
-						cov -> data [1] [ic] = cov_t -> data [ic] [ic];
+					for (long ic = 1; ic <= my dimension; ic++) {
+						cov -> data[1][ic] = cov_t -> data[ic][ic];
 					}
 				} else {
-					for (long ir = 1; ir <= my dimension; ir ++) {
-						for (long ic = ir; ic <= my dimension; ic ++) {
-							cov -> data [ir] [ic] = cov -> data [ic] [ir] = cov_t -> data [ir] [ic];
+					for (long ir = 1; ir <= my dimension; ir++) {
+						for (long ic = ir; ic <= my dimension; ic++) {
+							cov -> data[ir][ic] = cov -> data[ic][ir] = cov_t -> data[ir][ic];
 						}
 					}
 				}
@@ -712,88 +717,84 @@ void GaussianMixture_initialGuess (GaussianMixture me, TableOfReal thee, double
 }
 
 
-autoClassificationTable GaussianMixture_and_TableOfReal_to_ClassificationTable (GaussianMixture me, TableOfReal thee) {
+ClassificationTable GaussianMixture_and_TableOfReal_to_ClassificationTable (GaussianMixture me, TableOfReal thee) {
 	try {
 		autoClassificationTable him = ClassificationTable_create (thy numberOfRows, my numberOfComponents);
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance) my covariances -> item[im];
 			SSCP_expandLowerCholesky (cov);
-			TableOfReal_setColumnLabel (him.get(), im, Thing_getName (cov));
+			TableOfReal_setColumnLabel (him.peek(), im, Thing_getName (cov));
 		}
 
-		double ln2pid = -0.5 * my dimension * log (NUM2pi);
+		double ln2pid = - 0.5 * my dimension * log (NUM2pi);
 		autoNUMvector<double> lnN (1, my numberOfComponents);
-		for (long i = 1; i <=  thy numberOfRows; i ++) {
-			double psum = 0.0;
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				Covariance cov = my covariances->at [im];
-				double dsq = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data [i], cov -> centroid, cov -> numberOfRows, my dimension);
+		for (long i = 1; i <=  thy numberOfRows; i++) {
+			double psum = 0;
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				Covariance cov = (Covariance) my covariances -> item[im];
+				double dsq = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data[i], cov -> centroid, cov -> numberOfRows, my dimension);
 				lnN[im] = ln2pid - 0.5 * (cov -> lnd + dsq);
-				psum += his data[i][im] = my mixingProbabilities[im] * exp (lnN [im]);
+				psum += his data[i][im] = my mixingProbabilities[im] * exp (lnN[im]);
 			}
 			if (psum == 0) { // p's might be too small (underflow), make the largest equal to sfmin
-				double lnmax = -1e308;
-				long imm = 1;
-				for (long im = 1; im <= my numberOfComponents; im ++) {
-					if (lnN [im] > lnmax) {
-						lnmax = lnN [im];
+				double lnmax = -INFINITY; long imm = 1;
+				for (long im = 1; im <= my numberOfComponents; im++) {
+					if (lnN[im] > lnmax) {
+						lnmax = lnN[im];
 					} imm = im;
 				}
-				his data [i] [imm] = NUMfpp -> sfmin;
+				his data[i][imm] = NUMfpp -> sfmin;
 			}
 
 			// for (long im = 1; im <= my numberOfComponents; im++) { his data[i][im] /= psum; }
 
-			TableOfReal_setRowLabel (him.get(), i, thy rowLabels [i]);
+			TableOfReal_setRowLabel (him.peek(), i, thy rowLabels[i]);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No ClassificationTable created from GaussianMixture & TableOfReal.");
 	}
 }
 
-void GaussianMixture_and_TableOfReal_getGammas (GaussianMixture me, TableOfReal thee, double **gamma, double *p_lnp) {
+void GaussianMixture_and_TableOfReal_getGammas (GaussianMixture me, TableOfReal thee, double **gamma, double *lnp) {
 	try {
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance) my covariances -> item[im];
 			SSCP_expandLowerCholesky (cov);
 		}
 
 		double *nk = gamma[thy numberOfRows + 1];
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			nk[im] = 0.0;
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			nk[im] = 0;
 		}
 
-		double lnp = 0.0;
+		*lnp = 0;
 		double ln2pid = - 0.5 * my dimension * log (NUM2pi);
 		autoNUMvector<double> lnN (1, my numberOfComponents);
-		for (long i = 1; i <=  thy numberOfRows; i ++) {
-			double rowsum = 0.0;
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				Covariance cov = my covariances->at [im];
-				double dsq = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data [i], cov -> centroid, cov -> numberOfRows, my dimension);
-				lnN [im] = ln2pid - 0.5 * (cov -> lnd + dsq);
-				gamma [i] [im] = my mixingProbabilities[im] * exp (lnN [im]); // eq. Bishop 9.16
-				rowsum += gamma [i] [im];
+		for (long i = 1; i <=  thy numberOfRows; i++) {
+			double rowsum = 0;
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				Covariance cov = (Covariance) my covariances -> item[im];
+				double dsq = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data[i], cov -> centroid, cov -> numberOfRows, my dimension);
+				lnN[im] = ln2pid - 0.5 * (cov -> lnd + dsq);
+				gamma[i][im] = my mixingProbabilities[im] * exp (lnN[im]); // eq. Bishop 9.16
+				rowsum += gamma[i][im];
 			}
 
 			// If the gamma[i]'s are too small, their sum will be zero and the scaling will overflow
 
-			if (rowsum == 0.0) {
+			if (rowsum == 0) {
 				continue;    // This is ok because gamma[i]'s will all be zero
 			}
 
 			// scale gamma and get log(likehood) (Bishop eq. 9.40)
 
-			for (long im = 1; im <= my numberOfComponents; im ++) {
-				gamma [i] [im] /= rowsum; // eq. Bishop 9.16
-				nk [im] += gamma [i] [im]; // eq. Bishop 9.18
-				lnp += gamma [i] [im] * (log (my mixingProbabilities [im])  + lnN [im]); // eq. Bishop 9.40
+			for (long im = 1; im <= my numberOfComponents; im++) {
+				gamma[i][im] /= rowsum; // eq. Bishop 9.16
+				nk[im] += gamma[i][im]; // eq. Bishop 9.18
+				*lnp += gamma[i][im] * (log (my mixingProbabilities[im])  + lnN[im]); // eq. Bishop 9.40
 			}
 		}
-		if (p_lnp) {
-			*p_lnp = lnp;
-		}
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": no gammas.");
 	}
@@ -804,57 +805,53 @@ void GaussianMixture_splitComponent (GaussianMixture me, long component) {
 		if (component < 1 || component > my numberOfComponents) {
 			Melder_throw (U"Illegal component.");
 		}
-		Covariance thee = my covariances->at [component];
+		Covariance thee = (Covariance) my covariances -> item[component];
 		// Always new PCA because we cannot be sure of data unchanged.
 		SSCP_expandPCA (thee);
-		autoCovariance cov1 = Data_copy (thee);
-		autoCovariance cov2 = Data_copy (thee);
-		SSCP_unExpandPCA (cov1.get());
-		SSCP_unExpandPCA (cov2.get());
+		autoCovariance cov1 = Data_copy ( (Covariance) thee);
+		autoCovariance cov2 = Data_copy ( (Covariance) thee);
+		SSCP_unExpandPCA (cov1.peek()); SSCP_unExpandPCA (cov2.peek());
 
 		// Eventually cov1 replaces component, cov2 at end
 
 		autoNUMvector<double> mixingProbabilities (1, my numberOfComponents + 1);
-		for (long i = 1; i <= my numberOfComponents; i ++) {
-			mixingProbabilities [i] = my mixingProbabilities [i];
+		for (long i = 1; i <= my numberOfComponents; i++) {
+			mixingProbabilities[i] = my mixingProbabilities[i];
 		}
 		double gamma = 0.5, lambda = 0.5, eta = 0.5, mu = 0.5;
-		mixingProbabilities [component] = gamma * my mixingProbabilities [component];
-		mixingProbabilities [my numberOfComponents + 1] = (1.0 - gamma) * my mixingProbabilities [component];
-		double mp12 =  mixingProbabilities [component] / mixingProbabilities[my numberOfComponents + 1];
-		double factor1 = (eta - eta * lambda * lambda - 1.0) / gamma + 1.0;
-		double factor2 = (eta * lambda * lambda - eta - lambda * lambda) / (1.0 - gamma) + 1.0;
-		double *ev = thy pca -> eigenvectors [1];
-		double d2 = thy pca -> eigenvalues [1];
-
-		for (long i = 1; i <= my dimension; i ++) {
-			cov1 -> centroid [i] -= (1.0 / sqrt (mp12)) * sqrt (d2) * mu * ev [i];
-			cov2 -> centroid [i] +=        sqrt (mp12)  * sqrt (d2) * mu * ev [i];
+		mixingProbabilities[component] = gamma * my mixingProbabilities[component];
+		mixingProbabilities[my numberOfComponents + 1] = (1 - gamma) * my mixingProbabilities[component];
+		double mp12 =  mixingProbabilities[component] / mixingProbabilities[my numberOfComponents + 1];
+		double factor1 = (eta - eta * lambda * lambda - 1) / gamma + 1;
+		double factor2 = (eta * lambda * lambda - eta - lambda * lambda) / (1 - gamma) + 1;
+		double *ev = thy pca -> eigenvectors[1];
+		double d2 = thy pca -> eigenvalues[1];
+
+		for (long i = 1; i <= my dimension; i++) {
+			cov1 -> centroid[i] -= (1 / sqrt (mp12)) * sqrt (d2) * mu * ev[i];
+			cov2 -> centroid[i] +=       sqrt (mp12) * sqrt (d2) * mu * ev[i];
 
 			if (thy numberOfRows == 1) { // diagonal
-				cov1 -> data [1] [i] = cov1 -> data [1] [i] / mp12 + factor1 * d2;
-				cov1 -> data [1] [i] = cov2 -> data [i] [i] * mp12 + factor2 * d2;
+				cov1 -> data[1][i] = cov1 -> data [1][i] / mp12 + factor1 * d2;
+				cov1 -> data[1][i] = cov2 -> data [i][i] * mp12 + factor2 * d2;
 			} else {
 				for (long j = i; j <= my dimension; j++) {
-					cov1 -> data [j] [i] = cov1 -> data [i] [j] = cov1 -> data [i] [j] / mp12 + factor1 * d2 * ev [i] * ev [j];
-					cov2 -> data [j] [i] = cov2 -> data [i] [j] = cov2 -> data [i] [j] * mp12 + factor2 * d2 * ev [i] * ev [j];
+					cov1 -> data[j][i] = cov1 -> data[i][j] = cov1 -> data [i][j] / mp12 + factor1 * d2 * ev[i] * ev[j];
+					cov2 -> data[j][i] = cov2 -> data[i][j] = cov2 -> data [i][j] * mp12 + factor2 * d2 * ev[i] * ev[j];
 				}
 			}
 		}
-		cov1 -> numberOfObservations *= gamma;
-		cov2 -> numberOfObservations *= 1.0 - gamma;
+		cov1 -> numberOfObservations *= gamma; cov2 -> numberOfObservations *= 1 - gamma;
 
 		// Replace cov1 at component + add cov2. If something goes wrong we must be able to restore original!
 		try {
-			Thing_setName (cov2.get(), Melder_cat (Thing_getName (cov2.get()), U"-", my numberOfComponents + 1));
-			my covariances -> addItem_move (cov2.move());
+			Thing_setName (cov2.peek(), Melder_cat (Thing_getName (cov2.peek()), U"-", my numberOfComponents + 1));
+			Collection_addItem (my covariances, cov2.transfer());
 		} catch (MelderError) {
 			Melder_throw (me, U" cannot add new component.");
 		}
-
-		my covariances -> replaceItem_move (cov1.move(), component);
-
-		my numberOfComponents ++;
+		my covariances -> item[component] = cov1.transfer();
+		my numberOfComponents++;
 		NUMvector_free<double> (my mixingProbabilities, 1);
 		my mixingProbabilities = mixingProbabilities.transfer();
 	} catch (MelderError) {
@@ -873,12 +870,12 @@ int GaussianMixture_and_TableOfReal_getProbabilities (GaussianMixture me, TableO
 			icb = ice = component;
 		}
 
-		for (long ic = icb; ic <= ice; ic ++) {
-			Covariance him = my covariances->at [ic];
+		for (long ic = icb; ic <= ice; ic++) {
+			Covariance him = (Covariance) my covariances -> item[ic];
 			SSCP_expandLowerCholesky (him);
 
 			for (long i = 1; i <= thy numberOfRows; i++) {
-				double dsq = NUMmahalanobisDistance_chi (his lowerCholesky, thy data [i], his centroid, his numberOfRows, my dimension);
+				double dsq = NUMmahalanobisDistance_chi (his lowerCholesky, thy data[i], his centroid, his numberOfRows, my dimension);
 				double prob = exp (- 0.5 * (ln2pid + his lnd + dsq));
 				prob = prob < 1e-300 ? 1e-300 : prob; // prevent p from being zero
 				p[i][ic] = prob;
@@ -893,8 +890,8 @@ int GaussianMixture_and_TableOfReal_getProbabilities (GaussianMixture me, TableO
 }
 
 void GaussianMixture_expandPCA (GaussianMixture me) {
-	for (long im = 1; im <= my numberOfComponents; im ++) {
-		Covariance him = my covariances->at [im];
+	for (long im = 1; im <= my numberOfComponents; im++) {
+		Covariance him = (Covariance) my covariances -> item[im];
 		if (his numberOfRows == 1) {
 			Melder_throw (U"Nothing to expand.");
 		}
@@ -903,12 +900,14 @@ void GaussianMixture_expandPCA (GaussianMixture me) {
 }
 
 void GaussianMixture_unExpandPCA (GaussianMixture me) {
-	for (long im = 1; im <= my numberOfComponents; im ++) {
-		SSCP_unExpandPCA (my covariances->at [im]);
+	for (long im = 1; im <= my numberOfComponents; im++) {
+		SSCP_unExpandPCA ((SSCP) my covariances -> item[im]);
 	}
 }
 
-void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, TableOfReal thee, double delta_lnp, long maxNumberOfIterations, double lambda, int criterion) {
+void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, thou, double delta_lnp,
+        long maxNumberOfIterations, double lambda, int criterion) {
+	thouart (TableOfReal);
 	try {
 		const char32 *criterionText = GaussianMixture_criterionText (criterion);
 
@@ -931,43 +930,42 @@ void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, Tabl
 				// E-step: get responsabilities (gamma) with current parameters
 				// See C. Bishop (2006), Pattern reconition and machine learning, Springer, page 439...
 
-				lnp_prev = lnp;
-				iter ++;
+				lnp_prev = lnp; iter++;
 				// M-step: 1. new means & covariances
 
-				for (long im = 1; im <= my numberOfComponents; im ++) {
+				for (long im = 1; im <= my numberOfComponents; im++) {
 					GaussianMixture_updateCovariance (me, im, thy data, thy numberOfRows, pp.peek());
-					GaussianMixture_addCovarianceFraction (me, im, covg.get(), lambda);
+					GaussianMixture_addCovarianceFraction (me, im, covg.peek(), lambda);
 				}
 
 				// M-step: 2. new mixingProbabilities
 
-				for (long im = 1; im <= my numberOfComponents; im ++) {
+				for (long im = 1; im <= my numberOfComponents; im++) {
 					my mixingProbabilities[im] = nk[im] / thy numberOfRows;
 				}
 				if (! GaussianMixture_and_TableOfReal_getProbabilities (me, thee, 0, pp.peek())) {
 					break;
 				}
 				lnp = GaussianMixture_getLikelihoodValue (me, pp.peek(), thy numberOfRows, criterion);
-				Melder_progress ((double) iter / (double) maxNumberOfIterations, criterionText, U": ", lnp / thy numberOfRows, U", L0: ", lnp_start);
-			} while (fabs ((lnp - lnp_prev) / lnp_prev) > delta_lnp && iter < maxNumberOfIterations);
+				Melder_progress ((double) iter / double (maxNumberOfIterations), criterionText, U": ", lnp / thy numberOfRows, U", L0: ", lnp_start);
+			} while (fabs ( (lnp - lnp_prev) / lnp_prev) > delta_lnp && iter < maxNumberOfIterations);
 		} catch (MelderError) {
 			Melder_clearError ();
 		}
 
 		// During EM, covariances were underestimated by a factor of (n-1)/n. Correction now.
 
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance) my covariances -> item[im];
 			if (cov -> numberOfObservations > 1.5) {
 				if (cov -> numberOfRows == 1) {
-					for (long j = 1; j <= thy numberOfColumns; j ++) {
-						cov -> data [1] [j] *= cov -> numberOfObservations / (cov -> numberOfObservations - 1);
+					for (long j = 1; j <= thy numberOfColumns; j++) {
+						cov -> data[1][j] *= cov -> numberOfObservations / (cov -> numberOfObservations - 1);
 					}
 				} else {
-					for (long j = 1; j <= thy numberOfColumns; j ++)
-						for (long k = j; k <= thy numberOfColumns; k ++) {
-							cov -> data [j] [k] = cov -> data [k] [j] *= cov -> numberOfObservations / (cov -> numberOfObservations - 1.0);
+					for (long j = 1; j <= thy numberOfColumns; j++)
+						for (long k = j; k <= thy numberOfColumns; k++) {
+							cov -> data[j][k] = cov -> data[k][j] *= cov -> numberOfObservations / (cov -> numberOfObservations - 1);
 						}
 				}
 			}
@@ -978,8 +976,7 @@ void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, Tabl
 }
 
 long GaussianMixture_getNumberOfParametersInComponent (GaussianMixture me) {
-	Melder_assert (my covariances->size > 0);
-	Covariance thee = my covariances->at [1];
+	Covariance thee = (Covariance) my covariances -> item[1];
 	// if diagonal) d (means) + d (stdev)
 	// else  n + n(n+1)/2
 	return thy numberOfRows == 1 ? 2 * thy numberOfColumns : thy numberOfColumns * (thy numberOfColumns + 3) / 2;
@@ -988,17 +985,17 @@ long GaussianMixture_getNumberOfParametersInComponent (GaussianMixture me) {
 void GaussianMixture_updateProbabilityMarginals (GaussianMixture me, double **p, long numberOfRows) {
 	long nocp1 = my numberOfComponents + 1, norp1 = numberOfRows + 1;
 
-	for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-		p [norp1] [ic] = 0.0;
+	for (long ic = 1; ic <= my numberOfComponents; ic++) {
+		p[norp1][ic] = 0;
 	}
-	for (long i = 1; i <= numberOfRows; i ++) {
-		double rowsum = 0.0;
-		for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-			rowsum += my mixingProbabilities [ic] * p [i] [ic];
+	for (long i = 1; i <= numberOfRows; i++) {
+		double rowsum = 0;
+		for (long ic = 1; ic <= my numberOfComponents; ic++) {
+			rowsum += my mixingProbabilities[ic] * p[i][ic];
 		}
-		p [i] [nocp1] = rowsum;
-		for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-			p [norp1] [ic] += my mixingProbabilities[ic] * p [i] [ic] / p [i] [nocp1];
+		p[i][nocp1] = rowsum;
+		for (long ic = 1; ic <= my numberOfComponents; ic++) {
+			p[norp1][ic] += my mixingProbabilities[ic] * p[i][ic] / p[i][nocp1];
 		}
 	}
 }
@@ -1006,9 +1003,9 @@ void GaussianMixture_updateProbabilityMarginals (GaussianMixture me, double **p,
 void GaussianMixture_removeComponent_bookkeeping (GaussianMixture me, long component, double **p, long numberOfRows) {
 	// p is (NumberOfRows+1) by (numberOfComponents+1) !
 
-	for (long i = 1; i <= numberOfRows + 1; i ++) {
-		for (long ic = component; ic <= my numberOfComponents; ic ++) {
-			p [i] [ic] = p [i] [ic + 1];
+	for (long i = 1; i <= numberOfRows + 1; i++) {
+		for (long ic = component; ic <= my numberOfComponents; ic++) {
+			p[i][ic] = p[i][ic + 1];
 		}
 	}
 	GaussianMixture_updateProbabilityMarginals (me, p, numberOfRows);
@@ -1028,11 +1025,11 @@ double GaussianMixture_getLikelihoodValue (GaussianMixture me, double **p, long
 	// Because we try to _maximize_ a criterion, all criteria are negative numbers.
 
 	if (criterion == GaussianMixture_CD_LIKELIHOOD) {
-		double lnpcd = 0.0;
-		for (long i = 1; i <= numberOfRows; i ++) {
+		double lnpcd = 0;
+		for (long i = 1; i <= numberOfRows; i++) {
 			double psum = 0, lnsum = 0;
-			for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-				double pp = my mixingProbabilities[ic] * p [i] [ic];
+			for (long ic = 1; ic <= my numberOfComponents; ic++) {
+				double pp = my mixingProbabilities[ic] * p[i][ic];
 				psum += pp;
 				lnsum += pp * log (pp);
 			}
@@ -1045,13 +1042,13 @@ double GaussianMixture_getLikelihoodValue (GaussianMixture me, double **p, long
 
 	// The common factor for all other criteria is the log(likelihood)
 
-	double lnp = 0.0;
-	for (long i = 1; i <= numberOfRows; i ++) {
-		double psum = 0.0;
-		for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-			psum += my mixingProbabilities [ic] * p [i] [ic];
+	double lnp = 0;
+	for (long i = 1; i <= numberOfRows; i++) {
+		double psum = 0;
+		for (long ic = 1; ic <= my numberOfComponents; ic++) {
+			psum += my mixingProbabilities[ic] * p[i][ic];
 		}
-		if (psum > 0.0) {
+		if (psum > 0) {
 			lnp += log (psum);
 		}
 	}
@@ -1069,88 +1066,86 @@ double GaussianMixture_getLikelihoodValue (GaussianMixture me, double **p, long
 			L(theta,Y)= N/2*sum(m=1..k, log(n*alpha[k]/12)) +k/2*ln(n/12) +k(N+1)/2
 				- log (sum(i=1..n, sum(m=1..k, alpha[k]*p(k))))
 		*/
-		double logmpn = 0.0;
-		for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-			logmpn += log (my mixingProbabilities [ic]);
+		double logmpn = 0;
+		for (long ic = 1; ic <= my numberOfComponents; ic++) {
+			logmpn += log (my mixingProbabilities[ic]);
 		}
 
 		// a rewritten L(theta,Y) is
 
-		return lnp - 0.5 * my numberOfComponents * (npars + 1) * (log (numberOfRows / 12.0) + 1.0)
+		return lnp - 0.5 * my numberOfComponents * (npars + 1) * (log (numberOfRows / 12.0) + 1)
 		       + 0.5 * npars * logmpn;
 	} else if (criterion == GaussianMixture_BIC) {
-		return 2.0 * lnp - np * log (numberOfRows);
+		return 2 * lnp - np * log (numberOfRows);
 	} else if (criterion == GaussianMixture_AIC) {
-		return 2.0 * (lnp - np);
+		return 2 * (lnp - np);
 	} else if (criterion == GaussianMixture_AICC) {
 		np = npars * my numberOfComponents;
-		return 2.0 * (lnp - np * (numberOfRows / (numberOfRows - np - 1.0)));
+		return 2 * (lnp - np * (numberOfRows / (numberOfRows - np - 1)));
 	}
 	return lnp;
 }
 
-autoGaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (GaussianMixture gm, TableOfReal thee, long minNumberOfComponents, double delta_l, long maxNumberOfIterations, double lambda, int criterion) {
+GaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (GaussianMixture gm, TableOfReal thee, long minNumberOfComponents, double delta_l, long maxNumberOfIterations, double lambda, int criterion) {
 	try {
 		const char32 *criterionText = GaussianMixture_criterionText (criterion);
-		bool deleteWeakComponents = ( minNumberOfComponents > 0 );
+		int deleteWeakComponents = minNumberOfComponents > 0;
 		autoGaussianMixture me = Data_copy (gm);
 		autoNUMmatrix<double> p (1, thy numberOfRows + 2, 1, my numberOfComponents + 1);
 
-		double *gsum = p [thy numberOfRows + 1]; // convenience array with sums
+		double *gsum = p[thy numberOfRows + 1]; // convenience array with sums
 
 		autoCovariance covg = TableOfReal_to_Covariance (thee);
 
-		double npars = GaussianMixture_getNumberOfParametersInComponent (me.get());
-		double nparsd2 = ( deleteWeakComponents ? npars / 2.0 : 0.0 );
+		double npars = GaussianMixture_getNumberOfParametersInComponent (me.peek());
+		double nparsd2 = deleteWeakComponents ? npars / 2 : 0;
 
 		// Initial E-step: Update all p's.
 
-		GaussianMixture_and_TableOfReal_getProbabilities (me.get(), thee, 0, p.peek());
+		GaussianMixture_and_TableOfReal_getProbabilities (me.peek(), thee, 0, p.peek());
 
-		double lnew = GaussianMixture_getLikelihoodValue (me.get(), p.peek(), thy numberOfRows, criterion);
+		double lnew = GaussianMixture_getLikelihoodValue (me.peek(), p.peek(), thy numberOfRows, criterion);
 
 		autoMelderProgress progress (U"Gaussian mixture...");
-		autoGaussianMixture best;
+		autoGaussianMixture best = 0;
 		try {
 			double lstart = lnew / thy numberOfRows;
 			long iter = 0, component;
-			double lmax = -1e308, lprev;
+			double lmax = -INFINITY, lprev;
 			while (my numberOfComponents >= minNumberOfComponents) {
 				do {
-					iter ++;
-					component = 1;
-					lprev = lnew;
+					iter++; component = 1; lprev = lnew;
 					while (component <= my numberOfComponents) {
 						// M-step for means and covariances
-						GaussianMixture_updateProbabilityMarginals (me.get(), p.peek(), thy numberOfRows);
-						GaussianMixture_updateCovariance (me.get(), component, thy data, thy numberOfRows, p.peek());
+						GaussianMixture_updateProbabilityMarginals (me.peek(), p.peek(), thy numberOfRows);
+						GaussianMixture_updateCovariance (me.peek(), component, thy data, thy numberOfRows, p.peek());
 						if (lambda > 0) {
-							GaussianMixture_addCovarianceFraction (me.get(), component, covg.get(), lambda);
+							GaussianMixture_addCovarianceFraction (me.peek(), component, covg.peek(), lambda);
 						}
 
 						// Now check if enough support for a component exists
 
-						double support_im = gsum [component] - nparsd2, support = 0.0;
-						for (long ic = 1; ic <= my numberOfComponents; ic ++) {
-							double support_ic = gsum [ic] - nparsd2;
-							if (support_ic > 0.0) {
+						double support_im = gsum[component] - nparsd2, support = 0;
+						for (long ic = 1; ic <= my numberOfComponents; ic++) {
+							double support_ic = gsum[ic] - nparsd2;
+							if (support_ic > 0) {
 								support += support_ic;
 							}
 						}
-						my mixingProbabilities [component] = ( support_im > 0.0 ? support_im : 0.0 );
-						if (support > 0.0) {
-							my mixingProbabilities [component] /= support;
+						my mixingProbabilities[component] = support_im > 0 ? support_im : 0;
+						if (support > 0) {
+							my mixingProbabilities[component] /= support;
 						}
 
 						NUMdvector_scaleAsProbabilities (my mixingProbabilities, my numberOfComponents);
 
-						if (my mixingProbabilities [component] > 0.0) { // update p for component
-							GaussianMixture_and_TableOfReal_getProbabilities (me.get(), thee, component, p.peek());
-							component ++;
+						if (my mixingProbabilities[component] > 0) { // update p for component
+							GaussianMixture_and_TableOfReal_getProbabilities (me.peek(), thee, component, p.peek());
+							component++;
 						} else {
 							// "Remove" the component column from p by shifting row values
 
-							GaussianMixture_removeComponent_bookkeeping (me.get(), component, p.peek(), thy numberOfRows);
+							GaussianMixture_removeComponent_bookkeeping (me.peek(), component, p.peek(), thy numberOfRows);
 
 							// Now numberOfComponents is one less!
 							// MelderInfo_writeLine (U"Removed component ", component);
@@ -1160,13 +1155,14 @@ autoGaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (Gau
 					// L(theta,Y)=N/2 sum(m=1..k, log(n*mixingP[m]/12))+k/2log(n/12)+k/2(N+1)-loglikelihood reduces to:
 					// k/2 (N+1){log(n/12)+1}+N/2sum(m=1..k,mixingP[m]) - loglikelihood
 
-					lnew = GaussianMixture_getLikelihoodValue (me.get(), p.peek(), thy numberOfRows, criterion);
+					lnew = GaussianMixture_getLikelihoodValue (me.peek(), p.peek(), thy numberOfRows, criterion);
 
 					Melder_progress ((double) iter / (double) maxNumberOfIterations, U", ", criterionText, U": ",
-						lnew / thy numberOfRows, U"\nComponents: ", my numberOfComponents, U"\nL0: ", lstart);
-				} while (lnew > lprev && fabs ((lprev - lnew) / lnew) > delta_l && iter < maxNumberOfIterations);
+						lnew / thy numberOfRows, U"\nComponents: ", my numberOfComponents,
+						U"\nL0: ", lstart);
+				} while (lnew > lprev && fabs ( (lprev - lnew) / lnew) > delta_l && iter < maxNumberOfIterations);
 				if (lnew > lmax) {
-					best = Data_copy (me.get());
+					best.reset (Data_copy (me.peek()));
 					lmax = lnew;
 					if (! deleteWeakComponents) {
 						break;    // TODO was got end; is dat hetzelfde?
@@ -1174,15 +1170,15 @@ autoGaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (Gau
 				}
 				if (my numberOfComponents > 1) { // remove smallest component
 					component = 1;
-					double mpmin = my mixingProbabilities [component];
-					for (long ic = 2; ic <= my numberOfComponents; ic ++) {
-						if (my mixingProbabilities [ic] < mpmin) {
-							mpmin = my mixingProbabilities [ic];
+					double mpmin = my mixingProbabilities[component];
+					for (long ic = 2; ic <= my numberOfComponents; ic++) {
+						if (my mixingProbabilities[ic] < mpmin) {
+							mpmin = my mixingProbabilities[ic];
 							component = ic;
 						}
 					}
 
-					GaussianMixture_removeComponent_bookkeeping (me.get(), component, p.peek(), thy numberOfRows);
+					GaussianMixture_removeComponent_bookkeeping (me.peek(), component, p.peek(), thy numberOfRows);
 				} else {
 					break;
 				}
@@ -1190,7 +1186,7 @@ autoGaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (Gau
 		} catch (MelderError) {
 			Melder_clearError ();
 		}
-		return best;
+		return best.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"GaussianMixture not improved.");
 	}
@@ -1202,44 +1198,45 @@ void GaussianMixture_removeComponent (GaussianMixture me, long component) {
 		return;
 	}
 
-	my covariances -> removeItem (component);
+	Collection_removeItem (my covariances, component);
 	my numberOfComponents --;
 
-	for (long ic = component; ic <= my numberOfComponents; ic ++) {
-		my mixingProbabilities [ic] = my mixingProbabilities [ic + 1];
+	for (long ic = component; ic <= my numberOfComponents; ic++) {
+		my mixingProbabilities[ic] = my mixingProbabilities[ic + 1];
 	}
 
 	NUMdvector_scaleAsProbabilities (my mixingProbabilities, my numberOfComponents);
 }
 
-autoGaussianMixture TableOfReal_to_GaussianMixture (TableOfReal me, long numberOfComponents, double delta_lnp, long maxNumberOfIterations, double lambda, int storage, int criterion) {
+GaussianMixture TableOfReal_to_GaussianMixture (TableOfReal me, long numberOfComponents, double delta_lnp, long maxNumberOfIterations, double lambda, int storage, int criterion) {
 	try {
 		if (my numberOfRows < 2 * numberOfComponents) {
 			Melder_throw (U"The number of data points must at least be twice the number of components.");
 		}
 
 		autoGaussianMixture thee = GaussianMixture_create (numberOfComponents, my numberOfColumns, storage);
-		GaussianMixture_setLabelsFromTableOfReal (thee.get(), me);
-		GaussianMixture_initialGuess (thee.get(), me, 1.0, 0.05);
+		GaussianMixture_setLabelsFromTableOfReal (thee.peek(), me);
+		GaussianMixture_initialGuess (thee.peek(), me, 1, 0.05);
 		if (maxNumberOfIterations <= 0) {
-			return thee;
+			return thee.transfer();
 		}
 
-		GaussianMixture_and_TableOfReal_improveLikelihood (thee.get(), me, delta_lnp, maxNumberOfIterations, lambda, criterion);
-		return thee;
+		GaussianMixture_and_TableOfReal_improveLikelihood (thee.peek(), me, delta_lnp, maxNumberOfIterations, lambda, criterion);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no GaussianMixture created.");
 	}
 }
 
-autoCorrelation GaussianMixture_and_TableOfReal_to_Correlation (GaussianMixture me, TableOfReal thee) {
+Correlation GaussianMixture_and_TableOfReal_to_Correlation (GaussianMixture me, thou) {
 	try {
+		thouart (TableOfReal);
 		if (my dimension != thy numberOfColumns) {
 			Melder_throw (U"Dimensions must be equal.");
 		}
 		autoClassificationTable ct = GaussianMixture_and_TableOfReal_to_ClassificationTable (me, thee);
-		autoCorrelation him = ClassificationTable_to_Correlation_columns (ct.get());
-		return him;
+		autoCorrelation him = ClassificationTable_to_Correlation_columns (ct.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Correlation not created from GaussianMixture & TableOfReal.");
 	}
@@ -1249,8 +1246,8 @@ double GaussianMixture_getProbabilityAtPosition_string (GaussianMixture me, cons
 	autoNUMvector<double> v (1, my dimension);
 
 	long i = 0;
-	for (char32 *token = Melder_firstToken (vector); token != nullptr; token = Melder_nextToken ()) {
-		v [++ i] = Melder_atof (token);
+	for (char32 *token = Melder_firstToken (vector); token != NULL; token = Melder_nextToken ()) {
+		v[++i] = Melder_atof (token);
 		if (i == my dimension) {
 			break;
 		}
@@ -1262,22 +1259,22 @@ double GaussianMixture_getProbabilityAtPosition_string (GaussianMixture me, cons
 double GaussianMixture_getMarginalProbabilityAtPosition (GaussianMixture me, double *vector, double x) {
 	double p = 0;
 	for (long im = 1; im <= my numberOfComponents; im++) {
-		double pim = Covariance_getMarginalProbabilityAtPosition (my covariances->at [im], vector, x);
-		p += my mixingProbabilities [im] * pim;
+		double pim = Covariance_getMarginalProbabilityAtPosition ( (Covariance) my covariances -> item[im], vector, x);
+		p += my mixingProbabilities[im] * pim;
 	}
 	return p;
 }
 
 double GaussianMixture_getProbabilityAtPosition (GaussianMixture me, double *xpos) {
-	double p = 0.0;
-	for (long im = 1; im <= my numberOfComponents; im ++) {
-		double pim = Covariance_getProbabilityAtPosition (my covariances->at [im], xpos);
-		p += my mixingProbabilities [im] * pim;
+	double p = 0;
+	for (long im = 1; im <= my numberOfComponents; im++) {
+		double pim = Covariance_getProbabilityAtPosition ( (Covariance) my covariances -> item[im], xpos);
+		p += my mixingProbabilities[im] * pim;
 	}
 	return p;
 }
 
-autoMatrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA thee, long d1, long d2, double xmin, double xmax, long nx, double ymin, double ymax, long ny) {
+Matrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA thee, long d1, long d2, double xmin, double xmax, long nx, double ymin, double ymax, long ny) {
 	try {
 		if (my dimension != thy dimension) {
 			Melder_throw (U"Dimensions must be equal.");
@@ -1288,7 +1285,7 @@ autoMatrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA th
 		autoNUMvector<double> v (1, my dimension);
 
 		if (xmax == xmin || ymax == ymin) {
-			double xmind, xmaxd, ymind, ymaxd, nsigmas = 2.0;
+			double xmind, xmaxd, ymind, ymaxd, nsigmas = 2;
 
 			GaussianMixture_and_PCA_getIntervalsAlongDirections (me, thee, d1, d2, nsigmas, &xmind, &xmaxd, &ymind, &ymaxd);
 			if (xmax == xmin) {
@@ -1307,41 +1304,41 @@ autoMatrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA th
 		double x1 = xmin + 0.5 * dx, y1 = ymin + 0.5 * dy;
 		autoMatrix him = Matrix_create (xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
 
-		for (long i = 1; i <= ny; i ++) {
+		for (long i = 1; i <= ny; i++) {
 			double y = y1 + (i - 1) * dy;
-			for (long j = 1; j <= nx; j ++) {
+			for (long j = 1; j <= nx; j++) {
 				double x = x1 + (j - 1) * dx;
-				for (long k = 1; k <= my dimension; k ++) {
-					v [k] = x * thy eigenvectors [d1] [k] + y * thy eigenvectors [d2] [k];
+				for (long k = 1; k <= my dimension; k++) {
+					v[k] = x * thy eigenvectors[d1][k] + y * thy eigenvectors[d2][k];
 				}
-				his z [i] [j] = GaussianMixture_getProbabilityAtPosition (me, v.peek());
+				his z[i][j] = GaussianMixture_getProbabilityAtPosition (me, v.peek());
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": no Matrix density created.");
 	}
 }
 
-autoTableOfReal GaussianMixture_to_TableOfReal_randomSampling (GaussianMixture me, long numberOfPoints) {
+TableOfReal GaussianMixture_to_TableOfReal_randomSampling (GaussianMixture me, long numberOfPoints) {
 	try {
-		Covariance cov = my covariances->at [1];
+		Covariance cov = (Covariance) my covariances -> item[1];
 		autoTableOfReal thee = TableOfReal_create (numberOfPoints, my dimension);
 		autoNUMvector<double> buf (1, my dimension);
 		NUMstrings_copyElements (cov -> columnLabels, thy columnLabels, 1, my dimension);
-		for (long i = 1; i <= numberOfPoints; i ++) {
+		for (long i = 1; i <= numberOfPoints; i++) {
 			char32 *covname;
 			GaussianMixture_generateOneVector (me, thy data[i], &covname, buf.peek());
-			TableOfReal_setRowLabel (thee.get(), i, covname);
+			TableOfReal_setRowLabel (thee.peek(), i, covname);
 		}
 		GaussianMixture_unExpandPCA (me);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		GaussianMixture_unExpandPCA (me); Melder_throw (U"TableOfReal with random ssampling not created.");
 	}
 }
 
-autoTableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (GaussianMixture me, TableOfReal thee, double h) {
+TableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (GaussianMixture me, TableOfReal thee, double h) {
 	try {
 		long n = thy numberOfRows, d = thy numberOfColumns, nocp1 = my numberOfComponents + 1;
 
@@ -1362,30 +1359,30 @@ autoTableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTest
 
 		long iprob = 1, ih = 2, itnb = 3, ilnmu = 4, ilnvar = 5, indata = 6, id = 7;
 		const char32 *label[8] = { U"", U"p", U"h", U"tnb", U"lnmu", U"lnvar", U"ndata", U"d" };
-		for (long icol = 1; icol <= 7; icol ++) {
-			TableOfReal_setColumnLabel (him.get(), icol, label [icol]);
+		for (long icol = 1; icol <= 7; icol++) {
+			TableOfReal_setColumnLabel (him.peek(), icol, label[icol]);
 		}
-		for (long irow = 1; irow <= my numberOfComponents; irow ++) {
-			Covariance cov = my covariances->at [irow];
-			TableOfReal_setRowLabel (him.get(), irow, Thing_getName (cov));
+		for (long irow = 1; irow <= my numberOfComponents; irow++) {
+			Covariance cov = (Covariance) my covariances -> item[irow];
+			TableOfReal_setRowLabel (him.peek(), irow, Thing_getName (cov));
 		}
 
-		for (long icol = 1 ; icol <= my numberOfComponents; icol ++) {
-			his data[icol][indata] = p [n + 1] [icol];
+		for (long icol = 1 ; icol <= my numberOfComponents; icol++) {
+			his data[icol][indata] = p[n + 1][icol];
 		}
 
-		for (long im = 1; im <= my numberOfComponents; im ++) {
-			Covariance cov = my covariances->at [im];
-			double mixingP = my mixingProbabilities [im];
-			double nd = his data [im] [indata], d2 = d / 2.0;
-			double beta = h > 0.0 ? NUMsqrt1_2 / h : NUMsqrt1_2 * pow ( (1.0 + 2.0 * d) / 4.0, 1.0 / (d + 4.0)) * pow (nd, 1.0 / (d + 4.0));
+		for (long im = 1; im <= my numberOfComponents; im++) {
+			Covariance cov = (Covariance) my covariances -> item[im];
+			double mixingP = my mixingProbabilities[im];
+			double nd = his data[im][indata], d2 = d / 2.0;
+			double beta = h > 0 ? NUMsqrt1_2 / h : NUMsqrt1_2 * pow ( (1.0 + 2 * d) / 4, 1.0 / (d + 4)) * pow (nd, 1.0 / (d + 4));
 			double beta2 = beta * beta, beta4 = beta2 * beta2, beta8 = beta4 * beta4;
-			double gamma = 1.0 + 2.0 * beta2, gamma2 = gamma * gamma, gamma4 = gamma2 * gamma2;
-			double delta = 1.0 + beta2 * (4.0 + 3.0 * beta2), delta2 = delta * delta;
-			double mu = 1.0 - pow (gamma, -d2) * (1.0 + d * beta2 / gamma + d * (d + 2.0) * beta4 / (2.0 * gamma2));
-			double var = 2.0 * pow (1.0 + 4.0 * beta2, -d2)
-			             + 2.0 * pow (gamma,  -d) * (1.0 + 2.0 * d * beta4 / gamma2  + 3.0 * d * (d + 2.0) * beta8 / (4.0 * gamma4))
-			             - 4.0 * pow (delta, -d2) * (1.0 + 3.0 * d * beta4 / (2.0 * delta) + d * (d + 2.0) * beta8 / (2.0 * delta2));
+			double gamma = 1 + 2 * beta2, gamma2 = gamma * gamma, gamma4 = gamma2 * gamma2;
+			double delta = 1.0 + beta2 * (4 + 3 * beta2), delta2 = delta * delta;
+			double mu = 1.0 - pow (gamma, -d2) * (1.0 + d * beta2 / gamma + d * (d + 2) * beta4 / (2 * gamma2));
+			double var = 2.0 * pow (1 + 4 * beta2, -d2)
+			             + 2.0 * pow (gamma,  -d) * (1.0 + 2 * d * beta4 / gamma2  + 3 * d * (d + 2) * beta8 / (4 * gamma4))
+			             - 4.0 * pow (delta, -d2) * (1.0 + 3 * d * beta4 / (2 * delta) + d * (d + 2) * beta8 / (2 * delta2));
 			double mu2 = mu * mu;
 
 			double prob = NUMundefined, tnb = NUMundefined, lnmu = NUMundefined, lnvar = NUMundefined;
@@ -1393,37 +1390,37 @@ autoTableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTest
 			try {
 				SSCP_expandLowerCholesky (cov);
 			} catch (MelderError) {
-				tnb = 4.0 * nd;
+				tnb = 4 * nd;
 			}
 
-			double djk, djj, sumjk = 0.0, sumj = 0.0;
-			double b1 = beta2 / 2.0, b2 = b1 / (1.0 + beta2);
+			double djk, djj, sumjk = 0, sumj = 0;
+			double b1 = beta2 / 2, b2 = b1 / (1.0 + beta2);
 
 			/* Heinze & Wagner (1997), page 3
 				We use d[j][k] = ||Y[j]-Y[k]||^2 = (Y[j]-Y[k])'S^(-1)(Y[j]-Y[k])
 				So d[j][k]= d[k][j] and d[j][j] = 0
 			*/
-			for (long j = 1; j <= n; j ++) {
-				double wj = p [j] [nocp1] > 0.0 ? mixingP * p [j] [im] / p [j] [nocp1] : 0.0;
-				for (long k = 1; k < j; k ++) {
-					djk = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data [j], thy data [k], d, d);
-					double w = p [k] [nocp1] > 0.0 ? wj * mixingP * p [k] [im] / p [k] [nocp1] : 0.0;
-					sumjk += 2.0 * w * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
+			for (long j = 1; j <= n; j++) {
+				double wj = p[j][nocp1] > 0 ? mixingP * p[j][im] / p[j][nocp1] : 0;
+				for (long k = 1; k < j; k++) {
+					djk = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data[j], thy data[k], d, d);
+					double w = p[k][nocp1] > 0 ? wj * mixingP * p[k][im] / p[k][nocp1] : 0;
+					sumjk += 2 * w * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
 				}
 				sumjk += wj * wj; // for k == j. Is this ok now for probability weighing ????
-				djj = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data [j], cov -> centroid, d, d);
+				djj = NUMmahalanobisDistance_chi (cov -> lowerCholesky, thy data[j], cov -> centroid, d, d);
 				sumj += wj * exp (-b2 * djj);
 			}
 			tnb = (1.0 / nd) * sumjk - 2.0 * pow (1.0 + beta2, - d2) * sumj + nd * pow (gamma, - d2); // n *
 
-			his data [im] [ilnmu] = lnmu = 0.5 * log (mu2 * mu2 / (mu2 + var)); //log (sqrt (mu2 * mu2 /(mu2 + var)));
-			his data [im] [ilnvar] = lnvar = sqrt (log ( (mu2 + var) / mu2));
-			his data [im] [iprob] = prob = NUMlogNormalQ (tnb, lnmu, lnvar);
-			his data [im] [ih] = NUMsqrt1_2 / beta;
-			his data [im] [id] = d;
-			his data [im] [itnb] = tnb;
+			his data[im][ilnmu] = lnmu = 0.5 * log (mu2 * mu2 / (mu2 + var)); //log (sqrt (mu2 * mu2 /(mu2 + var)));
+			his data[im][ilnvar] = lnvar = sqrt (log ( (mu2 + var) / mu2));
+			his data[im][iprob] = prob = NUMlogNormalQ (tnb, lnmu, lnvar);
+			his data[im][ih] = NUMsqrt1_2 / beta;
+			his data[im][id] = d;
+			his data[im][itnb] = tnb;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal for BHEP not created.");
 	}
diff --git a/dwtools/GaussianMixture.h b/dwtools/GaussianMixture.h
index 50e3943..0f14b74 100644
--- a/dwtools/GaussianMixture.h
+++ b/dwtools/GaussianMixture.h
@@ -2,7 +2,7 @@
 #define _GaussianMixture_h_
 /* GaussianMixture.h
  *
- * Copyright (C) 2010-2011, 2015-2016 David Weenink
+ * Copyright (C) 2010-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,31 +30,27 @@
 #include "TableOfReal_extensions.h"
 
 #include "GaussianMixture_def.h"
+oo_CLASS_CREATE (GaussianMixture, Data);
 
 /*
 	Constraints for a Gaussian mixture:
 	 all covariances have the same 'dimension' parameter
 */
-autoGaussianMixture GaussianMixture_create (long numberOfComponents, long dimension, long storage);
+GaussianMixture GaussianMixture_create (long numberOfComponents, long dimension, long storage);
 /* Start each function with expand and end with unExpand */
-
 void GaussianMixture_expandPCA (GaussianMixture me);
-
 void GaussianMixture_unExpandPCA (GaussianMixture me);
 
 void GaussianMixture_drawConcentrationEllipses (GaussianMixture me, Graphics g,
 	double scale, int confidence, char32 *label, int pcaDirections, long d1, long d2,
 	double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish);
-
 void GaussianMixture_and_PCA_drawConcentrationEllipses (GaussianMixture me, PCA him, Graphics g,
 	double scale, int confidence, char32 *label, long d1, long d2,
 	double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish);
-
 void GaussianMixture_drawMarginalPdf (GaussianMixture me, Graphics g, long d, double xmin, double xmax, double ymin, double ymax, long npoints, long nbins, int garnish);
-
 void GaussianMixture_and_PCA_drawMarginalPdf (GaussianMixture me, PCA him, Graphics g, long d, double xmin, double xmax, double ymin, double ymax, long npoints, long nbins, int garnish);
 
-autoGaussianMixture TableOfReal_to_GaussianMixture_fromRowLabels (TableOfReal me, long storage);
+GaussianMixture TableOfReal_to_GaussianMixture_fromRowLabels (TableOfReal me, long storage);
 
 void GaussianMixture_initialGuess (GaussianMixture me, TableOfReal thee, double nSigmas, double ru_range);
 /*
@@ -76,57 +72,45 @@ void GaussianMixture_initialGuess (GaussianMixture me, TableOfReal thee, double
 
 const char32 *GaussianMixture_criterionText (int criterion);
 
-autoGaussianMixture TableOfReal_to_GaussianMixture (TableOfReal me, long numberOfComponents, double delta_lnp, long maxNumberOfIterations, double lambda, int storage, int criterion);
+GaussianMixture TableOfReal_to_GaussianMixture (TableOfReal me, long numberOfComponents, double delta_lnp, long maxNumberOfIterations, double lambda, int storage, int criterion);
 
-void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, TableOfReal thee, double delta_lnp, long maxNumberOfIterations, double lambda, int criterion);
-
-autoGaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (GaussianMixture me, TableOfReal thee, long minNumberOfComponents, double delta_l, long maxNumberOfIterations, double lambda, int criterion);
+void GaussianMixture_and_TableOfReal_improveLikelihood (GaussianMixture me, thou, double delta_lnp,
+	long maxNumberOfIterations, double lambda, int criterion);
 
+GaussianMixture GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (GaussianMixture me, TableOfReal thee, long minNumberOfComponents, double delta_l, long maxNumberOfIterations, double lambda, int criterion);
 void GaussianMixture_splitComponent (GaussianMixture me, long component);
 
-autoClassificationTable GaussianMixture_and_TableOfReal_to_ClassificationTable (GaussianMixture me, TableOfReal thee);
-
-autoTableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (GaussianMixture me, TableOfReal thee, double h);
+ClassificationTable GaussianMixture_and_TableOfReal_to_ClassificationTable (GaussianMixture me, TableOfReal thee);
+TableOfReal GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (GaussianMixture me, TableOfReal thee, double h);
 
 double GaussianMixture_and_TableOfReal_getLikelihoodValue (GaussianMixture me, TableOfReal thee, int criterion);
 
 double GaussianMixture_getProbabilityAtPosition (GaussianMixture me, double *vector);
-
 double GaussianMixture_getProbabilityAtPosition_string (GaussianMixture me, const char32 *vector);
-
 double GaussianMixture_getMarginalProbabilityAtPosition (GaussianMixture me, double *vector, double x);
 
-autoCorrelation GaussianMixture_and_TableOfReal_to_Correlation (GaussianMixture me, TableOfReal thee);
+Correlation GaussianMixture_and_TableOfReal_to_Correlation (GaussianMixture me, thou);
 /* Correlation between components based on the data in the table */
 
-autoCovariance GaussianMixture_to_Covariance_total (GaussianMixture me);
+Covariance GaussianMixture_to_Covariance_total (GaussianMixture me);
+Covariance GaussianMixture_to_Covariance_between (GaussianMixture me);
+Covariance GaussianMixture_to_Covariance_within (GaussianMixture me);
 
-autoCovariance GaussianMixture_to_Covariance_between (GaussianMixture me);
 
-autoCovariance GaussianMixture_to_Covariance_within (GaussianMixture me);
+Covariance GaussianMixture_extractComponent(GaussianMixture me, long component);
+TableOfReal GaussianMixture_extractCentroids (GaussianMixture me);
+TableOfReal GaussianMixture_extractMixingProbabilities (GaussianMixture me);
 
+PCA GaussianMixture_to_PCA (GaussianMixture me);
 
-autoCovariance GaussianMixture_extractComponent(GaussianMixture me, long component);
-
-autoTableOfReal GaussianMixture_extractCentroids (GaussianMixture me);
-
-autoTableOfReal GaussianMixture_extractMixingProbabilities (GaussianMixture me);
-
-autoPCA GaussianMixture_to_PCA (GaussianMixture me);
-
-autoMatrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA pca, long d1, long d2, double xmin, double xmax, long nx, double ymin, double ymax, long ny);
-
+Matrix GaussianMixture_and_PCA_to_Matrix_density (GaussianMixture me, PCA pca, long d1, long d2, double xmin, double xmax, long nx, double ymin, double ymax, long ny);
 void GaussianMixture_and_PCA_getIntervalsAlongDirections (GaussianMixture me, PCA thee, long d1, long d2, double nsigmas, double *xmin, double *xmax, double *ymin, double *ymax);
-
 void GaussianMixture_and_PCA_getIntervalAlongDirection (GaussianMixture me, PCA thee, long d, double nsigmas, double *xmin, double *xmax);
-
 void GaussianMixture_getIntervalAlongDirection (GaussianMixture me, long d, double nsigmas, double *xmin, double *xmax);
-
 void GaussianMixture_getIntervalsAlongDirections (GaussianMixture me, long d1, long d2, double nsigmas, double *xmin, double *xmax, double *ymin, double *ymax);
 
 /* with on demand expand of pca ! */
 int GaussianMixture_generateOneVector (GaussianMixture me, double *c, char32 **covname, double *buf);
-
-autoTableOfReal GaussianMixture_to_TableOfReal_randomSampling (GaussianMixture me, long numberOfPoints);
+TableOfReal GaussianMixture_to_TableOfReal_randomSampling (GaussianMixture me, long numberOfPoints);
 
 #endif /* _GaussianMixture_h_ */
diff --git a/dwtools/GaussianMixture_def.h b/dwtools/GaussianMixture_def.h
index b18c194..ca15b85 100644
--- a/dwtools/GaussianMixture_def.h
+++ b/dwtools/GaussianMixture_def.h
@@ -1,6 +1,6 @@
 /* GaussianMixture_def.h
  *
- * Copyright (C) 2010 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2010 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,12 +18,12 @@
  */
 
 #define ooSTRUCT GaussianMixture
-oo_DEFINE_CLASS (GaussianMixture, Daata)
+oo_DEFINE_CLASS (GaussianMixture, Data)
 
 	oo_LONG (numberOfComponents)
 	oo_LONG (dimension)
 	oo_DOUBLE_VECTOR (mixingProbabilities, numberOfComponents)
-	oo_AUTO_OBJECT (CovarianceList, 0, covariances)
+	oo_COLLECTION (Ordered, covariances, Covariance, 0)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/dwtools/HMM.cpp b/dwtools/HMM.cpp
index 5d7685d..d71b122 100644
--- a/dwtools/HMM.cpp
+++ b/dwtools/HMM.cpp
@@ -1,6 +1,6 @@
 /* HMM.cpp
  *
- * Copyright (C) 2010-2012,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2010-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,17 +45,6 @@
 #include "oo_DESCRIPTION.h"
 #include "HMM_def.h"
 
-Thing_implement (HMM, Daata, 0);
-Thing_implement (HMMState, Daata, 0);
-Thing_implement (HMMStateList, Ordered, 0);
-Thing_implement (HMMObservation, Daata, 0);
-Thing_implement (HMMObservationList, Ordered, 0);
-Thing_implement (HMMBaumWelch, Daata, 0);
-Thing_implement (HMMViterbi, Daata, 0);
-Thing_implement (HMMObservationSequence, Table, 0);
-Thing_implement (HMMObservationSequenceBag, Collection, 0);
-Thing_implement (HMMStateSequence, Strings, 0);
-
 /*
 	Whenever a routine returns ln(p), the result for p=0 is -INFINITY.
 	On IEEE floating point hardware this number behaves reasonably.
@@ -64,36 +53,39 @@ Thing_implement (HMMStateSequence, Strings, 0);
 */
 
 // helpers
-int NUMget_line_intersection_with_circle (double xc, double yc, double r, double a, double b, double *x1, double *y1, double *x2, double *y2);
-autoHMMObservation HMMObservation_create (const char32 *label, long numberOfComponents, long dimension, long storage);
+int NUMget_line_intersection_with_circle (double xc, double yc, double r, double a, double b,
+        double *x1, double *y1, double *x2, double *y2);
+void HMM_Observation_init (I, const char32 *label, long numberOfComponents, long dimension, long storage);
+HMM_Observation HMM_Observation_create (const char32 *label, long numberOfComponents, long dimension, long storage);
 
-long HMM_and_HMMObservationSequence_getLongestSequence (HMM me, HMMObservationSequence thee, long symbolNumber);
+long HMM_and_HMM_ObservationSequence_getLongestSequence (HMM me, HMM_ObservationSequence thee, long symbolNumber);
 long StringsIndex_getLongestSequence (StringsIndex me, long index, long *pos);
 long Strings_getLongestSequence (Strings me, char32 *string, long *pos);
-autoHMMState HMMState_create (const char32 *label);
-
-autoHMMBaumWelch HMMBaumWelch_create (long nstates, long nsymbols, long capacity);
-void HMMBaumWelch_getGamma (HMMBaumWelch me);
-autoHMMBaumWelch HMM_forward (HMM me, long *obs, long nt);
-void HMMBaumWelch_reInit (HMMBaumWelch me);
-void HMM_and_HMMBaumWelch_getXi (HMM me, HMMBaumWelch thee, long *obs);
-void HMM_and_HMMBaumWelch_reestimate (HMM me, HMMBaumWelch thee);
-void HMM_and_HMMBaumWelch_addEstimate (HMM me, HMMBaumWelch thee, long *obs);
-void HMM_and_HMMBaumWelch_forward (HMM me, HMMBaumWelch thee, long *obs);
-void HMM_and_HMMBaumWelch_backward (HMM me, HMMBaumWelch thee, long *obs);
-void HMM_and_HMMViterbi_decode (HMM me, HMMViterbi thee, long *obs);
+void HMM_State_init (I, const char32 *label);
+HMM_State HMM_State_create (const char32 *label);
+
+HMM_BaumWelch HMM_BaumWelch_create (long nstates, long nsymbols, long capacity);
+void HMM_BaumWelch_getGamma (HMM_BaumWelch me);
+HMM_BaumWelch HMM_forward (HMM me, long *obs, long nt);
+void HMM_BaumWelch_reInit (HMM_BaumWelch me);
+void HMM_and_HMM_BaumWelch_getXi (HMM me, HMM_BaumWelch thee, long *obs);
+void HMM_and_HMM_BaumWelch_reestimate (HMM me, HMM_BaumWelch thee);
+void HMM_and_HMM_BaumWelch_addEstimate (HMM me, HMM_BaumWelch thee, long *obs);
+void HMM_and_HMM_BaumWelch_forward (HMM me, HMM_BaumWelch thee, long *obs);
+void HMM_and_HMM_BaumWelch_backward (HMM me, HMM_BaumWelch thee, long *obs);
+void HMM_and_HMM_Viterbi_decode (HMM me, HMM_Viterbi thee, long *obs);
 double HMM_getProbabilityOfObservations (HMM me, long *obs, long numberOfTimes);
-autoTableOfReal StringsIndex_to_TableOfReal_transitions (StringsIndex me, int probabilities);
-autoStringsIndex HMM_and_HMMStateSequence_to_StringsIndex (HMM me, HMMStateSequence thee);
+TableOfReal StringsIndex_to_TableOfReal_transitions (StringsIndex me, int probabilities);
+StringsIndex HMM_and_HMM_StateSequence_to_StringsIndex (HMM me, HMM_StateSequence thee);
 
 
-autoHMMViterbi HMMViterbi_create (long nstates, long ntimes);
-autoHMMViterbi HMM_to_HMMViterbi (HMM me, long *obs, long ntimes);
+HMM_Viterbi HMM_Viterbi_create (long nstates, long ntimes);
+HMM_Viterbi HMM_to_HMM_Viterbi (HMM me, long *obs, long ntimes);
 
 // evaluate the numbers given to probabilities
 static double *NUMwstring_to_probs (char32 *s, long nwanted) {
 	long numbers_found;
-	autoNUMvector<double> numbers (NUMstring_to_numbers (s, & numbers_found), 1);
+	autoNUMvector<double> numbers (NUMstring_to_numbers (s, &numbers_found), 1);
 	if (numbers_found != nwanted) {
 		Melder_throw (U"You supplied ", numbers_found, U", while ", nwanted, U" numbers needed.");
 	}
@@ -102,20 +94,21 @@ static double *NUMwstring_to_probs (char32 *s, long nwanted) {
 		if (numbers[i] < 0) {
 			Melder_throw (U"Numbers have to be positive.");
 		}
-		sum += numbers [i];
+		sum += numbers[i];
 	}
 	if (sum <= 0) {
 		Melder_throw (U"All probabilities cannot be zero.");
 	}
-	for (long i = 1; i <= numbers_found; i ++) {
-		numbers [i] /= sum;
+	for (long i = 1; i <= numbers_found; i++) {
+		numbers[i] /= sum;
 	}
 	return numbers.transfer();
 }
 
-int NUMget_line_intersection_with_circle (double xc, double yc, double r, double a, double b, double *x1, double *y1, double *x2, double *y2) {
-	double ca = a * a + 1.0, bmyc = (b - yc);
-	double cb = 2.0 * (a * bmyc - xc);
+int NUMget_line_intersection_with_circle (double xc, double yc, double r, double a, double b,
+        double *x1, double *y1, double *x2, double *y2) {
+	double ca = a * a + 1, bmyc = (b - yc);
+	double cb = 2 * (a * bmyc - xc);
 	double cc = bmyc * bmyc + xc * xc - r * r;
 	long nroots = NUMsolveQuadraticEquation (ca, cb, cc, x1, x2);
 	if (nroots == 1) {
@@ -135,32 +128,35 @@ int NUMget_line_intersection_with_circle (double xc, double yc, double r, double
 
 // D(l_1,l_2)=1/n( log p(O_2|l_1) - log p(O_2|l_2)
 static double HMM_and_HMM_getCrossEntropy_asym (HMM me, HMM thee, long observationLength) {
-	autoHMMObservationSequence os = HMM_to_HMMObservationSequence (thee, 0, observationLength);
-	double ce = HMM_and_HMMObservationSequence_getCrossEntropy (me, os.get());
+	autoHMM_ObservationSequence os = HMM_to_HMM_ObservationSequence (thee, 0, observationLength);
+	double ce = HMM_and_HMM_ObservationSequence_getCrossEntropy (me, os.peek());
 	if (ce == NUMundefined || ce == INFINITY) {
 		return ce;
 	}
-	double ce2 = HMM_and_HMMObservationSequence_getCrossEntropy (thee, os.get());
+	double ce2 = HMM_and_HMM_ObservationSequence_getCrossEntropy (thee, os.peek());
 	if (ce2 == NUMundefined || ce2 == INFINITY) {
 		return ce2;
 	}
 	return ce - ce2;
 }
 
-/**************** HMMObservation ******************************/
+/**************** HMM_Observation ******************************/
+
+Thing_implement (HMM_Observation, Data, 0);
 
-static void HMMObservation_init (HMMObservation me, const char32 *label, long numberOfComponents, long dimension, long storage) {
+void HMM_Observation_init (I, const char32 *label, long numberOfComponents, long dimension, long storage) {
+	iam (HMM_Observation);
 	my label = Melder_dup (label);
 	my gm = GaussianMixture_create (numberOfComponents, dimension, storage);
 }
 
-autoHMMObservation HMMObservation_create (const char32 *label, long numberOfComponents, long dimension, long storage) {
+HMM_Observation HMM_Observation_create (const char32 *label, long numberOfComponents, long dimension, long storage) {
 	try {
-		autoHMMObservation me = Thing_new (HMMObservation);
-		HMMObservation_init (me.get(), label, numberOfComponents, dimension, storage);
-		return me;
+		autoHMM_Observation me = Thing_new (HMM_Observation);
+		HMM_Observation_init (me.peek(), label, numberOfComponents, dimension, storage);
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMObservation not created.");
+		Melder_throw (U"HMM_Observation not created.");
 	}
 }
 
@@ -204,31 +200,36 @@ long StringsIndex_getLongestSequence (StringsIndex me, long index, long *pos) {
 	return length;
 }
 
-/**************** HMMState ******************************/
+/**************** HMM_State ******************************/
 
-static void HMMState_init (HMMState me, const char32 *label) {
+Thing_implement (HMM_State, Data, 0);
+
+void HMM_State_init (I, const char32 *label) {
+	iam (HMM_State);
 	my label = Melder_dup (label);
 }
 
-autoHMMState HMMState_create (const char32 *label) {
+HMM_State HMM_State_create (const char32 *label) {
 	try {
-		autoHMMState me = Thing_new (HMMState);
-		HMMState_init (me.get(), label);
-		return me;
+		autoHMM_State me = Thing_new (HMM_State);
+		HMM_State_init (me.peek(), label);
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMState not created.");
+		Melder_throw (U"HMM_State not created.");
 	}
 }
 
-void HMMState_setLabel (HMMState me, char32 *label) {
+void HMM_State_setLabel (HMM_State me, char32 *label) {
 	Melder_free (my label);
 	my label = Melder_dup (label);
 }
 
-/**************** HMMBaumWelch ******************************/
+/**************** HMM_BaumWelch ******************************/
+
+Thing_implement (HMM_BaumWelch, Data, 0);
 
-void structHMMBaumWelch :: v_destroy () noexcept {
-	for (long it = 1; it <= capacity; it ++) {
+void structHMM_BaumWelch :: v_destroy () {
+	for (long it = 1; it <= numberOfTimes; it++) {
 		NUMmatrix_free (xi[it], 1, 1);
 	}
 	NUMvector_free (xi, 1);
@@ -236,15 +237,11 @@ void structHMMBaumWelch :: v_destroy () noexcept {
 	NUMmatrix_free (beta, 1, 1);
 	NUMmatrix_free (alpha, 1, 1);
 	NUMmatrix_free (gamma, 1, 1);
-	NUMmatrix_free (aij_num, 0, 1);
-	NUMmatrix_free (aij_denom, 0, 1);
-	NUMmatrix_free (bik_num, 1, 1);
-	NUMmatrix_free (bik_denom, 1, 1);
 }
 
-autoHMMBaumWelch HMMBaumWelch_create (long nstates, long nsymbols, long capacity) {
+HMM_BaumWelch HMM_BaumWelch_create (long nstates, long nsymbols, long capacity) {
 	try {
-		autoHMMBaumWelch me = Thing_new (HMMBaumWelch);
+		autoHMM_BaumWelch me = Thing_new (HMM_BaumWelch);
 		my numberOfTimes = my capacity = capacity;
 		my numberOfStates = nstates;
 		my numberOfSymbols = nsymbols;
@@ -260,132 +257,150 @@ autoHMMBaumWelch HMMBaumWelch_create (long nstates, long nsymbols, long capacity
 		for (long it = 1; it <= capacity; it++) {
 			my xi[it] = NUMmatrix<double> (1, nstates, 1, nstates);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMBaumWelch not created.");
+		Melder_throw (U"HMM_BaumWelch not created.");
 	}
 }
 
-void HMMBaumWelch_getGamma (HMMBaumWelch me) {
-	for (long it = 1; it <= my numberOfTimes; it ++) {
+void HMM_BaumWelch_getGamma (HMM_BaumWelch me) {
+	for (long it = 1; it <= my numberOfTimes; it++) {
 		double sum = 0.0;
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			my gamma [is] [it] = my alpha [is] [it] * my beta [is] [it];
-			sum += my gamma [is] [it];
+		for (long is = 1; is <= my numberOfStates; is++) {
+			my gamma[is][it] = my alpha[is][it] * my beta[is][it];
+			sum += my gamma[is][it];
 		}
 
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			my gamma [is] [it] /= sum;
+		for (long is = 1; is <= my numberOfStates; is++) {
+			my gamma[is][it] /= sum;
 		}
 	}
 }
 
-/**************** HMMViterbi ******************************/
+/**************** HMM_Viterbi ******************************/
+
+Thing_implement (HMM_Viterbi, Data, 0);
 
-autoHMMViterbi HMMViterbi_create (long nstates, long ntimes) {
+HMM_Viterbi HMM_Viterbi_create (long nstates, long ntimes) {
 	try {
-		autoHMMViterbi me = Thing_new (HMMViterbi);
+		autoHMM_Viterbi me = Thing_new (HMM_Viterbi);
 		my numberOfTimes = ntimes;
 		my numberOfStates = nstates;
-		my viterbi = NUMmatrix<double> (1, nstates, 1, ntimes);
+		my viterbi = NUMmatrix<double> (1, nstates, 1 , ntimes);
 		my bp = NUMmatrix<long> (1, nstates, 1 , ntimes);
 		my path = NUMvector<long> (1, ntimes);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMViterbi not created.");
+		Melder_throw (U"HMM_Viterbi not created.");
 	}
 }
 
-/******************* HMMObservationSequence & HMMStateSequence ***/
+/******************* HMM_ObservationSequence & HMM_StateSequence ***/
 
-autoHMMObservationSequence HMMObservationSequence_create (long numberOfItems, long dataLength) {
+Thing_implement (HMM_ObservationSequence, Table, 0);
+
+HMM_ObservationSequence HMM_ObservationSequence_create (long numberOfItems, long dataLength) {
 	try {
-		autoHMMObservationSequence me = Thing_new (HMMObservationSequence);
-		Table_initWithoutColumnNames (me.get(), numberOfItems, dataLength + 1);
-		return me;
+		autoHMM_ObservationSequence me = Thing_new (HMM_ObservationSequence);
+		Table_initWithoutColumnNames (me.peek(), numberOfItems, dataLength + 1);
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMObservationSequence not created.");
+		Melder_throw (U"HMM_ObservationSequence not created.");
 	}
 }
 
-long HMMObservationSequence_getNumberOfObservations (HMMObservationSequence me) {
-	return my rows.size;
+long HMM_ObservationSequence_getNumberOfObservations (HMM_ObservationSequence me) {
+	return my rows -> size;
 }
 
-void HMMObservationSequence_removeObservation (HMMObservationSequence me, long index) {
+void HMM_ObservationSequence_removeObservation (HMM_ObservationSequence me, long index) {
 	Table_removeRow ( (Table) me, index);
 }
 
-autoStrings HMMObservationSequence_to_Strings (HMMObservationSequence me) {
+Strings HMM_ObservationSequence_to_Strings (HMM_ObservationSequence me) {
 	try {
-		long numberOfStrings = my rows.size;
+		long numberOfStrings = my rows -> size;
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector<char32 *> (1, numberOfStrings);
 		for (long i = 1; i <= numberOfStrings; i++) {
 			thy strings[i] = Melder_dup_f (Table_getStringValue_Assert ( (Table) me, i, 1));
 			(thy numberOfStrings) ++;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Strings created.");
 	}
 }
 
-autoHMMObservationSequence Strings_to_HMMObservationSequence (Strings me) {
+HMM_ObservationSequence Strings_to_HMM_ObservationSequence (Strings me) {
 	try {
-		autoHMMObservationSequence thee = HMMObservationSequence_create (my numberOfStrings, 0);
+		autoHMM_ObservationSequence thee = HMM_ObservationSequence_create (my numberOfStrings, 0);
 		for (long i = 1; i <= my numberOfStrings; i++) {
-			Table_setStringValue ( (Table) thee.get(), i, 1, my strings[i]);
+			Table_setStringValue ( (Table) thee.peek(), i, 1, my strings[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no HMMObservationSequence created.");
+		Melder_throw (me, U": no HMM_ObservationSequence created.");
 	}
 }
 
-autoStringsIndex HMMObservationSequence_to_StringsIndex (HMMObservationSequence me) {
+StringsIndex HMM_ObservationSequence_to_StringsIndex (HMM_ObservationSequence me) {
 	try {
-		autoStrings s = HMMObservationSequence_to_Strings (me);
-		autoStringsIndex thee = Strings_to_StringsIndex (s.get());
-		return thee;
+		autoStrings s = HMM_ObservationSequence_to_Strings (me);
+		autoStringsIndex thee = Strings_to_StringsIndex (s.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no StringsIndex created.");
 	}
 }
 
-long HMM_and_HMMObservationSequence_getLongestSequence (HMM me, HMMObservationSequence thee, long symbolNumber) {
-	autoStringsIndex si = HMM_and_HMMObservationSequence_to_StringsIndex (me, thee);
+long HMM_and_HMM_ObservationSequence_getLongestSequence (HMM me, HMM_ObservationSequence thee, long symbolNumber) {
+	autoStringsIndex si = HMM_and_HMM_ObservationSequence_to_StringsIndex (me, thee);
 	// TODO
 	(void) symbolNumber;
 	return 1;
 }
 
-long HMMObservationSequenceBag_getLongestSequence (HMMObservationSequenceBag me) {
+Thing_implement (HMM_ObservationSequences, Collection, 0);
+
+HMM_ObservationSequences HMM_ObservationSequences_create () {
+	try {
+		autoHMM_ObservationSequences me = Thing_new (HMM_ObservationSequences);
+		Collection_init (me.peek(), classHMM_ObservationSequence, 1000);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"HMM_ObservationSequences not created.");
+	}
+}
+
+long HMM_ObservationSequences_getLongestSequence (HMM_ObservationSequences me) {
 	long longest = 0;
-	for (long i = 1; i <= my size; i ++) {
-		HMMObservationSequence thee = my at [i];
-		if (thy rows.size > longest) {
-			longest = thy rows.size;
+	for (long i = 1; i <= my size; i++) {
+		HMM_ObservationSequence thee = (HMM_ObservationSequence) my item[i];
+		if (thy rows -> size > longest) {
+			longest = thy rows -> size;
 		}
 	}
 	return longest;
 }
 
-autoHMMStateSequence HMMStateSequence_create (long numberOfItems) {
+Thing_implement (HMM_StateSequence, Strings, 0);
+
+HMM_StateSequence HMM_StateSequence_create (long numberOfItems) {
 	try {
-		autoHMMStateSequence me = Thing_new (HMMStateSequence);
+		autoHMM_StateSequence me = Thing_new (HMM_StateSequence);
 		my strings = NUMvector<char32 *> (1, numberOfItems);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"HMMStateSequence not created.");
+		Melder_throw (U"HMM_StateSequence not created.");
 	}
 }
 
-autoStrings HMMStateSequence_to_Strings (HMMStateSequence me) {
+Strings HMM_StateSequence_to_Strings (HMM_StateSequence me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
-		my structStrings :: v_copy (thee.get());
-		return thee;
+		my structStrings :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Strings created.");
 	}
@@ -394,16 +409,18 @@ autoStrings HMMStateSequence_to_Strings (HMMStateSequence me) {
 
 /**************** HMM ******************************/
 
+Thing_implement (HMM, Data, 0);
+
 void structHMM :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of states: ", numberOfStates);
-	for (long i = 1; i <= numberOfStates; i ++) {
-		HMMState hmms = our states->at [i];
+	for (long i = 1; i <= numberOfStates; i++) {
+		HMM_State hmms = (HMM_State) states -> item[i];
 		MelderInfo_writeLine (U"  ", hmms -> label);
 	}
 	MelderInfo_writeLine (U"Number of symbols: ", numberOfObservationSymbols);
-	for (long i = 1; i <= numberOfObservationSymbols; i ++) {
-		HMMObservation hmms = our observationSymbols->at [i];
+	for (long i = 1; i <= numberOfObservationSymbols; i++) {
+		HMM_Observation hmms = (HMM_Observation) observationSymbols -> item[i];
 		MelderInfo_writeLine (U"  ", hmms -> label);
 	}
 }
@@ -413,22 +430,22 @@ static void HMM_init (HMM me, long numberOfStates, long numberOfObservationSymbo
 	my numberOfObservationSymbols = numberOfObservationSymbols;
 	my componentStorage = 1;
 	my leftToRight = leftToRight;
-	my states = HMMStateList_create ();
-	my observationSymbols = HMMObservationList_create ();
+	my states = Ordered_create ();
+	my observationSymbols = Ordered_create ();
 	my transitionProbs = NUMmatrix<double> (0, numberOfStates, 1, numberOfStates + 1);
 	my emissionProbs = NUMmatrix<double> (1, numberOfStates, 1, numberOfObservationSymbols);
 }
 
-autoHMM HMM_create (int leftToRight, long numberOfStates, long numberOfObservationSymbols) {
+HMM HMM_create (int leftToRight, long numberOfStates, long numberOfObservationSymbols) {
 	try {
 		autoHMM me = Thing_new (HMM);
-		HMM_init (me.get(), numberOfStates, numberOfObservationSymbols, leftToRight);
-		HMM_setDefaultStates (me.get());
-		HMM_setDefaultObservations (me.get());
-		HMM_setDefaultTransitionProbs (me.get());
-		HMM_setDefaultStartProbs (me.get());
-		HMM_setDefaultEmissionProbs (me.get());
-		return me;
+		HMM_init (me.peek(), numberOfStates, numberOfObservationSymbols, leftToRight);
+		HMM_setDefaultStates (me.peek());
+		HMM_setDefaultObservations (me.peek());
+		HMM_setDefaultTransitionProbs (me.peek());
+		HMM_setDefaultStartProbs (me.peek());
+		HMM_setDefaultEmissionProbs (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"HMM not created.");
 	}
@@ -436,48 +453,50 @@ autoHMM HMM_create (int leftToRight, long numberOfStates, long numberOfObservati
 
 void HMM_setDefaultStates (HMM me) {
 	for (long i = 1; i <= my numberOfStates; i++) {
-		autoHMMState hmms = HMMState_create (Melder_cat (U"S", i));
-		HMM_addState_move (me, hmms.move());
+		autoHMM_State hmms = HMM_State_create (Melder_cat (U"S", i));
+		HMM_addState (me, hmms.transfer());
 	}
 }
 
-autoHMM HMM_createFullContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols, long numberOfFeatureStreams, long *dimensionOfStream, long *numberOfGaussiansforStream) {
+HMM HMM_createFullContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
+                                   long numberOfFeatureStreams, long *dimensionOfStream, long *numberOfGaussiansforStream) {
 	(void) leftToRight;
 	(void) numberOfStates;
 	(void) numberOfObservationSymbols;
 	(void) numberOfFeatureStreams;
 	(void) dimensionOfStream;
 	(void) numberOfGaussiansforStream;
-	return autoHMM();
+	return NULL;
 }
 
-autoHMM HMM_createContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols, long numberOfMixtureComponentsPerSymbol, long componentDimension, long componentStorage) {
+HMM HMM_createContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
+                               long numberOfMixtureComponentsPerSymbol, long componentDimension, long componentStorage) {
 	try {
 		autoHMM me = Thing_new (HMM);
-		HMM_init (me.get(), numberOfStates, numberOfObservationSymbols, leftToRight);
+		HMM_init (me.peek(), numberOfStates, numberOfObservationSymbols, leftToRight);
 		my numberOfMixtureComponents = numberOfMixtureComponentsPerSymbol;
 		my componentDimension = componentDimension;
 		my componentStorage = componentStorage;
 		for (long i = 1; i <= numberOfStates; i++) {
-			autoHMMState state = HMMState_create (Melder_cat (U"S", i));
-			HMM_addState_move (me.get(), state.move());
+			autoHMM_State state = HMM_State_create (Melder_cat (U"S", i));
+			HMM_addState (me.peek(), state.transfer());
 		}
 		for (long j = 1; j <= numberOfObservationSymbols; j++) {
-			autoHMMObservation obs = HMMObservation_create (Melder_cat (U"s", j), numberOfMixtureComponentsPerSymbol, componentDimension, componentStorage);
-			HMM_addObservation_move (me.get(), obs.move());
-		}
-		HMM_setDefaultTransitionProbs (me.get());
-		HMM_setDefaultStartProbs (me.get());
-		HMM_setDefaultEmissionProbs (me.get());
-		HMM_setDefaultMixingProbabilities (me.get());
-		return me;
+			autoHMM_Observation obs = HMM_Observation_create (Melder_cat (U"s", j), numberOfMixtureComponentsPerSymbol, componentDimension, componentStorage);
+			HMM_addObservation (me.peek(), obs.transfer());
+		}
+		HMM_setDefaultTransitionProbs (me.peek());
+		HMM_setDefaultStartProbs (me.peek());
+		HMM_setDefaultEmissionProbs (me.peek());
+		HMM_setDefaultMixingProbabilities (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Continuous model HMM not created.");
 	}
 }
 
 // for a simple non-hidden model leave either states empty or symbols empty !!!
-autoHMM HMM_createSimple (int leftToRight, const char32 *states_string, const char32 *symbols_string) {
+HMM HMM_createSimple (int leftToRight, const char32 *states_string, const char32 *symbols_string) {
 	try {
 		autoHMM me = Thing_new (HMM);
 		const char32 *states = states_string;
@@ -486,7 +505,7 @@ autoHMM HMM_createSimple (int leftToRight, const char32 *states_string, const ch
 		long numberOfObservationSymbols = Melder_countTokens (symbols_string);
 
 		if (numberOfStates == 0 and numberOfObservationSymbols == 0) {
-			Melder_throw (U"No states and no symbols given.");
+			Melder_throw (U"No states and symbols.");
 		}
 		if (numberOfStates > 0) {
 			if (numberOfObservationSymbols <= 0) {
@@ -500,20 +519,20 @@ autoHMM HMM_createSimple (int leftToRight, const char32 *states_string, const ch
 			my notHidden = 1;
 		}
 
-		HMM_init (me.get(), numberOfStates, numberOfObservationSymbols, leftToRight);
+		HMM_init (me.peek(), numberOfStates, numberOfObservationSymbols, leftToRight);
 
 		for (char32 *token = Melder_firstToken (states); token != 0; token = Melder_nextToken ()) {
-			autoHMMState state = HMMState_create (token);
-			HMM_addState_move (me.get(), state.move());
+			autoHMM_State state = HMM_State_create (token);
+			HMM_addState (me.peek(), state.transfer());
 		}
-		for (char32 *token = Melder_firstToken (symbols); token != nullptr; token = Melder_nextToken ()) {
-			autoHMMObservation symbol = HMMObservation_create (token, 0, 0, 0);
-			HMM_addObservation_move (me.get(), symbol.move());
+		for (char32 *token = Melder_firstToken (symbols); token != NULL; token = Melder_nextToken ()) {
+			autoHMM_Observation symbol = HMM_Observation_create (token, 0, 0, 0);
+			HMM_addObservation (me.peek(), symbol.transfer());
 		}
-		HMM_setDefaultTransitionProbs (me.get());
-		HMM_setDefaultStartProbs (me.get());
-		HMM_setDefaultEmissionProbs (me.get());
-		return me;
+		HMM_setDefaultTransitionProbs (me.peek());
+		HMM_setDefaultStartProbs (me.peek());
+		HMM_setDefaultEmissionProbs (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Simple HMM not created.");
 	}
@@ -521,45 +540,45 @@ autoHMM HMM_createSimple (int leftToRight, const char32 *states_string, const ch
 
 void HMM_setDefaultObservations (HMM me) {
 	const char32 *def = my notHidden ? U"S" : U"s";
-	for (long i = 1; i <= my numberOfObservationSymbols; i ++) {
-		autoHMMObservation hmms = HMMObservation_create (Melder_cat (def, i), 0, 0, 0);
-		HMM_addObservation_move (me, hmms.move());
+	for (long i = 1; i <= my numberOfObservationSymbols; i++) {
+		autoHMM_Observation hmms = HMM_Observation_create (Melder_cat (def, i), 0, 0, 0);
+		HMM_addObservation (me, hmms.transfer());
 	}
 }
 
 void HMM_setDefaultTransitionProbs (HMM me) {
-	for (long i = 1; i <= my numberOfStates; i ++) {
-		double p = ( my leftToRight ? 1.0 / (my numberOfStates - i + 1.0) : 1.0 / my numberOfStates );
+	for (long i = 1; i <= my numberOfStates; i++) {
+		double p = my leftToRight ? 1.0 / (my numberOfStates - i + 1) : 1.0 / my numberOfStates;
 		for (long j = 1; j <= my numberOfStates; j++) {
-			my transitionProbs [i] [j] = ( my leftToRight && j < i ? 0.0 : p );
+			my transitionProbs[i][j] = my leftToRight && j < i ? 0 : p;
 		}
 	}
 	// leftToRight must have end state!
-	if (my leftToRight) my transitionProbs [my numberOfStates] [my numberOfStates] =
-		    my transitionProbs [my numberOfStates] [my numberOfStates + 1] = 0.5;
+	if (my leftToRight) my transitionProbs[my numberOfStates][my numberOfStates] =
+		    my transitionProbs[my numberOfStates][my numberOfStates + 1] = 0.5;
 }
 
 void HMM_setDefaultStartProbs (HMM me) {
 	double p = 1.0 / my numberOfStates;
-	for (long j = 1; j <= my numberOfStates; j ++) {
-		my transitionProbs [0] [j] = p;
+	for (long j = 1; j <= my numberOfStates; j++) {
+		my transitionProbs[0][j] = p;
 	}
 }
 
 void HMM_setDefaultEmissionProbs (HMM me) {
 	double p = 1.0 / my numberOfObservationSymbols;
 	for (long i = 1; i <= my numberOfStates; i++)
-		for (long j = 1; j <= my numberOfObservationSymbols; j ++) {
-			my emissionProbs [i] [j] = my notHidden ? ( i == j ? 1.0 : 0.0 ) : p;
+		for (long j = 1; j <= my numberOfObservationSymbols; j++) {
+			my emissionProbs[i][j] = my notHidden ? (i == j ? 1 : 0) : p;
 		}
 }
 
 void HMM_setDefaultMixingProbabilities (HMM me) {
 	double mp = 1.0 / my numberOfMixtureComponents;
-	for (long is = 1; is <= my numberOfObservationSymbols; is ++) {
-		HMMObservation hmmo = my observationSymbols->at [is];
-		for (long im = 1; im <= my numberOfMixtureComponents; im ++) {
-			hmmo -> gm -> mixingProbabilities [im] = mp;
+	for (long is = 1; is <= my numberOfObservationSymbols; is++) {
+		HMM_Observation hmmo = (HMM_Observation) my observationSymbols -> item[is];
+		for (long im = 1; im <= my numberOfMixtureComponents; im++) {
+			hmmo -> gm -> mixingProbabilities[im] = mp;
 		}
 	}
 }
@@ -577,12 +596,12 @@ void HMM_setStartProbabilities (HMM me, char32 *probs) {
 
 void HMM_setTransitionProbabilities (HMM me, long state_number, char32 *state_probs) {
 	try {
-		if (state_number > my states->size) {
+		if (state_number > my states -> size) {
 			Melder_throw (U"State number too large.");
 		}
-		autoNUMvector<double> p (NUMwstring_to_probs (state_probs, my numberOfStates), 1);
-		for (long i = 1; i <= my numberOfStates + 1; i ++) {
-			my transitionProbs [state_number] [i] = p [i];
+		autoNUMvector<double> p (NUMwstring_to_probs (state_probs, my numberOfStates + 1), 1);
+		for (long i = 1; i <= my numberOfStates + 1; i++) {
+			my transitionProbs[state_number][i] = p[i];
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no transition probabilities set.");
@@ -591,7 +610,7 @@ void HMM_setTransitionProbabilities (HMM me, long state_number, char32 *state_pr
 
 void HMM_setEmissionProbabilities (HMM me, long state_number, char32 *emission_probs) {
 	try {
-		if (state_number > my states->size) {
+		if (state_number > my states -> size) {
 			Melder_throw (U"State number too large.");
 		}
 		if (my notHidden) {
@@ -599,7 +618,7 @@ void HMM_setEmissionProbabilities (HMM me, long state_number, char32 *emission_p
 		}
 		autoNUMvector<double> p (NUMwstring_to_probs (emission_probs, my numberOfObservationSymbols), 1);
 		for (long i = 1; i <= my numberOfObservationSymbols; i++) {
-			my emissionProbs [state_number] [i] = p [i];
+			my emissionProbs[state_number][i] = p[i];
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no emission probabilities set.");
@@ -607,60 +626,62 @@ void HMM_setEmissionProbabilities (HMM me, long state_number, char32 *emission_p
 
 }
 
-void HMM_addObservation_move (HMM me, autoHMMObservation thee) {
-	long ns = my observationSymbols->size + 1;
+void HMM_addObservation (HMM me, thou) {
+	thouart (HMM_Observation);
+	long ns = my observationSymbols -> size + 1;
 	if (ns > my numberOfObservationSymbols) {
 		Melder_throw (U"Observation list is full.");
 	}
-	my observationSymbols -> addItemAtPosition_move (thee.move(), ns);
+	Ordered_addItemPos (my observationSymbols, thee, ns);
 }
 
-void HMM_addState_move (HMM me, autoHMMState thee) {
-	long ns = my states->size + 1;
+void HMM_addState (HMM me, thou) {
+	thouart (HMM_State);
+	long ns = my states -> size + 1;
 	if (ns > my numberOfStates) {
 		Melder_throw (U"States list is full.");
 	}
-	my states -> addItemAtPosition_move (thee.move(), ns);
+	Ordered_addItemPos (my states, thee, ns);
 }
 
-autoTableOfReal HMM_extractTransitionProbabilities (HMM me) {
+TableOfReal HMM_extractTransitionProbabilities (HMM me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfStates + 1, my numberOfStates + 1);
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			HMMState hmms = my states->at [is];
-			TableOfReal_setRowLabel (thee.get(), is + 1, hmms -> label);
-			TableOfReal_setColumnLabel (thee.get(), is, hmms -> label);
-			for (long js = 1; js <= my numberOfStates; js ++) {
-				thy data [is + 1] [js] = my transitionProbs [is] [js];
+		for (long is = 1; is <= my numberOfStates; is++) {
+			HMM_State hmms = (HMM_State) my states -> item[is];
+			TableOfReal_setRowLabel (thee.peek(), is + 1, hmms -> label);
+			TableOfReal_setColumnLabel (thee.peek(), is, hmms -> label);
+			for (long js = 1; js <= my numberOfStates; js++) {
+				thy data[is + 1][js] = my transitionProbs[is][js];
 			}
 		}
-		TableOfReal_setRowLabel (thee.get(), 1, U"START");
-		TableOfReal_setColumnLabel (thee.get(), my numberOfStates + 1, U"END");
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			thy data [1] [is] = my transitionProbs [0] [is];
-			thy data [is + 1] [my numberOfStates + 1] = my transitionProbs [is] [my numberOfStates + 1];
+		TableOfReal_setRowLabel (thee.peek(), 1, U"START");
+		TableOfReal_setColumnLabel (thee.peek(), my numberOfStates + 1, U"END");
+		for (long is = 1; is <= my numberOfStates; is++) {
+			thy data[1][is] = my transitionProbs[0][is];
+			thy data[is + 1][my numberOfStates + 1] = my transitionProbs[is][my numberOfStates + 1];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no transition probabilities extracted.");
 	}
 }
 
-autoTableOfReal HMM_extractEmissionProbabilities (HMM me) {
+TableOfReal HMM_extractEmissionProbabilities (HMM me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfStates, my numberOfObservationSymbols);
-		for (long js = 1; js <= my numberOfObservationSymbols; js ++) {
-			HMMObservation hmms = my observationSymbols->at [js];
-			TableOfReal_setColumnLabel (thee.get(), js, hmms -> label);
-		}
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			HMMState hmms = my states->at [is];
-			TableOfReal_setRowLabel (thee.get(), is, hmms -> label);
-			for (long js = 1; js <= my numberOfObservationSymbols; js ++) {
-				thy data [is] [js] = my emissionProbs [is] [js];
+		for (long js = 1; js <= my numberOfObservationSymbols; js++) {
+			HMM_Observation hmms = (HMM_Observation) my observationSymbols -> item[js];
+			TableOfReal_setColumnLabel (thee.peek(), js, hmms -> label);
+		}
+		for (long is = 1; is <= my numberOfStates; is++) {
+			HMM_State hmms = (HMM_State) my states -> item[is];
+			TableOfReal_setRowLabel (thee.peek(), is, hmms -> label);
+			for (long js = 1; js <= my numberOfObservationSymbols; js++) {
+				thy data[is][js] = my emissionProbs[is][js];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no emission probabilities extracted.");
 	};
@@ -670,14 +691,14 @@ double HMM_getExpectedValueOfDurationInState (HMM me, long istate) {
 	if (istate < 0 || istate > my numberOfStates) {
 		return NUMundefined;
 	}
-	return 1.0 / (1.0 - my transitionProbs [istate] [istate]);
+	return 1 / (1 - my transitionProbs[istate][istate]);
 }
 
 double HMM_getProbabilityOfStayingInState (HMM me, long istate, long numberOfTimeUnits) {
 	if (istate < 0 || istate > my numberOfStates) {
 		return NUMundefined;
 	}
-	return pow (my transitionProbs [istate] [istate], numberOfTimeUnits - 1.0) * (1.0 - my transitionProbs[istate][istate]);
+	return pow (my transitionProbs[istate][istate], numberOfTimeUnits - 1) * (1 - my transitionProbs[istate][istate]);
 }
 
 double HMM_and_HMM_getCrossEntropy (HMM me, HMM thee, long observationLength, int symmetric) {
@@ -689,25 +710,25 @@ double HMM_and_HMM_getCrossEntropy (HMM me, HMM thee, long observationLength, in
 	if (ce2 == NUMundefined || ce2 == INFINITY) {
 		return ce2;
 	}
-	return (ce1 + ce2) / 2.0;
+	return (ce1 + ce2) / 2;
 }
 
-double HMM_and_HMM_and_HMMObservationSequence_getCrossEntropy (HMM me, HMM thee, HMMObservationSequence him) {
-	double ce1 = HMM_and_HMMObservationSequence_getCrossEntropy (me, him);
+double HMM_and_HMM_and_HMM_ObservationSequence_getCrossEntropy (HMM me, HMM thee, HMM_ObservationSequence him) {
+	double ce1 = HMM_and_HMM_ObservationSequence_getCrossEntropy (me, him);
 	if (ce1 == NUMundefined || ce1 == INFINITY) {
 		return ce1;
 	}
-	double ce2 = HMM_and_HMMObservationSequence_getCrossEntropy (thee, him);
+	double ce2 = HMM_and_HMM_ObservationSequence_getCrossEntropy (thee, him);
 	if (ce2 == NUMundefined || ce2 == INFINITY) {
 		return ce2;
 	}
-	return (ce1 + ce2) / 2.0;
+	return (ce1 + ce2) / 2;
 }
 
 void HMM_draw (HMM me, Graphics g, int garnish) {
 	double xwidth = sqrt (my numberOfStates);
 	double rstate = 0.3 / xwidth, r = xwidth / 3.0;
-	double xmax = 1.2 * xwidth / 2.0, xmin = -xmax, ymin = xmin, ymax = xmax;
+	double xmax = 1.2 * xwidth / 2, xmin = -xmax, ymin = xmin, ymax = xmax;
 
 	autoNUMvector<double> xs (1, my numberOfStates);
 	autoNUMvector<double> ys (1, my numberOfStates);
@@ -717,7 +738,7 @@ void HMM_draw (HMM me, Graphics g, int garnish) {
 	xs[1] = ys[1] = 0;
 	if (my numberOfStates > 1) {
 		for (long is = 1; is <= my numberOfStates; is++) {
-			double alpha = - NUMpi + NUMpi * 2.0 * (is - 1) / my numberOfStates;
+			double alpha = - NUMpi + NUMpi * 2 * (is - 1) / my numberOfStates;
 			xs[is] = r * cos (alpha); ys[is] = r * sin (alpha);
 		}
 	}
@@ -727,38 +748,38 @@ void HMM_draw (HMM me, Graphics g, int garnish) {
 	// find fontsize
 	int fontSize = Graphics_inqFontSize (g);
 	const char32 *widest_label = U"";
-	double max_width = 0.0;
-	for (long is = 1; is <= my numberOfStates; is ++) {
-		HMMState hmms = my states->at [is];
-		double w = ( hmms -> label == nullptr ? 0.0 : Graphics_textWidth (g, hmms -> label) );
+	double max_width = 0;
+	for (long is = 1; is <= my numberOfStates; is++) {
+		HMM_State hmms = (HMM_State) my states -> item[is];
+		double w = hmms -> label == NULL ? 0 : Graphics_textWidth (g, hmms -> label);
 		if (w > max_width) {
 			widest_label = hmms -> label;
 			max_width = w;
 		}
 	}
 	int new_fontSize = fontSize;
-	while (max_width > 2.0 * rstate && new_fontSize > 4) {
+	while (max_width > 2 * rstate && new_fontSize > 4) {
 		new_fontSize --;
 		Graphics_setFontSize (g, new_fontSize);
 		max_width = Graphics_textWidth (g, widest_label);
 	}
 	Graphics_setFontSize (g, new_fontSize);
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
-	for (long is = 1; is <= my numberOfStates; is ++) {
-		HMMState hmms = my states->at [is];
-		Graphics_circle (g, xs [is], ys [is], rstate);
-		Graphics_text (g, xs [is], ys [is], hmms -> label);
+	for (long is = 1; is <= my numberOfStates; is++) {
+		HMM_State hmms = (HMM_State) my states -> item[is];
+		Graphics_circle (g, xs[is], ys[is], rstate);
+		Graphics_text (g, xs[is], ys[is], hmms -> label);
 	}
 
 	// draw connections from is to js
 	// 1 -> 2 / 2-> : increase / decrease angle between 1 and 2 with pi /10
 	// use cos(a+b) and cos(a -b) rules
-	double cosb = cos (NUMpi / 10.0), sinb = sin (NUMpi / 10.0);
-	for (long is = 1; is <= my numberOfStates; is ++) {
-		double x1 = xs [is], y1 = ys [is];
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			if (my transitionProbs [is] [js] > 0.0 && is != js) {
-				double x2 = xs [js], y2 = ys [js];
+	double cosb = cos (NUMpi / 10), sinb = sin (NUMpi / 10);
+	for (long is = 1; is <= my numberOfStates; is++) {
+		double x1 = xs[is], y1 = ys[is];
+		for (long js = 1; js <= my numberOfStates; js++) {
+			if (my transitionProbs[is][js] > 0 && is != js) {
+				double x2 = xs[js], y2 = ys[js];
 				double dx = x2 - x1, dy = y2 - y1, h = sqrt (dx * dx + dy * dy), cosa = dx / h, sina = dy / h;
 				double cosabp = cosa * cosb - sina * sinb, cosabm = cosa * cosb + sina * sinb;
 				double sinabp = cosa * sinb + sina * cosb, sinabm = -cosa * sinb + sina * cosb;
@@ -779,77 +800,77 @@ void HMM_unExpandPCA (HMM me) {
 	if (my componentDimension <= 0) {
 		return;    // nothing to do
 	}
-	for (long is = 1; is <= my numberOfObservationSymbols; is ++) {
-		HMMObservation s = my observationSymbols->at [is];
-		GaussianMixture_unExpandPCA (s -> gm.get());
+	for (long is = 1; is <= my numberOfObservationSymbols; is++) {
+		HMM_Observation s = (HMM_Observation) my observationSymbols -> item[is];
+		GaussianMixture_unExpandPCA (s -> gm);
 	}
 }
 
-autoHMMObservationSequence HMM_to_HMMObservationSequence (HMM me, long startState, long numberOfItems) {
+HMM_ObservationSequence HMM_to_HMM_ObservationSequence (HMM me, long startState, long numberOfItems) {
 	try {
-		autoHMMObservationSequence thee = HMMObservationSequence_create (numberOfItems, my componentDimension);
+		autoHMM_ObservationSequence thee = HMM_ObservationSequence_create (numberOfItems, my componentDimension);
 		autoNUMvector<double> obs;
 		autoNUMvector<double> buf;
 		if (my componentDimension > 0) {
 			obs.reset (1, my componentDimension);
 			buf.reset (1, my componentDimension);
 		}
-		long istate = startState == 0 ? NUMgetIndexFromProbability (my transitionProbs[0], my numberOfStates, NUMrandomUniform (0.0, 1.0)) : startState;
+		long istate = startState == 0 ? NUMgetIndexFromProbability (my transitionProbs[0], my numberOfStates, NUMrandomUniform (0, 1)) : startState;
 		for (long i = 1; i <= numberOfItems; i++) {
 			// Emit a symbol from istate
 
-			long isymbol = NUMgetIndexFromProbability (my emissionProbs[istate], my numberOfObservationSymbols, NUMrandomUniform (0.0, 1.0));
-			HMMObservation s = my observationSymbols->at [isymbol];
+			long isymbol = NUMgetIndexFromProbability (my emissionProbs[istate], my numberOfObservationSymbols, NUMrandomUniform (0, 1));
+			HMM_Observation s = (HMM_Observation) my observationSymbols -> item[isymbol];
 
 			if (my componentDimension > 0) {
 				char32 *name;
-				GaussianMixture_generateOneVector (s -> gm.get(), obs.peek(), &name, buf.peek());
+				GaussianMixture_generateOneVector (s -> gm, obs.peek(), &name, buf.peek());
 				for (long j = 1; j <= my componentDimension; j++) {
-					Table_setNumericValue ( (Table) thee.get(), i, 1 + j, obs[j]);
+					Table_setNumericValue ( (Table) thee.peek(), i, 1 + j, obs[j]);
 				}
 			}
 
-			Table_setStringValue (thee.get(), i, 1, s -> label);
+			Table_setStringValue ( (Table) thee.peek(), i, 1, s -> label);
 
 			// get next state
 
-			istate = NUMgetIndexFromProbability (my transitionProbs [istate], my numberOfStates + 1, NUMrandomUniform (0.0, 1.0));
+			istate = NUMgetIndexFromProbability (my transitionProbs[istate], my numberOfStates + 1, NUMrandomUniform (0, 1));
 			if (istate == my numberOfStates + 1) { // final state
-				for (long j = numberOfItems; j > i; j --) {
-					HMMObservationSequence_removeObservation (thee.get(), j);
+				for (long j = numberOfItems; j > i; j--) {
+					HMM_ObservationSequence_removeObservation (thee.peek(), j);
 				}
 				break;
 			}
 		}
 		HMM_unExpandPCA (me);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		HMM_unExpandPCA (me);
-		Melder_throw (me, U":no HMMObservationSequence created.");
+		Melder_throw (me, U":no HMM_ObservationSequence created.");
 	}
 }
 
-autoHMMBaumWelch HMM_forward (HMM me, long *obs, long nt) {
+HMM_BaumWelch HMM_forward (HMM me, long *obs, long nt) {
 	try {
-		autoHMMBaumWelch thee = HMMBaumWelch_create (my numberOfStates, my numberOfObservationSymbols, nt);
-		HMM_and_HMMBaumWelch_forward (me, thee.get(), obs);
-		return thee;
+		autoHMM_BaumWelch thee = HMM_BaumWelch_create (my numberOfStates, my numberOfObservationSymbols, nt);
+		HMM_and_HMM_BaumWelch_forward (me, thee.peek(), obs);
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no HMMBaumWelch created.");
+		Melder_throw (me, U": no HMM_BaumWelch created.");
 	}
 }
 
-autoHMMViterbi HMM_to_HMMViterbi (HMM me, long *obs, long ntimes) {
+HMM_Viterbi HMM_to_HMM_Viterbi (HMM me, long *obs, long ntimes) {
 	try {
-		autoHMMViterbi thee = HMMViterbi_create (my numberOfStates, ntimes);
-		HMM_and_HMMViterbi_decode (me, thee.get(), obs);
-		return thee;
+		autoHMM_Viterbi thee = HMM_Viterbi_create (my numberOfStates, ntimes);
+		HMM_and_HMM_Viterbi_decode (me, thee.peek(), obs);
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no HMMViterbi created.");
+		Melder_throw (me, U": no HMM_Viterbi created.");
 	}
 }
 
-void HMMBaumWelch_reInit (HMMBaumWelch me) {
+void HMM_BaumWelch_reInit (HMM_BaumWelch me) {
 	my totalNumberOfSequences = 0;
 	my lnProb = 0;
 
@@ -861,34 +882,33 @@ void HMMBaumWelch_reInit (HMMBaumWelch me) {
 	*/
 	for (long is = 0; is <= my numberOfStates; is++) {
 		for (long js = 1; js <= my numberOfStates + 1; js++) {
-			my aij_num[is][js] = 0.0;
-			my aij_denom[is][js] = 0.0;
+			my aij_num[is][js] = 0;
+			my aij_denom[is][js] = 0;
 		}
 	}
 	for (long is = 1; is <= my numberOfStates; is++) {
 		for (long js = 1; js <= my numberOfSymbols; js++) {
-			my bik_num[is][js] = 0.0;
-			my bik_denom[is][js] = 0.0;
+			my bik_num[is][js] = 0;
+			my bik_denom[is][js] = 0;
 		}
 	}
 }
 
-void HMM_and_HMMObservationSequenceBag_learn (HMM me, HMMObservationSequenceBag thee, double delta_lnp, double minProb, int info) {
+void HMM_and_HMM_ObservationSequences_learn (HMM me, HMM_ObservationSequences thee, double delta_lnp, double minProb) {
 	try {
 		// act as if all observation sequences are in memory
-		long capacity = HMMObservationSequenceBag_getLongestSequence (thee);
-		autoHMMBaumWelch bw = HMMBaumWelch_create (my numberOfStates, my numberOfObservationSymbols, capacity);
+		long capacity = HMM_ObservationSequences_getLongestSequence (thee);
+		autoHMM_BaumWelch bw = HMM_BaumWelch_create (my numberOfStates, my numberOfObservationSymbols, capacity);
 		bw -> minProb = minProb;
-		if (info) {
-			MelderInfo_open (); 
-		}
+		MelderInfo_open ();
 		long iter = 0; double lnp;
 		do {
 			lnp = bw -> lnProb;
-			HMMBaumWelch_reInit (bw.get());
-			for (long ios = 1; ios <= thy size; ios ++) {
-				HMMObservationSequence hmm_os = thy at [ios];
-				autoStringsIndex si = HMM_and_HMMObservationSequence_to_StringsIndex (me, hmm_os); // TODO outside the loop or more efficiently
+			HMM_BaumWelch_reInit (bw.peek());
+			for (long ios = 1; ios <= thy size; ios++) {
+				MelderInfo_writeLine (U"Observation sequence: ", ios);
+				HMM_ObservationSequence hmm_os = (HMM_ObservationSequence) thy item[ios];
+				autoStringsIndex si = HMM_and_HMM_ObservationSequence_to_StringsIndex (me, hmm_os);
 				long *obs = si -> classIndex, nobs = si -> numberOfElements; // convenience
 
 				// Interpretation of unknowns: end of sequence
@@ -908,28 +928,25 @@ void HMM_and_HMMObservationSequenceBag_learn (HMM me, HMMObservationSequenceBag
 					iend --;
 					bw -> numberOfTimes = iend - istart + 1;
 					(bw -> totalNumberOfSequences) ++;
-					HMM_and_HMMBaumWelch_forward (me, bw.get(), obs + istart - 1); // get new alphas
-					HMM_and_HMMBaumWelch_backward (me, bw.get(), obs + istart - 1); // get new betas
-					HMMBaumWelch_getGamma (bw.get());
-					HMM_and_HMMBaumWelch_getXi (me, bw.get(), obs + istart - 1);
-					HMM_and_HMMBaumWelch_addEstimate (me, bw.get(), obs + istart - 1);
+					MelderInfo_writeLine (U"  sub observation: ", bw -> totalNumberOfSequences);
+					HMM_and_HMM_BaumWelch_forward (me, bw.peek(), obs + istart - 1); // get new alphas
+					HMM_and_HMM_BaumWelch_backward (me, bw.peek(), obs + istart - 1); // get new betas
+					HMM_BaumWelch_getGamma (bw.peek());
+					HMM_and_HMM_BaumWelch_getXi (me, bw.peek(), obs + istart - 1);
+					HMM_and_HMM_BaumWelch_addEstimate (me, bw.peek(), obs + istart - 1);
 					istart = iend + 1;
 				}
 			}
-			// we have processed all observation sequences, now it is time to estimate new probabilities.
+			// we have processed all observation sequences, now it time to estimate new probabilities.
 			iter++;
-			HMM_and_HMMBaumWelch_reestimate (me, bw.get());
-			if (info) { 
-				MelderInfo_writeLine (U"Iteration: ", iter, U" ln(prob): ", bw -> lnProb); 
-			}
-		} while (fabs ((lnp - bw -> lnProb) / bw -> lnProb) > delta_lnp);
-		if (info) {
-			MelderInfo_writeLine (U"******** Learning summary *********");
-			MelderInfo_writeLine (U"  Processed ", thy size, U" sequences,");
-			MelderInfo_writeLine (U"  consisting of ", bw -> totalNumberOfSequences, U" observation sequences.");
-			MelderInfo_writeLine (U"  Longest observation sequence had ", capacity, U" items");
-			MelderInfo_close();
-		}
+			HMM_and_HMM_BaumWelch_reestimate (me, bw.peek());
+			MelderInfo_writeLine (U"Iteration: ", iter, U" ln(prob): ", bw -> lnProb);
+		} while (fabs ( (lnp - bw -> lnProb) / bw -> lnProb) > delta_lnp);
+
+		MelderInfo_writeLine (U"******** Learning summary *********");
+		MelderInfo_writeLine (U"  Processed ", thy size, U" sequences,");
+		MelderInfo_writeLine (U"  consisting of ", bw -> totalNumberOfSequences, U" observation sequences.");
+		MelderInfo_writeLine (U"  Longest observation sequence had ", capacity, U" items");
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not learned.");
 	}
@@ -937,10 +954,10 @@ void HMM_and_HMMObservationSequenceBag_learn (HMM me, HMMObservationSequenceBag
 
 
 // xc1 < xc2
-void HMM_and_HMMStateSequence_drawTrellis (HMM me, HMMStateSequence thee, Graphics g, int connect, int garnish) {
+void HMM_and_HMM_StateSequence_drawTrellis (HMM me, HMM_StateSequence thee, Graphics g, int connect, int garnish) {
 	long numberOfTimes = thy numberOfStrings;
-	autoStringsIndex si = HMM_and_HMMStateSequence_to_StringsIndex (me, thee);
-	double xmin = 0.0, xmax = numberOfTimes + 1.0, ymin = 0.5, ymax = my numberOfStates + 0.5;
+	autoStringsIndex si = HMM_and_HMM_StateSequence_to_StringsIndex (me, thee);
+	double xmin = 0, xmax = numberOfTimes + 1, ymin = 0.5, ymax = my numberOfStates + 0.5;
 
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -954,7 +971,7 @@ void HMM_and_HMMStateSequence_drawTrellis (HMM me, HMMStateSequence thee, Graphi
 			if (it > 1) {
 				for (long is = 1; is <= my numberOfStates; is++) {
 					bool indexedConnection = si -> classIndex[it - 1] == is && si -> classIndex[it] == js;
-					Graphics_setLineWidth (g, indexedConnection ? 2.0 : 1.0);
+					Graphics_setLineWidth (g, indexedConnection ? 2 : 1);
 					Graphics_setLineType (g, indexedConnection ? Graphics_DRAWN : Graphics_DOTTED);
 					double x1 = it - 1, y1 = is;
 					if (connect || indexedConnection) {
@@ -970,25 +987,25 @@ void HMM_and_HMMStateSequence_drawTrellis (HMM me, HMMStateSequence thee, Graphi
 		}
 	}
 	Graphics_unsetInner (g);
-	Graphics_setLineWidth (g, 1.0);
+	Graphics_setLineWidth (g, 1);
 	Graphics_setLineType (g, Graphics_DRAWN);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			HMMState hmms = my states->at [js];
-			Graphics_markLeft (g, js, false, false, false, hmms -> label);
+		for (long js = 1; js <= my numberOfStates; js++) {
+			HMM_State hmms = (HMM_State) my states -> item[js];
+			Graphics_markLeft (g, js, 0, 0, 0, hmms -> label);
 		}
-		Graphics_marksBottomEvery (g, 1.0, 1.0, true, true, false);
-		Graphics_textBottom (g, true, U"Time index");
+		Graphics_marksBottomEvery (g, 1, 1, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Time index");
 	}
 }
 
 void HMM_drawBackwardProbabilitiesIllustration (Graphics g, bool garnish) {
-	double xmin = 0.0, xmax = 1.0, ymin = 0.0, ymax = 1.0;
+	double xmin = 0, xmax = 1, ymin = 0, ymax = 1;
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	double xleft  = 0.1, xright = 0.9, r = 0.03;
 	long np = 6;
-	double dy = (1.0 - 0.3) / (np - 1);
+	double dy = (1 - 0.3) / (np - 1);
 	double x0 = xleft, y0 = 0.5;
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_circle (g, x0, y0, r);
@@ -1032,8 +1049,8 @@ void HMM_drawBackwardProbabilitiesIllustration (Graphics g, bool garnish) {
 		Graphics_text (g, x0 - 1.5 * r, y0, U"%s__%i_");
 
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (g, x0, 0.0, U"%t");
-		Graphics_text (g, x, 0.0, U"%t+1");
+		Graphics_text (g, x0, 0, U"%t");
+		Graphics_text (g, x, 0, U"%t+1");
 
 		double y3 = 0.10;
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
@@ -1043,11 +1060,11 @@ void HMM_drawBackwardProbabilitiesIllustration (Graphics g, bool garnish) {
 }
 
 void HMM_drawForwardProbabilitiesIllustration (Graphics g, bool garnish) {
-	double xmin = 0.0, xmax = 1.0, ymin = 0.0, ymax = 1.0;
+	double xmin = 0, xmax = 1, ymin = 0, ymax = 1;
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
-	double xleft = 0.1, xright = 0.9, r = 0.03;
+	double xleft  = 0.1, xright = 0.9, r = 0.03;
 	long np = 6;
-	double dy = (1.0 - 0.3) / (np - 1);
+	double dy = (1 - 0.3) / (np - 1);
 	double x0 = xright, y0 = 0.5;
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_circle (g, x0, y0, r);
@@ -1060,7 +1077,7 @@ void HMM_drawForwardProbabilitiesIllustration (Graphics g, bool garnish) {
 			double cosa = xx / c, sina = yy / c;
 			Graphics_line (g, x0 - r * cosa, y0 + r * sina, x + r * cosa, y - r * sina);
 		} else if (i == 4) {
-			double ddy = 3.0 * dy / 4.0;
+			double ddy = 3*dy/4;
 			Graphics_fillCircle (g, x, y + dy - ddy, 0.5 * r);
 			Graphics_fillCircle (g, x, y + dy - 2 * ddy, 0.5 * r);
 			Graphics_fillCircle (g, x, y + dy - 3 * ddy, 0.5 * r);
@@ -1091,8 +1108,8 @@ void HMM_drawForwardProbabilitiesIllustration (Graphics g, bool garnish) {
 		Graphics_text (g, x0 + 1.5 * r, y0, U"%s__%j_");
 
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (g, x, 0.0, U"%t");
-		Graphics_text (g, x0, 0.0, U"%t+1");
+		Graphics_text (g, x, 0, U"%t");
+		Graphics_text (g, x0, 0, U"%t+1");
 
 		double y3 = 0.10;
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
@@ -1102,16 +1119,16 @@ void HMM_drawForwardProbabilitiesIllustration (Graphics g, bool garnish) {
 }
 
 void HMM_drawForwardAndBackwardProbabilitiesIllustration (Graphics g, bool garnish) {
-	double xfrac = 0.1, xs = 1.0 / (0.5 - xfrac), r = 0.03;
-	Graphics_Viewport vp = Graphics_insetViewport (g, 0.0, 0.5-xfrac, 0.0, 1.0);
+	double xfrac = 0.1, xs =  1 / (0.5 - xfrac), r = 0.03;
+	Graphics_Viewport vp = Graphics_insetViewport (g, 0, 0.5-xfrac, 0, 1);
 	HMM_drawForwardProbabilitiesIllustration (g, false);
 	Graphics_resetViewport (g, vp);
-	Graphics_insetViewport (g, 0.5 + xfrac, 1.0, 0.0, 1.0);
+	Graphics_insetViewport (g, 0.5 + xfrac, 1, 0, 1);
 	HMM_drawBackwardProbabilitiesIllustration (g, false);
 	Graphics_resetViewport (g, vp);
-	Graphics_setWindow (g, 0.0, xs, 0.0, 1.0);
+	Graphics_setWindow (g, 0, xs, 0, 1);
 	if (garnish) {
-		double rx1 = 1.0 + xs * 2.0 * xfrac + 0.1, rx2 = rx1 + 0.9 - 0.1, y1 = 0.1;
+		double rx1 = 1 + xs * 2 * xfrac + 0.1, rx2 = rx1 + 0.9 - 0.1, y1 = 0.1;
 		Graphics_line (g, 0.9 + r, 0.5, rx1 - r, 0.5);
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
 		Graphics_text (g, 0.9, 0.5 + r, U"%s__%i_");
@@ -1119,14 +1136,14 @@ void HMM_drawForwardAndBackwardProbabilitiesIllustration (Graphics g, bool garni
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_TOP);
 		Graphics_text (g, 1.0 + xfrac * xs, 0.5, U"%a__%%ij%_%b__%j_(O__%t+1_)");
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (g, 0.1, 0.0, U"%t-1");
-		Graphics_text (g, 0.9, 0.0, U"%t");
-		Graphics_text (g, rx1, 0.0, U"%t+1");
-		Graphics_text (g, rx2, 0.0, U"%t+2");
+		Graphics_text (g, 0.1, 0, U"%t-1");
+		Graphics_text (g, 0.9, 0, U"%t");
+		Graphics_text (g, rx1, 0, U"%t+1");
+		Graphics_text (g, rx2, 0, U"%t+2");
 		Graphics_setLineType (g, Graphics_DASHED);
 		double x4 = rx1 - 0.06, x3 = 0.9 + 0.06;
-		Graphics_line (g, x3, 0.7, x3, 0.0);
-		Graphics_line (g, x4, 0.7, x4, 0.0);
+		Graphics_line (g, x3, 0.7, x3, 0);
+		Graphics_line (g, x4, 0.7, x4, 0);
 		Graphics_setLineType (g, Graphics_DRAWN);
 		Graphics_arrow (g, x4, y1, x4 + 0.2, y1);
 		Graphics_arrow (g, x3, y1, x3 - 0.2, y1);
@@ -1137,7 +1154,7 @@ void HMM_drawForwardAndBackwardProbabilitiesIllustration (Graphics g, bool garni
 	}
 }
 
-void HMM_and_HMMBaumWelch_getXi (HMM me, HMMBaumWelch thee, long *obs) {
+void HMM_and_HMM_BaumWelch_getXi (HMM me, HMM_BaumWelch thee, long *obs) {
 
 	for (long it = 1; it <= thy numberOfTimes - 1; it++) {
 		double sum = 0.0;
@@ -1148,38 +1165,39 @@ void HMM_and_HMMBaumWelch_getXi (HMM me, HMMBaumWelch thee, long *obs) {
 				sum += thy xi[it][is][js];
 			}
 		}
-		for (long is = 1; is <= my numberOfStates; is++) {
+		for (long is = 1; is <= my numberOfStates; is++)
 			for (long js = 1; js <= my numberOfStates; js++) {
-				thy xi[it][is][js] /= sum;
+				thy xi[it][is][js]  /= sum;
 			}
-		}
 	}
 }
 
-void HMM_and_HMMBaumWelch_addEstimate (HMM me, HMMBaumWelch thee, long *obs) {
-	for (long is = 1; is <= my numberOfStates; is ++) {
+void HMM_and_HMM_BaumWelch_addEstimate (HMM me, HMM_BaumWelch thee, long *obs) {
+	long is; // yes, outside
+
+	for (is = 1; is <= my numberOfStates; is++) {
 		// only for valid start states with p > 0
-		if (my transitionProbs [0] [is] > 0.0) {
-			thy aij_num [0] [is] += thy gamma [is] [1];
-			thy aij_denom [0] [is] += 1.0;
+		if (my transitionProbs[0][is] > 0) {
+			thy aij_num[0][is] += thy gamma[is][1];
+			thy aij_denom[0][is] += 1;
 		}
 	}
 
-	for (long is = 1; is <= my numberOfStates; is ++) {
+	for (is = 1; is <= my numberOfStates; is++) {
 		double gammasum = 0.0;
-		for (long it = 1; it <= thy numberOfTimes - 1; it ++) {
-			gammasum += thy gamma [is] [it];
+		for (long it = 1; it <= thy numberOfTimes - 1; it++) {
+			gammasum += thy gamma[is][it];
 		}
 
-		for (long js = 1; js <= my numberOfStates; js ++) {
+		for (long js = 1; js <= my numberOfStates; js++) {
 			double xisum = 0.0;
-			for (long it = 1; it <= thy numberOfTimes - 1; it ++) {
-				xisum += thy xi [it] [is] [js];
+			for (long it = 1; it <= thy numberOfTimes - 1; it++) {
+				xisum += thy xi[it][is][js];
 			}
 			// zero probs signal invalid connections, don't reestimate
-			if (my transitionProbs [is] [js] > 0.0) {
-				thy aij_num [is] [js] += xisum;
-				thy aij_denom [is] [js] += gammasum;
+			if (my transitionProbs[is][js] > 0) {
+				thy aij_num[is][js] += xisum;
+				thy aij_denom[is][js] += gammasum;
 			}
 		}
 
@@ -1187,31 +1205,31 @@ void HMM_and_HMMBaumWelch_addEstimate (HMM me, HMMBaumWelch thee, long *obs) {
 			Only reestimate the emissionProbs for a hidden markov model.
 			A not hidden model is emulated with fixed emissionProbs.
 		*/
-		if (! my notHidden) {
-			gammasum += thy gamma [is] [thy numberOfTimes];   // now sum all, add last term
-			for (long k = 1; k <= my numberOfObservationSymbols; k ++) {
+		if (!my notHidden) {
+			gammasum += thy gamma[is][thy numberOfTimes]; // Now sum all, add last term
+			for (long k = 1; k <= my numberOfObservationSymbols; k++) {
 				double gammasum_k = 0.0;
-				for (long it = 1; it <= thy numberOfTimes; it ++) {
-					if (obs [it] == k) {
-						gammasum_k += thy gamma [is] [it];
+				for (long it = 1; it <= thy numberOfTimes; it++) {
+					if (obs[it] == k) {
+						gammasum_k += thy gamma[is][it];
 					}
 				}
 				// only reestimate probs > 0 !
-				if (my emissionProbs [is] [k] > 0.0) {
-					thy bik_num [is] [k] += gammasum_k;
-					thy bik_denom [is] [k] += gammasum;
+				if (my emissionProbs[is][k] > 0) {
+					thy bik_num[is][k] += gammasum_k;
+					thy bik_denom[is][k] += gammasum;
 				}
 			}
 		}
 		// For a left-to-right model the final state determines the transition prob to go to the END state
 		if (my leftToRight) {
-			thy aij_num [is] [my numberOfStates + 1] += thy gamma [is] [thy numberOfTimes];
-			thy aij_denom [is] [my numberOfStates + 1] += 1.0;
+			thy aij_num[is][my numberOfStates + 1] += thy gamma[is][thy numberOfTimes];
+			thy aij_denom[is][my numberOfStates + 1] += 1;
 		}
 	}
 }
 
-void HMM_and_HMMBaumWelch_reestimate (HMM me, HMMBaumWelch thee) {
+void HMM_and_HMM_BaumWelch_reestimate (HMM me, HMM_BaumWelch thee) {
 	double p;
 	/*
 		If we only have a couple of training sequences and they all happen to start with the same symbol,
@@ -1219,7 +1237,7 @@ void HMM_and_HMMBaumWelch_reestimate (HMM me, HMMBaumWelch thee) {
 
 		What to do with the P_k (see Rabiner formulas 109-110)?
 	*/
-	for (long is = 1; is <= my numberOfStates; is ++) {
+	for (long is = 1; is <= my numberOfStates; is++) {
 		/*
 			If we have not enough observation sequences it can happen that some probabilities
 			become zero. This means that for some future observation sequences the probability evaluation
@@ -1227,75 +1245,75 @@ void HMM_and_HMMBaumWelch_reestimate (HMM me, HMMBaumWelch thee) {
 			We can prevent this from happening by asumimg a minimal probability for valid transitions
 			i.e. which have initially p > 0.
 		*/
-		if (my transitionProbs [0] [is] > 0.0) {
-			p = thy aij_num [0] [is] / thy aij_denom [0] [is];
-			my transitionProbs [0] [is] = p > 0.0 ? p : thy minProb;
-		}
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			if (my transitionProbs [is] [js] > 0.0) {
-				p = thy aij_num [is] [js] / thy aij_denom [is] [js];
-				my transitionProbs [is] [js] = p > 0.0 ? p : thy minProb;
+		if (my transitionProbs[0][is] > 0) {
+			p = thy aij_num[0][is] / thy aij_denom[0][is];
+			my transitionProbs[0][is] = p > 0 ? p : thy minProb;
+		}
+		for (long js = 1; js <= my numberOfStates; js++) {
+			if (my transitionProbs[is][js] > 0) {
+				p = thy aij_num[is][js] / thy aij_denom[is][js];
+				my transitionProbs[is][js] = p > 0 ? p : thy minProb;
 			}
 		}
 		if (! my notHidden) {
-			for (long k = 1; k <= my numberOfObservationSymbols; k ++) {
-				if (my emissionProbs [is] [k] > 0.0) {
-					p = thy bik_num [is] [k] / thy bik_denom [is] [k];
-					my emissionProbs [is] [k] = p > 0.0 ? p : thy minProb;
+			for (long k = 1; k <= my numberOfObservationSymbols; k++) {
+				if (my emissionProbs[is][k] > 0) {
+					p = thy bik_num[is][k] / thy bik_denom[is][k];
+					my emissionProbs[is][k] = p > 0 ? p : thy minProb;
 				}
 			}
 		}
-		if (my leftToRight && my transitionProbs[is][my numberOfStates + 1] > 0.0) {
+		if (my leftToRight && my transitionProbs[is][my numberOfStates + 1] > 0) {
 			p = thy aij_num[is][my numberOfStates + 1] / thy aij_denom[is][my numberOfStates + 1];
-			my transitionProbs[is][my numberOfStates + 1] = p > 0.0 ? p : thy minProb;
+			my transitionProbs[is][my numberOfStates + 1] = p > 0 ? p : thy minProb;
 		}
 	}
 }
 
-void HMM_and_HMMBaumWelch_forward (HMM me, HMMBaumWelch thee, long *obs) {
+void HMM_and_HMM_BaumWelch_forward (HMM me, HMM_BaumWelch thee, long *obs) {
 	// initialise at t = 1 & scale
-	thy scale [1] = 0.0;
-	for (long js = 1; js <= my numberOfStates; js ++) {
-		thy alpha [js] [1] = my transitionProbs [0] [js] * my emissionProbs [js] [obs [1]];
-		thy scale [1] += thy alpha [js] [1];
+	thy scale[1] = 0;
+	for (long js = 1; js <= my numberOfStates; js++) {
+		thy alpha[js][1] = my transitionProbs[0][js] * my emissionProbs[js][ obs[1] ];
+		thy scale[1] += thy alpha[js][1];
 	}
-	for (long js = 1; js <= my numberOfStates; js ++) {
-		thy alpha [js] [1] /= thy scale [1];
+	for (long js = 1; js <= my numberOfStates; js++) {
+		thy alpha[js][1] /= thy scale[1];
 	}
 	// recursion
-	for (long it = 2; it <= thy numberOfTimes; it ++) {
-		thy scale [it] = 0.0;
-		for (long js = 1; js <= my numberOfStates; js ++) {
+	for (long it = 2; it <= thy numberOfTimes; it++) {
+		thy scale[it] = 0.0;
+		for (long js = 1; js <= my numberOfStates; js++) {
 			double sum = 0.0;
-			for (long is = 1; is <= my numberOfStates; is ++) {
-				sum += thy alpha [is] [it - 1] * my transitionProbs [is] [js];
+			for (long is = 1; is <= my numberOfStates; is++) {
+				sum += thy alpha[is][it - 1] * my transitionProbs[is][js];
 			}
 
-			thy alpha [js] [it] = sum * my emissionProbs [js] [obs [it]];
-			thy scale [it] += thy alpha [js] [it];
+			thy alpha[js][it] = sum * my emissionProbs[js][ obs[it] ];
+			thy scale[it] += thy alpha[js][it];
 		}
 
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			thy alpha [js] [it] /= thy scale [it];
+		for (long js = 1; js <= my numberOfStates; js++) {
+			thy alpha[js][it] /= thy scale[it];
 		}
 	}
 
-	for (long it = 1; it <= thy numberOfTimes; it ++) {
-		thy lnProb += log (thy scale [it]);
+	for (long it = 1; it <= thy numberOfTimes; it++) {
+		thy lnProb += log (thy scale[it]);
 	}
 }
 
-void HMM_and_HMMBaumWelch_backward (HMM me, HMMBaumWelch thee, long *obs) {
-	for (long is = 1; is <= my numberOfStates; is ++) {
-		thy beta [is] [thy numberOfTimes] = 1.0 / thy scale [thy numberOfTimes];
+void HMM_and_HMM_BaumWelch_backward (HMM me, HMM_BaumWelch thee, long *obs) {
+	for (long is = 1; is <= my numberOfStates; is++) {
+		thy beta[is][thy numberOfTimes] = 1.0 / thy scale[thy numberOfTimes];
 	}
-	for (long it = thy numberOfTimes - 1; it >= 1; it --) {
-		for (long is = 1; is <= my numberOfStates; is ++) {
+	for (long it = thy numberOfTimes - 1; it >= 1; it--) {
+		for (long is = 1; is <= my numberOfStates; is++) {
 			double sum = 0.0;
-			for (long js = 1; js <= my numberOfStates; js ++) {
-				sum += thy beta [js] [it + 1] * my transitionProbs [is] [js] * my emissionProbs [js] [obs [it + 1]];
+			for (long js = 1; js <= my numberOfStates; js++) {
+				sum += thy beta[js][it + 1] * my transitionProbs[is][js] * my emissionProbs[js][ obs[it + 1] ];
 			}
-			thy beta [is] [it] = sum / thy scale [it];
+			thy beta[is][it] = sum / thy scale[it];
 		}
 	}
 }
@@ -1303,7 +1321,7 @@ void HMM_and_HMMBaumWelch_backward (HMM me, HMMBaumWelch thee, long *obs) {
 /*************************** HMM decoding ***********************************/
 
 // precondition: valid symbols, i.e. 1 <= o[i] <= my numberOfSymbols for i=1..nt
-void HMM_and_HMMViterbi_decode (HMM me, HMMViterbi thee, long *obs) {
+void HMM_and_HMM_Viterbi_decode (HMM me, HMM_Viterbi thee, long *obs) {
 	long ntimes = thy numberOfTimes;
 	// initialisation
 	for (long is = 1; is <= my numberOfStates; is++) {
@@ -1339,34 +1357,35 @@ void HMM_and_HMMViterbi_decode (HMM me, HMMViterbi thee, long *obs) {
 	}
 }
 
-autoHMMStateSequence HMM_and_HMMObservationSequence_to_HMMStateSequence (HMM me, HMMObservationSequence thee) {
+HMM_StateSequence HMM_and_HMM_ObservationSequence_to_HMM_StateSequence (HMM me, HMM_ObservationSequence thee) {
 	try {
-		autoStringsIndex si = HMM_and_HMMObservationSequence_to_StringsIndex (me, thee);
+		autoStringsIndex si = HMM_and_HMM_ObservationSequence_to_StringsIndex (me, thee);
 		long *obs = si -> classIndex; // convenience
-		long numberOfUnknowns = StringsIndex_countItems (si.get(), 0);
+		long numberOfUnknowns = StringsIndex_countItems (si.peek(), 0);
 
 		if (numberOfUnknowns > 0) {
 			Melder_throw (U"Unknown observation symbol(s) (# = ", numberOfUnknowns, U").");
 		}
 
-		long numberOfTimes = thy rows.size;
-		autoHMMViterbi v = HMM_to_HMMViterbi (me, obs, numberOfTimes);
-		autoHMMStateSequence him = HMMStateSequence_create (numberOfTimes);
+
+		long numberOfTimes = thy rows -> size;
+		autoHMM_Viterbi v = HMM_to_HMM_Viterbi (me, obs, numberOfTimes);
+		autoHMM_StateSequence him = HMM_StateSequence_create (numberOfTimes);
 		// trace the path and get states
-		for (long it = 1; it <= numberOfTimes; it ++) {
-			HMMState hmms = my states->at [v -> path [it]];
+		for (long it = 1; it <= numberOfTimes; it++) {
+			HMM_State hmms = (HMM_State) my states -> item[ v -> path[it] ];
 			his strings [it] = Melder_dup (hmms -> label);
 			his numberOfStrings ++;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no HMMStateSequence created.");
+		Melder_throw (me, U": no HMM_StateSequence created.");
 	}
 }
 
-double HMM_and_HMMStateSequence_getProbability (HMM me, HMMStateSequence thee) {
-	autoStringsIndex si = HMM_and_HMMStateSequence_to_StringsIndex (me, thee);
-	long numberOfUnknowns = StringsIndex_countItems (si.get(), 0);
+double HMM_and_HMM_StateSequence_getProbability (HMM me, HMM_StateSequence thee) {
+	autoStringsIndex si = HMM_and_HMM_StateSequence_to_StringsIndex (me, thee);
+	long numberOfUnknowns = StringsIndex_countItems (si.peek(), 0);
 	long *index = si -> classIndex;
 
 	if (index == 0) {
@@ -1376,13 +1395,13 @@ double HMM_and_HMMStateSequence_getProbability (HMM me, HMMStateSequence thee) {
 		Melder_warning (U"Unknown states (# = ", numberOfUnknowns, U").");
 		return NUMundefined;
 	}
-	double p0 = my transitionProbs [0] [index [1]];
+	double p0 = my transitionProbs [0][ index[1] ];
 	if (p0 == 0) {
 		Melder_throw (U"You cannot start with this state.");
 	}
 	double lnp = log (p0);
-	for (long it = 2; it <= thy numberOfStrings; it ++) {
-		lnp += log (my transitionProbs [index [it - 1]] [index [it]]);
+	for (long it = 2; it <= thy numberOfStrings; it++) {
+		lnp += log (my transitionProbs[ index[it - 1] ] [ index[it] ]);
 	}
 	return lnp;
 }
@@ -1396,39 +1415,39 @@ double HMM_getProbabilityAtTimeBeingInState (HMM me, long itime, long istate) {
 	autoNUMvector<double> alpha_t (1, my numberOfStates);
 	autoNUMvector<double> alpha_tm1 (1, my numberOfStates);
 
-	for (long js = 1; js <= my numberOfStates; js ++) {
-		alpha_t [js] = my transitionProbs [0] [js];
-		scale [1] += alpha_t [js];
+	for (long js = 1; js <= my numberOfStates; js++) {
+		alpha_t[js] = my transitionProbs[0][js];
+		scale[1] += alpha_t[js];
 	}
-	for (long js = 1; js <= my numberOfStates; js ++) {
-		alpha_t [js] /= scale [1];
+	for (long js = 1; js <= my numberOfStates; js++) {
+		alpha_t[js] /= scale[1];
 	}
 	// recursion
-	for (long it = 2; it <= itime; it ++) {
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			alpha_tm1 [js] = alpha_t [js];
+	for (long it = 2; it <= itime; it++) {
+		for (long js = 1; js <= my numberOfStates; js++) {
+			alpha_tm1[js] = alpha_t[js];
 		}
 
-		for (long js = 1; js <= my numberOfStates; js ++) {
+		for (long js = 1; js <= my numberOfStates; js++) {
 			double sum = 0.0;
-			for (long is = 1; is <= my numberOfStates; is ++) {
-				sum += alpha_tm1 [is] * my transitionProbs [is] [js];
+			for (long is = 1; is <= my numberOfStates; is++) {
+				sum += alpha_tm1[is] * my transitionProbs[is][js];
 			}
-			alpha_t [js] = sum;
-			scale [it] += alpha_t [js];
+			alpha_t[js] = sum;
+			scale[it] += alpha_t[js];
 		}
 
-		for (long js = 1; js <= my numberOfStates; js ++) {
-			alpha_t [js] /= scale [it];
+		for (long js = 1; js <= my numberOfStates; js++) {
+			alpha_t[js] /= scale[it];
 		}
 	}
 
 	double lnp = 0.0;
-	for (long it = 1; it <= itime; it ++) {
-		lnp += log (scale [it]);
+	for (long it = 1; it <= itime; it++) {
+		lnp += log (scale[it]);
 	}
 
-	lnp = alpha_t [istate] > 0 ? lnp + log (alpha_t [istate]) : -INFINITY; // p = 0 -> ln(p)=-infinity  // ppgb FIXME infinity is een laag getal
+	lnp = alpha_t[istate] > 0 ? lnp + log (alpha_t[istate]) : -INFINITY; // p = 0 -> ln(p)=-infinity
 	return lnp;
 }
 
@@ -1488,177 +1507,177 @@ double HMM_getProbabilityOfObservations (HMM me, long *obs, long numberOfTimes)
 	return lnp;
 }
 
-double HMM_and_HMMObservationSequence_getProbability (HMM me, HMMObservationSequence thee) {
-	autoStringsIndex si = HMM_and_HMMObservationSequence_to_StringsIndex (me, thee);
+double HMM_and_HMM_ObservationSequence_getProbability (HMM me, HMM_ObservationSequence thee) {
+	autoStringsIndex si = HMM_and_HMM_ObservationSequence_to_StringsIndex (me, thee);
 	long *index = si -> classIndex;
-	long numberOfUnknowns = StringsIndex_countItems (si.get(), 0);
+	long numberOfUnknowns = StringsIndex_countItems (si.peek(), 0);
 	if (numberOfUnknowns > 0) {
 		Melder_throw (U"Unknown observations (# = ", numberOfUnknowns, U").");
 	}
-	return HMM_getProbabilityOfObservations (me, index, thy rows.size);
+	return HMM_getProbabilityOfObservations (me, index, thy rows -> size);
 }
 
-double HMM_and_HMMObservationSequence_getCrossEntropy (HMM me, HMMObservationSequence thee) {
-	double lnp = HMM_and_HMMObservationSequence_getProbability (me, thee);
+double HMM_and_HMM_ObservationSequence_getCrossEntropy (HMM me, HMM_ObservationSequence thee) {
+	double lnp = HMM_and_HMM_ObservationSequence_getProbability (me, thee);
 	return lnp == NUMundefined ? NUMundefined : (lnp == -INFINITY ? INFINITY :
-	        -lnp / (NUMln10 * HMMObservationSequence_getNumberOfObservations (thee)));
+	        -lnp / (NUMln10 * HMM_ObservationSequence_getNumberOfObservations (thee)));
 }
 
-double HMM_and_HMMObservationSequence_getPerplexity (HMM me, HMMObservationSequence thee) {
-	double ce = HMM_and_HMMObservationSequence_getCrossEntropy (me, thee);
+double HMM_and_HMM_ObservationSequence_getPerplexity (HMM me, HMM_ObservationSequence thee) {
+	double ce = HMM_and_HMM_ObservationSequence_getCrossEntropy (me, thee);
 	return ce == NUMundefined ? NUMundefined : (ce == INFINITY ? INFINITY : pow (2, ce));
 }
 
-autoHMM HMM_createFromHMMObservationSequence (HMMObservationSequence me, long numberOfStates, int leftToRight) {
+HMM HMM_createFromHMM_ObservationSequence (HMM_ObservationSequence me, long numberOfStates, int leftToRight) {
 	try {
 		autoHMM thee = Thing_new (HMM);
-		autoStrings s = HMMObservationSequence_to_Strings (me);
-		autoDistributions d = Strings_to_Distributions (s.get());
+		autoStrings s = HMM_ObservationSequence_to_Strings (me);
+		autoDistributions d = Strings_to_Distributions (s.peek());
 
 		long numberOfObservationSymbols = d -> numberOfRows;
 		thy notHidden = numberOfStates < 1;
 		numberOfStates = numberOfStates > 0 ? numberOfStates : numberOfObservationSymbols;
 
-		HMM_init (thee.get(), numberOfStates, numberOfObservationSymbols, leftToRight);
+		HMM_init (thee.peek(), numberOfStates, numberOfObservationSymbols, leftToRight);
 
 		for (long i = 1; i <= numberOfObservationSymbols; i++) {
 			const char32 *label = d -> rowLabels[i];
-			autoHMMObservation hmmo = HMMObservation_create (label, 0, 0, 0);
-			HMM_addObservation_move (thee.get(), hmmo.move());
+			autoHMM_Observation hmmo = HMM_Observation_create (label, 0, 0, 0);
+			HMM_addObservation (thee.peek(), hmmo.transfer());
 			if (thy notHidden) {
-				autoHMMState hmms = HMMState_create (label);
-				HMM_addState_move (thee.get(), hmms.move());
+				autoHMM_State hmms = HMM_State_create (label);
+				HMM_addState (thee.peek(), hmms.transfer());
 			}
 		}
 		if (! thy notHidden) {
-			HMM_setDefaultStates (thee.get());
+			HMM_setDefaultStates (thee.peek());
 		}
-		HMM_setDefaultTransitionProbs (thee.get());
-		HMM_setDefaultStartProbs (thee.get());
-		HMM_setDefaultEmissionProbs (thee.get());
-		return thee;
+		HMM_setDefaultTransitionProbs (thee.peek());
+		HMM_setDefaultStartProbs (thee.peek());
+		HMM_setDefaultEmissionProbs (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no HMM created.");
 	}
 }
 
-autoTableOfReal HMMObservationSequence_to_TableOfReal_transitions (HMMObservationSequence me, int probabilities) {
+TableOfReal HMM_ObservationSequence_to_TableOfReal_transitions (HMM_ObservationSequence me, int probabilities) {
 	try {
-		autoStrings thee = HMMObservationSequence_to_Strings (me);
-		autoTableOfReal him = Strings_to_TableOfReal_transitions (thee.get(), probabilities);
-		return him;
+		autoStrings thee = HMM_ObservationSequence_to_Strings (me);
+		autoTableOfReal him = Strings_to_TableOfReal_transitions (thee.peek(), probabilities);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no transitions created.");
 	}
 }
 
-autoStringsIndex HMM_and_HMMObservationSequence_to_StringsIndex (HMM me, HMMObservationSequence thee) {
+StringsIndex HMM_and_HMM_ObservationSequence_to_StringsIndex (HMM me, HMM_ObservationSequence thee) {
 	try {
 		autoStrings classes = Thing_new (Strings);
 		classes -> strings = NUMvector<char32 *> (1, my numberOfObservationSymbols);
-		for (long is = 1; is <= my numberOfObservationSymbols; is ++) {
-			HMMObservation hmmo = my observationSymbols->at [is];
-			classes -> strings [is] = Melder_dup (hmmo -> label);
-			classes -> numberOfStrings ++;
-		}
-		autoStrings obs = HMMObservationSequence_to_Strings (thee);
-		autoStringsIndex him = Stringses_to_StringsIndex (obs.get(), classes.get());
-		return him;
+		for (long is = 1; is <= my numberOfObservationSymbols; is++) {
+			HMM_Observation hmmo = (HMM_Observation) my observationSymbols -> item[is];
+			classes -> strings[is] = Melder_dup (hmmo -> label);
+			(classes -> numberOfStrings) ++;
+		}
+		autoStrings obs = HMM_ObservationSequence_to_Strings (thee);
+		autoStringsIndex him = Stringses_to_StringsIndex (obs.peek(), classes.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no StringsIndex created.");
 	}
 }
 
-autoStringsIndex HMM_and_HMMStateSequence_to_StringsIndex (HMM me, HMMStateSequence thee) {
+StringsIndex HMM_and_HMM_StateSequence_to_StringsIndex (HMM me, HMM_StateSequence thee) {
 	try {
 		autoStrings classes = Thing_new (Strings);
 		classes -> strings = NUMvector<char32 *> (1, my numberOfObservationSymbols);
-		for (long is = 1; is <= my numberOfStates; is ++) {
-			HMMState hmms = my states->at [is];
-			classes -> strings [is] = Melder_dup (hmms -> label);
-			classes -> numberOfStrings ++;
-		}
-		autoStrings sts = HMMStateSequence_to_Strings (thee);
-		autoStringsIndex him = Stringses_to_StringsIndex (sts.get(), classes.get());
-		return him;
+		for (long is = 1; is <= my numberOfStates; is++) {
+			HMM_State hmms = (HMM_State) my states -> item[is];
+			classes -> strings[is] = Melder_dup (hmms -> label);
+			(classes -> numberOfStrings) ++;
+		}
+		autoStrings sts = HMM_StateSequence_to_Strings (thee);
+		autoStringsIndex him = Stringses_to_StringsIndex (sts.peek(), classes.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no StringsIndex created.");
 	}
 }
 
-autoTableOfReal HMM_and_HMMObservationSequence_to_TableOfReal_transitions (HMM me, HMMObservationSequence thee, int probabilities) {
+TableOfReal HMM_and_HMM_ObservationSequence_to_TableOfReal_transitions (HMM me, HMM_ObservationSequence thee, int probabilities) {
 	try {
-		autoStringsIndex si = HMM_and_HMMObservationSequence_to_StringsIndex (me, thee);
-		autoTableOfReal him = StringsIndex_to_TableOfReal_transitions (si.get(), probabilities);
-		return him;
+		autoStringsIndex si = HMM_and_HMM_ObservationSequence_to_StringsIndex (me, thee);
+		autoTableOfReal him = StringsIndex_to_TableOfReal_transitions (si.peek(), probabilities);
+		return him.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no transition table created for HMMObservationSequence.");
+		Melder_throw (me, U": no transition table created for HMM_ObservationSequence.");
 	}
 }
 
-autoTableOfReal HMM_and_HMMStateSequence_to_TableOfReal_transitions (HMM me, HMMStateSequence thee, int probabilities) {
+TableOfReal HMM_and_HMM_StateSequence_to_TableOfReal_transitions (HMM me, HMM_StateSequence thee, int probabilities) {
 	try {
-		autoStringsIndex si = HMM_and_HMMStateSequence_to_StringsIndex (me, thee);
-		autoTableOfReal him = StringsIndex_to_TableOfReal_transitions (si.get(), probabilities);
-		return him;
+		autoStringsIndex si = HMM_and_HMM_StateSequence_to_StringsIndex (me, thee);
+		autoTableOfReal him = StringsIndex_to_TableOfReal_transitions (si.peek(), probabilities);
+		return him.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no transition table created for HMMStateSequence.");
+		Melder_throw (me, U": no transition table created for HMM_StateSequence.");
 	}
 }
 
-autoTableOfReal StringsIndex_to_TableOfReal_transitions (StringsIndex me, int probabilities) {
+TableOfReal StringsIndex_to_TableOfReal_transitions (StringsIndex me, int probabilities) {
 	try {
-		long numberOfTypes = my classes->size;
+		long numberOfTypes = my classes -> size;
 
 		autoTableOfReal thee = TableOfReal_create (numberOfTypes + 1, numberOfTypes + 1);
-		for (long i = 1; i <= numberOfTypes; i ++) {
-			SimpleString s = (SimpleString) my classes->at [i];
-			TableOfReal_setRowLabel (thee.get(), i, s -> string);
-			TableOfReal_setColumnLabel (thee.get(), i, s -> string);
-		}
-		for (long i = 2; i <= my numberOfElements; i ++) {
-			if (my classIndex [i - 1] > 0 && my classIndex [i] > 0) { // a zero is a restart!
-				thy data [my classIndex [i-1]] [my classIndex [i]] ++;
+		for (long i = 1; i <= numberOfTypes; i++) {
+			SimpleString s = (SimpleString) my classes -> item[i];
+			TableOfReal_setRowLabel (thee.peek(), i, s -> string);
+			TableOfReal_setColumnLabel (thee.peek(), i, s -> string);
+		}
+		for (long i = 2; i <= my numberOfElements; i++) {
+			if (my classIndex[i - 1] > 0 && my classIndex[i] > 0) { // a zero is a restart!
+				thy data [my classIndex[i - 1]][my classIndex[i]] ++;
 			}
 		}
-		double sum = 0.0;
-		for (long i = 1; i <= numberOfTypes; i ++) {
-			double rowSum = 0.0, colSum = 0.0;
-			for (long j = 1; j <= numberOfTypes; j ++) {
-				rowSum += thy data [i] [j];
+		double sum = 0;
+		for (long i = 1; i <= numberOfTypes; i++) {
+			double rowSum = 0, colSum = 0;
+			for (long j = 1; j <= numberOfTypes; j++) {
+				rowSum += thy data[i][j];
 			}
-			thy data [i] [numberOfTypes + 1] = rowSum;
-			for (long j = 1; j <= numberOfTypes; j ++) {
-				colSum += thy data [j] [i];
+			thy data[i][numberOfTypes + 1] = rowSum;
+			for (long j = 1; j <= numberOfTypes; j++) {
+				colSum += thy data[j][i];
 			}
 			thy data[numberOfTypes + 1][i] = colSum;
 			sum += colSum;
 		}
-		thy data [numberOfTypes + 1] [numberOfTypes + 1] = sum;
+		thy data[numberOfTypes + 1][numberOfTypes + 1] = sum;
 		if (probabilities && sum > 0) {
-			for (long i = 1; i <= numberOfTypes; i ++) {
-				if (thy data [i] [numberOfTypes + 1] > 0.0) {
+			for (long i = 1; i <= numberOfTypes; i++) {
+				if (thy data[i][numberOfTypes + 1] > 0) {
 					for (long j = 1; j <= numberOfTypes; j++) {
-						thy data [i] [j] /= thy data [i] [numberOfTypes + 1];
+						thy data[i][j] /= thy data[i][numberOfTypes + 1];
 					}
 				}
 			}
-			for (long i = 1; i <= numberOfTypes; i ++) {
-				thy data [i] [numberOfTypes + 1] /= sum;
-				thy data [numberOfTypes + 1] [i] /= sum;
+			for (long i = 1; i <= numberOfTypes; i++) {
+				thy data[i][numberOfTypes + 1] /= sum;
+				thy data[numberOfTypes + 1][i] /= sum;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no transition table created.");
 	}
 }
 
-autoTableOfReal Strings_to_TableOfReal_transitions (Strings me, int probabilities) {
+TableOfReal Strings_to_TableOfReal_transitions (Strings me, int probabilities) {
 	try {
 		autoStringsIndex him = Strings_to_StringsIndex (me);
-		autoTableOfReal thee = StringsIndex_to_TableOfReal_transitions (him.get(), probabilities);
-		return thee;
+		autoTableOfReal thee = StringsIndex_to_TableOfReal_transitions (him.peek(), probabilities);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no transition table created.");
 	}
diff --git a/dwtools/HMM.h b/dwtools/HMM.h
index 71c0844..35ddc45 100644
--- a/dwtools/HMM.h
+++ b/dwtools/HMM.h
@@ -2,7 +2,7 @@
 #define _HMM_h_
 /* HMM.h
  *
- * Copyright (C) 2010-2011, 2015 David Weenink
+ * Copyright (C) 2010-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,118 +26,82 @@
 #include "SSCP.h"
 #include "Index.h"
 
-Thing_declare (HMMStateList);
-Thing_declare (HMMObservationList);
-
 #include "HMM_def.h"
-
-/********** class HMMStateList **********/
-
-Collection_define (HMMStateList, OrderedOf, HMMState) {
+oo_CLASS_CREATE (HMM_State, Data);
+oo_CLASS_CREATE (HMM_Observation, Data);
+oo_CLASS_CREATE (HMM_Viterbi, Data);
+oo_CLASS_CREATE (HMM, Data);
+
+Thing_define (HMM_BaumWelch, Data) {
+	// new data:
+	public:
+		long capacity;
+		long numberOfTimes;
+		long totalNumberOfSequences;
+		long numberOfStates;
+		long numberOfSymbols;
+		double lnProb;
+		double minProb;
+		double **alpha;
+		double **beta;
+		double *scale;
+		double **gamma;
+		double ***xi;
+		double **aij_num, **aij_denom;
+		double **bik_num, **bik_denom;
+	// overridden methods:
+		virtual void v_destroy ();
 };
 
-/********** class HMMObservationList **********/
-
-Collection_define (HMMObservationList, OrderedOf, HMMObservation) {
+Thing_define (HMM_StateSequence, Strings) {
 };
 
-/********** class HMMBaumWelch **********/
-
-Thing_define (HMMBaumWelch, Daata) {
-	long capacity;
-	long numberOfTimes;
-	long totalNumberOfSequences;
-	long numberOfStates;
-	long numberOfSymbols;
-	double lnProb;
-	double minProb;
-	double **alpha;
-	double **beta;
-	double *scale;
-	double **gamma;
-	double ***xi;
-	double **aij_num, **aij_denom;
-	double **bik_num, **bik_denom;
-
-	void v_destroy () noexcept
-		override;
-};
-
-Thing_define (HMMStateSequence, Strings) {
-};
-
-Thing_define (HMMObservationSequence, Table) {
+Thing_define (HMM_ObservationSequence, Table) {
 };
 // First column is always a symbol, if only 1 column then symbols only
 
-Collection_define (HMMObservationSequenceBag, CollectionOf, HMMObservationSequence) {
+Thing_define (HMM_ObservationSequences, Collection) {
 };
 
-autoHMMObservationSequence HMMObservationSequence_create (long numberOfItems, long dataLength);
-
-void HMMObservationSequence_removeObservation (HMMObservationSequence me, long index);
-
-autoStrings HMMObservationSequence_to_Strings (HMMObservationSequence me);
-
-autoHMMObservationSequence Strings_to_HMMObservationSequence (Strings me);
-
-autoStringsIndex HMMObservationSequence_to_StringsIndex (HMMObservationSequence me);
-
-autoStringsIndex HMM_and_HMMObservationSequence_to_StringsIndex (HMM me, HMMObservationSequence thee);
+HMM_ObservationSequence HMM_ObservationSequence_create (long numberOfItems, long dataLength);
+void HMM_ObservationSequence_removeObservation (HMM_ObservationSequence me, long index);
+Strings HMM_ObservationSequence_to_Strings (HMM_ObservationSequence me);
+HMM_ObservationSequence Strings_to_HMM_ObservationSequence (Strings me);
+StringsIndex HMM_ObservationSequence_to_StringsIndex (HMM_ObservationSequence me);
+StringsIndex HMM_and_HMM_ObservationSequence_to_StringsIndex (HMM me, HMM_ObservationSequence thee);
+TableOfReal HMM_ObservationSequence_to_TableOfReal_transitions (HMM_ObservationSequence me, int probabilities);
+TableOfReal HMM_and_HMM_ObservationSequence_to_TableOfReal_transitions (HMM me, HMM_ObservationSequence thee, int probabilities);
 
-autoTableOfReal HMMObservationSequence_to_TableOfReal_transitions (HMMObservationSequence me, int probabilities);
+HMM_ObservationSequences HMM_ObservationSequences_create ();
+long HMM_ObservationSequence_getNumberOfObservations (HMM_ObservationSequence me);
+long HMM_ObservationSequences_getLongestSequence (HMM_ObservationSequences me);
 
-autoTableOfReal HMM_and_HMMObservationSequence_to_TableOfReal_transitions (HMM me, HMMObservationSequence thee, int probabilities);
+TableOfReal HMM_StateSequence_to_TableOfReal_transitions (HMM_StateSequence me);
+TableOfReal HMM_and_HMM_StateSequence_to_TableOfReal_transitions (HMM me, HMM_StateSequence thee, int probabilities);
+HMM_StateSequence HMM_StateSequence_create (long numberOfItems);
+Strings HMM_StateSequence_to_Strings (HMM_StateSequence me);
 
-long HMMObservationSequence_getNumberOfObservations (HMMObservationSequence me);
+void HMM_State_setLabel (HMM_State me, char32 *label);
 
-long HMMObservationSequenceBag_getLongestSequence (HMMObservationSequenceBag me);
 
-autoTableOfReal HMMStateSequence_to_TableOfReal_transitions (HMMStateSequence me);
-
-autoTableOfReal HMM_and_HMMStateSequence_to_TableOfReal_transitions (HMM me, HMMStateSequence thee, int probabilities);
-
-autoHMMStateSequence HMMStateSequence_create (long numberOfItems);
-
-autoStrings HMMStateSequence_to_Strings (HMMStateSequence me);
-
-void HMMState_setLabel (HMMState me, char32 *label);
-
-
-autoHMM HMM_create (int leftToRight, long numberOfStates, long numberOfObservationSymbols);
-
-autoHMM HMM_createSimple (int leftToRight, const char32 *states_string, const char32 *symbols_string);
-
-autoHMM HMM_createContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
+HMM HMM_create (int leftToRight, long numberOfStates, long numberOfObservationSymbols);
+HMM HMM_createSimple (int leftToRight, const char32 *states_string, const char32 *symbols_string);
+HMM HMM_createContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
 	long numberOfMixtureComponentsPerSymbol, long componentDimension, long componentStorage);
-
-autoHMM HMM_createFullContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
+HMM HMM_createFullContinuousModel (int leftToRight, long numberOfStates, long numberOfObservationSymbols,
 	long numberOfFeatureStreams, long *dimensionOfStream, long *numberOfGaussiansforStream);
-
-autoHMM HMM_createFromHMMObservationSequence (HMMObservationSequence me, long numberOfStates, int leftToRight);
-
+HMM HMM_createFromHMM_ObservationSequence (HMM_ObservationSequence me, long numberOfStates, int leftToRight);
 void HMM_draw (HMM me, Graphics g, int garnish);
-
 void HMM_drawBackwardProbabilitiesIllustration (Graphics g, bool garnish);
-
 void HMM_drawForwardProbabilitiesIllustration (Graphics g, bool garnish);
-
 void HMM_drawForwardAndBackwardProbabilitiesIllustration (Graphics g, bool garnish);
-
-void HMM_addObservation_move (HMM me, autoHMMObservation thee);
-
-void HMM_addState_move (HMM me, autoHMMState thee);
-
+void HMM_addObservation (HMM me, thou);
+void HMM_addState (HMM me, thou);
 void HMM_setDefaultStates (HMM me);
-
 void HMM_setDefaultObservations (HMM me);
-
 void HMM_setDefaultTransitionProbs (HMM me);
-
 void HMM_setDefaultStartProbs (HMM me);
-
 void HMM_setDefaultEmissionProbs (HMM me);
-
 void HMM_setDefaultMixingProbabilities (HMM me);
 
 void HMM_unExpandPCA (HMM me);
@@ -149,48 +113,34 @@ void HMM_unExpandPCA (HMM me);
 	Set the probabilities. A probability zero value indicates that this p cannot be changed during training/learning.
 */
 void HMM_setTransitionProbabilities (HMM me, long state_number, char32 *state_probs);
-
 void HMM_setEmissionProbabilities (HMM me, long state_number, char32 *emission_probs);
-
 void HMM_setStartProbabilities (HMM me, char32 *probs);
 
-
 double HMM_getProbabilityAtTimeBeingInState (HMM me, long itime, long istate);
-
 double HMM_getProbabilityAtTimeBeingInStateEmittingSymbol (HMM me, long itime, long istate, long isymbol);
-
 double HMM_getExpectedValueOfDurationInState (HMM me, long istate);
-
 double HMM_getProbabilityOfStayingInState (HMM me, long istate, long numberOfTimeUnits);
 
 double HMM_and_HMM_getCrossEntropy (HMM me, HMM thee, long observationLength, int symmetric);
+double HMM_and_HMM_and_HMM_ObservationSequence_getCrossEntropy (HMM me, HMM thee, HMM_ObservationSequence him);
 
-double HMM_and_HMM_and_HMMObservationSequence_getCrossEntropy (HMM me, HMM thee, HMMObservationSequence him);
-
-autoTableOfReal HMM_extractTransitionProbabilities (HMM me);
-
-autoTableOfReal HMM_extractEmissionProbabilities (HMM me);
-
-/* HMM & HMMObservationSequence ****/
-
-autoHMMObservationSequence HMM_to_HMMObservationSequence (HMM me, long initialState, long numberOfItems);
-
-autoHMMStateSequence HMM_and_HMMObservationSequence_to_HMMStateSequence (HMM me, HMMObservationSequence thee);
-
-double HMM_and_HMMStateSequence_getProbability (HMM me, HMMStateSequence thee);
-
-void HMM_and_HMMObservationSequenceBag_learn (HMM me, HMMObservationSequenceBag thee, double delta_lnp, double minProb, int info);
-
-void HMM_and_HMMStateSequence_drawTrellis (HMM me, HMMStateSequence thee, Graphics g, int connect, int garnish);
 
-double HMM_and_HMMObservationSequence_getProbability (HMM me, HMMObservationSequence thee);
+TableOfReal HMM_extractTransitionProbabilities (HMM me);
+TableOfReal HMM_extractEmissionProbabilities (HMM me);
 
-double HMM_and_HMMObservationSequence_getCrossEntropy (HMM me, HMMObservationSequence thee);
+/* HMM & HMM_ObservationSequence ****/
 
-double HMM_and_HMMObservationSequence_getPerplexity (HMM me, HMMObservationSequence thee);
+HMM_ObservationSequence HMM_to_HMM_ObservationSequence (HMM me, long initialState, long numberOfItems);
+HMM_StateSequence HMM_and_HMM_ObservationSequence_to_HMM_StateSequence (HMM me, HMM_ObservationSequence thee);
+double HMM_and_HMM_StateSequence_getProbability (HMM me, HMM_StateSequence thee);
+void HMM_and_HMM_ObservationSequences_learn (HMM me, HMM_ObservationSequences thee, double delta_lnp, double minProb);
+void HMM_and_HMM_StateSequence_drawTrellis (HMM me, HMM_StateSequence thee, Graphics g, int connect, int garnish);
+double HMM_and_HMM_ObservationSequence_getProbability (HMM me, HMM_ObservationSequence thee);
+double HMM_and_HMM_ObservationSequence_getCrossEntropy (HMM me, HMM_ObservationSequence thee);
+double HMM_and_HMM_ObservationSequence_getPerplexity (HMM me, HMM_ObservationSequence thee);
 
 // somewhere else
 void MelderInfo_lnp (double logp);
-autoTableOfReal Strings_to_TableOfReal_transitions (Strings me, int probabilities);
+TableOfReal Strings_to_TableOfReal_transitions (Strings me, int probabilities);
 
 #endif /* _HMM_h_ */
diff --git a/dwtools/HMM_def.h b/dwtools/HMM_def.h
index 57cf693..b0ec3a4 100644
--- a/dwtools/HMM_def.h
+++ b/dwtools/HMM_def.h
@@ -1,6 +1,6 @@
 /* HMM_def.h
  *
- * Copyright (C) 2010-2011,2015 David Weenink
+ * Copyright (C) 2010-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,28 +17,33 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20100929 Initial definition.
+ djmw 20110329 oo_STRINGW -> oo_STRING
+ */
+
 
-#define ooSTRUCT HMMState
-oo_DEFINE_CLASS (HMMState, Daata)
+#define ooSTRUCT HMM_State
+oo_DEFINE_CLASS (HMM_State, Data)
 
 	oo_STRING(label)
 
-oo_END_CLASS(HMMState)
+oo_END_CLASS(HMM_State)
 #undef ooSTRUCT
 
 
-#define ooSTRUCT HMMObservation
-oo_DEFINE_CLASS (HMMObservation, Daata)
+#define ooSTRUCT HMM_Observation
+oo_DEFINE_CLASS (HMM_Observation, Data)
 
 	oo_STRING(label)
-	oo_AUTO_OBJECT (GaussianMixture, 1, gm)
+	oo_OBJECT (GaussianMixture, 1, gm)
 
-oo_END_CLASS(HMMObservation)
+oo_END_CLASS(HMM_Observation)
 #undef ooSTRUCT
 
 
 #define ooSTRUCT HMM
-oo_DEFINE_CLASS (HMM, Daata)
+oo_DEFINE_CLASS (HMM, Data)
 
 	oo_INT (notHidden) // to model a Markov model instead of HMM
 	oo_INT (leftToRight)
@@ -49,8 +54,8 @@ oo_DEFINE_CLASS (HMM, Daata)
 	oo_INT (componentStorage)
 	oo_DOUBLE_MATRIX_FROM (transitionProbs, 0, numberOfStates, 1, numberOfStates + 1) // row 0: initial probabilities
 	oo_DOUBLE_MATRIX (emissionProbs, numberOfStates, numberOfObservationSymbols)
-	oo_AUTO_OBJECT (HMMStateList, 1, states)
-	oo_AUTO_OBJECT (HMMObservationList, 1, observationSymbols)
+	oo_OBJECT (Ordered, 1, states)
+	oo_OBJECT (Ordered, 1, observationSymbols)
 
 	#if oo_DECLARING
 		void v_info ()
@@ -61,17 +66,15 @@ oo_END_CLASS(HMM)
 #undef ooSTRUCT
 
 
-#define ooSTRUCT HMMViterbi
-oo_DEFINE_CLASS (HMMViterbi, Daata)
-
+#define ooSTRUCT HMM_Viterbi
+oo_DEFINE_CLASS (HMM_Viterbi, Data)
 	oo_LONG (numberOfTimes)
 	oo_LONG (numberOfStates)
 	oo_DOUBLE (prob)
 	oo_DOUBLE_MATRIX (viterbi, numberOfStates, numberOfTimes)
 	oo_LONG_MATRIX (bp, numberOfStates, numberOfTimes)
 	oo_LONG_VECTOR (path, numberOfTimes)
-
-oo_END_CLASS(HMMViterbi)
+oo_END_CLASS(HMM_Viterbi)
 #undef ooSTRUCT
 
 
diff --git a/dwtools/ICA.cpp b/dwtools/ICA.cpp
index 27107d2..8e092d4 100644
--- a/dwtools/ICA.cpp
+++ b/dwtools/ICA.cpp
@@ -1,6 +1,6 @@
 /* ICA.c
  *
- * Copyright (C) 2010-2012, 2015-2016 David Weenink
+ * Copyright (C) 2010-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,7 +48,6 @@ static void NUMdmatrices_multiply_VCVp (double **r, double **v, long nrv, long n
 	}
 }
 
-#if 0
 // matrix multiply R = V'*C*V, V is nrv x ncv, C is ncv x ncv, R is nrv x nrv
 static void NUMdmatrices_multiply_VpCV (double **r, double **v, long nrv, long ncv, double **c, int csym) {
 	for (long i = 1; i <= ncv; i++) {
@@ -68,7 +67,6 @@ static void NUMdmatrices_multiply_VpCV (double **r, double **v, long nrv, long n
 		}
 	}
 }
-#endif
 
 // matrix multiply V*C, V is nrv x ncv, C is ncv x ncc, R is nrv x ncc;
 static void NUMdmatrices_multiply_VC (double **r, double **v, long nrv, long ncv, double **c, long ncc) {
@@ -147,7 +145,6 @@ static double NUMdmatrix_diagonalityMeasure (double **v, long dimension) {
 	return dmsq / (dimension * (dimension - 1));
 }
 
-#if 0
 static double NUMdmatrix_diagonalityIndex (double **v, long dimension) {
 	double dindex = 0;
 	for (long irow = 1; irow <= dimension; irow++) {
@@ -176,19 +173,18 @@ static double NUMdmatrix_diagonalityIndex (double **v, long dimension) {
 	}
 	return dindex;
 }
-#endif
 
 /*
 	This routine is modeled after qdiag.m from Andreas Ziehe, Pavel Laskov, Guido Nolte, Klaus-Robert Müller,
 	A Fast Algorithm for Joint Diagonalization with Non-orthogonal Transformations and its Application to
 	Blind Source Separation, Journal of Machine Learning Research 5 (2004), 777–800.
 */
-static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me, CrossCorrelationTableList thee, long maxNumberOfIterations, double delta) {
+static void Diagonalizer_and_CrossCorrelationTables_ffdiag (Diagonalizer me, CrossCorrelationTables thee, long maxNumberOfIterations, double delta) {
 	try {
 		long iter = 0, dimension = my numberOfRows;
 		double **v = my data;
 
-		autoCrossCorrelationTableList ccts = CrossCorrelationTableList_and_Diagonalizer_diagonalize (thee, me);
+		autoCrossCorrelationTables ccts = CrossCorrelationTables_and_Diagonalizer_diagonalize (thee, me);
 		autoNUMmatrix<double> w (1, dimension, 1, dimension);
 		autoNUMmatrix<double> vnew (1, dimension, 1, dimension);
 		autoNUMmatrix<double> cc (1, dimension, 1, dimension);
@@ -198,21 +194,21 @@ static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me,
 		}
 
 		autoMelderProgress progress (U"Simultaneous diagonalization of many CrossCorrelationTables...");
-		double dm_new = CrossCorrelationTableList_getDiagonalityMeasure (ccts.get(), nullptr, 0, 0);
+		double dm_new = CrossCorrelationTables_getDiagonalityMeasure (ccts.peek(), NULL, 0, 0);
 		try {
-			double dm_old, theta = 1.0, dm_start = dm_new;
+			double dm_old, theta = 1, dm_start = dm_new;
 			do {
 				dm_old = dm_new;
 				for (long i = 1; i <= dimension; i++) {
-					for (long j = i + 1; j <= dimension; j ++) {
-						double zii = 0.0, zij = 0.0, zjj = 0.0, yij = 0.0, yji = 0.0;   // zij == zji
-						for (long k = 1; k <= ccts->size; k ++) {
-							CrossCorrelationTable ct = ccts->at [k];
-							zii += ct -> data [i] [i] * ct -> data [i] [i];
-							zij += ct -> data [i] [i] * ct -> data [j] [j];
-							zjj += ct -> data [j] [j] * ct -> data [j] [j];
-							yij += ct -> data [j] [j] * ct -> data [i] [j];
-							yji += ct -> data [i] [i] * ct -> data [i] [j];
+					for (long j = i + 1; j <= dimension; j++) {
+						double zii = 0, zij = 0, zjj = 0, yij = 0, yji = 0; // zij = zji
+						for (long k = 1; k <= ccts -> size; k++) {
+							CrossCorrelationTable ct = (CrossCorrelationTable) ccts -> item [k];
+							zii += ct -> data[i][i] * ct -> data[i][i];
+							zij += ct -> data[i][i] * ct -> data[j][j];
+							zjj += ct -> data[j][j] * ct -> data[j][j];
+							yij += ct -> data[j][j] * ct -> data[i][j];
+							yji += ct -> data[i][i] * ct -> data[i][j];
 						}
 						double denom = zjj * zii - zij * zij;
 						if (denom != 0) {
@@ -221,12 +217,12 @@ static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me,
 						}
 					}
 				}
-				double norma = 0.0;
-				for (long i = 1; i <= dimension; i ++) {
-					double normai = 0.0;
-					for (long j = 1; j <= dimension; j ++) {
+				double norma = 0;
+				for (long i = 1; i <= dimension; i++) {
+					double normai = 0;
+					for (long j = 1; j <= dimension; j++) {
 						if (i != j) {
-							normai += fabs (w[ i] [j]);
+							normai += fabs (w[i][j]);
 						}
 					}
 					if (normai > norma) {
@@ -236,16 +232,16 @@ static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me,
 				// evaluate the norm
 				if (norma > theta) {
 					double normf = 0;
-					for (long i = 1; i <= dimension; i ++)
-						for (long j = 1; j <= dimension; j ++)
+					for (long i = 1; i <= dimension; i++)
+						for (long j = 1; j <= dimension; j++)
 							if (i != j) {
-								normf += w [i] [j] * w [i] [j];
+								normf += w[i][j] * w[i][j];
 							}
 					double scalef = theta / sqrt (normf);
-					for (long i = 1; i <= dimension; i ++) {
-						for (long j = 1; j <= dimension; j ++) {
+					for (long i = 1; i <= dimension; i++) {
+						for (long j = 1; j <= dimension; j++) {
 							if (i != j) {
-								w [i] [j] *= scalef;
+								w[i][j] *= scalef;
 							}
 						}
 					}
@@ -253,12 +249,12 @@ static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me,
 				// update V
 				NUMmatrix_copyElements (v, vnew.peek(), 1, dimension, 1, dimension);
 				NUMdmatrices_multiply_VC (v, w.peek(), dimension, dimension, vnew.peek(), dimension);
-				for (long k = 1; k <= ccts->size; k ++) {
-					CrossCorrelationTable ct = ccts->at [k];
+				for (long k = 1; k <= ccts -> size; k++) {
+					CrossCorrelationTable ct = (CrossCorrelationTable) ccts -> item[k];
 					NUMmatrix_copyElements (ct -> data, cc.peek(), 1, dimension, 1, dimension);
 					NUMdmatrices_multiply_VCVp (ct -> data, w.peek(), dimension, dimension, cc.peek(), 1);
 				}
-				dm_new = CrossCorrelationTableList_getDiagonalityMeasure (ccts.get(), nullptr, 0, 0);
+				dm_new = CrossCorrelationTables_getDiagonalityMeasure (ccts.peek(), 0, 0, 0);
 				iter++;
 				Melder_progress ((double) iter / (double) maxNumberOfIterations, U"Iteration: ", iter, U", measure: ", dm_new, U"\n fractional measure: ", dm_new / dm_start);
 			} while (fabs ((dm_old - dm_new) / dm_new) > delta && iter < maxNumberOfIterations);
@@ -275,11 +271,11 @@ static void Diagonalizer_and_CrossCorrelationTableList_ffdiag (Diagonalizer me,
 	R. Vollgraf and K. Obermayer, Quadratic Optimization for Simultaneous
 	Matrix Diagonalization, IEEE Transaction on Signal Processing, 2006,
 */
-static void update_one_column (CrossCorrelationTableList me, double **d, double *wp, double *wvec, double scalef, double *work) {
-	long dimension = my at [1] -> numberOfColumns;
+static void update_one_column (CrossCorrelationTables me, double **d, double *wp, double *wvec, double scalef, double *work) {
+	long dimension = ( (CrossCorrelationTable) (my item[1])) -> numberOfColumns;
 
-	for (long ic = 2; ic <= my size; ic ++) { // exclude C0
-		SSCP cov = my at [ic];
+	for (long ic = 2; ic <= my size; ic++) { // exclude C0
+		SSCP cov = (SSCP) my item[ic];
 		double **c = cov -> data;
 		// m1 = C * wvec
 		for (long i = 1; i <= dimension; i++) {
@@ -298,14 +294,14 @@ static void update_one_column (CrossCorrelationTableList me, double **d, double
 	}
 }
 
-static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, CrossCorrelationTableList thee, double *cweights, long maxNumberOfIterations, double delta) {
+static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, CrossCorrelationTables thee, double *cweights, long maxNumberOfIterations, double delta) {
 	try {
-		CrossCorrelationTable c0 = thy at [1];
+		CrossCorrelationTable c0 = (CrossCorrelationTable) thy item[1];
 		double **w = my data;
 		long dimension = c0 -> numberOfColumns;
 
 		autoEigen eigen = Thing_new (Eigen);
-		autoCrossCorrelationTableList ccts = Data_copy (thee);
+		autoCrossCorrelationTables ccts = Data_copy (thee);
 		autoNUMmatrix<double> pinv (1, dimension, 1, dimension);
 		autoNUMmatrix<double> d (1, dimension, 1, dimension);
 		autoNUMmatrix<double> p (1, dimension, 1, dimension);
@@ -329,7 +325,7 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 		// [vb,db] = eig(C0);
 		// P = db^(-1/2)*vb';
 
-		Eigen_initFromSymmetricMatrix (eigen.get(), c0 -> data, dimension);
+		Eigen_initFromSymmetricMatrix (eigen.peek(), c0 -> data, dimension);
 		for (long i = 1; i <= dimension; i++) {
 			if (eigen -> eigenvalues[i] < 0) {
 				Melder_throw (U"Covariance matrix not positive definite, eigenvalue[", i, U"] is negative.");
@@ -342,9 +338,9 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 
 		// P*C[i]*P'
 
-		for (long ic = 1; ic <= thy size; ic ++) {
-			CrossCorrelationTable cov1 = thy at [ic];
-			CrossCorrelationTable cov2 = ccts -> at [ic];
+		for (long ic = 1; ic <= thy size; ic++) {
+			CrossCorrelationTable cov1 = (CrossCorrelationTable) thy item[ic];
+			CrossCorrelationTable cov2 = (CrossCorrelationTable) ccts -> item[ic];
 			NUMdmatrices_multiply_VCVp (cov2 -> data, p.peek(), dimension, dimension, cov1 -> data, 1);
 		}
 
@@ -356,8 +352,8 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 
 		// initialisation for order KN^3
 
-		for (long ic = 2; ic <= thy size; ic ++) {
-			CrossCorrelationTable cov = ccts -> at [ic];
+		for (long ic = 2; ic <= thy size; ic++) {
+			CrossCorrelationTable cov = (CrossCorrelationTable) ccts -> item[ic];
 			// C * W
 			NUMdmatrices_multiply_VC (m1.peek(), cov -> data, dimension, dimension, w, dimension);
 			// D += scalef * M1*M1'
@@ -379,9 +375,9 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 						wvec[i] = w[i][kol];
 					}
 
-					update_one_column (ccts.get(), d.peek(), cweights, wvec.peek(), -1, mvec.peek());
+					update_one_column (ccts.peek(), d.peek(), cweights, wvec.peek(), -1, mvec.peek());
 
-					Eigen_initFromSymmetricMatrix (eigen.get(), d.peek(), dimension);
+					Eigen_initFromSymmetricMatrix (eigen.peek(), d.peek(), dimension);
 
 					// Eigenvalues already sorted; get eigenvector of smallest !
 
@@ -389,7 +385,7 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 						wnew[i] = eigen -> eigenvectors[dimension][i];
 					}
 
-					update_one_column (ccts.get(), d.peek(), cweights, wnew.peek(), 1, mvec.peek());
+					update_one_column (ccts.peek(), d.peek(), cweights, wnew.peek(), 1, mvec.peek());
 					for (long i = 1; i <= dimension; i++) {
 						w[i][kol] = wnew[i];
 					}
@@ -422,16 +418,16 @@ static void Diagonalizer_and_CrossCorrelationTable_qdiag (Diagonalizer me, Cross
 		NUMdmatrices_multiply_VpC (w, wc.peek(), dimension, dimension, p.peek(), dimension); // W = W'*P: final result
 
 		// Calculate the "real" diagonality measure
-	//	double dm = CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure (thee, me, cweights, 1, thy size);
+	//	double dm = CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure (thee, me, cweights, 1, thy size);
 
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": no joint diagonalization (qdiag).");
 	}
 }
 
-void MixingMatrix_and_CrossCorrelationTableList_improveUnmixing (MixingMatrix me, CrossCorrelationTableList thee, long maxNumberOfIterations, double tol, int method) {
+void MixingMatrix_and_CrossCorrelationTables_improveUnmixing (MixingMatrix me, CrossCorrelationTables thee, long maxNumberOfIterations, double tol, int method) {
 	autoDiagonalizer him = MixingMatrix_to_Diagonalizer (me);
-	Diagonalizer_and_CrossCorrelationTableList_improveDiagonality (him.get(), thee, maxNumberOfIterations, tol, method);
+	Diagonalizer_and_CrossCorrelationTables_improveDiagonality (him.peek(), thee, maxNumberOfIterations, tol, method);
 	NUMpseudoInverse (his data, his numberOfRows, his numberOfColumns, my data, 0);
 }
 
@@ -468,7 +464,7 @@ static void NUMcrossCorrelate_rows (double **x, long nrows, long icol1, long ico
 	The cross-correlation between channel i and channel j is defined as
 		sum(k=1..nsamples, (z[i][k] - mean[i])(z[j][k + tau] - mean[j]))*samplingTime
 */
-autoCrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double startTime, double endTime, double lagStep) {
+CrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double startTime, double endTime, double lagStep) {
 	try {
 		if (endTime <= startTime) {
 			startTime = my xmin;
@@ -494,7 +490,7 @@ autoCrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double start
 
 		thy numberOfObservations = nsamples;
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": CrossCorrelationTable not created.");
 	}
@@ -504,7 +500,7 @@ autoCrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double start
  * Both sounds are treated as if their domain runs from 0 to duration.
  * Outside the chosen interval the sounds are assumed to be zero
  */
-autoCrossCorrelationTable Sounds_to_CrossCorrelationTable_combined (Sound me, Sound thee, double relativeStartTime, double relativeEndTime, double lagStep) {
+CrossCorrelationTable Sounds_to_CrossCorrelationTable_combined (Sound me, Sound thee, double relativeStartTime, double relativeEndTime, double lagStep) {
 	try {
 		if (my dx != thy dx) {
 			Melder_throw (U"Sampling frequencies must be equal.");
@@ -540,25 +536,25 @@ autoCrossCorrelationTable Sounds_to_CrossCorrelationTable_combined (Sound me, So
 
 		his numberOfObservations = nsamples;
 
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": CrossCorrelationTable not created.");
 	}
 }
 
-autoCovariance Sound_to_Covariance_channels (Sound me, double startTime, double endTime) {
+Covariance Sound_to_Covariance_channels (Sound me, double startTime, double endTime) {
     try {
         double lagStep = 0.0;
         autoCrossCorrelationTable thee = Sound_to_CrossCorrelationTable (me, startTime, endTime, lagStep);
         autoCovariance him = Thing_new (Covariance);
-        thy structCrossCorrelationTable :: v_copy (him.get());
-        return him;
+        thy structCrossCorrelationTable :: v_copy (him.peek());
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": no Covariance created.");
     }
 }
 
-autoCrossCorrelationTableList Sound_to_CrossCorrelationTableList (Sound me, double startTime, double endTime, double lagStep, long ncovars) {
+CrossCorrelationTables Sound_to_CrossCorrelationTables (Sound me, double startTime, double endTime, double lagStep, long ncovars) {
 	try {
 		if (lagStep < my dx) {
 			lagStep = my dx;
@@ -570,23 +566,23 @@ autoCrossCorrelationTableList Sound_to_CrossCorrelationTableList (Sound me, doub
 		if (startTime + ncovars * lagStep >= endTime) {
 			Melder_throw (U"Lag time too large.");
 		}
-		autoCrossCorrelationTableList thee = CrossCorrelationTableList_create ();
-		for (long i = 1; i <= ncovars; i ++) {
+		autoCrossCorrelationTables thee = CrossCorrelationTables_create ();
+		for (long i = 1; i <= ncovars; i++) {
 			double lag = (i - 1) * lagStep;
 			autoCrossCorrelationTable ct = Sound_to_CrossCorrelationTable (me, startTime, endTime, lag);
-			thy addItem_move (ct.move());
+			Collection_addItem (thee.peek(), ct.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no CrossCorrelationTableList created.");
+		Melder_throw (me, U": no CrossCorrelationTables created.");
 	}
 }
 
-autoSound Sound_to_Sound_BSS (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double tol, int method) {
+Sound Sound_to_Sound_BSS (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double tol, int method) {
 	try {
 		autoMixingMatrix him = Sound_to_MixingMatrix (me, startTime, endTime, ncovars, lagStep, maxNumberOfIterations, tol, method);
-		autoSound thee = Sound_and_MixingMatrix_unmix (me, him.get());
-		return thee;
+		autoSound thee = Sound_and_MixingMatrix_unmix (me, him.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not separated.");
 	}
@@ -596,14 +592,14 @@ autoSound Sound_to_Sound_BSS (Sound me, double startTime, double endTime, long n
 
 Thing_implement (Diagonalizer, TableOfReal, 0);
 
-autoDiagonalizer Diagonalizer_create (long dimension) {
+Diagonalizer Diagonalizer_create (long dimension) {
 	try {
 		autoDiagonalizer me = Thing_new (Diagonalizer);
-		TableOfReal_init (me.get(), dimension, dimension);
+		TableOfReal_init (me.peek(), dimension, dimension);
 		for (long i = 1; i <= dimension; i++) {
 			my data[i][i] = 1;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Diagonalizer not created.");
 	}
@@ -614,18 +610,18 @@ autoDiagonalizer Diagonalizer_create (long dimension) {
 
 Thing_implement (MixingMatrix, TableOfReal, 0);
 
-autoMixingMatrix MixingMatrix_create (long numberOfChannels, long numberOfComponents) {
+MixingMatrix MixingMatrix_create (long numberOfChannels, long numberOfComponents) {
 	try {
 		autoMixingMatrix me = Thing_new (MixingMatrix);
-		TableOfReal_init (me.get(), numberOfChannels, numberOfComponents);
-		MixingMatrix_initializeRandom (me.get());
-		return me;
+		TableOfReal_init (me.peek(), numberOfChannels, numberOfComponents);
+		MixingMatrix_initializeRandom (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MixingMatrix not created.");
 	}
 }
 
-autoMixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOfComponents, char32 *elements) {
+MixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOfComponents, char32 *elements) {
 	try {
 		long inum = 1, ntokens = Melder_countTokens (elements);
 		if (ntokens == 0) {
@@ -637,7 +633,7 @@ autoMixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOf
 
 		// Construct the full matrix from the elements
 		double number;
-		for (char32 *token = Melder_firstToken (elements); token != nullptr && inum <= ntokens; token = Melder_nextToken (), inum++) {
+		for (char32 *token = Melder_firstToken (elements); token != NULL && inum <= ntokens; token = Melder_nextToken (), inum++) {
 			long irow = (inum - 1) / numberOfComponents + 1;
 			long icol = (inum - 1) % numberOfComponents + 1;
 			Interpreter_numericExpression (0, token, &number);
@@ -651,7 +647,7 @@ autoMixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOf
 				my data[irow][icol] = number; // repeat the last number given!
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MixingMatrix not created.");
 	}
@@ -668,24 +664,24 @@ void MixingMatrix_initializeRandom (MixingMatrix me) {
 /***************** Diagonalizer & MixingMatrix *************************/
 
 
-autoDiagonalizer MixingMatrix_to_Diagonalizer (MixingMatrix me) {
+Diagonalizer MixingMatrix_to_Diagonalizer (MixingMatrix me) {
 	try {
 		if (my numberOfRows != my numberOfColumns) {
 			Melder_throw (U"The number of channels and the number of components must be equal.");
 		}
 		autoDiagonalizer thee = Diagonalizer_create (my numberOfRows);
 		NUMpseudoInverse (my data, my numberOfRows, my numberOfColumns, thy data, 0);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Diagonalizer created.");
 	}
 }
 
-autoMixingMatrix Diagonalizer_to_MixingMatrix (Diagonalizer me) {
+MixingMatrix Diagonalizer_to_MixingMatrix (Diagonalizer me) {
 	try {
 		autoMixingMatrix thee = MixingMatrix_create (my numberOfRows, my numberOfColumns);
 		NUMpseudoInverse (my data, my numberOfRows, my numberOfColumns, thy data, 0);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MixingMatrix created.");
 	}
@@ -693,7 +689,7 @@ autoMixingMatrix Diagonalizer_to_MixingMatrix (Diagonalizer me) {
 
 /********************* Sound & MixingMatrix ************************************/
 
-autoSound Sound_and_MixingMatrix_mix (Sound me, MixingMatrix thee) {
+Sound Sound_and_MixingMatrix_mix (Sound me, MixingMatrix thee) {
 	try {
 		if (my ny != thy numberOfColumns) {
 			Melder_throw (U"The number of components in the MixingMatrix and the number of channels in the Sound must be equal.");
@@ -708,13 +704,13 @@ autoSound Sound_and_MixingMatrix_mix (Sound me, MixingMatrix thee) {
 				his z[i][j] = mix;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not mixed.");
 	}
 }
 
-autoSound Sound_and_MixingMatrix_unmix (Sound me, MixingMatrix thee) {
+Sound Sound_and_MixingMatrix_unmix (Sound me, MixingMatrix thee) {
 	try {
 		if (my ny != thy numberOfRows) {
 			Melder_throw (U"The MixingMatrix and the Sound must have the same number of channels.");
@@ -732,31 +728,31 @@ autoSound Sound_and_MixingMatrix_unmix (Sound me, MixingMatrix thee) {
 				his z[i][j] = s;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not unmixed.");
 	}
 }
 
-autoMixingMatrix Sound_to_MixingMatrix (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double tol, int method) {
+MixingMatrix Sound_to_MixingMatrix (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double tol, int method) {
 	try {
-		autoCrossCorrelationTableList ccs = Sound_to_CrossCorrelationTableList (me, startTime, endTime, lagStep, ncovars);
+		autoCrossCorrelationTables ccs = Sound_to_CrossCorrelationTables (me, startTime, endTime, lagStep, ncovars);
 		autoMixingMatrix thee = MixingMatrix_create (my ny, my ny);
-		MixingMatrix_and_CrossCorrelationTableList_improveUnmixing (thee.get(), ccs.get(), maxNumberOfIterations, tol, method);
-		return thee;
+		MixingMatrix_and_CrossCorrelationTables_improveUnmixing (thee.peek(), ccs.peek(), maxNumberOfIterations, tol, method);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MixingMatrix created.");
 	}
 }
 
-autoMixingMatrix TableOfReal_to_MixingMatrix (TableOfReal me) {
+MixingMatrix TableOfReal_to_MixingMatrix (TableOfReal me) {
 	try {
 		if (my numberOfColumns != my numberOfRows) {
 			Melder_throw (U"Number of rows and columns must be equal.");
 		}
 		autoMixingMatrix thee = Thing_new (MixingMatrix);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to MixingMatrix.");
 	}
@@ -772,17 +768,17 @@ void structCrossCorrelationTable :: v_info () {
 	MelderInfo_writeLine (U"Diagonality measure: ", dm);
 }
 
-autoCrossCorrelationTable CrossCorrelationTable_create (long dimension) {
+CrossCorrelationTable CrossCorrelationTable_create (long dimension) {
 	try {
 		autoCrossCorrelationTable me = Thing_new (CrossCorrelationTable);
-		SSCP_init (me.get(), dimension, dimension);
-		return me;
+		SSCP_init (me.peek(), dimension, dimension);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CrossCorrelationTable not created.");
 	}
 }
 
-autoCrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, char32 *centroid, long numberOfSamples) {
+CrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, char32 *centroid, long numberOfSamples) {
 	try {
 		long dimension = Melder_countTokens (centroid);
 		long ncovars = Melder_countTokens (covars);
@@ -795,13 +791,13 @@ autoCrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, ch
 		// Construct the full matrix from the upper-diagonal elements
 
 		long inum = 1, irow = 1;
-		for (char32 *token = Melder_firstToken (covars); token != nullptr && inum <= ncovars_wanted; token = Melder_nextToken (), inum++) {
+		for (char32 *token = Melder_firstToken (covars); token != NULL && inum <= ncovars_wanted; token = Melder_nextToken (), inum++) {
 			double number;
 			long nmissing = (irow - 1) * irow / 2;
 			long inumc = inum + nmissing;
 			irow = (inumc - 1) / dimension + 1;
 			long icol = ( (inumc - 1) % dimension) + 1;
-			Interpreter_numericExpression (nullptr, token, &number);
+			Interpreter_numericExpression (NULL, token, &number);
 			my data[irow][icol] = my data[icol][irow] = number;
 			if (icol == dimension) {
 				irow++;
@@ -809,13 +805,13 @@ autoCrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, ch
 		}
 
 		inum = 1;
-		for (char32 *token = Melder_firstToken (centroid); token != nullptr && inum <= dimension; token = Melder_nextToken (), inum++) {
+		for (char32 *token = Melder_firstToken (centroid); token != NULL && inum <= dimension; token = Melder_nextToken (), inum++) {
 			double number;
-			Interpreter_numericExpression (nullptr, token, &number);
+			Interpreter_numericExpression (NULL, token, &number);
 			my centroid[inum] = number;
 		}
 		my numberOfObservations = numberOfSamples;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CrossCorrelationTable not created.");
 	}
@@ -827,20 +823,29 @@ double CrossCorrelationTable_getDiagonalityMeasure (CrossCorrelationTable me) {
 
 /************* CrossCorrelationTables *****************************/
 
-void structCrossCorrelationTableList :: v_info () {
-	our structThing :: v_info ();
-	MelderInfo_writeLine (U"Contains ", our size, U" CrossCorrelationTable objects");
-	CrossCorrelationTable thee = our at [1];
-	MelderInfo_writeLine (U"Number of rows and columns: ", thy numberOfRows, U" in each CrossCorrelationTable");
-	for (long i = 1; i <= our size; i ++) {
-		double dm = CrossCorrelationTable_getDiagonalityMeasure (our at [i]);
-		MelderInfo_writeLine (U"  Diagonality measure for item ", i, U": ", dm);
+void structCrossCorrelationTables :: v_info () {
+	structOrdered :: v_info ();
+	CrossCorrelationTable thee = (CrossCorrelationTable) item[1];
+	MelderInfo_writeLine (U"  Number of rows and columns: ", thy numberOfRows);
+	for (long i = 1; i <= size; i++) {
+		double dm = CrossCorrelationTable_getDiagonalityMeasure ( (CrossCorrelationTable) item[i]);
+		MelderInfo_writeLine (U"Diagonality measure for item ", i, U": ", dm);
 	}
 }
 
-Thing_implement (CrossCorrelationTableList, SSCPList, 0);
+Thing_implement (CrossCorrelationTables, Ordered, 0);
+
+CrossCorrelationTables CrossCorrelationTables_create () {
+	try {
+		autoCrossCorrelationTables me = Thing_new (CrossCorrelationTables);
+		Ordered_init (me.peek(), classCrossCorrelationTable, 30);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"CrossCorrelationTables not created.");
+	}
+}
 
-double CrossCorrelationTableList_getDiagonalityMeasure (CrossCorrelationTableList me, double *w, long start, long end) {
+double CrossCorrelationTables_getDiagonalityMeasure (CrossCorrelationTables me, double *w, long start, long end) {
 	if (start >= end) {
 		start = 1;
 		end = my size;
@@ -852,145 +857,146 @@ double CrossCorrelationTableList_getDiagonalityMeasure (CrossCorrelationTableLis
 		end = my size;
 	}
 	long ntables = end - start + 1;
-	long dimension = my at [1] -> numberOfColumns;
+	long dimension = ( (Covariance) (my item[1]))-> numberOfColumns;
 	double dmsq = 0;
-	for (long k = start; k <= end; k ++) {
-		CrossCorrelationTable thee = my at [k];
+	for (long k = start; k <= end; k++) {
+		CrossCorrelationTable thee = (CrossCorrelationTable) my item[k];
 		double dmksq = NUMdmatrix_diagonalityMeasure (thy data, dimension);
-		dmsq += ( w ? dmksq * w [k] : dmksq / ntables );
+		dmsq += w == NULL ? dmksq / ntables : dmksq * w[k];
 	}
 	return dmsq;
 }
 
 /************************** CrossCorrelationTables & Diagonalizer *******************************/
 
-double CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure (CrossCorrelationTableList me, Diagonalizer thee, double *w, long start, long end) {
-	autoCrossCorrelationTableList him = CrossCorrelationTableList_and_Diagonalizer_diagonalize (me, thee);
-	double dm = CrossCorrelationTableList_getDiagonalityMeasure (him.get(), w, start, end);
+double CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure (CrossCorrelationTables me, Diagonalizer thee, double *w, long start, long end) {
+	autoCrossCorrelationTables him = CrossCorrelationTables_and_Diagonalizer_diagonalize (me, thee);
+	double dm = CrossCorrelationTables_getDiagonalityMeasure (him.peek(), w, start, end);
 	return dm;
 }
 
-autoCrossCorrelationTable CrossCorrelationTable_and_Diagonalizer_diagonalize (CrossCorrelationTable me, Diagonalizer thee) {
+CrossCorrelationTable CrossCorrelationTable_and_Diagonalizer_diagonalize (CrossCorrelationTable me, Diagonalizer thee) {
 	try {
 		if (my numberOfRows != thy numberOfRows) {
 			Melder_throw (U"The CrossCorrelationTable and the Diagonalizer matrix dimensions must be equal.");
 		}
 		autoCrossCorrelationTable him = CrossCorrelationTable_create (my numberOfColumns);
 		NUMdmatrices_multiply_VCVp (his data, thy data, my numberOfColumns, my numberOfColumns, my data, 1);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CrossCorrelationTable not diagonalized.");
 	}
 }
 
-autoCrossCorrelationTableList CrossCorrelationTableList_and_Diagonalizer_diagonalize (CrossCorrelationTableList me, Diagonalizer thee) {
+CrossCorrelationTables CrossCorrelationTables_and_Diagonalizer_diagonalize (CrossCorrelationTables me, Diagonalizer thee) {
 	try {
-		autoCrossCorrelationTableList him = CrossCorrelationTableList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			CrossCorrelationTable item = my at [i];
+		autoCrossCorrelationTables him = CrossCorrelationTables_create ();
+		for (long i = 1; i <= my size; i++) {
+			CrossCorrelationTable item = (CrossCorrelationTable) my item[i];
 			autoCrossCorrelationTable ct = CrossCorrelationTable_and_Diagonalizer_diagonalize (item, thee);
-			his addItem_move (ct.move());
+			Collection_addItem (him.peek(), ct.transfer());
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"CrossCorrelationTableList not diagonalized.");
+		Melder_throw (U"CrossCorrelationTables not diagonalized.");
 	}
 }
 
-autoDiagonalizer CrossCorrelationTableList_to_Diagonalizer (CrossCorrelationTableList me, long maxNumberOfIterations, double tol, int method) {
+Diagonalizer CrossCorrelationTables_to_Diagonalizer (CrossCorrelationTables me, long maxNumberOfIterations, double tol, int method) {
 	try {
-		Melder_assert (my size > 0);
-		CrossCorrelationTable him = my at [1];
+		CrossCorrelationTable him = (CrossCorrelationTable) my item[1];
 		autoDiagonalizer thee = Diagonalizer_create (his numberOfColumns);
-		Diagonalizer_and_CrossCorrelationTableList_improveDiagonality (thee.get(), me, maxNumberOfIterations, tol, method);
-		return thee;
+		Diagonalizer_and_CrossCorrelationTables_improveDiagonality (thee.peek(), me, maxNumberOfIterations, tol, method);
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"Diagonalizer not created from CrossCorrelationTableList.");
+		Melder_throw (U"Diagonalizer not created from CrossCorrelationTables.");
 	};
 }
 
-void Diagonalizer_and_CrossCorrelationTableList_improveDiagonality (Diagonalizer me, CrossCorrelationTableList thee, long maxNumberOfIterations, double tol, int method) {
+void Diagonalizer_and_CrossCorrelationTables_improveDiagonality (Diagonalizer me, CrossCorrelationTables thee, long maxNumberOfIterations, double tol, int method) {
 	if (method == 1) {
 		autoNUMvector<double> cweights (1, thy size);
-		for (long i = 1; i <= thy size; i ++) {
+		for (long i = 1; i <= thy size; i++) {
 			cweights[i] = 1.0 / thy size;
 		}
 		Diagonalizer_and_CrossCorrelationTable_qdiag (me, thee, cweights.peek(), maxNumberOfIterations, tol);
 	} else {
-		Diagonalizer_and_CrossCorrelationTableList_ffdiag (me, thee, maxNumberOfIterations, tol);
+		Diagonalizer_and_CrossCorrelationTables_ffdiag (me, thee, maxNumberOfIterations, tol);
 	}
 }
 
-autoSound Sound_whitenChannels (Sound me, double varianceFraction) {
+Sound Sound_whitenChannels (Sound me, double varianceFraction) {
     try {
         autoCovariance cov = Sound_to_Covariance_channels (me, 0.0, 0.0);
-        autoSound thee = Sound_and_Covariance_whitenChannels (me, cov.get(), varianceFraction);
-        return thee;
+        autoSound thee = Sound_and_Covariance_whitenChannels (me, cov.peek(), varianceFraction);
+        return thee.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": not whitened.");
     }
 }
 
-autoSound Sound_and_Covariance_whitenChannels (Sound me, Covariance thee, double varianceFraction) {
+Sound Sound_and_Covariance_whitenChannels (Sound me, Covariance thee, double varianceFraction) {
     try {
         autoPCA pca = SSCP_to_PCA (thee);
-        long numberOfComponents = Eigen_getDimensionOfFraction (pca.get(), varianceFraction);
-        autoSound him = Sound_and_PCA_whitenChannels (me, pca.get(), numberOfComponents);
-        return him;
+        long numberOfComponents = Eigen_getDimensionOfFraction (pca.peek(), varianceFraction);
+        autoSound him = Sound_and_PCA_whitenChannels (me, pca.peek(), numberOfComponents);
+        return him.transfer ();
     } catch (MelderError) {
         Melder_throw (me, U": not whitened from ", thee);
     }
 }
 
+
 /*
  * Generate n different cct's that have a common diagonalizer.
  */
-autoCrossCorrelationTableList CrossCorrelationTableList_createTestSet (long dimension, long n, int firstPositiveDefinite, double sigma) {
+CrossCorrelationTables CrossCorrelationTables_createTestSet (long dimension, long n, int firstPositiveDefinite, double sigma) {
 	try {
 		// Start with a square matrix with random gaussian elements and make its singular value decomposition UDV'
 		// The V matrix will be the common diagonalizer matrix that we use.
 
 		autoNUMmatrix<double> d (1, dimension, 1, dimension);
-		for (long i = 1; i <= dimension; i ++) { // Generate the rotation matrix
-			for (long j = 1; j <= dimension; j ++) {
-				d [i] [j] = NUMrandomGauss (0.0, 1.0);
+		for (long i = 1; i <= dimension; i++) { // Generate the rotation matrix
+			for (long j = 1; j <= dimension; j++) {
+				d[i][j] = NUMrandomGauss (0, 1);
 			}
 		}
 		autoNUMmatrix<double> v (1, dimension, 1, dimension);
 		autoSVD svd = SVD_create_d (d.peek(), dimension, dimension);
-		autoCrossCorrelationTableList me = CrossCorrelationTableList_create ();
+		autoCrossCorrelationTables me = CrossCorrelationTables_create ();
 
-		for (long i = 1; i <= dimension; i ++) {
-			for (long j = 1; j <= dimension; j ++) {
-				d [i] [j] = 0.0;
+		for (long i = 1; i <= dimension; i++) {
+			for (long j = 1; j <= dimension; j++) {
+				d[i][j] = 0;
 			}
 		}
 
 		// Start with a diagonal matrix D and calculate V'DV
 
-		for (long k = 1; k <= n; k ++) {
+		for (long k = 1; k <= n; k++) {
 			autoCrossCorrelationTable ct = CrossCorrelationTable_create (dimension);
-			double low = ( k == 1 && firstPositiveDefinite ? 0.1 : -1.0 );
-			for (long i = 1; i <= dimension; i ++) {
-				d [i] [i] = NUMrandomUniform (low, 1.0);
+			double low = k == 1 && firstPositiveDefinite ? 0.1 : -1;
+			for (long i = 1; i <= dimension; i++) {
+				d[i][i] = NUMrandomUniform (low, 1);
 			}
 			for (long i = 1; i <= dimension; i++) {
-				for (long j = 1; j <= dimension; j ++) {
-					v [i] [j] = NUMrandomGauss (svd -> v [i] [j], sigma);
+				for (long j = 1; j <= dimension; j++) {
+					v[i][j] = NUMrandomGauss (svd -> v[i][j], sigma);
 				}
 			}
 			// we need V'DV, however our V has eigenvectors row-wise -> VDV'
 			NUMdmatrices_multiply_VCVp (ct -> data, v.peek(), dimension, dimension, d.peek(), 1);
-            my addItem_move (ct.move());
+            Collection_addItem (me.peek(), ct.transfer());
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"CrossCorrelationTableList test set not created.");
+		Melder_throw (U"CrossCorrelationTables test set not created.");
 	}
 }
 
-#if 0
-static void Sound_and_MixingMatrix_improveUnmixing_fica (Sound me, MixingMatrix thee, long maxNumberOfIterations, double /* tol */, int /* method */) {
+static void Sound_and_MixingMatrix_improveUnmixing_fica (Sound me, MixingMatrix thee, long maxNumberOfIterations, double tol, int method) {
+    (void) tol;
+    (void) method;
 	try {
 		long iter = 0;
 		if (my ny != thy numberOfColumns) {
@@ -998,12 +1004,10 @@ static void Sound_and_MixingMatrix_improveUnmixing_fica (Sound me, MixingMatrix
 		}
 		autoNUMmatrix<double> x (NUMmatrix_copy (my z, 1, my ny, 1, my nx), 1, 1);
 		do {
-			iter ++;
+			iter++;
 		} while (/*fabs((dm_old - dm_new) / dm_new) > tol &&*/ iter < maxNumberOfIterations);
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U" .");
 	}
 }
-#endif
-
 /* End of file ICA.cpp 987*/
diff --git a/dwtools/ICA.h b/dwtools/ICA.h
index bba3686..f0d2f91 100644
--- a/dwtools/ICA.h
+++ b/dwtools/ICA.h
@@ -2,7 +2,7 @@
 #define _ICA_h_
 /* ICA.h
  *
- * Copyright (C) 2010-2014,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2010-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,13 +38,13 @@ Thing_define (CrossCorrelationTable, SSCP) {
 		override;
 };
 
-Collection_define (CrossCorrelationTableList, OrderedOf, CrossCorrelationTable) {
+Thing_define (CrossCorrelationTables, Ordered) {
 	void v_info ()
 		override;
 };
 
 /*
-	Cell [i,j] of a CrossCorrelationTable contains the cross-correlation between signal i and signal j (for one particular lag time).
+	Cell [i,j] of a CrossCorrelationTable contains the cross-correlation between signal i and signal j.
 	For example, the CrossCorrelation of an n-channel sound is a nxn table where cell [i,j] contains the
 	cross-correlation of channel i with channel j for a particlular lag time tau.
 	In the statistical literature sometimes the cross-correlation between signals is also called "covariance".
@@ -55,75 +55,66 @@ Collection_define (CrossCorrelationTableList, OrderedOf, CrossCorrelationTable)
 	2. The elements c[i][j] in a Covariance always satisfy |c[i][j]/sqrt(c[i][i]*c[j][j])| <= 1, this is
 	  in general not the case for cross-correlations.
 */
-
-autoCrossCorrelationTable CrossCorrelationTable_create (long dimension);
-
-autoCrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, char32 *centroid, long numberOfSamples);
+CrossCorrelationTable CrossCorrelationTable_create (long dimension);
+CrossCorrelationTable CrossCorrelationTable_createSimple (char32 *covars, char32 *centroid, long numberOfSamples);
 
 /* (sum(i,j=1..dimension, i!=j; C[i][j]^2))/(dimension*(dimension-1)) */
 double CrossCorrelationTable_getDiagonalityMeasure (CrossCorrelationTable me);
+CrossCorrelationTable CrossCorrelationTable_and_Diagonalizer_diagonalize (CrossCorrelationTable me, Diagonalizer thee);
 
-autoCrossCorrelationTable CrossCorrelationTable_and_Diagonalizer_diagonalize (CrossCorrelationTable me, Diagonalizer thee);
-
-double CrossCorrelationTableList_getDiagonalityMeasure (CrossCorrelationTableList me, double *w, long start, long end);
-
-double CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure (CrossCorrelationTableList me, Diagonalizer thee, double *w, long start, long end);
-
-autoCrossCorrelationTableList CrossCorrelationTableList_createTestSet (long dimension, long n, int firstPositiveDefinite, double sigma);
+CrossCorrelationTables CrossCorrelationTables_create ();
+double CrossCorrelationTables_getDiagonalityMeasure (CrossCorrelationTables me, double *w, long start, long end);
+double CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure (CrossCorrelationTables me, Diagonalizer thee, double *w, long start, long end);
+CrossCorrelationTables CrossCorrelationTables_createTestSet (long dimension, long n, int firstPositiveDefinite, double sigma);
 
-autoMixingMatrix MixingMatrix_create (long numberOfChannels, long numberOfComponents);
-
-autoMixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOfComponents, char32 *elements);
+MixingMatrix MixingMatrix_create (long numberOfChannels, long numberOfComponents);
+MixingMatrix MixingMatrix_createSimple (long numberOfChannels, long numberOfComponents, char32 *elements);
 void MixingMatrix_initializeRandom (MixingMatrix me);
 
-autoDiagonalizer Diagonalizer_create (long dimension);
-
-autoSound Sound_and_MixingMatrix_mix (Sound me, MixingMatrix thee);
+Diagonalizer Diagonalizer_create (long dimension);
 
-autoSound Sound_and_MixingMatrix_unmix (Sound me, MixingMatrix thee);
+Sound Sound_and_MixingMatrix_mix (Sound me, MixingMatrix thee);
+Sound Sound_and_MixingMatrix_unmix (Sound me, MixingMatrix thee);
 
-autoMixingMatrix Sound_to_MixingMatrix (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double delta_w, int method);
+MixingMatrix Sound_to_MixingMatrix (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double delta_w, int method);
 
-autoSound Sound_to_Sound_BSS (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double delta_w, int method);
+Sound Sound_to_Sound_BSS (Sound me, double startTime, double endTime, long ncovars, double lagStep, long maxNumberOfIterations, double delta_w, int method);
 
-autoSound Sound_whitenChannels (Sound me, double varianceFraction);
-autoSound Sound_and_Covariance_whitenChannels (Sound me, Covariance thee, double varianceFraction);
+Sound Sound_whitenChannels (Sound me, double varianceFraction);
+Sound Sound_and_Covariance_whitenChannels (Sound me, Covariance thee, double varianceFraction);
 
-void MixingMatrix_and_CrossCorrelationTableList_improveUnmixing (MixingMatrix me, CrossCorrelationTableList thee, long maxNumberOfIterations, double tol, int method);
+void MixingMatrix_and_CrossCorrelationTables_improveUnmixing (MixingMatrix me, CrossCorrelationTables thee, long maxNumberOfIterations, double tol, int method);
 
 /*
 	Determine the matrix that diagonalizes a series of CrossCorrelationTables as well as possible.
 */
-autoDiagonalizer CrossCorrelationTableList_to_Diagonalizer (CrossCorrelationTableList me, long maxNumberOfIterations, double tol, int method);
-
-void Diagonalizer_and_CrossCorrelationTableList_improveDiagonality (Diagonalizer me, CrossCorrelationTableList thee, long maxNumberOfIterations, double tol, int method);
+Diagonalizer CrossCorrelationTables_to_Diagonalizer (CrossCorrelationTables me, long maxNumberOfIterations, double tol, int method);
+void Diagonalizer_and_CrossCorrelationTables_improveDiagonality (Diagonalizer me, CrossCorrelationTables thee, long maxNumberOfIterations, double tol, int method);
 
 /*
 	Determine V*C[k]*V' for k=1..n, where V is the diagonalizer matrix and C[k} the k-th CrossCorrelationTable.
 */
-autoCrossCorrelationTableList CrossCorrelationTableList_and_Diagonalizer_diagonalize (CrossCorrelationTableList me, Diagonalizer thee);
+CrossCorrelationTables CrossCorrelationTables_and_Diagonalizer_diagonalize (CrossCorrelationTables me, Diagonalizer thee);
 
 
-autoDiagonalizer MixingMatrix_to_Diagonalizer (MixingMatrix me);
-
-autoMixingMatrix Diagonalizer_to_MixingMatrix (Diagonalizer me);
+Diagonalizer MixingMatrix_to_Diagonalizer (MixingMatrix me);
+MixingMatrix Diagonalizer_to_MixingMatrix (Diagonalizer me);
 
 /*
 	For multi-channel "sounds" like EEG signals.
 	The cross-correlation between channel i and channel j is defined as
 		sum(k=1..nsamples; (z[i][k] - mean[i])(z[j][k + lag] - mean[j])) / (nsamples - 1).
 */
-autoCrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double startTime, double endTime, double lagStep);
-
-autoCrossCorrelationTable Sounds_to_CrossCorrelationTable_combined (Sound me, Sound thee, double relativeStartTime, double relativeEndTime, double lagStep);
+CrossCorrelationTable Sound_to_CrossCorrelationTable (Sound me, double startTime, double endTime, double lagStep);
+CrossCorrelationTable Sounds_to_CrossCorrelationTable_combined (Sound me, Sound thee, double relativeStartTime, double relativeEndTime, double lagStep);
 
 // The covariance is the cross-correlation with lag 0.
-autoCovariance Sound_to_Covariance_channels (Sound me, double startTime, double endTime);
+Covariance Sound_to_Covariance_channels (Sound me, double startTime, double endTime);
 /*
 	Determine a CrossCorrelationTable for lags (k-1)*lagStep, where k = 1...n.
 */
-autoCrossCorrelationTableList Sound_to_CrossCorrelationTableList (Sound me, double startTime, double endTime, double lagStep, long n);
+CrossCorrelationTables Sound_to_CrossCorrelationTables (Sound me, double startTime, double endTime, double lagStep, long n);
 
-autoMixingMatrix TableOfReal_to_MixingMatrix (TableOfReal me);
+MixingMatrix TableOfReal_to_MixingMatrix (TableOfReal me);
 
 #endif /*_ICA_h_ */
diff --git a/dwtools/Intensity_extensions.cpp b/dwtools/Intensity_extensions.cpp
index b085d66..e6c4fce 100644
--- a/dwtools/Intensity_extensions.cpp
+++ b/dwtools/Intensity_extensions.cpp
@@ -1,6 +1,6 @@
 /* Intensity_extensions.cpp
  *
- * Copyright (C) 2007-2011 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2007-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,15 +38,16 @@ static void IntervalTier_addBoundaryUnsorted (IntervalTier me, long iinterval, d
 	}
 
 	// Modify end time of left label
-	TextInterval ti = my intervals.at [iinterval];
+	TextInterval ti = (TextInterval) my intervals -> item[iinterval];
 	ti -> xmax = time;
 	TextInterval_setText (ti, leftLabel);
 
 	autoTextInterval ti_new = TextInterval_create (time, my xmax, U"");
-	my intervals. addItem_unsorted_move (ti_new.move());
+	Sorted_addItem_unsorted (my intervals, ti_new.transfer());
 }
 
-autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceThreshold_dB, double minSilenceDuration, double minSoundingDuration, const char32 *silenceLabel, const char32 *soundingLabel) {
+TextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceThreshold_dB,
+		double minSilenceDuration, double minSoundingDuration, const char32 *silenceLabel, const char32 *soundingLabel) {
 	try {
 		double duration = my xmax - my xmin, time;
 
@@ -55,10 +56,10 @@ autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceT
 		}
 
 		autoTextGrid thee = TextGrid_create (my xmin, my xmax, U"silences", U"");
-		IntervalTier it = (IntervalTier) thy tiers->at [1];
-		TextInterval_setText (it -> intervals.at [1], soundingLabel);
+		IntervalTier it = (IntervalTier) thy tiers -> item[1];
+		TextInterval_setText ( (TextInterval) it -> intervals -> item[1], soundingLabel);
 		if (minSilenceDuration > duration) {
-			return thee;
+			return thee.transfer();
 		}
 
 		double intensity_max_db, intensity_min_db, xOfMaximum, xOfMinimum;
@@ -66,13 +67,13 @@ autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceT
 		Vector_getMinimumAndX (me, 0, 0, 1, NUM_PEAK_INTERPOLATE_PARABOLIC, &intensity_min_db, &xOfMinimum);
 		double intensity_dbRange = intensity_max_db - intensity_min_db;
 
-		if (intensity_dbRange < 10) {
-			Melder_warning (U"The loudest and softest part in your sound only differ by ", intensity_dbRange, U" dB.");
-		}
+		if (intensity_dbRange < 10) Melder_warning (U"The loudest and softest part in your sound only differ by ",
+			        intensity_dbRange, U" dB.");
+
 		double intensityThreshold = intensity_max_db - fabs (silenceThreshold_dB);
 
 		if (minSilenceDuration > duration || intensityThreshold < intensity_min_db) {
-			return thee;
+			return thee.transfer();
 		}
 
 		int inSilenceInterval = my z[1][1] < intensityThreshold;
@@ -104,8 +105,8 @@ autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceT
 		// (re)label last interval */
 
 		label = inSilenceInterval ? silenceLabel : soundingLabel;
-		TextInterval_setText (it -> intervals.at [iinterval], label);
-		it -> intervals. sort ();
+		TextInterval_setText ( (TextInterval) it -> intervals -> item[iinterval], label);
+		Sorted_sort (it -> intervals);
 
 		// First remove short non-silence intervals in-between silence intervals and
 		// then remove the remaining short silence intervals.
@@ -117,13 +118,13 @@ autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceT
 		IntervalTier_cutIntervals_minimumDuration (it, silenceLabel, minSilenceDuration);
 		IntervalTier_cutIntervalsOnLabelMatch (it, soundingLabel);
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": TextGrid not created.");
 	}
 }
 
-autoIntensity IntensityTier_to_Intensity (IntensityTier me, double dt) {
+Intensity IntensityTier_to_Intensity (IntensityTier me, double dt) {
 	try {
 		long nt = (long) floor ((my xmax - my xmin) / dt);
 		double t1 = 0.5 * dt;
@@ -132,18 +133,18 @@ autoIntensity IntensityTier_to_Intensity (IntensityTier me, double dt) {
 			double time = t1 + (i - 1) * dt;
 			thy z[1][i] = RealTier_getValueAtTime (me, time);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" no Intensity created.");
 	}
 }
 
-autoTextGrid IntensityTier_to_TextGrid_detectSilences (IntensityTier me, double dt, double silenceThreshold_dB, double minSilenceDuration,
+TextGrid IntensityTier_to_TextGrid_detectSilences (IntensityTier me, double dt, double silenceThreshold_dB, double minSilenceDuration,
 	double minSoundingDuration, const char32 *silenceLabel, const char32 *soundingLabel) {
 	try {
 		autoIntensity intensity = IntensityTier_to_Intensity (me, dt);
-		autoTextGrid thee = Intensity_to_TextGrid_detectSilences (intensity.get(), silenceThreshold_dB, minSilenceDuration, minSoundingDuration, silenceLabel, soundingLabel);
-		return thee;
+		autoTextGrid thee = Intensity_to_TextGrid_detectSilences (intensity.peek(), silenceThreshold_dB, minSilenceDuration, minSoundingDuration, silenceLabel, soundingLabel);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" no TextGrid created.");
 	}
diff --git a/dwtools/Intensity_extensions.h b/dwtools/Intensity_extensions.h
index 873a4e7..3a2d99a 100644
--- a/dwtools/Intensity_extensions.h
+++ b/dwtools/Intensity_extensions.h
@@ -2,7 +2,7 @@
 #define _Intensity_extensions_h_
 /* Intensity_extensions.h
  *
- * Copyright (C) 2006-2011, 2015 David Weenink
+ * Copyright (C) 2006-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@
 #include "IntensityTier.h"
 #include "TextGrid.h"
 
-autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceThreshold_dB, double minSilenceDuration,
+TextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceThreshold_dB, double minSilenceDuration,
 	double minSoundingDuration, const char32 *silenceLabel, const char32 *soundingLabel);
 /*
 	Marks "silence" intervals in a sound as intervals in a TextGrid.
@@ -42,9 +42,9 @@ autoTextGrid Intensity_to_TextGrid_detectSilences (Intensity me, double silenceT
 	as silences in the IntervalTier.
 */
 
-autoIntensity IntensityTier_to_Intensity (IntensityTier me, double dt);
+Intensity IntensityTier_to_Intensity (IntensityTier me, double dt);
 
-autoTextGrid IntensityTier_to_TextGrid_detectSilences (IntensityTier me, double dt, double silenceThreshold_dB, double minSilenceDuration,
+TextGrid IntensityTier_to_TextGrid_detectSilences (IntensityTier me, double dt, double silenceThreshold_dB, double minSilenceDuration,
 	double minSoundingDuration, const char32 *silenceLabel, const char32 *soundingLabel);
 
 #endif /* _Intensity_extensions_h_ */
diff --git a/dwtools/KlattGrid.cpp b/dwtools/KlattGrid.cpp
index 6be0387..264945a 100644
--- a/dwtools/KlattGrid.cpp
+++ b/dwtools/KlattGrid.cpp
@@ -1,6 +1,6 @@
 /* KlattGrid.cpp
  *
- * Copyright (C) 2008-2014 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2008-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -84,6 +84,18 @@
  * 
  */
 
+// Prototypes
+
+PointProcess PitchTier_to_PointProcess_flutter (PitchTier pitch, RealTier flutter, double maximumPeriod);
+
+void _Sound_FormantGrid_filterWithOneFormant_inline (Sound me, thou, long iformant, int antiformant);
+
+Sound Sound_VocalTractGrid_CouplingGrid_filter_parallel (Sound me, VocalTractGrid thee, CouplingGrid coupling);
+
+Sound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me, PhonationTier thee, double samplingFrequency);
+
+Sound KlattGrid_to_Sound_aspiration (KlattGrid me, double samplingFrequency);
+
 #undef MIN
 #undef MAX
 #define MIN(x,y) ((x) < (y) ? (x) : (y))
@@ -102,24 +114,25 @@
 }*/
 
 static void rel_to_abs (double *w, double *ws, long n, double d) {
-	double sum = 0.0;
-	for (long i = 1; i <= n; i ++) { // relative
-		sum += w [i];
+	double sum = 0;
+	for (long i = 1; i <= n; i++) { // relative
+		sum += w[i];
 	}
-	if (sum != 0.0) {
+	if (sum != 0) {
 		double dw = d / sum;
-		sum = 0.0;
-		for (long i = 1; i <= n; i ++) { // to absolute
-			w [i] *= dw;
-			sum += w [i];
-			ws [i] = sum;
+		sum = 0;
+		for (long i = 1; i <= n; i++) { // to absolute
+			w[i] *= dw;
+			sum += w[i];
+			ws[i] = sum;
 		}
 	}
 }
 
-static bool RealTier_valuesInRange (RealTier me, double min, double max) {
-	for (long i = 1; i <= my points.size; i ++) {
-		RealPoint p = my points.at [i];
+static bool RealTier_valuesInRange (I, double min, double max) {
+	iam (RealTier);
+	for (long i = 1; i <= my points -> size; i++) {
+		RealPoint p = (RealPoint) my points -> item[i];
 		if (NUMdefined (min) && p -> value < min) {
 			return false;
 		}
@@ -133,14 +146,14 @@ static bool RealTier_valuesInRange (RealTier me, double min, double max) {
 static double PointProcess_getPeriodAtIndex (PointProcess me, long it, double maximumPeriod) {
 	double period = NUMundefined;
 	if (it >= 2) {
-		period = my t [it] - my t [it - 1];
+		period = my t[it] - my t[it - 1];
 		if (period > maximumPeriod) {
 			period = NUMundefined;
 		}
 	}
 	if (period == NUMundefined) {
 		if (it < my nt) {
-			period = my t [it + 1] - my t [it];
+			period = my t[it + 1] - my t[it];
 			if (period > maximumPeriod) {
 				period = NUMundefined;
 			}
@@ -150,39 +163,37 @@ static double PointProcess_getPeriodAtIndex (PointProcess me, long it, double ma
 	return period;
 }
 
-#define UPDATE_TIER \
-	RealTier_addPoint (thee.get(), mytime, myvalue); \
-	lasttime = mytime; \
-	myindex ++; \
-	if (myindex <= numberOfValues) { \
-		mypoint = my points.at [myindex]; \
-		mytime = mypoint -> number; \
-		myvalue = mypoint -> value;\
-	} else { \
-		mytime = my xmax; \
-	}
+#define UPDATE_TIER RealTier_addPoint (thee.peek(), mytime, myvalue); \
+	lasttime=mytime; myindex++; \
+	if (myindex <= numberOfValues)\
+	{\
+	mypoint = (RealPoint) my points -> item [myindex];\
+	mytime = mypoint -> number; myvalue = mypoint -> value;\
+	}\
+	else mytime = my xmax;\
 
-static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, PhonationTier glottis, double openglottis_fadeFraction) {
+static RealTier RealTier_updateWithDelta (RealTier me, RealTier delta, PhonationTier glottis, double openglottis_fadeFraction) {
 	try {
 		long myindex = 1;
-		RealPoint mypoint = my points.at [myindex];
-		long numberOfValues = my points.size;
+		RealPoint mypoint = (RealPoint) my points -> item [myindex];
+		long numberOfValues = my points -> size;
 		double mytime = mypoint -> number;
 		double myvalue = mypoint -> value;
 		double lasttime = my xmin - 0.001; // sometime before xmin
 		autoRealTier thee = RealTier_create (my xmin, my xmax);
 
-		if (openglottis_fadeFraction <= 0.0) {
+
+		if (openglottis_fadeFraction <= 0) {
 			openglottis_fadeFraction = 0.0001;
 		}
 		if (openglottis_fadeFraction >= 0.5) {
 			openglottis_fadeFraction = 0.4999;
 		}
 
-		for (long ipoint = 1; ipoint <= glottis -> points.size; ipoint++) {
-			PhonationPoint point = glottis -> points.at [ipoint];
-			double t4 = point -> number; // glottis closing
-			double openDuration = point -> te;
+		for (long ipoint = 1; ipoint <= glottis -> points -> size; ipoint++) {
+			PhonationPoint point = (PhonationPoint) glottis -> points -> item [ipoint];
+			double t4 = point -> time; // glottis closing
+			double openDuration = point -> te ;
 			double t1 = t4 - openDuration;
 			double t2 = t1 + openglottis_fadeFraction * openDuration;
 			double t3 = t4 - openglottis_fadeFraction * openDuration;
@@ -195,7 +206,7 @@ static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, Phona
 			if (t2 > t1) {
 				// Set new value at t1
 				double myvalue1 = RealTier_getValueAtTime (me, t1);
-				RealTier_addPoint (thee.get(), t1, myvalue1);
+				RealTier_addPoint (thee.peek(), t1, myvalue1);
 				// Add my points between t1 and t2
 				while (mytime > lasttime && mytime < t2) {
 					double dvalue = RealTier_getValueAtTime (delta, mytime);
@@ -212,7 +223,7 @@ static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, Phona
 			if (NUMdefined (dvalue)) {
 				myvalue2 += dvalue;
 			}
-			RealTier_addPoint (thee.get(), t2, myvalue2);
+			RealTier_addPoint (thee.peek(), t2, myvalue2);
 
 			// Add points between t2 and t3
 
@@ -231,7 +242,7 @@ static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, Phona
 			if (NUMdefined (dvalue)) {
 				myvalue3 += dvalue;
 			}
-			RealTier_addPoint (thee.get(), t3, myvalue3);
+			RealTier_addPoint (thee.peek(), t3, myvalue3);
 
 			if (t4 > t3) {
 				// Add my points between t3 and t4
@@ -246,10 +257,10 @@ static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, Phona
 
 				// Set new value at t4
 				double myvalue4 = RealTier_getValueAtTime (me, t4);
-				RealTier_addPoint (thee.get(), t4, myvalue4);
+				RealTier_addPoint (thee.peek(), t4, myvalue4);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not updated with delta.");
 	}
@@ -257,18 +268,18 @@ static autoRealTier RealTier_updateWithDelta (RealTier me, RealTier delta, Phona
 
 static bool FormantGrid_isFormantDefined (FormantGrid me, long iformant) {
 	// formant and bandwidth are always in sync
-	RealTier ftier = my formants.at [iformant];
-	RealTier btier = my bandwidths.at [iformant];
-	return ftier -> points.size > 0 and btier -> points.size > 0;
+	RealTier ftier = (RealTier) my formants -> item[iformant];
+	RealTier btier = (RealTier) my bandwidths -> item[iformant];
+	return ftier -> points -> size != 0 and btier -> points -> size != 0;
 }
 
-static bool FormantGrid_Intensities_isFormantDefined (FormantGrid me, OrderedOf<structIntensityTier>* thee, long iformant) {
+static bool FormantGrid_Intensities_isFormantDefined (FormantGrid me, Ordered thee, long iformant) {
 	bool exists = false;
-	if (iformant <= my formants.size && iformant <= my bandwidths.size && iformant <= thee->size) {
-		RealTier ftier = my formants.at [iformant];
-		RealTier btier = my bandwidths.at [iformant];
-		IntensityTier atier = thy at [iformant];
-		exists = ( ftier -> points.size > 0 && btier -> points.size > 0 && atier -> points.size > 0 );
+	if (iformant <= my formants -> size && iformant <= my bandwidths -> size && iformant <= thy size) {
+		RealTier ftier = (RealTier) my formants -> item[iformant];
+		RealTier btier = (RealTier) my bandwidths -> item[iformant];
+		RealTier atier = (RealTier) thy item[iformant];
+		exists = ftier -> points -> size != 0 and btier -> points -> size != 0 and atier -> points -> size != 0;
 	}
 	return exists;
 }
@@ -286,54 +297,54 @@ static void check_formants (long numberOfFormants, long *ifb, long *ife) {
 	}
 }
 
-static autoSound Sound_createEmptyMono (double xmin, double xmax, double samplingFrequency) {
+static Sound Sound_createEmptyMono (double xmin, double xmax, double samplingFrequency) {
 	long nt = (long) ceil ( (xmax - xmin) * samplingFrequency);
 	double dt = 1.0 / samplingFrequency;
-	double tmid = (xmin + xmax) / 2.0;
+	double tmid = (xmin + xmax) / 2;
 	double t1 = tmid - 0.5 * (nt - 1) * dt;
 
 	return Sound_create (1, xmin, xmax, nt, dt, t1);
 }
 
 static void _Sounds_add_inline (Sound me, Sound thee) {
-	for (long i = 1; i <= my nx; i ++) {
-		my z [1] [i] += thy z [1] [i];
+	for (long i = 1; i <= my nx; i++) {
+		my z[1][i] += thy z[1][i];
 	}
 }
 
-static autoSound _Sound_diff (Sound me, int scale) {
+static Sound _Sound_diff (Sound me, int scale) {
 	try {
 		autoSound thee = Data_copy (me);
 
 		// extremum
-		double amax1 = -1.0e34, amax2 = amax1, val, pval = 0.0;
+		double amax1 = -1.0e34, amax2 = amax1, val, pval = 0;
 		if (scale) {
-			for (long i = 1; i <= thy nx; i ++) {
-				val = fabs (thy z [1] [i]);
+			for (long i = 1; i <= thy nx; i++) {
+				val = fabs (thy z[1][i]);
 				if (val > amax1) {
 					amax1 = val;
 				}
 			}
 		}
 		// x[n]-x[n-1]
-		for (long i = 1; i <= thy nx; i ++) {
-			val = thy z [1] [i];
-			thy z [1] [i] -=  pval;
+		for (long i = 1; i <= thy nx; i++) {
+			val =  thy z[1][i];
+			thy z[1][i] -=  pval;
 			pval = val;
 		}
 		if (scale) {
-			for (long i = 1; i <= thy nx; i ++) {
-				val = fabs (thy z [1] [i]);
+			for (long i = 1; i <= thy nx; i++) {
+				val = fabs (thy z[1][i]);
 				if (val > amax2) {
 					amax2 = val;
 				}
 			}
 			// scale
-			for (long i = 1; i <= thy nx; i ++) {
-				thy z [1] [i] *= amax1 / amax2;
+			for (long i = 1; i <= thy nx; i++) {
+				thy z[1][i] *= amax1 / amax2;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not differenced.");
 	}
@@ -356,7 +367,7 @@ typedef struct structconnections {
 } *connections;
 
 static void connections_free (connections me) {
-	if (! me) {
+	if (me == NULL) {
 		return;
 	}
 	NUMvector_free (my x, 1);
@@ -391,31 +402,31 @@ static void NUMcircle_radial_intersection_sq (double x, double y, double r, doub
 	}
 }
 
-static void summer_draw (Graphics g, double x, double y, double r, bool alternating) {
+static void summer_draw (Graphics g, double x, double y, double r, int alternating) {
 	Graphics_setLineWidth (g, 2);
 	Graphics_circle (g, x, y, r);
-	double dy = 3.0 * r / 4.0;
+	double dy = 3 * r / 4;
 	// + symbol
 	if (alternating) {
-		y += r / 4.0;
+		y += r / 4;
 	}
-	Graphics_line (g, x, y + r / 2.0, x, y - r / 2.0);
-	Graphics_line (g, x - r / 2.0, y, x + r / 2.0, y);
+	Graphics_line (g, x, y + r / 2, x, y - r / 2);
+	Graphics_line (g, x - r / 2, y, x + r / 2, y);
 	if (alternating) {
-		Graphics_line (g, x - r / 2.0, y - dy , x + r / 2.0, y - dy);
+		Graphics_line (g, x - r / 2, y - dy , x + r / 2, y - dy);
 	}
 }
 
-static void _summer_drawConnections (Graphics g, double x, double y, double r, connections thee, bool arrow, bool alternating, double horizontalFraction) {
+static void _summer_drawConnections (Graphics g, double x, double y, double r, connections thee, int arrow, int alternating, double horizontalFraction) {
 	summer_draw (g, x, y, r, alternating);
 
-	for (long i = 1; i <= thy numberOfConnections; i ++) {
-		double xto, yto, xp = thy x [i], yp = thy y [i];
+	for (long i = 1; i <= thy numberOfConnections; i++) {
+		double xto, yto, xp = thy x[i], yp = thy y[i];
 		if (horizontalFraction > 0) {
 			double dx = x - xp;
 			if (dx > 0) {
 				xp += horizontalFraction * dx;
-				Graphics_line (g, thy x [i], yp, xp, yp);
+				Graphics_line (g, thy x[i], yp, xp, yp);
 			}
 		}
 		NUMcircle_radial_intersection_sq (x, y, r, xp, yp, &xto, &yto);
@@ -430,44 +441,42 @@ static void _summer_drawConnections (Graphics g, double x, double y, double r, c
 	}
 }
 
-static void summer_drawConnections (Graphics g, double x, double y, double r, connections thee, bool arrow, double horizontalFraction) {
-	_summer_drawConnections (g, x, y, r, thee, arrow, false, horizontalFraction);
+static void summer_drawConnections (Graphics g, double x, double y, double r, connections thee, int arrow, double horizontalFraction) {
+	_summer_drawConnections (g, x, y, r, thee, arrow, 0, horizontalFraction);
 }
 
-static void alternatingSummer_drawConnections (Graphics g, double x, double y, double r, connections thee, bool arrow, double horizontalFraction) {
-	_summer_drawConnections (g, x, y, r, thee, arrow, true, horizontalFraction);
+static void alternatingSummer_drawConnections (Graphics g, double x, double y, double r, connections thee, int arrow, double horizontalFraction) {
+	_summer_drawConnections (g, x, y, r, thee, arrow, 1, horizontalFraction);
 }
 
 static void draw_oneSection (Graphics g, double xmin, double xmax, double ymin, double ymax,
-                             const char32 *line1, const char32 *line2, const char32 *line3)
-{
+                             const char32 *line1, const char32 *line2, const char32 *line3) {
+	long numberOfTextLines = 0, iline = 0;
 	Graphics_rectangle (g, xmin, xmax, ymin, ymax);
-	long numberOfTextLines = 0;
-	if (line1) {
-		numberOfTextLines ++;
-	}
-	if (line2) {
-		numberOfTextLines ++;
-	}
-	if (line3) {
-		numberOfTextLines ++;
-	}
-	double y = ymax, dy = (ymax - ymin) / (numberOfTextLines + 1), ddy = dy / 10.0;
-	double x = (xmax + xmin) / 2.0;
-	long iline = 0;
-	if (line1) {
-		iline ++;
-		y -= dy - ( numberOfTextLines == 2 ? ddy : 0.0 ); // extra spacing for two lines
+	if (line1 != 0) {
+		numberOfTextLines++;
+	}
+	if (line2 != 0) {
+		numberOfTextLines++;
+	}
+	if (line3 != 0) {
+		numberOfTextLines++;
+	}
+	double y = ymax, dy = (ymax - ymin) / (numberOfTextLines + 1), ddy = dy / 10;
+	double x = (xmax + xmin) / 2;
+	if (line1 != 0) {
+		iline++;
+		y -= dy - (numberOfTextLines == 2 ? ddy : 0); // extra spacing for two lines
 		Graphics_text (g, x, y, line1);
 	}
-	if (line2) {
-		iline ++;
-		y -= dy - ( numberOfTextLines == 2 ? ( iline == 1 ? ddy : -iline * ddy ) : 0.0 );
+	if (line2 != 0) {
+		iline++;
+		y -= dy - (numberOfTextLines == 2 ? (iline == 1 ? ddy : -iline * ddy) : 0);
 		Graphics_text (g, x, y, line2);
 	}
-	if (line3) {
-		iline ++;
-		y -= dy - ( numberOfTextLines == 2 ? -iline * ddy : 0.0 );
+	if (line3 != 0) {
+		iline++;
+		y -= dy - (numberOfTextLines == 2 ? -iline * ddy : 0);
 		Graphics_text (g, x, y, line3);
 	}
 }
@@ -477,160 +486,47 @@ static void draw_oneSection (Graphics g, double xmin, double xmax, double ymin,
 // Normal dB's
 #define DB_to_A(x) (pow (10.0, x / 20.0))
 
-/************************ Sound & FormantGrid *********************************************/
-
-static void _Sound_FormantGrid_filterWithOneFormant_inline (Sound me, FormantGrid thee, long iformant, int antiformant) {
-	if (iformant < 1 || iformant > thy formants.size) {
-		Melder_warning (U"Formant ", iformant, U" does not exist.");
-		return;
-	}
-
-	RealTier ftier = thy formants.at [iformant];
-	RealTier btier = thy bandwidths.at [iformant];
-
-	if (ftier -> points.size == 0 && btier -> points.size == 0) {
-		return;
-	} else if (ftier -> points.size == 0 || btier -> points.size == 0) {
-		Melder_throw (U"Empty tier");
-	}
-
-	double nyquist = 0.5 / my dx;
-	autoFilter r;
-	if (antiformant != 0) {
-		r = AntiResonator_create (my dx);
-	} else {
-		r = Resonator_create (my dx, Resonator_NORMALISATION_H0);
-	}
-
-	for (long is = 1; is <= my nx; is ++) {
-		double t = my x1 + (is - 1) * my dx;
-		double f = RealTier_getValueAtTime (ftier, t);
-		double b = RealTier_getValueAtTime (btier, t);
-		if (f <= nyquist && NUMdefined (b)) {
-			Filter_setFB (r.get(), f, b);
-		}
-		my z [1] [is] = Filter_getOutput (r.get(), my z[1][is]);
-	}
-}
-
-void Sound_FormantGrid_filterWithOneAntiFormant_inline (Sound me, FormantGrid thee, long iformant) {
-	_Sound_FormantGrid_filterWithOneFormant_inline (me, thee, iformant, 1);
-}
-
-void Sound_FormantGrid_filterWithOneFormant_inline (Sound me, FormantGrid thee, long iformant) {
-	_Sound_FormantGrid_filterWithOneFormant_inline (me, thee, iformant, 0);
-}
-
-void Sound_FormantGrid_Intensities_filterWithOneFormant_inline (Sound me, FormantGrid thee, OrderedOf<structIntensityTier>* amplitudes, long iformant) {
-	try {
-		if (iformant < 1 || iformant > thy formants.size) {
-			Melder_throw (U"Formant ", iformant, U" not defined. \nThis formant will not be used.");
-		}
-		double nyquist = 0.5 / my dx;
-
-		RealTier ftier = thy formants.at [iformant];
-		RealTier btier = thy bandwidths.at [iformant];
-		IntensityTier atier = amplitudes->at [iformant];
-
-		if (ftier -> points.size == 0 || btier -> points.size == 0 || atier -> points.size == 0) {
-			return;    // nothing to do
-		}
-
-		autoResonator r = Resonator_create (my dx, Resonator_NORMALISATION_HMAX);
-
-		for (long is = 1; is <= my nx; is ++) {
-			double t = my x1 + (is - 1) * my dx;
-			double f = RealTier_getValueAtTime (ftier, t);
-			double b = RealTier_getValueAtTime (btier, t);
-			double a;
-			if (f <= nyquist && NUMdefined (b)) {
-				Filter_setFB (r.get(), f, b);
-				a = RealTier_getValueAtTime (atier, t);
-				if (NUMdefined (a)) {
-					r -> a *= DB_to_A (a);
-				}
-			}
-			my z [1] [is] = Filter_getOutput (r.get(), my z[1][is]);
-		}
-	} catch (MelderError) {
-		Melder_throw (me, U": not filtered with one formant filter.");
-	}
-}
-
-autoSound Sound_FormantGrid_Intensities_filter (Sound me, FormantGrid thee, OrderedOf<structIntensityTier>* amplitudes, long iformantb, long iformante, int alternatingSign) {
-	try {
-		if (iformantb > iformante) {
-			iformantb = 1;
-			iformante = thy formants.size;
-		}
-		if (iformantb < 1 || iformantb > thy formants.size ||
-		        iformante < 1 || iformante > thy formants.size) {
-			Melder_throw (U"No such formant number.");
-		}
-
-		autoSound him = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
-
-		for (long iformant = iformantb; iformant <= iformante; iformant ++) {
-			if (FormantGrid_Intensities_isFormantDefined (thee, amplitudes, iformant)) {
-				autoSound tmp = Data_copy (me);
-				Sound_FormantGrid_Intensities_filterWithOneFormant_inline (tmp.get(), thee, amplitudes, iformant);
-				for (long is = 1; is <= my nx; is ++) {
-					his z [1] [is] += ( alternatingSign >= 0 ? tmp -> z [1] [is] : - tmp -> z [1] [is] );
-				}
-				if (alternatingSign != 0) {
-					alternatingSign = - alternatingSign;
-				}
-			}
-		}
-		return him;
-	} catch (MelderError) {
-		Melder_throw (me, U": not filtered.");
-	}
-}
-
 /********************* PhonationTier ************************/
 
-Thing_implement (PhonationPoint, AnyPoint, 0);
+Thing_implement (PhonationPoint, Data, 0);
 
-autoPhonationPoint PhonationPoint_create (double time, double period, double openPhase, double collisionPhase, double te,
+PhonationPoint PhonationPoint_create (double time, double period, double openPhase, double collisionPhase, double te,
                                       double power1, double power2, double pulseScale) {
 	try {
 		autoPhonationPoint me = Thing_new (PhonationPoint);
-		my number = time;
-		my period = period;
+		my time = time; my period = period;
 		my openPhase = openPhase;
-		my collisionPhase = collisionPhase;
-		my te = te;
-		my power1 = power1;
-		my power2 = power2;
+		my collisionPhase = collisionPhase;	my te = te;
+		my power1 = power1; my power2 = power2;
 		my pulseScale = pulseScale;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PhonationPoint not created.");
 	}
 }
 
-Thing_implement (PhonationTier, AnyTier, 0);
+Thing_implement (PhonationTier, Function, 0);
 
-autoPhonationTier PhonationTier_create (double tmin, double tmax) {
+PhonationTier PhonationTier_create (double tmin, double tmax) {
 	try {
 		autoPhonationTier me = Thing_new (PhonationTier);
-		Function_init (me.get(), tmin, tmax);
-		return me;
+		Function_init (me.peek(), tmin, tmax);
+		my points = SortedSetOfDouble_create ();
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PhonationTier not created.");
 	}
 }
 
-autoPointProcess PhonationTier_to_PointProcess_closures (PhonationTier me) {
+PointProcess PhonationTier_to_PointProcess_closures (PhonationTier me) {
 	try {
-		long nt = my points.size;
+		long nt = my points -> size;
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, nt);
-		for (long ip = 1; ip <= nt; ip ++) {
-			PhonationPoint fp = my points.at [ip];
-			PointProcess_addPoint (thee.get(), fp -> number);
+		for (long ip = 1; ip <= nt; ip++) {
+			PhonationPoint fp = (PhonationPoint) my points -> item[ip];
+			PointProcess_addPoint (thee.peek(), fp -> time);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PointProcess with closure times created.");
 	}
@@ -638,7 +534,7 @@ autoPointProcess PhonationTier_to_PointProcess_closures (PhonationTier me) {
 
 /********************** PhonationGridPlayOptions **********************/
 
-Thing_implement (PhonationGridPlayOptions, Daata, 0);
+Thing_implement (PhonationGridPlayOptions, Data, 0);
 
 static void PhonationGridPlayOptions_setDefaults (PhonationGridPlayOptions me) {
 	my flowDerivative = my voicing = 1;
@@ -649,10 +545,10 @@ static void PhonationGridPlayOptions_setDefaults (PhonationGridPlayOptions me) {
 	my maximumPeriod = 0;
 }
 
-autoPhonationGridPlayOptions PhonationGridPlayOptions_create () {
+PhonationGridPlayOptions PhonationGridPlayOptions_create () {
 	try {
 		autoPhonationGridPlayOptions me = Thing_new (PhonationGridPlayOptions);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PhonationGridPlayOptions not created.");
 	}
@@ -664,44 +560,44 @@ autoPhonationGridPlayOptions PhonationGridPlayOptions_create () {
 Thing_implement (PhonationGrid, Function, 0);
 
 void structPhonationGrid :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	const char32 *in1 = U"  ", *in2 = U"    ";
 	MelderInfo_writeLine (in1, U"Time domain:");
 	MelderInfo_writeLine (in2, U"Start time:     ", xmin, U" seconds");
 	MelderInfo_writeLine (in2, U"End time:       ", xmax, U" seconds");
 	MelderInfo_writeLine (in2, U"Total duration: ", xmax - xmin, U" seconds");
 	MelderInfo_writeLine (in1, U"\nNumber of points in the PHONATION tiers:");
-	MelderInfo_writeLine (in2, U"pitch:               ", pitch -> points.size);
-	MelderInfo_writeLine (in2, U"voicingAmplitude:    ", voicingAmplitude -> points.size);
-	MelderInfo_writeLine (in2, U"openPhase:           ", openPhase -> points.size);
-	MelderInfo_writeLine (in2, U"collisionPhase:      ", collisionPhase -> points.size);
-	MelderInfo_writeLine (in2, U"power1:              ", power1 -> points.size);
-	MelderInfo_writeLine (in2, U"power2:              ", power2 -> points.size);
-	MelderInfo_writeLine (in2, U"flutter:             ", flutter -> points.size);
-	MelderInfo_writeLine (in2, U"doublePulsing:       ", doublePulsing -> points.size);
-	MelderInfo_writeLine (in2, U"spectralTilt:        ", spectralTilt -> points.size);
-	MelderInfo_writeLine (in2, U"aspirationAmplitude: ", aspirationAmplitude -> points.size);
-	MelderInfo_writeLine (in2, U"breathinessAmplitude:", breathinessAmplitude -> points.size);
+	MelderInfo_writeLine (in2, U"pitch:               ", pitch -> points -> size);
+	MelderInfo_writeLine (in2, U"voicingAmplitude:    ", voicingAmplitude -> points -> size);
+	MelderInfo_writeLine (in2, U"openPhase:           ", openPhase -> points -> size);
+	MelderInfo_writeLine (in2, U"collisionPhase:      ", collisionPhase -> points -> size);
+	MelderInfo_writeLine (in2, U"power1:              ", power1 -> points -> size);
+	MelderInfo_writeLine (in2, U"power2:              ", power2 -> points -> size);
+	MelderInfo_writeLine (in2, U"flutter:             ", flutter -> points -> size);
+	MelderInfo_writeLine (in2, U"doublePulsing:       ", doublePulsing -> points -> size);
+	MelderInfo_writeLine (in2, U"spectralTilt:        ", spectralTilt -> points -> size);
+	MelderInfo_writeLine (in2, U"aspirationAmplitude: ", aspirationAmplitude -> points -> size);
+	MelderInfo_writeLine (in2, U"breathinessAmplitude:", breathinessAmplitude -> points -> size);
 }
 
 void PhonationGrid_setNames (PhonationGrid me) {
-	Thing_setName (my pitch.get(), U"pitch");
-	Thing_setName (my voicingAmplitude.get(), U"voicingAmplitude");
-	Thing_setName (my openPhase.get(), U"openPhase");
-	Thing_setName (my collisionPhase.get(), U"collisionPhase");
-	Thing_setName (my power1.get(), U"power1");
-	Thing_setName (my power2.get(), U"power2");
-	Thing_setName (my flutter.get(), U"flutter");
-	Thing_setName (my doublePulsing.get(), U"doublePulsing");
-	Thing_setName (my spectralTilt.get(), U"spectralTilt");
-	Thing_setName (my aspirationAmplitude.get(), U"aspirationAmplitude");
-	Thing_setName (my breathinessAmplitude.get(), U"breathinessAmplitude");
-}
-
-autoPhonationGrid PhonationGrid_create (double tmin, double tmax) {
+	Thing_setName (my pitch, U"pitch");
+	Thing_setName (my voicingAmplitude, U"voicingAmplitude");
+	Thing_setName (my openPhase, U"openPhase");
+	Thing_setName (my collisionPhase, U"collisionPhase");
+	Thing_setName (my power1, U"power1");
+	Thing_setName (my power2, U"power2");
+	Thing_setName (my flutter, U"flutter");
+	Thing_setName (my doublePulsing, U"doublePulsing");
+	Thing_setName (my spectralTilt, U"spectralTilt");
+	Thing_setName (my aspirationAmplitude, U"aspirationAmplitude");
+	Thing_setName (my breathinessAmplitude, U"breathinessAmplitude");
+}
+
+PhonationGrid PhonationGrid_create (double tmin, double tmax) {
 	try {
 		autoPhonationGrid me = Thing_new (PhonationGrid);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my pitch = PitchTier_create (tmin, tmax);
 		my voicingAmplitude = IntensityTier_create (tmin, tmax);
 		my openPhase = RealTier_create (tmin, tmax);
@@ -714,100 +610,100 @@ autoPhonationGrid PhonationGrid_create (double tmin, double tmax) {
 		my aspirationAmplitude = IntensityTier_create (tmin, tmax);
 		my breathinessAmplitude = IntensityTier_create (tmin, tmax);
 		my options = PhonationGridPlayOptions_create ();
-		PhonationGrid_setNames (me.get());
-		return me;
+		PhonationGrid_setNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PhonationGrid not created.");
 	}
 }
 
 static void PhonationGrid_checkFlowFunction (PhonationGrid me) {
-	int hasPower1Points = my power1 -> points.size > 0;
-	int hasPower2Points = my power2 -> points.size > 0;
+	int hasPower1Points = my power1 -> points -> size > 0;
+	int hasPower2Points = my power2 -> points -> size > 0;
 
 	long ipoint = 1;
 	do {
-		double time = ( hasPower1Points ? my power1 -> points.at [ipoint] -> number : 0.5 * (my xmin + my xmax) );
-		double power1 = RealTier_getValueAtIndex (my power1.get(), ipoint);
+		double time = hasPower1Points ? ( (RealPoint) (my power1 -> points -> item[ipoint])) -> number : 0.5 * (my xmin + my xmax);
+		double power1 = RealTier_getValueAtIndex (my power1, ipoint);
 		if (power1 == NUMundefined) {
 			power1 = KlattGrid_POWER1_DEFAULT;
 		}
 		if (power1 <= 0) {
 			Melder_throw (U"All power1 values must greater than zero.");
 		}
-		double power2 = RealTier_getValueAtTime (my power2.get(), time);
+		double power2 = RealTier_getValueAtTime (my power2, time);
 		if (power2 == NUMundefined) {
 			power2 = KlattGrid_POWER2_DEFAULT;
 		}
 		if (power2 <= power1) {
 			Melder_throw (U"At all times a power1 value must be smaller than the corresponding power2 value.");
 		}
-	} while (++ipoint < my power1 -> points.size);
+	} while (++ipoint < my power1 -> points -> size);
 
 	// Now check power2 values. This is necessary to catch situations where power2 has a valley:
 	// power1(0) = 3; power2(1)= 4; power2(1)= 4; power2(0.5) = 3;
 
 	ipoint = 1;
 	do {
-		double time = ( hasPower2Points ? my power2 -> points.at [ipoint] -> number : 0.5 * (my xmin + my xmax) );
-		double power2 = RealTier_getValueAtIndex (my power2.get(), ipoint);
+		double time = hasPower2Points ? ( (RealPoint) (my power2 -> points -> item[ipoint])) -> number : 0.5 * (my xmin + my xmax);
+		double power2 = RealTier_getValueAtIndex (my power2, ipoint);
 		if (power2 == NUMundefined) {
 			power2 = KlattGrid_POWER2_DEFAULT;
 		}
-		double power1 = RealTier_getValueAtTime (my power1.get(), time);
+		double power1 = RealTier_getValueAtTime (my power1, time);
 		if (power1 == NUMundefined) {
 			power1 = KlattGrid_POWER1_DEFAULT;
 		}
 		if (power2 <= power1) {
 			Melder_throw (U"At all times the power2 value must be greater than the corresponding power1 value.");
 		}
-	} while (++ipoint < my power2 -> points.size);
+	} while (++ipoint < my power2 -> points -> size);
 }
 
 static void PhonationGrid_draw_inside (PhonationGrid me, Graphics g, double xmin, double xmax, double ymin, double ymax, double dy, double *yout) {
 	// dum voicing conn tilt conn summer
 	(void) me;
-	double xw[6] = { 0.0, 1.0, 0.5, 1.0, 0.5, 0.5 }, xws[6];
+	double xw[6] = { 0, 1, 0.5, 1, 0.5, 0.5 }, xws[6];
 
 	connections thee = connections_create (2);
 
 	rel_to_abs (xw, xws, 5, xmax - xmin);
 
-	dy = (ymax - ymin) / (1.0 + (dy < 0.0 ? 0.0 : dy) + 1.0);
+	dy = (ymax - ymin) / (1 + (dy < 0 ? 0 : dy) + 1);
 
 	double x1 = xmin, x2 = x1 + xw[1];
 	double y2 = ymax, y1 = y2 - dy;
-	draw_oneSection (g, x1, x2, y1, y2, nullptr, U"Voicing", nullptr);
+	draw_oneSection (g, x1, x2, y1, y2, NULL, U"Voicing", 0);
 
 	x1 = x2; x2 = x1 + xw[2];
-	double ymid = (y1 + y2) / 2.0;
+	double ymid = (y1 + y2) / 2;
 	Graphics_line (g, x1, ymid, x2, ymid);
 
 	x1 = x2; x2 = x1 + xw[3];
-	draw_oneSection (g, x1, x2, y1, y2, nullptr, U"Tilt", nullptr);
+	draw_oneSection (g, x1, x2, y1, y2, NULL, U"Tilt", 0);
 
 	thy x[1] = x2; thy y[1] = ymid;
 
-	y2 = y1 - 0.5 * dy; y1 = y2 - dy; ymid = (y1 + y2) / 2.0;
+	y2 = y1 - 0.5 * dy; y1 = y2 - dy; ymid = (y1 + y2) / 2;
 	x2 = xmin + xws[3]; x1 = x2 - 1.5 * xw[3]; // some extra space
-	draw_oneSection (g, x1, x2, y1, y2, nullptr, U"Aspiration", nullptr);
+	draw_oneSection (g, x1, x2, y1, y2, NULL, U"Aspiration", 0);
 
 	thy x[2] = x2; thy y[2] = ymid;
 
-	double r = xw[5] / 2.0;
-	double xs = xmax - r, ys = (ymax + ymin) / 2.0;
-	bool arrow = true;
+	double r = xw[5] / 2;
+	double xs = xmax - r, ys = (ymax + ymin) / 2;
+	int arrow = 1;
 
 	summer_drawConnections (g, xs, ys, r, thee, arrow, 0.4);
 	connections_free (thee);
 
-	if (yout) {
+	if (yout != 0) {
 		*yout = ys;
 	}
 }
 
 void PhonationGrid_draw (PhonationGrid me, Graphics g) {
-	double xmin = 0.0, xmax2 = 0.9, xmax = 1.0, ymin = 0.0, ymax = 1.0, dy = 0.5, yout;
+	double xmin = 0, xmax2 = 0.9, xmax = 1, ymin = 0, ymax = 1, dy = 0.5, yout;
 
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -819,63 +715,63 @@ void PhonationGrid_draw (PhonationGrid me, Graphics g) {
 }
 
 double PhonationGrid_getMaximumPeriod (PhonationGrid me) {
-	double minimumPitch = RealTier_getMinimumValue (my pitch.get());
-	return 2.0 / ( NUMdefined (minimumPitch) && minimumPitch != 0.0 ? minimumPitch : my xmax - my xmin );
+	double minimumPitch = RealTier_getMinimumValue (my pitch);
+	return 2 / ( (minimumPitch == NUMundefined || minimumPitch == 0) ? (my xmax - my xmin) : minimumPitch);
 }
 
-static autoPointProcess PitchTier_to_PointProcess_flutter (PitchTier pitch, RealTier flutter, double maximumPeriod) {
+PointProcess PitchTier_to_PointProcess_flutter (PitchTier pitch, RealTier flutter, double maximumPeriod) {
 	try {
 		autoPointProcess thee = PitchTier_to_PointProcess (pitch);
-		if (! flutter) {
-			return thee;
+		if (flutter == 0) {
+			return thee.transfer();
 		}
 		double tsum = 0;
-		for (long it = 2; it <= thy nt; it ++) {
-			double t = thy t [it - 1];
-			double period = thy t [it] - thy t [it - 1];
-			if (period < maximumPeriod && flutter -> points.size > 0) {
+		for (long it = 2; it <= thy nt; it++) {
+			double t = thy t[it - 1];
+			double period = thy t[it] - thy t[it - 1];
+			if (period < maximumPeriod && flutter -> points -> size > 0) {
 				double fltr = RealTier_getValueAtTime (flutter, t);
 				if (NUMdefined (fltr)) {
 					// newF0 = f0 * (1 + (val / 50) * (sin ... + ...));
-					double newPeriod = period / (1.0 + (fltr / 50.0) * (sin (2.0 * NUMpi * 12.7 * t) + sin (2.0 * NUMpi * 7.1 * t) + sin (2.0 * NUMpi * 4.7 * t)));
+					double newPeriod = period / (1 + (fltr / 50) * (sin (2 * NUMpi * 12.7 * t) + sin (2 * NUMpi * 7.1 * t) + sin (2 * NUMpi * 4.7 * t)));
 					tsum += newPeriod - period;
 				}
 			}
-			thy t [it] += tsum;
+			thy t[it] += tsum;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (pitch, U": no flutter PointProcess created.");
 	}
 }
 
-autoSound PhonationGrid_to_Sound_aspiration (PhonationGrid me, double samplingFrequency) {
+Sound PhonationGrid_to_Sound_aspiration (PhonationGrid me, double samplingFrequency) {
 	try {
 		autoSound thee = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
 
 		// Noise spectrum is tilted down by soft low-pass filter having a pole near
 		// the origin in the z-plane, i.e. y[n] = x[n] + (0.75 * y[n-1])
-		double lastval = 0.0;
-		if (my aspirationAmplitude -> points.size > 0) {
-			for (long i = 1; i <= thy nx; i ++) {
+		double lastval = 0;
+		if (my aspirationAmplitude -> points -> size > 0) {
+			for (long i = 1; i <= thy nx; i++) {
 				double t = thy x1 + (i - 1) * thy dx;
-				double val = NUMrandomUniform (-1.0, 1.0);
-				double a = DBSPL_to_A (RealTier_getValueAtTime (my aspirationAmplitude.get(), t));
+				double val = NUMrandomUniform (-1, 1);
+				double a = DBSPL_to_A (RealTier_getValueAtTime (my aspirationAmplitude, t));
 				if (NUMdefined (a)) {
-					thy z [1] [i] = lastval = val + 0.75 * lastval;
+					thy z[1][i] = lastval = val + 0.75 * lastval;
 					lastval = (val += 0.75 * lastval); // soft low-pass
-					thy z [1] [i] = val * a;
+					thy z[1][i] = val * a;
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no aspiration Sound created.");
 	}
 }
 
 static void Sound_PhonationGrid_spectralTilt_inline (Sound thee, PhonationGrid me) {
-	if (my spectralTilt -> points.size > 0) {
+	if (my spectralTilt -> points -> size > 0) {
 		/* Spectral tilt
 			Filter y[n] = a * x[n] + b * y[n-1] => H(z) = a / (1 - bz^(-1)).
 			We need attenuation, i.e. low-pass. Therefore 0 <= b <= 1.
@@ -886,19 +782,19 @@ static void Sound_PhonationGrid_spectralTilt_inline (Sound thee, PhonationGrid m
 				then b = q -sqrt(q^2 - 1)
 		*/
 
-		double cosf = cos (2.0 * NUMpi * 3000.0 * thy dx), ynm1 = 0.0;  // samplingFrequency > 6000.0 !
+		double cosf = cos (2 * NUMpi * 3000 * thy dx), ynm1 = 0;  // samplingFrequency > 6000 !
 
-		for (long i = 1; i <= thy nx; i ++) {
+		for (long i = 1; i <= thy nx; i++) {
 			double t = thy x1 + (i - 1) * thy dx;
-			double tilt_db = RealTier_getValueAtTime (my spectralTilt.get(), t);
+			double tilt_db = RealTier_getValueAtTime (my spectralTilt, t);
 
 			if (tilt_db > 0) {
-				double d = pow (10.0, -tilt_db / 10.0);
-				double q = (1.0 - d * cosf) / (1.0 - d);
-				double b = q - sqrt (q * q - 1.0);
-				double a = 1.0 - b;
-				thy z [1] [i] = a * thy z [1] [i] + b * ynm1;
-				ynm1 = thy z [1] [i];
+				double d = pow (10, -tilt_db / 10);
+				double q = (1 - d * cosf) / (1 - d);
+				double b = q - sqrt (q * q - 1);
+				double a = 1 - b;
+				thy z[1][i] = a * thy z[1][i] + b * ynm1;
+				ynm1 = thy z[1][i];
 			}
 		}
 	}
@@ -931,11 +827,11 @@ static double get_collisionPoint_x (double n, double m, double collisionPhase) {
 	In all other cases we solve with Newton-Raphson. For these cases we also need the derivative:
 		f'(x)= (m - n)x^(m - n - 1)- a(m - n) / (m + a x)^2
 	*/
-	if (collisionPhase <= 0.0) {
-		return 1.0;
+	if (collisionPhase <= 0) {
+		return 1;
 	}
-	double a = 1.0 / collisionPhase;
-	if (m - n == 1.0) {
+	double a = 1 / collisionPhase;
+	if (m - n == 1) {
 		double b = m - a;
 		double c = - n, y1, y2;
 		long nroots = NUMsolveQuadraticEquation (a, b, c, &y1, &y2);
@@ -948,27 +844,26 @@ static double get_collisionPoint_x (double n, double m, double collisionPhase) {
 		// search in the interval from where the flow is a maximum to 1
 		struct nrfunction_struct nrfs = {n, m, a};
 		double root, xmaxFlow = pow (n / m, 1.0 / (m - n));
-		NUMnrbis (& nrfunction, xmaxFlow, 1.0, & nrfs, & root);
-		y = root;
+		NUMnrbis (&nrfunction, xmaxFlow, 1, &nrfs, &root); y = root;
 	}
 	return y;
 }
 
-autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
+PhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 	try {
 		long diplophonicPulseIndex = 0;
-		PhonationGridPlayOptions pp = my options.get();
+		PhonationGridPlayOptions pp = my options;
 
 		PhonationGrid_checkFlowFunction (me);
-		if (my pitch -> points.size == 0) {
+		if (my pitch -> points -> size == 0) {
 			Melder_throw (U"Pitch tier is empty.");
 		}
 
-		if (pp -> maximumPeriod == 0.0) {
+		if (pp -> maximumPeriod == 0) {
 			pp -> maximumPeriod = PhonationGrid_getMaximumPeriod (me);
 		}
 
-		autoPointProcess point = PitchTier_to_PointProcess_flutter (my pitch.get(), (pp -> flutter ? my flutter.get() : nullptr), pp -> maximumPeriod);
+		autoPointProcess point = PitchTier_to_PointProcess_flutter (my pitch, (pp -> flutter ? my flutter : 0), pp -> maximumPeriod);
 
 		autoPhonationTier thee = PhonationTier_create (my xmin, my xmax);
 
@@ -983,10 +878,10 @@ autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 
 		for (long it = 1; it <= point -> nt; it++) {
 			double re, t = point -> t[it];		// the glottis "closing" point
-			double pulseDelay = 0.0;        // For alternate pulses in case of diplophonia
-			double pulseScale = 1.0;        // For alternate pulses in case of diplophonia
+			double pulseDelay = 0;        // For alternate pulses in case of diplophonia
+			double pulseScale = 1;        // For alternate pulses in case of diplophonia
 
-			double period = PointProcess_getPeriodAtIndex (point.get(), it, pp -> maximumPeriod);
+			double period = PointProcess_getPeriodAtIndex (point.peek(), it, pp -> maximumPeriod);
 			if (period == NUMundefined) {
 				period = 0.5 * pp -> maximumPeriod; // Some default value
 			}
@@ -996,15 +891,15 @@ autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 
 			double periodStart = t - period; // point where period starts:
 
-			double collisionPhase = pp -> collisionPhase ? RealTier_getValueAtTime (my collisionPhase.get(), periodStart) : 0.0;
+			double collisionPhase = pp -> collisionPhase ? RealTier_getValueAtTime (my collisionPhase, periodStart) : 0;
 			if (collisionPhase == NUMundefined) {
-				collisionPhase = 0.0;
+				collisionPhase = 0;
 			}
-			double power1 = pp -> flowFunction == 1 ? RealTier_getValueAtTime (my power1.get(), periodStart) : pp -> flowFunction;
+			double power1 = pp -> flowFunction == 1 ? RealTier_getValueAtTime (my power1, periodStart) : pp -> flowFunction;
 			if (power1 == NUMundefined) {
 				power1 = KlattGrid_POWER1_DEFAULT;
 			}
-			double power2 = pp -> flowFunction == 1 ? RealTier_getValueAtTime (my power2.get(), periodStart) : pp -> flowFunction + 1;
+			double power2 = pp -> flowFunction == 1 ? RealTier_getValueAtTime (my power2, periodStart) : pp -> flowFunction + 1;
 			if (power2 == NUMundefined) {
 				power2 = KlattGrid_POWER2_DEFAULT;
 			}
@@ -1014,7 +909,7 @@ autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 				Melder_warning (U"Illegal collision point at t = ", t, U" (power1=", power1, U", power2=", power2, U"colPhase=", collisionPhase, U")");
 			}
 
-			double openPhase = RealTier_getValueAtTime (my openPhase.get(), periodStart);
+			double openPhase = RealTier_getValueAtTime (my openPhase, periodStart);
 			if (openPhase == NUMundefined) {
 				openPhase = KlattGrid_OPENPHASE_DEFAULT;
 			}
@@ -1026,25 +921,25 @@ autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 			// This delay scales to maximally equal the closed phase of the next period.
 			// The doublePulsing scales the amplitudes as well as the delay linearly.
 
-			double doublePulsing = pp -> doublePulsing ? RealTier_getValueAtTime (my doublePulsing.get(), periodStart) : 0.0;
+			double doublePulsing = pp -> doublePulsing ? RealTier_getValueAtTime (my doublePulsing, periodStart) : 0;
 			if (doublePulsing == NUMundefined) {
-				doublePulsing = 0.0;
+				doublePulsing = 0;
 			}
 
-			if (doublePulsing > 0.0) {
-				diplophonicPulseIndex ++;
-				if (diplophonicPulseIndex % 2 == 1) {   // the odd-numbered one
-					double nextPeriod = PointProcess_getPeriodAtIndex (point.get(), it + 1, pp -> maximumPeriod);
+			if (doublePulsing > 0) {
+				diplophonicPulseIndex++;
+				if (diplophonicPulseIndex % 2 == 1) { // the odd one
+					double nextPeriod = PointProcess_getPeriodAtIndex (point.peek(), it + 1, pp -> maximumPeriod);
 					if (nextPeriod == NUMundefined) {
 						nextPeriod = period;
 					}
 					double openPhase2 = KlattGrid_OPENPHASE_DEFAULT;
-					if (my openPhase -> points.size > 0) {
-						openPhase2 = RealTier_getValueAtTime (my openPhase.get(), t);
+					if (my openPhase -> points -> size > 0) {
+						openPhase2 = RealTier_getValueAtTime (my openPhase, t);
 					}
-					double maxDelay = period * (1.0 - openPhase2);
+					double maxDelay = period * (1 - openPhase2);
 					pulseDelay = maxDelay * doublePulsing;
-					pulseScale *= 1.0 - doublePulsing;
+					pulseScale *= (1 - doublePulsing);
 				}
 			} else {
 				diplophonicPulseIndex = 0;
@@ -1052,27 +947,27 @@ autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me) {
 
 			t += pulseDelay;
 			autoPhonationPoint phonationPoint = PhonationPoint_create (t, period, openPhase, collisionPhase, te, power1, power2, pulseScale);
-			AnyTier_addPoint_move (thee.get()->asAnyTier(), phonationPoint.move());
+			AnyTier_addPoint (thee.peek(), phonationPoint.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PhonationTier created.");
 	}
 }
 
-static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me, PhonationTier thee, double samplingFrequency) {
+Sound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me, PhonationTier thee, double samplingFrequency) {
 	try {
-		PhonationGridPlayOptions p = my options.get();
+		PhonationGridPlayOptions p = my options;
 		double lastVal = NUMundefined;
 
-		if (my voicingAmplitude -> points.size == 0) {
+		if (my voicingAmplitude -> points -> size == 0) {
 			Melder_throw (U"Voicing amplitude tier is empty.");
 		}
 
 		autoSound him = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
-		autoSound breathy;
-		if (p -> breathiness && my breathinessAmplitude -> points.size > 0) {
-			breathy = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
+		autoSound breathy = 0;
+		if (p -> breathiness && my breathinessAmplitude -> points -> size > 0) {
+			breathy.reset (Sound_createEmptyMono (my xmin, my xmax, samplingFrequency));
 		}
 		/*
 			Cycle through the points of the PhonationTier. Each will become a period.
@@ -1083,9 +978,9 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 				Generate the period.
 		*/
 		double *sound = his z[1];
-		for (long it = 1; it <= thy points.size; it ++) {
-			PhonationPoint point = thy points.at [it];
-			double t = point -> number;		// the glottis "closing" point
+		for (long it = 1; it <= thy points -> size; it++) {
+			PhonationPoint point = (PhonationPoint) thy points -> item[it];
+			double t = point -> time;		// the glottis "closing" point
 			double te = point -> te;
 			double period = point -> period; // duration of the current period
 			double openPhase = point -> openPhase;
@@ -1102,11 +997,11 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 			//	i.e. (n/m) = x^(m-n), so xmax = (n/m)^(1/(m-n))
 			//	U(xmax) = x^n (1-x^(m-n)) = (n/m)^(n/(m-n))(1-n/m)
 
-			double amplitude = pulseScale / (pow (power1 / power2, 1.0 / (power2 / power1 - 1.0)) * (1.0 - power1 / power2));
+			double amplitude = pulseScale / (pow (power1 / power2, 1 / (power2 / power1 - 1)) * (1 - power1 / power2));
 
 			// Fill in the samples to the left of the current point.
 
-			long midSample = Sampled_xToLowIndex (him.get(), t), beginSample;
+			long midSample = Sampled_xToLowIndex (him.peek(), t), beginSample;
 			beginSample = midSample - (long) floor (te / his dx);
 			if (beginSample < 1) {
 				beginSample = 0;
@@ -1114,7 +1009,7 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 			if (midSample > his nx) {
 				midSample = his nx;
 			}
-			for (long i = beginSample; i <= midSample; i ++) {
+			for (long i = beginSample; i <= midSample; i++) {
 				double tsamp = his x1 + (i - 1) * his dx;
 				phase = (tsamp - (t - te)) / (period * openPhase);
 				if (phase > 0.0) {
@@ -1126,10 +1021,10 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 					sound[i] += flow;
 
 					// Breathiness only during open part modulated by the flow
-					if (breathy) {
-						double val = flow * NUMrandomUniform (-1.0, 1.0);
-						double a = RealTier_getValueAtTime (my breathinessAmplitude.get(), t);
-						breathy -> z [1] [i] += val * DBSPL_to_A (a);
+					if (breathy.peek() != 0) {
+						double val = flow * NUMrandomUniform (-1, 1);
+						double a = RealTier_getValueAtTime (my breathinessAmplitude, t);
+						breathy -> z[1][i] += val * DBSPL_to_A (a);
 					}
 				}
 			}
@@ -1148,7 +1043,7 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 				double ta = collisionPhase * (period * openPhase);
 				double factorPerSample = exp (- his dx / ta);
 				double value = flow * exp (- (his x1 + midSample * his dx - t) / ta);
-				long endSample = midSample + (long) floor (20.0 * ta / his dx);
+				long endSample = midSample + (long) floor (20 * ta / his dx);
 				if (endSample > his nx) {
 					endSample = his nx;
 				}
@@ -1161,77 +1056,80 @@ static autoSound PhonationGrid_PhonationTier_to_Sound_voiced (PhonationGrid me,
 
 		// Scale voiced part and add breathiness during open phase
 		if (p -> flowDerivative) {
-			double extremum = Vector_getAbsoluteExtremum (him.get(), 0.0, 0.0, Vector_VALUE_INTERPOLATION_CUBIC);
+			double extremum = Vector_getAbsoluteExtremum (him.peek(), 0, 0, Vector_VALUE_INTERPOLATION_CUBIC);
 			if (! NUMdefined (lastVal)) {
-				lastVal = 0.0;
+				lastVal = 0;
 			}
-			for (long i = 1; i <= his nx; i ++) {
-				double val = his z [1] [i];
-				his z [1] [i] -= lastVal;
+			for (long i = 1; i <= his nx; i++) {
+				double val = his z[1][i];
+				his z[1][i] -= lastVal;
 				lastVal = val;
 			}
-			Vector_scale (him.get(), extremum);
+			Vector_scale (him.peek(), extremum);
 		}
 
-		for (long i = 1; i <= his nx; i ++) {
+		for (long i = 1; i <= his nx; i++) {
 			double t = his x1 + (i - 1) * his dx;
-			his z [1] [i] *= DBSPL_to_A (RealTier_getValueAtTime (my voicingAmplitude.get(), t));
-			if (breathy) {
-				his z [1] [i] += breathy -> z [1] [i];
+			his z[1][i] *= DBSPL_to_A (RealTier_getValueAtTime (my voicingAmplitude, t));
+			if (breathy.peek() != 0) {
+				his z[1][i] += breathy -> z[1][i];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
 
-static autoSound PhonationGrid_to_Sound_voiced (PhonationGrid me, double samplingFrequency) {
+static Sound PhonationGrid_to_Sound_voiced (PhonationGrid me, double samplingFrequency) {
 	try {
 		autoPhonationTier thee = PhonationGrid_to_PhonationTier (me);
-		return PhonationGrid_PhonationTier_to_Sound_voiced (me, thee.get(), samplingFrequency);
+		autoSound him = PhonationGrid_PhonationTier_to_Sound_voiced (me, thee.peek(), samplingFrequency);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no voiced Sound created.");
 	}
 }
 
-static autoSound PhonationGrid_to_Sound (PhonationGrid me, CouplingGrid him, double samplingFrequency) {
+static Sound PhonationGrid_to_Sound (PhonationGrid me, CouplingGrid him, double samplingFrequency) {
 	try {
-		PhonationGridPlayOptions pp = my options.get();
-		autoSound thee;
+		PhonationGridPlayOptions pp = my options;
+		autoSound thee = 0;
 		if (pp -> voicing) {
-			if (him && his glottis -> points.size > 0) {
-				thee = PhonationGrid_PhonationTier_to_Sound_voiced (me, his glottis.get(), samplingFrequency);
+			if (him != 0 && his glottis -> points -> size > 0) {
+				thee.reset (PhonationGrid_PhonationTier_to_Sound_voiced (me, his glottis, samplingFrequency));
 			} else {
-				thee = PhonationGrid_to_Sound_voiced (me, samplingFrequency);
+				thee.reset (PhonationGrid_to_Sound_voiced (me, samplingFrequency));
 			}
 			if (pp -> spectralTilt) {
-				Sound_PhonationGrid_spectralTilt_inline (thee.get(), me);
+				Sound_PhonationGrid_spectralTilt_inline (thee.peek(), me);
 			}
 		}
 		if (pp -> aspiration) {
 			autoSound aspiration = PhonationGrid_to_Sound_aspiration (me, samplingFrequency);
-			if (thee) {
-				_Sounds_add_inline (thee.get(), aspiration.get());
+			if (thee.peek() == 0) {
+				thee.reset (aspiration.transfer());
 			} else {
-				thee = aspiration.move();
+				_Sounds_add_inline (thee.peek(), aspiration.peek());
 			}
 		}
-		if (! thee) {
-			thee = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
+		if (thee.peek() == 0) {
+			thee.reset (Sound_createEmptyMono (my xmin, my xmax, samplingFrequency));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
 
-static void formantsAmplitudes_create (OrderedOf<structIntensityTier>* me, double tmin, double tmax, long numberOfFormants) {
+static Ordered formantsAmplitudes_create (double tmin, double tmax, long numberOfFormants) {
 	try {
-		for (long i = 1; i <= numberOfFormants; i ++) {
+		autoOrdered me = Ordered_create ();
+		for (long i = 1; i <= numberOfFormants; i++) {
 			autoIntensityTier a = IntensityTier_create (tmin, tmax);
-			me -> addItem_move (a.move());
+			Collection_addItem (me.peek(), a.transfer());
 		}
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No formants amplitudes created.");
 	};
@@ -1239,21 +1137,21 @@ static void formantsAmplitudes_create (OrderedOf<structIntensityTier>* me, doubl
 
 /********************** VocalTractGridPlayOptions **********************/
 
-Thing_implement (VocalTractGridPlayOptions, Daata, 0);
+Thing_implement (VocalTractGridPlayOptions, Data, 0);
 
 static void VocalTractGridPlayOptions_setDefaults (VocalTractGridPlayOptions me, VocalTractGrid thee) {
 	my filterModel = KlattGrid_FILTER_CASCADE;
-	my endOralFormant = MIN (thy oral_formants -> formants.size, thy oral_formants -> bandwidths.size);
+	my endOralFormant = MIN (thy oral_formants -> formants -> size, thy oral_formants -> bandwidths -> size);
 	my startOralFormant = 1;
-	my endNasalFormant = MIN (thy nasal_formants -> formants.size, thy nasal_formants -> bandwidths.size);
+	my endNasalFormant = MIN (thy nasal_formants -> formants -> size, thy nasal_formants -> bandwidths -> size);
 	my startNasalFormant = 1;
-	my endNasalAntiFormant = MIN (thy nasal_antiformants -> formants.size, thy nasal_antiformants -> bandwidths.size);
+	my endNasalAntiFormant = MIN (thy nasal_antiformants -> formants -> size, thy nasal_antiformants -> bandwidths -> size);
 	my startNasalAntiFormant = 1;
 }
 
-autoVocalTractGridPlayOptions VocalTractGridPlayOptions_create () {
+VocalTractGridPlayOptions VocalTractGridPlayOptions_create () {
 	try {
-		autoVocalTractGridPlayOptions me = Thing_new (VocalTractGridPlayOptions);
+		VocalTractGridPlayOptions me = Thing_new (VocalTractGridPlayOptions);
 		return me;
 	} catch (MelderError) {
 		Melder_throw (U"VocalTractGridPlayOptions not created.");
@@ -1263,43 +1161,43 @@ autoVocalTractGridPlayOptions VocalTractGridPlayOptions_create () {
 /********************** VocalTractGrid ***************************************/
 
 static long FormantGrid_getNumberOfFormantPoints (FormantGrid me, long iformant) {
-	if (iformant < 1 || iformant > my formants.size) {
+	if (iformant < 1 || iformant > my formants -> size) {
 		return -1;
 	}
-	RealTier f = my formants.at [iformant];
-	return f -> points.size;
+	RealTier f = (RealTier) my formants -> item[iformant];
+	return f -> points -> size;
 }
 
 static long FormantGrid_getNumberOfBandwidthPoints (FormantGrid me, long iformant) {
-	if (iformant < 1 || iformant > my bandwidths.size) {
+	if (iformant < 1 || iformant > my bandwidths -> size) {
 		return -1;
 	}
-	RealTier b = my bandwidths.at [iformant];
-	return b -> points.size;
+	RealTier b = (RealTier) my bandwidths -> item[iformant];
+	return b -> points -> size;
 }
 
-static long Ordered_getNumberOfAmplitudePoints (OrderedOf<structIntensityTier>* me, long iformant) {
-	if (! me || iformant < 1 || iformant > me->size) {
+static long Ordered_getNumberOfAmplitudePoints (Ordered me, long iformant) {
+	if (me == 0 || iformant < 1 || iformant > my size) {
 		return -1;
 	}
-	RealTier t = my at [iformant];
-	return t -> points.size;
+	RealTier t = (RealTier) my item[iformant];
+	return t -> points -> size;
 }
 
-static void FormantGrid_info (FormantGrid me, OrderedOf<structIntensityTier>* amplitudes, const char32 *in1, const char32 *in2) {
-	long nformants = my formants.size;
-	long namplitudes = ( amplitudes ? amplitudes->size : 0 );
+static void FormantGrid_info (FormantGrid me, Ordered amplitudes, const char32 *in1, const char32 *in2) {
+	long nformants = my formants -> size;
+	long namplitudes = amplitudes != NULL ? amplitudes -> size : 0;
 	long nmax = MAX (nformants, namplitudes);
 
 	for (long iformant = 1; iformant <= nmax; iformant++) {
 		MelderInfo_writeLine (in1, U"Formant ", iformant, U":");
-		if (iformant <= my formants.size) {
+		if (iformant <= my formants -> size) {
 			long nfp = FormantGrid_getNumberOfFormantPoints (me, iformant);
 			long nbp = FormantGrid_getNumberOfBandwidthPoints (me, iformant);
 			MelderInfo_writeLine (in2, U"formants:   ", (nfp >= 0 ? Melder_integer (nfp) : U"--undefined--"));
 			MelderInfo_writeLine (in2, U"bandwidths: ", (nbp >= 0 ? Melder_integer (nbp) : U"--undefined--"));
 		}
-		if (amplitudes) {
+		if (amplitudes != NULL) {
 			long nap = Ordered_getNumberOfAmplitudePoints (amplitudes, iformant);
 			MelderInfo_writeLine (in2, U"amplitudes: ", (nap >= 0 ? Melder_integer (nap) : U"--undefined--"));
 		}
@@ -1307,57 +1205,57 @@ static void FormantGrid_info (FormantGrid me, OrderedOf<structIntensityTier>* am
 }
 
 void structVocalTractGrid :: v_info () {
-	our structDaata :: v_info ();
+	structData :: v_info ();
 	const char32 *in1 = U"  ", *in2 = U"    ", *in3 = U"      ";
 	MelderInfo_writeLine (in1, U"Time domain:");
-	MelderInfo_writeLine (in2, U"Start time:     ", our xmin, U" seconds");
-	MelderInfo_writeLine (in2, U"End time:       ", our xmax, U" seconds");
-	MelderInfo_writeLine (in2, U"Total duration: ", our xmax - our xmin, U" seconds");
+	MelderInfo_writeLine (in2, U"Start time:     ", xmin, U" seconds");
+	MelderInfo_writeLine (in2, U"End time:       ", xmax, U" seconds");
+	MelderInfo_writeLine (in2, U"Total duration: ", xmax - xmin, U" seconds");
 	MelderInfo_writeLine (in1, U"\nNumber of points in the ORAL FORMANT tiers:");
-	FormantGrid_info (our oral_formants.get(), & our oral_formants_amplitudes, in2, in3);
+	FormantGrid_info (oral_formants, oral_formants_amplitudes, in2, in3);
 	MelderInfo_writeLine (in1, U"\nNumber of points in the NASAL FORMANT tiers:");
-	FormantGrid_info (our nasal_formants.get(), & our nasal_formants_amplitudes, in2, in3);
+	FormantGrid_info (nasal_formants, nasal_formants_amplitudes, in2, in3);
 	MelderInfo_writeLine (in1, U"\nNumber of points in the NASAL ANTIFORMANT tiers:");
-	FormantGrid_info (our nasal_antiformants.get(), nullptr, in2, in3);
+	FormantGrid_info (nasal_antiformants, NULL, in2, in3);
 }
 
 Thing_implement (VocalTractGrid, Function, 0);
 
 void VocalTractGrid_setNames (VocalTractGrid me) {
-	Thing_setName (my oral_formants.get(), U"oral_formants");
-	Thing_setName (my nasal_formants.get(), U"nasal_formants");
-	Thing_setName (my nasal_antiformants.get(), U"nasal_antiformants");
-	//Thing_setName (my oral_formants_amplitudes.get(), U"oral_formants_amplitudes");
-	//Thing_setName (my nasal_formants_amplitudes.get(), U"nasal_formants_amplitudes");
+	Thing_setName (my oral_formants, U"oral_formants");
+	Thing_setName (my nasal_formants, U"nasal_formants");
+	Thing_setName (my nasal_antiformants, U"nasal_antiformants");
+	Thing_setName (my oral_formants_amplitudes, U"oral_formants_amplitudes");
+	Thing_setName (my nasal_formants_amplitudes, U"nasal_formants_amplitudes");
 }
 
-autoVocalTractGrid VocalTractGrid_create (double tmin, double tmax, long numberOfFormants,
+VocalTractGrid VocalTractGrid_create (double tmin, double tmax, long numberOfFormants,
                                       long numberOfNasalFormants,	long numberOfNasalAntiFormants) {
 	try {
 		autoVocalTractGrid me = Thing_new (VocalTractGrid);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my oral_formants = FormantGrid_createEmpty (tmin, tmax, numberOfFormants);
 		my nasal_formants = FormantGrid_createEmpty (tmin, tmax, numberOfNasalFormants);
 		my nasal_antiformants = FormantGrid_createEmpty (tmin, tmax, numberOfNasalAntiFormants);
-		formantsAmplitudes_create (& my oral_formants_amplitudes, tmin, tmax, numberOfFormants);
-		formantsAmplitudes_create (& my nasal_formants_amplitudes, tmin, tmax, numberOfNasalFormants);
+		my oral_formants_amplitudes = formantsAmplitudes_create (tmin, tmax, numberOfFormants);
+		my nasal_formants_amplitudes = formantsAmplitudes_create (tmin, tmax, numberOfNasalFormants);
 		my options = VocalTractGridPlayOptions_create ();
-		VocalTractGrid_setNames (me.get());
-		return me;
+		VocalTractGrid_setNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"VocalTractGrid not created.");
 	}
 }
 
 static void VocalTractGrid_CouplingGrid_drawCascade_inline (VocalTractGrid me, CouplingGrid thee, Graphics g, double xmin, double xmax, double ymin, double ymax, double *yin, double *yout) {
-	long numberOfOralFormants = my oral_formants -> formants.size;
-	long numberOfNasalFormants = my nasal_formants -> formants.size;
-	long numberOfNasalAntiFormants = my nasal_antiformants -> formants.size;
-	long numberOfTrachealFormants = thee ? thy tracheal_formants -> formants.size : 0;
-	long numberOfTrachealAntiFormants = thee ? thy tracheal_antiformants -> formants.size : 0;
-	double x1, y1 = ymin, x2, y2 = ymax, dx, ddx = 0.2, ymid = (y1 + y2) / 2.0;
-	const char32 *text [6] = { 0, U"TF", U"TAF", U"NF", U"NAF", U""};
-	long nf[6] = { 0, numberOfTrachealFormants, numberOfTrachealAntiFormants, numberOfNasalFormants, numberOfNasalAntiFormants, numberOfOralFormants };
+	long numberOfOralFormants = my oral_formants -> formants -> size;
+	long numberOfNasalFormants = my nasal_formants -> formants -> size;
+	long numberOfNasalAntiFormants = my nasal_antiformants -> formants -> size;
+	long numberOfTrachealFormants = thee != NULL ? thy tracheal_formants -> formants -> size : 0;
+	long numberOfTrachealAntiFormants = thee != NULL ? thy tracheal_antiformants -> formants -> size : 0;
+	double x1, y1 = ymin, x2, y2 = ymax, dx, ddx = 0.2, ymid = (y1 + y2) / 2;
+	const char32 *text[6] = { 0, U"TF", U"TAF", U"NF", U"NAF", U""};
+	long nf[6] = {0, numberOfTrachealFormants, numberOfTrachealAntiFormants, numberOfNasalFormants, numberOfNasalAntiFormants, numberOfOralFormants};
 	long numberOfXSections = 5, nsx = 0;
 	autoMelderString ff, fb;
 
@@ -1369,21 +1267,21 @@ static void VocalTractGrid_CouplingGrid_drawCascade_inline (VocalTractGrid me, C
 		goto end;
 	}
 
-	for (long isection = 1; isection <= numberOfXSections; isection ++) if (nf [isection] > 0) {
-		nsx ++;
-	}
+	for (long isection = 1; isection <= numberOfXSections; isection++) if (nf[isection] > 0) {
+			nsx++;
+		}
 	dx = (xmax - xmin) / (numberOfFilters  + (nsx - 1) * ddx);
 
 	x1 = xmin;
-	for (long isection = 1; isection <= numberOfXSections; isection ++) {
-		long numberOfFormants = nf [isection];
+	for (long isection = 1; isection <= numberOfXSections; isection++) {
+		long numberOfFormants = nf[isection];
 
 		if (numberOfFormants == 0) {
 			continue;
 		}
 
 		x2 = x1 + dx;
-		for (long i = 1; i <= numberOfFormants; i ++) {
+		for (long i = 1; i <= numberOfFormants; i++) {
 			MelderString_copy (&ff, U"F", i);
 			MelderString_copy (&fb, U"B", i);
 				// ppgb: met Melder_cat kan het misschien ook,
@@ -1405,10 +1303,10 @@ static void VocalTractGrid_CouplingGrid_drawCascade_inline (VocalTractGrid me, C
 		}
 	}
 end:
-	if (yin) {
+	if (yin != 0) {
 		*yin = ymid;
 	}
-	if (yout) {
+	if (yout != 0) {
 		*yout = ymid;
 	}
 }
@@ -1416,35 +1314,35 @@ end:
 static void VocalTractGrid_CouplingGrid_drawParallel_inline (VocalTractGrid me, CouplingGrid thee, Graphics g, double xmin, double xmax, double ymin, double ymax, double dy, double *yin, double *yout) {
 	// (0: filler) (1: hor. line to split) (2: split to diff) (3: diff) (4: diff to split)
 	// (5: split to filter) (6: filters) (7: conn to summer) (8: summer)
-	double xw [9] = { 0.0, 0.3, 0.2, 1.5, 0.5, 0.5, 1.0, 0.5, 0.5 }, xws [9];
+	double xw[9] = { 0, 0.3, 0.2, 1.5, 0.5, 0.5, 1, 0.5, 0.5 }, xws[9];
 	long numberOfXSections = 8, ic = 0, numberOfYSections = 4;
-	long numberOfNasalFormants = my nasal_formants -> formants.size;
-	long numberOfOralFormants = my oral_formants -> formants.size;
-	long numberOfTrachealFormants = thee ? thy tracheal_formants -> formants.size : 0;
+	long numberOfNasalFormants = my nasal_formants -> formants -> size;
+	long numberOfOralFormants = my oral_formants -> formants -> size;
+	long numberOfTrachealFormants = thee != NULL ? thy tracheal_formants -> formants -> size : 0;
 	long numberOfFormants = numberOfNasalFormants + numberOfOralFormants + numberOfTrachealFormants;
-	long numberOfUpperPartFormants = numberOfNasalFormants + ( numberOfOralFormants > 0 ? 1 : 0 );
+	long numberOfUpperPartFormants = numberOfNasalFormants + (numberOfOralFormants > 0 ? 1 : 0);
 	long numberOfLowerPartFormants = numberOfFormants - numberOfUpperPartFormants;
 	double ddy = dy < 0 ? 0 : dy, x1, y1, x2, y2, x3, r, ymid;
-	const char32 *text[5] = { nullptr, U"Nasal", U"", U"", U"Tracheal" };
-	long nffrom [5] = { 0, 1, 1, 2, 1 };
-	long nfto [5] = { 0, numberOfNasalFormants, ( numberOfOralFormants > 0 ? 1 : 0 ), numberOfOralFormants, numberOfTrachealFormants };
+	const char32 *text[5] = { 0, U"Nasal", U"", U"", U"Tracheal"};
+	long nffrom[5] = {0, 1, 1, 2, 1};
+	long nfto[5] = {0, numberOfNasalFormants, (numberOfOralFormants > 0 ? 1 : 0), numberOfOralFormants, numberOfTrachealFormants};
 	autoMelderString fba;
 
 	rel_to_abs (xw, xws, numberOfXSections, xmax - xmin);
 
 	if (numberOfFormants == 0) {
-		y1 = y2 = (ymin + ymax) / 2.0;
+		y1 = y2 = (ymin + ymax) / 2;
 		Graphics_line (g, xmin, y1, xmax, y1);
-		if (yin) {
+		if (yin != NULL) {
 			*yin = y1;
 		}
-		if (yout) {
+		if (yout != NULL) {
 			*yout = y2;
 		}
 		return;
 	}
 
-	dy = (ymax - ymin) / (numberOfFormants * (1.0 + ddy) - ddy);
+	dy = (ymax - ymin) / (numberOfFormants * (1 + ddy) - ddy);
 
 	connections local_in = connections_create (numberOfFormants);
 	connections local_out = connections_create (numberOfFormants);
@@ -1457,17 +1355,15 @@ static void VocalTractGrid_CouplingGrid_drawParallel_inline (VocalTractGrid me,
 		if (ito < ifrom) {
 			continue;
 		}
-		for (long i = ifrom; i <= ito; i ++) {
-			y1 = y2 - dy;
-			ymid = (y1 + y2) / 2.0;
+		for (long i = ifrom; i <= ito; i++) {
+			y1 = y2 - dy; ymid = (y1 + y2) / 2;
 			const char32 *fi = Melder_integer (i);
 			MelderString_copy (&fba, U"A", fi, U" F", fi, U" B", fi);
-			draw_oneSection (g, x1, x2, y1, y2, text[isection], fba.string, nullptr);
+			draw_oneSection (g, x1, x2, y1, y2, text[isection], fba.string, NULL);
 			Graphics_line (g, x3, ymid, x1, ymid); // to the left
-			ic ++;
-			local_in -> x [ic] = x3;
-			local_out -> x [ic] = x2;
-			local_in -> y [ic] = local_out -> y [ic] = ymid;
+			ic++;
+			local_in -> x[ic] = x3; local_out -> x[ic] = x2;
+			local_in -> y[ic] = local_out -> y[ic] = ymid;
 			y2 = y1 - 0.5 * dy;
 		}
 	}
@@ -1477,7 +1373,7 @@ static void VocalTractGrid_CouplingGrid_drawParallel_inline (VocalTractGrid me,
 	if (numberOfUpperPartFormants > 0) {
 		x1 = local_in -> x[numberOfUpperPartFormants]; y1 = local_in -> y[numberOfUpperPartFormants];
 		if (numberOfUpperPartFormants > 1) {
-			Graphics_line (g, x1, y1, local_in -> x [1], local_in -> y [1]);    // vertical
+			Graphics_line (g, x1, y1, local_in -> x[1], local_in -> y[1]);    // vertical
 		}
 		x2 = xmin;
 		if (numberOfLowerPartFormants > 0) {
@@ -1487,40 +1383,36 @@ static void VocalTractGrid_CouplingGrid_drawParallel_inline (VocalTractGrid me,
 	}
 	if (numberOfLowerPartFormants > 0) {
 		long ifrom = numberOfUpperPartFormants + 1;
-		x1 = local_in -> x [ifrom];
-		y1 = local_in -> y [ifrom];   // at the split
+		x1 = local_in -> x[ifrom]; y1 = local_in -> y[ifrom]; // at the split
 		if (numberOfLowerPartFormants > 1) {
 			Graphics_line (g, x1, y1, local_in -> x[numberOfFormants], local_in -> y[numberOfFormants]);    // vertical
 		}
 		x2 = xmin + xws[3]; // right of diff
 		Graphics_line (g, x1, y1, x2, y1); // from vertical to diff
 		x1 = xmin + xws[2]; // left of diff
-		draw_oneSection (g, x1, x2, y1 + 0.5 * dy, y1 - 0.5 * dy, U"Pre-emphasis", nullptr, nullptr);
+		draw_oneSection (g, x1, x2, y1 + 0.5 * dy, y1 - 0.5 * dy, U"Pre-emphasis", NULL, NULL);
 		x2 = x1;
 		if (numberOfUpperPartFormants > 0) {
-			x2 = xmin + xw [1];
-			y2 = y1;   // at split
+			x2 = xmin + xw[1]; y2 = y1; // at split
 			Graphics_line (g, x1, y1, x2, y1); // to split
 			y1 += (1 + ddy) * dy;
 			Graphics_line (g, x2, y2, x2, y1); // vertical
-			y1 -= 0.5 * (1.0 + ddy) * dy;
+			y1 -= 0.5 * (1 + ddy) * dy;
 		}
 		Graphics_line (g, xmin, y1, x2, y1);
 	}
 
-	r = xw[8] / 2.0;
-	x2 = xmax - r;
-	y2 = (ymin + ymax) / 2.0;
+	r = xw[8] / 2;
+	x2 = xmax - r; y2 = (ymin + ymax) / 2;
 
-	alternatingSummer_drawConnections (g, x2, y2, r, local_out, true, 0.4);
+	alternatingSummer_drawConnections (g, x2, y2, r, local_out, 1, 0.4);
 
-	connections_free (local_out);
-	connections_free (local_in);
+	connections_free (local_out); connections_free (local_in);
 
-	if (yin) {
+	if (yin != NULL) {
 		*yin = y1;
 	}
-	if (yout) {
+	if (yout != NULL) {
 		*yout = y2;
 	}
 }
@@ -1532,7 +1424,7 @@ static void VocalTractGrid_CouplingGrid_draw_inside (VocalTractGrid me, Coupling
 }
 
 static void VocalTractGrid_CouplingGrid_draw (VocalTractGrid me, CouplingGrid thee, Graphics g, int filterModel) {
-	double xmin = 0.0, xmin1 = 0.05, xmax1 = 0.95, xmax = 1.0, ymin = 0.0, ymax = 1.0, dy = 0.5, yin, yout;
+	double xmin = 0, xmin1 = 0.05, xmax1 = 0.95, xmax = 1, ymin = 0, ymax = 1, dy = 0.5, yin, yout;
 
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -1544,23 +1436,23 @@ static void VocalTractGrid_CouplingGrid_draw (VocalTractGrid me, CouplingGrid th
 	Graphics_unsetInner (g);
 }
 
-static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
+static Sound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
 	try {
-		VocalTractGridPlayOptions pv = thy options.get();
-		CouplingGridPlayOptions pc = coupling -> options.get();
-		bool useOpenGlottisInfo = pc -> openglottis && coupling && coupling -> glottis && coupling -> glottis -> points.size > 0;
-		FormantGrid oral_formants = thy oral_formants.get();
-		FormantGrid nasal_formants = thy nasal_formants.get();
-		FormantGrid nasal_antiformants = thy nasal_antiformants.get();
-		FormantGrid tracheal_formants = coupling -> tracheal_formants.get();
-		FormantGrid tracheal_antiformants = coupling -> tracheal_antiformants.get();
+		VocalTractGridPlayOptions pv = thy options;
+		CouplingGridPlayOptions pc = coupling -> options;
+		int useOpenGlottisInfo = pc -> openglottis && coupling && coupling -> glottis && coupling -> glottis -> points -> size > 0;
+		FormantGrid oral_formants = thy oral_formants;
+		FormantGrid nasal_formants = thy nasal_formants;
+		FormantGrid nasal_antiformants = thy nasal_antiformants;
+		FormantGrid tracheal_formants = coupling -> tracheal_formants;
+		FormantGrid tracheal_antiformants = coupling -> tracheal_antiformants;
 
 		int antiformants = 0;
-		long numberOfFormants = oral_formants -> formants.size;
-		long numberOfTrachealFormants = tracheal_formants -> formants.size;
-		long numberOfTrachealAntiFormants = tracheal_antiformants -> formants.size;
-		long numberOfNasalFormants = nasal_formants -> formants.size;
-		long numberOfNasalAntiFormants = nasal_antiformants -> formants.size;
+		long numberOfFormants = oral_formants -> formants -> size;
+		long numberOfTrachealFormants = tracheal_formants -> formants -> size;
+		long numberOfTrachealAntiFormants = tracheal_antiformants -> formants -> size;
+		long numberOfNasalFormants = nasal_formants -> formants -> size;
+		long numberOfNasalAntiFormants = nasal_antiformants -> formants -> size;
 		check_formants (numberOfFormants, & (pv -> startOralFormant), & (pv -> endOralFormant));
 		check_formants (numberOfNasalFormants, & (pv -> startNasalFormant), & (pv -> endNasalFormant));
 		check_formants (numberOfTrachealFormants, & (pc -> startTrachealFormant), & (pc -> endTrachealFormant));
@@ -1569,18 +1461,18 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 
 		autoSound him = Data_copy (me);
 
-		autoFormantGrid formants;
+		autoFormantGrid formants = 0;
 		if (useOpenGlottisInfo) {
-			formants = Data_copy (thy oral_formants.get());
-			FormantGrid_CouplingGrid_updateOpenPhases (formants.get(), coupling);
+			formants.reset (Data_copy (thy oral_formants));
+			FormantGrid_CouplingGrid_updateOpenPhases (formants.peek(), coupling);
 		}
 
 		long nasal_formant_warning = 0, any_warning = 0;
-		if (pv -> endNasalFormant > 0) {   // nasal formants
+		if (pv -> endNasalFormant > 0) { // Nasal formants
 			antiformants = 0;
-			for (long iformant = pv -> startNasalFormant; iformant <= pv -> endNasalFormant; iformant ++) {
-				if (FormantGrid_isFormantDefined (thy nasal_formants.get(), iformant)) {
-					_Sound_FormantGrid_filterWithOneFormant_inline (him.get(), thy nasal_formants.get(), iformant, antiformants);
+			for (long iformant = pv -> startNasalFormant; iformant <= pv -> endNasalFormant; iformant++) {
+				if (FormantGrid_isFormantDefined (thy nasal_formants, iformant)) {
+					_Sound_FormantGrid_filterWithOneFormant_inline (him.peek(), thy nasal_formants, iformant, antiformants);
 				} else {
 					// Melder_warning ("Nasal formant", iformant, ": frequency and/or bandwidth missing.");
 					nasal_formant_warning++; any_warning++;
@@ -1589,11 +1481,11 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 		}
 
 		long nasal_antiformant_warning = 0;
-		if (pv -> endNasalAntiFormant > 0) {   // nasal antiformants
+		if (pv -> endNasalAntiFormant > 0) { // Nasal anti formants
 			antiformants = 1;
-			for (long iformant = pv -> startNasalAntiFormant; iformant <= pv -> endNasalAntiFormant; iformant ++) {
-				if (FormantGrid_isFormantDefined (thy nasal_antiformants.get(), iformant)) {
-					_Sound_FormantGrid_filterWithOneFormant_inline (him.get(), thy nasal_antiformants.get(), iformant, antiformants);
+			for (long iformant = pv -> startNasalAntiFormant; iformant <= pv -> endNasalAntiFormant; iformant++) {
+				if (FormantGrid_isFormantDefined (thy nasal_antiformants, iformant)) {
+					_Sound_FormantGrid_filterWithOneFormant_inline (him.peek(), thy nasal_antiformants, iformant, antiformants);
 				} else {
 					// Melder_warning ("Nasal antiformant", iformant, ": frequency and/or bandwidth missing.");
 					nasal_antiformant_warning++; any_warning++;
@@ -1602,11 +1494,11 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 		}
 
 		long tracheal_formant_warning = 0;
-		if (pc -> endTrachealFormant > 0) {   // tracheal formants
+		if (pc -> endTrachealFormant > 0) { // Tracheal formants
 			antiformants = 0;
-			for (long iformant = pc -> startTrachealFormant; iformant <= pc -> endTrachealFormant; iformant ++) {
+			for (long iformant = pc -> startTrachealFormant; iformant <= pc -> endTrachealFormant; iformant++) {
 				if (FormantGrid_isFormantDefined (tracheal_formants, iformant)) {
-					_Sound_FormantGrid_filterWithOneFormant_inline (him.get(), tracheal_formants, iformant, antiformants);
+					_Sound_FormantGrid_filterWithOneFormant_inline (him.peek(), tracheal_formants, iformant, antiformants);
 				} else {
 					// Melder_warning ("Tracheal formant", iformant, ": frequency and/or bandwidth missing.");
 					tracheal_formant_warning++; any_warning++;
@@ -1615,11 +1507,11 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 		}
 
 		long tracheal_antiformant_warning = 0;
-		if (pc -> endTrachealAntiFormant > 0) {   // tracheal antiformants
+		if (pc -> endTrachealAntiFormant > 0) { // Tracheal anti formants
 			antiformants = 1;
-			for (long iformant = pc -> startTrachealAntiFormant; iformant <= pc -> endTrachealAntiFormant; iformant ++) {
+			for (long iformant = pc -> startTrachealAntiFormant; iformant <= pc -> endTrachealAntiFormant; iformant++) {
 				if (FormantGrid_isFormantDefined (tracheal_antiformants, iformant)) {
-					_Sound_FormantGrid_filterWithOneFormant_inline (him.get(), tracheal_antiformants, iformant, antiformants);
+					_Sound_FormantGrid_filterWithOneFormant_inline (him.peek(), tracheal_antiformants, iformant, antiformants);
 				} else {
 					// Melder_warning ("Tracheal antiformant", iformant, ": frequency and/or bandwidth missing.");
 					tracheal_antiformant_warning++; any_warning++;
@@ -1628,14 +1520,14 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 		}
 
 		long oral_formant_warning = 0;
-		if (pv -> endOralFormant > 0) {   // oral formants
+		if (pv -> endOralFormant > 0) { // Oral formants
 			antiformants = 0;
-			if (! formants) {
-				formants = Data_copy (thy oral_formants.get());
+			if (formants.peek() == 0) {
+				formants.reset (thy oral_formants);
 			}
-			for (long iformant = pv -> startOralFormant; iformant <= pv -> endOralFormant; iformant ++) {
-				if (FormantGrid_isFormantDefined (formants.get(), iformant)) {
-					_Sound_FormantGrid_filterWithOneFormant_inline (him.get(), formants.get(), iformant, antiformants);
+			for (long iformant = pv -> startOralFormant; iformant <= pv -> endOralFormant; iformant++) {
+				if (FormantGrid_isFormantDefined (formants.peek(), iformant)) {
+					_Sound_FormantGrid_filterWithOneFormant_inline (him.peek(), formants.peek(), iformant, antiformants);
 				} else {
 					// Melder_warning ("Oral formant", iformant, ": frequency and/or bandwidth missing.");
 					oral_formant_warning++; any_warning++;
@@ -1663,53 +1555,51 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_cascade (Sound me, Voc
 			MelderInfo_write (U"\nWarning:\n", warning.string);
 			MelderInfo_drain ();
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered by vocaltract and coupling grid.");
 	}
 }
 
-static autoSound Sound_VocalTractGrid_CouplingGrid_filter_parallel (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
+Sound Sound_VocalTractGrid_CouplingGrid_filter_parallel (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
 	try {
-		VocalTractGridPlayOptions pv = thy options.get();
-		CouplingGridPlayOptions pc = coupling -> options.get();
-		autoSound him;
-		FormantGrid oral_formants = thy oral_formants.get();
-		autoFormantGrid aof;
+		VocalTractGridPlayOptions pv = thy options;
+		CouplingGridPlayOptions pc = coupling -> options;
+		autoSound him = 0;
+		FormantGrid oral_formants = thy oral_formants; autoFormantGrid aof = 0;
 		int alternatingSign = 0; // 0: no alternating signs in parallel adding of filter outputs, 1/-1 start sign
-		bool useOpenGlottisInfo = pc -> openglottis && coupling -> glottis && coupling -> glottis -> points.size > 0;
+		int useOpenGlottisInfo = pc -> openglottis && coupling -> glottis && coupling -> glottis -> points -> size > 0;
 		int scale = 1;
-		long numberOfFormants = thy oral_formants -> formants.size;
-		long numberOfNasalFormants = thy nasal_formants -> formants.size;
-		long numberOfTrachealFormants = coupling -> tracheal_formants -> formants.size;
+		long numberOfFormants = thy oral_formants -> formants -> size;
+		long numberOfNasalFormants = thy nasal_formants -> formants -> size;
+		long numberOfTrachealFormants = coupling -> tracheal_formants -> formants -> size;
 
 		check_formants (numberOfFormants, & (pv -> startOralFormant), & (pv -> endOralFormant));
 		check_formants (numberOfNasalFormants, & (pv -> startNasalFormant), & (pv -> endNasalFormant));
 		check_formants (numberOfTrachealFormants, & (pc -> startTrachealFormant), & (pc -> endTrachealFormant));
 
 		if (useOpenGlottisInfo) {
-			aof = Data_copy (thy oral_formants.get());
-			oral_formants = aof.get();
+			aof.reset (Data_copy (thy oral_formants)); oral_formants = aof.peek();
 			FormantGrid_CouplingGrid_updateOpenPhases (oral_formants, coupling);
 		}
 
 		if (pv -> endOralFormant > 0) {
 			if (pv -> startOralFormant == 1) {
-				him = Data_copy (me);
-				if (oral_formants -> formants.size > 0) {
-					Sound_FormantGrid_Intensities_filterWithOneFormant_inline (him.get(), oral_formants, & thy oral_formants_amplitudes, 1);
+				him.reset (Data_copy (me));
+				if (oral_formants -> formants -> size > 0) {
+					Sound_FormantGrid_Intensities_filterWithOneFormant_inline (him.peek(), oral_formants, thy oral_formants_amplitudes, 1);
 				}
 			}
 		}
 
 		if (pv -> endNasalFormant > 0) {
 			alternatingSign = 0;
-			autoSound nasal = Sound_FormantGrid_Intensities_filter (me, thy nasal_formants.get(), & thy nasal_formants_amplitudes, pv -> startNasalFormant, pv -> endNasalFormant, alternatingSign);
+			autoSound nasal =  Sound_FormantGrid_Intensities_filter (me, thy nasal_formants, thy nasal_formants_amplitudes, pv -> startNasalFormant, pv -> endNasalFormant, alternatingSign);
 
-			if (! him) {
-				him = Data_copy (nasal.get());
+			if (him.peek() == 0) {
+				him.reset (Data_copy (nasal.peek()));
 			} else {
-				_Sounds_add_inline (him.get(), nasal.get());
+				_Sounds_add_inline (him.peek(), nasal.peek());
 			}
 		}
 
@@ -1723,40 +1613,40 @@ static autoSound Sound_VocalTractGrid_CouplingGrid_filter_parallel (Sound me, Vo
 
 		if (pv -> endOralFormant >= 2) {
 			long startOralFormant2 = pv -> startOralFormant > 2 ? pv -> startOralFormant : 2;
-			alternatingSign = ( startOralFormant2 % 2 == 0 ? -1 : 1 );   // 2 starts with negative sign
-			if (startOralFormant2 <= oral_formants -> formants.size) {
-				autoSound vocalTract = Sound_FormantGrid_Intensities_filter (me_diff.get(), oral_formants, & thy oral_formants_amplitudes, startOralFormant2, pv -> endOralFormant, alternatingSign);
+			alternatingSign = startOralFormant2 % 2 == 0 ? -1 : 1; // 2 starts with negative sign
+			if (startOralFormant2 <= oral_formants -> formants -> size) {
+				autoSound vocalTract = Sound_FormantGrid_Intensities_filter (me_diff.peek(), oral_formants, thy oral_formants_amplitudes, startOralFormant2, pv -> endOralFormant, alternatingSign);
 
-				if (! him) {
-					him = Data_copy (vocalTract.get());
+				if (him.peek() == 0) {
+					him.reset (Data_copy (vocalTract.peek()));
 				} else {
-					_Sounds_add_inline (him.get(), vocalTract.get());
+					_Sounds_add_inline (him.peek(), vocalTract.peek());
 				}
 			}
 		}
 
-		if (pc -> endTrachealFormant > 0) {   // tracheal formants
+		if (pc -> endTrachealFormant > 0) { // Tracheal formants
 			alternatingSign = 0;
-			autoSound trachea = Sound_FormantGrid_Intensities_filter (me_diff.get(), coupling -> tracheal_formants.get(), & coupling -> tracheal_formants_amplitudes,
-								pc -> startTrachealFormant, pc -> endTrachealFormant, alternatingSign);
+			autoSound trachea =  Sound_FormantGrid_Intensities_filter (me_diff.peek(), coupling -> tracheal_formants, coupling -> tracheal_formants_amplitudes,
+			                     pc -> startTrachealFormant, pc -> endTrachealFormant, alternatingSign);
 
-			if (! him) {
-				him = Data_copy (trachea.get());
+			if (him.peek() == 0) {
+				him.reset (Data_copy (trachea.peek()));
 			} else {
-				_Sounds_add_inline (him.get(), trachea.get());
+				_Sounds_add_inline (him.peek(), trachea.peek());
 			}
 		}
 
-		if (! him) {
-			him = Data_copy (me);
+		if (him.peek() == 0) {
+			him.reset (Data_copy (me));
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered in parallel.");
 	}
 }
 
-autoSound Sound_VocalTractGrid_CouplingGrid_filter (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
+Sound Sound_VocalTractGrid_CouplingGrid_filter (Sound me, VocalTractGrid thee, CouplingGrid coupling) {
 	return thy options -> filterModel == KlattGrid_FILTER_CASCADE ?
 	       Sound_VocalTractGrid_CouplingGrid_filter_cascade (me, thee, coupling) :
 	       Sound_VocalTractGrid_CouplingGrid_filter_parallel (me, thee, coupling);
@@ -1764,24 +1654,24 @@ autoSound Sound_VocalTractGrid_CouplingGrid_filter (Sound me, VocalTractGrid the
 
 /********************** CouplingGridPlayOptions **********************/
 
-Thing_implement (CouplingGridPlayOptions, Daata, 0);
+Thing_implement (CouplingGridPlayOptions, Data, 0);
 
 static void CouplingGridPlayOptions_setDefaults (CouplingGridPlayOptions me, CouplingGrid thee) {
 	my fadeFraction = 0.1;
 	my openglottis = 1;
-	my endTrachealFormant = MIN (thy tracheal_formants -> formants.size, thy tracheal_formants -> bandwidths.size);
+	my endTrachealFormant = MIN (thy tracheal_formants -> formants -> size, thy tracheal_formants -> bandwidths -> size);
 	my startTrachealFormant = 1;
-	my endTrachealAntiFormant = MIN (thy tracheal_antiformants -> formants.size, thy tracheal_antiformants -> bandwidths.size);
+	my endTrachealAntiFormant = MIN (thy tracheal_antiformants -> formants -> size, thy tracheal_antiformants -> bandwidths -> size);
 	my startTrachealAntiFormant = 1;
 	my startDeltaFormant = 1;
-	my endDeltaFormant = thy delta_formants -> formants.size;
+	my endDeltaFormant = thy delta_formants -> formants -> size;
 	my startDeltaBandwidth = 1;
-	my endDeltaBandwidth = thy delta_formants -> bandwidths.size;
+	my endDeltaBandwidth = thy delta_formants -> bandwidths -> size;
 }
 
-autoCouplingGridPlayOptions CouplingGridPlayOptions_create () {
+CouplingGridPlayOptions CouplingGridPlayOptions_create () {
 	try {
-		autoCouplingGridPlayOptions me = Thing_new (CouplingGridPlayOptions);
+		CouplingGridPlayOptions me = Thing_new (CouplingGridPlayOptions);
 		return me;
 	} catch (MelderError) {
 		Melder_throw (U"CouplingGridPlayOptions not created.");
@@ -1793,40 +1683,40 @@ autoCouplingGridPlayOptions CouplingGridPlayOptions_create () {
 Thing_implement (CouplingGrid, Function, 0);
 
 void structCouplingGrid :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	const char32 *in1 = U"  ", *in2 = U"    ", *in3 = U"      ";
 	MelderInfo_writeLine (in1, U"Time domain:");
 	MelderInfo_writeLine (in2, U"Start time:     ", xmin, U" seconds");
 	MelderInfo_writeLine (in2, U"End time:       ", xmax, U" seconds");
 	MelderInfo_writeLine (in2, U"Total duration: ", xmax - xmin, U" seconds");
 	MelderInfo_writeLine (in1, U"\nNumber of points in the TRACHEAL FORMANT tiers:");
-	FormantGrid_info (our tracheal_formants.get(), & tracheal_formants_amplitudes, in2, in3);
+	FormantGrid_info (tracheal_formants, tracheal_formants_amplitudes, in2, in3);
 	MelderInfo_writeLine (in1, U"\nNumber of points in the TRACHEAL ANTIFORMANT tiers:");
-	FormantGrid_info (our tracheal_antiformants.get(), nullptr, in2, in3);
+	FormantGrid_info (tracheal_antiformants, NULL, in2, in3);
 	MelderInfo_writeLine (in1, U"\nNumber of points in the DELTA FORMANT tiers:");
-	FormantGrid_info (our delta_formants.get(), nullptr, in2, in3);
+	FormantGrid_info (delta_formants, NULL, in2, in3);
 }
 
 void CouplingGrid_setNames (CouplingGrid me) {
-	Thing_setName (my tracheal_formants.get(), U"tracheal_formants");
-	Thing_setName (my tracheal_antiformants.get(), U"tracheal_antiformants");
-	//Thing_setName (my tracheal_formants_amplitudes.get(), U"tracheal_formants_amplitudes");
-	Thing_setName (my delta_formants.get(), U"delta_formants");
-	Thing_setName (my glottis.get(), U"glottis");
+	Thing_setName (my tracheal_formants, U"tracheal_formants");
+	Thing_setName (my tracheal_antiformants, U"tracheal_antiformants");
+	Thing_setName (my tracheal_formants_amplitudes, U"tracheal_formants_amplitudes");
+	Thing_setName (my delta_formants, U"delta_formants");
+	Thing_setName (my glottis, U"glottis");
 }
 
-autoCouplingGrid CouplingGrid_create (double tmin, double tmax, long numberOfTrachealFormants, long numberOfTrachealAntiFormants, long numberOfDeltaFormants) {
+CouplingGrid CouplingGrid_create (double tmin, double tmax, long numberOfTrachealFormants, long numberOfTrachealAntiFormants, long numberOfDeltaFormants) {
 	try {
 		autoCouplingGrid me = Thing_new (CouplingGrid);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my tracheal_formants = FormantGrid_createEmpty (tmin, tmax, numberOfTrachealFormants);
 		my tracheal_antiformants = FormantGrid_createEmpty (tmin, tmax, numberOfTrachealAntiFormants);
-		formantsAmplitudes_create (& my tracheal_formants_amplitudes, tmin, tmax, numberOfTrachealFormants);
+		my tracheal_formants_amplitudes = formantsAmplitudes_create (tmin, tmax, numberOfTrachealFormants);
 		my delta_formants = FormantGrid_createEmpty (tmin, tmax, numberOfDeltaFormants);
 		my glottis = PhonationTier_create (tmin, tmax);
 		my options = CouplingGridPlayOptions_create ();
-		CouplingGrid_setNames (me.get());
-		return me;
+		CouplingGrid_setNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"CouplingGrid not created.");
 	}
@@ -1836,26 +1726,28 @@ autoCouplingGrid CouplingGrid_create (double tmin, double tmax, long numberOfTra
 
 void FormantGrid_CouplingGrid_updateOpenPhases (FormantGrid me, CouplingGrid thee) {
 	try {
-		CouplingGridPlayOptions pc = thy options.get();
-		for (long itier = 1; itier <= thy delta_formants -> formants.size; itier ++) {
-			RealTier delta = thy delta_formants -> formants.at [itier];
-			if (itier <= my formants.size) {
-				if (delta -> points.size > 0) {
-					autoRealTier rt = RealTier_updateWithDelta (my formants.at [itier], delta, thy glottis.get(), pc -> fadeFraction);
-					if (! RealTier_valuesInRange (rt.get(), 0, NUMundefined)) {
+		CouplingGridPlayOptions pc = thy options;
+		for (long itier = 1; itier <= thy delta_formants -> formants -> size; itier++) {
+			RealTier delta = (RealTier) thy delta_formants -> formants -> item[itier];
+			if (itier <= my formants -> size) {
+				if (delta -> points -> size > 0) {
+					autoRealTier rt = RealTier_updateWithDelta ( (RealTier) my formants -> item[itier], delta, thy glottis, pc -> fadeFraction);
+					if (! RealTier_valuesInRange (rt.peek(), 0, NUMundefined)) {
 						Melder_throw (U"Formant ", itier, U" coupling gives negative values.");
 					}
-					my formants. replaceItem_move (rt.move(), itier);
+					forget ( ( (Thing *) my formants -> item) [itier]);
+					my formants -> item[itier] = rt.transfer();
 				}
 			}
-			delta = thy delta_formants -> bandwidths.at [itier];
-			if (itier <= my bandwidths.size) {
-				if (delta -> points.size > 0) {
-					autoRealTier rt = RealTier_updateWithDelta (my bandwidths.at [itier], delta, thy glottis.get(), pc -> fadeFraction);
-					if (! RealTier_valuesInRange (rt.get(), 0, NUMundefined)) {
+			delta = (RealTier) thy delta_formants -> bandwidths -> item[itier];
+			if (itier <= my bandwidths -> size) {
+				if (delta -> points -> size > 0) {
+					autoRealTier rt = RealTier_updateWithDelta ( (RealTier) my bandwidths -> item[itier], delta, thy glottis, pc -> fadeFraction);
+					if (! RealTier_valuesInRange (rt.peek(), 0, NUMundefined)) {
 						Melder_throw (U"Bandwidth ", itier, U" coupling gives negative values.");
 					}
-					my bandwidths. replaceItem_move (rt.move(), itier);
+					forget ( ( (Thing *) my bandwidths -> item) [itier]);
+					my bandwidths -> item[itier] = rt.transfer();
 				}
 			}
 		}
@@ -1864,19 +1756,126 @@ void FormantGrid_CouplingGrid_updateOpenPhases (FormantGrid me, CouplingGrid the
 	}
 }
 
+/************************ Sound & FormantGrid *********************************************/
+
+void _Sound_FormantGrid_filterWithOneFormant_inline (Sound me, thou, long iformant, int antiformant) {
+	thouart (FormantGrid);
+	if (iformant < 1 || iformant > thy formants -> size) {
+		Melder_warning (U"Formant ", iformant, U" does not exist.");
+		return;
+	}
+
+	RealTier ftier = (RealTier) thy formants -> item[iformant];
+	RealTier btier = (RealTier) thy bandwidths -> item[iformant];
+
+	if (ftier -> points -> size == 0 && btier -> points -> size == 0) {
+		return;
+	} else if (ftier -> points -> size == 0 || btier -> points -> size == 0) {
+		Melder_throw (U"Empty tier");
+	}
+
+	double nyquist = 0.5 / my dx;
+	autoFilter r =  antiformant != 0 ? (Filter) AntiResonator_create (my dx) : (Filter) Resonator_create (my dx, Resonator_NORMALISATION_H0);
+
+	for (long is = 1; is <= my nx; is++) {
+		double t = my x1 + (is - 1) * my dx;
+		double f = RealTier_getValueAtTime (ftier, t);
+		double b = RealTier_getValueAtTime (btier, t);
+		if (f <= nyquist && NUMdefined (b)) {
+			Filter_setFB (r.peek(), f, b);
+		}
+		my z[1][is] = Filter_getOutput (r.peek(), my z[1][is]);
+	}
+}
+
+void Sound_FormantGrid_filterWithOneAntiFormant_inline (Sound me, FormantGrid thee, long iformant) {
+	_Sound_FormantGrid_filterWithOneFormant_inline (me, thee, iformant, 1);
+}
+
+void Sound_FormantGrid_filterWithOneFormant_inline (Sound me, FormantGrid thee, long iformant) {
+	_Sound_FormantGrid_filterWithOneFormant_inline (me, thee, iformant, 0);
+}
+
+void Sound_FormantGrid_Intensities_filterWithOneFormant_inline (Sound me, FormantGrid thee, Ordered amplitudes, long iformant) {
+	try {
+		if (iformant < 1 || iformant > thy formants -> size) {
+			Melder_throw (U"Formant ", iformant, U" not defined. \nThis formant will not be used.");
+		}
+		double nyquist = 0.5 / my dx;
+
+		RealTier ftier = (RealTier) thy formants -> item[iformant];
+		RealTier btier = (RealTier) thy bandwidths -> item[iformant];
+		RealTier atier = (RealTier) amplitudes -> item[iformant];
+
+		if (ftier -> points -> size == 0 || btier -> points -> size == 0 || atier -> points -> size == 0) {
+			return;    // nothing to do
+		}
+
+		autoResonator r = Resonator_create (my dx, Resonator_NORMALISATION_HMAX);
+
+		for (long is = 1; is <= my nx; is++) {
+			double t = my x1 + (is - 1) * my dx;
+			double f = RealTier_getValueAtTime (ftier, t);
+			double b = RealTier_getValueAtTime (btier, t);
+			double a;
+			if (f <= nyquist && NUMdefined (b)) {
+				Filter_setFB (r.peek(), f, b);
+				a = RealTier_getValueAtTime (atier, t);
+				if (NUMdefined (a)) {
+					r -> a *= DB_to_A (a);
+				}
+			}
+			my z[1][is] = Filter_getOutput (r.peek(), my z[1][is]);
+		}
+	} catch (MelderError) {
+		Melder_throw (me, U": not filtered with one formant filter.");
+	}
+}
+
+Sound Sound_FormantGrid_Intensities_filter (Sound me, FormantGrid thee, Ordered amplitudes, long iformantb, long iformante, int alternatingSign) {
+	try {
+		if (iformantb > iformante) {
+			iformantb = 1;
+			iformante = thy formants -> size;
+		}
+		if (iformantb < 1 || iformantb > thy formants -> size ||
+		        iformante < 1 || iformante > thy formants -> size) {
+			Melder_throw (U"No such formant number.");
+		}
+
+		autoSound him = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
+
+		for (long iformant = iformantb; iformant <= iformante; iformant++) {
+			if (FormantGrid_Intensities_isFormantDefined (thee, amplitudes, iformant)) {
+				autoSound tmp = Data_copy (me);
+				Sound_FormantGrid_Intensities_filterWithOneFormant_inline (tmp.peek(), thee, amplitudes, iformant);
+				for (long is = 1; is <= my nx; is++) {
+					his z[1][is] += alternatingSign >= 0 ? tmp -> z[1][is] : - tmp -> z[1][is];
+				}
+				if (alternatingSign != 0) {
+					alternatingSign = -alternatingSign;
+				}
+			}
+		}
+		return him.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, U": not filtered.");
+	}
+}
+
 /********************** FricationGridPlayOptions **********************/
 
-Thing_implement (FricationGridPlayOptions, Daata, 0);
+Thing_implement (FricationGridPlayOptions, Data, 0);
 
 static void FricationGridPlayOptions_setDefaults (FricationGridPlayOptions me, FricationGrid thee) {
-	my endFricationFormant = MIN (thy frication_formants -> formants.size, thy frication_formants -> bandwidths.size);
+	my endFricationFormant = MIN (thy frication_formants -> formants -> size, thy frication_formants -> bandwidths -> size);
 	my startFricationFormant = 2;
 	my bypass = 1;
 }
 
-autoFricationGridPlayOptions FricationGridPlayOptions_create () {
+FricationGridPlayOptions FricationGridPlayOptions_create () {
 	try {
-		autoFricationGridPlayOptions me = Thing_new (FricationGridPlayOptions);
+		FricationGridPlayOptions me = Thing_new (FricationGridPlayOptions);
 		return me;
 	} catch (MelderError) {
 		Melder_throw (U"FricationGridPlayOptions not created.");
@@ -1886,39 +1885,39 @@ autoFricationGridPlayOptions FricationGridPlayOptions_create () {
 /************************ FricationGrid (& Sound) *********************************************/
 
 void structFricationGrid :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	const static char32 *in1 = U"  ", *in2 = U"    ", *in3 = U"      ";
 	MelderInfo_writeLine (in1, U"Time domain:");
 	MelderInfo_writeLine (in2, U"Start time:     ", xmin, U" seconds");
 	MelderInfo_writeLine (in2, U"End time:       ", xmax, U" seconds");
 	MelderInfo_writeLine (in2, U"Total duration: ", xmax - xmin, U" seconds");
 	MelderInfo_writeLine (in1, U"\nNumber of points in the FRICATION tiers:");
-	MelderInfo_writeLine (in2, U"fricationAmplitude:  ", fricationAmplitude -> points.size);
-	MelderInfo_writeLine (in2, U"bypass:              ", bypass -> points.size);
+	MelderInfo_writeLine (in2, U"fricationAmplitude:  ", fricationAmplitude -> points -> size);
+	MelderInfo_writeLine (in2, U"bypass:              ", bypass -> points -> size);
 	MelderInfo_writeLine (in1, U"\nNumber of points in the FRICATION FORMANT tiers:");
-	FormantGrid_info (our frication_formants.get(), & our frication_formants_amplitudes, in2, in3);
+	FormantGrid_info (frication_formants, frication_formants_amplitudes, in2, in3);
 }
 
 Thing_implement (FricationGrid, Function, 0);
 
 void FricationGrid_setNames (FricationGrid me) {
-	Thing_setName (my fricationAmplitude.get(), U"fricationAmplitude");
-	Thing_setName (my frication_formants.get(), U"frication_formants");
-	Thing_setName (my bypass.get(), U"bypass");
-	//Thing_setName (my frication_formants_amplitudes.get(), U"frication_formants_amplitudes");
+	Thing_setName (my fricationAmplitude, U"fricationAmplitude");
+	Thing_setName (my frication_formants, U"frication_formants");
+	Thing_setName (my bypass, U"bypass");
+	Thing_setName (my frication_formants_amplitudes, U"frication_formants_amplitudes");
 }
 
-autoFricationGrid FricationGrid_create (double tmin, double tmax, long numberOfFormants) {
+FricationGrid FricationGrid_create (double tmin, double tmax, long numberOfFormants) {
 	try {
 		autoFricationGrid me = Thing_new (FricationGrid);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my fricationAmplitude = IntensityTier_create (tmin, tmax);
 		my frication_formants = FormantGrid_createEmpty (tmin, tmax, numberOfFormants);
 		my bypass = IntensityTier_create (tmin, tmax);
-		formantsAmplitudes_create (& my frication_formants_amplitudes, tmin, tmax, numberOfFormants);
+		my frication_formants_amplitudes = formantsAmplitudes_create (tmin, tmax, numberOfFormants);
 		my options = FricationGridPlayOptions_create ();
-		FricationGrid_setNames (me.get());
-		return me;
+		FricationGrid_setNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FricationGrid not created.");
 	}
@@ -1926,16 +1925,16 @@ autoFricationGrid FricationGrid_create (double tmin, double tmax, long numberOfF
 
 static void FricationGrid_draw_inside (FricationGrid me, Graphics g, double xmin, double xmax, double ymin, double ymax, double dy, double *yout) {
 	long numberOfXSections = 5;
-	long numberOfFormants = my frication_formants -> formants.size;
-	long numberOfParts = numberOfFormants + ( numberOfFormants > 1 ? 0 : 1 ) ;   // 2..number + bypass
+	long numberOfFormants = my frication_formants -> formants -> size;
+	long numberOfParts = numberOfFormants + (numberOfFormants > 1 ? 0 : 1) ; // 2..number + bypass
 	// dum noise, connections, filter, connections, adder
-	double xw[6] = { 0.0, 2, 0.6, 1.5, 0.6, 0.5 }, xws[6];
-	double r, x1, y1, x2, y2, x3, xs, ys, ymid = (ymin + ymax) / 2.0;
+	double xw[6] = { 0, 2, 0.6, 1.5, 0.6, 0.5 }, xws[6];
+	double r, x1, y1, x2, y2, x3, xs, ys, ymid = (ymin + ymax) / 2;
 
 	rel_to_abs (xw, xws, numberOfXSections, xmax - xmin);
 
-	dy = dy < 0.0 ? 0.0 : dy;
-	dy = (ymax - ymin) / (numberOfParts * (1.0 + dy) - dy);
+	dy = dy < 0 ? 0 : dy;
+	dy = (ymax - ymin) / (numberOfParts * (1 + dy) - dy);
 
 	connections cp = connections_create (numberOfParts);
 	if (cp == 0) {
@@ -1943,22 +1942,16 @@ static void FricationGrid_draw_inside (FricationGrid me, Graphics g, double xmin
 	}
 
 	// section 1
-	x1 = xmin;
-	x2 = x1 + xw [1];
-	y1 = ymid - 0.5 * dy;
-	y2 = y1 + dy;
-	draw_oneSection (g, x1, x2, y1, y2, U"Frication", U"noise", nullptr);
+	x1 = xmin; x2 = x1 + xw[1]; y1 = ymid - 0.5 * dy; y2 = y1 + dy;
+	draw_oneSection (g, x1, x2, y1, y2, U"Frication", U"noise", NULL);
 
 	// section 2, horizontal line halfway, vertical line
-	x1 = x2;
-	x2 = x1 + xw [2] / 2.0;
+	x1 = x2; x2 = x1 + xw[2] / 2;
 	Graphics_line (g, x1, ymid, x2, ymid);
-	Graphics_line (g, x2, ymax - dy / 2, x2, ymin + dy / 2.0);
+	Graphics_line (g, x2, ymax - dy / 2, x2, ymin + dy / 2);
 	x3 = x2;
 	// final connection to section 2 , filters , connections to adder
-	x1 = xmin + xws [2];
-	x2 = x1 + xw [3];
-	y2 = ymax;
+	x1 = xmin + xws[2]; x2 = x1 + xw[3]; y2 = ymax;
 	autoMelderString fba;
 	for (long i = 1; i <= numberOfParts; i++) {
 		const char32 *fi = Melder_integer (i + 1);
@@ -1968,17 +1961,15 @@ static void FricationGrid_draw_inside (FricationGrid me, Graphics g, double xmin
 		} else {
 			MelderString_copy (&fba,  U"Bypass");
 		}
-		draw_oneSection (g, x1, x2, y1, y2, nullptr, fba.string, nullptr);
-		double ymidi = (y1 + y2) / 2.0;
+		draw_oneSection (g, x1, x2, y1, y2, NULL, fba.string, NULL);
+		double ymidi = (y1 + y2) / 2;
 		Graphics_line (g, x3, ymidi, x1, ymidi); // from noise to filter
-		cp -> x[i] = x2;
-		cp -> y[i] = ymidi;
+		cp -> x[i] = x2; cp -> y[i] = ymidi;
 		y2 = y1 - 0.5 * dy;
 	}
 
-	r = xw [5] / 2.0;
-	xs = xmax - r;
-	ys = ymid;
+	r = xw[5] / 2;
+	xs = xmax - r; ys = ymid;
 
 	if (numberOfParts > 1) {
 		alternatingSummer_drawConnections (g, xs, ys, r, cp, 1, 0.4);
@@ -1988,13 +1979,13 @@ static void FricationGrid_draw_inside (FricationGrid me, Graphics g, double xmin
 
 	connections_free (cp);
 
-	if (yout) {
+	if (yout != NULL) {
 		*yout = ys;
 	}
 }
 
 void FricationGrid_draw (FricationGrid me, Graphics g) {
-	double xmin = 0.0, xmax = 1.0, xmax2 = 0.9, ymin = 0.0, ymax = 1.0, dy = 0.5, yout;
+	double xmin = 0, xmax = 1, xmax2 = 0.9, ymin = 0, ymax = 1, dy = 0.5, yout;
 
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -2007,25 +1998,25 @@ void FricationGrid_draw (FricationGrid me, Graphics g) {
 	Graphics_unsetInner (g);
 }
 
-autoSound FricationGrid_to_Sound (FricationGrid me, double samplingFrequency) {
+Sound FricationGrid_to_Sound (FricationGrid me, double samplingFrequency) {
 	try {
 		autoSound thee = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
 
-		double lastval = 0.0;
-		for (long i = 1; i <= thy nx; i ++) {
+		double lastval = 0;
+		for (long i = 1; i <= thy nx; i++) {
 			double t = thy x1 + (i - 1) * thy dx;
-			double val = NUMrandomUniform (-1.0, 1.0);
-			double a = 0.0;
-			if (my fricationAmplitude -> points.size > 0) {
-				double dba = RealTier_getValueAtTime (my fricationAmplitude.get(), t);
-				a = ( NUMdefined (dba) ? DBSPL_to_A (dba) : 0.0 );
+			double val = NUMrandomUniform (-1, 1);
+			double a = 0;
+			if (my fricationAmplitude -> points -> size > 0) {
+				double dba = RealTier_getValueAtTime (my fricationAmplitude, t);
+				a = dba == NUMundefined ? 0 : DBSPL_to_A (dba);
 			}
 			lastval = (val += 0.75 * lastval); // TODO: soft low-pass coefficient must be Fs dependent!
 			thy z[1][i] = val * a;
 		}
 
-		autoSound him = Sound_FricationGrid_filter (thee.get(), me);
-		return him;
+		autoSound him = Sound_FricationGrid_filter (thee.peek(), me);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no frication Sound created.");
 	}
@@ -2033,36 +2024,36 @@ autoSound FricationGrid_to_Sound (FricationGrid me, double samplingFrequency) {
 
 /************************ Sound & FricationGrid *********************************************/
 
-autoSound Sound_FricationGrid_filter (Sound me, FricationGrid thee) {
+Sound Sound_FricationGrid_filter (Sound me, FricationGrid thee) {
 	try {
-		FricationGridPlayOptions pf = thy options.get();
-		autoSound him;
-		long numberOfFricationFormants = thy frication_formants -> formants.size;
+		FricationGridPlayOptions pf = thy options;
+		autoSound him = 0;
+		long numberOfFricationFormants = thy frication_formants -> formants -> size;
 
 		check_formants (numberOfFricationFormants, & (pf -> startFricationFormant), & (pf -> endFricationFormant));
 
 		if (pf -> endFricationFormant > 1) {
 			long startFricationFormant2 = pf -> startFricationFormant > 2 ? pf -> startFricationFormant : 2;
 			int alternatingSign = startFricationFormant2 % 2 == 0 ? 1 : -1; // 2 starts with positive sign
-			him = Sound_FormantGrid_Intensities_filter (me, thy frication_formants.get(), & thy frication_formants_amplitudes, startFricationFormant2, pf -> endFricationFormant, alternatingSign);
+			him.reset (Sound_FormantGrid_Intensities_filter (me, thy frication_formants, thy frication_formants_amplitudes, startFricationFormant2, pf -> endFricationFormant, alternatingSign));
 		}
 
-		if (! him) {
-			him = Data_copy (me);
+		if (him.peek() == 0) {
+			him.reset (Data_copy (me));
 		}
 
 		if (pf -> bypass) {
-			for (long is = 1; is <= his nx; is ++) {	// Bypass
+			for (long is = 1; is <= his nx; is++) {	// Bypass
 				double t = his x1 + (is - 1) * his dx;
 				double ab = 0;
-				if (thy bypass -> points.size > 0) {
-					double val = RealTier_getValueAtTime (thy bypass.get(), t);
+				if (thy bypass -> points -> size > 0) {
+					double val = RealTier_getValueAtTime (thy bypass, t);
 					ab = val == NUMundefined ? 0 : DB_to_A (val);
 				}
-				his z [1] [is] += my z [1] [is] * ab;
+				his z[1][is] += my z[1][is] * ab;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered by frication filter.");
 	}
@@ -2070,18 +2061,18 @@ autoSound Sound_FricationGrid_filter (Sound me, FricationGrid thee) {
 
 /********************** KlattGridPlayOptions **********************/
 
-Thing_implement (KlattGridPlayOptions, Daata, 0);
+Thing_implement (KlattGridPlayOptions, Data, 0);
 
 static void KlattGridPlayOptions_setDefaults (KlattGridPlayOptions me, KlattGrid thee) {
-	my samplingFrequency = 44100.0;
+	my samplingFrequency = 44100;
 	my scalePeak = 1;
 	my xmin = thy xmin;
 	my xmax = thy xmax;
 }
 
-autoKlattGridPlayOptions KlattGridPlayOptions_create () {
+KlattGridPlayOptions KlattGridPlayOptions_create () {
 	try {
-		autoKlattGridPlayOptions me = Thing_new (KlattGridPlayOptions);
+		KlattGridPlayOptions me = Thing_new (KlattGridPlayOptions);
 		return me;
 	} catch (MelderError) {
 		Melder_throw (U"KlattGridPlayOptions not created.");
@@ -2089,11 +2080,11 @@ autoKlattGridPlayOptions KlattGridPlayOptions_create () {
 }
 
 void KlattGrid_setDefaultPlayOptions (KlattGrid me) {
-	KlattGridPlayOptions_setDefaults (my options.get(), me);
-	PhonationGridPlayOptions_setDefaults (my phonation -> options.get());
-	VocalTractGridPlayOptions_setDefaults (my vocalTract -> options.get(), my vocalTract.get());
-	CouplingGridPlayOptions_setDefaults (my coupling -> options.get(), my coupling.get());
-	FricationGridPlayOptions_setDefaults (my frication -> options.get(), my frication.get());
+	KlattGridPlayOptions_setDefaults (my options, me);
+	PhonationGridPlayOptions_setDefaults (my phonation -> options);
+	VocalTractGridPlayOptions_setDefaults (my vocalTract -> options, my vocalTract);
+	CouplingGridPlayOptions_setDefaults (my coupling -> options, my coupling);
+	FricationGridPlayOptions_setDefaults (my frication -> options, my frication);
 }
 
 /************************ KlattGrid *********************************************/
@@ -2101,7 +2092,7 @@ void KlattGrid_setDefaultPlayOptions (KlattGrid me) {
 Thing_implement (KlattGrid, Function, 0);
 
 void structKlattGrid :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time:     ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time:       ", xmax, U" seconds");
@@ -2117,20 +2108,20 @@ void structKlattGrid :: v_info () {
 }
 
 void KlattGrid_setNames (KlattGrid me) {
-	Thing_setName (my phonation.get(), U"phonation");
-	Thing_setName (my vocalTract.get(), U"vocalTract");
-	Thing_setName (my coupling.get(), U"coupling");
-	Thing_setName (my frication.get(), U"frication");
-	Thing_setName (my gain.get(), U"gain");
+	Thing_setName (my phonation, U"phonation");
+	Thing_setName (my vocalTract, U"vocalTract");
+	Thing_setName (my coupling, U"coupling");
+	Thing_setName (my frication, U"frication");
+	Thing_setName (my gain, U"gain");
 }
 
-autoKlattGrid KlattGrid_create (double tmin, double tmax, long numberOfFormants,
+KlattGrid KlattGrid_create (double tmin, double tmax, long numberOfFormants,
                             long numberOfNasalFormants,	long numberOfNasalAntiFormants,
                             long numberOfTrachealFormants, long numberOfTrachealAntiFormants,
                             long numberOfFricationFormants, long numberOfDeltaFormants) {
 	try {
 		autoKlattGrid me = Thing_new (KlattGrid);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my phonation = PhonationGrid_create (tmin, tmax);
 		my vocalTract = VocalTractGrid_create (tmin, tmax, numberOfFormants, numberOfNasalFormants, numberOfNasalAntiFormants);
 		my coupling = CouplingGrid_create (tmin, tmax, numberOfTrachealFormants,  numberOfTrachealAntiFormants, numberOfDeltaFormants);
@@ -2138,36 +2129,34 @@ autoKlattGrid KlattGrid_create (double tmin, double tmax, long numberOfFormants,
 		my gain = IntensityTier_create (tmin, tmax);
 		my options = KlattGridPlayOptions_create ();
 
-		KlattGrid_setDefaultPlayOptions (me.get());
-		KlattGrid_setNames (me.get());
-		return me;
+		KlattGrid_setDefaultPlayOptions (me.peek());
+		KlattGrid_setNames (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid not created.");
 	}
 }
 
-autoKlattGrid KlattGrid_createExample () {
+KlattGrid KlattGrid_createExample () {
 	try {
 		autoKlattTable thee = KlattTable_createExample ();
-		autoKlattGrid me = KlattTable_to_KlattGrid (thee.get(), 0.005);
-		return me;
+		autoKlattGrid me = KlattTable_to_KlattGrid (thee.peek(), 0.005);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid example not created.");
 	};
 }
 
-// y is the height in units of the height of one section,
-// y1 is the height from the top to the split between the uppper, non-diffed, and lower diffed part
+// y is the heigth in units of the height of one section,
+// y1 is the heigth from the top to the split between the uppper, non-diffed, and lower diffed part
 static void _KlattGrid_queryParallelSplit (KlattGrid me, double dy, double *y, double *y1) {
-	long ny = my vocalTract -> nasal_formants -> formants.size +
-		my vocalTract -> oral_formants -> formants.size + my coupling -> tracheal_formants -> formants.size;
-	long n1 = my vocalTract -> nasal_formants -> formants.size +
-		( my vocalTract -> oral_formants -> formants.size > 0 ? 1 : 0 );
+	long ny = my vocalTract -> nasal_formants -> formants -> size + my vocalTract -> oral_formants -> formants -> size + my coupling -> tracheal_formants -> formants -> size;
+	long n1 = my vocalTract -> nasal_formants -> formants -> size + (my vocalTract -> oral_formants -> formants -> size > 0 ? 1 : 0);
 
 	long n2 = ny - n1;
 	if (ny == 0) {
-		*y = 0.0;
-		*y1 = 0.0;
+		*y = 0;
+		*y1 = 0;
 		return;
 	}
 
@@ -2211,45 +2200,39 @@ static void getYpositions (double h1, double h2, double h3, double h4, double h5
 	     x      x      x      x
 	*/
 	double h; // h12_min = 0.3; not yet
-	double h13 = ( h1 > h3 ? h1 : h3 ); // baselines are now equal
+	double h13 = h1 > h3 ? h1 : h3; // baselines are now equal
 	if (h2 >= h4) {
 		h = h13 + h2 + h5;
 	} else { // h2 < h4
 		double maximumOverlap3 = fractionOverlap * h5;
-		if (maximumOverlap3 < h1 + h2) {
-			maximumOverlap3 = 0.0;
-		} else if (maximumOverlap3 > h4 - h2) {
+		if (maximumOverlap3 < (h1 + h2)) {
+			maximumOverlap3 = 0;
+		} else if (maximumOverlap3 > (h4 - h2)) {
 			maximumOverlap3 = h4 - h2;
 		}
 		h = h13 + h4 + h5 - maximumOverlap3;
 	}
-	*dy = 1.0 / (1.1 * h);
-	*ymin1 = 1.0 - (h13 + h2) * *dy;
-	*ymax1 = *ymin1 + (h1 + h2) * *dy;
-	*ymin2 = 1.0 - (h13 + h4) * *dy;
-	*ymax2 = *ymin2 + (h3 + h4) * *dy;
-	*ymin3 = 0.0;
-	*ymax3 = h5 * *dy;
+	*dy = 1 / (1.1 * h);
+	*ymin1 = 1 - (h13 + h2) * *dy; *ymax1 = *ymin1 + (h1 + h2) * *dy;
+	*ymin2 = 1 - (h13 + h4) * *dy; *ymax2 = *ymin2 + (h3 + h4) * *dy;
+	*ymin3 = 0;  *ymax3 = h5 * *dy;
 }
 
 void KlattGrid_drawVocalTract (KlattGrid me, Graphics g, int filterModel, int withTrachea) {
-	VocalTractGrid_CouplingGrid_draw (my vocalTract.get(), withTrachea ? my coupling.get() : nullptr, g, filterModel);
+	VocalTractGrid_CouplingGrid_draw (my vocalTract, withTrachea ? my coupling : NULL, g, filterModel);
 }
 
 void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 	double xs1, xs2, ys1, ys2, xf1, xf2, yf1, yf2;
 	double xp1, xp2, yp1, yp2, xc1, xc2, yc1, yc2;
 	double dy, r, xs, ys;
-	double xmin = 0.0, xmax2 = 0.90, xmax3 = 0.95, xmax = 1.0, ymin = 0.0, ymax = 1.0;
+	double xmin = 0, xmax2 = 0.90, xmax3 = 0.95, xmax = 1, ymin = 0, ymax = 1;
 	double xws[6];
 	double height_phonation = 0.3;
 	double dy_phonation = 0.5, dy_vocalTract_p = 0.5, dy_frication = 0.5;
 
-	connections tf;
-	try {
-		tf = connections_create (2);
-	} catch (MelderError) {
-		Melder_clearError ();
+	connections tf = connections_create (2);
+	if (tf == 0) {
 		return;
 	}
 
@@ -2259,9 +2242,9 @@ void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 	Graphics_setLineWidth (g, 2);
 
-	long nff = my frication -> frication_formants -> formants.size - 1 + 1;
-	double yh_frication = ( nff > 0 ? nff + (nff - 1) * dy_frication : 1.0 );
-	double yh_phonation = 1.0 + dy_phonation + 1.0;
+	long nff = my frication -> frication_formants -> formants -> size - 1 + 1;
+	double yh_frication = nff > 0 ? nff + (nff - 1) * dy_frication : 1;
+	double yh_phonation = 1 + dy_phonation + 1;
 	double yout_phonation, yout_frication;
 	dy = height_phonation / yh_phonation; // 1 vertical unit in source section height units
 
@@ -2281,36 +2264,27 @@ void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 		}
 		dy = height_phonation / yh_phonation;
 
-		xs1 = xmin;
-		xs2 = xs1 + xw [1];
-		ys2 = ymax;
-		ys1 = ys2 - height_phonation;
-		PhonationGrid_draw_inside (my phonation.get(), g, xs1, xs2, ys1, ys2, dy_phonation, &yout_phonation);
+		xs1 = xmin; xs2 = xs1 + xw[1]; ys2 = ymax; ys1 = ys2 - height_phonation;
+		PhonationGrid_draw_inside (my phonation, g, xs1, xs2, ys1, ys2, dy_phonation, &yout_phonation);
 
 		// units in cascade have same heigth as units in source part.
 
-		xc1 = xmin + xws [2];
-		xc2 = xc1 + xw [3];
-		yc2 = yout_phonation + dy / 2.0;
-		yc1 = yc2 - dy;
-		VocalTractGrid_CouplingGrid_drawCascade_inline (my vocalTract.get(), my coupling.get(), g, xc1, xc2, yc1, yc2, &yin_vocalTract_c, &yout_vocalTract_c);
+		xc1 = xmin + xws[2]; xc2 = xc1 + xw[3];
+		yc2 = yout_phonation + dy / 2; yc1 = yc2 - dy;
+		VocalTractGrid_CouplingGrid_drawCascade_inline (my vocalTract, my coupling, g, xc1, xc2, yc1, yc2, &yin_vocalTract_c, &yout_vocalTract_c);
 
-		tf -> x[1] = xc2;
-		tf -> y[1] = yout_vocalTract_c;
+		tf -> x[1] = xc2; tf -> y[1] = yout_vocalTract_c;
 
 		Graphics_line (g, xs2, yout_phonation, xc1, yin_vocalTract_c);
 
-		xf1 = xmin + xws [2];
-		xf2 = xf1 + xw [3];
-		yf2 = ymax - height_phonation;
-		yf1 = 0.0;
+		xf1 = xmin + xws[2]; xf2 = xf1 + xw[3]; yf2 = ymax - height_phonation; yf1 = 0;
 
-		FricationGrid_draw_inside (my frication.get(), g, xf1, xf2, yf1, yf2, dy_frication, &yout_frication);
+		FricationGrid_draw_inside (my frication, g, xf1, xf2, yf1, yf2, dy_frication, &yout_frication);
 	} else { // Parallel
 		// source connection tract connection, out
 		//     frication
 		double yf_parallel, yh_parallel, yh_overlap = 0.3, yin_vocalTract_p, yout_vocalTract_p;
-		double xw[6] = { 0.0, 1.75, 0.125, 3.0, 0.25, 0.125 };
+		double xw[6] = { 0, 1.75, 0.125, 3, 0.25, 0.125 };
 
 		rel_to_abs (xw, xws, 5, xmax2 - xmin);
 
@@ -2319,9 +2293,9 @@ void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 		// connector line from source to parallel has to be horizontal
 		// determine y's of source and parallel section
 		_KlattGrid_queryParallelSplit (me, dy_vocalTract_p, &yh_parallel, &yf_parallel);
-		if (yh_parallel == 0.0) {
+		if (yh_parallel == 0) {
 			yh_parallel = yh_phonation;
-			yf_parallel = yh_parallel / 2.0;
+			yf_parallel = yh_parallel / 2;
 			yh_overlap = -0.1;
 		}
 
@@ -2339,33 +2313,27 @@ void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 		// source, tract, frication
 		xs1 = xmin; xs2 = xs1 + xw[1];
 
-		double h1 = yh_phonation / 2.0, h2 = h1, h3 = yf_parallel, h4 = yh_parallel - h3, h5 = yh_frication;
+		double h1 = yh_phonation / 2, h2 = h1, h3 = yf_parallel, h4 = yh_parallel - h3, h5 = yh_frication;
 		getYpositions (h1, h2, h3, h4, h5, yh_overlap, &dy, &ys1, &ys2, &yp1, &yp2, &yf1, &yf2);
 
-		PhonationGrid_draw_inside (my phonation.get(), g, xs1, xs2, ys1, ys2, dy_phonation, &yout_phonation);
+		PhonationGrid_draw_inside (my phonation, g, xs1, xs2, ys1, ys2, dy_phonation, &yout_phonation);
 
-		xp1 = xmin + xws [2];
-		xp2 = xp1 + xw [3];
-		VocalTractGrid_CouplingGrid_drawParallel_inline (my vocalTract.get(), my coupling.get(), g, xp1, xp2, yp1, yp2, dy_vocalTract_p, &yin_vocalTract_p, &yout_vocalTract_p);
+		xp1 = xmin + xws[2]; xp2 = xp1 + xw[3];
+		VocalTractGrid_CouplingGrid_drawParallel_inline (my vocalTract, my coupling, g, xp1, xp2, yp1, yp2, dy_vocalTract_p, &yin_vocalTract_p, &yout_vocalTract_p);
 
-		tf -> x[1] = xp2;
-		tf -> y[1] = yout_vocalTract_p;
+		tf -> x[1] = xp2; tf -> y[1] = yout_vocalTract_p;
 
 		Graphics_line (g, xs2, yout_phonation, xp1, yin_vocalTract_p);
 
-		xf1 = xmin /* + 0.5 * xws [1] */;
-		xf2 = xf1 + 0.55 * (xw [2] + xws [3]);
+		xf1 = xmin /*+ 0.5 * xws[1]*/; xf2 = xf1 + 0.55 * (xw[2] + xws[3]);
 
-		FricationGrid_draw_inside (my frication.get(), g, xf1, xf2, yf1, yf2, dy_frication, &yout_frication);
+		FricationGrid_draw_inside (my frication, g, xf1, xf2, yf1, yf2, dy_frication, &yout_frication);
 	}
 
-	tf -> x[2] = xf2;
-	tf -> y[2] = yout_frication;
-	r = (xmax3 - xmax2) / 2.0;
-	xs = xmax2 + r / 2.0;
-	ys = (ymax - ymin) / 2.0;
+	tf -> x[2] = xf2; tf -> y[2] = yout_frication;
+	r = (xmax3 - xmax2) / 2; xs = xmax2 + r / 2; ys = (ymax - ymin) / 2;
 
-	summer_drawConnections (g, xs, ys, r, tf, true, 0.6);
+	summer_drawConnections (g, xs, ys, r, tf, 1, 0.6);
 
 	Graphics_arrow (g, xs + r, ys, xmax, ys);
 
@@ -2377,18 +2345,19 @@ void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel) {
 
 #define PhonationGrid_QUERY_ADD_REMOVE_EXTRACT_REPLACE(Name,name,tierType) \
 double KlattGrid_get##Name##AtTime (KlattGrid me, double t) \
-{ return RealTier_getValueAtTime (my phonation -> name.get(), t); } \
+{ return RealTier_getValueAtTime ((RealTier) my phonation -> name, t); } \
 void KlattGrid_add##Name##Point (KlattGrid me, double t, double value) \
-{ RealTier_addPoint (my phonation -> name.get(), t, value);} \
+{ RealTier_addPoint ((RealTier) my phonation -> name, t, value);} \
 void KlattGrid_remove##Name##Points (KlattGrid me, double t1, double t2) \
-{ AnyTier_removePointsBetween (my phonation -> name.get()->asAnyTier(), t1, t2); } \
-auto##tierType KlattGrid_extract##Name##Tier (KlattGrid me) \
-{ return Data_copy (my phonation -> name.get()); } \
+{ AnyTier_removePointsBetween ((RealTier) my phonation -> name, t1, t2); } \
+tierType KlattGrid_extract##Name##Tier (KlattGrid me) \
+{ return Data_copy ((tierType) my phonation -> name); } \
 void KlattGrid_replace##Name##Tier (KlattGrid me, tierType thee) \
 { try {\
 	if (my xmin != thy xmin || my xmax != thy xmax) Melder_throw (U"Domains must be equal"); \
-	auto##tierType any = Data_copy (thee); \
-	my phonation -> name = any.move(); \
+	auto##tierType any = Data_copy ((tierType) thee); \
+	forget (my phonation -> name); \
+	my phonation -> name = any.transfer(); \
 	} catch (MelderError) { Melder_throw (me, U": tier not replaced."); } \
 }
 
@@ -2405,38 +2374,38 @@ PhonationGrid_QUERY_ADD_REMOVE_EXTRACT_REPLACE (SpectralTilt, spectralTilt, Inte
 PhonationGrid_QUERY_ADD_REMOVE_EXTRACT_REPLACE (AspirationAmplitude, aspirationAmplitude, IntensityTier)
 PhonationGrid_QUERY_ADD_REMOVE_EXTRACT_REPLACE (BreathinessAmplitude, breathinessAmplitude, IntensityTier)
 
-autoFormantGrid* KlattGrid_getAddressOfFormantGrid (KlattGrid me, int formantType) {
-	return formantType == KlattGrid_ORAL_FORMANTS ? & my vocalTract -> oral_formants :
-	       formantType == KlattGrid_NASAL_FORMANTS ? & my vocalTract -> nasal_formants :
-	       formantType == KlattGrid_FRICATION_FORMANTS ? & my frication -> frication_formants :
-	       formantType == KlattGrid_TRACHEAL_FORMANTS ? & my coupling -> tracheal_formants :
-	       formantType == KlattGrid_NASAL_ANTIFORMANTS ? & my vocalTract -> nasal_antiformants :
-	       formantType == KlattGrid_TRACHEAL_ANTIFORMANTS ? & my coupling -> tracheal_antiformants :
-	       formantType == KlattGrid_DELTA_FORMANTS ? & my coupling -> delta_formants : nullptr;
+FormantGrid *KlattGrid_getAddressOfFormantGrid (KlattGrid me, int formantType) {
+	return formantType == KlattGrid_ORAL_FORMANTS ? & (my vocalTract -> oral_formants) :
+	       formantType == KlattGrid_NASAL_FORMANTS ? & (my vocalTract -> nasal_formants) :
+	       formantType == KlattGrid_FRICATION_FORMANTS ? & (my frication -> frication_formants) :
+	       formantType == KlattGrid_TRACHEAL_FORMANTS ? & (my coupling -> tracheal_formants) :
+	       formantType == KlattGrid_NASAL_ANTIFORMANTS ? & (my vocalTract -> nasal_antiformants) :
+	       formantType == KlattGrid_TRACHEAL_ANTIFORMANTS ? & (my coupling -> tracheal_antiformants) :
+	       formantType == KlattGrid_DELTA_FORMANTS ? & (my coupling -> delta_formants) : 0;
 }
 
-OrderedOf<structIntensityTier>* KlattGrid_getAddressOfAmplitudes (KlattGrid me, int formantType) {
-	return formantType == KlattGrid_ORAL_FORMANTS ? & my vocalTract -> oral_formants_amplitudes :
-	       formantType == KlattGrid_NASAL_FORMANTS ? & my vocalTract -> nasal_formants_amplitudes :
-	       formantType == KlattGrid_FRICATION_FORMANTS ? & my frication -> frication_formants_amplitudes :
-	       formantType == KlattGrid_TRACHEAL_FORMANTS ? & my coupling -> tracheal_formants_amplitudes : nullptr;
+Ordered *KlattGrid_getAddressOfAmplitudes (KlattGrid me, int formantType) {
+	return formantType == KlattGrid_ORAL_FORMANTS ? & (my vocalTract -> oral_formants_amplitudes) :
+	       formantType == KlattGrid_NASAL_FORMANTS ? & (my vocalTract -> nasal_formants_amplitudes) :
+	       formantType == KlattGrid_FRICATION_FORMANTS ? & (my frication -> frication_formants_amplitudes) :
+	       formantType == KlattGrid_TRACHEAL_FORMANTS ? & (my coupling -> tracheal_formants_amplitudes) : NULL;
 }
 
 #define KlattGrid_QUERY_ADD_REMOVE(Name) \
 double KlattGrid_get##Name##AtTime (KlattGrid me, int formantType, long iformant, double t) \
 { \
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
-	return FormantGrid_get##Name##AtTime (fg->get(), iformant, t); \
+	FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
+	return FormantGrid_get##Name##AtTime ((FormantGrid) *fg, iformant, t); \
 } \
 void KlattGrid_add##Name##Point (KlattGrid me, int formantType, long iformant, double t, double value) \
 { \
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
-	FormantGrid_add##Name##Point (fg->get(), iformant, t, value); \
+	FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
+	FormantGrid_add##Name##Point ((FormantGrid) *fg, iformant, t, value); \
 } \
 void KlattGrid_remove##Name##Points (KlattGrid me, int formantType, long iformant, double t1, double t2) \
 { \
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
-	FormantGrid_remove##Name##PointsBetween (fg->get(), iformant, t1, t2); \
+	FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType); \
+	FormantGrid_remove##Name##PointsBetween ((FormantGrid) *fg, iformant, t1, t2); \
 }
 
 // 6 functions
@@ -2444,28 +2413,28 @@ KlattGrid_QUERY_ADD_REMOVE (Formant)
 KlattGrid_QUERY_ADD_REMOVE (Bandwidth)
 
 void KlattGrid_formula_frequencies (KlattGrid me, int formantType, const char32 *expression, Interpreter interpreter) {
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-	FormantGrid_formula_frequencies (fg->get(), expression, interpreter, nullptr);
+	FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
+	FormantGrid_formula_frequencies (*fg, expression, interpreter, 0);
 }
 
 void KlattGrid_formula_bandwidths (KlattGrid me, int formantType, const char32 *expression, Interpreter interpreter) {
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-	FormantGrid_formula_bandwidths (fg->get(), expression, interpreter, nullptr);
+	FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
+	FormantGrid_formula_bandwidths (*fg, expression, interpreter, 0);
 }
 
 void KlattGrid_formula_amplitudes (KlattGrid me, int formantType, const char32 *expression, Interpreter interpreter) {
 	try {
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		for (long irow = 1; irow <= ordered->size; irow ++) {
-			IntensityTier amplitudes = ordered->at [irow];
-			Formula_compile (interpreter, amplitudes, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-			for (long icol = 1; icol <= amplitudes -> points.size; icol ++) {
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		Formula_compile (interpreter, *ordered, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		for (long irow = 1; irow <= (*ordered) -> size; irow++) {
+			RealTier amplitudes = (RealTier) (*ordered) -> item[irow];
+			for (long icol = 1; icol <= amplitudes -> points -> size; icol++) {
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
 				if (result. result.numericResult == NUMundefined) {
 					Melder_throw (U"Cannot put an undefined value into the tier.\nFormula not finished.");
 				}
-				amplitudes -> points.at [icol] -> value = result. result.numericResult;
+				( (RealPoint) amplitudes -> points -> item [icol]) -> value = result. result.numericResult;
 			}
 		}
 	} catch (MelderError) {
@@ -2474,37 +2443,37 @@ void KlattGrid_formula_amplitudes (KlattGrid me, int formantType, const char32 *
 }
 
 double KlattGrid_getAmplitudeAtTime (KlattGrid me, int formantType, long iformant, double t) {
-	OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-	if (iformant < 0 || iformant > ordered->size) {
+	Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+	if (iformant < 0 || iformant > (*ordered) -> size) {
 		return NUMundefined;
 	}
-	return RealTier_getValueAtTime (ordered->at [iformant], t);
+	return RealTier_getValueAtTime ( (RealTier) (*ordered) -> item[iformant], t);
 }
 
 void KlattGrid_addAmplitudePoint (KlattGrid me, int formantType, long iformant, double t, double value) {
-	OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-	if (iformant < 0 || iformant > ordered->size) {
+	Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+	if (iformant < 0 || iformant > (*ordered) -> size) {
 		Melder_throw (U"Formant amplitude tier ", iformant, U"does not exist.");
 	}
-	RealTier_addPoint (ordered->at [iformant], t, value);
+	RealTier_addPoint ( (RealTier) (*ordered) -> item[iformant], t, value);
 }
 
 void KlattGrid_removeAmplitudePoints (KlattGrid me, int formantType, long iformant, double t1, double t2) {
-	OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-	if (iformant < 0 || iformant > ordered->size) {
+	Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+	if (iformant < 0 || iformant > (*ordered) ->size) {
 		return;
 	}
-	AnyTier_removePointsBetween (ordered->at [iformant]->asAnyTier(), t1, t2);
+	AnyTier_removePointsBetween ( (*ordered) -> item[iformant], t1, t2);
 }
 
-autoIntensityTier KlattGrid_extractAmplitudeTier (KlattGrid me, int formantType, long iformant) {
+IntensityTier KlattGrid_extractAmplitudeTier (KlattGrid me, int formantType, long iformant) {
 	try {
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		if (iformant < 0 || iformant > ordered->size) {
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		if (iformant < 0 || iformant > (*ordered) ->size) {
 			Melder_throw (U"Formant amplitude tier ", iformant, U" does not exist.");
 		}
-		autoIntensityTier thee = Data_copy (ordered->at [iformant]);
-		return thee;
+		autoIntensityTier thee = Data_copy ( (IntensityTier) (*ordered) -> item[iformant]);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no IntensityTier extracted.");
 	}
@@ -2515,22 +2484,23 @@ void KlattGrid_replaceAmplitudeTier (KlattGrid me, int formantType, long iforman
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal");
 		}
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		if (iformant < 0 || iformant > ordered->size) {
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		if (iformant < 0 || iformant > (*ordered) -> size) {
 			Melder_throw (U"Formant amplitude tier ", iformant, U" does not exist.");
 		}
 		autoIntensityTier any = Data_copy (thee);
-		ordered -> replaceItem_move (any.move(), iformant);
+		forget ( ( (Thing *) (*ordered) -> item) [iformant]);
+		(*ordered) -> item[iformant] = any.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no ampitude tier replaced.");
 	}
 }
 
-autoFormantGrid KlattGrid_extractFormantGrid (KlattGrid me, int formantType) {
+FormantGrid KlattGrid_extractFormantGrid (KlattGrid me, int formantType) {
 	try {
-		autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-		autoFormantGrid thee = Data_copy (fg->get());
-		return thee;
+		FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+		autoFormantGrid thee = Data_copy (*fg);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no FormantGrid extracted.");
 	}
@@ -2541,8 +2511,10 @@ void KlattGrid_replaceFormantGrid (KlattGrid me, int formantType, FormantGrid th
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal");
 		}
-		autoFormantGrid *fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-		*fg = Data_copy (thee);
+		FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+		autoFormantGrid any = Data_copy (thee);
+		forget (*fg);
+		*fg = any.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no FormantGrid replaced.");
 	}
@@ -2553,13 +2525,13 @@ void KlattGrid_addFormantAmplitudeTier (KlattGrid me, int formantType, long posi
 		if (formantType == KlattGrid_NASAL_ANTIFORMANTS || formantType == KlattGrid_TRACHEAL_ANTIFORMANTS || formantType == KlattGrid_DELTA_FORMANTS) {
 			Melder_throw (U"Cannot add amplitude tier to this formant type.");
 		}
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		long noa = ordered->size;
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		long noa = (*ordered) -> size;
 		if (position > noa || position < 1) {
 			position = noa + 1;
 		}
-		autoIntensityTier tier = IntensityTier_create (my xmin, my xmax);
-		ordered -> addItemAtPosition_move (tier.move(), position);
+		autoIntensityTier it = IntensityTier_create (my xmin, my xmax);
+		Ordered_addItemPos ( (*ordered), it.transfer(), position);
 	} catch (MelderError) {
 		Melder_throw (me, U": no formant amplitude tier added.");
 	}
@@ -2570,9 +2542,9 @@ void KlattGrid_removeFormantAmplitudeTier (KlattGrid me, int formantType, long p
 		if (formantType == KlattGrid_NASAL_ANTIFORMANTS || formantType == KlattGrid_TRACHEAL_ANTIFORMANTS || formantType == KlattGrid_DELTA_FORMANTS) {
 			Melder_throw (U"Cannot remove amplitude tier from this formant type.");
 		}
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		if (position > 0 && position <= ordered->size) {
-			ordered -> removeItem (position);
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		if (position > 0 && position <= (*ordered) -> size) {
+			Collection_removeItem (*ordered, position);
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no formant amplitude tier removed.");
@@ -2580,36 +2552,36 @@ void KlattGrid_removeFormantAmplitudeTier (KlattGrid me, int formantType, long p
 }
 
 // The following two routines are deprecated.
-// We do this in two separate steps now
+// We do this intwo separate steps now
 void KlattGrid_addFormant (KlattGrid me, int formantType, long position) {
 	try {
-		autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-		if (! *fg) {
-			Melder_throw (U"Formant type ", formantType, U" does not exist.");
+		FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+		if (*fg == 0) {
+			Melder_throw (U"Formant type ",  formantType, U" does not exist.");
 		}
 
-		long nof = (*fg) -> formants.size;
+		long nof = (*fg) -> formants -> size;
 		if (position > nof || position < 1) {
 			position = nof + 1;
 		}
 
 		if (formantType == KlattGrid_NASAL_ANTIFORMANTS || formantType == KlattGrid_TRACHEAL_ANTIFORMANTS ||
 		        formantType == KlattGrid_DELTA_FORMANTS) {
-			FormantGrid_addFormantAndBandwidthTiers (fg->get(), position);
+			FormantGrid_addFormantAndBandwidthTiers (*fg, position);
 			return;
 		}
 
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		long noa = ordered->size;
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		long noa = (*ordered) -> size;
 		if (nof != noa) {
 			Melder_throw (U"The number of formants (",  nof, U") and the number of amplitudes (", noa, U") must be equal.");
 		}
-		FormantGrid_addFormantAndBandwidthTiers (fg->get(), position);
+		FormantGrid_addFormantAndBandwidthTiers (*fg, position);
 		try {
-			autoIntensityTier tier = IntensityTier_create (my xmin, my xmax);
-			ordered -> addItemAtPosition_move (tier.move(), position);
+			autoIntensityTier it = IntensityTier_create (my xmin, my xmax);
+			Ordered_addItemPos ( (*ordered), it.transfer(), position);
 		} catch (MelderError) { // restore original
-			FormantGrid_removeFormantAndBandwidthTiers (fg->get(), position);
+			FormantGrid_removeFormantAndBandwidthTiers (*fg, position);
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no formant added.");
@@ -2617,19 +2589,19 @@ void KlattGrid_addFormant (KlattGrid me, int formantType, long position) {
 }
 
 void KlattGrid_removeFormant (KlattGrid me, int formantType, long position) {
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-	long nof = (*fg) -> formants.size;
+	FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+	long nof = (*fg) -> formants -> size;
 	if (formantType == KlattGrid_NASAL_ANTIFORMANTS || formantType == KlattGrid_TRACHEAL_ANTIFORMANTS ||
         formantType == KlattGrid_DELTA_FORMANTS) {
 		if (position < 1 || position > nof) {
 			return;
 		}
-		FormantGrid_removeFormantAndBandwidthTiers (fg->get(), position);
+		FormantGrid_removeFormantAndBandwidthTiers (*fg, position);
 	} else { 
 		// oral & nasal & tracheal formants can have amplitudes
 		// only remove a formant and its amplitude tier if number of formants and amplitudes are the same
-		OrderedOf<structIntensityTier>* ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
-		long noa = ordered->size;
+		Ordered *ordered = KlattGrid_getAddressOfAmplitudes (me, formantType);
+		long noa = (*ordered) -> size;
 		if (position < 1 || position > nof || position > noa) {
 			if (nof != noa) {
 				Melder_warning (U"The number of formant tiers (", nof, U") and the number of amplitude tiers (",
@@ -2637,45 +2609,45 @@ void KlattGrid_removeFormant (KlattGrid me, int formantType, long position) {
 			}
 			return;
 		}
-		FormantGrid_removeFormantAndBandwidthTiers (fg->get(), position);
-		ordered -> removeItem (position);
+		FormantGrid_removeFormantAndBandwidthTiers (*fg, position);
+		Collection_removeItem (*ordered, position);
 	}
 }
 
 void KlattGrid_addFormantFrequencyAndBandwidthTiers (KlattGrid me, int formantType, long position) {
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-	FormantGrid_addFormantAndBandwidthTiers (fg->get(), position);
+	FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+	FormantGrid_addFormantAndBandwidthTiers (*fg, position);
 }
 
 void KlattGrid_removeFormantFrequencyAndBandwidthTiers (KlattGrid me, int formantType, long position) {
-	autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, formantType);
-	FormantGrid_removeFormantAndBandwidthTiers (fg->get(), position);
+	FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, formantType);
+	FormantGrid_removeFormantAndBandwidthTiers (*fg, position);
 }
 
 double KlattGrid_getDeltaFormantAtTime (KlattGrid me, long iformant, double t) {
-	return FormantGrid_getFormantAtTime (my coupling -> delta_formants.get(), iformant, t);
+	return FormantGrid_getFormantAtTime (my coupling -> delta_formants, iformant, t);
 }
 void KlattGrid_addDeltaFormantPoint (KlattGrid me, long iformant, double t, double value) {
-	FormantGrid_addFormantPoint (my coupling -> delta_formants.get(), iformant, t, value);
+	FormantGrid_addFormantPoint (my coupling -> delta_formants, iformant, t, value);
 }
 void KlattGrid_removeDeltaFormantPoints (KlattGrid me, long iformant, double t1, double t2) {
-	FormantGrid_removeFormantPointsBetween (my coupling -> delta_formants.get(), iformant, t1, t2);
+	FormantGrid_removeFormantPointsBetween (my coupling -> delta_formants, iformant, t1, t2);
 }
 double KlattGrid_getDeltaBandwidthAtTime (KlattGrid me, long iformant, double t) {
-	return FormantGrid_getBandwidthAtTime (my coupling -> delta_formants.get(), iformant, t);
+	return FormantGrid_getBandwidthAtTime (my coupling -> delta_formants, iformant, t);
 }
 void KlattGrid_addDeltaBandwidthPoint (KlattGrid me, long iformant, double t, double value) {
-	FormantGrid_addBandwidthPoint (my coupling -> delta_formants.get(), iformant, t, value);
+	FormantGrid_addBandwidthPoint (my coupling -> delta_formants, iformant, t, value);
 }
 void KlattGrid_removeDeltaBandwidthPoints (KlattGrid me, long iformant, double t1, double t2) {
-	FormantGrid_removeBandwidthPointsBetween (my coupling -> delta_formants.get(), iformant, t1, t2);
+	FormantGrid_removeBandwidthPointsBetween (my coupling -> delta_formants, iformant, t1, t2);
 }
 
-autoFormantGrid KlattGrid_extractDeltaFormantGrid (KlattGrid me) {
+FormantGrid KlattGrid_extractDeltaFormantGrid (KlattGrid me) {
 	try {
-		autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, KlattGrid_DELTA_FORMANTS);
-		autoFormantGrid thee = Data_copy (fg->get());
-		return thee;
+		FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, KlattGrid_DELTA_FORMANTS);
+		autoFormantGrid thee = Data_copy (*fg);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no delta FormantGrid extracted.");
 	}
@@ -2686,60 +2658,61 @@ void KlattGrid_replaceDeltaFormantGrid (KlattGrid me, FormantGrid thee) {
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal");
 		}
-		autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (me, KlattGrid_DELTA_FORMANTS);
+		FormantGrid *fg =  KlattGrid_getAddressOfFormantGrid (me, KlattGrid_DELTA_FORMANTS);
 		autoFormantGrid him = Data_copy (thee);
-		*fg = him.move();
+		forget (*fg);
+		*fg = him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no delta FormantGrid replaced.");
 	}
 }
 
-autoFormantGrid KlattGrid_to_oralFormantGrid_openPhases (KlattGrid me, double fadeFraction) {
+FormantGrid KlattGrid_to_oralFormantGrid_openPhases (KlattGrid me, double fadeFraction) {
 	try {
-		if (my vocalTract -> oral_formants -> formants.size == 0 && my vocalTract -> oral_formants -> bandwidths.size == 0) {
+		if (my vocalTract -> oral_formants -> formants -> size == 0 && my vocalTract -> oral_formants -> bandwidths -> size == 0) {
 			Melder_throw (U"Formant grid is empty.");
 		}
-		if (fadeFraction < 0.0) {
-			fadeFraction = 0.0;
+		if (fadeFraction < 0) {
+			fadeFraction = 0;
 		}
 		if (fadeFraction >= 0.5) {
 			Melder_throw (U"Fade fraction must be smaller than 0.5");
 		}
 		my coupling -> options -> fadeFraction = fadeFraction;
-		autoFormantGrid thee = Data_copy ( (FormantGrid) my vocalTract -> oral_formants.get());
+		autoFormantGrid thee = Data_copy ( (FormantGrid) my vocalTract -> oral_formants);
 		KlattGrid_setGlottisCoupling (me);
-		FormantGrid_CouplingGrid_updateOpenPhases (thee.get(), my coupling.get());
-		return thee;
+		FormantGrid_CouplingGrid_updateOpenPhases (thee.peek(), my coupling);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no \"open phase\" oral FormantGrid created.");
 	}
 }
 
-autoPointProcess KlattGrid_extractPointProcess_glottalClosures (KlattGrid me) {
+PointProcess KlattGrid_extractPointProcess_glottalClosures (KlattGrid me) {
 	try {
 		// Update PhonationTier
-		autoPhonationTier pt = PhonationGrid_to_PhonationTier (my phonation.get());
-		autoPointProcess thee = PhonationTier_to_PointProcess_closures (pt.get());
-		return thee;
+		autoPhonationTier pt = PhonationGrid_to_PhonationTier (my phonation);
+		autoPointProcess thee = PhonationTier_to_PointProcess_closures (pt.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no glottal closure points extracted.");
 	}
 }
 
 double KlattGrid_getFricationAmplitudeAtTime (KlattGrid me, double t) {
-	return RealTier_getValueAtTime (my frication -> fricationAmplitude.get(), t);
+	return RealTier_getValueAtTime (my frication -> fricationAmplitude, t);
 }
 
 void KlattGrid_addFricationAmplitudePoint (KlattGrid me, double t, double value) {
-	RealTier_addPoint (my frication -> fricationAmplitude.get(), t, value);
+	RealTier_addPoint (my frication -> fricationAmplitude, t, value);
 }
 
 void KlattGrid_removeFricationAmplitudePoints (KlattGrid me, double t1, double t2) {
-	AnyTier_removePointsBetween (my frication -> fricationAmplitude.get()->asAnyTier(), t1, t2);
+	AnyTier_removePointsBetween (my frication -> fricationAmplitude, t1, t2);
 }
 
-autoIntensityTier KlattGrid_extractFricationAmplitudeTier (KlattGrid me) {
-	return Data_copy (my frication -> fricationAmplitude.get());
+IntensityTier KlattGrid_extractFricationAmplitudeTier (KlattGrid me) {
+	return Data_copy (my frication -> fricationAmplitude);
 }
 
 void KlattGrid_replaceFricationAmplitudeTier (KlattGrid me, IntensityTier thee) {
@@ -2747,26 +2720,28 @@ void KlattGrid_replaceFricationAmplitudeTier (KlattGrid me, IntensityTier thee)
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal");
 		}
-		my frication -> fricationAmplitude = Data_copy (thee);
+		autoIntensityTier him = Data_copy (thee);
+		forget (my frication -> fricationAmplitude);
+		my frication -> fricationAmplitude = him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no frication amplitude tier replaced.");
 	}
 }
 
 double KlattGrid_getFricationBypassAtTime (KlattGrid me, double t) {
-	return RealTier_getValueAtTime (my frication -> bypass.get(), t);
+	return RealTier_getValueAtTime (my frication -> bypass, t);
 }
 
 void KlattGrid_addFricationBypassPoint (KlattGrid me, double t, double value) {
-	RealTier_addPoint (my frication -> bypass.get(), t, value);
+	RealTier_addPoint (my frication -> bypass, t, value);
 }
 
 void KlattGrid_removeFricationBypassPoints (KlattGrid me, double t1, double t2) {
-	AnyTier_removePointsBetween (my frication -> bypass.get()->asAnyTier(), t1, t2);
+	AnyTier_removePointsBetween (my frication -> bypass, t1, t2);
 }
 
-autoIntensityTier KlattGrid_extractFricationBypassTier (KlattGrid me) {
-	return Data_copy (my frication -> bypass.get());
+IntensityTier KlattGrid_extractFricationBypassTier (KlattGrid me) {
+	return Data_copy (my frication -> bypass);
 }
 
 void KlattGrid_replaceFricationBypassTier (KlattGrid me, IntensityTier thee) {
@@ -2774,7 +2749,9 @@ void KlattGrid_replaceFricationBypassTier (KlattGrid me, IntensityTier thee) {
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal");
 		}
-		my frication -> bypass = Data_copy (thee);
+		autoIntensityTier him = Data_copy (thee);
+		forget (my frication -> bypass);
+		my frication -> bypass = him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no frication bypass tier replaced.");
 	}
@@ -2782,8 +2759,9 @@ void KlattGrid_replaceFricationBypassTier (KlattGrid me, IntensityTier thee) {
 
 void KlattGrid_setGlottisCoupling (KlattGrid me) {
 	try {
-		my coupling -> glottis = PhonationGrid_to_PhonationTier (my phonation.get());
-		if (! my coupling -> glottis) {
+		forget (my coupling -> glottis);
+		my coupling -> glottis = PhonationGrid_to_PhonationTier (my phonation);
+		if (my coupling -> glottis == 0) {
 			Melder_throw (U"Empty phonation tier.");
 		}
 	} catch (MelderError) {
@@ -2791,21 +2769,19 @@ void KlattGrid_setGlottisCoupling (KlattGrid me) {
 	}
 }
 
-#if 0
-static autoSound KlattGrid_to_Sound_aspiration (KlattGrid me, double samplingFrequency) {
-	return PhonationGrid_to_Sound_aspiration (my phonation.get(), samplingFrequency);
+Sound KlattGrid_to_Sound_aspiration (KlattGrid me, double samplingFrequency) {
+	return PhonationGrid_to_Sound_aspiration (my phonation, samplingFrequency);
 }
-#endif
 
-autoSound KlattGrid_to_Sound_phonation (KlattGrid me) {
-	return PhonationGrid_to_Sound (my phonation.get(), 0, my options -> samplingFrequency);
+Sound KlattGrid_to_Sound_phonation (KlattGrid me) {
+	return PhonationGrid_to_Sound (my phonation, 0, my options -> samplingFrequency);
 }
 
-autoSound KlattGrid_to_Sound (KlattGrid me) {
+Sound KlattGrid_to_Sound (KlattGrid me) {
 	try {
-		autoSound thee;
-		PhonationGridPlayOptions pp = my phonation -> options.get();
-		FricationGridPlayOptions pf = my frication -> options.get();
+		autoSound thee = 0;
+		PhonationGridPlayOptions pp = my phonation -> options;
+		FricationGridPlayOptions pf = my frication -> options;
 		double samplingFrequency = my options -> samplingFrequency;
 
 		if (pp -> voicing) {
@@ -2813,25 +2789,26 @@ autoSound KlattGrid_to_Sound (KlattGrid me) {
 		}
 
 		if (pp -> aspiration || pp -> voicing) { // No vocal tract filtering if no glottal source signal present
-			autoSound source = PhonationGrid_to_Sound (my phonation.get(), my coupling.get(), samplingFrequency);
-			thee = Sound_VocalTractGrid_CouplingGrid_filter (source.get(), my vocalTract.get(), my coupling.get());
+			autoSound source = PhonationGrid_to_Sound (my phonation, my coupling, samplingFrequency);
+
+			thee.reset (Sound_VocalTractGrid_CouplingGrid_filter (source.peek(), my vocalTract, my coupling));
 		}
 
 		if (pf -> endFricationFormant > 0 || pf -> bypass) {
-			autoSound frication = FricationGrid_to_Sound (my frication.get(), samplingFrequency);
-			if (thee) {
-				_Sounds_add_inline (thee.get(), frication.get());
+			autoSound frication = FricationGrid_to_Sound (my frication, samplingFrequency);
+			if (thee.peek() != 0) {
+				_Sounds_add_inline (thee.peek(), frication.peek());
 			} else {
-				thee = frication.move();
+				thee.reset (frication.transfer());
 			}
 		}
 
-		if (thee) {
-			Vector_scale (thee.get(), 0.99);
+		if (thee.peek() == 0) {
+			thee.reset (Sound_createEmptyMono (my xmin, my xmax, samplingFrequency));
 		} else if (my options -> scalePeak) {
-			thee = Sound_createEmptyMono (my xmin, my xmax, samplingFrequency);
+			Vector_scale (thee.peek(), 0.99);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
@@ -2840,15 +2817,15 @@ autoSound KlattGrid_to_Sound (KlattGrid me) {
 void KlattGrid_playSpecial (KlattGrid me) {
 	try {
 		autoSound thee = KlattGrid_to_Sound (me);
-		KlattGridPlayOptions him = my options.get();
+		KlattGridPlayOptions him = my options;
 		if (his scalePeak) {
-			Vector_scale (thee.get(), 0.99);
+			Vector_scale (thee.peek(), 0.99);
 		}
-		if (his xmin == 0.0 && his xmax == 0.0) {
+		if (his xmin == 0 && his xmax == 0) {
 			his xmin = my xmin;
 			his xmax = my xmax;
 		}
-		Sound_playPart (thee.get(), his xmin, his xmax, nullptr, nullptr);
+		Sound_playPart (thee.peek(), his xmin, his xmax, 0, 0);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
@@ -2861,11 +2838,11 @@ void KlattGrid_play (KlattGrid me) {
 
 /************************* Sound(s) & KlattGrid **************************************************/
 
-autoSound Sound_KlattGrid_filter_frication (Sound me, KlattGrid thee) {
-	return Sound_FricationGrid_filter (me, thy frication.get());
+Sound Sound_KlattGrid_filter_frication (Sound me, KlattGrid thee) {
+	return Sound_FricationGrid_filter (me, thy frication);
 }
 
-autoSound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filterModel) {
+Sound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filterModel) {
 	try {
 		if (my xmin != thy xmin || my xmax != thy xmax) {
 			Melder_throw (U"Domains must be equal.");
@@ -2873,7 +2850,8 @@ autoSound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filt
 		KlattGrid_setDefaultPlayOptions (thee);
 		thy coupling -> options -> openglottis = 0; // don't trust openglottis info!
 		thy vocalTract -> options -> filterModel = filterModel;
-		return Sound_VocalTractGrid_CouplingGrid_filter (me, thy vocalTract.get(), thy coupling.get());
+		autoSound him = Sound_VocalTractGrid_CouplingGrid_filter (me, thy vocalTract, thy coupling);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered by KlattGrid.");
 	}
@@ -2881,16 +2859,16 @@ autoSound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filt
 
 /******************* KlattTable to KlattGrid *********************/
 
-autoKlattGrid KlattTable_to_KlattGrid (KlattTable me, double frameDuration) {
+KlattGrid KlattTable_to_KlattGrid (KlattTable me, double frameDuration) {
 	try {
 		Table kt = (Table) me;
 
-		long nrows = my rows.size;
+		long nrows = my rows -> size;
 		double tmin = 0, tmax = nrows * frameDuration;
 		double dBNul = -300;
-		double dB_offset = -20.0 * log10 (2.0e-5) - 87.0; // in KlattTable maximum in DB_to_LIN is at 87 dB : 32767
-		double dB_offset_voicing = 20.0 * log10 (320000 / 32767); // V'[n] in range (-320000,32000)
-		double dB_offset_noise = -20.0 * log10 (32.767 / 8.192); // noise in range (-8192,8192)
+		double dB_offset = -20 * log10 (2.0e-5) - 87; // in KlattTable maximum in DB_to_LIN is at 87 dB : 32767
+		double dB_offset_voicing = 20 * log10 (320000 / 32767); // V'[n] in range (-320000,32000)
+		double dB_offset_noise = -20 * log10 (32.767 / 8.192); // noise in range (-8192,8192)
 		//	double dB_offset_noise = -20 * log10 (320000/32767)  - 20 * log10 (32.767 / 8.192);
 		double ap[7] = {0, 0.4, 0.15, 0.06, 0.04, 0.022, 0.03 };
 		long numberOfFormants = 6;
@@ -2906,126 +2884,110 @@ autoKlattGrid KlattTable_to_KlattGrid (KlattTable me, double frameDuration) {
 		                                       numberOfFricationFormants, numberOfDeltaFormants);
 		for (long irow = 1; irow <= nrows; irow++) {
 			double t = (irow - 1) * frameDuration;
-
 			long icol = 1;
-			double val = Table_getNumericValue_Assert (kt, irow, icol) / 10.0;   // F0hz10
+			double val = Table_getNumericValue_Assert (kt, irow, icol) / 10; // F0hz10
 			double f0 = val;
-			RealTier_addPoint (thy phonation -> pitch.get(), t, f0);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol); // AVdb
+			RealTier_addPoint (thy phonation -> pitch, t, f0);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // AVdb
 			// dB values below 13 were put to zero in the DBtoLIN function
-			val -= 7.0;
-			if (val < 13.0) {
+			val -= 7;
+			if (val < 13) {
 				val = dBNul;
 			}
 			// RealTier_addPoint (thy source -> voicingAmplitude, t, val);
-
 			for (long kf = 1; kf <= 6; kf++) {
-				double fk = val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Fhz
-				RealTier_addPoint (thy vocalTract -> oral_formants -> formants.at [kf], t, val);
-				RealTier_addPoint (thy frication -> frication_formants -> formants.at [kf], t, val);   // only amplitudes and bandwidths in frication section
-				val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Bhz
-				if (val <= 0.0) {
-					val = fk / 10.0;
+				icol++;
+				double fk = val = Table_getNumericValue_Assert (kt, irow, icol); // Fhz
+				RealTier_addPoint ( (RealTier) thy vocalTract -> oral_formants -> formants -> item[kf], t, val);
+				RealTier_addPoint ( (RealTier) thy frication -> frication_formants -> formants -> item[kf], t, val); // only amplitudes and bandwidths in frication section
+				icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Bhz
+				if (val <= 0) {
+					val = fk / 10;
 				}
-				RealTier_addPoint (thy vocalTract -> oral_formants -> bandwidths.at [kf], t, val);
-			}
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // FNZhz
-			RealTier_addPoint (thy vocalTract -> nasal_antiformants -> formants.at [1], t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // BNZhz
-			RealTier_addPoint (thy vocalTract -> nasal_antiformants -> bandwidths.at [1], t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // FNPhz
-			RealTier_addPoint (thy vocalTract -> nasal_formants -> formants.at [1], t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // BNPhz
-			RealTier_addPoint (thy vocalTract -> nasal_formants -> bandwidths.at [1], t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // ah
-			if (val < 13.0) {
+				RealTier_addPoint ( (RealTier) thy vocalTract -> oral_formants -> bandwidths -> item[kf], t, val);
+			}
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // FNZhz
+			RealTier_addPoint ( (RealTier) thy vocalTract -> nasal_antiformants -> formants -> item[1], t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // BNZhz
+			RealTier_addPoint ( (RealTier) thy vocalTract -> nasal_antiformants -> bandwidths -> item[1], t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // FNPhz
+			RealTier_addPoint ( (RealTier) thy vocalTract -> nasal_formants -> formants -> item[1], t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // BNPhz
+			RealTier_addPoint ( (RealTier) thy vocalTract -> nasal_formants -> bandwidths -> item[1], t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // ah
+			if (val < 13) {
 				val = dBNul;
 			} else {
-				val += 20.0 * log10 (0.05) + dB_offset_noise;
-			}
-			RealTier_addPoint (thy phonation -> aspirationAmplitude.get(), t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Kopen
-			double openPhase = ( f0 > 0.0 ? (val / 16000.0) * f0 : 0.7 );
-			RealTier_addPoint (thy phonation -> openPhase.get(), t, openPhase);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Aturb breathinessAmplitude during voicing (max is 8192)
-			if (val < 13.0) {
+				val += 20 * log10 (0.05) + dB_offset_noise;
+			}
+			RealTier_addPoint (thy phonation -> aspirationAmplitude, t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Kopen
+			double openPhase = f0 > 0 ? (val / 16000) * f0 : 0.7;
+			RealTier_addPoint (thy phonation -> openPhase, t, openPhase);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Aturb breathinessAmplitude during voicing (max is 8192)
+			if (val < 13) {
 				val = dBNul;
 			} else {
-				val += 20.0 * log10 (0.1) + dB_offset_noise;
+				val += 20 * log10 (0.1) + dB_offset_noise;
 			}
-			RealTier_addPoint (thy phonation -> breathinessAmplitude.get(), t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // TLTdb
-			RealTier_addPoint (thy phonation -> spectralTilt.get(), t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // AF
-			if (val < 13.0) {
+			RealTier_addPoint (thy phonation -> breathinessAmplitude, t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // TLTdb
+			RealTier_addPoint (thy phonation -> spectralTilt, t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // AF
+			if (val < 13) {
 				val = dBNul;
 			} else {
-				val += 20.0 * log10 (0.25) + dB_offset_noise;
+				val += 20 * log10 (0.25) + dB_offset_noise;
 			}
-			RealTier_addPoint (thy frication -> fricationAmplitude.get(), t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Kskew ???
+			RealTier_addPoint (thy frication -> fricationAmplitude, t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Kskew ???
 			//RealTier_addPoint (, t, val);
-
 			for (long kf = 1; kf <= 6; kf++) {
-				val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // Ap
-				if (val < 13.0) {
+				icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Ap
+				if (val < 13) {
 					val = dBNul;
 				} else {
-					val += 20.0 * log10 (ap[kf]) + dB_offset;
+					val += 20 * log10 (ap[kf]) + dB_offset;
 				}
-				RealTier_addPoint (thy vocalTract -> oral_formants_amplitudes.at [kf], t, val);
-				RealTier_addPoint (thy frication -> frication_formants_amplitudes.at [kf], t, val);
-				val = Table_getNumericValue_Assert (kt, irow, ++ icol); // Bhz
-				RealTier_addPoint (thy frication -> frication_formants -> bandwidths.at [kf], t, val);
+				RealTier_addPoint ( (RealTier) thy vocalTract -> oral_formants_amplitudes -> item[kf], t, val);
+				RealTier_addPoint ( (RealTier) thy frication -> frication_formants_amplitudes -> item[kf], t, val);
+				icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Bhz
+				RealTier_addPoint ( (RealTier) thy frication -> frication_formants -> bandwidths -> item[kf], t, val);
 			}
 
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol);   // ANP
-			if (val < 13.0) {
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // ANP
+			if (val < 13) {
 				val = dBNul;
 			} else {
-				val += 20.0 * log10 (0.6) + dB_offset;
+				val += 20 * log10 (0.6) + dB_offset;
 			}
-			RealTier_addPoint (thy vocalTract -> nasal_formants_amplitudes.at [1], t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol); // AB
-			if (val < 13.0) {
+			RealTier_addPoint ( (RealTier) thy vocalTract -> nasal_formants_amplitudes -> item[1], t, val);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // AB
+			if (val < 13) {
 				val = dBNul;
 			} else {
-				val += 20.0 * log10 (0.05) + dB_offset_noise;
+				val += 20 * log10 (0.05) + dB_offset_noise;
 			}
-			RealTier_addPoint (thy frication -> bypass.get(), t, val);
-
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol); // AVpdb
-			RealTier_addPoint (thy phonation -> voicingAmplitude.get(), t, val + dB_offset_voicing);
+			RealTier_addPoint (thy frication -> bypass, t, val);
 
-			val = Table_getNumericValue_Assert (kt, irow, ++ icol); // Gain0
-			val -= 3.0;
-			if (val <= 0.0) {
-				val = 57.0;
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // AVpdb
+			RealTier_addPoint (thy phonation -> voicingAmplitude, t, val + dB_offset_voicing);
+			icol++; val = Table_getNumericValue_Assert (kt, irow, icol); // Gain0
+			val -= 3; if (val <= 0) {
+				val = 57;
 			}
-			RealTier_addPoint (thy gain.get(), t, val + dB_offset);
+			RealTier_addPoint (thy gain, t, val + dB_offset);
 		}
 		// We don't need the following low-pass: we do not use oversampling !!
-		//RealTier_addPoint (thy tracheal_formants -> formants->at [1], 0.5*(tmin+tmax), 0.095*samplingFrequency);
-		//RealTier_addPoint (thy tracheal_formants -> bandwidths->at [1], 0.5*(tmin+tmax), 0.063*samplingFrequency);
-		return thee;
+		//RealTier_addPoint (thy tracheal_formants -> formants -> item[1], 0.5*(tmin+tmax), 0.095*samplingFrequency);
+		//RealTier_addPoint (thy tracheal_formants -> bandwidths -> item[1], 0.5*(tmin+tmax), 0.063*samplingFrequency);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no KlattGrid created.");
 	}
 }
 
-autoKlattGrid Sound_to_KlattGrid_simple (Sound me, double timeStep, long maximumNumberOfFormants, double maximumFormantFrequency, double windowLength, double preEmphasisFrequency, double minimumPitch, double maximumPitch, double pitchFloorIntensity, int subtractMean) {
+KlattGrid Sound_to_KlattGrid_simple (Sound me, double timeStep, long maximumNumberOfFormants, double maximumFormantFrequency, double windowLength, double preEmphasisFrequency, double minimumPitch, double maximumPitch, double pitchFloorIntensity, int subtractMean) {
 	try {
 		long numberOfFormants = maximumNumberOfFormants;
 		long numberOfNasalFormants = 1;
@@ -3035,21 +2997,21 @@ autoKlattGrid Sound_to_KlattGrid_simple (Sound me, double timeStep, long maximum
 		long numberOfFricationFormants =  maximumNumberOfFormants;
 		long numberOfDeltaFormants = 1;
 		autoSound sound = Data_copy (me);
-		Vector_subtractMean (sound.get());
-		autoFormant f = Sound_to_Formant_burg (sound.get(), timeStep, maximumNumberOfFormants,
+		Vector_subtractMean (sound.peek());
+		autoFormant f = Sound_to_Formant_burg (sound.peek(), timeStep, maximumNumberOfFormants,
 		                                       maximumFormantFrequency, windowLength, preEmphasisFrequency);
-		autoFormantGrid fgrid = Formant_downto_FormantGrid (f.get());
-		autoPitch p = Sound_to_Pitch (sound.get(), timeStep, minimumPitch, maximumPitch);
-		autoPitchTier ptier = Pitch_to_PitchTier (p.get());
-		autoIntensity i = Sound_to_Intensity (sound.get(), pitchFloorIntensity, timeStep, subtractMean);
-		autoIntensityTier itier = Intensity_downto_IntensityTier (i.get());
+		autoFormantGrid fgrid = Formant_downto_FormantGrid (f.peek());
+		autoPitch p = Sound_to_Pitch (sound.peek(), timeStep, minimumPitch, maximumPitch);
+		autoPitchTier ptier = Pitch_to_PitchTier (p.peek());
+		autoIntensity i = Sound_to_Intensity (sound.peek(), pitchFloorIntensity, timeStep, subtractMean);
+		autoIntensityTier itier = Intensity_downto_IntensityTier (i.peek());
 		autoKlattGrid thee = KlattGrid_create (my xmin, my xmax, numberOfFormants, numberOfNasalFormants,
 		                                       numberOfNasalAntiFormants, numberOfTrachealFormants, numberOfTrachealAntiFormants,
 		                                       numberOfFricationFormants, numberOfDeltaFormants);
-		KlattGrid_replacePitchTier (thee.get(), ptier.get());
-		KlattGrid_replaceFormantGrid (thee.get(), KlattGrid_ORAL_FORMANTS, fgrid.get());
-		KlattGrid_replaceVoicingAmplitudeTier (thee.get(), itier.get());
-		return thee;
+		KlattGrid_replacePitchTier (thee.peek(), ptier.peek());
+		KlattGrid_replaceFormantGrid (thee.peek(), KlattGrid_ORAL_FORMANTS, fgrid.peek());
+		KlattGrid_replaceVoicingAmplitudeTier (thee.peek(), itier.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no simple KlattGrid created.");
 	}
diff --git a/dwtools/KlattGrid.h b/dwtools/KlattGrid.h
index 8a55d0b..87047ad 100644
--- a/dwtools/KlattGrid.h
+++ b/dwtools/KlattGrid.h
@@ -2,7 +2,7 @@
 #define _KlattGrid_h_
 /* KlattGrid.h
  *
- * Copyright (C) 2008-2014 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2008-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,6 +19,11 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * djmw 20080917 Initial version
+ * djmw 20140113 Latest modification
+ */
+
 #include "Collection.h"
 #include "PointProcess.h"
 #include "Sound.h"
@@ -26,44 +31,56 @@
 #include "PitchTier.h"
 #include "FormantGrid.h"
 #include "KlattTable.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "KlattGrid_def.h"
+oo_CLASS_CREATE (PhonationPoint, Data);
+oo_CLASS_CREATE (PhonationTier, Function);
+oo_CLASS_CREATE (PhonationGridPlayOptions, Data);
+oo_CLASS_CREATE (PhonationGrid, Function);
+oo_CLASS_CREATE (VocalTractGridPlayOptions, Data);
+oo_CLASS_CREATE (VocalTractGrid, Function);
+oo_CLASS_CREATE (CouplingGridPlayOptions, Data);
+oo_CLASS_CREATE (CouplingGrid, Function);
+oo_CLASS_CREATE (FricationGridPlayOptions, Data);
+oo_CLASS_CREATE (FricationGrid, Function);
+oo_CLASS_CREATE (KlattGridPlayOptions, Data);
+oo_CLASS_CREATE (KlattGrid, Function);
 
 /******************** PhonationPoint & Tier ************************************/
 
-autoPhonationPoint PhonationPoint_create (double time, double period, double openPhase, double collisionPhase, double te,
+PhonationPoint PhonationPoint_create (double time, double period, double openPhase, double collisionPhase, double te,
 	double power1, double power2, double pulseScale);
 
-autoPhonationTier PhonationTier_create (double tmin, double tmax);
-autoPointProcess PhonationTier_to_PointProcess_closures (PhonationTier me);
+PhonationTier PhonationTier_create (double tmin, double tmax);
+PointProcess PhonationTier_to_PointProcess_closures (PhonationTier me);
 
 /************************ PhonationGrid *********************************************/
 
-autoPhonationGrid PhonationGrid_create (double tmin, double tmax);
-autoPhonationGridPlayOptions PhonationGridPlayOptions_create ();
+PhonationGrid PhonationGrid_create (double tmin, double tmax);
+PhonationGridPlayOptions PhonationGridPlayOptions_create ();
 void PhonationGrid_setNames (PhonationGrid me);
 
-autoSound PhonationGrid_to_Sound_aspiration (PhonationGrid me, double samplingFrequency);
+Sound PhonationGrid_to_Sound_aspiration (PhonationGrid me, double samplingFrequency);
 
 void PhonationGrid_draw (PhonationGrid me, Graphics g);
 
 double PhonationGrid_getMaximumPeriod (PhonationGrid me);
 
-autoPhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me);
+PhonationTier PhonationGrid_to_PhonationTier (PhonationGrid me);
 
 /************************ VocalTractGrid *********************************************/
 
-autoVocalTractGrid VocalTractGrid_create (double tmin, double tmax, long numberOfFormants,
+VocalTractGrid VocalTractGrid_create (double tmin, double tmax, long numberOfFormants,
 	long numberOfNasalFormants,	long numberOfNasalAntiFormants);
-autoVocalTractGridPlayOptions VocalTractGridPlayOptions_create ();
+VocalTractGridPlayOptions VocalTractGridPlayOptions_create ();
 void VocalTractGrid_setNames (VocalTractGrid me);
 void VocalTractGrid_draw (VocalTractGrid me, Graphics g, int filterModel);
 
 /************************ CouplingGrid *********************************************/
 
-autoCouplingGrid CouplingGrid_create (double tmin, double tmax, long numberOfTrachealFormants, long numberOfTrachealAntiFormants, long numberOfDeltaFormants);
-autoCouplingGridPlayOptions CouplingGridPlayOptions_create ();
+CouplingGrid CouplingGrid_create (double tmin, double tmax, long numberOfTrachealFormants, long numberOfTrachealAntiFormants, long numberOfDeltaFormants);
+CouplingGridPlayOptions CouplingGridPlayOptions_create ();
 void CouplingGrid_setNames (CouplingGrid me);
 double CouplingGrid_getDeltaFormantAtTime (CouplingGrid me, long iformant, double t);
 double CouplingGrid_getDeltaBandwidthAtTime (CouplingGrid me, long iformant, double t);
@@ -76,35 +93,35 @@ void FormantGrid_CouplingGrid_updateOpenPhases (FormantGrid me, CouplingGrid the
 
 void Sound_FormantGrid_filterWithOneFormant_inline (Sound me, FormantGrid thee, long iformant);
 void Sound_FormantGrid_filterWithOneAntiFormant_inline (Sound me, FormantGrid thee, long iformant);
-void Sound_FormantGrid_Intensities_filterWithOneFormant_inline (Sound me, FormantGrid thee, OrderedOf<structIntensityTier>* amplitudes, long iformant);
-autoSound Sound_FormantGrid_Intensities_filter (Sound me, FormantGrid thee, OrderedOf<structIntensityTier>* amplitudes, long iformantb, long iformante, int alternatingSign);
+void Sound_FormantGrid_Intensities_filterWithOneFormant_inline (Sound me, FormantGrid thee, Ordered amplitudes, long iformant);
+Sound Sound_FormantGrid_Intensities_filter (Sound me, FormantGrid thee, Ordered amplitudes, long iformantb, long iformante, int alternatingSign);
 
 /************************ FricationGrid *********************************************/
 
-autoFricationGrid FricationGrid_create (double tmin, double tmax, long numberOfFormants);
-autoFricationGridPlayOptions FricationGridPlayOptions_create ();
+FricationGrid FricationGrid_create (double tmin, double tmax, long numberOfFormants);
+FricationGridPlayOptions FricationGridPlayOptions_create ();
 void FricationGrid_setNames (FricationGrid me);
 void FricationGrid_draw (FricationGrid me, Graphics g);
 
-autoSound FricationGrid_to_Sound (FricationGrid me, double samplingFrequency);
+Sound FricationGrid_to_Sound (FricationGrid me, double samplingFrequency);
 
-autoSound Sound_FricationGrid_filter (Sound me, FricationGrid thee);
+Sound Sound_FricationGrid_filter (Sound me, FricationGrid thee);
 
 /************************ Sound & VocalTractGrid & CouplingGrid *********************************************/
 
-autoSound Sound_VocalTractGrid_CouplingGrid_filter (Sound me, VocalTractGrid thee, CouplingGrid coupling);
+Sound Sound_VocalTractGrid_CouplingGrid_filter (Sound me, VocalTractGrid thee, CouplingGrid coupling);
 
 /************************ KlattGrid *********************************************/
 
-autoKlattGrid KlattGrid_create (double tmin, double tmax, long numberOfFormants,
+KlattGrid KlattGrid_create (double tmin, double tmax, long numberOfFormants,
 	long numberOfNasalFormants, long numberOfNasalAntiFormants,
 	long numberOfTrachealFormants, long numberOfTrachealAntiFormants,
 	long numberOfFricationFormants, long numberOfDeltaFormants);
 
-autoKlattGrid KlattGrid_createExample ();
-autoKlattGridPlayOptions KlattGridPlayOptions_create ();
+KlattGrid KlattGrid_createExample ();
+KlattGridPlayOptions KlattGridPlayOptions_create ();
 void KlattGrid_setNames (KlattGrid me);
-autoKlattGrid KlattTable_to_KlattGrid (KlattTable me, double frameDuration);
+KlattGrid KlattTable_to_KlattGrid (KlattTable me, double frameDuration);
 
 void KlattGrid_draw (KlattGrid me, Graphics g, int filterModel);
 void klattGrid_drawPhonation (KlattGrid me, Graphics g);
@@ -126,7 +143,7 @@ void KlattGrid_drawVocalTract (KlattGrid me, Graphics g, int filterModel, int wi
 double KlattGrid_get##Name##AtTime (KlattGrid me, double t); \
 void KlattGrid_add##Name##Point (KlattGrid me, double t, double value); \
 void KlattGrid_remove##Name##Points (KlattGrid me, double t1, double t2); \
-auto##tierType KlattGrid_extract##Name##Tier (KlattGrid me); \
+tierType KlattGrid_extract##Name##Tier (KlattGrid me); \
 void KlattGrid_replace##Name##Tier (KlattGrid me, tierType thee);
 
 // Generate 55 prototypes
@@ -158,57 +175,49 @@ void KlattGrid_formula_frequencies (KlattGrid me, int formantType, const char32
 void KlattGrid_formula_bandwidths (KlattGrid me, int formantType, const char32 *expression, Interpreter interpreter);
 void KlattGrid_formula_amplitudes (KlattGrid me, int formantType, const char32 *expression, Interpreter interpreter);
 
-autoFormantGrid KlattGrid_extractFormantGrid (KlattGrid me, int formantType);
+FormantGrid KlattGrid_extractFormantGrid (KlattGrid me, int formantType);
 void KlattGrid_replaceFormantGrid (KlattGrid me, int formantType, FormantGrid thee);
 
-autoFormantGrid KlattGrid_extractDeltaFormantGrid (KlattGrid me);
+FormantGrid KlattGrid_extractDeltaFormantGrid (KlattGrid me);
 void KlattGrid_replaceDeltaFormantGrid (KlattGrid me, FormantGrid thee);
 
-autoFormantGrid KlattGrid_to_oralFormantGrid_openPhases (KlattGrid me, double fadeFraction);
-autoPointProcess KlattGrid_extractPointProcess_glottalClosures (KlattGrid me);
+FormantGrid KlattGrid_to_oralFormantGrid_openPhases (KlattGrid me, double fadeFraction);
+PointProcess KlattGrid_extractPointProcess_glottalClosures (KlattGrid me);
 
 double KlattGrid_getAmplitudeAtTime (KlattGrid me, int formantType, long iformant, double t);
 void KlattGrid_addAmplitudePoint (KlattGrid me, int formantType, long iformant, double t, double value);
 void KlattGrid_removeAmplitudePoints (KlattGrid me, int formantType, long iformant, double t1, double t2);
-autoIntensityTier KlattGrid_extractAmplitudeTier (KlattGrid me, int formantType, long iformant);
+IntensityTier KlattGrid_extractAmplitudeTier (KlattGrid me, int formantType, long iformant);
 void KlattGrid_replaceAmplitudeTier (KlattGrid me, int formantType, long iformant, IntensityTier thee);
 
 double KlattGrid_getFricationAmplitudeAtTime (KlattGrid me, double t);
 void KlattGrid_addFricationAmplitudePoint (KlattGrid me, double t, double value);
 void KlattGrid_removeFricationAmplitudePoints (KlattGrid me, double t1, double t2);
-autoIntensityTier KlattGrid_extractFricationAmplitudeTier (KlattGrid me);
+IntensityTier KlattGrid_extractFricationAmplitudeTier (KlattGrid me);
 void KlattGrid_replaceFricationAmplitudeTier (KlattGrid me, IntensityTier thee);
 
 double KlattGrid_getFricationBypassAtTime (KlattGrid me, double t);
 void KlattGrid_addFricationBypassPoint (KlattGrid me, double t, double value);
 void KlattGrid_removeFricationBypassPoints (KlattGrid me, double t1, double t2);
-autoIntensityTier KlattGrid_extractFricationBypassTier (KlattGrid me);
+IntensityTier KlattGrid_extractFricationBypassTier (KlattGrid me);
 void KlattGrid_replaceFricationBypassTier (KlattGrid me, IntensityTier thee);
 
 void KlattGrid_setGlottisCoupling (KlattGrid me);
 
-autoFormantGrid * KlattGrid_getAddressOfFormantGrid (KlattGrid me, int formantType);
-OrderedOf<structIntensityTier>* KlattGrid_getAddressOfAmplitudes (KlattGrid me, int formantType);
+FormantGrid * KlattGrid_getAddressOfFormantGrid (KlattGrid me, int formantType);
+Ordered * KlattGrid_getAddressOfAmplitudes (KlattGrid me, int formantType);
 
-/*
-	One can add (or remove) formant frequency tiers, formant bandwidth tiers and formant amplitude tiers.
-	The first two types are handled together, the third type is handled separately.
-*/
+// add/remove frequency + bandwidth (+amplitude) tiers
+void KlattGrid_addFormant (KlattGrid me,int formantType, long position);
+void KlattGrid_removeFormant (KlattGrid me,int formantType, long position);
+
+// add/remove frequency + bandwidth tiers
 void KlattGrid_addFormantFrequencyAndBandwidthTiers (KlattGrid me, int formantType, long position);
 void KlattGrid_removeFormantFrequencyAndBandwidthTiers (KlattGrid me, int formantType, long position);
-void KlattGrid_addFormantAmplitudeTier (KlattGrid me, int formantType, long position);
-void KlattGrid_removeFormantAmplitudeTier (KlattGrid me, int formantType, long position);
 
-/*
-	The following two functions are deprecated;
-	they combine the actions of the above functions,
-	i.e. they add (or remove) a formant frequency tier, a formant bandwidth tier,
-	and a formant amplitude tier in one go.
-	Use instead the above division of these actions into two steps.
-*/
-void KlattGrid_addFormant (KlattGrid me, int formantType, long position);
-void KlattGrid_removeFormant (KlattGrid me, int formantType, long position);
 
+void KlattGrid_addFormantAmplitudeTier (KlattGrid me, int formantType, long position);
+void KlattGrid_removeFormantAmplitudeTier (KlattGrid me, int formantType, long position);
 /***************** KlattGrid & Sound *************************************/
 
 // reset PlayOptions to defaults
@@ -218,9 +227,9 @@ void KlattGrid_playSpecial (KlattGrid me);
 
 void KlattGrid_setDefaultPlayOptions (KlattGrid me);
 
-autoSound KlattGrid_to_Sound (KlattGrid me);
+Sound KlattGrid_to_Sound (KlattGrid me);
 
-autoSound KlattGrid_to_Sound_phonation (KlattGrid me);
+Sound KlattGrid_to_Sound_phonation (KlattGrid me);
 
 int KlattGrid_synthesize (KlattGrid me, double t1, double t2, double samplingFrequency, double maximumPeriod);
 
@@ -229,10 +238,10 @@ int KlattGrid_synthesize (KlattGrid me, double t1, double t2, double samplingFre
 	frication: noise before entering the parallel frication filter section.
 */
 
-autoSound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filterModel);
+Sound Sound_KlattGrid_filterByVocalTract (Sound me, KlattGrid thee, int filterModel);
 
-autoSound Sound_KlattGrid_filter_frication (Sound me, KlattGrid thee);
+Sound Sound_KlattGrid_filter_frication (Sound me, KlattGrid thee);
 
-autoKlattGrid Sound_to_KlattGrid_simple (Sound me, double timeStep, long maximumNumberOfFormants, double maximumFormantFrequency, double windowLength, double preEmphasisFrequency, double minimumPitch, double maximumPitch, double minimumPitchIntensity, int subtractMean);
+KlattGrid Sound_to_KlattGrid_simple (Sound me, double timeStep, long maximumNumberOfFormants, double maximumFormantFrequency, double windowLength, double preEmphasisFrequency, double minimumPitch, double maximumPitch, double minimumPitchIntensity, int subtractMean);
 
 #endif /* _KlattGrid_h_ */
diff --git a/dwtools/KlattGridEditors.cpp b/dwtools/KlattGridEditors.cpp
index e815adb..9658eda 100644
--- a/dwtools/KlattGridEditors.cpp
+++ b/dwtools/KlattGridEditors.cpp
@@ -34,297 +34,299 @@ static void KlattGrid_Editor_defaultPlay (KlattGrid me, double tmin, double tmax
 	KlattGrid_playSpecial (me);
 }
 
-/************************** KlattGrid_RealTierEditor *********************************/
+/************************** KlattGrid_realTierEditor *********************************/
 
-Thing_implement (KlattGrid_RealTierEditor, RealTierEditor, 0);
+Thing_implement (KlattGrid_realTierEditor, RealTierEditor, 0);
 
-static void menu_cb_KlattGridHelp (KlattGrid_RealTierEditor, EDITOR_ARGS_DIRECT) {
+static void menu_cb_KlattGridHelp (EDITOR_ARGS) {
+	EDITOR_IAM (KlattGrid_realTierEditor);
 	Melder_help (U"KlattGrid");
 }
 
-void structKlattGrid_RealTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
-	KlattGrid_RealTierEditor_Parent :: v_createHelpMenuItems (menu);
+void structKlattGrid_realTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
+	KlattGrid_realTierEditor_Parent :: v_createHelpMenuItems (menu);
 	EditorMenu_addCommand (menu, U"KlattGrid help", 0, menu_cb_KlattGridHelp);
 }
 
-void structKlattGrid_RealTierEditor :: v_play (double ltmin, double ltmax) {
+void structKlattGrid_realTierEditor :: v_play (double ltmin, double ltmax) {
 	KlattGrid_Editor_defaultPlay (klattgrid, ltmin, ltmax);
 }
 
-void KlattGrid_RealTierEditor_init (KlattGrid_RealTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier data) {
+void KlattGrid_realTierEditor_init (KlattGrid_realTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier data) {
 	my klattgrid = klattgrid;
-	RealTierEditor_init (me, title, data, nullptr, false);
+	RealTierEditor_init (me, title, data, 0, 0);
 }
 
-/************************** KlattGrid_PitchTierEditor *********************************/
+/************************** KlattGrid_pitchTierEditor *********************************/
 
-Thing_implement (KlattGrid_PitchTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_pitchTierEditor, KlattGrid_realTierEditor, 0);
 
-static void menu_cb_KlattGrid_PitchTierEditorHelp (KlattGrid_PitchTierEditor, EDITOR_ARGS_DIRECT) {
-	Melder_help (U"PitchTierEditor");
+static void menu_cb_KlattGrid_pitchTierEditorHelp (EDITOR_ARGS) {
+	EDITOR_IAM (KlattGrid_pitchTierEditor); Melder_help (U"PitchTierEditor");
 }
 
-static void menu_cb_PitchTierHelp (KlattGrid_PitchTierEditor, EDITOR_ARGS_DIRECT) {
-	Melder_help (U"PitchTier");
+static void menu_cb_PitchTierHelp (EDITOR_ARGS) {
+	EDITOR_IAM (KlattGrid_pitchTierEditor); Melder_help (U"PitchTier");
 }
 
-void structKlattGrid_PitchTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"PitchTierEditor help", 0, menu_cb_KlattGrid_PitchTierEditorHelp);
+void structKlattGrid_pitchTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
+	EditorMenu_addCommand (menu, U"PitchTierEditor help", 0, menu_cb_KlattGrid_pitchTierEditorHelp);
 	EditorMenu_addCommand (menu, U"PitchTier help", 0, menu_cb_PitchTierHelp);
 }
 
-autoKlattGrid_PitchTierEditor KlattGrid_PitchTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_pitchTierEditor KlattGrid_pitchTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_PitchTierEditor me = Thing_new (KlattGrid_PitchTierEditor);
-		RealTier tier = klattgrid -> phonation -> pitch.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_pitchTierEditor me = Thing_new (KlattGrid_pitchTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> pitch;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid pitch window not created.");
 	}
 }
 
-/************************** KlattGrid_IntensityTierEditor *********************************/
+/************************** KlattGrid_intensityTierEditor *********************************/
 
-Thing_implement (KlattGrid_IntensityTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_intensityTierEditor, KlattGrid_realTierEditor, 0);
 
-static void menu_cb_IntensityTierHelp (KlattGrid_IntensityTierEditor, EDITOR_ARGS_DIRECT) {
+static void menu_cb_IntensityTierHelp (EDITOR_ARGS) {
+	EDITOR_IAM (KlattGrid_intensityTierEditor);
 	Melder_help (U"IntensityTier");
 }
 
-void structKlattGrid_IntensityTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
-	KlattGrid_IntensityTierEditor_Parent :: v_createHelpMenuItems (menu);
+void structKlattGrid_intensityTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
+	KlattGrid_intensityTierEditor_Parent :: v_createHelpMenuItems (menu);
 	EditorMenu_addCommand (menu, U"IntensityTier help", 0, menu_cb_IntensityTierHelp);
 }
 
-void KlattGrid_IntensityTierEditor_init (KlattGrid_IntensityTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier tier) {
-	KlattGrid_RealTierEditor_init (me, title, klattgrid, tier);
+void KlattGrid_intensityTierEditor_init (KlattGrid_intensityTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier tier) {
+	KlattGrid_realTierEditor_init (me, title, klattgrid, tier);
 }
 
 
 /************************** KlattGrid_DecibelTierEditor *********************************/
 
-Thing_implement (KlattGrid_DecibelTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_decibelTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_DecibelTierEditor KlattGrid_DecibelTierEditor_create (const char32 *title, KlattGrid klattgrid, RealTier tier) {
+KlattGrid_decibelTierEditor KlattGrid_decibelTierEditor_create (const char32 *title, KlattGrid klattgrid, RealTier tier) {
 	try {
-		autoKlattGrid_DecibelTierEditor me = Thing_new (KlattGrid_DecibelTierEditor);
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_decibelTierEditor me = Thing_new (KlattGrid_decibelTierEditor);
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid decibel window not created.");
 	}
 }
 
-/************************** KlattGrid_VoicingAmplitudeTierEditor *********************************/
+/************************** KlattGrid_voicingAmplitudeTierEditor *********************************/
 
-Thing_implement (KlattGrid_VoicingAmplitudeTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_voicingAmplitudeTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_VoicingAmplitudeTierEditor KlattGrid_VoicingAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_voicingAmplitudeTierEditor KlattGrid_voicingAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_VoicingAmplitudeTierEditor me = Thing_new (KlattGrid_VoicingAmplitudeTierEditor);
-		RealTier tier = klattgrid -> phonation -> voicingAmplitude.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_voicingAmplitudeTierEditor me = Thing_new (KlattGrid_voicingAmplitudeTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> voicingAmplitude;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid voicing amplitude window not created.");
 	}
 }
 
-/************************** KlattGrid_AspirationAmplitudeTierEditor *********************************/
+/************************** KlattGrid_aspirationAmplitudeTierEditor *********************************/
 
-Thing_implement (KlattGrid_AspirationAmplitudeTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_aspirationAmplitudeTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_AspirationAmplitudeTierEditor KlattGrid_AspirationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_aspirationAmplitudeTierEditor KlattGrid_aspirationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_AspirationAmplitudeTierEditor me = Thing_new (KlattGrid_AspirationAmplitudeTierEditor);
-		RealTier tier = klattgrid -> phonation -> aspirationAmplitude.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_aspirationAmplitudeTierEditor me = Thing_new (KlattGrid_aspirationAmplitudeTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> aspirationAmplitude;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid aspiration amplitude window not created.");
 	}
 }
 
-/************************** KlattGrid_BreathinessAmplitudeTierEditor *********************************/
+/************************** KlattGrid_breathinessAmplitudeTierEditor *********************************/
 
-Thing_implement (KlattGrid_BreathinessAmplitudeTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_breathinessAmplitudeTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_BreathinessAmplitudeTierEditor KlattGrid_BreathinessAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_breathinessAmplitudeTierEditor KlattGrid_breathinessAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_BreathinessAmplitudeTierEditor me = Thing_new (KlattGrid_BreathinessAmplitudeTierEditor);
-		RealTier tier = klattgrid -> phonation -> breathinessAmplitude.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_breathinessAmplitudeTierEditor me = Thing_new (KlattGrid_breathinessAmplitudeTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> breathinessAmplitude;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid breathiness amplitude window not created.");
 	}
 }
 
-/************************** KlattGrid_SpectralTiltTierEditor *********************************/
+/************************** KlattGrid_spectralTiltTierEditor *********************************/
 
-Thing_implement (KlattGrid_SpectralTiltTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_spectralTiltTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_SpectralTiltTierEditor KlattGrid_SpectralTiltTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_spectralTiltTierEditor KlattGrid_spectralTiltTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_SpectralTiltTierEditor me = Thing_new (KlattGrid_SpectralTiltTierEditor);
-		RealTier tier = klattgrid -> phonation -> spectralTilt.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_spectralTiltTierEditor me = Thing_new (KlattGrid_spectralTiltTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> spectralTilt;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid spectral tilt window not created.");
 	}
 }
 
-/************************** KlattGrid_FricationBypassTierEditor *********************************/
+/************************** KlattGrid_fricationBypassTierEditor *********************************/
 
-Thing_implement (KlattGrid_FricationBypassTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_fricationBypassTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_FricationBypassTierEditor KlattGrid_FricationBypassTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_fricationBypassTierEditor KlattGrid_fricationBypassTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_FricationBypassTierEditor me = Thing_new (KlattGrid_FricationBypassTierEditor);
-		RealTier tier = klattgrid -> frication -> bypass.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_fricationBypassTierEditor me = Thing_new (KlattGrid_fricationBypassTierEditor);
+		RealTier tier = (RealTier) klattgrid -> frication -> bypass;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid frication bypass window not created.");
 	}
 }
 
-/************************** KlattGrid_FricationAmplitudeTierEditor *********************************/
+/************************** KlattGrid_fricationAmplitudeTierEditor *********************************/
 
-Thing_implement (KlattGrid_FricationAmplitudeTierEditor, KlattGrid_IntensityTierEditor, 0);
+Thing_implement (KlattGrid_fricationAmplitudeTierEditor, KlattGrid_intensityTierEditor, 0);
 
-autoKlattGrid_FricationAmplitudeTierEditor KlattGrid_FricationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_fricationAmplitudeTierEditor KlattGrid_fricationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_FricationAmplitudeTierEditor me = Thing_new (KlattGrid_FricationAmplitudeTierEditor);
-		RealTier tier = klattgrid -> frication -> fricationAmplitude.get();
-		KlattGrid_IntensityTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_fricationAmplitudeTierEditor me = Thing_new (KlattGrid_fricationAmplitudeTierEditor);
+		RealTier tier = (RealTier) klattgrid -> frication -> fricationAmplitude;
+		KlattGrid_intensityTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid frication amplitude window not created.");
 	}
 }
 
-/************************** KlattGrid_OpenPhaseTierEditor *********************************/
+/************************** KlattGrid_openPhaseTierEditor *********************************/
 
-Thing_implement (KlattGrid_OpenPhaseTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_openPhaseTierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_OpenPhaseTierEditor KlattGrid_OpenPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_openPhaseTierEditor KlattGrid_openPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_OpenPhaseTierEditor me = Thing_new (KlattGrid_OpenPhaseTierEditor);
-		RealTier tier = klattgrid -> phonation -> openPhase.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_openPhaseTierEditor me = Thing_new (KlattGrid_openPhaseTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> openPhase;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"KlattGrid open phase window not created.");
+		Melder_throw (U"KlattGrid_openPhaseTierEditor not created.");
 	}
 }
 
-/************************** KlattGrid_CollisionPhaseTierEditor *********************************/
+/************************** KlattGrid_collisionPhaseTierEditor *********************************/
 
-Thing_implement (KlattGrid_CollisionPhaseTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_collisionPhaseTierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_CollisionPhaseTierEditor KlattGrid_CollisionPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_collisionPhaseTierEditor KlattGrid_collisionPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_CollisionPhaseTierEditor me = Thing_new (KlattGrid_CollisionPhaseTierEditor);
-		RealTier tier = klattgrid -> phonation -> collisionPhase.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_collisionPhaseTierEditor me = Thing_new (KlattGrid_collisionPhaseTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> collisionPhase;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid collision phase window not created.");
 	}
 }
 
-/************************** KlattGrid_Power1TierEditor *********************************/
+/************************** KlattGrid_power1TierEditor *********************************/
 
-Thing_implement (KlattGrid_Power1TierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_power1TierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_Power1TierEditor KlattGrid_Power1TierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_power1TierEditor KlattGrid_power1TierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_Power1TierEditor me = Thing_new (KlattGrid_Power1TierEditor);
-		RealTier tier = klattgrid -> phonation -> power1.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_power1TierEditor me = Thing_new (KlattGrid_power1TierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> power1;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid power1 window not created.");
 	}
 }
 
-/************************** KlattGrid_Power2TierEditor *********************************/
+/************************** KlattGrid_power2TierEditor *********************************/
 
-Thing_implement (KlattGrid_Power2TierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_power2TierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_Power2TierEditor KlattGrid_Power2TierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_power2TierEditor KlattGrid_power2TierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_Power2TierEditor me = Thing_new (KlattGrid_Power2TierEditor);
-		RealTier tier = klattgrid -> phonation -> power2.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_power2TierEditor me = Thing_new (KlattGrid_power2TierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> power2;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid power2 window not created.");
 	}
 }
 
-/************************** KlattGrid_FlutterTierEditor *********************************/
+/************************** KlattGrid_flutterTierEditor *********************************/
 
-Thing_implement (KlattGrid_FlutterTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_flutterTierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_FlutterTierEditor KlattGrid_FlutterTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_flutterTierEditor KlattGrid_flutterTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_FlutterTierEditor me = Thing_new (KlattGrid_FlutterTierEditor);
-		RealTier tier = klattgrid -> phonation -> flutter.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_flutterTierEditor me = Thing_new (KlattGrid_flutterTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> flutter;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid flutter window not created.");
 	}
 }
 
-/************************** KlattGrid_DoublePulsingTierEditor *********************************/
+/************************** KlattGrid_doublePulsingTierEditor *********************************/
 
-Thing_implement (KlattGrid_DoublePulsingTierEditor, KlattGrid_RealTierEditor, 0);
+Thing_implement (KlattGrid_doublePulsingTierEditor, KlattGrid_realTierEditor, 0);
 
-autoKlattGrid_DoublePulsingTierEditor KlattGrid_DoublePulsingTierEditor_create (const char32 *title, KlattGrid klattgrid) {
+KlattGrid_doublePulsingTierEditor KlattGrid_doublePulsingTierEditor_create (const char32 *title, KlattGrid klattgrid) {
 	try {
-		autoKlattGrid_DoublePulsingTierEditor me = Thing_new (KlattGrid_DoublePulsingTierEditor);
-		RealTier tier = klattgrid -> phonation -> doublePulsing.get();
-		KlattGrid_RealTierEditor_init (me.get(), title, klattgrid, tier);
-		return me;
+		autoKlattGrid_doublePulsingTierEditor me = Thing_new (KlattGrid_doublePulsingTierEditor);
+		RealTier tier = (RealTier) klattgrid -> phonation -> doublePulsing;
+		KlattGrid_realTierEditor_init (me.peek(), title, klattgrid, tier);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid double pulsing window not created.");
 	}
 }
 
-/************************** KlattGrid_FormantGridEditor *********************************/
+/************************** KlattGrid_formantGridEditor *********************************/
 
-Thing_implement (KlattGrid_FormantGridEditor, FormantGridEditor, 0);
+Thing_implement (KlattGrid_formantGridEditor, FormantGridEditor, 0);
 
 static bool FormantGrid_isEmpty (FormantGrid me) {
-	return my formants.size == 0 || my bandwidths.size == 0;
+	return my formants -> size == 0 || my bandwidths -> size == 0;
 }
 
-void structKlattGrid_FormantGridEditor :: v_play (double ltmin, double ltmax) {
+void structKlattGrid_formantGridEditor :: v_play (double ltmin, double ltmax) {
 	KlattGrid_Editor_defaultPlay (klattgrid, ltmin, ltmax);
 }
 
-autoKlattGrid_FormantGridEditor KlattGrid_FormantGridEditor_create (const char32 *title, KlattGrid data, int formantType) {
+KlattGrid_formantGridEditor KlattGrid_formantGridEditor_create (const char32 *title, KlattGrid data, int formantType) {
 	try {
-		Melder_assert (data);
-		autoFormantGrid* fg = KlattGrid_getAddressOfFormantGrid (data, formantType);
-		if (! fg) {
+		Melder_assert (data != NULL);
+		FormantGrid *fg = KlattGrid_getAddressOfFormantGrid (data, formantType);
+		if (fg == NULL) {
 			Melder_throw (U"Formant type unknown.");
 		}
-		if (FormantGrid_isEmpty (fg -> get())) {
+		if (FormantGrid_isEmpty (*fg)) {
 			Melder_throw (U"Cannot edit an empty formant grid.");
 		}
-		autoKlattGrid_FormantGridEditor me = Thing_new (KlattGrid_FormantGridEditor);
+		autoKlattGrid_formantGridEditor me = Thing_new (KlattGrid_formantGridEditor);
 		my klattgrid = data;
-		FormantGridEditor_init (me.get(), title, fg->get());
-		return me;
+		FormantGridEditor_init (me.peek(), title, *fg);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattGrid formant window not created.");
 	}
 }
 
-/* End of file KlattGridEditors.cpp */
+/* End of file KlattGridEditors.cpp */
\ No newline at end of file
diff --git a/dwtools/KlattGridEditors.h b/dwtools/KlattGridEditors.h
index b15af99..87eec4b 100644
--- a/dwtools/KlattGridEditors.h
+++ b/dwtools/KlattGridEditors.h
@@ -26,7 +26,7 @@
 #include "FormantGridEditor.h"
 
 
-Thing_define (KlattGrid_RealTierEditor, RealTierEditor) {
+Thing_define (KlattGrid_realTierEditor, RealTierEditor) {
 	KlattGrid klattgrid;
 
 	void v_createHelpMenuItems (EditorMenu menu)
@@ -35,10 +35,10 @@ Thing_define (KlattGrid_RealTierEditor, RealTierEditor) {
 		override;
 };
 
-void KlattGrid_RealTierEditor_init (KlattGrid_RealTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier data);
+void KlattGrid_realTierEditor_init (KlattGrid_realTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier data);
 
 
-Thing_define (KlattGrid_OpenPhaseTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_openPhaseTierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	double v_maximumLegalValue ()
@@ -69,10 +69,10 @@ Thing_define (KlattGrid_OpenPhaseTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_OpenPhaseTierEditor KlattGrid_OpenPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_openPhaseTierEditor KlattGrid_openPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_CollisionPhaseTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_collisionPhaseTierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	double v_maximumLegalValue ()
@@ -103,10 +103,10 @@ Thing_define (KlattGrid_CollisionPhaseTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_CollisionPhaseTierEditor KlattGrid_CollisionPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_collisionPhaseTierEditor KlattGrid_collisionPhaseTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_Power1TierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_power1TierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	const char32 * v_quantityText ()
@@ -135,10 +135,10 @@ Thing_define (KlattGrid_Power1TierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_Power1TierEditor KlattGrid_Power1TierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_power1TierEditor KlattGrid_power1TierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_Power2TierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_power2TierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	const char32 * v_quantityText ()
@@ -167,10 +167,10 @@ Thing_define (KlattGrid_Power2TierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_Power2TierEditor KlattGrid_Power2TierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_power2TierEditor KlattGrid_power2TierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_DoublePulsingTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_doublePulsingTierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	double v_maximumLegalValue ()
@@ -201,10 +201,10 @@ Thing_define (KlattGrid_DoublePulsingTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_DoublePulsingTierEditor KlattGrid_DoublePulsingTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_doublePulsingTierEditor KlattGrid_doublePulsingTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_PitchTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_pitchTierEditor, KlattGrid_realTierEditor) {
 	void v_createHelpMenuItems (EditorMenu menu)
 		override;
 	double v_minimumLegalValue ()
@@ -235,10 +235,10 @@ Thing_define (KlattGrid_PitchTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum frequency"; }
 };
 
-autoKlattGrid_PitchTierEditor KlattGrid_PitchTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_pitchTierEditor KlattGrid_pitchTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_FlutterTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_flutterTierEditor, KlattGrid_realTierEditor) {
 	double v_minimumLegalValue ()
 		override { return 0.0; }
 	double v_maximumLegalValue ()
@@ -269,10 +269,10 @@ Thing_define (KlattGrid_FlutterTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum"; }
 };
 
-autoKlattGrid_FlutterTierEditor KlattGrid_FlutterTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_flutterTierEditor KlattGrid_flutterTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_IntensityTierEditor, KlattGrid_RealTierEditor) {
+Thing_define (KlattGrid_intensityTierEditor, KlattGrid_realTierEditor) {
 	void v_createHelpMenuItems (EditorMenu menu)
 		override;
 	const char32 * v_quantityText ()
@@ -301,10 +301,10 @@ Thing_define (KlattGrid_IntensityTierEditor, KlattGrid_RealTierEditor) {
 		override { return U"Maximum intensity"; }
 };
 
-void KlattGrid_IntensityTierEditor_init (KlattGrid_IntensityTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier tier);
+void KlattGrid_intensityTierEditor_init (KlattGrid_intensityTierEditor me, const char32 *title, KlattGrid klattgrid, RealTier tier);
 
 
-Thing_define (KlattGrid_DecibelTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_decibelTierEditor, KlattGrid_intensityTierEditor) {
 	const char32 * v_quantityText ()
 		override { return U"Amplitude (dB)"; }
 	const char32 * v_quantityKey ()
@@ -331,28 +331,28 @@ Thing_define (KlattGrid_DecibelTierEditor, KlattGrid_IntensityTierEditor) {
 		override { return U"Maximum amplitude"; }
 };
 
-autoKlattGrid_DecibelTierEditor KlattGrid_DecibelTierEditor_create (const char32 *title, KlattGrid klattgrid, RealTier data);
+KlattGrid_decibelTierEditor KlattGrid_decibelTierEditor_create (const char32 *title, KlattGrid klattgrid, RealTier data);
 
 
-Thing_define (KlattGrid_VoicingAmplitudeTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_voicingAmplitudeTierEditor, KlattGrid_intensityTierEditor) {
 };
 
-autoKlattGrid_VoicingAmplitudeTierEditor KlattGrid_VoicingAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_voicingAmplitudeTierEditor KlattGrid_voicingAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_AspirationAmplitudeTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_aspirationAmplitudeTierEditor, KlattGrid_intensityTierEditor) {
 };
 
-autoKlattGrid_AspirationAmplitudeTierEditor KlattGrid_AspirationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_aspirationAmplitudeTierEditor KlattGrid_aspirationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_BreathinessAmplitudeTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_breathinessAmplitudeTierEditor, KlattGrid_intensityTierEditor) {
 };
 
-autoKlattGrid_BreathinessAmplitudeTierEditor KlattGrid_BreathinessAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_breathinessAmplitudeTierEditor KlattGrid_breathinessAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_SpectralTiltTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_spectralTiltTierEditor, KlattGrid_intensityTierEditor) {
 	double v_defaultYmin ()
 		override { return -50.0; }
 	double v_defaultYmax ()
@@ -363,10 +363,10 @@ Thing_define (KlattGrid_SpectralTiltTierEditor, KlattGrid_IntensityTierEditor) {
 		override { return U"10.0"; }
 };
 
-autoKlattGrid_SpectralTiltTierEditor KlattGrid_SpectralTiltTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_spectralTiltTierEditor KlattGrid_spectralTiltTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_FricationBypassTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_fricationBypassTierEditor, KlattGrid_intensityTierEditor) {
 	double v_defaultYmin ()
 		override { return -50.0; }
 	double v_defaultYmax ()
@@ -377,16 +377,16 @@ Thing_define (KlattGrid_FricationBypassTierEditor, KlattGrid_IntensityTierEditor
 		override { return U"10.0"; }
 };
 
-autoKlattGrid_FricationBypassTierEditor KlattGrid_FricationBypassTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_fricationBypassTierEditor KlattGrid_fricationBypassTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_FricationAmplitudeTierEditor, KlattGrid_IntensityTierEditor) {
+Thing_define (KlattGrid_fricationAmplitudeTierEditor, KlattGrid_intensityTierEditor) {
 };
 
-autoKlattGrid_FricationAmplitudeTierEditor KlattGrid_FricationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
+KlattGrid_fricationAmplitudeTierEditor KlattGrid_fricationAmplitudeTierEditor_create (const char32 *title, KlattGrid klattgrid);
 
 
-Thing_define (KlattGrid_FormantGridEditor, FormantGridEditor) {
+Thing_define (KlattGrid_formantGridEditor, FormantGridEditor) {
 	KlattGrid klattgrid;
 
 	void v_play (double tmin, double tmax)
@@ -395,7 +395,7 @@ Thing_define (KlattGrid_FormantGridEditor, FormantGridEditor) {
 		override { return false; }
 };
 
-autoKlattGrid_FormantGridEditor KlattGrid_FormantGridEditor_create (const char32 *title, KlattGrid data, int formantType);
+KlattGrid_formantGridEditor KlattGrid_formantGridEditor_create (const char32 *title, KlattGrid data, int formantType);
 
-/* End of file KlattGridEditors.h */
-#endif
+
+#endif // _KlattGridEditors_h_
\ No newline at end of file
diff --git a/dwtools/KlattGrid_def.h b/dwtools/KlattGrid_def.h
index 8e7cc15..543708f 100644
--- a/dwtools/KlattGrid_def.h
+++ b/dwtools/KlattGrid_def.h
@@ -1,6 +1,6 @@
 /* KlattGrid_def.h
  *
- * Copyright (C) 2008-2011 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2008-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,36 +18,26 @@
  */
 
 #define ooSTRUCT PhonationPoint
-oo_DEFINE_CLASS (PhonationPoint, AnyPoint)
-
-	oo_DOUBLE (period)   // 1/F0
+oo_DEFINE_CLASS (PhonationPoint, Data)
+	oo_DOUBLE (time)  /* AnyPoint : glottis closing time */
+	oo_DOUBLE (period)  /* 1/F0 */
 	oo_DOUBLE (openPhase)
 	oo_DOUBLE (collisionPhase)
-	oo_DOUBLE (te)   // time from glottis open to exponential decay or closing
-	oo_DOUBLE (power1)   // flow function
+	oo_DOUBLE (te) // time from glottis open to exponential decay or closing
+	oo_DOUBLE (power1)  /* flow function */
 	oo_DOUBLE (power2)
-	oo_DOUBLE (pulseScale)   // multiplier for diplophonia, shimmer
-
+	oo_DOUBLE (pulseScale) /* multiplier for diplophonia, shimmer */	
 oo_END_CLASS (PhonationPoint)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT PhonationTier
 oo_DEFINE_CLASS (PhonationTier, Function)
-
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, points, PhonationPoint, 0)
-
-	#if oo_DECLARING
-		AnyTier_METHODS
-	#endif
-
+	oo_COLLECTION (SortedSetOfDouble, points, PhonationPoint, 0)
 oo_END_CLASS (PhonationTier)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT PhonationGridPlayOptions
-oo_DEFINE_CLASS (PhonationGridPlayOptions, Daata)
-
+oo_DEFINE_CLASS (PhonationGridPlayOptions, Data)
 	oo_INT (voicing)
 	oo_INT (aspiration)
 	oo_INT (breathiness)
@@ -55,30 +45,27 @@ oo_DEFINE_CLASS (PhonationGridPlayOptions, Daata)
 	oo_INT (doublePulsing)
 	oo_INT (collisionPhase)
 	oo_INT (spectralTilt)
-	oo_INT (flowFunction)   // 1: user-defined with tiers (power1, power2); 2: (2,3); 3: (3,4)
+	oo_INT (flowFunction) // 1: User defined with tiers (power1, power2); 2: (2,3); 3: (3,4)
 	oo_INT (flowDerivative)
 	oo_DOUBLE (maximumPeriod)
-
 oo_END_CLASS (PhonationGridPlayOptions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT PhonationGrid
 oo_DEFINE_CLASS (PhonationGrid, Function)
-
-	oo_AUTO_OBJECT (PitchTier, 0, pitch)
-	oo_AUTO_OBJECT (RealTier, 0, flutter) // [0,1]
-	oo_AUTO_OBJECT (IntensityTier, 0, voicingAmplitude) // dB
-	oo_AUTO_OBJECT (RealTier, 0, doublePulsing) // [0,1]
-	oo_AUTO_OBJECT (RealTier, 0, openPhase) // (0,1)
-	oo_AUTO_OBJECT (RealTier, 0, collisionPhase) //
-	oo_AUTO_OBJECT (RealTier, 0, power1) // 2,3..
-	oo_AUTO_OBJECT (RealTier, 0, power2) // 3,4.. power2>power1
-	oo_AUTO_OBJECT (IntensityTier, 0, spectralTilt) // dB
-	oo_AUTO_OBJECT (IntensityTier, 0, aspirationAmplitude) // dB
-	oo_AUTO_OBJECT (IntensityTier, 0, breathinessAmplitude) // dB
+	oo_OBJECT (PitchTier, 0, pitch)
+	oo_OBJECT (RealTier, 0, flutter) // [0,1]
+	oo_OBJECT (IntensityTier, 0, voicingAmplitude) // dB
+	oo_OBJECT (RealTier, 0, doublePulsing) // [0,1]
+	oo_OBJECT (RealTier, 0, openPhase) // (0,1)
+	oo_OBJECT (RealTier, 0, collisionPhase) //
+	oo_OBJECT (RealTier, 0, power1) // 2,3..
+	oo_OBJECT (RealTier, 0, power2) // 3,4.. power2>power1
+	oo_OBJECT (IntensityTier, 0, spectralTilt) // dB
+	oo_OBJECT (IntensityTier, 0, aspirationAmplitude) // dB
+	oo_OBJECT (IntensityTier, 0, breathinessAmplitude) // dB
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (PhonationGridPlayOptions, 0, options)
+		oo_OBJECT (PhonationGridPlayOptions, 0, options)
 	#endif
 	#if oo_READING
 		options = PhonationGridPlayOptions_create ();
@@ -88,14 +75,11 @@ oo_DEFINE_CLASS (PhonationGrid, Function)
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (PhonationGrid)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT VocalTractGridPlayOptions
-oo_DEFINE_CLASS (VocalTractGridPlayOptions, Daata)
-
+oo_DEFINE_CLASS (VocalTractGridPlayOptions, Data)
 	oo_INT (filterModel)
 	oo_LONG (startOralFormant)
 	oo_LONG (endOralFormant)
@@ -103,42 +87,33 @@ oo_DEFINE_CLASS (VocalTractGridPlayOptions, Daata)
 	oo_LONG (endNasalFormant)
 	oo_LONG (startNasalAntiFormant)
 	oo_LONG (endNasalAntiFormant)
-
 oo_END_CLASS (VocalTractGridPlayOptions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT VocalTractGrid
 oo_DEFINE_CLASS (VocalTractGrid, Function)
-
-	oo_AUTO_OBJECT (FormantGrid, 0, oral_formants)
-	oo_AUTO_OBJECT (FormantGrid, 0, nasal_formants)
-	oo_AUTO_OBJECT (FormantGrid, 0, nasal_antiformants)
+	oo_OBJECT (FormantGrid, 0, oral_formants)
+	oo_OBJECT (FormantGrid, 0, nasal_formants)
+	oo_OBJECT (FormantGrid, 0, nasal_antiformants)
 	// for parallel synthesis
-	oo_COLLECTION_OF (OrderedOf, oral_formants_amplitudes, IntensityTier, 0)
-	oo_COLLECTION_OF (OrderedOf, nasal_formants_amplitudes, IntensityTier, 0)
-
+	oo_COLLECTION (Ordered, oral_formants_amplitudes, IntensityTier, 0)
+	oo_COLLECTION (Ordered, nasal_formants_amplitudes, IntensityTier, 0)
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (VocalTractGridPlayOptions, 0, options)
+		oo_OBJECT (VocalTractGridPlayOptions, 0, options)
 	#endif
-
 	#if oo_READING
 		options = VocalTractGridPlayOptions_create ();
 		VocalTractGrid_setNames (this);
 	#endif
-
 	#if oo_DECLARING
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (VocalTractGrid)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT CouplingGridPlayOptions
-oo_DEFINE_CLASS (CouplingGridPlayOptions, Daata)
-
+oo_DEFINE_CLASS (CouplingGridPlayOptions, Data)
 	oo_LONG (startTrachealFormant)
 	oo_LONG (endTrachealFormant)
 	oo_LONG (startTrachealAntiFormant)
@@ -149,112 +124,85 @@ oo_DEFINE_CLASS (CouplingGridPlayOptions, Daata)
 	oo_LONG (endDeltaBandwidth)
 	oo_INT (openglottis)
 	oo_DOUBLE (fadeFraction)
-
 oo_END_CLASS (CouplingGridPlayOptions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT CouplingGrid
 oo_DEFINE_CLASS (CouplingGrid, Function)
-
-	oo_AUTO_OBJECT (FormantGrid, 0, tracheal_formants)
-	oo_AUTO_OBJECT (FormantGrid, 0, tracheal_antiformants)
-	oo_COLLECTION_OF (OrderedOf, tracheal_formants_amplitudes, IntensityTier, 0)
-	oo_AUTO_OBJECT (FormantGrid, 0, delta_formants)
-
+	oo_OBJECT (FormantGrid, 0, tracheal_formants)
+	oo_OBJECT (FormantGrid, 0, tracheal_antiformants)
+	oo_COLLECTION (Ordered, tracheal_formants_amplitudes, IntensityTier, 0)
+	oo_OBJECT (FormantGrid, 0, delta_formants)
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (PhonationTier, 0, glottis)
-		oo_AUTO_OBJECT (CouplingGridPlayOptions, 0, options)
+		oo_OBJECT (PhonationTier, 0, glottis)
+		oo_OBJECT (CouplingGridPlayOptions, 0, options)
 	#endif
-
 	#if oo_READING
 		options = CouplingGridPlayOptions_create ();
 		glottis = PhonationTier_create (xmin, xmax);
 		CouplingGrid_setNames (this);
 	#endif
-
 	#if oo_DECLARING
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (CouplingGrid)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT FricationGridPlayOptions
-oo_DEFINE_CLASS (FricationGridPlayOptions, Daata)
-
+oo_DEFINE_CLASS (FricationGridPlayOptions, Data)
 	oo_LONG (startFricationFormant)
 	oo_LONG (endFricationFormant)
 	oo_INT (bypass)
-
 oo_END_CLASS (FricationGridPlayOptions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT FricationGrid
 oo_DEFINE_CLASS (FricationGrid, Function)
-
-	oo_AUTO_OBJECT (IntensityTier, 0, fricationAmplitude) // dB
-	oo_AUTO_OBJECT (FormantGrid, 0, frication_formants)
-	oo_COLLECTION_OF (OrderedOf, frication_formants_amplitudes, IntensityTier, 0)
-	oo_AUTO_OBJECT (IntensityTier, 0, bypass) // dB
-
+	oo_OBJECT (IntensityTier, 0, fricationAmplitude) // dB
+	oo_OBJECT (FormantGrid, 0, frication_formants)
+	oo_COLLECTION (Ordered, frication_formants_amplitudes, RealTier, 0)
+	oo_OBJECT (IntensityTier, 0, bypass) // dB
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (FricationGridPlayOptions, 0, options)
+		oo_OBJECT (FricationGridPlayOptions, 0, options)
 	#endif
-
 	#if oo_READING
 		options = FricationGridPlayOptions_create ();
 		FricationGrid_setNames (this);
 	#endif
-
 	#if oo_DECLARING
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (FricationGrid)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT KlattGridPlayOptions
-oo_DEFINE_CLASS (KlattGridPlayOptions, Daata)
-
+oo_DEFINE_CLASS (KlattGridPlayOptions, Data)
 	oo_DOUBLE (samplingFrequency)
 	oo_INT (scalePeak)
 	oo_DOUBLE (xmin)
 	oo_DOUBLE (xmax)
-
 oo_END_CLASS (KlattGridPlayOptions)
 #undef ooSTRUCT
 
-
 #define ooSTRUCT KlattGrid
 oo_DEFINE_CLASS (KlattGrid, Function)
-
-	oo_AUTO_OBJECT (PhonationGrid, 0, phonation)   // glottal source
-	oo_AUTO_OBJECT (VocalTractGrid, 0, vocalTract) // filter
-	oo_AUTO_OBJECT (CouplingGrid, 0, coupling)     // coupling between source and filter
-	oo_AUTO_OBJECT (FricationGrid, 0, frication)   // frication source
-	oo_AUTO_OBJECT (IntensityTier, 0, gain)        // final scaling
-
+	oo_OBJECT (PhonationGrid, 0, phonation)   // Glottal source
+	oo_OBJECT (VocalTractGrid, 0, vocalTract) // Filter
+	oo_OBJECT (CouplingGrid, 0, coupling)     // Coupling between source and filter
+	oo_OBJECT (FricationGrid, 0, frication)   // Frication source
+	oo_OBJECT (IntensityTier, 0, gain)        // final scaling
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (KlattGridPlayOptions, 0, options)
+		oo_OBJECT (KlattGridPlayOptions, 0, options)
 	#endif
-
 	#if oo_READING
 		options = KlattGridPlayOptions_create ();
 		KlattGrid_setNames (this);
 	#endif
-
 	#if oo_DECLARING
 		void v_info ()
 			override;
 	#endif
-
 oo_END_CLASS (KlattGrid)
 #undef ooSTRUCT
-
-/* End of file KlattGrid_def.h */
diff --git a/dwtools/KlattTable.cpp b/dwtools/KlattTable.cpp
index ff691cd..a099dcd 100644
--- a/dwtools/KlattTable.cpp
+++ b/dwtools/KlattTable.cpp
@@ -1,6 +1,6 @@
 /* KlattTable.cpp
  *
- * Copyright (C) 2008-2011, 2015-2016 David Weenink
+ * Copyright (C) 2008-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -362,6 +362,8 @@ Thing_implement (KlattTable, Table, 0);
 #define ALL_PARALLEL     2
 #define KlattTable_NPAR	40        /* Number of control parameters */
 #define MAX_SAM          20000     /* Maximum sample rate */
+#define TRUE             1
+#define FALSE            0
 #define IMPULSIVE        1         /* Type of voicing source */
 #define NATURAL          2
 #define SAMPLED          3
@@ -452,11 +454,11 @@ typedef struct structKlattGlobal {
 	short *natural_samples; /* pointer to an array of glottal samples */
 	long F0hz10; /* Voicing fund freq in units of 0.1 Hz */
 	long original_f0; /* original value of f0 not modified by flutter (kanweg) */
-	autoResonator rp[7], rc[9], rnpp, rnpc, rgl, rlp, rout;
-	autoAntiResonator rnz;
+	Resonator rp[7], rc[9], rnpp, rnpc, rgl, rlp, rout;
+	AntiResonator rnz;
 } *KlattGlobal;
 
-autoKlattTable KlattTable_readFromRawTextFile (MelderFile fs) {
+KlattTable KlattTable_readFromRawTextFile (MelderFile fs) {
 	try {
 		autoMatrix thee = Matrix_readFromRawTextFile (fs);
 
@@ -465,17 +467,17 @@ autoKlattTable KlattTable_readFromRawTextFile (MelderFile fs) {
 		}
 
 		autoKlattTable me = Thing_new (KlattTable);
-		Table_initWithColumnNames (me.get(), thy ny, columnNames);
+		Table_initWithColumnNames (me.peek(), thy ny, columnNames);
 		for (long irow = 1; irow <= thy ny; irow++) {
 			for (long jcol = 1; jcol <= KlattTable_NPAR; jcol++) {
 				double val = thy z[irow][jcol];
 				if (jcol > 3 && jcol < 13 && (jcol % 2 == 0) && val <= 0) { // bw == 0?
 					val = thy z[irow][jcol - 1] / 10;
 				}
-				Table_setNumericValue ( (Table) me.get(), irow, jcol, val);
+				Table_setNumericValue ( (Table) me.peek(), irow, jcol, val);
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattTable not read from file.");
 	}
@@ -483,17 +485,17 @@ autoKlattTable KlattTable_readFromRawTextFile (MelderFile fs) {
 
 static void KlattGlobal_free (KlattGlobal me) {
 	for (long i = 1; i <= 8; i++) {
-		my rc[i].reset();
+		Melder_free (my rc[i]);
 		if (i <= 6) {
-			my rp[i].reset();
+			Melder_free (my rp[i]);
 		}
 	}
-	my rnpp.reset();
-	my rnpc.reset();
-	my rnz.reset();
-	my rgl.reset();
-	my rlp.reset();
-	my rout.reset();
+	Melder_free (my rnpp);
+	Melder_free (my rnpc);
+	Melder_free (my rnz);
+	Melder_free (my rgl);
+	Melder_free (my rlp);
+	Melder_free (my rout);
 	Melder_free (me);
 }
 
@@ -548,7 +550,7 @@ static void KlattGlobal_init (KlattGlobal me, int synthesisModel, int numberOfFo
 
 	my FLPhz = (long) floor (0.0950 * my samrate); // depends on samplingFrequency ????
 	my BLPhz = (long) floor (0.0630 * my samrate);
-	Filter_setFB (my rlp.get(), my FLPhz, my BLPhz);
+	Filter_setFB (my rlp, my FLPhz, my BLPhz);
 }
 
 static KlattFrame KlattFrame_create () {
@@ -559,12 +561,12 @@ static void KlattFrame_free (KlattFrame me) {
 	Melder_free (me);
 }
 
-autoKlattTable KlattTable_create (double frameDuration, double totalDuration) {
+KlattTable KlattTable_create (double frameDuration, double totalDuration) {
 	try {
-		autoKlattTable me = Thing_new (KlattTable);
+		autoKlattTable me = (KlattTable) Thing_new (KlattTable);
 		long nrows = (long) floor (totalDuration / frameDuration) + 1;
-		Table_initWithColumnNames (me.get(), nrows, columnNames);
-		return me;
+		Table_initWithColumnNames (me.peek(), nrows, columnNames);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattTable not created.");
 	}
@@ -601,28 +603,28 @@ static void KlattGlobal_getFrame (KlattGlobal me, KlattFrame thee) {
 
 	for (long i = 8; i > 0; i--) {
 		if (my nfcascade >= i) {
-			Filter_setFB (my rc[i].get(), thy Fhz[i], thy Bhz[i]);
+			Filter_setFB (my rc[i], thy Fhz[i], thy Bhz[i]);
 		}
 	}
 
 	/* Set coefficients of nasal resonator and zero antiresonator */
 
-	Filter_setFB (my rnpc.get(), thy FNPhz, thy BNPhz);
-	Filter_setFB (my rnz.get(), thy FNZhz, thy BNZhz);
+	Filter_setFB (my rnpc, thy FNPhz, thy BNPhz);
+	Filter_setFB (my rnz, thy FNZhz, thy BNZhz);
 
 	/* Set coefficients of parallel resonators, and amplitude of outputs */
 
 	for (long i = 1; i <= 6; i++) {
-		Filter_setFB (my rp[i].get(), thy Fhz[i], thy Bphz[i]);
+		Filter_setFB (my rp[i], thy Fhz[i], thy Bphz[i]);
 		my rp[i] -> a *= amp_parF[i] * DBtoLIN (thy A[i]);
 	}
 
-	Filter_setFB (my rnpp.get(), thy FNPhz, thy BNPhz);
+	Filter_setFB (my rnpp, thy FNPhz, thy BNPhz);
 	my rnpp -> a *= amp_parFNP;
 
 	/* output low-pass filter */
 
-	Filter_setFB (my rout.get(), 0, (long) (my samrate / 2));
+	Filter_setFB (my rout, 0, (long) (my samrate / 2));
 }
 
 /*
@@ -675,7 +677,7 @@ static double KlattGlobal_impulsive_source (KlattGlobal me) {   // ppgb: dit was
 
 	vwave = my nper < 3 ? doublet[my nper] : 0;
 
-	return Filter_getOutput (my rgl.get(), vwave);
+	return Filter_getOutput (my rgl, vwave);
 }
 
 /*
@@ -839,7 +841,7 @@ static void KlattGlobal_pitch_synch_par_reset (KlattGlobal me) {
 
 		long temp = my samrate / my nopen;
 
-		Filter_setFB (my rgl.get(), 0, temp); // Only used for impulsive source.
+		Filter_setFB (my rgl, 0, temp); // Only used for impulsive source.
 
 		/* Make gain at F1 about constant */
 
@@ -942,7 +944,7 @@ static void KlattGlobal_synthesizeFrame (KlattGlobal me, short *output) {
 				to samrate samples/sec.  Resonator f=.09*samrate, bw=.06*samrate
 			*/
 
-			voice = Filter_getOutput (my rlp.get(), voice);
+			voice = Filter_getOutput (my rlp, voice);
 
 			/* Increment counter that keeps track of 4*samrate samples per sec */
 
@@ -986,12 +988,12 @@ static void KlattGlobal_synthesizeFrame (KlattGlobal me, short *output) {
 		*/
 
 		if (my synthesis_model != ALL_PARALLEL) {
-			out = Filter_getOutput (my rnz.get(), glotout); /* anti resonator */
-			out = Filter_getOutput (my rnpc.get(), out);
+			out = Filter_getOutput (my rnz, glotout); /* anti resonator */
+			out = Filter_getOutput (my rnpc, out);
 
 			for (long i = 8; i > 0; i--) {
 				if (my nfcascade >= i) {
-					out = Filter_getOutput (my rc[i].get(), out);
+					out = Filter_getOutput (my rc[i], out);
 				}
 			}
 		} else {
@@ -1020,16 +1022,16 @@ static void KlattGlobal_synthesizeFrame (KlattGlobal me, short *output) {
 		Problem: The source signal is already v'[n], and we are differentiating here again ???
 		*/
 
-		out += Filter_getOutput (my rp[1].get(), sourc);
+		out += Filter_getOutput (my rp[1], sourc);
 
 		sourc = frics + par_glotout - glotlast; // diff
 		glotlast = par_glotout;
 
-		out += Filter_getOutput (my rnpp.get(), sourc);
+		out += Filter_getOutput (my rnpp, sourc);
 
 		for (long i = 6; i >= 2; i--) {
 			if (my nfcascade >= i) {
-				out = Filter_getOutput (my rp[i].get(), sourc) - out;
+				out = Filter_getOutput (my rp[i], sourc) - out;
 			}
 		}
 
@@ -1063,7 +1065,7 @@ static void KlattGlobal_synthesizeFrame (KlattGlobal me, short *output) {
 			}
 		}
 
-		out = Filter_getOutput (my rout.get(), out);
+		out = Filter_getOutput (my rout, out);
 
 		double temp = out * my amp_gain0;  /* Convert back to integer */
 
@@ -1080,49 +1082,50 @@ static void KlattGlobal_synthesizeFrame (KlattGlobal me, short *output) {
 static int KlattTable_checkLimits (KlattTable me) {
 	long nviolations_upper[KlattTable_NPAR + 1] = { 0 }, nviolations_lower[KlattTable_NPAR + 1] = { 0 };
 	long lower[KlattTable_NPAR + 1] = { 0, // dummy
-		10, 0,  // f0, av
-		200, 40, 550, 40, 1200, 40, 1200, 40, 1200, 40, 1200, 40, // f1,b1 -- f6,b6
-		248, 40, 248, 40, // fnz, bnz, fnp, bnp
-		0, 0, 0, 0, 0, 0, // ah, kopen, aturb, tilt, af, skew
-		0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, // a1,b1p -- a6,b6p
-		0, 0, 0, 0 // anp, ab, avp, gain
-	};
+	                                    10, 0,  // f0, av
+	                                    200, 40, 550, 40, 1200, 40, 1200, 40, 1200, 40, 1200, 40, // f1,b1 -- f6,b6
+	                                    248, 40, 248, 40, // fnz, bnz, fnp, bnp
+	                                    0, 0, 0, 0, 0, 0, // ah, kopen, aturb, tilt, af, skew
+	                                    0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, // a1,b1p -- a6,b6p
+	                                    0, 0, 0, 0 // anp, ab, avp, gain
+	                                  };
 	long upper[KlattTable_NPAR + 1] = { 0, // dummy
-		10000, 70,   // f0, av
-		1300, 1000, 3000, 1000, 4999, 1000, 4999, 1000, 6999, 1000, 7000, 1000,  // f1,b1 -- f6,b6
-		528, 1000, 528, 1000, // fnz, bnz, fnp, bnp
-		70, 60, 80, 24, 80, 40,  // ah, kopen, aturb, tilt, af, skew
-		80, 1000, 80, 1000, 80, 1000, 80, 1000, 80, 1000, 80, 1000, // a1,b1p -- a6,b6p
-		80, 80, 70, 80  // anp, ab, avp, gain
-	};
+	                                    10000, 70,   // f0, av
+	                                    1300, 1000, 3000, 1000, 4999, 1000, 4999, 1000, 6999, 1000, 7000, 1000,  // f1,b1 -- f6,b6
+	                                    528, 1000, 528, 1000, // fnz, bnz, fnp, bnp
+	                                    70, 60, 80, 24, 80, 40,  // ah, kopen, aturb, tilt, af, skew
+	                                    80, 1000, 80, 1000, 80, 1000, 80, 1000, 80, 1000, 80, 1000, // a1,b1p -- a6,b6p
+	                                    80, 80, 70, 80  // anp, ab, avp, gain
+	                                  };
 
 	long nv = 0;
-	for (long irow = 1; irow <= my rows.size; irow ++) {
+	for (long irow = 1; irow <= my rows -> size; irow++) {
 		for (long j = 1; j <= KlattTable_NPAR; j++) {
-			long val = Table_getNumericValue_Assert (me, irow, j);   // ppgb: truncatie? kan dat kloppen?
-			if (val < lower [j]) {
-				nviolations_lower [j] ++;
-				nv ++;
+			long val = Table_getNumericValue_Assert ( (Table) me, irow, j);   // ppgb: truncatie? kan dat kloppen?
+			if (val < lower[j]) {
+				nviolations_lower[j]++; nv++;
 			} else if (val > upper[j]) {
-				nviolations_upper [j] ++;
-				nv ++;
+				nviolations_upper[j]++; nv++;
 			}
 		}
 	}
 	if (nv > 0) {
 		MelderInfo_open ();
 		MelderInfo_writeLine (U"Diagnostics for KlattTable \"", Thing_getName (me), U"\":");
-		MelderInfo_writeLine (U"Number of frames: ", my rows.size);
-		for (long j = 1; j <= KlattTable_NPAR; j ++) {
-			if (nviolations_lower [j] > 0) {
-				if (nviolations_upper [j] > 0) {
-					MelderInfo_writeLine (columnNamesA [j], U": ", nviolations_lower [j], U" frame(s) < min = ", nviolations_lower [j], U"; ",
-						nviolations_upper [j], U" frame(s) > max = ", upper [j]);
+		MelderInfo_writeLine (U"Number of frames: ", my rows -> size);
+		for (long j = 1; j <= KlattTable_NPAR; j++) {
+			if (nviolations_lower[j] > 0) {
+				if (nviolations_upper[j] > 0) {
+					MelderInfo_writeLine (columnNamesA[j], U": ",
+					                       nviolations_lower[j], U" frame(s) < min = ", nviolations_lower[j], U"; ",
+					                       nviolations_upper[j], U" frame(s) > max = ", upper[j]);
 				} else {
-					MelderInfo_writeLine (columnNamesA [j], U": ", nviolations_lower [j], U" frame(s) < min = ", lower [j]);
+					MelderInfo_writeLine (columnNamesA[j], U": ",
+					                       nviolations_lower[j], U" frame(s) < min = ", lower[j]);
 				}
 			} else if (nviolations_upper[j] > 0) {
-				MelderInfo_writeLine (columnNamesA [j], U": ", nviolations_upper [j], U" frame(s) > max = ", upper [j]);
+				MelderInfo_writeLine (columnNamesA[j], U": ",
+				                       nviolations_upper[j], U" frame(s) > max = ", upper[j]);
 			}
 		}
 		MelderInfo_close ();
@@ -1131,7 +1134,7 @@ static int KlattTable_checkLimits (KlattTable me) {
 	return 1;
 }
 
-autoSound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synthesisModel, int numberOfFormants, double frameDuration, int glottalSource, double flutter, int outputType) {
+Sound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synthesisModel, int numberOfFormants, double frameDuration, int glottalSource, double flutter, int outputType) {
 	KlattGlobal thee = 0;
 	KlattFrame frame = 0;
 	try {
@@ -1147,11 +1150,11 @@ autoSound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synt
 
 		KlattGlobal_init (thee, synthesisModel, numberOfFormants, glottalSource, frameDuration, (long) floor (flutter), outputType);
 
-		autoSound him = Sound_createSimple (1, frameDuration * my rows.size, samplingFrequency);
+		autoSound him = Sound_createSimple (1, frameDuration * my rows -> size, samplingFrequency);
 
-		for (long irow = 1 ; irow <= my rows.size; irow++) {
+		for (long irow = 1 ; irow <= my rows -> size; irow++) {
 			for (long col = 1; col <= KlattTable_NPAR; col++) {
-				par[col] = Table_getNumericValue_Assert (me, irow, col);   // ppgb: truncatie?
+				par[col] = Table_getNumericValue_Assert ( (Table) me, irow, col);   // ppgb: truncatie?
 			}
 			long jcol = 1;
 			frame ->  F0hz10 = par[jcol++]; frame ->  AVdb = par[jcol++];
@@ -1186,7 +1189,7 @@ autoSound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synt
 			}
 		}
 		KlattGlobal_free (thee); KlattFrame_free (frame);
-		return him;
+		return him.transfer ();
 	} catch (MelderError) {
 		KlattGlobal_free (thee);
 		KlattFrame_free (frame);
@@ -1195,7 +1198,7 @@ autoSound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synt
 }
 
 
-autoKlattTable KlattTable_createExample () {
+KlattTable KlattTable_createExample () {
 	long nrows = 1376;
 	struct klatt_params {
 		short p[40];
@@ -2578,41 +2581,41 @@ autoKlattTable KlattTable_createExample () {
 		{{ 830, 0, 920, 0, 1445, 0, 2804, 0, 3915, 0, 5969, 0, 6256, 0, 0, 0, 200, 30, 0, 60, 0, 0, 0, 0, 0, 87, 0, 62, 0, 103, 0, 105, 0, 80, 0, 80, 0, 0, 0, 60 }}
 	};
 	try {
-		autoKlattTable me = Thing_new (KlattTable);
-		Table_initWithColumnNames (me.get(), nrows, columnNames);
+		autoKlattTable me = (KlattTable) Thing_new (KlattTable);
+		Table_initWithColumnNames (me.peek(), nrows, columnNames);
 		for (long irow = 1; irow <= nrows; irow++) {
 			for (long jcol = 1; jcol <= KlattTable_NPAR; jcol++) {
 				double val = klatt_data[irow - 1].p[jcol - 1];
 				if (jcol > 3 && jcol < 13 && (jcol % 2 == 0) && val <= 0) { // bw == 0?
 					val = klatt_data[irow - 1].p[jcol] / 10;
 				}
-				Table_setNumericValue ( (Table) me.get(), irow, jcol, val);
+				Table_setNumericValue ( (Table) me.peek(), irow, jcol, val);
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U" KlattTable example not created.");
 	}
 }
 
-autoKlattTable Table_to_KlattTable (Table me) {
+KlattTable Table_to_KlattTable (Table me) {
 	try {
 		if (my numberOfColumns != KlattTable_NPAR) {
 			Melder_throw (U"A KlattTable needs ", KlattTable_NPAR, U" columns.");
 		}
 		autoKlattTable thee = Thing_new (KlattTable);
-		my structTable :: v_copy (thee.get());
-		return thee;
+		my structTable :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"KlattTable not created from Table.");
 	}
 }
 
-autoTable KlattTable_to_Table (KlattTable me) {
+Table KlattTable_to_Table (KlattTable me) {
 	try {
 		autoTable thee = Thing_new (Table);
-		my structTable :: v_copy (thee.get());
-		return thee;
+		my structTable :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created from KlattTable.");
 	}
diff --git a/dwtools/KlattTable.h b/dwtools/KlattTable.h
index 60e49ca..912a2b6 100644
--- a/dwtools/KlattTable.h
+++ b/dwtools/KlattTable.h
@@ -2,7 +2,7 @@
 #define _KlattTable_h_
 /* KlattTable.h
  *
- * Copyright (C) 2008-2011, 2015 David Weenink
+ * Copyright (C) 2008-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
 Thing_define (KlattTable, Table) {
 };
 
-autoKlattTable KlattTable_create (double frameDuration, double totalDuration);
+KlattTable KlattTable_create (double frameDuration, double totalDuration);
 /*
 f0  (08)	This is the fundamental frequency (pitch) of the utterance.
 		In this case it is specified in steps of 0.1 Hz, hence 100Hz
@@ -94,16 +94,16 @@ gain  	Overall gain in dB range 0-80.
 
 */
 
-autoSound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synthesisModel, int numberOfFormants, double frameDuration, int voicing, double flutter, int outputType);
+Sound KlattTable_to_Sound (KlattTable me, double samplingFrequency, int synthesisModel, int numberOfFormants, double frameDuration, int voicing,
+double flutter, int outputType);
 
-autoSound KlattTable_and_Sound_to_Sound (KlattTable me, Sound thee);
+Sound KlattTable_and_Sound_to_Sound (KlattTable me, Sound thee);
 
-autoKlattTable KlattTable_createExample ();
+KlattTable KlattTable_createExample ();
 
-autoKlattTable Table_to_KlattTable (Table me);
+KlattTable Table_to_KlattTable (Table me);
+Table KlattTable_to_Table (KlattTable me);
 
-autoTable KlattTable_to_Table (KlattTable me);
-
-autoKlattTable KlattTable_readFromRawTextFile (MelderFile fs);
+KlattTable KlattTable_readFromRawTextFile (MelderFile fs);
 
 #endif /* _KlattTable_h_ */
diff --git a/dwtools/LFCC.cpp b/dwtools/LFCC.cpp
index 3c5e2d9..c1e0f3e 100644
--- a/dwtools/LFCC.cpp
+++ b/dwtools/LFCC.cpp
@@ -2,7 +2,7 @@
  *
  *	Linear Frequency Cepstral Coefficients class.
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,11 +29,12 @@
 
 Thing_implement (LFCC, CC, 1);
 
-autoLFCC LFCC_create (double tmin, double tmax, long nt, double dt, double t1, long maximumNumberOfCoefficients, double fmin, double fmax) {
+LFCC LFCC_create (double tmin, double tmax, long nt, double dt, double t1,
+                  long maximumNumberOfCoefficients, double fmin, double fmax) {
 	try {
 		autoLFCC me = Thing_new (LFCC);
-		CC_init (me.get(), tmin, tmax, nt, dt, t1, maximumNumberOfCoefficients, fmin, fmax);
-		return me;
+		CC_init (me.peek(), tmin, tmax, nt, dt, t1, maximumNumberOfCoefficients, fmin, fmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LFCC not created.");
 	}
diff --git a/dwtools/LFCC.h b/dwtools/LFCC.h
index fb2e737..40263ef 100644
--- a/dwtools/LFCC.h
+++ b/dwtools/LFCC.h
@@ -4,7 +4,7 @@
  *
  * Linear Frequency Cepstral Coefficients class.
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@
 Thing_define (LFCC, CC) {
 };
 
-autoLFCC LFCC_create (double tmin, double tmax, long nt, double dt, double t1,
+LFCC LFCC_create (double tmin, double tmax, long nt, double dt, double t1,
 	long maximumNumberOfCoefficients, double fmin, double fmax);
 
 #endif /* _LFCC_h_ */
diff --git a/dwtools/LongSound_extensions.cpp b/dwtools/LongSound_extensions.cpp
index 47e0547..a521e8b 100644
--- a/dwtools/LongSound_extensions.cpp
+++ b/dwtools/LongSound_extensions.cpp
@@ -1,6 +1,6 @@
 /* LongSound_extensions.c
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,7 +49,8 @@
 /*
   Precondition: size (my buffer) >= nbuf
 */
-static void _LongSound_to_multichannel_buffer (LongSound me, short *buffer, long nbuf, int nchannels, int ichannel, long ibuf) {
+static void _LongSound_to_multichannel_buffer (LongSound me, short *buffer, long nbuf,
+        int nchannels, int ichannel, long ibuf) {
 	long numberOfReads = (my nx - 1) / nbuf + 1;
 	long n_to_read = 0;
 
@@ -123,13 +124,14 @@ static void MelderFile_truncate (MelderFile me, long size) {
 	HANDLE hFile;
 	DWORD fdwAccess = GENERIC_READ | GENERIC_WRITE, fPos;
 	DWORD fdwShareMode = 0; /* File cannot be shared */
-	LPSECURITY_ATTRIBUTES lpsa = nullptr;
+	LPSECURITY_ATTRIBUTES lpsa = NULL;
 	DWORD fdwCreate = OPEN_EXISTING;
 	LARGE_INTEGER fileSize;
 
 	MelderFile_close (me);
 
-	hFile = CreateFileW (Melder_peek32toW (my path), fdwAccess, fdwShareMode, lpsa, fdwCreate, FILE_ATTRIBUTE_NORMAL, nullptr);
+	hFile = CreateFileW (Melder_peek32toW (my path), fdwAccess, fdwShareMode, lpsa, fdwCreate,
+	                     FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile == INVALID_HANDLE_VALUE) {
 		Melder_throw (U"Can't open file ", me, U".");
 	}
@@ -151,9 +153,8 @@ static void MelderFile_truncate (MelderFile me, long size) {
 #elif defined(linux) || defined(macintosh)
 
 	MelderFile_close (me);
-	if (truncate (Melder_peek32to8 (my path), size) == -1) {
-		Melder_throw (U"Truncating failed for file ", MelderFile_messageName (me), U" (", Melder_peek8to32 (strerror (errno)), U").");
-	}
+	if (truncate (Melder_peek32to8 (my path), size) == -1) Melder_throw (U"Truncating failed for file ",
+		        MelderFile_messageName (me), U" (", Melder_peek8to32 (strerror (errno)), U").");
 #else
 	Melder_throw (U"Don't know what to do.");
 #endif
@@ -168,17 +169,18 @@ static void writePartToOpenFile16 (LongSound me, int audioFileType, long imin, l
 			long numberOfSamplesToCopy = ibuffer < numberOfBuffers ? my nmax : numberOfSamplesInLastBuffer;
 			LongSound_readAudioToShort (me, my buffer, offset, numberOfSamplesToCopy);
 			offset += numberOfSamplesToCopy;
-			MelderFile_writeShortToAudio (file, my numberOfChannels, Melder_defaultAudioFileEncoding (audioFileType, numberOfBitsPerSamplePoint), my buffer, numberOfSamplesToCopy);
+			MelderFile_writeShortToAudio (file, my numberOfChannels,
+			    Melder_defaultAudioFileEncoding (audioFileType, numberOfBitsPerSamplePoint), my buffer, numberOfSamplesToCopy);
 		}
 	}
-
-	//  We "have" no samples any longer.
-	
+	/*
+	 * We "have" no samples any longer.
+	 */
 	my imin = 1;
 	my imax = 0;
 }
 
-void LongSounds_appendToExistingSoundFile (OrderedOf<structSampled>* me, MelderFile file) {
+void LongSounds_appendToExistingSoundFile (Collection me, MelderFile file) {
 	long pre_append_endpos = 0, numberOfBitsPerSamplePoint = 16;
 	try {
 		if (my size < 1) {
@@ -201,7 +203,8 @@ void LongSounds_appendToExistingSoundFile (OrderedOf<structSampled>* me, MelderF
 		long startOfData;
 		int32 numberOfSamples;
 		int numberOfChannels, encoding;
-		int audioFileType = MelderFile_checkSoundFile (file, &numberOfChannels, &encoding, &sampleRate_d, &startOfData, &numberOfSamples);
+		int audioFileType = MelderFile_checkSoundFile (file, &numberOfChannels,
+		                    &encoding, &sampleRate_d, &startOfData, &numberOfSamples);
 
 		if (audioFileType == 0) {
 			Melder_throw (U"Not a sound file.");
@@ -210,9 +213,9 @@ void LongSounds_appendToExistingSoundFile (OrderedOf<structSampled>* me, MelderF
 		// Check whether all the sample rates and channels match.
 
 		long sampleRate = (long) floor (sampleRate_d);
-		for (long i = 1; i <= my size; i ++) {
-			bool sampleRatesMatch, numbersOfChannelsMatch;
-			Sampled data = my at [i];
+		for (long i = 1; i <= my size; i++) {
+			int sampleRatesMatch, numbersOfChannelsMatch;
+			Sampled data = (Sampled) my item [i];
 			if (data -> classInfo == classSound) {
 				Sound sound = (Sound) data;
 				sampleRatesMatch = floor (1.0 / sound -> dx + 0.5) == sampleRate;
@@ -239,8 +242,8 @@ void LongSounds_appendToExistingSoundFile (OrderedOf<structSampled>* me, MelderF
 		pre_append_endpos = MelderFile_tell (file);
 
 		errno = 0;
-		for (long i = 1; i <= my size; i ++) {
-			Sampled data = my at [i];
+		for (long i = 1; i <= my size; i++) {
+			Sampled data = (Sampled) my item [i];
 			if (data -> classInfo == classSound) {
 				Sound sound = (Sound) data;
 				MelderFile_writeFloatToAudio (file, sound -> ny, Melder_defaultAudioFileEncoding
diff --git a/dwtools/LongSound_extensions.h b/dwtools/LongSound_extensions.h
index 6f085d8..e57d59c 100644
--- a/dwtools/LongSound_extensions.h
+++ b/dwtools/LongSound_extensions.h
@@ -2,7 +2,7 @@
 #define _LongSound_extensions_h_
 /* LongSound_extensions.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,8 +27,9 @@
 
 #include "LongSound.h"
 
-void LongSounds_writeToStereoAudioFile16 (LongSound me, LongSound thee, int audioFileType, MelderFile file);
+void LongSounds_writeToStereoAudioFile16 (LongSound me, LongSound thee,
+	int audioFileType, MelderFile file);
 
-void LongSounds_appendToExistingSoundFile (OrderedOf<structSampled>* me, MelderFile file);
+void LongSounds_appendToExistingSoundFile (Collection me, MelderFile file);
 
 #endif /* _LongSound_extensions_h_ */
diff --git a/dwtools/MDS.cpp b/dwtools/MDS.cpp
index be604fd..140191c 100644
--- a/dwtools/MDS.cpp
+++ b/dwtools/MDS.cpp
@@ -1,6 +1,6 @@
 /* MDS.cpp
  *
- * Copyright (C) 1993-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -40,33 +40,10 @@
 
 #define TINY 1e-30
 
-Thing_implement (Kruskal, Thing, 0);
-
-Thing_implement (Transformator, Thing, 0);
-Thing_implement (RatioTransformator, Transformator, 0);
-Thing_implement (MonotoneTransformator, Transformator, 0);
-Thing_implement (ISplineTransformator, Transformator, 0);
-
-Thing_implement (MDSVec, Daata, 0);
-Thing_implement (MDSVecList, Ordered, 0);
-
-Thing_implement (Weight, TableOfReal, 0);
-Thing_implement (Salience, TableOfReal, 0);
-Thing_implement (ScalarProduct, TableOfReal, 0);
-
-Thing_implement (ConfusionList, TableOfRealList, 0);
-Thing_implement (ProximityList, TableOfRealList, 0);
-Thing_implement (ScalarProductList, TableOfRealList, 0);
-
-Thing_implement (DistanceList, ProximityList, 0);
-Thing_implement (Dissimilarity, Proximity, 0);
-Thing_implement (DissimilarityList, ProximityList, 0);
-Thing_implement (Similarity, Proximity, 0);
-
-
 /********************** NUMERICAL STUFF **************************************/
 
-static void NUMdmatrix_into_vector (double **m, double *v, long r1, long r2, long c1, long c2) {
+static void NUMdmatrix_into_vector (double **m, double *v, long r1, long r2,
+                                    long c1, long c2) {
 	long k = 1;
 
 	for (long i = r1; i <= r2; i++) {
@@ -76,7 +53,8 @@ static void NUMdmatrix_into_vector (double **m, double *v, long r1, long r2, lon
 	}
 }
 
-static void NUMdvector_into_matrix (const double *v, double **m, long r1, long r2, long c1, long c2) {
+static void NUMdvector_into_matrix (const double *v, double **m,
+                                    long r1, long r2, long c1, long c2) {
 	long k = 1;
 
 	for (long i = r1; i <= r2; i++) {
@@ -88,12 +66,12 @@ static void NUMdvector_into_matrix (const double *v, double **m, long r1, long r
 
 static void NUMdmatrix_normalizeRows (double **m, long nr, long nc) {
 	for (long i = 1; i <= nr; i++) {
-		double rowSum = 0.0;
+		double rowSum = 0;
 		for (long j = 1; j <= nc; j++) {
 			rowSum += m[i][j];
 		}
 
-		if (rowSum != 0.0) {
+		if (rowSum != 0) {
 			for (long j = 1; j <= nc; j++) {
 				m[i][j] /= rowSum;
 			}
@@ -128,10 +106,10 @@ static void NUMsort3 (double *data, long *iPoint, long *jPoint, long ifrom, long
 	//NUMindexx (data + ifrom - 1, n, indx + ifrom - 1);
 	NUMindexx (&data [ifrom - 1], n, &indx [ifrom - 1]);
 	if (! ascending) {
-		for (long j = ifrom; j <= ifrom + n / 2; j ++) {
-			long tmp = indx [j];
-			indx [j] = indx [ito - j + ifrom];
-			indx [ito - j + ifrom] = tmp;
+		for (long j = ifrom; j <= ifrom + n / 2; j++) {
+			long tmp = indx[j];
+			indx[j] = indx[ito - j + ifrom];
+			indx[ito - j + ifrom] = tmp;
 		}
 	}
 	for (long j = ifrom; j <= ito; j++) {
@@ -157,61 +135,61 @@ static void NUMsort3 (double *data, long *iPoint, long *jPoint, long ifrom, long
 	}
 }
 
-/************ ConfigurationList & Similarity **************************/
+/************ Configurations & Similarity **************************/
 
-autoDistanceList ConfigurationList_to_DistanceList (ConfigurationList me) {
+Distances Configurations_to_Distances (Configurations me) {
 	try {
-		autoDistanceList thee = DistanceList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			Configuration conf = my at [i];
+		autoDistances thee = Distances_create ();
+		for (long i = 1; i <= my size; i++) {
+			Configuration conf = (Configuration) (my item[i]);
 			autoDistance d = Configuration_to_Distance (conf);
-			Thing_setName (d.get(), Thing_getName (conf));
-			thy addItem_move (d.move());
+			Thing_setName (d.peek(), Thing_getName (conf));
+			Collection_addItem (thee.peek(), d.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distances not created form Configurations.");
 	}
 }
 
-autoSimilarity ConfigurationList_to_Similarity_cc (ConfigurationList me, Weight weight) {
+Similarity Configurations_to_Similarity_cc (Configurations me, Weight weight) {
 	try {
-		autoDistanceList d = ConfigurationList_to_DistanceList (me);
-		autoSimilarity thee = DistanceList_to_Similarity_cc (d.get(), weight);
-		return thee;
+		autoDistances d = Configurations_to_Distances (me);
+		autoSimilarity thee = Distances_to_Similarity_cc (d.peek(), weight);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Similarity not created form Configurations.");
 	}
 }
 
-autoSimilarity DistanceList_to_Similarity_cc (DistanceList me, Weight w) {
+Similarity Distances_to_Similarity_cc (Distances me, Weight w) {
 	try {
 		if (my size == 0) {
 			Melder_throw (U"Distances is empty.");
 		}
-		if (! TableOfRealList_haveIdenticalDimensions (my asTableOfRealList())) {
+		if (! TablesOfReal_checkDimensions (me)) {
 			Melder_throw (U"All matrices must have the same dimensions.");
 		}
-		autoWeight aw;
-		if (! w) {
-			aw = Weight_create (my at [1] -> numberOfRows);
-			w = aw.get();
+		autoWeight aw = 0;
+		if (w == 0) {
+			aw.reset (Weight_create ( ( (Distance) (my item[1])) -> numberOfRows));
+			w = aw.peek();
 		}
 
 		autoSimilarity thee = Similarity_create (my size);
 
-		for (long i = 1; i <= my size; i ++) {
-			Distance di = my at [i];
+		for (long i = 1; i <= my size; i++) {
+			Distance di = (Distance) (my item[i]);
 			char32 *name = Thing_getName (di);
-			TableOfReal_setRowLabel (thee.get(), i, name);
-			TableOfReal_setColumnLabel (thee.get(), i, name);
+			TableOfReal_setRowLabel (thee.peek(), i, name);
+			TableOfReal_setColumnLabel (thee.peek(), i, name);
 			thy data[i][i] = 1;
-			for (long j = i + 1; j <= my size; j ++) {
-				Distance dj = my at [j];
-				thy data [i] [j] = thy data [j] [i] = Distance_Weight_congruenceCoefficient (di, dj, w);
+			for (long j = i + 1; j <= my size; j++) {
+				Distance dj = (Distance) (my item[j]);
+				thy data[i][j] = thy data[j][i] = Distance_Weight_congruenceCoefficient (di, dj, w);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Similarity not created form Distancess.");
 	}
@@ -220,41 +198,47 @@ autoSimilarity DistanceList_to_Similarity_cc (DistanceList me, Weight w) {
 
 /***************** Transformator **********************************************/
 
-autoDistance structTransformator :: v_transform (MDSVec vec, Distance dist, Weight /* w */) {
-	try {
-		autoDistance thee = Distance_create (numberOfPoints);
-		TableOfReal_copyLabels (dist, thee.get(), 1, 1);
+Thing_implement (Transformator, Thing, 0);
 
-		// Absolute scaling
+Distance structTransformator :: v_transform (MDSVec vec, Distance dist, Weight w) {
+	try {
+		(void) w;
 
+		autoDistance thee = Distance_create (numberOfPoints);
+		TableOfReal_copyLabels (dist, thee.peek(), 1, 1);
+		/*
+			Absolute scaling
+		*/
 		for (long i = 1; i <= vec -> nProximities; i++) {
 			long ii = vec -> iPoint[i];
 			long jj = vec -> jPoint[i];
 			thy data[ii][jj] = thy data[jj][ii] = vec -> proximity[i];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
 }
 
-void Transformator_init (Transformator me, long numberOfPoints) {
+void Transformator_init (I, long numberOfPoints) {
+	iam (Transformator);
 	my numberOfPoints = numberOfPoints;
 	my normalization = 1;
 }
 
-autoTransformator Transformator_create (long numberOfPoints) {
+Transformator Transformator_create (long numberOfPoints) {
 	try {
 		autoTransformator me = Thing_new (Transformator);
-		Transformator_init (me.get(), numberOfPoints);
+		Transformator_init (me.peek(), numberOfPoints);
 		my normalization = 0;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Transformator created.");
 	}
 }
 
-autoDistance Transformator_transform (Transformator me, MDSVec vec, Distance d, Weight w) {
+Distance Transformator_transform (I, MDSVec vec, Distance d, Weight w) {
+	iam (Transformator);
 	try {
 		if (my numberOfPoints != vec -> nPoints ||
 		        my numberOfPoints != d -> numberOfRows ||
@@ -267,91 +251,99 @@ autoDistance Transformator_transform (Transformator me, MDSVec vec, Distance d,
 	}
 }
 
-autoDistance structRatioTransformator :: v_transform (MDSVec vec, Distance d, Weight w) {
+Thing_implement (RatioTransformator, Transformator, 0);
+
+Distance structRatioTransformator :: v_transform (MDSVec vec, Distance d, Weight w) {
 	autoDistance thee = Distance_create (numberOfPoints);
-	TableOfReal_copyLabels (d, thee.get(), 1, 1);
+	TableOfReal_copyLabels (d, thee.peek(), 1, 1);
 
 	// Determine ratio (eq. 9.4)
 
-	double etaSq = 0.0, rho = 0.0;
-	for (long i = 1; i <= vec -> nProximities; i ++) {
-		long ii = vec -> iPoint [i];
-		long jj = vec -> jPoint [i];
-		double delta_ij = vec -> proximity[i], d_ij = d -> data [ii] [jj];
-		double tmp = w -> data [ii] [jj] * delta_ij * delta_ij;
+	double etaSq = 0, rho = 0;
+	for (long i = 1; i <= vec -> nProximities; i++) {
+		long ii = vec -> iPoint[i];
+		long jj = vec -> jPoint[i];
+		double delta_ij = vec -> proximity[i], d_ij = d -> data[ii][jj];
+		double tmp = w -> data[ii][jj] * delta_ij * delta_ij;
 		etaSq += tmp;
 		rho += tmp * d_ij * d_ij;
 	}
 
 	// transform
 
-	if (etaSq == 0.0) {
+	if (etaSq == 0) {
 		Melder_throw (U"Eta squared is zero.");
 	}
-	our ratio = rho / etaSq;
-	for (long i = 1; i <= vec -> nProximities; i ++) {
-		long ii = vec -> iPoint [i];
-		long jj = vec -> jPoint [i];
-		thy data [ii] [jj] = thy data [jj] [ii] = our ratio * vec -> proximity [i];
+	this -> ratio = rho / etaSq;
+	for (long i = 1; i <= vec -> nProximities; i++) {
+		long ii = vec -> iPoint[i];
+		long jj = vec -> jPoint[i];
+		thy data[ii][jj] = thy data[jj][ii] = this -> ratio * vec -> proximity[i];
 	}
 
-	if (our normalization) {
-		Distance_Weight_smacofNormalize (thee.get(), w);
+	if (normalization) {
+		Distance_Weight_smacofNormalize (thee.peek(), w);
 	}
-	return thee;
+	return thee.transfer();
 }
 
-autoRatioTransformator RatioTransformator_create (long numberOfPoints) {
+RatioTransformator RatioTransformator_create (long numberOfPoints) {
 	try {
 		autoRatioTransformator me = Thing_new (RatioTransformator);
-		Transformator_init (me.get(), numberOfPoints);
-		return me;
+		Transformator_init (me.peek(), numberOfPoints);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"RatioTransformator not created.");
 	}
 }
 
-autoDistance structMonotoneTransformator :: v_transform (MDSVec vec, Distance d, Weight w) {
+Thing_implement (MonotoneTransformator, Transformator, 0);
+
+Distance structMonotoneTransformator :: v_transform (MDSVec vec, Distance d, Weight w) {
 	try {
 		autoDistance thee = MDSVec_Distance_monotoneRegression (vec, d, tiesProcessing);
 		if (normalization) {
-			Distance_Weight_smacofNormalize (thee.get(), w);
+			Distance_Weight_smacofNormalize (thee.peek(), w);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
+
 }
 
-autoMonotoneTransformator MonotoneTransformator_create (long numberOfPoints) {
+MonotoneTransformator MonotoneTransformator_create (long numberOfPoints) {
 	try {
 		autoMonotoneTransformator me = Thing_new (MonotoneTransformator);
-		Transformator_init (me.get(), numberOfPoints);
+		Transformator_init (me.peek(), numberOfPoints);
 		my tiesProcessing = MDS_PRIMARY_APPROACH;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MonotoneTransformator not created.");
 	}
 }
 
-void MonotoneTransformator_setTiesProcessing (MonotoneTransformator me, int tiesProcessing) {
+void MonotoneTransformator_setTiesProcessing (MonotoneTransformator me,
+        int tiesProcessing) {
 	my tiesProcessing = tiesProcessing;
 }
 
-void structISplineTransformator :: v_destroy () noexcept {
+Thing_implement (ISplineTransformator, Transformator, 0);
+
+void structISplineTransformator :: v_destroy () {
 	NUMvector_free<double> (b, 1);
 	NUMvector_free<double> (knot, 1);
 	NUMmatrix_free<double> (m, 1, 1);
 	ISplineTransformator_Parent :: v_destroy ();
 }
 
-autoDistance structISplineTransformator :: v_transform (MDSVec vec, Distance dist, Weight w) {
+Distance structISplineTransformator :: v_transform (MDSVec vec, Distance dist, Weight w) {
 	double tol = 1e-6;
 	long itermax = 20, nx = vec -> nProximities;
 	long nKnots = numberOfInteriorKnots + order + order + 2;
 
 	autoDistance thee = Distance_create (dist -> numberOfRows);
-	TableOfReal_copyLabels (dist, thee.get(), 1, -1);
+	TableOfReal_copyLabels (dist, thee.peek(), 1, -1);
 
 	autoNUMvector<double> d (1, nx);
 
@@ -373,27 +365,30 @@ autoDistance structISplineTransformator :: v_transform (MDSVec vec, Distance dis
 		knot [order + 1 + i] = NUMquantile (nx, vec -> proximity, fraction);
 	}
 
-	// Calculate data matrix m.
+	/*
+		Calculate data matrix m.
+	*/
 
 	for (long i = 1; i <= nx; i++) {
 		double y, x = vec -> proximity [i];
-		m[i][1] = 1.0;
+		m [i] [1] = 1;
 		for (long j = 2; j <= numberOfParameters; j++) {
 			try {
 				NUMispline (knot, nKnots, order, j - 1, x, & y);
 			} catch (MelderError) {
 				Melder_throw (U"I-spline[", j - 1, U"], data[", i, U"d] = ", x);
 			}
-			m[i][j] = y;
+			m [i] [j] = y;
 		}
 	}
 
-	NUMsolveNonNegativeLeastSquaresRegression (m, nx, numberOfParameters, d.peek(), tol, itermax, b);
+	NUMsolveNonNegativeLeastSquaresRegression (m, nx, numberOfParameters,
+	        d.peek(), tol, itermax, b);
 
 	for (long i = 1; i <= nx; i++) {
 		long ii = vec->iPoint[i];
 		long jj = vec->jPoint[i];
-		double r = 0.0;
+		double r = 0;
 
 		for (long j = 1; j <= numberOfParameters; j++) {
 			r += m[i][j] * b[j];
@@ -402,17 +397,18 @@ autoDistance structISplineTransformator :: v_transform (MDSVec vec, Distance dis
 	}
 
 	if (normalization) {
-		Distance_Weight_smacofNormalize (thee.get(), w);
+		Distance_Weight_smacofNormalize (thee.peek(), w);
 	}
-	return thee;
+	return thee.transfer();
 }
 
-autoISplineTransformator ISplineTransformator_create (long numberOfPoints, long numberOfInteriorKnots, long order) {
+ISplineTransformator ISplineTransformator_create (long numberOfPoints,
+        long numberOfInteriorKnots, long order) {
 	try {
 		autoISplineTransformator me = Thing_new (ISplineTransformator);
 		long nData = (numberOfPoints - 1) * numberOfPoints / 2;
 
-		Transformator_init (me.get(), numberOfPoints);
+		Transformator_init (me.peek(), numberOfPoints);
 
 		/*
 			1 extra parameter for the intercept.
@@ -427,12 +423,12 @@ autoISplineTransformator ISplineTransformator_create (long numberOfPoints, long
 		my m = NUMmatrix<double> (1, nData, 1, my numberOfParameters);
 
 		for (long i = 1; i <= my numberOfParameters; i++) {
-			my b[i] = NUMrandomUniform (0.0, 1.0);
+			my b[i] = NUMrandomUniform (0, 1);
 		}
 
 		my numberOfInteriorKnots = numberOfInteriorKnots;
 		my order = order;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ISplineTransformator not created.");
 	}
@@ -440,7 +436,7 @@ autoISplineTransformator ISplineTransformator_create (long numberOfPoints, long
 
 /***************** CONTINGENCYTABLE **************************************/
 
-autoConfiguration ContingencyTable_to_Configuration_ca (ContingencyTable me, long numberOfDimensions, int scaling) {
+Configuration ContingencyTable_to_Configuration_ca (ContingencyTable me, long numberOfDimensions, int scaling) {
 	try {
 		long nr = my numberOfRows, nc = my numberOfColumns;
 		long dimmin = nr < nc ? nr : nc;
@@ -457,30 +453,35 @@ autoConfiguration ContingencyTable_to_Configuration_ca (ContingencyTable me, lon
 			Melder_throw (U"Dimension too high.");
 		}
 
-		// Ref: A. Gifi (1990), Nonlinear Multivariate Analysis, Wiley & Sons, reprinted 1996,
-		//		Chapter 8, Multidimensional scaling and Correspondence Analysis.
-		// Get row and column marginals
+		/*
+			Ref: A. Gifi (1990), Nonlinear Multivariate Analysis, Wiley & Sons,
+				reprinted 1996,
+				Chapter 8, Multidimensional scaling and Correspondence Analysis.
+			Get row and column marginals
+		*/
 
-		double sum = 0.0;
+		double sum = 0;
 		for (long i = 1; i <= nr; i++) {
 			for (long j = 1; j <= nc; j++) {
 				rowsum[i] += my data[i][j];
 				colsum[j] += my data[i][j];
 			}
-			if (rowsum[i] <= 0.0) {
+			if (rowsum[i] <= 0) {
 				Melder_throw (U"Empty row: ", i, U".");
 			}
 			sum += rowsum[i];
 		}
 
 		for (long j = 1; j <= nc; j++) {
-			if (colsum[j] <= 0.0) {
+			if (colsum[j] <= 0) {
 				Melder_throw (U"Empty column: ", j, U".");
 			}
 		}
 
-		// Remove trivial singular vectors (Eq. 8.24),
-		// construct Dr^(-1/2) H Dc^(-1/2) - Dr^(1/2) uu' Dc^(1/2) / N
+		/*
+			Remove trivial singular vectors (Eq. 8.24),
+			construct Dr^(-1/2) H Dc^(-1/2) - Dr^(1/2) uu' Dc^(1/2) / N
+		*/
 
 		for (long i = 1; i <= nr; i++) {
 			for (long j = 1; j <= nc; j++) {
@@ -489,31 +490,37 @@ autoConfiguration ContingencyTable_to_Configuration_ca (ContingencyTable me, lon
 			}
 		}
 
-		// Singular value decomposition of h
+		/*
+			Singular value decomposition of h
+		*/
 
 		autoSVD svd = SVD_create_d (h.peek(), nr, nc);
-		SVD_zeroSmallSingularValues (svd.get(), 0);
+		SVD_zeroSmallSingularValues (svd.peek(), 0);
 
-		// Scale row vectors and column vectors to configuration.
+		/*
+			Scale row vectors and column vectors to configuration.
+		*/
 
 		for (long j = 1; j <= numberOfDimensions; j++) {
 			double rootsum = sqrt (sum), xfactor, yfactor, lambda = svd -> d[j];
 			if (scaling == 1) {
-
-				// Scale row points in the centre of gravity of column points (eq 8.5.a)
-
+				/*
+					Scale row points in the centre of gravity of
+					column points (eq 8.5.a)
+				*/
 				xfactor = rootsum * lambda;
 				yfactor = rootsum;
 			} else if (scaling == 2) {
-
-				// Scale column points in the centre of gravity of row points (8.5.b)
-
+				/*
+					Scale column points in the centre of gravity of
+					row points (8.5.b)
+				*/
 				xfactor = rootsum;
 				yfactor = rootsum * lambda;
 			} else if (scaling == 3) {
-
-				// Treat row and columns symmetrically (8.5.c).
-
+				/*
+					Treat row and columns symmetrically (8.5.c).
+				*/
 				xfactor = yfactor = rootsum * sqrt (lambda);
 			} else {
 				break;
@@ -526,91 +533,97 @@ autoConfiguration ContingencyTable_to_Configuration_ca (ContingencyTable me, lon
 			}
 		}
 
-		TableOfReal_setSequentialColumnLabels (thee.get(), 0, 0, nullptr, 1, 1);
+		TableOfReal_setSequentialColumnLabels (thee.peek(), 0, 0, NULL, 1, 1);
 		NUMstrings_copyElements (my rowLabels, thy rowLabels, 1, nr);
 		for (long i = 1; i <= nc; i++) {
 			if (my columnLabels[i]) {
-				TableOfReal_setRowLabel (thee.get(), nr + i, my columnLabels[i]);
+				TableOfReal_setRowLabel (thee.peek(), nr + i, my columnLabels[i]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created.");
 	}
 }
 
-autoDissimilarity TableOfReal_to_Dissimilarity (TableOfReal me) {
+Dissimilarity TableOfReal_to_Dissimilarity (I) {
+	iam (TableOfReal);
 	try {
 		if (my numberOfRows != my numberOfColumns) {
 			Melder_throw (U"TableOfReal must be a square tabel.");
 		}
 		TableOfReal_checkPositive (me);
 		autoDissimilarity thee = Thing_new (Dissimilarity);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Dissimilarity.");
 	}
 }
 
-autoSimilarity TableOfReal_to_Similarity (TableOfReal me) {
+Similarity TableOfReal_to_Similarity (I) {
+	iam (TableOfReal);
 	try {
 		if (my numberOfRows != my numberOfColumns) {
 			Melder_throw (U"TableOfReal must be a square table.");
 		}
 		TableOfReal_checkPositive (me);
 		autoSimilarity thee = Thing_new (Similarity);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Similarity.");
 	}
 }
 
-autoDistance TableOfReal_to_Distance (TableOfReal me) {
+Distance TableOfReal_to_Distance (I) {
+	iam (TableOfReal);
 	try {
 		if (my numberOfRows != my numberOfColumns) {
 			Melder_throw (U"TableOfReal must be a square table.");
 		}
 		TableOfReal_checkPositive (me);
 		autoDistance thee = Thing_new (Distance);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Distance.");
 	}
 }
 
-autoSalience TableOfReal_to_Salience (TableOfReal me) {
+Salience TableOfReal_to_Salience (I) {
+	iam (TableOfReal);
 	try {
 		TableOfReal_checkPositive (me);
 		autoSalience thee = Thing_new (Salience);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Salience.");
 	}
 }
 
-autoWeight TableOfReal_to_Weight (TableOfReal me) {
+Weight TableOfReal_to_Weight (I) {
+	iam (TableOfReal);
 	try {
 		TableOfReal_checkPositive (me);
 		autoWeight thee = Thing_new (Weight);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Weight.");
 	}
 }
 
-autoScalarProduct TableOfReal_to_ScalarProduct (TableOfReal me) {
+ScalarProduct TableOfReal_to_ScalarProduct (I) {
+	iam (TableOfReal);
 	try {
 		if (my numberOfRows != my numberOfColumns) {
 			Melder_throw (U"TableOfReal must be a square table.");
 		}
 		autoScalarProduct thee = Thing_new (ScalarProduct);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ScalarProduct.");
 	}
@@ -618,47 +631,51 @@ autoScalarProduct TableOfReal_to_ScalarProduct (TableOfReal me) {
 
 /**************** Covariance & Correlation to Configuration *****************/
 
-autoConfiguration SSCP_to_Configuration (SSCP me, long numberOfDimensions) {
+Configuration SSCP_to_Configuration (SSCP me, long numberOfDimensions) {
 	try {
 		autoConfiguration thee = Configuration_create (my numberOfRows, numberOfDimensions);
 		autoPCA a = SSCP_to_PCA (me);
-		TableOfReal_setSequentialColumnLabels (thee.get(), 0, 0, nullptr, 1, 1);
+		TableOfReal_setSequentialColumnLabels (thee.peek(), 0, 0, NULL, 1, 1);
 
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = 1; j <= numberOfDimensions; j++) {
-				double s = 0.0;
+				double s = 0;
 				for (long k = 1; k <= my numberOfRows; k++) {
 					s += my data[k][i] * a -> eigenvectors[k][j];
 				}
 				thy data[i][j] = s;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created.");
 	}
 }
 
-autoConfiguration Covariance_to_Configuration (Covariance me, long numberOfDimensions) {
+Configuration Covariance_to_Configuration (Covariance me,
+        long numberOfDimensions) {
 	return SSCP_to_Configuration (me, numberOfDimensions);
 }
 
-autoConfiguration Correlation_to_Configuration (Correlation me, long numberOfDimensions) {
+Configuration Correlation_to_Configuration (Correlation me,
+        long numberOfDimensions) {
 	return SSCP_to_Configuration (me, numberOfDimensions);
 }
 
 /**************************** Weight *****************************************/
 
-autoWeight Weight_create (long numberOfPoints) {
+Thing_implement (Weight, TableOfReal, 0);
+
+Weight Weight_create (long numberOfPoints) {
 	try {
 		autoWeight me = Thing_new (Weight);
-		TableOfReal_init (me.get(), numberOfPoints, numberOfPoints);
+		TableOfReal_init (me.peek(), numberOfPoints, numberOfPoints);
 		for (long i = 1; i <= numberOfPoints; i++) {
 			for (long j = 1; j <= numberOfPoints; j++) {
-				my data[i][j] = 1.0;
+				my data[i][j] = 1;
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Weight not created.");
 	}
@@ -667,12 +684,14 @@ autoWeight Weight_create (long numberOfPoints) {
 
 /**************** Salience *****************************************/
 
-autoSalience Salience_create (long numberOfSources, long numberOfDimensions) {
+Thing_implement (Salience, TableOfReal, 0);
+
+Salience Salience_create (long numberOfSources, long numberOfDimensions) {
 	try {
 		autoSalience me = Thing_new (Salience);
-		TableOfReal_init (me.get(), numberOfSources, numberOfDimensions);
-		Salience_setDefaults (me.get());
-		return me;
+		TableOfReal_init (me.peek(), numberOfSources, numberOfDimensions);
+		Salience_setDefaults (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Salience not created.");
 	}
@@ -687,7 +706,7 @@ long Salience_correctNegatives (Salience me) {
 	long nNegatives = 0;
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (my data[i][j] < 0.0) {
+			if (my data[i][j] < 0) {
 				nNegatives++;
 				my data[i][j] = - my data[i][j];
 			}
@@ -699,7 +718,7 @@ long Salience_correctNegatives (Salience me) {
 void Salience_setDefaults (Salience me) {
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			my data[i][j] = 1.0 / sqrt (my numberOfColumns);
+			my data[i][j] = 1 / sqrt (my numberOfColumns);
 		}
 	}
 	for (long j = 1; j <= my numberOfColumns; j++) {
@@ -709,9 +728,10 @@ void Salience_setDefaults (Salience me) {
 
 void Salience_draw (Salience me, Graphics g, int ix, int iy, int garnish) {
 	long nc2, nc1 = ix < iy ? (nc2 = iy, ix) : (nc2 = ix, iy);
-	double xmin = 0.0, xmax = 1.0, ymin = 0.0, ymax = 1.0, wmax = 1.0;
+	double xmin = 0, xmax = 1, ymin = 0, ymax = 1, wmax = 1;
 
-	if (ix < 1 || ix > my numberOfColumns || iy < 1 || iy > my numberOfColumns) {
+	if (ix < 1 || ix > my numberOfColumns ||
+	        iy < 1 || iy > my numberOfColumns) {
 		return;
 	}
 
@@ -741,24 +761,26 @@ void Salience_draw (Salience me, Graphics g, int ix, int iy, int garnish) {
 
 	if (garnish) {
 		if (my columnLabels[ix]) {
-			Graphics_textBottom (g, false, my columnLabels[ix]);
+			Graphics_textBottom (g, 0, my columnLabels[ix]);
 		}
 		if (my columnLabels[iy]) {
-			Graphics_textLeft (g, false, my columnLabels[iy]);
+			Graphics_textLeft (g, 0, my columnLabels[iy]);
 		}
 	}
 }
 
 /******** MDSVEC *******************************************/
 
-void structMDSVec :: v_destroy () noexcept {
+Thing_implement (MDSVec, Data, 0);
+
+void structMDSVec :: v_destroy () {
 	NUMvector_free<double> (proximity, 1);
 	NUMvector_free<long> (iPoint, 1);
 	NUMvector_free<long> (jPoint, 1);
 	MDSVec_Parent :: v_destroy ();
 }
 
-autoMDSVec MDSVec_create (long nPoints) {
+MDSVec MDSVec_create (long nPoints) {
 	try {
 		autoMDSVec me = Thing_new (MDSVec);
 		my nPoints = nPoints;
@@ -766,13 +788,13 @@ autoMDSVec MDSVec_create (long nPoints) {
 		my proximity = NUMvector<double> (1, my nProximities);
 		my iPoint = NUMvector<long> (1, my nProximities);
 		my jPoint = NUMvector<long> (1, my nProximities);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MDSVec not created.");
 	}
 }
 
-autoMDSVec Dissimilarity_to_MDSVec (Dissimilarity me) {
+MDSVec Dissimilarity_to_MDSVec (Dissimilarity me) {
 	try {
 		autoMDSVec thee = MDSVec_create (my numberOfRows);
 
@@ -780,7 +802,7 @@ autoMDSVec Dissimilarity_to_MDSVec (Dissimilarity me) {
 		for (long i = 1; i <= my numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= my numberOfColumns; j++) {
 				double f = (my data[i][j] + my data[j][i]) / 2;
-				if (f > 0.0) {
+				if (f > 0) {
 					k++;
 					thy proximity[k] = f;
 					thy iPoint[k] = i;
@@ -790,7 +812,7 @@ autoMDSVec Dissimilarity_to_MDSVec (Dissimilarity me) {
 		}
 		thy nProximities = k;
 		NUMsort3 (thy proximity, thy iPoint, thy jPoint, 1, k, 1);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MDSVec created.");
 	}
@@ -798,15 +820,28 @@ autoMDSVec Dissimilarity_to_MDSVec (Dissimilarity me) {
 
 /*********************** MDSVECS *******************************************/
 
-autoMDSVecList DissimilarityList_to_MDSVecList (DissimilarityList me) {
+
+Thing_implement (MDSVecs, Ordered, 0);
+
+MDSVecs MDSVecs_create () {
 	try {
-		autoMDSVecList thee = MDSVecList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			autoMDSVec him = Dissimilarity_to_MDSVec (my at [i]);
-			Thing_setName (him.get(), Thing_getName (my at [i]));
-			thy addItem_move (him.move());
+		autoMDSVecs me = Thing_new (MDSVecs);
+		Ordered_init (me.peek(), classMDSVec, 10);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"MDSVecs not created.");
+	}
+}
+
+MDSVecs Dissimilarities_to_MDSVecs (Dissimilarities me) {
+	try {
+		autoMDSVecs thee = MDSVecs_create ();
+		for (long i = 1; i <= my size; i++) {
+			autoMDSVec him = Dissimilarity_to_MDSVec ( (Dissimilarity) (my item[i]));
+			Thing_setName (him.peek(), Thing_getName ( (Thing) my item[i]));
+			Collection_addItem (thee.peek(), him.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MDSVecs created.");
 	}
@@ -815,11 +850,23 @@ autoMDSVecList DissimilarityList_to_MDSVecList (DissimilarityList me) {
 
 /**************************  CONFUSIONS **************************************/
 
-autoConfusion ConfusionList_sum (ConfusionList me) {
+Thing_implement (Confusions, Proximities, 0);
+
+Confusions Confusions_create () {
+	try {
+		autoConfusions me = Thing_new (Confusions);
+		Proximities_init (me.peek(), classConfusion);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Confusions not created.");
+	}
+}
+
+Confusion Confusions_sum (Confusions me) {
 	try {
-		autoTableOfReal sum = TableOfRealList_sum (my asTableOfRealList());
-		autoConfusion thee = TableOfReal_to_Confusion (sum.get());
-		return thee;
+		autoTableOfReal sum = TablesOfReal_sum (me);
+		autoConfusion thee = TableOfReal_to_Confusion (sum.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": sum not created.");
 	}
@@ -828,14 +875,28 @@ autoConfusion ConfusionList_sum (ConfusionList me) {
 
 /**************************  DISTANCES **************************************/
 
+Thing_implement (Distances, Proximities, 0);
+
+Distances Distances_create () {
+	try {
+		autoDistances me = Thing_new (Distances);
+		Proximities_init (me.peek(), classDistance);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Distances not created.");
+	}
+}
+
 
 /*****************  SCALARPRODUCT ***************************************/
 
-autoScalarProduct ScalarProduct_create (long numberOfPoints) {
+Thing_implement (ScalarProduct, TableOfReal, 0);
+
+ScalarProduct ScalarProduct_create (long numberOfPoints) {
 	try {
 		autoScalarProduct me = Thing_new (ScalarProduct);
-		TableOfReal_init (me.get(), numberOfPoints, numberOfPoints);
-		return me;
+		TableOfReal_init (me.peek(), numberOfPoints, numberOfPoints);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ScalarProduct not created.");
 	}
@@ -844,86 +905,103 @@ autoScalarProduct ScalarProduct_create (long numberOfPoints) {
 
 /************* SCALARPRODUCTS **************************************/
 
+Thing_implement (ScalarProducts, TablesOfReal, 0);
+
+ScalarProducts ScalarProducts_create () {
+	try {
+		autoScalarProducts me = Thing_new (ScalarProducts);
+		TablesOfReal_init (me.peek(), classScalarProduct);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"ScalarProducts not created.");
+	}
+}
 
 /******************  DISSIMILARITY **********************************/
 
-autoDissimilarity Dissimilarity_create (long numberOfPoints) {
+Thing_implement (Dissimilarity, Proximity, 0);
+
+Dissimilarity Dissimilarity_create (long numberOfPoints) {
 	try {
 		autoDissimilarity me = Thing_new (Dissimilarity);
-		Proximity_init (me.get(), numberOfPoints);
-		return me;
+		Proximity_init (me.peek(), numberOfPoints);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Dissimilarity not created.");
 	}
 }
 
-static double Dissimilarity_getAverage (Dissimilarity me) {
-	double sum = 0.0;
-	long numberOfPositives = 0;
-	for (long i = 1; i <= my numberOfRows - 1; i++) {
-		for (long j = i + 1; j <= my numberOfRows; j++) {
-			double proximity = (my data[i][j] + my data[j][i]) / 2.0;
-			if (proximity > 0.0) {
-				numberOfPositives++;
-				sum += proximity;
-			}
-		}
-	}
-	return numberOfPositives > 0 ? sum /= numberOfPositives : NUMundefined;
-}
-
-double Dissimilarity_getAdditiveConstant (Dissimilarity me) {
-	double additiveConstant = NUMundefined;
+int Dissimilarity_getAdditiveConstant (I, double *c) { // Why not: double Diss..(I) ???
+	*c = 0;
 	try {
-		long nPoints = my numberOfRows, nPoints2 = 2 * nPoints;
-
-		// Return c = average dissimilarity in case of failure
+		iam (Dissimilarity);
+		long nProximities = 0, nPoints = my numberOfRows, nPoints2 = 2 * nPoints;
+		double proximity;
 
+		/*
+			Return c = average dissimilarity in case of failure
+		*/
 		if (nPoints < 1) {
 			Melder_throw (U"Matrix part is empty.");
 		}
 
-		additiveConstant = Dissimilarity_getAverage (me);
-		if (additiveConstant == NUMundefined) {
-			Melder_throw (U"There are no positive dissimilarities.");
+		*c = 0;
+		for (long i = 1; i <= nPoints - 1; i++) {
+			for (long j = i + 1; j <= nPoints; j++) {
+				proximity = (my data[i][j] + my data[j][i]) / 2;
+				if (proximity > 0) {
+					nProximities++;
+					*c += proximity;
+				}
+			}
 		}
+		if (nProximities < 1) {
+			Melder_throw (U"No proximities larger than zero.");
+		}
+		*c /= nProximities;
 
 		autoNUMmatrix<double> wd (1, nPoints, 1, nPoints);
 		autoNUMmatrix<double> wdsqrt (1, nPoints, 1, nPoints);
 		autoNUMmatrix<double> b (1, nPoints2, 1, nPoints2);
 		autoNUMvector<double> eigenvalue (1, nPoints2);
 
-		// The matrices D & D1/2 with distances (squared and linear)
+		/*
+			The matrices D & D1/2 with distances (squared and linear)
+		*/
 
 		for (long i = 1; i <= nPoints - 1; i++) {
 			for (long j = i + 1; j <= nPoints; j++) {
-				double proximity = (my data[i][j] + my data[j][i]) / 2.0;
-				wdsqrt[i][j] = - proximity / 2.0;
-				wd[i][j] = - proximity * proximity / 2.0;
+				proximity = (my data[i][j] + my data[j][i]) / 2;
+				wdsqrt[i][j] = - proximity / 2;
+				wd[i][j] = - proximity * proximity / 2;
 			}
 		}
 
 		NUMdoubleCentre (wdsqrt.peek(), 1, nPoints, 1, nPoints);
 		NUMdoubleCentre (wd.peek(), 1, nPoints, 1, nPoints);
 
-		// Calculate the B matrix according to eq. 6
+		/*
+			Calculate the B matrix according to eq. 6
+		*/
 
 		for (long i = 1; i <= nPoints; i++) {
 			for (long j = 1; j <= nPoints; j++) {
-				b[i][nPoints + j] = 2.0 * wd[i][j];
-				b[nPoints + i][nPoints + j] = -4.0 * wdsqrt[i][j];
-				b[nPoints + i][i] = -1.0;
+				b[i][nPoints + j] = 2 * wd[i][j];
+				b[nPoints + i][nPoints + j] = -4 * wdsqrt[i][j];
+				b[nPoints + i][i] = -1;
 			}
 		}
 
-		// Get eigenvalues and sort them descending
+		/*
+			Get eigenvalues and sort them descending
+		*/
 
-		NUMeigensystem (b.peek(), nPoints2, nullptr, eigenvalue.peek());
-		if (eigenvalue[1] <= 0.0) {
+		NUMeigensystem (b.peek(), nPoints2, NULL, eigenvalue.peek());
+		if (eigenvalue[1] <= 0) {
 			Melder_throw (U"Negative eigenvalue.");
 		}
-		additiveConstant = eigenvalue[1];
-		return additiveConstant;
+		*c = eigenvalue[1];
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (U"Additive constant not calculated.");
 	}
@@ -932,20 +1010,35 @@ double Dissimilarity_getAdditiveConstant (Dissimilarity me) {
 
 /***************  DISSIMILARITIES **************************************/
 
+Thing_implement (Dissimilarities, Proximities, 0);
+
+Dissimilarities Dissimilarities_create () {
+	try {
+		autoDissimilarities me = Thing_new (Dissimilarities);
+		Proximities_init (me.peek(), classDissimilarity);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Dissimilarities not created.");
+	}
+}
+
 
 /*************  SIMILARITY *****************************************/
 
-autoSimilarity Similarity_create (long numberOfPoints) {
+Thing_implement (Similarity, Proximity, 0);
+
+Similarity Similarity_create (long numberOfPoints) {
 	try {
 		autoSimilarity me = Thing_new (Similarity);
-		Proximity_init (me.get(), numberOfPoints);
-		return me;
+		Proximity_init (me.peek(), numberOfPoints);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Similarity not created.");
 	}
 }
 
-autoSimilarity Confusion_to_Similarity (Confusion me, bool normalize, int symmetrizeMethod) {
+Similarity Confusion_to_Similarity (Confusion me, int normalize,
+                                    int symmetrizeMethod) {
 	try {
 		if (my numberOfColumns != my numberOfRows) {
 			Melder_throw (U"Confusion must be a square table.");
@@ -954,7 +1047,7 @@ autoSimilarity Confusion_to_Similarity (Confusion me, bool normalize, int symmet
 		long nxy = my numberOfColumns;
 		autoSimilarity thee = Similarity_create (nxy);
 
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
 
@@ -962,12 +1055,13 @@ autoSimilarity Confusion_to_Similarity (Confusion me, bool normalize, int symmet
 			NUMdmatrix_normalizeRows (thy data, nxy, nxy);
 		}
 		if (symmetrizeMethod == 1) {
-			return thee;
+			return thee.transfer();
 		}
 		if (symmetrizeMethod == 2) { // Average data
 			for (long i = 1; i <= nxy - 1; i++) {
 				for (long j = i + 1; j <= nxy; j++) {
-					thy data[i][j] = thy data[j][i] = (thy data[i][j] + thy data[j][i]) / 2;
+					thy data[i][j] = thy data[j][i] =
+					                     (thy data[i][j] + thy data[j][i]) / 2;
 				}
 			}
 		} else if (symmetrizeMethod == 3) { // Method Houtgast.
@@ -982,18 +1076,19 @@ autoSimilarity Confusion_to_Similarity (Confusion me, bool normalize, int symmet
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Similarity created.");
 	}
 }
 
-autoDissimilarity Similarity_to_Dissimilarity (Similarity me, double maximumDissimilarity) {
+Dissimilarity Similarity_to_Dissimilarity (Similarity me,
+        double maximumDissimilarity) {
 	try {
 		long nxy = my numberOfColumns;
 		double max = 0;
 		autoDissimilarity thee = Dissimilarity_create (nxy);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
 
 		for (long i = 1; i <= nxy; i++) {
@@ -1017,22 +1112,23 @@ autoDissimilarity Similarity_to_Dissimilarity (Similarity me, double maximumDiss
 				thy data[i][j] = d > 0 ? d : 0;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Dissimilarity created.");
 	}
 }
 
-autoDistance Dissimilarity_to_Distance (Dissimilarity me, int scale) {
+Distance Dissimilarity_to_Distance (Dissimilarity me, int scale) {
 	try {
 		double additiveConstant = 0;
 
 		autoDistance thee = Distance_create (my numberOfRows);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
-		if (scale == MDS_ORDINAL) {
-			if ((additiveConstant = Dissimilarity_getAdditiveConstant (me)) == NUMundefined) {
-				Melder_warning (U"Dissimilarity_to_Distance: could not determine \"additive constant\", the average dissimilarity was used as its value.");
-			}
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
+		if (scale == MDS_ORDINAL &&
+		        ! Dissimilarity_getAdditiveConstant (me, &additiveConstant)) {
+			Melder_warning (U"Dissimilarity_to_Distance: could not determine "
+			                U"\"additive constant\", the average dissimilarity was used as "
+			                U"its value.");
 		}
 		for (long i = 1; i <= my numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= my numberOfColumns; j++) {
@@ -1040,46 +1136,48 @@ autoDistance Dissimilarity_to_Distance (Dissimilarity me, int scale) {
 				thy data[i][j] = thy data[j][i] = d;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Distance created.");
 	}
 }
 
-autoWeight Dissimilarity_to_Weight (Dissimilarity me) {
+Weight Dissimilarity_to_Weight (Dissimilarity me) {
 	try {
 		autoWeight thee = Weight_create (my numberOfRows);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = i; j <= my numberOfRows; j++) {
-				if (my data[i][j] > 0.0) {
-					thy data[i][j] = 1.0;
+				if (my data[i][j] > 0) {
+					thy data[i][j] = 1;
 				}
 			}
-			thy data[i][i] = 0.0;
+			thy data[i][i] = 0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Weight created.");
 	}
 }
 
 
-autoDissimilarity Confusion_to_Dissimilarity_pdf (Confusion me, double minimumConfusionLevel) {
+Dissimilarity Confusion_to_Dissimilarity_pdf (Confusion me, double minimumConfusionLevel) {
 	try {
 		if (my numberOfColumns != my numberOfRows) {
 			Melder_throw (U"Confusion must be a square table.");
 		}
-		Melder_assert (minimumConfusionLevel > 0.0);
+		Melder_assert (minimumConfusionLevel > 0);
 		autoDissimilarity thee = Dissimilarity_create (my numberOfColumns);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
 
-		// Correct "zero" responses.
+		/*
+			Correct "zero" responses.
+		*/
 
 		for (long i = 1; i <= my numberOfColumns; i++) {
 			for (long j = 1; j <= my numberOfColumns; j++) {
-				if (thy data[i][j] == 0.0) {
+				if (thy data[i][j] == 0) {
 					thy data[i][j] = minimumConfusionLevel;
 				}
 			}
@@ -1088,7 +1186,8 @@ autoDissimilarity Confusion_to_Dissimilarity_pdf (Confusion me, double minimumCo
 		NUMdmatrix_normalizeRows (thy data, my numberOfColumns, my numberOfColumns);
 
 		/*
-			Consider the fraction as the fraction overlap between two gaussians with unequal sigmas (1 & s).
+			Consider the fraction as the fraction overlap between two gaussians
+			with unequal sigmas (1 & s).
 			We have two matrix elements p[i][j] && p[j][i]
 
 			N (x, m, s) = 1 / (s * sqrt(2 pi)) exp(-((x - m) / s)^2 / 2)
@@ -1124,69 +1223,72 @@ autoDissimilarity Confusion_to_Dissimilarity_pdf (Confusion me, double minimumCo
 				double y = thy data[i][j] > thy data[j][i] ? thy data[i][j] : thy data[j][i];
 				x = NUMinvGaussQ (x);
 				y = NUMinvGaussQ (y);
-				double d = x + y * exp ( (y * y - x * x) / 2.0);
+				double d = x + y * exp ( (y * y - x * x) / 2);
 				/* Melder_info ("i, j, x, y, d: %d %d %.17g %.17g %.17g", i, j, x, y, d); */
 				thy data[i][j] = thy data [j][i] = d;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Dissimilarity created from pdf.");
 	}
 }
 
-void Distance_and_Configuration_drawScatterDiagram (Distance me, Configuration him, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Distance_and_Configuration_drawScatterDiagram (Distance me,
+        Configuration him, Graphics g, double xmin, double xmax, double ymin,
+        double ymax, double size_mm, const char32 *mark, int garnish) {
 	autoDistance dist = Configuration_to_Distance (him);
-	Proximity_Distance_drawScatterDiagram (me, dist.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	Proximity_Distance_drawScatterDiagram (me, dist.peek(), g, xmin, xmax, ymin,
+	                                       ymax, size_mm, mark, garnish);
 }
 
-autoDissimilarity Distance_to_Dissimilarity (Distance me) {
+Dissimilarity Distance_to_Dissimilarity (Distance me) {
 	try {
 		autoDissimilarity thee = Dissimilarity_create (my numberOfRows);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Dissimilarity not created from Distance.");
 	}
 }
 
-autoConfiguration Distance_to_Configuration_torsca (Distance me, int numberOfDimensions) {
+Configuration Distance_to_Configuration_torsca (Distance me, int numberOfDimensions) {
 	try {
 		if (numberOfDimensions > my numberOfRows) {
 			Melder_throw (U"Number of dimensions too high.");
 		}
-		autoScalarProduct sp = Distance_to_ScalarProduct (me, false);
+		autoScalarProduct sp = Distance_to_ScalarProduct (me, 0);
 		autoConfiguration thee = Configuration_create (my numberOfRows, numberOfDimensions);
-		TableOfReal_copyLabels (me, thee.get(), 1, 0);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 0);
 		NUMprincipalComponents (sp -> data, my numberOfRows, numberOfDimensions, thy data);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (torsca method).");
 	}
 }
 
-autoScalarProduct Distance_to_ScalarProduct (Distance me, bool normalize) {
+ScalarProduct Distance_to_ScalarProduct (Distance me, int normalize) {
 	try {
 		autoScalarProduct thee = ScalarProduct_create (my numberOfRows);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 		for (long i = 1; i <= my numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= my numberOfColumns; j++) {
-
-				// force symmetry by averaging!
-
+				/*
+					force symmetry by averaging!
+				*/
 				double d = 0.5 * (my data[i][j] + my data[j][i]);
 				thy data[i][j] = thy data[j][i] = - 0.5 * d * d;
 			}
 		}
-		TableOfReal_doubleCentre (thee.get());
+		TableOfReal_doubleCentre (thee.peek());
 		if (my name) {
-			Thing_setName (thee.get(), my name);
+			Thing_setName (thee.peek(), my name);
 		}
 		if (normalize) {
-			TableOfReal_normalizeTable (thee.get(), 1);
+			TableOfReal_normalizeTable (thee.peek(), 1);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no ScalarProduct created.");
 	}
@@ -1195,13 +1297,13 @@ autoScalarProduct Distance_to_ScalarProduct (Distance me, bool normalize) {
 /**********  Configuration & ..... ***********************************/
 
 
-autoDistance Configuration_to_Distance (Configuration me) {
+Distance Configuration_to_Distance (Configuration me) {
 	try {
 		autoDistance thee = Distance_create (my numberOfRows);
-		TableOfReal_copyLabels (me, thee.get(), 1, -1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, -1);
 		for (long i = 1; i <= thy numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= thy numberOfColumns; j++) {
-				double dmax = 0.0, d = 0.0;
+				double dmax = 0, d = 0;
 
 				/*
 					first divide distance by maximum to prevent overflow when metric is a large number.
@@ -1216,7 +1318,7 @@ autoDistance Configuration_to_Distance (Configuration me) {
 						dmax = dtmp;
 					}
 				}
-				if (dmax > 0.0) {
+				if (dmax > 0) {
 					for (long k = 1; k <= my numberOfColumns; k++) {
 						double arg = fabs (my data[i][k] - my data[j][k]) / dmax;
 						d += my w[k] * pow (arg, my metric);
@@ -1225,13 +1327,16 @@ autoDistance Configuration_to_Distance (Configuration me) {
 				thy data[i][j] = thy data[j][i] = dmax * pow (d, 1.0 / my metric);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Distance created.");
 	}
 }
 
-void Proximity_Distance_drawScatterDiagram (Proximity me, Distance thee, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Proximity_Distance_drawScatterDiagram (I, Distance thee, Graphics g,
+        double xmin, double xmax, double ymin, double ymax, double size_mm,
+        const char32 *mark, int garnish) {
+	iam (Proximity);
 	long n = my numberOfRows * (my numberOfRows - 1) / 2;
 	double **x = my data, **y = thy data;
 
@@ -1269,7 +1374,8 @@ void Proximity_Distance_drawScatterDiagram (Proximity me, Distance thee, Graphic
 	Graphics_setInner (g);
 	for (long i = 1; i <= thy numberOfRows - 1; i++) {
 		for (long j = i + 1; j <= thy numberOfColumns; j++) {
-			if (x[i][j] >= xmin && x[i][j] <= xmax && y[i][j] >= ymin && y[i][j] <= ymax) {
+			if (x[i][j] >= xmin && x[i][j] <= xmax &&
+			        y[i][j] >= ymin && y[i][j] <= ymax) {
 				Graphics_mark (g, x[i][j], y[i][j], size_mm, mark);
 			}
 		}
@@ -1278,31 +1384,31 @@ void Proximity_Distance_drawScatterDiagram (Proximity me, Distance thee, Graphic
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textLeft (g, true, U"Distance");
-		Graphics_textBottom (g, true, U"Dissimilarity");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textLeft (g, 1, U"Distance");
+		Graphics_textBottom (g, 1, U"Dissimilarity");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-autoDistanceList MDSVecList_Distance_monotoneRegression (MDSVecList me, Distance thee, int tiesProcessing) {
+Distances MDSVecs_Distance_monotoneRegression (MDSVecs me, Distance thee, int tiesProcessing) {
 	try {
-		autoDistanceList him = DistanceList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			MDSVec vec = my at [i];
+		autoDistances him = Distances_create ();
+		for (long i = 1; i <= my size; i++) {
+			autoMDSVec vec = (MDSVec) my item[i];
 			if (vec -> nPoints != thy numberOfRows) {
 				Melder_throw (U"Dimension of MDSVec and Distance must be equal.");
 			}
-			autoDistance fit = MDSVec_Distance_monotoneRegression (vec, thee, tiesProcessing);
-			his addItem_move (fit.move());
+			autoDistance fit = MDSVec_Distance_monotoneRegression (vec.peek(), thee, tiesProcessing);
+			Collection_addItem (him.peek(), fit.transfer());
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Distances created from MDSVecs & Distance.");
 	}
 }
 
-autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int tiesProcessing) {
+Distance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int tiesProcessing) {
 	try {
 		long nProximities = my nProximities;
 		if (thy numberOfRows != my nPoints) {
@@ -1311,14 +1417,14 @@ autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int t
 		autoNUMvector<double> distance (1, nProximities);
 		autoNUMvector<double> fit (1, nProximities);
 		autoDistance him = Distance_create (thy numberOfRows);
-		TableOfReal_copyLabels (thee, him.get(), 1, 1);
+		TableOfReal_copyLabels (thee, him.peek(), 1, 1);
 
 		long *iPoint = my iPoint, *jPoint = my jPoint;
 		for (long i = 1; i <= nProximities; i++) {
 			distance[i] = thy data[iPoint[i]][jPoint[i]];
 		}
 
-		if (tiesProcessing == MDS_PRIMARY_APPROACH || tiesProcessing == MDS_SECONDARY_APPROACH) {
+		if (tiesProcessing == MDS_PRIMARY_APPROACH || MDS_SECONDARY_APPROACH) {
 			/*
 				Kruskal's primary approach to tie-blocks:
 					Sort corresponding distances, with iPoint, and jPoint.
@@ -1334,7 +1440,7 @@ autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int t
 					if (tiesProcessing == MDS_PRIMARY_APPROACH) {
 						NUMsort3 (distance.peek(), iPoint, jPoint, ib, i - 1, 1); // sort ascending
 					} else if (tiesProcessing == MDS_SECONDARY_APPROACH) {
-						double mean = 0.0;
+						double mean = 0;
 						for (long j = ib; j <= i - 1; j++) {
 							mean += distance[j];
 						}
@@ -1350,14 +1456,18 @@ autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int t
 
 		NUMmonotoneRegression (distance.peek(), nProximities, fit.peek());
 
-		// Fill Distance with monotone regressed distances
+		/*
+			Fill Distance with monotone regressed distances
+		*/
 
 		for (long i = 1; i <= nProximities; i++) {
 			long ip = iPoint[i], jp = jPoint[i];
 			his data[ip][jp] = his data[jp][ip] = fit[i];
 		}
 
-		// Make rest of distances equal to the maximum fit.
+		/*
+			Make rest of distances equal to the maximum fit.
+		*/
 
 		for (long i = 1; i <= his numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= his numberOfColumns; j++) {
@@ -1366,21 +1476,21 @@ autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int t
 				}
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
 }
 
 
-autoDistance Dissimilarity_Distance_monotoneRegression (Dissimilarity me, Distance thee, int tiesProcessing) {
+Distance Dissimilarity_Distance_monotoneRegression (Dissimilarity me, Distance thee, int tiesProcessing) {
 	try {
 		if (thy numberOfRows != my numberOfRows) {
 			Melder_throw (U"Dimensions do not agree.");
 		}
 		autoMDSVec vec = Dissimilarity_to_MDSVec (me);
-		autoDistance him = MDSVec_Distance_monotoneRegression (vec.get(), thee, tiesProcessing);
-		return him;
+		autoDistance him = MDSVec_Distance_monotoneRegression (vec.peek(), thee, tiesProcessing);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
@@ -1388,37 +1498,58 @@ autoDistance Dissimilarity_Distance_monotoneRegression (Dissimilarity me, Distan
 
 /*************** class Proximities **************************************/
 
-autoScalarProductList DistanceList_to_ScalarProductList (DistanceList me, bool normalize) {
+Thing_implement (Proximities, TablesOfReal, 0);
+
+void Proximities_init (I, ClassInfo klas) {
+	iam (Proximities);
+	TablesOfReal_init (me, klas);
+}
+
+Proximities Proximities_create () {
 	try {
-		autoScalarProductList thee = ScalarProductList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			autoScalarProduct sp = Distance_to_ScalarProduct (my at [i], normalize);
-			thy addItem_move (sp.move());
+		autoProximities me = Thing_new (Proximities);
+		Proximities_init (me.peek(), classProximity);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Proximities not created.");
+	}
+}
+
+ScalarProducts Distances_to_ScalarProducts (Distances me, int normalize) {
+	try {
+		autoScalarProducts thee = ScalarProducts_create ();
+		for (long i = 1; i <= my size; i++) {
+			autoScalarProduct sp = Distance_to_ScalarProduct ( (Distance) (my item[i]), normalize);
+			Collection_addItem (thee.peek(), sp.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no ScalarProducts created.");
 	}
 }
 
-void DistanceList_to_Configuration_ytl (DistanceList me, int numberOfDimensions, int normalizeScalarProducts, autoConfiguration *out1, autoSalience *out2) {
+int Distances_to_Configuration_ytl (Distances me, int numberOfDimensions,
+                                    int normalizeScalarProducts, Configuration *out1, Salience *out2) {
 	try {
-		autoScalarProductList sp = DistanceList_to_ScalarProductList (me, normalizeScalarProducts);
-		ScalarProductList_to_Configuration_ytl (sp.get(), numberOfDimensions, out1, out2);
+		*out1 = NULL; *out2 = NULL;
+		autoScalarProducts sp = Distances_to_ScalarProducts (me, normalizeScalarProducts);
+		ScalarProducts_to_Configuration_ytl (sp.peek(), numberOfDimensions, out1, out2);
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (ytl method).");
 	}
 }
 
-void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfDimensions, autoConfiguration *out1, autoSalience *out2) {
+void ScalarProducts_to_Configuration_ytl (ScalarProducts me, int numberOfDimensions, Configuration *out1, Salience *out2) {
 	long numberOfSources = my size;
 	autoNUMvector<double **> ci (1, numberOfSources);
 	try {
-		long nPoints = my at [1] -> numberOfRows;
+		long nPoints = ( (ScalarProduct) my item[1]) -> numberOfRows;
+		double **w;
 
 		autoConfiguration thee = Configuration_create (nPoints, numberOfDimensions);
 		autoSalience mdsw = Salience_create (numberOfSources, numberOfDimensions);
-		TableOfReal_copyLabels (my at [1], thee.get(), 1, 0);
+		TableOfReal_copyLabels ((TableOfReal) my item[1], thee.peek(), 1, 0);
 		autoNUMvector<double> eval (1, numberOfSources);
 		autoNUMmatrix<double> cl (1, numberOfDimensions, 1, numberOfDimensions);
 		autoNUMmatrix<double> pmean (1, nPoints, 1, nPoints);
@@ -1428,26 +1559,28 @@ void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfD
 		autoNUMmatrix<double> evec (1, numberOfSources, 1, numberOfSources);
 		autoNUMmatrix<double> K (1, numberOfDimensions, 1, numberOfDimensions);
 
-		Thing_setName (mdsw.get(), U"ytl");
-		Thing_setName (thee.get(), U"ytl");
-		TableOfReal_labelsFromCollectionItemNames (mdsw.get(), (Collection) me, 1, 0);   // FIXME cast
+		*out1 = NULL; *out2 = NULL;
+
+		Thing_setName (mdsw.peek(), U"ytl");
+		Thing_setName (thee.peek(), U"ytl");
+		TableOfReal_labelsFromCollectionItemNames (mdsw.peek(), me, 1, 0);
 
 		// Determine the average scalar product matrix (Pmean) of
 		// dimension [1..nPoints][1..nPoints].
 
-		for (long i = 1; i <= numberOfSources; i ++) {
-			ScalarProduct sp = my at [i];
-			for (long j = 1; j <= nPoints; j ++) {
-				for (long k = 1; k <= nPoints; k ++) {
-					pmean [j] [k] += sp -> data [j] [k];
+		for (long i = 1; i <= numberOfSources; i++) {
+			ScalarProduct sp = (ScalarProduct) my item[i];
+			for (long j = 1; j <= nPoints; j++) {
+				for (long k = 1; k <= nPoints; k++) {
+					pmean[j][k] += sp->data[j][k];
 				}
 			}
 		}
 
 		if (numberOfSources > 1) {
-			for (long j = 1; j <= nPoints; j ++) {
-				for (long k = 1; k <= nPoints; k ++) {
-					pmean [j] [k] /= numberOfSources;
+			for (long j = 1; j <= nPoints; j++) {
+				for (long k = 1; k <= nPoints; k++) {
+					pmean[j][k] /= numberOfSources;
 				}
 			}
 		}
@@ -1470,15 +1603,15 @@ void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfD
 
 		NUMpseudoInverse (y.peek(), nPoints, numberOfDimensions, yinv.peek(), 1e-14);
 
-		for (long i = 1; i <= numberOfSources; i ++) {
-			ScalarProduct sp = my at [i];
-			ci [i] = NUMmatrix<double> (1, numberOfDimensions, 1, numberOfDimensions);
-			for (long j = 1; j <= numberOfDimensions; j ++) {
-				for (long k = 1; k <= numberOfDimensions; k ++) {
-					for (long l = 1; l <= nPoints; l ++) {
-						if (yinv [j] [l] != 0.0) {
-							for (long m = 1; m <= nPoints; m ++) {
-								ci [i] [j] [k] += yinv [j] [l] * sp -> data [l] [m] * yinv [k] [m];
+		for (long i = 1; i <= numberOfSources; i++) {
+			ScalarProduct sp = (ScalarProduct) my item[i];
+			ci[i] = NUMmatrix<double> (1, numberOfDimensions, 1, numberOfDimensions);
+			for (long j = 1; j <= numberOfDimensions; j++) {
+				for (long k = 1; k <= numberOfDimensions; k++) {
+					for (long l = 1; l <= nPoints; l++) {
+						if (yinv[j][l] != 0) {
+							for (long m = 1; m <= nPoints; m++) {
+								ci[i][j][k] += yinv[j][l] * sp -> data[l][m] * yinv[k][m];
 							}
 						}
 					}
@@ -1490,19 +1623,19 @@ void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfD
 		// a[i][j] = trace (C[i]*C[j]) - trace (C[i]) * trace (C[j]) / numberOfDimensions;
 		// Get the first eigenvector and form matrix cl from a linear combination of the C[i]'s
 
-		for (long i = 1; i <= numberOfSources; i ++) {
-			for (long j = i; j <= numberOfSources; j ++) {
-				a [j] [i] = a [i] [j] =  NUMtrace2 (ci [i], ci [j], numberOfDimensions)
-					- NUMtrace (ci [i], numberOfDimensions) * NUMtrace (ci [j], numberOfDimensions) / numberOfDimensions;
+		for (long i = 1; i <= numberOfSources; i++) {
+			for (long j = i; j <= numberOfSources; j++) {
+				a[j][i] = a[i][j] =  NUMtrace2 (ci[i], ci[j], numberOfDimensions)
+				                     - NUMtrace (ci[i], numberOfDimensions) * NUMtrace (ci[j], numberOfDimensions) / numberOfDimensions;
 			}
 		}
 
 		NUMeigensystem (a.peek(), numberOfSources, evec.peek(), eval.peek());
 
-		for (long i = 1; i <= numberOfSources; i ++) {
-			for (long j = 1; j <= numberOfDimensions; j ++) {
-				for (long k = 1; k <= numberOfDimensions; k ++) {
-					cl [j] [k] += ci [i] [j] [k] * evec [i] [1]; /* eq. (7) */
+		for (long i = 1; i <= numberOfSources; i++) {
+			for (long j = 1; j <= numberOfDimensions; j++) {
+				for (long k = 1; k <= numberOfDimensions; k++) {
+					cl[j][k] += ci[i][j][k] * evec[i][1]; /* eq. (7) */
 				}
 			}
 		}
@@ -1510,77 +1643,77 @@ void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfD
 		// The rotation K is obtained from the eigenvectors of cl
 		// Is the following still correct??? eigensystem was not sorted??
 
-		NUMeigensystem (cl.peek(), numberOfDimensions, K.peek(), nullptr);
+		NUMeigensystem (cl.peek(), numberOfDimensions, K.peek(), NULL);
 
 		// Now get the configuration: X = Y.K
 
-		for (long i = 1; i <= nPoints; i ++) {
-			for (long j = 1; j <= numberOfDimensions; j ++) {
-				double x = 0.0;
-				for (long k = 1; k <= numberOfDimensions; k ++) {
-					x += y [i] [k] * K [k] [j];
+		for (long i = 1; i <= nPoints; i++) {
+			for (long j = 1; j <= numberOfDimensions; j++) {
+				double x = 0;
+				for (long k = 1; k <= numberOfDimensions; k++) {
+					x += y[i][k] * K[k][j];
 				}
-				thy data [i] [j] = x;
+				thy data [i][j] = x;
 			}
 		}
 
-		Configuration_normalize (thee.get(), 0, true);
+		Configuration_normalize (thee.peek(), 0, 1);
 
 		// And finally the weights: W[i] = K' C[i] K   (eq. (5)).
 		// We are only interested in the diagonal of the resulting matrix W[i].
 
-		for (long i = 1; i <= numberOfSources; i ++) {
-			for (long j = 1; j <= numberOfDimensions; j ++) {
-				double wt = 0.0;
-				for (long k = 1; k <= numberOfDimensions; k ++) {
-					if (K [k] [j] != 0.0) {
-						for (long l = 1; l <= numberOfDimensions; l ++) {
-							wt += K [k] [j] * ci [i] [k] [l] * K [l] [j];
+		w = mdsw -> data;
+		for (long i = 1; i <= numberOfSources; i++) {
+			for (long j = 1; j <= numberOfDimensions; j++) {
+				double wt = 0;
+				for (long k = 1; k <= numberOfDimensions; k++) {
+					if (K[k][j] != 0) {
+						for (long l = 1; l <= numberOfDimensions; l++) {
+							wt += K[k][j] * ci[i][k][l] * K[l][j];
 						}
 					}
 				}
-				mdsw -> data [i] [j] = wt;
+				w[i][j] = wt;
 			}
 		}
-		
-		*out1 = thee.move(); *out2 = mdsw.move();
-		for (long i = 1; i <= numberOfSources; i ++) {
-			NUMmatrix_free<double> (ci [i], 1, 1);
+		*out1 = thee.transfer(); *out2 = mdsw.transfer();
+		for (long i = 1; i <= numberOfSources; i++) {
+			NUMmatrix_free<double> (ci[i], 1, 1);
 		}
 	} catch (MelderError) {
-		for (long i = 1; i <= numberOfSources; i ++) {
-			NUMmatrix_free<double> (ci [i], 1, 1);
-		}
-		Melder_throw (me, U": no Configuration (ytl) created.");
+		for (long i = 1; i <= numberOfSources; i++) {
+			NUMmatrix_free<double> (ci[i], 1, 1);
+		};
+		Melder_throw (me, U": no Configuration (ytl) crerated.");
 	}
 }
 
-autoDissimilarityList DistanceList_to_DissimilarityList (DistanceList me) {
+Dissimilarities Distances_to_Dissimilarities (Distances me) {
 	try {
-		autoDissimilarityList thee = DissimilarityList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			char32 *name = Thing_getName (my at [i]);
-			autoDissimilarity him = Distance_to_Dissimilarity (my at [i]);
-			Thing_setName (him.get(), name ? name : U"untitled");
-			thy addItem_move (him.move());
+		autoDissimilarities thee = Dissimilarities_create ();
+		for (long i = 1; i <= my size; i++) {
+			char32 *name = Thing_getName ( (Thing) my item[i]);
+			autoDissimilarity him = Distance_to_Dissimilarity ( (Distance) (my item[i]));
+			Thing_setName (him.peek(), name ? name : U"untitled");
+			Collection_addItem (thee.peek(), him.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Dissimilarities created.");
 	}
 }
 
-autoDistanceList DissimilarityList_to_DistanceList (DissimilarityList me, int measurementLevel) {
+Distances Dissimilarities_to_Distances (Dissimilarities me, int measurementLevel) {
 	try {
-		autoDistanceList thee = DistanceList_create ();
+		autoDistances thee = Distances_create ();
 
-		for (long i = 1; i <= my size; i ++) {
-			autoDistance him = Dissimilarity_to_Distance (my at [i], measurementLevel == MDS_ORDINAL);
-			char32 *name = Thing_getName (my at [i]);
-			Thing_setName (him.get(), name ? name : U"untitled");
-			thy addItem_move (him.move());
+		for (long i = 1; i <= my size; i++) {
+			autoDistance him = Dissimilarity_to_Distance ( (Dissimilarity) my item[i], measurementLevel == MDS_ORDINAL);
+			char32 *name = Thing_getName ( (Thing) my item[i]);
+			Thing_setName (him.peek(), name ? name : U"untitled");
+			Collection_addItem (thee.peek(), him.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Distances created.");
 	}
@@ -1588,7 +1721,8 @@ autoDistanceList DissimilarityList_to_DistanceList (DissimilarityList me, int me
 
 /*****************  Kruskal *****************************************/
 
-static void smacof_guttmanTransform (Configuration cx, Configuration cz, Distance disp, Weight weight, double **vplus) {
+static void smacof_guttmanTransform (Configuration cx, Configuration cz,
+                                     Distance disp, Weight weight, double **vplus) {
 	long nPoints = cx -> numberOfRows, nDimensions = cx -> numberOfColumns;
 	double **z = cz -> data;
 
@@ -1598,10 +1732,10 @@ static void smacof_guttmanTransform (Configuration cx, Configuration cz, Distanc
 	// compute B(Z) (eq. 8.25)
 
 	for (long i = 1; i <= nPoints; i++) {
-		double sum = 0.0;
+		double sum = 0;
 		for (long j = 1; j <= nPoints; j++) {
 			double dzij = distZ -> data[i][j];
-			if (i == j || dzij == 0.0) {
+			if (i == j || dzij == 0) {
 				continue;
 			}
 			b[i][j] = - weight -> data[i][j] * disp -> data[i][j] / dzij;
@@ -1614,7 +1748,7 @@ static void smacof_guttmanTransform (Configuration cx, Configuration cz, Distanc
 
 	for (long i = 1; i <= nPoints; i++) {
 		for (long j = 1; j <= nDimensions; j++) {
-			double xij = 0.0;
+			double xij = 0;
 			for (long k = 1;  k <= nPoints; k++) {
 				for (long l = 1; l <= nPoints; l++) {
 					xij += vplus[i][k] * b[k][l] * z[l][j];
@@ -1635,19 +1769,19 @@ double Distance_Weight_stress (Distance fit, Distance conf, Weight weight, int t
 
 	if (type == MDS_NORMALIZED_STRESS) {
 		denum = eta_fit * eta_conf;
-		if (denum > 0.0) {
+		if (denum > 0) {
 			stress = 1.0 - rho * rho / denum;
 		}
 	} else if (type == MDS_STRESS_1) {
 		denum = eta_fit * eta_conf;
-		if (denum > 0.0) {
+		if (denum > 0) {
 			tmp = 1.0 - rho * rho / denum;
-			if (tmp > 0.0) {
+			if (tmp > 0) {
 				stress = sqrt (tmp);
 			}
 		}
 	} else if (type == MDS_STRESS_2) {
-		double m = 0.0, wsum = 0.0, var = 0.0, **w = weight -> data;
+		double m = 0, wsum = 0, var = 0, **w = weight -> data;
 		double **c = conf -> data;
 		long nPoints = conf -> numberOfRows;
 
@@ -1660,7 +1794,7 @@ double Distance_Weight_stress (Distance fit, Distance conf, Weight weight, int t
 			}
 		}
 		m /= wsum;
-		if (m > 0.0) {
+		if (m > 0) {
 			// Get variance
 
 			for (long i = 1; i <= nPoints - 1; i++) {
@@ -1670,97 +1804,94 @@ double Distance_Weight_stress (Distance fit, Distance conf, Weight weight, int t
 				}
 			}
 			denum = var * eta_fit;
-			if (denum > 0.0) {
+			if (denum > 0) {
 				stress = sqrt ( (eta_fit * eta_conf - rho * rho) / denum);
 			}
 		}
 	} else if (type == MDS_RAW_STRESS) {
-		stress = eta_fit + eta_conf - 2.0 * rho ;
+		stress = eta_fit + eta_conf - 2 * rho ;
 	}
 	return stress;
 }
 
-void Distance_Weight_rawStressComponents (Distance fit, Distance conf, Weight weight, double *p_etafit, double *p_etaconf, double *p_rho)
-{
+void Distance_Weight_rawStressComponents (Distance fit, Distance conf,
+        Weight weight, double *eta_fit, double *eta_conf, double *rho) {
 	long nPoints = conf -> numberOfRows;
 
-	double etafit = 0.0, etaconf = 0.0, rho = 0.0;
+	*eta_fit = *eta_conf = *rho = 0;
 
+	double wsum = 0;
 	for (long i = 1; i <= nPoints - 1; i++) {
 		double *wi = weight -> data[i];
 		double *fiti = fit -> data[i];
 		double *confi = conf -> data[i];
 
 		for (long j = i + 1; j <= nPoints; j++) {
-			etafit += wi[j] * fiti[j] * fiti[j];
-			etaconf += wi[j] * confi[j] * confi[j];
-			rho += wi[j] * fiti[j] * confi[j];
+			*eta_fit += wi[j] * fiti[j] * fiti[j];
+			*eta_conf += wi[j] * confi[j] * confi[j];
+			*rho += wi[j] * fiti[j] * confi[j];
+			wsum += wi[j];
 		}
 	}
-	if (p_etafit) {
-		*p_etafit = etafit;
-	}
-	if (p_etaconf) {
-		*p_etaconf = etaconf;
-	}
-	if (p_rho) {
-		*p_rho = rho;
-	}
 }
 
-double Dissimilarity_Configuration_Transformator_Weight_stress (Dissimilarity d, Configuration c, Transformator t, Weight w, int type) {
+double Dissimilarity_Configuration_Transformator_Weight_stress (Dissimilarity d,
+        Configuration c, Any transformator, Weight w, int type) {
+	Transformator t = (Transformator) transformator;
 	long nPoints = d -> numberOfRows;
 	double stress = NUMundefined;
 
-	if (nPoints < 1 || nPoints != c -> numberOfRows  || nPoints != t -> numberOfPoints || (w && nPoints != w -> numberOfRows)) {
+	if (nPoints < 1 || nPoints != c -> numberOfRows  || nPoints != t -> numberOfPoints ||
+	        (w && nPoints != w -> numberOfRows)) {
 		Melder_throw (U"Incorrect number of points.");
 	}
-	autoWeight aw;
-	if (! w) {
-		aw = Weight_create (nPoints);
-		w = aw.get();
+	autoWeight aw = 0;
+	if (w == 0) {
+		aw.reset (Weight_create (nPoints));
+		w = aw.peek();
 	}
 	autoDistance cdist = Configuration_to_Distance (c);
 	autoMDSVec vec = Dissimilarity_to_MDSVec (d);
-	autoDistance fit = Transformator_transform (t, vec.get(), cdist.get(), w);
+	autoDistance fit = Transformator_transform (t, vec.peek(), cdist.peek(), w);
 
-	stress = Distance_Weight_stress (fit.get(), cdist.get(), w, type);
+	stress = Distance_Weight_stress (fit.peek(), cdist.peek(), w, type);
 	return stress;
 }
 
 double Dissimilarity_Configuration_Weight_absolute_stress (Dissimilarity d, Configuration c, Weight w, int type) {
 	autoTransformator t = Transformator_create (d -> numberOfRows);
-	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.get(), w, type);
+	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.peek(), w, type);
 	return stress;
 }
 
 double Dissimilarity_Configuration_Weight_ratio_stress (Dissimilarity d, Configuration c, Weight w, int type) {
 	autoRatioTransformator t = RatioTransformator_create (d -> numberOfRows);
-	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.get(), w, type);
+	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.peek(), w, type);
 	return stress;
 }
 
 double Dissimilarity_Configuration_Weight_interval_stress (Dissimilarity d, Configuration c, Weight w, int type) {
 	autoISplineTransformator t = ISplineTransformator_create (d -> numberOfRows, 0, 1);
-	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.get(), w, type);
+	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.peek(), w, type);
 	return stress;
 }
 
 double Dissimilarity_Configuration_Weight_monotone_stress (Dissimilarity d, Configuration c, Weight w, int tiesProcessing, int type) {
 	autoMonotoneTransformator t = MonotoneTransformator_create (d -> numberOfRows);
-	MonotoneTransformator_setTiesProcessing (t.get(), tiesProcessing);
-	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.get(), w, type);
+	MonotoneTransformator_setTiesProcessing (t.peek(), tiesProcessing);
+	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.peek(), w, type);
 	return stress;
 }
 
-double Dissimilarity_Configuration_Weight_ispline_stress (Dissimilarity d, Configuration c, Weight w, long numberOfInteriorKnots, long order, int type) {
+double Dissimilarity_Configuration_Weight_ispline_stress (Dissimilarity d,
+        Configuration c, Weight w, long numberOfInteriorKnots, long order, int type) {
 	autoISplineTransformator t = ISplineTransformator_create (d -> numberOfRows, numberOfInteriorKnots, order);
-	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.get(), w, type);
+	double stress = Dissimilarity_Configuration_Transformator_Weight_stress (d, c, t.peek(), w, type);
 	return stress;
 }
 
 void Distance_Weight_smacofNormalize (Distance me, Weight w) {
-	double sumsq = 0.0;
+	double sumsq = 0;
 	for (long i = 1; i <= my numberOfRows - 1; i++) {
 		double *wi = w -> data[i];
 		double *di = my data[i];
@@ -1768,7 +1899,7 @@ void Distance_Weight_smacofNormalize (Distance me, Weight w) {
 			sumsq += wi[j] * di[j] * di[j];
 		}
 	}
-	double scale = sqrt (my numberOfRows * (my numberOfRows - 1) / (2.0 * sumsq));
+	double scale = sqrt (my numberOfRows * (my numberOfRows - 1) / (2 * sumsq));
 	for (long i = 1; i <= my numberOfRows - 1; i++) {
 		for (long j = i + 1; j <= my numberOfRows; j++) {
 			my data[j][i] = (my data[i][j] *= scale);
@@ -1779,10 +1910,10 @@ void Distance_Weight_smacofNormalize (Distance me, Weight w) {
 double Distance_Weight_congruenceCoefficient (Distance x, Distance y, Weight w) {
 	long nPoints = x -> numberOfRows;
 	if (y -> numberOfRows != nPoints || w -> numberOfRows != nPoints) {
-		return 0.0;
+		return 0;
 	}
 
-	double xy = 0.0, x2 = 0.0, y2 = 0.0;
+	double xy = 0, x2 = 0, y2 = 0;
 	for (long i = 1; i <= nPoints - 1; i++) {
 		double *xi = x -> data[i];
 		double *yi = y -> data[i];
@@ -1796,20 +1927,23 @@ double Distance_Weight_congruenceCoefficient (Distance x, Distance y, Weight w)
 	return xy / (sqrt (x2) * sqrt (y2));
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissimilarity me, Configuration conf, Weight weight, Transformator t, double tolerance, long numberOfIterations, bool showProgress, double *stress) {
+Configuration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissimilarity me, Configuration conf,
+        Weight weight, Any transformator, double tolerance, long numberOfIterations, int showProgress, double *stress) {
 	try {
+		Transformator t = (Transformator) transformator;
 		long nPoints = conf -> numberOfRows;
 		long nDimensions = conf -> numberOfColumns;
-		double tol = 1e-6, stressp = 1e308, stres;
-		bool no_weight = ! weight;
+		double tol = 1e-6, stressp = 1e38;
+		bool no_weight = weight == 0;
 
-		if (my numberOfRows != nPoints || (!no_weight && weight -> numberOfRows != nPoints) || t -> numberOfPoints != nPoints) {
+		if (my numberOfRows != nPoints || (!no_weight && weight -> numberOfRows != nPoints) ||
+		        t -> numberOfPoints != nPoints) {
 			Melder_throw (U"Dimensions not in concordance.");
 		}
-		autoWeight aw;
+		autoWeight aw = 0;
 		if (no_weight) {
-			aw = Weight_create (nPoints);
-			weight = aw.get();
+			aw.reset (Weight_create (nPoints));
+			weight = aw.peek();
 		}
 		autoNUMmatrix<double> v (1, nPoints, 1, nPoints);
 		autoNUMmatrix<double> vplus (1, nPoints, 1, nPoints);
@@ -1845,21 +1979,21 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissi
 
 			// transform & normalization
 
-			autoDistance fit = Transformator_transform (t, vec.get(), dist.get(), weight);
+			autoDistance fit = Transformator_transform (t, vec.peek(), dist.peek(), weight);
 
 			// Make conf the Guttman transform of z
 
-			smacof_guttmanTransform (conf, z.get(), fit.get(), weight, vplus.peek());
+			smacof_guttmanTransform (conf, z.peek(), fit.peek(), weight, vplus.peek());
 
 			// Compute stress
 
 			autoDistance cdist = Configuration_to_Distance (conf);
 
-			stres = Distance_Weight_stress (fit.get(), cdist.get(), weight, MDS_NORMALIZED_STRESS);
+			*stress = Distance_Weight_stress (fit.peek(), cdist.peek(), weight, MDS_NORMALIZED_STRESS);
 
 			// Check stop criterium
 
-			if (fabs (stres - stressp) / stressp < tolerance) {
+			if (fabs (*stress - stressp) / stressp < tolerance) {
 				break;
 			}
 
@@ -1867,18 +2001,16 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissi
 
 			NUMmatrix_copyElements (conf -> data, z -> data, 1, nPoints, 1, nDimensions);
 
-			stressp = stres;
+			stressp = *stress;
 			if (showProgress) {
-				Melder_progress ((double) iter / (numberOfIterations + 1), U"kruskal: stress ", stres);
+				Melder_progress ( (double) iter / (numberOfIterations + 1), U"kruskal: stress ",
+				                   *stress);
 			}
 		}
 		if (showProgress) {
 			Melder_progress (1.0);
 		}
-		if (stress) {
-			*stress = stres;
-		}
-		return z;
+		return z.transfer();
 	} catch (MelderError) {
 		if (showProgress) {
 			Melder_progress (1.0);
@@ -1887,11 +2019,12 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissi
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (Dissimilarity me, Configuration conf,  Weight w, Transformator t, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (Dissimilarity me, Configuration conf,
+        Weight w, Any transformator, double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	int showMulti = showProgress && numberOfRepetitions > 1;
 	try {
-		bool showSingle = ( showProgress && numberOfRepetitions == 1 );
-		double stress, stressmax = 1e308;
+		int showSingle = showProgress && numberOfRepetitions == 1;
+		double stress, stressmax = 1e38;
 
 		autoConfiguration cstart = Data_copy (conf);
 		autoConfiguration  cbest = Data_copy (conf);
@@ -1901,13 +2034,14 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (
 		}
 
 		for (long i = 1; i <= numberOfRepetitions; i++) {
-			autoConfiguration cresult = Dissimilarity_Configuration_Weight_Transformator_smacof (me, cstart.get(), w, t, tolerance, numberOfIterations, showSingle, &stress);
+			autoConfiguration cresult = Dissimilarity_Configuration_Weight_Transformator_smacof
+			                            (me, cstart.peek(), w, transformator, tolerance, numberOfIterations, showSingle, &stress);
 			if (stress < stressmax) {
 				stressmax = stress;
-				cbest = cresult.move();
+				cbest.reset (cresult.transfer());
 			}
-			Configuration_randomize (cstart.get());
-			TableOfReal_centreColumns (cstart.get());
+			Configuration_randomize (cstart.peek());
+			TableOfReal_centreColumns (cstart.peek());
 
 			if (showMulti) {
 				Melder_progress ( (double) i / (numberOfRepetitions + 1), i, U" from ", numberOfRepetitions);
@@ -1916,7 +2050,7 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (
 		if (showMulti) {
 			Melder_progress (1.0);
 		}
-		return cbest;
+		return cbest.transfer();
 	} catch (MelderError) {
 		if (showMulti) {
 			Melder_progress (1.0);
@@ -1925,109 +2059,129 @@ autoConfiguration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_absolute_mds (Dissimilarity me, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_absolute_mds (Dissimilarity me, Configuration cstart, Weight w,
+        double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoTransformator t = Transformator_create (my numberOfRows);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.get(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof
+		                      (me, cstart, w, t.peek(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no improved Configuration created (absolute mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_ratio_mds (Dissimilarity me, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_ratio_mds (Dissimilarity me, Configuration cstart, Weight w,
+        double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoRatioTransformator t = RatioTransformator_create (my numberOfRows);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.get(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof
+		                      (me, cstart, w, t.peek(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no improved Configuration created (ratio mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_interval_mds (Dissimilarity me, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_interval_mds (Dissimilarity me, Configuration cstart, Weight w,
+        double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoISplineTransformator t = ISplineTransformator_create (my numberOfRows, 0, 1);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.get(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof
+		                      (me, cstart, w, t.peek(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no improved Configuration created (interval mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_monotone_mds (Dissimilarity me, Configuration cstart, Weight w, int tiesProcessing, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_monotone_mds (Dissimilarity me, Configuration cstart, Weight w,
+        int tiesProcessing, double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoMonotoneTransformator t = MonotoneTransformator_create (my numberOfRows);
-		MonotoneTransformator_setTiesProcessing (t.get(), tiesProcessing);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.get(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		MonotoneTransformator_setTiesProcessing (t.peek(), tiesProcessing);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof
+		                      (me, cstart, w, t.peek(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no improved Configuration created (monotone mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Configuration_Weight_ispline_mds (Dissimilarity me, Configuration cstart, Weight w, long numberOfInteriorKnots, long order, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Configuration_Weight_ispline_mds (Dissimilarity me, Configuration cstart, Weight w,
+        long numberOfInteriorKnots, long order, double tolerance, long numberOfIterations, long numberOfRepetitions,
+        int showProgress) {
 	try {
 		autoISplineTransformator t = ISplineTransformator_create (my numberOfRows, numberOfInteriorKnots, order);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.get(), tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration c = Dissimilarity_Configuration_Weight_Transformator_multiSmacof (me, cstart, w, t.peek(),
+		                      tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no improved Configuration created (ispline mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Weight_absolute_mds (Dissimilarity me, Weight w, long numberOfDimensions, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Weight_absolute_mds (Dissimilarity me, Weight w, long numberOfDimensions,
+        double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoDistance d = Dissimilarity_to_Distance (me, MDS_ABSOLUTE);
-		autoConfiguration cstart = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_absolute_mds (me, cstart.get(), w, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration cstart = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_absolute_mds
+		                      (me, cstart.peek(), w, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (absolute mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Weight_interval_mds (Dissimilarity me, Weight w, long numberOfDimensions, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Weight_interval_mds (Dissimilarity me, Weight w, long numberOfDimensions,
+        double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoDistance d = Dissimilarity_to_Distance (me, MDS_RATIO);
-		autoConfiguration cstart = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_interval_mds (me, cstart.get(), w, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration cstart = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_interval_mds
+		                      (me, cstart.peek(), w, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (interval mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Weight_monotone_mds (Dissimilarity me, Weight w, long numberOfDimensions, int tiesProcessing, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Weight_monotone_mds (Dissimilarity me, Weight w, long numberOfDimensions,
+        int tiesProcessing, double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoDistance d = Dissimilarity_to_Distance (me, MDS_ORDINAL);
-		autoConfiguration cstart = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_monotone_mds (me, cstart.get(), w, tiesProcessing, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration cstart = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_monotone_mds (me, cstart.peek(), w, tiesProcessing,
+		                      tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (monotone mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Weight_ratio_mds (Dissimilarity me, Weight w, long numberOfDimensions, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Weight_ratio_mds (Dissimilarity me, Weight w, long numberOfDimensions, double tolerance,
+        long numberOfIterations, long numberOfRepetitions, int showProgress) {
 	try {
 		autoDistance d = Dissimilarity_to_Distance (me, MDS_RATIO);
-		autoConfiguration cstart = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_ratio_mds (me, cstart.get(), w, tolerance,
-		    numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration cstart = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_ratio_mds (me, cstart.peek(), w, tolerance,
+		                      numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (ratio mds method).");
 	}
 }
 
-autoConfiguration Dissimilarity_Weight_ispline_mds (Dissimilarity me, Weight w, long numberOfDimensions, long numberOfInteriorKnots, long order, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress) {
+Configuration Dissimilarity_Weight_ispline_mds (Dissimilarity me, Weight w, long numberOfDimensions,
+        long numberOfInteriorKnots, long order, double tolerance, long numberOfIterations, long numberOfRepetitions,
+        int showProgress) {
 	try {
 		autoDistance d = Dissimilarity_to_Distance (me, MDS_ORDINAL);
-		autoConfiguration cstart = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		autoConfiguration c = Dissimilarity_Configuration_Weight_ispline_mds (me, cstart.get(), w,
-		    numberOfInteriorKnots, order, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
-		return c;
+		autoConfiguration cstart = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		autoConfiguration c = Dissimilarity_Configuration_Weight_ispline_mds (me, cstart.peek(), w,
+		                      numberOfInteriorKnots, order, tolerance, numberOfIterations, numberOfRepetitions, showProgress);
+		return c.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (ispline mds method).");
 	}
@@ -2035,12 +2189,14 @@ autoConfiguration Dissimilarity_Weight_ispline_mds (Dissimilarity me, Weight w,
 
 /***** classical **/
 
-static void MDSVec_Distances_getStressValues (MDSVec me, Distance ddist, Distance dfit, int stress_formula, double *stress, double *s, double *t, double *dbar) {
+static void MDSVec_Distances_getStressValues (MDSVec me, Distance ddist,
+        Distance dfit, int stress_formula, double *stress, double *s, double *t,
+        double *dbar) {
 	long nProximities = my nProximities;
 	long *iPoint = my iPoint, *jPoint = my jPoint;
 	double **dist = ddist -> data, **fit = dfit -> data;
 
-	*s = *t = *dbar = 0.0;
+	*s = *t = *dbar = 0;
 
 	if (stress_formula == 2) {
 		for (long i = 1; i <= nProximities; i++) {
@@ -2056,12 +2212,12 @@ static void MDSVec_Distances_getStressValues (MDSVec me, Distance ddist, Distanc
 		*s += st * st; *t += tt * tt;
 	}
 
-	*stress = *t > 0.0 ? sqrt (*s / *t) : 0.0;
+	*stress = *t > 0 ? sqrt (*s / *t) : 0;
 }
 
-static double func (Daata object, const double p[]) {
+static double func (Data object, const double p[]) {
 	Kruskal me = (Kruskal) object;
-	MDSVec him = my vec.get();
+	MDSVec him = my vec;
 	double **x = my configuration -> data, s, t, dbar, stress;
 	double metric = my configuration -> metric;
 	long numberOfDimensions = my configuration -> numberOfColumns;
@@ -2075,26 +2231,29 @@ static double func (Daata object, const double p[]) {
 
 	// Normalize
 
-	NUMcentreColumns (x, 1, numberOfPoints, 1, numberOfDimensions, nullptr);
+	NUMcentreColumns (x, 1, numberOfPoints, 1, numberOfDimensions, NULL);
 	NUMnormalize (x, numberOfPoints, numberOfDimensions, sqrt (numberOfPoints));
 
 	// Calculate interpoint distances from the configuration
 
-	autoDistance dist = Configuration_to_Distance (my configuration.get());
+	autoDistance dist = Configuration_to_Distance (my configuration);
+
 
 	// Monotone regression
 
-	autoDistance fit = MDSVec_Distance_monotoneRegression (my vec.get(), dist.get(), tiesProcessing);
+	autoDistance fit = MDSVec_Distance_monotoneRegression (my vec, dist.peek(), tiesProcessing);
+
 
 	// Get numerator and denominator of stress
 
-	MDSVec_Distances_getStressValues (my vec.get(), dist.get(), fit.get(), my stress_formula, &stress, &s, &t, &dbar);
+
+	MDSVec_Distances_getStressValues (my vec, dist.peek(), fit.peek(), my stress_formula, &stress, &s, &t, &dbar);
 
 	// Gradient calculation.
 
 	for (long i = 1; i <= numberOfPoints; i++) {
 		for (long j = 1; j <= numberOfDimensions; j++) {
-			my dx[i][j] = 0.0;
+			my dx[i][j] = 0;
 		}
 	}
 
@@ -2106,11 +2265,11 @@ static double func (Daata object, const double p[]) {
 
 	for (long i = 1; i <= his nProximities; i++) {
 		long ii = my vec -> iPoint[i], jj = my vec -> jPoint[i];
-		double g1 = stress * ((dist->data[ii][jj] - fit->data[ii][jj]) / s - (dist->data[ii][jj] - dbar) / t);
+		double g1 = stress * ( (dist->data[ii][jj] - fit->data[ii][jj]) / s - (dist->data[ii][jj] - dbar) / t);
 		for (long j = 1; j <= numberOfDimensions; j++) {
 			double dj = x[ii][j] - x[jj][j];
-			double g2 = g1 * pow (fabs (dj) / dist->data[ii][jj], metric - 1.0);
-			if (dj < 0.0) {
+			double g2 = g1 * pow (fabs (dj) / dist->data[ii][jj], metric - 1);
+			if (dj < 0) {
 				g2 = -g2;
 			}
 			my dx[ii][j] += g2; my dx[jj][j] -= g2;
@@ -2124,9 +2283,10 @@ static double func (Daata object, const double p[]) {
 }
 
 /* Precondition: configuration was not changed since previous call to func */
-static void dfunc (Daata object, const double * /* p */, double dp[]) {
+static void dfunc (Data object, const double p[], double dp[]) {
 	Kruskal me = (Kruskal) object;
-	Configuration thee = my configuration.get();
+	Configuration thee = my configuration;
+	(void) p;
 
 	long k = 1;
 	for (long i = 1; i <= thy numberOfRows; i++) {
@@ -2136,134 +2296,160 @@ static void dfunc (Daata object, const double * /* p */, double dp[]) {
 	}
 }
 
-void structKruskal :: v_destroy () noexcept {
+Thing_implement (Kruskal, Thing, 0);
+
+void structKruskal :: v_destroy () {
 	NUMmatrix_free<double> (dx, 1, 1);
+	forget (configuration);
+	forget (proximities);
+	forget (vec);
+	forget (minimizer);
 	Kruskal_Parent :: v_destroy ();
 }
 
-autoKruskal Kruskal_create (long numberOfPoints, long numberOfDimensions) {
+Kruskal Kruskal_create (long numberOfPoints, long numberOfDimensions) {
 	try {
 		autoKruskal me = Thing_new (Kruskal);
+		my proximities = Proximities_create ();
 		my configuration = Configuration_create (numberOfPoints, numberOfDimensions);
-		my proximities = ProximityList_create ();
 		my dx = NUMmatrix<double> (1, numberOfPoints, 1, numberOfDimensions);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Kruskal not created.");
 	}
 }
 
-autoConfiguration Dissimilarity_kruskal (Dissimilarity me, long numberOfDimensions, long /* metric */, int tiesProcessing, int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions) {
+Configuration Dissimilarity_kruskal (Dissimilarity me, long numberOfDimensions, long metric, int tiesProcessing,
+                                     int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions) {
 	try {
 		int scale = 1;
+		(void) metric;
 		autoDistance d = Dissimilarity_to_Distance (me, scale);
-		autoConfiguration c = Distance_to_Configuration_torsca (d.get(), numberOfDimensions);
-		Configuration_normalize (c.get(), 1.0, false);
-		autoConfiguration thee = Dissimilarity_Configuration_kruskal (me, c.get(), tiesProcessing, stress_formula, tolerance, numberOfIterations, numberOfRepetitions);
-		return thee;
+		autoConfiguration c = Distance_to_Configuration_torsca (d.peek(), numberOfDimensions);
+		Configuration_normalize (c.peek(), 1.0, 0);
+		autoConfiguration thee = Dissimilarity_Configuration_kruskal (me, c.peek(), tiesProcessing,
+		                         stress_formula, tolerance, numberOfIterations, numberOfRepetitions);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created (kruskal method).");
 	}
 }
 
-void Dissimilarity_Configuration_drawShepardDiagram (Dissimilarity me, Configuration him, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Dissimilarity_Configuration_drawShepardDiagram (Dissimilarity me,
+        Configuration him, Graphics g, double xmin, double xmax, double ymin,
+        double ymax, double size_mm, const char32 *mark, int garnish) {
 	autoDistance dist = Configuration_to_Distance (him);
-	Proximity_Distance_drawScatterDiagram (me, dist.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	Proximity_Distance_drawScatterDiagram (me, dist.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-autoDistance Dissimilarity_Configuration_monotoneRegression (Dissimilarity dissimilarity, Configuration configuration, int tiesProcessing) {
+Distance Dissimilarity_Configuration_monotoneRegression (Dissimilarity dissimilarity, Configuration configuration,
+        int tiesProcessing) {
 	try {
 		autoDistance dist = Configuration_to_Distance (configuration);
-		autoDistance result = Dissimilarity_Distance_monotoneRegression (dissimilarity, dist.get(), tiesProcessing);
-		return result;
+		autoDistance result = Dissimilarity_Distance_monotoneRegression (dissimilarity, dist.peek(), tiesProcessing);
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Distance created (monotone regression).");
 	}
 }
 
-autoDistanceList DissimilarityList_Configuration_monotoneRegression (DissimilarityList me, Configuration configuration, int tiesProcessing) {
+Distances Dissimilarities_Configuration_monotoneRegression (Dissimilarities me, Configuration configuration, int tiesProcessing) {
 	try {
-		autoDistanceList thee = DistanceList_create ();
+		autoDistances result = Distances_create ();
 		autoDistance dist = Configuration_to_Distance (configuration);
-		for (long i = 1; i <= my size; i ++) {
-			autoDistance d = Dissimilarity_Distance_monotoneRegression (my at [i], dist.get(), tiesProcessing);
-			thy addItem_move (d.move());
+		for (long i = 1; i <= my size; i++) {
+			autoDistance d = Dissimilarity_Distance_monotoneRegression ( (Dissimilarity) my item[i], dist.peek(), tiesProcessing);
+			Collection_addItem (result.peek(), d.transfer());
 		}
-		return thee;
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Distances created (monotone regression).");
 	}
 }
 
-void Dissimilarity_Configuration_drawMonotoneRegression (Dissimilarity me, Configuration him, Graphics g, int tiesProcessing, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+
+void Dissimilarity_Configuration_drawMonotoneRegression (Dissimilarity me, Configuration him, Graphics g,
+        int tiesProcessing, double xmin, double xmax, double ymin, double ymax, double size_mm,
+        const char32 *mark, int garnish) {
 	/* obsolete replace by transformator */
 	autoDistance fit = Dissimilarity_Configuration_monotoneRegression (me, him, tiesProcessing);
-	Proximity_Distance_drawScatterDiagram (me, fit.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	Proximity_Distance_drawScatterDiagram (me, fit.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-void Dissimilarity_Configuration_Weight_drawAbsoluteRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
-	autoTransformator t = Transformator_create (d -> numberOfRows);
-	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.get(), w);
-	Proximity_Distance_drawScatterDiagram (d, fit.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+void Dissimilarity_Configuration_Weight_drawAbsoluteRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
+        double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+	autoTransformator t = Transformator_create (d->numberOfRows);
+	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.peek(), w);
+	Proximity_Distance_drawScatterDiagram (d, fit.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-void Dissimilarity_Configuration_Weight_drawRatioRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Dissimilarity_Configuration_Weight_drawRatioRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
+        double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
 	autoRatioTransformator t = RatioTransformator_create (d -> numberOfRows);
-	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.get(), w);
-	Proximity_Distance_drawScatterDiagram (d, fit.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.peek(), w);
+	Proximity_Distance_drawScatterDiagram (d, fit.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-void Dissimilarity_Configuration_Weight_drawIntervalRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
-	Dissimilarity_Configuration_Weight_drawISplineRegression (d, c, w, g, 0.0, 1.0, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+void Dissimilarity_Configuration_Weight_drawIntervalRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
+        double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+	Dissimilarity_Configuration_Weight_drawISplineRegression (d, c, w, g,
+	        0, 1, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-void Dissimilarity_Configuration_Weight_drawMonotoneRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, int tiesProcessing, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Dissimilarity_Configuration_Weight_drawMonotoneRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
+        int tiesProcessing, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
 	autoMonotoneTransformator t = MonotoneTransformator_create (d->numberOfRows);
-	MonotoneTransformator_setTiesProcessing (t.get(), tiesProcessing);
-	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.get(), w);
-	Proximity_Distance_drawScatterDiagram (d, fit.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	MonotoneTransformator_setTiesProcessing (t.peek(), tiesProcessing);
+	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.peek(), w);
+	Proximity_Distance_drawScatterDiagram (d, fit.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-void Dissimilarity_Configuration_Weight_drawISplineRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, long numberOfInternalKnots, long order, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Dissimilarity_Configuration_Weight_drawISplineRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
+        long numberOfInternalKnots, long order, double xmin, double xmax, double ymin, double ymax, double size_mm,
+        const char32 *mark, int garnish) {
 	autoISplineTransformator t = ISplineTransformator_create (d->numberOfRows, numberOfInternalKnots, order);
-	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.get(), w);
-	Proximity_Distance_drawScatterDiagram (d, fit.get(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
+	autoDistance fit = Dissimilarity_Configuration_Transformator_Weight_transform (d, c, t.peek(), w);
+	Proximity_Distance_drawScatterDiagram (d, fit.peek(), g, xmin, xmax, ymin, ymax, size_mm, mark, garnish);
 }
 
-autoDistance Dissimilarity_Configuration_Transformator_Weight_transform (Dissimilarity d, Configuration c, Transformator t, Weight w) {
+Distance Dissimilarity_Configuration_Transformator_Weight_transform (Dissimilarity d, Configuration c, Any t, Weight w) {
 	try {
-		autoWeight aw;
-		if (! w) {
-			aw = Weight_create (d -> numberOfRows);
-			w = aw.get();
+		autoWeight aw = 0;
+		if (w == 0) {
+			aw.reset (Weight_create (d -> numberOfRows));
+			w = aw.peek();
 		}
 		autoDistance cdist = Configuration_to_Distance (c);
 		autoMDSVec v = Dissimilarity_to_MDSVec (d);
-		autoDistance thee = Transformator_transform (t, v.get(), cdist.get(), w);
-		return thee;
+		autoDistance thee = Transformator_transform (t, v.peek(), cdist.peek(), w);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distance not created.");
 	}
 }
 
-double Dissimilarity_Configuration_Weight_Transformator_normalizedStress (Dissimilarity me, Configuration conf, Weight weight, Transformator t) {
+double Dissimilarity_Configuration_Weight_Transformator_normalizedStress
+(Dissimilarity me, Configuration conf, Weight weight, Transformator t) {
 	autoDistance cdist = Configuration_to_Distance (conf);
 	autoMDSVec vec = Dissimilarity_to_MDSVec (me);
-	autoDistance fdist = Transformator_transform (t, vec.get(), cdist.get(), weight);
-	double stress = Distance_Weight_stress (fdist.get(), cdist.get(), weight, MDS_NORMALIZED_STRESS);
+	autoDistance fdist = Transformator_transform (t, vec.peek(), cdist.peek(), weight);
+	double stress = Distance_Weight_stress (fdist.peek(), cdist.peek(), weight, MDS_NORMALIZED_STRESS);
 	return stress;
 }
 
-double Dissimilarity_Configuration_getStress (Dissimilarity me, Configuration him, int tiesProcessing, int stress_formula) {
+double Dissimilarity_Configuration_getStress (Dissimilarity me, Configuration him, int tiesProcessing,
+        int stress_formula) {
 	autoDistance dist = Configuration_to_Distance (him);
 	autoMDSVec vec = Dissimilarity_to_MDSVec (me);
-	autoDistance fit = MDSVec_Distance_monotoneRegression (vec.get(), dist.get(), tiesProcessing);
-	double s, t, dbar, stress;
-	MDSVec_Distances_getStressValues (vec.get(), dist.get(), fit.get(), stress_formula, &stress, &s, &t, &dbar);
+	autoDistance fit = MDSVec_Distance_monotoneRegression (vec.peek(), dist.peek(), tiesProcessing);
+	double s, t, dbar;
+	double stress;
+	MDSVec_Distances_getStressValues (vec.peek(), dist.peek(), fit.peek(), stress_formula, &stress, &s, &t, &dbar);
 	return stress;
 }
 
-autoConfiguration Dissimilarity_Configuration_kruskal (Dissimilarity me, Configuration him, int tiesProcessing, int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions) {
+Configuration Dissimilarity_Configuration_kruskal (Dissimilarity me, Configuration him, int tiesProcessing,
+        int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions) {
 	try {
 		// The Configuration is normalized: each dimension centred +
 		//	total variance set
@@ -2277,27 +2463,27 @@ autoConfiguration Dissimilarity_Configuration_kruskal (Dissimilarity me, Configu
 		}
 
 		autoKruskal thee = Kruskal_create (my numberOfRows, his numberOfColumns);
-		TableOfReal_copyLabels (me, thy configuration.get(), 1, 0);
+		TableOfReal_copyLabels (me, thy configuration, 1, 0);
 		autoDissimilarity dissimilarity = Data_copy (me);
-		thy proximities -> addItem_move (dissimilarity.move());
+		Collection_addItem (thy proximities, dissimilarity.transfer());
 		thy vec = Dissimilarity_to_MDSVec (me);
 
-		thy minimizer = VDSmagtMinimizer_create (numberOfCoordinates, (Daata) thee.get(), func, dfunc);
+		thy minimizer = (Minimizer) VDSmagtMinimizer_create (numberOfCoordinates, (Data) thee.peek(), func, dfunc);
 
 		NUMdmatrix_into_vector (his data, thy minimizer -> p, 1, his numberOfRows, 1, his numberOfColumns);
 
 		thy stress_formula = stress_formula;
 		thy process = tiesProcessing;
-		Configuration_setMetric (thy configuration.get(), his metric);
+		Configuration_setMetric (thy configuration, his metric);
 
-		Minimizer_minimizeManyTimes (thy minimizer.get(), numberOfRepetitions, numberOfIterations, tolerance);
+		Minimizer_minimizeManyTimes (thy minimizer, numberOfRepetitions, numberOfIterations, tolerance);
 
-		// call the function to get the best configuration
+		/* call the function to get the best configuration */
 
-		(void) func ((Daata) thee.get(), thy minimizer -> p); 
+		(void) func ( (Data) thee.peek(), ( (Minimizer) (thy minimizer)) -> p);
 
-		autoConfiguration result = Data_copy (thy configuration.get()); // TODO move from its autoConfiguration
-		return result;
+		autoConfiguration result = Data_copy (thy configuration);
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Configuration created.");
 	}
@@ -2305,14 +2491,16 @@ autoConfiguration Dissimilarity_Configuration_kruskal (Dissimilarity me, Configu
 
 /************************** INDSCAL **************************************/
 
+
 /*
 	Ten Berge, Kiers & Krijnen (1993), Computational Solutions for the
-	Problem of Negative Saliences and Nonsymmetry in INDSCAL, Journal of Classification 10, 115-124.
+	Problem of Negative Saliences and Nonsymmetry in INDSCAL,
+	Journal of Classification 10, 115-124.
 */
 
-static void indscal_iteration_tenBerge (ScalarProductList zc, Configuration xc, Salience weights) {
+static void indscal_iteration_tenBerge (ScalarProducts zc, Configuration xc, Salience weights) {
 	long nPoints = xc -> numberOfRows, nDimensions = xc -> numberOfColumns;
-	long nSources = zc->size;
+	long nSources = zc -> size;
 	double **x = xc -> data, **w = weights -> data, lambda;
 
 	// tolerance = 1e-4 is nearly optimal for dominant eigenvector estimation.
@@ -2321,61 +2509,61 @@ static void indscal_iteration_tenBerge (ScalarProductList zc, Configuration xc,
 	autoNUMmatrix<double> wsih (1, nPoints, 1, nPoints);
 	autoNUMvector<double> solution (1, nPoints);
 
-	for (long h = 1; h <= nDimensions; h ++) {
-		autoScalarProductList sprc = Data_copy (zc);
-		for (long k = 1; k <= nPoints; k ++) {
-			for (long l = 1; l <= nPoints; l ++) {
-				wsih [k] [l] = 0.0;
+	for (long h = 1; h <= nDimensions; h++) {
+		autoCollection sprc = Data_copy ( (Collection) zc);
+		for (long k = 1; k <= nPoints; k++) {
+			for (long l = 1; l <= nPoints; l++) {
+				wsih[k][l] = 0;
 			}
 		}
 
-		for (long i = 1; i <= nSources; i ++) {
-			ScalarProduct spr = sprc -> at [i];
+		for (long i = 1; i <= nSources; i++) {
+			ScalarProduct spr = (ScalarProduct) sprc -> item[i];
 			double **sih = spr -> data;
 
 			// Construct the S[i][h] matrices (eq. 6)
 
-			for (long j = 1; j <= nDimensions; j ++) {
+			for (long j = 1; j <= nDimensions; j++) {
 				if (j == h) {
 					continue;
 				}
-				for (long k = 1; k <= nPoints; k ++) {
-					for (long l = 1; l <= nPoints; l ++) {
-						sih [k] [l] -= x [k] [j] * x [l] [j] * w [i] [j];
+				for (long k = 1; k <= nPoints; k++) {
+					for (long l = 1; l <= nPoints; l++) {
+						sih[k][l] -= x[k][j] * x[l][j] * w[i][j];
 					}
 				}
 			}
 
 			// the weighted S matrix (eq. 8)
 
-			for (long k = 1; k <= nPoints; k ++) {
-				for (long l = 1; l <= nPoints; l ++) {
-					wsih [k] [l] += w [i] [h] * sih [k] [l];
+			for (long k = 1; k <= nPoints; k++) {
+				for (long l = 1; l <= nPoints; l++) {
+					wsih[k][l] += w[i][h] * sih[k][l];
 				}
 			}
 		}
 
 		// largest eigenvalue of m (nonsymmetric matrix!!) is optimal solution for this dimension
 
-		for (long k = 1; k <= nPoints; k ++) {
-			solution[k] = x [k] [h];
+		for (long k = 1; k <= nPoints; k++) {
+			solution[k] = x[k][h];
 		}
 
-		NUMdominantEigenvector (wsih.peek(), nPoints, solution.peek(), & lambda, tolerance);
+		NUMdominantEigenvector (wsih.peek(), nPoints, solution.peek(), &lambda, tolerance);
 
 		// normalize the solution: centre and x'x = 1
 
-		double mean = 0.0;
+		double mean = 0;
 		for (long k = 1; k <= nPoints; k++) {
 			mean += solution[k];
 		}
 		mean /= nPoints;
 
-		if (mean == 0.0) {
+		if (mean == 0) {
 			continue;
 		}
 
-		double scale = 0.0;
+		double scale = 0;
 		for (long k = 1; k <= nPoints; k++) {
 			solution[k] -= mean;
 			scale += solution[k] * solution[k];
@@ -2387,16 +2575,16 @@ static void indscal_iteration_tenBerge (ScalarProductList zc, Configuration xc,
 
 		// update weights. Make negative weights zero.
 
-		for (long i = 1; i <= nSources; i ++) {
-			ScalarProduct spr = sprc -> at [i];
-			double **sih = spr -> data, wih = 0.0;
-			for (long k = 1; k <= nPoints; k ++) {
-				for (long l = 1; l <= nPoints; l ++) {
-					wih += x [k] [h] * sih [k] [l] * x [l] [h];
+		for (long i = 1; i <= nSources; i++) {
+			ScalarProduct spr = (ScalarProduct) sprc -> item[i];
+			double **sih = spr -> data, wih = 0;
+			for (long k = 1; k <= nPoints; k++) {
+				for (long l = 1; l <= nPoints; l++) {
+					wih += x[k][h] * sih[k][l] * x[l][h];
 				}
 			}
-			if (wih < 0.0) {
-				wih = 0.0;
+			if (wih < 0) {
+				wih = 0;
 			}
 			w[i][h] = wih;
 		}
@@ -2404,13 +2592,16 @@ static void indscal_iteration_tenBerge (ScalarProductList zc, Configuration xc,
 }
 
 
-void ScalarProductList_Configuration_Salience_indscal (ScalarProductList sp, Configuration configuration, Salience weights, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *p_conf, autoSalience *p_sal, double *p_varianceAccountedFor) {
+void ScalarProducts_Configuration_Salience_indscal (ScalarProducts sp, Configuration configuration, Salience weights,
+        double tolerance, long numberOfIterations, int showProgress, Configuration *out1, Salience *out2, double *vaf) {
 	try {
-		double tol = 1e-6, vafp = 0.0, varianceAccountedFor;
-		long nSources = sp->size, iter;
+		double tol = 1e-6, vafp = 0;
+		long nZeros = 0, nSources = sp -> size, iter;
+
+		autoConfiguration x = Data_copy (configuration);
+		autoSalience w = Data_copy (weights);
 
-		autoConfiguration conf = Data_copy (configuration);
-		autoSalience sal = Data_copy (weights);
+		*out1 = 0; *out2 = 0;
 
 		if (showProgress) {
 			Melder_progress (0.0, U"INDSCAL analysis");
@@ -2419,47 +2610,45 @@ void ScalarProductList_Configuration_Salience_indscal (ScalarProductList sp, Con
 		// Solve for X, and W matrix via Alternating Least Squares.
 
 		for (iter = 1; iter <= numberOfIterations; iter++) {
-			indscal_iteration_tenBerge (sp, conf.get(), sal.get());
+			indscal_iteration_tenBerge (sp, x.peek(), w.peek());
 
 			// Goodness of fit and test criterion.
 
-			ScalarProductList_Configuration_Salience_vaf (sp, conf.get(), sal.get(), & varianceAccountedFor);
+			ScalarProducts_Configuration_Salience_vaf (sp, x.peek(), w.peek(), vaf);
 
-			if (varianceAccountedFor > 1.0 - tol || fabs (varianceAccountedFor - vafp) /  vafp < tolerance) {
+			if (*vaf > 1 - tol || fabs (*vaf - vafp) /  vafp < tolerance) {
 				break;
 			}
-			vafp = varianceAccountedFor;
+			vafp = *vaf;
 			if (showProgress) {
-				Melder_progress ( (double) iter / (numberOfIterations + 1), U"indscal: varianceAccountedFor ", varianceAccountedFor);
+				Melder_progress ( (double) iter / (numberOfIterations + 1),
+				                   U"indscal: vaf ", *vaf);
 			}
 		}
 
 		// Count number of zero weights
 
-		long nZeros = NUMdmatrix_countZeros (sal -> data, sal -> numberOfRows, sal -> numberOfColumns);
+		nZeros = NUMdmatrix_countZeros (w->data, w->numberOfRows, w->numberOfColumns);
+
+		// Set labels & names.
+
+		Thing_setName (x.peek(), U"indscal");
+		Thing_setName (w.peek(), U"indscal");
+		TableOfReal_labelsFromCollectionItemNames (w.peek(), sp, 1, 0);
+
+		*out1 = x.transfer(); *out2 = w.transfer();
 
-		if (p_conf) {
-			Thing_setName (conf.get(), U"indscal");
-			*p_conf = conf.move();
-		}
-		if (p_sal) {
-			Thing_setName (sal.get(), U"indscal");
-			TableOfReal_labelsFromCollectionItemNames (sal.get(), (Collection) sp, 1, 0);   // FIXME cast
-			*p_sal = sal.move();
-		}
-		if (p_varianceAccountedFor) {
-			*p_varianceAccountedFor = varianceAccountedFor;
-		}
 		if (showProgress) {
 			MelderInfo_writeLine (U"**************** INDSCAL results on Distances *******************\n\n", 
 				Thing_className (sp), U"number of objects: ", nSources);
-			for (long i = 1; i <= nSources; i ++) {
-				MelderInfo_writeLine (U"  ", Thing_getName (sp->at [i]));
+			for (long i = 1; i <= nSources; i++) {
+				MelderInfo_writeLine (U"  ", Thing_getName ( (Thing) sp -> item[i]));
 			}
 			if (nZeros > 0) {
 				MelderInfo_writeLine (U"WARNING: ", nZeros,  U" zero weight", (nZeros > 1 ? U"s" : U""), U"!");
 			}
-			MelderInfo_writeLine (U"\n\nVariance Accounted For = ", varianceAccountedFor, U"\nThe optimal configuration was reached in ", (iter > numberOfIterations ? numberOfIterations : iter), U" iterations.");
+			MelderInfo_writeLine (U"\n\nVariance Accounted For = ", *vaf, U"\nThe optimal configuration was reached in ",
+				(iter > numberOfIterations ? numberOfIterations : iter), U" iterations.");
 			MelderInfo_drain();
 		}
 		if (showProgress) {
@@ -2473,77 +2662,77 @@ void ScalarProductList_Configuration_Salience_indscal (ScalarProductList sp, Con
 	}
 }
 
-void DistanceList_Configuration_Salience_indscal (DistanceList distances, Configuration configuration, Salience weights, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2, double *vaf) {
+void Distances_Configuration_Salience_indscal (Distances distances, Configuration configuration, Salience weights,
+        int normalizeScalarProducts, double tolerance, long numberOfIterations, int showProgress,
+        Configuration *out1, Salience *out2, double *vaf) {
 	try {
-		autoScalarProductList sp = DistanceList_to_ScalarProductList (distances, normalizeScalarProducts);
-		ScalarProductList_Configuration_Salience_indscal (sp.get(), configuration, weights, tolerance, numberOfIterations, showProgress, out1, out2, vaf);
+		*out1 = 0; *out2 = 0;
+		autoScalarProducts sp = Distances_to_ScalarProducts (distances, normalizeScalarProducts);
+		ScalarProducts_Configuration_Salience_indscal (sp.peek(), configuration, weights, tolerance, numberOfIterations,
+		        showProgress, out1, out2, vaf);
 	} catch (MelderError) {
 		Melder_throw (U"No indscal configuration calculated.");
 	}
 }
 
-void DissimilarityList_Configuration_Salience_indscal (DissimilarityList dissims, Configuration conf, Salience weights, int tiesProcessing, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *p_configuration, autoSalience *p_salience, double *varianceAccountedFor) {
+
+void Dissimilarities_Configuration_Salience_indscal (Dissimilarities dissims, Configuration configuration,
+        Salience weights, int tiesProcessing, int normalizeScalarProducts, double tolerance, long numberOfIterations,
+        int showProgress, Configuration *out1, Salience *out2, double *vaf) {
 	try {
-		double tol = 1e-6, vafp = 0.0, vaf;
-		long iter, nSources = dissims->size;
-		autoConfiguration configuration = Data_copy (conf);
-		autoSalience salience = Data_copy (weights);
-		autoMDSVecList mdsveclist = DissimilarityList_to_MDSVecList (dissims);
+		double tol = 1e-6, vafp = 0;
+		long iter, nSources = dissims -> size;;
+		autoConfiguration x = Data_copy (configuration);
+		autoSalience w = Data_copy (weights);
+		autoMDSVecs vecs = Dissimilarities_to_MDSVecs (dissims);
+
+		*out1 = 0; *out2 = 0;
 
 		if (showProgress) {
 			Melder_progress (0.0, U"INDSCAL analysis");
 		}
 
 		for (iter = 1; iter <= numberOfIterations; iter++) {
-			autoDistanceList distances = MDSVecList_Configuration_Salience_monotoneRegression (mdsveclist.get(), configuration.get(), salience.get(), tiesProcessing);
-			autoScalarProductList sp = DistanceList_to_ScalarProductList (distances.get(), normalizeScalarProducts);
+			autoDistances distances = MDSVecs_Configuration_Salience_monotoneRegression (vecs.peek(), x.peek(), w.peek(), tiesProcessing);
+			autoScalarProducts sp = Distances_to_ScalarProducts (distances.peek(), normalizeScalarProducts);
 
-			indscal_iteration_tenBerge (sp.get(), configuration.get(), salience.get());
+			indscal_iteration_tenBerge (sp.peek(), x.peek(), w.peek());
 
 			// Goodness of fit and test criterion.
 
-			DistanceList_Configuration_Salience_vaf (distances.get(), configuration.get(), salience.get(), normalizeScalarProducts, &vaf);
+			Distances_Configuration_Salience_vaf (distances.peek(), x.peek(), w.peek(), normalizeScalarProducts, vaf);
 
-			if (vaf > 1.0 - tol || fabs (vaf - vafp) / vafp < tolerance) {
+			if (*vaf > 1 - tol || fabs (*vaf - vafp) /  vafp < tolerance) {
 				break;
 			}
-			vafp = vaf;
+			vafp = *vaf;
 			if (showProgress) {
-				Melder_progress ((double) iter / (numberOfIterations + 1), U"indscal: vaf ", vaf);
+				Melder_progress ( (double) iter / (numberOfIterations + 1), U"indscal: vaf ", *vaf);
 			}
 		}
 
 		// Count number of zero weights
 
-		long nZeros = NUMdmatrix_countZeros (salience -> data, salience -> numberOfRows, salience -> numberOfColumns);
+		long nZeros = NUMdmatrix_countZeros (w -> data, w -> numberOfRows, w -> numberOfColumns);
 
 		// Set labels & names.
 
-		Thing_setName (configuration.get(), U"indscal_mr");
-		Thing_setName (salience.get(), U"indscal_mr");
-		TableOfReal_labelsFromCollectionItemNames (salience.get(), (Collection) dissims, 1, 0);   // FIXME cast
+		Thing_setName (x.peek(), U"indscal_mr"); Thing_setName (w.peek(), U"indscal_mr");
+		TableOfReal_labelsFromCollectionItemNames (w.peek(), dissims, 1, 0);
 
-		if (p_configuration) {
-			*p_configuration = configuration.move();
-		}
-		if (p_salience) {
-			*p_salience = salience.move();
-		}
-		if (varianceAccountedFor) {
-			*varianceAccountedFor = vaf;
-		}
+		*out1 = x.transfer(); *out2 = w.transfer();
 
 		if (showProgress) {
 			MelderInfo_writeLine (U"**************** INDSCAL with monotone regression *******************");
 			MelderInfo_writeLine (Thing_className (dissims));
 			MelderInfo_writeLine (U"Number of objects: ", nSources);
 			for (long i = 1; i <= nSources; i++) {
-				MelderInfo_writeLine (U"  ", Thing_getName (dissims->at [i]));
+				MelderInfo_writeLine (U"  ", Thing_getName ( (Thing) dissims -> item[i]));
 			}
 			if (nZeros > 0) {
 				MelderInfo_writeLine (U"WARNING: ", nZeros, U" zero weight", (nZeros > 1 ? U"s" : U""));
 			}
-			MelderInfo_writeLine (U"Variance Accounted For: ", vaf);
+			MelderInfo_writeLine (U"Variance Accounted For: ", *vaf);
 			MelderInfo_writeLine (U"Based on MONOTONE REGRESSION");
 			MelderInfo_writeLine (U"number of iterations: ", (iter > numberOfIterations ?	numberOfIterations : iter));
 			MelderInfo_drain();
@@ -2559,117 +2748,129 @@ void DissimilarityList_Configuration_Salience_indscal (DissimilarityList dissims
 	}
 }
 
-void DistanceList_Configuration_indscal (DistanceList dists, Configuration conf, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2) {
+void Distances_Configuration_indscal (Distances dists, Configuration conf, int normalizeScalarProducts, double tolerance,
+                                      long numberOfIterations, int showProgress, Configuration *out1, Salience *out2) {
 	try {
-		autoSalience w = Salience_create (dists->size, conf -> numberOfColumns);
+		autoSalience w = Salience_create (dists -> size, conf -> numberOfColumns);
 		double vaf;
-		DistanceList_Configuration_Salience_indscal (dists, conf, w.get(), normalizeScalarProducts, tolerance, numberOfIterations, showProgress, out1, out2, &vaf);
+		Distances_Configuration_Salience_indscal (dists, conf, w.peek(), normalizeScalarProducts, tolerance,
+		        numberOfIterations, showProgress, out1, out2, &vaf);
 	} catch (MelderError) {
 		Melder_throw (U"No indscal performed.");
 	}
 }
 
-autoDistanceList MDSVecList_Configuration_Salience_monotoneRegression (MDSVecList vecs, Configuration conf, Salience weights, int tiesProcessing) {
+Distances MDSVecs_Configuration_Salience_monotoneRegression (MDSVecs vecs,
+        Configuration conf, Salience weights, int tiesProcessing) {
 	try {
 		long nDimensions = conf -> numberOfColumns;
 		autoNUMvector<double> w (NUMvector_copy (conf -> w, 1, nDimensions), 1);
-		autoDistanceList distances = DistanceList_create ();
-		for (long i = 1; i <= vecs->size; i ++) {
+		autoDistances distances = Distances_create ();
+		for (long i = 1; i <= vecs -> size; i++) {
 			NUMvector_copyElements (weights -> data[i], conf -> w, 1, nDimensions);
 			autoDistance dc = Configuration_to_Distance (conf);
-			autoDistance dist = MDSVec_Distance_monotoneRegression (vecs->at [i], dc.get(), tiesProcessing);
-			distances -> addItem_move (dist.move());
+			autoDistance dist = MDSVec_Distance_monotoneRegression ( (MDSVec) vecs -> item[i], dc.peek(), tiesProcessing);
+			Collection_addItem (distances.peek(), dist.transfer());
 		}
 		Configuration_setDefaultWeights (conf);
-		return distances;
+		return distances.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Distances created.");
 	}
 }
 
-autoSalience DistanceList_Configuration_to_Salience (DistanceList d, Configuration c, bool normalize) {
+
+Salience Distances_Configuration_to_Salience (Distances d, Configuration c, int normalize) {
 	try {
-		autoScalarProductList sp = DistanceList_to_ScalarProductList (d, normalize);
-		autoSalience w = ScalarProductList_Configuration_to_Salience (sp.get(), c);
-		return w;
+		autoScalarProducts sp = Distances_to_ScalarProducts (d, normalize);
+		autoSalience w = ScalarProducts_Configuration_to_Salience (sp.peek(), c);
+		return w.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Salience created.");
 	}
 }
 
-autoSalience ScalarProductList_Configuration_to_Salience (ScalarProductList me, Configuration him) {
+Salience ScalarProducts_Configuration_to_Salience (ScalarProducts me, Configuration him) {
 	try {
 		autoSalience salience = Salience_create (my size, his numberOfColumns);
 		autoConfiguration cx = Data_copy (him);
-		indscal_iteration_tenBerge (me, cx.get(), salience.get());
-		return salience;
+		indscal_iteration_tenBerge (me, cx.peek(), salience.peek());
+		return salience.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Salience created.");
 	}
 }
 
-autoSalience DissimilarityList_Configuration_to_Salience (DissimilarityList me, Configuration him, int tiesProcessing, bool normalizeScalarProducts) {
+Salience Dissimilarities_Configuration_to_Salience (Dissimilarities me, Configuration him, int tiesProcessing,
+        int normalizeScalarProducts) {
 	try {
-		autoDistanceList distances = DissimilarityList_Configuration_monotoneRegression (me, him, tiesProcessing);
-		autoSalience w = DistanceList_Configuration_to_Salience (distances.get(), him, normalizeScalarProducts);
-		return w;
+		autoDistances distances = Dissimilarities_Configuration_monotoneRegression (me, him, tiesProcessing);
+		autoSalience w = Distances_Configuration_to_Salience (distances.peek(), him, normalizeScalarProducts);
+		return w.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No Salience created.");
 	}
 }
 
-void DissimilarityList_Configuration_indscal (DissimilarityList dissims, Configuration conf, int tiesProcessing, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2) {
+void Dissimilarities_Configuration_indscal (Dissimilarities dissims, Configuration conf, int tiesProcessing,
+        int normalizeScalarProducts, double tolerance, long numberOfIterations, int showProgress,
+        Configuration *out1, Salience *out2) {
 	try {
-		autoDistanceList distances = DissimilarityList_Configuration_monotoneRegression (dissims, conf, tiesProcessing);
-		autoSalience weights = DistanceList_Configuration_to_Salience (distances.get(), conf, normalizeScalarProducts);
+		*out1 = 0; *out2 = 0;
+		autoDistances distances = Dissimilarities_Configuration_monotoneRegression (dissims, conf, tiesProcessing);
+		autoSalience weights = Distances_Configuration_to_Salience (distances.peek(), conf, normalizeScalarProducts);
 		double vaf;
-		DissimilarityList_Configuration_Salience_indscal (dissims, conf, weights.get(), tiesProcessing, normalizeScalarProducts, tolerance, numberOfIterations, showProgress, out1, out2, & vaf);
+		Dissimilarities_Configuration_Salience_indscal (dissims, conf, weights.peek(), tiesProcessing, normalizeScalarProducts,
+		        tolerance, numberOfIterations, showProgress, out1, out2, &vaf);
 	} catch (MelderError) {
 		Melder_throw (U"No indscal performed.");
 	}
 }
 
-void DissimilarityList_indscal (DissimilarityList me, long numberOfDimensions, int tiesProcessing, bool normalizeScalarProducts, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress, autoConfiguration *p_conf, autoSalience *p_sal) {
+
+void Dissimilarities_indscal (Dissimilarities me, long numberOfDimensions, int tiesProcessing, int normalizeScalarProducts,
+                              double tolerance, long numberOfIterations, long numberOfRepetitions, int showProgress, Configuration *out1, Salience *out2) {
 	int showMulti = showProgress && numberOfRepetitions > 1;
 	try {
-		bool showSingle = (showProgress && numberOfRepetitions == 1);
-		double vaf, vafmin = 0.0;
+		int showSingle = showProgress && numberOfRepetitions == 1;
+		double vaf, vafmin = 0;
+
+		*out1 = 0; *out2 = 0;
 
-		autoDistanceList distances = DissimilarityList_to_DistanceList (me, MDS_ORDINAL);
-		autoConfiguration cstart; autoSalience wstart;
-		DistanceList_to_Configuration_ytl (distances.get(), numberOfDimensions, normalizeScalarProducts, & cstart, & wstart);
-		autoConfiguration conf = Data_copy (cstart.get());
-		autoSalience sal = Data_copy (wstart.get());
+		autoDistances distances = Dissimilarities_to_Distances (me, MDS_ORDINAL);
+		Configuration cstart1 = 0; Salience wstart1 = 0;
+		Distances_to_Configuration_ytl (distances.peek(), numberOfDimensions, normalizeScalarProducts, &cstart1, &wstart1);
+		autoConfiguration cstart = cstart1;
+		autoSalience wstart = wstart1;
+		autoConfiguration cbest = Data_copy ( (Configuration) cstart.peek());
+		autoSalience wbest = Data_copy ( (Salience) wstart.peek());
 
 		if (showMulti) {
 			Melder_progress (0.0, U"Indscal many times");
 		}
 
-		for (long iter = 1; iter <= numberOfRepetitions; iter ++) {
-			autoConfiguration cresult; 
-			autoSalience wresult;
-			DissimilarityList_Configuration_Salience_indscal (me, cstart.get(), wstart.get(), tiesProcessing,
-				normalizeScalarProducts, tolerance, numberOfIterations, showSingle, & cresult, & wresult, & vaf);
+		for (long iter = 1; iter <= numberOfRepetitions; iter++) {
+			Configuration cresult1 = 0; Salience wresult1 = 0;
+			Dissimilarities_Configuration_Salience_indscal (me, cstart.peek(), wstart.peek(), tiesProcessing,
+			        normalizeScalarProducts, tolerance, numberOfIterations, showSingle, &cresult1, &wresult1, &vaf);
+			autoConfiguration cresult = cresult1;
+			autoSalience wresult = wresult1;
 			if (vaf > vafmin) {
 				vafmin = vaf;
-				conf = cresult.move();
-				sal = wresult.move();
+				cbest.reset (cresult.transfer());
+				wbest.reset (wresult.transfer());
 			}
-			Configuration_randomize (cstart.get());
-			Configuration_normalize (cstart.get(), 1.0, true);
-			Salience_setDefaults (wstart.get());
+			Configuration_randomize (cstart.peek());
+			Configuration_normalize (cstart.peek(), 1.0, 1);
+			Salience_setDefaults (wstart.peek());
 
 			if (showMulti) {
-				Melder_progress ( (double) iter / (numberOfRepetitions + 1), iter, U" from ", numberOfRepetitions);
+				Melder_progress ( (double) iter / (numberOfRepetitions + 1),
+				                   iter, U" from ", numberOfRepetitions);
 			}
 		}
 
-		if (p_conf) {
-			*p_conf = conf.move();
-		}
-		if (p_sal) {
-			*p_sal = sal.move();
-		}
+		*out1 = cbest.transfer(); *out2 = wbest.transfer();
 		if (showMulti) {
 			Melder_progress (1.0);
 		}
@@ -2681,46 +2882,48 @@ void DissimilarityList_indscal (DissimilarityList me, long numberOfDimensions, i
 	}
 }
 
-void DistanceList_indscal (DistanceList distances, long numberOfDimensions, bool normalizeScalarProducts, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress, autoConfiguration *p_conf, autoSalience *p_sal) {
+
+void Distances_indscal (Distances distances, long numberOfDimensions, int normalizeScalarProducts, double tolerance,
+                        long numberOfIterations, long numberOfRepetitions, int showProgress, Configuration *out1, Salience *out2) {
 	int showMulti = showProgress && numberOfRepetitions > 1;
 	try {
-		bool showSingle = ( showProgress && numberOfRepetitions == 1 );
-		double vaf, vafmin = 0.0;
+		int showSingle = showProgress && numberOfRepetitions == 1;
+		double vaf, vafmin = 0;
 
-		autoConfiguration cstart;
-		autoSalience wstart;
-		DistanceList_to_Configuration_ytl (distances, numberOfDimensions, normalizeScalarProducts, & cstart, & wstart);
-		autoConfiguration conf = Data_copy (cstart.get());
-		autoSalience sal = Data_copy (wstart.get());
+		*out1 = 0; *out2 = 0;
+		Configuration cstart1 = 0; Salience wstart1 = 0;
+		Distances_to_Configuration_ytl (distances, numberOfDimensions, normalizeScalarProducts, &cstart1, &wstart1);
+		autoConfiguration cstart = cstart1;
+		autoSalience wstart = wstart1;
+		autoConfiguration cbest = Data_copy (cstart.peek());
+		autoSalience wbest = Data_copy (wstart.peek());
 
 		if (showMulti) {
 			Melder_progress (0.0, U"Indscal many times");
 		}
 
 		for (long i = 1; i <= numberOfRepetitions; i++) {
-			autoConfiguration cresult;
-			autoSalience wresult;
-			DistanceList_Configuration_Salience_indscal (distances, cstart.get(), wstart.get(), normalizeScalarProducts,  tolerance, numberOfIterations, showSingle, &cresult, &wresult, &vaf);
+			Configuration cresult1 = 0; Salience wresult1 = 0;
+			Distances_Configuration_Salience_indscal (distances, cstart.peek(), wstart.peek(), normalizeScalarProducts,
+			        tolerance, numberOfIterations, showSingle, &cresult1, &wresult1, &vaf);
+			autoConfiguration cresult = cresult1;
+			autoSalience wresult = wresult1;
 			if (vaf > vafmin) {
 				vafmin = vaf;
-				conf = cresult.move();
-				sal = wresult.move();
+				cbest.reset (cresult.transfer());
+				wbest.reset (wresult.transfer());
 			}
-			Configuration_randomize (cstart.get());
-			Configuration_normalize (cstart.get(), 1.0, true);
-			Salience_setDefaults (wstart.get());
+			Configuration_randomize (cstart.peek());
+			Configuration_normalize (cstart.peek(), 1.0, 1);
+			Salience_setDefaults (wstart.peek());
 
 			if (showMulti) {
-				Melder_progress ((double) i / (numberOfRepetitions + 1), i, U" from ", numberOfRepetitions);
+				Melder_progress ( (double) i / (numberOfRepetitions + 1),
+				                   i, U" from ", numberOfRepetitions);
 			}
 		}
 
-		if (p_conf) {
-			*p_conf = conf.move();
-		}
-		if (p_sal) {
-			*p_sal = sal.move();
-		}
+		*out1 = cbest.transfer(); *out2 = wbest.transfer();
 		if (showMulti) {
 			Melder_progress (1.0);
 		}
@@ -2732,83 +2935,74 @@ void DistanceList_indscal (DistanceList distances, long numberOfDimensions, bool
 	}
 }
 
-void DissimilarityList_Configuration_Salience_vaf (DissimilarityList me, Configuration thee, Salience him, int tiesProcessing, bool normalizeScalarProducts, double *vaf) {
-	autoDistanceList distances = DissimilarityList_Configuration_monotoneRegression (me, thee, tiesProcessing);
-	DistanceList_Configuration_Salience_vaf (distances.get(), thee, him, normalizeScalarProducts, vaf);
+void Dissimilarities_Configuration_Salience_vaf (Dissimilarities me, Configuration thee, Salience him, int tiesProcessing,
+        int normalizeScalarProducts, double *vaf) {
+	autoDistances distances = Dissimilarities_Configuration_monotoneRegression (me, thee, tiesProcessing);
+	Distances_Configuration_Salience_vaf (distances.peek(), thee, him, normalizeScalarProducts, vaf);
 }
 
-void DistanceList_Configuration_vaf (DistanceList me, Configuration thee, bool normalizeScalarProducts, double *vaf) {
-	autoSalience w = DistanceList_Configuration_to_Salience (me, thee, normalizeScalarProducts);
-	DistanceList_Configuration_Salience_vaf (me, thee, w.get(), normalizeScalarProducts, vaf);
+void Distances_Configuration_vaf (Distances me, Configuration thee, int normalizeScalarProducts, double *vaf) {
+	autoSalience w = Distances_Configuration_to_Salience (me, thee, normalizeScalarProducts);
+	Distances_Configuration_Salience_vaf (me, thee, w.peek(), normalizeScalarProducts, vaf);
 }
 
-void DissimilarityList_Configuration_vaf (DissimilarityList me, Configuration thee, int tiesProcessing, bool normalizeScalarProducts, double *vaf) {
-	autoSalience w = DissimilarityList_Configuration_to_Salience (me, thee, tiesProcessing, normalizeScalarProducts);
-	DissimilarityList_Configuration_Salience_vaf (me, thee, w.get(), tiesProcessing, normalizeScalarProducts, vaf);
+void Dissimilarities_Configuration_vaf (Dissimilarities me, Configuration thee, int tiesProcessing, int normalizeScalarProducts, double *vaf) {
+	autoSalience w = Dissimilarities_Configuration_to_Salience (me, thee, tiesProcessing, normalizeScalarProducts);
+	Dissimilarities_Configuration_Salience_vaf (me, thee, w.peek(), tiesProcessing, normalizeScalarProducts, vaf);
 }
 
-void DistanceList_Configuration_Salience_vaf (DistanceList me, Configuration thee, Salience him, bool normalizeScalarProducts, double *vaf) {
-	if (my size != his numberOfRows || thy numberOfColumns != his numberOfColumns) {
-		Melder_throw (U"Dimensions must conform.");
-	}
+void Distances_Configuration_Salience_vaf (Distances me, Configuration thee, Salience him, int normalizeScalarProducts, double *vaf) {
+	if (my size != his numberOfRows || thy numberOfColumns != his numberOfColumns) Melder_throw
+		(U"Dimensions must conform.");
 
-	autoScalarProductList sp = DistanceList_to_ScalarProductList (me, normalizeScalarProducts);
-	ScalarProductList_Configuration_Salience_vaf (sp.get(), thee, him, vaf);
+	autoScalarProducts sp = Distances_to_ScalarProducts (me, normalizeScalarProducts);
+	ScalarProducts_Configuration_Salience_vaf (sp.peek(), thee, him, vaf);
 }
 
-void ScalarProduct_Configuration_getVariances (ScalarProduct me, Configuration thee, double *p_varianceExplained, double *p_varianceTotal) {
-	double varianceExplained = 0.0, varianceTotal = 0.0;
+void ScalarProduct_Configuration_getVariances (ScalarProduct me,
+        Configuration thee, double *varianceExplained, double *varianceTotal) {
+	*varianceExplained = *varianceTotal = 0;
 	autoDistance distance = Configuration_to_Distance (thee);
-	autoScalarProduct fit = Distance_to_ScalarProduct (distance.get(), 0);
-
-	// ScalarProduct is double centred, i.e., mean == 0.
-
+	autoScalarProduct fit = Distance_to_ScalarProduct (distance.peek(), 0);
+	/*
+		ScalarProduct is double centred, i.e., mean == 0.
+	*/
 	for (long j = 1; j <= my numberOfRows; j++) {
 		for (long k = 1; k <= my numberOfColumns; k++) {
 			double d2 = my data[j][k] - fit -> data[j][k];
-			varianceExplained += d2 * d2;
-			varianceTotal += my data[j][k] * my data[j][k];
+			*varianceExplained += d2 * d2;
+			*varianceTotal += my data[j][k] * my data[j][k];
 		}
 	}
-	if (p_varianceExplained) {
-		*p_varianceExplained = varianceExplained;
-	}
-	if (p_varianceTotal) {
-		*p_varianceTotal = varianceTotal;
-	}
 }
 
-void ScalarProductList_Configuration_Salience_vaf (ScalarProductList me, Configuration thee, Salience him, double *vaf) {
+void ScalarProducts_Configuration_Salience_vaf (ScalarProducts me, Configuration thee, Salience him, double *vaf) {
 	autoNUMvector<double> w (NUMvector_copy (thy w, 1, thy numberOfColumns), 1); // save weights
 	try {
-		if (my size != his numberOfRows || thy numberOfColumns != his numberOfColumns) {
-			Melder_throw (U"Dimensions of input objects must conform.");
-		}
+		if (my size != his numberOfRows || thy numberOfColumns != his numberOfColumns) Melder_throw
+			(U"Dimensions of input objects must conform.");
 
-		double t = 0.0, n = 0.0;
-		for (long i = 1; i <= my size; i ++) {
+		double t = 0, n = 0;
+		for (long i = 1; i <= my size; i++) {
 
-			ScalarProduct sp = my at [i];
+			ScalarProduct sp = (ScalarProduct) my item[i];
 			if (sp -> numberOfRows != thy numberOfRows) {
 				Melder_throw (U"ScalarProduct ", i, U" does not match Configuration.");
 			}
 
 			// weigh configuration before calculating variances
 
-			for (long j = 1; j <= thy numberOfColumns; j ++) {
-				thy w [j] = sqrt (his data [i] [j]);
+			for (long j = 1; j <= thy numberOfColumns; j++) {
+				thy w[j] = sqrt (his data[i][j]);
 			}
 
 			double vare, vart;
-			ScalarProduct_Configuration_getVariances (sp, thee, & vare, & vart);
+			ScalarProduct_Configuration_getVariances (sp, thee, &vare, &vart);
 
-			t += vare;
-			n += vart;
+			t += vare; n += vart;
 		}
 
-		if (vaf) {
-			*vaf = (n > 0.0 ? 1.0 - t / n : 0.0);
-		}
+		*vaf = n > 0 ? 1.0 - t / n : 0;
 		NUMvector_copyElements (w.peek(), thy w, 1, thy numberOfColumns); // restore weights
 	} catch (MelderError) {
 		NUMvector_copyElements (w.peek(), thy w, 1, thy numberOfColumns);
@@ -2816,73 +3010,76 @@ void ScalarProductList_Configuration_Salience_vaf (ScalarProductList me, Configu
 	}
 }
 
+
 /********************** Examples *********************************************/
 
-autoDissimilarity Dissimilarity_createLetterRExample (double noiseStd) {
+Dissimilarity Dissimilarity_createLetterRExample (double noiseStd) {
 	try {
 		autoConfiguration r = Configuration_createLetterRExample (1);
-		autoDistance d = Configuration_to_Distance (r.get());
-		autoDissimilarity me = Distance_to_Dissimilarity (d.get());
-		Thing_setName (me.get(), U"R");
+		autoDistance d = Configuration_to_Distance (r.peek());
+		autoDissimilarity me = Distance_to_Dissimilarity (d.peek());
+		Thing_setName (me.peek(), U"R");
 
 		for (long i = 1; i <= my numberOfRows - 1; i++) {
 			for (long j = i + 1; j <= my numberOfRows; j++) {
 				double dis = my data[i][j];
-				my data[j][i] = my data[i][j] = dis * dis + 5.0 + NUMrandomUniform (0.0, noiseStd);
+				my data[j][i] = my data[i][j] = dis * dis + 5 + NUMrandomUniform (0, noiseStd);
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Dissimilarity for letter R example not created.");
 	}
 }
 
-autoSalience Salience_createCarrollWishExample () {
+Salience Salience_createCarrollWishExample () {
 	try {
-		long numberOfSources = 8;
-		double wx[9] = {0, 1.0, 0.866, 0.707, 0.5,   0.1, 0.5, 0.354, 0.1};
+		long nSources = 8;
+		double wx[9] = {0,   1, 0.866, 0.707, 0.5,   0.1, 0.5, 0.354, 0.1};
 		double wy[9] = {0, 0.1, 0.5,   0.707, 0.866,   1, 0.1, 0.354, 0.5};
 		const char32 *name[] = { U"", U"1", U"2", U"3", U"4", U"5", U"6", U"7", U"8"};
-		autoSalience me = Salience_create (numberOfSources, 2);
+		autoSalience me = Salience_create (nSources, 2);
 
-		for (long i = 1; i <= numberOfSources; i++) {
+		for (long i = 1; i <= nSources; i++) {
 			my data[i][1] = wx[i];
 			my data[i][2] = wy[i];
-			TableOfReal_setRowLabel (me.get(), i, name[i]);
+			TableOfReal_setRowLabel (me.peek(), i, name[i]);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Salience for Carroll Wish example not created.");
 	}
 }
 
-autoCollection INDSCAL_createCarrollWishExample (double noiseRange) {
+Collection INDSCAL_createCarrollWishExample (double noiseRange) {
 	try {
 		autoConfiguration c = Configuration_createCarrollWishExample ();
-		long numberOfObjects = c -> numberOfRows, numberOfSources = 8;
+		long nObjects = c -> numberOfRows, nSources = 8;
 		autoSalience s = Salience_createCarrollWishExample ();
-		autoCollection me = Collection_create ();
-		for (long l = 1; l <= numberOfSources; l ++) {
-			c -> w [1] = s -> data [l] [1];
-			c -> w [2] = s -> data [l] [2];
-			autoDistance d = Configuration_to_Distance (c.get());
-			autoDissimilarity dissim = Distance_to_Dissimilarity (d.get());
-			for (long i = 1; i <= numberOfObjects - 1; i ++) {
-				for (long j = i + 1; j <= numberOfObjects; j ++) {
-					dissim -> data [i] [j] = (dissim -> data [j] [i] += NUMrandomUniform (0.0, noiseRange));
+		autoCollection me = Collection_create (classData, nSources);
+		for (long l = 1; l <= nSources; l++) {
+			c -> w[1] = s -> data[l][1];
+			c -> w[2] = s -> data[l][2];
+			autoDistance d = Configuration_to_Distance (c.peek());
+			autoDissimilarity dissim = Distance_to_Dissimilarity (d.peek());
+			for (long i = 1; i <= nObjects - 1; i++) {
+				for (long j = i + 1; j <= nObjects; j++) {
+					dissim -> data[i][j] = (dissim -> data[j][i] +=
+					                            NUMrandomUniform (0, noiseRange));
 				}
 			}
-			Thing_setName (dissim.get(), s -> rowLabels [l]);
-			my addItem_move (dissim.move());
+			Thing_setName (dissim.peek(), s -> rowLabels[l]);
+			Collection_addItem (me.peek(), dissim.transfer());
 		}
-		Thing_setName (me.get(), U"CarrollWish");
-		return me;
+		Thing_setName (me.peek(), U"CarrollWish");
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Collection not created.");
 	}
 }
 
-void drawSplines (Graphics g, double low, double high, double ymin, double ymax, int type, long order, const char32 *interiorKnots, int garnish) {
+void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
+                  int type, long order, const char32 *interiorKnots, int garnish) {
 	long k = order, numberOfKnots, numberOfInteriorKnots = 0;
 	long nSplines, n = 1000;
 	double knot[101], y[1001];
@@ -2908,12 +3105,12 @@ void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
 				Melder_warning (U"drawSplines: too many knots (101)");
 				return;
 			}
-			knot [++ numberOfKnots] = value;
+			knot[++numberOfKnots] = value;
 		}
 	}
 
 	numberOfInteriorKnots = numberOfKnots - k;
-	for (long i = 1; i <= k; i ++) {
+	for (long i = 1; i <= k; i++) {
 		knot[++numberOfKnots] = high;
 	}
 
@@ -2925,7 +3122,7 @@ void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
 
 	Graphics_setWindow (g, low, high, ymin, ymax);
 	Graphics_setInner (g);
-	for (long i = 1; i <= nSplines; i ++) {
+	for (long i = 1; i <= nSplines; i++) {
 		double x, yx, dx = (high - low) / (n - 1);
 		for (long j = 1; j <= n; j++) {
 			x = low + dx * (j - 1);
@@ -2943,9 +3140,9 @@ void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
 		static MelderString ts { 0 };
 		long lastKnot = type == MDS_ISPLINE ? numberOfKnots - 2 : numberOfKnots;
 		Graphics_drawInnerBox (g);
-		Graphics_textLeft (g, false, type == MDS_MSPLINE ? U"\\s{M}\\--spline" : U"\\s{I}\\--spline");
-		Graphics_marksTop (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textLeft (g, 0, type == MDS_MSPLINE ? U"\\s{M}\\--spline" : U"\\s{I}\\--spline");
+		Graphics_marksTop (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (low <= knot[order]) {
 			if (order == 1) {
 				MelderString_copy (&ts, U"t__1_");
@@ -2954,13 +3151,13 @@ void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
 			} else {
 				MelderString_copy (&ts, U"{t__1_..t__", order, U"_}");
 			}
-			Graphics_markBottom (g, low, false, false, false, ts.string);
+			Graphics_markBottom (g, low, 0, 0, 0, ts.string);
 		}
-		for (long i = 1; i <= numberOfInteriorKnots; i ++) {
+		for (long i = 1; i <= numberOfInteriorKnots; i++) {
 			if (low <= knot[k + i] && knot[k + i] < high) {
 				MelderString_copy (&ts, U"t__", order + i, U"_");
-				Graphics_markBottom (g, knot[k + i], false, true, true, ts.string);
-				Graphics_markTop (g, knot[k + i], true, false, false, nullptr);
+				Graphics_markBottom (g, knot[k + i], 0, 1, 1, ts.string);
+				Graphics_markTop (g, knot[k + i], 1, 0, 0, NULL);
 			}
 		}
 		if (knot[lastKnot - order + 1] <= high) {
@@ -2969,22 +3166,25 @@ void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
 			} else {
 				MelderString_copy (&ts, U"{t__", (order == 2 ? lastKnot - 1 : lastKnot - order + 1), U"_, t__", lastKnot, U"_}");
 			}
-			Graphics_markBottom (g, high, false, false, false, ts.string);
+			Graphics_markBottom (g, high, 0, 0, 0, ts.string);
 		}
 	}
 }
 
 void drawMDSClassRelations (Graphics g) {
 	long nBoxes = 6;
-	double boxWidth = 0.3, boxWidth2 = boxWidth / 2.0, boxWidth3 = boxWidth / 3.0;
-	double boxHeight = 0.1, boxHeight2 = boxHeight / 2.0;
-	double boxHeight3 = boxHeight / 3.0;
+	double boxWidth = 0.3, boxWidth2 = boxWidth / 2, boxWidth3 = boxWidth / 3;
+	double boxHeight = 0.1, boxHeight2 = boxHeight / 2;
+	double boxHeight3 = boxHeight / 3;
 	double r_mm = 3, dxt = 0.025, dyt = 0.03;
-	double dboxx = 1.0 - 0.2 - 2.0 * boxWidth, dboxy = (1.0 - 4.0 * boxHeight) / 3.0;
+	double dboxx = 1 - 0.2 - 2 * boxWidth, dboxy = (1 - 4 * boxHeight) / 3;
 	double x1, x2, xm, x23, x13, y1, y2, ym, y23, y13;
 	double x[7] = {0.0, 0.2, 0.2, 0.7, 0.2, 0.7, 0.2}; /* left */
 	double y[7] = {0.0, 0.9, 0.6, 0.6, 0.3, 0.3, 0.0}; /* bottom */
-	const char32 *text[7] = {U"", U"Confusion", U"Dissimilarity  %\\de__%%ij%_",  U"Similarity", U"Distance  %d__%%ij%_, %d\\'p__%%ij%_", U"ScalarProduct", U"Configuration" };
+	const char32 *text[7] = {U"", U"Confusion", U"Dissimilarity  %\\de__%%ij%_",
+	                          U"Similarity", U"Distance  %d__%%ij%_, %d\\'p__%%ij%_",
+	                          U"ScalarProduct", U"Configuration"
+	                         };
 
 	Graphics_setWindow (g, -0.05, 1.05, -0.05, 1.05);
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
@@ -3099,8 +3299,9 @@ void drawMDSClassRelations (Graphics g) {
 	// Restore settings
 
 	Graphics_setLineType (g, Graphics_DRAWN);
-	Graphics_setLineWidth (g, 1.0);
+	Graphics_setLineWidth (g, 1);
 	Graphics_setTextAlignment (g, Graphics_LEFT, Graphics_BOTTOM);
+
 }
 
 /* End of file MDS.cpp */
diff --git a/dwtools/MDS.h b/dwtools/MDS.h
index dd4dfd5..801517b 100644
--- a/dwtools/MDS.h
+++ b/dwtools/MDS.h
@@ -4,7 +4,7 @@
  *
  * Multi Dimensional Scaling
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -77,194 +77,194 @@
 Thing_define (Weight, TableOfReal) {
 };
 
-autoWeight Weight_create (long numberOfPoints);
+Weight Weight_create (long numberOfPoints);
 
 /************************** class Salience **************************************/
 
 Thing_define (Salience, TableOfReal) {
 };
 
-autoSalience Salience_create (long numberOfSources, long numberOfDimensions);
+Salience Salience_create (long numberOfSources, long numberOfDimensions);
 
 void Salience_setDefaults (Salience me);
 
 long Salience_correctNegatives (Salience me);
 
-void Salience_draw (Salience me, Graphics g, int xdimension, int ydimension, int garnish);
+void Salience_draw (Salience me, Graphics g, int xdimension, int ydimension,
+	int garnish);
 
 /************************** class MDSVec ******************************/
 
-Thing_define (MDSVec, Daata) {
-	long nProximities, nPoints;
-	double *proximity;
-	long *iPoint, *jPoint;
-
-	void v_destroy () noexcept
-		override;
+Thing_define (MDSVec, Data) {
+	// new data:
+	public:
+		long nProximities, nPoints;
+		double *proximity;
+		long *iPoint, *jPoint;
+	// overridden methods:
+	protected:
+		virtual void v_destroy ();
 };
 
-autoMDSVec MDSVec_create (long nObjects);
+MDSVec MDSVec_create (long nObjects);
 
 /************** class MDSVecs *********************************/
 
-Collection_define (MDSVecList, OrderedOf, MDSVec) {
+Thing_define (MDSVecs, Ordered) {
 };
 
-autoConfiguration ContingencyTable_to_Configuration_ca (ContingencyTable me, long numberOfDimensions, int scaling);
+MDSVecs MDSVecs_create ();
+
+
+Configuration ContingencyTable_to_Configuration_ca (ContingencyTable me,
+	long numberOfDimensions, int scaling);
 
-/********************* class ProximityList *******************************/
+/********************* class Proximities *******************************/
 
-Collection_define (ProximityList, OrderedOf, Proximity) {
-	TableOfRealList asTableOfRealList () {
-		return reinterpret_cast<TableOfRealList> (this);
-	}
+Thing_define (Proximities, TablesOfReal) {
 };
 
+void Proximities_init (I, ClassInfo klas);
 
-#pragma mark - class ConfusionList
+Proximities Proximities_create ();
 
-Collection_define (ConfusionList, OrderedOf, Confusion) {
-	TableOfRealList asTableOfRealList () {
-		return reinterpret_cast<TableOfRealList> (this);
-	}
+/****************** class Confusions **********************************/
+
+Thing_define (Confusions, Proximities) {
 };
 
-autoConfusion ConfusionList_sum (ConfusionList me);
+Confusions Confusions_create ();
 
+Confusion Confusions_sum (Confusions me);
 
-#pragma mark - class DistanceList
+/************* class Distances **************************************/
 
-Collection_define (DistanceList, OrderedOf, Distance) {
-	ProximityList asProximityList () {
-		return reinterpret_cast<ProximityList> (this);
-	}
-	TableOfRealList asTableOfRealList () {
-		return reinterpret_cast<TableOfRealList> (this);
-	}
+Thing_define (Distances, Proximities) {
 };
 
+Distances Distances_create ();
 
-#pragma mark - class ScalarProduct
+/**************** class ScalarProduct **************************************/
 
 Thing_define (ScalarProduct, TableOfReal) {
 };
 
-autoScalarProduct ScalarProduct_create (long numberOfPoints);
-
+ScalarProduct ScalarProduct_create (long numberOfPoints);
 
-#pragma mark - class ScalarProductList
+/************** class ScalarProducts ********************************/
 
-Collection_define (ScalarProductList, OrderedOf, ScalarProduct) {
-	TableOfRealList asTableOfRealList () {
-		return reinterpret_cast<TableOfRealList> (this);
-	}
+Thing_define (ScalarProducts, TablesOfReal) {
 };
 
+ScalarProducts ScalarProducts_create ();
 
-#pragma mark - class Dissimilarity
+
+/************* class Dissimilarity *********************************/
 
 Thing_define (Dissimilarity, Proximity) {
 };
 
-autoDissimilarity Dissimilarity_create (long numberOfPoints);
+Dissimilarity Dissimilarity_create (long numberOfPoints);
 
-double Dissimilarity_getAdditiveConstant (Dissimilarity me);
+int Dissimilarity_getAdditiveConstant (I, double *c);
 /*
 	Get the best estimate for the additive constant:
 		"distance = dissimilarity + constant"
-	F. Cailliez (1983), The analytical solution of the additive constant problem, Psychometrika 48, 305-308.
+	F. Cailliez (1983), The analytical solution of the additive
+		constant problem,
+	Psychometrika 48, 305-308.
 */
 
-
-#pragma mark - class Transformator
+/****************** class Transformator *******************************/
 
 Thing_define (Transformator, Thing) {
-	long numberOfPoints;
-	int normalization;
-
-	virtual autoDistance v_transform (MDSVec vec, Distance dist, Weight w);
+	// new data:
+	public:
+		long numberOfPoints;
+		int normalization;
+	// new methods:
+		virtual Distance v_transform (MDSVec vec, Distance dist, Weight w);
 };
 
-void Transformator_init (Transformator me, long numberOfPoints);
+void Transformator_init (I, long numberOfPoints);
 
-autoTransformator Transformator_create (long numberOfPoints);
+Transformator Transformator_create (long numberOfPoints);
 
-void Transformator_setNormalization (Transformator me, int normalization);
+void Transformator_setNormalization (I, int normalization);
 
-autoDistance Transformator_transform (Transformator me, MDSVec vec, Distance dist, Weight w);
+Distance Transformator_transform (I, MDSVec vec, Distance dist, Weight w);
 
 Thing_define (ISplineTransformator, Transformator) {
-	long numberOfInteriorKnots, order, numberOfParameters;
-	double **m, *b, *knot;
-
-	void v_destroy () noexcept
-		override;
-	autoDistance v_transform (MDSVec vec, Distance dist, Weight w)
-		override;
+	// new data:
+	public:
+		long numberOfInteriorKnots, order, numberOfParameters;
+		double **m, *b, *knot;
+	// overridden methods:
+		virtual void v_destroy ();
+		virtual Distance v_transform (MDSVec vec, Distance dist, Weight w);
 };
 
-autoISplineTransformator ISplineTransformator_create (long numberOfPoints, long numberOfInteriorKnots, long order);
+ISplineTransformator ISplineTransformator_create (long numberOfPoints, long numberOfInteriorKnots,
+	long order);
 
 Thing_define (RatioTransformator, Transformator) {
-	double ratio;
-
-	autoDistance v_transform (MDSVec vec, Distance dist, Weight w)
-		override;
+	// new data:
+	public:
+		double ratio;
+	// overridden methods:
+		virtual Distance v_transform (MDSVec vec, Distance dist, Weight w);
 };
 
-autoRatioTransformator RatioTransformator_create (long numberOfPoints);
+RatioTransformator RatioTransformator_create (long numberOfPoints);
 
 Thing_define (MonotoneTransformator, Transformator) {
-	int tiesProcessing;
-
-	autoDistance v_transform (MDSVec vec, Distance dist, Weight w)
-		override;
+	// new data:
+	public:
+		int tiesProcessing;
+	// overridden methods:
+		virtual Distance v_transform (MDSVec vec, Distance dist, Weight w);
 };
 
-autoMonotoneTransformator MonotoneTransformator_create (long numberPoints);
+MonotoneTransformator MonotoneTransformator_create (long numberPoints);
 
 void MonotoneTransformator_setTiesProcessing (MonotoneTransformator,
 	int tiesProcessing);
 
 
-/*************** class DissimilyList ****************************/
+/*************** class Dissimilarities ****************************/
 
-Collection_define (DissimilarityList, OrderedOf, Dissimilarity) {
-	ProximityList asProximityList () {
-		return reinterpret_cast<ProximityList> (this);
-	}
-	TableOfRealList asTableOfRealList () {
-		return reinterpret_cast<TableOfRealList> (this);
-	}
+Thing_define (Dissimilarities, Proximities) {
 };
 
+Dissimilarities Dissimilarities_create ();
 
 /**************** class Similarity *****************************/
 
 Thing_define (Similarity, Proximity) {
 };
 
-autoSimilarity Similarity_create (long numberOfPoints);
+Similarity Similarity_create (long numberOfPoints);
 
 
 /************** KRUSKAL *********************************************/
 
 Thing_define (Kruskal, Thing) {
-	int process;
-	int measurementLevel;
-	int conditionality;
-	autoConfiguration configuration;
-	autoProximityList proximities;
-	int stress_formula;
-	autoMDSVec vec;
-	double **dx;
-	autoMinimizer minimizer;
-
-	void v_destroy () noexcept
-		override;
+	// new data:
+	public:
+		int process;
+		int measurementLevel;
+		int conditionality;
+		Configuration configuration;
+		Proximities proximities;
+		int stress_formula;
+		MDSVec vec;
+		double **dx;
+		Minimizer minimizer;
+	// overridden methods:
+		virtual void v_destroy ();
 };
 
-autoKruskal Kruskal_create (long numberOfpoints, long numberOfDimensions);
+Kruskal Kruskal_create (long numberOfpoints, long numberOfDimensions);
 
 double Dissimilarity_Configuration_Weight_Transformator_normalizedStress
 	(Dissimilarity me, Configuration conf, Weight weight, Transformator t);
@@ -281,7 +281,8 @@ double Distance_Weight_congruenceCoefficient (Distance x, Distance y, Weight w);
 	Congruence coefficient B&G page 350.
 */
 
-void Distance_Weight_rawStressComponents (Distance fit, Distance conf, Weight weight, double *eta_fit, double *eta_conf, double *rho);
+void Distance_Weight_rawStressComponents (Distance fit, Distance conf,
+	Weight weight, double *eta_fit, double *eta_conf, double *rho);
 /*
 	Computes
 		eta_fit = sum (i<j,i=1..n; w[i][j] * dfit[i][j]^2)
@@ -292,261 +293,378 @@ void Distance_Weight_rawStressComponents (Distance fit, Distance conf, Weight we
 		conf[i][j] = distance between x[i] and x[j] (in the configuration)
 */
 
-double Dissimilarity_Configuration_Transformator_Weight_stress (Dissimilarity d, Configuration c, Transformator t, Weight w, int type);
+double Dissimilarity_Configuration_Transformator_Weight_stress
+	(Dissimilarity d, Configuration c, Any t, Weight w, int type);
 
-double Dissimilarity_Configuration_Weight_absolute_stress (Dissimilarity d, Configuration c, Weight w, int type);
+double Dissimilarity_Configuration_Weight_absolute_stress
+	(Dissimilarity d, Configuration c, Weight w, int type);
 
-double Dissimilarity_Configuration_Weight_ratio_stress (Dissimilarity d, Configuration c, Weight w, int type);
+double Dissimilarity_Configuration_Weight_ratio_stress
+	(Dissimilarity d, Configuration c, Weight w, int type);
 
-double Dissimilarity_Configuration_Weight_interval_stress (Dissimilarity d, Configuration c, Weight w, int type);
+double Dissimilarity_Configuration_Weight_interval_stress
+	(Dissimilarity d, Configuration c, Weight w, int type);
 
-double Dissimilarity_Configuration_Weight_monotone_stress (Dissimilarity d, Configuration c, Weight w, int tiesProcessing, int type);
+double Dissimilarity_Configuration_Weight_monotone_stress
+	(Dissimilarity d, Configuration c, Weight w, int tiesProcessing, int type);
 
-double Dissimilarity_Configuration_Weight_ispline_stress (Dissimilarity d, Configuration c, Weight w, long numberOfInteriorKnots, long order, int type);
+double Dissimilarity_Configuration_Weight_ispline_stress
+	(Dissimilarity d, Configuration c, Weight w, long numberOfInteriorKnots,
+	long order, int type);
 
 void Distance_Weight_smacofNormalize (Distance d, Weight w);
 
-autoConfiguration Dissimilarity_Configuration_Weight_Transformator_smacof (Dissimilarity me, Configuration conf, Weight weight, Transformator t, double tolerance, long numberOfIterations, bool showProgress, double *stress);
+Configuration Dissimilarity_Configuration_Weight_Transformator_smacof
+	(Dissimilarity me, Configuration conf, Weight weight, Any transformator,
+	double tolerance, long numberOfIterations, int showProgress,
+	double *stress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_Transformator_multiSmacof (Dissimilarity me, Configuration conf, Weight w, Transformator t, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_Transformator_multiSmacof
+	(Dissimilarity me, Configuration conf, Weight w, Any transformator,
+	double tolerance, long numberOfIterations, long numberOfRepetitions,
+	int showProgress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_absolute_mds (Dissimilarity dis, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_ratio_mds (Dissimilarity dis, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_absolute_mds
+	(Dissimilarity dis, Configuration cstart, Weight w, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_interval_mds (Dissimilarity dis, Configuration cstart, Weight w, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_ratio_mds
+	(Dissimilarity dis, Configuration cstart, Weight w, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_monotone_mds (Dissimilarity dis, Configuration cstart, Weight w, int tiesProcessing, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_interval_mds
+	(Dissimilarity dis, Configuration cstart, Weight w, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Configuration_Weight_ispline_mds (Dissimilarity me, Configuration cstart, Weight w,
-	long numberOfInteriorKnots, long order, double tolerance,
-	long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_monotone_mds
+	(Dissimilarity dis, Configuration cstart, Weight w, int tiesProcessing,
+	double tolerance, long numberOfIterations, long numberOfRepetitions,
+	int showProgress);
 
-autoConfiguration Dissimilarity_Weight_absolute_mds (Dissimilarity me, Weight w, long numberOfDimensions, double tolerance,
-	long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Configuration_Weight_ispline_mds
+	(Dissimilarity me, Configuration cstart, Weight w,
+	long numberOfInteriorKnots, long order, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Weight_ratio_mds (Dissimilarity dis, Weight w, long numberOfDimensions, double tolerance,
-	long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Weight_absolute_mds
+	(Dissimilarity me, Weight w, long numberOfDimensions, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
+Configuration Dissimilarity_Weight_ratio_mds
+	(Dissimilarity dis, Weight w, long numberOfDimensions, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Weight_interval_mds (Dissimilarity dis, Weight w, long numberOfDimensions, double tolerance,
-	long numberOfIterations, long numberOfRepetitions, bool showProgress);
 
-autoConfiguration Dissimilarity_Weight_monotone_mds (Dissimilarity me, Weight w, long numberOfDimensions, int tiesProcessing,
-	double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Weight_interval_mds
+	(Dissimilarity dis, Weight w, long numberOfDimensions, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-autoConfiguration Dissimilarity_Weight_ispline_mds (Dissimilarity me, Weight weight, long numberOfDimensions,
-	long numberOfInteriorKnots, long order, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress);
+Configuration Dissimilarity_Weight_monotone_mds
+	(Dissimilarity me, Weight w, long numberOfDimensions, int tiesProcessing,
+	double tolerance, long numberOfIterations, long numberOfRepetitions,
+	int showProgress);
 
-void Dissimilarity_Configuration_Weight_drawAbsoluteRegression (Dissimilarity d, Configuration c, Weight w, Graphics g, double xmin,
-	double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+Configuration Dissimilarity_Weight_ispline_mds
+	(Dissimilarity me, Weight weight, long numberOfDimensions,
+	long numberOfInteriorKnots, long order, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress);
 
-void Dissimilarity_Configuration_Weight_drawRatioRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
-	double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+void Dissimilarity_Configuration_Weight_drawAbsoluteRegression
+	(Dissimilarity d, Configuration c, Weight w, Graphics g, double xmin,
+	double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish);
 
-void Dissimilarity_Configuration_Weight_drawIntervalRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
-	double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+void Dissimilarity_Configuration_Weight_drawRatioRegression
+	(Dissimilarity d, Configuration c, Weight w, Graphics g,
+	double xmin, double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish);
 
-void Dissimilarity_Configuration_Weight_drawMonotoneRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
-	int tiesProcessing, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+void Dissimilarity_Configuration_Weight_drawIntervalRegression
+	(Dissimilarity d, Configuration c, Weight w, Graphics g,
+	double xmin, double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish);
 
-void Dissimilarity_Configuration_Weight_drawISplineRegression (Dissimilarity d, Configuration c, Weight w, Graphics g,
-	long numberOfInternalKnots, long order, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+void Dissimilarity_Configuration_Weight_drawMonotoneRegression
+	(Dissimilarity d, Configuration c, Weight w, Graphics g,
+	int tiesProcessing, double xmin, double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish);
 
-autoDistance Dissimilarity_Configuration_Transformator_Weight_transform (Dissimilarity d, Configuration c, Transformator t, Weight w);
+void Dissimilarity_Configuration_Weight_drawISplineRegression
+	(Dissimilarity d, Configuration c, Weight w, Graphics g,
+	long numberOfInternalKnots, long order, double xmin, double xmax,
+	double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
 
+Distance Dissimilarity_Configuration_Transformator_Weight_transform
+	(Dissimilarity d, Configuration c, Any t, Weight w);
 
 /******** DISTANCE & SCALARPRODUCT *******************************/
 
-autoScalarProduct Distance_to_ScalarProduct (Distance me, bool normalize);
+
+ScalarProduct Distance_to_ScalarProduct (Distance me, int normalize);
 
 
 /************** DISTANCE & PROXIMITY ********************************/
 
-void Proximity_Distance_drawScatterDiagram (Proximity me, Distance thee, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+
+void Proximity_Distance_drawScatterDiagram (I, Distance thee, Graphics g,
+	double xmin, double xmax, double ymin, double ymax, double size_mm,
+	const char32 *mark, int garnish);
 
 
 /********** COVARIANCE & CONFIGURATION ***************************/
 
-autoConfiguration SSCP_to_Configuration (SSCP me, long numberOfDimensions);
 
-autoConfiguration Covariance_to_Configuration (Covariance me, long numberOfDimensions);
+Configuration Covariance_to_Configuration (Covariance me,
+	long numberOfDimensions);
 
 
 /************ CORRELATION & CONFIGURATION ************************/
 
-autoConfiguration Correlation_to_Configuration (Correlation me, long numberOfDimensions);
+
+Configuration Correlation_to_Configuration (Correlation me,
+	long numberOfDimensions);
 
 
 /************** DISTANCE & CONFIGURATION **************************/
 
-autoDistance Configuration_to_Distance (Configuration me);
+
+Distance Configuration_to_Distance (Configuration me);
 /* Calculates distances between the points */
 
-void Distance_and_Configuration_drawScatterDiagram (Distance me, Configuration him, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+void Distance_and_Configuration_drawScatterDiagram
+	(Distance me, Configuration him, Graphics g, double xmin, double xmax,
+	double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
 
-autoConfiguration Distance_to_Configuration_torsca (Distance me, int numberOfDimensions);
+Configuration Distance_to_Configuration_torsca (Distance me,
+	int numberOfDimensions);
 
 
 /************** DISSIMILARITY & CONFIGURATION ************************/
 
-autoConfiguration Dissimilarity_kruskal (Dissimilarity me, long numberOfDimensions, long metric, int processTies, int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions);
 
-autoConfiguration Dissimilarity_Configuration_kruskal (Dissimilarity me, Configuration him, int processTies, int stress_formula, double tolerance, long numberOfIterations, long numberOfRepetitions);
+Configuration Dissimilarity_kruskal (Dissimilarity me, long numberOfDimensions,
+	long metric, int processTies, int stress_formula, double tolerance,
+	long numberOfIterations, long numberOfRepetitions);
 
-double Dissimilarity_Configuration_getStress (Dissimilarity me, Configuration him, int processTies, int stress_formula);
+Configuration Dissimilarity_Configuration_kruskal
+	(Dissimilarity me, Configuration him, int processTies, int stress_formula,
+	double tolerance, long numberOfIterations, long numberOfRepetitions);
 
-void Dissimilarity_Configuration_drawShepardDiagram (Dissimilarity me, Configuration him, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+double Dissimilarity_Configuration_getStress
+	(Dissimilarity me, Configuration him, int processTies, int stress_formula);
 
-autoDistance Dissimilarity_Configuration_monotoneRegression (Dissimilarity dis, Configuration conf, int processTies);
+void Dissimilarity_Configuration_drawShepardDiagram
+	(Dissimilarity me, Configuration him, Graphics g, double xmin, double xmax,
+	double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
 
-autoDistanceList DissimilarityList_Configuration_monotoneRegression (DissimilarityList dissims, Configuration conf, int processTies);
+Distance Dissimilarity_Configuration_monotoneRegression
+	(Dissimilarity dis, Configuration conf, int processTies);
 
-void Dissimilarity_Configuration_drawMonotoneRegression	(Dissimilarity me, Configuration him, Graphics g, int processTies, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish);
+Distances Dissimilarities_Configuration_monotoneRegression
+	(Dissimilarities dissims, Configuration conf, int processTies);
 
+void Dissimilarity_Configuration_drawMonotoneRegression
+	(Dissimilarity me, Configuration him, Graphics g, int processTies,
+	double xmin, double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish);
 
 /************** SIMILARITY & TABLESOFREAL ********************************/
 
-autoSimilarity DistanceList_to_Similarity_cc (DistanceList me, Weight weight);
 
-autoSimilarity ConfigurationList_to_Similarity_cc (ConfigurationList me, Weight weight);
+Similarity Distances_to_Similarity_cc (Distances me, Weight weight);
+
+Similarity Configurations_to_Similarity_cc (Configurations me, Weight weight);
 
 
 /************** DISSIMILARITY & DISTANCE *************************************/
 
-autoDistance Dissimilarity_to_Distance (Dissimilarity me, int scale);
+
+Distance Dissimilarity_to_Distance (Dissimilarity me, int scale);
 /* with optional scaling with "additive constant" */
 
-autoDissimilarity Distance_to_Dissimilarity (Distance me);
+Dissimilarity Distance_to_Dissimilarity (Distance me);
 
-autoDistance Dissimilarity_Distance_monotoneRegression (Dissimilarity me, Distance thee, int tiesProcessingMethod);
+Distance Dissimilarity_Distance_monotoneRegression
+	(Dissimilarity me, Distance thee, int processTies);
 
 
 /************** DISSIMILARITY & CONFUSION ************************************/
 
-autoDissimilarity Confusion_to_Dissimilarity_pdf (Confusion me, double minimumConfusionLevel);
+
+Dissimilarity Confusion_to_Dissimilarity_pdf
+	(Confusion me, double minimumConfusionLevel);
 
 
 /************** DISSIMILARITY & MDSVEC ***************************************/
 
-autoMDSVec Dissimilarity_to_MDSVec (Dissimilarity me);
 
-autoMDSVecList DissimilarityList_to_MDSVecList (DissimilarityList me);
+MDSVec Dissimilarity_to_MDSVec (Dissimilarity me);
+
+MDSVecs Dissimilarities_to_MDSVecs (Dissimilarities me);
 
 
 /************** DISSIMILARITY & SIMILARITY ***********************************/
 
-autoDissimilarity Similarity_to_Dissimilarity (Similarity me, double maximumDissimilarity);
+
+Dissimilarity Similarity_to_Dissimilarity (Similarity me,
+	double maximumDissimilarity);
 
 
 /************** DISSIMILARITY & WEIGHT ***********************************/
 
-autoWeight Dissimilarity_to_Weight (Dissimilarity me);
+
+
+Weight Dissimilarity_to_Weight (Dissimilarity me);
 
 
 /************** CONFUSION & SIMILARITY ***************************************/
 
-autoSimilarity Confusion_to_Similarity (Confusion me, bool normalize, int symmetrizeMethod);
 
+Similarity Confusion_to_Similarity (Confusion me, int normalize,
+	int symmetrizeMethod);
 
-/************** DissimilarityList & DistanceList **********************************/
 
-autoDissimilarityList DistanceList_to_DissimilarityList (DistanceList me);
+/************** CONFUSION & DISTANCE *****************************************/
 
-autoDistanceList DissimilarityList_to_DistanceList (DissimilarityList me, int scale);
 
+Distance Confusion_to_Distance_pdf (Confusion me, int symmetrizeBefore,
+	double maximumDistance);
 
-/************** DistanceList & Configuration ************************************/
 
-void DistanceList_to_Configuration_ytl (DistanceList me, int numberOfDimensions, int normalizeScalarProducts, autoConfiguration *out1, autoSalience *out2);
+/************** DISSIMILARITIES & DISTANCES **********************************/
+
+
+Dissimilarities Distances_to_Dissimilarities (Distances me);
+
+Distances Dissimilarities_to_Distances (Dissimilarities me, int scale);
+
+
+/************** DISTANCES & CONFIGURATION ************************************/
+
+
+int Distances_to_Configuration_ytl (Distances me, int numberOfDimensions,
+	int normalizeScalarProducts, Configuration *out1, Salience *out2);
 /*
 	F.W. Young, Y. Takane & R. Lewyckyj (1978), Three notes on ALSCAL,
 	Psychometrika 43, 433-435.
 
-	 w: numberOfSources x numberOfDimensions or null
+	 w: numberOfSources x numberOfDimensions or NULL
 */
 
-autoDistanceList ConfigurationList_to_DistanceList (ConfigurationList me);
+Distances Configurations_to_Distances (Configurations me);
 
 
-/************** MDSVec(Lists)  & Distance(List) **********************************/
+/************** MDSVEC(S) & DISTANCE(S) **********************************/
 
-autoDistance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee, int tiesProcessingMethod);
 
-autoDistanceList MDSVecList_Distance_monotoneRegression (MDSVecList me, Distance thee, int tiesProcessingMethod);
+Distance MDSVec_Distance_monotoneRegression (MDSVec me, Distance thee,
+	int processTies);
 
+Distances MDSVecs_Distance_monotoneRegression (MDSVecs me, Distance thee,
+	int processTies);
 
-/************** ScalarProduct(List) & ...... **********************************/
 
-void ScalarProduct_Configuration_getVariances (ScalarProduct me, Configuration thee, double *varianceExplained, double *varianceTotal);
+/************** SCALARPRODUCT(S) & ...... **********************************/
 
-void ScalarProductList_Configuration_Salience_vaf (ScalarProductList me, Configuration thee, Salience him, double *vaf);
+void ScalarProduct_Configuration_getVariances (ScalarProduct me,
+	Configuration thee, double *varianceExplained, double *varianceTotal);
 
-autoScalarProductList DistanceList_to_ScalarProductList (DistanceList me, bool normalize);
+void ScalarProducts_Configuration_Salience_vaf (ScalarProducts me,
+	Configuration thee, Salience him, double *vaf);
 
-void ScalarProductList_to_Configuration_ytl (ScalarProductList me, int numberOfDimensions, autoConfiguration *out1, autoSalience *out2);
+ScalarProducts Distances_to_ScalarProducts (Distances me, int normalize);
 
-void ScalarProductList_Configuration_Salience_indscal (ScalarProductList sp, Configuration conf, Salience weights, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2, double *vaf);
+void ScalarProducts_to_Configuration_ytl (ScalarProducts me,
+	int numberOfDimensions, Configuration *out1, Salience *out2);
 
+void ScalarProducts_Configuration_Salience_indscal (ScalarProducts sp,
+	Configuration conf, Salience weights, double tolerance,
+	long numberOfIterations, int showProgress,
+	Configuration *out1, Salience *out2, double *vaf);
 
 /************** INDSCAL & ....... ***********************************/
 
-void DissimilarityList_indscal (DissimilarityList me, long numberOfDimensions, int tiesProcessingMethod, bool normalizeScalarProducts, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress, autoConfiguration *out1, autoSalience *out2);
 
-void DistanceList_indscal (DistanceList me, long numberOfDimensions, bool normalizeScalarProducts, double tolerance, long numberOfIterations, long numberOfRepetitions, bool showProgress, autoConfiguration *out1, autoSalience *out2);
+void Dissimilarities_indscal (Dissimilarities me, long numberOfDimensions,
+	int processTies, int normalizeScalarProducts, double tolerance,
+	long numberOfIterations, long numberOfRepetitions, int showProgress,
+	Configuration *out1, Salience *out2);
 
-void DissimilarityList_Configuration_indscal (DissimilarityList me, Configuration conf, int tiesProcessingMethod, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2);
+void Distances_indscal (Distances me, long numberOfDimensions,
+	int normalizeScalarProducts, double tolerance, long numberOfIterations,
+	long numberOfRepetitions, int showProgress,
+	Configuration *out1, Salience *out2);
 
-void DistanceList_Configuration_indscal (DistanceList dists, Configuration conf, bool normalizeScalarProducts, double tolerance, long numberOfIterations,
-	bool showProgress, autoConfiguration *out1, autoSalience *out2);
+void Dissimilarities_Configuration_indscal (Dissimilarities me,
+	Configuration conf, int processTies, int normalizeScalarProducts,
+	double tolerance, long numberOfIterations,
+	int showProgress, Configuration *out1, Salience *out2);
 
-void DissimilarityList_Configuration_Salience_indscal (DissimilarityList dissims, Configuration conf, Salience w, int tiesProcessingMethod,
-	bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2, double *vaf);
+void Distances_Configuration_indscal (Distances dists, Configuration conf,
+	int normalizeScalarProducts, double tolerance, long numberOfIterations,
+	int showProgress, Configuration *out1, Salience *out2);
 
-autoDistanceList MDSVecList_Configuration_Salience_monotoneRegression (MDSVecList vecs, Configuration conf, Salience weights, int tiesProcessingMethod);
+void Dissimilarities_Configuration_Salience_indscal (Dissimilarities dissims,
+	Configuration conf, Salience w, int processTies,
+	int normalizeScalarProducts, double tolerance, long numberOfIterations,
+	int showProgress, Configuration *out1, Salience *out2, double *vaf);
 
-void DistanceList_Configuration_Salience_indscal (DistanceList dists, Configuration conf, Salience weights, bool normalizeScalarProducts, double tolerance, long numberOfIterations, bool showProgress, autoConfiguration *out1, autoSalience *out2, double *vaf);
+Distances MDSVecs_Configuration_Salience_monotoneRegression (MDSVecs vecs,
+	Configuration conf, Salience weights, int processTies);
 
-void DistanceList_Configuration_Salience_vaf (DistanceList me, Configuration thee, Salience him, bool normalizeScalarProducts, double *vaf);
+void Distances_Configuration_Salience_indscal (Distances dists,
+	Configuration conf, Salience weights,
+	int normalizeScalarProducts, double tolerance, long numberOfIterations,
+	int showProgress, Configuration *out1, Salience *out2, double *vaf);
 
-void DissimilarityList_Configuration_Salience_vaf (DissimilarityList me, Configuration thee,
-	Salience him, int tiesProcessingMethod, bool normalizeScalarProducts, double *vaf);
+void Distances_Configuration_Salience_vaf (Distances me, Configuration thee,
+	Salience him, int normalizeScalarProducts, double *vaf);
 
-void DistanceList_Configuration_vaf (DistanceList me, Configuration thee, bool normalizeScalarProducts, double *vaf);
+void Dissimilarities_Configuration_Salience_vaf (Dissimilarities me, Configuration thee,
+	Salience him, int processTies, int normalizeScalarProducts, double *vaf);
 
-void DissimilarityList_Configuration_vaf (DissimilarityList me, Configuration thee, int tiesProcessingMethod, bool normalizeScalarProducts, double *vaf);
+void Distances_Configuration_vaf (Distances me, Configuration thee,
+	int normalizeScalarProducts, double *vaf);
 
-autoSalience ScalarProductList_Configuration_to_Salience (ScalarProductList me, Configuration him);
+void Dissimilarities_Configuration_vaf (Dissimilarities me, Configuration thee,
+	int processTies, int normalizeScalarProducts, double *vaf);
 
-autoSalience DistanceList_Configuration_to_Salience (DistanceList me, Configuration him, bool normalizeScalarProducts);
+Salience ScalarProducts_Configuration_to_Salience (ScalarProducts me,
+	Configuration him);
 
-autoSalience DissimilarityList_Configuration_to_Salience (DissimilarityList me, Configuration him, int processTies, bool normalizeScalarProducts);
+Salience Distances_Configuration_to_Salience (Distances me, Configuration him,
+	int normalizeScalarProducts);
 
+Salience Dissimilarities_Configuration_to_Salience (Dissimilarities me,
+	Configuration him, int processTies, int normalizeScalarProducts);
 
-/********* Conversions from & to TableOfReal *****************************/
 
-autoDissimilarity TableOfReal_to_Dissimilarity (TableOfReal me);
+/********* Casts from & to TableOfReal *****************************/
 
-autoSimilarity TableOfReal_to_Similarity (TableOfReal me);
+Dissimilarity TableOfReal_to_Dissimilarity (I);
 
-autoDistance TableOfReal_to_Distance (TableOfReal me);
+Similarity TableOfReal_to_Similarity (I);
 
-autoSalience TableOfReal_to_Salience (TableOfReal me);
+Distance TableOfReal_to_Distance (I);
 
-autoWeight TableOfReal_to_Weight (TableOfReal me);
+Salience TableOfReal_to_Salience (I);
 
-autoScalarProduct TableOfReal_to_ScalarProduct (TableOfReal me);
+Weight TableOfReal_to_Weight (I);
 
+ScalarProduct TableOfReal_to_ScalarProduct (I);
 
 /**************  EXAMPLES  ***************************************************/
 
-autoDissimilarity Dissimilarity_createLetterRExample (double noiseRange);
 
-autoCollection INDSCAL_createCarrollWishExample (double noiseStd);
+Dissimilarity Dissimilarity_createLetterRExample (double noiseRange);
+
+Collection INDSCAL_createCarrollWishExample (double noiseStd);
 
-autoSalience Salience_createCarrollWishExample ();
+Salience Salience_createCarrollWishExample ();
 
-void drawSplines (Graphics g, double low, double high, double ymin, double ymax, int type, long order, char32 const *interiorKnots, int garnish);
+void drawSplines (Graphics g, double low, double high, double ymin, double ymax,
+	int type, long order, char32 const *interiorKnots, int garnish);
 
 void drawMDSClassRelations (Graphics g);
 
diff --git a/dwtools/MFCC.cpp b/dwtools/MFCC.cpp
index 1636466..e2dd651 100644
--- a/dwtools/MFCC.cpp
+++ b/dwtools/MFCC.cpp
@@ -2,7 +2,7 @@
  *
  * Mel Frequency Cepstral Coefficients class.
  *
- * Copyright (C) 1993-2015 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,11 +31,12 @@
 
 Thing_implement (MFCC, CC, 1);
 
-autoMFCC MFCC_create (double tmin, double tmax, long nt, double dt, double t1, long maximumNumberOfCoefficients, double fmin_mel, double fmax_mel) {
+MFCC MFCC_create (double tmin, double tmax, long nt, double dt, double t1,
+	  long maximumNumberOfCoefficients, double fmin_mel, double fmax_mel) {
 	try {
 		autoMFCC me = Thing_new (MFCC);
-		CC_init (me.get(), tmin, tmax, nt, dt, t1, maximumNumberOfCoefficients, fmin_mel, fmax_mel);
-		return me;
+		CC_init (me.peek(), tmin, tmax, nt, dt, t1, maximumNumberOfCoefficients, fmin_mel, fmax_mel);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MFCC not created.");
 	}
@@ -60,12 +61,12 @@ void MFCC_lifter (MFCC me, long lifter) {
 	}
 }
 
-autoTableOfReal MFCC_to_TableOfReal (MFCC me, bool includeC0) {
+TableOfReal MFCC_to_TableOfReal (MFCC me, bool includeC0) {
 	try {
 		long numberOfColumns = my maximumNumberOfCoefficients + (includeC0 ? 1 : 0);
 		autoTableOfReal thee = TableOfReal_create (my nx, numberOfColumns);
 		for (long i = 1; i <= numberOfColumns; i++) {
-			TableOfReal_setColumnLabel (thee.get(), i, Melder_cat (U"c", includeC0 ? i - 1 : i));
+			TableOfReal_setColumnLabel (thee.peek(), i, Melder_cat (U"c", includeC0 ? i - 1 : i));
 		}
 		long offset = includeC0 ? 1 : 0;
 		for (long iframe = 1; iframe <= my nx; iframe++) {
@@ -77,14 +78,14 @@ autoTableOfReal MFCC_to_TableOfReal (MFCC me, bool includeC0) {
 				thy data[iframe][1] = cf -> c0;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TabelOfReal.");
 	}
 }
 
 // as_Sound not to_Sound
-autoSound MFCC_to_Sound (MFCC me) {
+Sound MFCC_to_Sound (MFCC me) {
 	try {
 		autoSound thee = Sound_create (my maximumNumberOfCoefficients, my xmin, my xmax, my nx, my dx, my x1);
 		for (long iframe = 1; iframe <= my nx; iframe++) {
@@ -93,13 +94,13 @@ autoSound MFCC_to_Sound (MFCC me) {
 				thy z[j][iframe] = cf -> c[j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not represented as Sound.");
 	}
 }
 
-autoSound MFCCs_crossCorrelate (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound MFCCs_crossCorrelate (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		if (my dx != thy dx) {
 			Melder_throw (U"The samplings of the two MFCC's have to be equal.");
@@ -109,14 +110,14 @@ autoSound MFCCs_crossCorrelate (MFCC me, MFCC thee, enum kSounds_convolve_scalin
 		}
 		autoSound target = MFCC_to_Sound (me);
 		autoSound source = MFCC_to_Sound (thee);
-		autoSound cc = Sounds_crossCorrelate (target.get(), source.get(), scaling, signalOutsideTimeDomain);
-		return cc;
+		autoSound cc = Sounds_crossCorrelate (target.peek(), source.peek(), scaling, signalOutsideTimeDomain);
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No cross-correlation between ", me, U" and ", thee, U" calculated.");
 	}
 }
 
-autoSound MFCCs_convolve (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound MFCCs_convolve (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		if (my dx != thy dx) {
 			Melder_throw (U"The samplings of the two MFCC's have to be equal.");
@@ -126,8 +127,8 @@ autoSound MFCCs_convolve (MFCC me, MFCC thee, enum kSounds_convolve_scaling scal
 		}
 		autoSound target = MFCC_to_Sound (me);
 		autoSound source = MFCC_to_Sound (thee);
-		autoSound cc = Sounds_convolve (target.get(), source.get(), scaling, signalOutsideTimeDomain);
-		return cc;
+		autoSound cc = Sounds_convolve (target.peek(), source.peek(), scaling, signalOutsideTimeDomain);
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" and ", thee, U" not convolved.");
 	}
@@ -151,7 +152,7 @@ static double CC_Frames_distance (CC_Frame me, CC_Frame thee, bool includeEnergy
  * 3: spectral center of gravity (gs)
  * 4: stable internal duration
  */
-autoMatrix MFCC_to_Matrix_features (MFCC me, double windowLength, bool includeEnergy) {
+Matrix MFCC_to_Matrix_features (MFCC me, double windowLength, bool includeEnergy) {
 	try {
 		long nw = (long) floor (windowLength / my dx / 2);
 		autoMelSpectrogram him = MFCC_to_MelSpectrogram (me, 0, 0, 1);
@@ -208,7 +209,7 @@ autoMatrix MFCC_to_Matrix_features (MFCC me, double windowLength, bool includeEn
 			
 			// 4: stable internal duration
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no features calculated.");
 	}
diff --git a/dwtools/MFCC.h b/dwtools/MFCC.h
index 00c7085..b7b2770 100644
--- a/dwtools/MFCC.h
+++ b/dwtools/MFCC.h
@@ -4,7 +4,7 @@
  *
  * Mel Frequency Cepstral Coefficients class.
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -54,7 +54,8 @@ Thing_define (MFCC, CC) {
 	c0 represents the sum of the dB filter outputs.
 */
 
-autoMFCC MFCC_create (double tmin, double tmax, long nt, double dt, double t1, long maximumNumberOfCoefficients, double fmin_mel, double fmax_mel);
+MFCC MFCC_create (double tmin, double tmax, long nt, double dt, double t1,
+	long maximumNumberOfCoefficients, double fmin_mel, double fmax_mel);
 
 void MFCC_lifter (MFCC me, long lifter);
 /*
@@ -62,14 +63,12 @@ void MFCC_lifter (MFCC me, long lifter);
 	c[i] *= (1 + lifter / 2 * sin (NUMpi * i / lifter))
 */
 
-autoTableOfReal MFCC_to_TableOfReal (MFCC me, bool includeC0);
+TableOfReal MFCC_to_TableOfReal (MFCC me, bool includeC0);
 
-autoSound MFCC_to_Sound (MFCC me);
+Sound MFCC_to_Sound (MFCC me);
+Sound MFCCs_crossCorrelate (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound MFCCs_convolve (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
-autoSound MFCCs_crossCorrelate (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
-
-autoSound MFCCs_convolve (MFCC me, MFCC thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
-
-autoMatrix MFCC_to_Matrix_features (MFCC me, double windowLength, bool includeEnergy);
+Matrix MFCC_to_Matrix_features (MFCC me, double windowLength, bool includeEnergy);
 
 #endif /* _MFCC_h_ */
diff --git a/dwtools/Makefile b/dwtools/Makefile
index d6aaf9b..caaee23 100644
--- a/dwtools/Makefile
+++ b/dwtools/Makefile
@@ -1,6 +1,6 @@
 # Makefile of the library "dwtools"
-# David Weenink and Paul Boersma
-# 23 November 2015
+# David Weenink, 22 February 2010
+# djmw 20150803 Latest modification
 
 include ../makefile.defs
 
@@ -39,6 +39,7 @@ OBJECTS = Activation.o AffineTransform.o \
 	Polygon_extensions.o Procrustes.o \
 	Proximity.o \
 	Resonator.o \
+	Sampled2.o \
 	Sound_and_Spectrogram_extensions.o Sound_and_PCA.o Sound_extensions.o \
 	Sound_to_MFCC.o Sounds_to_DTW.o \
 	Sound_to_Pitch2.o Sound_to_SPINET.o SPINET.o SPINET_to_Pitch.o \
diff --git a/dwtools/Matrix_Categories.cpp b/dwtools/Matrix_Categories.cpp
index 727db3a..2f8aaa1 100644
--- a/dwtools/Matrix_Categories.cpp
+++ b/dwtools/Matrix_Categories.cpp
@@ -1,6 +1,6 @@
 /* Matrix_Categories.cpp
  *
- * Copyright (C) 1993-2011,2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,28 +17,31 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020813 GPL header
+*/
+
 #include "Matrix_Categories.h"
 #include "TableOfReal_extensions.h"
 
-autoTableOfReal Matrix_and_Categories_to_TableOfReal (Matrix me, Categories thee) {
+TableOfReal Matrix_and_Categories_to_TableOfReal (Matrix me, Categories thee) {
 	try {
 		if (thy size != my ny) {
 			Melder_throw (U"Number of rows and number of categories must be equal.");
 		}
 
 		autoTableOfReal him = TableOfReal_create (my ny, my nx);
-		TableOfReal_setSequentialColumnLabels (him.get(), 0, 0, nullptr, 1, 1);
+		TableOfReal_setSequentialColumnLabels (him.peek(), 0, 0, NULL, 1, 1);
 
-		for (long i = 1; i <= my ny; i ++) {
-			his rowLabels [i] = Melder_dup (OrderedOfString_itemAtIndex_c (thee, i));
+		for (long i = 1; i <= my ny; i++) {
+			his rowLabels[i] = Melder_dup (OrderedOfString_itemAtIndex_c (thee, i));
 		}
-
-		for (long i = 1; i <= my ny; i ++) {
-			for (long j = 1; j <= my nx; j ++) {
-				his data [i] [j] = my z [i] [j];
+		for (long i = 1; i <= my ny; i++) {
+			for (long j = 1; j <= my nx; j++) {
+				his data[i][j] = my z[i][j];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not created from Matrix & Categories.");
 	}
diff --git a/dwtools/Matrix_Categories.h b/dwtools/Matrix_Categories.h
index 9943475..8c03708 100644
--- a/dwtools/Matrix_Categories.h
+++ b/dwtools/Matrix_Categories.h
@@ -2,7 +2,7 @@
 #define _Matrix_Categories_h_
 /* Matrix_Categories.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,6 +28,6 @@
 #include "Categories.h"
 #include "TableOfReal.h"
 
-autoTableOfReal Matrix_and_Categories_to_TableOfReal (Matrix me, Categories thee);
+TableOfReal Matrix_and_Categories_to_TableOfReal (Matrix me, Categories thee);
 
 #endif /* _Matrix_Categories_h_ */
diff --git a/dwtools/Matrix_extensions.cpp b/dwtools/Matrix_extensions.cpp
index e1c85a2..d3ebf5d 100644
--- a/dwtools/Matrix_extensions.cpp
+++ b/dwtools/Matrix_extensions.cpp
@@ -1,6 +1,6 @@
 /* Matrix_extensions.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,7 +30,9 @@
 #include "Eigen.h"
 #include "NUM2.h"
 
-void Matrix_scatterPlot (Matrix me, Graphics g, long icx, long icy, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark, int garnish) {
+void Matrix_scatterPlot (Matrix me, Graphics g, long icx, long icy, double xmin, double xmax, double ymin, double ymax,
+	double size_mm, const char32 *mark, int garnish)
+{
 	long ix = labs (icx), iy = labs (icy);
 
 	if (ix < 1 || ix > my nx || iy < 1 || iy > my nx) {
@@ -61,20 +63,21 @@ void Matrix_scatterPlot (Matrix me, Graphics g, long icx, long icy, double xmin,
 	}
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	for (long i = 1; i <= my ny; i++) {
-		if (my z[i][ix] >= xmin && my z[i][ix] <= xmax && my z[i][iy] >= ymin && my z[i][iy] <= ymax) {
+		if (my z[i][ix] >= xmin && my z[i][ix] <= xmax &&
+		        my z[i][iy] >= ymin && my z[i][iy] <= ymax) {
 			Graphics_mark (g, my z[i][ix], my z[i][iy], size_mm, mark);
 		}
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (ymin * ymax < 0.0) {
-			Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 		}
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		if (xmin * xmax < 0.0) {
-			Graphics_markBottom (g, 0.0, true, true, true, nullptr);
+			Graphics_markBottom (g, 0.0, 1, 1, 1, NULL);
 		}
 	}
 }
@@ -120,13 +123,13 @@ void Matrix_drawAsSquares (Matrix me, Graphics g, double xmin, double xmax, doub
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (ymin * ymax < 0.0) {
-			Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 		}
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		if (xmin * xmax < 0.0) {
-			Graphics_markBottom (g, 0.0, true, true, true, nullptr);
+			Graphics_markBottom (g, 0.0, 1, 1, 1, NULL);
 		}
 	}
 }
@@ -176,23 +179,24 @@ void Matrix_scale (Matrix me, int choice) {
 	}
 }
 
-autoMatrix Matrix_transpose (Matrix me) {
+Matrix Matrix_transpose (Matrix me) {
 	try {
-		autoMatrix thee = Matrix_create (my ymin, my ymax, my ny, my dy, my y1, my xmin, my xmax, my nx, my dx, my x1);
+		autoMatrix thee = Matrix_create (my ymin, my ymax, my ny, my dy, my y1,
+		                                 my xmin, my xmax, my nx, my dx, my x1);
 		for (long i = 1; i <= my ny; i++) {
 			for (long j = 1; j <= my nx; j++) {
 				thy z[j][i] = my z[i][j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not transposed.");
 	}
 }
 
-void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax, double minimum, double maximum,
-	long nBins, double freqMin, double freqMax, bool cumulative, bool garnish)
-{
+void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax,
+                              double ymin, double ymax, double minimum, double maximum, long nBins,
+                              double freqMin, double freqMax, int cumulative, int garnish) {
 	if (nBins <= 0) {
 		return;
 	}
@@ -203,18 +207,19 @@ void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax, d
 		ymin = my ymin; ymax = my ymax;
 	}
 	long ixmin, ixmax, iymin, iymax;
-	if ((Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0) || 
-		(Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0)) {
+	if (Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0 ||
+	        Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0) {
 		return;
 	}
-	if (maximum <= minimum) {
-		Matrix_getWindowExtrema (me, ixmin, ixmax, iymin, iymax, & minimum, & maximum);
-	}
+	if (maximum <= minimum) Matrix_getWindowExtrema (me, ixmin, ixmax, iymin,
+		        iymax, & minimum, & maximum);
 	if (maximum <= minimum) {
 		minimum -= 1.0; maximum += 1.0;
 	}
 
-	// Count the numbers per bin and the total
+	/*
+		Count the numbers per bin and the total
+	*/
 
 	if (nBins < 1) {
 		nBins = 10;
@@ -237,7 +242,7 @@ void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax, d
 		} else {
 			NUMvector_extrema (freq.peek(), 1, nBins, & freqMin, & freqMax);
 			if (freqMax <= freqMin) {
-				freqMin = freqMin > 1.0 ? freqMin - 1.0 : 0.0;
+				freqMin = freqMin > 1 ? freqMin - 1 : 0;
 				freqMax += 1.0;
 			}
 		}
@@ -245,7 +250,7 @@ void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax, d
 
 	Graphics_setInner (g);
 	Graphics_setWindow (g, minimum, maximum, freqMin, freqMax);
-	double fi = 0.0;
+	double fi = 0;
 	for (long i = 1; i <= nBins; i++) {
 		double ftmp = freq[i];
 		fi = cumulative ? fi + freq[i] / nxy : freq[i];
@@ -253,22 +258,22 @@ void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax, d
 		if (ftmp > freqMax) {
 			ftmp = freqMax;
 		}
-		if (ftmp > freqMin) {
-			Graphics_rectangle (g, minimum + (i - 1) * binWidth, minimum + i * binWidth, freqMin, ftmp);
-		}
+		if (ftmp > freqMin) Graphics_rectangle (g, minimum + (i - 1) *
+			                                        binWidth, minimum + i * binWidth, freqMin, ftmp);
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (! cumulative) {
-			Graphics_textLeft (g, true, U"Number/bin");
+			Graphics_textLeft (g, 1, U"Number/bin");
 		}
 	}
 }
 
-void Matrix_drawSliceY (Matrix me, Graphics g, double x, double ymin, double ymax, double min, double max) {
+void Matrix_drawSliceY (Matrix me, Graphics g, double x, double ymin, double ymax,
+                        double min, double max) {
 
 	if (x < my xmin || x > my xmax) {
 		return;
@@ -300,11 +305,12 @@ void Matrix_drawSliceY (Matrix me, Graphics g, double x, double ymin, double yma
 	for (long i = iymin; i <= iymax; i++) {
 		y[i] = my z[i][ix];
 	}
-	Graphics_function (g, y.peek(), iymin, iymax, Matrix_rowToY (me, iymin), Matrix_rowToY (me, iymax));
+	Graphics_function (g, y.peek(), iymin, iymax, Matrix_rowToY (me, iymin),
+	                   Matrix_rowToY (me, iymax));
 	Graphics_unsetInner (g);
 }
 
-autoMatrix Matrix_solveEquation (Matrix me, double /* tolerance */) {
+Matrix Matrix_solveEquation (Matrix me, double tolerance) {
 	try {
 		long nr = my ny, nc = my nx - 1;
 
@@ -331,7 +337,7 @@ autoMatrix Matrix_solveEquation (Matrix me, double /* tolerance */) {
 		for (long j = 1; j <= nc; j++) {
 			thy z[1][j] = x[j];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix equation not solved.");
 	}
@@ -345,8 +351,8 @@ double Matrix_getMean (Matrix me, double xmin, double xmax, double ymin, double
 		ymin = my ymin; ymax = my ymax;
 	}
 	long ixmin, ixmax, iymin, iymax;
-	if ((Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0) ||
-		(Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0)) {
+	if (Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0 ||
+	        Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0) {
 		return NUMundefined;
 	}
 	double sum = 0.0;
@@ -366,8 +372,8 @@ double Matrix_getStandardDeviation (Matrix me, double xmin, double xmax, double
 		ymin = my ymin; ymax = my ymax;
 	}
 	long ixmin, ixmax, iymin, iymax;
-	if ((Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0) ||
-		(Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0)) {
+	if (Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax) == 0 ||
+	        Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax) == 0) {
 		return NUMundefined;
 	}
 	long nx = ixmax - ixmin + 1, ny = iymax - iymin + 1;
@@ -384,146 +390,4 @@ double Matrix_getStandardDeviation (Matrix me, double xmin, double xmax, double
 	return sqrt (sum / (nx * ny - 1));
 }
 
-autoDaata IDXFormattedMatrixFileRecognizer (int numberOfBytesRead, const char *header, MelderFile file) {
-	unsigned int numberOfDimensions, type, pos = 4;
-	/* 
-	 * 9: minumum size is 4 bytes (magic number) + 4 bytes for 1 dimension + 1 value of 1 byte
-	 */
-	if (numberOfBytesRead < 9 || header[0] != 0 ||  header[1] != 0 || (type = header[2]) < 8 ||
-		numberOfBytesRead < 4 + (numberOfDimensions = header[3]) * 4) { // each dimension occupies 4 bytes
-		return autoDaata ();
-	}
-	trace (U"dimensions = ", numberOfDimensions, U" type = ", type);
-	/*
-	 * Check if the file size (bytes) equals the number of data cells in the matrix times the size of each cell (bytes) plus thee
-	 * offset of the data (4 + numberOfDimensions * 4)
-	 */ 
-	double numberOfCells = 1.0; // double because sizes of the dimensions could turn out to be very large if not an IDX format file
-	for (long i = 1; i <= numberOfDimensions; i ++, pos += 4) {
-		unsigned char b1 = header[pos], b2 = header[pos + 1], b3 = header[pos + 2], b4 = header[pos + 3];
-		long size = ((uint32) b1 << 24) + ((uint32) b2 << 16) + ((uint32) b3 << 8) + (uint32) b4;
-		trace (U"size = ", size, U" ", b1, U" ", b2, U" ", b3, U" ", b4);
-		numberOfCells *= size;
-	}
-	trace (U"Number of cells =", numberOfCells);
-	/*
-	 * Check how many bytes each cell needs
-	 */
-	long cellSizeBytes = (type == 0x08 || type == 0x09) ? 1 : type == 0x0B ? 2 : (type == 0x0C || type == 0x0D) ? 4 : type == 0x0E ? 8 : 0;
-	if (cellSizeBytes == 0) {
-		return autoDaata ();
-	}
-	trace (U"Cell size =", cellSizeBytes);
-	double numberOfBytes = numberOfCells * cellSizeBytes + 4 + numberOfDimensions * 4;
-	trace (U"Number of bytes =", numberOfBytes);
-	long numberOfBytesInFile = MelderFile_length (file);
-	trace (U"File size = ", numberOfBytesInFile);
-	if (numberOfBytes > numberOfBytesInFile || (long) numberOfBytes < numberOfBytesInFile) { // may occur if it is not an IDX file
-		return autoDaata ();
-	}
-	autoMatrix thee = Matrix_readFromIDXFormatFile (file);
-	return thee.move();
-}
-
-
-autoMatrix Matrix_readFromIDXFormatFile (MelderFile file) {
-	/*
-		From: http://yann.lecun.com/exdb/mnist/
-		
-		The IDX file format is a simple format for vectors and multidimensional matrices of various numerical types.
-
-		The basic format is
-
-			magic number
-			size in dimension 0
-			size in dimension 1
-			size in dimension 2
-			....
-			size in dimension N
-		data
-
-		The magic number is an integer (MSB first). The first 2 bytes are always 0.
-
-		The third byte codes the type of the data:
-		0x08: unsigned byte
-		0x09: signed byte
-		0x0B: short (2 bytes)
-		0x0C: int (4 bytes)
-		0x0D: float (4 bytes)
-		0x0E: double (8 bytes)
-
-		The 4-th byte codes the number of dimensions of the vector/matrix: 1 for vectors, 2 for matrices....
-
-		The sizes in each dimension are 4-byte integers (MSB first, big endian, like in most non-Intel processors).
-
-		The data is stored like in a C array, i.e. the index in the last dimension changes the fastest. 
-
-	*/
-	try {
-		autofile f = Melder_fopen (file, "r");
-		unsigned int b1 = bingetu1 (f); // 0
-		unsigned int b2 = bingetu1 (f); // 0
-		if (b1 != 0 || b2 != 0) {
-			Melder_throw (U"Starting two bytes should be zero.");
-		}
-		unsigned int b3 = bingetu1 (f); // data type
-		unsigned int b4 = bingetu1 (f); // number of dimensions
-		long ncols = bingeti32 (f), nrows = 1; // ok if vector 
-		if (b4 > 1) {
-			nrows = ncols;
-			ncols = bingeti32 (f);
-		}
-		while (b4 > 2) { // accumulate all other dimensions in the columns
-			long n2 = bingeti32 (f);
-			ncols *= n2; // put the matrix in one row
-			-- b4;
-		}
-		autoMatrix me = Matrix_create (0.0, ncols, ncols, 1, 0.5, 0, nrows, nrows, 1.0, 0.5);
-		if (b3 == 0x08) { // unsigned byte
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingetu1 (f);
-				}
-			}
-		} else if (b3 == 0x09) { // signed byte
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingeti1 (f);
-				}
-			}
-		} else if (b3 == 0x0B) { // short (2 bytes)
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingeti2 (f);
-				}
-			}
-		} else if (b3 == 0x0C) { // int (4 bytes)
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingeti32 (f);
-				}
-			}
-		} else if (b3 == 0x0D) { // float (4 bytes)
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingetr4 (f);
-				}
-			}
-		} else if (b3 == 0x0E) { // double (8 bytes)
-			for (long irow = 1; irow <= nrows; irow ++) {
-				for (long icol = 1; icol <= ncols; icol ++) {
-					my z [irow] [icol] = bingetr8 (f);
-				}
-			}
-		} else {
-			Melder_throw (U"Not a valid data type.");
-		}
-		f.close (file);
-		return me;
-	} catch (MelderError) {
-		Melder_throw (U"Cannot read from IDX format file ", MelderFile_messageName (file), U".");
-	}
-}
-
-
 /* End of file Matrix_extensions.cpp */
diff --git a/dwtools/Matrix_extensions.h b/dwtools/Matrix_extensions.h
index ff3c1c4..86f6c12 100644
--- a/dwtools/Matrix_extensions.h
+++ b/dwtools/Matrix_extensions.h
@@ -2,7 +2,7 @@
 #define _Matrix_extensions_h_
 /* Matrix_extensions.h
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,9 +27,6 @@
 #include "Matrix.h"
 #include "Graphics.h"
 
-autoMatrix Matrix_readFromIDXFormatFile (MelderFile file);
-autoDaata IDXFormattedMatrixFileRecognizer (int numberOfBytesRead, const char *header, MelderFile file);
-
 void Matrix_scatterPlot (Matrix me, Graphics g, long icx, long icy,
     double xmin, double xmax, double ymin, double ymax,
     double size_mm, const char32 *mark, int garnish);
@@ -48,21 +45,20 @@ void Matrix_scale (Matrix me, int choice);
 /* choice = 2 :rows, divide each row elmnt by the maximum (abs) of that row	*/
 /* choice = 3 :columns, divide each col elmnt by the maximum of that col	*/
 
-autoMatrix Matrix_transpose (Matrix me);
+Matrix Matrix_transpose (Matrix me);
 
 void Matrix_drawDistribution (Matrix me, Graphics g, double xmin, double xmax,
 	double ymin, double ymax, double minimum, double maximum, long nBins,
-	double freqMin, double freqmax, bool cumulative, bool garnish);
+	double freqMin, double freqmax, int cumulative, int garnish);
 
 void Matrix_drawSliceY (Matrix me, Graphics g, double x, double ymin, double ymax,
 	double min, double max);
 
 int Matrix_fitPolynomial (Matrix me, long maxDegree);
 
-autoMatrix Matrix_solveEquation (Matrix me, double tolerance);
+Matrix Matrix_solveEquation (Matrix me, double tolerance);
 
 double Matrix_getMean (Matrix me, double xmin, double xmax, double ymin, double ymax);
-
 double Matrix_getStandardDeviation (Matrix me, double xmin, double xmax, double ymin, double ymax);
 
 
diff --git a/dwtools/Minimizers.cpp b/dwtools/Minimizers.cpp
index 2145b00..bc15dd7 100644
--- a/dwtools/Minimizers.cpp
+++ b/dwtools/Minimizers.cpp
@@ -1,6 +1,6 @@
 /* Minimizers.cpp
  *
- * Copyright (C) 2001-2013, 2015-2016 David Weenink
+ * Copyright (C) 2001-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -47,45 +47,54 @@
 
 Thing_implement (Minimizer, Thing, 0);
 
-void structMinimizer :: v_destroy () noexcept {
-	NUMvector_free<double> (p, 1);
-	NUMvector_free<double> (history, 1);
+void structMinimizer :: v_destroy () {
+	NUMvector_free (p, 1);
+	NUMvector_free (history, 1);
 	Minimizer_Parent :: v_destroy ();
 }
 
-static void classMinimizer_afterHook (Minimizer me, Thing /* boss */) {
+static void classMinimizer_after (I, Any aclosure) {
+	iam (Minimizer);
+	(void) aclosure;
 
 	if (my success || ! my gmonitor) {
 		return;
 	}
 
 	if (my start == 1) {
-		Minimizer_drawHistory (me, my gmonitor, 0, my maxNumOfIterations, 0.0, 1.1 * my history[1], 1);
-		Graphics_textTop (my gmonitor, false, Melder_cat (U"Dimension of search space: ", my nParameters));
+		char32 s[35];
+		Minimizer_drawHistory (me, my gmonitor, 0, my maxNumOfIterations, 0, 1.1 * my history[1], 1);
+		Melder_sprint (s,35, U"Dimension of search space: ", my nParameters);
+		Graphics_textTop (my gmonitor, 0, s);
 	}
-	Graphics_beginMovieFrame (my gmonitor, nullptr);
 	Graphics_setInner (my gmonitor);
-	Graphics_line (my gmonitor, my iteration, my history[my iteration], my iteration, my history[my iteration]);
+	Graphics_line (my gmonitor, my iteration, my history[my iteration],
+	               my iteration, my history[my iteration]);
 	Graphics_unsetInner (my gmonitor);
-	Graphics_endMovieFrame (my gmonitor, 0.0);
-	Melder_monitor ((double) (my iteration) / my maxNumOfIterations, U"Iterations: ", my iteration, 
-		U", Function calls: ", my funcCalls, U", Cost: ", my minimum);
+	Melder_monitor ( (double) (my iteration) / my maxNumOfIterations,
+	                  U"Iterations: ", my iteration,
+	                  U", Function calls: ", my funcCalls,
+	                  U", Cost: ", my minimum);
 }
 
-void Minimizer_init (Minimizer me, long nParameters, Daata object) {
+void Minimizer_init (I, long nParameters, Data object) {
+	iam (Minimizer);
 	my nParameters = nParameters;
 	my p = NUMvector<double> (1, nParameters);
 	my object = object;
 	my minimum = 1.0e30;
-	my afterHook = classMinimizer_afterHook;
-	Minimizer_reset (me, nullptr); /* added 27/11/97 */
+	my after = classMinimizer_after;
+	Minimizer_reset (me, 0); /* added 27/11/97 */
 }
 
+void Minimizer_setParameters (Minimizer me, Any parameters) {
+	my v_setParameters (parameters);
+}
 static void monitor_off (Minimizer me) {
 	Melder_monitor (1.1);
 	if (my gmonitor) {
 		Graphics_clearWs (my gmonitor); // DON'T forget (my gmonitor)
-		my gmonitor = nullptr;
+		my gmonitor = NULL;
 	}
 }
 
@@ -98,12 +107,14 @@ void Minimizer_minimize (Minimizer me, long maxNumOfIterations, double tolerance
 		}
 
 		if (my iteration + maxNumOfIterations > my maxNumOfIterations) {
+			double *history;
 			my maxNumOfIterations += maxNumOfIterations;
-			if (my history) { // clumsy because vector must have been allocated  before one can append
-				NUMvector_append<double> (& my history, 1, & my maxNumOfIterations);
-			} else {
-				my history = NUMvector<double> (1, my maxNumOfIterations);
+			if (my history) {
+				my history++;    /* arrays start at 1 !! */
 			}
+			history = (double *) Melder_realloc (my history, my maxNumOfIterations *
+			                                     (int64) sizeof (double));
+			my history = --history; /* arrays start at 1 !! */
 		}
 		if (monitor) {
 			my gmonitor = (Graphics) Melder_monitor (0.0, U"Starting...");
@@ -113,8 +124,11 @@ void Minimizer_minimize (Minimizer me, long maxNumOfIterations, double tolerance
 		if (monitor) {
 			monitor_off (me);
 		}
-		if (my success) Melder_casual (U"Minimizer_minimize:", U" minimum ", my minimum, U" reached \nafter ", my iteration,
-			U" iterations and ", my funcCalls, U" function calls.");
+		if (my success) Melder_casual (U"Minimizer_minimize:",
+		                               U" minimum ", my minimum,
+		                               U" reached \nafter ", my iteration,
+									   U" iterations and ", my funcCalls,
+									   U" function calls.");
 	} catch (MelderError) {
 		if (monitor) {
 			monitor_off (me);    // temporarily until better monitor facilities
@@ -140,12 +154,12 @@ void Minimizer_minimizeManyTimes (Minimizer me, long numberOfTimes, long maxIter
 			NUMvector_copyElements (my p, popt.peek(), 1, my nParameters);
 			fopt = my minimum;
 		}
-		Minimizer_reset (me, nullptr);
+		Minimizer_reset (me, 0);
 		if (! monitorSingle) {
 			try {
-				Melder_progress ((double) i / numberOfTimes, i, U" from ", numberOfTimes);
+				Melder_progress ( (double) i / numberOfTimes, i, U" from ", numberOfTimes);
 			} catch (MelderError) {
-				Melder_clearError ();   // interrupted, no error
+				Melder_clearError ();   // interrurpt, no error
 				break;
 			}
 		}
@@ -156,14 +170,10 @@ void Minimizer_minimizeManyTimes (Minimizer me, long numberOfTimes, long maxIter
 	Minimizer_reset (me, popt.peek());
 }
 
-#if 0
-void Minimizer_setAfterEachIteration (Minimizer me, int (*afterHook) (Minimizer me, Thing afterBoss), Thing afterBoss);
-/* set the procedure that is executed after each iteration. */
-void Minimizer_setAfterEachIteration (Minimizer me, void (*afterHook) (Minimizer me, Thing afterBoss), Thing afterBoss) {
-	my afterHook = afterHook;
-	my afterBoss = afterBoss;
+static void Minimizer_setAfterEachIteration (Minimizer me, void (*after) (I, Any aclosure), Any aclosure) {
+	my after = after;
+	my aclosure = aclosure;
 }
-#endif
 
 void Minimizer_reset (Minimizer me, const double guess[]) {
 	if (guess) {
@@ -172,21 +182,30 @@ void Minimizer_reset (Minimizer me, const double guess[]) {
 		}
 	} else {
 		for (long i = 1; i <= my nParameters; i++) {
-			my p[i] = NUMrandomUniform (-1.0, 1.0);
+			my p[i] = NUMrandomUniform (-1, 1);
 		}
 	}
-
-	NUMvector_free<double> (my history, 1);
-	my history = nullptr;
+	/*
+		Don't use NUMdvector_free: realloc in Minimizer_minimize
+	*/
+	if (my history != 0) {
+		my history++;
+		Melder_free (my history);
+	}
 	my maxNumOfIterations = my success = my funcCalls = my iteration = 0;
 	my minimum = 1.0e38;
 	my v_reset ();
 }
 
-void Minimizer_drawHistory (Minimizer me, Graphics g, long iFrom, long iTo, double hmin, double hmax, int garnish) {
-	if (! my history) {
+void Minimizer_drawHistory (Minimizer me, Graphics g, long iFrom, long iTo, double hmin,
+                            double hmax, int garnish) {
+	if (my history == 0) {
 		return;
 	}
+	autoNUMvector<double> history (1, my iteration);
+	for (long i = 1; i <= my iteration; i++) {
+		history[i] = my history[i];
+	}
 	if (iTo <= iFrom) {
 		iFrom = 1; iTo = my iteration;
 	}
@@ -198,7 +217,7 @@ void Minimizer_drawHistory (Minimizer me, Graphics g, long iFrom, long iTo, doub
 		itmax = my iteration;
 	}
 	if (hmax <= hmin) {
-		NUMvector_extrema (my history, itmin, itmax, & hmin, & hmax);
+		NUMvector_extrema (history.peek(), itmin, itmax, & hmin, & hmax);
 	}
 	if (hmax <= hmin) {
 		hmin -= 0.5 * fabs (hmin);
@@ -206,13 +225,13 @@ void Minimizer_drawHistory (Minimizer me, Graphics g, long iFrom, long iTo, doub
 	}
 	Graphics_setInner (g);
 	Graphics_setWindow (g, iFrom, iTo, hmin, hmax);
-	Graphics_function (g, my history, itmin, itmax, itmin, itmax);
+	Graphics_function (g, history.peek(), itmin, itmax, itmin, itmax);
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Number of iterations");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Number of iterations");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
@@ -236,9 +255,9 @@ void structSteepestDescentMinimizer :: v_minimize () {
 		}
 		history[++iteration] = minimum = func (object, p);
 		success = 2.0 * fabs (fret - minimum) < tolerance * (fabs (fret) + fabs (minimum));
-		if (our afterHook) {
+		if (after) {
 			try {
-				our afterHook (this, our afterBoss);
+				after (this, aclosure);
 			} catch (MelderError) {
 				Melder_casual (U"Interrupted after ", iteration, U" iterations.");
 				Melder_clearError ();
@@ -252,13 +271,25 @@ void structSteepestDescentMinimizer :: v_minimize () {
 	}
 }
 
-autoSteepestDescentMinimizer SteepestDescentMinimizer_create (long nParameters, Daata object, double (*func) (Daata object, const double p[]), void (*dfunc) (Daata object, const double p[], double dp[])) {
+void structSteepestDescentMinimizer :: v_setParameters (Any parameters) {
+	if (p) {
+		SteepestDescentMinimizer_parameters thee = (SteepestDescentMinimizer_parameters) parameters;
+		eta = thy eta;
+		momentum = thy momentum;
+	} else {
+		eta = 0.1; momentum = 0.9;
+	}
+}
+
+SteepestDescentMinimizer SteepestDescentMinimizer_create (long nParameters, Data object,
+        double (*func) (Data object, const double p[]),
+        void (*dfunc) (Data object, const double p[], double dp[])) {
 	try {
 		autoSteepestDescentMinimizer me = Thing_new (SteepestDescentMinimizer);
-		Minimizer_init (me.get(), nParameters, object);
+		Minimizer_init (me.peek(), nParameters, object);
 		my func = func;
 		my dfunc = dfunc;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SteepestDescentMinimizer not created.");
 	}
@@ -270,7 +301,7 @@ Thing_implement (VDSmagtMinimizer, Minimizer, 0);
 
 void structVDSmagtMinimizer :: v_minimize () {
 	int decrease_direction_found = 1;
-	int l_iteration = 1;   // yes, we can iterate in steps, therefore local and global counter
+	int l_iteration = 1;   // David, dat is gevaarlijk: een locale variabele met dezelfde naam als een member; daarom hernoemd, maar is het correct? yes, we can iterate in steps, therefore local and global counter
 	double rtemp, rtemp2;
 
 	// df is estimate of function reduction obtainable during line search
@@ -303,7 +334,7 @@ void structVDSmagtMinimizer :: v_minimize () {
 		}
 		if (flag & 2) {
 			restart = 2; /* flag & 1 ??? */
-		} else if (fabs ((double) gcg0) > 0.2 * gopt_sq) {
+		} else if (fabs ( (double) gcg0) > 0.2 * gopt_sq) {
 			restart = 1;
 		}
 		if (restart == 0) {
@@ -400,10 +431,11 @@ void structVDSmagtMinimizer :: v_minimize () {
 				fch = fc - minimum;
 				gr2s = (grc - gropt) / dalpha;
 				temp = (fch + fch) / dalpha - grc - gropt;
-				if ((fc < minimum) || ((fc == minimum) && (grc / gropt > -1))) {
+				if ( (fc < minimum) ||
+				        ( (fc == minimum) && (grc / gropt > -1))) {
 					double *tmp;
 					gopt_sq = gsq;
-					history [this -> iteration] = minimum = fc;
+					history [this ->iteration] = minimum = fc;
 					tmp = p; p = pc; pc = tmp;
 					tmp = dp; dp = gc; gc = tmp;
 					if (grc *gropt <= 0) {
@@ -413,9 +445,9 @@ void structVDSmagtMinimizer :: v_minimize () {
 					gropt = grc;
 					dalpha = - dalpha;
 					success = gsq < tolerance;
-					if (our afterHook) {
+					if (after) {
 						try {
-							our afterHook (this, our afterBoss);
+							after (this, aclosure);
 						} catch (MelderError) {
 							Melder_casual (U"Interrupted after ", this -> iteration, U" iterations.");
 							Melder_clearError ();
@@ -431,7 +463,8 @@ void structVDSmagtMinimizer :: v_minimize () {
 				} else {
 					alplim = alpha;
 				}
-			} while (lineSearch_iteration <= lineSearchMaxNumOfIterations);
+			} while (lineSearch_iteration
+			         <= lineSearchMaxNumOfIterations);
 
 			fc = history [this -> iteration] = minimum;
 			rtemp = 0.0;
@@ -466,14 +499,14 @@ void structVDSmagtMinimizer :: v_minimize () {
 	}
 }
 
-void structVDSmagtMinimizer :: v_destroy () noexcept {
-	NUMvector_free<double> (dp, 1);
-	NUMvector_free<double> (pc, 1);
-	NUMvector_free<double> (gc, 1);
-	NUMvector_free<double> (g0, 1);
-	NUMvector_free<double> (s, 1);
-	NUMvector_free<double> (srst, 1);
-	NUMvector_free<double> (grst, 1);
+void structVDSmagtMinimizer :: v_destroy () {
+	NUMvector_free (dp, 1);
+	NUMvector_free (pc, 1);
+	NUMvector_free (gc, 1);
+	NUMvector_free (g0, 1);
+	NUMvector_free (s, 1);
+	NUMvector_free (srst, 1);
+	NUMvector_free (grst, 1);
 	VDSmagtMinimizer_Parent :: v_destroy ();
 }
 
@@ -481,10 +514,19 @@ void structVDSmagtMinimizer :: v_reset () {
 	restart_flag = 1;
 }
 
-autoVDSmagtMinimizer VDSmagtMinimizer_create (long nParameters, Daata object, double (*func) (Daata object, const double x[]), void (*dfunc) (Daata object, const double x[], double dx[])) {
+void structVDSmagtMinimizer :: v_setParameters (Any parameters) {
+	if (parameters) {
+		VDSmagtMinimizer_parameters  vdspars = (VDSmagtMinimizer_parameters) parameters;  // David, weer link: dezelfde naam,: Nu niet meer
+		lineSearchGradient = vdspars -> lineSearchGradient;
+		lineSearchMaxNumOfIterations = vdspars -> lineSearchMaxNumOfIterations;
+	}
+}
+
+VDSmagtMinimizer VDSmagtMinimizer_create (long nParameters, Data object, double (*func) (Data object, const double x[]),
+        void (*dfunc) (Data object, const double x[], double dx[])) {
 	try {
 		autoVDSmagtMinimizer me = Thing_new (VDSmagtMinimizer);
-		Minimizer_init (me.get(), nParameters, object);
+		Minimizer_init (me.peek(), nParameters, object);
 		my dp = NUMvector<double> (1, nParameters);
 		my pc = NUMvector<double> (1, nParameters);
 		my gc = NUMvector<double> (1, nParameters);
@@ -496,7 +538,7 @@ autoVDSmagtMinimizer VDSmagtMinimizer_create (long nParameters, Daata object, do
 		my dfunc = dfunc;
 		my lineSearchGradient = 0.9;
 		my lineSearchMaxNumOfIterations = 5;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"VDSmagtMinimizer not created.");
 	}
@@ -504,7 +546,7 @@ autoVDSmagtMinimizer VDSmagtMinimizer_create (long nParameters, Daata object, do
 
 /************ class LineMinimizer *******************************/
 
-void structLineMinimizer :: v_destroy () noexcept {
+void structLineMinimizer :: v_destroy () {
 	NUMvector_free (ptry, 1);
 	NUMvector_free (direction, 1);
 	LineMinimizer_Parent :: v_destroy ();
@@ -512,7 +554,8 @@ void structLineMinimizer :: v_destroy () noexcept {
 
 Thing_implement (LineMinimizer, Minimizer, 0);
 
-void LineMinimizer_init (LineMinimizer me, long nParameters, Daata object, double (*func) (Daata, const double [])) {
+void LineMinimizer_init (I, long nParameters, Data object, double (*func) (Data, const double [])) {
+	iam (LineMinimizer);
 	Minimizer_init (me, nParameters, object);
 	my direction = NUMvector<double> (1, nParameters);
 	my ptry = NUMvector<double> (1, nParameters);
diff --git a/dwtools/Minimizers.h b/dwtools/Minimizers.h
index a0bd1f2..953b6f9 100644
--- a/dwtools/Minimizers.h
+++ b/dwtools/Minimizers.h
@@ -2,7 +2,7 @@
 #define _Minimizers_h_
 /* Minimizers.h
  *
- * Copyright (C) 1993-2011,2015-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,26 +36,27 @@ Thing_define (Minimizer, Thing) {
 	double minimum;		/* current minimum */
 	double *history;	/* previous minima */
 	double tolerance;	/* stop criterium */
-	Daata object;		/* reference to the object that uses this Minimizer */
+	Data object;		/* reference to the object that uses this Minimizer */
 	long funcCalls;		/* the number of times 'func' has been called */
 	long success;		/* indicates whether I'm done */
 	long start;			/* start iteration series */
 	long maxNumOfIterations; /* the current maximum number of iterations */
 	long iteration;     /* the total number of iterations */
-	void (*afterHook) (Minimizer me, Thing boss); /* to be called after each iteration */
-	Thing afterBoss;
+	void (*after) (I, Any aclosure); /* to be called after each iteration */
+	Any aclosure;
 	Graphics gmonitor;		/* graphics to monitor the minimization process */
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override { }
 
 	virtual void v_minimize () { }  /* does the work */
 	virtual void v_reset () { } /* reset the minimizer */
+	virtual void v_setParameters (Any parameters) { (void) parameters; }
 };
 
-void Minimizer_init (Minimizer me, long nParameters, Daata object);
+void Minimizer_init (I, long nParameters, Data object);
 /*
 	Preconditions:
 		nParameters > 0;
@@ -74,7 +75,14 @@ void Minimizer_reset (Minimizer me, const double guess[]);
  *    reset (me);
  */
 
-void Minimizer_minimize (Minimizer me, long maxNumOfIterations, double tolerance, int monitor);
+void Minimizer_setAfterEachIteration (Minimizer me, int (*after) (I, Any aclosure),
+	Any aclosure);
+/* set the procedure that is executed after each iteration. */
+
+void Minimizer_setParameters (Minimizer me, Any parameters); /* for inheritors */
+
+void Minimizer_minimize (Minimizer me, long maxNumOfIterations, double tolerance,
+	int monitor);
 /* Minimizes during maximally maxNumOfIterations. The gmonitor is initialized
  * before minimization and cleared afterwards.
  * Preconditions:
@@ -86,28 +94,33 @@ void Minimizer_minimize (Minimizer me, long maxNumOfIterations, double tolerance
  *    after each iteration: iteration++
  */
 
-void Minimizer_minimizeManyTimes (Minimizer me, long numberOfTimes, long maxIterationsPerTime, double tolerance);
+void Minimizer_minimizeManyTimes (Minimizer me, long numberOfTimes, long maxIterationsPerTime,
+	double tolerance);
 
-void Minimizer_drawHistory (Minimizer me, Graphics g, long itmin, long itmax, double minimum, double maximum, int garnish);
+void Minimizer_drawHistory (Minimizer me, Graphics g, long itmin, long itmax,
+    double minimum, double maximum, int garnish);
 
 double Minimizer_getMinimum (Minimizer me);
 
 /********** deferred class LineMinimizer ************************************/
 
 Thing_define (LineMinimizer, Minimizer) {
-	/* the function to be minimized */
-	double (*func) (Daata object, const double p[]);
-	double maxLineStep;	/*maximum step in line search direction */
-	double *direction;	/* search direction vector */
-	double *ptry;		/* point in search direction */
-
-	void v_destroy () noexcept
-		override;
-
-	//virtual void v_linmin (double p[], double fp, double direction[], double *fret);	 // David, is dit correct? ja
+	// new data:
+	public:
+		/* the function to be minimized */
+		double (*func) (Data object, const double p[]);
+		double maxLineStep;	/*maximum step in line search direction */
+		double *direction;	/* search direction vector */
+		double *ptry;		/* point in search direction */
+	// overridden methods:
+		virtual void v_destroy ();
+	// new methods:
+		//virtual void v_linmin (double p[], double fp, double direction[], double *fret);	 // David, is dit correct? ja
 };
 
-void LineMinimizer_init (LineMinimizer me, long nParameters, Daata object, double (*func) (Daata object, const double p[]));
+void LineMinimizer_init (I, long nParameters, Data object, double (*func)
+	(Data object, const double p[]));
+
 
 /******************  class SteepestDescentMinimizer**************************/
 
@@ -116,16 +129,20 @@ typedef struct structSteepestDescentMinimizer_parameters {
 } *SteepestDescentMinimizer_parameters;
 
 Thing_define (SteepestDescentMinimizer, Minimizer) {
-	double eta, momentum;
-	double (*func) (Daata object, const double p[]);
-	void  (*dfunc) (Daata object, const double p[], double dp[]);
-	/* calculates gradient at position p */
-
-	void v_minimize ()
-		override;
+	// new data:
+	public:
+		double eta, momentum;
+		double (*func) (Data object, const double p[]);
+		void  (*dfunc) (Data object, const double p[], double dp[]);
+		/* calculates gradient at position p */
+	// overridden methods:
+		virtual void v_minimize ();
+		virtual void v_setParameters (Any parameters);
 };
 
-autoSteepestDescentMinimizer SteepestDescentMinimizer_create (long nParameters, Daata object, double (*func) (Daata object, const double p[]), void (*dfunc) (Daata object, const double p[], double dp[]));
+SteepestDescentMinimizer SteepestDescentMinimizer_create (long nParameters, Data object, double (*func)
+	(Data object, const double p[]), void (*dfunc) (Data object, const double p[],
+	double dp[]));
 
 
 /**********  class VDSmagtMinimizer ********************************/
@@ -136,31 +153,33 @@ typedef struct structVDSmagtMinimizer_parameters {
 } *VDSmagtMinimizer_parameters;
 
 Thing_define (VDSmagtMinimizer, Minimizer) {
-	double (*func) (Daata object, const double p[]);
-	void  (*dfunc) (Daata object, const double p[], double dp[]);
-	double *dp;
-	double lineSearchGradient;
-	long lineSearchMaxNumOfIterations;
-	double gr0, gropt, df, alplim, alpha, dalpha, alphamin;
-	double *pc;	/* position of current point */
-	double *gc;	/* gradient of current point */
-	double *g0;	/* gradient at beginning of line search */
-	double *s;	/* search direction for line search */
-	double *srst;/* search direction for first iteration after restart */
-	double *grst; /* gradient for first iteration after restart */
-	double fc, grc, fch, gr2s, temp, grs, beta, gcg0;
-	double gamma, gamma_in, f0, gsq, gopt_sq;
-	long lineSearch_iteration, flag, again, one_up, restart;
-	long restart_flag;
-
-	void v_destroy () noexcept
-		override;
-	void v_minimize ()
-		override;
-	void v_reset ()
-		override;
+	// new data:
+	public:
+		double (*func) (Data object, const double p[]);
+		void  (*dfunc) (Data object, const double p[], double dp[]);
+		double *dp;
+		double lineSearchGradient;
+		long lineSearchMaxNumOfIterations;
+		double gr0, gropt, df, alplim, alpha, dalpha, alphamin;
+		double *pc;	/* position of current point */
+		double *gc;	/* gradient of current point */
+		double *g0;	/* gradient at beginning of line search */
+		double *s;	/* search direction for line search */
+		double *srst;/* search direction for first iteration after restart */
+		double *grst; /* gradient for first iteration after restart */
+		double fc, grc, fch, gr2s, temp, grs, beta, gcg0;
+		double gamma, gamma_in, f0, gsq, gopt_sq;
+		long lineSearch_iteration, flag, again, one_up, restart;
+		long restart_flag;
+	// overridden methods:
+		virtual void v_destroy ();
+		virtual void v_minimize ();
+		virtual void v_reset ();
+		virtual void v_setParameters (Any parameters);
 };
 
-autoVDSmagtMinimizer VDSmagtMinimizer_create (long dimension, Daata object, double (*func) (Daata object, const double p[]), void (*dfunc) (Daata object, const double p[], double dp[]));
+VDSmagtMinimizer VDSmagtMinimizer_create (long dimension, Data object, double (*func)
+	(Data object, const double p[]), void (*dfunc) (Data object, const double p[],
+	double dp[]));
 
 #endif /* _Minimizer_h_ */
diff --git a/dwtools/OptimalCeilingTier.cpp b/dwtools/OptimalCeilingTier.cpp
index 25e7c4e..0b96e42 100644
--- a/dwtools/OptimalCeilingTier.cpp
+++ b/dwtools/OptimalCeilingTier.cpp
@@ -21,11 +21,11 @@
 
 Thing_implement (OptimalCeilingTier, RealTier, 0);
 
-autoOptimalCeilingTier OptimalCeilingTier_create (double tmin, double tmax) {
+OptimalCeilingTier OptimalCeilingTier_create (double tmin, double tmax) {
 	try {
 		autoOptimalCeilingTier me = Thing_new (OptimalCeilingTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"OptimalCeilingTier not created.");
 	}
@@ -37,9 +37,8 @@ void OptimalCeilingTier_draw (OptimalCeilingTier me, Graphics g, double tmin, do
 	RealTier_draw (me, g, tmin, tmax, ymin, ymax, garnish, method, U"Sound pressure (Pa)");
 }
 
-autoTableOfReal OptimalCeilingTier_downto_TableOfReal (OptimalCeilingTier me) {
-	autoTableOfReal thee = RealTier_downto_TableOfReal (me, U"Time (s)", U"Frequency (Hz)");
-	return thee;
+TableOfReal OptimalCeilingTier_downto_TableOfReal (OptimalCeilingTier me) {
+	return RealTier_downto_TableOfReal (me, U"Time (s)", U"Frequency (Hz)");
 }
 
 /* End of file OptimalCeilingTier.cpp */
diff --git a/dwtools/OptimalCeilingTier.h b/dwtools/OptimalCeilingTier.h
index d17edf1..7cb61b0 100644
--- a/dwtools/OptimalCeilingTier.h
+++ b/dwtools/OptimalCeilingTier.h
@@ -30,12 +30,12 @@ Thing_define (OptimalCeilingTier, RealTier) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoOptimalCeilingTier OptimalCeilingTier_create (double tmin, double tmax);
+OptimalCeilingTier OptimalCeilingTier_create (double tmin, double tmax);
 
 void OptimalCeilingTier_draw (OptimalCeilingTier me, Graphics g, double tmin, double tmax,
 	double ymin, double ymax, const char32 *method, int garnish);
 
-autoTableOfReal OptimalCeilingTier_downto_TableOfReal (OptimalCeilingTier me);
+TableOfReal OptimalCeilingTier_downto_TableOfReal (OptimalCeilingTier me);
 
 /* End of file OptimalCeilingTier.h */
 #endif
diff --git a/dwtools/OptimalCeilingTierEditor.cpp b/dwtools/OptimalCeilingTierEditor.cpp
index 1aec69b..843776f 100644
--- a/dwtools/OptimalCeilingTierEditor.cpp
+++ b/dwtools/OptimalCeilingTierEditor.cpp
@@ -22,7 +22,7 @@
 
 Thing_implement (OptimalCeilingTierEditor, RealTierEditor, 0);
 
-static void menu_cb_OptimalCeilingTierHelp (OptimalCeilingTierEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"OptimalCeilingTier"); }
+static void menu_cb_OptimalCeilingTierHelp (EDITOR_ARGS) { EDITOR_IAM (OptimalCeilingTierEditor); Melder_help (U"OptimalCeilingTier"); }
 
 void structOptimalCeilingTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	OptimalCeilingTierEditor_Parent :: v_createHelpMenuItems (menu);
@@ -33,15 +33,15 @@ void structOptimalCeilingTierEditor :: v_play (double fromTime, double toTime) {
 	if (our d_sound.data) {
 		Sound_playPart (our d_sound.data, fromTime, toTime, theFunctionEditor_playCallback, this);
 	} else {
-		//OptimalCeilingTier_playPart (data, fromTime, toTime, false);
+		//OptimalCeilingTier_playPart (data, fromTime, toTime, FALSE);
 	}
 }
 
-autoOptimalCeilingTierEditor OptimalCeilingTierEditor_create (const char32 *title, OptimalCeilingTier octier, Sound sound, bool ownSound) {
+OptimalCeilingTierEditor OptimalCeilingTierEditor_create (const char32 *title, OptimalCeilingTier octier, Sound sound, bool ownSound) {
 	try {
 		autoOptimalCeilingTierEditor me = Thing_new (OptimalCeilingTierEditor);
-		RealTierEditor_init (me.get(), title, (RealTier) octier, sound, ownSound);
-		return me;
+		RealTierEditor_init (me.peek(), title, (RealTier) octier, sound, ownSound);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"OptimalCeilingTier window not created.");
 	}
diff --git a/dwtools/OptimalCeilingTierEditor.h b/dwtools/OptimalCeilingTierEditor.h
index 67ad0b7..85fec37 100644
--- a/dwtools/OptimalCeilingTierEditor.h
+++ b/dwtools/OptimalCeilingTierEditor.h
@@ -54,9 +54,9 @@ Thing_define (OptimalCeilingTierEditor, RealTierEditor) {
 		override { return U"Maximum frequency"; }
 };
 
-autoOptimalCeilingTierEditor OptimalCeilingTierEditor_create (const char32 *title,
+OptimalCeilingTierEditor OptimalCeilingTierEditor_create (const char32 *title,
 	OptimalCeilingTier amplitude,
-	Sound sound,   // may be null
+	Sound sound,   // may be NULL
 	bool ownSound);
 
 /* End of file OptimalCeilingTierEditor.h */
diff --git a/dwtools/PCA.cpp b/dwtools/PCA.cpp
index 6914e3a..289d2e0 100644
--- a/dwtools/PCA.cpp
+++ b/dwtools/PCA.cpp
@@ -2,7 +2,7 @@
  *
  * Principal Component Analysis
  *
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,14 +33,13 @@
   djmw 20110304 Thing_new
 */
 
-#include "Configuration.h"
-#include "Eigen_and_SSCP.h"
-#include "Eigen_and_TableOfReal.h"
-#include "Matrix_extensions.h"
+#include "PCA.h"
 #include "NUMlapack.h"
 #include "NUM2.h"
-#include "PCA.h"
 #include "TableOfReal_extensions.h"
+#include "Eigen_and_SSCP.h"
+#include "Eigen_and_TableOfReal.h"
+#include "Configuration.h"
 
 #include "oo_DESTROY.h"
 #include "PCA_def.h"
@@ -64,19 +63,19 @@
 Thing_implement (PCA, Eigen, 0);
 
 void structPCA :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of components: ", numberOfEigenvalues);
 	MelderInfo_writeLine (U"Number of dimensions: ", dimension);
 	MelderInfo_writeLine (U"Number of observations: ", numberOfObservations);
 }
 
-autoPCA PCA_create (long numberOfComponents, long dimension) {
+PCA PCA_create (long numberOfComponents, long dimension) {
 	try {
 		autoPCA me = Thing_new (PCA);
-		Eigen_init (me.get(), numberOfComponents, dimension);
+		Eigen_init (me.peek(), numberOfComponents, dimension);
 		my labels = NUMvector<char32 *> (1, dimension);
 		my centroid = NUMvector<double> (1, dimension);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PCA not created");
 	}
@@ -90,91 +89,82 @@ long PCA_getNumberOfObservations (PCA me) {
 	return my numberOfObservations;
 }
 
-void PCA_getEqualityOfEigenvalues (PCA me, long from, long to, int conservative, double *p_prob, double *p_chisq, double *p_df) {
+void PCA_getEqualityOfEigenvalues (PCA me, long from, long to, int conservative, double *probability, double *chisq, long *ndf) {
 	double sum = 0, sumln = 0;
 
-	double prob = NUMundefined, df = NUMundefined, chisq = NUMundefined;
-	
-	if (from == 0 && to == 0) {
-		to = 1; from = my numberOfEigenvalues;
+	*probability = 1;
+	*ndf = 0;
+	*chisq = 0;
+
+	if ( (from > 0 && to == from) || to > my numberOfEigenvalues) {
+		return;
 	}
-	if (from < to && from > 0 && to <= my numberOfEigenvalues) {
-		long i;
-		for (i = from; i <= to; i++) {
-			if (my eigenvalues[i] <= 0) {
-				break;
-			}
-			sum += my eigenvalues[i];
-			sumln += log (my eigenvalues[i]);
-		}
-		if (sum == 0) {
-			return;
-		}
-		long r = i - from;
-		long n = my numberOfObservations - 1;
-		if (conservative) {
-			n -= from + (r * (2 * r + 1) + 2) / (6 * r);
-		}
 
-		df = r * (r + 1) / 2 - 1;
-		chisq = n * (r * log (sum / r) - sumln);
-		prob = NUMchiSquareQ (chisq, df);
+	if (to <= from) {
+		from = 1;
+		to = my numberOfEigenvalues;
 	}
-	if (p_prob) {
-		*p_prob = prob;
+	long i;
+	for (i = from; i <= to; i++) {
+		if (my eigenvalues[i] <= 0) {
+			break;
+		}
+		sum += my eigenvalues[i];
+		sumln += log (my eigenvalues[i]);
 	}
-	if (p_chisq) {
-		*p_chisq = chisq;
+	if (sum == 0) {
+		return;
 	}
-	if (p_df) {
-		*p_df = df;
+	long r = i - from;
+	long n = my numberOfObservations - 1;
+	if (conservative) {
+		n -= from + (r * (2 * r + 1) + 2) / (6 * r);
 	}
-}
 
-/* the low level routines 
- * 
- * The matrix M[numberOfRows, numberOfColumns] is interpreted as 'numberOfRows' vectors of dimension 'numberOfColumns'
- * The eigenstructure of the M'M will be calculated
- * 
- */
+	*ndf = r * (r + 1) / 2 - 1;
+	*chisq = n * (r * log (sum / r) - sumln);
+	*probability = NUMchiSquareQ (*chisq, *ndf);
+}
 
-static autoPCA NUMdmatrix_to_PCA (double **m, long numberOfRows, long numberOfColumns, bool byColumns) {
+PCA TableOfReal_to_PCA (I) {
+	iam (TableOfReal);
 	try {
-		if (! NUMdmatrix_hasFiniteElements(m, 1, numberOfRows, 1, numberOfColumns)) {
-			Melder_throw (U"At least one of the matrix elements is not finite or undefined.");
+		long m = my numberOfRows, n = my numberOfColumns;
+
+		if (! TableOfReal_areAllCellsDefined (me, 0, 0, 0, 0)) {
+			Melder_throw (U"Undefined cells.");
 		}
-		if (NUMfrobeniusnorm (numberOfRows, numberOfColumns, m) == 0.0) {
+
+		if (m < 2) Melder_throw (U"There is not enough data to perform a PCA.\n"
+			                         "Your table has less than 2 rows.");
+
+		if (m < n) Melder_warning (U"The number of rows in your table is less than the\n"
+			                           "number of columns. ");
+
+		if (NUMfrobeniusnorm (m, n, my data) == 0) {
 			Melder_throw (U"All values in your table are zero.");
 		}
-		autoNUMmatrix<double> mcopy;
-		long numberOfRows2, numberOfColumns2;
-		if (byColumns) {
-			if (numberOfColumns < numberOfRows) {
-				Melder_warning (U"The number of columns in your table is less than the number of rows. ");
-			}
-			numberOfRows2 = numberOfColumns, numberOfColumns2 = numberOfRows;
-			mcopy.reset (1, numberOfRows2, 1, numberOfColumns2);
-			for (long i = 1; i <= numberOfRows2; i ++) { // transpose
-				for (long j = 1; j <= numberOfColumns2; j++) {
-					mcopy [i] [j] = m [j] [i];
-				}
+		autoPCA thee = Thing_new (PCA);
+		autoNUMmatrix<double> a (NUMmatrix_copy (my data, 1, m, 1, n), 1, 1);
+		thy centroid = NUMvector<double> (1, n);
+
+		for (long j = 1; j <= n; j++) {
+			double colmean = a[1][j];
+			for (long i = 2; i <= m; i++) {
+				colmean += a[i][j];
 			}
-		} else {
-			if (numberOfRows < numberOfColumns) {
-				Melder_warning (U"The number of rows in your table is less than the number of columns. ");
+			colmean /= m;
+			for (long i = 1; i <= m; i++) {
+				a[i][j] -= colmean;
 			}
-			numberOfRows2 = numberOfRows, numberOfColumns2 = numberOfColumns;
-			mcopy.reset (1, numberOfRows2, 1, numberOfColumns2);
-			NUMmatrix_copyElements<double>(m, mcopy.peek(), 1, numberOfRows2, 1, numberOfColumns2);
+			thy centroid[j] = colmean;
 		}
-		
-		autoPCA thee = Thing_new (PCA);
-		thy centroid = NUMvector<double> (1, numberOfColumns2);
-		NUMcentreColumns (mcopy.peek(), 1, numberOfRows2, 1, numberOfColumns2, thy centroid);
-		Eigen_initFromSquareRoot (thee.get(), mcopy.peek(), numberOfRows2, numberOfColumns2);
-		thy labels = NUMvector<char32 *> (1, numberOfColumns2);
+		Eigen_initFromSquareRoot (thee.peek(), a.peek(), m, n);
+		thy labels = NUMvector<char32 *> (1, n);
 
-		PCA_setNumberOfObservations (thee.get(), numberOfRows2);
+		NUMstrings_copyElements (my columnLabels, thy labels, 1, n);
+
+		PCA_setNumberOfObservations (thee.peek(), m);
 
 		/*
 			The covariance matrix C = A'A / (N-1). However, we have calculated
@@ -183,43 +173,15 @@ static autoPCA NUMdmatrix_to_PCA (double **m, long numberOfRows, long numberOfCo
 		*/
 
 		for (long i = 1; i <= thy numberOfEigenvalues; i++) {
-			thy eigenvalues [i] /= (numberOfRows2 - 1);
+			thy eigenvalues[i] /= (m - 1);
 		}
-		return thee;
-	} catch (MelderError) {
-		Melder_throw (U"No PCA created from ", byColumns ? U"columns." : U"rows.");
-	}	
-}
-
-autoPCA TableOfReal_to_PCA_byRows (TableOfReal me) {
-	try {
-		autoPCA thee = NUMdmatrix_to_PCA (my data, my numberOfRows, my numberOfColumns, false);
-		NUMstrings_copyElements (my columnLabels, thy labels, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": PCA not created.");
 	}
 }
 
-autoPCA Matrix_to_PCA_byColumns (Matrix me) {
-	try {
-		autoPCA thee = NUMdmatrix_to_PCA (my z, my ny, my nx, true);
-		return thee;
-	} catch (MelderError) {
-		Melder_throw (me, U": no PCA created from columns.");
-	}
-}
-
-autoPCA Matrix_to_PCA_byRows (Matrix me) {
-	try {
-		autoPCA thee = NUMdmatrix_to_PCA (my z, my ny, my nx, false);
-		return thee;
-	} catch (MelderError) {
-		Melder_throw (me, U": no PCA created from rows.");
-	}
-}
-
-autoTableOfReal PCA_and_TableOfReal_to_TableOfReal_zscores (PCA me, TableOfReal thee, long numberOfDimensions) {
+TableOfReal PCA_and_TableOfReal_to_TableOfReal_zscores (PCA me, TableOfReal thee, long numberOfDimensions) {
 	try {
 		if (numberOfDimensions == 0 || numberOfDimensions > my numberOfEigenvalues) {
 			numberOfDimensions = my numberOfEigenvalues;
@@ -236,46 +198,35 @@ autoTableOfReal PCA_and_TableOfReal_to_TableOfReal_zscores (PCA me, TableOfReal
 			}
 		}
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, thy numberOfRows);
-		TableOfReal_setSequentialColumnLabels (him.get(), 0, 0, U"pc", 1, 1);
-		return him;
+		TableOfReal_setSequentialColumnLabels (him.peek(), 0, 0, U"pc", 1, 1);
+		return him.transfer();
+
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal (zscores) not created from PCA & TableOfReal.");
 	}
 }
 
-autoTableOfReal PCA_and_TableOfReal_to_TableOfReal_projectRows (PCA me, TableOfReal thee, long numberOfDimensionsToKeep) {
+Configuration PCA_and_TableOfReal_to_Configuration (PCA me, thou, long numberOfDimensions) {
 	try {
-		if (numberOfDimensionsToKeep == 0 || numberOfDimensionsToKeep > my numberOfEigenvalues) {
-			numberOfDimensionsToKeep = my numberOfEigenvalues;
+		thouart (TableOfReal);
+		if (numberOfDimensions == 0 || numberOfDimensions > my numberOfEigenvalues) {
+			numberOfDimensions = my numberOfEigenvalues;
 		}
 
-		autoTableOfReal him = TableOfReal_create (thy numberOfRows, numberOfDimensionsToKeep);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (me, thee, 1, him.get(), 1, numberOfDimensionsToKeep);
+		autoConfiguration him = Configuration_create (thy numberOfRows, numberOfDimensions);
+		Configuration thim = him.peek();
+		Eigen_and_TableOfReal_project_into (me, thee, 1, thy numberOfColumns, & thim, 1, numberOfDimensions);
 		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, thy numberOfRows);
-		TableOfReal_setSequentialColumnLabels (him.get(), 0, 0, U"pc", 1, 1);
-		return him;
-	} catch (MelderError) {
-		Melder_throw (U"TableOfReal not created from PCA & TableOfReal.");
-	}
-}
-
-autoConfiguration PCA_and_TableOfReal_to_Configuration (PCA me, TableOfReal thee, long numberOfDimensionsToKeep) {
-	try {
-		if (numberOfDimensionsToKeep == 0 || numberOfDimensionsToKeep > my numberOfEigenvalues) {
-			numberOfDimensionsToKeep = my numberOfEigenvalues;
-		}
-		autoConfiguration him = Configuration_create (thy numberOfRows, numberOfDimensionsToKeep);
-		Eigen_and_TableOfReal_into_TableOfReal_projectRows (me, thee, 1, him.get(), 1, numberOfDimensionsToKeep);
-		NUMstrings_copyElements (thy rowLabels, his rowLabels, 1, thy numberOfRows);
-		TableOfReal_setSequentialColumnLabels (him.get(), 0, 0, U"pc", 1, 1);
-		return him;
+		TableOfReal_setSequentialColumnLabels (him.peek(), 0, 0, U"pc", 1, 1);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Configuration not created from PCA & TableOfReal.");
 	}
 }
 
-autoTableOfReal PCA_and_Configuration_to_TableOfReal_reconstruct (PCA me, Configuration thee) {
+TableOfReal PCA_and_Configuration_to_TableOfReal_reconstruct (PCA me, thou) {
 	try {
+		thouart (Configuration);
 		long npc = thy numberOfColumns;
 
 		if (thy numberOfColumns > my dimension) {
@@ -299,14 +250,15 @@ autoTableOfReal PCA_and_Configuration_to_TableOfReal_reconstruct (PCA me, Config
 				}
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not reconstructed.");
 	}
 }
 
-double PCA_and_TableOfReal_getFractionVariance (PCA me, TableOfReal thee, long from, long to) {
+double PCA_and_TableOfReal_getFractionVariance (PCA me, thou, long from, long to) {
 	try {
+		thouart (TableOfReal);
 		double fraction = NUMundefined;
 
 		if (from < 1 || from > to || to > thy numberOfColumns) {
@@ -314,15 +266,15 @@ double PCA_and_TableOfReal_getFractionVariance (PCA me, TableOfReal thee, long f
 		}
 
 		autoSSCP s = TableOfReal_to_SSCP (thee, 0, 0, 0, 0);
-		autoSSCP sp = Eigen_and_SSCP_project (me, s.get());
-		fraction = SSCP_getFractionVariation (sp.get(), from, to);
+		autoSSCP sp = Eigen_and_SSCP_project (me, s.peek());
+		fraction = SSCP_getFractionVariation (sp.peek(), from, to);
 		return fraction;
 	} catch (MelderError) {
 		return NUMundefined;
 	}
 }
 
-autoTableOfReal PCA_to_TableOfReal_reconstruct1 (PCA me, char32 *numstring) {
+TableOfReal PCA_to_TableOfReal_reconstruct1 (PCA me, char32 *numstring) {
 	try {
 		long npc;
 		autoNUMvector<double> pc (NUMstring_to_numbers (numstring, & npc), 1);
@@ -331,11 +283,12 @@ autoTableOfReal PCA_to_TableOfReal_reconstruct1 (PCA me, char32 *numstring) {
 		for (long j = 1; j <= npc; j++) {
 			c -> data [1][j] = pc[j];
 		}
-		autoTableOfReal him = PCA_and_Configuration_to_TableOfReal_reconstruct (me, c.get());
-		return him;
+		autoTableOfReal him = PCA_and_Configuration_to_TableOfReal_reconstruct (me, c.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" not reconstructed.");
 	}
 }
 
+
 /* End of file PCA.cpp */
diff --git a/dwtools/PCA.h b/dwtools/PCA.h
index 46d9176..e197162 100644
--- a/dwtools/PCA.h
+++ b/dwtools/PCA.h
@@ -4,7 +4,7 @@
  *
  * Principal Component Analysis
  * 
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,45 +27,38 @@
 */
 
 
-#include "Matrix.h"
 #include "TableOfReal.h"
 #include "Configuration.h"
 #include "Eigen.h"
 
 #include "PCA_def.h"
+oo_CLASS_CREATE (PCA, Eigen);
 
-autoPCA PCA_create (long numberOfComponents, long dimension);
+PCA PCA_create (long numberOfComponents, long dimension);
 
 void PCA_setNumberOfObservations (PCA me, long numberOfObservations);
-
 long PCA_getNumberOfObservations (PCA me);
 
-autoPCA TableOfReal_to_PCA_byRows (TableOfReal me);
-
+PCA TableOfReal_to_PCA (I);
 /* Calculate PCA of M'M */
 
-autoPCA Matrix_to_PCA_byRows (Matrix me);
-autoPCA Matrix_to_PCA_byColumns (Matrix me);
-/* Calculate PCA of M'M */
-
-void PCA_getEqualityOfEigenvalues (PCA me, long from, long to, int conservative, double *prob, double *chisq, double *df);
+void PCA_getEqualityOfEigenvalues (PCA me, long from, long to, int conservative,
+	double *probability, double *chisq, long *ndf);
 /* Morrison, Multivariate statistical methods, page 336 */
 
-autoTableOfReal PCA_and_TableOfReal_to_TableOfReal_projectRows (PCA me, TableOfReal thee, long numberOfDimensionsToKeep);
-autoConfiguration PCA_and_TableOfReal_to_Configuration (PCA me, TableOfReal thee, long numberOfDimensions);
-
-autoTableOfReal PCA_and_TableOfReal_to_TableOfReal_zscores (PCA me, TableOfReal thee, long numberOfDimensions);
+Configuration PCA_and_TableOfReal_to_Configuration (PCA me, thou, long numberOfDimensions);
+TableOfReal PCA_and_TableOfReal_to_TableOfReal_zscores (PCA me, TableOfReal thee, long numberOfDimensions);
 
-double PCA_and_TableOfReal_getFractionVariance (PCA me, TableOfReal thee, long from, long to);
+double PCA_and_TableOfReal_getFractionVariance (PCA me, thou, long from, long to);
 /*	Get fraction variance of the table projected in the pca-space.
 	Shorthand for projecting the Covariance of the TableOfReal on the PCA-space
 	and quering the projected Covariance for 'fraction variance'.
 */
 
-autoTableOfReal PCA_and_Configuration_to_TableOfReal_reconstruct (PCA me, Configuration thee);
+TableOfReal PCA_and_Configuration_to_TableOfReal_reconstruct (PCA me, thou);
 /* Reconstruct the original TableOfReal from the PCA and the Configuration */
 
-autoTableOfReal PCA_to_TableOfReal_reconstruct1 (PCA me, char32 *numstring);
+TableOfReal PCA_to_TableOfReal_reconstruct1 (PCA me, char32 *numstring);
 
 #endif /* _PCA_h_ */
 
diff --git a/dwtools/Pattern.cpp b/dwtools/Pattern.cpp
index 5c3dba6..b5ffb6d 100644
--- a/dwtools/Pattern.cpp
+++ b/dwtools/Pattern.cpp
@@ -1,6 +1,6 @@
 /* Pattern.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,11 +45,11 @@ void Pattern_init (Pattern me, long ny, long nx) {
 	Matrix_init (me, 1, nx, nx, 1, 1, 1, ny, ny, 1, 1);
 }
 
-autoPattern Pattern_create (long ny, long nx) {
+Pattern Pattern_create (long ny, long nx) {
 	try {
 		autoPattern me = Thing_new (Pattern);
-		Pattern_init (me.get(), ny, nx);
-		return me;
+		Pattern_init (me.peek(), ny, nx);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Pattern not created.");
 	}
@@ -86,12 +86,12 @@ void Pattern_draw (Pattern me, Graphics g, long pattern, double xmin, double xma
 	Matrix_drawRows (me, g, xmin, xmax, pattern - 0.5, pattern + 0.5, ymin, ymax);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-autoPattern Matrix_to_Pattern (Matrix me, int join) {
+Pattern Matrix_to_Pattern (Matrix me, int join) {
 	try {
 		if (join < 1) {
 			join = 1;
@@ -112,17 +112,17 @@ autoPattern Matrix_to_Pattern (Matrix me, int join) {
 				thy z[r][c++] = my z[i][j];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not converted to Pattern.");
+		Melder_throw (me, U": no Pattern created.");
 	}
 }
 
-autoMatrix Pattern_to_Matrix (Pattern me) {
+Matrix Pattern_to_Matrix (Pattern me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/dwtools/Pattern.h b/dwtools/Pattern.h
index f849b91..d0c799c 100644
--- a/dwtools/Pattern.h
+++ b/dwtools/Pattern.h
@@ -39,7 +39,7 @@ Thing_define (Pattern, Matrix) {
 
 void Pattern_init (Pattern me, long ny, long nx);
 
-autoPattern Pattern_create (long ny, long nx);
+Pattern Pattern_create (long ny, long nx);
 
 void Pattern_normalize (Pattern me, int choice, double pmin, double pmax);
 /* choice == 1: z[i][j] = (z[i][j]-pmin) / (pmax-pmin);
@@ -49,9 +49,8 @@ void Pattern_normalize (Pattern me, int choice, double pmin, double pmax);
 void Pattern_draw (Pattern me, Graphics g, long pattern, double xmin, double xmax,
 	double ymin, double ymax, int garnish);
 
-autoPattern Matrix_to_Pattern (Matrix me, int join);
-
-autoMatrix Pattern_to_Matrix (Pattern me);
+Pattern Matrix_to_Pattern (Matrix me, int join);
+Matrix Pattern_to_Matrix (Pattern me);
 
 int _Pattern_checkElements (Pattern me);
 /* Return 1 if all elements are in interval [0,1] else 0. */
diff --git a/dwtools/Pitch_extensions.cpp b/dwtools/Pitch_extensions.cpp
index 849f024..04dbb48 100644
--- a/dwtools/Pitch_extensions.cpp
+++ b/dwtools/Pitch_extensions.cpp
@@ -1,6 +1,6 @@
 /* Pitch_extensions.cpp
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,45 +28,39 @@
 
 void Pitch_Frame_addPitch (Pitch_Frame me, double f, double strength, int maxnCandidates) {
 	long pos = 0;
-	double weakest = 1e308;
+	double weakest = 1e38;
 	if (my nCandidates < maxnCandidates) {
 		pos = ++ my nCandidates;
 	} else {
-		// Find weakest candidate so far (skip the unvoiced one)
-		for (long i = 1; i <= maxnCandidates; i++) {
-			if (my candidate[i].strength < weakest && my candidate[i].frequency > 0) {
+		/* Find weakest candidate so far (skip the unvoiced one) */
+		for (long i = 1; i <= maxnCandidates; i++) if (my candidate[i].strength < weakest &&
+			        my candidate[i].frequency > 0) {
 				weakest = my candidate[i].strength;
 				pos = i;
 			}
-		}
 		if (strength < weakest) {
 			pos = 0;
 		}
 	}
-	if (pos > 0) {
+	if (pos) {
 		my candidate[pos].frequency = f;
 		my candidate[pos].strength = strength;
 	}
 }
 
-void Pitch_Frame_getPitch (Pitch_Frame me, double *f, double *p_strength) {
+void Pitch_Frame_getPitch (Pitch_Frame me, double *f, double *strength) {
 	long pos = 1;
-	double strength = -1.0;
-	for (long i = 1; i <= my nCandidates; i++) {
-		if (my candidate[i].strength > strength && my candidate[i].frequency > 0) {
-			strength = my candidate[i].strength;
+	*strength = -1;
+	for (long i = 1; i <= my nCandidates; i++) if (my candidate[i].strength > *strength &&
+		        my candidate[i].frequency > 0) {
+			*strength = my candidate[i].strength;
 			pos = i;
 		}
-	}
-	if (f) {
-		*f = my candidate[pos].frequency;
-	}
-	if (p_strength) {
-		*p_strength = strength;
-	}
+	*f = my candidate[pos].frequency;
 }
 
-void Pitch_Frame_resizeStrengths (Pitch_Frame me, double maxStrength, double unvoicedCriterium) {
+void Pitch_Frame_resizeStrengths (Pitch_Frame me, double maxStrength,
+                                  double unvoicedCriterium) {
 	int pos = 1;
 	double strongest = my candidate[1].strength;
 	for (long i = 2; i <= my nCandidates; i++) {
@@ -81,12 +75,11 @@ void Pitch_Frame_resizeStrengths (Pitch_Frame me, double maxStrength, double unv
 		}
 	}
 	if (maxStrength < unvoicedCriterium) {
-		for (long i = 1; i <= my nCandidates; i++) {
+		for (long i = 1; i <= my nCandidates; i++)
 			if (my candidate[i].frequency == 0) {
 				pos = i;
 				break;
 			}
-		}
 	}
 	if (pos != 1) {
 		double tmp = my candidate[1].frequency;
@@ -98,7 +91,7 @@ void Pitch_Frame_resizeStrengths (Pitch_Frame me, double maxStrength, double unv
 	}
 }
 
-autoPitch Pitch_scaleTime (Pitch me, double scaleFactor) {
+Pitch Pitch_scaleTime (Pitch me, double scaleFactor) {
 	try {
 		double dx = my dx, x1 = my x1, xmax = my xmax;
 		if (scaleFactor != 1) {
@@ -115,7 +108,7 @@ autoPitch Pitch_scaleTime (Pitch me, double scaleFactor) {
 				thy frame[i].candidate[1].frequency = f;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not scaled.");
 	}
@@ -123,30 +116,33 @@ autoPitch Pitch_scaleTime (Pitch me, double scaleFactor) {
 
 static double HertzToSpecial (double value, int pitchUnit) {
 	return	pitchUnit == kPitch_unit_HERTZ ? value :
-		pitchUnit == kPitch_unit_HERTZ_LOGARITHMIC ? value <= 0.0 ? NUMundefined : log10 (value) :
-		pitchUnit == kPitch_unit_MEL ? NUMhertzToMel (value) :
-		pitchUnit == kPitch_unit_LOG_HERTZ ? value <= 0.0 ? NUMundefined : log10 (value) :
-		pitchUnit == kPitch_unit_SEMITONES_1 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 1.0) / NUMln2 :
-		pitchUnit == kPitch_unit_SEMITONES_100 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 100.0) / NUMln2 :
-		pitchUnit == kPitch_unit_SEMITONES_200 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 200.0) / NUMln2 :
-		pitchUnit == kPitch_unit_SEMITONES_440 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 440.0) / NUMln2 :
-		pitchUnit == kPitch_unit_ERB ? NUMhertzToErb (value) : NUMundefined;
+	        pitchUnit == kPitch_unit_HERTZ_LOGARITHMIC ? value <= 0.0 ? NUMundefined : log10 (value) :
+		        pitchUnit == kPitch_unit_MEL ? NUMhertzToMel (value) :
+		        pitchUnit == kPitch_unit_LOG_HERTZ ? value <= 0.0 ? NUMundefined : log10 (value) :
+		        pitchUnit == kPitch_unit_SEMITONES_1 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 1.0) / NUMln2 :
+		        pitchUnit == kPitch_unit_SEMITONES_100 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 100.0) / NUMln2 :
+		        pitchUnit == kPitch_unit_SEMITONES_200 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 200.0) / NUMln2 :
+		        pitchUnit == kPitch_unit_SEMITONES_440 ? value <= 0.0 ? NUMundefined : 12.0 * log (value / 440.0) / NUMln2 :
+		        pitchUnit == kPitch_unit_ERB ? NUMhertzToErb (value) :
+		        NUMundefined;
 }
 
 static double SpecialToHertz (double value, int pitchUnit) {
 	return	pitchUnit == kPitch_unit_HERTZ ? value :
-		pitchUnit == kPitch_unit_HERTZ_LOGARITHMIC ? pow (10.0, value) :
-		pitchUnit == kPitch_unit_MEL ? NUMmelToHertz (value) :
-		pitchUnit == kPitch_unit_LOG_HERTZ ? pow (10.0, value) :
-		pitchUnit == kPitch_unit_SEMITONES_1 ? 1.0 * exp (value * (NUMln2 / 12.0)) :
-		pitchUnit == kPitch_unit_SEMITONES_100 ? 100.0 * exp (value * (NUMln2 / 12.0)) :
-		pitchUnit == kPitch_unit_SEMITONES_200 ? 200.0 * exp (value * (NUMln2 / 12.0)) :
-		pitchUnit == kPitch_unit_SEMITONES_440 ? 440.0 * exp (value * (NUMln2 / 12.0)) :
-		pitchUnit == kPitch_unit_ERB ? NUMerbToHertz (value) : NUMundefined;
+	        pitchUnit == kPitch_unit_HERTZ_LOGARITHMIC ? pow (10.0, value) :
+	        pitchUnit == kPitch_unit_MEL ? NUMmelToHertz (value) :
+	        pitchUnit == kPitch_unit_LOG_HERTZ ? pow (10.0, value) :
+	        pitchUnit == kPitch_unit_SEMITONES_1 ? 1.0 * exp (value * (NUMln2 / 12.0)) :
+	        pitchUnit == kPitch_unit_SEMITONES_100 ? 100.0 * exp (value * (NUMln2 / 12.0)) :
+	        pitchUnit == kPitch_unit_SEMITONES_200 ? 200.0 * exp (value * (NUMln2 / 12.0)) :
+	        pitchUnit == kPitch_unit_SEMITONES_440 ? 440.0 * exp (value * (NUMln2 / 12.0)) :
+	        pitchUnit == kPitch_unit_ERB ? NUMerbToHertz (value) : NUMundefined;
 }
 
-autoPitchTier PitchTier_normalizePitchRange (PitchTier me, double pitchMin_ref_Hz, double pitchMax_ref_Hz, double pitchMin_Hz, double pitchMax_Hz, int pitchUnit);
-autoPitchTier PitchTier_normalizePitchRange (PitchTier me, double pitchMin_ref_Hz, double pitchMax_ref_Hz, double pitchMin_Hz, double pitchMax_Hz, int pitchUnit) {
+PitchTier PitchTier_normalizePitchRange (PitchTier me, double pitchMin_ref_Hz, double pitchMax_ref_Hz,
+        double pitchMin_Hz, double pitchMax_Hz, int pitchUnit);
+PitchTier PitchTier_normalizePitchRange (PitchTier me, double pitchMin_ref_Hz, double pitchMax_ref_Hz,
+        double pitchMin_Hz, double pitchMax_Hz, int pitchUnit) {
 	try {
 		double fminr = HertzToSpecial (pitchMin_ref_Hz, pitchUnit);
 		double fmaxr = HertzToSpecial (pitchMax_ref_Hz, pitchUnit);
@@ -163,29 +159,29 @@ autoPitchTier PitchTier_normalizePitchRange (PitchTier me, double pitchMin_ref_H
 		double fmidr = fminr + ranger / 2;
 		double factor = ranger / range;
 		autoPitchTier thee = Data_copy (me);
-		for (long i = 1; i <= my points.size; i ++) {
-			RealPoint point = thy points.at [i];
+		for (long i = 1; i <= my points -> size; i ++) {
+			RealPoint point = (RealPoint) thy points -> item [i];
 			double f = HertzToSpecial (point -> value, pitchUnit);
 			f = factor * (f - fmidr);
 			f = SpecialToHertz (f, pitchUnit);
 			point -> value = f;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PitchTier created.");
 	}
 }
 
-autoPitch PitchTier_to_Pitch (PitchTier me, double dt, double pitchFloor, double pitchCeiling) {
+Pitch PitchTier_to_Pitch (PitchTier me, double dt, double pitchFloor, double pitchCeiling) {
 	try {
-		if (my points.size < 1) {
+		if (my points -> size < 1) {
 			Melder_throw (U"The PitchTier is empty.");
 		}
 		if (dt <= 0) {
 			Melder_throw (U"The time step should be a positive number.");
 		}
 		if (pitchFloor >= pitchCeiling) {
-			Melder_throw (U"The pitch ceiling must be larger than the pitch floor.");
+			Melder_throw (U"The pitch ceiling must be a higher number than the pitch floor.");
 		}
 		double tmin = my xmin, tmax = my xmax, t1 = my xmin + dt / 2;
 		long nt = (long) floor ((tmax - tmin - t1) / dt);
@@ -206,7 +202,7 @@ autoPitch PitchTier_to_Pitch (PitchTier me, double dt, double pitchFloor, double
 			}
 			candidate -> frequency = f;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Pitch created.");
 	}
diff --git a/dwtools/Pitch_extensions.h b/dwtools/Pitch_extensions.h
index 18b7709..e466cd2 100644
--- a/dwtools/Pitch_extensions.h
+++ b/dwtools/Pitch_extensions.h
@@ -2,7 +2,7 @@
 #define _Pitch_extensions_h_
 /* Pitch_extensions.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,18 +29,16 @@
 #include "PitchTier.h"
 
 void Pitch_Frame_addPitch (Pitch_Frame me, double f, double strength, int maxnCandidates);
-
 void Pitch_Frame_getPitch (Pitch_Frame me, double *f, double *strength);
-
 void Pitch_Frame_resizeStrengths (Pitch_Frame me, double maxStrength, double unvoicedCriterium);
 	
-autoPitch Pitch_scaleTime (Pitch me, double scaleFactor);
+Pitch Pitch_scaleTime (Pitch me, double scaleFactor);
 /*  Scale time domain and pitches:
 	xmin' = xmin; dx' = dx * scaleFactor; x1' = xmin + 0.5 * dx'; 
 	xmax' = xmin + nx * dx';
 	pitch[i]' = pitch[i]/scaleFactor;
 */
 
-autoPitch PitchTier_to_Pitch (PitchTier me, double dt, double pitchFloor, double pitchCeiling);
+Pitch PitchTier_to_Pitch (PitchTier me, double dt, double pitchFloor, double pitchCeiling);
 
 #endif /* _Pitch_extensions_h_ */
diff --git a/dwtools/Polygon_extensions.cpp b/dwtools/Polygon_extensions.cpp
index c166bf3..304802a 100644
--- a/dwtools/Polygon_extensions.cpp
+++ b/dwtools/Polygon_extensions.cpp
@@ -1,6 +1,6 @@
 /* Polygon_extensions.c
  *
- * Copyright (C) 1993-2012, 2014-2016 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "NUM2.h"
 #include "Polygon_extensions.h"
 #include "Vector.h"
-#include "DoublyLinkedList.h"
+#include "DLL.h"
 
 // not for self-intesecting polygons!
 static double Polygon_area (Polygon me) {
@@ -42,36 +42,23 @@ static double Polygon_area (Polygon me) {
 	return fabs (area); // area my have negative sign in counter clockwise evaluation of area
 }
 
-void Polygon_getExtrema (Polygon me, double *p_xmin, double *p_xmax, double *p_ymin, double *p_ymax) {
-    double xmin = my x[1], xmax = my x[1];
-    double ymin = my y[1], ymax = my y[1];
+void Polygon_getExtrema (Polygon me, double *xmin, double *xmax, double *ymin, double *ymax) {
+    *xmin = my x[1]; *xmax = my x[1];
+    *ymin = my y[1]; *ymax = my y[1];
     for (long i = 2; i <= my numberOfPoints; i++) {
-        if (my x[i] < xmin) {
-            xmin = my x[i];
-        } else if (my x[i] > xmax) {
-            xmax = my x[i];
+        if (my x[i] < *xmin) {
+            *xmin = my x[i];
+        } else if (my x[i] > *xmax) {
+            *xmax = my x[i];
         }
-        if (my y[i] < ymin) {
-            ymin = my y[i];
-        } else if (my y[i] > ymax) {
-            ymax = my y[i];
+        if (my y[i] < *ymin) {
+            *ymin = my y[i];
+        } else if (my y[i] > *ymax) {
+            *ymax = my y[i];
         }
     }
-    if (p_xmin) {
-		*p_xmin = xmin;
-	}
-    if (p_xmax) {
-		*p_xmax = xmax;
-	}
-    if (p_ymin) {
-		*p_ymin = ymin;
-	}
-    if (p_ymax) {
-		*p_ymax = ymax;
-	}
 }
-
-autoPolygon Polygon_createSimple (char32 *xystring) {
+Polygon Polygon_createSimple (char32 *xystring) {
 	try {
 		long numberOfPoints;
 		autoNUMvector<double> xys (NUMstring_to_numbers (xystring, &numberOfPoints), 1);
@@ -90,20 +77,20 @@ autoPolygon Polygon_createSimple (char32 *xystring) {
 				Melder_warning (U"Two successives vertices are equal.");
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polygon not created.");
 	}
 }
 
-autoPolygon Polygon_createFromRandomVertices (long numberOfVertices, double xmin, double xmax, double ymin, double ymax) {
+Polygon Polygon_createFromRandomVertices (long numberOfVertices, double xmin, double xmax, double ymin, double ymax) {
 	try {
 		autoPolygon me = Polygon_create (numberOfVertices);
 		for (long i = 1; i <= numberOfVertices; i++) {
 			my x[i] = NUMrandomUniform (xmin, xmax);
 			my y[i] = NUMrandomUniform (ymin, ymax);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polygon not created.");
 	}
@@ -140,15 +127,19 @@ void Polygon_reverseX (Polygon me) {
 	for (long i = 1; i <= my numberOfPoints; i++) {
 		my x[i] = -my x[i];
 	}
+
 }
 
 void Polygon_reverseY (Polygon me) {
 	for (long i = 1; i <= my numberOfPoints; i++) {
 		my y[i] = -my y[i];
 	}
+
 }
 
-void Polygon_Categories_draw (Polygon me, Categories thee, Graphics graphics, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void Polygon_Categories_draw (Polygon me, thou, Graphics graphics, double xmin, double xmax,
+                              double ymin, double ymax, int garnish) {
+	thouart (Categories);
 	double min, max, tmp;
 
 	if (my numberOfPoints != thy size) {
@@ -177,18 +168,19 @@ void Polygon_Categories_draw (Polygon me, Categories thee, Graphics graphics, do
 	Graphics_unsetInner (graphics);
 	if (garnish) {
 		Graphics_drawInnerBox (graphics);
-		Graphics_marksLeft (graphics, 2, true, true, false);
+		Graphics_marksLeft (graphics, 2, 1, 1, 0);
 		if (ymin * ymax < 0.0) {
-			Graphics_markLeft (graphics, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (graphics, 0.0, 1, 1, 1, NULL);
 		}
-		Graphics_marksBottom (graphics, 2, true, true, false);
+		Graphics_marksBottom (graphics, 2, 1, 1, 0);
 		if (xmin * xmax < 0.0) {
-			Graphics_markBottom (graphics, 0.0, true, true, true, nullptr);
+			Graphics_markBottom (graphics, 0.0, 1, 1, 1, NULL);
 		}
 	}
 }
 
-static void setWindow (Polygon me, Graphics graphics, double xmin, double xmax, double ymin, double ymax) {
+static void setWindow (Polygon me, Graphics graphics,
+                       double xmin, double xmax, double ymin, double ymax) {
 	Melder_assert (me);
 
 	if (xmax <= xmin) { /* Autoscaling along x axis. */
@@ -224,7 +216,8 @@ static void setWindow (Polygon me, Graphics graphics, double xmin, double xmax,
 	Graphics_setWindow (graphics, xmin, xmax, ymin, ymax);
 }
 
-void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark) {
+void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax,
+                        double ymin, double ymax, double size_mm, const char32 *mark) {
 	Graphics_setInner (g);
 	setWindow (me, g, xmin, xmax, ymin, ymax);
 	for (long i = 1; i <= my numberOfPoints; i++) {
@@ -235,7 +228,7 @@ void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax, double
 
 #define CLIP_Y(y,ymin,ymax) (clip ? ((y) > (ymax) ? (ymax) : (y) < (ymin) ? (ymin) : (y)) : y)
 
-autoPolygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, double ymin, double ymax, double level) {
+Polygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, double ymin, double ymax, double level) {
 	try {
 		bool clip = ymin < ymax;
 		if (channel < 1 || channel > my ny) {
@@ -289,7 +282,7 @@ autoPolygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, d
 		his y[k++] = CLIP_Y (y, ymin, ymax);
 		his x[k] = tmax;
 		his y[k++] = CLIP_Y (level, ymin, ymax);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U":no Polygon created.");
 	}
@@ -297,7 +290,7 @@ autoPolygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, d
 
 /* Area inbetween */
 
-autoPolygon Sounds_to_Polygon_enclosed (Sound me, Sound thee, int channel, double tmin, double tmax, double ymin, double ymax) {
+Polygon Sounds_to_Polygon_enclosed (Sound me, Sound thee, int channel, double tmin, double tmax, double ymin, double ymax) {
 	try {
 		bool clip = ymin < ymax;
 		if (my ny > 1 && thy ny > 1 && my ny != thy ny) {
@@ -384,7 +377,7 @@ autoPolygon Sounds_to_Polygon_enclosed (Sound me, Sound thee, int channel, doubl
 		his y[k] = y;
 
 		Melder_assert (k == numberOfPoints);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no enclosed Polygon created.");
 	}
@@ -507,25 +500,25 @@ static int LineSegments_getIntersection (double x1, double y1, double x2, double
 	if (fabs (bd) > eps) {
 		*mua = cad / bd;
 		*mub = cab / bd;
-		if (*mua <= eps || *mua > 1.0 + eps || *mub < eps || *mub > 1.0 + eps) {
+		if (*mua <= eps or * mua > 1 + eps or * mub < eps or * mub > 1 + eps) {
 			return INTERSECTION_OUTSIDE;
 		}
-		if (*mua > eps && *mua <= 1.0 - eps && *mub >= eps && *mub < 1.0 - eps) {
+		if (*mua > eps and *mua <= 1 - eps and *mub >= eps and * mub < 1 - eps) {
 			// This occurs most of the cases (hopefully)
 			return INTERSECTION_PROPER;
 		}
 		// Now eps < mua,mub <= 1+eps
 		// and at least one of the mu's is near 1,
 		// the other is in [eps,1]
-		if (fabs (*mua - 1.0) < eps) {
-			*mua = 1.0;
+		if (fabs (*mua - 1) < eps) {
+			*mua = 1;
 		}
-		if (fabs (*mub - 1.0) < eps) {
-			*mub = 1.0;
+		if (fabs (*mub - 1) < eps) {
+			*mub = 1;
 		}
 		// is the intersection at an edge or  at vertex
-		if (*mua == 1.0) { // end of ab touches cd
-			return *mub == 1.0 ? INTERSECTION_AT_VERTEX : INTERSECTION_AT_EDGE;
+		if (*mua == 1) { // end of ab touches cd
+			return *mub == 1 ? INTERSECTION_AT_VERTEX : INTERSECTION_AT_EDGE;
 		} else { // ab crosses a vertex
 			return INTERSECTION_AT_VERTEX;
 		}
@@ -534,16 +527,13 @@ static int LineSegments_getIntersection (double x1, double y1, double x2, double
 			return INTERSECTION_OUTSIDE;
 		}
 		if (x1 == x2) {
-			x1 = y1;
-			x2 = y2;
-			x3 = y3;
-			x4 = y4;
+			x1 = y1; x2 = y2; x3 = y3; x4 = y4;
 		}
 		double xs;
 		int intersection = get_collinearIntersectionPoint (x1, x2, x3, x4, &xs);
 		if (intersection != INTERSECTION_OUTSIDE) {
-			*mua = fabs ((xs - x1) / (x2 - x1));
-			*mub = fabs ((xs - x3) / (x4 - x3));
+			*mua = fabs ( (xs - x1) / (x2 - x1));
+			*mub = fabs ( (xs - x3) / (x4 - x3));
 			intersection += INTERSECTION_COPLANAR;
 		}
 		return intersection;
@@ -554,58 +544,75 @@ static int LineSegments_getIntersection (double x1, double y1, double x2, double
 // first node has prev = 0, last node has next = 0;
 // entry marks the entrance of the OTHER polygon
 
-Thing_define (Vertex, Daata) {
+Thing_define (Vertex, Data) {
+	// new data:
+public:
 	double x, y, alpha;
-	DoublyLinkedNode neighbour;
+	DLLNode neighbour;
 	long poly_npoints, id;
 	int intersect, entry;
 	bool processed;
-
-	void v_copy (Daata data_to)
-		override;
+	// overridden methods:
+	virtual void v_copy (Any data_to);
 };
 
-Thing_implement (Vertex, Daata, 0);
-
-void structVertex :: v_copy (Daata thee_Daata) {
-	Vertex thee = static_cast <Vertex> (thee_Daata);
-	thy x = our x;
-	thy y = our y;
-	thy alpha = our alpha;
-	thy neighbour = our neighbour;
-	thy poly_npoints = our poly_npoints;
-	thy id = our id;
-	thy intersect = our intersect;
-	thy entry = our entry;
-	thy processed = our processed;
+Thing_implement (Vertex, Data, 0);
+
+void structVertex :: v_copy (thou) {
+	thouart (Vertex);
+	thy x = x;
+	thy y = y;
+	thy alpha = alpha;
+	thy neighbour = neighbour;
+	thy poly_npoints = poly_npoints;
+	thy id = id;
+	thy intersect = intersect;
+	thy entry = entry;
+	thy processed = processed;
 }
 
-static autoVertex Vertex_create () {
-	return Thing_new (Vertex);
+Vertex Vertex_create ();
+Vertex Vertex_create () {
+	try {
+		autoVertex me = Thing_new (Vertex);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Vertex not created.");
+	}
 }
 
-Thing_define (Vertices, DoublyLinkedList) {
-	static int s_compareHook (DoublyLinkedNode me, DoublyLinkedNode thee) noexcept;
-	Data_CompareHook v_getCompareHook ()
-		override { return s_compareHook; }
+Thing_define (Vertices, DLL) {
+	// overridden methods:
+protected:
+	static int s_compare (Any data1, Any data2);
+	virtual Data_CompareFunction v_getCompareFunction () {
+		return s_compare;
+	}
 };
+Thing_implement (Vertices, DLL, 0);
 
-inline static autoVertices Vertices_create () {
-	return Thing_new (Vertices);
-}
-
-Thing_implement (Vertices, DoublyLinkedList, 0);
-
-#define VERTEX(n) ((Vertex) ((n) -> data.get()))
+#define VERTEX(n) ((Vertex) ((n) -> data))
 
-int structVertices :: s_compareHook (DoublyLinkedNode me, DoublyLinkedNode thee) noexcept {
+int structVertices :: s_compare (I, thou) {
+	iam (DLLNode); thouart (DLLNode);
 	return VERTEX (me) -> alpha < VERTEX (thee) -> alpha ? -1 : VERTEX (me) -> alpha > VERTEX (thee) -> alpha ? 1 : 0;
 }
 
-static void Vertices_addCopyBack (Vertices me, DoublyLinkedNode n) {
+Vertices Vertices_create ();
+Vertices Vertices_create () {
 	try {
-		autoDoublyLinkedNode nc = Data_copy (n);
-		DoublyLinkedList_addBack (me, nc.releaseToAmbiguousOwner());
+		Vertices me = Thing_new (Vertices);
+		return me;
+	} catch (MelderError) {
+		Melder_throw (U"Vertices not created.");
+	}
+}
+
+void Vertices_addCopyBack (Vertices me, DLLNode n);
+void Vertices_addCopyBack (Vertices me, DLLNode n) {
+	try {
+		autoDLLNode nc = (DLLNode) Data_copy (n);
+		DLL_addBack ( (DLL) me, nc.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": no copy added.");
 	}
@@ -614,9 +621,9 @@ static void Vertices_addCopyBack (Vertices me, DoublyLinkedNode n) {
 static bool pointsInsideInterval (double *x, long n, long istart, long iend, long *jstart, long *jend) {
 	double xmax = x[istart], xmin = x[istart];
 	long imax = istart, imin = istart;
-	long iendmod = iend > istart ? iend : iend + n;   // circular
+	long iendmod = iend > istart ? iend : iend + n; // circular
 	for (long i = istart + 1; i <= iendmod; i++) {
-		long index = (i - 1) % n + 1;   // make it circular
+		long index = (i - 1) % n + 1; // make it circular
 		if (x[index] > xmax) {
 			xmax = x[index];
 			imax = index;
@@ -630,66 +637,66 @@ static bool pointsInsideInterval (double *x, long n, long istart, long iend, lon
 		*jstart = imax;
 		*jend = imin;
 	}
-	if (x[istart] == x[*jstart] and x[iend] == x[*jend]) {   // if there are duplicates of the extrema
+	if (x[istart] == x[*jstart] and x[iend] == x[*jend]) { // if there are duplicates of the extrema
 		*jstart = istart; *jend = iend;
 	}
 	return *jstart == istart and * jend == iend;
 }
 
-autoPolygon Polygon_circularPermutation (Polygon me, long nshift) {
+Polygon Polygon_circularPermutation (Polygon me, long nshift);
+Polygon Polygon_circularPermutation (Polygon me, long nshift) {
 	try {
 		autoPolygon thee = Data_copy (me);
 		if (nshift != 0) {
-			for (long i = 1; i <= my numberOfPoints; i ++) {
+			for (long i = 1; i <= my numberOfPoints; i++) {
 				long inew = (i + nshift - 1) % my numberOfPoints + 1;
 				thy x[inew] = my x[i];
 				thy y[inew] = my y[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not circularly permuted.");
 	}
 }
 
-static void _Polygons_copyNonCollinearities (Polygon me, Polygon thee, long collstart, long collend) {
+void _Polygons_copyNonCollinearities (Polygon me, Polygon thee, long collstart, long collend);
+void _Polygons_copyNonCollinearities (Polygon me, Polygon thee, long collstart, long collend) {
 	// Determine if all collinear point are within the interval [colstart,colend]
 	long jstart, jend;
-	bool allPointsInside = ( my x [collstart] != my x [collend] ?
-	                         pointsInsideInterval (my x, my numberOfPoints, collstart, collend, &jstart, &jend) :
-	                         pointsInsideInterval (my y, my numberOfPoints, collstart, collend, &jstart, &jend) );
+	bool allPointsInside = my x[collstart] != my x[collend] ?
+	                       pointsInsideInterval (my x, my numberOfPoints, collstart, collend, &jstart, &jend) :
+	                       pointsInsideInterval (my y, my numberOfPoints, collstart, collend, &jstart, &jend);
 	if (not allPointsInside) {
 		if (collstart != jstart) { // also include the extreme point at start
-			thy numberOfPoints ++;
-			thy x [thy numberOfPoints] = my x [jstart];
-			thy y [thy numberOfPoints] = my y [jstart];
+			thy numberOfPoints++;
+			thy x[thy numberOfPoints] = my x[jstart]; thy y[thy numberOfPoints] = my y[jstart];
 		}
 		if (collend != jend) { // also include the extreme point at end
-			thy numberOfPoints ++;
-			thy x [thy numberOfPoints] = my x [jend];
-			thy y [thy numberOfPoints] = my y [jend];
+			thy numberOfPoints++;
+			thy x[thy numberOfPoints] = my x[jend]; thy y[thy numberOfPoints] = my y[jend];
 		}
 	}
-	thy numberOfPoints ++;
+	thy numberOfPoints++;
 	thy x[thy numberOfPoints] = my x[collend]; thy y[thy numberOfPoints] = my y[collend];
 }
 
 #define AREA(x1,y1,x2,y2,x3,y3) (x1*(y2 - y3)+x2*(y3-y1)+x3*(y1-y2))
-autoPolygon Polygon_simplify (Polygon me) {
+Polygon Polygon_simplify (Polygon me);
+Polygon Polygon_simplify (Polygon me) {
 	try {
 		autoPolygon p1 = Data_copy (me);
 
 		// pass 1: remove doublets
 		long np = 1;
-		for (long i = 2; i <= my numberOfPoints; i ++) {
-			if (my x [i] != p1 -> x [np] || my y [i] != p1 -> y [np]) {
-				p1 -> x [++ np] = my x [i];
-				p1 -> y [np] = my y [i];
+		for (long i = 2; i <= my numberOfPoints; i++) {
+			if (my x[i] != p1 -> x[np] || my y[i] != p1 -> y[np]) {
+				p1 -> x[++np] = my x[i]; p1 -> y[np] = my y[i];
 			}
 		}
 		// last and first points!
-		if (p1 -> x [np] == p1 -> x [1] && p1 -> y [np] == p1 -> y [1]) {
-			np --;
+		if (p1 -> x[np] == p1 -> x[1] && p1 -> y[np] == p1 -> y[1]) {
+			np--;
 		}
 		if (np < 3) {
 			Melder_throw (U"Not enough points left after doublet removal.");
@@ -698,7 +705,7 @@ autoPolygon Polygon_simplify (Polygon me) {
 
 		// pass 2: remove collinearities
 
-		autoPolygon p = Data_copy (p1.get());
+		autoPolygon p = Data_copy (p1.peek());
 		p -> numberOfPoints = 0;
 		// is there collinearity between the first and the last points of p1?
 		double  eps = 1e-15;
@@ -712,20 +719,18 @@ autoPolygon Polygon_simplify (Polygon me) {
 		area = AREA (p1 -> x[np - 1], p1 -> y[np - 1], p1 -> x[np], p1 -> y[np], p1 -> x[1], p1 -> y[1]);
 		long collstart = np - 1;
 		while (fabs (area) < eps && collstart > collend) {
-			collstart --;
+			collstart--;
 			area = AREA (p1 -> x[collstart], p1 -> y[collstart], p1 -> x[collstart + 1], p1 -> y[collstart + 1], p1 -> x[collstart + 2], p1 -> y[collstart + 2]);
 		}
-		collstart ++;
+		collstart++;
 		if (collend - collstart + p1 -> numberOfPoints > 1) {
-			_Polygons_copyNonCollinearities (p1.get(), p.get(), collstart, collend);
+			_Polygons_copyNonCollinearities (p1.peek(), p.peek(), collstart, collend);
 		} else {
-			p -> numberOfPoints = 1;
-			p -> x [1] = p1 -> x [1];
-			p -> y [1] = p1 -> y [1];
+			p -> numberOfPoints = 1; p -> x[1] = p1 -> x[1]; p -> y[1] = p1 -> y[1];
 		}
 		bool collinearity = false;
 		long endpos = collstart - 1;
-		for (long i = collend + 1; i <= endpos; i ++) { // start was < numberOfPoints
+		for (long i = collend + 1; i <= endpos; i++) { // start was < numberOfPoints
 			// if i-1, i, i+1 are coplanar, remove i
 			// area = x1*(y2 - y3)+x2*(y3-y1)+x3*(y1-y2)
 			area = AREA (p1 -> x[i - 1], p1 -> y[i - 1], p1 -> x[i], p1 -> y[i], p1 -> x[i + 1], p1 -> y[i + 1]);
@@ -740,26 +745,26 @@ autoPolygon Polygon_simplify (Polygon me) {
 					continue;
 				}
 			}
-			if (! collinearity) {
-				p -> numberOfPoints ++;
-				p -> x [p -> numberOfPoints] = p1 -> x [i];
-				p -> y [p -> numberOfPoints] = p1 -> y [i];
+			if (not collinearity) {
+				p -> numberOfPoints++;
+				p -> x[p -> numberOfPoints] = p1 -> x[i];
+				p -> y[p -> numberOfPoints] = p1 -> y[i];
 			} else { // end of series of collinearities detected
-				_Polygons_copyNonCollinearities (p1.get(), p.get(), collstart, collend);
+				_Polygons_copyNonCollinearities (p1.peek(), p.peek(), collstart, collend);
 				collinearity = false;
 			}
 		}
 		if (not collinearity and collend != endpos + 1) { // only if previous series was not collinear
-			p -> numberOfPoints ++;
-			p -> x [p -> numberOfPoints] = p1 -> x [endpos + 1];
-			p -> y [p -> numberOfPoints] = p1 -> y [endpos + 1];
+			p -> numberOfPoints++;
+			p -> x[p -> numberOfPoints] = p1 -> x[endpos + 1];
+			p -> y[p -> numberOfPoints] = p1 -> y[endpos + 1];
 		}
 		if (p -> numberOfPoints < 3) {
 			Melder_throw (U"Not enough points left after collinear points removal.");
 		}
 
-		autoPolygon thee = Data_copy (p.get()); //
-		return thee;
+		autoPolygon thee = Data_copy (p.peek()); //
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not simplified.");
 	}
@@ -767,20 +772,21 @@ autoPolygon Polygon_simplify (Polygon me) {
 
 #undef AREA
 
-static autoVertices Polygon_to_Vertices (Polygon me, bool close) {
+Vertices Polygon_to_Vertices (Polygon me, bool close);
+Vertices Polygon_to_Vertices (Polygon me, bool close) {
 	try {
 		autoVertices thee = Vertices_create ();
 		for (long i = 1 ; i <= my numberOfPoints; i++) {
 			autoVertex v = Vertex_create ();
 			v -> x = my x[i]; v -> y = my y[i];
-			autoDoublyLinkedNode n = DoublyLinkedNode_create (v.move());
-			DoublyLinkedList_addBack (thee.get(), n.releaseToAmbiguousOwner());
+			autoDLLNode n = DLLNode_create ( (Data) v.transfer());
+			DLL_addBack ( (DLL) thee.peek(), n.transfer());
 		}
 		Melder_assert (thy numberOfNodes == my numberOfPoints);
 		if (close) {
-			Vertices_addCopyBack (thee.get(), thy front);
+			Vertices_addCopyBack (thee.peek(), thy front);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Vertices created.");
 	}
@@ -789,10 +795,11 @@ static autoVertices Polygon_to_Vertices (Polygon me, bool close) {
 #define SKIP_INTERSECTION_NODES(n) while(VERTEX(n) -> intersect != 0) n = n -> next;
 
 
-static void Vertices_print (Vertices me, Vertices thee) {
+void Vertices_print (Vertices me, Vertices thee);
+void Vertices_print (Vertices me, Vertices thee) {
 	long ns = 0, nc = 0, nt, nt2;
 	//	MelderInfo_open();
-	DoublyLinkedNode n = my front;
+	DLLNode n = my front;
 	MelderInfo_writeLine (U"");
 	while (n != 0) {
 		double x = VERTEX (n) -> x, y = VERTEX (n) -> y, alpha = VERTEX (n) -> alpha;
@@ -825,13 +832,14 @@ static void Vertices_print (Vertices me, Vertices thee) {
 	//	MelderInfo_close();
 }
 
-static void Vertices_sortIntersections (Vertices me) {
-	DoublyLinkedNode ni = my front, first;
+void Vertices_sortIntersections (Vertices me);
+void Vertices_sortIntersections (Vertices me) {
+	DLLNode ni = my front, first;
 	bool intersections = false;
 	while (ni != my back) {
 		if (VERTEX (ni) -> intersect == 0) {
 			if (intersections) { // the previous was the last of a series of intersections
-				DoublyLinkedList_sortPart ( (DoublyLinkedList) me, first, ni -> prev);
+				DLL_sortPart ( (DLL) me, first, ni -> prev);
 				// restore myNode pointers
 				intersections = false;
 			}
@@ -845,24 +853,25 @@ static void Vertices_sortIntersections (Vertices me) {
 	}
 	// we might have missed the last series of intersections
 	if (intersections) {
-		DoublyLinkedList_sortPart ( (DoublyLinkedList) me, first, ni -> prev);
+		DLL_sortPart ( (DLL) me, first, ni -> prev);
 	}
 }
 
-static void Vertices_addIntersections (Vertices me, Vertices thee) {
+void Vertices_addIntersections (Vertices me, Vertices thee);
+void Vertices_addIntersections (Vertices me, Vertices thee) {
 	try {
 		double eps = 1e-15;
 		long id = 0;
 		if (my numberOfNodes < 4 || thy numberOfNodes < 4) {
 			Melder_throw (U"We need at least three vertices.");
 		}
-		DoublyLinkedNode ni = my front; // the node index  in me (s)
+		DLLNode ni = my front; // the node index  in me (s)
 		while (ni != my back) { // until penultimate
 			double x1 = VERTEX (ni) -> x, y1 =  VERTEX (ni) -> y;
 			double x2 = VERTEX (ni -> next) -> x, y2 = VERTEX (ni -> next) -> y;
-			DoublyLinkedNode nj = thy front; // the current node index in thee (c)
+			DLLNode nj = thy front; // the current node index in thee (c)
 			while (nj != thy back && VERTEX (nj) -> intersect == 0) {
-				DoublyLinkedNode njn = nj -> next;
+				DLLNode njn = nj -> next;
 				SKIP_INTERSECTION_NODES (njn)
 				double x3 = VERTEX (nj) -> x, y3 = VERTEX (nj) -> y;
 				double x4 = VERTEX (njn) -> x, y4 = VERTEX (njn) -> y, mua, mub;
@@ -876,20 +885,20 @@ static void Vertices_addIntersections (Vertices me, Vertices thee) {
 					ins -> alpha = mua;
 					ins -> intersect = intersection;
 					ins -> id = id;
-					autoVertex inc = Data_copy (ins.get());
+					autoVertex inc = Data_copy (ins.peek());
 					inc -> alpha = mub;
 					// 2. create the nodes
-					autoDoublyLinkedNode ns = DoublyLinkedNode_create (autoDaata());
-					autoDoublyLinkedNode nc = DoublyLinkedNode_create (autoDaata());
+					autoDLLNode ns = DLLNode_create (0);
+					autoDLLNode nc = DLLNode_create (0);
 					// 3. link the neighbours + copy the links
-					DoublyLinkedNode njc = ins -> neighbour = nc.get();
-					DoublyLinkedNode nic = inc -> neighbour = ns.get();
+					DLLNode njc = ins -> neighbour = nc.peek();
+					DLLNode nic = inc -> neighbour = ns.peek();
 					// 4. transfer the vertices to the nodes
-					ns -> data = ins.move();
-					nc -> data = inc.move();
+					ns -> data = (Data) ins.transfer();
+					nc -> data = (Data) inc.transfer();
 					// 5. add the nodes to the list
-					DoublyLinkedList_addAfter (me, ni, ns.releaseToAmbiguousOwner());
-					DoublyLinkedList_addAfter (thee, nj, nc.releaseToAmbiguousOwner());
+					DLL_addAfter ( (DLL) me, ni, ns.transfer());
+					DLL_addAfter ( (DLL) thee, nj, nc.transfer());
 					// 6. set node pointer to inserted nodes
 					ni = nic; nj = njc;
 				}
@@ -917,10 +926,11 @@ static void Vertices_addIntersections (Vertices me, Vertices thee) {
 #define Polygon_ENEX 3
 #define Polygon_EXEN 4
 
-static void Vertices_markEntryPoints (Vertices me, int firstLocation) {
+void Vertices_markEntryPoints (Vertices me, int firstLocation);
+void Vertices_markEntryPoints (Vertices me, int firstLocation) {
 	int entry = (firstLocation == Polygon_INSIDE) ? Polygon_EX : (firstLocation == Polygon_OUTSIDE) ? Polygon_EN : Polygon_ENEX; // problematic when on boundary
 	// my back/front can never be an intersection node
-	for (DoublyLinkedNode ni = my front -> next; ni != my back; ni = ni -> next) {
+	for (DLLNode ni = my front -> next; ni != my back; ni = ni -> next) {
 		if (VERTEX (ni) -> intersect == 0) {
 			continue;
 		}
@@ -929,13 +939,14 @@ static void Vertices_markEntryPoints (Vertices me, int firstLocation) {
 	}
 }
 
-static autoVertices Verticeses_connectClippingPathsUnion (Vertices me, Vertices thee) {
+Vertices Verticeses_connectClippingPathsUnion (Vertices me, Vertices thee);
+Vertices Verticeses_connectClippingPathsUnion (Vertices me, Vertices thee) {
 	try {
 		// find my first vertex outside thee, by searching the first intersection entry
 
-		DoublyLinkedNode firstOutside = my front;
+		DLLNode firstOutside = my front;
 		bool firstOutsideSet = true;
-		for (DoublyLinkedNode ni = my front; ni != 0; ni = ni -> next) {
+		for (DLLNode ni = my front; ni != 0; ni = ni -> next) {
 			if (VERTEX (ni) -> intersect == 0) { //
 				if (firstOutsideSet) {
 					continue;
@@ -952,14 +963,14 @@ static autoVertices Verticeses_connectClippingPathsUnion (Vertices me, Vertices
 
 		autoVertices him = Vertices_create ();
 		long poly_npoints = 0;
-		DoublyLinkedNode current = firstOutside;
+		DLLNode current = firstOutside;
 		bool inside = false, forward = true;
 		do {
 			if (VERTEX (current) -> intersect == 0) {
-				Vertices_addCopyBack (him.get(), current); poly_npoints++;
+				Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 			} else { // intersection point
 				// store and jump to other polygon
-				Vertices_addCopyBack (him.get(), current); poly_npoints++;
+				Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 				current = VERTEX (current) -> neighbour; inside = not inside;
 				forward = VERTEX (current) ->  entry == Polygon_EX;
 			}
@@ -976,47 +987,47 @@ static autoVertices Verticeses_connectClippingPathsUnion (Vertices me, Vertices
 			}
 		} while (current != firstOutside and current != 0 and poly_npoints < my numberOfNodes);
 		VERTEX (his front) -> poly_npoints = poly_npoints;
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no clipping path.");
 	}
 }
 
 //Vertices Verticeses_connectClippingPaths (Vertices me, bool use_myinterior, Vertices thee, bool use_thyinterior);
-static autoVertices Verticeses_connectClippingPaths (Vertices me, bool /* use_myinterior */, Vertices thee, bool /* use_thyinterior */) {
+static Vertices Verticeses_connectClippingPaths (Vertices me, bool /* use_myinterior */, Vertices thee, bool /* use_thyinterior */) {
 	try {
 		autoVertices him = Vertices_create ();
-		DoublyLinkedNode prevPoly;
+		DLLNode prevPoly;
 		long poly_npoints = 0;
-		for (DoublyLinkedNode ni = my front; ni != 0; ni = ni -> next) {
+		for (DLLNode ni = my front; ni != 0; ni = ni -> next) {
 			if ( (VERTEX (ni) -> intersect == 0) || VERTEX (ni) -> processed) {
 				continue;
 			}
 			// Intersection found: start new polygon
-			DoublyLinkedNode currentPoly = his back;
+			DLLNode currentPoly = his back;
 			if (currentPoly == his front) {
-				Vertices_addCopyBack (him.get(), ni); poly_npoints++;
+				Vertices_addCopyBack (him.peek(), ni); poly_npoints++;
 				prevPoly = his front;
 			} else {
-				Vertices_addCopyBack (him.get(), ni); poly_npoints++;
+				Vertices_addCopyBack (him.peek(), ni); poly_npoints++;
 				VERTEX (prevPoly) -> poly_npoints = poly_npoints;
 				poly_npoints = 0;
 				prevPoly = currentPoly;
 			}
-			DoublyLinkedNode current = ni;
+			DLLNode current = ni;
 			VERTEX (current) -> processed = true;
 			long jumps = 0;
 			do {
 				if (VERTEX (current) -> entry == Polygon_EN) {
 					while ( (current = current -> next) != 0 and VERTEX (current) -> intersect == 0) {
-						Vertices_addCopyBack (him.get(), current); poly_npoints++;
+						Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 					}
 					if (current == 0) { // back of list? Goto front
 						current = (jumps % 2 == 0) ? my front : thy front;
 						while ( (current = current -> next) != 0 and VERTEX (current) -> intersect == 0) {
-							Vertices_addCopyBack (him.get(), current); poly_npoints++;
+							Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 						}
-						Vertices_addCopyBack (him.get(), current); poly_npoints++; // intersection point
+						Vertices_addCopyBack (him.peek(), current); poly_npoints++; // intersection point
 					} else if (current == ni) {
 						break;    // done
 					} else {
@@ -1024,14 +1035,14 @@ static autoVertices Verticeses_connectClippingPaths (Vertices me, bool /* use_my
 					}
 				} else if (VERTEX (current) -> entry == Polygon_EX) {
 					while ( (current = current -> prev) != 0 and VERTEX (current) -> intersect == 0) {
-						Vertices_addCopyBack (him.get(), current); poly_npoints++;
+						Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 					}
 					if (current == 0) { // start of list? Goto end
 						current = (jumps % 2 == 0) ? my back : thy back;
 						while ( (current = current -> prev) != 0 and VERTEX (current) -> intersect == 0) {
-							Vertices_addCopyBack (him.get(), current); poly_npoints++;
+							Vertices_addCopyBack (him.peek(), current); poly_npoints++;
 						}
-						Vertices_addCopyBack (him.get(), current); poly_npoints++; // intersection point
+						Vertices_addCopyBack (him.peek(), current); poly_npoints++; // intersection point
 					} else if (current == ni) {
 						break;    // done
 					} else {
@@ -1046,15 +1057,16 @@ static autoVertices Verticeses_connectClippingPaths (Vertices me, bool /* use_my
 		}
 		// last polygon:
 		VERTEX (prevPoly) -> poly_npoints = poly_npoints;
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no clipping vertices created.");
 	}
 }
 
 //
-static autoPolygon Vertices_to_Polygon (Vertices /* me */, DoublyLinkedNode *ni) {
-	DoublyLinkedNode n = *ni;
+Polygon Vertices_to_Polygon (Vertices me, DLLNode *ni);
+Polygon Vertices_to_Polygon (Vertices me, DLLNode *ni) {
+	DLLNode n = *ni;
 	try {
 		long i = 1, nPoints = VERTEX (n) -> poly_npoints;
 		if (nPoints == 0) {
@@ -1062,68 +1074,65 @@ static autoPolygon Vertices_to_Polygon (Vertices /* me */, DoublyLinkedNode *ni)
 		}
 		autoPolygon thee = Polygon_create (nPoints);
 		thy x[i] = VERTEX (n) -> x; thy y[i] = VERTEX (n) -> y;
-		while ((n = n -> next) != 0 && VERTEX (n) -> poly_npoints == 0 && i <= nPoints) {
-			i ++;
-			thy x[i] = VERTEX (n) -> x;
-			thy y[i] = VERTEX (n) -> y;
+		while ( (n = n -> next) != 0 and VERTEX (n) -> poly_npoints == 0 and i <= nPoints) {
+			i++; thy x[i] = VERTEX (n) -> x; thy y[i] = VERTEX (n) -> y;
 		}
 		*ni =  n;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polygon not created.");
 	}
 }
 
-Thing_implement (PolygonBag, Collection, 0);
-
-static autoPolygonBag Vertices_to_Polygons (Vertices me) {
+Collection Vertices_to_Polygons (Vertices me);
+Collection Vertices_to_Polygons (Vertices me) {
 	try {
-		autoPolygonBag thee = PolygonBag_create ();
-		DoublyLinkedNode node = my front;
+		autoCollection thee = Collection_create (classPolygon, 10);
+		DLLNode ni = my front;
 		do {
-			autoPolygon polygon = Vertices_to_Polygon (me, & node);
-			thy addItem_move (polygon.move());
-		} while (node);
-		return thee;
+			autoPolygon p = Vertices_to_Polygon (me, & ni);
+			Collection_addItem (thee.peek(), p.transfer());
+		} while (ni != 0);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no polygon collection created.");
 	}
 }
 
-static autoPolygonBag Polygons_findClippings (Polygon me, bool use_myinterior, Polygon thee, bool use_thyinterior) {
+Collection Polygons_findClippings (Polygon me, bool use_myinterior, Polygon thee, bool use_thyinterior);
+Collection Polygons_findClippings (Polygon me, bool use_myinterior, Polygon thee, bool use_thyinterior) {
 	try {
-		autoVertices subject = Polygon_to_Vertices (me, true);
-		long ns = subject -> numberOfNodes;
-		autoVertices clip = Polygon_to_Vertices (thee, true);
-		// long nc = clip -> numberOfNodes;
+		autoVertices s = Polygon_to_Vertices (me, true); // subject
+		long ns = s -> numberOfNodes;
+		autoVertices c = Polygon_to_Vertices (thee, true); // clip
+		long nc = c -> numberOfNodes;
 		double eps = 1e-15;
 
 		// phase 1: Get all intersections and add them to both lists
 
-		Vertices_addIntersections (subject.get(), clip.get());
-		long nnewnodes = subject -> numberOfNodes - ns;
-		int firstLocation = Polygon_getLocationOfPoint (thee, my x [1], my y [1], eps);
-		if (nnewnodes == 0) {   // no crossings, either one completely inside the other or separate
-			autoPolygonBag polygons;
-			if (! use_myinterior && ! use_thyinterior && firstLocation == Polygon_INSIDE) {
-				autoPolygon copy = Data_copy (thee);
-				polygons -> addItem_move (copy.move());
+		Vertices_addIntersections (s.peek(), c.peek());
+		long nnewnodes = s -> numberOfNodes - ns;
+		int firstLocation = Polygon_getLocationOfPoint (thee, my x[1], my y[1], eps);
+		if (nnewnodes == 0) { // no crossings, either one completely inside the other or separate
+			autoCollection apc;
+			if (not use_myinterior and not use_thyinterior and firstLocation == Polygon_INSIDE) {
+				autoPolygon ap = Data_copy (thee);
+				Collection_addItem (apc.peek(), ap.transfer());
 			} else {
-				autoPolygon copy = Data_copy (me);
-				polygons -> addItem_move (copy.move());
+				autoPolygon ap = Data_copy (me);
+				Collection_addItem (apc.peek(), ap.transfer());
 			}
-			return polygons;
+			return apc.transfer();
 		}
 
 		// phase 2: Determine intersections as entry / exit points
 
-		Vertices_markEntryPoints (subject.get(), firstLocation);
+		Vertices_markEntryPoints (s.peek(), firstLocation);
 
 		firstLocation = Polygon_getLocationOfPoint (me, thy x[1], thy y[1], eps);
-		Vertices_markEntryPoints (subject.get(), firstLocation);
+		Vertices_markEntryPoints (c.peek(), firstLocation);
 		if (Melder_debug == -1) {
-			Vertices_print (subject.get(), clip.get());
-			MelderInfo_close();
+			Vertices_print (s.peek(), c.peek()); MelderInfo_close();
 			Melder_throw (U"Bail out of Polygons_findClippings.");
 		}
 
@@ -1133,36 +1142,37 @@ static autoPolygonBag Polygons_findClippings (Polygon me, bool use_myinterior, P
 		//  false        false      union
 		//  true         true       clip
 		//  false        true       diff thee - me
-		autoVertices pgs;
-		if (! use_myinterior && ! use_thyinterior) {
-			pgs = Verticeses_connectClippingPathsUnion (subject.get(), clip.get());
+		autoVertices pgs = 0;
+		if (not use_myinterior and not use_thyinterior) {
+			pgs.reset (Verticeses_connectClippingPathsUnion (s.peek(), c.peek()));
 		} else {
-			pgs = Verticeses_connectClippingPaths (subject.get(), use_myinterior, clip.get(), use_thyinterior);
+			pgs.reset (Verticeses_connectClippingPaths (s.peek(), use_myinterior, c.peek(), use_thyinterior));
 		}
 		// phase 4: to Polygons
 
-		autoPolygonBag polygons = Vertices_to_Polygons (pgs.get());
-		return polygons;
+		autoCollection pols = Vertices_to_Polygons (pgs.peek());
+		return pols.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no union Polygon created.");
 	}
 }
 
-autoPolygonBag Polygons_clip (Polygon subject, Polygon clipper) {
+Collection Polygons_clip (Polygon subject, Polygon clipper) {
 	try {
-		autoPolygonBag him = Polygons_findClippings (subject, true, clipper, true);
-		return him;
+		autoCollection him = Polygons_findClippings (subject, true, clipper, true);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (subject, U": no union created.");
 	}
 }
 
-autoPolygon Polygons_union (Polygon me, Polygon thee) {
+Polygon Polygons_union (Polygon me, Polygon thee);
+Polygon Polygons_union (Polygon me, Polygon thee) {
 	try {
-		autoPolygonBag him = Polygons_findClippings (me, false, thee, false);
+		autoCollection him = Polygons_findClippings (me, false, thee, false);
 		//Melder_assert (his size == 1);
-		autoPolygon p = his subtractItem_move (1);
-		return p;
+		autoPolygon p = (Polygon) Collection_subtractItem (him.peek(), 1);
+		return p.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no union created.");
 	}
@@ -1173,31 +1183,32 @@ autoPolygon Polygons_union (Polygon me, Polygon thee) {
 #define RIGHT_CROSSING (a > 0) == (my y[ip1] > my y[i])
 #define MODIFY_CROSSING_NUMBER { if (my y[ip1] > my y[i]) nup++; else nup--; }
 
+int Polygon_getLocationOfPoint (Polygon me, double x0, double y0, double eps);
 int Polygon_getLocationOfPoint (Polygon me, double x0, double y0, double eps) {
 	if (my y[1] == y0 and my x[1] == x0) {
 		return Polygon_VERTEX;
 	}
 
 	long nup = 0;
-	for (long i = 1; i <= my numberOfPoints; i ++) {
+	for (long i = 1; i <= my numberOfPoints; i++) {
 		double a;
 		long ip1 = i < my numberOfPoints ? i + 1 : 1;
-		if (my y [ip1] == y0) {
-			if (my x [ip1] == x0) {
+		if (my y[ip1] == y0) {
+			if (my x[ip1] == x0) {
 				return Polygon_VERTEX;
-			} else if (my y [i] == y0 && ( my x [ip1] > x0 ) == ( my x [i] < x0 )) {
+			} else if (my y[i] == y0 and (my x[ip1] > x0) == (my x[i] < x0)) {
 				return Polygon_EDGE;
 			}
 		}
 		if (CROSSING) {
-			if (my x [i] >= x0) {
-				if (my x [ip1] > x0) MODIFY_CROSSING_NUMBER
+			if (my x[i] >= x0) {
+				if (my x[ip1] > x0) MODIFY_CROSSING_NUMBER
 					else {
 						AREA
 						if (RIGHT_CROSSING) MODIFY_CROSSING_NUMBER
 						}
 			} else {
-				if (my x [ip1] > x0) {
+				if (my x[ip1] > x0) {
 					AREA
 					if (RIGHT_CROSSING) MODIFY_CROSSING_NUMBER
 					}
@@ -1212,10 +1223,10 @@ static inline double cross (double x1, double y1, double x2, double y2, double x
 }
 
 // Code adapted from http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain#C
-autoPolygon Polygon_convexHull (Polygon me) {
+Polygon Polygon_convexHull (Polygon me) {
 	try {
 		if (my numberOfPoints <= 3) {
-			return Data_copy (me);
+			return (Polygon) Data_copy (me);
 		}
 		autoNUMvector<double> x (1, my numberOfPoints), y (1, my numberOfPoints);
 		autoNUMvector<long> hull (1, my numberOfPoints + 2);
@@ -1245,7 +1256,7 @@ autoPolygon Polygon_convexHull (Polygon me) {
 			thy x[i] = x[hull[i]];
 			thy y[i] = y[hull[i]];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no convex hull polygon created.");
 	}
@@ -1254,7 +1265,7 @@ autoPolygon Polygon_convexHull (Polygon me) {
 double Polygon_getAreaOfConvexHull (Polygon me) {
 	try {
 		autoPolygon thee = Polygon_convexHull (me);
-		return Polygon_area (thee.get());
+		return Polygon_area (thee.peek());
 	} catch (MelderError) {
 		Melder_clearError ();
 		return NUMundefined;
diff --git a/dwtools/Polygon_extensions.h b/dwtools/Polygon_extensions.h
index fee00ce..cbb9c52 100644
--- a/dwtools/Polygon_extensions.h
+++ b/dwtools/Polygon_extensions.h
@@ -2,7 +2,7 @@
 #define _Polygon_extensions_h_
 /* Polygon_extensions.h
  *
- * Copyright (C) 1993-2012, 2014, 2015 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -37,34 +37,27 @@
 #define Polygon_VERTEX 5
 
 void Polygon_getExtrema (Polygon me, double *xmin, double *xmax, double *ymin, double *ymax);
-
-autoPolygon Polygon_createSimple (char32 *xystring);
-
-autoPolygon Polygon_createFromRandomVertices (long numberOfVertices, double xmin, double xmax, double ymin, double ymax);
-
-autoPolygon Polygon_simplify (Polygon me);
-
+Polygon Polygon_createSimple (char32 *xystring);
+Polygon Polygon_createFromRandomVertices (long numberOfVertices, double xmin, double xmax, double ymin, double ymax);
+Polygon Polygon_simplify (Polygon me);
 void Polygon_translate (Polygon me, double xt, double yt);
-
 void Polygon_rotate (Polygon me, double alpha, double xc, double yc);
-
 void Polygon_scale (Polygon me, double xs, double ys);
-
 void Polygon_reverseX (Polygon me);
-
 void Polygon_reverseY (Polygon me);
-
-autoPolygon Polygon_circularPermutation (Polygon me, long nshift);
+Polygon Polygon_circularPermutation (Polygon me, long nshift);
 
 // Is point (x,y) Inside, Outside, Boundary (Edge or Vertex) ?
 int Polygon_getLocationOfPoint (Polygon me, double x0, double y0, double eps);
 
-void Polygon_Categories_draw (Polygon me, Categories thee, Graphics graphics, double xmin, double xmax, double ymin, double ymax, int garnish);
+void Polygon_Categories_draw (Polygon me, Any categories, Graphics graphics, double xmin, double xmax,
+	double ymin, double ymax, int garnish);
 /* reverse axis when min > max */
 
-void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax, double ymin, double ymax, double size_mm, const char32 *mark);
+void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax,
+	double ymin, double ymax, double size_mm, const char32 *mark);
 
-autoPolygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, double ymin, double ymax, double level);
+Polygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, double ymin, double ymax, double level);
 /*
 	Post-conditions:
 
@@ -90,18 +83,14 @@ autoPolygon Sound_to_Polygon (Sound me, int channel, double tmin, double tmax, d
 	where clip(y) = y < ymin ? ymin : y > ymax ? ymax ; y;
 */
 
-autoPolygon Sounds_to_Polygon_enclosed (Sound me, Sound thee, int channel, double tmin, double tmax, double ymin, double ymax);
+Polygon Sounds_to_Polygon_enclosed (Sound me, Sound thee, int channel, double tmin, double tmax, double ymin, double ymax);
 /* Area enclosed by the sounds */
 
-autoPolygon Polygons_union (Polygon me, Polygon thee);
-
-Collection_define (PolygonBag, CollectionOf, Polygon) {
-};
-
-autoPolygonBag Polygons_clip (Polygon me, Polygon thee);
+Polygon Polygons_union (Polygon me, Polygon thee);
 
-autoPolygon Polygon_convexHull (Polygon me);
+Collection Polygons_clip (Polygon me, Polygon thee);
 
+Polygon Polygon_convexHull (Polygon me);
 double Polygon_getAreaOfConvexHull (Polygon me);
 
 #endif /* _Polygon_extensions_h_ */
diff --git a/dwtools/Polynomial.cpp b/dwtools/Polynomial.cpp
index ff15a76..d25b9b4 100644
--- a/dwtools/Polynomial.cpp
+++ b/dwtools/Polynomial.cpp
@@ -1,6 +1,6 @@
 /* Polynomial.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
  djmw 20020813 GPL header
  djmw 20030619 Added SVD_compute before SVD_solve
  djmw 20060510 Polynomial_to_Roots: changed behaviour. All roots found are now saved.
- 	In previous version a nullptr pointer was returned. New error messages.
+ 	In previous version a NULL pointer was returned. New error messages.
  djmw 20061021 printf expects %ld for 'long int'
  djmw 20071012 Added: o_CAN_WRITE_AS_ENCODING.h
  djmw 20071201 Melder_warning<n>
@@ -60,7 +60,8 @@
 /* Evaluate polynomial and derivative jointly
 	c[1..n] -> degree n-1 !!
 */
-static void Polynomial_evaluate2 (Polynomial me, double x, double *f, double *df) {
+static void Polynomial_evaluate2 (I, double x, double *f, double *df) {
+	iam (Polynomial);
 	long double p = my coefficients[my numberOfCoefficients], dp = 0, xc = x;
 
 	for (long i = my numberOfCoefficients - 1; i > 0; i--) {
@@ -71,7 +72,8 @@ static void Polynomial_evaluate2 (Polynomial me, double x, double *f, double *df
 }
 
 /* Get value and derivative */
-static void Polynomial_evaluate2_z (Polynomial me, dcomplex *z, dcomplex *p, dcomplex *dp) {
+static void Polynomial_evaluate2_z (I, dcomplex *z, dcomplex *p, dcomplex *dp) {
+	iam (Polynomial);
 	long double pr = my coefficients[my numberOfCoefficients], pi = 0;
 	long double dpr = 0, dpi = 0, x = z -> re, y = z -> im;
 
@@ -121,8 +123,9 @@ static void polynomial_divide (double *u, long m, double *v, long n, double *q,
 	}
 }
 
-static void Polynomial_polish_realroot (Polynomial me, double *x, long maxit) {
-	double xbest = *x, pmin = 1e308;
+static void Polynomial_polish_realroot (I, double *x, long maxit) {
+	iam (Polynomial);
+	double xbest = *x, pmin = 1e38;
 	if (! NUMfpp) {
 		NUMmachar ();
 	}
@@ -147,9 +150,10 @@ static void Polynomial_polish_realroot (Polynomial me, double *x, long maxit) {
 	// Melder_throw (U"Maximum number of iterations exceeded.");
 }
 
-static void Polynomial_polish_complexroot_nr (Polynomial me, dcomplex *z, long maxit) {
+static void Polynomial_polish_complexroot_nr (I, dcomplex *z, long maxit) {
+	iam (Polynomial);
 	dcomplex zbest = *z;
-	double pmin = 1e308;
+	double pmin = 1e38;
 	if (! NUMfpp) {
 		NUMmachar ();
 	}
@@ -184,7 +188,8 @@ static void Polynomial_polish_complexroot_nr (Polynomial me, dcomplex *z, long m
 		pnm1 : polynomial of degree n - 1
 		pnm2 : polynomial of degree n - 2
 */
-static void NUMpolynomial_recurrence (double *pn, long degree, double a, double b, double c, double *pnm1, double *pnm2) {
+static void NUMpolynomial_recurrence (double *pn, long degree, double a,
+                                      double b, double c, double *pnm1, double *pnm2) {
 	Melder_assert (degree > 1);
 
 	pn[1] = b * pnm1[1] + c * pnm2[1];
@@ -261,53 +266,43 @@ long structFunctionTerms :: v_getDegree () {
 	return numberOfCoefficients - 1;
 }
 
-void structFunctionTerms :: v_getExtrema (double x1, double x2, double *p_xmin, double *p_ymin, double *p_xmax, double *p_ymax) { // David, geen aparte naam hier nodig: ???
+void structFunctionTerms :: v_getExtrema (double x1, double x2, double *lxmin, double *ymin, double *lxmax, double *ymax) { // David, geen aparte naam hier nodig: ???
 	long numberOfPoints = 1000;
 
 	// Melder_warning (L"defaultGetExtrema: extrema calculated by sampling the interval");
 
 	double x = x1, dx = (x2 - x1) / (numberOfPoints - 1);
-	double xmn = x, xmx = xmn, ymn = v_evaluate (x), ymx = ymn; // xmin, xmax .. would shadow  member
+	*lxmin = *lxmax = x; *ymin = *ymax = v_evaluate (x);
 	for (long i = 2; i <= numberOfPoints; i++) {
 		x += dx;
 		double y = v_evaluate (x);
-		if (y > ymx) {
-			ymx = y; xmx = x;
-		} else if (y < ymn) {
-			ymn = y; xmn = x;
+		if (y > *ymax) {
+			*ymax = y; *lxmax = x;
+		} else if (y < *ymin) {
+			*ymin = y; *lxmin = x;
 		}
 	}
-	if (p_xmin) {
-		*p_xmin = xmn;
-	}
-	if (p_xmax) {
-		*p_xmax = xmx;
-	}
-	if (p_ymin) {
-		*p_ymin = ymn;
-	}
-	if (p_ymax) {
-		*p_ymax = ymx;
-	}
 }
 
-void FunctionTerms_init (FunctionTerms me, double xmin, double xmax, long numberOfCoefficients) {
+void FunctionTerms_init (I, double xmin, double xmax, long numberOfCoefficients) {
+	iam (FunctionTerms);
 	my coefficients = NUMvector<double> (1, numberOfCoefficients);
 	my numberOfCoefficients = numberOfCoefficients;
 	my xmin = xmin; my xmax = xmax;
 }
 
-autoFunctionTerms FunctionTerms_create (double xmin, double xmax, long numberOfCoefficients) {
+FunctionTerms FunctionTerms_create (double xmin, double xmax, long numberOfCoefficients) {
 	try {
 		autoFunctionTerms me = Thing_new (FunctionTerms);
-		FunctionTerms_init (me.get(), xmin, xmax, numberOfCoefficients);
-		return me;
+		FunctionTerms_init (me.peek(), xmin, xmax, numberOfCoefficients);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FunctionTerms not created.");
 	}
 }
 
-void FunctionTerms_initFromString (FunctionTerms me, double xmin, double xmax, const char32 *s, int allowTrailingZeros) {
+void FunctionTerms_initFromString (I, double xmin, double xmax, const char32 *s, int allowTrailingZeros) {
+	iam (FunctionTerms);
 	long numberOfCoefficients;
 	autoNUMvector<double> numbers (NUMstring_to_numbers (s, &numberOfCoefficients), 1);
 	if (! allowTrailingZeros) {
@@ -320,52 +315,62 @@ void FunctionTerms_initFromString (FunctionTerms me, double xmin, double xmax, c
 	NUMvector_copyElements (numbers.peek(), my coefficients, 1, numberOfCoefficients);
 }
 
-long FunctionTerms_getDegree (FunctionTerms me) {
+long FunctionTerms_getDegree (I) {
+	iam (FunctionTerms);
 	return my v_getDegree ();
 }
 
-void FunctionTerms_setDomain (FunctionTerms me, double xmin, double xmax) {
+void FunctionTerms_setDomain (I, double xmin, double xmax) {
+	iam (FunctionTerms);
 	my xmin = xmin; my xmax = xmax;
 }
 
-double FunctionTerms_evaluate (FunctionTerms me, double x) {
+double FunctionTerms_evaluate (I, double x) {
+	iam (FunctionTerms);
 	return my v_evaluate (x);
 }
 
-void FunctionTerms_evaluate_z (FunctionTerms me, dcomplex *z, dcomplex *p) {
+void FunctionTerms_evaluate_z (I, dcomplex *z, dcomplex *p) {
+	iam (FunctionTerms);
 	my v_evaluate_z (z, p);
 }
 
-void FunctionTerms_evaluateTerms (FunctionTerms me, double x, double terms[]) {
+void FunctionTerms_evaluateTerms (I, double x, double terms[]) {
+	iam (FunctionTerms);
 	my v_evaluateTerms (x, terms);
 }
 
-void FunctionTerms_getExtrema (FunctionTerms me, double x1, double x2, double *xmin, double *ymin, double *xmax, double *ymax) {
+void FunctionTerms_getExtrema (I, double x1, double x2, double *xmin, double *ymin, double *xmax, double *ymax) {
+	iam (FunctionTerms);
 	if (x2 <= x1) {
 		x1 = my xmin; x2 = my xmax;
 	}
 	my v_getExtrema (x1, x2, xmin, ymin, xmax, ymax);
 }
 
-double FunctionTerms_getMinimum (FunctionTerms me, double x1, double x2) {
+double FunctionTerms_getMinimum (I, double x1, double x2) {
+	iam (FunctionTerms);
 	double xmin, xmax, ymin, ymax;
 	FunctionTerms_getExtrema (me, x1, x2, &xmin, &ymin, &xmax, &ymax);
 	return ymin;
 }
 
-double FunctionTerms_getXOfMinimum (FunctionTerms me, double x1, double x2) {
+double FunctionTerms_getXOfMinimum (I, double x1, double x2) {
+	iam (FunctionTerms);
 	double xmin, xmax, ymin, ymax;
 	FunctionTerms_getExtrema (me, x1, x2, &xmin, &ymin, &xmax, &ymax);
 	return xmin;
 }
 
-double FunctionTerms_getMaximum (FunctionTerms me, double x1, double x2) {
+double FunctionTerms_getMaximum (I, double x1, double x2) {
+	iam (FunctionTerms);
 	double xmin, xmax, ymin, ymax;
 	FunctionTerms_getExtrema (me, x1, x2, &xmin, &ymin, &xmax, &ymax);
 	return ymax;
 }
 
-double FunctionTerms_getXOfMaximum (FunctionTerms me, double x1, double x2) {
+double FunctionTerms_getXOfMaximum (I, double x1, double x2) {
+	iam (FunctionTerms);
 	double xmin, xmax, ymin, ymax;
 	FunctionTerms_getExtrema (me, x1, x2, &xmin, &ymin, &xmax, &ymax);
 	return xmax;
@@ -431,7 +436,9 @@ static void Graphics_polyline_clipTopBottom (Graphics g, double *x, double *y, l
 	}
 }
 
-void FunctionTerms_draw (FunctionTerms me, Graphics g, double xmin, double xmax, double ymin, double ymax, int extrapolate, int garnish) {
+void FunctionTerms_draw (I, Graphics g, double xmin, double xmax, double ymin,
+                         double ymax, int extrapolate, int garnish) {
+	iam (FunctionTerms);
 	long numberOfPoints = 1000;
 
 	autoNUMvector<double> y (1, numberOfPoints + 1);
@@ -475,26 +482,29 @@ void FunctionTerms_draw (FunctionTerms me, Graphics g, double xmin, double xmax,
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-void FunctionTerms_drawBasisFunction (FunctionTerms me, Graphics g, long index, double xmin, double xmax, double ymin, double ymax, int extrapolate, int garnish) {
+void FunctionTerms_drawBasisFunction (I, Graphics g, long index, double xmin,
+                                      double xmax, double ymin, double ymax, int extrapolate, int garnish) {
+	iam (FunctionTerms);
 	if (index < 1 || index > my numberOfCoefficients) {
 		return;
 	}
-	autoFunctionTerms thee = Data_copy (me);
+	autoFunctionTerms thee = (FunctionTerms) Data_copy (me);
 
 	for (long i = 1; i <= my numberOfCoefficients; i++) {
 		thy coefficients[i] = 0;
 	}
 	thy coefficients[index] = 1;
 	thy numberOfCoefficients = index;
-	FunctionTerms_draw (thee.get(), g, xmin, xmax, ymin, ymax, extrapolate, garnish);
+	FunctionTerms_draw (thee.peek(), g, xmin, xmax, ymin, ymax, extrapolate, garnish);
 }
 
-void FunctionTerms_setCoefficient (FunctionTerms me, long index, double value) {
+void FunctionTerms_setCoefficient (I, long index, double value) {
+	iam (FunctionTerms);
 	if (index < 1 || index > my numberOfCoefficients) {
 		Melder_throw (U"Idex out of range [1, ", my numberOfCoefficients, U"].");
 	}
@@ -537,68 +547,56 @@ void structPolynomial :: v_evaluateTerms (double x, double terms[]) {
 	}
 }
 
-void structPolynomial :: v_getExtrema (double x1, double x2, double *p_xmin, double *p_ymin, double *p_xmax, double *p_ymax) {
+void structPolynomial :: v_getExtrema (double x1, double x2, double *lxmin, double *ymin, double *lxmax, double *ymax) {
 	try {
 		long degree = numberOfCoefficients - 1;
 
-		double xmn = x1, ymn = v_evaluate (x1);
-		double xmx = x2, ymx = v_evaluate (x2);
-		if (ymn > ymx) {
+		*lxmin = x1; *ymin = v_evaluate (x1);
+		*lxmax = x2; *ymax = v_evaluate (x2);
+		if (*ymin > *ymax) {
 			/* Swap */
-			double t = ymn; ymn = ymx; ymx = t;
-			t = xmn; xmn = xmx; xmx = t;
+			double t = *ymin; *ymin = *ymax; *ymax = t;
+			t = *lxmin; *lxmin = *lxmax; *lxmax = t;
 		}
 
 		if (degree < 2) {
 			return;
 		}
 		autoPolynomial d = Polynomial_getDerivative (this);
-		autoRoots r = Polynomial_to_Roots (d.get());
+		autoRoots r = Polynomial_to_Roots (d.peek());
 
 		for (long i = 1; i <= degree - 1; i++) {
 			double x = (r -> v[i]).re;
 			if (x > x1 && x < x2) {
 				double y = v_evaluate (x);
-				if (y > ymx) {
-					ymx = y; xmx = x;
-				} else if (y < ymn) {
-					ymn = y; xmn = x;
+				if (y > *ymax) {
+					*ymax = y; *lxmax = x;
+				} else if (y < *ymin) {
+					*ymin = y; *lxmin = x;
 				}
 			}
 		}
-		if (p_xmin) {
-			*p_xmin = xmn;
-		}
-		if (p_xmax) {
-			*p_xmax = xmx;
-		}
-		if (p_ymin) {
-			*p_ymin = ymn;
-		}
-		if (p_ymax) {
-			*p_ymax = ymx;
-		}
 	} catch (MelderError) {
-		structFunctionTerms :: v_getExtrema (x1, x2, p_xmin, p_ymin, p_xmax, p_ymax);
+		structFunctionTerms :: v_getExtrema (x1, x2, lxmin, ymin, lxmax, ymax);
 		Melder_clearError ();
 	}
 }
 
-autoPolynomial Polynomial_create (double lxmin, double lxmax, long degree) {
+Polynomial Polynomial_create (double lxmin, double lxmax, long degree) {
 	try {
 		autoPolynomial me = Thing_new (Polynomial);
-		FunctionTerms_init (me.get(), lxmin, lxmax, degree + 1);
-		return me;
+		FunctionTerms_init (me.peek(), lxmin, lxmax, degree + 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polynomial not created.");
 	}
 }
 
-autoPolynomial Polynomial_createFromString (double lxmin, double lxmax, const char32 *s) {
+Polynomial Polynomial_createFromString (double lxmin, double lxmax, const char32 *s) {
 	try {
 		autoPolynomial me = Thing_new (Polynomial);
-		FunctionTerms_initFromString (me.get(), lxmin, lxmax, s, 0);
-		return me;
+		FunctionTerms_initFromString (me.peek(), lxmin, lxmax, s, 0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polynomial not created from string.");
 	}
@@ -624,14 +622,14 @@ void Polynomial_scaleCoefficients_monic (Polynomial me) {
 		x' = (2 * x - (xmin + xmax)) / (xmax - xmin)   -1 < x' < x.
 	This procedure transforms x' back to x.
 */
-autoPolynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax) {
+Polynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax) {
 	try {
 		Melder_assert (xmin < xmax);
 
 		autoPolynomial thee = Polynomial_create (xmin, xmax, my numberOfCoefficients - 1);
 		thy coefficients[1] = my coefficients[1];
 		if (my numberOfCoefficients == 1) {
-			return thee;
+			return thee.transfer();
 		}
 
 		// x = a x + b
@@ -644,7 +642,7 @@ autoPolynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax) {
 		thy coefficients[2] = my coefficients[2] * a;
 		thy coefficients[1] += my coefficients[2] * b;
 		if (my numberOfCoefficients == 2) {
-			return thee;
+			return thee.transfer();
 		}
 		autoNUMvector<double> buf (1, 3 * my numberOfCoefficients);
 		double *pn = buf.peek();
@@ -666,13 +664,14 @@ autoPolynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax) {
 			pnm2 = t1;
 			pn = t2;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"");
 	}
 }
 
-double Polynomial_evaluate (Polynomial me, double x) {
+double Polynomial_evaluate (I, double x) {
+	iam (Polynomial);
 	return my v_evaluate (x);
 }
 
@@ -696,7 +695,7 @@ static void Polynomial_evaluate_z_cart (Polynomial me, double r, double phi, dou
 }
 
 
-autoPolynomial Polynomial_getDerivative (Polynomial me) {
+Polynomial Polynomial_getDerivative (Polynomial me) {
 	try {
 		if (my numberOfCoefficients == 1) {
 			return Polynomial_create (my xmin, my xmax, 0);
@@ -705,19 +704,19 @@ autoPolynomial Polynomial_getDerivative (Polynomial me) {
 		for (long i = 1; i <= thy numberOfCoefficients; i++) {
 			thy coefficients[i] = i * my coefficients[i + 1];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no derivative created.");
 	}
 }
 
-autoPolynomial Polynomial_getPrimitive (Polynomial me) {
+Polynomial Polynomial_getPrimitive (Polynomial me) {
 	try {
 		autoPolynomial thee = Polynomial_create (my xmin, my xmax, my numberOfCoefficients);
 		for (long i = 1; i <= my numberOfCoefficients; i++) {
 			thy coefficients[i + 1] = my coefficients[i] / i;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no primitive created.");
 	}
@@ -728,11 +727,11 @@ double Polynomial_getArea (Polynomial me, double xmin, double xmax) {
 		xmin = my xmin; xmax = my xmax;
 	}
 	autoPolynomial p = Polynomial_getPrimitive (me);
-	double area = FunctionTerms_evaluate (p.get(), xmax) - FunctionTerms_evaluate (p.get(), xmin);
+	double area = FunctionTerms_evaluate (p.peek(), xmax) - FunctionTerms_evaluate (p.peek(), xmin);
 	return area;
 }
 
-autoPolynomial Polynomials_multiply (Polynomial me, Polynomial thee) {
+Polynomial Polynomials_multiply (Polynomial me, Polynomial thee) {
 	try {
 		long n1 = my numberOfCoefficients, n2 = thy numberOfCoefficients;
 
@@ -748,31 +747,30 @@ autoPolynomial Polynomials_multiply (Polynomial me, Polynomial thee) {
 				his coefficients [k] += my coefficients[i] * thy coefficients[j];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polynomials not multiplied.");
 	}
 }
 
-void Polynomials_divide (Polynomial me, Polynomial thee, autoPolynomial *q, autoPolynomial *r) {
+void Polynomials_divide (Polynomial me, Polynomial thee, Polynomial *q, Polynomial *r) {
 	long degree, m = my numberOfCoefficients, n = thy numberOfCoefficients;
 
-	if (! q  && ! r) {
+	if (*q == 0 && *r == 0) {
 		return;
 	}
 	autoNUMvector<double> qc (1, m);
 	autoNUMvector<double> rc (1, m);
-	autoPolynomial aq, ar;
+	autoPolynomial aq = 0, ar = 0;
 	polynomial_divide (my coefficients, m, thy coefficients, n, qc.peek(), rc.peek());
-	if (q) {
+	if (*q) {
 		degree = MAX (m - n, 0);
-		aq = Polynomial_create (my xmin, my xmax, degree);
+		aq.reset (Polynomial_create (my xmin, my xmax, degree));
 		if (degree >= 0) {
 			NUMvector_copyElements (qc.peek(), aq -> coefficients, 1, degree + 1);
 		}
-		*q = aq.move();
 	}
-	if (r) {
+	if (*r) {
 		degree = n - 2;
 		if (m >= n) {
 			degree --;
@@ -783,10 +781,11 @@ void Polynomials_divide (Polynomial me, Polynomial thee, autoPolynomial *q, auto
 		while (degree > 1 && rc[degree] == 0) {
 			degree--;
 		}
-		ar = Polynomial_create (my xmin, my xmax, degree);
+		ar.reset (Polynomial_create (my xmin, my xmax, degree));
 		NUMvector_copyElements (rc.peek(), ar -> coefficients, 1, degree + 1);
-		*r = ar.move();
 	}
+	*q = aq.transfer();
+	*r = ar.transfer();
 }
 
 
@@ -843,37 +842,38 @@ void structLegendreSeries :: v_evaluateTerms (double x, double terms[]) {
 	}
 }
 
-void structLegendreSeries :: v_getExtrema (double x1, double x2, double *p_xmin, double *p_ymin, double *p_xmax, double *p_ymax) {
+void structLegendreSeries :: v_getExtrema (double x1, double x2,
+        double *lxmin, double *ymin, double *lxmax, double *ymax) {
 	try {
 		autoPolynomial p = LegendreSeries_to_Polynomial (this);
-		FunctionTerms_getExtrema (p.get(), x1, x2, p_xmin, p_ymin, p_xmax, p_ymax);
+		FunctionTerms_getExtrema (p.peek(), x1, x2, lxmin, ymin, lxmax, ymax);
 	} catch (MelderError) {
-		structFunctionTerms :: v_getExtrema (x1, x2, p_xmin, p_ymin, p_xmax, p_ymax);
+		structFunctionTerms :: v_getExtrema (x1, x2, lxmin, ymin, lxmax, ymax);
 		Melder_clearError ();
 	}
 }
 
-autoLegendreSeries LegendreSeries_create (double xmin, double xmax, long numberOfPolynomials) {
+LegendreSeries LegendreSeries_create (double xmin, double xmax, long numberOfPolynomials) {
 	try {
 		autoLegendreSeries me = Thing_new (LegendreSeries);
-		FunctionTerms_init (me.get(), xmin, xmax, numberOfPolynomials);
-		return me;
+		FunctionTerms_init (me.peek(), xmin, xmax, numberOfPolynomials);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LegendreSeries not created.");
 	}
 }
 
-autoLegendreSeries LegendreSeries_createFromString (double xmin, double xmax, const char32 *s) {
+LegendreSeries LegendreSeries_createFromString (double xmin, double xmax, const char32 *s) {
 	try {
 		autoLegendreSeries me = Thing_new (LegendreSeries);
-		FunctionTerms_initFromString (me.get(), xmin, xmax, s, 0);
-		return me;
+		FunctionTerms_initFromString (me.peek(), xmin, xmax, s, 0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LegendreSeries not created from string.");
 	}
 }
 
-autoLegendreSeries LegendreSeries_getDerivative (LegendreSeries me) {
+LegendreSeries LegendreSeries_getDerivative (LegendreSeries me) {
 	try {
 		autoLegendreSeries thee = LegendreSeries_create (my xmin, my xmax, my numberOfCoefficients - 1);
 
@@ -885,20 +885,20 @@ autoLegendreSeries LegendreSeries_getDerivative (LegendreSeries me) {
 				thy coefficients [n2 + 1] += (2 * n - 4 * k - 1) * my coefficients[n + 1];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no derivative created.");
 	}
 }
 
-autoPolynomial LegendreSeries_to_Polynomial (LegendreSeries me) {
+Polynomial LegendreSeries_to_Polynomial (LegendreSeries me) {
 	try {
 		double xmin = -1, xmax = 1;
 		autoPolynomial thee = Polynomial_create (xmin, xmax, my numberOfCoefficients - 1);
 
 		thy coefficients[1] = my coefficients[1]; /* * p[1] */
 		if (my numberOfCoefficients == 1) {
-			return thee;
+			return thee.transfer();
 		}
 
 		thy coefficients[2] = my coefficients[2]; /* * p[2] */
@@ -926,9 +926,9 @@ autoPolynomial LegendreSeries_to_Polynomial (LegendreSeries me) {
 			}
 		}
 		if (my xmin != xmin || my xmax != xmax) {
-			thee = Polynomial_scaleX (thee.get(), my xmin, my xmax);
+			thee.reset (Polynomial_scaleX (thee.peek(), my xmin, my xmax));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Polynomial.");
 	}
@@ -938,11 +938,11 @@ autoPolynomial LegendreSeries_to_Polynomial (LegendreSeries me) {
 
 Thing_implement (Roots, ComplexVector, 0);
 
-autoRoots Roots_create (long numberOfRoots) {
+Roots Roots_create (long numberOfRoots) {
 	try {
 		autoRoots me = Thing_new (Roots);
-		ComplexVector_init (me.get(), 1, numberOfRoots);
-		return me;
+		ComplexVector_init (me.peek(), 1, numberOfRoots);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Roots not created.");
 	}
@@ -979,7 +979,8 @@ static void NUMdcvector_extrema_im (dcomplex v[], long lo, long hi, double *min,
 	}
 }
 
-void Roots_draw (Roots me, Graphics g, double rmin, double rmax, double imin, double imax, const char32 *symbol, int fontSize, int garnish) {
+void Roots_draw (Roots me, Graphics g, double rmin, double rmax, double imin,
+                 double imax, const char32 *symbol, int fontSize, int garnish) {
 	int oldFontSize = Graphics_inqFontSize (g);
 	double eps = 1e-6;
 
@@ -1018,19 +1019,19 @@ void Roots_draw (Roots me, Graphics g, double rmin, double rmax, double imin, do
 	if (garnish) {
 		Graphics_drawInnerBox (g);
 		if (rmin * rmax < 0) {
-			Graphics_markLeft (g, 0.0, true, true, true, U"0");
+			Graphics_markLeft (g, 0, 1, 1, 1, U"0");
 		}
 		if (imin * imax < 0) {
-			Graphics_markBottom (g, 0.0, true, true, true, U"0");
+			Graphics_markBottom (g, 0, 1, 1, 1, U"0");
 		}
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Imaginary part");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Real part");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Imaginary part");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Real part");
 	}
 }
 
-autoRoots Polynomial_to_Roots (Polynomial me) {
+Roots Polynomial_to_Roots (Polynomial me) {
 	try {
 		long np1 = my numberOfCoefficients, n = np1 - 1, n2 = n * n;
 
@@ -1092,8 +1093,8 @@ autoRoots Polynomial_to_Roots (Polynomial me) {
 			(thy v[i]).re = wr[ioffset + i];
 			(thy v[i]).im = wi[ioffset + i];
 		}
-		Roots_and_Polynomial_polish (thee.get(), me);
-		return thee;
+		Roots_and_Polynomial_polish (thee.peek(), me);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no roots can be calculated.");
 	}
@@ -1103,7 +1104,9 @@ void Roots_sort (Roots me) {
 	(void) me;
 }
 
-// Precondition: complex roots occur in pairs (a,bi), (a,-bi) with b>0
+/*
+	Precondition: complex roots occur in pairs (a,bi), (a,-bi) with b>0
+*/
 void Roots_and_Polynomial_polish (Roots me, Polynomial thee) {
 	long i = my min, maxit = 80;
 	while (i <= my max) {
@@ -1121,7 +1124,7 @@ void Roots_and_Polynomial_polish (Roots me, Polynomial thee) {
 	}
 }
 
-autoPolynomial Roots_to_Polynomial (Roots me) {
+Polynomial Roots_to_Polynomial (Roots me) {
 	try {
 		(void) me;
 		throw MelderError();
@@ -1147,7 +1150,7 @@ dcomplex Roots_evaluate_z (Roots me, dcomplex z) {
 	return result;
 }
 
-autoSpectrum Roots_to_Spectrum (Roots me, double nyquistFrequency, long numberOfFrequencies, double radius) {
+Spectrum Roots_to_Spectrum (Roots me, double nyquistFrequency, long numberOfFrequencies, double radius) {
 	try {
 		if (numberOfFrequencies < 2) {
 			Melder_throw (U"NumberOfFrequencies must be greater or equal 2.");
@@ -1162,7 +1165,7 @@ autoSpectrum Roots_to_Spectrum (Roots me, double nyquistFrequency, long numberOf
 			dcomplex s = Roots_evaluate_z (me, z);
 			thy z[1][i] = s.re; thy z[2][i] = s.im;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum calculated.");
 	}
@@ -1180,7 +1183,7 @@ dcomplex Roots_getRoot (Roots me, long index) {
 }
 
 /* Can be speeded up by doing a FFT */
-autoSpectrum Polynomial_to_Spectrum (Polynomial me, double nyquistFrequency, long numberOfFrequencies, double radius) {
+Spectrum Polynomial_to_Spectrum (Polynomial me, double nyquistFrequency, long numberOfFrequencies, double radius) {
 	try {
 		if (numberOfFrequencies < 2) {
 			Melder_throw (U"NumberOfFrequencies must be greater or equal 2.");
@@ -1193,7 +1196,7 @@ autoSpectrum Polynomial_to_Spectrum (Polynomial me, double nyquistFrequency, lon
 			Polynomial_evaluate_z_cart (me, radius, (i - 1) * phi, &re, &im);
 			thy z[1][i] = re; thy z[2][i] = im;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum calculated.");
 	}
@@ -1253,36 +1256,37 @@ void structChebyshevSeries :: v_evaluateTerms (double x, double *terms) {
 	}
 }
 
-void structChebyshevSeries :: v_getExtrema (double x1, double x2, double *p_xmin, double *p_ymin, double *p_xmax, double *p_ymax) {
+void structChebyshevSeries :: v_getExtrema (double x1, double x2,
+        double *lxmin, double *ymin, double *lxmax, double *ymax) {
 	try {
 		autoPolynomial p = ChebyshevSeries_to_Polynomial (this);
-		FunctionTerms_getExtrema (p.get(), x1, x2, p_xmin, p_ymin, p_xmax, p_ymax);
+		FunctionTerms_getExtrema (p.peek(), x1, x2, lxmin, ymin, lxmax, ymax);
 	} catch (MelderError) {
 		Melder_throw (this, U"Extrema cannot be calculated");
 	}
 }
 
-autoChebyshevSeries ChebyshevSeries_create (double lxmin, double lxmax, long numberOfPolynomials) {
+ChebyshevSeries ChebyshevSeries_create (double lxmin, double lxmax, long numberOfPolynomials) {
 	try {
 		autoChebyshevSeries me = Thing_new (ChebyshevSeries);
-		FunctionTerms_init (me.get(), lxmin, lxmax, numberOfPolynomials);
-		return me;
+		FunctionTerms_init (me.peek(), lxmin, lxmax, numberOfPolynomials);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ChebyshevSeries not created.");
 	}
 }
 
-autoChebyshevSeries ChebyshevSeries_createFromString (double lxmin, double lxmax, const char32 *s) {
+ChebyshevSeries ChebyshevSeries_createFromString (double lxmin, double lxmax, const char32 *s) {
 	try {
 		autoChebyshevSeries me = Thing_new (ChebyshevSeries);
-		FunctionTerms_initFromString (me.get(), lxmin, lxmax, s, 0);
-		return me;
+		FunctionTerms_initFromString (me.peek(), lxmin, lxmax, s, 0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ChebyshevSeries not created from string.");
 	};
 }
 
-autoPolynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me) {
+Polynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me) {
 	try {
 		double xmin = -1, xmax = 1;
 
@@ -1290,7 +1294,7 @@ autoPolynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me) {
 
 		thy coefficients[1] = my coefficients[1] /* * p[1] */;
 		if (my numberOfCoefficients == 1) {
-			return thee;
+			return thee.transfer();
 		}
 
 		thy coefficients[2] = my coefficients[2];
@@ -1319,18 +1323,19 @@ autoPolynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me) {
 			}
 		}
 		if (my xmin != xmin || my xmax != xmax) {
-			thee = Polynomial_scaleX (thee.get(), my xmin, my xmax);
+			thee.reset (Polynomial_scaleX (thee.peek(), my xmin, my xmax));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"; not converted to Polynomial.");
 	};
 }
 
 
-void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freeze[], double tol, int ic, autoCovariance *c) {
+void FunctionTerms_and_RealTier_fit (I, thou, int *freeze, double tol, int ic, Covariance *c) {
+	iam (FunctionTerms); thouart (RealTier);
 	try {
-		long numberOfData = thy points.size;
+		long numberOfData = thy points -> size;
 		long numberOfParameters = my numberOfCoefficients;
 		long numberOfFreeParameters = numberOfParameters;
 
@@ -1342,9 +1347,9 @@ void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freeze
 		autoNUMvector<double> terms (1, my numberOfCoefficients);
 		autoNUMvector<double> p (1, numberOfParameters);
 		autoNUMvector<double> y_residual (1, numberOfData);
-		autoCovariance ac;
+		autoCovariance ac = 0;
 		if (ic) {
-			ac = (Covariance_create (numberOfParameters));
+			ac.reset (Covariance_create (numberOfParameters));
 		}
 
 		long k = 1;
@@ -1368,16 +1373,14 @@ void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freeze
 			Melder_throw (U"Not enough data points in fit interval.");
 		}
 
-		for (long i = 1; i <= numberOfData; i ++) {
+		for (long i = 1; i <= numberOfData; i++) {
 			// Only 'residual variance' must be explained by the model
 			// Evaluate only with the frozen parameters
 
-			RealPoint point = thy points.at [i];
-			double x = point -> number;
-			double y = point -> value;
-			double** u = svd -> u;
-			double y_frozen = ( numberOfFreeParameters == numberOfParameters ? 0.0 :
-			                    FunctionTerms_evaluate (frozen.get(), x));
+			RealPoint point = (RealPoint) thy points -> item [i];
+			double x = point -> number, y = point -> value, **u = svd -> u;
+			double y_frozen = numberOfFreeParameters == numberOfParameters ? 0 :
+			                  FunctionTerms_evaluate (frozen.peek(), x);
 
 			y_residual[i] = (y - y_frozen) / sigma;
 
@@ -1385,10 +1388,9 @@ void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freeze
 
 			FunctionTerms_evaluateTerms (me, x, terms.peek());
 			k = 0;
-			for (long j = 1; j <= my numberOfCoefficients; j ++) {
-				if (! freeze || ! freeze [j]) {
-					k++;
-					u [i] [k] = terms [j] / sigma;
+			for (long j = 1; j <= my numberOfCoefficients; j++) {
+				if (! freeze || ! freeze[j]) {
+					k++; u[i][k] = terms[j] / sigma;
 				}
 			}
 		}
@@ -1396,55 +1398,58 @@ void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freeze
 		// SVD and evaluation of the singular values
 
 		if (tol > 0) {
-			SVD_setTolerance (svd.get(), tol);
+			SVD_setTolerance (svd.peek(), tol);
 		}
 
-		SVD_compute (svd.get());
-		SVD_solve (svd.get(), y_residual.peek(), p.peek());
+		SVD_compute (svd.peek());
+		SVD_solve (svd.peek(), y_residual.peek(), p.peek());
 
 		// Put fitted values at correct position
 		k = 1;
-		for (long j = 1; j <= my numberOfCoefficients; j ++) {
+		for (long j = 1; j <= my numberOfCoefficients; j++) {
 			if (! freeze || ! freeze[j]) {
-				my coefficients [j] = p [k ++];
+				my coefficients[j] = p[k++];
 			}
 		}
 
 		if (ic) {
 			svdcvm (svd -> v, numberOfFreeParameters, numberOfParameters, freeze, svd -> d, ac -> data);
 		}
-		*c = ac.move();
+		*c = ac.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": no fit.");
 	}
 }
 
 
-autoPolynomial RealTier_to_Polynomial (RealTier me, long degree, double tol, int ic, autoCovariance *cvm) {
+Polynomial RealTier_to_Polynomial (I, long degree, double tol, int ic, Covariance *cvm) {
+	iam (RealTier);
 	try {
 		autoPolynomial thee = Polynomial_create (my xmin, my xmax, degree);
-		FunctionTerms_and_RealTier_fit (thee.get(), me, 0, tol, ic, cvm);
-		return thee;
+		FunctionTerms_and_RealTier_fit (thee.peek(), me, 0, tol, ic, cvm);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Polynomial fitted.");
 	}
 }
 
-autoLegendreSeries RealTier_to_LegendreSeries (RealTier me, long degree, double tol, int ic, autoCovariance *cvm) {
+LegendreSeries RealTier_to_LegendreSeries (I, long degree, double tol, int ic, Covariance *cvm) {
+	iam (RealTier);
 	try {
 		autoLegendreSeries thee = LegendreSeries_create (my xmin, my xmax, degree);
-		FunctionTerms_and_RealTier_fit (thee.get(), me, 0, tol, ic, cvm);
-		return thee;
+		FunctionTerms_and_RealTier_fit (thee.peek(), me, 0, tol, ic, cvm);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no LegendreSeries fitted.");
 	}
 }
 
-autoChebyshevSeries RealTier_to_ChebyshevSeries (RealTier me, long degree, double tol, int ic, autoCovariance *cvm) {
+ChebyshevSeries RealTier_to_ChebyshevSeries (I, long degree, double tol, int ic, Covariance *cvm) {
+	iam (RealTier);
 	try {
 		autoChebyshevSeries thee = ChebyshevSeries_create (my xmin, my xmax, degree);
-		FunctionTerms_and_RealTier_fit (thee.get(), me, 0, tol, ic, cvm);
-		return thee;
+		FunctionTerms_and_RealTier_fit (thee.peek(), me, 0, tol, ic, cvm);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U":no ChebyshevSeries fitted.");
 	};
@@ -1576,7 +1581,8 @@ long structSpline :: v_getOrder () {
 }
 
 /* Precondition: FunctionTerms part inited + degree */
-static void Spline_initKnotsFromString (Spline me, long degree, const char32 *interiorKnots) {
+static void Spline_initKnotsFromString (I, long degree, const char32 *interiorKnots) {
+	iam (Spline);
 
 	if (degree > Spline_MAXIMUM_DEGREE) {
 		Melder_throw (U"Degree must be <= 20.");
@@ -1608,7 +1614,8 @@ static void Spline_initKnotsFromString (Spline me, long degree, const char32 *in
 	my knots[my numberOfKnots] = my xmax;
 }
 
-void Spline_init (Spline me, double xmin, double xmax, long degree, long numberOfCoefficients, long numberOfKnots) {
+void Spline_init (I, double xmin, double xmax, long degree, long numberOfCoefficients, long numberOfKnots) {
+	iam (Spline);
 
 	if (degree > Spline_MAXIMUM_DEGREE) {
 		Melder_throw (U"Spline_init: degree must be <= 20.");
@@ -1621,7 +1628,8 @@ void Spline_init (Spline me, double xmin, double xmax, long degree, long numberO
 	my knots[numberOfKnots] = xmax;
 }
 
-void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void Spline_drawKnots (I, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish) {
+	iam (Spline);
 	long order = Spline_getOrder (me);
 
 	if (xmax <= xmin) {
@@ -1640,7 +1648,7 @@ void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double y
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 
 	if (my knots[1] >= xmin && my knots[1] <= xmax) {
-		Graphics_markTop (g, my knots[1], false, true, true,
+		Graphics_markTop (g, my knots[1], 0, 1, 1,
 				! garnish ? U"" :
 				order == 1 ? U"t__1_" :
 				order == 2 ? U"{t__1_, t__2_}" :
@@ -1649,7 +1657,7 @@ void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double y
 	}
 	for (long i = 2; i <= my numberOfKnots - 1; i++) {
 		if (my knots[i] >= xmin && my knots[i] <= xmax) {
-			Graphics_markTop (g, my knots[i], false, true, true,
+			Graphics_markTop (g, my knots[i], 0, 1, 1,
 					! garnish ? U"" :
 					Melder_cat (U"t__", i + order - 1, U"_")
 				);
@@ -1657,7 +1665,7 @@ void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double y
 	}
 	if (my knots[my numberOfKnots] >= xmin && my knots[my numberOfKnots] <= xmax) {
 		long numberOfKnots = ! garnish ? 0 : my numberOfKnots + 2 * (order - 1);
-		Graphics_markTop (g, my knots[my numberOfKnots], false, true, true,
+		Graphics_markTop (g, my knots[my numberOfKnots], 0, 1, 1,
 				! garnish ? U"" :
 				order == 1 ? Melder_cat (U"t__", numberOfKnots, U"_") :
 				order == 2 ? Melder_cat (U"{t__", numberOfKnots - 1, U"_, t__", numberOfKnots, U"_}") :
@@ -1666,12 +1674,14 @@ void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double y
 	}
 }
 
-long Spline_getOrder (Spline me) {
+long Spline_getOrder (I) {
+	iam (Spline);
 	return my v_getOrder ();
 }
 
-autoSpline Spline_scaleX (Spline me, double xmin, double xmax) {
+Spline Spline_scaleX (I, double xmin, double xmax) {
 	try {
+		iam (Spline);
 		Melder_assert (xmin < xmax);
 
 		autoSpline thee = Data_copy (me);
@@ -1688,7 +1698,7 @@ autoSpline Spline_scaleX (Spline me, double xmin, double xmax) {
 		for (long i = 1; i <= my numberOfKnots; i++) {
 			thy knots[i] = a * my knots[i] + b;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Scaled Spline not created.");
 	}
@@ -1703,9 +1713,8 @@ double structMSpline :: v_evaluate (double x) {
 
 	double result = 0;
 	for (long i = 1; i <= numberOfCoefficients; i++) {
-		if (coefficients[i] != 0) {
-			result += coefficients[i] * NUMmspline2 (knots, numberOfKnots, degree + 1, i, x);
-		}
+		if (coefficients[i] != 0) result += coefficients[i] *
+			                                    NUMmspline2 (knots, numberOfKnots, degree + 1, i, x);
 	}
 	return result;
 }
@@ -1722,27 +1731,27 @@ void structMSpline :: v_evaluateTerms (double x, double *terms) {
 
 Thing_implement (MSpline, Spline, 0);
 
-autoMSpline MSpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots) {
+MSpline MSpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots) {
 	try {
 		autoMSpline me = Thing_new (MSpline);
 		long numberOfCoefficients = numberOfInteriorKnots + degree + 1;
 		long numberOfKnots = numberOfCoefficients + degree + 1;
-		Spline_init (me.get(), xmin, xmax, degree, numberOfCoefficients, numberOfKnots);
-		return me;
+		Spline_init (me.peek(), xmin, xmax, degree, numberOfCoefficients, numberOfKnots);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MSpline not created.");
 	}
 }
 
-autoMSpline MSpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots) {
+MSpline MSpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots) {
 	try {
 		if (degree > Spline_MAXIMUM_DEGREE) {
 			Melder_throw (U"Degree should be <= 20.");
 		}
 		autoMSpline me = Thing_new (MSpline);
-		FunctionTerms_initFromString (me.get(), xmin, xmax, coef, 1);
-		Spline_initKnotsFromString (me.get(), degree, interiorKnots);
-		return me;
+		FunctionTerms_initFromString (me.peek(), xmin, xmax, coef, 1);
+		Spline_initKnotsFromString (me.peek(), degree, interiorKnots);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MSpline not created from strings.");
 	}
@@ -1757,9 +1766,8 @@ double structISpline :: v_evaluate (double x) {
 
 	double result = 0;
 	for (long i = 1; i <= numberOfCoefficients; i++) {
-		if (coefficients[i] != 0) {
-			result += coefficients[i] * NUMispline2 (knots, numberOfKnots, degree, i, x);
-		}
+		if (coefficients[i] != 0) result += coefficients[i] *
+			                                    NUMispline2 (knots, numberOfKnots, degree, i, x);
 	}
 	return result;
 }
@@ -1776,27 +1784,27 @@ long structISpline :: v_getOrder () {
 
 Thing_implement (ISpline, Spline, 0);
 
-autoISpline ISpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots) {
+ISpline ISpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots) {
 	try {
 		autoISpline me = Thing_new (ISpline);
 		long numberOfCoefficients = numberOfInteriorKnots + degree;
 		long numberOfKnots = numberOfCoefficients + degree;
-		Spline_init (me.get(), xmin, xmax, degree, numberOfCoefficients, numberOfKnots);
-		return me;
+		Spline_init (me.peek(), xmin, xmax, degree, numberOfCoefficients, numberOfKnots);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ISpline not created.");
 	}
 }
 
-autoISpline ISpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots) {
+ISpline ISpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots) {
 	try {
 		if (degree > Spline_MAXIMUM_DEGREE) {
 			Melder_throw (U"Degree should be <= 20.");
 		}
 		autoISpline me = Thing_new (ISpline);
-		FunctionTerms_initFromString (me.get(), xmin, xmax, coef, 1);
-		Spline_initKnotsFromString (me.get(), degree, interiorKnots);
-		return me;
+		FunctionTerms_initFromString (me.peek(), xmin, xmax, coef, 1);
+		Spline_initKnotsFromString (me.peek(), degree, interiorKnots);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ISpline not created from strings.");
 	};
@@ -1837,9 +1845,10 @@ RationalFunction RationalFunction_createFromString (I, double xmin, double xmax,
 // divide out common roots
 RationalFunction RationalFunction_simplify (RationalFunction me)
 {
-	Roots num = nullptr, denum = nullptr; RationalFunction thee = nullptr;
+	Roots num = NULL, denum = NULL; RationalFunction thee = NULL;
 	if (! (num = Polynomial_to_Roots (my num)) ||
 		! (denum = Polynomial_to_Roots (my denum))) goto end;
+
 }
 
 */
diff --git a/dwtools/Polynomial.h b/dwtools/Polynomial.h
index fa89b6d..161ddc3 100644
--- a/dwtools/Polynomial.h
+++ b/dwtools/Polynomial.h
@@ -2,7 +2,7 @@
 #define _Polynomial_h_
 /* Polynomial.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,34 +39,36 @@
 #define Spline_MAXIMUM_DEGREE 20
 
 #include "Polynomial_def.h"
+oo_CLASS_CREATE (FunctionTerms, Function);
 
-void FunctionTerms_init (FunctionTerms me, double xmin, double xmax, long numberOfCoefficients);
+void FunctionTerms_init (I, double xmin, double xmax, long numberOfCoefficients);
 
-void FunctionTerms_initFromString (FunctionTerms me, double xmin, double xmax, const char32 *s, int allowTrailingZeros);
+void FunctionTerms_initFromString (I, double xmin, double xmax, const char32 *s, int allowTrailingZeros);
 
-autoFunctionTerms FunctionTerms_create (double xmin, double xmax, long numberOfCoefficients);
+FunctionTerms FunctionTerms_create (double xmin, double xmax, long numberOfCoefficients);
 
-void FunctionTerms_setDomain (FunctionTerms me, double xmin, double xmax);
+void FunctionTerms_setDomain (I, double xmin, double xmax);
 
-void FunctionTerms_setCoefficient (FunctionTerms me, long index, double value);
+void FunctionTerms_setCoefficient (I, long index, double value);
 
-double FunctionTerms_evaluate (FunctionTerms me, double x);
+double FunctionTerms_evaluate (I, double x);
 
-void FunctionTerms_evaluate_z (FunctionTerms me, dcomplex *z, dcomplex *p);
+void FunctionTerms_evaluate_z (I, dcomplex *z, dcomplex *p);
 
-void FunctionTerms_evaluateTerms (FunctionTerms me, double x, double terms[]);
+void FunctionTerms_evaluateTerms (I, double x, double terms[]);
 
-void FunctionTerms_getExtrema (FunctionTerms me, double x1, double x2, double *xmin, double *ymin, double *xmax, double *ymax);
+void FunctionTerms_getExtrema (I, double x1, double x2, double *xmin, double *ymin,
+	double *xmax, double *ymax);
 
-long FunctionTerms_getDegree (FunctionTerms me);
+long FunctionTerms_getDegree (I);
 
-double FunctionTerms_getMinimum (FunctionTerms me, double x1, double x2);
+double FunctionTerms_getMinimum (I, double x1, double x2);
 
-double FunctionTerms_getXOfMinimum (FunctionTerms me, double x1, double x2);
+double FunctionTerms_getXOfMinimum (I, double x1, double x2);
 
-double FunctionTerms_getMaximum (FunctionTerms me, double x1, double x2);
+double FunctionTerms_getMaximum (I, double x1, double x2);
 
-double FunctionTerms_getXOfMaximum (FunctionTerms me, double x1, double x2);
+double FunctionTerms_getXOfMaximum (I, double x1, double x2);
 /*
 	Returns minimum and maximum function values (ymin, ymax) in
 	interval [x1, x2] and their x-values (xmin, xmax).
@@ -74,14 +76,14 @@ double FunctionTerms_getXOfMaximum (FunctionTerms me, double x1, double x2);
 		my xmin <= x1 < x2 <= my xmax
 */
 
-void FunctionTerms_draw (FunctionTerms me, Graphics g, double xmin, double xmax, double ymin, double ymax,
+void FunctionTerms_draw (I, Graphics g, double xmin, double xmax, double ymin, double ymax,
 	int extrapolate, int garnish);
 /*
 	Extrapolate only for functions whose domain is extendable and that can be extrapolated.
 	Polynomials can be extrapolated.
 	LegendreSeries and ChebyshevSeries cannot be extrapolated.
 */
-void FunctionTerms_drawBasisFunction (FunctionTerms me, Graphics g, long index, double xmin, double xmax,
+void FunctionTerms_drawBasisFunction (I, Graphics g, long index, double xmin, double xmax,
 	double ymin, double ymax, int extrapolate, int garnish);
 
 Thing_define (Polynomial, FunctionTerms) {
@@ -94,14 +96,14 @@ Thing_define (Polynomial, FunctionTerms) {
 		//virtual long v_getDegree ();   David, is het OK dat deze niet overschreven wordt? Ja
 };
 
-autoPolynomial Polynomial_create (double xmin, double xmax, long degree);
+Polynomial Polynomial_create (double xmin, double xmax, long degree);
 
-autoPolynomial Polynomial_createFromString (double xmin, double xmax, const char32 *s);
+Polynomial Polynomial_createFromString (double xmin, double xmax, const char32 *s);
 
 void Polynomial_scaleCoefficients_monic (Polynomial me);
 /* Make coefficent of leading term 1.0 */
 
-autoPolynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax);
+Polynomial Polynomial_scaleX (Polynomial me, double xmin, double xmax);
 /* x' = (x-location) / scale */
 
 void Polynomial_evaluate_z (Polynomial me, dcomplex *z, dcomplex *p);
@@ -110,19 +112,19 @@ void Polynomial_evaluate_z (Polynomial me, dcomplex *z, dcomplex *p);
 
 double Polynomial_getArea (Polynomial me, double xmin, double xmax);
 
-autoPolynomial Polynomial_getDerivative (Polynomial me);
+Polynomial Polynomial_getDerivative (Polynomial me);
 
-autoPolynomial Polynomial_getPrimitive (Polynomial me);
+Polynomial Polynomial_getPrimitive (Polynomial me);
 
-void Polynomial_draw (Polynomial me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
+void Polynomial_draw (I, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
 
-double Polynomial_evaluate (Polynomial me, double x);
+double Polynomial_evaluate (I, double x);
 
-void Polynomial_evaluateTerms (Polynomial me, double x, double terms[]);
+void Polynomial_evaluateTerms (I, double x, double terms[]);
 
-autoPolynomial Polynomials_multiply (Polynomial me, Polynomial thee);
+Polynomial Polynomials_multiply (Polynomial me, Polynomial thee);
 
-void Polynomials_divide (Polynomial me, Polynomial thee, autoPolynomial *q, autoPolynomial *r);
+void Polynomials_divide (Polynomial me, Polynomial thee, Polynomial *q, Polynomial *r);
 
 Thing_define (LegendreSeries, FunctionTerms) {
 	// overridden methods:
@@ -132,18 +134,18 @@ Thing_define (LegendreSeries, FunctionTerms) {
 		virtual void v_getExtrema (double x1, double x2, double *xmin, double *ymin, double *xmax, double *ymax);
 };
 
-autoLegendreSeries LegendreSeries_create (double xmin, double xmax, long numberOfPolynomials);
+LegendreSeries LegendreSeries_create (double xmin, double xmax, long numberOfPolynomials);
 
-autoLegendreSeries LegendreSeries_createFromString (double xmin, double xmax, const char32 *s);
+LegendreSeries LegendreSeries_createFromString (double xmin, double xmax, const char32 *s);
 
-autoLegendreSeries LegendreSeries_getDerivative (LegendreSeries me);
+LegendreSeries LegendreSeries_getDerivative (LegendreSeries me);
 
-autoPolynomial LegendreSeries_to_Polynomial (LegendreSeries me);
+Polynomial LegendreSeries_to_Polynomial (LegendreSeries me);
 
 Thing_define (Roots, ComplexVector) {
 };
 
-autoRoots Roots_create (long numberOfRoots);
+Roots Roots_create (long numberOfRoots);
 
 void Roots_fixIntoUnitCircle (Roots me);
 
@@ -152,7 +154,7 @@ void Roots_sort (Roots me);
 
 dcomplex Roots_evaluate_z (Roots me, dcomplex z);
 
-autoRoots Polynomial_to_Roots_ev (Polynomial me);
+Roots Polynomial_to_Roots_ev (Polynomial me);
 
 long Roots_getNumberOfRoots (Roots me);
 
@@ -160,23 +162,26 @@ void Roots_draw (Roots me, Graphics g, double rmin, double rmax, double imin, do
 	const char32 *symbol, int fontSize, int garnish);
 
 dcomplex Roots_getRoot (Roots me, long index);
-
 void Roots_setRoot (Roots me, long index, double re, double im);
 
-autoSpectrum Roots_to_Spectrum (Roots me, double nyquistFrequency, long numberOfFrequencies, double radius);
+Spectrum Roots_to_Spectrum (Roots me, double nyquistFrequency,
+	long numberOfFrequencies, double radius);
 
-autoRoots Polynomial_to_Roots (Polynomial me);
+Roots Polynomial_to_Roots (Polynomial me);
 /* Find roots of polynomial and polish them */
 
 void Roots_and_Polynomial_polish (Roots me, Polynomial thee);
 
-autoPolynomial Roots_to_Polynomial (Roots me);
+Polynomial Roots_to_Polynomial (Roots me);
 
-autoPolynomial TableOfReal_to_Polynomial (TableOfReal me, long degree, long xcol, long ycol, long scol);
+Polynomial TableOfReal_to_Polynomial (I, long degree, long xcol,
+	long ycol, long scol);
 
-autoLegendreSeries TableOfReal_to_LegendreSeries (TableOfReal me, long numberOfPolynomials, long xcol, long ycol, long scol);
+LegendreSeries TableOfReal_to_LegendreSeries (I, long numberOfPolynomials,
+	long xcol, long ycol, long scol);
 
-autoSpectrum Polynomial_to_Spectrum (Polynomial me, double nyquistFrequency, long numberOfFrequencies, double radius);
+Spectrum Polynomial_to_Spectrum (Polynomial me, double nyquistFrequency,
+	long numberOfFrequencies, double radius);
 
 /*
 	A ChebyshevSeries p(x) on a domain [xmin,xmax] is defined as the
@@ -195,19 +200,21 @@ Thing_define (ChebyshevSeries, FunctionTerms) {
 		virtual void v_getExtrema (double x1, double x2, double *xmin, double *ymin, double *xmax, double *ymax);
 };
 
-autoChebyshevSeries ChebyshevSeries_create (double xmin, double xmax, long numberOfPolynomials);
+ChebyshevSeries ChebyshevSeries_create (double xmin, double xmax, long numberOfPolynomials);
+
+ChebyshevSeries ChebyshevSeries_createFromString (double xmin, double xmax, const char32 *s);
 
-autoChebyshevSeries ChebyshevSeries_createFromString (double xmin, double xmax, const char32 *s);
+Polynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me);
 
-autoPolynomial ChebyshevSeries_to_Polynomial (ChebyshevSeries me);
+oo_CLASS_CREATE (Spline, FunctionTerms);
 
-void Spline_init (Spline me, double xmin, double xmax, long degree, long numberOfCoefficients, long numberOfKnots);
+void Spline_init (I, double xmin, double xmax, long degree, long numberOfCoefficients, long numberOfKnots);
 
-long Spline_getOrder (Spline me);
+long Spline_getOrder (I);
 
-void Spline_drawKnots (Spline me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
+void Spline_drawKnots (I, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
 
-autoSpline Spline_scaleX (Spline me, double xmin, double xmax);
+Spline Spline_scaleX (I, double xmin, double xmax);
 /* scale domain and knots to new domain */
 
 Thing_define (MSpline, Spline) {
@@ -217,9 +224,9 @@ Thing_define (MSpline, Spline) {
 		virtual void v_evaluateTerms (double x, double terms[]);
 };
 
-autoMSpline MSpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots);
+MSpline MSpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots);
 
-autoMSpline MSpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots);
+MSpline MSpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots);
 
 Thing_define (ISpline, Spline) {
 	// overridden methods:
@@ -229,18 +236,17 @@ Thing_define (ISpline, Spline) {
 		virtual long v_getOrder ();
 };
 
-autoISpline ISpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots);
-
-autoISpline ISpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots);
+ISpline ISpline_create (double xmin, double xmax, long degree, long numberOfInteriorKnots);
+ISpline ISpline_createFromStrings (double xmin, double xmax, long degree, const char32 *coef, const char32 *interiorKnots);
 
 /****************** fit **********************************************/
 
-void FunctionTerms_and_RealTier_fit (FunctionTerms me, RealTier thee, int freezeCoefficients[], double tol, int ic, autoCovariance *c);
+void FunctionTerms_and_RealTier_fit (I, thou, int *freezeCoefficients, double tol, int ic, Covariance *c);
 
-autoPolynomial RealTier_to_Polynomial (RealTier me, long degree, double tol, int ic, autoCovariance *cvm);
+Polynomial RealTier_to_Polynomial (I, long degree, double tol, int ic, Covariance *cvm);
 
-autoLegendreSeries RealTier_to_LegendreSeries (RealTier me, long degree, double tol, int ic, autoCovariance *cvm);
+LegendreSeries RealTier_to_LegendreSeries (I, long degree, double tol, int ic, Covariance *cvm);
 
-autoChebyshevSeries RealTier_to_ChebyshevSeries (RealTier me, long degree, double tol, int ic, autoCovariance *cvm);
+ChebyshevSeries RealTier_to_ChebyshevSeries (I, long degree, double tol, int ic, Covariance *cvm);
 
 #endif /* _Polynomial_h_ */
diff --git a/dwtools/Procrustes.cpp b/dwtools/Procrustes.cpp
index 658c3c5..53ef214 100644
--- a/dwtools/Procrustes.cpp
+++ b/dwtools/Procrustes.cpp
@@ -1,6 +1,6 @@
 /* Procrustes.cpp
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ Thing_implement (Procrustes, AffineTransform, 0);
 void structProcrustes :: v_transform (double **in, long nrows, double **out) {
 	for (long i = 1; i <= nrows; i++) {
 		for (long j = 1; j <= n; j++) {
-			double tmp = 0.0;
+			double tmp = 0;
 			for (long k = 1; k <= n; k++) {
 				tmp += in[i][k] * r[k][j];
 			}
@@ -61,21 +61,21 @@ void structProcrustes :: v_transform (double **in, long nrows, double **out) {
 	}
 }
 
-autoAffineTransform structProcrustes :: v_invert () {
+Any structProcrustes :: v_invert () {
 	autoProcrustes thee = Data_copy (this);
 	/*
 		R is symmetric rotation matrix -->
 		inverse is transpose!
 	*/
 
-	thy s = s == 0.0 ? 1.0 : 1.0 / s;
+	thy s = s == 0 ? 1 : 1 / s;
 
 	for (long i = 1; i <= n; i++) {
 		for (long j = i + 1; j <= n; j++) {
 			thy r[i][j] = r[j][i];
 			thy r[j][i] = r[i][j];
 		}
-		thy t[i] = 0.0;
+		thy t[i] = 0;
 		/*
 		for (j = 1; j <= thy n; j++)
 		{
@@ -88,26 +88,26 @@ autoAffineTransform structProcrustes :: v_invert () {
 
 		thy t[i] *= thy s;
 	}
-	return thee.move();   // explicit move() seems to be needed because of the type difference
+	return thee.transfer();
 }
 
 static void Procrustes_setDefaults (Procrustes me) {
-	my s = 1.0;
+	my s = 1;
 	for (long i = 1; i <= my n; i++) {
-		my t[i] = 0.0;
-		my r[i][i] = 1.0;
+		my t[i] = 0;
+		my r[i][i] = 1;
 		for (long j = i + 1; j <= my n; j++) {
-			my r[i][j] = my r[j][i] = 0.0;
+			my r[i][j] = my r[j][i] = 0;
 		}
 	}
 }
 
-autoProcrustes Procrustes_create (long n) {
+Procrustes Procrustes_create (long n) {
 	try {
-		autoProcrustes me = Thing_new (Procrustes);
-		AffineTransform_init (me.get(), n);
-		Procrustes_setDefaults (me.get());
-		return me;
+		autoProcrustes me = (Procrustes) Thing_new (Procrustes);
+		AffineTransform_init (me.peek(), n);
+		Procrustes_setDefaults (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Procrustes not created.");
 	}
diff --git a/dwtools/Procrustes.h b/dwtools/Procrustes.h
index 17c41df..5995f35 100644
--- a/dwtools/Procrustes.h
+++ b/dwtools/Procrustes.h
@@ -2,7 +2,7 @@
 #define _Procrustes_h_
 /* Procrustes.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,8 @@
 #include "AffineTransform.h"
 
 #include "Procrustes_def.h"
+oo_CLASS_CREATE (Procrustes, AffineTransform);
 
-autoProcrustes Procrustes_create (long n);
+Procrustes Procrustes_create (long n);
 
 #endif /* _Procrustes_h_ */
diff --git a/dwtools/Procrustes_def.h b/dwtools/Procrustes_def.h
index bcfb87c..426796f 100644
--- a/dwtools/Procrustes_def.h
+++ b/dwtools/Procrustes_def.h
@@ -24,10 +24,9 @@ oo_DEFINE_CLASS (Procrustes, AffineTransform)
 	oo_DOUBLE (s)
 
 	#if oo_DECLARING
-		void v_transform (double **in, long nrows, double **out)
-			override;
-		autoAffineTransform v_invert ()
-			override;
+		// overridden methods:
+			virtual void v_transform (double **in, long nrows, double **out);
+			virtual Any v_invert ();
 	#endif
 			
 oo_END_CLASS (Procrustes)	
diff --git a/dwtools/Proximity.cpp b/dwtools/Proximity.cpp
index ff429fb..7a99aa5 100644
--- a/dwtools/Proximity.cpp
+++ b/dwtools/Proximity.cpp
@@ -1,6 +1,6 @@
 /* Proximity.cpp
  *
- * Copyright (C) 1993-2004, 2015 David Weenink
+ * Copyright (C) 1993-2004 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,8 +29,8 @@ Thing_implement (Proximity, TableOfReal, 0);
 
 void Proximity_init (Proximity me, long numberOfPoints) {
 	TableOfReal_init (me, numberOfPoints, numberOfPoints);
-	TableOfReal_setSequentialRowLabels (me, 0, 0, nullptr, 1, 1);
-	TableOfReal_setSequentialColumnLabels (me, 0, 0, nullptr, 1, 1);
+	TableOfReal_setSequentialRowLabels (me, 0, 0, NULL, 1, 1);
+	TableOfReal_setSequentialColumnLabels (me, 0, 0, NULL, 1, 1);
 }
 
 /* End of file Proximity.cpp */
diff --git a/dwtools/Resonator.cpp b/dwtools/Resonator.cpp
index b2b5b68..285edbc 100644
--- a/dwtools/Resonator.cpp
+++ b/dwtools/Resonator.cpp
@@ -1,6 +1,6 @@
 /* Resonator.cpp
  *
- * Copyright (C) 2008-2011, 2015 David Weenink
+ * Copyright (C) 2008-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 
 #include "Resonator.h"
 
-Thing_implement (Filter, Daata, 0);
+Thing_implement (Filter, Data, 0);
 
 #define SETBC(f,bw) \
 	double r = exp (-NUMpi * dT * bw); \
@@ -55,13 +55,13 @@ void structResonator :: v_setFB (double f, double bw) {
 	a = normalisation == Resonator_NORMALISATION_H0 ? (1.0 - b - c) : (1 + c) * sin (2.0 * NUMpi * f * dT);
 }
 
-autoResonator Resonator_create (double dT, int normalisation) {
+Resonator Resonator_create (double dT, int normalisation) {
 	try {
 		autoResonator me = Thing_new (Resonator);
 		my a = 1; // all-pass
 		my dT = dT;
 		my normalisation = normalisation;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Resonator not created.");
 	}
@@ -110,23 +110,23 @@ double structConstantGainResonator :: v_getOutput (double input) {
 	return output;
 }
 
-autoConstantGainResonator ConstantGainResonator_create (double dT) {
+ConstantGainResonator ConstantGainResonator_create (double dT) {
 	try {
 		autoConstantGainResonator me = Thing_new (ConstantGainResonator);
 		my a = 1; // all-pass
 		my dT = dT;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ConstantGainResonator not created.");
 	}
 }
 
-autoAntiResonator AntiResonator_create (double dT) {
+AntiResonator AntiResonator_create (double dT) {
 	try {
 		autoAntiResonator me = Thing_new (AntiResonator);
 		my a = 1; // all-pass
 		my dT = dT;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"AntiResonator not created.");
 	}
diff --git a/dwtools/Resonator.h b/dwtools/Resonator.h
index f48cc1f..960d630 100644
--- a/dwtools/Resonator.h
+++ b/dwtools/Resonator.h
@@ -2,7 +2,7 @@
 #define _Resonator_h_
 /* Resonator.h
  *
- * Copyright (C) 2008-2011, 2015 David Weenink
+ * Copyright (C) 2008-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 	
 #include "Sound.h"
 
-Thing_define (Filter, Daata) {
+Thing_define (Filter, Data) {
 	double dT;
 	double a, b, c;
 	double p1, p2;
@@ -66,11 +66,11 @@ Thing_define (ConstantGainResonator, Filter) {
 #define Resonator_NORMALISATION_HMAX 1
 
 
-autoResonator Resonator_create (double dT, int normalisation);
+Resonator Resonator_create (double dT, int normalisation);
 
-autoConstantGainResonator ConstantGainResonator_create (double dT);
+ConstantGainResonator ConstantGainResonator_create (double dT);
 
-autoAntiResonator AntiResonator_create (double dT);
+AntiResonator AntiResonator_create (double dT);
 
 /*
 	Set a,b,c
diff --git a/dwtools/SPINET.cpp b/dwtools/SPINET.cpp
index 2ed7f55..ad54590 100644
--- a/dwtools/SPINET.cpp
+++ b/dwtools/SPINET.cpp
@@ -1,6 +1,6 @@
 /* SPINET.cpp
  *
- * Copyright (C) 1993-2012, 2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
 /*
  djmw 20020813 GPL header
  djmw 20061212 Changed info to Melder_writeLine<x> format.
- djmw 20071012 Added: oo_CAN_WRITE_AS_ENCODING.h
+ djmw 20071012 Added: o_CAN_WRITE_AS_ENCODING.h
  djmw 20080122 float -> double
   djmw 20110304 Thing_new
 */
@@ -48,54 +48,13 @@
 #include "oo_DESCRIPTION.h"
 #include "SPINET_def.h"
 
-Thing_implement (SPINET, SampledXY, 0);
-
-static long SampledXY_getWindowExtrema (SampledXY me, double **z, long ixmin, long ixmax, long iymin, long iymax,
-                                  double *minimum, double *maximum) {
-/*
-	Function:
-		compute the minimum and maximum values of z over all samples inside [ixmin, ixmax] * [iymin, iymax].
-	Arguments:
-		if ixmin = 0, start at first column; if ixmax = 0, end at last column (same for iymin and iymax).
-	Return value:
-		the number of samples inside the window.
-	Postconditions:
-		if result == 0, *minimum and *maximum are not changed;
-*/
-
-	if (ixmin == 0) {
-		ixmin = 1;
-	}
-	if (ixmax == 0) {
-		ixmax = my nx;
-	}
-	if (iymin == 0) {
-		iymin = 1;
-	}
-	if (iymax == 0) {
-		iymax = my ny;
-	}
-	if (ixmin > ixmax || iymin > iymax) {
-		return 0;
-	}
-	*minimum = *maximum = z[iymin][ixmin];
-	for (long iy = iymin; iy <= iymax; iy ++)
-		for (long ix = ixmin; ix <= ixmax; ix ++) {
-			if (z[iy][ix] < *minimum) {
-				*minimum = z[iy][ix];
-			}
-			if (z[iy][ix] > *maximum) {
-				*maximum = z[iy][ix];
-			}
-		}
-	return (ixmax - ixmin + 1) * (iymax - iymin + 1);
-}
+Thing_implement (SPINET, Sampled2, 0);
 
 void structSPINET :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	double miny, maxy, mins, maxs;
-	if (! SampledXY_getWindowExtrema (this, y, 1, nx, 1, ny, & miny, & maxy) ||
-	        ! SampledXY_getWindowExtrema (this, s, 1, nx, 1, ny, & mins, & maxs)) {
+	if (! Sampled2_getWindowExtrema_d (this, y, 1, nx, 1, ny, & miny, & maxy) ||
+	        ! Sampled2_getWindowExtrema_d (this, s, 1, nx, 1, ny, & mins, & maxs)) {
 		return;
 	}
 	MelderInfo_writeLine (U"Minimum power: ", miny);
@@ -104,45 +63,53 @@ void structSPINET :: v_info () {
 	MelderInfo_writeLine (U"Maximum powerrectified: ", maxs);
 }
 
-autoSPINET SPINET_create (double tmin, double tmax, long nt, double dt, double t1, double minimumFrequency, double maximumFrequency, long nFilters, double excitationErbProportion, double inhibitionErbProportion) {
+SPINET SPINET_create (double tmin, double tmax, long nt, double dt, double t1,
+                      double minimumFrequency, double maximumFrequency, long nFilters,
+                      double excitationErbProportion, double inhibitionErbProportion) {
 	try {
 		autoSPINET me = Thing_new (SPINET);
 		double minErb = NUMhertzToErb (minimumFrequency);
 		double maxErb = NUMhertzToErb (maximumFrequency);
 		double dErb = (maxErb - minErb) / nFilters;
-		SampledXY_init (me.get(), tmin, tmax, nt, dt, t1, minErb - dErb / 2.0, maxErb + dErb / 2.0, nFilters, dErb, minErb);
+		Sampled2_init (me.peek(), tmin, tmax, nt, dt, t1,
+		               minErb - dErb / 2, maxErb + dErb / 2, nFilters, dErb, minErb);
 		my y = NUMmatrix<double> (1, nFilters, 1, nt);
 		my s = NUMmatrix<double> (1, nFilters, 1, nt);
 		my gamma = 4;
 		my excitationErbProportion = excitationErbProportion;
 		my inhibitionErbProportion = inhibitionErbProportion;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SPINET not created.");
 	}
 }
 
-void SPINET_spectralRepresentation (SPINET me, Graphics g, double fromTime, double toTime, double fromErb, double toErb, double minimum, double maximum, int enhanced, int garnish) {
+void SPINET_spectralRepresentation (SPINET me, Graphics g, double fromTime, double toTime,
+                                    double fromErb, double toErb, double minimum, double maximum, int enhanced,
+                                    int garnish) {
 	double **z = enhanced ? my s : my y;
-	autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
+	autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1,
+	                                 my ymin, my ymax, my ny, my dy, my y1);
 	for (long j = 1; j <= my ny; j++) {
 		for (long i = 1; i <= my nx; i++) {
 			thy z[j][i] = z[j][i];
 		}
 	}
-	Matrix_paintCells (thee.get(), g, fromTime, toTime, fromErb, toErb, minimum, maximum);
+	Matrix_paintCells (thee.peek(), g, fromTime, toTime, fromErb, toErb, minimum, maximum);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Frequency (ERB)");
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textTop (g, false, enhanced ? U"Cooperative interaction output" : U"Gammatone filterbank output");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Frequency (ERB)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textTop (g, 0, enhanced ? U"Cooperative interaction output" :
+		                  U"Gammatone filterbank output");
 	}
 }
 
-void SPINET_drawSpectrum (SPINET me, Graphics g, double time, double fromErb, double toErb, double minimum, double maximum, int enhanced, int garnish) {
-	long ifmin, ifmax, icol = Sampled_xToLowIndex (me, time);   // ppgb: don't use Sampled2_xToColumn for integer rounding
+void SPINET_drawSpectrum (SPINET me, Graphics g, double time, double fromErb, double toErb,
+                          double minimum, double maximum, int enhanced, int garnish) {
+	long ifmin, ifmax, icol = Sampled2_xToLowColumn (me, time);   // ppgb: don't use Sampled2_xToColumn for integer rounding
 	double **z = enhanced ? my s : my y;
 	if (icol < 1 || icol > my nx) {
 		return;
@@ -151,7 +118,7 @@ void SPINET_drawSpectrum (SPINET me, Graphics g, double time, double fromErb, do
 		fromErb = my ymin;
 		toErb = my ymax;
 	}
-	SampledXY_getWindowSamplesY (me, fromErb, toErb, &ifmin, &ifmax);
+	Sampled2_getWindowSamplesY (me, fromErb, toErb, &ifmin, &ifmax);
 	autoNUMvector<double> spec (1, my ny);
 
 	for (long i = 1; i <= my ny; i++) {
@@ -173,14 +140,14 @@ void SPINET_drawSpectrum (SPINET me, Graphics g, double time, double fromErb, do
 	}
 	Graphics_setInner (g);
 	Graphics_setWindow (g, fromErb, toErb, minimum, maximum);
-	Graphics_function (g, spec.peek(), ifmin, ifmax, SampledXY_indexToY (me, ifmin), SampledXY_indexToY (me, ifmax));
+	Graphics_function (g, spec.peek(), ifmin, ifmax, Sampled2_rowToY (me, ifmin), Sampled2_rowToY (me, ifmax));
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency (ERB)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"strength");
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Frequency (ERB)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"strength");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
diff --git a/dwtools/SPINET.h b/dwtools/SPINET.h
index af62e1a..ce17d2c 100644
--- a/dwtools/SPINET.h
+++ b/dwtools/SPINET.h
@@ -2,7 +2,7 @@
 #define _SPINET_h_
 /* SPINET.h
  *
- * Copyright (C) 1993-2011,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,14 +22,16 @@
 /*
  djmw 19970408
  djmw 20020813 GPL header
+ djmw 20110306 Latest modification.
 */
 
-#include "SampledXY.h"
+#include "Sampled2.h"
 #include "Graphics.h"
 
 #include "SPINET_def.h"
+oo_CLASS_CREATE (SPINET, Sampled2);
 
-autoSPINET SPINET_create (double tmin, double tmax, long nt, double dt, double t1,
+SPINET SPINET_create (double tmin, double tmax, long nt, double dt, double t1,
 	 double minimumFrequency, double maximumFrequency, long nFilters,
 	 double excitationErbProportion, double inhibitionErbProportion);
 
diff --git a/dwtools/SPINET_def.h b/dwtools/SPINET_def.h
index 8498958..40706e7 100644
--- a/dwtools/SPINET_def.h
+++ b/dwtools/SPINET_def.h
@@ -2,7 +2,7 @@
 /* David Weenink, 6 apr 1997 */
 
 #define ooSTRUCT SPINET
-oo_DEFINE_CLASS (SPINET, SampledXY)
+oo_DEFINE_CLASS (SPINET, Sampled2)
 
 	oo_LONG (gamma)						/* filter order */
 	oo_DOUBLE (excitationErbProportion)	/* excitatory bandwidth proportionality factor*/
diff --git a/dwtools/SPINET_to_Pitch.cpp b/dwtools/SPINET_to_Pitch.cpp
index e4310b1..d97681c 100644
--- a/dwtools/SPINET_to_Pitch.cpp
+++ b/dwtools/SPINET_to_Pitch.cpp
@@ -1,6 +1,6 @@
 /* SPINET_to_Pitch.cpp
  *
- * Copyright (C) 1993-2011,2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,17 +31,17 @@
 	from Erb-scale to log2-scale
 */
 
-autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceiling, int maxnCandidates) {
+Pitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceiling, int maxnCandidates) {
 	try {
 		long nPointsPerOctave = 48;
-		double fmin = NUMerbToHertz (SampledXY_indexToY (me, 1L));
-		double fmax = NUMerbToHertz (SampledXY_indexToY (me, my ny));
+		double fmin = NUMerbToHertz (Sampled2_rowToY (me, 1));
+		double fmax = NUMerbToHertz (Sampled2_rowToY (me, my ny));
 		double fminl2 = NUMlog2 (fmin), fmaxl2 = NUMlog2 (fmax);
 		double points = (fmaxl2 - fminl2) * nPointsPerOctave;
 		double dfl2 = (fmaxl2 - fminl2) / (points - 1);
 		long nFrequencyPoints = (long) floor (points);
 		long maxHarmonic = (long) floor (fmax / fmin);
-		double maxStrength = 0.0, unvoicedCriterium = 0.45, maxPower = 0.0;
+		double maxStrength = 0, unvoicedCriterium = 0.45, maxPower = 0;
 
 		if (nFrequencyPoints < 2) {
 			Melder_throw (U"Frequency range too small.");
@@ -68,7 +68,7 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 		// Determine global maximum power in frame
 
 		for (long j = 1; j <= my nx; j++) {
-			double p = 0.0;
+			double p = 0;
 			for (long i = 1; i <= my ny; i++) {
 				p += my s[i][j];
 			}
@@ -77,7 +77,7 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 			}
 			power[j] = p;
 		}
-		if (maxPower == 0.0) {
+		if (maxPower == 0) {
 			Melder_throw (U"No power");
 		}
 
@@ -92,7 +92,7 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 			for (long k = 1; k <= nFrequencyPoints; k++) {
 				double f = fminl2 + (k - 1) * dfl2;
 				NUMsplint (fl2.peek(), y.peek(), yv2.peek(), my ny, f, & pitch[k]);
-				sumspec[k] = 0.0;
+				sumspec[k] = 0;
 			}
 
 			// Formula (8): weighted harmonic summation.
@@ -101,7 +101,7 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 				double hm = 1 - harmonicFallOffSlope * NUMlog2 (m);
 				long kb = 1 + (long) floor (nPointsPerOctave * NUMlog2 (m));
 				for (long k = kb; k <= nFrequencyPoints; k++) {
-					if (pitch[k] > 0.0) {
+					if (pitch[k] > 0) {
 						sumspec[k - kb + 1] += pitch[k] * hm;
 					}
 				}
@@ -116,10 +116,10 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 			for (long k = 2; k <= nFrequencyPoints - 1; k++) {
 				double y1 = sumspec[k - 1], y2 = sumspec[k], y3 = sumspec[k + 1];
 				if (y2 > y1 && y2 >= y3) {
-					double denum = y1 - 2.0 * y2 + y3, tmp = y3 - 4.0 * y2;
+					double denum = y1 - 2 * y2 + y3, tmp = y3 - 4 * y2;
 					double x = dfl2 * (y1 - y3) / (2 * denum);
-					double f = pow (2.0, fminl2 + (k - 1) * dfl2 + x);
-					double strength = (2.0 * y1 * (4.0 * y2 + y3) - y1 * y1 - tmp * tmp) / (8.0 * denum);
+					double f = pow (2, fminl2 + (k - 1) * dfl2 + x);
+					double strength = (2 * y1 * (4 * y2 + y3) - y1 * y1 - tmp * tmp) / (8 * denum);
 					if (strength > maxStrength) {
 						maxStrength = strength;
 					}
@@ -135,7 +135,7 @@ autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceilin
 			Pitch_Frame_getPitch (&thy frame[j], &f0, &localStrength);
 			Pitch_Frame_resizeStrengths (&thy frame[j], localStrength / maxStrength, unvoicedCriterium);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Pitch created.");
 	}
diff --git a/dwtools/SPINET_to_Pitch.h b/dwtools/SPINET_to_Pitch.h
index 0e278d1..e198c45 100644
--- a/dwtools/SPINET_to_Pitch.h
+++ b/dwtools/SPINET_to_Pitch.h
@@ -2,7 +2,7 @@
 #define _SPINET_to_Pitch_h_
 /* SPINET_to_Pitch.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,6 +28,7 @@
 #include "SPINET.h"
 #include "Pitch.h"
 
-autoPitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceiling, int maxnCandidates);
+Pitch SPINET_to_Pitch (SPINET me, double harmonicFallOffSlope, double ceiling,
+	int maxnCandidates);
 
 #endif /* _SPINET_to_Pitch_h_ */
diff --git a/dwtools/SSCP.cpp b/dwtools/SSCP.cpp
index 33e4fc3..637db6a 100644
--- a/dwtools/SSCP.cpp
+++ b/dwtools/SSCP.cpp
@@ -1,6 +1,6 @@
 /* SSCP.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -91,10 +91,6 @@
 #define TOVEC(x) (&(x) - 1)
 
 Thing_implement (SSCP, TableOfReal, 0);
-Thing_implement (SSCPList, TableOfRealList, 0);
-Thing_implement (Covariance, SSCP, 0);
-Thing_implement (CovarianceList, SSCPList, 0);
-Thing_implement (Correlation, SSCP, 0);
 
 void structSSCP :: v_info () {
 	structTableOfReal :: v_info ();
@@ -108,7 +104,7 @@ void structSSCP :: v_info () {
 	Calculate scale factor by which sqrt(eigenvalue) has to
 	be multiplied to obtain the length of an ellipse axis.
 */
-double SSCP_getEllipseScalefactor (SSCP me, double scale, bool confidence) {
+double SSCP_getEllipseScalefactor (SSCP me, double scale, int confidence) {
 	long n = (long) floor (SSCP_getNumberOfObservations (me));
 
 	if (confidence) {
@@ -116,66 +112,57 @@ double SSCP_getEllipseScalefactor (SSCP me, double scale, bool confidence) {
 		double f;
 
 		if (n - p < 1) {
-			return -1.0;
+			return -1;
 		}
 		/* D.E. Johnson (1998), Applied Multivariate methods, page 410 */
-		f = NUMinvFisherQ (1.0 - scale, p, n - p);
-		scale = 2.0 * sqrt (f * p * (n - 1) / ( ((double) n) * (n - p)));
+		f = NUMinvFisherQ (1 - scale, p, n - p);
+		scale = 2 * sqrt (f * p * (n - 1) / ( ( (double) n) * (n - p)));
 	} else {
 		// very ugly, temporary hack
-		scale *= 2.0 / (scale < 0.0 ? -1.0 : sqrt (n - 1));
+		scale *= 2 / (scale < 0 ? -1 : sqrt (n - 1));
 	}
 	return scale;
 }
 
-static void getEllipseBoundingBoxCoordinates (SSCP me, double scale, bool confidence, double *xmin, double *xmax, double *ymin, double *ymax) {
+static void getEllipseBoundingBoxCoordinates (SSCP me, double scale, int confidence,
+        double *xmin, double *xmax, double *ymin, double *ymax) {
 	double a, b, cs, sn, width, height;
 	double lscale = SSCP_getEllipseScalefactor (me, scale, confidence);
 
 	NUMeigencmp22 (my data[1][1], my data[1][2], my data[2][2], &a, &b, &cs, &sn);
 	NUMgetEllipseBoundingBox (sqrt (a), sqrt (b), cs, & width, & height);
 
-	*xmin = my centroid[1] - lscale * width / 2.0;
+	*xmin = my centroid[1] - lscale * width / 2;
 	*xmax = *xmin + lscale * width;
-	*ymin = my centroid[2] - lscale * height / 2.0;
+	*ymin = my centroid[2] - lscale * height / 2;
 	*ymax = *ymin + lscale * height;
 }
 
-void SSCPList_getEllipsesBoundingBoxCoordinates (SSCPList me, double scale, bool confidence, double *p_xmin, double *p_xmax, double *p_ymin, double *p_ymax) {
-	double xmin = 1e308, xmax = -xmin, ymin = xmin, ymax = -ymin;
+void SSCPs_getEllipsesBoundingBoxCoordinates (SSCPs me, double scale, int confidence,
+        double *xmin, double *xmax, double *ymin, double *ymax) {
+	*xmin = *ymin = 1e38;
+	*xmax = *ymax = - *xmin;
 
-	for (long i = 1; i <= my size; i ++) {
-		SSCP s = my at [i];
+	for (long i = 1; i <= my size; i++) {
+		SSCP s = (SSCP) my item[i];
 		double xmn, xmx, ymn, ymx;
 		getEllipseBoundingBoxCoordinates (s, scale, confidence, &xmn, &xmx, &ymn, &ymx);
-		if (xmn < xmin) {
-			xmin = xmn;
+		if (xmn < *xmin) {
+			*xmin = xmn;
 		}
-		if (xmx > xmax) {
-			xmax = xmx;
+		if (xmx > *xmax) {
+			*xmax = xmx;
 		}
-		if (ymn < ymin) {
-			ymin = ymn;
+		if (ymn < *ymin) {
+			*ymin = ymn;
 		}
-		if (ymx > ymax) {
-			ymax = ymx;
+		if (ymx > *ymax) {
+			*ymax = ymx;
 		}
 	}
-	if (p_xmin) {
-		*p_xmin = xmin;
-	}
-	if (p_xmax) {
-		*p_xmax = xmax;
-	}
-	if (p_ymin) {
-		*p_ymin = ymin;
-	}
-	if (p_ymax) {
-		*p_ymax = ymax;
-	}
 }
 
-static autoSSCP _SSCP_extractTwoDimensions (SSCP me, long d1, long d2) {
+static SSCP _SSCP_extractTwoDimensions (SSCP me, long d1, long d2) {
 	autoSSCP thee = SSCP_create (2);
 	if (my numberOfRows == 1) { // diagonal
 		thy data [1][1] = my data [1][d1];
@@ -189,22 +176,22 @@ static autoSSCP _SSCP_extractTwoDimensions (SSCP me, long d1, long d2) {
 	thy centroid[2] = my centroid[d2];
 	thy numberOfObservations = my numberOfObservations;
 
-	TableOfReal_setColumnLabel (thee.get(), 1, my columnLabels[d1]);
-	TableOfReal_setColumnLabel (thee.get(), 2, my columnLabels[d2]);
-	TableOfReal_setRowLabel (thee.get(), 1, my columnLabels[d1]);
-	TableOfReal_setRowLabel (thee.get(), 2, my columnLabels[d2]);
-	return thee;
+	TableOfReal_setColumnLabel (thee.peek(), 1, my columnLabels[d1]);
+	TableOfReal_setColumnLabel (thee.peek(), 2, my columnLabels[d2]);
+	TableOfReal_setRowLabel (thee.peek(), 1, my columnLabels[d1]);
+	TableOfReal_setRowLabel (thee.peek(), 2, my columnLabels[d2]);
+	return thee.transfer();
 }
 
-autoSSCPList SSCPList_extractTwoDimensions (SSCPList me, long d1, long d2) {
+SSCPs SSCPs_extractTwoDimensions (SSCPs me, long d1, long d2) {
 	try {
-		autoSSCPList thee = SSCPList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			autoSSCP t = _SSCP_extractTwoDimensions (my at [i], d1, d2);
-			Thing_setName (t.get(), Thing_getName (my at [i]));
-			thy addItem_move (t.move());
+		autoSSCPs thee = SSCPs_create ();
+		for (long i = 1; i <= my size; i++) {
+			autoSSCP t = _SSCP_extractTwoDimensions ( (SSCP) my item[i], d1, d2);
+			Thing_setName (t.peek(), Thing_getName ( (Thing) my item[i]));
+			Collection_addItem (thee.peek(), t.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot extract two dimensions.");
 	}
@@ -223,11 +210,11 @@ void SSCP_drawTwoDimensionalEllipse_inside  (SSCP me, Graphics g, double scale,
 		NUMeigencmp22 (my data[1][1], my data[1][2], my data[2][2], &a, &b, &cs, &sn);
 		// 1. Take sqrt to get units of 'std_dev'
 
-		a = scale * sqrt (a) / 2.0;
-		b = scale * sqrt (b) / 2.0;
+		a = scale * sqrt (a) / 2;
+		b = scale * sqrt (b) / 2;
 		x[nsteps] = x[0] = my centroid[1] + cs * a;
 		y[nsteps] = y[0] = my centroid[2] + sn * a;
-		double angle = 0.0;
+		double angle = 0;
 		double angle_inc = NUM2pi / nsteps;
 		for (long i = 1; i < nsteps; i++, angle += angle_inc) {
 			double xc = a * cos (angle);
@@ -237,7 +224,7 @@ void SSCP_drawTwoDimensionalEllipse_inside  (SSCP me, Graphics g, double scale,
 			x[i] = my centroid[1] + xt;
 		}
 		Graphics_polyline (g, nsteps + 1, x.peek(), y.peek());
-		if (label) {
+		if (label != NULL) {
 			int oldFontSize = Graphics_inqFontSize (g);
 			Graphics_setFontSize (g, fontSize);
 			Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
@@ -245,7 +232,7 @@ void SSCP_drawTwoDimensionalEllipse_inside  (SSCP me, Graphics g, double scale,
 			Graphics_setFontSize (g, oldFontSize);
 		}
 	} catch (MelderError) {
-		Melder_clearError ();
+		//
 	}
 }
 
@@ -265,11 +252,11 @@ static void _SSCP_drawTwoDimensionalEllipse (SSCP me, Graphics g, double scale,
 
 	// 1. Take sqrt to get units of 'std_dev'
 
-	a = scale * sqrt (a) / 2.0;
-	b = scale * sqrt (b) / 2.0;
+	a = scale * sqrt (a) / 2;
+	b = scale * sqrt (b) / 2;
 	x[nsteps] = x[0] = my centroid[1] + cs * a;
 	y[nsteps] = y[0] = my centroid[2] + sn * a;
-	double angle = 0.0;
+	double angle = 0;
 	double angle_inc = NUM2pi / nsteps;
 	for (long i = 1; i < nsteps; i++, angle += angle_inc) {
 		double xc = a * cos (angle);
@@ -288,7 +275,7 @@ static void _SSCP_drawTwoDimensionalEllipse (SSCP me, Graphics g, double scale,
 	}
 }
 
-autoSSCP SSCP_toTwoDimensions (SSCP me, double *v1, double *v2) {
+SSCP SSCP_toTwoDimensions (SSCP me, double *v1, double *v2) {
 	try {
 		double *vec[3];
 		autoSSCP thee = SSCP_create (2);
@@ -335,7 +322,7 @@ autoSSCP SSCP_toTwoDimensions (SSCP me, double *v1, double *v2) {
 
 		thy numberOfObservations = SSCP_getNumberOfObservations (me);
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot extract two dimensions.");
 	}
@@ -346,25 +333,25 @@ void SSCP_init (SSCP me, long dimension, long storage) {
 	my centroid = NUMvector<double> (1, dimension);
 }
 
-autoSSCP SSCP_create (long dimension) {
+SSCP SSCP_create (long dimension) {
 	try {
 		autoSSCP me = Thing_new (SSCP);
-		SSCP_init (me.get(), dimension, dimension);
-		return me;
+		SSCP_init (me.peek(), dimension, dimension);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SSCP not created.");
 	}
 }
 
-double SSCP_getConcentrationEllipseArea (SSCP me, double scale, bool confidence, long d1, long d2) {
+double SSCP_getConcentrationEllipseArea (SSCP me, double scale, int confidence, long d1, long d2) {
 	long p = my numberOfRows;
 
 	if (d1 < 1 || d1 > p || d2 < 1 || d2 > p || d1 == d2) {
 		Melder_throw (U"Incorrect axes.");
 	}
 	autoSSCP thee = _SSCP_extractTwoDimensions (me, d1, d2);
-	scale = SSCP_getEllipseScalefactor (thee.get(), scale, confidence);
-	if (scale < 0.0) {
+	scale = SSCP_getEllipseScalefactor (thee.peek(), scale, confidence);
+	if (scale < 0) {
 		Melder_throw (U"Invalid scale factor.");
 	}
 
@@ -373,8 +360,7 @@ double SSCP_getConcentrationEllipseArea (SSCP me, double scale, bool confidence,
 
 	// 1. Take sqrt to get units of 'std_dev'
 
-	a = scale * sqrt (a) / 2.0;
-	b = scale * sqrt (b) / 2.0;
+	a = scale * sqrt (a) / 2; b = scale * sqrt (b) / 2;
 	return NUMpi * a * b;
 }
 
@@ -385,17 +371,19 @@ double SSCP_getFractionVariation (SSCP me, long from, long to) {
 		return NUMundefined;
 	}
 
-	double sum = 0.0, trace = 0.0;
+	double sum = 0, trace = 0;
 	for (long i = 1; i <= n; i++) {
 		trace += my numberOfRows == 1 ? my data[1][i] : my data[i][i];
 		if (i >= from && i <= to) {
 			sum += my numberOfRows == 1 ? my data[1][i] : my data[i][i];
 		}
 	}
-	return trace > 0.0 ? sum / trace : NUMundefined;
+	return trace > 0 ? sum / trace : NUMundefined;
 }
 
-void SSCP_drawConcentrationEllipse (SSCP me, Graphics g, double scale, int confidence, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int garnish) {
+void SSCP_drawConcentrationEllipse (SSCP me, Graphics g, double scale,
+                                    int confidence, long d1, long d2, double xmin, double xmax,
+                                    double ymin, double ymax, int garnish) {
 	long p = my numberOfColumns;
 
 	if (d1 < 1 || d1 > p || d2 < 1 || d2 > p || d1 == d2) {
@@ -405,7 +393,7 @@ void SSCP_drawConcentrationEllipse (SSCP me, Graphics g, double scale, int confi
 	autoSSCP thee = _SSCP_extractTwoDimensions (me, d1, d2);
 
 	double xmn, xmx, ymn, ymx;
-	getEllipseBoundingBoxCoordinates (thee.get(), scale, confidence, &xmn, &xmx, &ymn, &ymx);
+	getEllipseBoundingBoxCoordinates (thee.peek(), scale, confidence, &xmn, &xmx, &ymn, &ymx);
 
 	if (xmax == xmin) {
 		xmin = xmn; xmax = xmx;
@@ -418,17 +406,17 @@ void SSCP_drawConcentrationEllipse (SSCP me, Graphics g, double scale, int confi
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_setInner (g);
 
-	scale = SSCP_getEllipseScalefactor (thee.get(), scale, confidence);
+	scale = SSCP_getEllipseScalefactor (thee.peek(), scale, confidence);
 	if (scale < 0) {
 		Melder_throw (U"Invalid scale factor.");
 	}
-	_SSCP_drawTwoDimensionalEllipse (thee.get(), g, scale, 0);
+	_SSCP_drawTwoDimensionalEllipse (thee.peek(), g, scale, 0);
 
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 	}
 }
 
@@ -445,7 +433,7 @@ double SSCP_getDegreesOfFreedom (SSCP me) {
 }
 
 double SSCP_getTotalVariance (SSCP me) {
-	double trace = 0.0;
+	double trace = 0;
 	for (long i = 1; i <= my numberOfColumns; i++) {
 		trace += my numberOfRows == 1 ? my data[1][i] : my data[i][i];
 	}
@@ -459,11 +447,11 @@ double SSCP_getCumulativeContributionOfComponents (SSCP me, long from, long to)
 	}
 	if (from > 0 && to <= my numberOfRows && from <= to) {
 		sum = SSCP_getTotalVariance (me);
-		double partial = 0.0;
+		double partial = 0;
 		for (long i = from; i <= to; i++) {
 			partial += my numberOfRows == 1 ? my data[1][i] : my data[i][i];
 		}
-		if (sum > 0.0) {
+		if (sum > 0) {
 			sum = partial / sum;
 		}
 	}
@@ -475,13 +463,13 @@ void Covariance_and_PCA_generateOneVector (Covariance me, PCA thee, double *vec,
 	// Generate the multi-normal vector elements N(0,sigma)
 
 	for (long j = 1; j <= my numberOfColumns; j++) {
-		buf[j] = NUMrandomGauss (0.0, sqrt (thy eigenvalues[j]));
+		buf[j] = NUMrandomGauss (0, sqrt (thy eigenvalues[j]));
 	}
 
 	// Rotate back
 
 	for (long j = 1; j <= my numberOfColumns; j++) {
-		vec[j] = 0.0;
+		vec[j] = 0;
 		for (long k = 1; k <= my numberOfColumns; k++) {
 			vec[j] += buf[k] * thy eigenvectors[k][j];
 		}
@@ -494,7 +482,7 @@ void Covariance_and_PCA_generateOneVector (Covariance me, PCA thee, double *vec,
 	}
 }
 
-autoTableOfReal Covariance_to_TableOfReal_randomSampling (Covariance me, long numberOfData) {
+TableOfReal Covariance_to_TableOfReal_randomSampling (Covariance me, long numberOfData) {
 	try {
 		if (numberOfData <= 0) {
 			numberOfData = (long) floor (my numberOfObservations);
@@ -504,94 +492,91 @@ autoTableOfReal Covariance_to_TableOfReal_randomSampling (Covariance me, long nu
 		autoNUMvector<double> buf (1, my numberOfColumns);
 
 		for (long i = 1; i <= numberOfData; i++) {
-			Covariance_and_PCA_generateOneVector (me, pca.get(), thy data[i], buf.peek());
+			Covariance_and_PCA_generateOneVector (me, pca.peek(), thy data[i], buf.peek());
 		}
 
 		NUMstrings_copyElements (my columnLabels, thy columnLabels, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not random sampled.");
 	}
 }
 
-autoSSCP TableOfReal_to_SSCP (TableOfReal me, long rowb, long rowe, long colb, long cole) {
+SSCP TableOfReal_to_SSCP (TableOfReal me, long rowb, long rowe, long colb, long cole) {
 	try {
-		
-		if (! NUMdmatrix_hasFiniteElements(my data, 1, my numberOfRows, 1, my numberOfColumns)) {
-			Melder_throw (U"At least one of the table's elements is not finite or undefined.");
-		}
+		TableOfReal_areAllCellsDefined (me, rowb, rowe, colb, cole);
 
 		if (rowb == 0 && rowe == 0) {
-			rowb = 1;
-			rowe = my numberOfRows;
+			rowb = 1; rowe = my numberOfRows;
 		} else if (rowe < rowb || rowb < 1 || rowe > my numberOfRows) {
 			Melder_throw (U"Invalid row number.");
 		}
 
 		if (colb == 0 && cole == 0) {
-			colb = 1;
-			cole = my numberOfColumns;
+			colb = 1; cole = my numberOfColumns;
 		} else if (cole < colb || colb < 1 || cole > my numberOfColumns) {
 			Melder_throw (U"Invalid column number.");
 		}
 
-		long numberOfRows = rowe - rowb + 1; /* m */
-		long numberOfColumns = cole - colb + 1; /* n */
+		long m = rowe - rowb + 1; /* # rows */
+		long n = cole - colb + 1; /* # columns */
 
-		if (numberOfRows < numberOfColumns) {
-			Melder_warning (U"The SSCP will not have \n"
-				"full dimensionality. This may be a problem in following analysis steps. \n"
-				"(The number of data points was less than the number of variables.)");
-		}
-		autoSSCP thee = SSCP_create (numberOfColumns);
-		autoNUMmatrix<double> v (1, numberOfRows, 1, numberOfColumns);
+		if (m < n) Melder_warning (U"The SSCP will not have \n"
+			"full dimensionality. This may be a problem in following analysis steps. \n"
+			"(The number of data points was less than the number of variables.)");
+
+		autoSSCP thee = SSCP_create (n);
+		autoNUMmatrix<double> v (1, m, 1, n);
 
 		long nvalidrows = 0;
-		for (long i = 1; i <= numberOfRows; i++) {
+		for (long i = 1; i <= m; i++) {
 			nvalidrows++;
-			for (long j = 1; j <= numberOfColumns; j++) {
+			for (long j = 1; j <= n; j++) {
 				v[i][j] = my data[rowb + i - 1][colb + j - 1];
 			}
 		}
 
-		NUMcentreColumns (v.peek(), 1, numberOfRows, 1, numberOfColumns, thy centroid);
+		NUMcentreColumns (v.peek(), 1, m, 1, n, thy centroid);
 
-		SSCP_setNumberOfObservations (thee.get(), numberOfRows);
+		SSCP_setNumberOfObservations (thee.peek(), m);
 
 		// sum of squares and cross products = T'T
 
-		for (long i = 1; i <= numberOfColumns; i++) {
-			for (long j = i; j <= numberOfColumns; j++) {
-				double t = 0.0;
-				for (long k = 1; k <= numberOfRows; k++) {
+		for (long i = 1; i <= n; i++) {
+			for (long j = i; j <= n; j++) {
+				double t = 0;
+				for (long k = 1; k <= m; k++) {
 					t += v[k][i] * v[k][j];
 				}
 				thy data[i][j] = thy data[j][i] = t;
 			}
 		}
-		for (long j = 1; j <= numberOfColumns; j++) {
+		for (long j = 1; j <= n; j++) {
 			char32 *label = my columnLabels[colb + j - 1];
-			TableOfReal_setColumnLabel (thee.get(), j, label);
-			TableOfReal_setRowLabel (thee.get(), j, label);
+			TableOfReal_setColumnLabel (thee.peek(), j, label);
+			TableOfReal_setRowLabel (thee.peek(), j, label);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": SSCP not created.");
 	}
 }
 
-autoTableOfReal SSCP_and_TableOfReal_extractDistanceQuantileRange (SSCP me, TableOfReal thee, double qlow, double qhigh) {
+TableOfReal SSCP_and_TableOfReal_extractDistanceQuantileRange (SSCP me, TableOfReal thee,
+        double qlow, double qhigh) {
 	try {
 		autoCovariance cov = SSCP_to_Covariance (me, 1);
-		autoTableOfReal him = Covariance_and_TableOfReal_extractDistanceQuantileRange (cov.get(), thee, qlow, qhigh);
-		return him;
+		autoTableOfReal him = Covariance_and_TableOfReal_extractDistanceQuantileRange (cov.peek(), thee, qlow, qhigh);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no distance quantile ranges created.");
 	}
 }
 
-autoTableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, TableOfReal thee, bool useTableCentroid) {
+TableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, thou, bool useTableCentroid) {
 	try {
+		thouart (TableOfReal);
+
 		autoTableOfReal him = TableOfReal_create (thy numberOfRows, 1);
 		autoNUMvector<double> centroid (NUMvector_copy (my centroid, 1, thy numberOfColumns), 1);
 		autoNUMmatrix<double> covari (NUMmatrix_copy (my data, 1, my numberOfRows, 1, my numberOfRows), 1, 1);
@@ -606,7 +591,7 @@ autoTableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, TableOfRe
 
 		if (useTableCentroid) {
 			for (long icol = 1; icol <= thy numberOfColumns; icol++) {
-				double mean = 0.0;
+				double mean = 0;
 				for (long irow = 1; irow <= thy numberOfRows; irow++) {
 					mean += thy data[irow][icol];
 				}
@@ -616,23 +601,24 @@ autoTableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, TableOfRe
 
 		for (long k = 1; k <= thy numberOfRows; k++) {
 			his data[k][1] = sqrt (NUMmahalanobisDistance_chi (covari.peek(), thy data[k], centroid.peek(), my numberOfRows, my numberOfRows));
-			if (thy rowLabels[k]) {
-				TableOfReal_setRowLabel (him.get(), k, thy rowLabels[k]);
+			if (thy rowLabels[k] != 0) {
+				TableOfReal_setRowLabel (him.peek(), k, thy rowLabels[k]);
 			}
 		}
-		TableOfReal_setColumnLabel (him.get(), 1, U"d");
-		return him;
+		TableOfReal_setColumnLabel (him.peek(), 1, U"d");
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"no Mahalanobis distances created.");
 	}
 }
 
-autoTableOfReal Covariance_and_TableOfReal_extractDistanceQuantileRange (Covariance me, TableOfReal thee, double qlow, double qhigh) {
+
+TableOfReal Covariance_and_TableOfReal_extractDistanceQuantileRange (Covariance me, TableOfReal thee, double qlow, double qhigh) {
 	try {
 		autoTableOfReal him = Covariance_and_TableOfReal_mahalanobis (me, thee, false);
 
-		double low = TableOfReal_getColumnQuantile (him.get(), 1, qlow);
-		double high = TableOfReal_getColumnQuantile (him.get(), 1, qhigh);
+		double low = TableOfReal_getColumnQuantile (him.peek(), 1, qlow);
+		double high = TableOfReal_getColumnQuantile (him.peek(), 1, qhigh);
 
 		// Count the number filtered.
 		// nsel = (qhigh - qlow) * nrows is sometimes one off
@@ -650,106 +636,105 @@ autoTableOfReal Covariance_and_TableOfReal_extractDistanceQuantileRange (Covaria
 
 		autoTableOfReal r = TableOfReal_create (nsel, thy numberOfColumns);
 		NUMstrings_copyElements (thy columnLabels, r -> columnLabels, 1, thy numberOfColumns);
-		//((r -> columnLabels = NUMstrings_copy (thy columnLabels, 1, thy numberOfColumns)) == nullptr)) goto end;
+		//((r -> columnLabels = NUMstrings_copy (thy columnLabels, 1, thy numberOfColumns)) == NULL)) goto end;
 
 		long k = 0;
 		for (long i = 1; i <= thy numberOfRows; i++) {
 			if (low <= his data[i][1] && his data[i][1] < high) {
 				k++;
-				TableOfReal_copyOneRowWithLabel (thee, r.get(), i, k);
+				TableOfReal_copyOneRowWithLabel (thee, r.peek(), i, k);
 			}
 		}
-		return r;
+		return r.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"TableOfReal with distance quantile range not created.");
+		Melder_throw (U"TableOfReal with distancequantile range not created.");
 	}
 }
 
-autoCovariance TableOfReal_to_Covariance (TableOfReal me) {
+
+Covariance TableOfReal_to_Covariance (TableOfReal me) {
 	try {
 		autoSSCP sscp = TableOfReal_to_SSCP (me, 0, 0, 0, 0);
-		autoCovariance thee = SSCP_to_Covariance (sscp.get(), 1);
-		return thee;
+		autoCovariance thee = SSCP_to_Covariance (sscp.peek(), 1);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": covariances not created.");
 	}
 }
 
-autoCorrelation TableOfReal_to_Correlation (TableOfReal me) {
+Correlation TableOfReal_to_Correlation (TableOfReal me) {
 	try {
 		autoSSCP sscp = TableOfReal_to_SSCP (me, 0, 0, 0, 0);
-		autoCorrelation thee = SSCP_to_Correlation (sscp.get());
-		return thee;
+		autoCorrelation thee = SSCP_to_Correlation (sscp.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": correlations not created.");
 	}
 }
 
-autoCorrelation TableOfReal_to_Correlation_rank (TableOfReal me) {
+Correlation TableOfReal_to_Correlation_rank (TableOfReal me) {
 	try {
 		autoTableOfReal t = TableOfReal_rankColumns (me);
-		autoCorrelation thee = TableOfReal_to_Correlation (t.get());
-		return thee;
+		autoCorrelation thee = TableOfReal_to_Correlation (t.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rank correlations not created.");
 	}
 }
 
-autoSSCPList TableOfReal_to_SSCPList_byLabel (TableOfReal me) {
+SSCPs TableOfReal_to_SSCPs_byLabel (TableOfReal me) {
 	try {
-		autoSSCPList thee = SSCPList_create ();
+		autoSSCPs thee = SSCPs_create ();
 		autoTableOfReal mew = TableOfReal_sortOnlyByRowLabels (me);
 
-		Melder_warningOff ();
-		long lastrow = 0, numberOfMatrices = 0, numberOfSingularMatrices = 0, index = 1;
 		const char32 *label = mew -> rowLabels[1];
-		for (long i = 2; i <= my numberOfRows; i++) {
-			long numberOfRowsInCurrent = 0;
-			const char32 *currentLabel = mew -> rowLabels[i];
-			if (Melder_cmp (currentLabel, label) != 0) {
+		Melder_warningOff ();
+		long numberOfCases = my numberOfRows, ncols = my numberOfColumns;
+		long lastrow = 0, ngroups = 0, nsingular = 0, index = 1;
+		for (long i = 2; i <= numberOfCases; i++) {
+			long nrows = 0;
+			const char32 *li = mew -> rowLabels[i];
+			if (Melder_cmp (li, label) != 0) {
 				// current label different from previous one(s)
-				numberOfRowsInCurrent = i - index;
-				lastrow = i - 1;
-			} else if (i == my numberOfRows) {
+				nrows = i - index; lastrow = i - 1;
+			} else if (i == numberOfCases) {
 				// current (last) label is same as previous
-				numberOfRowsInCurrent = i - index + 1;
-				lastrow = i;
+				nrows = i - index + 1; lastrow = i;
 			} else {
 				// next one
 				continue;
 			}
 			// We found a new group
-			         numberOfMatrices++;
-			if (numberOfRowsInCurrent > 1) { // We need at least two rows for an SSCP
-				if (numberOfRowsInCurrent < my numberOfColumns) {
-					numberOfSingularMatrices++;
+			ngroups++;
+			if (nrows > 1) { // We need at least two rows for an SSCP
+				if (nrows < ncols) {
+					nsingular++;
 				}
-				autoSSCP t = TableOfReal_to_SSCP (mew.get(), index, lastrow, 0, 0);
+				autoSSCP t = TableOfReal_to_SSCP (mew.peek(), index, lastrow, 0, 0);
 				if (! (label = mew -> rowLabels[index])) {
 					label = U"?";
 				}
-				Thing_setName (t.get(), label);
-				thy addItem_move (t.move());
+				Thing_setName (t.peek(), label);
+				Collection_addItem (thee.peek(), t.transfer());
 			}
-			label = currentLabel;
-			index = i;
+			label = li; index = i;
 		}
-		if (lastrow != my numberOfRows) {
-			numberOfMatrices++;
+		if (lastrow != numberOfCases) {
+			ngroups++;
 		}
 		Melder_warningOn ();
-		if (numberOfSingularMatrices > 0 || thy size != numberOfMatrices) {
-			long notIncluded = numberOfMatrices - thy size;
-			Melder_warning (numberOfMatrices, U" different groups detected: ", numberOfSingularMatrices + notIncluded,
-				U" group(s) with less rows than columns (of which ", notIncluded, U" with only one row).");
+		if (nsingular > 0 || thy size != ngroups) {
+			long notIncluded = ngroups - thy size;
+			Melder_warning (ngroups, U" different groups detected: ", nsingular + notIncluded,
+			                U" group(s) with less rows than columns (of which ", notIncluded, U" with only one row).");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": SSCP not created from labels.");
 	}
 }
 
-autoPCA SSCP_to_PCA (SSCP me) {
+PCA SSCP_to_PCA (SSCP me) {
 	try {
 		double **data = my data;
 		autoNUMmatrix<double> adata;
@@ -764,10 +749,10 @@ autoPCA SSCP_to_PCA (SSCP me) {
 			data = adata.peek();
 		}
 		NUMstrings_copyElements (my columnLabels, thy labels, 1, my numberOfColumns);
-		Eigen_initFromSymmetricMatrix (thee.get(), data, my numberOfColumns);
+		Eigen_initFromSymmetricMatrix (thee.peek(), data, my numberOfColumns);
 		NUMvector_copyElements (my centroid, thy centroid, 1, my numberOfColumns);
-		PCA_setNumberOfObservations (thee.get(), (long) floor (my numberOfObservations));
-		return thee;
+		PCA_setNumberOfObservations (thee.peek(), (long) floor (my numberOfObservations));
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": PCA not created.");
 	}
@@ -802,7 +787,7 @@ void SSCP_setCentroid (SSCP me, long component, double value) {
 	my centroid[component] = value;
 }
 
-autoCCA SSCP_to_CCA (SSCP me, long ny) {
+CCA SSCP_to_CCA (SSCP me, long ny) {
 	try {
 		char upper = 'L', diag = 'N';
 		long info;
@@ -895,7 +880,7 @@ autoCCA SSCP_to_CCA (SSCP me, long ny) {
 
 		for (long i = 1; i <= ny; i++) {
 			for (long j = 1; j <= nx; j++) {
-				double t = 0.0;
+				double t = 0;
 				for (long k = 1; k <= j; k++) {
 					t += syx[i][k] * sxx[k][j];
 				}
@@ -919,11 +904,11 @@ autoCCA SSCP_to_CCA (SSCP me, long ny) {
 			double t = gsvd -> d1[i] / gsvd -> d2[i];
 			thy y -> eigenvalues[i] = t * t;
 			for (long j = 1; j <= gsvd -> numberOfColumns; j++) {
-				t = 0.0;
+				t = 0;
 				for (long k = 1; k <= j; k++) {
 					t += gsvd -> q[i][k] * ri[k][j];
 				}
-				thy y -> eigenvectors[j][i] = t;
+				thy y ->eigenvectors[j][i] = t;
 			}
 		}
 
@@ -938,7 +923,7 @@ autoCCA SSCP_to_CCA (SSCP me, long ny) {
 			double *evecy = thy y -> eigenvectors[i];
 			double *evecx = thy x -> eigenvectors[i];
 			for (long j = 1; j <= nx; j++) {
-				double t = 0.0;
+				double t = 0;
 				for (long k = j; k <= nx; k++) {
 					for (long l = 1; l <= nx; l++) {
 						for (long n = 1; n <= ny; n++) {
@@ -953,411 +938,308 @@ autoCCA SSCP_to_CCA (SSCP me, long ny) {
 		NUMnormalizeRows (thy x -> eigenvectors, thy x -> numberOfEigenvalues, nx, 1);
 
 		if (ny < nx) {
-			autoEigen t = thy x.move();
-			thy x = thy y.move(); thy y = t.move();
+			Eigen t = thy x;
+			thy x = thy y; thy y = t;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": CCA not created.");
 	}
 }
 
-/************ SSCPList ***********************************************/
-
-autoSSCP SSCPList_to_SSCP_pool (SSCPList me) {
-	try {
-		autoSSCP thee = Data_copy (my at [1]);
-
-		for (long k = 2; k <= my size; k ++) {
-			SSCP t = my at [k];
-			if (t -> numberOfRows != thy numberOfRows) {
-				Melder_throw (U"The dimension of item ", k, U" does not agree.");
-			}
-
-			thy numberOfObservations += t -> numberOfObservations;
+/************ SSCPs ***********************************************/
 
-			// Sum the sscp's and weigh the centroid.
-
-			for (long i = 1; i <= thy numberOfRows; i ++) {   // if 1xn
-				for (long j = 1; j <= thy numberOfColumns; j ++) {
-					thy data [i] [j] += t -> data [i] [j];
-				}
-			}
+Thing_implement (SSCPs, Ordered, 0);
 
-			for (long j = 1; j <= thy numberOfRows; j ++) {
-				thy centroid [j] += t -> numberOfObservations * t -> centroid [j];
-			}
-		}
-
-		for (long i = 1; i <= thy numberOfRows; i ++) {
-			thy centroid [i] /= thy numberOfObservations;
-		}
-		
-		return thee;
+SSCPs SSCPs_create () {
+	try {
+		autoSSCPs me = Thing_new (SSCPs);
+		Ordered_init (me.peek(), classSSCP, 10);
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not pooled.");
+		Melder_throw (U"SSCPs not created.");
 	}
 }
 
-autoCovariance CovarianceList_to_Covariance_pool (CovarianceList me) { // Morrison sec 3.5, page 100
+SSCP SSCPs_to_SSCP_pool (SSCPs me) {
 	try {
-		autoCovariance thee = Data_copy (my at [1]);
-		double scaleFactor = thy numberOfObservations - 1.0;
-		
-		for (long i = 1; i <= thy numberOfRows; i++) {
-			for (long j = 1; j <= thy numberOfColumns; j++) {
-				thy data[i][j] *= scaleFactor;
-			}
-		}
-		
-		for (long k = 2; k <= my size; k ++) {
-			Covariance t = my at [k];
+		autoSSCP thee = Data_copy ( (SSCP) my item[1]);
+
+		for (long k = 2; k <= my size; k++) {
+			SSCP t = (SSCP) my item[k];
+			long no = (long) floor (t -> numberOfObservations);
 			if (t -> numberOfRows != thy numberOfRows) {
-				Melder_throw (U"The dimension of item ", k, U" does not agree.");
+				Melder_throw (U"Unequal dimensions (", k, U").");
 			}
 
-			thy numberOfObservations += t -> numberOfObservations;
+			thy numberOfObservations += no;
 
 			// Sum the sscp's and weigh the centroid.
-			scaleFactor = t -> numberOfObservations - 1.0;
+
 			for (long i = 1; i <= thy numberOfRows; i++) { // if 1xn
 				for (long j = 1; j <= thy numberOfColumns; j++) {
-					thy data[i][j] += scaleFactor * t -> data[i][j];
+					thy data[i][j] += t -> data[i][j];
 				}
 			}
 
 			for (long j = 1; j <= thy numberOfRows; j++) {
-				thy centroid[j] += t -> numberOfObservations * t -> centroid[j];
+				thy centroid[j] += no * t -> centroid[j];
 			}
 		}
 
 		for (long i = 1; i <= thy numberOfRows; i++) {
 			thy centroid[i] /= thy numberOfObservations;
 		}
-		
-		scaleFactor = 1.0 / (thy numberOfObservations - my size);
-		for (long i = 1; i <= thy numberOfRows; i++) { // if 1xn
-			for (long j = 1; j <= thy numberOfColumns; j++) {
-				thy data[i][j] *= scaleFactor;
-			}
-		}
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not pooled.");
 	}
 }
 
-void SSCPList_getHomegeneityOfCovariances_box (SSCPList me, double *p_prob, double *p_chisq, double *p_df) {
-	double chisq = 0.0, df = NUMundefined;
+void SSCPs_getHomegeneityOfCovariances_box (SSCPs me, double *probability, double *chisq, long *ndf) {
+	*probability = 0; *chisq = 0; *ndf = 0;
 
-	autoSSCP pooled = SSCPList_to_SSCP_pool (me);
+	autoSSCP pooled = SSCPs_to_SSCP_pool (me);
 	long p = pooled -> numberOfColumns;
-	double ln_determinant, inv = 0.0, sum = 0.0, g = my size;
-	for (long i = 1; i <= g; i ++) {
-		SSCP t = my at [i];
-		double ni = t -> numberOfObservations - 1.0;
-		NUMdeterminant_cholesky (t -> data, p, & ln_determinant);
+	double ln_determinant, inv = 0, sum = 0, g = my size;
+	for (long i = 1; i <= g; i++) {
+		SSCP t = (SSCP) my item[i];
+		double ni = t -> numberOfObservations - 1;
+		NUMdeterminant_cholesky (t -> data, p, &ln_determinant);
 
 		// Box-test is for covariance matrices -> scale determinant.
 
 		ln_determinant -= p * log (ni);
-		sum += ni;
-		inv += 1.0 / ni;
-		chisq -= ni * ln_determinant;
+		sum += ni; inv += 1 / ni;
+		*chisq -= ni * ln_determinant;
 	}
 
-	NUMdeterminant_cholesky (pooled -> data, p, & ln_determinant);
+	NUMdeterminant_cholesky (pooled -> data, p, &ln_determinant);
 	ln_determinant -= p * log (pooled -> numberOfObservations - g);
-	chisq += sum * ln_determinant;
+	*chisq += sum * ln_determinant;
 
-	chisq *= 1.0 - (inv - 1.0 / sum) * (2.0 * p * p + 3.0 * p - 1.0) / (6.0 * (p + 1) * (g - 1.0));
-	df = (g - 1.0) * p * (p + 1) / 2.0;
-	if (p_prob) {
-		*p_prob = NUMchiSquareQ (chisq, df);
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
-	}
-	if (p_df) {
-		*p_df = df;
-	}
+	*chisq *= 1.0 - (inv - 1 / sum) * (2 * p * p + 3 * p - 1) / (6 * (p + 1) * (g - 1));
+	*ndf = (long) floor ((g - 1) * p * (p + 1) / 2);   // ppgb deze hele formule wordt in double doorgerekend; is dat de bedoeling?
+	*probability =  NUMchiSquareQ (*chisq, *ndf);
 }
 
-autoSSCPList SSCPList_toTwoDimensions (SSCPList me, double v1[], double v2[]) {
+
+SSCPs SSCPs_toTwoDimensions (SSCPs me, double *v1, double *v2) {
 	try {
-		autoSSCPList thee = SSCPList_create ();
-		for (long i = 1; i <= my size; i ++) {
-			autoSSCP t = SSCP_toTwoDimensions (my at [i], v1, v2);
-			Thing_setName (t.get(), Thing_getName (my at [i]));
-			thy addItem_move (t.move());
+		autoSSCPs thee = SSCPs_create ();
+		for (long i = 1; i <= my size; i++) {
+			autoSSCP t = (SSCP) SSCP_toTwoDimensions ((SSCP) my item[i], v1, v2);
+			Thing_setName (t.peek(), Thing_getName ( (Thing) my item[i]));
+			Collection_addItem (thee.peek(), t.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not reduced to two dimensions.");
 	}
 }
 
 
-void SSCPList_drawConcentrationEllipses (SSCPList me, Graphics g, double scale, bool confidence, const char32 *label, long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, bool garnish) {
-	SSCP t = my at [1];
-
+void SSCPs_drawConcentrationEllipses (SSCPs me, Graphics g, double scale, int confidence, const char32 *label,
+                                      long d1, long d2, double xmin, double xmax, double ymin, double ymax, int fontSize, int garnish) {
+	SSCP t = (SSCP) my item[1];
 	long p = t -> numberOfColumns;
 
 	if (d1 < 1 || d1 > p || d2 < 1 || d2 > p || d1 == d2) {
 		Melder_throw (U"Incorrect axes.");
 	}
 
-	autoSSCPList thee = SSCPList_extractTwoDimensions (me, d1, d2);
+	autoSSCPs thee = SSCPs_extractTwoDimensions (me, d1, d2);
+	double xmn, xmx, ymn, ymx;
+	SSCPs_getEllipsesBoundingBoxCoordinates (thee.peek(), scale, confidence, &xmn, &xmx, &ymn, &ymx);
 
-	/*
-		Autowindowing.
-	*/
-	if (xmin == xmax || ymin == ymax) {
-		double boundingBox_xmin, boundingBox_xmax, boundingBox_ymin, boundingBox_ymax;
-		SSCPList_getEllipsesBoundingBoxCoordinates (thee.get(), scale, confidence,
-			& boundingBox_xmin, & boundingBox_xmax, & boundingBox_ymin, & boundingBox_ymax);
-		if (xmin == xmax) {
-			xmin = boundingBox_xmin;
-			xmax = boundingBox_xmax;
-		}
-		if (ymin == ymax) {
-			ymin = boundingBox_ymin;
-			ymax = boundingBox_ymax;
-		}
+	if (xmin == xmax) {
+		xmin = xmn; xmax = xmx;
+	}
+
+	if (ymin == ymax) {
+		ymin = ymn; ymax = ymx;
 	}
 
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_setInner (g);
 
 
-	for (long i = 1; i <= thy size; i ++) {
-		t = thy at [i];
+	for (long i = 1; i <= thy size; i++) {
+		t = (SSCP) thy item[i];
 		double lscale = SSCP_getEllipseScalefactor (t, scale, confidence);
-		if (lscale < 0.0) {
+		if (lscale < 0) {
 			continue;
 		}
-		if (! label || Melder_cmp (label, Thing_getName (t)) == 0) {
+		if (label == 0 || Melder_cmp (label, Thing_getName (t)) == 0) {
 			_SSCP_drawTwoDimensionalEllipse (t, g, lscale, fontSize);
 		}
 	}
 
 	Graphics_unsetInner (g);
 	if (garnish) {
-		t = my at [1];
+		t = (SSCP) my item[1];
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, t -> columnLabels[d2] ? t -> columnLabels[d2] : Melder_cat (U"Dimension ", d2));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, t -> columnLabels[d1] ? t -> columnLabels[d1] : Melder_cat (U"Dimension ", d1));
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, t -> columnLabels[d2] ? t -> columnLabels[d2] : Melder_cat (U"Dimension ", d2));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, t -> columnLabels[d1] ? t -> columnLabels[d1] : Melder_cat (U"Dimension ", d1));
 	}
 }
 
-autoTableOfReal SSCP_to_TableOfReal (SSCP me) {
+TableOfReal SSCP_to_TableOfReal (SSCP me) {
 	try {
 		autoTableOfReal thee = Thing_new (TableOfReal);
-		my structTableOfReal :: v_copy (thee.get());
-		return thee;
+		my structTableOfReal :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not copied.");
 	}
 }
 
-autoTableOfReal SSCP_extractCentroid (SSCP me) {
+TableOfReal SSCP_extractCentroid (SSCP me) {
 	try {
 		long n = my numberOfColumns;
 
 		autoTableOfReal thee = TableOfReal_create (1, n);
 		NUMvector_copyElements (my centroid, thy data[1], 1, n);
 		thy columnLabels = NUMstrings_copy (my columnLabels, 1, n);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": centroid not extracted.");
 	}
 }
 
-autoCovariance Covariance_create (long dimension) {
+Thing_implement (Covariance, SSCP, 0);
+
+Thing_implement (Correlation, SSCP, 0);
+
+Covariance Covariance_create (long dimension) {
 	try {
 		autoCovariance me = Thing_new (Covariance);
-		SSCP_init (me.get(), dimension, dimension);
-		return me;
+		SSCP_init (me.peek(), dimension, dimension);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Covariance not created.");
 	}
 }
 
-autoCovariance Covariance_create_reduceStorage (long dimension, long storage) {
+Covariance Covariance_create_reduceStorage (long dimension, long storage) {
 	try {
 		autoCovariance me = Thing_new (Covariance);
 		if (storage <= 0 || storage >= dimension) {
 			storage = dimension;
 		}
-		SSCP_init (me.get(), dimension, storage);
-		return me;
+		SSCP_init (me.peek(), dimension, storage);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Reduced storage covariance not created.");
 	}
 }
 
-
-
-autoCovariance Covariance_createSimple (char32 *s_covariances, char32 *s_centroid, long numberOfObservations) {
+Covariance Covariance_createSimple (char32 *covariances, char32 *centroid, long numberOfObservations) {
 	try {
-		long dimension, numberOfCovariances;
-		autoNUMvector<double> centroid (NUMstring_to_numbers (s_centroid, & dimension), 1);
-		autoNUMvector<double> covariances (NUMstring_to_numbers (s_covariances, & numberOfCovariances), 1);
-		long numberOfCovariances_wanted = dimension * (dimension + 1) / 2;
-		if (numberOfCovariances != numberOfCovariances_wanted) {
-			Melder_throw (U"The number of covariance matrix elements and the number of centroid elements are not in "
-				" concordance. There should be d(d+1)/2 covariance values and d centroid values.");
-		}
-		
+		long dimension, ncovars;
+		autoNUMvector<double> centroids (NUMstring_to_numbers (centroid, &dimension), 1);
+		autoNUMvector<double> covars (NUMstring_to_numbers (covariances, &ncovars), 1);
+		long ncovars_wanted = dimension * (dimension + 1) / 2;
+		if (ncovars != ncovars_wanted) Melder_throw (U"The number of covariance matrix elements and the number of "
+			        U"centroid elements are not in concordance. There should be d(d+1)/2 covariance values and d centroid values.");
+
 		autoCovariance me = Covariance_create (dimension);
 
 		// Construct the full covariance matrix from the upper-diagonal elements
 
 		long rowNumber = 1;
-		for (long inum = 1; inum <= numberOfCovariances; inum ++) {
-			long nmissing = (rowNumber - 1) * rowNumber / 2;
-			long inumc = inum + nmissing;
-			rowNumber = (inumc - 1) / dimension + 1;
-			long icol = ((inumc - 1) % dimension) + 1;
-			my data [rowNumber] [icol] = my data [icol] [rowNumber] = covariances [inum];
-			if (icol == dimension) {
-				rowNumber ++;
-			}
-		}
-
-		// Check if a valid covariance, first check variances then covariances
-
-		for (long irow = 1; irow <= dimension; irow ++) {
-			if (my data [irow] [irow] <= 0) {
-				Melder_throw (U"The diagonal matrix elements, must all be positive numbers.");
-			}
-		}
-		for (long irow = 1; irow <= dimension; irow ++) {
-			for (long icol = irow + 1; icol <= dimension; icol ++) {
-				if (fabs (my data [irow] [icol] / sqrt (my data [irow] [irow] * my data [icol] [icol])) > 1) {
-					long nmissing = (irow - 1) * irow / 2;
-					long inum = (irow - 1) * dimension + icol - nmissing;
-					Melder_throw (U"The covariance in cell [", irow, U",", icol, U"], i.e. input item ", inum, U" is too large.");
-				}
-			}
-		}
-		for (long inum = 1; inum <= dimension; inum ++) {
-			my centroid [inum] = centroid [inum];
-		}
-		my numberOfObservations = numberOfObservations;
-		return me;
-	} catch (MelderError) {
-		Melder_throw (U"Simple Covariance not created.");
-	}
-}
-
-autoCorrelation Correlation_createSimple (char32 *s_correlations, char32 *s_centroid, long numberOfObservations) {
-	try {
-		long dimension, numberOfCorrelations;
-		autoNUMvector<double> centroids (NUMstring_to_numbers (s_centroid, & dimension), 1);
-		autoNUMvector<double> correlations (NUMstring_to_numbers (s_correlations, & numberOfCorrelations), 1);
-		long numberOfCorrelations_wanted = dimension * (dimension + 1) / 2;
-		if (numberOfCorrelations != numberOfCorrelations_wanted) {
-			Melder_throw (U"The number of correlation matrix elements and the number of centroid elements are not in "
-				" concordance. There should be d(d+1)/2 correlation values and d centroid values.");
-		}
-		autoCorrelation me = Correlation_create (dimension);
-
-		// Construct the full correlation matrix from the upper-diagonal elements
-
-		long rowNumber = 1;
-		for (long inum = 1; inum <= numberOfCorrelations; inum++) {
+		for (long inum = 1; inum <= ncovars_wanted; inum++) {
 			long nmissing = (rowNumber - 1) * rowNumber / 2;
 			long inumc = inum + nmissing;
 			rowNumber = (inumc - 1) / dimension + 1;
 			long icol = ( (inumc - 1) % dimension) + 1;
-			my data [rowNumber][icol] = my data [icol][rowNumber] = correlations [inum];
+			my data[rowNumber][icol] = my data[icol][rowNumber] = covars[inum];
 			if (icol == dimension) {
 				rowNumber++;
 			}
 		}
 
-		// Check if a valid correlations, first check variances then covariances
+		// Check if a valid covariance, first check variances then covariances
 
 		for (long irow = 1; irow <= dimension; irow++) {
-			if (my data [irow][irow] != 1.0) {
-				Melder_throw (U"The diagonal matrix elements, must all equal 1.0.");
+			if (my data[irow][irow] <= 0) {
+				Melder_throw (U"The variances, i.e. the diagonal matrix elements, must all be positive numbers.");
 			}
 		}
 		for (long irow = 1; irow <= dimension; irow++) {
 			for (long icol = irow + 1; icol <= dimension; icol++) {
-				if (fabs (my data[irow][icol]) > 1) {
+				if (fabs (my data[irow][icol] / sqrt (my data[irow][irow] * my data[icol][icol])) > 1) {
 					long nmissing = (irow - 1) * irow / 2;
 					long inum = (irow - 1) * dimension + icol - nmissing;
-					Melder_throw (U"The correlation in cell [", irow, U",", icol, U"], i.e. input item ", inum, U" is larger then 1.0.");
+					Melder_throw (U"The covariance in cell [", irow, U",", icol, U"], i.e. input item ", inum, U" is too large.");
 				}
 			}
 		}
 		for (long inum = 1; inum <= dimension; inum++) {
-			my centroid [inum] = centroids [inum];
+			my centroid[inum] = centroids[inum];
 		}
 		my numberOfObservations = numberOfObservations;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"Simple Correlation not created.");
+		Melder_throw (U"Simple Covariance not created.");
 	}
 }
 
-autoCorrelation Correlation_create (long dimension) {
+Correlation Correlation_create (long dimension) {
 	try {
 		autoCorrelation me = Thing_new (Correlation);
-		SSCP_init (me.get(), dimension, dimension);
-		return me;
+		SSCP_init (me.peek(), dimension, dimension);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Correlation not created.");
 	}
 }
 
-autoCovariance SSCP_to_Covariance (SSCP me, long numberOfConstraints) {
+Covariance SSCP_to_Covariance (SSCP me, long numberOfConstraints) {
 	try {
 		Melder_assert (numberOfConstraints >= 0);
 		autoCovariance thee = Thing_new (Covariance);
-		my structSSCP :: v_copy (thee.get());
+		my structSSCP :: v_copy (thee.peek());
 
-		for (long irow = 1; irow <= my numberOfRows; irow ++) {
-			for (long icol = irow; icol <= my numberOfColumns; icol ++) {   // a covariance matrix is symmetric
-				thy data [icol] [irow] = thy data [irow] [icol] /= my numberOfObservations - numberOfConstraints;
+		for (long i = 1; i <= my numberOfRows; i++) {
+			for (long j = i; j <= my numberOfColumns; j++) {
+				thy data[j][i] = thy data[i][j] /= (my numberOfObservations - numberOfConstraints);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"; Covariance not created.");
 	}
 }
 
-autoSSCP Covariance_to_SSCP (Covariance me) {
+SSCP Covariance_to_SSCP (Covariance me) {
 	try {
 		autoSSCP thee = Thing_new (SSCP);
-		my structSSCP :: v_copy (thee.get());
-		for (long irow = 1; irow <= my numberOfRows; irow ++) {
-			for (long icol = irow; icol <= my numberOfColumns; icol ++) {
-				thy data [icol] [irow] = thy data [irow] [icol] *= my numberOfObservations - 1;
+		my structSSCP :: v_copy (thee.peek());
+		for (long i = 1; i <= my numberOfRows; i++) {
+			for (long j = i; j <= my numberOfColumns; j++) {
+				thy data[j][i] = thy data[i][j] *= (my numberOfObservations - 1);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": SSCP not created.");
 	}
 }
 
-autoCorrelation SSCP_to_Correlation (SSCP me) {
+Correlation SSCP_to_Correlation (SSCP me) {
 	try {
 		autoCorrelation thee = Thing_new (Correlation);
-		my structSSCP :: v_copy (thee.get());
+		my structSSCP :: v_copy (thee.peek());
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = i; j <= my numberOfColumns; j++) {
 				thy data[j][i] = thy data[i][j] /= sqrt (my data[i][i] * my data[j][j]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Correlation not created.");
 	}
@@ -1366,25 +1248,25 @@ autoCorrelation SSCP_to_Correlation (SSCP me) {
 double SSCP_getLnDeterminant (SSCP me) {
 	try {
 		double ln_d;
-		NUMdeterminant_cholesky (my data, my numberOfRows, & ln_d);
+		NUMdeterminant_cholesky (my data, my numberOfRows, &ln_d);
 		return ln_d;
 	} catch (MelderError) {
 		return NUMundefined;
 	}
 }
 
-static autoCovariance Covariances_pool (Covariance me, Covariance thee) {
+static Covariance Covariances_pool (Covariance me, Covariance thee) {
 	try {
 		if (my numberOfRows != thy numberOfRows || my numberOfColumns != thy numberOfColumns)  Melder_throw
 			(U"Matrices must have equal dimensions.");
-		autoSSCPList sscps = SSCPList_create ();
+		autoSSCPs sscps = SSCPs_create ();
 		autoSSCP sscp1 = Covariance_to_SSCP (me);
-		sscps -> addItem_move (sscp1.move());
+		Collection_addItem (sscps.peek(), sscp1.transfer());
 		autoSSCP sscp2 = Covariance_to_SSCP (thee);
-		sscps -> addItem_move (sscp2.move());
-		autoSSCP pool = SSCPList_to_SSCP_pool (sscps.get());
-		autoCovariance him = SSCP_to_Covariance (pool.get(), 2);
-		return him;
+		Collection_addItem (sscps.peek(), sscp2.transfer());
+		autoSSCP pool = SSCPs_to_SSCP_pool (sscps.peek());
+		autoCovariance him = SSCP_to_Covariance (pool.peek(), 2);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"not pooled.");
 	}
@@ -1392,11 +1274,11 @@ static autoCovariance Covariances_pool (Covariance me, Covariance thee) {
 
 static double **productOfSquareMatrices (double **s1, double **s2, long n) {
 	autoNUMmatrix<double> r (1, n, 1, n);
-	for (long i = 1; i <= n; i ++) {
-		for (long j = 1; j <= n; j ++) {
+	for (long i = 1; i <= n; i++) {
+		for (long j = 1; j <= n; j++) {
 			double sum = 0;
-			for (long k = 1; k <= n; k ++) {
-				sum += s1 [i] [k] * s2 [k] [j];
+			for (long k = 1; k <= n; k++) {
+				sum += s1[i][k] * s2[k][j];
 			}
 			r[i][j] = sum;
 		}
@@ -1414,7 +1296,7 @@ static double traceOfSquaredMatrixProduct (double **s1, double **s2, long n) {
 double Covariance_getProbabilityAtPosition_string (Covariance me, char32 *vector) {
 	autoNUMvector<double> v (1, my numberOfColumns);
 	long i = 0;
-	for (char32 *token = Melder_firstToken (vector); token != nullptr; token = Melder_nextToken ()) {
+	for (char32 *token = Melder_firstToken (vector); token != NULL; token = Melder_nextToken ()) {
 		v[++i] = Melder_atof (token);
 		if (i == my numberOfColumns) {
 			break;
@@ -1424,7 +1306,7 @@ double Covariance_getProbabilityAtPosition_string (Covariance me, char32 *vector
 	return p;
 }
 
-double Covariance_getProbabilityAtPosition (Covariance me, double x[]) {
+double Covariance_getProbabilityAtPosition (Covariance me, double *x) {
 	if (my lowerCholesky == 0) {
 		SSCP_expandLowerCholesky (me);
 	}
@@ -1435,7 +1317,7 @@ double Covariance_getProbabilityAtPosition (Covariance me, double x[]) {
 	return p;
 }
 
-double Covariance_getMarginalProbabilityAtPosition (Covariance me, double vector[], double x) {
+double Covariance_getMarginalProbabilityAtPosition (Covariance me, double *vector, double x) {
 	double mu, stdev;
 	Covariance_getMarginalDensityParameters (me, vector, &mu, &stdev);
 	double dx = (x - mu) / stdev;
@@ -1444,40 +1326,34 @@ double Covariance_getMarginalProbabilityAtPosition (Covariance me, double vector
 }
 
 /* Precondition ||v|| = 1 */
-void Covariance_getMarginalDensityParameters (Covariance me, double v[], double *p_mu, double *p_stdev) {
-	if (p_mu) {
-		double mu = 0.0;
+void Covariance_getMarginalDensityParameters (Covariance me, double *v, double *mu, double *stdev) {
+	*stdev = *mu = 0;
+	if (my numberOfRows == 1) { // 1xn diagonal matrix
 		for (long m = 1; m <= my numberOfColumns; m++) {
-			mu += v[m] * my centroid[m];
+			*stdev += v[m] * my data[1][m] * v[m];
 		}
-		*p_mu = mu;
-	}
-	if (p_stdev) {
-		double stdev = 0;
-		if (my numberOfRows == 1) { // 1xn diagonal matrix
+	} else {
+		for (long k = 1; k <= my numberOfRows; k++) {
 			for (long m = 1; m <= my numberOfColumns; m++) {
-				stdev += v[m] * my data[1][m] * v[m];
-			}
-		} else {
-			for (long k = 1; k <= my numberOfRows; k++) {
-				for (long m = 1; m <= my numberOfColumns; m++) {
-					stdev += v[k] * my data[k][m] * v[m];
-				}
+				*stdev += v[k] * my data[k][m] * v[m];
 			}
 		}
-		*p_stdev = sqrt (stdev);
+	}
+	*stdev = sqrt (*stdev);
+	for (long m = 1; m <= my numberOfColumns; m++) {
+		*mu += v[m] * my centroid[m];
 	}
 }
 
-double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance thee, int equalCovariances, double *p_prob, double *p_fisher, double *p_df1, double *p_df2) {
+double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance thee, int equalCovariances, double *prob, double *fisher, double *df1, double *df2) {
 	long p = my numberOfRows, N = (long) floor (my numberOfObservations + thy numberOfObservations);
 	long N1 = (long) floor (my numberOfObservations), n1 = N1 - 1;
 	long N2 = (long) floor (thy numberOfObservations), n2 = N2 - 1;
 
-	double dif = NUMundefined, fisher = NUMundefined;
-	double df1 = p, df2 = N - p - 1;
-	
-	if (df2 < 1) {
+	double dif = *prob = *fisher = NUMundefined;
+	*df1 = p;
+	*df2 = N - p - 1;
+	if (*df2 < 1) {
 		Melder_throw (U"Not enough observations (", N, U") for this test.");
 	}
 	if (N1 < p || N2 < p) {
@@ -1500,7 +1376,7 @@ double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance
 
 		double mahalanobis = NUMmahalanobisDistance_chi (s.peek(), my centroid, thy centroid, p, p);
 		double hotelling_tsq = mahalanobis * N1 * N2 / N;
-		fisher = hotelling_tsq * df2 / ( (N - 2) * df1);
+		*fisher = hotelling_tsq * *df2 / ( (N - 2) * *df1);
 	} else {
 		/* Krishnamoorthy-Yu (2004): Modified Nel and Van der Merwe test
 
@@ -1534,129 +1410,115 @@ double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance
 		double tr_s2si = NUMtrace2 (s2.peek(), si.peek(), p);
 
 		double nu = (p + p * p) / ( (tr_s1sisqr + tr_s1si * tr_s1si) / n1 + (tr_s2sisqr + tr_s2si * tr_s2si) / n2);
-		df2 = nu - p + 1;
-		fisher =  hotelling_tsq * (nu - p + 1) / (nu * p);
+		*df2 = nu - p + 1;
+		*fisher =  hotelling_tsq * (nu - p + 1) / (nu * p);
 	}
 
-	if (p_prob) {
-		*p_prob = NUMfisherQ (fisher, df1, df2);
-	}
-	if (p_fisher) {
-		*p_fisher = fisher;
-	}
-	if (p_df1) {
-		*p_df1 = df1;
-	}
-	if (p_df2) {
-		*p_df2 = df2;
-	}
+	*prob = NUMfisherQ (*fisher, *df1, *df2);
 	return dif;
 }
 
 /* Schott 2001 */
-void Covariances_equality (CovarianceList me, int method, double *p_prob, double *p_chisq, double *p_df) {
+void Covariances_equality (Collection me, int method, double *prob, double *chisq, double *df) {
 	try {
+		long nc = my size;
+		double  nsi = 0;
 
-		long numberOfMatrices = my size;
-		double chisq = NUMundefined, df = NUMundefined;
+		*prob = *chisq = *df = NUMundefined;
 
-		if (numberOfMatrices < 2) {
+		if (nc < 2) {
 			Melder_throw (U"We need at least two matrices");
 		}
 
-		autoCovariance pool = CovarianceList_to_Covariance_pool (me); 
-		double ns = pool -> numberOfObservations - my size;
-		long p = pool -> numberOfColumns;
-		
-		if (method == 1) {
-			/* Bartlett (see Morrison page 297)
-			 * The hypothesis H0 : Sigma[1] = .... = Sigma[k] of the equality of the covariance matrices of k p-dimensional
-			 * multinormal populations can be tested against the alternative by a modified generalized likelihood-ratio statistic.
-			 * Let S[i] be the unbiased estimate of Sigma[i] based on n[i] degrees of freedom, where n[i] = N[i]-1 for 
-			 * the usual case of a random sample of N[i] observation vectors from the i-th population. When H0 is true
-			 *     S = 1/(sum(i=1..k, n[i])) sum(i=1..k, n[i]*S[i])
-			 * is the pooled estimate of the common covariance matrix. The test statistic is
-			 *     M = sum(i=1..k,n[i])*ln|S| - sum(i=1..k, n[i]*ln|S[i]|).
-			 * Box (1949), "A general distribution theory for a class of likelihood criteria", 
-			 *  Biomerika, vol 36, pp. 317-346. has shown that if the scale factor
-			 *     C^(-1) = 1 - (2p^2+3p-1)/(6(p+1)(k-1)) * (sum(i=1..k, 1/n[i]) - 1 / sum(i=1..k, n[i])) is introduced,
-			 * the quatity M/C is approximately distributed as a chi-squared variate with (k-1)p(p+1)/2 degrees of freedom 
-			 * as the n[i] become large.
-			 * It is well known that this likelihood ratio test is very sensitive to violations of the normality assumption, 
-			 * and so other more robust procedures have been proposed.
-			 */
+		long p = 1, ns = 0;
+		for (long i = 1; i <= nc; i++) {
+			Covariance ci = (Covariance) my item[i];
+			double ni = ci -> numberOfObservations - 1;
+			if (i == 1) {
+				p = ci -> numberOfRows;
+			}
+			if (ci -> numberOfRows != p) {
+				Melder_throw (U"The dimensions of matrix ", i, U" differ from the previous one(s).");
+			}
+			if (ni < p) {
+				Melder_throw (U"The number of observations in matrix ", i, U" is less than the number of variables. ");
+			}
+			ns += ni; nsi += 1.0 / ni;
+		}
+
+		autoNUMmatrix<double> s (1, p, 1, p);
+
+		for (long i = 1; i <= nc; i++) { // pool
+			Covariance ci = (Covariance) my item[i];
+			double sf = (ci -> numberOfObservations - 1.0) / ns;
+			for (long j = 1; j <= p; j++) {
+				for (long k = 1; k <= p; k++) {
+					s[j][k] += sf * ci -> data[j][k];
+				}
+			}
+		}
+
+		if (method == 1) { // bartlett
 			double lnd;
 			try {
-				NUMdeterminant_cholesky (pool -> data, p, & lnd);
+				NUMdeterminant_cholesky (s.peek(), p, &lnd);
 			} catch (MelderError) {
 				Melder_throw (U"Pooled covariance matrix is singular.");
 			}
 
-			double nsi = 0.0, m = ns * lnd; // First part of eq (3) page 297
-
-			for (long i = 1; i <= numberOfMatrices; i ++) {
-				Covariance ci = my at [i];
+			double m = ns * lnd;
+			for (long i = 1; i <= nc; i++) {
+				Covariance ci = (Covariance) my item[i];
 				try {
-					NUMdeterminant_cholesky (ci -> data, p, & lnd);
+					NUMdeterminant_cholesky (ci -> data, p, &lnd);
 				} catch (MelderError) {
 					Melder_throw (U"Covariance matrix ", i, U" is singular.");
 				}
-				nsi += 1.0 / (ci -> numberOfObservations - 1);
-				m -= (ci -> numberOfObservations - 1) * lnd;  // Last part of eq (3) page 297
+				m -= (ci -> numberOfObservations - 1) * lnd;
 			}
 
-			/* Eq (4) page 297 */
-			double c1 = 1.0 - (2.0 * p * p + 3.0 * p - 1.0) / (6.0 * (p + 1) * (numberOfMatrices - 1)) * (nsi - 1.0 / ns);
+			double c1 = 1.0 - (2.0 * p * p - 3 * p - 1) / (6.0 * (p + 1) * (nc - 1)) * (nsi - 1 / ns);
 
-			df = (numberOfMatrices - 1.0) * p * (p + 1) / 2.0;
-			chisq = m * c1;
+			*df = (nc - 1) * p * (p + 1) / 2;
+			*chisq = m * c1;
 		} else if (method == 2) { // Schott (2001) Wald 1
-			// T1 = sum(i=1..k, n[i]/n *tr((S[i]*S^-1)^2)- sum(i=1..k, sum(j=1..k, (n[i]/n)*(n[j]/n) *tr(S[i]*S^-1*S[j]*sS^-1))) =
+			// sum(i, ni/n *tr((si*s^-1)^2)- sum(i,sum(j, (ni/n)*(nj/n) *tr(si*s^-1*sj*s^-1))) =
 			//	sum(i=1..k, (ni/n -(ni/n)^2) tr((si*s^-1)^2)
 			//	- 2 * sum (i=1..k, sum(j=1..i-1, (ni/n)*(nj/n) *tr(si*s^-1*sj*s^-1)))
 
 			double trace = 0;
-			NUMlowerCholeskyInverse (pool -> data, p, nullptr);
-			autoNUMmatrix<double> si (NUMinverseFromLowerCholesky (pool -> data, p), 1, 1);
-			for (long i = 1; i <= numberOfMatrices; i ++) {
-				Covariance ci = my at [i];
+			NUMlowerCholeskyInverse (s.peek(), p, NULL);
+			autoNUMmatrix<double> si (NUMinverseFromLowerCholesky (s.peek(), p), 1, 1);
+			for (long i = 1; i <= nc; i++) {
+				Covariance ci = (Covariance) my item[i];
 				double ni = ci -> numberOfObservations - 1;
 				autoNUMmatrix<double> s1 (productOfSquareMatrices (ci -> data, si.peek(), p), 1, 1);
 				double trace_ii = NUMtrace2 (s1.peek(), s1.peek(), p);
 				trace += (ni / ns) * (1 - (ni / ns)) * trace_ii;
-				for (long j = i + 1; j <= numberOfMatrices; j ++) {
-					Covariance cj = my at [j];
+				for (long j = i + 1; j <= nc; j++) {
+					Covariance cj = (Covariance) my item[j];
 					double nj = cj -> numberOfObservations - 1;
 					autoNUMmatrix<double> s2 (productOfSquareMatrices (cj -> data, si.peek(), p), 1, 1);
 					double trace_ij = NUMtrace2 (s1.peek(), s2.peek(), p);
-					trace -= 2.0 * (ni / ns) * (nj / ns) * trace_ij;
+					trace -= 2 * (ni / ns) * (nj / ns) * trace_ij;
 				}
 			}
-			df = (numberOfMatrices - 1) * p * (p + 1) / 2.0;
-			chisq = (ns / 2.0) * trace;
+			*df = (nc - 1) * p * (p + 1) / 2;
+			*chisq = (ns / 2) * trace;
 		} else {
 			return;
 		}
-		if (p_prob) {
-			*p_prob = NUMchiSquareQ (chisq, df);
-		}
-		if (p_df) {
-			*p_df = df;
-		}
-		if (p_chisq) {
-			*p_chisq = chisq;
-		}
+		*prob = NUMchiSquareQ (*chisq, *df);
 	} catch (MelderError) {
 		Melder_throw (U"Equality coud not be tested.");
 	}
 }
 
-void Covariance_difference (Covariance me, Covariance thee, double *p_prob, double *p_chisq, double *p_df) {
+void Covariance_difference (Covariance me, Covariance thee, double *prob, double *chisq, long *ndf) {
 	long p = my numberOfRows;
 	long numberOfObservations = (long) floor (my numberOfObservations);
 	double  ln_me, ln_thee;
-	double chisq = NUMundefined, df = NUMundefined;
-	
+
 	if (my numberOfRows != thy numberOfRows) {
 		Melder_throw (U"Matrices must have equal dimensions.");
 	}
@@ -1672,7 +1534,7 @@ void Covariance_difference (Covariance me, Covariance thee, double *p_prob, doub
 
 	autoNUMmatrix<double> linv (NUMmatrix_copy (thy data, 1, p, 1, p), 1, 1);
 	NUMlowerCholeskyInverse (linv.peek(), p, & ln_thee);
-	NUMdeterminant_cholesky (my data, p, & ln_me);
+	NUMdeterminant_cholesky (my data, p, &ln_me);
 
 	/*
 		We need trace (A B^-1). We have A and the inverse L^(-1) of the
@@ -1683,7 +1545,7 @@ void Covariance_difference (Covariance me, Covariance thee, double *p_prob, doub
 		where Lm = L^(-1)
 	*/
 
-	double trace = 0.0;
+	double trace = 0;
 	for (long i = 1; i <= p; i++) {
 		for (long j = 1; j <= p; j++) {
 			long lp = MAX (j, i);
@@ -1694,17 +1556,9 @@ void Covariance_difference (Covariance me, Covariance thee, double *p_prob, doub
 	}
 
 	double l = (numberOfObservations - 1) * fabs (ln_thee - ln_me + trace - p);
-	chisq = l * fabs (1.0 - (2.0 * p + 1.0 - 2.0 / (p + 1)) / (numberOfObservations - 1) / 6.0);
-	df = p * (p + 1) / 2.0;
-	if (p_prob) {
-		*p_prob = NUMchiSquareQ (chisq, df);
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
-	}
-	if (p_df) {
-		*p_df = df;
-	}
+	*chisq = l * fabs (1 - (2 * p + 1 - 2 / (p + 1)) / (numberOfObservations - 1) / 6);  // ppgb CHECK fabs versus labs
+	*ndf = p * (p + 1) / 2;
+	*prob = NUMchiSquareQ (*chisq, *ndf);
 }
 
 static void checkOneIndex (TableOfReal me, long index) {
@@ -1722,144 +1576,118 @@ static void checkTwoIndices (TableOfReal me, long index1, long index2) {
 	}
 }
 
-void Covariance_getSignificanceOfOneMean (Covariance me, long index, double mu, double *p_prob, double *p_t, double *p_df) {
-	double var = my data[index][index];
-	double prob = NUMundefined, t = NUMundefined, df = my numberOfObservations - 1.0;
+void Covariance_getSignificanceOfOneMean (Covariance me, long index, double mu,
+        double *probability, double *t, double *ndf) {
+	double var;
+	*probability = *t = NUMundefined;
+	*ndf = my numberOfObservations - 1;
 
 	checkOneIndex (me, index);
 
-	if (var > 0.0) {
-		t = (my centroid[index] - mu) / sqrt (var / my numberOfObservations);
-		if (p_prob) {
-			prob = 2.0 * NUMstudentQ (fabs (t), df);
-		}
-	}
-	if (p_prob) {
-		*p_prob = prob;
-	}
-	if (p_t) {
-		*p_t = t;
-	}
-	if (p_df) {
-		*p_df = df;
+	if ( (var = my data[index][index]) == 0) {
+		return;
 	}
+
+	*t = (my centroid[index] - mu) / sqrt (var / my numberOfObservations);
+	*probability = 2 * NUMstudentQ (fabs (*t), *ndf);
 }
 
-void Covariance_getSignificanceOfMeansDifference (Covariance me, long index1, long index2, double mu, int paired, int equalVariances, double *p_prob, double *p_t, double *p_df) {
+void Covariance_getSignificanceOfMeansDifference (Covariance me,
+        long index1, long index2, double mu, int paired, int equalVariances,
+        double *probability, double *t, double *ndf) {
 	long n = (long) floor (my numberOfObservations);
+	double df, var1, var2, var_pooled;
 
-	double prob = NUMundefined, t = NUMundefined;
-	double df = 2.0 * (n - 1);
+	*probability = *t = NUMundefined;
+	*ndf = 2 * (n - 1);
 
 	checkTwoIndices (me, index1, index2);
 
-	double var1 = my data [index1] [index1];
-	double var2 = my data [index2] [index2];
+	var1 = my data[index1][index1];
+	var2 = my data[index2][index2];
 
-	double var_pooled = var1 + var2;
-	if (var_pooled == 0.0) {
-		Melder_warning (U"The pooled variance turned out to be zero. Check your data.");
-		goto end;
+	var_pooled = var1 + var2;
+	if (var_pooled == 0) {
+		Melder_warning (U"The pooled variance turned out to be zero. Check your data. ");
+		return;
 	}
 	if (paired) {
-		var_pooled -= 2.0 * my data[index1][index2];
-		df /= 2.0;
+		var_pooled -= 2 * my data[index1][index2];
+		*ndf /= 2;
 	}
 
-	if (var_pooled == 0.0) {
+	if (var_pooled == 0) {
 		Melder_warning (U"The pooled variance with the paired correction turned out to be zero. ");
-		prob = 0.0;
-		goto end;
+		*probability = 0;
+		return;
 	}
 
-	t = (my centroid [index1] - my centroid [index2] - mu) / sqrt (var_pooled / n);
+	*t = (my centroid[index1] - my centroid[index2] - mu) / sqrt (var_pooled / n);
 
 	/*
 		Return two sided probabilty.
 	*/
 
 	if (equalVariances) {
-		prob = 2.0 * NUMstudentQ (fabs (t), df);
+		*probability = 2 * NUMstudentQ (fabs (*t), *ndf);
 	} else {
-		df = (1.0 + 2.0 * var1 * var2 / (var1 * var1 + var2 * var2)) * (n - 1);
-		prob = NUMincompleteBeta (df / 2.0, 0.5, df / (df + t * t));
-	}
-end:
-	if (p_prob) {
-		*p_prob = prob;
-	}
-	if (p_t) {
-		*p_t = t;
-	}
-	if (p_df) {
-		*p_df = df;
+		df = (1 + 2 * var1 * var2 / (var1 * var1 + var2 * var2)) * (n - 1);
+		*probability = NUMincompleteBeta (df / 2, 0.5, df / (df + (*t) * (*t)));
+		*ndf = df;
 	}
 }
 
-void Covariance_getSignificanceOfOneVariance (Covariance me, long index, double sigmasq, double *p_prob, double *p_chisq, long *p_df) {
-	double var = my data [index] [index];
-	double prob = NUMundefined, chisq = NUMundefined;
-	double df = my numberOfObservations - 1.0;
+void Covariance_getSignificanceOfOneVariance (Covariance me, long index,
+        double sigmasq, double *probability, double *chisq, long *ndf) {
+	double var;
+	*probability = *chisq = NUMundefined;
+	*ndf = (long) floor (my numberOfObservations) - 1;
 
 	checkOneIndex (me, index);
 
-	if (var > 0.0) {
-
-		chisq = df;
-		if (sigmasq > 0.0) {
-			chisq = df * var / sigmasq;
-		}
-		if (p_prob) {
-			prob = NUMchiSquareQ (chisq, df);
-		}
-	}
-	if (p_prob) {
-		*p_prob = prob;
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
+	if ( (var = my data[index][index]) == 0) {
+		return;
 	}
-	if (p_df) {
-		*p_df = df;
+
+	*chisq = *ndf;
+	if (sigmasq != 0) {
+		*chisq = *ndf * var / sigmasq;
 	}
+	*probability = NUMchiSquareQ (*chisq, *ndf);
 }
 
-void Covariance_getSignificanceOfVariancesRatio (Covariance me, long index1, long index2, double ratio, double *p_prob, double *p_f, double *p_df) {
-	double df = my numberOfObservations - 1.0, prob = NUMundefined, f = NUMundefined;
+void Covariance_getSignificanceOfVariancesRatio (Covariance me,
+        long index1, long index2, double ratio, double *probability,
+        double *f, long *ndf) {
+	long n = (long) floor (my numberOfObservations);
+	double var1, var2, ratio2;
+
+	*ndf = n - 1; *probability = *f = NUMundefined;
 	checkTwoIndices (me, index1, index2);
 
-	double var1 = my data [index1] [index1];
-	double var2 = my data [index2] [index2];
+	var1 = my data[index1][index1];
+	var2 = my data[index2][index2];
 
-	if (var1 > 0.0 && var2 > 0.0) {
-		double ratio2 = (var1 / var2) / ratio;
-		f = ratio2;
-		if (var2 > var1) {
-			ratio2 = (var2 / var1) * ratio;
-		}
-		if (p_prob) {
-			prob = 2.0 * NUMfisherQ (ratio2, df, df);
-			if (prob > 1.0) {
-				prob = 2.0 - prob;
-			}
-		}
-	}
-	if (p_prob) {
-		*p_prob = prob;
+	if (var1 == 0 || var2 == 0) {
+		return;
 	}
-	if (p_df) {
-		*p_df = df;
+
+	*f = ratio2 = (var1 / var2) / ratio;
+	if (var2 > var1) {
+		ratio2 = (var2 / var1) * ratio;
 	}
-	if (p_f) {
-		*p_f = f;
+
+	*probability = 2 * NUMfisherQ (ratio2, *ndf, *ndf);
+	if (*probability > 1) {
+		*probability = 2 - *probability;
 	}
 }
 
-autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confidenceLevel, long numberOfTests, int method) {
+TableOfReal Correlation_confidenceIntervals (Correlation me, double confidenceLevel, long numberOfTests, int method) {
 	try {
 		long m_bonferroni = my numberOfRows * (my numberOfRows - 1) / 2;
 
-		if (confidenceLevel <= 0 || confidenceLevel > 1.0) {
+		if (confidenceLevel <= 0 || confidenceLevel > 1) {
 			Melder_throw (U"Confidence level must be in interval (0-1).");
 		}
 
@@ -1879,7 +1707,7 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfRows);
 
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
 
 
 		// Obtain large-sample conservative multiple tests and intervals by the
@@ -1888,9 +1716,9 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 		// values of confidence intervals in lower part of resulting table.
 
 
-		double z = NUMinvGaussQ ( (1 - confidenceLevel) / (2.0 * numberOfTests));
-		double zf = z / sqrt (my numberOfObservations - 3.0);
-		double  two_n = 2.0 * my numberOfObservations;
+		double z = NUMinvGaussQ ( (1 - confidenceLevel) / (2 * numberOfTests));
+		double zf = z / sqrt (my numberOfObservations - 3);
+		double  two_n = 2 * my numberOfObservations;
 
 		for (long i = 1; i <= my numberOfRows; i++) {
 			for (long j = i + 1; j <= my numberOfRows; j++) {
@@ -1904,10 +1732,10 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 				} else if (method == 1) {
 					// Ruben's approximation
 
-					double rs = rij / sqrt (1.0 - rij * rij);
-					double a = two_n - 3.0 - z * z;
-					double b = rs * sqrt ( (two_n - 3.0) * (two_n - 5.0));
-					double c = (a - 2.0) * rs * rs - 2.0 * z * z;
+					double rs = rij / sqrt (1 - rij * rij);
+					double a = two_n - 3 - z * z;
+					double b = rs * sqrt ( (two_n - 3) * (two_n - 5));
+					double c = (a - 2) * rs * rs - 2 * z * z;
 
 					// Solve:  a y^2 - 2b y + c = 0
 					// q = -0.5((-2b) + sgn(-2b) sqrt((-2b)^2 - 4ac))
@@ -1919,8 +1747,8 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 						d = - d;
 					}
 					q = b - d;
-					rmin = q / a; rmin /= sqrt (1.0 + rmin * rmin);
-					rmax = c / q; rmax /= sqrt (1.0 + rmax * rmax);
+					rmin = q / a; rmin /= sqrt (1 + rmin * rmin);
+					rmax = c / q; rmax /= sqrt (1 + rmax * rmax);
 					if (rmin > rmax) {
 						double t = rmin; rmin = rmax; rmax = t;
 					}
@@ -1932,21 +1760,21 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 			}
 			thy data[i][i] = 1;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": confidence intervals not created.");
 	}
 }
 
-void SSCP_testDiagonality_bartlett (SSCP me, long numberOfContraints, double *chisq, double *prob, double *df) {
+void SSCP_testDiagonality_bartlett (SSCP me, long numberOfContraints, double *chisq, double *probability) {
+	*chisq = *probability = NUMundefined;
 	autoCorrelation c = SSCP_to_Correlation (me);
-	Correlation_testDiagonality_bartlett (c.get(), numberOfContraints, chisq, prob, df);
+	Correlation_testDiagonality_bartlett (c.peek(), numberOfContraints, chisq, probability);
 }
 
 /* Morrison, page 118 */
-void Correlation_testDiagonality_bartlett (Correlation me, long numberOfContraints, double *p_chisq, double *p_prob, double *p_df) {
-	long p = my numberOfRows;
-	double chisq = NUMundefined, prob = NUMundefined, df = p * (p -1) / 2.0;
+void Correlation_testDiagonality_bartlett (Correlation me, long numberOfContraints, double *chisq, double *probability) {
+	*chisq = *probability = NUMundefined;
 
 	if (numberOfContraints <= 0) {
 		numberOfContraints = 1;
@@ -1955,23 +1783,12 @@ void Correlation_testDiagonality_bartlett (Correlation me, long numberOfContrain
 		Melder_warning (U"Correlation_testDiagonality_bartlett: number of constraints cannot exceed the number of observations.");
 		return;
 	}
-	if (my numberOfObservations >= numberOfContraints) {
-		double ln_determinant;
-		NUMdeterminant_cholesky (my data, p, & ln_determinant);
-		chisq = - ln_determinant * (my numberOfObservations - numberOfContraints - (2.0 * p + 5.0) / 6.0);
-		if (p_prob) {
-			prob = NUMchiSquareQ (chisq, df);
-		}
-	}
-	if (p_chisq) {
-		*p_chisq = chisq;
-	}
-	if (p_prob) {
-		*p_prob = prob;
-	}
-	if (p_df) {
-		*p_df = df;
-	}
+	long p = my numberOfRows;
+	double ln_determinant;
+	NUMdeterminant_cholesky (my data, p, &ln_determinant);
+
+	*chisq = - ln_determinant * (my numberOfObservations - numberOfContraints - (2 * p + 5) / 6);
+	*probability = NUMchiSquareQ (*chisq, p * (p - 1) / 2);
 }
 
 void SSCP_expand (SSCP me) {
@@ -1984,7 +1801,7 @@ void SSCP_expand (SSCP me) {
 	// my expansion = my data (before)
 	// No expansion for a standard matrix or if already expanded and data has not changed!
 
-	if ((my expansionNumberOfRows == 0 && my numberOfRows == my numberOfColumns) ||
+	if ( (my expansionNumberOfRows == 0 && my numberOfRows == my numberOfColumns) ||
 	        (my expansionNumberOfRows > 0 && ! my dataChanged)) {
 		return;
 	}
@@ -1994,13 +1811,13 @@ void SSCP_expand (SSCP me) {
 	for (long ir = 1; ir <= my numberOfColumns; ir++) {
 		for (long ic = ir; ic <= my numberOfColumns; ic++) {
 			long dij = labs (ir - ic);
-			my expansion[ir][ic] = my expansion[ic][ir] = dij < my numberOfRows ? my data[dij + 1][ic] : 0.0;
+			my expansion[ir][ic] = my expansion[ic][ir] = dij < my numberOfRows ? my data[dij + 1][ic] : 0;
 		}
 	}
 	// Now make 'my data' point to 'my expansion'
 	double **tmp = my data; my data = my expansion; my expansion = tmp;
 	my expansionNumberOfRows = my numberOfRows;
-	my numberOfRows = my numberOfColumns;
+	my numberOfRows = my numberOfColumns; // Now forget(me) is save
 	my dataChanged = 0;
 }
 
@@ -2010,62 +1827,62 @@ void SSCP_unExpand (SSCP me) {
 	}
 	NUMmatrix_free (my data, 1, 1);
 	my data = my expansion;
-	my expansion = nullptr;
+	my expansion = 0;
 	my numberOfRows = my expansionNumberOfRows;
 	my expansionNumberOfRows = 0;
 	my dataChanged = 0;
 }
 
 void SSCP_expandLowerCholesky (SSCP me) {
-	if (! my lowerCholesky) {
+	if (my lowerCholesky == 0) {
 		my lowerCholesky = NUMmatrix<double> (1, my numberOfRows, 1, my numberOfColumns);
 	}
-	if (my numberOfRows == 1) {   // diagonal
-		my lnd = 0.0;
-		for (long j = 1; j <= my numberOfColumns; j ++) {
-			my lowerCholesky [1] [j] = 1.0 / sqrt (my data[1] [j]);   // inverse is 1/stddev
-			my lnd += log (my data [1] [j]);   // diagonal elmnt is variance
+	if (my numberOfRows == 1) { // diagonal
+		my lnd = 0;
+		for (long j = 1; j <= my numberOfColumns; j++) {
+			my lowerCholesky[1][j] = 1 / sqrt (my data[1][j]); // inverse is 1/stddev
+			my lnd += log (my data[1][j]); // diagonal elmnt is variance
 		}
 	} else {
-		for (long i = 1; i <= my numberOfRows; i ++) {
-			for (long j = i; j <= my numberOfColumns; j ++) {
-				my lowerCholesky [j] [i] = my lowerCholesky [i] [j] = my data [i] [j];
+		for (long i = 1; i <= my numberOfRows; i++) {
+			for (long j = i; j <= my numberOfColumns; j++) {
+				my lowerCholesky[j][i] = my lowerCholesky[i][j] = my data[i][j];
 			}
 		}
 		try {
 			NUMlowerCholeskyInverse (my lowerCholesky, my numberOfColumns, & (my lnd));
 		} catch (MelderError) {
 			// singular matrix: arrange a diagonal only inverse.
-			my lnd = 0.0;
-			for (long i = 1; i <= my numberOfRows; i ++) {
-				for (long j = i; j <= my numberOfColumns; j ++) {
-					my lowerCholesky [i] [j] = my lowerCholesky [j] [i] = ( i == j ? 1.0 / sqrt (my data [i] [i]) : 0.0 );
+			my lnd = 0;
+			for (long i = 1; i <= my numberOfRows; i++) {
+				for (long j = i; j <= my numberOfColumns; j++) {
+					my lowerCholesky[i][j] =  my lowerCholesky[j][i] = i == j ? 1. / sqrt (my data[i][i]) : 0;
 				}
-				my lnd += log (my data [i] [i]);
+				my lnd += log (my data[i][i]);
 			}
-			my lnd *= 2.0;
+			my lnd *= 2;
 		}
 	}
 }
 
 void SSCP_unExpandLowerCholesky (SSCP me) {
 	NUMmatrix_free (my lowerCholesky, 1, 1);
-	my lnd = 0.0;
+	my lnd = 0;
 }
 
 void SSCP_expandPCA (SSCP me) {
-	if (my pca) {
-		my pca.reset();
+	if (my pca != 0) {
+		forget (my pca);
 	}
 	my pca = SSCP_to_PCA (me);
 }
 
 void SSCP_unExpandPCA (SSCP me) {
-	my pca.reset();
+	forget (my pca);
 }
 
 
 #undef MAX
 #undef MIN
 
-/* End of file SSCP.c */
+/* End of file SSCP.c 2148*/
diff --git a/dwtools/SSCP.h b/dwtools/SSCP.h
index b1b04ba..9dcc5e1 100644
--- a/dwtools/SSCP.h
+++ b/dwtools/SSCP.h
@@ -2,7 +2,7 @@
 #define _SSCP_h_
 /* SSCP.h
  *
- * Copyright (C) 1993-2014, 2015 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,6 +24,7 @@
 #include "CCA.h"
 
 #include "SSCP_def.h"
+oo_CLASS_CREATE (SSCP, TableOfReal);
 
 Thing_define (Covariance, SSCP) {
 };
@@ -35,73 +36,57 @@ Thing_define (Correlation, SSCP) {
 	Ordered collection of SSCP's
 	All SSCP's must have the same dimensions and labels.
 */
-Collection_define (SSCPList, OrderedOf, SSCP) {
-};
-
-Collection_define (CovarianceList, OrderedOf, Covariance) {
-	SSCPList asSSCPList () {
-		return reinterpret_cast<SSCPList> (this);
-	}
+Thing_define (SSCPs, Ordered) {
 };
 
 void SSCP_init (SSCP me, long dimension, long storage);
 
-autoSSCP SSCP_create (long dimension);
+SSCP SSCP_create (long dimension);
 
 void SSCP_drawTwoDimensionalEllipse_inside  (SSCP me, Graphics g, double scale, char32 * label, int fontSize);
-
-double SSCP_getEllipseScalefactor (SSCP me, double scale, bool confidence);
-
+double SSCP_getEllipseScalefactor (SSCP me, double scale, int confidence);
 void SSCP_drawConcentrationEllipse (SSCP me, Graphics g, double scale, int confidence,
 	long d1, long d2, double xmin, double xmax, double ymin, double ymax, int garnish);
 
 void SSCP_setNumberOfObservations (SSCP me, double numberOfObservations);
-
 void SSCP_setCentroid (SSCP me, long component, double value); // only SSCP & Covariance
-
 void SSCP_setValue (SSCP me, long row, long col, double value); // only SSCP & Covariance
 
 double SSCP_getNumberOfObservations (SSCP me);
-
 double SSCP_getDegreesOfFreedom (SSCP me);
-
 double SSCP_getTotalVariance (SSCP me);
-
 double SSCP_getCumulativeContributionOfComponents (SSCP me, long from, long to);
-
 double SSCP_getLnDeterminant (SSCP me);
-
-double SSCP_getConcentrationEllipseArea(SSCP me, double scale, bool confidence, long d1, long d2);
-
+double SSCP_getConcentrationEllipseArea(SSCP me, double scale, int confidence, long d1, long d2);
 double SSCP_getFractionVariation (SSCP me, long from, long to);
 
-autoSSCP TableOfReal_to_SSCP (TableOfReal me, long rowb, long rowe, long colb, long cole);
-
-autoTableOfReal SSCP_and_TableOfReal_extractDistanceQuantileRange (SSCP me, TableOfReal thee, double qlow, double qhigh);
+SSCP TableOfReal_to_SSCP (TableOfReal me, long rowb, long rowe, long colb, long cole);
 
-autoTableOfReal Covariance_and_TableOfReal_extractDistanceQuantileRange (Covariance me, TableOfReal thee, double qlow, double qhigh);
+TableOfReal SSCP_and_TableOfReal_extractDistanceQuantileRange (SSCP me, TableOfReal thee,
+	double qlow, double qhigh);
+TableOfReal Covariance_and_TableOfReal_extractDistanceQuantileRange (Covariance me, TableOfReal thee,
+	double qlow, double qhigh);
 /*
 	Select from a TableOfReal the rows whose Mahalanobis distance to the centroid
 	(from the SSCP) is in the quantile [qlow, qhigh].
 */
 
-autoTableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, TableOfReal thee, bool useTableCentroid);
+TableOfReal Covariance_and_TableOfReal_mahalanobis (Covariance me, thou, bool useTableCentroid);
 /*
 	Calculate the Mahalanobis distance: sqrt ((x-m)'S**-1 (x-m))
 	use the m-vector (centroid) from the covariance unless useTableColumnMeans is true.
 */
 
-autoCovariance TableOfReal_to_Covariance (TableOfReal me);
 
-autoCorrelation TableOfReal_to_Correlation (TableOfReal me);
+Covariance TableOfReal_to_Covariance (TableOfReal me);
 
-autoCorrelation TableOfReal_to_Correlation_rank (TableOfReal me);
+Correlation TableOfReal_to_Correlation (TableOfReal me);
+Correlation TableOfReal_to_Correlation_rank (TableOfReal me);
 
-autoTableOfReal SSCP_to_TableOfReal (SSCP me);
+TableOfReal SSCP_to_TableOfReal (SSCP me);
+TableOfReal SSCP_extractCentroid (SSCP me);
 
-autoTableOfReal SSCP_extractCentroid (SSCP me);
-
-autoTableOfReal Covariance_to_TableOfReal_randomSampling (Covariance me, long numberOfData);
+TableOfReal Covariance_to_TableOfReal_randomSampling (Covariance me, long numberOfData);
 /* Generate a table with data based on the covariance matrix */
 
 void Covariance_and_PCA_generateOneVector (Covariance me, PCA thee, double *vec, double *buf);
@@ -117,21 +102,18 @@ void Covariance_and_PCA_generateOneVector (Covariance me, PCA thee, double *vec,
 		4. buf, a vector of length my numberOfColumns, is needed so the routine cannot fail
 */
 
-autoSSCPList TableOfReal_to_SSCPList_byLabel (TableOfReal me);
+SSCPs TableOfReal_to_SSCPs_byLabel (TableOfReal me);
 
-autoPCA SSCP_to_PCA (SSCP me);
+PCA SSCP_to_PCA (SSCP me);
 
 void SSCP_expandPCA (SSCP me);
-
 void SSCP_unExpandPCA (SSCP me);
 
-autoCCA SSCP_to_CCA (SSCP me, long ny);
-
-autoCovariance Covariance_create (long dimension);
-
-autoCovariance Covariance_createSimple (char32 *covars, char32 *centroid, long numberOfObservations);
+CCA SSCP_to_CCA (SSCP me, long ny);
 
-autoCovariance Covariance_create_reduceStorage (long dimension, long storage);
+Covariance Covariance_create (long dimension);
+Covariance Covariance_createSimple (char32 *covars, char32 *centroid, long numberOfObservations);
+Covariance Covariance_create_reduceStorage (long dimension, long storage);
 /*
 	storage 0 or >= dimension: complete matrix
 	storage 1: only diagonal
@@ -142,11 +124,10 @@ autoCovariance Covariance_create_reduceStorage (long dimension, long storage);
     See also SSCP_expand () for usage.
 */
 
-autoCorrelation Correlation_create (long dimension);
+Correlation Correlation_create (long dimension);
 
-autoCorrelation Correlation_createSimple (char32 *s_correlations, char32 *s_centroid, long numberOfObservations);
-
-autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confidenceLevel, long numberOfTests, int method);
+TableOfReal Correlation_confidenceIntervals (Correlation me,
+	double confidenceLevel, long numberOfTests, int method);
 /*
 	if (method == 1)
 		Confidence intervals by Ruben's approximation
@@ -161,36 +142,45 @@ autoTableOfReal Correlation_confidenceIntervals (Correlation me, double confiden
 
 /* Precondition ||vector|| = 1 */
 void Covariance_getMarginalDensityParameters (Covariance me, double *vector, double *mu, double *stdev);
-
-double Covariance_getMarginalProbabilityAtPosition (Covariance me, double vector[], double x);
+double Covariance_getMarginalProbabilityAtPosition (Covariance me, double *vector, double x);
 
 double Covariance_getProbabilityAtPosition_string (Covariance me, char32 *xpos);
-
-double Covariance_getProbabilityAtPosition (Covariance me, double x[]);
+double Covariance_getProbabilityAtPosition (Covariance me, double *x);
 /* evaluate the pdf(x,mu,Sigma) at x */
 
-autoCovariance SSCP_to_Covariance (SSCP me, long numberOfConstraints);
+Covariance SSCP_to_Covariance (SSCP me, long numberOfConstraints);
 
-autoSSCP Covariance_to_SSCP (Covariance me);
+SSCP Covariance_to_SSCP (Covariance me);
 
-void SSCP_testDiagonality_bartlett (SSCP me, long numberOfContraints, double *chisq, double *prob, double *df);
+void SSCP_testDiagonality_bartlett (SSCP me, long numberOfContraints,
+	double *chisq, double *probability);
+void Correlation_testDiagonality_bartlett (Correlation me,
+	long numberOfContraints, double *chisq, double *probability);
+/* Test whether matrices are diagonal matrices, Morrison, page 118 */
 
-void Correlation_testDiagonality_bartlett (Correlation me, long numberOfContraints, double *chisq, double *prob, double *df);
-/* Test if a Correlation matrix is diagonal, Morrison pp. 116-118 */
+Correlation SSCP_to_Correlation (SSCP me);
 
-autoCorrelation SSCP_to_Correlation (SSCP me);
+Configuration SSCP_to_Configuration (SSCP me, long numberOfDimensions);
 
-void Covariance_difference (Covariance me, Covariance thee, double *prob, double *chisq, double *df);
+Configuration Covariance_to_Configuration (Covariance me, long numberOfDimensions);
 
-void Covariance_getSignificanceOfOneMean (Covariance me, long index, double mu,	double *probability, double *t, double *df);
+Configuration Correlation_to_Configuration (Correlation me, long numberOfDimensions);
 
-void Covariance_getSignificanceOfMeansDifference (Covariance me, long index1, long index2, double mu, int paired, int equalVariances,
+void Covariance_difference (Covariance me, Covariance thee, double *prob, double *chisq, long *ndf);
+
+void Covariance_getSignificanceOfOneMean (Covariance me, long index, double mu,
+	double *probability, double *t, double *ndf);
+
+void Covariance_getSignificanceOfMeansDifference (Covariance me,
+	long index1, long index2, double mu, int paired, int equalVariances,
 	double *probability, double *t, double *ndf);
 
-void Covariance_getSignificanceOfOneVariance (Covariance me, long index, double sigmasq, double *probability, double *chisq, long *ndf);
+void Covariance_getSignificanceOfOneVariance (Covariance me, long index,
+	double sigmasq, double *probability, double *chisq, long *ndf);
 
-void Covariance_getSignificanceOfVariancesRatio (Covariance me, long index1, long index2, double ratio, double *probability,
-	double *f, double *df);
+void Covariance_getSignificanceOfVariancesRatio (Covariance me,
+	long index1, long index2, double ratio, double *probability,
+	double *f, long *ndf);
 
 double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance thee, int equalCovariances, double *prob, double *fisher, double *df1, double *df2);
 /* Are the centroids of me and thee different?
@@ -201,37 +191,36 @@ double Covariances_getMultivariateCentroidDifference (Covariance me, Covariance
 	f has Fisher distribution with p and n1+n2-p-1 degrees of freedom.
 */
 
-void Covariances_equality (CovarianceList me, int method, double *prob, double *chisq, double *df);
+void Covariances_equality (Collection me, int method, double *prob, double *chisq, double *df);
 /*
 	Equality of covariance.
 	method = 1 : Bartlett (Morrison, 1990)
 	method = 2 : Wald (Schott, 2001)
 */
 
-autoCovariance CovarianceList_to_Covariance_pool (CovarianceList me);
+SSCPs SSCPs_create ();
 
-autoSSCPList TableOfReal_to_SSCPList_byLabel (TableOfReal me);
+SSCPs TableOfReal_to_SSCPs_byLabel (TableOfReal me);
 
-autoSSCP SSCPList_to_SSCP_sum (SSCPList me);
+SSCP SSCPs_to_SSCP_sum (SSCPs me);
 /* Sum the sscp's and weigh each means with it's numberOfObservations. */
 
-autoSSCP SSCPList_to_SSCP_pool (SSCPList me);
+SSCP SSCPs_to_SSCP_pool (SSCPs me);
 
-void SSCPList_getHomegeneityOfCovariances_box (SSCPList me, double *probability, double *chisq, double *df);
+void SSCPs_getHomegeneityOfCovariances_box (SSCPs me, double *probability,
+	double *chisq, long *ndf);
 
-autoSSCP SSCP_toTwoDimensions (SSCP me, double *v1, double *v2);
-
-autoSSCPList SSCPList_toTwoDimensions (SSCPList me, double *v1, double *v2);
-
-autoSSCPList SSCPList_extractTwoDimensions (SSCPList me, long d1, long d2);
+SSCP SSCP_toTwoDimensions (SSCP me, double *v1, double *v2);
+SSCPs SSCPs_toTwoDimensions (SSCPs me, double *v1, double *v2);
+SSCPs SSCPs_extractTwoDimensions (SSCPs me, long d1, long d2);
 
 /* For inheritors */
 
-void SSCPList_drawConcentrationEllipses (SSCPList me, Graphics g, double scale,
-	bool confidence, const char32 *label, long d1, long d2, double xmin, double xmax,
-	double ymin, double ymax, int fontSize, bool garnish);
+void SSCPs_drawConcentrationEllipses (SSCPs me, Graphics g, double scale,
+	int confidence, const char32 *label, long d1, long d2, double xmin, double xmax,
+	double ymin, double ymax, int fontSize, int garnish);
 
-void SSCPList_getEllipsesBoundingBoxCoordinates (SSCPList me, double scale, bool confidence,
+void SSCPs_getEllipsesBoundingBoxCoordinates (SSCPs me, double scale, int confidence,
 	double *xmin, double *xmax, double *ymin, double *ymax);
 
 void SSCP_expand (SSCP me);
@@ -251,8 +240,6 @@ void SSCP_unExpand (SSCP me);
 /* Use only if the memory is really needed! */
 
 void SSCP_expandLowerCholesky (SSCP me); // create lower square root of covariance matrix
-
 void SSCP_unExpandLowerCholesky (SSCP me);
 
-/* End of file SSCP.h */
-#endif
+#endif /* _SSCP_h_ */
diff --git a/dwtools/SSCP_def.h b/dwtools/SSCP_def.h
index 5c13718..3c1a1e0 100644
--- a/dwtools/SSCP_def.h
+++ b/dwtools/SSCP_def.h
@@ -23,7 +23,6 @@ oo_DEFINE_CLASS (SSCP, TableOfReal)
 
 	oo_DOUBLE (numberOfObservations)
 	oo_DOUBLE_VECTOR (centroid, numberOfColumns)
-
 	/*
 		The following definitions are only needed when we want to use many big diagonal or
 		almost diagonal matrices like for example in a GaussianMixture,
@@ -35,9 +34,8 @@ oo_DEFINE_CLASS (SSCP, TableOfReal)
 		oo_DOUBLE_MATRIX (expansion, expansionNumberOfRows, numberOfColumns)
 		oo_DOUBLE (lnd)
 		oo_DOUBLE_MATRIX (lowerCholesky, numberOfColumns, numberOfColumns)
-		oo_AUTO_OBJECT (PCA, 0, pca)
+		oo_OBJECT (PCA, 0, pca)
 	#endif
-
 	#if oo_DECLARING
 		void v_info ()
 			override;
diff --git a/dwtools/Sampled2.cpp b/dwtools/Sampled2.cpp
new file mode 100644
index 0000000..1cc83e9
--- /dev/null
+++ b/dwtools/Sampled2.cpp
@@ -0,0 +1,217 @@
+/* Sampled2.cpp
+ *
+ * Copyright (C) 1993-2011 David Weenink
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "Sampled2.h"
+#include "NUM2.h"
+
+#include "oo_DESTROY.h"
+#include "Sampled2_def.h"
+#include "oo_COPY.h"
+#include "Sampled2_def.h"
+#include "oo_EQUAL.h"
+#include "Sampled2_def.h"
+#include "oo_CAN_WRITE_AS_ENCODING.h"
+#include "Sampled2_def.h"
+#include "oo_WRITE_TEXT.h"
+#include "Sampled2_def.h"
+#include "oo_WRITE_BINARY.h"
+#include "Sampled2_def.h"
+#include "oo_READ_BINARY.h"
+#include "Sampled2_def.h"
+#include "oo_DESCRIPTION.h"
+#include "Sampled2_def.h"
+
+Thing_implement (Sampled2, Sampled, 0);
+
+void structSampled2 :: v_readText (MelderReadText text, int /*formatVersion*/) {
+	xmin = texgetr8 (text);
+	xmax = texgetr8 (text);
+	nx = texgeti4 (text);
+	dx = texgetr8 (text);
+	x1 = texgetr8 (text);
+	ymin = texgetr8 (text);
+	ymax = texgetr8 (text);
+	ny = texgeti4 (text);
+	dy = texgetr8 (text);
+	y1 = texgetr8 (text);
+	if (xmin > xmax || ymin > ymax) {
+		Melder_throw (U"xmax should be greater than xmax and ymax should be greater than ymin.");
+	}
+	if (nx < 1 || ny < 1) {
+		Melder_throw (U"nx and ny should be at least 1.");
+	}
+	if (dx <= 0 || dy <= 0) {
+		Melder_throw (U"dx and dy should be positive.");
+	}
+}
+
+void Sampled2_init
+(I, double xmin, double xmax, long nx, double dx, double x1,
+ double ymin, double ymax, long ny, double dy, double y1) {
+	iam (Sampled2);
+	my xmin = xmin; my xmax = xmax; my nx = nx; my dx = dx; my x1 = x1;
+	my ymin = ymin; my ymax = ymax; my ny = ny; my dy = dy; my y1 = y1;
+}
+
+double Sampled2_columnToX (I, double column) {
+	iam (Sampled2);
+	return my x1 + (column - 1) * my dx;
+}
+
+double Sampled2_rowToY (I, double row) {
+	iam (Sampled2);
+	return my y1 + (row - 1) * my dy;
+}
+
+double Sampled2_xToColumn (I, double x) {
+	iam (Sampled2);
+	return (x - my x1) / my dx + 1;
+}
+
+long Sampled2_xToLowColumn (I, double x) {
+	iam (Sampled2);
+	return (long) floor (Sampled2_xToColumn (me, x));
+}
+
+long Sampled2_xToHighColumn (I, double x) {
+	iam (Sampled2);
+	return (long) ceil (Sampled2_xToColumn (me, x));
+}
+
+long Sampled2_xToNearestColumn (I, double x) {
+	iam (Sampled2);
+	return (long) floor (Sampled2_xToColumn (me, x) + 0.5);
+}
+
+double Sampled2_yToRow (I, double y) {
+	iam (Sampled2);
+	return (y - my y1) / my dy + 1;
+}
+
+long Sampled2_yToLowRow (I, double y) {
+	iam (Sampled2);
+	return (long) floor (Sampled2_yToRow (me, y));
+}
+
+long Sampled2_yToHighRow (I, double y) {
+	iam (Sampled2);
+	return (long) ceil (Sampled2_yToRow (me, y));
+}
+
+long Sampled2_yToNearestRow (I, double y) {
+	iam (Sampled2);
+	return (long) floor (Sampled2_yToRow (me, y) + 0.5);
+}
+
+long Sampled2_getWindowSamplesX (I, double xmin, double xmax, long *ixmin, long *ixmax) {
+	iam (Sampled2);
+	*ixmin = 1 + (long) ceil ( (xmin - my x1) / my dx);
+	*ixmax = 1 + (long) floor ( (xmax - my x1) / my dx);
+	if (*ixmin < 1) {
+		*ixmin = 1;
+	}
+	if (*ixmax > my nx) {
+		*ixmax = my nx;
+	}
+	if (*ixmin > *ixmax) {
+		return 0;
+	}
+	return *ixmax - *ixmin + 1;
+}
+
+long Sampled2_getWindowSamplesY (I, double ymin, double ymax, long *iymin, long *iymax) {
+	iam (Sampled2);
+	*iymin = 1 + (long) ceil ( (ymin - my y1) / my dy);
+	*iymax = 1 + (long) floor ( (ymax - my y1) / my dy);
+	if (*iymin < 1) {
+		*iymin = 1;
+	}
+	if (*iymax > my ny) {
+		*iymax = my ny;
+	}
+	if (*iymin > *iymax) {
+		return 0;
+	}
+	return *iymax - *iymin + 1;
+}
+
+long Sampled2_getWindowExtrema_d (I, double **z, long ixmin, long ixmax, long iymin, long iymax,
+                                  double *minimum, double *maximum) {
+	iam (Sampled2);
+
+	if (ixmin == 0) {
+		ixmin = 1;
+	}
+	if (ixmax == 0) {
+		ixmax = my nx;
+	}
+	if (iymin == 0) {
+		iymin = 1;
+	}
+	if (iymax == 0) {
+		iymax = my ny;
+	}
+	if (ixmin > ixmax || iymin > iymax) {
+		return 0;
+	}
+	*minimum = *maximum = z[iymin][ixmin];
+	for (long iy = iymin; iy <= iymax; iy ++)
+		for (long ix = ixmin; ix <= ixmax; ix ++) {
+			if (z[iy][ix] < *minimum) {
+				*minimum = z[iy][ix];
+			}
+			if (z[iy][ix] > *maximum) {
+				*maximum = z[iy][ix];
+			}
+		}
+	return (ixmax - ixmin + 1) * (iymax - iymin + 1);
+}
+
+long Sampled2_getWindowExtrema_f (I, float **z, long ixmin, long ixmax, long iymin, long iymax,
+                                  double *minimum, double *maximum) {
+	iam (Sampled2);
+	if (ixmin == 0) {
+		ixmin = 1;
+	}
+	if (ixmax == 0) {
+		ixmax = my nx;
+	}
+	if (iymin == 0) {
+		iymin = 1;
+	}
+	if (iymax == 0) {
+		iymax = my ny;
+	}
+	if (ixmin > ixmax || iymin > iymax) {
+		return 0;
+	}
+	*minimum = *maximum = z[iymin] [ixmin];
+	for (long iy = iymin; iy <= iymax; iy ++)
+		for (long ix = ixmin; ix <= ixmax; ix ++) {
+			if (z[iy][ix] < *minimum) {
+				*minimum = z[iy][ix];
+			}
+			if (z[iy][ix] > *maximum) {
+				*maximum = z[iy][ix];
+			}
+		}
+	return (ixmax - ixmin + 1) * (iymax - iymin + 1);
+}
+
+/* End of file Sampled2.cpp */
diff --git a/dwtools/Sampled2.h b/dwtools/Sampled2.h
new file mode 100644
index 0000000..183fd2d
--- /dev/null
+++ b/dwtools/Sampled2.h
@@ -0,0 +1,83 @@
+#ifndef _Sampled2_h_
+#define _Sampled2_h_
+/* Sampled2.h
+ *
+ * Copyright (C) 1993-2011 David Weenink & Paul Boersma
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "Sampled.h"
+
+#include "Sampled2_def.h"
+oo_CLASS_CREATE (Sampled2, Sampled);
+
+void Sampled2_init (I, double xmin, double xmax, long nx, double dx, double x1,
+	double ymin, double ymax, long ny, double dy, double y1);
+
+long Sampled2_getWindowSamplesX (I, double xmin, double xmax, long *ixmin, long *ixmax);
+/*
+	Function:
+		return the number of samples with x values in [xmin, xmax].
+		Put the first of these samples in ixmin.
+		Put the last of these samples in ixmax.
+	Postconditions:
+		*ixmin >= 1;
+		*ixmax <= my nx;
+		if (result != 0) *ixmin <= *ixmax; else *ixmin > *ixmax;
+		if (result != 0) result == *ixmax - *ixmin + 1;
+*/
+
+double Sampled2_columnToX (I, double column);   /* Return my x1 + (column - 1) * my dx.	 */
+
+double Sampled2_rowToY (I, double row);   /* Return my y1 + (row - 1) * my dy. */
+
+double Sampled2_xToColumn (I, double x);   /* Return (x - xmin) / my dx + 1. */
+
+long Sampled2_xToLowColumn (I, double x);   /* Return floor (Matrix_xToColumn (me, x)). */
+
+long Sampled2_xToHighColumn (I, double x);   /* Return ceil (Matrix_xToColumn (me, x)). */
+
+long Sampled2_xToNearestColumn (I, double x);   /* Return floor (Matrix_xToColumn (me, x) + 0.5). */
+
+double Sampled2_yToRow (I, double y);   /* Return (y - ymin) / my dy + 1. */
+
+long Sampled2_yToLowRow (I, double y);   /* Return floor (Matrix_yToRow (me, y)). */
+
+long Sampled2_yToHighRow (I, double x);   /* Return ceil (Matrix_yToRow (me, y)). */
+
+long Sampled2_yToNearestRow (I, double y);   /* Return floor (Matrix_yToRow (me, y) + 0.5). */
+
+long Sampled2_getWindowSamplesY (I, double ymin, double ymax, long *iymin, long *iymax);
+
+/**** a little bit dangerous ******/
+
+long Sampled2_getWindowExtrema_d (I, double **z, long ixmin, long ixmax,
+	long iymin, long iymax, double *minimum, double *maximum);
+	
+long Sampled2_getWindowExtrema_f (I, float **z, long ixmin, long ixmax,
+	long iymin, long iymax, double *minimum, double *maximum);
+/*
+	Function:
+		compute the minimum and maximum values of z over all samples inside [ixmin, ixmax] * [iymin, iymax].
+	Arguments:
+		if ixmin = 0, start at first column; if ixmax = 0, end at last column (same for iymin and iymax).
+	Return value:
+		the number of samples inside the window.
+	Postconditions:
+		if result == 0, *minimum and *maximum are not changed;
+*/
+
+#endif /* _Sampled2_h_ */
diff --git a/dwtools/Procrustes.h b/dwtools/Sampled2_def.h
similarity index 71%
copy from dwtools/Procrustes.h
copy to dwtools/Sampled2_def.h
index 17c41df..217198d 100644
--- a/dwtools/Procrustes.h
+++ b/dwtools/Sampled2_def.h
@@ -1,8 +1,6 @@
-#ifndef _Procrustes_h_
-#define _Procrustes_h_
-/* Procrustes.h
+/* Sampled2_def.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,15 +18,20 @@
  */
 
 /*
- djmw 20010926
+ djmw 19970408
  djmw 20020813 GPL header
- djmw 20110306 Latest modification.
 */
 
-#include "AffineTransform.h"
+#define ooSTRUCT Sampled2
+oo_DEFINE_CLASS (Sampled2, Sampled)
 
-#include "Procrustes_def.h"
+	oo_DOUBLE (ymin)
+	oo_DOUBLE (ymax)
+	oo_LONG (ny)
+	oo_DOUBLE (dy)
+	oo_DOUBLE (y1)
 
-autoProcrustes Procrustes_create (long n);
+oo_END_CLASS (Sampled2)
+#undef ooSTRUCT
 
-#endif /* _Procrustes_h_ */
+/* End of file Sampled2_def.h */
diff --git a/dwtools/Sound_and_FilterBank.cpp b/dwtools/Sound_and_FilterBank.cpp
new file mode 100644
index 0000000..0bd004a
--- /dev/null
+++ b/dwtools/Sound_and_FilterBank.cpp
@@ -0,0 +1,421 @@
+/* Sound_and_FilterBank.cpp
+ *
+ * Copyright (C) 1993-2013 David Weenink
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*
+ djmw 20010718
+ djmw 20020813 GPL header.
+ djmw 20041124 Changed call to Sound_to_Spectrum.
+ djmw 20070103 Sound interface changes
+ djmw 20071107 Errors/warnings text changes
+ djmw 20071202 Melder_warning<n>
+*/
+
+#include "Sound_and_FilterBank.h"
+#include "Sound_extensions.h"
+#include "Sound_and_Spectrum.h"
+#include "Sound_to_Pitch.h"
+#include "Vector.h"
+#include "NUM2.h"
+
+#define MIN(m,n) ((m) < (n) ? (m) : (n))
+// prototypes
+Sound FilterBank_as_Sound (FilterBank me);
+
+/*
+	The gaussian(x) = (exp(-48*((i-(n+1)/2)/(n+1))^2)-exp(-12))/(1-exp(-12));
+	For power we need the area under the square of this window:
+		Integrate (gaussian(i)^2,i=1..n) =
+
+	(sqrt(Pi)*sqrt(3)*sqrt(2)*erf(2*(n-1)*sqrt(3)*sqrt(2)/(n+1))*(n+1)+
+		24*exp(-24)*(n-1)+
+	-4*sqrt(Pi)*sqrt(3)*exp(-12)*erf(2*(n-1)*sqrt(3)/(n+1))*(n+1))/
+	(24 * (-1+exp(-12))^2)
+	To compare with the rectangular window we need to divide this by the
+	window width (n-1) x 1^2.
+*/
+static double gaussian_window_squared_correction (long n) {
+	double e12 = exp (-12), denum = (e12 - 1) * (e12 - 1) * 24 * (n - 1);
+	double sqrt3 = sqrt (3), sqrt2 = sqrt (2), sqrtpi = sqrt (NUMpi);
+	double arg1 = 2 * sqrt3 * (n - 1) / (n + 1), arg2 = arg1 * sqrt2;
+	double p2 = sqrtpi * sqrt3 * sqrt2 * (1 - NUMerfcc (arg2)) * (n + 1);
+	double p1 = 4 * sqrtpi * sqrt3 * e12 * (1 - NUMerfcc (arg1)) * (n + 1);
+
+	return (p2 - p1 + 24 * (n - 1) * e12 * e12) / denum;
+}
+
+static Matrix Sound_to_spectralpower (Sound me) {
+	try {
+		autoSpectrum s = Sound_to_Spectrum (me, TRUE);
+		autoMatrix thee = Matrix_create (s -> xmin, s -> xmax, s -> nx, s -> dx, s -> x1, 1, 1, 1, 1, 1);
+		double scale = 2.0 * s -> dx / (my xmax - my xmin);
+
+		// factor '2' because of positive and negative frequencies
+		// s -> dx : width of frequency bin
+		// my xmax - my xmin : duration of sound
+
+		double *z = thy z[1], *re = s -> z[1], *im = s -> z[2];
+		for (long i = 1; i <= s -> nx; i++) {
+			z[i] = scale * (re[i] * re[i] + im[i] * im [i]);
+		}
+
+		// Frequency bins at 0 Hz and nyquist don't count for two.
+
+		z[1] *= 0.5;
+		z[s -> nx] *= 0.5;
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, ": no Matrix with spectral power created.");
+	}
+}
+
+static int Sound_into_BarkFilter_frame (Sound me, BarkFilter thee, long frame) {
+	autoMatrix pv = Sound_to_spectralpower (me);
+	long nf = pv -> nx;
+	autoNUMvector<double> z (1, nf);
+
+	for (long j = 1; j <= nf; j++) {
+		z[j] = HZTOBARK (pv -> x1 + (j - 1) * pv -> dx);
+	}
+
+	for (long i = 1; i <= thy ny; i++) {
+		double p = 0;
+		double z0 = thy y1 + (i - 1) * thy dy;
+		double *pow = pv -> z[1]; // TODO ??
+		for (long j = 1; j <= nf; j++) {
+			// Sekey & Hanson filter is defined in the power domain.
+			// We therefore multiply the power with a (and not a^2).
+			// integral (F(z),z=0..25) = 1.58/9
+
+			double a = NUMsekeyhansonfilter_amplitude (z0, z[j]);
+			p += a * pow[j] ;
+		}
+		thy z[i][frame] = p;
+	}
+	return 1;
+}
+
+BarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt, double f1_bark, double fmax_bark, double df_bark) {
+	try {
+		double t1, nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist;
+		double windowDuration = 2 * analysisWidth; /* gaussian window */
+		double zmax = NUMhertzToBark2 (nyquist);
+		double fmin_bark = 0;
+		long nt, frameErrorCount = 0;
+
+		// Check defaults.
+
+		if (f1_bark <= 0) {
+			f1_bark = 1;
+		}
+		if (fmax_bark <= 0) {
+			fmax_bark = zmax;
+		}
+		if (df_bark <= 0) {
+			df_bark = 1;
+		}
+
+		fmax_bark = MIN (fmax_bark, zmax);
+		long nf = floor ( (fmax_bark - f1_bark) / df_bark + 0.5);
+		if (nf <= 0) {
+			Melder_throw ("The combination of filter parameters is not valid.");
+		}
+
+		Sampled_shortTermAnalysis (me, windowDuration, dt, & nt, & t1);
+		autoSound sframe = Sound_createSimple (1, windowDuration, samplingFrequency);
+		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
+		autoBarkFilter thee = BarkFilter_create (my xmin, my xmax, nt, dt, t1,
+		                      fmin_bark, fmax_bark, nf, df_bark, f1_bark);
+
+		autoMelderProgress progess (L"BarkFilter analysis");
+
+		for (long i = 1; i <= nt; i++) {
+			double t = Sampled_indexToX (thee.peek(), i);
+
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+
+			Sounds_multiply (sframe.peek(), window.peek());
+
+			if (! Sound_into_BarkFilter_frame (sframe.peek(), thee.peek(), i)) {
+				frameErrorCount++;
+			}
+
+			if ( (i % 10) == 1) {
+				Melder_progress ( (double) i / nt,  L"BarkFilter analysis: frame ",
+					Melder_integer (i), L" from ", Melder_integer (nt), L".");
+			}
+		}
+
+		if (frameErrorCount > 0) {
+			Melder_warning (L"Analysis results of ", Melder_integer (frameErrorCount), L" frame(s) out of ",
+				Melder_integer (nt), L" will be suspect.");
+		}
+
+		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
+
+		NUMdmatrix_to_dBs (thy z, 1, thy ny, 1, thy nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, ": no BarkFilter created.");
+	}
+}
+
+static int Sound_into_MelFilter_frame (Sound me, MelFilter thee, long frame) {
+	autoMatrix pv = Sound_to_spectralpower (me);
+
+	double z1 = pv -> x1;
+	double dz = pv -> dx;
+	long nf = pv -> nx;
+	double df = thy dy;
+	for (long i = 1; i <= thy ny; i++) {
+		double p = 0;
+		double fc_mel = thy y1 + (i - 1) * df;
+		double fc_hz = MELTOHZ (fc_mel);
+		double fl_hz = MELTOHZ (fc_mel - df);
+		double fh_hz =  MELTOHZ (fc_mel + df);
+		double *pow = pv -> z[1];
+		for (long j = 1; j <= nf; j++) {
+			// Bin with a triangular filter the power (=amplitude-squared)
+
+			double f = z1 + (j - 1) * dz;
+			double a = NUMtriangularfilter_amplitude (fl_hz, fc_hz, fh_hz, f);
+			p += a * pow[j];
+		}
+		thy z[i][frame] = p;
+	}
+	return 1;
+}
+
+MelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
+	try {
+		double t1, samplingFrequency = 1 / my dx, nyquist = 0.5 * samplingFrequency;
+		double windowDuration = 2 * analysisWidth; /* gaussian window */
+		double fmin_mel = 0;
+		double fbottom = HZTOMEL (100.0), fceiling = HZTOMEL (nyquist);
+		long nt, frameErrorCount = 0;
+
+		// Check defaults.
+
+		if (fmax_mel <= 0 || fmax_mel > fceiling) {
+			fmax_mel = fceiling;
+		}
+		if (fmax_mel <= f1_mel) {
+			f1_mel = fbottom; fmax_mel = fceiling;
+		}
+		if (f1_mel <= 0) {
+			f1_mel = fbottom;
+		}
+		if (df_mel <= 0) {
+			df_mel = 100.0;
+		}
+
+		// Determine the number of filters.
+
+		long nf = floor ((fmax_mel - f1_mel) / df_mel + 0.5);
+		fmax_mel = f1_mel + nf * df_mel;
+
+		Sampled_shortTermAnalysis (me, windowDuration, dt, &nt, &t1);
+		autoSound sframe = Sound_createSimple (1, windowDuration, samplingFrequency);
+		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
+		autoMelFilter thee = MelFilter_create (my xmin, my xmax, nt, dt, t1, fmin_mel, fmax_mel, nf, df_mel, f1_mel);
+
+		autoMelderProgress progress (L"MelFilters analysis");
+
+		for (long i = 1; i <= nt; i++) {
+			double t = Sampled_indexToX (thee.peek(), i);
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
+			if (! Sound_into_MelFilter_frame (sframe.peek(), thee.peek(), i)) {
+				frameErrorCount++;
+			}
+			if ( (i % 10) == 1) {
+				Melder_progress ((double) i / nt, L"Frame ", Melder_integer (i), L" out of ", Melder_integer (nt), L".");
+			}
+		}
+
+		if (frameErrorCount) {
+			Melder_warning (L"Analysis results of ", Melder_integer (frameErrorCount),
+			L" frame(s) out of ", Melder_integer (nt), L" will be suspect.");
+		}
+
+		// Window correction.
+
+		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
+
+		NUMdmatrix_to_dBs (thy z, 1, thy ny, 1, thy nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, ": no MelFilter created.");
+	}
+}
+
+/*
+	Analog formant filter response :
+	H(f) = i f B / (f1^2 - f^2 + i f B)
+*/
+static int Sound_into_FormantFilter_frame (Sound me, FormantFilter thee, long frame, double bw) {
+	Melder_assert (bw > 0);
+	autoMatrix pv = Sound_to_spectralpower (me);
+	double z1 = pv -> x1;
+	double dz = pv -> dx;
+	long nf = pv -> nx;
+
+	for (long i = 1; i <= thy ny; i++) {
+		double p = 0;
+		double fc = thy y1 + (i - 1) * thy dy;
+		double *pow = pv -> z[1];
+		for (long j = 1; j <= nf; j++) {
+			// H(f) = ifB / (fc^2 - f^2 + ifB)
+			// H(f)| = fB / sqrt ((fc^2 - f^2)^2 + f^2B^2)
+			//|H(f)|^2 = f^2B^2 / ((fc^2 - f^2)^2 + f^2B^2)
+			//         = 1 / (((fc^2 - f^2) /fB)^2 + 1)
+
+			double f = z1 + (j - 1) * dz;
+			double a = NUMformantfilter_amplitude (fc, bw, f);
+			p += a * pow[j];
+		}
+		thy z[i][frame] = p;
+	}
+	return 1;
+}
+
+FormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth,
+                                      double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw,
+                                      double minimumPitch, double maximumPitch) {
+	try {
+		double floor = 80, ceiling = 600;
+		if (minimumPitch >= maximumPitch) {
+			minimumPitch = floor; maximumPitch = ceiling;
+		}
+		if (minimumPitch <= 0) {
+			minimumPitch = floor;
+		}
+		if (maximumPitch <= 0) {
+			maximumPitch = ceiling;
+		}
+
+		autoPitch thee = Sound_to_Pitch (me, dt, minimumPitch, maximumPitch);
+		autoFormantFilter ff = Sound_and_Pitch_to_FormantFilter (me, thee.peek(), analysisWidth, dt,
+		                       f1_hz, fmax_hz, df_hz, relative_bw);
+		return ff.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, ": no FormantFilter created.");
+	}
+}
+
+FormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee, double analysisWidth, double dt,
+        double f1_hz, double fmax_hz, double df_hz, double relative_bw) {
+	try {
+		double t1, windowDuration = 2 * analysisWidth; /* gaussian window */
+		double nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist, fmin_hz = 0;
+		long nt, f0_undefined = 0;
+
+		if (my xmin > thy xmin || my xmax > thy xmax) Melder_throw
+			("The domain of the Sound is not included in the domain of the Pitch.");
+
+		double f0_median = Pitch_getQuantile (thee, thy xmin, thy xmax, 0.5, kPitch_unit_HERTZ);
+
+		if (f0_median == NUMundefined || f0_median == 0) {
+			f0_median = 100;
+			Melder_warning (L"Pitch values undefined. Bandwith fixed to 100 Hz. ");
+		}
+
+		if (f1_hz <= 0) {
+			f1_hz = 100;
+		}
+		if (fmax_hz <= 0) {
+			fmax_hz = nyquist;
+		}
+		if (df_hz <= 0) {
+			df_hz = f0_median / 2;
+		}
+		if (relative_bw <= 0) {
+			relative_bw = 1.1;
+		}
+
+		fmax_hz = MIN (fmax_hz, nyquist);
+		long nf = floor ( (fmax_hz - f1_hz) / df_hz + 0.5);
+
+		Sampled_shortTermAnalysis (me, windowDuration, dt, &nt, &t1);
+		autoFormantFilter him = FormantFilter_create (my xmin, my xmax, nt, dt, t1,
+		                        fmin_hz, fmax_hz, nf, df_hz, f1_hz);
+
+		// Temporary objects
+
+		autoSound sframe = Sound_createSimple (1, windowDuration, samplingFrequency);
+		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
+		autoMelderProgress progress (L"Sound & Pitch: To FormantFilter");
+		for (long i = 1; i <= nt; i++) {
+			double t = Sampled_indexToX (him.peek(), i);
+			double b, f0 = Pitch_getValueAtTime (thee, t, kPitch_unit_HERTZ, 0);
+
+			if (f0 == NUMundefined || f0 == 0) {
+				f0_undefined++; f0 = f0_median;
+			}
+			b = relative_bw * f0;
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
+
+			Sound_into_FormantFilter_frame (sframe.peek(), him.peek(), i, b);
+
+			if ( (i % 10) == 1) {
+				Melder_progress ( (double) i / nt, L"Frame ", Melder_integer (i), L" out of ",
+				                   Melder_integer (nt), L".");
+			}
+		}
+
+		double ref = FilterBank_DBREF * gaussian_window_squared_correction (window -> nx);
+		NUMdmatrix_to_dBs (his z, 1, his ny, 1, his nx, ref, FilterBank_DBFAC, FilterBank_DBFLOOR);
+		return him.transfer();
+	} catch (MelderError) {
+		Melder_throw ("FormantFilter not created from Pitch & FormantFilter.");
+	}
+}
+
+Sound FilterBank_as_Sound (FilterBank me) {
+	try {
+		autoSound thee = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
+		for (long i = 1; i <= my ny; i++) {
+			for (long j = 1; j <= my nx; j++)
+				thy z[i][j] = my z[i][j];
+		}
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, ": no Sound created.");
+	}
+}
+
+Sound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+	try {
+		autoSound cc = Sounds_crossCorrelate ((Sound) me, (Sound) thee, scaling, signalOutsideTimeDomain);
+		return cc.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, " and ", thee, " not cross-correlated.");
+	}
+}
+
+Sound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+	try {
+		autoSound cc = Sounds_convolve ((Sound) me, (Sound) thee, scaling, signalOutsideTimeDomain);
+		return cc.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, " and ", thee, " not convolved.");
+	}
+}
+
+/* End of file Sound_and_FilterBank.cpp */
diff --git a/dwtools/Sound_and_Spectrogram_extensions.h b/dwtools/Sound_and_FilterBank.h
similarity index 57%
copy from dwtools/Sound_and_Spectrogram_extensions.h
copy to dwtools/Sound_and_FilterBank.h
index a400e28..9e19bdc 100644
--- a/dwtools/Sound_and_Spectrogram_extensions.h
+++ b/dwtools/Sound_and_FilterBank.h
@@ -1,8 +1,8 @@
-#ifndef _Sound_and_Spectrogram_extensions_h_
-#define _Sound_and_Spectrogram_extensions_h_
-/* Sound_and_Spectrogram_extensions.h
+#ifndef _Sound_and_FilterBank_h_
+#define _Sound_and_FilterBank_h_
+/* Sound_and_FilterBank.h
  *
- * Copyright (C) 2014-2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,14 +20,16 @@
  */
 
 /*
- djmw 20140914
+ djmw 20010404
+ djmw 20020813 GPL header
+ djmw 20120508 Latest modification
 */
 
-#include "Spectrogram_extensions.h"
+#include "FilterBank.h"
 #include "Pitch.h"
 #include "Sound.h"
 
-autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, double dt,
+BarkFilter Sound_to_BarkFilter (Sound me, double analysisWidth, double dt,
 	double f1_bark, double fmax_bark, double df_bark);
 /*
 	Filtering with filters on a Bark scale as defined by
@@ -38,20 +40,19 @@ autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, do
 	10 log F(z) = 15.8 + 7.5(z + 0.5) - 17.5 * sqrt(1 + (z + 0.5)^2)
 */
 
-autoMelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, double dt,
+MelFilter Sound_to_MelFilter (Sound me, double analysisWidth, double dt,
 	double f1_mel, double fmax_mel, double df_mel);
 
-autoSpectrogram Sound_to_Spectrogram_pitchDependent (Sound me, double analysisWidth,
+FormantFilter Sound_to_FormantFilter (Sound me, double analysisWidth,
 	double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw,
 	double minimumPitch, double maximumPitch);
 
-autoSpectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee,
+FormantFilter Sound_and_Pitch_to_FormantFilter (Sound me, Pitch thee,
 	double analysisWidth, double dt, double f1_hz, double fmax_hz,
 	double df_hz, double relative_bw);
 
-autoSound BandFilterSpectrograms_crossCorrelate (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound FilterBanks_crossCorrelate (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound FilterBanks_convolve (FilterBank me, FilterBank thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
-autoSound BandFilterSpectrograms_convolve (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
-
-#endif /* _Sound_and_Spectrogram_extensions_h_ */
+#endif /* _Sound_and_FilterBank_h_ */
diff --git a/dwtools/Sound_and_PCA.cpp b/dwtools/Sound_and_PCA.cpp
index 9f2471d..63ce511 100644
--- a/dwtools/Sound_and_PCA.cpp
+++ b/dwtools/Sound_and_PCA.cpp
@@ -1,6 +1,6 @@
 /* Sound_and_PCA.cpp
  *
- * Copyright (C) 2012, 2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,18 +34,18 @@ static void checkChannelsWithinRange (long *channels, long n, long min, long max
 	}
 }
 
-autoPCA Sound_to_PCA_channels (Sound me, double startTime, double endTime) {
+PCA Sound_to_PCA_channels (Sound me, double startTime, double endTime) {
 	try {
 		// covariance is cross-correlation with lag time 0
 		autoCrossCorrelationTable thee = Sound_to_CrossCorrelationTable (me, startTime, endTime, 0);
-		autoPCA him = SSCP_to_PCA (thee.get());
-		return him;
+		autoPCA him = SSCP_to_PCA (thee.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PCA created.");
 	}
 }
 
-autoSound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels) {
+Sound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels) {
 	try {
 		bool channelSelection = channels != 0 && numberOfChannels > 0;
 		if (numberOfComponents <= 0 || numberOfComponents > thy numberOfEigenvalues) {
@@ -55,7 +55,7 @@ autoSound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long n
 		if (channelSelection) {
 			checkChannelsWithinRange (channels, numberOfChannels, 1, my ny);
 		}
-		autoSound him = Data_copy (me);
+		autoSound him = (Sound) Data_copy (me);
 		// R['i',j] = E(i,k]*S['k',j]
 		// use kij-variant for faster inner loop
 		for (long k = 1; k <= thy dimension; k++) {
@@ -68,17 +68,17 @@ autoSound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long n
 				}
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no principal components calculated with ", thee);
 	}
 }
 
-autoSound Sound_and_PCA_principalComponents (Sound me, PCA thee, long numberOfComponents) {
-	return Sound_and_PCA_to_Sound_pc_selectedChannels (me, thee, numberOfComponents, nullptr, 0);
+Sound Sound_and_PCA_principalComponents (Sound me, PCA thee, long numberOfComponents) {
+	return Sound_and_PCA_to_Sound_pc_selectedChannels (me, thee, numberOfComponents, NULL, 0);
 }
 
-autoSound Sound_and_PCA_whitenSelectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels) {
+Sound Sound_and_PCA_whitenSelectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels) {
 	try {
 		bool channelSelection = channels != 0 && numberOfChannels > 0;
 		if (numberOfComponents <= 0 || numberOfComponents > thy numberOfEigenvalues) {
@@ -109,14 +109,14 @@ autoSound Sound_and_PCA_whitenSelectedChannels (Sound me, PCA thee, long numberO
                 }
             }
         }
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created.");
 	}
 }
 
-autoSound Sound_and_PCA_whitenChannels (Sound me, PCA thee, long numberOfComponents) {
-	return Sound_and_PCA_whitenSelectedChannels (me, thee, numberOfComponents, nullptr, 0);
+Sound Sound_and_PCA_whitenChannels (Sound me, PCA thee, long numberOfComponents) {
+	return Sound_and_PCA_whitenSelectedChannels (me, thee, numberOfComponents, NULL, 0);
 }
 
 /* End of file Sound_and_PCA.cpp */
diff --git a/dwtools/Sound_and_PCA.h b/dwtools/Sound_and_PCA.h
index 1d10e9b..cb7c0a7 100644
--- a/dwtools/Sound_and_PCA.h
+++ b/dwtools/Sound_and_PCA.h
@@ -2,7 +2,7 @@
 #define _Sound_and_PCA_h_
 /* Sound_and_PCA.h
  *
- * Copyright (C) 2012, 2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,14 +26,14 @@
 #include "PCA.h"
 #include "Sound.h"
 
-autoPCA Sound_to_PCA_channels (Sound me, double startTime, double endTime);
+PCA Sound_to_PCA_channels (Sound me, double startTime, double endTime);
 
-autoSound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels);
+Sound Sound_and_PCA_to_Sound_pc_selectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels);
 
-autoSound Sound_and_PCA_principalComponents (Sound me, PCA thee, long numberOfComponents);
+Sound Sound_and_PCA_principalComponents (Sound me, PCA thee, long numberOfComponents);
 
-autoSound Sound_and_PCA_whitenSelectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels);
+Sound Sound_and_PCA_whitenSelectedChannels (Sound me, PCA thee, long numberOfComponents, long *channels, long numberOfChannels);
 
-autoSound Sound_and_PCA_whitenChannels (Sound me, PCA thee, long numberOfComponents);
+Sound Sound_and_PCA_whitenChannels (Sound me, PCA thee, long numberOfComponents);
 
 #endif /* _Sound_and_PCA_h_ */
diff --git a/dwtools/Sound_and_Spectrogram_extensions.cpp b/dwtools/Sound_and_Spectrogram_extensions.cpp
index 2906b67..858dd96 100644
--- a/dwtools/Sound_and_Spectrogram_extensions.cpp
+++ b/dwtools/Sound_and_Spectrogram_extensions.cpp
@@ -1,4 +1,4 @@
-/* Sound_and_Spectrogram_extensions.cpp
+/* Sound_and_FilterBank.cpp
  *
  * Copyright (C) 1993-2014 David Weenink
  *
@@ -35,7 +35,7 @@
 
 #define MIN(m,n) ((m) < (n) ? (m) : (n))
 // prototypes
-autoSound BandFilterSpectrogram_as_Sound (BandFilterSpectrogram me, int to_dB);
+Sound BandFilterSpectrogram_as_Sound (BandFilterSpectrogram me, int to_dB);
 
 /*
 	The gaussian(x) = (exp(-48*((i-(n+1)/2)/(n+1))^2)-exp(-12))/(1-exp(-12));
@@ -64,9 +64,9 @@ static void _Spectrogram_windowCorrection (Spectrogram me, long numberOfSamples_
 	}
 }
 
-static autoSpectrum Sound_to_Spectrum_power (Sound me) {
+static Spectrum Sound_to_Spectrum_power (Sound me) {
 	try {
-		autoSpectrum thee = Sound_to_Spectrum (me, true);
+		autoSpectrum thee = Sound_to_Spectrum (me, TRUE);
 		double scale = 2.0 * thy dx / (my xmax - my xmin);
 
 		// factor '2' because we combine positive and negative frequencies
@@ -82,7 +82,7 @@ static autoSpectrum Sound_to_Spectrum_power (Sound me) {
 		// Correction of frequency bins at 0 Hz and nyquist: don't count for two.
 
 		re[1] *= 0.5; re[thy nx] *= 0.5;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrum with spectral power created.");
 	}
@@ -114,7 +114,7 @@ static void Sound_into_BarkSpectrogram_frame (Sound me, BarkSpectrogram thee, lo
 	}
 }
 
-autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, double dt, double f1_bark, double fmax_bark, double df_bark) {
+BarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, double dt, double f1_bark, double fmax_bark, double df_bark) {
 	try {
 		double nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist;
 		double windowDuration = 2 * analysisWidth; /* gaussian window */
@@ -148,21 +148,21 @@ autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, do
 		autoMelderProgress progess (U"BarkSpectrogram analysis");
 
 		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
+			double t = Sampled_indexToX (thee.peek(), iframe);
 
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2.0);
-			Sounds_multiply (sframe.get(), window.get());
-			Sound_into_BarkSpectrogram_frame (sframe.get(), thee.get(), iframe);
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
+			Sound_into_BarkSpectrogram_frame (sframe.peek(), thee.peek(), iframe);
 
-			if (iframe % 10 == 1) {
+			if ((iframe % 10) == 1) {
 				Melder_progress ( (double) iframe / numberOfFrames,  U"BarkSpectrogram analysis: frame ",
 					iframe, U" from ", numberOfFrames, U".");
 			}
 		}
 		
-		_Spectrogram_windowCorrection ((Spectrogram) thee.get(), window -> nx);
+		_Spectrogram_windowCorrection ((Spectrogram) thee.peek(), window -> nx);
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no BarkSpectrogram created.");
 	}
@@ -171,14 +171,14 @@ autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, do
 static void Sound_into_MelSpectrogram_frame (Sound me, MelSpectrogram thee, long frame) {
 	autoSpectrum him = Sound_to_Spectrum_power (me);
 
-	for (long ifilter = 1; ifilter <= thy ny; ifilter ++) {
+	for (long ifilter = 1; ifilter <= thy ny; ifilter++) {
 		double power = 0;
 		double fc_mel = thy y1 + (ifilter - 1) * thy dy;
 		double fc_hz = thy v_frequencyToHertz (fc_mel);
 		double fl_hz = thy v_frequencyToHertz (fc_mel - thy dy);
 		double fh_hz =  thy v_frequencyToHertz (fc_mel + thy dy);
 		long ifrom, ito;
-		Sampled_getWindowSamples (him.get(), fl_hz, fh_hz, &ifrom, &ito);
+		Sampled_getWindowSamples (him.peek(), fl_hz, fh_hz, &ifrom, &ito);
 		for (long i = ifrom; i <= ito; i++) {
 			// Bin with a triangular filter the power (=amplitude-squared)
 
@@ -190,26 +190,26 @@ static void Sound_into_MelSpectrogram_frame (Sound me, MelSpectrogram thee, long
 	}
 }
 
-autoMelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
+MelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
 	try {
-		double t1, samplingFrequency = 1.0 / my dx, nyquist = 0.5 * samplingFrequency;
-		double windowDuration = 2.0 * analysisWidth;   // gaussian window
-		double fmin_mel = 0.0;
+		double t1, samplingFrequency = 1 / my dx, nyquist = 0.5 * samplingFrequency;
+		double windowDuration = 2 * analysisWidth; /* gaussian window */
+		double fmin_mel = 0;
 		double fbottom = NUMhertzToMel2 (100.0), fceiling = NUMhertzToMel2 (nyquist);
 		long numberOfFrames;
 
 		// Check defaults.
 
-		if (fmax_mel <= 0.0 || fmax_mel > fceiling) {
+		if (fmax_mel <= 0 || fmax_mel > fceiling) {
 			fmax_mel = fceiling;
 		}
 		if (fmax_mel <= f1_mel) {
 			f1_mel = fbottom; fmax_mel = fceiling;
 		}
-		if (f1_mel <= 0.0) {
+		if (f1_mel <= 0) {
 			f1_mel = fbottom;
 		}
-		if (df_mel <= 0.0) {
+		if (df_mel <= 0) {
 			df_mel = 100.0;
 		}
 
@@ -226,19 +226,19 @@ autoMelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, doub
 		autoMelderProgress progress (U"MelSpectrograms analysis");
 
 		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2.0);
-			Sounds_multiply (sframe.get(), window.get());
-			Sound_into_MelSpectrogram_frame (sframe.get(), thee.get(), iframe);
+			double t = Sampled_indexToX (thee.peek(), iframe);
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
+			Sound_into_MelSpectrogram_frame (sframe.peek(), thee.peek(), iframe);
 			
-			if (iframe % 10 == 1) {
+			if ((iframe % 10) == 1) {
 				Melder_progress ((double) iframe / numberOfFrames, U"Frame ", iframe, U" out of ", numberOfFrames, U".");
 			}
 		}
 		
-		_Spectrogram_windowCorrection ((Spectrogram) thee.get(), window -> nx);
+		_Spectrogram_windowCorrection ((Spectrogram) thee.peek(), window -> nx);
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MelSpectrogram created.");
 	}
@@ -252,11 +252,11 @@ static int Sound_into_Spectrogram_frame (Sound me, Spectrogram thee, long frame,
 	Melder_assert (bw > 0);
 	autoSpectrum him = Sound_to_Spectrum_power (me);
 
-	for (long ifilter = 1; ifilter <= thy ny; ifilter ++) {
+	for (long ifilter = 1; ifilter <= thy ny; ifilter++) {
 		double p = 0;
 		double fc = thy y1 + (ifilter - 1) * thy dy;
-		double *pow = his z [1];
-		for (long ifreq = 1; ifreq <= his nx; ifreq ++) {
+		double *pow = his z[1];
+		for (long ifreq = 1; ifreq <= his nx; ifreq++) {
 			// H(f) = ifB / (fc^2 - f^2 + ifB)
 			// H(f)| = fB / sqrt ((fc^2 - f^2)^2 + f^2B^2)
 			//|H(f)|^2 = f^2B^2 / ((fc^2 - f^2)^2 + f^2B^2)
@@ -271,54 +271,53 @@ static int Sound_into_Spectrogram_frame (Sound me, Spectrogram thee, long frame,
 	return 1;
 }
 
-autoSpectrogram Sound_to_Spectrogram_pitchDependent (Sound me, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw, double minimumPitch, double maximumPitch) {
+Spectrogram Sound_to_Spectrogram_pitchDependent (Sound me, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw, double minimumPitch, double maximumPitch) {
 	try {
-		double floor = 80.0, ceiling = 600.0;
+		double floor = 80, ceiling = 600;
 		if (minimumPitch >= maximumPitch) {
-			minimumPitch = floor;
-			maximumPitch = ceiling;
+			minimumPitch = floor; maximumPitch = ceiling;
 		}
-		if (minimumPitch <= 0.0) {
+		if (minimumPitch <= 0) {
 			minimumPitch = floor;
 		}
-		if (maximumPitch <= 0.0) {
+		if (maximumPitch <= 0) {
 			maximumPitch = ceiling;
 		}
 
 		autoPitch thee = Sound_to_Pitch (me, dt, minimumPitch, maximumPitch);
-		autoSpectrogram ff = Sound_and_Pitch_to_Spectrogram (me, thee.get(), analysisWidth, dt, f1_hz, fmax_hz, df_hz, relative_bw);
-		return ff;
+		autoSpectrogram ff = Sound_and_Pitch_to_Spectrogram (me, thee.peek(), analysisWidth, dt, f1_hz, fmax_hz, df_hz, relative_bw);
+		return ff.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Spectrogram created.");
 	}
 }
 
-autoSpectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw) {
+Spectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee, double analysisWidth, double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw) {
 	try {
-		double t1, windowDuration = 2.0 * analysisWidth; /* gaussian window */
-		double nyquist = 0.5 / my dx, samplingFrequency = 2.0 * nyquist, fmin_hz = 0.0;
-		long numberOfFrames, f0_undefined = 0.0;
+		double t1, windowDuration = 2 * analysisWidth; /* gaussian window */
+		double nyquist = 0.5 / my dx, samplingFrequency = 2 * nyquist, fmin_hz = 0;
+		long numberOfFrames, f0_undefined = 0;
 
 		if (my xmin > thy xmin || my xmax > thy xmax) Melder_throw
 			(U"The domain of the Sound is not included in the domain of the Pitch.");
 
 		double f0_median = Pitch_getQuantile (thee, thy xmin, thy xmax, 0.5, kPitch_unit_HERTZ);
 
-		if (f0_median == NUMundefined || f0_median == 0.0) {
-			f0_median = 100.0;
+		if (f0_median == NUMundefined || f0_median == 0) {
+			f0_median = 100;
 			Melder_warning (U"Pitch values undefined. Bandwith fixed to 100 Hz. ");
 		}
 
-		if (f1_hz <= 0.0) {
-			f1_hz = 100.0;
+		if (f1_hz <= 0) {
+			f1_hz = 100;
 		}
-		if (fmax_hz <= 0.0) {
+		if (fmax_hz <= 0) {
 			fmax_hz = nyquist;
 		}
-		if (df_hz <= 0.0) {
-			df_hz = f0_median / 2.0;
+		if (df_hz <= 0) {
+			df_hz = f0_median / 2;
 		}
-		if (relative_bw <= 0.0) {
+		if (relative_bw <= 0) {
 			relative_bw = 1.1;
 		}
 
@@ -334,63 +333,62 @@ autoSpectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee, double ana
 		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
 		autoMelderProgress progress (U"Sound & Pitch: To FormantFilter");
 		for (long iframe = 1; iframe <= numberOfFrames; iframe++) {
-			double t = Sampled_indexToX (him.get(), iframe);
+			double t = Sampled_indexToX (him.peek(), iframe);
 			double b, f0 = Pitch_getValueAtTime (thee, t, kPitch_unit_HERTZ, 0);
 
-			if (f0 == NUMundefined || f0 == 0.0) {
-				f0_undefined ++;
-				f0 = f0_median;
+			if (f0 == NUMundefined || f0 == 0) {
+				f0_undefined++; f0 = f0_median;
 			}
 			b = relative_bw * f0;
-			Sound_into_Sound (me, sframe.get(), t - windowDuration / 2.0);
-			Sounds_multiply (sframe.get(), window.get());
+			Sound_into_Sound (me, sframe.peek(), t - windowDuration / 2);
+			Sounds_multiply (sframe.peek(), window.peek());
 
-			Sound_into_Spectrogram_frame (sframe.get(), him.get(), iframe, b);
+			Sound_into_Spectrogram_frame (sframe.peek(), him.peek(), iframe, b);
 
-			if (iframe % 10 == 1) {
+			if ((iframe % 10) == 1) {
 				Melder_progress ( (double) iframe / numberOfFrames, U"Frame ", iframe, U" out of ",
 					numberOfFrames, U".");
 			}
 		}
 		
-		_Spectrogram_windowCorrection (him.get(), window -> nx);
+		_Spectrogram_windowCorrection (him.peek(), window -> nx);
 
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantFilter not created from Pitch & FormantFilter.");
 	}
 }
 
-autoSound BandFilterSpectrogram_as_Sound (BandFilterSpectrogram me, int unit) {
+Sound BandFilterSpectrogram_as_Sound (BandFilterSpectrogram me, int unit) {
 	try {
 		autoSound thee = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
-		for (long i = 1; i <= my ny; i ++) {
-			for (long j = 1; j <= my nx; j ++)
+		for (long i = 1; i <= my ny; i++) {
+			for (long j = 1; j <= my nx; j++)
 				thy z[i][j] = my v_getValueAtSample (j, i, unit);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound created.");
 	}
 }
 
-autoSound BandFilterSpectrograms_crossCorrelate (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound BandFilterSpectrograms_crossCorrelate (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
-		autoSound sme = BandFilterSpectrogram_as_Sound (me, 1);   // to dB
-		autoSound sthee = BandFilterSpectrogram_as_Sound (thee, 1);
-		autoSound cc = Sounds_crossCorrelate (sme.get(), sthee.get(), scaling, signalOutsideTimeDomain);
-		return cc;
+		autoSound sme = BandFilterSpectrogram_as_Sound (me, 1) ; // to dB
+		autoSound sthee = BandFilterSpectrogram_as_Sound (thee, 1) ;
+		autoSound cc = Sounds_crossCorrelate (sme.peek(), sthee.peek(), scaling, signalOutsideTimeDomain);
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" and ", thee, U" not cross-correlated.");
 	}
 }
 
-autoSound BandFilterSpectrograms_convolve (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound BandFilterSpectrograms_convolve (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
-		autoSound sme = BandFilterSpectrogram_as_Sound (me, 1);   // to dB
-		autoSound sthee = BandFilterSpectrogram_as_Sound (thee, 1);
-		autoSound cc = Sounds_convolve (sme.get(), sthee.get(), scaling, signalOutsideTimeDomain);
-		return cc;
+		autoSound sme = BandFilterSpectrogram_as_Sound (me, 1) ; // to dB
+		autoSound sthee = BandFilterSpectrogram_as_Sound (thee, 1) ;
+		autoSound cc = Sounds_convolve (sme.peek(), sthee.peek(), scaling, signalOutsideTimeDomain);
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" and ", thee, U" not convolved.");
 	}
diff --git a/dwtools/Sound_and_Spectrogram_extensions.h b/dwtools/Sound_and_Spectrogram_extensions.h
index a400e28..a1917e2 100644
--- a/dwtools/Sound_and_Spectrogram_extensions.h
+++ b/dwtools/Sound_and_Spectrogram_extensions.h
@@ -2,7 +2,7 @@
 #define _Sound_and_Spectrogram_extensions_h_
 /* Sound_and_Spectrogram_extensions.h
  *
- * Copyright (C) 2014-2015 David Weenink
+ * Copyright (C) 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 #include "Pitch.h"
 #include "Sound.h"
 
-autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, double dt,
+BarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, double dt,
 	double f1_bark, double fmax_bark, double df_bark);
 /*
 	Filtering with filters on a Bark scale as defined by
@@ -38,20 +38,19 @@ autoBarkSpectrogram Sound_to_BarkSpectrogram (Sound me, double analysisWidth, do
 	10 log F(z) = 15.8 + 7.5(z + 0.5) - 17.5 * sqrt(1 + (z + 0.5)^2)
 */
 
-autoMelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, double dt,
+MelSpectrogram Sound_to_MelSpectrogram (Sound me, double analysisWidth, double dt,
 	double f1_mel, double fmax_mel, double df_mel);
 
-autoSpectrogram Sound_to_Spectrogram_pitchDependent (Sound me, double analysisWidth,
+Spectrogram Sound_to_Spectrogram_pitchDependent (Sound me, double analysisWidth,
 	double dt, double f1_hz, double fmax_hz, double df_hz, double relative_bw,
 	double minimumPitch, double maximumPitch);
 
-autoSpectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee,
+Spectrogram Sound_and_Pitch_to_Spectrogram (Sound me, Pitch thee,
 	double analysisWidth, double dt, double f1_hz, double fmax_hz,
 	double df_hz, double relative_bw);
 
-autoSound BandFilterSpectrograms_crossCorrelate (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
-
-autoSound BandFilterSpectrograms_convolve (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound BandFilterSpectrograms_crossCorrelate (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound BandFilterSpectrograms_convolve (BandFilterSpectrogram me, BandFilterSpectrogram thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
 
 #endif /* _Sound_and_Spectrogram_extensions_h_ */
diff --git a/dwtools/Sound_extensions.cpp b/dwtools/Sound_extensions.cpp
index d366f66..b91ccb5 100644
--- a/dwtools/Sound_extensions.cpp
+++ b/dwtools/Sound_extensions.cpp
@@ -1,6 +1,6 @@
 /* Sound_extensions.cpp
  *
- * Copyright (C) 1993-2011, 2015-2016 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -79,8 +79,8 @@ static void PitchTier_modifyExcursionRange (PitchTier me, double tmin, double tm
 
 	double fref_st = 12.0 * log (fref_Hz / 100.0) / NUMln2;
 
-	for (long i = 1; i <= my points.size; i++) {
-		RealPoint point = my points.at [i];
+	for (long i = 1; i <= my points -> size; i++) {
+		RealPoint point = (RealPoint) my points -> item [i];
 		double f = point -> value;
 		if (point -> number < tmin || point -> number > tmax) {
 			continue;
@@ -273,8 +273,19 @@ static void r4read (Sound me, FILE *f) {
 	}
 }
 
+static long fileLengthBytes (FILE *f) {
+	long begin, end, current;
+	if ( (current = ftell (f)) < 0 ||
+	        fseek (f, 0L, SEEK_SET) || (begin = ftell (f)) < 0 ||
+	        fseek (f, 0L, SEEK_END) || (end = ftell (f)) < 0 ||
+	        fseek (f, current, SEEK_SET)) {
+		end = begin = 0;
+	}
+	return end - begin;
+}
+
 /* Old TIMIT sound-file format */
-autoSound Sound_readFromCmuAudioFile (MelderFile file) {
+Sound Sound_readFromCmuAudioFile (MelderFile file) {
 	try {
 		int littleEndian = 1;
 		autofile f = Melder_fopen (file, "rb");
@@ -297,15 +308,16 @@ autoSound Sound_readFromCmuAudioFile (MelderFile file) {
 			Melder_throw (U"Incorrect number of samples.");
 		}
 		autoSound me = Sound_createSimple (1, nSamples / 16000., 16000);
-		i2read (me.get(), f, littleEndian);
+		i2read (me.peek(), f, littleEndian);
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from CMU audio file ", MelderFile_messageName (file), U".");
 	}
 }
 
-autoSound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsCoding, int littleEndian, int unSigned, long skipNBytes, double samplingFrequency) {
+Sound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsCoding,
+                             int littleEndian, int unSigned, long skipNBytes, double samplingFrequency) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 		if (! format) {
@@ -324,29 +336,29 @@ autoSound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsC
 		if (skipNBytes <= 0) {
 			skipNBytes = 0;
 		}
-		long nSamples = (MelderFile_length (file) - skipNBytes) / nBytesPerSample;
+		long nSamples = (fileLengthBytes (f) - skipNBytes) / nBytesPerSample;
 		if (nSamples < 1) {
 			Melder_throw (U"No samples left to read");
 		}
 		autoSound me = Sound_createSimple (1, nSamples / samplingFrequency, samplingFrequency);
 		fseek (f, skipNBytes, SEEK_SET);
-		if (nBytesPerSample == 1 && unSigned) {
-			u1read (me.get(), f);
+		if (nBytesPerSample == 1 &&   unSigned) {
+			u1read (me.peek(), f);
 		} else if (nBytesPerSample == 1 && ! unSigned) {
-			i1read (me.get(), f);
-		} else if (nBytesPerSample == 2 && unSigned) {
-			u2read (me.get(), f, littleEndian);
+			i1read (me.peek(), f);
+		} else if (nBytesPerSample == 2 &&   unSigned) {
+			u2read (me.peek(), f, littleEndian);
 		} else if (nBytesPerSample == 2 && ! unSigned) {
-			i2read (me.get(), f, littleEndian);
-		} else if (nBytesPerSample == 4 && unSigned) {
-			u4read (me.get(), f, littleEndian);
+			i2read (me.peek(), f, littleEndian);
+		} else if (nBytesPerSample == 4 &&   unSigned) {
+			u4read (me.peek(), f, littleEndian);
 		} else if (nBytesPerSample == 4 && ! unSigned) {
-			i4read (me.get(), f, littleEndian);
+			i4read (me.peek(), f, littleEndian);
 		} else if (nBytesPerSample == 4 && strequ (format, "float")) {
-			r4read (me.get(), f);
+			r4read (me.peek(), f);
 		}
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from raw audio file ", MelderFile_messageName (file), U".");
 	}
@@ -369,25 +381,24 @@ void Sound_writeToRawFile (Sound me, MelderFile file, const char *format, int li
 		if (nBytesPerSample == 3 || nBytesPerSample > 4) {
 			Melder_throw (U"number of bytes per sample should be 1, 2 or 4.");
 		}
-		if (nBytesPerSample == 1 && unSigned) {
+		if (nBytesPerSample == 1 &&   unSigned) {
 			u1write (me, f, & nClip);
 		} else if (nBytesPerSample == 1 && ! unSigned) {
 			i1write (me, f, & nClip);
-		} else if (nBytesPerSample == 2 && unSigned) {
+		} else if (nBytesPerSample == 2 &&   unSigned) {
 			u2write (me, f, littleEndian, & nClip);
 		} else if (nBytesPerSample == 2 && ! unSigned) {
 			i2write (me, f, littleEndian, & nClip);
-		} else if (nBytesPerSample == 4 && unSigned) {
+		} else if (nBytesPerSample == 4 &&   unSigned) {
 			u4write (me, f, littleEndian, & nClip);
 		} else if (nBytesPerSample == 4 && ! unSigned) {
 			i4write (me, f, littleEndian, & nClip);
 		} else if (nBytesPerSample == 4 && strequ (format, "float")) {
 			r4write (me, f);
 		}
-		if (nClip > 0) {
-			Melder_warning (nClip, U" from ", my nx, U" samples have been clipped.\nAdvice: you could scale the amplitudes or save as a binary file.");
-		}
-		if (feof ((FILE *) f) || ferror ((FILE *) f)) {
+		if (nClip > 0) Melder_warning (nClip, U" from ", my nx,
+			                               U" samples have been clipped.\nAdvice: you could scale the amplitudes or save as a binary file.");
+		if (feof (f) || ferror (f)) {
 			Melder_throw (U"Sound_writeToRawFile: not completed");
 		}
 		f.close (file);
@@ -475,7 +486,7 @@ static float dialogic_adpcm_decode (struct dialogic_adpcm *adpcm) {
 	return scale * s;
 }
 
-autoSound Sound_readFromDialogicADPCMFile (MelderFile file, double sampleRate) {
+Sound Sound_readFromDialogicADPCMFile (MelderFile file, double sampleRate) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 
@@ -507,7 +518,7 @@ autoSound Sound_readFromDialogicADPCMFile (MelderFile file, double sampleRate) {
 			my z[1][n++] = dialogic_adpcm_decode (& adpcm);
 		}
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from Dialogic ADPCM file", MelderFile_messageName (file), U".");
 	}
@@ -538,7 +549,7 @@ void Sound_deEmphasis (Sound me, double deEmphasisFrequency) {
 	}
 }
 
-autoSound Sound_createGaussian (double windowDuration, double samplingFrequency) {
+Sound Sound_createGaussian (double windowDuration, double samplingFrequency) {
 	try {
 		autoSound me = Sound_createSimple (1, windowDuration, samplingFrequency);
 		double *s = my z[1];
@@ -546,29 +557,29 @@ autoSound Sound_createGaussian (double windowDuration, double samplingFrequency)
 		for (long i = 1; i <= my nx; i++) {
 			s[i] = (exp (-48.0 * (i - imid) * (i - imid) / (my nx + 1) / (my nx + 1)) - edge) / (1 - edge);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Gaussian function.");
 	}
 }
 
-autoSound Sound_createHamming (double windowDuration, double samplingFrequency) {
+Sound Sound_createHamming (double windowDuration, double samplingFrequency) {
 	try {
 		autoSound me = Sound_createSimple (1, windowDuration, samplingFrequency);
 		double *s = my z[1];
-		double p = 2.0 * NUMpi / (my nx - 1);
+		double p = 2 * NUMpi / (my nx - 1);
 		for (long i = 1; i <= my nx; i++) {
 			s[i] = 0.54 - 0.46 * cos ( (i - 1) * p);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Hamming function.");
 	};
 }
 
-static autoSound Sound_create2 (double minimumTime, double maximumTime, double samplingFrequency) {
+static Sound Sound_create2 (double minimumTime, double maximumTime, double samplingFrequency) {
 	return Sound_create (1, minimumTime, maximumTime, lround ( (maximumTime - minimumTime) * samplingFrequency),
-		1.0 / samplingFrequency, minimumTime + 0.5 / samplingFrequency);
+	                     1.0 / samplingFrequency, minimumTime + 0.5 / samplingFrequency);
 }
 
 /*
@@ -583,7 +594,9 @@ static autoSound Sound_create2 (double minimumTime, double maximumTime, double s
 
 */
 
-static autoSound Sound_createToneComplex (double minimumTime, double maximumTime, double samplingFrequency, double firstFrequency, long numberOfComponents, double frequencyDistance, long mistunedComponent, double mistuningFraction, int scaleAmplitudes) {
+static Sound Sound_createToneComplex (double minimumTime, double maximumTime, double samplingFrequency,
+                                      double firstFrequency, long numberOfComponents, double frequencyDistance,
+                                      long mistunedComponent, double mistuningFraction, int scaleAmplitudes) {
 	try {
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 		for (long j = 1; j <= numberOfComponents; j++) {
@@ -603,16 +616,17 @@ static autoSound Sound_createToneComplex (double minimumTime, double maximumTime
 			}
 		}
 		if (scaleAmplitudes) {
-			Vector_scale (me.get(), 0.99996948);
+			Vector_scale (me.peek(), 0.99996948);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from tone complex.");
 	}
 }
 
 
-autoSound Sound_createSimpleToneComplex (double minimumTime, double maximumTime, double samplingFrequency, double firstFrequency, long numberOfComponents, double frequencyDistance, int scaleAmplitudes) {
+Sound Sound_createSimpleToneComplex (double minimumTime, double maximumTime, double samplingFrequency,
+                                     double firstFrequency, long numberOfComponents, double frequencyDistance, int scaleAmplitudes) {
 	if (firstFrequency + (numberOfComponents - 1) * frequencyDistance > samplingFrequency / 2) {
 		Melder_warning (U"Sound_createSimpleToneComplex: frequency of (some) components too high.");
 		numberOfComponents = (long) floor (1.0 + (samplingFrequency / 2 - firstFrequency) / frequencyDistance);
@@ -621,7 +635,9 @@ autoSound Sound_createSimpleToneComplex (double minimumTime, double maximumTime,
 	                                firstFrequency, numberOfComponents, frequencyDistance, 0, 0, scaleAmplitudes);
 }
 
-autoSound Sound_createMistunedHarmonicComplex (double minimumTime, double maximumTime, double samplingFrequency, double firstFrequency, long numberOfComponents, long mistunedComponent, double mistuningFraction, int scaleAmplitudes) {
+Sound Sound_createMistunedHarmonicComplex (double minimumTime, double maximumTime, double samplingFrequency,
+        double firstFrequency, long numberOfComponents, long mistunedComponent,
+        double mistuningFraction, int scaleAmplitudes) {
 	if (firstFrequency + (numberOfComponents - 1) * firstFrequency > samplingFrequency / 2) {
 		Melder_warning (U"Sound_createMistunedHarmonicComplex: frequency of (some) components too high.");
 		numberOfComponents = (long) floor (1.0 + (samplingFrequency / 2 - firstFrequency) / firstFrequency);
@@ -629,7 +645,9 @@ autoSound Sound_createMistunedHarmonicComplex (double minimumTime, double maximu
 	if (mistunedComponent > numberOfComponents) {
 		Melder_warning (U"Sound_createMistunedHarmonicComplex: mistuned component too high.");
 	}
-	return Sound_createToneComplex (minimumTime, maximumTime, samplingFrequency, firstFrequency, numberOfComponents, firstFrequency, mistunedComponent, mistuningFraction, scaleAmplitudes);
+	return Sound_createToneComplex (minimumTime, maximumTime, samplingFrequency,
+	                                firstFrequency, numberOfComponents, firstFrequency, mistunedComponent,
+	                                mistuningFraction, scaleAmplitudes);
 }
 
 /*
@@ -640,7 +658,9 @@ autoSound Sound_createMistunedHarmonicComplex (double minimumTime, double maximu
 	and so: f = f0 + c /(2 pi t)
 	Irino: bandwidth = (frequency * (6.23e-6 * frequency + 93.39e-3) + 28.52)
 */
-autoSound Sound_createGammaTone (double minimumTime, double maximumTime, double samplingFrequency, long gamma, double frequency, double bandwidth, double initialPhase, double addition, int scaleAmplitudes) {
+Sound Sound_createGammaTone (double minimumTime, double maximumTime, double samplingFrequency,
+                             long gamma, double frequency, double bandwidth, double initialPhase, double addition,
+                             int scaleAmplitudes) {
 	try {
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 		for (long i = 1; i <= my nx; i++) {
@@ -650,19 +670,21 @@ autoSound Sound_createGammaTone (double minimumTime, double maximumTime, double
 				        exp (- NUM2pi * bandwidth * t) * cos (NUM2pi * frequency * t + addition * log (t) + initialPhase);
 		}
 		if (scaleAmplitudes) {
-			Vector_scale (me.get(), 0.99996948);
+			Vector_scale (me.peek(), 0.99996948);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from gammatone function.");
 	}
 }
 
-static void NUMgammatoneFilter4 (double *x, double *y, long n, double centre_frequency, double bandwidth, double samplingFrequency) {
+static void NUMgammatoneFilter4 (double *x, double *y, long n, double centre_frequency,
+                                 double bandwidth, double samplingFrequency) {
 	double a[5], b[9], dt = 1.0 / samplingFrequency, wt = NUMpi * centre_frequency * dt;
 	double bt = 2 * NUMpi * bandwidth * dt, dt2 = dt * dt, dt4 = dt2 * dt2;
 
-	Melder_assert (n > 0 && centre_frequency > 0 && bandwidth >= 0 && samplingFrequency > 0);
+	Melder_assert (n > 0 && centre_frequency > 0 && bandwidth >= 0 &&
+	               samplingFrequency > 0);
 
 	/*
 		The filter function is:
@@ -690,7 +712,9 @@ static void NUMgammatoneFilter4 (double *x, double *y, long n, double centre_fre
 	b[7] = -8 * cos (2 * wt)                           * exp (-7 * bt);
 	b[8] =                                               exp (-8 * bt);
 
-	// Calculate gain (= Abs (H(z); f=fc) and scale a[0-4] with it.
+	/*
+		Calculate gain (= Abs (H(z); f=fc) and scale a[0-4] with it.
+	*/
 
 	double zr =  cos (2 * wt), zi = -sin (2 * wt);
 	double dr = a[4], di = 0, tr, ti, nr, ni;
@@ -732,18 +756,11 @@ static void NUMgammatoneFilter4 (double *x, double *y, long n, double centre_fre
 			Melder_casual (U"b[", i, U"] = ", b[i]);
 		}
 	}
-
-	/* Perform the filtering. For the first 8 samples we must do some extra work.
-	y[1] = a[0] * x[1];
-	if (n > 1) {
-		y[2] = a[0] * x[2];
-		y[2] += a[1] * x[1] - b[1] * y[1];
-	}
-	if (n > 2) {
-		y[2] = a[0] * x[2];
-		y[2] += a[2] * x[i - 2] - b[2] * y[i - 2];
-	}
+	/*
+		Perform the filtering. For the first 8 samples we must do some
+		extra work.
 	*/
+
 	long n8 = n < 8 ? n : 8;
 	for (long i = 1; i <= n8; i++) {
 		y[i] = a[0] * x[i];
@@ -794,7 +811,7 @@ static void NUMgammatoneFilter4 (double *x, double *y, long n, double centre_fre
 }
 
 
-autoSound Sound_filterByGammaToneFilter4 (Sound me, double centre_frequency, double bandwidth) {
+Sound Sound_filterByGammaToneFilter4 (Sound me, double centre_frequency, double bandwidth) {
 	try {
 		if (centre_frequency <= 0) {
 			Melder_throw (U"Centre frequency must be positive.");
@@ -819,7 +836,7 @@ autoSound Sound_filterByGammaToneFilter4 (Sound me, double centre_frequency, dou
 				thy z[channel][i] = y[i];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not filtered by gammatone filter4.");
 	}
@@ -834,7 +851,7 @@ Sound Sound_createShepardTone (double minimumTime, double maximumTime, double sa
 	double twoPi = 2.0 * NUMpi, f = baseFrequency * (1 + frequencyShiftFraction);
 	if (nComponents < 2) Melder_warning (U"Sound_createShepardTone: only 1 component.");
 	Melder_casual (U"Sound_createShepardTone: ", nComponents, U" components.");
-	if (! (me = Sound_create2 (minimumTime, maximumTime, samplingFrequency))) return nullptr;
+	if (! (me = Sound_create2 (minimumTime, maximumTime, samplingFrequency))) return NULL;
 
 	for (j=1; j <= nComponents; j++)
 	{
@@ -851,25 +868,24 @@ Sound Sound_createShepardTone (double minimumTime, double maximumTime, double sa
 }
 */
 
-autoSound Sound_createShepardToneComplex (double minimumTime, double maximumTime, double samplingFrequency, double lowestFrequency, long numberOfComponents, double frequencyChange_st, double amplitudeRange, double octaveShiftFraction) {
+Sound Sound_createShepardToneComplex (double minimumTime, double maximumTime,
+                                      double samplingFrequency, double lowestFrequency, long numberOfComponents,
+                                      double frequencyChange_st, double amplitudeRange, double octaveShiftFraction) {
 	try {
 		double highestFrequency = lowestFrequency * pow (2, numberOfComponents);
 		double lmax_db = 0, lmin_db = lmax_db - fabs (amplitudeRange);
 
-		if (highestFrequency > samplingFrequency / 2) {
-			Melder_throw (U"The highest frequency you want to generate is "
-				U"above the Nyquist frequency. Choose a larger value for \"Sampling frequency\", or lower values for "
-				U"\"Number of components\" or \"Lowest frequency\".");
-		}
-		if (octaveShiftFraction < 0 || octaveShiftFraction >= 1) {
-			Melder_throw (U"Octave offset fraction must be greater or equal zero and smaller than one.");
-		}
+		if (highestFrequency > samplingFrequency / 2) Melder_throw (U"The highest frequency you want to generate is "
+			        U"above the Nyquist frequency. Choose a larger value for \"Sampling frequency\", or lower values for "
+			        U"\"Number of components\" or \"Lowest frequency\".");
+		if (octaveShiftFraction < 0 || octaveShiftFraction >= 1) Melder_throw (U"Octave offset fraction "
+			        U"must be greater or equal zero and smaller than one.");
 		double octaveTime, sweeptime;
 		if (frequencyChange_st != 0) {
 			octaveTime = 12 / fabs (frequencyChange_st);
 			sweeptime = numberOfComponents * octaveTime;
 		} else {
-			octaveTime = sweeptime = 1e308;
+			octaveTime = sweeptime = 1e38;
 		}
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 
@@ -905,7 +921,7 @@ autoSound Sound_createShepardToneComplex (double minimumTime, double maximumTime
 				tswitch = b1 * octaveTime;
 			}
 			for (long j = 1; j <= my nx; j++) {
-				double t = Sampled_indexToX (me.get(), j);
+				double t = Sampled_indexToX (me.peek(), j);
 				double tmod = fmod (t, sweeptime);
 				double tone = tmod <= tswitch ? b1 + a * tmod : b2 + a * (tmod - tswitch);
 				double f = lowestFrequency * pow (2, tone);
@@ -921,8 +937,8 @@ autoSound Sound_createShepardToneComplex (double minimumTime, double maximumTime
 				phasejm1 = phasej;
 			}
 		}
-		Vector_scale (me.get(), 0.99996948);
-		return me;
+		Vector_scale (me.peek(), 0.99996948);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Shepard tone complex.");
 	}
@@ -930,7 +946,9 @@ autoSound Sound_createShepardToneComplex (double minimumTime, double maximumTime
 
 /* can be implemented more efficiently with sin recurrence? */
 /* amplitude(f) = min + (1-min)*(1-cos(2*pi*(ln(f/f1) / ln(fn/f1)))/2 */
-autoSound Sound_createShepardTone (double minimumTime, double maximumTime, double samplingFrequency, double lowestFrequency, long numberOfComponents, double frequencyChange_st, double amplitudeRange) {
+Sound Sound_createShepardTone (double minimumTime, double maximumTime,
+                               double samplingFrequency, double lowestFrequency, long numberOfComponents,
+                               double frequencyChange_st, double amplitudeRange) {
 	try {
 		double scale = pow (2, numberOfComponents);
 		double maximumFrequency = lowestFrequency * scale;
@@ -939,12 +957,11 @@ autoSound Sound_createShepardTone (double minimumTime, double maximumTime, doubl
 		double lnf1 = log (lowestFrequency + 1);
 		double amplarg = twoPi / log ( (maximumFrequency + 1) /
 		                               (lowestFrequency + 1));
-		if (lowestFrequency > samplingFrequency / 2) {
-			Melder_throw (U"Sound_createShepardTone: lowest frequency too high.");
-		}
-		if (maximumFrequency > samplingFrequency / 2) {
-			Melder_throw (U"Sound_createShepardTone: frequency of highest component too high.");
-		}
+
+		if (lowestFrequency > samplingFrequency / 2) Melder_throw
+			(U"Sound_createShepardTone: lowest frequency too high.");
+		if (maximumFrequency > samplingFrequency / 2) Melder_throw
+			(U"Sound_createShepardTone: frequency of highest component too high.");
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 
 		for (long i = 1; i <= my nx; i++) {
@@ -967,18 +984,18 @@ autoSound Sound_createShepardTone (double minimumTime, double maximumTime, doubl
 				ft *= 2; argt *= 2;
 			}
 		}
-		Vector_scale (me.get(), 0.99996948);
-		return me;
+		Vector_scale (me.peek(), 0.99996948);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Shepard tone.");
 	}
 }
 
-autoSound Sound_createPattersonWightmanTone (double minimumTime, double maximumTime, double samplingFrequency, double baseFrequency, double frequencyShiftRatio, long numberOfComponents) {
+Sound Sound_createPattersonWightmanTone (double minimumTime, double maximumTime, double samplingFrequency,
+        double baseFrequency, double frequencyShiftRatio, long numberOfComponents) {
 	try {
-		if ( (numberOfComponents - 1 + frequencyShiftRatio) * baseFrequency >  samplingFrequency / 2) {
-			Melder_throw (U"Frequency of one or more components too large.");
-		}
+		if ( (numberOfComponents - 1 + frequencyShiftRatio) * baseFrequency >  samplingFrequency / 2) Melder_throw
+			(U"Frequency of one or more components too large.");
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 		double w0 = NUM2pi * baseFrequency;
 		for (long i = 1; i <= my nx; i++) {
@@ -988,20 +1005,20 @@ autoSound Sound_createPattersonWightmanTone (double minimumTime, double maximumT
 			}
 			my z[1][i] = a;
 		}
-		Vector_scale (me.get(), 0.99996948);
-		return me;
+		Vector_scale (me.peek(), 0.99996948);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Patterson Wightman tone.");
 	}
 }
 
-autoSound Sound_createPlompTone (double minimumTime, double maximumTime, double samplingFrequency, double baseFrequency, double frequencyFraction, long m) {
+Sound Sound_createPlompTone (double minimumTime, double maximumTime, double samplingFrequency,
+                             double baseFrequency, double frequencyFraction, long m) {
 	try {
 		double w1 = NUM2pi * (1 - frequencyFraction) * baseFrequency;
 		double w2 = NUM2pi * (1 + frequencyFraction) * baseFrequency;
-		if (12 * (1 + frequencyFraction) * baseFrequency >  samplingFrequency / 2) {
-			Melder_throw (U"Sound_createPlompTone: frequency of one or more components too large.");
-		}
+		if (12 * (1 + frequencyFraction) * baseFrequency >  samplingFrequency / 2) Melder_throw
+			(U"Sound_createPlompTone: frequency of one or more components too large.");
 		autoSound me = Sound_create2 (minimumTime, maximumTime, samplingFrequency);
 		for (long i = 1; i <= my nx; i++) {
 			double a = 0, t = (i - 0.5) * my dx;
@@ -1013,8 +1030,8 @@ autoSound Sound_createPlompTone (double minimumTime, double maximumTime, double
 			}
 			my z[1][i] = a;
 		}
-		Vector_scale (me.get(), 0.99996948);
-		return me;
+		Vector_scale (me.peek(), 0.99996948);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Plomp tone.");
 	}
@@ -1077,47 +1094,45 @@ double Sound_correlateParts (Sound me, double tx, double ty, double duration) {
 	return rxy;
 }
 
-void Sound_localMean (Sound me, double fromTime, double toTime, double *p_mean) {
+void Sound_localMean (Sound me, double fromTime, double toTime, double *mean) {
 	long n1 = Sampled_xToNearestIndex (me, fromTime);
 	long n2 = Sampled_xToNearestIndex (me, toTime);
-	double *s = my z[1], mean = 0.0;
-	if (fromTime  <= toTime) {
-		if (n1 < 1) {
-			n1 = 1;
-		}
-		if (n2 > my nx) {
-			n2 = my nx;
-		}
-		for (long i = n1; i <= n2; i++) {
-			mean += s[i];
-		}
-		mean /= n2 - n1 + 1;
+	double *s = my z[1];
+	*mean = 0;
+	if (fromTime > toTime) {
+		return;
+	}
+	if (n1 < 1) {
+		n1 = 1;
+	}
+	if (n2 > my nx) {
+		n2 = my nx;
 	}
-	if (p_mean) {
-		*p_mean = mean;
+	for (long i = n1; i <= n2; i++) {
+		*mean += s[i];
 	}
+	*mean /= n2 - n1 + 1;
 }
 
-void Sound_localPeak (Sound me, double fromTime, double toTime, double ref, double *p_peak) {
+void Sound_localPeak (Sound me, double fromTime, double toTime, double ref, double *peak) {
 	long n1 = Sampled_xToNearestIndex (me, fromTime);
 	long n2 = Sampled_xToNearestIndex (me, toTime);
-	double *s = my z[1], peak = -1e308;
-	if (fromTime <= toTime) {
-		if (n1 < 1) {
-			n1 = 1;
-		}
-		if (n2 > my nx) {
-			n2 = my nx;
-		}
-		for (long i = n1; i <= n2; i++) {
-			double ds = fabs (s[i] - ref);
-			if (ds > peak) {
-				peak = ds;
-			}
-		}
+	double *s = my z[1];
+	*peak = -1e38;
+	if (fromTime > toTime) {
+		return;
+	}
+	if (n1 < 1) {
+		n1 = 1;
+	}
+	if (n2 > my nx) {
+		n2 = my nx;
 	}
-	if (p_peak) {
-		*p_peak = peak;
+	for (long i = n1; i <= n2; i++) {
+		double ds = fabs (s[i] - ref);
+		if (ds > *peak) {
+			*peak = ds;
+		}
 	}
 }
 
@@ -1133,23 +1148,30 @@ void Sound_into_Sound (Sound me, Sound to, double startTime) {
 IntervalTier Sound_PointProcess_to_IntervalTier (Sound me, PointProcess thee, double window);
 IntervalTier Sound_PointProcess_to_IntervalTier (Sound me, PointProcess thee, double window)
 {
-	double window2 = window / 2;
-	double t1 = thy t[1] - window2;
+	IntervalTier him;
+	TextInterval interval;
+	double t1, t2, t, window2 = window / 2;
+	long i;
+
+	him = IntervalTier_create (my xmin, my xmax);
+	if (him == NULL) return NULL;
+
+	t1 = thy t[1] - window2;
 	if (t1 < my xmin) t1 = my xmin;
-	double t2 = t1 + window2;
+	t2 = t1 + window2;
 	if (t2 > my xmax) t2 = my xmax;
-	autoIntervalTier him = IntervalTier_create (my xmin, my xmax);
-	autoTextInterval interval = TextInterval_create (t1, t2, "yes");
-	Collection_addItem_move (his intervals, interval.move());
+	interval = TextInterval_create (t1, t2, "yes");
+	if (interval == NULL ||
+		! Collection_addItem (his intervals, interval)) goto end;
 
-	for (long i = 2; i <= thy nt; i++)
+	for (i = 2; i <= thy nt; i++)
 	{
-		double t =  thy t[i];
+		t =  thy t[i];
 
-		if (t <= t2)
+		if (t  <= t2)
 		{
-			long index = his points.size;
-			RealPoint point = his points->at [index];
+			long index = his points -> size;
+			RealPoint point = his points -> item[index];
 			t2 = t + window2;
 			if (t2 > my xmax) t2 = my xmax;
 			point -> value = t2;
@@ -1158,9 +1180,12 @@ IntervalTier Sound_PointProcess_to_IntervalTier (Sound me, PointProcess thee, do
 		{
 			t2 = t + window2;
 			if (t2 > my xmax) t2 = my xmax;
-			RealTier_addPoint (him, t, t2);
+			if (! RealTier_addPoint (him, t, t2)) goto end;
 		}
 	}
+
+end:
+	if (Melder_hasError()) forget (him);
 	return him;
 }
 */
@@ -1202,13 +1227,13 @@ void Sound_overwritePart (Sound me, double t1, double t2, Sound thee, double t3)
 void Sound_filter_part_formula (Sound me, double t1, double t2, const char32 *formula, Interpreter interpreter) {
 	try {
 		autoSound part = Sound_extractPart (me, t1, t2, kSound_windowShape_RECTANGULAR, 1, 1);
-		autoSpectrum spec = Sound_to_Spectrum (part.get(), true);
-		Matrix_formula ( (Matrix) spec.get(), formula, interpreter, 0);
-		autoSound filtered = Spectrum_to_Sound (spec.get());
+		autoSpectrum spec = Sound_to_Spectrum (part.peek(), TRUE);
+		Matrix_formula ( (Matrix) spec.peek(), formula, interpreter, 0);
+		autoSound filtered = Spectrum_to_Sound (spec.peek());
 
 		// Overwrite part between t1 and t2 of original with the filtered signal */
 
-		Sound_overwritePart (me, t1, t2, filtered.get(), 0);
+		Sound_overwritePart (me, t1, t2, filtered.peek(), 0);
 	} catch (MelderError) {
 		Melder_throw (me, U": part not filtered by formula.");
 	}
@@ -1219,7 +1244,7 @@ void Sound_filter_part_formula (Sound me, double t1, double t2, const char32 *fo
    The underlying analog signal still could have jumps undetected by this algorithm.
     We could get a better approximation by first upsampling the signal.
 */
-autoPointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, double dt) {
+PointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, double dt) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
 		long i = 1, dtn = (long) floor (dt / my dx);
@@ -1232,125 +1257,128 @@ autoPointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, d
 			while (j <= i + dtn && j <= my nx) {
 				if (fabs (s[i] - s[j]) > minimumJump) {
 					double t = Sampled_indexToX (me, i);
-					PointProcess_addPoint (thee.get(), t);
+					PointProcess_addPoint (thee.peek(), t);
 					step = j - i + 1; break;
 				}
 				j++;
 			}
 			i += step;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no PointProcess created.");
 	}
 }
 
 /* Internal pitch representation in semitones */
-autoSound Sound_and_Pitch_changeSpeaker (Sound me, Pitch him, double formantMultiplier, double pitchMultiplier, double pitchRangeMultiplier, double durationMultiplier) {
+Sound Sound_and_Pitch_changeSpeaker (Sound me, Pitch him,
+                                     double formantMultiplier, // > 0
+                                     double pitchMultiplier, // > 0
+                                     double pitchRangeMultiplier, // any number
+                                     double durationMultiplier) { // > 0
 	try {
 		double samplingFrequency_old = 1 / my dx;
 
-		if (my xmin != his xmin || my xmax != his xmax) {
-			Melder_throw (U"The Pitch and the Sound object must have the same start and end times.");
-		}
+		if (my xmin != his xmin || my xmax != his xmax) Melder_throw
+			(U"The Pitch and the Sound object must have the same start and end times.");
+
 		autoSound sound = Data_copy (me);
-		Vector_subtractMean (sound.get());
+		Vector_subtractMean (sound.peek());
 
 		if (formantMultiplier != 1) {
 			// Shift all frequencies (inclusive pitch!) */
-			Sound_overrideSamplingFrequency (sound.get(), samplingFrequency_old * formantMultiplier);
+			Sound_overrideSamplingFrequency (sound.peek(), samplingFrequency_old * formantMultiplier);
 		}
 
 		autoPitch pitch = Data_copy (him);
-		Pitch_scaleDuration (pitch.get(), 1 / formantMultiplier); //
-		Pitch_scalePitch (pitch.get(), formantMultiplier);
+		Pitch_scaleDuration (pitch.peek(), 1 / formantMultiplier); //
+		Pitch_scalePitch (pitch.peek(), formantMultiplier);
 
-		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.get(), pitch.get());
-		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.get());
+		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.peek(), pitch.peek());
+		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.peek());
 
-		double median = Pitch_getQuantile (pitch.get(), 0, 0, 0.5, kPitch_unit_HERTZ);
+		double median = Pitch_getQuantile (pitch.peek(), 0, 0, 0.5, kPitch_unit_HERTZ);
 		if (median != 0 && median != NUMundefined) {
 			/* Incorporate pitch shift from overriding the sampling frequency */
-			PitchTier_multiplyFrequencies (pitchTier.get(), sound -> xmin, sound -> xmax, pitchMultiplier / formantMultiplier);
-			PitchTier_modifyExcursionRange (pitchTier.get(), sound -> xmin, sound -> xmax, pitchRangeMultiplier, median);
+			PitchTier_multiplyFrequencies (pitchTier.peek(), sound -> xmin, sound -> xmax, pitchMultiplier / formantMultiplier);
+			PitchTier_modifyExcursionRange (pitchTier.peek(), sound -> xmin, sound -> xmax, pitchRangeMultiplier, median);
 		} else if (pitchMultiplier != 1) {
 			Melder_warning (U"Pitch has not been changed because the sound was entirely voiceless.");
 		}
 		autoDurationTier duration = DurationTier_create (my xmin, my xmax);
-		RealTier_addPoint (duration.get(), (my xmin + my xmax) / 2, formantMultiplier * durationMultiplier);
+		RealTier_addPoint (duration.peek(), (my xmin + my xmax) / 2, formantMultiplier * durationMultiplier);
 
-		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.get(), pulses.get(), pitchTier.get(), duration.get(), MAX_T);
+		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.peek(), pulses.peek(), pitchTier.peek(), duration.peek(), MAX_T);
 
 		// Resample to the original sampling frequency
 
 		if (formantMultiplier != 1) {
-			thee = Sound_resample (thee.get(), samplingFrequency_old, 10);
+			thee.reset (Sound_resample (thee.peek(), samplingFrequency_old, 10));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Pitch & Sound.");
 	}
 }
 
-autoSound Sound_changeSpeaker (Sound me, double pitchMin, double pitchMax, double formantMultiplier, double pitchMultiplier,  double pitchRangeMultiplier, double durationMultiplier) { // > 0
+Sound Sound_changeSpeaker (Sound me, double pitchMin, double pitchMax,
+                           double formantMultiplier, // > 0
+                           double pitchMultiplier, // > 0
+                           double pitchRangeMultiplier, // any number
+                           double durationMultiplier) { // > 0
 	try {
 		autoPitch pitch = Sound_to_Pitch (me, 0.8 / pitchMin, pitchMin, pitchMax);
-		autoSound thee = Sound_and_Pitch_changeSpeaker (me, pitch.get(), formantMultiplier, pitchMultiplier, pitchRangeMultiplier, durationMultiplier);
-		return thee;
+		autoSound thee = Sound_and_Pitch_changeSpeaker (me, pitch.peek(), formantMultiplier, pitchMultiplier, pitchRangeMultiplier, durationMultiplier);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": speaker not changed.");
 	}
 }
 
-autoTextGrid Sound_to_TextGrid_detectSilences (Sound me, double minPitch, double timeStep,
+TextGrid Sound_to_TextGrid_detectSilences (Sound me, double minPitch, double timeStep,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration,
 	const char32 *silentLabel, const char32 *soundingLabel) {
 	try {
 		int subtractMeanPressure = 1;
-		autoSound filtered = Sound_filter_passHannBand (me, 80.0, 8000.0, 80.0);
-		autoIntensity thee = Sound_to_Intensity (filtered.get(), minPitch, timeStep, subtractMeanPressure);
-		autoTextGrid him = Intensity_to_TextGrid_detectSilences (thee.get(), silenceThreshold, minSilenceDuration, minSoundingDuration, silentLabel, soundingLabel);
-		return him;
+		autoIntensity thee = Sound_to_Intensity (me, minPitch, timeStep, subtractMeanPressure);
+		autoTextGrid him = Intensity_to_TextGrid_detectSilences (thee.peek(), silenceThreshold, minSilenceDuration, minSoundingDuration, silentLabel, soundingLabel);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TextGrid with silences created.");
 	}
 }
 
-void Sound_getStartAndEndTimesOfSounding (Sound me, double minPitch, double timeStep, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double *t1, double *t2) {
+void Sound_getStartAndEndTimesOfSounding (Sound me, double minPitch, double timeStep,
+	double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double *t1, double *t2) {
 	try {
 		const char32 *silentLabel = U"-", *soundingLabel = U"+";
 		autoTextGrid dbs = Sound_to_TextGrid_detectSilences (me, minPitch, timeStep, silenceThreshold,
 			minSilenceDuration, minSoundingDuration, silentLabel, soundingLabel);
-		IntervalTier tier = (IntervalTier) dbs -> tiers->at [1];
-		Melder_assert (tier -> intervals.size > 0);
-		TextInterval interval = tier -> intervals.at [1];
-		if (t1) {
-			*t1 = my xmin;
-			if (Melder_equ (interval -> text, silentLabel)) {
-				*t1 = interval -> xmax;
-			}
+		IntervalTier itier = (IntervalTier) dbs -> tiers -> item[1];
+		TextInterval ti = (TextInterval) itier -> intervals -> item[1];
+		*t1 = my xmin;
+		if (Melder_equ (ti -> text, silentLabel)) {
+			*t1 = ti -> xmax;
 		}
-		if (t2) {
-			*t2 = my xmax;
-			interval = tier -> intervals.at [tier -> intervals.size];
-			if (Melder_equ (interval -> text, silentLabel)) {
-				*t2 = interval -> xmin;
-			}
+		*t2 = my xmax;
+		ti = (TextInterval) itier -> intervals -> item[itier -> intervals -> size];
+		if (Melder_equ (ti -> text, silentLabel)) {
+			*t2 = ti -> xmin;
 		}
 	} catch (MelderError) {
 		Melder_throw (U"Sounding times not found.");
 	}
 }
 
-autoSound Sound_and_IntervalTier_cutPartsMatchingLabel (Sound me, IntervalTier thee, const char32 *match) {
+Sound Sound_and_IntervalTier_cutPartsMatchingLabel (Sound me, IntervalTier thee, const char32 *match) {
     try {
         // count samples of the trimmed sound
         long ixmin, ixmax, numberOfSamples = 0, previous_ixmax = 0;
 		double xmin = my xmin; // start time of output sound is start time of input sound
-        for (long iint = 1; iint <= thy intervals.size; iint ++) {
-            TextInterval interval = thy intervals.at [iint];
-            if (! Melder_equ (interval -> text, match)) {
-                numberOfSamples += Sampled_getWindowSamples (me, interval -> xmin, interval -> xmax, &ixmin, &ixmax);
+        for (long iint = 1; iint <= thy intervals -> size; iint++) {
+            TextInterval ti = (TextInterval) thy intervals -> item[iint];
+            if (! Melder_equ (ti -> text, match)) {
+                numberOfSamples += Sampled_getWindowSamples (me, ti -> xmin, ti -> xmax, &ixmin, &ixmax);
                 // if two contiguous intervals have to be copied then the last sample of previous interval
                 // and first sample of current interval might sometimes be equal
 				if (ixmin == previous_ixmax) {
@@ -1359,108 +1387,105 @@ autoSound Sound_and_IntervalTier_cutPartsMatchingLabel (Sound me, IntervalTier t
 				previous_ixmax = ixmax;
 			} else { // matches label
 				if (iint == 1) { // Start time of output sound is end time of first interval
-					xmin = interval -> xmax;
+					xmin = ti -> xmax;
 				}
             }
         }
         // Now copy the parts. The output sound starts at xmin
         autoSound him = Sound_create (my ny, xmin, xmin + numberOfSamples * my dx, numberOfSamples, my dx, xmin + 0.5 * my dx);
-        numberOfSamples = 0;
-		previous_ixmax = 0;
-        for (long iint = 1; iint <= thy intervals.size; iint ++) {
-            TextInterval interval = thy intervals.at [iint];
-            if (! Melder_equ (interval -> text, match)) {
+        numberOfSamples = 0; previous_ixmax = 0;
+        for (long iint = 1; iint <= thy intervals -> size; iint++) {
+            TextInterval ti = (TextInterval) thy intervals -> item[iint];
+            if (! Melder_equ (ti -> text, match)) {
 				long ipos;
-                Sampled_getWindowSamples (me, interval -> xmin, interval -> xmax, &ixmin, &ixmax);
+                Sampled_getWindowSamples (me, ti -> xmin, ti -> xmax, &ixmin, &ixmax);
 				if (ixmin == previous_ixmax) {
 					ixmin++;
 				}
 				previous_ixmax = ixmax;
-                for (long ichan = 1; ichan <= my ny; ichan ++) {
+                for (long ichan = 1; ichan <= my ny; ichan++) {
                     ipos = numberOfSamples + 1;
-                    for (long i = ixmin; i <= ixmax; i ++, ipos ++) {
-                        his z [ichan] [ipos] = my z [ichan] [i];
+                    for (long i = ixmin; i <= ixmax; i++, ipos++) {
+                        his z[ichan][ipos] = my z[ichan][i];
                     }
                 }
-                numberOfSamples = -- ipos;
+                numberOfSamples = --ipos;
             }
         }
         Melder_assert (numberOfSamples == his nx);
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": intervals not trimmed.");
     }
 }
 
-autoSound Sound_trimSilences (Sound me, double trimDuration, bool onlyAtStartAndEnd, double minPitch, double timeStep, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, autoTextGrid *p_tg, const char32 *trimLabel) {
+Sound Sound_trimSilences (Sound me, double trimDuration, bool onlyAtStartAndEnd, double minPitch, double timeStep, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, TextGrid *tg, const char32 *trimLabel) {
     try {
         if (my ny > 1) {
             Melder_throw (U"The sound must be a mono sound.");
         }
         const char32 *silentLabel = U"silent", *soundingLabel = U"sounding";
         const char32 *copyLabel = U"";
-        autoTextGrid tg = Sound_to_TextGrid_detectSilences (me, minPitch, timeStep, silenceThreshold, minSilenceDuration, minSoundingDuration, silentLabel, soundingLabel);
-        autoIntervalTier itg = Data_copy ((IntervalTier) tg -> tiers->at [1]);
-        IntervalTier tier = (IntervalTier) tg -> tiers->at [1];
-        for (long iint = 1; iint <= tier -> intervals.size; iint ++) {
-            TextInterval ti = tier -> intervals.at [iint];
-            TextInterval ati = itg -> intervals.at [iint];
+        autoTextGrid dbs = Sound_to_TextGrid_detectSilences (me, minPitch, timeStep, silenceThreshold,
+            minSilenceDuration, minSoundingDuration, silentLabel, soundingLabel);
+        autoIntervalTier itg = (IntervalTier) Data_copy ((IntervalTier) dbs -> tiers -> item[1]);
+        IntervalTier itier = (IntervalTier) dbs -> tiers -> item[1];
+        for (long iint = 1; iint <= itier -> intervals -> size; iint++) {
+            TextInterval ti = (TextInterval) itier -> intervals -> item[iint];
+            TextInterval ati = (TextInterval) itg -> intervals -> item[iint];
             double duration = ti -> xmax - ti -> xmin;
-            if (duration > trimDuration && Melder_equ (ti -> text, silentLabel)) {   // silent
+            if (duration > trimDuration && Melder_equ (ti -> text, silentLabel)) { // silent
 				const char32 * label = trimLabel;
                 if (iint == 1) { // first is special
                     double trim_t = ti -> xmax - trimDuration;
-                    IntervalTier_moveBoundary (itg.get(), iint, false, trim_t);
-                } else if (iint == tier -> intervals.size) {   // last is special
+                    IntervalTier_moveBoundary (itg.peek(), iint, false, trim_t);
+                } else if (iint == itier -> intervals -> size) { // last is special
                     double trim_t = ti -> xmin + trimDuration;
-                    IntervalTier_moveBoundary (itg.get(), iint, true, trim_t);
+                    IntervalTier_moveBoundary (itg.peek(), iint, true, trim_t);
                 } else {
 					if (onlyAtStartAndEnd) {
 						label = ati -> text;
 					} else {
                     	double trim_t = ti -> xmin + 0.5 * trimDuration;
-						IntervalTier_moveBoundary (itg.get(), iint, true, trim_t);
+						IntervalTier_moveBoundary (itg.peek(), iint, true, trim_t);
                     	trim_t = ti -> xmax - 0.5 * trimDuration;
-                    	IntervalTier_moveBoundary (itg.get(), iint, false, trim_t);
+                    	IntervalTier_moveBoundary (itg.peek(), iint, false, trim_t);
 					}
                 }
                 TextInterval_setText (ati, label);
-            } else {   // sounding
+            } else { // sounding
                 TextInterval_setText (ati, copyLabel);
             }
         }
-        autoSound thee = Sound_and_IntervalTier_cutPartsMatchingLabel (me, itg.get(), trimLabel);
-        if (p_tg) {
-			TextGrid_addTier_copy (tg.get(), itg.get());
-            *p_tg = tg.move();
+        autoSound thee = Sound_and_IntervalTier_cutPartsMatchingLabel (me, itg.peek(), trimLabel);
+        if (tg != NULL) {
+			TextGrid_addTier (dbs.peek(), itg.transfer());
+            *tg = dbs.transfer();
         }
-        return thee;
+        return thee.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": silences not trimmed.");
     }
 }
 
-autoSound Sound_trimSilencesAtStartAndEnd (Sound me, double trimDuration, double minPitch, double timeStep,
+Sound Sound_trimSilencesAtStartAndEnd (Sound me, double trimDuration, double minPitch, double timeStep,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double *t1, double *t2) {
 	try {
-		autoTextGrid tg;
-		autoSound thee = Sound_trimSilences (me, trimDuration, true, minPitch, timeStep, silenceThreshold, minSilenceDuration, minSoundingDuration, & tg, U"trimmed");
-		IntervalTier trim = (IntervalTier) tg -> tiers->at [2];
-		TextInterval ti1 = trim -> intervals.at [1];
-		if (t1) {
-			*t1 = my xmin;
-			if (Melder_equ (ti1 -> text, U"trimmed")) {
-				*t1 = ti1 -> xmax;
-			}
-		}
-		TextInterval ti2 = trim -> intervals.at [trim -> intervals.size];
-		if (t2) {
-			*t2 = my xmax;
-			if (Melder_equ (ti2 -> text, U"trimmed")) {
-				*t2 = ti2 -> xmin;
-			}
-		}
-		return thee;
+		TextGrid tg;
+		autoSound thee = Sound_trimSilences (me, trimDuration, true, minPitch, timeStep, silenceThreshold, minSilenceDuration, minSoundingDuration, &tg, U"trimmed");
+		autoTextGrid atg = tg;
+		IntervalTier trim = (IntervalTier) tg -> tiers -> item[2];
+		TextInterval ti1 = (TextInterval) trim -> intervals -> item[1];
+		*t1 = my xmin;
+		if (Melder_equ (ti1 -> text, U"trimmed")) {
+			*t1 = ti1 -> xmax;
+		}
+		TextInterval ti2 = (TextInterval) trim -> intervals -> item[trim -> intervals -> size];
+		*t2 = my xmax;
+		if (Melder_equ (ti2 -> text, U"trimmed")) {
+			*t2 = ti2 -> xmin;
+		}
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": silences not trimmed.");
 	}
@@ -1469,8 +1494,8 @@ autoSound Sound_trimSilencesAtStartAndEnd (Sound me, double trimDuration, double
 /*  Compatibility with old Sound(&pitch)_changeGender  ***********************************/
 
 static void PitchTier_modifyRange_old (PitchTier me, double tmin, double tmax, double factor, double fmid) {
-	for (long i = 1; i <= my points.size; i ++) {
-		RealPoint point = my points.at [i];
+	for (long i = 1; i <= my points -> size; i ++) {
+		RealPoint point = (RealPoint) my points -> item [i];
 		double f = point -> value;
 		if (point -> number < tmin || point -> number > tmax) {
 			continue;
@@ -1480,7 +1505,7 @@ static void PitchTier_modifyRange_old (PitchTier me, double tmin, double tmax, d
 	}
 }
 
-static autoPitch Pitch_scaleTime_old (Pitch me, double scaleFactor) {
+static Pitch Pitch_scaleTime_old (Pitch me, double scaleFactor) {
 	try {
 		double dx = my dx, x1 = my x1, xmax = my xmax;
 		if (scaleFactor != 1) {
@@ -1498,73 +1523,73 @@ static autoPitch Pitch_scaleTime_old (Pitch me, double scaleFactor) {
 				thy frame[i].candidate[1].frequency = f;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Pitch not scaled.");
 	}
 }
 
-autoSound Sound_and_Pitch_changeGender_old (Sound me, Pitch him, double formantRatio, double new_pitch, double pitchRangeFactor, double durationFactor) {
+Sound Sound_and_Pitch_changeGender_old (Sound me, Pitch him, double formantRatio, double new_pitch, double pitchRangeFactor, double durationFactor) {
 	try {
 		double samplingFrequency_old = 1 / my dx;
 
 		if (my ny > 1) {
 			Melder_throw (U"Change Gender works only on mono sounds.");
 		}
-		if (my xmin != his xmin || my xmax != his xmax) {
-			Melder_throw (U"The Pitch and the Sound object must have the same starting times and finishing times.");
-		}
+		if (my xmin != his xmin || my xmax != his xmax) Melder_throw
+			(U"The Pitch and the Sound object must have the same starting times and finishing times.");
 		if (new_pitch < 0) {
 			Melder_throw (U"The new pitch median must not be negative.");
 		}
 
 		autoSound sound = Data_copy (me);
-		Vector_subtractMean (sound.get());
+		Vector_subtractMean (sound.peek());
 
 		if (formantRatio != 1) {
 			// Shift all frequencies (inclusive pitch!)
-			Sound_overrideSamplingFrequency (sound.get(), samplingFrequency_old * formantRatio);
+			Sound_overrideSamplingFrequency (sound.peek(), samplingFrequency_old * formantRatio);
 		}
 
 		autoPitch pitch = Pitch_scaleTime_old (him, 1 / formantRatio);
-		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.get(), pitch.get());
-		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.get());
+		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.peek(), pitch.peek());
+		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.peek());
 
-		double median = Pitch_getQuantile (pitch.get(), 0, 0, 0.5, kPitch_unit_HERTZ);
+		double median = Pitch_getQuantile (pitch.peek(), 0, 0, 0.5, kPitch_unit_HERTZ);
 		if (median != 0 && median != NUMundefined) {
 			// Incorporate pitch shift from overriding the sampling frequency
 			if (new_pitch == 0) {
 				new_pitch = median / formantRatio;
 			}
 			double factor = new_pitch / median;
-			PitchTier_multiplyFrequencies (pitchTier.get(), sound -> xmin, sound -> xmax, factor);
-			PitchTier_modifyRange_old (pitchTier.get(), sound -> xmin, sound -> xmax, pitchRangeFactor, new_pitch);
+			PitchTier_multiplyFrequencies (pitchTier.peek(), sound -> xmin, sound -> xmax, factor);
+			PitchTier_modifyRange_old (pitchTier.peek(), sound -> xmin, sound -> xmax, pitchRangeFactor, new_pitch);
 		} else {
 			Melder_warning (U"There were no voiced segments found.");
 		}
 		autoDurationTier duration = DurationTier_create (my xmin, my xmax);
-		RealTier_addPoint (duration.get(), (my xmin + my xmax) / 2, formantRatio * durationFactor);
+		RealTier_addPoint (duration.peek(), (my xmin + my xmax) / 2, formantRatio * durationFactor);
 
-		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.get(), pulses.get(), pitchTier.get(),
-		                 duration.get(), 1.25 / Pitch_getMinimum (pitch.get(), 0.0, 0.0, kPitch_unit_HERTZ, false));
+		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.peek(), pulses.peek(), pitchTier.peek(),
+		                 duration.peek(), 1.25 / Pitch_getMinimum (pitch.peek(), 0.0, 0.0, kPitch_unit_HERTZ, false));
 
 		// Resample to the original sampling frequency
 
 		if (formantRatio != 1) {
-			thee = Sound_resample (thee.get(), samplingFrequency_old, 10);
+			thee.reset (Sound_resample (thee.peek(), samplingFrequency_old, 10));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from Pitch & Sound.");
 	}
 }
 
-autoSound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio, double new_pitch, double pitchRangeFactor, double durationFactor) {
+Sound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio,
+                              double new_pitch, double pitchRangeFactor, double durationFactor) {
 	try {
 		autoPitch pitch = Sound_to_Pitch (me, 0.8 / fmin, fmin, fmax);
-		autoSound thee = Sound_and_Pitch_changeGender_old (me, pitch.get(), formantRatio,
+		autoSound thee = Sound_and_Pitch_changeGender_old (me, pitch.peek(), formantRatio,
 		                 new_pitch, pitchRangeFactor, durationFactor);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created for gender change.");
 	}
@@ -1612,20 +1637,20 @@ void Sound_draw_btlr (Sound me, Graphics g, double tmin, double tmax, double ami
 	}
 	if (garnish) {
 		if (direction == FROM_BOTTOM_TO_TOP) {
-			if (amin * amax < 0.0) {
-				Graphics_markBottom (g, 0.0, false, true, true, nullptr);
+			if (amin * amax < 0) {
+				Graphics_markBottom (g, 0, 0, 1, 1, NULL);
 			}
 		} else if (direction == FROM_TOP_TO_BOTTOM) {
-			if (amin * amax < 0.0) {
-				Graphics_markTop (g, 0.0, false, true, true, nullptr);
+			if (amin * amax < 0) {
+				Graphics_markTop (g, 0, 0, 1, 1, NULL);
 			}
 		} else if (direction == FROM_RIGHT_TO_LEFT) {
-			if (amin * amax < 0.0) {
-				Graphics_markRight (g, 0.0, false, true, true, nullptr);
+			if (amin * amax < 0) {
+				Graphics_markRight (g, 0, 0, 1, 1, NULL);
 			}
 		} else { //if (direction == FROM_LEFT_TO_RIGHT)
-			if (amin * amax < 0.0) {
-				Graphics_markLeft (g, 0.0, false, true, true, nullptr);
+			if (amin * amax < 0) {
+				Graphics_markLeft (g, 0, 0, 1, 1, NULL);
 			}
 		}
 		Graphics_rectangle (g, xmin, xmax, ymin, ymax);
@@ -1657,7 +1682,8 @@ void Sound_fade (Sound me, int channel, double t, double fadeTime, int inout, in
 	} else if (fadeTime > 0) {
 		t1 = t; t2 = t + fadeTime;
 	} else {
-		Melder_warning (U"You have given a \"Fade time\" of zero seconds. The fade-", fade_inout, U"will not happen.");
+		Melder_warning (U"You have given a \"Fade time\" of zero seconds. The fade-", fade_inout,
+		                U"will not happen.");
 		return;
 	}
 	long i0 = 0, iystart, iyend;
@@ -1699,16 +1725,16 @@ void Sound_fade (Sound me, int channel, double t, double fadeTime, int inout, in
 			if (inout <= 0) {
 				cosp = -cosp;    // fade-in
 			}
-			my z[ichannel][i] *= 0.5 * (1.0 + cosp);
+			my z[ichannel][i] *= 0.5 * (1 + cosp);
 		}
 		if (fadeGlobal) {
 			if (inout <= 0) {
 				for (long i = 1; i < istart; i++) {
-					my z[ichannel][i] = 0.0;
+					my z[ichannel][i] = 0;
 				}
 			} else {
 				for (long i = iend; i < my nx; i++) {
-					my z[ichannel][i] = 0.0;
+					my z[ichannel][i] = 0;
 				}
 			}
 		}
@@ -1716,7 +1742,7 @@ void Sound_fade (Sound me, int channel, double t, double fadeTime, int inout, in
 }
 
 /* 1; rect 2:hamming 3: bartlet 4: welch 5: hanning 6:gaussian */
-autoSound Sound_createFromWindowFunction (double windowDuration, double samplingFrequency, int windowType) {
+Sound Sound_createFromWindowFunction (double windowDuration, double samplingFrequency, int windowType) {
 	try {
 		autoSound me = Sound_createSimple (1, windowDuration, samplingFrequency);
 
@@ -1751,14 +1777,14 @@ autoSound Sound_createFromWindowFunction (double windowDuration, double sampling
 			}
 			my z[1][i] = value;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from window function.");
 	}
 }
 
 /* y[n] = sum(i=-n, i=n, x[n+mi])/(2*n+1) */
-autoSound Sound_localAverage (Sound me, double averagingInterval, int windowType) {
+Sound Sound_localAverage (Sound me, double averagingInterval, int windowType) {
 	try {
 		double windowDuration = windowType == 6 ? 2 * averagingInterval : averagingInterval;
 		autoSound thee = Data_copy (me);
@@ -1767,7 +1793,7 @@ autoSound Sound_localAverage (Sound me, double averagingInterval, int windowType
 		long nswindow2 = window -> nx / 2;
 		long nswindow2p = (window -> nx - 1) / 2; // nx is odd: one sample less in the forward direction
 		if (nswindow2 < 1) {
-			return thee;
+			return thee.transfer();
 		}
 		double *w = window -> z[1];
 
@@ -1784,7 +1810,7 @@ autoSound Sound_localAverage (Sound me, double averagingInterval, int windowType
 				thy z[k][i] = sum / wsum;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Sound (local average) created.");
 	}
@@ -1792,20 +1818,20 @@ autoSound Sound_localAverage (Sound me, double averagingInterval, int windowType
 
 static void _Sound_garnish (Sound me, Graphics g, double tmin, double tmax, double minimum, double maximum) {
 	Graphics_drawInnerBox (g);
-	Graphics_textBottom (g, true, U"Time (s)");
-	Graphics_marksBottom (g, 2, true, true, false);
+	Graphics_textBottom (g, 1, U"Time (s)");
+	Graphics_marksBottom (g, 2, 1, 1, 0);
 	Graphics_setWindow (g, tmin, tmax, minimum - (my ny - 1) * (maximum - minimum), maximum);
-	Graphics_markLeft (g, minimum, true, true, false, nullptr);
-	Graphics_markLeft (g, maximum, true, true, false, nullptr);
+	Graphics_markLeft (g, minimum, 1, 1, 0, NULL);
+	Graphics_markLeft (g, maximum, 1, 1, 0, NULL);
 	if (minimum != 0.0 && maximum != 0.0 && (minimum > 0.0) != (maximum > 0.0)) {
-		Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+		Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 	}
 	if (my ny == 2) {
 		Graphics_setWindow (g, tmin, tmax, minimum, maximum + (my ny - 1) * (maximum - minimum));
-		Graphics_markRight (g, minimum, true, true, false, nullptr);
-		Graphics_markRight (g, maximum, true, true, false, nullptr);
+		Graphics_markRight (g, minimum, 1, 1, 0, NULL);
+		Graphics_markRight (g, maximum, 1, 1, 0, NULL);
 		if (minimum != 0.0 && maximum != 0.0 && (minimum > 0.0) != (maximum > 0.0)) {
-			Graphics_markRight (g, 0.0, true, true, true, nullptr);
+			Graphics_markRight (g, 0.0, 1, 1, 1, NULL);
 		}
 	}
 }
@@ -1861,7 +1887,7 @@ static void Sound_findIntermediatePoint_bs (Sound me, long ichannel, long isampl
 		thy z[channel][1] = my z[channel][isample]; thy z[channel][3] = my z[channel][isample + 1];
 	}
 
-	Formula_compile (interpreter, thee.get(), formula, kFormula_EXPRESSION_TYPE_NUMERIC, true);
+	Formula_compile (interpreter, thee.peek(), formula, kFormula_EXPRESSION_TYPE_NUMERIC, true);
 
 	// bisection to find optimal x and y
 	long istep = 1;
@@ -1919,7 +1945,8 @@ void Sound_drawWhere (Sound me, Graphics g, double tmin, double tmax, double min
 	Graphics_setInner (g);
 	struct Formula_Result result;
 	for (long channel = 1; channel <= my ny; channel ++) {
-		Graphics_setWindow (g, tmin, tmax, minimum - (my ny - channel) * (maximum - minimum), maximum + (channel - 1) * (maximum - minimum));
+		Graphics_setWindow (g, tmin, tmax, minimum - (my ny - channel) * (maximum - minimum),
+			maximum + (channel - 1) * (maximum - minimum));
 		if (str32str (method, U"bars") || str32str (method, U"Bars")) {
 			for (long ix = ixmin; ix <= ixmax; ix ++) {
 				Formula_run (channel, ix, & result);
@@ -2018,7 +2045,8 @@ void Sound_drawWhere (Sound me, Graphics g, double tmin, double tmax, double min
 	}
 }
 
-void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin, double tmax, double minimum, double maximum, double level, bool garnish, long numberOfBisections, const char32 *formula, Interpreter interpreter) {
+void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin, double tmax,
+                       double minimum, double maximum, double level, bool garnish, long numberOfBisections, const char32 *formula, Interpreter interpreter) {
 	try {
 		long ixmin, ixmax;
 		struct Formula_Result result;
@@ -2030,7 +2058,9 @@ void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin
 		Graphics_setColour (g, colour);
 		Graphics_setInner (g);
 		for (long channel = 1; channel <= my ny; channel++) {
-			Graphics_setWindow (g, tmin, tmax, minimum - (my ny - channel) * (maximum - minimum), maximum + (channel - 1) * (maximum - minimum));
+			Graphics_setWindow (g, tmin, tmax,
+			                    minimum - (my ny - channel) * (maximum - minimum),
+			                    maximum + (channel - 1) * (maximum - minimum));
 			bool current, previous = true, fill = false; // fill only when leaving area
 			double tmini = tmin, tmaxi = tmax, xe, ye;
 			long ix = ixmin;
@@ -2075,7 +2105,8 @@ void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin
 	}
 }
 
-void Sounds_paintEnclosed (Sound me, Sound thee, Graphics g, Graphics_Colour colour, double tmin, double tmax, double minimum, double maximum, bool garnish) {
+void Sounds_paintEnclosed (Sound me, Sound thee, Graphics g, Graphics_Colour colour, double tmin, double tmax,
+                           double minimum, double maximum, bool garnish) {
 	try {
 		long ixmin, ixmax, numberOfChannels = my ny > thy ny ? my ny : thy ny;
 		double min1 = minimum, max1 = maximum, tmin1 = tmin, tmax1 = tmax;
@@ -2098,7 +2129,9 @@ void Sounds_paintEnclosed (Sound me, Sound thee, Graphics g, Graphics_Colour col
 		Graphics_setInner (g);
 		for (long channel = 1; channel <= numberOfChannels; channel++) {
 			autoPolygon him = Sounds_to_Polygon_enclosed (me, thee, channel, tmin, tmax, minimum, maximum);
-			Graphics_setWindow (g, tmin, tmax, minimum - (numberOfChannels - channel) * (maximum - minimum), maximum + (channel - 1) * (maximum - minimum));
+			Graphics_setWindow (g, tmin, tmax,
+			                    minimum - (numberOfChannels - channel) * (maximum - minimum),
+			                    maximum + (channel - 1) * (maximum - minimum));
 			Graphics_fillArea (g, his numberOfPoints, &his x[1], &his y[1]);
 		}
 		Graphics_setWindow (g, tmin, tmax, minimum, maximum);
@@ -2114,23 +2147,23 @@ void Sounds_paintEnclosed (Sound me, Sound thee, Graphics g, Graphics_Colour col
 	}
 }
 
-autoSound Sound_copyChannelRanges (Sound me, const char32 *ranges) {
+Sound Sound_copyChannelRanges (Sound me, const char32 *ranges) {
 	try {
 		long numberOfChannels;
-		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (ranges, my ny, & numberOfChannels, nullptr, U"channel", true), 1);
+		autoNUMvector <long> channels (NUMstring_getElementsOfRanges (ranges, my ny, & numberOfChannels, NULL, U"channel", true), 1);
 		autoSound thee = Sound_create (numberOfChannels, my xmin, my xmax, my nx, my dx, my x1);
 		for (long i = 1; i <= numberOfChannels; i++) {
 			double *from = my z[channels[i]], *to = thy z[i];
 			NUMvector_copyElements<double> (from, to, 1, my nx);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": could not extract channels.");
 	}
 }
 
 /* After a script by Ton Wempe */
-static autoSound Sound_removeNoiseBySpectralSubtraction_mono (Sound me, Sound noise, double windowLength) {
+static Sound Sound_removeNoiseBySpectralSubtraction_mono (Sound me, Sound noise, double windowLength) {
 	try {
 		if (my dx != noise -> dx) {
 			Melder_throw (U"The sound and the noise must have the same sampling frequency.");
@@ -2142,10 +2175,10 @@ static autoSound Sound_removeNoiseBySpectralSubtraction_mono (Sound me, Sound no
 		autoSound denoised = Sound_create (1, my xmin, my xmax, my nx, my dx, my x1);
 		autoSound analysisWindow = Sound_createSimple (1, windowLength, samplingFrequency);
 		long windowSamples = analysisWindow -> nx;
-		autoSound noise_copy = Data_copy (noise);
-		Sound_multiplyByWindow (noise_copy.get(), kSound_windowShape_HANNING);
+		autoSound noise_copy = (Sound) Data_copy (noise);
+		Sound_multiplyByWindow (noise_copy.peek(), kSound_windowShape_HANNING);
 		double bandwidth = samplingFrequency / windowSamples;
-		autoLtas noiseLtas = Sound_to_Ltas (noise_copy.get(), bandwidth);
+		autoLtas noiseLtas = Sound_to_Ltas (noise_copy.peek(), bandwidth);
 		autoNUMvector<double> noiseAmplitudes (1, noiseLtas -> nx);
 		for (long i = 1; i <= noiseLtas -> nx; i++) {
 			noiseAmplitudes[i] = pow (10.0, (noiseLtas -> z[1][i] - 94) / 20);
@@ -2165,7 +2198,7 @@ static autoSound Sound_removeNoiseBySpectralSubtraction_mono (Sound me, Sound no
 			for (long j = nsamples + 1; j <= windowSamples; j++) {
 				analysisWindow -> z[1][j] = 0;
 			}
-			autoSpectrum analysisSpectrum = Sound_to_Spectrum (analysisWindow.get(), 0);
+			autoSpectrum analysisSpectrum = Sound_to_Spectrum (analysisWindow.peek(), 0);
 
 			// Suppress noise in the analysisSpectrum by subtracting the noise spectrum
 
@@ -2176,13 +2209,13 @@ static autoSound Sound_removeNoiseBySpectralSubtraction_mono (Sound me, Sound no
 				factor = factor < 1e-6 ? 1e-6 : factor;
 				x[i] *= factor; y[i] *= factor;
 			}
-			autoSound suppressed = Spectrum_to_Sound (analysisSpectrum.get());
-			Sound_multiplyByWindow (suppressed.get(), kSound_windowShape_HANNING);
+			autoSound suppressed = Spectrum_to_Sound (analysisSpectrum.peek());
+			Sound_multiplyByWindow (suppressed.peek(), kSound_windowShape_HANNING);
 			for (long j = 1; j <= nsamples; j++) {
 				denoised -> z[1][istart - 1 + j] += 0.5 * suppressed -> z[1][j]; // 0.5 because of 2-fold oversampling
 			}
 		}
-		return denoised;
+		return denoised.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": noise not subtracted.");
 	}
@@ -2192,7 +2225,7 @@ static void Sound_findNoise (Sound me, double minimumNoiseDuration, double *nois
 	try {
 		*noiseStart = NUMundefined; *noiseEnd = NUMundefined;
 		autoIntensity intensity = Sound_to_Intensity (me, 20, 0.005, 1);
-		double tmin = Vector_getXOfMinimum (intensity.get(), intensity -> xmin, intensity ->  xmax, 1) - minimumNoiseDuration / 2;
+		double tmin = Vector_getXOfMinimum (intensity.peek(), intensity -> xmin, intensity ->  xmax, 1) - minimumNoiseDuration / 2;
 		double tmax = tmin + minimumNoiseDuration;
 		if (tmin < my xmin) {
 			tmin = my xmin; tmax = tmin + minimumNoiseDuration;
@@ -2209,24 +2242,24 @@ static void Sound_findNoise (Sound me, double minimumNoiseDuration, double *nois
 	}
 }
 
-autoSound Sound_removeNoise (Sound me, double noiseStart, double noiseEnd, double windowLength, double minBandFilterFrequency, double maxBandFilterFrequency, double smoothing, int method) {
+Sound Sound_removeNoise (Sound me, double noiseStart, double noiseEnd, double windowLength, double minBandFilterFrequency, double maxBandFilterFrequency, double smoothing, int method) {
 	try {
 		autoSound filtered = Sound_filter_passHannBand (me, minBandFilterFrequency, maxBandFilterFrequency, smoothing);
 		autoSound denoised = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
 		bool findNoise = noiseEnd <= noiseStart;
 		double minimumNoiseDuration = 2 * windowLength;
 		for (long ichannel = 1; ichannel <= my ny; ichannel++) {
-			autoSound denoisedi, channeli = Sound_extractChannel (filtered.get(), ichannel);
+			autoSound denoisedi, channeli = Sound_extractChannel (filtered.peek(), ichannel);
 			if (findNoise) {
-				Sound_findNoise (channeli.get(), minimumNoiseDuration, &noiseStart, &noiseEnd);
+				Sound_findNoise (channeli.peek(), minimumNoiseDuration, &noiseStart, &noiseEnd);
 			}
-			autoSound noise = Sound_extractPart (channeli.get(), noiseStart, noiseEnd, kSound_windowShape_RECTANGULAR, 1.0, false);
+			autoSound noise = Sound_extractPart (channeli.peek(), noiseStart, noiseEnd, kSound_windowShape_RECTANGULAR, 1.0, false);
 			if (method == 1) { // spectral subtraction
-				denoisedi = Sound_removeNoiseBySpectralSubtraction_mono (filtered.get(), noise.get(), windowLength);
+				denoisedi.reset (Sound_removeNoiseBySpectralSubtraction_mono (filtered.peek(), noise.peek(), windowLength));
 			}
 			NUMvector_copyElements<double> (denoisedi -> z[1], denoised -> z[ichannel], 1, my nx);
 		}
-		return denoised;
+		return denoised.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not denoised.");
 	}
@@ -2235,9 +2268,9 @@ autoSound Sound_removeNoise (Sound me, double noiseStart, double noiseEnd, doubl
 void Sound_playAsFrequencyShifted (Sound me, double shiftBy, double newSamplingFrequency, long precision) {
 	try {
 		autoSpectrum spectrum = Sound_to_Spectrum (me, 1);
-		autoSpectrum shifted = Spectrum_shiftFrequencies (spectrum.get(), shiftBy, newSamplingFrequency / 2, precision);
-		autoSound thee = Spectrum_to_Sound (shifted.get());
-		Sound_playPart (thee.get(), my xmin, my xmax, nullptr, nullptr);
+		autoSpectrum shifted = Spectrum_shiftFrequencies (spectrum.peek(), shiftBy, newSamplingFrequency / 2, precision);
+		autoSound thee = Spectrum_to_Sound (shifted.peek());
+		Sound_playPart (thee.peek(), my xmin, my xmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U" not played with frequencies shifted.");
 	}
diff --git a/dwtools/Sound_extensions.h b/dwtools/Sound_extensions.h
index 53f54af..09d8354 100644
--- a/dwtools/Sound_extensions.h
+++ b/dwtools/Sound_extensions.h
@@ -2,7 +2,7 @@
 #define _Sound_extensions_h_
 /* Sound_extensions.h
  *
- * Copyright (C) 1993-2012,2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,19 +19,25 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020813 GPL header
+ djmw 20121023 Latest modification
+*/
+
+
 #include "Sound.h"
 #include "Pitch.h"
 #include "Collection.h"
 #include "PointProcess.h"
 #include "TextGrid.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 int Sound_writeToNistAudioFile (Sound me, MelderFile file);
 
-autoSound Sound_readFromCmuAudioFile (MelderFile file);
+Sound Sound_readFromCmuAudioFile (MelderFile file);
 
 /* only 16 bit signed has been tested !! */
-autoSound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsCoding,
+Sound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsCoding,
 	int littleEndian, int unSigned, long skipNBytes, double samplingFrequency);
 /* Reads a Sound from a raw file:
  *	fileName	: name of the file
@@ -44,11 +50,12 @@ autoSound Sound_readFromRawFile (MelderFile file, const char *format, int nBitsC
  *	skipNBytes	: start reading after this number of bytes (skipNBytes >= 0 )
  */
 
-autoSound Sound_readFromDialogicADPCMFile (MelderFile file, double sampleRate);
+Sound Sound_readFromDialogicADPCMFile (MelderFile file, double sampleRate);
 /*
 */
 
-void Sound_writeToRawFile (Sound me, MelderFile file, const char *format, int littleEndian, int nBitsCoding, int unSigned);
+void Sound_writeToRawFile (Sound me, MelderFile file, const char *format, int littleEndian,
+	int nBitsCoding, int unSigned);
 
 void Sound_into_Sound (Sound me, Sound to, double startTime);
 /* precondition: my dx == to->dx (equal sampling times */
@@ -66,36 +73,38 @@ void Sound_preEmphasis (Sound me, double preEmphasisFrequency);
 void Sound_deEmphasis (Sound me, double preEmphasisFrequency);
 /*	for (i=2; i <= my nx; i++ ) my z[1][i] += deEmphasis * my z[1][i-1]; */
 
-autoSound Sound_createGaussian (double windowDuration, double samplingFrequency);
-
-autoSound Sound_createHamming (double windowDuration, double samplingFrequency);
+Sound Sound_createGaussian (double windowDuration, double samplingFrequency);
+Sound Sound_createHamming (double windowDuration, double samplingFrequency);
 
-autoSound Sound_createSimpleToneComplex (double minimumTime, double maximumTime, double samplingFrequency,
-	double firstFrequency, long numberOfComponents, double frequencyDistance, int scaleAmplitudes);
+Sound Sound_createSimpleToneComplex (double minimumTime, double maximumTime, double samplingFrequency,
+	double firstFrequency, long numberOfComponents, double frequencyDistance,
+	int scaleAmplitudes);
 
-autoSound Sound_createMistunedHarmonicComplex (double minimumTime, double maximumTime, double samplingFrequency,
-	double firstFrequency, long numberOfComponents, long mistunedComponent, double mistuningFraction, int scaleAmplitudes);
+Sound Sound_createMistunedHarmonicComplex (double minimumTime, double maximumTime, double samplingFrequency,
+	double firstFrequency, long numberOfComponents, long mistunedComponent,
+	double mistuningFraction, int scaleAmplitudes);
 
-autoSound Sound_createGammaTone (double minimumTime, double maximumTime, double samplingFrequency,
-	long gamma, double frequency, double bandwidth, double initialPhase, double addition, int scaleAmplitudes);
+Sound Sound_createGammaTone (double minimumTime, double maximumTime, double samplingFrequency,
+	long gamma, double frequency, double bandwidth, double initialPhase, double addition,
+	int scaleAmplitudes);
 
-autoSound Sound_createShepardTone (double minimumTime, double maximumTime, double samplingFrequency,
+Sound Sound_createShepardTone (double minimumTime, double maximumTime, double samplingFrequency,
 	double lowestFrequency, long numberOfComponents, double frequencyChange, double amplitudeRange);
 
-autoSound Sound_createShepardToneComplex (double minimumTime, double maximumTime,
+Sound Sound_createShepardToneComplex (double minimumTime, double maximumTime,
 	double samplingFrequency, double lowestFrequency, long numberOfComponents,
 	double frequencyChange_st, double amplitudeRange, double octaveShiftFraction);
 
-autoSound Sound_createPattersonWightmanTone (double minimumTime, double maximumTime, double samplingFrequency,
+Sound Sound_createPattersonWightmanTone (double minimumTime, double maximumTime, double samplingFrequency,
 	double baseFrequency, double frequencyShiftRatio, long numberOfComponents);
 
-autoSound Sound_createPlompTone (double minimumTime, double maximumTime, double samplingFrequency,
+Sound Sound_createPlompTone (double minimumTime, double maximumTime, double samplingFrequency,
 	double baseFrequency, double frequencyFraction, long m);
 
-autoSound Sound_createFromWindowFunction (double effectiveTime, double samplingFrequency, int windowType);
+Sound Sound_createFromWindowFunction (double effectiveTime, double samplingFrequency, int windowType);
 /* 1; rect 2:hamming 3: bartlet 4: welch 5: hanning 6:gaussian */
 
-autoSound Sound_filterByGammaToneFilter4 (Sound me, double centre_frequency, double bandwidth);
+Sound Sound_filterByGammaToneFilter4 (Sound me, double centre_frequency, double bandwidth);
 
 void Sounds_multiply (Sound me, Sound thee);
 /* precondition: my nx = thy nx */
@@ -108,7 +117,7 @@ double Sound_correlateParts (Sound me, double t1, double t2, double duration);
 void Sound_localMean (Sound me, double fromTime, double toTime, double *mean);
 void Sound_localPeak (Sound me, double fromTime, double toTime, double ref, double *peak);
 
-autoSound Sound_localAverage (Sound me, double averaginginterval, int windowType);
+Sound Sound_localAverage (Sound me, double averaginginterval, int windowType);
 /* y[n] = sum(i=-n, i=n, x[n+i])/(2*n+1) */
 
 double Sound_power (Sound me);
@@ -132,26 +141,30 @@ void Sound_fade (Sound me, int channel, double t, double fadeTime, int inout, in
 #define FROM_BOTTOM_TO_TOP 2
 #define FROM_TOP_TO_BOTTOM 3
 
-void Sound_draw_btlr (Sound me, Graphics g, double tmin, double tmax, double amin, double amax, int direction, int garnish);
+void Sound_draw_btlr (Sound me, Graphics g, double tmin, double tmax, double amin, double amax,
+	int direction, int garnish);
 /* direction is one of the macros's FROM_LEFT_TO_RIGHT... */
 
 void Sound_drawWhere (Sound me, Graphics g, double tmin, double tmax, double minimum, double maximum,
 	bool garnish, const char32 *method, long numberOfBisections, const char32 *formula, Interpreter interpreter);
 
-void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin, double tmax, double minimum, double maximum, double level, bool garnish, long numberOfBisections, const char32 *formula, Interpreter interpreter);
-
+void Sound_paintWhere (Sound me, Graphics g, Graphics_Colour colour, double tmin, double tmax,
+	double minimum, double maximum, double level, bool garnish, long numberOfBisections, const char32 *formula, Interpreter interpreter);
 void Sounds_paintEnclosed (Sound me, Sound thee, Graphics g, Graphics_Colour colour, double tmin, double tmax,
 	double minimum, double maximum, bool garnish);
 
-autoSound Sound_changeGender (Sound me, double pitchMin, double pitchMax, double pitchRatio, double formantFrequenciesRatio, double durationRatio);
+Sound Sound_changeGender (Sound me, double pitchMin, double pitchMax, double pitchRatio,
+	double formantFrequenciesRatio, double durationRatio);
+Sound Sound_and_Pitch_changeGender (Sound me, Pitch him, double pitchRatio,
+	double formantFrequenciesRatio, double durationRatio);
 
-autoSound Sound_and_Pitch_changeGender (Sound me, Pitch him, double pitchRatio, double formantFrequenciesRatio, double durationRatio);
-
-autoSound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio, double new_pitch, double pitchRangeFactor, double durationFactor);
+Sound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio,
+	double new_pitch, double pitchRangeFactor, double durationFactor);
 
-autoSound Sound_and_Pitch_changeGender_old (Sound me, Pitch him, double formantRatio, double new_pitch, double pitchRangeFactor, double durationFactor);
+Sound Sound_and_Pitch_changeGender_old (Sound me, Pitch him, double formantRatio,
+	double new_pitch, double pitchRangeFactor, double durationFactor);
 
-autoPointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, double dt);
+PointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, double dt);
 /*
 	Marks jumps in the signal where the amplitude changes more than 'minimumJump'
 	within time dt
@@ -159,44 +172,42 @@ autoPointProcess Sound_to_PointProcess_getJumps (Sound me, double minimumJump, d
 
 void Sound_filter_part_formula (Sound me, double t1, double t2, const char32 *formula, Interpreter interpreter);
 
-autoSound Sound_changeSpeaker (Sound me, double pitchMin, double pitchMax,
+Sound Sound_changeSpeaker (Sound me, double pitchMin, double pitchMax,
 	double formantMultiplier, // > 0
 	double pitchMultiplier, // > 0
 	double pitchRangeMultiplier, // any number
 	double durationMultiplier); // > 0
 
-autoSound Sound_and_Pitch_changeSpeaker (Sound me, Pitch him,
+Sound Sound_and_Pitch_changeSpeaker (Sound me, Pitch him,
 	double formantMultiplier, // > 0
 	double pitchMultiplier, // > 0
 	double pitchRangeMultiplier, // any number
 	double durationMultiplier); // > 0
 
 /* Outphased */
-autoSound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio,
+Sound Sound_changeGender_old (Sound me, double fmin, double fmax, double formantRatio,
 	double new_pitch, double pitchRangeFactor, double durationFactor);
 
-autoTextGrid Sound_to_TextGrid_detectSilences (Sound me, double minPitch, double timeStep,
+TextGrid Sound_to_TextGrid_detectSilences (Sound me, double minPitch, double timeStep,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration,
 	const char32 *silentLabel, const char32 *soundingLabel);
-
 void Sound_getStartAndEndTimesOfSounding (Sound me, double minPitch, double timeStep,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double *t1, double *t2);
 
-autoSound Sound_and_IntervalTier_cutPartsMatchingLabel (Sound me, IntervalTier thee, const char32 *match);
+Sound Sound_and_IntervalTier_cutPartsMatchingLabel (Sound me, IntervalTier thee, const char32 *match);
 /* Cut intervals that match the label from the sound. The starting time of the new sound is
  * (1) my xmin if the first interval is not matching
  * (2) the end time of the first interval if matching
  */
 
-autoSound Sound_trimSilencesAtStartAndEnd (Sound me, double trimDuration, double minPitch, double timeStep,
+Sound Sound_trimSilencesAtStartAndEnd (Sound me, double trimDuration, double minPitch, double timeStep,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double *t1, double *t2);
+Sound Sound_trimSilences (Sound me, double trimDuration, bool onlyAtStartAndEnd, double minPitch, double timeStep,
+    double silenceThreshold, double minSilenceDuration, double minSoundingDuration, TextGrid *tg, const char32 *trimLabel);
 
-autoSound Sound_trimSilences (Sound me, double trimDuration, bool onlyAtStartAndEnd, double minPitch, double timeStep,
-    double silenceThreshold, double minSilenceDuration, double minSoundingDuration, autoTextGrid *tg, const char32 *trimLabel);
-
-autoSound Sound_copyChannelRanges (Sound me, const char32 *ranges);
+Sound Sound_copyChannelRanges (Sound me, const char32 *ranges);
 
-autoSound Sound_removeNoise (Sound me, double noiseStart, double noiseEnd, double windowLength, double minBandFilterFrequency, double maxBandFilterFrequency, double smoothing, int method);
+Sound Sound_removeNoise (Sound me, double noiseStart, double noiseEnd, double windowLength, double minBandFilterFrequency, double maxBandFilterFrequency, double smoothing, int method);
 
 void Sound_playAsFrequencyShifted (Sound me, double shiftBy, double newSamplingFrequency, long precision);
 
diff --git a/dwtools/Sound_to_MFCC.h b/dwtools/Sound_to_DTW.h
similarity index 88%
copy from dwtools/Sound_to_MFCC.h
copy to dwtools/Sound_to_DTW.h
index 35bb0a4..f664be8 100644
--- a/dwtools/Sound_to_MFCC.h
+++ b/dwtools/Sound_to_DTW.h
@@ -2,7 +2,7 @@
 #define _Sound_to_MFCC_h_
 /* Sound_to_MFCC.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "MFCC.h"
 #include "Sound.h"
 
-autoMFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth,
+MFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth,
 	double dt, double f1_mel, double fmax_mel, double df_mel);
 
 #endif /* _Sound_to_MFCC_h_ */
diff --git a/dwtools/Sound_to_MFCC.cpp b/dwtools/Sound_to_MFCC.cpp
index c28fde9..efd038c 100644
--- a/dwtools/Sound_to_MFCC.cpp
+++ b/dwtools/Sound_to_MFCC.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_MFCC.cpp
  *
- * Copyright (C) 1993-2011, 2014-2015 David Weenink
+ * Copyright (C) 1993-2011, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,11 +25,11 @@
 #include "Sound_to_MFCC.h"
 #include "Sound_and_Spectrogram_extensions.h"
 
-autoMFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
+MFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth, double dt, double f1_mel, double fmax_mel, double df_mel) {
 	try {
 		autoMelSpectrogram mf = Sound_to_MelSpectrogram (me, analysisWidth, dt, f1_mel, fmax_mel, df_mel);
-		autoMFCC mfcc = MelSpectrogram_to_MFCC (mf.get(), numberOfCoefficients);
-		return mfcc;
+		autoMFCC mfcc = MelSpectrogram_to_MFCC (mf.peek(), numberOfCoefficients);
+		return mfcc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no MFCC created.");
 	}
diff --git a/dwtools/Sound_to_MFCC.h b/dwtools/Sound_to_MFCC.h
index 35bb0a4..f664be8 100644
--- a/dwtools/Sound_to_MFCC.h
+++ b/dwtools/Sound_to_MFCC.h
@@ -2,7 +2,7 @@
 #define _Sound_to_MFCC_h_
 /* Sound_to_MFCC.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "MFCC.h"
 #include "Sound.h"
 
-autoMFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth,
+MFCC Sound_to_MFCC (Sound me, long numberOfCoefficients, double analysisWidth,
 	double dt, double f1_mel, double fmax_mel, double df_mel);
 
 #endif /* _Sound_to_MFCC_h_ */
diff --git a/dwtools/Sound_to_Pitch2.cpp b/dwtools/Sound_to_Pitch2.cpp
index 04306bb..c790d30 100644
--- a/dwtools/Sound_to_Pitch2.cpp
+++ b/dwtools/Sound_to_Pitch2.cpp
@@ -70,7 +70,7 @@ static void spec_smoooth_SHS (double a[], long n) {
 	}
 }
 
-autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
+Pitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
                           double maximumFrequency, double ceiling, long maxnSubharmonics, long maxnCandidates,
                           double compressionFactor, long nPointsPerOctave) {
 	try {
@@ -98,10 +98,11 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 
 		autoSound sound = Sound_resample (me, newSamplingFrequency, 50);
 		long numberOfFrames;
-		Sampled_shortTermAnalysis (sound.get(), windowDuration, timeStep, &numberOfFrames, &firstTime);
+		Sampled_shortTermAnalysis (sound.peek(), windowDuration, timeStep, &numberOfFrames, &firstTime);
 		autoSound frame = Sound_createSimple (1, frameDuration, newSamplingFrequency);
 		autoSound hamming = Sound_createHamming (nx / newSamplingFrequency, newSamplingFrequency);
-		autoPitch thee = Pitch_create (my xmin, my xmax, numberOfFrames, timeStep, firstTime, ceiling, maxnCandidates);
+		autoPitch thee = Pitch_create (my xmin, my xmax, numberOfFrames, timeStep, firstTime,
+		                               ceiling, maxnCandidates);
 		autoNUMvector<double> cc (1, numberOfFrames);
 		autoNUMvector<double> specAmp (1, nfft2);
 		autoNUMvector<double> fl2 (1, nfft2);
@@ -115,8 +116,8 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 		// Compute the absolute value of the globally largest amplitude w.r.t. the global mean.
 
 		double globalMean, globalPeak;
-		Sound_localMean (sound.get(), sound -> xmin, sound -> xmax, &globalMean);
-		Sound_localPeak (sound.get(), sound -> xmin, sound -> xmax, globalMean, &globalPeak);
+		Sound_localMean (sound.peek(), sound -> xmin, sound -> xmax, &globalMean);
+		Sound_localPeak (sound.peek(), sound -> xmin, sound -> xmax, globalMean, &globalPeak);
 
 		/*
 			For the cubic spline interpolation we need the frequencies on an octave
@@ -126,7 +127,7 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 		*/
 
 		for (long i = 2; i <= nfft2; i++) {
-			fl2[i] = NUMlog2 ((i - 1) * df);
+			fl2[i] = NUMlog2 ( (i - 1) * df);
 		}
 		fl2[1] = 2 * fl2[2] - fl2[3];
 
@@ -134,7 +135,7 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 		// the frequency weighting function.
 
 		for (long i = 1; i <= nFrequencyPoints; i++) {
-			arctg[i] = 0.5 + atan (3.0 * (i - atans) / nPointsPerOctave) / NUMpi;
+			arctg[i] = 0.5 + atan (3 * (i - atans) / nPointsPerOctave) / NUMpi;
 		}
 
 		// Perform the analysis on all frames.
@@ -142,22 +143,23 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 		for (long i = 1; i <= numberOfFrames; i++) {
 			Pitch_Frame pitchFrame = &thy frame[i];
 			double hm = 1, f0, pitch_strength, localMean, localPeak;
-			double tmid = Sampled_indexToX (thee.get(), i); /* The center of this frame */
+			double tmid = Sampled_indexToX (thee.peek(), i); /* The center of this frame */
 			long nx_tmp = frame -> nx;
 
 			// Copy a frame from the sound, apply a hamming window. Get local 'intensity'
 
+
 			frame -> nx = nx; /*begin vies */
-			Sound_into_Sound (sound.get(), frame.get(), tmid - halfWindow);
-			Sounds_multiply (frame.get(), hamming.get());
-			Sound_localMean (sound.get(), tmid - 3 * halfWindow, tmid + 3 * halfWindow, &localMean);
-			Sound_localPeak (sound.get(), tmid - halfWindow, tmid + halfWindow, localMean, &localPeak);
+			Sound_into_Sound (sound.peek(), frame.peek(), tmid - halfWindow);
+			Sounds_multiply (frame.peek(), hamming.peek());
+			Sound_localMean (sound.peek(), tmid - 3 * halfWindow, tmid + 3 * halfWindow, &localMean);
+			Sound_localPeak (sound.peek(), tmid - halfWindow, tmid + halfWindow, localMean, &localPeak);
 			pitchFrame -> intensity = localPeak > globalPeak ? 1 : localPeak / globalPeak;
 			frame -> nx = nx_tmp; /* einde vies */
 
 			// Get the Fourier spectrum.
 
-			autoSpectrum spec = Sound_to_Spectrum (frame.get(), 1);
+			autoSpectrum spec = Sound_to_Spectrum (frame.peek(), 1);
 			Melder_assert (spec->nx == nfft2);
 
 			// From complex spectrum to amplitude spectrum.
@@ -243,7 +245,7 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 
 			Pitch_Frame_getPitch (pitchFrame, &f0, &pitch_strength);
 			if (f0 > 0) {
-				cc[i] = Sound_correlateParts (sound.get(), tmid - 1.0 / f0, tmid, 1.0 / f0);
+				cc[i] = Sound_correlateParts (sound.peek(), tmid - 1.0 / f0, tmid, 1.0 / f0);
 			}
 		}
 
@@ -254,18 +256,20 @@ autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 		for (long i = 1; i <= numberOfFrames; i++) {
 			Pitch_Frame_resizeStrengths (& thy frame[i], cc[i], vuvCriterium);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Pitch (shs) created.");
 	}
 }
 
-autoPitch Sound_to_Pitch_SPINET (Sound me, double timeStep, double windowDuration, double minimumFrequencyHz, double maximumFrequencyHz, long nFilters, double ceiling, int maxnCandidates) {
+Pitch Sound_to_Pitch_SPINET (Sound me, double timeStep, double windowDuration,
+                             double minimumFrequencyHz, double maximumFrequencyHz, long nFilters,
+                             double ceiling, int maxnCandidates) {
 	try {
 		autoSPINET him = Sound_to_SPINET (me, timeStep, windowDuration, minimumFrequencyHz,
 		                                  maximumFrequencyHz, nFilters, 0.4, 0.6);
-		autoPitch thee = SPINET_to_Pitch (him.get(), 0.15, ceiling, maxnCandidates);
-		return thee;
+		autoPitch thee = SPINET_to_Pitch (him.peek(), 0.15, ceiling, maxnCandidates);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Pitch (SPINET) created.");
 	}
diff --git a/dwtools/Sound_to_Pitch2.h b/dwtools/Sound_to_Pitch2.h
index a908b42..c4d2117 100644
--- a/dwtools/Sound_to_Pitch2.h
+++ b/dwtools/Sound_to_Pitch2.h
@@ -2,7 +2,7 @@
 #define _Sound_to_Pitch2_h_
 /* Sound_to_Pitch2.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,11 +28,11 @@
 #include "Sound_extensions.h"
 #include "Pitch.h"
 
-autoPitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
+Pitch Sound_to_Pitch_shs (Sound me, double timeStep, double minimumPitch,
 	double maximumFrequency, double ceiling, long maxnSubharmonics, long maxnCandidates,
 	double compressionFactor, long nDivisionsPerOctave);
 
-autoPitch Sound_to_Pitch_SPINET (Sound me, double timeStep, double windowDuration,
+Pitch Sound_to_Pitch_SPINET (Sound me, double timeStep, double windowDuration,
 	double minimumFrequencyHz, double maximumFrequencyHz, long nFilters,
 	double ceiling, int maxnCandidates);
 
diff --git a/dwtools/Sound_to_SPINET.cpp b/dwtools/Sound_to_SPINET.cpp
index 13f8168..f38a275 100644
--- a/dwtools/Sound_to_SPINET.cpp
+++ b/dwtools/Sound_to_SPINET.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_SPINET.cpp
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,7 +38,9 @@ static double fgamma (double x, long n) {
 	0 < minimumFrequencyHz < maximumFrequencyHz
 */
 
-autoSPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration, double minimumFrequencyHz, double maximumFrequencyHz, long nFilters, double excitationErbProportion, double inhibitionErbProportion) {
+SPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration,
+                        double minimumFrequencyHz, double maximumFrequencyHz, long nFilters,
+                        double excitationErbProportion, double inhibitionErbProportion) {
 	try {
 		double firstTime, b = 1.02, samplingFrequency = 1 / my dx;
 
@@ -51,7 +53,8 @@ autoSPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration, do
 
 		long numberOfFrames;
 		Sampled_shortTermAnalysis (me, windowDuration, timeStep, &numberOfFrames, &firstTime);
-		autoSPINET thee = SPINET_create (my xmin, my xmax, numberOfFrames, timeStep, firstTime, minimumFrequencyHz, maximumFrequencyHz, nFilters, excitationErbProportion, inhibitionErbProportion);
+		autoSPINET thee = SPINET_create (my xmin, my xmax, numberOfFrames, timeStep, firstTime,
+		                                 minimumFrequencyHz, maximumFrequencyHz, nFilters, excitationErbProportion, inhibitionErbProportion);
 		autoSound window = Sound_createGaussian (windowDuration, samplingFrequency);
 		autoSound frame = Sound_createSimple (1, windowDuration, samplingFrequency);
 		autoNUMvector<double> f (1, nFilters);
@@ -74,15 +77,16 @@ autoSPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration, do
 			double gammaMaxAmplitude = pow ( (thy gamma - 1) / (NUMe * bw[i]), (thy gamma - 1)); // tgammaMax
 			double timeCorrection = tgammaMax - windowDuration / 2;
 
-			autoSound gammaTone = Sound_createGammaTone (0, 0.1, samplingFrequency, thy gamma, b, f[i], 0, 0, 0);
-			autoSound filtered = Sounds_convolve (me, gammaTone.get(), kSounds_convolve_scaling_SUM, kSounds_convolve_signalOutsideTimeDomain_ZERO);
+			autoSound gammaTone = Sound_createGammaTone (0, 0.1, samplingFrequency,
+			                      thy gamma, b, f[i], 0, 0, 0);
+			autoSound filtered = Sounds_convolve (me, gammaTone.peek(), kSounds_convolve_scaling_SUM, kSounds_convolve_signalOutsideTimeDomain_ZERO);
 
 			// To energy measure: weigh with broad-band transfer function
 
 			for (long j = 1; j <= numberOfFrames; j++) {
-				Sound_into_Sound (filtered.get(), frame.get(), Sampled_indexToX (thee.get(), j) + timeCorrection);
-				Sounds_multiply (frame.get(), window.get());
-				thy y[i][j] = Sound_power (frame.get()) * bb / gammaMaxAmplitude;
+				Sound_into_Sound (filtered.peek(), frame.peek(), Sampled_indexToX (thee.peek(), j) + timeCorrection);
+				Sounds_multiply (frame.peek(), window.peek());
+				thy y[i][j] = Sound_power (frame.peek()) * bb / gammaMaxAmplitude;
 			}
 			Melder_progress ( (double) i / nFilters, U"SPINET: filter ", i, U" from ", nFilters, U".");
 		}
@@ -110,7 +114,7 @@ autoSPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration, do
 				}
 				thy s[i][j] = a > 0 ? a : 0;
 			}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U":  no SPINET created.");
 	}
diff --git a/dwtools/Sound_to_SPINET.h b/dwtools/Sound_to_SPINET.h
index 684b42b..0e8bca4 100644
--- a/dwtools/Sound_to_SPINET.h
+++ b/dwtools/Sound_to_SPINET.h
@@ -2,7 +2,7 @@
 #define _Sound_to_SPINET_h_
 /* Sound_to_SPINET.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "SPINET.h"
 #include "Sound_extensions.h"
 
-autoSPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration,
+SPINET Sound_to_SPINET (Sound me, double timeStep, double windowDuration,
 	double minimumFrequencyHz, double maximumFrequencyHz, long nFilters,
 	double excitationErbProportion, double inhibitionErbProportion);
 
diff --git a/dwtools/Sounds_to_DTW.cpp b/dwtools/Sounds_to_DTW.cpp
index dee1cb9..5f10a73 100644
--- a/dwtools/Sounds_to_DTW.cpp
+++ b/dwtools/Sounds_to_DTW.cpp
@@ -1,6 +1,6 @@
 /* Sounds_to_DTW.cpp
  *
- * Copyright (C) 2012, 2015 David Weenink
+ * Copyright (C) 2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,17 +25,17 @@
 #include "Sounds_to_DTW.h"
 #include "CCs_to_DTW.h"
 
-autoDTW Sounds_to_DTW (Sound me, Sound thee, double analysisWidth, double dt, double band, int slope) {
+DTW Sounds_to_DTW (Sound me, Sound thee, double analysisWidth, double dt, double band, int slope) {
 	try {
         long numberOfCoefficients = 12;
         double fmin_mel = 100, df_mel = 100, fmax_mel = 0.0;
 		autoMFCC mfcc_me = Sound_to_MFCC (me, numberOfCoefficients, analysisWidth, dt, fmin_mel, fmax_mel, df_mel);
 		autoMFCC mfcc_thee = Sound_to_MFCC (thee, numberOfCoefficients, analysisWidth, dt, fmin_mel, fmax_mel, df_mel);
         double wc = 1, wle = 0, wr = 0, wer = 0, dtr = 0;
-        autoDTW him = CCs_to_DTW (mfcc_me.get(), mfcc_thee.get(), wc, wle, wr, wer, dtr);
-        autoPolygon p = DTW_to_Polygon (him.get(), band, slope);
-        DTW_and_Polygon_findPathInside (him.get(), p.get(), slope, 0);
-		return him;
+        autoDTW him = CCs_to_DTW (mfcc_me.peek(), mfcc_thee.peek(), wc, wle, wr, wer, dtr);
+        autoPolygon p = DTW_to_Polygon (him.peek(), band, slope);
+        DTW_and_Polygon_findPathInside (him.peek(), p.peek(), slope, 0);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no DTW created.");
 	}
diff --git a/dwtools/Sounds_to_DTW.h b/dwtools/Sounds_to_DTW.h
index 1601775..c3ae5af 100644
--- a/dwtools/Sounds_to_DTW.h
+++ b/dwtools/Sounds_to_DTW.h
@@ -2,7 +2,7 @@
 #define _Sounds_to_DTW_h_
 /* Sounds_to_DTW.h
  *
- * Copyright (C) 2012, 2014, 2015 David Weenink
+ * Copyright (C) 2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,6 +27,6 @@
 #include "Sound.h"
 
 
-autoDTW Sounds_to_DTW (Sound me, Sound thee, double analysisWidth, double dt, double band, int slope);
+DTW Sounds_to_DTW (Sound me, Sound thee, double analysisWidth, double dt, double band, int slope);
 
 #endif /* _Sounds_to_DTW_h_ */
diff --git a/dwtools/Spectrogram_extensions.cpp b/dwtools/Spectrogram_extensions.cpp
index 13eac71..4b0860e 100644
--- a/dwtools/Spectrogram_extensions.cpp
+++ b/dwtools/Spectrogram_extensions.cpp
@@ -1,6 +1,6 @@
 /* Spectrogram_extensions.cpp
  *
- * Copyright (C) 2014-2016 David Weenink
+ * Copyright (C) 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@
 Thing_implement (BandFilterSpectrogram, Matrix, 2);
 
 void structBandFilterSpectrogram :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -79,7 +79,7 @@ Thing_implement (BarkSpectrogram, BandFilterSpectrogram, 1);
 
 // dbs = scaleFactor * log10 (value/reference);
 // if (dbs < floor_db) { dbs = floor_dB }
-autoMatrix Spectrogram_to_Matrix_dB (Spectrogram me, double reference, double scaleFactor, double floor_dB) {
+Matrix Spectrogram_to_Matrix_dB (Spectrogram me, double reference, double scaleFactor, double floor_dB) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		for (long i = 1; i <= my ny; i++) {
@@ -96,7 +96,7 @@ autoMatrix Spectrogram_to_Matrix_dB (Spectrogram me, double reference, double sc
 				thy z[i][j] = val;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix with dB values not created.");
 	}
@@ -147,7 +147,7 @@ void BandFilterSpectrogram_into_CC (BandFilterSpectrogram me, CC thee, long numb
 	autoNUMvector<double> y (1, my ny);
 	numberOfCoefficients = numberOfCoefficients > my ny - 1 ? my ny - 1 : numberOfCoefficients;
 	Melder_assert (numberOfCoefficients > 0);
-	// 20130220 new interpretation of maximumNumberOfCoefficients: necessary for the inverse transform 
+	// 20130220 new interpretation of maximumNumberOfCoefficients necessary for inverse transform 
 	for (long frame = 1; frame <= my nx; frame++) {
 		CC_Frame ccframe = (CC_Frame) & thy frame[frame];
 		for (long i = 1; i <= my ny; i++) {
@@ -183,7 +183,7 @@ void CC_into_BandFilterSpectrogram (CC me, BandFilterSpectrogram thee, long firs
 	}
 }
 
-autoMelSpectrogram MFCC_to_MelSpectrogram (MFCC me, long first, long last, bool c0) {
+MelSpectrogram MFCC_to_MelSpectrogram (MFCC me, long first, long last, bool c0) {
 	try {
 		if (first == 0 && last == 0) { // defaults
 			first = 1; last = my maximumNumberOfCoefficients;
@@ -199,14 +199,14 @@ autoMelSpectrogram MFCC_to_MelSpectrogram (MFCC me, long first, long last, bool
 		}
 		double df = (my fmax - my fmin) / (my maximumNumberOfCoefficients + 1 + 1);
 		autoMelSpectrogram thee = MelSpectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my fmin, my fmax, my maximumNumberOfCoefficients + 1, df, df);
-		CC_into_BandFilterSpectrogram (me, thee.get(), first, last, c0);
-		return thee;
+		CC_into_BandFilterSpectrogram (me, thee.peek(), first, last, c0);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"MelSpectrogram not created.");
 	}
 }
 
-autoMFCC MelSpectrogram_to_MFCC (MelSpectrogram me, long numberOfCoefficients) {
+MFCC MelSpectrogram_to_MFCC (MelSpectrogram me, long numberOfCoefficients) {
 	try {
 		if (numberOfCoefficients <= 0) {
 			numberOfCoefficients = my ny - 1;
@@ -214,18 +214,18 @@ autoMFCC MelSpectrogram_to_MFCC (MelSpectrogram me, long numberOfCoefficients) {
 		numberOfCoefficients = numberOfCoefficients > my ny - 1 ? my ny - 1 : numberOfCoefficients;
 		// 20130220 new interpretation of maximumNumberOfCoefficients necessary for inverse transform 
 		autoMFCC thee = MFCC_create (my xmin, my xmax, my nx, my dx, my x1, my ny - 1, my ymin, my ymax);
-		BandFilterSpectrogram_into_CC (me, thee.get(), numberOfCoefficients);
-		return thee;
+		BandFilterSpectrogram_into_CC (me, thee.peek(), numberOfCoefficients);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": MFCC not created.");
 	}
 }
 
-autoBarkSpectrogram BarkSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
+BarkSpectrogram BarkSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoBarkSpectrogram me = Thing_new (BarkSpectrogram);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"BarkSpectrogram not created.");
 	}
@@ -274,10 +274,10 @@ void BandFilterSpectrogram_drawFrequencyScale (BandFilterSpectrogram me, Graphic
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Frequency (Hz)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Frequency (Hz)");
 	}
 }
 
@@ -293,7 +293,7 @@ void BandFilterSpectrogram_paintImage (BandFilterSpectrogram me, Graphics g, dou
 	(void) Matrix_getWindowSamplesY (me, ymin - 0.49999 * my dy, ymax + 0.49999 * my dy, &iymin, &iymax);
 	autoMatrix thee = Spectrogram_to_Matrix_dB ((Spectrogram) me, 4e-10, 10, -100);
 	if (maximum <= minimum) {
-		(void) Matrix_getWindowExtrema (thee.get(), ixmin, ixmax, iymin, iymax, &minimum, &maximum);
+		(void) Matrix_getWindowExtrema (thee.peek(), ixmin, ixmax, iymin, iymax, &minimum, &maximum);
 	}
 	if (maximum <= minimum) { 
 		minimum -= 1.0; maximum += 1.0;
@@ -304,17 +304,17 @@ void BandFilterSpectrogram_paintImage (BandFilterSpectrogram me, Graphics g, dou
 	Graphics_setInner (g);
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 	Graphics_image (g, thy z,
-			ixmin, ixmax, Sampled_indexToX   (thee.get(), ixmin - 0.5), Sampled_indexToX   (thee.get(), ixmax + 0.5),
-			iymin, iymax, SampledXY_indexToY (thee.get(), iymin - 0.5), SampledXY_indexToY (thee.get(), iymax + 0.5),
+			ixmin, ixmax, Sampled_indexToX   (thee.peek(), ixmin - 0.5), Sampled_indexToX   (thee.peek(), ixmax + 0.5),
+			iymin, iymax, SampledXY_indexToY (thee.peek(), iymin - 0.5), SampledXY_indexToY (thee.peek(), iymax + 0.5),
 			minimum, maximum);
 
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textBottom (g, true, U"Time (s)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textBottom (g, 1, U"Time (s)");
 	}
 }
 
@@ -367,10 +367,10 @@ void BandFilterSpectrogram_drawSpectrumAtNearestTimeSlice (BandFilterSpectrogram
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Power (dB)");
-		Graphics_textBottom (g, true, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Power (dB)");
+		Graphics_textBottom (g, 1, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
 	}
 }
 
@@ -385,8 +385,8 @@ void BarkSpectrogram_drawSekeyHansonFilterFunctions (BarkSpectrogram me, Graphic
 		zmin = my v_hertzToFrequency (xmin); zmax = my v_hertzToFrequency (xmax);
 	}
 	if (ymin >= ymax) {
-		ymin = yscale_dB ? -60 : 0.0;
-		ymax = yscale_dB ? 0.0 : 1.0;
+		ymin = yscale_dB ? -60 : 0;
+		ymax = yscale_dB ? 0 : 1;
 	}
 	fromFilter = fromFilter <= 0 ? 1 : fromFilter;
 	toFilter = toFilter <= 0 || toFilter > my ny ? my ny : toFilter;
@@ -409,8 +409,8 @@ void BarkSpectrogram_drawSekeyHansonFilterFunctions (BarkSpectrogram me, Graphic
 		double zMid = Matrix_rowToY (me, ifilter);
 		for (long iz = 1; iz <= n; iz++) {
 			double z = xz[iz] - (zMid - 0.215);
-			double amp = 7.0 - 7.5 * z - 17.5 * sqrt (0.196 + z * z);
-			y[iz] = yscale_dB ? amp : pow (10.0, amp / 10.0);
+			double amp = 7 - 7.5 * z - 17.5 * sqrt (0.196 + z * z);
+			y[iz] = yscale_dB ? amp : pow (10, amp / 10);
 		}
 		// the drawing
 		double x1 = xIsHertz ? xhz[1] : xz[1], y1 = y[1];
@@ -428,35 +428,37 @@ void BarkSpectrogram_drawSekeyHansonFilterFunctions (BarkSpectrogram me, Graphic
 	Graphics_unsetInner (g);
 
 	if (garnish) {
-		double distance = yscale_dB ? 10.0 : 0.5;
+		double distance = yscale_dB ? 10 : 0.5;
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, distance, true, true, false);
-		Graphics_textLeft (g, true, yscale_dB ? U"Amplitude (dB)" : U"Amplitude");
-		Graphics_textBottom (g, true, Melder_cat (U"Frequency (", xIsHertz ? U"Hz" : my v_getFrequencyUnit (), U")"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
+		Graphics_textLeft (g, 1, yscale_dB ? U"Amplitude (dB)" : U"Amplitude");
+		Graphics_textBottom (g, 1, Melder_cat (U"Frequency (", xIsHertz ? U"Hz" : my v_getFrequencyUnit (), U")"));
 	}
 }
 
 Thing_implement (MelSpectrogram, BandFilterSpectrogram, 2);
 
-autoMelSpectrogram MelSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
+MelSpectrogram MelSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1) {
 	try {
 		autoMelSpectrogram me = Thing_new (MelSpectrogram);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"MelSpectrogram not created.");
 	}
 }
 
-void BandFilterSpectrogram_drawTimeSlice (BandFilterSpectrogram me, Graphics g, double t, double fmin, double fmax, double min, double max, const char32 *xlabel, int garnish) {
+void BandFilterSpectrogram_drawTimeSlice (I, Graphics g, double t, double fmin,
+                               double fmax, double min, double max, const char32 *xlabel, int garnish) {
+	iam (Matrix);
 	Matrix_drawSliceY (me, g, t, fmin, fmax, min, max);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 		if (xlabel) {
-			Graphics_textBottom (g, false, xlabel);
+			Graphics_textBottom (g, 0, xlabel);
 		}
 	}
 }
@@ -473,8 +475,8 @@ void MelSpectrogram_drawTriangularFilterFunctions (MelSpectrogram me, Graphics g
 	}
 
 	if (ymin >= ymax) {
-		ymin = yscale_dB ? -60.0 : 0.0;
-		ymax = yscale_dB ? 0.0 : 1.0;
+		ymin = yscale_dB ? -60 : 0;
+		ymax = yscale_dB ? 0 : 1;
 	}
 	fromFilter = fromFilter <= 0 ? 1 : fromFilter;
 	toFilter = toFilter <= 0 || toFilter > my ny ? my ny : toFilter;
@@ -502,7 +504,7 @@ void MelSpectrogram_drawTriangularFilterFunctions (MelSpectrogram me, Graphics g
 			for (long iz = 1; iz <= n; iz++) {
 				double z = xz[iz];
 				double amp = NUMtriangularfilter_amplitude (zl, zc, zh, z);
-				y[iz] = yscale_dB ? (amp > 0.0 ? 20.0 * log10 (amp) : ymin - 10.0) : amp;
+				y[iz] = yscale_dB ? (amp > 0 ? 20 * log10 (amp) : ymin - 10) : amp;
 			}
 			double x1 = xIsHertz ? xhz[1] : xz[1], y1 = y[1];
 			if (NUMdefined (y1)) {
@@ -533,14 +535,14 @@ void MelSpectrogram_drawTriangularFilterFunctions (MelSpectrogram me, Graphics g
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, yscale_dB ? 10.0 : 0.5, true, true, false);
-		Graphics_textLeft (g, true, yscale_dB ? U"Amplitude (dB)" : U"Amplitude");
-		Graphics_textBottom (g, true, Melder_cat (U"Frequency (", ( xIsHertz ? U"Hz" : my v_getFrequencyUnit () ), U")"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, yscale_dB ? 10 : 0.5, 1, 1, 0);
+		Graphics_textLeft (g, 1, yscale_dB ? U"Amplitude (dB)" : U"Amplitude");
+		Graphics_textBottom (g, 1, Melder_cat (U"Frequency (", ( xIsHertz ? U"Hz" : my v_getFrequencyUnit () ), U")"));
 	}
 }
 
-autoMatrix BandFilterSpectrogram_to_Matrix (BandFilterSpectrogram me, int to_dB) {
+Matrix BandFilterSpectrogram_to_Matrix (BandFilterSpectrogram me, int to_dB) {
 	try {
 		int units = to_dB ? 1 : 0;
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
@@ -549,34 +551,34 @@ autoMatrix BandFilterSpectrogram_to_Matrix (BandFilterSpectrogram me, int to_dB)
 				thy z[i][j] = my v_getValueAtSample (j, i, units);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoBarkSpectrogram Matrix_to_BarkSpectrogram (Matrix me) {
+BarkSpectrogram Matrix_to_BarkSpectrogram (Matrix me) {
 	try {
 		autoBarkSpectrogram thee = BarkSpectrogram_create (my xmin, my xmax, my nx, my dx, my x1,
 			my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to BarkSpectrogram.");
 	}
 }
 
-autoMelSpectrogram Matrix_to_MelSpectrogram (Matrix me) {
+MelSpectrogram Matrix_to_MelSpectrogram (Matrix me) {
 	try {
 		autoMelSpectrogram thee = MelSpectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to MelSpectrogram.");
 	}
 }
 
-autoIntensity BandFilterSpectrogram_to_Intensity (BandFilterSpectrogram me) {
+Intensity BandFilterSpectrogram_to_Intensity (BandFilterSpectrogram me) {
 	try {
 		autoIntensity thee = Intensity_create (my xmin, my xmax, my nx, my dx, my x1);
 		for (long j = 1; j <= my nx; j++) {
@@ -586,7 +588,7 @@ autoIntensity BandFilterSpectrogram_to_Intensity (BandFilterSpectrogram me) {
 			}
 			thy z[1][j] = BandFilterSpectrogram_DBFAC * log10 (p / BandFilterSpectrogram_DBREF);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Intensity not created.");
 	}
@@ -606,21 +608,22 @@ void BandFilterSpectrogram_equalizeIntensities (BandFilterSpectrogram me, double
 	}
 }
 
-void BandFilterSpectrogram_and_PCA_drawComponent (BandFilterSpectrogram me, PCA thee, Graphics g, long component, double dblevel, double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax) {
+void BandFilterSpectrogram_and_PCA_drawComponent (BandFilterSpectrogram me, PCA thee, Graphics g, long component, double dblevel,
+                                       double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax) {
 	if (component < 1 || component > thy numberOfEigenvalues) {
 		Melder_throw (U"Component too large.");
 	}
 
 	// Scale Intensity
 
-	autoBandFilterSpectrogram fcopy = Data_copy (me);
-	BandFilterSpectrogram_equalizeIntensities (fcopy.get(), dblevel);
-	autoMatrix mdb = Spectrogram_to_Matrix_dB ((Spectrogram) fcopy.get(), BandFilterSpectrogram_DBREF, BandFilterSpectrogram_DBFAC, BandFilterSpectrogram_DBFLOOR);
-	autoMatrix him = Eigen_and_Matrix_to_Matrix_projectColumns (thee, mdb.get(), component);
+	autoBandFilterSpectrogram fcopy = (BandFilterSpectrogram) Data_copy (me);
+	BandFilterSpectrogram_equalizeIntensities (fcopy.peek(), dblevel);
+	autoMatrix mdb = Spectrogram_to_Matrix_dB ((Spectrogram) fcopy.peek(), BandFilterSpectrogram_DBREF, BandFilterSpectrogram_DBFAC, BandFilterSpectrogram_DBFLOOR);
+	autoMatrix him = Eigen_and_Matrix_project (thee, mdb.peek(), component);
 	for (long j = 1; j <= my nx; j++) {
 		his z[component][j] = frequencyOffset + scale * his z[component][j];
 	}
-	Matrix_drawRows (him.get(), g, tmin, tmax, component - 0.5, component + 0.5, fmin, fmax);
+	Matrix_drawRows (him.peek(), g, tmin, tmax, component - 0.5, component + 0.5, fmin, fmax);
 }
 
 /*
diff --git a/dwtools/Spectrogram_extensions.h b/dwtools/Spectrogram_extensions.h
index 14a2c7a..20f4556 100644
--- a/dwtools/Spectrogram_extensions.h
+++ b/dwtools/Spectrogram_extensions.h
@@ -2,7 +2,7 @@
 #define _Spectrogram_extensions_h_
 /* Spectrogram_extensions.h
  *
- * Copyright (C) 2014, 2015 David Weenink
+ * Copyright (C) 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -93,13 +93,14 @@ double BandFilterSpectrogram_getFrequencyInHertz (BandFilterSpectrogram me, doub
 
 void BandFilterSpectrogram_equalizeIntensities (BandFilterSpectrogram me, double intensity_db);
 
-autoMatrix BandFilterSpectrogram_to_Matrix (BandFilterSpectrogram me, int to_dB);
+Matrix BandFilterSpectrogram_to_Matrix (BandFilterSpectrogram me, int to_dB);
 
-autoIntensity BandFilterSpectrogram_to_Intensity (BandFilterSpectrogram me);
+Intensity BandFilterSpectrogram_to_Intensity (BandFilterSpectrogram me);
 
 void BandFilterSpectrogram_drawFrequencyScale (BandFilterSpectrogram me, Graphics g, double xmin, double xmax, double ymin, double ymax, int garnish);
 
-void BandFilterSpectrogram_drawTimeSlice (BandFilterSpectrogram me, Graphics g, double t, double fmin, double fmax, double min, double max, const char32 *xlabel, int garnish);
+void BandFilterSpectrogram_drawTimeSlice (I, Graphics g, double t, double fmin,
+                               double fmax, double min, double max, const char32 *xlabel, int garnish);
 
 void BarkSpectrogram_drawSekeyHansonFilterFunctions (BarkSpectrogram me, Graphics g, bool xIsHertz, int fromFilter, int toFilter, double zmin, double zmax, bool yscale_dB, double ymin, double ymax, int garnish);
 
@@ -107,9 +108,10 @@ void BandFilterSpectrogram_drawSpectrumAtNearestTimeSlice (BandFilterSpectrogram
 
 void BandFilterSpectrogram_paintImage (BandFilterSpectrogram me, Graphics g, double xmin, double xmax, double ymin, double ymax, double minimum, double maximum, int garnish);
 
-autoBarkSpectrogram BarkSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1);
+BarkSpectrogram BarkSpectrogram_create (double tmin, double tmax, long nt, double dt,
+	double t1, double fmin, double fmax, long nf, double df, double f1);
 
-autoBarkSpectrogram Matrix_to_BarkSpectrogram (Matrix me);
+BarkSpectrogram Matrix_to_BarkSpectrogram (Matrix me);
 
 /*
 Interpretation:
@@ -120,20 +122,20 @@ Interpretation:
     ny the number of filters.
  */
 
-autoMelSpectrogram MelSpectrogram_create (double tmin, double tmax, long nt, double dt, double t1, double fmin, double fmax, long nf, double df, double f1);
+MelSpectrogram MelSpectrogram_create (double tmin, double tmax, long nt, double dt,
+	double t1, double fmin, double fmax, long nf, double df, double f1);
 
-autoMelSpectrogram Matrix_to_MelSpectrogram (Matrix me);
+MelSpectrogram Matrix_to_MelSpectrogram (Matrix me);
 
 void MelSpectrogram_drawTriangularFilterFunctions (MelSpectrogram me, Graphics g, bool xIsHertz, int fromFilter, int toFilter, double zmin, double zmax, bool yscale_dB, double ymin, double ymax, int garnish);
 
-autoMFCC MelSpectrogram_to_MFCC (MelSpectrogram me, long numberOfCoefficients);
-
-autoMelSpectrogram MFCC_to_MelSpectrogram (MFCC me, long first, long last, bool c0);
+MFCC MelSpectrogram_to_MFCC (MelSpectrogram me, long numberOfCoefficients);
+MelSpectrogram MFCC_to_MelSpectrogram (MFCC me, long first, long last, bool c0);
 
 void BandFilterSpectrogram_and_PCA_drawComponent (BandFilterSpectrogram me, PCA thee, Graphics g, long component, double dblevel,
 	double frequencyOffset, double scale, double tmin, double tmax, double fmin, double fmax);
 
-autoMatrix Spectrogram_to_Matrix_dB (Spectrogram me, double reference, double scaleFactor, double floor_dB);
+Matrix Spectrogram_to_Matrix_dB (Spectrogram me, double reference, double scaleFactor, double floor_dB);
 // dbs = scaleFactor * log10 (value/reference);
 // if (dbs < floor_db) { dbs = floor_dB }
 
diff --git a/dwtools/Spectrum_extensions.cpp b/dwtools/Spectrum_extensions.cpp
index 510b57a..4d8b650 100644
--- a/dwtools/Spectrum_extensions.cpp
+++ b/dwtools/Spectrum_extensions.cpp
@@ -1,6 +1,6 @@
 /* Spectrum_extensions.cpp
  *
- * Copyright (C) 1993-2013, 2015 David Weenink
+ * Copyright (C) 1993-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -59,7 +59,8 @@ struct tribolet_struct {
 	spectrum of x.
 	Reference: Bonzanigo (1978), IEEE Trans. ASSP, Vol. 26.
 */
-static void getSpectralValues (struct tribolet_struct *tbs, double freq_rad, double *xr, double *xi, double *nxr, double *nxi) {
+static void getSpectralValues (struct tribolet_struct *tbs, double freq_rad,
+                               double *xr, double *xi, double *nxr, double *nxi) {
 	double cosf = cos (freq_rad), sinf = sin (freq_rad);
 	double a = 2 * cosf, b, u1 = 0, u2 = u1, w1 = u1, w2 = u1;
 	double *x = tbs -> x;
@@ -75,7 +76,9 @@ static void getSpectralValues (struct tribolet_struct *tbs, double freq_rad, dou
 		w1 = w0;
 	}
 
-	// Bonzanigo's phase correction
+	/*
+		Bonzanigo's phase correction
+	*/
 
 	a = freq_rad * (nx - 1);
 	u1 =   cos (a);
@@ -93,8 +96,10 @@ static void getSpectralValues (struct tribolet_struct *tbs, double freq_rad, dou
 	tbs -> count ++;
 }
 
-// Find the closest unwrapped phase estimate from the two admissible phase values (a1 & a2).
-
+/*
+	Find the closest unwrapped phase estimate from the two admissible
+	phase values (a1 & a2).
+*/
 static int phase_check (double pv, double *phase, double thlcon) {
 	double a0 = (*phase - pv) / NUM2pi;
 	long k = (long) floor (a0);   // ppgb: instead of truncation toward zero
@@ -110,9 +115,12 @@ static int phase_check (double pv, double *phase, double thlcon) {
 	return 1;
 }
 
-// Phase unwrapping based on Tribolet's adaptive integration method.
-// the unwrapped phase estimate is returned.
-static double phase_unwrap (struct tribolet_struct *tbs, double pfreq, double ppv, double pdvt, double *pphase, double *ppdvt) {
+/*
+	Phase unwrapping based on Tribolet's adaptive integration method.
+	the unwrapped phase estimate is returned.
+*/
+static double phase_unwrap (struct tribolet_struct *tbs, double pfreq,
+                            double ppv, double pdvt, double *pphase, double *ppdvt) {
 	double sdvt[25], sppv[25];
 	double freq, phase = 0, phase_inc;
 	double delta, xr, xi, xmsq, nxr, nxi;
@@ -132,7 +140,7 @@ p20:
 		pi in the phase.
 	*/
 
-	if ((sindex[sp] - pindex) <= 1) {
+	if ( (sindex[sp] - pindex) <= 1) {
 		return phase;
 	}
 
@@ -176,7 +184,9 @@ p40:
 		return phase;
 	}
 
-	// p10: Update previous estimate.
+	/*
+		p10: Update previous estimate.
+	*/
 
 	pindex = sindex[sp];
 	*pphase = phase;
@@ -185,7 +195,7 @@ p40:
 	goto p40;
 }
 
-autoMatrix Spectrum_unwrap (Spectrum me) {
+Matrix Spectrum_unwrap (Spectrum me) {
 	try {
 		struct tribolet_struct tbs;
 		int remove_linear_part = 1;
@@ -201,12 +211,12 @@ autoMatrix Spectrum_unwrap (Spectrum me) {
 		}
 
 		autoSound x = Spectrum_to_Sound (me);
-		autoSound nx = Data_copy (x.get());
+		autoSound nx = Data_copy (x.peek());
 
 		for (long i = 1; i <= x -> nx; i++) {
 			nx -> z[1][i] *= (i - 1);
 		}
-		autoSpectrum snx = Sound_to_Spectrum (nx.get(), 1);
+		autoSpectrum snx = Sound_to_Spectrum (nx.peek(), 1);
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1, 2, 2, 1, 1);
 
 		// Common variables.
@@ -261,34 +271,36 @@ autoMatrix Spectrum_unwrap (Spectrum me) {
 		}
 		Melder_information (U"Number of spectral values: ", tbs.count);
 		Melder_information (U" iphase = ", iphase);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not unwrapped.");
 	}
 }
 
-void Spectrum_drawPhases (Spectrum me, Graphics g, double fmin, double fmax, double phase_min, double phase_max, int unwrap, int garnish) {
-	autoMatrix thee;
+void Spectrum_drawPhases (Spectrum me, Graphics g, double fmin, double fmax,
+                          double phase_min, double phase_max, int unwrap, int garnish) {
+	autoMatrix thee = 0;
 	int reverse_sign = my z[1][1] < 0;
 
 	if (unwrap) {
-		thee = Spectrum_unwrap (me);
+		thee.reset (Spectrum_unwrap (me));
 	} else {
-		thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1.0, 2.0, 2, 1.0, 1.0);
+		thee.reset (Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1, 2, 2, 1, 1));
 		for (long i = 1; i <= my nx; i ++) {
 			thy z[2][i] = PPVPHA (my z[1][i], my z[2][i], reverse_sign);
 		}
 	}
 
-	Matrix_drawRows (thee.get(), g, fmin, fmax, 1.9, 2.1, phase_min, phase_max);
+	Matrix_drawRows (thee.peek(), g, fmin, fmax, 1.9, 2.1, phase_min, phase_max);
 	if (garnish) {
 
 	}
 }
 
-autoSpectrum Spectra_multiply (Spectrum me, Spectrum thee) {
+Spectrum Spectra_multiply (Spectrum me, Spectrum thee) {
 	try {
-		if (my nx != thy nx || my x1 != thy x1 || my xmax != thy xmax || my dx != thy dx) {
+		if (my nx != thy nx || my x1 != thy x1 || my xmax != thy xmax ||
+		        my dx != thy dx) {
 			Melder_throw (U"Dimensions of both spectra do not conform.");
 		}
 		autoSpectrum him = Data_copy (me);
@@ -297,7 +309,7 @@ autoSpectrum Spectra_multiply (Spectrum me, Spectrum thee) {
 			his z[1][i] = my z[1][i] * thy z[1][i] - my z[2][i] * thy z[2][i];
 			his z[2][i] = my z[1][i] * thy z[2][i] + my z[2][i] * thy z[1][i];
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not multiplied.");
 	}
@@ -309,21 +321,20 @@ void Spectrum_conjugate (Spectrum me) {
 	}
 }
 
-autoSpectrum Spectrum_resample (Spectrum me, long numberOfFrequencies) {
+Spectrum Spectrum_resample (Spectrum me, long numberOfFrequencies) {
 	try {
 		double newSamplingFrequency = (1 / my dx) * numberOfFrequencies / my nx;
 		// resample real and imaginary part !
 		autoSound thee = Sound_resample ((Sound) me, newSamplingFrequency, 50);
 		autoSpectrum him = Spectrum_create (my xmax, numberOfFrequencies);
 		NUMmatrix_copyElements<double> (thy z, his z, 1, 2, 1, numberOfFrequencies);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not resampled.");
 	}
 }
 
-#if 0
-static autoSpectrum Spectrum_shiftFrequencies2 (Spectrum me, double shiftBy, bool changeMaximumFrequency) {
+static Spectrum Spectrum_shiftFrequencies2 (Spectrum me, double shiftBy, bool changeMaximumFrequency) {
 	try {
 		double xmax = my xmax;
 		long numberOfFrequencies = my nx, interpolationDepth = 50;
@@ -342,14 +353,13 @@ static autoSpectrum Spectrum_shiftFrequencies2 (Spectrum me, double shiftBy, boo
 				thy z[2][i] = NUM_interpolate_sinc (my z[2], my nx, index, interpolationDepth);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not shifted.");
 	}
 }
-#endif
 
-autoSpectrum Spectrum_shiftFrequencies (Spectrum me, double shiftBy, double newMaximumFrequency, long interpolationDepth) {
+Spectrum Spectrum_shiftFrequencies (Spectrum me, double shiftBy, double newMaximumFrequency, long interpolationDepth) {
 	try {
 		double xmax = my xmax;
 		long numberOfFrequencies = my nx;
@@ -374,13 +384,13 @@ autoSpectrum Spectrum_shiftFrequencies (Spectrum me, double shiftBy, double newM
 		thy z[1][1] = amp; thy z[2][1] = 0;
 		amp = sqrt (thy z[1][thy nx] * thy z[1][thy nx] + thy z[2][thy nx] * thy z[2][thy nx]);
 		thy z[1][thy nx] = amp; thy z[2][thy nx] = 0;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not shifted.");
 	}
 }
 
-autoSpectrum Spectrum_compressFrequencyDomain (Spectrum me, double fmax, long interpolationDepth, int freqscale, int method) {
+Spectrum Spectrum_compressFrequencyDomain (Spectrum me, double fmax, long interpolationDepth, int freqscale, int method) {
 	try {
 		double fdomain = my xmax - my xmin, factor = fdomain / fmax ;
 		//long numberOfFrequencies = 1.0 + fmax / my dx; // keep dx the same, otherwise the "duration" changes
@@ -404,13 +414,12 @@ autoSpectrum Spectrum_compressFrequencyDomain (Spectrum me, double fmax, long in
 			}
 			thy z[1][i] = x; thy z[2][i] = y;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not compressed.");
 	}
 }
 
-#if 0
 static void Spectrum_fitTiltLine (Spectrum me, double fmin, double fmax, bool logf, double bandwidth, double *a, double *intercept, int method) {
 	(void) me; (void) fmin; (void) fmax; (void) logf; (void) bandwidth; (void) a; (void) intercept; (void) method;
 	try {
@@ -418,6 +427,5 @@ static void Spectrum_fitTiltLine (Spectrum me, double fmin, double fmax, bool lo
 		Melder_throw (U"Tilt line not fitted.");
 	}
 }
-#endif
 
 /* End of file Spectrum_extensions.cpp */
diff --git a/dwtools/Spectrum_extensions.h b/dwtools/Spectrum_extensions.h
index 7d626d2..54847b4 100644
--- a/dwtools/Spectrum_extensions.h
+++ b/dwtools/Spectrum_extensions.h
@@ -2,7 +2,7 @@
 #define _Spectrum_extensions_h_
 /* Spectrum_extensions.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,14 +29,13 @@
 #include "Sound.h"
 #include "Graphics.h"
 
-autoSpectrum Spectrum_resample (Spectrum me, long numberOfFrequencies);
+Spectrum Spectrum_resample (Spectrum me, long numberOfFrequencies);
 
-autoSpectrum Spectrum_compressFrequencyDomain (Spectrum me, double fmax, long interpolationDepth, int freqscale, int method);
-
-autoSpectrum Spectrum_shiftFrequencies (Spectrum me, double shiftBy, double newMaximumFrequency, long interpolationDepth);
+Spectrum Spectrum_compressFrequencyDomain (Spectrum me, double fmax, long interpolationDepth, int freqscale, int method);
+Spectrum Spectrum_shiftFrequencies (Spectrum me, double shiftBy, double newMaximumFrequency, long interpolationDepth);
 // Shift will be plusminus dx/2
 
-autoMatrix Spectrum_unwrap (Spectrum me);
+Matrix Spectrum_unwrap (Spectrum me);
 /*
 	Unwrap the phases of the spectrum according to an algorithm by
 	Tribolet as published in:
@@ -53,8 +52,7 @@ autoMatrix Spectrum_unwrap (Spectrum me);
 void Spectrum_drawPhases (Spectrum me, Graphics g, double fmin, double fmax,
 	double phase_min, double phase_max, int unwrap, int garnish);
 
-autoSpectrum Spectra_multiply (Spectrum me, Spectrum thee);
-
+Spectrum Spectra_multiply (Spectrum me, Spectrum thee);
 void Spectrum_conjugate (Spectrum me);
 
 #endif /* _Spectrum_extensions_h_ */
diff --git a/dwtools/SpeechSynthesizer.cpp b/dwtools/SpeechSynthesizer.cpp
index 3ce9225..3ae4d4b 100644
--- a/dwtools/SpeechSynthesizer.cpp
+++ b/dwtools/SpeechSynthesizer.cpp
@@ -1,6 +1,6 @@
 /* SpeechSynthesizer.cpp
  *
-//  * Copyright (C) 2011-2013, 2015-2016 David Weenink
+//  * Copyright (C) 2011-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,9 +50,9 @@
 extern structMelderDir praatDir;
 extern int option_phoneme_events;
 
-Thing_implement (SpeechSynthesizerVoice, Daata, 0);
+Thing_implement (SpeechSynthesizerVoice, Data, 0);
 
-autoSpeechSynthesizerVoice SpeechSynthesizerVoice_create (long numberOfFormants) {
+SpeechSynthesizerVoice SpeechSynthesizerVoice_create (long numberOfFormants) {
 	try {
 		autoSpeechSynthesizerVoice me = Thing_new (SpeechSynthesizerVoice);
 		my d_numberOfFormants = numberOfFormants;
@@ -68,8 +68,8 @@ autoSpeechSynthesizerVoice SpeechSynthesizerVoice_create (long numberOfFormants)
 
 		my d_breath = NUMvector<int> (0, my d_numberOfFormants);	// amount of breath for each formant. breath[0] indicates whether any are set.
 		my d_breathw = NUMvector<int> (0, my d_numberOfFormants);	// width of each breath formant
-		SpeechSynthesizerVoice_setDefaults (me.get());
-		return me;
+		SpeechSynthesizerVoice_setDefaults (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SpeechSynthesizerVoice not created.");
 	}
@@ -79,46 +79,46 @@ void SpeechSynthesizerVoice_setDefaults (SpeechSynthesizerVoice me) {
 	(void) me;
 }
 
-void SpeechSynthesizerVoice_initFromEspeakVoice (SpeechSynthesizerVoice me, voice_t *evoice) {
-	my d_v_name = Melder_dup (Melder_peek8to32 (evoice -> v_name));
-
-	my d_phoneme_tab_ix = evoice -> phoneme_tab_ix;
-	my d_pitch_base = evoice -> pitch_base;
-	my d_pitch_range = evoice -> pitch_range;
-
-	my d_speedf1 = evoice -> speedf1;
-	my d_speedf2 = evoice -> speedf2;
-	my d_speedf3 = evoice -> speedf3;
-
-	my d_speed_percent = evoice -> speed_percent;
-	my d_flutter = evoice -> flutter;
-	my d_roughness = evoice -> roughness;
-	my d_echo_delay = evoice -> echo_delay;
-	my d_echo_amp = evoice -> echo_amp;
-	my d_n_harmonic_peaks = evoice -> n_harmonic_peaks;
-	my d_peak_shape = evoice -> peak_shape;
-	my d_voicing = evoice -> voicing;
-	my d_formant_factor = evoice -> formant_factor;
-	my d_consonant_amp = evoice -> consonant_amp;
-	my d_consonant_ampv = evoice -> consonant_ampv;
-	my d_samplingFrequency = evoice -> samplerate;
+void SpeechSynthesizerVoice_initFromEspeakVoice (SpeechSynthesizerVoice me, voice_t *voice) {
+	my d_v_name = Melder_dup (Melder_peek8to32 (voice -> v_name));
+
+	my d_phoneme_tab_ix = voice -> phoneme_tab_ix;
+	my d_pitch_base = voice -> pitch_base;
+	my d_pitch_range = voice -> pitch_range;
+
+	my d_speedf1 = voice -> speedf1;
+	my d_speedf2 = voice -> speedf2;
+	my d_speedf3 = voice -> speedf3;
+
+	my d_speed_percent = voice -> speed_percent;
+	my d_flutter = voice -> flutter;
+	my d_roughness = voice -> roughness;
+	my d_echo_delay = voice -> echo_delay;
+	my d_echo_amp = voice -> echo_amp;
+	my d_n_harmonic_peaks = voice -> n_harmonic_peaks;
+	my d_peak_shape = voice -> peak_shape;
+	my d_voicing = voice -> voicing;
+	my d_formant_factor = voice -> formant_factor;
+	my d_consonant_amp = voice -> consonant_amp;
+	my d_consonant_ampv = voice -> consonant_ampv;
+	my d_samplingFrequency = voice -> samplerate;
 	for (long i = 0; i < 7; i++) {
-		my d_klattv[i] = evoice -> klattv[i];
+		my d_klattv[i] = voice -> klattv[i];
 	}
 	for (long i = 0; i <= my d_numberOfFormants; i++) {
-		my d_freq[i] = evoice -> freq[i];
-		my d_height[i] = evoice -> height[i];
-		my d_width[i] = evoice -> width[i];
-		my d_freqadd[i] = evoice -> freqadd[i];
-		my d_freq2[i] = evoice -> freq2[i];
-		my d_height2[i] = evoice -> height2[i];
-		my d_width2[i] = evoice -> width2[i];
-		my d_breath[i] = evoice -> breath[i];
-		my d_breathw[i] = evoice -> breathw[i];
+		my d_freq[i] = voice -> freq[i];
+		my d_height[i] = voice -> height[i];
+		my d_width[i] = voice -> width[i];
+		my d_freqadd[i] = voice -> freqadd[i];
+		my d_freq2[i] = voice -> freq2[i];
+		my d_height2[i] = voice -> height2[i];
+		my d_width2[i] = voice -> width2[i];
+		my d_breath[i] = voice -> breath[i];
+		my d_breathw[i] = voice -> breathw[i];
 	}
 }
 
-Thing_implement (SpeechSynthesizer, Daata, 0);
+Thing_implement (SpeechSynthesizer, Data, 0);
 
 void structSpeechSynthesizer :: v_info () {
 	SpeechSynthesizer_Parent :: v_info ();
@@ -133,14 +133,13 @@ void structSpeechSynthesizer :: v_info () {
 	MelderInfo_writeLine (U"Speeking rate: ", d_wordsPerMinute, U" words per minute", (d_estimateWordsPerMinute ? U" (but estimated from data if possible)" : U" (fixed)"));
 
 	MelderInfo_writeLine (U"Output phoneme coding: ", (d_inputPhonemeCoding == SpeechSynthesizer_PHONEMECODINGS_KIRSHENBAUM ? U"Kirshenbaum" : d_inputPhonemeCoding == SpeechSynthesizer_PHONEMECODINGS_IPA ? U"IPA" : U"???"));
-	MelderInfo_writeLine (U"Text to speech synthesis with eSpeak version 1.48.04");
 }
 
 static void NUMvector_extendNumberOfElements (long elementSize, void **v, long lo, long *hi, long extraDemand)
 {
 	try {
 		char *result;
-		if (! *v) {
+		if (*v == NULL) {
 			long newhi = lo + extraDemand - 1;
 			result = reinterpret_cast <char *> (NUMvector (elementSize, lo, newhi));
 			*hi = newhi;
@@ -148,7 +147,7 @@ static void NUMvector_extendNumberOfElements (long elementSize, void **v, long l
 			long offset = lo * elementSize;
 			for (;;) {   // not very infinite: 99.999 % of the time once, 0.001 % twice
 				result = reinterpret_cast <char *> (Melder_realloc ((char *) *v + offset, (*hi - lo + 1 + extraDemand) * elementSize));
-				if ((result -= offset)) break;   // this will normally succeed at the first try
+				if ((result -= offset) != NULL) break;   // this will normally succeed at the first try
 				(void) Melder_realloc_f (result + offset, 1);   // ??make "sure" that the second try will succeed
 			}
 			(*hi) += extraDemand;
@@ -177,75 +176,75 @@ static int synthCallback (short *wav, int numsamples, espeak_EVENT *events)
 {
 	char phoneme_name[9];
 	if (wav == 0) return 1;
-	
 	// It is essential that the SpeechSynthesizer is identified here by the user_data,
 	// because the espeakEVENT_LIST_TERMINATED event may still be accompanied by
 	// a piece of audio data!!
-	
 	SpeechSynthesizer me = (SpeechSynthesizer) (events -> user_data);
-	while (events -> type != espeakEVENT_LIST_TERMINATED) {
+	while(events -> type != espeakEVENT_LIST_TERMINATED) {
 		if (events -> type == espeakEVENT_SAMPLERATE) {
 			my d_internalSamplingFrequency = events -> id.number;
 		} else {
 			//my events = Table "time type type-t t-pos length a-pos sample id uniq";
 			//                    1    2     3      4     5     6     7      8   9
-			Table_appendRow (my d_events.get());
-			long irow = my d_events -> rows.size;
+			Table_appendRow (my d_events);
+			long irow = my d_events -> rows -> size;
 			double time = events -> audio_position * 0.001;
-			Table_setNumericValue (my d_events.get(), irow, 1, time);
-			Table_setNumericValue (my d_events.get(), irow, 2, events -> type);
+			Table_setNumericValue (my d_events, irow, 1, time);
+			Table_setNumericValue (my d_events, irow, 2, events -> type);
 			// Column 3 will be filled afterwards
-			Table_setNumericValue (my d_events.get(), irow, 4, events -> text_position);
-			Table_setNumericValue (my d_events.get(), irow, 5, events -> length);
-			Table_setNumericValue (my d_events.get(), irow, 6, events -> audio_position);
-			Table_setNumericValue (my d_events.get(), irow, 7, events -> sample);
+			Table_setNumericValue (my d_events, irow, 4, events -> text_position);
+			Table_setNumericValue (my d_events, irow, 5, events -> length);
+			Table_setNumericValue (my d_events, irow, 6, events -> audio_position);
+			Table_setNumericValue (my d_events, irow, 7, events -> sample);
 			if (events -> type == espeakEVENT_MARK || events -> type == espeakEVENT_PLAY) {
-				Table_setStringValue (my d_events.get(), irow, 8, Melder_peek8to32 (events -> id.name));
+				Table_setStringValue (my d_events, irow, 8, Melder_peek8to32 (events -> id.name));
 			} else {
 				// Ugly hack because id.string is not 0-terminated if 8 chars long!
 				memcpy (phoneme_name, events -> id.string, 8);
 				phoneme_name[8] = 0;
-				Table_setStringValue (my d_events.get(), irow, 8, Melder_peek8to32 (phoneme_name));
+				Table_setStringValue (my d_events, irow, 8, Melder_peek8to32 (phoneme_name));
 			}
-			Table_setNumericValue (my d_events.get(), irow, 9, events -> unique_identifier);
+			Table_setNumericValue (my d_events, irow, 9, events -> unique_identifier);
 		}
 		events++;
 	}
-	if (me) {
+	if (me != 0) {
 		NUMvector_supplyStorage<int> (&my d_wav, 1, &my d_wavCapacity, my d_numberOfSamples, numsamples);
 		for (long i = 1; i <= numsamples; i++) {
-			my d_wav [my d_numberOfSamples + i] = wav [i - 1];
+			my d_wav[my d_numberOfSamples + i] = wav[i - 1];
 		}
 		my d_numberOfSamples += numsamples;
 	}
 	return 0;
 }
 
-const char32 *SpeechSynthesizer_getVoiceLanguageCodeFromName (SpeechSynthesizer /* me */, const char32 *voiceLanguageName) {
+const char32 *SpeechSynthesizer_getVoiceLanguageCodeFromName (SpeechSynthesizer me, const char32 *voiceLanguageName) {
 	try {
-		long voiceLanguageNameIndex = Strings_findString (espeakdata_voices_names.get(), voiceLanguageName);
+		(void) me;
+		long voiceLanguageNameIndex = Strings_findString (espeakdata_voices_names, voiceLanguageName);
 		if (voiceLanguageNameIndex == 0) {
 			Melder_throw (U"Cannot find language \"", voiceLanguageName, U"\".");
 		}
-		FileInMemory fim = espeakdata_voices->at [voiceLanguageNameIndex];
+		FileInMemory fim = (FileInMemory) espeakdata_voices -> item[voiceLanguageNameIndex];
 		return fim -> d_id;
 	} catch (MelderError) {
 		Melder_throw (U"Cannot find language code.");
 	}
 }
 
-const char32 *SpeechSynthesizer_getVoiceVariantCodeFromName (SpeechSynthesizer /* me */, const char32 *voiceVariantName) {
+const char32 *SpeechSynthesizer_getVoiceVariantCodeFromName (SpeechSynthesizer me, const char32 *voiceVariantName) {
 	try {
+		(void) me;
 		static const char32 * defaultVariantCode = U"default";
 		// Strings espeakdata_variants_names is one longer than the actual list of variants
-		long voiceVariantIndex = Strings_findString (espeakdata_variants_names.get(), voiceVariantName);
+		long voiceVariantIndex = Strings_findString (espeakdata_variants_names, voiceVariantName);
 		if (voiceVariantIndex == 0) {
 			Melder_throw (U"Cannot find voice variant \"", voiceVariantName, U"\".");
 		}
 		// ... we have to decrease the index
 		if (voiceVariantIndex != 1) { // 1 is default, i.e. no variant
-			voiceVariantIndex --; // !!!
-			FileInMemory vfim = espeakdata_variants->at [voiceVariantIndex];
+			voiceVariantIndex--; // !!!
+			FileInMemory vfim = (FileInMemory) espeakdata_variants -> item[voiceVariantIndex];
 			return vfim -> d_id;
 		} else {
 			return defaultVariantCode; // TODO what is the default?
@@ -255,24 +254,27 @@ const char32 *SpeechSynthesizer_getVoiceVariantCodeFromName (SpeechSynthesizer /
 	}
 }
 
-void SpeechSynthesizer_initEspeak () {
-	int fsamp = espeak_Initialize (AUDIO_OUTPUT_SYNCHRONOUS, 0, nullptr, espeakINITIALIZE_PHONEME_EVENTS); // 4000 ms
+void SpeechSynthesizer_initSoundBuffer (SpeechSynthesizer me) {
+	my d_wavCapacity = 2 * 22050; // 2 seconds
+	my d_wav = NUMvector<int> (1, my d_wavCapacity);
+	int fsamp = espeak_Initialize (AUDIO_OUTPUT_SYNCHRONOUS, 0, NULL, espeakINITIALIZE_PHONEME_EVENTS); // 4000 ms
 	if (fsamp == -1) {
 		Melder_throw (U"Internal espeak error.");
 	}
 }
 
-autoSpeechSynthesizer SpeechSynthesizer_create (const char32 *voiceLanguageName, const char32 *voiceVariantName) {
+SpeechSynthesizer SpeechSynthesizer_create (const char32 *voiceLanguageName, const char32 *voiceVariantName) {
 	try {
 		autoSpeechSynthesizer me = Thing_new (SpeechSynthesizer);
-		(void) SpeechSynthesizer_getVoiceLanguageCodeFromName (me.get(), voiceLanguageName);
-		(void) SpeechSynthesizer_getVoiceVariantCodeFromName (me.get(), voiceVariantName);
+		// check the languange and voice variant
+		(void) SpeechSynthesizer_getVoiceLanguageCodeFromName (me.peek(), voiceLanguageName);
+		(void) SpeechSynthesizer_getVoiceVariantCodeFromName (me.peek(), voiceVariantName);
 		my d_voiceLanguageName = Melder_dup (voiceLanguageName);
 		my d_voiceVariantName = Melder_dup (voiceVariantName);
-		SpeechSynthesizer_setTextInputSettings (me.get(), SpeechSynthesizer_INPUT_TEXTONLY, SpeechSynthesizer_PHONEMECODINGS_KIRSHENBAUM);
-		SpeechSynthesizer_setSpeechOutputSettings (me.get(), 44100, 0.01, 50, 50, 175, true, SpeechSynthesizer_PHONEMECODINGS_IPA);
-		SpeechSynthesizer_initEspeak ();
-		return me;
+		SpeechSynthesizer_setTextInputSettings (me.peek(), SpeechSynthesizer_INPUT_TEXTONLY, SpeechSynthesizer_PHONEMECODINGS_KIRSHENBAUM);
+		SpeechSynthesizer_setSpeechOutputSettings (me.peek(), 44100, 0.01, 50, 50, 175, true, SpeechSynthesizer_PHONEMECODINGS_IPA);
+		SpeechSynthesizer_initSoundBuffer (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SpeechSynthesizer not created.");
 	}
@@ -298,20 +300,20 @@ void SpeechSynthesizer_setSpeechOutputSettings (SpeechSynthesizer me, double sam
 }
 
 void SpeechSynthesizer_playText (SpeechSynthesizer me, const char32 *text) {
-	autoSound thee = SpeechSynthesizer_to_Sound (me, text, nullptr, nullptr);
-	Sound_playPart (thee.get(), thy xmin, thy xmax, nullptr, nullptr);
+	autoSound thee= SpeechSynthesizer_to_Sound (me, text, 0, 0);
+	Sound_playPart (thee.peek(), thy xmin, thy xmax, 0, 0);
 }
 
-static autoSound buffer_to_Sound (int *wav, long numberOfSamples, double samplingFrequency)
+static Sound buffer_to_Sound (int *wav, long numberOfSamples, double samplingFrequency)
 {
 	try {
 		double dx = 1.0 / samplingFrequency;
 		double xmax = numberOfSamples * dx;
-		autoSound thee = Sound_create (1, 0.0, xmax, numberOfSamples, dx, dx / 2.0);
+		autoSound thee = Sound_create (1, 0, xmax, numberOfSamples, dx, dx / 2);
 		for (long i = 1; i <= numberOfSamples; i++) {
 			thy z[1][i] = wav[i] / 32768.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from synthesizer data.");
 	}
@@ -319,7 +321,7 @@ static autoSound buffer_to_Sound (int *wav, long numberOfSamples, double samplin
 
 static void IntervalTier_addBoundaryUnsorted (IntervalTier me, long iinterval, double time, const char32 *newLabel, bool isNewleftLabel) {
 	if (time <= my xmin || time >= my xmax) {
-		Melder_throw (U"Time is outside interval domains.");
+		Melder_throw (U"Time is outside interval.");
 	}
 
 	// Find interval to split
@@ -328,17 +330,17 @@ static void IntervalTier_addBoundaryUnsorted (IntervalTier me, long iinterval, d
 	}
 
 	// Modify end time of left label
-	TextInterval ti = my intervals.at [iinterval];
+	TextInterval ti = (TextInterval) my intervals -> item[iinterval];
 	ti -> xmax = time;
 	if (isNewleftLabel) TextInterval_setText (ti, newLabel);
 
-	autoTextInterval ti_new = TextInterval_create (time, my xmax, (! isNewleftLabel ? newLabel : U"" ));
-	my intervals. addItem_unsorted_move (ti_new.move());
+	autoTextInterval ti_new = TextInterval_create (time, my xmax, (! isNewleftLabel ? newLabel : U""));
+	Sorted_addItem_unsorted (my intervals, ti_new.transfer());
 }
 
 static void Table_setEventTypeString (Table me) {
 	try {
-		for (long i = 1; i <= my rows.size; i ++) {
+		for (long i = 1; i <= my rows -> size; i++) {
 			int type = Table_getNumericValue_Assert (me, i, 2);
 			const char32 *label = U"0";
 			if (type == espeakEVENT_WORD) {
@@ -364,128 +366,33 @@ static void Table_setEventTypeString (Table me) {
 }
 
 static void MelderString_trimWhiteSpaceAtEnd (MelderString *me) {
-	while (my length > 1 && (my string [my length - 1] == U' ' || my string [my length - 1] == U'\t'
-		|| my string [my length - 1] == U'\r' || my string [my length - 1] == U'\n'))
-	{
-		my string [my length - 1] = U'\0';
-		my length--;
-	}
-}
-
-static void IntervalTier_mergeSpecialIntervals (IntervalTier me) {
-	long intervalIndex = my intervals.size;
-	TextInterval right = my intervals.at [intervalIndex];
-	long labelLength_right = TextInterval_labelLength (right);
-	bool isEmptyInterval_right = labelLength_right == 0 || (labelLength_right == 1 && Melder_equ (right -> text, U"\001"));
-	while (intervalIndex > 1) {
-		TextInterval left = my intervals.at [intervalIndex - 1];
-		long labelLength_left = TextInterval_labelLength (left);
-		bool isEmptyInterval_left = labelLength_left == 0 || (labelLength_left == 1 && Melder_equ (left -> text, U"\001"));
-		if (isEmptyInterval_right && isEmptyInterval_left) {
-			// remove right interval and empty left interval
-			left -> xmax = right -> xmax;
-			TextInterval_setText (left, U""); 
-			my intervals. removeItem (intervalIndex);
-		}
-		right = left; 
-		isEmptyInterval_right = isEmptyInterval_left;
-		intervalIndex --;
-	}
-}
-
-/* insert boundary at time t and merge/delete intervals after this time */
-static void IntervalTier_insertBoundaryAndMergeIntervalsAfter (IntervalTier me, double t) {
-	if (t <= my xmin || t >= my xmax) {
-		return;
-	}
-	
-	long intervalNumber = IntervalTier_timeToLowIndex (me, t);
-	while (my intervals.size > intervalNumber + 1) {
-		my intervals. removeItem (my intervals.size);
-	}
-	// there can be maximally one interval left to the right of intervalNumber
-	TextInterval ti = my intervals.at [intervalNumber];
-	if (ti -> xmin == t) {   // if t happens to be on a boundary: remove the next interval if it exists
-		if (my intervals.size > intervalNumber) {
-			my intervals. removeItem (my intervals .size);
-		}
-		ti -> xmax = my xmax;
-		TextInterval_setText (ti, U"");
-	} else {
-		ti -> xmax = t;
-		TextInterval last = my intervals.at [my intervals.size];
-		last -> xmin = t;
-		last -> xmax = my xmax;
-		TextInterval_setText (last, U"");
-	}
-}
-
-
-static bool almost_equal (double t1, double t2) {
-	// the "=" sign is essential for a difference of zero if t1 == 0
-	return fabs (t1 - t2) <= 1e-12 * fabs (t1);
-}
-
-static void IntervalTier_insertEmptyIntervalsFromOtherTier (IntervalTier to, IntervalTier from) {
-	for (long iint = 1; iint <= from -> intervals.size; iint ++) {
-		TextInterval tifrom = from -> intervals.at [iint];
-		if (TextInterval_labelLength (tifrom) == 0) {   // found empty interval
-			double t_left = tifrom -> xmin, t_right = tifrom -> xmax;
-			long intervalIndex_to = IntervalTier_timeToLowIndex (to, t_left);
-			if (intervalIndex_to > 0) {   // insert to the right of intervalIndex_to
-				TextInterval tito = to -> intervals.at [intervalIndex_to];
-				if (! almost_equal (tito -> xmin, t_left)) {   // not on the start boundary of the interval, it cannot be at xmax
-					autoTextInterval newInterval = TextInterval_create (t_left, tito -> xmax, U"");
-					tito -> xmax = t_left;
-					to -> intervals. addItem_move (newInterval.move());
-				}
-			}
-			intervalIndex_to = IntervalTier_timeToHighIndex (to, t_right);
-			TextInterval tito = to -> intervals.at [intervalIndex_to];
-			if (intervalIndex_to > 0) {
-				if (! almost_equal (t_right, tito -> xmax)) {   // insert to the left of intervalIndex_to
-					autoTextInterval newInterval = TextInterval_create (tito -> xmin, t_right, U"");
-					tito -> xmin = t_right;
-					to -> intervals. addItem_move (newInterval.move());
-				}
-			}
-		}
-	}
-}
-
-static void IntervalTier_removeVeryShortIntervals (IntervalTier me) {
-	long iint = 1;
-	while (iint <= my intervals.size) {
-		TextInterval ti = my intervals.at [iint];
-		if (almost_equal (ti -> xmin, ti -> xmax)) {
-			my intervals.removeItem (iint);
-		} else {
-			iint ++;
-		}
+	while (my length > 1 && (my string[my length - 1] == U' ' || my string[my length - 1] == U'\t'
+		|| my string[my length - 1] == U'\r' || my string[my length - 1] == U'\n')) {
+		my string[my length - 1] = U'\0'; my length--;
 	}
 }
 
-static autoTextGrid Table_to_TextGrid (Table me, const char32 *text, double xmin, double xmax) {
+static TextGrid Table_to_TextGrid (Table me, const char32 *text, double xmin, double xmax) {
 	//Table_createWithColumnNames (0, L"time type type-t t-pos length a-pos sample id uniq");
 	try {
 		long length, textLength = str32len (text);
-		long numberOfRows = my rows.size;
+		long numberOfRows = my rows -> size;
 		long timeColumnIndex = Table_getColumnIndexFromColumnLabel (me, U"time");
 		long typeColumnIndex = Table_getColumnIndexFromColumnLabel (me, U"type");
 		long tposColumnIndex = Table_getColumnIndexFromColumnLabel (me, U"t-pos");
 		long   idColumnIndex = Table_getColumnIndexFromColumnLabel (me, U"id");
 		autoTextGrid thee = TextGrid_create (xmin, xmax, U"sentence clause word phoneme", U"");
 
-		TextGrid_setIntervalText (thee.get(), 1, 1, text);
+		TextGrid_setIntervalText (thee.peek(), 1, 1, text);
 
 		long p1c = 1, p1w = 1;
-		double time_phon_p = xmin;
+		double t1p = xmin;
 		bool wordEnd = false;
 		autoMelderString mark;
 
-		IntervalTier clauses = (IntervalTier) thy tiers->at [2];
-		IntervalTier words = (IntervalTier) thy tiers->at [3];
-		IntervalTier phonemes = (IntervalTier) thy tiers->at [4];
+		IntervalTier itc = (IntervalTier) thy tiers -> item[2];
+		IntervalTier itw = (IntervalTier) thy tiers -> item[3];
+		IntervalTier itp = (IntervalTier) thy tiers -> item[4];
 
 		for (long i = 1; i <= numberOfRows; i++) {
 			double time = Table_getNumericValue_Assert (me, i, timeColumnIndex);
@@ -494,19 +401,19 @@ static autoTextGrid Table_to_TextGrid (Table me, const char32 *text, double xmin
 			if (type == espeakEVENT_SENTENCE) {
 				// Only insert a new boundary, no text
 				// text will be inserted at end sentence event
-				if (time > xmin && time < xmax) {
-					IntervalTier_addBoundaryUnsorted (clauses, clauses -> intervals.size, time, U"", true);
+				if (time > xmin and time < xmax) {
+					IntervalTier_addBoundaryUnsorted (itc, itc -> intervals -> size, time, U"", true);
 				}
 				p1c = pos;
 			} else if (type == espeakEVENT_END) {
 				// End of clause: insert new boundary, and fill left interval with text
 				length = pos - p1c + 1;
 				MelderString_ncopy (&mark, text + p1c - 1, length);
-				MelderString_trimWhiteSpaceAtEnd (& mark);
-				if (time > xmin && time < xmax) {
-					IntervalTier_addBoundaryUnsorted (clauses, clauses -> intervals.size, time, mark.string, true);
+				MelderString_trimWhiteSpaceAtEnd (&mark);
+				if (time > xmin and time < xmax) {
+					IntervalTier_addBoundaryUnsorted (itc, itc -> intervals -> size, time, mark.string, true);
 				} else {
-					TextGrid_setIntervalText (thee.get(), 2, clauses -> intervals.size, mark.string);
+					TextGrid_setIntervalText (thee.peek(), 2, itc -> intervals -> size, mark.string);
 				}
 				p1c = pos;
 
@@ -515,61 +422,46 @@ static autoTextGrid Table_to_TextGrid (Table me, const char32 *text, double xmin
 				if (pos <= textLength) {
 					length = pos - p1w + 1;
 					MelderString_ncopy (&mark, text + p1w - 1, length);
-					MelderString_trimWhiteSpaceAtEnd (& mark);
-					if (time > xmin && time < xmax) {
-						IntervalTier_addBoundaryUnsorted (words, words -> intervals.size, time, mark.string, true);
+					MelderString_trimWhiteSpaceAtEnd (&mark);
+					if (time > xmin and time < xmax) {
+						IntervalTier_addBoundaryUnsorted (itw, itw -> intervals -> size, time, mark.string, true);
 					} else {
-						TextGrid_setIntervalText (thee.get(), 3, words -> intervals.size, mark.string);
+						TextGrid_setIntervalText (thee.peek(), 3, itw -> intervals -> size, mark.string);
 					}
 					// now the next word event should not trigger setting the left interval text
 					wordEnd = false;
 				}
 			} else if (type == espeakEVENT_WORD) {
-				if (pos < p1w) {
-					continue;
-				}
-				if (time > xmin && time < xmax) {
+				if (pos < p1w) continue;
+				if (time > xmin and time < xmax) {
 					length = pos - p1w;
-					if (pos == textLength) {
-						length++;
-					}
+					if (pos == textLength) length++;
 					MelderString_ncopy (&mark, text + p1w - 1, length);
-					MelderString_trimWhiteSpaceAtEnd (& mark);
-					IntervalTier_addBoundaryUnsorted (words, words -> intervals.size, time, ( wordEnd ? mark.string : U"" ), true);
+					MelderString_trimWhiteSpaceAtEnd (&mark);
+					IntervalTier_addBoundaryUnsorted (itw, itw -> intervals -> size, time, (wordEnd ? mark.string : U""), true);
 				}
 				wordEnd = true;
 				p1w = pos;
 			} else if (type == espeakEVENT_PHONEME) {
 				const char32 *id = Table_getStringValue_Assert (me, i, idColumnIndex);
-				if (time > time_phon_p) {
+				if (time > t1p) {
 					// Insert new boudary and label interval with the id
 					// TODO: Translate the id to the correct notation
-					TextInterval ti = phonemes -> intervals.at [phonemes -> intervals.size];
-					if (time > ti -> xmin && time < ti -> xmax) {
-						IntervalTier_addBoundaryUnsorted (phonemes, phonemes -> intervals.size, time, id, false);
+					TextInterval ti = (TextInterval) itp -> intervals -> item[itp -> intervals -> size];
+					if (time > ti -> xmin and time < ti -> xmax) {
+						IntervalTier_addBoundaryUnsorted (itp, itp -> intervals -> size, time, id, false);
 					}
 				} else {
 					// Just in case the phoneme starts at xmin we only need to set interval text
-					TextGrid_setIntervalText (thee.get(), 4, phonemes -> intervals.size, id);
+					TextGrid_setIntervalText (thee.peek(), 4, itp -> intervals -> size, id);
 				}
-				time_phon_p = time;
+				t1p = time;
 			}
 		}
-		clauses -> intervals. sort ();
-		words -> intervals. sort ();
-		phonemes -> intervals. sort ();
-		
-		IntervalTier_mergeSpecialIntervals (phonemes); // Merge neighbouring empty U"" and U"\001" intervals
-		
-		IntervalTier_removeVeryShortIntervals (words);
-		IntervalTier_removeVeryShortIntervals (clauses);
-		
-		/* Use empty intervals in phoneme tier for more precision in the word tier */
-		
-		IntervalTier_insertEmptyIntervalsFromOtherTier (words, phonemes);
-		IntervalTier_mergeSpecialIntervals (words); // Merge neighbouring empty U"" and U"\001" intervals
-
-		return thee;
+		Sorted_sort (itc -> intervals);
+		Sorted_sort (itw -> intervals);
+		Sorted_sort (itp -> intervals);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not created from Table with events.");
 	}
@@ -579,72 +471,25 @@ static void espeakdata_SetVoiceByName (const char *name, const char *variantName
 {
 	espeak_VOICE voice_selector;
 
-	memset (& voice_selector, 0, sizeof voice_selector);
+	memset(&voice_selector, 0, sizeof(voice_selector));
 	voice_selector.name = Melder_peek32to8 (Melder_cat (Melder_peek8to32 (name), U"+", Melder_peek8to32 (variantName)));  // include variant name in voice stack ??
 
-	if (LoadVoice (name, 1)) {
-		LoadVoice (variantName, 2);
-		DoVoiceChange (voice);
-		SetVoiceStack (& voice_selector, variantName);
-	}
-}
-
-void SpeechSynthesizer_changeLanguageNameToCurrent (SpeechSynthesizer me) {
-	try {
-		struct espeakLanguagestruct { const char32 *oldName, *currentName; } names[] = {
-			{ U"Akan-test", nullptr}, 
-			{ U"Bulgarian-test", U"Bulgarian"}, 
-			{ U"Dari-test", nullptr}, 
-			{ U"Divehi-test", nullptr}, { U"Dutch-test", U"Dutch"}, 
-			{ U"French (Belgium)", U"French-Belgium"},
-			{ U"Georgian-test", U"Georgian"}, 
-			{ U"Haitian", nullptr},
-			{ U"Icelandic-test", U"Icelandic"}, { U"Indonesian-test", U"Indonesian"},
-			{ U"Irish-test", U"Irish-gaeilge"}, 
-			{ U"Kazakh", nullptr}, { U"Kinyarwanda-test", nullptr}, { U"Korean", U"Korean-test"}, 
-			{ U"Lancashire", nullptr},
-			{ U"Macedonian-test", U"Macedonian"}, { U"Maltese-test", nullptr},
-			{ U"Nahuatl - classical", U"Nahuatl-classical"}, { U"Nepali-test", U"Nepali"}, { U"Northern-sotho", nullptr},
-			{ U"Punjabi-test", U"Punjabi"},
-			{ U"Russian_test", U"Russian"}, // yes, underscore
-			{ U"Setswana-test", nullptr}, { U"Sinhala", U"Sinhala-test"},
-			{ U"Spanish-latin-american", U"Spanish-latin-am"}, { U"Tatar-test", nullptr},
-			{ U"Telugu", U"Telugu-test"}, 
-			{ U"Welsh-test", U"Welsh"}, { U"Wolof-test", nullptr},
-			{nullptr,nullptr}};
-		long index = 0;
-		while (const char32 *oldName = names [index]. oldName) {
-			if (Melder_equ (oldName, my d_voiceLanguageName)) {
-				if (names [index]. currentName) {
-					autostring32 newLabel = Melder_dup (names [index]. currentName);
-					Melder_free (my d_voiceLanguageName);
-					my d_voiceLanguageName = newLabel.transfer();
-					break;
-				} else {
-					Melder_throw (U"Language ", oldName, U" is not available any longer.");
-				}
-			}
-			++ index;
-		}
-	} catch (MelderError) {
-		Melder_throw (U"Cannot change language name.");
+	if (LoadVoice (name,1) != NULL)
+	{
+		LoadVoice(variantName, 2);
+		DoVoiceChange(voice);
+		SetVoiceStack (&voice_selector, variantName);
 	}
 }
 
-autoSound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text, autoTextGrid *tg, autoTable *events) {
+Sound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text, TextGrid *tg, Table *events) {
 	try {
-		int fsamp = espeak_Initialize (AUDIO_OUTPUT_SYNCHRONOUS, 0, nullptr, // 5000ms
+		int fsamp = espeak_Initialize (AUDIO_OUTPUT_SYNCHRONOUS, 0, NULL, // 5000ms
 			espeakINITIALIZE_PHONEME_EVENTS|espeakINITIALIZE_PHONEME_IPA);
-		if (fsamp == -1) {
-			Melder_throw (U"Internal espeak error.");
-		}
+		if (fsamp == -1) Melder_throw (U"Internal espeak error.");
 		int synth_flags = espeakCHARS_WCHAR;
-		if (my d_inputTextFormat == SpeechSynthesizer_INPUT_TAGGEDTEXT) {
-			synth_flags |= espeakSSML;
-		}
-		if (my d_inputTextFormat != SpeechSynthesizer_INPUT_TEXTONLY) {
-			synth_flags |= espeakPHONEMES;
-		}
+		if (my d_inputTextFormat == SpeechSynthesizer_INPUT_TAGGEDTEXT) synth_flags |= espeakSSML;
+		if (my d_inputTextFormat != SpeechSynthesizer_INPUT_TEXTONLY) synth_flags |= espeakPHONEMES;
 		option_phoneme_events = espeakINITIALIZE_PHONEME_EVENTS; // extern int option_phoneme_events;
 		if (my d_outputPhonemeCoding == SpeechSynthesizer_PHONEMECODINGS_IPA) {
 			option_phoneme_events |= espeakINITIALIZE_PHONEME_IPA;
@@ -655,7 +500,7 @@ autoSound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text,
 		espeak_SetParameter (espeakRANGE, my d_pitchRange, 0);
 		const char32 *voiceLanguageCode = SpeechSynthesizer_getVoiceLanguageCodeFromName (me, my d_voiceLanguageName);
 		const char32 *voiceVariantCode = SpeechSynthesizer_getVoiceVariantCodeFromName (me, my d_voiceVariantName);
-		espeakdata_SetVoiceByName ((const char *) Melder_peek32to8 (voiceLanguageCode), 
+		espeakdata_SetVoiceByName ((const char *) Melder_peek32to8 (voiceLanguageCode),
 			(const char *) Melder_peek32to8 (voiceVariantCode));
 
 		espeak_SetParameter (espeakWORDGAP, my d_wordgap * 100, 0); // espeak wordgap is in units of 10 ms
@@ -665,39 +510,37 @@ autoSound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text,
 		espeak_SetSynthCallback (synthCallback);
 
 		my d_events = Table_createWithColumnNames (0, U"time type type-t t-pos length a-pos sample id uniq");
-
+		
 		#ifdef _WIN32
                 wchar_t *textW = Melder_peek32toW (text);
-                espeak_Synth (textW, wcslen (textW) + 1, 0, POS_CHARACTER, 0, synth_flags, nullptr, me);
+                espeak_Synth (textW, wcslen (textW) + 1, 0, POS_CHARACTER, 0, synth_flags, NULL, me);
 		#else
-                espeak_Synth (text, str32len (text) + 1, 0, POS_CHARACTER, 0, synth_flags, nullptr, me);
+                espeak_Synth (text, str32len (text) + 1, 0, POS_CHARACTER, 0, synth_flags, NULL, me);
 		#endif
-				
+
 		espeak_Terminate ();
 		autoSound thee = buffer_to_Sound (my d_wav, my d_numberOfSamples, my d_internalSamplingFrequency);
 
 		if (my d_samplingFrequency != my d_internalSamplingFrequency) {
-			thee = Sound_resample (thee.get(), my d_samplingFrequency, 50);
+			thee.reset (Sound_resample (thee.peek(), my d_samplingFrequency, 50));
 		}
 		my d_numberOfSamples = 0; // re-use the wav-buffer
-		if (tg) {
-			double xmin = Table_getNumericValue_Assert (my d_events.get(), 1, 1);
-			if (xmin > thy xmin) {
-				xmin = thy xmin;
-			}
-			double xmax = Table_getNumericValue_Assert (my d_events.get(), my d_events -> rows.size, 1);
-			if (xmax < thy xmax) {
-				xmax = thy xmax;
-			}
-			autoTextGrid tg1 = Table_to_TextGrid (my d_events.get(), text, xmin, xmax);
-			*tg = TextGrid_extractPart (tg1.get(), thy xmin, thy xmax, 0);
+		if (tg != NULL) {
+			double xmin = Table_getNumericValue_Assert (my d_events, 1, 1);
+			if (xmin > thy xmin) xmin = thy xmin;
+			double xmax = Table_getNumericValue_Assert (my d_events, my d_events -> rows -> size, 1);
+			if (xmax < thy xmax) xmax = thy xmax;
+			autoTextGrid atg1 = Table_to_TextGrid (my d_events, text, xmin, xmax);
+			autoTextGrid atg2 =  TextGrid_extractPart (atg1.peek(), thy xmin, thy xmax, 0);
+			*tg = atg2.transfer();
 		}
-		if (events) {
-			Table_setEventTypeString (my d_events.get());
-			*events = my d_events.move();
+		if (events != NULL) {
+			Table_setEventTypeString (my d_events);
+			*events = my d_events;
+			my d_events = 0;
 		}
-		my d_events.reset();
-		return thee;
+		forget (my d_events);
+		return thee.transfer();
 	} catch (MelderError) {
 		espeak_Terminate ();
 		Melder_throw (U"Text not played.");
diff --git a/dwtools/SpeechSynthesizer.h b/dwtools/SpeechSynthesizer.h
index 27eb6e2..338308e 100644
--- a/dwtools/SpeechSynthesizer.h
+++ b/dwtools/SpeechSynthesizer.h
@@ -2,7 +2,7 @@
 #define _SpeechSynthesizer_h_
 /* SpeechSynthesizer.h
  *
- * Copyright (C) 2011-2013, 2015-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2011-2013 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,29 +38,24 @@
 #define SpeechSynthesizer_INPUT_TAGGEDTEXT 3
 
 #include "SpeechSynthesizer_def.h"
+oo_CLASS_CREATE (SpeechSynthesizerVoice, Data);
+oo_CLASS_CREATE (SpeechSynthesizer, Data);
 
-autoSpeechSynthesizerVoice SpeechSynthesizerVoice_create (long numberOfFormants);
-
+SpeechSynthesizerVoice SpeechSynthesizerVoice_create (long numberOfFormants);
 void SpeechSynthesizerVoice_setDefaults (SpeechSynthesizerVoice me);
-
 void SpeechSynthesizerVoice_initFromEspeakVoice (SpeechSynthesizerVoice me, voice_t *voice);
 
 
-void SpeechSynthesizer_initEspeak ();
-
-autoSpeechSynthesizer SpeechSynthesizer_create (const char32 *voiceLanguageName, const char32 *voiceVariantName);
+void SpeechSynthesizer_initSoundBuffer (SpeechSynthesizer me);
+SpeechSynthesizer SpeechSynthesizer_create (const char32 *voiceLanguageName, const char32 *voiceVariantName);
 
 const char32 *SpeechSynthesizer_getVoiceLanguageCodeFromName (SpeechSynthesizer me, const char32 *voiceLanguageName);
-
 const char32 *SpeechSynthesizer_getVoiceVariantCodeFromName (SpeechSynthesizer me, const char32 *voiceVariantName);
 
-void SpeechSynthesizer_changeLanguageNameToCurrent (SpeechSynthesizer me);
-
 void SpeechSynthesizer_setTextInputSettings (SpeechSynthesizer me, int inputTextFormat, int inputPhonemeCoding);
-
 void SpeechSynthesizer_setSpeechOutputSettings (SpeechSynthesizer me, double samplingFrequency, double wordgap, long pitchAdjustment, long pitchRange, long wordsPerMinute, bool estimateWordsPerMinute, int outputPhonemeCodes);
 
-autoSound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text, autoTextGrid *tg, autoTable *events);
+Sound SpeechSynthesizer_to_Sound (SpeechSynthesizer me, const char32 *text, TextGrid *tg, Table *events);
 
 void SpeechSynthesizer_playText (SpeechSynthesizer me, const char32 *text);
 
diff --git a/dwtools/SpeechSynthesizer_and_TextGrid.cpp b/dwtools/SpeechSynthesizer_and_TextGrid.cpp
index 4ffbcb4..eba29a9 100644
--- a/dwtools/SpeechSynthesizer_and_TextGrid.cpp
+++ b/dwtools/SpeechSynthesizer_and_TextGrid.cpp
@@ -1,6 +1,6 @@
 /* SpeechSynthesizer_and_TextGrid.cpp
  *
- * Copyright (C) 2011-2012, 2015-2016 David Weenink
+ * Copyright (C) 2011-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,49 +32,49 @@
 
 // prototypes
 static void IntervalTier_splitInterval (IntervalTier me, double time, const char32 *leftLabel, long interval, double precision);
-static autoIntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTier me, IntervalTier thee, const char32 *label, double precision);
-static autoIntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision);
-static autoTable IntervalTiers_to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs);
+static IntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTier me, IntervalTier thee, const char32 *label, double precision);
+static IntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision);
+static TextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align2 (SpeechSynthesizer me, Sound thee, IntervalTier him, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration);
+static Table IntervalTiers_to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs);
 
-autoSound SpeechSynthesizer_and_TextInterval_to_Sound (SpeechSynthesizer me, TextInterval thee, autoTextGrid *p_tg)
+Sound SpeechSynthesizer_and_TextInterval_to_Sound (SpeechSynthesizer me, TextInterval thee, TextGrid *tg)
 {
 	try {
-		if (! thy text || thy text[0] == U'\0') {
+		if (thy text == NULL || thy text[0] == '\0') {
 			Melder_throw (U"No text in TextInterval.");
 		}
-		autoSound him = SpeechSynthesizer_to_Sound (me, thy text, p_tg, nullptr);
-		return him;
+		autoSound him = SpeechSynthesizer_to_Sound (me, thy text, tg, NULL);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from TextInterval.");
 	}
 }
 
-autoSound SpeechSynthesizer_and_TextGrid_to_Sound (SpeechSynthesizer me, TextGrid thee, long tierNumber, long iinterval, autoTextGrid *p_tg) {
+Sound SpeechSynthesizer_and_TextGrid_to_Sound (SpeechSynthesizer me, TextGrid thee, long tierNumber, long iinterval, TextGrid *tg) {
 	try {
 		TextGrid_checkSpecifiedTierNumberWithinRange (thee, tierNumber);
-		IntervalTier intervalTier = (IntervalTier) thy tiers->at [tierNumber];
+		IntervalTier intervalTier = (IntervalTier) thy tiers -> item [tierNumber];
 		if (intervalTier -> classInfo != classIntervalTier) {
 			Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
 		}
-		if (iinterval < 1 || iinterval > intervalTier -> intervals.size) {
+		if (iinterval < 1 || iinterval > intervalTier -> intervals -> size) {
 			Melder_throw (U"Interval ", iinterval, U" does not exist on tier ", tierNumber, U".");
 		}
-		return SpeechSynthesizer_and_TextInterval_to_Sound (me, intervalTier -> intervals.at [iinterval], p_tg);
+		return SpeechSynthesizer_and_TextInterval_to_Sound (me, (TextInterval) intervalTier -> intervals -> item[iinterval], tg);
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from textGrid.");
 	}
 }
 
-#if 0
 static double TextGrid_getStartTimeOfFirstOccurence (TextGrid thee, long tierNumber, const char32 *label) {
 	TextGrid_checkSpecifiedTierNumberWithinRange (thee, tierNumber);
-	IntervalTier intervalTier = (IntervalTier) thy tiers->at [tierNumber];
+	IntervalTier intervalTier = (IntervalTier) thy tiers -> item [tierNumber];
 	if (intervalTier -> classInfo != classIntervalTier) {
-		Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
+			Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
 	}
 	double start = NUMundefined;
-	for (long iint = 1; iint <= intervalTier -> intervals.size; iint ++) {
-		TextInterval ti = intervalTier -> intervals.at [iint];
+	for (long iint = 1; iint <= intervalTier -> intervals -> size; iint++) {
+		TextInterval ti = (TextInterval) intervalTier -> intervals -> item[iint];
 		if (Melder_cmp (ti -> text, label) == 0) {
 			start = ti -> xmin;
 			break;
@@ -85,27 +85,26 @@ static double TextGrid_getStartTimeOfFirstOccurence (TextGrid thee, long tierNum
 
 static double TextGrid_getEndTimeOfLastOccurence (TextGrid thee, long tierNumber, const char32 *label) {
 	TextGrid_checkSpecifiedTierNumberWithinRange (thee, tierNumber);
-	IntervalTier intervalTier = (IntervalTier) thy tiers->at [tierNumber];
+	IntervalTier intervalTier = (IntervalTier) thy tiers -> item [tierNumber];
 	if (intervalTier -> classInfo != classIntervalTier) {
-		Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
+			Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
 	}
 	double end = NUMundefined;
-	for (long iint = intervalTier -> intervals.size; iint > 0; iint --) {
-		TextInterval ti = intervalTier -> intervals.at [iint];
-		if (Melder_equ (ti -> text, label)) {
+	for (long iint = intervalTier -> intervals -> size; iint > 0; iint--) {
+		TextInterval ti = (TextInterval) intervalTier -> intervals -> item[iint];
+		if (Melder_cmp (ti -> text, label) == 0) {
 			end = ti -> xmax;
 			break;
 		}
 	}
 	return end;
 }
-#endif
 
 static void IntervalTier_getLabelInfo (IntervalTier me, const char32 *label, double *labelDurations, long *numberOfOccurences) {
     *labelDurations = 0;
     *numberOfOccurences = 0;
-    for (long i = 1; i <= my intervals.size; i ++) {
-        TextInterval ti = my intervals.at [i];
+    for (long i = 1; i <= my intervals -> size; i++) {
+        TextInterval ti = (TextInterval) my intervals -> item[i];
         if (Melder_equ (ti -> text, label)) {
             *labelDurations += ti -> xmax - ti -> xmin;
             (*numberOfOccurences)++;
@@ -116,11 +115,10 @@ static void IntervalTier_getLabelInfo (IntervalTier me, const char32 *label, dou
 #define TIMES_ARE_CLOSE(x,y) (fabs((x)-(y)) < precision)
 void IntervalTier_splitInterval (IntervalTier me, double time, const char32 *leftLabel, long interval, double precision) {
     try {
-		Melder_assert (interval > 0);
-        TextInterval ti = nullptr;
-		long index = 0; 
-        for (long i = interval; i <= my intervals.size; i ++) {
-            ti = my intervals.at [i];
+
+        long index = 0; TextInterval ti = NULL;
+        for (long i = interval; i <= my intervals -> size; i++) { // interval > 0
+            ti = (TextInterval) my intervals -> item[i];
             if (time < ti -> xmax + precision && time > ti -> xmin - precision) {
                 index = i; break;
             }
@@ -132,35 +130,34 @@ void IntervalTier_splitInterval (IntervalTier me, double time, const char32 *lef
         autoTextInterval newInterval = TextInterval_create (ti -> xmin, time, leftLabel);
         // Make start of current and begin of new interval equal
         ti -> xmin = time;
-        my intervals. addItem_move (newInterval.move());
+        Collection_addItem (my intervals, newInterval.transfer());
     } catch (MelderError) {
         Melder_throw (U"Boundary not inserted.");
     }
 
 }
 
-static autoTextTier TextTier_and_IntervalTier_cutPartsMatchingLabel (TextTier me, IntervalTier thee, const char32 *label, double precision) {
+static TextTier TextTier_and_IntervalTier_cutPartsMatchingLabel (TextTier me, IntervalTier thee, const char32 *label, double precision) {
     try {
         if (my xmin != thy xmin || my xmax != thy xmax) {
             Melder_throw (U"Domains must be equal.");
         }
-        long myIndex = 1;
-		double timeCut = 0.0;
-        autoTextTier him = TextTier_create (0.0, my xmax - my xmin);
-        for (long j = 1; j <= thy intervals.size; j ++) {
-            TextInterval cut = thy intervals.at [j];
+        long myIndex = 1; double timeCut = 0;
+        autoTextTier him = TextTier_create (0, my xmax - my xmin);
+        for (long j = 1; j <= thy intervals -> size; j++) {
+            TextInterval cut = (TextInterval) thy intervals -> item[j];
             if (Melder_equ (cut -> text, label)) {
                 timeCut += cut -> xmax - cut -> xmin;
             } else {
-                 while (myIndex <= my points.size) {
-                    TextPoint tp = my points.at [myIndex];
+                 while (myIndex <= my points -> size) {
+                    TextPoint tp = (TextPoint) my points -> item[myIndex];
                     if (tp -> number < cut -> xmin - precision) {
                         // point is left of cut
                         myIndex++;
                     } else if (tp -> number < cut -> xmax + precision) {
                         // point is in (no)cut
                         double time = tp -> number - my xmin - timeCut;
-                        TextTier_addPoint (him.get(), time, tp -> mark);
+                        TextTier_addPoint (him.peek(), time, tp -> mark);
                         myIndex++;
                     } else {
                         break;
@@ -169,29 +166,30 @@ static autoTextTier TextTier_and_IntervalTier_cutPartsMatchingLabel (TextTier me
             }
         }
         his xmax -= timeCut;
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": parts not cut.");
     }
 }
 
+
 // Cut parts from me marked by labels in thee
-autoIntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTier me, IntervalTier thee, const char32 *label, double precision) {
+IntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTier me, IntervalTier thee, const char32 *label, double precision) {
     try {
         if (my xmin != thy xmin || my xmax != thy xmax) {
             Melder_throw (U"Domains must be equal.");
         }
-        autoNUMvector<double> durations (1, my intervals.size);
-        for (long i = 1; i <= my intervals.size; i ++) {
-            TextInterval ti = my intervals.at [i];
+        autoNUMvector<double> durations (1, my intervals -> size);
+        for (long i = 1; i <= my intervals -> size; i++) {
+            TextInterval ti = (TextInterval) my intervals -> item[i];
             durations[i] = ti -> xmax - ti -> xmin;
         }
         long myInterval = 1;
-        for (long j = 1; j <= thy intervals.size; j ++) {
-            TextInterval cut = thy intervals.at [j];
+        for (long j = 1; j <= thy intervals -> size; j++) {
+            TextInterval cut = (TextInterval) thy intervals -> item[j];
             if (Melder_equ (cut -> text, label)) { // trim
-                while (myInterval <= my intervals.size) {
-                    TextInterval ti = my intervals.at [myInterval];
+                while (myInterval <= my intervals -> size) {
+                    TextInterval ti = (TextInterval) my intervals -> item[myInterval];
                     if (ti -> xmin > cut -> xmin - precision && ti -> xmax < cut -> xmax + precision) {
                         // 1. interval completely within cut
                         durations[myInterval] = 0;
@@ -218,7 +216,7 @@ autoIntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTi
             }
         }
         double totalDuration = 0;
-        for (long i = 1; i <= my intervals.size; i ++) {
+        for (long i = 1; i <= my intervals -> size; i++) {
             if (durations[i] < precision) {
                 durations[i] = 0;
             }
@@ -226,51 +224,51 @@ autoIntervalTier IntervalTier_and_IntervalTier_cutPartsMatchingLabel (IntervalTi
         }
         autoIntervalTier him = IntervalTier_create (0, totalDuration);
         double time = 0; long hisInterval = 1;
-        for (long i = 1; i <= my intervals.size; i ++) {
+        for (long i = 1; i <= my intervals -> size; i++) {
             if (durations[i] <= 0) continue;
-            TextInterval ti = my intervals.at [i];
+            TextInterval ti = (TextInterval) my intervals -> item[i];
             time += durations[i];
             if (fabs (time - totalDuration) > precision) {
-                IntervalTier_splitInterval (him.get(), time, ti -> text, hisInterval, precision);
+                IntervalTier_splitInterval (him.peek(), time, ti -> text, hisInterval, precision);
                 hisInterval++;
             } else { // last interval
-                TextInterval histi = his intervals.at [hisInterval];
+                TextInterval histi = (TextInterval) his intervals -> item[hisInterval];
                 TextInterval_setText (histi, ti -> text);
             }
         }
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": parts not cut.");
     }
 }
 
-autoTextGrid TextGrid_and_IntervalTier_cutPartsMatchingLabel (TextGrid me, IntervalTier thee, const char32 *label, double precision) {
+TextGrid TextGrid_and_IntervalTier_cutPartsMatchingLabel (TextGrid me, IntervalTier thee, const char32 *label, double precision) {
     try {
         if (my xmin != thy xmin || my xmax != thy xmax) {
             Melder_throw (U"Domains must be equal.");
         }
         double cutDurations = 0;
-        for (long i = 1; i <= thy intervals.size; i ++) {
-            TextInterval cut = thy intervals.at [i];
+        for (long i = 1; i <= thy intervals -> size; i++) {
+            TextInterval cut = (TextInterval) thy intervals -> item[i];
             if (Melder_equ (cut -> text, label)) {
                 cutDurations += cut -> xmax - cut -> xmin;
             }
         }
         if (cutDurations <= precision) { // Nothing to patch
-            return Data_copy (me);
+            return (TextGrid) Data_copy (me);
         }
         autoTextGrid him = TextGrid_createWithoutTiers (0, thy xmax - thy xmin - cutDurations);
-        for (long itier = 1; itier <= my tiers->size; itier ++) {
-            Function anyTier = my tiers->at [itier];
+        for (long itier = 1; itier <= my tiers -> size; itier++) {
+            Function anyTier = (Function) my tiers -> item[itier];
             if (anyTier -> classInfo == classIntervalTier) {
-                autoIntervalTier newTier = IntervalTier_and_IntervalTier_cutPartsMatchingLabel ((IntervalTier) anyTier, thee, label, precision);
-                his tiers -> addItem_move (newTier.move());
+                autoIntervalTier ait = IntervalTier_and_IntervalTier_cutPartsMatchingLabel ((IntervalTier) anyTier, thee, label, precision);
+                Collection_addItem (his tiers, ait.transfer());
             } else {
-                autoTextTier newTier = TextTier_and_IntervalTier_cutPartsMatchingLabel ((TextTier) anyTier, thee, label, precision);
-                his tiers -> addItem_move (newTier.move());
+                autoTextTier att = TextTier_and_IntervalTier_cutPartsMatchingLabel ((TextTier) anyTier, thee, label, precision);
+                Collection_addItem (his tiers, att.transfer());
             }
         }
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": no parts cut.");
     }
@@ -278,25 +276,24 @@ autoTextGrid TextGrid_and_IntervalTier_cutPartsMatchingLabel (TextGrid me, Inter
 
 // Patch thy intervals that match patchLabel into my intervals
 // The resulting IntervalTier has thy xmin as starting time and thy xmax as end time
-autoIntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
+IntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
     try {
-		autoNUMvector<double> durations (0L, my intervals.size + 1);
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval myti = my intervals.at [i];
-			durations [i] = myti -> xmax - myti -> xmin;
+		autoNUMvector<double> durations (0L, my intervals -> size + 1);
+		for (long i = 1; i <= my intervals -> size; i++) {
+			TextInterval myti = (TextInterval) my intervals -> item[i];
+			durations[i] = myti -> xmax - myti -> xmin;
 		}
-		long myInterval = 1;
-		double xShift = thy xmin - my xmin;
-        for (long j = 1; j <= thy intervals.size; j ++) {
-            TextInterval patch = thy intervals.at [j];
+		long myInterval = 1; double xShift = thy xmin - my xmin;
+        for (long j = 1; j <= thy intervals -> size; j++) {
+            TextInterval patch = (TextInterval) thy intervals -> item[j];
             if (Melder_equ (patch -> text, patchLabel)) {
 				if (j == 1) {
 					xShift += durations[0] = patch -> xmax - patch -> xmin;
-				} else if (j == thy intervals.size) {
-					durations [my intervals.size + 1] = patch -> xmax - patch -> xmin;
+				} else if (j == thy intervals -> size) {
+					durations[my intervals -> size + 1] = patch -> xmax - patch -> xmin;
 				} else {
-					while (myInterval <= my intervals.size) {
-						TextInterval ti = my intervals.at [myInterval];
+					while (myInterval <= my intervals -> size) {
+						TextInterval ti = (TextInterval) my intervals -> item[myInterval];
 						double tixmin = ti -> xmin + xShift;
 						double tixmax = ti -> xmax + xShift;
 						if ((patch -> xmin > tixmin - precision) && (patch -> xmin < tixmax + precision)) {
@@ -307,8 +304,8 @@ autoIntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier
 					}
 				}
             } else {
-				while (myInterval <= my intervals.size) {
-					TextInterval ti = my intervals.at [myInterval];
+				while (myInterval <= my intervals -> size) {
+					TextInterval ti = (TextInterval) my intervals -> item[myInterval];
 					double tixmax = ti -> xmax + xShift;
 					if (tixmax < patch -> xmin + precision) {
 						myInterval++;
@@ -322,50 +319,49 @@ autoIntervalTier IntervalTiers_patch_noBoundaries (IntervalTier me, IntervalTier
         // first interval
 		double time = thy xmin + durations[0];
 		long hisInterval = 1;
-		if (durations [0] > 0) {
-			IntervalTier_splitInterval (him.get(), time , U"", hisInterval, precision);
+		if (durations[0] > 0) {
+			IntervalTier_splitInterval (him.peek(), time , U"", hisInterval, precision);
 			hisInterval++;
 		}
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval ti = my intervals.at [i];
-			time += durations [i];
-			IntervalTier_splitInterval (him.get(), time, ti -> text, hisInterval, precision);
+		for (long i = 1; i <= my intervals -> size; i++) {
+			TextInterval ti = (TextInterval) my intervals -> item[i];
+			time += durations[i];
+			IntervalTier_splitInterval (him.peek(), time, ti -> text, hisInterval, precision);
 			hisInterval++;
 		}
-		if (durations [my intervals.size + 1] > 0) {
-			time += durations [my intervals.size + 1];
-			IntervalTier_splitInterval (him.get(), time , U"", hisInterval, precision);
+		if (durations[my intervals -> size + 1] > 0) {
+			time += durations[my intervals -> size + 1];
+			IntervalTier_splitInterval (him.peek(), time , U"", hisInterval, precision);
 		}
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": not patched.");
     }
 }
 
-#if 0
-static autoIntervalTier IntervalTiers_patch (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
+static IntervalTier IntervalTiers_patch (IntervalTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
     try {
         autoIntervalTier him = IntervalTier_create (thy xmin, thy xmax);
         long myInterval = 1, hisInterval = 1;
         double xmax = thy xmin;
-        for (long i = 1; i <= thy intervals.size; i ++) {
-            TextInterval myti, ti = thy intervals.at [i];
+        for (long i = 1; i <= thy intervals -> size; i++) {
+            TextInterval myti, ti = (TextInterval) thy intervals -> item[i];
             if (Melder_equ (ti -> text, patchLabel)) {
                 bool splitInterval = false; double endtime, split = 0;
                 if (i > 0) {
-                    while (myInterval <= my intervals.size) {
-                        myti = my intervals.at [myInterval];
+                    while (myInterval <= my intervals -> size) {
+                        myti = (TextInterval) my intervals -> item[myInterval];
                         endtime = xmax + myti -> xmax - myti -> xmin;
                         if (endtime <= ti -> xmin + precision) {
                             xmax = endtime;
-                            IntervalTier_splitInterval (him.get(), xmax, myti -> text, hisInterval, precision);
+                            IntervalTier_splitInterval (him.peek(), xmax, myti -> text, hisInterval, precision);
                             hisInterval++;
                         } else {
                             if (xmax < ti -> xmin - precision) { // split interval ???
                                 splitInterval = true;
                                 xmax = ti -> xmin;
                                 split = endtime - xmax;
-                                IntervalTier_splitInterval (him.get(), xmax, myti -> text, hisInterval, precision);
+                                IntervalTier_splitInterval (him.peek(), xmax, myti -> text, hisInterval, precision);
                                 hisInterval ++; myInterval++;
                             }
                             break;
@@ -374,45 +370,44 @@ static autoIntervalTier IntervalTiers_patch (IntervalTier me, IntervalTier thee,
                     }
                 }
                 xmax += ti -> xmax - ti -> xmin;
-                IntervalTier_splitInterval (him.get(), xmax, U"", hisInterval, precision);
+                IntervalTier_splitInterval (him.peek(), xmax, U"", hisInterval, precision);
                 hisInterval++;
                 if (splitInterval) {
                     xmax += split;
-                    IntervalTier_splitInterval (him.get(), xmax, myti -> text, hisInterval, precision);
+                    IntervalTier_splitInterval (him.peek(), xmax, myti -> text, hisInterval, precision);
                     hisInterval ++;
                 }
-            } else if (i == thy intervals.size) { // copy remaining if last interval doesn't match
-                while (myInterval <= my intervals.size) {
-                    myti = my intervals.at [myInterval];
+            } else if (i == thy intervals -> size) { // copy remaining if last interval doesn't match
+                while (myInterval <= my intervals -> size) {
+                    myti = (TextInterval) my intervals -> item[myInterval];
                     xmax += myti -> xmax - myti -> xmin;
-                    IntervalTier_splitInterval (him.get(), xmax, myti -> text, hisInterval, precision);
+                    IntervalTier_splitInterval (him.peek(), xmax, myti -> text, hisInterval, precision);
                     hisInterval++;
                     myInterval++;
                 }
             }
         }
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": not patched.");
     }
 }
-#endif
 
-static autoTextTier TextTier_and_IntervalTier_patch (TextTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
+static TextTier TextTier_and_IntervalTier_patch (TextTier me, IntervalTier thee, const char32 *patchLabel, double precision) {
     try {
         long myIndex = 1;
         autoTextTier him = TextTier_create (thy xmin, thy xmax);
         double xShift = thy xmin - my xmin;
-        for (long i = 1; i <= thy intervals.size; i ++) {
-            TextInterval ti = thy intervals.at [i];
+        for (long i = 1; i <= thy intervals -> size; i++) {
+            TextInterval ti = (TextInterval) thy intervals -> item[i];
             if (Melder_equ (ti -> text, patchLabel)) {
                 if (i > 1) {
-                    while (myIndex <= my points.size) {
-                        TextPoint tp = my points.at [myIndex];
+                    while (myIndex <= my points -> size) {
+                        TextPoint tp = (TextPoint) my points -> item[myIndex];
                         double time = tp -> number + xShift;
                         if (time < ti -> xmin + precision) {
-                            autoTextPoint newPoint = TextPoint_create (time, tp -> mark);
-                            his points. addItem_move (newPoint.move());
+                            autoTextPoint atp = TextPoint_create (time, tp -> mark);
+                            Collection_addItem (his points, atp.transfer());
                         } else {
                             break;
                         }
@@ -420,57 +415,58 @@ static autoTextTier TextTier_and_IntervalTier_patch (TextTier me, IntervalTier t
                     }
                 }
                 xShift += ti -> xmax - ti -> xmin;
-           } else if (i == thy intervals.size) {
-                while (myIndex <= my points.size) {
-                    TextPoint tp = my points.at [myIndex];
+           } else if (i == thy intervals -> size) {
+                while (myIndex <= my points -> size) {
+                    TextPoint tp = (TextPoint) my points -> item[myIndex];
                     double time = tp -> number + xShift;
                     if (time < ti -> xmin + precision) {
-                        autoTextPoint newPoint = TextPoint_create (time, tp -> mark);
-                        his points. addItem_move (newPoint.move());
+                        autoTextPoint atp = TextPoint_create (time, tp -> mark);
+                        Collection_addItem (his points, atp.transfer());
                     }
                     myIndex++;
                 }
             }
         }
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": cannot patch TextTier.");
     }
 }
 
-autoTextGrid TextGrid_and_IntervalTier_patch (TextGrid me, IntervalTier thee, const char32 *patchLabel, double precision) {
+TextGrid TextGrid_and_IntervalTier_patch (TextGrid me, IntervalTier thee, const char32 *patchLabel, double precision) {
     try {
         double patchDurations;
         long numberOfPatches;
         IntervalTier_getLabelInfo (thee, patchLabel, &patchDurations, &numberOfPatches);
         if (patchDurations <= 0 || my xmax - my xmin >= thy xmax - thy xmin ) { // Nothing to patch
-            return Data_copy (me);
+            return (TextGrid) Data_copy (me);
         }
         autoTextGrid him = TextGrid_createWithoutTiers (thy xmin, thy xmax);
-        for (long itier = 1; itier <= my tiers->size; itier ++) {
-            Function anyTier = my tiers->at [itier];
+        for (long itier = 1; itier <= my tiers -> size; itier++) {
+            Function anyTier = (Function) my tiers -> item[itier];
             if (anyTier -> classInfo == classIntervalTier) {
 //                autoIntervalTier ait = IntervalTiers_patch ((IntervalTier) anyTier, thee, patchLabel, precision);
-                autoIntervalTier newTier = IntervalTiers_patch_noBoundaries ((IntervalTier) anyTier, thee, patchLabel, precision);
-                his tiers -> addItem_move (newTier.move());
+                autoIntervalTier ait = IntervalTiers_patch_noBoundaries ((IntervalTier) anyTier, thee, patchLabel, precision);
+                Collection_addItem (his tiers, ait.transfer());
             } else {
-                autoTextTier newTier = TextTier_and_IntervalTier_patch ((TextTier) anyTier, thee, patchLabel, precision);
-                his tiers -> addItem_move (newTier.move());
+                autoTextTier att = TextTier_and_IntervalTier_patch ((TextTier) anyTier, thee, patchLabel, precision);
+                Collection_addItem (his tiers, att.transfer());
             }
         }
-        return him;
+        return him.transfer();
     } catch (MelderError) {
         Melder_throw (me, U": not patched.");
     }
 }
 
 // We assume that the Sound and the SpeechSynthesizer have the same samplingFrequency
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesizer me, Sound thee, TextInterval him, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
+// schakel waarschuwingen over stiltedetectie uit
+TextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesizer me, Sound thee, TextInterval him, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
 	try {
 		if (thy xmin != his xmin || thy xmax != his xmax) {
 			Melder_throw (U"Domains of Sound and TextGrid must be equal.");
 		}
-		if (fabs (1.0 / thy dx - my d_samplingFrequency) > 1e-9) {
+		if (fabs (1.0 / thy dx - my d_samplingFrequency) > NUMfpp -> eps) {
 			Melder_throw (U"The sampling frequencies of the SpeechSynthesizer and the Sound must be equal.");
 		}
 		long numberOfTokens = Melder_countTokens (his text);
@@ -478,9 +474,10 @@ autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesiz
 			Melder_throw (U"The interval has no text.");
 		}
 		// Remove silent intervals from start and end of sounds
-		double minPitch = 200.0, timeStep = 0.005, precision = thy dx;
+		double minPitch = 200, timeStep = 0.005, precision = thy dx;
 		double t1_thee, t2_thee;
-		autoSound s_thee = Sound_trimSilencesAtStartAndEnd (thee, 0.0, minPitch, timeStep, silenceThreshold, minSilenceDuration, minSoundingDuration, & t1_thee, & t2_thee);
+		autoSound s_thee = Sound_trimSilencesAtStartAndEnd (thee, 0.0, minPitch, timeStep,
+			silenceThreshold, minSilenceDuration, minSoundingDuration, &t1_thee, &t2_thee);
 		double s_thee_duration = s_thee -> xmax - s_thee -> xmin;
 		bool hasSilence_thee = fabs (t1_thee - thy xmin) > precision || fabs (t2_thee - thy xmax) > precision;
 
@@ -491,49 +488,49 @@ autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesiz
 			double wordsPerMinute_rawText = 60.0 * (str32len (his text) / 5.0) / s_thee_duration;
 			my d_wordsPerMinute =  (long) floor (0.5 * (wordsPerMinute_rawTokens + wordsPerMinute_rawText));
 		}
-		autoTextGrid tg2;
-		autoSound synth = SpeechSynthesizer_and_TextInterval_to_Sound (me, him, & tg2);
-		autoTextGrid silentTextGrid;
+		TextGrid tg2 = 0;
+		autoSound s2 = SpeechSynthesizer_and_TextInterval_to_Sound (me, him, &tg2);
+		autoTextGrid atg2 = tg2, s_atg2;
 		/*
 		 * For the synthesizer the silence threshold has to be < -30 dB, otherwise fricatives will not
-		 * be found as sounding! This is ok since silences are almost at zero amplitudes for synthesized sounds.
+		 * be found as sounding! This is ok since silences are almost at zero amplitudes
 		 * We also have to decrease the minimum silence and minimum sounding duration to catch, for example,
-		 * the final plosive "t" from the synthesized sound "text"
+		 * the final plosive "t" from the word "text"
 		 *
 		 */
-		double synth_silenceThreshold = -40.0, synth_minSilenceDuration = 0.05, synth_minSoundingDuration = 0.05;
-		double t1_synth, t2_synth;
-		autoSound synth_trimmed = Sound_trimSilencesAtStartAndEnd (synth.get(), 0.0, minPitch, timeStep,
-			synth_silenceThreshold, synth_minSilenceDuration, synth_minSoundingDuration, & t1_synth, & t2_synth);
-		double synth_trimmed_duration = synth_trimmed -> xmax - synth_trimmed -> xmin;
-		bool hasSilence_synth = fabs (t1_synth - synth -> xmin) > precision || fabs (t2_synth - synth -> xmax) > precision;
-		if (hasSilence_synth) {
-			silentTextGrid = TextGrid_extractPart (tg2.get(), t1_synth, t2_synth, true);
+		double s2_silenceThreshold = -40, s2_minSilenceDuration = 0.05, s2_minSoundingDuration = 0.05;
+		double t1_s2, t2_s2;
+		autoSound s_s2 = Sound_trimSilencesAtStartAndEnd (s2.peek(), 0.0, minPitch, timeStep,
+			s2_silenceThreshold, s2_minSilenceDuration, s2_minSoundingDuration, &t1_s2, &t2_s2);
+		double s_s2_duration = s_s2 -> xmax - s_s2 -> xmin;
+		bool hasSilence_s2 = fabs (t1_s2 - s2 -> xmin) > precision || fabs (t2_s2 - s2 -> xmax) > precision;
+		if (hasSilence_s2) {
+			s_atg2.reset (TextGrid_extractPart (atg2.peek(), t1_s2, t2_s2, true));
 		}
 		double analysisWidth = 0.02, dt = 0.005, band = 0.0;
 		// compare the durations of the two sounds to get an indication of the slope constraint of the DTW
-		double slope = s_thee_duration / synth_trimmed_duration;
-		slope = (slope > 1.0 ? slope : 1.0 / slope);
-        int constraint = (slope < 1.5 ? 4 : slope < 2.0 ? 3 : slope < 3.0 ? 2 : 1);
-		//autoMFCC m1 = Sound_to_MFCC ((hasSilence_thee ? s_thee.get() : thee),
+		double slope = s_thee_duration / s_s2_duration;
+		slope = slope > 1 ? slope : 1 / slope;
+        int constraint = slope < 1.5 ? 4 : (slope < 2 ? 3 : (slope < 3 ? 2 : 1));
+		//autoMFCC m1 = Sound_to_MFCC ((hasSilence_thee ? s_thee.peek() : thee),
 		//	numberOfCoefficients, analysisWidth, dt, f1_mel, fmax_mel, df_mel);
-		//autoMFCC m2 = Sound_to_MFCC ((hasSilence_synth ? synth_trimmed.get() : synth.get()),
+		//autoMFCC m2 = Sound_to_MFCC ((hasSilence_s2 ? s_s2.peek() : s2.peek()),
 		//	numberOfCoefficients, analysisWidth, dt, f1_mel, fmax_mel, df_mel);
 		//double wc = 1, wle = 0, wr = 0, wer = 0, dtr = 0;
 		//int matchStart = 1, matchEnd = 1, constraint = 4; // no 1/3 1/2 2/3
-		//autoDTW dtw = CCs_to_DTW (m1.get(), m2.get(), wc, wle, wr, wer, dtr, matchStart, matchEnd, constraint);
-        autoDTW dtw = Sounds_to_DTW ((hasSilence_thee ? s_thee.get() : thee), (hasSilence_synth ? synth_trimmed.get() : synth.get()),
-			analysisWidth, dt, band, constraint);
-		autoTextGrid result = DTW_and_TextGrid_to_TextGrid (dtw.get(), (hasSilence_synth ? silentTextGrid.get() : tg2.get()), precision);
+		//autoDTW dtw = CCs_to_DTW (m1.peek(), m2.peek(), wc, wle, wr, wer, dtr, matchStart, matchEnd, constraint);
+        autoDTW dtw = Sounds_to_DTW ((hasSilence_thee ? s_thee.peek() : thee), (hasSilence_s2 ? s_s2.peek() : s2.peek()), analysisWidth, dt, band, constraint);
+		autoTextGrid result = DTW_and_TextGrid_to_TextGrid (dtw.peek(),
+			(hasSilence_s2 ? s_atg2.peek() : atg2.peek()), precision);
 		if (hasSilence_thee) {
 			if (t1_thee > thy xmin) {
-				TextGrid_setEarlierStartTime (result.get(), thy xmin, U"", U"");
+				TextGrid_setEarlierStartTime (result.peek(), thy xmin, U"", U"");
 			}
 			if (t2_thee < thy xmax) {
-				TextGrid_setLaterEndTime (result.get(), thy xmax, U"", U"");
+				TextGrid_setLaterEndTime (result.peek(), thy xmax, U"", U"");
 			}
 		}
-		return result;
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound and TextInterval not aligned.");
 	}
@@ -553,7 +550,8 @@ typedef struct structAlignmentOfSoundAndTextStruct {
 	double wordgap; // synthesizer
 } *SpeechSynthesizer_alignmentStruct;*/
 
-static autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align2 (SpeechSynthesizer me, Sound thee, TextInterval him, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
+TextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align2 (SpeechSynthesizer me, Sound thee, TextInterval him, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration);
+TextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align2 (SpeechSynthesizer me, Sound thee, TextInterval him, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
     try {
         if (thy xmin != his xmin || thy xmax != his xmax) {
             Melder_throw (U"Domains of Sound and TextGrid must be equal.");
@@ -570,208 +568,205 @@ static autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align2 (SpeechS
          * the final plosive "t" from the word "text"
          *
          */
+        TextGrid tg_tmp = 0;
         double minPitch = 200, timeStep = 0.005, precision = thy dx;
-        autoTextGrid thee_trimmer;
-        autoSound thee_trimmed = Sound_trimSilences (thee, trimDuration, false, minPitch, timeStep, silenceThreshold,  minSilenceDuration, minSoundingDuration, &thee_trimmer, trimLabel);
+        autoSound thee_trimmed = Sound_trimSilences (thee, trimDuration, false, minPitch, timeStep, silenceThreshold,  minSilenceDuration, minSoundingDuration, &tg_tmp, trimLabel);
+        autoTextGrid thee_trimmer = tg_tmp;
 
         // 2. synthesize the sound from the TextInterval
 
-        autoTextGrid tg_syn;
-        autoSound synth = SpeechSynthesizer_and_TextInterval_to_Sound (me, him, &tg_syn);
+        autoSound synth = SpeechSynthesizer_and_TextInterval_to_Sound (me, him, &tg_tmp);
+        autoTextGrid tg_syn = tg_tmp;
 
         // 3. There should be no silences in the synthesized sound except at the start and finish.
-		//    Set the wordwarp parameter to a small value like 0.001 s.
+		//    Set the wordwap parameter to a small value like 0.001 s.
 
         // 4. Get DTW from the two sounds
-		
         double analysisWidth = 0.02, dt = 0.005, band = 0.0;
         int constraint = 4;
-        autoDTW dtw = Sounds_to_DTW (thee_trimmed.get(), synth.get(), analysisWidth, dt, band, constraint);
+        autoDTW dtw = Sounds_to_DTW (thee_trimmed.peek(), synth.peek(), analysisWidth, dt, band, constraint);
 
         // 6. Warp the synthesis TextGrid
-        // first make domains equal, otherwsise the warper protests
+        // first make domain equal, otherwsise the warper protests
 
-        autoTextGrid warp = DTW_and_TextGrid_to_TextGrid (dtw.get(), tg_syn.get(), precision);
+        autoTextGrid warp = DTW_and_TextGrid_to_TextGrid (dtw.peek(), tg_syn.peek(), precision);
 
         // 7. Patch the trimmed intervals back into the warped TextGrid
-		
-        autoTextGrid result = TextGrid_and_IntervalTier_patch (warp.get(), (IntervalTier) thee_trimmer -> tiers->at [1], U"trim", 2 * thy dx);
+        autoTextGrid result = TextGrid_and_IntervalTier_patch (warp.peek(), (IntervalTier) thee_trimmer -> tiers ->item[1], U"trim", 2 * thy dx);
 
-        return result;
+        return result.transfer();
     } catch (MelderError) {
         Melder_throw (thee, U": sound and TextInterval not aligned.");
     }
 }
 
-autoTextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align (SpeechSynthesizer me, Sound thee, IntervalTier him, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
+TextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align (SpeechSynthesizer me, Sound thee, IntervalTier him, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
     try {
-        if (istart < 1 || iend < istart || iend > his intervals.size) {
+        if (istart < 1 || iend < istart || iend > his intervals -> size) {
             Melder_throw (U"Not avalid interval range.");
         }
-        OrderedOf<structTextGrid> textgrids;
-        TextInterval tb = his intervals.at [istart];
-        TextInterval te = his intervals.at [iend];
+        autoCollection textgrids = Ordered_create ();
+        TextInterval tb = (TextInterval) his intervals -> item[istart];
+        TextInterval te = (TextInterval) his intervals -> item[iend];
         autoTextGrid result = TextGrid_create (tb -> xmin, te -> xmax, U"sentence clause word phoneme", U"");
         for (long iint = istart; iint <= iend; iint ++) {
-            TextInterval ti = his intervals.at [iint];
-            if (ti -> text && str32len (ti -> text) > 0) {
+            TextInterval ti = (TextInterval) his intervals -> item[iint];
+            if (ti -> text != NULL && str32len (ti -> text) > 0) {
                 autoSound sound = Sound_extractPart (thee, ti -> xmin, ti -> xmax,  kSound_windowShape_RECTANGULAR, 1, true);
-                autoTextGrid grid = SpeechSynthesizer_and_Sound_and_TextInterval_align (me, sound.get(), ti, silenceThreshold, minSilenceDuration, minSoundingDuration);
-                textgrids. addItem_move (grid.move());
+                autoTextGrid atg = SpeechSynthesizer_and_Sound_and_TextInterval_align (me, sound.peek(), ti, silenceThreshold, minSilenceDuration, minSoundingDuration);
+                Collection_addItem (textgrids.peek(), atg.transfer());
             }
         }
-        if (textgrids.size == 0) {
+        if (textgrids -> size == 0) {
             Melder_throw (U"Nothing could be aligned. Was your IntervalTier empty?");
         }
-        autoTextGrid aligned = TextGrids_to_TextGrid_appendContinuous (& textgrids, true);
-        return aligned;
+        autoTextGrid aligned = TextGrids_to_TextGrid_appendContinuous (textgrids.peek(), true);
+        return aligned.transfer();
     } catch (MelderError) {
         Melder_throw (U"No aligned TextGrid created.");
     }
 }
 
-static autoTextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align2 (SpeechSynthesizer me, Sound thee, IntervalTier him, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
+TextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align2 (SpeechSynthesizer me, Sound thee, IntervalTier him, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
     try {
-        if (istart < 1 || iend < istart || iend > his intervals.size) {
+        if (istart < 1 || iend < istart || iend > his intervals -> size) {
             Melder_throw (U"Not avalid interval range.");
         }
-        OrderedOf<structTextGrid> textgrids;
-        TextInterval tb = his intervals.at [istart];
-        TextInterval te = his intervals.at [iend];
+        autoCollection textgrids = Ordered_create ();
+        TextInterval tb = (TextInterval) his intervals -> item[istart];
+        TextInterval te = (TextInterval) his intervals -> item[iend];
         autoTextGrid result = TextGrid_create (tb -> xmin, te -> xmax, U"sentence clause word phoneme", U"");
         for (long iint = istart; iint <= iend; iint ++) {
-            TextInterval ti = his intervals.at [iint];
-            if (ti -> text && str32len (ti -> text) > 0) {
+            TextInterval ti = (TextInterval) his intervals -> item[iint];
+            if (ti -> text != NULL && str32len (ti -> text) > 0) {
                 autoSound sound = Sound_extractPart (thee, ti -> xmin, ti -> xmax,  kSound_windowShape_RECTANGULAR, 1, true);
-                autoTextGrid grid = SpeechSynthesizer_and_Sound_and_TextInterval_align2 (me, sound.get(), ti, silenceThreshold, minSilenceDuration, minSoundingDuration, trimDuration);
-                textgrids. addItem_move (grid.move());
+                autoTextGrid atg = SpeechSynthesizer_and_Sound_and_TextInterval_align2 (me, sound.peek(), ti, silenceThreshold, minSilenceDuration, minSoundingDuration, trimDuration);
+                Collection_addItem (textgrids.peek(), atg.transfer());
             }
         }
-        if (textgrids.size == 0) {
+        if (textgrids -> size == 0) {
             Melder_throw (U"Nothing could be aligned. Was your IntervalTier empty?");
         }
-        autoTextGrid aligned = TextGrids_to_TextGrid_appendContinuous (& textgrids, true);
-        return aligned;
+        autoTextGrid aligned = TextGrids_to_TextGrid_appendContinuous (textgrids.peek(), true);
+        return aligned.transfer();
     } catch (MelderError) {
         Melder_throw (U"No aligned TextGrid created.");
     }
 }
 
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
+TextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration) {
 	try {//TODO: check not empty tier
-		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (him, tierNumber);
-		autoTextGrid grid = SpeechSynthesizer_and_Sound_and_IntervalTier_align (me, thee, tier, istart, iend, silenceThreshold, minSilenceDuration, minSoundingDuration);
-		return grid;
+		IntervalTier iTier = TextGrid_checkSpecifiedTierIsIntervalTier (him, tierNumber);
+		autoTextGrid tg = SpeechSynthesizer_and_Sound_and_IntervalTier_align (me, thee, iTier, istart, iend, silenceThreshold, minSilenceDuration, minSoundingDuration);
+		return tg.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"");
 	}
 }
 
 
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align2 (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
+TextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align2 (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration) {
     try {//TODO: check not empty tier
-    	IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (him, tierNumber);
-        autoTextGrid grid = SpeechSynthesizer_and_Sound_and_IntervalTier_align2 (me, thee, tier, istart, iend, silenceThreshold, minSilenceDuration, minSoundingDuration, trimDuration);
-        return grid;
+    	IntervalTier iTier = TextGrid_checkSpecifiedTierIsIntervalTier (him, tierNumber);
+        autoTextGrid tg = SpeechSynthesizer_and_Sound_and_IntervalTier_align2 (me, thee, iTier, istart, iend, silenceThreshold, minSilenceDuration, minSoundingDuration, trimDuration);
+        return tg.transfer();
     } catch (MelderError) {
         Melder_throw (U"");
     }
 }
 
-static autoStrings IntervalTier_to_Strings_withOriginData (IntervalTier me, long *from) {
+static Strings IntervalTier_to_Strings_withOriginData (IntervalTier me, long *from) {
 	try {
 		autoStrings thee = Thing_new (Strings);
-		thy strings = NUMvector<char32 *> (1, my intervals.size);
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval ti = my intervals.at [i];
-			if (ti -> text && ti -> text [0] != U'\0') {
-				thy strings [++ thy numberOfStrings] = Melder_dup (ti -> text);
-				if (from) {
-					from [thy numberOfStrings] = i;
-				}
+		thy strings = NUMvector<char32 *> (1, my intervals -> size);
+		for (long i = 1; i <= my intervals -> size; i++) {
+			TextInterval ti = (TextInterval) my intervals -> item[i];
+			if (ti -> text != 0 && ti -> text[0] != '\0') {
+				thy strings [++(thy numberOfStrings)] = Melder_dup (ti -> text);
+				from[thy numberOfStrings] = i;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Strings created.");
 	}
 }
 
-autoTable IntervalTiers_to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs) {
+Table IntervalTiers_to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs) {
 	try {
-		long numberOfTargetIntervals = target -> intervals.size;
-		long numberOfSourceIntervals = source -> intervals.size;
+		long numberOfTargetIntervals = target -> intervals -> size;
+		long numberOfSourceIntervals = source -> intervals -> size;
 		autoNUMvector<long> targetOrigin (1, numberOfTargetIntervals);
 		autoNUMvector<long> sourceOrigin (1, numberOfSourceIntervals);
 		autoStrings targets = IntervalTier_to_Strings_withOriginData (target, targetOrigin.peek());
 		autoStrings sources = IntervalTier_to_Strings_withOriginData (source, sourceOrigin.peek());
-		autoEditDistanceTable edit = EditDistanceTable_create (targets.get(), sources.get());
+		autoEditDistanceTable edit = EditDistanceTable_create (targets.peek(), sources.peek());
 		if (costs != 0) {
-			EditDistanceTable_setEditCosts (edit.get(), costs);
-			EditDistanceTable_findPath (edit.get(), nullptr);
+			EditDistanceTable_setEditCosts (edit.peek(), costs);
+			EditDistanceTable_findPath (edit.peek(), NULL);
 		}
 		long pathLength = edit -> warpingPath -> pathLength;
 		autoTable thee = Table_createWithColumnNames (pathLength - 1, U"targetInterval targetText targetStart targetEnd sourceInterval sourceText sourceStart sourceEnd operation");
 		for (long i = 2; i <= pathLength; i++) {
 			structPairOfInteger p = edit -> warpingPath -> path[i];
 			structPairOfInteger p1 = edit -> warpingPath -> path[i - 1];
-			double targetStart = NUMundefined, targetEnd = NUMundefined;
-			double sourceStart = NUMundefined, sourceEnd = NUMundefined;
+			double targetStart = NUMundefined, targetEnd =  NUMundefined;
+			double sourceStart = NUMundefined, sourceEnd =  NUMundefined;
 			const char32 * targetText = U"", *sourceText = U"";
 			long targetInterval = p.y > 1 ? targetOrigin[p.y - 1] : 0;
 			long sourceInterval = p.x > 1 ? sourceOrigin[p.x - 1] : 0;
 			if (targetInterval > 0) {
-				TextInterval ti = target -> intervals.at [targetInterval];
+				TextInterval ti = (TextInterval) target -> intervals -> item[targetInterval];
 				targetStart = ti -> xmin;
 				targetEnd =  ti -> xmax;
 				targetText = ti -> text;
 			}
 			if (sourceInterval > 0) {
-				TextInterval ti = source -> intervals.at [sourceInterval];
+				TextInterval ti = (TextInterval) source -> intervals -> item[sourceInterval];
 				sourceStart = ti -> xmin;
 				sourceEnd =  ti -> xmax;
 				sourceText = ti -> text;
 			}
 			long irow = i - 1;
 			if (p.y == p1.y) { // deletion
-				Table_setNumericValue (thee.get(), irow, 1, 0);
-				Table_setStringValue  (thee.get(), irow, 2, U"");
-				Table_setNumericValue (thee.get(), irow, 3, NUMundefined);
-				Table_setNumericValue (thee.get(), irow, 4, NUMundefined);
-				Table_setNumericValue (thee.get(), irow, 5, sourceInterval);
-				Table_setStringValue  (thee.get(), irow, 6, sourceText);
-				Table_setNumericValue (thee.get(), irow, 7, sourceStart);
-				Table_setNumericValue (thee.get(), irow, 8, sourceEnd);
-				Table_setStringValue  (thee.get(), irow, 9, U"d");
+				Table_setNumericValue (thee.peek(), irow, 1, 0);
+				Table_setStringValue  (thee.peek(), irow, 2, U"");
+				Table_setNumericValue (thee.peek(), irow, 3, NUMundefined);
+				Table_setNumericValue (thee.peek(), irow, 4, NUMundefined);
+				Table_setNumericValue (thee.peek(), irow, 5, sourceInterval);
+				Table_setStringValue  (thee.peek(), irow, 6, sourceText);
+				Table_setNumericValue (thee.peek(), irow, 7, sourceStart);
+				Table_setNumericValue (thee.peek(), irow, 8, sourceEnd);
+				Table_setStringValue  (thee.peek(), irow, 9, U"d");
 			} else if (p.x == p1.x) { // insertion
-				Table_setNumericValue (thee.get(), irow, 1, targetInterval);
-				Table_setStringValue  (thee.get(), irow, 2, targetText);
-				Table_setNumericValue (thee.get(), irow, 3, targetStart);
-				Table_setNumericValue (thee.get(), irow, 4, targetEnd);
-				Table_setNumericValue (thee.get(), irow, 5, 0);
-				Table_setStringValue  (thee.get(), irow, 6, U"");
-				Table_setNumericValue (thee.get(), irow, 7, NUMundefined);
-				Table_setNumericValue (thee.get(), irow, 8, NUMundefined);
-				Table_setStringValue  (thee.get(), irow, 9, U"i");
+				Table_setNumericValue (thee.peek(), irow, 1, targetInterval);
+				Table_setStringValue  (thee.peek(), irow, 2, targetText);
+				Table_setNumericValue (thee.peek(), irow, 3, targetStart);
+				Table_setNumericValue (thee.peek(), irow, 4, targetEnd);
+				Table_setNumericValue (thee.peek(), irow, 5, 0);
+				Table_setStringValue  (thee.peek(), irow, 6, U"");
+				Table_setNumericValue (thee.peek(), irow, 7, NUMundefined);
+				Table_setNumericValue (thee.peek(), irow, 8, NUMundefined);
+				Table_setStringValue  (thee.peek(), irow, 9, U"i");
 			} else { // substitution ?
-				Table_setNumericValue (thee.get(), irow, 1, targetInterval);
-				Table_setStringValue  (thee.get(), irow, 2, targetText);
-				Table_setNumericValue (thee.get(), irow, 3, targetStart);
-				Table_setNumericValue (thee.get(), irow, 4, targetEnd);
-				Table_setNumericValue (thee.get(), irow, 5, sourceInterval);
-				Table_setStringValue  (thee.get(), irow, 6, sourceText);
-				Table_setNumericValue (thee.get(), irow, 7, sourceStart);
-				Table_setNumericValue (thee.get(), irow, 8, sourceEnd);
-				Table_setStringValue  (thee.get(), irow, 9, Melder_equ (targetText, sourceText) ? U" " : U"s");
+				Table_setNumericValue (thee.peek(), irow, 1, targetInterval);
+				Table_setStringValue  (thee.peek(), irow, 2, targetText);
+				Table_setNumericValue (thee.peek(), irow, 3, targetStart);
+				Table_setNumericValue (thee.peek(), irow, 4, targetEnd);
+				Table_setNumericValue (thee.peek(), irow, 5, sourceInterval);
+				Table_setStringValue  (thee.peek(), irow, 6, sourceText);
+				Table_setNumericValue (thee.peek(), irow, 7, sourceStart);
+				Table_setNumericValue (thee.peek(), irow, 8, sourceEnd);
+				Table_setStringValue  (thee.peek(), irow, 9, Melder_equ (targetText, sourceText) ? U" " : U"s");
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (target, U" and ", source, U" not aligned.");
 	}
 }
 
-autoTable TextGrids_to_Table_textAlignmentment (TextGrid target, long ttier, TextGrid source, long stier, EditCostsTable costs) {
+Table TextGrids_to_Table_textAlignmentment (TextGrid target, long ttier, TextGrid source, long stier, EditCostsTable costs) {
 	try {
 		IntervalTier targetTier = TextGrid_checkSpecifiedTierIsIntervalTier (target, ttier);
 		IntervalTier sourceTier = TextGrid_checkSpecifiedTierIsIntervalTier (source, stier);
diff --git a/dwtools/SpeechSynthesizer_and_TextGrid.h b/dwtools/SpeechSynthesizer_and_TextGrid.h
index fdced16..ccf35ad 100644
--- a/dwtools/SpeechSynthesizer_and_TextGrid.h
+++ b/dwtools/SpeechSynthesizer_and_TextGrid.h
@@ -27,23 +27,23 @@
 #include "TextGrid_extensions.h"
 #include "EditDistanceTable.h"
 
-autoSound SpeechSynthesizer_and_TextInterval_to_Sound (SpeechSynthesizer me, TextInterval thee, autoTextGrid *tg);
+Sound SpeechSynthesizer_and_TextInterval_to_Sound (SpeechSynthesizer me, TextInterval thee, TextGrid *tg);
 
-autoSound SpeechSynthesizer_and_TextGrid_to_Sound (SpeechSynthesizer me, TextGrid thee, long itier, long iiint, autoTextGrid *tg);
+Sound SpeechSynthesizer_and_TextGrid_to_Sound (SpeechSynthesizer me, TextGrid thee, long itier, long iiint, TextGrid *tg);
 
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesizer me, Sound thee, TextInterval him,
+TextGrid SpeechSynthesizer_and_Sound_and_TextInterval_align (SpeechSynthesizer me, Sound thee, TextInterval him,
 	double silenceThreshold, double minSilenceDuration, double minSoundingDuration);
-autoTextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align (SpeechSynthesizer me, Sound thee, IntervalTier him,
+TextGrid SpeechSynthesizer_and_Sound_and_IntervalTier_align (SpeechSynthesizer me, Sound thee, IntervalTier him,
 	long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration);
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align (SpeechSynthesizer me, Sound thee, TextGrid him,
+TextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align (SpeechSynthesizer me, Sound thee, TextGrid him,
 	long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration);
-autoTextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align2 (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration);
+TextGrid SpeechSynthesizer_and_Sound_and_TextGrid_align2 (SpeechSynthesizer me, Sound thee, TextGrid him, long tierNumber, long istart, long iend, double silenceThreshold, double minSilenceDuration, double minSoundingDuration, double trimDuration);
 
-autoTable IntervalTiers__to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs);
-autoTable TextGrids_to_Table_textAlignmentment (TextGrid target, long ttier, TextGrid source, long stier, EditCostsTable costs);
+Table IntervalTiers__to_Table_textAlignmentment (IntervalTier target, IntervalTier source, EditCostsTable costs);
+Table TextGrids_to_Table_textAlignmentment (TextGrid target, long ttier, TextGrid source, long stier, EditCostsTable costs);
 
 /* For testing purposes only */
-autoTextGrid TextGrid_and_IntervalTier_patch (TextGrid me, IntervalTier thee, const char32 *patchLabel, double precision);
-autoTextGrid TextGrid_and_IntervalTier_cutPartsMatchingLabel (TextGrid me, IntervalTier thee, const char32 *label, double precision);
+TextGrid TextGrid_and_IntervalTier_patch (TextGrid me, IntervalTier thee, const char32 *patchLabel, double precision);
+TextGrid TextGrid_and_IntervalTier_cutPartsMatchingLabel (TextGrid me, IntervalTier thee, const char32 *label, double precision);
 
 #endif // _SpeechSynthesizer_and_TextGrid_h_
diff --git a/dwtools/SpeechSynthesizer_def.h b/dwtools/SpeechSynthesizer_def.h
index bccf107..5bf2165 100644
--- a/dwtools/SpeechSynthesizer_def.h
+++ b/dwtools/SpeechSynthesizer_def.h
@@ -1,6 +1,6 @@
 /* SpeechSynthesizer_def.h
  *
- * Copyright (C) 2011-2012, 2015-2016 David Weenink
+ * Copyright (C) 2011-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
  */
 
 #define ooSTRUCT SpeechSynthesizerVoice
-oo_DEFINE_CLASS (SpeechSynthesizerVoice, Daata)
+oo_DEFINE_CLASS (SpeechSynthesizerVoice, Data)
 	oo_STRING (d_v_name)
 
 	oo_LONG (d_phoneme_tab_ix)  // phoneme table number
@@ -63,7 +63,8 @@ oo_END_CLASS (SpeechSynthesizerVoice)
 
 
 #define ooSTRUCT SpeechSynthesizer
-oo_DEFINE_CLASS (SpeechSynthesizer, Daata)
+oo_DEFINE_CLASS (SpeechSynthesizer, Data)
+
 	// sythesizers language /voice
 	oo_STRING (d_voiceLanguageName)
 	oo_STRING (d_voiceVariantName)
@@ -83,19 +84,19 @@ oo_DEFINE_CLASS (SpeechSynthesizer, Daata)
 
 	#if !oo_READING && !oo_WRITING
 		// Filled by the call back
-		oo_AUTO_OBJECT (Table, 0, d_events)
+		oo_OBJECT(Table, 0, d_events)
 		oo_DOUBLE (d_internalSamplingFrequency)
 		oo_LONG (d_numberOfSamples)
 		oo_LONG (d_wavCapacity)
 		oo_INT_VECTOR (d_wav, d_wavCapacity)
 	#endif
 	#if oo_READING
-		SpeechSynthesizer_initEspeak ();
-		SpeechSynthesizer_changeLanguageNameToCurrent (this);
+		SpeechSynthesizer_initSoundBuffer (this);
 	#endif
 	#if oo_DECLARING
-		void v_info ()
-			override;
+		protected:
+		// overridden methods:
+			virtual void v_info ();
 	#endif
 
 oo_END_CLASS (SpeechSynthesizer)
diff --git a/dwtools/Strings_extensions.cpp b/dwtools/Strings_extensions.cpp
index c61f887..588e928 100644
--- a/dwtools/Strings_extensions.cpp
+++ b/dwtools/Strings_extensions.cpp
@@ -1,6 +1,6 @@
 /* Strings_extensions.cpp
  *
- * Copyright (C) 1993-2012, 2015-2016 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
 #include "Strings_extensions.h"
 #include "NUM2.h"
 
-autoStrings Strings_createFixedLength (long numberOfStrings) {
+Strings Strings_createFixedLength (long numberOfStrings) {
 	try {
 		if (numberOfStrings <= 0) {
 			Melder_throw (U"The number of strings must be positive.");
@@ -44,13 +44,13 @@ autoStrings Strings_createFixedLength (long numberOfStrings) {
 		autoStrings me = Thing_new (Strings);
 		my strings = NUMvector<char32 *> (1, numberOfStrings);
 		my numberOfStrings = numberOfStrings;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings not created.");
 	}
 }
 
-autoStrings Strings_createAsCharacters (const char32 *string) {
+Strings Strings_createAsCharacters (const char32 *string) {
 	try {
 		autoStrings me = Thing_new (Strings);
 		my numberOfStrings = str32len (string);
@@ -58,13 +58,13 @@ autoStrings Strings_createAsCharacters (const char32 *string) {
 		for (long i = 1; i <= my numberOfStrings; i++) {
 			my strings[i] = Melder_dup (Melder_character (*string++));
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings from characters not created.");
 	}
 }
 
-autoStrings Strings_createAsTokens (const char32 *string) {
+Strings Strings_createAsTokens (const char32 *string) {
 	try {
 		autoStrings me = Thing_new (Strings);
 		my numberOfStrings =  Melder_countTokens (string);
@@ -73,7 +73,7 @@ autoStrings Strings_createAsTokens (const char32 *string) {
 		for (char32 *token = Melder_firstToken (string); token != 0; token = Melder_nextToken ()) {
 			my strings[i++] = Melder_dup (token);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings from characters not created.");
 	}
@@ -88,54 +88,59 @@ long Strings_findString (Strings me, const char32 *string) {
 	return 0;
 }
 
-autoStrings Strings_append (OrderedOf<structStrings>* me) {
+Strings Strings_append (Collection me) {
 	try {
 		long index = 1, numberOfStrings = 0;
 
-		for (long i = 1; i <= my size; i ++) {
-			Strings s = my at [i];
+		for (long i = 1; i <= my size; i++) {
+			Strings s = (Strings) my item[i];
 			numberOfStrings += s -> numberOfStrings;
 		}
 
 		autoStrings thee = Strings_createFixedLength (numberOfStrings);
 
-		for (long i = 1; i <= my size; i ++) {
-			Strings s = my at [i];
-			for (long j = 1; j <= s -> numberOfStrings; j ++, index ++) {
-				thy strings [index] = Melder_dup (s -> strings [j]);
+		for (long i = 1; i <= my size; i++) {
+			Strings s = (Strings) my item[i];
+			for (long j = 1; j <= s -> numberOfStrings; j++, index++) {
+				if (s -> strings[j] == 0) {
+					continue;
+				}
+				thy strings [index] = Melder_dup (s -> strings[j]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not appended.");
 	}
 }
 
-autoStrings Strings_change (Strings me, const char32 *search, const char32 *replace, int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp) {
+Strings Strings_change (Strings me, const char32 *search, const char32 *replace, int maximumNumberOfReplaces,
+                        long *nmatches, long *nstringmatches, int use_regexp) {
 	try {
 		autoStrings thee = Thing_new (Strings);
-		char32 **strings = strs_replace (my strings, 1, my numberOfStrings, search, replace, maximumNumberOfReplaces, nmatches, nstringmatches, use_regexp);
+		char32 **strings = strs_replace (my strings, 1, my numberOfStrings, search, replace, maximumNumberOfReplaces,
+		                                  nmatches, nstringmatches, use_regexp);
 		thy numberOfStrings = my numberOfStrings;
 		thy strings = strings;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not changed.");
 	}
 }
 
-autoStrings strings_to_Strings (char32 **strings, long from, long to) {
+Strings strings_to_Strings (char32 **strings, long from, long to) {
 	try {
 		autoStrings thee = Strings_createFixedLength (to - from + 1);
 		for (long i = from; i <= to; i++) {
 			thy strings[i - from + 1]  = Melder_dup (strings[i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings not created.");
 	}
 }
 
-autoStrings Strings_extractPart (Strings me, long from, long to) {
+Strings Strings_extractPart (Strings me, long from, long to) {
 	try {
 		if (from < 1 || to > my numberOfStrings || from > to) Melder_throw
 			(U"Strings_extractPart: begin and end must be in interval [1, ", my numberOfStrings, U"].");
@@ -145,13 +150,13 @@ autoStrings Strings_extractPart (Strings me, long from, long to) {
 	}
 }
 
-autoStrings strings_to_Strings_link (char32 **strings, long n) {
+Strings strings_to_Strings_link (char32 **strings, long n) {
 	try {
 		autoStrings me = Strings_createFixedLength (n);
 		for (long i = 1; i <= n; i++) {
 			my strings[i] = strings[i];
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings not linked.");
 	}
@@ -159,23 +164,23 @@ autoStrings strings_to_Strings_link (char32 **strings, long n) {
 
 void Strings_unlink (Strings me) {
 	for (long i = 1; i <= my numberOfStrings; i++) {
-		my strings[i] = nullptr;
+		my strings[i] = 0;
 	}
 }
 
-autoPermutation Strings_to_Permutation (Strings me, int sort) {
+Permutation Strings_to_Permutation (Strings me, int sort) {
 	try {
 		autoPermutation thee = Permutation_create (my numberOfStrings);
 		if (sort != 0) {
 			NUMindexx_s (my strings, my numberOfStrings, thy p);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Permutation created.");
 	}
 }
 
-autoStrings Strings_and_Permutation_permuteStrings (Strings me, Permutation thee) {
+Strings Strings_and_Permutation_permuteStrings (Strings me, Permutation thee) {
 	try {
 		if (my numberOfStrings != thy numberOfElements) Melder_throw (U"Strings_and_Permutation_permuteStrings: "
 			        U"The number of strings and the number of elements in the Permutation must be equal.");
@@ -184,91 +189,91 @@ autoStrings Strings_and_Permutation_permuteStrings (Strings me, Permutation thee
 			long index = thy p[i];
 			his strings[i] = Melder_dup (my strings[index]);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no permuted Strings created.");
 	}
 }
 
-autoStringsIndex Stringses_to_StringsIndex (Strings me, Strings classes) {
+StringsIndex Stringses_to_StringsIndex (Strings me, Strings classes) {
 	try {
 		autoStringsIndex tmp = Strings_to_StringsIndex (classes);
-		long numberOfClasses = tmp -> classes->size;
+		long numberOfClasses = tmp -> classes -> size;
 
 		autoStringsIndex him = StringsIndex_create (my numberOfStrings);
-		for (long i = 1; i <= numberOfClasses; i ++) {
-			SimpleString t = (SimpleString) tmp -> classes->at [i];   // FIXME cast
+		for (long i = 1; i <= numberOfClasses; i++) {
+			SimpleString t = (SimpleString) tmp -> classes -> item[i];
 			autoSimpleString t2 = Data_copy (t);
-			his classes -> addItem_move (t2.move());
+			Collection_addItem (his classes, t2.transfer());
 		}
-		for (long j = 1; j <= my numberOfStrings; j ++) {
+		for (long j = 1; j <= my numberOfStrings; j++) {
 			long index = 0;
-			char32 *stringsj = my strings [j];
-			for (long i = 1; i <= numberOfClasses; i ++) {
-				SimpleString ss = (SimpleString) his classes->at [i];   // FIXME cast
-				if (Melder_equ (stringsj, ss -> string)) {
+			char32 *stringsj = my strings[j];
+			for (long i = 1; i <= numberOfClasses; i++) {
+				SimpleString ss = (SimpleString) his classes -> item[i];
+				if (Melder_cmp (stringsj, ss -> string) == 0) {
 					index = i;
 					break;
 				}
 			}
-			his classIndex [j] = index;
+			his classIndex[j] = index;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no StringsIndex created.");
 	}
 }
 
-autoStringsIndex Strings_to_StringsIndex (Strings me) {
+StringsIndex Strings_to_StringsIndex (Strings me) {
 	try {
 		autoStringsIndex thee = StringsIndex_create (my numberOfStrings);
 		autoPermutation sorted = Strings_to_Permutation (me, 1);
 		long numberOfClasses = 0;
-		char32 *strings = nullptr;
-		for (long i = 1; i <= sorted -> numberOfElements; i ++) {
-			long index = sorted -> p [i];
-			char32 *stringsi = my strings [index];
+		char32 *strings = NULL;
+		for (long i = 1; i <= sorted -> numberOfElements; i++) {
+			long index = sorted -> p[i];
+			char32 *stringsi = my strings[index];
 			if (i == 1 || Melder_cmp (strings, stringsi) != 0) {
-				numberOfClasses ++;
+				numberOfClasses++;
 				autoSimpleString him = SimpleString_create (stringsi);
-				thy classes -> addItem_move (him.move());
+				Collection_addItem (thy classes, him.transfer());
 				strings = stringsi;
 			}
-			thy classIndex [index] = numberOfClasses;
+			thy classIndex[index] = numberOfClasses;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no StringsIndex created.");
 	}
 }
 
-autoStrings StringsIndex_to_Strings (StringsIndex me) {
+Strings StringsIndex_to_Strings (StringsIndex me) {
 	try {
 		autoStrings thee = Strings_createFixedLength (my numberOfElements);
-		for (long i = 1; i <= thy numberOfStrings; i ++) {
-			SimpleString s = (SimpleString) my classes->at [my classIndex [i]];   // FIXME cast, FIXME classIndex
-			thy strings [i] = Melder_dup (s -> string);
+		for (long i = 1; i <= thy numberOfStrings; i++) {
+			SimpleString s = (SimpleString) my classes -> item[my classIndex[i]];
+			thy strings[i] = Melder_dup (s -> string);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Strings created.");
 	}
 }
 
-autoStringsIndex Table_to_StringsIndex_column (Table me, long column) {
+StringsIndex Table_to_StringsIndex_column (Table me, long column) {
 	try {
 		if (column < 1 || column > my numberOfColumns) {
 			Melder_throw (U"Invalid column number.");
 		}
-		long numberOfRows = my rows.size;
+		long numberOfRows = my rows -> size;
 		Table_numericize_Assert (me, column);
 		autoNUMvector<char32 *> groupLabels (1, numberOfRows);
-		for (long irow = 1; irow <= numberOfRows; irow ++) {
-			groupLabels [irow] = my rows.at [irow] -> cells [column] .string;
+		for (long irow = 1; irow <= numberOfRows; irow++) {
+			groupLabels[irow] = ((TableRow) my rows -> item [irow]) -> cells [column] .string;
 		}
 		autoStrings thee = strings_to_Strings (groupLabels.peek(), 1, numberOfRows);
-		autoStringsIndex him = Strings_to_StringsIndex (thee.get());
-		return him;
+		autoStringsIndex him = Strings_to_StringsIndex (thee.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"No StringsIndex created from column ", column, U".");
 	}
diff --git a/dwtools/Strings_extensions.h b/dwtools/Strings_extensions.h
index dcb7b24..9447a37 100644
--- a/dwtools/Strings_extensions.h
+++ b/dwtools/Strings_extensions.h
@@ -2,7 +2,7 @@
 #define _Strings_extensions_h_
 /* Strings_extensions.h
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -35,42 +35,38 @@
 #include "Table.h"
 
 
-autoStrings Strings_createFixedLength (long numberOfStrings);
-
-autoStrings Strings_createAsCharacters (const char32 *string);
-
-autoStrings Strings_createAsTokens (const char32 *string);
+Strings Strings_createFixedLength (long numberOfStrings);
+Strings Strings_createAsCharacters (const char32 *string);
+Strings Strings_createAsTokens (const char32 *string);
 
 long Strings_findString (Strings me, const char32 *string);
+Strings Strings_append (Collection me);
 
-autoStrings Strings_append (OrderedOf<structStrings>* me);
-
-autoStrings Strings_change (Strings me, const char32 *search, const char32 *replace,
-	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp);
+Strings Strings_change (Strings me, const char32 *search, const char32 *replace,
+	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches,
+	int use_regexp);
 
-autoStrings strings_to_Strings (char32 **strings, long from, long to);
+Strings strings_to_Strings (char32 **strings, long from, long to);
 
 // If the Strings is only an intermediate object to achieve other goals, use the following two routines to avoid copying.
-autoStrings strings_to_Strings_link (char32** strings, long n);
+Strings strings_to_Strings_link (char32** strings, long n);
 // for (i=1; i<= n; i++) my strings[i] = strings[i];
-
 void Strings_unlink (Strings me);
-// for (i=1; i<= my numberOfStrings; i++) my strings[i] = nullptr;
-
-autoStrings Strings_extractPart (Strings me, long start, long end);
+// for (i=1; i<= my numberOfStrings; i++) my strings[i] = NULL;
 
+Strings Strings_extractPart (Strings me, long start, long end);
 
-autoStringsIndex Strings_to_StringsIndex (Strings me);
 
-autoStringsIndex Stringses_to_StringsIndex (Strings me, Strings classes);
+StringsIndex Strings_to_StringsIndex (Strings me);
+StringsIndex Stringses_to_StringsIndex (Strings me, Strings classes);
 /* Construct the index with strings in classes, index[i]=0 when my strings[i] doesn't occur in classes */
 
-autoStringsIndex Table_to_StringsIndex_column (Table me, long column);
+StringsIndex Table_to_StringsIndex_column (Table me, long column);
 
-autoStrings StringsIndex_to_Strings (StringsIndex me);
+Strings StringsIndex_to_Strings (StringsIndex me);
 
-autoPermutation Strings_to_Permutation (Strings me, int sort);
+Permutation Strings_to_Permutation (Strings me, int sort);
 
-autoStrings Strings_and_Permutation_permuteStrings (Strings me, Permutation thee);
+Strings Strings_and_Permutation_permuteStrings (Strings me, Permutation thee);
 
 #endif /* _Strings_extensions_h_ */
diff --git a/dwtools/TableOfReal_and_Permutation.cpp b/dwtools/TableOfReal_and_Permutation.cpp
index 0070d83..b4a9e12 100644
--- a/dwtools/TableOfReal_and_Permutation.cpp
+++ b/dwtools/TableOfReal_and_Permutation.cpp
@@ -1,6 +1,6 @@
 /* TableOfReal_and_Permutation.cpp
  *
- * Copyright (C) 2005-2015 David Weenink
+ * Copyright (C) 2005-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 #include "TableOfReal_extensions.h"
 #include "NUM2.h"
 
-autoTableOfReal TableOfReal_and_Permutation_permuteRows (TableOfReal me, Permutation thee) {
+TableOfReal TableOfReal_and_Permutation_permuteRows (TableOfReal me, Permutation thee) {
 	try {
 		if (my numberOfRows != thy numberOfElements) {
 			Melder_throw (U"The number of rows in the table and the number of elements in the Permutation must be equal.");
@@ -33,22 +33,22 @@ autoTableOfReal TableOfReal_and_Permutation_permuteRows (TableOfReal me, Permuta
 		autoTableOfReal him = TableOfReal_create (my numberOfRows, my numberOfColumns);
 
 		for (long i = 1; i <= thy numberOfElements; i++) {
-			TableOfReal_copyOneRowWithLabel (me, him.get(), thy p[i], i);
+			TableOfReal_copyOneRowWithLabel (me, him.peek(), thy p[i], i);
 		}
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			TableOfReal_setColumnLabel (him.get(), j, my columnLabels[j]);
+			TableOfReal_setColumnLabel (him.peek(), j, my columnLabels[j]);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not permuted.");
 	}
 }
 
-autoPermutation TableOfReal_to_Permutation_sortRowLabels (TableOfReal me) {
+Permutation TableOfReal_to_Permutation_sortRowLabels (TableOfReal me) {
 	try {
 		autoPermutation thee = Permutation_create (my numberOfRows);
 		NUMindexx_s (my rowLabels, my numberOfRows, thy p);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Permutation created.");
 	}
diff --git a/dwtools/TableOfReal_and_Permutation.h b/dwtools/TableOfReal_and_Permutation.h
index 04c09ed..5c14387 100644
--- a/dwtools/TableOfReal_and_Permutation.h
+++ b/dwtools/TableOfReal_and_Permutation.h
@@ -2,7 +2,7 @@
 #define _TableOfReal_and_Permutation_h_
 /* TableOfReal_and_Permutation.h
  *
- * Copyright (C) 2005-2011, 2015 David Weenink
+ * Copyright (C) 2005-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,10 +27,10 @@
 #include "Permutation.h"
 #include "TableOfReal.h"
 
-autoTableOfReal TableOfReal_and_Permutation_permuteRows (TableOfReal me, Permutation thee);
+TableOfReal TableOfReal_and_Permutation_permuteRows (TableOfReal me, Permutation thee);
 /*
 	Permutation (n1,n2,..nn) new his z[1] = my z[n1], his z[2] = my z[n2], ..*/
 
-autoPermutation TableOfReal_to_Permutation_sortRowLabels (TableOfReal me);
+Permutation TableOfReal_to_Permutation_sortRowLabels (TableOfReal me);
 
 #endif /* _TableOfReal_and_Permutation_h_ */
diff --git a/dwtools/TableOfReal_and_SVD.cpp b/dwtools/TableOfReal_and_SVD.cpp
index 2eb3fd9..127b1f4 100644
--- a/dwtools/TableOfReal_and_SVD.cpp
+++ b/dwtools/TableOfReal_and_SVD.cpp
@@ -1,6 +1,6 @@
 /* TableOfReal_and_SVD.cpp
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,65 +27,65 @@
 
 #define MIN(m,n) ((m) < (n) ? (m) : (n))
 
-autoTableOfReal SVD_to_TableOfReal (SVD me, long from, long to) {
+TableOfReal SVD_to_TableOfReal (SVD me, long from, long to) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 		SVD_synthesize (me, from, to, thy data);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no TableOfReal synthesized.");
 	}
 }
 
-autoSVD TableOfReal_to_SVD (TableOfReal me) {
+SVD TableOfReal_to_SVD (TableOfReal me) {
 	try {
 		autoSVD thee = SVD_create_d (my data, my numberOfRows, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no SVD created.");
 	}
 }
 
-autoTableOfReal SVD_extractLeftSingularVectors (SVD me) {
+TableOfReal SVD_extractLeftSingularVectors (SVD me) {
 	try {
 		long mn_min = MIN (my numberOfRows, my numberOfColumns);
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, mn_min);
 		NUMmatrix_copyElements (my u, thy data, 1, my numberOfRows, 1, mn_min);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": left singular vector not extracted.");
 	}
 }
 
-autoTableOfReal SVD_extractRightSingularVectors (SVD me) {
+TableOfReal SVD_extractRightSingularVectors (SVD me) {
 	try {
 		long mn_min = MIN (my numberOfRows, my numberOfColumns);
 		autoTableOfReal thee = TableOfReal_create (my numberOfColumns, mn_min);
 		NUMmatrix_copyElements (my v, thy data, 1, my numberOfColumns, 1, mn_min);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": right singular vector not extracted.");
 	}
 }
 
-autoTableOfReal SVD_extractSingularValues (SVD me) {
+TableOfReal SVD_extractSingularValues (SVD me) {
 	try {
 		long mn_min = MIN (my numberOfRows, my numberOfColumns);
 		autoTableOfReal thee = TableOfReal_create (1, mn_min);
 		NUMvector_copyElements (my d, thy data[1], 1, mn_min);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": singular values not extracted.");
 	}
 }
 
-autoGSVD TablesOfReal_to_GSVD (TableOfReal me, TableOfReal thee) {
+GSVD TablesOfReal_to_GSVD (TableOfReal me, TableOfReal thee) {
 	try {
 		if (my numberOfColumns != thy numberOfColumns) {
 			Melder_throw (U"Both tables must have the same number of columns.");
 		}
 		autoGSVD him = GSVD_create_d (my data, my numberOfRows, my numberOfColumns, thy data, thy numberOfRows);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"GSVD not constructed from TablesOfReal.");
 	}
diff --git a/dwtools/TableOfReal_and_SVD.h b/dwtools/TableOfReal_and_SVD.h
index 21cfaaa..eebb0da 100644
--- a/dwtools/TableOfReal_and_SVD.h
+++ b/dwtools/TableOfReal_and_SVD.h
@@ -1,8 +1,8 @@
 #ifndef _TableOfReal_and_SVD_h_
-#define _TableOfReal_and_SVD_h_
+#define TableOfReal_and_SVD_h_
 /* TableOfReal_and_SVD.h
  *
- * Copyright (C) 1993-2011, 2015 David Weenink
+ * Copyright (C) 1993-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,16 +27,12 @@
 #include "SVD.h"
 #include "TableOfReal.h"
 
-autoSVD TableOfReal_to_SVD (TableOfReal me);
+SVD TableOfReal_to_SVD (TableOfReal me);
+GSVD TablesOfReal_to_GSVD (TableOfReal me, TableOfReal thee);
 
-autoGSVD TablesOfReal_to_GSVD (TableOfReal me, TableOfReal thee);
-
-autoTableOfReal SVD_to_TableOfReal (SVD me, long from, long to);
-
-autoTableOfReal SVD_extractLeftSingularVectors (SVD me);
-
-autoTableOfReal SVD_extractRightSingularVectors (SVD me);
-
-autoTableOfReal SVD_extractSingularValues (SVD me);
+TableOfReal SVD_to_TableOfReal (SVD me, long from, long to);
+TableOfReal SVD_extractLeftSingularVectors (SVD me);
+TableOfReal SVD_extractRightSingularVectors (SVD me);
+TableOfReal SVD_extractSingularValues (SVD me);
 
 #endif // _TableOfReal_and_SVD_h_
diff --git a/dwtools/TableOfReal_extensions.cpp b/dwtools/TableOfReal_extensions.cpp
index 4222f7d..d0ed34d 100644
--- a/dwtools/TableOfReal_extensions.cpp
+++ b/dwtools/TableOfReal_extensions.cpp
@@ -1,6 +1,6 @@
 /* TableOfReal_extensions.cpp
  *
- * Copyright (C) 1993-2012, 2014, 2015 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -63,7 +63,7 @@
 #include "regularExp.h"
 #include "Formula.h"
 
-#define EMPTY_STRING(s) (! (s) || s[0] == '\0')
+#define EMPTY_STRING(s) ((s) == NULL || s[0] == '\0')
 #define MAX(m,n) ((m) > (n) ? (m) : (n))
 #define MIN(m,n) ((m) < (n) ? (m) : (n))
 
@@ -71,18 +71,17 @@
 #define Graphics_TWOWAYARROW 2
 #define Graphics_LINE 3
 
-static autoTableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize);
-static autoTableOfReal TableOfReal_and_TableOfReal_rowCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize);
+static TableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize);
+static TableOfReal TableOfReal_and_TableOfReal_rowCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize);
 
 long TableOfReal_getColumnIndexAtMaximumInRow (TableOfReal me, long rowNumber) {
 	long columnNumber = 0;
 	if (rowNumber > 0 && rowNumber <= my numberOfRows) {
-		double max = my data [rowNumber] [1];
+		double max = my data[rowNumber][1];
 		columnNumber = 1;
-		for (long icol = 2; icol <= my numberOfColumns; icol ++) {
-			if (my data [rowNumber] [icol] > max) {
-				max = my data [rowNumber] [icol];
-				columnNumber = icol;
+		for (long icol = 2; icol <= my numberOfColumns; icol++) {
+			if (my data[rowNumber][icol] > max) {
+				max = my data[rowNumber][icol]; columnNumber = icol;
 			}
 		}
 	}
@@ -94,6 +93,42 @@ const char32 *TableOfReal_getColumnLabelAtMaximumInRow (TableOfReal me, long row
 	return my v_getColStr (columnNumber);
 }
 
+
+int TableOfReal_areAllCellsDefined (TableOfReal me, long rb, long re, long cb, long ce) {
+	if (re <= rb || rb < 1 || re > my numberOfRows) {
+		rb = 1; re = my numberOfRows;
+	}
+	if (ce <= cb || cb < 1 || ce > my numberOfColumns) {
+		cb = 1; ce = my numberOfColumns;
+	}
+
+	autoNUMvector<long> invalid_columns (1, my numberOfColumns);
+
+	long numberOfInvalidRows = 0, numberOfInvalidColumns = 0;
+	for (long i = rb; i <= re; i++) {
+		for (long j = cb; j <= ce; j++) {
+			long rowcount = 0;
+			if (my data[i][j] == NUMundefined) {
+				invalid_columns[j]++;
+				rowcount++;
+			}
+			if (rowcount > 0) {
+				numberOfInvalidRows++;
+			}
+		}
+	}
+	if (numberOfInvalidRows != 0) {
+		for (long j = 1; j <= my numberOfColumns; j++) {
+			if (invalid_columns[j] > 0) {
+				numberOfInvalidColumns++;
+			}
+		}
+		Melder_throw (numberOfInvalidRows == 1 ? U"One row contains invalid data." : (numberOfInvalidColumns == 1 ?  U"One column contains invalid data." :
+		              U"Several rows and columns contain invalid data."));
+	}
+	return numberOfInvalidRows == 0 ? 1 : 0;
+}
+
 void TableOfReal_copyOneRowWithLabel (TableOfReal me, TableOfReal thee, long myrow, long thyrow) {
 	try {
 		if (me == thee && myrow == thyrow) {
@@ -116,7 +151,7 @@ void TableOfReal_copyOneRowWithLabel (TableOfReal me, TableOfReal thee, long myr
 }
 
 int TableOfReal_hasRowLabels (TableOfReal me) {
-	if (! my rowLabels) {
+	if (my rowLabels == NULL) {
 		return 0;
 	}
 	for (long i = 1; i <= my numberOfRows; i++) {
@@ -128,7 +163,7 @@ int TableOfReal_hasRowLabels (TableOfReal me) {
 }
 
 int TableOfReal_hasColumnLabels (TableOfReal me) {
-	if (! my columnLabels) {
+	if (my columnLabels == NULL) {
 		return 0;
 	}
 	for (long i = 1; i <= my numberOfColumns; i++) {
@@ -139,7 +174,7 @@ int TableOfReal_hasColumnLabels (TableOfReal me) {
 	return 1;
 }
 
-autoTableOfReal TableOfReal_createIrisDataset () {
+TableOfReal TableOfReal_createIrisDataset () {
 	double iris[150][4] = {
 		{5.1, 3.5, 1.4, 0.2}, {4.9, 3.0, 1.4, 0.2}, {4.7, 3.2, 1.3, 0.2}, {4.6, 3.1, 1.5, 0.2}, {5.0, 3.6, 1.4, 0.2},
 		{5.4, 3.9, 1.7, 0.4}, {4.6, 3.4, 1.4, 0.3}, {5.0, 3.4, 1.5, 0.2}, {4.4, 2.9, 1.4, 0.2}, {4.9, 3.1, 1.5, 0.1},
@@ -176,26 +211,26 @@ autoTableOfReal TableOfReal_createIrisDataset () {
 	try {
 		autoTableOfReal me = TableOfReal_create (150, 4);
 
-		TableOfReal_setColumnLabel (me.get(), 1, U"sl");
-		TableOfReal_setColumnLabel (me.get(), 2, U"sw");
-		TableOfReal_setColumnLabel (me.get(), 3, U"pl");
-		TableOfReal_setColumnLabel (me.get(), 4, U"pw");
+		TableOfReal_setColumnLabel (me.peek(), 1, U"sl");
+		TableOfReal_setColumnLabel (me.peek(), 2, U"sw");
+		TableOfReal_setColumnLabel (me.peek(), 3, U"pl");
+		TableOfReal_setColumnLabel (me.peek(), 4, U"pw");
 		for (long i = 1; i <= 150; i++) {
 			int kind = (i - 1) / 50 + 1;
 			char32 const *label = kind == 1 ? U"1" : kind == 2 ? U"2" : U"3";
 			for (long j = 1; j <= 4; j++) {
 				my data[i][j] = iris[i - 1][j - 1];
 			}
-			TableOfReal_setRowLabel (me.get(), i, label);
+			TableOfReal_setRowLabel (me.peek(), i, label);
 		}
-		Thing_setName (me.get(), U"iris");
-		return me;
+		Thing_setName (me.peek(), U"iris");
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal from iris data not created.");
 	}
 }
 
-autoStrings TableOfReal_extractRowLabels (TableOfReal me) {
+Strings TableOfReal_extractRowLabels (TableOfReal me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 
@@ -209,13 +244,13 @@ autoStrings TableOfReal_extractRowLabels (TableOfReal me) {
 				thy strings[i] = Melder_dup (label);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": row labels not extracted.");
 	}
 }
 
-autoStrings TableOfReal_extractColumnLabels (TableOfReal me) {
+Strings TableOfReal_extractColumnLabels (TableOfReal me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 
@@ -228,13 +263,13 @@ autoStrings TableOfReal_extractColumnLabels (TableOfReal me) {
 				thy strings[i] = Melder_dup (label);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": column labels not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_transpose (TableOfReal me) {
+TableOfReal TableOfReal_transpose (TableOfReal me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfColumns, my numberOfRows);
 
@@ -245,15 +280,15 @@ autoTableOfReal TableOfReal_transpose (TableOfReal me) {
 		}
 		NUMstrings_copyElements (my rowLabels, thy columnLabels, 1, my numberOfRows);
 		NUMstrings_copyElements (my columnLabels, thy rowLabels, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not transposed.");
 	}
 }
 
-void TableOfReal_to_Pattern_and_Categories (TableOfReal me, long fromrow, long torow, long fromcol, long tocol,
-	autoPattern *p, autoCategories *c)
-{
+int TableOfReal_to_Pattern_and_Categories (TableOfReal me, long fromrow, long torow, long fromcol, long tocol,
+        Pattern *p, Categories *c) {
+	*p = 0; *c = 0;
 	try {
 		long ncol = my numberOfColumns, nrow = my numberOfRows;
 
@@ -278,46 +313,40 @@ void TableOfReal_to_Pattern_and_Categories (TableOfReal me, long fromrow, long t
 		autoCategories ac = Categories_create ();
 
 		long row = 1;
-		for (long i = fromrow; i <= torow; i ++, row ++) {
-			char32 const *s = my rowLabels [i] ? my rowLabels [i] : U"?";
+		for (long i = fromrow; i <= torow; i++, row++) {
+			char32 const *s = my rowLabels[i] ? my rowLabels[i] : U"?";
 			autoSimpleString item = SimpleString_create (s);
-			ac -> addItem_move (item.move());
+			Collection_addItem (ac.peek(), item.transfer());
 			long col = 1;
-			for (long j = fromcol; j <= tocol; j ++, col ++) {
-				ap -> z [row] [col] = my data [i] [j];
+			for (long j = fromcol; j <= tocol; j++, col++) {
+				ap -> z[row][col] = my data[i][j];
 			}
 		}
-		*p = ap.move();
-		*c = ac.move();
+		*p = ap.transfer();
+		*c = ac.transfer();
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (U"Pattern and Categories not created from TableOfReal.");
 	}
 }
 
-void TableOfReal_getColumnExtrema (TableOfReal me, long col, double *p_min, double *p_max) {
-	double min = NUMundefined, max = NUMundefined;
+void TableOfReal_getColumnExtrema (TableOfReal me, long col, double *min, double *max) {
+	*min = NUMundefined; *max = NUMundefined;
 	if (col < 1 || col > my numberOfColumns) {
 		Melder_throw (U"Invalid column number.");
 	}
-	min = max = my data[1][col];
+	*min = *max = my data[1][col];
 	for (long i = 2; i <= my numberOfRows; i++) {
-		if (my data[i][col] > max) {
-			max = my data[i][col];
-		} else if (my data[i][col] < min) {
-			min = my data[i][col];
+		if (my data[i][col] > *max) {
+			*max = my data[i][col];
+		} else if (my data[i][col] < *min) {
+			*min = my data[i][col];
 		}
 	}
-	if (p_min) {
-		*p_min = min;
-	}
-	if (p_max) {
-		*p_max = max;
-	}
 }
 
 void TableOfReal_drawRowsAsHistogram (TableOfReal me, Graphics g, const char32 *rows, long colb, long cole, double ymin,
-	double ymax, double xoffsetFraction, double interbarFraction, double interbarsFraction, const char32 *greys, bool garnish)
-{
+                                      double ymax, double xoffsetFraction, double interbarFraction, double interbarsFraction, const char32 *greys, int garnish) {
 	if (colb >= cole) {
 		colb = 1; cole = my numberOfColumns;
 	}
@@ -350,16 +379,16 @@ void TableOfReal_drawRowsAsHistogram (TableOfReal me, Graphics g, const char32 *
 	long ngreys;
 	autoNUMvector<double> igreys (NUMstring_to_numbers (greys, &ngreys), 1);
 
-	Graphics_setWindow (g, 0.0, 1.0, ymin, ymax);
+	Graphics_setWindow (g, 0, 1, ymin, ymax);
 	Graphics_setInner (g);
 
 	long ncols = cole - colb + 1;
-	double bar_width = 1.0 / (ncols * nrows + 2.0 * xoffsetFraction + (ncols - 1) * interbarsFraction + ncols * (nrows - 1) * interbarFraction);
+	double bar_width = 1 / (ncols * nrows + 2 * xoffsetFraction + (ncols - 1) * interbarsFraction + ncols * (nrows - 1) * interbarFraction);
 	double dx = (interbarsFraction + nrows + (nrows - 1) * interbarFraction) * bar_width;
 
 	for (long i = 1; i <= nrows; i++) {
 		long irow = (long) floor (irows[i]);
-		double xb = xoffsetFraction * bar_width + (i - 1) * (1.0 + interbarFraction) * bar_width;
+		double xb = xoffsetFraction * bar_width + (i - 1) * (1 + interbarFraction) * bar_width;
 
 		double x1 = xb;
 		double grey = i <= ngreys ? igreys[i] : igreys[ngreys];
@@ -372,7 +401,7 @@ void TableOfReal_drawRowsAsHistogram (TableOfReal me, Graphics g, const char32 *
 				}
 				Graphics_setGrey (g, grey);
 				Graphics_fillRectangle (g, x1, x2, y1, y2);
-				Graphics_setGrey (g, 0.0);   // black
+				Graphics_setGrey (g, 0); /* Black */
 				Graphics_rectangle (g, x1, x2, y1, y2);
 			}
 			x1 += dx;
@@ -383,28 +412,28 @@ void TableOfReal_drawRowsAsHistogram (TableOfReal me, Graphics g, const char32 *
 
 	if (garnish) {
 		double xb = (xoffsetFraction + 0.5 * (nrows + (nrows - 1) * interbarFraction)) * bar_width;
-		for (long j = colb; j <= cole; j ++) {
-			if (my columnLabels [j]) {
-				Graphics_markBottom (g, xb, false, false, false, my columnLabels [j]);
+		for (long j = colb; j <= cole; j++) {
+			if (my columnLabels[j]) {
+				Graphics_markBottom (g, xb, 0, 0, 0, my columnLabels[j]);
 			}
 			xb += dx;
 		}
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xmax, double ymin, double ymax, double sv_splitfactor, int labelsize, bool garnish) {
+void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xmax, double ymin, double ymax, double sv_splitfactor, int labelsize, int garnish) {
 	long nr = my numberOfRows, nc = my numberOfColumns, nPoints = nr + nc;
 	int fontsize = Graphics_inqFontSize (g);
 
 	autoSVD svd = SVD_create (nr, nc);
 
 	NUMmatrix_copyElements (my data, svd -> u, 1, nr, 1, nc);
-	NUMcentreColumns (svd -> u, 1, nr, 1, nc, nullptr);
+	NUMcentreColumns (svd -> u, 1, nr, 1, nc, 0);
 
-	SVD_compute (svd.get());
-	long numberOfZeroed = SVD_zeroSmallSingularValues (svd.get(), 0.0);
+	SVD_compute (svd.peek());
+	long numberOfZeroed = SVD_zeroSmallSingularValues (svd.peek(), 0);
 
 	long nmin = MIN (nr, nc) - numberOfZeroed;
 	if (nmin < 2) {
@@ -436,8 +465,8 @@ void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xma
 		NUMvector_extrema (y.peek(), 1, nPoints, &ymin, &ymax);
 	}
 	if (ymax <= ymin) {
-		ymax += 1.0;
-		ymin -= 1.0;
+		ymax += 1;
+		ymin -= 1;
 	}
 
 	Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -447,16 +476,16 @@ void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xma
 	}
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 
-	for (long i = 1; i <= nPoints; i ++) {
+	for (long i = 1; i <= nPoints; i++) {
 		char32 const *label;
 		if (i <= nr) {
-			label = my rowLabels [i];
-			if (! label) {
+			label = my rowLabels[i];
+			if (label == NULL) {
 				label = U"?__r_";
 			}
 		} else {
-			label = my columnLabels [i - nr];
-			if (! label) {
+			label = my columnLabels[i - nr];
+			if (label == NULL) {
 				label = U"?__c_";
 			}
 		}
@@ -467,8 +496,8 @@ void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xma
 
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 	}
 
 	if (labelsize > 0) {
@@ -476,7 +505,7 @@ void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xma
 	}
 }
 
-void TableOfReal_drawBoxPlots (TableOfReal me, Graphics g, long rowmin, long rowmax, long colmin, long colmax, double ymin, double ymax, bool garnish) {
+void TableOfReal_drawBoxPlots (TableOfReal me, Graphics g, long rowmin, long rowmax, long colmin, long colmax, double ymin, double ymax, int garnish) {
 	if (rowmax < rowmin || rowmax < 1) {
 		rowmin = 1; rowmax = my numberOfRows;
 	}
@@ -520,10 +549,10 @@ void TableOfReal_drawBoxPlots (TableOfReal me, Graphics g, long rowmin, long row
 		Graphics_drawInnerBox (g);
 		for (long j = colmin; j <= colmax; j++) {
 			if (my columnLabels && my columnLabels[j] && my columnLabels[j][0]) {
-				Graphics_markBottom (g, j, false, true, false, my columnLabels [j]);
+				Graphics_markBottom (g, j, 0, 1, 0, my columnLabels [j]);
 			}
 		}
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
@@ -587,15 +616,15 @@ void TableOfReal_labelsFromCollectionItemNames (TableOfReal me, Collection thee,
 	try {
 		if (row) {
 			Melder_assert (my numberOfRows == thy size);
-			for (long i = 1; i <= my numberOfRows; i ++) {
-				const char32 *name = Thing_getName (thy at [i]);
+			for (long i = 1; i <= my numberOfRows; i++) {
+				const char32 *name = Thing_getName ( (Thing) thy item[i]);
 				TableOfReal_setRowLabel (me, i, name);
 			}
 		}
 		if (column) {
 			Melder_assert (my numberOfColumns == thy size);
-			for (long i = 1; i <= my numberOfColumns; i ++) {
-				const char32 *name = Thing_getName (thy at [i]);
+			for (long i = 1; i <= my numberOfColumns; i++) {
+				const char32 *name = Thing_getName ( (Thing) thy item[i]);
 				TableOfReal_setColumnLabel (me, i, name);
 			}
 		}
@@ -605,7 +634,7 @@ void TableOfReal_labelsFromCollectionItemNames (TableOfReal me, Collection thee,
 }
 
 void TableOfReal_centreColumns (TableOfReal me) {
-	NUMcentreColumns (my data, 1, my numberOfRows, 1, my numberOfColumns, nullptr);
+	NUMcentreColumns (my data, 1, my numberOfRows, 1, my numberOfColumns, NULL);
 }
 
 void TableOfReal_and_Categories_setRowLabels (TableOfReal me, Categories thee) {
@@ -620,16 +649,13 @@ void TableOfReal_and_Categories_setRowLabels (TableOfReal me, Categories thee) {
 				and then delete the newly created categories.
 		*/
 
-		autoCategories categories_copy = Data_copy (thee);
+		autoCategories c = Data_copy (thee);
 
-		for (long i = 1; i <= my numberOfRows; i ++) {
-			/*
-				The modification of my rowLabels is implemented as a swap
-				with the contents of the SimpleStrings in the copied Categories.
-			*/
-			char32 *tmp = categories_copy->at [i] -> string;
-			categories_copy->at [i] -> string = my rowLabels [i];
-			my rowLabels [i] = tmp;
+		for (long i = 1; i <= my numberOfRows; i++) {
+			SimpleString s = (SimpleString) c -> item[i];
+			char32 *t = s -> string;
+			s -> string = my rowLabels[i];
+			my rowLabels[i] = t;
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": row labels not set from categories.");
@@ -637,18 +663,17 @@ void TableOfReal_and_Categories_setRowLabels (TableOfReal me, Categories thee) {
 }
 
 void TableOfReal_centreColumns_byRowLabel (TableOfReal me) {
-	char32 *label = my rowLabels [1];
+	char32 *label = my rowLabels[1];
 	long index = 1;
 
-	for (long i = 2; i <= my numberOfRows; i ++) {
-		char32 *li = my rowLabels [i];
-		if (! Melder_equ (li, label)) {
+	for (long i = 2; i <= my numberOfRows; i++) {
+		char32 *li = my rowLabels[i];
+		if (Melder_cmp (li, label) != 0) {
 			NUMcentreColumns (my data, index, i - 1, 1, my numberOfColumns, 0);
-			label = li;
-			index = i;
+			label = li; index = i;
 		}
 	}
-	NUMcentreColumns (my data, index, my numberOfRows, 1, my numberOfColumns, nullptr);
+	NUMcentreColumns (my data, index, my numberOfRows, 1, my numberOfColumns, NULL);
 }
 
 double TableOfReal_getRowSum (TableOfReal me, long index) {
@@ -656,9 +681,9 @@ double TableOfReal_getRowSum (TableOfReal me, long index) {
 		return NUMundefined;
 	}
 
-	double sum = 0.0;
-	for (long j = 1; j <= my numberOfColumns; j ++) {
-		sum += my data [index] [j];
+	double sum = 0;
+	for (long j = 1; j <= my numberOfColumns; j++) {
+		sum += my data[index][j];
 	}
 	return sum;
 }
@@ -684,18 +709,18 @@ double TableOfReal_getColumnSum (TableOfReal me, long index) {
 		return NUMundefined;
 	}
 
-	double sum = 0.0;
-	for (long i = 1; i <= my numberOfRows; i ++) {
-		sum += my data [i] [index];
+	double sum = 0;
+	for (long i = 1; i <= my numberOfRows; i++) {
+		sum += my data[i][index];
 	}
 	return sum;
 }
 
 double TableOfReal_getGrandSum (TableOfReal me) {
-	double sum = 0.0;
-	for (long i = 1; i <= my numberOfRows; i ++) {
-		for (long j = 1; j <= my numberOfColumns; j ++) {
-			sum += my data [i] [j];
+	double sum = 0;
+	for (long i = 1; i <= my numberOfRows; i++) {
+		for (long j = 1; j <= my numberOfColumns; j++) {
+			sum += my data[i][j];
 		}
 	}
 	return sum;
@@ -730,7 +755,7 @@ void TableOfReal_normalizeTable (TableOfReal me, double norm) {
 }
 
 double TableOfReal_getTableNorm (TableOfReal me) {
-	double sumsq = 0.0;
+	double sumsq = 0;
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			sumsq += my data[i][j] * my data[i][j];
@@ -744,7 +769,7 @@ int TableOfReal_checkPositive (TableOfReal me) {
 
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= my numberOfColumns; j++) {
-			if (my data[i][j] < 0.0) {
+			if (my data[i][j] < 0) {
 				negative ++; break;
 			}
 		}
@@ -802,18 +827,18 @@ void TableOfReal_drawScatterPlotMatrix (TableOfReal me, Graphics g, long colb, l
 		xmin[j] -= extra; xmax[j] += extra;
 	}
 
-	Graphics_setWindow (g, 0.0, n, 0.0, n);
+	Graphics_setWindow (g, 0, n, 0, n);
 	Graphics_setInner (g);
-	Graphics_line (g, 0.0, n, n, n);
-	Graphics_line (g, 0.0, 0.0, 0.0, n);
+	Graphics_line (g, 0, n, n, n);
+	Graphics_line (g, 0, 0, 0, n);
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 
 	for (long i = 1; i <= n; i++) {
 		long xcol, ycol = colb + i - 1;
 		const char32 *mark;
 		char32 label[40];
-		Graphics_line (g, 0.0, n - i, n, n - i);
-		Graphics_line (g, i, n, i, 0.0);
+		Graphics_line (g, 0, n - i, n, n - i);
+		Graphics_line (g, i, n, i, 0);
 		for (long j = 1; j <= n; j++) {
 			xcol = colb + j - 1;
 			if (i == j) {
@@ -836,28 +861,28 @@ void TableOfReal_drawScatterPlotMatrix (TableOfReal me, Graphics g, long colb, l
 	Graphics_unsetInner (g);
 }
 
-void TableOfReal_drawAsSquares_area (TableOfReal me, Graphics g, double zmin, double zmax, double cellSizeFactor, int randomFillOrder, bool garnish) {
+void TableOfReal_drawAsSquares_area (TableOfReal me, Graphics g, double zmin, double zmax, double cellSizeFactor, int randomFillOrder, int garnish) {
 	try {
-		cellSizeFactor = cellSizeFactor <= 0.0 ? 1.0 : cellSizeFactor;
+		cellSizeFactor = cellSizeFactor <= 0 ? 1 : cellSizeFactor;
 		if (zmin == 0 && zmax == 0) {
 			NUMmatrix_extrema<double> (my data, 1, my numberOfRows, 1, my numberOfColumns, &zmin, &zmax);
 		}
-		double xmin = 0.0, xmax = my numberOfColumns + 1.0, ymin = 0.0, ymax = my numberOfRows + 1.0;
+		double xmin = 0, xmax = my numberOfColumns + 1, ymin = 0, ymax = my numberOfRows + 1;
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 		Graphics_setInner (g);
 		Graphics_matrixAsSquares (g, my data, my numberOfRows, my numberOfColumns, zmin, zmax, cellSizeFactor, randomFillOrder);
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksBottomEvery (g, 1.0, 1.0, false, true, false);
-			Graphics_marksLeftEvery (g, 1.0, 1.0, false, true, false);
+			Graphics_marksBottomEvery (g, 1, 1, false, true, false);
+			Graphics_marksLeftEvery (g, 1, 1, false, true, false);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
 	}
 }
 
-void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy, long rowb, long rowe, double xmin, double xmax, double ymin, double ymax, int labelSize, bool useRowLabels, const char32 *label, bool garnish) {
+void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy, long rowb, long rowe, double xmin, double xmax, double ymin, double ymax, int labelSize, int useRowLabels, const char32 *label, int garnish) {
 	double m = my numberOfRows, n = my numberOfColumns;
 	int fontSize = Graphics_inqFontSize (g);
 
@@ -876,12 +901,12 @@ void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy
 
 	if (xmax == xmin) {
 		NUMdmatrix_getColumnExtrema (my data, rowb, rowe, icx, & xmin, & xmax);
-		double tmp = xmax - xmin == 0.0 ? 0.5 : 0.0;
+		double tmp = xmax - xmin == 0 ? 0.5 : 0.0;
 		xmin -= tmp; xmax += tmp;
 	}
 	if (ymax == ymin) {
 		NUMdmatrix_getColumnExtrema (my data, rowb, rowe, icy, & ymin, & ymax);
-		double tmp = ymax - ymin == 0.0 ? 0.5 : 0.0;
+		double tmp = ymax - ymin == 0 ? 0.5 : 0.0;
 		ymin -= tmp; ymax += tmp;
 	}
 
@@ -894,8 +919,8 @@ void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy
 	for (long i = rowb; i <= rowe; i++) {
 		double x = my data[i][icx], y = my data[i][icy];
 
-		if (((xmin < xmax && x >= xmin && x <= xmax) || (xmin > xmax && x <= xmin && x >= xmax)) &&
-		        ((ymin < ymax && y >= ymin && y <= ymax) || (ymin > ymax && y <= ymin && y >= ymax))) {
+		if ( ( (xmin < xmax && x >= xmin && x <= xmax) || (xmin > xmax && x <= xmin && x >= xmax)) &&
+		        ( (ymin < ymax && y >= ymin && y <= ymax) || (ymin > ymax && y <= ymin && y >= ymax))) {
 			const char32 *plotLabel = useRowLabels ? my rowLabels[i] : label;
 			if (! NUMstring_containsPrintableCharacter (plotLabel)) {
 				noLabel++;
@@ -912,25 +937,25 @@ void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy
 		Graphics_drawInnerBox (g);
 		if (ymin < ymax) {
 			if (my columnLabels[icx]) {
-				Graphics_textBottom (g, true, my columnLabels[icx]);
+				Graphics_textBottom (g, 1, my columnLabels[icx]);
 			}
-			Graphics_marksBottom (g, 2, true, true, false);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
 		} else {
 			if (my columnLabels[icx]) {
-				Graphics_textTop (g, true, my columnLabels[icx]);
+				Graphics_textTop (g, 1, my columnLabels[icx]);
 			}
-			Graphics_marksTop (g, 2, true, true, false);
+			Graphics_marksTop (g, 2, 1, 1, 0);
 		}
 		if (xmin < xmax) {
 			if (my columnLabels[icy]) {
-				Graphics_textLeft (g, true, my columnLabels[icy]);
+				Graphics_textLeft (g, 1, my columnLabels[icy]);
 			}
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		} else {
 			if (my columnLabels[icy]) {
-				Graphics_textRight (g, true, my columnLabels[icy]);
+				Graphics_textRight (g, 1, my columnLabels[icy]);
 			}
-			Graphics_marksRight (g, 2, true, true, false);
+			Graphics_marksRight (g, 2, 1, 1, 0);
 		}
 	}
 	if (noLabel > 0) {
@@ -939,45 +964,61 @@ void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy
 	}
 }
 
+/****************  TABLESOFREAL **************************************/
 
-#pragma mark - class TableOfRealList
+Thing_implement (TablesOfReal, Ordered, 0);
 
-autoTableOfReal TableOfRealList_sum (TableOfRealList me) {
+void TablesOfReal_init (TablesOfReal me, ClassInfo klas) {
+	Ordered_init (me, klas, 10);
+}
+
+TablesOfReal TablesOfReal_create () {
+	try {
+		autoTablesOfReal me = Thing_new (TablesOfReal);
+		TablesOfReal_init (me.peek(), classTableOfReal);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"TablesOfReal not created.");
+	}
+}
+
+TableOfReal TablesOfReal_sum (TablesOfReal me) {
 	try {
 		if (my size <= 0) {
-			return autoTableOfReal();
+			return 0;
 		}
-		autoTableOfReal thee = Data_copy (my at [1]);
+		autoTableOfReal thee = Data_copy ( (TableOfReal) my item[1]);
 
-		for (long i = 2; i <= my size; i ++) {
-			TableOfReal him = my at [i];
-			if (thy numberOfRows != his numberOfRows || thy numberOfColumns != his numberOfColumns || ! TableOfReal_equalLabels (thee.get(), him, 1, 1)) {
+		for (long i = 2; i <= my size; i++) {
+			TableOfReal him = (TableOfReal) my item[i];
+			if (thy numberOfRows != his numberOfRows || thy numberOfColumns != his numberOfColumns || ! TableOfReal_equalLabels (thee.peek(), him, 1, 1)) {
 				Melder_throw (U"Dimensions or labels differ for table 1 and ", i, U".");
 			}
-			for (long j = 1; j <= thy numberOfRows; j ++) {
-				for (long k = 1; k <= thy numberOfColumns; k ++) {
-					thy data [j] [k] += his data [j] [k];
+			for (long j = 1; j <= thy numberOfRows; j++) {
+				for (long k = 1; k <= thy numberOfColumns; k++) {
+					thy data[j][k] += his data[j][k];
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": sum not created.");
 	}
 }
 
-bool TableOfRealList_haveIdenticalDimensions (TableOfRealList me) {
+int TablesOfReal_checkDimensions (TablesOfReal me) {
 	if (my size < 2) {
-		return true;
+		return 1;
 	}
-	TableOfReal t1 = my at [1];
-	for (long i = 2; i <= my size; i ++) {
-		TableOfReal t = my at [i];
-		if (t -> numberOfColumns != t1 -> numberOfColumns || t -> numberOfRows != t1 -> numberOfRows) {
-			return false;
+	TableOfReal t1 = (TableOfReal) my item[1];
+	for (long i = 2; i <= my size; i++) {
+		TableOfReal t = (TableOfReal) my item[i];
+		if (t -> numberOfColumns != t1 -> numberOfColumns ||
+		        t -> numberOfRows != t1 -> numberOfRows) {
+			return 0;
 		}
 	}
-	return true;
+	return 1;
 }
 
 double TableOfReal_getColumnQuantile (TableOfReal me, long col, double quantile) {
@@ -999,7 +1040,7 @@ double TableOfReal_getColumnQuantile (TableOfReal me, long col, double quantile)
 	}
 }
 
-static autoTableOfReal TableOfReal_createPolsVanNieropData (int choice, bool include_levels) {
+static TableOfReal TableOfReal_createPolsVanNieropData (int choice, int include_levels) {
 	try {
 		autoTable table = Table_createFromPolsVanNieropData ();
 
@@ -1016,78 +1057,78 @@ static autoTableOfReal TableOfReal_createPolsVanNieropData (int choice, bool inc
 
 		autoTableOfReal thee = TableOfReal_create (nrows, ncols);
 
-		for (long i = 1; i <= nrows; i ++) {
-			TableRow row = table -> rows.at [ib + i - 1];
-			TableOfReal_setRowLabel (thee.get(), i, row -> cells [4]. string);
+		for (long i = 1; i <= nrows; i++) {
+			TableRow row = (TableRow) table -> rows -> item[ib + i - 1];
+			TableOfReal_setRowLabel (thee.peek(), i, row -> cells[4].string);
 			for (long j = 1; j <= 3; j++) {
-				thy data [i] [j] = Melder_atof (row -> cells [4 + j]. string);
+				thy data[i][j] = Melder_atof (row -> cells[4 + j].string);
 				if (include_levels) {
-					thy data [i] [3 + j] = Melder_atof (row -> cells [7 + j]. string);
+					thy data[i][3 + j] = Melder_atof (row -> cells[7 + j].string);
 				}
 			}
 		}
-		for (long j = 1; j <= 3; j ++) {
-			const char32 *label = table -> columnHeaders [4 + j]. label;
-			TableOfReal_setColumnLabel (thee.get(), j, label);
+		for (long j = 1; j <= 3; j++) {
+			const char32 *label = table -> columnHeaders[4 + j].label;
+			TableOfReal_setColumnLabel (thee.peek(), j, label);
 			if (include_levels) {
 				label = table -> columnHeaders[7 + j].label;
-				TableOfReal_setColumnLabel (thee.get(), 3 + j, label);
+				TableOfReal_setColumnLabel (thee.peek(), 3 + j, label);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal from Pols & Van Nierop data not created.");
 	}
 }
 
-autoTableOfReal TableOfReal_createFromPolsData_50males (bool include_levels) {
+TableOfReal TableOfReal_createFromPolsData_50males (int include_levels) {
 	return TableOfReal_createPolsVanNieropData (1, include_levels);
 }
 
-autoTableOfReal TableOfReal_createFromVanNieropData_25females (bool include_levels) {
+TableOfReal TableOfReal_createFromVanNieropData_25females (int include_levels) {
 	return TableOfReal_createPolsVanNieropData (2, include_levels);
 }
 
-autoTableOfReal TableOfReal_createFromWeeninkData (int option) {
+TableOfReal TableOfReal_createFromWeeninkData (int option) {
 	try {
 		long nvowels = 12, ncols = 3, nrows = 10 * nvowels;
 
 		autoTable table = Table_createFromWeeninkData ();
 
-		long ib = ( option == 1 ? 1 : option == 2 ? 11 : 21 ); /* m f c*/
+		long ib = option == 1 ? 1 : option == 2 ? 11 : 21; /* m f c*/
 		ib = (ib - 1) * nvowels + 1;
 
 		autoTableOfReal thee = TableOfReal_create (nrows, ncols);
 
-		for (long i = 1; i <= nrows; i ++) {
-			TableRow row = table -> rows.at [ib + i - 1];
-			TableOfReal_setRowLabel (thee.get(), i, row -> cells [5]. string);
-			for (long j = 1; j <= 3; j ++) {
-				thy data [i] [j] = Melder_atof (row -> cells [6 + j]. string); /* Skip F0 */
+		for (long i = 1; i <= nrows; i++) {
+			TableRow row = (TableRow) table -> rows -> item[ib + i - 1];
+			TableOfReal_setRowLabel (thee.peek(), i, row -> cells[5].string);
+			for (long j = 1; j <= 3; j++) {
+				thy data[i][j] = Melder_atof (row -> cells[6 + j].string); /* Skip F0 */
 			}
 		}
 		for (long j = 1; j <= 3; j++)  {
-			const char32 *label = table -> columnHeaders [6 + j]. label;
-			TableOfReal_setColumnLabel (thee.get(), j, label);
+			const char32 *label = table -> columnHeaders[6 + j].label;
+			TableOfReal_setColumnLabel (thee.peek(), j, label);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal from Weenink data not created.");
 	}
 }
 
-autoTableOfReal TableOfReal_randomizeRows (TableOfReal me) {
+TableOfReal TableOfReal_randomizeRows (TableOfReal me) {
 	try {
 		autoPermutation p = Permutation_create (my numberOfRows);
-		Permutation_permuteRandomly_inline (p.get(), 0, 0);
-		autoTableOfReal thee = TableOfReal_and_Permutation_permuteRows (me, p.get());
-		return thee;
+		Permutation_permuteRandomly_inline (p.peek(), 0, 0);
+		autoTableOfReal thee = TableOfReal_and_Permutation_permuteRows (me, p.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": randomized rows not created");
 	}
 }
 
-autoTableOfReal TableOfReal_bootstrap (TableOfReal me) {
+TableOfReal TableOfReal_bootstrap (TableOfReal me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 
@@ -1095,7 +1136,7 @@ autoTableOfReal TableOfReal_bootstrap (TableOfReal me) {
 
 		for (long i = 1; i <= my numberOfColumns; i++) {
 			if (my columnLabels[i]) {
-				TableOfReal_setColumnLabel (thee.get(), i, my columnLabels[i]);
+				TableOfReal_setColumnLabel (thee.peek(), i, my columnLabels[i]);
 			}
 		}
 
@@ -1109,10 +1150,10 @@ autoTableOfReal TableOfReal_bootstrap (TableOfReal me) {
 			long p = NUMrandomInteger (1, my numberOfRows);
 			NUMvector_copyElements (my data[p], thy data[i], 1, my numberOfColumns);
 			if (my rowLabels[p]) {
-				TableOfReal_setRowLabel (thee.get(), i, my rowLabels[p]);
+				TableOfReal_setRowLabel (thee.peek(), i, my rowLabels[p]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": bootstrapped data not created.");
 	}
@@ -1141,9 +1182,9 @@ void TableOfReal_changeColumnLabels (TableOfReal me, const char32 *search, const
 long TableOfReal_getNumberOfLabelMatches (TableOfReal me, const char32 *search, int columnLabels, int use_regexp) {
 	long nmatches = 0, numberOfLabels = my numberOfRows;
 	char32 **labels = my rowLabels;
-	regexp *compiled_regexp = nullptr;
+	regexp *compiled_regexp = 0;
 
-	if (! search || str32len (search) == 0) {
+	if (search == 0 || str32len (search) == 0) {
 		return 0;
 	}
 	if (columnLabels) {
@@ -1154,11 +1195,11 @@ long TableOfReal_getNumberOfLabelMatches (TableOfReal me, const char32 *search,
 		compiled_regexp = CompileRE_throwable (search, 0);
 	}
 	for (long i = 1; i <= numberOfLabels; i++) {
-		if (! labels[i]) {
+		if (labels[i] == 0) {
 			continue;
 		}
 		if (use_regexp) {
-			if (ExecRE (compiled_regexp, 0, labels[i], nullptr, 0, U'\0', U'\0', 0, 0, 0)) {
+			if (ExecRE (compiled_regexp, 0, labels[i], NULL, 0, U'\0', U'\0', 0, 0, 0)) {
 				nmatches++;
 			}
 		} else if (str32equ (labels[i], search)) {
@@ -1171,7 +1212,8 @@ long TableOfReal_getNumberOfLabelMatches (TableOfReal me, const char32 *search,
 	return nmatches;
 }
 
-void TableOfReal_drawVectors (TableOfReal me, Graphics g, long colx1, long coly1, long colx2, long coly2, double xmin, double xmax, double ymin, double ymax, int vectype, int labelsize, bool garnish) {
+void TableOfReal_drawVectors (TableOfReal me, Graphics g, long colx1, long coly1, long colx2, long coly2, double xmin, double xmax,
+                              double ymin, double ymax, int vectype, int labelsize, int garnish) {
 	long nx = my numberOfColumns, ny = my numberOfRows;
 	int fontsize = Graphics_inqFontSize (g);
 
@@ -1248,23 +1290,24 @@ void TableOfReal_drawVectors (TableOfReal me, Graphics g, long colx1, long coly1
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 	}
 }
 
-void TableOfReal_drawColumnAsDistribution (TableOfReal me, Graphics g, int column, double minimum, double maximum, long nBins, double freqMin, double freqMax, bool cumulative, bool garnish) {
+void TableOfReal_drawColumnAsDistribution (TableOfReal me, Graphics g, int column, double minimum, double maximum, long nBins,
+        double freqMin, double freqMax, int cumulative, int garnish) {
 	if (column < 1 || column > my numberOfColumns) {
 		return;
 	}
 	autoMatrix thee = TableOfReal_to_Matrix (me);
-	Matrix_drawDistribution (thee.get(), g, column - 0.5, column + 0.5, 0.0, 0.0, minimum, maximum, nBins, freqMin, freqMax, cumulative, garnish);
+	Matrix_drawDistribution (thee.peek(), g,  column - 0.5, column + 0.5, 0, 0, minimum, maximum, nBins, freqMin,  freqMax,  cumulative,  garnish);
 	if (garnish && my columnLabels[column] != 0) {
-		Graphics_textBottom (g, true, my columnLabels[column]);
+		Graphics_textBottom (g, 1, my columnLabels[column]);
 	}
 }
 
-autoTableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long index[], int reverse) {
+TableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long *index, int reverse) {
 	try {
 		if (my rowLabels == 0) {
 			Melder_throw (U"No labels to sort");
@@ -1278,10 +1321,10 @@ autoTableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long index[], int r
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 
 		for (long i = 1; i <= my numberOfRows; i++) {
-			long myindex = reverse ? i : index[i];
-			long thyindex = reverse ? index[i] : i;
+			long    myindex = reverse ? i : index[i];
+			long   thyindex = reverse ? index[i] : i;
 			const char32 *mylabel = my rowLabels[myindex];
-			double *mydata = my data[myindex];
+			double  *mydata = my data[myindex];
 			double *thydata = thy data[thyindex];
 
 			// Copy the row label
@@ -1298,7 +1341,7 @@ autoTableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long index[], int r
 		// Copy column labels.
 
 		NUMstrings_copyElements (my columnLabels, thy columnLabels, 1, my numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not sorted by row index.");
 	}
@@ -1314,11 +1357,11 @@ long *TableOfReal_getSortedIndexFromRowLabels (TableOfReal me) {
 	}
 }
 
-autoTableOfReal TableOfReal_sortOnlyByRowLabels (TableOfReal me) {
+TableOfReal TableOfReal_sortOnlyByRowLabels (TableOfReal me) {
 	try {
 		autoPermutation index = TableOfReal_to_Permutation_sortRowLabels (me);
-		autoTableOfReal thee = TableOfReal_and_Permutation_permuteRows (me, index.get());
-		return thee;
+		autoTableOfReal thee = TableOfReal_and_Permutation_permuteRows (me, index.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not sorted by row labels.");
 	}
@@ -1352,9 +1395,9 @@ static void NUMstatsColumns (double **a, long rb, long re, long cb, long ce, int
 	}
 }
 
-autoTableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int stats) {
+TableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int stats) {
 	try {
-		autoTableOfReal thee;
+		autoTableOfReal thee = 0;
 		autoNUMvector<long> index (TableOfReal_getSortedIndexFromRowLabels (me), 1);
 		autoTableOfReal sorted = TableOfReal_sortRowsByIndex (me, index.peek(), 0);
 
@@ -1367,7 +1410,7 @@ autoTableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int st
 
 				if (expand == 0) {
 					indexr++;
-					TableOfReal_copyOneRowWithLabel (sorted.get(), sorted.get(), indexi, indexr);
+					TableOfReal_copyOneRowWithLabel (sorted.peek(), sorted.peek(), indexi, indexr);
 				}
 				label = li; indexi = i;
 			}
@@ -1379,28 +1422,28 @@ autoTableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int st
 			// Now invert the table.
 
 			char32 **tmp = sorted -> rowLabels; sorted -> rowLabels = my rowLabels;
-			thee = TableOfReal_sortRowsByIndex (sorted.get(), index.peek(), 1);
+			thee.reset (TableOfReal_sortRowsByIndex (sorted.peek(), index.peek(), 1));
 			sorted -> rowLabels = tmp;
 		} else {
 			indexr++;
-			TableOfReal_copyOneRowWithLabel (sorted.get(), sorted.get(), indexi, indexr);
-			thee = TableOfReal_create (indexr, my numberOfColumns);
+			TableOfReal_copyOneRowWithLabel (sorted.peek(), sorted.peek(), indexi, indexr);
+			thee.reset (TableOfReal_create (indexr, my numberOfColumns));
 			for (long i = 1; i <= indexr; i++) {
-				TableOfReal_copyOneRowWithLabel (sorted.get(), thee.get(), i, i);
+				TableOfReal_copyOneRowWithLabel (sorted.peek(), thee.peek(), i, i);
 			}
 			NUMstrings_copyElements (sorted -> columnLabels, thy columnLabels, 1, my numberOfColumns);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": means by row labels not created.");
 	}
 }
 
-autoTableOfReal TableOfReal_rankColumns (TableOfReal me) {
+TableOfReal TableOfReal_rankColumns (TableOfReal me) {
 	try {
 		autoTableOfReal thee = Data_copy (me);
 		NUMrankColumns (thy data, 1, thy numberOfRows, 1, thy numberOfColumns);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": column ranks not created.");
 	}
@@ -1433,18 +1476,18 @@ void TableOfReal_setSequentialRowLabels (TableOfReal me, long from, long to, con
 }
 
 /* For the inheritors */
-autoTableOfReal TableOfReal_to_TableOfReal (TableOfReal me) {
+TableOfReal TableOfReal_to_TableOfReal (TableOfReal me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, my numberOfColumns);
 		NUMmatrix_copyElements (my data, thy data, 1, my numberOfRows, 1, my numberOfColumns);
-		TableOfReal_copyLabels (me, thee.get(), 1, 1);
-		return thee;
+		TableOfReal_copyLabels (me, thee.peek(), 1, 1);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not copied.");
 	}
 }
 
-autoTableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, int inverse) {
+TableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, int inverse) {
 	try {
 		char diag = 'N';
 		long n = my numberOfColumns, lda = my numberOfRows, info;
@@ -1456,11 +1499,11 @@ autoTableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, in
 
 		if (upper) {
 			for (long i = 2; i <= n; i++) for (long j = 1; j < i; j++) {
-					thy data[i][j] = 0.0;
+					thy data[i][j] = 0;
 				}
 		} else {
 			for (long i = 1; i < n; i++) for (long j = i + 1; j <= n; j++) {
-					thy data[i][j] = 0.0;
+					thy data[i][j] = 0;
 				}
 		}
 		char uplo = upper ? 'L' : 'U';
@@ -1475,13 +1518,13 @@ autoTableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, in
 				Melder_throw (U"dtrtri fails");
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Cholesky decomposition not performed.");
 	}
 }
 
-autoTableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee) {
+TableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee) {
 	try {
 		long ncols = my numberOfColumns + thy numberOfColumns;
 		long labeldiffs = 0;
@@ -1494,7 +1537,7 @@ autoTableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee) {
 			(my rowLabels[i] == thy rowlabels[i], i=1..my numberOfRows) or
 			(my rowLabels[i] == 'empty', i=1..my numberOfRows)  or
 			(thy rowLabels[i] == 'empty', i=1..my numberOfRows);
-			'empty':  nullptr or \w*
+			'empty':  NULL or \w*
 		*/
 		autoTableOfReal him = TableOfReal_create (my numberOfRows, ncols);
 		NUMstrings_copyElements (my rowLabels, his rowLabels, 1, my numberOfRows);
@@ -1510,56 +1553,53 @@ autoTableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee) {
 		if (labeldiffs > 0) {
 			Melder_warning (labeldiffs, U" row labels differed.");
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal with appended columns not created.");
 	}
 }
 
-autoTableOfReal TableOfRealList_appendColumnsMany (TableOfRealList me) {
+TableOfReal TableOfReal_appendColumnsMany (Collection me) {
 	try {
 		if (my size == 0) {
 			Melder_throw (U"No tables selected.");
 		}
-		TableOfReal thee = my at [1];
+		TableOfReal thee = (TableOfReal) my item [1];
 		long nrow = thy numberOfRows;
 		long ncol = thy numberOfColumns;
-		for (long itab = 2; itab <= my size; itab ++) {
-			thee = my at [itab];
+		for (long itab = 2; itab <= my size; itab++) {
+			thee = (TableOfReal) my item [itab];
 			ncol += thy numberOfColumns;
 			if (thy numberOfRows != nrow) {
 				Melder_throw (U"Numbers of rows in item ", itab, U" differs from previous.");
 			}
 		}
-		autoTableOfReal him = TableOfReal_create (nrow, ncol);
+		autoTableOfReal him = Thing_new (TableOfReal);
+		TableOfReal_init (him.peek(), nrow, ncol);
 		/* Unsafe: new attributes not initialized. */
-		for (long irow = 1; irow <= nrow; irow ++) {
-			TableOfReal_setRowLabel (him.get(), irow, thy rowLabels [irow]);
+		for (long irow = 1; irow <= nrow; irow++) {
+			TableOfReal_setRowLabel (him.peek(), irow, thy rowLabels [irow]);
 		}
 		ncol = 0;
-		for (long itab = 1; itab <= my size; itab ++) {
-			thee = my at [itab];
-			for (long icol = 1; icol <= thy numberOfColumns; icol ++) {
+		for (long itab = 1; itab <= my size; itab++) {
+			thee = (TableOfReal) my item [itab];
+			for (long icol = 1; icol <= thy numberOfColumns; icol++) {
 				ncol++;
-				TableOfReal_setColumnLabel (him.get(), ncol, thy columnLabels [icol]);
-				for (long irow = 1; irow <= nrow; irow ++) {
-					his data [irow] [ncol] = thy data [irow] [icol];
+				TableOfReal_setColumnLabel (him.peek(), ncol, thy columnLabels [icol]);
+				for (long irow = 1; irow <= nrow; irow++) {
+					his data[irow][ncol] = thy data[irow][icol];
 				}
 			}
 		}
 		Melder_assert (ncol == his numberOfColumns);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal with appended columns not created.");
 	}
 }
 
-double TableOfReal_normalityTest_BHEP (TableOfReal me, double *h, double *p_tnb, double *p_lnmu, double *p_lnvar) {
+double TableOfReal_normalityTest_BHEP (TableOfReal me, double *h, double *tnb, double *lnmu, double *lnvar) {
 	try {
-		/* Henze & Wagner (1997), A new approach to the BHEP tests for multivariate normality, 
-		 *  Journal of Multivariate Analysis 62, 1-23.
-		 */
-
 		long n = my numberOfRows, p = my numberOfColumns;
 		double beta = *h > 0 ? NUMsqrt1_2 / *h : NUMsqrt1_2 * pow ( (1.0 + 2 * p) / 4, 1.0 / (p + 4)) * pow (n, 1.0 / (p + 4));
 		double p2 = p / 2.0;
@@ -1572,7 +1612,7 @@ double TableOfReal_normalityTest_BHEP (TableOfReal me, double *h, double *p_tnb,
 			*h = NUMsqrt1_2 / beta;
 		}
 
-		double tnb = NUMundefined, lnmu = NUMundefined, lnvar = NUMundefined;
+		*tnb = *lnmu = *lnvar = NUMundefined;
 
 		if (n < 2 || p < 1) {
 			return NUMundefined;
@@ -1580,13 +1620,13 @@ double TableOfReal_normalityTest_BHEP (TableOfReal me, double *h, double *p_tnb,
 
 		autoCovariance thee = TableOfReal_to_Covariance (me);
 		try {
-			SSCP_expandLowerCholesky (thee.get());
+			SSCP_expandLowerCholesky (thee.peek());
 		} catch (MelderError) {
-			tnb = 4.0 * n;
+			*tnb = 4 * n;
 		}
 		{
-			double djk, djj, sumjk = 0.0, sumj = 0.0;
-			double b1 = beta2 / 2.0, b2 = b1 / (1.0 + beta2);
+			double djk, djj, sumjk = 0, sumj = 0;
+			double b1 = beta2 / 2, b2 = b1 / (1.0 + beta2);
 			/* Heinze & Wagner (1997), page 3
 				We use d[j][k] = ||Y[j]-Y[k]||^2 = (Y[j]-Y[k])'S^(-1)(Y[j]-Y[k])
 				So d[j][k]= d[k][j] and d[j][j] = 0
@@ -1594,43 +1634,34 @@ double TableOfReal_normalityTest_BHEP (TableOfReal me, double *h, double *p_tnb,
 			for (long j = 1; j <= n; j++) {
 				for (long k = 1; k < j; k++) {
 					djk = NUMmahalanobisDistance_chi (thy lowerCholesky, my data[j], my data[k], p, p);
-					sumjk += 2.0 * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
+					sumjk += 2 * exp (-b1 * djk); // factor 2 because d[j][k] == d[k][j]
 				}
 				sumjk += 1; // for k == j
 				djj = NUMmahalanobisDistance_chi (thy lowerCholesky, my data[j], thy centroid, p, p);
 				sumj += exp (-b2 * djj);
 			}
-			tnb = (1.0 / n) * sumjk - 2.0 * pow (1.0 + beta2, - p2) * sumj + n * pow (gamma, - p2); // n *
+			*tnb = (1.0 / n) * sumjk - 2.0 * pow (1.0 + beta2, - p2) * sumj + n * pow (gamma, - p2); // n *
 		}
-		double mu = 1.0 - pow (gamma, -p2) * (1.0 + p * beta2 / gamma + p * (p + 2) * beta4 / (2.0 * gamma2));
+		double mu = 1.0 - pow (gamma, -p2) * (1.0 + p * beta2 / gamma + p * (p + 2) * beta4 / (2 * gamma2));
 		double var = 2.0 * pow (1 + 4 * beta2, -p2)
-			+ 2.0 * pow (gamma,  -p) * (1.0 + 2 * p * beta4 / gamma2  + 3 * p * (p + 2) * beta8 / (4.0 * gamma4))
-			- 4.0 * pow (delta, -p2) * (1.0 + 3 * p * beta4 / (2 * delta) + p * (p + 2) * beta8 / (2.0 * delta2));
+		             + 2.0 * pow (gamma,  -p) * (1.0 + 2 * p * beta4 / gamma2  + 3 * p * (p + 2) * beta8 / (4 * gamma4))
+		             - 4.0 * pow (delta, -p2) * (1.0 + 3 * p * beta4 / (2 * delta) + p * (p + 2) * beta8 / (2 * delta2));
 		double mu2 = mu * mu;
-		lnmu = 0.5 * log (mu2 * mu2 / (mu2 + var)); //log (sqrt (mu2 * mu2 /(mu2 + var)));
-		lnvar = sqrt (log ( (mu2 + var) / mu2));
-		prob = NUMlogNormalQ (tnb, lnmu, lnvar);
-		if (p_tnb) {
-			*p_tnb = tnb;
-		}
-		if (p_lnmu) {
-			*p_lnmu = lnmu;
-		}
-		if (p_lnvar) {
-			*p_lnvar = lnvar;
-		}
+		*lnmu = 0.5 * log (mu2 * mu2 / (mu2 + var)); //log (sqrt (mu2 * mu2 /(mu2 + var)));
+		*lnvar = sqrt (log ( (mu2 + var) / mu2));
+		prob = NUMlogNormalQ (*tnb, *lnmu, *lnvar);
 		return prob;
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot determine normality.");
 	}
 }
 
-autoTableOfReal TableOfReal_and_TableOfReal_crossCorrelations (TableOfReal me, TableOfReal thee, int by_columns, int center, int normalize) {
+TableOfReal TableOfReal_and_TableOfReal_crossCorrelations (TableOfReal me, TableOfReal thee, int by_columns, int center, int normalize) {
 	return by_columns ? TableOfReal_and_TableOfReal_columnCorrelations (me, thee, center, normalize) :
 	       TableOfReal_and_TableOfReal_rowCorrelations (me, thee, center, normalize);
 }
 
-autoTableOfReal TableOfReal_and_TableOfReal_rowCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize) {
+TableOfReal TableOfReal_and_TableOfReal_rowCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize) {
 	try {
 		if (my numberOfColumns != thy numberOfColumns) {
 			Melder_throw (U"Both tables must have the same number of columns.");
@@ -1658,13 +1689,13 @@ autoTableOfReal TableOfReal_and_TableOfReal_rowCorrelations (TableOfReal me, Tab
 				his data[i][k] = ctmp;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal with row correlations not created.");
 	}
 }
 
-autoTableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize) {
+TableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me, TableOfReal thee, int center, int normalize) {
 	try {
 		if (my numberOfRows != thy numberOfRows) {
 			Melder_throw (U"Both tables must have the same number of rows.");
@@ -1674,8 +1705,8 @@ autoTableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me,
 		autoNUMmatrix<double> my_data (NUMmatrix_copy (my data, 1, my numberOfRows, 1, my numberOfColumns), 1, 1);
 		autoNUMmatrix<double> thy_data (NUMmatrix_copy (thy data, 1, thy numberOfRows, 1, thy numberOfColumns), 1, 1);
 		if (center) {
-			NUMcentreColumns (my_data.peek(), 1, my numberOfRows, 1, my numberOfColumns, nullptr);
-			NUMcentreColumns (thy_data.peek(), 1, thy numberOfRows, 1, thy numberOfColumns, nullptr);
+			NUMcentreColumns (my_data.peek(), 1, my numberOfRows, 1, my numberOfColumns, NULL);
+			NUMcentreColumns (thy_data.peek(), 1, thy numberOfRows, 1, thy numberOfColumns, NULL);
 		}
 		if (normalize) {
 			NUMnormalizeColumns (my_data.peek(), my numberOfRows, my numberOfColumns, 1);
@@ -1686,14 +1717,14 @@ autoTableOfReal TableOfReal_and_TableOfReal_columnCorrelations (TableOfReal me,
 
 		for (long j = 1; j <= my numberOfColumns; j++) {
 			for (long k = 1; k <= thy numberOfColumns; k++) {
-				double ctmp = 0.0;
+				double ctmp = 0;
 				for (long i = 1; i <= my numberOfRows; i++) {
 					ctmp += my_data[i][j] * thy_data[i][k];
 				}
 				his data[j][k] = ctmp;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal with column correlations not created.");
 	}
diff --git a/dwtools/TableOfReal_extensions.h b/dwtools/TableOfReal_extensions.h
index 3610db8..1216e03 100644
--- a/dwtools/TableOfReal_extensions.h
+++ b/dwtools/TableOfReal_extensions.h
@@ -2,7 +2,7 @@
 #define _TableOfReal_extensions_h_
 /* TableOfReal_extensions.h
  *
- * Copyright (C) 1993-2012, 2014-2016 David Weenink
+ * Copyright (C) 1993-2012, 2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,6 +19,11 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ djmw 20020411 initial GPL
+ djmw 20120914 Latest modification.
+*/
+
 #include "TableOfReal.h"
 #include "Collection.h"
 #include "Pattern.h"
@@ -26,64 +31,64 @@
 #include "Strings_.h"
 #include "SSCP.h"
 
-void TableOfReal_to_Pattern_and_Categories(TableOfReal me, long fromrow, long torow, long fromcol, long tocol,
-	autoPattern *p, autoCategories *c);
+int TableOfReal_to_Pattern_and_Categories(TableOfReal me, long fromrow, long torow, long fromcol, long tocol,
+	Pattern *p, Categories *c);
 
-autoTableOfReal TableOfReal_transpose (TableOfReal me);
+TableOfReal TableOfReal_transpose (TableOfReal me);
 
-autoStrings TableOfReal_extractRowLabels (TableOfReal me);
+Strings TableOfReal_extractRowLabels (TableOfReal me);
 
-autoStrings TableOfReal_extractColumnLabels (TableOfReal me);
+Strings TableOfReal_extractColumnLabels (TableOfReal me);
 
 void TableOfReal_and_Categories_setRowLabels (TableOfReal me, Categories thee);
-// !!! Set rowlabels from categories because we need a Table-object with string-columns.
+/* !!! Set rowlabels from categories
+  Because we need a Table-object with string-columns.
+*/
 
-autoTableOfReal TableOfReal_sortOnlyByRowLabels (TableOfReal me);
+TableOfReal TableOfReal_sortOnlyByRowLabels (TableOfReal me);
 
 long *TableOfReal_getSortedIndexFromRowLabels (TableOfReal me);
 
-autoTableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long index[], int reverse);
-// thy data[reverse ? i : index[i]][j] = my data[reverse ? index[i] : i]
-
-autoTableOfReal TableOfReal_createIrisDataset ();
-
-autoTableOfReal TableOfReal_createFromPolsData_50males (bool include_levels);
-
-autoTableOfReal TableOfReal_createFromVanNieropData_25females (bool include_levels);
+TableOfReal TableOfReal_sortRowsByIndex (TableOfReal me, long *index, int reverse);
+/*
+	thy data[reverse ? i : index[i]][j] = my data[reverse ? index[i] : i]
+*/
 
-autoTableOfReal TableOfReal_createFromWeeninkData (int option); /* M W C */
+TableOfReal TableOfReal_createIrisDataset ();
+int TableOfReal_areAllCellsDefined (TableOfReal me, long rb, long re, long cb, long ce);
+TableOfReal TableOfReal_createFromPolsData_50males (int include_levels);
+TableOfReal TableOfReal_createFromVanNieropData_25females (int include_levels);
+TableOfReal TableOfReal_createFromWeeninkData (int option); /* M W C */
 
 void TableOfReal_getColumnExtrema (TableOfReal me, long col, double *min, double *max);
-
 long TableOfReal_getColumnIndexAtMaximumInRow (TableOfReal me, long rowNumber);
-
 const char32 *TableOfReal_getColumnLabelAtMaximumInRow (TableOfReal me, long rowNumber);
 
 void TableOfReal_drawRowsAsHistogram (TableOfReal me, Graphics g, const char32 *rows, long colb, long cole,
 	double ymin, double ymax, double xoffsetFraction, double interbarFraction,
-	double interbarsFraction, const char32 *greys, bool garnish);
+	double interbarsFraction, const char32 *greys, int garnish);
 
 void TableOfReal_drawScatterPlot (TableOfReal me, Graphics g, long icx, long icy, long rowb,
 	long rowe, double xmin, double xmax, double ymin, double ymax,
-	int labelSize, bool useRowLabels, const char32 *label, bool garnish);
+	int labelSize, int useRowLabels, const char32 *label, int garnish);
 
-void TableOfReal_drawAsSquares_area (TableOfReal me, Graphics g, double zmin, double zmax, double cellSizeFactor, int randomFillOrder, bool garnish);
+void TableOfReal_drawAsSquares_area (TableOfReal me, Graphics g, double zmin, double zmax, double cellSizeFactor, int randomFillOrder, int garnish);
 
 void TableOfReal_drawScatterPlotMatrix (TableOfReal me, Graphics g, long colb, long cole, double fractionWhite);
 
 void TableOfReal_drawBoxPlots (TableOfReal me, Graphics g, long rowmin, long rowmax, long colmin, long colmax,
-	double ymin, double ymax, bool garnish);
+	double ymin, double ymax, int garnish);
 
 void TableOfReal_drawVectors (TableOfReal me, Graphics g, long colx1, long coly1,
 	long colx2, long coly2, double xmin, double xmax,
-	double ymin, double ymax, int vectype, int labelsize, bool garnish);
+	double ymin, double ymax, int vectype, int labelsize, int garnish);
 
 void TableOfReal_drawBiplot (TableOfReal me, Graphics g, double xmin, double xmax,
 	double ymin, double ymax, double sv_splitfactor, int labelsize,
-	bool garnish);
+	int garnish);
 
 void TableOfReal_drawColumnAsDistribution (TableOfReal me, Graphics g, int column, double minimum, double maximum, long nBins,
-	double freqMin, double freqMax, bool cumulative, bool garnish);
+	double freqMin, double freqMax, int cumulative, int garnish);
 
 long TableOfReal_getNumberOfLabelMatches (TableOfReal me, const char32 *search, int columnLabels,
 	int use_regexp);
@@ -107,19 +112,20 @@ void TableOfReal_copyLabels (TableOfReal me, TableOfReal thee, int rowOrigin, in
 
 void TableOfReal_labelsFromCollectionItemNames (TableOfReal me, Collection thee, int row, int column);
 
-void TableOfReal_setSequentialColumnLabels (TableOfReal me, long from, long to, const char32 *precursor, long number, long increment);
-
-void TableOfReal_setSequentialRowLabels (TableOfReal me, long from, long to, const char32 *precursor, long number, long increment);
+void TableOfReal_setSequentialColumnLabels (TableOfReal me, long from, long to,
+	const char32 *precursor, long number, long increment);
+void TableOfReal_setSequentialRowLabels (TableOfReal me, long from, long to,
+	const char32 *precursor, long number, long increment);
 
 int TableOfReal_hasRowLabels (TableOfReal me);
-
 int TableOfReal_hasColumnLabels (TableOfReal me);
 
 void TableOfReal_changeRowLabels (TableOfReal me, const char32 *search, const char32 *replace,
-	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp);
-
+	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches,
+	int use_regexp);
 void TableOfReal_changeColumnLabels (TableOfReal me, const char32 *search, const char32 *replace,
-	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches, int use_regexp);
+	int maximumNumberOfReplaces, long *nmatches, long *nstringmatches,
+	int use_regexp);
 /*
 	Change all row/column labels. The 'search' and 'replace' string are
 	interpreted as regular expressions when 'use_regexp' != 0.
@@ -132,20 +138,15 @@ void TableOfReal_changeColumnLabels (TableOfReal me, const char32 *search, const
 */
 
 void TableOfReal_centreColumns (TableOfReal me);
-
 void TableOfReal_centreColumns_byRowLabel (TableOfReal me);
 /* PRECONDITION: Table must be sorted by row labels !! */
 
 double TableOfReal_getColumnQuantile (TableOfReal me, long col, double quantile);
 
 double TableOfReal_getRowSumByLabel (TableOfReal me, const char32 *label);
-
 double TableOfReal_getRowSum (TableOfReal me, long index);
-
 double TableOfReal_getColumnSumByLabel (TableOfReal me, const char32 *label);
-
 double TableOfReal_getColumnSum (TableOfReal me, long index);
-
 double TableOfReal_getGrandSum (TableOfReal me);
 
 void TableOfReal_centreRows (TableOfReal me);
@@ -157,18 +158,15 @@ int TableOfReal_checkPositive (TableOfReal me);
 double TableOfReal_getTableNorm (TableOfReal me);
 
 void TableOfReal_normalizeTable (TableOfReal me, double norm);
-
 void TableOfReal_normalizeColumns (TableOfReal me, double norm);
-
 void TableOfReal_normalizeRows (TableOfReal me, double norm);
 
 void TableOfReal_standardizeColumns (TableOfReal me);
-
 void TableOfReal_standardizeRows (TableOfReal me);
 
-autoTableOfReal TableOfReal_rankColumns (TableOfReal me);
+TableOfReal TableOfReal_rankColumns (TableOfReal me);
 
-autoTableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int stats);
+TableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int stats);
 /*
 	stats == 0? averages : medians
 	For a table with n rows and m different labels (m <= n):
@@ -176,34 +174,37 @@ autoTableOfReal TableOfReal_meansByRowLabels (TableOfReal me, int expand, int st
 	else output a table with m rows, the averages for the m labels.
 */
 
-autoTableOfReal TableOfReal_bootstrap (TableOfReal me);
-// Produce new table with the same number of entries, but randomly selected with replacement.
-
-autoTableOfReal TableOfReal_randomizeRows (TableOfReal me);
+TableOfReal TableOfReal_bootstrap (TableOfReal me);
+/* Produce new table with the same number of entries, but randomly
+selected with replacement. */
+TableOfReal TableOfReal_randomizeRows (TableOfReal me);
 /* Produce new table with randomized rows */
 
 /* For the inheritors */
-autoTableOfReal TableOfReal_to_TableOfReal (TableOfReal me);
+TableOfReal TableOfReal_to_TableOfReal (TableOfReal me);
 
-autoTableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, int inverse);
+TableOfReal TableOfReal_choleskyDecomposition (TableOfReal me, int upper, int inverse);
 
-autoTableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee);
+TableOfReal TableOfReal_appendColumns (TableOfReal me, TableOfReal thee);
+TableOfReal TableOfReal_appendColumnsMany (Collection me);
 
 void TableOfReal_copyOneRowWithLabel (TableOfReal me, TableOfReal thee, long myrow, long thyrow);
 
-/* Henze & Wagner (1997), A new approach to the BHEP tests for multivariate normality, Journal of Multivariate Analysis 62, 1-23. */
-double TableOfReal_normalityTest_BHEP (TableOfReal me, double *beta /* input and output */, double *tnb, double *lnmu, double *lnvar);
+double TableOfReal_normalityTest_BHEP (TableOfReal me, double *beta, double *tnb, double *lnmu, double *lnvar);
 
-autoTableOfReal TableOfReal_and_TableOfReal_crossCorrelations (TableOfReal me, TableOfReal thee, int by_columns, int center, int normalize);
+TableOfReal TableOfReal_and_TableOfReal_crossCorrelations (TableOfReal me, TableOfReal thee, int by_columns, int center, int normalize);
 
+/********************* class TablesOfReal ******************************/
 
-#pragma mark - class TableOfRealList
+Thing_define (TablesOfReal, Ordered) {
+};
 
-autoTableOfReal TableOfRealList_sum (TableOfRealList me);
+void TablesOfReal_init (TablesOfReal me, ClassInfo klas);
 
-bool TableOfRealList_haveIdenticalDimensions (TableOfRealList me);
+TablesOfReal TablesOfReal_create ();
 
-autoTableOfReal TableOfRealList_appendColumnsMany (TableOfRealList me);
+TableOfReal TablesOfReal_sum (TablesOfReal me);
 
+int TablesOfReal_checkDimensions (TablesOfReal me);
 
 #endif /* _TableOfReal_extensions_h_ */
diff --git a/dwtools/Table_extensions.cpp b/dwtools/Table_extensions.cpp
index 3a4955b..805c40c 100644
--- a/dwtools/Table_extensions.cpp
+++ b/dwtools/Table_extensions.cpp
@@ -1,6 +1,6 @@
 /* Table_extensions.cpp
 	 *
- * Copyright (C) 1997-2016 David Weenink
+ * Copyright (C) 1997-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@ static bool Table_selectedColumnPartIsNumeric (Table me, long column, long *sele
 
 // column and selectedRows are valid; *min & *max must be intialized
 static void Table_columnExtremesFromSelectedRows (Table me, long column, long *selectedRows, long numberOfSelectedRows, double *min, double *max) {
-	double cmin = 1e308, cmax = - cmin;
+	double cmin = 1e38, cmax = - cmin;
 	for (long irow = 1; irow <= numberOfSelectedRows; irow++) {
 		double val = Table_getNumericValue_Assert (me, selectedRows[irow], column);
 		if (val < cmin) { cmin = val; }
@@ -89,9 +89,10 @@ Phoneme Number, Phoneme Label, F0, F1, F2 and F3. The speaker types
 are type 1 (men), type 2 (women) and type 3 (children)."
 */
 
-autoTable Table_createFromPetersonBarneyData () {
+Table Table_createFromPetersonBarneyData () {
 	long nrows = 1520, ncols = 9;
-	const char32 *columnLabels[9] = {U"Type", U"Sex", U"Speaker", U"Vowel", U"IPA", U"F0", U"F1", U"F2", U"F3"};
+	const char32 *columnLabels[9] =
+	{U"Type", U"Sex", U"Speaker", U"Vowel", U"IPA", U"F0", U"F1", U"F2", U"F3"};
 	const char32 *type[3] = {U"m", U"w", U"c"};
 	// Wrong order before 20080125
 	//	char32 *vowel[10] = {U"iy", U"ih", U"eh", U"ae", U"aa", U"ao", U"uh", U"uw", U"ah", U"er"};
@@ -1632,8 +1633,8 @@ autoTable Table_createFromPetersonBarneyData () {
 	try {
 		autoTable me = Table_create (nrows, ncols);
 
-		for (long i = 1; i <= nrows; i ++) {
-			TableRow row = my rows.at [i];
+		for (long i = 1; i <= nrows; i++) {
+			TableRow row = (TableRow) my rows -> item[i];
 			int vowel_id = ( (i - 1) % 20) / 2 + 1;	/* 1 - 10 */
 			int speaker_id = (i - 1) / 20 + 1;		/* 1 - 76 */
 			int speaker_type, speaker_sex;
@@ -1657,23 +1658,26 @@ autoTable Table_createFromPetersonBarneyData () {
 			row -> cells [4]. string = Melder_dup_f (vowel [vowel_id - 1]);
 			row -> cells [5]. string = Melder_dup_f (ipa [vowel_id - 1]);
 			for (long j = 0; j <= 3; j++) {
-				row -> cells [j + 6]. string = Melder_dup_f (Melder_integer (pbdata[i - 1].f[j]));
+				row -> cells [j + 6].string = Melder_dup_f (Melder_integer (pbdata[i - 1].f[j]));
 			}
 		}
 		for (long j = 1; j <= ncols; j++) {
-			Table_setColumnLabel (me.get(), j, columnLabels[j - 1]);
-			my columnHeaders [j]. numericized = false;
+			Table_setColumnLabel (me.peek(), j, columnLabels[j - 1]);
+			my columnHeaders [j]. numericized = FALSE;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created from Peterson & Barney data.");
 	}
 }
 
-autoTable Table_createFromPolsVanNieropData () {
+Table Table_createFromPolsVanNieropData () {
 	long nrows = 900, ncols = 10;
-	const char32 *columnLabels[10] = {U"Sex", U"Speaker", U"Vowel", U"IPA", U"F1", U"F2", U"F3", U"L1", U"L2", U"L3"};
-	const char32 *vowel[12] = {U"oe", U"aa", U"oo", U"a", U"eu", U"ie", U"uu", U"ee", U"u", U"e", U"o", U"i"};
+	const char32 *columnLabels[10] =
+	{U"Sex", U"Speaker", U"Vowel", U"IPA", U"F1", U"F2", U"F3", U"L1", U"L2", U"L3"};
+	const char32 *vowel[12] = {U"oe", U"aa", U"oo", U"a", U"eu", U"ie", U"uu", U"ee", U"u",
+	                            U"e", U"o", U"i"
+	                           };
 	const char32 *ipa[12] = {U"u", U"a", U"o", U"\\as", U"\\o/", U"i", U"y", U"e", U"\\yc", U"\\ep", U"\\ct", U"\\ic"};
 	const char32 *sex[2] = {U"m", U"f"};
 	struct polsdatum {
@@ -2661,34 +2665,35 @@ autoTable Table_createFromPolsVanNieropData () {
 	try {
 		autoTable me = Table_create (nrows, ncols);
 
-		for (long i = 1; i <= nrows; i ++) {
-			TableRow row = my rows.at [i];
+		for (long i = 1; i <= nrows; i++) {
+			TableRow row = (TableRow) my rows -> item[i];
 			int vowel_id = ( (i - 1) % 12) + 1;	/* 1 - 12 */
 			int speaker_id = (i - 1) / 12 + 1;  /* 1 - 75 */
-			int speaker_sex = ( speaker_id <= 50 ? 0 : 1 );
+			int speaker_sex = speaker_id <= 50 ? 0 : 1;
 
 			row -> cells [1]. string = Melder_dup_f (sex [speaker_sex]);
 			row -> cells [2]. string = Melder_dup_f (Melder_integer (speaker_id));
 			row -> cells [3]. string = Melder_dup_f (vowel [vowel_id - 1]);
 			row -> cells [4]. string = Melder_dup_f (ipa [vowel_id - 1]);
-			for (long j = 0; j <= 2; j ++) {
-				row -> cells [j + 5]. string = Melder_dup_f (Melder_integer (polsdata [i - 1]. f [j]));
-				row -> cells [j + 8]. string = Melder_dup_f (Melder_integer (polsdata [i - 1]. l [j]));
+			for (long j = 0; j <= 2; j++) {
+				row -> cells [j + 5]. string = Melder_dup_f (Melder_integer (polsdata[i - 1].f[j]));
+				row -> cells [j + 8]. string = Melder_dup_f (Melder_integer (polsdata[i - 1].l[j]));
 			}
 		}
 		for (long j = 1; j <= ncols; j++) {
-			Table_setColumnLabel (me.get(), j, columnLabels[j - 1]);
+			Table_setColumnLabel (me.peek(), j, columnLabels[j - 1]);
 			my columnHeaders [j]. numericized = false;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created from Pols & van Nierop data.");
 	}
 }
 
-autoTable Table_createFromWeeninkData () {
+Table Table_createFromWeeninkData () {
 	long nrows = 360, ncols = 9;
-	const char32 *columnLabels[9] = {U"Type", U"Sex", U"Speaker", U"Vowel", U"IPA", U"F0", U"F1", U"F2", U"F3"};
+	const char32 *columnLabels[9] =
+	{U"Type", U"Sex", U"Speaker", U"Vowel", U"IPA", U"F0", U"F1", U"F2", U"F3"};
 	const char32 *type[3] = {U"m", U"w", U"c"};
 	/* Our order: "oe", "o", "oo", "a", "aa", "u", "eu", "uu", "ie", "i", "ee", "e"
 		to Pols & van Nierop order */
@@ -2697,7 +2702,7 @@ autoTable Table_createFromWeeninkData () {
 	const char32 *ipa[13] = {U"", U"u", U"a", U"o", U"\\as", U"\\o/", U"i", U"y", U"e", U"\\yc", U"\\ep", U"\\ct", U"\\ic"};
 	const char32 *sex[2] = {U"m", U"f"};
 	struct weeninkdatum {
-		short f[4];	  // f0, f1, f2, f3
+		short f[4];	/* f0, f1, f2, f3 */
 	} weeninkdata [] = {
 		{{182, 335,  748, 2332}},
 		{{170, 435,  669, 2886}},
@@ -3093,19 +3098,20 @@ autoTable Table_createFromWeeninkData () {
 	try {
 		autoTable me = Table_create (nrows, ncols);
 
-		for (long i = 1; i <= nrows; i ++) {
-			TableRow row = my rows.at [i];
-			int speaker_id = (i - 1) / 12 + 1;	// 1 - 30
-			int vowel_id = (i - 1) % 12 + 1;	// 1 - 12
+		for (long i = 1; i <= nrows; i++) {
+			TableRow row = (TableRow)  my rows -> item[i];
+			int speaker_id = (i - 1) / 12 + 1;	/* 1 - 30 */
+			int vowel_id = (i - 1) % 12 + 1;	/* 1 - 12 */
 			int index_in_data = (speaker_id - 1) * 12 + order[vowel_id] - 1;
 			int speaker_type, speaker_sex;
 
-			if (speaker_id <= 10) {   // 10 men
+			if (speaker_id <= 10) { /* 10 men */
 				speaker_type = 0; speaker_sex = 0;
-			} else if (speaker_id <= 20) {   // 10 women
+			} else if (speaker_id <= 20) { /* 10 women */
 				speaker_type = 1; speaker_sex = 1;
-			} else {   // 10 children
-				speaker_type = 2; speaker_sex = 0;   // which children were m/f
+			} else { /* 10  children */
+				speaker_type = 2; speaker_sex = 0;
+				//  Which children were m/f ?
 			}
 
 			row -> cells [1]. string = Melder_dup_f (type [speaker_type]);
@@ -3114,82 +3120,50 @@ autoTable Table_createFromWeeninkData () {
 			row -> cells [4]. string = Melder_dup_f (vowel [vowel_id]);
 			row -> cells [5]. string = Melder_dup_f (ipa [vowel_id]);
 
-			for (long j = 0; j <= 3; j ++) {
-				row -> cells [j + 6]. string = Melder_dup_f (Melder_integer (weeninkdata [index_in_data]. f [j]));
+			for (long j = 0; j <= 3; j++) {
+				row -> cells [j + 6]. string = Melder_dup_f (Melder_integer (weeninkdata[index_in_data].f[j]));
 			}
 		}
-		for (long j = 1; j <= ncols; j ++) {
-			Table_setColumnLabel (me.get(), j, columnLabels [j - 1]);
+		for (long j = 1; j <= ncols; j++) {
+			Table_setColumnLabel (me.peek(), j, columnLabels[j - 1]);
 			my columnHeaders [j]. numericized = false;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created from Weenink data.");
 	}
 }
 
 // Keating&Esposito (2006), 
-autoTable Table_createFromEspositoData () {
+Table Table_createFromEspositoData () {
 	try {
 		autoTable me = Table_createWithColumnNames (10, U"Language Modal Breathy");
-		Table_setStringValue (me.get(), 1, 1, U"Chong");
-		Table_setNumericValue (me.get(), 1, 2, -1.5);
-		Table_setNumericValue (me.get(), 1, 3, 5);
-		Table_setStringValue (me.get(), 2, 1, U"Fuzhou");
-		Table_setNumericValue (me.get(), 2, 2, -1.5);
-		Table_setNumericValue (me.get(), 2, 3, 5);
-		Table_setStringValue (me.get(), 3, 1, U"Green Hmong");
-		Table_setNumericValue (me.get(), 3, 2, 3);
-		Table_setNumericValue (me.get(), 3, 3, 12);
-		Table_setStringValue (me.get(), 4, 1, U"White Hmong");
-		Table_setNumericValue (me.get(), 4, 2, 2);
-		Table_setNumericValue (me.get(), 4, 3, 11);
-		Table_setStringValue (me.get(), 5, 1, U"Mon");
-		Table_setNumericValue (me.get(), 5, 2, -1.5);
-		Table_setNumericValue (me.get(), 5, 3, 0);
-		Table_setStringValue (me.get(), 6, 1, U"SADV Zapotec");
-		Table_setNumericValue (me.get(), 6, 2, -6);
-		Table_setNumericValue (me.get(), 6, 3, -4);
-		Table_setStringValue (me.get(), 7, 1, U"SLQ Zapotec");
-		Table_setNumericValue (me.get(), 7, 2, 3.5);
-		Table_setNumericValue (me.get(), 7, 3, 14);
-		Table_setStringValue (me.get(), 8, 1, U"Tlacolula Zapotec");
-		Table_setNumericValue (me.get(), 8, 2, 3);
-		Table_setNumericValue (me.get(), 8, 3, 13);
-		Table_setStringValue (me.get(), 9, 1, U"Tamang");
-		Table_setNumericValue (me.get(), 9, 2, 1);
-		Table_setNumericValue (me.get(), 9, 3, 1);
-		Table_setStringValue (me.get(), 10, 1, U"!Xoo");
-		Table_setNumericValue (me.get(), 10, 2, 1);
-		Table_setNumericValue (me.get(), 10, 3, 14);
-		return me;
+		Table_setStringValue (me.peek(), 1, 1, U"Chong");Table_setNumericValue (me.peek(), 1, 2, -1.5);Table_setNumericValue (me.peek(), 1, 3, 5);
+		Table_setStringValue (me.peek(), 2, 1, U"Fuzhou");Table_setNumericValue (me.peek(), 2, 2, -1.5);Table_setNumericValue (me.peek(), 2, 3, 5);
+		Table_setStringValue (me.peek(), 3, 1, U"Green Hmong");Table_setNumericValue (me.peek(), 3, 2, 3);Table_setNumericValue (me.peek(), 3, 3, 12);
+		Table_setStringValue (me.peek(), 4, 1, U"White Hmong");Table_setNumericValue (me.peek(), 4, 2, 2);Table_setNumericValue (me.peek(), 4, 3, 11);
+		Table_setStringValue (me.peek(), 5, 1, U"Mon");Table_setNumericValue (me.peek(), 5, 2, -1.5);Table_setNumericValue (me.peek(), 5, 3, 0);
+		Table_setStringValue (me.peek(), 6, 1, U"SADV Zapotec");Table_setNumericValue (me.peek(), 6, 2, -6);Table_setNumericValue (me.peek(), 6, 3, -4);
+		Table_setStringValue (me.peek(), 7, 1, U"SLQ Zapotec");Table_setNumericValue (me.peek(), 7, 2, 3.5);Table_setNumericValue (me.peek(), 7, 3, 14);
+		Table_setStringValue (me.peek(), 8, 1, U"Tlacolula Zapotec");Table_setNumericValue (me.peek(), 8, 2, 3);Table_setNumericValue (me.peek(), 8, 3, 13);
+		Table_setStringValue (me.peek(), 9, 1, U"Tamang");Table_setNumericValue (me.peek(), 9, 2, 1);Table_setNumericValue (me.peek(), 9, 3, 1);
+		Table_setStringValue (me.peek(), 10, 1, U"!Xoo");Table_setNumericValue (me.peek(), 10, 2, 1);Table_setNumericValue (me.peek(), 10, 3, 14);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Keating-Esposito table not created.");
 	}
 }
 
-autoTable Table_createFromGanongData () {
+Table Table_createFromGanongData () {
 	try {
 		autoTable me = Table_createWithColumnNames (6, U"VOT dash-tash dask-task");
-		Table_setNumericValue (me.get(), 1, 1, -17.5);
-		Table_setNumericValue (me.get(), 1, 2, 0.98);
-		Table_setNumericValue (me.get(), 1, 3, 0.92);
-		Table_setNumericValue (me.get(), 2, 1, -7.5);
-		Table_setNumericValue (me.get(), 2, 2, 0.95);
-		Table_setNumericValue (me.get(), 2, 3, 0.83);
-		Table_setNumericValue (me.get(), 3, 1, -2.5);
-		Table_setNumericValue (me.get(), 3, 2, 0.71);
-		Table_setNumericValue (me.get(), 3, 3, 0.33);
-		Table_setNumericValue (me.get(), 4, 1, 2.5);
-		Table_setNumericValue (me.get(), 4, 2, 0.29);
-		Table_setNumericValue (me.get(), 4, 3, 0.10);
-		Table_setNumericValue (me.get(), 5, 1, 7.5);
-		Table_setNumericValue (me.get(), 5, 2, 0.12);
-		Table_setNumericValue (me.get(), 5, 3, 0.02);
-		Table_setNumericValue (me.get(), 6, 1, 17.5);
-		Table_setNumericValue (me.get(), 6, 2, 0.10);
-		Table_setNumericValue (me.get(), 6, 3, 0.02);
-		return me;
+		Table_setNumericValue (me.peek(), 1, 1, -17.5);Table_setNumericValue (me.peek(), 1, 2, 0.98);Table_setNumericValue (me.peek(), 1, 3, 0.92);
+		Table_setNumericValue (me.peek(), 2, 1, -7.5);Table_setNumericValue (me.peek(), 2, 2, 0.95);Table_setNumericValue (me.peek(), 2, 3, 0.83);
+		Table_setNumericValue (me.peek(), 3, 1, -2.5);Table_setNumericValue (me.peek(), 3, 2, 0.71);Table_setNumericValue (me.peek(), 3, 3, 0.33);
+		Table_setNumericValue (me.peek(), 4, 1, 2.5);Table_setNumericValue (me.peek(), 4, 2, 0.29);Table_setNumericValue (me.peek(), 4, 3, 0.10);
+		Table_setNumericValue (me.peek(), 5, 1, 7.5);Table_setNumericValue (me.peek(), 5, 2, 0.12);Table_setNumericValue (me.peek(), 5, 3, 0.02);
+		Table_setNumericValue (me.peek(), 6, 1, 17.5);Table_setNumericValue (me.peek(), 6, 2, 0.10);Table_setNumericValue (me.peek(), 6, 3, 0.02);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Ganong table not created.");
 	}
@@ -3197,17 +3171,12 @@ autoTable Table_createFromGanongData () {
 
 static bool intervalsIntersect (double x1, double x2, double xmin, double xmax, double *xc1, double *xc2) {
 	if (x1 > x2) { 
-		double tmp = x1;
-		x1 = x2;
-		x2 = tmp;
+		double tmp = x1; x1 = x2; x2 = tmp;
 	}
 	if (xmin > xmax) {
-		double tmp = xmin;
-		xmin = xmax;
-		xmin = tmp;
+		double tmp = xmin; xmin = xmax; xmin = tmp;
 	}
-	*xc1 = x1;
-	*xc2 = x2;
+	*xc1 = x1; *xc2 = x2;
 	if (x2 <= xmin || x1 >= xmax) {
 		return false;
 	}
@@ -3221,10 +3190,9 @@ static bool intervalsIntersect (double x1, double x2, double xmin, double xmax,
 }
 
 void Table_horizontalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long ycolumn, double xmin, double xmax, 
-	double ymin, double ymax, long xci_min, long xci_max, double bar_mm, int garnish, const char32 *formula, Interpreter interpreter)
-{
+	double ymin, double ymax, long xci_min, long xci_max, double bar_mm, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
-		long nrows = my rows.size;
+		long nrows = my rows -> size;
 		if (xcolumn < 1 || xcolumn > nrows || ycolumn < 1 || ycolumn > nrows ||
 			(xci_min != 0 && xci_min > nrows) || (xci_max != 0 && xci_max > nrows)) {
 			return;
@@ -3234,8 +3202,7 @@ void Table_horizontalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, lon
 		if (ymin >= ymax) {
 			Table_columnExtremesFromSelectedRows (me, ycolumn, selectedRows.peek(), numberOfSelectedRows, &ymin, &ymax);
 			if (ymin >= ymax) {
-				ymin -= 1.0;
-				ymax += 1.0;
+				ymin -= 1; ymax += 1;
 			}
 		}
 		double x1min, x1max;
@@ -3250,18 +3217,17 @@ void Table_horizontalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, lon
 				xmax += x1max;
 			}
 			if (xmin >= xmax) {
-				xmin -= 1.0;
-				xmax += 1.0;
+				xmin -= 1; xmax += 1;
 			}
 		}
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 		Graphics_setInner (g);
 		double dy = Graphics_dyMMtoWC (g, bar_mm);
 		for (long row = 1; row <= numberOfSelectedRows; row++) {
-			double x = Table_getNumericValue_Assert (me, selectedRows [row], xcolumn);
-			double y = Table_getNumericValue_Assert (me, selectedRows [row], ycolumn);
-			double dx1 = ( xci_min > 0 ? Table_getNumericValue_Assert (me, selectedRows [row], xci_min) : 0 );
-			double dx2 = ( xci_max > 0 ? Table_getNumericValue_Assert (me, selectedRows [row], xci_max) : 0 );
+			double x  = Table_getNumericValue_Assert (me, selectedRows[row], xcolumn);
+			double y  = Table_getNumericValue_Assert (me, selectedRows[row], ycolumn);
+			double dx1 = xci_min > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], xci_min) : 0;
+			double dx2 = xci_max > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], xci_max) : 0;
 			double x1 = x - dx1, x2 = x + dx2, xc1, yc1, xc2, yc2;
 
 			if (x <= xmax && x >= xmin && y <= ymax && y >= ymin) {
@@ -3283,18 +3249,18 @@ void Table_horizontalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, lon
 
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksLeft (g, 2, true, true, false);
-			Graphics_marksBottom (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
-		Melder_clearError ();
+		//
 	}
 }
 
 void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long ycolumn, double xmin, double xmax, 
 	double ymin, double ymax, long yci_min, long yci_max, double bar_mm, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
-		long nrows = my rows.size;
+		long nrows = my rows -> size;
 		if (xcolumn < 1 || xcolumn > nrows || ycolumn < 1 || ycolumn > nrows ||
 			(yci_min != 0 && yci_min > nrows) || (yci_max != 0 && yci_max > nrows)) {
 			return;
@@ -3304,8 +3270,7 @@ void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long
 		if (xmin >= xmax) {
 			Table_columnExtremesFromSelectedRows (me, ycolumn, selectedRows.peek(), numberOfSelectedRows, &ymin, &ymax);
 			if (xmin >= xmax) {
-				xmin -= 1.0;
-				xmax += 1.0;
+				xmin -= 1; xmax += 1;
 			}
 		}
 		double y1min, y1max;
@@ -3320,8 +3285,7 @@ void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long
 				ymax += y1max;
 			}
 			if (ymin >= ymax) {
-				ymin -= 1.0;
-				ymax += 1.0;
+				ymin -= 1; ymax += 1;
 			}
 		}
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -3330,19 +3294,19 @@ void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long
 		for (long row = 1; row <= numberOfSelectedRows; row++) {
 			double x  = Table_getNumericValue_Assert (me, selectedRows[row], xcolumn);
 			double y  = Table_getNumericValue_Assert (me, selectedRows[row], ycolumn);
-			double dy1 = yci_min > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], yci_min) : 0.0;
-			double dy2 = yci_max > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], yci_max) : 0.0;
+			double dy1 = yci_min > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], yci_min) : 0;
+			double dy2 = yci_max > 0 ? Table_getNumericValue_Assert (me, selectedRows[row], yci_max) : 0;
 			double y1 = y - dy1, y2 = y + dy2, xc1, yc1, xc2, yc2;
 
 			if (x <= xmax && x >= xmin && y <= ymax && y >= ymin) {
 				// vertical confidence interval
 				if (intervalsIntersect (y1, y2, ymin, ymax, &yc1, &yc2)) {
 					Graphics_line (g, x, yc1, x, yc2);
-					if (dx > 0 && intervalsIntersect (x - dx / 2.0, x + dx / 2.0, xmin, xmax, &xc1, &xc2)) {
-						if (yc1 >= ymin && dy1 > 0.0) {
+					if (dx > 0 && intervalsIntersect (x - dx / 2, x + dx / 2, xmin, xmax, &xc1, &xc2)) {
+						if (yc1 >= ymin && dy1 > 0) {
 							Graphics_line (g, xc1, yc1, xc2, yc1);
 						}
-						if (yc2 <= ymax && dy2 > 0.0) {
+						if (yc2 <= ymax && dy2 > 0) {
 							Graphics_line (g, xc1, yc2, xc2, yc2);
 						}
 					}
@@ -3353,11 +3317,11 @@ void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long
 
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksLeft (g, 2, true, true, false);
-			Graphics_marksBottom (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
-		Melder_clearError ();
+		//
 	}
 }
 
@@ -3365,12 +3329,12 @@ double Table_getMedianAbsoluteDeviation (Table me, long columnNumber)
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_Assert (me, columnNumber);
-		if (my rows.size < 1) {
+		if (my rows -> size < 1) {
 			return NUMundefined;
 		}
-		autoNUMvector<double> data (1, my rows.size);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		autoNUMvector<double> data (1, my rows -> size);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			data[irow] = row -> cells[columnNumber].number;
 			if (data[irow] == NUMundefined) {
 				Melder_throw (me, U": the cell in row ", irow, U" of column \"",
@@ -3378,13 +3342,13 @@ double Table_getMedianAbsoluteDeviation (Table me, long columnNumber)
 			}
 		}
 		double mad, location;
-		NUMmad (data.peek(), my rows.size, &location, 1, &mad, nullptr);
+		NUMmad (data.peek(), my rows -> size, &location, 1, &mad, 0);
 		return mad;
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot compute median absolute deviation of column ", columnNumber, U".");
 	}
 
-autoTable Table_getOneWayKruskalWallis (Table me, long column, long factorColumn, double *prob, double *p_kruskalWallis, double *p_df) {
+Table Table_getOneWayKruskalWallis (Table me, long column, long factorColumn, double *degreesOfFreedom, double *kruskalWallis, double *probability) {
 	try {
 		if (column < 1 || column > my numberOfColumns) {
 			Melder_throw (U"Invalid column number.");
@@ -3392,27 +3356,27 @@ autoTable Table_getOneWayKruskalWallis (Table me, long column, long factorColumn
 		if (factorColumn < 1 || factorColumn > my numberOfColumns || factorColumn == column) {
 			Melder_throw (U"Invalid group column number.");
 		}
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		Table_numericize_Assert (me, column);
 		autoNUMvector<double> data (1, numberOfData);
 		autoStringsIndex levels = Table_to_StringsIndex_column (me, factorColumn);
-		long numberOfLevels = levels -> classes->size;
+		long numberOfLevels = levels -> classes -> size;
 		if (numberOfLevels < 2) {
 			Melder_throw (U"There must be at least two levels.");
 		}
 
 		for (long irow = 1; irow <= numberOfData; irow++) {
-			data [irow] = my rows.at [irow] -> cells [column]. number;
+			data[irow] = ((TableRow) my rows -> item [irow]) -> cells [column] .number;
 		}
 		NUMsort2<double, long> (numberOfData, data.peek(), levels -> classIndex);
 		NUMrank<double> (numberOfData, data.peek());
 
 		// Get correctionfactor for ties
 		// Hayes pg. 831
-		double c = 0.0;
+		double c = 0;
 		long jt, j = 1;
 		while (j < numberOfData) {
-        	for (jt = j + 1; jt <= numberOfData && data [jt] == data [j]; jt ++) { }
+        	for (jt = j + 1; jt <= numberOfData && data[jt] == data[j]; jt++) {}
         	double multiplicity = jt - j;
 			if (multiplicity > 1) {
 				c += multiplicity * (multiplicity *multiplicity - 1.0);
@@ -3430,82 +3394,83 @@ autoTable Table_getOneWayKruskalWallis (Table me, long column, long factorColumn
 			factorLevelSums[index] += data[i];
 		}
 
-		double kruskalWallis = 0;
+		double h = 0;
 		for (j = 1; j <= numberOfLevels; j++) {
 			if (factorLevelSizes[j] < 2) {
-				SimpleString ss = (SimpleString) levels -> classes->at [j];   // FIXME cast
+				SimpleString ss = (SimpleString) levels -> classes -> item[j];
 				Melder_throw (U"Group ", ss -> string, U" has fewer than two cases.");
 			}
-			kruskalWallis += factorLevelSums[j] * factorLevelSums[j] / factorLevelSizes[j]; // = factorLevelMeans * groupMean * factorLevelSizes
+			h += factorLevelSums[j] * factorLevelSums[j] / factorLevelSizes[j]; // = factorLevelMeans * groupMean * factorLevelSizes
 		}
-		kruskalWallis = (12.0 / (numberOfData * (numberOfData + 1.0))) * kruskalWallis - 3.0 * (numberOfData + 1);
-		kruskalWallis /= tiesCorrection;
-		double df = numberOfLevels - 1.0;
-		if (p_df) {
-			*p_df = df;
+		h = (12.0 / (numberOfData * (numberOfData + 1))) * h - 3 * (numberOfData + 1);
+		h /= tiesCorrection;
+		double dof = numberOfLevels - 1;
+		if (degreesOfFreedom) {
+			*degreesOfFreedom = dof;
 		}
-		if (p_kruskalWallis) {
-			*p_kruskalWallis = kruskalWallis;
+		if (kruskalWallis) {
+			*kruskalWallis = h;
 		}
-		if (prob) {
-			*prob = NUMchiSquareQ (kruskalWallis, df);
+		double p = NUMchiSquareQ (h, dof);
+		if (probability) {
+			*probability = p;
 		}
 		autoTable him = Table_createWithColumnNames (numberOfLevels, U"Group(R) Sums(R) Cases");
 		for (long irow = 1; irow <= numberOfLevels; irow++) {
-			SimpleString ss = (SimpleString) levels -> classes->at [irow];
-			Table_setStringValue (him.get(), irow, 1, ss -> string);
-			Table_setNumericValue (him.get(), irow, 2, factorLevelSums[irow]);
-			Table_setNumericValue (him.get(), irow, 3, factorLevelSizes[irow]);
+			SimpleString ss = (SimpleString) levels -> classes -> item[irow];
+			Table_setStringValue (him.peek(), irow, 1, ss -> string);
+			Table_setNumericValue (him.peek(), irow, 2, factorLevelSums[irow]);
+			Table_setNumericValue (him.peek(), irow, 3, factorLevelSizes[irow]);
 		}
-		Table_numericize_Assert (him.get(), 2);
-		Table_numericize_Assert (him.get(), 3);
-		return him;
+		Table_numericize_Assert (him.peek(), 2);
+		Table_numericize_Assert (him.peek(), 3);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no one-way Kruskal-Wallis performed.");
 	}
 }
 
 // Table with Group Means Cases
-static void _Table_postHocTukeyHSD (Table me, double sumOfSquaresWithin, double degreesOfFreedomWithin, autoTable *meansDiff, autoTable *meansDiffProbabilities) {
+static void _Table_postHocTukeyHSD (Table me, double sumOfSquaresWithin, double degreesOfFreedomWithin, Table *meansDiff, Table *meansDiffProbabilities) {
 	try {
 		Table_numericize_Assert (me, 2);
 		Table_numericize_Assert (me, 3);
-		long numberOfMeans = my rows.size;
+		long numberOfMeans = my rows -> size;
 		autoNUMvector<double> means (1, numberOfMeans);
 		autoNUMvector<double> cases (1, numberOfMeans);
 		autoTable meansD = Table_create (numberOfMeans - 1, numberOfMeans);
 		for (long i = 1; i <= numberOfMeans; i++) {
-			TableRow row = my rows.at [i];
-			means [i] = row -> cells [2]. number;
-			cases [i] = row -> cells [3]. number;
+			TableRow row = (TableRow) my rows -> item [i];
+			means[i] = row -> cells [2].number;
+			cases[i] = row -> cells [3].number;
 		}
-		for (long i = 1; i <= numberOfMeans - 1; i ++) {
-			Table_setStringValue (meansD.get(), i, 1, my rows.at [i] -> cells [1]. string);
-			Table_setColumnLabel (meansD.get(), i + 1, my rows.at [i + 1] -> cells [1]. string);
+		for (long i = 1; i <= numberOfMeans - 1; i++) {
+			Table_setStringValue (meansD.peek(), i, 1, ((TableRow) my rows -> item [i]) -> cells [1].string);
+			Table_setColumnLabel (meansD.peek(), i + 1, ((TableRow) my rows -> item [i + 1]) -> cells [1].string);
 		}
 
-		for (long irow = 1; irow <= numberOfMeans - 1; irow ++) {
-			for (long icol = irow + 1; icol <= numberOfMeans; icol ++) {
-				double dif = fabs (means [irow] - means [icol]);
-				Table_setNumericValue (meansD.get(), irow, icol, dif);
+		for (long irow = 1; irow <= numberOfMeans - 1; irow++) {
+			for (long icol = irow + 1; icol <= numberOfMeans; icol++) {
+				double dif = fabs (means[irow] - means[icol]);
+				Table_setNumericValue (meansD.peek(), irow, icol, dif);
 			}
 		}
-		autoTable meansP = Data_copy (meansD.get());
-		for (long irow = 1; irow <= numberOfMeans - 1; irow ++) {
-			for (long icol = irow + 1; icol <= numberOfMeans; icol ++) {
+		autoTable meansP = (Table) Data_copy (meansD.peek());
+		for (long irow = 1; irow <= numberOfMeans - 1; irow++) {
+			for (long icol = irow + 1; icol <= numberOfMeans; icol++) {
 				// Tukey-Kramer correction for unequal sample sizes
-				double oneOverNstar =  0.5 * (1.0 / cases [icol] + 1.0 / cases [irow]);
+				double oneOverNstar =  0.5 * (1 / cases[icol] + 1 / cases[irow]);
 				double s = sqrt (sumOfSquaresWithin * oneOverNstar);
 				double q = fabs (means[irow] - means[icol]) / s;
 				double p = NUMtukeyQ (q, numberOfMeans, degreesOfFreedomWithin, 1);
-				Table_setNumericValue (meansP.get(), irow, icol, p);
+				Table_setNumericValue (meansP.peek(), irow, icol, p);
 			}
 		}
-		if (meansDiff) {
-			*meansDiff = meansD.move();
+		if (meansDiff != NULL) {
+			*meansDiff = meansD.transfer();
 		}
-		if (meansDiffProbabilities) {
-			*meansDiffProbabilities = meansP.move();
+		if (meansDiffProbabilities != NULL) {
+			*meansDiffProbabilities = meansP.transfer();
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no post-hoc performed.");
@@ -3529,15 +3494,15 @@ void Table_printAsAnovaTable (Table me) {
 		Table_numericize_Assert (me, icol);
 	}
 
-	for (long i = 1; i <= my rows.size; i ++) {
-		TableRow row = my rows.at [i];
-		MelderString_copy (&s, Melder_padOrTruncate (width [1], row -> cells [1]. string), U"\t");
-		for (long j = 2; j <= 6; j ++) {
-			double value = row -> cells [j]. number;
+	for (long i = 1; i <= my rows -> size; i++) {
+		TableRow row = (TableRow) my rows -> item[i];
+		MelderString_copy (&s, Melder_padOrTruncate (width[1], row -> cells[1].string), U"\t");
+		for (long j = 2; j <= 6; j++) {
+			double value = row -> cells[j].number;
 			if (NUMdefined (value)) {
-				MelderString_append (&s, Melder_pad (width [j], Melder_single (value)), j == 6 ? U"" : U"\t");
+				MelderString_append (&s, Melder_pad (width[j], Melder_single (value)), j == 6 ? U"" : U"\t");
 			} else {
-				MelderString_append (&s, Melder_pad (width [j], U""), j == 6 ? U"" : U"\t");
+				MelderString_append (&s, Melder_pad (width[j], U""), j == 6 ? U"" : U"\t");
 			}
 		}
 		MelderInfo_writeLine (s.string);
@@ -3546,18 +3511,18 @@ void Table_printAsAnovaTable (Table me) {
 
 void Table_printAsMeansTable (Table me) {
 	autoMelderString s;
-	for (long icol = 2; icol <= my numberOfColumns; icol ++) {
+	for (long icol = 2; icol <= my numberOfColumns; icol++) {
 		Table_numericize_Assert (me, icol);
 	}
-	for (long j = 1; j <= my numberOfColumns; j ++) {
+	for (long j = 1; j <= my numberOfColumns; j++) {
 		MelderString_append (&s,
-			Melder_padOrTruncate (10, ! my columnHeaders [j]. label ? U"" : my columnHeaders [j]. label),
+			Melder_padOrTruncate (10, my columnHeaders[j].label == NULL ? U"" : my columnHeaders[j].label),
 			j == my numberOfColumns ? U"" : U"\t");
 	}
 	MelderInfo_writeLine (s.string);
-	for (long i = 1; i <= my rows.size; i ++) {
-		TableRow row = my rows.at [i];
-		MelderString_copy (&s, Melder_padOrTruncate (10, row -> cells [1]. string), U"\t");
+	for (long i = 1; i <= my rows -> size; i++) {
+		TableRow row = (TableRow) my rows -> item[i];
+		MelderString_copy (&s, Melder_padOrTruncate (10, row -> cells[1].string), U"\t");
 		for (long j = 2; j <= my numberOfColumns; j++) {
 			double value = row -> cells[j].number;
 			if (value != NUMundefined) {
@@ -3574,7 +3539,7 @@ void Table_printAsMeansTable (Table me) {
 	}
 }
 
-autoTable Table_getOneWayAnalysisOfVarianceF (Table me, long column, long factorColumn, autoTable *means, autoTable *meansDiff, autoTable *meansDiffProbabilities) {
+Table Table_getOneWayAnalysisOfVarianceF (Table me, long column, long factorColumn, Table *means, Table *meansDiff, Table *meansDiffProbabilities) {
 	try {
 		if (column < 1 || column > my numberOfColumns) {
 			Melder_throw (U"Invalid column number.");
@@ -3582,36 +3547,36 @@ autoTable Table_getOneWayAnalysisOfVarianceF (Table me, long column, long factor
 		if (factorColumn < 1 || factorColumn > my numberOfColumns || factorColumn == column) {
 			Melder_throw (U"Invalid group column number.");
 		}
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		Table_numericize_Assert (me, column);
 		autoNUMvector<double> data (1, numberOfData);
 		autoStringsIndex levels = Table_to_StringsIndex_column (me, factorColumn);
 		// copy data from Table
 		for (long irow = 1; irow <= numberOfData; irow++) {
-			data [irow] = my rows.at [irow] -> cells [column]. number;
+			data[irow] = ((TableRow) my rows -> item[irow]) -> cells[column].number;
 		}
-		long numberOfLevels = levels -> classes->size;
+		long numberOfLevels = levels -> classes -> size;
 		if (numberOfLevels < 2) {
 			Melder_throw (U"There must be at least two levels.");
 		}
 		autoNUMvector<long> factorLevelSizes (1, numberOfLevels);
 		autoNUMvector<double> factorLevelMeans (1, numberOfLevels);
 
-		// a, ty, c according to scheme of Hayes, 10.14 pg 363
+		// a, ty, c according to schem of Hayes, 10.14 pg 363
 
-		double a = 0.0, ty = 0.0;
-		for (long i = 1; i <= numberOfData; i ++) {
-			long index = levels -> classIndex [i];
-			factorLevelSizes [index] ++;
-			factorLevelMeans [index] += data [i];
-			a += data [i] * data [i];
-			ty += data [i];
+		double a = 0, ty = 0;
+		for (long i = 1; i <= numberOfData; i++) {
+			long index = levels -> classIndex[i];
+			factorLevelSizes[index] ++;
+			factorLevelMeans[index] += data[i];
+			a += data[i] * data[i];
+			ty += data[i];
 		}
 
-		double c = 0.0;
+		double c = 0;
 		for (long j = 1; j <= numberOfLevels; j++) {
 			if (factorLevelSizes[j] < 2) {
-				SimpleString ss = (SimpleString) levels -> classes->at [j];
+				SimpleString ss = (SimpleString) levels -> classes -> item[j];
 				Melder_throw (U"Level \"", ss -> string, U"\" has less then two members.");
 			}
 			c += factorLevelMeans[j] * factorLevelMeans[j] / factorLevelSizes[j]; // order of these two is important!
@@ -3627,48 +3592,48 @@ autoTable Table_getOneWayAnalysisOfVarianceF (Table me, long column, long factor
 		autoTable anova = Table_createWithColumnNames (3, U"Source SS Df MS F P");
 		long col_s = 1, col_ss = 2, col_df = 3, col_ms = 4, col_f = 5, col_p = 6;
 		long row_b = 1, row_w = 2, row_t = 3;
-		Table_setStringValue (anova.get(), row_b, col_s, U"Between");
-		Table_setStringValue (anova.get(), row_w, col_s, U"Within");
-		Table_setStringValue (anova.get(), row_t, col_s, U"Total");
+		Table_setStringValue (anova.peek(), row_b, col_s, U"Between");
+		Table_setStringValue (anova.peek(), row_w, col_s, U"Within");
+		Table_setStringValue (anova.peek(), row_t, col_s, U"Total");
 
-		Table_setNumericValue (anova.get(), row_b, col_ss, ss_b);
-		Table_setNumericValue (anova.get(), row_b, col_df, dof_b);
+		Table_setNumericValue (anova.peek(), row_b, col_ss, ss_b);
+		Table_setNumericValue (anova.peek(), row_b, col_df, dof_b);
 		double ms_b = ss_b / dof_b;
-		Table_setNumericValue (anova.get(), row_b, col_ms, ms_b);
+		Table_setNumericValue (anova.peek(), row_b, col_ms, ms_b);
 
-		Table_setNumericValue (anova.get(), row_w, col_ss, ss_w);
-		Table_setNumericValue (anova.get(), row_w, col_df, dof_w);
+		Table_setNumericValue (anova.peek(), row_w, col_ss, ss_w);
+		Table_setNumericValue (anova.peek(), row_w, col_df, dof_w);
 		double ms_w = ss_w / dof_w;
-		Table_setNumericValue (anova.get(), row_w, col_ms, ms_w);
+		Table_setNumericValue (anova.peek(), row_w, col_ms, ms_w);
 		double fisherF = ms_b / ms_w;
 		double probability = NUMfisherQ (fisherF, dof_b, dof_w);
 
-		Table_setNumericValue (anova.get(), row_b, col_f, fisherF);
-		Table_setNumericValue (anova.get(), row_b, col_p, probability);
+		Table_setNumericValue (anova.peek(), row_b, col_f, fisherF);
+		Table_setNumericValue (anova.peek(), row_b, col_p, probability);
 
-		Table_setNumericValue (anova.get(), row_t, col_ss, ss_t);
-		Table_setNumericValue (anova.get(), row_t, col_df, dof_w + dof_b);
+		Table_setNumericValue (anova.peek(), row_t, col_ss, ss_t);
+		Table_setNumericValue (anova.peek(), row_t, col_df, dof_w + dof_b);
 
 		autoTable ameans = Table_createWithColumnNames (numberOfLevels, U"Group Mean Cases");
-		for (long irow = 1; irow <= numberOfLevels; irow ++) {
-			SimpleString name = (SimpleString) levels -> classes->at [irow];
-			Table_setStringValue (ameans.get(), irow, 1, name -> string);
-			Table_setNumericValue (ameans.get(), irow, 2, factorLevelMeans [irow]);
-			Table_setNumericValue (ameans.get(), irow, 3, factorLevelSizes [irow]);
+		for (long irow = 1; irow <= numberOfLevels; irow++) {
+			SimpleString name = (SimpleString) levels -> classes -> item[irow];
+			Table_setStringValue (ameans.peek(), irow, 1, name -> string);
+			Table_setNumericValue (ameans.peek(), irow, 2, factorLevelMeans[irow]);
+			Table_setNumericValue (ameans.peek(), irow, 3, factorLevelSizes[irow]);
 		}
-		long columns [1+1] { 0, 2 };   // sort by column 2
-		Table_sortRows_Assert (ameans.get(), columns, 1);
-		_Table_postHocTukeyHSD (ameans.get(), ms_w, dof_w, meansDiff, meansDiffProbabilities);
+		long columns [1+1] = { 0, 2 };   // sort by column 2
+		Table_sortRows_Assert (ameans.peek(), columns, 1);
+		_Table_postHocTukeyHSD (ameans.peek(), ms_w, dof_w, meansDiff, meansDiffProbabilities);
 		if (means) {
-			*means = ameans.move();
+			*means = ameans.transfer();
 		}
-		return anova;
+		return anova.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no one-way anova performed.");
 	}
 }
 
-autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factorColumnA, long factorColumnB, autoTable *means, autoTable *levelSizes) {
+Table Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factorColumnA, long factorColumnB, Table *means, Table *levelSizes) {
 	try {
 		if (column < 1 || column > my numberOfColumns) {
 			Melder_throw (U"Invalid column number.");
@@ -3682,17 +3647,17 @@ autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factor
 		char32 *label_A = my columnHeaders[factorColumnA].label;
 		char32 *label_B = my columnHeaders[factorColumnB].label;
 
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		Table_numericize_Assert (me, column);
 		autoNUMvector<double> data (1, numberOfData);
 		autoStringsIndex levelsA = Table_to_StringsIndex_column (me, factorColumnA);
 		autoStringsIndex levelsB = Table_to_StringsIndex_column (me, factorColumnB);
 		// copy data from Table
-		for (long irow = 1; irow <= numberOfData; irow ++) {
-			data [irow] = my rows.at [irow] -> cells [column]. number;
+		for (long irow = 1; irow <= numberOfData; irow++) {
+			data[irow] = ((TableRow) my rows -> item [irow]) -> cells [column] .number;
 		}
-		long numberOfLevelsA = levelsA -> classes->size;
-		long numberOfLevelsB = levelsB -> classes->size;
+		long numberOfLevelsA = levelsA -> classes -> size;
+		long numberOfLevelsB = levelsB -> classes -> size;
 		if (numberOfLevelsA < 2) {
 			Melder_throw (U"There must be at least two levels in \"", label_A, U"\".");
 		}
@@ -3727,25 +3692,25 @@ autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factor
 		// extra column for ystar[i.], extra row for ystar[.j]
 		autoNUMmatrix<double> factorLevelMeans (1, numberOfLevelsA + 1, 1, numberOfLevelsB + 1); // weighted mean + mean
 
-		for (long k = 1; k <= numberOfData; k ++) {
-			long indexA = levelsA -> classIndex [k];
-			long indexB = levelsB -> classIndex [k];
-			factorLevelSizes [indexA] [indexB] ++;
-			factorLevelMeans [indexA] [indexB] += data [k];
+		for (long k = 1; k <= numberOfData; k++) {
+			long indexA = levelsA -> classIndex[k];
+			long indexB = levelsB -> classIndex[k];
+			factorLevelSizes[indexA][indexB] ++;
+			factorLevelMeans[indexA][indexB] += data[k];
 		}
 
 		// check for unfilled cells and calculate cell means
 
 		double nh = 0;
-		for (long i = 1; i <= numberOfLevelsA; i ++) {
-			for (long j = 1; j <= numberOfLevelsB; j ++) {
-				if (factorLevelSizes [i] [j] < 1) {
-					SimpleString li = (SimpleString) levelsA -> classes->at [i];
-					SimpleString lj = (SimpleString) levelsA -> classes->at [j];
+		for (long i = 1; i <= numberOfLevelsA; i++) {
+			for (long j = 1; j <= numberOfLevelsB; j++) {
+				if (factorLevelSizes[i][j] < 1) {
+					SimpleString li = (SimpleString) levelsA -> classes -> item[i];
+					SimpleString lj = (SimpleString) levelsA -> classes -> item[j];
 					Melder_throw (U"Level ", li, U" of ", lj, U" has no data.");
 				}
-				factorLevelMeans [i] [j] /= factorLevelSizes [i] [j];
-				nh += 1.0 / factorLevelSizes [i] [j];
+				factorLevelMeans[i][j] /= factorLevelSizes[i][j];
+				nh += 1.0 / factorLevelSizes[i][j];
 			}
 		}
 		nh = numberOfLevelsA * numberOfLevelsB / nh;
@@ -3753,24 +3718,24 @@ autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factor
 		// row marginals (ystar[i.])
 
 		double mean = 0; // ystar[..]
-		for (long i = 1; i <= numberOfLevelsA; i ++) {
-			for (long j = 1; j <= numberOfLevelsB; j ++) {
-				factorLevelMeans [i] [numberOfLevelsB + 1] += factorLevelMeans [i] [j];
+		for (long i = 1; i <= numberOfLevelsA; i++) {
+			for (long j = 1; j <= numberOfLevelsB; j++) {
+				factorLevelMeans[i][numberOfLevelsB + 1] += factorLevelMeans[i][j];
 				mean += factorLevelMeans[i][j];
-				factorLevelSizes [i] [numberOfLevelsB + 1] += factorLevelSizes [i] [j];
+				factorLevelSizes[i][numberOfLevelsB + 1] += factorLevelSizes[i][j];
 			}
 			factorLevelMeans[i][numberOfLevelsB + 1] /= numberOfLevelsB;
 		}
 		mean /= numberOfLevelsA * numberOfLevelsB;
-		factorLevelMeans [numberOfLevelsA + 1] [numberOfLevelsB + 1] = mean;
-		factorLevelSizes [numberOfLevelsA + 1] [numberOfLevelsB + 1] = numberOfData;
+		factorLevelMeans[numberOfLevelsA + 1][numberOfLevelsB + 1] = mean;
+		factorLevelSizes[numberOfLevelsA + 1][numberOfLevelsB + 1] = numberOfData;
 
 		// column marginals (ystar[.j])
 
-		for (long j = 1; j <= numberOfLevelsB; j ++) {
-			for (long i = 1; i <= numberOfLevelsA; i ++) {
-				factorLevelMeans [numberOfLevelsA + 1] [j] += factorLevelMeans [i] [j];
-				factorLevelSizes [numberOfLevelsA + 1] [j] += factorLevelSizes [i] [j];
+		for (long j = 1; j <= numberOfLevelsB; j++) {
+			for (long i = 1; i <= numberOfLevelsA; i++) {
+				factorLevelMeans[numberOfLevelsA + 1][j] += factorLevelMeans[i][j];
+				factorLevelSizes[numberOfLevelsA + 1][j] += factorLevelSizes[i][j];
 			}
 			factorLevelMeans[numberOfLevelsA + 1][j] /= numberOfLevelsA;
 		}
@@ -3778,29 +3743,29 @@ autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factor
 		// the sums of squares
 
 		double ss_T = 0;
-		for (long k = 1; k <= numberOfData; k ++) {
+		for (long k = 1; k <= numberOfData; k++) {
 			double dif = data[k] - mean;
 			ss_T += dif * dif;
 		}
 
 		double ss_A = 0;
-		for (long i = 1; i <= numberOfLevelsA; i ++) {
-			double dif = factorLevelMeans [i] [numberOfLevelsB + 1] - mean;
+		for (long i = 1; i <= numberOfLevelsA; i++) {
+			double dif = factorLevelMeans[i][numberOfLevelsB + 1] - mean;
 			ss_A += dif * dif;
 		}
 		ss_A *= nh * numberOfLevelsB;
 
 		double ss_B = 0;
-		for (long j = 1; j <= numberOfLevelsB; j ++) {
-			double dif = factorLevelMeans [numberOfLevelsA + 1] [j] - mean;
+		for (long j = 1; j <= numberOfLevelsB; j++) {
+			double dif = factorLevelMeans[numberOfLevelsA + 1][j] - mean;
 			ss_B += dif * dif;
 		}
 		ss_B *= nh * numberOfLevelsA;
 
 		double ss_AB = 0;
-		for (long i = 1; i <= numberOfLevelsA; i ++) {
-			for (long j = 1; j <= numberOfLevelsB; j ++) {
-				double dif = factorLevelMeans [i] [j] - factorLevelMeans [i] [numberOfLevelsB + 1] - factorLevelMeans [numberOfLevelsA + 1] [j] + mean;
+		for (long i = 1; i <= numberOfLevelsA; i++) {
+			for (long j = 1; j <= numberOfLevelsB; j++) {
+				double dif = factorLevelMeans[i][j] - factorLevelMeans[i][numberOfLevelsB + 1] - factorLevelMeans[numberOfLevelsA + 1][j] + mean;
 				ss_AB += dif * dif;
 			}
 		}
@@ -3811,118 +3776,118 @@ autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long factor
 		// are there any replications? if not then the error term is the AB interaction.
 
 		bool replications = true;
-		if (factorLevelSizes [numberOfLevelsA + 1] [1] == numberOfLevelsA) {
+		if (factorLevelSizes[numberOfLevelsA + 1][1] == numberOfLevelsA) {
 			replications = false;
 		}
 
 		// Construct the means Table (numberOfLevelsA+1)x(numberOfLevelsB + 1 + 1)
 
 		autoTable ameans = Table_createWithoutColumnNames (numberOfLevelsA + 1, numberOfLevelsB + 1 + 1);
-		for (long k = 2; k <= numberOfLevelsB + 1; k ++) {
-			SimpleString name = (SimpleString) levelsB -> classes->at [k - 1];
-			Table_setColumnLabel (ameans.get(), k, name -> string);
+		for (long k = 2; k <= numberOfLevelsB + 1; k++) {
+			SimpleString name = (SimpleString) levelsB -> classes -> item[k - 1];
+			Table_setColumnLabel (ameans.peek(), k, name -> string);
 		}
-		Table_setColumnLabel (ameans.get(), numberOfLevelsB + 1 + 1, U"Mean");
+		Table_setColumnLabel (ameans.peek(), numberOfLevelsB + 1 + 1, U"Mean");
 		for (long j = 1; j <= numberOfLevelsA; j++) {
-			SimpleString name = (SimpleString) levelsA -> classes->at [j];
-			Table_setStringValue (ameans.get(), j, 1, name -> string);
+			SimpleString name = (SimpleString) levelsA -> classes -> item[j];
+			Table_setStringValue (ameans.peek(), j, 1, name -> string);
 		}
-		Table_setStringValue (ameans.get(), numberOfLevelsA + 1, 1, U"Mean");
+		Table_setStringValue (ameans.peek(), numberOfLevelsA + 1, 1, U"Mean");
 
-		for (long i = 1; i <= numberOfLevelsA + 1; i ++) {
-			for (long j = 1; j <= numberOfLevelsB + 1; j ++) {
-				Table_setNumericValue (ameans.get(), i, j + 1, factorLevelMeans [i] [j]);
+		for (long i = 1; i <= numberOfLevelsA + 1; i++) {
+			for (long j = 1; j <= numberOfLevelsB + 1; j++) {
+				Table_setNumericValue (ameans.peek(), i, j + 1, factorLevelMeans[i][j]);
 			}
 		}
 
 		if (levelSizes) {
-			autoTable asizes = Data_copy (ameans.get());
-			Table_setColumnLabel (asizes.get(), numberOfLevelsB + 1 + 1, U"Total");
-			Table_setStringValue (asizes.get(), numberOfLevelsA + 1, 1, U"Total");
-			for (long i = 1; i <= numberOfLevelsA + 1; i ++) {
-				for (long j = 1; j <= numberOfLevelsB + 1; j ++) {
-					Table_setNumericValue (asizes.get(), i, j + 1, factorLevelSizes [i] [j]);
+			autoTable asizes = (Table) Data_copy (ameans.peek());
+			Table_setColumnLabel (asizes.peek(), numberOfLevelsB + 1 + 1, U"Total");
+			Table_setStringValue (asizes.peek(), numberOfLevelsA + 1, 1, U"Total");
+			for (long i = 1; i <= numberOfLevelsA + 1; i++) {
+				for (long j = 1; j <= numberOfLevelsB + 1; j++) {
+					Table_setNumericValue (asizes.peek(), i, j + 1, factorLevelSizes[i][j]);
 				}
 			}
-			*levelSizes = asizes.move();
+			*levelSizes = asizes.transfer();
 		}
 
 		autoTable anova = Table_createWithColumnNames (replications ? 5 : 4, U"Source SS Df MS F P");
 		long col_s = 1, col_ss = 2, col_df = 3, col_ms = 4, col_f = 5, col_p = 6;
 		long row_A = 1, row_B = 2, row_AB = 3, row_E = replications ? 4 : 3, row_t = replications ? 5 : 4;
-		Table_setStringValue (anova.get(), row_A, col_s, label_A);
-		Table_setStringValue (anova.get(), row_B, col_s, label_B);
-		Table_setStringValue (anova.get(), row_AB, col_s, Melder_cat (label_A, U" x ", label_B));
+		Table_setStringValue (anova.peek(), row_A, col_s, label_A);
+		Table_setStringValue (anova.peek(), row_B, col_s, label_B);
+		Table_setStringValue (anova.peek(), row_AB, col_s, Melder_cat (label_A, U" x ", label_B));
 		if (replications) {
-			Table_setStringValue (anova.get(), row_E, col_s, U"Error");
+			Table_setStringValue (anova.peek(), row_E, col_s, U"Error");
 		}
-		Table_setStringValue (anova.get(), row_t, col_s, U"Total");
+		Table_setStringValue (anova.peek(), row_t, col_s, U"Total");
 
 		double dof_A = numberOfLevelsA - 1, ms_A = ss_A / dof_A;
-		Table_setNumericValue (anova.get(), row_A, col_ss, ss_A);
-		Table_setNumericValue (anova.get(), row_A, col_df, dof_A);
-		Table_setNumericValue (anova.get(), row_A, col_ms, ms_A);
+		Table_setNumericValue (anova.peek(), row_A, col_ss, ss_A);
+		Table_setNumericValue (anova.peek(), row_A, col_df, dof_A);
+		Table_setNumericValue (anova.peek(), row_A, col_ms, ms_A);
 
 		double dof_B = numberOfLevelsB - 1, ms_B = ss_B / dof_B;
-		Table_setNumericValue (anova.get(), row_B, col_ss, ss_B);
-		Table_setNumericValue (anova.get(), row_B, col_df, dof_B);
-		Table_setNumericValue (anova.get(), row_B, col_ms, ms_B);
+		Table_setNumericValue (anova.peek(), row_B, col_ss, ss_B);
+		Table_setNumericValue (anova.peek(), row_B, col_df, dof_B);
+		Table_setNumericValue (anova.peek(), row_B, col_ms, ms_B);
 
 		double dof_AB = dof_A * dof_B , ms_AB, dof_E, ms_E;
 		if (replications) {
 			ms_AB = ss_AB / dof_AB;
 			dof_E = numberOfData - dof_A - dof_B - dof_AB - 1;
 			ms_E = ss_E / dof_E;
-			Table_setNumericValue (anova.get(), row_AB, col_ss, ss_AB);
-			Table_setNumericValue (anova.get(), row_AB, col_df, dof_AB);
-			Table_setNumericValue (anova.get(), row_AB, col_ms, ms_AB);
+			Table_setNumericValue (anova.peek(), row_AB, col_ss, ss_AB);
+			Table_setNumericValue (anova.peek(), row_AB, col_df, dof_AB);
+			Table_setNumericValue (anova.peek(), row_AB, col_ms, ms_AB);
 		} else {
 			ss_E = ss_AB;
 			dof_E = numberOfData - dof_A - dof_B - 1;
 			ms_E = ss_AB / dof_E;
 		}
-		Table_setNumericValue (anova.get(), row_E, col_ss, ss_E);
-		Table_setNumericValue (anova.get(), row_E, col_df, dof_E);
-		Table_setNumericValue (anova.get(), row_E, col_ms, ms_E);
-		Table_setNumericValue (anova.get(), row_t, col_ss, ss_T);
-		Table_setNumericValue (anova.get(), row_t, col_df, numberOfData - 1);
+		Table_setNumericValue (anova.peek(), row_E, col_ss, ss_E);
+		Table_setNumericValue (anova.peek(), row_E, col_df, dof_E);
+		Table_setNumericValue (anova.peek(), row_E, col_ms, ms_E);
+		Table_setNumericValue (anova.peek(), row_t, col_ss, ss_T);
+		Table_setNumericValue (anova.peek(), row_t, col_df, numberOfData - 1);
 		// get f and p values wrt ms_E
 		double f_A = ms_A / ms_E;
 		double f_B = ms_B / ms_E;
 		double p_A = NUMfisherQ (f_A, dof_A, dof_E);
 		double p_B = NUMfisherQ (f_B, dof_B, dof_E);
-		Table_setNumericValue (anova.get(), row_A, col_f, f_A);
-		Table_setNumericValue (anova.get(), row_B, col_f, f_B);
-		Table_setNumericValue (anova.get(), row_A, col_p, p_A);
-		Table_setNumericValue (anova.get(), row_B, col_p, p_B);
+		Table_setNumericValue (anova.peek(), row_A, col_f, f_A);
+		Table_setNumericValue (anova.peek(), row_B, col_f, f_B);
+		Table_setNumericValue (anova.peek(), row_A, col_p, p_A);
+		Table_setNumericValue (anova.peek(), row_B, col_p, p_B);
 		if (replications) {
 			double f_AB = ms_AB / ms_E;
 			double p_AB = NUMfisherQ (f_AB, dof_AB, dof_E);
-			Table_setNumericValue (anova.get(), row_AB, col_f, f_AB);
-			Table_setNumericValue (anova.get(), row_AB, col_p, p_AB);
+			Table_setNumericValue (anova.peek(), row_AB, col_f, f_AB);
+			Table_setNumericValue (anova.peek(), row_AB, col_p, p_AB);
 		}
 		if (means) {
-			*means = ameans.move();
+			*means = ameans.transfer();
 		}
-		return anova;
+		return anova.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": two-way anova not created.");
 	}
 }
 
-void Table_normalProbabilityPlot (Table me, Graphics g, long column, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, bool garnish)
+void Table_normalProbabilityPlot (Table me, Graphics g, long column, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, int garnish)
 {
 	try {
 		if (column < 1 || column > my numberOfColumns) return;
 		Table_numericize_Assert (me, column);
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		autoNUMvector<double> data (1, numberOfData);
-		for (long irow = 1; irow <= numberOfData; irow ++) {
-			data [irow] = my rows.at [irow] -> cells [column]. number;
+		for (long irow = 1; irow <= numberOfData; irow++) {
+			data[irow] = ((TableRow) my rows -> item [irow]) -> cells [column] . number;
 		}
 		double mean, var;
-		NUMvector_avevar (data.peek(), numberOfData, & mean, & var);
-		double xmin = 100, xmax = -xmin, ymin = 1e308, ymax = -ymin, stdev = sqrt (var / (numberOfData - 1));
+		NUMvector_avevar (data.peek(), numberOfData, &mean, &var);
+		double xmin = 100, xmax = -xmin, ymin = 1e38, ymax = -ymin, stdev = sqrt (var / (numberOfData - 1));
 		if (numberOfSigmas != 0) {
 			xmin = -numberOfSigmas; 
 			xmax =  numberOfSigmas;
@@ -3932,11 +3897,11 @@ void Table_normalProbabilityPlot (Table me, Graphics g, long column, long number
 		NUMsort_d (numberOfData, data.peek());
 		numberOfQuantiles = numberOfData < numberOfQuantiles ? numberOfData : numberOfQuantiles;
 		autoTableOfReal thee = TableOfReal_create (numberOfQuantiles, 2);
-		TableOfReal_setColumnLabel (thee.get(), 1, U"Normal distribution quantiles");
-		TableOfReal_setColumnLabel (thee.get(), 2, my columnHeaders[column].label);
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"Normal distribution quantiles");
+		TableOfReal_setColumnLabel (thee.peek(), 2, my columnHeaders[column].label);
 		double un = pow (0.5, 1.0 / numberOfQuantiles);
-		for (long irow = 1; irow <= numberOfQuantiles; irow ++) {
-			double ui = irow == 1 ? 1.0 - un : (irow == numberOfQuantiles ? un : (irow - 0.3175) / (numberOfQuantiles + 0.365));
+		for (long irow = 1; irow <= numberOfQuantiles; irow++) {
+			double ui = irow == 1 ? 1 - un : (irow == numberOfQuantiles ? un : (irow - 0.3175) / (numberOfQuantiles + 0.365));
 			double q = NUMquantile (numberOfData, data.peek(), ui);
 			double zq = - NUMinvGaussQ (ui);
 			thy data[irow][1] = zq; // along x
@@ -3949,7 +3914,7 @@ void Table_normalProbabilityPlot (Table me, Graphics g, long column, long number
 			}
 		}
 
-		TableOfReal_drawScatterPlot (thee.get(), g, 1, 2, 1, numberOfQuantiles, xmin, xmax, ymin, ymax, labelSize, 0, label, garnish);
+		TableOfReal_drawScatterPlot (thee.peek(), g, 1, 2, 1, numberOfQuantiles, xmin, xmax, ymin, ymax, labelSize, 0, label, garnish);
 
 		Graphics_setInner (g);
 		Graphics_setLineType (g, Graphics_DOTTED);
@@ -3962,37 +3927,33 @@ void Table_normalProbabilityPlot (Table me, Graphics g, long column, long number
 	}
 }
 
-void Table_quantileQuantilePlot_betweenLevels (Table me, Graphics g, long dataColumn, long factorColumn, const char32 *xlevel, const char32 *ylevel, long numberOfQuantiles,
-	double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *plotLabel, bool garnish)
-{
+void Table_quantileQuantilePlot_betweenLevels (Table me, Graphics g, long dataColumn, long factorColumn, const char32 *xlevel, const char32 *ylevel, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *plotLabel, int garnish) {
 	try {
 		if (dataColumn < 1 || dataColumn > my numberOfColumns || factorColumn < 1 || factorColumn > my numberOfColumns) return;
 		Table_numericize_Assert (me, dataColumn);
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		autoNUMvector<double> xdata (1, numberOfData);
 		autoNUMvector<double> ydata (1, numberOfData);
 		long xnumberOfData = 0, ynumberOfData = 0;
-		for (long irow = 1; irow <= numberOfData; irow ++) {
-			char32 *label = my rows.at [irow] -> cells [factorColumn]. string;
-			double val = my rows.at [irow] -> cells [dataColumn]. number;
+		for (long irow = 1; irow <= numberOfData; irow++) {
+			char32 *label = ((TableRow) my rows -> item [irow]) -> cells [factorColumn] . string;
+			double val = ((TableRow) my rows -> item [irow]) -> cells [dataColumn] . number;
 			if (Melder_equ (label, xlevel)) {
-				xdata [++ xnumberOfData] = val;
+				xdata[++xnumberOfData] = val;
 			} else if (Melder_equ (label, ylevel)) {
-				ydata [++ ynumberOfData] = val;
+				ydata[++ynumberOfData] = val;
 			}
 		}
 		if (xmin == xmax) {
-			NUMvector_extrema<double> (xdata.peek(), 1, xnumberOfData, & xmin, & xmax);
+			NUMvector_extrema<double> (xdata.peek(), 1, xnumberOfData, &xmin, &xmax);
 			if (xmin == xmax) {
-				xmin -= 1.0;
-				xmax += 1.0;
+				xmin -= 1; xmax += 1;
 			}
 		}
 		if (ymin == ymax) {
-			NUMvector_extrema<double> (ydata.peek(), 1, ynumberOfData, & ymin, & ymax);
+			NUMvector_extrema<double> (ydata.peek(), 1, ynumberOfData, &ymin, &ymax);
 			if (ymin == ymax) {
-				ymin -= 1.0;
-				ymax += 1.0;
+				ymin -= 1; ymax += 1;
 			}
 		}
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -4003,43 +3964,39 @@ void Table_quantileQuantilePlot_betweenLevels (Table me, Graphics g, long dataCo
 		if (garnish) {
 			Graphics_drawInnerBox (g);
 
-			Graphics_textBottom (g, true, Melder_cat (my columnHeaders [dataColumn].label, U" (", xlevel, U")"));
-			Graphics_marksBottom (g, 2, true, true, false);
+			Graphics_textBottom (g, 1, Melder_cat (my columnHeaders [dataColumn].label, U" (", xlevel, U")"));
+			Graphics_marksBottom (g, 2, 1, 1, 0);
 
-			Graphics_textLeft (g, true, Melder_cat (my columnHeaders [dataColumn].label, U" (", ylevel, U")"));
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_textLeft (g, 1, Melder_cat (my columnHeaders [dataColumn].label, U" (", ylevel, U")"));
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
 	}
 }
 
-void Table_quantileQuantilePlot (Table me, Graphics g, long xcolumn, long ycolumn, long numberOfQuantiles,
-	double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *plotLabel, bool garnish)
-{
+void Table_quantileQuantilePlot (Table me, Graphics g, long xcolumn, long ycolumn, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *plotLabel, int garnish) {
 	try {
 		if (xcolumn < 1 || xcolumn > my numberOfColumns || ycolumn < 1 || ycolumn > my numberOfColumns) return;
 		Table_numericize_Assert (me, xcolumn);
 		Table_numericize_Assert (me, ycolumn);
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		autoNUMvector<double> xdata (1, numberOfData);
 		autoNUMvector<double> ydata (1, numberOfData);
 		for (long irow = 1; irow <= numberOfData; irow++) {
-			xdata [irow] = my rows.at [irow] -> cells [xcolumn]. number;
-			ydata [irow] = my rows.at [irow] -> cells [ycolumn]. number;
+			xdata[irow] = ((TableRow) my rows -> item [irow]) -> cells [xcolumn] . number;
+			ydata[irow] = ((TableRow) my rows -> item [irow]) -> cells [ycolumn] . number;
 		}
 		if (xmin == xmax) {
 			NUMvector_extrema<double> (xdata.peek(), 1, numberOfData, &xmin, &xmax);
 			if (xmin == xmax) {
-				xmin -= 1.0;
-				xmax += 1.0;
+				xmin -= 1; xmax += 1;
 			}
 		}
 		if (ymin == ymax) {
 			NUMvector_extrema<double> (ydata.peek(), 1, numberOfData, &ymin, &ymax);
 			if (ymin == ymax) {
-				ymin -= 1.0;
-				ymax += 1.0;
+				ymin -= 1; ymax += 1;
 			}
 		}
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
@@ -4049,14 +4006,14 @@ void Table_quantileQuantilePlot (Table me, Graphics g, long xcolumn, long ycolum
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			if (my columnHeaders [xcolumn].label) {
-				Graphics_textBottom (g, true, my columnHeaders [xcolumn].label);
+			if (my columnHeaders [xcolumn].label != NULL) {
+				Graphics_textBottom (g, 1, my columnHeaders [xcolumn].label);
 			}
-			Graphics_marksBottom (g, 2, true, true, false);
-			if (my columnHeaders [ycolumn].label) {
-				Graphics_textLeft (g, true, my columnHeaders [ycolumn].label);
+			Graphics_marksBottom (g, 2, 1, 1, 0);
+			if (my columnHeaders [ycolumn].label != NULL) {
+				Graphics_textLeft (g, 1, my columnHeaders [ycolumn].label);
 			}
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
@@ -4067,24 +4024,24 @@ void Table_boxPlots (Table me, Graphics g, long dataColumn, long factorColumn, d
 	try {
 		if (dataColumn < 1 || dataColumn > my numberOfColumns || factorColumn < 1 || factorColumn > my numberOfColumns) return;
 		Table_numericize_Assert (me, dataColumn);
-		long numberOfData = my rows.size;
+		long numberOfData = my rows -> size;
 		autoStringsIndex si = Table_to_StringsIndex_column (me, factorColumn);
-		long numberOfLevels = si -> classes->size;
+		long numberOfLevels = si -> classes -> size;
 		if (ymin == ymax) {
 			ymax = Table_getMaximum (me, dataColumn);
 			ymin = Table_getMinimum (me, dataColumn);
 			if (ymax == ymin) {
-				ymax += 1.0; ymin -= 1.0;
+				ymax += 1; ymin -= 1;
 			}
 		}
-		Graphics_setWindow (g, 1.0 - 0.5, numberOfLevels + 0.5, ymin, ymax);
+		Graphics_setWindow (g, 1 - 0.5, numberOfLevels + 0.5, ymin, ymax);
 		Graphics_setInner (g);
 		autoNUMvector<double> data (1, numberOfData);
-		for (long ilevel = 1; ilevel <= numberOfLevels; ilevel ++) {
+		for (long ilevel = 1; ilevel <= numberOfLevels; ilevel++) {
 			long numberOfDataInLevel = 0;
-			for (long k = 1; k <= numberOfData; k ++) {
-				if (si -> classIndex [k] == ilevel) {
-					data [++ numberOfDataInLevel] = Table_getNumericValue_Assert (me, k, dataColumn);
+			for (long k = 1; k <= numberOfData; k++) {
+				if (si -> classIndex[k] == ilevel) {
+					data[++numberOfDataInLevel] = Table_getNumericValue_Assert (me, k, dataColumn);
 				}
 			}
 			Graphics_boxAndWhiskerPlot (g, data.peek(), numberOfDataInLevel, ilevel, 0.2, 0.35, ymin, ymax);
@@ -4092,11 +4049,11 @@ void Table_boxPlots (Table me, Graphics g, long dataColumn, long factorColumn, d
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			for (long ilevel = 1; ilevel <= numberOfLevels; ilevel ++) {
-				SimpleString ss = (SimpleString) si -> classes->at [ilevel];
-				Graphics_markBottom (g, ilevel, false, true, false, ss -> string);
+			for (long ilevel = 1; ilevel <= numberOfLevels; ilevel++) {
+				SimpleString ss = (SimpleString) si -> classes -> item[ilevel];
+				Graphics_markBottom (g, ilevel, 0, 1, 0, ss -> string);
 			}
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
@@ -4106,42 +4063,42 @@ void Table_boxPlots (Table me, Graphics g, long dataColumn, long factorColumn, d
 void Table_boxPlotsWhere (Table me, Graphics g, char32 *dataColumns_string, long factorColumn, double ymin, double ymax, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
 		long numberOfSelectedColumns;
-		autoNUMvector<long> dataColumns (Table_getColumnIndicesFromColumnLabelString (me, dataColumns_string, & numberOfSelectedColumns), 1);
+		autoNUMvector<long> dataColumns (Table_getColumnIndicesFromColumnLabelString (me, dataColumns_string,  &numberOfSelectedColumns), 1);
 		if (factorColumn < 1 || factorColumn > my numberOfColumns) {
 			return;
 		}
-		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, true);
-		long numberOfData = my rows.size;
+		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE);
+		long numberOfData = my rows -> size;
 		autoStringsIndex si = Table_to_StringsIndex_column (me, factorColumn);
-		long numberOfLevels = si -> classes->size;
+		long numberOfLevels = si -> classes -> size;
 		if (ymin == ymax) {
-			ymin = 1e308, ymax = - ymin;
-			for (long icol = 1; icol <= numberOfSelectedColumns; icol ++) {
-				double ymaxi = Table_getMaximum (me, dataColumns [icol]);
-				double ymini = Table_getMinimum (me, dataColumns [icol]);
+			ymin = 1e38, ymax = -ymin;
+			for (long icol = 1; icol <= numberOfSelectedColumns; icol++) {
+				double ymaxi = Table_getMaximum (me, dataColumns[icol]);
+				double ymini = Table_getMinimum (me, dataColumns[icol]);
 				ymax = ymaxi > ymax ? ymaxi : ymax;
 				ymin = ymini < ymin ? ymini : ymin;
 			}
 			if (ymax == ymin) {
-				ymax += 1.0; ymin -= 1.0;
+				ymax += 1; ymin -= 1;
 			}
 		}
-		Graphics_setWindow (g, 1.0 - 0.5, numberOfLevels + 0.5, ymin, ymax);
+		Graphics_setWindow (g, 1 - 0.5, numberOfLevels + 0.5, ymin, ymax);
 		Graphics_setInner (g);
-		double boxWidth = 4.0, spaceBetweenBoxesInGroup = 1.0, barWidth = boxWidth / 3.0;
-		double spaceBetweenGroupsdiv2 = 3.0 / 2.0;
+		double boxWidth = 4, spaceBetweenBoxesInGroup = 1, barWidth = boxWidth / 3;
+		double spaceBetweenGroupsdiv2 = 3.0 / 2; 
 		double widthUnit = 1.0 / (numberOfSelectedColumns * boxWidth + (numberOfSelectedColumns - 1) * spaceBetweenBoxesInGroup + spaceBetweenGroupsdiv2 + spaceBetweenGroupsdiv2);
 		autoNUMvector<double> data (1, numberOfData);
-		for (long ilevel = 1; ilevel <= numberOfLevels; ilevel ++) {
+		for (long ilevel = 1; ilevel <= numberOfLevels; ilevel++) {
 			double xlevel = ilevel;
-			for (long icol = 1; icol <= numberOfSelectedColumns; icol ++) {
+			for (long icol = 1; icol <= numberOfSelectedColumns; icol++) {
 				long numberOfDataInLevelColumn = 0;
-				for (long irow = 1; irow <= numberOfData; irow ++) {
+				for (long irow = 1; irow <= numberOfData; irow++) {
 					if (si -> classIndex[irow] == ilevel) {
 						struct Formula_Result result;
-						Formula_run (irow, dataColumns [icol], & result);
+						Formula_run (irow, dataColumns[icol], & result);
 						if (result.result.numericResult != 0.0) {
-							data [++ numberOfDataInLevelColumn] = Table_getNumericValue_Assert (me, irow, dataColumns [icol]);
+							data[++numberOfDataInLevelColumn] = Table_getNumericValue_Assert (me, irow, dataColumns[icol]);
 						}
 					}
 				}
@@ -4155,11 +4112,11 @@ void Table_boxPlotsWhere (Table me, Graphics g, char32 *dataColumns_string, long
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			for (long ilevel = 1; ilevel <= numberOfLevels; ilevel ++) {
-				SimpleString ss = (SimpleString) si -> classes->at [ilevel];
-				Graphics_markBottom (g, ilevel, false, true, false, ss -> string);
+			for (long ilevel = 1; ilevel <= numberOfLevels; ilevel++) {
+				SimpleString ss = (SimpleString) si -> classes -> item[ilevel];
+				Graphics_markBottom (g, ilevel, 0, 1, 0, ss -> string);
 			}
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
@@ -4169,24 +4126,24 @@ void Table_boxPlotsWhere (Table me, Graphics g, char32 *dataColumns_string, long
 void Table_distributionPlotWhere (Table me, Graphics g, long dataColumn, double minimum, double maximum, long nBins, double freqMin, double freqMax, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
 		if (dataColumn < 1 || dataColumn > my numberOfColumns) return;
-		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, true);
+		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE);
 		Table_numericize_Assert (me, dataColumn);
-		long n = my rows.size, mrow = 0;
-		autoMatrix thee = Matrix_create (1.0, 1.0, 1, 1.0, 1.0, 0.0, n + 1.0, n, 1.0, 1.0);
-		for (long irow = 1; irow <= n; irow ++) {
+		long n = my rows -> size, mrow = 0;
+		autoMatrix thee = Matrix_create (1, 1, 1, 1, 1, 0, n + 1, n, 1, 1);
+		for (long irow = 1; irow <= n; irow++) {
 			struct Formula_Result result;
 			Formula_run (irow, dataColumn, & result);
 			if (result.result.numericResult != 0.0) {
 				thy z[1][++mrow] = Table_getNumericValue_Assert (me, irow, dataColumn);
 			}
 		}
-		Matrix_drawDistribution (thee.get(), g, 0, 1, 0.5, mrow + 0.5, minimum, maximum, nBins, freqMin, freqMax, false, garnish);
+		Matrix_drawDistribution (thee.peek(), g, 0, 1, 0.5, mrow+0.5, minimum, maximum, nBins, freqMin, freqMax, 0, garnish);
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
 	}
 }
 
-static autoStrings itemizeColourString (const char32 *colourString) {
+static Strings itemizeColourString (const char32 *colourString) {
 	// remove all spaces within { } so each {1,2,3} can be itemized
 	long nmatches_sub = 0;
 	const char32 *searchRE = U"\\{\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*\\}";
@@ -4194,7 +4151,7 @@ static autoStrings itemizeColourString (const char32 *colourString) {
 	autoMelderString colour;
 	MelderString_append (&colour, str_replace_regexp (colourString, compiledRE, U"{\\1,\\2,\\3}", 0, &nmatches_sub));
 	autoStrings thee = Strings_createAsTokens (colour.string);
-	return thee;
+	return thee.transfer();
 }
 
 static Graphics_Colour Strings_colourToValue  (Strings me, long index) {
@@ -4209,10 +4166,10 @@ static Graphics_Colour Strings_colourToValue  (Strings me, long index) {
 	if (first == U'{') {
 		colourValue.red = Melder_atof (++ p);
 		p = (char32 *) str32chr (p, U',');
-		if (! p) return Graphics_GREY;
+		if (p == NULL) return Graphics_GREY;
 		colourValue.green = Melder_atof (++ p);
 		p = (char32 *) str32chr (p, U',');
-		if (! p) return Graphics_GREY;
+		if (p == NULL) return Graphics_GREY;
 		colourValue.blue = Melder_atof (++ p);
 	} else {
 		*p = (char32) tolower ((int) *p);
@@ -4244,8 +4201,8 @@ static Graphics_Colour Strings_colourToValue  (Strings me, long index) {
 
 long Table_getNumberOfRowsWhere (Table me, const char32 *formula, Interpreter interpreter) {
 	long numberOfRows = 0;
-	Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, true);
-	for (long irow = 1; irow <= my rows.size; irow ++) {
+	Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE);
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
 		struct Formula_Result result;
 		Formula_run (irow, 1, & result);
 		if (result.result.numericResult != 0.0) {
@@ -4255,26 +4212,23 @@ long Table_getNumberOfRowsWhere (Table me, const char32 *formula, Interpreter in
 	return numberOfRows;
 }
 
-long *Table_findRowsMatchingCriterion (Table me, const char32 *formula, Interpreter interpreter, long *p_numberOfMatches) {
+long *Table_findRowsMatchingCriterion (Table me, const char32 *formula, Interpreter interpreter, long *numberOfMatches) {
 	try {
-		long numberOfMatches = Table_getNumberOfRowsWhere (me, formula, interpreter);
-		if (numberOfMatches < 1) {
+		*numberOfMatches = Table_getNumberOfRowsWhere (me, formula, interpreter);
+		if (*numberOfMatches < 1) {
 			Melder_throw (U"No rows selected.");
 		}
-		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, true);   // again?
-		autoNUMvector<long> selectedRows (1, numberOfMatches);
+		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE); // again?
+		autoNUMvector<long> selectedRows (1, *numberOfMatches);
 		long n = 0;
-		for (long irow =1; irow <= my rows.size; irow ++) {
+		for (long irow =1; irow <= my rows -> size; irow++) {
 			struct Formula_Result result;
 			Formula_run (irow, 1, & result);
 			if (result.result.numericResult != 0.0) {
 				selectedRows[++n] = irow;
 			}
 		}
-		Melder_assert (n == numberOfMatches);
-		if (p_numberOfMatches) {
-			*p_numberOfMatches = numberOfMatches;
-		}
+		Melder_assert (n == *numberOfMatches);
 		return selectedRows.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot find matches.");
@@ -4291,7 +4245,7 @@ void Table_barPlotWhere (Table me, Graphics g, const char32 *columnLabels, doubl
 		
 		autoNUMvector<long> selectedRows (Table_findRowsMatchingCriterion (me, formula, interpreter, &numberOfRowMatches), 1);
 		if (ymax <= ymin) { // autoscaling
-			ymin = 1e308; ymax= - ymin;
+			ymin = 1e38; ymax= - ymin;
 			for (long icol = 1; icol <= numberOfColumns; icol++) {
 				double cmin, cmax;
 				Table_columnExtremesFromSelectedRows (me, columnIndex[icol], selectedRows.peek(), numberOfRowMatches, &cmin, &cmax);
@@ -4312,7 +4266,7 @@ void Table_barPlotWhere (Table me, Graphics g, const char32 *columnLabels, doubl
 		for (long icol = 1; icol <= groupSize; icol++) {
 			double xb = xoffsetFraction * bar_width + (icol - 1) * (1 + interbarFraction) * bar_width;
 			double x1 = xb;
-			Graphics_Colour color = Strings_colourToValue  (colour.get(), icol);
+			Graphics_Colour color = Strings_colourToValue  (colour.peek(), icol);
 			for (long irow = 1; irow <= numberOfRowMatches; irow++) {
 				double x2 = x1 + bar_width;
 				double y2 = Table_getNumericValue_Assert (me, selectedRows[irow], columnIndex[icol]);
@@ -4352,7 +4306,7 @@ void Table_barPlotWhere (Table me, Graphics g, const char32 *columnLabels, doubl
 				for (long irow = 1; irow <= numberOfGroups; irow++) {
 					const char32 *label = Table_getStringValue_Assert (me, selectedRows[irow], labelIndex);
 					if (label) {
-						//Graphics_markBottom (g, xb, false, false, false, label);
+						//Graphics_markBottom (g, xb, 0, 0, 0, label);
 						Graphics_text (g, xb, ymin - g -> vertTick, label); // was y
 					}
 					xb += dx;
@@ -4364,11 +4318,11 @@ void Table_barPlotWhere (Table me, Graphics g, const char32 *columnLabels, doubl
 		Graphics_unsetInner (g);
 		if (garnish) {
 			if (ymin * ymax < 0) {
-				Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+				Graphics_markLeft (g, 0, TRUE,TRUE, TRUE, NULL);
 			}
 
 			Graphics_drawInnerBox (g);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 		}
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
@@ -4380,10 +4334,10 @@ static int Graphics_getConnectingLine (Graphics g, const char32 *text1, double x
 	double width1 = Graphics_textWidth (g, text1), width2 = Graphics_textWidth (g, text2);
 	double h = Graphics_dyMMtoWC (g, 1.5 * Graphics_inqFontSize (g) * 25.4 / 72) / 1.5;
 	double xi[3], yi[3], xleft = x1 < x2 ? x1 : x2, xright = x2 > x1 ? x2 : x1;
-	int numberOfIntersections = NUMgetIntersectionsWithRectangle (x1, y1, x2, y2, xleft - width1 / 2.0, y1 - h/2, xleft + width1 / 2.0, y1 + h/2, xi, yi);
+	int numberOfIntersections = NUMgetIntersectionsWithRectangle (x1, y1, x2, y2, xleft - width1 / 2, y1 - h/2, xleft +width1 / 2, y1 + h/2, xi, yi);
 	if (numberOfIntersections == 1) {
 		*x3 = xi[1]; *y3 = yi[1];
-		numberOfIntersections = NUMgetIntersectionsWithRectangle (x1, y1, x2, y2, xright - width2 / 2.0, y2 - h/2, xright + width2 / 2.0, y2 + h/2, xi, yi);
+		numberOfIntersections = NUMgetIntersectionsWithRectangle (x1, y1, x2, y2, xright - width2 / 2, y2 - h/2, xright + width2 / 2, y2 + h/2, xi, yi);
 		if (numberOfIntersections == 1) {
 			*x4 = xi[1]; *y4 = yi[1];
 			drawLine = 1;
@@ -4395,7 +4349,7 @@ static int Graphics_getConnectingLine (Graphics g, const char32 *text1, double x
 // take the xcolumn as labels if non-numeric column else as numbers and arrange distances accordingly.
 void Table_lineGraphWhere (Table me, Graphics g, long xcolumn, double xmin, double xmax, long ycolumn, double ymin, double ymax, const char32 *symbol, double angle, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
-		if (ycolumn < 1 || ycolumn > my numberOfColumns) return;
+		if (ycolumn < 1 || ycolumn > my rows -> size) return;
 		long numberOfSelectedRows = 0;
 		autoNUMvector<long> selectedRows (Table_findRowsMatchingCriterion (me, formula, interpreter, &numberOfSelectedRows), 1);	
 		if (ymax <= ymin) { // autoscaling
@@ -4414,7 +4368,7 @@ void Table_lineGraphWhere (Table me, Graphics g, long xcolumn, double xmin, doub
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 		double x1, y1;
-		double lineSpacing = Graphics_dyMMtoWC (g, 1.5 * Graphics_inqFontSize (g) * 25.4 / 72.0);
+		double lineSpacing = Graphics_dyMMtoWC (g, 1.5 * Graphics_inqFontSize (g) * 25.4 / 72);
 		//double symbolHeight = lineSpacing / 1.5;
 		for (long i = 1; i <= numberOfSelectedRows; i++) {
 			double y2 = Table_getNumericValue_Assert (me, selectedRows[i], ycolumn);
@@ -4461,7 +4415,7 @@ void Table_lineGraphWhere (Table me, Graphics g, long xcolumn, double xmin, doub
 				if (x2 >= xmin && x2 <= xmax) {
 					const char32 *label = Table_getStringValue_Assert (me, selectedRows[i], xcolumn);
 					if (label) {
-						//Graphics_markBottom (g, xb, false, false, false, label);
+						//Graphics_markBottom (g, xb, 0, 0, 0, label);
 						Graphics_text (g, x2 + dx, ymin - g -> vertTick, label); // was y
 					}
 				}
@@ -4473,9 +4427,9 @@ void Table_lineGraphWhere (Table me, Graphics g, long xcolumn, double xmin, doub
 
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksLeft (g, 2, 1, 1, 0);
 			if (xIsNumeric) {
-				Graphics_marksBottom (g, 2, true, true, false);
+				Graphics_marksBottom (g, 2, 1, 1, 0);
 			}
 		}
 	} catch (MelderError) {
@@ -4485,7 +4439,7 @@ void Table_lineGraphWhere (Table me, Graphics g, long xcolumn, double xmin, doub
 
 void Table_lagPlotWhere (Table me, Graphics g, long column, long lag, double xmin, double xmax, const char32 *symbol, int labelSize, int garnish, const char32 *formula, Interpreter interpreter) {
 	try {
-		if (column < 1 || column > my rows.size) {
+		if (column < 1 || column > my rows -> size) {
 			return;
 		}
 		long numberOfSelectedRows = 0;
@@ -4503,11 +4457,11 @@ void Table_lagPlotWhere (Table me, Graphics g, long column, long lag, double xmi
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksBottom (g, 2, true, true, false);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+			Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
 			if (my columnHeaders [column]. label) {
-				Graphics_textLeft (g, true, my columnHeaders[column].label);
-				Graphics_textBottom (g, true, Melder_cat (my columnHeaders[column].label, U" (lag = ", lag, U")"));
+				Graphics_textLeft (g, TRUE, my columnHeaders[column].label);
+				Graphics_textBottom (g, TRUE, Melder_cat (my columnHeaders[column].label, U" (lag = ", lag, U")"));
 			}
 		}
 	} catch (MelderError) {
@@ -4515,33 +4469,33 @@ void Table_lagPlotWhere (Table me, Graphics g, long column, long lag, double xmi
 	}
 }
 
-autoTable Table_extractRowsWhere (Table me, const char32 *formula, Interpreter interpreter) {
+Table Table_extractRowsWhere (Table me, const char32 *formula, Interpreter interpreter) {
 	try {
-		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, true);
+		Formula_compile (interpreter, me, formula, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE);
 		autoTable thee = Table_create (0, my numberOfColumns);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			autostring32 newLabel = Melder_dup (my columnHeaders [icol]. label);
 			thy columnHeaders [icol]. label = newLabel.transfer();
 		}
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			struct Formula_Result result;
 			Formula_run (irow, 1, & result);
 			if (result.result.numericResult != 0.0) {
-				TableRow row = my rows.at [irow];
+				TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 				autoTableRow newRow = Data_copy (row);
-				thy rows. addItem_move (newRow.move());
+				Collection_addItem (thy rows, newRow.transfer());
 			}
 		}
-		if (thy rows.size == 0) {
+		if (thy rows -> size == 0) {
 			Melder_warning (U"No row matches criterion.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no Table could be extracted.");
 	}
 }
 
-static autoTableOfReal Table_to_TableOfReal_where (Table me, const char32 *columnLabels, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
+static TableOfReal Table_to_TableOfRealWhere (Table me, const char32 *columnLabels, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
 	try {
 		long numberOfColumns, numberOfSelectedRows = 0;
 		long factorColIndex = Table_findColumnIndexFromColumnLabel (me, factorColumn);
@@ -4555,94 +4509,92 @@ static autoTableOfReal Table_to_TableOfReal_where (Table me, const char32 *colum
 			}
 			if (factorColIndex > 0) { // if no factorColumn given labels may be empty
 				const char32 *label = Table_getStringValue_Assert (me, selectedRows[i], factorColIndex);
-				TableOfReal_setRowLabel (thee.get(), i, label);
+				TableOfReal_setRowLabel (thee.peek(), i, label);
 			}
 		}
 		for (long icol = 1; icol <= numberOfColumns; icol++) {
-			TableOfReal_setColumnLabel (thee.get(), icol, my columnHeaders [columnIndex[icol]].label);
+			TableOfReal_setColumnLabel (thee.peek(), icol, my columnHeaders [columnIndex[icol]].label);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"No TableOfReal created from Table.");
 	}
 }
 
-static autoSSCPList Table_to_SSCPList_where (Table me, const char32 *columnLabels, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
+static SSCPs Table_to_SSCPsWhere (Table me, const char32 *columnLabels, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
 	try {
-		autoTableOfReal thee = Table_to_TableOfReal_where (me, columnLabels, factorColumn, formula, interpreter);
-		autoSSCPList him = TableOfReal_to_SSCPList_byLabel (thee.get());
-		return him;
+		autoTableOfReal thee = Table_to_TableOfRealWhere (me, columnLabels, factorColumn, formula, interpreter);
+		autoSSCPs him = TableOfReal_to_SSCPs_byLabel (thee.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"No Discriminant created from Table.");
 	}
 }
 
-static long SSCPList_findIndexOfGroupLabel (SSCPList me, const char32 *label) {
-	for (long i = 1; i <= my size; i ++) {
-		if (Melder_equ (Thing_getName (my at [i]), label)) {
+static long SSCPs_findIndexOfGroupLabel (SSCPs me, const char32 *label) {
+	for (long i = 1; i <= my size; i++) {
+		if (Melder_cmp (Thing_getName ((SSCP) my item[i]), label) == 0) {
 			return i;
 		}
 	}
 	return 0;
 }
 
-static autoTable Table_and_SSCPList_extractMahalanobisWhere (Table me, SSCPList thee, double numberOfSigmas, int which_Melder_NUMBER, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
+static Table Table_and_SSCPs_extractMahalanobisWhere (Table me, SSCPs thee, double numberOfSigmas, int which_Melder_NUMBER, const char32 *factorColumn, const char32 *formula, Interpreter interpreter) {
 	try {
-		long numberOfGroups = thy size;
-		Melder_assert (numberOfGroups > 0);
-
-		SSCP sscp = thy at [1];
+		SSCP sscp = (SSCP) thy item[1];
 		long numberOfColumns = sscp -> numberOfColumns, numberOfSelectedRows = 0;
 		long factorColIndex = Table_findColumnIndexFromColumnLabel (me, factorColumn); // can be absent
 		autoNUMvector<long> columnIndex (1, numberOfColumns);
 		autoNUMvector<double> vector (1, numberOfColumns);
-		autoNUMvector<long> selectedRows (Table_findRowsMatchingCriterion (me, formula, interpreter, & numberOfSelectedRows), 1);
+		autoNUMvector<long> selectedRows (Table_findRowsMatchingCriterion (me, formula, interpreter, &numberOfSelectedRows), 1);
 		for (long icol = 1; icol <= numberOfColumns; icol++) {
 			columnIndex[icol] = Table_getColumnIndexFromColumnLabel (me, sscp -> columnLabels[icol]); // throw if not present
 		}
+		long numberOfGroups = thy size;
 		autoTable him = Table_create (0, my numberOfColumns);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			autostring32 newLabel = Melder_dup (my columnHeaders[icol].label);
 			his columnHeaders[icol].label = newLabel.transfer();
 		}
-		OrderedOf<structCovariance> covs;
-		for (long igroup = 1; igroup <= numberOfGroups; igroup ++) {
-			autoCovariance cov = SSCP_to_Covariance (thy at [igroup], 1);
-			SSCP_expandLowerCholesky (cov.get());
-			covs. addItem_move (cov.move());
+		autoOrdered covs = Ordered_create ();
+		for (long igroup = 1; igroup <= numberOfGroups; igroup++) {
+			autoCovariance cov = SSCP_to_Covariance ((SSCP) thy item[igroup], 1); 
+			SSCP_expandLowerCholesky (cov.peek());
+			Collection_addItem (covs.peek(), cov.transfer());
 		}
-		for (long i = 1; i <= numberOfSelectedRows; i ++) {
-			long irow = selectedRows [i];
+		for (long i = 1; i <= numberOfSelectedRows; i++) {
+			long irow = selectedRows[i];
 			long igroup = 1; // if factorColIndex == 0 we don't need labels
 			if (factorColIndex > 0) {
 				const char32 *label = Table_getStringValue_Assert (me, irow, factorColIndex);
-				igroup = SSCPList_findIndexOfGroupLabel (thee, label);
+				igroup = SSCPs_findIndexOfGroupLabel (thee, label);
 				if (igroup == 0) {
 					Melder_throw (U"The label \"", label, U"\" in row ", irow, U" is not valid in this context.");
 				}
 			}
-			Covariance covi = covs.at [igroup];
-			for (long icol = 1; icol <= numberOfColumns; icol ++) {
-				vector [icol] = Table_getNumericValue_Assert (me, irow, columnIndex [icol]);
+			Covariance covi = (Covariance) covs -> item[igroup];
+			for (long icol = 1; icol <= numberOfColumns; icol++) {
+				vector[icol] = Table_getNumericValue_Assert (me, irow, columnIndex[icol]);
 			}
 			double dm2 = NUMmahalanobisDistance_chi (covi -> lowerCholesky, vector.peek(), covi -> centroid, numberOfColumns, numberOfColumns);
 			if (Melder_numberMatchesCriterion (sqrt (dm2), which_Melder_NUMBER, numberOfSigmas)) {
-				TableRow row = my rows.at [irow];
+				TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 				autoTableRow newRow = Data_copy (row);
-				his rows. addItem_move (newRow.move());
+				Collection_addItem (his rows, newRow.transfer());
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"Table (mahalanobis) not extracted.");
 	}
 }
 
-autoTable Table_extractMahalanobisWhere(Table me, const char32 *columnLabels, const char32 *factorColumn, double numberOfSigmas, int which_Melder_NUMBER, const char32 *formula, Interpreter interpreter) {
+Table Table_extractMahalanobisWhere(Table me, const char32 *columnLabels, const char32 *factorColumn, double numberOfSigmas, int which_Melder_NUMBER, const char32 *formula, Interpreter interpreter) {
 	try {
-		autoSSCPList thee = Table_to_SSCPList_where (me, columnLabels, factorColumn, formula, interpreter);
-		autoTable him = Table_and_SSCPList_extractMahalanobisWhere (me, thee.get(), numberOfSigmas, which_Melder_NUMBER, factorColumn, formula, interpreter);
-		return him;
+		autoSSCPs thee = Table_to_SSCPsWhere (me, columnLabels, factorColumn, formula, interpreter);
+		autoTable him = Table_and_SSCPs_extractMahalanobisWhere (me, thee.peek(), numberOfSigmas, which_Melder_NUMBER, factorColumn, formula, interpreter);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"Table not extracted.");
 	}
@@ -4658,17 +4610,17 @@ void Table_drawEllipsesWhere (Table me, Graphics g, long xcolumn, long ycolumn,
 			double y = Table_getNumericValue_Assert (me, selectedRows[i], ycolumn);
 			const char32 *label = Table_getStringValue_Assert (me, selectedRows[i], factorColumn);
 			thy data[i][1] = x; thy data[i][2] = y;
-			TableOfReal_setRowLabel (thee.get(), i, label);
+			TableOfReal_setRowLabel (thee.peek(), i, label);
 		}
-		autoSSCPList him = TableOfReal_to_SSCPList_byLabel (thee.get());
-		bool confidence = false;
+		autoSSCPs him = TableOfReal_to_SSCPs_byLabel (thee.peek());
+		int confidence = 0;
 		if (ymax == ymin) { // autoscaling
-			SSCPList_getEllipsesBoundingBoxCoordinates (him.get(), numberOfSigmas, confidence, & xmin, & xmax, & ymin, & ymax);
+			SSCPs_getEllipsesBoundingBoxCoordinates (him.peek(), numberOfSigmas, confidence, &xmin, &xmax, &ymin, &ymax);
 		}
 		Graphics_setWindow (g, xmin, xmax, ymin, ymax);
 		Graphics_setInner (g);
-		for (long i = 1; i <= his size; i ++) {
-			SSCP sscpi = his at [i];
+		for (long i = 1; i <= his size; i++) {
+			SSCP sscpi = (SSCP) his item[i];
 			double scalei = SSCP_getEllipseScalefactor (sscpi, numberOfSigmas, confidence);
 			if (scalei > 0) {
 				SSCP_drawTwoDimensionalEllipse_inside  (sscpi, g, scalei, Thing_getName (sscpi), labelSize);
@@ -4678,13 +4630,13 @@ void Table_drawEllipsesWhere (Table me, Graphics g, long xcolumn, long ycolumn,
 
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_marksBottom (g, 2, true, true, false);
-			Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+			Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
 			if (my columnHeaders [xcolumn]. label) {
-				Graphics_textBottom (g, true, my columnHeaders[xcolumn].label);
+				Graphics_textBottom (g, TRUE, my columnHeaders[xcolumn].label);
 			}
 			if (my columnHeaders [ycolumn]. label) {
-				Graphics_textLeft (g, true, my columnHeaders[ycolumn].label);
+				Graphics_textLeft (g, TRUE, my columnHeaders[ycolumn].label);
 			}
 		}
 	} catch (MelderError) {
@@ -4692,22 +4644,22 @@ void Table_drawEllipsesWhere (Table me, Graphics g, long xcolumn, long ycolumn,
 	}
 }
 
-autoTable Table_extractColumnRanges (Table me, char32 *ranges) {
+Table Table_extractColumnRanges (Table me, char32 *ranges) {
 	try {
-		long numberOfSelectedColumns, numberOfRows = my rows.size;
-		autoNUMvector<long> columnRanges (NUMstring_getElementsOfRanges (ranges, my numberOfColumns, & numberOfSelectedColumns, nullptr, U"columnn number", true), 1);
+		long numberOfSelectedColumns, numberOfRows = my rows -> size;
+		autoNUMvector<long> columnRanges (NUMstring_getElementsOfRanges (ranges, my numberOfColumns, & numberOfSelectedColumns, NULL, U"columnn number", true), 1);
 		autoTable thee = Table_createWithoutColumnNames (numberOfRows, numberOfSelectedColumns); 
-		for (long icol = 1; icol <= numberOfSelectedColumns; icol ++) {
-			Table_setColumnLabel (thee.get(), icol, my v_getColStr (columnRanges [icol]));
+		for (long icol = 1; icol <= numberOfSelectedColumns; icol++) {
+			Table_setColumnLabel (thee.peek(), icol, my v_getColStr (columnRanges[icol]));
 		}
-		for (long irow = 1; irow <= numberOfRows; irow ++) {
-			//TableRow row = thy rows -> items [irow];
-			for (long icol = 1; icol <= numberOfSelectedColumns; icol ++) {
-				const char32 *value = Table_getStringValue_Assert (me, irow, columnRanges [icol]);
-				Table_setStringValue (thee.get(), irow, icol, value);
+		for (long irow = 1; irow <= numberOfRows; irow++) {
+			//TableRow row = (TableRow)  thy rows -> item[irow];
+			for (long icol = 1; icol <= numberOfSelectedColumns; icol++) {
+				const char32 *value = Table_getStringValue_Assert (me, irow, columnRanges[icol]);
+				Table_setStringValue (thee.peek(), irow, icol, value);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no column range extracted.");
 	}
diff --git a/dwtools/Table_extensions.h b/dwtools/Table_extensions.h
index ccfd601..dfa846b 100644
--- a/dwtools/Table_extensions.h
+++ b/dwtools/Table_extensions.h
@@ -2,7 +2,7 @@
 #define _Table_extensions_h_
 /* Table_extensions.h
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,49 +33,39 @@
 #include "Table.h"
 
 long Table_getNumberOfRowsWhere (Table me, const char32 *formula, Interpreter interpreter);
-
 long *Table_findRowsMatchingCriterion (Table me, const char32 *formula, Interpreter interpreter, long *numberOfMatches);
-
-autoTable Table_createFromPetersonBarneyData ();
-
-autoTable Table_createFromPolsVanNieropData ();
-
-autoTable Table_createFromWeeninkData ();
-
-autoTable Table_createFromEspositoData ();
-
-autoTable Table_createFromGanongData ();
+Table Table_createFromPetersonBarneyData ();
+Table Table_createFromPolsVanNieropData ();
+Table Table_createFromWeeninkData ();
+Table Table_createFromEspositoData ();
+Table Table_createFromGanongData ();
 
 double Table_getMedianAbsoluteDeviation (Table me, long columnNumber);
 
 // Two one-way tests for normal and non-normally distributed data, respectively.
-autoTable Table_getOneWayAnalysisOfVarianceF (Table me, long column, long groupColumn, autoTable *means, autoTable *meansDiff, autoTable *meansDiffProbabilities);
-
-autoTable Table_getOneWayKruskalWallis (Table me, long column, long factorColumn, double *p_prob, double *p_kruskalWallis, double *p_df);
+Table Table_getOneWayAnalysisOfVarianceF (Table me, long column, long groupColumn, Table *means, Table *meansDiff, Table *meansDiffProbabilities);
+Table Table_getOneWayKruskalWallis (Table me, long column, long groupColumn, double *degreesOfFreedom, double *kruskalWallis, double *probability);
 
-autoTable Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long groupColumnA, long groupColumnB, autoTable *means, autoTable *factorLevelSizes);
+Table Table_getTwoWayAnalysisOfVarianceF (Table me, long column, long groupColumnA, long groupColumnB, Table *means, Table *factorLevelSizes);
 
 void Table_verticalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long ycolumn, double xmin, double xmax, 
 	double ymin, double ymax, long yci_min, long yci_max, double bar_mm, int garnish, const char32 *formula, Interpreter interpreter);
-
 void Table_horizontalErrorBarsPlotWhere (Table me, Graphics g, long xcolumn, long ycolumn, double xmin, double xmax, 
 	double ymin, double ymax, long xci_min, long xci_max, double bar_mm, int garnish, const char32 *formula, Interpreter interpreter);
 
-void Table_normalProbabilityPlot (Table me, Graphics g, long column, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, bool garnish);
 
-void Table_quantileQuantilePlot (Table me, Graphics g, long xcolumn, long ycolumn, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *label, bool garnish);
+void Table_normalProbabilityPlot (Table me, Graphics g, long column, long numberOfQuantiles, double numberOfSigmas, int labelSize, const char32 *label, int garnish);
 
-void Table_quantileQuantilePlot_betweenLevels (Table me, Graphics g, long dataColumn, long factorColumn, const char32 *xlevel, const char32 *ylevel, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *label, bool garnish);
+void Table_quantileQuantilePlot (Table me, Graphics g, long xcolumn, long ycolumn, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *label, int garnish);
 
-void Table_boxPlots (Table me, Graphics g, long dataColumn, long factorColumn, double ymin, double ymax, int garnish);
+void Table_quantileQuantilePlot_betweenLevels (Table me, Graphics g, long dataColumn, long factorColumn, const char32 *xlevel, const char32 *ylevel, long numberOfQuantiles, double xmin, double xmax, double ymin, double ymax, int labelSize, const char32 *label, int garnish);
 
+void Table_boxPlots (Table me, Graphics g, long dataColumn, long factorColumn, double ymin, double ymax, int garnish);
 void Table_boxPlotsWhere (Table me, Graphics g, char32 *dataColumns_string, long factorColumn, double ymin, double ymax, int garnish, const char32 *formula, Interpreter interpreter);
 
-autoTable Table_extractRowsWhere (Table me, const char32 *formula, Interpreter interpreter);
-
-autoTable Table_extractColumnRanges (Table me, char32 *ranges);
-
-autoTable Table_extractMahalanobisWhere (Table me, const char32 *columnLabels, const char32 *factorColumn, double numberOfSigmas, int which_Melder_NUMBER, const char32 *formula, Interpreter interpreter);
+Table Table_extractRowsWhere (Table me, const char32 *formula, Interpreter interpreter);
+Table Table_extractColumnRanges (Table me, char32 *ranges);
+Table Table_extractMahalanobisWhere (Table me, const char32 *columnLabels, const char32 *factorColumn, double numberOfSigmas, int which_Melder_NUMBER, const char32 *formula, Interpreter interpreter);
 
 void Table_distributionPlotWhere (Table me, Graphics g, long dataColumn, double minimum, double maximum, long nBins, double freqMin, double freqMax, int garnish, const char32 *formula, Interpreter interpreter);
 
@@ -88,7 +78,6 @@ void Table_lagPlotWhere (Table me, Graphics g, long column, long lag, double xmi
 void Table_drawEllipsesWhere (Table me, Graphics g, long xcolumn, long ycolumn, long labelcolumn, double xmin, double xmax, double ymin, double ymax, double numberOfSigmas, long labelSize, int garnish, const char32 *formula, Interpreter interpreter);
 
 void Table_printAsAnovaTable (Table me);
-
 void Table_printAsMeansTable (Table me);
 
 #endif // _Table_extensions_h_
diff --git a/dwtools/TextGrid_extensions.cpp b/dwtools/TextGrid_extensions.cpp
index 1c0f876..a131171 100644
--- a/dwtools/TextGrid_extensions.cpp
+++ b/dwtools/TextGrid_extensions.cpp
@@ -1,6 +1,6 @@
 /* TextGrid_extensions.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -146,26 +146,26 @@ static int isTimitWord (const char label[]) {
 	return 1;
 }
 
-autoDaata TextGrid_TIMITLabelFileRecognizer (int nread, const char *header, MelderFile file) {
-	char hkruis[3] = "h#", label1[512], label2[512];
-	int length, phnFile = 0;
-	long it[5]; 
-	if (nread < 12 || sscanf (header, "%ld%ld%s%n\n", &it[1], &it[2], label1, &length) != 3 ||
-		it[1] < 0 || it[2] <= it[1] || sscanf (&header[length], "%ld%ld%s\n", &it[3], &it[4], label2) != 3 || it[4] <= it[3]) {
-		// 20120512 djmw removed the extra "it[3] < it[2]" check, because otherwise train/dr7/mdlm0/si1864.wrd cannot be read
-		return autoDaata ();
+Any TextGrid_TIMITLabelFileRecognizer (int nread, const char *header, MelderFile file) {
+	long it[5]; int length, phnFile = 0; char hkruis[3] = "h#", label1[512], label2[512];
+	if (nread < 12 ||
+	        sscanf (header, "%ld%ld%s%n\n", &it[1], &it[2], label1, &length) != 3 ||
+	        it[1] < 0 || it[2] <= it[1] ||
+	        sscanf (&header[length], "%ld%ld%s\n", &it[3], &it[4], label2) != 3 ||
+	        // 20120512 djmw removed the extra "it[3] < it[2]" check, because otherwise train/dr7/mdlm0/si1864.wrd cannot be read
+	        it[4] <= it[3]) {
+		return 0;
 	}
 	if (! strcmp (label1, hkruis)) {
 		if (isTimitPhoneticLabel (label2)) {
 			phnFile = 1;
 		} else if (! isTimitWord (label2)) {
-			return autoDaata ();
+			return 0;
 		}
 	} else if (! isTimitWord (label1) || ! isTimitWord (label2)) {
-		return autoDaata ();
+		return 0;
 	}
-	autoTextGrid thee = TextGrid_readFromTIMITLabelFile (file, phnFile);
-	return thee.move();
+	return TextGrid_readFromTIMITLabelFile (file, phnFile);
 }
 
 static void IntervalTier_add (IntervalTier me, double xmin, double xmax, const char32 *label) {
@@ -175,7 +175,7 @@ static void IntervalTier_add (IntervalTier me, double xmin, double xmax, const c
 	}
 
 	autoTextInterval newti = TextInterval_create (xmin, xmax, label);
-	TextInterval interval = my intervals.at [i];
+	TextInterval interval = (TextInterval) my intervals -> item[i];
 	double xmaxi = interval -> xmax;
 	if (xmax > xmaxi) {
 		Melder_throw (U"Don't know what to do");    // Don't know what to do
@@ -187,19 +187,19 @@ static void IntervalTier_add (IntervalTier me, double xmin, double xmax, const c
 		}
 		// split interval
 		interval -> xmin = xmax;
-		my intervals. addItem_move (newti.move());
+		Collection_addItem (my intervals, newti.transfer());
 		return;
 	}
 	interval -> xmax = xmin;
-	my intervals. addItem_move (newti.move());
+	Collection_addItem (my intervals, newti.transfer());
 	// extra interval when xmax's are not the same
 	if (xmax < xmaxi) {
 		autoTextInterval newti2 = TextInterval_create (xmax, xmaxi, interval -> text);
-		my intervals. addItem_move (newti2.move());
+		Collection_addItem (my intervals, newti2.transfer());
 	}
 }
 
-autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile) {
+TextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile) {
 	try {
 		double dt = 1.0 / 16000; /* 1 / (TIMIT samplingFrequency) */
 		double xmax = dt;
@@ -208,8 +208,8 @@ autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile) {
 		// Ending time will only be known after all labels have been read.
 		// We start with a sufficiently long duration (one hour) and correct this later.
 
-		autoTextGrid me = TextGrid_create (0.0, 3600.0, U"wrd", 0);
-		IntervalTier timit = (IntervalTier) my tiers->at [1];
+		autoTextGrid me = TextGrid_create (0, 3600, U"wrd", 0);
+		IntervalTier timit = (IntervalTier) my tiers -> item[1];
 		long linesRead = 0;
 		char line[200], label[200];
 		while (fgets (line, 199, f)) {
@@ -223,18 +223,18 @@ autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile) {
 			}
 			xmax = it2 * dt;
 			double xmin = it1 * dt;
-			long ni = timit -> intervals.size - 1;
+			long ni = timit -> intervals -> size - 1;
 			if (ni < 1) {
 				ni = 1;
 				// Some files do not start with a first line "0 <number2> h#".
 				// Instead they start with "<number1> <number2> h#", where number1 > 0.
 				// We override number1 with 0. */
 
-				if (xmin > 0.0 && phnFile) {
-					xmin = 0.0;
+				if (xmin > 0 && phnFile) {
+					xmin = 0;
 				}
 			}
-			TextInterval interval = timit -> intervals.at [ni];
+			TextInterval interval = (TextInterval) timit -> intervals -> item[ni];
 			if (xmin < interval -> xmax && linesRead > 1) {
 				xmin = interval -> xmax;
 				Melder_warning (U"File \"", MelderFile_messageName (file), U"\": Start time set to previous end "
@@ -248,34 +248,34 @@ autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile) {
 		// Now correct the end times, based on last read interval.
 		// (end time was set to large value!)
 
-		if (timit -> intervals.size < 2) {
+		if (timit -> intervals -> size < 2) {
 			Melder_throw (U"Empty TextGrid");
 		}
-		timit -> intervals. removeItem (timit -> intervals.size);
-		TextInterval interval = timit -> intervals.at [timit -> intervals.size];
+		Collection_removeItem (timit -> intervals, timit -> intervals -> size);
+		TextInterval interval = (TextInterval) timit -> intervals -> item[timit -> intervals -> size];
 		timit -> xmax = interval -> xmax;
 		my xmax = xmax;
 		if (phnFile) { // Create tier 2 with IPA symbols
 			autoIntervalTier ipa = Data_copy (timit);
-			Thing_setName (ipa.get(), U"ipa");
+			Thing_setName (ipa.peek(), U"ipa");
 			// First change the data in ipa
-			for (long i = 1; i <= ipa -> intervals.size; i ++) {
-				interval = timit -> intervals.at [i];
+			for (long i = 1; i <= ipa -> intervals -> size; i++) {
+				interval = (TextInterval) timit -> intervals -> item[i];
 
-				TextInterval_setText (ipa -> intervals.at [i],
-					Melder_peek8to32 (timitLabelToIpaLabel (Melder_peek32to8 (interval -> text))));
+				TextInterval_setText ( (TextInterval) ipa -> intervals -> item[i],
+				                       Melder_peek8to32 (timitLabelToIpaLabel (Melder_peek32to8 (interval -> text))));
 			}
-			my tiers -> addItem_move (ipa.move()); // Then: add to collection
+			Collection_addItem (my tiers, ipa.transfer()); // Then: add to collection
 			Thing_setName (timit, U"phn");  // rename wrd
 		}
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not read from file ", file, U".");
 	}
 }
 
-autoTextGrid TextGrids_merge (TextGrid me, TextGrid thee) {
+TextGrid TextGrids_merge (TextGrid me, TextGrid thee) {
 	try {
 		int at_end = 0, at_start = 1;
 
@@ -289,23 +289,23 @@ autoTextGrid TextGrids_merge (TextGrid me, TextGrid thee) {
 		double extra_time_start = fabs (g2 -> xmin - g1 -> xmin);
 
 		if (g1 -> xmin > g2 -> xmin) {
-			TextGrid_extendTime (g1.get(), extra_time_start, at_start);
+			TextGrid_extendTime (g1.peek(), extra_time_start, at_start);
 		}
 		if (g1 -> xmax < g2 -> xmax) {
-			TextGrid_extendTime (g1.get(), extra_time_end, at_end);
+			TextGrid_extendTime (g1.peek(), extra_time_end, at_end);
 		}
 		if (g2 -> xmin > g1 -> xmin) {
-			TextGrid_extendTime (g2.get(), extra_time_start, at_start);
+			TextGrid_extendTime (g2.peek(), extra_time_start, at_start);
 		}
 		if (g2 -> xmax < g1 -> xmax) {
-			TextGrid_extendTime (g2.get(), extra_time_end, at_end);
+			TextGrid_extendTime (g2.peek(), extra_time_end, at_end);
 		}
 
-		for (long i = 1; i <= g2 -> tiers->size; i ++) {
-			autoFunction tier = Data_copy (g2 -> tiers->at [i]);
-			g1 -> tiers -> addItem_move (tier.move());
+		for (long i = 1; i <= g2 -> tiers -> size; i++) {
+			autoFunction tier = Data_copy ( (Function) g2 -> tiers -> item [i]);
+			Collection_addItem (g1 -> tiers, tier.transfer());
 		}
-		return g1;
+		return g1.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not merged.");
 	}
@@ -314,12 +314,11 @@ autoTextGrid TextGrids_merge (TextGrid me, TextGrid thee) {
 void IntervalTier_setLaterEndTime (IntervalTier me, double xmax, const char32 *mark) {
 	try {
 		if (xmax <= my xmax) return; // nothing to be done
-		Melder_assert (my intervals.size > 0);
-		TextInterval ti = my intervals.at [my intervals.size];
+		TextInterval ti = (TextInterval) my intervals -> item[my intervals -> size];
 		Melder_assert (xmax > ti -> xmax);
-		if (mark) {
+		if (mark != NULL) {
 			autoTextInterval interval = TextInterval_create (ti -> xmax, xmax, mark);
-			my intervals. addItem_move (interval.move());
+			Collection_addItem (my intervals, interval.transfer());
 		} else {
 			// extend last interval
 			ti -> xmax = xmax;
@@ -332,15 +331,12 @@ void IntervalTier_setLaterEndTime (IntervalTier me, double xmax, const char32 *m
 
 void IntervalTier_setEarlierStartTime (IntervalTier me, double xmin, const char32 *mark) {
 	try {
-		if (xmin >= my xmin) {
-			return;
-		}
-		Melder_assert (my intervals.size > 0);
-		TextInterval ti = my intervals.at [1];
+		if (xmin >= my xmin) return; // nothing to be done
+		TextInterval ti = (TextInterval) my intervals -> item[1];
 		Melder_assert (xmin < ti -> xmin);
-		if (mark) {
+		if (mark != NULL) {
 			autoTextInterval interval = TextInterval_create (xmin, ti -> xmin, mark);
-			my intervals. addItem_move (interval.move());
+			Collection_addItem (my intervals, interval.transfer());
 		} else {
 			// extend first interval
 			ti -> xmin = xmin;
@@ -353,21 +349,21 @@ void IntervalTier_setEarlierStartTime (IntervalTier me, double xmin, const char3
 
 void IntervalTier_moveBoundary (IntervalTier me, long iint, bool atStart, double newTime) {
     try {
-        if (iint < 1 or iint > my intervals.size) {
+        if (iint < 1 or iint > my intervals -> size) {
             Melder_throw (U"Interval out of range.");
         }
-        if ((iint == 1 && atStart) or (iint == my intervals.size && ! atStart)) {
+        if ((iint == 1 && atStart) or ((iint == my intervals -> size && not atStart))) {
             Melder_throw (U"Cannot change the domain.");
         }
-        TextInterval interval = my intervals.at [iint];
+        TextInterval interval = (TextInterval) my intervals -> item[iint];
         if (atStart) {
-            TextInterval pinterval = my intervals.at [iint-1];
+            TextInterval pinterval = (TextInterval) my intervals -> item[iint-1];
             if (newTime <= pinterval -> xmin) {
                 Melder_throw (U"Cannot move past the start of previous interval.");
             }
             pinterval -> xmax = interval -> xmin = newTime;
         } else {
-            TextInterval ninterval = my intervals.at [iint+1];
+            TextInterval ninterval = (TextInterval) my intervals -> item[iint+1];
             if (newTime >= ninterval -> xmax) {
                 Melder_throw (U"Cannot move past the end of next interval.");
             }
@@ -381,12 +377,10 @@ void IntervalTier_moveBoundary (IntervalTier me, long iint, bool atStart, double
 
 void TextTier_setLaterEndTime (TextTier me, double xmax, const char32 *mark) {
 	try {
-		if (xmax <= my xmax) {
-			return;
-		}
-		if (mark) {
+		if (xmax <= my xmax) return; // nothing to be done
+		if (mark != NULL) {
 			autoTextPoint textpoint = TextPoint_create (my xmax, mark);
-			my points. addItem_move (textpoint.move());
+			Collection_addItem (my points, textpoint.transfer());
 		}
 		my xmax = xmax;
 	} catch (MelderError) {
@@ -396,12 +390,10 @@ void TextTier_setLaterEndTime (TextTier me, double xmax, const char32 *mark) {
 
 void TextTier_setEarlierStartTime (TextTier me, double xmin, const char32 *mark) {
 	try {
-		if (xmin >= my xmin) {
-			return;
-		}
-		if (mark) {
+		if (xmin >= my xmin) return; // nothing to be done
+		if (mark != NULL) {
 			autoTextPoint textpoint = TextPoint_create (my xmin, mark);
-			my points. addItem_move (textpoint.move());
+			Collection_addItem (my points, textpoint.transfer());
 		}
 		my xmin = xmin;
 	} catch (MelderError) {
@@ -411,13 +403,12 @@ void TextTier_setEarlierStartTime (TextTier me, double xmin, const char32 *mark)
 
 void TextGrid_setEarlierStartTime (TextGrid me, double xmin, const char32 *imark, const char32 *pmark) {
 	try {
-		if (xmin >= my xmin) {
-			return;
-		}
-		for (long tierNumber = 1 ; tierNumber <= my tiers->size; tierNumber ++) {
-			Function tier = my tiers->at [tierNumber];
+		if (xmin >= my xmin) return;
+		for (long tierNumber = 1 ; tierNumber <= my tiers -> size; tierNumber++) {
+			Function tier = (Function) my tiers -> item [tierNumber];
 			if (tier -> classInfo == classIntervalTier) {
 				IntervalTier_setEarlierStartTime ((IntervalTier) tier, xmin, imark);
+
 			} else {
 				TextTier_setEarlierStartTime ((TextTier) tier, xmin, pmark);
 			}
@@ -430,13 +421,12 @@ void TextGrid_setEarlierStartTime (TextGrid me, double xmin, const char32 *imark
 
 void TextGrid_setLaterEndTime (TextGrid me, double xmax, const char32 *imark, const char32 *pmark) {
 	try {
-		if (xmax <= my xmax) {
-			return;
-		}
-		for (long tierNumber =1 ; tierNumber <= my tiers->size; tierNumber ++) {
-			Function tier = my tiers->at [tierNumber];
+		if (xmax <= my xmax) return;
+		for (long tierNumber =1 ; tierNumber <= my tiers -> size; tierNumber++) {
+			Function tier = (Function) my tiers -> item [tierNumber];
 			if (tier -> classInfo == classIntervalTier) {
 				IntervalTier_setLaterEndTime ((IntervalTier) tier, xmax, imark);
+
 			} else {
 				TextTier_setLaterEndTime ((TextTier) tier, xmax, pmark);
 			}
@@ -448,7 +438,7 @@ void TextGrid_setLaterEndTime (TextGrid me, double xmax, const char32 *imark, co
 }
 
 void TextGrid_extendTime (TextGrid me, double extra_time, int position) {
-	autoTextGrid thee;
+	autoTextGrid thee = 0;
 	try {
 		double xmax = my xmax, xmin = my xmin;
 		int at_end = position == 0;
@@ -457,7 +447,7 @@ void TextGrid_extendTime (TextGrid me, double extra_time, int position) {
 			return;
 		}
 		extra_time = fabs (extra_time); // Just in case...
-		thee = Data_copy (me);
+		thee.reset (Data_copy (me));
 
 		if (at_end) {
 			xmax += extra_time;
@@ -465,8 +455,8 @@ void TextGrid_extendTime (TextGrid me, double extra_time, int position) {
 			xmin -= extra_time;
 		}
 
-		for (long i = 1; i <= my tiers->size; i ++) {
-			Function anyTier = my tiers->at [i];
+		for (long i = 1; i <= my tiers -> size; i++) {
+			Function anyTier = (Function) my tiers -> item [i];
 			double tmin = anyTier -> xmin, tmax = anyTier -> xmax;
 
 			if (at_end) {
@@ -481,7 +471,7 @@ void TextGrid_extendTime (TextGrid me, double extra_time, int position) {
 			if (anyTier -> classInfo == classIntervalTier) {
 				IntervalTier tier = (IntervalTier) anyTier;
 				autoTextInterval interval = TextInterval_create (tmin, tmax, U"");
-				tier -> intervals. addItem_move (interval.move());
+				Collection_addItem (tier -> intervals, interval.transfer());
 			}
 		}
 		my xmin = xmin;
@@ -493,44 +483,40 @@ void TextGrid_extendTime (TextGrid me, double extra_time, int position) {
 
 void TextGrid_setTierName (TextGrid me, long itier, const char32 *newName) {
 	try {
-		long ntiers = my tiers->size;
-		if (itier < 1 || itier > ntiers) {
-			Melder_throw (U"Tier number (", itier, U") should not be larger than the number of tiers (", ntiers, U").");
-		}
-		Thing_setName (my tiers->at [itier], newName);
+		long ntiers = my tiers -> size;
+
+		if (itier < 1 || itier > ntiers) Melder_throw (U"Tier number (", itier, U") should not be "
+			        U"larger than the number of tiers (", ntiers, U").");
+		Thing_setName ( (Thing) my tiers -> item [itier], newName);
 	} catch (MelderError) {
 		Melder_throw (me, U": tier name not set.");
 	}
 }
 
 static void IntervalTier_cutInterval (IntervalTier me, long index, int extend_option) {
-	long size_pre = my intervals.size;
+	long size_pre = my intervals -> size;
 
-	// There always must be at least one interval
+	/* There always must be at least one interval */
 	if (size_pre == 1 || index > size_pre || index < 1) {
 		return;
 	}
 
-	TextInterval ti = my intervals.at [index];
+	TextInterval ti = (TextInterval) my intervals -> item[index];
 	double xmin = ti -> xmin;
 	double xmax = ti -> xmax;
-	my intervals. removeItem (index);
-	if (index == 1) { 
-		// Change xmin of the new first interval.
-		ti = my intervals.at [index];
+	Collection_removeItem (my intervals, index);
+	if (index == 1) { // Change xmin of the new first interval.
+		ti = (TextInterval) my intervals -> item[index];
 		ti -> xmin = xmin;
-	} else if (index == size_pre) { 
-		// Change xmax of the new last interval.
-		ti = my intervals.at [my intervals.size];
+	} else if (index == size_pre) { // Change xmax of the new last interval.
+		ti = (TextInterval) my intervals -> item[my intervals -> size];
 		ti -> xmax = xmax;
 	} else {
-		if (extend_option == 0) { 
-			// extend earlier interval to the right
-			ti = my intervals.at [index - 1];
+		if (extend_option == 0) { // extend earlier interval to the right
+			ti = (TextInterval) my intervals -> item[index - 1];
 			ti -> xmax = xmax;
-		} else {
-			// extend next interval to the left
-			ti = my intervals.at [index];
+		} else { // extend next interval to the left
+			ti = (TextInterval) my intervals -> item[index];
 			ti -> xmin = xmin;
 		}
 	}
@@ -538,113 +524,113 @@ static void IntervalTier_cutInterval (IntervalTier me, long index, int extend_op
 
 void IntervalTier_removeBoundariesBetweenIdenticallyLabeledIntervals (IntervalTier me, const char32 *label) {
     try {
-		for (long iinterval = my intervals.size; iinterval > 1; iinterval --) {
-			TextInterval thisInterval = my intervals.at [iinterval];
-			if (Melder_equ (thisInterval -> text, label)) {
-				TextInterval previousInterval = my intervals.at [iinterval - 1];
-				if (Melder_equ (previousInterval -> text, label)) {
-					Melder_free (previousInterval -> text);
-					IntervalTier_removeLeftBoundary (me, iinterval);
-				}
-			}
-		}
-	} catch (MelderError) {
-		Melder_throw (me, U": boundaries not removed.");
-	}
+        for (long iint = my intervals -> size; iint > 1; iint--) {
+            TextInterval ti = (TextInterval) my intervals -> item[iint];
+            if (Melder_equ (ti -> text, label)) {
+                TextInterval tim1 = (TextInterval) my intervals -> item[iint - 1];
+                if (Melder_equ (tim1 -> text, label)) {
+                    Melder_free (tim1 -> text);
+                    IntervalTier_removeLeftBoundary (me, iint);
+                }
+            }
+        }
+    } catch (MelderError) {
+        Melder_throw (me, U": boundaries not removed.");
+    }
 }
 
 void IntervalTier_cutIntervals_minimumDuration (IntervalTier me, const char32 *label, double minimumDuration) {
-	long iinterval = 1;
-	while (iinterval <= my intervals.size) {
-		TextInterval interval = my intervals.at [iinterval];
-		if ((! label || (interval -> text && str32equ (interval -> text, label))) &&
-			interval -> xmax - interval -> xmin < minimumDuration)
-		{
-			IntervalTier_cutInterval (me, iinterval, 0);
+	long i = 1;
+	while (i <= my intervals -> size) {
+		TextInterval ti = (TextInterval) my intervals -> item[i];
+		if ( (label == 0 || (ti -> text != 0 && str32equ (ti -> text, label))) &&
+		        ti -> xmax - ti -> xmin < minimumDuration) {
+			IntervalTier_cutInterval (me, i, 0);
 		} else {
-			iinterval ++;
+			i++;
 		}
 	}
 }
 
 void IntervalTier_cutIntervalsOnLabelMatch (IntervalTier me, const char32 *label) {
-	long iinterval = 1;
-	while (iinterval < my intervals.size) {
-		TextInterval thisInterval = my intervals.at [iinterval];
-		TextInterval nextInterval = my intervals.at [iinterval + 1];
-		if ( (! label || (thisInterval -> text && str32equ (thisInterval -> text, label))) &&
-			Melder_equ (thisInterval -> text, nextInterval -> text))
-		{
-			IntervalTier_cutInterval (me, iinterval, 1);
+	long i = 1;
+	while (i < my intervals -> size) {
+		TextInterval ti = (TextInterval) my intervals -> item[i];
+		TextInterval tip1 = (TextInterval) my intervals -> item[i + 1];
+		if ( (label == 0 || (ti -> text != 0 && str32equ (ti -> text, label))) &&
+		        (Melder_cmp (ti -> text, tip1 -> text) == 0)) {
+
+			IntervalTier_cutInterval (me, i, 1);
 		} else {
-			iinterval ++;
+			i++;
 		}
 	}
 }
 
-void IntervalTier_changeLabels (IntervalTier me, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches) {
+void IntervalTier_changeLabels (I, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches) {
+	iam (IntervalTier);
 	try {
 		if (from == 0) {
 			from = 1;
 		}
 		if (to == 0) {
-			to = my intervals.size;
+			to = my intervals -> size;
 		}
-		if (from > to || from < 1 || to > my intervals.size) {
+		if (from > to || from < 1 || to > my intervals -> size) {
 			Melder_throw (U"Incorrect specification of where to act.");
 		}
-		if (use_regexp && str32len (search) == 0) {
-			Melder_throw (U"The regex search string cannot be empty.\nYou may search for an empty string with the expression \"^$\"");
-		}
+		if (use_regexp && str32len (search) == 0) Melder_throw (U"The regex search string cannot be empty.\n"
+			        U"You may search for an empty string with the expression \"^$\"");
 
 		long nlabels = to - from + 1;
 		autoNUMvector<char32 *> labels (1, nlabels);
 
-		for (long i = from; i <= to; i ++) {
-			TextInterval interval = my intervals.at [i];
+		for (long i = from; i <= to; i++) {
+			TextInterval interval = (TextInterval) my intervals -> item[i];
 			labels[i - from + 1] = interval -> text;   // Shallow copy.
 		}
 		autostring32vector newlabels (strs_replace (labels.peek(), 1, nlabels, search, replace, 0, nmatches, nstringmatches, use_regexp), 1, nlabels);
 
-		for (long i = from; i <= to; i ++) {
-			TextInterval interval = my intervals.at [i];
+		for (long i = from; i <= to; i++) {
+			TextInterval interval = (TextInterval) my intervals -> item[i];
 			Melder_free (interval -> text);
-			interval -> text = newlabels [i - from + 1];   // Transfer of ownership.
-			newlabels [i - from + 1] = nullptr;
+			interval -> text = newlabels[i - from + 1];   // Transfer of ownership.
+			newlabels[i - from + 1] = 0;
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": labels not changed.");
 	}
 }
 
-void TextTier_changeLabels (TextTier me, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches) {
+void TextTier_changeLabels (I, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches) {
+	iam (TextTier);
 	try {
 		if (from == 0) {
 			from = 1;
 		}
 		if (to == 0) {
-			to = my points.size;
+			to = my points -> size;
 		}
-		if (from > to || from < 1 || to > my points.size) {
+		if (from > to || from < 1 || to > my points -> size) {
 			Melder_throw (U"Incorrect specification of where to act.");
 		}
-		if (use_regexp && str32len (search) == 0) {
-			Melder_throw (U"The regex search string cannot be empty.\nYou may search for an empty string with the expression \"^$\"");
-		}
+		if (use_regexp && str32len (search) == 0) Melder_throw (U"The regex search string cannot be empty.\n"
+			        U"You may search for an empty string with the expression \"^$\"");
+
 		long nmarks = to - from + 1;
-		autoNUMvector<char32 *> marks (1, nmarks);   // a non-owning vector of strings
+		autoNUMvector<char32 *> marks (1, nmarks);
 
-		for (long i = from; i <= to; i ++) {
-			TextPoint point = my points.at [i];
-			marks [i - from + 1] = point -> mark;   // reference copy
+		for (long i = from; i <= to; i++) {
+			TextPoint point = (TextPoint) my points -> item[i];
+			marks[i - from + 1] = point -> mark;   // Shallow copy.
 		}
-		autostring32vector newMarks (strs_replace (marks.peek(), 1, nmarks, search, replace, 0, nmatches, nstringmatches, use_regexp), 1, nmarks);
+		autostring32vector newmarks (strs_replace (marks.peek(), 1, nmarks, search, replace, 0, nmatches, nstringmatches, use_regexp), 1, nmarks);
 
-		for (long i = from; i <= to; i ++) {
-			TextPoint point = my points.at [i];
-			Melder_free (point -> mark);   // this discards the original mark, and dangles its reference copy in `marks`, which will not be used
-			point -> mark = newMarks [i - from + 1];   // move the new mark; this consists of a copy from A to B...
-			newMarks [i - from + 1] = nullptr;   // ...followed by zeroing A
+		for (long i = from; i <= to; i++) {
+			TextPoint point = (TextPoint) my points -> item[i];
+			Melder_free (point -> mark);
+			point -> mark = newmarks[i - from + 1];   // Transfer of ownership.
+			newmarks[i - from + 1] = 0;
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": no labels changed.");
@@ -653,18 +639,17 @@ void TextTier_changeLabels (TextTier me, long from, long to, const char32 *searc
 
 void TextGrid_changeLabels (TextGrid me, int tier, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches) {
 	try {
-		long ntiers = my tiers->size;
-		if (tier < 1 || tier > ntiers) {
-			Melder_throw (U"The tier number (", tier, U") should not be larger than the number of tiers (", ntiers, U").");
-		}
-		if (use_regexp && str32len (search) == 0) {
-			Melder_throw (U"The regex search string cannot be empty.\nYou may search for an empty string with the expression \"^$\"");
-		}
-		Function anyTier = my tiers->at [tier];
+		long ntiers = my tiers -> size;
+
+		if (tier < 1 || tier > ntiers) Melder_throw (U"The tier number (", tier, U") should not be "
+			        U"larger than the number of tiers (", ntiers, U").");
+		if (use_regexp && str32len (search) == 0) Melder_throw (U"The regex search string cannot be empty.\n"
+			        U"You may search for an empty string with the expression \"^$\"");
+		Data anyTier = (Data) my tiers -> item [tier];
 		if (anyTier -> classInfo == classIntervalTier) {
-			IntervalTier_changeLabels ((IntervalTier) anyTier, from, to, search, replace, use_regexp, nmatches, nstringmatches);
+			IntervalTier_changeLabels (anyTier, from, to, search, replace, use_regexp, nmatches, nstringmatches);
 		} else {
-			TextTier_changeLabels ((TextTier) anyTier, from, to, search, replace, use_regexp, nmatches, nstringmatches);
+			TextTier_changeLabels (anyTier, from, to, search, replace, use_regexp, nmatches, nstringmatches);
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": labels not changed.");
@@ -672,12 +657,11 @@ void TextGrid_changeLabels (TextGrid me, int tier, long from, long to, const cha
 }
 
 static void IntervalTier_checkStartAndEndTime (IntervalTier me) {
-	Melder_assert (my intervals.size > 0);
-	TextInterval ti = my intervals.at [1];
+	TextInterval ti = (TextInterval) my intervals -> item[1];
 	if (my xmin != ti -> xmin) {
 		Melder_throw (me, U": start time of first interval doesn't match start time of the tier.");
 	}
-	ti = my intervals.at [my intervals.size];
+	ti = (TextInterval) my intervals -> item[my intervals -> size];
 	if (my xmax != ti -> xmax) {
 		Melder_throw (me, U": end time of last interval doesn't match end time of the tier.");
 	}
@@ -693,12 +677,12 @@ void IntervalTiers_append_inline (IntervalTier me, IntervalTier thee, bool prese
 		if (preserveTimes && my xmax < thy xmin) {
 			autoTextInterval connection = TextInterval_create (my xmax, thy xmin, U"");
             xmax_previous = thy xmin;
-			my intervals. addItem_move (connection.move());
+			Collection_addItem (my intervals, connection.transfer());
 		}
-		for (long iint = 1; iint <= thy intervals.size; iint ++) {
-			autoTextInterval ti = Data_copy (thy intervals.at [iint]);
+		for (long iint = 1; iint <= thy intervals -> size; iint++) {
+			autoTextInterval ti = (TextInterval) Data_copy ((Data) thy intervals -> item[iint]);
 			if (preserveTimes) {
-				my intervals. addItem_move (ti.move());
+				Collection_addItem (my intervals, ti.transfer());
 			} else {
 				/* the interval could be so short that if we test ti -> xmin < ti->xmax it might be true
 				 * but after assigning ti->xmin = xmax_previous and ti->xmax += time_shift the test
@@ -710,7 +694,7 @@ void IntervalTiers_append_inline (IntervalTier me, IntervalTier thee, bool prese
 				volatile double xmax = ti -> xmax + time_shift;
 				if (xmin < xmax) {
 					ti -> xmin = xmin; ti -> xmax = xmax;
-					my intervals. addItem_move (ti.move());
+					Collection_addItem (my intervals, ti.transfer());
 					xmax_previous = xmax;
 				}
 				// else don't include interval
@@ -725,12 +709,12 @@ void IntervalTiers_append_inline (IntervalTier me, IntervalTier thee, bool prese
 // Precondition: if (preserveTimes) { my xmax <= thy xmin }
 void TextTiers_append_inline (TextTier me, TextTier thee, bool preserveTimes) {
 	try {
-		for (long iint = 1; iint <= thy points.size; iint ++) {
-			autoTextPoint tp = Data_copy (thy points.at [iint]);
+		for (long iint = 1; iint <= thy points -> size; iint++) {
+			autoTextPoint tp = (TextPoint) Data_copy ((Data) thy points -> item[iint]);
 			if (not preserveTimes) {
 				tp -> number += my xmax - thy xmin;
 			}
-			my points. addItem_move (tp.move());
+			Collection_addItem (my points, tp.transfer());
 		}
 		my xmax = preserveTimes ? thy xmax : my xmax + (thy xmax - thy xmin);
 	} catch (MelderError) {
@@ -739,8 +723,8 @@ void TextTiers_append_inline (TextTier me, TextTier thee, bool preserveTimes) {
 }
 
 static void TextGrid_checkStartAndEndTimesOfTiers (TextGrid me) {
-	for (long itier = 1; itier <= my tiers->size; itier ++) {
-		Function tier = my tiers->at [itier];
+	for (long itier = 1; itier <= my tiers -> size; itier++) {
+		Function tier = (Function) my tiers -> item[itier];
 		if (tier -> xmin != my xmin) {
 			Melder_throw (me, U": the start time of tier ", itier, U" does not match the start time of its TextGrid.");
 		} else if (tier -> xmax != my xmax) {
@@ -752,8 +736,8 @@ static void TextGrid_checkStartAndEndTimesOfTiers (TextGrid me) {
 void TextGrids_append_inline (TextGrid me, TextGrid thee, bool preserveTimes)
 {
 	try {
-		if (my tiers->size != thy tiers->size) {
-			Melder_throw (U"The numbers of tiers must be equal.");
+		if (my tiers -> size != thy tiers -> size) {
+			Melder_throw (U"The number of tiers must be equal.");
 		}
 		if (preserveTimes && thy xmin < my xmax) {
 			Melder_throw (U"The start time of the second TextGrid can't be earlier than the end time of the first one if you want to preserve times.");
@@ -763,14 +747,14 @@ void TextGrids_append_inline (TextGrid me, TextGrid thee, bool preserveTimes)
 		TextGrid_checkStartAndEndTimesOfTiers (thee);
 		// last intervals must have the same end time
 		double xmax = preserveTimes ? thy xmax : my xmax + (thy xmax - thy xmin);
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			Function myTier = my tiers->at [itier], thyTier = thy tiers->at [itier];
+		for (long itier = 1; itier <= my tiers -> size; itier++) {
+			Function myTier = my tier (itier), thyTier = thy tier (itier);
 			if (myTier -> classInfo == classIntervalTier && thyTier -> classInfo == classIntervalTier) {
 				IntervalTier  myIntervalTier = static_cast <IntervalTier>  (myTier);
 				IntervalTier thyIntervalTier = static_cast <IntervalTier> (thyTier);
 				IntervalTiers_append_inline (myIntervalTier, thyIntervalTier, preserveTimes);
                 // make sure last interval has correct end time
-                TextInterval lastInterval = myIntervalTier -> intervals.at [myIntervalTier -> intervals.size];
+                TextInterval lastInterval = myIntervalTier -> interval (myIntervalTier -> numberOfIntervals());
                 lastInterval -> xmax = xmax;
                 Melder_assert (lastInterval -> xmax > lastInterval -> xmin);
 			} else if (myTier -> classInfo == classTextTier && thyTier -> classInfo == classTextTier) {
@@ -789,17 +773,16 @@ void TextGrids_append_inline (TextGrid me, TextGrid thee, bool preserveTimes)
 	}
 }
 
-autoTextGrid TextGrids_to_TextGrid_appendContinuous (OrderedOf<structTextGrid>* me, bool preserveTimes) {
+TextGrid TextGrids_to_TextGrid_appendContinuous (Collection me, bool preserveTimes) {
 	try {
-		Melder_assert (my size > 0);
-		autoTextGrid thee = Data_copy (my at [1]);
-		for (long igrid = 2; igrid <= my size; igrid ++) {
-			TextGrids_append_inline (thee.get(), my at [igrid], preserveTimes);
+		autoTextGrid thee = Data_copy ((TextGrid) my item[1]);
+		for (long igrid = 2; igrid <= my size; igrid++) {
+			TextGrids_append_inline (thee.peek(), (TextGrid) my item[igrid], preserveTimes);
 		}
 		if (! preserveTimes) {
-			Function_shiftXBy (thee.get(), -thy xmin);
+			Function_shiftXBy (thee.peek(), -thy xmin);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"No aligned TextGrid created from Collection.");
 	}
diff --git a/dwtools/TextGrid_extensions.h b/dwtools/TextGrid_extensions.h
index d660faa..7bc953e 100644
--- a/dwtools/TextGrid_extensions.h
+++ b/dwtools/TextGrid_extensions.h
@@ -2,7 +2,7 @@
 #define _TextGrid_extensions_h_
 /* TextGrid_extensions.h
  *
- * Copyright (C) 1993-2012, 2015 David Weenink
+ * Copyright (C) 1993-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 
 #include "TextGrid.h"
 
-autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile);
+TextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile);
 /*
 	Read TIMIT label file with the following structure:
 		samplenumber1 samplenumber2 label1
@@ -41,7 +41,7 @@ autoTextGrid TextGrid_readFromTIMITLabelFile (MelderFile file, int phnFile);
 	frequency of 16000 Hz is assumed.
 */
 
-autoDaata TextGrid_TIMITLabelFileRecognizer (int nread, const char *header, MelderFile file);
+Any TextGrid_TIMITLabelFileRecognizer (int nread, const char *header, MelderFile file);
 /*
 	There are two types of TIMIT label files. One with phonetic labels, these
 	files have '.phn' as file extension. The other contains word labels and has
@@ -61,7 +61,7 @@ autoDaata TextGrid_TIMITLabelFileRecognizer (int nread, const char *header, Meld
 		A valid word is a string with contains the lowercase characters [a-z] and ['].
 */
 
-autoTextGrid TextGrids_merge (TextGrid grid1, TextGrid grid2);
+TextGrid TextGrids_merge (TextGrid grid1, TextGrid grid2);
 /*
 	Merge two textGrids.
 	The new domain will be:
@@ -79,47 +79,40 @@ void TextGrid_extendTime (TextGrid me, double delta_time, int position);
 
 void TextGrid_setTierName (TextGrid me, long itier, const char32 *newName);
 
-void TextTier_changeLabels (TextTier me, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches);
+void TextTier_changeLabels (I, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches);
 
-void IntervalTier_changeLabels (IntervalTier me, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches);
+void IntervalTier_changeLabels (I, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches);
 
 void IntervalTier_removeBoundariesBetweenIdenticallyLabeledIntervals (IntervalTier me, const char32 *label);
 
 void IntervalTier_cutIntervalsOnLabelMatch (IntervalTier me, const char32 *label);
-
 void IntervalTier_cutIntervals_minimumDuration (IntervalTier me, const char32 *label, double minimumDuration);
 
 void TextGrid_changeLabels (TextGrid me, int tier, long from, long to, const char32 *search, const char32 *replace, int use_regexp, long *nmatches, long *nstringmatches);
 
 /* Set the start/end time to a smaller/larger value.
- * If mark is null, only times are changed
- * If mark != null, mark the previous start/end time
+ * If mark is NULL, only times are changed
+ * If mark != NULL mark the previous start/end time
  *    For a TextTier this involves adding a point with the marker
  *    For an IntervalTier this involves adding a new interval
  */
 void IntervalTier_setLaterEndTime (IntervalTier me, double xmax, const char32 *mark);
-
 void IntervalTier_setEarlierStartTime (IntervalTier me, double xmin, const char32 *mark);
 
 void IntervalTier_moveBoundary (IntervalTier me, long interval, bool atStart, double newTime);
-
 void TextTier_setLaterEndTime (TextTier me, double xmax, const char32 *mark);
-
 void TextTier_setEarlierStartTime (TextTier me, double xmin, const char32 *mark);
-
 void TextGrid_setEarlierStartTime (TextGrid me, double xmin, const char32 *imark, const char32 *pmark);
-
 void TextGrid_setLaterEndTime (TextGrid me, double xmax, const char32 *imark, const char32 *pmark);
 
 
 // Precondition: if (preserveTimes) { my xmax <= thy xmin }
 // Postcondition: my xmin preserved
 void IntervalTiers_append_inline (IntervalTier me, IntervalTier thee, bool preserveTimes);
-
 void TextTiers_append_inline (TextTier me, TextTier thee, bool preserveTimes);
-
 void TextGrids_append_inline (TextGrid me, TextGrid thee, bool preserveTimes);
 
-autoTextGrid TextGrids_to_TextGrid_appendContinuous (OrderedOf<structTextGrid>* me, bool preserveTimes);
+// Postcondition:
+TextGrid TextGrids_to_TextGrid_appendContinuous (Collection me, bool preserveTimes);
 
 #endif /* _TextGrid_extensions_h_ */
diff --git a/dwtools/VowelEditor.cpp b/dwtools/VowelEditor.cpp
index 23eefb4..cf491b1 100644
--- a/dwtools/VowelEditor.cpp
+++ b/dwtools/VowelEditor.cpp
@@ -1,6 +1,6 @@
 /* VowelEditor.cpp
  *
- * Copyright (C) 2008-2013, 2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2008-2013 David Weenink, 2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -71,10 +71,10 @@ trajectory --> path ????
 #include <time.h>
 
 #if defined (macintosh)
-	#include <sys/time.h>
+#include <sys/time.h>
 #elif defined (linux)
-	#include <sys/time.h>
-	#include <signal.h>
+#include <sys/time.h>
+#include <signal.h>
 #endif
 
 Thing_implement (VowelEditor, Editor, 0);
@@ -104,8 +104,57 @@ Thing_implement (VowelEditor, Editor, 0);
 // maximum number of marks
 #define VowelEditor_MAXIMUM_MARKERS 30
 
-static struct structVowelEditor_F0 f0default { 140.0, 0.0, 40.0, 2000.0, SAMPLING_FREQUENCY, 1, 0.0, 2000 };
-static struct structVowelEditor_F1F2Grid griddefault { 200.0, 500.0, 0, 1, 0, 1, 0.5 };
+// prototypes: button callbacks
+static void gui_button_cb_publish (I, GuiButtonEvent event);
+static void gui_button_cb_play (I, GuiButtonEvent event);
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event);
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event);
+static void gui_button_cb_reverse (I, GuiButtonEvent event);
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event);
+//  prototypes: helpers
+static double getRealFromTextWidget (GuiText me);
+static double getCoordinate (double fmin, double fmax, double f);
+static double getF0 (structVowelEditor_F0 *f0p, double time);
+static void checkF1F2 (VowelEditor me, double *f1, double *f2);
+static void checkF0 (structVowelEditor_F0 *f0p, double *f0);
+static void	checkXY (double *x, double *y);
+static void Sound_fadeIn (Sound me, double duration, int fromFirstNonZeroSample);
+static void Sound_fadeOut (Sound me, double duration);
+static void PitchTier_newDuration (PitchTier me, structVowelEditor_F0 *f0p, double newDuration);
+static void FormantTier_newDuration (FormantTier me, double newDuration);
+static void FormantTier_drawF1F2Trajectory (FormantTier me, Graphics g, double f1min, double f1max, double f2min, double f2max, double markTraceEvery, double width);
+static FormantGrid FormantTier_to_FormantGrid (FormantTier me);
+static PitchTier VowelEditor_to_PitchTier (VowelEditor me, double duration);
+static void VowelEditor_updateF0Info (VowelEditor me);
+static void VowelEditor_updateExtendDuration (VowelEditor me);
+static double VowelEditor_updateDurationInfo (VowelEditor me);
+static void VowelEditor_Vowel_updateTiers (VowelEditor me, Vowel thee, double time, double x, double y);
+static void VowelEditor_Vowel_addData (VowelEditor me, Vowel thee, double time, double f1, double f2, double f0);
+static void VowelEditor_getXYFromF1F2 (VowelEditor me, double f1, double f2, double *x, double *y);
+static void VowelEditor_getF1F2FromXY (VowelEditor me, double x, double y, double *f1, double *f2);
+static void VowelEditor_updateVowel (VowelEditor me);
+static Sound VowelEditor_createTarget (VowelEditor me);
+static void VowelEditor_Vowel_reverseFormantTier (VowelEditor me);
+static void VowelEditor_shiftF1F2 (VowelEditor me, double f1_st, double f2_st);
+static void VowelEditor_setSource (VowelEditor me);
+static void VowelEditor_setMarks (VowelEditor me, int marksDataset, int speakerType, int fontSize);
+static void VowelEditor_setF3F4 (VowelEditor me, double f3, double b3, double f4, double b4);
+static void VowelEditor_getF3F4 (VowelEditor me, double f1, double f2, double *f3, double *b3, double *f4, double *b4);
+static void VowelEditor_getVowelMarksFromTableFile (VowelEditor me, MelderFile file);
+static void VowelEditor_createTableFromVowelMarksInPreferences (VowelEditor me);
+static void Table_addColumn_size (Table me, int size);
+static double Matrix_getValue (Matrix me, double x, double y);
+static void VowelEditor_drawBackground (VowelEditor me, Graphics g);
+static void createPersistentVowelMarks ();
+static void copyVowelMarksInPreferences_volatile (Table me);
+static Vowel Vowel_create (double duration);
+static Vowel Vowel_create_twoFormantSchwa (double duration);
+static void Vowel_newDuration (Vowel me, structVowelEditor_F0 *f0p, double newDuration);
+static Sound Vowel_to_Sound_pulses (Vowel me, double samplingFrequency, double adaptFactor, double adaptTime, long interpolationDepth);
+// forward declarations end
+
+static struct structVowelEditor_F0 f0default = { 140.0, 0.0, 40.0, 2000.0, SAMPLING_FREQUENCY, 1, 0.0, 2000 };
+static struct structVowelEditor_F1F2Grid griddefault = { 200, 500, 0, 1, 0, 1, 0.5 };
 
 #include "oo_DESTROY.h"
 #include "Vowel_def.h"
@@ -126,7 +175,7 @@ static struct structVowelEditor_F1F2Grid griddefault { 200.0, 500.0, 0, 1, 0, 1,
 #include "oo_DESCRIPTION.h"
 #include "Vowel_def.h"
 
-#pragma mark - preferences
+// Preferences structs
 
 struct markInfo {
 	double f1, f2;
@@ -136,7 +185,7 @@ struct markInfo {
 
 static struct {
 	int shellWidth, shellHeight;
-	bool soundFollowsMouse;
+	int soundFollowsMouse;
 	double f1min, f1max, f2min, f2max;
 	double f3, b3, f4, b4;
 	double markTraceEvery, extendDuration;
@@ -146,102 +195,73 @@ static struct {
 	char32 mark[VowelEditor_MAXIMUM_MARKERS][Preferences_STRING_BUFFER_SIZE];
 } prefs;
 
-void VowelEditor_prefs () {
-	Preferences_addInt (U"VowelEditor.shellWidth", &prefs.shellWidth, 500);
-	Preferences_addInt (U"VowelEditor.shellHeight", &prefs.shellHeight, 500);
-	Preferences_addBool (U"VowelEditor.soundFollowsMouse", &prefs.soundFollowsMouse, true);
-	Preferences_addDouble (U"VowelEditor.f1min", &prefs.f1min, 200.0);
-	Preferences_addDouble (U"VowelEditor.f1max", &prefs.f1max, 1200.0);
-	Preferences_addDouble (U"VowelEditor.f2min", &prefs.f2min, 500.0);
-	Preferences_addDouble (U"VowelEditor.f2max", &prefs.f2max, 3500.0);
-	Preferences_addDouble (U"VowelEditor.f3", &prefs.f3, 2500.0);
-	Preferences_addDouble (U"VowelEditor.b3", &prefs.b3, 250.0);
-	Preferences_addDouble (U"VowelEditor.f4", &prefs.f4, 3500.0);
-	Preferences_addDouble (U"VowelEditor.b4", &prefs.b4, 350.0);
-	Preferences_addDouble (U"VowelEditor.markTraceEvery", &prefs.markTraceEvery, 0.05);
-	Preferences_addDouble (U"VowelEditor.extendDuration", &prefs.extendDuration, 0.05);
-	Preferences_addInt (U"VowelEditor.frequencyScale", &prefs.frequencyScale, 0);
-	Preferences_addInt (U"VowelEditor.axisOrientation", &prefs.axisOrientation, 0);
-	Preferences_addInt (U"VowelEditor.speakerType", &prefs.speakerType, 1);
-	Preferences_addInt (U"VowelEditor.marksDataset", &prefs.marksDataset, 2);
-	Preferences_addInt (U"VowelEditor.marksFontsize", &prefs.marksFontSize, 14);
-	Preferences_addInt (U"VowelEditor.numberOfMarks", &prefs.numberOfMarks, 12);   // 12 is the number of vowels in the default (Dutch) marksDataset
-	/*
-	 * We don't know how many markers there will be, so the prefs file needs to have the maximum number.
-	 */
-	for (long i = 1; i <= VowelEditor_MAXIMUM_MARKERS; i++) {
-		Preferences_addString (Melder_cat (U"VowelEditor.mark", (i < 10 ? U"0" : U""), i), & prefs.mark[i-1][0], U"x");
-	}
-}
-
-#pragma mark - class Vowel
 
 Thing_implement (Vowel, Function, 0);
 
-static autoVowel Vowel_create (double duration) {
+static Vowel Vowel_create (double duration) {
 	try {
 		autoVowel me = Thing_new (Vowel);
-		Function_init (me.get(), 0.0, duration);
-		my ft = FormantTier_create (0.0, duration);
-		my pt = PitchTier_create (0.0, duration);
-		return me;
+		Function_init (me.peek(), 0, duration);
+		my ft = FormantTier_create (0, duration);
+		my pt = PitchTier_create (0, duration);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Vowel not created.");
 	}
 }
 
-static autoVowel Vowel_create_twoFormantSchwa (double duration) {
+static Vowel Vowel_create_twoFormantSchwa (double duration) {
 	try {
 		autoVowel me = Vowel_create (duration);
-		autoFormantPoint fp = FormantPoint_create (0.0);
-		fp -> formant [0] = 500.0;
-		fp -> bandwidth[0] = 50.0;
-		fp -> formant [1] = 1500.0;
-		fp -> bandwidth[1] = 150.0;
+		autoFormantPoint fp =  FormantPoint_create (0);
+		fp -> formant [0] = 500;
+		fp -> bandwidth[0] = 50;
+		fp -> formant [1] = 1500;
+		fp -> bandwidth[1] = 150;
 		fp -> numberOfFormants = 2;
-		my ft -> points. addItem_move (fp.move());
-		RealTier_addPoint (my pt.get(), 0.0, 140.0);
-
-		fp = FormantPoint_create (duration);
-		fp -> formant [0] = 500.0;
-		fp -> bandwidth[0] = 50.0;
-		fp -> formant [1] = 1500.0;
-		fp -> bandwidth[1] = 150.0;
+		Collection_addItem (my ft -> points, fp.transfer());
+		RealTier_addPoint (my pt, 0, 140);
+
+		fp.reset (FormantPoint_create (duration));
+		fp -> formant [0] = 500;
+		fp -> bandwidth[0] = 50;
+		fp -> formant [1] = 1500;
+		fp -> bandwidth[1] = 150;
 		fp -> numberOfFormants = 2;
-		my ft -> points. addItem_move (fp.move());
-		RealTier_addPoint (my pt.get(), duration, 140.0);
-		return me;
+		Collection_addItem (my ft -> points, fp.transfer());
+		RealTier_addPoint (my pt, duration, 140);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Schwa Vowel not created");
 	}
 }
 
-static autoSound Vowel_to_Sound_pulses (Vowel me, double samplingFrequency, double adaptFactor, double adaptTime, long interpolationDepth) {
+static Sound Vowel_to_Sound_pulses (Vowel me, double samplingFrequency, double adaptFactor, double adaptTime, long interpolationDepth) {
 	try {
-		autoPointProcess pp = PitchTier_to_PointProcess (my pt.get());
-		autoSound thee = PointProcess_to_Sound_pulseTrain (pp.get(), samplingFrequency, adaptFactor, adaptTime, interpolationDepth);
-		Sound_FormantTier_filter_inline (thee.get(), my ft.get());
-		return thee;
+		autoPointProcess pp = PitchTier_to_PointProcess (my pt);
+		autoSound thee = PointProcess_to_Sound_pulseTrain (pp.peek(), samplingFrequency, adaptFactor, adaptTime, interpolationDepth);
+		Sound_FormantTier_filter_inline (thee.peek(), my ft);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Sound with pulses not created.");
 	}
 }
 
-static autoFormantGrid FormantTier_to_FormantGrid (FormantTier me) {
+static FormantGrid FormantTier_to_FormantGrid (FormantTier me) {
 	try {
 		long numberOfFormants = FormantTier_getMaxNumFormants (me);
 		autoFormantGrid thee = FormantGrid_createEmpty (my xmin, my xmax, numberOfFormants);
-		for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-			FormantPoint fp = my points.at [ipoint];
-			double t = fp -> number;
+		for (long ipoint = 1; ipoint <= my points -> size; ipoint++) {
+			FormantPoint fp = (FormantPoint) my points -> item[ipoint];
+			double t = fp -> time;
 			for (long iformant = 1; iformant <= fp -> numberOfFormants; iformant++) {
-				FormantGrid_addFormantPoint (thee.get(), iformant, t, fp -> formant[iformant - 1]);
-				FormantGrid_addBandwidthPoint (thee.get(), iformant, t, fp -> bandwidth[iformant - 1]);
+				FormantGrid_addFormantPoint (thee.peek(), iformant, t, fp -> formant[iformant - 1]);
+				FormantGrid_addBandwidthPoint (thee.peek(), iformant, t, fp -> bandwidth[iformant - 1]);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": no FormantGrid created.");
+		Melder_throw (me, U": no FormantGrod created.");
 	}
 }
 
@@ -252,8 +272,8 @@ static void VowelEditor_getXYFromF1F2 (VowelEditor me, double f1, double f2, dou
 
 //Graphics_DCtoWC ????
 static void VowelEditor_getF1F2FromXY (VowelEditor me, double x, double y, double *f1, double *f2) {
-	*f2 = my f2min * pow (my f2max / my f2min, 1.0 - x);
-	*f1 = my f1min * pow (my f1max / my f1min, 1.0 - y);
+	*f2 = my f2min * pow (my f2max / my f2min, 1 - x);
+	*f1 = my f1min * pow (my f1max / my f1min, 1 - y);
 }
 
 #define REPRESENTNUMBER(x,i) (((x) == NUMundefined) ? U" undef" : Melder_pad (6, Melder_fixed (x, 1)))
@@ -265,7 +285,7 @@ static double getRealFromTextWidget (GuiText me) {
 	double value = NUMundefined;
 	char32 *dirty = GuiText_getString (me);
 	try {
-		Interpreter_numericExpression (nullptr, dirty, & value);
+		Interpreter_numericExpression (NULL, dirty, & value);
 	} catch (MelderError) {
 		Melder_clearError (); value = NUMundefined;
 	}
@@ -273,64 +293,13 @@ static double getRealFromTextWidget (GuiText me) {
 	return value;
 }
 
-static void checkF1F2 (VowelEditor me, double *f1, double *f2) {
-	if (*f1 < my f1min) {
-		*f1 = my f1min;
-	}
-	if (*f1 > my f1max) {
-		*f1 = my f1max;
-	}
-	if (*f2 < my f2min) {
-		*f2 = my f2min;
-	}
-	if (*f2 > my f2max) {
-		*f1 = my f2max;
-	}
-}
-
-static void checkF0 (structVowelEditor_F0 *f0p, double *f0) {
-	if (! NUMdefined (*f0)) {
-		*f0 = f0p -> start;
-	}
-	if (*f0 > f0p -> maximum) {
-		*f0 = f0p -> maximum;
-	}
-	if (*f0 < f0p -> minimum) {
-		*f0 = f0p -> minimum;
-	}
-}
-
-static void	checkXY (double *x, double *y) {
-	if (*x < 0.0) {
-		*x = 0.0;
-	} else if (*x > 1.0) {
-		*x = 1.0;
-	}
-	if (*y < 0.0) {
-		*y = 0.0;
-	} else if (*y > 1.0) {
-		*y = 1.0;
-	}
-}
-
-static double Matrix_getValue (Matrix me, double /* x */, double /* y */) {
-	return my z[1][1];
-}
-
-static void VowelEditor_getF3F4 (VowelEditor me, double f1, double f2, double *f3, double *b3, double *f4, double *b4) {
-	*f3 = Matrix_getValue (my f3.get(), f2, f1);
-	*b3 = Matrix_getValue (my b3.get(), f2, f1);
-	*f4 = Matrix_getValue (my f4.get(), f2, f1);
-	*b4 = Matrix_getValue (my b4.get(), f2, f1);
-}
-
 static void VowelEditor_updateF0Info (VowelEditor me) {
 	double f0 = getRealFromTextWidget (my f0TextField);
 	checkF0 (&my f0, &f0);
 	GuiText_setString (my f0TextField, Melder_double (f0));
 	my f0.start = f0;
 	double slopeOctPerSec = getRealFromTextWidget (my f0SlopeTextField);
-	if (! NUMdefined (slopeOctPerSec)) {
+	if (slopeOctPerSec == NUMundefined) {
 		slopeOctPerSec = f0default.slopeOctPerSec;
 	}
 	my f0.slopeOctPerSec = slopeOctPerSec;
@@ -339,7 +308,7 @@ static void VowelEditor_updateF0Info (VowelEditor me) {
 
 static void VowelEditor_updateExtendDuration (VowelEditor me) {
 	double extend = getRealFromTextWidget (my extendTextField);
-	if (! NUMdefined (extend) || extend <= MINIMUM_SOUND_DURATION || extend > my maximumDuration) {
+	if (extend == NUMundefined || extend <= MINIMUM_SOUND_DURATION || extend > my maximumDuration) {
 		extend = MINIMUM_SOUND_DURATION;
 	}
 	GuiText_setString (my extendTextField, Melder_double (extend));
@@ -348,7 +317,7 @@ static void VowelEditor_updateExtendDuration (VowelEditor me) {
 
 static double VowelEditor_updateDurationInfo (VowelEditor me) {
 	double duration = getRealFromTextWidget (my durationTextField);
-	if (! NUMdefined (duration) || duration < MINIMUM_SOUND_DURATION) {
+	if (duration == NUMundefined || duration < MINIMUM_SOUND_DURATION) {
 		duration = MINIMUM_SOUND_DURATION;
 	}
 	GuiText_setString (my durationTextField, Melder_double (MICROSECPRECISION (duration)));
@@ -368,9 +337,9 @@ static void Sound_fadeIn (Sound me, double duration, int fromFirstNonZeroSample)
 		// 1. They have no offset
 		// 2. They are already scaled to a maximum amplitude of 0.99
 		// 3. For 16 bit precision
-		double zmin = 0.5 / pow (2.0, 16.0);
+		double zmin = 0.5 / pow (2, 16);
 		while (fabs (my z[1][istart]) < zmin && istart < my nx) {
-			my z[1][istart] = 0.0; // To make sure
+			my z[1][istart] = 0; // To make sure
 			istart++;
 		}
 	}
@@ -381,7 +350,7 @@ static void Sound_fadeIn (Sound me, double duration, int fromFirstNonZeroSample)
 	for (long i = 1; i <= numberOfSamples; i++) {
 		double phase = NUMpi * (i - 1) / (numberOfSamples - 1);
 
-		my z[1][istart + i - 1] *= 0.5 * (1.0 - cos (phase));
+		my z[1][istart + i - 1] *= 0.5 * (1 - cos (phase));
 	}
 }
 
@@ -399,12 +368,12 @@ static void Sound_fadeOut (Sound me, double duration) {
 	for (long i = 1; i <= numberOfSamples; i++) {
 		double phase = NUMpi * (i - 1) / (numberOfSamples - 1);
 
-		my z[1][istart + i] *= 0.5 * (1.0 + cos (phase));
+		my z[1][istart + i] *= 0.5 * (1 + cos (phase));
 	}
 }
 
 static double getF0 (structVowelEditor_F0 *f0p, double time) {
-	double f0 = f0p -> start * pow (2.0, f0p -> slopeOctPerSec * time);
+	double f0 = f0p -> start * pow (2, f0p -> slopeOctPerSec * time);
 	if (f0 < f0p -> minimum) {
 		f0 = f0p -> minimum;
 	} else if (f0 > f0p -> maximum) {
@@ -414,30 +383,30 @@ static double getF0 (structVowelEditor_F0 *f0p, double time) {
 }
 
 static void VowelEditor_Vowel_reverseFormantTier (VowelEditor me) {
-	FormantTier ft = my vowel -> ft.get();
+	FormantTier ft = (FormantTier) my vowel -> ft;
 	double duration = ft -> xmax;
-	long np = ft -> points.size, np_2 = np / 2;
+	long np = ft -> points -> size, np_2 = np / 2;
 
 	for (long i = 1; i <= np_2; i++) {
-		FormantPoint fpt = ft -> points.at [i];
-		ft -> points.at [i] = ft -> points.at [np - i + 1];
-		ft -> points.at [np - i + 1] = fpt;
-		fpt = ft -> points.at [i];
-		fpt -> number = duration - fpt -> number;
-		fpt = ft -> points.at [np - i + 1];
-		fpt -> number = duration - fpt -> number;
+		FormantPoint fpt = (FormantPoint) ft -> points -> item[i];
+		ft -> points -> item[i] =  ft -> points -> item[np - i + 1];
+		ft -> points -> item[np - i + 1] = fpt;
+		fpt = (FormantPoint) ft -> points -> item[i];
+		fpt -> time = duration - fpt -> time;
+		fpt = (FormantPoint) ft -> points -> item[np - i + 1];
+		fpt -> time = duration - fpt -> time;
 	}
 	if (np % 2 == 1) {
-		FormantPoint fpt = ft -> points.at [np_2 + 1];
-		fpt -> number = duration - fpt -> number;
+		FormantPoint fpt = (FormantPoint) ft -> points -> item[np_2 + 1];
+		fpt -> time = duration - fpt -> time;
 	}
 }
 
 static void VowelEditor_shiftF1F2 (VowelEditor me, double f1_st, double f2_st) {
-	FormantTier ft = my vowel -> ft.get();
-	for (long i = 1; i <= ft -> points.size; i ++) {
-		FormantPoint fp = ft -> points.at [i];
-		double f1 = fp -> formant [0], f2 = fp -> formant [1];
+	FormantTier ft = my vowel -> ft;
+	for (long i = 1; i <= ft -> points -> size; i++) {
+		FormantPoint fp = (FormantPoint) ft -> points -> item[i];
+		double f1 = fp -> formant[0], f2 = fp -> formant[1];
 
 		f1 *= pow (2, f1_st / 12);
 		if (f1 < my f1min) {
@@ -467,13 +436,23 @@ static void VowelEditor_shiftF1F2 (VowelEditor me, double f1_st, double f2_st) {
 	}
 }
 
+static void Vowel_newDuration (Vowel me, structVowelEditor_F0 *f0p, double newDuration) {
+	if (newDuration != my xmax) {
+		double multiplier = newDuration / my xmax;
+		FormantTier_newDuration (my ft, newDuration);
+		my xmax *= multiplier;
+	}
+	PitchTier_newDuration (my pt, f0p, newDuration); // always update
+
+}
+
 static void FormantTier_newDuration (FormantTier me, double newDuration) {
 	if (newDuration != my xmax) {
 		double multiplier = newDuration / my xmax;
 
-		for (long i = 1; i <= my points.size; i ++) {
-			FormantPoint fp = my points.at [i];
-			fp -> number *= multiplier;
+		for (long i = 1; i <= my points -> size; i++) {
+			FormantPoint fp = (FormantPoint) my points -> item[i];
+			fp -> time *= multiplier;
 		}
 		my xmax *= multiplier;
 	}
@@ -482,80 +461,51 @@ static void FormantTier_newDuration (FormantTier me, double newDuration) {
 static void PitchTier_newDuration (PitchTier me, structVowelEditor_F0 *f0p, double newDuration) {
 	// Always update; GuiObject text might have changed
 	double multiplier = newDuration / my xmax;
-	for (long i = 1; i <= my points.size; i ++) {
-		RealPoint pp = my points.at [i];
+	for (long i = 1; i <= my points -> size; i++) {
+		RealPoint pp = (RealPoint) my points -> item[i];
 		pp -> number *= multiplier;
 		pp -> value = getF0 (f0p, pp -> number);
 	}
 	my xmax *= multiplier;
 }
 
-static void Vowel_newDuration (Vowel me, structVowelEditor_F0 *f0p, double newDuration) {
-	if (newDuration != my xmax) {
-		double multiplier = newDuration / my xmax;
-		FormantTier_newDuration (my ft.get(), newDuration);
-		my xmax *= multiplier;
-	}
-	PitchTier_newDuration (my pt.get(), f0p, newDuration);   // always update
-}
-
 static void VowelEditor_updateVowel (VowelEditor me) {
 	double newDuration = VowelEditor_updateDurationInfo (me); // Get new duration from TextWidget
-	VowelEditor_updateF0Info (me);   // get new pitch and slope values from TextWidgets
-	Vowel_newDuration (my vowel.get(), & my f0, newDuration);
+	VowelEditor_updateF0Info (me); // Get new pitch and slope values from TextWidgets
+	Vowel_newDuration (my vowel, & my f0, newDuration);
 }
 
 static double getCoordinate (double fmin, double fmax, double f) {
 	return log (f / fmax) / log (fmin / fmax);
 }
 
-static autoSound VowelEditor_createTarget (VowelEditor me) {
-	try {
-		VowelEditor_updateVowel (me);   // update pitch and duration
-		autoSound thee = Vowel_to_Sound_pulses (my vowel.get(), 44100.0, 0.7, 0.05, 30);
-		Vector_scale (thee.get(), 0.99);
-		Sound_fadeIn (thee.get(), 0.005, 1);
-		Sound_fadeOut (thee.get(), 0.005);
-		return thee;
-	} catch (MelderError) {
-		Melder_throw (U"Target Sound not created.");
-	}
-}
-
 #define GETX(x) (getCoordinate (f2min, f2max, x))
 #define GETY(y) (getCoordinate (f1min, f1max, y))
-static void FormantTier_drawF1F2Trajectory (FormantTier me, Graphics g, double f1min, double f1max, double f2min, double f2max, double markTraceEvery, double width) {
 // Our FormantTiers always have a FormantPoint at t=xmin and t=xmax;
-	Melder_assert (my points.size >= 2);
-
+static void FormantTier_drawF1F2Trajectory (FormantTier me, Graphics g, double f1min, double f1max, double f2min, double f2max, double markTraceEvery, double width) {
 	int it, imark = 1, glt = Graphics_inqLineType (g);
 	double glw = Graphics_inqLineWidth (g), x1, x1p, y1, y1p, t1;
 	Graphics_Colour colour = Graphics_inqColour (g);
-	long nfp = my points.size;
+	long nfp = my points -> size;
 	trace (U"number of points ", nfp);
-	FormantPoint fp = my points.at [1];
-	FormantPoint fpn = my points.at [nfp];
+	FormantPoint fp = (FormantPoint) my points -> item[1];
+	FormantPoint fpn = (FormantPoint) my points -> item[nfp];
 	double tm, markLength = 0.01;
 
 	Graphics_setInner (g);
-	Graphics_setWindow (g, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (g, 0, 1, 0, 1);
 	Graphics_setLineType (g, Graphics_DRAWN);
 	// Too short too hear ?
 	if ( (my xmax - my xmin) < 0.005) {
 		Graphics_setColour (g, Graphics_RED);
 	}
-	x1p = x1 = GETX (fp -> formant [1]);
-	y1p = y1 = GETY (fp -> formant [0]);
-	t1 = fp -> number;
-	for (it = 2; it <= nfp; it ++) {
-		fp = my points.at [it];
-		double x2 = GETX (fp -> formant [1]);
-		double y2 = GETY (fp -> formant [0]);
-		double t2 = fp -> number;
+	x1p = x1 = GETX (fp->formant[1]); y1p = y1 = GETY (fp->formant[0]); t1 = fp->time;
+	for (it = 2; it <= nfp; it++) {
+		fp = (FormantPoint) my points -> item[it];
+		double x2 = GETX (fp->formant[1]), y2 = GETY (fp->formant[0]), t2 = fp->time;
 		Graphics_setLineWidth (g, 3);
 		if (x1 == x2 && y1 == y2) {
-			x1 = x1p;
-			y1 = y1p;
+			x1 = x1p; y1 = y1p;
 		} else {
 			Graphics_line (g, x1, y1, x2, y2);
 		}
@@ -563,50 +513,45 @@ static void FormantTier_drawF1F2Trajectory (FormantTier me, Graphics g, double f
 			// line orthogonal to y = (y1/x1)*x is y = -(x1/y1)*x
 			double fraction = (tm - t1) / (t2 - t1);
 			double dx = x2 - x1, dy = y2 - y1;
-			double xm = x1 + fraction * dx;
-			double ym = y1 + fraction * dy;
+			double xm = x1 + fraction * dx, ym = y1 + fraction * dy;
 			double d = sqrt (dx * dx + dy * dy);
 			if (d > 0.0) {
 				double xl1 = dy * markLength / d, xl2 = - xl1;
 				double yl1 = dx * markLength / d, yl2 = - yl1;
 
-				if (dx * dy > 0.0) {
-					xl1 = -fabs (xl1);
-					yl1 = fabs (yl1);
-					xl2 = fabs (xl1);
-					yl2 = -fabs (yl1);
-				} else if (dx * dy < 0.0) {
-					xl1 = -fabs (xl1);
-					yl1 = -fabs (yl1);
-					xl2 = fabs (xl1);
-					yl2 = fabs (yl1);
+				if (dx * dy > 0) {
+					xl1 = -fabs (xl1); yl1 = fabs (yl1);
+					xl2 = fabs (xl1); yl2 = -fabs (yl1);
+				} else if (dx * dy < 0) {
+					xl1 = -fabs (xl1); yl1 = -fabs (yl1);
+					xl2 = fabs (xl1); yl2 = fabs (yl1);
 				}
 				Graphics_setLineWidth (g, 1);
 				trace (xm, U" ", ym, U" ", xl1, U" ", xl2, U" ", yl1, U" ", yl2);
 				Graphics_line (g, xm + xl1, ym + yl1, xm + xl2, ym + yl2);
 			}
-			imark ++;
+			imark++;
 		}
 		x1p = x1; y1p = y1;
 		x1 = x2; y1 = y2; t1 = t2;
 	}
 	// Arrow at end
 	{
-		double gas = Graphics_inqArrowSize (g), arrowSize = 1.0;
+		double gas = Graphics_inqArrowSize (g), arrowSize = 1;
 		double size = 10.0 * arrowSize * Graphics_getResolution (g) / 75.0 / width, size2 = size * size;
 		Graphics_setArrowSize (g, arrowSize);
 		it = 1;
 		while (it <= (nfp - 1)) {
-			fp = my points.at [nfp - it];
-			double dx = GETX (fpn -> formant [1]) - GETX (fp -> formant [1]);
-			double dy = GETY (fpn -> formant [0]) - GETY (fp -> formant [0]);
+			fp = (FormantPoint) my points -> item[nfp - it];
+			double dx = GETX (fpn->formant[1]) - GETX (fp->formant[1]);
+			double dy = GETY (fpn->formant[0]) - GETY (fp->formant[0]);
 			double d2 = dx * dx + dy * dy;
 			if (d2 > size2) {
 				break;
 			}
-			it ++;
+			it++;
 		}
-		Graphics_arrow (g, GETX (fp -> formant [1]), GETY (fp -> formant [0]), GETX (fpn -> formant [1]), GETY (fpn -> formant [0]));
+		Graphics_arrow (g, GETX (fp->formant[1]), GETY (fp->formant[0]), GETX (fpn->formant[1]), GETY (fpn->formant[0]));
 		Graphics_setArrowSize (g, gas);
 	}
 	Graphics_unsetInner (g);
@@ -617,8 +562,55 @@ static void FormantTier_drawF1F2Trajectory (FormantTier me, Graphics g, double f
 #undef GETX
 #undef GETY
 
+static PitchTier VowelEditor_to_PitchTier (VowelEditor me, double duration) {
+	try {
+		double t_end = duration;
+		double f0_end = my f0.start * pow (2, my f0.slopeOctPerSec * t_end);
+		autoPitchTier thee = PitchTier_create (0, t_end);
+
+		RealTier_addPoint (thee.peek(), 0, my f0.start);
+		if (my f0.slopeOctPerSec < 0) {
+			if (f0_end < my f0.minimum) {
+				t_end = log2 (my f0.minimum / my f0.start) / my f0.slopeOctPerSec;
+				f0_end = my f0.minimum;
+			}
+		} else if (my f0.slopeOctPerSec > 0) {
+			if (f0_end > my f0.maximum) {
+				t_end = log2 (my f0.maximum / my f0.start) / my f0.slopeOctPerSec;
+				f0_end = my f0.maximum;
+			}
+		}
+		RealTier_addPoint (thee.peek(), t_end, f0_end);
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, U": no PitchTier created.");
+	}
+}
+
+void VowelEditor_prefs () {
+	Preferences_addInt (U"VowelEditor.shellWidth", &prefs.shellWidth, 500);
+	Preferences_addInt (U"VowelEditor.shellHeight", &prefs.shellHeight, 500);
+	Preferences_addInt (U"VowelEditor.soundFollowsMouse", &prefs.soundFollowsMouse, 1);
+	Preferences_addDouble (U"VowelEditor.f1min", &prefs.f1min, 200);
+	Preferences_addDouble (U"VowelEditor.f1max", &prefs.f1max, 1200);
+	Preferences_addDouble (U"VowelEditor.f2min", &prefs.f2min, 500);
+	Preferences_addDouble (U"VowelEditor.f2max", &prefs.f2max, 3500);
+	Preferences_addDouble (U"VowelEditor.f3", &prefs.f3, 2500);
+	Preferences_addDouble (U"VowelEditor.b3", &prefs.b3, 250);
+	Preferences_addDouble (U"VowelEditor.f4", &prefs.f4, 3500);
+	Preferences_addDouble (U"VowelEditor.b4", &prefs.b4, 350);
+	Preferences_addDouble (U"VowelEditor.markTraceEvery", &prefs.markTraceEvery, 0.05);
+	Preferences_addDouble (U"VowelEditor.extendDuration", &prefs.extendDuration, 0.05);
+	Preferences_addInt (U"VowelEditor.frequencyScale", &prefs.frequencyScale, 0);
+	Preferences_addInt (U"VowelEditor.axisOrientation", &prefs.axisOrientation, 0);
+	Preferences_addInt (U"VowelEditor.speakerType", &prefs.speakerType, 1);
+	Preferences_addInt (U"VowelEditor.marksDataset", &prefs.marksDataset, 2);
+	Preferences_addInt (U"VowelEditor.marksFontsize", &prefs.marksFontSize, 14);
+	createPersistentVowelMarks ();
+}
+
 static void copyVowelMarksInPreferences_volatile (Table me) {
-	long numberOfRows = prefs.numberOfMarks = my rows.size;
+	long numberOfRows = prefs.numberOfMarks = my rows -> size;
 	if (numberOfRows > 0) {
 		long col_vowel = Table_getColumnIndexFromColumnLabel (me, U"Vowel");
 		long col_f1 = Table_getColumnIndexFromColumnLabel (me, U"F1");
@@ -632,69 +624,53 @@ static void copyVowelMarksInPreferences_volatile (Table me) {
 					Table_getStringValue_Assert (me, i, col_f2), U"\t",
 					Table_getStringValue_Assert (me, i, col_size));
 				long length = str32len (mark.string);
-				if (length >= Preferences_STRING_BUFFER_SIZE) Melder_throw (U"Preference mark ", i, U" contains too many characters");
+				if (length > Preferences_STRING_BUFFER_SIZE) Melder_throw (U"Preference mark", i, U"too many characters");
 				str32cpy (prefs.mark[i-1], mark.string);
 			} else {
 				str32cpy (prefs.mark[i-1], U"x");
 			}
 		}
+		// The following code removes the superfluous mark preferences,
+		// *if* we had access to the thePreferences set (but we don't)
+		// autoMelderString markID;
+		// for (long i = VowelEditor_MAXIMUM_MARKERS; i > numberOfRows; i--) {
+		//		MelderString_copy (&markID, U"VowelEditor.mark", (i < 10 ? U"0" : U""), i);
+		//		long index = SortedSetOfString_lookUp (thePreferences, markID.string);
+		//		Collection_removeItem (thePreferences, index);
+		// }
 	}
 }
 
-static void Table_addColumn_size (Table me, int size) {
-	long col_size = Table_findColumnIndexFromColumnLabel (me, U"Size");
-	if (col_size == 0) {
-		Table_appendColumn (me, U"Size");
-		for (long i = 1; i <= my rows.size; i ++) {
-			Table_setNumericValue (me, i, my numberOfColumns, size);
-		}
-	}
-}
-
-static void VowelEditor_setMarks (VowelEditor me, int marksDataset, int speakerType, int fontSize) {
-	autoTable te;
-	const char32 *Type[4] = { U"", U"m", U"w", U"c" };
-	const char32 *Sex[3] = { U"", U"m", U"f"};
-	if (marksDataset == 1) {   // American-English
-		autoTable thee = Table_createFromPetersonBarneyData ();
-		te = Table_extractRowsWhereColumn_string (thee.get(), 1, kMelder_string_EQUAL_TO, Type[speakerType]);
-	} else if (marksDataset == 2) {   // Dutch
-		if (speakerType == 1 || speakerType == 2) {   // male + female from Pols van Nierop
-			autoTable thee = Table_createFromPolsVanNieropData ();
-			te = Table_extractRowsWhereColumn_string (thee.get(), 1, kMelder_string_EQUAL_TO, Sex[speakerType]);
-		} else {
-			autoTable thee = Table_createFromWeeninkData ();
-			te = Table_extractRowsWhereColumn_string (thee.get(), 1, kMelder_string_EQUAL_TO, Type[speakerType]);
-		}
-	} else if (marksDataset == 3) {   // none
-		my marks.reset();
-		return;
-	} else {   // leave as is
-		return;
+static void createPersistentVowelMarks ()
+{
+	// Deadlock:
+	// This function is executed before the preferences are read from file and before we know how
+	// many vowel marks the user wants.
+	// However, to succesfully read the preferences from file we need the names of the preferences otherwise
+	// they will not be assigned a value.
+	// We therefore create fake names first and later fill them with data.
+	long numberOfMarks = VowelEditor_MAXIMUM_MARKERS;
+	Preferences_addInt (U"VowelEditor.numberOfMarks", &prefs.numberOfMarks, numberOfMarks);
+	for (long i = 1; i <= numberOfMarks; i++) {
+		Preferences_addString (Melder_cat (U"VowelEditor.mark", (i < 10 ? U"0" : U""), i), & prefs.mark[i-1][0], U"x");
 	}
-	autoTable newMarks = Table_collapseRows (te.get(), U"IPA", U"", U"F1 F2", U"", U"", U"");
-	long col_ipa = Table_findColumnIndexFromColumnLabel (newMarks.get(), U"IPA");
-	Table_setColumnLabel (newMarks.get(), col_ipa, U"Vowel");
-	Table_addColumn_size (newMarks.get(), fontSize);
-	my marks = newMarks.move();
-	copyVowelMarksInPreferences_volatile (my marks.get());
 }
 
-static void VowelEditor_createTableFromVowelMarksInPreferences (VowelEditor me)
+void VowelEditor_createTableFromVowelMarksInPreferences (VowelEditor me)
 {
 	long numberOfRows = VowelEditor_MAXIMUM_MARKERS;
 	try {
-		autoTable newMarks = Table_createWithColumnNames (0, U"Vowel F1 F2 Size");
+		autoTable marks = Table_createWithColumnNames (0, U"Vowel F1 F2 Size");
 		long nmarksFound = 0;
 		for (long i = 1; i <= numberOfRows; i++) {
-			autoMelderTokens rowi (prefs.mark[i-1]);
-			long numberOfTokens = rowi.count();
+			long numberOfTokens;
+			autoMelderTokens rowi (prefs.mark[i-1], &numberOfTokens);
 			if (numberOfTokens < 4) { // we are done
 				break;
 			}
-			Table_appendRow (newMarks.get());
+			Table_appendRow (marks.peek());
 			for (long j = 1; j <= 4; j++) {
-				Table_setStringValue (newMarks.get(), i, j, rowi[j]);
+				Table_setStringValue (marks.peek(), i, j, rowi[j]);
 			}
 			nmarksFound++;
 		}
@@ -703,7 +679,7 @@ static void VowelEditor_createTableFromVowelMarksInPreferences (VowelEditor me)
 			my marksDataset = prefs.marksDataset = 1;
 			VowelEditor_setMarks (me, my marksDataset, my speakerType, prefs.marksFontSize);
 		} else {
-			my marks = newMarks.move();
+			my marks = marks.transfer(); // my marks == NULL;
 		}
 	} catch (MelderError) {
 		Melder_throw (U"Cannot create Table from preferences. Default marks set.");
@@ -713,22 +689,61 @@ static void VowelEditor_createTableFromVowelMarksInPreferences (VowelEditor me)
 	}
 }
 
+static void Table_addColumn_size (Table me, int size) {
+	long col_size = Table_findColumnIndexFromColumnLabel (me, U"Size");
+	if (col_size == 0) {
+		Table_appendColumn (me, U"Size");
+		for (long i = 1; i <= my rows -> size; i++) {
+			Table_setNumericValue (me, i, my numberOfColumns, size);
+		}
+	}
+}
+
+static void VowelEditor_setMarks (VowelEditor me, int marksDataset, int speakerType, int fontSize) {
+	autoTable te = 0;
+	const char32 *Type[4] = { U"", U"m", U"w", U"c" };
+	const char32 *Sex[3] = { U"", U"m", U"f"};
+	if (marksDataset == 1) { // American-English
+		autoTable thee = Table_createFromPetersonBarneyData ();
+		te.reset (Table_extractRowsWhereColumn_string (thee.peek(), 1, kMelder_string_EQUAL_TO, Type[speakerType]));
+	} else if (marksDataset == 2) { // Dutch
+		if (speakerType == 1 || speakerType == 2) { // male + female from Pols van Nierop
+			autoTable thee = Table_createFromPolsVanNieropData ();
+			te.reset (Table_extractRowsWhereColumn_string (thee.peek(), 1, kMelder_string_EQUAL_TO, Sex[speakerType]));
+		} else {
+			autoTable thee = Table_createFromWeeninkData ();
+			te.reset (Table_extractRowsWhereColumn_string (thee.peek(), 1, kMelder_string_EQUAL_TO, Type[speakerType]));
+		}
+	} else if (marksDataset == 3) { // None
+		forget (my marks);
+		return;
+	} else { // Leave as is
+		return;
+	}
+	autoTable thee = Table_collapseRows (te.peek(), U"IPA", U"", U"F1 F2", U"", U"", U"");
+	long col_ipa = Table_findColumnIndexFromColumnLabel (thee.peek(), U"IPA");
+	Table_setColumnLabel (thee.peek(), col_ipa, U"Vowel");
+	Table_addColumn_size (thee.peek(), fontSize);
+	forget (my marks);
+	my marks = thee.transfer();
+	copyVowelMarksInPreferences_volatile (my marks);
+}
+
 static void VowelEditor_getVowelMarksFromTableFile (VowelEditor me, MelderFile file)
 {
 	try {
-		autoDaata data = Data_readFromFile (file);
-		if (! Thing_isa (data.get(), classTable)) {
-			Melder_throw (U"\"", MelderFile_name (file), U"\" is not a Table file");
-		}
-		autoTable newMarks = data.static_cast_move <structTable> ();
+		autoData data =  (Data) Data_readFromFile (file);
+		if (! Thing_isa ((Thing) data.peek(), classTable)) Melder_throw (U"\"", MelderFile_name (file), U"\" is not a Table file");
+		autoTable marks = (Table) data.transfer();
 		// check if columns Vowel F1 & F2 are present
-		Table_getColumnIndexFromColumnLabel (newMarks.get(), U"Vowel");
-		Table_getColumnIndexFromColumnLabel (newMarks.get(), U"F1");
-		Table_getColumnIndexFromColumnLabel (newMarks.get(), U"F2");
-		Table_addColumn_size (newMarks.get(), prefs.marksFontSize);
-		my marks = newMarks.move();
+		Table_getColumnIndexFromColumnLabel (marks.peek(), U"Vowel");
+		Table_getColumnIndexFromColumnLabel (marks.peek(), U"F1");
+		Table_getColumnIndexFromColumnLabel (marks.peek(), U"F2");
+		Table_addColumn_size (marks.peek(), prefs.marksFontSize);
+		forget (my marks);
+		my marks = marks.transfer();
 		my marksDataset = prefs.marksDataset = 9999;
-		copyVowelMarksInPreferences_volatile (my marks.get());
+		copyVowelMarksInPreferences_volatile (my marks);
 		// our marks preferences are dynamic, save each time
 	} catch (MelderError) {
 		Melder_throw (U"Vowel marks from Table not shown.");
@@ -736,54 +751,65 @@ static void VowelEditor_getVowelMarksFromTableFile (VowelEditor me, MelderFile f
 }
 
 static void VowelEditor_setF3F4 (VowelEditor me, double f3, double b3, double f4, double b4) {
-	double xmin = my f2min, xmax = my f2max, dx = my f2max - my f2min, x1 = dx / 2.0;
+	double xmin = my f2min, xmax = my f2max, dx = my f2max - my f2min, x1 = dx / 2;
 	double dy = my f1max - my f1min, y1 = dy / 2;
 
-	if (! my f3) {
+	if (my f3 == 0) {
 		my f3 = Matrix_create (xmin, xmax, 1, dx, x1, my f1min, my f1max, 1, dy, y1);
 	}
-	if (! my b3) {
+	if (my b3 == 0) {
 		my b3 = Matrix_create (xmin, xmax, 1, dx, x1, my f1min, my f1max, 1, dy, y1);
 	}
-	if (! my f4) {
+	if (my f4 == 0) {
 		my f4 = Matrix_create (xmin, xmax, 1, dx, x1, my f1min, my f1max, 1, dy, y1);
 	}
-	if (! my b4) {
+	if (my b4 == 0) {
 		my b4 = Matrix_create (xmin, xmax, 1, dx, x1, my f1min, my f1max, 1, dy, y1);
 	}
-	my f3 -> z[1][1] = f3;
-	my b3 -> z[1][1] = b3;
-	my f4 -> z[1][1] = f4;
-	my b4 -> z[1][1] = b4;
+	my f3 -> z[1][1] = f3; my b3 -> z[1][1] = b3;
+	my f4 -> z[1][1] = f4; my b4 -> z[1][1] = b4;
+}
+
+static double Matrix_getValue (Matrix me, double x, double y) {
+	(void) x;
+	(void) y;
+	return my z[1][1];
+}
+
+static void VowelEditor_getF3F4 (VowelEditor me, double f1, double f2, double *f3, double *b3, double *f4, double *b4) {
+	*f3 = Matrix_getValue (my f3, f2, f1);
+	*b3 = Matrix_getValue (my b3, f2, f1);
+	*f4 = Matrix_getValue (my f4, f2, f1);
+	*b4 = Matrix_getValue (my b4, f2, f1);
 }
 
 static void VowelEditor_drawBackground (VowelEditor me, Graphics g) {
 	double x1, y1, x2, y2, f1, f2;
 
 	Graphics_setInner (g);
-	Graphics_setWindow (g, 0.0, 1.0, 0.0, 1.0);
-	Graphics_setGrey (g, 0.0);
+	Graphics_setWindow (g, 0, 1, 0, 1);
+	Graphics_setGrey (g, 0);
 	Graphics_setLineType (g, Graphics_DRAWN);
-	Graphics_setLineWidth (g, 2.0);
-	Graphics_rectangle (g, 0.0, 1.0, 0.0, 1.0);
-	Graphics_setLineWidth (g, 1.0);
+	Graphics_setLineWidth (g, 2);
+	Graphics_rectangle (g, 0, 1, 0, 1);
+	Graphics_setLineWidth (g, 1);
 	Graphics_setGrey (g, 0.5);
 	int fontSize = Graphics_inqFontSize (g);
 	// draw the marks
-	if (my marks) {
-		long col_vowel = Table_getColumnIndexFromColumnLabel (my marks.get(), U"Vowel");
-		long col_f1 = Table_getColumnIndexFromColumnLabel (my marks.get(), U"F1");
-		long col_f2 = Table_getColumnIndexFromColumnLabel (my marks.get(), U"F2");
-		long col_fs = Table_findColumnIndexFromColumnLabel (my marks.get(), U"Size");
-		for (long i = 1; i <= my marks -> rows.size; i ++) {
-			const char32 *label = Table_getStringValue_Assert (my marks.get(), i, col_vowel);
-			f1 = Table_getNumericValue_Assert (my marks.get(), i, col_f1);
-			f2 = Table_getNumericValue_Assert (my marks.get(), i, col_f2);
+	if (my marks != 0) {
+		long col_vowel = Table_getColumnIndexFromColumnLabel (my marks, U"Vowel");
+		long col_f1 = Table_getColumnIndexFromColumnLabel (my marks, U"F1");
+		long col_f2 = Table_getColumnIndexFromColumnLabel (my marks, U"F2");
+		long col_fs = Table_findColumnIndexFromColumnLabel (my marks, U"Size");
+		for (long i = 1; i <= my marks -> rows -> size; i++) {
+			const char32 *label = Table_getStringValue_Assert (my marks, i, col_vowel);
+			f1 = Table_getNumericValue_Assert (my marks, i, col_f1);
+			f2 = Table_getNumericValue_Assert (my marks, i, col_f2);
 			if (f1 >= my f1min && f1 <= my f1max && f2 >= my f2min && f2 <= my f2max) {
 				VowelEditor_getXYFromF1F2 (me, f1, f2, &x1, &y1);
 				int size = prefs.marksFontSize;
 				if (col_fs != 0) {
-					size = (int) floor (Table_getNumericValue_Assert (my marks.get(), i, col_fs));
+					size = (int) floor (Table_getNumericValue_Assert (my marks, i, col_fs));
 				}
 				Graphics_setFontSize (g, size);
 				Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
@@ -795,21 +821,22 @@ static void VowelEditor_drawBackground (VowelEditor me, Graphics g) {
 	// Draw the line F1=F2
 	//
 	VowelEditor_getXYFromF1F2 (me, my f2min, my f2min, &x1, &y1);
-	if (y1 >= 0.0 && y1 <= 1.0) {
+	if (y1 >= 0 && y1 <= 1) {
 		VowelEditor_getXYFromF1F2 (me, my f1max, my f1max, &x2, &y2);
-		if (x2 >= 0.0 && x2 <= 1.0) {
-			autoPolygon p = Polygon_create (3);
+		if (x2 >= 0 && x2 <= 1) {
+			Polygon p = Polygon_create (3);
 			p -> x[1] = x1; p -> y[1] = y1;
 			p -> x[2] = x2; p -> y[2] = y2;
 			p -> x[3] =  1; p -> y[3] =  0;
 			Graphics_fillArea (g, p -> numberOfPoints, & p -> x[1], & p -> y[1]);
 			// Polygon_paint does not work because of use of Graphics_setInner.
+			forget (p);
 			Graphics_line (g, x1, y1, x2, y2);
 		}
 	}
 	// Draw the grid
 	if (my grid.df1 < (my f1max - my f1min)) { // Horizontal lines
-		long iline = (my f1min + my grid.df1) / my grid.df1;   // FIXME: if truncating down is deliberate, then do `floor`
+		long iline = (my f1min + my grid.df1) / my grid.df1;
 		Graphics_setGrey (g, 0.5);
 		Graphics_setLineType (g, Graphics_DOTTED);
 		while ( (f1 = iline * my grid.df1) < my f1max) {
@@ -821,10 +848,10 @@ static void VowelEditor_drawBackground (VowelEditor me, Graphics g) {
 			iline++;
 		}
 		Graphics_setLineType (g, Graphics_DRAWN);
-		Graphics_setGrey (g, 0.0); // black
+		Graphics_setGrey (g, 0); // black
 	}
 	if (my grid.df2 < (my f2max - my f2min)) {
-		long iline = (my f2min + my grid.df2) / my grid.df2;   // FIXME: if truncating down is deliberate, then do `floor`
+		long iline = (my f2min + my grid.df2) / my grid.df2;
 		Graphics_setGrey (g, 0.5);
 		Graphics_setLineType (g, Graphics_DOTTED);
 		while ( (f2 = iline * my grid.df2) < my f2max) { // vert line
@@ -836,18 +863,17 @@ static void VowelEditor_drawBackground (VowelEditor me, Graphics g) {
 			iline++;
 		}
 		Graphics_setLineType (g, Graphics_DRAWN);
-		Graphics_setGrey (g, 0.0); // black
+		Graphics_setGrey (g, 0); // black
 	}
 	Graphics_unsetInner (g);
-	Graphics_setGrey (g, 0.0); // black
-	Graphics_markLeft (g, 0.0, false, true, false, Melder_double (my f1max));
-	Graphics_markLeft (g, 1.0, false, true, false, Melder_double (my f1min));
-	Graphics_markTop (g, 0.0, false, true, false, Melder_double (my f2max));
-	Graphics_markTop (g, 1.0, false, true, false, Melder_double (my f2min));
+	Graphics_setGrey (g, 0); // black
+	Graphics_markLeft (g, 0, 0, 1, 0, Melder_double (my f1max));
+	Graphics_markLeft (g, 1, 0, 1, 0, Melder_double (my f1min));
+	Graphics_markTop (g, 0, 0, 1, 0, Melder_double (my f2max));
+	Graphics_markTop (g, 1, 0, 1, 0, Melder_double (my f2min));
 
 }
 
-#if 0
 typedef struct {
 	long some_check_value;
 	long istart;
@@ -858,41 +884,48 @@ typedef struct {
 ** that could mess up the system like calling malloc() or free().
 */
 
-static int paCallback (const void* /*inputBuffer*/, void* outputBuffer, unsigned long framesPerBuffer,
-                       const PaStreamCallbackTimeInfo* /*timeInfo*/, PaStreamCallbackFlags /*statusFlags*/, void *void_me) {
+static int paCallback (const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
+                       const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, I) {
 	iam (paVowelData);
-	float* out = (float*) outputBuffer;
+	float *out = (float *) outputBuffer;
+	unsigned int i;
+	(void) inputBuffer; /* Prevent unused variable warning. */
+	(void) timeInfo;
+	(void) statusFlags;
 
-	for (unsigned int i = 0; i < framesPerBuffer; i++) {
+	for (i = 0; i < framesPerBuffer; i++) {
 		*out++ = my z[my istart + i]; /* left */
 		*out++ = my z[my istart + i]; /* right */
 	}
 	my istart += framesPerBuffer;
 	return 0;
 }
-#endif
 
-#pragma mark - menu methods
+/********** MENU METHODS **********/
 
-static void menu_cb_help (VowelEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_help (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	(void) me;
 	Melder_help (U"VowelEditor");
 }
 
-static void menu_cb_prefs (VowelEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_prefs (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	EDITOR_FORM (U"Preferences", 0);
-		BOOLEAN (U"Sound-follows-mouse", true)
+		BOOLEAN (U"Sound-follows-mouse", 1)
 	EDITOR_OK
 		SET_INTEGER (U"Sound-follows-mouse", prefs.soundFollowsMouse)
 	EDITOR_DO
 		my frequencyScale = prefs.frequencyScale;
 		my axisOrientation = prefs.axisOrientation;
 		my soundFollowsMouse = prefs.soundFollowsMouse = GET_INTEGER (U"Sound-follows-mouse");
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_ranges_f1f2 (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"F1 (vert) and F2 (hor) view ranges", nullptr);
+static void menu_cb_ranges_f1f2 (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"F1 (vert) and F2 (hor) view ranges", 0);
 		POSITIVE (U"left F1 range (Hz)", U"200.0")
 		POSITIVE (U"right F1 range (Hz)", U"1000.0")
 		POSITIVE (U"left F2 range (Hz)", U"500.0")
@@ -909,38 +942,43 @@ static void menu_cb_ranges_f1f2 (VowelEditor me, EDITOR_ARGS_FORM) {
 		my f1max = prefs.f1max = GET_REAL (U"right F1 range");
 		my f2min = prefs.f2min = GET_REAL (U"left F2 range");
 		my f2max = prefs.f2max = GET_REAL (U"right F2 range");
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_publishSound (VowelEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_publishSound (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	autoSound publish = VowelEditor_createTarget (me);
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extract_FormantGrid (VowelEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extract_FormantGrid (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	VowelEditor_updateVowel (me);
-	autoFormantGrid publish = FormantTier_to_FormantGrid (my vowel -> ft.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoFormantGrid publish = FormantTier_to_FormantGrid (my vowel -> ft);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extract_KlattGrid (VowelEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extract_KlattGrid (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	VowelEditor_updateVowel (me);
-	autoFormantGrid fg = FormantTier_to_FormantGrid (my vowel -> ft.get());
-	autoKlattGrid publish = KlattGrid_create (fg -> xmin, fg -> xmax, fg -> formants.size, 0, 0, 0, 0, 0, 0);
-	KlattGrid_addVoicingAmplitudePoint (publish.get(), fg -> xmin, 90.0);
-	KlattGrid_replacePitchTier (publish.get(), my vowel -> pt.get());
-	KlattGrid_replaceFormantGrid (publish.get(), KlattGrid_ORAL_FORMANTS, fg.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoFormantGrid fg = FormantTier_to_FormantGrid (my vowel -> ft);
+	autoKlattGrid publish = KlattGrid_create (fg -> xmin, fg -> xmax, fg -> formants -> size, 0, 0, 0, 0, 0, 0);
+	KlattGrid_addVoicingAmplitudePoint (publish.peek(), fg -> xmin, 90);
+	KlattGrid_replacePitchTier (publish.peek(), my vowel -> pt);
+	KlattGrid_replaceFormantGrid (publish.peek(), KlattGrid_ORAL_FORMANTS, fg.peek());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extract_PitchTier (VowelEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extract_PitchTier (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	VowelEditor_updateVowel (me);
-	autoPitchTier publish = Data_copy (my vowel -> pt.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoPitchTier publish = Data_copy (my vowel -> pt);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_drawTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_drawTrajectory (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	EDITOR_FORM (U"Draw trajectory", 0)
 		my v_form_pictureWindow (cmd);
 		BOOLEAN (U"Garnish", 1)
@@ -953,12 +991,13 @@ static void menu_cb_drawTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
 		if (garnish) {
 			VowelEditor_drawBackground (me, my pictureGraphics);
 		}
-		FormantTier_drawF1F2Trajectory (my vowel -> ft.get(), my pictureGraphics, my f1min, my f1max, my f2min, my f2max, my markTraceEvery, my width);
+		FormantTier_drawF1F2Trajectory (my vowel -> ft, my pictureGraphics, my f1min, my f1max, my f2min, my f2max, my markTraceEvery, my width);
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
-static void menu_cb_showOneVowelMark (VowelEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_showOneVowelMark (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	EDITOR_FORM (U"Show one vowel mark", 0);
 		POSITIVE (U"F1 (Hz)", U"300.0")
 		POSITIVE (U"F2 (Hz)", U"600.0")
@@ -970,21 +1009,22 @@ static void menu_cb_showOneVowelMark (VowelEditor me, EDITOR_ARGS_FORM) {
 		char32 *label = GET_STRING (U"Mark");
 		if (f1 >= my f1min && f1 <= my f1max && f2 >= my f2min && f2 <= my f2max) {
 			long irow = 1;
-			if (! my marks) {
+			if (my marks == NULL) {
 				my marks = Table_createWithColumnNames (1, U"IPA F1 F2 Colour");
 			} else {
-				Table_appendRow (my marks.get());
+				Table_appendRow (my marks);
 			}
-			irow = my marks -> rows.size;
-			Table_setStringValue (my marks.get(), irow, 1, label);
-			Table_setNumericValue (my marks.get(), irow, 2, f1);
-			Table_setNumericValue (my marks.get(), irow, 3, f2);
-			Graphics_updateWs (my graphics.get());
+			irow = my marks -> rows -> size;
+			Table_setStringValue (my marks, irow, 1, label);
+			Table_setNumericValue (my marks, irow, 2, f1);
+			Table_setNumericValue (my marks, irow, 3, f2);
+			Graphics_updateWs (my g);
 		}
 	EDITOR_END
 }
 
-static void menu_cb_showVowelMarks (VowelEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_showVowelMarks (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	EDITOR_FORM (U"Show vowel marks", 0);
 		LABEL (U"note", U"")
 		OPTIONMENU (U"Data set", 1)
@@ -1006,22 +1046,22 @@ static void menu_cb_showVowelMarks (VowelEditor me, EDITOR_ARGS_FORM) {
 		my speakerType = prefs.speakerType = GET_INTEGER (U"Speaker");
 		my marksFontSize = prefs.marksFontSize = GET_INTEGER (U"Font size");
 		VowelEditor_setMarks (me, my marksDataset, my speakerType, my marksFontSize);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_showVowelMarksFromTableFile (VowelEditor me, EDITOR_ARGS_FORM) {
-	(void) narg;
-	(void) interpreter;
+static void menu_cb_showVowelMarksFromTableFile (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	EDITOR_FORM_READ (U"VowelEditor: Show vowel marks from Table file", U"VowelEditor: Show vowel marks from Table file...");
 	EDITOR_DO_READ
 		VowelEditor_getVowelMarksFromTableFile (me, file);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_setF0 (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Set F0", nullptr);
+static void menu_cb_setF0 (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Set F0", 0);
 		POSITIVE (U"Start F0 (Hz)", U"150.0")
 		REAL (U"Slope (oct/s)", U"0.0")
 	EDITOR_OK
@@ -1030,13 +1070,15 @@ static void menu_cb_setF0 (VowelEditor me, EDITOR_ARGS_FORM) {
 		checkF0 (&my f0, &f0);
 		my f0.start = f0;
 		my f0.slopeOctPerSec = GET_REAL (U"Slope");
+		VowelEditor_setSource (me);
 		GuiText_setString (my f0TextField, Melder_double (my f0.start));
 		GuiText_setString (my f0SlopeTextField, Melder_double (my f0.slopeOctPerSec));
 	EDITOR_END
 }
 
-static void menu_cb_setF3F4 (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Set F3 & F4", nullptr);
+static void menu_cb_setF3F4 (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Set F3 & F4", 0);
 		POSITIVE (U"F3 (Hz)", U"2500.0")
 		POSITIVE (U"B3 (Hz)", U"250.0")
 		POSITIVE (U"F4 (Hz)", U"3500.0")
@@ -1051,18 +1093,19 @@ static void menu_cb_setF3F4 (VowelEditor me, EDITOR_ARGS_FORM) {
 		VowelEditor_setF3F4 (me, f3, b3, f4, b4);
 	EDITOR_END
 }
-static void menu_cb_reverseTrajectory (VowelEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_reverseTrajectory (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
 	VowelEditor_Vowel_reverseFormantTier (me);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 }
 
 static void VowelEditor_Vowel_addData (VowelEditor me, Vowel thee, double time, double f1, double f2, double f0) {
 	autoFormantPoint fp = FormantPoint_create (time);
 	double f3, b3, f4, b4;
 	fp -> formant[0] = f1;
-	fp -> bandwidth[0] = f1 / 10.0;
+	fp -> bandwidth[0] = f1 / 10;
 	fp -> formant[1] = f2;
-	fp -> bandwidth[1] = f2 / 10.0;
+	fp -> bandwidth[1] = f2 / 10;
 	VowelEditor_getF3F4 (me, f1, f2, &f3, &b3, &f4, &b4);
 	fp -> formant[2] = f3;
 	fp -> bandwidth[2] = b3;
@@ -1070,12 +1113,53 @@ static void VowelEditor_Vowel_addData (VowelEditor me, Vowel thee, double time,
 	fp -> bandwidth[3] = b4;
 	fp -> numberOfFormants = 4;
 
-	thy ft -> points. addItem_move (fp.move());
-	RealTier_addPoint (thy pt.get(), time, f0);
+	Collection_addItem (thy ft -> points, fp.transfer());
+	RealTier_addPoint (thy pt, time, f0);
 }
 
-static void menu_cb_newTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"New Trajectory", nullptr);
+static void checkF1F2 (VowelEditor me, double *f1, double *f2) {
+	if (*f1 < my f1min) {
+		*f1 = my f1min;
+	}
+	if (*f1 > my f1max) {
+		*f1 = my f1max;
+	}
+	if (*f2 < my f2min) {
+		*f2 = my f2min;
+	}
+	if (*f2 > my f2max) {
+		*f1 = my f2max;
+	}
+}
+
+static void checkF0 (structVowelEditor_F0 *f0p, double *f0) {
+	if (*f0 == NUMundefined) {
+		*f0 = f0p -> start;
+	}
+	if (*f0 > f0p -> maximum) {
+		*f0 = f0p -> maximum;
+	}
+	if (*f0 < f0p -> minimum) {
+		*f0 = f0p -> minimum;
+	}
+}
+
+static void	checkXY (double *x, double *y) {
+	if (*x < 0) {
+		*x = 0;
+	} else if (*x > 1) {
+		*x = 1;
+	}
+	if (*y < 0) {
+		*y = 0;
+	} else if (*y > 1) {
+		*y = 1;
+	}
+}
+
+static void menu_cb_newTrajectory (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"New Trajectory", 0);
 		POSITIVE (U"Start F1 (Hz)", U"700.0")
 		POSITIVE (U"Start F2 (Hz)", U"1200.0")
 		POSITIVE (U"End F1 (Hz)", U"350.0")
@@ -1083,38 +1167,40 @@ static void menu_cb_newTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
 		POSITIVE (U"Duration (s)", U"0.25")
 	EDITOR_OK
 	EDITOR_DO
-		double duration = GET_REAL (U"Duration");
-		autoVowel newVowel = Vowel_create (duration);
-		double time = 0.0;
-		double f0 = getF0 (&my f0, time);
-		double f1 = GET_REAL (U"Start F1");
-		double f2 = GET_REAL (U"Start F2");
+		double f0, f1, f2, time, duration = GET_REAL (U"Duration");
+		autoVowel vowel = Vowel_create (duration);
+		time = 0;
+		f0 =  getF0 (&my f0, time);
+		f1 = GET_REAL (U"Start F1");
+		f2 = GET_REAL (U"Start F2");
 		checkF1F2 (me, &f1, &f2);
-		VowelEditor_Vowel_addData (me, newVowel.get(), time, f1, f2, f0);
+		VowelEditor_Vowel_addData (me, vowel.peek(), time, f1, f2, f0);
 		time = duration;
-		f0 = getF0 (&my f0, time);
+		f0 =  getF0 (&my f0, time);
 		f1 = GET_REAL (U"End F1");
 		f2 = GET_REAL (U"End F2");
 		checkF1F2 (me, &f1, &f2);
-		VowelEditor_Vowel_addData (me, newVowel.get(), time, f1, f2, f0);
+		VowelEditor_Vowel_addData (me, vowel.peek(), time, f1, f2, f0);
 
 		GuiText_setString (my durationTextField, Melder_double (MICROSECPRECISION (duration)));
-		my vowel = newVowel.move();
+		forget (my vowel);
+		my vowel = vowel.transfer();
 
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_extendTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Extend Trajectory", nullptr);
+static void menu_cb_extendTrajectory (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Extend Trajectory", 0);
 		POSITIVE (U"To F1 (Hz)", U"500.0")
 		POSITIVE (U"To F2 (Hz)", U"1500.0")
 		POSITIVE (U"Extra duration (s)", U"0.1")
 	EDITOR_OK
 	EDITOR_DO
-		Vowel thee = my vowel.get();
+		Vowel thee = my vowel;
 		double newDuration = thy xmax + GET_REAL (U"Extra duration");
-		double f0 = getF0 (&my f0, newDuration);
+		double f0 =  getF0 (&my f0, newDuration);
 		double f1 = GET_REAL (U"To F1");
 		double f2 = GET_REAL (U"To F2");
 		thy xmax = thy pt -> xmax = thy ft -> xmax = newDuration;
@@ -1122,12 +1208,13 @@ static void menu_cb_extendTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
 		VowelEditor_Vowel_addData (me, thee, newDuration, f1, f2, f0);
 
 		GuiText_setString (my durationTextField, Melder_double (MICROSECPRECISION (newDuration)));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_modifyTrajectoryDuration (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Modify duration", nullptr);
+static void menu_cb_modifyTrajectoryDuration (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Modify duration", 0);
 		POSITIVE (U"New duration (s)", U"0.5")
 	EDITOR_OK
 	EDITOR_DO
@@ -1135,19 +1222,21 @@ static void menu_cb_modifyTrajectoryDuration (VowelEditor me, EDITOR_ARGS_FORM)
 	EDITOR_END
 }
 
-static void menu_cb_shiftTrajectory (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Shift trajectory", nullptr);
+static void menu_cb_shiftTrajectory (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Shift trajectory", 0);
 		REAL (U"F1 (semitones)", U"0.5")
 		REAL (U"F2 (semitones)", U"0.5")
 	EDITOR_OK
 	EDITOR_DO
 		VowelEditor_shiftF1F2 (me, GET_REAL (U"F1"), GET_REAL (U"F2"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-static void menu_cb_showTrajectoryTimeMarksEvery (VowelEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Show trajectory time marks every", nullptr);
+static void menu_cb_showTrajectoryTimeMarksEvery (EDITOR_ARGS) {
+	EDITOR_IAM (VowelEditor);
+	EDITOR_FORM (U"Show trajectory time marks every", 0);
 		REAL (U"Distance (s)", U"0.05")
 	EDITOR_OK
 		SET_REAL (U"Distance", my markTraceEvery)
@@ -1156,40 +1245,50 @@ static void menu_cb_showTrajectoryTimeMarksEvery (VowelEditor me, EDITOR_ARGS_FO
 		if (my markTraceEvery < 0) {
 			my markTraceEvery = 0;
 		}
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 	EDITOR_END
 }
 
-#pragma mark - button methods
+/********** BUTTON METHODS **********/
 
-static void gui_button_cb_play (VowelEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_play (I, GuiButtonEvent event) {
+	(void) event;
+	iam (VowelEditor);
 	autoSound thee = VowelEditor_createTarget (me);
-	Sound_play (thee.get(), nullptr, nullptr);
-	Graphics_updateWs (my graphics.get());
+	Sound_play (thee.peek(), 0, 0);
+	Graphics_updateWs (my g);
 }
 
-static void gui_button_cb_publish (VowelEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_publish (I, GuiButtonEvent event) {
+	(void) event;
+	iam (VowelEditor);
 	autoSound publish = VowelEditor_createTarget (me);
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void gui_button_cb_reverse (VowelEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_reverse (I, GuiButtonEvent event) {
+	(void) event;
+	iam (VowelEditor);
+
 	VowelEditor_Vowel_reverseFormantTier (me);
-	struct structGuiButtonEvent play_event { 0 };
-	gui_button_cb_play (me, & play_event);
+	struct structGuiButtonEvent play_event = { 0 };
+	gui_button_cb_play (me, &play_event);
 }
 
-static void gui_drawingarea_cb_expose (VowelEditor me, GuiDrawingArea_ExposeEvent /* event */) {
-	Melder_assert (me);
-	Melder_assert (my vowel);
+/* Main drawing routine: it's been called after every call to Graphics_updateWs (g) */
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (VowelEditor);
+	Melder_assert (me != NULL);
+	(void) event;
+	Melder_assert (my vowel != NULL);
 	double ts = my vowel -> xmin, te = my vowel -> xmax;
-	FormantTier ft = my vowel -> ft.get();
-	Melder_assert (ft);
+	FormantTier ft = (FormantTier) my vowel -> ft;
+	Melder_assert (ft != NULL);
 	static MelderString statusInfo { 0 };
-	if (! my graphics) {
-		return;   // could be the case in the very beginning
+	if (my g == 0) {
+		return;    // Could be the case in the very beginning.
 	}
-	Graphics_clearWs (my graphics.get());
+	Graphics_clearWs (my g);
 
 	appendF1F2F0 (&statusInfo, STATUSINFO_STARTINTR0, FormantTier_getValueAtTime (ft, 1, ts),
 	              FormantTier_getValueAtTime (ft, 2, ts), getF0 (&my f0, ts), STATUSINFO_ENDING);
@@ -1201,33 +1300,49 @@ static void gui_drawingarea_cb_expose (VowelEditor me, GuiDrawingArea_ExposeEven
 	GuiLabel_setText (my endInfo, statusInfo.string);
 	MelderString_empty (&statusInfo);
 
-	Graphics_setGrey (my graphics.get(), 0.9);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setInner (my graphics.get());
-	Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setGrey (my graphics.get(), 1.0);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_unsetInner (my graphics.get());
-	Graphics_setGrey (my graphics.get(), 0.0);
-
-	VowelEditor_drawBackground (me, my graphics.get());
-	Melder_assert (me);
-	Melder_assert (my vowel);
-	Melder_assert (my vowel -> ft);
-	FormantTier_drawF1F2Trajectory (my vowel -> ft.get(), my graphics.get(), my f1min, my f1max, my f2min, my f2max, my markTraceEvery, my width);
-}
-
-static void gui_drawingarea_cb_resize (VowelEditor me, GuiDrawingArea_ResizeEvent event) {
-	Melder_assert (me);
-	if (! my graphics) {
-		return;   // could be the case in the very beginning
+	Graphics_setGrey (my g, 0.9);
+	Graphics_fillRectangle (my g, 0, 1, 0, 1);
+	Graphics_setInner (my g);
+	Graphics_setWindow (my g, 0, 1, 0, 1);
+	Graphics_setGrey (my g, 1);
+	Graphics_fillRectangle (my g, 0, 1, 0, 1);
+	Graphics_unsetInner (my g);
+	Graphics_setGrey (my g, 0);
+
+	VowelEditor_drawBackground (me, my g);
+	Melder_assert (me != NULL);
+	Melder_assert (my vowel != NULL);
+	Melder_assert (my vowel -> ft != NULL);
+	FormantTier_drawF1F2Trajectory (my vowel -> ft, my g, my f1min, my f1max, my f2min, my f2max, my markTraceEvery, my width);
+}
+
+static void gui_drawingarea_cb_resize__ (I, GuiDrawingAreaResizeEvent event) {
+	iam (VowelEditor);
+	(void) me;
+	(void) event;
+	if (me == NULL || my g == NULL) {
+		return;
 	}
-	Graphics_setWsViewport (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
+	my width  = GuiControl_getWidth  (my drawingArea);
+	my height = GuiControl_getHeight (my drawingArea);
+	Graphics_setWsViewport (my g, 0, my width , 0, my height);
+	Graphics_setWsWindow (my g, 0, my width, 0, my height);
+	Graphics_setViewport (my g, 0, my width, 0, my height);
+	Graphics_updateWs (my g);
+}
+
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (VowelEditor);
+	Melder_assert (me != NULL);
+	if (my g == NULL) {
+		return;    // Could be the case in the very beginning.
+	}
+	Graphics_setWsViewport (my g, 0, event -> width, 0, event -> height);
 	my width = event -> width;
 	my height = event -> height;
-	Graphics_setWsWindow (my graphics.get(), 0.0, my width, 0.0, my height);
-	Graphics_setViewport (my graphics.get(), 0.0, my width, 0.0, my height);
-	Graphics_updateWs (my graphics.get());
+	Graphics_setWsWindow (my g, 0, my width, 0, my height);
+	Graphics_setViewport (my g, 0, my width, 0, my height);
+	Graphics_updateWs (my g);
 
 	/* Save the current shell size as the user's preference for a new VowelEditor. */
 
@@ -1236,6 +1351,7 @@ static void gui_drawingarea_cb_resize (VowelEditor me, GuiDrawingArea_ResizeEven
 }
 
 static void VowelEditor_Vowel_updateTiers (VowelEditor me, Vowel thee, double time, double x, double y) {
+	double f3, b3, f4, b4;
 	if (time > thy xmax) {
 		thy xmax = time;
 		thy ft -> xmax = time;
@@ -1245,51 +1361,52 @@ static void VowelEditor_Vowel_updateTiers (VowelEditor me, Vowel thee, double ti
 	autoFormantPoint point = FormantPoint_create (time);
 
 	VowelEditor_getF1F2FromXY (me, x, y, &f1, &f2);
-	double f3, b3, f4, b4;
 	VowelEditor_getF3F4 (me, f1, f2, &f3, &b3, &f4, &b4);
 
 	point -> formant[0] = f1;
-	point -> bandwidth[0] = f1 / 10.0;
+	point -> bandwidth[0] = f1 / 10;
 	point -> formant[1] = f2;
-	point -> bandwidth[1] = f2 / 10.0;
+	point -> bandwidth[1] = f2 / 10;
 	point -> formant[2] = f3;
 	point -> bandwidth[2] = b3;
 	point -> formant[3] = f4;
 	point -> bandwidth[3] = b4;
 	point -> numberOfFormants = 4;
-	thy ft -> points. addItem_move (point.move());
-	RealTier_addPoint (thy pt.get(), time, f0);
+	Collection_addItem (thy ft -> points, point.transfer());
+	RealTier_addPoint (thy pt, time, f0);
 }
 
 // shift key always extends what already is.
 // Special case : !soundFollowsMouse. The first click just defines the vowel's first f1f2-position,
-static void gui_drawingarea_cb_click (VowelEditor me, GuiDrawingArea_ClickEvent event) {
-	Vowel thee = nullptr; autoVowel athee;
-	double x, y, xb, yb, tb, t, dt = 0.0;
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (VowelEditor);
+	(void) event;
+	Vowel thee = 0; autoVowel athee = 0;
+	double x, y, xb, yb, tb, t, dt = 0;
 	double t0 = Melder_clock ();
 	long iskipped = 0;
-	struct structGuiButtonEvent gb_event { 0 };
-	Graphics_setInner (my graphics.get());
+	struct structGuiButtonEvent gb_event = { 0 };
+	Graphics_setInner (my g);
 
-	Graphics_getMouseLocation (my graphics.get(), & x, & y);
+	Graphics_getMouseLocation (my g, & x, & y);
 	checkXY (&x, &y);
 
 	if (event -> shiftKeyPressed) {
 		VowelEditor_updateExtendDuration (me);
 		(my shiftKeyPressed) ++;
-		thee = my vowel.get();
+		thee = my vowel;
 		dt = thy xmax + my extendDuration;
-		t = 0.0 + dt;
+		t = 0 + dt;
 		VowelEditor_Vowel_updateTiers (me, thee, t, x, y);
 		GuiText_setString (my durationTextField, Melder_double (t));
 		if (! my soundFollowsMouse) {
 			goto end;
 		}
 	} else {
-		t = 0.0;
+		t = 0;
 		my shiftKeyPressed = 0;
-		athee = Vowel_create (MINIMUM_SOUND_DURATION);
-		thee = athee.get();
+		athee.reset (Vowel_create (MINIMUM_SOUND_DURATION));
+		thee = athee.peek();
 		VowelEditor_Vowel_updateTiers (me, thee, t, x, y);
 		GuiText_setString (my durationTextField, Melder_double (t));
 		if (! my soundFollowsMouse) {
@@ -1298,11 +1415,11 @@ static void gui_drawingarea_cb_click (VowelEditor me, GuiDrawingArea_ClickEvent
 		}
 	}
 
-	Graphics_xorOn (my graphics.get(), Graphics_BLUE);
-	while (Graphics_mouseStillDown (my graphics.get())) {
+	Graphics_xorOn (my g, Graphics_BLUE);
+	while (Graphics_mouseStillDown (my g)) {
 		xb = x, yb = y, tb = t;
 		t = Melder_clock () - t0 + dt; // Get relative time in seconds from the clock
-		Graphics_getMouseLocation (my graphics.get(), & x, & y);
+		Graphics_getMouseLocation (my g, & x, & y);
 		checkXY (&x, &y);
 		// If the new point equals the previous one: no tier update
 		if (xb == x && yb == y) {
@@ -1314,7 +1431,7 @@ static void gui_drawingarea_cb_click (VowelEditor me, GuiDrawingArea_ClickEvent
 			VowelEditor_Vowel_updateTiers (me, thee, tb, xb, yb);
 		}
 		iskipped = 0;
-		Graphics_line (my graphics.get(), xb, yb, x, y);
+		Graphics_line (my g, xb, yb, x, y);
 
 		VowelEditor_Vowel_updateTiers (me, thee, t, x, y);
 		GuiText_setString (my durationTextField, Melder_double (MICROSECPRECISION (t)));
@@ -1328,38 +1445,48 @@ static void gui_drawingarea_cb_click (VowelEditor me, GuiDrawingArea_ClickEvent
 	GuiText_setString (my durationTextField, Melder_double (MICROSECPRECISION (t)));
 	VowelEditor_Vowel_updateTiers (me, thee, t, x, y);
 
-	Graphics_xorOff (my graphics.get());
+	Graphics_xorOff (my g);
 
 end:
-	Graphics_unsetInner (my graphics.get());
+	Graphics_unsetInner (my g);
 
-	if (! my shiftKeyPressed) {
-		my vowel = athee.move();
+	if (my shiftKeyPressed == 0) {
+		forget (my vowel);
+		my vowel = athee.transfer();
 	}
-	Melder_assert (! athee);
 	gui_button_cb_play (me, & gb_event);
 }
 
-#if 0
-static void gui_drawingarea_cb_key (VowelEditor /* me */, GuiDrawingArea_KeyEvent /* event */) {
+static void gui_drawingarea_cb_key (I, GuiDrawingAreaKeyEvent event) {
+	iam (VowelEditor);
+	(void) me;
+	(void) event;
 }
-#endif
 
-static void cb_publish (Editor /*editor*/, autoDaata publish) {
+static void cb_publish (Editor editor, void *closure, Data publish) {
+	(void) editor;
+	(void) closure;
 	try {
-		praat_new (publish.move(), U"");
+		praat_new (publish, U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 		praat_updateSelection ();
 	} catch (MelderError) {
 		Melder_flushError ();
 	}
 }
 
-static void updateWidgets (void *void_me) {
+static void updateWidgets (I) {
 	iam (VowelEditor);
 	(void) me;
 }
 
-void structVowelEditor :: v_destroy () noexcept {
+void structVowelEditor :: v_destroy () {
+	forget (g);
+	forget (marks);
+	forget (source);
+	forget (target);
+	forget (vowel);
+	forget (f3); forget (b3);
+	forget (f4); forget (b4);
 	VowelEditor_Parent :: v_destroy ();
 }
 
@@ -1368,30 +1495,30 @@ void structVowelEditor :: v_createMenus () {
 
 	Editor_addMenu (this, U"View", 0);
 	Editor_addCommand (this, U"File", U"Preferences...", 0, menu_cb_prefs);
-	Editor_addCommand (this, U"File", U"-- publish data --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- publish data --", 0, NULL);
 	Editor_addCommand (this, U"File", U"Publish Sound", 0, menu_cb_publishSound);
 	Editor_addCommand (this, U"File", U"Extract KlattGrid", 0, menu_cb_extract_KlattGrid);
 	Editor_addCommand (this, U"File", U"Extract FormantGrid", 0, menu_cb_extract_FormantGrid);
 	Editor_addCommand (this, U"File", U"Extract PitchTier", 0, menu_cb_extract_PitchTier);
-	Editor_addCommand (this, U"File", U"-- drawing --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- drawing --", 0, NULL);
 	Editor_addCommand (this, U"File", U"Draw trajectory...", 0, menu_cb_drawTrajectory);
-	Editor_addCommand (this, U"File", U"-- scripting --", 0, nullptr);
-	Editor_addCommand (this, U"Edit", U"-- f0 --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- scripting --", 0, NULL);
+	Editor_addCommand (this, U"Edit", U"-- f0 --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Set F0...", 0, menu_cb_setF0);
 	Editor_addCommand (this, U"Edit", U"Set F3 & F4...", 0, menu_cb_setF3F4);
-	Editor_addCommand (this, U"Edit", U"-- trajectory commands --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- trajectory commands --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Reverse trajectory", 0, menu_cb_reverseTrajectory);
 	Editor_addCommand (this, U"Edit", U"Modify trajectory duration...", 0, menu_cb_modifyTrajectoryDuration);
 	Editor_addCommand (this, U"Edit", U"New trajectory...", 0, menu_cb_newTrajectory);
 	Editor_addCommand (this, U"Edit", U"Extend trajectory...", 0, menu_cb_extendTrajectory);
 	Editor_addCommand (this, U"Edit", U"Shift trajectory...", 0, menu_cb_shiftTrajectory);
 	Editor_addCommand (this, U"View", U"F1 & F2 range...", 0, menu_cb_ranges_f1f2);
-	Editor_addCommand (this, U"View", U"--show vowel marks--", 0, nullptr);
+	Editor_addCommand (this, U"View", U"--show vowel marks--", 0, NULL);
 	Editor_addCommand (this, U"View", U"Show one vowel mark...", Editor_HIDDEN, menu_cb_showOneVowelMark);
 	Editor_addCommand (this, U"View", U"Show vowel marks...", Editor_HIDDEN, menu_cb_showVowelMarks);
 	Editor_addCommand (this, U"View", U"Show vowel marks from fixed set...", 0, menu_cb_showVowelMarks);
 	Editor_addCommand (this, U"View", U"Show vowel marks from Table file...", 0, menu_cb_showVowelMarksFromTableFile);
-	Editor_addCommand (this, U"View", U"--show trajectory time marks--", 0, nullptr);
+	Editor_addCommand (this, U"View", U"--show trajectory time marks--", 0, NULL);
 	Editor_addCommand (this, U"View", U"Show trajectory time marks every...", 0, menu_cb_showTrajectoryTimeMarksEvery);
 }
 
@@ -1451,24 +1578,46 @@ void structVowelEditor :: v_createChildren ()
 	//drawingArea = GuiDrawingArea_createShown (d_windowForm, 0, 0, Machine_getMenuBarHeight (), -MARGIN_BOTTOM,
 	//	gui_drawingarea_cb_expose, gui_drawingarea_cb_click, gui_drawingarea_cb_key, gui_drawingarea_cb_resize, this, 0);
 	drawingArea = GuiDrawingArea_createShown (d_windowForm, 0, 0, Machine_getMenuBarHeight (), -MARGIN_BOTTOM,
-		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, gui_drawingarea_cb_resize, this, 0);
+		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, gui_drawingarea_cb_resize, this, 0);
 	width  = GuiControl_getWidth  (drawingArea);
 	height = GuiControl_getHeight (drawingArea);
 }
 
-autoVowelEditor VowelEditor_create (const char32 *title, Daata data) {
+static void VowelEditor_setSource (VowelEditor me) {
+	autoPitchTier pt = VowelEditor_to_PitchTier (me, my maximumDuration);
+	autoSound thee = PitchTier_to_Sound_pulseTrain (pt.peek(), my f0.samplingFrequency, my f0.adaptFactor, my f0.adaptTime, my f0.interpolationDepth, 0);
+	if (my source != 0) {
+		forget (my source);
+	}
+	my source = thee.transfer();
+}
+//
+static Sound VowelEditor_createTarget (VowelEditor me) {
+	try {
+		VowelEditor_updateVowel (me); // update pitch and duration
+		autoSound thee = Vowel_to_Sound_pulses (my vowel, 44100, 0.7, 0.05, 30);
+		Vector_scale (thee.peek(), 0.99);
+		Sound_fadeIn (thee.peek(), 0.005, 1);
+		Sound_fadeOut (thee.peek(), 0.005);
+		return thee.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Target Sound not created.");
+	}
+}
+
+VowelEditor VowelEditor_create (const char32 *title, Data data) {
 	try {
 		trace (U"enter");
 		autoVowelEditor me = Thing_new (VowelEditor);
-		Melder_assert (me.get());
-		Editor_init (me.get(), 0, 0, prefs.shellWidth, prefs.shellHeight, title, data);
+		Melder_assert (me.peek() != NULL);
+		Editor_init (me.peek(), 0, 0, prefs.shellWidth, prefs.shellHeight, title, data);
 #if motif
 		Melder_assert (XtWindow (my drawingArea -> d_widget));
 #endif
-		my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-		Melder_assert (my graphics);
-		Graphics_setFontSize (my graphics.get(), 12);
-		Editor_setPublicationCallback (me.get(), cb_publish);
+		my g = Graphics_create_xmdrawingarea (my drawingArea);
+		Melder_assert (my g != NULL);
+		Graphics_setFontSize (my g, 12);
+		Editor_setPublicationCallback (me.peek(), cb_publish, NULL);
 
 		my f1min = prefs.f1min;
 		my f1max = prefs.f1max;
@@ -1481,20 +1630,22 @@ autoVowelEditor VowelEditor_create (const char32 *title, Daata data) {
 		my marksFontSize = prefs.marksFontSize;
 		my soundFollowsMouse = prefs.soundFollowsMouse;
 		if (my marksDataset > 3) { // TODO variable??
-			VowelEditor_createTableFromVowelMarksInPreferences (me.get());
+			VowelEditor_createTableFromVowelMarksInPreferences (me.peek());
 		} else {
-			VowelEditor_setMarks (me.get(), my marksDataset, my speakerType, 14);
+			VowelEditor_setMarks (me.peek(), my marksDataset, my speakerType, 14);
 		}
-		VowelEditor_setF3F4 (me.get(), prefs.f3, prefs.b3, prefs.f4, prefs.b4);
+		VowelEditor_setF3F4 (me.peek(), prefs.f3, prefs.b3, prefs.f4, prefs.b4);
 		my maximumDuration = BUFFER_SIZE_SEC;
 		my extendDuration = prefs.extendDuration;
-		if (my data) {
-			my vowel = Data_copy (static_cast<Vowel> (data));
+		if (my data != 0) {
+			my vowel = Data_copy ( (Vowel) data);
 		} else {
 			my vowel = Vowel_create_twoFormantSchwa (0.2);
 		}
 		my markTraceEvery = prefs.markTraceEvery;
 		my f0 = f0default;
+		VowelEditor_setSource (me.peek());
+		my target = Sound_createSimple (1, my maximumDuration, my f0.samplingFrequency);
 		GuiText_setString (my f0TextField, Melder_double (my f0.start));
 		GuiText_setString (my f0SlopeTextField, Melder_double (my f0.slopeOctPerSec));
 		GuiText_setString (my durationTextField, U"0.2"); // Source has been created
@@ -1502,17 +1653,17 @@ autoVowelEditor VowelEditor_create (const char32 *title, Daata data) {
 		my grid = griddefault;
 {
 	// This exdents because it's a hack:
-	struct structGuiDrawingArea_ResizeEvent event { my drawingArea, 0 };
+	struct structGuiDrawingAreaResizeEvent event = { my drawingArea, 0 };
 	event. width  = GuiControl_getWidth  (my drawingArea);
 	event. height = GuiControl_getHeight (my drawingArea);
-	gui_drawingarea_cb_resize (me.get(), & event);
+	gui_drawingarea_cb_resize (me.peek(), & event);
 }
-		//struct structGuiDrawingArea_ResizeEvent event { 0 };
+		//struct structGuiDrawingAreaResizeEvent event = { 0 };
 		//event.widget = my drawingArea;
 		//gui_drawingarea_cb_resize (me, & event);
-		updateWidgets (me.get());
+		updateWidgets (me.peek());
 		trace (U"exit");
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"VowelEditor not created.");
 	}
diff --git a/dwtools/VowelEditor.h b/dwtools/VowelEditor.h
index 6c34057..7b54b33 100644
--- a/dwtools/VowelEditor.h
+++ b/dwtools/VowelEditor.h
@@ -30,8 +30,10 @@
 #include "Editor.h"
 
 #include "Vowel_def.h"
+oo_CLASS_CREATE (Vowel, Function);
 
-struct structVowelEditor_F0 {
+struct structVowelEditor_F0
+{
 	double start;
 	double slopeOctPerSec;
 	double minimum, maximum;
@@ -39,46 +41,45 @@ struct structVowelEditor_F0 {
 	long interpolationDepth;
 };
 
-struct structVowelEditor_F1F2Grid {
+struct structVowelEditor_F1F2Grid
+{
 	double df1, df2;
 	int text_left, text_right, text_bottom, text_top;
 	double grey;
 };
 
 Thing_define (VowelEditor, Editor) {
-	int soundFollowsMouse, shiftKeyPressed;
-	double f1min, f1max, f2min, f2max;   // domain of graphics F1-F2 area
-	autoMatrix f3, b3, f4, b4;
-	int frequencyScale;   // 0: lin, 1: log, 2: bark, 3: mel
-	int axisOrientation;  // 0: origin topright + f1 down + f2 to left, 0: origin lb + f1 right +f2 up
-	int marksDataset, speakerType;   // 1 = male, 2 = female, 3 = child
-	int marksFontSize;
-	autoGraphics graphics;   // the drawing
-	short width, height;  // size of drawing area in pixels
-	autoTable marks;   // Vowel, F1, F2, Colour...
-	autoVowel vowel;
-	double markTraceEvery;
-	structVowelEditor_F0 f0;
-	double maximumDuration, extendDuration;
-	GuiDrawingArea drawingArea;
-	GuiButton playButton, reverseButton, publishButton;
-	GuiText f0TextField, f0SlopeTextField, durationTextField, extendTextField;
-	GuiLabel startInfo, endInfo;
-	structVowelEditor_F1F2Grid grid;
-
-	void v_destroy () noexcept
-		override;
-	bool v_scriptable ()
-		override { return false; }
-	void v_createChildren ()
-		override;
-	void v_createMenus ()
-		override;
-	void v_createHelpMenuItems (EditorMenu menu)
-		override;
+	// new data:
+	public:
+		int soundFollowsMouse, shiftKeyPressed;
+		double f1min, f1max, f2min, f2max;   // domain of graphics F1-F2 area
+		Matrix f3, b3, f4, b4;
+		int frequencyScale;   // 0: lin, 1: log, 2: bark, 3: mel
+		int axisOrientation;  // 0: origin topright + f1 down + f2 to left, 0: origin lb + f1 right +f2 up
+		int marksDataset, speakerType;   // 1 = male, 2 = female, 3 = child
+		int marksFontSize;
+		Graphics g;   // the drawing
+		short width, height;  // size of drawing area in pixels
+		Table marks;   // Vowel, F1, F2, Colour...
+		Vowel vowel;
+		double markTraceEvery;
+		structVowelEditor_F0 f0;
+		double maximumDuration, extendDuration;
+		Sound source, target;
+		GuiDrawingArea drawingArea;
+		GuiButton playButton, reverseButton, publishButton;
+		GuiText f0TextField, f0SlopeTextField, durationTextField, extendTextField;
+		GuiLabel startInfo, endInfo;
+		structVowelEditor_F1F2Grid grid;
+	// overridden methods:
+		virtual void v_destroy ();
+		virtual bool v_scriptable () { return false; }
+		virtual void v_createChildren ();
+		virtual void v_createMenus ();
+		virtual void v_createHelpMenuItems (EditorMenu menu);
 };
 
-autoVowelEditor VowelEditor_create (const char32 *title, Daata data);
+VowelEditor VowelEditor_create (const char32 *title, Data data);
 
 void VowelEditor_prefs ();
 
diff --git a/dwtools/Vowel_def.h b/dwtools/Vowel_def.h
index f1e6f3a..6021ea5 100644
--- a/dwtools/Vowel_def.h
+++ b/dwtools/Vowel_def.h
@@ -1,6 +1,6 @@
 /* Vowel_def.h
  * 
- * Copyright (C) 2011,2015 David Weenink & Paul Boersma
+ * Copyright (C) 2011 David Weenink & Paul Boersma
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,8 +20,8 @@
 
 #define ooSTRUCT Vowel
 oo_DEFINE_CLASS (Vowel, Function)
-	oo_AUTO_OBJECT (PitchTier, 0, pt)
-	oo_AUTO_OBJECT (FormantTier, 0, ft)
+	oo_OBJECT (PitchTier, 0, pt)
+	oo_OBJECT (FormantTier, 0, ft)
 oo_END_CLASS (Vowel)
 #undef ooSTRUCT
 
diff --git a/dwtools/manual_BSS.cpp b/dwtools/manual_BSS.cpp
index 03d1f19..04fa2fc 100644
--- a/dwtools/manual_BSS.cpp
+++ b/dwtools/manual_BSS.cpp
@@ -1,6 +1,6 @@
 /* manual_BSS.cpp
  *
- * Copyright (C) 2010-2014, 2015 David Weenink
+ * Copyright (C) 2010-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,15 +43,15 @@ TAG (U"2. The elements %%c__ij_% in a Covariance always satisfy |%%c__ij_%/\\Vr(
 	"generally not the case for cross-correlations.")
 MAN_END
 
-MAN_BEGIN (U"CrossCorrelationTableList", U"djmw", 20101227)
-INTRO (U"One of the types of objects in Praat. A CrossCorrelationTableList represents a collection of @@CrossCorrelationTable@ objects.")
+MAN_BEGIN (U"CrossCorrelationTables", U"djmw", 20101227)
+INTRO (U"One of the types of objects in Praat. A CrossCorrelationTables represents a collection of @@CrossCorrelationTable@ objects.")
 MAN_END
 
-MAN_BEGIN (U"CrossCorrelationTableList: Create test set...", U"djmw", 20110212)
+MAN_BEGIN (U"CrossCorrelationTables: Create test set...", U"djmw", 20110212)
 INTRO (U"Create a collection of @@CrossCorrelationTable at s that are all derived from different diagonal matrices by the same transformation matrix.")
 ENTRY (U"Settings")
 SCRIPT (5.4, Manual_SETTINGS_WINDOW_HEIGHT (4), U""
-	Manual_DRAW_SETTINGS_WINDOW ("CrossCorrelationTableList: Create test set", 4)
+	Manual_DRAW_SETTINGS_WINDOW ("CrossCorrelationTables: Create test set", 4)
 	Manual_DRAW_SETTINGS_WINDOW_FIELD ("Matrix dimension", "5")
 	Manual_DRAW_SETTINGS_WINDOW_FIELD ("Number of matrices", "20")
 	Manual_DRAW_SETTINGS_WINDOW_BOOLEAN("First is positive-definite",1)
@@ -101,7 +101,7 @@ INTRO (U"Detemines the @@Covariance|covariances@ between the channels of a selec
 NORMAL (U"The covariance of a sound is determined by calculating the @@CrossCorrelationTable@ of a multichannel sound for a lag time equal to zero.")
 MAN_END
 
-MAN_BEGIN (U"Sound: To Sound (blind source separation)...", U"djmw", 20151030)
+MAN_BEGIN (U"Sound: To Sound (blind source separation)...", U"djmw", 20140224)
 INTRO (U"Analyze the selected multi-channel sound into its independent components by an iterative method.")
 NORMAL (U"The @@blind source separation@ method to find the independent components tries to simultaneously diagonalize a number of "
 	"@@CrossCorrelationTable at s that are calculated from the multi-channel sound at different lag times.")
@@ -171,7 +171,7 @@ CODE(U"s1 = To Sound: \"This is some text\", \"no\"")
 NORMAL (U"The first speech sound was created from the text \"This is some text\" at a speed of 175 words per minute.")
 CODE(U"selectObject: synth")
 CODE(U"Set speech output settings: 44100, 0.01, 80, 50, 145, \"no\", \"IPA\"")
-CODE(U"s2 = To Sound.: \"Abracadabra, abra\", \"no\"")
+CODE(U"s2 = To Sound.: \"Abracadabra, abra\", 0.01, 80, 50, 145, \"yes\", \"no\", \"no\", \"yes\"")
 NORMAL (U"The second sound \"Abracadabra, abra\" was synthesized at 145 words per minute with a somewhat larger pitch excursion (80) than the previous sound (50).")
 CODE(U"plusObject: s1")
 CODE(U"stereo = Combine to stereo")
@@ -215,28 +215,6 @@ NORMAL (U"The first two panels will not change between different sessions of pra
     "the result of the blind source separation, i.e. unmixing, will not always be the same because of two things. In the first place the unmixing always starts with an initialisation with random values of the parameters that "
     "we have to determine for the blind source separation. Therefore the iteration sequence will never be the same and the final outcomes might differ. In the second place, as was explained in the @@blind source separation@ manual, the unmixing is only "
     "unique up to a scale factor and a permutation. Therefore the channels in the unmixed sound do not necessarily correspond to the corresponding channel in our \"original\" stereo sound.")
-NORMAL (U"The complete script:")
-CODE (U"syn = Create SpeechSynthesizer: \"English\", \"default\"")
-CODE (U"s1 = To Sound: \"This is some text\", \"no\"")
-CODE (U"selectObject: syn")
-CODE (U"Set speech output settings: 44100, 0.01, 80, 50, 145, \"no\", \"IPA\"")
-CODE (U"s2 = To Sound: \"abracadabra, abra\", \"no\"")
-CODE (U"plusObject: s1")
-CODE (U"stereo = Combine to stereo")
-CODE (U"Select inner viewport: 1, 6, 0.1, 1.9")
-CODE (U"Draw: 0, 0, 0, 0, \"no\", \"Curve\"")
-CODE (U"Draw inner box")
-CODE (U"mm = Create simple MixingMatrix: \"mm\", 2, 2, \"1.0 2.0 2.0 1.0\"")
-CODE (U"plusObject: stereo")
-CODE (U"mixed = Mix")
-CODE (U"Select inner viewport: 1, 6, 2.1, 3.9")
-CODE (U"Draw: 0, 0, 0, 0, \"no\", \"Curve\"")
-CODE (U"Draw inner box")
-CODE (U"unmixed = To Sound (bss): 0.1, 1, 20, 0.00021, 100, 0.001, \"ffdiag\"")
-CODE (U"Select inner viewport: 1, 6, 4.1, 5.9")
-CODE (U"Draw: 0, 0, 0, 0, \"no\", \"Curve\"")
-CODE (U"Draw inner box")
-CODE (U"removeObject: unmixed, syn, stereo, s1, s2, mixed, mm")
 MAN_END
 
 MAN_BEGIN (U"Sound: To Sound (whiten channels)...", U"djmw", 20120303)
diff --git a/dwtools/manual_HMM.cpp b/dwtools/manual_HMM.cpp
index 20f4c2a..e3ec9d0 100644
--- a/dwtools/manual_HMM.cpp
+++ b/dwtools/manual_HMM.cpp
@@ -1,6 +1,6 @@
 /* manual_HMM.cpp
  *
- * Copyright (C) 2011-2014, 2015 David Weenink
+ * Copyright (C) 2011-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@ NORMAL (U"Expectation-maximization (EM) is an iterative method used to find maxi
 	"estimates of the parameters by maximizing the expected likelihood found in the E step. The "
 	"parameters found on the M step are then used to start another E step, and the process is "
 	"repeated until some criterion is satisfied. EM is frequently used for data clustering like for example in "
-	"@@TableOfReal: To GaussianMixture...|Gaussian mixtures@ or in the @@HMM & HMMObservationSequences: Learn...|Baum-Welch training@ of a Hidden Markov Model.")
+	"@@TableOfReal: To GaussianMixture...|Gaussian mixtures@ or in the @@HMM & HMM_ObservationSequences: Learn...|Baum-Welch training@ of a Hidden Markov Model.")
 MAN_END
 
 MAN_BEGIN (U"GaussianMixture", U"djmw", 20101026)
@@ -119,8 +119,8 @@ NORMAL (U"2. According to the procedure described in @@Covariance: To TableOfRea
 	"data point will be generated.")
 MAN_END
 
-MAN_BEGIN (U"TableOfReal: To GaussianMixture...", U"djmw", 20150930)
-INTRO (U"Creates a  @@GaussianMixture@ from the selected @@TableOfReal@ by an @@expectation-maximization|"
+MAN_BEGIN (U"TableOfReal: To GaussianMixture...", U"djmw", 20111130)
+INTRO (U"Creates a  @@GaussianMixture@ from the selected  @@TableOfReal@ by an @@expectation-maximization|"
 	"expectation-maximization@ procedure.")
 ENTRY (U"Settings")
 TAG (U"##Number of components")
@@ -137,8 +137,6 @@ DEFINITION (U"defines the fraction of the total covariance that will be added to
 	"covariance matrices during the EM iteration. This may prevent one or more of these matrices to become singular.")
 TAG (U"##Covariance matrices are")
 DEFINITION (U"defines whether the complete covariance matrices in the mixture have to be calculated or only the diagonal.")
-TAG (U"##Criterion based on")
-DEFINITION (U"defines how the @@GaussianMixture & TableOfReal: Get likelihood value...|likelihood of the data given the model is calculated at .")
 ENTRY (U"Expectation\\--Maximization Algorithm")
 NORMAL (U"The Expectation\\--Maximization (EM) algorithm is an iterative procedure to maximize the likelihood of the data given a model. For a "
 	"GaussianMixture, the parameters in the model are the centers and the covariances of all components in the mixture "
@@ -258,13 +256,13 @@ TAG (U"##Covariance matrices are")
 DEFINITION (U"defines whether the complete covariance matrices in the mixture have to be calculated or only the diagonal.")
 MAN_END
 
-MAN_BEGIN (U"HMMObservationSequence", U"djmw", 20140117)
-INTRO (U"An HMMObservationSequence models a sequence of observations. The observation sequence can be generated "
+MAN_BEGIN (U"HMM_ObservationSequence", U"djmw", 20140117)
+INTRO (U"An HMM_ObservationSequence models a sequence of observations. The observation sequence can be generated "
 	"by the @HMM or it can be used to train a model.")
 MAN_END
 
-MAN_BEGIN (U"HMMStateSequence", U"djmw", 20101010)
-INTRO (U"An HMMStateSequence models the sequence of states that an @HMM has traversed.")
+MAN_BEGIN (U"HMM_StateSequence", U"djmw", 20101010)
+INTRO (U"An HMM_StateSequence models the sequence of states that an @HMM has traversed.")
 MAN_END
 
 MAN_BEGIN (U"HMM", U"djmw", 20130410)
@@ -319,19 +317,19 @@ NORMAL (U"The symmetrized version is:")
 FORMULA (U"%D__%s_(\\la__1_,\\la__2_) = (%D(\\la__1_,\\la__2_) + %D(\\la__2_,\\la__1_))/2.")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMMObservationSequence: Get cross-entropy", U"djmw", 20101017)
-INTRO (U"Calculates the cross-entropy between the selected @@HMM@ model and the @@HMMObservationSequence at .")
+MAN_BEGIN (U"HMM & HMM_ObservationSequence: Get cross-entropy", U"djmw", 20101017)
+INTRO (U"Calculates the cross-entropy between the selected @@HMM@ model and the @@HMM_ObservationSequence at .")
 NORMAL (U"The cross-entropy is a useful upper bound for the entropy of a model. An approximation to the cross-entropy for a model on a observation sequence  %O of length %N is: ")
 FORMULA (U"%H(%O) = -1/%N log %p(%O),")
 NORMAL (U"where %p(%O) is the probability of the observation sequence given the model.")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMM & HMMObservationSequence: Get cross-entropy", U"djmw", 20101017)
+MAN_BEGIN (U"HMM & HMM & HMM_ObservationSequence: Get cross-entropy", U"djmw", 20101017)
 INTRO (U"Get the (symmetric) cross-entropy for the two selected @HMM models and an observation sequence.")
 NORMAL (U"See @@HMM & HMM: Get cross-entropy... at .")
 MAN_END
 
-MAN_BEGIN (U"HMM: To HMMObservationSequence...", U"djmw", 20101010)
+MAN_BEGIN (U"HMM: To HMM_ObservationSequence...", U"djmw", 20101010)
 INTRO (U"Use the selected @HMM as a generator for an observation sequence.")
 ENTRY (U"Settings")
 TAG (U"##Start state")
@@ -373,12 +371,12 @@ MAN_BEGIN (U"HMM: Get expected duration in state...", U"djmw", 20101010)
 INTRO (U"For the selected @HMM get the number of time units that the system is expected to stay in that state.")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMMStateSequence: Get probability", U"djmw", 20101010)
-INTRO (U"Get the natural logarithm of the probability that the selected @@HMMStateSequence|state sequence@ was generated by the selected @HMM.")
+MAN_BEGIN (U"HMM & HMM_StateSequence: Get probability", U"djmw", 20101010)
+INTRO (U"Get the natural logarithm of the probability that the selected @@HMM_StateSequence|state sequence@ was generated by the selected @HMM.")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMMObservationSequence: Get probability", U"djmw", 20101010)
-INTRO (U"Get the natural logarithm of the probability that the selected @@HMMObservationSequence|state sequence@ was generated by the selected @HMM.")
+MAN_BEGIN (U"HMM & HMM_ObservationSequence: Get probability", U"djmw", 20101010)
+INTRO (U"Get the natural logarithm of the probability that the selected @@HMM_ObservationSequence|state sequence@ was generated by the selected @HMM.")
 ENTRY (U"Algorithm")
 NORMAL (U"Viterbi")
 MAN_END
@@ -405,19 +403,19 @@ INTRO (U"Sets the probabilities that the model starts in the particular states."
 NORMAL (U"The values given will be scaled as probabilities. ")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMMObservationSequence: To TableOfReal (bigrams)...", U"djmw", 20101019)
-INTRO (U"Get a table with bigrams and marginals form the selected @HMMObservationSequence and the @HMM.")
+MAN_BEGIN (U"HMM & HMM_ObservationSequence: To TableOfReal (bigrams)...", U"djmw", 20101019)
+INTRO (U"Get a table with bigrams and marginals form the selected @HMM_ObservationSequence and the @HMM.")
 NORMAL (U"The entry at row %i and column %j shows how often the %j-th symbol follows the %i-th symbol in the observation sequence.")
 ENTRY (U"Remark")
 NORMAL (U"The row and colum marginals for the first and the last element in the obsevation sequence will not be equal because there is no transition to the first and no transition from the last one.")
 MAN_END
 
-MAN_BEGIN (U"HMMObservationSequence: To TableOfReal (bigrams)...", U"djmw", 20101019)
-INTRO (U"Get a table with bigrams form the selected @HMMObservationSequence.")
-NORMAL (U"See also @@HMM & HMMObservationSequence: To TableOfReal (bigrams)... at .")
+MAN_BEGIN (U"HMM_ObservationSequence: To TableOfReal (bigrams)...", U"djmw", 20101019)
+INTRO (U"Get a table with bigrams form the selected @HMM_ObservationSequence.")
+NORMAL (U"See also @@HMM & HMM_ObservationSequence: To TableOfReal (bigrams)... at .")
 MAN_END
 
-MAN_BEGIN (U"HMM & HMMObservationSequences: Learn...", U"djmw", 20111130)
+MAN_BEGIN (U"HMM & HMM_ObservationSequences: Learn...", U"djmw", 20111130)
 INTRO (U"Train the transition and emission probabilities of the @HMM from the observations.")
 ENTRY (U"Algorithm")
 NORMAL (U"The Baum-Welch @@expectation-maximization@ procedure. It uses the forward and backward procedures to (re)estimate the parameters until convergence is reached.")
diff --git a/dwtools/manual_MDS.cpp b/dwtools/manual_MDS.cpp
index efba6a8..bad371d 100644
--- a/dwtools/manual_MDS.cpp
+++ b/dwtools/manual_MDS.cpp
@@ -1,6 +1,6 @@
 /* manual_MDS.cpp
  *
- * Copyright (C) 1993-2014, 2015 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -35,40 +35,40 @@ static void drawLetterRConfigurationExample (Graphics g)
 {
 	autoConfiguration me = Configuration_createLetterRExample (1);
 	Graphics_setWindow (g, -6, 4, -7, 5);
-	Configuration_draw (me.get(), g, 1, 2, -6, 4, -7, 5, 0, 1, U"", 1);
+	Configuration_draw (me.peek(), g, 1, 2, -6, 4, -7, 5, 0, 1, U"", 1);
 }
 
 static void drawLetterRConfigurationExample2 (Graphics g)
 {
 	autoConfiguration me = Configuration_createLetterRExample (2);
-	Configuration_draw (me.get(), g, 1, 2, -0.8, 1.2, -0.8, 0.7, 0, 1, U"", 1);
+	Configuration_draw (me.peek(), g, 1, 2, -0.8, 1.2, -0.8, 0.7, 0, 1, U"", 1);
 }
 
 static void drawLetterRShepard (Graphics g)
 {
 	autoDissimilarity d = Dissimilarity_createLetterRExample (32.5);
 	autoConfiguration c = Configuration_createLetterRExample (2);
-	Dissimilarity_Configuration_drawShepardDiagram (d.get(), c.get(), g, 0, 200, 0, 2.2, 1, U"+", 1);
+	Dissimilarity_Configuration_drawShepardDiagram (d.peek(), c.peek(), g, 0, 200, 0, 2.2, 1, U"+", 1);
 }
 
 static void drawLetterRRegression (Graphics g)
 {
 	autoDissimilarity d = Dissimilarity_createLetterRExample (32.5);
 	autoConfiguration c = Configuration_createLetterRExample (2);
-	Dissimilarity_Configuration_drawMonotoneRegression (d.get(), c.get(), g, MDS_PRIMARY_APPROACH, 0, 200, 0, 2.2, 1, U"+", 1);
+	Dissimilarity_Configuration_drawMonotoneRegression (d.peek(), c.peek(), g, MDS_PRIMARY_APPROACH, 0, 200, 0, 2.2, 1, U"+", 1);
 }
 
 static void drawCarrollWishConfigurationExample (Graphics g)
 {
 	autoConfiguration me = Configuration_createCarrollWishExample ();
 	Graphics_setWindow (g, -2, 2, -2, 2);
-	Configuration_draw (me.get(), g, 1, 2, -2, 2, -2, 2, 0, 1, U"", 1);
+	Configuration_draw (me.peek(), g, 1, 2, -2, 2, -2, 2, 0, 1, U"", 1);
 }
 
 static void drawCarrollWishSalienceExample (Graphics g)
 {
 	autoSalience me = Salience_createCarrollWishExample ();
-	Salience_draw (me.get(), g, 1, 2, 1);
+	Salience_draw (me.peek(), g, 1, 2, 1);
 }
 
 static void drawMsplineExample (Graphics g)
@@ -98,7 +98,7 @@ NORMAL (U"where %S__%i_ is a known symmetric %numberOfPoints \\xx %numberOfPoint
 	"the diagonal %numberOfDimensions \\xx %numberOfDimensions weight matrix for source %i. The function "
 	"above has no analytical solution for %X and the %W__%i_. It can be solved, however, "
 	"by an iterative procedure which Carroll & Chang have christened CANDECOMP "
-	"(CANonical DECOMPosition). This method minimizes, instead of the function "
+	"(CANonical DECOMPosition).  This method minimizes, instead of the function "
 	"given above, the following function:")
 LIST_ITEM (U"%g(%X, %Y, %W__1_,..., %W__%numberOfSources_) = \\su__%i=1..%numberOfSources_ "
 	"| %S__%i_ \\-- %X%W__%i_%Y\\'p |^2")
@@ -361,7 +361,7 @@ NORMAL (U"Sometimes the criterion used in a @@Procrustes transform@ is too "
 FORMULA (U"%f(#T) = \\su__%i=1..%numberOfDimensions_ #t\\'p__%i_#A\\'p#b__%i_ /"
 	" ((#t\\'p__%i_#A\\'p#A#t__%i_)^^1/2^(#b\\'p__%i_#b__%i_)^^1/2^),")
 NORMAL (U"where #t\\'p__%i_ and #b\\'p__%i_ are the %i^^th^ column of #T and "
-	"#B, respectively. A direct solution for #T is not available, it can only "
+	"#B, respectively.  A direct solution for #T is not available, it can only "
 	"be obtained by an iterative procedure. The implemented algorithm is from "
 	"@@Kiers & Groenen (1996)@ and shows excellent convergence properties.")
 MAN_END
@@ -616,7 +616,7 @@ INTRO (U"Creates a @Dissimilarity object that bears the name %R. The "
 	"transformation of the distances between the 32 two-dimensional points "
 	"that make up the capital letter #R.")
 PICTURE (4.0, 4.0, drawLetterRConfigurationExample)
-NORMAL (U"All 32 \\.c (32-1)/2 interpoint distances were subjected to the "
+NORMAL (U"All 32 \\.c (32-1)/2 interpoint distances  were subjected to the "
 	"transformation: ")
 FORMULA (U"%dissimilarity__%ij_^ = %distance__%ij_^2 + 5 + %noiseRange \\.c #u, ")
 NORMAL (U"where #u is a uniform random variable between 0 and 1.")
@@ -802,7 +802,7 @@ NORMAL (U"There is no feasible way to be certain that you have found the "
 	"on a %linear relation between distance and (dis)similarity, it gives a "
 	"very good approximation of the optimal #Configuration and "
 	"the #Minimizer practically always finds the global minimum from it "
-	"(I guess...). A way to find out is to try the %numberOfRepetitions "
+	"(I guess...).  A way to find out is to try the %numberOfRepetitions "
 	"parameter which gives you the possibility to fit many times and each "
 	"time start with another random initial configuration.")
 ENTRY (U"Algorithm")
@@ -1346,7 +1346,7 @@ ENTRY (U"Representation functions")
 NORMAL (U"In the application of MDS we try to find a configuration #X such that "
 	"the following relations are satisfied as well as possible:")
 FORMULA (U"%f(%\\de__%ij_) \\~~ %d__%ij_(#X)")
-NORMAL (U"The numbers that result from applying %f on %\\de__%ij_ are sometimes "
+NORMAL (U"The numbers that result from applying  %f on  %\\de__%ij_ are sometimes "
 	"called @disparities %d\\'p__%ij_. In most applications of MDS, besides "
 	"the configuration #X, also the function %f is not "
 	"completely specified, i.e., the exact parameters of %f are unknown and "
@@ -1382,7 +1382,7 @@ NORMAL (U"The most important object types used in Praat for MDS and the conversi
 PICTURE (6, 6, drawMDSClassRelations)
 MAN_END
 
-MAN_BEGIN (U"Measurement levels", U"djmw", 20151014)
+MAN_BEGIN (U"Measurement levels", U"djmw", 19970502)
 INTRO (U"According to the measurement theory of @@Stevens (1951)@, there are four measurement levels, namely "
 	"#Nominal, #Ordinal, #Interval and #Ratio. In the light of multidimensional scaling, the first "
 	"two levels, Nominal and Ordinal, are often called %non-%metric. The last two are %metric.")
@@ -1390,7 +1390,7 @@ MAN_END
 
 MAN_BEGIN (U"Multidimensional scaling", U"djmw", 20140117)
 INTRO (U"This tutorial describes how you can use P\\s{RAAT} to "
-	"perform ##M#ulti ##D#imensional ##S#caling (MDS) analysis.")
+	"perform ##M#ulti##D#imensional ##S#caling (MDS) analysis.")
 NORMAL (U"MDS helps us to represent %dissimilarities between objects as "
 	"%distances in a %%Euclidean space%. In effect, the more dissimilar two "
 	"objects are, the larger the distance between the objects in the Euclidean "
@@ -1411,13 +1411,13 @@ NORMAL (U"Let us first create a Dissimilarity object. You can for example "
 	"distortions between the dissimilarities and the distances.")
 NORMAL (U"Now you can do the following, for example:")
 NORMAL (U"Select the Dissimilarity and choose @@Dissimilarity: To Configuration "
-	"(monotone mds)...|To Configuration (monotone mds)...@, and you perform "
+	"(monotone mds)...|To Configuration (monotone mds)...@, and  you perform "
 	"a @@Kruskal analysis|kruskal at -like multidimensional scaling which "
 	"results in a new "
 	"Configuration object. (This Configuration could subsequently be used as "
 	"the starting Configuration for a new MDS-analysis!).")
 NORMAL (U"Select the Configuration and choose @@Configuration: Draw...|Draw...@ "
-	"and the following picture might result.")
+	"and the following picture will result")
 PICTURE (4.0, 4.0, drawLetterRConfigurationExample2)
 NORMAL (U"The following script summarizes:")
 CODE (U"dissimilarity = Create letter R example: 32.5")
@@ -1429,7 +1429,7 @@ NORMAL (U"Select the Dissimilarity and the Configuration together and query for
 	"@@Dissimilarity & Configuration: Get stress (monotone mds)...|"
 	"Get stress (monotone mds)... at . ")
 NORMAL (U"The following script summarizes:")
-CODE (U"selectObject: dissimilarity, configuration")
+CODE (U"selectObject (dissimilarity, configuration)")
 CODE (U"Get stress (monotone mds): \"Primary approach\", \"Kruskals's "
 	"stress-1\"")
 ENTRY (U"The Shepard diagram")
@@ -1438,7 +1438,7 @@ NORMAL (U"Select the Dissimilarity and the Configuration together to "
 	"draw the Shepard diagram at .")
 PICTURE (4.0, 4.0, drawLetterRShepard)
 NORMAL (U"The following script summarizes:")
-CODE (U"selectObject: dissimilarity, configuration")
+CODE (U"selectObject (dissimilarity, configuration)")
 CODE (U"Draw Shepard diagram: 0, 200, 0, 2.2, 1, \"+\", \"yes\"")
 ENTRY (U"The (monotone) regression")
 NORMAL (U"Select the Dissimilarity and the Configuration together to "
@@ -1446,7 +1446,7 @@ NORMAL (U"Select the Dissimilarity and the Configuration together to "
 	"draw the monotone regression@ of distances on dissimilarities.")
 PICTURE (4.0, 4.0, drawLetterRRegression)
 NORMAL (U"The following script summarizes:")
-CODE (U"selectObject: dissimilarity, configuration")
+CODE (U"selectObject (dissimilarity, configuration)")
 CODE (U"Draw monotone regresion: \"Primary approach\", 0, 200, 0, 2.2, 1, \"+\", \"yes\"")
 NORMAL (U"When you enter %noiseRange = 0 in the form for the letter #R, perfect "
 	"reconstruction is possible. The Shepard diagram then will show "
@@ -1460,28 +1460,29 @@ NORMAL (U"When you can't have equal confidence in all the number in the "
 	"individual weights in the Weight object with the @@TableOfReal: Set "
 	"value...| Set value...@ command (remember: make %w__%ij_ = %w__%ji_).")
 NORMAL (U"The following script summarizes:")
-CODE (U"selectObject: dissimilarity")
+CODE (U"selectObject (dissimilarity)")
 CODE (U"weight = To Weight")
 CODE (U"! Change [i][j] and [j][i] cells in the Weight object")
 CODE (U"Set value: i, j, val")
 CODE (U"Set value: j, i, val")
 CODE (U"...")
 CODE (U"! now we can do a weighed analysis.")
-CODE (U"selectObject: dissimilarity, weight")
+CODE (U"selectObject (dissimilarity, weight)")
 CODE (U"To Configuration (monotone mds): 2, \"Primary approach\", 0.00001, 50, 1)")
 NORMAL (U"You can also query the @stress values with three objects selected. "
 	"The following script summarizes:")
-CODE (U"selectObject: dissimilarity, weight, configuration")
-CODE (U"Get stress (monotone mds): \"Primary approach\", \"Kruskals's stress-1\"")
+CODE (U"selectObject (dissimilarity, weight, configuration)")
+CODE (U"Get stress (monotone mds): \"Primary approach\", \"Kruskals's "
+	"stress-1\"")
 ENTRY (U"Using a start Configuration")
 NORMAL (U"You could also use a Configuration object as a starting "
 	"configuration in the minimization process. "
-	"Let's assume that you are not satisfied with the stress value from the "
+	"Lets assume that you are not satisfied with the stress value from the "
 	"Configuration object that you obtained in the previous analysis. "
 	"You can than use this Configuration object as a "
 	"starting point for further analysis:")
 NORMAL (U"The following script summarizes:")
-CODE (U"selectObject: dissimilarity, configuration, weight")
+CODE (U"selectObject (dissimilarity, configuration, weight)")
 CODE (U"To Configuration (monotone mds): 2, \"Primary approach\", 0.00001, 50, 1")
 ENTRY (U"Multiple Dissimilarity's (INDSCAL)")
 NORMAL (U"When you have multiple Dissimilarity objects you can also perform "
diff --git a/dwtools/manual_dwtools.cpp b/dwtools/manual_dwtools.cpp
index d7b775a..3d8a177 100644
--- a/dwtools/manual_dwtools.cpp
+++ b/dwtools/manual_dwtools.cpp
@@ -1,6 +1,6 @@
 /* manual_dwtools.cpp
  *
- * Copyright (C) 1993-2016 David Weenink
+ * Copyright (C) 1993-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,42 +30,42 @@
 #include "Discriminant.h"
 
 
-static autoTableOfReal getStandardizedLogFrequencyPolsData (bool includeLevels) {
+static TableOfReal getStandardizedLogFrequencyPolsData (int includeLevels) {
 	autoTableOfReal me = TableOfReal_createFromPolsData_50males (includeLevels);
 	for (long i = 1; i <= my numberOfRows; i++) {
 		for (long j = 1; j <= 3; j++) {
 			my data[i][j] = log10 (my data[i][j]);
 		}
 	}
-	TableOfReal_standardizeColumns (me.get());
-	TableOfReal_setColumnLabel (me.get(), 1, U"standardized log (%F__1_)");
-	TableOfReal_setColumnLabel (me.get(), 2, U"standardized log (%F__2_)");
-	TableOfReal_setColumnLabel (me.get(), 3, U"standardized log (%F__3_)");
+	TableOfReal_standardizeColumns (me.peek());
+	TableOfReal_setColumnLabel (me.peek(), 1, U"standardized log (%F__1_)");
+	TableOfReal_setColumnLabel (me.peek(), 2, U"standardized log (%F__2_)");
+	TableOfReal_setColumnLabel (me.peek(), 3, U"standardized log (%F__3_)");
 	if (includeLevels) {
-		TableOfReal_setColumnLabel (me.get(), 4, U"standardized %L__1_");
-		TableOfReal_setColumnLabel (me.get(), 5, U"standardized %L__1_");
-		TableOfReal_setColumnLabel (me.get(), 6, U"standardized %L__3_");
+		TableOfReal_setColumnLabel (me.peek(), 4, U"standardized %L__1_");
+		TableOfReal_setColumnLabel (me.peek(), 5, U"standardized %L__1_");
+		TableOfReal_setColumnLabel (me.peek(), 6, U"standardized %L__3_");
 	}
-	return me;
+	return me.transfer();
 }
 
 static void drawPolsF1F2_log (Graphics g) {
 	autoTableOfReal me = getStandardizedLogFrequencyPolsData (0);
 	Graphics_setWindow (g, -2.9, 2.9, -2.9, 2.9);
-	TableOfReal_drawScatterPlot (me.get(), g, 1, 2, 0, 0, -2.9, 2.9, -2.9, 2.9, 10, 1, U"+", 1);
+	TableOfReal_drawScatterPlot (me.peek(), g, 1, 2, 0, 0, -2.9, 2.9, -2.9, 2.9, 10, 1, U"+", 1);
 }
 
 static void drawPolsF1F2ConcentrationEllipses (Graphics g) {
 	autoTableOfReal me = getStandardizedLogFrequencyPolsData (0);
-	autoDiscriminant d = TableOfReal_to_Discriminant (me.get());
-	Discriminant_drawConcentrationEllipses (d.get(), g, 1, 0, nullptr, 0, 1, 2, -2.9, 2.9, -2.9, 2.9, 12, 1);
+	autoDiscriminant d = TableOfReal_to_Discriminant (me.peek());
+	Discriminant_drawConcentrationEllipses (d.peek(), g, 1, 0, NULL, 0, 1, 2, -2.9, 2.9, -2.9, 2.9, 12, 1);
 }
 
 static void drawPolsDiscriminantConfiguration (Graphics g) {
 	autoTableOfReal me = getStandardizedLogFrequencyPolsData (0);
-	autoDiscriminant d = TableOfReal_to_Discriminant (me.get());
-	autoConfiguration c = Discriminant_and_TableOfReal_to_Configuration (d.get(), me.get(), 2);
-	Configuration_draw (c.get(), g, 1, 2, -2.9, 2.9, -2.9, 2.9, 0, 1, U"", 1);
+	autoDiscriminant d = TableOfReal_to_Discriminant (me.peek());
+	autoConfiguration c = Discriminant_and_TableOfReal_to_Configuration (d.peek(), me.peek(), 2);
+	Configuration_draw (c.peek(), g, 1, 2, -2.9, 2.9, -2.9, 2.9, 0, 1, U"", 1);
 }
 
 static void drawBoxPlot (Graphics g) {
@@ -671,7 +671,7 @@ FORMULA (U"%numberOfSigmas = \\Vr(-2 ln(1-%p/100)).")
 NORMAL (U"For covering 95\\% of the data we calculate %numberOfSigmas = 2.45.")
 MAN_END
 
-MAN_BEGIN (U"confidence interval", U"djmw", 20151109)
+MAN_BEGIN (U"confidence interval", U"djmw", 20011105)
 INTRO (U"The confidence interval gives an estimated range of values which "
 	"is likely to include an unknown population parameter. "
 	"The estimated range is calculated from a given set of observations.")
@@ -687,8 +687,10 @@ NORMAL (U"If the standard deviation is %not known, we have to estimate its value
 FORMULA (U"%%mean% - %t__%%\\al/2;N%_ %s / \\Vr%N \\<_ \\mu \\<_ "
 	"%%mean% + %t__%%\\al/2;N%_ %s / \\Vr%N,")
 NORMAL (U"where %t__%%\\al/2;N%_ = invStudentQ (%\\al/2, %N-1).")
-NORMAL (U"For %\\al=0.05 and %N=20 we get %z__0.025_=1.96 and %t__0.025;20_=2.093. "
-	"This shows that for a fixed value of the standard deviation the confidence interval will always be wider if we had to estimate the standard deviation's value from the data instead of its value being known beforehand.")
+NORMAL (U"For %\\al=0.05 and %N=20 we get %z__0.025_=1.96 and %t__0.025;20_=2.039. "
+	"This shows that when we have to estimate the standard deviation from the data, "
+	"the confidence interval is wider than when the standard deviation is known "
+	"beforehand.")
 MAN_END
 
 MAN_BEGIN (U"confidence level", U"djmw", 20011105)
@@ -979,20 +981,6 @@ NORMAL (U"Since an object of type Covariance contains the mean values (the "
 	"tests on means and variances.")
 MAN_END
 
-MAN_BEGIN (U"Create simple Correlation...", U"djmw", 20151230)
-INTRO (U"Create a @@Correlation@ matrix with its centroid.")
-ENTRY (U"Settings")
-TAG (U"##Correlations")
-DEFINITION (U"define the correlations. Because a correlation matrix is a symmetric matrix, only the upper triangular "
-	"part of the matrix has to be input (row-wise). If your correlation matrix is "
-	"of dimension %d, your input needs %d(%d+1)/2 elements. The first %d input elements are the elements of the first "
-	"row of the correaltion matrix, the next %d-1 input elements are for the second row, then %d-2 for the third row, etc.")
-TAG (U"##Centroid")
-DEFINITION (U"defines the centroid. ")
-TAG (U"##Number of observations")
-DEFINITION (U"defines the number of observations.")
-MAN_END
-
 MAN_BEGIN (U"Create simple Covariance...", U"djmw", 20101125)
 INTRO (U"Create a @@Covariance@ matrix with its centroid.")
 ENTRY (U"Settings")
@@ -1069,7 +1057,7 @@ NORMAL (U"The total variance is the sum of the diagonal elements of the covarian
 FORMULA (U"\\Si__%i=%from..%to_ %%C__ii_% / \\Si__%i=1..%numberOfRows_ %%C__ii_%")
 MAN_END
 
-MAN_BEGIN (U"Covariance: Get significance of means difference...", U"djmw", 20160102)
+MAN_BEGIN (U"Covariance: Get significance of means difference...", U"djmw", 20040407)
 INTRO (U"Gets the level of significance for the %difference of two means "
 	"from the selected @Covariance object being different from a hypothesized "
 	"value.")
@@ -1079,7 +1067,7 @@ DEFINITION (U"the positions of the two elements of the means vector whose "
 	"difference is compared to the hypothesized difference.")
 TAG (U"##Value")
 DEFINITION (U"the hypothesized difference (%\\mu).")
-TAG (U"##Paired")
+TAG (U"##Paired samples")
 DEFINITION (U"determines whether we treat the two means as being dependent. ")
 TAG (U"##Equal variances")
 DEFINITION (U"determines whether the distribution of the difference of the means "
@@ -1087,9 +1075,9 @@ DEFINITION (U"determines whether the distribution of the difference of the means
 ENTRY (U"Behaviour")
 NORMAL (U"This is Student's t-test for the significance of a difference of means. "
 	"The test statistic is:")
-FORMULA (U"%t = (%x\\-^__1_ - %x\\-^__2_ - %\\mu) \\Vr (%N / %s^2) with %ndf "
+FORMULA (U"%t = (%mean__1_ - %mean__2_ - %\\mu) \\Vr (%N / %s^2) with %ndf "
 	"degrees of freedom.")
-NORMAL (U"In the formula above %x\\-^__1_ and %x\\-^__2_ are the elements of the "
+NORMAL (U"In the formula above %mean__1_ and %mean__2_ are the elements of the "
 	"means vector, %\\mu is the hypothesized difference and %N is the number of "
 	"observations. The value that we use for the (combined) variance %s^2 is:")
 FORMULA (U"%s^2 = %var__1_ + %var__2_ - 2 * %covar__12_,")
@@ -1097,7 +1085,7 @@ NORMAL (U"when the samples are %paired, and ")
 FORMULA (U"%s^2 = %var__1_ + %var__2_ ")
 NORMAL (U"when they are not.")
 NORMAL (U"The %var__1_ and %var__2_ are the variance components for "
-	"%x\\-^__1_ and %x\\-^__2_, respectively, and %covar__12_ is their covariance."
+	"%mean__1_ and %mean__2_, respectively, and %covar__12_ is their covariance."
 	" When we have %%paired samples% we assume that the two variances are "
 	"not independent and their covariance is subtracted, otherwise their "
 	"covariance is not taken into account. Degrees of freedom parameter %ndf "
@@ -1112,13 +1100,13 @@ FORMULA (U"%p = 2 * studentQ (%t, %ndf)")
 NORMAL (U"A low probability %p means that the difference is significant.")
 MAN_END
 
-MAN_BEGIN (U"Covariance: Get significance of one variance...", U"djmw", 20160102)
+MAN_BEGIN (U"Covariance: Get significance of one variance...", U"djmw", 20040407)
 INTRO (U"Gets the probability for one variance from the selected "
 	"@Covariance object being different from a hypothesized variance.")
 ENTRY (U"Settings")
 TAG (U"##Index")
-DEFINITION (U"the position of the variance element %s^2.")
-TAG (U"##Value")
+DEFINITION (U"the position of the variance element.")
+TAG (U"##Hypothesized variance")
 DEFINITION (U"the hypothesized variance %\\si^2")
 ENTRY (U"Behaviour")
 NORMAL (U"The test statistic")
@@ -1199,17 +1187,22 @@ NORMAL (U"In case the covariance matrix is diagonal, the algorithm is much simpl
 MAN_END
 
 MAN_BEGIN (U"Covariance & TableOfReal: Extract quantile range...", U"djmw", 20040225)
-INTRO (U"Extract those rows from the selected @TableOfReal object whose @@Mahalanobis "
-	"distance@, with respect to the selected @Covariance object, are within the "
+INTRO (U"Extract those rows from the selected @TableOfReal object whose Mahalanobis "
+	"distance, with respect to the selected @Covariance object, are within the "
 	"quantile range.")
 MAN_END
 
-MAN_BEGIN (U"Covariance & TableOfReal: To TableOfReal (mahalanobis)...", U"djmw", 20151209)
-INTRO (U"Calculate @@Mahalanobis distance@ for the selected @TableOfReal with respect to the "
+MAN_BEGIN (U"Covariance & TableOfReal: To TableOfReal (mahalanobis)...", U"djmw", 20140509)
+INTRO (U"Calculate Mahalanobis distance for the selected @TableOfReal with respect to the "
 	"selected @Covariance object.")
 ENTRY (U"Setting")
 TAG (U"##Use table centroid")
 DEFINITION (U"Use the mean vector calculated from the columns in the selected TableOfReal instead of the means in the selected Covariance.")
+ENTRY (U"Explanation")
+NORMAL (U"The Mahalanobis distance is defined as")
+FORMULA (U"%d = \\Vr((#%x - #mean)\\'p #S^^-1^ (#%x - #mean)),")
+NORMAL (U"where #%x is a vector, #mean is the average and #S is the covariance matrix. ")
+NORMAL (U"It is the multivariate form of the distance measured in units of standard deviation.")
 ENTRY (U"Example")
 NORMAL (U"Count the number of items that are within 1, 2, 3, 4 and 5 standard deviations from the mean.")
 NORMAL (U"We first create a table with only one column and 10000 rows and fill it with numbers drawn from "
@@ -1521,21 +1514,11 @@ NORMAL (U"More details about these data and how they were measured can be found
 	"@@Weenink (1985)@.")
 MAN_END
 
-MAN_BEGIN (U"Discriminant", U"djmw", 20160128)
+MAN_BEGIN (U"Discriminant", U"djmw", 19981103)
 INTRO (U"One of the @@types of objects@ in P\\s{RAAT}.")
 NORMAL (U"An object of type Discriminant represents the discriminant structure of a multivariate "
-	"data set, i.e. a %%numberOfObservations%\\xx%%dimension% matrix. Each row in this data set belongs to one of %%numberOfGroups% groups (or %%classes% or %categories%, whatever terminology you prefer). " 
-	"A Discriminant can be used as a classifier to discriminate between these %%numberOfGroups% groups.")
-ENTRY (U"##Inside a Discriminant")
-NORMAL (U"With @@Inspect@, you will see that a Discriminant contains the following data:")
-LIST_ITEM (U"##eigen#")
-DEFINITION (U"the @@Eigen|eigen@ structure, i.e. the eigenvalues and eigenvectors.")
-LIST_ITEM (U"##numberOfGroups")
-DEFINITION (U"the number of groups between which we can discriminate.")
-LIST_ITEM (U"##groups")
-DEFINITION (U"a list of %%dimension%\\xx%%dimension% @SSCP matrices, one for each group, %numberOfGroups in total.")
-LIST_ITEM (U"##aprioriProbabilities")
-DEFINITION (U"an array with %numberOfGroups apriori probabilities of group membership")
+	"data set with several groups. This discriminant structure consists of a number of orthogonal "
+	"directions in space, along which maximum separability of the groups can occur.")
 ENTRY (U"Commands")
 NORMAL (U"Creation:")
 LIST_ITEM (U"\\bu @@Discriminant analysis@ tutorial")
@@ -1546,7 +1529,7 @@ LIST_ITEM (U"\\bu Draw eigenvector...")
 LIST_ITEM (U"\\bu @@Discriminant: Draw sigma ellipses...|Draw sigma ellipses...@")
 MAN_END
 
-MAN_BEGIN (U"Discriminant analysis", U"djmw", 20151224)
+MAN_BEGIN (U"Discriminant analysis", U"djmw", 20150902)
 INTRO (U"This tutorial will show you how to perform discriminant analysis with P\\s{RAAT}")
 NORMAL (U"As an example, we will use the dataset from @@Pols et al. (1973)@ "
 	"with the frequencies and levels of the first three formants from the 12 "
@@ -1581,7 +1564,7 @@ NORMAL (U"To get an indication of what these data look like, we make a scatter "
 	"first standardized log-formant-frequency against the second standardized "
 	"log-formant-frequency. With the next script fragment you can reproduce the "
 	"following picture.")
-CODE (U"Select outer viewport: 0, 5, 0, 5")
+CODE (U"Viewport: 0, 5, 0, 5")
 CODE (U"selectObject: table")
 CODE (U"Draw scatter plot: 1, 2, 0, 0, -2.9, 2.9, -2.9, 2.9, 10, \"yes\", \"+\", \"yes\"")
 PICTURE (5, 5, drawPolsF1F2_log)
@@ -1605,10 +1588,10 @@ NORMAL (U"You select a TableOfReal and a Discriminant object together and choose
 PICTURE (5, 5, drawPolsDiscriminantConfiguration)
 NORMAL (U"The following script summarizes:")
 CODE (U"selectObject: table, discriminant")
-CODE (U"To Configuration: 2")
-CODE (U"Select outer viewport: 0, 5, 0, 5")
+CODE (U"To Configuration: 0")
+CODE (U"Viewport: 0, 5, 0, 5")
 CODE (U"Draw: 1, 2, -2.9, 2.9, -2.9, 2.9, 12, \"yes\", \"+\", \"yes\"")
-NORMAL (U"If you are only interested in this projection, there also is a shortcut "
+NORMAL (U"If you are only interested in this projection, there also is a short cut "
 	"without an intermediate Discriminant object:  "
 	"select the TableOfReal object and choose @@TableOfReal: To Configuration "
 	"(lda)...|To Configuration (lda)... at .")
@@ -1640,23 +1623,23 @@ NORMAL (U"In general you would separate your data into two independent sets, "
 	"Several possibilities for splitting a dataset into two sets exist. "
 	"We mention the @@jackknife@ (\"leave-one-out\") and the "
 	"@@bootstrap@ methods (\"resampling\").")
-ENTRY (U"5.1 Jackknife classification")
+ENTRY (U"5.1 Jacknife classification")
 NORMAL (U"The following script summarizes #jackknife classification of the dataset:")
 CODE (U"selectObject: table")
 CODE (U"numberOfRows = Get number of rows")
 CODE (U"for irow to numberOfRows")
-	CODE1 (U"selectObject: table")
-	CODE1 (U"rowi = Extract rows where: \"row = irow\"")
-	CODE1 (U"selectObject: table")
-	CODE1 (U"rest = Extract rows where: \"row <> irow\"")
-	CODE1 (U"discriminant = To Discriminant")
-	CODE1 (U"plusObject: rowi")
-	CODE1 (U"classification = To ClassificationTable: \"yes\", \"yes\"")
-	CODE1 (U"if irow = 1")
-		CODE2 (U"confusion = To Confusion: \"yes\"")
-	CODE1 (U"else")
-CODE2 (U"    plusObject: confusion")
-CODE2 (U"    Increase confusion count")
+CODE (U"  selectObject: table")
+CODE (U"  rowi = Extract rows where: \"row = irow\"")
+CODE (U"  selectObject: table")
+CODE (U"  rest = Extract rows where: \"row <> irow\"")
+CODE (U"  discriminant = To Discriminant")
+CODE (U"  plusObject: rowi")
+CODE (U"  classification = To ClassificationTable: \"yes\", \"yes\"")
+CODE (U"    if irow = 1")
+CODE (U"    confusion = To Confusion: \"yes\"")
+CODE (U"  else")
+CODE (U"    plusObject: confusion")
+CODE (U"    Increase confusion count")
 CODE (U"  endif")
 CODE (U"  removeObject: rowi, rest, discriminant, classification")
 CODE (U"endfor")
@@ -1808,27 +1791,29 @@ NORMAL (U"The a priori probabilities normally will have values that are related
 FORMULA (U"%aprioriProbability__%i_ = %n__%i_ / \\Si__%k=1..%numberOfGroups_ %n__%k_")
 MAN_END
 
-MAN_BEGIN (U"Discriminant & TableOfReal: To Configuration...", U"djmw", 20160119)
+MAN_BEGIN (U"Discriminant & TableOfReal: To Configuration...", U"djmw", 20040407)
 INTRO (U"A command to project each row in the selected @TableOfReal onto "
-	"a subspace spanned by the eigenvectors of the selected @Discriminant. ")
+	"a space spanned by the eigenvectors of the selected @Discriminant. ")
 ENTRY (U"Settings")
 TAG (U"##Number of dimensions")
-DEFINITION (U"specifies the dimension of the resulting @Configuration. This dimension cannot exceed a maximum dimension that is implicitly determined by the selected Discriminant. When the default value (0) is "
-	"given the resulting Configuration will have the maximum dimension as allowed by Discrimininant. "
-	"(Technically speaking: the number of eigenvectors (or eigenvalues) in the selected Discriminant is equal to the maximum allowed dimension.)")
+DEFINITION (U"specifies the number of eigenvectors taken into account, i.e., determines "
+	"the dimension of the resulting @Configuration. When the default value (0) is "
+	"given the resulting Configuration will have the maximum dimension as allowed by "
+	"the number of eigenvectors in the selected Discriminant.")
 ENTRY (U"Precondition")
-NORMAL (U"The dimension of the Discriminant and the Configuration must conform in the sense that the number of columns in the TableOfReal and the length of an eigenvector in the Discriminant must be equal.")
+NORMAL (U"The number of columns in the TableOfReal must equal the dimension of the "
+	"eigenvectors in the Discriminant.")
 NORMAL (U"See also @@Eigen & TableOfReal: Project... at .")
 MAN_END
 
 MAN_BEGIN (U"Discriminant & TableOfReal: To TableOfReal (mahalanobis)...", U"djmw", 20140509)
-INTRO (U"Calculate @@Mahalanobis distance at s for the selected @TableOfReal with respect to one group in the "
+INTRO (U"Calculate Mahalanobis distances for the selected @TableOfReal with respect to one group in the "
 	"selected @Discriminant object.")
 ENTRY (U"Settings")
 TAG (U"##Group label")
 DEFINITION (U"defines which group mean to use for the distance calculation.")
 TAG (U"##Pool covariance matrices")
-DEFINITION (U"when on, use a pooled covariance matrix instead of the group covariance matrix.")
+DEFINITION (U"when on use a pooled covariance matrix instead of the group covariance matrix.")
 ENTRY (U"Algorithm")
 NORMAL (U"See @@Covariance & TableOfReal: To TableOfReal (mahalanobis)... at .")
 ENTRY (U"Example")
@@ -2155,7 +2140,7 @@ NORMAL (U"A @@Scree plot|scree@ plot can be obtained if both %%Fraction of eigen
 	"and %%Cumulative% are unchecked.")
 MAN_END
 
-MAN_BEGIN (U"Eigen: Draw eigenvector...", U"djmw", 20160223)
+MAN_BEGIN (U"Eigen: Draw eigenvector...", U"djmw", 20040407)
 INTRO (U"A command to draw an eigenvector from the selected @Eigen.")
 ENTRY (U"Settings")
 TAG (U"##Eigenvector number")
@@ -2167,7 +2152,7 @@ DEFINITION (U"when on, the eigenvector is multiplied with the square root of the
 	"quantitatively the elements in different component loading vectors because "
 	"the %i-th element in the %j-th component loading vector gives the covariance between the %i-th "
 	"original variable and the %j-th principal component.)")
-TAG (U"##Element range#")
+TAG (U"##Element rang%")
 DEFINITION (U"determine the first and last element of the vector that must be drawn.")
 TAG (U"##Minimum# and ##Maximum#")
 DEFINITION (U"determine the lower and upper bounds of the plot (choosing #Maximum smaller than #Minimum "
@@ -2204,40 +2189,22 @@ INTRO (U"A command to query the selected @Eigen for the %j^^th^ element of the "
 	"%i^^th^ eigenvector.")
 MAN_END
 
-MAN_BEGIN (U"Eigen & Matrix: To Matrix (project columns)...", U"djmw", 20160223)
+MAN_BEGIN (U"Eigen & Matrix: Project...", U"djmw", 20040407)
 INTRO (U"A command to project the columns of the @Matrix object onto the "
 	"eigenspace of the @Eigen object.")
 ENTRY (U"Setting")
 TAG (U"##Number of dimensions")
 DEFINITION (U"defines the dimension, i.e., the number of rows, of the "
-	"resulting Matrix object.")
+	"resulting object.")
 ENTRY (U"Algorithm")
 NORMAL (U"Project each column of the Matrix on the coordinate "
 	"system given by the eigenvectors of the Eigen object. This can be done "
 	"as follows:")
-FORMULA (U"%y__%ij_ = \\Si__%k=1..%dimension_ %e__ik_ %z__%kj_, where")
-NORMAL (U"%y__%ij_ is the %j-th element of the %i-th row of the result, "
-	"%e__%ik_ is the %k-th element of the %i-th eigenvector, "
-	"%z__%kj_ is the %k-th element of the %j-th column of the selected "
-	"Matrix object, and %%dimension% is the number of elements in an eigenvector.")
-MAN_END
-
-MAN_BEGIN (U"Eigen & Matrix: To Matrix (project rows)...", U"djmw", 20160223)
-INTRO (U"A command to project the rows of the @Matrix object onto the "
-	"eigenspace of the @Eigen object.")
-ENTRY (U"Setting")
-TAG (U"##Number of dimensions")
-DEFINITION (U"defines the dimension, i.e., the number of columns, of the "
-	"resulting Matrix object.")
-ENTRY (U"Algorithm")
-NORMAL (U"Project each row of the Matrix on the coordinate "
-	"system given by the eigenvectors of the Eigen object. This can be done "
-	"as follows:")
-FORMULA (U"%y__%ij_ = \\Si__%k=1..%dimension_ %e__jk_ %z__%ik_, where")
-NORMAL (U"%y__%ij_ is the %j-th element of the %i-th row of the result, "
-	"%e__%jk_ is the %k-th element of the %j-th eigenvector, "
-	"%z__%ik_ is the %k-th element of the %i-th row of the selected "
-	"Matrix object, and %%dimension% is the number of elements in an eigenvector.")
+FORMULA (U"%y__%ji_ = \\Si__%k=1..%numberOfColums_ %e__jk_ %x__%ki_, where")
+NORMAL (U"%y__%ji_ is the %j-th element of the %i-th column of the resulting "
+	"(matrix) object, %e__%jk_ is the %k-th element of the %j-th eigenvector "
+	"and, %x__%ki_ is the %k-th element of the %i-th column of the selected "
+	"matrix object.")
 MAN_END
 
 MAN_BEGIN (U"Eigen & SSCP: Project", U"djmw", 20020328)
@@ -2394,36 +2361,6 @@ INTRO (U"$$fisherQ$ (%f, %df1, %df2) returns the area under Fisher's F-distribut
 	"from %f to +\\oo.")
 MAN_END
 
-MAN_BEGIN (U"IDX file format", U"djmw", 20160220)
-INTRO (U"The IDX file format is a simple format for vectors and multidimensional matrices of various numerical types. ")
-NORMAL (U"The basic format according to %%http://yann.lecun.com/exdb/mnist/% is:")
-CODE (U"magic number")
-CODE (U"size in dimension 1")
-CODE (U"size in dimension 2")
-CODE (U"size in dimension 3")
-CODE (U"....")
-CODE (U"size in dimension N")
-CODE (U"data")
-NORMAL (U"The magic number is four bytes long. The first 2 bytes are always 0.")
-NORMAL (U"The third byte codes the type of the data:")
-CODE (U"0x08: unsigned byte")
-CODE (U"0x09: signed byte")
-CODE (U"0x0B: short (2 bytes)")
-CODE (U"0x0C: int (4 bytes)")
-CODE (U"0x0D: float (4 bytes)")
-CODE (U"0x0E: double (8 bytes)")
-NORMAL (U"The fouth byte codes the number of dimensions of the vector/matrix: 1 for vectors, 2 for matrices....")
-NORMAL (U"The sizes in each dimension are 4-byte integers (big endian, like in most non-Intel processors).")
-NORMAL (U"The data is stored like in a C array, i.e. the index in the last dimension changes the fastest.")
-ENTRY (U"Behaviour")
-NORMAL (U"If the storage format indicates that there are more than 2 dimensions, the resulting Matrix accumulates dimensions 2 and higher in the columns. For example, with three dimensions of size n1, n2 and n3, respectively, the resulting Matrix object will have n1 rows and %%n2\\xxn3% columns.")
-
-ENTRY (U"Example")
-NORMAL (U"The training and testing data of the MNIST database of handwritten digits at http://yann.lecun.com/exdb/mnist/ is stored in %%compressed% IDX formatted files. ")
-NORMAL (U"Reading the uncompressed file %%train-images-idx3-ubyte% available at http://yann.lecun.com/exdb/mnist/ with 60000 images of 28\\xx28 pixel data, will result in a new Matrix object with 60000 rows and 784 (=28\\xx28) columns. Each cell will contain a number in the interval from 0 to 255.")
-NORMAL (U"Reading the uncompressed file %%train-labels-idx1-ubyte% with 60000 labels will result in a new Matrix object with 1 row and 60000 columns. Each cell will contain a number in the interval from 0 to 9.")
-MAN_END
-
 MAN_BEGIN (U"ISpline", U"djmw", 19990627)
 INTRO (U"One of the @@types of objects@ in P\\s{RAAT}. ")
 NORMAL (U"An object of type ISpline represents a linear combination of basis "
@@ -2476,17 +2413,6 @@ FORMULA (U"\\Si__%k=1..%numberOfCoefficients_ %c__%k_ %x^^%k^ = "
 NORMAL (U"We use the recurrence relation for @@Legendre polynomials@ to calculate these coefficients.")
 MAN_END
 
-MAN_BEGIN (U"Mahalanobis distance", U"djmw", 20160120)
-INTRO (U"The Mahalanobis distance is defined as the distance between a (multidimensional) point and a distribution. "
-	"It is the multivariate form of the distance measured in units of standard deviation and is "
-	"named after the famous Indian statistician R.P. Mahalanobis (1893 \\-- 1972).")
-NORMAL (U"Given a normal distribution with covariance matrix ##S# and mean ##\\mu#, the squared Mahalanobis distance of a point "
-	"##x## to the mean of this distribution is given by %d^^2^(##x#)=(##x#-##\\mu#)##\\'p###S#^^-1^(##x#-##\\mu#), where "
-	"(##x#-##\\mu#)##\\'p# is the transpose of (##x#-##\\mu#).")
-NORMAL (U"The distance formula above says that we have to weigh dimensions according to their covariances. If the covariance matrix ##S# "
-	"happens to be diagonal the formula above reduces to %d^^2^(##x#)=\\Si__%i=1_^^N^ (%x__%i_-%\\mu__%i_)^^2^/%\\si__%i_.")
-MAN_END
-
 MAN_BEGIN (U"Matrix: Draw distribution...", U"djmw", 20041110)
 INTRO (U"A command to draw the distribution histogram of the values in the selected part of a @Matrix.")
 ENTRY (U"Settings")
@@ -2740,7 +2666,7 @@ NORMAL (U"Because the algorithm performs a projection, the resulting Configurati
 NORMAL (U"See also @@Eigen & TableOfReal: Project... at .")
 MAN_END
 
-MAN_BEGIN (U"PCA & TableOfReal: To TableOfReal (z-scores)...", U"djmw", 20151208)
+MAN_BEGIN (U"PCA & TableOfReal: To TableOfReal (z-scores)...", U"djmw", 20120510)
 INTRO (U"A command to construct a @TableOfReal with z-scores from the selected @TableOfReal"
 	" and @PCA.")
 ENTRY (U"Setting")
@@ -2750,8 +2676,8 @@ ENTRY (U"Algorithm")
 NORMAL (U"The values %d__%ij_ in the new TableOfReal are calculated as")
 FORMULA (U"%d__%ij_ = ##eigenvector#__j_\\.c ##z#__%i_,")
 NORMAL (U"which is the inproduct of the %j-th eigenvector and the z-score vector ##z#__%i_ of the %i-th row whose elements %z__%ij_ are defined as")
-FORMULA (U"%z__%ij_ = (%x__%ij_ - x\\-^__%j_) / sqrt (eigenvalue__%j_),")
-NORMAL (U"in which %x__%ij_ is the data value at row %i and column %j of the selected TableOfReal and x\\-^__%j_ is the "
+FORMULA (U"%z__%ij_ = (data__%ij_ - mean__%j_) / sqrt (eigenvalue__%j_),")
+NORMAL (U"in which data__%ij_ is the data value at row %i and column %j of the selected TableOfReal and mean__%j_ is the "
 	"%j-th centroid value of the PCA. The square root of the %j-th eigenvalue is the standard deviation in "
 	" the %j-th principal direction.")
 MAN_END
@@ -2938,7 +2864,7 @@ FORMULA (U"%z__%k_ = %r e^^%i %k %\\fi^, where,")
 FORMULA (U"%\\fi = \\pi / (%numberOfFrequencies \\-- 1) and %r = 1.")
 MAN_END
 
-MAN_BEGIN (U"Principal component analysis", U"djmw", 20160222)
+MAN_BEGIN (U"Principal component analysis", U"djmw", 20120510)
 INTRO (U"This tutorial describes how you can perform principal component "
        "analysis with P\\s{RAAT}.")
 NORMAL (U"Principal component analysis (PCA) involves a mathematical procedure "
@@ -2952,9 +2878,9 @@ LIST_ITEM (U"\\bu To discover or to reduce the dimensionality of the data set.")
 LIST_ITEM (U"\\bu To identify new meaningful underlying variables.")
 ENTRY (U"2. How to start")
 NORMAL (U"We assume that the multi-dimensional data have been collected in a @TableOfReal data matrix, "
-	"in which the rows are associated with the cases and the columns with the variables. The TableOfReal is therefore interpreted as %%numberOfRows% data vectors, each data vector has %%numberofColumns% elements.")
+	"in which the rows are associated with the cases and the columns with the variables.")
 NORMAL (U"Traditionally, principal component analysis is performed on the "
-	"@@Covariance|Covariance@ matrix or on the @@correlation|Correlation@ matrix. "
+	"symmetric @@Covariance|Covariance@ matrix or on the symmetric @@correlation|Correlation@ matrix. "
 	"These matrices can be calculated from the data matrix. "
 	"The covariance matrix contains scaled @@SSCP|sums of squares and cross products at . "
 	"A correlation matrix is like a covariance matrix but first the variables, i.e. the columns, have been standardized.  "
@@ -2962,7 +2888,7 @@ NORMAL (U"Traditionally, principal component analysis is performed on the "
 	"variables differ much, or if the units of measurement of the "
 	"variables differ. You can standardize the data in the TableOfReal by choosing @@TableOfReal: Standardize columns|Standardize columns at .")
 NORMAL (U"To perform the analysis, we select the TabelOfReal data matrix in the list of objects and choose "
-	"@@TableOfReal: To PCA|To PCA at . This will result in a new PCA object in the "
+	"@@TableOfReal: To PCA|To PCA at . This results in a new PCA object in the "
 	"list of objects.")
 NORMAL (U"We can now make a @@Scree plot|scree@ plot of the eigenvalues, @@Eigen: Draw "
 	"eigenvalues...|Draw eigenvalues...@ "
@@ -2973,15 +2899,14 @@ NORMAL (U"We can now make a @@Scree plot|scree@ plot of the eigenvalues, @@Eigen
 	"accounted for... at . You might also check for the equality of a "
 	"number of eigenvalues: @@PCA: Get equality of eigenvalues...|Get equality "
 	"of eigenvalues... at .")
-ENTRY (U"3. Determining the number of components to keep")
-NORMAL (U"There are two methods to help you to choose the number of components to keep. "
+ENTRY (U"3. Determining the number of components")
+NORMAL (U"There are two methods to help you to choose the number of components. "
 	"Both methods are based on relations between the eigenvalues.")
 LIST_ITEM (U"\\bu Plot the eigenvalues, @@Eigen: Draw eigenvalues...|"
 	"Draw eigenvalues... at . If the points on the graph tend to level out (show an \"elbow\"), "
 	"these eigenvalues are usually close enough to zero that they can be "
 	"ignored.")
-LIST_ITEM (U"\\bu Limit the number of components to that number that accounts for a certain fraction of the total variance. For example, "
-	"if you are satisfied with 95\\%  of the total variance explained, then use the number you get by the query @@PCA: Get number of components (VAF)...|Get number of components (VAF)...@ 0.95#.")
+LIST_ITEM (U"\\bu Limit the number of components to that number that accounts for a certain fraction of the total variance. For example, if you are satisfied with 95% of the total variance explained then use the number you get by the query ##Get number of components (VAF)... 0.95#.")
 ENTRY (U"4. Getting the principal components")
 NORMAL (U"Principal components are obtained by projecting the multivariate "
 	"datavectors on the space spanned by the eigenvectors. This can be done "
@@ -3783,15 +3708,13 @@ DEFINITION (U"determines the label for a silent interval in the TextGrid.") \
 TAG (U"##Sounding interval label") \
 DEFINITION (U"determines the label for a sounding interval in the TextGrid.")
 
-MAN_BEGIN (U"Sound: To TextGrid (silences)...", U"djmw", 20160406)
+MAN_BEGIN (U"Sound: To TextGrid (silences)...", U"djmw", 20061205)
 INTRO (U"A command that creates a @TextGrid in which the silent and sounding intervals of the selected @Sound are marked.")
 ENTRY (U"Settings")
 xxx_to_TextGrid_detectSilences_COMMON_PARAMETERS_HELP
 ENTRY (U"Algorithm")
-NORMAL (U"First a copy of the sound is @@Sound: Filter (pass Hann band)...|bandpass filtered@ between 80 and 8000 Hz to "
-	"remove especially the low frequency noise that can have a significant influence on the intensity measurement but does not "
-	"really contribute to the sound. Next the @@Sound: To Intensity...|intensity of the filtered sound@ is determined. "
-	"Finally the silent and sounding intervals are determined @@Intensity: To TextGrid (silences)...|from the intensity curve at .")
+NORMAL (U"First the intensity is determined according to the @@Sound: To Intensity...@ command. "
+	"Next the silent and sounding intervas are determined as in the @@Intensity: To TextGrid (silences)...@ command.")
 MAN_END
 
 MAN_BEGIN (U"Intensity: To TextGrid (silences)...", U"djmw", 20061201)
@@ -4136,8 +4059,8 @@ NORMAL (U"Normally %numberOfConstraints will equal 1. However, when the SSCP was
 MAN_END
 
 MAN_BEGIN (U"SSCP & TableOfReal: Extract quantile range...", U"djmw", 20040225)
-INTRO (U"Extract those rows from the selected @TableOfReal object whose @@Mahalanobis "
-	"distance@, with respect to the selected @SSCP object, are within the "
+INTRO (U"Extract those rows from the selected @TableOfReal object whose Mahalanobis "
+	"distance, with respect to the selected @SSCP object, are within the "
 	"quantile range.")
 MAN_END
 
@@ -4682,7 +4605,7 @@ ENTRY (U"Remark")
 NORMAL (U"The resulting configuration is unique up to reflections along the new principal directions.")
 MAN_END
 
-MAN_BEGIN (U"TableOfReal: To Correlation", U"djmw", 20151209)
+MAN_BEGIN (U"TableOfReal: To Correlation", U"djmw", 20020105)
 INTRO (U"A command that creates a (%Pearson) @Correlation object from every "
 	"selected @TableOfReal object. The correlations are calculated between "
 	"columns.")
@@ -4690,14 +4613,14 @@ ENTRY (U"Algorithm")
 NORMAL (U"The linear correlation coefficient %r__%ij_ (also called the %%product"
 	" moment correlation coefficient% or %%Pearson's correlation coefficient%) "
 	" between the elements of columns %i and %j is calculated as:")
-FORMULA (U"%r__%ij_ = \\Si__%k_ (%x__%ki_ - %x\\-^__%i_)(%x__%kj_ - %x\\-^__%j_)/"
-	"(\\Vr (\\Si__%k_(%x__%ki_ - %x\\-^__%i_)^2) \\Vr (\\Si__%k_(%x__%kj_ -"
-	" %x\\-^__%j_)^2)),")
-NORMAL (U"where %x__%mn_ is the element %m in column %n, and %x\\-^__%n_ "
+FORMULA (U"%r__%ij_ = \\Si__%k_ (%x__%ki_ - %mean__%i_)(%x__%kj_ - %mean__%j_)/"
+	"(\\Vr (\\Si__%k_(%x__%ki_ - %mean__%i_)^2) \\Vr (\\Si__%k_(%x__%kj_ -"
+	" %mean__%j_)^2)),")
+NORMAL (U"where %x__%mn_ is the element %m in column %n, and %mean__%n_ "
 	"is the mean of column %n.")
 MAN_END
 
-MAN_BEGIN (U"TableOfReal: To Correlation (rank)", U"djmw", 20151209)
+MAN_BEGIN (U"TableOfReal: To Correlation (rank)", U"djmw", 20020105)
 INTRO (U"A command that creates a (%%Spearman rank-order%) @Correlation object "
 	"from every selected @TableOfReal object. The correlations are calculated "
 	"between columns.")
@@ -4705,23 +4628,23 @@ ENTRY (U"Algorithm")
 NORMAL (U"The Spearman rank-order correlation coefficient %r__%ij_ between "
 	"the elements of columns %i and %j is calculated as the linear correlation"
 	" of the ranks:")
-FORMULA (U"%r__%ij_ = \\Si__%k_ (%R__%ki_ - %R\\-^__%i_) "
-	"(%R__%kj_ - %R\\-^__%j_) / (\\Vr (\\Si__%k_(%R__%ki_ - %R\\-^__%i_)^2) "
-	"\\Vr (\\Si__%k_(%R__%kj_ - %R\\-^__%j_)^2)),")
+FORMULA (U"%r__%ij_ = \\Si__%k_ (%R__%ki_ - %Rmean__%i_) "
+	"(%R__%kj_ - %Rmean__%j_) / (\\Vr (\\Si__%k_(%R__%ki_ - %Rmean__%i_)^2) "
+	"\\Vr (\\Si__%k_(%R__%kj_ - %Rmean__%j_)^2)),")
 NORMAL (U"where %R__%mn_ is the rank of element %m in column %n, "
-	"and %R\\-^__%n_ is the mean of the ranks in column %n.")
+	"and %Rmean__%n_ is the mean of the ranks in column %n.")
 MAN_END
 
-MAN_BEGIN (U"TableOfReal: To Covariance", U"djmw", 20151209)
+MAN_BEGIN (U"TableOfReal: To Covariance", U"djmw", 20020117)
 INTRO (U"A command that creates a @Covariance object from every "
 	"selected @TableOfReal object. The covariances are calculated between "
 	"columns.")
 ENTRY (U"Algorithm")
 NORMAL (U"The covariance coefficients %s__%ij_ "
 	" between the elements of columns %i and %j are defined as:")
-FORMULA (U"%s__%ij_ = \\Si__%k_ (%x__%ki_ - %x\\-^__%i_)(%x__%kj_ - %x\\-^__%j_)/"
+FORMULA (U"%s__%ij_ = \\Si__%k_ (%x__%ki_ - %mean__%i_)(%x__%kj_ - %mean__%j_)/"
 	"(%numberOfObservations - %numberOfConstraints),")
-NORMAL (U"where %x__%ki_ is the element %k in column %i, %x\\-^__%i_ "
+NORMAL (U"where %x__%ki_ is the element %k in column %i, %mean__%i_ "
 	"is the mean of column %i, %numberOfObservations equals the number of rows in "
 	"the table, and %numberOfConstraints equals 1.")
 NORMAL (U"The actual calculation goes as follows")
@@ -4751,10 +4674,9 @@ NORMAL (U"The a priori probabilities in the Discriminant will be calculated from
 FORMULA (U"%aprioriProbability__%i_ = %n__%i_ / \\Si__%k=1..%numberOfGroups_ %n__%k_")
 MAN_END
 
-MAN_BEGIN (U"TableOfReal: To PCA", U"djmw", 20160223)
+MAN_BEGIN (U"TableOfReal: To PCA", U"djmw", 19980106)
 INTRO (U"A command that creates a @PCA object from every selected "
-	"@TableOfReal object, where the TableOfReal object is interpreted as row-oriented, i.e. %%numberOfRows% data vectors, each data vector has %%numberofColumns% elements.")
-NORMAL (U"In @@Principal component analysis|the tutorial on PCA@ you will find more info on principal component analysis.")
+	"@TableOfReal object.")
 MAN_END
 
 MAN_BEGIN (U"TableOfReal: To SSCP...", U"djmw", 19990218)
@@ -4762,8 +4684,8 @@ INTRO (U"Calculates Sums of Squares and Cross Products (@SSCP) from the selected
 ENTRY (U"Algorithm")
 NORMAL (U"The sums of squares and cross products %s__%ij_ "
 	" between the elements of columns %i and %j are calculated as:")
-FORMULA (U"%s__%ij_ = \\Si__%k_ (%x__%ki_ - %x\\-^__%i_)(%x__%kj_ - %x\\-^__%j_),")
-NORMAL (U"where %x__%mn_ is the element %m in column %n and %x\\-^__%n_ "
+FORMULA (U"%s__%ij_ = \\Si__%k_ (%x__%ki_ - %mean__%i_)(%x__%kj_ - %mean__%j_),")
+NORMAL (U"where %x__%mn_ is the element %m in column %n and %mean__%n_ "
 	"is the mean of column %n.")
 MAN_END
 
diff --git a/dwtools/praat_BSS_init.cpp b/dwtools/praat_BSS_init.cpp
index 2eaf395..c377d51 100644
--- a/dwtools/praat_BSS_init.cpp
+++ b/dwtools/praat_BSS_init.cpp
@@ -1,6 +1,6 @@
-/* praat_BSS_init.cpp
+/* praat_BSS_init.c
  *
- * Copyright (C) 2010-2014,2015 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 2010-2014 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ DO
 	LOOP {
 		iam (EEG);
 		autoCrossCorrelationTable cct = EEG_to_CrossCorrelationTable (me, startTime, endTime, lagTime, channelRanges);
-		praat_new (cct.move(), my name, U"_", (long) floor (lagTime*1000)); // lagTime to ms   ppgb: geeft afrondingsfouten; waarom niet round?
+		praat_new (cct.transfer(), my name, U"_", (long) floor (lagTime*1000)); // lagTime to ms   ppgb: geeft afrondingsfouten; waarom niet round?
 	}
 END
 
@@ -68,11 +68,11 @@ DO
 	LOOP {
 		iam (EEG);
 		autoCovariance cov = EEG_to_Covariance (me, startTime, endTime, channelRanges);
-		praat_new (cov.move(), my name);
+		praat_new (cov.transfer(), my name);
 	}
 END
 
-FORM (EEG_to_CrossCorrelationTableList, U"EEG: To CrossCorrelationTableList", U"EEG: To CrossCorrelationTableList...")
+FORM (EEG_to_CrossCorrelationTables, U"EEG: To CrossCorrelationTables", U"EEG: To CrossCorrelationTables...")
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"10.0")
 	POSITIVE (U"Lag step (s)", U"0.02")
@@ -83,9 +83,9 @@ FORM (EEG_to_CrossCorrelationTableList, U"EEG: To CrossCorrelationTableList", U"
 DO
 	LOOP {
 		iam (EEG);
-		autoCrossCorrelationTableList thee = EEG_to_CrossCorrelationTableList (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		autoCrossCorrelationTables thee = EEG_to_CrossCorrelationTables (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 			GET_REAL (U"Lag step"), GET_INTEGER (U"Number of cross-correlations"), GET_STRING (U"Channel ranges"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -116,7 +116,7 @@ DO
 			GET_INTEGER (U"Number of cross-correlations"), GET_REAL (U"Lag step"), GET_STRING (U"Channel ranges"),
 			whiteningMethod, GET_INTEGER (U"Diagonalization method"),
 			GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance"));
-		praat_new (thee.move(), my name, U"_bss");
+		praat_new (thee.transfer(), my name, U"_bss");
 	}
 END
 
@@ -136,7 +136,7 @@ DO
 	LOOP {
 		iam (EEG);
 		autoPCA pca = EEG_to_PCA (me, startTime, endTime, channelRanges, useCorrelation);
-		praat_new (pca.move(), my name);
+		praat_new (pca.transfer(), my name);
 	}
 END
 
@@ -147,7 +147,7 @@ DO
 	EEG me = FIRST (EEG);
 	PCA thee = FIRST (PCA);
 	autoEEG him = EEG_and_PCA_to_EEG_principalComponents (me, thee, GET_INTEGER (U"Number of components"));
-	praat_new (him.move(), my name, U"_pc");
+	praat_new (him.transfer(), my name, U"_pc");
 END
 
 FORM (EEG_and_PCA_to_EEG_whiten, U"EEG & PCA: To EEG (whiten)", U"EEG & PCA: To EEG (whiten)...")
@@ -157,7 +157,7 @@ DO
 	EEG me = FIRST (EEG);
 	PCA thee = FIRST (PCA);
 	autoEEG him = EEG_and_PCA_to_EEG_whiten (me, thee, GET_INTEGER (U"Number of components"));
-	praat_new (him.move(), my name, U"_white");
+	praat_new (him.transfer(), my name, U"_white");
 END
 
 FORM (EEG_to_Sound_modulated, U"EEG: To Sound (modulated)", 0)
@@ -171,7 +171,7 @@ DO
 		iam (EEG);
 		autoSound thee = EEG_to_Sound_modulated (me, GET_REAL (U"Start frequency"), GET_REAL (U"Channel bandwidth"),
 			GET_STRING (U"Channel ranges"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -187,13 +187,13 @@ DO
 		iam (EEG);
 		autoSound thee = EEG_to_Sound_frequencyShifted (me, channel, GET_REAL (U"Frequency shift"),
 			GET_REAL (U"Sampling frequecy"), GET_REAL (U"Maximum amplitude"));
-		praat_new (thee.move(), my name, U"_ch", channel);
+		praat_new (thee.transfer(), my name, U"_ch", channel);
 	}
 END
 
 /********************** CrossCorrelationTable(s) ******************/
 
-FORM (CrossCorrelationTableList_createTestSet, U"CrossCorrelationTableList: Create test set", U"CrossCorrelationTableList: Create test set...")
+FORM (CrossCorrelationTables_createTestSet, U"CrossCorrelationTables: Create test set", U"CrossCorrelationTables: Create test set...")
 	WORD (U"Name", U"5x5")
 	NATURAL (U"Matrix dimension", U"5")
 	NATURAL (U"Number of matrices", U"20")
@@ -201,9 +201,8 @@ FORM (CrossCorrelationTableList_createTestSet, U"CrossCorrelationTableList: Crea
 	REAL (U"Sigma", U"0.02")
 	OK
 DO
-	autoCrossCorrelationTableList thee = CrossCorrelationTableList_createTestSet (GET_INTEGER (U"Matrix dimension"),
-		GET_INTEGER (U"Number of matrices"), GET_INTEGER (U"First is positive definite"), GET_REAL (U"Sigma"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (CrossCorrelationTables_createTestSet (GET_INTEGER (U"Matrix dimension"),
+		GET_INTEGER (U"Number of matrices"), GET_INTEGER (U"First is positive definite"), GET_REAL (U"Sigma")), GET_STRING (U"Name"));
 END
 
 FORM (CrossCorrelationTable_createSimple, U"Create simple CrossCorrelationTable", 0)
@@ -213,9 +212,8 @@ FORM (CrossCorrelationTable_createSimple, U"Create simple CrossCorrelationTable"
 	NATURAL (U"Number of samples", U"100")
 	OK
 DO
-	autoCrossCorrelationTable thee = CrossCorrelationTable_createSimple (GET_STRING (U"Cross correlations"), GET_STRING (U"Centroid"),
-		GET_INTEGER (U"Number of samples"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (CrossCorrelationTable_createSimple (GET_STRING (U"Cross correlations"), GET_STRING (U"Centroid"),
+		GET_INTEGER (U"Number of samples")), GET_STRING (U"Name"));
 END
 
 FORM (MixingMatrix_createSimple, U"Create simple MixingMatrix", 0)
@@ -225,9 +223,8 @@ FORM (MixingMatrix_createSimple, U"Create simple MixingMatrix", 0)
 	SENTENCE (U"Mixing coefficients", U"1.0 1.0 1.0 1.0")
 	OK
 DO
-	autoMixingMatrix thee = MixingMatrix_createSimple (GET_INTEGER (U"Number of channels"), GET_INTEGER (U"Number of components"),
-		GET_STRING (U"Mixing coefficients"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (MixingMatrix_createSimple (GET_INTEGER (U"Number of channels"), GET_INTEGER (U"Number of components"),
+		GET_STRING (U"Mixing coefficients")), GET_STRING (U"Name"));
 END
 
 DIRECT (CrossCorrelationTable_help)
@@ -240,8 +237,7 @@ FORM (Sound_and_PCA_principalComponents, U"Sound & PCA: To Sound (principal comp
 DO
 	Sound me = FIRST (Sound);
 	PCA thee = FIRST (PCA);
-	autoSound him = Sound_and_PCA_principalComponents (me, thee, GET_INTEGER (U"Number of components"));
-	praat_new (him.move(), my name, U"_pc");
+	praat_new (Sound_and_PCA_principalComponents (me, thee, GET_INTEGER (U"Number of components")), Thing_getName (me), U"_pc");
 END
 
 FORM (Sound_and_PCA_whitenChannels, U"Sound & PCA: To Sound (white channels)", 0)
@@ -250,16 +246,14 @@ FORM (Sound_and_PCA_whitenChannels, U"Sound & PCA: To Sound (white channels)", 0
 DO
 	Sound me = FIRST (Sound);
 	PCA thee = FIRST (PCA);
-	autoSound him = Sound_and_PCA_whitenChannels (me, thee, GET_INTEGER (U"Number of components"));
-	praat_new (him.move(), my name, U"_white");
+	praat_new (Sound_and_PCA_whitenChannels (me, thee, GET_INTEGER (U"Number of components")), Thing_getName (me), U"_white");
 END
 
-DIRECT (CrossCorrelationTable_to_CrossCorrelationTableList)
-	autoCrossCorrelationTableList thee = CrossCorrelationTableList_create ();
+DIRECT (CrossCorrelationTable_to_CrossCorrelationTables)
+	autoCrossCorrelationTables thee = CrossCorrelationTables_create ();
 	long nrows = 0, ncols = 0, nselected = 0;
 	LOOP {
-		iam (CrossCorrelationTable);
-		nselected++;
+		iam (CrossCorrelationTable); nselected++;
 		if (nselected == 1) {
 			nrows = my numberOfRows;
 			ncols = my numberOfColumns;
@@ -268,9 +262,9 @@ DIRECT (CrossCorrelationTable_to_CrossCorrelationTableList)
 			Melder_throw (U"Dimensions of table ", IOBJECT, U" differs from the rest.");
 		}
 		autoCrossCorrelationTable myc = Data_copy (me);
-		thy addItem_move (myc.move());
+		Collection_addItem (thee.peek(), myc.transfer());
 	}
-	praat_new (thee.move(), U"ct_", nselected);
+	praat_new (thee.transfer(), U"ct_", nselected);
 END
 
 FORM (Sound_to_Covariance_channels, U"Sound: To Covariance (channels)", U"Sound: To Covariance (channels)...")
@@ -280,8 +274,7 @@ FORM (Sound_to_Covariance_channels, U"Sound: To Covariance (channels)", U"Sound:
 DO
 	LOOP {
 		iam (Sound);
-		autoCovariance thee = Sound_to_Covariance_channels (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_Covariance_channels (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range")), my name);
 	}
 END
 
@@ -294,9 +287,8 @@ DO
 	double lagTime = fabs (GET_REAL (U"Lag step"));
     LOOP {
         iam (Sound);
-		autoCrossCorrelationTable thee = Sound_to_CrossCorrelationTable (me, GET_REAL (U"left Time range"),
-        GET_REAL (U"right Time range"), lagTime);
-        praat_new (thee.move(), my name);
+        praat_new (Sound_to_CrossCorrelationTable (me, GET_REAL (U"left Time range"),
+        GET_REAL (U"right Time range"), lagTime), my name);
     }
 END
 
@@ -306,50 +298,50 @@ FORM (Sounds_to_CrossCorrelationTable_combined, U"Sound: To CrossCorrelationTabl
 	REAL (U"Lag step (s)", U"0.0")
 	OK
 DO
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		(s1 ? s2 : s1) = me;
 	}
-	Melder_assert (s1 && s2);
+	Melder_assert (s1 != NULL && s2 != NULL);
 	autoCrossCorrelationTable thee = Sounds_to_CrossCorrelationTable_combined (s1, s2, GET_REAL (U"left Time range"),
 		GET_REAL (U"right Time range"), GET_REAL (U"Lag step"));
-	praat_new (thee.move(), s1 -> name, U"_", s2 -> name, U"_cc");
+	praat_new (thee.transfer(), s1 -> name, U"_", s2 -> name, U"_cc");
 END
 
-DIRECT (CrossCorrelationTableList_help)
-Melder_help (U"CrossCorrelationTableList");
+DIRECT (CrossCorrelationTables_help)
+Melder_help (U"CrossCorrelationTables");
 	END
 
-FORM (CrossCorrelationTableList_getDiagonalityMeasure, U"CrossCorrelationTableList: Get diagonality measure", U"CrossCorrelationTableList: Get diagonality measure...")
+FORM (CrossCorrelationTables_getDiagonalityMeasure, U"CrossCorrelationTables: Get diagonality measure", U"CrossCorrelationTables: Get diagonality measure...")
 	NATURAL (U"First table", U"1")
 	NATURAL (U"Last table", U"100")
 	OK
 DO
 	LOOP {
-		iam (CrossCorrelationTableList);
-		double dm = CrossCorrelationTableList_getDiagonalityMeasure (me, 0, GET_INTEGER (U"First table"),
+		iam (CrossCorrelationTables);
+		double dm = CrossCorrelationTables_getDiagonalityMeasure (me, 0, GET_INTEGER (U"First table"),
 		GET_INTEGER (U"Last table"));
 		Melder_information (dm, U" (= average sum of squared off-diagonal elements)");
 	}
 END
 
-FORM (CrossCorrelationTableList_extractCrossCorrelationTable, U"CrossCorrelationTableList: Extract one CrossCorrelationTable", nullptr)
+FORM (CrossCorrelationTables_extractCrossCorrelationTable, U"CrossCorrelationTables: Extract one CrossCorrelationTable", 0)
 	NATURAL (U"Index", U"1")
 	OK
 DO
 	long index = GET_INTEGER (U"Index");
 	LOOP {
-		iam (CrossCorrelationTableList);
+		iam (CrossCorrelationTables);
 		if (index > my size) {
 			Melder_throw (U"Index too large.");
 		}
-		autoCrossCorrelationTable thee = Data_copy (my at [index]);
-		praat_new (thee.move(), Thing_getName (me), U"_", index);
+		autoCrossCorrelationTable thee = Data_copy ( (CrossCorrelationTable) my item[index]);
+		praat_new (thee.transfer(), Thing_getName (me), U"_", index);
 	}
 END
 
-FORM (CrossCorrelationTableList_to_Diagonalizer, U"CrossCorrelationTableList: To Diagonalizer", nullptr)
+FORM (CrossCorrelationTables_to_Diagonalizer, U"CrossCorrelationTables: To Diagonalizer", 0)
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
 	OPTIONMENU (U"Diagonalization method", 2)
@@ -358,14 +350,13 @@ FORM (CrossCorrelationTableList_to_Diagonalizer, U"CrossCorrelationTableList: To
 	OK
 DO
 	LOOP {
-		iam (CrossCorrelationTableList);
-		autoDiagonalizer thee = CrossCorrelationTableList_to_Diagonalizer (me, GET_INTEGER (U"Maximum number of iterations"),
-		GET_REAL (U"Tolerance"), GET_INTEGER (U"Diagonalization method"));
-		praat_new (thee.move(), my name);
+		iam (CrossCorrelationTables);
+		praat_new (CrossCorrelationTables_to_Diagonalizer (me, GET_INTEGER (U"Maximum number of iterations"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Diagonalization method")), my name);
 	}
 END
 
-FORM (Diagonalizer_and_CrossCorrelationTableList_improveDiagonality, U"Diagonalizer & CrossCorrelationTableList: Improve diagonality", nullptr)
+FORM (Diagonalizer_and_CrossCorrelationTables_improveDiagonality, U"Diagonalizer & CrossCorrelationTables: Improve diagonality", 0)
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
 	OPTIONMENU (U"Diagonalization method", 2)
@@ -374,19 +365,19 @@ FORM (Diagonalizer_and_CrossCorrelationTableList_improveDiagonality, U"Diagonali
 	OK
 DO
 	Diagonalizer d = FIRST (Diagonalizer);
-	CrossCorrelationTableList ccts = FIRST (CrossCorrelationTableList);
-	Diagonalizer_and_CrossCorrelationTableList_improveDiagonality (d, ccts, GET_INTEGER (U"Maximum number of iterations"),
+	CrossCorrelationTables ccts = FIRST (CrossCorrelationTables);
+	Diagonalizer_and_CrossCorrelationTables_improveDiagonality (d, ccts, GET_INTEGER (U"Maximum number of iterations"),
 		GET_REAL (U"Tolerance"), GET_INTEGER (U"Diagonalization method"));
 END
 
-FORM (CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure, U"CrossCorrelationTableList & Diagonalizer: Get diagonality measure", nullptr)
+FORM (CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure, U"CrossCorrelationTables & Diagonalizer: Get diagonality measure", 0)
 	NATURAL (U"First table", U"1")
 	NATURAL (U"Last table", U"100")
 	OK
 DO
-	CrossCorrelationTableList ccts = FIRST (CrossCorrelationTableList);
+	CrossCorrelationTables ccts = FIRST (CrossCorrelationTables);
 	Diagonalizer d = FIRST (Diagonalizer);
-	double dm = CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure (ccts, d, 0, GET_INTEGER (U"First table"),
+	double dm = CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure (ccts, d, 0, GET_INTEGER (U"First table"),
 		GET_INTEGER (U"Last table"));
 	Melder_information (dm, U" (= average sum of squared off-diagonal elements)");
 END
@@ -394,18 +385,16 @@ END
 DIRECT (CrossCorrelationTable_and_Diagonalizer_diagonalize)
 	CrossCorrelationTable cct = FIRST (CrossCorrelationTable);
 	Diagonalizer d = FIRST (Diagonalizer);
-	autoCrossCorrelationTable thee = CrossCorrelationTable_and_Diagonalizer_diagonalize (cct, d);
-	praat_new (thee.move(), cct -> name, U"_", d -> name);
+	praat_new (CrossCorrelationTable_and_Diagonalizer_diagonalize (cct, d), cct->name, U"_", d->name);
 END
 
-DIRECT (CrossCorrelationTableList_and_Diagonalizer_diagonalize)
-	CrossCorrelationTableList ccts = FIRST (CrossCorrelationTableList);
+DIRECT (CrossCorrelationTables_and_Diagonalizer_diagonalize)
+	CrossCorrelationTables ccts = FIRST (CrossCorrelationTables);
 	Diagonalizer d = FIRST (Diagonalizer);
-	autoCrossCorrelationTableList thee = CrossCorrelationTableList_and_Diagonalizer_diagonalize (ccts, d);
-	praat_new (thee.move(), ccts->name, U"_", d->name);
+	praat_new (CrossCorrelationTables_and_Diagonalizer_diagonalize (ccts, d), ccts->name, U"_", d->name);
 END
 
-FORM (CrossCorrelationTableList_and_MixingMatrix_improveUnmixing, U"", nullptr)
+FORM (CrossCorrelationTables_and_MixingMatrix_improveUnmixing, U"", 0)
 	LABEL (U"", U"Iteration parameters")
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
@@ -415,20 +404,19 @@ FORM (CrossCorrelationTableList_and_MixingMatrix_improveUnmixing, U"", nullptr)
 	OK
 DO
 	MixingMatrix mm = FIRST (MixingMatrix);
-	CrossCorrelationTableList ccts = FIRST (CrossCorrelationTableList);
-	MixingMatrix_and_CrossCorrelationTableList_improveUnmixing (mm, ccts,
+	CrossCorrelationTables ccts = FIRST (CrossCorrelationTables);
+	MixingMatrix_and_CrossCorrelationTables_improveUnmixing (mm, ccts,
 		GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance"), GET_INTEGER (U"Diagonalization method"));
 END
 
 DIRECT (Diagonalizer_to_MixingMatrix)
 	LOOP {
 		iam (Diagonalizer);
-		autoMixingMatrix thee = Diagonalizer_to_MixingMatrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (Diagonalizer_to_MixingMatrix (me), my name);
 	}
 END
 
-FORM (Sound_to_MixingMatrix, U"Sound: To MixingMatrix", nullptr)
+FORM (Sound_to_MixingMatrix, U"Sound: To MixingMatrix", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"10.0")
 	NATURAL (U"Number of cross-correlations", U"40")
@@ -437,20 +425,20 @@ FORM (Sound_to_MixingMatrix, U"Sound: To MixingMatrix", nullptr)
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
 	OPTIONMENU (U"Diagonalization method", 2)
-		OPTION (U"qdiag")
-		OPTION (U"ffdiag")
+	OPTION (U"qdiag")
+	OPTION (U"ffdiag")
 	OK
 DO
 	LOOP {
 		iam (Sound);
-		autoMixingMatrix thee = Sound_to_MixingMatrix (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), 
-			GET_INTEGER (U"Number of cross-correlations"), GET_REAL (U"Lag step"), GET_INTEGER (U"Maximum number of iterations"),
-			GET_REAL (U"Tolerance"), GET_INTEGER (U"Diagonalization method"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_MixingMatrix (me,
+			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_INTEGER (U"Number of cross-correlations"),
+			GET_REAL (U"Lag step"), GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance"),
+			GET_INTEGER (U"Diagonalization method")), my name);
 	}
 END
 
-FORM (Sound_to_CrossCorrelationTableList, U"Sound: To CrossCorrelationTableList", nullptr)
+FORM (Sound_to_CrossCorrelationTables, U"Sound: To CrossCorrelationTables", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"10.0")
 	NATURAL (U"Number of cross-correlations", U"40")
@@ -459,8 +447,7 @@ FORM (Sound_to_CrossCorrelationTableList, U"Sound: To CrossCorrelationTableList"
 DO
 	LOOP {
 		iam (Sound);
-		autoCrossCorrelationTableList thee = Sound_to_CrossCorrelationTableList (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_REAL (U"Lag step"), GET_INTEGER (U"Number of cross-correlations"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_CrossCorrelationTables (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_REAL (U"Lag step"), GET_INTEGER (U"Number of cross-correlations")), my name);
 	}
 END
 
@@ -473,17 +460,16 @@ FORM (Sound_to_Sound_bss, U"Sound: To Sound (blind source separation)", U"Sound:
 	NATURAL (U"Maximum number of iterations", U"100")
 	POSITIVE (U"Tolerance", U"0.001")
 	OPTIONMENU (U"Diagonalization method", 2)
-		OPTION (U"qdiag")
-		OPTION (U"ffdiag")
+	OPTION (U"qdiag")
+	OPTION (U"ffdiag")
 	OK
 DO
 	LOOP {
 		iam (Sound);
-		autoSound thee = Sound_to_Sound_BSS (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		praat_new (Sound_to_Sound_BSS (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 			GET_INTEGER (U"Number of cross-correlations"), GET_REAL (U"Lag step"),
 			GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance"),
-			GET_INTEGER (U"Diagonalization method"));
-		praat_new (thee.move(), my name, U"_bss");
+			GET_INTEGER (U"Diagonalization method")), my name, U"_bss");
 	}
 END
 
@@ -496,51 +482,47 @@ DO
     long permille = (long) floor (varianceFraction * 1000.0);
     LOOP {
         iam (Sound);
-		autoSound thee = Sound_whitenChannels (me, varianceFraction);
-        praat_new (thee.move(), my name, U"_", permille);
+        praat_new (Sound_whitenChannels (me, varianceFraction), my name, U"_", permille);
     }
 END
 
 DIRECT (Sound_and_MixingMatrix_mix)
 	Sound s = FIRST (Sound);
 	MixingMatrix mm = FIRST (MixingMatrix);
-	autoSound thee = Sound_and_MixingMatrix_mix (s, mm);
-	praat_new (thee.move(), Thing_getName (s), U"_mixed");
+	praat_new (Sound_and_MixingMatrix_mix (s, mm), Thing_getName (s), U"_mixed");
 END
 
 DIRECT (Sound_and_MixingMatrix_unmix)
 	Sound s = FIRST (Sound);
 	MixingMatrix mm = FIRST (MixingMatrix);
-	autoSound thee = Sound_and_MixingMatrix_unmix (s, mm);
-	praat_new (thee.move(), Thing_getName (s), U"_unmixed");
+	praat_new (Sound_and_MixingMatrix_unmix (s, mm), Thing_getName (s), U"_unmixed");
 END
 
 DIRECT (TableOfReal_to_MixingMatrix)
 	LOOP {
 		iam (TableOfReal);
-		autoMixingMatrix thee = TableOfReal_to_MixingMatrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_MixingMatrix (me), my name);
 	}
 END
 
 FORM (TableOfReal_and_TableOfReal_crossCorrelations, U"TableOfReal & TableOfReal: Cross-correlations", 0)
 	OPTIONMENU (U"Correlations between", 1)
-		OPTION (U"Rows")
-		OPTION (U"Columns")
-	BOOLEAN (U"Center", false)
-	BOOLEAN (U"Normalize", false)
+	OPTION (U"Rows")
+	OPTION (U"Columns")
+	BOOLEAN (U"Center", 0)
+	BOOLEAN (U"Normalize", 0)
 	OK
 DO
-	TableOfReal t1 = nullptr, t2 = nullptr;
+	TableOfReal t1 = 0, t2 = 0;
 	LOOP {
 		iam (TableOfReal);
 		(t1 ? t2 : t1) = me;
 	}
-	Melder_assert (t1 && t2);
+	Melder_assert (t1 != NULL && t2 != NULL);
 	int by_columns = GET_INTEGER (U"Correlations between") - 1;
-	autoTableOfReal thee = TableOfReal_and_TableOfReal_crossCorrelations (t1, t2, by_columns,
-		GET_INTEGER (U"Center"), GET_INTEGER (U"Normalize"));
-	praat_new (thee.move(), ( by_columns ? U"by_columns" : U"by_rows" ));
+	praat_new (TableOfReal_and_TableOfReal_crossCorrelations (t1, t2, by_columns,
+		GET_INTEGER (U"Center"), GET_INTEGER (U"Normalize")),
+		(by_columns ? U"by_columns" : U"by_rows"));
 END
 
 void praat_TableOfReal_init3 (ClassInfo klas) {
@@ -548,25 +530,23 @@ void praat_TableOfReal_init3 (ClassInfo klas) {
 	praat_addAction1 (klas, 2, U"To TableOfReal (cross-correlations)...", 0, 0, DO_TableOfReal_and_TableOfReal_crossCorrelations);
 }
 
-void praat_BSS_init ();
-void praat_BSS_init () {
-	Thing_recognizeClassesByName (classDiagonalizer, classMixingMatrix, classCrossCorrelationTable, classCrossCorrelationTableList, nullptr);
-	Thing_recognizeClassByOtherName (classCrossCorrelationTableList, U"CrossCorrelationTables");
+void praat_BSS_init (void);
+void praat_BSS_init (void) {
+	Thing_recognizeClassesByName (classDiagonalizer, classMixingMatrix, classCrossCorrelationTable, classCrossCorrelationTables, NULL);
 
 	praat_addMenuCommand (U"Objects", U"New", U"Create simple CrossCorrelationTable...", U"Create simple Covariance...", praat_HIDDEN + praat_DEPTH_1, DO_CrossCorrelationTable_createSimple);
-	praat_addMenuCommand (U"Objects", U"New", U"Create test CrossCorrelationTableList...", U"Create simple CrossCorrelationTable...", praat_HIDDEN + praat_DEPTH_1, DO_CrossCorrelationTableList_createTestSet);
-	praat_addMenuCommand (U"Objects", U"New", U"Create simple MixingMatrix...", U"Create test CrossCorrelationTableList...", praat_HIDDEN + praat_DEPTH_1, DO_MixingMatrix_createSimple);
+	praat_addMenuCommand (U"Objects", U"New", U"Create test CrossCorrelationTables...", U"Create simple CrossCorrelationTable...", praat_HIDDEN + praat_DEPTH_1, DO_CrossCorrelationTables_createTestSet);
+	praat_addMenuCommand (U"Objects", U"New", U"Create simple MixingMatrix...", U"Create test CrossCorrelationTables...", praat_HIDDEN + praat_DEPTH_1, DO_MixingMatrix_createSimple);
 
 	praat_addAction1 (classCrossCorrelationTable, 0, U"CrossCorrelationTable help", 0, 0, DO_CrossCorrelationTable_help);
 	praat_SSCP_as_TableOfReal_init (classCrossCorrelationTable);
 
-	praat_addAction1 (classCrossCorrelationTable, 0, U"To CrossCorrelationTableList", nullptr, 0, DO_CrossCorrelationTable_to_CrossCorrelationTableList);
-	praat_addAction1 (classCrossCorrelationTable, 0, U"To CrossCorrelationTables", nullptr, praat_HIDDEN, DO_CrossCorrelationTable_to_CrossCorrelationTableList);
+	praat_addAction1 (classCrossCorrelationTable, 0, U"To CrossCorrelationTables", 0, 0, DO_CrossCorrelationTable_to_CrossCorrelationTables);
 
-	praat_addAction1 (classCrossCorrelationTableList, 0, U"CrossCorrelationTableList help", 0, 0, DO_CrossCorrelationTableList_help);
-	praat_addAction1 (classCrossCorrelationTableList, 1, U"Extract CrossCorrelationTable...", 0, 0, DO_CrossCorrelationTableList_extractCrossCorrelationTable);
-	praat_addAction1 (classCrossCorrelationTableList, 1, U"Get diagonality measure...", 0, 0, DO_CrossCorrelationTableList_getDiagonalityMeasure);
-	praat_addAction1 (classCrossCorrelationTableList, 0, U"To Diagonalizer...", 0, 0, DO_CrossCorrelationTableList_to_Diagonalizer);
+	praat_addAction1 (classCrossCorrelationTables, 0, U"CrossCorrelationTables help", 0, 0, DO_CrossCorrelationTables_help);
+	praat_addAction1 (classCrossCorrelationTables, 1, U"Extract CrossCorrelationTable...", 0, 0, DO_CrossCorrelationTables_extractCrossCorrelationTable);
+	praat_addAction1 (classCrossCorrelationTables, 1, U"Get diagonality measure...", 0, 0, DO_CrossCorrelationTables_getDiagonalityMeasure);
+	praat_addAction1 (classCrossCorrelationTables, 0, U"To Diagonalizer...", 0, 0, DO_CrossCorrelationTables_to_Diagonalizer);
 
 	praat_TableOfReal_init3 (classDiagonalizer);
 	praat_addAction1 (classDiagonalizer, 0, U"To MixingMatrix", 0, 0, DO_Diagonalizer_to_MixingMatrix);
@@ -575,8 +555,7 @@ void praat_BSS_init () {
 	praat_addAction1 (classEEG, 0, U"To Sound (frequency shifted)...", U"To ERPTier...", 0, DO_EEG_to_Sound_frequencyShifted);
 	praat_addAction1 (classEEG, 0, U"To PCA...", U"To ERPTier...", 0, DO_EEG_to_PCA);
 	praat_addAction1 (classEEG, 0, U"To CrossCorrelationTable...", U"To PCA...", praat_HIDDEN, DO_EEG_to_CrossCorrelationTable);
-	praat_addAction1 (classEEG, 0, U"To CrossCorrelationTables...", U"To PCA...", praat_HIDDEN, DO_EEG_to_CrossCorrelationTableList);
-	praat_addAction1 (classEEG, 0, U"To CrossCorrelationTableList...", U"To PCA...", praat_HIDDEN, DO_EEG_to_CrossCorrelationTableList);
+	praat_addAction1 (classEEG, 0, U"To CrossCorrelationTables...", U"To PCA...", praat_HIDDEN, DO_EEG_to_CrossCorrelationTables);
 
 	praat_addAction1 (classEEG, 0, U"To Covariance...", U"To CrossCorrelationTable...", praat_HIDDEN, DO_EEG_to_Covariance);
 	praat_addAction1 (classEEG, 0, U"To EEG (bss)...", U"To CrossCorrelationTable...", praat_HIDDEN, DO_EEG_to_EEG_bss);
@@ -590,8 +569,7 @@ void praat_BSS_init () {
 	praat_addAction1 (classSound, 0, U"To MixingMatrix...",  U"Resample...", praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_MixingMatrix);
     praat_addAction1 (classSound, 0, U"To CrossCorrelationTable...",  U"Resample...", 1, DO_Sound_to_CrossCorrelationTable);
     praat_addAction1 (classSound, 0, U"To Covariance (channels)...",  U"Resample...", praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_Covariance_channels);
-	praat_addAction1 (classSound, 0, U"To CrossCorrelationTables...",  U"Resample...", praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_CrossCorrelationTableList);
-	praat_addAction1 (classSound, 0, U"To CrossCorrelationTableList...",  U"Resample...", praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_CrossCorrelationTableList);
+	praat_addAction1 (classSound, 0, U"To CrossCorrelationTables...",  U"Resample...", praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_CrossCorrelationTables);
 
 	praat_addAction1 (classSound, 0, U"To Sound (bss)...", U"Resample...", 1, DO_Sound_to_Sound_bss);
     praat_addAction1 (classSound, 0, U"To Sound (white channels)...", U"Resample...", 1, DO_Sound_to_Sound_whiteChannels);
@@ -607,13 +585,13 @@ void praat_BSS_init () {
 
 	praat_addAction2 (classCrossCorrelationTable, 1, classDiagonalizer, 1, U"Diagonalize", 0 , 0, DO_CrossCorrelationTable_and_Diagonalizer_diagonalize);
 
-	praat_addAction2 (classCrossCorrelationTableList, 1, classDiagonalizer, 1, U"Get diagonality measure...", 0 , 0, DO_CrossCorrelationTableList_and_Diagonalizer_getDiagonalityMeasure);
-	praat_addAction2 (classCrossCorrelationTableList, 1, classDiagonalizer, 1, U"Diagonalize", 0 , 0, DO_CrossCorrelationTableList_and_Diagonalizer_diagonalize);
-	praat_addAction2 (classCrossCorrelationTableList, 1, classDiagonalizer, 1, U"Improve diagonality...", 0 , 0, DO_Diagonalizer_and_CrossCorrelationTableList_improveDiagonality);
+	praat_addAction2 (classCrossCorrelationTables, 1, classDiagonalizer, 1, U"Get diagonality measure...", 0 , 0, DO_CrossCorrelationTables_and_Diagonalizer_getDiagonalityMeasure);
+	praat_addAction2 (classCrossCorrelationTables, 1, classDiagonalizer, 1, U"Diagonalize", 0 , 0, DO_CrossCorrelationTables_and_Diagonalizer_diagonalize);
+	praat_addAction2 (classCrossCorrelationTables, 1, classDiagonalizer, 1, U"Improve diagonality...", 0 , 0, DO_Diagonalizer_and_CrossCorrelationTables_improveDiagonality);
 
-	praat_addAction2 (classCrossCorrelationTableList, 1, classMixingMatrix, 1, U"Improve unmixing...", 0 , 0, DO_CrossCorrelationTableList_and_MixingMatrix_improveUnmixing);
+	praat_addAction2 (classCrossCorrelationTables, 1, classMixingMatrix, 1, U"Improve unmixing...", 0 , 0, DO_CrossCorrelationTables_and_MixingMatrix_improveUnmixing);
 
 	INCLUDE_MANPAGES (manual_BSS)
 }
 
-/* End of file praat_BSS_init.cpp */
+/* End of file praat_BSS_init.c */
diff --git a/dwtools/praat_DataModeler_init.cpp b/dwtools/praat_DataModeler_init.cpp
index 7c5c6f6..2286ba3 100644
--- a/dwtools/praat_DataModeler_init.cpp
+++ b/dwtools/praat_DataModeler_init.cpp
@@ -38,15 +38,12 @@ FORM (DataModeler_createSimple, U"Create simple DataModeler", 0)
 	SENTENCE (U"Parameters", U"0.0 1.0 1.0")
 	POSITIVE (U"Gaussian noise stdev", U"0.2")
 	OPTIONMENU (U"Basis functions", 2)
-		OPTION (U"Polynomial")
+		OPTION (U"Polynome")
 		OPTION (U"Legendre")
-		
 	OK
 DO
-	autoDataModeler thee = DataModeler_createSimple (GET_REAL (U"left X range"), GET_REAL (U"right X range"),
-		GET_INTEGER (U"Number of data points"), GET_STRING (U"Parameters"), GET_REAL (U"Gaussian noise stdev"),
-		GET_INTEGER (U"Basis functions") - 1);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (DataModeler_createSimple (GET_REAL (U"left X range"), GET_REAL (U"right X range"), GET_INTEGER (U"Number of data points"),
+		GET_STRING (U"Parameters"), GET_REAL (U"Gaussian noise stdev"), GET_INTEGER (U"Basis functions") - 1), GET_STRING (U"Name"));
 END
 
 FORM (DataModeler_speckle, U"DataModeler: Speckle", 0)
@@ -177,7 +174,7 @@ DO
 	LOOP {
 		iam (DataModeler);
 		double y = DataModeler_getModelValueAtX (me, GET_REAL (U"X"));
-		Melder_informationReal (y, nullptr);
+		Melder_informationReal (y, NULL);
 	}
 END
 
@@ -237,7 +234,7 @@ END
 DIRECT (DataModeler_getCoefficientOfDetermination)
 	LOOP {
 		iam (DataModeler);
-		double rSquared = DataModeler_getCoefficientOfDetermination (me, nullptr, nullptr);
+		double rSquared = DataModeler_getCoefficientOfDetermination (me, NULL, NULL);
 		Melder_informationReal (rSquared, U" (= R^2)");
 	}
 END
@@ -382,7 +379,7 @@ DIRECT (DataModeler_to_Covariance_parameters)
 	LOOP {
 		iam (DataModeler);
 		autoCovariance thee = DataModeler_to_Covariance_parameters (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -393,7 +390,7 @@ DO
 	LOOP {
 		iam (DataModeler);
 		autoTable thee = DataModeler_to_Table_zscores (me, GET_INTEGER (U"Use sigmas on y-values"));
-		praat_new (thee.move(), my name, U"_z");
+		praat_new (thee.transfer(), my name, U"_z");
 	}
 END
 
@@ -414,9 +411,9 @@ DO
 	REQUIRE (order >= 0, U"The order must be greater than or equal to zero.")
 	LOOP {
 		iam (Formant);
-		autoFormantModeler thee = Formant_to_FormantModeler (me, GET_REAL (U"left Start time"), 
-			GET_REAL (U"right End time"), GET_INTEGER (U"Number of formants"), order + 1, GET_INTEGER (U"Weigh data") - 1);
-		praat_new (thee.move(), my name, U"_o", order);
+		autoFormantModeler thee = Formant_to_FormantModeler (me, GET_REAL (U"left Start time"), GET_REAL (U"right End time"),
+			GET_INTEGER (U"Number of formants"), order + 1, GET_INTEGER (U"Weigh data") - 1);
+		praat_new (thee.transfer(), my name, U"_o", order);
 	}
 END
 
@@ -436,28 +433,25 @@ FORM (Formants_extractSmoothestPart, U"Formants: Extract smoothest part", U"Form
 	REAL (U"Parameter variance power", U"1.5")
 	OK
 DO
-	OrderedOf<structFormant> formants;
-	LOOP {
-		iam (Formant);
-		formants. addItem_ref (me);
-	}
+	autoCollection set = praat_getSelectedObjects ();
 	double tmin = GET_REAL (U"left Time range"), tmax = GET_REAL (U"right Time range");
-	long index = Formants_getSmoothestInInterval (& formants, tmin, tmax, GET_INTEGER (U"Number of formant tracks"), GET_INTEGER (U"Order of polynomials") + 1,
-		GET_INTEGER (U"Weigh data") - 1, 0, GET_REAL (U"Number of sigmas"), GET_REAL (U"Parameter variance power"), 1.0, 1.0, 1.0, 1.0, 1.0);
+	long index = Formants_getSmoothestInInterval (set.peek(), tmin, tmax, GET_INTEGER (U"Number of formant tracks"), GET_INTEGER (U"Order of polynomials") + 1,
+		GET_INTEGER (U"Weigh data") - 1, 0, GET_REAL (U"Number of sigmas"), GET_REAL (U"Parameter variance power"), 1, 1, 1, 1, 1);
 	// next code is necessary to get the Formant at postion index selected and to get its name
 	long iselected = 0;
-	Formant him = nullptr;
+	Formant him = NULL;
 	LOOP {
 		iselected ++;
 		if (iselected == index) {
 			him = static_cast<Formant> (OBJECT);
 		}
 	}
-	Melder_assert (him);
+	Melder_assert (him != NULL);
 	autoFormant thee = Formant_extractPart (him, tmin, tmax);
-	praat_new (thee.move(), his name, U"_part");
+	praat_new (thee.transfer(), his name, U"_part");
 END
 
+
 FORM (Formants_extractSmoothestPart_constrained, U"Formants: Extract smoothest part (constrained)", U"Formants: Extract smoothest part (constrained)...")
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
@@ -480,32 +474,28 @@ FORM (Formants_extractSmoothestPart_constrained, U"Formants: Extract smoothest p
 	POSITIVE (U"Minimum F3 (Hz)", U"1500.0")
 	OK
 DO
-	OrderedOf<structFormant> formants;
-	LOOP {
-		iam (Formant);
-		formants. addItem_ref (me);
-	}
+	autoCollection set = praat_getSelectedObjects ();
 	double tmin = GET_REAL (U"left Time range"), tmax = GET_REAL (U"right Time range");
-	long index = Formants_getSmoothestInInterval (& formants, tmin, tmax, GET_INTEGER (U"Number of formant tracks"), GET_INTEGER (U"Order of polynomials") + 1,
+	long index = Formants_getSmoothestInInterval (set.peek(), tmin, tmax, GET_INTEGER (U"Number of formant tracks"), GET_INTEGER (U"Order of polynomials") + 1,
 		GET_INTEGER (U"Weigh data") - 1, 1, GET_REAL (U"Number of sigmas"), GET_REAL (U"Parameter variance power"),
 		GET_REAL (U"Minimum F1"), GET_REAL (U"Maximum F1"), GET_REAL (U"Minimum F2"), GET_REAL (U"Maximum F2"), GET_REAL (U"Minimum F3"));
 	// next code is necessary to get the Formant at postion index selected and to get its name
 	long iselected = 0;
-	Formant him = nullptr;
+	Formant him = NULL;
 	LOOP {
 		iselected ++;
 		if (iselected == index) {
 			him = static_cast<Formant> (OBJECT);
 		}
 	}
-	Melder_assert (him);
+	Melder_assert (him != NULL);
 	autoFormant thee = Formant_extractPart (him, tmin, tmax);
-	praat_new (thee.move(), his name, U"_part");
+	praat_new (thee.transfer(), his name, U"_part");
 END
 
 /********************** FormantModeler ******************************/
 
-FORM (FormantModeler_drawEstimatedTracks, U"FormantModeler: Draw estimated tracks", nullptr)
+FORM (FormantModeler_drawEstimatedTracks, U"FormantModeler: Draw estimated tracks", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"Maximum frequency (Hz)", U"5500.0")
@@ -513,7 +503,7 @@ FORM (FormantModeler_drawEstimatedTracks, U"FormantModeler: Draw estimated track
 	NATURAL (U"right Formant range", U"3")
 	INTEGER (U"Order of polynomials for estimation", U"3")
 	REAL (U"Horizontal offset (mm)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -527,14 +517,14 @@ DO
 	}
 END
 
-FORM (FormantModeler_drawTracks, U"FormantModeler: Draw tracks", nullptr)
+FORM (FormantModeler_drawTracks, U"FormantModeler: Draw tracks", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"Maximum frequency (Hz)", U"5500.0")
 	NATURAL (U"left Formant range", U"1")
 	NATURAL (U"right Formant range", U"3")
 	REAL (U"Horizontal offset (mm)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -547,16 +537,16 @@ DO
 	}
 END
 
-FORM (FormantModeler_speckle, U"FormantModeler: Speckle", nullptr)
+FORM (FormantModeler_speckle, U"FormantModeler: Speckle", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"Maximum frequency (Hz)", U"5500.0")
 	NATURAL (U"left Formant range", U"1")
 	NATURAL (U"right Formant range", U"3")
-	BOOLEAN (U"Draw error bars", true)
+	BOOLEAN (U"Draw error bars", 1)
 	REAL (U"Bar width (mm)", U"1.0")
 	REAL (U"Horizontal offset (mm)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -569,7 +559,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_drawOutliersMarked, U"FormantModeler: Draw outliers marked", nullptr)
+FORM (FormantModeler_drawOutliersMarked, U"FormantModeler: Draw outliers marked", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"Maximum frequency (Hz)", U"5500.0")
@@ -584,7 +574,7 @@ FORM (FormantModeler_drawOutliersMarked, U"FormantModeler: Draw outliers marked"
 	WORD (U"Mark", U"o")
 	NATURAL (U"Mark font size", U"12")
 	REAL (U"Horizontal offset (mm)", U"0.0")
-	BOOLEAN (U"Garnish", false)
+	BOOLEAN (U"Garnish", 0)
 	OK
 DO
 	autoPraatPicture picture;
@@ -597,7 +587,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_drawVariancesOfShiftedTracks, U"FormantModeler: Draw variances of shifted tracks", nullptr)
+FORM (FormantModeler_drawVariancesOfShiftedTracks, U"FormantModeler: Draw variances of shifted tracks", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range", U"0.0")
 	REAL (U"left Variance range", U"0.0")
@@ -608,7 +598,7 @@ FORM (FormantModeler_drawVariancesOfShiftedTracks, U"FormantModeler: Draw varian
 		OPTION (U"Down")
 	NATURAL (U"left Formant range", U"1")
 	NATURAL (U"right Formant range", U"4")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -620,7 +610,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_drawCumulativeChiScores, U"FormantModeler: Draw cumulative chi scores", nullptr)
+FORM (FormantModeler_drawCumulativeChiScores, U"FormantModeler: Draw cumulative chi scores", 0)
 	REAL (U"left Time range", U"0.0")
 	REAL (U"right Time range", U"0.0")
 	REAL (U"left Chisq range", U"0.0")
@@ -630,7 +620,7 @@ FORM (FormantModeler_drawCumulativeChiScores, U"FormantModeler: Draw cumulative
 		OPTION (U"Bandwidth")
 		OPTION (U"Bandwidth / frequency")
 		OPTION (U"Sqrt bandwidth")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -642,7 +632,7 @@ DO
 END
 
 
-FORM (FormantModeler_normalProbabilityPlot, U"FormantModeler: Normal probability plot", nullptr)
+FORM (FormantModeler_normalProbabilityPlot, U"FormantModeler: Normal probability plot", 0)
 	NATURAL (U"Formant number", U"1")
 	OPTIONMENU (U"Weigh data", 2)
 		OPTION (U"Equally")
@@ -653,7 +643,7 @@ FORM (FormantModeler_normalProbabilityPlot, U"FormantModeler: Normal probability
 	REAL (U"Number of sigmas", U"0.0")
 	NATURAL (U"Label size", U"12")
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	OK
 DO
 	autoPraatPicture picture;
@@ -665,7 +655,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_drawBasisFunction, U"FormantModeler: Draw basis function", nullptr)
+FORM (FormantModeler_drawBasisFunction, U"FormantModeler: Draw basis function", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Amplitude range (Hz)", U"0.0")
@@ -673,9 +663,9 @@ FORM (FormantModeler_drawBasisFunction, U"FormantModeler: Draw basis function",
 	//long iterm, bool scaled, long numberOfPoints, int garnish
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Basis function", U"2")
-	BOOLEAN (U"Scale function with parameter value", false)
+	BOOLEAN (U"Scale function with parameter value", 0)
 	NATURAL (U"Number of points", U"200")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -688,7 +678,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getModelValueAtTime, U"", nullptr)
+FORM (FormantModeler_getModelValueAtTime, U"", 0)
 	NATURAL (U"Formant number", U"1")
 	REAL (U"Time (s)", U"0.1")
 	OK
@@ -700,7 +690,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getDataPointValue, U"FormantModeler: Get data point value", nullptr)
+FORM (FormantModeler_getDataPointValue, U"FormantModeler: Get data point value", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Index", U"1")
 	OK
@@ -714,7 +704,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getDataPointSigma, U"FormantModeler: Get data point sigma", nullptr)
+FORM (FormantModeler_getDataPointSigma, U"FormantModeler: Get data point sigma", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Index", U"1")
 	OK
@@ -728,7 +718,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getDataPointStatus, U"FormantModeler: Get data point status", nullptr)
+FORM (FormantModeler_getDataPointStatus, U"FormantModeler: Get data point status", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Index", U"1")
 	OK
@@ -750,7 +740,7 @@ DIRECT (FormantModeler_getNumberOfTracks)
 	}
 END
 
-FORM (FormantModeler_getNumberOfParameters, U"FormantModeler: Get number of parameters", nullptr)
+FORM (FormantModeler_getNumberOfParameters, U"FormantModeler: Get number of parameters", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -762,7 +752,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getNumberOfFixedParameters, U"FormantModeler: Get number of fixed parameters", nullptr)
+FORM (FormantModeler_getNumberOfFixedParameters, U"FormantModeler: Get number of fixed parameters", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -782,7 +772,7 @@ DIRECT (FormantModeler_getNumberOfDataPoints)
 	}
 END
 
-FORM (FormantModeler_getNumberOfInvalidDataPoints, U"FormantModeler: Get number of invalid data points", nullptr)
+FORM (FormantModeler_getNumberOfInvalidDataPoints, U"FormantModeler: Get number of invalid data points", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -794,7 +784,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getParameterValue, U"FormantModeler: Get parameter value", nullptr)
+FORM (FormantModeler_getParameterValue, U"FormantModeler: Get parameter value", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Parameter number", U"1")
 	OK
@@ -807,7 +797,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getParameterStatus, U"FormantModeler: Get parameter status", nullptr)
+FORM (FormantModeler_getParameterStatus, U"FormantModeler: Get parameter status", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Parameter number", U"1")
 	OK
@@ -821,7 +811,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getParameterStandardDeviation, U"FormantModeler: Get parameter standard deviatio", nullptr)
+FORM (FormantModeler_getParameterStandardDeviation, U"FormantModeler: Get parameter standard deviatio", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Parameter number", U"1")
 	OK
@@ -834,7 +824,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getVarianceOfParameters, U"FormantModeler: Get variance of parameters", nullptr)
+FORM (FormantModeler_getVarianceOfParameters, U"FormantModeler: Get variance of parameters", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	INTEGER (U"left Parameter range", U"0")
@@ -850,7 +840,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getCoefficientOfDetermination, U"FormantModeler: Get coefficient of determination", nullptr)
+FORM (FormantModeler_getCoefficientOfDetermination, U"FormantModeler: Get coefficient of determination", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	OK
@@ -875,7 +865,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getStandardDeviation, U"FormantModeler: Get formant standard deviation", nullptr)
+FORM (FormantModeler_getStandardDeviation, U"FormantModeler: Get formant standard deviation", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -887,7 +877,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_reportChiSquared, U"FormantModeler: Report chi squared", nullptr)
+FORM (FormantModeler_reportChiSquared, U"FormantModeler: Report chi squared", 0)
 	OPTIONMENU (U"Weigh data", 2)
 		OPTION (U"Equally")
 		OPTION (U"Bandwidth")
@@ -897,7 +887,7 @@ FORM (FormantModeler_reportChiSquared, U"FormantModeler: Report chi squared", nu
 DO
 	LOOP {
 		iam (FormantModeler);
-		long numberOfFormants = my trackmodelers.size;
+		long numberOfFormants = my trackmodelers -> size;
 		int useSigmaY = GET_INTEGER (U"Weigh data") - 1;
 		double chisq = 0, ndf = 0, probability;
 		MelderInfo_open ();
@@ -906,14 +896,14 @@ DO
 			useSigmaY == DataModeler_DATA_WEIGH_SIGMA ? U"\tBandwidths are used as estimate for local standard deviations." : 
 			useSigmaY == DataModeler_DATA_WEIGH_RELATIVE ? U"\t1/Q's are used as estimate for local standard deviations." :
 			U"\tSqrt bandwidths are used as estimate for local standard deviations.");
-		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
+		for (long iformant = 1; iformant <= numberOfFormants; iformant++) {
 			chisq = FormantModeler_getChiSquaredQ (me, iformant, iformant, useSigmaY, &probability, &ndf);
 			MelderInfo_writeLine (U"Formant track ", iformant, U":");
 			MelderInfo_writeLine (U"\tChi squared (F", iformant, U") = ", chisq);
 			MelderInfo_writeLine (U"\tProbability (F", iformant, U") = ", probability);
 			MelderInfo_writeLine (U"\tNumber of degrees of freedom (F", iformant, U") = ", ndf);
 		}
-		chisq = FormantModeler_getChiSquaredQ (me, 1, numberOfFormants, useSigmaY, & probability, & ndf);
+		chisq = FormantModeler_getChiSquaredQ (me, 1, numberOfFormants, useSigmaY, &probability, &ndf);
 		MelderInfo_writeLine (U"Chi squared test for the complete model with ", numberOfFormants, U" formants:");
 		MelderInfo_writeLine (U"\tChi squared = ", chisq);
 		MelderInfo_writeLine (U"\tProbability = ", probability);
@@ -922,7 +912,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getDegreesOfFreedom, U"FormantModeler: Get degrees of freedom", nullptr)
+FORM (FormantModeler_getDegreesOfFreedom, U"FormantModeler: Get degrees of freedom", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -934,7 +924,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getSmoothnessValue, U"FormantModeler: Get smoothness value", nullptr)
+FORM (FormantModeler_getSmoothnessValue, U"FormantModeler: Get smoothness value", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	INTEGER (U"Order of polynomials", U"3")
@@ -949,7 +939,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getAverageDistanceBetweenTracks, U"FormantModeler: Get average distance between tracks", nullptr)
+FORM (FormantModeler_getAverageDistanceBetweenTracks, U"FormantModeler: Get average distance between tracks", 0)
 	NATURAL (U"Track 1", U"2")
 	NATURAL (U"Track 2", U"3")
 	OPTIONMENU (U"Type of data", 1)
@@ -965,7 +955,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_getFormantsConstraintsFactor, U"FormantModeler: Get formants constraints factor", nullptr)
+FORM (FormantModeler_getFormantsConstraintsFactor, U"FormantModeler: Get formants constraints factor", 0)
 	REAL (U"Minimum F1 (Hz)", U"100.0")
 	REAL (U"Maximum F1 (Hz)", U"1200.0")
 	REAL (U"Minimum F2 (Hz)", U"0.0")
@@ -981,7 +971,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setDataWeighing, U"FormantModeler: Set data weighing", nullptr)
+FORM (FormantModeler_setDataWeighing, U"FormantModeler: Set data weighing", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	OPTIONMENU (U"Weigh data", 2)
@@ -998,7 +988,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setTolerance, U"FormantModeler: Set tolerance", nullptr)
+FORM (FormantModeler_setTolerance, U"FormantModeler: Set tolerance", 0)
 	REAL (U"Tolerance", U"1e-5")
 	OK
 DO
@@ -1008,7 +998,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setParameterValueFixed, U"FormantModeler: Set parameter value fixed", nullptr)
+FORM (FormantModeler_setParameterValueFixed, U"FormantModeler: Set parameter value fixed", 0)
 	NATURAL (U"Formant number", U"1")
 	NATURAL (U"Parameter number", U"1")
 	REAL (U"Value", U"0.0")
@@ -1021,7 +1011,7 @@ DO
 END
 
 
-FORM (FormantModeler_setParameterFree, U"FormantModeler: Set parameter free", nullptr)
+FORM (FormantModeler_setParameterFree, U"FormantModeler: Set parameter free", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	INTEGER (U"left Parameter range", U"0")
@@ -1035,7 +1025,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setParameterValuesToZero, U"FormantModeler: Set parameter values to zero", nullptr)
+FORM (FormantModeler_setParameterValuesToZero, U"FormantModeler: Set parameter values to zero", 0)
 	INTEGER (U"left Formant range", U"0")
 	INTEGER (U"right Formant range", U"0")
 	REAL (U"Number of sigmas", U"1.0")
@@ -1048,7 +1038,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setDataPointValue, U"FormantModeler: Set data point value", nullptr)
+FORM (FormantModeler_setDataPointValue, U"FormantModeler: Set data point value", 0)
 	NATURAL (U"Formant index", U"1")
 	NATURAL (U"Data index", U"1")
 	REAL (U"Value", U"1.0")
@@ -1061,7 +1051,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setDataPointSigma, U"FormantModeler: Set data point sigma", nullptr)
+FORM (FormantModeler_setDataPointSigma, U"FormantModeler: Set data point sigma", 0)
 	NATURAL (U"Formant index", U"1")
 	NATURAL (U"Data index", U"1")
 	REAL (U"Sigma", U"10.0")
@@ -1074,7 +1064,7 @@ DO
 	}
 END
 
-FORM (FormantModeler_setDataPointStatus, U"FormantModeler: Set data point status", nullptr)
+FORM (FormantModeler_setDataPointStatus, U"FormantModeler: Set data point status", 0)
 	NATURAL (U"Formant index", U"1")
 	NATURAL (U"Data index", U"1")
 	OPTIONMENU (U"Status", 1)
@@ -1097,7 +1087,7 @@ DIRECT (FormantModeler_fitModel)
 	}
 END
 
-FORM (FormantModeler_to_Covariance_parameters, U"", nullptr)
+FORM (FormantModeler_to_Covariance_parameters, U"", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -1105,11 +1095,11 @@ DO
 	LOOP {
 		iam (FormantModeler);
 		autoCovariance thee = FormantModeler_to_Covariance_parameters (me, iformant);
-		praat_new (thee.move(), my name, U"_", iformant);
+		praat_new (thee.transfer(), my name, U"_", iformant);
 	}
 END
 
-FORM (FormantModeler_extractDataModeler, U"FormantModeler: Extract DataModeler", nullptr)
+FORM (FormantModeler_extractDataModeler, U"FormantModeler: Extract DataModeler", 0)
 	NATURAL (U"Formant number", U"1")
 	OK
 DO
@@ -1117,54 +1107,51 @@ DO
 	LOOP {
 		iam (FormantModeler);
 		autoDataModeler thee = FormantModeler_extractDataModeler (me, iformant);
-		praat_new (thee.move(), my name, U"_", iformant);
+		praat_new (thee.transfer(), my name, U"_", iformant);
 	}
 END
 
-FORM (FormantModeler_to_Table_zscores, U"", nullptr)
-	BOOLEAN (U"Bandwidths as standard deviation", true)
+FORM (FormantModeler_to_Table_zscores, U"", 0)
+	BOOLEAN (U"Bandwidths as standard deviation", 1)
 	OK
 DO
 	LOOP {
 		iam (FormantModeler);
 		autoTable thee = FormantModeler_to_Table_zscores (me, GET_INTEGER (U"Bandwidths as standard deviation"));
-		praat_new (thee.move(), my name, U"_z");
+		praat_new (thee.transfer(), my name, U"_z");
 	}
 END
 
-FORM (FormantModeler_processOutliers, U"", nullptr)
+FORM (FormantModeler_processOutliers, U"", 0)
 	POSITIVE (U"Number of sigmas", U"3.0")
-	BOOLEAN (U"Bandwidths as standard deviation", true)
+	BOOLEAN (U"Bandwidths as standard deviation", 1)
 	OK
 DO
 	LOOP {
 		iam (FormantModeler);
 		autoFormantModeler thee = FormantModeler_processOutliers (me, GET_REAL (U"Number of sigmas"), GET_INTEGER (U"Bandwidths as standard deviation"));
-		praat_new (thee.move(), my name, U"_outliers");
+		praat_new (thee.transfer(), my name, U"_outliers");
 	}
 END
 
 
 DIRECT (OptimalCeilingTier_edit)
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit an OptimalCeilingTier from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) {
-			sound = (Sound) OBJECT;   // may stay nullptr
-		}
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	LOOP if (CLASS == classOptimalCeilingTier) {
 		iam (OptimalCeilingTier);
-		autoOptimalCeilingTierEditor editor = OptimalCeilingTierEditor_create (ID_AND_FULL_NAME, me, sound, true);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoOptimalCeilingTierEditor editor = OptimalCeilingTierEditor_create (ID_AND_FULL_NAME, me, sound, TRUE);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END
 
 
 /*************************** PitchModeler *************************************/
 
-FORM (Pitch_to_PitchModeler, U"Pitch: To PitchModeler", nullptr)
+FORM (Pitch_to_PitchModeler, U"Pitch: To PitchModeler", 0)
 	REAL (U"left Start time (s)", U"0.0")
 	REAL (U"right End time (s)", U"0.1")
 	INTEGER (U"Order of polynomials", U"2")
@@ -1174,17 +1161,17 @@ DO
 		iam (Pitch);
 		autoPitchModeler thee = Pitch_to_PitchModeler (me, GET_REAL (U"left Start time"), GET_REAL (U"right End time"), 
 			GET_INTEGER (U"Order of polynomials") + 1);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
-FORM (PitchModeler_draw, U"PitchModeler: Draw", nullptr)
+FORM (PitchModeler_draw, U"PitchModeler: Draw", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"500.0")
 	INTEGER (U"Order of polynomial for estimation", U"2")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -1195,7 +1182,7 @@ DO
 	}
 END
 
-FORM (Sound_getOptimalFormantCeiling, U"Sound: Get optimal formant ceiling", nullptr)
+FORM (Sound_getOptimalFormantCeiling, U"Sound: Get optimal formant ceiling", 0)
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range (s)", U"0.15")
 	POSITIVE (U"Window length (s)", U"0.015")
@@ -1229,7 +1216,7 @@ DO
 	}
 END
 
-FORM (Sound_to_Formant_interval, U"Sound: To Formant (interval)", nullptr)
+FORM (Sound_to_Formant_interval, U"Sound: To Formant (interval)", 0)
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range (s)", U"0.15")
 	POSITIVE (U"Window length (s)", U"0.015")
@@ -1260,11 +1247,11 @@ DO
 			GET_INTEGER (U"Number of formant tracks in model"), GET_INTEGER (U"Order of polynomials") + 1,
 			GET_INTEGER (U"Weigh data") - 1, GET_REAL (U"Number of sigmas"), GET_REAL (U"Parameter variance power"),
 			0, 1, 1, 1, 1, 1, &ceiling);
-		praat_new (formant.move(), my name, U"_", Melder_fixed (ceiling, 0));
+		praat_new (formant.transfer(), my name, U"_", Melder_fixed (ceiling, 0));
 	}
 END
 
-FORM (Sound_to_Formant_interval_constrained, U"Sound: To Formant (interval, constrained)", nullptr)
+FORM (Sound_to_Formant_interval_constrained, U"Sound: To Formant (interval, constrained)", 0)
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range (s)", U"0.15")
 	POSITIVE (U"Window length (s)", U"0.015")
@@ -1302,11 +1289,11 @@ DO
 			GET_REAL (U"Parameter variance power"), 1,
 			GET_REAL (U"Minimum F1"), GET_REAL (U"Maximum F1"), GET_REAL (U"Minimum F2"), 
 			GET_REAL (U"Maximum F2"), GET_REAL (U"Minimum F3"), &ceiling);
-		praat_new (formant.move(), my name, U"_", Melder_fixed (ceiling, 0));
+		praat_new (formant.transfer(), my name, U"_", Melder_fixed (ceiling, 0));
 	}
 END
 
-FORM (Sound_to_Formant_interval_constrained_robust, U"Sound: To Formant (interval, constrained, robust)", nullptr)
+FORM (Sound_to_Formant_interval_constrained_robust, U"Sound: To Formant (interval, constrained, robust)", 0)
 	REAL (U"left Time range (s)", U"0.1")
 	REAL (U"right Time range (s)", U"0.15")
 	POSITIVE (U"Window length (s)", U"0.015")
@@ -1344,11 +1331,11 @@ DO
 			GET_REAL (U"Parameter variance power"), 1,
 			GET_REAL (U"Minimum F1"), GET_REAL (U"Maximum F1"), GET_REAL (U"Minimum F2"), 
 			GET_REAL (U"Maximum F2"), GET_REAL (U"Minimum F3"), &ceiling);
-		praat_new (formant.move(), my name, U"_", Melder_fixed (ceiling, 0));
+		praat_new (formant.transfer(), my name, U"_", Melder_fixed (ceiling, 0));
 	}
 END
 
-FORM (Sound_to_OptimalCeilingTier, U"", nullptr)
+FORM (Sound_to_OptimalCeilingTier, U"", 0)
 	POSITIVE (U"Window length (s)", U"0.015")
 	POSITIVE (U"Time step (s)", U"0.0025")
 	POSITIVE (U"left Maximum frequency range (Hz)", U"4500.0")
@@ -1374,11 +1361,11 @@ DO
 			GET_REAL (U"left Maximum frequency range"), GET_REAL (U"right Maximum frequency range"), GET_INTEGER (U"Number of frequency steps"),
 			GET_REAL (U"Pre-emphasis from"), GET_REAL (U"Formant smoothing window"), GET_INTEGER (U"Number of formant tracks in model"),
 			GET_INTEGER (U"Order of polynomials") + 1, GET_INTEGER (U"Weigh data") - 1, GET_REAL (U"Number of sigmas"), GET_REAL (U"Parameter variance power"));
-		praat_new (octier.move(), my name);
+		praat_new (octier.transfer(), my name);
 	}
 END
 
-FORM (Table_to_DataModeler, U"", nullptr)
+FORM (Table_to_DataModeler, U"", 0)
 	REAL (U"left X range", U"0.0")
 	REAL (U"right X range", U"0.0 (=auto)")
 	WORD (U"Column with X data", U"")
@@ -1396,13 +1383,13 @@ DO
 		long scolumn = Table_findColumnIndexFromColumnLabel (me, GET_STRING (U"Column with sigmas"));
 		autoDataModeler thee = Table_to_DataModeler (me, GET_REAL (U"left X range"), GET_REAL (U"right X range"),
 			xcolumn, ycolumn, scolumn, GET_INTEGER (U"Maximum order") + 1, GET_INTEGER (U"Model functions"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
-void praat_DataModeler_init ();
-void praat_DataModeler_init () {
-	Thing_recognizeClassesByName (classDataModeler, classFormantModeler, classOptimalCeilingTier, classOptimalCeilingTierEditor, classPitchModeler, nullptr);
+void praat_DataModeler_init (void);
+void praat_DataModeler_init (void) {
+	Thing_recognizeClassesByName (classDataModeler, classFormantModeler, classOptimalCeilingTier, classOptimalCeilingTierEditor, classPitchModeler, NULL);
 
 	praat_addMenuCommand (U"Objects", U"New", U"Create simple DataModeler...", U"Create ISpline...", praat_HIDDEN + praat_DEPTH_1, DO_DataModeler_createSimple);
 
@@ -1448,9 +1435,9 @@ void praat_DataModeler_init () {
 	praat_addAction1 (classDataModeler, 0, U"To Covariance (parameters)...", 0, 0, DO_DataModeler_to_Covariance_parameters);
 	praat_addAction1 (classDataModeler, 0, U"To Table (z-scores)...", 0, 0, DO_DataModeler_to_Table_zscores);
 
-	praat_addAction1 (classFormant, 0, U"To FormantModeler...", U"To LPC...", praat_HIDDEN, DO_Formant_to_FormantModeler);
-	praat_addAction1 (classFormant, 0, U"Extract smoothest part...", 0, praat_HIDDEN, DO_Formants_extractSmoothestPart);
-	praat_addAction1 (classFormant, 0, U"Extract smoothest part (constrained)...", 0, praat_HIDDEN, DO_Formants_extractSmoothestPart_constrained);
+	praat_addAction1 (classFormant, 0, U"To FormantModeler...", U"To LPC...", 0, DO_Formant_to_FormantModeler);
+	praat_addAction1 (classFormant, 0, U"Extract smoothest part...", 0, 0, DO_Formants_extractSmoothestPart);
+	praat_addAction1 (classFormant, 0, U"Extract smoothest part (constrained)...", 0, 0, DO_Formants_extractSmoothestPart_constrained);
 
 	praat_addAction1 (classFormantModeler, 0, U"Draw -", 0, 0, 0);
 	praat_addAction1 (classFormantModeler, 0, U"Speckle...", 0, 1, DO_FormantModeler_speckle);
diff --git a/dwtools/praat_David_init.cpp b/dwtools/praat_David_init.cpp
index 3c11cbc..8f0f7a7 100644
--- a/dwtools/praat_David_init.cpp
+++ b/dwtools/praat_David_init.cpp
@@ -1,6 +1,6 @@
 /* praat_David_init.cpp
  *
- * Copyright (C) 1993-2016 David Weenink, 2015 Paul Boersma
+ * Copyright (C) 1993-2015 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -55,7 +55,7 @@
  djmw 20090109 KlattGrid formulas for formant
  djmw 20090708 KlattTable <-> Table
  djmw 20090822 Thing_recognizeClassesByName: added classCepstrum, classIndex, classKlattTable
- djmw 20090914 Excitation to Excitations crashed because of nullptr reference
+ djmw 20090914 Excitation to Excitations crashed because of NULL reference
  djmw 20090927 TableOfReal_drawRow(s)asHistogram
  djmw 20091023 Sound_draw_selectedIntervals
  djmw 20091230 Covariance_and_TableOfReal_mahalanobis
@@ -148,8 +148,8 @@ void praat_TableOfReal_init2 (ClassInfo klas);
 void praat_SSCP_as_TableOfReal_init (ClassInfo klas);
 
 void praat_CC_init (ClassInfo klas);
-void DTW_constraints_addCommonFields (UiForm dia);
-void DTW_constraints_getCommonFields (UiForm dia, int *begin, int *end, int *slope);
+void DTW_constraints_addCommonFields (void *dia);
+void DTW_constraints_getCommonFields (void *dia, int *begin, int *end, int *slope);
 void praat_BandFilterSpectrogram_query_init (ClassInfo klas);
 int praat_Fon_formula (UiForm dia, Interpreter interpreter);
 void praat_EditDistanceTable_as_TableOfReal_init (ClassInfo klas);
@@ -158,7 +158,7 @@ void praat_EditDistanceTable_as_TableOfReal_init (ClassInfo klas);
 
 /********************** Activation *******************************************/
 
-FORM (Activation_formula, U"Activation: Formula", nullptr)
+FORM (Activation_formula, U"Activation: Formula", 0)
 	LABEL (U"label", U"for col := 1 to ncol do { self [row, col] := `formula' ; x := x + dx } y := y + dy }}")
 	TEXTFIELD (U"formula", U"self")
 	OK
@@ -169,8 +169,7 @@ END
 DIRECT (Activation_to_Matrix)
 	LOOP {
 		iam (Activation);
-		autoMatrix thee = Activation_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (Activation_to_Matrix (me), my name);
 	}
 END
 
@@ -181,7 +180,7 @@ FORM (BandFilterSpectrogram_drawFrequencyScale, U"", U"")
 	REAL (U"right Horizontal frequency range (Hz)", U"0.0")
 	REAL (U"left Vertical frequency range (mel)", U"0.0")
 	REAL (U"right Vertical frequency range (mel)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -210,7 +209,7 @@ FORM (BarkFilter_drawSpectrum, U"BarkFilter: Draw spectrum (slice)", U"FilterBan
 	REAL (U"right Frequency range (Bark)", U"0.0")
 	REAL (U"left Amplitude range (dB)", U"0.0")
 	REAL (U"right Amplitude range (dB)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -226,15 +225,15 @@ FORM (BarkFilter_drawSekeyHansonFilterFunctions, U"BarkFilter: Draw filter funct
 	INTEGER (U"left Filter range", U"0")
 	INTEGER (U"right Filter range", U"0")
 	RADIO (U"Frequency scale", 1)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	REAL (U"left Frequency range", U"0.0")
 	REAL (U"right Frequency range", U"0.0")
-	BOOLEAN (U"Amplitude scale in dB", true)
+	BOOLEAN (U"Amplitude scale in dB", 1)
 	REAL (U"left Amplitude range", U"0.0")
 	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -252,20 +251,20 @@ FORM (BarkSpectrogram_drawSekeyHansonAuditoryFilters, U"BarkSpectrogram: Draw Se
 	INTEGER (U"left Filter range", U"0")
 	INTEGER (U"right Filter range", U"0")
 	RADIO (U"Frequency scale", 2)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
 	REAL (U"left Frequency range", U"0.0")
 	REAL (U"right Frequency range", U"0.0")
 	BOOLEAN (U"Amplitude scale in dB", 1)
 	REAL (U"left Amplitude range", U"0.0")
 	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (BarkSpectrogram);
-		bool xIsHertz = ( GET_INTEGER (U"Frequency scale") == 1 );
+		bool xIsHertz = GET_INTEGER (U"Frequency scale") == 1;
 		BarkSpectrogram_drawSekeyHansonFilterFunctions (me, GRAPHICS, xIsHertz,
 			GET_INTEGER (U"left Filter range"), GET_INTEGER (U"right Filter range"),
 			GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
@@ -274,14 +273,14 @@ DO
 	}
 END
 
-FORM (BarkFilter_paint, U"FilterBank: Paint", nullptr)
+FORM (BarkFilter_paint, U"FilterBank: Paint", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range (bark)", U"0.0")
 	REAL (U"right Frequency range (bark)", U"0.0")
 	REAL (U"left Amplitude range", U"0.0")
 	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Garnish", false)
+	BOOLEAN (U"Garnish", 0)
 	OK
 DO
 	autoPraatPicture picture;
@@ -332,9 +331,8 @@ DIRECT (Categories_edit)
 	} else {
 		LOOP {
 			iam (Categories);
-			autoCategoriesEditor editor = CategoriesEditor_create (my name, me);
-			praat_installEditor (editor.get(), IOBJECT);
-			editor.releaseToUser();
+			praat_installEditor (CategoriesEditor_create (
+				my name, me), IOBJECT);
 		}
 	}
 END
@@ -347,7 +345,7 @@ DIRECT (Categories_getNumberOfCategories)
 END
 
 DIRECT (Categories_getNumberOfDifferences)
-	Categories c1 = nullptr, c2 = nullptr;
+	Categories c1 = 0, c2 = 0;
 	LOOP {
 		iam (Categories);
 		(c1 ? c2 : c1) = me;
@@ -363,7 +361,7 @@ DIRECT (Categories_getNumberOfDifferences)
 END
 
 DIRECT (Categories_getFractionDifferent)
-	Categories c1 = nullptr, c2 = nullptr;
+	Categories c1 = 0, c2 = 0;
 	LOOP {
 		iam (Categories);
 		(c1 ? c2 : c1) = me;
@@ -373,14 +371,13 @@ DIRECT (Categories_getFractionDifferent)
 END
 
 DIRECT (Categories_difference)
-	Categories c1 = nullptr, c2 = nullptr;
+	Categories c1 = 0, c2 = 0;
 	LOOP {
 		iam (Categories);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
-	long n;
-	double fraction;
+	double fraction; long n;
 	OrderedOfString_difference (c1, c2, &n, &fraction);
 	Melder_information (n, U" differences");
 END
@@ -388,52 +385,47 @@ END
 DIRECT (Categories_selectUniqueItems)
 	LOOP {
 		iam (Categories);
-		autoCategories thee = Categories_selectUniqueItems (me);
-		praat_new (thee.move(), my name, U"_uniq");
+		praat_new (Categories_selectUniqueItems (me, 1), my name, U"_uniq");
 	}
 END
 
 DIRECT (Categories_to_Confusion)
-	Categories c1 = nullptr, c2 = nullptr;
+	Categories c1 = 0, c2 = 0;
 	LOOP {
 		iam (Categories);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
-	autoConfusion thee = Categories_to_Confusion (c1, c2);
-	praat_new (thee.move(), Thing_getName (c1), U"_", Thing_getName (c2));
+	praat_new (Categories_to_Confusion (c1, c2), Thing_getName (c1), U"_", Thing_getName (c2));
 END
 
 DIRECT (Categories_to_Strings)
 	LOOP {
 		iam (Categories);
-		autoStrings thee = Categories_to_Strings (me);
-		praat_new (thee.move(), my name);
+		praat_new (Categories_to_Strings (me), my name);
 	}
 END
 
 DIRECT (Categories_join)
-	Categories c1 = nullptr, c2 = nullptr;
+	Categories c1 = 0, c2 = 0;
 	LOOP {
 		iam (Categories);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
-	autoOrderedOfString thee = OrderedOfString_joinItems (c1, c2);
-	praat_new (thee.move(), c1 -> name, U"_", c2 -> name);
+	praat_new (OrderedOfString_joinItems (c1, c2), 0);
 END
 
 DIRECT (Categories_permuteItems)
 	LOOP {
 		iam (Collection);
-		autoCollection thee = Collection_permuteItems (me);
-		praat_new (thee.move(), my name, U"_perm");
+		praat_new (Collection_permuteItems (me), my name, U"_perm");
 	}
 END
 
 /***************** CC ****************************************/
 
-FORM (CC_getNumberOfCoefficients, U"Get number of coefficients", nullptr)
+FORM (CC_getNumberOfCoefficients, U"Get number of coefficients", 0)
 	NATURAL (U"Frame number", U"1")
 	OK
 DO
@@ -451,7 +443,7 @@ FORM (CC_getValue, U"CC: Get value", U"CC: Get value...")
 DO
 	LOOP {
 		iam (CC); // ?? generic
-		Melder_informationReal (CC_getValue (me, GET_REAL (U"Time"), GET_INTEGER (U"Index")), nullptr);
+		Melder_informationReal (CC_getValue (me, GET_REAL (U"Time"), GET_INTEGER (U"Index")), 0);
 	}
 END
 
@@ -462,7 +454,7 @@ FORM (CC_getValueInFrame, U"CC: Get value in frame", U"CC: Get value in frame...
 DO
 	LOOP {
 		iam (CC); // ?? generic
-		Melder_informationReal (CC_getValueInFrame (me, GET_INTEGER (U"Frame number"), GET_INTEGER (U"Index")), nullptr);
+		Melder_informationReal (CC_getValueInFrame (me, GET_INTEGER (U"Frame number"), GET_INTEGER (U"Index")), 0);
 	}
 END
 
@@ -472,7 +464,7 @@ FORM (CC_getC0ValueInFrame, U"CC: Get c0 value in frame", U"CC: Get c0 value in
 DO
 	LOOP {
 		iam (CC); // ?? generic
-		Melder_informationReal (CC_getC0ValueInFrame (me, GET_INTEGER (U"Frame number")), nullptr);
+		Melder_informationReal (CC_getC0ValueInFrame (me, GET_INTEGER (U"Frame number")), 0);
 	}
 END
 
@@ -483,7 +475,7 @@ FORM (CC_paint, U"CC: Paint", U"CC: Paint...")
 	INTEGER (U"To coefficient", U"0")
 	REAL (U"Minimum", U"0.0")
 	REAL (U"Maximum", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -500,7 +492,7 @@ FORM (CC_drawC0, U"CC: Draw c0", U"CC: Draw c0...")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Amplitude range", U"0.0")
 	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -521,7 +513,7 @@ FORM (CCs_to_DTW, U"CC: To DTW", U"CC: To DTW...")
 	DTW_constraints_addCommonFields (dia);
 	OK
 DO
-	CC c1 = nullptr, c2 = nullptr;
+	CC c1 = 0, c2 = 0;
 	LOOP {
 		iam (CC);
 		(c1 ? c2 : c1) = me;
@@ -532,15 +524,14 @@ DO
     autoDTW thee = CCs_to_DTW (c1, c2, GET_REAL (U"Cepstral weight"), GET_REAL (U"Log energy weight"),
         GET_REAL (U"Regression weight"), GET_REAL (U"Regression weight log energy"),
         GET_REAL (U"Regression coefficients window"));
-    DTW_findPath (thee.get(), begin, end, slope);
-	praat_new (thee.move(), U"");
+    DTW_findPath (thee.peek(), begin, end, slope);
+	praat_new (thee.transfer(), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
 DIRECT (CC_to_Matrix)
 	LOOP {
 		iam (CC);
-		autoMatrix thee = CC_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (CC_to_Matrix (me), my name);
 	}
 END
 
@@ -548,11 +539,11 @@ END
 
 FORM (CCA_drawEigenvector, U"CCA: Draw eigenvector", U"Eigen: Draw eigenvector...")
 	OPTIONMENU (U"X or Y", 1)
-		OPTION (U"y")
-		OPTION (U"x")
+	OPTION (U"y")
+	OPTION (U"x")
 	INTEGER (U"Eigenvector number", U"1")
 	LABEL (U"", U"Multiply by eigenvalue?")
-	BOOLEAN (U"Component loadings", false)
+	BOOLEAN (U"Component loadings", 0)
 	LABEL (U"", U"Select part of the eigenvector:")
 	INTEGER (U"left Element range", U"0")
 	INTEGER (U"right Element range", U"0")
@@ -560,8 +551,8 @@ FORM (CCA_drawEigenvector, U"CCA: Draw eigenvector", U"Eigen: Draw eigenvector..
 	REAL (U"right Amplitude range", U"1.0")
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Connect points", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Connect points", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -594,8 +585,8 @@ END
 
 FORM (CCA_getEigenvectorElement, U"CCA: Get eigenvector element", U"Eigen: Get eigenvector element...")
 	OPTIONMENU (U"X or Y", 1)
-		OPTION (U"y")
-		OPTION (U"x")
+	OPTION (U"y")
+	OPTION (U"x")
 	NATURAL (U"Eigenvector number", U"1")
 	NATURAL (U"Element number", U"1")
 	OK
@@ -603,7 +594,7 @@ DO
 	LOOP {
 		iam (CCA);
 		Melder_information (CCA_getEigenvectorElement (me, GET_INTEGER (U"X or Y"),
-			GET_INTEGER (U"Eigenvector number"), GET_INTEGER (U"Element number")));
+		GET_INTEGER (U"Eigenvector number"), GET_INTEGER (U"Element number")));
 	}
 END
 
@@ -613,36 +604,35 @@ FORM (CCA_getZeroCorrelationProbability, U"CCA: Get zero correlation probability
 DO
 	LOOP {
 		iam (CCA);
-		double p, chisq, df;
-		CCA_getZeroCorrelationProbability (me, GET_INTEGER (U"Coefficient number"), & p, & chisq, & df);
+		double p, chisq; long ndf;
+		CCA_getZeroCorrelationProbability (me, GET_INTEGER (U"Coefficient number"), &chisq, &ndf, &p);
 		Melder_information (p, U" (=probability for chisq = ", chisq,
-			U" and ndf = ", df, U")");
+		U" and ndf = ", ndf, U")");
 	}
 END
 
 DIRECT (CCA_and_Correlation_factorLoadings)
-	CCA me = FIRST (CCA);
-	Correlation thee = FIRST (Correlation);
-	autoTableOfReal result = CCA_and_Correlation_factorLoadings (me, thee);
-	praat_new (result.move(), Thing_getName (me), U"_loadings");
+	CCA cca = FIRST (CCA);
+	Correlation c = FIRST (Correlation);
+	praat_new (CCA_and_Correlation_factorLoadings (cca, c), Thing_getName (cca), U"_loadings");
 END
 
 FORM (CCA_and_Correlation_getVarianceFraction, U"CCA & Correlation: Get variance fraction", U"CCA & Correlation: Get variance fraction...")
 	LABEL (U"", U"Get the fraction of variance from the data in set...")
 	OPTIONMENU (U"X or Y", 1)
-		OPTION (U"y")
-		OPTION (U"x")
+	OPTION (U"y")
+	OPTION (U"x")
 	LABEL (U"", U"extracted by...")
 	NATURAL (U"left Canonical variate range", U"1")
 	NATURAL (U"right Canonical variate range", U"1")
 	OK
 DO
-	CCA me = FIRST (CCA);
-	Correlation thee = FIRST (Correlation);
+	CCA cca = FIRST (CCA);
+	Correlation c = FIRST (Correlation);
 	int x_or_y = GET_INTEGER (U"X or Y");
 	int cv_from = GET_INTEGER (U"left Canonical variate range");
 	int cv_to = GET_INTEGER (U"right Canonical variate range");
-	Melder_information (CCA_and_Correlation_getVarianceFraction (me, thee, x_or_y, cv_from, cv_to),
+	Melder_information (CCA_and_Correlation_getVarianceFraction (cca, c, x_or_y, cv_from, cv_to),
 		U" (fraction variance from ", (x_or_y == 1 ? U"y" : U"x"), U", extracted by canonical variates ",
 		cv_from, U" to ", cv_to, U")");
 END
@@ -650,39 +640,38 @@ END
 FORM (CCA_and_Correlation_getRedundancy_sl, U"CCA & Correlation: Get Stewart-Love redundancy", U"CCA & Correlation: Get redundancy (sl)...")
 	LABEL (U"", U"Get the redundancy of the data in set...")
 	OPTIONMENU (U"X or Y", 1)
-		OPTION (U"y")
-		OPTION (U"x")
+	OPTION (U"y")
+	OPTION (U"x")
 	LABEL (U"", U"extracted by...")
 	NATURAL (U"left Canonical variate range", U"1")
 	NATURAL (U"right Canonical variate range", U"1")
 	LABEL (U"", U"...given the availability of the data in the other set.")
 	OK
 DO
-	CCA me = FIRST (CCA);
-	Correlation thee = FIRST (Correlation);
+	CCA cca = FIRST (CCA);
+	Correlation c = FIRST (Correlation);
 	int x_or_y = GET_INTEGER (U"X or Y");
 	int cv_from = GET_INTEGER (U"left Canonical variate range");
 	int cv_to = GET_INTEGER (U"right Canonical variate range");
-	Melder_information (CCA_and_Correlation_getRedundancy_sl (me, thee, x_or_y, cv_from, cv_to),
+	Melder_information (CCA_and_Correlation_getRedundancy_sl (cca, c, x_or_y, cv_from, cv_to),
 		U" (redundancy from ", (x_or_y == 1 ? U"y" : U"x"), U" extracted by canonical variates ",
 		cv_from, U" to ", cv_to, U")");
 END
 
 DIRECT (CCA_and_TableOfReal_factorLoadings)
-	CCA me = FIRST (CCA);
-	TableOfReal thee = FIRST (TableOfReal);
-	autoTableOfReal result = CCA_and_TableOfReal_factorLoadings (me, thee);
-	praat_new (result.move(), Thing_getName (me), U"_loadings");
+	CCA cca = FIRST (CCA);
+	TableOfReal tr = FIRST (TableOfReal);
+	praat_new (CCA_and_TableOfReal_factorLoadings (cca, tr), Thing_getName (cca), U"_loadings");
 END
 
 FORM (CCA_and_TableOfReal_scores, U"CCA & TableOfReal: To TableOfReal (scores)", U"CCA & TableOfReal: To TableOfReal (scores)...")
 	INTEGER (U"Number of canonical correlations", U"0 (=all)")
 	OK
 DO
-	CCA me = FIRST (CCA);
-	TableOfReal thee = FIRST (TableOfReal);
-	autoTableOfReal result = CCA_and_TableOfReal_scores (me, thee, GET_INTEGER (U"Number of canonical correlations"));
-	praat_new (result.move(), Thing_getName (me), U"_scores");
+	CCA cca = FIRST (CCA);
+	TableOfReal tr = FIRST (TableOfReal);
+	praat_new (CCA_and_TableOfReal_scores (cca, tr, GET_INTEGER (U"Number of canonical correlations")),
+		Thing_getName (cca), U"_scores");
 END
 
 FORM (CCA_and_TableOfReal_predict, U"CCA & TableOfReal: Predict", U"CCA & TableOfReal: Predict...")
@@ -690,10 +679,9 @@ FORM (CCA_and_TableOfReal_predict, U"CCA & TableOfReal: Predict", U"CCA & TableO
 	INTEGER (U"Column number", U"1")
 	OK
 DO
-	CCA me = FIRST (CCA);
-	TableOfReal thee = FIRST (TableOfReal);
-	autoTableOfReal result = CCA_and_TableOfReal_predict (me, thee, GET_INTEGER (U"Column number"));
-	praat_new (result.move(), thy name, U"_", my name);
+	CCA cca = FIRST (CCA);
+	TableOfReal tr = FIRST (TableOfReal);
+	praat_new (CCA_and_TableOfReal_predict (cca, tr, GET_INTEGER (U"Column number")), tr->name, U"_", cca->name);
 END
 
 /***************** ChebyshevSeries ****************************************/
@@ -714,15 +702,13 @@ FORM (ChebyshevSeries_create, U"Create ChebyshevSeries", U"Create ChebyshevSerie
 DO
 	double xmin = GET_REAL (U"Xmin"), xmax = GET_REAL (U"Xmax");
 	REQUIRE (xmin < xmax, U"Xmin must be smaller than Xmax.")
-	autoChebyshevSeries me = ChebyshevSeries_createFromString (xmin, xmax, GET_STRING (U"Coefficients"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (ChebyshevSeries_createFromString (xmin, xmax, GET_STRING (U"Coefficients")), GET_STRING (U"Name"));
 END
 
 DIRECT (ChebyshevSeries_to_Polynomial)
 	LOOP {
 		iam (ChebyshevSeries);
-		autoPolynomial thee = ChebyshevSeries_to_Polynomial (me);
-		praat_new (thee.move(), my name);
+		praat_new (ChebyshevSeries_to_Polynomial (me), my name);
 	}
 END
 
@@ -732,7 +718,7 @@ DIRECT (ClassificationTable_help)
 	Melder_help (U"ClassificationTable");
 END
 
-FORM (ClassificationTable_getClassIndexAtMaximumInRow, U"ClassificationTable: Get class index at maximum in row", nullptr)
+FORM (ClassificationTable_getClassIndexAtMaximumInRow, U"ClassificationTable: Get class index at maximum in row", 0)
 	NATURAL (U"Row number", U"1")
 	OK
 DO
@@ -743,7 +729,7 @@ DO
 	}
 END
 
-FORM (ClassificationTable_getClassLabelAtMaximumInRow, U"ClassificationTable: Get class label at maximum in row", nullptr)
+FORM (ClassificationTable_getClassLabelAtMaximumInRow, U"ClassificationTable: Get class label at maximum in row", 0)
 	NATURAL (U"Row number", U"1")
 	OK
 DO
@@ -758,35 +744,31 @@ END
 DIRECT (ClassificationTable_to_Confusion_old)
 	LOOP {
 		iam (ClassificationTable);
-		autoConfusion thee = ClassificationTable_to_Confusion (me, false);
-		praat_new (thee.move(), my name);
+		praat_new (ClassificationTable_to_Confusion (me, 0), my name);
 	}
 END
 
 FORM (ClassificationTable_to_Confusion, U"ClassificationTable: To Confusion", U"ClassificationTable: To Confusion...")
-	BOOLEAN (U"Only class labels", true)
+	BOOLEAN (U"Only class labels", 1)
 	OK
 DO
 	LOOP {
 		iam (ClassificationTable);
-		autoConfusion thee = ClassificationTable_to_Confusion (me, GET_INTEGER (U"Only class labels"));
-		praat_new (thee.move(), my name);
+		praat_new (ClassificationTable_to_Confusion (me, GET_INTEGER (U"Only class labels")), my name);
 	}
 END
 
 DIRECT (ClassificationTable_to_Correlation_columns)
 	LOOP {
 		iam (ClassificationTable);
-		autoCorrelation thee = ClassificationTable_to_Correlation_columns (me);
-		praat_new (thee.move(), my name, U"_col");
+		praat_new (ClassificationTable_to_Correlation_columns (me), my name, U"_col");
 	}
 END
 
 DIRECT (ClassificationTable_to_Strings_maximumProbability)
 	LOOP {
 		iam (ClassificationTable);
-		autoStrings thee = ClassificationTable_to_Strings_maximumProbability (me);
-		praat_new (thee.move(), my name);
+		praat_new (ClassificationTable_to_Strings_maximumProbability (me), my name);
 	}
 END
 
@@ -801,8 +783,7 @@ FORM (Confusion_createSimple, U"Create simple Confusion", U"Create simple Confus
 	SENTENCE (U"Labels", U"u i a")
 	OK
 DO
-	autoConfusion thee = Confusion_createSimple (GET_STRING (U"Labels"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (Confusion_createSimple (GET_STRING (U"Labels")), GET_STRING (U"Name"));
 END
 
 FORM (Confusion_increase, U"Confusion: Increase", U"Confusion: Increase...")
@@ -817,7 +798,7 @@ DO
 	}
 END
 
-FORM (Confusion_getValue, U"Confusion: Get value", nullptr)
+FORM (Confusion_getValue, U"Confusion: Get value", 0)
 	WORD (U"Stimulus", U"u")
 	WORD (U"Response", U"i")
 	OK
@@ -854,20 +835,18 @@ END
 DIRECT (Confusion_to_TableOfReal_marginals)
 	LOOP {
 		iam (Confusion);
-		autoTableOfReal thee = Confusion_to_TableOfReal_marginals (me);
-		praat_new (thee.move(), my name);
+		praat_new (Confusion_to_TableOfReal_marginals (me), my name);
 	}
 END
 
 DIRECT (Confusion_difference)
-	Confusion c1 = nullptr, c2 = nullptr;
+	Confusion c1 = 0, c2 = 0;
 	LOOP {
 		iam (Confusion);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
-	autoMatrix thee = Confusion_difference (c1, c2);
-	praat_new (thee.move(), U"diffs");
+	praat_new (Confusion_difference (c1, c2), U"diffs");
 END
 
 FORM (Confusion_condense, U"Confusion: Condense", U"Confusion: Condense...")
@@ -881,9 +860,8 @@ FORM (Confusion_condense, U"Confusion: Condense", U"Confusion: Condense...")
 DO
 	LOOP {
 		iam (Confusion);
-		autoConfusion thee = Confusion_condense (me, GET_STRING (U"Search"), GET_STRING (U"Replace"),
-			GET_INTEGER (U"Replace limit"), GET_INTEGER (U"Search and replace are") - 1);
-		praat_new (thee.move(), my name, U"_cnd");
+		praat_new (Confusion_condense (me, GET_STRING (U"Search"), GET_STRING (U"Replace"),
+		GET_INTEGER (U"Replace limit"), GET_INTEGER (U"Search and replace are") - 1), my name, U"_cnd");
 	}
 END
 
@@ -896,9 +874,8 @@ DO
 	const char32 *newlabel = GET_STRING (U"New label");
 	LOOP {
 		iam (Confusion);
-		autoConfusion thee = Confusion_group (me, GET_STRING (U"Stimuli & Responses"), newlabel,
-			GET_INTEGER (U"New label position"));
-		praat_new (thee.move(), my name, U"_sr", newlabel);
+		praat_new (Confusion_group (me, GET_STRING (U"Stimuli & Responses"), newlabel,
+		GET_INTEGER (U"New label position")), Thing_getName (me), U"_sr", newlabel);
 	}
 END
 
@@ -911,9 +888,8 @@ DO
 	const char32 *newlabel = GET_STRING (U"New label");
 	LOOP {
 		iam (Confusion);
-		autoConfusion thee = Confusion_groupStimuli (me, GET_STRING (U"Stimuli"), newlabel,
-			GET_INTEGER (U"New label position"));
-		praat_new (thee.move(), my name, U"_s", newlabel);
+		praat_new (Confusion_groupStimuli (me, GET_STRING (U"Stimuli"), newlabel,
+		GET_INTEGER (U"New label position")), Thing_getName (me), U"_s", newlabel);
 	}
 END
 
@@ -926,19 +902,18 @@ DO
 	const char32 *newlabel = GET_STRING (U"New label");
 	LOOP {
 		iam (Confusion);
-		autoConfusion thee = Confusion_groupResponses (me, GET_STRING (U"Responses"), newlabel,
-			GET_INTEGER (U"New label position"));
-		praat_new (thee.move(), my name, U"_s", newlabel);
+		praat_new (Confusion_groupResponses (me, GET_STRING (U"Responses"), newlabel,
+		GET_INTEGER (U"New label position")), Thing_getName (me), U"_s", newlabel);
 	}
 END
 
 FORM (Confusion_drawAsNumbers, U"", U"")
-	BOOLEAN (U"Draw marginals", true)
+	BOOLEAN (U"Draw marginals", 1)
 	RADIO (U"Format", 3)
-		RADIOBUTTON (U"decimal")
-		RADIOBUTTON (U"exponential")
-		RADIOBUTTON (U"free")
-		RADIOBUTTON (U"rational")
+	RADIOBUTTON (U"decimal")
+	RADIOBUTTON (U"exponential")
+	RADIOBUTTON (U"free")
+	RADIOBUTTON (U"rational")
 	NATURAL (U"Precision", U"5")
 	OK
 DO
@@ -946,15 +921,14 @@ DO
 	LOOP {
 		iam (Confusion);
 		Confusion_drawAsNumbers (me, GRAPHICS, GET_INTEGER (U"Draw marginals"),
-			GET_INTEGER (U"Format"), GET_INTEGER (U"Precision"));
+		GET_INTEGER (U"Format"), GET_INTEGER (U"Precision"));
 	}
 END
 
 DIRECT (Confusion_getFractionCorrect)
 	LOOP {
 		iam (Confusion);
-		double f;
-		long n;
+		double f; long n;
 		Confusion_getFractionCorrect (me, &f, &n);
 		Melder_information (f, U" (fraction correct)");
 	}
@@ -968,14 +942,14 @@ END
 
 /******************* Confusion & Matrix *************************************/
 
-FORM (Confusion_Matrix_draw, U"Confusion & Matrix: Draw confusions with arrows", nullptr)
+FORM (Confusion_Matrix_draw, U"Confusion & Matrix: Draw confusions with arrows", 0)
 	INTEGER (U"Category position", U"0 (=all)")
 	REAL (U"Lower level (%)", U"0")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	long categoryPosition = GET_INTEGER (U"Category position");
@@ -987,55 +961,41 @@ DO
 		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
 END
 
-/********************** ComplexSpectrogram *******************************************/
+/**********************ComplexSpectrogram *******************************************/
 
 DIRECT (ComplexSpectrogram_help)
 	Melder_help (U"ComplexSpectrogram_help");
 END
 
-FORM (ComplexSpectrogram_to_Sound, U"ComplexSpectrogram: To Sound", nullptr)
+FORM (ComplexSpectrogram_to_Sound, U"ComplexSpectrogram: To Sound", 0)
 	POSITIVE (U"Duration factor", U"1.0")
 	OK
 DO
 	LOOP {
 		iam (ComplexSpectrogram);
-		autoSound thee = ComplexSpectrogram_to_Sound (me, GET_REAL (U"Duration factor"));
-		praat_new (thee.move(), my name);
+		praat_new (ComplexSpectrogram_to_Sound (me, GET_REAL (U"Duration factor")), my name);
 	}
 END
 
 DIRECT (ComplexSpectrogram_to_Spectrogram)
 	LOOP {
 		iam (ComplexSpectrogram);
-		autoSpectrogram thee = ComplexSpectrogram_to_Spectrogram (me);
-		praat_new (thee.move(), my name);
+		praat_new (ComplexSpectrogram_to_Spectrogram (me), my name);
 	}
 END
 
-FORM (ComplexSpectrogram_to_Spectrum, U"ComplexSpectrogram: To Spectrum (slice)", nullptr)
+FORM (ComplexSpectrogram_to_Spectrum, U"ComplexSpectrogram: To Spectrum (slice)", 0)
 	REAL (U"Time (s)", U"0.0")
 	OK
 DO
 	LOOP {
 		iam (ComplexSpectrogram);
 		autoSpectrum thee = ComplexSpectrogram_to_Spectrum (me, GET_REAL (U"Time"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
-/********************** Correlation *******************************************/
-
-FORM (Correlation_createSimple, U"Create simple Correlation", U"Create simple Correlation...")
-	WORD (U"Name", U"correlation")
-	SENTENCE (U"Correlations", U"1.0 0.5 1.0")
-	SENTENCE (U"Centroid", U"0.0 0.0")
-	NATURAL (U"Number of observations", U"100")
-	OK
-DO
-	autoCorrelation me = Correlation_createSimple (GET_STRING (U"Correlations"), GET_STRING (U"Centroid"),
-		GET_INTEGER (U"Number of observations"));
-	praat_new (me.move(), GET_STRING (U"Name"));
-END
+/**********************Correlation *******************************************/
 
 DIRECT (Correlation_help)
 	Melder_help (U"Correlation");
@@ -1045,16 +1005,15 @@ FORM (Correlation_confidenceIntervals, U"Correlation: Confidence intervals...",
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
 	INTEGER (U"Number of tests (Bonferroni correction)", U"0")
 	RADIO (U"Approximation", 1)
-		RADIOBUTTON (U"Ruben")
-		RADIOBUTTON (U"Fisher")
+	RADIOBUTTON (U"Ruben")
+	RADIOBUTTON (U"Fisher")
 	OK
 DO
 	double cl = GET_REAL (U"Confidence level");
 	long numberOfTests = GET_INTEGER (U"Number of tests");
 	LOOP {
 		iam (Correlation);
-		autoTableOfReal thee = Correlation_confidenceIntervals (me, cl, numberOfTests, GET_INTEGER (U"Approximation"));
-		praat_new (thee.move(), U"conf_intervals");
+		praat_new (Correlation_confidenceIntervals (me, cl, numberOfTests, GET_INTEGER (U"Approximation")), U"conf_intervals");
 	}
 END
 
@@ -1062,24 +1021,24 @@ FORM (Correlation_testDiagonality_bartlett, U"Correlation: Get diagonality (bart
 	NATURAL (U"Number of contraints", U"1")
 	OK
 DO
+	double chisq, p;
 	long nc = GET_INTEGER (U"Number of contraints");
 	LOOP {
 		iam (Correlation);
-		double chisq, p, df;
-		Correlation_testDiagonality_bartlett (me, nc, & chisq, & p, & df);
-		Melder_information (p, U" (=probability, based on chisq = ", chisq, U" and ndf = ", df, U")");
+		Correlation_testDiagonality_bartlett (me, nc, &chisq, &p);
+		Melder_information (p, U" (=probability, based on chisq = ",
+			chisq, U"and ndf = ", my numberOfRows * (my numberOfRows - 1) / 2);
 	}
 END
 
 DIRECT (Correlation_to_PCA)
 	LOOP {
 		iam (Correlation);
-		autoPCA thee = SSCP_to_PCA (me);
-		praat_new (thee.move(), my name);
+		praat_new (SSCP_to_PCA (me), my name);
 	}
 END
 
-/********************** Covariance *******************************************/
+/**********************Covariance *******************************************/
 
 DIRECT (Covariance_help)
 	Melder_help (U"Covariance");
@@ -1092,12 +1051,11 @@ FORM (Covariance_createSimple, U"Create simple Covariance", U"Create simple Cova
 	NATURAL (U"Number of observations", U"100")
 	OK
 DO
-	autoCovariance me = Covariance_createSimple (GET_STRING (U"Covariances"), GET_STRING (U"Centroid"),
-		GET_INTEGER (U"Number of observations"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (Covariance_createSimple (GET_STRING (U"Covariances"), GET_STRING (U"Centroid"),
+		GET_INTEGER (U"Number of observations")), GET_STRING (U"Name"));
 END
 
-FORM (Covariance_getProbabilityAtPosition, U"Covariance: Get probability at position", nullptr)
+FORM (Covariance_getProbabilityAtPosition, U"Covariance: Get probability at position", 0)
 	SENTENCE (U"Position", U"10.0 20.0")
 	OK
 DO
@@ -1110,75 +1068,72 @@ DO
 END
 
 FORM (Covariance_getSignificanceOfOneMean, U"Covariance: Get significance of one mean", U"Covariance: Get significance of one mean...")
-	LABEL (U"", U"Get probability that the estimated mean for")
+	LABEL (U"", U"Get probability that the mean with")
 	NATURAL (U"Index", U"1")
-	LABEL (U"", U"(or an estimated mean even further away)")
-	LABEL (U"", U"could arise if the true mean were")
+	LABEL (U"", U"differs from")
 	REAL (U"Value", U"0.0")
+	LABEL (U"", U"(Null hypothesis: the observed difference is due to chance.)")
 	OK
 DO
 	LOOP {
 		iam (Covariance);
-		double p, t, ndf;
-		Covariance_getSignificanceOfOneMean (me, GET_INTEGER (U"Index"), GET_REAL (U"Value"), & p, & t, & ndf);
+		double t, p; double ndf;
+		Covariance_getSignificanceOfOneMean (me, GET_INTEGER (U"Index"), GET_REAL (U"Value"), &p, &t , &ndf);
 		Melder_information (p, U" (=probability, based on t = ", t, U" and ndf = ", ndf);
 	}
 END
 
 FORM (Covariance_getSignificanceOfMeansDifference, U"Covariance: Get significance of means difference", U"Covariance: Get significance of means difference...")
-	LABEL (U"", U"Get probability that the estimated difference between the means for")
+	LABEL (U"", U"Get probability that the difference between means")
 	NATURAL (U"Index1", U"1")
 	NATURAL (U"Index2", U"2")
-	LABEL (U"", U"could arise if the true mean were")
+	LABEL (U"", U"differs from")
 	REAL (U"Value", U"0.0")
-	LABEL (U"", U"Assume the means are ")
-	BOOLEAN (U"Paired", true)
+	LABEL (U"", U"when the means are")
+	BOOLEAN (U"Paired", 1)
 	LABEL (U"", U"and have")
-	BOOLEAN (U"Equal variances", true)
+	BOOLEAN (U"Equal variances", 1)
 	OK
 DO
 	LOOP {
 		iam (Covariance);
-		double p, t, ndf;
+		double t, p; double ndf;
 		Covariance_getSignificanceOfMeansDifference (me, GET_INTEGER (U"Index1"), GET_INTEGER (U"Index2"),
-			GET_REAL (U"Value"), GET_INTEGER (U"Paired"), GET_INTEGER (U"Equal variances"), & p, & t, & ndf);
+		GET_REAL (U"Value"), GET_INTEGER (U"Paired"), GET_INTEGER (U"Equal variances"), &p, &t , &ndf);
 		Melder_information (p, U" (=probability, based on t = ",
 			t, U"and ndf = ", ndf, U")");
 	}
 END
 
 FORM (Covariance_getSignificanceOfOneVariance, U"Covariance: Get significance of one variance", U"Covariance: Get significance of one variance...")
-	LABEL (U"", U"Get the probability that the estimated variance for")
+	LABEL (U"", U"Get probability that the variance with")
 	NATURAL (U"Index", U"1")
-	LABEL (U"", U"(or an even larger estimated variance)")
-	LABEL (U"", U"could arise if the true variance were")
+	LABEL (U"", U"differs from")
 	REAL (U"Value", U"0.0")
+	LABEL (U"", U"(Null hypothesis: the observed difference is due to chance.)")
 	OK
 DO
 	LOOP {
 		iam (Covariance);
-		double p, chisq; long ndf;
-		Covariance_getSignificanceOfOneVariance (me, GET_INTEGER (U"Index"), GET_REAL (U"Value"), & p, & chisq, & ndf);
-		Melder_information (p, U" (=probability, based on chisq = ", chisq, U" and ndf = ", ndf);
+		double chisq, p; long ndf;
+		Covariance_getSignificanceOfOneVariance (me, GET_INTEGER (U"Index"), GET_REAL (U"Value"), &p, &chisq , &ndf);
+		Melder_information (p, U" (=probability, based on chisq = ", chisq, U"and ndf = ", ndf);
 	}
 END
 
-FORM (Covariance_getSignificanceOfVariancesRatio, U"Covariance: Get significance of variances ratio", nullptr)
-	LABEL (U"", U"Get the probability that the estimated variance ratio observed for")
+FORM (Covariance_getSignificanceOfVariancesRatio, U"Covariance: Get significance of variances ratio", U"Covariance: Get significance of variances ratio...")
 	NATURAL (U"Index1", U"1")
 	NATURAL (U"Index2", U"2")
-	LABEL (U"", U"(or an estimated ratio even further away)")
-	LABEL (U"", U"could arise if the true ratio were")
-	REAL (U"Value", U"1.0")
+	REAL (U"Hypothesized ratio", U"1.0")
 	OK
 DO
 	LOOP {
 		iam (Covariance);
-		double p, f, df;
+		double f, p; long ndf;
 		Covariance_getSignificanceOfVariancesRatio (me, GET_INTEGER (U"Index1"), GET_INTEGER (U"Index2"),
-			GET_REAL (U"Value"), & p, & f , & df);
-		Melder_information (p, U" (=probability, based on F = ", f, U" and ndf1 = ", df, U" and ndf2 = ", df);
-
+		GET_REAL (U"Hypothesized ratio"), &p, &f , &ndf);
+		Melder_information (p, U" (=probability, based on F = ", f,
+		U"and ndf1 = ", ndf, U" and ndf2 = ", ndf);
 	}
 END
 
@@ -1193,30 +1148,28 @@ DO
 	}
 END
 
-FORM (Covariances_reportMultivariateMeanDifference, U"Covariances: Report multivariate mean difference", U"Covariances: Report multivariate mean difference...")
-	LABEL (U"", U"Get probability that the estimated multivariate means difference could arise ")
-	LABEL (U"", U"if the actual means were equal.")
-	LABEL (U"", U"")
-	LABEL (U"", U"Assume for both means we have")
-	BOOLEAN (U"Equal covariances", true)
+FORM (Covariances_reportMultivariateMeanDifference, U"Covariances: Report multivariate mean difference",
+      U"Covariances: Report multivariate mean difference...")
+	BOOLEAN (U"Covariances are equal", 1)
 	OK
 DO
-	Covariance c1 = nullptr, c2 = nullptr;
+	Covariance c1 = 0, c2 = 0;
 	LOOP {
 		iam (Covariance);
 		(c1 ? c2 : c1) = me;
 	}
 	Melder_assert (c1 && c2);
 	double prob, fisher, df1, df2, difference;
-	bool equalCovariances = GET_INTEGER (U"Equal covariances");
+	int equalCovariances = GET_INTEGER (U"Covariances are equal");
 	MelderInfo_open ();
-	difference = Covariances_getMultivariateCentroidDifference (c1, c2, equalCovariances, & prob, & fisher, & df1, & df2);
+	difference = Covariances_getMultivariateCentroidDifference (c1, c2, equalCovariances, &prob, &fisher, &df1, &df2);
 	MelderInfo_writeLine (U"Under the assumption that the two covariances are", (equalCovariances ? U" " : U" not "), U"equal:");
 	MelderInfo_writeLine (U"Difference between multivariate means = ", difference);
 	MelderInfo_writeLine (U"Fisher's F = ", fisher);
 	MelderInfo_writeLine (U"Significance from zero = ", prob);
 	MelderInfo_writeLine (U"Degrees of freedom = ", df1, U", ", df2);
-	MelderInfo_writeLine (U"(Number of observations = ", c1->numberOfObservations, U", ", c2->numberOfObservations);
+	MelderInfo_writeLine (U"(Number of observations = ", c1->numberOfObservations, U", ",
+		c2->numberOfObservations);
 	MelderInfo_writeLine (U"Dimension of covariance matrices = ", c1-> numberOfRows, U")");
 	MelderInfo_close ();
 END
@@ -1227,65 +1180,49 @@ FORM (Covariance_to_TableOfReal_randomSampling, U"Covariance: To TableOfReal (ra
 DO
 	LOOP {
 		iam (Covariance);
-		autoTableOfReal thee = Covariance_to_TableOfReal_randomSampling (me, GET_INTEGER (U"Number of data points"));
-		praat_new (thee.move(), my name);
+		praat_new (Covariance_to_TableOfReal_randomSampling (me, GET_INTEGER (U"Number of data points")), my name);
 	}
 END
 
 DIRECT (Covariances_reportEquality)
-	autoCovarianceList covariances = CovarianceList_create ();
-	LOOP {
-		iam (Covariance);
-		covariances -> addItem_ref (me);
-	}
+	autoCollection set = praat_getSelectedObjects ();
 	MelderInfo_open ();
-	double p, chisq, df;
-	Covariances_equality (covariances.get(), 1, & p, & chisq, & df);
-	MelderInfo_writeLine (U"Difference between covariance matrices:");
-	MelderInfo_writeLine (U"Significance of difference (bartlett) = ", p);
-	MelderInfo_writeLine (U"Chi-squared (bartlett) = ", chisq);
-	MelderInfo_writeLine (U"Degrees of freedom (bartlett) = ", df);
-	
-	Covariances_equality (covariances.get(), 2, &p, &chisq, &df);
-	MelderInfo_writeLine (U"Significance of difference (wald) = ", p);
-	MelderInfo_writeLine (U"Chi-squared (wald) = ", chisq);
-	MelderInfo_writeLine (U"Degrees of freedom (wald) = ", df);
+	{
+		double chisq, p, df;
+		Covariances_equality (set.peek(), 1, &p, &chisq, &df);
+		MelderInfo_writeLine (U"Difference between covariance matrices:");
+		MelderInfo_writeLine (U"Significance of difference (bartlett) = ", p);
+		MelderInfo_writeLine (U"Chi-squared = ", chisq);
+		MelderInfo_writeLine (U"Degrees of freedom = ", df);
+		Covariances_equality (set.peek(), 2, &p, &chisq, &df);
+		MelderInfo_writeLine (U"Significance of difference (wald) = ", p);
+		MelderInfo_writeLine (U"Chi-squared = ", chisq);
+		MelderInfo_writeLine (U"Degrees of freedom = ", df);
+	}
 	MelderInfo_close ();
 END
 
 DIRECT (Covariance_to_Correlation)
 	LOOP {
 		iam (Covariance);
-		autoCorrelation thee = SSCP_to_Correlation (me);
-		praat_new (thee.move(), my name);
+		praat_new (SSCP_to_Correlation (me), my name);
 	}
 END
 
 DIRECT (Covariance_to_PCA)
 	LOOP {
 		iam (Covariance);
-		autoPCA thee = SSCP_to_PCA (me);
-		praat_new (thee.move(), my name);
-	}
-END
-
-DIRECT (Covariances_pool)
-	autoCovarianceList covariances = CovarianceList_create ();
-	LOOP {
-		iam (Covariance);
-		covariances -> addItem_ref (me);
+		praat_new (SSCP_to_PCA (me), my name);
 	}
-	autoCovariance thee = CovarianceList_to_Covariance_pool (covariances.get());
-	praat_new (thee.move(), U"pool");
 END
 
 FORM (Covariance_and_TableOfReal_mahalanobis, U"Covariance & TableOfReal: To TableOfReal (mahalanobis)", U"Covariance & TableOfReal: To TableOfReal (mahalanobis)...")
 	BOOLEAN (U"Centroid from table", 0)
 	OK
 DO
-	Covariance me = FIRST (Covariance);
-	TableOfReal thee = FIRST (TableOfReal);
-	praat_new (Covariance_and_TableOfReal_mahalanobis (me, thee, GET_INTEGER (U"Centroid from table")), U"mahalanobis");
+	Covariance cov = FIRST (Covariance);
+	TableOfReal tr = FIRST (TableOfReal);
+	praat_new (Covariance_and_TableOfReal_mahalanobis (cov, tr, GET_INTEGER (U"Centroid from table")), U"mahalanobis");
 END
 
 /********************** Discriminant **********************************/
@@ -1302,14 +1239,14 @@ DIRECT (Discriminant_setGroupLabels)
 END
 
 FORM (Discriminant_and_Pattern_to_Categories, U"Discriminant & Pattern: To Categories", U"Discriminant & Pattern: To Categories...")
-	BOOLEAN (U"Pool covariance matrices", true)
-	BOOLEAN (U"Use apriori probabilities", true)
+	BOOLEAN (U"Pool covariance matrices", 1)
+	BOOLEAN (U"Use apriori probabilities", 1)
 	OK
 DO
 	Discriminant me = FIRST (Discriminant);
 	Pattern pat = FIRST (Pattern);
-	autoCategories thee = Discriminant_and_Pattern_to_Categories (me, pat, GET_INTEGER (U"Pool covariance matrices"), GET_INTEGER (U"Use apriori probabilities"));
-	praat_new (thee.move(), my name, U"_", pat->name);
+	praat_new (Discriminant_and_Pattern_to_Categories (me, pat, GET_INTEGER (U"Pool covariance matrices"),
+		GET_INTEGER (U"Use apriori probabilities")), my name, U"_", pat->name);
 END
 
 FORM (Discriminant_and_TableOfReal_to_Configuration, U"Discriminant & TableOfReal: To Configuration", U"Discriminant & TableOfReal: To Configuration...")
@@ -1320,8 +1257,7 @@ DO
 	REQUIRE (dimension >= 0, U"Number of dimensions must be greater equal zero.")
 	Discriminant me = FIRST (Discriminant);
 	TableOfReal tr = FIRST_GENERIC (TableOfReal);
-	autoConfiguration thee = Discriminant_and_TableOfReal_to_Configuration (me, tr, dimension);
-	praat_new (thee.move(), my name, U"_", tr->name);
+	praat_new (Discriminant_and_TableOfReal_to_Configuration (me, tr, dimension), my name, U"_", tr->name);
 END
 
 DIRECT (hint_Discriminant_and_TableOfReal_to_ClassificationTable)
@@ -1329,78 +1265,27 @@ DIRECT (hint_Discriminant_and_TableOfReal_to_ClassificationTable)
 END
 
 FORM (Discriminant_and_TableOfReal_to_ClassificationTable, U"Discriminant & TableOfReal: To ClassificationTable", U"Discriminant & TableOfReal: To ClassificationTable...")
-	BOOLEAN (U"Pool covariance matrices", true)
-	BOOLEAN (U"Use apriori probabilities", true)
+	BOOLEAN (U"Pool covariance matrices", 1)
+	BOOLEAN (U"Use apriori probabilities", 1)
 	OK
 DO
 	Discriminant me = FIRST (Discriminant);
 	TableOfReal tr = FIRST_GENERIC (TableOfReal);
-	autoClassificationTable thee = Discriminant_and_TableOfReal_to_ClassificationTable (me, tr,
-		GET_INTEGER (U"Pool covariance matrices"), GET_INTEGER (U"Use apriori probabilities"));
-	praat_new (thee.move(), my name, U"_", tr->name);
+	praat_new (Discriminant_and_TableOfReal_to_ClassificationTable (me, tr,
+		GET_INTEGER (U"Pool covariance matrices"), GET_INTEGER (U"Use apriori probabilities")),
+		my name, U"_", tr->name);
 END
 
 FORM (Discriminant_and_TableOfReal_mahalanobis, U"Discriminant & TableOfReal: To TableOfReal (mahalanobis)", U"Discriminant & TableOfReal: To TableOfReal (mahalanobis)...")
 	SENTENCE (U"Group label", U"")
-	BOOLEAN (U"Pool covariance matrices", false)
+	BOOLEAN (U"Pool covariance matrices", 0)
 	OK
 DO
 	Discriminant me = FIRST (Discriminant);
 	TableOfReal tr = FIRST (TableOfReal);
 	long group = Discriminant_groupLabelToIndex (me, GET_STRING (U"Group label"));
 	REQUIRE (group > 0, U"Group label does not exist.")
-	autoTableOfReal thee = Discriminant_and_TableOfReal_mahalanobis (me, tr, group, GET_INTEGER (U"Pool covariance matrices"));
-	praat_new (thee.move(), U"mahalanobis");
-END
-
-DIRECT (Discriminant_getNumberOfEigenvalues)
-	LOOP {
-		iam (Discriminant);
-		Melder_information (my eigen -> numberOfEigenvalues);
-	}
-END
-
-DIRECT (Discriminant_getDimension)
-	LOOP {
-		iam (Discriminant);
-		Melder_information (my eigen -> dimension);
-	}
-END
-
-FORM (Discriminant_getEigenvalue, U"Discriminant: Get eigenvalue", U"Eigen: Get eigenvalue...")
-	NATURAL (U"Eigenvalue number", U"1")
-	OK
-DO
-	LOOP {
-		iam (Discriminant);
-		long number = GET_INTEGER (U"Eigenvalue number");
-		if (number > my eigen -> numberOfEigenvalues) {
-			Melder_throw (U"Eigenvalue number must be smaller than ", my eigen -> numberOfEigenvalues + 1);
-		}
-		Melder_information (my eigen -> eigenvalues[number]);
-	}
-END
-
-FORM (Discriminant_getSumOfEigenvalues, U"Discriminant:Get sum of eigenvalues", U"Eigen: Get sum of eigenvalues...")
-	INTEGER (U"left Eigenvalue range",  U"0")
-	INTEGER (U"right Eigenvalue range", U"0")
-	OK
-DO
-	LOOP {
-		iam (Discriminant);
-		Melder_information (Eigen_getSumOfEigenvalues (my eigen.get(), GET_INTEGER (U"left Eigenvalue range"), GET_INTEGER (U"right Eigenvalue range")));
-	}
-END
-
-FORM (Discriminant_getEigenvectorElement, U"Discriminant: Get eigenvector element", U"Eigen: Get eigenvector element...")
-	NATURAL (U"Eigenvector number", U"1")
-	NATURAL (U"Element number", U"1")
-	OK
-DO
-	LOOP {
-		iam (Discriminant);
-		Melder_information (Eigen_getEigenvectorElement (my eigen.get(), GET_INTEGER (U"Eigenvector number"), GET_INTEGER (U"Element number")));
-	}
+	praat_new (Discriminant_and_TableOfReal_mahalanobis (me, tr, group, GET_INTEGER (U"Pool covariance matrices")), U"mahalanobis");
 END
 
 FORM (Discriminant_getWilksLambda, U"Discriminant: Get Wilks' lambda", U"Discriminant: Get Wilks' lambda...")
@@ -1423,8 +1308,8 @@ FORM (Discriminant_getCumulativeContributionOfComponents, U"Discriminant: Get cu
 DO
 	LOOP {
 		iam (Discriminant);
-		Melder_information (Eigen_getCumulativeContributionOfComponents (my eigen.get(),
-			GET_INTEGER (U"From component"), GET_INTEGER (U"To component")));
+		Melder_information (Eigen_getCumulativeContributionOfComponents (me,
+		GET_INTEGER (U"From component"), GET_INTEGER (U"To component")));
 	}
 END
 
@@ -1433,23 +1318,23 @@ FORM (Discriminant_getPartialDiscriminationProbability, U"Discriminant: Get part
 	INTEGER (U"Number of dimensions", U"1")
 	OK
 DO
-	long n = GET_INTEGER (U"Number of dimensions");
+	long ndf, n = GET_INTEGER (U"Number of dimensions");
+	double chisq, p;
 	REQUIRE (n >= 0, U"Number of dimensions must be greater than or equal to zero.")
 	LOOP {
 		iam (Discriminant);
-		double p, chisq, df;
-		Discriminant_getPartialDiscriminationProbability (me, n, & p, & chisq, & df);
-		Melder_information (p, U" (=probability, based on chisq = ", chisq, U"and ndf = ", df, U")");
+		Discriminant_getPartialDiscriminationProbability (me, n, &p, &chisq, &ndf);
+		Melder_information (p, U" (=probability, based on chisq = ", chisq, U"and ndf = ", ndf);
 	}
 END
 
 DIRECT (Discriminant_getHomegeneityOfCovariances_box)
 	LOOP {
 		iam (Discriminant);
-		double chisq, p; double ndf;
-		SSCPList_getHomegeneityOfCovariances_box (my groups.get(), &p, &chisq, &ndf);
+		double chisq, p; long ndf;
+		SSCPs_getHomegeneityOfCovariances_box ( (SSCPs) my groups, &p, &chisq, &ndf);
 		Melder_information (p, U" (=probability, based on chisq = ",
-			chisq, U"and ndf = ", ndf, U")");
+		chisq, U"and ndf = ", ndf);
 	}
 END
 
@@ -1457,19 +1342,13 @@ DIRECT (Discriminant_reportEqualityOfCovariances_wald)
 	MelderInfo_open ();
 	LOOP {
 		iam (Discriminant);
-		structCovarianceList list;
-		for (long i = 1; i <= my groups->size; i ++) {
-			SSCP sscp = my groups->at [i];
-			autoCovariance covariance = SSCP_to_Covariance (sscp, 1);   // FIXME numberOfConstraints shouldn't be 1, should it?
-			list. addItem_move (covariance.move());
-		}
 		double chisq, prob, df;
-		Covariances_equality (& list, 2, & prob, & chisq, & df);
+		Covariances_equality ( (Collection) my groups, 2, &prob, &chisq, &df);
 		MelderInfo_writeLine (U"Wald test for equality of covariance matrices:");
 		MelderInfo_writeLine (U"Chi squared: ", chisq);
 		MelderInfo_writeLine (U"Significance: ", prob);
 		MelderInfo_writeLine (U"Degrees of freedom: ", df);
-		MelderInfo_writeLine (U"Number of matrices: ", list.size);
+		MelderInfo_writeLine (U"Number of matrices: ", my groups -> size);
 	}
 	MelderInfo_close ();
 END
@@ -1477,7 +1356,7 @@ END
 FORM (Discriminant_getConcentrationEllipseArea, U"Discriminant: Get concentration ellipse area", U"Discriminant: Get concentration ellipse area...")
 	SENTENCE (U"Group label", U"")
 	POSITIVE (U"Number of sigmas", U"1.0")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	OK
@@ -1486,20 +1365,16 @@ DO
 		iam (Discriminant);
 		long group = Discriminant_groupLabelToIndex (me, GET_STRING (U"Group label"));
 		REQUIRE (group > 0, U"Group label does not exist.")
-		Melder_information (Discriminant_getConcentrationEllipseArea (me,
-			group,
-			GET_REAL (U"Number of sigmas"),
-			false,   // confidence
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension")));
+		Melder_information (Discriminant_getConcentrationEllipseArea (me, group,
+		GET_REAL (U"Number of sigmas"), 0, GET_INTEGER (U"Discriminant plane"),
+		GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension")));
 	}
 END
 
 FORM (Discriminant_getConfidenceEllipseArea, U"Discriminant: Get confidence ellipse area", U"Discriminant: Get confidence ellipse area...")
 	SENTENCE (U"Group label", U"")
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	OK
@@ -1508,13 +1383,9 @@ DO
 		iam (Discriminant);
 		long group = Discriminant_groupLabelToIndex (me, GET_STRING (U"Group label"));
 		REQUIRE (group > 0, U"Group label does not exist.")
-		Melder_information (Discriminant_getConcentrationEllipseArea (me,
-			group,
-			GET_REAL (U"Confidence level"),
-			true,    //confidence
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension")));
+		Melder_information (Discriminant_getConcentrationEllipseArea (me, group,
+		GET_REAL (U"Confidence level"), 1, GET_INTEGER (U"Discriminant plane"),
+		GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension")));
 	}
 END
 
@@ -1537,80 +1408,20 @@ DIRECT (Discriminant_getLnDeterminant_total)
 	}
 END
 
-FORM (Discriminant_invertEigenvector, U"Discriminant: Invert eigenvector", nullptr)
+FORM (Discriminant_invertEigenvector, U"Discriminant: Invert eigenvector", 0)
 	NATURAL (U"Index of eigenvector", U"1")
 	OK
 DO
 	LOOP {
 		iam (Discriminant);
-		Eigen_invertEigenvector (my eigen.get(), GET_INTEGER (U"Index of eigenvector"));
+		Eigen_invertEigenvector (me, GET_INTEGER (U"Index of eigenvector"));
 		praat_dataChanged (me);
 	}
 END
 
-FORM (Discriminant_drawEigenvalues, U"Discriminant: Draw eigenvalues", U"Eigen: Draw eigenvalues...")
-	INTEGER (U"left Eigenvalue range", U"0")
-	INTEGER (U"right Eigenvalue range", U"0")
-	REAL (U"left Amplitude range", U"0.0")
-	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Fraction of eigenvalues summed", false)
-	BOOLEAN (U"Cumulative", false)
-	POSITIVE (U"Mark size (mm)", U"1.0")
-	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Garnish", true)
-	OK
-DO
-	autoPraatPicture picture;
-	LOOP {
-		iam (Discriminant);
-		Eigen_drawEigenvalues (my eigen.get(), GRAPHICS,
-			GET_INTEGER (U"left Eigenvalue range"),
-			GET_INTEGER (U"right Eigenvalue range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Fraction of eigenvalues summed"),
-			GET_INTEGER (U"Cumulative"),
-			GET_REAL (U"Mark size"),
-			GET_STRING (U"Mark string"),
-			GET_INTEGER (U"Garnish"));
-	}
-END
-
-FORM (Discriminant_drawEigenvector, U"Discriminant: Draw eigenvector", U"Eigen: Draw eigenvector...")
-	INTEGER (U"Eigenvector number", U"1")
-	BOOLEAN (U"Component loadings", false)
-	INTEGER (U"left Element range", U"0")
-	INTEGER (U"right Element range", U"0")
-	REAL (U"left Amplitude range", U"-1.0")
-	REAL (U"right Amplitude range", U"1.0")
-	POSITIVE (U"Mark size (mm)", U"1.0")
-	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Connect points", true)
-	BOOLEAN (U"Garnish", true)
-	OK
-DO
-	autoPraatPicture picture;
-	LOOP {
-		iam (Discriminant);
-		Eigen_drawEigenvector (my eigen.get(), GRAPHICS,
-			GET_INTEGER (U"Eigenvector number"),
-			GET_INTEGER (U"left Element range"),
-			GET_INTEGER (U"right Element range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Component loadings"),
-			GET_REAL (U"Mark size"),
-			GET_STRING (U"Mark string"),
-			GET_INTEGER (U"Connect points"),
-			nullptr,   // rowLabels
-			GET_INTEGER (U"Garnish"));
-	}
-END
-
-
 FORM (Discriminant_drawSigmaEllipses, U"Discriminant: Draw sigma ellipses", U"Discriminant: Draw sigma ellipses...")
 	POSITIVE (U"Number of sigmas", U"1.0")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -1618,32 +1429,24 @@ FORM (Discriminant_drawSigmaEllipses, U"Discriminant: Draw sigma ellipses", U"Di
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Discriminant);
-		Discriminant_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Number of sigmas"),
-			false,   // confidence
-			nullptr,   // label
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		Discriminant_drawConcentrationEllipses (me, GRAPHICS, GET_REAL (U"Number of sigmas"), 0, 0,
+		GET_INTEGER (U"Discriminant plane"), GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
 FORM (Discriminant_drawOneSigmaEllipse, U"Discriminant: Draw one sigma ellipse", U"Discriminant: Draw one sigma ellipse...")
 	SENTENCE (U"Label", U"")
 	POSITIVE (U"Number of sigmas", U"1.0")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -1651,31 +1454,24 @@ FORM (Discriminant_drawOneSigmaEllipse, U"Discriminant: Draw one sigma ellipse",
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Discriminant);
-		Discriminant_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Number of sigmas"),
-			false,   // confidence
-			GET_STRING (U"Label"),
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		Discriminant_drawConcentrationEllipses (me, GRAPHICS, GET_REAL (U"Number of sigmas"), 0,
+		GET_STRING (U"Label"), GET_INTEGER (U"Discriminant plane"),
+		GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (Discriminant_drawConfidenceEllipses, U"Discriminant: Draw confidence ellipses", nullptr)
+FORM (Discriminant_drawConfidenceEllipses, U"Discriminant: Draw confidence ellipses", 0)
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -1683,33 +1479,26 @@ FORM (Discriminant_drawConfidenceEllipses, U"Discriminant: Draw confidence ellip
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Discriminant);
 		Discriminant_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Confidence level"),
-			true,   // confidence
-			nullptr,   // label
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		GET_REAL (U"Confidence level"), 1, NULL, GET_INTEGER (U"Discriminant plane"),
+		GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
 
-FORM (Discriminant_drawOneConfidenceEllipse, U"Discriminant: Draw one confidence ellipse", nullptr)
+FORM (Discriminant_drawOneConfidenceEllipse, U"Discriminant: Draw one confidence ellipse", 0)
 	SENTENCE (U"Label", U"")
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
-	BOOLEAN (U"Discriminant plane", true)
+	BOOLEAN (U"Discriminant plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -1717,65 +1506,53 @@ FORM (Discriminant_drawOneConfidenceEllipse, U"Discriminant: Draw one confidence
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Discriminant);
 		Discriminant_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Confidence level"),
-			true,   // confidence
-			GET_STRING (U"Label"),
-			GET_INTEGER (U"Discriminant plane"),
-			GET_INTEGER (U"X-dimension"),
-			GET_INTEGER (U"Y-dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		GET_REAL (U"Confidence level"), 1, GET_STRING (U"Label"), GET_INTEGER (U"Discriminant plane"),
+		GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
 DIRECT (Discriminant_extractBetweenGroupsSSCP)
 	LOOP {
 		iam (Discriminant);
-		autoSSCP thee = Discriminant_extractBetweenGroupsSSCP (me);
-		praat_new (thee.move());
+		praat_new (Discriminant_extractBetweenGroupsSSCP (me), 0);
 	}
 END
 
 DIRECT (Discriminant_extractGroupCentroids)
 	LOOP {
 		iam (Discriminant);
-		autoTableOfReal thee = Discriminant_extractGroupCentroids (me);
-		praat_new (thee.move(), U"centroids");
+		praat_new (Discriminant_extractGroupCentroids (me), U"centroids");
 	}
 END
 
 DIRECT (Discriminant_extractGroupStandardDeviations)
 	LOOP {
 		iam (Discriminant);
-		autoTableOfReal thee = Discriminant_extractGroupStandardDeviations (me);
-		praat_new (thee.move(), U"group_stddevs");
+		praat_new (Discriminant_extractGroupStandardDeviations (me), U"group_stddevs");
 	}
 END
 
 DIRECT (Discriminant_extractGroupLabels)
 	LOOP {
 		iam (Discriminant);
-		autoStrings thee = Discriminant_extractGroupLabels (me);
-		praat_new (thee.move(), U"group_labels");
+		praat_new (Discriminant_extractGroupLabels (me), U"group_labels");
 	}
 END
 
 DIRECT (Discriminant_extractPooledWithinGroupsSSCP)
 	LOOP {
 		iam (Discriminant);
-		autoSSCP thee = Discriminant_extractPooledWithinGroupsSSCP (me);
-		praat_new (thee.move(), U"pooled_within");
+		praat_new (Discriminant_extractPooledWithinGroupsSSCP (me), U"pooled_within");
 	}
 END
 
@@ -1786,8 +1563,7 @@ DO
 	long index = GET_INTEGER (U"Group index");
 	LOOP {
 		iam (Discriminant);
-		autoSSCP thee = Discriminant_extractWithinGroupSSCP (me, index);
-		praat_new (thee.move(), my name, U"_g", index);
+		praat_new (Discriminant_extractWithinGroupSSCP (me, index), my name, U"_g", index);
 	}
 END
 
@@ -1801,7 +1577,7 @@ END
 DIRECT (Discriminant_getDimensionOfFunctions)
 	LOOP {
 		iam (Discriminant);
-		Melder_information (Eigen_getDimensionOfComponents (my eigen.get()));
+		Melder_information (Eigen_getDimensionOfComponents (me));
 	}
 END
 
@@ -1825,12 +1601,12 @@ END
 
 /********************** DTW *******************************************/
 
-FORM (DTW_and_Polygon_findPathInside, U"DTW & Polygon: Find path inside", nullptr)
+FORM (DTW_and_Polygon_findPathInside, U"DTW & Polygon: Find path inside", 0)
     RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+    RADIOBUTTON (U"no restriction")
+    RADIOBUTTON (U"1/3 < slope < 3")
+    RADIOBUTTON (U"1/2 < slope < 2")
+    RADIOBUTTON (U"2/3 < slope < 3/2")
     OK
 DO
     int localSlope = GET_INTEGER (U"Slope constraint");
@@ -1840,19 +1616,19 @@ DO
 
 END
 
-FORM (DTW_and_Polygon_to_Matrix_cummulativeDistances, U"DTW & Polygon: To Matrix (cumm. distances)", nullptr)
+FORM (DTW_and_Polygon_to_Matrix_cummulativeDistances, U"DTW & Polygon: To Matrix (cumm. distances)", 0)
     RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+    RADIOBUTTON (U"no restriction")
+    RADIOBUTTON (U"1/3 < slope < 3")
+    RADIOBUTTON (U"1/2 < slope < 2")
+    RADIOBUTTON (U"2/3 < slope < 3/2")
     OK
 DO
     int localSlope = GET_INTEGER (U"Slope constraint");
     DTW me = FIRST (DTW);
     Polygon thee = FIRST (Polygon);
     autoMatrix him = DTW_and_Polygon_to_Matrix_cummulativeDistances (me, thee, localSlope);
-    praat_new (him.move(), my name, U"_", localSlope);
+    praat_new (him.transfer(), my name, U"_", localSlope);
 END
 
 FORM (DTW_and_Sounds_draw, U"DTW & Sounds: Draw", U"DTW & Sounds: Draw...")
@@ -1860,13 +1636,12 @@ FORM (DTW_and_Sounds_draw, U"DTW & Sounds: Draw", U"DTW & Sounds: Draw...")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
-	Sound s1 = nullptr, s2 = nullptr;
-	DTW dtw = nullptr;
+	Sound s1 = 0, s2 = 0; DTW dtw = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classSound) {
 			(s1 ? s2 : s1) = (Sound) me;
 		} else if (CLASS == classDTW) {
@@ -1886,10 +1661,10 @@ FORM (DTW_and_Sounds_drawWarpX, U"DTW & Sounds: Draw warp (x)", U"DTW & Sounds:
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	REAL (U"Time (s)", U"0.1")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = 0, s2 = 0;
 	LOOP {
 		iam (Sound);
 		(s1 ? s2 : s1) = me;
@@ -1903,19 +1678,19 @@ DO
 		GET_REAL (U"Time"), GET_INTEGER (U"Garnish"));
 END
 
-void DTW_constraints_addCommonFields (UiForm dia) {
-	UiField radio;
+void DTW_constraints_addCommonFields (void *dia) {
+	Any radio;
 	LABEL (U"", U"Boundary conditions")
-	BOOLEAN (U"Match begin positions", false)
-	BOOLEAN (U"Match end positions", false)
+	BOOLEAN (U"Match begin positions", 0)
+	BOOLEAN (U"Match end positions", 0)
 	RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+	RADIOBUTTON (U"no restriction")
+	RADIOBUTTON (U"1/3 < slope < 3")
+	RADIOBUTTON (U"1/2 < slope < 2")
+	RADIOBUTTON (U"2/3 < slope < 3/2")
 }
 
-void DTW_constraints_getCommonFields (UiForm dia, int *begin, int *end, int *slope) {
+void DTW_constraints_getCommonFields (void *dia, int *begin, int *end, int *slope) {
 	*begin = GET_INTEGER (U"Match begin positions");
 	*end = GET_INTEGER (U"Match end positions");
 	*slope = GET_INTEGER (U"Slope constraint");
@@ -1923,67 +1698,54 @@ void DTW_constraints_getCommonFields (UiForm dia, int *begin, int *end, int *slo
 
 DIRECT (DTW_help) Melder_help (U"DTW"); END
 
-FORM (DTW_drawPath, U"DTW: Draw path", nullptr)
+FORM (DTW_drawPath, U"DTW: Draw path", 0)
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", false);
+	BOOLEAN (U"Garnish", 0);
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (DTW);
-		DTW_drawPath (me, GRAPHICS,
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Garnish"));
+		DTW_drawPath (me, GRAPHICS, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (DTW_drawDistancesAlongPath, U"DTW: Draw distances along path", nullptr)
+FORM (DTW_drawDistancesAlongPath, U"DTW: Draw distances along path", 0)
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", false);
+	BOOLEAN (U"Garnish", 0);
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (DTW);
-		DTW_drawDistancesAlongPath (me,
-			GRAPHICS, GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Garnish"));
+		DTW_drawDistancesAlongPath (me, GRAPHICS, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (DTW_paintDistances, U"DTW: Paint distances", nullptr)
+FORM (DTW_paintDistances, U"DTW: Paint distances", 0)
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	REAL (U"Minimum", U"0.0")
 	REAL (U"Maximum", U"0.0")
-	BOOLEAN (U"Garnish", false);
+	BOOLEAN (U"Garnish", 0);
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (DTW);
-		DTW_paintDistances (me, GRAPHICS,
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_REAL (U"Minimum"),
-			GET_REAL (U"Maximum"),
-			GET_INTEGER (U"Garnish"));
+		DTW_paintDistances (me, GRAPHICS, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_REAL (U"Minimum"), GET_REAL (U"Maximum"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -1993,42 +1755,15 @@ FORM (DTW_drawWarpX, U"DTW: Draw warp (x)", U"DTW: Draw warp (x)...")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	REAL (U"Time (s)", U"0.1")
-	BOOLEAN (U"Garnish", false);
+	BOOLEAN (U"Garnish", 0);
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (DTW);
-		DTW_drawWarpX (me, GRAPHICS,
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_REAL (U"Time"),
-			GET_INTEGER (U"Garnish"));
-	}
-END
-
-
-FORM (DTW_drawWarpY, U"DTW: Draw warp (y)", U"DTW: Draw warp (y)...")
-	REAL (U"left Horizontal range", U"0.0")
-	REAL (U"right Horizontal range", U"0.0")
-	REAL (U"left Vertical range", U"0.0")
-	REAL (U"right Vertical range", U"0.0")
-	REAL (U"Time (s)", U"0.1")
-	BOOLEAN (U"Garnish", false);
-	OK
-DO
-	autoPraatPicture picture;
-	LOOP {
-		iam (DTW);
-		DTW_drawWarpY (me, GRAPHICS,
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_REAL (U"Time"),
-			GET_INTEGER (U"Garnish"));
+		DTW_drawWarpX (me, GRAPHICS, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_REAL (U"Time"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -2161,7 +1896,7 @@ FORM (DTW_getPathY, U"DTW: Get time along path", U"DTW: Get time along path...")
 DO
 	LOOP {
 		iam (DTW);
-		Melder_information (DTW_getYTimeFromXTime (me, GET_REAL (U"Time")));
+		Melder_information (DTW_getPathY (me, GET_REAL (U"Time")));
 	}
 END
 
@@ -2172,7 +1907,7 @@ DO
 	double time = GET_REAL (U"Time at x");
 	LOOP {
 		iam (DTW);
-		Melder_information (DTW_getYTimeFromXTime (me, time), U" s (= y time at x time ", time, U")");
+		Melder_information (DTW_getYTimeFromXTime (me, time), U" s (= y time at z time ", time, U")");
 	}
 END
 
@@ -2189,18 +1924,18 @@ END
 
 FORM (DTW_getMaximumConsecutiveSteps, U"DTW: Get maximum consecutive steps", U"DTW: Get maximum consecutive steps...")
 	OPTIONMENU (U"Direction", 1)
-		OPTION (U"X")
-		OPTION (U"Y")
-		OPTION (U"Diagonaal")
+	OPTION (U"X")
+	OPTION (U"Y")
+	OPTION (U"Diagonaal")
 	OK
 DO
-	int direction [] = { DTW_START, DTW_X, DTW_Y, DTW_XANDY };
-	const char32 *string [] = { U"", U"x", U"y", U"diagonal" };
+	int direction[] = {DTW_START, DTW_X, DTW_Y, DTW_XANDY};
+	const char32 *string[] = {U"", U"x", U"y", U"diagonal"};
 	int d = GET_INTEGER (U"Direction");
 	LOOP {
 		iam (DTW);
-		Melder_information (DTW_getMaximumConsecutiveSteps (me, direction [d]),
-			U" (= maximum number of consecutive steps in ", string [d], U" direction)");
+		Melder_information (DTW_getMaximumConsecutiveSteps (me, direction[d]),
+		U" (= maximum number of consecutive steps in ", string[d], U" direction)");
 	}
 END
 
@@ -2211,7 +1946,7 @@ DIRECT (DTW_getWeightedDistance)
 	}
 END
 
-FORM (DTW_getDistanceValue, U"DTW: Get distance value", nullptr)
+FORM (DTW_getDistanceValue, U"DTW: Get distance value", 0)
 	REAL (U"Time at x (s)", U"0.1")
 	REAL (U"Time at y (s)", U"0.1")
 	OK
@@ -2265,7 +2000,7 @@ DO
 			double minimum, maximum;
 			Matrix_getWindowExtrema (me, 0, 0, 0, 0, & minimum, & maximum);
 			if (minimum < 0) {
-				DTW_and_Matrix_replace (me, cp.get()); // restore original
+				DTW_and_Matrix_replace (me, cp.peek()); // restore original
 				Melder_throw (U"Execution of the formula has made some distance(s) negative which is not allowed.");
 			}
 			praat_dataChanged (me);
@@ -2276,7 +2011,7 @@ DO
 	}
 END
 
-FORM (DTW_setDistanceValue, U"DTW: Set distance value", nullptr)
+FORM (DTW_setDistanceValue, U"DTW: Set distance value", 0)
 	REAL (U"Time at x (s)", U"0.1")
 	REAL (U"Time at y (s)", U"0.1")
 	REAL (U"New value", U"0.0")
@@ -2303,42 +2038,42 @@ DO
 	}
 END
 
-FORM (DTW_findPath, U"DTW: Find path", nullptr)
+FORM (DTW_findPath, U"DTW: Find path", 0)
 	DTW_constraints_addCommonFields (dia);
 	OK
 DO
 	int begin, end, slope;
-	DTW_constraints_getCommonFields (dia, & begin, & end, & slope);
+	DTW_constraints_getCommonFields (dia, &begin, &end, &slope);
 	LOOP {
 		iam (DTW);
 		DTW_findPath (me, begin, end, slope);
 	}
 END
 
-FORM (DTW_findPath_bandAndSlope, U"DTW: find path (band & slope)", nullptr)
+FORM (DTW_findPath_bandAndSlope, U"DTW: find path (band & slope)", 0)
     REAL (U"Sakoe-Chiba band (s)", U"0.05")
     RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+    RADIOBUTTON (U"no restriction")
+    RADIOBUTTON (U"1/3 < slope < 3")
+    RADIOBUTTON (U"1/2 < slope < 2")
+    RADIOBUTTON (U"2/3 < slope < 3/2")
     OK
 DO
     double band = GET_REAL (U"Sakoe-Chiba band");
     int slope = GET_INTEGER (U"Slope constraint");
     LOOP {
         iam (DTW);
-        DTW_findPath_bandAndSlope (me, band, slope, nullptr);
+        DTW_findPath_bandAndSlope (me, band, slope, 0);
     }
 END
 
-FORM (DTW_to_Matrix_cummulativeDistances, U"DTW: To Matrix", nullptr)
+FORM (DTW_to_Matrix_cummulativeDistances, U"DTW: To Matrix", 0)
     REAL (U"Sakoe-Chiba band (s)", U"0.05")
     RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+    RADIOBUTTON (U"no restriction")
+    RADIOBUTTON (U"1/3 < slope < 3")
+    RADIOBUTTON (U"1/2 < slope < 2")
+    RADIOBUTTON (U"2/3 < slope < 3/2")
     OK
 DO
     double band = GET_REAL (U"Sakoe-Chiba band");
@@ -2346,17 +2081,17 @@ DO
     LOOP {
         iam (DTW);
         autoMatrix thee = DTW_to_Matrix_cummulativeDistances (me, band, slope);
-        praat_new (thee.move(), my name, U"_cd");
+        praat_new (thee.transfer(), my name, U"_cd");
     }
 END
 
 FORM (DTW_to_Polygon, U"DTW: To Polygon...", 0)
     REAL (U"Sakoe-Chiba band (s)", U"0.1")
     RADIO (U"Slope constraint", 1)
-		RADIOBUTTON (U"no restriction")
-		RADIOBUTTON (U"1/3 < slope < 3")
-		RADIOBUTTON (U"1/2 < slope < 2")
-		RADIOBUTTON (U"2/3 < slope < 3/2")
+    RADIOBUTTON (U"no restriction")
+    RADIOBUTTON (U"1/3 < slope < 3")
+    RADIOBUTTON (U"1/2 < slope < 2")
+    RADIOBUTTON (U"2/3 < slope < 3/2")
     OK
 DO
     double band = GET_REAL (U"Sakoe-Chiba band");
@@ -2364,23 +2099,21 @@ DO
     LOOP {
         iam (DTW);
         autoPolygon thee = DTW_to_Polygon (me, band, slope);
-        praat_new (thee.move(), my name);
+        praat_new (thee.transfer(), my name);
     }
 END
 
 DIRECT (DTW_to_Matrix_distances)
 	LOOP {
 		iam (DTW);
-		autoMatrix thee = DTW_to_Matrix_distances (me);
-		praat_new (thee.move(), my name);
+		praat_new (DTW_to_Matrix_distances (me), my name);
 	}
 END
 
 DIRECT (DTW_swapAxes)
 	LOOP {
 		iam (DTW);
-		autoDTW thee = DTW_swapAxes (me);
-		praat_new (thee.move(), my name, U"_axesSwapped");
+		praat_new (DTW_swapAxes (me), my name, U"_axesSwapped");
 	}
 END
 
@@ -2394,15 +2127,13 @@ END
 DIRECT (DTW_and_TextGrid_to_TextGrid)
 	DTW me = FIRST (DTW);
 	TextGrid tg = FIRST (TextGrid);
-	autoTextGrid thee = DTW_and_TextGrid_to_TextGrid (me, tg, 0);
-	praat_new (thee.move(), tg -> name, U"_", my name);
+	praat_new (DTW_and_TextGrid_to_TextGrid (me, tg, 0), 0);
 END
 
 DIRECT (DTW_and_IntervalTier_to_Table)
 	DTW me = FIRST (DTW);
 	IntervalTier ti = FIRST (IntervalTier);
-	autoTable thee = DTW_and_IntervalTier_to_Table (me, ti, 1.0/44100);
-	praat_new (thee.move(), my name);
+	praat_new (DTW_and_IntervalTier_to_Table (me, ti, 1.0/44100), my name);
 END
 
 /******************** EditDistanceTable & EditCostsTable ********************************************/
@@ -2414,8 +2145,7 @@ END
 DIRECT (EditDistanceTable_to_TableOfReal_directions)
 	LOOP {
 		iam (EditDistanceTable);
-		autoTableOfReal thee = EditDistanceTable_to_TableOfReal_directions (me);
-		praat_new (thee.move(), my name);
+		praat_new (EditDistanceTable_to_TableOfReal_directions (me), my name);
 	}
 END
 
@@ -2425,7 +2155,7 @@ DIRECT (EditDistanceTable_setEditCosts)
 	EditDistanceTable_setEditCosts (me, thee);
 END
 
-FORM (EditDistanceTable_setDefaultCosts, U"", nullptr)
+FORM (EditDistanceTable_setDefaultCosts, U"", 0)
 	REAL (U"Insertion costs", U"1.0")
 	REAL (U"Deletion costs", U"1.0")
 	REAL (U"Substitution costs", U"2.0")
@@ -2449,7 +2179,7 @@ DO
 	}
 END
 
-FORM (EditDistanceTable_draw, U"EditDistanceTable_draw", nullptr)
+FORM (EditDistanceTable_draw, U"EditDistanceTable_draw", 0)
 	RADIO (U"Format", 3)
 		RADIOBUTTON (U"decimal")
 		RADIOBUTTON (U"exponential")
@@ -2462,10 +2192,7 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (EditDistanceTable);
-		EditDistanceTable_draw (me, GRAPHICS,
-			GET_INTEGER (U"Format"),
-			GET_INTEGER (U"Precision"),
-			GET_REAL (U"Rotate source labels by"));
+		EditDistanceTable_draw (me, GRAPHICS, GET_INTEGER (U"Format"), GET_INTEGER (U"Precision"), GET_REAL (U"Rotate source labels by"));
 	}
 END
 
@@ -2481,131 +2208,116 @@ DIRECT (EditCostsTable_help)
 	Melder_help (U"EditCostsTable");
 END
 
-FORM (EditCostsTable_getTargetIndex, U"EditCostsTable: Get target index", nullptr)
+FORM (EditCostsTable_getTargetIndex, U"EditCostsTable: Get target index", 0)
 	SENTENCE (U"Target", U"")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getTargetIndex (me,
-			GET_STRING (U"Target")), nullptr);
+		Melder_informationReal (EditCostsTable_getTargetIndex (me, GET_STRING (U"Target")), NULL);
 	}
 END
 
-FORM (EditCostsTable_getSourceIndex, U"EditCostsTable: Get source index", nullptr)
+FORM (EditCostsTable_getSourceIndex, U"EditCostsTable: Get source index", 0)
 	SENTENCE (U"Source", U"")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getSourceIndex (me,
-			GET_STRING (U"Source")), nullptr);
+		Melder_informationReal (EditCostsTable_getSourceIndex (me, GET_STRING (U"Source")), NULL);
 	}
 END
 
-FORM (EditCostsTable_getInsertionCost, U"EditCostsTable: Get insertion cost", nullptr)
+FORM (EditCostsTable_getInsertionCost, U"EditCostsTable: Get insertion cost", 0)
 	SENTENCE (U"Target", U"")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getInsertionCost (me,
-			GET_STRING (U"Target")), nullptr);
+		Melder_informationReal (EditCostsTable_getInsertionCost (me, GET_STRING (U"Target")), NULL);
 	}
 END
 
-FORM (EditCostsTable_getDeletionCost, U"EditCostsTable: Get deletion cost", nullptr)
+FORM (EditCostsTable_getDeletionCost, U"EditCostsTable: Get deletion cost", 0)
 	SENTENCE (U"Source", U"")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getDeletionCost (me,
-			GET_STRING (U"Source")), nullptr);
+		Melder_informationReal (EditCostsTable_getDeletionCost (me, GET_STRING (U"Source")), NULL);
 	}
 END
 
-FORM (EditCostsTable_getSubstitutionCost, U"EditCostsTable: Get substitution cost", nullptr)
+FORM (EditCostsTable_getSubstitutionCost, U"EditCostsTable: Get substitution cost", 0)
 	SENTENCE (U"Target", U"")
 	SENTENCE (U"Source", U"")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getSubstitutionCost (me,
-			GET_STRING (U"Target"),
-			GET_STRING (U"Source")), nullptr);
+		Melder_informationReal (EditCostsTable_getSubstitutionCost (me, GET_STRING (U"Target"), GET_STRING (U"Source")), NULL);
 	}
 END
 
-FORM (EditCostsTable_getOthersCost, U"EditCostsTable: Get cost (others)", nullptr)
+FORM (EditCostsTable_getOthersCost, U"EditCostsTable: Get cost (others)", 0)
 	RADIO (U"Others cost type", 1)
-		RADIOBUTTON (U"Insertion")
-		RADIOBUTTON (U"Deletion")
-		RADIOBUTTON (U"Equality")
-		RADIOBUTTON (U"Inequality")
+	RADIOBUTTON (U"Insertion")
+	RADIOBUTTON (U"Deletion")
+	RADIOBUTTON (U"Equality")
+	RADIOBUTTON (U"Inequality")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		Melder_informationReal (EditCostsTable_getOthersCost (me,
-			GET_INTEGER (U"Others cost type")), nullptr);
+		Melder_informationReal (EditCostsTable_getOthersCost (me, GET_INTEGER (U"Others cost type")), NULL);
 	}
 END
 
-FORM (EditCostsTable_setTargetSymbol_index, U"EditCostsTable: Set target symbol (index)", nullptr)
+FORM (EditCostsTable_setTargetSymbol_index, U"EditCostsTable: Set target symbol (index)", 0)
 	NATURAL (U"Index", U"1")
 	SENTENCE (U"Target", U"a")
 	OK
 DO
 	LOOP {
 		iam (TableOfReal);
-		TableOfReal_setRowLabel (me,
-			GET_INTEGER (U"Index"),
-			GET_STRING (U"Target"));
+		TableOfReal_setRowLabel (me, GET_INTEGER (U"Index"), GET_STRING (U"Target"));
 	}
 END
 
-FORM (EditCostsTable_setSourceSymbol_index, U"EditCostsTable: Set source symbol (index)", nullptr)
+FORM (EditCostsTable_setSourceSymbol_index, U"EditCostsTable: Set source symbol (index)", 0)
 	NATURAL (U"Index", U"1")
 	SENTENCE (U"Source", U"a")
 	OK
 DO
 	LOOP {
 		iam (TableOfReal);
-		TableOfReal_setColumnLabel (me,
-			GET_INTEGER (U"Index"),
-			GET_STRING (U"Source"));
+		TableOfReal_setColumnLabel (me, GET_INTEGER (U"Index"), GET_STRING (U"Source"));
 	}
 END
 
-FORM (EditCostsTable_setInsertionCosts, U"EditCostsTable: Set insertion costs", nullptr)
+FORM (EditCostsTable_setInsertionCosts, U"EditCostsTable: Set insertion costs", 0)
 	SENTENCE (U"Targets", U"")
 	REAL (U"Cost", U"2.0")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		EditCostsTable_setInsertionCosts (me,
-			GET_STRING (U"Targets"),
-			GET_REAL (U"Cost"));
+		EditCostsTable_setInsertionCosts (me, GET_STRING (U"Targets"), GET_REAL (U"Cost"));
 	}
 END
 
-FORM (EditCostsTable_setDeletionCosts, U"EditCostsTable: Set deletion costs", nullptr)
+FORM (EditCostsTable_setDeletionCosts, U"EditCostsTable: Set deletion costs", 0)
 	SENTENCE (U"Sources", U"")
 	REAL (U"Cost", U"2.0")
 	OK
 DO
 	LOOP {
 		iam (EditCostsTable);
-		EditCostsTable_setDeletionCosts (me,
-			GET_STRING (U"Sources"),
-			GET_REAL (U"Cost"));
+		EditCostsTable_setDeletionCosts (me, GET_STRING (U"Sources"), GET_REAL (U"Cost"));
 	}
 END
 
-FORM (EditCostsTable_setSubstitutionCosts, U"EditCostsTable: Set substitution costs", nullptr)
+FORM (EditCostsTable_setSubstitutionCosts, U"EditCostsTable: Set substitution costs", 0)
 	SENTENCE (U"Targets", U"a i u")
 	SENTENCE (U"Sources", U"a i u")
 	REAL (U"Cost", U"2.0")
@@ -2613,14 +2325,11 @@ FORM (EditCostsTable_setSubstitutionCosts, U"EditCostsTable: Set substitution co
 DO
 	LOOP {
 		iam (EditCostsTable);
-		EditCostsTable_setSubstitutionCosts (me,
-			GET_STRING (U"Targets"),
-			GET_STRING (U"Sources"),
-			GET_REAL (U"Cost"));
+		EditCostsTable_setSubstitutionCosts (me, GET_STRING (U"Targets"), GET_STRING (U"Sources"), GET_REAL (U"Cost"));
 	}
 END
 
-FORM (EditCostsTable_setOthersCosts, U"EditCostsTable: Set costs (others)", nullptr)
+FORM (EditCostsTable_setOthersCosts, U"EditCostsTable: Set costs (others)", 0)
 	LABEL (U"", U"Others costs")
 	REAL (U"Insertion", U"1.0")
 	REAL (U"Deletion", U"1.0")
@@ -2631,19 +2340,14 @@ FORM (EditCostsTable_setOthersCosts, U"EditCostsTable: Set costs (others)", null
 DO
 	LOOP {
 		iam (EditCostsTable);
-		EditCostsTable_setOthersCosts (me,
-			GET_REAL (U"Insertion"),
-			GET_REAL (U"Deletion"),
-			GET_REAL (U"Equality"),
-			GET_REAL (U"Inequality"));
+		EditCostsTable_setOthersCosts (me, GET_REAL (U"Insertion"), GET_REAL (U"Deletion"), GET_REAL (U"Equality"), GET_REAL (U"Inequality"));
 	}
 END
 
 DIRECT (EditCostsTable_to_TableOfReal)
 	LOOP {
 		iam (EditCostsTable);
-		autoTableOfReal result = EditCostsTable_to_TableOfReal (me);
-		praat_new (result.move(), my name);
+		praat_new (EditCostsTable_to_TableOfReal (me), my name);
 	}
 END
 
@@ -2657,8 +2361,7 @@ DO
 	numberOfTargetSymbols = numberOfTargetSymbols < 0 ? 0 : numberOfTargetSymbols;
 	long numberOfSourceSymbols = GET_INTEGER (U"Number of source symbols");
 	numberOfSourceSymbols = numberOfSourceSymbols < 0 ? 0 : numberOfSourceSymbols;
-	autoEditCostsTable result = EditCostsTable_create (numberOfTargetSymbols, numberOfSourceSymbols);
-	praat_new (result.move(), GET_STRING (U"Name"));
+	praat_new (EditCostsTable_create (numberOfTargetSymbols, numberOfSourceSymbols), GET_STRING (U"Name"));
 END
 
 /******************** Eigen ********************************************/
@@ -2674,57 +2377,45 @@ FORM (Eigen_drawEigenvalues, U"Eigen: Draw eigenvalues", U"Eigen: Draw eigenvalu
 	INTEGER (U"right Eigenvalue range", U"0")
 	REAL (U"left Amplitude range", U"0.0")
 	REAL (U"right Amplitude range", U"0.0")
-	BOOLEAN (U"Fraction of eigenvalues summed", false)
-	BOOLEAN (U"Cumulative", false)
+	BOOLEAN (U"Fraction of eigenvalues summed", 0)
+	BOOLEAN (U"Cumulative", 0)
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Eigen);
-		Eigen_drawEigenvalues (me, GRAPHICS,
-			GET_INTEGER (U"left Eigenvalue range"),
-			GET_INTEGER (U"right Eigenvalue range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Fraction of eigenvalues summed"),
-			GET_INTEGER (U"Cumulative"),
-			GET_REAL (U"Mark size"),
-			GET_STRING (U"Mark string"),
-			GET_INTEGER (U"Garnish"));
+		Eigen_drawEigenvalues (me, GRAPHICS, GET_INTEGER (U"left Eigenvalue range"),
+		GET_INTEGER (U"right Eigenvalue range"), GET_REAL (U"left Amplitude range"),
+		GET_REAL (U"right Amplitude range"), GET_INTEGER (U"Fraction of eigenvalues summed"),
+		GET_INTEGER (U"Cumulative"), GET_REAL (U"Mark size"), GET_STRING (U"Mark string"),
+		GET_INTEGER (U"Garnish"));
 	}
 END
 
 FORM (Eigen_drawEigenvector, U"Eigen: Draw eigenvector", U"Eigen: Draw eigenvector...")
 	INTEGER (U"Eigenvector number", U"1")
-	BOOLEAN (U"Component loadings", false)
+	BOOLEAN (U"Component loadings", 0)
 	INTEGER (U"left Element range", U"0")
 	INTEGER (U"right Element range", U"0")
 	REAL (U"left Amplitude range", U"-1.0")
 	REAL (U"right Amplitude range", U"1.0")
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Connect points", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Connect points", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Eigen);
-		Eigen_drawEigenvector (me, GRAPHICS,
-			GET_INTEGER (U"Eigenvector number"),
-			GET_INTEGER (U"left Element range"),
-			GET_INTEGER (U"right Element range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Component loadings"),
-			GET_REAL (U"Mark size"),
-			GET_STRING (U"Mark string"),
-			GET_INTEGER (U"Connect points"),
-			nullptr,   // rowLabels
-			GET_INTEGER (U"Garnish"));
+		Eigen_drawEigenvector (me, GRAPHICS, GET_INTEGER (U"Eigenvector number"),
+		GET_INTEGER (U"left Element range"), GET_INTEGER (U"right Element range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"),
+		GET_INTEGER (U"Component loadings"), GET_REAL (U"Mark size"),
+		GET_STRING (U"Mark string"), GET_INTEGER (U"Connect points"), 0, GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -2779,36 +2470,29 @@ DO
 END
 
 DIRECT (Eigens_alignEigenvectors)
-	OrderedOf<structEigen> list;
-	LOOP {
-		iam (Eigen);
-		list. addItem_ref (me);
-	}
-	Eigens_alignEigenvectors (& list);
+	autoCollection set = praat_getSelectedObjects ();
+	Eigens_alignEigenvectors (set.peek());
 END
 
-FORM (Eigen_and_Matrix_projectColumns, U"Eigen & Matrix: Project columns", U"Eigen & Matrix: Project...")
+FORM (Eigen_and_Matrix_project, U"Eigen & Matrix: Project", U"Eigen & Matrix: Project...")
 	INTEGER (U"Number of dimensions", U"0")
 	OK
 DO
 	Eigen me = FIRST_GENERIC (Eigen);
 	Matrix thee = FIRST_GENERIC (Matrix);
-	autoMatrix him = Eigen_and_Matrix_to_Matrix_projectColumns (me, thee, GET_INTEGER (U"Number of dimensions"));
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (Eigen_and_Matrix_project (me, thee, GET_INTEGER (U"Number of dimensions")), my name, U"_", thy name);
 END
 
 DIRECT (Eigen_and_SSCP_project)
 	Eigen me = FIRST_GENERIC (Eigen);
 	SSCP cp = FIRST (SSCP);
-	autoSSCP thee = Eigen_and_SSCP_project (me, cp);
-	praat_new (thee.move(), my name, U"_", cp->name);
+	praat_new (Eigen_and_SSCP_project (me, cp), my name, U"_", cp->name);
 END
 
 DIRECT (Eigen_and_Covariance_project)
 	Eigen me = FIRST_GENERIC (Eigen);
 	Covariance cv = FIRST (Covariance);
-	autoCovariance thee = Eigen_and_Covariance_project (me, cv);
-	praat_new (thee.move(), my name, U"_", cv->name);
+	praat_new (Eigen_and_Covariance_project (me, cv), my name, U"_", cv->name);
 END
 
 /******************** Index ********************************************/
@@ -2820,7 +2504,7 @@ END
 DIRECT (Index_getNumberOfClasses)
 	LOOP {
 		iam (Index);
-		Melder_information (my classes->size);
+		Melder_information (my classes -> size);
 	}
 END
 
@@ -2831,11 +2515,11 @@ DO
 	long klas = GET_INTEGER (U"Class index");
 	LOOP {
 		iam (StringsIndex);
-		long numberOfClasses = my classes->size;
+		long numberOfClasses = my classes -> size;
 		if (klas > numberOfClasses) {
 			Melder_throw (U"Index must be less than or equal ", numberOfClasses, U".");
 		}
-		SimpleString ss = (SimpleString) my classes->at [klas];   // FIXME cast
+		SimpleString ss = (SimpleString) my classes -> item[klas];
 		Melder_information (ss -> string);
 	}
 END
@@ -2850,8 +2534,8 @@ DO
 		if (index > my numberOfElements) {
 			Melder_throw (U"Index must be less than or equal ", my numberOfElements, U".");
 		}
-		long klas = my classIndex [index];
-		SimpleString ss = (SimpleString) my classes->at [klas];   // FIXME cast
+		long klas = my classIndex[index];
+		SimpleString ss = (SimpleString) my classes -> item [klas];
 		Melder_information (ss -> string);
 	}
 END
@@ -2866,7 +2550,7 @@ DO
 		if (index > my numberOfElements) {
 			Melder_throw (U"Index must be less than or equal ", my numberOfElements, U".");
 		}
-		Melder_information (my classIndex [index]);
+		Melder_information (my classIndex[index]);
 	}
 END
 
@@ -2889,110 +2573,99 @@ FORM (Index_extractPart, U"Index: Extract part", U"Index: Extract part...")
 DO
 	LOOP {
 		iam (Index);
-		autoIndex thee = Index_extractPart (me,
-			GET_INTEGER (U"left Range"),
-			GET_INTEGER (U"right Range"));
-		praat_new (thee.move(), Thing_getName (me), U"_part");
+		praat_new (Index_extractPart (me, GET_INTEGER (U"left Range"), GET_INTEGER (U"right Range")),
+		Thing_getName (me), U"_part");
 	}
 END
 
 FORM (Index_to_Permutation, U"Index: To Permutation", U"Index: To Permutation...")
-	BOOLEAN (U"Permute within classes", true)
+	BOOLEAN (U"Permute within classes", 1)
 	OK
 DO
 	LOOP {
 		iam (Index);
-		autoPermutation result = Index_to_Permutation_permuteRandomly (me,
-			GET_INTEGER (U"Permute within classes"));
-		praat_new (result.move(), my name);
+		praat_new (Index_to_Permutation_permuteRandomly (me, GET_INTEGER (U"Permute within classes")), my name);
 	}
 END
 
 DIRECT (StringsIndex_to_Strings)
 	LOOP {
 		iam (StringsIndex);
-		autoStrings result = StringsIndex_to_Strings (me);
-		praat_new (result.move(), my name);
+		praat_new (StringsIndex_to_Strings (me), my name);
 	}
 END
 
 /******************** Excitation ********************************************/
 
-DIRECT (Excitations_to_ExcitationList)
-	autoExcitationList result = ExcitationList_create ();
+DIRECT (Excitation_to_Excitations)
+	autoExcitations e = Excitations_create (100);
 	LOOP {
 		iam (Excitation);
-		autoExcitation copy = Data_copy (me);
-		result -> addItem_move (copy.move());
+		autoExcitation thee = Data_copy (me);
+		Collection_addItem (e.peek(), thee.transfer());
 	}
-	praat_new (result.move(), U"appended");
+	praat_new (e.transfer(), U"appended");
 END
 
 /******************** Excitations ********************************************/
 
-FORM (ExcitationList_formula, U"ExcitationList: Formula", 0)
-	LABEL (U"label", U"for all objects in ExcitationList do { for col := 1 to ncol do { self [col] := `formula' ; x := x + dx } }")
+FORM (Excitations_formula, U"Excitations: Formula", 0)
+	LABEL (U"label", U"for all objects in Excitations do { for col := 1 to ncol do { self [col] := `formula' ; x := x + dx } }")
 	TEXTFIELD (U"formula", U"self")
 	OK
 DO
 	LOOP {
-		iam (ExcitationList);
-		for (long j = 1; j <= my size; j ++) {
-			Matrix_formula (my at [j], GET_STRING (U"formula"), interpreter, nullptr);
+		iam (Excitations);
+		for (long j = 1; j <= my size; j++) {
+			Matrix_formula ( (Matrix) my item[j], GET_STRING (U"formula"), interpreter, 0);
 		}
 		praat_dataChanged (me);
 	}
 END
 
-DIRECT (ExcitationList_addItem)
-	ExcitationList list = FIRST (ExcitationList);
+DIRECT (Excitations_addItem)
+	Excitations e = FIRST (Excitations);
 	WHERE_DOWN (SELECTED && CLASS == classExcitation) {
 		iam (Excitation);
-		autoExcitation copy = Data_copy (me);
-		list -> addItem_move (copy.move());
+		autoExcitation thee = Data_copy (me);
+		Collection_addItem (e, thee.transfer());
 	}
 END
 
-FORM (ExcitationList_getItem, U"ExcitationList: Get item", nullptr)
+FORM (Excitations_getItem, U"Excitations: Get item", 0)
 	NATURAL (U"Item number", U"1")
 	OK
 DO
 	LOOP {
-		iam (ExcitationList);
-		autoExcitation result = ExcitationList_getItem (me,
-			GET_INTEGER (U"Item number"));
-		praat_new (result.move(), my name, U"_item");
+		iam (Excitations);
+		praat_new (Excitations_getItem (me, GET_INTEGER (U"Item number")), my name, U"_item");
 	}
 END
 
-DIRECT (ExcitationList_append)
-	ExcitationList e1 = nullptr, e2 = nullptr;
+DIRECT (Excitations_append)
+	Excitations e1 = 0, e2 = 0;
 	LOOP {
-		iam (ExcitationList);
+		iam (Excitations);
 		(e1 ? e2 : e1) = me;
 	}
 	Melder_assert (e1 && e2);
-	autoExcitationList result = Data_copy (e1);
-	result -> merge (e2);
-	praat_new (result.move(), U"appended");
+	praat_new ( (Excitations) Collections_merge (e1, e2), U"appended");
 END
 
-FORM (ExcitationList_to_Pattern, U"Excitations: To Pattern", nullptr)
+FORM (Excitations_to_Pattern, U"Excitations: To Pattern", 0)
 	NATURAL (U"Join", U"1")
 	OK
 DO
 	LOOP {
-		iam (ExcitationList);
-		autoPattern result = ExcitationList_to_Pattern (me, GET_INTEGER (U"Join"));
-		praat_new (result.move(), my name);
+		iam (Excitations);
+		praat_new (Excitations_to_Pattern (me, GET_INTEGER (U"Join")), my name);
 	}
 END
 
-DIRECT (ExcitationList_to_TableOfReal)
+DIRECT (Excitations_to_TableOfReal)
 	LOOP {
-		iam (ExcitationList);
-		autoTableOfReal result = ExcitationList_to_TableOfReal (me);
-		praat_new (result.move(), my name);
+		iam (Excitations);
+		praat_new (Excitations_to_TableOfReal (me), my name);
 	}
 END
 
@@ -3000,12 +2673,12 @@ END
 /************************* FileInMemory ***********************************/
 
 
-FORM_READ2 (FileInMemory_create, U"Create file in memory", nullptr, true) {
+FORM_READ2 (FileInMemory_create, U"Create file in memory", 0, true) {
 	autoFileInMemory me = FileInMemory_create (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-FORM (FileInMemory_setId, U"FileInMemory: Set id", nullptr)
+FORM (FileInMemory_setId, U"FileInMemory: Set id", 0)
 	SENTENCE (U"New id", U"New id")
 	OK
 DO
@@ -3016,7 +2689,7 @@ DO
 	}
 END
 
-FORM (FileInMemory_showAsCode, U"FileInMemory: Show as code", nullptr)
+FORM (FileInMemory_showAsCode, U"FileInMemory: Show as code", 0)
 	WORD (U"Name", U"example")
 	INTEGER (U"Number of bytes per line", U"20")
 	OK
@@ -3030,129 +2703,122 @@ DO
 	}
 END
 
-/************************* FileInMemorySet ***********************************/
+/************************* FilesInMemory ***********************************/
 
-FORM (FileInMemorySet_createFromDirectoryContents, U"Create files in memory from directory contents", nullptr)
+FORM (FilesInMemory_createFromDirectoryContents, U"Create files in memory from directory contents", 0)
 	SENTENCE (U"Name", U"list")
 	LABEL (U"", U"Directory:")
 	TEXTFIELD (U"Directory", U"/home/david/praat/src/espeak-work/espeak-1.46.13/espeak-data")
 	WORD (U"Only files that match pattern", U"*.txt")
 	OK
 DO
-	autoFileInMemorySet me = FileInMemorySet_createFromDirectoryContents (
-		GET_STRING (U"Directory"),
-		GET_STRING (U"Only files that match pattern"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	autoFilesInMemory me = FilesInMemory_createFromDirectoryContents (GET_STRING (U"Directory"), GET_STRING (U"Only files that match pattern"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END
 
-FORM (FileInMemorySet_createCopyFromFilesInMemory, U"", nullptr)
+FORM (FilesInMemory_createCopyFromFilesInMemory, U"", 0)
 	OPTIONMENU (U"Espeakdata", 5)
-		OPTION (U"phons")
-		OPTION (U"dicts")
-		OPTION (U"voices")
-		OPTION (U"variants")
-		OPTION (U"voices_names")
-		OPTION (U"variants_names")
+	OPTION (U"phons")
+	OPTION (U"dicts")
+	OPTION (U"voices")
+	OPTION (U"variants")
+	OPTION (U"voices_names")
+	OPTION (U"variants_names")
 	OK
 DO
 	long choice = GET_INTEGER (U"Espeakdata");
 	if (choice == 1) {
-		autoFileInMemorySet f = Data_copy (espeakdata_phons.get());
-		praat_new (f.move(), U"espeakdata_phons");
+		autoFilesInMemory f = (FilesInMemory) Data_copy (espeakdata_phons);
+		praat_new (f.transfer(), U"espeakdata_phons");
 	}
 	else if (choice == 2) {
-		autoFileInMemorySet f = Data_copy (espeakdata_dicts.get());
-		praat_new (f.move(), U"espeakdata_dicts");
+		autoFilesInMemory f = (FilesInMemory) Data_copy (espeakdata_dicts);
+		praat_new (f.transfer(), U"espeakdata_dicts");
 	}
 	else if (choice == 3) {
-		autoFileInMemorySet f = Data_copy (espeakdata_voices.get());
-		praat_new (f.move(), U"espeakdata_voices");
+		autoFilesInMemory f = (FilesInMemory) Data_copy (espeakdata_voices);
+		praat_new (f.transfer(), U"espeakdata_voices");
 	}
 	else if (choice == 4) {
-		autoFileInMemorySet f = Data_copy (espeakdata_variants.get());
-		praat_new (f.move(), U"espeakdata_variants");
+		autoFilesInMemory f = (FilesInMemory) Data_copy (espeakdata_variants);
+		praat_new (f.transfer(), U"espeakdata_variants");
 	}
 	else if (choice == 5) {
-		autoStrings s = Data_copy (espeakdata_voices_names.get());
-		praat_new (s.move(), U"espeakdata_voices_names");
+		autoStrings s = (Strings) Data_copy (espeakdata_voices_names);
+		praat_new (s.transfer(), U"espeakdata_voices_names");
 	}
 	else if (choice == 6) {
-		autoStrings s = Data_copy (espeakdata_variants_names.get());
-		praat_new (s.move(), U"espeakdata_variants_names");
+		autoStrings s = (Strings) Data_copy (espeakdata_variants_names);
+		praat_new (s.transfer(), U"espeakdata_variants_names");
 	}
 END
 
-FORM (FileInMemorySet_showAsCode, U"FileInMemorySet: Show as code", nullptr)
+FORM (FilesInMemory_showAsCode, U"FilesInMemory: Show as code", 0)
 	WORD (U"Name", U"example")
 	INTEGER (U"Number of bytes per line", U"20")
 	OK
 DO
 	LOOP {
-		iam (FileInMemorySet);
+		iam (FilesInMemory);
 		MelderInfo_open ();
-		FileInMemorySet_showAsCode (me, GET_STRING (U"Name"), GET_INTEGER (U"Number of bytes per line"));
+		FilesInMemory_showAsCode (me, GET_STRING (U"Name"), GET_INTEGER (U"Number of bytes per line"));
 		MelderInfo_close ();
 	}
 END
 
-FORM (FileInMemorySet_showOneFileAsCode, U"FileInMemorySet: Show one file as code", nullptr)
+FORM (FilesInMemory_showOneFileAsCode, U"FilesInMemory: Show one file as code", 0)
 	NATURAL (U"Index", U"1")
 	WORD (U"Name", U"example")
 	INTEGER (U"Number of bytes per line", U"20")
 	OK
 DO
 	LOOP {
-		iam (FileInMemorySet);
+		iam (FilesInMemory);
 		MelderInfo_open ();
-		FileInMemorySet_showOneFileAsCode (me, GET_INTEGER (U"Index"), GET_STRING (U"Name"), GET_INTEGER (U"Number of bytes per line"));
+		FilesInMemory_showOneFileAsCode (me, GET_INTEGER (U"Index"), GET_STRING (U"Name"), GET_INTEGER (U"Number of bytes per line"));
 		MelderInfo_close ();
 	}
 END
 
-DIRECT (FilesInMemory_to_FileInMemorySet)
-	autoFileInMemorySet thee = FileInMemorySet_create ();
+DIRECT (FileInMemory_to_FilesInMemory)
+	autoFilesInMemory thee = FilesInMemory_create ();
 	LOOP {
 		iam (FileInMemory);
-		autoFileInMemory him = Data_copy (me);
-		thy addItem_move (him.move());
+		FileInMemory him = Data_copy (me);
+		Collection_addItem (thee.peek(), him);
 	}
-	praat_new (thee.move(), U"files");
+	praat_new (thee.transfer(), U"files");
 END
 
-DIRECT (FileInMemorySet_addItems)
-	FileInMemorySet thee = FIRST (FileInMemorySet);
+DIRECT (FilesInMemory_addItems)
+	FilesInMemory thee = FIRST (FilesInMemory);
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classFileInMemory) {
-			autoFileInMemory him = Data_copy ((FileInMemory) me);
-			thy addItem_move (him.move());
+			FileInMemory t1 = (FileInMemory) Data_copy (me);
+			Collection_addItem (thee, t1);
 		}
 	}
 END
 
-DIRECT (FileInMemorySets_merge)
-	FileInMemorySet f1 = nullptr, f2 = nullptr;
-	LOOP { 
-		iam (FileInMemorySet);
-		(f1 ? f2 : f1) = me;
-	}
-	Melder_assert (f1 && f2);
-	autoFileInMemorySet result = Data_copy (f1);
-	result -> merge (f2);
-	praat_new (result.move(), f1 -> name, U"_", f2 -> name);
+DIRECT (FilesInMemory_merge)
+	FilesInMemory f1 = 0, f2 = 0;
+	LOOP { iam (FilesInMemory); (f1 ? f2 : f1) = me; }
+	Melder_assert (f1 != 0 && f2 != 0);
+	autoFilesInMemory fim = (FilesInMemory) Collections_merge (f1, f2);
+	praat_new (fim.transfer(), f1 -> name, U"_", f2 -> name);
 END
 
-DIRECT (FileInMemorySet_to_Strings_id)
+DIRECT (FilesInMemory_to_Strings_id)
 	LOOP {
-		iam (FileInMemorySet);
-		autoStrings result = FileInMemorySet_to_Strings_id (me);
-		praat_new (result.move(), my name);
+		iam (FilesInMemory);
+		praat_new (FilesInMemory_to_Strings_id (me), my name);
 	}
 END
 
 /************************* FilterBank ***********************************/
 
-FORM (FilterBank_drawFilters, U"FilterBank: Draw filters", nullptr)
+FORM (FilterBank_drawFilters, U"FilterBank: Draw filters", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3164,17 +2830,13 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_drawRows (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"));
+		Matrix_drawRows (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
 	}
 END
 
-FORM (FilterBank_drawOneContour, U"FilterBank: Draw one contour", nullptr)
+FORM (FilterBank_drawOneContour, U"FilterBank: Draw one contour", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3185,16 +2847,12 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_drawOneContour (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"Height"));
+		Matrix_drawOneContour (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"), GET_REAL (U"Height"));
 	}
 END
 
-FORM (FilterBank_drawContours, U"FilterBank: Draw contours", nullptr)
+FORM (FilterBank_drawContours, U"FilterBank: Draw contours", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3206,27 +2864,23 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_drawContours (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"));
+		Matrix_drawContours (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
 	}
 END
 
 FORM (FilterBank_drawFrequencyScales, U"FilterBank: Draw frequency scales", U"FilterBank: Draw frequency scales...")
 	RADIO (U"Horizontal frequency scale", 1)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	REAL (U"left Horizontal frequency range", U"0.0")
 	REAL (U"right Horizontal frequency range", U"0.0")
 	RADIO (U"Vertical frequency scale", 1)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	REAL (U"left Vertical frequency range", U"0.0")
 	REAL (U"right Vertical frequency range", U"0.0")
 	BOOLEAN (U"Garnish", 1)
@@ -3236,9 +2890,9 @@ DO
 	LOOP {
 		iam (FilterBank);
 		FilterBank_drawFrequencyScales (me, GRAPHICS, GET_INTEGER (U"Horizontal frequency scale"),
-			GET_REAL (U"left Horizontal frequency range"), GET_REAL (U"right Horizontal frequency range"),
-			GET_INTEGER (U"Vertical frequency scale"), GET_REAL (U"left Vertical frequency range"),
-			GET_REAL (U"right Vertical frequency range"), GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Horizontal frequency range"), GET_REAL (U"right Horizontal frequency range"),
+		GET_INTEGER (U"Vertical frequency scale"), GET_REAL (U"left Vertical frequency range"),
+		GET_REAL (U"right Vertical frequency range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -3249,16 +2903,15 @@ FORM (MelSpectrogram_paintImage, U"MelSpectrogram: Paint image", U"MelSpectrogra
 	REAL (U"right Frequency range (mel)", U"0.0")
 	REAL (U"left Amplitude range (dB)", U"0.0")
 	REAL (U"right Amplitude range (dB)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (MelSpectrogram);
 		BandFilterSpectrogram_paintImage (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -3269,20 +2922,19 @@ FORM (BarkSpectrogram_paintImage, U"BarkSpectrogram: Paint image", U"BarkSpectro
 	REAL (U"right Frequency range (bark)", U"0.0")
 	REAL (U"left Amplitude range (dB)", U"0.0")
 	REAL (U"right Amplitude range (dB)", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (BarkSpectrogram);
 		BandFilterSpectrogram_paintImage (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"),
-			GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (FilterBank_paintImage, U"FilterBank: Paint image", nullptr)
+FORM (FilterBank_paintImage, U"FilterBank: Paint image", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3295,12 +2947,12 @@ DO
 	LOOP {
 		iam (Matrix);
 		Matrix_paintImage (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
 	}
 END
 
-FORM (FilterBank_paintContours, U"FilterBank: Paint contours", nullptr)
+FORM (FilterBank_paintContours, U"FilterBank: Paint contours", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3312,18 +2964,14 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_paintContours (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"));
+		Matrix_paintContours (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
 	}
 END
 
 
-FORM (FilterBank_paintCells, U"FilterBank: Paint cells", nullptr)
+FORM (FilterBank_paintCells, U"FilterBank: Paint cells", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3335,17 +2983,13 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_paintCells (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"));
+		Matrix_paintCells (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+		GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"));
 	}
 END
 
-FORM (FilterBank_paintSurface, U"FilterBank: Paint surface", nullptr)
+FORM (FilterBank_paintSurface, U"FilterBank: Paint surface", 0)
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0")
 	REAL (U"left Frequency range", U"0.0")
@@ -3357,31 +3001,23 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Matrix);
-		Matrix_paintSurface (me, GRAPHICS,
-			GET_REAL (U"left Time range"),
-			GET_REAL (U"right Time range"),
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Amplitude range"),
-			GET_REAL (U"right Amplitude range"),
-			30,   // elevation in degrees
-			45);   // azimuth in degrees
+		Matrix_paintSurface (me, GRAPHICS, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+			GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+			GET_REAL (U"left Amplitude range"), GET_REAL (U"right Amplitude range"), 30, 45);
 	}
 END
 
 FORM (FilterBank_getFrequencyInHertz, U"FilterBank: Get frequency in Hertz", U"FilterBank: Get frequency in Hertz...")
 	REAL (U"Frequency", U"10.0")
 	RADIO (U"Unit", 2)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	OK
 DO
 	LOOP {
 		iam (FilterBank);
-		double f = FilterBank_getFrequencyInHertz (me,
-			GET_REAL (U"Frequency"),
-			GET_INTEGER (U"Unit"));
+		double f = FilterBank_getFrequencyInHertz (me, GET_REAL (U"Frequency"), GET_INTEGER (U"Unit"));
 		Melder_informationReal (f, U"Hertz");
 	}
 END
@@ -3389,16 +3025,14 @@ END
 FORM (FilterBank_getFrequencyInBark, U"FilterBank: Get frequency in Bark", U"FilterBank: Get frequency in Bark...")
 	REAL (U"Frequency", U"93.17")
 	RADIO (U"Unit", 1)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	OK
 DO
 	LOOP {
 		iam (FilterBank);
-		double f = FilterBank_getFrequencyInBark (me,
-			GET_REAL (U"Frequency"),
-			GET_INTEGER (U"Unit"));
+		double f = FilterBank_getFrequencyInBark (me, GET_REAL (U"Frequency"), GET_INTEGER (U"Unit"));
 		Melder_informationReal (f, U"Bark");
 	}
 END
@@ -3406,40 +3040,36 @@ END
 FORM (FilterBank_getFrequencyInMel, U"FilterBank: Get frequency in mel", U"FilterBank: Get frequency in mel...")
 	REAL (U"Frequency", U"1000.0")
 	RADIO (U"Unit", 1)
-		RADIOBUTTON (U"Hertz")
-		RADIOBUTTON (U"Bark")
-		RADIOBUTTON (U"mel")
+	RADIOBUTTON (U"Hertz")
+	RADIOBUTTON (U"Bark")
+	RADIOBUTTON (U"mel")
 	OK
 DO
 	LOOP {
 		iam (FilterBank);
-		double f = FilterBank_getFrequencyInMel (me,
-			GET_REAL (U"Frequency"),
-			GET_INTEGER (U"Unit"));
+		double f = FilterBank_getFrequencyInMel (me, GET_REAL (U"Frequency"), GET_INTEGER (U"Unit"));
 		Melder_informationReal (f, U"mel");
 	}
 END
 
-FORM (FilterBank_equalizeIntensities, U"FilterBank: Equalize intensities", nullptr)
+FORM (FilterBank_equalizeIntensities, U"FilterBank: Equalize intensities", U"")
 	REAL (U"Intensity (dB)", U"80.0")
 	OK
 DO
 	LOOP {
 		iam (FilterBank);
-		FilterBank_equalizeIntensities (me,
-			GET_REAL (U"Intensity"));
+		FilterBank_equalizeIntensities (me, GET_REAL (U"Intensity"));
 		praat_dataChanged (me);
 	}
 END
 
-FORM (BandFilterSpectrogram_equalizeIntensities, U"BandFilterSpectrogram: Equalize intensities", nullptr)
+FORM (BandFilterSpectrogram_equalizeIntensities, U"BandFilterSpectrogram: Equalize intensities", U"")
 	REAL (U"Intensity (dB)", U"80.0")
 	OK
 DO
 	LOOP {
 		iam (BandFilterSpectrogram);
-		BandFilterSpectrogram_equalizeIntensities (me,
-			GET_REAL (U"Intensity"));
+		BandFilterSpectrogram_equalizeIntensities (me, GET_REAL (U"Intensity"));
 		praat_dataChanged (me);
 	}
 END
@@ -3447,101 +3077,89 @@ END
 DIRECT (FilterBank_to_Matrix)
 	LOOP {
 		iam (FilterBank);
-		autoMatrix thee = FilterBank_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (FilterBank_to_Matrix (me), my name);
 	}
 END
 
-FORM (BandFilterSpectrogram_to_Matrix, U"BandFilterSpectrogram: To Matrix", nullptr)
+FORM (BandFilterSpectrogram_to_Matrix, U"(BandFilterSpectrogram: To Matrix", 0)
 	BOOLEAN (U"Convert to dB values", 1)
 	OK
 DO
 	LOOP {
 		iam (BandFilterSpectrogram);
-		autoMatrix thee = BandFilterSpectrogram_to_Matrix (me,
-			GET_INTEGER (U"Convert to dB values"));
-		praat_new (thee.move(), my name);
+		praat_new (BandFilterSpectrogram_to_Matrix (me, GET_INTEGER (U"Convert to dB values")), my name);
 	}
 END
 
-FORM (FilterBanks_crossCorrelate, U"FilterBanks: Cross-correlate", nullptr)
+FORM (FilterBanks_crossCorrelate, U"FilterBanks: Cross-correlate", 0)
 	RADIO_ENUM (U"Amplitude scaling", kSounds_convolve_scaling, DEFAULT)
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK
 DO
-	FilterBank f1 = nullptr, f2 = nullptr;
-	LOOP {
-		iam (FilterBank);
-		(f1 ? f2 : f1) = me;
-	}
-	Melder_assert (f1 && f2);
-	autoSound result = FilterBanks_crossCorrelate (f1, f2,
-		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
-		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (result.move(), f1 -> name, U"_", f2 -> name);
+	FilterBank f1 = 0, f2 = 0;
+	LOOP { iam (FilterBank); (f1 ? f2 : f1) = me; }
+	Melder_assert (f1 != 0 && f2 != 0);
+	praat_new (FilterBanks_crossCorrelate (f1, f2, GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
+		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is...")),
+		f1 -> name, U"_", f2 -> name);
 END
 
-FORM (BandFilterSpectrograms_crossCorrelate, U"BandFilterSpectrograms: Cross-correlate", nullptr)
+FORM (BandFilterSpectrograms_crossCorrelate, U"BandFilterSpectrograms: Cross-correlate", 0)
 	RADIO_ENUM (U"Amplitude scaling", kSounds_convolve_scaling, DEFAULT)
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK
 DO
-	BandFilterSpectrogram f1 = nullptr, f2 = nullptr;
+	BandFilterSpectrogram f1 = 0, f2 = 0;
 	LOOP {
 		iam (BandFilterSpectrogram); 
 		(f1 ? f2 : f1) = me;
 	}
-	Melder_assert (f1 && f2);
-	autoSound result = BandFilterSpectrograms_crossCorrelate (f1, f2,
-		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
-		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (result.move(), f1 -> name, U"_", f2 -> name);
+	Melder_assert (f1 != 0 && f2 != 0);
+	praat_new (BandFilterSpectrograms_crossCorrelate (f1, f2, GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
+		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is...")),
+		f1 -> name, U"_", f2 -> name);
 END
 
-FORM (FilterBanks_convolve, U"FilterBanks: Convolve", nullptr)
+FORM (FilterBanks_convolve, U"FilterBanks: Convolve", 0)
 	RADIO_ENUM (U"Amplitude scaling", kSounds_convolve_scaling, DEFAULT)
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK
 DO
-	FilterBank f1 = nullptr, f2 = nullptr;
+	FilterBank f1 = 0, f2 = 0;
 	LOOP { iam (FilterBank); (f1 ? f2 : f1) = me; }
-	Melder_assert (f1 && f2);
-	autoSound result = FilterBanks_convolve (f1, f2,
-		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
-		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (result.move(), f1 -> name, U"_", f2 -> name);
+	Melder_assert (f1 != 0 && f2 != 0);
+	praat_new (FilterBanks_convolve (f1, f2, GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
+		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is...")),
+		f1 -> name, U"_", f2 -> name);
 END
 
-FORM (BandFilterSpectrograms_convolve, U"BandFilterSpectrograms: Convolve", nullptr)
+FORM (BandFilterSpectrograms_convolve, U"BandFilterSpectrograms: Convolve", 0)
 	RADIO_ENUM (U"Amplitude scaling", kSounds_convolve_scaling, DEFAULT)
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK
 DO
-	BandFilterSpectrogram f1 = nullptr, f2 = nullptr;
+	BandFilterSpectrogram f1 = 0, f2 = 0;
 	LOOP {
 		iam (BandFilterSpectrogram);
 		(f1 ? f2 : f1) = me;
 	}
-	Melder_assert (f1 && f2);
-	autoSound result = BandFilterSpectrograms_convolve (f1, f2,
-		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
-		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (result.move(), f1 -> name, U"_", f2 -> name);
+	Melder_assert (f1 != 0 && f2 != 0);
+	praat_new (BandFilterSpectrograms_convolve (f1, f2, GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
+		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is...")),
+		f1 -> name, U"_", f2 -> name);
 END
 
 DIRECT (FilterBank_to_Intensity)
 	LOOP {
 		iam (FilterBank);
-		autoIntensity result = FilterBank_to_Intensity (me);
-		praat_new (result.move(), my name);
+		praat_new (FilterBank_to_Intensity (me), my name);
 	}
 END
 
 DIRECT (BandFilterSpectrogram_to_Intensity)
 	LOOP {
 		iam (BandFilterSpectrogram);
-		autoIntensity result = BandFilterSpectrogram_to_Intensity (me);
-		praat_new (result.move(), my name);
+		praat_new (BandFilterSpectrogram_to_Intensity (me), my name);
 	}
 END
 
@@ -3809,10 +3427,9 @@ FORM (Intensity_to_TextGrid_detectSilences, U"Intensity: To TextGrid (silences)"
 DO
 	LOOP {
 		iam (Intensity);
-		autoTextGrid thee = Intensity_to_TextGrid_detectSilences (me, GET_REAL (U"Silence threshold"),
+		praat_new (Intensity_to_TextGrid_detectSilences (me, GET_REAL (U"Silence threshold"),
 			GET_REAL (U"Minimum silent interval duration"), GET_REAL (U"Minimum sounding interval duration"),
-			GET_STRING (U"Silent interval label"), GET_STRING (U"Sounding interval label"));
-		praat_new (thee.move(), my name);
+			GET_STRING (U"Silent interval label"), GET_STRING (U"Sounding interval label")), my name);
 	}
 END
 
@@ -3829,10 +3446,9 @@ FORM (IntensityTier_to_TextGrid_detectSilences, U"IntensityTier: To TextGrid (si
 DO
 	LOOP {
 		iam (IntensityTier);
-		autoTextGrid thee = IntensityTier_to_TextGrid_detectSilences (me, GET_REAL (U"Time step"), GET_REAL (U"Silence threshold"),
+		praat_new (IntensityTier_to_TextGrid_detectSilences (me, GET_REAL (U"Time step"), GET_REAL (U"Silence threshold"),
 			GET_REAL (U"Minimum silent interval duration"), GET_REAL (U"Minimum sounding interval duration"),
-			GET_STRING (U"Silent interval label"), GET_STRING (U"Sounding interval label"));
-		praat_new (thee.move(), my name);
+			GET_STRING (U"Silent interval label"), GET_STRING (U"Sounding interval label")), my name);
 	}
 END
 
@@ -3843,7 +3459,7 @@ DO
 	LOOP {
 		iam (IntensityTier);
 		autoIntensity thee = IntensityTier_to_Intensity (me, GET_REAL (U"Time step"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END
 
@@ -3869,9 +3485,8 @@ DO
 	if (xmax <= xmin) {
 		Melder_throw (U"Xmin should be smaller than Xmax.");
 	}
-	autoISpline me = ISpline_createFromStrings (xmin, xmax, degree,
-		GET_STRING (U"Coefficients"), GET_STRING (U"Interior knots"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (ISpline_createFromStrings (xmin, xmax, degree,
+		GET_STRING (U"Coefficients"), GET_STRING (U"Interior knots")), GET_STRING (U"Name"));
 END
 
 /******************* KlattTable  *********************************/
@@ -3879,8 +3494,7 @@ END
 DIRECT (KlattTable_help) Melder_help (U"KlattTable"); END
 
 DIRECT (KlattTable_createExample)
-	autoKlattTable thee = KlattTable_createExample ();
-	praat_new (thee.move(), U"example");
+	praat_new (KlattTable_createExample (), U"example");
 END
 
 FORM (KlattTable_to_Sound, U"KlattTable: To Sound", U"KlattTable: To Sound...")
@@ -3907,15 +3521,14 @@ FORM (KlattTable_to_Sound, U"KlattTable: To Sound", U"KlattTable: To Sound...")
 DO
 	double flutter = GET_REAL (U"Flutter percentage");
 	int outputType = GET_INTEGER (U"Output type") - 1;
-	if (flutter < 0.0 || flutter > 100.0) {
+	if (flutter < 0 || flutter > 100) {
 		Melder_throw (U"Flutter should be between 0 and 100%.");
 	}
 	LOOP {
 		iam (KlattTable);
-		autoSound thee = KlattTable_to_Sound (me, GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Synthesis model"),
+		praat_new (KlattTable_to_Sound (me, GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Synthesis model"),
 			GET_INTEGER (U"Number of formants"), GET_REAL (U"Frame duration"), GET_INTEGER (U"Voicing source"),
-			GET_REAL (U"Flutter percentage"), outputType);
-		praat_new (thee.move(), my name);
+			GET_REAL (U"Flutter percentage"), outputType), my name);
 	}
 END
 
@@ -3932,16 +3545,14 @@ END
 DIRECT (KlattTable_to_Table)
 	LOOP {
 		iam (KlattTable);
-		autoTable thee = KlattTable_to_Table (me);
-		praat_new (thee.move(), my name);
+		praat_new (KlattTable_to_Table (me), my name);
 	}
 END
 
 DIRECT (Table_to_KlattTable)
 	LOOP {
 		iam (Table);
-		autoKlattTable thee = Table_to_KlattTable (me);
-		praat_new (thee.move(), my name);
+		praat_new (Table_to_KlattTable (me), my name);
 	}
 END
 
@@ -3969,8 +3580,8 @@ static void print_means (Table me) {
 		Melder_padOrTruncate (15, my columnHeaders[1].label), U"\t",
 		Melder_padOrTruncate (15, my columnHeaders[2].label), U"\t",
 		Melder_padOrTruncate (15, my columnHeaders[3].label));
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
+	for (long irow = 1; irow <= my rows -> size; irow++) {
+		TableRow row = (TableRow) my rows -> item [irow];
 		MelderInfo_writeLine (
 			Melder_padOrTruncate (15, row -> cells[1].string), U"\t",
 			Melder_padOrTruncate (15, Melder_double (row -> cells[2].number)), U"\t",
@@ -3993,9 +3604,9 @@ END
 FORM (Table_reportOneWayAnova, U"Table: Report one-way anova",  U"Table: Report one-way anova...")
 	SENTENCE (U"Column with data", U"F0")
 	SENTENCE (U"Factor", U"Vowel")
-	BOOLEAN (U"Table with means", false);
-	BOOLEAN (U"Table with differences between means", false)
-	BOOLEAN (U"Table with Tukey's post-hoc HSD test", false)
+	BOOLEAN (U"Table with means", 0);
+	BOOLEAN (U"Table with differences between means", 0)
+	BOOLEAN (U"Table with Tukey's post-hoc HSD test", 0)
 	OK
 DO
 	char32 *factor = GET_STRING (U"Factor");
@@ -4007,22 +3618,24 @@ DO
 		iam (Table);
 		long factorColumn = Table_getColumnIndexFromColumnLabel (me, factor);
 		long dataColumn = Table_getColumnIndexFromColumnLabel (me, dataLabel);
-		autoTable means, meansDiff, meansDiffProbabilities;
-		autoTable anova = Table_getOneWayAnalysisOfVarianceF (me, dataColumn, factorColumn, &means, &meansDiff, & meansDiffProbabilities);
+		Table tmeans = 0, tmeansDiff = 0, tmeansDiffProbabilities = 0;
+		autoTable anova = Table_getOneWayAnalysisOfVarianceF (me, dataColumn, factorColumn, &tmeans,
+			&tmeansDiff, & tmeansDiffProbabilities);
+		autoTable means = tmeans, meansDiff = tmeansDiff, meansDiffProbabilities = tmeansDiffProbabilities;
 		MelderInfo_open ();
 		MelderInfo_writeLine (U"One-way analysis of \"", dataLabel, U"\" by \"", factor, U"\".\n");
-		Table_printAsAnovaTable (anova.get());
+		Table_printAsAnovaTable (anova.peek());
 		MelderInfo_writeLine (U"\nMeans:\n");
-		print_means (means.get());
+		print_means (means.peek());
 		MelderInfo_close ();
 		if (getMeans) {
-			praat_new (means.move(), my name, U"_groupMeans");
+			praat_new (means.transfer(), my name, U"_groupMeans");
 		}
 		if (getMeansDiff) {
-			praat_new (meansDiff.move(), my name, U"_meansDiff");
+			praat_new (meansDiff.transfer(), my name, U"_meansDiff");
 		}
 		if (getMeansDiffProbabilities) {
-			praat_new (meansDiffProbabilities.move(), my name, U"_meansDiffP");
+			praat_new (meansDiffProbabilities.transfer(), my name, U"_meansDiffP");
 		}
 	}
 END
@@ -4043,18 +3656,19 @@ DO
 		long factorColumnA = Table_getColumnIndexFromColumnLabel (me, factorA);
 		long factorColumnB = Table_getColumnIndexFromColumnLabel (me, factorB);
 		long dataColumn = Table_getColumnIndexFromColumnLabel (me, dataLabel);
-		autoTable means, sizes;
-		autoTable anova = Table_getTwoWayAnalysisOfVarianceF (me, dataColumn, factorColumnA, factorColumnB, &means, &sizes);
+		Table tmeans = 0, tsizes = 0;
+		autoTable anova = Table_getTwoWayAnalysisOfVarianceF (me, dataColumn, factorColumnA, factorColumnB, &tmeans, &tsizes);
+		autoTable means = tmeans, sizes = tsizes;
 		MelderInfo_open ();
 		MelderInfo_writeLine (U"Two-way analysis of \"", dataLabel, U"\" by \"", factorA, U"\" and \"", factorB, U".\n");
-		Table_printAsAnovaTable (anova.get());
+		Table_printAsAnovaTable (anova.peek());
 		MelderInfo_writeLine (U"\nMeans:\n");
-		Table_printAsMeansTable (means.get());
+		Table_printAsMeansTable (means.peek());
 		MelderInfo_writeLine (U"\nCell sizes:\n");
-		Table_printAsMeansTable (sizes.get());
+		Table_printAsMeansTable (sizes.peek());
 		MelderInfo_close ();
 		if (getMeans) {
-			praat_new (means.move(), my name, U"_groupMeans");
+			praat_new (means.transfer(), my name, U"_groupMeans");
 		}
 	}
 END
@@ -4070,17 +3684,17 @@ DO
 		iam (Table);
 		long factorColumn = Table_getColumnIndexFromColumnLabel (me, factor);
 		long dataColumn = Table_getColumnIndexFromColumnLabel (me, dataLabel);
-		double df, kruskalWallis, prob;
-		autoTable thee = Table_getOneWayKruskalWallis (me, dataColumn, factorColumn, & prob, & kruskalWallis, & df);
+		double degreesOfFreedom, kruskalWallis, probability;
+		autoTable thee = Table_getOneWayKruskalWallis (me, dataColumn, factorColumn, &degreesOfFreedom, &kruskalWallis, &probability);
 		MelderInfo_open ();
 		MelderInfo_writeLine (U"One-way Kruskal-Wallis of \"", dataLabel, U"\" by \"", factor, U"\".\n");
 		MelderInfo_writeLine (U"Chi squared: ", kruskalWallis);
-		MelderInfo_writeLine (U"Degrees of freedom: ", df);
-		MelderInfo_writeLine (U"Probability: ", prob);
+		MelderInfo_writeLine (U"Degrees of freedom: ", degreesOfFreedom);
+		MelderInfo_writeLine (U"Probability: ", probability);
 		MelderInfo_writeLine (U"\nMeans:\n");
-		print_means (thee.get());
+		print_means (thee.peek());
 		MelderInfo_close ();
-		//praat_new (move(), my name, U"_groupMeans");
+		//praat_new (thee.transfer(), my name, U"_groupMeans");
 	}
 END
 
@@ -4093,7 +3707,7 @@ DO
 		iam (Table);
 		long icol = Table_getColumnIndexFromColumnLabel (me, columnLabel);
 		autoStringsIndex thee = Table_to_StringsIndex_column (me, icol);
-		praat_new (thee.move(), my name, U"_", columnLabel);
+		praat_new (thee.transfer(), my name, U"_", columnLabel);
 	}
 END
 
@@ -4127,12 +3741,8 @@ END
 /********************* LongSound **************************************/
 
 FORM_READ2 (LongSounds_appendToExistingSoundFile, U"LongSound: Append to existing sound file", 0, false) {
-	OrderedOf<structSampled> list;
-	LOOP {
-		iam (Sampled);
-		list. addItem_ref (me);
-	}
-	LongSounds_appendToExistingSoundFile (& list, file);
+	autoCollection set = praat_getSelectedObjects ();
+	LongSounds_appendToExistingSoundFile (set.peek(), file);
 END2 }
 
 FORM_WRITE (LongSounds_writeToStereoAiffFile, U"LongSound: Save as AIFF file", 0, U"aiff")
@@ -4177,7 +3787,7 @@ FORM (Matrix_drawAsSquares, U"Matrix: Draw as squares", U"Matrix: Draw as square
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -4202,7 +3812,7 @@ FORM (Matrix_drawDistribution, U"Matrix: Draw distribution", U"Matrix: Draw dist
 	NATURAL (U"Number of bins", U"10")
 	REAL (U"Minimum frequency", U"0.0")
 	REAL (U"Maximum frequency", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -4211,7 +3821,7 @@ DO
 		Matrix_drawDistribution (me, GRAPHICS, GET_REAL (U"left Horizontal range"),
 			GET_REAL (U"right Horizontal range"), GET_REAL (U"left Vertical range"),
 			GET_REAL (U"right Vertical range"), GET_REAL (U"Minimum value"), GET_REAL (U"Maximum value"),
-			GET_INTEGER (U"Number of bins"), GET_REAL (U"Minimum frequency"), GET_REAL (U"Maximum frequency"), false,
+			GET_INTEGER (U"Number of bins"), GET_REAL (U"Minimum frequency"), GET_REAL (U"Maximum frequency"), 0,
 			GET_INTEGER (U"Garnish"));
 	}
 END
@@ -4229,7 +3839,7 @@ FORM (Matrix_drawCumulativeDistribution, U"Matrix: Draw cumulative distribution"
 	NATURAL (U"Number of bins", U"10")
 	REAL (U"Minimum", U"0.0")
 	REAL (U"Maximum", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -4238,11 +3848,11 @@ DO
 		Matrix_drawDistribution (me, GRAPHICS, GET_REAL (U"left Horizontal range"),
 			GET_REAL (U"right Horizontal range"), GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
 			GET_REAL (U"Minimum value"), GET_REAL (U"Maximum value"), GET_INTEGER (U"Number of bins"),
-			GET_REAL (U"Minimum"), GET_REAL (U"Maximum"), true, GET_INTEGER (U"Garnish"));
+			GET_REAL (U"Minimum"), GET_REAL (U"Maximum"), 1, GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (Matrix_getMean, U"Matrix: Get mean", nullptr)
+FORM (Matrix_getMean, U"Matrix: Get mean", 0)
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
@@ -4252,10 +3862,10 @@ DO
 	Matrix me = FIRST_ANY (Matrix);
 	double mean = Matrix_getMean (me, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"));
-	Melder_informationReal (mean, nullptr);
+	Melder_informationReal (mean, NULL);
 END
 
-FORM (Matrix_getStandardDeviation, U"Matrix: Get standard deviation", nullptr)
+FORM (Matrix_getStandardDeviation, U"Matrix: Get standard deviation", 0)
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
@@ -4265,10 +3875,10 @@ DO
 	Matrix me = FIRST_ANY (Matrix);
 	double stdev = Matrix_getStandardDeviation (me, GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"));
-	Melder_informationReal (stdev, nullptr);
+	Melder_informationReal (stdev, NULL);
 END
 
-FORM (Matrix_scale, U"Matrix: Scale", nullptr)
+FORM (Matrix_scale, U"Matrix: Scale", 0)
 	LABEL (U"", U"self[row, col] := self[row, col] / `Scale factor'")
 	RADIO (U"Scale factor", 1)
 	RADIOBUTTON (U"Extremum in matrix")
@@ -4291,23 +3901,7 @@ END
 DIRECT (Matrix_transpose)
 	LOOP {
 		iam (Matrix);
-		autoMatrix thee = Matrix_transpose (me);
-		praat_new (thee.move(), my name, U"_transposed");
-	}
-END
-
-DIRECT (Matrix_to_PCA_byColumns)
-	LOOP {
-		iam (Matrix);
-		autoPCA thee = Matrix_to_PCA_byColumns (me);
-		praat_new (thee.move(), my name, U"_columns");
-	}
-END
-DIRECT (Matrix_to_PCA_byRows)
-	LOOP {
-		iam (Matrix);
-		autoPCA thee = Matrix_to_PCA_byRows (me);
-		praat_new (thee.move(), my name, U"_rows");
+		praat_new (Matrix_transpose (me), my name, U"_transposed");
 	}
 END
 
@@ -4317,16 +3911,14 @@ FORM (Matrix_solveEquation, U"Matrix: Solve equation", U"Matrix: Solve equation.
 DO
 	LOOP {
 		iam (Matrix);
-		autoMatrix thee = Matrix_solveEquation (me, GET_REAL (U"Tolerance"));
-		praat_new (thee.move(), Thing_getName (me), U"_solution");
+		praat_new (Matrix_solveEquation (me, GET_REAL (U"Tolerance")), Thing_getName (me), U"_solution");
 	}
 END
 
 DIRECT (Matrix_Categories_to_TableOfReal)
-	Matrix me = FIRST_GENERIC (Matrix);
+	Matrix me = FIRST (Matrix);
 	Categories cat = FIRST (Categories);
-	autoTableOfReal thee = Matrix_and_Categories_to_TableOfReal (me, cat);
-	praat_new (thee.move(), my name, U"_", cat -> name);
+	praat_new (Matrix_and_Categories_to_TableOfReal (me, cat), my name, U"_", cat->name);
 END
 
 FORM (Matrix_scatterPlot, U"Matrix: Scatter plot", 0)
@@ -4358,8 +3950,7 @@ END
 DIRECT (Matrix_to_Activation)
 	LOOP {
 		iam (Matrix);
-		autoActivation thee = Matrix_to_Activation (me);
-		praat_new (thee.move(), my name);
+		praat_new (Matrix_to_Activation (me), my name);
 	}
 END
 
@@ -4377,8 +3968,7 @@ DO
 		(m1 ? m2 : m1) = me;
 	}
 	Melder_assert (m1 && m2);
-	autoDTW thee = Matrices_to_DTW (m1, m2, begin, end, slope, GET_REAL (U"Distance metric"));
-	praat_new (thee.move(), m1->name, U"_", m2->name);
+	praat_new (Matrices_to_DTW (m1, m2, begin, end, slope, GET_REAL (U"Distance metric")), m1->name, U"_", m2->name);
 END
 
 FORM (Matrix_to_Pattern, U"Matrix: To Pattern", 0)
@@ -4716,8 +4306,7 @@ FORM (MelSpectrogram_to_MFCC, U"MelSpectrogram: To MFCC", U"MelSpectrogram: To M
 DO
 	LOOP {
 		iam (MelSpectrogram);
-		autoMFCC thee = MelSpectrogram_to_MFCC (me, GET_INTEGER (U"Number of coefficients"));
-		praat_new (thee.move(), my name);
+		praat_new (MelSpectrogram_to_MFCC (me, GET_INTEGER (U"Number of coefficients")), my name);
 	}
 END
 
@@ -4775,9 +4364,8 @@ FORM (MFCC_to_MelSpectrogram, U"MFCC: MelSpectrogram", U"MFCC: To MelSpectrogram
 DO
 	LOOP {
 		iam (MFCC);
-		autoMelSpectrogram thee = MFCC_to_MelSpectrogram (me, GET_INTEGER (U"From coefficient"), GET_INTEGER (U"To coefficient"),
-			GET_INTEGER (U"Include constant term"));
-		praat_new (thee.move(), my name);
+		praat_new (MFCC_to_MelSpectrogram (me, GET_INTEGER (U"From coefficient"), GET_INTEGER (U"To coefficient"),
+			GET_INTEGER (U"Include constant term")), my name);
 	}
 END
 
@@ -4874,11 +4462,10 @@ DIRECT (MSpline_help) Melder_help (U"MSpline"); END
 DIRECT (Pattern_and_Categories_to_Discriminant)
 	Pattern me = FIRST (Pattern);
 	Categories cat = FIRST (Categories);
-	autoDiscriminant thee = Pattern_and_Categories_to_Discriminant (me, cat);
-	praat_new (thee.move(), my name, U"_", cat -> name);
-END
+	praat_new (Pattern_and_Categories_to_Discriminant (me, cat), Thing_getName (me), U"_", Thing_getName (cat));
+	END
 
-FORM (Pattern_draw, U"Pattern: Draw", 0)
+	FORM (Pattern_draw, U"Pattern: Draw", 0)
 	NATURAL (U"Pattern number", U"1")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0")
@@ -4933,7 +4520,6 @@ DIRECT (Pattern_to_Matrix)
 	}
 END
 
-
 /******************* PCA ******************************/
 
 DIRECT (PCA_help)
@@ -4969,22 +4555,7 @@ END
 DIRECT (PCA_and_Configuration_to_TableOfReal_reconstruct)
 	PCA me = FIRST (PCA);
 	Configuration conf = FIRST (Configuration);
-	autoTableOfReal thee = PCA_and_Configuration_to_TableOfReal_reconstruct (me, conf);
-	praat_new (thee.move(), my name, U"_", conf->name);
-END
-
-FORM (PCA_and_TableOfReal_to_TableOfReal_projectRows, U"PCA & TableOfReal: To TableOfReal (project rows)", U"PCA & TableOfReal: To Configuration...")
-	INTEGER (U"Number of dimensions to keep", U"0 (=all)")
-	OK
-DO
-	long dimension = GET_INTEGER (U"Number of dimensions to keep");
-	if (dimension < 0) {
-		Melder_throw (U"Number of dimensions must be greater equal zero.");
-	}
-	PCA me = FIRST (PCA);
-	TableOfReal tor = FIRST_GENERIC (TableOfReal);
-	autoTableOfReal thee = PCA_and_TableOfReal_to_TableOfReal_projectRows (me, tor, dimension);
-	praat_new (thee.move(), my name, U"_", tor -> name);
+	praat_new (PCA_and_Configuration_to_TableOfReal_reconstruct (me, conf), my name, U"_", conf->name);
 END
 
 FORM (PCA_and_TableOfReal_to_Configuration, U"PCA & TableOfReal: To Configuration", U"PCA & TableOfReal: To Configuration...")
@@ -4997,8 +4568,7 @@ DO
 	}
 	PCA me = FIRST (PCA);
 	TableOfReal tab = FIRST_GENERIC (TableOfReal);
-	autoConfiguration thee = PCA_and_TableOfReal_to_Configuration (me, tab, dimension);
-	praat_new (thee.move(), my name, U"_", tab->name);
+	praat_new (PCA_and_TableOfReal_to_Configuration (me, tab, dimension), my name, U"_", tab->name);
 END
 
 FORM (PCA_and_TableOfReal_to_TableOfReal_zscores, U"PCA & TableOfReal: To TableOfReal (z-scores)", U"PCA & TableOfReal: To TableOfReal (z-scores)...")
@@ -5011,36 +4581,7 @@ DO
 	}
 	PCA me = FIRST (PCA);
 	TableOfReal thee = FIRST_GENERIC (TableOfReal);
-	autoTableOfReal him = PCA_and_TableOfReal_to_TableOfReal_zscores (me, thee, dimension);
-	praat_new (him.move(), my name, U"_", thy name, U"_zscores");
-END
-
-FORM (PCA_and_Matrix_to_Matrix_projectRows, U"PCA & Matrix: To Matrix (project rows)", U"")
-	INTEGER (U"Number of dimensions", U"0 (=all)")
-	OK
-DO
-	long dimension = GET_INTEGER (U"Number of dimensions");
-	if (dimension < 0) {
-		Melder_throw (U"Number of dimensions must be greater than or equal to zero.");
-	}
-	PCA me = FIRST (PCA);
-	Matrix m = FIRST_GENERIC (Matrix);
-	autoMatrix thee = Eigen_and_Matrix_to_Matrix_projectRows (me, m, dimension);
-	praat_new (thee.move(), my name, U"_", m -> name);
-END
-
-FORM (PCA_and_Matrix_to_Matrix_projectColumns, U"PCA & Matrix: To Matrix (project columns)", U"")
-	INTEGER (U"Number of dimensions", U"0 (=all)")
-	OK
-DO
-	long dimension = GET_INTEGER (U"Number of dimensions");
-	if (dimension < 0) {
-		Melder_throw (U"Number of dimensions must be greater than or equal to zero.");
-	}
-	PCA me = FIRST (PCA);
-	Matrix m = FIRST_GENERIC (Matrix);
-	autoMatrix thee = Eigen_and_Matrix_to_Matrix_projectColumns (me, m, dimension);
-	praat_new (thee.move(), my name, U"_", m -> name);
+	praat_new (PCA_and_TableOfReal_to_TableOfReal_zscores (me, thee, dimension), my name, U"_", thy name, U"_zscores");
 END
 
 FORM (PCA_getCentroidElement, U"PCA: Get centroid element...", 0)
@@ -5065,11 +4606,11 @@ FORM (PCA_getEqualityOfEigenvalues, U"PCA: Get equality of eigenvalues", U"PCA:
 DO
 	LOOP {
 		iam (PCA);
-		double p, chisq, df;
+		long ndf; double p, chisq;
 		PCA_getEqualityOfEigenvalues (me, GET_INTEGER (U"left Eigenvalue range"),
-		GET_INTEGER (U"right Eigenvalue range"), GET_INTEGER (U"Conservative test"), & p, & chisq, & df);
+		GET_INTEGER (U"right Eigenvalue range"), GET_INTEGER (U"Conservative test"), &p, &chisq, &ndf);
 		Melder_information (p, U" (=probability, based on chisq = ",
-		chisq, U" and df = ", df);
+		chisq, U"and ndf = ", ndf);
 	}
 END
 
@@ -5123,8 +4664,7 @@ FORM (PCA_to_TableOfReal_reconstruct1, U"PCA: To TableOfReal (reconstruct)", U"P
 DO
 	LOOP {
 		iam (PCA);
-		autoTableOfReal thee = PCA_to_TableOfReal_reconstruct1 (me, GET_STRING (U"Coefficients"));
-		praat_new (thee.move(), my name, U"_reconstructed");
+		praat_new (PCA_to_TableOfReal_reconstruct1 (me, GET_STRING (U"Coefficients")), my name, U"_reconstructed");
 	}
 END
 
@@ -5141,8 +4681,7 @@ DO
 		(p1 ? p2 : p1) = me;
 	}
 	Melder_assert (p1 && p2);
-	autoProcrustes thee = Eigens_to_Procrustes (p1, p2, from, to);
-	praat_new (thee.move(), Thing_getName (p1), U"_", Thing_getName (p2));
+	praat_new (Eigens_to_Procrustes (p1, p2, from, to), Thing_getName (p1), U"_", Thing_getName (p2));
 END
 
 
@@ -5169,12 +4708,12 @@ FORM (Permutation_create, U"Create Permutation", U"Create Permutation...")
 	BOOLEAN (U"Identity Permutation", 1)
 	OK
 DO
-	autoPermutation p = Permutation_create (GET_INTEGER (U"Number of elements"));
+	Permutation p = Permutation_create (GET_INTEGER (U"Number of elements"));
 	int identity = GET_INTEGER (U"Identity Permutation");
 	if (! identity) {
-		Permutation_permuteRandomly_inline (p.get(), 0, 0);
+		Permutation_permuteRandomly_inline (p, 0, 0);
 	}
-	praat_new (p.move(), GET_STRING (U"Name"));
+	praat_new (p, GET_STRING (U"Name"));
 END
 
 DIRECT (Permutation_getNumberOfElements)
@@ -5345,15 +4884,9 @@ DIRECT (Permutation_invert)
 		praat_new (Permutation_invert (me), Thing_getName (me), U"_inv");
 	}
 END
-
 DIRECT (Permutations_multiply)
-	OrderedOf<structPermutation> list;
-	LOOP {
-		iam (Permutation);
-		list. addItem_ref (me);
-	}
-	autoPermutation result = Permutations_multiply (& list);
-	praat_new (result.move(), U"mul_", list.size);
+	autoCollection set = praat_getSelectedObjects ();
+	praat_new (Permutations_multiply (set.peek()), U"mul_", set -> size);
 END
 
 DIRECT (Permutations_next)
@@ -5386,8 +4919,7 @@ DO
 		(p1 ? p2 : p1) = me;
 	}
 	Melder_assert (p1 && p2);
-	autoDTW thee = Pitches_to_DTW (p1, p2, GET_REAL (U"Voiced-unvoiced costs"), GET_REAL (U"Time costs weight"), begin, end, slope);
-	praat_new (thee.move(), U"dtw_", Thing_getName (p1), U"_", Thing_getName (p2));
+	praat_new (Pitches_to_DTW (p1, p2, GET_REAL (U"Voiced-unvoiced costs"), GET_REAL (U"Time costs weight"), begin, end, slope), U"dtw_", Thing_getName (p1), U"_", Thing_getName (p2));
 END
 
 FORM (PitchTier_to_Pitch, U"PitchTier: To Pitch", U"PitchTier: To Pitch...")
@@ -5398,9 +4930,8 @@ FORM (PitchTier_to_Pitch, U"PitchTier: To Pitch", U"PitchTier: To Pitch...")
 DO
 	LOOP {
 		iam (PitchTier);
-		autoPitch thee = PitchTier_to_Pitch (me, GET_REAL (U"Step size"),
-		GET_REAL (U"Pitch floor"), GET_REAL (U"Pitch ceiling"));
-		praat_new (thee.move(), my name);
+		praat_new (PitchTier_to_Pitch (me, GET_REAL (U"Step size"),
+		GET_REAL (U"Pitch floor"), GET_REAL (U"Pitch ceiling")), my name);
 	}
 END
 
@@ -5411,8 +4942,7 @@ FORM (Polygon_createSimple, U"Create simple Polygon", U"Create simple Polygon...
 	SENTENCE (U"Vertices as X-Y pairs", U"0.0 0.0  0.0 1.0  1.0 0.0")
 	OK
 DO
-	autoPolygon thee = Polygon_createSimple (GET_STRING (U"Vertices as X-Y pairs"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (Polygon_createSimple (GET_STRING (U"Vertices as X-Y pairs")), GET_STRING (U"Name"));
 END
 
 FORM (Polygon_createFromRandomVertices, U"", 0)
@@ -5424,10 +4954,9 @@ FORM (Polygon_createFromRandomVertices, U"", 0)
 	REAL (U"right Y range", U"1.0")
 	OK
 DO
-	autoPolygon thee = Polygon_createFromRandomVertices (GET_INTEGER (U"Number of vertices"),
+	praat_new (Polygon_createFromRandomVertices (GET_INTEGER (U"Number of vertices"),
 		GET_REAL (U"left X range"), GET_REAL (U"right X range"),
-		GET_REAL (U"left Y range"), GET_REAL (U"right Y range"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+		GET_REAL (U"left Y range"), GET_REAL (U"right Y range")), GET_STRING (U"Name"));
 END
 
 DIRECT (Polygon_getNumberOfPoints)
@@ -5485,7 +5014,7 @@ END
 DIRECT (Polygon_getAreaOfConvexHull)
 	LOOP {
 		iam (Polygon);
-		Melder_informationReal (Polygon_getAreaOfConvexHull (me), nullptr);
+		Melder_informationReal (Polygon_getAreaOfConvexHull (me), NULL);
 	}
 END
 
@@ -5496,24 +5025,21 @@ DO
 	long shift = GET_INTEGER (U"Shift");
 	LOOP {
 		iam (Polygon);
-		autoPolygon thee = Polygon_circularPermutation (me, shift);
-		praat_new (thee.move(), my name, U"_", shift);
+		praat_new (Polygon_circularPermutation (me, shift), my name, U"_", shift);
 	}
 END
 
 DIRECT (Polygon_simplify)
 	LOOP {
 		iam (Polygon);
-		autoPolygon thee = Polygon_simplify (me);
-		praat_new (thee.move(), my name, U"_s");
+		praat_new (Polygon_simplify (me), my name, U"_s");
 	}
 END
 
 DIRECT (Polygon_convexHull)
 	LOOP {
 		iam (Polygon);
-		autoPolygon thee = Polygon_convexHull (me);
-		praat_new (thee.move(), my name, U"_hull");
+		praat_new (Polygon_convexHull (me), my name, U"_hull");
 	}
 END
 
@@ -5523,9 +5049,8 @@ FORM (Polygon_translate, U"Polygon: Translate", U"Polygon: Translate...")
 	OK
 DO
 	LOOP {
-		iam (Polygon); 
+		iam (Polygon);
 		Polygon_translate (me, GET_REAL (U"X"), GET_REAL (U"Y"));
-		praat_dataChanged (me);
 	}
 END
 
@@ -5707,8 +5232,8 @@ FORM (Polynomials_divide, U"Polynomials: Divide", U"Polynomials: Divide...")
 	OK
 DO
 /* With gcc (GCC) 3.2.2 20030217 (Red Hat Linux 8.0 3.2.2-2)
-	The following line initiates pq = nullptr and I don't know why
-Polynomial p1 = nullptr, p2 = nullptr, pq, pr;
+	The following line initiates pq = NULL and I don't know why
+Polynomial p1 = NULL, p2 = NULL, pq, pr;
 */
 
 	bool wantq = GET_INTEGER (U"Want quotient");
@@ -5716,20 +5241,26 @@ Polynomial p1 = nullptr, p2 = nullptr, pq, pr;
 	if (! wantq && ! wantr) {
 		Melder_throw (U"Either \'Want quotient\' or \'Want remainder\' should be chosen");
 	}
-	Polynomial p1 = nullptr, p2 = nullptr;
+	Polynomial p1 = 0, p2 = 0;
 	LOOP {
 		iam (Polynomial);
 		(p1 ? p2 : p1) = me;
 	}
 	Melder_assert (p1 && p2);
-	autoPolynomial aq, ar;
-	Polynomials_divide (p1, p2, wantq ? & aq : nullptr, wantr ? & ar : nullptr);
-//	autoPolynomial aq = q, ar = r;
+	Polynomial q, r;
+	if (! wantq) {
+		q = 0;
+	}
+	if (! wantr) {
+		r = 0;
+	}
+	Polynomials_divide (p1, p2, &q, &r);
+	autoPolynomial aq = q, ar = r;
 	if (wantq) {
-		praat_new (aq.move(), Thing_getName (p1), U"_q");
+		praat_new (aq.transfer(), Thing_getName (p1), U"_q");
 	}
 	if (wantr) {
-		praat_new (ar.move(), Thing_getName (p1), U"_r");
+		praat_new (ar.transfer(), Thing_getName (p1), U"_r");
 	}
 END
 
@@ -5850,8 +5381,8 @@ DIRECT (Praat_ReportFloatingPointProperties)
 	MelderInfo_close ();
 END
 /*
-#ifdef HAVE_PULSEAUDIO
-void pulseAudioServer_report ();
+#ifdef USE_PULSEAUDIO
+void pulseAudioServer_report (void);
 DIRECT (Praat_ReportSoundServerProperties)
 	pulseAudioServer_report ();
 END
@@ -5867,7 +5398,7 @@ DO
 	double q = GET_REAL (U"Critical value");
 	REQUIRE (q > 0 , U"Critical value must be > 0.")
 	double val = NUMtukeyQ (q, GET_INTEGER (U"Number of means"), GET_REAL (U"Degrees of freedom"), GET_INTEGER (U"Number of rows") );
-	Melder_informationReal (val, nullptr);
+	Melder_informationReal (val, NULL);
 END
 
 FORM (Praat_getInvTukeyQ, U"Get invTukeyQ", 0)
@@ -5880,18 +5411,18 @@ DO
 	double p = GET_REAL (U"Probability");
 	REQUIRE (p >= 0 && p <= 1, U"Probability must be in (0,1).")
 	double val = NUMinvTukeyQ (p, GET_INTEGER (U"Number of means"), GET_REAL (U"Degrees of freedom"), GET_INTEGER (U"Number of rows"));
-	Melder_informationReal (val, nullptr);
+	Melder_informationReal (val, NULL);
 END
 
 /******************** Sound ****************************************/
 
-static void Sound_create_addCommonFields (UiForm dia, const char32 *endTime) {
+static void Sound_create_addCommonFields (void *dia, const char32 *endTime) {
 	REAL (U"Starting time (s)", U"0.0")
 	REAL (U"Finishing time (s)", endTime)
 	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
 }
 
-static void Sound_create_checkCommonFields (UiForm dia, double *startingTime, double *finishingTime,
+static void Sound_create_checkCommonFields (void *dia, double *startingTime, double *finishingTime,
         double *samplingFrequency) {
 	double numberOfSamples_real;
 	*startingTime = GET_REAL (U"Starting time");
@@ -5964,11 +5495,10 @@ FORM (Sound_and_Pitch_to_Spectrogram, U"Sound & Pitch: To Spectrogram", U"Sound
 DO
 	Sound me = FIRST (Sound);
 	Pitch thee = FIRST (Pitch);
-	autoSpectrogram him = Sound_and_Pitch_to_Spectrogram (me, thee, GET_REAL (U"Analysis window duration"),
+	praat_new (Sound_and_Pitch_to_Spectrogram (me, thee, GET_REAL (U"Analysis window duration"),
 		GET_REAL (U"Time step"), GET_REAL (U"Position of first filter"),
 		GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"),
-		GET_REAL (U"Relative bandwidth"));
-	praat_new (him.move(), my name, U"_", thy name);
+		GET_REAL (U"Relative bandwidth")), my name, U"_", thy name);
 END
 
 FORM (Sound_and_Pitch_changeGender, U"Sound & Pitch: Change gender", U"Sound & Pitch: Change gender...")
@@ -5980,9 +5510,9 @@ FORM (Sound_and_Pitch_changeGender, U"Sound & Pitch: Change gender", U"Sound & P
 DO
 	Sound me = FIRST (Sound);
 	Pitch p = FIRST (Pitch);
-	autoSound thee = Sound_and_Pitch_changeGender_old (me, p, GET_REAL (U"Formant shift ratio"),
-		GET_REAL (U"New pitch median"), GET_REAL (U"Pitch range factor"), GET_REAL (U"Duration factor"));
-	praat_new (thee.move(), my name, U"_", p->name);
+	praat_new (Sound_and_Pitch_changeGender_old (me, p, GET_REAL (U"Formant shift ratio"),
+			GET_REAL (U"New pitch median"), GET_REAL (U"Pitch range factor"), GET_REAL (U"Duration factor")),
+			my name, U"_", p->name);
 END
 
 FORM (Sound_and_Pitch_changeSpeaker, U"Sound & Pitch: Change speaker", U"Sound & Pitch: Change speaker...")
@@ -5994,9 +5524,8 @@ FORM (Sound_and_Pitch_changeSpeaker, U"Sound & Pitch: Change speaker", U"Sound &
 DO
 	Sound me = FIRST (Sound);
 	Pitch p = FIRST (Pitch);
-	autoSound thee = Sound_and_Pitch_changeSpeaker (me, p, GET_REAL (U"Multiply formants by"),
-		GET_REAL (U"Multiply pitch by"), GET_REAL (U"Multiply pitch range by"), GET_REAL (U"Multiply duration"));
-	praat_new (thee.move(), my name, U"_", p -> name);
+	praat_new (Sound_and_Pitch_changeSpeaker (me, p, GET_REAL (U"Multiply formants by"),
+		GET_REAL (U"Multiply pitch by"), GET_REAL (U"Multiply pitch range by"), GET_REAL (U"Multiply duration")), my name, U"_", p->name);
 END
 
 FORM (Sound_and_IntervalTier_cutPartsMatchingLabel, U"Sound & IntervalTier: Cut parts matching label", 0)
@@ -6006,8 +5535,7 @@ DO
 	const char32 *label = GET_STRING (U"Label");
 	Sound me = FIRST (Sound);
 	IntervalTier thee = FIRST (IntervalTier);
-	autoSound him = Sound_and_IntervalTier_cutPartsMatchingLabel (me, thee, label);
-	praat_new (him.move(), my name, U"_cut");
+	praat_new (Sound_and_IntervalTier_cutPartsMatchingLabel (me, thee, label), my name, U"_cut");
 END
 
 FORM (Sound_createFromGammaTone, U"Create a gammatone", U"Create Sound from gammatone...")
@@ -6036,9 +5564,9 @@ DO
 		Melder_throw (U"Bandwidth cannot be negative.\nPlease use a positive or zero bandwidth.");
 	}
 	autoSound sound = Sound_createGammaTone (startingTime, finishingTime, samplingFrequency, gamma, f, bandwidth,
-		GET_REAL (U"Initial phase"), GET_REAL (U"Addition factor"), GET_INTEGER (U"Scale amplitudes"));
-	//Sound_create_check (sound.get(), startingTime, finishingTime, samplingFrequency);//TODO
-	praat_new (sound.move(), GET_STRING (U"Name"));
+					GET_REAL (U"Initial phase"), GET_REAL (U"Addition factor"), GET_INTEGER (U"Scale amplitudes"));
+	//Sound_create_check (sound.peek(), startingTime, finishingTime, samplingFrequency);//TODO
+	praat_new (sound.transfer(), GET_STRING (U"Name"));
 END
 
 FORM (Sound_createFromShepardTone, U"Create a Shepard tone", U"Create Sound from Shepard tone...")
@@ -6059,10 +5587,10 @@ DO
 		Melder_throw (U"Amplitude range cannot be negative.\nPlease use a positive or zero amplitude range.");
 	}
 	autoSound sound = Sound_createShepardToneComplex (startingTime, finishingTime, samplingFrequency,
-		GET_REAL (U"Lowest frequency"), GET_INTEGER (U"Number of components"),
-		GET_REAL (U"Frequency change"), GET_REAL (U"Amplitude range"), octaveShiftFraction);
+					GET_REAL (U"Lowest frequency"), GET_INTEGER (U"Number of components"),
+					GET_REAL (U"Frequency change"), GET_REAL (U"Amplitude range"), octaveShiftFraction);
 	// Sound_create_check (sound, startingTime, finishingTime, samplingFrequency); //TODO
-	praat_new (sound.move(), GET_STRING (U"Name"));
+	praat_new (sound.transfer(), GET_STRING (U"Name"));
 END
 
 FORM (Sound_drawWhere, U"Sound: Draw where", U"Sound: Draw where...")
@@ -6103,7 +5631,7 @@ DO
 				  (my ny > 1 ? U"s." : U"."));
         }
         autoSound thee = Sound_extractChannel (me, ichannel);
-        Sound_play (thee.get(), 0, 0);
+        Sound_play (thee.peek(), 0, 0);
     }
 END
 
@@ -6144,8 +5672,7 @@ DO
         (s1 ? s2 : s1) = me;
     }
     Melder_assert (s1 && s2);
-	autoDTW thee = Sounds_to_DTW (s1, s2, analysisWidth, dt, band, slope);
-    praat_new (thee.move(), s1 -> name, U"_", s2 -> name);
+    praat_new (Sounds_to_DTW (s1, s2, analysisWidth, dt, band, slope), s1 -> name, U"_", s2 -> name);
 END
 
 FORM (Sound_to_TextGrid_detectSilences, U"Sound: To TextGrid (silences)", U"Sound: To TextGrid (silences)...")
@@ -6162,11 +5689,10 @@ FORM (Sound_to_TextGrid_detectSilences, U"Sound: To TextGrid (silences)", U"Soun
 DO
 	LOOP {
 		iam (Sound);
-		autoTextGrid thee = Sound_to_TextGrid_detectSilences (me, GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"),
-			GET_REAL (U"Silence threshold"), GET_REAL (U"Minimum silent interval duration"),
-			GET_REAL (U"Minimum sounding interval duration"), GET_STRING (U"Silent interval label"),
-			GET_STRING (U"Sounding interval label"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_TextGrid_detectSilences (me, GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"),
+		GET_REAL (U"Silence threshold"), GET_REAL (U"Minimum silent interval duration"),
+		GET_REAL (U"Minimum sounding interval duration"), GET_STRING (U"Silent interval label"),
+		GET_STRING (U"Sounding interval label")), my name);
 	}
 END
 
@@ -6179,7 +5705,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_copyChannelRanges (me, GET_STRING (U"Ranges"));
-		praat_new (thee.move(), my name, U"_channels");
+		praat_new (thee.transfer(), my name, U"_channels");
 	}
 END
 
@@ -6211,13 +5737,14 @@ DO
     const char32 *trimlabel = GET_STRING (U"Trim label");
 	LOOP {
 		iam (Sound);
-        autoTextGrid tg;
+        TextGrid tg = NULL;
 		autoSound thee = Sound_trimSilences (me, trimDuration, onlyAtStartAndEnd, minPitch, timeStep, silenceThreshold,
-			minSilenceDuration, minSoundingDuration, ( saveTextGrid ? &tg : nullptr ), trimlabel);
+			minSilenceDuration, minSoundingDuration, (saveTextGrid ? &tg : 0), trimlabel);
+        autoTextGrid atg = tg;
         if (saveTextGrid) {
-            praat_new (tg.move(), my name, U"_trimmed");
+            praat_new (atg.transfer(), my name, U"_trimmed");
         }
-		praat_new (thee.move(), my name, U"_trimmed");
+		praat_new (thee.transfer(), my name, U"_trimmed");
 	}
 END
 
@@ -6250,10 +5777,9 @@ FORM (Sound_to_BarkSpectrogram, U"Sound: To BarkSpectrogram", U"Sound: To BarkSp
 DO
 	LOOP {
 		iam (Sound);
-		autoBarkSpectrogram thee = Sound_to_BarkSpectrogram (me, GET_REAL (U"Window length"),
+		praat_new (Sound_to_BarkSpectrogram (me, GET_REAL (U"Window length"),
 			GET_REAL (U"Time step"), GET_REAL (U"Position of first filter"),
-			GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"));
-		praat_new (thee.move(), my name);
+			GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters")), my name);
 	}
 END
 
@@ -6296,10 +5822,11 @@ FORM (Sound_to_Spectrogram_pitchDependent, U"Sound: To Spectrogram (pitch-depend
 DO
 	LOOP {
 		iam (Sound);
-		autoSpectrogram thee = Sound_to_Spectrogram_pitchDependent (me, GET_REAL (U"Window length"), GET_REAL (U"Time step"), 
-			GET_REAL (U"Position of first filter"), GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"),
-			GET_REAL (U"Relative bandwidth"), GET_REAL (U"Minimum pitch"), GET_REAL (U"Maximum pitch"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_Spectrogram_pitchDependent (me, GET_REAL (U"Window length"),
+		GET_REAL (U"Time step"), GET_REAL (U"Position of first filter"),
+		GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"),
+		GET_REAL (U"Relative bandwidth"), GET_REAL (U"Minimum pitch"),
+		GET_REAL (U"Maximum pitch")), my name);
 	}
 END
 
@@ -6315,9 +5842,9 @@ FORM (Sound_to_MelFilter, U"Sound: To MelFilter", U"Sound: To MelFilter...")
 DO
 	LOOP {
 		iam (Sound);
-		autoMelFilter thee = Sound_to_MelFilter (me, GET_REAL (U"Window length"), GET_REAL (U"Time step"), 
-			GET_REAL (U"Position of first filter"), GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_MelFilter (me, GET_REAL (U"Window length"),
+		GET_REAL (U"Time step"), GET_REAL (U"Position of first filter"),
+		GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters")), my name);
 	}
 END
 
@@ -6332,9 +5859,9 @@ FORM (Sound_to_MelSpectrogram, U"Sound: To MelSpectrogram", U"Sound: To MelSpect
 DO
 	LOOP {
 		iam (Sound);
-		autoMelSpectrogram thee = Sound_to_MelSpectrogram (me, GET_REAL (U"Window length"), GET_REAL (U"Time step"), 
-			GET_REAL (U"Position of first filter"), GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_MelSpectrogram (me, GET_REAL (U"Window length"),
+		GET_REAL (U"Time step"), GET_REAL (U"Position of first filter"),
+		GET_REAL (U"Maximum frequency"), GET_REAL (U"Distance between filters")), my name);
 	}
 END
 
@@ -6345,8 +5872,7 @@ FORM (Sound_to_ComplexSpectrogram, U"Sound: To ComplexSpectrogram", 0)
 DO
 	LOOP {
 		iam (Sound);
-		autoComplexSpectrogram thee = Sound_to_ComplexSpectrogram (me, GET_REAL (U"Window length"), GET_REAL (U"Time step"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_ComplexSpectrogram (me, GET_REAL (U"Window length"), GET_REAL (U"Time step")), my name);
 	}
 END
 
@@ -6373,10 +5899,9 @@ DO
 	}
 	LOOP {
 		iam (Sound);
-		autoPitch thee = Sound_to_Pitch_shs (me, GET_REAL (U"Time step"), minimumPitch, fmax, ceiling,
+		praat_new (Sound_to_Pitch_shs (me, GET_REAL (U"Time step"), minimumPitch, fmax, ceiling,
 		GET_INTEGER (U"Max. number of subharmonics"), GET_INTEGER (U"Max. number of candidates"),
-		GET_REAL (U"Compression factor"), GET_INTEGER (U"Number of points per octave"));
-		praat_new (thee.move(), my name);
+		GET_REAL (U"Compression factor"), GET_INTEGER (U"Number of points per octave")), my name);
 	}
 END
 
@@ -6428,10 +5953,10 @@ DO
 	LOOP {
 		iam (Sound);
 		praat_new (Sound_to_KlattGrid_simple (me, GET_REAL (U"Time step"),
-			GET_INTEGER (U"Max. number of formants"), GET_REAL (U"Maximum formant"),
-			GET_REAL (U"Window length"), GET_REAL (U"Pre-emphasis from"),
-			GET_REAL (U"Pitch floor"), GET_REAL (U"Pitch ceiling"),
-			GET_REAL (U"Minimum pitch"), GET_INTEGER (U"Subtract mean")), my name);
+		GET_INTEGER (U"Max. number of formants"), GET_REAL (U"Maximum formant"),
+		GET_REAL (U"Window length"), GET_REAL (U"Pre-emphasis from"),
+		GET_REAL (U"Pitch floor"), GET_REAL (U"Pitch ceiling"),
+		GET_REAL (U"Minimum pitch"), GET_INTEGER (U"Subtract mean")), my name);
 	}
 END
 
@@ -6453,9 +5978,9 @@ DO
 	}
 	LOOP {
 		iam (Sound);
-		autoPitch thee = Sound_to_Pitch_SPINET (me, GET_REAL (U"Time step"), GET_REAL (U"Window length"), fmin, fmax, 
-			GET_INTEGER (U"Number of filters"), GET_REAL (U"Ceiling"), GET_INTEGER (U"Max. number of candidates"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_Pitch_SPINET (me, GET_REAL (U"Time step"), GET_REAL (U"Window length"),
+		fmin, fmax, GET_INTEGER (U"Number of filters"),
+		GET_REAL (U"Ceiling"), GET_INTEGER (U"Max. number of candidates")), my name);
 	}
 END
 
@@ -6474,9 +5999,8 @@ DO
 		if (channel > my ny) {
 			channel = 1;
 		}
-		autoPolygon thee = Sound_to_Polygon (me, channel, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_REAL (U"Connection y-value"));
-		praat_new (thee.move(), my name);
+		praat_new (Sound_to_Polygon (me, channel, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_REAL (U"Connection y-value")), my name);
 	}
 END
 
@@ -6491,15 +6015,14 @@ FORM (Sounds_to_Polygon_enclosed, U"Sounds: To Polygon (enclosed)", U"Sounds: To
 	OK
 DO
 	long channel = GET_INTEGER (U"Channel");
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = 0, s2 = 0;
 	LOOP {
 		iam (Sound);
 		(s1 ? s2 : s1) = me;
 	}
 	Melder_assert (s1 && s2);
-	autoPolygon thee = Sounds_to_Polygon_enclosed (s1, s2, channel, GET_REAL (U"left Time range"),
-		GET_REAL (U"right Time range"), GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"));
-	praat_new (thee.move(), s1->name, U"_", s2->name);
+	praat_new (Sounds_to_Polygon_enclosed (s1, s2, channel, GET_REAL (U"left Time range"),
+		GET_REAL (U"right Time range"), GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range")), s1->name, U"_", s2->name);
 END
 
 FORM (Sound_filterByGammaToneFilter4, U"Sound: Filter (gammatone)", U"Sound: Filter (gammatone)...")
@@ -6509,8 +6032,7 @@ FORM (Sound_filterByGammaToneFilter4, U"Sound: Filter (gammatone)", U"Sound: Fil
 DO
 	LOOP {
 		iam (Sound);
-		autoSound thee = Sound_filterByGammaToneFilter4 (me, GET_REAL (U"Centre frequency"), GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name, U"_filtered");
+		praat_new (Sound_filterByGammaToneFilter4 (me, GET_REAL (U"Centre frequency"), GET_REAL (U"Bandwidth")), my name, U"_filtered");
 	}
 END
 
@@ -6531,7 +6053,7 @@ DO
 		autoSound thee = Sound_removeNoise (me, GET_REAL (U"left Noise time range"), GET_REAL (U"right Noise time range"),
 			GET_REAL (U"Window length"), GET_REAL (U"left Filter frequency range"),
 			GET_REAL (U"right Filter frequency range"), GET_REAL (U"Smoothing"), GET_INTEGER (U"Noise reduction method"));
-		praat_new (thee.move(), my name, U"_denoised");
+		praat_new (thee.transfer(), my name, U"_denoised");
 	}
 END
 
@@ -6553,9 +6075,9 @@ DO
 	}
 	LOOP {
 		iam (Sound);
-		autoSound thee = Sound_changeSpeaker (me, minimumPitch, maximumPitch, GET_REAL (U"Multiply formants by"), 
-			GET_REAL (U"Multiply pitch by"), GET_REAL (U"Multiply pitch range by"), GET_REAL (U"Multiply duration by"));
-		praat_new (thee.move(), my name, U"_changeSpeaker");
+		praat_new (Sound_changeSpeaker (me, minimumPitch, maximumPitch,
+		GET_REAL (U"Multiply formants by"), GET_REAL (U"Multiply pitch by"),
+		GET_REAL (U"Multiply pitch range by"), GET_REAL (U"Multiply duration by")), my name, U"_changeSpeaker");
 	}
 END
 
@@ -6581,9 +6103,9 @@ DO
 	}
 	LOOP {
 		iam (Sound);
-		autoSound thee = Sound_changeGender_old (me, minimumPitch, maximumPitch, GET_REAL (U"Formant shift ratio"), 
-			GET_REAL (U"New pitch median"), pitchrf, GET_REAL (U"Duration factor"));
-		praat_new (thee.move(), my name, U"_changeGender");
+		praat_new (Sound_changeGender_old (me, minimumPitch, maximumPitch,
+		GET_REAL (U"Formant shift ratio"), GET_REAL (U"New pitch median"),
+		pitchrf, GET_REAL (U"Duration factor")), my name, U"_changeGender");
 	}
 END
 
@@ -6632,18 +6154,15 @@ DO
 END
 
 FORM_READ2 (Sound_readFromRawFileLE, U"Read Sound from raw Little Endian file", 0, true) {
-	autoSound thee = Sound_readFromRawFile (file, nullptr, 16, 1, 0, 0, 16000);
-	praat_new (thee.move(), MelderFile_name (file));
+	praat_new (Sound_readFromRawFile (file, NULL, 16, 1, 0, 0, 16000), MelderFile_name (file));
 END2 }
 
 FORM_READ2 (Sound_readFromRawFileBE, U"Read Sound from raw 16-bit Little Endian file", 0, true) {
-	autoSound thee = Sound_readFromRawFile (file, nullptr, 16, 0, 0, 0, 16000);
-	praat_new (thee.move(), MelderFile_name (file));
+	praat_new (Sound_readFromRawFile (file, NULL, 16, 0, 0, 0, 16000), MelderFile_name (file));
 END2 }
 
 FORM_READ2 (KlattTable_readFromRawTextFile, U"KlattTable_readFromRawTextFile", 0, true) {
-	autoKlattTable thee = KlattTable_readFromRawTextFile (file);
-	praat_new (thee.move(), MelderFile_name (file));
+	praat_new (KlattTable_readFromRawTextFile (file), MelderFile_name (file));
 END2 }
 
 /************ Spectrograms *********************************************/
@@ -6660,8 +6179,7 @@ DO
 		(s1 ? s2 : s1) = me;
 	}
 	Melder_assert (s1 && s2);
-	autoDTW thee = Spectrograms_to_DTW (s1, s2, begin, end, slope, 1);
-	praat_new (thee.move(), s1->name, U"_", s2->name);
+	praat_new (Spectrograms_to_DTW (s1, s2, begin, end, slope, 1), s1->name, U"_", s2->name);
 END
 
 /**************** Spectrum *******************************************/
@@ -6730,7 +6248,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoSpectrum thee = Spectrum_shiftFrequencies (me, shiftBy, newMaximumFrequency, precision);
-		praat_new (thee.move(), my name, (shiftBy < 0 ? U"_m" : U"_"), (long) floor (shiftBy));
+		praat_new (thee.transfer(), my name, (shiftBy < 0 ? U"_m" : U"_"), (long) floor (shiftBy));
 	}
 END
 
@@ -6744,7 +6262,7 @@ DIRECT (Spectra_multiply)
 	praat_new (Spectra_multiply (s1, s2), Thing_getName (s1), U"_x_", Thing_getName (s2));
 END
 
-FORM (Spectrum_resample, U"Spectrum: Resample", nullptr)
+FORM (Spectrum_resample, U"Spectrum: Resample", 0)
 	NATURAL (U"New number of frequencies", U"256")
 	OK
 DO
@@ -6752,16 +6270,16 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoSpectrum thee = Spectrum_resample (me, numberOfFrequencies);
-		praat_new (thee.move(), my name, U"_", numberOfFrequencies);
+		praat_new (thee.transfer(), my name, U"_", numberOfFrequencies);
 	}
 END
 
-FORM (Spectrum_compressFrequencyDomain, U"Spectrum: Compress frequency domain", nullptr)
+FORM (Spectrum_compressFrequencyDomain, U"Spectrum: Compress frequency domain", 0)
 	POSITIVE (U"Maximum frequency (Hz)", U"5000.0")
 	INTEGER (U"Interpolation depth", U"50")
 	RADIO (U"Interpolation scale", 1)
-		RADIOBUTTON (U"Linear")
-		RADIOBUTTON (U"Logarithmic")
+	RADIOBUTTON (U"Linear")
+	RADIOBUTTON (U"Logarithmic")
 	OK
 DO
 	double maximumFrequency = GET_REAL (U"Maximum frequency");
@@ -6770,7 +6288,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoSpectrum thee = Spectrum_compressFrequencyDomain (me, maximumFrequency, interpolationDepth, freqScale, 1);
-		praat_new (thee.move(), my name, U"_", (long) floor (maximumFrequency));
+		praat_new (thee.transfer(), my name, U"_", (long) floor (maximumFrequency));
 	}
 END
 
@@ -6784,16 +6302,14 @@ END
 DIRECT (Spectrum_to_PowerCepstrum)
 	LOOP {
 		iam (Spectrum);
-		autoPowerCepstrum thee = Spectrum_to_PowerCepstrum (me);
-		praat_new (thee.move(), my name);
+		praat_new (Spectrum_to_PowerCepstrum (me), my name);
 	}
 END
 
 DIRECT (Spectrum_to_Cepstrum)
 	LOOP {
 		iam (Spectrum);
-		autoCepstrum thee = Spectrum_to_Cepstrum (me);
-		praat_new (thee.move(), my name);
+		praat_new (Spectrum_to_Cepstrum (me), my name);
 	}
 END
 
@@ -6804,12 +6320,12 @@ DIRECT (SpeechSynthesizer_help)
 END
 
 FORM (SpeechSynthesizer_create, U"Create SpeechSynthesizer", U"Create SpeechSynthesizer...")
-	long prefVoice = Strings_findString (espeakdata_voices_names.get(), U"English");
+	long prefVoice = Strings_findString (espeakdata_voices_names, U"English");
 	if (prefVoice == 0) {
 		prefVoice = 1;
 	}
 	LIST (U"Language", espeakdata_voices_names -> numberOfStrings, (const char32 **) espeakdata_voices_names -> strings, prefVoice)
-	long prefVariant = Strings_findString (espeakdata_variants_names.get(), U"default");
+	long prefVariant = Strings_findString (espeakdata_variants_names, U"default");
 	LIST (U"Voice variant", espeakdata_variants_names -> numberOfStrings,
 		(const char32 **) espeakdata_variants_names -> strings, prefVariant)
 	OK
@@ -6818,7 +6334,7 @@ DO
 	long variantIndex = GET_INTEGER (U"Voice variant"); // default is not in the list!
 	autoSpeechSynthesizer me = SpeechSynthesizer_create (espeakdata_voices_names -> strings[voiceIndex],
 		espeakdata_variants_names -> strings[variantIndex]);
-    praat_new (me.move(),  espeakdata_voices_names -> strings[voiceIndex], U"_",
+    praat_new (me.transfer(),  espeakdata_voices_names -> strings[voiceIndex], U"_",
         espeakdata_variants_names -> strings[variantIndex]);
 END
 
@@ -6835,22 +6351,22 @@ END
 
 FORM (SpeechSynthesizer_to_Sound, U"SpeechSynthesizer: To Sound", U"SpeechSynthesizer: To Sound...")
 	TEXTFIELD (U"Text", U"This is some text.")
-	BOOLEAN (U"Create TextGrid with annotations", false);
+	BOOLEAN (U"Create TextGrid with annotations", 0);
 	OK
 DO
 	const char32 *text = GET_STRING (U"Text");
 	bool createTextGrid = GET_INTEGER (U"Create TextGrid with annotations");
 	LOOP {
 		iam (SpeechSynthesizer);
-		autoTextGrid tg;
-		autoTable t;
-		autoSound thee = SpeechSynthesizer_to_Sound (me, text, (createTextGrid ? & tg : nullptr), (Melder_debug == -2 ? & t : nullptr ));
-		praat_new (thee.move(), my name);
+		TextGrid tg = 0; Table t = 0;
+		autoSound thee = SpeechSynthesizer_to_Sound (me, text, (createTextGrid ? &tg : NULL), (Melder_debug == -2 ? &t : NULL));
+		autoTextGrid atg = tg; autoTable atr = t;
+		praat_new (thee.transfer(), my name);
 		if (createTextGrid) {
-			praat_new (tg.move(), my name);
+			praat_new (atg.transfer(), my name);
 		}
 		if (Melder_debug == -2) {
-			praat_new (t.move(), my name);
+			praat_new (atr.transfer(), my name);
 		}
 	}
 END
@@ -6871,11 +6387,11 @@ END
 
 FORM (SpeechSynthesizer_setTextInputSettings, U"SpeechSynthesizer: Set text input settings", U"SpeechSynthesizer: Set text input settings...")
 	OPTIONMENU (U"Input text format is", 1)
-		OPTION (U"Text only")
-		OPTION (U"Phoneme codes only")
-		OPTION (U"Mixed with tags")
+	OPTION (U"Text only")
+	OPTION (U"Phoneme codes only")
+	OPTION (U"Mixed with tags")
 	OPTIONMENU (U"Input phoneme codes are", 1)
-		OPTION (U"Kirshenbaum_espeak")
+	OPTION (U"Kirshenbaum_espeak")
 	OK
 DO
 	int inputTextFormat = GET_INTEGER (U"Input text format is");
@@ -6887,15 +6403,15 @@ DO
 END
 
 FORM (SpeechSynthesizer_setSpeechOutputSettings, U"SpeechSynthesizer: Set speech output settings", U"SpeechSynthesizer: Set speech output settings...")
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	REAL (U"Gap between words (s)", U"0.01")
 	INTEGER (U"Pitch adjustment (0-99)", U"50")
 	INTEGER (U"Pitch range (0-99)", U"50");
 	NATURAL (U"Words per minute (80-450)", U"175");
-	BOOLEAN (U"Estimate rate from data", true);
+	BOOLEAN (U"Estimate rate from data", 1);
 	OPTIONMENU (U"Output phoneme codes are", 2)
-		OPTION (U"Kirshenbaum_espeak")
-		OPTION (U"IPA")
+	OPTION (U"Kirshenbaum_espeak")
+	OPTION (U"IPA")
 	OK
 DO
 	double samplingFrequency = GET_REAL (U"Sampling frequency");
@@ -6919,25 +6435,25 @@ END
 
 /************* SpeechSynthesizer and TextGrid ************************/
 
-FORM (SpeechSynthesizer_and_TextGrid_to_Sound, U"SpeechSynthesizer & TextGrid: To Sound", nullptr)
+FORM (SpeechSynthesizer_and_TextGrid_to_Sound, U"SpeechSynthesizer & TextGrid: To Sound", 0)
 	NATURAL (U"Tier number", U"1")
 	NATURAL (U"Interval number", U"1")
-	BOOLEAN (U"Create TextGrid with annotations", false);
+	BOOLEAN (U"Create TextGrid with annotations", 0);
 	OK
 DO
-	bool createAnnotations = GET_INTEGER (U"Create TextGrid with annotations");
+	bool createTextGrid = GET_INTEGER (U"Create TextGrid with annotations");
 	SpeechSynthesizer me = FIRST (SpeechSynthesizer);
-	TextGrid thee = FIRST (TextGrid);
-	autoTextGrid annotations;
+	TextGrid thee = FIRST (TextGrid), tg = 0;
 	autoSound him = SpeechSynthesizer_and_TextGrid_to_Sound (me, thee, GET_INTEGER (U"Tier number"),
-		GET_INTEGER (U"Interval number"), ( createAnnotations ? & annotations : nullptr ));
-	praat_new (him.move(), my name);
-	if (createAnnotations) {
-		praat_new (annotations.move(), my name);
+		GET_INTEGER (U"Interval number"), (createTextGrid ? &tg : NULL));
+	autoTextGrid atg = tg;
+	praat_new (him.transfer(), my name);
+	if (createTextGrid) {
+		praat_new (atg.transfer(), my name);
 	}
 END
 
-FORM (SpeechSynthesizer_and_Sound_and_TextGrid_align, U"SpeechSynthesizer & Sound & TextGrid: To TextGrid (align)", nullptr)
+FORM (SpeechSynthesizer_and_Sound_and_TextGrid_align, U"SpeechSynthesizer & Sound & TextGrid: To TextGrid (align)", 0)
 	NATURAL (U"Tier number", U"1")
 	NATURAL (U"From interval number", U"1")
 	NATURAL (U"To interval number", U"1")
@@ -6955,10 +6471,10 @@ DO
 	autoTextGrid thee = SpeechSynthesizer_and_Sound_and_TextGrid_align (synth, s, tg,
 		GET_INTEGER (U"Tier number"), GET_INTEGER (U"From interval number"),
 		GET_INTEGER (U"To interval number"), silenceThreshold, minSilenceDuration, minSoundingDuration);
-	praat_new (thee.move(), s -> name, U"_aligned");
+	praat_new (thee.transfer(), s -> name, U"_aligned");
 END
 
-FORM (SpeechSynthesizer_and_Sound_and_TextGrid_align2, U"SpeechSynthesizer & Sound & TextGrid: To TextGrid (align, trim)", nullptr)
+FORM (SpeechSynthesizer_and_Sound_and_TextGrid_align2, U"SpeechSynthesizer & Sound & TextGrid: To TextGrid (align, trim)", 0)
     NATURAL (U"Tier number", U"1")
     NATURAL (U"From interval number", U"1")
     NATURAL (U"To interval number", U"1")
@@ -6981,17 +6497,17 @@ DO
     autoTextGrid thee = SpeechSynthesizer_and_Sound_and_TextGrid_align2 (synth, s, tg,
         GET_INTEGER (U"Tier number"), GET_INTEGER (U"From interval number"),
         GET_INTEGER (U"To interval number"), silenceThreshold, minSilenceDuration, minSoundingDuration, trimDuration);
-    praat_new (thee.move(), s -> name, U"_aligned");
+    praat_new (thee.transfer(), s -> name, U"_aligned");
 END
 
 /************* Spline *************************************************/
 
-FORM (Spline_drawKnots, U"Spline: Draw knots", nullptr)
+FORM (Spline_drawKnots, U"Spline: Draw knots", 0)
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	LOOP {
@@ -7029,7 +6545,7 @@ END
 
 DIRECT (SSCP_help) Melder_help (U"SSCP"); END
 
-FORM (SSCP_drawConfidenceEllipse, U"SSCP: Draw confidence ellipse", nullptr)
+FORM (SSCP_drawConfidenceEllipse, U"SSCP: Draw confidence ellipse", 0)
 	POSITIVE (U"Confidence level", U"0.95")
 	NATURAL (U"Index for X-axis", U"1")
 	NATURAL (U"Index for Y-axis", U"2")
@@ -7037,16 +6553,16 @@ FORM (SSCP_drawConfidenceEllipse, U"SSCP: Draw confidence ellipse", nullptr)
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (SSCP);
 		SSCP_drawConcentrationEllipse (me, GRAPHICS, GET_REAL (U"Confidence level"), 1,
-			GET_INTEGER (U"Index for X-axis"), GET_INTEGER (U"Index for Y-axis"),
-			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
+		GET_INTEGER (U"Index for X-axis"), GET_INTEGER (U"Index for Y-axis"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -7058,16 +6574,16 @@ FORM (SSCP_drawSigmaEllipse, U"SSCP: Draw sigma ellipse", U"SSCP: Draw sigma ell
 	REAL (U"right Horizontal range", U"0.0")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (SSCP);
 		SSCP_drawConcentrationEllipse (me, GRAPHICS, GET_REAL (U"Number of sigmas"), 0,
-			GET_INTEGER (U"Index for X-axis"), GET_INTEGER (U"Index for Y-axis"),
-			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
+		GET_INTEGER (U"Index for X-axis"), GET_INTEGER (U"Index for Y-axis"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -7101,7 +6617,7 @@ DO
 	LOOP {
 		iam (SSCP);
 		Melder_information (SSCP_getFractionVariation (me,
-			GET_INTEGER (U"From dimension"), GET_INTEGER (U"To dimension")));
+		GET_INTEGER (U"From dimension"), GET_INTEGER (U"To dimension")));
 	}
 END
 
@@ -7167,19 +6683,20 @@ FORM (SSCP_testDiagonality_bartlett, U"SSCP: Get diagonality (bartlett)", U"SSCP
 	NATURAL (U"Number of contraints", U"1")
 	OK
 DO
-	double chisq, p, df;
+	double chisq, p;
 	long nc = GET_INTEGER (U"Number of contraints");
 	LOOP {
 		iam (SSCP);
-		SSCP_testDiagonality_bartlett (me, nc, & chisq, & p, & df);
-		Melder_information (p, U" (=probability for chisq = ", chisq, U" and ndf = ", df, U")");
+		SSCP_testDiagonality_bartlett (me, nc, &chisq, &p);
+		Melder_information (p, U" (=probability for chisq = ", chisq,
+		U" and ndf = ", my numberOfRows * (my numberOfRows - 1) / 2, U")");
 	}
 END
 
 DIRECT (SSCP_to_Correlation)
 	LOOP {
 		iam (SSCP);
-		praat_new (SSCP_to_Correlation (me), U"");
+		praat_new (SSCP_to_Correlation (me), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 	}
 END
 
@@ -7190,53 +6707,45 @@ DO
 	long noc = GET_INTEGER (U"Number of constraints");
 	LOOP {
 		iam (SSCP);
-		praat_new (SSCP_to_Covariance (me, noc), U"");
+		praat_new (SSCP_to_Covariance (me, noc), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 	}
 END
 
 DIRECT (SSCP_to_PCA)
 	LOOP {
 		iam (SSCP);
-		praat_new (SSCP_to_PCA (me), U"");
+		praat_new (SSCP_to_PCA (me), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 	}
 END
 
 /******************* Strings ****************************/
 DIRECT (Strings_createFromEspeakVoices)
-	//praat_new (nullptr, U"voices"); // TODO ??
+	praat_new (NULL, U"voices");
 END
 
-FORM (Strings_createAsCharacters, U"Strings: Create as characters", nullptr)
+FORM (Strings_createAsCharacters, U"Strings: Create as characters", 0)
 	SENTENCE (U"Text", U"intention")
 	OK
 DO
-	autoStrings thee = Strings_createAsCharacters (GET_STRING (U"Text"));
-	praat_new (thee.move(), U"");
+	praat_new (Strings_createAsCharacters (GET_STRING (U"Text")), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
-FORM (Strings_createAsTokens, U"Strings: Create as tokens", nullptr)
+FORM (Strings_createAsTokens, U"Strings: Create as tokens", 0)
 	SENTENCE (U"Text", U"There are seven tokens in this text")
 	OK
 DO
-	autoStrings thee = Strings_createAsTokens (GET_STRING (U"Text"));
-	praat_new (thee.move(), U"");
+	praat_new (Strings_createAsTokens (GET_STRING (U"Text")), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
 DIRECT (Strings_append)
-	OrderedOf<structStrings> list;
-	LOOP {
-		iam (Strings);
-		list. addItem_ref (me);
-	}
-	autoStrings thee = Strings_append (& list);
-	praat_new (thee.move(), U"appended");
+	autoCollection set = praat_getSelectedObjects ();
+	praat_new (Strings_append (set.transfer()), U"appended");
 END
 
 DIRECT (Strings_to_Categories)
 	LOOP {
 		iam (Strings);
-		autoCategories thee = Strings_to_Categories (me);
-		praat_new (thee.move(), U"");
+		praat_new (Strings_to_Categories (me), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 	}
 END
 
@@ -7252,51 +6761,47 @@ DO
 	long nmatches, nstringmatches;
 	LOOP {
 		iam (Strings);
-		autoStrings thee = Strings_change (me, GET_STRING (U"Search"), GET_STRING (U"Replace"),
-		GET_INTEGER (U"Replace limit"), &nmatches, &nstringmatches, GET_INTEGER (U"Search and replace are") - 1);
-		praat_new (thee.move());
+		praat_new (Strings_change (me, GET_STRING (U"Search"), GET_STRING (U"Replace"),
+		GET_INTEGER (U"Replace limit"), &nmatches, &nstringmatches, GET_INTEGER (U"Search and replace are") - 1), 0);
 	}
 END
 
-FORM (Strings_extractPart, U"Strings: Extract part", nullptr)
+FORM (Strings_extractPart, U"Strings: Extract part", U"")
 	NATURAL (U"From index", U"1")
 	NATURAL (U"To index", U"1")
 	OK
 DO
 	LOOP {
 		iam (Strings);
-		autoStrings thee = Strings_extractPart (me, GET_INTEGER (U"From index"), GET_INTEGER (U"To index"));
-		praat_new (thee.move(), my name, U"_part");
+		praat_new (Strings_extractPart (me, GET_INTEGER (U"From index"), GET_INTEGER (U"To index")), my name, U"_part");
 	}
 END
 
 DIRECT (Strings_to_EditDistanceTable)
-	Strings s1 = nullptr, s2 = nullptr;
+	Strings s1 = NULL, s2 = NULL;
 	LOOP {
 		iam(Strings);
 		(s1 ? s2 : s1) = me;
 	}
-	Melder_assert (s1 && s2);
+	Melder_assert (s1 != NULL && s2 != NULL);
 	autoEditDistanceTable table = EditDistanceTable_create (s1, s2);
-	praat_new (table.move(), s1 -> name, U"_", s2 -> name);
+	praat_new (table.transfer(), s1 -> name, U"_", s2 -> name);
 END
 
 FORM (Strings_to_Permutation, U"Strings: To Permutation", U"Strings: To Permutation...")
-	BOOLEAN (U"Sort", true)
+	BOOLEAN (U"Sort", 1)
 	OK
 DO
 	LOOP {
 		iam (Strings);
-		autoPermutation thee = Strings_to_Permutation (me, GET_INTEGER (U"Sort"));
-		praat_new (thee.move(), my name);
+		praat_new (Strings_to_Permutation (me, GET_INTEGER (U"Sort")), my name);
 	}
 END
 
 DIRECT (Strings_and_Permutation_permuteStrings)
 	Strings me = FIRST (Strings);
 	Permutation p = FIRST (Permutation);
-	autoStrings thee = Strings_and_Permutation_permuteStrings (me, p);
-	praat_new (thee.move(), my name, U"_", p->name);
+	praat_new (Strings_and_Permutation_permuteStrings (me, p), my name, U"_", p->name);
 END
 
 FORM (SVD_to_TableOfReal, U"SVD: To TableOfReal", U"SVD: To TableOfReal...")
@@ -7306,32 +6811,28 @@ FORM (SVD_to_TableOfReal, U"SVD: To TableOfReal", U"SVD: To TableOfReal...")
 DO
 	LOOP {
 		iam (SVD);
-		autoTableOfReal thee = SVD_to_TableOfReal (me, GET_INTEGER (U"First component"), GET_INTEGER (U"Last component"));
-		praat_new (thee.move(), my name);
+		praat_new (SVD_to_TableOfReal (me, GET_INTEGER (U"First component"), GET_INTEGER (U"Last component")), my name);
 	}
 END
 
 DIRECT (SVD_extractLeftSingularVectors)
 	LOOP {
 		iam (SVD);
-		autoTableOfReal thee = SVD_extractLeftSingularVectors (me);
-		praat_new (thee.move(), my name, U"_lsv");
+		praat_new (SVD_extractLeftSingularVectors (me), Thing_getName (me), U"_lsv");
 	}
 END
 
 DIRECT (SVD_extractRightSingularVectors)
 	LOOP {
 		iam (SVD);
-		autoTableOfReal thee = SVD_extractRightSingularVectors (me);
-		praat_new (thee.move(), my name, U"_rsv");
+		praat_new (SVD_extractRightSingularVectors (me), Thing_getName (me), U"_rsv");
 	}
 END
 
 DIRECT (SVD_extractSingularValues)
 	LOOP {
 		iam (SVD);
-		autoTableOfReal thee = SVD_extractSingularValues (me);
-		praat_new (thee.move(), my name, U"_sv");
+		praat_new (SVD_extractSingularValues (me), Thing_getName (me), U"_sv");
 	}
 END
 
@@ -7349,7 +6850,7 @@ DIRECT (Table_createFromWeeninkData)
 	praat_new (Table_createFromWeeninkData (), U"m10w10c10");
 END
 
-FORM (Table_scatterPlotWhere, U"Table: Scatter plot where", nullptr)
+FORM (Table_scatterPlotWhere, U"Table: Scatter plot where", 0)
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -7358,7 +6859,7 @@ FORM (Table_scatterPlotWhere, U"Table: Scatter plot where", nullptr)
 	REAL (U"right Vertical range", U"0.0 (= auto)")
 	WORD (U"Column with marks", U"")
 	NATURAL (U"Font size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"Use only data from rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
 	OK
@@ -7370,14 +6871,14 @@ DO
 		long ycolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Vertical column"));
 		long markColumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Column with marks"));
 		autoTable thee = Table_extractRowsWhere (me,  GET_STRING (U"Formula"), interpreter);
-		Table_scatterPlot (thee.get(), GRAPHICS, xcolumn, ycolumn,
+		Table_scatterPlot (thee.peek(), GRAPHICS, xcolumn, ycolumn,
 			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
 			markColumn, GET_INTEGER (U"Font size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (Table_scatterPlotMarkWhere, U"Scatter plot where (marks)", nullptr)
+FORM (Table_scatterPlotMarkWhere, U"Scatter plot where (marks)", 0)
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -7385,7 +6886,7 @@ FORM (Table_scatterPlotMarkWhere, U"Scatter plot where (marks)", nullptr)
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0 (= auto)")
 	POSITIVE (U"Mark size (mm)", U"1.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	SENTENCE (U"Mark string (+xo.)", U"+")
 	LABEL (U"", U"Use only data from rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
@@ -7397,7 +6898,7 @@ DO
 		long xcolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Horizontal column"));
 		long ycolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Vertical column"));
 		autoTable thee = Table_extractRowsWhere (me,  GET_STRING (U"Formula"), interpreter);
-		Table_scatterPlot_mark (thee.get(), GRAPHICS, xcolumn, ycolumn,
+		Table_scatterPlot_mark (thee.peek(), GRAPHICS, xcolumn, ycolumn,
 			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
 			GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
@@ -7415,7 +6916,7 @@ FORM (Table_barPlotWhere, U"Table: Bar plot where", U"Table: Bar plot where...")
 	REAL (U"Distance between bars within group", U"0.0")
 	SENTENCE (U"Colours", U"Grey")
 	REAL (U"Label text angle (degrees)", U"0.0");
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"Use only data from rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"row >= 1 and row <= 8")
 	OK
@@ -7439,7 +6940,7 @@ FORM (Table_LineGraphWhere, U"Table: Line graph where", U"Table: Line graph wher
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
 	WORD (U"Text", U"+")
 	REAL (U"Label text angle (degrees)", U"0.0");
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"Use only data from rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; (= everything)")
 	OK
@@ -7456,12 +6957,12 @@ DO
 	}
 END
 
-FORM (Table_boxPlots, U"Table: Box plots", nullptr)
+FORM (Table_boxPlots, U"Table: Box plots", 0)
 	WORD (U"Data columns", U"")
 	WORD (U"Factor column", U"")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	OK
 DO
 	autoPraatPicture picture;
@@ -7480,7 +6981,7 @@ FORM (Table_boxPlotsWhere, U"Table: Box plots where", U"Table: Box plots where..
 	WORD (U"Factor column", U"")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	LABEL (U"", U"Use only data in rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
 	OK
@@ -7497,7 +6998,7 @@ DO
 	}
 END
 
-FORM (Table_drawEllipseWhere, U"Draw ellipse (standard deviation)", nullptr)
+FORM (Table_drawEllipseWhere, U"Draw ellipse (standard deviation)", 0)
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -7505,7 +7006,7 @@ FORM (Table_drawEllipseWhere, U"Draw ellipse (standard deviation)", nullptr)
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0 (= auto)")
 	POSITIVE (U"Number of sigmas", U"2.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"Use only data in rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
 	OK
@@ -7516,14 +7017,14 @@ DO
 		long xcolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Horizontal column"));
 		long ycolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Vertical column"));
 		autoTable thee = Table_extractRowsWhere (me, GET_STRING (U"Formula"), interpreter);
-		Table_drawEllipse_e (thee.get(), GRAPHICS, xcolumn, ycolumn,
+		Table_drawEllipse_e (thee.peek(), GRAPHICS, xcolumn, ycolumn,
 			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
 			GET_REAL (U"Number of sigmas"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (Table_drawEllipses, U"Table: Draw ellipses", nullptr)
+FORM (Table_drawEllipses, U"Table: Draw ellipses", 0)
 	WORD (U"Horizontal column", U"F2")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -7533,7 +7034,7 @@ FORM (Table_drawEllipses, U"Table: Draw ellipses", nullptr)
 	WORD (U"Factor column", U"Vowel")
 	POSITIVE (U"Number of sigmas", U"1.0")
 	NATURAL (U"Font size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -7548,7 +7049,7 @@ DO
 	}
 END
 
-FORM (Table_drawEllipsesWhere, U"Table: Draw ellipses where", nullptr)
+FORM (Table_drawEllipsesWhere, U"Table: Draw ellipses where", 0)
 	WORD (U"Horizontal column", U"F2")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -7558,7 +7059,7 @@ FORM (Table_drawEllipsesWhere, U"Table: Draw ellipses where", nullptr)
 	WORD (U"Factor column", U"Vowel")
 	POSITIVE (U"Number of sigmas", U"1.0")
 	NATURAL (U"Font size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"Use only data in rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
 	
@@ -7583,7 +7084,7 @@ FORM (Table_normalProbabilityPlot, U"Table: Normal probability plot", U"Table: N
 	REAL (U"Number of sigmas", U"0.0")
 	NATURAL (U"Label size", U"12")
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	OK
 DO
 	autoPraatPicture picture;
@@ -7602,7 +7103,7 @@ FORM (Table_normalProbabilityPlotWhere, U"Table: Normal probability plot where",
 	REAL (U"Number of sigmas", U"0.0")
 	NATURAL (U"Label size", U"12")
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	LABEL (U"", U"Use only data in rows where the following condition holds:")
 	TEXTFIELD (U"Formula", U"1; self$[\"gender\"]=\"male\"")
 	OK
@@ -7612,7 +7113,7 @@ DO
 		iam (Table);
 		long column = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Column"));
 		autoTable thee = Table_extractRowsWhere (me, GET_STRING (U"Formula"), interpreter);
-		Table_normalProbabilityPlot (thee.get(), GRAPHICS, column,
+		Table_normalProbabilityPlot (thee.peek(), GRAPHICS, column,
 			GET_INTEGER (U"Number of quantiles"), GET_REAL (U"Number of sigmas"),
 			GET_INTEGER (U"Label size"), GET_STRING (U"Label"), GET_INTEGER (U"Garnish"));
 	}
@@ -7628,7 +7129,7 @@ FORM (Table_quantileQuantilePlot, U"Table: Quantile-quantile plot", U"Table: Qua
 	REAL (U"right Vertical range", U"0.0")
 	NATURAL (U"Label size", U"12")
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true);
+	BOOLEAN (U"Garnish", 1);
 	OK
 DO
 	autoPraatPicture picture;
@@ -7637,9 +7138,9 @@ DO
 		long xcolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Horizontal axis column"));
 		long ycolumn = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Vertical axis column"));
 		Table_quantileQuantilePlot (me, GRAPHICS, xcolumn, ycolumn, GET_INTEGER (U"Number of quantiles"),
-			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"), GET_STRING (U"Label"), GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_STRING (U"Label"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -7884,7 +7385,7 @@ DO
 	LOOP {
 		iam (Table);
 		autoTable thee = Table_extractRowsWhere (me, GET_STRING (U"Formula"), interpreter);
-		praat_new (thee.move(), my name, U"_formula");
+		praat_new (thee.transfer(), my name, U"_formula");
 	}
 END
 
@@ -7903,7 +7404,7 @@ DO
 		autoTable thee = Table_extractMahalanobisWhere(me, GET_STRING (U"Extract all rows where columns..."), 
 		   GET_STRING (U"Factor column"), numberOfSigmas, GET_ENUM (kMelder_number, U"...have a mahalanobis distance..."),
 		   GET_STRING (U"Formula"), interpreter);
-		praat_new (thee.move(), my name, U"_mahalanobis");
+		praat_new (thee.transfer(), my name, U"_mahalanobis");
 	}
 END
 
@@ -7916,14 +7417,14 @@ DO
 	LOOP {
 		iam (Table);
 		autoTable thee = Table_extractColumnRanges (me, GET_STRING (U"Ranges"));
-		praat_new (thee.move(), my name, U"_columns");
+		praat_new (thee.transfer(), my name, U"_columns");
 	}
 END
 
 /******************* TableOfReal ****************************/
 
 DIRECT (New_CreateIrisDataset)
-	praat_new (TableOfReal_createIrisDataset (), U"");
+	praat_new (TableOfReal_createIrisDataset (), U"");   // ppgb: geen expliciete NULL meer meegeven (dan krijg je "0" i.p.v. "iris")
 END
 
 FORM (TableOfReal_reportMultivariateNormality, U"TableOfReal: Report multivariate normality (BHEP)", U"TableOfReal: Report multivariate normality (BHEP)...")
@@ -7964,22 +7465,15 @@ DIRECT (TableOfReal_to_Permutation_sortRowlabels)
 END
 
 DIRECT (TableOfReal_appendColumns)
-	autoTableOfRealList list = TableOfRealList_create ();
-	LOOP {
-		iam (TableOfReal);
-		list -> addItem_ref (me);
-	}
-	autoTableOfReal result = TableOfRealList_appendColumnsMany (list.get());
-	praat_new (result.move(), U"columns_appended");
+	autoCollection set = praat_getSelectedObjects ();
+	praat_new (TableOfReal_appendColumnsMany (set.peek()), U"columns_appended");
 END
 
 FORM (TableOfReal_createFromPolsData_50males, U"Create TableOfReal (Pols 1973)", U"Create TableOfReal (Pols 1973)...")
-	BOOLEAN (U"Include formant levels", false)
+	BOOLEAN (U"Include formant levels", 0)
 	OK
 DO
-	autoTableOfReal result = TableOfReal_createFromPolsData_50males (
-		GET_INTEGER (U"Include formant levels"));
-	praat_new (result.move(), U"pols_50males");
+	praat_new (TableOfReal_createFromPolsData_50males (GET_INTEGER (U"Include formant levels")), U"pols_50males");
 END
 
 DIRECT (Table_createFromEspositoData)
@@ -7991,7 +7485,7 @@ DIRECT (Table_createFromGanongData)
 END
 
 FORM (TableOfReal_createFromVanNieropData_25females, U"Create TableOfReal (Van Nierop 1973)...", U"Create TableOfReal (Van Nierop 1973)...")
-	BOOLEAN (U"Include formant levels", false)
+	BOOLEAN (U"Include formant levels", 0)
 	OK
 DO
 	praat_new (TableOfReal_createFromVanNieropData_25females (GET_INTEGER (U"Include formant levels")), U"vannierop_25females");
@@ -7999,9 +7493,9 @@ END
 
 FORM (TableOfReal_createFromWeeninkData, U"Create TableOfReal (Weenink 1985)...", U"Create TableOfReal (Weenink 1985)...")
 	RADIO (U"Speakers group", 1)
-		RADIOBUTTON (U"Men")
-		RADIOBUTTON (U"Women")
-		RADIOBUTTON (U"Children")
+	RADIOBUTTON (U"Men")
+	RADIOBUTTON (U"Women")
+	RADIOBUTTON (U"Children")
 	OK
 DO
 	int type = GET_INTEGER (U"Speakers group");
@@ -8021,27 +7515,21 @@ FORM (TableOfReal_drawScatterPlot, U"TableOfReal: Draw scatter plot", U"TableOfR
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	NATURAL (U"Label size", U"12")
-	BOOLEAN (U"Use row labels", false)
+	BOOLEAN (U"Use row labels", 0)
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (TableOfReal);
 		TableOfReal_drawScatterPlot (me, GRAPHICS,
-			GET_INTEGER (U"Horizontal axis column number"),
-			GET_INTEGER (U"Vertical axis column number"),
-			GET_INTEGER (U"left Row number range"),
-			GET_INTEGER (U"right Row number range"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Use row labels"),
-			GET_STRING (U"Label"),
-			GET_INTEGER (U"Garnish"));
+		GET_INTEGER (U"Horizontal axis column number"), GET_INTEGER (U"Vertical axis column number"),
+		GET_INTEGER (U"left Row number range"), GET_INTEGER (U"right Row number range"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Use row labels"),
+		GET_STRING (U"Label"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -8054,10 +7542,8 @@ DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (TableOfReal);
-		TableOfReal_drawScatterPlotMatrix (me, GRAPHICS,
-			GET_INTEGER (U"From column"),
-			GET_INTEGER (U"To column"),
-			GET_REAL (U"Fraction white"));
+		TableOfReal_drawScatterPlotMatrix (me, GRAPHICS, GET_INTEGER (U"From column"), GET_INTEGER (U"To column"),
+		GET_REAL (U"Fraction white"));
 	}
 END
 
@@ -8076,13 +7562,9 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		TableOfReal_drawBiplot (me, GRAPHICS,
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_REAL (U"Split factor"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_REAL (U"Split factor"),
+		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -8109,17 +7591,12 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		TableOfReal_drawVectors (me, GRAPHICS,
-			GET_INTEGER (U"left From columns"),
-			GET_INTEGER (U"right From columns"),
-			GET_INTEGER (U"left To columns"),
-			GET_INTEGER (U"right To columns"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Vector type"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		GET_INTEGER (U"left From columns"), GET_INTEGER (U"right From columns"),
+		GET_INTEGER (U"left To columns"), GET_INTEGER (U"right To columns"),
+		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Vector type"), GET_INTEGER (U"Label size"),
+		GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -8142,15 +7619,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		TableOfReal_drawRowsAsHistogram (me, GRAPHICS, GET_STRING (U"Row number"),
-			GET_INTEGER (U"left Column range"),
-			GET_INTEGER (U"right Column range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_REAL (U"Horizontal offset"),
-			0,
-			GET_REAL (U"Distance between bars"),
-			GET_STRING (U"Grey value"),
-			GET_INTEGER (U"Garnish"));
+		GET_INTEGER (U"left Column range"), GET_INTEGER (U"right Column range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_REAL (U"Horizontal offset"), 0,
+		GET_REAL (U"Distance between bars"), GET_STRING (U"Grey value"),
+		GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -8209,7 +7682,7 @@ FORM (TableOfReal_drawColumnAsDistribution, U"TableOfReal: Draw column as distri
 	REAL (U"left Frequency range", U"0.0")
 	REAL (U"right frequency range", U"0.0")
 	NATURAL (U"Number of bins", U"10")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -8217,7 +7690,7 @@ DO
 		iam (TableOfReal);
 		TableOfReal_drawColumnAsDistribution (me, GRAPHICS, GET_INTEGER (U"Column number"),
 		GET_REAL (U"left Value range"), GET_REAL (U"right Value range"), GET_INTEGER (U"Number of bins"),
-		GET_REAL (U"left Frequency range"), GET_REAL (U"right frequency range"), false, GET_INTEGER (U"Garnish"));
+		GET_REAL (U"left Frequency range"), GET_REAL (U"right frequency range"), 0, GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -8231,8 +7704,7 @@ DO
 	}
 	LOOP {
 		iam (TableOfReal);
-		autoConfiguration thee = TableOfReal_to_Configuration_lda (me, dimension);
-		praat_new (thee.move(), my name, U"_lda");
+		praat_new (TableOfReal_to_Configuration_lda (me, dimension), my name, U"_lda");
 	}
 END
 
@@ -8242,8 +7714,7 @@ FORM (TableOfReal_to_CCA, U"TableOfReal: To CCA", U"TableOfReal: To CCA...")
 DO
 	LOOP {
 		iam (TableOfReal);
-		autoCCA thee = TableOfReal_to_CCA (me, GET_INTEGER (U"Dimension of dependent variate"));
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_CCA (me, GET_INTEGER (U"Dimension of dependent variate")), my name);
 	}
 END
 
@@ -8253,24 +7724,21 @@ FORM (TableOfReal_to_Configuration_pca, U"TableOfReal: To Configuration (pca)",
 DO
 	LOOP {
 		iam (TableOfReal);
-		autoConfiguration thee = TableOfReal_to_Configuration_pca (me, GET_INTEGER (U"Number of dimensions"));
-		praat_new (thee.move(), my name, U"_pca");
+		praat_new (TableOfReal_to_Configuration_pca (me, GET_INTEGER (U"Number of dimensions")), my name, U"_pca");
 	}
 END
 
 DIRECT (TableOfReal_to_Discriminant)
 	LOOP {
 		iam (TableOfReal);
-		autoDiscriminant thee = TableOfReal_to_Discriminant (me);
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_Discriminant (me), my name);
 	}
 END
 
-DIRECT (TableOfReal_to_PCA_byRows)
+DIRECT (TableOfReal_to_PCA)
 	LOOP {
 		iam (TableOfReal);
-		autoPCA thee = TableOfReal_to_PCA_byRows (me);
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_PCA (me), my name);
 	}
 END
 
@@ -8325,14 +7793,13 @@ DIRECT (TableOfReal_to_SVD)
 END
 
 DIRECT (TablesOfReal_to_Eigen_gsvd)
-	TableOfReal t1 = nullptr, t2 = nullptr;
+	TableOfReal t1 = 0, t2 = 0;
 	LOOP {
 		iam (TableOfReal);
 		(t1 ? t2 : t1) = me;
 	}
 	Melder_assert (t1 && t2);
-	autoEigen thee = TablesOfReal_to_Eigen_gsvd (t1, t2);
-	praat_new (thee.move(), U"");
+	praat_new (TablesOfReal_to_Eigen_gsvd (t1, t2), U"");
 END
 
 FORM (TableOfReal_and_TableOfReal_crossCorrelations, U"TableOfReal & TableOfReal: Cross-correlations", 0)
@@ -8384,13 +7851,13 @@ FORM (TableOfReal_to_Pattern_and_Categories, U"TableOfReal: To Pattern and Categ
 	DO
 	LOOP {
 		iam (TableOfReal);
-		autoPattern ap; 
-		autoCategories ac;
+		Pattern p = 0; Categories c = 0;
 		TableOfReal_to_Pattern_and_Categories (me, GET_INTEGER (U"left Row range"),
 		GET_INTEGER (U"right Row range"), GET_INTEGER (U"left Column range"),
-		GET_INTEGER (U"right Column range"), & ap, & ac);
-		praat_new (ap.move(), Thing_getName (me));
-		praat_new (ac.move(), Thing_getName (me));
+		GET_INTEGER (U"right Column range"), &p, &c);
+		autoPattern ap = p; autoCategories ac = c;
+		praat_new (ap.transfer(), Thing_getName (me));
+		praat_new (ac.transfer(), Thing_getName (me));
 	}
 END
 
@@ -8553,130 +8020,128 @@ DIRECT (VowelEditor_create)
 	if (theCurrentPraatApplication -> batch) {
 		Melder_throw (U"Cannot edit from batch.");
 	}
-	autoVowelEditor vowelEditor = VowelEditor_create (U"VowelEditor", nullptr);
-	vowelEditor.releaseToUser();
+	autoVowelEditor vowelEditor = VowelEditor_create (U"VowelEditor", NULL);
+	vowelEditor.transfer(); // user becomes the owner
 END
 
-static autoDaata cmuAudioFileRecognizer (int nread, const char *header, MelderFile file) {
+static Any cmuAudioFileRecognizer (int nread, const char *header, MelderFile fs) {
 	return nread < 12 || header [0] != 6 || header [1] != 0 ?
-	       autoSound () : Sound_readFromCmuAudioFile (file);
+	       NULL : Sound_readFromCmuAudioFile (fs);
 }
 
 void praat_CC_init (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"Paint...", nullptr, 1, DO_CC_paint);
-	praat_addAction1 (klas, 1, U"Draw...", nullptr, 1, DO_CC_drawC0);
-	praat_addAction1 (klas, 1, QUERY_BUTTON, nullptr, 0, 0);
+	praat_addAction1 (klas, 1, U"Paint...", 0, 1, DO_CC_paint);
+	praat_addAction1 (klas, 1, U"Draw...", 0, 1, DO_CC_drawC0);
+	praat_addAction1 (klas, 1, QUERY_BUTTON, 0, 0, 0);
 	praat_TimeFrameSampled_query_init (klas);
-	praat_addAction1 (klas, 1, U"Get number of coefficients...", nullptr, 1, DO_CC_getNumberOfCoefficients);
-	praat_addAction1 (klas, 1, U"Get value in frame...", nullptr, 1, DO_CC_getValueInFrame);
-	praat_addAction1 (klas, 1, U"Get c0 value in frame...", nullptr, 1, DO_CC_getC0ValueInFrame);
-	praat_addAction1 (klas, 1, U"Get value...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_CC_getValue);
-	praat_addAction1 (klas, 0, U"To Matrix", nullptr, 0, DO_CC_to_Matrix);
-	praat_addAction1 (klas, 2, U"To DTW...", nullptr, 0, DO_CCs_to_DTW);
+	praat_addAction1 (klas, 1, U"Get number of coefficients...", 0, 1, DO_CC_getNumberOfCoefficients);
+	praat_addAction1 (klas, 1, U"Get value in frame...", 0, 1, DO_CC_getValueInFrame);
+	praat_addAction1 (klas, 1, U"Get c0 value in frame...", 0, 1, DO_CC_getC0ValueInFrame);
+	praat_addAction1 (klas, 1, U"Get value...", 0, praat_HIDDEN + praat_DEPTH_1, DO_CC_getValue);
+	praat_addAction1 (klas, 0, U"To Matrix", 0, 0, DO_CC_to_Matrix);
+	praat_addAction1 (klas, 2, U"To DTW...", 0, 0, DO_CCs_to_DTW);
 }
 
 static void praat_Eigen_Matrix_project (ClassInfo klase, ClassInfo klasm); // deprecated 2014
 static void praat_Eigen_Matrix_project (ClassInfo klase, ClassInfo klasm) {
-	praat_addAction2 (klase, 1, klasm, 1, U"Project...", nullptr, praat_HIDDEN, DO_Eigen_and_Matrix_projectColumns);
-	praat_addAction2 (klase, 1, klasm, 1, U"To Matrix (project columns)...", nullptr, praat_HIDDEN, DO_Eigen_and_Matrix_projectColumns);
+	praat_addAction2 (klase, 1, klasm, 1, U"Project...", 0, praat_HIDDEN, DO_Eigen_and_Matrix_project);
 }
 
 static void praat_Eigen_Spectrogram_project (ClassInfo klase, ClassInfo klasm);
 static void praat_Eigen_Spectrogram_project (ClassInfo klase, ClassInfo klasm) {
-	praat_addAction2 (klase, 1, klasm, 1, U"Project...", nullptr, praat_HIDDEN, DO_Eigen_and_Matrix_projectColumns);
-	praat_addAction2 (klase, 1, klasm, 1, U"To Matrix (project columns)...", nullptr, 0, DO_Eigen_and_Matrix_projectColumns);
+	praat_addAction2 (klase, 1, klasm, 1, U"Project...", 0, 0, DO_Eigen_and_Matrix_project);
 }
 
 static void praat_Eigen_query_init (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"Get eigenvalue...", nullptr, 1, DO_Eigen_getEigenvalue);
-	praat_addAction1 (klas, 1, U"Get sum of eigenvalues...", nullptr, 1, DO_Eigen_getSumOfEigenvalues);
-	praat_addAction1 (klas, 1, U"Get number of eigenvectors", nullptr, 1, DO_Eigen_getNumberOfEigenvalues);
-	praat_addAction1 (klas, 1, U"Get eigenvector dimension", nullptr, 1, DO_Eigen_getDimension);
-	praat_addAction1 (klas, 1, U"Get eigenvector element...", nullptr, 1, DO_Eigen_getEigenvectorElement);
+	praat_addAction1 (klas, 1, U"Get eigenvalue...", 0, 1, DO_Eigen_getEigenvalue);
+	praat_addAction1 (klas, 1, U"Get sum of eigenvalues...", 0, 1, DO_Eigen_getSumOfEigenvalues);
+	praat_addAction1 (klas, 1, U"Get number of eigenvectors", 0, 1, DO_Eigen_getNumberOfEigenvalues);
+	praat_addAction1 (klas, 1, U"Get eigenvector dimension", 0, 1, DO_Eigen_getDimension);
+	praat_addAction1 (klas, 1, U"Get eigenvector element...", 0, 1, DO_Eigen_getEigenvectorElement);
 }
 
 static void praat_Eigen_draw_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, U"Draw eigenvalues...", nullptr, 1, DO_Eigen_drawEigenvalues);
-	praat_addAction1 (klas, 0, U"Draw eigenvalues (scree)...", nullptr, praat_DEPTH_1 | praat_HIDDEN, DO_Eigen_drawEigenvalues_scree);
-	praat_addAction1 (klas, 0, U"Draw eigenvector...", nullptr, 1, DO_Eigen_drawEigenvector);
+	praat_addAction1 (klas, 0, U"Draw eigenvalues...", 0, 1, DO_Eigen_drawEigenvalues);
+	praat_addAction1 (klas, 0, U"Draw eigenvalues (scree)...", 0, praat_DEPTH_1 | praat_HIDDEN, DO_Eigen_drawEigenvalues_scree);
+	praat_addAction1 (klas, 0, U"Draw eigenvector...", 0, 1, DO_Eigen_drawEigenvector);
 }
 
 static void praat_Index_init (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"Get number of classes", nullptr, 0, DO_Index_getNumberOfClasses);
-	praat_addAction1 (klas, 1, U"To Permutation...", nullptr, 0, DO_Index_to_Permutation);
-	praat_addAction1 (klas, 1, U"Extract part...", nullptr, 0, DO_Index_extractPart);
+	praat_addAction1 (klas, 1, U"Get number of classes", 0, 0, DO_Index_getNumberOfClasses);
+	praat_addAction1 (klas, 1, U"To Permutation...", 0, 0, DO_Index_to_Permutation);
+	praat_addAction1 (klas, 1, U"Extract part...", 0, 0, DO_Index_extractPart);
 }
 
 static void praat_BandFilterSpectrogram_draw_init (ClassInfo klas);
 static void praat_BandFilterSpectrogram_draw_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, DRAW_BUTTON, nullptr, 0, nullptr);
-//	praat_addAction1 (klas, 0, U"Paint image...", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_paintImage);
-//	praat_addAction1 (klas, 0, U"Draw filters...", nullptr, 1, DO_FilterBank_drawFilters);
-//	praat_addAction1 (klas, 0, U"Draw one contour...", nullptr, 1, DO_FilterBank_drawOneContour);
-//	praat_addAction1 (klas, 0, U"Draw contours...", nullptr, 1, DO_FilterBank_drawContours);
-//	praat_addAction1 (klas, 0, U"Paint contours...", nullptr, 1, DO_FilterBank_paintContours);
-//	praat_addAction1 (klas, 0, U"Paint cells...", nullptr, 1, DO_FilterBank_paintCells);
-//	praat_addAction1 (klas, 0, U"Paint surface...", nullptr, 1, DO_FilterBank_paintSurface);
-	praat_addAction1 (klas, 0, U"-- frequency scales --", nullptr, 1, nullptr);
-	praat_addAction1 (klas, 0, U"Draw frequency scale...", nullptr, 1, DO_BandFilterSpectrogram_drawFrequencyScale);
+	praat_addAction1 (klas, 0, DRAW_BUTTON, 0, 0, 0);
+//	praat_addAction1 (klas, 0, U"Paint image...", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_paintImage);
+//	praat_addAction1 (klas, 0, U"Draw filters...", 0, 1, DO_FilterBank_drawFilters);
+//	praat_addAction1 (klas, 0, U"Draw one contour...", 0, 1, DO_FilterBank_drawOneContour);
+//	praat_addAction1 (klas, 0, U"Draw contours...", 0, 1, DO_FilterBank_drawContours);
+//	praat_addAction1 (klas, 0, U"Paint contours...", 0, 1, DO_FilterBank_paintContours);
+//	praat_addAction1 (klas, 0, U"Paint cells...", 0, 1, DO_FilterBank_paintCells);
+//	praat_addAction1 (klas, 0, U"Paint surface...", 0, 1, DO_FilterBank_paintSurface);
+	praat_addAction1 (klas, 0, U"-- frequency scales --", 0, 1, 0);
+	praat_addAction1 (klas, 0, U"Draw frequency scale...", 0, 1, DO_BandFilterSpectrogram_drawFrequencyScale);
 }
 
 void praat_Matrixft_query_init (ClassInfo klas);
 void praat_Matrixft_query_init (ClassInfo klas) {
 	praat_TimeFrameSampled_query_init (klas);
-	praat_addAction1 (klas, 1, U"Get time from column...", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getXofColumn);
-	praat_addAction1 (klas, 1, U"-- frequencies --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 1, U"Get lowest frequency", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getLowestFrequency);
-	praat_addAction1 (klas, 1, U"Get highest frequency", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getHighestFrequency);
-	praat_addAction1 (klas, 1, U"Get number of frequencies", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getNumberOfFrequencies);
-	praat_addAction1 (klas, 1, U"Get frequency distance", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getFrequencyDistance);
-	praat_addAction1 (klas, 1, U"Get frequency from row...", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getFrequencyOfRow);
-	praat_addAction1 (klas, 1, U"-- get value --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 1, U"Get value in cell...", nullptr, praat_DEPTH_1, DO_BandFilterSpectrogram_getValueInCell);
+	praat_addAction1 (klas, 1, U"Get time from column...", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getXofColumn);
+	praat_addAction1 (klas, 1, U"-- frequencies --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 1, U"Get lowest frequency", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getLowestFrequency);
+	praat_addAction1 (klas, 1, U"Get highest frequency", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getHighestFrequency);
+	praat_addAction1 (klas, 1, U"Get number of frequencies", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getNumberOfFrequencies);
+	praat_addAction1 (klas, 1, U"Get frequency distance", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getFrequencyDistance);
+	praat_addAction1 (klas, 1, U"Get frequency from row...", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getFrequencyOfRow);
+	praat_addAction1 (klas, 1, U"-- get value --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 1, U"Get value in cell...", 0, praat_DEPTH_1, DO_BandFilterSpectrogram_getValueInCell);
 }
 
 void praat_Matrixtype_query_init (ClassInfo klas);
 void praat_Matrixtype_query_init (ClassInfo klas) {
 	praat_TimeFrameSampled_query_init (klas);
-	praat_addAction1 (klas, 1, U"Get time from column...", nullptr, praat_DEPTH_1, DO_FilterBank_getXofColumn);
-	praat_addAction1 (klas, 1, U"-- frequencies --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 1, U"Get lowest frequency", nullptr, praat_DEPTH_1, DO_FilterBank_getLowestFrequency);
-	praat_addAction1 (klas, 1, U"Get highest frequency", nullptr, praat_DEPTH_1, DO_FilterBank_getHighestFrequency);
-	praat_addAction1 (klas, 1, U"Get number of frequencies", nullptr, praat_DEPTH_1, DO_FilterBank_getNumberOfFrequencies);
-	praat_addAction1 (klas, 1, U"Get frequency distance", nullptr, praat_DEPTH_1, DO_FilterBank_getFrequencyDistance);
-	praat_addAction1 (klas, 1, U"Get frequency from row...", nullptr, praat_DEPTH_1, DO_FilterBank_getFrequencyOfRow);
-	praat_addAction1 (klas, 1, U"-- get value --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 1, U"Get value in cell...", nullptr, praat_DEPTH_1, DO_FilterBank_getValueInCell);
+	praat_addAction1 (klas, 1, U"Get time from column...", 0, praat_DEPTH_1, DO_FilterBank_getXofColumn);
+	praat_addAction1 (klas, 1, U"-- frequencies --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 1, U"Get lowest frequency", 0, praat_DEPTH_1, DO_FilterBank_getLowestFrequency);
+	praat_addAction1 (klas, 1, U"Get highest frequency", 0, praat_DEPTH_1, DO_FilterBank_getHighestFrequency);
+	praat_addAction1 (klas, 1, U"Get number of frequencies", 0, praat_DEPTH_1, DO_FilterBank_getNumberOfFrequencies);
+	praat_addAction1 (klas, 1, U"Get frequency distance", 0, praat_DEPTH_1, DO_FilterBank_getFrequencyDistance);
+	praat_addAction1 (klas, 1, U"Get frequency from row...", 0, praat_DEPTH_1, DO_FilterBank_getFrequencyOfRow);
+	praat_addAction1 (klas, 1, U"-- get value --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 1, U"Get value in cell...", 0, praat_DEPTH_1, DO_FilterBank_getValueInCell);
 }
 
 static void praat_FilterBank_query_init (ClassInfo klas);
 static void praat_FilterBank_query_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, QUERY_BUTTON, nullptr, 0, 0);
+	praat_addAction1 (klas, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_Matrixtype_query_init (klas);
-	praat_addAction1 (klas, 0, U"-- frequency scales --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 1, U"Get frequency in Hertz...", nullptr, praat_DEPTH_1, DO_FilterBank_getFrequencyInHertz);
-	praat_addAction1 (klas, 1, U"Get frequency in Bark...", nullptr, praat_DEPTH_1, DO_FilterBank_getFrequencyInBark);
-	praat_addAction1 (klas, 1, U"Get frequency in mel...", nullptr, praat_DEPTH_1, DO_FilterBank_getFrequencyInMel);
+	praat_addAction1 (klas, 0, U"-- frequency scales --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 1, U"Get frequency in Hertz...", 0, praat_DEPTH_1, DO_FilterBank_getFrequencyInHertz);
+	praat_addAction1 (klas, 1, U"Get frequency in Bark...", 0, praat_DEPTH_1, DO_FilterBank_getFrequencyInBark);
+	praat_addAction1 (klas, 1, U"Get frequency in mel...", 0, praat_DEPTH_1, DO_FilterBank_getFrequencyInMel);
 }
 
 static void praat_FilterBank_modify_init (ClassInfo klas);
 static void praat_FilterBank_modify_init (ClassInfo klas) {
-	// praat_addAction1 (klas, 0, MODIFY_BUTTON, nullptr, 0, 0); 
-	praat_addAction1 (klas, 0, U"Equalize intensities...", nullptr, praat_DEPTH_1, DO_FilterBank_equalizeIntensities);
+	// praat_addAction1 (klas, 0, MODIFY_BUTTON, 0, 0, 0); 
+	praat_addAction1 (klas, 0, U"Equalize intensities...", 0, praat_DEPTH_1, DO_FilterBank_equalizeIntensities);
 }
 
 static void praat_FilterBank_draw_init (ClassInfo klas);
 static void praat_FilterBank_draw_init (ClassInfo klas) {
 	// praat_addAction1 (klas, 0, DRAW_BUTTON, 0, 0, 0);
-	praat_addAction1 (klas, 0, U"Draw filters...", nullptr, praat_DEPTH_1, DO_FilterBank_drawFilters);
-	praat_addAction1 (klas, 0, U"Draw one contour...", nullptr, praat_DEPTH_1, DO_FilterBank_drawOneContour);
-	praat_addAction1 (klas, 0, U"Draw contours...", nullptr, praat_DEPTH_1, DO_FilterBank_drawContours);
-	praat_addAction1 (klas, 0, U"Paint image...", nullptr, praat_DEPTH_1, DO_FilterBank_paintImage);
-	praat_addAction1 (klas, 0, U"Paint contours...", nullptr, praat_DEPTH_1, DO_FilterBank_paintContours);
-	praat_addAction1 (klas, 0, U"Paint cells...", nullptr, praat_DEPTH_1, DO_FilterBank_paintCells);
-	praat_addAction1 (klas, 0, U"Paint surface...", nullptr, praat_DEPTH_1, DO_FilterBank_paintSurface);
-	praat_addAction1 (klas, 0, U"-- frequency scales --", nullptr, praat_DEPTH_1, 0);
-	praat_addAction1 (klas, 0, U"Draw frequency scales...", nullptr, praat_DEPTH_1, DO_FilterBank_drawFrequencyScales);
+	praat_addAction1 (klas, 0, U"Draw filters...", 0, praat_DEPTH_1, DO_FilterBank_drawFilters);
+	praat_addAction1 (klas, 0, U"Draw one contour...", 0, praat_DEPTH_1, DO_FilterBank_drawOneContour);
+	praat_addAction1 (klas, 0, U"Draw contours...", 0, praat_DEPTH_1, DO_FilterBank_drawContours);
+	praat_addAction1 (klas, 0, U"Paint image...", 0, praat_DEPTH_1, DO_FilterBank_paintImage);
+	praat_addAction1 (klas, 0, U"Paint contours...", 0, praat_DEPTH_1, DO_FilterBank_paintContours);
+	praat_addAction1 (klas, 0, U"Paint cells...", 0, praat_DEPTH_1, DO_FilterBank_paintCells);
+	praat_addAction1 (klas, 0, U"Paint surface...", 0, praat_DEPTH_1, DO_FilterBank_paintSurface);
+	praat_addAction1 (klas, 0, U"-- frequency scales --", 0, praat_DEPTH_1, 0);
+	praat_addAction1 (klas, 0, U"Draw frequency scales...", 0, praat_DEPTH_1, DO_FilterBank_drawFrequencyScales);
 }
 
 static void praat_FilterBank_all_init (ClassInfo klas);
@@ -8684,45 +8149,45 @@ static void praat_FilterBank_all_init (ClassInfo klas) {
 	praat_FilterBank_draw_init (klas);
 	praat_FilterBank_query_init (klas);
 	praat_FilterBank_modify_init (klas);
-	praat_addAction1 (klas, 0, U"To Intensity", nullptr, praat_HIDDEN, DO_FilterBank_to_Intensity);
-	praat_addAction1 (klas, 0, U"To Matrix", nullptr, praat_HIDDEN, DO_FilterBank_to_Matrix);
-	praat_addAction1 (klas, 2, U"Cross-correlate...", nullptr, praat_HIDDEN, DO_FilterBanks_crossCorrelate);
-	praat_addAction1 (klas, 2, U"Convolve...", nullptr, praat_HIDDEN, DO_FilterBanks_convolve);
+	praat_addAction1 (klas, 0, U"To Intensity", 0, praat_HIDDEN, DO_FilterBank_to_Intensity);
+	praat_addAction1 (klas, 0, U"To Matrix", 0, praat_HIDDEN, DO_FilterBank_to_Matrix);
+	praat_addAction1 (klas, 2, U"Cross-correlate...", 0, praat_HIDDEN, DO_FilterBanks_crossCorrelate);
+	praat_addAction1 (klas, 2, U"Convolve...", 0, praat_HIDDEN, DO_FilterBanks_convolve);
 }
 
 static void praat_FunctionTerms_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, DRAW_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (klas, 0, U"Draw...", nullptr, 1, DO_FunctionTerms_draw);
-	praat_addAction1 (klas, 0, U"Draw basis function...", nullptr, 1, DO_FunctionTerms_drawBasisFunction);
-	praat_addAction1 (klas, 0, QUERY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (klas, 1, U"Get number of coefficients", nullptr, 1, DO_FunctionTerms_getNumberOfCoefficients);
-	praat_addAction1 (klas, 1, U"Get coefficient...", nullptr, 1, DO_FunctionTerms_getCoefficient);
-	praat_addAction1 (klas, 1, U"Get degree", nullptr, 1, DO_FunctionTerms_getDegree);
-	praat_addAction1 (klas, 0, U"-- function specifics --", nullptr, 1, 0);
-	praat_addAction1 (klas, 1, U"Get value...", nullptr, 1, DO_FunctionTerms_evaluate);
-	praat_addAction1 (klas, 1, U"Get minimum...", nullptr, 1, DO_FunctionTerms_getMinimum);
-	praat_addAction1 (klas, 1, U"Get x of minimum...", nullptr, 1, DO_FunctionTerms_getXOfMinimum);
-	praat_addAction1 (klas, 1, U"Get maximum...", nullptr, 1, DO_FunctionTerms_getMaximum);
-	praat_addAction1 (klas, 1, U"Get x of maximum...", nullptr, 1, DO_FunctionTerms_getXOfMaximum);
-	praat_addAction1 (klas, 0, U"Modify -", nullptr, 0, 0);
-	praat_addAction1 (klas, 1, U"Set domain...", nullptr, 1, DO_FunctionTerms_setDomain);
-	praat_addAction1 (klas, 1, U"Set coefficient...", nullptr, 1, DO_FunctionTerms_setCoefficient);
-	praat_addAction1 (klas, 0, U"Analyse", nullptr, 0, 0);
+	praat_addAction1 (klas, 0, DRAW_BUTTON, 0, 0, 0);
+	praat_addAction1 (klas, 0, U"Draw...", 0, 1, DO_FunctionTerms_draw);
+	praat_addAction1 (klas, 0, U"Draw basis function...", 0, 1, DO_FunctionTerms_drawBasisFunction);
+	praat_addAction1 (klas, 0, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction1 (klas, 1, U"Get number of coefficients", 0, 1, DO_FunctionTerms_getNumberOfCoefficients);
+	praat_addAction1 (klas, 1, U"Get coefficient...", 0, 1, DO_FunctionTerms_getCoefficient);
+	praat_addAction1 (klas, 1, U"Get degree", 0, 1, DO_FunctionTerms_getDegree);
+	praat_addAction1 (klas, 0, U"-- function specifics --", 0, 1, 0);
+	praat_addAction1 (klas, 1, U"Get value...", 0, 1, DO_FunctionTerms_evaluate);
+	praat_addAction1 (klas, 1, U"Get minimum...", 0, 1, DO_FunctionTerms_getMinimum);
+	praat_addAction1 (klas, 1, U"Get x of minimum...", 0, 1, DO_FunctionTerms_getXOfMinimum);
+	praat_addAction1 (klas, 1, U"Get maximum...", 0, 1, DO_FunctionTerms_getMaximum);
+	praat_addAction1 (klas, 1, U"Get x of maximum...", 0, 1, DO_FunctionTerms_getXOfMaximum);
+	praat_addAction1 (klas, 0, U"Modify -", 0, 0, 0);
+	praat_addAction1 (klas, 1, U"Set domain...", 0, 1, DO_FunctionTerms_setDomain);
+	praat_addAction1 (klas, 1, U"Set coefficient...", 0, 1, DO_FunctionTerms_setCoefficient);
+	praat_addAction1 (klas, 0, U"Analyse", 0, 0, 0);
 }
 
 /* Query buttons for frame-based frequency x time subclasses of matrix. */
 
 void praat_BandFilterSpectrogram_query_init (ClassInfo klas) {
 	praat_TimeFrameSampled_query_init (klas);
-	praat_addAction1 (klas, 1, U"Get time from column...", nullptr, 1, DO_BandFilterSpectrogram_getXofColumn);
-	praat_addAction1 (klas, 1, U"-- frequencies --", nullptr, 1, 0);
-	praat_addAction1 (klas, 1, U"Get lowest frequency", nullptr, 1, DO_BandFilterSpectrogram_getLowestFrequency);
-	praat_addAction1 (klas, 1, U"Get highest frequency", nullptr, 1, DO_BandFilterSpectrogram_getHighestFrequency);
-	praat_addAction1 (klas, 1, U"Get number of frequencies", nullptr, 1, DO_BandFilterSpectrogram_getNumberOfFrequencies);
-	praat_addAction1 (klas, 1, U"Get frequency distance", nullptr, 1, DO_BandFilterSpectrogram_getFrequencyDistance);
-	praat_addAction1 (klas, 1, U"Get frequency from row...", nullptr, 1, DO_BandFilterSpectrogram_getFrequencyOfRow);
-	praat_addAction1 (klas, 1, U"-- get value --", nullptr, 1, 0);
-	praat_addAction1 (klas, 1, U"Get value in cell...", nullptr, 1, DO_BandFilterSpectrogram_getValueInCell);
+	praat_addAction1 (klas, 1, U"Get time from column...", 0, 1, DO_BandFilterSpectrogram_getXofColumn);
+	praat_addAction1 (klas, 1, U"-- frequencies --", 0, 1, 0);
+	praat_addAction1 (klas, 1, U"Get lowest frequency", 0, 1, DO_BandFilterSpectrogram_getLowestFrequency);
+	praat_addAction1 (klas, 1, U"Get highest frequency", 0, 1, DO_BandFilterSpectrogram_getHighestFrequency);
+	praat_addAction1 (klas, 1, U"Get number of frequencies", 0, 1, DO_BandFilterSpectrogram_getNumberOfFrequencies);
+	praat_addAction1 (klas, 1, U"Get frequency distance", 0, 1, DO_BandFilterSpectrogram_getFrequencyDistance);
+	praat_addAction1 (klas, 1, U"Get frequency from row...", 0, 1, DO_BandFilterSpectrogram_getFrequencyOfRow);
+	praat_addAction1 (klas, 1, U"-- get value --", 0, 1, 0);
+	praat_addAction1 (klas, 1, U"Get value in cell...", 0, 1, DO_BandFilterSpectrogram_getValueInCell);
 }
 
 static void praat_Spline_init (ClassInfo klas) {
@@ -8769,7 +8234,7 @@ END
 
 void praat_SSCP_as_TableOfReal_init (ClassInfo klas) {
 	praat_TableOfReal_init (klas);
-	praat_removeAction (klas, nullptr, nullptr, U"Set value...");
+	praat_removeAction (klas, NULL, NULL, U"Set value...");
 	praat_addAction1 (klas, 1, U"Set centroid...", U"Formula...", 1, DO_SSCP_setCentroid);
 	praat_addAction1 (klas, 1, U"Set value...", U"Formula...", 1, DO_SSCP_setValue);
 	praat_addAction1 (klas, 0, U"To TableOfReal", U"To Matrix", 1, DO_TableOfReal_to_TableOfReal);
@@ -8784,36 +8249,34 @@ void praat_TableOfReal_init2 (ClassInfo klas) {
 void praat_EditDistanceTable_as_TableOfReal_init (ClassInfo klas) {
 	praat_TableOfReal_init (klas);
 	praat_addAction1 (klas, 0, U"Set default costs...", U"Formula...", 1, DO_EditDistanceTable_setDefaultCosts);
-	praat_removeAction (klas, nullptr, nullptr, U"Draw as numbers...");
+	praat_removeAction (klas, NULL, NULL, U"Draw as numbers...");
 	praat_addAction1 (klas, 0, U"Draw...", U"Draw -", 1, DO_EditDistanceTable_draw);
 	praat_addAction1 (klas, 0, U"Draw edit operations", U"Draw...", 1, DO_EditDistanceTable_drawEditOperations);
-	praat_removeAction (klas, nullptr, nullptr, U"Draw as numbers if...");
-	praat_removeAction (klas, nullptr, nullptr, U"Draw as squares...");
-	praat_removeAction (klas, nullptr, nullptr, U"Draw vertical lines...");
-	praat_removeAction (klas, nullptr, nullptr, U"Draw horizontal lines...");
-	praat_removeAction (klas, nullptr, nullptr, U"Draw left and right lines...");
-	praat_removeAction (klas, nullptr, nullptr, U"Draw top and bottom lines...");
-	praat_removeAction (klas, nullptr, nullptr, U"-- draw lines --");
+	praat_removeAction (klas, NULL, NULL, U"Draw as numbers if...");
+	praat_removeAction (klas, NULL, NULL, U"Draw as squares...");
+	praat_removeAction (klas, NULL, NULL, U"Draw vertical lines...");
+	praat_removeAction (klas, NULL, NULL, U"Draw horizontal lines...");
+	praat_removeAction (klas, NULL, NULL, U"Draw left and right lines...");
+	praat_removeAction (klas, NULL, NULL, U"Draw top and bottom lines...");
+	praat_removeAction (klas, NULL, NULL, U"-- draw lines --");
 }
 
 void praat_uvafon_David_init ();
 void praat_uvafon_David_init () {
 	Data_recognizeFileType (TextGrid_TIMITLabelFileRecognizer);
 	Data_recognizeFileType (cmuAudioFileRecognizer);
-	
+
 	Thing_recognizeClassesByName (classActivation, classBarkFilter, classBarkSpectrogram,
 		classCategories, classCepstrum, classCCA,
 		classChebyshevSeries, classClassificationTable, classComplexSpectrogram, classConfusion,
 		classCorrelation, classCovariance, classDiscriminant, classDTW,
-		classEigen, classExcitationList, classEditCostsTable, classEditDistanceTable,
-		classFileInMemory, classFileInMemorySet, classFormantFilter,
+		classEigen, classExcitations, classEditCostsTable, classEditDistanceTable,
+		classFileInMemory, classFilesInMemory, classFormantFilter,
 		classIndex, classKlattTable,
 		classPermutation, classISpline, classLegendreSeries,
 		classMelFilter, classMelSpectrogram, classMSpline, classPattern, classPCA, classPolynomial, classRoots,
 		classSimpleString, classStringsIndex, classSpeechSynthesizer, classSPINET, classSSCP,
-		classSVD, nullptr);
-	Thing_recognizeClassByOtherName (classExcitationList, U"Excitations");
-	Thing_recognizeClassByOtherName (classFileInMemorySet, U"FilesInMemory");
+		classSVD, NULL);
 
 	VowelEditor_prefs ();
 
@@ -8824,13 +8287,13 @@ void praat_uvafon_David_init () {
 	praat_addMenuCommand (U"Objects", U"Goodies", U"Get invTukeyQ...", 0, praat_HIDDEN, DO_Praat_getInvTukeyQ);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Strings from espeak voices", U"Create Strings as directory list...", praat_DEPTH_1 + praat_HIDDEN, DO_Strings_createFromEspeakVoices);
 	praat_addMenuCommand (U"Objects", U"New", U"Create iris data set", U"Create TableOfReal...", 1, DO_New_CreateIrisDataset);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Permutation...", nullptr, 0, DO_Permutation_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Polynomial", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Polynomial...", nullptr, 1, DO_Polynomial_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create LegendreSeries...", nullptr, 1, DO_LegendreSeries_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create ChebyshevSeries...", nullptr, 1, DO_ChebyshevSeries_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create MSpline...", nullptr, 1, DO_MSpline_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create ISpline...", nullptr, 1, DO_ISpline_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Permutation...", 0, 0, DO_Permutation_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Polynomial", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Polynomial...", 0, 1, DO_Polynomial_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create LegendreSeries...", 0, 1, DO_LegendreSeries_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create ChebyshevSeries...", 0, 1, DO_ChebyshevSeries_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create MSpline...", 0, 1, DO_MSpline_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create ISpline...", 0, 1, DO_ISpline_create);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Sound from gammatone...", U"Create Sound from tone complex...", 1, DO_Sound_createFromGammaTone);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Sound from gamma-tone...", U"Create Sound from tone complex...", praat_DEPTH_1 | praat_HIDDEN, DO_Sound_createFromGammaTone);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Sound from Shepard tone...", U"Create Sound from gammatone...", 1, DO_Sound_createFromShepardTone);
@@ -8846,104 +8309,118 @@ void praat_uvafon_David_init () {
 	praat_addMenuCommand (U"Objects", U"New", U"Create TableOfReal (Weenink 1985)...", U"Create TableOfReal (Van Nierop 1973)...", 1, DO_TableOfReal_createFromWeeninkData);
 	praat_addMenuCommand (U"Objects", U"New", U"Create simple Confusion...", U"Create TableOfReal (Weenink 1985)...", 1, DO_Confusion_createSimple);
 	praat_addMenuCommand (U"Objects", U"New", U"Create simple Covariance...", U"Create simple Confusion...", 1, DO_Covariance_createSimple);
-	praat_addMenuCommand (U"Objects", U"New", U"Create simple Correlation...", U"Create simple Covariance...", 1, DO_Correlation_createSimple);
 	praat_addMenuCommand (U"Objects", U"New", U"Create empty EditCostsTable...", U"Create simple Covariance...", 1, DO_EditCostsTable_createEmpty);
 
 	praat_addMenuCommand (U"Objects", U"New", U"Create KlattTable example", U"Create TableOfReal (Weenink 1985)...", praat_DEPTH_1 + praat_HIDDEN, DO_KlattTable_createExample);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as characters...", U"Create TextGrid...", praat_HIDDEN, DO_Strings_createAsCharacters);
 	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as tokens...", U"Create TextGrid...", praat_HIDDEN, DO_Strings_createAsTokens);
 
-	praat_addMenuCommand (U"Objects", U"New", U"Create simple Polygon...", nullptr, praat_HIDDEN, DO_Polygon_createSimple);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Polygon (random vertices)...", nullptr, praat_HIDDEN, DO_Polygon_createFromRandomVertices);
-	praat_addMenuCommand (U"Objects", U"New", U"FileInMemory", nullptr, praat_HIDDEN, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create FileInMemory...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_FileInMemory_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create copy from FilesInMemory...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_FileInMemorySet_createCopyFromFilesInMemory);
-		praat_addMenuCommand (U"Objects", U"New", U"Create copy from FileInMemorySet...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_FileInMemorySet_createCopyFromFilesInMemory);
-		praat_addMenuCommand (U"Objects", U"New", U"Create FileInMemorySet from directory contents...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_FileInMemorySet_createFromDirectoryContents);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Sound from raw 16-bit Little Endian file...", U"Read from special sound file", 1, DO_Sound_readFromRawFileLE);
+	praat_addMenuCommand (U"Objects", U"New", U"Create simple Polygon...", 0, praat_HIDDEN, DO_Polygon_createSimple);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Polygon (random vertices)...", 0, praat_HIDDEN, DO_Polygon_createFromRandomVertices);
+	praat_addMenuCommand (U"Objects", U"New", U"FilesInMemory", 0, praat_HIDDEN, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create FileInMemory...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_FileInMemory_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create copy from FilesInMemory...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_FilesInMemory_createCopyFromFilesInMemory);
+		praat_addMenuCommand (U"Objects", U"New", U"Create FilesInMemory from directory contents...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_FilesInMemory_createFromDirectoryContents);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Sound from raw 16-bit Little Endian file...", U"Read from special sound file", 1,
+	                      DO_Sound_readFromRawFileLE);
 	praat_addMenuCommand (U"Objects", U"Open", U"Read Sound from raw 16-bit Big Endian file...", U"Read Sound from raw 16-bit Little Endian file...", 1, DO_Sound_readFromRawFileBE);
 	praat_addMenuCommand (U"Objects", U"Open", U"Read KlattTable from raw text file...", U"Read Matrix from raw text file...", praat_HIDDEN, DO_KlattTable_readFromRawTextFile);
 
-	praat_addAction1 (classActivation, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classActivation, 0, U"Formula...", nullptr, 0, DO_Activation_formula);
-	praat_addAction1 (classActivation, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classActivation, 0, U"To Matrix", nullptr, 0, DO_Activation_to_Matrix);
+	praat_addAction1 (classActivation, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classActivation, 0, U"Formula...", 0, 0,
+	                  DO_Activation_formula);
+	praat_addAction1 (classActivation, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classActivation, 0, U"To Matrix", 0, 0,
+	                  DO_Activation_to_Matrix);
 
-	praat_addAction2 (classActivation, 1, classCategories, 1, U"To TableOfReal", nullptr, 0, DO_Matrix_Categories_to_TableOfReal);
+	praat_addAction2 (classActivation, 1, classCategories, 1, U"To TableOfReal", 0, 0, DO_Matrix_Categories_to_TableOfReal);
 
-	praat_addAction1 (classBarkFilter, 0, U"BarkFilter help", nullptr, 0, DO_BarkFilter_help);
+	praat_addAction1 (classBarkFilter, 0, U"BarkFilter help", 0, 0, DO_BarkFilter_help);
 	praat_FilterBank_all_init (classBarkFilter);	// deprecated 2014
 	praat_addAction1 (classBarkFilter, 0, U"Draw spectrum (slice)...", U"Draw filters...", praat_DEPTH_1, DO_BarkFilter_drawSpectrum);	// deprecated 2014
 	praat_addAction1 (classBarkFilter, 1, U"Draw filter functions...", U"Draw filters...", praat_DEPTH_1, DO_BarkFilter_drawSekeyHansonFilterFunctions);	// deprecated 2014
 	praat_addAction1 (classBarkFilter, 0, U"Paint...", U"Draw filters...", praat_DEPTH_1, DO_BarkFilter_paint);	// deprecated 2014
-	praat_addAction1 (classBarkFilter, 0, U"To BarkSpectrogram", nullptr, 0, DO_BarkFilter_to_BarkSpectrogram);
+	praat_addAction1 (classBarkFilter, 0, U"To BarkSpectrogram", 0, 0, DO_BarkFilter_to_BarkSpectrogram);
 
-	praat_addAction1 (classBarkSpectrogram, 0, U"BarkSpectrogram help", nullptr, 0, DO_BarkSpectrogram_help);
+	praat_addAction1 (classBarkSpectrogram, 0, U"BarkSpectrogram help", 0, 0, DO_BarkSpectrogram_help);
 	praat_BandFilterSpectrogram_draw_init (classBarkSpectrogram);
-	praat_addAction1 (classBarkSpectrogram, 0, U"Paint image...", nullptr, 1, DO_BarkSpectrogram_paintImage);
-	praat_addAction1 (classBarkSpectrogram, 0, U"Draw Sekey-Hanson auditory filters...", nullptr, 1, DO_BarkSpectrogram_drawSekeyHansonAuditoryFilters);
-	praat_addAction1 (classBarkSpectrogram, 0, U"Draw spectrum at nearest time slice...", nullptr, 1, DO_BarkSpectrogram_drawSpectrumAtNearestTimeSlice);
-	praat_addAction1 (classBarkSpectrogram, 0, QUERY_BUTTON, nullptr, 0, nullptr);
+	praat_addAction1 (classBarkSpectrogram, 0, U"Paint image...", 0, 1, DO_BarkSpectrogram_paintImage);
+	praat_addAction1 (classBarkSpectrogram, 0, U"Draw Sekey-Hanson auditory filters...", 0, 1, DO_BarkSpectrogram_drawSekeyHansonAuditoryFilters);
+	praat_addAction1 (classBarkSpectrogram, 0, U"Draw spectrum at nearest time slice...", 0, 1, DO_BarkSpectrogram_drawSpectrumAtNearestTimeSlice);
+	praat_addAction1 (classBarkSpectrogram, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_BandFilterSpectrogram_query_init (classBarkSpectrogram);
-	praat_addAction1 (classBarkSpectrogram, 0, U"Equalize intensities...", nullptr, 0, DO_BandFilterSpectrogram_equalizeIntensities);
-	praat_addAction1 (classBarkSpectrogram, 0, U"To Intensity", nullptr, 0, DO_BandFilterSpectrogram_to_Intensity);
-	praat_addAction1 (classBarkSpectrogram, 0, U"To Matrix...", nullptr, 0, DO_BandFilterSpectrogram_to_Matrix);
-	praat_addAction1 (classBarkSpectrogram, 2, U"Cross-correlate...", nullptr, 0, DO_BandFilterSpectrograms_crossCorrelate);
-	praat_addAction1 (classBarkSpectrogram, 2, U"Convolve...", nullptr, 0, DO_BandFilterSpectrograms_convolve);
+	praat_addAction1 (classBarkSpectrogram, 0, U"Equalize intensities...", 0, 0, DO_BandFilterSpectrogram_equalizeIntensities);
+	praat_addAction1 (classBarkSpectrogram, 0, U"To Intensity", 0, 0, DO_BandFilterSpectrogram_to_Intensity);
+	praat_addAction1 (classBarkSpectrogram, 0, U"To Matrix...", 0, 0, DO_BandFilterSpectrogram_to_Matrix);
+	praat_addAction1 (classBarkSpectrogram, 2, U"Cross-correlate...", 0, 0, DO_BandFilterSpectrograms_crossCorrelate);
+	praat_addAction1 (classBarkSpectrogram, 2, U"Convolve...", 0, 0, DO_BandFilterSpectrograms_convolve);
 	
 	
-	praat_addAction1 (classCategories, 0, U"View & Edit", nullptr, 0, DO_Categories_edit);
-	praat_addAction1 (classCategories, 0, U"Edit", nullptr, praat_HIDDEN, DO_Categories_edit); // deprecated 2015
-	praat_addAction1 (classCategories, 0, QUERY_BUTTON, nullptr, 0, nullptr);
+	praat_addAction1 (classCategories, 0, U"Edit", 0, 0, DO_Categories_edit);
+	praat_addAction1 (classCategories, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_addAction1 (classCategories, 1, U"Get number of categories", QUERY_BUTTON, 1, DO_Categories_getNumberOfCategories);
 	praat_addAction1 (classCategories, 2, U"Get difference", QUERY_BUTTON, praat_HIDDEN | praat_DEPTH_1, DO_Categories_difference);
 	praat_addAction1 (classCategories, 2, U"Get number of differences", QUERY_BUTTON, 1, DO_Categories_getNumberOfDifferences);
 	praat_addAction1 (classCategories, 2, U"Get fraction different", QUERY_BUTTON, 1, DO_Categories_getFractionDifferent);
-	praat_addAction1 (classCategories, 0, MODIFY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction1 (classCategories, 1, U"Append category...", MODIFY_BUTTON, 1, DO_Categories_append);
-	praat_addAction1 (classCategories, 1, U"Append 1 category...", U"Append category...", praat_HIDDEN | praat_DEPTH_1, DO_Categories_append);
-	praat_addAction1 (classCategories, 0, U"Extract", nullptr, 0, nullptr);
-	praat_addAction1 (classCategories, 0, U"To unique Categories", nullptr, 0, DO_Categories_selectUniqueItems);
-	praat_addAction1 (classCategories, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classCategories, 2, U"To Confusion", nullptr, 0, DO_Categories_to_Confusion);
-	praat_addAction1 (classCategories, 0, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction1 (classCategories, 2, U"Join", nullptr, 0, DO_Categories_join);
-	praat_addAction1 (classCategories, 0, U"Permute items", nullptr, 0, DO_Categories_permuteItems);
-	praat_addAction1 (classCategories, 0, U"To Strings", nullptr, 0, DO_Categories_to_Strings);
-
-	praat_addAction1 (classChebyshevSeries, 0, U"ChebyshevSeries help", nullptr, 0, DO_ChebyshevSeries_help);
+	praat_addAction1 (classCategories, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classCategories, 1, U"Append 1 category...", MODIFY_BUTTON,
+	                  1, DO_Categories_append);
+	praat_addAction1 (classCategories, 0, U"Extract", 0, 0, 0);
+	praat_addAction1 (classCategories, 0, U"To unique Categories", 0, 0,
+	                  DO_Categories_selectUniqueItems);
+	praat_addAction1 (classCategories, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classCategories, 2, U"To Confusion", 0, 0,
+	                  DO_Categories_to_Confusion);
+	praat_addAction1 (classCategories, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classCategories, 2, U"Join", 0, 0, DO_Categories_join);
+	praat_addAction1 (classCategories, 0, U"Permute items", 0, 0, DO_Categories_permuteItems);
+	praat_addAction1 (classCategories, 0, U"To Strings", 0, 0,
+	                  DO_Categories_to_Strings);
+
+	praat_addAction1 (classChebyshevSeries, 0, U"ChebyshevSeries help", 0, 0,
+	                  DO_ChebyshevSeries_help);
 	praat_FunctionTerms_init (classChebyshevSeries);
-	praat_addAction1 (classChebyshevSeries, 0, U"To Polynomial", U"Analyse", 0, DO_ChebyshevSeries_to_Polynomial);
-
-	praat_addAction1 (classCCA, 1, U"Draw eigenvector...", nullptr, 0, DO_CCA_drawEigenvector);
-	praat_addAction1 (classCCA, 1, U"Get number of correlations", nullptr, 0, DO_CCA_getNumberOfCorrelations);
-	praat_addAction1 (classCCA, 1, U"Get correlation...", nullptr, 0, DO_CCA_getCorrelationCoefficient);
-	praat_addAction1 (classCCA, 1, U"Get eigenvector element...", nullptr, 0, DO_CCA_getEigenvectorElement);
-	praat_addAction1 (classCCA, 1, U"Get zero correlation probability...", nullptr, 0, DO_CCA_getZeroCorrelationProbability);
-
-	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"To TableOfReal (scores)...", nullptr, 0, DO_CCA_and_TableOfReal_scores);
-	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"To TableOfReal (loadings)", nullptr, 0, DO_CCA_and_TableOfReal_factorLoadings);
-	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"Predict...", nullptr, 0, DO_CCA_and_TableOfReal_predict);
-	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"To TableOfReal (loadings)", nullptr, 0, DO_CCA_and_Correlation_factorLoadings);
-	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"Get variance fraction...", nullptr, 0, DO_CCA_and_Correlation_getVarianceFraction);
-	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"Get redundancy (sl)...", nullptr, 0, DO_CCA_and_Correlation_getRedundancy_sl);
+	praat_addAction1 (classChebyshevSeries, 0, U"To Polynomial", U"Analyse",
+	                  0, DO_ChebyshevSeries_to_Polynomial);
+
+	praat_addAction1 (classCCA, 1, U"Draw eigenvector...", 0, 0,
+	                  DO_CCA_drawEigenvector);
+	praat_addAction1 (classCCA, 1, U"Get number of correlations", 0, 0,
+	                  DO_CCA_getNumberOfCorrelations);
+	praat_addAction1 (classCCA, 1, U"Get correlation...", 0, 0,
+	                  DO_CCA_getCorrelationCoefficient);
+	praat_addAction1 (classCCA, 1, U"Get eigenvector element...", 0, 0, DO_CCA_getEigenvectorElement);
+	praat_addAction1 (classCCA, 1, U"Get zero correlation probability...", 0, 0, DO_CCA_getZeroCorrelationProbability);
+
+	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"To TableOfReal (scores)...",
+	                  0, 0, DO_CCA_and_TableOfReal_scores);
+	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"To TableOfReal (loadings)",
+	                  0, 0, DO_CCA_and_TableOfReal_factorLoadings);
+	praat_addAction2 (classCCA, 1, classTableOfReal, 1, U"Predict...", 0, 0,
+	                  DO_CCA_and_TableOfReal_predict);
+	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"To TableOfReal (loadings)",
+	                  0, 0, DO_CCA_and_Correlation_factorLoadings);
+	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"Get variance fraction...",
+	                  0, 0, DO_CCA_and_Correlation_getVarianceFraction);
+	praat_addAction2 (classCCA, 1, classCorrelation, 1, U"Get redundancy (sl)...",
+	                  0, 0, DO_CCA_and_Correlation_getRedundancy_sl);
 	
 	
-	praat_addAction1 (classComplexSpectrogram, 0, U"ComplexSpectrogram help", nullptr, 0, DO_ComplexSpectrogram_help);
-	praat_addAction1 (classComplexSpectrogram, 0, DRAW_BUTTON, nullptr, 0, nullptr);
-	praat_addAction1 (classComplexSpectrogram, 0, U"To Sound...", nullptr, 0, DO_ComplexSpectrogram_to_Sound);
-	praat_addAction1 (classComplexSpectrogram, 0, U"Down to Spectrogram", nullptr, 0, DO_ComplexSpectrogram_to_Spectrogram);
-	praat_addAction1 (classComplexSpectrogram, 0, U"To Spectrum (slice)...", nullptr, 0, DO_ComplexSpectrogram_to_Spectrum);
+	praat_addAction1 (classComplexSpectrogram, 0, U"ComplexSpectrogram help", 0, 0, DO_ComplexSpectrogram_help);
+	praat_addAction1 (classComplexSpectrogram, 0, DRAW_BUTTON, 0, 0, 0);
+	praat_addAction1 (classComplexSpectrogram, 0, U"To Sound...", 0, 0, DO_ComplexSpectrogram_to_Sound);
+	praat_addAction1 (classComplexSpectrogram, 0, U"Down to Spectrogram", 0, 0, DO_ComplexSpectrogram_to_Spectrogram);
+	praat_addAction1 (classComplexSpectrogram, 0, U"To Spectrum (slice)...", 0, 0, DO_ComplexSpectrogram_to_Spectrum);
 	//praat_addAction1 (classComplexSpectrogram, 0, U"Paint...", 0, 1, DO_Spectrogram_paint);
 
-	praat_addAction1 (classConfusion, 0, U"Confusion help", nullptr, 0, DO_Confusion_help);
+	praat_addAction1 (classConfusion, 0, U"Confusion help", 0, 0, DO_Confusion_help);
 	praat_TableOfReal_init2 (classConfusion);
-	praat_removeAction (classConfusion, nullptr, nullptr, U"Draw as numbers...");
-	praat_removeAction (classConfusion, nullptr, nullptr, U"Sort by label...");
-	praat_removeAction (classConfusion, nullptr, nullptr, U"Sort by column...");
+	praat_removeAction (classConfusion, NULL, NULL, U"Draw as numbers...");
+	praat_removeAction (classConfusion, NULL, NULL, U"Sort by label...");
+	praat_removeAction (classConfusion, NULL, NULL, U"Sort by column...");
 	praat_addAction1 (classConfusion, 0, U"Draw as numbers...", U"Draw -", 1, DO_Confusion_drawAsNumbers);
 	praat_addAction1 (classConfusion, 1, U"Get value (labels)...", U"Get value...", 1, DO_Confusion_getValue);
-	praat_addAction1 (classConfusion, 0, U"-- confusion statistics --", U"Get value (labels)...", 1, nullptr);
+	praat_addAction1 (classConfusion, 0, U"-- confusion statistics --", U"Get value (labels)...", 1, 0);
 	praat_addAction1 (classConfusion, 1, U"Get fraction correct", U"-- confusion statistics --", 1, DO_Confusion_getFractionCorrect);
 	praat_addAction1 (classConfusion, 1, U"Get stimulus sum...", U"Get fraction correct", 1, DO_Confusion_getStimulusSum);
 	praat_addAction1 (classConfusion, 1, U"Get row sum...", U"Get fraction correct", praat_DEPTH_1 | praat_HIDDEN, DO_TableOfReal_getRowSum);
@@ -8952,19 +8429,22 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classConfusion, 1, U"Get grand sum", U"Get response sum...", 1, DO_TableOfReal_getGrandSum);
 	praat_addAction1 (classConfusion, 0, U"Increase...", U"Formula...", 1, DO_Confusion_increase);
 	praat_addAction1 (classConfusion, 0, U"To TableOfReal (marginals)", U"To TableOfReal", 0, DO_Confusion_to_TableOfReal_marginals);
-	praat_addAction1 (classConfusion, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classConfusion, 0, U"Condense...", nullptr, praat_HIDDEN, DO_Confusion_condense);
-	praat_addAction1 (classConfusion, 0, U"Group...", nullptr, 0, DO_Confusion_group);
-	praat_addAction1 (classConfusion, 0, U"Group stimuli...", nullptr, 0, DO_Confusion_groupStimuli);
-	praat_addAction1 (classConfusion, 0, U"Group responses...", nullptr, 0, DO_Confusion_groupResponses);
-	praat_addAction1 (classConfusion, 2, U"To difference matrix", nullptr, 0, DO_Confusion_difference);
+	praat_addAction1 (classConfusion, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classConfusion, 0, U"Condense...", 0, praat_HIDDEN, DO_Confusion_condense);
+	praat_addAction1 (classConfusion, 0, U"Group...", 0, 0, DO_Confusion_group);
+	praat_addAction1 (classConfusion, 0, U"Group stimuli...", 0, 0, DO_Confusion_groupStimuli);
+	praat_addAction1 (classConfusion, 0, U"Group responses...", 0, 0, DO_Confusion_groupResponses);
+	praat_addAction1 (classConfusion, 2, U"To difference matrix", 0, 0,
+	                  DO_Confusion_difference);
 	
-	praat_addAction2 (classConfusion, 1, classClassificationTable, 1, U"Increase confusion count", nullptr, 0, DO_Confusion_and_ClassificationTable_increase);
+	praat_addAction2 (classConfusion, 1, classClassificationTable, 1, U"Increase confusion count", 0, 0, DO_Confusion_and_ClassificationTable_increase);
 
-	praat_addAction2 (classConfusion, 1, classMatrix, 1, U"Draw", nullptr, 0, nullptr);
-	praat_addAction2 (classConfusion, 1, classMatrix, 1, U"Draw confusion...", nullptr, 0, DO_Confusion_Matrix_draw);
+	praat_addAction2 (classConfusion, 1, classMatrix, 1, U"Draw", 0, 0, 0);
+	praat_addAction2 (classConfusion, 1, classMatrix, 1, U"Draw confusion...",
+	                  0, 0, DO_Confusion_Matrix_draw);
 
-	praat_addAction1 (classCovariance, 0, U"Covariance help", nullptr, 0, DO_Covariance_help);
+	praat_addAction1 (classCovariance, 0, U"Covariance help", 0, 0,
+	                  DO_Covariance_help);
 	praat_SSCP_as_TableOfReal_init (classCovariance);
 	praat_SSCP_query_init (classCovariance);
 	praat_SSCP_extract_init (classCovariance);
@@ -8979,51 +8459,41 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classCovariance, 2, U"Difference", U"Report multivariate mean difference...", praat_DEPTH_1 | praat_HIDDEN, DO_Covariances_reportEquality);
 	praat_addAction1 (classCovariance, 0, U"Report equality of covariances", U"Report multivariate mean difference...", praat_DEPTH_1 | praat_HIDDEN, DO_Covariances_reportEquality);
 
-	praat_addAction1 (classCovariance, 0, U"To TableOfReal (random sampling)...", nullptr, 0, DO_Covariance_to_TableOfReal_randomSampling);
+	praat_addAction1 (classCovariance, 0, U"To TableOfReal (random sampling)...", 0, 0, DO_Covariance_to_TableOfReal_randomSampling);
 
-	praat_addAction1 (classCovariance, 0, U"To Correlation", nullptr, 0, DO_Covariance_to_Correlation);
-	praat_addAction1 (classCovariance, 0, U"To PCA", nullptr, 0, DO_Covariance_to_PCA);
-	
-	praat_addAction1 (classCovariance, 0, U"Pool", nullptr, 0, DO_Covariances_pool);
+	praat_addAction1 (classCovariance, 0, U"To Correlation", 0, 0, DO_Covariance_to_Correlation);
+	praat_addAction1 (classCovariance, 0, U"To PCA", 0, 0, DO_Covariance_to_PCA);
 
-	praat_addAction2 (classCovariance, 1, classTableOfReal, 1, U"To TableOfReal (mahalanobis)...", nullptr, 0, DO_Covariance_and_TableOfReal_mahalanobis);
+	praat_addAction2 (classCovariance, 1, classTableOfReal, 1, U"To TableOfReal (mahalanobis)...", 0, 0, DO_Covariance_and_TableOfReal_mahalanobis);
 
-	praat_addAction1 (classClassificationTable, 0, U"ClassificationTable help", nullptr, 0, DO_ClassificationTable_help);
+	praat_addAction1 (classClassificationTable, 0, U"ClassificationTable help", 0, 0, DO_ClassificationTable_help);
 	praat_TableOfReal_init (classClassificationTable);
 	praat_addAction1 (classClassificationTable, 0, U"Get class index at maximum in row...", U"Get column index...", 1, DO_ClassificationTable_getClassIndexAtMaximumInRow);
 	praat_addAction1 (classClassificationTable, 0, U"Get class label at maximum in row...", U"Get class index at maximum in row...", 1, DO_ClassificationTable_getClassLabelAtMaximumInRow);
-	praat_addAction1 (classClassificationTable, 0, U"To Confusion", nullptr, praat_HIDDEN, DO_ClassificationTable_to_Confusion_old); // deprecated 2014
-	praat_addAction1 (classClassificationTable, 0, U"To Confusion...", nullptr, 0, DO_ClassificationTable_to_Confusion);
-	praat_addAction1 (classClassificationTable, 0, U"To Correlation (columns)", nullptr, 0, DO_ClassificationTable_to_Correlation_columns);
-	praat_addAction1 (classClassificationTable, 0, U"To Strings (max. prob.)", nullptr, 0, DO_ClassificationTable_to_Strings_maximumProbability);
+	praat_addAction1 (classClassificationTable, 0, U"To Confusion", 0, praat_HIDDEN, DO_ClassificationTable_to_Confusion_old); // deprecated 2014
+	praat_addAction1 (classClassificationTable, 0, U"To Confusion...", 0, 0, DO_ClassificationTable_to_Confusion);
+	praat_addAction1 (classClassificationTable, 0, U"To Correlation (columns)", 0, 0, DO_ClassificationTable_to_Correlation_columns);
+	praat_addAction1 (classClassificationTable, 0, U"To Strings (max. prob.)", 0, 0, DO_ClassificationTable_to_Strings_maximumProbability);
 
-	praat_addAction1 (classCorrelation, 0, U"Correlation help", nullptr, 0, DO_Correlation_help);
+	praat_addAction1 (classCorrelation, 0, U"Correlation help", 0, 0, DO_Correlation_help);
 	praat_TableOfReal_init2 (classCorrelation);
 	praat_SSCP_query_init (classCorrelation);
 	praat_SSCP_extract_init (classCorrelation);
 	praat_addAction1 (classCorrelation, 1, U"Get diagonality (bartlett)...", U"Get ln(determinant)", 1, DO_Correlation_testDiagonality_bartlett);
-	praat_addAction1 (classCorrelation, 0, U"Confidence intervals...", nullptr, 0, DO_Correlation_confidenceIntervals);
-	praat_addAction1 (classCorrelation, 0, U"To PCA", nullptr, 0, DO_Correlation_to_PCA);
+	praat_addAction1 (classCorrelation, 0, U"Confidence intervals...", 0, 0, DO_Correlation_confidenceIntervals);
+	praat_addAction1 (classCorrelation, 0, U"To PCA", 0, 0, DO_Correlation_to_PCA);
 
 	praat_addAction1 (classDiscriminant, 0, U"Discriminant help", 0, 0, DO_Discriminant_help);
-	praat_addAction1 (classDiscriminant, 0, DRAW_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDiscriminant, 0, U"Draw eigenvalues...", nullptr, 1, DO_Discriminant_drawEigenvalues);
-	praat_addAction1 (classDiscriminant, 0, U"Draw eigenvalues (scree)...", nullptr, praat_DEPTH_1 | praat_HIDDEN, DO_Eigen_drawEigenvalues_scree);
-	praat_addAction1 (classDiscriminant, 0, U"Draw eigenvector...", nullptr, 1, DO_Discriminant_drawEigenvector);
-
+	praat_addAction1 (classDiscriminant, 0, DRAW_BUTTON, 0, 0, 0);
+	praat_Eigen_draw_init (classDiscriminant);
 	praat_addAction1 (classDiscriminant, 0, U"-- sscps --", 0, 1, 0);
 	praat_addAction1 (classDiscriminant, 0, U"Draw sigma ellipses...", 0, 1, DO_Discriminant_drawSigmaEllipses);
 	praat_addAction1 (classDiscriminant, 0, U"Draw one sigma ellipse...", 0, 1, DO_Discriminant_drawOneSigmaEllipse);
 	praat_addAction1 (classDiscriminant, 0, U"Draw confidence ellipses...", 0, 1, DO_Discriminant_drawConfidenceEllipses);
 
-	praat_addAction1 (classDiscriminant, 1, QUERY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDiscriminant, 1, U"-- eigen structure --", nullptr, 1, 0);
-	praat_addAction1 (classDiscriminant, 1, U"Get eigenvalue...", nullptr, 1, DO_Discriminant_getEigenvalue);
-	praat_addAction1 (classDiscriminant, 1, U"Get sum of eigenvalues...", nullptr, 1, DO_Discriminant_getSumOfEigenvalues);
-	praat_addAction1 (classDiscriminant, 1, U"Get number of eigenvectors", nullptr, 1, DO_Discriminant_getNumberOfEigenvalues);
-	praat_addAction1 (classDiscriminant, 1, U"Get eigenvector dimension", nullptr, 1, DO_Discriminant_getDimension);
-	praat_addAction1 (classDiscriminant, 1, U"Get eigenvector element...", nullptr, 1, DO_Discriminant_getEigenvectorElement);
-
+	praat_addAction1 (classDiscriminant, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDiscriminant, 1, U"-- eigen structure --", 0, 1, 0);
+	praat_Eigen_query_init (classDiscriminant);
 	praat_addAction1 (classDiscriminant, 1, U"-- discriminant --", 0, 1, 0);
 	praat_addAction1 (classDiscriminant, 1, U"Get number of functions", 0, 1, DO_Discriminant_getNumberOfFunctions);
 	praat_addAction1 (classDiscriminant, 1, U"Get dimension of functions", 0, 1, DO_Discriminant_getDimensionOfFunctions);
@@ -9044,24 +8514,23 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classDiscriminant, 1, U"Get ln(determinant_group)...", 0, 1, DO_Discriminant_getLnDeterminant_group);
 	praat_addAction1 (classDiscriminant, 1, U"Get ln(determinant_total)", 0, 1, DO_Discriminant_getLnDeterminant_total);
 
-	praat_addAction1 (classDiscriminant, 0, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDiscriminant, 1, U"Invert eigenvector...", nullptr, 1, DO_Discriminant_invertEigenvector);
-	praat_addAction1 (classDiscriminant, 0, U"Align eigenvectors", nullptr, 1, DO_Eigens_alignEigenvectors);
+	praat_addAction1 (classDiscriminant, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDiscriminant, 1, U"Invert eigenvector...", 0, 1, DO_Discriminant_invertEigenvector);
+	praat_addAction1 (classDiscriminant, 0, U"Align eigenvectors", 0, 1, DO_Eigens_alignEigenvectors);
 
-	praat_addAction1 (classDiscriminant, 0, EXTRACT_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDiscriminant, 1, U"Extract pooled within-groups SSCP", nullptr, 1,
+	praat_addAction1 (classDiscriminant, 0, EXTRACT_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDiscriminant, 1, U"Extract pooled within-groups SSCP", 0, 1,
 	                  DO_Discriminant_extractPooledWithinGroupsSSCP);
-	praat_addAction1 (classDiscriminant, 1, U"Extract within-group SSCP...", nullptr, 1, DO_Discriminant_extractWithinGroupSSCP);
-	praat_addAction1 (classDiscriminant, 1, U"Extract between-groups SSCP", nullptr, 1, DO_Discriminant_extractBetweenGroupsSSCP);
-	praat_addAction1 (classDiscriminant, 1, U"Extract group centroids", nullptr, 1, DO_Discriminant_extractGroupCentroids);
-	praat_addAction1 (classDiscriminant, 1, U"Extract group standard deviations", nullptr, 1, DO_Discriminant_extractGroupStandardDeviations);
-	praat_addAction1 (classDiscriminant, 1, U"Extract group labels", nullptr, 1, DO_Discriminant_extractGroupLabels);
+	praat_addAction1 (classDiscriminant, 1, U"Extract within-group SSCP...", 0, 1, DO_Discriminant_extractWithinGroupSSCP);
+	praat_addAction1 (classDiscriminant, 1, U"Extract between-groups SSCP", 0, 1, DO_Discriminant_extractBetweenGroupsSSCP);
+	praat_addAction1 (classDiscriminant, 1, U"Extract group centroids", 0, 1, DO_Discriminant_extractGroupCentroids);
+	praat_addAction1 (classDiscriminant, 1, U"Extract group standard deviations", 0, 1, DO_Discriminant_extractGroupStandardDeviations);
+	praat_addAction1 (classDiscriminant, 1, U"Extract group labels", 0, 1, DO_Discriminant_extractGroupLabels);
 
-	praat_addAction1 (classDiscriminant , 0, U"& TableOfReal: To ClassificationTable?", nullptr, 0, DO_hint_Discriminant_and_TableOfReal_to_ClassificationTable);
+	praat_addAction1 (classDiscriminant , 0, U"& TableOfReal: To ClassificationTable?", 0, 0, DO_hint_Discriminant_and_TableOfReal_to_ClassificationTable);
 
-	/*		praat_addAction1 (classDiscriminant, 1, U"Extract coefficients...", nullptr, 1, DO_Discriminant_extractCoefficients);*/
+	/*		praat_addAction1 (classDiscriminant, 1, U"Extract coefficients...", 0, 1, DO_Discriminant_extractCoefficients);*/
 
-	//praat_addAction2 (classDiscriminant, 1, classMatrix, 1, U"To Matrix (pc)...", nullptr, 0, DO_Discriminant_and_Matrix_to_Matrix_pc);
 
 	praat_Eigen_Spectrogram_project (classDiscriminant, classSpectrogram);
 	praat_Eigen_Spectrogram_project (classDiscriminant, classBarkSpectrogram);
@@ -9071,161 +8540,159 @@ void praat_uvafon_David_init () {
 	praat_Eigen_Matrix_project (classDiscriminant, classBarkFilter); // deprecated 2014
 	praat_Eigen_Matrix_project (classDiscriminant, classMelFilter); // deprecated 2014
 
-	praat_addAction2 (classDiscriminant, 1, classPattern, 1, U"To Categories...", nullptr, 0, DO_Discriminant_and_Pattern_to_Categories);
-	praat_addAction2 (classDiscriminant, 1, classSSCP, 1, U"Project", nullptr, 0, DO_Eigen_and_SSCP_project);
-	praat_addAction2 (classDiscriminant, 1, classStrings, 1, U"Modify Discriminant", nullptr, 0, 0);
-	praat_addAction2 (classDiscriminant, 1, classStrings, 1, U"Set group labels", nullptr, 0, DO_Discriminant_setGroupLabels);
+	praat_addAction2 (classDiscriminant, 1, classPattern, 1, U"To Categories...", 0, 0, DO_Discriminant_and_Pattern_to_Categories);
+	praat_addAction2 (classDiscriminant, 1, classSSCP, 1, U"Project", 0, 0, DO_Eigen_and_SSCP_project);
+	praat_addAction2 (classDiscriminant, 1, classStrings, 1, U"Modify Discriminant", 0, 0, 0);
+	praat_addAction2 (classDiscriminant, 1, classStrings, 1, U"Set group labels", 0, 0, DO_Discriminant_setGroupLabels);
 
-	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To Configuration...", nullptr, 0, DO_Discriminant_and_TableOfReal_to_Configuration);
-	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To ClassificationTable...", nullptr, 0,
+	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To Configuration...", 0, 0, DO_Discriminant_and_TableOfReal_to_Configuration);
+	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To ClassificationTable...", 0, 0,
 	                  DO_Discriminant_and_TableOfReal_to_ClassificationTable);
-	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To TableOfReal (mahalanobis)...", nullptr, 0, DO_Discriminant_and_TableOfReal_mahalanobis);
-
-
-	praat_addAction1 (classDTW, 0, U"DTW help", nullptr, 0, DO_DTW_help);
-	praat_addAction1 (classDTW, 0, DRAW_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDTW, 0, U"Draw path...", nullptr, 1, DO_DTW_drawPath);
-	praat_addAction1 (classDTW, 0, U"Paint distances...", nullptr, 1, DO_DTW_paintDistances);
-	praat_addAction1 (classDTW, 0, U"Draw warp (x)...", nullptr, 1, DO_DTW_drawWarpX);
-	praat_addAction1 (classDTW, 0, U"Draw warp (y)...", nullptr, 1, DO_DTW_drawWarpY);
-	praat_addAction1 (classDTW, 0, QUERY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDTW, 1, U"Query time domains", nullptr, 1, 0);
-	praat_addAction1 (classDTW, 1, U"Get start time (x)", nullptr, 2, DO_DTW_getStartTimeX);
-	praat_addAction1 (classDTW, 1, U"Get end time (x)", nullptr, 2, DO_DTW_getEndTimeX);
-	praat_addAction1 (classDTW, 1, U"Get total duration (x)", nullptr, 2, DO_DTW_getTotalDurationX);
-	praat_addAction1 (classDTW, 1, U"-- time domain x from y separator --", nullptr, 2, 0);
-	praat_addAction1 (classDTW, 1, U"Get start time (y)", nullptr, 2, DO_DTW_getStartTimeY);
-	praat_addAction1 (classDTW, 1, U"Get end time (y)", nullptr, 2, DO_DTW_getEndTimeY);
-	praat_addAction1 (classDTW, 1, U"Get total duration (y)", nullptr, 2, DO_DTW_getTotalDurationY);
-	praat_addAction1 (classDTW, 1, U"Query time samplings", nullptr, 1, 0);
-	praat_addAction1 (classDTW, 1, U"Get number of frames (x)", nullptr, 2, DO_DTW_getNumberOfFramesX);
-	praat_addAction1 (classDTW, 1, U"Get time step (x)", nullptr, 2, DO_DTW_getTimeStepX);
-	praat_addAction1 (classDTW, 1, U"Get time from frame number (x)...", nullptr, 2, DO_DTW_getTimeFromFrameNumberX);
-	praat_addAction1 (classDTW, 1, U"Get frame number from time (x)...", nullptr, 2, DO_DTW_getFrameNumberFromTimeX);
-	praat_addAction1 (classDTW, 1, U"-- time sampling x from y separator --", nullptr, 2, 0);
-	praat_addAction1 (classDTW, 1, U"Get number of frames (y)", nullptr, 2, DO_DTW_getNumberOfFramesY);
-	praat_addAction1 (classDTW, 1, U"Get time step (y)", nullptr, 2, DO_DTW_getTimeStepY);
-	praat_addAction1 (classDTW, 1, U"Get time from frame number (y)...", nullptr, 2, DO_DTW_getTimeFromFrameNumberY);
-	praat_addAction1 (classDTW, 1, U"Get frame number from time (y)...", nullptr, 2, DO_DTW_getFrameNumberFromTimeY);
-
-	praat_addAction1 (classDTW, 1, U"Get y time from x time...", nullptr, 1, DO_DTW_getYTimeFromXTime);
-	praat_addAction1 (classDTW, 1, U"Get x time from y time...", nullptr, 1, DO_DTW_getXTimeFromYTime);
-	praat_addAction1 (classDTW, 1, U"Get y time...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_DTW_getYTimeFromXTime);
-	praat_addAction1 (classDTW, 1, U"Get x time...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_DTW_getXTimeFromYTime);
-	praat_addAction1 (classDTW, 1, U"Get maximum consecutive steps...", nullptr, 1, DO_DTW_getMaximumConsecutiveSteps);
-	praat_addAction1 (classDTW, 1, U"Get time along path...", nullptr, praat_DEPTH_1 | praat_HIDDEN, DO_DTW_getPathY);
-	praat_addAction1 (classDTW, 1, U"-- distance queries --", nullptr, 1, 0);
-	praat_addAction1 (classDTW, 1, U"Get distance value...", nullptr, 1, DO_DTW_getDistanceValue);
-	praat_addAction1 (classDTW, 1, U"Get minimum distance", nullptr, 1, DO_DTW_getMinimumDistance);
-	praat_addAction1 (classDTW, 1, U"Get maximum distance", nullptr, 1, DO_DTW_getMaximumDistance);
-	praat_addAction1 (classDTW, 1, U"Get distance (weighted)", nullptr, 1, DO_DTW_getWeightedDistance);
-	praat_addAction1 (classDTW, 0, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classDTW, 0, U"Formula (distances)...", nullptr, 1, DO_DTW_formulaDistances);
-	praat_addAction1 (classDTW, 0, U"Set distance value...", nullptr, 1, DO_DTW_setDistanceValue);
-
-	praat_addAction1 (classDTW, 0, U"Analyse", nullptr, 0, 0);
-    praat_addAction1 (classDTW, 0, U"Find path...", nullptr, praat_HIDDEN, DO_DTW_findPath);
-    praat_addAction1 (classDTW, 0, U"Find path (band & slope)...", nullptr, 0, DO_DTW_findPath_bandAndSlope);
-    praat_addAction1 (classDTW, 0, U"To Polygon...", nullptr, 1, DO_DTW_to_Polygon);
-	praat_addAction1 (classDTW, 0, U"To Matrix (distances)", nullptr, 0, DO_DTW_to_Matrix_distances);
-    praat_addAction1 (classDTW, 0, U"To Matrix (cumm. distances)...", nullptr, 0, DO_DTW_to_Matrix_cummulativeDistances);
-	praat_addAction1 (classDTW, 0, U"Swap axes", nullptr, 0, DO_DTW_swapAxes);
-
-	praat_addAction2 (classDTW, 1, classMatrix, 1, U"Replace matrix", nullptr, 0, DO_DTW_and_Matrix_replace);
-	praat_addAction2 (classDTW, 1, classTextGrid, 1, U"To TextGrid (warp times)", nullptr, 0, DO_DTW_and_TextGrid_to_TextGrid);
-	praat_addAction2 (classDTW, 1, classIntervalTier, 1, U"To Table (distances)", nullptr, 0, DO_DTW_and_IntervalTier_to_Table);
-
-    praat_addAction2 (classDTW, 1, classPolygon, 1, U"Find path inside...", nullptr, 0, DO_DTW_and_Polygon_findPathInside);
-    praat_addAction2 (classDTW, 1, classPolygon, 1, U"To Matrix (cumm. distances)...", nullptr, 0, DO_DTW_and_Polygon_to_Matrix_cummulativeDistances);
-	praat_addAction2 (classDTW, 1, classSound, 2, U"Draw...", nullptr, 0, DO_DTW_and_Sounds_draw);
-	praat_addAction2 (classDTW, 1, classSound, 2, U"Draw warp (x)...", nullptr, 0, DO_DTW_and_Sounds_drawWarpX);
-
-	praat_addAction1 (classEditDistanceTable, 1, U"EditDistanceTable help", nullptr, 0, DO_EditDistanceTable_help);
+	praat_addAction2 (classDiscriminant, 1, classTableOfReal, 1, U"To TableOfReal (mahalanobis)...", 0, 0, DO_Discriminant_and_TableOfReal_mahalanobis);
+
+
+	praat_addAction1 (classDTW, 0, U"DTW help", 0, 0, DO_DTW_help);
+	praat_addAction1 (classDTW, 0, DRAW_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDTW, 0, U"Draw path...", 0, 1, DO_DTW_drawPath);
+	praat_addAction1 (classDTW, 0, U"Paint distances...", 0, 1, DO_DTW_paintDistances);
+	praat_addAction1 (classDTW, 0, U"Draw warp (x)...", 0, 1, DO_DTW_drawWarpX);
+	praat_addAction1 (classDTW, 0, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDTW, 1, U"Query time domains", 0, 1, 0);
+	praat_addAction1 (classDTW, 1, U"Get start time (x)", 0, 2, DO_DTW_getStartTimeX);
+	praat_addAction1 (classDTW, 1, U"Get end time (x)", 0, 2, DO_DTW_getEndTimeX);
+	praat_addAction1 (classDTW, 1, U"Get total duration (x)", 0, 2, DO_DTW_getTotalDurationX);
+	praat_addAction1 (classDTW, 1, U"-- time domain x from y separator --", 0, 2, 0);
+	praat_addAction1 (classDTW, 1, U"Get start time (y)", 0, 2, DO_DTW_getStartTimeY);
+	praat_addAction1 (classDTW, 1, U"Get end time (y)", 0, 2, DO_DTW_getEndTimeY);
+	praat_addAction1 (classDTW, 1, U"Get total duration (y)", 0, 2, DO_DTW_getTotalDurationY);
+	praat_addAction1 (classDTW, 1, U"Query time samplings", 0, 1, 0);
+	praat_addAction1 (classDTW, 1, U"Get number of frames (x)", 0, 2, DO_DTW_getNumberOfFramesX);
+	praat_addAction1 (classDTW, 1, U"Get time step (x)", 0, 2, DO_DTW_getTimeStepX);
+	praat_addAction1 (classDTW, 1, U"Get time from frame number (x)...", 0, 2, DO_DTW_getTimeFromFrameNumberX);
+	praat_addAction1 (classDTW, 1, U"Get frame number from time (x)...", 0, 2, DO_DTW_getFrameNumberFromTimeX);
+	praat_addAction1 (classDTW, 1, U"-- time sampling x from y separator --", 0, 2, 0);
+	praat_addAction1 (classDTW, 1, U"Get number of frames (y)", 0, 2, DO_DTW_getNumberOfFramesY);
+	praat_addAction1 (classDTW, 1, U"Get time step (y)", 0, 2, DO_DTW_getTimeStepY);
+	praat_addAction1 (classDTW, 1, U"Get time from frame number (y)...", 0, 2, DO_DTW_getTimeFromFrameNumberY);
+	praat_addAction1 (classDTW, 1, U"Get frame number from time (y)...", 0, 2, DO_DTW_getFrameNumberFromTimeY);
+
+	praat_addAction1 (classDTW, 1, U"Get y time from x time...", 0, 1, DO_DTW_getYTimeFromXTime);
+	praat_addAction1 (classDTW, 1, U"Get x time from y time...", 0, 1, DO_DTW_getXTimeFromYTime);
+	praat_addAction1 (classDTW, 1, U"Get y time...", 0, praat_HIDDEN + praat_DEPTH_1, DO_DTW_getYTimeFromXTime);
+	praat_addAction1 (classDTW, 1, U"Get x time...", 0, praat_HIDDEN + praat_DEPTH_1, DO_DTW_getXTimeFromYTime);
+	praat_addAction1 (classDTW, 1, U"Get maximum consecutive steps...", 0, 1, DO_DTW_getMaximumConsecutiveSteps);
+	praat_addAction1 (classDTW, 1, U"Get time along path...", 0, praat_DEPTH_1 | praat_HIDDEN, DO_DTW_getPathY);
+	praat_addAction1 (classDTW, 1, U"-- distance queries --", 0, 1, 0);
+	praat_addAction1 (classDTW, 1, U"Get distance value...", 0, 1, DO_DTW_getDistanceValue);
+	praat_addAction1 (classDTW, 1, U"Get minimum distance", 0, 1, DO_DTW_getMinimumDistance);
+	praat_addAction1 (classDTW, 1, U"Get maximum distance", 0, 1, DO_DTW_getMaximumDistance);
+	praat_addAction1 (classDTW, 1, U"Get distance (weighted)", 0, 1, DO_DTW_getWeightedDistance);
+	praat_addAction1 (classDTW, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDTW, 0, U"Formula (distances)...", 0, 1, DO_DTW_formulaDistances);
+	praat_addAction1 (classDTW, 0, U"Set distance value...", 0, 1, DO_DTW_setDistanceValue);
+
+	praat_addAction1 (classDTW, 0, U"Analyse", 0, 0, 0);
+    praat_addAction1 (classDTW, 0, U"Find path...", 0, praat_HIDDEN, DO_DTW_findPath);
+    praat_addAction1 (classDTW, 0, U"Find path (band & slope)...", 0, 0, DO_DTW_findPath_bandAndSlope);
+    praat_addAction1 (classDTW, 0, U"To Polygon...", 0, 1, DO_DTW_to_Polygon);
+	praat_addAction1 (classDTW, 0, U"To Matrix (distances)", 0, 0, DO_DTW_to_Matrix_distances);
+    praat_addAction1 (classDTW, 0, U"To Matrix (cumm. distances)...", 0, 0, DO_DTW_to_Matrix_cummulativeDistances);
+	praat_addAction1 (classDTW, 0, U"Swap axes", 0, 0, DO_DTW_swapAxes);
+
+	praat_addAction2 (classDTW, 1, classMatrix, 1, U"Replace matrix", 0, 0, DO_DTW_and_Matrix_replace);
+	praat_addAction2 (classDTW, 1, classTextGrid, 1, U"To TextGrid (warp times)", 0, 0, DO_DTW_and_TextGrid_to_TextGrid);
+	praat_addAction2 (classDTW, 1, classIntervalTier, 1, U"To Table (distances)", 0, 0, DO_DTW_and_IntervalTier_to_Table);
+
+    praat_addAction2 (classDTW, 1, classPolygon, 1, U"Find path inside...", 0, 0, DO_DTW_and_Polygon_findPathInside);
+    praat_addAction2 (classDTW, 1, classPolygon, 1, U"To Matrix (cumm. distances)...", 0, 0, DO_DTW_and_Polygon_to_Matrix_cummulativeDistances);
+	praat_addAction2 (classDTW, 1, classSound, 2, U"Draw...", 0, 0, DO_DTW_and_Sounds_draw);
+	praat_addAction2 (classDTW, 1, classSound, 2, U"Draw warp (x)...", 0, 0, DO_DTW_and_Sounds_drawWarpX);
+
+	praat_addAction1 (classEditDistanceTable, 1, U"EditDistanceTable help", 0, 0, DO_EditDistanceTable_help);
 	praat_EditDistanceTable_as_TableOfReal_init (classEditDistanceTable);
-	praat_addAction1 (classEditDistanceTable, 1, U"To TableOfReal (directions)...", nullptr, praat_HIDDEN, DO_EditDistanceTable_to_TableOfReal_directions);
-	praat_addAction2 (classEditDistanceTable, 1, classEditCostsTable, 1, U"Set new edit costs", nullptr, 0, DO_EditDistanceTable_setEditCosts);
-
-	praat_addAction1 (classEditCostsTable, 1, U"EditCostsTable help", nullptr, 0, DO_EditCostsTable_help);
-	praat_addAction1 (classEditCostsTable, 0, QUERY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classEditCostsTable, 1, U"Get target index...", nullptr, 1, DO_EditCostsTable_getTargetIndex);
-	praat_addAction1 (classEditCostsTable, 1, U"Get source index...", nullptr, 1, DO_EditCostsTable_getSourceIndex);
-	praat_addAction1 (classEditCostsTable, 1, U"Get insertion cost...", nullptr, 1, DO_EditCostsTable_getInsertionCost);
-	praat_addAction1 (classEditCostsTable, 1, U"Get deletion cost...", nullptr, 1, DO_EditCostsTable_getDeletionCost);
-	praat_addAction1 (classEditCostsTable, 1, U"Get substitution cost...", nullptr, 1, DO_EditCostsTable_getSubstitutionCost);
-	praat_addAction1 (classEditCostsTable, 1, U"Get cost (others)...", nullptr, 1, DO_EditCostsTable_getOthersCost);
-	praat_addAction1 (classEditCostsTable, 0, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classEditCostsTable, 1, U"Set target symbol (index)...", nullptr, 1, DO_EditCostsTable_setTargetSymbol_index);
-	praat_addAction1 (classEditCostsTable, 1, U"Set source symbol (index)...", nullptr, 1, DO_EditCostsTable_setSourceSymbol_index);
-	praat_addAction1 (classEditCostsTable, 1, U"Set insertion costs...", nullptr, 1, DO_EditCostsTable_setInsertionCosts);
-	praat_addAction1 (classEditCostsTable, 1, U"Set deletion costs...", nullptr, 1, DO_EditCostsTable_setDeletionCosts);
-	praat_addAction1 (classEditCostsTable, 1, U"Set substitution costs...", nullptr, 1, DO_EditCostsTable_setSubstitutionCosts);
-	praat_addAction1 (classEditCostsTable, 1, U"Set costs (others)...", nullptr, 1, DO_EditCostsTable_setOthersCosts);
-	praat_addAction1 (classEditCostsTable, 1, U"To TableOfReal", nullptr, 0, DO_EditCostsTable_to_TableOfReal);
+	praat_addAction1 (classEditDistanceTable, 1, U"To TableOfReal (directions)...", 0, praat_HIDDEN, DO_EditDistanceTable_to_TableOfReal_directions);
+	praat_addAction2 (classEditDistanceTable, 1, classEditCostsTable, 1, U"Set new edit costs", 0, 0, DO_EditDistanceTable_setEditCosts);
+
+	praat_addAction1 (classEditCostsTable, 1, U"EditCostsTable help", 0, 0, DO_EditCostsTable_help);
+	praat_addAction1 (classEditCostsTable, 0, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classEditCostsTable, 1, U"Get target index...", 0, 1, DO_EditCostsTable_getTargetIndex);
+	praat_addAction1 (classEditCostsTable, 1, U"Get source index...", 0, 1, DO_EditCostsTable_getSourceIndex);
+	praat_addAction1 (classEditCostsTable, 1, U"Get insertion cost...", 0, 1, DO_EditCostsTable_getInsertionCost);
+	praat_addAction1 (classEditCostsTable, 1, U"Get deletion cost...", 0, 1, DO_EditCostsTable_getDeletionCost);
+	praat_addAction1 (classEditCostsTable, 1, U"Get substitution cost...", 0, 1, DO_EditCostsTable_getSubstitutionCost);
+	praat_addAction1 (classEditCostsTable, 1, U"Get cost (others)...", 0, 1, DO_EditCostsTable_getOthersCost);
+	praat_addAction1 (classEditCostsTable, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classEditCostsTable, 1, U"Set target symbol (index)...", 0, 1, DO_EditCostsTable_setTargetSymbol_index);
+	praat_addAction1 (classEditCostsTable, 1, U"Set source symbol (index)...", 0, 1, DO_EditCostsTable_setSourceSymbol_index);
+	praat_addAction1 (classEditCostsTable, 1, U"Set insertion costs...", 0, 1, DO_EditCostsTable_setInsertionCosts);
+	praat_addAction1 (classEditCostsTable, 1, U"Set deletion costs...", 0, 1, DO_EditCostsTable_setDeletionCosts);
+	praat_addAction1 (classEditCostsTable, 1, U"Set substitution costs...", 0, 1, DO_EditCostsTable_setSubstitutionCosts);
+	praat_addAction1 (classEditCostsTable, 1, U"Set costs (others)...", 0, 1, DO_EditCostsTable_setOthersCosts);
+	praat_addAction1 (classEditCostsTable, 1, U"To TableOfReal", 0, 0, DO_EditCostsTable_to_TableOfReal);
 
 	praat_Index_init (classStringsIndex);
-	praat_addAction1 (classIndex, 0, U"Index help", nullptr, 0, DO_Index_help);
-	praat_addAction1 (classStringsIndex, 1, U"Get class label...", nullptr, 0, DO_StringsIndex_getClassLabel);
-	praat_addAction1 (classStringsIndex, 1, U"Get class index...", nullptr, 0, DO_StringsIndex_getClassIndex);
-	praat_addAction1 (classStringsIndex, 1, U"Get label...", nullptr, 0, DO_StringsIndex_getLabel);
-	praat_addAction1 (classIndex, 1, U"Get index...", nullptr, 0, DO_Index_getIndex);
-	praat_addAction1 (classStringsIndex, 1, U"To Strings", nullptr, 0, DO_StringsIndex_to_Strings);
+	praat_addAction1 (classIndex, 0, U"Index help", 0, 0, DO_Index_help);
+	praat_addAction1 (classStringsIndex, 1, U"Get class label...", 0, 0, DO_StringsIndex_getClassLabel);
+	praat_addAction1 (classStringsIndex, 1, U"Get class index...", 0, 0, DO_StringsIndex_getClassIndex);
+	praat_addAction1 (classStringsIndex, 1, U"Get label...", 0, 0, DO_StringsIndex_getLabel);
+	praat_addAction1 (classIndex, 1, U"Get index...", 0, 0, DO_Index_getIndex);
+	praat_addAction1 (classStringsIndex, 1, U"To Strings", 0, 0, DO_StringsIndex_to_Strings);
 
 	praat_addAction1 (classExcitation, 0, U"Synthesize", U"To Formant...", 0, 0);
-	praat_addAction1 (classExcitation, 0, U"To ExcitationList", U"Synthesize", 0, DO_Excitations_to_ExcitationList);
-	praat_addAction1 (classExcitation, 0, U"To Excitations", U"Synthesize", praat_HIDDEN, DO_Excitations_to_ExcitationList);
-
-	praat_addAction1 (classExcitationList, 0, U"Modify", nullptr, 0, 0);
-	praat_addAction1 (classExcitationList, 0, U"Formula...", nullptr, 0, DO_ExcitationList_formula);
-	praat_addAction1 (classExcitationList, 0, U"Extract", nullptr, 0, 0);
-	praat_addAction1 (classExcitationList, 0, U"Extract Excitation...", nullptr, 0, DO_ExcitationList_getItem);
-	praat_addAction1 (classExcitationList, 0, U"Synthesize", nullptr, 0, 0);
-	praat_addAction1 (classExcitationList, 2, U"Append", nullptr, 0, DO_ExcitationList_append);
-	praat_addAction1 (classExcitationList, 0, U"Convert", nullptr, 0, 0);
-	praat_addAction1 (classExcitationList, 0, U"To Pattern...", nullptr, 0, DO_ExcitationList_to_Pattern);
-	praat_addAction1 (classExcitationList, 0, U"To TableOfReal", nullptr, 0, DO_ExcitationList_to_TableOfReal);
-
-	praat_addAction2 (classExcitationList, 1, classExcitation, 0, U"Add to ExcitationList", nullptr, 0, DO_ExcitationList_addItem);
-	praat_addAction2 (classExcitationList, 1, classExcitation, 0, U"Add to Excitations", nullptr, praat_HIDDEN, DO_ExcitationList_addItem);
-
-	praat_addAction1 (classFileInMemory, 1, U"Show as code...", nullptr, 0, DO_FileInMemory_showAsCode);
-	praat_addAction1 (classFileInMemory, 1, U"Set id...", nullptr, 0, DO_FileInMemory_setId);
-	praat_addAction1 (classFileInMemory, 0, U"To FileInMemorySet", nullptr, 0, DO_FilesInMemory_to_FileInMemorySet);
-	praat_addAction1 (classFileInMemory, 0, U"To FilesInMemory", nullptr, praat_HIDDEN, DO_FilesInMemory_to_FileInMemorySet);
-
-	praat_addAction1 (classFileInMemorySet, 1, U"Show as code...", nullptr, 0, DO_FileInMemorySet_showAsCode);
-	praat_addAction1 (classFileInMemorySet, 1, U"Show one file as code...", nullptr, 0, DO_FileInMemorySet_showOneFileAsCode);
-	praat_addAction1 (classFileInMemorySet, 2, U"Merge", nullptr, 0, DO_FileInMemorySets_merge);
-	praat_addAction1 (classFileInMemorySet, 0, U"To Strings (id)", nullptr, 0, DO_FileInMemorySet_to_Strings_id);
-
-	praat_addAction2 (classFileInMemorySet, 1, classFileInMemory, 0, U"Add items to Collection", nullptr, 0, DO_FileInMemorySet_addItems);
-
-	praat_addAction1 (classFormantFilter, 0, U"FormantFilter help", nullptr, 0, DO_FormantFilter_help);
+	praat_addAction1 (classExcitation, 0, U"To Excitations", U"Synthesize", 0, DO_Excitation_to_Excitations);
+
+	praat_addAction1 (classExcitations, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classExcitations, 0, U"Formula...", 0, 0, DO_Excitations_formula);
+	praat_addAction1 (classExcitations, 0, U"Extract", 0, 0, 0);
+	praat_addAction1 (classExcitations, 0, U"Extract Excitation...", 0, 0, DO_Excitations_getItem);
+	praat_addAction1 (classExcitations, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classExcitations, 0, U"Append", 0, 0, DO_Excitations_append);
+	praat_addAction1 (classExcitations, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classExcitations, 0, U"To Pattern...", 0, 0, DO_Excitations_to_Pattern);
+	praat_addAction1 (classExcitations, 0, U"To TableOfReal", 0, 0, DO_Excitations_to_TableOfReal);
+
+	praat_addAction2 (classExcitations, 1, classExcitation, 0, U"Add to Excitations", 0, 0, DO_Excitations_addItem);
+
+	praat_addAction1 (classFileInMemory, 1, U"Show as code...", 0, 0, DO_FileInMemory_showAsCode);
+	praat_addAction1 (classFileInMemory, 1, U"Set id...", 0, 0, DO_FileInMemory_setId);
+	praat_addAction1 (classFileInMemory, 0, U"To FilesInMemory", 0, 0, DO_FileInMemory_to_FilesInMemory);
+
+	praat_addAction1 (classFilesInMemory, 1, U"Show as code...", 0, 0, DO_FilesInMemory_showAsCode);
+	praat_addAction1 (classFilesInMemory, 1, U"Show one file as code...", 0, 0, DO_FilesInMemory_showOneFileAsCode);
+	praat_addAction1 (classFilesInMemory, 0, U"Merge", 0, 0, DO_FilesInMemory_merge);
+	praat_addAction1 (classFilesInMemory, 0, U"To Strings (id)", 0, 0, DO_FilesInMemory_to_Strings_id);
+
+	praat_addAction2 (classFilesInMemory, 1, classFileInMemory, 0, U"Add items to Collection", 0, 0, DO_FilesInMemory_addItems);
+
+	praat_addAction1 (classFormantFilter, 0, U"FormantFilter help", 0, 0, DO_FormantFilter_help);
 	praat_FilterBank_all_init (classFormantFilter);
 	praat_addAction1 (classFormantFilter, 0, U"Draw spectrum (slice)...", U"Draw filters...", praat_DEPTH_1 + praat_HIDDEN, DO_FormantFilter_drawSpectrum);
 	praat_addAction1 (classFormantFilter, 0, U"Draw filter functions...", U"Draw filters...",  praat_DEPTH_1 + praat_HIDDEN, DO_FormantFilter_drawFilterFunctions);
-	praat_addAction1 (classFormantFilter, 0, U"To Spectrogram", nullptr, 0, DO_FormantFilter_to_Spectrogram);
-
+	praat_addAction1 (classFormantFilter, 0, U"To Spectrogram", 0, 0, DO_FormantFilter_to_Spectrogram);
+	
+	
 	praat_addAction1 (classFormantGrid, 0, U"Draw...", U"Edit", praat_DEPTH_1 + praat_HIDDEN, DO_FormantGrid_draw);
 
+
 	praat_addAction1 (classIntensity, 0, U"To TextGrid (silences)...", U"To IntensityTier (valleys)", 0, DO_Intensity_to_TextGrid_detectSilences);
-	praat_addAction1 (classIntensityTier, 0, U"To TextGrid (silences)...", nullptr, 0, DO_IntensityTier_to_TextGrid_detectSilences);
-	praat_addAction1 (classIntensityTier, 0, U"To Intensity...", nullptr, praat_HIDDEN, DO_IntensityTier_to_Intensity);
+	praat_addAction1 (classIntensityTier, 0, U"To TextGrid (silences)...", 0, 0, DO_IntensityTier_to_TextGrid_detectSilences);
+	praat_addAction1 (classIntensityTier, 0, U"To Intensity...", 0, praat_HIDDEN, DO_IntensityTier_to_Intensity);
 
-	praat_addAction1 (classISpline, 0, U"ISpline help", nullptr, 0, DO_ISpline_help);
+	praat_addAction1 (classISpline, 0, U"ISpline help", 0, 0, DO_ISpline_help);
 	praat_Spline_init (classISpline);
 
-	praat_addAction1 (classKlattTable, 0, U"KlattTable help", nullptr, 0, DO_KlattTable_help);
-	praat_addAction1 (classKlattTable, 0, U"To Sound...", nullptr, 0, DO_KlattTable_to_Sound);
-	praat_addAction1 (classKlattTable, 0, U"To KlattGrid...", nullptr, 0, DO_KlattTable_to_KlattGrid);
-	praat_addAction1 (classKlattTable, 0, U"To Table", nullptr, 0, DO_KlattTable_to_Table);
+	praat_addAction1 (classKlattTable, 0, U"KlattTable help", 0, 0, DO_KlattTable_help);
+	praat_addAction1 (classKlattTable, 0, U"To Sound...", 0, 0, DO_KlattTable_to_Sound);
+	praat_addAction1 (classKlattTable, 0, U"To KlattGrid...", 0, 0, DO_KlattTable_to_KlattGrid);
+	praat_addAction1 (classKlattTable, 0, U"To Table", 0, 0, DO_KlattTable_to_Table);
 
-	praat_addAction1 (classLegendreSeries, 0, U"LegendreSeries help", nullptr, 0, DO_LegendreSeries_help);
+	praat_addAction1 (classLegendreSeries, 0, U"LegendreSeries help", 0, 0, DO_LegendreSeries_help);
 	praat_FunctionTerms_init (classLegendreSeries);
 	praat_addAction1 (classLegendreSeries, 0, U"To Polynomial", U"Analyse", 0, DO_LegendreSeries_to_Polynomial);
 
-	praat_addAction1 (classLongSound, 0, U"Append to existing sound file...", nullptr, 0, DO_LongSounds_appendToExistingSoundFile);
-	praat_addAction1 (classSound, 0, U"Append to existing sound file...", nullptr, 0, DO_LongSounds_appendToExistingSoundFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Append to existing sound file...", nullptr, 0, DO_LongSounds_appendToExistingSoundFile);
+	praat_addAction1 (classLongSound, 0, U"Append to existing sound file...", 0, 0, DO_LongSounds_appendToExistingSoundFile);
+	praat_addAction1 (classSound, 0, U"Append to existing sound file...", 0, 0, DO_LongSounds_appendToExistingSoundFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Append to existing sound file...", 0, 0, DO_LongSounds_appendToExistingSoundFile);
 
 	praat_addAction1 (classLongSound, 2, U"Save as stereo AIFF file...", U"Save as NIST file...", 1, DO_LongSounds_writeToStereoAiffFile);
 	praat_addAction1 (classLongSound, 2, U"Write to stereo AIFF file...", U"Write to NIST file...", praat_HIDDEN + praat_DEPTH_1, DO_LongSounds_writeToStereoAiffFile);
@@ -9248,91 +8715,86 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classMatrix, 0, U"Get standard deviation...", U"Get mean...", 1, DO_Matrix_getStandardDeviation);
 	praat_addAction1 (classMatrix, 0, U"Transpose", U"Synthesize", 0, DO_Matrix_transpose);
 	praat_addAction1 (classMatrix, 0, U"Solve equation...", U"Analyse", 0, DO_Matrix_solveEquation);
-	praat_addAction1 (classMatrix, 0, U"To PCA (by rows)", U"Solve equation...", 0, DO_Matrix_to_PCA_byRows);
-	praat_addAction1 (classMatrix, 0, U"To PCA (by columns)", U"To PCA (by rows)", 0, DO_Matrix_to_PCA_byColumns);
 	praat_addAction1 (classMatrix, 0, U"To Pattern...", U"To VocalTract", 1, DO_Matrix_to_Pattern);
 	praat_addAction1 (classMatrix, 0, U"To Activation", U"To Pattern...", 1, DO_Matrix_to_Activation);
 	praat_addAction1 (classMatrix, 2, U"To DTW...", U"To ParamCurve", 1, DO_Matrices_to_DTW);
 
-	praat_addAction2 (classMatrix, 1, classCategories, 1, U"To TableOfReal", nullptr, 0, DO_Matrix_Categories_to_TableOfReal);
+	praat_addAction2 (classMatrix, 1, classCategories, 1, U"To TableOfReal", 0, 0, DO_Matrix_Categories_to_TableOfReal);
 
-	praat_addAction1 (classMelSpectrogram, 0, U"MelSpectrogram help", nullptr, 0, DO_MelSpectrogram_help);
+	
+	praat_addAction1 (classMelSpectrogram, 0, U"MelSpectrogram help", 0, 0, DO_MelSpectrogram_help);
 	praat_BandFilterSpectrogram_draw_init (classMelSpectrogram);
-	praat_addAction1 (classMelSpectrogram, 0, U"Paint image...", nullptr, 1, DO_MelSpectrogram_paintImage);
-	praat_addAction1 (classMelSpectrogram, 0, U"Draw triangular filter functions...", nullptr, 1, DO_MelSpectrogram_drawTriangularFilterFunctions);
-	praat_addAction1 (classMelSpectrogram, 0, U"Draw spectrum at nearest time slice...", nullptr, 1, DO_MelSpectrogram_drawSpectrumAtNearestTimeSlice);
-	praat_addAction1 (classMelSpectrogram, 0, QUERY_BUTTON, nullptr, 0, 0);
+	praat_addAction1 (classMelSpectrogram, 0, U"Paint image...", 0, 1, DO_MelSpectrogram_paintImage);
+	praat_addAction1 (classMelSpectrogram, 0, U"Draw triangular filter functions...", 0, 1, DO_MelSpectrogram_drawTriangularFilterFunctions);
+	praat_addAction1 (classMelSpectrogram, 0, U"Draw spectrum at nearest time slice...", 0, 1, DO_MelSpectrogram_drawSpectrumAtNearestTimeSlice);
+	praat_addAction1 (classMelSpectrogram, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_BandFilterSpectrogram_query_init (classMelSpectrogram);
 
-	praat_addAction1 (classMelSpectrogram, 0, U"Equalize intensities...", nullptr, 0, DO_BandFilterSpectrogram_equalizeIntensities);
-	praat_addAction1 (classMelSpectrogram, 0, U"To MFCC...", nullptr, 0, DO_MelSpectrogram_to_MFCC);
-	praat_addAction1 (classMelSpectrogram, 0, U"To Intensity", nullptr, 0, DO_BandFilterSpectrogram_to_Intensity);
-	praat_addAction1 (classMelSpectrogram, 0, U"To Matrix...", nullptr, 0, DO_BandFilterSpectrogram_to_Matrix);
-	praat_addAction1 (classMelSpectrogram, 2, U"Cross-correlate...", nullptr, 0, DO_BandFilterSpectrograms_crossCorrelate);
-	praat_addAction1 (classMelSpectrogram, 2, U"Convolve...", nullptr, 0, DO_BandFilterSpectrograms_convolve);
+	praat_addAction1 (classMelSpectrogram, 0, U"Equalize intensities...", 0, 0, DO_BandFilterSpectrogram_equalizeIntensities);
+	praat_addAction1 (classMelSpectrogram, 0, U"To MFCC...", 0, 0, DO_MelSpectrogram_to_MFCC);
+	praat_addAction1 (classMelSpectrogram, 0, U"To Intensity", 0, 0, DO_BandFilterSpectrogram_to_Intensity);
+	praat_addAction1 (classMelSpectrogram, 0, U"To Matrix...", 0, 0, DO_BandFilterSpectrogram_to_Matrix);
+	praat_addAction1 (classMelSpectrogram, 2, U"Cross-correlate...", 0, 0, DO_BandFilterSpectrograms_crossCorrelate);
+	praat_addAction1 (classMelSpectrogram, 2, U"Convolve...", 0, 0, DO_BandFilterSpectrograms_convolve);
 	
-	praat_addAction1 (classMelFilter, 0, U"MelFilter help", nullptr, 0, DO_MelFilter_help); // deprecated 2014
+	praat_addAction1 (classMelFilter, 0, U"MelFilter help", 0, 0, DO_MelFilter_help); // deprecated 2014
 	praat_FilterBank_all_init (classMelFilter); // deprecated 2014
 	praat_addAction1 (classMelFilter, 0, U"Draw spectrum (slice)...", U"Draw filters...", praat_DEPTH_1 + praat_HIDDEN, DO_MelFilter_drawSpectrum); // deprecated 2014
 	praat_addAction1 (classMelFilter, 0, U"Draw filter functions...", U"Draw filters...", praat_DEPTH_1 + praat_HIDDEN, DO_MelFilter_drawFilterFunctions); // deprecated 2014
 	praat_addAction1 (classMelFilter, 0, U"Paint...", U"Draw filter functions...", praat_DEPTH_1 + praat_HIDDEN, DO_MelFilter_paint); // deprecated 2014
-	praat_addAction1 (classMelFilter, 0, U"To MFCC...", nullptr, praat_HIDDEN, DO_MelFilter_to_MFCC); // deprecated 2014
-	praat_addAction1 (classMelFilter, 0, U"To MelSpectrogram", nullptr, 0, DO_MelFilter_to_MelSpectrogram);
+	praat_addAction1 (classMelFilter, 0, U"To MFCC...", 0, praat_HIDDEN, DO_MelFilter_to_MFCC); // deprecated 2014
+	praat_addAction1 (classMelFilter, 0, U"To MelSpectrogram", 0, 0, DO_MelFilter_to_MelSpectrogram);
+
 	
-	praat_addAction1 (classMFCC, 0, U"MFCC help", nullptr, 0, DO_MFCC_help);
+	praat_addAction1 (classMFCC, 0, U"MFCC help", 0, 0, DO_MFCC_help);
 	praat_CC_init (classMFCC);
-	praat_addAction1 (classMFCC, 0, U"To MelFilter...", nullptr, praat_HIDDEN, DO_MFCC_to_MelFilter);
-	praat_addAction1 (classMFCC, 0, U"To MelSpectrogram...", nullptr, 0, DO_MFCC_to_MelSpectrogram);
-	praat_addAction1 (classMFCC, 0, U"To TableOfReal...", nullptr, 0, DO_MFCC_to_TableOfReal);
-	praat_addAction1 (classMFCC, 0, U"To Matrix (features)...", nullptr, praat_HIDDEN, DO_MFCC_to_Matrix_features);
-	praat_addAction1 (classMFCC, 0, U"To Sound", nullptr, praat_HIDDEN, DO_MFCC_to_Sound);
-	praat_addAction1 (classMFCC, 2, U"Cross-correlate...", nullptr, 0, DO_MFCCs_crossCorrelate);
-	praat_addAction1 (classMFCC, 2, U"Convolve...", nullptr, 0, DO_MFCCs_convolve);
-
-	praat_addAction1 (classMSpline, 0, U"MSpline help", nullptr, 0, DO_MSpline_help);
+	praat_addAction1 (classMFCC, 0, U"To MelFilter...", 0, praat_HIDDEN, DO_MFCC_to_MelFilter);
+	praat_addAction1 (classMFCC, 0, U"To MelSpectrogram...", 0, 0, DO_MFCC_to_MelSpectrogram);
+	praat_addAction1 (classMFCC, 0, U"To TableOfReal...", 0, 0, DO_MFCC_to_TableOfReal);
+	praat_addAction1 (classMFCC, 0, U"To Matrix (features)...", 0, praat_HIDDEN, DO_MFCC_to_Matrix_features);
+	praat_addAction1 (classMFCC, 0, U"To Sound", 0, praat_HIDDEN, DO_MFCC_to_Sound);
+	praat_addAction1 (classMFCC, 2, U"Cross-correlate...", 0, 0, DO_MFCCs_crossCorrelate);
+	praat_addAction1 (classMFCC, 2, U"Convolve...", 0, 0, DO_MFCCs_convolve);
+
+	praat_addAction1 (classMSpline, 0, U"MSpline help", 0, 0, DO_MSpline_help);
 	praat_Spline_init (classMSpline);
 
-	praat_addAction1 (classPattern, 0, U"Draw", nullptr, 0, 0);
-	praat_addAction1 (classPattern, 0, U"Draw...", nullptr, 0, DO_Pattern_draw);
-	praat_addAction1 (classPattern, 0, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classPattern, 0, U"Formula...", nullptr, 1, DO_Pattern_formula);
-	praat_addAction1 (classPattern, 0, U"Set value...", nullptr, 1, DO_Pattern_setValue);
-	praat_addAction1 (classPattern, 0, U"To Matrix", nullptr, 0, DO_Pattern_to_Matrix);
+	praat_addAction1 (classPattern, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classPattern, 0, U"Draw...", 0, 0, DO_Pattern_draw);
+	praat_addAction1 (classPattern, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classPattern, 0, U"Formula...", 0, 1, DO_Pattern_formula);
+	praat_addAction1 (classPattern, 0, U"Set value...", 0, 1, DO_Pattern_setValue);
+	praat_addAction1 (classPattern, 0, U"To Matrix", 0, 0, DO_Pattern_to_Matrix);
 
-	praat_addAction2 (classPattern, 1, classCategories, 1, U"To TableOfReal", nullptr, 0, DO_Matrix_Categories_to_TableOfReal);
-	praat_addAction2 (classPattern, 1, classCategories, 1, U"To Discriminant", nullptr, 0, DO_Pattern_and_Categories_to_Discriminant);
+	praat_addAction2 (classPattern, 1, classCategories, 1, U"To TableOfReal", 0, 0, DO_Matrix_Categories_to_TableOfReal);
 
-	praat_addAction1 (classPCA, 0, U"PCA help", nullptr, 0, DO_PCA_help);
-	praat_addAction1 (classPCA, 0, DRAW_BUTTON, nullptr, 0, 0);
+	praat_addAction2 (classPattern, 1, classCategories, 1, U"To Discriminant", 0, 0, DO_Pattern_and_Categories_to_Discriminant);
+
+	praat_addAction1 (classPCA, 0, U"PCA help", 0, 0, DO_PCA_help);
+	praat_addAction1 (classPCA, 0, DRAW_BUTTON, 0, 0, 0);
 	praat_Eigen_draw_init (classPCA);
-	praat_addAction1 (classPCA, 0, QUERY_BUTTON, nullptr, 0, 0);
+	praat_addAction1 (classPCA, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_Eigen_query_init (classPCA);
-	praat_addAction1 (classPCA, 1, U"-- pca --", nullptr, 1, 0);
-	praat_addAction1 (classPCA, 1, U"Get centroid element...", nullptr, 1, DO_PCA_getCentroidElement);
-	praat_addAction1 (classPCA, 1, U"Get equality of eigenvalues...", nullptr, 1, DO_PCA_getEqualityOfEigenvalues);
-	praat_addAction1 (classPCA, 1, U"Get fraction variance accounted for...", nullptr, 1, DO_PCA_getFractionVAF);
-	praat_addAction1 (classPCA, 1, U"Get number of components (VAF)...", nullptr, 1, DO_PCA_getNumberOfComponentsVAF);
-	praat_addAction1 (classPCA, 2, U"Get angle between pc1-pc2 planes", nullptr, 1, DO_PCAs_getAngleBetweenPc1Pc2Plane_degrees);
-	praat_addAction1 (classPCA, 0, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classPCA, 1, U"Invert eigenvector...", nullptr, 1, DO_PCA_invertEigenvector);
-	praat_addAction1 (classPCA, 0, U"Align eigenvectors", nullptr, 1, DO_Eigens_alignEigenvectors);
-	praat_addAction1 (classPCA, 2, U"To Procrustes...", nullptr, 0, DO_PCAs_to_Procrustes);
-	praat_addAction1 (classPCA, 0, U"To TableOfReal (reconstruct 1)...", nullptr, 0, DO_PCA_to_TableOfReal_reconstruct1);
-	praat_addAction1 (classPCA, 0, U"& TableOfReal: To Configuration?", nullptr, 0, DO_hint_PCA_and_TableOfReal_to_Configuration);
-	praat_addAction1 (classPCA, 0, U"& Configuration (reconstruct)?", nullptr, 0, DO_hint_PCA_and_Configuration_to_TableOfReal_reconstruct);
-	praat_addAction1 (classPCA, 0, U"& Covariance: Project?", nullptr, 0, DO_hint_PCA_and_Covariance_Project);
-	praat_addAction2 (classPCA, 1, classConfiguration, 1, U"To TableOfReal (reconstruct)", nullptr, 0, DO_PCA_and_Configuration_to_TableOfReal_reconstruct);
-	praat_addAction2 (classPCA, 1, classMatrix, 1, U"To Matrix (pc)...", nullptr, praat_HIDDEN, DO_PCA_and_Matrix_to_Matrix_projectColumns);
-	praat_addAction2 (classPCA, 1, classMatrix, 1, U"To Matrix (project rows)...", nullptr, 0, DO_PCA_and_Matrix_to_Matrix_projectRows);
-	praat_addAction2 (classPCA, 1, classMatrix, 1, U"To Matrix (project columns)...", nullptr, 0, DO_PCA_and_Matrix_to_Matrix_projectColumns);
-	praat_addAction2 (classPCA, 1, classPattern, 1, U"To Matrix (project rows)...", nullptr, 0, DO_PCA_and_Matrix_to_Matrix_projectRows);
-	praat_addAction2 (classPCA, 1, classSSCP, 1, U"Project", nullptr, 0, DO_Eigen_and_SSCP_project);
-	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To TableOfReal...", nullptr, 0, DO_PCA_and_TableOfReal_to_TableOfReal_projectRows);
-	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To TableOfReal (project rows)...", nullptr, 0, DO_PCA_and_TableOfReal_to_TableOfReal_projectRows);
-	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To Configuration...", nullptr, 0, DO_PCA_and_TableOfReal_to_Configuration);
-	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To TableOfReal (z-scores)...", nullptr, 0, DO_PCA_and_TableOfReal_to_TableOfReal_zscores);
-	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"Get fraction variance...", nullptr, 0, DO_PCA_and_TableOfReal_getFractionVariance);
-	praat_addAction2 (classPCA, 1, classCovariance, 1, U"Project", nullptr, 0, DO_Eigen_and_Covariance_project);
+	praat_addAction1 (classPCA, 1, U"-- pca --", 0, 1, 0);
+	praat_addAction1 (classPCA, 1, U"Get centroid element...", 0, 1, DO_PCA_getCentroidElement);
+	praat_addAction1 (classPCA, 1, U"Get equality of eigenvalues...", 0, 1, DO_PCA_getEqualityOfEigenvalues);
+	praat_addAction1 (classPCA, 1, U"Get fraction variance accounted for...", 0, 1, DO_PCA_getFractionVAF);
+	praat_addAction1 (classPCA, 1, U"Get number of components (VAF)...", 0, 1, DO_PCA_getNumberOfComponentsVAF);
+	praat_addAction1 (classPCA, 2, U"Get angle between pc1-pc2 planes", 0, 1, DO_PCAs_getAngleBetweenPc1Pc2Plane_degrees);
+	praat_addAction1 (classPCA, 0, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classPCA, 1, U"Invert eigenvector...", 0, 1, DO_PCA_invertEigenvector);
+	praat_addAction1 (classPCA, 0, U"Align eigenvectors", 0, 1, DO_Eigens_alignEigenvectors);
+	praat_addAction1 (classPCA, 2, U"To Procrustes...", 0, 0, DO_PCAs_to_Procrustes);
+	praat_addAction1 (classPCA, 0, U"To TableOfReal (reconstruct 1)...", 0, 0, DO_PCA_to_TableOfReal_reconstruct1);
+	praat_addAction1 (classPCA, 0, U"& TableOfReal: To Configuration?", 0, 0, DO_hint_PCA_and_TableOfReal_to_Configuration);
+	praat_addAction1 (classPCA, 0, U"& Configuration (reconstruct)?", 0, 0, DO_hint_PCA_and_Configuration_to_TableOfReal_reconstruct);
+	praat_addAction1 (classPCA, 0, U"& Covariance: Project?", 0, 0, DO_hint_PCA_and_Covariance_Project);
+	praat_addAction2 (classPCA, 1, classConfiguration, 1, U"To TableOfReal (reconstruct)", 0, 0, DO_PCA_and_Configuration_to_TableOfReal_reconstruct);
+	praat_addAction2 (classPCA, 1, classSSCP, 1, U"Project", 0, 0, DO_Eigen_and_SSCP_project);
+	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To Configuration...", 0, 0, DO_PCA_and_TableOfReal_to_Configuration);
+	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"To TableOfReal (z-scores)...", 0, 0, DO_PCA_and_TableOfReal_to_TableOfReal_zscores);
+	praat_addAction2 (classPCA, 1, classTableOfReal, 1, U"Get fraction variance...", 0, 0, DO_PCA_and_TableOfReal_getFractionVariance);
+	praat_addAction2 (classPCA, 1, classCovariance, 1, U"Project", 0, 0, DO_Eigen_and_Covariance_project);
 
 	praat_Eigen_Spectrogram_project (classPCA, classSpectrogram);
 	praat_Eigen_Spectrogram_project (classPCA, classBarkSpectrogram);
@@ -9342,27 +8804,27 @@ void praat_uvafon_David_init () {
 	praat_Eigen_Matrix_project (classPCA, classBarkFilter); // deprecated 2014
 	praat_Eigen_Matrix_project (classPCA, classMelFilter); // deprecated 2014
 
-	praat_addAction1 (classPermutation, 0, U"Permutation help", nullptr, 0, DO_Permutation_help);
+	praat_addAction1 (classPermutation, 0, U"Permutation help", 0, 0, DO_Permutation_help);
 	praat_addAction1 (classPermutation, 0, QUERY_BUTTON, 0, 0, 0);
-	praat_addAction1 (classPermutation, 1, U"Get number of elements", nullptr, 1, DO_Permutation_getNumberOfElements);
-	praat_addAction1 (classPermutation, 1, U"Get value...", nullptr, 1, DO_Permutation_getValueAtIndex);
-	praat_addAction1 (classPermutation, 1, U"Get index...", nullptr, 1, DO_Permutation_getIndexAtValue);
+	praat_addAction1 (classPermutation, 1, U"Get number of elements", 0, 1, DO_Permutation_getNumberOfElements);
+	praat_addAction1 (classPermutation, 1, U"Get value...", 0, 1, DO_Permutation_getValueAtIndex);
+	praat_addAction1 (classPermutation, 1, U"Get index...", 0, 1, DO_Permutation_getIndexAtValue);
 	praat_addAction1 (classPermutation, 0, MODIFY_BUTTON, 0, 0, 0);
-	praat_addAction1 (classPermutation, 1, U"Sort", nullptr, 1, DO_Permutation_sort);
-	praat_addAction1 (classPermutation, 1, U"Swap blocks...", nullptr, 1, DO_Permutation_swapBlocks);
-	praat_addAction1 (classPermutation, 1, U"Swap numbers...", nullptr, 1, DO_Permutation_swapNumbers);
-	praat_addAction1 (classPermutation, 1, U"Swap positions...", nullptr, 1, DO_Permutation_swapPositions);
-	praat_addAction1 (classPermutation, 1, U"Swap one from range...", nullptr, 1, DO_Permutation_swapOneFromRange);
-	praat_addAction1 (classPermutation, 0, U"-- sequential permutations --", nullptr, 1, 0);
-	praat_addAction1 (classPermutation, 0, U"Next", nullptr, 1, DO_Permutations_next);
-	praat_addAction1 (classPermutation, 0, U"Previous", nullptr, 1, DO_Permutations_previous);
-	praat_addAction1 (classPermutation, 1, U"Permute randomly...", nullptr, 0, DO_Permutation_permuteRandomly);
-	praat_addAction1 (classPermutation, 1, U"Permute randomly (blocks)...", nullptr, 0, DO_Permutation_permuteBlocksRandomly);
-	praat_addAction1 (classPermutation, 1, U"Interleave...", nullptr, 0, DO_Permutation_interleave);
-	praat_addAction1 (classPermutation, 1, U"Rotate...", nullptr, 0, DO_Permutation_rotate);
-	praat_addAction1 (classPermutation, 1, U"Reverse...", nullptr, 0, DO_Permutation_reverse);
-	praat_addAction1 (classPermutation, 1, U"Invert", nullptr, 0, DO_Permutation_invert);
-	praat_addAction1 (classPermutation, 0, U"Multiply", nullptr, 0, DO_Permutations_multiply);
+	praat_addAction1 (classPermutation, 1, U"Sort", 0, 1, DO_Permutation_sort);
+	praat_addAction1 (classPermutation, 1, U"Swap blocks...", 0, 1, DO_Permutation_swapBlocks);
+	praat_addAction1 (classPermutation, 1, U"Swap numbers...", 0, 1, DO_Permutation_swapNumbers);
+	praat_addAction1 (classPermutation, 1, U"Swap positions...", 0, 1, DO_Permutation_swapPositions);
+	praat_addAction1 (classPermutation, 1, U"Swap one from range...", 0, 1, DO_Permutation_swapOneFromRange);
+	praat_addAction1 (classPermutation, 0, U"-- sequential permutations --", 0, 1, 0);
+	praat_addAction1 (classPermutation, 0, U"Next", 0, 1, DO_Permutations_next);
+	praat_addAction1 (classPermutation, 0, U"Previous", 0, 1, DO_Permutations_previous);
+	praat_addAction1 (classPermutation, 1, U"Permute randomly...", 0, 0, DO_Permutation_permuteRandomly);
+	praat_addAction1 (classPermutation, 1, U"Permute randomly (blocks)...", 0, 0, DO_Permutation_permuteBlocksRandomly);
+	praat_addAction1 (classPermutation, 1, U"Interleave...", 0, 0, DO_Permutation_interleave);
+	praat_addAction1 (classPermutation, 1, U"Rotate...", 0, 0, DO_Permutation_rotate);
+	praat_addAction1 (classPermutation, 1, U"Reverse...", 0, 0, DO_Permutation_reverse);
+	praat_addAction1 (classPermutation, 1, U"Invert", 0, 0, DO_Permutation_invert);
+	praat_addAction1 (classPermutation, 0, U"Multiply", 0, 0, DO_Permutations_multiply);
 
 	praat_addAction1 (classPitch, 2, U"To DTW...", U"To PointProcess", praat_HIDDEN, DO_Pitches_to_DTW);
 
@@ -9380,13 +8842,13 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classPolygon, 0, U"Scale...", U"Rotate...", 1, DO_Polygon_scale);
 	praat_addAction1 (classPolygon, 0, U"Reverse X", U"Scale...", 1, DO_Polygon_reverseX);
 	praat_addAction1 (classPolygon, 0, U"Reverse Y", U"Reverse X", 1, DO_Polygon_reverseY);
-	praat_addAction1 (classPolygon, 0, U"Simplify", nullptr, praat_HIDDEN, DO_Polygon_simplify);
-	praat_addAction1 (classPolygon, 0, U"Convex hull", nullptr, 0, DO_Polygon_convexHull);
-	praat_addAction1 (classPolygon, 0, U"Circular permutation...", nullptr, praat_HIDDEN, DO_Polygon_circularPermutation);
+	praat_addAction1 (classPolygon, 0, U"Simplify", 0, praat_HIDDEN, DO_Polygon_simplify);
+	praat_addAction1 (classPolygon, 0, U"Convex hull", 0, 0, DO_Polygon_convexHull);
+	praat_addAction1 (classPolygon, 0, U"Circular permutation...", 0, praat_HIDDEN, DO_Polygon_circularPermutation);
 
-	praat_addAction2 (classPolygon, 1, classCategories, 1, U"Draw...", nullptr, 0, DO_Polygon_Categories_draw);
+	praat_addAction2 (classPolygon, 1, classCategories, 1, U"Draw...", 0, 0, DO_Polygon_Categories_draw);
 
-	praat_addAction1 (classPolynomial, 0, U"Polynomial help", nullptr, 0, DO_Polynomial_help);
+	praat_addAction1 (classPolynomial, 0, U"Polynomial help", 0, 0, DO_Polynomial_help);
 	praat_FunctionTerms_init (classPolynomial);
 	praat_addAction1 (classPolynomial, 0, U"-- area --", U"Get x of maximum...", 1, 0);
 	praat_addAction1 (classPolynomial, 1, U"Get area...", U"-- area --", 1, DO_Polynomial_getArea);
@@ -9394,27 +8856,27 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classPolynomial, 0, U"Scale coefficients (monic)", U"-- monic --", 1, DO_Polynomial_scaleCoefficients_monic);
 	praat_addAction1 (classPolynomial, 1, U"Get value (complex)...", U"Get value...", 1, DO_Polynomial_evaluate_z);
 	praat_addAction1 (classPolynomial, 0, U"To Spectrum...", U"Analyse", 0, DO_Polynomial_to_Spectrum);
-	praat_addAction1 (classPolynomial, 0, U"To Roots", nullptr, 0, DO_Polynomial_to_Roots);
-	praat_addAction1 (classPolynomial, 0, U"To Polynomial (derivative)", nullptr, 0, DO_Polynomial_getDerivative);
-	praat_addAction1 (classPolynomial, 0, U"To Polynomial (primitive)", nullptr, 0, DO_Polynomial_getPrimitive);
-	praat_addAction1 (classPolynomial, 0, U"Scale x...", nullptr, 0, DO_Polynomial_scaleX);
-	praat_addAction1 (classPolynomial, 2, U"Multiply", nullptr, 0, DO_Polynomials_multiply);
-	praat_addAction1 (classPolynomial, 2, U"Divide...", nullptr, 0, DO_Polynomials_divide);
-
-	praat_addAction1 (classRoots, 1, U"Roots help", nullptr, 0, DO_Roots_help);
-	praat_addAction1 (classRoots, 1, U"Draw...", nullptr, 0, DO_Roots_draw);
-	praat_addAction1 (classRoots, 1, QUERY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classRoots, 1, U"Get number of roots", nullptr, 1, DO_Roots_getNumberOfRoots);
-	praat_addAction1 (classRoots, 1, U"-- roots --", nullptr, 1, 0);
-	praat_addAction1 (classRoots, 1, U"Get root...", nullptr, 1, DO_Roots_getRoot);
-	praat_addAction1 (classRoots, 1, U"Get real part of root...", nullptr, 1, DO_Roots_getRealPartOfRoot);
-	praat_addAction1 (classRoots, 1, U"Get imaginary part of root...", nullptr, 1, DO_Roots_getImaginaryPartOfRoot);
-	praat_addAction1 (classRoots, 1, MODIFY_BUTTON, nullptr, 0, 0);
-	praat_addAction1 (classRoots, 1, U"Set root...", nullptr, 1, DO_Roots_setRoot);
-	praat_addAction1 (classRoots, 0, U"Analyse", nullptr, 0, 0);
-	praat_addAction1 (classRoots, 0, U"To Spectrum...", nullptr, 0, DO_Roots_to_Spectrum);
-
-	praat_addAction2 (classRoots, 1, classPolynomial, 1, U"Polish roots", nullptr, 0, DO_Roots_and_Polynomial_polish);
+	praat_addAction1 (classPolynomial, 0, U"To Roots", 0, 0, DO_Polynomial_to_Roots);
+	praat_addAction1 (classPolynomial, 0, U"To Polynomial (derivative)", 0, 0, DO_Polynomial_getDerivative);
+	praat_addAction1 (classPolynomial, 0, U"To Polynomial (primitive)", 0, 0, DO_Polynomial_getPrimitive);
+	praat_addAction1 (classPolynomial, 0, U"Scale x...", 0, 0, DO_Polynomial_scaleX);
+	praat_addAction1 (classPolynomial, 2, U"Multiply", 0, 0, DO_Polynomials_multiply);
+	praat_addAction1 (classPolynomial, 2, U"Divide...", 0, 0, DO_Polynomials_divide);
+
+	praat_addAction1 (classRoots, 1, U"Roots help", 0, 0, DO_Roots_help);
+	praat_addAction1 (classRoots, 1, U"Draw...", 0, 0, DO_Roots_draw);
+	praat_addAction1 (classRoots, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classRoots, 1, U"Get number of roots", 0, 1, DO_Roots_getNumberOfRoots);
+	praat_addAction1 (classRoots, 1, U"-- roots --", 0, 1, 0);
+	praat_addAction1 (classRoots, 1, U"Get root...", 0, 1, DO_Roots_getRoot);
+	praat_addAction1 (classRoots, 1, U"Get real part of root...", 0, 1, DO_Roots_getRealPartOfRoot);
+	praat_addAction1 (classRoots, 1, U"Get imaginary part of root...", 0, 1, DO_Roots_getImaginaryPartOfRoot);
+	praat_addAction1 (classRoots, 1, MODIFY_BUTTON, 0, 0, 0);
+	praat_addAction1 (classRoots, 1, U"Set root...", 0, 1, DO_Roots_setRoot);
+	praat_addAction1 (classRoots, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classRoots, 0, U"To Spectrum...", 0, 0, DO_Roots_to_Spectrum);
+
+	praat_addAction2 (classRoots, 1, classPolynomial, 1, U"Polish roots", 0, 0, DO_Roots_and_Polynomial_polish);
 
 	praat_addAction1 (classSound, 0, U"To TextGrid (silences)...", U"To IntervalTier", 1, DO_Sound_to_TextGrid_detectSilences);
     praat_addAction1 (classSound, 0, U"Play one channel...", U"Play", praat_HIDDEN, DO_Sound_playOneChannel);
@@ -9453,13 +8915,13 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classSound, 0, U"Copy channel ranges...", U"Extract all channels", praat_DEPTH_1 | praat_HIDDEN, DO_Sound_copyChannelRanges);
 	praat_addAction1 (classSound, 0, U"Trim silences...", U"Resample...", praat_DEPTH_1 | praat_HIDDEN, DO_Sound_trimSilences);
 	praat_addAction1 (classSound, 0, U"To KlattGrid (simple)...", U"To Manipulation...", 1, DO_Sound_to_KlattGrid_simple);
-	praat_addAction2 (classSound, 1, classPitch, 1, U"To FormantFilter...", nullptr, praat_HIDDEN, DO_Sound_and_Pitch_to_FormantFilter);
-	praat_addAction2 (classSound, 1, classPitch, 1, U"To Spectrogram (pitch-dependent)...", nullptr, 0, DO_Sound_and_Pitch_to_Spectrogram);
+	praat_addAction2 (classSound, 1, classPitch, 1, U"To FormantFilter...", 0, praat_HIDDEN, DO_Sound_and_Pitch_to_FormantFilter);
+	praat_addAction2 (classSound, 1, classPitch, 1, U"To Spectrogram (pitch-dependent)...", 0, 0, DO_Sound_and_Pitch_to_Spectrogram);
 
-	praat_addAction2 (classSound, 1, classPitch, 1, U"Change gender...", nullptr, 0, DO_Sound_and_Pitch_changeGender);
-	praat_addAction2 (classSound, 1, classPitch, 1, U"Change speaker...", nullptr, praat_HIDDEN, DO_Sound_and_Pitch_changeSpeaker);
-	praat_addAction2 (classSound, 1, classIntervalTier, 1, U"Cut parts matching label...", nullptr, 0, DO_Sound_and_IntervalTier_cutPartsMatchingLabel);
-	praat_addAction1 (classSpectrogram, 2, U"To DTW...", U"To Spectrum (slice)...", 1, DO_Spectrograms_to_DTW);
+	praat_addAction2 (classSound, 1, classPitch, 1, U"Change gender...", 0, 0, DO_Sound_and_Pitch_changeGender);
+	praat_addAction2 (classSound, 1, classPitch, 1, U"Change speaker...", 0, praat_HIDDEN, DO_Sound_and_Pitch_changeSpeaker);
+	praat_addAction2 (classSound, 1, classIntervalTier, 1, U"Cut parts matching label...", 0, 0, DO_Sound_and_IntervalTier_cutPartsMatchingLabel);
+	praat_addAction1 (classSpectrogram, 2, U"To DTW...", U"To Spectrum (slice)...", 0, DO_Spectrograms_to_DTW);
 	praat_addAction1 (classSpectrum, 0, U"Draw phases...", U"Draw (log freq)...", praat_DEPTH_1 | praat_HIDDEN, DO_Spectrum_drawPhases);
 	praat_addAction1 (classSpectrum, 0, U"Set real value in bin...", U"Formula...", praat_HIDDEN | praat_DEPTH_1, DO_Spectrum_setRealValueInBin);
 	praat_addAction1 (classSpectrum, 0, U"Set imaginary value in bin...", U"Formula...", praat_HIDDEN | praat_DEPTH_1, DO_Spectrum_setImaginaryValueInBin);
@@ -9472,23 +8934,23 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classSpectrum, 0, U"To Cepstrum", U"To Spectrogram", 1, DO_Spectrum_to_Cepstrum);
 	praat_addAction1 (classSpectrum, 0, U"To PowerCepstrum", U"To Cepstrum", 1, DO_Spectrum_to_PowerCepstrum);
 
-	praat_addAction1 (classSpeechSynthesizer, 0, U"SpeechSynthesizer help", nullptr, 0, DO_SpeechSynthesizer_help);
-	praat_addAction1 (classSpeechSynthesizer, 0, U"Play text...", nullptr, 0, DO_SpeechSynthesizer_playText);
-	praat_addAction1 (classSpeechSynthesizer, 0, U"To Sound...", nullptr, 0, DO_SpeechSynthesizer_to_Sound);
-	praat_addAction1 (classSpeechSynthesizer, 0, QUERY_BUTTON, nullptr, 0, 0);
-		praat_addAction1 (classSpeechSynthesizer, 1, U"Get voice name", nullptr, 1, DO_SpeechSynthesizer_getVoiceName);
-		praat_addAction1 (classSpeechSynthesizer, 1, U"Get voice variant", nullptr, 1, DO_SpeechSynthesizer_getVoiceVariant);
-	praat_addAction1 (classSpeechSynthesizer, 0, MODIFY_BUTTON, nullptr, 0, 0);
-		praat_addAction1 (classSpeechSynthesizer, 0, U"Set text input settings...", nullptr, 1, DO_SpeechSynthesizer_setTextInputSettings);
-		praat_addAction1 (classSpeechSynthesizer, 0, U"Set speech output settings...", nullptr, 1, DO_SpeechSynthesizer_setSpeechOutputSettings);
-	praat_addAction2 (classSpeechSynthesizer, 1, classTextGrid, 1, U"To Sound...", nullptr, 0, DO_SpeechSynthesizer_and_TextGrid_to_Sound);
-
-	praat_addAction3 (classSpeechSynthesizer, 1, classSound, 1, classTextGrid, 1, U"To TextGrid (align)...", nullptr, 0, DO_SpeechSynthesizer_and_Sound_and_TextGrid_align);
-    praat_addAction3 (classSpeechSynthesizer, 1, classSound, 1, classTextGrid, 1, U"To TextGrid (align,trim)...", nullptr, 0, DO_SpeechSynthesizer_and_Sound_and_TextGrid_align2);
-
-	praat_addAction1 (classSSCP, 0, U"SSCP help", nullptr, 0, DO_SSCP_help);
+	praat_addAction1 (classSpeechSynthesizer, 0, U"SpeechSynthesizer help", 0, 0, DO_SpeechSynthesizer_help);
+	praat_addAction1 (classSpeechSynthesizer, 0, U"Play text...", 0, 0, DO_SpeechSynthesizer_playText);
+	praat_addAction1 (classSpeechSynthesizer, 0, U"To Sound...", 0, 0, DO_SpeechSynthesizer_to_Sound);
+	praat_addAction1 (classSpeechSynthesizer, 0, QUERY_BUTTON, 0, 0, 0);
+		praat_addAction1 (classSpeechSynthesizer, 1, U"Get voice name", 0, 1, DO_SpeechSynthesizer_getVoiceName);
+		praat_addAction1 (classSpeechSynthesizer, 1, U"Get voice variant", 0, 1, DO_SpeechSynthesizer_getVoiceVariant);
+	praat_addAction1 (classSpeechSynthesizer, 0, MODIFY_BUTTON, 0, 0, 0);
+		praat_addAction1 (classSpeechSynthesizer, 0, U"Set text input settings...", 0, 1, DO_SpeechSynthesizer_setTextInputSettings);
+		praat_addAction1 (classSpeechSynthesizer, 0, U"Set speech output settings...", 0, 1, DO_SpeechSynthesizer_setSpeechOutputSettings);
+	praat_addAction2 (classSpeechSynthesizer, 1, classTextGrid, 1, U"To Sound...", 0, 0, DO_SpeechSynthesizer_and_TextGrid_to_Sound);
+
+	praat_addAction3 (classSpeechSynthesizer, 1, classSound, 1, classTextGrid, 1, U"To TextGrid (align)...", 0, 0, DO_SpeechSynthesizer_and_Sound_and_TextGrid_align);
+    praat_addAction3 (classSpeechSynthesizer, 1, classSound, 1, classTextGrid, 1, U"To TextGrid (align,trim)...", 0, 0, DO_SpeechSynthesizer_and_Sound_and_TextGrid_align2);
+
+	praat_addAction1 (classSSCP, 0, U"SSCP help", 0, 0, DO_SSCP_help);
 	praat_TableOfReal_init2 (classSSCP);
-	praat_removeAction (classSSCP, nullptr, nullptr, U"Append");
+	praat_removeAction (classSSCP, NULL, NULL, U"Append");
 	praat_addAction1 (classSSCP, 0, U"Draw sigma ellipse...", DRAW_BUTTON, 1, DO_SSCP_drawSigmaEllipse);
 	praat_addAction1 (classSSCP, 0, U"Draw confidence ellipse...", DRAW_BUTTON, 1, DO_SSCP_drawConfidenceEllipse);
 	praat_SSCP_query_init (classSSCP);
@@ -9498,21 +8960,21 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classSSCP, 1, U"Get confidence ellipse area...", U"Get sigma ellipse area...", 1, DO_SSCP_getConfidenceEllipseArea);
 	praat_addAction1 (classSSCP, 1, U"Get fraction variation...", U"Get confidence ellipse area...", 1, DO_SSCP_getFractionVariation);
 	praat_SSCP_extract_init (classSSCP);
-	praat_addAction1 (classSSCP, 0, U"To PCA", nullptr, 0, DO_SSCP_to_PCA);
-	praat_addAction1 (classSSCP, 0, U"To Correlation", nullptr, 0, DO_SSCP_to_Correlation);
-	praat_addAction1 (classSSCP, 0, U"To Covariance...", nullptr, 0, DO_SSCP_to_Covariance);
+	praat_addAction1 (classSSCP, 0, U"To PCA", 0, 0, DO_SSCP_to_PCA);
+	praat_addAction1 (classSSCP, 0, U"To Correlation", 0, 0, DO_SSCP_to_Correlation);
+	praat_addAction1 (classSSCP, 0, U"To Covariance...", 0, 0, DO_SSCP_to_Covariance);
 
-	praat_addAction1 (classStrings, 0, U"To Categories", nullptr, 0, DO_Strings_to_Categories);
-	praat_addAction1 (classStrings, 0, U"Append", nullptr, 0, DO_Strings_append);
+	praat_addAction1 (classStrings, 0, U"To Categories", 0, 0, DO_Strings_to_Categories);
+	praat_addAction1 (classStrings, 0, U"Append", 0, 0, DO_Strings_append);
 	praat_addAction1 (classStrings, 0, U"Change...", U"Replace all...", praat_HIDDEN, DO_Strings_change);
 	praat_addAction1 (classStrings, 0, U"Extract part...", U"Replace all...", 0, DO_Strings_extractPart);
 	praat_addAction1 (classStrings, 0, U"To Permutation...", U"To Distributions", 0, DO_Strings_to_Permutation);
 	praat_addAction1 (classStrings, 2, U"To EditDistanceTable", U"To Distributions", 0, DO_Strings_to_EditDistanceTable);
 
-	praat_addAction1 (classSVD, 0, U"To TableOfReal...", nullptr, 0, DO_SVD_to_TableOfReal);
-	praat_addAction1 (classSVD, 0, U"Extract left singular vectors", nullptr, 0, DO_SVD_extractLeftSingularVectors);
-	praat_addAction1 (classSVD, 0, U"Extract right singular vectors", nullptr, 0, DO_SVD_extractRightSingularVectors);
-	praat_addAction1 (classSVD, 0, U"Extract singular values", nullptr, 0, DO_SVD_extractSingularValues);
+	praat_addAction1 (classSVD, 0, U"To TableOfReal...", 0, 0, DO_SVD_to_TableOfReal);
+	praat_addAction1 (classSVD, 0, U"Extract left singular vectors", 0, 0, DO_SVD_extractLeftSingularVectors);
+	praat_addAction1 (classSVD, 0, U"Extract right singular vectors", 0, 0, DO_SVD_extractRightSingularVectors);
+	praat_addAction1 (classSVD, 0, U"Extract singular values", 0, 0, DO_SVD_extractSingularValues);
 		praat_addAction1 (classTable, 0, U"Draw ellipses...", U"Draw ellipse (standard deviation)...", praat_DEPTH_1, DO_Table_drawEllipses);
 		praat_addAction1 (classTable, 0, U"Box plots...", U"Draw ellipses...", praat_DEPTH_1 | praat_HIDDEN, DO_Table_boxPlots);
 		praat_addAction1 (classTable, 0, U"Normal probability plot...", U"Box plots...", praat_DEPTH_1 | praat_HIDDEN, DO_Table_normalProbabilityPlot);
@@ -9545,40 +9007,42 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classTable, 0, U"Extract rows where (mahalanobis)...", U"Extract rows where...", praat_DEPTH_1| praat_HIDDEN, DO_Table_extractRowsMahalanobisWhere);
 	praat_addAction1 (classTable, 0, U"-- Extract columns ----", U"Extract rows where (mahalanobis)...", praat_DEPTH_1| praat_HIDDEN, 0);
 	praat_addAction1 (classTable, 0, U"Extract column ranges...", U"-- Extract columns ----", praat_DEPTH_1| praat_HIDDEN, DO_Table_extractColumnRanges);
+	
 
-	praat_addAction1 (classTable, 0, U"To KlattTable", nullptr, praat_HIDDEN, DO_Table_to_KlattTable);
+	praat_addAction1 (classTable, 0, U"To KlattTable", 0, praat_HIDDEN, DO_Table_to_KlattTable);
 	praat_addAction1 (classTable, 1, U"Get median absolute deviation...", U"Get standard deviation...", 1, DO_Table_getMedianAbsoluteDeviation);
-	praat_addAction1 (classTable, 0, U"To StringsIndex (column)...", nullptr, praat_HIDDEN, DO_Table_to_StringsIndex_column);
+	praat_addAction1 (classTable, 0, U"To StringsIndex (column)...", 0, praat_HIDDEN, DO_Table_to_StringsIndex_column);
 
 	praat_addAction1 (classTableOfReal, 1, U"Report multivariate normality...", U"Get column stdev (label)...",
 		praat_DEPTH_1 | praat_HIDDEN, DO_TableOfReal_reportMultivariateNormality);
 	praat_addAction1 (classTableOfReal, 0, U"Append columns", U"Append", 1, DO_TableOfReal_appendColumns);
-	praat_addAction1 (classTableOfReal, 0, U"Multivariate statistics -", nullptr, 0, 0);
-	praat_addAction1 (classTableOfReal, 0, U"To Discriminant", nullptr, 1, DO_TableOfReal_to_Discriminant);
-	praat_addAction1 (classTableOfReal, 0, U"To PCA", nullptr, 1, DO_TableOfReal_to_PCA_byRows);
-	praat_addAction1 (classTableOfReal, 0, U"To SSCP...", nullptr, 1, DO_TableOfReal_to_SSCP);
-	praat_addAction1 (classTableOfReal, 0, U"To Covariance", nullptr, 1, DO_TableOfReal_to_Covariance);
-	praat_addAction1 (classTableOfReal, 0, U"To Correlation", nullptr, 1, DO_TableOfReal_to_Correlation);
-	praat_addAction1 (classTableOfReal, 0, U"To Correlation (rank)", nullptr, 1, DO_TableOfReal_to_Correlation_rank);
-	praat_addAction1 (classTableOfReal, 0, U"To CCA...", nullptr, 1, DO_TableOfReal_to_CCA);
-	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (means by row labels)...", nullptr, 1, DO_TableOfReal_meansByRowLabels);
-	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (medians by row labels)...", nullptr, 1, DO_TableOfReal_mediansByRowLabels);
-
-	praat_addAction1 (classTableOfReal, 0, U"-- configurations --", nullptr, 1, 0);
-	praat_addAction1 (classTableOfReal, 0, U"To Configuration (pca)...", nullptr, 1, DO_TableOfReal_to_Configuration_pca);
-	praat_addAction1 (classTableOfReal, 0, U"To Configuration (lda)...", nullptr, 1, DO_TableOfReal_to_Configuration_lda);
+	praat_addAction1 (classTableOfReal, 0, U"Multivariate statistics -", 0, 0, 0);
+	praat_addAction1 (classTableOfReal, 0, U"To Discriminant", 0, 1, DO_TableOfReal_to_Discriminant);
+	praat_addAction1 (classTableOfReal, 0, U"To PCA", 0, 1, DO_TableOfReal_to_PCA);
+	praat_addAction1 (classTableOfReal, 0, U"To SSCP...", 0, 1, DO_TableOfReal_to_SSCP);
+	praat_addAction1 (classTableOfReal, 0, U"To Covariance", 0, 1, DO_TableOfReal_to_Covariance);
+	praat_addAction1 (classTableOfReal, 0, U"To Correlation", 0, 1, DO_TableOfReal_to_Correlation);
+	praat_addAction1 (classTableOfReal, 0, U"To Correlation (rank)", 0, 1, DO_TableOfReal_to_Correlation_rank);
+	praat_addAction1 (classTableOfReal, 0, U"To CCA...", 0, 1, DO_TableOfReal_to_CCA);
+	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (means by row labels)...", 0, 1, DO_TableOfReal_meansByRowLabels);
+	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (medians by row labels)...", 0, 1, DO_TableOfReal_mediansByRowLabels);
+
+	praat_addAction1 (classTableOfReal, 0, U"-- configurations --", 0, 1, 0);
+	praat_addAction1 (classTableOfReal, 0, U"To Configuration (pca)...",	0, 1, DO_TableOfReal_to_Configuration_pca);
+	praat_addAction1 (classTableOfReal, 0, U"To Configuration (lda)...", 0, 1, DO_TableOfReal_to_Configuration_lda);
 	praat_addAction1 (classTableOfReal, 2, U"-- between tables --", U"To Configuration (lda)...", 1, 0);
-	praat_addAction1 (classTableOfReal, 2, U"To TableOfReal (cross-correlations)...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_TableOfReal_and_TableOfReal_crossCorrelations);
+	praat_addAction1 (classTableOfReal, 2, U"To TableOfReal (cross-correlations)...", 0, praat_HIDDEN + praat_DEPTH_1, DO_TableOfReal_and_TableOfReal_crossCorrelations);
+
 
 	praat_addAction1 (classTableOfReal, 1, U"To Pattern and Categories...", U"To Matrix", 1, DO_TableOfReal_to_Pattern_and_Categories);
 	praat_addAction1 (classTableOfReal, 1, U"Split into Pattern and Categories...", U"To Pattern and Categories...", praat_DEPTH_1 | praat_HIDDEN, DO_TableOfReal_to_Pattern_and_Categories);
 	praat_addAction1 (classTableOfReal, 0, U"To Permutation (sort row labels)", U"To Matrix", 1, DO_TableOfReal_to_Permutation_sortRowlabels);
 
-	praat_addAction1 (classTableOfReal, 1, U"To SVD", nullptr, praat_HIDDEN, DO_TableOfReal_to_SVD);
-	praat_addAction1 (classTableOfReal, 2, U"To GSVD", nullptr, praat_HIDDEN, DO_TablesOfReal_to_GSVD);
-	praat_addAction1 (classTableOfReal, 2, U"To Eigen (gsvd)", nullptr, praat_HIDDEN, DO_TablesOfReal_to_Eigen_gsvd);
+	praat_addAction1 (classTableOfReal, 1, U"To SVD", 0, praat_HIDDEN, DO_TableOfReal_to_SVD);
+	praat_addAction1 (classTableOfReal, 2, U"To GSVD", 0, praat_HIDDEN, DO_TablesOfReal_to_GSVD);
+	praat_addAction1 (classTableOfReal, 2, U"To Eigen (gsvd)", 0, praat_HIDDEN, DO_TablesOfReal_to_Eigen_gsvd);
 
-	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (cholesky)...", nullptr, praat_HIDDEN, DO_TableOfReal_choleskyDecomposition);
+	praat_addAction1 (classTableOfReal, 0, U"To TableOfReal (cholesky)...", 0, praat_HIDDEN, DO_TableOfReal_choleskyDecomposition);
 
 	praat_addAction1 (classTableOfReal, 0, U"-- scatter plots --", U"Draw top and bottom lines...", 1, 0);
 	praat_addAction1 (classTableOfReal, 0, U"Draw scatter plot...", U"-- scatter plots --", 1, DO_TableOfReal_drawScatterPlot);
@@ -9590,16 +9054,16 @@ void praat_uvafon_David_init () {
 	praat_addAction1 (classTableOfReal, 1, U"Draw rows as histogram...", U"Draw row as histogram...", praat_DEPTH_1 | praat_HIDDEN, DO_TableOfReal_drawRowsAsHistogram);
 	praat_addAction1 (classTableOfReal, 1, U"Draw column as distribution...", U"Draw rows as histogram...", praat_DEPTH_1, DO_TableOfReal_drawColumnAsDistribution);
 
-	praat_addAction2 (classStrings, 1, classPermutation, 1, U"Permute strings", nullptr, 0, DO_Strings_and_Permutation_permuteStrings);
+	praat_addAction2 (classStrings, 1, classPermutation, 1, U"Permute strings", 0, 0, DO_Strings_and_Permutation_permuteStrings);
 
-	praat_addAction2 (classTableOfReal, 1, classPermutation, 1, U"Permute rows", nullptr, 0, DO_TableOfReal_and_Permutation_permuteRows);
+	praat_addAction2 (classTableOfReal, 1, classPermutation, 1, U"Permute rows",	0, 0, DO_TableOfReal_and_Permutation_permuteRows);
 
 	praat_addAction1 (classTextGrid, 0, U"Extend time...", U"Scale times...", 2, DO_TextGrid_extendTime);
 	praat_addAction1 (classTextGrid, 1, U"Set tier name...", U"Remove tier...", 1, DO_TextGrid_setTierName);
 	praat_addAction1 (classTextGrid, 0, U"Replace interval text...", U"Set interval text...", 2, DO_TextGrid_replaceIntervalTexts);
 	praat_addAction1 (classTextGrid, 0, U"Replace point text...", U"Set point text...", 2, DO_TextGrid_replacePointTexts);
 	praat_addAction1 (classTextGrid, 2, U"To Table (text alignment)...", U"Extract part...", 0, DO_TextGrids_to_Table_textAlignmentment);
-	praat_addAction2 (classTextGrid, 2, classEditCostsTable, 1, U"To Table (text alignment)...", nullptr, 0, DO_TextGrids_and_EditCostsTable_to_Table_textAlignmentment);
+	praat_addAction2 (classTextGrid, 2, classEditCostsTable, 1, U"To Table (text alignment)...", 0, 0, DO_TextGrids_and_EditCostsTable_to_Table_textAlignmentment);
 
 	INCLUDE_MANPAGES (manual_dwtools_init)
 	INCLUDE_MANPAGES (manual_Permutation_init)
diff --git a/dwtools/praat_HMM_init.cpp b/dwtools/praat_HMM_init.cpp
index 0f0b5d6..a00873e 100644
--- a/dwtools/praat_HMM_init.cpp
+++ b/dwtools/praat_HMM_init.cpp
@@ -1,6 +1,6 @@
 /* praat_HMM_init.cpp
  *
- * Copyright (C) 2010-2011,2015 David Weenink
+ * Copyright (C) 2010-2011 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,10 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+	djmw 20101003
+*/
+
 #include "praat.h"
 #include "GaussianMixture.h"
 #include "HMM.h"
@@ -31,20 +35,23 @@
 
 #define GaussianMixture_OPTION_MENU_CRITERIA \
 	OPTIONMENU (U"Criterion based on", 1) \
-		OPTION (U"Likelihood") \
-		OPTION (U"Message length") \
-		OPTION (U"Bayes information") \
-		OPTION (U"Akaike information") \
-		OPTION (U"Akaike corrected") \
-		OPTION (U"Complete-data ML")
+	OPTION (U"Likelihood") \
+	OPTION (U"Message length") \
+	OPTION (U"Bayes information") \
+	OPTION (U"Akaike information") \
+	OPTION (U"Akaike corrected") \
+	OPTION (U"Complete-data ML")
+
+Correlation GaussianMixture_and_TableOfReal_to_Correlation2 (GaussianMixture me, thou);
 
 DIRECT (GaussianMixture_help)
 	Melder_help (U"GaussianMixture");
 END
 
-FORM (GaussianMixture_drawConcentrationEllipses, U"GaussianMixture: Draw concentration ellipses", U"GaussianMixture: Draw concentration ellipses...")
+FORM (GaussianMixture_drawConcentrationEllipses, U"GaussianMixture: Draw concentration ellipses",
+      U"GaussianMixture: Draw concentration ellipses...")
 	POSITIVE (U"Number of sigmas", U"1.0")
-	BOOLEAN (U"Principal component plane", true)
+	BOOLEAN (U"Principal component plane", 1)
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -52,7 +59,7 @@ FORM (GaussianMixture_drawConcentrationEllipses, U"GaussianMixture: Draw concent
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -67,7 +74,8 @@ DO
 	}
 END
 
-FORM (GaussianMixture_and_PCA_drawConcentrationEllipses, U"GaussianMixture & PCA: Draw concentration ellipses", U"GaussianMixture & PCA: Draw concentration ellipses...")
+FORM (GaussianMixture_and_PCA_drawConcentrationEllipses, U"GaussianMixture & PCA: Draw concentration ellipses",
+      U"GaussianMixture & PCA: Draw concentration ellipses...")
 	POSITIVE (U"Number of sigmas", U"1.0")
 	INTEGER (U"X-dimension", U"1")
 	INTEGER (U"Y-dimension", U"2")
@@ -76,13 +84,13 @@ FORM (GaussianMixture_and_PCA_drawConcentrationEllipses, U"GaussianMixture & PCA
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0")
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	GaussianMixture me = FIRST (GaussianMixture);
 	PCA pca = FIRST (PCA);
 	GaussianMixture_and_PCA_drawConcentrationEllipses (me, pca, GRAPHICS,
-		GET_REAL (U"Number of sigmas"), 0, nullptr, GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
+		GET_REAL (U"Number of sigmas"), 0, NULL, GET_INTEGER (U"X-dimension"), GET_INTEGER (U"Y-dimension"),
 		GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
 		GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
@@ -96,7 +104,7 @@ FORM (GaussianMixture_drawMarginalPdf, U"GaussianMixture: Draw marginal pdf", U"
 	REAL (U"right Vertical range", U"0.0")
 	NATURAL (U"Number of points", U"500")
 	INTEGER (U"Number of bins", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -123,7 +131,7 @@ DIRECT (GaussianMixture_getDimensionOfComponent)
 	}
 END
 
-FORM (GaussianMixture_getProbabilityAtPosition, U"GaussianMixture: Get probability at position", nullptr)
+FORM (GaussianMixture_getProbabilityAtPosition, U"GaussianMixture: Get probability at position", 0)
 	SENTENCE (U"Position", U"100.0 300.0")
 	OK
 DO
@@ -153,21 +161,16 @@ FORM (GaussianMixture_and_PCA_drawMarginalPdf, U"GaussianMixture & PCA: Draw pdf
 	REAL (U"right Vertical range", U"0.0")
 	NATURAL (U"Number of points", U"500")
 	INTEGER (U"Number of bins", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	GaussianMixture me = FIRST (GaussianMixture);
-	PCA thee = FIRST (PCA);
-	GaussianMixture_and_PCA_drawMarginalPdf (me, thee, GRAPHICS,
-		GET_INTEGER (U"X-dimension"),
-		GET_REAL (U"left Horizontal range"),
-		GET_REAL (U"right Horizontal range"),
-		GET_REAL (U"left Vertical range"),
-		GET_REAL (U"right Vertical range"),
-		GET_INTEGER (U"Number of points"),
-		GET_INTEGER (U"Number of bins"),
-		GET_INTEGER (U"Garnish"));
+	PCA pca = FIRST (PCA);
+	GaussianMixture_and_PCA_drawMarginalPdf (me, pca, GRAPHICS,
+		GET_INTEGER (U"X-dimension"), GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+		GET_INTEGER (U"Number of points"), GET_INTEGER (U"Number of bins"), GET_INTEGER (U"Garnish"));
 END
 
 FORM (GaussianMixture_and_PCA_to_Matrix_density, U"GaussianMixture & PCA: To Matrix density", U"GaussianMixture & PCA: To Matrix (density)...")
@@ -182,52 +185,42 @@ FORM (GaussianMixture_and_PCA_to_Matrix_density, U"GaussianMixture & PCA: To Mat
 	OK
 DO
 	GaussianMixture me = FIRST (GaussianMixture);
-	PCA thee = FIRST (PCA);
-	autoMatrix result = GaussianMixture_and_PCA_to_Matrix_density (me, thee,
-		GET_INTEGER (U"X-dimension"),
-		GET_INTEGER (U"Y-dimension"),
-		GET_REAL (U"left Horizontal range"),
-		GET_REAL (U"right Horizontal range"),
-		GET_INTEGER (U"Number of columns"),
-		GET_REAL (U"left Vertical range"),
-		GET_REAL (U"right Vertical range"),
-		GET_INTEGER (U"Number of rows"));
-	praat_new (result.move(), my name, U"_", thy name);
-END
-
-FORM (GaussianMixture_extractComponent, U"GaussianMixture: Extract component", nullptr)
+	PCA pca = FIRST (PCA);
+	praat_new (GaussianMixture_and_PCA_to_Matrix_density (me, pca, GET_INTEGER (U"X-dimension"),
+		GET_INTEGER (U"Y-dimension"), GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+		GET_INTEGER (U"Number of columns"), GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"), GET_INTEGER (U"Number of rows")), my name, U"_", pca->name);
+END
+
+FORM (GaussianMixture_extractComponent, U"GaussianMixture: Extract component", 0)
 	NATURAL (U"Component", U"1")
 	OK
 DO
+	long component = GET_INTEGER (U"Component");
 	LOOP {
 		iam (GaussianMixture);
-		autoCovariance result = GaussianMixture_extractComponent (me,
-			GET_INTEGER (U"Component"));
-		praat_new (result.move(), my name, U"_", result -> name);
+		Covariance cov = GaussianMixture_extractComponent (me, component);
+		praat_new (cov, my name, U"_", cov->name);
 	}
 END
 
 DIRECT (GaussianMixture_extractCentroids)
 	LOOP {
 		iam (GaussianMixture);
-		autoTableOfReal result = GaussianMixture_extractCentroids (me);
-		praat_new (result.move(), my name);
+		praat_new (GaussianMixture_extractCentroids (me), my name);
 	}
 END
 
 DIRECT (GaussianMixture_extractMixingProbabilities)
 	LOOP {
 		iam (GaussianMixture);
-		autoTableOfReal result = GaussianMixture_extractMixingProbabilities (me);
-		praat_new (result.move(), my name);
+		praat_new (GaussianMixture_extractMixingProbabilities (me), my name);
 	}
 END
 
 DIRECT (GaussianMixture_to_PCA)
 	LOOP {
 		iam (GaussianMixture);
-		autoPCA result = GaussianMixture_to_PCA (me);
-		praat_new (result.move(), my name);
+		praat_new (GaussianMixture_to_PCA (me), my name);
 	}
 END
 
@@ -238,32 +231,28 @@ DO
 	long numberOfpoints = GET_INTEGER (U"Number of data points");
 	LOOP {
 		iam (GaussianMixture);
-		autoTableOfReal result = GaussianMixture_to_TableOfReal_randomSampling (me, numberOfpoints);
-		praat_new (result.move(), my name);
+		praat_new (GaussianMixture_to_TableOfReal_randomSampling (me, numberOfpoints), my name);
 	}
 END
 
 DIRECT (GaussianMixture_to_Covariance_between)
 	LOOP {
 		iam (GaussianMixture);
-		autoCovariance result = GaussianMixture_to_Covariance_between (me);
-		praat_new (result.move(), my name, U"_b");
+		praat_new (GaussianMixture_to_Covariance_between (me), my name, U"_b");
 	}
 END
 
 DIRECT (GaussianMixture_to_Covariance_within)
 	LOOP {
 		iam (GaussianMixture);
-		autoCovariance result = GaussianMixture_to_Covariance_within (me);
-		praat_new (result.move(), my name, U"_w");
+		praat_new (GaussianMixture_to_Covariance_within (me), my name, U"_w");
 	}
 END
 
 DIRECT (GaussianMixture_to_Covariance_total)
 	LOOP {
 		iam (GaussianMixture);
-		autoCovariance result = GaussianMixture_to_Covariance_total (me);
-		praat_new (result.move(), my name, U"_t");
+		praat_new (GaussianMixture_to_Covariance_total (me), my name, U"_t");
 	}
 END
 
@@ -285,96 +274,84 @@ DIRECT (HMM_help)
 	Melder_help (U"HMM");
 END
 
-FORM (HMM_create, U"Create HMM", nullptr)
+FORM (HMM_create, U"Create HMM", U"")
 	WORD (U"Name", U"hmm")
-	BOOLEAN (U"Left to right model", false)
+	BOOLEAN (U"Left to right model", 0)
 	NATURAL (U"Number of states", U"3")
 	NATURAL (U"Number of observations", U"3")
 	OK
 DO
-	autoHMM thee = HMM_create (
-		GET_INTEGER (U"Left to right model"),
-		GET_INTEGER (U"Number of states"),
-		GET_INTEGER (U"Number of observations"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (HMM_create (GET_INTEGER (U"Left to right model"), GET_INTEGER (U"Number of states"),
+		GET_INTEGER (U"Number of observations")), GET_STRING (U"Name"));
 END
 
 FORM (HMM_createSimple, U"HMM: Create simple", U"HMM: Create simple HMM...")
 	WORD (U"Name", U"weather")
-	BOOLEAN (U"Left to right model", false)
+	BOOLEAN (U"Left to right model", 0)
 	SENTENCE (U"States", U"Rainy Sunny")
 	SENTENCE (U"Observations", U"Walk Shop Clean")
 	OK
 DO
-	autoHMM thee = HMM_createSimple (GET_INTEGER (U"Left to right model"), GET_STRING (U"States"), GET_STRING (U"Observations"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (HMM_createSimple (GET_INTEGER (U"Left to right model"), GET_STRING (U"States"),
+		GET_STRING (U"Observations")), GET_STRING (U"Name"));
 END
 
-FORM (HMM_createContinuousModel, U"HMM: Create continuous model", nullptr)
+FORM (HMM_createContinuousModel, U"HMM: Create continuous model", 0)
 	WORD (U"Name", U"cm")
-	BOOLEAN (U"Left to right model", false)
+	BOOLEAN (U"Left to right model", 0)
 	NATURAL (U"Number of states", U"3")
 	NATURAL (U"Number of symbols", U"10")
 	LABEL (U"", U"For the Gaussian mixtures:")
 	NATURAL (U"Number of components", U"3")
 	NATURAL (U"Dimension of component", U"39")
 	OPTIONMENU (U"Covariance matrices are", 1)
-		OPTION (U"Complete")
-		OPTION (U"Diagonal")
+	OPTION (U"Complete")
+	OPTION (U"Diagonal")
 	OK
 DO
 	long componentStorage = GET_INTEGER (U"Covariance matrices are") - 1;
 	long dimension = GET_INTEGER (U"Dimension of component");
 	REQUIRE (componentStorage >= 0 && componentStorage <= dimension, U"Not a valid covariance matrix type")
-	autoHMM thee = HMM_createContinuousModel (
-		GET_INTEGER (U"Left to right model"),
-		GET_INTEGER (U"Number of states"),
-		GET_INTEGER (U"Number of symbols"),
-		GET_INTEGER (U"Number of components"),
-		dimension,
-		componentStorage);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (HMM_createContinuousModel (GET_INTEGER (U"Left to right model"),
+		GET_INTEGER (U"Number of states"), GET_INTEGER (U"Number of symbols"),
+		GET_INTEGER (U"Number of components"), dimension, componentStorage),
+		GET_STRING (U"Name"));
 END
 
-FORM (HMMObservationSequence_to_HMM, U"HMMObservationSequence: To HMM", nullptr)
+FORM (HMM_ObservationSequence_to_HMM, U"HMM_ObservationSequence: To HMM", 0)
 	LABEL (U"", U"(0 states gives a non-hidden model) ")
 	INTEGER (U"Number of states", U"2")
-	BOOLEAN (U"Left to right model", false)
+	BOOLEAN (U"Left to right model", 0)
 	OK
 DO
 	long numberOfStates = GET_INTEGER (U"Number of states");
 	LOOP {
-		iam (HMMObservationSequence);
-		autoHMM result = HMM_createFromHMMObservationSequence (me,
-			numberOfStates,
-			GET_INTEGER (U"Left to right model"));
-		praat_new (result.move(), my name, U"_", numberOfStates);
+		iam (HMM_ObservationSequence);
+		praat_new (HMM_createFromHMM_ObservationSequence (me, numberOfStates, GET_INTEGER (U"Left to right model")),
+			my name, U"_", numberOfStates);
 	}
 END
 
-FORM (HMM_draw, U"HMM: Draw", nullptr)
-	BOOLEAN (U"Garnish", false)
+FORM (HMM_draw, U"HMM: Draw", 0)
+	BOOLEAN (U"Garnish", 0)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (HMM);
-		HMM_draw (me, GRAPHICS,
-			GET_INTEGER (U"Garnish"));
+		HMM_draw (me, GRAPHICS, GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (HMM_and_HMMStateSequence_drawTrellis, U"HMM & Strings: Draw trellis", nullptr)
-	BOOLEAN (U"Connect", true);
-	BOOLEAN (U"Garnish", true);
+FORM (HMM_and_HMM_StateSequence_drawTrellis, U"HMM & Strings: Draw trellis", 0)
+	BOOLEAN (U"Connect", 1);
+	BOOLEAN (U"Garnish", 1);
 	OK
 DO
 	autoPraatPicture picture;
 	HMM me = FIRST (HMM);
-	HMMStateSequence hmmStateSequence = FIRST (HMMStateSequence);
-	HMM_and_HMMStateSequence_drawTrellis (me, hmmStateSequence, GRAPHICS,
-		GET_INTEGER (U"Connect"),
-		GET_INTEGER (U"Garnish"));
+	HMM_StateSequence hmm_ss = FIRST (HMM_StateSequence);
+	HMM_and_HMM_StateSequence_drawTrellis (me, hmm_ss, GRAPHICS, GET_INTEGER (U"Connect"), GET_INTEGER (U"Garnish"));
 END
 
 DIRECT (HMM_drawForwardProbabilitiesIllustration)
@@ -458,25 +435,22 @@ DO
 	long isymbol = GET_INTEGER (U"Symbol number");
 	LOOP {
 		iam (HMM);
-		double lnp = HMM_getProbabilityAtTimeBeingInStateEmittingSymbol (me,
-			itime,
-			istate,
-			isymbol);
+		double lnp = HMM_getProbabilityAtTimeBeingInStateEmittingSymbol (me, itime, istate, isymbol);
 		Melder_information (lnp, U" (=ln(p), p = ", Melder_naturalLogarithm (lnp), U") Being in state ",
 			istate, U" emitting symbol ", isymbol, U" at time ", itime);
 	}
 END
 
-FORM (HMM_getProbabilityOfStayingInState, U"HMM: Get probability of staying in state", U"HMM: Get probability staying in state...")
+FORM (HMM_getProbabilityOfStayingInState, U"HMM: Get probability of staying in state",
+      U"HMM: Get probability staying in state...")
 	NATURAL (U"State number", U"1")
 	NATURAL (U"Number of times", U"2")
 	OK
 DO
 	LOOP {
 		iam (HMM);
-		Melder_informationReal (HMM_getProbabilityOfStayingInState (me,
-			GET_INTEGER (U"State number"),
-			GET_INTEGER (U"Number of times")), nullptr);
+		Melder_informationReal (HMM_getProbabilityOfStayingInState (me, GET_INTEGER (U"State number"),
+			GET_INTEGER (U"Number of times")), 0);
 	}
 END
 
@@ -487,12 +461,11 @@ FORM (HMM_getExpectedValueOfDurationInState, U"HMM: Get expected value of durati
 DO
 	LOOP {
 		iam (HMM);
-		Melder_informationReal (HMM_getExpectedValueOfDurationInState (me,
-			GET_INTEGER (U"State number")), U" time units");
+		Melder_informationReal (HMM_getExpectedValueOfDurationInState (me, GET_INTEGER (U"State number")), U" time units");
 	}
 END
 
-FORM (HMM_getSymbolLabel, U"HMM: Get symbol label", nullptr)
+FORM (HMM_getSymbolLabel, U"HMM: Get symbol label", 0)
 	NATURAL (U"Symbol number", U"1")
 	OK
 DO
@@ -500,21 +473,21 @@ DO
 	LOOP {
 		iam (HMM);
 		REQUIRE (is <= my numberOfObservationSymbols, U"Symbol number too high.")
-		HMMObservation s = my observationSymbols->at [is];
+		HMM_Observation s = (HMM_Observation) my observationSymbols -> item[is];
 		Melder_information (s -> label);
 	}
 END
 
-FORM (HMM_getStateLabel, U"HMM: Get state label", nullptr)
+FORM (HMM_getStateLabel, U"HMM: Get state label", 0)
 	NATURAL (U"State number", U"1")
 	OK
 DO
-	long stateNumber = GET_INTEGER (U"State number");
+	long is = GET_INTEGER (U"State number");
 	LOOP {
 		iam (HMM);
-		REQUIRE (stateNumber <= my numberOfStates, U"State number too high.")
-		HMMState state = my states->at [stateNumber];
-		Melder_information (state -> label);
+		REQUIRE (is <= my numberOfStates, U"State number too high.")
+		HMM_State s = (HMM_State) my states -> item[is];
+		Melder_information (s -> label);
 	}
 END
 
@@ -525,7 +498,7 @@ FORM (HMM_and_HMM_getCrossEntropy, U"HMM & HMM: Get cross-entropy...", U"HMM & H
 DO
 	long n = GET_INTEGER (U"Observation length");
 	int sym = GET_INTEGER (U"Symmetric");
-	HMM m1 = nullptr, m2 = nullptr;
+	HMM m1 = 0, m2 = 0;
 	LOOP {
 		iam (HMM);
 		(m1 ? m2 : m1) = me;
@@ -536,88 +509,80 @@ DO
 		U" cross-entropy between models for observation length = ", n, U")");
 END
 
-DIRECT (HMM_and_HMM_and_HMMObservationSequence_getCrossEntropy)
-	HMM m1 = nullptr, m2 = nullptr;
-	HMMObservationSequence hmm_os = nullptr;
+DIRECT (HMM_and_HMM_and_HMM_ObservationSequence_getCrossEntropy)
+	HMM m1 = 0, m2 = 0; HMM_ObservationSequence hmm_os = 0;
 	LOOP {
-		if (CLASS == classHMMObservationSequence) {
-			hmm_os = (HMMObservationSequence) OBJECT;
+		if (CLASS == classHMM_ObservationSequence) {
+			hmm_os = (HMM_ObservationSequence) OBJECT;
 		} else { (m1 ? m2 : m1) = (HMM) OBJECT; }
 	}
 	Melder_assert (m1 && m2 && hmm_os);
-	double ce = HMM_and_HMM_and_HMMObservationSequence_getCrossEntropy (m1, m2, hmm_os);
+	double ce = HMM_and_HMM_and_HMM_ObservationSequence_getCrossEntropy (m1, m2, hmm_os);
 	Melder_information (ce, U" (=symmetric cross-entropy between models)");
 END
 
-FORM (HMM_to_HMMObservationSequence, U"HMM: To HMMObservationSequence (generate observations)", U"HMM: To HMMObservationSequence...")
+FORM (HMM_to_HMM_ObservationSequence, U"HMM: To HMM_ObservationSequence (generate observations)", U"HMM: To HMM_ObservationSequence...")
 	INTEGER (U"Start state", U"0")
 	NATURAL (U"Number of observations", U"20")
 	OK
 DO
 	LOOP {
 		iam (HMM);
-		autoHMMObservationSequence thee = HMM_to_HMMObservationSequence (me, GET_INTEGER (U"Start state"), GET_INTEGER (U"Number of observations"));
-		praat_new (thee.move(), my name);
+		praat_new (HMM_to_HMM_ObservationSequence (me, GET_INTEGER (U"Start state"),
+			GET_INTEGER (U"Number of observations")), my name);
 	}
 END
 
-DIRECT (HMM_and_HMMStateSequence_getProbability)
+DIRECT (HMM_and_HMM_StateSequence_getProbability)
 	HMM me = FIRST (HMM);
-	HMMStateSequence hmm_ss = FIRST (HMMStateSequence);
-	double lnp = HMM_and_HMMStateSequence_getProbability (me, hmm_ss);
+	HMM_StateSequence hmm_ss = FIRST (HMM_StateSequence);
+	double lnp = HMM_and_HMM_StateSequence_getProbability (me, hmm_ss);
 	Melder_information (lnp, U" (=ln(p), p = ", Melder_naturalLogarithm (lnp), U")");
 END
 
-DIRECT (HMM_and_HMMObservationSequence_getProbability)
+DIRECT (HMM_and_HMM_ObservationSequence_getProbability)
 	HMM me = FIRST (HMM);
-	HMMObservationSequence hmm_os = FIRST (HMMObservationSequence);
-	double lnp = HMM_and_HMMObservationSequence_getProbability (me, hmm_os);
+	HMM_ObservationSequence hmm_os = FIRST (HMM_ObservationSequence);
+	double lnp = HMM_and_HMM_ObservationSequence_getProbability (me, hmm_os);
 	Melder_information (lnp, U" (=ln(p), p = ", Melder_naturalLogarithm (lnp), U")");
 END
 
-DIRECT (HMM_and_HMMObservationSequence_getCrossEntropy)
+DIRECT (HMM_and_HMM_ObservationSequence_getCrossEntropy)
 	HMM me = FIRST (HMM);
-	HMMObservationSequence hmm_os = FIRST (HMMObservationSequence);
-	double ce = HMM_and_HMMObservationSequence_getCrossEntropy (me, hmm_os);
+	HMM_ObservationSequence hmm_os = FIRST (HMM_ObservationSequence);
+	double ce = HMM_and_HMM_ObservationSequence_getCrossEntropy (me, hmm_os);
 	Melder_information (ce, U" (= cross-entropy)");
 END
 
-DIRECT (HMM_and_HMMObservationSequence_getPerplexity)
+DIRECT (HMM_and_HMM_ObservationSequence_getPerplexity)
 	HMM me = FIRST (HMM);
-	HMMObservationSequence hmm_os = FIRST (HMMObservationSequence);
-	double py = HMM_and_HMMObservationSequence_getPerplexity (me, hmm_os);
+	HMM_ObservationSequence hmm_os = FIRST (HMM_ObservationSequence);
+	double py = HMM_and_HMM_ObservationSequence_getPerplexity (me, hmm_os);
 	Melder_information (py, U" (= perplexity)");
 END
 
-DIRECT (HMM_and_HMMObservationSequence_to_HMMStateSequence)
+DIRECT (HMM_and_HMM_ObservationSequence_to_HMM_StateSequence)
 	HMM me = FIRST (HMM);
-	HMMObservationSequence thee = FIRST (HMMObservationSequence);
-	autoHMMStateSequence result = HMM_and_HMMObservationSequence_to_HMMStateSequence (me, thee);
-	praat_new (result.move(), my name, U"_", thy name, U"_states");
+	HMM_ObservationSequence thee = FIRST (HMM_ObservationSequence);
+	praat_new (HMM_and_HMM_ObservationSequence_to_HMM_StateSequence (me, thee), my name, U"_", thy name, U"_states");
 END
 
-FORM (HMM_and_HMMObservationSequence_learn, U"HMM & HMMObservationSequence: Learn", U"HMM & HMMObservationSequences: Learn...")
+FORM (HMM_and_HMM_ObservationSequence_learn, U"HMM & HMM_ObservationSequence: Learn", U"HMM & HMM_ObservationSequences: Learn...")
 	POSITIVE (U"Relative precision in log(p)", U"0.001")
 	REAL (U"Minimum probability", U"0.00000000001")
-	BOOLEAN (U"Learning history in Info window", false)
 	OK
 DO
 	double minProb = GET_REAL (U"Minimum probability");
 	REQUIRE (minProb >= 0 && minProb < 1, U"A probabilty must be >= 0 and < 1!")
-	autoHMMObservationSequenceBag hmmObservationSequences = HMMObservationSequenceBag_create ();
-	HMM hmm = nullptr;
+	autoHMM_ObservationSequences hmm_oss = HMM_ObservationSequences_create (); HMM hmm = 0;
+	Collection_dontOwnItems (hmm_oss.peek());
 	LOOP {
-		iam (Daata);
-		if (CLASS == classHMMObservationSequence) {
-			hmmObservationSequences -> addItem_ref ((HMMObservationSequence) me);
-		} else {
-			hmm = (HMM) me;
-		}
+		iam (Data);
+		if (CLASS == classHMM_ObservationSequence) {
+			Collection_addItem (hmm_oss.peek(), me);
+		} else { hmm = (HMM) me; }
 	}
-	HMM_and_HMMObservationSequenceBag_learn (hmm, hmmObservationSequences.get(),
-		GET_REAL (U"Relative precision in log"),
-		minProb,
-		GET_INTEGER (U"Learning history in Info window"));
+	HMM_and_HMM_ObservationSequences_learn (hmm, hmm_oss.peek(), GET_REAL (U"Relative precision in log"), minProb);
 END
 
 FORM (HMM_setTransitionProbabilities, U"HMM: Set transition probabilities", U"HMM: Set transition probabilities...")
@@ -627,9 +592,7 @@ FORM (HMM_setTransitionProbabilities, U"HMM: Set transition probabilities", U"HM
 DO
 	LOOP {
 		iam (HMM);
-		HMM_setTransitionProbabilities (me,
-			GET_INTEGER (U"State number"),
-			GET_STRING (U"Probabilities"));
+		HMM_setTransitionProbabilities (me, GET_INTEGER (U"State number"), GET_STRING (U"Probabilities"));
 	}
 END
 
@@ -640,9 +603,7 @@ FORM (HMM_setEmissionProbabilities, U"HMM: Set emission probabilities", U"HMM: S
 DO
 	LOOP {
 		iam (HMM);
-		HMM_setEmissionProbabilities (me,
-			GET_INTEGER (U"State number"),
-			GET_STRING (U"Probabilities"));
+		HMM_setEmissionProbabilities (me, GET_INTEGER (U"State number"), GET_STRING (U"Probabilities"));
 	}
 END
 
@@ -652,152 +613,140 @@ FORM (HMM_setStartProbabilities, U"HMM: Set start probabilities", U"HMM: Set sta
 DO
 	LOOP {
 		iam (HMM);
-		HMM_setStartProbabilities (me,
-			GET_STRING (U"Probabilities"));
+		HMM_setStartProbabilities (me, GET_STRING (U"Probabilities"));
 	}
 END
 
 DIRECT (HMM_extractTransitionProbabilities)
 	LOOP {
 		iam (HMM);
-		autoTableOfReal result = HMM_extractTransitionProbabilities (me);
-		praat_new (result.move(), my name, U"_t");
+		praat_new (HMM_extractTransitionProbabilities (me), my name, U"_t");
 	}
 END
 
 DIRECT (HMM_extractEmissionProbabilities)
 	LOOP {
 		iam (HMM);
-		autoTableOfReal result = HMM_extractEmissionProbabilities (me);
-		praat_new (result.move(), my name, U"_e");
+		praat_new (HMM_extractEmissionProbabilities (me), my name, U"_e");
 	}
 END
 
-FORM (HMMObservationSequence_to_TableOfReal, U"HMMObservationSequence: To TableOfReal ", U"HMMObservationSequence: To TableOfReal (bigrams)...")
-	BOOLEAN (U"As probabilities", true)
+FORM (HMM_ObservationSequence_to_TableOfReal, U"HMM_ObservationSequence: To TableOfReal ",
+      U"HMM_ObservationSequence: To TableOfReal (bigrams)...")
+	BOOLEAN (U"As probabilities", 1)
 	OK
 DO
 	LOOP {
-		iam (HMMObservationSequence);
-		autoTableOfReal result = HMMObservationSequence_to_TableOfReal_transitions (me,
-			GET_INTEGER (U"As probabilities"));
-		praat_new (result.move(), my name);
+		iam (HMM_ObservationSequence);
+		praat_new (HMM_ObservationSequence_to_TableOfReal_transitions (me, GET_INTEGER (U"As probabilities")), my name);
 	}
 END
 
-FORM (HMM_and_HMMObservationSequence_to_TableOfReal, U"HMM & HMMObservationSequence: To TableOfReal", U"HMM & HMMObservationSequence: To TableOfReal (bigrams)...")
-	BOOLEAN (U"As probabilities", true)
+FORM (HMM_and_HMM_ObservationSequence_to_TableOfReal, U"HMM & HMM_ObservationSequence: To TableOfReal", U"HMM & HMM_ObservationSequence: To TableOfReal (bigrams)...")
+	BOOLEAN (U"As probabilities", 1)
 	OK
 DO
 	HMM me = FIRST (HMM);
-	HMMObservationSequence hmm_os = FIRST (HMMObservationSequence);
-	autoTableOfReal thee = HMM_and_HMMObservationSequence_to_TableOfReal_transitions (me, hmm_os,GET_INTEGER (U"As probabilities"));
-	praat_new (thee.move(), hmm_os -> name, U"_m");
+	HMM_ObservationSequence hmm_os = FIRST (HMM_ObservationSequence);
+	praat_new (HMM_and_HMM_ObservationSequence_to_TableOfReal_transitions (me, hmm_os,
+		GET_INTEGER (U"As probabilities")), hmm_os -> name, U"_m");
 END
 
-FORM (HMM_and_HMMStateSequence_to_TableOfReal, U"HMM & HMMStateSequence: To TableOfReal", nullptr)
-	BOOLEAN (U"As probabilities", true)
+FORM (HMM_and_HMM_StateSequence_to_TableOfReal, U"HMM & HMM_StateSequence: To TableOfReal", 0)
+	BOOLEAN (U"As probabilities", 1)
 	OK
 DO
 	HMM me = FIRST (HMM);
-	HMMStateSequence hmm_ss = FIRST (HMMStateSequence);
-	autoTableOfReal thee = HMM_and_HMMStateSequence_to_TableOfReal_transitions (me, hmm_ss, GET_INTEGER (U"As probabilities"));
-	praat_new (thee.move(), Thing_getName (hmm_ss), U"_m");
+	HMM_StateSequence hmm_ss = FIRST (HMM_StateSequence);
+	praat_new (HMM_and_HMM_StateSequence_to_TableOfReal_transitions (me, hmm_ss, GET_INTEGER (U"As probabilities")),
+		Thing_getName (hmm_ss), U"_m");
 END
 
-FORM (HMMStateSequence_to_TableOfReal, U"HMMStateSequence: To TableOfReal", nullptr)
+FORM (HMM_StateSequence_to_TableOfReal, U"HMM_StateSequence: To TableOfReal", 0)
 	BOOLEAN (U"As probabilities", 1)
 	OK
 DO
 	LOOP {
-		iam (HMMStateSequence);
-		autoTableOfReal thee = Strings_to_TableOfReal_transitions (me, GET_INTEGER (U"As probabilities"));
-		praat_new (thee.move(), my name);
+		iam (HMM_StateSequence);
+		praat_new (Strings_to_TableOfReal_transitions ( (Strings) me, GET_INTEGER (U"As probabilities")), my name);
 	}
 END
 
-DIRECT (HMMObservationSequence_to_Strings)
+DIRECT (HMM_ObservationSequence_to_Strings)
 	LOOP {
-		iam (HMMObservationSequence);
-		autoStrings thee = HMMObservationSequence_to_Strings (me);
-		praat_new (thee.move(), my name);
+		iam (HMM_ObservationSequence);
+		praat_new (HMM_ObservationSequence_to_Strings (me), my name);
 	}
 END
 
-DIRECT (Strings_to_HMMObservationSequence)
+DIRECT (Strings_to_HMM_ObservationSequence)
 	LOOP {
 		iam (Strings);
-		autoHMMObservationSequence thee = Strings_to_HMMObservationSequence (me);
-		praat_new (thee.move(), my name);
+		praat_new (Strings_to_HMM_ObservationSequence (me), my name);
 	}
 END
 
-DIRECT (HMMStateSequence_to_Strings)
+DIRECT (HMM_StateSequence_to_Strings)
 	LOOP {
-		iam (HMMStateSequence);
-		autoStrings thee = HMMStateSequence_to_Strings (me);
-		praat_new (thee.move(), my name);
+		iam (HMM_StateSequence);
+		praat_new (HMM_StateSequence_to_Strings (me), my name);
 	}
 END
 
-FORM (TableOfReal_to_GaussianMixture_fromRowlabels, U"TableOfReal: To GaussianMixture from row labels", U"TableOfReal: To GaussianMixture (row labels)...")
+FORM (TableOfReal_to_GaussianMixture_fromRowlabels, U"TableOfReal: To GaussianMixture from row labels",
+      U"TableOfReal: To GaussianMixture (row labels)...")
 	OPTIONMENU (U"Covariance matrices are", 1)
-		OPTION (U"Complete")
-		OPTION (U"Diagonal")
+	OPTION (U"Complete")
+	OPTION (U"Diagonal")
 	OK
 DO
 	long storage = GET_INTEGER (U"Covariance matrices are") - 1;
 	LOOP {
 		iam (TableOfReal);
-		autoGaussianMixture thee = TableOfReal_to_GaussianMixture_fromRowLabels (me, storage);
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_GaussianMixture_fromRowLabels (me, storage), my name);
 	}
 END
 
-FORM (TableOfReal_to_GaussianMixture, U"TableOfReal: To GaussianMixture (no labels)", U"TableOfReal: To GaussianMixture...")
+FORM (TableOfReal_to_GaussianMixture, U"TableOfReal: To GaussianMixture (no labels)",
+      U"TableOfReal: To GaussianMixture...")
 	NATURAL (U"Number of components", U"2")
 	POSITIVE (U"Tolerance of minimizer", U"0.001")
 	INTEGER (U"Maximum number of iterations", U"200")
 	REAL (U"Stability coefficient lambda", U"0.001")
 	OPTIONMENU (U"Covariance matrices are", 1)
-		OPTION (U"Complete")
-		OPTION (U"Diagonal")
+	OPTION (U"Complete")
+	OPTION (U"Diagonal")
 	GaussianMixture_OPTION_MENU_CRITERIA
 	OK
 DO
+	int criterion = GET_INTEGER (U"Criterion based on") - 1;
 	double lambda = GET_REAL (U"Stability coefficient lambda");
-	REQUIRE (lambda >= 0.0 && lambda < 1.0, U"Lambda must be in interval [0,1).")
+	REQUIRE (lambda >= 0 && lambda < 1, U"Lambda must be in interval [0,1).")
+	long storage = GET_INTEGER (U"Covariance matrices are") - 1;
 	LOOP {
 		iam (TableOfReal);
-		autoGaussianMixture thee = TableOfReal_to_GaussianMixture (me,
-			GET_INTEGER (U"Number of components"),
-			GET_REAL (U"Tolerance of minimizer"),
-			GET_INTEGER (U"Maximum number of iterations"),
-			lambda,
-			GET_INTEGER (U"Covariance matrices are") - 1,
-			GET_INTEGER (U"Criterion based on") - 1);
-		praat_new (thee.move(), my name);
+		praat_new (TableOfReal_to_GaussianMixture (me, GET_INTEGER (U"Number of components"),
+			GET_REAL (U"Tolerance of minimizer"), GET_INTEGER (U"Maximum number of iterations"),
+			lambda, storage, criterion), my name);
 	}
 END
 
-FORM (GaussianMixture_and_TableOfReal_improveLikelihood, U"GaussianMixture & TableOfReal: Improve likelihood", U"GaussianMixture & TableOfReal: Improve likelihood...")
+FORM (GaussianMixture_and_TableOfReal_improveLikelihood, U"GaussianMixture & TableOfReal: Improve likelihood",
+      U"GaussianMixture & TableOfReal: Improve likelihood...")
 	POSITIVE (U"Tolerance of minimizer", U"0.001")
 	NATURAL (U"Maximum number of iterations", U"200")
 	REAL (U"Stability coefficient lambda", U"0.001")
 	GaussianMixture_OPTION_MENU_CRITERIA
 	OK
 DO
+	long criterion = GET_INTEGER (U"Criterion based on") - 1;
 	double lambda = GET_REAL (U"Stability coefficient lambda");
-	REQUIRE (lambda >= 0.0 && lambda < 1.0, U"Lambda must be in interval [0,1).")
 	GaussianMixture me = FIRST (GaussianMixture);
 	TableOfReal thee = FIRST (TableOfReal);
+	REQUIRE (lambda >= 0 && lambda < 1, U"Lambda must be in interval [0,1).")
 	REQUIRE (thy numberOfColumns == my dimension, U"The number of columns and the dimension of the model do not agree.");
 	REQUIRE (my numberOfComponents < thy numberOfRows / 2, U"Not enough data points.")
-	GaussianMixture_and_TableOfReal_improveLikelihood (me, thee,
-		GET_REAL (U"Tolerance of minimizer"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		lambda,
-		GET_INTEGER (U"Criterion based on") - 1);
+	GaussianMixture_and_TableOfReal_improveLikelihood (me, thee, GET_REAL (U"Tolerance of minimizer"), GET_INTEGER (U"Maximum number of iterations"), lambda, criterion);
 END
 
 FORM (GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM, U"GaussianMixture & TableOfReal: To GaussianMixture (CEMM)", U"GaussianMixture & TableOfReal: To GaussianMixture (CEMM)...")
@@ -809,32 +758,29 @@ FORM (GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM, U"GaussianMixture
 	OK
 DO
 	double lambda = GET_REAL (U"Stability coefficient lambda");
-	REQUIRE (lambda >= 0.0 && lambda < 1.0, U"Lambda must be in interval [0,1).")
+	int criterion = GET_INTEGER (U"Criterion based on") - 1;
 	GaussianMixture me = FIRST (GaussianMixture);
 	TableOfReal thee = FIRST (TableOfReal);
+	REQUIRE (lambda >= 0 && lambda < 1, U"Lambda must be in interval [0,1).")
 	REQUIRE (thy numberOfColumns == my dimension, U"The number of columns and the dimension of the model do not agree.");
 	REQUIRE (my numberOfComponents < thy numberOfRows / 2, U"Not enough data points.")
-	autoGaussianMixture him = GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (me, thee,
-		GET_INTEGER (U"Minimum number of components"),
-		GET_REAL (U"Tolerance of minimizer"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		lambda,
-		GET_INTEGER (U"Criterion based on") - 1);
-	praat_new (him.move(), my name);
+	praat_new (GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM (me, thee,
+		GET_INTEGER (U"Minimum number of components"), GET_REAL (U"Tolerance of minimizer"),
+		GET_INTEGER (U"Maximum number of iterations"), lambda, criterion), my name);
 END
 
 DIRECT (GaussianMixture_and_TableOfReal_to_ClassificationTable)
 	GaussianMixture me = FIRST (GaussianMixture);
 	TableOfReal thee = FIRST (TableOfReal);
-	autoClassificationTable him = GaussianMixture_and_TableOfReal_to_ClassificationTable (me, thee);
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (GaussianMixture_and_TableOfReal_to_ClassificationTable (me, thee),
+		my name, U"_", thy name);
 END
 
 DIRECT (GaussianMixture_and_TableOfReal_to_Correlation)
 	GaussianMixture me = FIRST (GaussianMixture);
 	TableOfReal thee = FIRST (TableOfReal);
-	autoCorrelation him = GaussianMixture_and_TableOfReal_to_Correlation (me, thee);
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (GaussianMixture_and_TableOfReal_to_Correlation (me, thee),
+		my name, U"_", thy name);
 END
 
 FORM (GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests, U"GaussianMixture & TableOfReal: To TableOfReal BHEP normality tests", U"GaussianMixture & TableOfReal: To TableOfReal (BHEP normality tests)...")
@@ -844,100 +790,102 @@ DO
 	GaussianMixture me = FIRST (GaussianMixture);
 	TableOfReal thee = FIRST (TableOfReal);
 	double h = GET_REAL (U"Smoothing parameter");
-	autoTableOfReal him = GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (me, thee, h);
-	praat_new (him.move(), my name, U"_", thy name);
+	praat_new (GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests (me, thee, h),
+		my name, U"_", thy name);
 END
 
 void praat_HMM_init ();
 void praat_HMM_init () {
-	Thing_recognizeClassesByName (classHMM, classHMMState, classHMMObservation, classHMMObservationSequence, classHMMStateSequence, classGaussianMixture, nullptr);
-
-	praat_addMenuCommand (U"Objects", U"New", U"Markov models", nullptr, praat_HIDDEN, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create HMM...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create simple HMM...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_createSimple);
-	praat_addMenuCommand (U"Objects", U"New", U"Create continuous HMM...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_createContinuousModel);
-	praat_addMenuCommand (U"Objects", U"New", U"--drawings--", nullptr, praat_HIDDEN + praat_DEPTH_1, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Draw forward probabilities illustration", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawForwardProbabilitiesIllustration);
-	praat_addMenuCommand (U"Objects", U"New", U"Draw backward probabilities illustration", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawBackwardProbabilitiesIllustration);
-	praat_addMenuCommand (U"Objects", U"New", U"Draw forward and backward probabilities illustration", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawForwardAndBackwardProbabilitiesIllustration);
-
-	praat_addAction1 (classGaussianMixture, 0, U"GaussianMixture help", nullptr, 0, DO_GaussianMixture_help);
-	praat_addAction1 (classGaussianMixture, 0, U"Draw concentration ellipses...", nullptr, 0, DO_GaussianMixture_drawConcentrationEllipses);
-	praat_addAction1 (classGaussianMixture, 0, U"Draw marginal pdf...", nullptr, 0, DO_GaussianMixture_drawMarginalPdf);
-	praat_addAction1 (classGaussianMixture, 0, U"Query -", nullptr, 0, nullptr);
-	praat_addAction1 (classGaussianMixture, 1, U"Get number of components", nullptr, 1, DO_GaussianMixture_getNumberOfComponents);
-	praat_addAction1 (classGaussianMixture, 1, U"Get dimension of component", nullptr, 1, DO_GaussianMixture_getDimensionOfComponent);
-	praat_addAction1 (classGaussianMixture, 1, U"Get probability at position...", nullptr, 1, DO_GaussianMixture_getProbabilityAtPosition);
-	praat_addAction1 (classGaussianMixture, 0, U"Modify -", nullptr, 0, nullptr);
-	praat_addAction1 (classGaussianMixture, 1, U"Split component...", nullptr, 1, DO_GaussianMixture_splitComponent);
-	praat_addAction1 (classGaussianMixture, 0, U"Extract -", nullptr, 0, nullptr);
-	praat_addAction1 (classGaussianMixture, 0, U"Extract mixing probabilities", nullptr, 1, DO_GaussianMixture_extractMixingProbabilities);
-	praat_addAction1 (classGaussianMixture, 0, U"Extract component...", nullptr, 1, DO_GaussianMixture_extractComponent);
-	praat_addAction1 (classGaussianMixture, 0, U"Extract centroids", nullptr, 1, DO_GaussianMixture_extractCentroids);
-	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (between)", nullptr, 0, DO_GaussianMixture_to_Covariance_between);
-	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (within)", nullptr, 0, DO_GaussianMixture_to_Covariance_within);
-	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (total)", nullptr, 0, DO_GaussianMixture_to_Covariance_total);
-	praat_addAction1 (classGaussianMixture, 0, U"To PCA", nullptr, 0, DO_GaussianMixture_to_PCA);
-	praat_addAction1 (classGaussianMixture, 0, U"To TableOfReal (random sampling)...", nullptr, 0, DO_GaussianMixture_to_TableOfReal_randomSampling);
-
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"Get likelihood value...", nullptr, 0, DO_GaussianMixture_and_TableOfReal_getLikelihoodValue);
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"Improve likelihood...", nullptr, 0, DO_GaussianMixture_and_TableOfReal_improveLikelihood);
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To GaussianMixture (CEMM)...", nullptr, 0, DO_GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM);
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To ClassificationTable", nullptr, 0, DO_GaussianMixture_and_TableOfReal_to_ClassificationTable);
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To Correlation", nullptr, 0, DO_GaussianMixture_and_TableOfReal_to_Correlation);
-	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To TableOfReal (BHEP normality tests)...", nullptr, 0, DO_GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests);
-
-	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"Draw concentration ellipses...", nullptr, 0, DO_GaussianMixture_and_PCA_drawConcentrationEllipses);
-	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"Draw marginal pdf...", nullptr, 0, DO_GaussianMixture_and_PCA_drawMarginalPdf);
-	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"To Matrix (density)...", nullptr, 0, DO_GaussianMixture_and_PCA_to_Matrix_density);
-
-	praat_addAction1 (classHMM, 0, U"HMM help ", nullptr, 0, DO_HMM_help);
-	praat_addAction1 (classHMM, 0, U"Draw...", nullptr, 0, DO_HMM_draw);
-	praat_addAction1 (classHMM, 0, U"Query -", nullptr, 0, nullptr);
-	praat_addAction1 (classHMM, 1, U"Get transition probability...", nullptr, 1, DO_HMM_getTransitionProbability);
-	praat_addAction1 (classHMM, 1, U"Get emission probability...", nullptr, 1, DO_HMM_getEmissionProbability);
-	praat_addAction1 (classHMM, 1, U"Get start probability...", nullptr, 1, DO_HMM_getStartProbability);
-	praat_addAction1 (classHMM, 1, U"Get p (time, state)...", nullptr, 1, DO_HMM_getProbabilityAtTimeBeingInState);
-	praat_addAction1 (classHMM, 1, U"Get p (time, state, symbol)...", nullptr, 1, DO_HMM_getProbabilityAtTimeBeingInStateEmittingSymbol);
-	praat_addAction1 (classHMM, 1, U"Get probability staying in state...", nullptr, 1, DO_HMM_getProbabilityOfStayingInState);
-	praat_addAction1 (classHMM, 1, U"Get expected duration in state...", nullptr, 1, DO_HMM_getExpectedValueOfDurationInState);
-	praat_addAction1 (classHMM, 1, U"---- states / symbols -----", nullptr, 1, nullptr);
-	praat_addAction1 (classHMM, 1, U"Get state label...", nullptr, 1, DO_HMM_getStateLabel);
-	praat_addAction1 (classHMM, 1, U"Get symbol label...", nullptr, 1, DO_HMM_getSymbolLabel);
-	praat_addAction1 (classHMM, 0, U"--- multiple HMMs ----", nullptr, 1, nullptr);
-	praat_addAction1 (classHMM, 2, U"Get cross-entropy...", nullptr, 1, DO_HMM_and_HMM_getCrossEntropy);
-
-	praat_addAction1 (classHMM, 0, U"Modify -", nullptr, 0, nullptr);
-	praat_addAction1 (classHMM, 1, U"Set transition probabilities...", nullptr, 1, DO_HMM_setTransitionProbabilities);
-	praat_addAction1 (classHMM, 1, U"Set emission probabilities...", nullptr, 1, DO_HMM_setEmissionProbabilities);
-	praat_addAction1 (classHMM, 1, U"Set start probabilities...", nullptr, 1, DO_HMM_setStartProbabilities);
-
-	praat_addAction1 (classHMM, 0, U"Extract -", nullptr, 0, nullptr);
-	praat_addAction1 (classHMM, 0, U"Extract transition probabilities", nullptr, 1, DO_HMM_extractTransitionProbabilities);
-	praat_addAction1 (classHMM, 0, U"Extract emission probabilities", nullptr, 1, DO_HMM_extractEmissionProbabilities);
-
-	praat_addAction1 (classHMM, 0, U"To HMMObservationSequence...", nullptr, 0, DO_HMM_to_HMMObservationSequence);
-	praat_addAction2 (classHMM, 1, classHMMStateSequence, 1, U"Draw trellis...", nullptr, 0, DO_HMM_and_HMMStateSequence_drawTrellis);
-	praat_addAction2 (classHMM, 1, classHMMStateSequence, 1, U"Get probability", nullptr, 0, DO_HMM_and_HMMStateSequence_getProbability);
-	praat_addAction2 (classHMM, 1, classHMMStateSequence, 1, U"To TableOfReal (bigrams)...", nullptr, 0, DO_HMM_and_HMMStateSequence_to_TableOfReal);
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 1, U"Get probability", nullptr, 0, DO_HMM_and_HMMObservationSequence_getProbability);
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 1, U"Get cross-entropy", nullptr, 0, DO_HMM_and_HMMObservationSequence_getCrossEntropy);
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 1, U"Get perplexity", nullptr, 0, DO_HMM_and_HMMObservationSequence_getPerplexity);
-
-
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 1, U"To HMMStateSequence", nullptr, 0, DO_HMM_and_HMMObservationSequence_to_HMMStateSequence);
-	praat_addAction2 (classHMM, 2, classHMMObservationSequence, 1, U"Get cross-entropy", nullptr, 0, DO_HMM_and_HMM_and_HMMObservationSequence_getCrossEntropy);
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 1, U"To TableOfReal (bigrams)...", nullptr, 0, DO_HMM_and_HMMObservationSequence_to_TableOfReal);
-	praat_addAction2 (classHMM, 1, classHMMObservationSequence, 0, U"Learn...", nullptr, 0, DO_HMM_and_HMMObservationSequence_learn);
-
-	praat_addAction1 (classHMMObservationSequence, 0, U"To TableOfReal (bigrams)...", nullptr, 0, DO_HMMObservationSequence_to_TableOfReal);
-	praat_addAction1 (classHMMObservationSequence, 0, U"To Strings", nullptr, 0, DO_HMMObservationSequence_to_Strings);
-	praat_addAction1 (classHMMStateSequence, 0, U"To TableOfReal (bigrams)...", nullptr, 0, DO_HMMStateSequence_to_TableOfReal);
-	praat_addAction1 (classHMMStateSequence, 0, U"To Strings", nullptr, 0, DO_HMMStateSequence_to_Strings);
-
-	praat_addAction1 (classHMMObservationSequence, 0, U"To HMM...", nullptr, 1, DO_HMMObservationSequence_to_HMM);
-
-	praat_addAction1 (classStrings, 0, U"To HMMObservationSequence", nullptr, praat_HIDDEN, DO_Strings_to_HMMObservationSequence);
+	Thing_recognizeClassesByName (classHMM, classHMM_State, classHMM_Observation,
+	                              classHMM_ObservationSequence, classHMM_StateSequence, classGaussianMixture, NULL);
+
+	praat_addMenuCommand (U"Objects", U"New", U"Markov models", 0, praat_HIDDEN, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create HMM...", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create simple HMM...", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_createSimple);
+	praat_addMenuCommand (U"Objects", U"New", U"Create continuous HMM...", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_createContinuousModel);
+	praat_addMenuCommand (U"Objects", U"New", U"--drawings--", 0, praat_HIDDEN + praat_DEPTH_1, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Draw forward probabilities illustration", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawForwardProbabilitiesIllustration);
+	praat_addMenuCommand (U"Objects", U"New", U"Draw backward probabilities illustration", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawBackwardProbabilitiesIllustration);
+	praat_addMenuCommand (U"Objects", U"New", U"Draw forward and backward probabilities illustration", 0, praat_HIDDEN + praat_DEPTH_1, DO_HMM_drawForwardAndBackwardProbabilitiesIllustration);
+
+	praat_addAction1 (classGaussianMixture, 0, U"GaussianMixture help", 0, 0, DO_GaussianMixture_help);
+	praat_addAction1 (classGaussianMixture, 0, U"Draw concentration ellipses...", 0, 0, DO_GaussianMixture_drawConcentrationEllipses);
+	praat_addAction1 (classGaussianMixture, 0, U"Draw marginal pdf...", 0, 0, DO_GaussianMixture_drawMarginalPdf);
+	praat_addAction1 (classGaussianMixture, 0, U"Query -", 0, 0, 0);
+	praat_addAction1 (classGaussianMixture, 1, U"Get number of components", 0, 1, DO_GaussianMixture_getNumberOfComponents);
+	praat_addAction1 (classGaussianMixture, 1, U"Get dimension of component", 0, 1, DO_GaussianMixture_getDimensionOfComponent);
+	praat_addAction1 (classGaussianMixture, 1, U"Get probability at position...", 0, 1, DO_GaussianMixture_getProbabilityAtPosition);
+	praat_addAction1 (classGaussianMixture, 0, U"Modify -", 0, 0, 0);
+	praat_addAction1 (classGaussianMixture, 1, U"Split component...", 0, 1, DO_GaussianMixture_splitComponent);
+	praat_addAction1 (classGaussianMixture, 0, U"Extract -", 0, 0, 0);
+	praat_addAction1 (classGaussianMixture, 0, U"Extract mixing probabilities", 0, 1, DO_GaussianMixture_extractMixingProbabilities);
+	praat_addAction1 (classGaussianMixture, 0, U"Extract component...", 0, 1, DO_GaussianMixture_extractComponent);
+	praat_addAction1 (classGaussianMixture, 0, U"Extract centroids", 0, 1, DO_GaussianMixture_extractCentroids);
+	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (between)", 0, 0, DO_GaussianMixture_to_Covariance_between);
+	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (within)", 0, 0, DO_GaussianMixture_to_Covariance_within);
+	praat_addAction1 (classGaussianMixture, 0, U"To Covariance (total)", 0, 0, DO_GaussianMixture_to_Covariance_total);
+	praat_addAction1 (classGaussianMixture, 0, U"To PCA", 0, 0, DO_GaussianMixture_to_PCA);
+	praat_addAction1 (classGaussianMixture, 0, U"To TableOfReal (random sampling)...", 0, 0, DO_GaussianMixture_to_TableOfReal_randomSampling);
+
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"Get likelihood value...", 0, 0, DO_GaussianMixture_and_TableOfReal_getLikelihoodValue);
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"Improve likelihood...", 0, 0, DO_GaussianMixture_and_TableOfReal_improveLikelihood);
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To GaussianMixture (CEMM)...", 0, 0, DO_GaussianMixture_and_TableOfReal_to_GaussianMixture_CEMM);
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To ClassificationTable", 0, 0, DO_GaussianMixture_and_TableOfReal_to_ClassificationTable);
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To Correlation", 0, 0, DO_GaussianMixture_and_TableOfReal_to_Correlation);
+	praat_addAction2 (classGaussianMixture, 1, classTableOfReal, 1, U"To TableOfReal (BHEP normality tests)...", 0, 0, DO_GaussianMixture_and_TableOfReal_to_TableOfReal_BHEPNormalityTests);
+
+	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"Draw concentration ellipses...", 0, 0, DO_GaussianMixture_and_PCA_drawConcentrationEllipses);
+	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"Draw marginal pdf...", 0, 0, DO_GaussianMixture_and_PCA_drawMarginalPdf);
+	praat_addAction2 (classGaussianMixture, 1, classPCA, 1, U"To Matrix (density)...", 0, 0, DO_GaussianMixture_and_PCA_to_Matrix_density);
+
+
+	praat_addAction1 (classHMM, 0, U"HMM help ", 0, 0, DO_HMM_help);
+	praat_addAction1 (classHMM, 0, U"Draw...", 0, 0, DO_HMM_draw);
+	praat_addAction1 (classHMM, 0, U"Query -", 0, 0, 0);
+	praat_addAction1 (classHMM, 1, U"Get transition probability...", 0, 1, DO_HMM_getTransitionProbability);
+	praat_addAction1 (classHMM, 1, U"Get emission probability...", 0, 1, DO_HMM_getEmissionProbability);
+	praat_addAction1 (classHMM, 1, U"Get start probability...", 0, 1, DO_HMM_getStartProbability);
+	praat_addAction1 (classHMM, 1, U"Get p (time, state)...", 0, 1, DO_HMM_getProbabilityAtTimeBeingInState);
+	praat_addAction1 (classHMM, 1, U"Get p (time, state, symbol)...", 0, 1, DO_HMM_getProbabilityAtTimeBeingInStateEmittingSymbol);
+	praat_addAction1 (classHMM, 1, U"Get probability staying in state...", 0, 1, DO_HMM_getProbabilityOfStayingInState);
+	praat_addAction1 (classHMM, 1, U"Get expected duration in state...", 0, 1, DO_HMM_getExpectedValueOfDurationInState);
+	praat_addAction1 (classHMM, 1, U"---- states / symbols -----", 0, 1, 0);
+	praat_addAction1 (classHMM, 1, U"Get state label...", 0, 1, DO_HMM_getStateLabel);
+	praat_addAction1 (classHMM, 1, U"Get symbol label...", 0, 1, DO_HMM_getSymbolLabel);
+	praat_addAction1 (classHMM, 0, U"--- multiple HMMs ----", 0, 1, 0);
+	praat_addAction1 (classHMM, 2, U"Get cross-entropy...", 0, 1, DO_HMM_and_HMM_getCrossEntropy);
+
+	praat_addAction1 (classHMM, 0, U"Modify -", 0, 0, 0);
+	praat_addAction1 (classHMM, 1, U"Set transition probabilities...", 0, 1, DO_HMM_setTransitionProbabilities);
+	praat_addAction1 (classHMM, 1, U"Set emission probabilities...", 0, 1, DO_HMM_setEmissionProbabilities);
+	praat_addAction1 (classHMM, 1, U"Set start probabilities...", 0, 1, DO_HMM_setStartProbabilities);
+
+	praat_addAction1 (classHMM, 0, U"Extract -", 0, 0, 0);
+	praat_addAction1 (classHMM, 0, U"Extract transition probabilities", 0, 1, DO_HMM_extractTransitionProbabilities);
+	praat_addAction1 (classHMM, 0, U"Extract emission probabilities", 0, 1, DO_HMM_extractEmissionProbabilities);
+
+	praat_addAction1 (classHMM, 0, U"To HMM_ObservationSequence...", 0, 0, DO_HMM_to_HMM_ObservationSequence);
+	praat_addAction2 (classHMM, 1, classHMM_StateSequence, 1, U"Draw trellis...", 0, 0, DO_HMM_and_HMM_StateSequence_drawTrellis);
+	praat_addAction2 (classHMM, 1, classHMM_StateSequence, 1, U"Get probability", 0, 0, DO_HMM_and_HMM_StateSequence_getProbability);
+	praat_addAction2 (classHMM, 1, classHMM_StateSequence, 1, U"To TableOfReal (bigrams)...", 0, 0, DO_HMM_and_HMM_StateSequence_to_TableOfReal);
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 1, U"Get probability", 0, 0, DO_HMM_and_HMM_ObservationSequence_getProbability);
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 1, U"Get cross-entropy", 0, 0, DO_HMM_and_HMM_ObservationSequence_getCrossEntropy);
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 1, U"Get perplexity", 0, 0, DO_HMM_and_HMM_ObservationSequence_getPerplexity);
+
+
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 1, U"To HMM_StateSequence", 0, 0, DO_HMM_and_HMM_ObservationSequence_to_HMM_StateSequence);
+	praat_addAction2 (classHMM, 2, classHMM_ObservationSequence, 1, U"Get cross-entropy", 0, 0, DO_HMM_and_HMM_and_HMM_ObservationSequence_getCrossEntropy);
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 1, U"To TableOfReal (bigrams)...", 0, 0, DO_HMM_and_HMM_ObservationSequence_to_TableOfReal);
+	praat_addAction2 (classHMM, 1, classHMM_ObservationSequence, 0, U"Learn...", 0, 0, DO_HMM_and_HMM_ObservationSequence_learn);
+
+	praat_addAction1 (classHMM_ObservationSequence, 0, U"To TableOfReal (bigrams)...", 0, 0, DO_HMM_ObservationSequence_to_TableOfReal);
+	praat_addAction1 (classHMM_ObservationSequence, 0, U"To Strings", 0, 0, DO_HMM_ObservationSequence_to_Strings);
+	praat_addAction1 (classHMM_StateSequence, 0, U"To TableOfReal (bigrams)...", 0, 0, DO_HMM_StateSequence_to_TableOfReal);
+	praat_addAction1 (classHMM_StateSequence, 0, U"To Strings", 0, 0, DO_HMM_StateSequence_to_Strings);
+
+	praat_addAction1 (classHMM_ObservationSequence, 0, U"To HMM...", 0, 1, DO_HMM_ObservationSequence_to_HMM);
+
+	praat_addAction1 (classStrings, 0, U"To HMM_ObservationSequence", 0, praat_HIDDEN, DO_Strings_to_HMM_ObservationSequence);
 	praat_addAction1 (classTableOfReal, 0, U"To GaussianMixture (row labels)...", U"To Covariance", praat_HIDDEN + praat_DEPTH_1, DO_TableOfReal_to_GaussianMixture_fromRowlabels);
 	praat_addAction1 (classTableOfReal, 0, U"To GaussianMixture...", U"To Covariance", praat_HIDDEN + praat_DEPTH_1, DO_TableOfReal_to_GaussianMixture);
 
diff --git a/dwtools/praat_KlattGrid_init.cpp b/dwtools/praat_KlattGrid_init.cpp
index 857c458..80cf477 100644
--- a/dwtools/praat_KlattGrid_init.cpp
+++ b/dwtools/praat_KlattGrid_init.cpp
@@ -35,58 +35,58 @@
 
 static const char32 *formant_names[] = { U"", U"oral ", U"nasal ", U"frication ", U"tracheal ", U"nasal anti", U"tracheal anti", U"delta "};
 
-static void KlattGrid_4formants_addCommonField (UiForm dia) {
-	UiField radio;
+static void KlattGrid_4formants_addCommonField (void *dia) {
+	Any radio;
 	OPTIONMENU (U"Formant type", 1)
-		OPTION (U"Normal formant")
-		OPTION (U"Nasal formant")
-		OPTION (U"Frication formant")
-		OPTION (U"Tracheal formant")
+	OPTION (U"Normal formant")
+	OPTION (U"Nasal formant")
+	OPTION (U"Frication formant")
+	OPTION (U"Tracheal formant")
 }
 
-static void KlattGrid_6formants_addCommonField (UiForm dia) {
-	UiField radio;
+static void KlattGrid_6formants_addCommonField (void *dia) {
+	Any radio;
 	OPTIONMENU (U"Formant type", 1)
-		OPTION (U"Normal formant")
-		OPTION (U"Nasal formant")
-		OPTION (U"Frication formant")
-		OPTION (U"Tracheal formant")
-		OPTION (U"Nasal antiformant")
-		OPTION (U"Tracheal antiformant")
-		//	OPTION (U"Delta formant")
+	OPTION (U"Normal formant")
+	OPTION (U"Nasal formant")
+	OPTION (U"Frication formant")
+	OPTION (U"Tracheal formant")
+	OPTION (U"Nasal antiformant")
+	OPTION (U"Tracheal antiformant")
+	//	OPTION (U"Delta formant")
 }
 
-static void KlattGrid_7formants_addCommonField (UiForm dia) {
-	UiField radio;
+static void KlattGrid_7formants_addCommonField (void *dia) {
+	Any radio;
 	OPTIONMENU (U"Formant type", 1)
-		OPTION (U"Normal formant")
-		OPTION (U"Nasal formant")
-		OPTION (U"Frication formant")
-		OPTION (U"Tracheal formant")
-		OPTION (U"Nasal antiformant")
-		OPTION (U"Tracheal antiformant")
-		OPTION (U"Delta formant")
+	OPTION (U"Normal formant")
+	OPTION (U"Nasal formant")
+	OPTION (U"Frication formant")
+	OPTION (U"Tracheal formant")
+	OPTION (U"Nasal antiformant")
+	OPTION (U"Tracheal antiformant")
+	OPTION (U"Delta formant")
 }
 
-static void KlattGrid_PhonationGridPlayOptions_addCommonFields (UiForm dia) {
-	UiField radio;
+static void KlattGrid_PhonationGridPlayOptions_addCommonFields (void *dia) {
+	Any radio;
 	//LABEL (U"", U"Phonation options")
-	BOOLEAN (U"Voicing", true)
-	BOOLEAN (U"Flutter", true)
-	BOOLEAN (U"Double pulsing", true)
-	BOOLEAN (U"Collision phase", true)
-	BOOLEAN (U"Spectral tilt", true)
+	BOOLEAN (U"Voicing", 1)
+	BOOLEAN (U"Flutter", 1)
+	BOOLEAN (U"Double pulsing", 1)
+	BOOLEAN (U"Collision phase", 1)
+	BOOLEAN (U"Spectral tilt", 1)
 	OPTIONMENU (U"Flow function", 1)
-		OPTION (U"Powers in tiers")
-		OPTION (U"t^2-t^3")
-		OPTION (U"t^3-t^4")
-	BOOLEAN (U"Flow derivative", true)
-	BOOLEAN (U"Aspiration", true)
-	BOOLEAN (U"Breathiness", true)
+	OPTION (U"Powers in tiers")
+	OPTION (U"t^2-t^3")
+	OPTION (U"t^3-t^4")
+	BOOLEAN (U"Flow derivative", 1)
+	BOOLEAN (U"Aspiration", 1)
+	BOOLEAN (U"Breathiness", 1)
 }
 
-static void KlattGrid_PhonationGridPlayOptions_getCommonFields (UiForm dia, KlattGrid thee) {
-	PhonationGridPlayOptions pp = thy phonation -> options.get();
+static void KlattGrid_PhonationGridPlayOptions_getCommonFields (void *dia, KlattGrid thee) {
+	PhonationGridPlayOptions pp = thy phonation -> options;
 	pp -> voicing = GET_INTEGER (U"Voicing");
 	pp -> flutter = GET_INTEGER (U"Flutter");
 	pp -> doublePulsing = GET_INTEGER (U"Double pulsing");
@@ -98,19 +98,17 @@ static void KlattGrid_PhonationGridPlayOptions_getCommonFields (UiForm dia, Klat
 	pp -> breathiness = GET_INTEGER (U"Breathiness");
 }
 
-static void KlattGrid_PlayOptions_addCommonFields (UiForm dia, bool hasSound) {
-	UiField radio;
+static void KlattGrid_PlayOptions_addCommonFields (void *dia, int sound) {
+	Any radio;
 	//LABEL (U"", U"Time domain")
 	REAL (U"left Time range (s)", U"0")
 	REAL (U"right Time range (s)", U"0")
-	if (hasSound) {
-		POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
-	}
-	BOOLEAN (U"Scale peak", true)
-	KlattGrid_PhonationGridPlayOptions_addCommonFields (dia);
+	if (sound) POSITIVE (U"Sampling frequency (Hz)", U"44100")
+		BOOLEAN (U"Scale peak", 1)
+		KlattGrid_PhonationGridPlayOptions_addCommonFields (dia);
 	OPTIONMENU (U"Filter options", 1)
-		OPTION (U"Cascade")
-		OPTION (U"Parallel")
+	OPTION (U"Cascade")
+	OPTION (U"Parallel")
 	INTEGER (U"left Oral formant range", U"1")
 	INTEGER (U"right Oral formant range", U"5")
 	INTEGER (U"left Nasal formant range", U"1")
@@ -129,29 +127,29 @@ static void KlattGrid_PlayOptions_addCommonFields (UiForm dia, bool hasSound) {
 	//LABEL (U"", U"Frication options")
 	INTEGER (U"left Frication formant range", U"1")
 	INTEGER (U"right Frication formant range", U"6")
-	BOOLEAN (U"Frication bypass", true)
+	BOOLEAN (U"Frication bypass", 1)
 }
 
-static void KlattGrid_PlayOptions_getCommonFields (UiForm dia, bool hasSound, KlattGrid thee) {
+static void KlattGrid_PlayOptions_getCommonFields (void *dia, int sound, KlattGrid thee) {
 	KlattGrid_setDefaultPlayOptions (thee);
-	KlattGridPlayOptions pk = thy options.get();
+	KlattGridPlayOptions pk = thy options;
 	pk -> scalePeak = GET_INTEGER (U"Scale peak");
 	pk -> xmin = GET_REAL (U"left Time range");
 	pk -> xmax = GET_REAL (U"right Time range");
-	if (hasSound) {
+	if (sound) {
 		pk -> samplingFrequency = GET_REAL (U"Sampling frequency");
 	}
 	pk -> scalePeak = GET_INTEGER (U"Scale peak");
 	KlattGrid_PhonationGridPlayOptions_getCommonFields (dia, thee);
-	VocalTractGridPlayOptions pv = thy vocalTract -> options.get();
-	pv -> filterModel = ( GET_INTEGER (U"Filter options") == 1 ? KlattGrid_FILTER_CASCADE : KlattGrid_FILTER_PARALLEL );
+	VocalTractGridPlayOptions pv = thy vocalTract -> options;
+	pv -> filterModel = GET_INTEGER (U"Filter options") == 1 ? KlattGrid_FILTER_CASCADE : KlattGrid_FILTER_PARALLEL;
 	pv -> startOralFormant = GET_INTEGER (U"left Oral formant range");
 	pv -> endOralFormant  = GET_INTEGER (U"right Oral formant range");
 	pv -> startNasalFormant = GET_INTEGER (U"left Nasal formant range");
 	pv -> endNasalFormant = GET_INTEGER (U"right Nasal formant range");
 	pv -> startNasalAntiFormant = GET_INTEGER (U"left Nasal antiformant range");
 	pv -> endNasalAntiFormant = GET_INTEGER (U"right Nasal antiformant range");
-	CouplingGridPlayOptions pc = thy coupling -> options.get();
+	CouplingGridPlayOptions pc = thy coupling -> options;
 	pc -> startTrachealFormant = GET_INTEGER (U"left Tracheal formant range");
 	pc -> endTrachealFormant = GET_INTEGER (U"right Tracheal formant range");
 	pc -> startTrachealAntiFormant = GET_INTEGER (U"left Tracheal antiformant range");
@@ -160,14 +158,14 @@ static void KlattGrid_PlayOptions_getCommonFields (UiForm dia, bool hasSound, Kl
 	pc -> endDeltaFormant = GET_INTEGER (U"right Delta formant range");
 	pc -> startDeltaBandwidth = GET_INTEGER (U"left Delta bandwidth range");
 	pc -> endDeltaFormant = GET_INTEGER (U"right Delta bandwidth range");
-	FricationGridPlayOptions pf = thy frication -> options.get();
+	FricationGridPlayOptions pf = thy frication -> options;
 	pf -> startFricationFormant = GET_INTEGER (U"left Frication formant range");
 	pf -> endFricationFormant = GET_INTEGER (U"right Frication formant range");
 	pf -> bypass = GET_INTEGER (U"Frication bypass");
 }
 
 DIRECT (KlattGrid_createExample)
-	praat_new (KlattGrid_createExample(), U"example");
+praat_new (KlattGrid_createExample(), U"example");
 END
 
 FORM (KlattGrid_create, U"Create KlattGrid", U"Create KlattGrid...")
@@ -206,31 +204,30 @@ DO
 END
 
 
-#define KlattGrid_INSTALL_TIER_EDITOR(Name) \
+#define KlattGrid_INSTALL_TIER_EDITOR(Name,name) \
 DIRECT (KlattGrid_edit##Name##Tier) \
 	if (theCurrentPraatApplication -> batch) { Melder_throw (U"Cannot edit a KlattGrid from batch."); } \
 	LOOP {\
 		iam (KlattGrid); \
-		auto##KlattGrid_##Name##TierEditor editor = KlattGrid_##Name##TierEditor_create (ID_AND_FULL_NAME, me); \
-		praat_installEditor (editor.get(), IOBJECT); \
-		editor.releaseToUser(); \
+		auto##KlattGrid_##name##TierEditor editor = KlattGrid_##name##TierEditor_create (ID_AND_FULL_NAME, me); \
+		praat_installEditor (editor.transfer(), IOBJECT); \
 	}\
 END
 
-KlattGrid_INSTALL_TIER_EDITOR (Pitch)
-KlattGrid_INSTALL_TIER_EDITOR (VoicingAmplitude)
-KlattGrid_INSTALL_TIER_EDITOR (Flutter)
-KlattGrid_INSTALL_TIER_EDITOR (Power1)
-KlattGrid_INSTALL_TIER_EDITOR (Power2)
-KlattGrid_INSTALL_TIER_EDITOR (OpenPhase)
-KlattGrid_INSTALL_TIER_EDITOR (CollisionPhase)
-KlattGrid_INSTALL_TIER_EDITOR (DoublePulsing)
-KlattGrid_INSTALL_TIER_EDITOR (AspirationAmplitude)
-KlattGrid_INSTALL_TIER_EDITOR (BreathinessAmplitude)
-KlattGrid_INSTALL_TIER_EDITOR (SpectralTilt)
-
-KlattGrid_INSTALL_TIER_EDITOR (FricationBypass)
-KlattGrid_INSTALL_TIER_EDITOR (FricationAmplitude)
+KlattGrid_INSTALL_TIER_EDITOR (Pitch, pitch)
+KlattGrid_INSTALL_TIER_EDITOR (VoicingAmplitude, voicingAmplitude)
+KlattGrid_INSTALL_TIER_EDITOR (Flutter, flutter)
+KlattGrid_INSTALL_TIER_EDITOR (Power1, power1)
+KlattGrid_INSTALL_TIER_EDITOR (Power2, power2)
+KlattGrid_INSTALL_TIER_EDITOR (OpenPhase, openPhase)
+KlattGrid_INSTALL_TIER_EDITOR (CollisionPhase, collisionPhase)
+KlattGrid_INSTALL_TIER_EDITOR (DoublePulsing, doublePulsing)
+KlattGrid_INSTALL_TIER_EDITOR (AspirationAmplitude, aspirationAmplitude)
+KlattGrid_INSTALL_TIER_EDITOR (BreathinessAmplitude, breathinessAmplitude)
+KlattGrid_INSTALL_TIER_EDITOR (SpectralTilt, spectralTilt)
+
+KlattGrid_INSTALL_TIER_EDITOR (FricationBypass, fricationBypass)
+KlattGrid_INSTALL_TIER_EDITOR (FricationAmplitude, fricationAmplitude)
 
 #undef KlattGrid_INSTALL_TIER_EDITOR
 
@@ -240,9 +237,8 @@ DIRECT (KlattGrid_edit##Name##FormantGrid) \
 	LOOP {\
 		iam (KlattGrid); \
 		const char32 *id_and_name = Melder_cat (ID, U". ", formant_names[formantType], U"formant grid"); \
-		autoKlattGrid_FormantGridEditor editor = KlattGrid_FormantGridEditor_create (id_and_name, me, formantType); \
-		praat_installEditor (editor.get(), IOBJECT); \
-		editor.releaseToUser(); \
+		autoKlattGrid_formantGridEditor editor = KlattGrid_formantGridEditor_create (id_and_name, me, formantType); \
+		praat_installEditor (editor.transfer(), IOBJECT); \
 	} \
 END
 
@@ -257,7 +253,7 @@ KlattGRID_EDIT_FORMANTGRID (Frication, KlattGrid_FRICATION_FORMANTS)
 #undef KlattGRID_EDIT_FORMANTGRID
 
 #define KlattGrid_EDIT_FORMANT_AMPLITUDE_TIER(Name,name,formantType) \
-FORM (KlattGrid_edit##Name##FormantAmplitudeTier, U"KlattGrid: View & Edit " #name "formant amplitude tier", nullptr) \
+FORM (KlattGrid_edit##Name##FormantAmplitudeTier, U"KlattGrid: View & Edit " #name "formant amplitude tier", 0) \
 	NATURAL (U"Formant number", U"1") \
 	OK \
 DO \
@@ -265,13 +261,12 @@ DO \
 	if (theCurrentPraatApplication -> batch) { Melder_throw (U"Cannot edit a KlattGrid from batch."); } \
 	LOOP { \
 		iam (KlattGrid); \
-		OrderedOf<structIntensityTier>* amp = KlattGrid_getAddressOfAmplitudes (me, formantType); \
-		if (! amp) Melder_throw (U"Unknown formant type"); \
-		if (formantNumber > amp->size) Melder_throw (U"Formant number does not exist."); \
+		Ordered *amp = KlattGrid_getAddressOfAmplitudes (me, formantType); \
+		if (amp == NULL) Melder_throw (U"Unknown formant type"); \
+		if (formantNumber > (*amp) -> size) Melder_throw (U"Formant number does not exist."); \
 		const char32 *id_and_name = Melder_cat (ID, U". ", formant_names[formantType], U"formant amplitude tier"); \
-		autoKlattGrid_DecibelTierEditor editor = KlattGrid_DecibelTierEditor_create (id_and_name, me, amp->at [formantNumber]); \
-		praat_installEditor (editor.get(), IOBJECT); \
-		editor.releaseToUser(); \
+		autoKlattGrid_decibelTierEditor editor = KlattGrid_decibelTierEditor_create (id_and_name, me, (RealTier) (*amp)->item[formantNumber]); \
+		praat_installEditor (editor.transfer(), IOBJECT); \
 	} \
 END
 
@@ -282,8 +277,8 @@ KlattGrid_EDIT_FORMANT_AMPLITUDE_TIER (Frication, frication, KlattGrid_FRICATION
 
 #undef KlattGrid_EDIT_FORMANT_AMPLITUDE_TIER
 
-#define KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE(Name,name,unit,default,require,requiremessage,newname,tiertype) \
-FORM (KlattGrid_get##Name##AtTime, U"KlattGrid: Get " #name " at time", nullptr) \
+#define KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE(Name,name,unit,default,require, requiremessage,newname,tiertype) \
+FORM(KlattGrid_get##Name##AtTime, U"KlattGrid: Get " #name " at time", 0) \
 	REAL (U"Time", U"0.5") \
 	OK \
 DO \
@@ -291,7 +286,7 @@ DO \
 	Melder_informationReal (KlattGrid_get##Name##AtTime (me, GET_REAL (U"Time")), unit); \
 	}\
 END \
-FORM (KlattGrid_add##Name##Point, U"KlattGrid: Add " #name " point", nullptr) \
+FORM (KlattGrid_add##Name##Point, U"KlattGrid: Add " #name " point", 0) \
 	REAL (U"Time (s)", U"0.5") \
 	REAL (U"Value" unit, default) \
 	OK \
@@ -303,7 +298,7 @@ DO \
 		praat_dataChanged (me); \
 	} \
 END \
-FORM (KlattGrid_remove##Name##Points, U"Remove " #name " points", nullptr) \
+FORM (KlattGrid_remove##Name##Points, U"Remove " #name " points", 0) \
 	REAL (U"From time (s)", U"0.3")\
 	REAL (U"To time (s)", U"0.7") \
 	OK \
@@ -327,32 +322,32 @@ END
 
 // 55 DO_KlattGrid... functions
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (Pitch, pitch, U" (Hz)", (U"100.0"),
-        (value >= 0.0), (U"Pitch must be greater equal zero."), U"f0", PitchTier)
+        (value >= 0), (U"Pitch must be greater equal zero."), U"f0", PitchTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (VoicingAmplitude, voicing amplitude, U" (dB SPL)", U"90.0",
         (1), U"", U"voicing", IntensityTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (Flutter, flutter, U" (0..1)", (U"0.0"),
-        (value >= 0.0 && value <= 1.0), (U"Flutter must be in [0,1]."), U"flutter", RealTier)
+        (value >= 0 && value <= 1), (U"Flutter must be in [0,1]."), U"flutter", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (Power1, power1, U"", U"3",
-        (value > 0.0), U"Power1 needs to be positive.", U"power1", RealTier)
+        (value > 0), U"Power1 needs to be positive.", U"power1", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (Power2, power2, U"", U"4",
-        (value > 0.0), U"Power2 needs to be positive.", U"power2", RealTier)
+        (value > 0), U"Power2 needs to be positive.", U"power2", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (OpenPhase, open phase, U"", U"0.7",
-        (value >= 0.0 && value <= 1.0), U"Open phase must be greater than zero and smaller equal one.", U"openPhase", RealTier)
+        (value >= 0 && value <= 1), U"Open phase must be greater than zero and smaller equal one.", U"openPhase", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (CollisionPhase, collision phase, U"", U"0.03",
-        (value >= 0.0 && value < 1.0), U"Collision phase must be greater equal zero and smaller than one.", U"collisionPhase", RealTier)
+        (value >= 0 && value < 1), U"Collision phase must be greater equal zero and smaller than one.", U"collisionPhase", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (DoublePulsing, double pulsing, U" (0..1)", U"0.0",
-        (value >= 0.0 && value <= 1.0), U"Double pulsing must be greater equal zero and smaller equal one.", U"doublePulsing", RealTier)
+        (value >= 0 && value <= 1), U"Double pulsing must be greater equal zero and smaller equal one.", U"doublePulsing", RealTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (SpectralTilt, spectral tilt, U" (dB)", U"0.0",
-        (value >= 0.0), U"Spectral tilt must be greater equal zero.", U"spectralTilt", IntensityTier)
+        (value >= 0), U"Spectral tilt must be greater equal zero.", U"spectralTilt", IntensityTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (AspirationAmplitude, aspiration amplitude, U" (dB SPL)", U"0.0",
-        (true), U"", U"aspiration", IntensityTier)
+        (1), U"", U"aspiration", IntensityTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (BreathinessAmplitude, breathiness amplitude, U" (dB SPL)", U"30.0",
-        (true), U"", U"breathiness", IntensityTier)
+        (1), U"", U"breathiness", IntensityTier)
 
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (FricationAmplitude, frication amplitude, U" (dB SPL)", U"30.0",
-        (true), U"", U"frication", IntensityTier)
+        (1), U"", U"frication", IntensityTier)
 KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE (FricationBypass, frication bypass, U" (dB)", U"30.0",
-        (true), U"", U"bypass", IntensityTier)
+        (1), U"", U"bypass", IntensityTier)
 
 #undef KlattGrid_PHONATION_GET_ADD_REMOVE_EXTRACT_REPLACE
 
@@ -370,7 +365,7 @@ DO \
 END
 
 #define KlattGrid_ADD_FBA_VALUE(Name,namef,Form,FBA,fba,formantType,default,unit,require,requiremessage) \
-FORM (KlattGrid_add##Name##Formant##FBA##Point, U"KlattGrid: Add " #namef "ormant " #fba " point", nullptr) \
+FORM (KlattGrid_add##Name##Formant##FBA##Point, U"KlattGrid: Add " #namef "ormant " #fba " point", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
 	REAL (U"Value " #unit, default) \
@@ -385,7 +380,7 @@ DO \
 END
 
 #define KlattGrid_REMOVE_FBA_VALUE(Name,namef,Form,FBA,fba,formantType) \
-FORM (KlattGrid_remove##Name##Formant##FBA##Points, U"KlattGrid: Remove " #namef "ormant " #fba " points", nullptr) \
+FORM (KlattGrid_remove##Name##Formant##FBA##Points, U"KlattGrid: Remove " #namef "ormant " #fba " points", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"From time (s)", U"0.3")\
 	REAL (U"To time (s)", U"0.7") \
@@ -398,7 +393,7 @@ DO \
 END
 
 #define KlattGrid_ADD_FORMANT(Name,namef,formantType) \
-FORM (KlattGrid_add##Name##Formant, U"KlattGrid: Add " #namef "ormant", nullptr) \
+FORM (KlattGrid_add##Name##Formant, U"KlattGrid: Add " #namef "ormant", 0) \
 	INTEGER (U"Position", U"0 (=at end)") \
 	OK \
 DO \
@@ -409,7 +404,7 @@ DO \
 END
 
 #define KlattGrid_REMOVE_FORMANT(Name,namef,formantType) \
-FORM (KlattGrid_remove##Name##Formant, U"KlattGrid: Remove " #namef "ormant", nullptr) \
+FORM (KlattGrid_remove##Name##Formant, U"KlattGrid: Remove " #namef "ormant", 0) \
 	INTEGER (U"Position", U"0 (=do nothing)") \
 	OK \
 DO \
@@ -420,7 +415,7 @@ DO \
 END
 
 #define KlattGrid_ADD_FORMANT_FREQUENCYANDBANDWIDTHTIERS(Name,namef,formantType) \
-FORM (KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers, U"KlattGrid: Add " #namef "ormant", nullptr) \
+FORM (KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers, U"KlattGrid: Add " #namef "ormant", 0) \
 	INTEGER (U"Position", U"0 (=at end)") \
 	OK \
 DO \
@@ -431,7 +426,7 @@ DO \
 END
 
 #define KlattGrid_REMOVE_FORMANT_FREQUENCYANDBANDWIDTHTIERS(Name,namef,formantType) \
-FORM (KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers, U"KlattGrid: Remove " #namef "ormant", nullptr) \
+FORM (KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers, U"KlattGrid: Remove " #namef "ormant", 0) \
 	INTEGER (U"Position", U"0 (=do nothing)") \
 	OK \
 DO \
@@ -442,7 +437,7 @@ DO \
 END
 
 #define KlattGrid_ADD_FORMANT_AMPLITUDETIER(Name,namef,formantType) \
-FORM (KlattGrid_add##Name##FormantAmplitudeTier, U"KlattGrid: Add " #namef "ormant amplitude tier", nullptr) \
+FORM (KlattGrid_add##Name##FormantAmplitudeTier, U"KlattGrid: Add " #namef "ormant amplitude tier", 0) \
 	INTEGER (U"Position", U"0 (=at end)") \
 	OK \
 DO \
@@ -453,7 +448,7 @@ DO \
 END
 
 #define KlattGrid_REMOVE_FORMANT_AMPLITUDETIER(Name,namef,formantType) \
-FORM (KlattGrid_remove##Name##FormantAmplitudeTier, U"KlattGrid: Remove " #namef "ormant amplitude tier", nullptr) \
+FORM (KlattGrid_remove##Name##FormantAmplitudeTier, U"KlattGrid: Remove " #namef "ormant amplitude tier", 0) \
 	INTEGER (U"Position", U"0 (=do nothing)") \
 	OK \
 DO \
@@ -556,7 +551,7 @@ DO
 END
 
 #define KlattGrid_FORMANT_GET_FB_VALUE(Name,name,ForB,forb,FormB,formantType) \
-FORM (KlattGrid_get##Name##Formant##ForB##AtTime, U"KlattGrid: Get " #name " " #forb " at time", nullptr) \
+FORM (KlattGrid_get##Name##Formant##ForB##AtTime, U"KlattGrid: Get " #name " " #forb " at time", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
 	OK \
@@ -567,7 +562,7 @@ DO \
 END
 
 #define KlattGrid_FORMANT_GET_A_VALUE(Name,name,formantType) \
-FORM (KlattGrid_get##Name##FormantAmplitudeAtTime, U"KlattGrid: Get " #name " formant amplitude at time", nullptr) \
+FORM (KlattGrid_get##Name##FormantAmplitudeAtTime, U"KlattGrid: Get " #name " formant amplitude at time", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
 	OK \
@@ -604,7 +599,7 @@ DIRECT (KlattGrid_extract##Name##FormantGrid) \
 END
 
 #define KlattGrid_EXTRACT_FORMANT_AMPLITUDE(Name,name,formantType) \
-FORM (KlattGrid_extract##Name##FormantAmplitudeTier, U"KlattGrid: Extract " #name " formant amplitude tier", nullptr) \
+FORM (KlattGrid_extract##Name##FormantAmplitudeTier, U"KlattGrid: Extract " #name " formant amplitude tier", 0) \
 	NATURAL (U"Formant number", U"1") \
 	OK \
 DO \
@@ -613,6 +608,7 @@ DO \
 	} \
 END
 
+
 KlattGrid_EXTRACT_FORMANT_GRID (Oral, KlattGrid_ORAL_FORMANTS)
 KlattGrid_EXTRACT_FORMANT_AMPLITUDE (Oral, oral, KlattGrid_ORAL_FORMANTS)
 KlattGrid_EXTRACT_FORMANT_GRID (Nasal, KlattGrid_NASAL_FORMANTS)
@@ -636,7 +632,7 @@ DIRECT (KlattGrid_replace##Name##FormantGrid) \
 END
 
 #define KlattGrid_REPLACE_FORMANT_AMPLITUDE(Name,name,formantType) \
-FORM (KlattGrid_replace##Name##FormantAmplitudeTier, U"KlattGrid: Replace " #name " formant amplitude tier", nullptr) \
+FORM (KlattGrid_replace##Name##FormantAmplitudeTier, U"KlattGrid: Replace " #name " formant amplitude tier", 0) \
 	NATURAL (U"Formant number", U"1") \
 	OK \
 DO \
@@ -662,7 +658,7 @@ KlattGrid_REPLACE_FORMANT_AMPLITUDE (Frication, frication, KlattGrid_FRICATION_F
 #undef KlattGrid_REPLACE_FORMANTGRID
 
 #define KlattGrid_FORMANT_GET_ADD_REMOVE(Name,name,unit,default,require,requiremessage) \
-FORM (KlattGrid_get##Name##AtTime, U"KlattGrid: Get " #name " at time", nullptr) \
+FORM (KlattGrid_get##Name##AtTime, U"KlattGrid: Get " #name " at time", 0) \
 	KlattGrid_6formants_addCommonField (dia); \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
@@ -673,7 +669,7 @@ DO \
 		Melder_informationReal (KlattGrid_get##Name##AtTime (me, formantType, GET_INTEGER (U"Formant number"), GET_REAL (U"Time")), U" (Hz)"); \
 	} \
 END \
-FORM (KlattGrid_getDelta##Name##AtTime, U"KlattGrid: Get delta " #name " at time", nullptr) \
+FORM (KlattGrid_getDelta##Name##AtTime, U"KlattGrid: Get delta " #name " at time", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
 	OK \
@@ -682,7 +678,7 @@ DO \
 		Melder_informationReal (KlattGrid_getDelta##Name##AtTime (me, GET_INTEGER (U"Formant number"), GET_REAL (U"Time")), U" (Hz)"); \
 	} \
 END \
-FORM (KlattGrid_add##Name##Point, U"KlattGrid: Add " #name " point", nullptr) \
+FORM (KlattGrid_add##Name##Point, U"KlattGrid: Add " #name " point", 0) \
 	KlattGrid_6formants_addCommonField (dia); \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
@@ -697,7 +693,7 @@ DO \
 		praat_dataChanged (me); \
 	} \
 END \
-FORM (KlattGrid_addDelta##Name##Point, U"KlattGrid: Add delta " #name " point", nullptr) \
+FORM (KlattGrid_addDelta##Name##Point, U"KlattGrid: Add delta " #name " point", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"Time (s)", U"0.5") \
 	REAL (U"Value" unit, default) \
@@ -710,7 +706,7 @@ DO \
 		praat_dataChanged (me); \
 	} \
 END \
-FORM (KlattGrid_remove##Name##Points, U"Remove " #name " points", nullptr) \
+FORM (KlattGrid_remove##Name##Points, U"Remove " #name " points", 0) \
 	KlattGrid_6formants_addCommonField (dia); \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"From time (s)", U"0.3")\
@@ -723,7 +719,7 @@ DO \
 		praat_dataChanged (me);\
 	} \
 END \
-FORM (KlattGrid_removeDelta##Name##Points, U"Remove delta " #name " points", nullptr) \
+FORM (KlattGrid_removeDelta##Name##Points, U"Remove delta " #name " points", 0) \
 	NATURAL (U"Formant number", U"1") \
 	REAL (U"From time (s)", U"0.3")\
 	REAL (U"To time (s)", U"0.7") \
@@ -740,7 +736,7 @@ KlattGrid_FORMANT_GET_ADD_REMOVE (Bandwidth, bandwidth, U" (Hz)", U"50.0", (valu
 
 #undef KlattGrid_FORMANT_GET_ADD_REMOVE
 
-FORM (KlattGrid_addFormantAndBandwidthTier, U"", nullptr)
+FORM (KlattGrid_addFormantAndBandwidthTier, U"", 0)
 	KlattGrid_7formants_addCommonField (dia);
 	INTEGER (U"Position", U"0 (=at end)")
 	OK
@@ -753,7 +749,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_extractFormantGrid, U"KlattGrid: Extract formant grid", nullptr)
+FORM (KlattGrid_extractFormantGrid, U"KlattGrid: Extract formant grid", 0)
 	KlattGrid_6formants_addCommonField (dia);
 	OK
 DO
@@ -764,7 +760,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_replaceFormantGrid, U"KlattGrid: Replace formant grid", nullptr)
+FORM (KlattGrid_replaceFormantGrid, U"KlattGrid: Replace formant grid", 0)
 	KlattGrid_6formants_addCommonField (dia);
 	OK
 DO
@@ -774,7 +770,7 @@ DO
 	praat_dataChanged (OBJECT);
 END
 
-FORM (KlattGrid_getAmplitudeAtTime, U"KlattGrid: Get amplitude at time", nullptr)
+FORM (KlattGrid_getAmplitudeAtTime, U"KlattGrid: Get amplitude at time", 0) \
 	KlattGrid_4formants_addCommonField (dia);
 	NATURAL (U"Formant number", U"1")
 	REAL (U"Time (s)", U"0.5")
@@ -787,7 +783,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_addAmplitudePoint, U"KlattGrid: Add amplitude point", nullptr)
+FORM (KlattGrid_addAmplitudePoint, U"KlattGrid: Add amplitude point", 0)
 	KlattGrid_4formants_addCommonField (dia);
 	NATURAL (U"Formant number", U"1")
 	REAL (U"Time (s)", U"0.5")
@@ -803,7 +799,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_removeAmplitudePoints, U"Remove amplitude points", nullptr)
+FORM (KlattGrid_removeAmplitudePoints, U"Remove amplitude points", 0) \
 	KlattGrid_4formants_addCommonField (dia);
 	NATURAL (U"Formant number", U"1")
 	REAL (U"From time (s)", U"0.3")
@@ -818,7 +814,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_extractAmplitudeTier, U"", nullptr)
+FORM (KlattGrid_extractAmplitudeTier, U"", 0)
 	KlattGrid_4formants_addCommonField (dia);
 	NATURAL (U"Formant number", U"1")
 	OK
@@ -830,7 +826,7 @@ DO
 	}
 END
 
-FORM (KlattGrid_replaceAmplitudeTier, U"KlattGrid: Replace amplitude tier", nullptr)
+FORM (KlattGrid_replaceAmplitudeTier, U"KlattGrid: Replace amplitude tier", 0)
 	KlattGrid_4formants_addCommonField (dia);
 	NATURAL (U"Formant number", U"1")
 	OK
@@ -843,13 +839,13 @@ DO
 END
 
 FORM (KlattGrid_to_Sound_special, U"KlattGrid: To Sound (special)", U"KlattGrid: To Sound (special)...")
-	KlattGrid_PlayOptions_addCommonFields (dia, true);
+	KlattGrid_PlayOptions_addCommonFields (dia, 1);
 	OK
 DO
 	LOOP {
 		iam (KlattGrid);
 		KlattGrid_setDefaultPlayOptions (me);
-		KlattGrid_PlayOptions_getCommonFields (dia, true, me);
+		KlattGrid_PlayOptions_getCommonFields (dia, 1, me);
 		praat_new (KlattGrid_to_Sound (me), my name);
 	}
 END
@@ -863,19 +859,19 @@ DIRECT (KlattGrid_to_Sound)
 END
 
 FORM (KlattGrid_playSpecial, U"KlattGrid: Play special", U"KlattGrid: Play special...")
-	KlattGrid_PlayOptions_addCommonFields (dia, false);
+	KlattGrid_PlayOptions_addCommonFields (dia, 0);
 	OK
 DO
 	LOOP {
 		iam (KlattGrid);
 		KlattGrid_setDefaultPlayOptions (me);
-		KlattGrid_PlayOptions_getCommonFields (dia, false, me);
+		KlattGrid_PlayOptions_getCommonFields (dia, 0, me);
 		KlattGrid_playSpecial (me);
 	}
 END
 
 FORM (KlattGrid_to_Sound_phonation, U"KlattGrid: To Sound (phonation)", U"KlattGrid: To Sound (phonation)...")
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	KlattGrid_PhonationGridPlayOptions_addCommonFields (dia);
 	OK
 DO
@@ -896,10 +892,10 @@ DIRECT (KlattGrid_play)
 	}
 END
 
-FORM (KlattGrid_draw, U"KlattGrid: Draw", nullptr)
+FORM (KlattGrid_draw, U"KlattGrid: Draw", 0)
 	RADIO (U"Synthesis model", 1)
-		RADIOBUTTON (U"Cascade")
-		RADIOBUTTON (U"Parallel")
+	RADIOBUTTON (U"Cascade")
+	RADIOBUTTON (U"Parallel")
 	OK
 DO
 	autoPraatPicture picture;
@@ -909,11 +905,11 @@ DO
 	}
 END
 
-FORM (KlattGrid_drawVocalTract, U"KlattGrid: Draw vocal tract", nullptr)
+FORM (KlattGrid_drawVocalTract, U"KlattGrid: Draw vocal tract", 0)
 	RADIO (U"Synthesis model", 1)
-		RADIOBUTTON (U"Cascade")
-		RADIOBUTTON (U"Parallel")
-	BOOLEAN (U"Include tracheal formants", true);
+	RADIOBUTTON (U"Cascade")
+	RADIOBUTTON (U"Parallel")
+	BOOLEAN (U"Include tracheal formants", 1);
 	OK
 DO
 	autoPraatPicture picture;
@@ -927,7 +923,7 @@ DIRECT (KlattGrid_drawPhonation)
 	autoPraatPicture picture;
 	LOOP {
 		iam (KlattGrid);
-		PhonationGrid_draw (my phonation.get(), GRAPHICS);
+		PhonationGrid_draw (my phonation, GRAPHICS);
 	}
 END
 
@@ -935,7 +931,7 @@ DIRECT (KlattGrid_drawFrication)
 	autoPraatPicture picture;
 	LOOP {
 		iam (KlattGrid);
-		FricationGrid_draw (my frication.get(), GRAPHICS);
+		FricationGrid_draw (my frication, GRAPHICS);
 	}
 END
 
@@ -953,8 +949,8 @@ END
 
 FORM (Sound_KlattGrid_filterByVocalTract, U"Sound & KlattGrid: Filter by vocal tract", U"Sound & KlattGrid: Filter by vocal tract...")
 	RADIO (U"Vocal tract filter model", 1)
-		RADIOBUTTON (U"Cascade")
-		RADIOBUTTON (U"Parallel")
+	RADIOBUTTON (U"Cascade")
+	RADIOBUTTON (U"Parallel")
 	OK
 DO
 	Sound me = FIRST (Sound);
@@ -966,13 +962,13 @@ END
 void praat_KlattGrid_init ();
 void praat_KlattGrid_init () {
 
-	Thing_recognizeClassesByName (classKlattGrid, nullptr);
+	Thing_recognizeClassesByName (classKlattGrid, NULL);
 
-	praat_addMenuCommand (U"Objects", U"New", U"Acoustic synthesis (Klatt)", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"KlattGrid help", nullptr, 1, DO_KlattGrid_help);
-	praat_addMenuCommand (U"Objects", U"New", U"-- the synthesizer grid --", nullptr, 1, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create KlattGrid...", nullptr, 1, DO_KlattGrid_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create KlattGrid example", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_createExample);
+	praat_addMenuCommand (U"Objects", U"New", U"Acoustic synthesis (Klatt)", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"KlattGrid help", 0, 1, DO_KlattGrid_help);
+	praat_addMenuCommand (U"Objects", U"New", U"-- the synthesizer grid --", 0, 1, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create KlattGrid...", 0, 1, DO_KlattGrid_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create KlattGrid example", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_createExample);
 
 	/*
 	Edit oral/nasal/tracheal/frication/delta formant grid
@@ -1010,76 +1006,76 @@ void praat_KlattGrid_init () {
 	#define KlattGrid_TRACHEAL_ANTIFORMANTS 6
 	#define KlattGrid_DELTA_FORMANTS 7
 	*/
-	praat_addAction1 (classKlattGrid, 0, U"KlattGrid help", nullptr, 0, DO_KlattGrid_help);
-	praat_addAction1 (classKlattGrid, 0, U"Edit phonation -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Edit pitch tier", nullptr, 1, DO_KlattGrid_editPitchTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit voicing amplitude tier", nullptr, 1, DO_KlattGrid_editVoicingAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit flutter tier", nullptr, 1, DO_KlattGrid_editFlutterTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit power1 tier", nullptr, 1, DO_KlattGrid_editPower1Tier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit power2 tier", nullptr, 1, DO_KlattGrid_editPower2Tier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit open phase tier", nullptr, 1, DO_KlattGrid_editOpenPhaseTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit collision phase tier", nullptr, 1, DO_KlattGrid_editCollisionPhaseTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit double pulsing tier", nullptr, 1, DO_KlattGrid_editDoublePulsingTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit spectral tilt tier", nullptr, 1, DO_KlattGrid_editSpectralTiltTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit aspiration amplitude tier", nullptr, 1, DO_KlattGrid_editAspirationAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit breathiness amplitude tier", nullptr, 1, DO_KlattGrid_editBreathinessAmplitudeTier);
-
-	praat_addAction1 (classKlattGrid, 0, U"Edit filters -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Edit oral formant grid", nullptr, 1, DO_KlattGrid_editOralFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit nasal formant grid", nullptr, 1, DO_KlattGrid_editNasalFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit nasal antiformant grid", nullptr, 1, DO_KlattGrid_editNasalAntiFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit oral formant amplitude tier...", nullptr, 1, DO_KlattGrid_editOralFormantAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit nasal formant amplitude tier...", nullptr, 1, DO_KlattGrid_editNasalFormantAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"-- edit delta formant grid --", nullptr, 1, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Edit delta formant grid", nullptr, 1, DO_KlattGrid_editDeltaFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal formant grid", nullptr, 1, DO_KlattGrid_editTrachealFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal antiformant grid", nullptr, 1, DO_KlattGrid_editTrachealAntiFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal formant amplitude tier...", nullptr, 1, DO_KlattGrid_editTrachealFormantAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"-- edit frication tiers --", nullptr, 1, nullptr);
-	praat_addAction1 (classKlattGrid, 1, U"Edit frication amplitude tier", nullptr, 1, DO_KlattGrid_editFricationAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit frication formant grid", nullptr, 1, DO_KlattGrid_editFricationFormantGrid);
-	praat_addAction1 (classKlattGrid, 0, U"Edit frication formant amplitude tier...", nullptr, 1, DO_KlattGrid_editFricationFormantAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Edit frication bypass tier", nullptr, 1, DO_KlattGrid_editFricationBypassTier);
-	praat_addAction1 (classKlattGrid, 1, U"Edit frication amplitude tier", nullptr, 1, DO_KlattGrid_editFricationAmplitudeTier);
-
-	praat_addAction1 (classKlattGrid, 0, U"Play", nullptr, 0, DO_KlattGrid_play);
-	praat_addAction1 (classKlattGrid, 0, U"Play special...", nullptr, 0, DO_KlattGrid_playSpecial);
-	praat_addAction1 (classKlattGrid, 0, U"To Sound", nullptr, 0, DO_KlattGrid_to_Sound);
-	praat_addAction1 (classKlattGrid, 0, U"To Sound (special)...", nullptr, 0, DO_KlattGrid_to_Sound_special);
-	praat_addAction1 (classKlattGrid, 0, U"To Sound (phonation)...", nullptr, 0, DO_KlattGrid_to_Sound_phonation);
-
-	praat_addAction1 (classKlattGrid, 0, U"Draw -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Draw synthesizer...", nullptr, 1, DO_KlattGrid_draw);
-	praat_addAction1 (classKlattGrid, 0, U"Draw vocal tract...", nullptr, 1, DO_KlattGrid_drawVocalTract);
-	praat_addAction1 (classKlattGrid, 0, U"Draw phonation", nullptr, 1, DO_KlattGrid_drawPhonation);
-	praat_addAction1 (classKlattGrid, 0, U"Draw frication", nullptr, 1, DO_KlattGrid_drawFrication);
-
-	praat_addAction1 (classKlattGrid, 0, U"Query phonation -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 1, U"Get pitch at time...", nullptr, 1, DO_KlattGrid_getPitchAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get voicing amplitude at time...", nullptr, 1, DO_KlattGrid_getVoicingAmplitudeAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get flutter at time...", nullptr, 1, DO_KlattGrid_getFlutterAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get power1 at time...", nullptr, 1, DO_KlattGrid_getPower1AtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get power2 at time...", nullptr, 1, DO_KlattGrid_getPower2AtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get open phase at time...", nullptr, 1, DO_KlattGrid_getOpenPhaseAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get collision phase at time...", nullptr, 1, DO_KlattGrid_getCollisionPhaseAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get double pulsing at time...", nullptr, 1, DO_KlattGrid_getDoublePulsingAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get spectral tilt at time...", nullptr, 1, DO_KlattGrid_getSpectralTiltAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get aspiration amplitude at time...", nullptr, 1, DO_KlattGrid_getAspirationAmplitudeAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get breathiness amplitude at time...", nullptr, 1, DO_KlattGrid_getBreathinessAmplitudeAtTime);
-
-	praat_addAction1 (classKlattGrid, 0, U"Query filters -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 1, U"Get formant at time...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getFormantAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get bandwidth at time...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getBandwidthAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get amplitude at time...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getAmplitudeAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get delta formant at time...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getDeltaFormantAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get delta bandwidth at time...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getDeltaBandwidthAtTime);
+	praat_addAction1 (classKlattGrid, 0, U"KlattGrid help", 0, 0, DO_KlattGrid_help);
+	praat_addAction1 (classKlattGrid, 0, U"Edit phonation -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Edit pitch tier", 0, 1, DO_KlattGrid_editPitchTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit voicing amplitude tier", 0, 1, DO_KlattGrid_editVoicingAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit flutter tier", 0, 1, DO_KlattGrid_editFlutterTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit power1 tier", 0, 1, DO_KlattGrid_editPower1Tier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit power2 tier", 0, 1, DO_KlattGrid_editPower2Tier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit open phase tier", 0, 1, DO_KlattGrid_editOpenPhaseTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit collision phase tier", 0, 1, DO_KlattGrid_editCollisionPhaseTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit double pulsing tier", 0, 1, DO_KlattGrid_editDoublePulsingTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit spectral tilt tier", 0, 1, DO_KlattGrid_editSpectralTiltTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit aspiration amplitude tier", 0, 1, DO_KlattGrid_editAspirationAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit breathiness amplitude tier", 0, 1, DO_KlattGrid_editBreathinessAmplitudeTier);
+
+	praat_addAction1 (classKlattGrid, 0, U"Edit filters -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Edit oral formant grid", 0, 1, DO_KlattGrid_editOralFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit nasal formant grid", 0, 1, DO_KlattGrid_editNasalFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit nasal antiformant grid", 0, 1, DO_KlattGrid_editNasalAntiFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit oral formant amplitude tier...", 0, 1, DO_KlattGrid_editOralFormantAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit nasal formant amplitude tier...", 0, 1, DO_KlattGrid_editNasalFormantAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"-- edit delta formant grid --", 0, 1, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Edit delta formant grid", 0, 1, DO_KlattGrid_editDeltaFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal formant grid", 0, 1, DO_KlattGrid_editTrachealFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal antiformant grid", 0, 1, DO_KlattGrid_editTrachealAntiFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit tracheal formant amplitude tier...", 0, 1, DO_KlattGrid_editTrachealFormantAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"-- edit frication tiers --", 0, 1, 0);
+	praat_addAction1 (classKlattGrid, 1, U"Edit frication amplitude tier", 0, 1, DO_KlattGrid_editFricationAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit frication formant grid", 0, 1, DO_KlattGrid_editFricationFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Edit frication formant amplitude tier...", 0, 1, DO_KlattGrid_editFricationFormantAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Edit frication bypass tier", 0, 1, DO_KlattGrid_editFricationBypassTier);
+	praat_addAction1 (classKlattGrid, 1, U"Edit frication amplitude tier", 0, 1, DO_KlattGrid_editFricationAmplitudeTier);
+
+	praat_addAction1 (classKlattGrid, 0, U"Play", 0, 0, DO_KlattGrid_play);
+	praat_addAction1 (classKlattGrid, 0, U"Play special...", 0, 0, DO_KlattGrid_playSpecial);
+	praat_addAction1 (classKlattGrid, 0, U"To Sound", 0, 0, DO_KlattGrid_to_Sound);
+	praat_addAction1 (classKlattGrid, 0, U"To Sound (special)...", 0, 0, DO_KlattGrid_to_Sound_special);
+	praat_addAction1 (classKlattGrid, 0, U"To Sound (phonation)...", 0, 0, DO_KlattGrid_to_Sound_phonation);
+
+	praat_addAction1 (classKlattGrid, 0, U"Draw -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Draw synthesizer...", 0, 1, DO_KlattGrid_draw);
+	praat_addAction1 (classKlattGrid, 0, U"Draw vocal tract...", 0, 1, DO_KlattGrid_drawVocalTract);
+	praat_addAction1 (classKlattGrid, 0, U"Draw phonation", 0, 1, DO_KlattGrid_drawPhonation);
+	praat_addAction1 (classKlattGrid, 0, U"Draw frication", 0, 1, DO_KlattGrid_drawFrication);
+
+	praat_addAction1 (classKlattGrid, 0, U"Query phonation -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 1, U"Get pitch at time...", 0, 1, DO_KlattGrid_getPitchAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get voicing amplitude at time...", 0, 1, DO_KlattGrid_getVoicingAmplitudeAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get flutter at time...", 0, 1, DO_KlattGrid_getFlutterAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get power1 at time...", 0, 1, DO_KlattGrid_getPower1AtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get power2 at time...", 0, 1, DO_KlattGrid_getPower2AtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get open phase at time...", 0, 1, DO_KlattGrid_getOpenPhaseAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get collision phase at time...", 0, 1, DO_KlattGrid_getCollisionPhaseAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get double pulsing at time...", 0, 1, DO_KlattGrid_getDoublePulsingAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get spectral tilt at time...", 0, 1, DO_KlattGrid_getSpectralTiltAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get aspiration amplitude at time...", 0, 1, DO_KlattGrid_getAspirationAmplitudeAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get breathiness amplitude at time...", 0, 1, DO_KlattGrid_getBreathinessAmplitudeAtTime);
+
+	praat_addAction1 (classKlattGrid, 0, U"Query filters -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 1, U"Get formant at time...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getFormantAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get bandwidth at time...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getBandwidthAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get amplitude at time...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getAmplitudeAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get delta formant at time...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getDeltaFormantAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get delta bandwidth at time...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_getDeltaBandwidthAtTime);
 
 #define KlattGRID_GET_FORMANT_FB_VALUES_ACTION(Name, formantname) \
-	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " frequency at time...", nullptr, 1, DO_KlattGrid_get##Name##FormantFrequencyAtTime); \
-	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " bandwidth at time...", nullptr, 1, DO_KlattGrid_get##Name##FormantBandwidthAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " frequency at time...", 0, 1, DO_KlattGrid_get##Name##FormantFrequencyAtTime); \
+	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " bandwidth at time...", 0, 1, DO_KlattGrid_get##Name##FormantBandwidthAtTime);
 
 #define KlattGRID_GET_FORMANT_A_VALUES_ACTION(Name,formantname) \
-	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " amplitude at time...", nullptr, 1, DO_KlattGrid_get##Name##FormantAmplitudeAtTime); \
+	praat_addAction1 (classKlattGrid, 1, U"Get " #formantname " amplitude at time...", 0, 1, DO_KlattGrid_get##Name##FormantAmplitudeAtTime); \
 
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (Oral, oral formant)
 	KlattGRID_GET_FORMANT_A_VALUES_ACTION (Oral, oral formant)
@@ -1087,37 +1083,37 @@ void praat_KlattGrid_init () {
 	KlattGRID_GET_FORMANT_A_VALUES_ACTION (Nasal, nasal formant)
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (NasalAnti, nasal antiformant)
 
-	praat_addAction1 (classKlattGrid, 1, U"-- query delta characteristics", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 1, U"-- query delta characteristics", 0, 1, 0);
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (Delta, delta formant)
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (Tracheal, tracheal formant)
 	KlattGRID_GET_FORMANT_A_VALUES_ACTION (Tracheal, tracheal formant)
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (TrachealAnti, tracheal antiformant)
-	praat_addAction1 (classKlattGrid, 1, U"-- query frication characteristics", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 1, U"-- query frication characteristics", 0, 1, 0);
 	KlattGRID_GET_FORMANT_FB_VALUES_ACTION (Frication, frication formant)
 	KlattGRID_GET_FORMANT_A_VALUES_ACTION (Frication, frication formant)
 
 #undef KlattGRID_GET_FORMANT_A_VALUES_ACTION
 #undef KlattGRID_GET_FORMANT_A_VALUES_ACTION
 
-	praat_addAction1 (classKlattGrid, 1, U"Get frication bypass at time...", nullptr, 1, DO_KlattGrid_getFricationBypassAtTime);
-	praat_addAction1 (classKlattGrid, 1, U"Get frication amplitude at time...", nullptr, 1, DO_KlattGrid_getFricationAmplitudeAtTime);
-
-	praat_addAction1 (classKlattGrid, 0, U"Modify phonation -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Add pitch point...", nullptr, 1, DO_KlattGrid_addPitchPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add voicing amplitude point...", nullptr, 1, DO_KlattGrid_addVoicingAmplitudePoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add flutter point...", nullptr, 1, DO_KlattGrid_addFlutterPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add power1 point...", nullptr, 1, DO_KlattGrid_addPower1Point);
-	praat_addAction1 (classKlattGrid, 0, U"Add power2 point...", nullptr, 1, DO_KlattGrid_addPower2Point);
-	praat_addAction1 (classKlattGrid, 0, U"Add open phase point...", nullptr, 1, DO_KlattGrid_addOpenPhasePoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add collision phase point...", nullptr, 1, DO_KlattGrid_addCollisionPhasePoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add double pulsing point...", nullptr, 1, DO_KlattGrid_addDoublePulsingPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add spectral tilt point...", nullptr, 1, DO_KlattGrid_addSpectralTiltPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add aspiration amplitude point...", nullptr, 1, DO_KlattGrid_addAspirationAmplitudePoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add breathiness amplitude point...", nullptr, 1, DO_KlattGrid_addBreathinessAmplitudePoint);
+	praat_addAction1 (classKlattGrid, 1, U"Get frication bypass at time...", 0, 1, DO_KlattGrid_getFricationBypassAtTime);
+	praat_addAction1 (classKlattGrid, 1, U"Get frication amplitude at time...", 0, 1, DO_KlattGrid_getFricationAmplitudeAtTime);
+
+	praat_addAction1 (classKlattGrid, 0, U"Modify phonation -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Add pitch point...", 0, 1, DO_KlattGrid_addPitchPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add voicing amplitude point...", 0, 1, DO_KlattGrid_addVoicingAmplitudePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add flutter point...", 0, 1, DO_KlattGrid_addFlutterPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add power1 point...", 0, 1, DO_KlattGrid_addPower1Point);
+	praat_addAction1 (classKlattGrid, 0, U"Add power2 point...", 0, 1, DO_KlattGrid_addPower2Point);
+	praat_addAction1 (classKlattGrid, 0, U"Add open phase point...", 0, 1, DO_KlattGrid_addOpenPhasePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add collision phase point...", 0, 1, DO_KlattGrid_addCollisionPhasePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add double pulsing point...", 0, 1, DO_KlattGrid_addDoublePulsingPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add spectral tilt point...", 0, 1, DO_KlattGrid_addSpectralTiltPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add aspiration amplitude point...", 0, 1, DO_KlattGrid_addAspirationAmplitudePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add breathiness amplitude point...", 0, 1, DO_KlattGrid_addBreathinessAmplitudePoint);
 
 #define KlattGrid_REMOVE_POINTS_ACTION(Name,name) \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #name " points between...", nullptr, praat_DEPTH_1+praat_HIDDEN, DO_KlattGrid_remove##Name##Points); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #name " points...", nullptr, 1, DO_KlattGrid_remove##Name##Points);
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #name " points between...", 0, praat_DEPTH_1+praat_HIDDEN, DO_KlattGrid_remove##Name##Points); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #name " points...", 0, 1, DO_KlattGrid_remove##Name##Points);
 
 	KlattGrid_REMOVE_POINTS_ACTION (Pitch, pitch)
 	KlattGrid_REMOVE_POINTS_ACTION (VoicingAmplitude, voicing amplitude)
@@ -1131,166 +1127,168 @@ void praat_KlattGrid_init () {
 	KlattGrid_REMOVE_POINTS_ACTION (AspirationAmplitude, aspiration amplitude)
 	KlattGrid_REMOVE_POINTS_ACTION (BreathinessAmplitude, breathiness amplitude)
 
-	praat_addAction1 (classKlattGrid, 0, U"Modify vocal tract -", nullptr, 0, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"Modify vocal tract -", 0, 0, 0);
 
 #define KlattGrid_MODIFY_ACTIONS_FBA(Name,formantname) \
-	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " frequencies)...", nullptr, 1, DO_KlattGrid_formula##Name##FormantFrequencies); \
-	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " bandwidths)...", nullptr, 1, DO_KlattGrid_formula##Name##FormantBandwidths); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency point...", nullptr, 1, DO_KlattGrid_add##Name##FormantFrequencyPoint); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " bandwidth point...", nullptr, 1, DO_KlattGrid_add##Name##FormantBandwidthPoint); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " amplitude point...", nullptr, 1, DO_KlattGrid_add##Name##FormantAmplitudePoint); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency points...", nullptr, 1, DO_KlattGrid_remove##Name##FormantFrequencyPoints); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " bandwidth points...", nullptr, 1, DO_KlattGrid_remove##Name##FormantBandwidthPoints); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " amplitude points...", nullptr, 1, DO_KlattGrid_remove##Name##FormantAmplitudePoints); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency and bandwidth tiers...", nullptr, 1, DO_KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency and bandwidth tiers...", nullptr, 1, DO_KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " amplitude tier...", nullptr, 1, DO_KlattGrid_add##Name##FormantAmplitudeTier); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " amplitude tier...", nullptr, 1, DO_KlattGrid_remove##Name##FormantAmplitudeTier); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname "...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_add##Name##Formant); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname "...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_remove##Name##Formant);
+	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " frequencies)...", 0, 1, DO_KlattGrid_formula##Name##FormantFrequencies); \
+	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " bandwidths)...", 0, 1, DO_KlattGrid_formula##Name##FormantBandwidths); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency point...", 0, 1, DO_KlattGrid_add##Name##FormantFrequencyPoint); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " bandwidth point...", 0, 1, DO_KlattGrid_add##Name##FormantBandwidthPoint); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " amplitude point...", 0, 1, DO_KlattGrid_add##Name##FormantAmplitudePoint); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency points...", 0, 1, DO_KlattGrid_remove##Name##FormantFrequencyPoints); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " bandwidth points...", 0, 1, DO_KlattGrid_remove##Name##FormantBandwidthPoints); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " amplitude points...", 0, 1, DO_KlattGrid_remove##Name##FormantAmplitudePoints); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency and bandwidth tiers...", 0, 1, DO_KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency and bandwidth tiers...", 0, 1, DO_KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " amplitude tier...", 0, 1, DO_KlattGrid_add##Name##FormantAmplitudeTier); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " amplitude tier...", 0, 1, DO_KlattGrid_remove##Name##FormantAmplitudeTier); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname "...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_add##Name##Formant); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname "...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_remove##Name##Formant);
 
 #define KlattGrid_MODIFY_ACTIONS_FB(Name,formantname) \
-	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " frequencies)...", nullptr, 1, DO_KlattGrid_formula##Name##FormantFrequencies); \
-	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " bandwidths)...", nullptr, 1, DO_KlattGrid_formula##Name##FormantBandwidths); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency point...", nullptr, 1, DO_KlattGrid_add##Name##FormantFrequencyPoint); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " bandwidth point...", nullptr, 1, DO_KlattGrid_add##Name##FormantBandwidthPoint); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency points...", nullptr, 1, DO_KlattGrid_remove##Name##FormantFrequencyPoints); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " bandwidth points...", nullptr, 1, DO_KlattGrid_remove##Name##FormantBandwidthPoints); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency and bandwidth tiers...", nullptr, 1, DO_KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency and bandwidth tiers...", nullptr, 1, DO_KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers); \
-	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname "...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_add##Name##Formant); \
-	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname "...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_remove##Name##Formant);
+	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " frequencies)...", 0, 1, DO_KlattGrid_formula##Name##FormantFrequencies); \
+	praat_addAction1 (classKlattGrid, 0, U"Formula (" #formantname " bandwidths)...", 0, 1, DO_KlattGrid_formula##Name##FormantBandwidths); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency point...", 0, 1, DO_KlattGrid_add##Name##FormantFrequencyPoint); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " bandwidth point...", 0, 1, DO_KlattGrid_add##Name##FormantBandwidthPoint); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency points...", 0, 1, DO_KlattGrid_remove##Name##FormantFrequencyPoints); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " bandwidth points...", 0, 1, DO_KlattGrid_remove##Name##FormantBandwidthPoints); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname " frequency and bandwidth tiers...", 0, 1, DO_KlattGrid_add##Name##FormantFrequencyAndBandwidthTiers); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname " frequency and bandwidth tiers...", 0, 1, DO_KlattGrid_remove##Name##FormantFrequencyAndBandwidthTiers); \
+	praat_addAction1 (classKlattGrid, 0, U"Add " #formantname "...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_add##Name##Formant); \
+	praat_addAction1 (classKlattGrid, 0, U"Remove " #formantname "...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_remove##Name##Formant);
 
 	KlattGrid_MODIFY_ACTIONS_FBA (Oral, oral formant)
-	praat_addAction1 (classKlattGrid, 0, U"-- oral modify separator --", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- oral modify separator --", 0, 1, 0);
 	KlattGrid_MODIFY_ACTIONS_FBA (Nasal, nasal formant)
-	praat_addAction1 (classKlattGrid, 0, U"-- nasal modify separator --", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- nasal modify separator --", 0, 1, 0);
 	KlattGrid_MODIFY_ACTIONS_FB (NasalAnti, nasal antiformant)
 
-	praat_addAction1 (classKlattGrid, 0, U"Formula (frequencies)...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_formula_frequencies);
-	praat_addAction1 (classKlattGrid, 0, U"Formula (bandwidths)...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_formula_bandwidths);
-	praat_addAction1 (classKlattGrid, 0, U"Add formant point...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addFormantPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add bandwidth point...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addBandwidthPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add amplitude point...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addAmplitudePoint);
-	praat_addAction1 (classKlattGrid, 0, U"Remove formant points between...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeFormantPoints);
-	praat_addAction1 (classKlattGrid, 0, U"Remove bandwidth points between...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeBandwidthPoints);
-	praat_addAction1 (classKlattGrid, 0, U"Remove amplitude points between...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeAmplitudePoints);
-	praat_addAction1 (classKlattGrid, 0, U"Modify coupling - ", nullptr, 0, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"Formula (frequencies)...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_formula_frequencies);
+	praat_addAction1 (classKlattGrid, 0, U"Formula (bandwidths)...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_formula_bandwidths);
+	praat_addAction1 (classKlattGrid, 0, U"Add formant point...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addFormantPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add bandwidth point...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addBandwidthPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add amplitude point...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addAmplitudePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Remove formant points between...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeFormantPoints);
+	praat_addAction1 (classKlattGrid, 0, U"Remove bandwidth points between...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeBandwidthPoints);
+	praat_addAction1 (classKlattGrid, 0, U"Remove amplitude points between...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeAmplitudePoints);
+	praat_addAction1 (classKlattGrid, 0, U"Modify coupling - ", 0, 0, 0);
 	KlattGrid_MODIFY_ACTIONS_FB (Delta, delta formant)
-	praat_addAction1 (classKlattGrid, 0, U"-- delta modify separator --", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- delta modify separator --", 0, 1, 0);
 	KlattGrid_MODIFY_ACTIONS_FBA (Tracheal, tracheal formant)
-	praat_addAction1 (classKlattGrid, 0, U"-- nasal modify separator --", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- nasal modify separator --", 0, 1, 0);
 	KlattGrid_MODIFY_ACTIONS_FB (TrachealAnti, tracheal antiformant)
 
-	praat_addAction1 (classKlattGrid, 0, U"Add delta formant point...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addDeltaFormantPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add delta bandwidth point...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addDeltaBandwidthPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Remove delta formant points between...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeDeltaFormantPoints);
-	praat_addAction1 (classKlattGrid, 0, U"Remove delta bandwidth points between...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeDeltaBandwidthPoints);
+	praat_addAction1 (classKlattGrid, 0, U"Add delta formant point...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addDeltaFormantPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add delta bandwidth point...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addDeltaBandwidthPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Remove delta formant points between...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeDeltaFormantPoints);
+	praat_addAction1 (classKlattGrid, 0, U"Remove delta bandwidth points between...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_removeDeltaBandwidthPoints);
 
-	praat_addAction1 (classKlattGrid, 0, U"Modify frication -", nullptr, 0, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"Modify frication -", 0, 0, 0);
 	KlattGrid_MODIFY_ACTIONS_FBA (Frication, frication formant)
-	praat_addAction1 (classKlattGrid, 0, U"-- frication modify separator --", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- frication modify separator --", 0, 1, 0);
 
-	praat_addAction1 (classKlattGrid, 0, U"Add frication bypass point...", nullptr, 1, DO_KlattGrid_addFricationBypassPoint);
-	praat_addAction1 (classKlattGrid, 0, U"Add frication amplitude point...", nullptr, 1, DO_KlattGrid_addFricationAmplitudePoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add frication bypass point...", 0, 1, DO_KlattGrid_addFricationBypassPoint);
+	praat_addAction1 (classKlattGrid, 0, U"Add frication amplitude point...", 0, 1, DO_KlattGrid_addFricationAmplitudePoint);
 	KlattGrid_REMOVE_POINTS_ACTION (FricationBypass, frication bypass)
 	KlattGrid_REMOVE_POINTS_ACTION (FricationAmplitude, frication amplitude)
-	praat_addAction1 (classKlattGrid, 0, U"Add formant and bandwidth tier...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addFormantAndBandwidthTier);
+	praat_addAction1 (classKlattGrid, 0, U"Add formant and bandwidth tier...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_addFormantAndBandwidthTier);
 
 #undef KlattGrid_REMOVE_POINTS_ACTION
 #undef KlattGrid_MODIFY_ACTION_FB
 #undef KlattGrid_MODIFY_ACTION_FBA
 
-	praat_addAction1 (classKlattGrid, 0, U"Extract phonation -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Extract pitch tier", nullptr, 1, DO_KlattGrid_extractPitchTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract voicing amplitude tier", nullptr, 1, DO_KlattGrid_extractVoicingAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract flutter tier", nullptr, 1, DO_KlattGrid_extractFlutterTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract power1 tier", nullptr, 1, DO_KlattGrid_extractPower1Tier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract power2 tier", nullptr, 1, DO_KlattGrid_extractPower2Tier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract open phase tier", nullptr, 1, DO_KlattGrid_extractOpenPhaseTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract collision phase tier", nullptr, 1, DO_KlattGrid_extractCollisionPhaseTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract double pulsing tier", nullptr, 1, DO_KlattGrid_extractDoublePulsingTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract spectral tilt tier", nullptr, 1, DO_KlattGrid_extractSpectralTiltTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract aspiration amplitude tier", nullptr, 1, DO_KlattGrid_extractAspirationAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract breathiness amplitude tier", nullptr, 1, DO_KlattGrid_extractBreathinessAmplitudeTier);
-	praat_addAction1 (classKlattGrid, 0, U"-- extract glottal events--", nullptr, 1, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Extract PointProcess (glottal closures)", nullptr, 1, DO_KlattGrid_extractPointProcess_glottalClosures);
+	praat_addAction1 (classKlattGrid, 0, U"Extract phonation -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Extract pitch tier", 0, 1, DO_KlattGrid_extractPitchTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract voicing amplitude tier", 0, 1, DO_KlattGrid_extractVoicingAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract flutter tier", 0, 1, DO_KlattGrid_extractFlutterTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract power1 tier", 0, 1, DO_KlattGrid_extractPower1Tier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract power2 tier", 0, 1, DO_KlattGrid_extractPower2Tier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract open phase tier", 0, 1, DO_KlattGrid_extractOpenPhaseTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract collision phase tier", 0, 1, DO_KlattGrid_extractCollisionPhaseTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract double pulsing tier", 0, 1, DO_KlattGrid_extractDoublePulsingTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract spectral tilt tier", 0, 1, DO_KlattGrid_extractSpectralTiltTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract aspiration amplitude tier", 0, 1, DO_KlattGrid_extractAspirationAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract breathiness amplitude tier", 0, 1, DO_KlattGrid_extractBreathinessAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"-- extract glottal events--", 0, 1, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Extract PointProcess (glottal closures)", 0, 1, DO_KlattGrid_extractPointProcess_glottalClosures);
 
 #define KlattGRID_EXTRACT_FORMANT_GRID_ACTION(Name,namef) \
-	praat_addAction1 (classKlattGrid, 0, U"Extract " #namef "ormant grid", nullptr, 1, DO_KlattGrid_extract##Name##FormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"Extract " #namef "ormant grid", 0, 1, DO_KlattGrid_extract##Name##FormantGrid);
 #define KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION(Name,name) \
-	praat_addAction1 (classKlattGrid, 0, U"Extract " #name " formant amplitude tier...", nullptr, 1, DO_KlattGrid_extract##Name##FormantAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract " #name " formant amplitude tier...", 0, 1, DO_KlattGrid_extract##Name##FormantAmplitudeTier);
 
-	praat_addAction1 (classKlattGrid, 0, U"Extract filters -", nullptr, 0, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Extract formant grid...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_extractFormantGrid); // deprecated
+	praat_addAction1 (classKlattGrid, 0, U"Extract filters -", 0, 0, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Extract formant grid...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_extractFormantGrid); // deprecated
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (Oral, oral f)
-	praat_addAction1 (classKlattGrid, 0, U"Extract amplitude tier...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_extractAmplitudeTier); // deprecated
-	praat_addAction1 (classKlattGrid, 0, U"Extract formant grid (open phases)...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_to_oralFormantGrid_openPhases);
-	praat_addAction1 (classKlattGrid, 0, U"Extract oral formant grid (open phases)...", nullptr, 1, DO_KlattGrid_to_oralFormantGrid_openPhases);
+	praat_addAction1 (classKlattGrid, 0, U"Extract amplitude tier...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_KlattGrid_extractAmplitudeTier); // deprecated
+	praat_addAction1 (classKlattGrid, 0, U"Extract formant grid (open phases)...", 0, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_to_oralFormantGrid_openPhases);
+	praat_addAction1 (classKlattGrid, 0, U"Extract oral formant grid (open phases)...", 0, 1, DO_KlattGrid_to_oralFormantGrid_openPhases);
 	KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION (Oral, oral)
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (Nasal, nasal f)
 	KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION (Nasal, nasal)
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (NasalAnti, nasal antif)
 
-	praat_addAction1 (classKlattGrid, 0, U"-- extract delta characteristics", nullptr, 1, nullptr);
-	praat_addAction1 (classKlattGrid, 0, U"Extract delta formant grid", nullptr, 1, DO_KlattGrid_extractDeltaFormantGrid);
+	praat_addAction1 (classKlattGrid, 0, U"-- extract delta characteristics", 0, 1, 0);
+	praat_addAction1 (classKlattGrid, 0, U"Extract delta formant grid", 0, 1, DO_KlattGrid_extractDeltaFormantGrid);
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (Tracheal, tracheal f)
 	KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION (Tracheal, tracheal)
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (TrachealAnti, tracheal antif)
-	praat_addAction1 (classKlattGrid, 0, U"-- extract frication characteristics", nullptr, 1, nullptr);
+	praat_addAction1 (classKlattGrid, 0, U"-- extract frication characteristics", 0, 1, 0);
 	KlattGRID_EXTRACT_FORMANT_GRID_ACTION (Frication, frication f)
 	KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION (Frication, frication)
-	praat_addAction1 (classKlattGrid, 0, U"Extract frication bypass tier", nullptr, 1, DO_KlattGrid_extractFricationBypassTier);
-	praat_addAction1 (classKlattGrid, 0, U"Extract frication amplitude tier", nullptr, 1, DO_KlattGrid_extractFricationAmplitudeTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract frication bypass tier", 0, 1, DO_KlattGrid_extractFricationBypassTier);
+	praat_addAction1 (classKlattGrid, 0, U"Extract frication amplitude tier", 0, 1, DO_KlattGrid_extractFricationAmplitudeTier);
 
 #undef KlattGRID_EXTRACT_FORMANT_AMPLITUDE_ACTION
 #undef KlattGRID_EXTRACT_FORMANT_GRID_ACTION
 
-	praat_addAction2 (classKlattGrid, 1, classPitchTier, 1, U"Replace pitch tier", nullptr, 1, DO_KlattGrid_replacePitchTier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace flutter tier", nullptr, 1, DO_KlattGrid_replaceFlutterTier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace power1 tier", nullptr, 1, DO_KlattGrid_replacePower1Tier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace power2 tier", nullptr, 1, DO_KlattGrid_replacePower2Tier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace open phase tier", nullptr, 1, DO_KlattGrid_replaceOpenPhaseTier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace collision phase tier", nullptr, 1, DO_KlattGrid_replaceCollisionPhaseTier);
-	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace double pulsing tier", nullptr, 1, DO_KlattGrid_replaceDoublePulsingTier);
+	praat_addAction2 (classKlattGrid, 1, classPitchTier, 1, U"Replace pitch tier", 0, 1, DO_KlattGrid_replacePitchTier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace flutter tier", 0, 1, DO_KlattGrid_replaceFlutterTier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace power1 tier", 0, 1, DO_KlattGrid_replacePower1Tier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace power2 tier", 0, 1, DO_KlattGrid_replacePower2Tier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace open phase tier", 0, 1, DO_KlattGrid_replaceOpenPhaseTier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace collision phase tier", 0, 1, DO_KlattGrid_replaceCollisionPhaseTier);
+	praat_addAction2 (classKlattGrid, 1, classRealTier, 1, U"Replace double pulsing tier", 0, 1, DO_KlattGrid_replaceDoublePulsingTier);
 
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"-- replace formant amplitudes --", nullptr, 1, nullptr);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"-- replace formant amplitudes --", 0, 1, 0);
 
 #define KlattGrid_REPLACE_FORMANTGRID_ACTION(Name,namef) \
-	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"Replace " #namef "ormant grid", nullptr, 1, DO_KlattGrid_replace##Name##FormantGrid);
+	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"Replace " #namef "ormant grid", 0, 1, DO_KlattGrid_replace##Name##FormantGrid);
 #define KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION(Name,namef) \
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace " #namef "ormant amplitude tier...", nullptr, 1, DO_KlattGrid_replace##Name##FormantAmplitudeTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace " #namef "ormant amplitude tier...", 0, 1, DO_KlattGrid_replace##Name##FormantAmplitudeTier);
+
 
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (Oral, oral f)
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (Nasal, nasal f)
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (NasalAnti, nasal antif)
-	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"-- replace coupling --", nullptr, 1, nullptr);
+	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"-- replace coupling --", 0, 1, 0);
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (Tracheal, tracheal f)
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (TrachealAnti, tracheal antif)
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (Delta, delta f)
-	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"-- replace frication --", nullptr, 1, nullptr);
+	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"-- replace frication --", 0, 1, 0);
 	KlattGrid_REPLACE_FORMANTGRID_ACTION (Frication, frication f)
-	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"Replace formant grid...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_replaceFormantGrid);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace voicing amplitude tier", nullptr, 1, DO_KlattGrid_replaceVoicingAmplitudeTier);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace spectral tilt tier", nullptr, 1, DO_KlattGrid_replaceSpectralTiltTier);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace aspiration amplitude tier", nullptr, 1,
+	praat_addAction2 (classKlattGrid, 1, classFormantGrid, 1, U"Replace formant grid...", 0, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_replaceFormantGrid);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace voicing amplitude tier", 0, 1, DO_KlattGrid_replaceVoicingAmplitudeTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace spectral tilt tier", 0, 1, DO_KlattGrid_replaceSpectralTiltTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace aspiration amplitude tier", 0, 1,
 	                  DO_KlattGrid_replaceAspirationAmplitudeTier);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace breathiness amplitude tier", nullptr, 1,
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace breathiness amplitude tier", 0, 1,
 	                  DO_KlattGrid_replaceBreathinessAmplitudeTier);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace amplitude tier...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_replaceAmplitudeTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace amplitude tier...", 0, praat_HIDDEN + praat_DEPTH_1, DO_KlattGrid_replaceAmplitudeTier);
 	KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION (Oral, oral f)
 	KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION (Nasal, nasal f)
 	KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION (Tracheal, tracheal f)
 	KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION (Frication, frication f)
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace frication amplitude tier", nullptr, 1, DO_KlattGrid_replaceFricationAmplitudeTier);
-	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace frication bypass tier", nullptr, 1, DO_KlattGrid_replaceFricationBypassTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace frication amplitude tier", 0, 1, DO_KlattGrid_replaceFricationAmplitudeTier);
+	praat_addAction2 (classKlattGrid, 1, classIntensityTier, 1, U"Replace frication bypass tier", 0, 1, DO_KlattGrid_replaceFricationBypassTier);
 
 #undef KlattGrid_REPLACE_FORMANT_AMPLITUDE_ACTION
 #undef KlattGrid_REPLACE_FORMANTGRID_ACTION
 
-	praat_addAction2 (classKlattGrid, 1, classSound, 1, U"Filter by vocal tract...", nullptr, 1, DO_Sound_KlattGrid_filterByVocalTract);
+	praat_addAction2 (classKlattGrid, 1, classSound, 1, U"Filter by vocal tract...", 0, 1, DO_Sound_KlattGrid_filterByVocalTract);
 
 	INCLUDE_MANPAGES (manual_KlattGrid)
 }
 
+
 /* End of file praat_KlattGrid_init.cpp */
diff --git a/dwtools/praat_MDS_init.cpp b/dwtools/praat_MDS_init.cpp
index 191202e..0a41b29 100644
--- a/dwtools/praat_MDS_init.cpp
+++ b/dwtools/praat_MDS_init.cpp
@@ -1,6 +1,6 @@
 /* praat_MDS_init.cpp
  *
- * Copyright (C) 1992-2012, 2015 David Weenink
+ * Copyright (C) 1992-2012 David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -59,7 +59,8 @@ static const char32 *CONFIGURATION_BUTTON = U"To Configuration -";
 	Sort row 1 and move row 2 along and store in rows 4 and 5 respectively
 	Make an index for row 1 and store in row 6
 */
-static void TabelOfReal_testSorting (TableOfReal me, long rowtoindex) {
+static void TabelOfReal_testSorting (I, long rowtoindex) {
+	iam (TableOfReal);
 	try {
 		long  nc = my numberOfColumns;
 
@@ -109,7 +110,7 @@ FORM (Dissimilarity_createLetterRExample, U"Create letter R example", U"Create l
 	REAL (U"Noise range", U"32.5")
 	OK
 DO
-	praat_new (Dissimilarity_createLetterRExample (GET_REAL (U"Noise range")), U"");
+	praat_new (Dissimilarity_createLetterRExample (GET_REAL (U"Noise range")), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
 FORM (INDSCAL_createCarrollWishExample,
@@ -118,7 +119,7 @@ FORM (INDSCAL_createCarrollWishExample,
 	REAL (U"Noise standard deviation", U"0.0")
 OK
 	DO
-	praat_new (INDSCAL_createCarrollWishExample (GET_REAL (U"Noise standard deviation")), U""); 
+	praat_new (INDSCAL_createCarrollWishExample (GET_REAL (U"Noise standard deviation")), U"");   // ppgb: geen expliciete NULL meer meegeven als naam (dat wordt "0")
 END
 
 FORM (Configuration_create, U"Create Configuration", U"Create Configuration...")
@@ -130,8 +131,8 @@ FORM (Configuration_create, U"Create Configuration", U"Create Configuration...")
 	OK
 DO
 	autoConfiguration me = Configuration_create (GET_INTEGER (U"Number of points"), GET_INTEGER (U"Number of dimensions"));
-	TableOfReal_formula (me.get(), GET_STRING (U"formula"), interpreter, nullptr);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	TableOfReal_formula (me.peek(), GET_STRING (U"formula"), interpreter, 0);
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END
 
 FORM (drawSplines, U"Draw splines", U"spline")
@@ -140,11 +141,11 @@ FORM (drawSplines, U"Draw splines", U"spline")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"20.0")
 	RADIO (U"Spline type", 1)
-		RADIOBUTTON (U"M-spline")
-		RADIOBUTTON (U"I-spline")
+	RADIOBUTTON (U"M-spline")
+	RADIOBUTTON (U"I-spline")
 	INTEGER (U"Order", U"3")
 	SENTENCE (U"Interior knots", U"0.3 0.5 0.6")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	double xmin = GET_REAL (U"left Horizontal range"), xmax = GET_REAL (U"right Horizontal range");
@@ -153,11 +154,8 @@ DO
 		Melder_throw (U"Required: xmin < xmax and ymin < ymax.");
 	}
 	autoPraatPicture picture;
-	drawSplines (GRAPHICS, xmin, xmax, ymin, ymax,
-		GET_INTEGER (U"Spline type"),
-		GET_INTEGER (U"Order"),
-		GET_STRING (U"Interior knots"),
-		GET_INTEGER (U"Garnish"));
+	drawSplines (GRAPHICS, xmin, xmax, ymin, ymax, GET_INTEGER (U"Spline type"),
+		GET_INTEGER (U"Order"), GET_STRING (U"Interior knots"), GET_INTEGER (U"Garnish"));
 END
 
 DIRECT (drawMDSClassRelations)
@@ -176,7 +174,7 @@ END
 DIRECT (AffineTransform_invert)
 	LOOP {
 		iam (AffineTransform);
-		praat_new (AffineTransform_invert (me), NAME, U"_inv");
+		praat_new ( (AffineTransform) AffineTransform_invert (me), NAME, U"_inv");
 	}
 END
 
@@ -216,16 +214,14 @@ END
 DIRECT (AffineTransform_extractMatrix)
 	LOOP {
 		iam (AffineTransform);
-		autoTableOfReal thee = AffineTransform_extractMatrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (AffineTransform_extractMatrix (me), my name);
 	}
 END
 
 DIRECT (AffineTransform_extractTranslationVector)
 	LOOP {
 		iam (AffineTransform);
-		autoTableOfReal thee = AffineTransform_extractTranslationVector (me);
-		praat_new (thee.move(), my name);
+		praat_new (AffineTransform_extractTranslationVector (me), my name);
 	}
 END
 
@@ -235,7 +231,7 @@ DIRECT (Configuration_help)
 	Melder_help (U"Configuration");
 END
 
-static void Configuration_draw_addCommonFields (UiForm dia) {
+static void Configuration_draw_addCommonFields (void *dia) {
 	NATURAL (U"Horizontal dimension", U"1")
 	NATURAL (U"Vertical dimension", U"2")
 	REAL (U"left Horizontal range", U"0.0")
@@ -247,9 +243,9 @@ static void Configuration_draw_addCommonFields (UiForm dia) {
 FORM (Configuration_draw, U"Configuration: Draw", U"Configuration: Draw...")
 	Configuration_draw_addCommonFields (dia);
 	NATURAL (U"Label size", U"12")
-	BOOLEAN (U"Use row labels", false)
+	BOOLEAN (U"Use row labels", 0)
 	WORD (U"Label", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
@@ -266,16 +262,13 @@ FORM (Configuration_drawSigmaEllipses, U"Configuration: Draw sigma ellipses", U"
 	POSITIVE (U"Number of sigmas", U"1.0")
 	Configuration_draw_addCommonFields (dia);
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Configuration);
-		Configuration_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Number of sigmas"),
-			false,   // confidence (i.e. the previous argument is a number of sigmas, not a confidence level)
-			nullptr,
+		Configuration_drawConcentrationEllipses (me, GRAPHICS, GET_REAL (U"Number of sigmas"), 0, 0,
 			GET_INTEGER (U"Horizontal dimension"), GET_INTEGER (U"Vertical dimension"),
 			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
 			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
@@ -288,76 +281,56 @@ FORM (Configuration_drawOneSigmaEllipse, U"Configuration: Draw one sigma ellipse
 	POSITIVE (U"Number of sigmas", U"1.0")
 	Configuration_draw_addCommonFields (dia);
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Configuration);
-		Configuration_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Number of sigmas"),
-			false,   // confidence
-			GET_STRING (U"Label"),
-			GET_INTEGER (U"Horizontal dimension"),
-			GET_INTEGER (U"Vertical dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		Configuration_drawConcentrationEllipses (me, GRAPHICS, GET_REAL (U"Number of sigmas"), 0, GET_STRING (U"Label"),
+			GET_INTEGER (U"Horizontal dimension"), GET_INTEGER (U"Vertical dimension"),
+			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+			GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
 
-FORM (Configuration_drawConfidenceEllipses, U"Configuration: Draw confidence ellipses", nullptr)
+FORM (Configuration_drawConfidenceEllipses, U"Configuration: Draw confidence ellipses", 0)
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
 	Configuration_draw_addCommonFields (dia);
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Configuration);
-		Configuration_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Confidence level"),
-			true,   // confidence (i.e. the previous argument is a confidence level, not a number of sigmas)
-			nullptr,   // label
-			GET_INTEGER (U"Horizontal dimension"),
-			GET_INTEGER (U"Vertical dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+		Configuration_drawConcentrationEllipses (me, GRAPHICS, GET_REAL (U"Confidence level"), 1, 0,
+			GET_INTEGER (U"Horizontal dimension"), GET_INTEGER (U"Vertical dimension"),
+			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+			GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
-FORM (Configuration_drawOneConfidenceEllipse, U"Configuration: Draw one confidence ellipse", nullptr)
+FORM (Configuration_drawOneConfidenceEllipse, U"Configuration: Draw one confidence ellipse", 0)
 	SENTENCE (U"Label", U"")
 	POSITIVE (U"Confidence level (0-1)", U"0.95")
 	Configuration_draw_addCommonFields (dia);
 	INTEGER (U"Label size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (Configuration);
 		Configuration_drawConcentrationEllipses (me, GRAPHICS,
-			GET_REAL (U"Confidence level"),
-			true,   // confidence
-			GET_STRING (U"Label"),
-			GET_INTEGER (U"Horizontal dimension"),
-			GET_INTEGER (U"Vertical dimension"),
-			GET_REAL (U"left Horizontal range"),
-			GET_REAL (U"right Horizontal range"),
-			GET_REAL (U"left Vertical range"),
-			GET_REAL (U"right Vertical range"),
-			GET_INTEGER (U"Label size"),
-			GET_INTEGER (U"Garnish"));
+			GET_REAL (U"Confidence level"), 1, GET_STRING (U"Label"),
+			GET_INTEGER (U"Horizontal dimension"), GET_INTEGER (U"Vertical dimension"),
+			GET_REAL (U"left Horizontal range"), GET_REAL (U"right Horizontal range"),
+			GET_REAL (U"left Vertical range"), GET_REAL (U"right Vertical range"),
+			GET_INTEGER (U"Label size"), GET_INTEGER (U"Garnish"));
 	}
 END
 
@@ -371,14 +344,12 @@ END
 FORM (Configuration_normalize, U"Configuration: Normalize", U"Configuration: Normalize...")
 	REAL (U"Sum of squares", U"0.0")
 	LABEL (U"", U"On (INDSCAL), Off (Kruskal)")
-	BOOLEAN (U"Each dimension separately", true)
+	BOOLEAN (U"Each dimension separately", 1)
 	OK
 DO
 	LOOP {
 		iam (Configuration);
-		Configuration_normalize (me,
-			GET_REAL (U"Sum of squares"),
-			GET_INTEGER (U"Each dimension separately"));
+		Configuration_normalize (me, GET_REAL (U"Sum of squares"), GET_INTEGER (U"Each dimension separately"));
 	}
 END
 
@@ -397,10 +368,7 @@ FORM (Configuration_rotate, U"Configuration: Rotate", U"Configuration: Rotate...
 DO
 	LOOP {
 		iam (Configuration);
-		Configuration_rotate (me,
-			GET_INTEGER (U"Dimension 1"),
-			GET_INTEGER (U"Dimension 2"),
-			GET_REAL (U"Angle"));
+		Configuration_rotate (me, GET_INTEGER (U"Dimension 1"), GET_INTEGER (U"Dimension 2"), GET_REAL (U"Angle"));
 	}
 END
 
@@ -417,8 +385,7 @@ FORM (Configuration_invertDimension, U"Configuration: Invert dimension", U"Confi
 DO
 	LOOP {
 		iam (Configuration);
-		Configuration_invertDimension (me,
-			GET_INTEGER (U"Dimension"));
+		Configuration_invertDimension (me, GET_INTEGER (U"Dimension"));
 	}
 END
 
@@ -430,48 +397,36 @@ DIRECT (Configuration_to_Distance)
 END
 
 FORM (Configuration_varimax, U"Configuration: To Configuration (varimax)", U"Configuration: To Configuration (varimax)...")
-	BOOLEAN (U"Normalize rows", true)
-	BOOLEAN (U"Quartimax", false)
+	BOOLEAN (U"Normalize rows", 1)
+	BOOLEAN (U"Quartimax", 0)
 	NATURAL (U"Maximum number of iterations", U"50")
 	POSITIVE (U"Tolerance", U"1e-6")
 	OK
 DO
 	LOOP {
 		iam (Configuration);
-		autoConfiguration result = Configuration_varimax (me,
-			GET_INTEGER (U"Normalize rows"),
-			GET_INTEGER (U"Quartimax"),
-			GET_INTEGER (U"Maximum number of iterations"),
-			GET_REAL (U"Tolerance"));
-		praat_new (result.move(), my name, U"_varimax");
+		praat_new (Configuration_varimax (me, GET_INTEGER (U"Normalize rows"), GET_INTEGER (U"Quartimax"),
+			GET_INTEGER (U"Maximum number of iterations"), GET_REAL (U"Tolerance")), my name, U"_varimax");
 	}
 END
 
 DIRECT (Configurations_to_Similarity_cc)
-	autoConfigurationList list = ConfigurationList_create ();
-	LOOP {
-		iam (Configuration);
-		list -> addItem_ref (me);
-	}
-	Weight nullWeight = nullptr;
-	autoSimilarity result = ConfigurationList_to_Similarity_cc (list.get(), nullWeight);
-	praat_new (result.move(), U"congruence");
+	autoConfigurations set = (Configurations) praat_getSelectedObjects ();
+	praat_new (Configurations_to_Similarity_cc (set.peek(), 0), U"congruence");
 END
 
 FORM (Configurations_to_Procrustes, U"Configuration & Configuration: To Procrustes", U"Configuration & Configuration: To Procrustes...")
-	BOOLEAN (U"Orthogonal transform", false)
+	BOOLEAN (U"Orthogonal transform", 0)
 	OK
 DO
-	Configuration configuration1 = nullptr;
-	Configuration configuration2 = nullptr;
+	Configuration c1 = 0, c2 = 0;
 	LOOP {
 		iam (Configuration);
-		( configuration1 ? configuration2 : configuration1 ) = me;
+		(c1 ? c2 : c1) = me;
 	}
-	Melder_assert (configuration1 && configuration2);
-	autoProcrustes result = Configurations_to_Procrustes (configuration1, configuration2,
-		GET_INTEGER (U"Orthogonal transform"));
-	praat_new (result.move(), Thing_getName (configuration2), U"_to_", Thing_getName (configuration1));
+	Melder_assert (c1 && c2);
+	praat_new (Configurations_to_Procrustes (c1, c2, GET_INTEGER (U"Orthogonal transform")),
+		Thing_getName (c2), U"_to_", Thing_getName (c1));
 END
 
 FORM (Configurations_to_AffineTransform_congruence, U"Configurations: To AffineTransform (congruence)", U"Configurations: To AffineTransform (congruence)...")
@@ -479,40 +434,36 @@ FORM (Configurations_to_AffineTransform_congruence, U"Configurations: To AffineT
 	POSITIVE (U"Tolerance", U"1e-6")
 	OK
 DO
-	Configuration configuration1 = nullptr;
-	Configuration configuration2 = nullptr;
+	Configuration c1 = 0, c2 = 0;
 	LOOP {
 		iam (Configuration);
-		( configuration1 ? configuration2 : configuration1 ) = me;
+		(c1 ? c2 : c1) = me;
 	}
-	Melder_assert (configuration1 && configuration2);
-	autoAffineTransform result = Configurations_to_AffineTransform_congruence (configuration1, configuration2,
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_REAL (U"Tolerance"));
-	praat_new (result.move(), configuration1 -> name, U"_", configuration2 -> name);
+	Melder_assert (c1 && c2);
+	praat_new (Configurations_to_AffineTransform_congruence (c1, c2, GET_INTEGER (U"Maximum number of iterations"),
+		GET_REAL (U"Tolerance")), c1 -> name, U"_", c2 -> name);
 END
 
 DIRECT (Configuration_Weight_to_Similarity_cc)
-	autoConfigurationList configurations = ConfigurationList_create ();
-	Weight weight = nullptr;
+	autoConfigurations thee = Configurations_create ();
+	Collection_dontOwnItems (thee.peek());
+	Weight w = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classConfiguration) {
-			configurations -> addItem_ref ((Configuration) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classWeight) {
-			weight = (Weight) me;
+			w = (Weight) me;
 		}
 	}
-	Melder_assert (configurations->size > 0 && weight);
-	autoSimilarity result = ConfigurationList_to_Similarity_cc (configurations.get(), weight);
-	praat_new (result.move(), U"congruence");
+	Melder_assert (thy size > 0 && w);
+	praat_new (Configurations_to_Similarity_cc (thee.peek(), w), U"congruence");
 END
 
 DIRECT (Configuration_and_AffineTransform_to_Configuration)
 	Configuration me = FIRST (Configuration);
-	AffineTransform thee = FIRST_GENERIC (AffineTransform);
-	autoConfiguration result = Configuration_and_AffineTransform_to_Configuration (me, thee);
-	praat_new (result.move(), my name, U"_", thy name);
+	AffineTransform at = FIRST_GENERIC (AffineTransform);
+	praat_new (Configuration_and_AffineTransform_to_Configuration (me, at), my name, U"_", at -> name);
 END
 
 /*************** Confusion *********************************/
@@ -523,44 +474,33 @@ FORM (Confusion_to_Dissimilarity_pdf, U"Confusion: To Dissimilarity (pdf)", U"Co
 DO
 	LOOP {
 		iam (Confusion);
-		autoDissimilarity result = Confusion_to_Dissimilarity_pdf (me,
-			GET_REAL (U"Minimum confusion level"));
-		praat_new (result.move(), my name, U"_pdf");
+		praat_new (Confusion_to_Dissimilarity_pdf (me, GET_REAL (U"Minimum confusion level")), my name, U"_pdf");
 	}
 END
 
 FORM (Confusion_to_Similarity, U"Confusion: To Similarity", U"Confusion: To Similarity...")
-	BOOLEAN (U"Normalize", true)
+	BOOLEAN (U"Normalize", 1)
 	RADIO (U"Symmetrization", 1)
-		RADIOBUTTON (U"No symmetrization")
-		RADIOBUTTON (U"Average (s[i][j] = (c[i][j]+c[j][i])/2)")
-		RADIOBUTTON (U"Houtgast (s[i][j]= sum (min(c[i][k],c[j][k])))")
+	RADIOBUTTON (U"No symmetrization")
+	RADIOBUTTON (U"Average (s[i][j] = (c[i][j]+c[j][i])/2)")
+	RADIOBUTTON (U"Houtgast (s[i][j]= sum (min(c[i][k],c[j][k])))")
 	OK
 DO
 	LOOP {
 		iam (Confusion);
-		autoSimilarity result = Confusion_to_Similarity (me,
-			GET_INTEGER (U"Normalize"),
-			GET_INTEGER (U"Symmetrization"));
-		praat_new (result.move(), my name);
+		praat_new (Confusion_to_Similarity (me, GET_INTEGER (U"Normalize"), GET_INTEGER (U"Symmetrization")), my name);
 	}
 END
 
 DIRECT (Confusions_sum)
-	autoConfusionList confusions = ConfusionList_create ();
-	LOOP {
-		iam (Confusion);
-		confusions -> addItem_ref (me);
-	}
-	autoConfusion result = ConfusionList_sum (confusions.get());
-	praat_new (result.move(), U"sum");
+	autoConfusions me = (Confusions) praat_getSelectedObjects ();
+	praat_new (Confusions_sum (me.peek()), U"sum");
 END
 
 DIRECT (Confusion_to_ContingencyTable)
 	LOOP {
 		iam (Confusion);
-		autoContingencyTable result = Confusion_to_ContingencyTable (me);
-		praat_new (result.move(), my name);
+		praat_new (Confusion_to_ContingencyTable (me), my name);
 	}
 END
 
@@ -570,9 +510,9 @@ END
 FORM (ContingencyTable_to_Configuration_ca, U"ContingencyTable: To Configuration (ca)", U"ContingencyTable: To Configuration (ca)...")
 	NATURAL (U"Number of dimensions", U"2")
 	RADIO (U"Scaling of final configuration", 3)
-		RADIOBUTTON (U"Row points in centre of gravity of column points")
-		RADIOBUTTON (U"Column points in centre of gravity of row points")
-		RADIOBUTTON (U"Row points and column points symmetric")
+	RADIOBUTTON (U"Row points in centre of gravity of column points")
+	RADIOBUTTON (U"Column points in centre of gravity of row points")
+	RADIOBUTTON (U"Row points and column points symmetric")
 	OK
 DO
 	LOOP {
@@ -611,9 +551,7 @@ FORM (Correlation_to_Configuration, U"Correlation: To Configuration", 0)
 DO
 	LOOP {
 		iam (Correlation);
-		autoConfiguration result = Correlation_to_Configuration (me,
-			GET_INTEGER (U"Number of dimensions"));
-		praat_new (result.move(), my name);
+		praat_new (Correlation_to_Configuration (me, GET_INTEGER (U"Number of dimensions")), my name);
 	}
 END
 
@@ -630,37 +568,35 @@ FORM (Similarity_to_Dissimilarity, U"Similarity: To Dissimilarity", U"Similarity
 DO
 	LOOP {
 		iam (Similarity);
-		autoDissimilarity result = Similarity_to_Dissimilarity (me,
-			GET_REAL (U"Maximum dissimilarity"));
-		praat_new (result.move(), my name);
+		praat_new (Similarity_to_Dissimilarity (me, GET_REAL (U"Maximum dissimilarity")), my name);
 	}
 END
 
 /**************** Dissimilarity ***************************************/
 
-static void Dissimilarity_to_Configuration_addCommonFields (UiForm dia) {
+static void Dissimilarity_to_Configuration_addCommonFields (void *dia) {
 	LABEL (U"", U"Minimization parameters")
 	REAL (U"Tolerance", U"1e-5")
 	NATURAL (U"Maximum number of iterations", U"50 (= each repetition)")
 	NATURAL (U"Number of repetitions", U"1")
 }
 
-static void Dissimilarity_and_Configuration_getStress_addCommonFields (UiForm dia, UiField radio) {
+static void Dissimilarity_and_Configuration_getStress_addCommonFields (void *dia, void *radio) {
 	RADIO (U"Stress measure", 1)
-		RADIOBUTTON (U"Normalized")
-		RADIOBUTTON (U"Kruskal's stress-1")
-		RADIOBUTTON (U"Kruskal's stress-2")
-		RADIOBUTTON (U"Raw")
+	RADIOBUTTON (U"Normalized")
+	RADIOBUTTON (U"Kruskal's stress-1")
+	RADIOBUTTON (U"Kruskal's stress-2")
+	RADIOBUTTON (U"Raw")
 }
 
-static void Dissimilarity_Configuration_drawDiagram_addCommonFields (UiForm dia) {
+static void Dissimilarity_Configuration_drawDiagram_addCommonFields (void *dia) {
 	REAL (U"left Proximity range", U"0.0")
 	REAL (U"right Proximity range", U"0.0")
 	REAL (U"left Distance range", U"0.0")
 	REAL (U"right Distance range", U"0.0")
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 }
 
 DIRECT (Dissimilarity_help)
@@ -670,30 +606,27 @@ END
 DIRECT (Dissimilarity_getAdditiveConstant)
 	LOOP {
 		iam (Dissimilarity);
-		double c = Dissimilarity_getAdditiveConstant (me);
+		double c;
+		Dissimilarity_getAdditiveConstant (me, &c);
 		Melder_information (c);
 	}
 END
 
 FORM (Dissimilarity_Configuration_kruskal, U"Dissimilarity & Configuration: To Configuration (kruskal)", U"Dissimilarity & Configuration: To Configuration (kruskal)...")
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach")
-		RADIOBUTTON (U"Secondary approach")
+	RADIOBUTTON (U"Primary approach")
+	RADIOBUTTON (U"Secondary approach")
 	RADIO (U"Stress calculation", 1)
-		RADIOBUTTON (U"Formula1")
-		RADIOBUTTON (U"Formula2")
+	RADIOBUTTON (U"Formula1")
+	RADIOBUTTON (U"Formula2")
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	autoConfiguration result = Dissimilarity_Configuration_kruskal (me, thee,
-		GET_INTEGER (U"Handling of ties"),
-		GET_INTEGER (U"Stress calculation"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"));
-	praat_new (result.move(), my name, U"_kruskal");
+	Configuration c = FIRST (Configuration);
+	praat_new (Dissimilarity_Configuration_kruskal (me, c, GET_INTEGER (U"Handling of ties"), GET_INTEGER (U"Stress calculation"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions")), my name, U"_kruskal");
 END
 
 FORM (Dissimilarity_Configuration_absolute_mds, U"Dissimilarity & Configuration: To Configuration (absolute mds)", U"Dissimilarity & Configuration: To Configuration (absolute mds)...")
@@ -701,14 +634,11 @@ FORM (Dissimilarity_Configuration_absolute_mds, U"Dissimilarity & Configuration:
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_absolute_mds (me, thee, nullptr,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), my name, U"_absolute");
+	Configuration c = FIRST (Configuration);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_absolute_mds (me, c, 0,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_absolute");
 END
 
 FORM (Dissimilarity_Configuration_ratio_mds, U"Dissimilarity & Configuration: To Configuration (ratio mds)", U"Dissimilarity & Configuration: To Configuration (ratio mds)...")
@@ -716,14 +646,11 @@ FORM (Dissimilarity_Configuration_ratio_mds, U"Dissimilarity & Configuration: To
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_ratio_mds (me, thee, nullptr,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), my name, U"_ratio");
+	Configuration c = FIRST (Configuration);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_ratio_mds (me, c, 0,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_ratio");
 END
 
 FORM (Dissimilarity_Configuration_interval_mds, U"Dissimilarity & Configuration: To Configuration (interval mds)", U"Dissimilarity & Configuration: To Configuration (interval mds)...")
@@ -731,14 +658,11 @@ FORM (Dissimilarity_Configuration_interval_mds, U"Dissimilarity & Configuration:
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_interval_mds (me, thee, nullptr,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), my name, U"_interval");
+	Configuration c = FIRST (Configuration);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_interval_mds (me, c, 0,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_interval");
 END
 
 FORM (Dissimilarity_Configuration_monotone_mds, U"Dissimilarity & Configuration: To Configuration (monotone mds)", U"Dissimilarity & Configuration: To Configuration (monotone mds)...")
@@ -749,15 +673,11 @@ FORM (Dissimilarity_Configuration_monotone_mds, U"Dissimilarity & Configuration:
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_monotone_mds (me, thee, nullptr,
-		GET_INTEGER (U"Handling of ties"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), my name, U"_monotone");
+	Configuration c = FIRST (Configuration);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_monotone_mds (me, c, 0,
+		GET_INTEGER (U"Handling of ties"), GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_monotone");
 END
 
 FORM (Dissimilarity_Configuration_ispline_mds, U"Dissimilarity & Configuration: To Configuration (i-spline mds)", U"Dissimilarity & Configuration: To Configuration (i-spline mds)...")
@@ -768,64 +688,51 @@ FORM (Dissimilarity_Configuration_ispline_mds, U"Dissimilarity & Configuration:
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_ispline_mds (me, thee, nullptr,
-		GET_INTEGER (U"Number of interior knots"),
-		GET_INTEGER (U"Order of I-spline"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), my name, U"_ispline");
+	Configuration c = FIRST (Configuration);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_ispline_mds (me, c, 0,
+		GET_INTEGER (U"Number of interior knots"), GET_INTEGER (U"Order of I-spline"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_ispline");
 END
 
 FORM (Dissimilarity_Configuration_Weight_absolute_mds, U"Dissimilarity & Configuration & Weight: To Configuration (absolute mds)", U"Dissimilarity & Configuration & Weight: To Configuration...")
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_absolute_mds (dissimilarity, configuration, weight,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), dissimilarity -> name, U"_w_absolute");
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_absolute_mds (me, c, w,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_w_absolute");
 END
 
 FORM (Dissimilarity_Configuration_Weight_ratio_mds, U"Dissimilarity & Configuration & Weight: To Configuration (ratio mds)", U"Dissimilarity & Configuration & Weight: To Configuration...")
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_ratio_mds (dissimilarity, configuration, weight,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), dissimilarity -> name, U"_w_ratio");
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_ratio_mds (me, c, w,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_w_ratio");
 END
 
 FORM (Dissimilarity_Configuration_Weight_interval_mds, U"Dissimilarity & Configuration & Weight: To Configuration (interval mds)", U"Dissimilarity & Configuration & Weight: To Configuration...")
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	bool showProgress = true;
-	autoConfiguration result = Dissimilarity_Configuration_Weight_interval_mds (dissimilarity, configuration, weight,
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		showProgress);
-	praat_new (result.move(), dissimilarity -> name, U"_w_interval");
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_interval_mds (me, c, w,
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_w_interval");
 END
 
 FORM (Dissimilarity_Configuration_Weight_monotone_mds,
@@ -837,17 +744,14 @@ FORM (Dissimilarity_Configuration_Weight_monotone_mds,
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	bool showProgress = true;
-	praat_new (Dissimilarity_Configuration_Weight_monotone_mds (dissimilarity, configuration, weight,
-			GET_INTEGER (U"Handling of ties"),
-			GET_REAL (U"Tolerance"),
-			GET_INTEGER (U"Maximum number of iterations"),
-			GET_INTEGER (U"Number of repetitions"),
-			showProgress),
-		dissimilarity -> name, U"_sw_monotone");
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_monotone_mds (me, c, w,
+		GET_INTEGER (U"Handling of ties"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_sw_monotone");
 END
 
 FORM (Dissimilarity_Configuration_Weight_ispline_mds,
@@ -859,18 +763,14 @@ FORM (Dissimilarity_Configuration_Weight_ispline_mds,
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	bool showProgress = true;
-	praat_new (Dissimilarity_Configuration_Weight_ispline_mds (dissimilarity, configuration, weight,
-			GET_INTEGER (U"Number of interior knots"),
-			GET_INTEGER (U"Order of I-spline"),
-			GET_REAL (U"Tolerance"),
-			GET_INTEGER (U"Maximum number of iterations"),
-			GET_INTEGER (U"Number of repetitions"),
-			showProgress),
-		dissimilarity -> name, U"_sw_ispline");
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	int showProgress = 1;
+	praat_new (Dissimilarity_Configuration_Weight_ispline_mds (me, c, w,
+		GET_INTEGER (U"Number of interior knots"), GET_INTEGER (U"Order of I-spline"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
+		GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_sw_ispline");
 END
 
 FORM (Dissimilarity_Configuration_getStress, U"Dissimilarity & Configuration: Get stress",
@@ -884,8 +784,8 @@ FORM (Dissimilarity_Configuration_getStress, U"Dissimilarity & Configuration: Ge
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_getStress (me, thee,
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_getStress (me, c,
 		GET_INTEGER (U"Handling of ties"), GET_INTEGER (U"Stress calculation")));
 END
 
@@ -896,8 +796,8 @@ FORM (Dissimilarity_Configuration_absolute_stress,
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_Weight_absolute_stress (me, thee, nullptr,
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_Weight_absolute_stress (me, c, 0,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -907,8 +807,8 @@ FORM (Dissimilarity_Configuration_ratio_stress, U"Dissimilarity & Configuration:
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_Weight_ratio_stress (me, thee, nullptr,
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_Weight_ratio_stress (me, c, 0,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -919,8 +819,8 @@ FORM (Dissimilarity_Configuration_interval_stress,
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_Weight_interval_stress (me, thee, nullptr,
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_Weight_interval_stress (me, c, 0,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -934,10 +834,9 @@ FORM (Dissimilarity_Configuration_monotone_stress,
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_Weight_monotone_stress (me, thee, nullptr,
-		GET_INTEGER (U"Handling of ties"),
-		GET_INTEGER (U"Stress measure")));
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_Weight_monotone_stress (me, c, 0,
+		GET_INTEGER (U"Handling of ties"), GET_INTEGER (U"Stress measure")));
 END
 
 FORM (Dissimilarity_Configuration_ispline_stress,
@@ -949,11 +848,9 @@ FORM (Dissimilarity_Configuration_ispline_stress,
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Melder_information (Dissimilarity_Configuration_Weight_ispline_stress (me, thee, nullptr,
-		GET_INTEGER (U"Number of interior knots"),
-		GET_INTEGER (U"Order of I-spline"),
-		GET_INTEGER (U"Stress measure")));
+	Configuration c = FIRST (Configuration);
+	Melder_information (Dissimilarity_Configuration_Weight_ispline_stress (me, c, 0,
+		GET_INTEGER (U"Number of interior knots"), GET_INTEGER (U"Order of I-spline"), GET_INTEGER (U"Stress measure")));
 END
 
 FORM (Dissimilarity_Configuration_Weight_absolute_stress,
@@ -962,10 +859,10 @@ FORM (Dissimilarity_Configuration_Weight_absolute_stress,
 	Dissimilarity_and_Configuration_getStress_addCommonFields (dia, radio);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	Melder_information (Dissimilarity_Configuration_Weight_absolute_stress (dissimilarity, configuration, weight,
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	Melder_information (Dissimilarity_Configuration_Weight_absolute_stress (me, c, w,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -975,10 +872,10 @@ FORM (Dissimilarity_Configuration_Weight_ratio_stress,
 	Dissimilarity_and_Configuration_getStress_addCommonFields (dia, radio);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	Melder_information (Dissimilarity_Configuration_Weight_ratio_stress (dissimilarity, configuration, weight,
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	Melder_information (Dissimilarity_Configuration_Weight_ratio_stress (me, c, w,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -988,10 +885,10 @@ FORM (Dissimilarity_Configuration_Weight_interval_stress,
 	Dissimilarity_and_Configuration_getStress_addCommonFields (dia, radio);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	Melder_information (Dissimilarity_Configuration_Weight_interval_stress (dissimilarity, configuration, weight,
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	Melder_information (Dissimilarity_Configuration_Weight_interval_stress (me, c, w,
 		GET_INTEGER (U"Stress measure")));
 END
 
@@ -999,17 +896,16 @@ FORM (Dissimilarity_Configuration_Weight_monotone_stress,
       U"Dissimilarity & Configuration & Weight: Get stress (monotone mds)",
       U"Dissimilarity & Configuration & Weight: Get stress (monotone mds)...")
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach)")
-		RADIOBUTTON (U"Secondary approach")
+	RADIOBUTTON (U"Primary approach)")
+	RADIOBUTTON (U"Secondary approach")
 	Dissimilarity_and_Configuration_getStress_addCommonFields (dia, radio);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	Melder_information (Dissimilarity_Configuration_Weight_monotone_stress (dissimilarity, configuration, weight,
-		GET_INTEGER (U"Handling of ties"),
-		GET_INTEGER (U"Stress measure")));
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	Melder_information (Dissimilarity_Configuration_Weight_monotone_stress (me, c, w,
+		GET_INTEGER (U"Handling of ties"), GET_INTEGER (U"Stress measure")));
 END
 
 FORM (Dissimilarity_Configuration_Weight_ispline_stress,
@@ -1020,13 +916,11 @@ FORM (Dissimilarity_Configuration_Weight_ispline_stress,
 	Dissimilarity_and_Configuration_getStress_addCommonFields (dia, radio);
 	OK
 DO
-	Dissimilarity dissimilarity = FIRST (Dissimilarity);
-	Configuration configuration = FIRST (Configuration);
-	Weight weight = FIRST (Weight);
-	Melder_information (Dissimilarity_Configuration_Weight_ispline_stress (dissimilarity, configuration, weight,
-		GET_INTEGER (U"Number of interior knots"),
-		GET_INTEGER (U"Order of I-spline"),
-		GET_INTEGER (U"Stress measure")));
+	Dissimilarity me = FIRST (Dissimilarity);
+	Configuration c = FIRST (Configuration);
+	Weight w = FIRST (Weight);
+	Melder_information (Dissimilarity_Configuration_Weight_ispline_stress (me, c, w,
+		GET_INTEGER (U"Number of interior knots"), GET_INTEGER (U"Order of I-spline"), GET_INTEGER (U"Stress measure")));
 END
 
 FORM (Dissimilarity_Configuration_drawShepardDiagram, U"Dissimilarity & Configuration: Draw Shepard diagram",
@@ -1036,14 +930,11 @@ FORM (Dissimilarity_Configuration_drawShepardDiagram, U"Dissimilarity & Configur
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_drawShepardDiagram (me, thee, GRAPHICS,
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_drawShepardDiagram (me, c, GRAPHICS,
+		GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"),
 		GET_INTEGER (U"Garnish"));
 END
 
@@ -1055,14 +946,11 @@ FORM (Dissimilarity_Configuration_drawAbsoluteRegression,
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_Weight_drawAbsoluteRegression (me, thee, nullptr, GRAPHICS,
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_Weight_drawAbsoluteRegression (me, c, 0, GRAPHICS,
+		GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"),
 		GET_INTEGER (U"Garnish"));
 END
 
@@ -1074,15 +962,11 @@ FORM (Dissimilarity_Configuration_drawRatioRegression,
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_Weight_drawRatioRegression (me, thee, nullptr, GRAPHICS,
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
-		GET_INTEGER (U"Garnish"));
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_Weight_drawRatioRegression (me, c, 0, GRAPHICS,
+		GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
 END
 
 FORM (Dissimilarity_Configuration_drawIntervalRegression,
@@ -1093,38 +977,29 @@ FORM (Dissimilarity_Configuration_drawIntervalRegression,
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_Weight_drawIntervalRegression (me, thee, nullptr, GRAPHICS,
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
-		GET_INTEGER (U"Garnish"));
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_Weight_drawIntervalRegression (me, c, 0, GRAPHICS,
+		GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
 END
 
 FORM (Dissimilarity_Configuration_drawMonotoneRegression,
       U"Dissimilarity & Configuration: Draw regression (monotone mds)",
       U"Dissimilarity & Configuration: Draw regression (monotone mds)...")
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach)")
-		RADIOBUTTON (U"Secondary approach")
+	RADIOBUTTON (U"Primary approach)")
+	RADIOBUTTON (U"Secondary approach")
 	Dissimilarity_Configuration_drawDiagram_addCommonFields (dia);
 	OK
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_Weight_drawMonotoneRegression (me, thee, nullptr, GRAPHICS,
-		GET_INTEGER (U"Handling of ties"),
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
-		GET_INTEGER (U"Garnish"));
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_Weight_drawMonotoneRegression (me, c, 0, GRAPHICS,
+		GET_INTEGER (U"Handling of ties"), GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
 END
 
 FORM (Dissimilarity_Configuration_drawISplineRegression,
@@ -1137,17 +1012,12 @@ FORM (Dissimilarity_Configuration_drawISplineRegression,
 DO
 	autoPraatPicture picture;
 	Dissimilarity me = FIRST (Dissimilarity);
-	Configuration thee = FIRST (Configuration);
-	Dissimilarity_Configuration_Weight_drawISplineRegression (me, thee, nullptr, GRAPHICS,
-		GET_INTEGER (U"Number of interior knots"),
-		GET_INTEGER (U"Order of I-spline"),
-		GET_REAL (U"left Proximity range"),
-		GET_REAL (U"right Proximity range"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
-		GET_INTEGER (U"Garnish"));
+	Configuration c = FIRST (Configuration);
+	Dissimilarity_Configuration_Weight_drawISplineRegression (me, c, 0, GRAPHICS,
+		GET_INTEGER (U"Number of interior knots"), GET_INTEGER (U"Order of I-spline"),
+		GET_REAL (U"left Proximity range"), GET_REAL (U"right Proximity range"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
 END
 
 FORM (Dissimilarity_kruskal, U"Dissimilarity: To Configuration (kruskal)", U"Dissimilarity: To Configuration (kruskal)...")
@@ -1165,14 +1035,10 @@ FORM (Dissimilarity_kruskal, U"Dissimilarity: To Configuration (kruskal)", U"Dis
 DO
 	LOOP {
 		iam (Dissimilarity);
-		praat_new (Dissimilarity_kruskal (me,
-			GET_INTEGER (U"Number of dimensions"),
-			GET_INTEGER (U"Distance metric"),
-			GET_INTEGER (U"Handling of ties"),
-			GET_INTEGER (U"Stress calculation"),
-			GET_REAL (U"Tolerance"),
-			GET_INTEGER (U"Maximum number of iterations"),
-			GET_INTEGER (U"Number of repetitions")), my name);
+		praat_new (Dissimilarity_kruskal (me, GET_INTEGER (U"Number of dimensions"),
+			GET_INTEGER (U"Distance metric"), GET_INTEGER (U"Handling of ties"),
+			GET_INTEGER (U"Stress calculation"), GET_REAL (U"Tolerance"),
+			GET_INTEGER (U"Maximum number of iterations"), GET_INTEGER (U"Number of repetitions")), my name);
 	}
 END
 
@@ -1186,7 +1052,7 @@ DO
 	LOOP {
 		iam (Dissimilarity);
 		int showProgress = 1;
-		praat_new (Dissimilarity_Weight_absolute_mds (me, nullptr, GET_INTEGER (U"Number of dimensions"),
+		praat_new (Dissimilarity_Weight_absolute_mds (me, NULL, GET_INTEGER (U"Number of dimensions"),
 			GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"),
 			GET_INTEGER (U"Number of repetitions"), showProgress), my name, U"_absolute");
 	}
@@ -1341,8 +1207,8 @@ FORM (Dissimilarity_Weight_monotone_mds, U"Dissimilarity & Weight: To Configurat
 	LABEL (U"", U"Configuration")
 	NATURAL (U"Number of dimensions", U"2")
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach")
-		RADIOBUTTON (U"Secondary approach")
+	RADIOBUTTON (U"Primary approach")
+	RADIOBUTTON (U"Secondary approach")
 	Dissimilarity_to_Configuration_addCommonFields (dia);
 	OK
 DO
@@ -1355,7 +1221,7 @@ DO
 END
 
 FORM (Dissimilarity_to_Distance, U"Dissimilarity: To Distance", U"Dissimilarity: To Distance...")
-	BOOLEAN (U"Scale (additive constant)", true)
+	BOOLEAN (U"Scale (additive constant)", 1)
 	OK
 DO
 	LOOP {
@@ -1374,7 +1240,7 @@ END
 /************************* Distance(s) ***************************************/
 
 FORM (Distance_to_ScalarProduct, U"Distance: To ScalarProduct", U"Distance: To ScalarProduct...")
-	BOOLEAN (U"Make sum of squares equal 1.0", true)
+	BOOLEAN (U"Make sum of squares equal 1.0", 1)
 	OK
 DO
 	LOOP {
@@ -1392,250 +1258,220 @@ END
 
 FORM (Distances_indscal, U"Distance: To Configuration (indscal)", U"Distance: To Configuration (indscal)...")
 	NATURAL (U"Number of dimensions", U"2")
-	BOOLEAN (U"Normalize scalar products", true)
+	BOOLEAN (U"Normalize scalar products", 1)
 	LABEL (U"", U"Minimization parameters")
 	REAL (U"Tolerance", U"1e-5")
 	NATURAL (U"Maximum number of iterations", U"100 (= each repetition)")
 	NATURAL (U"Number of repetitions", U"1")
 	OK
 DO
-	autoDistanceList distances = DistanceList_create ();
-	LOOP {
-		iam (Distance);
-		distances -> addItem_ref (me);
-	}
-	autoConfiguration configurationResult;
-	autoSalience salienceResult;
-	DistanceList_indscal (distances.get(),
-		GET_INTEGER (U"Number of dimensions"),
-		GET_INTEGER (U"Normalize scalar products"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		GET_INTEGER (U"Number of repetitions"),
-		true,   // showProgress
-		& configurationResult, & salienceResult);
-	praat_new (configurationResult.move(), U"indscal");
-	praat_new (salienceResult.move(), U"indscal");
-END
-
-FORM (Distance_and_Configuration_drawScatterDiagram, U"Distance & Configuration: Draw scatter diagram", U"Distance & Configuration: Draw scatter diagram...")
+	autoDistances me = (Distances) praat_getSelectedObjects ();
+	Configuration c; Salience s;
+	Distances_indscal (me.peek(), GET_INTEGER (U"Number of dimensions"), GET_INTEGER (U"Normalize scalar products"),
+		GET_REAL (U"Tolerance"), GET_INTEGER (U"Maximum number of iterations"), GET_INTEGER (U"Number of repetitions"),
+		1, &c, &s);
+	autoConfiguration ac = c; autoSalience as = s;
+	praat_new (ac.transfer(), U"indscal");
+	praat_new (as.transfer(), U"indscal");
+END
+
+FORM (Distance_and_Configuration_drawScatterDiagram, U"Distance & Configuration: Draw scatter diagram",
+      U"Distance & Configuration: Draw scatter diagram...")
 	REAL (U"Minimum x-distance", U"0.0")
 	REAL (U"Maximum x-distance", U"0.0")
 	REAL (U"Minimum y-distance", U"0.0")
 	REAL (U"Maximum y-distance", U"0.0")
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	autoPraatPicture picture;
 	Distance me = FIRST (Distance);
-	Configuration thee = FIRST (Configuration);
-	Distance_and_Configuration_drawScatterDiagram (me, thee, GRAPHICS,
-		GET_REAL (U"Minimum x-distance"),
-		GET_REAL (U"Maximum x-distance"),
-		GET_REAL (U"Minimum y-distance"),
-		GET_REAL (U"Maximum y-distance"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
-		GET_INTEGER (U"Garnish"));
+	Configuration c = FIRST (Configuration);
+	Distance_and_Configuration_drawScatterDiagram (me, c, GRAPHICS, GET_REAL (U"Minimum x-distance"),
+		GET_REAL (U"Maximum x-distance"), GET_REAL (U"Minimum y-distance"), GET_REAL (U"Maximum y-distance"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"), GET_INTEGER (U"Garnish"));
 END
 
-FORM (Distance_Configuration_indscal, U"Distance & Configuration: To Configuration (indscal)", U"Distance & Configuration: To Configuration (indscal)...")
-	BOOLEAN (U"Normalize scalar products", true)
+FORM (Distance_Configuration_indscal, U"Distance & Configuration: To Configuration (indscal)",
+      U"Distance & Configuration: To Configuration (indscal)...")
+	BOOLEAN (U"Normalize scalar products", 1)
 	LABEL (U"", U"Minimization parameters")
 	REAL (U"Tolerance", U"1e-5")
 	NATURAL (U"Maximum number of iterations", U"100 (= each repetition)")
 	OK
 DO
-	autoDistanceList distances = DistanceList_create ();
-	Configuration configuration = nullptr;
+	autoDistances thee = Distances_create ();
+	Collection_dontOwnItems (thee.peek());
+	Configuration c = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classDistance) {
-			distances -> addItem_ref ((Distance) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classConfiguration) {
-			configuration = (Configuration) me;
+			c = (Configuration) me;
 		}
 	}
-	Melder_assert (distances->size > 0 && configuration);
-	autoConfiguration configurationResult;
-	autoSalience salienceResult;
-	DistanceList_Configuration_indscal (distances.get(), configuration,
-		GET_INTEGER (U"Normalize scalar products"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		true,   // showProgress
-		& configurationResult, & salienceResult);
-	praat_new (configurationResult.move(), U"indscal");
-	praat_new (salienceResult.move(), U"indscal");
+	Melder_assert (thy size > 0 && c);
+	Configuration cr; Salience sr;
+	Distances_Configuration_indscal (thee.peek(), c,
+		GET_INTEGER (U"Normalize scalar products"), GET_REAL (U"Tolerance"),
+		GET_INTEGER (U"Maximum number of iterations"), 1, &cr, &sr);
+	autoConfiguration ac = cr; autoSalience as = sr;
+	praat_new (ac.transfer(), U"indscal");
+	praat_new (as.transfer(), U"indscal");
 END
 
 FORM (Distance_Configuration_vaf, U"Distance & Configuration: Get VAF", U"Distance & Configuration: Get VAF...")
-	BOOLEAN (U"Normalize scalar products", true)
+	BOOLEAN (U"Normalize scalar products", 1)
 	OK
 DO
-	autoDistanceList distances = DistanceList_create ();
-	Configuration configuration = nullptr;
+	autoDistances thee = Distances_create ();
+	Collection_dontOwnItems (thee.peek());
+	Configuration c = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classDistance) {
-			distances -> addItem_ref ((Distance) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classConfiguration) {
-			configuration = (Configuration) me;
+			c = (Configuration) me;
 		}
 	}
-	Melder_assert (distances->size > 0 && configuration);
-	double varianceAccountedFor;
-	DistanceList_Configuration_vaf (distances.get(), configuration,
-		GET_INTEGER (U"Normalize scalar products"),
-		& varianceAccountedFor);
-	Melder_information (varianceAccountedFor);
+	Melder_assert (thy size > 0 && c);
+	double vaf;
+	Distances_Configuration_vaf (thee.peek(), c, GET_INTEGER (U"Normalize scalar products"), &vaf);
+	Melder_information (vaf);
 END
 
 FORM (Distance_Configuration_Salience_vaf, U"Distance & Configuration & Salience: Get VAF", U"Distance & Configuration & Salience: Get VAF...")
-	BOOLEAN (U"Normalize scalar products", true)
+	BOOLEAN (U"Normalize scalar products", 1)
 	OK
 DO
-	autoDistanceList distances = DistanceList_create ();
-	Configuration configuration = nullptr;
-	Salience salience = nullptr;
+	autoDistances thee = Distances_create ();
+	Collection_dontOwnItems (thee.peek());
+	Configuration c = 0; Salience s = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classDistance) {
-			distances -> addItem_ref ((Distance) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classConfiguration) {
-			configuration = (Configuration) me;
+			c = (Configuration) me;
 		} else if (CLASS == classSalience) {
-			salience = (Salience) me;
+			s = (Salience) me;
 		}
 	}
-	Melder_assert (distances->size > 0 && configuration && salience);
-	double varianceAccountedFor;
-	DistanceList_Configuration_Salience_vaf (distances.get(), configuration, salience,
-		GET_INTEGER (U"Normalize scalar products"),
-		& varianceAccountedFor);
-	Melder_information (varianceAccountedFor);
+	Melder_assert (thy size > 0 && c && s);
+	double vaf;
+	Distances_Configuration_Salience_vaf (thee.peek(), c, s, GET_INTEGER (U"Normalize scalar products"), &vaf);
+	Melder_information (vaf);
 END
 
 FORM (Dissimilarity_Configuration_Salience_vaf, U"Dissimilarity & Configuration & Salience: Get VAF",
       U"Dissimilarity & Configuration & Salience: Get VAF...")
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach")
-		RADIOBUTTON (U"Secondary approach")
-	BOOLEAN (U"Normalize scalar products", true)
+	RADIOBUTTON (U"Primary approach")
+	RADIOBUTTON (U"Secondary approach")
+	BOOLEAN (U"Normalize scalar products", 1)
 	OK
 DO
-	autoDissimilarityList dissimilarities = DissimilarityList_create ();
-	Configuration configuration = nullptr;
-	Salience salience = nullptr;
+	autoDissimilarities thee = Dissimilarities_create ();
+	Collection_dontOwnItems (thee.peek());
+	Configuration c = 0; Salience s = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classDissimilarity) {
-			dissimilarities -> addItem_ref ((Dissimilarity) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classConfiguration) {
-			configuration = (Configuration) me;
+			c = (Configuration) me;
 		} else if (CLASS == classSalience) {
-			salience = (Salience) me;
+			s = (Salience) me;
 		}
 	}
-	Melder_assert (dissimilarities->size > 0 && configuration && salience);
-	double varianceAccountedFor;
-	DissimilarityList_Configuration_Salience_vaf (dissimilarities.get(), configuration, salience,
-		GET_INTEGER (U"Handling of ties"),
-		GET_INTEGER (U"Normalize scalar products"),
-		& varianceAccountedFor);
-	Melder_information (varianceAccountedFor);
+	Melder_assert (thy size > 0 && c && s);
+	double vaf;
+	Dissimilarities_Configuration_Salience_vaf (thee.peek(), c, s, GET_INTEGER (U"Handling of ties"),
+		GET_INTEGER (U"Normalize scalar products"), &vaf);
+	Melder_information (vaf);
 END
 
 FORM (Distance_Configuration_Salience_indscal,
       U"Distance & Configuration & Salience: To Configuration (indscal)",
       U"Distance & Configuration & Salience: To Configuration (indscal)...")
-	BOOLEAN (U"Normalize scalar products", true)
+	BOOLEAN (U"Normalize scalar products", 1)
 	LABEL (U"", U"Minimization parameters")
 	REAL (U"Tolerance", U"1e-5")
 	NATURAL (U"Maximum number of iterations", U"100")
 	OK
 DO
-	autoDistanceList thee = DistanceList_create ();
-	Configuration configuration = nullptr;
-	Salience salience = nullptr;
+	autoDistances thee = Distances_create ();
+	Collection_dontOwnItems (thee.peek());
+	Configuration c = 0; Salience s = 0;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classDistance) {
-			thy addItem_ref ((Distance) me);
+			Collection_addItem (thee.peek(), me);
 		} else if (CLASS == classConfiguration) {
-			configuration = (Configuration) me;
+			c = (Configuration) me;
 		} else if (CLASS == classSalience) {
-			salience = (Salience) me;
+			s = (Salience) me;
 		}
 	}
-	Melder_assert (thy size > 0 && configuration && salience);
-	double varianceAccountedFor;
-	autoConfiguration configurationResult;
-	autoSalience salienceResult;
-	DistanceList_Configuration_Salience_indscal (thee.get(), configuration, salience,
-		GET_INTEGER (U"Normalize scalar products"),
-		GET_REAL (U"Tolerance"),
-		GET_INTEGER (U"Maximum number of iterations"),
-		true,   // showProgress
-		& configurationResult, & salienceResult, & varianceAccountedFor);
-	praat_new (configurationResult.move(), U"indscal");
-	praat_new (salienceResult.move(), U"indscal");
+	Melder_assert (thy size > 0 && c && s);
+	double vaf;
+	Configuration cr; Salience sr;
+	Distances_Configuration_Salience_indscal (thee.peek(), c, s,
+		GET_INTEGER (U"Normalize scalar products"), GET_REAL (U"Tolerance"),
+		GET_INTEGER (U"Maximum number of iterations"), 1, &cr, &sr, &vaf);
+	autoConfiguration ac = cr; autoSalience as = sr;
+	praat_new (ac.transfer(), U"indscal");
+	praat_new (as.transfer(), U"indscal");
 END
 
 FORM (Distances_to_Configuration_ytl, U"Distance: To Configuration (ytl)", U"Distance: To Configuration (ytl)...")
 	NATURAL (U"Number of dimensions", U"2")
-	BOOLEAN (U"Normalize scalar products", true)
-	BOOLEAN (U"Salience object", false)
+	BOOLEAN (U"Normalize scalar products", 1)
+	BOOLEAN (U"Salience object", 0)
 	OK
 DO
-	autoDistanceList distances = DistanceList_create ();
-	LOOP {
-		iam (Distance);
-		distances -> addItem_ref (me);
-	}
-	autoConfiguration configurationResult;
-	autoSalience salienceResult;
-	DistanceList_to_Configuration_ytl (distances.get(), GET_INTEGER (U"Number of dimensions"),
-		GET_INTEGER (U"Normalize scalar products"), & configurationResult, & salienceResult);
-	praat_new (configurationResult.move(), U"ytl");
+	autoDistances me = (Distances) praat_getSelectedObjects ();
+	Configuration cr; Salience sr;
+	Distances_to_Configuration_ytl (me.peek(), GET_INTEGER (U"Number of dimensions"),
+		GET_INTEGER (U"Normalize scalar products"), &cr, &sr);
+	autoConfiguration ac = cr; autoSalience as = sr;
+	praat_new (ac.transfer(), U"ytl");
 	if (GET_INTEGER (U"Salience object")) {
-		praat_new (salienceResult.move(), U"ytl");
+		praat_new (as.transfer(), U"ytl");
 	}
 END
 
-FORM (Dissimilarity_Distance_monotoneRegression, U"Dissimilarity & Distance: Monotone regression", nullptr)
+FORM (Dissimilarity_Distance_monotoneRegression, U"Dissimilarity & Distance: Monotone regression", 0)
 	RADIO (U"Handling of ties", 1)
-		RADIOBUTTON (U"Primary approach")
-		RADIOBUTTON (U"Secondary approach")
+	RADIOBUTTON (U"Primary approach")
+	RADIOBUTTON (U"Secondary approach")
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Distance thee = FIRST (Distance);
-	praat_new (Dissimilarity_Distance_monotoneRegression (me, thee,
-		GET_INTEGER (U"Handling of ties")), my name);
+	Distance d = FIRST (Distance);
+	praat_new (Dissimilarity_Distance_monotoneRegression (me, d, GET_INTEGER (U"Handling of ties")), my name);
 END
 
-FORM (Distance_Dissimilarity_drawShepardDiagram, U"Distance & Dissimilarity: Draw Shepard diagram", nullptr)
+FORM (Distance_Dissimilarity_drawShepardDiagram, U"Distance & Dissimilarity: Draw Shepard diagram", U"")
 	REAL (U"Minimum dissimilarity", U"0.0")
 	REAL (U"Maximum dissimilarity", U"0.0")
 	REAL (U"left Distance range", U"0.0")
 	REAL (U"right Distance range", U"0.0")
 	POSITIVE (U"Mark size (mm)", U"1.0")
 	SENTENCE (U"Mark string (+xo.)", U"+")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	Dissimilarity me = FIRST (Dissimilarity);
-	Distance thee = FIRST (Distance);
-	Proximity_Distance_drawScatterDiagram (me, thee, GRAPHICS,
-		GET_REAL (U"Minimum dissimilarity"),
-		GET_REAL (U"Maximum dissimilarity"),
-		GET_REAL (U"left Distance range"),
-		GET_REAL (U"right Distance range"),
-		GET_REAL (U"Mark size"),
-		GET_STRING (U"Mark string"),
+	Distance d = FIRST (Distance);
+	Proximity_Distance_drawScatterDiagram (me, d, GRAPHICS,
+		GET_REAL (U"Minimum dissimilarity"), GET_REAL (U"Maximum dissimilarity"),
+		GET_REAL (U"left Distance range"), GET_REAL (U"right Distance range"),
+		GET_REAL (U"Mark size"), GET_STRING (U"Mark string"),
 		GET_INTEGER (U"Garnish"));
 END
 
@@ -1647,32 +1483,28 @@ END
 /************************* Salience ***************************************/
 
 
-FORM (Salience_draw, U"Salience: Draw", nullptr)
+FORM (Salience_draw, U"Salience: Draw", 0)
 	NATURAL (U"Horizontal dimension", U"1")
 	NATURAL (U"Vertical dimension", U"2")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK
 DO
 	LOOP {
 		iam (Salience);
-		Salience_draw (me, GRAPHICS,
-			GET_INTEGER (U"Horizontal dimension"),
-			GET_INTEGER (U"Vertical dimension"),
-			GET_INTEGER (U"Garnish"));
+		Salience_draw (me, GRAPHICS, GET_INTEGER (U"Horizontal dimension"), GET_INTEGER (U"Vertical dimension"),
+		GET_INTEGER (U"Garnish"));
 	}
 END
 
 /************************* COVARIANCE & CONFIGURATION  ********************/
 
-FORM (Covariance_to_Configuration, U"Covariance: To Configuration", nullptr)
+FORM (Covariance_to_Configuration, U"Covariance: To Configuration", 0)
 	NATURAL (U"Number of dimensions", U"2")
 	OK
 DO
 	LOOP {
 		iam (Covariance);
-		autoConfiguration result = Covariance_to_Configuration (me,
-			GET_INTEGER (U"Number of dimensions"));
-		praat_new (result.move(), my name);
+		praat_new (Covariance_to_Configuration (me, GET_INTEGER (U"Number of dimensions")), my name);
 	}
 END
 
@@ -1736,16 +1568,14 @@ END
 DIRECT (TableOfReal_to_Configuration)
 	LOOP {
 		iam (TableOfReal);
-		autoConfiguration result = TableOfReal_to_Configuration (me);
-		praat_new (result.move(), my name);
+		praat_new (TableOfReal_to_Configuration (me), my name);
 	}
 END
 
 DIRECT (TableOfReal_to_ContingencyTable)
 	LOOP {
 		iam (TableOfReal);
-		autoContingencyTable result = TableOfReal_to_ContingencyTable (me);
-		praat_new (result.move(), my name);
+		praat_new (TableOfReal_to_ContingencyTable (me), my name);
 	}
 END
 
@@ -1826,27 +1656,26 @@ END
 DIRECT (TableOfReal_to_Confusion)
 	LOOP {
 		iam (TableOfReal);
-		autoConfusion result = TableOfReal_to_Confusion (me);
-		praat_new (result.move(), my name);
+		praat_new (TableOfReal_to_Confusion (me), my name);
 	}
 END
 
 static void praat_AffineTransform_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, QUERY_BUTTON, nullptr, 0, nullptr);
+	praat_addAction1 (klas, 0, QUERY_BUTTON, 0, 0, 0);
 	praat_addAction1 (klas, 1, U"Get transformation element...", QUERY_BUTTON, 1, DO_AffineTransform_getTransformationElement);
 	praat_addAction1 (klas, 1, U"Get translation element...", QUERY_BUTTON, 1, DO_AffineTransform_getTranslationElement);
-	praat_addAction1 (klas, 0, U"Invert", nullptr, 0, DO_AffineTransform_invert);
+	praat_addAction1 (klas, 0, U"Invert", 0, 0, DO_AffineTransform_invert);
 }
 
 static void praat_Configuration_and_AffineTransform_init (ClassInfo transform) {
-	praat_addAction2 (classConfiguration, 1, transform, 1, U"To Configuration", nullptr, 0, DO_Configuration_and_AffineTransform_to_Configuration);
+	praat_addAction2 (classConfiguration, 1, transform, 1, U"To Configuration", 0, 0, DO_Configuration_and_AffineTransform_to_Configuration);
 }
 
 void praat_TableOfReal_extras (ClassInfo klas);
 void praat_TableOfReal_extras (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"-- get additional --", U"Get value...", 1, nullptr);
+	praat_addAction1 (klas, 1, U"-- get additional --", U"Get value...", 1, 0);
 	praat_addAction1 (klas, 1, U"Get table norm", U"-- get additional --", 1, DO_TableOfReal_getTableNorm);
-	praat_addAction1 (klas, 1, U"-- set additional --", U"Set column label (label)...", 1, nullptr);
+	praat_addAction1 (klas, 1, U"-- set additional --", U"Set column label (label)...", 1, 0);
 	praat_addAction1 (klas, 1, U"Normalize rows...", U"-- set additional --", 1, DO_TableOfReal_normalizeRows);
 	praat_addAction1 (klas, 1, U"Normalize columns...", U"Normalize rows...", 1, DO_TableOfReal_normalizeColumns);
 	praat_addAction1 (klas, 1, U"Normalize table...", U"Normalize columns...", 1, DO_TableOfReal_normalizeTable);
@@ -1857,31 +1686,33 @@ void praat_TableOfReal_extras (ClassInfo klas) {
 
 void praat_uvafon_MDS_init ();
 void praat_uvafon_MDS_init () {
-	Thing_recognizeClassesByName (classAffineTransform, classProcrustes, classContingencyTable, classDissimilarity,
-		classSimilarity, classConfiguration, classDistance, classSalience, classScalarProduct, classWeight, nullptr);
+	Thing_recognizeClassesByName (classAffineTransform, classProcrustes,
+	                              classContingencyTable, classDissimilarity,
+	                              classSimilarity, classConfiguration, classDistance,
+	                              classSalience, classScalarProduct, classWeight, NULL);
 	Thing_recognizeClassByOtherName (classProcrustes, U"Procrustus");
 
-	praat_addMenuCommand (U"Objects", U"New", U"Multidimensional scaling", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"MDS tutorial", nullptr, 1, DO_MDS_help);
-	praat_addMenuCommand (U"Objects", U"New", U"-- MDS --", nullptr, 1, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create letter R example...", nullptr, 1, DO_Dissimilarity_createLetterRExample);
-	praat_addMenuCommand (U"Objects", U"New", U"Create INDSCAL Carroll Wish example...", nullptr, 1, DO_INDSCAL_createCarrollWishExample);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Configuration...", nullptr, 1, DO_Configuration_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Draw splines...", nullptr, 1, DO_drawSplines);
-	praat_addMenuCommand (U"Objects", U"New", U"Draw MDS class relations", nullptr, 1, DO_drawMDSClassRelations);
+	praat_addMenuCommand (U"Objects", U"New", U"Multidimensional scaling", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"MDS tutorial", 0, 1, DO_MDS_help);
+	praat_addMenuCommand (U"Objects", U"New", U"-- MDS --", 0, 1, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create letter R example...", 0, 1, DO_Dissimilarity_createLetterRExample);
+	praat_addMenuCommand (U"Objects", U"New", U"Create INDSCAL Carroll Wish example...", 0, 1, DO_INDSCAL_createCarrollWishExample);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Configuration...", 0, 1, DO_Configuration_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Draw splines...", 0, 1, DO_drawSplines);
+	praat_addMenuCommand (U"Objects", U"New", U"Draw MDS class relations", 0, 1, DO_drawMDSClassRelations);
 
 	/****** 1 class ********************************************************/
 
-	praat_addAction1 (classAffineTransform, 0, U"AffineTransform help", nullptr, 0, DO_AffineTransform_help);
+	praat_addAction1 (classAffineTransform, 0, U"AffineTransform help", 0, 0, DO_AffineTransform_help);
 	praat_AffineTransform_init (classAffineTransform);
 
 
-	praat_addAction1 (classConfiguration, 0, U"Configuration help", nullptr, 0, DO_Configuration_help);
+	praat_addAction1 (classConfiguration, 0, U"Configuration help", 0, 0, DO_Configuration_help);
 	praat_TableOfReal_init2 (classConfiguration);
 	praat_TableOfReal_extras (classConfiguration);
-	(void) praat_removeAction (classConfiguration, nullptr, nullptr, U"Insert column (index)...");
-	(void) praat_removeAction (classConfiguration, nullptr, nullptr, U"Remove column (index)...");
-	(void) praat_removeAction (classConfiguration, nullptr, nullptr, U"Append");
+	(void) praat_removeAction (classConfiguration, NULL, NULL, U"Insert column (index)...");
+	(void) praat_removeAction (classConfiguration, NULL, NULL, U"Remove column (index)...");
+	(void) praat_removeAction (classConfiguration, NULL, NULL, U"Append");
 	praat_addAction1 (classConfiguration, 0, U"Draw...", DRAW_BUTTON, 1, DO_Configuration_draw);
 	praat_addAction1 (classConfiguration, 0, U"Draw sigma ellipses...", U"Draw...", 1, DO_Configuration_drawSigmaEllipses);
 	praat_addAction1 (classConfiguration, 0, U"Draw one sigma ellipse...", U"Draw...", 1, DO_Configuration_drawOneSigmaEllipse);
@@ -1891,84 +1722,84 @@ void praat_uvafon_MDS_init () {
 	praat_addAction1 (classConfiguration, 0, U"Randomize", U"Normalize table...", 1, DO_Configuration_randomize);
 	praat_addAction1 (classConfiguration, 0, U"Normalize...", U"Randomize", 1, DO_Configuration_normalize);
 	praat_addAction1 (classConfiguration, 0, U"Centralize", U"Randomize", 1, DO_Configuration_centralize);
-	praat_addAction1 (classConfiguration, 1, U"-- set rotations & reflections --", U"Centralize", 1, nullptr);
+	praat_addAction1 (classConfiguration, 1, U"-- set rotations & reflections --", U"Centralize", 1, 0);
 
 	praat_addAction1 (classConfiguration, 0, U"Rotate...", U"-- set rotations & reflections --", 1, DO_Configuration_rotate);
 	praat_addAction1 (classConfiguration, 0, U"Rotate (pc)", U"Rotate...", 1, DO_Configuration_rotateToPrincipalDirections);
 	praat_addAction1 (classConfiguration, 0, U"Invert dimension...", U"Rotate (pc)", 1, DO_Configuration_invertDimension);
-	praat_addAction1 (classConfiguration, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classConfiguration, 0, U"To Distance", nullptr, 0, DO_Configuration_to_Distance);
-	praat_addAction1 (classConfiguration, 0, U"To Configuration (varimax)...", nullptr, 0, DO_Configuration_varimax);
-	praat_addAction1 (classConfiguration, 0, U"To Similarity (cc)", nullptr, 0, DO_Configurations_to_Similarity_cc);
+	praat_addAction1 (classConfiguration, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classConfiguration, 0, U"To Distance", 0, 0, DO_Configuration_to_Distance);
+	praat_addAction1 (classConfiguration, 0, U"To Configuration (varimax)...", 0, 0, DO_Configuration_varimax);
+	praat_addAction1 (classConfiguration, 0, U"To Similarity (cc)", 0, 0, DO_Configurations_to_Similarity_cc);
 
-	praat_addAction1 (classConfiguration, 0, U"Match configurations -", nullptr, 0, nullptr);
-	praat_addAction1 (classConfiguration, 2, U"To Procrustes...", nullptr, 1, DO_Configurations_to_Procrustes);
-	praat_addAction1 (classConfiguration, 2, U"To AffineTransform (congruence)...", nullptr, 1, DO_Configurations_to_AffineTransform_congruence);
+	praat_addAction1 (classConfiguration, 0, U"Match configurations -", 0, 0, 0);
+	praat_addAction1 (classConfiguration, 2, U"To Procrustes...", 0, 1, DO_Configurations_to_Procrustes);
+	praat_addAction1 (classConfiguration, 2, U"To AffineTransform (congruence)...", 0, 1, DO_Configurations_to_AffineTransform_congruence);
 
 	praat_addAction1 (classConfusion, 0, U"To ContingencyTable", U"To Matrix", 0, DO_Confusion_to_ContingencyTable);
-	praat_addAction1 (classConfusion, 0, U"To Proximity -", U"Analyse", 0, nullptr);
+	praat_addAction1 (classConfusion, 0, U"To Proximity -", U"Analyse", 0, 0);
 	praat_addAction1 (classConfusion, 0, U"To Dissimilarity (pdf)...", U"To Proximity -", 1, DO_Confusion_to_Dissimilarity_pdf);
 	praat_addAction1 (classConfusion, 0, U"To Similarity...", U"To Proximity -", 1, DO_Confusion_to_Similarity);
 	praat_addAction1 (classConfusion, 0, U"Sum", U"Synthesize -", 1, DO_Confusions_sum);
 
 
 	praat_TableOfReal_init2 (classContingencyTable);
-	praat_addAction1 (classContingencyTable, 1, U"-- statistics --", U"Get value...", 1, nullptr);
+	praat_addAction1 (classContingencyTable, 1, U"-- statistics --", U"Get value...", 1, 0);
 	praat_addAction1 (classContingencyTable, 1, U"Get chi squared probability", U"-- statistics --", 1, DO_ContingencyTable_chisqProbability);
 	praat_addAction1 (classContingencyTable, 1, U"Get Cramer's statistic", U"Get chi squared probability", 1, DO_ContingencyTable_cramersStatistic);
 	praat_addAction1 (classContingencyTable, 1, U"Get contingency coefficient", U"Get Cramer's statistic", 1,
 	                  DO_ContingencyTable_contingencyCoefficient);
-	praat_addAction1 (classContingencyTable, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classContingencyTable, 1, U"To Configuration (ca)...", nullptr, 0, DO_ContingencyTable_to_Configuration_ca);
+	praat_addAction1 (classContingencyTable, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classContingencyTable, 1, U"To Configuration (ca)...", 0, 0, DO_ContingencyTable_to_Configuration_ca);
 
 
-	praat_addAction1 (classCorrelation, 0, U"To Configuration...", nullptr, 0, DO_Correlation_to_Configuration);
+	praat_addAction1 (classCorrelation, 0, U"To Configuration...", 0, 0, DO_Correlation_to_Configuration);
 
-	praat_addAction1 (classDissimilarity, 0, U"Dissimilarity help", nullptr, 0, DO_Dissimilarity_help);
+	praat_addAction1 (classDissimilarity, 0, U"Dissimilarity help", 0, 0, DO_Dissimilarity_help);
 	praat_TableOfReal_init2 (classDissimilarity);
 	praat_TableOfReal_extras (classDissimilarity);
 	praat_addAction1 (classDissimilarity, 0, U"Get additive constant", U"Get table norm", 1, DO_Dissimilarity_getAdditiveConstant);
-	praat_addAction1 (classDissimilarity, 0, CONFIGURATION_BUTTON, nullptr, 0, nullptr);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (monotone mds)...", nullptr, 1, DO_Dissimilarity_monotone_mds);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (i-spline mds)...", nullptr, 1, DO_Dissimilarity_ispline_mds);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (interval mds)...", nullptr, 1, DO_Dissimilarity_interval_mds);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (ratio mds)...", nullptr, 1, DO_Dissimilarity_ratio_mds);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (absolute mds)...", nullptr, 1, DO_Dissimilarity_absolute_mds);
-	praat_addAction1 (classDissimilarity, 1, U"To Configuration (kruskal)...", nullptr, 1, DO_Dissimilarity_kruskal);
-	praat_addAction1 (classDissimilarity, 0, U"To Distance...", nullptr, 0, DO_Dissimilarity_to_Distance);
-	praat_addAction1 (classDissimilarity, 0, U"To Weight", nullptr, 0, DO_Dissimilarity_to_Weight);
+	praat_addAction1 (classDissimilarity, 0, CONFIGURATION_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (monotone mds)...", 0, 1, DO_Dissimilarity_monotone_mds);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (i-spline mds)...", 0, 1, DO_Dissimilarity_ispline_mds);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (interval mds)...", 0, 1, DO_Dissimilarity_interval_mds);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (ratio mds)...", 0, 1, DO_Dissimilarity_ratio_mds);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (absolute mds)...", 0, 1, DO_Dissimilarity_absolute_mds);
+	praat_addAction1 (classDissimilarity, 1, U"To Configuration (kruskal)...", 0, 1, DO_Dissimilarity_kruskal);
+	praat_addAction1 (classDissimilarity, 0, U"To Distance...", 0, 0, DO_Dissimilarity_to_Distance);
+	praat_addAction1 (classDissimilarity, 0, U"To Weight", 0, 0, DO_Dissimilarity_to_Weight);
 
 
-	praat_addAction1 (classCovariance, 0, U"To Configuration...", nullptr, 0, DO_Covariance_to_Configuration);
+	praat_addAction1 (classCovariance, 0, U"To Configuration...", 0, 0, DO_Covariance_to_Configuration);
 
 
 	praat_TableOfReal_init2 (classDistance);
 	praat_TableOfReal_extras (classDistance);
-	praat_addAction1 (classDistance, 0, U"Analyse -", nullptr, 0, nullptr);
-	praat_addAction1 (classDistance, 0, CONFIGURATION_BUTTON, nullptr, 0, nullptr);
-	praat_addAction1 (classDistance, 0, U"To Configuration (indscal)...", nullptr, 1, DO_Distances_indscal);
-	praat_addAction1 (classDistance, 0, U"-- linear scaling --", nullptr, 1, 0);
-	praat_addAction1 (classDistance, 0, U"To Configuration (ytl)...", nullptr, 1, DO_Distances_to_Configuration_ytl);
-	praat_addAction1 (classDistance, 0, U"To Dissimilarity", nullptr, 0, DO_Distance_to_Dissimilarity);
-	praat_addAction1 (classDistance, 0, U"To ScalarProduct...", nullptr, 0, DO_Distance_to_ScalarProduct);
+	praat_addAction1 (classDistance, 0, U"Analyse -", 0, 0, 0);
+	praat_addAction1 (classDistance, 0, CONFIGURATION_BUTTON, 0, 0, 0);
+	praat_addAction1 (classDistance, 0, U"To Configuration (indscal)...", 0, 1, DO_Distances_indscal);
+	praat_addAction1 (classDistance, 0, U"-- linear scaling --", 0, 1, 0);
+	praat_addAction1 (classDistance, 0, U"To Configuration (ytl)...", 0, 1, DO_Distances_to_Configuration_ytl);
+	praat_addAction1 (classDistance, 0, U"To Dissimilarity", 0, 0, DO_Distance_to_Dissimilarity);
+	praat_addAction1 (classDistance, 0, U"To ScalarProduct...", 0, 0, DO_Distance_to_ScalarProduct);
 
 
-	praat_addAction1 (classProcrustes, 0, U"Procrustes help", nullptr, 0, DO_Procrustes_help);
+	praat_addAction1 (classProcrustes, 0, U"Procrustes help", 0, 0, DO_Procrustes_help);
 	praat_AffineTransform_init (classProcrustes);
 	praat_addAction1 (classProcrustes, 1, U"Get scale", QUERY_BUTTON, 1, DO_Procrustes_getScale);
-	praat_addAction1 (classProcrustes, 0, U"Extract transformation matrix", nullptr, 0, DO_AffineTransform_extractMatrix);
-	praat_addAction1 (classProcrustes, 0, U"Extract translation vector", nullptr, 0, DO_AffineTransform_extractTranslationVector);
+	praat_addAction1 (classProcrustes, 0, U"Extract transformation matrix", 0, 0, DO_AffineTransform_extractMatrix);
+	praat_addAction1 (classProcrustes, 0, U"Extract translation vector", 0, 0, DO_AffineTransform_extractTranslationVector);
 
 	praat_TableOfReal_init2 (classSalience);
 	praat_TableOfReal_extras (classSalience);
 	praat_addAction1 (classSalience, 0, U"Draw...", DRAW_BUTTON, 1, DO_Salience_draw);
 
 
-	praat_addAction1 (classSimilarity, 0, U"Similarity help", nullptr, 0, DO_Similarity_help);
+	praat_addAction1 (classSimilarity, 0, U"Similarity help", 0, 0, DO_Similarity_help);
 	praat_TableOfReal_init2 (classSimilarity);
 	praat_TableOfReal_extras (classSimilarity);
-	praat_addAction1 (classSimilarity, 0, U"Analyse -", nullptr, 0, nullptr);
-	praat_addAction1 (classSimilarity, 0, U"To Dissimilarity...", nullptr, 0, DO_Similarity_to_Dissimilarity);
+	praat_addAction1 (classSimilarity, 0, U"Analyse -", 0, 0, 0);
+	praat_addAction1 (classSimilarity, 0, U"To Dissimilarity...", 0, 0, DO_Similarity_to_Dissimilarity);
 
 
 	praat_TableOfReal_init2 (classScalarProduct);
@@ -1978,91 +1809,93 @@ void praat_uvafon_MDS_init () {
 	praat_addAction1 (classTableOfReal, 1, U"Centre rows", U"Normalize table...", 1, DO_TableOfReal_centreRows);
 	praat_addAction1 (classTableOfReal, 1, U"Centre columns", U"Centre rows", 1, DO_TableOfReal_centreColumns);
 	praat_addAction1 (classTableOfReal, 1, U"Double centre", U"Centre columns", 1, DO_TableOfReal_doubleCentre);
-	praat_addAction1 (classTableOfReal, 0, U"Cast -", nullptr, 0, nullptr);
-	praat_addAction1 (classTableOfReal, 0, U"To Confusion", nullptr, 1, DO_TableOfReal_to_Confusion);
-	praat_addAction1 (classTableOfReal, 0, U"To Dissimilarity", nullptr, 1, DO_TableOfReal_to_Dissimilarity);
-	praat_addAction1 (classTableOfReal, 0, U"To Similarity", nullptr, 1, DO_TableOfReal_to_Similarity);
-	praat_addAction1 (classTableOfReal, 0, U"To Distance", nullptr, 1, DO_TableOfReal_to_Distance);
-	praat_addAction1 (classTableOfReal, 0, U"To Salience", nullptr, 1, DO_TableOfReal_to_Salience);
-	praat_addAction1 (classTableOfReal, 0, U"To Weight", nullptr, 1, DO_TableOfReal_to_Weight);
-	praat_addAction1 (classTableOfReal, 0, U"To ScalarProduct", nullptr, 1, DO_TableOfReal_to_ScalarProduct);
-	praat_addAction1 (classTableOfReal, 0, U"To Configuration", nullptr, 1, DO_TableOfReal_to_Configuration);
-	praat_addAction1 (classTableOfReal, 0, U"To ContingencyTable", nullptr, 1, DO_TableOfReal_to_ContingencyTable);
+	praat_addAction1 (classTableOfReal, 0, U"Cast -", 0, 0, 0);
+	praat_addAction1 (classTableOfReal, 0, U"To Confusion", 0, 1, DO_TableOfReal_to_Confusion);
+	praat_addAction1 (classTableOfReal, 0, U"To Dissimilarity", 0, 1, DO_TableOfReal_to_Dissimilarity);
+	praat_addAction1 (classTableOfReal, 0, U"To Similarity", 0, 1, DO_TableOfReal_to_Similarity);
+	praat_addAction1 (classTableOfReal, 0, U"To Distance", 0, 1, DO_TableOfReal_to_Distance);
+	praat_addAction1 (classTableOfReal, 0, U"To Salience", 0, 1, DO_TableOfReal_to_Salience);
+	praat_addAction1 (classTableOfReal, 0, U"To Weight", 0, 1, DO_TableOfReal_to_Weight);
+	praat_addAction1 (classTableOfReal, 0, U"To ScalarProduct", 0, 1, DO_TableOfReal_to_ScalarProduct);
+	praat_addAction1 (classTableOfReal, 0, U"To Configuration", 0, 1, DO_TableOfReal_to_Configuration);
+	praat_addAction1 (classTableOfReal, 0, U"To ContingencyTable", 0, 1, DO_TableOfReal_to_ContingencyTable);
 
 	praat_TableOfReal_init2 (classWeight);
 
+
 	/****** 2 classes ********************************************************/
 
 	praat_Configuration_and_AffineTransform_init (classAffineTransform);
 	praat_Configuration_and_AffineTransform_init (classProcrustes);
 
-	praat_addAction2 (classConfiguration, 0, classWeight, 1, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction2 (classConfiguration, 0, classWeight, 1, U"To Similarity (cc)", nullptr, 0, DO_Configuration_Weight_to_Similarity_cc);
-
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, ANALYSE_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (monotone mds)...", nullptr, 1, DO_Dissimilarity_Weight_monotone_mds);
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (i-spline mds)...", nullptr, 1, DO_Dissimilarity_Weight_ispline_mds);
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (interval mds)...", nullptr, 1, DO_Dissimilarity_Weight_interval_mds);
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (ratio mds)...", nullptr, 1, DO_Dissimilarity_Weight_ratio_mds);
-	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (absolute mds)...", nullptr, 1, DO_Dissimilarity_Weight_absolute_mds);
-
-
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, DRAW_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw Shepard diagram...", nullptr, 1, DO_Dissimilarity_Configuration_drawShepardDiagram);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"-- draw regressions --", nullptr, 1, nullptr);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw monotone regression...", nullptr, 1, DO_Dissimilarity_Configuration_drawMonotoneRegression);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw i-spline regression...", nullptr, 1, DO_Dissimilarity_Configuration_drawISplineRegression);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw interval regression...", nullptr, 1, DO_Dissimilarity_Configuration_drawIntervalRegression);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw ratio regression...", nullptr, 1, DO_Dissimilarity_Configuration_drawRatioRegression);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw absolute regression...", nullptr, 1, DO_Dissimilarity_Configuration_drawAbsoluteRegression);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, QUERY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress...", nullptr, 1, DO_Dissimilarity_Configuration_getStress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (monotone mds)...", nullptr, 1, DO_Dissimilarity_Configuration_monotone_stress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (i-spline mds)...", nullptr, 1, DO_Dissimilarity_Configuration_ispline_stress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (interval mds)...", nullptr, 1, DO_Dissimilarity_Configuration_interval_stress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (ratio mds)...", nullptr, 1, DO_Dissimilarity_Configuration_ratio_stress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (absolute mds)...", nullptr, 1, DO_Dissimilarity_Configuration_absolute_stress);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, ANALYSE_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (monotone mds)...", nullptr, 1, DO_Dissimilarity_Configuration_monotone_mds);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (i-spline mds)...", nullptr, 1, DO_Dissimilarity_Configuration_ispline_mds);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (interval mds)...", nullptr, 1, DO_Dissimilarity_Configuration_interval_mds);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (ratio mds)...", nullptr, 1, DO_Dissimilarity_Configuration_ratio_mds);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (absolute mds)...", nullptr, 1, DO_Dissimilarity_Configuration_absolute_mds);
-	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (kruskal)...", nullptr, 1, DO_Dissimilarity_Configuration_kruskal);
-
-	praat_addAction2 (classDistance, 1, classConfiguration, 1, DRAW_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDistance, 1, classConfiguration, 1, U"Draw scatter diagram...", nullptr, 0, DO_Distance_and_Configuration_drawScatterDiagram);
-	praat_addAction2 (classDistance, 1, classConfiguration, 1, QUERY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDistance, 0, classConfiguration, 1, U"Get VAF...", nullptr, 0, DO_Distance_Configuration_vaf);
-	praat_addAction2 (classDistance, 1, classConfiguration, 1, ANALYSE_BUTTON, nullptr, 0, nullptr);
-	praat_addAction2 (classDistance, 0, classConfiguration, 1, U"To Configuration (indscal)...", nullptr, 1, DO_Distance_Configuration_indscal);
-
-	praat_addAction2 (classDistance, 1, classDissimilarity, 1, U"Draw Shepard diagram...", nullptr, 0, DO_Distance_Dissimilarity_drawShepardDiagram);
-	praat_addAction2 (classDissimilarity, 1, classDistance, 1, U"Monotone regression...", nullptr, 0, DO_Dissimilarity_Distance_monotoneRegression);
+	praat_addAction2 (classConfiguration, 0, classWeight, 1, U"Analyse", 0, 0, 0);
+	praat_addAction2 (classConfiguration, 0, classWeight, 1, U"To Similarity (cc)", 0, 0, DO_Configuration_Weight_to_Similarity_cc);
+
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, ANALYSE_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (monotone mds)...", 0, 1, DO_Dissimilarity_Weight_monotone_mds);
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (i-spline mds)...", 0, 1, DO_Dissimilarity_Weight_ispline_mds);
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (interval mds)...", 0, 1, DO_Dissimilarity_Weight_interval_mds);
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (ratio mds)...", 0, 1, DO_Dissimilarity_Weight_ratio_mds);
+	praat_addAction2 (classDissimilarity, 1, classWeight, 1, U"To Configuration (absolute mds)...", 0, 1, DO_Dissimilarity_Weight_absolute_mds);
+
+
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, DRAW_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw Shepard diagram...", 0, 1, DO_Dissimilarity_Configuration_drawShepardDiagram);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"-- draw regressions --", 0, 1, 0);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw monotone regression...", 0, 1, DO_Dissimilarity_Configuration_drawMonotoneRegression);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw i-spline regression...", 0, 1, DO_Dissimilarity_Configuration_drawISplineRegression);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw interval regression...", 0, 1, DO_Dissimilarity_Configuration_drawIntervalRegression);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw ratio regression...", 0, 1, DO_Dissimilarity_Configuration_drawRatioRegression);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Draw absolute regression...", 0, 1, DO_Dissimilarity_Configuration_drawAbsoluteRegression);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress...", 0, 1, DO_Dissimilarity_Configuration_getStress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (monotone mds)...", 0, 1, DO_Dissimilarity_Configuration_monotone_stress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (i-spline mds)...", 0, 1, DO_Dissimilarity_Configuration_ispline_stress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (interval mds)...", 0, 1, DO_Dissimilarity_Configuration_interval_stress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (ratio mds)...", 0, 1, DO_Dissimilarity_Configuration_ratio_stress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"Get stress (absolute mds)...", 0, 1, DO_Dissimilarity_Configuration_absolute_stress);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, ANALYSE_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (monotone mds)...", 0, 1, DO_Dissimilarity_Configuration_monotone_mds);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (i-spline mds)...", 0, 1, DO_Dissimilarity_Configuration_ispline_mds);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (interval mds)...", 0, 1, DO_Dissimilarity_Configuration_interval_mds);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (ratio mds)...", 0, 1, DO_Dissimilarity_Configuration_ratio_mds);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (absolute mds)...", 0, 1, DO_Dissimilarity_Configuration_absolute_mds);
+	praat_addAction2 (classDissimilarity, 1, classConfiguration, 1, U"To Configuration (kruskal)...", 0, 1, DO_Dissimilarity_Configuration_kruskal);
+
+	praat_addAction2 (classDistance, 1, classConfiguration, 1, DRAW_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDistance, 1, classConfiguration, 1, U"Draw scatter diagram...", 0, 0, DO_Distance_and_Configuration_drawScatterDiagram);
+	praat_addAction2 (classDistance, 1, classConfiguration, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDistance, 0, classConfiguration, 1, U"Get VAF...", 0, 0, DO_Distance_Configuration_vaf);
+	praat_addAction2 (classDistance, 1, classConfiguration, 1, ANALYSE_BUTTON, 0, 0, 0);
+	praat_addAction2 (classDistance, 0, classConfiguration, 1, U"To Configuration (indscal)...", 0, 1, DO_Distance_Configuration_indscal);
+
+	praat_addAction2 (classDistance, 1, classDissimilarity, 1, U"Draw Shepard diagram...", 0, 0, DO_Distance_Dissimilarity_drawShepardDiagram);
+	praat_addAction2 (classDissimilarity, 1, classDistance, 1, U"Monotone regression...", 0, 0, DO_Dissimilarity_Distance_monotoneRegression);
 
 	/****** 3 classes ********************************************************/
 
-	praat_addAction3 (classDissimilarity, 0, classConfiguration, 1, classSalience, 1, QUERY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction3 (classDissimilarity, 0, classConfiguration, 1, classSalience, 1, U"Get VAF...", nullptr, 1, DO_Dissimilarity_Configuration_Salience_vaf);
-
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, QUERY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (monotone mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_monotone_stress);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (i-spline mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_ispline_stress);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (interval mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_interval_stress);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (ratio mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_ratio_stress);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (absolute mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_absolute_stress);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, ANALYSE_BUTTON, nullptr, 0, nullptr);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (monotone mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_monotone_mds);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (i-spline mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_ispline_mds);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (interval mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_interval_mds);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (ratio mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_ratio_mds);
-	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (absolute mds)...", nullptr, 1, DO_Dissimilarity_Configuration_Weight_absolute_mds);
-
-
-	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, QUERY_BUTTON, nullptr, 0, nullptr);
-	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"Get VAF...", nullptr, 1, DO_Distance_Configuration_Salience_vaf);
-	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"To Configuration (indscal)...", nullptr, 0, DO_Distance_Configuration_Salience_indscal);
+
+	praat_addAction3 (classDissimilarity, 0, classConfiguration, 1, classSalience, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction3 (classDissimilarity, 0, classConfiguration, 1, classSalience, 1, U"Get VAF...", 0, 1, DO_Dissimilarity_Configuration_Salience_vaf);
+
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (monotone mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_monotone_stress);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (i-spline mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_ispline_stress);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (interval mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_interval_stress);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (ratio mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_ratio_stress);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"Get stress (absolute mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_absolute_stress);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, ANALYSE_BUTTON, 0, 0, 0);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (monotone mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_monotone_mds);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (i-spline mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_ispline_mds);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (interval mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_interval_mds);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (ratio mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_ratio_mds);
+	praat_addAction3 (classDissimilarity, 1, classConfiguration, 1, classWeight, 1, U"To Configuration (absolute mds)...", 0, 1, DO_Dissimilarity_Configuration_Weight_absolute_mds);
+
+
+	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, QUERY_BUTTON, 0, 0, 0);
+	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"Get VAF...", 0, 1, DO_Distance_Configuration_Salience_vaf);
+	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"Analyse", 0, 0, 0);
+	praat_addAction3 (classDistance, 0, classConfiguration, 1, classSalience, 1, U"To Configuration (indscal)...", 0, 0, DO_Distance_Configuration_Salience_indscal);
 
 
 	INCLUDE_MANPAGES (manual_MDS_init)
diff --git a/external/espeak/READ_ME.TXT b/external/espeak/READ_ME.TXT
index 9b46bf2..7a38c38 100644
--- a/external/espeak/READ_ME.TXT
+++ b/external/espeak/READ_ME.TXT
@@ -1,8 +1,8 @@
 READ_ME.TXT
 
-djmw 20151203
+djmw 20120130
 
-Espeak Version 1.48.04
+Espeak Version 1.46
 
 The Espeak program and its library use the espeak-data directory as a supply for the data the
 synthesizer needs. The synthesizer needs the location of this directory to work correctly. The synthesizer's
@@ -38,7 +38,7 @@ Use the (private) script "espeakdata_to_code.praat to
 #undef PLATFORM_WINDOWS
 #undef USE_NANOSLEEP
 #define DATA_FROM_SOURCECODE_FILES
-char32 *eSpeak_version = U"1.48.04" // the current espeak version
+
 #ifdef _WIN32
 	wchar_t * Melder_peekUtf8ToWcs (const char *string);
 	const uint16_t * Melder_peekWcsToUtf16 (const wchar_t *string);
@@ -118,10 +118,9 @@ static void init_path(const char *path)
 {//====================================
 #ifdef PLATFORM_WINDOWS
 
-near line 115 and 465: sleep is not a WIN64 function, but luckily we don't need it.
+near line 464: sleep is not a WIN64 function, but luckily we don't need it.
 // sleep(1)
 
-
 >> dictionary.cpp
 
 #ifdef DATA_FROM_SOURCECODE_FILES
@@ -198,7 +197,7 @@ static double gen_noise(double noisedummy) // repaired ppgb 20111223
         return(noise);
 }
 
-//in speech.h
+???
 template <size_t _align_to, typename T> T *align_address (T *p)
 {
 	union {
@@ -211,10 +210,3 @@ template <size_t _align_to, typename T> T *align_address (T *p)
 	integer &= bit_mask;
 	return ptr;
 }
-
-// tr_languages
-replace 
-const char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal character, UTF-8
-by
-const char string_ordinal[] = {static_cast<char>(0xc2),static_cast<char>(0xba),0};  // masculine ordinal character, UTF-8
-to compile on 32 bit systems
diff --git a/external/espeak/StdAfx.h b/external/espeak/StdAfx.h
old mode 100755
new mode 100644
diff --git a/external/espeak/compiledict.cpp b/external/espeak/compiledict.cpp
old mode 100755
new mode 100644
index 41c3e20..7f9e34c
--- a/external/espeak/compiledict.cpp
+++ b/external/espeak/compiledict.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2010 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -32,6 +32,7 @@
 #include "translate.h"
 
 extern void Write4Bytes(FILE *f, int value);
+int HashDictionary(const char *string);
 
 static FILE *f_log = NULL;
 extern char *dir_dictionary;
@@ -49,27 +50,14 @@ static char *hash_chains[N_HASH_DICT];
 static char letterGroupsDefined[N_LETTER_GROUPS];
 
 MNEM_TAB mnem_rules[] = {
-	{"unpr",   DOLLAR_UNPR},
-	{"noprefix", DOLLAR_NOPREFIX},  // rule fails if a prefix has been removed
-	{"list",   DOLLAR_LIST},    // a pronunciation is given in the *_list file
-
-	{"w_alt1", 0x11},
+	{"unpr",   0x01},
 	{"w_alt2", 0x12},
 	{"w_alt3", 0x13},
-	{"w_alt4", 0x14},
-	{"w_alt5", 0x15},
-	{"w_alt6", 0x16},
 	{"w_alt", 0x11},   // note: put longer names before their sub-strings
-
-	{"p_alt1", 0x21},
 	{"p_alt2", 0x22},
 	{"p_alt3", 0x23},
-	{"p_alt4", 0x24},
-	{"p_alt5", 0x25},
-	{"p_alt6", 0x26},
 	{"p_alt", 0x21},
-	{NULL, -1}
-};
+	{NULL, -1} };
 
 MNEM_TAB mnem_flags[] = {
 	// these in the first group put a value in bits0-3 of dictionary_flags
@@ -91,22 +79,24 @@ MNEM_TAB mnem_flags[] = {
 
 
 	// these set the corresponding numbered bit if dictionary_flags
-	{"$pause",     8},    // ensure pause before this word
-	{"$strend",    9},   // full stress if at end of clause
-	{"$strend2",   10},   // full stress if at end of clause, or only followed by unstressed
-	{"$unstressend",11},  // reduce stress at end of clause
-	{"$abbrev",    13},   // use this pronuciation rather than split into letters
+	{"$pause",     8},    /* ensure pause before this word */
+	{"$only",      9},    /* only match on this word without suffix */
+	{"$onlys",     10},    /* only match with none, or with 's' suffix */
+	{"$strend",    11},    /* full stress if at end of clause */
+	{"$strend2",   12},    /* full stress if at end of clause, or only followed by unstressed */
+	{"$unstressend",13},   /* reduce stress at end of clause */
+	{"$atend",     14},    /* use this pronunciation if at end of clause */
+	{"$atstart",   15},   // use this pronunciation at start of clause
+
+	{"$abbrev",    17},    /* use this pronuciation rather than split into letters */
+	{"$stem",      18},   // must have a suffix
 
 // language specific
-	{"$double",    14},   // IT double the initial consonant of next word
-	{"$alt",       15},   // use alternative pronunciation
-	{"$alt1",      15},   // synonym for $alt
-	{"$alt2",      16},
-	{"$alt3",      17},
-	{"$alt4",      18},
-	{"$alt5",      19},
-	{"$alt6",      20},
-
+	{"$double",    19},   // IT double the initial consonant of next word
+	{"$alt",       20},   // use alternative pronunciation
+	{"$alt1",      20},   // synonym for $alt
+	{"$alt2",      21},
+	{"$alt3",      22},
 	{"$combine",   23},   // Combine with the next word
 
 	{"$dot",       24},   // ignore '.' after this word (abbreviation)
@@ -117,24 +107,18 @@ MNEM_TAB mnem_flags[] = {
 	{"$text",      29},   // word translates to replcement text, not phonemes
 
 // flags in dictionary word 2
-	{"$verbf",   0x20},   // verb follows
-	{"$verbsf",  0x21},   // verb follows, allow -s suffix
-	{"$nounf",   0x22},   // noun follows
-	{"$pastf",   0x23},   // past tense follows
-	{"$verb",    0x24},   // use this pronunciation when its a verb
-	{"$noun",    0x25},   // use this pronunciation when its a noun
-	{"$past",    0x26},   // use this pronunciation when its past tense
-	{"$verbextend",0x28}, // extend influence of 'verb follows'
-	{"$capital", 0x29},   // use this pronunciation if initial letter is upper case
-	{"$allcaps", 0x2a},   // use this pronunciation if initial letter is upper case
+	{"$verbf",   0x20},    /* verb follows */
+	{"$verbsf",  0x21},    /* verb follows, allow -s suffix */
+	{"$nounf",   0x22},    /* noun follows */
+	{"$pastf",   0x23},   /* past tense follows */
+	{"$verb",    0x24},   /* use this pronunciation when its a verb */
+	{"$noun",    0x25},   /* use this pronunciation when its a noun */
+	{"$past",    0x26},   /* use this pronunciation when its past tense */
+	{"$verbextend",0x28},   /* extend influence of 'verb follows' */
+	{"$capital", 0x29},   /* use this pronunciation if initial letter is upper case */
+	{"$allcaps", 0x2a},   /* use this pronunciation if initial letter is upper case */
 	{"$accent",  0x2b},   // character name is base-character name + accent name
 	{"$sentence",0x2d},   // only if this clause is a sentence (i.e. terminator is {. ? !} not {, ; :}
-	{"$only",    0x2e},   // only match on this word without suffix
-	{"$onlys",   0x2f},   // only match with none, or with 's' suffix
-	{"$stem",    0x30},   // must have a suffix
-	{"$atend",   0x31},   // use this pronunciation if at end of clause
-	{"$atstart", 0x32},   // use this pronunciation at start of clause
-	{"$native",  0x33},   // not if we've switched translators
 
 	// doesn't set dictionary_flags
 	{"$?",        100},   // conditional rule, followed by byte giving the condition number
@@ -181,49 +165,26 @@ static FILE *fopen_log(const char *fname,const char *access)
 }
 
 
-static const char *LookupMnemName(MNEM_TAB *table, const int value)
+const char *LookupMnemName(MNEM_TAB *table, const int value)
 //==========================================================
 /* Lookup a mnemonic string in a table, return its name */
 {
-	while(table->mnem != NULL)
-	{
-		if(table->value==value)
-			return(table->mnem);
-		table++;
-	}
-	return("");   /* not found */
+   while(table->mnem != NULL)
+   {
+      if(table->value==value)
+         return(table->mnem);
+      table++;
+   }
+   return("");   /* not found */
 }   /* end of LookupMnemValue */
 
 
-void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len)
-{//========================================================================
-	int stress;
-	int ix;
-	const char *name;
-	int len;
-	int total = 0;
-
-	buf[0] = 0;
-	if((stress = flags[0] & 0xf) != 0)
-	{
-		sprintf(buf, "%s", LookupMnemName(mnem_flags, stress + 0x40));
-		total = strlen(buf);
-		buf += total;
-	}
+char *print_dictionary_flags(unsigned int *flags)
+{//==============================================
+	static char buf[20];
 
-	for(ix=8; ix<64; ix++)
-	{
-		if(((ix < 30) && (flags[0] & (1 << ix))) || ((ix >= 0x20) && (flags[1] & (1 << (ix-0x20)))))
-		{
-			name = LookupMnemName(mnem_flags, ix);
-			len = strlen(name) + 1;
-			total += len;
-			if(total >= buf_len)
-				continue;
-			sprintf(buf, " %s", name);
-			buf += len;
-		}
-	}
+	sprintf(buf,"%s  0x%x/%x",LookupMnemName(mnem_flags,(flags[0] & 0xf)+0x40), flags[0], flags[1]);
+	return(buf);
 }
 
 
@@ -231,13 +192,12 @@ void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len)
 
 char *DecodeRule(const char *group_chars, int group_length, char *rule, int control)
 {//=================================================================================
-	/* Convert compiled match template to ascii */
+/* Convert compiled match template to ascii */
 
-	unsigned char rb;
+   unsigned char rb;
 	unsigned char c;
 	char *p;
-	char *p_end;
-	int  ix;
+   int  ix;
 	int  match_type;
 	int  finished=0;
 	int  value;
@@ -247,20 +207,18 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 	int  condition_num=0;
 	int  at_start = 0;
 	const char *name;
-	char buf[200];
-	char buf_pre[200];
+   char buf[60];
+   char buf_pre[60];
 	char suffix[20];
-	static char output[80];
+	static char output[60];
 
-	static char symbols[] =
-		{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
-		'&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W'
-		};
+	static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
+		'&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W'};
 
 	static char symbols_lg[] = {'A','B','C','H','F','G','Y'};
 
 	match_type = 0;
-	buf_pre[0] = 0;
+   buf_pre[0] = 0;
 
 	for(ix=0; ix<group_length; ix++)
 	{
@@ -269,8 +227,8 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 	buf[ix] = 0;
 
 	p = &buf[strlen(buf)];
-	while(!finished)
-	{
+   while(!finished)
+   {
 		rb = *rule++;
 
 		if(rb <= RULE_LINENUM)
@@ -314,7 +272,6 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 			value = *rule++ & 0xff;
 			if((value != 0x01) || (control & FLAG_UNPRON_TEST))
 			{
-				// TODO write the string backwards if in RULE_PRE
 				p[0] = '$';
 				name = LookupMnemName(mnem_rules, value);
 				strcpy(&p[1],name);
@@ -322,7 +279,8 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 			}
 			c = ' ';
 		}
-		else if(rb == RULE_ENDING)
+		else
+		if(rb == RULE_ENDING)
 		{
 			static const char *flag_chars = "eipvdfq tba ";
 			flags = ((rule[0] & 0x7f)<< 8) + (rule[1] & 0x7f);
@@ -331,7 +289,7 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 				suffix_char = 'P';
 			sprintf(suffix,"%c%d",suffix_char,rule[2] & 0x7f);
 			rule += 3;
-			for(ix=0; ix<9; ix++)
+			for(ix=0;ix<9;ix++)
 			{
 				if(flags & 1)
 					sprintf(&suffix[strlen(suffix)],"%c",flag_chars[ix]);
@@ -341,11 +299,13 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 			p += strlen(suffix);
 			c = ' ';
 		}
-		else if(rb == RULE_LETTERGP)
+		else
+		if(rb == RULE_LETTERGP)
 		{
 			c = symbols_lg[*rule++ - 'A'];
 		}
-		else if(rb == RULE_LETTERGP2)
+		else
+		if(rb == RULE_LETTERGP2)
 		{
 			value = *rule++ - 'A';
 			p[0] = 'L';
@@ -359,9 +319,11 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 			}
 			p+=2;
 		}
-		else if(rb <= RULE_LAST_RULE)
+		else
+		if(rb <= RULE_LAST_RULE)
 			c = symbols[rb];
-		else if(rb == RULE_SPACE)
+		else
+		if(rb == RULE_SPACE)
 			c = '_';
 		else
 			c = rb;
@@ -370,8 +332,6 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 	*p = 0;
 
 	p = output;
-	p_end = p + sizeof(output) - 1;
-
 	if(linenum > 0)
 	{
 		sprintf(p,"%5d:\t",linenum);
@@ -386,20 +346,18 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
 	{
 		if(at_start)
 			*p++ = '_';
-		while((--ix >= 0) && (p < p_end-3))
+		while(--ix >= 0)
 			*p++ = buf_pre[ix];
 		*p++ = ')';
 		*p++ = ' ';
 	}
 	*p = 0;
-
-	buf[p_end - p] = 0;  // prevent overflow in output[]
 	strcat(p,buf);
 	ix = strlen(output);
 	while(ix < 8)
 		output[ix++]=' ';
 	output[ix]=0;
-	return(output);
+   return(output);
 }   /* end of DecodeRule */
 
 
@@ -432,9 +390,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 	char *mnemptr;
 	unsigned char flag_codes[100];
 	char encoded_ph[200];
-	char bad_phoneme_str[4];
-	int bad_phoneme;
-	static char nullstring[] = {0};
+	unsigned char bad_phoneme[4];
+static char nullstring[] = {0};
 
 	text_not_phonemes = 0;
 	phonetic = word = nullstring;
@@ -479,12 +436,12 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 			}
 
 			ix = 0;
-			if(IsDigit09(*p))
+			if(isdigit(*p))
 			{
 				ix += (*p-'0');
 				p++;
 			}
-			if(IsDigit09(*p))
+			if(isdigit(*p))
 			{
 				ix = ix*10 + (*p-'0');
 				p++;
@@ -507,11 +464,13 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 				{
 					text_mode = 1;
 				}
-				else if(flagnum == 201)
+				else
+				if(flagnum == 201)
 				{
 					text_mode = 0;
 				}
-				else if(flagnum == BITNUM_FLAG_TEXTMODE)
+				else
+				if(flagnum == BITNUM_FLAG_TEXTMODE)
 				{
 					text_not_phonemes = 1;
 				}
@@ -541,7 +500,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 				word = p+1;
 				step = 1;
 			}
-			else if(!isspace2(c))
+			else
+			if(!isspace2(c))
 			{
 				word = p;
 				step = 1;
@@ -551,7 +511,7 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 		case 1:
 			if((c == '-') && multiple_words)
 			{
-				if(IsDigit09(word[0]))
+				if(isdigit(word[0]))
 				{
 					multiple_numeric_hyphen = 1;
 				}
@@ -575,7 +535,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 					step = 3;
 				}
 			}
-			else if(c == ')')
+			else
+			if(c == ')')
 			{
 				if(multiple_words)
 				{
@@ -583,7 +544,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 					multiple_words = 0;
 					step = 3;
 				}
-				else if(word[0] != '_')
+				else
+				if(word[0] != '_')
 				{
 					fprintf(f_log, "%5d: Missing '('\n", linenum);
 					error_count++;
@@ -597,7 +559,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 			{
 				multiple_words++;
 			}
-			else if(c == ')')
+			else
+			if(c == ')')
 			{
 				p[0] = ' ';   // terminate extra string
 				multiple_string_end = p+1;
@@ -642,9 +605,9 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 			// This is a special word, used by eSpeak.  Translate this into phonemes now
 			strcat(phonetic, " ");     // need a space to indicate word-boundary
 
-			// PROBLEM  vowel reductions are not applied to the translated phonemes
-			// condition rules are not applied
-			TranslateWord(translator,phonetic,0,NULL,NULL);
+	// PROBLEM  vowel reductions are not applied to the translated phonemes
+	// condition rules are not applied
+			TranslateWord(translator,phonetic,0,NULL);
 			text_not_phonemes = 0;
 			strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4);
 
@@ -654,11 +617,11 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 				error_need_dictionary++;
 				fprintf(f_log,"%5d: Need to compile dictionary again\n",linenum);
 			}
-			{
+{
 //char decoded_phonemes[128];
 //DecodePhonemes(word_phonemes,decoded_phonemes);
 //printf("Translator %x  %s  [%s] [%s]\n",translator->translator_name,word,phonetic,decoded_phonemes);
-			}
+}
 		}
 		else
 		{
@@ -668,18 +631,17 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 	}
 	else
 	{
-		EncodePhonemes(phonetic,encoded_ph,&bad_phoneme);
+		EncodePhonemes(phonetic,encoded_ph,bad_phoneme);
 		if(strchr(encoded_ph,phonSWITCH) != 0)
 		{
 			flag_codes[n_flag_codes++] = BITNUM_FLAG_ONLY_S;  // don't match on suffixes (except 's') when switching languages
 		}
 
 		// check for errors in the phonemes codes
-		if(bad_phoneme != 0)
+		if(bad_phoneme[0] != 0)
 		{
 			// unrecognised phoneme, report error
-			bad_phoneme_str[utf8_out(bad_phoneme, bad_phoneme_str)] = 0;
-			fprintf(f_log,"%5d: Bad phoneme [%s] (U+%x) in: %s  %s\n",linenum,bad_phoneme_str,bad_phoneme,word,phonetic);
+			fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s  %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic);
 			error_count++;
 		}
 	}
@@ -696,7 +658,8 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 		ix = utf8_out(wc, word);
 		word[ix] = 0;
 	}
-	else if(word[0] != '_')
+	else
+	if(word[0] != '_')
 	{
 		// convert to lower case, and note if the word is all-capitals
 		int c2;
@@ -710,9 +673,9 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
 			ix = utf8_in(&c2,p);
 			if(c2 == 0)
 				break;
-			if(iswupper2(c2))
+			if(iswupper(c2))
 			{
-				utf8_out(towlower2(c2),p);
+				utf8_out(towlower(c2),p);
 			}
 			else
 			{
@@ -916,7 +879,7 @@ static int group3_ix;
 
 
 
-static int isHexDigit(int c)
+int isHexDigit(int c)
 {
 	if((c >= '0') && (c <= '9'))
 		return(c - '0');
@@ -928,8 +891,8 @@ static int isHexDigit(int c)
 }
 
 
-static void copy_rule_string(char *string, int *state_out)
-{//=======================================================
+static void copy_rule_string(char *string, int &state)
+{//===================================================
 // state 0: conditional, 1=pre, 2=match, 3=post, 4=phonemes
 	static char *outbuf[5] = {rule_cond, rule_pre, rule_match, rule_post, rule_phonemes};
 	static int next_state[5] = {2,2,4,4,4};
@@ -943,7 +906,6 @@ static void copy_rule_string(char *string, int *state_out)
 	int  value;
 	int  literal;
 	int  hexdigit_input = 0;
-	int state = *state_out;
 	MNEM_TAB *mr;
 
 	if(string[0] == 0) return;
@@ -1084,7 +1046,8 @@ static void copy_rule_string(char *string, int *state_out)
 						fprintf(f_log,"%5d: Expected 2 digits after 'L'\n",linenum);
 						error_count++;
 					}
-					else if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0))
+					else
+					if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0))
 					{
 						fprintf(f_log,"%5d: Letter group L%.2d not defined\n",linenum,c);
 						error_count++;
@@ -1103,33 +1066,21 @@ static void copy_rule_string(char *string, int *state_out)
 					break;
 
 				case '$':
-					value = 0;
+					output[ix++] = RULE_DOLLAR;
+					c = 0;
 					mr = mnem_rules;
 					while(mr->mnem != NULL)
 					{
 						len = strlen(mr->mnem);
 						if(memcmp(p, mr->mnem, len) == 0)
 						{
-							value = mr->value;
+							c = mr->value;
 							p += len;
 							break;
 						}
 						mr++;
 					}
-
-					if(state == 1)
-					{
-						// pre-rule, put the number before the RULE_DOLLAR
-						output[ix++] = value;
-						c = RULE_DOLLAR;
-					}
-					else
-					{
-						output[ix++] = RULE_DOLLAR;
-						c = value;
-					}
-
-					if(value == 0)
+					if(c == 0)
 					{
 						fprintf(f_log,"%5d: $ command not recognized\n",linenum);
 						error_count++;
@@ -1175,11 +1126,8 @@ static void copy_rule_string(char *string, int *state_out)
 						case 'a':
 							sxflags |= SUFX_A;
 							break;
-						case 'm':
-							sxflags |= SUFX_M;
-							break;
 						default:
-							if(IsDigit09(c))
+							if(isdigit(c))
 								value = (value*10) + (c - '0');
 							break;
 						}
@@ -1196,7 +1144,7 @@ static void copy_rule_string(char *string, int *state_out)
 		if(c == 0) break;
 	}
 
-	*state_out = next_state[state];
+	state = next_state[state];
 }  //  end of copy_rule_string
 
 
@@ -1215,8 +1163,7 @@ static char *compile_rule(char *input)
 	int finish=0;
 	char buf[80];
 	char output[150];
-	int bad_phoneme;
-	char bad_phoneme_str[4];
+	unsigned char bad_phoneme[4];
 
 	buf[0]=0;
 	rule_cond[0]=0;
@@ -1236,14 +1183,14 @@ static char *compile_rule(char *input)
 		case ')':		// end of prefix section
 			*p = 0;
 			state = 1;
-			copy_rule_string(buf,&state);
+			copy_rule_string(buf,state);
 			p = buf;
 			break;
 
 		case '(':		// start of suffix section
 			*p = 0;
 			state = 2;
-			copy_rule_string(buf,&state);
+			copy_rule_string(buf,state);
 			state = 3;
 			p = buf;
 			if(input[ix+1] == ' ')
@@ -1257,14 +1204,14 @@ static char *compile_rule(char *input)
 		case '\r':
 		case 0:			// end of line
 			*p = 0;
-			copy_rule_string(buf,&state);
+			copy_rule_string(buf,state);
 			finish=1;
 			break;
 
 		case '\t':		// end of section section
 		case ' ':
 			*p = 0;
-			copy_rule_string(buf,&state);
+			copy_rule_string(buf,state);
 			p = buf;
 			break;
 
@@ -1294,11 +1241,10 @@ static char *compile_rule(char *input)
 		return(NULL);
 	}
 
-	EncodePhonemes(rule_phonemes,buf,&bad_phoneme);
-	if(bad_phoneme != 0)
+	EncodePhonemes(rule_phonemes,buf,bad_phoneme);
+	if(bad_phoneme[0] != 0)
 	{
-		bad_phoneme_str[utf8_out(bad_phoneme, bad_phoneme_str)] = 0;
-		fprintf(f_log,"%5d: Bad phoneme [%s] (U+%x) in: %s\n",linenum,bad_phoneme_str,bad_phoneme,input);
+		fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input);
 		error_count++;
 	}
 	strcpy(output,buf);
@@ -1386,16 +1332,16 @@ static char *compile_rule(char *input)
 }  //  end of compile_rule
 
 
-static int string_sorter(char **a, char **b)
+int  string_sorter(char **a, char **b)
 {//===========================================
 	char *pa, *pb;
 	int ix;
 
-	if((ix = strcmp(pa = *a,pb = *b)) != 0)
-		return(ix);
+   if((ix = strcmp(pa = *a,pb = *b)) != 0)
+	   return(ix);
 	pa += (strlen(pa)+1);
 	pb += (strlen(pb)+1);
-	return(strcmp(pa,pb));
+   return(strcmp(pa,pb));
 }   /* end of string_sorter */
 
 
@@ -1486,12 +1432,12 @@ static void print_rule_group(FILE *f_out, int n_rules, char **rules, char *name)
 		if(rule_pre[0] != 0)
 		{
 			p = buf;
-			for(ix=strlen(rule_pre)-1; ix>=0; ix--)
+			for(ix=strlen(rule_pre)-1;ix>=0;ix--)
 				*p++ = rule_pre[ix];
 			sprintf(p,") ");
 			spaces -= strlen(buf);
 			for(ix=0; ix<spaces; ix++)
-				fputc(' ',f_out);
+			   fputc(' ',f_out);
 			fprintf(f_out,"%s",buf);
 			spaces = 0;
 		}
@@ -1595,12 +1541,12 @@ static int compile_lettergroup(char *input, FILE *f_out)
 	int length;
 	int max_length = 0;
 
-#define N_LETTERGP_ITEMS 200
+	#define N_LETTERGP_ITEMS 200
 	char *items[N_LETTERGP_ITEMS];
 	char item_length[N_LETTERGP_ITEMS];
 
 	p = input;
-	if(!IsDigit09(p[0]) || !IsDigit09(p[1]))
+	if(!isdigit(p[0]) || !isdigit(p[1]))
 	{
 		fprintf(f_log,"%5d: Expected 2 digits after '.L'\n",linenum);
 		error_count++;
@@ -1637,7 +1583,6 @@ static int compile_lettergroup(char *input, FILE *f_out)
 		items[n_items] = p_start = p;
 		while((*p & 0xff) > ' ')
 		{
-			if (*p == '_') *p = ' ';   // allow '_' for word break
 			p++;
 		}
 		*p++ = 0;
@@ -1812,37 +1757,37 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp)
 			break;
 
 		case 2:   //  .replace
-		{
-			int replace1;
-			int replace2;
-			char *p;
-
-			p = buf;
-			replace1 = 0;
-			replace2 = 0;
-			while(isspace2(*p)) p++;
-			ix = 0;
-			while((unsigned char)(*p) > 0x20)   // not space or zero-byte
-			{
-				p += utf8_in(&c,p);
-				replace1 += (c << ix);
-				ix += 16;
-			}
-			while(isspace2(*p)) p++;
-			ix = 0;
-			while((unsigned char)(*p) > 0x20)
 			{
-				p += utf8_in(&c,p);
-				replace2 += (c << ix);
-				ix += 16;
-			}
-			if(replace1 != 0)
-			{
-				Write4Bytes(f_out,replace1);   // write as little-endian
-				Write4Bytes(f_out,replace2);   // if big-endian, reverse the bytes in LoadDictionary()
+				int replace1;
+				int replace2;
+				char *p;
+
+				p = buf;
+				replace1 = 0;
+				replace2 = 0;
+				while(isspace2(*p)) p++;
+				ix = 0;
+				while((unsigned char)(*p) > 0x20)   // not space or zero-byte
+				{
+					p += utf8_in(&c,p);
+					replace1 += (c << ix);
+					ix += 16;
+				}
+				while(isspace2(*p)) p++;
+				ix = 0;
+				while((unsigned char)(*p) > 0x20)
+				{
+					p += utf8_in(&c,p);
+					replace2 += (c << ix);
+					ix += 16;
+				}
+				if(replace1 != 0)
+				{
+					Write4Bytes(f_out,replace1);   // write as little-endian
+					Write4Bytes(f_out,replace2);   // if big-endian, reverse the bytes in LoadDictionary()
+				}
 			}
-		}
-		break;
+			break;
 		}
 	}
 	fclose(f_temp);
@@ -1946,7 +1891,7 @@ int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, cha
 	if((f_out = fopen_log(fname_out,"wb+")) == NULL)
 	{
 		if(fname_err)
-			strcpy(fname_err,fname_out);
+			strcpy(fname_err,fname_in);
 		return(-1);
 	}
 	sprintf(fname_temp,"%s%ctemp",path_home,PATHSEP);
@@ -1982,7 +1927,6 @@ int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, cha
 	fseek(f_out,4,SEEK_SET);
 	Write4Bytes(f_out,offset_rules);
 	fclose(f_out);
-	fflush(f_log);
 
 	LoadDictionary(translator, dict_name, 0);
 
diff --git a/external/espeak/debug.h b/external/espeak/debug.h
old mode 100755
new mode 100644
diff --git a/external/espeak/dictionary.cpp b/external/espeak/dictionary.cpp
old mode 100755
new mode 100644
index 255ab5f..d1c88da
--- a/external/espeak/dictionary.cpp
+++ b/external/espeak/dictionary.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -37,9 +37,8 @@
 int dictionary_skipwords;
 char dictionary_name[40];
 
-extern void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len);
+extern char *print_dictionary_flags(unsigned int *flags);
 extern char *DecodeRule(const char *group_chars, int group_length, char *rule, int control);
-int HashDictionary(const char *string);
 
 // accented characters which indicate (in some languages) the start of a separate syllable
 //static const unsigned short diereses_list[7] = {L'ä',L'ë',L'ï',L'ö',L'ü',L'ÿ',0};
@@ -49,51 +48,50 @@ static const unsigned short diereses_list[7] = {0xe4,0xeb,0xef,0xf6,0xfc,0xff,0}
 // used for checking for vowels (up to 0x259=schwa)
 #define N_REMOVE_ACCENT  0x25e
 static unsigned char remove_accent[N_REMOVE_ACCENT] = {
-	'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i',  // 0c0
-	'd','n','o','o','o','o','o', 0, 'o','u','u','u','u','y','t','s',  // 0d0
-	'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i',  // 0e0
-	'd','n','o','o','o','o','o', 0 ,'o','u','u','u','u','y','t','y',  // 0f0
-
-	'a','a','a','a','a','a','c','c','c','c','c','c','c','c','d','d',  // 100
-	'd','d','e','e','e','e','e','e','e','e','e','e','g','g','g','g',  // 110
-	'g','g','g','g','h','h','h','h','i','i','i','i','i','i','i','i',  // 120
-	'i','i','i','i','j','j','k','k','k','l','l','l','l','l','l','l',  // 130
-	'l','l','l','n','n','n','n','n','n','n','n','n','o','o','o','o',  // 140
-	'o','o','o','o','r','r','r','r','r','r','s','s','s','s','s','s',  // 150
-	's','s','t','t','t','t','t','t','u','u','u','u','u','u','u','u',  // 160
-	'u','u','u','u','w','w','y','y','y','z','z','z','z','z','z','s',  // 170
-	'b','b','b','b', 0,  0, 'o','c','c','d','d','d','d','d','e','e',  // 180
-	'e','f','f','g','g','h','i','i','k','k','l','l','m','n','n','o',  // 190
-	'o','o','o','o','p','p','y', 0,  0, 's','s','t','t','t','t','u',  // 1a0
-	'u','u','v','y','y','z','z','z','z','z','z','z', 0,  0,  0, 'w',  // 1b0
-	't','t','t','k','d','d','d','l','l','l','n','n','n','a','a','i',  // 1c0
-	'i','o','o','u','u','u','u','u','u','u','u','u','u','e','a','a',  // 1d0
-	'a','a','a','a','g','g','g','g','k','k','o','o','o','o','z','z',  // 1e0
-	'j','d','d','d','g','g','w','w','n','n','a','a','a','a','o','o',  // 1f0
-
-	'a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o',  // 200
-	'r','r','r','r','u','u','u','u','s','s','t','t','y','y','h','h',  // 210
-	'n','d','o','o','z','z','a','a','e','e','o','o','o','o','o','o',  // 220
-	'o','o','y','y','l','n','t','j','d','q','a','c','c','l','t','s',  // 230
-	'z', 0,  0, 'b','u','v','e','e','j','j','q','q','r','r','y','y',  // 240
-	'a','a','a','b','o','c','d','d','e','e','e','e','e','e'
-};
+'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i',  // 0c0
+'d','n','o','o','o','o','o', 0, 'o','u','u','u','u','y','t','s',  // 0d0
+'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i',  // 0e0
+'d','n','o','o','o','o','o', 0 ,'o','u','u','u','u','y','t','y',  // 0f0
+
+'a','a','a','a','a','a','c','c','c','c','c','c','c','c','d','d',  // 100
+'d','d','e','e','e','e','e','e','e','e','e','e','g','g','g','g',  // 110
+'g','g','g','g','h','h','h','h','i','i','i','i','i','i','i','i',  // 120
+'i','i','i','i','j','j','k','k','k','l','l','l','l','l','l','l',  // 130
+'l','l','l','n','n','n','n','n','n','n','n','n','o','o','o','o',  // 140
+'o','o','o','o','r','r','r','r','r','r','s','s','s','s','s','s',  // 150
+'s','s','t','t','t','t','t','t','u','u','u','u','u','u','u','u',  // 160
+'u','u','u','u','w','w','y','y','y','z','z','z','z','z','z','s',  // 170
+'b','b','b','b', 0,  0, 'o','c','c','d','d','d','d','d','e','e',  // 180
+'e','f','f','g','g','h','i','i','k','k','l','l','m','n','n','o',  // 190
+'o','o','o','o','p','p','y', 0,  0, 's','s','t','t','t','t','u',  // 1a0
+'u','u','v','y','y','z','z','z','z','z','z','z', 0,  0,  0, 'w',  // 1b0
+'t','t','t','k','d','d','d','l','l','l','n','n','n','a','a','i',  // 1c0
+'i','o','o','u','u','u','u','u','u','u','u','u','u','e','a','a',  // 1d0
+'a','a','a','a','g','g','g','g','k','k','o','o','o','o','z','z',  // 1e0
+'j','d','d','d','g','g','w','w','n','n','a','a','a','a','o','o',  // 1f0
+
+'a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o',  // 200
+'r','r','r','r','u','u','u','u','s','s','t','t','y','y','h','h',  // 210
+'n','d','o','o','z','z','a','a','e','e','o','o','o','o','o','o',  // 220
+'o','o','y','y','l','n','t','j','d','q','a','c','c','l','t','s',  // 230
+'z', 0,  0, 'b','u','v','e','e','j','j','q','q','r','r','y','y',  // 240
+'a','a','a','b','o','c','d','d','e','e','e','e','e','e' };
 
 
 
 
 
 void strncpy0(char *to,const char *from, int size)
-{//===================================================
-// strcpy with limit, ensures a zero terminator
+{//===============================================
+	// strcpy with limit, ensures a zero terminator
 	strncpy(to,from,size);
 	to[size-1] = 0;
 }
 
 
 int Reverse4Bytes(int word)
-{//==========================
-// reverse the order of bytes from little-endian to big-endian
+{//========================
+	// reverse the order of bytes from little-endian to big-endian
 #ifdef ARCH_BIG
 	int ix;
 	int word2 = 0;
@@ -111,7 +109,7 @@ int Reverse4Bytes(int word)
 
 
 int LookupMnem(MNEM_TAB *table, const char *string)
-{//==================================================
+{//================================================
 	while(table->mnem != NULL)
 	{
 		if(strcmp(string,table->mnem)==0)
@@ -130,9 +128,9 @@ int LookupMnem(MNEM_TAB *table, const char *string)
 
 static void InitGroups(Translator *tr)
 {//===================================
-// Called after dictionary 1 is loaded, to set up table of entry points for translation rule chains
-//	for single-letters and two-letter combinations
-
+/* Called after dictionary 1 is loaded, to set up table of entry points for translation rule chains
+	for single-letters and two-letter combinations
+*/
 
 	int  ix;
 	char *p;
@@ -206,11 +204,13 @@ static void InitGroups(Translator *tr)
 			{
 				tr->groups1[c] = p;
 			}
-			else if(len == 0)
+			else
+			if(len == 0)
 			{
 				tr->groups1[0] = p;
 			}
-			else if(c == 1)
+			else
+			if(c == 1)
 			{
 				// index by offset from letter base
 				tr->groups3[c2 - 1] = p;
@@ -237,7 +237,7 @@ static void InitGroups(Translator *tr)
 }  //  end of InitGroups
 
 #ifdef DATA_FROM_SOURCECODE_FILES
-int LoadDictionary(Translator *tr, const char *name, int /* no_error */)
+int LoadDictionary(Translator *tr, const char *name, int no_error)
 {
 	strcpy (dictionary_name, name);   // currently loaded dictionary name
 	strcpy (tr -> dictionary_name, name);
@@ -285,10 +285,6 @@ int LoadDictionary(Translator *tr, const char *name, int /* no_error */)
 		}
 		p++;   // skip over the zero which terminates the list for this hash value
 	}
-	if((tr->dict_min_size > 0) && (size < (unsigned int)tr->dict_min_size))
-	{
-		Melder_appendError (U"Full dictionary is not installed for '", Melder_peek8to32 (name), U"'");
-	}
 
 	return (0);
 }  //  end of LoadDictionary
@@ -344,7 +340,7 @@ int LoadDictionary(Translator *tr, const char *name, int no_error)
 	}
 
 	if((Reverse4Bytes(pw[0]) != N_HASH_DICT) ||
-			(length <= 0) || (length > 0x8000000))
+	   (length <= 0) || (length > 0x8000000))
 	{
 		fprintf(stderr,"Bad data: '%s' (%x length=%x)\n",fname,Reverse4Bytes(pw[0]),length);
 		return(2);
@@ -353,6 +349,10 @@ int LoadDictionary(Translator *tr, const char *name, int no_error)
 
 	// set up indices into data_dictrules
 	InitGroups(tr);
+	if(tr->groups1[0] == NULL)
+	{
+		fprintf(stderr,"Error in %s_rules, no default rule group\n",name);
+	}
 
 	// set up hash table for data_dictlist
 	p = &(tr->data_dictlist[8]);
@@ -367,11 +367,6 @@ int LoadDictionary(Translator *tr, const char *name, int no_error)
 		p++;   // skip over the zero which terminates the list for this hash value
 	}
 
-	if((tr->dict_min_size > 0) && (size < (unsigned int)tr->dict_min_size))
-	{
-		fprintf(stderr, "Full dictionary is not installed for '%s'\n", name);
-	}
-
 	return(0);
 }  //  end of LoadDictionary
 
@@ -383,18 +378,18 @@ int HashDictionary(const char *string)
 	This is used to access the dictionary_2 word-lookup dictionary
 */
 {
-	int  c;
+   int  c;
 	int  chars=0;
-	int  hash=0;
+   int  hash=0;
 
-	while((c = (*string++ & 0xff)) != 0)
-	{
-		hash = hash * 8 + c;
-		hash = (hash & 0x3ff) ^ (hash >> 8);    /* exclusive or */
+   while((c = (*string++ & 0xff)) != 0)
+   {
+      hash = hash * 8 + c;
+      hash = (hash & 0x3ff) ^ (hash >> 8);    /* exclusive or */
 		chars++;
-	}
+   }
 
-	return((hash+chars) & 0x3ff);  // a 10 bit hash code
+   return((hash+chars) & 0x3ff);  // a 10 bit hash code
 }   //  end of HashDictionary
 
 
@@ -406,8 +401,8 @@ int HashDictionary(const char *string)
 
 
 
-const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
-/******************************************************************/
+const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phoneme)
+/***************************************************************************/
 /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers,
    from 'p' up to next blank .
    Returns advanced 'p'
@@ -424,7 +419,7 @@ const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
 	unsigned int  mnemonic_word;
 
 	if(bad_phoneme != NULL)
-		*bad_phoneme = 0;
+		bad_phoneme[0] = 0;
 
 	// skip initial blanks
 	while(isspace(*p))
@@ -445,7 +440,7 @@ const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
 			if((c = p[1]) == '|')
 			{
 				// treat double || as a word-break symbol, drop through
-				// to the default case with c = '|'
+            // to the default case with c = '|'
 			}
 			else
 			{
@@ -470,11 +465,11 @@ const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
 				mnemonic_word = phoneme_tab[ix]->mnemonic;
 
 				while(((c = p[count]) > ' ') && (count < 4) &&
-						(c == ((mnemonic_word >> (count*8)) & 0xff)))
+										(c == ((mnemonic_word >> (count*8)) & 0xff)))
 					count++;
 
 				if((count > max) &&
-						((count == 4) || (((mnemonic_word >> (count*8)) & 0xff)==0)))
+					((count == 4) || (((mnemonic_word >> (count*8)) & 0xff)==0)))
 				{
 					max = count;
 					max_ph = phoneme_tab[ix]->code;
@@ -486,7 +481,8 @@ const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
 				// not recognised, report and ignore
 				if(bad_phoneme != NULL)
 				{
-					utf8_in(bad_phoneme, p);
+					bad_phoneme[0] = *p;
+					bad_phoneme[1] = 0;
 				}
 				*outptr++ = 0;
 				return(p+1);
@@ -531,15 +527,16 @@ const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
 
 
 void DecodePhonemes(const char *inptr, char *outptr)
-{//==================================================
+//==================================================
 // Translate from internal phoneme codes into phoneme mnemonics
+{
 	unsigned char phcode;
 	unsigned char c;
 	unsigned int  mnem;
 	PHONEME_TAB *ph;
 	static const char *stress_chars = "==,,'*  ";
 
-	sprintf(outptr,"* ");
+sprintf(outptr,"* ");
 	while((phcode = *inptr++) > 0)
 	{
 		if(phcode == 255)
@@ -576,27 +573,24 @@ void DecodePhonemes(const char *inptr, char *outptr)
 
 // using Kirschenbaum to IPA translation, ascii 0x20 to 0x7f
 unsigned short ipa1[96] = {
-	0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x29,0x27e,0x2b,0x2cc,0x2d,0x2e,0x2f,
-	0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294,
-	0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254,
-	0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f,
-	0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
-	0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
+0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f,
+0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294,
+0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254,
+0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
 };
 
-#define N_PHON_OUT  500  // realloc increment
-static char *phon_out_buf = NULL;   // passes the result of GetTranslatedPhonemeString()
-static int phon_out_size = 0;
-
 
-char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags)
-{//===================================================================================================
+char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa)
+{//=====================================================================================
 	int c;
 	int mnem;
 	int len;
 	int first;
 	int ix = 0;
 	char *p;
+	unsigned int ipa_control=0;  // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme
 	PHONEME_DATA phdata;
 
 	if(ph->code == phonEND_WORD)
@@ -628,28 +622,20 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int
 			InterpretPhoneme(NULL, 0, plist, &phdata, NULL);
 		}
 
-		p = phdata.ipa_string;
-		if(*p == 0x20)
-		{
-			// indicates no name for this phoneme
-			*phon_out = 0;
-			return(phon_out);
-		}
-		if((*p != 0) && ((*p & 0xff) < 0x20))
-		{
-			// name starts with a flags byte
-			if(flags != NULL)
-				*flags = *p;
-			p++;
-		}
-
-		len = strlen(p);
+		len = strlen(phdata.ipa_string);
 		if(len > 0)
 		{
-			strcpy(phon_out, p);
-			phon_out += len;
-			*phon_out = 0;
-			return(phon_out);
+			if((ipa_control = phdata.ipa_string[0]) > 0x20)
+			{
+				strcpy(&phon_out[ix], phdata.ipa_string);
+				ix += len;
+			}
+			if(ipa_control >= 0x20)
+			{
+				phon_out = &phon_out[ix];
+				*phon_out = 0;
+				return(phon_out);  // 0x20 = ignore phoneme
+			}
 		}
 	}
 
@@ -669,7 +655,7 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int
 				break;   // # is subscript-h, but only for consonants
 
 			// ignore digits after the first character
-			if(!first && IsDigit09(c))
+			if(!first && isdigit(c))
 				continue;
 
 			if((c >= 0x20) && (c < 128))
@@ -691,156 +677,96 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int
 
 
 
-const char *GetTranslatedPhonemeString(int phoneme_mode)
-{//=======================================================
-	/* Called after a clause has been translated into phonemes, in order
-	   to display the clause in phoneme mnemonic form.
-
-	   phoneme_mode  bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
-	                 bit  4:   0=eSpeak phoneme names, 1=IPA
-	*/
+void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
+{//=========================================================================
+/* Can be called after a clause has been translated into phonemes, in order
+   to display the clause in phoneme mnemonic form.
+*/
 
 	int  ix;
 	unsigned int  len;
+	unsigned int  max_len;
 	int  phon_out_ix=0;
 	int  stress;
-	int c;
-	char *p;
+	unsigned int c;
 	char *buf;
-	int count;
-	int flags;
-	int use_ipa;
-	int use_tie;
-	int separate_phonemes = 0;
 	char phon_buf[30];
-	char phon_buf2[30];
 	PHONEME_LIST *plist;
 
 	static const char *stress_chars = "==,,''";
-	static const int char_tie[] = {0x0361, 0x200d};  // combining-double-inverted-breve, zero-width-joiner
 
-	use_ipa = phoneme_mode & 0x10;
-	use_tie = phoneme_mode & 0x0f;
-
-	if(phon_out_buf == NULL)
+	if(phon_out != NULL)
 	{
-		phon_out_size = N_PHON_OUT;
-		if((phon_out_buf = (char *)realloc(phon_out_buf, phon_out_size)) == NULL)
+		for(ix=1; ix<(n_phoneme_list-2); ix++)
 		{
-			phon_out_size = 0;
-			return("");
-		}
-	}
-
-	if(use_tie >= 3)
-	{
-		// separate individual phonemes with underscores
-		separate_phonemes = '_';
-		use_tie = 0;
-	}
-
+			buf = phon_buf;
 
-	for(ix=1; ix<(n_phoneme_list-2); ix++)
-	{
-		buf = phon_buf;
-
-		plist = &phoneme_list[ix];
+			plist = &phoneme_list[ix];
+			if(plist->newword)
+				*buf++ = ' ';
 
-		WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags);
-		if(plist->newword)
-			*buf++ = ' ';
-		else
-		{
-			if((separate_phonemes != 0) && (ix > 1))
+			if(plist->synthflags & SFLAG_SYLLABLE)
 			{
-				utf8_in(&c, phon_buf2);
-				if((c < 0x2b0) || (c > 0x36f))  // not if the phoneme starts with a superscript letter
+				if((stress = plist->stresslevel) > 1)
 				{
-					*buf++ = separate_phonemes;
+					c = 0;
+					if(stress > 5) stress = 5;
+
+					if(use_ipa)
+					{
+						c = 0x2cc;  // ipa, secondary stress
+						if(stress > 3)
+							c = 0x02c8;  // ipa, primary stress
+					}
+					else
+					{
+						c = stress_chars[stress];
+					}
+
+					if(c != 0)
+					{
+						buf += utf8_out(c, buf);
+					}
 				}
 			}
-		}
 
-		if(plist->synthflags & SFLAG_SYLLABLE)
-		{
-			if((stress = plist->stresslevel) > 1)
-			{
-				c = 0;
-				if(stress > 5) stress = 5;
+			buf = WritePhMnemonic(buf, plist->ph, plist, use_ipa);
 
-				if(use_ipa)
+			if(plist->ph->code != phonSWITCH)
+			{
+				if(plist->synthflags & SFLAG_LENGTHEN)
 				{
-					c = 0x2cc;  // ipa, secondary stress
-					if(stress > 3)
-						c = 0x02c8;  // ipa, primary stress
+					buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa);
 				}
-				else
+				if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL))
 				{
-					c = stress_chars[stress];
+					// syllablic consonant
+					buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa);
 				}
-
-				if(c != 0)
+				if(plist->tone_ph > 0)
 				{
-					buf += utf8_out(c, buf);
-//						if(separate_phonemes)
-//							*buf++ = separate_phonemes;
+					buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa);
 				}
 			}
-		}
 
-		flags = 0;
-		count = 0;
-		for(p=phon_buf2; *p != 0;)
-		{
-			p += utf8_in(&c, p);
-			if(use_tie > 0)
+			len = buf - phon_buf;
+			max_len = (n_phon_out - phon_out_ix - 5);   // allow for " ..." and zero byte terminator
+			if(len > max_len)
 			{
-				// look for non-inital alphabetic character, but not diacritic, superscript etc.
-				if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c))
-				{
-					buf += utf8_out(char_tie[use_tie-1], buf);
-				}
-			}
-			buf += utf8_out(c, buf);
-			count++;
-		}
-
-		if(plist->ph->code != phonSWITCH)
-		{
-			if(plist->synthflags & SFLAG_LENGTHEN)
-			{
-				buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL);
-			}
-			if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL))
-			{
-				// syllablic consonant
-				buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL);
+				strcpy(&phon_buf[max_len], " ...");
+				len = max_len + 4;
 			}
-			if(plist->tone_ph > 0)
-			{
-				buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL);
-			}
-		}
+			phon_buf[len] = 0;
+			strcpy(&phon_out[phon_out_ix], phon_buf);
+			phon_out_ix += len;
 
-		len = buf - phon_buf;
-		if((phon_out_ix + len) >= phon_out_size)
-		{
-			// enlarge the phoneme buffer
-			phon_out_size = phon_out_ix + len + N_PHON_OUT;
-			if((phon_out_buf = (char *)realloc(phon_out_buf, phon_out_size)) == NULL)
+			if(len > max_len)
 			{
-				phon_out_size = 0;
-				return("");
+				break;
 			}
 		}
-
-		phon_buf[len] = 0;
-		strcpy(&phon_out_buf[phon_out_ix], phon_buf);
-		phon_out_ix += len;
+		phon_out[phon_out_ix] = 0;
 	}
-	phon_out_buf[phon_out_ix] = 0;
-
-	return(phon_out_buf);
 }  // end of GetTranslatedPhonemeString
 
 
@@ -854,7 +780,7 @@ const char *GetTranslatedPhonemeString(int phoneme_mode)
 
 static int IsLetterGroup(Translator *tr, char *word, int group, int pre)
 {//=====================================================================
-// match the word against a list of utf-8 strings
+	// match the word against a list of utf-8 strings
 	char *p;
 	char *w;
 	int  len=0;
@@ -874,7 +800,7 @@ static int IsLetterGroup(Translator *tr, char *word, int group, int pre)
 		{
 			w = word;
 		}
-		while((*p == *w) && (*w != 0))
+		while(*p == *w)
 		{
 			w++;
 			p++;
@@ -909,7 +835,7 @@ static int IsLetter(Translator *tr, int letter, int group)
 	if(tr->letter_bits_offset > 0)
 	{
 		if(((letter2 = (letter - tr->letter_bits_offset)) > 0) && (letter2 < 0x100))
-			letter = letter2;
+				letter = letter2;
 		else
 			return(0);
 	}
@@ -953,18 +879,17 @@ static int Unpronouncable2(Translator *tr, char *word)
 
 int Unpronouncable(Translator *tr, char *word, int posn)
 {//=====================================================
-	/* Determines whether a word in 'unpronouncable', i.e. whether it should
-		be spoken as individual letters.
+/* Determines whether a word in 'unpronouncable', i.e. whether it should
+	be spoken as individual letters.
 
-		This function may be language specific. This is a generic version.
-	*/
+	This function may be language specific. This is a generic version.
+*/
 
 	int  c;
 	int  c1=0;
 	int  vowel_posn=9;
 	int  index;
 	int  count;
-	ALPHABET *alphabet;
 
 	utf8_in(&c,word);
 	if((tr->letter_bits_offset > 0) && (c < 0x241))
@@ -973,12 +898,6 @@ int Unpronouncable(Translator *tr, char *word, int posn)
 		return(0);  // so we can re-translate the word as English
 	}
 
-	if(((alphabet = AlphabetFromChar(c)) != NULL)  && (alphabet->offset != tr->letter_bits_offset))
-	{
-		// Character is not in our alphabet
-		return(0);
-	}
-
 	if(tr->langopts.param[LOPT_UNPRONOUNCABLE] == 1)
 		return(0);
 
@@ -998,13 +917,7 @@ int Unpronouncable(Translator *tr, char *word, int posn)
 
 		if(count==0)
 			c1 = c;
-
-		if((c == '\'') && (tr->langopts.param[LOPT_UNPRONOUNCABLE] == 3))
-		{
-			// don't count apostrophe
-		}
-		else
-			count++;
+		count++;
 
 		if(IsVowel(tr, c))
 		{
@@ -1012,7 +925,7 @@ int Unpronouncable(Translator *tr, char *word, int posn)
 			break;
 		}
 
-		if((c != '\'') && !iswalpha2(c))
+		if((c != '\'') && !iswalpha(c))
 			return(0);
 	}
 
@@ -1028,7 +941,7 @@ int Unpronouncable(Translator *tr, char *word, int posn)
 	if(vowel_posn > (tr->langopts.max_initial_consonants+1))
 		return(1);  // no vowel, or no vowel in first few letters
 
-	return(0);
+return(0);
 
 }   /* end of Unpronounceable */
 
@@ -1041,7 +954,7 @@ int Unpronouncable(Translator *tr, char *word, int posn)
 
 
 
-static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *vowel_stress, int *vowel_count, int *stressed_syllable, int control)
+static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *vowel_stress, int &vowel_count, int &stressed_syllable, int control)
 {//=================================================================================================================================================
 // control = 1, set stress to 1 for forced unstressed vowels
 	unsigned char phcode;
@@ -1068,7 +981,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 			{
 				/* primary stress on preceeding vowel */
 				j = count - 1;
-				while((j > 0) && (*stressed_syllable == 0) && (vowel_stress[j] < 4))
+				while((j > 0) && (stressed_syllable == 0) && (vowel_stress[j] < 4))
 				{
 					if((vowel_stress[j] != 0) && (vowel_stress[j] != 1))
 					{
@@ -1094,7 +1007,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 			}
 			else
 			{
-				if((ph->std_length < 4) || (*stressed_syllable == 0))
+				if((ph->std_length < 4) || (stressed_syllable == 0))
 				{
 					stress = ph->std_length;
 
@@ -1120,7 +1033,8 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 			count++;
 			stress = -1;
 		}
-		else if(phcode == phonSYLLABIC)
+		else
+		if(phcode == phonSYLLABIC)
 		{
 			// previous consonant phoneme is syllablic
 			vowel_stress[count] = (char)stress;
@@ -1134,14 +1048,14 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 	*ph_out = 0;
 
 	/* has the position of the primary stress been specified by $1, $2, etc? */
-	if(*stressed_syllable > 0)
+	if(stressed_syllable > 0)
 	{
-		if(*stressed_syllable >= count)
-			*stressed_syllable = count-1;   // the final syllable
+		if(stressed_syllable >= count)
+			stressed_syllable = count-1;   // the final syllable
 
-		vowel_stress[*stressed_syllable] = 4;
+		vowel_stress[stressed_syllable] = 4;
 		max_stress = 4;
-		primary_posn = *stressed_syllable;
+		primary_posn = stressed_syllable;
 	}
 
 	if(max_stress == 5)
@@ -1151,7 +1065,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 		{
 			if(vowel_stress[ix] == 4)
 			{
-				if(tr->langopts.stress_flags & S_PRIORITY_STRESS)
+				if(tr->langopts.stress_flags & 0x20000)
 					vowel_stress[ix] = 1;
 				else
 					vowel_stress[ix] = 3;
@@ -1166,16 +1080,15 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
 		max_stress = 4;
 	}
 
-	*stressed_syllable = primary_posn;
-	*vowel_count = count;
+	stressed_syllable = primary_posn;
+	vowel_count = count;
 	return(max_stress);
 }  // end of GetVowelStress
 
 
 
 static char stress_phonemes[] = {phonSTRESS_D, phonSTRESS_U, phonSTRESS_2, phonSTRESS_3,
-								 phonSTRESS_P, phonSTRESS_P2, phonSTRESS_TONIC
-								};
+		phonSTRESS_P, phonSTRESS_P2, phonSTRESS_TONIC};
 
 
 void ChangeWordStress(Translator *tr, char *word, int new_stress)
@@ -1189,7 +1102,7 @@ void ChangeWordStress(Translator *tr, char *word, int new_stress)
 	signed char vowel_stress[N_WORD_PHONEMES/2];
 
 	strcpy((char *)phonetic,word);
-	max_stress = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 0);
+	max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 0);
 
 	if(new_stress >= 4)
 	{
@@ -1239,8 +1152,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
    'output' is used for input and output
 
    'dictionary_flags' has bits 0-3   position of stressed vowel (if > 0)
-									 or unstressed (if == 7) or syllables 1 and 2 (if == 6)
-						  bits 8...  dictionary flags
+                                     or unstressed (if == 7) or syllables 1 and 2 (if == 6)
+                          bits 8...  dictionary flags
 
    If 'tonic' is set (>= 0), replace highest stress by this value.
 
@@ -1263,13 +1176,13 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 	int final_ph;
 	int final_ph2;
 	int mnem;
+	int mnem2;
 	int post_tonic;   // currently not used
 	int opt_length;
 	int done;
 	int stressflags;
 	int dflags = 0;
 	int first_primary;
-	int long_vowel;
 
 	signed char vowel_stress[N_WORD_PHONEMES/2];
 	char syllable_weight[N_WORD_PHONEMES/2];
@@ -1316,9 +1229,15 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		unstressed_word = 1;
 	}
 
-	max_stress = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 1);
+	max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1);
 	if((max_stress < 0) && dictionary_flags)
 	{
+		if((tr->langopts.stress_flags & 1) && (vowel_count == 2))
+		{
+			// lang=fr: don't stress monosyllables except at end-of-clause
+			vowel_stress[1] = 0;
+			dictionary_flags[0] |= FLAG_STRESS_END2;
+		}
 		max_stress = 0;
 	}
 
@@ -1353,7 +1272,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		}
 	}
 
-
 	switch(tr->langopts.stress_rule)
 	{
 	case 8:
@@ -1397,40 +1315,33 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 			{
 				stressed_syllable = vowel_count - 2;
 
-				if(stressflags & (S_FINAL_SPANISH | S_FINAL_STRESS_C))
+				if(stressflags & 0x300)
 				{
 					// LANG=Spanish, stress on last vowel if the word ends in a consonant other than 'n' or 's'
 					if(phoneme_tab[final_ph]->type != phVOWEL)
 					{
-						if(stressflags & S_FINAL_STRESS_C)
+						if(stressflags & 0x100)
 						{
 							stressed_syllable = vowel_count - 1;
 						}
 						else
 						{
 							mnem = phoneme_tab[final_ph]->mnemonic;
+							mnem2 = phoneme_tab[final_ph2]->mnemonic;
 
-							if(tr->translator_name == L('a','n'))
+							if((mnem == 's') && (phoneme_tab[final_ph2]->type == phNASAL))
 							{
-								if(((mnem != 's') && (mnem !='n')) || phoneme_tab[final_ph2]->type != phVOWEL)
-									stressed_syllable = vowel_count - 1;   // stress on last syllable
+								// -ns  stress remains on penultimate syllable
 							}
 							else
+							if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL))
 							{
-								if((mnem == 's') && (phoneme_tab[final_ph2]->type == phNASAL))
-								{
-									// -ns  stress remains on penultimate syllable
-								}
-								else if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL))
-								{
-									stressed_syllable = vowel_count - 1;
-								}
+								stressed_syllable = vowel_count - 1;
 							}
 						}
 					}
 				}
-
-				if(stressflags & S_FINAL_LONG)
+				if(stressflags & 0x80000)
 				{
 					// stress on last syllable if it has a long vowel, but previous syllable has a short vowel
 					if(vowel_length[vowel_count - 1] > vowel_length[vowel_count - 2])
@@ -1463,7 +1374,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		}
 		break;
 
-	case 3:
+   case 3:
 		// stress on last vowel
 		if(stressed_syllable == 0)
 		{
@@ -1514,7 +1425,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 			{
 				if(phoneme_tab[final_ph]->type == phVOWEL)
 					stressed_syllable = guess_ru_v[vowel_count];
-				else if(phoneme_tab[final_ph]->type == phSTOP)
+				else
+				if(phoneme_tab[final_ph]->type == phSTOP)
 					stressed_syllable = guess_ru_t[vowel_count];
 				else
 					stressed_syllable = guess_ru[vowel_count];
@@ -1550,7 +1462,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 				// the only double=heavy syllable is the final syllable, so stress this
 				stressed_syllable = vowel_count-1;
 			}
-			else if(max_weight <= 0)
+			else
+			if(max_weight <= 0)
 			{
 				// all syllables, exclusing the last, are light. Stress the first syllable
 				stressed_syllable = 1;
@@ -1585,50 +1498,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 				vowel_stress[ix] = 4;
 		}
 		break;
-
-	case 12:  // LANG=kl (Greenlandic)
-		long_vowel = 0;
-		for(ix=1; ix < vowel_count; ix++)
-		{
-			if(vowel_stress[ix] == 4)
-				vowel_stress[ix] = 3;    // change marked stress (consonant clusters) to secondary (except the last)
-
-			if(vowel_length[ix] > 0)
-			{
-				long_vowel = ix;
-				vowel_stress[ix] = 3;    // give secondary stress to all long vowels
-			}
-		}
-
-		// 'stressed_syllable' gives the last marked stress
-		if(stressed_syllable == 0)
-		{
-			// no marked stress, choose the last long vowel
-			if(long_vowel > 0)
-				stressed_syllable = long_vowel;
-			else
-			{
-				// no long vowels or consonant clusters
-				if(vowel_count > 5)
-					stressed_syllable = vowel_count - 3;  // more than 4 syllables
-				else
-					stressed_syllable = vowel_count - 1;
-			}
-		}
-		vowel_stress[stressed_syllable] = 4;
-		max_stress = 4;
-		break;
-
-	case 13:  // LANG=ml, 1st unless 1st vowel is short and 2nd is long
-		if(stressed_syllable == 0)
-		{
-			stressed_syllable = 1;
-			if((vowel_length[1] == 0) && (vowel_count > 2) && (vowel_length[2] > 0))
-				stressed_syllable = 2;
-			vowel_stress[stressed_syllable] = 4;
-			max_stress = 4;
-		}
-		break;
 	}
 
 	/* now guess the complete stress pattern */
@@ -1638,24 +1507,21 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		stress = 3;
 
 
-	if(unstressed_word == 0)
+	if((stressflags & 0x1000) && (vowel_count == 2))
 	{
-		if((stressflags & S_2_SYL_2) && (vowel_count == 3))
-		{
-			// Two syllable word, if one syllable has primary stress, then give the other secondary stress
-			if(vowel_stress[1] == 4)
-				vowel_stress[2] = 3;
-			if(vowel_stress[2] == 4)
-				vowel_stress[1] = 3;
-		}
+		// Two syllable word, if one syllable has primary stress, then give the other secondary stress
+		if(vowel_stress[1] == 4)
+			vowel_stress[2] = 3;
+		if(vowel_stress[2] == 4)
+			vowel_stress[1] = 3;
+	}
 
-		if((stressflags & S_INITIAL_2) && (vowel_stress[1] < 0))
+	if((stressflags & 0x2000) && (vowel_stress[1] < 0))
+	{
+		// If there is only one syllable before the primary stress, give it a secondary stress
+		if((vowel_count > 2) && (vowel_stress[2] >= 4))
 		{
-			// If there is only one syllable before the primary stress, give it a secondary stress
-			if((vowel_count > 3) && (vowel_stress[2] >= 4))
-			{
-				vowel_stress[1] = 3;
-			}
+			vowel_stress[1] = 3;
 		}
 	}
 
@@ -1665,24 +1531,26 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 	{
 		if(vowel_stress[v] < 0)
 		{
-			if((stressflags & S_FINAL_NO_2) && (stress < 4) && (v == vowel_count-1))
+			if((stressflags & 0x10) && (stress < 4) && (v == vowel_count-1))
 			{
 				// flag: don't give secondary stress to final vowel
 			}
-			else if((stressflags & 0x8000) && (done == 0))
+			else
+			if((stressflags & 0x8000) && (done == 0))
 			{
 				vowel_stress[v] = (char)stress;
 				done =1;
 				stress = 3;  /* use secondary stress for remaining syllables */
 			}
-			else if((vowel_stress[v-1] <= 1) && ((vowel_stress[v+1] <= 1) || ((stress == 4) && (vowel_stress[v+1] <= 2))))
+			else
+			if((vowel_stress[v-1] <= 1) && ((vowel_stress[v+1] <= 1) || ((stress == 4) && (vowel_stress[v+1] <= 2))))
 			{
 				/* trochaic: give stress to vowel surrounded by unstressed vowels */
 
-				if((stress == 3) && (stressflags & S_NO_AUTO_2))
+				if((stress == 3) && (stressflags & 0x20))
 					continue;      // don't use secondary stress
 
-				if((v > 1) && (stressflags & S_2_TO_HEAVY) && (syllable_weight[v]==0) && (syllable_weight[v+1]>0))
+				if((v > 1) && (stressflags & 0x40) && (syllable_weight[v]==0) && (syllable_weight[v+1]>0))
 				{
 					// don't put secondary stress on a light syllable which is followed by a heavy syllable
 					continue;
@@ -1700,7 +1568,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		{
 			if(first_primary == 0)
 				first_primary = v;
-			else if(stressflags & S_FIRST_PRIMARY)
+			else
+			if(stressflags & S_FIRST_PRIMARY)
 			{
 				// reduce primary stresses after the first to secondary
 				vowel_stress[v] = 3;
@@ -1745,11 +1614,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 	if(!(control & 1) && ((ph = phoneme_tab[*p]) != NULL))
 	{
 
-		while((ph->type == phSTRESS) || (*p == phonEND_WORD))
-		{
-			p++;
-			ph = phoneme_tab[p[0]];
-		}
+		if(ph->type == phSTRESS)
+			ph = phoneme_tab[p[1]];
 
 #ifdef deleted
 		int gap = tr->langopts.word_gap & 0x700;
@@ -1760,19 +1626,19 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		}
 		else
 #endif
-			if((tr->langopts.vowel_pause & 0x30) && (ph->type == phVOWEL))
-			{
-				// word starts with a vowel
+		if((tr->langopts.vowel_pause & 0x30) && (ph->type == phVOWEL))
+		{
+			// word starts with a vowel
 
-				if((tr->langopts.vowel_pause & 0x20) && (vowel_stress[1] >= 4))
-				{
+			if((tr->langopts.vowel_pause & 0x20) && (vowel_stress[1] >= 4))
+			{
 					*output++ = phonPAUSE_NOLINK;   // not to be replaced by link
-				}
-				else
-				{
-					*output++ = phonPAUSE_VSHORT;     // break, but no pause
-				}
 			}
+			else
+			{
+				*output++ = phonPAUSE_VSHORT;     // break, but no pause
+			}
+		}
 	}
 
 	p = phonetic;
@@ -1789,7 +1655,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 		{
 			tr->prev_last_stress = 0;
 		}
-		else if(((ph->type == phVOWEL) && !(ph->phflags & phNONSYLLABIC)) || (*p == phonSYLLABIC))
+		else
+		if(((ph->type == phVOWEL) && !(ph->phflags & phNONSYLLABIC)) || (*p == phonSYLLABIC))
 		{
 			// a vowel, or a consonant followed by a syllabic consonant marker
 
@@ -1801,17 +1668,19 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 
 			if(v_stress <= 1)
 			{
-				if((v > 1) && (max_stress >= 2) && (stressflags & S_FINAL_DIM) && (v == (vowel_count-1)))
+				if((v > 1) && (max_stress >= 2) && (stressflags & 4) && (v == (vowel_count-1)))
 				{
 					// option: mark unstressed final syllable as diminished
 					v_stress = 0;
 				}
-				else if((stressflags & S_NO_DIM) || (v == 1) || (v == (vowel_count-1)))
+				else
+				if((stressflags & 2) || (v == 1) || (v == (vowel_count-1)))
 				{
 					// first or last syllable, or option 'don't set diminished stress'
 					v_stress = 1;
 				}
-				else if((v == (vowel_count-2)) && (vowel_stress[vowel_count-1] <= 1))
+				else
+				if((v == (vowel_count-2)) && (vowel_stress[vowel_count-1] <= 1))
 				{
 					// penultimate syllable, followed by an unstressed final syllable
 					v_stress = 1;
@@ -1819,7 +1688,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 				else
 				{
 					// unstressed syllable within a word
-					if((vowel_stress[v-1] < 0) || ((stressflags & S_MID_DIM) == 0))
+					if((vowel_stress[v-1] < 0) || ((stressflags & 0x10000) == 0))
 					{
 						v_stress = 0;      /* change to 0 (diminished stress) */
 						vowel_stress[v] = v_stress;
@@ -1847,7 +1716,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
 					if(v != max_stress_posn)
 						shorten = 1;
 				}
-				else if(v_stress < 4)
+				else
+				if(v_stress < 4)
 				{
 					// only allow lengthen indicator if stress >= 4.
 					shorten = 1;
@@ -1923,7 +1793,7 @@ void AppendPhonemes(Translator *tr, char *string, int size, const char *ph)
 			if(phoneme_tab[c]->type == phVOWEL)
 			{
 				if(((phoneme_tab[c]->phflags & phUNSTRESSED) == 0) &&
-						(unstress_mark == 0))
+					(unstress_mark == 0))
 				{
 					tr->word_stressed_count++;
 				}
@@ -1983,7 +1853,6 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 	int add_points;
 	int command;
 	int check_atstart;
-	unsigned int *flags;
 
 	MatchRecord match;
 	static MatchRecord best;
@@ -2192,7 +2061,8 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 						add_points = (20-distance_right);
 						post_ptr += letter_xbytes;
 					}
-					else if(tr->langopts.tone_numbers)
+					else
+					if(tr->langopts.tone_numbers)
 					{
 						// also match if there is no digit
 						add_points = (20-distance_right);
@@ -2203,7 +2073,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 					break;
 
 				case RULE_NONALPHA:
-					if(!iswalpha2(letter_w))
+					if(!iswalpha(letter_w))
 					{
 						add_points = (21-distance_right);
 						post_ptr += letter_xbytes;
@@ -2221,18 +2091,12 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 
 				case RULE_DOLLAR:
 					command = *rule++;
-					if(command == DOLLAR_UNPR)
+					if(command == 0x01)
 					{
 						match.end_type = SUFX_UNPRON;    // $unpron
 					}
-					else if(command == DOLLAR_NOPREFIX)   // $noprefix
-					{
-						if(word_flags & FLAG_PREFIX_REMOVED)
-							failed = 1;             // a prefix has been removed
-						else
-							add_points = 1;
-					}
-					else if((command & 0xf0) == 0x10)
+					else
+					if((command & 0xf0) == 0x10)
 					{
 						// $w_alt
 						if(dict_flags & (1 << (BITNUM_FLAG_ALT + (command & 0xf))))
@@ -2240,20 +2104,17 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 						else
 							failed = 1;
 					}
-					else if(((command & 0xf0) == 0x20) || (command == DOLLAR_LIST))
+					else
+					if((command & 0xf0) == 0x20)
 					{
-						// $list or $p_alt
+						// $p_alt
 						// make a copy of the word up to the post-match characters
 						ix = *word - word_start + consumed + group_length + 1;
 						memcpy(word_buf, word_start-1, ix);
 						word_buf[ix] = ' ';
 						word_buf[ix+1] = 0;
-						LookupFlags(tr, &word_buf[1], &flags);
 
-						if((command == DOLLAR_LIST) && (flags[0] & FLAG_FOUND) && !(flags[1] & FLAG_ONLY))
-							add_points = 23;
-						else
-						if(flags[0] & (1 << (BITNUM_FLAG_ALT + (command & 0xf))))
+						if(LookupFlags(tr, &word_buf[1]) & (1 << (BITNUM_FLAG_ALT + (command & 0xf))))
 							add_points = 23;
 						else
 							failed = 1;
@@ -2270,72 +2131,72 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 					break;
 
 				case RULE_SYLLABLE:
-				{
-					/* more than specified number of vowel letters to the right */
-					char *p = post_ptr + letter_xbytes;
-					int vowel_count=0;
-
-					syllable_count = 1;
-					while(*rule == RULE_SYLLABLE)
-					{
-						rule++;
-						syllable_count+=1;   /* number of syllables to match */
-					}
-					vowel = 0;
-					while(letter_w != RULE_SPACE)
 					{
-						if((vowel==0) && IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+						/* more than specified number of vowel letters to the right */
+						char *p = post_ptr + letter_xbytes;
+						int vowel_count=0;
+
+						syllable_count = 1;
+						while(*rule == RULE_SYLLABLE)
+						{
+							rule++;
+							syllable_count+=1;   /* number of syllables to match */
+						}
+						vowel = 0;
+						while(letter_w != RULE_SPACE)
 						{
-							// this is counting vowels which are separated by non-vowel letters
-							vowel_count++;
+							if((vowel==0) && IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+							{
+								// this is counting vowels which are separated by non-vowel letters
+								vowel_count++;
+							}
+							vowel = IsLetter(tr, letter_w,LETTERGP_VOWEL2);
+							p += utf8_in(&letter_w,p);
 						}
-						vowel = IsLetter(tr, letter_w,LETTERGP_VOWEL2);
-						p += utf8_in(&letter_w,p);
+						if(syllable_count <= vowel_count)
+							add_points = (18+syllable_count-distance_right);
+						else
+							failed = 1;
 					}
-					if(syllable_count <= vowel_count)
-						add_points = (18+syllable_count-distance_right);
-					else
-						failed = 1;
-				}
-				break;
+					break;
 
 				case RULE_NOVOWELS:
-				{
-					char *p = post_ptr + letter_xbytes;
-					while(letter_w != RULE_SPACE)
 					{
-						if(IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+						char *p = post_ptr + letter_xbytes;
+						while(letter_w != RULE_SPACE)
 						{
-							failed = 1;
-							break;
+							if(IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+							{
+								failed = 1;
+								break;
+							}
+							p += utf8_in(&letter_w,p);
 						}
-						p += utf8_in(&letter_w,p);
+						if(!failed)
+							add_points = (19-distance_right);
 					}
-					if(!failed)
-						add_points = (19-distance_right);
-				}
-				break;
+					break;
 
 				case RULE_SKIPCHARS:
-				{
-					// Used for lang=Tamil, used to match on the next word after an unknown word ending
-					// only look until the end of the word (including the end-of-word marker)
-					// Jx  means 'skip characters until x', where 'x' may be '_' for 'end of word'
-					char *p = post_ptr + letter_xbytes;
-					char *p2 = p;
-					int rule_w;            // skip characters until this
-					utf8_in(&rule_w,rule);
-					while((letter_w != rule_w) && (letter_w != RULE_SPACE))
-					{
-						p2 = p;
-						p += utf8_in(&letter_w,p);
-					}
-					if(letter_w == rule_w)
 					{
-						post_ptr = p2;
+						// Used for lang=Tamil, used to match on the next word after an unknown word ending
+						// only look until the end of the word (including the end-of-word marker)
+						// Jx  means 'skip characters until x', where 'x' may be '_' for 'end of word'
+						char *p = post_ptr + letter_xbytes;
+						char *p2 = p;
+						int rule_w;            // skip characters until this
+						utf8_in(&rule_w,rule);
+						while((letter_w != rule_w) && (letter_w != RULE_SPACE))
+						{
+							p2 = p;
+							p += utf8_in(&letter_w,p);
+						}
+						if(letter_w == rule_w)
+						{
+							post_ptr = p2;
+						}
 					}
-				}
-				break;
+					break;
 
 				case RULE_INC_SCORE:
 					add_points = 20;      // force an increase in points
@@ -2354,20 +2215,20 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 					break;
 
 				case RULE_ENDING:
-				{
-					int end_type;
-					// next 3 bytes are a (non-zero) ending type. 2 bytes of flags + suffix length
-					end_type = (rule[0] << 16) + ((rule[1] & 0x7f) << 8) + (rule[2] & 0x7f);
-
-					if((tr->word_vowel_count == 0) && !(end_type & SUFX_P) && (tr->langopts.param[LOPT_SUFFIX] & 1))
-						failed = 1;	// don't match a suffix rule if there are no previous syllables (needed for lang=tr).
-					else
 					{
-						match.end_type = end_type;
-						rule += 3;
+						int end_type;
+						// next 3 bytes are a (non-zero) ending type. 2 bytes of flags + suffix length
+						end_type = (rule[0] << 16) + ((rule[1] & 0x7f) << 8) + (rule[2] & 0x7f);
+
+						if((tr->word_vowel_count == 0) && !(end_type & SUFX_P) && (tr->langopts.param[LOPT_SUFFIX] & 1))
+							failed = 1;	// don't match a suffix rule if there are no previous syllables (needed for lang=tr).
+						else
+						{
+							match.end_type = end_type;
+							rule += 3;
+						}
 					}
-				}
-				break;
+					break;
 
 				case RULE_NO_SUFFIX:
 					if(word_flags & FLAG_SUFFIX_REMOVED)
@@ -2458,7 +2319,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 					break;
 
 				case RULE_NONALPHA:
-					if(!iswalpha2(letter_w))
+					if(!iswalpha(letter_w))
 					{
 						add_points = (21-distance_right);
 						pre_ptr -= letter_xbytes;
@@ -2467,28 +2328,6 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 						failed = 1;
 					break;
 
-				case RULE_DOLLAR:
-					command = *rule++;
-					if((command==DOLLAR_LIST) || ((command & 0xf0) == 0x20))
-					{
-						// $list or $p_alt
-						// make a copy of the word up to the current character
-						ix = *word - word_start + 1;
-						memcpy(word_buf, word_start-1, ix);
-						word_buf[ix] = ' ';
-						word_buf[ix+1] = 0;
-						LookupFlags(tr, &word_buf[1], &flags);
-
-						if((command==DOLLAR_LIST) && (flags[0] & FLAG_FOUND) && !(flags[1] & FLAG_ONLY))
-							add_points = 23;
-						else
-						if(flags[0] & (1 << (BITNUM_FLAG_ALT + (command & 0xf))))
-							add_points = 23;
-						else
-							failed = 1;
-					}
-					break;
-
 				case RULE_SYLLABLE:
 					/* more than specified number of vowels to the left */
 					syllable_count = 1;
@@ -2511,21 +2350,21 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 					break;
 
 				case RULE_NOVOWELS:
-				{
-					char *p = pre_ptr - letter_xbytes - 1;
-					while(letter_w != RULE_SPACE)
 					{
-						if(IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+						char *p = pre_ptr - letter_xbytes - 1;
+						while(letter_w != RULE_SPACE)
 						{
-							failed = 1;
-							break;
+							if(IsLetter(tr, letter_w,LETTERGP_VOWEL2))
+							{
+								failed = 1;
+								break;
+							}
+							p -= utf8_in2(&letter_w,p,1);
 						}
-						p -= utf8_in2(&letter_w,p,1);
+						if(!failed)
+							add_points = 3;
 					}
-					if(!failed)
-						add_points = 3;
-				}
-				break;
+					break;
 
 				case RULE_IFVERB:
 					if(tr->expect_verb)
@@ -2646,8 +2485,8 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
 
 int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, char *end_phonemes, int word_flags, unsigned int *dict_flags)
 {//=====================================================================================================================================
-	/* Translate a word bounded by space characters
-	   Append the result to 'phonemes' and any standard prefix/suffix in 'end_phonemes' */
+/* Translate a word bounded by space characters
+   Append the result to 'phonemes' and any standard prefix/suffix in 'end_phonemes' */
 
 	unsigned char  c, c2;
 	unsigned int  c12;
@@ -2663,7 +2502,6 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 	int  ix;
 	unsigned int  digit_count=0;
 	char *p;
-	ALPHABET *alphabet;
 	int  dict_flags0=0;
 	MatchRecord match1;
 	MatchRecord match2;
@@ -2720,8 +2558,8 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 		if(IsDigit(wc) && ((tr->langopts.tone_numbers == 0) || !any_alpha))
 		{
 			// lookup the number in *_list not *_rules
-			char string[8];
-			char buf[40];
+	char string[8];
+	char buf[40];
 			string[0] = '_';
 			memcpy(&string[1],p,wc_bytes);
 			string[1+wc_bytes] = 0;
@@ -2793,11 +2631,10 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 					if((match1.points == 0) && ((option_sayas & 0x10) == 0))
 					{
 						n = utf8_in(&letter,p-1)-1;
-
 						if(tr->letter_bits_offset > 0)
 						{
 							// not a Latin alphabet, switch to the default Latin alphabet language
-							if((letter <= 0x241) && iswalpha2(letter))
+							if((letter <= 0x241) && iswalpha(letter))
 							{
 								sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language);
 								return(0);
@@ -2851,20 +2688,15 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 								continue;  // start again at the beginning of the word
 							}
 						}
-
-						if(((alphabet = AlphabetFromChar(letter)) != NULL)  && (alphabet->offset != tr->letter_bits_offset))
+						else
+						if((letter >= 0x3200) && (letter < 0xa700) && (end_phonemes != NULL))
 						{
-							if(tr->langopts.alt_alphabet == alphabet->offset)
-							{
-								sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(tr->langopts.alt_alphabet_lang));
-								return(0);
-							}
-							if(alphabet->flags & AL_WORDS)
-							{
-								// switch to the nominated language for this alphabet
-								sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(alphabet->language));
-								return(0);
-							}
+							// ideograms
+							// outside the range of the accent table, speak the unknown symbol sound
+							Lookup(tr, "_??", ph_buf);
+							match1.phonemes = ph_buf;
+							match1.points = 1;
+							p += (wc_bytes-1);
 						}
 					}
 				}
@@ -2875,7 +2707,8 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 					{
 						// combining accent inside a word, ignore
 					}
-					else if(IsAlpha(wc))
+					else
+					if(IsAlpha(wc))
 					{
 						if((any_alpha > 1) || (p[wc_bytes-1] > ' '))
 						{
@@ -2912,12 +2745,6 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 			if(word_flags & FLAG_UNPRON_TEST)
 				return(match1.end_type | 1);
 
-#ifdef deleted
-// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
-			if((match1.end_type & SUFX_UNPRON) && !(word_flags & FLAG_SUFFIX_REMOVED))
-				return(match1.end_type);
-#endif
-
 			if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0))
 			{
 				// an instruction to switch language, return immediately so we can re-translate
@@ -2952,6 +2779,8 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 		}
 	}
 
+	// any language specific changes ?
+	ApplySpecialAttribute(tr,phonemes,dict_flags0);
 	memcpy(p_start,word_copy,strlen(word_copy));
 
 	return(0);
@@ -2960,7 +2789,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
 
 void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags)
 {//========================================================================
-// apply after the translation is complete
+	// apply after the translation is complete
 	int ix;
 	int len;
 	char *p;
@@ -2995,6 +2824,46 @@ void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags)
 }  // end of ApplySpecialAttribute2
 
 
+void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags)
+{//=======================================================================
+// Amend the translated phonemes according to an attribute which is specific for the language.
+	int len;
+	char *p_end;
+
+	if((dict_flags & (FLAG_ALT_TRANS | FLAG_ALT2_TRANS)) == 0)
+		return;
+
+	len = strlen(phonemes);
+	p_end = &phonemes[len-1];
+
+	switch(tr->translator_name)
+	{
+#ifdef deleted
+// this is now done in de_rules
+	case L('d','e'):
+		if(p_end[0] == PhonemeCode2('i',':'))
+		{
+			// words ends in ['i:], change to [=I@]
+			p_end[-1] = phonSTRESS_PREV;
+			p_end[0] = PhonemeCode('I');
+			p_end[1] = phonSCHWA;
+			p_end[2] = 0;
+		}
+		break;
+#endif
+
+	case L('r','o'):
+		if(p_end[0] == PhonemeCode('j'))
+		{
+			// word end in [j], change to ['i]
+			p_end[0] = phonSTRESS_P;
+			p_end[1] = PhonemeCode('i');
+			p_end[2] = 0;
+		}
+		break;
+	}
+}  // end of ApplySpecialAttribute
+
 
 
 //=============================================================================================
@@ -3014,58 +2883,34 @@ int TransposeAlphabet(Translator *tr, char *text)
 	int offset;
 	int min;
 	int max;
-	const char *map;
 	char *p = text;
-	char *p2;
+	char *p2 = text;
 	int all_alpha=1;
 	int bits;
 	int acc;
 	int pairs_start;
 	const short *pairs_list;
-	int bufix;
-	char buf[N_WORD_BYTES+1];
-
 
 	offset = tr->transpose_min - 1;
 	min = tr->transpose_min;
 	max = tr->transpose_max;
-	map = tr->transpose_map;
 
 	pairs_start = max - min + 2;
 
-	bufix = 0;
 	do {
 		p += utf8_in(&c,p);
+		if((c >= min) && (c <= max))
+		{
+			*p2++ = c - offset;
+		}
+		else
 		if(c != 0)
 		{
-			if((c >= min) && (c <= max))
-			{
-				if(map == NULL)
-				{
-					buf[bufix++] = c - offset;
-				}
-				else
-				{
-					// get the code from the transpose map
-					if(map[c - min] > 0)
-					{
-						buf[bufix++] = map[c - min];
-					}
-					else
-					{
-						all_alpha=0;
-						break;
-					}
-				}
-			}
-			else
-			{
-				all_alpha=0;
-				break;
-			}
+			p2 += utf8_out(c,p2);
+			all_alpha=0;
 		}
-	} while ((c != 0) && (bufix < N_WORD_BYTES));
-	buf[bufix] = 0;
+	} while (c != 0);
+	*p2 = 0;
 
 	if(all_alpha)
 	{
@@ -3073,8 +2918,8 @@ int TransposeAlphabet(Translator *tr, char *text)
 		acc=0;
 		bits=0;
 
-		p = buf;
-		p2 = buf;
+		p = text;
+		p2 = text;
 		while((c = *p++) != 0)
 		{
 			if((pairs_list = tr->frequent_pairs) != NULL)
@@ -3105,21 +2950,16 @@ int TransposeAlphabet(Translator *tr, char *text)
 			*p2++ = (acc << (8-bits));
 		}
 		*p2 = 0;
-		ix = p2 - buf;
-		memcpy(text, buf, ix);
-		return(ix | 0x40);  // bit 6 indicates compressed characters
-	}
-	else
-	{
-		return(strlen(text));
+		return((p2 - text) | 0x40);  // bit 6 indicates compressed characters
 	}
+	return(p2 - text);
 }  // end of TransposeAlphabet
 
 
 
 
 static const char *LookupDict2(Translator *tr, const char *word, const char *word2,
-							   char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab)
+		char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab)
 //=====================================================================================
 /* Find an entry in the word_dict file for a specified word.
    Returns NULL if no match, else returns 'word_end'
@@ -3145,25 +2985,22 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 	int  no_phonemes;
 	int  skipwords;
 	int  ix;
-	int  c;
 	const char *word_end;
 	const char *word1;
 	int wflags = 0;
-	int lookup_symbol;
+//	int wflags2;
 	char word_buf[N_WORD_BYTES+1];
-	char dict_flags_buf[80];
 
 	if(wtab != NULL)
 	{
 		wflags = wtab->flags;
 	}
 
-	lookup_symbol = flags[1] & FLAG_LOOKUP_SYMBOL;
 	word1 = word;
 	if(tr->transpose_min > 0)
 	{
 		strncpy0(word_buf,word, N_WORD_BYTES);
-		wlen = TransposeAlphabet(tr, word_buf);  // bit 6 indicates compressed characters
+		wlen = TransposeAlphabet(tr, word_buf);
 		word = word_buf;
 	}
 	else
@@ -3237,7 +3074,8 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 						condition_failed = 1;
 				}
 			}
-			else if(flag > 80)
+			else
+			if(flag > 80)
 			{
 				// flags 81 to 90  match more than one word
 				// This comes after the other flags
@@ -3272,14 +3110,16 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 				p = next;
 				word_end = word2 + n_chars;
 			}
-			else if(flag > 64)
+			else
+			if(flag > 64)
 			{
 				// stressed syllable information, put in bits 0-3
 				dictionary_flags = (dictionary_flags & ~0xf) | (flag & 0xf);
 				if((flag & 0xc) == 0xc)
 					dictionary_flags |= FLAG_STRESS_END;
 			}
-			else if(flag >= 32)
+			else
+			if(flag >= 32)
 			{
 				dictionary_flags2 |= (1L << (flag-32));
 			}
@@ -3298,20 +3138,20 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 		if((end_flags & FLAG_SUFX)==0)
 		{
 			// no suffix has been removed
-			if(dictionary_flags2 & FLAG_STEM)
+			if(dictionary_flags & FLAG_STEM)
 				continue;   // this word must have a suffix
 		}
 
-		if((end_flags & SUFX_P) && (dictionary_flags2 & (FLAG_ONLY | FLAG_ONLY_S)))
+		if((end_flags & SUFX_P) && (dictionary_flags & (FLAG_ONLY | FLAG_ONLY_S)))
 			continue;    // $only or $onlys, don't match if a prefix has been removed
 
 		if(end_flags & FLAG_SUFX)
 		{
 			// a suffix was removed from the word
-			if(dictionary_flags2 & FLAG_ONLY)
+			if(dictionary_flags & FLAG_ONLY)
 				continue;        // no match if any suffix
 
-			if((dictionary_flags2 & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0))
+			if((dictionary_flags & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0))
 			{
 				// only a 's' suffix allowed, but the suffix wasn't 's'
 				continue;
@@ -3345,21 +3185,21 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 				continue;
 		}
 
-		if((dictionary_flags2 & FLAG_ATEND) && (word_end < translator->clause_end) && (lookup_symbol==0))
+		if((dictionary_flags & FLAG_ATEND) && (word_end < tr->clause_end))
 		{
-			// only use this pronunciation if it's the last word of the clause, or called from Lookup()
+			// only use this pronunciation if it's the last word of the clause
 			continue;
 		}
 
-		if((dictionary_flags2 & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD))
+		if((dictionary_flags & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD))
 		{
 			// only use this pronunciation if it's the first word of a clause
 			continue;
 		}
 
-		if((dictionary_flags2 & FLAG_SENTENCE) && !(translator->clause_terminator & CLAUSE_BIT_SENTENCE))
+		if((dictionary_flags2 & FLAG_SENTENCE) && !(tr->clause_terminator & CLAUSE_BIT_SENTENCE))
 		{
-			// only if this clause is a sentence , i.e. terminator is {. ? !} not {, : :}
+			// only uis this clause is a sentence , i.e. terminator is {. ? !} not {, : :}
 			continue;
 		}
 
@@ -3370,11 +3210,6 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 			if(tr->expect_verb || (tr->expect_verb_s && (end_flags & FLAG_SUFX_S)))
 			{
 				// OK, we are expecting a verb
-				if((tr->translator_name == L('e','n')) && (tr->prev_dict_flags[0] & FLAG_ALT6_TRANS) && (end_flags & FLAG_SUFX_S))
-				{
-					// lang=en, don't use verb form after 'to' if the word has 's' suffix
-					continue;
-				}
 			}
 			else
 			{
@@ -3401,15 +3236,10 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 				continue;
 			}
 		}
-		if(dictionary_flags2 & FLAG_NATIVE)
-		{
-			if(tr != translator)
-				continue;    // don't use if we've switched translators
-		}
 		if(dictionary_flags & FLAG_ALT2_TRANS)
 		{
 			// language specific
-			if((tr->translator_name == L('h','u')) && !(tr->prev_dict_flags[0] & FLAG_ALT_TRANS))
+			if((tr->translator_name == L('h','u')) && !(tr->prev_dict_flags & FLAG_ALT_TRANS))
 				continue;
 		}
 
@@ -3423,8 +3253,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 		{
 			if(option_phonemes == 2)
 			{
-				print_dictionary_flags(flags, dict_flags_buf, sizeof(dict_flags_buf));
-				fprintf(f_trans,"Flags:  %s  %s\n", word1, dict_flags_buf);
+				fprintf(f_trans,"Flags:  %s  %s\n",word1,print_dictionary_flags(flags));
 			}
 			return(0);    // no phoneme translation found here, only flags. So use rules
 		}
@@ -3447,28 +3276,21 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
 			if(textmode == translator->langopts.textmode)
 			{
 				// only show this line if the word translates to phonemes, not replacement text
-				if((dictionary_flags & FLAG_SKIPWORDS) && (wtab != NULL))
+				if((dictionary_skipwords) && (wtab != NULL))
 				{
 					// matched more than one word
 					// (check for wtab prevents showing RULE_SPELLING byte when speaking individual letters)
 					memcpy(word_buf,word2,word_end-word2);
 					word_buf[word_end-word2-1] = 0;
-					fprintf(f_trans,"Found: '%s %s\n",word1,word_buf);
+					fprintf(f_trans,"Found: '%s %s",word1,word_buf);
 				}
 				else
 				{
 					fprintf(f_trans,"Found: '%s",word1);
 				}
-				print_dictionary_flags(flags, dict_flags_buf, sizeof(dict_flags_buf));
-				fprintf(f_trans,"' [%s]  %s\n", ph_decoded,dict_flags_buf);
+				fprintf(f_trans,"' [%s]  %s\n",ph_decoded,print_dictionary_flags(flags));
 			}
 		}
-
-		ix = utf8_in(&c, word);
-		if((word[ix] == 0) && !IsAlpha(c))
-		{
-			flags[0] |= FLAG_MAX3;
-		}
 		return(word_end);
 
 	}
@@ -3532,7 +3354,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f
 		if(((c = *word1++)==0) || (c == ' '))
 			break;
 
-		if((c=='.') && (length > 0) && (IsDigit09(word[length-1])))
+		if((c=='.') && (length > 0) && (isdigit(word[length-1])))
 			break;  // needed for lang=hu, eg. "december 2.-ig"
 
 		word[length] = c;
@@ -3541,7 +3363,6 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f
 
 	found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab);
 
-
 	if(flags[0] & FLAG_MAX3)
 	{
 		if(strcmp(ph_out, tr->phonemes_repeat) == 0)
@@ -3586,7 +3407,8 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f
 			word[length-1] = 0;
 			found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab);
 		}
-		else if((end_flags & SUFX_D) && (word[length-1] == word[length-2]))
+		else
+		if((end_flags & SUFX_D) && (word[length-1] == word[length-2]))
 		{
 			// try removing a double letter
 			word[length-1] = 0;
@@ -3639,43 +3461,23 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f
 }   //  end of LookupDictList
 
 
-extern char word_phonemes[N_WORD_PHONEMES];    // a word translated into phoneme codes
 
 int Lookup(Translator *tr, const char *word, char *ph_out)
 {//===================================================
-	int found;
 	unsigned int flags[2];
-	int say_as;
+	flags[0] = flags[1] = 0;
 	char *word1 = (char *)word;
-	char text[80];
-
-	flags[0] = 0;
-	flags[1] = FLAG_LOOKUP_SYMBOL;
-	found = LookupDictList(tr, &word1, ph_out, flags, FLAG_ALLOW_TEXTMODE, NULL);
-
-	if(flags[0] & FLAG_TEXTMODE)
-	{
-		say_as = option_sayas;
-		option_sayas = 0;   // don't speak replacement word as letter names
-		text[0] = 0;
-		strncpy0(&text[1], word1, sizeof(text));
-		found = TranslateWord(tr, &text[1], 0, NULL, NULL);
-		strcpy(ph_out, word_phonemes);
-		option_sayas = say_as;
-	}
-	return(found);
+	return(LookupDictList(tr, &word1, ph_out, flags, 0, NULL));
 }
 
-
-int LookupFlags(Translator *tr, const char *word, unsigned int **flags_out)
-{//===========================================================================
+int LookupFlags(Translator *tr, const char *word)
+{//==============================================
 	char buf[100];
 	static unsigned int flags[2];
-	char *word1 = (char *)word;
 
 	flags[0] = flags[1] = 0;
+	char *word1 = (char *)word;
 	LookupDictList(tr, &word1, buf, flags, 0, NULL);
-	*flags_out = flags;
 	return(flags[0]);
 }
 
@@ -3685,7 +3487,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 {//========================================================================
 /* Removes a standard suffix from a word, once it has been indicated by the dictionary rules.
    end_type: bits 0-6  number of letters
-			 bits 8-14  suffix flags
+             bits 8-14  suffix flags
 
 	word_copy: make a copy of the original word
 	This routine is language specific.  In English it deals with reversing y->i and e-dropping
@@ -3698,17 +3500,15 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 	int end_flags;
 	const char *p;
 	int  len;
-	char ending[50];
+	static char ending[12];
 
 	// these lists are language specific, but are only relevent if the 'e' suffix flag is used
 	static const char *add_e_exceptions[] = {
-		"ion", NULL
-	};
+		"ion", NULL };
 
 	static const char *add_e_additions[] = {
 //		"c", "rs", "ir", "ur", "ath", "ns", "lu", NULL };
-		"c", "rs", "ir", "ur", "ath", "ns", "u", NULL
-	};
+		"c", "rs", "ir", "ur", "ath", "ns", "u", NULL };
 
 	for(word_end = word; *word_end != ' '; word_end++)
 	{
@@ -3717,15 +3517,11 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 			*word_end = 'e';
 	}
 	i = word_end - word;
-
-	if(word_copy != NULL)
-	{
-		memcpy(word_copy,word,i);
-		word_copy[i] = 0;
-	}
+	memcpy(word_copy,word,i);
+	word_copy[i] = 0;
 
 	// look for multibyte characters to increase the number of bytes to remove
-	for(len_ending = i = (end_type & 0x3f); i>0 ; i--)  // num.of characters of the suffix
+	for(len_ending = i = (end_type & 0x3f); i>0 ;i--)   // num.of characters of the suffix
 	{
 		word_end--;
 		while((*word_end & 0xc0) == 0x80)
@@ -3736,7 +3532,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 	}
 
 	// remove bytes from the end of the word and replace them by spaces
-	for(i=0; (i<len_ending) && (i < (int)sizeof(ending)-1); i++)
+	for(i=0; i<len_ending; i++)
 	{
 		ending[i] = word_end[i];
 		word_end[i] = ' ';
@@ -3768,7 +3564,8 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 				word_end[2] = ' ';
 			}
 		}
-		else if(tr->translator_name == L('e','n'))
+		else
+		if(tr->translator_name == L('e','n'))
 		{
 			// add 'e' to end of stem
 			if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1))
@@ -3799,7 +3596,8 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 				}
 			}
 		}
-		else if(tr->langopts.suffix_add_e != 0)
+		else
+		if(tr->langopts.suffix_add_e != 0)
 		{
 			end_flags |= FLAG_SUFX_E_ADDED;
 		}
@@ -3808,10 +3606,10 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 		{
 			utf8_out(tr->langopts.suffix_add_e, &word_end[1]);
 
-			if(option_phonemes == 2)
-			{
-				fprintf(f_trans,"add e\n");
-			}
+		if(option_phonemes == 2)
+		{
+			fprintf(f_trans,"add e\n");
+		}
 		}
 	}
 
@@ -3830,4 +3628,3 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
 }   /* end of RemoveEnding */
 
 
-
diff --git a/external/espeak/espeak_command.h b/external/espeak/espeak_command.h
old mode 100755
new mode 100644
diff --git a/external/espeak/espeakdata_FileInMemory.cpp b/external/espeak/espeakdata_FileInMemory.cpp
index 649a540..cfea83a 100644
--- a/external/espeak/espeakdata_FileInMemory.cpp
+++ b/external/espeak/espeakdata_FileInMemory.cpp
@@ -1,6 +1,6 @@
-/* espeakdata_FileInMemory.cpp
+/* espeakdata_FileInMemory.c
  *
- * Copyright (C) David Weenink 2012, 2015
+ * Copyright (C) David Weenink 2012
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,43 +22,43 @@
 #include "speech.h"
 #include <wctype.h>
 
-autoFileInMemorySet espeakdata_variants;
-autoFileInMemorySet espeakdata_dicts;
-autoFileInMemorySet espeakdata_phons;
-autoFileInMemorySet espeakdata_voices;
-autoStrings espeakdata_voices_names;
-autoStrings espeakdata_voices_names_short;
-autoStrings espeakdata_variants_names;
+FilesInMemory espeakdata_variants;
+FilesInMemory espeakdata_dicts;
+FilesInMemory espeakdata_phons;
+FilesInMemory espeakdata_voices;
+Strings espeakdata_voices_names;
+Strings espeakdata_voices_names_short;
+Strings espeakdata_variants_names;
 
-static void FileInMemorySet_and_Strings_changeIds (FileInMemorySet me, Strings thee) {
+static void FilesInMemory_and_Strings_changeIds (FilesInMemory me, Strings thee) {
 	try {
 		if (my size != thy numberOfStrings) return; // do nothing
-		for (long i = 1; i <= my size; i ++) {
-			FileInMemory_setId (my at [i], thy strings [i]);
+		for (long i = 1; i <= my size; i++) {
+			FileInMemory_setId ((FileInMemory) my item[i], thy strings[i]);
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U"Ids not changed.");
 	}
 }
 
-static autoStrings espeak_voices_sort () {
+static Strings espeak_voices_sort () {
 	try {
-		autoTable names = espeakdata_voices_to_Table (espeakdata_voices.get());
-		autoStrings fullnames = espeakdata_voices_getNames (names.get(), 2);
-		FileInMemorySet_and_Strings_changeIds (espeakdata_voices.get(), fullnames.get());
-		espeakdata_voices -> d_sortKey = 1;   // sort id's
-		espeakdata_voices -> sort ();
-		Table_sortRows_string (names.get(), U"name"); //They hopefully sort the same way
-		autoStrings neworder = espeakdata_voices_getNames (names.get(), 2);
-		autoStrings names_short = espeakdata_voices_getNames (names.get(), 1);
-		FileInMemorySet_and_Strings_changeIds (espeakdata_voices.get(), names_short.get());
-		return neworder;
+		autoTable names = espeakdata_voices_to_Table (espeakdata_voices);
+		autoStrings fullnames = espeakdata_voices_getNames (names.peek(), 2);
+		FilesInMemory_and_Strings_changeIds (espeakdata_voices, fullnames.peek());
+		espeakdata_voices -> d_sortKey = 1; // sort id's
+		Sorted_sort (espeakdata_voices);
+		Table_sortRows_string (names.peek(), U"name"); //They hopefully sort the same way
+		autoStrings neworder = espeakdata_voices_getNames (names.peek(), 2);
+		autoStrings names_short = espeakdata_voices_getNames (names.peek(), 1);
+		FilesInMemory_and_Strings_changeIds (espeakdata_voices, names_short.peek());
+		return neworder.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Espeak voices not sorted.");
 	}
 }
 
-static autoStrings Strings_insertAndExpand (Strings me, long position, const char32 *newstring) {
+static Strings Strings_insertAndExpand (Strings me, long position, const char32 *newstring) {
 	try {
 		if (position == 0) position = my numberOfStrings + 1;
 		Melder_assert (position >= 1);
@@ -73,7 +73,7 @@ static autoStrings Strings_insertAndExpand (Strings me, long position, const cha
 			thy strings[i] = Melder_dup (to_copy);
 		}
 		thy numberOfStrings = my numberOfStrings + 1;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" not expanded.");
 	}
@@ -82,13 +82,13 @@ static autoStrings Strings_insertAndExpand (Strings me, long position, const cha
 void espeakdata_praat_init () {
 	try {
 		espeakdata_variants = create_espeakdata_variants ();
-		autoStrings vnames = FileInMemorySet_to_Strings_id (espeakdata_variants.get());
-		espeakdata_variants_names = Strings_insertAndExpand (vnames.get(), 1, U"default");
+		autoStrings vnames = FilesInMemory_to_Strings_id (espeakdata_variants);
+		espeakdata_variants_names = Strings_insertAndExpand (vnames.peek(), 1, U"default");
 		espeakdata_dicts = create_espeakdata_dicts ();
 		espeakdata_phons = create_espeakdata_phons ();
 		espeakdata_voices = create_espeakdata_voices ();
 		espeakdata_voices_names = espeak_voices_sort ();
-		autoTable names_table = espeakdata_voices_to_Table (espeakdata_voices.get());
+		autoTable names_table = espeakdata_voices_to_Table (espeakdata_voices);
 	} catch (MelderError) {
 		Melder_throw (U"Espeakdata initialization not performed.");
 	}
@@ -102,11 +102,9 @@ const char * espeakdata_get_voicedata (const char *data, long ndata, char *buf,
 		return 0;
 	}
 	long i = 0;
-	while (i < nbuf && *index < ndata && ((buf [i] = data [i]) != '\n')) {
-		i ++;
-		(*index) ++;
+	while (i < nbuf && *index < ndata && ((buf[i] = data[i]) != '\n')) {
+		i++; (*index)++;
 	}
-	(*index) ++;   // ppgb 20151020 fix
 	long idata = i + 1;
 	buf[i] = '\0';
 	while (--i >= 0 && ESPEAK_ISSPACE (buf[i])) {
@@ -116,54 +114,53 @@ const char * espeakdata_get_voicedata (const char *data, long ndata, char *buf,
 	if (p != 0) {
 		*p = 0;
 	}
-	return & data[idata];
+	return &data[idata];
 }
 
-autoTable espeakdata_voices_to_Table (FileInMemorySet me) {
+Table espeakdata_voices_to_Table (FilesInMemory me) {
 	try {
 		autoTable thee = Table_createWithColumnNames (my size, U"id name");
-		for (long ifile = 1; ifile <= my size; ifile ++) {
-			FileInMemory fim = my at [ifile];
-			Table_setStringValue (thee.get(), ifile, 1, fim -> d_id);
+		for (long ifile = 1; ifile <= my size; ifile++) {
+			FileInMemory fim = (FileInMemory) my item[ifile];
+			Table_setStringValue (thee.peek(), ifile, 1, fim -> d_id);
 			const char *p = strstr (fim -> d_data, "name");
-			if (! p) continue;
+			if (p == NULL) continue;
 			// copy the name part to the following new line
-			char buf [40], *bufp = buf;
+			char buf[40], *bufp = buf;
 			long len = 0;
-			while ((*bufp ++ = *p ++) != '\n' && len < 39) { len ++; }
+			while ((*bufp++ = *p++) != '\n' && len < 39) { len++; }
 			// remove trailing white space
 			*bufp = 0;
 			while (ESPEAK_ISSPACE (buf[len]) && len > 0) {
-				buf [len] = 0;
-				len --;
+				buf[len] = 0; len--;
 			}
 			// skip leading white space
 			bufp = & buf[4];
-			while (ESPEAK_ISSPACE (*bufp)) { bufp ++; }
-			Table_setStringValue (thee.get(), ifile, 2, Melder_peek8to32 (bufp));
-			TableRow row = thy rows.at [ifile];
-			wint_t c0 = row -> cells [2]. string [0];
-			row -> cells [2]. string [0] = towupper (c0);
+			while (ESPEAK_ISSPACE (*bufp)) { *bufp++; }
+			Table_setStringValue (thee.peek(), ifile, 2, Melder_peek8to32 (bufp));
+			TableRow row = static_cast <TableRow> (thy rows -> item [ifile]);
+			wint_t c0 = row -> cells [2]. string[0];
+			row -> cells [2]. string[0] = towupper (c0);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Espeakdata: voice table not initialized.");
 	}
 }
 
-autoStrings espeakdata_voices_getNames (Table me, long column) {
+Strings espeakdata_voices_getNames (Table me, long column) {
 	try {
 		if (column < 0 || column > 2) {
 			Melder_throw (U"Illegal columnn.");
 		}
 		autoStrings thee = Thing_new (Strings);
-		thy strings = NUMvector <char32 *> (1, my rows.size);
+		thy strings = NUMvector <char32 *> (1, my rows -> size);
 		thy numberOfStrings = 0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			thy strings [irow] = Melder_dup (Table_getStringValue_Assert (me, irow, column));
-			thy numberOfStrings ++;
+		for (long irow = 1; irow <= my rows -> size; irow++) {
+			thy strings[irow] = Melder_dup (Table_getStringValue_Assert (me, irow, column));
+			thy numberOfStrings++;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Espeakdata: voices not initialized.");
 	}
@@ -171,20 +168,21 @@ autoStrings espeakdata_voices_getNames (Table me, long column) {
 
 char * espeakdata_get_dict_data (const char *name, unsigned int *size) {
 	long lsize;
-	char *data = FileInMemorySet_getCopyOfData (espeakdata_dicts.get(), Melder_peek8to32 (name), &lsize);
+	char *data = FilesInMemory_getCopyOfData (espeakdata_dicts, Melder_peek8to32 (name), &lsize);
 	*size = (unsigned int) lsize;
 	return data;
 }
 
 
 const char * espeakdata_get_voice (const char *vname, long *numberOfBytes) {
-	return FileInMemorySet_getData (espeakdata_voices.get(), Melder_peek8to32 (vname), numberOfBytes);
+	return FilesInMemory_getData (espeakdata_voices, Melder_peek8to32 (vname), numberOfBytes);
 }
 
 const char * espeakdata_get_voiceVariant (const char *vname, long *numberOfBytes) {
 	char *plus = strstr ((char *) vname, "+"); // prototype says: strstr (const char *, const char *)
-	const char *name = ( plus ? ++ plus : vname );
-	return FileInMemorySet_getData (espeakdata_variants.get(), Melder_peek8to32 (name), numberOfBytes);;
+	const char *name = plus != NULL ? ++plus : vname;
+	return FilesInMemory_getData (espeakdata_variants, Melder_peek8to32 (name), numberOfBytes);;
 }
 
+
 /* End of file espeakdata_FileInMemory.cpp */
diff --git a/external/espeak/espeakdata_FileInMemory.h b/external/espeak/espeakdata_FileInMemory.h
index 5cc886a..9fcb953 100644
--- a/external/espeak/espeakdata_FileInMemory.h
+++ b/external/espeak/espeakdata_FileInMemory.h
@@ -22,39 +22,24 @@
 #include "FileInMemory.h"
 #include "Table.h"
 
-extern autoFileInMemorySet espeakdata_phons;
-
-extern autoFileInMemorySet espeakdata_dicts;
-
-extern autoFileInMemorySet espeakdata_voices;
-
-extern autoFileInMemorySet espeakdata_variants;
-
-autoFileInMemorySet create_espeakdata_phons ();
-
-autoFileInMemorySet create_espeakdata_dicts ();
-
-autoFileInMemorySet create_espeakdata_voices ();
-
-autoFileInMemorySet create_espeakdata_variants ();
-
-extern autoStrings espeakdata_voices_names;
-
-extern autoStrings espeakdata_variants_names;
+extern FilesInMemory espeakdata_phons;
+extern FilesInMemory espeakdata_dicts;
+extern FilesInMemory espeakdata_voices;
+extern FilesInMemory espeakdata_variants;
+FilesInMemory create_espeakdata_phons ();
+FilesInMemory create_espeakdata_dicts ();
+FilesInMemory create_espeakdata_voices ();
+FilesInMemory create_espeakdata_variants ();
+extern Strings espeakdata_voices_names;
+extern Strings espeakdata_variants_names;
 
 void espeakdata_praat_init ();
-
 const char * espeakdata_get_voicedata (const char *data, long ndata, char *buf, long nbuf, long *index);
-
-autoTable espeakdata_voices_to_Table (FileInMemorySet me);
-
-autoStrings espeakdata_voices_getNames (Table me, long column);
-
+Table espeakdata_voices_to_Table (FilesInMemory me);
+Strings espeakdata_voices_getNames (Table me, long column);
 // mask the char / char32
 char * espeakdata_get_dict_data (const char *name, unsigned int *size);
-
 const char * espeakdata_get_voice (const char *vname, long *numberOfBytes);
-
 const char * espeakdata_get_voiceVariant (const char *vname, long *numberOfBytes);
 
 #endif
diff --git a/external/espeak/espeakdata_dicts.cpp b/external/espeak/espeakdata_dicts.cpp
index ce85c13..9c61886 100644
--- a/external/espeak/espeakdata_dicts.cpp
+++ b/external/espeak/espeakdata_dicts.cpp
@@ -1,2377 +1,2343 @@
-/* File espeakdata_dicts.cpp (version 1.48.04) was automatically generated on Thu Dec  3 15:21:15 2015 from all espeak-data/*_dict files:  */
+/* File espeakdata_dicts.cpp was generated on Sun Nov  4 17:43:38 2012 from all espeak-data/*_dict files:  */
 
 #include "espeakdata_FileInMemory.h"
 #include "Collection.h"
 #include "FileInMemory.h"
 #include "melder.h"
 
-autoFileInMemorySet create_espeakdata_dicts () {
+FilesInMemory create_espeakdata_dicts () {
 	try {
-		autoFileInMemorySet me = FileInMemorySet_create ();
-		static unsigned char espeakdata_dicts1_data[82373] = {
-			0, 4, 0, 0, 31, 84, 0, 0, 0, 25, 74, 64, 81, 1, 48, 81, 5, 53, 2, 78, 28, 48, 13, 72, 115, 55, 13, 72, 108, 65,
-			48, 13, 68, 0, 0, 13, 68, 16, 149, 129, 56, 72, 37, 84, 6, 35, 50, 0, 0, 20, 71, 88, 19, 141, 20, 193, 87, 20, 83, 35,
-			50, 65, 13, 55, 6, 116, 84, 13, 0, 0, 0, 23, 65, 4, 35, 15, 49, 35, 48, 6, 112, 55, 35, 0, 81, 99, 97, 112, 112, 101,
-			108, 108, 97, 32, 0, 11, 68, 60, 244, 140, 20, 117, 34, 55, 13, 0, 24, 65, 108, 35, 15, 55, 35, 15, 49, 6, 35, 34, 47, 0,
-			82, 108, 97, 32, 99, 97, 114, 116, 101, 32, 5, 193, 108, 43, 49, 0, 15, 69, 56, 82, 193, 72, 80, 50, 112, 49, 10, 115, 34, 13,
-			0, 10, 69, 76, 244, 8, 36, 80, 21, 0, 47, 12, 69, 52, 84, 129, 4, 144, 65, 13, 34, 122, 0, 13, 69, 28, 84, 148, 36, 80,
-			81, 109, 12, 47, 37, 0, 0, 9, 198, 52, 19, 5, 4, 114, 64, 67, 0, 8, 197, 60, 225, 9, 56, 112, 65, 12, 201, 4, 208, 78,
-			104, 147, 84, 61, 66, 64, 68, 6, 65, 8, 71, 116, 0, 0, 21, 71, 81, 32, 80, 21, 50, 85, 52, 47, 34, 35, 48, 6, 116, 89,
-			37, 12, 111, 65, 0, 0, 8, 197, 60, 244, 139, 60, 208, 66, 13, 68, 16, 246, 69, 56, 72, 131, 57, 6, 108, 50, 0, 6, 195, 89,
-			48, 64, 13, 14, 67, 52, 82, 128, 65, 13, 57, 111, 83, 34, 120, 0, 24, 0, 24, 73, 64, 19, 132, 20, 211, 206, 37, 83, 64, 48,
-			35, 50, 72, 13, 65, 6, 117, 50, 37, 111, 65, 0, 17, 70, 52, 16, 129, 50, 51, 0, 65, 35, 71, 35, 55, 6, 112, 55, 0, 0,
-			22, 72, 65, 35, 205, 21, 66, 5, 85, 48, 48, 34, 40, 65, 6, 116, 47, 37, 38, 111, 89, 0, 9, 198, 92, 19, 8, 4, 195, 1,
-			66, 6, 65, 12, 89, 116, 0, 0, 13, 68, 20, 192, 78, 4, 37, 55, 6, 115, 50, 35, 0, 0, 14, 69, 20, 97, 129, 80, 16, 108,
-			83, 6, 115, 47, 35, 0, 0, 0, 6, 65, 16, 72, 116, 0, 0, 13, 68, 4, 224, 76, 20, 35, 50, 6, 115, 55, 13, 0, 0, 0,
-			18, 70, 88, 84, 135, 20, 193, 100, 83, 113, 34, 136, 13, 55, 4, 116, 13, 0, 9, 198, 4, 117, 5, 73, 113, 100, 67, 13, 70, 88,
-			149, 133, 56, 66, 64, 21, 108, 97, 0, 47, 17, 70, 9, 84, 149, 56, 66, 64, 71, 40, 34, 6, 40, 50, 72, 37, 0, 12, 4, 95,
-			100, 112, 116, 6, 48, 111, 50, 47, 0, 0, 14, 69, 88, 84, 151, 20, 112, 83, 113, 34, 84, 112, 136, 0, 5, 65, 20, 116, 0, 0,
-			17, 70, 40, 19, 148, 92, 18, 192, 57, 35, 50, 47, 58, 6, 35, 49, 0, 16, 70, 16, 17, 5, 48, 146, 192, 72, 115, 72, 13, 55,
-			109, 49, 0, 0, 0, 0, 16, 70, 88, 243, 210, 8, 83, 133, 83, 117, 34, 71, 116, 50, 13, 0, 17, 70, 12, 128, 82, 37, 51, 65,
-			49, 35, 34, 6, 109, 89, 65, 35, 0, 17, 70, 52, 17, 5, 48, 83, 133, 65, 35, 72, 13, 55, 6, 116, 50, 0, 17, 70, 52, 17,
-			5, 48, 83, 133, 65, 35, 72, 13, 55, 6, 116, 50, 0, 6, 65, 24, 108, 83, 0, 0, 0, 0, 11, 68, 88, 149, 143, 76, 21, 108,
-			97, 0, 47, 12, 68, 12, 84, 133, 76, 89, 116, 34, 13, 89, 0, 0, 18, 71, 8, 241, 68, 5, 1, 83, 80, 71, 40, 72, 35, 48,
-			108, 89, 47, 0, 6, 65, 28, 136, 116, 0, 0, 21, 72, 8, 17, 5, 56, 131, 210, 77, 64, 71, 115, 72, 13, 50, 107, 110, 34, 89,
-			47, 0, 0, 17, 70, 60, 225, 5, 73, 34, 71, 110, 50, 13, 34, 6, 109, 136, 0, 36, 14, 69, 12, 20, 9, 80, 16, 49, 35, 48,
-			37, 47, 35, 0, 8, 195, 44, 19, 128, 72, 9, 32, 0, 7, 196, 60, 228, 149, 76, 65, 9, 68, 48, 245, 73, 76, 55, 126, 0, 11,
-			68, 24, 20, 129, 60, 83, 115, 34, 117, 0, 0, 6, 65, 32, 107, 115, 0, 0, 0, 13, 69, 4, 209, 76, 20, 80, 35, 65, 13, 55,
-			116, 0, 0, 10, 1, 35, 50, 110, 65, 13, 34, 0, 27, 0, 5, 65, 36, 37, 0, 0, 16, 70, 80, 241, 82, 20, 177, 78, 47, 40,
-			34, 116, 49, 13, 50, 0, 9, 198, 60, 224, 146, 84, 146, 192, 65, 12, 201, 32, 243, 198, 76, 16, 75, 48, 146, 192, 66, 11, 68, 4,
-			68, 137, 20, 115, 72, 34, 37, 0, 13, 1, 37, 48, 13, 34, 89, 6, 108, 50, 47, 0, 27, 0, 13, 70, 21, 133, 18, 20, 210, 83,
-			21, 108, 97, 0, 47, 22, 72, 76, 244, 200, 4, 225, 213, 88, 80, 89, 110, 91, 35, 68, 81, 6, 40, 12, 84, 108, 0, 14, 1, 38,
-			23, 35, 65, 48, 112, 34, 89, 35, 50, 47, 0, 4, 193, 112, 43, 0, 17, 70, 88, 84, 147, 24, 83, 4, 83, 112, 34, 89, 83, 112,
-			55, 47, 0, 17, 70, 25, 32, 78, 128, 242, 83, 83, 34, 133, 50, 89, 58, 6, 115, 0, 0, 15, 72, 85, 53, 70, 73, 80, 212, 85,
-			48, 21, 108, 97, 0, 47, 6, 65, 40, 57, 116, 0, 0, 0, 8, 67, 76, 148, 128, 21, 0, 47, 9, 1, 42, 89, 47, 112, 34, 0,
-			27, 7, 196, 76, 19, 146, 8, 13, 0, 11, 70, 92, 147, 12, 36, 19, 64, 21, 0, 47, 13, 69, 76, 128, 82, 60, 224, 91, 112, 34,
-			14, 50, 0, 10, 69, 8, 244, 212, 60, 224, 21, 0, 47, 10, 1, 43, 48, 55, 6, 111, 89, 0, 27, 0, 16, 69, 32, 84, 133, 72,
-			240, 107, 108, 34, 6, 108, 12, 34, 40, 0, 17, 69, 4, 64, 71, 36, 240, 35, 72, 6, 115, 75, 37, 38, 2, 120, 0, 6, 65, 44,
-			49, 115, 0, 0, 0, 9, 1, 46, 48, 111, 50, 47, 0, 27, 0, 8, 197, 20, 180, 205, 4, 224, 65, 17, 70, 92, 147, 8, 20, 195,
-			64, 84, 13, 55, 107, 112, 55, 14, 65, 0, 10, 1, 47, 89, 47, 34, 116, 48, 0, 27, 0, 16, 4, 95, 100, 105, 97, 72, 6, 116,
-			55, 47, 116, 49, 13, 50, 0, 6, 65, 48, 112, 55, 0, 0, 12, 68, 88, 84, 130, 100, 83, 13, 34, 71, 123, 0, 20, 71, 44, 193,
-			79, 64, 21, 18, 4, 49, 55, 119, 12, 48, 6, 115, 47, 34, 35, 0, 0, 18, 70, 20, 193, 15, 72, 17, 15, 112, 55, 72, 110, 34,
-			6, 115, 72, 120, 0, 12, 67, 52, 85, 128, 65, 13, 83, 34, 120, 0, 24, 0, 14, 69, 28, 83, 161, 88, 80, 90, 13, 50, 108, 12,
-			84, 0, 0, 18, 70, 73, 147, 69, 48, 20, 153, 34, 123, 65, 13, 55, 35, 34, 6, 123, 0, 17, 70, 8, 81, 5, 92, 85, 5, 71,
-			116, 72, 13, 84, 116, 47, 13, 0, 6, 65, 52, 108, 65, 0, 0, 9, 198, 60, 225, 197, 52, 18, 192, 65, 24, 74, 44, 243, 134, 101,
-			69, 5, 73, 66, 137, 20, 49, 110, 50, 83, 6, 123, 47, 113, 34, 80, 37, 0, 17, 71, 76, 86, 67, 32, 83, 12, 20, 89, 123, 91,
-			6, 112, 55, 13, 0, 0, 0, 18, 71, 88, 243, 19, 12, 129, 78, 44, 83, 110, 55, 89, 49, 108, 68, 49, 0, 15, 70, 65, 33, 83,
-			48, 86, 64, 48, 34, 108, 89, 55, 37, 0, 0, 18, 71, 32, 81, 76, 80, 83, 65, 48, 107, 116, 55, 47, 13, 65, 35, 55, 0, 15,
-			70, 76, 50, 15, 49, 70, 128, 89, 49, 131, 55, 47, 89, 0, 6, 65, 56, 108, 50, 0, 0, 0, 9, 198, 32, 84, 139, 48, 16, 83,
-			65, 0, 10, 199, 92, 81, 82, 44, 194, 78, 44, 66, 18, 71, 16, 82, 210, 20, 194, 78, 28, 72, 108, 49, 34, 116, 55, 13, 68, 0,
-			10, 199, 28, 84, 136, 5, 33, 21, 76, 66, 16, 70, 21, 49, 71, 38, 67, 0, 37, 89, 6, 116, 136, 37, 12, 0, 0, 13, 68, 76,
-			243, 143, 64, 89, 110, 50, 10, 110, 48, 0, 8, 197, 60, 225, 213, 57, 48, 65, 14, 69, 56, 19, 69, 57, 48, 50, 115, 65, 13, 50,
-			89, 0, 13, 69, 17, 83, 142, 21, 48, 72, 111, 50, 13, 89, 0, 5, 65, 60, 117, 0, 0, 6, 194, 61, 0, 72, 10, 6, 195, 92,
-			16, 82, 8, 13, 1, 61, 10, 136, 13, 55, 6, 123, 49, 10, 0, 27, 0, 13, 69, 76, 129, 73, 48, 16, 91, 37, 12, 55, 35, 0,
-			0, 10, 67, 52, 241, 84, 65, 40, 47, 0, 32, 0, 19, 70, 5, 3, 212, 20, 244, 197, 35, 48, 110, 47, 37, 38, 6, 117, 89, 13,
-			0, 7, 1, 64, 71, 123, 9, 0, 6, 65, 64, 48, 116, 0, 0, 9, 66, 4, 32, 21, 108, 97, 0, 47, 16, 70, 4, 227, 129, 48,
-			85, 0, 35, 50, 35, 55, 6, 108, 47, 0, 18, 70, 4, 192, 129, 56, 153, 0, 35, 55, 71, 6, 115, 50, 116, 12, 14, 0, 0, 15,
-			69, 48, 245, 73, 76, 80, 55, 40, 58, 6, 37, 12, 88, 0, 14, 69, 5, 66, 5, 56, 80, 35, 47, 6, 116, 50, 13, 0, 0, 13,
-			70, 53, 85, 1, 56, 66, 64, 21, 108, 97, 0, 47, 0, 9, 198, 24, 16, 212, 61, 69, 77, 66, 6, 65, 68, 49, 118, 0, 0, 11,
-			70, 64, 21, 18, 36, 50, 192, 21, 0, 47, 0, 16, 70, 25, 32, 78, 12, 242, 83, 83, 34, 35, 50, 91, 58, 35, 0, 0, 10, 199,
-			48, 85, 137, 80, 146, 213, 76, 66, 19, 71, 65, 33, 84, 61, 34, 85, 76, 48, 34, 13, 47, 117, 34, 37, 111, 89, 0, 19, 71, 52,
-			21, 82, 37, 66, 85, 76, 65, 110, 34, 6, 37, 91, 57, 111, 89, 0, 0, 0, 0, 0, 10, 198, 88, 243, 210, 44, 243, 64, 66, 46,
-			14, 71, 32, 16, 137, 80, 21, 9, 60, 21, 108, 97, 0, 47, 15, 70, 44, 128, 89, 100, 19, 64, 49, 35, 57, 6, 35, 65, 0, 13,
-			72, 92, 20, 200, 36, 225, 212, 60, 224, 21, 0, 47, 12, 4, 95, 100, 111, 116, 48, 6, 111, 50, 47, 0, 0, 6, 65, 76, 108, 89,
-			0, 0, 9, 198, 80, 244, 142, 4, 67, 192, 66, 19, 71, 77, 0, 71, 32, 85, 20, 36, 89, 48, 2, 35, 81, 108, 47, 2, 37, 0,
-			17, 70, 76, 84, 207, 80, 131, 192, 89, 13, 89, 6, 40, 12, 47, 40, 0, 0, 18, 70, 48, 83, 206, 5, 33, 15, 55, 119, 12, 50,
-			6, 35, 34, 72, 40, 0, 0, 0, 6, 65, 80, 47, 116, 0, 0, 11, 70, 12, 130, 67, 4, 115, 192, 21, 0, 47, 0, 0, 10, 199,
-			60, 225, 197, 92, 243, 206, 76, 65, 0, 9, 198, 88, 243, 16, 84, 229, 5, 65, 5, 193, 84, 72, 32, 14, 70, 72, 82, 78, 21, 69,
-			5, 34, 13, 50, 108, 47, 0, 0, 14, 70, 64, 85, 71, 20, 245, 0, 48, 111, 12, 90, 120, 0, 0, 0, 21, 67, 33, 69, 16, 107,
-			115, 47, 116, 47, 116, 48, 6, 116, 10, 0, 81, 58, 47, 47, 32, 0, 6, 65, 88, 83, 116, 0, 0, 9, 66, 5, 48, 4, 35, 89,
-			0, 8, 20, 72, 29, 34, 69, 44, 83, 1, 56, 64, 136, 34, 37, 49, 13, 55, 35, 50, 47, 0, 0, 0, 0, 12, 1, 92, 47, 34,
-			118, 89, 47, 34, 116, 48, 0, 6, 65, 92, 84, 116, 0, 0, 0, 24, 73, 29, 35, 194, 48, 84, 147, 16, 19, 0, 136, 34, 110, 71,
-			55, 13, 34, 89, 72, 6, 35, 55, 0, 0, 0, 17, 70, 48, 243, 132, 20, 228, 197, 55, 110, 50, 72, 13, 50, 89, 13, 0, 14, 69,
-			8, 84, 212, 21, 48, 71, 108, 89, 47, 13, 89, 0, 7, 65, 96, 108, 49, 89, 0, 0, 9, 66, 4, 64, 21, 108, 97, 0, 47, 0,
-			16, 70, 48, 148, 19, 80, 145, 75, 55, 109, 48, 89, 47, 37, 49, 0, 0, 9, 198, 60, 224, 133, 29, 34, 80, 65, 0, 5, 65, 100,
-			123, 0, 0, 8, 197, 60, 228, 129, 4, 64, 65, 11, 68, 8, 245, 8, 4, 71, 117, 47, 35, 0, 0, 10, 67, 52, 241, 83, 65, 40,
-			89, 0, 32, 28, 67, 48, 244, 192, 55, 110, 89, 10, 6, 35, 50, 75, 13, 55, 37, 12, 88, 0, 81, 97, 110, 103, 101, 108, 101, 115,
-			32, 0, 27, 69, 29, 32, 65, 24, 96, 136, 34, 115, 83, 15, 34, 13, 50, 6, 108, 47, 0, 81, 114, 101, 105, 110, 101, 116, 32, 0,
-			7, 65, 104, 88, 108, 72, 0, 0, 12, 200, 36, 229, 5, 20, 225, 5, 20, 192, 66, 8, 18, 5, 115, 109, 115, 39, 101, 108, 89, 10,
-			108, 65, 10, 6, 108, 89, 13, 0, 0, 19, 71, 88, 84, 132, 21, 32, 65, 56, 83, 113, 34, 72, 13, 34, 10, 115, 50, 0, 11, 70,
-			56, 144, 200, 60, 192, 83, 21, 0, 47, 22, 73, 52, 243, 210, 72, 81, 83, 9, 84, 135, 65, 40, 34, 6, 116, 89, 71, 111, 34, 136,
-			0, 0, 18, 70, 52, 19, 132, 20, 192, 64, 65, 35, 50, 72, 6, 108, 12, 55, 35, 0, 19, 72, 12, 132, 137, 77, 66, 65, 4, 224,
-			49, 34, 109, 89, 47, 37, 115, 50, 0, 0, 0, 20, 71, 72, 245, 5, 72, 83, 132, 20, 34, 40, 47, 6, 116, 34, 13, 50, 72, 13,
-			0, 10, 199, 28, 84, 148, 73, 82, 68, 4, 66, 12, 71, 77, 83, 142, 101, 50, 68, 20, 21, 0, 47, 0, 11, 200, 60, 225, 197, 92,
-			83, 147, 16, 80, 67, 18, 71, 17, 80, 130, 20, 194, 197, 56, 72, 111, 71, 13, 55, 49, 108, 50, 0, 0, 8, 197, 32, 84, 141, 60,
-			224, 65, 0, 12, 201, 16, 85, 82, 77, 68, 129, 4, 193, 5, 66, 14, 69, 80, 245, 9, 85, 48, 47, 117, 91, 37, 111, 89, 0, 0,
-			19, 72, 29, 32, 72, 4, 212, 212, 4, 64, 136, 34, 115, 65, 89, 47, 35, 47, 0, 0, 15, 72, 21, 129, 67, 85, 64, 78, 16, 144,
-			21, 108, 97, 0, 47, 9, 68, 72, 240, 137, 56, 21, 0, 47, 0, 18, 70, 4, 34, 77, 136, 193, 71, 35, 71, 37, 50, 6, 116, 55,
-			108, 136, 0, 0, 9, 198, 80, 241, 82, 36, 83, 128, 66, 0, 0, 13, 69, 92, 21, 23, 61, 80, 84, 35, 47, 84, 120, 0, 19, 72,
-			88, 84, 133, 17, 82, 70, 36, 80, 83, 116, 34, 13, 72, 127, 83, 37, 0, 11, 200, 60, 225, 197, 72, 145, 70, 36, 80, 65, 17, 4,
-			95, 48, 67, 111, 107, 6, 110, 50, 13, 34, 47, 89, 47, 13, 0, 0, 12, 4, 97, 115, 39, 116, 35, 89, 13, 47, 0, 72, 23, 73,
-			48, 16, 149, 76, 50, 1, 28, 225, 64, 55, 35, 71, 111, 89, 49, 6, 35, 136, 50, 37, 0, 16, 70, 40, 84, 197, 8, 83, 0, 57,
-			116, 89, 13, 71, 112, 55, 0, 0, 0, 17, 66, 5, 80, 120, 15, 48, 6, 113, 34, 0, 81, 112, 97, 105, 114, 32, 20, 71, 64, 83,
-			9, 56, 64, 66, 4, 48, 112, 55, 13, 50, 72, 6, 115, 71, 35, 0, 19, 71, 32, 148, 143, 76, 162, 77, 4, 107, 37, 34, 40, 91,
-			6, 37, 65, 35, 0, 0, 12, 68, 21, 33, 197, 72, 112, 34, 81, 13, 34, 0, 0, 22, 72, 4, 97, 193, 56, 148, 212, 4, 224, 35,
-			83, 81, 6, 35, 50, 37, 89, 47, 35, 50, 0, 0, 14, 69, 32, 83, 1, 5, 48, 107, 116, 55, 6, 115, 89, 0, 0, 14, 70, 77,
-			68, 129, 85, 52, 192, 89, 47, 34, 129, 89, 0, 0, 10, 1, 126, 47, 109, 55, 72, 13, 0, 27, 0, 13, 69, 12, 86, 76, 60, 224,
-			89, 13, 55, 110, 50, 0, 13, 4, 95, 116, 108, 100, 47, 6, 109, 55, 72, 13, 0, 0, 13, 69, 8, 86, 69, 73, 48, 71, 123, 13,
-			34, 89, 0, 0, 0, 18, 71, 17, 35, 207, 53, 53, 5, 72, 72, 34, 117, 65, 89, 47, 112, 34, 0, 0, 0, 0, 0, 9, 198, 45,
-			112, 78, 77, 82, 83, 66, 0, 0, 13, 68, 61, 1, 78, 16, 110, 48, 10, 108, 50, 47, 0, 0, 11, 68, 88, 19, 142, 20, 83, 35,
-			50, 13, 0, 20, 72, 48, 145, 70, 16, 84, 208, 20, 192, 55, 37, 83, 72, 13, 89, 48, 112, 55, 0, 15, 70, 85, 68, 133, 12, 133,
-			0, 118, 47, 34, 112, 136, 47, 0, 0, 0, 7, 196, 60, 227, 65, 28, 65, 15, 69, 12, 194, 67, 34, 32, 49, 55, 37, 91, 6, 123,
-			12, 0, 9, 67, 72, 19, 12, 34, 115, 55, 0, 15, 70, 8, 20, 130, 5, 32, 64, 71, 115, 71, 13, 34, 35, 0, 22, 73, 28, 244,
-			132, 60, 228, 194, 4, 18, 64, 81, 131, 34, 72, 13, 50, 89, 71, 6, 122, 0, 0, 0, 19, 71, 8, 244, 212, 4, 19, 132, 20, 71,
-			6, 117, 89, 47, 115, 50, 72, 13, 0, 10, 199, 4, 19, 135, 4, 19, 132, 20, 66, 21, 73, 25, 32, 78, 76, 50, 8, 60, 82, 192,
-			83, 34, 133, 50, 89, 107, 6, 40, 49, 0, 0, 22, 72, 76, 241, 197, 56, 16, 77, 16, 80, 89, 6, 117, 136, 13, 50, 4, 115, 65,
-			72, 13, 0, 0, 0, 19, 70, 77, 80, 149, 72, 34, 65, 89, 111, 71, 6, 111, 34, 71, 37, 57, 35, 0, 0, 20, 72, 52, 84, 133,
-			28, 80, 137, 20, 64, 65, 116, 34, 13, 136, 13, 71, 37, 47, 0, 21, 66, 16, 16, 72, 35, 15, 84, 6, 37, 50, 76, 37, 0, 81,
-			118, 105, 110, 99, 105, 32, 0, 0, 15, 69, 52, 20, 148, 36, 224, 65, 6, 115, 34, 47, 13, 50, 0, 10, 69, 8, 83, 147, 60, 224,
-			21, 0, 47, 8, 197, 8, 20, 211, 60, 224, 66, 0, 0, 0, 7, 195, 16, 21, 0, 72, 9, 0, 12, 68, 64, 21, 15, 76, 48, 115,
-			47, 110, 89, 0, 17, 70, 56, 85, 19, 61, 113, 76, 50, 108, 47, 89, 117, 84, 112, 55, 0, 18, 71, 28, 16, 78, 16, 85, 197, 28,
-			136, 115, 50, 72, 13, 84, 112, 136, 0, 6, 195, 92, 19, 148, 8, 9, 68, 4, 115, 133, 76, 21, 0, 47, 0, 17, 70, 44, 21, 5,
-			80, 84, 128, 49, 35, 47, 6, 116, 47, 13, 34, 0, 10, 198, 92, 19, 142, 20, 84, 128, 65, 8, 11, 70, 12, 128, 85, 12, 84, 128,
-			21, 0, 47, 0, 0, 22, 72, 88, 84, 147, 36, 225, 1, 8, 16, 83, 113, 34, 89, 10, 13, 50, 72, 115, 71, 35, 0, 0, 11, 200,
-			76, 81, 5, 73, 65, 9, 20, 224, 67, 17, 70, 44, 20, 9, 81, 65, 76, 49, 35, 48, 6, 109, 47, 13, 55, 0, 0, 17, 70, 52,
-			21, 20, 34, 42, 211, 65, 35, 47, 6, 37, 12, 111, 89, 0, 0, 15, 70, 44, 194, 77, 20, 145, 0, 49, 55, 109, 65, 123, 47, 0,
-			17, 70, 29, 35, 206, 17, 148, 192, 136, 34, 131, 50, 47, 10, 123, 89, 0, 15, 70, 16, 145, 134, 85, 84, 192, 72, 13, 83, 118, 12,
-			89, 0, 14, 69, 76, 19, 85, 20, 192, 89, 115, 65, 118, 13, 55, 0, 9, 198, 21, 32, 83, 53, 84, 192, 66, 0, 10, 199, 16, 85,
-			82, 77, 64, 65, 56, 66, 21, 72, 13, 34, 77, 64, 83, 5, 56, 80, 49, 34, 13, 65, 48, 13, 55, 37, 12, 50, 0, 6, 195, 76,
-			16, 131, 13, 0, 0, 18, 70, 52, 16, 193, 72, 243, 137, 65, 35, 49, 35, 34, 6, 117, 50, 37, 0, 17, 70, 56, 80, 146, 5, 50,
-			193, 50, 13, 71, 34, 35, 89, 49, 35, 0, 0, 0, 19, 71, 16, 21, 201, 17, 53, 5, 72, 72, 115, 84, 13, 47, 89, 47, 112, 34,
-			0, 0, 12, 68, 80, 19, 135, 60, 47, 35, 68, 136, 40, 0, 12, 68, 44, 243, 135, 60, 49, 110, 68, 81, 40, 0, 0, 10, 67, 80,
-			243, 153, 47, 120, 50, 37, 0, 0, 0, 22, 72, 45, 83, 147, 52, 21, 9, 28, 80, 49, 111, 50, 89, 65, 6, 115, 47, 13, 136, 13,
-			0, 13, 70, 64, 21, 80, 21, 34, 83, 21, 108, 97, 0, 47, 13, 67, 52, 228, 128, 65, 109, 50, 6, 116, 34, 0, 24, 0, 16, 70,
-			93, 148, 199, 21, 33, 64, 84, 123, 89, 136, 116, 34, 13, 0, 9, 198, 76, 82, 212, 61, 33, 64, 66, 17, 70, 28, 195, 194, 4, 193,
-			64, 136, 55, 117, 71, 6, 115, 55, 13, 0, 9, 198, 16, 242, 212, 61, 33, 64, 66, 14, 70, 76, 50, 21, 81, 65, 64, 89, 49, 111,
-			47, 13, 0, 14, 70, 72, 83, 133, 81, 65, 64, 34, 13, 50, 108, 47, 0, 14, 70, 4, 227, 133, 81, 65, 64, 35, 50, 6, 108, 47,
-			0, 0, 23, 73, 8, 83, 1, 56, 116, 137, 44, 84, 128, 71, 13, 55, 35, 68, 34, 13, 49, 4, 109, 34, 0, 0, 12, 68, 49, 145,
-			9, 4, 55, 109, 72, 37, 35, 0, 13, 66, 17, 32, 72, 6, 110, 49, 47, 13, 34, 0, 24, 16, 66, 9, 96, 71, 123, 83, 6, 117,
-			34, 71, 116, 55, 47, 0, 24, 0, 15, 70, 72, 243, 201, 64, 84, 147, 34, 125, 48, 113, 34, 89, 0, 21, 72, 64, 85, 18, 60, 225,
-			76, 48, 16, 48, 116, 47, 34, 40, 50, 6, 112, 55, 35, 0, 0, 17, 70, 44, 243, 139, 5, 113, 64, 49, 110, 50, 49, 6, 115, 84,
-			13, 0, 0, 0, 17, 70, 52, 244, 212, 21, 37, 0, 65, 6, 110, 89, 47, 13, 34, 47, 0, 12, 68, 12, 147, 132, 100, 89, 109, 50,
-			72, 37, 0, 0, 8, 197, 92, 16, 82, 60, 208, 8, 0, 0, 0, 9, 68, 52, 144, 77, 36, 21, 0, 47, 0, 11, 200, 12, 243, 147,
-			80, 19, 148, 36, 16, 66, 0, 0, 0, 14, 4, 95, 109, 99, 110, 65, 6, 35, 49, 34, 110, 50, 0, 0, 18, 70, 77, 68, 153, 17,
-			35, 211, 89, 47, 34, 123, 47, 10, 34, 110, 89, 0, 17, 70, 44, 21, 19, 92, 147, 139, 49, 35, 47, 89, 84, 13, 50, 49, 0, 13,
-			68, 29, 35, 214, 136, 136, 34, 40, 84, 6, 116, 0, 0, 16, 70, 76, 83, 133, 44, 19, 0, 89, 116, 50, 13, 49, 35, 55, 0, 0,
-			15, 70, 48, 245, 66, 76, 84, 128, 55, 120, 48, 91, 13, 34, 0, 24, 73, 64, 130, 76, 4, 65, 76, 64, 130, 65, 83, 13, 55, 13,
-			72, 6, 112, 55, 83, 37, 38, 35, 0, 0, 16, 70, 56, 20, 208, 21, 36, 192, 50, 35, 89, 48, 112, 34, 89, 0, 15, 70, 64, 85,
-			15, 61, 36, 192, 48, 13, 47, 117, 34, 89, 0, 10, 199, 9, 34, 84, 80, 19, 138, 20, 66, 0, 18, 71, 12, 132, 137, 77, 66, 65,
-			56, 49, 34, 109, 89, 47, 37, 35, 50, 0, 13, 68, 4, 225, 18, 136, 6, 35, 50, 72, 34, 123, 0, 0, 0, 9, 68, 12, 20, 143,
-			48, 21, 0, 47, 11, 68, 4, 195, 1, 32, 2, 35, 55, 115, 0, 0, 15, 70, 60, 81, 9, 65, 84, 192, 117, 72, 37, 48, 111, 89,
-			0, 17, 70, 52, 21, 20, 21, 84, 192, 65, 35, 47, 6, 37, 12, 111, 89, 0, 0, 11, 200, 77, 113, 76, 48, 83, 132, 4, 208, 67,
-			0, 0, 16, 6, 107, 97, 195, 175, 114, 111, 49, 35, 10, 6, 37, 34, 40, 0, 0, 14, 69, 32, 241, 87, 20, 192, 107, 40, 84, 6,
-			112, 55, 0, 0, 9, 198, 77, 64, 67, 12, 21, 15, 66, 20, 71, 81, 32, 70, 4, 193, 193, 72, 47, 34, 35, 83, 6, 35, 55, 81,
-			35, 34, 0, 6, 195, 4, 224, 192, 13, 0, 0, 11, 70, 88, 84, 143, 56, 144, 193, 21, 0, 47, 0, 0, 11, 67, 8, 80, 64, 71,
-			37, 12, 57, 35, 0, 0, 16, 70, 88, 84, 135, 21, 65, 64, 83, 13, 34, 136, 116, 47, 13, 0, 16, 70, 88, 84, 132, 21, 33, 64,
-			83, 112, 34, 72, 13, 34, 13, 0, 9, 198, 24, 18, 212, 85, 33, 64, 66, 16, 70, 69, 82, 74, 61, 65, 64, 49, 37, 136, 6, 110,
-			47, 108, 0, 0, 0, 0, 6, 195, 16, 145, 64, 72, 15, 70, 12, 129, 67, 44, 84, 147, 76, 108, 49, 13, 34, 89, 0, 0, 17, 70,
-			52, 20, 140, 20, 225, 64, 65, 35, 34, 55, 6, 116, 12, 50, 0, 0, 10, 67, 24, 145, 5, 21, 108, 97, 0, 47, 0, 4, 193, 132,
-			43, 0, 22, 72, 20, 193, 77, 20, 229, 1, 48, 80, 108, 55, 13, 65, 108, 50, 47, 6, 115, 55, 13, 0, 0, 0, 14, 69, 49, 82,
-			68, 61, 0, 55, 127, 47, 10, 110, 48, 0, 0, 15, 66, 16, 80, 21, 108, 97, 0, 47, 81, 106, 117, 114, 101, 32, 16, 66, 16, 80,
-			21, 108, 97, 0, 47, 81, 102, 97, 99, 116, 111, 32, 15, 66, 16, 80, 72, 13, 15, 55, 35, 0, 72, 81, 108, 97, 32, 8, 66, 16,
-			80, 72, 13, 0, 46, 0, 0, 0, 0, 14, 69, 88, 243, 21, 37, 64, 83, 110, 55, 10, 127, 47, 0, 13, 69, 32, 82, 77, 5, 64,
-			107, 121, 65, 35, 47, 0, 0, 0, 13, 69, 56, 81, 197, 21, 32, 50, 13, 136, 116, 34, 0, 13, 202, 44, 83, 142, 37, 53, 129, 5,
-			33, 9, 28, 65, 13, 69, 24, 145, 213, 85, 32, 83, 13, 136, 118, 34, 0, 0, 0, 11, 68, 32, 19, 143, 84, 107, 115, 50, 120, 0,
-			20, 71, 28, 84, 141, 60, 193, 78, 20, 75, 109, 12, 65, 13, 55, 6, 37, 12, 50, 0, 19, 71, 8, 84, 206, 20, 65, 78, 20, 71,
-			13, 89, 50, 116, 72, 13, 50, 13, 0, 5, 194, 9, 144, 72, 19, 71, 40, 244, 197, 64, 130, 78, 4, 57, 117, 89, 13, 83, 6, 37,
-			50, 35, 0, 10, 69, 32, 85, 201, 81, 64, 21, 0, 47, 16, 66, 17, 80, 72, 13, 15, 47, 125, 0, 81, 116, 111, 105, 116, 32, 19,
-			66, 17, 80, 72, 13, 15, 48, 34, 6, 116, 0, 81, 112, 114, 101, 101, 122, 32, 18, 66, 17, 80, 72, 13, 15, 48, 55, 125, 0, 81,
-			112, 108, 111, 111, 121, 32, 23, 66, 17, 80, 72, 40, 15, 48, 55, 13, 89, 6, 37, 0, 81, 112, 108, 101, 115, 115, 105, 115, 32, 24,
-			66, 17, 80, 72, 40, 15, 48, 37, 89, 6, 115, 50, 37, 0, 81, 112, 105, 115, 97, 110, 105, 101, 32, 5, 194, 17, 80, 72, 0, 22,
-			72, 12, 132, 137, 77, 66, 65, 56, 16, 49, 34, 13, 89, 47, 37, 57, 6, 115, 50, 35, 0, 0, 14, 69, 56, 82, 193, 5, 32, 50,
-			112, 49, 10, 115, 34, 0, 0, 0, 17, 70, 44, 19, 69, 72, 241, 78, 49, 35, 65, 13, 34, 6, 40, 50, 0, 0, 20, 71, 76, 19,
-			136, 20, 68, 137, 56, 89, 35, 50, 107, 6, 116, 72, 34, 13, 50, 0, 0, 0, 0, 6, 194, 4, 192, 8, 32, 18, 70, 4, 193, 197,
-			72, 153, 0, 35, 55, 136, 6, 116, 34, 116, 12, 14, 0, 0, 18, 71, 72, 17, 5, 52, 86, 69, 72, 34, 115, 72, 13, 65, 123, 13,
-			34, 0, 0, 0, 0, 11, 68, 8, 82, 68, 20, 71, 123, 72, 13, 0, 8, 196, 41, 83, 12, 20, 72, 32, 13, 68, 20, 210, 76, 20,
-			108, 65, 6, 37, 12, 55, 0, 0, 14, 69, 88, 244, 137, 28, 80, 83, 117, 34, 13, 136, 13, 0, 14, 69, 64, 19, 1, 92, 16, 48,
-			13, 55, 115, 84, 35, 0, 13, 69, 20, 224, 207, 72, 80, 133, 68, 49, 131, 34, 0, 10, 69, 64, 19, 69, 48, 16, 21, 0, 47, 14,
-			69, 29, 32, 78, 28, 80, 136, 34, 115, 50, 89, 37, 0, 14, 69, 20, 196, 193, 8, 80, 112, 55, 89, 13, 71, 37, 0, 16, 67, 20,
-			228, 192, 108, 50, 89, 117, 83, 117, 34, 47, 89, 0, 24, 0, 0, 0, 17, 70, 60, 213, 18, 20, 229, 0, 110, 65, 47, 34, 6, 108,
-			50, 47, 0, 22, 66, 21, 64, 108, 47, 89, 6, 108, 47, 13, 34, 35, 0, 81, 99, 101, 116, 101, 114, 97, 32, 9, 198, 92, 16, 82,
-			32, 81, 78, 8, 16, 70, 4, 50, 197, 72, 208, 78, 35, 49, 13, 34, 65, 35, 50, 0, 0, 13, 68, 92, 81, 197, 8, 84, 112, 136,
-			10, 108, 71, 0, 13, 68, 88, 84, 129, 24, 83, 112, 34, 10, 35, 83, 0, 12, 68, 88, 19, 129, 24, 83, 35, 50, 35, 83, 0, 16,
-			69, 76, 145, 83, 80, 16, 89, 37, 38, 6, 108, 89, 47, 35, 0, 15, 69, 64, 20, 129, 80, 80, 48, 35, 34, 6, 115, 47, 13, 0,
-			8, 197, 60, 212, 133, 16, 80, 66, 13, 69, 60, 85, 86, 72, 80, 111, 12, 84, 34, 13, 0, 15, 69, 56, 21, 21, 72, 80, 50, 35,
-			47, 6, 118, 34, 13, 0, 15, 69, 52, 18, 149, 8, 16, 65, 35, 57, 6, 40, 71, 35, 0, 15, 69, 32, 21, 129, 56, 16, 107, 35,
-			84, 6, 35, 50, 35, 0, 0, 0, 15, 70, 92, 18, 204, 60, 241, 128, 84, 115, 49, 55, 117, 83, 0, 21, 71, 8, 16, 137, 48, 243,
-			137, 144, 71, 35, 71, 37, 55, 6, 117, 50, 37, 38, 13, 0, 0, 10, 199, 84, 149, 5, 72, 208, 84, 20, 67, 10, 199, 80, 83, 141,
-			36, 228, 212, 20, 66, 0, 11, 200, 52, 148, 194, 73, 82, 75, 80, 80, 66, 4, 193, 136, 43, 0, 0, 0, 0, 0, 17, 67, 36, 228,
-			208, 109, 50, 89, 48, 108, 49, 47, 6, 128, 34, 0, 24, 0, 16, 70, 4, 229, 8, 60, 226, 69, 35, 50, 47, 6, 117, 50, 37, 0,
-			0, 13, 69, 8, 243, 65, 5, 64, 71, 117, 65, 115, 47, 0, 0, 0, 9, 198, 72, 243, 132, 20, 83, 0, 66, 9, 198, 60, 244, 130,
-			60, 244, 132, 66, 11, 68, 88, 144, 203, 76, 84, 37, 49, 89, 0, 0, 18, 71, 9, 82, 84, 21, 1, 82, 16, 71, 127, 47, 13, 48,
-			113, 34, 47, 0, 0, 13, 70, 72, 244, 211, 61, 85, 192, 34, 13, 89, 120, 0, 0, 15, 70, 64, 130, 76, 48, 148, 19, 83, 109, 55,
-			13, 48, 89, 0, 0, 10, 69, 88, 144, 212, 61, 32, 21, 0, 47, 0, 17, 71, 8, 194, 71, 56, 21, 76, 80, 71, 55, 109, 136, 50,
-			120, 47, 0, 0, 0, 0, 0, 16, 69, 21, 52, 5, 4, 176, 37, 12, 38, 89, 48, 37, 12, 49, 0, 0, 0, 14, 69, 57, 83, 69,
-			72, 144, 50, 111, 65, 13, 34, 37, 0, 16, 70, 24, 85, 1, 44, 16, 83, 83, 108, 47, 35, 49, 115, 89, 0, 16, 70, 8, 16, 133,
-			48, 16, 83, 71, 35, 71, 13, 55, 115, 89, 0, 20, 72, 61, 85, 5, 56, 145, 75, 92, 16, 120, 47, 13, 50, 6, 37, 49, 58, 35,
-			0, 0, 0, 7, 196, 44, 243, 148, 20, 65, 13, 70, 72, 245, 83, 76, 80, 85, 34, 13, 89, 120, 0, 22, 68, 80, 128, 66, 4, 47,
-			35, 71, 6, 115, 15, 50, 76, 40, 0, 81, 110, 99, 104, 117, 32, 0, 15, 69, 52, 245, 15, 72, 80, 65, 117, 47, 6, 117, 34, 13,
-			0, 15, 69, 4, 97, 193, 56, 80, 35, 83, 81, 6, 115, 50, 13, 0, 13, 69, 52, 20, 148, 32, 16, 65, 35, 34, 47, 35, 0, 13,
-			69, 8, 84, 148, 32, 16, 71, 112, 34, 47, 35, 0, 0, 12, 201, 81, 32, 80, 77, 85, 84, 40, 145, 83, 66, 21, 72, 44, 243, 15,
-			77, 49, 78, 76, 80, 49, 110, 55, 13, 89, 6, 134, 50, 89, 13, 0, 0, 18, 71, 77, 65, 80, 32, 19, 149, 76, 89, 47, 13, 83,
-			115, 50, 111, 89, 0, 0, 10, 67, 64, 243, 132, 48, 135, 50, 47, 0, 0, 14, 69, 52, 147, 149, 80, 80, 65, 13, 50, 118, 47, 13,
-			0, 14, 69, 52, 17, 1, 52, 80, 65, 35, 72, 6, 115, 65, 0, 14, 69, 36, 225, 129, 52, 80, 13, 50, 83, 115, 65, 13, 0, 19,
-			71, 12, 19, 69, 52, 33, 82, 80, 49, 35, 65, 13, 65, 71, 6, 113, 34, 0, 14, 69, 4, 98, 197, 72, 80, 35, 83, 49, 116, 34,
-			13, 0, 10, 67, 8, 243, 143, 21, 108, 97, 0, 47, 9, 197, 16, 16, 82, 56, 16, 8, 32, 8, 197, 80, 246, 79, 80, 16, 66, 13,
-			69, 101, 99, 206, 56, 80, 37, 84, 6, 110, 50, 0, 13, 69, 64, 131, 197, 8, 80, 83, 37, 12, 71, 37, 0, 14, 69, 48, 83, 206,
-			36, 80, 55, 37, 6, 117, 50, 37, 0, 14, 69, 16, 80, 143, 72, 16, 72, 13, 71, 117, 34, 35, 0, 0, 0, 8, 197, 60, 244, 140,
-			20, 112, 66, 13, 69, 60, 229, 15, 56, 112, 110, 50, 47, 110, 68, 0, 0, 0, 0, 17, 70, 16, 80, 149, 77, 54, 64, 72, 13, 71,
-			40, 89, 6, 37, 12, 0, 0, 10, 67, 76, 147, 133, 21, 108, 97, 0, 47, 11, 70, 88, 144, 212, 61, 34, 65, 21, 0, 47, 19, 70,
-			49, 80, 210, 21, 66, 65, 55, 40, 49, 34, 6, 37, 12, 91, 57, 35, 0, 0, 4, 193, 140, 43, 13, 67, 28, 83, 140, 136, 13, 50,
-			13, 34, 115, 55, 0, 0, 13, 69, 28, 19, 132, 32, 144, 81, 35, 50, 72, 37, 0, 0, 25, 74, 76, 225, 69, 84, 32, 76, 20, 97,
-			133, 44, 89, 50, 119, 71, 35, 55, 10, 37, 83, 4, 108, 49, 0, 13, 70, 16, 83, 9, 13, 66, 64, 21, 108, 97, 0, 47, 0, 16,
-			69, 12, 20, 201, 56, 240, 49, 35, 89, 6, 37, 12, 50, 120, 0, 0, 17, 70, 32, 16, 129, 45, 82, 192, 107, 6, 35, 71, 35, 49,
-			111, 49, 0, 10, 199, 76, 48, 82, 48, 21, 20, 36, 66, 20, 71, 56, 81, 133, 73, 66, 84, 36, 50, 108, 83, 13, 34, 47, 6, 37,
-			47, 37, 0, 0, 16, 70, 73, 82, 203, 21, 34, 71, 34, 111, 49, 13, 34, 13, 136, 0, 7, 195, 16, 149, 0, 72, 32, 19, 71, 20,
-			194, 83, 4, 33, 84, 32, 37, 55, 6, 37, 89, 35, 71, 108, 47, 0, 0, 33, 68, 52, 241, 21, 76, 65, 4, 117, 72, 111, 89, 15,
-			117, 48, 13, 34, 6, 35, 50, 72, 37, 0, 81, 111, 112, 101, 114, 97, 110, 100, 105, 32, 0, 15, 70, 53, 144, 149, 72, 114, 0, 65,
-			123, 71, 111, 34, 136, 0, 0, 21, 67, 77, 84, 20, 89, 40, 48, 34, 108, 50, 47, 108, 50, 72, 6, 108, 50, 47, 0, 24, 0, 0,
-			0, 8, 196, 4, 117, 5, 72, 72, 10, 0, 0, 12, 69, 32, 242, 193, 4, 144, 107, 110, 49, 122, 0, 11, 200, 20, 65, 76, 4, 112,
-			129, 72, 80, 67, 15, 72, 16, 243, 73, 12, 147, 9, 84, 208, 21, 108, 97, 0, 47, 0, 13, 72, 52, 16, 203, 36, 229, 15, 76, 128,
-			21, 0, 47, 0, 7, 195, 16, 19, 128, 8, 32, 0, 0, 0, 16, 70, 52, 245, 15, 73, 38, 64, 65, 117, 47, 13, 34, 34, 123, 0,
-			0, 12, 201, 92, 16, 82, 76, 182, 78, 48, 146, 197, 66, 10, 67, 88, 84, 128, 83, 6, 113, 34, 0, 13, 68, 52, 19, 1, 56, 65,
-			35, 55, 6, 35, 50, 0, 0, 0, 6, 195, 76, 21, 75, 13, 0, 0, 10, 67, 64, 84, 170, 48, 13, 34, 40, 0, 8, 67, 48, 17,
-			25, 21, 0, 47, 0, 0, 8, 197, 28, 83, 129, 16, 80, 66, 14, 69, 8, 83, 129, 16, 80, 71, 13, 50, 115, 72, 37, 0, 0, 12,
-			69, 13, 40, 67, 32, 80, 49, 34, 108, 91, 0, 0, 10, 67, 8, 243, 129, 21, 108, 97, 0, 47, 0, 10, 68, 60, 244, 146, 100, 117,
-			34, 123, 0, 0, 17, 70, 72, 85, 15, 72, 145, 75, 34, 13, 47, 40, 34, 6, 37, 49, 0, 12, 69, 24, 16, 212, 84, 208, 21, 108,
-			97, 0, 47, 0, 12, 68, 88, 243, 22, 60, 84, 110, 55, 84, 40, 0, 0, 6, 195, 20, 243, 133, 66, 10, 67, 8, 83, 133, 71, 116,
-			50, 13, 0, 4, 193, 144, 43, 0, 0, 9, 198, 88, 244, 133, 56, 64, 71, 67, 21, 72, 20, 211, 65, 72, 83, 148, 36, 16, 108, 65,
-			35, 34, 6, 134, 50, 91, 57, 35, 0, 0, 6, 194, 8, 240, 72, 10, 11, 70, 29, 33, 71, 61, 38, 64, 21, 0, 47, 0, 15, 69,
-			52, 243, 129, 12, 240, 65, 110, 50, 6, 115, 49, 40, 0, 0, 0, 11, 200, 44, 192, 65, 77, 96, 75, 36, 80, 66, 20, 72, 5, 36,
-			143, 28, 19, 147, 36, 80, 35, 34, 40, 136, 6, 35, 50, 89, 37, 0, 11, 70, 52, 21, 82, 20, 83, 128, 21, 0, 47, 9, 198, 40,
-			244, 132, 4, 19, 128, 66, 11, 70, 12, 19, 69, 72, 243, 128, 21, 0, 47, 0, 0, 18, 70, 76, 83, 129, 80, 244, 133, 89, 13, 50,
-			35, 47, 6, 117, 34, 13, 0, 0, 17, 71, 12, 128, 82, 52, 18, 78, 20, 91, 115, 65, 6, 123, 12, 50, 0, 0, 20, 71, 5, 48,
-			70, 77, 64, 78, 16, 35, 89, 10, 35, 83, 89, 47, 35, 50, 47, 0, 21, 73, 12, 132, 137, 77, 67, 198, 24, 83, 0, 49, 34, 13,
-			89, 47, 110, 83, 13, 55, 0, 20, 71, 48, 17, 25, 9, 32, 78, 16, 55, 123, 72, 37, 71, 34, 6, 35, 50, 47, 0, 0, 16, 70,
-			85, 2, 78, 29, 67, 206, 35, 48, 37, 68, 47, 13, 50, 0, 0, 17, 3, 226, 133, 148, 47, 58, 4, 116, 72, 6, 113, 34, 72, 13,
-			89, 0, 0, 0, 0, 0, 19, 71, 76, 80, 129, 77, 66, 65, 56, 89, 13, 71, 35, 89, 47, 37, 35, 50, 0, 0, 14, 70, 12, 147,
-			147, 5, 85, 0, 89, 13, 50, 89, 117, 0, 11, 3, 226, 133, 147, 72, 113, 34, 72, 13, 0, 0, 0, 9, 198, 88, 243, 210, 92, 16,
-			82, 66, 0, 14, 69, 76, 50, 1, 48, 176, 89, 49, 6, 35, 55, 49, 0, 0, 0, 16, 70, 48, 21, 5, 28, 19, 128, 55, 115, 47,
-			13, 136, 35, 50, 0, 11, 70, 12, 194, 70, 80, 243, 128, 21, 0, 47, 0, 0, 10, 67, 4, 128, 64, 115, 107, 26, 115, 0, 0, 11,
-			68, 52, 20, 137, 20, 65, 115, 34, 37, 0, 0, 19, 70, 76, 19, 148, 36, 17, 207, 89, 35, 50, 47, 37, 38, 6, 115, 81, 40, 0,
-			4, 193, 148, 43, 0, 0, 16, 73, 52, 17, 1, 52, 242, 83, 20, 195, 5, 21, 102, 114, 0, 47, 11, 67, 105, 83, 65, 88, 40, 12,
-			65, 35, 0, 9, 3, 226, 130, 172, 128, 34, 40, 0, 0, 10, 199, 60, 227, 205, 92, 243, 132, 20, 67, 0, 21, 72, 88, 84, 139, 20,
-			84, 132, 60, 208, 83, 13, 34, 49, 116, 34, 47, 10, 110, 65, 0, 0, 0, 8, 67, 40, 19, 133, 21, 0, 47, 0, 11, 68, 16, 18,
-			83, 100, 72, 123, 88, 37, 0, 16, 70, 64, 144, 193, 77, 51, 192, 48, 37, 49, 6, 35, 89, 40, 0, 0, 11, 200, 12, 19, 142, 20,
-			195, 15, 56, 144, 67, 0, 9, 66, 20, 176, 112, 49, 0, 72, 32, 10, 67, 41, 80, 78, 136, 58, 35, 50, 0, 0, 9, 198, 12, 243,
-			134, 21, 69, 9, 66, 0, 0, 9, 198, 60, 225, 5, 73, 113, 71, 67, 7, 195, 32, 85, 0, 72, 32, 17, 70, 24, 147, 5, 52, 243,
-			128, 83, 6, 37, 55, 13, 65, 110, 50, 0, 14, 4, 95, 111, 103, 111, 117, 136, 117, 50, 4, 112, 49, 0, 0, 10, 67, 5, 51, 198,
-			35, 89, 110, 83, 0, 0, 20, 71, 28, 192, 68, 36, 21, 15, 72, 136, 55, 35, 72, 37, 6, 115, 47, 110, 34, 0, 0, 0, 0, 6,
-			194, 37, 48, 72, 32, 24, 73, 16, 244, 212, 60, 161, 87, 76, 178, 64, 72, 110, 89, 47, 110, 57, 6, 108, 84, 89, 49, 37, 0, 16,
-			67, 65, 35, 198, 48, 34, 40, 83, 6, 108, 89, 13, 34, 0, 24, 0, 14, 69, 52, 20, 129, 37, 48, 65, 35, 34, 6, 108, 12, 0,
-			0, 9, 198, 60, 225, 5, 73, 118, 76, 67, 9, 67, 40, 242, 12, 57, 117, 55, 0, 0, 13, 69, 16, 85, 82, 73, 144, 72, 128, 34,
-			34, 123, 0, 0, 17, 70, 52, 21, 20, 32, 90, 211, 65, 35, 47, 6, 37, 12, 111, 89, 0, 0, 17, 70, 4, 97, 193, 4, 228, 197,
-			35, 83, 81, 6, 115, 50, 89, 13, 0, 12, 71, 92, 147, 66, 48, 81, 15, 56, 21, 0, 47, 0, 18, 70, 12, 243, 5, 57, 51, 192,
-			49, 40, 55, 6, 108, 12, 50, 89, 120, 0, 0, 0, 9, 198, 60, 225, 197, 48, 243, 198, 65, 0, 6, 195, 16, 148, 192, 72, 0, 0,
-			11, 70, 77, 65, 80, 32, 83, 128, 21, 0, 47, 15, 70, 77, 65, 80, 32, 19, 128, 89, 47, 116, 83, 35, 50, 0, 16, 70, 4, 68,
-			137, 4, 19, 128, 115, 72, 34, 37, 57, 35, 50, 0, 0, 14, 71, 8, 245, 82, 28, 83, 201, 76, 21, 102, 114, 0, 47, 15, 70, 52,
-			83, 9, 77, 48, 64, 65, 13, 55, 109, 89, 35, 0, 0, 0, 17, 70, 88, 249, 12, 20, 229, 0, 83, 117, 13, 55, 10, 108, 50, 47,
-			0, 8, 67, 48, 244, 132, 21, 0, 47, 11, 68, 29, 32, 84, 4, 21, 108, 97, 0, 47, 16, 73, 21, 128, 213, 77, 50, 79, 56, 148,
-			192, 21, 108, 97, 0, 47, 7, 195, 92, 244, 132, 72, 32, 11, 68, 72, 85, 8, 4, 34, 116, 47, 35, 0, 0, 14, 71, 9, 42, 206,
-			32, 147, 4, 20, 21, 100, 101, 0, 47, 0, 9, 198, 60, 229, 133, 72, 211, 228, 65, 15, 70, 28, 243, 79, 73, 32, 64, 136, 13, 65,
-			110, 34, 35, 0, 17, 70, 48, 80, 78, 17, 32, 64, 55, 37, 6, 35, 50, 72, 34, 35, 0, 16, 4, 95, 98, 114, 118, 49, 6, 110,
-			34, 47, 116, 49, 13, 50, 0, 0, 12, 71, 28, 83, 148, 48, 83, 65, 56, 21, 0, 47, 10, 67, 37, 4, 193, 21, 108, 97, 0, 47,
-			10, 67, 88, 84, 129, 84, 116, 34, 35, 0, 0, 15, 70, 72, 145, 75, 21, 37, 0, 34, 37, 49, 13, 34, 47, 0, 18, 71, 8, 85,
-			8, 48, 82, 5, 52, 71, 108, 47, 10, 55, 37, 108, 65, 0, 0, 13, 69, 88, 84, 151, 21, 144, 83, 13, 34, 84, 123, 0, 6, 195,
-			37, 50, 83, 65, 0, 14, 69, 37, 52, 129, 20, 192, 109, 89, 34, 121, 12, 55, 0, 17, 4, 95, 97, 99, 50, 72, 6, 111, 71, 13,
-			55, 35, 49, 118, 47, 0, 0, 15, 69, 32, 20, 132, 61, 0, 107, 35, 34, 47, 19, 110, 48, 0, 0, 9, 198, 88, 243, 19, 64, 241,
-			68, 65, 17, 70, 52, 242, 1, 52, 209, 68, 65, 40, 107, 6, 35, 65, 13, 47, 0, 14, 70, 8, 83, 142, 21, 69, 0, 71, 108, 50,
-			13, 47, 0, 0, 0, 0, 9, 198, 77, 66, 76, 77, 118, 69, 65, 0, 9, 198, 4, 197, 5, 52, 149, 0, 67, 0, 0, 0, 14, 69,
-			80, 19, 135, 5, 48, 47, 35, 68, 81, 35, 89, 0, 27, 69, 9, 81, 78, 61, 48, 71, 58, 108, 50, 110, 89, 10, 6, 121, 34, 108,
-			89, 0, 81, 97, 105, 114, 101, 115, 32, 0, 15, 70, 88, 149, 137, 21, 36, 192, 84, 13, 84, 13, 57, 116, 0, 0, 0, 11, 68, 16,
-			243, 21, 76, 21, 108, 97, 0, 47, 11, 68, 12, 132, 137, 76, 49, 34, 109, 89, 0, 0, 12, 68, 76, 245, 133, 72, 89, 117, 83, 112,
-			34, 0, 12, 69, 4, 210, 67, 85, 48, 21, 108, 97, 0, 47, 0, 0, 10, 198, 52, 148, 194, 73, 82, 75, 66, 36, 10, 69, 28, 21,
-			19, 9, 144, 21, 0, 47, 0, 0, 0, 0, 0, 7, 194, 20, 224, 72, 8, 32, 0, 15, 72, 16, 149, 137, 76, 147, 206, 37, 48, 21,
-			108, 97, 0, 47, 10, 67, 48, 85, 137, 55, 116, 83, 37, 0, 13, 3, 95, 51, 88, 6, 72, 112, 34, 47, 109, 136, 0, 0, 11, 68,
-			88, 84, 146, 20, 83, 113, 34, 13, 0, 12, 68, 80, 133, 76, 4, 47, 40, 12, 55, 35, 0, 13, 70, 16, 83, 9, 13, 67, 192, 21,
-			108, 97, 0, 47, 13, 69, 80, 129, 82, 60, 224, 47, 34, 6, 110, 50, 0, 10, 69, 48, 147, 9, 4, 224, 21, 0, 47, 16, 70, 48,
-			147, 80, 61, 3, 192, 55, 13, 65, 48, 117, 48, 117, 0, 13, 3, 95, 48, 67, 6, 107, 110, 50, 13, 34, 47, 0, 0, 13, 68, 52,
-			244, 142, 136, 65, 110, 34, 50, 6, 123, 0, 16, 7, 107, 97, 110, 97, 195, 164, 110, 49, 115, 50, 115, 35, 50, 0, 16, 70, 12, 19,
-			5, 16, 243, 128, 49, 35, 55, 37, 72, 110, 50, 0, 0, 0, 0, 11, 200, 88, 243, 19, 92, 19, 135, 21, 32, 65, 0, 0, 11, 70,
-			76, 147, 129, 81, 32, 64, 21, 0, 47, 17, 70, 41, 80, 78, 37, 64, 64, 57, 40, 35, 50, 6, 37, 47, 35, 0, 6, 195, 5, 66,
-			214, 13, 0, 10, 67, 52, 20, 129, 65, 115, 34, 35, 0, 17, 70, 16, 19, 137, 20, 195, 5, 72, 35, 50, 37, 38, 6, 112, 55, 0,
-			0, 16, 69, 20, 180, 197, 48, 96, 2, 112, 49, 89, 6, 112, 55, 83, 0, 13, 69, 72, 85, 9, 20, 96, 34, 13, 47, 37, 83, 0,
-			20, 71, 52, 85, 21, 76, 19, 5, 52, 65, 13, 47, 6, 118, 89, 35, 55, 108, 65, 0, 0, 9, 198, 80, 245, 19, 36, 83, 147, 66,
-			18, 72, 12, 132, 137, 77, 65, 76, 48, 80, 49, 34, 13, 89, 47, 112, 55, 0, 0, 14, 69, 8, 84, 215, 36, 192, 71, 108, 89, 84,
-			13, 55, 0, 11, 68, 80, 242, 201, 60, 47, 117, 49, 119, 0, 0, 10, 67, 32, 84, 133, 107, 116, 34, 13, 0, 9, 68, 60, 113, 5,
-			56, 21, 0, 47, 0, 0, 0, 15, 3, 95, 49, 57, 6, 50, 116, 136, 13, 50, 47, 37, 50, 0, 0, 24, 72, 16, 84, 207, 56, 64,
-			78, 45, 48, 72, 108, 89, 19, 110, 50, 72, 35, 68, 49, 89, 0, 8, 32, 13, 3, 95, 49, 56, 10, 6, 35, 136, 47, 37, 50, 0,
-			0, 0, 0, 0, 18, 70, 40, 18, 207, 52, 147, 129, 57, 35, 49, 40, 65, 6, 37, 50, 35, 0, 16, 70, 28, 83, 210, 28, 147, 129,
-			75, 131, 75, 6, 37, 50, 35, 0, 4, 193, 156, 43, 0, 18, 70, 52, 147, 9, 82, 52, 133, 65, 109, 55, 13, 47, 6, 113, 34, 13,
-			0, 0, 16, 70, 44, 21, 137, 4, 20, 128, 49, 35, 84, 37, 6, 115, 34, 0, 14, 70, 24, 148, 195, 32, 84, 128, 83, 37, 91, 13,
-			34, 0, 11, 70, 8, 83, 3, 32, 84, 128, 21, 0, 47, 11, 3, 226, 136, 146, 65, 37, 50, 111, 89, 0, 0, 6, 194, 33, 144, 72,
-			32, 11, 3, 95, 49, 49, 10, 6, 112, 55, 83, 0, 0, 10, 3, 95, 49, 48, 6, 47, 37, 50, 0, 0, 16, 70, 89, 32, 80, 73,
-			148, 192, 83, 34, 115, 48, 34, 123, 89, 0, 16, 70, 45, 113, 69, 45, 112, 76, 49, 58, 116, 49, 84, 35, 55, 0, 17, 70, 48, 20,
-			193, 73, 84, 192, 55, 115, 89, 13, 34, 2, 111, 89, 0, 15, 70, 13, 84, 211, 60, 228, 192, 49, 35, 89, 13, 50, 89, 0, 13, 3,
-			95, 49, 51, 6, 72, 112, 34, 47, 37, 50, 0, 0, 16, 70, 56, 81, 197, 72, 147, 135, 50, 13, 136, 116, 34, 13, 68, 0, 16, 70,
-			8, 85, 197, 72, 147, 135, 71, 13, 84, 116, 34, 109, 68, 0, 13, 70, 28, 241, 66, 8, 83, 19, 21, 100, 101, 0, 47, 13, 3, 95,
-			49, 50, 6, 47, 58, 6, 115, 55, 83, 0, 0, 13, 3, 95, 49, 53, 6, 83, 123, 83, 47, 37, 50, 0, 0, 13, 3, 95, 49, 52,
-			6, 83, 116, 34, 47, 37, 50, 0, 0, 10, 199, 36, 225, 197, 88, 243, 7, 20, 67, 12, 68, 92, 147, 80, 100, 58, 109, 65, 48, 37,
-			0, 15, 3, 95, 49, 55, 6, 89, 116, 84, 13, 50, 47, 37, 50, 0, 0, 15, 204, 92, 81, 82, 88, 243, 210, 77, 1, 76, 48, 147,
-			135, 65, 10, 67, 88, 84, 135, 83, 112, 34, 136, 0, 13, 3, 95, 49, 54, 6, 89, 108, 89, 47, 37, 50, 0, 0, 14, 69, 52, 244,
-			139, 20, 192, 65, 110, 34, 49, 13, 55, 0, 0, 9, 68, 32, 83, 5, 56, 21, 0, 47, 21, 72, 5, 32, 200, 36, 209, 68, 21, 48,
-			35, 34, 136, 37, 65, 6, 116, 72, 108, 89, 0, 15, 3, 95, 55, 88, 6, 89, 116, 84, 13, 50, 47, 109, 136, 0, 0, 12, 68, 45,
-			34, 71, 20, 49, 34, 37, 136, 13, 0, 0, 17, 71, 64, 192, 65, 76, 160, 65, 64, 48, 55, 115, 89, 57, 115, 48, 0, 0, 17, 70,
-			76, 243, 66, 21, 33, 64, 89, 6, 110, 65, 71, 13, 34, 13, 0, 16, 70, 69, 82, 88, 61, 65, 64, 49, 37, 136, 6, 110, 47, 108,
-			0, 0, 10, 67, 41, 84, 192, 21, 108, 97, 0, 47, 0, 13, 68, 40, 244, 213, 4, 57, 6, 117, 91, 37, 35, 0, 9, 68, 41, 83,
-			9, 4, 21, 0, 47, 10, 3, 95, 49, 111, 10, 6, 116, 34, 0, 0, 0, 15, 70, 20, 97, 133, 57, 49, 64, 108, 83, 13, 50, 89,
-			13, 0, 17, 70, 52, 20, 140, 37, 49, 64, 65, 35, 34, 55, 6, 37, 12, 89, 0, 10, 3, 95, 49, 97, 10, 6, 116, 50, 0, 0,
-			10, 67, 88, 149, 129, 84, 37, 84, 35, 0, 19, 71, 33, 83, 12, 21, 49, 76, 24, 107, 111, 55, 13, 89, 112, 55, 83, 0, 32, 0,
-			18, 71, 44, 147, 66, 21, 35, 5, 100, 49, 37, 65, 71, 13, 34, 55, 37, 0, 0, 17, 70, 77, 65, 82, 92, 83, 147, 89, 47, 112,
-			34, 84, 13, 50, 89, 0, 19, 72, 80, 84, 130, 48, 19, 131, 32, 80, 47, 13, 34, 71, 55, 115, 50, 91, 0, 0, 0, 12, 4, 95,
-			97, 99, 117, 35, 49, 6, 118, 47, 0, 0, 10, 67, 12, 20, 140, 49, 115, 34, 114, 0, 10, 3, 95, 50, 111, 47, 58, 6, 116, 0,
-			0, 0, 24, 73, 64, 21, 18, 36, 245, 9, 76, 209, 64, 48, 35, 47, 34, 37, 40, 47, 6, 109, 89, 65, 13, 0, 0, 0, 4, 193,
-			160, 43, 0, 13, 6, 114, 104, 195, 180, 110, 101, 21, 102, 114, 0, 47, 0, 17, 70, 20, 97, 83, 38, 68, 128, 37, 83, 6, 116, 89,
-			37, 13, 34, 0, 0, 0, 10, 3, 95, 51, 111, 72, 6, 113, 34, 0, 0, 12, 68, 76, 18, 78, 80, 89, 109, 50, 47, 0, 72, 16,
-			70, 41, 84, 9, 80, 84, 128, 57, 40, 48, 37, 47, 13, 34, 0, 9, 198, 20, 83, 139, 20, 84, 128, 65, 16, 70, 16, 17, 211, 80,
-			84, 128, 72, 35, 136, 89, 47, 112, 34, 0, 0, 0, 14, 3, 95, 50, 88, 6, 47, 58, 109, 50, 47, 109, 136, 0, 0, 12, 69, 76,
-			50, 15, 61, 32, 89, 49, 117, 34, 0, 15, 70, 48, 82, 80, 60, 193, 20, 55, 122, 48, 110, 55, 47, 0, 0, 0, 16, 71, 84, 149,
-			4, 4, 114, 78, 28, 127, 72, 115, 136, 13, 68, 0, 23, 73, 12, 192, 78, 92, 147, 12, 36, 19, 64, 49, 55, 113, 50, 58, 6, 37,
-			55, 37, 13, 65, 0, 15, 69, 8, 241, 207, 81, 192, 71, 110, 81, 110, 47, 6, 115, 0, 0, 0, 21, 9, 104, 101, 108, 108, 111, 195,
-			175, 115, 101, 107, 108, 55, 40, 58, 6, 37, 12, 88, 0, 0, 14, 73, 77, 4, 137, 56, 116, 212, 20, 83, 128, 21, 0, 47, 0, 0,
-			20, 72, 76, 179, 204, 48, 145, 78, 21, 48, 89, 49, 110, 55, 37, 50, 4, 108, 89, 0, 21, 72, 65, 149, 8, 4, 115, 210, 5, 48,
-			48, 37, 47, 6, 115, 136, 117, 34, 35, 89, 0, 0, 12, 68, 88, 84, 147, 20, 83, 113, 34, 89, 13, 0, 13, 69, 44, 243, 65, 4,
-			224, 49, 110, 65, 115, 50, 0, 12, 68, 20, 226, 71, 20, 116, 50, 109, 136, 13, 0, 12, 68, 80, 19, 137, 4, 47, 35, 50, 57, 35,
-			0, 8, 197, 52, 147, 1, 4, 224, 66, 0, 0, 17, 70, 88, 18, 193, 57, 65, 64, 83, 2, 35, 49, 35, 50, 47, 13, 0, 9, 198,
-			65, 34, 77, 5, 65, 64, 66, 9, 198, 45, 83, 20, 85, 33, 64, 66, 9, 198, 5, 53, 1, 73, 65, 64, 66, 0, 0, 13, 68, 44,
-			83, 137, 4, 49, 37, 12, 50, 37, 35, 0, 13, 3, 95, 63, 63, 89, 13, 65, 71, 6, 117, 55, 0, 0, 0, 9, 198, 60, 244, 147,
-			21, 49, 64, 66, 0, 8, 67, 28, 81, 64, 136, 116, 0, 13, 3, 95, 52, 88, 6, 83, 116, 34, 47, 109, 136, 0, 0, 0, 0, 0,
-			11, 67, 8, 85, 1, 71, 116, 47, 35, 0, 46, 12, 71, 16, 243, 129, 48, 68, 207, 56, 21, 0, 47, 0, 14, 68, 56, 19, 205, 36,
-			50, 35, 10, 6, 117, 65, 37, 0, 18, 70, 37, 50, 193, 72, 147, 212, 37, 89, 49, 6, 35, 34, 37, 110, 47, 0, 17, 70, 8, 21,
-			1, 88, 153, 0, 71, 35, 47, 6, 115, 84, 37, 13, 0, 0, 0, 20, 73, 32, 19, 132, 80, 84, 148, 40, 145, 64, 107, 35, 50, 47,
-			113, 34, 80, 37, 0, 5, 194, 56, 16, 72, 8, 66, 48, 80, 55, 13, 0, 46, 0, 13, 3, 95, 53, 88, 6, 83, 123, 83, 47, 109,
-			136, 0, 0, 19, 71, 44, 243, 80, 84, 196, 201, 20, 49, 110, 65, 48, 6, 111, 55, 89, 37, 0, 0, 18, 71, 8, 244, 132, 20, 115,
-			197, 16, 71, 131, 34, 72, 13, 136, 40, 47, 0, 12, 68, 56, 21, 68, 136, 50, 110, 72, 6, 116, 0, 13, 4, 95, 114, 110, 103, 6,
-			115, 50, 71, 112, 55, 0, 0, 13, 69, 48, 81, 193, 5, 64, 55, 13, 136, 115, 47, 0, 0, 0, 14, 69, 17, 84, 214, 21, 32, 72,
-			111, 89, 83, 112, 34, 0, 12, 3, 95, 55, 111, 89, 6, 116, 84, 13, 50, 0, 0, 0, 14, 69, 77, 80, 137, 21, 64, 89, 111, 71,
-			6, 37, 47, 0, 18, 71, 72, 147, 80, 20, 194, 78, 28, 34, 109, 65, 48, 13, 55, 13, 68, 0, 14, 69, 52, 84, 140, 61, 64, 65,
-			112, 34, 55, 6, 117, 0, 6, 194, 41, 144, 72, 32, 0, 13, 3, 95, 54, 88, 6, 89, 108, 89, 47, 109, 136, 0, 0, 17, 70, 21,
-			113, 78, 81, 114, 76, 116, 84, 13, 50, 47, 84, 13, 55, 0, 0, 0, 16, 70, 8, 85, 197, 8, 81, 78, 71, 116, 84, 13, 71, 116,
-			50, 0, 0, 20, 72, 36, 224, 71, 56, 83, 73, 56, 112, 13, 50, 35, 136, 50, 116, 65, 13, 68, 0, 17, 70, 17, 85, 133, 56, 17,
-			197, 72, 118, 84, 13, 50, 115, 136, 13, 0, 0, 19, 71, 28, 83, 4, 20, 194, 75, 20, 136, 112, 55, 72, 13, 55, 13, 49, 13, 0,
-			0, 13, 70, 16, 148, 133, 13, 69, 83, 21, 108, 97, 0, 47, 18, 70, 4, 192, 133, 73, 69, 83, 35, 55, 71, 6, 112, 34, 47, 111,
-			89, 0, 17, 70, 16, 19, 65, 76, 181, 83, 72, 13, 65, 35, 89, 49, 111, 89, 0, 0, 0, 0, 0, 12, 69, 80, 241, 71, 20, 80,
-			47, 40, 136, 116, 0, 12, 69, 52, 81, 71, 20, 80, 65, 116, 136, 116, 0, 16, 69, 36, 225, 21, 56, 16, 37, 50, 72, 6, 40, 12,
-			50, 35, 0, 8, 197, 40, 84, 193, 40, 16, 66, 14, 69, 52, 243, 137, 12, 16, 65, 110, 50, 37, 49, 35, 0, 15, 69, 32, 83, 5,
-			56, 16, 107, 37, 55, 6, 116, 50, 35, 0, 13, 69, 24, 245, 82, 36, 80, 83, 40, 34, 6, 37, 0, 0, 0, 12, 68, 8, 82, 193,
-			24, 71, 112, 49, 35, 83, 0, 0, 11, 3, 95, 57, 111, 50, 116, 136, 13, 50, 0, 0, 13, 69, 8, 85, 19, 36, 80, 71, 108, 47,
-			89, 37, 0, 13, 69, 44, 230, 83, 56, 16, 50, 123, 89, 50, 35, 0, 0, 0, 8, 195, 40, 245, 64, 72, 46, 32, 10, 69, 8, 241,
-			73, 56, 112, 21, 0, 47, 20, 71, 52, 16, 197, 16, 243, 137, 144, 65, 35, 89, 13, 72, 6, 117, 50, 37, 13, 0, 13, 3, 95, 56,
-			88, 6, 47, 35, 136, 47, 109, 136, 0, 0, 10, 199, 24, 147, 129, 48, 148, 212, 20, 67, 0, 9, 198, 60, 244, 140, 20, 81, 128, 66,
-			13, 70, 21, 128, 204, 85, 50, 79, 21, 108, 97, 0, 47, 0, 0, 11, 70, 88, 148, 135, 36, 226, 65, 21, 0, 47, 0, 0, 0, 0,
-			9, 198, 84, 226, 70, 61, 35, 69, 67, 15, 3, 95, 57, 88, 6, 50, 116, 136, 13, 50, 47, 109, 136, 0, 0, 0, 6, 195, 52, 85,
-			0, 72, 0, 0, 0, 0, 0, 13, 69, 52, 147, 149, 85, 64, 65, 13, 50, 118, 47, 0, 12, 3, 95, 63, 65, 55, 6, 108, 47, 13,
-			34, 0, 0, 11, 68, 36, 229, 5, 72, 21, 108, 97, 0, 47, 8, 196, 60, 225, 5, 72, 72, 10, 0, 8, 197, 92, 21, 20, 21, 32,
-			8, 0, 0, 18, 71, 76, 50, 1, 48, 181, 217, 44, 89, 49, 35, 55, 49, 84, 123, 49, 0, 16, 70, 20, 147, 147, 80, 82, 78, 121,
-			50, 89, 47, 121, 12, 50, 0, 17, 70, 92, 19, 12, 60, 226, 100, 84, 35, 55, 6, 117, 50, 37, 13, 0, 19, 71, 64, 146, 197, 80,
-			33, 82, 28, 48, 13, 49, 108, 47, 71, 112, 34, 136, 0, 18, 71, 12, 243, 5, 76, 33, 82, 28, 49, 117, 55, 89, 71, 112, 34, 136,
-			0, 0, 0, 21, 72, 8, 19, 135, 48, 17, 5, 76, 160, 71, 35, 68, 81, 55, 35, 72, 6, 108, 91, 0, 4, 193, 168, 43, 0, 18,
-			70, 88, 84, 213, 88, 149, 83, 84, 13, 89, 40, 12, 84, 37, 111, 89, 0, 15, 69, 84, 197, 78, 16, 144, 40, 55, 6, 40, 50, 72,
-			37, 0, 13, 4, 95, 115, 116, 107, 89, 47, 34, 6, 116, 48, 0, 0, 17, 70, 76, 243, 143, 56, 65, 82, 89, 110, 50, 10, 110, 50,
-			13, 34, 0, 20, 71, 4, 229, 8, 60, 226, 85, 76, 35, 50, 47, 6, 117, 50, 37, 38, 111, 89, 0, 0, 19, 66, 36, 224, 21, 108,
-			97, 0, 47, 81, 101, 120, 116, 114, 101, 109, 105, 115, 32, 19, 66, 36, 224, 21, 108, 97, 0, 47, 81, 97, 98, 115, 101, 110, 116, 105,
-			97, 32, 17, 66, 36, 224, 21, 108, 97, 0, 47, 81, 100, 101, 98, 105, 116, 105, 32, 5, 194, 36, 224, 72, 10, 3, 226, 153, 175, 49,
-			34, 127, 89, 0, 0, 0, 12, 68, 80, 84, 149, 28, 47, 14, 34, 111, 136, 0, 9, 3, 226, 153, 173, 65, 110, 55, 0, 0, 23, 73,
-			76, 197, 73, 80, 85, 197, 56, 16, 82, 89, 55, 127, 47, 10, 116, 84, 13, 50, 115, 34, 0, 19, 71, 52, 20, 148, 32, 147, 149, 76,
-			65, 35, 34, 47, 6, 37, 50, 111, 89, 0, 0, 12, 68, 88, 84, 148, 20, 83, 112, 34, 47, 13, 0, 7, 196, 64, 20, 148, 20, 65,
-			12, 68, 24, 244, 148, 20, 83, 110, 34, 47, 13, 0, 24, 68, 12, 20, 144, 20, 49, 35, 34, 48, 108, 15, 72, 37, 12, 108, 65, 0,
-			81, 100, 105, 101, 109, 32, 0, 14, 69, 88, 84, 147, 80, 80, 83, 112, 34, 89, 47, 13, 0, 16, 69, 76, 244, 8, 36, 16, 89, 40,
-			83, 6, 37, 12, 57, 35, 0, 17, 69, 4, 209, 76, 36, 16, 35, 65, 6, 37, 12, 55, 37, 57, 35, 0, 14, 69, 80, 19, 139, 92,
-			16, 47, 35, 68, 49, 58, 35, 0, 14, 69, 28, 17, 1, 72, 16, 136, 13, 72, 115, 34, 35, 0, 0, 0, 0, 0, 15, 69, 80, 245,
-			1, 48, 80, 47, 40, 47, 6, 115, 55, 13, 0, 15, 69, 76, 19, 21, 80, 80, 89, 35, 55, 6, 118, 47, 13, 0, 8, 197, 64, 20,
-			139, 36, 80, 65, 15, 69, 56, 17, 193, 56, 16, 50, 35, 81, 6, 115, 50, 35, 0, 14, 69, 56, 17, 5, 48, 80, 50, 115, 72, 116,
-			55, 13, 0, 14, 69, 48, 81, 193, 80, 80, 55, 13, 136, 115, 47, 13, 0, 15, 69, 16, 82, 193, 16, 80, 72, 108, 49, 6, 115, 72,
-			13, 0, 14, 69, 28, 195, 210, 36, 16, 81, 55, 131, 34, 37, 35, 0, 14, 69, 12, 80, 201, 48, 80, 89, 13, 89, 37, 12, 55, 0,
-			0, 0, 21, 73, 20, 225, 197, 48, 36, 133, 12, 133, 0, 108, 68, 13, 55, 71, 34, 112, 136, 47, 0, 0, 10, 199, 88, 243, 210, 48,
-			83, 148, 20, 65, 0, 20, 72, 52, 20, 135, 84, 84, 137, 80, 80, 65, 115, 81, 13, 34, 6, 37, 12, 47, 0, 0, 0, 8, 197, 44,
-			147, 79, 56, 240, 66, 13, 69, 76, 20, 16, 32, 240, 89, 35, 48, 83, 40, 0, 0, 18, 71, 64, 245, 16, 61, 84, 146, 36, 48, 110,
-			47, 48, 40, 34, 6, 37, 0, 0, 0, 15, 70, 24, 84, 146, 5, 34, 64, 83, 13, 34, 115, 34, 37, 0, 0, 0, 0, 10, 67, 89,
-			33, 75, 83, 34, 112, 49, 0, 13, 68, 60, 225, 69, 72, 110, 50, 10, 116, 34, 0, 46, 13, 70, 36, 224, 204, 85, 50, 79, 21, 108,
-			97, 0, 47, 0, 9, 198, 52, 20, 211, 4, 19, 0, 66, 10, 67, 24, 244, 148, 83, 110, 34, 47, 0, 7, 196, 40, 244, 137, 76, 65,
-			0, 19, 71, 84, 149, 5, 72, 16, 82, 16, 127, 47, 13, 34, 10, 6, 115, 34, 47, 0, 0, 9, 198, 88, 243, 8, 20, 145, 0, 65,
-			16, 70, 12, 132, 137, 76, 160, 78, 49, 34, 109, 89, 57, 35, 50, 0, 12, 4, 95, 99, 105, 114, 49, 6, 35, 48, 37, 0, 4, 193,
-			172, 43, 0, 16, 70, 72, 145, 83, 48, 147, 135, 34, 37, 12, 89, 55, 37, 68, 0, 23, 67, 65, 35, 192, 48, 34, 117, 15, 83, 6,
-			110, 34, 65, 35, 0, 81, 102, 111, 114, 109, 97, 32, 16, 70, 21, 33, 197, 72, 147, 135, 112, 34, 81, 13, 34, 13, 68, 0, 7, 195,
-			4, 19, 128, 72, 10, 17, 70, 44, 19, 1, 24, 243, 135, 49, 35, 55, 35, 83, 6, 110, 68, 0, 0, 0, 14, 69, 48, 144, 137, 16,
-			240, 55, 13, 71, 37, 72, 40, 0, 16, 70, 12, 128, 82, 48, 83, 133, 91, 115, 55, 6, 37, 12, 50, 0, 19, 72, 48, 18, 78, 29,
-			48, 149, 72, 112, 55, 123, 50, 89, 71, 111, 34, 136, 0, 15, 69, 28, 64, 78, 76, 176, 81, 14, 72, 35, 50, 89, 49, 0, 21, 72,
-			25, 32, 83, 21, 32, 149, 72, 112, 83, 34, 123, 88, 13, 34, 71, 111, 34, 136, 0, 0, 17, 70, 56, 81, 197, 77, 65, 82, 50, 116,
-			136, 13, 89, 47, 112, 34, 0, 20, 71, 36, 212, 18, 60, 212, 20, 84, 37, 65, 48, 34, 6, 110, 65, 48, 47, 40, 0, 17, 70, 32,
-			20, 148, 77, 65, 82, 107, 35, 34, 47, 89, 47, 112, 34, 0, 11, 70, 29, 83, 12, 37, 97, 82, 21, 0, 47, 10, 3, 95, 56, 111,
-			10, 6, 35, 136, 0, 14, 4, 95, 48, 77, 50, 65, 109, 55, 57, 6, 40, 50, 0, 0, 10, 67, 13, 83, 64, 21, 108, 97, 0, 47,
-			15, 4, 95, 48, 77, 51, 65, 109, 55, 57, 6, 35, 34, 47, 0, 0, 0, 12, 69, 36, 226, 84, 36, 240, 21, 108, 97, 0, 47, 14,
-			69, 76, 19, 15, 52, 240, 89, 115, 55, 13, 65, 117, 0, 15, 4, 95, 48, 77, 49, 6, 72, 6, 127, 89, 13, 50, 47, 0, 0, 9,
-			198, 60, 225, 197, 49, 146, 192, 65, 0, 17, 70, 28, 85, 197, 48, 198, 83, 136, 116, 84, 13, 55, 55, 123, 89, 0, 14, 69, 52, 148,
-			137, 4, 208, 65, 109, 34, 37, 13, 65, 0, 0, 19, 71, 80, 147, 79, 80, 129, 85, 76, 47, 13, 65, 6, 117, 47, 37, 111, 89, 0,
-			0, 9, 68, 16, 21, 137, 16, 21, 0, 47, 0, 0, 20, 72, 24, 147, 9, 65, 1, 78, 76, 80, 83, 13, 55, 13, 48, 108, 50, 89,
-			13, 0, 12, 71, 28, 84, 141, 37, 53, 15, 56, 21, 0, 47, 0, 19, 72, 92, 83, 12, 36, 225, 212, 60, 224, 58, 108, 55, 37, 68,
-			47, 13, 50, 0, 0, 0, 12, 201, 92, 16, 82, 76, 182, 78, 48, 146, 192, 66, 10, 67, 72, 83, 162, 34, 13, 50, 123, 0, 0, 18,
-			4, 95, 108, 105, 103, 72, 6, 111, 71, 13, 55, 55, 108, 47, 13, 34, 0, 0, 15, 70, 8, 244, 132, 20, 21, 88, 71, 110, 34, 72,
-			6, 120, 0, 0, 12, 68, 12, 80, 201, 48, 89, 108, 89, 13, 55, 0, 9, 68, 56, 145, 197, 48, 21, 0, 47, 0, 13, 71, 32, 243,
-			199, 20, 65, 76, 20, 107, 117, 136, 0, 11, 70, 28, 147, 2, 21, 37, 0, 21, 0, 47, 0, 17, 70, 44, 244, 9, 21, 33, 71, 49,
-			40, 48, 6, 37, 34, 112, 136, 0, 0, 18, 70, 76, 192, 80, 5, 35, 64, 89, 55, 35, 48, 10, 35, 34, 14, 65, 0, 0, 0, 25,
-			73, 28, 241, 1, 48, 208, 71, 80, 145, 192, 136, 110, 47, 10, 35, 55, 65, 6, 35, 136, 47, 13, 136, 0, 9, 68, 32, 83, 146, 100,
-			21, 0, 47, 0, 20, 72, 64, 242, 78, 76, 85, 20, 36, 16, 48, 124, 50, 89, 6, 108, 47, 37, 35, 0, 9, 197, 16, 16, 82, 60,
-			208, 8, 32, 8, 67, 29, 86, 64, 21, 0, 47, 0, 12, 68, 8, 244, 137, 76, 71, 110, 34, 13, 89, 0, 14, 67, 44, 20, 20, 49,
-			35, 48, 47, 6, 123, 50, 0, 24, 0, 0, 0, 21, 72, 16, 148, 12, 60, 208, 83, 36, 80, 72, 13, 48, 55, 117, 65, 35, 89, 6,
-			37, 0, 12, 71, 92, 147, 12, 37, 53, 15, 56, 21, 0, 47, 12, 71, 77, 65, 86, 20, 228, 207, 56, 21, 0, 47, 0, 14, 71, 8,
-			240, 195, 4, 48, 201, 60, 21, 105, 116, 0, 47, 0, 21, 73, 88, 241, 76, 20, 229, 8, 20, 145, 0, 83, 40, 55, 13, 50, 47, 107,
-			123, 47, 0, 0, 6, 194, 53, 144, 72, 32, 10, 199, 52, 17, 196, 4, 193, 78, 4, 67, 12, 71, 52, 83, 2, 61, 84, 142, 20, 21,
-			0, 47, 0, 0, 0, 15, 70, 24, 84, 146, 20, 148, 129, 83, 13, 34, 113, 34, 13, 0, 0, 0, 16, 70, 72, 245, 20, 20, 225, 83,
-			34, 110, 47, 13, 50, 108, 89, 0, 9, 198, 32, 84, 131, 84, 193, 83, 65, 0, 0, 13, 68, 72, 243, 133, 48, 34, 40, 50, 6, 112,
-			55, 0, 9, 198, 20, 180, 212, 20, 83, 128, 65, 20, 70, 104, 147, 66, 4, 37, 197, 88, 109, 12, 65, 71, 6, 35, 71, 10, 58, 108,
-			0, 16, 70, 45, 84, 149, 52, 19, 128, 49, 40, 34, 40, 65, 35, 50, 0, 0, 6, 194, 60, 96, 72, 8, 0, 0, 0, 23, 73, 60,
-			33, 82, 4, 211, 69, 72, 112, 85, 117, 71, 13, 34, 6, 35, 65, 13, 34, 81, 129, 0, 17, 70, 44, 147, 147, 32, 20, 193, 49, 37,
-			50, 91, 6, 115, 89, 35, 0, 0, 12, 68, 72, 81, 201, 20, 34, 13, 90, 37, 12, 0, 11, 70, 72, 22, 77, 60, 225, 0, 21, 0,
-			47, 0, 0, 0, 9, 4, 95, 35, 100, 101, 72, 13, 0, 0, 0, 0, 0, 17, 70, 16, 160, 75, 5, 37, 1, 75, 35, 49, 6, 35,
-			34, 47, 35, 0, 0, 15, 70, 40, 21, 207, 61, 33, 0, 57, 115, 84, 117, 34, 47, 0, 0, 16, 70, 88, 84, 146, 21, 113, 71, 83,
-			112, 34, 13, 84, 112, 136, 0, 10, 67, 52, 17, 192, 65, 35, 136, 0, 32, 17, 67, 65, 33, 83, 48, 34, 13, 89, 13, 72, 6, 108,
-			50, 47, 0, 24, 0, 13, 4, 95, 99, 101, 100, 89, 13, 72, 109, 55, 35, 0, 0, 10, 3, 115, 39, 110, 89, 13, 50, 0, 72, 12,
-			68, 61, 32, 65, 48, 117, 34, 6, 115, 55, 0, 16, 70, 8, 16, 137, 48, 243, 128, 71, 35, 71, 37, 55, 110, 50, 0, 0, 15, 70,
-			28, 84, 136, 5, 33, 0, 136, 112, 34, 35, 34, 47, 0, 0, 26, 73, 52, 244, 133, 48, 85, 1, 64, 20, 139, 65, 110, 34, 13, 55,
-			4, 108, 47, 35, 48, 6, 35, 34, 49, 0, 0, 23, 73, 44, 19, 69, 72, 17, 5, 72, 145, 64, 49, 35, 65, 13, 34, 115, 72, 13,
-			34, 6, 37, 0, 0, 15, 69, 36, 229, 5, 57, 48, 13, 50, 47, 6, 108, 50, 89, 0, 14, 69, 20, 193, 5, 73, 48, 112, 55, 72,
-			13, 34, 89, 0, 7, 196, 76, 241, 1, 80, 8, 7, 196, 60, 209, 1, 80, 8, 14, 69, 52, 20, 137, 85, 48, 65, 115, 34, 37, 111,
-			89, 0, 13, 69, 48, 85, 201, 21, 48, 55, 13, 84, 37, 89, 0, 0, 10, 199, 4, 113, 210, 21, 52, 201, 20, 66, 7, 66, 113, 48,
-			35, 89, 0, 0, 0, 20, 71, 52, 20, 203, 21, 34, 78, 28, 65, 35, 89, 49, 6, 116, 34, 13, 68, 0, 46, 0, 22, 73, 56, 19,
-			1, 80, 145, 200, 20, 145, 0, 50, 115, 55, 6, 115, 47, 13, 136, 123, 47, 0, 14, 69, 48, 242, 193, 5, 48, 55, 110, 49, 10, 115,
-			89, 0, 9, 197, 4, 225, 5, 73, 48, 8, 32, 0, 18, 71, 28, 85, 129, 48, 193, 78, 20, 136, 13, 83, 35, 55, 13, 50, 13, 0,
-			0, 0, 16, 4, 95, 99, 97, 112, 107, 6, 117, 83, 55, 108, 47, 13, 34, 0, 0, 21, 72, 76, 19, 69, 48, 85, 201, 56, 112, 89,
-			115, 65, 13, 55, 4, 116, 84, 13, 68, 0, 13, 68, 76, 245, 197, 48, 89, 117, 84, 6, 112, 55, 0, 18, 70, 12, 20, 193, 56, 245,
-			129, 49, 35, 89, 35, 50, 6, 117, 84, 35, 0, 0, 9, 198, 88, 243, 210, 44, 81, 82, 65, 0, 18, 70, 65, 35, 198, 21, 65, 83,
-			48, 34, 110, 83, 13, 47, 6, 108, 89, 0, 0, 0, 9, 198, 52, 148, 203, 36, 83, 128, 66, 17, 70, 29, 32, 70, 24, 149, 9, 81,
-			34, 35, 83, 6, 37, 47, 37, 0, 10, 198, 60, 100, 203, 60, 243, 128, 66, 8, 9, 198, 88, 147, 10, 60, 83, 128, 66, 9, 68, 13,
-			148, 137, 48, 21, 0, 47, 13, 70, 5, 98, 71, 56, 243, 128, 21, 102, 114, 0, 47, 0, 12, 68, 16, 20, 133, 52, 72, 35, 34, 13,
-			65, 0, 15, 70, 12, 132, 137, 77, 67, 192, 49, 34, 109, 89, 47, 40, 0, 0, 0, 12, 68, 29, 34, 69, 28, 81, 34, 37, 12, 81,
-			0, 0, 24, 73, 52, 84, 207, 64, 245, 1, 52, 153, 0, 65, 108, 89, 40, 48, 40, 47, 6, 115, 65, 37, 13, 0, 0, 14, 69, 8,
-			85, 197, 56, 64, 71, 116, 84, 13, 50, 47, 0, 9, 68, 92, 22, 78, 20, 21, 0, 47, 0, 20, 72, 12, 19, 79, 84, 99, 1, 28,
-			80, 49, 35, 65, 40, 83, 55, 6, 115, 90, 0, 12, 68, 40, 244, 197, 24, 57, 117, 89, 13, 83, 0, 0, 16, 70, 32, 244, 193, 56,
-			224, 64, 107, 40, 89, 6, 35, 50, 35, 0, 0, 0, 0, 0, 11, 68, 4, 210, 67, 60, 21, 108, 97, 0, 47, 18, 70, 40, 84, 133,
-			52, 144, 64, 57, 2, 116, 34, 13, 65, 6, 37, 35, 0, 0, 17, 70, 76, 177, 80, 76, 83, 5, 89, 49, 108, 48, 89, 13, 55, 13,
-			0, 17, 70, 72, 81, 5, 16, 83, 5, 34, 116, 72, 13, 72, 116, 55, 13, 0, 10, 68, 12, 128, 82, 48, 91, 115, 55, 0, 20, 73,
-			52, 245, 73, 48, 193, 80, 84, 229, 0, 65, 40, 55, 37, 48, 111, 50, 47, 0, 0, 15, 70, 12, 149, 18, 62, 51, 128, 89, 13, 47,
-			34, 40, 50, 0, 0, 0, 0, 7, 195, 76, 19, 0, 72, 32, 0, 0, 0, 9, 68, 20, 197, 137, 76, 21, 0, 47, 0, 15, 69, 29,
-			32, 84, 37, 48, 136, 34, 6, 115, 47, 13, 89, 0, 14, 69, 4, 226, 77, 85, 48, 35, 50, 37, 65, 40, 89, 0, 0, 9, 198, 8,
-			244, 203, 4, 20, 192, 66, 10, 199, 5, 69, 18, 4, 180, 201, 20, 66, 11, 70, 8, 80, 84, 48, 84, 192, 21, 0, 47, 16, 70, 52,
-			84, 211, 36, 20, 192, 65, 13, 89, 37, 57, 35, 89, 0, 15, 70, 8, 244, 12, 4, 20, 192, 71, 117, 48, 55, 115, 89, 0, 0, 0,
-			16, 70, 60, 101, 5, 92, 83, 0, 110, 83, 47, 13, 84, 112, 55, 0, 9, 198, 32, 241, 86, 20, 83, 0, 8, 0, 8, 197, 61, 3,
-			1, 5, 48, 66, 0, 10, 198, 56, 241, 212, 4, 228, 192, 8, 32, 0, 0, 11, 68, 4, 53, 9, 60, 21, 108, 97, 0, 47, 0, 0,
-			0, 9, 198, 32, 84, 139, 84, 193, 83, 65, 17, 70, 17, 82, 84, 77, 113, 83, 72, 127, 47, 89, 84, 6, 108, 89, 0, 0, 11, 68,
-			52, 16, 200, 60, 65, 35, 76, 120, 0, 14, 69, 52, 245, 84, 60, 224, 65, 40, 47, 6, 110, 50, 0, 0, 21, 72, 32, 84, 146, 101,
-			49, 78, 37, 48, 107, 112, 34, 6, 123, 89, 13, 50, 13, 89, 0, 17, 70, 8, 244, 143, 16, 147, 128, 71, 110, 34, 40, 72, 6, 37,
-			50, 0, 0, 16, 70, 4, 195, 5, 29, 35, 192, 35, 55, 6, 108, 81, 34, 40, 0, 24, 74, 64, 245, 3, 32, 81, 147, 81, 35, 207,
-			52, 48, 110, 76, 109, 83, 89, 47, 34, 6, 117, 65, 0, 0, 0, 11, 200, 60, 225, 5, 73, 118, 83, 21, 32, 67, 17, 70, 12, 16,
-			133, 72, 225, 84, 49, 35, 71, 13, 34, 50, 6, 123, 0, 11, 70, 52, 20, 135, 5, 33, 84, 21, 0, 47, 0, 0, 14, 69, 36, 225,
-			210, 36, 64, 37, 68, 81, 34, 13, 72, 0, 10, 69, 32, 245, 193, 72, 64, 21, 0, 47, 13, 68, 20, 194, 90, 20, 37, 55, 6, 37,
-			12, 88, 0, 0, 9, 67, 21, 32, 64, 116, 34, 35, 0, 0, 8, 197, 60, 209, 197, 20, 96, 66, 0, 0, 10, 69, 4, 193, 146, 20,
-			64, 21, 0, 47, 0, 18, 70, 64, 147, 143, 44, 178, 79, 48, 37, 50, 6, 110, 49, 37, 38, 40, 0, 0, 22, 73, 88, 84, 146, 20,
-			112, 65, 56, 65, 64, 83, 112, 34, 13, 136, 6, 115, 50, 72, 13, 0, 9, 198, 60, 225, 197, 17, 83, 4, 65, 15, 70, 72, 80, 133,
-			44, 176, 64, 34, 13, 71, 108, 49, 35, 0, 8, 197, 20, 195, 73, 20, 224, 66, 10, 69, 16, 20, 151, 36, 224, 21, 0, 47, 11, 70,
-			13, 147, 148, 32, 144, 64, 21, 0, 47, 0, 15, 70, 52, 144, 200, 20, 195, 5, 65, 37, 91, 6, 112, 55, 0, 17, 70, 88, 153, 20,
-			56, 19, 64, 84, 57, 6, 108, 47, 50, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 52, 144, 200, 4, 83, 0, 21, 0, 47,
-			0, 0, 13, 70, 53, 85, 1, 80, 148, 192, 21, 108, 97, 0, 47, 14, 68, 37, 53, 90, 84, 37, 89, 6, 40, 12, 88, 40, 0, 15,
-			70, 56, 146, 204, 4, 20, 192, 50, 37, 49, 55, 115, 89, 0, 11, 70, 12, 128, 82, 48, 84, 192, 21, 0, 47, 12, 70, 77, 4, 137,
-			56, 116, 192, 21, 0, 41, 47, 0, 12, 68, 8, 82, 197, 72, 71, 116, 49, 13, 34, 0, 0, 16, 70, 44, 244, 147, 92, 83, 0, 49,
-			110, 34, 89, 84, 13, 55, 0, 0, 9, 198, 4, 100, 137, 12, 19, 129, 67, 18, 70, 12, 20, 143, 48, 147, 129, 49, 35, 34, 40, 55,
-			6, 37, 50, 35, 0, 0, 15, 70, 92, 147, 12, 20, 228, 192, 84, 109, 55, 13, 50, 89, 0, 0, 16, 70, 28, 84, 197, 48, 147, 135,
-			136, 116, 89, 13, 55, 13, 68, 0, 0, 14, 69, 36, 225, 9, 20, 224, 109, 50, 72, 37, 50, 0, 36, 14, 69, 12, 20, 141, 20, 224,
-			49, 35, 34, 65, 108, 50, 0, 16, 70, 4, 33, 21, 48, 192, 72, 35, 71, 72, 6, 40, 55, 35, 0, 0, 0, 13, 70, 52, 243, 147,
-			36, 85, 82, 21, 102, 114, 0, 47, 0, 0, 18, 71, 13, 33, 83, 12, 83, 132, 60, 49, 34, 13, 91, 108, 50, 72, 40, 0, 10, 69,
-			28, 244, 132, 60, 224, 21, 0, 47, 0, 18, 72, 76, 86, 67, 32, 83, 12, 21, 48, 89, 123, 91, 6, 112, 55, 88, 0, 0, 22, 72,
-			48, 148, 197, 57, 50, 65, 5, 64, 55, 13, 89, 134, 50, 89, 37, 38, 6, 115, 47, 0, 0, 0, 21, 73, 72, 83, 129, 37, 52, 193,
-			56, 49, 64, 34, 108, 50, 13, 89, 6, 133, 50, 89, 0, 11, 200, 56, 147, 77, 21, 35, 69, 21, 32, 65, 15, 70, 52, 16, 199, 36,
-			195, 0, 65, 13, 81, 57, 37, 55, 0, 0, 0, 16, 70, 76, 145, 205, 84, 225, 0, 89, 37, 81, 65, 40, 50, 47, 0, 14, 4, 95,
-			103, 114, 118, 136, 34, 35, 83, 6, 109, 89, 0, 0, 8, 67, 80, 129, 79, 47, 119, 0, 0, 16, 70, 5, 97, 82, 76, 145, 64, 35,
-			84, 6, 112, 34, 89, 37, 0, 16, 70, 88, 148, 193, 28, 145, 64, 83, 37, 89, 6, 115, 136, 37, 0, 15, 70, 77, 86, 133, 81, 65,
-			64, 89, 40, 88, 6, 108, 47, 0, 15, 70, 52, 83, 1, 56, 145, 64, 65, 13, 55, 115, 50, 37, 0, 15, 70, 52, 20, 133, 48, 145,
-			64, 65, 35, 34, 13, 55, 37, 0, 0, 20, 72, 88, 243, 210, 56, 83, 69, 57, 48, 83, 117, 34, 50, 116, 65, 13, 50, 89, 0, 10,
-			198, 60, 225, 5, 84, 113, 5, 65, 46, 11, 70, 44, 83, 148, 84, 50, 217, 21, 0, 47, 8, 2, 195, 151, 65, 115, 55, 0, 0, 9,
-			67, 28, 81, 78, 136, 116, 50, 0, 8, 195, 28, 16, 78, 72, 46, 32, 10, 66, 77, 64, 89, 13, 50, 47, 0, 24, 0, 6, 195, 76,
-			243, 211, 72, 6, 195, 76, 243, 211, 8, 0, 9, 198, 60, 226, 213, 56, 65, 64, 65, 17, 70, 56, 244, 141, 4, 193, 64, 50, 110, 34,
-			65, 6, 115, 55, 13, 0, 16, 70, 8, 244, 135, 20, 225, 64, 71, 110, 34, 136, 13, 50, 13, 0, 17, 70, 100, 243, 1, 56, 65, 64,
-			57, 40, 55, 6, 35, 50, 72, 13, 0, 14, 69, 17, 83, 131, 4, 224, 72, 35, 68, 49, 14, 50, 0, 0, 10, 67, 4, 193, 197, 35,
-			55, 136, 13, 0, 11, 67, 52, 145, 193, 65, 6, 37, 136, 35, 0, 0, 9, 68, 92, 83, 132, 100, 21, 0, 47, 0, 11, 68, 72, 83,
-			162, 20, 34, 13, 50, 123, 0, 0, 17, 70, 76, 147, 135, 20, 227, 212, 89, 109, 50, 136, 13, 50, 110, 47, 0, 0, 12, 201, 60, 244,
-			133, 20, 226, 207, 53, 53, 5, 66, 12, 2, 194, 167, 35, 83, 72, 116, 55, 13, 68, 0, 0, 10, 66, 76, 80, 108, 89, 13, 0, 41,
-			46, 6, 194, 60, 208, 72, 10, 13, 2, 194, 164, 65, 111, 50, 47, 116, 49, 13, 50, 0, 0, 8, 2, 194, 165, 57, 108, 50, 0, 0,
-			0, 9, 2, 194, 163, 48, 131, 50, 47, 0, 0, 18, 70, 60, 225, 1, 56, 180, 192, 6, 110, 50, 72, 35, 68, 49, 89, 0, 8, 9,
-			198, 4, 229, 1, 72, 84, 192, 66, 15, 70, 76, 84, 150, 4, 20, 192, 89, 13, 34, 83, 115, 89, 0, 10, 69, 21, 35, 133, 77, 64,
-			21, 0, 47, 16, 69, 37, 64, 76, 38, 64, 37, 47, 6, 115, 55, 37, 38, 13, 0, 0, 12, 201, 77, 113, 84, 80, 84, 138, 60, 83,
-			0, 67, 0, 14, 69, 72, 243, 132, 21, 32, 34, 110, 50, 72, 13, 34, 0, 16, 69, 88, 84, 132, 21, 32, 83, 6, 112, 34, 72, 13,
-			34, 0, 8, 14, 69, 20, 196, 193, 10, 32, 112, 55, 89, 13, 71, 37, 0, 12, 69, 8, 245, 87, 21, 32, 71, 120, 13, 34, 0, 17,
-			70, 64, 244, 148, 84, 112, 76, 48, 110, 34, 47, 118, 136, 35, 55, 0, 0, 0, 16, 70, 56, 241, 197, 20, 228, 192, 50, 110, 136, 10,
-			116, 50, 89, 0, 11, 70, 77, 65, 86, 20, 228, 192, 21, 0, 47, 11, 70, 12, 243, 12, 36, 228, 192, 21, 0, 47, 5, 130, 195, 164,
-			43, 0, 0, 0, 10, 67, 105, 83, 21, 88, 40, 55, 40, 0, 0, 0, 18, 70, 8, 195, 205, 21, 37, 83, 71, 55, 40, 65, 6, 116,
-			34, 111, 89, 0, 13, 2, 194, 169, 49, 40, 48, 6, 37, 34, 112, 136, 0, 0, 10, 69, 9, 84, 148, 60, 224, 21, 0, 47, 13, 2,
-			194, 182, 48, 35, 34, 35, 136, 34, 115, 83, 0, 0, 5, 130, 195, 175, 43, 0, 5, 130, 195, 172, 43, 0, 9, 67, 88, 144, 64, 84,
-			37, 35, 0, 10, 2, 194, 181, 65, 37, 49, 34, 40, 0, 0, 21, 72, 28, 80, 146, 60, 177, 78, 21, 32, 136, 13, 71, 34, 117, 49,
-			13, 50, 13, 34, 0, 22, 72, 52, 17, 1, 28, 20, 203, 5, 32, 65, 35, 72, 35, 136, 6, 35, 89, 49, 35, 34, 0, 0, 14, 71,
-			12, 129, 86, 72, 243, 5, 80, 21, 102, 114, 0, 47, 0, 11, 5, 95, 35, 115, 116, 101, 89, 47, 13, 0, 10, 2, 194, 176, 136, 34,
-			115, 72, 13, 0, 0, 17, 2, 194, 177, 48, 55, 111, 89, 10, 110, 83, 65, 37, 50, 111, 89, 0, 0, 20, 71, 92, 81, 199, 21, 113,
-			78, 76, 84, 112, 136, 13, 84, 6, 108, 12, 50, 89, 0, 14, 70, 88, 243, 210, 28, 81, 64, 83, 117, 34, 136, 116, 0, 15, 70, 12,
-			241, 84, 104, 81, 64, 49, 40, 47, 89, 6, 116, 0, 16, 70, 28, 243, 149, 8, 145, 64, 81, 13, 50, 40, 12, 71, 37, 0, 13, 2,
-			194, 190, 72, 34, 37, 49, 58, 35, 34, 47, 0, 0, 18, 70, 76, 241, 15, 20, 225, 5, 89, 6, 117, 72, 4, 40, 50, 72, 13, 0,
-			9, 198, 4, 193, 193, 4, 225, 5, 66, 10, 67, 4, 64, 77, 35, 72, 35, 65, 0, 13, 2, 195, 183, 136, 13, 72, 116, 55, 72, 128,
-			34, 0, 0, 11, 68, 32, 82, 203, 20, 107, 112, 49, 13, 0, 11, 68, 24, 244, 141, 4, 21, 108, 97, 0, 47, 17, 70, 8, 83, 138,
-			4, 210, 78, 71, 108, 50, 75, 13, 65, 13, 50, 0, 11, 2, 194, 188, 13, 49, 58, 35, 34, 47, 0, 5, 130, 195, 180, 43, 0, 28,
-			67, 56, 145, 64, 50, 4, 37, 15, 84, 4, 115, 34, 15, 50, 6, 37, 0, 82, 119, 97, 97, 114, 32, 110, 105, 101, 32, 7, 195, 56,
-			145, 64, 11, 40, 11, 2, 194, 189, 13, 107, 35, 55, 84, 13, 0, 0, 17, 70, 48, 20, 193, 28, 225, 64, 55, 35, 89, 6, 35, 50,
-			57, 13, 0, 11, 68, 24, 16, 212, 60, 21, 108, 97, 0, 47, 5, 130, 195, 178, 43, 0, 17, 70, 52, 21, 8, 36, 193, 1, 65, 35,
-			47, 6, 109, 55, 72, 35, 0, 0, 0, 0, 9, 68, 12, 192, 82, 44, 21, 0, 47, 0, 6, 195, 36, 65, 69, 66, 10, 67, 73, 81,
-			1, 34, 40, 72, 35, 0, 10, 67, 60, 193, 193, 110, 55, 81, 35, 0, 21, 67, 80, 83, 0, 47, 112, 55, 15, 35, 84, 6, 37, 84,
-			0, 81, 97, 118, 105, 118, 32, 21, 73, 72, 144, 200, 5, 33, 19, 8, 16, 73, 34, 37, 76, 13, 72, 89, 71, 6, 122, 0, 21, 73,
-			40, 81, 134, 72, 86, 83, 8, 16, 73, 75, 108, 83, 34, 37, 89, 71, 6, 122, 0, 0, 8, 66, 80, 80, 47, 13, 0, 32, 0, 24,
-			67, 64, 144, 203, 48, 4, 37, 49, 15, 13, 50, 15, 48, 6, 123, 0, 82, 110, 32, 112, 97, 121, 32, 5, 130, 195, 189, 43, 0, 0,
-			19, 71, 16, 85, 82, 20, 229, 25, 16, 72, 118, 13, 34, 13, 50, 47, 123, 47, 0, 19, 70, 16, 244, 143, 80, 129, 65, 72, 110, 34,
-			13, 47, 6, 37, 12, 57, 35, 0, 5, 130, 195, 187, 43, 0, 14, 69, 72, 82, 197, 57, 64, 34, 116, 49, 13, 50, 47, 0, 10, 69,
-			72, 240, 133, 73, 64, 21, 0, 47, 10, 69, 32, 19, 76, 21, 64, 21, 0, 47, 0, 5, 130, 195, 185, 43, 0, 15, 69, 8, 84, 212,
-			21, 32, 71, 6, 108, 89, 47, 13, 34, 0, 0, 0, 14, 69, 80, 245, 4, 5, 64, 47, 110, 72, 35, 47, 0, 8, 0, 13, 70, 21,
-			52, 18, 21, 52, 207, 21, 105, 116, 0, 47, 0, 12, 71, 5, 35, 83, 81, 35, 206, 28, 21, 0, 47, 0, 0, 0, 19, 70, 4, 229,
-			15, 56, 149, 83, 35, 50, 47, 6, 117, 50, 37, 57, 111, 89, 0, 0, 0, 17, 70, 76, 147, 129, 28, 241, 197, 89, 13, 50, 13, 136,
-			117, 136, 13, 0, 17, 70, 64, 147, 143, 80, 17, 197, 48, 37, 50, 40, 47, 6, 115, 90, 0, 0, 16, 70, 12, 132, 137, 77, 67, 198,
-			49, 34, 109, 89, 47, 110, 83, 0, 0, 0, 0, 8, 197, 60, 225, 197, 4, 112, 65, 8, 67, 52, 20, 153, 21, 0, 47, 0, 8, 196,
-			33, 83, 12, 20, 72, 32, 12, 68, 32, 147, 4, 20, 107, 37, 55, 72, 13, 0, 0, 12, 69, 13, 84, 137, 4, 80, 21, 108, 97, 0,
-			47, 11, 67, 60, 228, 192, 135, 50, 89, 0, 72, 32, 14, 69, 76, 19, 132, 72, 16, 89, 35, 50, 72, 34, 35, 0, 12, 69, 64, 145,
-			82, 72, 80, 48, 6, 116, 34, 0, 10, 69, 28, 83, 210, 28, 80, 21, 0, 47, 16, 69, 16, 19, 137, 144, 192, 72, 6, 115, 50, 37,
-			12, 13, 55, 0, 15, 69, 84, 112, 78, 16, 16, 40, 81, 6, 35, 50, 72, 35, 0, 14, 69, 56, 147, 133, 88, 80, 50, 109, 50, 13,
-			83, 37, 0, 0, 17, 71, 76, 50, 5, 21, 1, 82, 76, 89, 49, 116, 48, 13, 34, 89, 0, 15, 69, 13, 35, 206, 42, 32, 49, 34,
-			110, 50, 57, 6, 116, 0, 0, 22, 72, 61, 32, 78, 40, 84, 5, 73, 48, 117, 34, 6, 35, 50, 57, 13, 48, 113, 34, 89, 0, 0,
-			7, 196, 88, 243, 20, 20, 65, 13, 68, 76, 241, 18, 4, 89, 117, 72, 34, 6, 115, 0, 10, 67, 4, 209, 78, 115, 65, 108, 50, 0,
-			11, 68, 48, 21, 68, 20, 21, 108, 97, 0, 47, 7, 196, 76, 241, 18, 4, 8, 13, 68, 48, 80, 78, 4, 55, 37, 6, 115, 50, 35,
-			0, 8, 67, 40, 240, 78, 21, 0, 47, 10, 66, 81, 96, 47, 116, 83, 116, 10, 0, 0, 15, 69, 76, 240, 133, 72, 80, 89, 6, 117,
-			71, 13, 34, 13, 0, 8, 197, 56, 19, 65, 80, 80, 66, 15, 69, 12, 194, 86, 36, 16, 49, 55, 109, 84, 37, 57, 35, 0, 7, 195,
-			76, 245, 64, 72, 32, 13, 69, 81, 37, 68, 36, 80, 47, 34, 40, 72, 37, 0, 0, 0, 14, 69, 32, 145, 82, 76, 240, 107, 37, 12,
-			34, 89, 110, 0, 18, 70, 4, 193, 197, 32, 83, 5, 35, 55, 136, 13, 107, 4, 116, 55, 13, 0, 0, 7, 196, 88, 84, 141, 100, 66,
-			9, 198, 60, 225, 197, 72, 145, 70, 65, 0, 7, 195, 92, 245, 64, 72, 32, 12, 69, 9, 32, 72, 4, 208, 71, 34, 115, 65, 0, 0,
-			0, 16, 69, 76, 243, 1, 56, 176, 89, 2, 117, 55, 35, 68, 49, 0, 8, 18, 70, 60, 179, 1, 32, 243, 65, 120, 49, 55, 13, 107,
-			6, 120, 65, 35, 0, 0, 12, 201, 4, 117, 5, 73, 53, 5, 88, 243, 210, 68, 0, 13, 69, 80, 84, 193, 4, 208, 47, 13, 89, 115,
-			65, 0, 12, 68, 28, 83, 133, 72, 136, 116, 50, 13, 34, 0, 19, 72, 52, 19, 13, 21, 48, 149, 73, 144, 65, 115, 65, 89, 71, 13,
-			34, 37, 0, 0, 23, 73, 28, 83, 5, 72, 83, 132, 32, 82, 68, 136, 13, 55, 116, 34, 13, 50, 47, 107, 123, 47, 0, 0, 0, 16,
-			69, 88, 18, 193, 57, 64, 83, 2, 35, 49, 6, 35, 50, 47, 0, 15, 70, 76, 50, 15, 20, 208, 78, 89, 49, 40, 65, 35, 50, 0,
-			0, 6, 195, 92, 21, 0, 8, 9, 68, 72, 245, 133, 72, 21, 0, 47, 0, 11, 68, 24, 145, 5, 76, 21, 108, 97, 0, 47, 10, 69,
-			5, 37, 8, 85, 32, 21, 0, 47, 0, 0, 23, 66, 77, 144, 89, 4, 123, 15, 35, 50, 15, 89, 6, 123, 0, 82, 97, 97, 110, 32,
-			115, 121, 32, 6, 194, 77, 144, 72, 32, 13, 69, 72, 82, 78, 21, 64, 34, 13, 50, 108, 47, 0, 15, 69, 52, 246, 129, 73, 64, 65,
-			117, 47, 89, 35, 34, 47, 0, 0, 0, 13, 68, 5, 51, 207, 44, 2, 35, 89, 10, 117, 49, 0, 17, 70, 45, 112, 90, 84, 197, 64,
-			49, 58, 35, 88, 6, 40, 55, 40, 0, 0, 13, 70, 76, 244, 130, 60, 227, 133, 21, 102, 114, 0, 47, 16, 69, 17, 99, 210, 4, 176,
-			72, 14, 84, 6, 131, 90, 35, 49, 0, 14, 69, 21, 35, 69, 48, 240, 112, 34, 65, 13, 55, 117, 0, 0, 16, 70, 81, 32, 71, 36,
-			82, 192, 47, 34, 35, 136, 6, 37, 49, 0, 16, 70, 65, 33, 83, 80, 146, 192, 48, 34, 108, 89, 47, 37, 49, 0, 0, 15, 69, 76,
-			19, 1, 52, 144, 89, 35, 55, 6, 115, 65, 37, 0, 0, 17, 70, 9, 33, 89, 4, 226, 64, 71, 34, 37, 57, 6, 115, 50, 37, 0,
-			0, 0, 17, 70, 37, 35, 206, 36, 89, 0, 37, 34, 40, 50, 6, 37, 12, 13, 0, 0, 0, 13, 68, 92, 83, 1, 24, 84, 112, 55,
-			10, 35, 83, 0, 8, 67, 28, 243, 201, 136, 124, 0, 0, 0, 15, 69, 76, 243, 143, 72, 80, 89, 40, 50, 6, 117, 34, 13, 0, 8,
-			197, 60, 244, 147, 20, 80, 66, 14, 69, 40, 19, 137, 56, 80, 75, 13, 50, 37, 12, 50, 0, 13, 69, 8, 85, 10, 36, 80, 71, 108,
-			37, 80, 37, 0, 0, 8, 195, 32, 16, 82, 72, 46, 32, 0, 9, 197, 60, 225, 5, 84, 112, 65, 46, 11, 67, 45, 112, 64, 49, 58,
-			35, 0, 72, 46, 0, 13, 68, 20, 194, 84, 20, 37, 55, 6, 37, 12, 47, 0, 12, 68, 12, 130, 78, 4, 91, 6, 37, 50, 35, 0,
-			0, 10, 67, 88, 84, 147, 83, 113, 34, 89, 0, 15, 69, 76, 243, 149, 72, 80, 89, 110, 50, 10, 118, 34, 13, 0, 10, 69, 32, 148,
-			16, 36, 80, 21, 0, 47, 8, 197, 81, 84, 139, 100, 80, 66, 15, 69, 44, 19, 129, 16, 16, 49, 35, 50, 35, 72, 2, 35, 0, 15,
-			69, 4, 192, 83, 44, 16, 35, 55, 6, 35, 89, 49, 35, 0, 0, 18, 71, 64, 243, 137, 21, 1, 82, 76, 48, 117, 50, 37, 48, 112,
-			34, 89, 0, 10, 198, 36, 229, 21, 77, 49, 78, 8, 32, 0, 9, 68, 9, 34, 65, 56, 21, 0, 47, 0, 21, 72, 88, 84, 129, 24,
-			113, 76, 22, 64, 83, 112, 34, 35, 83, 136, 13, 55, 116, 13, 0, 13, 70, 24, 192, 85, 8, 84, 148, 21, 102, 114, 0, 47, 0, 0,
-			31, 76, 72, 149, 137, 21, 36, 207, 56, 65, 82, 20, 225, 0, 34, 13, 83, 37, 12, 34, 89, 110, 50, 13, 34, 10, 6, 108, 50, 47,
-			0, 0, 8, 67, 52, 146, 197, 21, 0, 47, 0, 9, 198, 72, 147, 139, 36, 226, 192, 66, 0, 18, 71, 8, 241, 75, 5, 33, 83, 80,
-			71, 40, 49, 35, 34, 108, 89, 47, 0, 0, 9, 68, 40, 243, 133, 76, 21, 0, 47, 9, 68, 40, 19, 69, 76, 21, 0, 47, 16, 3,
-			101, 46, 97, 9, 108, 50, 10, 6, 35, 50, 72, 13, 34, 0, 0, 19, 70, 8, 80, 84, 72, 150, 0, 71, 37, 38, 6, 115, 47, 34,
-			13, 49, 89, 0, 12, 67, 9, 2, 192, 71, 13, 48, 112, 34, 49, 0, 0, 0, 0, 11, 68, 48, 149, 9, 76, 21, 108, 97, 0, 47,
-			0, 9, 68, 72, 241, 197, 72, 21, 0, 47, 0, 11, 2, 95, 34, 107, 115, 55, 23, 115, 50, 0, 0, 0, 9, 66, 89, 80, 21, 102,
-			114, 0, 47, 14, 73, 76, 128, 75, 21, 52, 5, 5, 33, 64, 21, 0, 47, 0, 8, 195, 44, 243, 128, 72, 9, 32, 8, 2, 95, 39,
-			47, 37, 49, 0, 0, 16, 70, 45, 34, 84, 36, 82, 192, 49, 34, 109, 47, 6, 37, 49, 0, 0, 0, 15, 70, 60, 211, 69, 44, 81,
-			82, 110, 65, 13, 49, 116, 34, 0, 17, 70, 52, 147, 137, 77, 65, 82, 65, 13, 50, 109, 89, 47, 13, 34, 0, 17, 70, 36, 115, 143,
-			72, 81, 82, 37, 136, 50, 117, 34, 6, 116, 34, 0, 18, 70, 32, 245, 1, 29, 65, 82, 107, 110, 47, 10, 35, 136, 47, 13, 34, 0,
-			9, 198, 29, 35, 197, 64, 81, 82, 66, 18, 70, 16, 85, 133, 57, 65, 82, 72, 6, 116, 84, 13, 50, 47, 13, 34, 0, 0, 6, 195,
-			88, 19, 128, 72, 13, 69, 16, 84, 137, 12, 176, 72, 108, 34, 37, 49, 0, 0, 0, 13, 2, 95, 41, 34, 112, 136, 89, 107, 35, 49,
-			37, 0, 0, 15, 70, 85, 37, 71, 84, 22, 64, 40, 34, 40, 81, 58, 121, 0, 9, 198, 16, 241, 66, 4, 18, 64, 66, 13, 2, 95,
-			40, 55, 109, 68, 89, 107, 35, 49, 37, 0, 0, 10, 67, 64, 84, 128, 48, 13, 34, 0, 46, 6, 195, 88, 148, 128, 72, 0, 0, 15,
-			2, 95, 45, 49, 110, 48, 13, 55, 47, 116, 49, 13, 50, 0, 0, 20, 71, 44, 245, 9, 48, 163, 206, 76, 49, 110, 47, 13, 55, 57,
-			6, 135, 50, 89, 0, 9, 2, 95, 44, 49, 110, 65, 35, 0, 0, 9, 67, 16, 84, 128, 72, 13, 34, 0, 11, 70, 20, 20, 212, 28,
-			21, 5, 21, 0, 47, 9, 2, 95, 51, 6, 72, 34, 37, 0, 0, 10, 199, 60, 244, 147, 81, 35, 207, 52, 66, 9, 2, 95, 50, 6,
-			47, 58, 116, 0, 0, 13, 69, 64, 85, 9, 80, 80, 48, 13, 47, 37, 47, 0, 9, 2, 95, 49, 10, 6, 116, 50, 0, 0, 13, 68,
-			32, 19, 12, 60, 107, 6, 109, 55, 4, 120, 0, 9, 2, 95, 48, 6, 50, 111, 55, 0, 0, 10, 2, 95, 55, 6, 89, 116, 84, 13,
-			0, 0, 9, 2, 95, 54, 6, 89, 108, 89, 0, 0, 9, 2, 95, 53, 6, 83, 123, 83, 0, 0, 10, 2, 95, 52, 6, 83, 37, 12,
-			34, 0, 0, 16, 70, 8, 83, 12, 21, 101, 69, 71, 112, 55, 84, 57, 40, 12, 0, 13, 2, 95, 59, 49, 110, 65, 35, 48, 111, 50,
-			47, 0, 0, 15, 70, 40, 245, 66, 21, 37, 0, 57, 40, 71, 6, 113, 34, 0, 14, 2, 95, 58, 72, 111, 71, 13, 55, 48, 111, 50,
-			47, 0, 0, 9, 68, 52, 16, 133, 48, 21, 0, 47, 10, 2, 95, 57, 6, 50, 116, 136, 13, 0, 0, 11, 68, 84, 226, 85, 76, 21,
-			108, 97, 0, 47, 17, 70, 76, 19, 22, 4, 67, 210, 89, 35, 55, 84, 35, 72, 131, 34, 0, 10, 2, 95, 56, 10, 6, 35, 136, 47,
-			0, 0, 14, 69, 64, 85, 18, 85, 48, 48, 116, 47, 34, 111, 89, 0, 14, 2, 95, 63, 83, 34, 115, 136, 47, 116, 49, 13, 50, 0,
-			0, 16, 70, 56, 85, 10, 36, 84, 192, 50, 108, 12, 37, 80, 37, 89, 0, 16, 70, 36, 66, 76, 48, 84, 192, 37, 72, 6, 109, 55,
-			13, 89, 0, 21, 71, 36, 225, 215, 5, 101, 77, 4, 37, 68, 81, 58, 35, 84, 6, 40, 12, 65, 35, 0, 14, 2, 95, 62, 136, 34,
-			117, 47, 13, 34, 23, 35, 89, 0, 0, 0, 7, 196, 92, 18, 201, 76, 65, 14, 2, 95, 60, 49, 55, 123, 50, 13, 34, 23, 35, 89,
-			0, 0, 0, 9, 198, 88, 243, 210, 16, 21, 0, 8, 0, 0, 23, 73, 72, 16, 200, 52, 19, 137, 56, 241, 134, 34, 35, 136, 65, 6,
-			35, 50, 37, 50, 110, 83, 0, 10, 67, 40, 80, 78, 90, 133, 50, 0, 41, 0, 16, 69, 76, 245, 197, 80, 240, 89, 40, 58, 6, 108,
-			12, 47, 40, 0, 16, 69, 52, 20, 21, 80, 240, 65, 35, 48, 6, 40, 12, 47, 40, 0, 0, 15, 70, 49, 146, 215, 4, 18, 192, 55,
-			123, 49, 84, 115, 49, 0, 16, 70, 44, 133, 77, 4, 195, 192, 49, 40, 65, 6, 115, 55, 40, 0, 0, 9, 198, 52, 84, 131, 20, 65,
-			83, 66, 9, 67, 41, 83, 135, 57, 40, 68, 0, 0, 12, 68, 76, 245, 8, 60, 89, 40, 12, 47, 40, 0, 16, 70, 12, 132, 153, 76,
-			193, 82, 49, 34, 121, 89, 55, 13, 34, 0, 9, 198, 28, 245, 68, 36, 226, 64, 66, 0, 0, 19, 71, 16, 83, 133, 52, 20, 139, 20,
-			72, 116, 50, 13, 65, 35, 34, 49, 13, 0, 18, 70, 8, 243, 9, 88, 153, 0, 71, 40, 55, 6, 109, 84, 37, 12, 13, 0, 0, 0,
-			16, 4, 194, 182, 194, 182, 48, 35, 34, 35, 136, 34, 115, 84, 13, 0, 0, 16, 70, 56, 85, 10, 36, 84, 197, 50, 108, 37, 80, 37,
-			89, 13, 0, 0, 11, 70, 88, 147, 131, 20, 229, 0, 21, 0, 47, 0, 18, 70, 4, 48, 80, 84, 192, 207, 35, 49, 35, 48, 6, 40,
-			55, 49, 120, 0, 0, 0, 0, 12, 68, 80, 19, 135, 4, 47, 35, 68, 81, 35, 0, 12, 68, 44, 17, 133, 20, 49, 35, 83, 6, 116,
-			0, 0, 10, 67, 85, 53, 83, 21, 108, 97, 0, 47, 0, 0, 18, 70, 64, 192, 83, 20, 229, 1, 48, 55, 35, 89, 6, 108, 50, 47,
-			35, 0, 10, 67, 49, 83, 129, 21, 108, 97, 0, 47, 0, 11, 70, 72, 144, 200, 5, 33, 0, 21, 0, 47, 8, 67, 56, 82, 76, 21,
-			0, 47, 13, 68, 52, 33, 75, 36, 65, 71, 108, 12, 49, 37, 0, 0, 0, 17, 70, 89, 35, 197, 145, 34, 71, 83, 34, 40, 12, 13,
-			34, 13, 136, 0, 17, 70, 40, 240, 67, 32, 147, 64, 57, 40, 58, 6, 115, 136, 13, 65, 0, 6, 195, 37, 48, 142, 13, 0, 18, 2,
-			95, 91, 55, 109, 68, 89, 15, 71, 55, 110, 49, 107, 35, 49, 37, 0, 0, 26, 74, 16, 85, 84, 21, 35, 206, 60, 210, 85, 52, 72,
-			128, 47, 13, 34, 117, 50, 6, 117, 65, 37, 111, 65, 0, 17, 70, 64, 19, 5, 72, 211, 192, 48, 35, 55, 6, 112, 34, 65, 40, 0,
-			0, 10, 69, 8, 20, 139, 49, 144, 21, 0, 47, 0, 16, 73, 8, 245, 82, 28, 83, 201, 76, 145, 64, 21, 102, 114, 0, 47, 0, 9,
-			67, 32, 82, 192, 107, 112, 49, 0, 18, 70, 77, 84, 137, 56, 19, 69, 89, 118, 34, 37, 50, 6, 115, 65, 13, 0, 18, 70, 12, 84,
-			193, 74, 32, 64, 89, 13, 89, 13, 34, 37, 12, 57, 35, 0, 8, 2, 95, 95, 55, 123, 50, 0, 0, 17, 71, 52, 245, 15, 73, 66,
-			137, 20, 65, 117, 47, 13, 34, 49, 37, 0, 10, 199, 16, 148, 204, 20, 180, 201, 20, 66, 12, 71, 48, 240, 203, 21, 32, 137, 20, 21,
-			0, 47, 0, 9, 3, 103, 39, 110, 136, 109, 50, 0, 7, 196, 56, 17, 1, 80, 8, 10, 67, 40, 16, 207, 57, 35, 49, 40, 0, 18,
-			2, 95, 93, 34, 112, 136, 89, 15, 71, 55, 110, 49, 107, 35, 49, 37, 0, 0, 0, 14, 69, 73, 84, 208, 21, 48, 34, 111, 89, 48,
-			13, 89, 0, 16, 69, 21, 131, 196, 85, 48, 108, 49, 89, 6, 117, 72, 111, 89, 0, 8, 197, 5, 52, 18, 37, 48, 66, 8, 197, 24,
-			195, 210, 37, 48, 65, 15, 69, 4, 67, 206, 37, 48, 35, 72, 6, 117, 50, 13, 89, 0, 6, 195, 24, 18, 192, 13, 0, 11, 67, 64,
-			244, 148, 48, 110, 34, 47, 0, 65, 0, 6, 2, 95, 97, 115, 0, 0, 20, 71, 28, 85, 19, 136, 208, 78, 136, 136, 108, 47, 89, 6,
-			116, 65, 35, 50, 37, 0, 11, 70, 9, 35, 207, 44, 198, 78, 21, 0, 47, 0, 12, 201, 36, 229, 5, 57, 50, 84, 20, 149, 0, 68,
-			0, 16, 73, 12, 243, 148, 21, 53, 1, 80, 147, 192, 21, 108, 97, 0, 47, 0, 0, 14, 70, 4, 36, 129, 32, 19, 64, 115, 71, 34,
-			35, 65, 0, 0, 15, 72, 21, 97, 78, 81, 80, 76, 37, 48, 21, 108, 97, 0, 47, 10, 67, 16, 83, 192, 21, 108, 97, 0, 47, 0,
-			8, 196, 80, 83, 147, 100, 66, 8, 0, 0, 10, 67, 18, 34, 155, 21, 102, 114, 0, 47, 0, 9, 67, 20, 180, 192, 108, 49, 89, 0,
-			12, 67, 4, 195, 205, 35, 55, 10, 6, 110, 65, 0, 0, 0, 0, 16, 70, 80, 84, 85, 36, 192, 64, 47, 13, 49, 37, 12, 55, 35,
-			0, 16, 70, 44, 19, 9, 20, 96, 64, 49, 35, 55, 6, 37, 83, 35, 0, 16, 70, 36, 226, 193, 80, 128, 64, 37, 68, 49, 6, 115,
-			47, 35, 0, 10, 199, 16, 85, 82, 28, 16, 78, 76, 65, 13, 70, 64, 84, 147, 60, 224, 64, 21, 108, 97, 0, 47, 17, 70, 56, 21,
-			1, 76, 160, 64, 50, 2, 35, 47, 6, 35, 91, 35, 0, 17, 70, 56, 21, 1, 76, 128, 64, 50, 2, 35, 47, 6, 35, 91, 35, 0,
-			16, 70, 76, 80, 213, 56, 64, 64, 89, 13, 49, 40, 50, 72, 35, 0, 9, 198, 8, 84, 141, 84, 64, 64, 66, 0, 17, 70, 81, 51,
-			197, 56, 19, 73, 47, 89, 40, 50, 6, 115, 65, 37, 0, 10, 199, 4, 19, 135, 21, 50, 69, 56, 8, 0, 17, 70, 64, 83, 143, 72,
-			83, 148, 48, 108, 50, 117, 34, 108, 50, 47, 0, 17, 70, 64, 20, 16, 21, 33, 76, 48, 35, 48, 13, 34, 6, 112, 55, 0, 10, 67,
-			40, 244, 226, 21, 101, 115, 0, 47, 12, 68, 29, 33, 84, 4, 81, 34, 116, 47, 35, 0, 0, 6, 195, 36, 34, 83, 65, 11, 200, 4,
-			19, 147, 80, 16, 78, 16, 80, 66, 13, 4, 95, 104, 97, 99, 49, 6, 115, 34, 110, 50, 0, 0, 12, 68, 92, 21, 23, 60, 84, 35,
-			47, 84, 117, 0, 13, 70, 65, 80, 140, 36, 48, 64, 21, 108, 97, 0, 47, 17, 70, 76, 17, 193, 72, 144, 64, 89, 35, 136, 35, 34,
-			6, 37, 35, 0, 11, 70, 40, 84, 211, 36, 48, 64, 21, 0, 47, 17, 70, 12, 80, 201, 48, 144, 64, 89, 13, 89, 37, 12, 55, 37,
-			35, 0, 18, 70, 28, 19, 9, 48, 80, 64, 136, 35, 55, 13, 55, 6, 37, 12, 35, 0, 0, 11, 67, 36, 196, 197, 6, 37, 55, 88,
-			13, 0, 0, 10, 69, 92, 21, 19, 60, 224, 21, 0, 47, 0, 6, 2, 95, 117, 118, 0, 0, 14, 69, 37, 48, 66, 20, 192, 37, 89,
-			13, 71, 112, 55, 0, 0, 7, 196, 60, 227, 73, 56, 65, 18, 71, 5, 52, 197, 8, 194, 69, 24, 35, 89, 13, 71, 55, 6, 37, 83,
-			0, 9, 195, 92, 147, 0, 72, 9, 46, 32, 10, 67, 4, 36, 193, 35, 71, 89, 35, 0, 9, 198, 12, 243, 146, 4, 66, 69, 66, 18,
-			2, 95, 123, 55, 109, 68, 89, 15, 49, 34, 111, 55, 107, 35, 49, 37, 0, 0, 0, 0, 12, 68, 49, 80, 193, 76, 55, 40, 49, 35,
-			89, 0, 0, 18, 70, 36, 228, 207, 52, 226, 65, 13, 50, 89, 110, 65, 50, 37, 57, 35, 0, 14, 69, 8, 82, 197, 73, 48, 71, 116,
-			49, 13, 34, 89, 0, 0, 18, 70, 52, 21, 8, 36, 20, 192, 65, 35, 47, 6, 37, 12, 57, 35, 89, 0, 0, 18, 2, 95, 125, 34,
-			112, 136, 89, 15, 49, 34, 111, 55, 107, 35, 49, 37, 0, 0, 12, 68, 49, 82, 193, 76, 55, 40, 49, 35, 89, 0, 12, 2, 95, 124,
-			35, 83, 89, 47, 34, 116, 48, 0, 0, 10, 69, 72, 131, 196, 21, 48, 21, 0, 47, 8, 197, 48, 17, 146, 5, 48, 66, 9, 67, 40,
-			241, 89, 75, 120, 37, 0, 0, 16, 70, 16, 146, 215, 20, 196, 192, 72, 109, 49, 84, 13, 55, 89, 0, 9, 198, 4, 196, 133, 20, 68,
-			192, 66, 0, 13, 69, 56, 20, 211, 5, 80, 50, 35, 89, 6, 120, 0, 17, 71, 81, 34, 67, 32, 20, 132, 80, 47, 34, 37, 136, 115,
-			34, 47, 0, 11, 5, 95, 48, 97, 110, 100, 11, 108, 50, 0, 0, 0, 18, 71, 52, 19, 129, 48, 193, 69, 56, 65, 35, 50, 10, 35,
-			55, 116, 50, 0, 12, 68, 32, 22, 68, 56, 107, 122, 72, 13, 50, 0, 0, 17, 70, 36, 227, 133, 77, 65, 76, 109, 50, 50, 108, 89,
-			47, 13, 55, 0, 16, 70, 10, 52, 133, 81, 145, 0, 71, 113, 34, 13, 47, 123, 47, 0, 15, 70, 48, 84, 207, 80, 131, 192, 55, 13,
-			89, 40, 47, 40, 0, 0, 17, 70, 76, 243, 132, 20, 225, 83, 89, 110, 50, 72, 13, 50, 108, 89, 0, 16, 70, 4, 50, 9, 48, 193,
-			83, 35, 49, 6, 37, 55, 13, 89, 0, 0, 14, 69, 78, 32, 78, 12, 80, 89, 2, 116, 133, 50, 89, 0, 13, 70, 48, 244, 85, 37,
-			69, 82, 21, 108, 97, 0, 47, 0, 9, 198, 92, 81, 82, 28, 19, 13, 66, 19, 71, 52, 145, 23, 36, 229, 5, 72, 65, 109, 72, 84,
-			13, 50, 47, 13, 34, 0, 0, 0, 0, 19, 71, 76, 181, 76, 16, 83, 1, 76, 89, 49, 111, 55, 72, 13, 55, 35, 89, 0, 0, 17,
-			71, 72, 80, 133, 48, 193, 69, 72, 34, 13, 71, 13, 55, 116, 34, 0, 0, 8, 197, 80, 84, 132, 22, 64, 66, 13, 70, 76, 50, 13,
-			36, 69, 0, 91, 65, 37, 47, 0, 0, 25, 74, 76, 19, 135, 20, 209, 69, 57, 50, 193, 64, 89, 35, 50, 136, 13, 65, 116, 50, 89,
-			49, 35, 48, 0, 23, 72, 53, 5, 77, 4, 192, 78, 28, 16, 65, 48, 40, 12, 65, 35, 55, 6, 35, 68, 81, 35, 0, 0, 16, 70,
-			56, 148, 150, 4, 224, 64, 50, 13, 34, 84, 115, 50, 35, 0, 17, 70, 76, 81, 129, 56, 160, 64, 89, 13, 83, 6, 35, 50, 57, 35,
-			0, 17, 70, 76, 16, 146, 36, 224, 64, 89, 35, 71, 34, 6, 37, 50, 35, 0, 10, 69, 61, 129, 143, 72, 64, 21, 0, 47, 16, 70,
-			24, 195, 210, 36, 64, 64, 83, 55, 110, 34, 37, 72, 35, 0, 0, 0, 10, 199, 8, 20, 146, 36, 176, 68, 20, 67, 12, 68, 88, 83,
-			132, 4, 84, 108, 50, 72, 35, 0, 0, 9, 198, 60, 225, 197, 92, 83, 147, 65, 11, 67, 4, 211, 211, 6, 115, 65, 110, 89, 0, 9,
-			67, 80, 134, 83, 47, 123, 89, 0, 9, 198, 52, 20, 148, 36, 83, 147, 66, 0, 9, 198, 4, 194, 66, 4, 208, 64, 67, 16, 70, 32,
-			21, 133, 56, 112, 64, 107, 115, 83, 13, 68, 136, 35, 0, 0, 11, 200, 92, 83, 148, 4, 181, 9, 20, 176, 65, 9, 68, 12, 242, 5,
-			56, 21, 0, 47, 0, 13, 69, 12, 131, 208, 36, 224, 91, 2, 110, 48, 133, 0, 0, 0, 0, 16, 70, 52, 148, 212, 21, 34, 69, 65,
-			13, 89, 47, 116, 34, 37, 0, 9, 198, 4, 195, 73, 76, 178, 69, 67, 0, 10, 69, 44, 83, 22, 36, 224, 21, 0, 47, 0, 0, 9,
-			198, 52, 144, 200, 36, 83, 0, 66, 0, 0, 9, 198, 36, 226, 204, 84, 148, 192, 66, 16, 70, 28, 83, 133, 76, 148, 192, 136, 116, 50,
-			13, 89, 13, 89, 0, 16, 70, 28, 20, 129, 28, 84, 192, 81, 13, 34, 115, 75, 13, 89, 0, 9, 198, 24, 147, 129, 48, 148, 192, 67,
-			15, 70, 48, 145, 83, 8, 85, 0, 55, 37, 89, 71, 108, 47, 0, 0, 0, 0, 10, 67, 8, 197, 77, 71, 55, 40, 65, 0, 0, 13,
-			68, 41, 83, 165, 56, 136, 40, 50, 6, 37, 50, 0, 0, 15, 70, 61, 81, 19, 32, 84, 128, 120, 47, 89, 107, 112, 34, 0, 22, 73,
-			48, 19, 135, 20, 226, 15, 88, 83, 128, 55, 35, 68, 13, 50, 107, 117, 83, 13, 50, 0, 0, 11, 199, 60, 225, 5, 73, 51, 197, 44,
-			67, 36, 0, 0, 10, 69, 92, 147, 19, 60, 224, 21, 0, 47, 10, 69, 17, 84, 212, 36, 224, 21, 0, 47, 0, 0, 0, 16, 71, 76,
-			50, 18, 20, 147, 133, 72, 91, 34, 121, 50, 13, 34, 0, 0, 10, 69, 56, 83, 19, 60, 224, 21, 0, 47, 0, 21, 72, 88, 243, 210,
-			52, 19, 9, 28, 80, 83, 117, 34, 65, 6, 115, 55, 13, 136, 13, 0, 0, 9, 197, 60, 244, 150, 4, 192, 66, 36, 18, 71, 9, 34,
-			69, 92, 83, 69, 76, 71, 34, 37, 84, 13, 65, 108, 89, 0, 0, 20, 71, 56, 20, 193, 72, 83, 133, 72, 50, 35, 89, 35, 34, 6,
-			116, 50, 13, 34, 0, 10, 67, 56, 148, 201, 21, 108, 97, 0, 47, 20, 71, 92, 83, 9, 77, 112, 65, 72, 84, 6, 112, 55, 14, 89,
-			84, 115, 34, 0, 8, 0, 9, 67, 52, 21, 68, 65, 131, 72, 0, 0, 9, 67, 21, 84, 143, 128, 34, 40, 0, 0, 14, 70, 52, 21,
-			20, 32, 81, 64, 65, 35, 47, 6, 116, 0, 0, 20, 71, 4, 112, 77, 20, 211, 143, 56, 35, 136, 35, 65, 6, 108, 65, 50, 110, 50,
-			0, 7, 195, 17, 84, 192, 8, 32, 0, 0, 0, 16, 70, 88, 84, 147, 20, 225, 64, 83, 112, 34, 89, 13, 50, 13, 0, 16, 70, 80,
-			85, 146, 20, 65, 64, 47, 13, 83, 34, 116, 72, 13, 0, 30, 76, 80, 129, 83, 76, 19, 15, 56, 144, 197, 57, 49, 64, 47, 108, 89,
-			35, 55, 117, 50, 37, 89, 6, 108, 12, 50, 89, 13, 0, 0, 14, 67, 4, 69, 128, 35, 47, 83, 40, 49, 6, 115, 47, 0, 0, 0,
-			21, 72, 52, 20, 135, 5, 33, 84, 32, 16, 65, 35, 34, 136, 35, 34, 6, 116, 47, 35, 0, 0, 0, 10, 67, 8, 85, 197, 71, 116,
-			84, 13, 0, 0, 13, 70, 85, 53, 70, 73, 80, 212, 21, 108, 97, 0, 47, 0, 0, 9, 68, 48, 85, 201, 76, 21, 0, 47, 0, 15,
-			70, 56, 245, 83, 20, 64, 69, 50, 120, 89, 13, 72, 115, 0, 0, 14, 69, 44, 244, 1, 5, 32, 49, 110, 48, 10, 115, 34, 0, 0,
-			0, 16, 70, 88, 16, 82, 92, 83, 0, 83, 115, 34, 84, 6, 112, 55, 0, 13, 69, 24, 245, 67, 34, 32, 83, 40, 91, 6, 116, 0,
-			0, 12, 68, 52, 245, 15, 72, 65, 117, 47, 13, 34, 0, 11, 68, 28, 86, 69, 72, 136, 123, 13, 34, 0, 0, 18, 70, 4, 194, 15,
-			21, 113, 76, 35, 55, 107, 40, 84, 6, 112, 55, 0, 8, 0, 11, 68, 64, 147, 143, 80, 48, 37, 50, 40, 0, 0, 0, 19, 71, 4,
-			229, 23, 21, 36, 5, 56, 35, 50, 47, 84, 112, 34, 48, 13, 50, 0, 0, 10, 199, 4, 195, 5, 72, 113, 78, 20, 67, 20, 71, 8,
-			20, 131, 20, 195, 206, 4, 71, 35, 34, 89, 13, 55, 6, 117, 50, 35, 0, 0, 16, 70, 80, 84, 207, 85, 37, 83, 47, 13, 89, 120,
-			34, 111, 89, 0, 14, 71, 52, 84, 131, 5, 68, 137, 96, 21, 108, 97, 0, 47, 0, 0, 17, 70, 141, 33, 78, 77, 65, 82, 113, 34,
-			13, 50, 89, 47, 13, 34, 0, 12, 68, 36, 36, 197, 56, 37, 71, 89, 13, 50, 0, 0, 24, 73, 5, 34, 83, 80, 245, 5, 48, 84,
-			192, 35, 34, 37, 89, 47, 6, 117, 47, 13, 55, 108, 89, 0, 0, 23, 73, 17, 34, 78, 44, 80, 146, 60, 84, 128, 72, 34, 109, 50,
-			49, 13, 71, 34, 40, 12, 34, 0, 0, 10, 199, 16, 85, 82, 45, 37, 73, 76, 66, 24, 73, 8, 85, 12, 20, 129, 77, 77, 65, 82,
-			71, 108, 47, 55, 37, 12, 108, 65, 89, 47, 112, 34, 0, 0, 18, 71, 76, 147, 135, 5, 3, 197, 72, 89, 37, 68, 81, 35, 48, 40,
-			34, 0, 0, 7, 196, 4, 226, 77, 4, 65, 12, 68, 20, 97, 83, 20, 116, 83, 13, 89, 13, 0, 19, 72, 8, 18, 78, 76, 179, 15,
-			60, 96, 71, 123, 50, 89, 49, 55, 117, 83, 0, 0, 25, 73, 52, 81, 137, 77, 67, 198, 20, 193, 83, 65, 108, 83, 37, 89, 47, 6,
-			117, 83, 13, 55, 13, 89, 0, 0, 22, 73, 77, 112, 78, 28, 84, 147, 92, 16, 82, 89, 58, 35, 68, 13, 34, 89, 58, 115, 34, 0,
-			9, 198, 56, 17, 5, 56, 177, 64, 65, 16, 70, 8, 147, 208, 76, 145, 64, 71, 37, 6, 110, 48, 89, 37, 0, 13, 70, 12, 128, 82,
-			48, 145, 64, 76, 115, 55, 37, 0, 0, 15, 72, 72, 84, 212, 37, 69, 84, 36, 240, 21, 108, 97, 0, 47, 15, 70, 92, 243, 19, 20,
-			193, 89, 58, 40, 55, 89, 55, 37, 0, 0, 16, 70, 77, 69, 75, 72, 17, 192, 89, 47, 118, 49, 34, 35, 136, 0, 12, 68, 64, 20,
-			139, 20, 48, 35, 34, 49, 13, 0, 14, 68, 32, 244, 197, 4, 107, 40, 89, 6, 37, 12, 35, 0, 0, 15, 70, 12, 147, 12, 36, 84,
-			147, 89, 109, 55, 57, 6, 116, 0, 15, 70, 12, 83, 12, 36, 84, 147, 89, 109, 55, 57, 6, 116, 0, 16, 70, 88, 147, 12, 36, 84,
-			147, 84, 109, 55, 37, 13, 34, 89, 0, 13, 72, 8, 243, 142, 36, 85, 129, 48, 80, 21, 0, 47, 13, 67, 20, 67, 83, 123, 13, 50,
-			72, 110, 65, 89, 0, 0, 9, 198, 52, 20, 211, 4, 193, 64, 66, 17, 70, 16, 17, 207, 72, 65, 64, 72, 35, 136, 10, 110, 34, 72,
-			13, 0, 15, 70, 12, 81, 9, 48, 193, 64, 89, 13, 72, 109, 55, 13, 0, 14, 70, 64, 244, 147, 12, 129, 64, 48, 110, 34, 91, 13,
-			0, 15, 70, 77, 86, 129, 56, 225, 64, 89, 40, 88, 6, 115, 50, 0, 14, 70, 21, 66, 69, 56, 225, 64, 108, 47, 37, 13, 50, 0,
-			15, 70, 21, 53, 5, 48, 193, 64, 2, 37, 89, 47, 112, 55, 0, 11, 70, 12, 20, 140, 100, 193, 64, 21, 0, 47, 0, 6, 195, 92,
-			145, 64, 8, 7, 195, 80, 241, 64, 72, 32, 0, 24, 73, 88, 19, 146, 33, 147, 147, 16, 244, 144, 83, 35, 50, 34, 6, 123, 50, 89,
-			72, 110, 34, 48, 0, 0, 0, 0, 6, 195, 32, 241, 64, 8, 0, 0, 20, 72, 64, 146, 193, 56, 145, 78, 36, 80, 48, 37, 49, 35,
-			50, 6, 37, 50, 37, 0, 0, 25, 73, 52, 83, 79, 72, 16, 137, 48, 144, 64, 65, 108, 65, 110, 34, 35, 71, 6, 37, 55, 37, 57,
-			35, 0, 0, 0, 0, 0, 12, 199, 28, 85, 143, 48, 115, 9, 44, 66, 8, 32, 14, 69, 73, 84, 5, 73, 64, 34, 40, 48, 13, 34,
-			47, 0, 13, 69, 21, 81, 225, 56, 80, 118, 90, 6, 108, 50, 0, 16, 70, 52, 243, 148, 4, 117, 64, 65, 110, 50, 47, 13, 49, 118,
-			0, 0, 9, 67, 105, 147, 0, 89, 123, 55, 0, 0, 23, 73, 77, 67, 195, 44, 83, 147, 81, 42, 13, 89, 47, 110, 49, 13, 50, 89,
-			47, 34, 117, 65, 0, 14, 69, 29, 84, 212, 5, 96, 81, 40, 89, 47, 35, 83, 0, 0, 0, 8, 197, 76, 81, 5, 73, 64, 8, 10,
-			69, 77, 69, 65, 73, 64, 21, 0, 47, 0, 17, 70, 52, 19, 8, 21, 32, 133, 65, 35, 55, 6, 112, 34, 71, 13, 0, 10, 67, 49,
-			83, 21, 55, 40, 55, 40, 0, 12, 71, 72, 240, 133, 73, 68, 207, 56, 21, 0, 47, 0, 19, 71, 12, 132, 137, 77, 66, 78, 20, 49,
-			34, 13, 89, 47, 6, 37, 12, 50, 0, 18, 71, 12, 132, 137, 77, 66, 78, 4, 49, 34, 13, 89, 47, 37, 50, 35, 0, 9, 198, 81,
-			83, 137, 76, 153, 0, 66, 0, 13, 70, 4, 197, 5, 72, 149, 83, 21, 108, 97, 0, 47, 0, 21, 72, 9, 33, 68, 20, 226, 193, 53,
-			0, 71, 34, 116, 72, 13, 50, 49, 35, 65, 48, 0, 0, 21, 72, 12, 20, 16, 84, 48, 201, 56, 240, 49, 35, 48, 40, 76, 6, 37,
-			12, 50, 40, 0, 7, 195, 32, 243, 64, 72, 32, 9, 67, 44, 147, 64, 21, 0, 41, 47, 0, 9, 68, 40, 147, 77, 100, 21, 0, 47,
-			0, 0, 0, 0, 20, 71, 52, 19, 148, 61, 96, 78, 36, 65, 35, 50, 47, 110, 84, 6, 115, 50, 37, 0, 0, 15, 69, 60, 32, 68,
-			40, 16, 117, 71, 6, 35, 47, 57, 35, 0, 0, 24, 73, 48, 19, 66, 61, 33, 200, 36, 226, 64, 55, 35, 65, 71, 110, 34, 81, 6,
-			37, 12, 50, 37, 0, 0, 13, 69, 12, 241, 206, 4, 48, 49, 110, 67, 35, 49, 0, 0, 18, 71, 64, 148, 143, 84, 85, 20, 20, 48,
-			13, 34, 40, 12, 6, 108, 47, 0, 13, 68, 61, 32, 76, 20, 117, 34, 6, 115, 55, 13, 0, 12, 68, 32, 241, 82, 4, 107, 40, 34,
-			6, 115, 0, 14, 68, 16, 144, 78, 4, 72, 37, 57, 6, 115, 50, 35, 0, 0, 20, 72, 88, 84, 140, 4, 225, 211, 80, 80, 83, 13,
-			34, 55, 35, 68, 89, 47, 13, 0, 15, 69, 16, 17, 213, 72, 80, 72, 35, 136, 10, 118, 34, 13, 0, 16, 69, 32, 83, 5, 56, 80,
-			107, 37, 12, 55, 6, 37, 12, 50, 0, 15, 69, 21, 81, 197, 56, 80, 57, 40, 75, 6, 37, 12, 50, 0, 14, 69, 16, 83, 9, 48,
-			16, 72, 13, 55, 109, 55, 35, 0, 14, 69, 16, 19, 5, 56, 80, 72, 35, 55, 6, 116, 50, 0, 10, 69, 12, 192, 73, 72, 80, 21,
-			0, 47, 19, 72, 4, 229, 15, 36, 225, 84, 80, 80, 35, 50, 47, 40, 50, 6, 108, 47, 0, 14, 69, 21, 84, 143, 64, 16, 128, 34,
-			6, 117, 48, 35, 0, 0, 0, 0, 0, 11, 199, 60, 225, 5, 73, 113, 82, 64, 67, 36, 14, 71, 13, 35, 201, 77, 48, 78, 80, 21,
-			102, 114, 0, 47, 8, 197, 32, 241, 75, 60, 208, 8, 0, 18, 70, 52, 20, 148, 36, 226, 64, 65, 35, 34, 47, 6, 37, 12, 50, 37,
-			0, 17, 70, 88, 149, 129, 48, 66, 64, 84, 37, 84, 6, 35, 55, 72, 37, 0, 0, 13, 69, 32, 81, 76, 8, 240, 107, 116, 55, 71,
-			117, 0, 0, 0, 0, 7, 196, 76, 244, 1, 76, 66, 9, 198, 60, 244, 151, 4, 18, 64, 65, 16, 70, 80, 83, 5, 52, 19, 142, 47,
-			116, 55, 13, 65, 35, 50, 0, 0, 11, 70, 16, 83, 9, 48, 18, 0, 21, 0, 47, 0, 15, 69, 9, 37, 87, 21, 32, 71, 34, 40,
-			58, 6, 113, 34, 0, 17, 6, 95, 114, 111, 109, 97, 110, 34, 40, 65, 6, 123, 50, 89, 13, 0, 0, 0, 11, 69, 88, 147, 204, 21,
-			64, 21, 0, 41, 47, 16, 70, 28, 16, 146, 38, 67, 0, 136, 115, 71, 34, 37, 13, 55, 0, 0, 16, 70, 28, 83, 133, 72, 193, 73,
-			136, 116, 50, 13, 34, 55, 123, 0, 0, 15, 69, 92, 83, 5, 21, 32, 84, 112, 55, 10, 6, 116, 34, 0, 13, 69, 12, 17, 83, 5,
-			32, 89, 37, 88, 13, 34, 0, 0, 23, 73, 44, 224, 80, 76, 82, 227, 72, 83, 0, 49, 50, 35, 48, 89, 13, 49, 113, 34, 13, 55,
-			0, 15, 72, 8, 83, 133, 24, 144, 201, 84, 208, 21, 108, 97, 0, 47, 0, 8, 197, 88, 19, 132, 5, 64, 65, 0, 0, 17, 70, 56,
-			146, 211, 92, 84, 132, 50, 109, 49, 89, 84, 113, 34, 47, 0, 10, 199, 5, 52, 197, 77, 51, 210, 20, 67, 0, 6, 97, 97, 0, 4,
-			110, 2, 98, 105, 100, 3, 2, 115, 50, 0, 110, 2, 103, 114, 101, 110, 115, 101, 110, 0, 110, 2, 103, 114, 121, 112, 101, 110, 100, 0,
-			110, 2, 104, 97, 110, 103, 105, 103, 0, 110, 2, 104, 97, 110, 107, 0, 110, 2, 104, 111, 117, 100, 101, 110, 0, 110, 2, 108, 111, 107,
-			0, 110, 2, 109, 101, 108, 100, 98, 97, 0, 110, 2, 112, 97, 115, 98, 97, 0, 110, 2, 115, 105, 101, 110, 0, 110, 2, 115, 112, 114,
-			101, 101, 107, 0, 110, 2, 115, 116, 17, 65, 17, 65, 17, 67, 0, 110, 2, 116, 97, 115, 98, 0, 110, 2, 118, 97, 97, 114, 0, 110,
-			2, 118, 97, 108, 108, 17, 65, 17, 67, 0, 110, 2, 118, 101, 103, 98, 97, 0, 110, 2, 118, 117, 108, 108, 101, 110, 100, 0, 110, 2,
-			119, 101, 115, 105, 103, 0, 110, 2, 119, 121, 115, 101, 110, 100, 101, 32, 118, 111, 111, 114, 110, 0, 110, 2, 101, 101, 110, 3, 2, 115,
-			50, 19, 0, 110, 116, 114, 101, 107, 108, 105, 107, 3, 2, 115, 50, 47, 34, 112, 49, 55, 13, 49, 0, 110, 100, 111, 101, 110, 108, 105,
-			107, 3, 2, 115, 50, 72, 40, 50, 55, 13, 49, 0, 110, 110, 101, 101, 109, 108, 105, 107, 3, 2, 115, 50, 116, 65, 55, 13, 49, 0,
-			109, 2, 98, 111, 114, 115, 3, 2, 115, 65, 0, 110, 2, 115, 105, 101, 110, 32, 24, 3, 6, 115, 50, 0, 4, 110, 119, 101, 110, 2,
-			32, 3, 6, 115, 50, 84, 108, 50, 0, 110, 119, 101, 110, 2, 100, 0, 110, 115, 116, 101, 114, 107, 3, 6, 115, 50, 89, 47, 112, 34,
-			49, 0, 110, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 115, 50, 136, 13, 0, 110, 103, 101, 101, 2, 12, 3, 6, 115, 50, 136,
-			116, 0, 110, 115, 2, 32, 3, 6, 133, 50, 89, 0, 110, 115, 101, 2, 32, 3, 6, 133, 50, 89, 13, 0, 3, 115, 0, 114, 100, 8,
-			2, 114, 3, 115, 34, 47, 0, 114, 100, 8, 2, 111, 3, 115, 34, 47, 10, 0, 4, 110, 2, 103, 3, 115, 50, 0, 110, 2, 108, 111,
-			107, 32, 24, 0, 110, 2, 115, 112, 114, 101, 101, 107, 32, 24, 0, 110, 2, 115, 116, 17, 65, 17, 65, 17, 67, 32, 24, 0, 110, 2,
-			116, 114, 101, 107, 32, 24, 0, 110, 2, 118, 97, 108, 108, 101, 114, 0, 4, 110, 2, 115, 107, 111, 117, 3, 115, 50, 6, 0, 110, 2,
-			118, 97, 110, 107, 0, 4, 110, 100, 2, 114, 111, 107, 3, 115, 50, 47, 10, 0, 110, 100, 2, 114, 117, 115, 0, 110, 116, 101, 108, 8,
-			3, 115, 50, 47, 112, 55, 0, 110, 100, 101, 108, 101, 3, 115, 50, 72, 116, 55, 13, 10, 0, 110, 115, 116, 101, 2, 108, 108, 101, 114,
-			105, 103, 3, 115, 50, 89, 47, 6, 112, 0, 110, 110, 101, 109, 2, 17, 65, 3, 115, 50, 116, 65, 0, 105, 3, 122, 0, 4, 110, 2,
-			100, 106, 105, 101, 3, 122, 68, 0, 110, 2, 116, 106, 105, 101, 0, 4, 100, 106, 105, 101, 3, 122, 80, 37, 0, 116, 106, 105, 101, 0,
-			7, 6, 97, 110, 0, 4, 1, 17, 67, 2, 107, 101, 101, 114, 3, 2, 35, 50, 0, 8, 2, 17, 65, 0, 8, 2, 101, 109, 105, 101,
-			0, 110, 8, 2, 97, 21, 0, 97, 116, 111, 2, 109, 105, 101, 3, 2, 35, 50, 2, 35, 47, 2, 40, 0, 97, 116, 111, 109, 105, 101,
-			115, 3, 2, 35, 50, 2, 35, 47, 117, 65, 2, 37, 89, 0, 111, 2, 114, 101, 107, 17, 67, 3, 2, 35, 50, 2, 40, 0, 111, 109,
-			97, 2, 108, 105, 101, 3, 2, 35, 50, 2, 40, 65, 2, 35, 0, 111, 109, 97, 108, 105, 101, 115, 3, 2, 35, 50, 2, 40, 65, 115,
-			55, 37, 89, 0, 101, 107, 2, 100, 111, 116, 3, 2, 35, 50, 2, 108, 49, 0, 101, 2, 109, 111, 3, 2, 35, 50, 13, 0, 116, 105,
-			8, 2, 17, 67, 14, 128, 132, 132, 3, 2, 35, 50, 47, 2, 37, 0, 116, 114, 97, 2, 115, 105, 101, 116, 3, 2, 35, 50, 47, 34,
-			2, 35, 0, 116, 101, 2, 110, 110, 17, 65, 3, 2, 35, 50, 47, 108, 0, 101, 116, 116, 101, 1, 17, 67, 2, 32, 3, 2, 35, 50,
-			108, 47, 0, 2, 103, 105, 110, 97, 3, 2, 35, 68, 0, 103, 101, 2, 108, 105, 101, 114, 3, 2, 35, 68, 13, 0, 103, 111, 114, 97,
-			3, 2, 35, 68, 81, 131, 34, 2, 35, 0, 103, 111, 108, 2, 101, 3, 2, 133, 68, 136, 2, 40, 55, 0, 103, 108, 8, 2, 17, 65,
-			3, 2, 133, 68, 136, 55, 2, 0, 97, 8, 2, 17, 67, 3, 4, 35, 50, 35, 0, 1, 103, 2, 32, 3, 21, 0, 111, 2, 114, 97,
-			107, 3, 35, 50, 2, 40, 0, 116, 114, 111, 111, 112, 1, 21, 3, 35, 50, 47, 34, 6, 117, 48, 0, 116, 114, 111, 112, 101, 1, 21,
-			2, 32, 3, 35, 50, 47, 34, 6, 117, 48, 13, 0, 116, 114, 111, 112, 105, 101, 1, 21, 3, 35, 50, 47, 34, 6, 117, 48, 37, 0,
-			116, 114, 111, 112, 105, 101, 1, 21, 2, 32, 24, 3, 35, 50, 47, 34, 40, 48, 6, 37, 0, 115, 106, 111, 118, 105, 3, 35, 50, 91,
-			7, 117, 83, 13, 0, 103, 108, 101, 101, 114, 3, 35, 68, 55, 116, 34, 0, 4, 2, 100, 106, 105, 101, 12, 3, 121, 68, 0, 2, 116,
-			106, 105, 101, 0, 4, 115, 1, 100, 3, 133, 50, 89, 0, 115, 1, 104, 0, 115, 1, 107, 0, 115, 1, 108, 0, 115, 1, 114, 102, 0,
-			115, 1, 114, 107, 0, 103, 111, 108, 97, 3, 133, 68, 136, 6, 117, 55, 35, 0, 7, 6, 98, 97, 0, 4, 2, 108, 97, 110, 115, 3,
-			71, 2, 35, 0, 2, 108, 100, 97, 100, 105, 103, 0, 2, 108, 106, 97, 97, 114, 0, 2, 108, 107, 111, 110, 0, 2, 108, 108, 111, 110,
-			0, 2, 110, 97, 108, 17, 65, 0, 2, 110, 105, 101, 114, 0, 2, 114, 101, 116, 25, 0, 2, 114, 111, 110, 0, 2, 115, 105, 101, 108,
-			105, 0, 2, 116, 105, 107, 0, 8, 2, 115, 97, 0, 114, 2, 98, 17, 65, 3, 71, 2, 35, 34, 0, 116, 97, 108, 2, 106, 111, 110,
-			3, 71, 2, 35, 47, 2, 35, 55, 0, 116, 116, 101, 2, 114, 121, 3, 71, 2, 35, 47, 13, 0, 107, 97, 116, 101, 2, 108, 3, 71,
-			2, 35, 49, 13, 47, 112, 0, 107, 116, 101, 2, 114, 105, 3, 71, 2, 35, 49, 47, 116, 0, 110, 100, 2, 105, 101, 116, 3, 71, 2,
-			35, 50, 72, 0, 4, 108, 97, 107, 108, 97, 118, 97, 3, 71, 2, 35, 55, 2, 35, 49, 55, 115, 84, 2, 35, 0, 108, 97, 107, 108,
-			97, 119, 97, 0, 108, 97, 110, 2, 115, 101, 101, 114, 3, 71, 2, 35, 55, 2, 35, 50, 0, 108, 108, 101, 114, 2, 105, 110, 17, 65,
-			3, 71, 2, 35, 55, 13, 34, 0, 108, 106, 117, 3, 71, 2, 35, 55, 57, 118, 0, 108, 104, 111, 114, 3, 71, 2, 35, 55, 107, 117,
-			34, 0, 108, 108, 101, 2, 116, 3, 71, 2, 35, 55, 108, 0, 108, 108, 97, 100, 101, 3, 71, 2, 35, 55, 115, 72, 13, 0, 106, 111,
-			110, 101, 2, 116, 3, 71, 2, 35, 57, 2, 40, 50, 108, 0, 109, 8, 2, 98, 111, 101, 115, 3, 71, 2, 35, 65, 0, 4, 110, 2,
-			107, 101, 116, 3, 71, 2, 35, 68, 0, 110, 2, 107, 105, 101, 114, 0, 110, 2, 107, 114, 111, 116, 0, 115, 105, 2, 108, 105, 115, 107,
-			3, 71, 2, 35, 89, 13, 0, 115, 111, 116, 104, 111, 3, 71, 2, 35, 89, 40, 47, 2, 40, 0, 115, 116, 105, 108, 108, 101, 3, 71,
-			2, 35, 89, 47, 37, 12, 55, 0, 104, 97, 109, 97, 3, 71, 2, 35, 107, 115, 65, 2, 35, 0, 110, 100, 2, 17, 65, 108, 105, 101,
-			114, 3, 71, 4, 35, 50, 72, 0, 108, 108, 111, 2, 116, 3, 71, 4, 35, 55, 110, 0, 1, 21, 2, 114, 101, 110, 3, 71, 6, 115,
-			0, 97, 114, 108, 105, 107, 1, 21, 3, 71, 6, 115, 34, 55, 13, 49, 0, 116, 101, 8, 3, 71, 7, 115, 47, 13, 0, 107, 108, 101,
-			105, 3, 71, 13, 49, 55, 123, 0, 103, 97, 115, 105, 101, 3, 71, 13, 136, 115, 89, 37, 0, 2, 114, 105, 116, 111, 110, 3, 71, 35,
-			0, 114, 111, 2, 109, 101, 116, 101, 114, 3, 71, 35, 34, 2, 40, 0, 114, 97, 2, 107, 3, 71, 35, 34, 6, 35, 0, 114, 111, 107,
-			3, 71, 35, 34, 7, 110, 49, 10, 0, 100, 2, 114, 3, 71, 35, 47, 0, 100, 8, 2, 17, 65, 3, 71, 35, 47, 10, 0, 107, 8,
-			2, 111, 3, 71, 35, 49, 10, 0, 110, 100, 2, 17, 65, 3, 71, 35, 50, 47, 0, 110, 100, 2, 101, 3, 71, 35, 50, 72, 0, 108,
-			108, 2, 101, 116, 106, 105, 101, 12, 3, 71, 35, 55, 0, 108, 115, 101, 109, 3, 71, 35, 55, 89, 13, 65, 0, 115, 116, 105, 111, 110,
-			3, 71, 35, 89, 47, 37, 110, 50, 0, 107, 101, 110, 3, 71, 115, 49, 13, 50, 0, 114, 98, 101, 114, 116, 111, 110, 3, 71, 115, 71,
-			13, 34, 47, 2, 110, 50, 0, 98, 97, 3, 71, 115, 71, 35, 0, 98, 97, 2, 116, 106, 105, 101, 3, 71, 115, 71, 121, 0, 115, 105,
-			2, 115, 3, 71, 115, 89, 13, 0, 100, 106, 105, 101, 3, 71, 121, 80, 37, 0, 7, 6, 98, 101, 0, 115, 101, 114, 105, 110, 103, 3,
-			8, 71, 13, 89, 116, 34, 13, 68, 0, 110, 8, 2, 17, 67, 105, 101, 110, 3, 71, 2, 108, 50, 0, 110, 8, 2, 103, 97, 3, 71,
-			2, 108, 68, 0, 114, 2, 108, 121, 110, 3, 71, 2, 112, 34, 0, 110, 101, 2, 100, 121, 3, 71, 2, 116, 50, 13, 0, 1, 17, 67,
-			2, 114, 115, 105, 101, 3, 71, 6, 113, 0, 101, 114, 1, 21, 2, 32, 3, 71, 6, 116, 34, 0, 4, 114, 105, 110, 103, 3, 71, 6,
-			116, 34, 13, 68, 0, 114, 105, 110, 103, 1, 98, 111, 114, 107, 115, 0, 116, 101, 114, 3, 71, 6, 116, 47, 13, 34, 0, 101, 108, 100,
-			105, 103, 1, 21, 3, 71, 6, 116, 55, 72, 13, 136, 0, 107, 101, 114, 8, 2, 17, 67, 21, 3, 71, 7, 116, 49, 13, 34, 0, 4,
-			1, 21, 2, 17, 67, 3, 71, 13, 0, 1, 98, 17, 65, 17, 67, 2, 108, 0, 1, 117, 106, 2, 108, 108, 17, 65, 0, 2, 100, 114,
-			21, 0, 2, 119, 101, 103, 105, 110, 103, 0, 8, 2, 17, 67, 121, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 32, 0, 2, 97,
-			109, 112, 3, 71, 13, 19, 0, 114, 2, 115, 101, 114, 107, 3, 71, 13, 34, 0, 4, 114, 105, 110, 103, 1, 17, 67, 3, 71, 13, 34,
-			13, 68, 0, 114, 105, 110, 103, 1, 111, 0, 107, 101, 110, 3, 71, 13, 49, 108, 50, 0, 110, 100, 101, 1, 98, 10, 3, 71, 13, 50,
-			72, 13, 0, 100, 119, 2, 21, 3, 71, 13, 72, 58, 0, 100, 101, 2, 17, 67, 102, 3, 71, 13, 72, 112, 0, 100, 101, 108, 105, 110,
-			103, 3, 71, 13, 72, 116, 55, 13, 68, 0, 119, 121, 115, 1, 21, 3, 71, 13, 84, 123, 89, 0, 115, 116, 101, 2, 107, 3, 71, 13,
-			89, 47, 112, 0, 115, 105, 103, 2, 116, 105, 103, 3, 71, 13, 89, 109, 136, 0, 104, 101, 112, 3, 71, 13, 107, 108, 48, 0, 103, 101,
-			114, 2, 17, 65, 3, 71, 13, 136, 116, 34, 0, 4, 2, 17, 67, 11, 12, 3, 71, 108, 0, 100, 2, 116, 0, 100, 106, 105, 101, 3,
-			71, 108, 12, 37, 80, 37, 0, 4, 100, 1, 21, 2, 32, 3, 71, 108, 47, 0, 100, 2, 17, 67, 0, 100, 2, 114, 97, 110, 100, 0,
-			100, 2, 119, 97, 114, 109, 0, 100, 2, 119, 111, 111, 114, 100, 0, 116, 108, 101, 104, 101, 2, 109, 3, 71, 108, 47, 55, 2, 37, 2,
-			108, 0, 100, 119, 2, 105, 101, 103, 3, 71, 108, 47, 84, 0, 110, 100, 101, 3, 71, 108, 50, 72, 13, 0, 110, 103, 101, 108, 3, 71,
-			108, 68, 13, 55, 0, 115, 115, 105, 101, 3, 71, 108, 89, 37, 0, 115, 116, 101, 2, 32, 3, 71, 108, 89, 47, 13, 0, 1, 101, 114,
-			2, 108, 25, 12, 3, 71, 112, 0, 114, 8, 2, 17, 67, 3, 71, 112, 34, 0, 114, 107, 101, 8, 3, 71, 112, 34, 49, 13, 0, 114,
-			103, 101, 3, 71, 112, 34, 81, 13, 0, 114, 103, 3, 71, 112, 34, 136, 0, 4, 107, 2, 32, 3, 71, 112, 49, 0, 107, 2, 100, 0,
-			107, 2, 102, 0, 107, 2, 104, 0, 107, 2, 109, 0, 107, 2, 115, 0, 107, 107, 2, 12, 0, 4, 1, 114, 2, 108, 25, 3, 71, 112,
-			55, 0, 108, 1, 17, 67, 2, 32, 0, 108, 8, 2, 17, 67, 0, 108, 108, 2, 12, 0, 4, 1, 110, 111, 115, 2, 115, 105, 101, 3,
-			71, 116, 0, 2, 100, 101, 32, 0, 101, 2, 12, 0, 4, 101, 114, 1, 97, 17, 67, 11, 3, 71, 116, 34, 0, 101, 114, 1, 101, 105,
-			100, 100, 101, 116, 0, 101, 114, 1, 115, 121, 0, 114, 101, 2, 32, 3, 71, 116, 34, 13, 0, 114, 105, 110, 103, 1, 116, 110, 111, 3,
-			71, 116, 34, 13, 68, 0, 116, 101, 2, 32, 3, 71, 116, 47, 13, 0, 116, 101, 115, 1, 97, 105, 100, 2, 21, 3, 71, 116, 47, 13,
-			89, 0, 116, 105, 101, 115, 3, 71, 116, 47, 37, 89, 0, 4, 107, 101, 114, 1, 21, 2, 32, 3, 71, 116, 49, 13, 34, 0, 107, 101,
-			114, 1, 21, 2, 116, 106, 105, 101, 0, 107, 101, 114, 2, 17, 67, 21, 0, 107, 101, 114, 2, 17, 65, 17, 65, 3, 71, 116, 49, 13,
-			34, 10, 0, 4, 110, 101, 1, 21, 2, 32, 3, 71, 116, 50, 13, 0, 110, 101, 2, 114, 0, 110, 105, 2, 103, 0, 100, 101, 2, 115,
-			116, 114, 3, 71, 116, 72, 13, 0, 100, 101, 108, 3, 71, 116, 72, 13, 55, 0, 100, 101, 118, 3, 71, 116, 72, 13, 83, 0, 100, 101,
-			115, 2, 32, 3, 71, 116, 72, 13, 89, 0, 4, 119, 101, 2, 107, 110, 105, 101, 3, 71, 116, 84, 13, 0, 119, 101, 2, 108, 105, 112,
-			0, 119, 101, 2, 114, 97, 115, 105, 101, 0, 119, 101, 2, 114, 105, 103, 0, 119, 101, 110, 100, 101, 3, 71, 116, 84, 13, 50, 72, 13,
-			0, 119, 105, 110, 103, 3, 71, 116, 84, 13, 68, 0, 4, 115, 2, 105, 101, 32, 3, 71, 116, 89, 0, 115, 2, 105, 101, 115, 32, 0,
-			115, 101, 109, 3, 71, 116, 89, 13, 65, 0, 115, 105, 103, 3, 71, 116, 89, 13, 136, 0, 97, 117, 3, 71, 120, 0, 105, 2, 12, 3,
-			71, 123, 0, 105, 103, 101, 3, 71, 123, 12, 90, 0, 117, 2, 17, 67, 3, 71, 128, 0, 117, 101, 108, 3, 71, 128, 13, 55, 0, 7,
-			6, 100, 101, 0, 1, 21, 2, 114, 111, 115, 105, 101, 3, 47, 10, 2, 116, 0, 4, 2, 109, 111, 111, 110, 3, 72, 2, 37, 0, 2,
-			112, 114, 101, 115, 115, 0, 111, 100, 111, 2, 114, 97, 110, 116, 3, 72, 2, 37, 2, 40, 72, 2, 40, 0, 116, 97, 105, 2, 108, 108,
-			101, 101, 114, 3, 72, 2, 37, 12, 47, 2, 123, 0, 109, 111, 110, 101, 3, 72, 2, 37, 65, 117, 50, 13, 0, 4, 2, 107, 108, 105,
-			110, 17, 65, 3, 72, 2, 108, 0, 2, 109, 111, 17, 67, 114, 0, 2, 112, 117, 116, 97, 0, 2, 115, 107, 117, 110, 0, 116, 111, 2,
-			110, 17, 65, 3, 72, 2, 108, 47, 2, 40, 0, 110, 8, 2, 100, 114, 105, 3, 72, 2, 108, 50, 0, 108, 105, 8, 2, 107, 97, 3,
-			72, 2, 108, 55, 2, 37, 0, 108, 105, 107, 97, 2, 116, 101, 115, 115, 3, 72, 2, 108, 55, 2, 37, 49, 2, 35, 0, 98, 105, 2,
-			116, 101, 3, 72, 2, 108, 71, 2, 37, 0, 4, 98, 117, 2, 116, 97, 3, 72, 2, 108, 71, 2, 118, 0, 98, 117, 2, 116, 101, 21,
-			0, 115, 8, 2, 112, 111, 3, 72, 2, 108, 89, 0, 114, 8, 2, 100, 117, 105, 17, 67, 3, 72, 2, 112, 34, 0, 108, 112, 104, 105,
-			110, 105, 117, 109, 3, 72, 2, 112, 55, 83, 37, 50, 37, 38, 111, 65, 0, 4, 2, 102, 108, 97, 115, 105, 3, 72, 2, 116, 0, 2,
-			104, 105, 100, 114, 0, 2, 107, 114, 105, 109, 105, 110, 97, 0, 2, 115, 116, 114, 117, 107, 116, 0, 101, 2, 109, 111, 101, 100, 105, 103,
-			0, 115, 116, 97, 98, 105, 108, 105, 8, 2, 115, 3, 72, 2, 116, 89, 47, 2, 35, 71, 2, 37, 55, 2, 37, 0, 115, 101, 109, 98,
-			101, 114, 3, 72, 2, 116, 89, 108, 65, 71, 13, 34, 0, 4, 117, 114, 2, 100, 114, 101, 110, 107, 3, 72, 2, 118, 13, 34, 0, 117,
-			114, 2, 100, 114, 105, 110, 103, 21, 0, 117, 114, 2, 103, 114, 111, 110, 100, 0, 117, 114, 2, 108, 101, 101, 102, 0, 117, 114, 2, 108,
-			111, 112, 21, 0, 117, 114, 2, 108, 117, 103, 116, 0, 117, 114, 2, 115, 105, 103, 116, 0, 117, 114, 2, 116, 114, 97, 112, 116, 0, 117,
-			114, 2, 119, 101, 101, 17, 67, 0, 117, 114, 2, 119, 105, 110, 116, 101, 114, 0, 117, 114, 2, 97, 97, 114, 3, 72, 2, 118, 13, 34,
-			10, 0, 117, 114, 115, 112, 101, 107, 3, 72, 2, 118, 13, 34, 89, 48, 108, 49, 0, 4, 117, 114, 2, 98, 111, 3, 72, 2, 128, 34,
-			0, 117, 114, 2, 100, 97, 103, 0, 117, 114, 2, 112, 114, 105, 101, 109, 0, 117, 114, 2, 114, 101, 105, 115, 0, 117, 114, 2, 115, 107,
-			121, 110, 17, 65, 0, 117, 114, 2, 115, 107, 121, 110, 100, 101, 0, 117, 114, 2, 115, 111, 101, 107, 0, 117, 114, 2, 119, 97, 97, 105,
-			100, 0, 2, 103, 114, 97, 100, 17, 65, 3, 72, 4, 116, 0, 116, 97, 105, 108, 3, 72, 6, 37, 12, 47, 123, 55, 0, 110, 105, 109,
-			8, 3, 72, 7, 108, 50, 13, 65, 0, 110, 107, 101, 110, 2, 100, 3, 72, 7, 108, 68, 49, 13, 50, 0, 4, 1, 10, 2, 110, 101,
-			32, 3, 72, 13, 0, 1, 21, 2, 107, 111, 110, 116, 114, 97, 107, 0, 1, 21, 2, 109, 101, 110, 116, 0, 2, 98, 17, 65, 0, 2,
-			107, 97, 97, 110, 0, 2, 107, 97, 110, 101, 0, 2, 107, 114, 101, 0, 2, 108, 97, 97, 110, 0, 114, 100, 1, 21, 2, 32, 3, 72,
-			13, 34, 47, 0, 112, 97, 114, 116, 101, 2, 109, 101, 110, 116, 3, 72, 13, 48, 2, 35, 34, 47, 13, 0, 112, 111, 115, 105, 116, 111,
-			3, 72, 13, 48, 117, 89, 37, 47, 40, 0, 107, 97, 110, 116, 2, 32, 3, 72, 13, 49, 35, 50, 47, 0, 110, 105, 115, 1, 10, 3,
-			72, 13, 50, 13, 89, 0, 110, 100, 1, 21, 2, 115, 116, 101, 3, 72, 13, 50, 47, 0, 110, 100, 1, 21, 2, 101, 114, 3, 72, 13,
-			50, 72, 0, 108, 101, 8, 2, 103, 17, 65, 3, 72, 13, 55, 13, 0, 108, 101, 1, 110, 117, 107, 2, 25, 3, 72, 13, 55, 108, 0,
-			108, 105, 2, 114, 105, 117, 109, 3, 72, 13, 55, 109, 0, 4, 108, 111, 111, 115, 3, 72, 13, 55, 117, 89, 0, 108, 111, 115, 0, 98,
-			97, 2, 116, 116, 101, 101, 114, 3, 72, 13, 71, 2, 35, 0, 98, 117, 117, 116, 3, 72, 13, 71, 118, 47, 0, 119, 101, 2, 116, 25,
-			3, 72, 13, 84, 108, 0, 112, 111, 116, 2, 32, 3, 72, 108, 48, 2, 40, 0, 107, 97, 100, 101, 2, 115, 3, 72, 108, 49, 6, 115,
-			72, 13, 0, 107, 97, 100, 101, 2, 110, 3, 72, 108, 49, 35, 72, 6, 108, 0, 110, 116, 101, 1, 21, 2, 21, 3, 72, 108, 50, 47,
-			13, 0, 110, 107, 3, 72, 108, 68, 49, 0, 115, 105, 98, 101, 108, 3, 72, 108, 89, 37, 71, 112, 55, 0, 114, 109, 1, 17, 67, 21,
-			2, 25, 3, 72, 112, 34, 14, 65, 0, 114, 103, 101, 8, 3, 72, 112, 34, 136, 13, 0, 4, 114, 100, 101, 1, 101, 101, 119, 116, 3,
-			72, 113, 34, 72, 13, 0, 114, 100, 101, 8, 2, 25, 0, 8, 2, 107, 108, 97, 115, 115, 3, 72, 116, 0, 4, 108, 101, 1, 114, 101,
-			100, 110, 111, 2, 21, 3, 72, 116, 55, 13, 10, 0, 108, 101, 1, 114, 111, 111, 118, 2, 21, 0, 7, 6, 101, 101, 0, 114, 98, 105,
-			101, 100, 119, 3, 2, 116, 34, 71, 2, 37, 47, 84, 0, 114, 119, 8, 3, 2, 116, 34, 84, 0, 4, 110, 2, 100, 114, 97, 103, 21,
-			3, 2, 116, 50, 0, 110, 2, 109, 97, 108, 105, 103, 0, 110, 2, 112, 97, 114, 105, 103, 0, 110, 2, 118, 111, 114, 109, 0, 110, 8,
-			2, 115, 116, 101, 109, 109, 0, 110, 8, 2, 115, 121, 0, 110, 8, 2, 116, 111, 110, 0, 110, 8, 2, 118, 111, 117, 100, 21, 0, 4,
-			114, 1, 21, 2, 24, 3, 6, 116, 34, 0, 114, 1, 107, 105, 0, 114, 1, 108, 111, 17, 65, 0, 114, 1, 109, 109, 0, 114, 1, 109,
-			114, 0, 114, 1, 115, 107, 0, 114, 1, 115, 115, 0, 114, 1, 117, 0, 114, 100, 104, 101, 105, 100, 1, 21, 3, 6, 116, 34, 47, 107,
-			123, 47, 0, 108, 1, 117, 3, 6, 116, 55, 0, 3, 116, 0, 2, 117, 117, 3, 116, 10, 0, 110, 2, 17, 67, 106, 105, 101, 3, 116,
-			12, 37, 68, 0, 4, 114, 1, 102, 115, 3, 116, 34, 0, 114, 1, 104, 0, 114, 1, 107, 21, 0, 114, 1, 107, 115, 0, 114, 1, 108,
-			17, 65, 17, 65, 0, 114, 1, 108, 17, 67, 17, 65, 17, 65, 0, 114, 1, 108, 17, 67, 21, 0, 114, 1, 108, 101, 103, 0, 114, 1,
-			108, 103, 0, 114, 1, 108, 107, 0, 114, 1, 108, 110, 0, 114, 1, 108, 114, 0, 114, 1, 108, 115, 0, 114, 1, 109, 17, 67, 0, 114,
-			1, 112, 101, 17, 67, 0, 114, 1, 115, 17, 67, 0, 114, 1, 116, 110, 171, 195, 105, 114, 111, 0, 114, 1, 118, 17, 65, 17, 65, 0,
-			114, 1, 118, 17, 67, 0, 114, 1, 118, 101, 17, 67, 0, 114, 1, 119, 0, 114, 98, 105, 101, 100, 2, 17, 65, 3, 116, 34, 71, 6,
-			37, 72, 0, 4, 100, 106, 105, 101, 3, 116, 37, 80, 37, 0, 116, 106, 105, 101, 0, 117, 3, 119, 12, 0, 117, 101, 3, 119, 12, 13,
-			0, 7, 6, 101, 110, 0, 101, 109, 109, 101, 108, 3, 2, 37, 50, 112, 65, 13, 55, 0, 4, 1, 17, 67, 17, 65, 17, 67, 2, 115,
-			105, 101, 101, 17, 67, 3, 2, 108, 50, 0, 1, 17, 67, 17, 65, 17, 67, 2, 115, 105, 195, 171, 17, 67, 0, 8, 2, 116, 111, 112,
-			116, 105, 101, 0, 101, 114, 2, 103, 105, 3, 2, 108, 50, 13, 34, 0, 116, 111, 101, 115, 105, 97, 3, 2, 108, 50, 47, 2, 40, 89,
-			2, 37, 35, 0, 107, 101, 108, 2, 118, 111, 117, 100, 105, 3, 2, 108, 50, 49, 13, 55, 0, 115, 105, 107, 108, 111, 112, 101, 3, 2,
-			108, 50, 89, 2, 37, 49, 55, 2, 40, 48, 13, 0, 105, 103, 8, 2, 109, 97, 3, 2, 108, 50, 109, 136, 0, 111, 114, 109, 8, 2,
-			17, 65, 3, 2, 116, 50, 110, 34, 65, 0, 116, 114, 101, 112, 114, 101, 2, 110, 101, 3, 2, 133, 50, 47, 34, 13, 48, 34, 13, 0,
-			4, 116, 1, 17, 67, 21, 2, 25, 3, 6, 108, 50, 47, 0, 116, 1, 17, 67, 21, 2, 101, 32, 0, 115, 105, 101, 1, 17, 67, 2,
-			25, 3, 6, 108, 50, 89, 37, 0, 115, 105, 101, 115, 1, 17, 67, 3, 6, 108, 50, 89, 37, 89, 0, 105, 8, 2, 103, 3, 6, 116,
-			50, 13, 0, 8, 107, 2, 100, 104, 3, 8, 108, 50, 0, 4, 115, 105, 101, 109, 2, 32, 3, 10, 2, 108, 50, 89, 37, 65, 0, 115,
-			105, 101, 109, 2, 101, 32, 0, 115, 101, 109, 98, 108, 101, 3, 10, 2, 133, 50, 89, 133, 65, 71, 114, 0, 4, 1, 10, 2, 17, 67,
-			32, 3, 13, 50, 0, 1, 10, 2, 32, 0, 1, 10, 2, 100, 101, 17, 67, 32, 0, 1, 10, 2, 100, 101, 32, 0, 1, 17, 67, 10,
-			2, 98, 17, 65, 114, 103, 0, 1, 100, 114, 111, 111, 98, 2, 115, 0, 1, 102, 21, 2, 105, 115, 0, 1, 103, 110, 2, 100, 0, 1,
-			105, 111, 111, 2, 115, 0, 1, 107, 17, 67, 97, 118, 2, 17, 67, 0, 1, 107, 21, 2, 115, 107, 97, 112, 0, 1, 109, 2, 105, 115,
-			0, 105, 101, 114, 1, 17, 67, 3, 13, 50, 6, 37, 12, 34, 0, 121, 1, 17, 67, 21, 2, 32, 3, 13, 50, 6, 123, 0, 4, 101,
-			1, 107, 10, 2, 32, 3, 13, 50, 13, 0, 101, 1, 115, 10, 2, 32, 0, 4, 115, 1, 108, 17, 65, 17, 65, 2, 32, 3, 13, 50,
-			89, 0, 115, 1, 108, 101, 118, 2, 32, 0, 115, 1, 108, 108, 117, 118, 2, 32, 0, 115, 1, 112, 112, 111, 17, 67, 0, 115, 119, 97,
-			97, 114, 1, 21, 2, 100, 105, 103, 3, 13, 50, 89, 84, 6, 115, 34, 0, 104, 101, 105, 100, 1, 17, 67, 3, 13, 50, 107, 123, 47,
-			0, 97, 97, 114, 1, 17, 67, 3, 13, 50, 115, 34, 0, 97, 114, 101, 1, 17, 67, 2, 32, 3, 13, 50, 115, 34, 13, 0, 99, 101,
-			2, 25, 12, 3, 21, 0, 116, 106, 105, 101, 1, 107, 10, 3, 37, 68, 80, 37, 0, 116, 106, 105, 101, 1, 114, 112, 3, 108, 12, 37,
-			68, 49, 2, 37, 0, 115, 1, 108, 2, 32, 3, 108, 12, 50, 89, 0, 115, 101, 1, 108, 2, 32, 3, 108, 12, 50, 89, 13, 0, 116,
-			106, 105, 101, 2, 12, 3, 108, 37, 68, 80, 37, 0, 4, 1, 107, 115, 2, 100, 3, 108, 50, 0, 1, 112, 17, 67, 21, 2, 32, 0,
-			1, 112, 105, 101, 114, 98, 0, 1, 116, 111, 112, 2, 17, 67, 0, 110, 1, 112, 17, 67, 21, 2, 101, 0, 4, 116, 1, 110, 101, 2,
-			12, 12, 3, 108, 50, 47, 0, 116, 1, 114, 112, 2, 12, 12, 0, 116, 1, 115, 21, 2, 114, 17, 65, 0, 106, 105, 110, 3, 108, 50,
-			57, 13, 50, 0, 100, 101, 108, 2, 32, 3, 108, 50, 72, 13, 55, 0, 115, 1, 112, 17, 67, 2, 12, 3, 108, 50, 89, 0, 115, 101,
-			1, 112, 17, 67, 2, 108, 101, 32, 3, 108, 50, 89, 116, 0, 4, 1, 10, 2, 107, 32, 3, 108, 68, 0, 103, 1, 10, 2, 32, 0,
-			103, 101, 2, 108, 3, 108, 68, 13, 0, 107, 101, 108, 8, 3, 108, 68, 49, 13, 55, 0, 111, 114, 109, 8, 3, 116, 50, 6, 110, 34,
-			13, 10, 65, 0, 101, 1, 107, 115, 2, 32, 3, 116, 50, 13, 0, 101, 114, 115, 3, 116, 50, 13, 34, 89, 0, 4, 115, 1, 109, 2,
-			12, 12, 3, 134, 50, 89, 0, 115, 1, 114, 103, 0, 115, 1, 119, 0, 115, 105, 101, 1, 109, 2, 25, 3, 134, 50, 89, 2, 37, 0,
-			7, 6, 103, 101, 0, 103, 101, 101, 1, 21, 3, 8, 136, 13, 136, 116, 0, 1, 17, 67, 2, 32, 3, 81, 13, 0, 114, 1, 114, 117,
-			98, 3, 81, 13, 34, 0, 110, 114, 101, 3, 90, 6, 133, 50, 34, 13, 0, 110, 105, 101, 2, 32, 3, 90, 13, 50, 37, 12, 0, 111,
-			8, 2, 115, 3, 136, 2, 37, 2, 40, 0, 114, 8, 2, 109, 97, 3, 136, 2, 112, 34, 0, 114, 117, 2, 98, 121, 110, 3, 136, 2,
-			116, 34, 2, 111, 0, 110, 101, 2, 97, 108, 111, 3, 136, 2, 116, 50, 2, 37, 0, 101, 115, 2, 100, 114, 105, 102, 116, 105, 3, 136,
-			2, 116, 89, 0, 109, 109, 101, 114, 3, 136, 6, 108, 65, 13, 34, 0, 1, 105, 110, 2, 114, 105, 3, 136, 6, 116, 0, 119, 101, 2,
-			32, 3, 136, 6, 116, 84, 13, 0, 4, 119, 101, 110, 100, 1, 21, 2, 32, 3, 136, 6, 116, 84, 13, 50, 47, 0, 119, 101, 110, 100,
-			1, 21, 2, 115, 116, 101, 0, 119, 101, 110, 100, 101, 1, 21, 2, 32, 3, 136, 6, 116, 84, 13, 50, 72, 13, 0, 115, 101, 2, 32,
-			3, 136, 6, 116, 89, 13, 0, 4, 3, 136, 13, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 111, 115, 115, 14, 128, 132, 130, 0,
-			107, 108, 101, 100, 101, 3, 136, 13, 49, 55, 116, 72, 13, 0, 110, 101, 2, 114, 17, 65, 3, 136, 13, 50, 13, 0, 110, 97, 100, 2,
-			101, 116, 106, 105, 101, 3, 136, 13, 50, 115, 72, 0, 110, 97, 100, 101, 3, 136, 13, 50, 115, 72, 13, 0, 110, 101, 2, 114, 105, 101,
-			25, 3, 136, 13, 50, 116, 0, 108, 121, 107, 101, 110, 105, 8, 2, 115, 3, 136, 13, 55, 6, 123, 49, 13, 50, 13, 0, 109, 101, 108,
-			2, 100, 3, 136, 13, 65, 112, 55, 0, 98, 101, 100, 101, 8, 3, 136, 13, 71, 116, 72, 13, 0, 118, 101, 115, 2, 32, 3, 136, 13,
-			83, 108, 89, 0, 119, 101, 108, 2, 119, 3, 136, 13, 84, 6, 112, 55, 0, 4, 119, 101, 108, 2, 100, 3, 136, 13, 84, 112, 55, 0,
-			119, 101, 108, 2, 102, 0, 119, 101, 101, 114, 3, 136, 13, 84, 116, 34, 0, 119, 101, 110, 115, 1, 17, 67, 21, 3, 136, 13, 84, 134,
-			50, 89, 0, 115, 101, 108, 2, 32, 3, 136, 13, 89, 112, 55, 0, 115, 101, 108, 108, 101, 2, 32, 3, 136, 13, 89, 112, 55, 13, 0,
-			115, 101, 108, 115, 3, 136, 13, 89, 112, 55, 89, 0, 103, 101, 119, 101, 110, 115, 3, 136, 13, 136, 116, 84, 13, 50, 89, 0, 103, 101,
-			115, 101, 108, 3, 136, 13, 136, 116, 89, 13, 55, 0, 4, 1, 17, 65, 2, 116, 106, 105, 101, 3, 136, 37, 0, 2, 111, 103, 114, 97,
-			0, 2, 111, 108, 111, 0, 2, 111, 109, 101, 0, 110, 115, 8, 2, 17, 67, 3, 136, 108, 12, 50, 89, 0, 109, 115, 3, 136, 108, 65,
-			89, 0, 115, 112, 101, 2, 32, 3, 136, 108, 89, 48, 13, 0, 115, 112, 101, 115, 2, 32, 3, 136, 108, 89, 48, 13, 89, 0, 4, 2,
-			107, 32, 3, 136, 112, 0, 2, 107, 103, 0, 2, 107, 104, 0, 2, 107, 107, 0, 2, 107, 115, 107, 101, 101, 114, 0, 2, 107, 116, 0,
-			8, 2, 114, 17, 67, 0, 114, 102, 1, 17, 67, 3, 136, 112, 34, 83, 0, 114, 119, 101, 1, 17, 67, 2, 32, 3, 136, 112, 34, 84,
-			13, 0, 107, 119, 2, 111, 114, 100, 3, 136, 112, 49, 84, 0, 108, 100, 3, 136, 112, 55, 47, 0, 108, 100, 2, 105, 110, 17, 67, 3,
-			136, 112, 55, 47, 10, 0, 108, 100, 2, 105, 110, 103, 3, 136, 112, 55, 72, 0, 4, 108, 100, 101, 2, 25, 3, 136, 112, 55, 72, 13,
-			0, 108, 100, 105, 0, 108, 100, 106, 105, 101, 3, 136, 112, 55, 80, 37, 0, 4, 1, 107, 114, 101, 119, 2, 119, 101, 114, 3, 136, 116,
-			0, 101, 2, 12, 0, 195, 171, 114, 2, 32, 3, 136, 116, 13, 34, 0, 110, 101, 2, 32, 3, 136, 116, 50, 13, 0, 110, 105, 116, 2,
-			105, 101, 17, 67, 3, 136, 116, 50, 13, 47, 0, 110, 117, 115, 3, 136, 116, 50, 111, 89, 0, 108, 101, 1, 25, 2, 32, 3, 136, 116,
-			55, 13, 0, 108, 101, 114, 8, 3, 136, 116, 55, 13, 34, 0, 4, 119, 101, 114, 1, 103, 97, 108, 115, 3, 136, 116, 84, 13, 34, 0,
-			119, 101, 114, 1, 116, 101, 119, 0, 119, 101, 114, 2, 32, 0, 119, 101, 114, 115, 2, 32, 3, 136, 116, 84, 13, 34, 89, 0, 119, 101,
-			110, 115, 2, 103, 3, 136, 116, 84, 13, 50, 89, 0, 119, 101, 108, 3, 136, 116, 84, 13, 55, 0, 119, 105, 110, 103, 3, 136, 116, 84,
-			13, 68, 0, 105, 2, 12, 3, 136, 123, 0, 117, 2, 17, 67, 3, 136, 128, 0, 7, 6, 104, 101, 0, 2, 98, 114, 101, 3, 107, 2,
-			37, 0, 116, 101, 114, 111, 2, 21, 21, 14, 128, 132, 134, 3, 107, 2, 108, 47, 14, 34, 2, 40, 0, 107, 8, 2, 116, 97, 3, 107,
-			2, 108, 49, 0, 114, 8, 2, 21, 14, 128, 132, 131, 3, 107, 2, 112, 34, 0, 114, 97, 108, 2, 100, 105, 101, 107, 3, 107, 2, 112,
-			34, 2, 35, 55, 0, 114, 2, 101, 110, 105, 3, 107, 2, 112, 34, 19, 0, 114, 97, 108, 2, 100, 3, 107, 2, 112, 34, 35, 55, 0,
-			114, 116, 111, 103, 2, 105, 110, 3, 107, 2, 112, 34, 47, 2, 110, 136, 0, 114, 109, 97, 102, 114, 111, 2, 100, 105, 3, 107, 2, 112,
-			34, 65, 2, 35, 83, 34, 2, 40, 0, 114, 109, 101, 2, 108, 121, 110, 3, 107, 2, 112, 34, 65, 13, 0, 114, 98, 101, 114, 103, 2,
-			105, 3, 107, 2, 112, 34, 71, 2, 112, 34, 136, 0, 114, 98, 101, 114, 103, 2, 115, 97, 21, 3, 107, 2, 112, 34, 71, 112, 34, 136,
-			0, 114, 105, 110, 110, 101, 114, 3, 107, 2, 112, 34, 109, 50, 13, 34, 0, 108, 2, 100, 105, 110, 3, 107, 2, 112, 55, 0, 108, 105,
-			2, 107, 111, 112, 3, 107, 2, 112, 55, 2, 37, 0, 108, 100, 2, 104, 97, 102, 116, 3, 107, 2, 112, 55, 47, 0, 2, 114, 111, 195,
-			175, 101, 3, 107, 2, 116, 0, 114, 111, 2, 195, 175, 101, 110, 3, 107, 2, 116, 34, 2, 40, 58, 0, 101, 116, 2, 104, 111, 111, 102,
-			100, 105, 3, 107, 2, 116, 47, 0, 4, 114, 8, 2, 98, 101, 17, 67, 14, 128, 132, 131, 3, 107, 6, 112, 34, 0, 114, 8, 2, 118,
-			101, 114, 14, 128, 132, 131, 0, 114, 100, 101, 114, 3, 107, 6, 112, 34, 72, 13, 34, 0, 108, 100, 101, 8, 3, 107, 6, 112, 55, 72,
-			13, 0, 114, 8, 2, 119, 97, 97, 3, 107, 7, 112, 34, 0, 4, 114, 2, 101, 107, 115, 97, 109, 17, 65, 3, 107, 7, 112, 34, 10,
-			0, 114, 8, 2, 117, 105, 116, 0, 1, 21, 2, 110, 25, 3, 107, 108, 0, 120, 2, 17, 67, 3, 107, 108, 49, 89, 0, 107, 115, 101,
-			2, 17, 67, 3, 107, 108, 49, 89, 13, 0, 109, 2, 17, 67, 3, 107, 108, 65, 0, 4, 2, 103, 3, 107, 112, 0, 2, 114, 114, 105,
-			101, 0, 4, 114, 2, 98, 101, 114, 103, 3, 107, 112, 34, 0, 114, 2, 107, 111, 109, 115, 0, 114, 8, 2, 109, 97, 110, 25, 0, 114,
-			8, 114, 111, 111, 2, 17, 67, 0, 114, 2, 101, 118, 97, 3, 107, 112, 34, 19, 0, 114, 116, 122, 111, 103, 3, 107, 112, 34, 47, 89,
-			110, 136, 0, 114, 116, 111, 103, 3, 107, 112, 34, 47, 110, 136, 0, 114, 102, 115, 3, 107, 112, 34, 83, 89, 0, 114, 115, 101, 110, 3,
-			107, 112, 34, 89, 13, 50, 0, 108, 3, 107, 112, 55, 0, 2, 108, 105, 3, 107, 116, 0, 114, 2, 101, 25, 3, 107, 116, 34, 0, 4,
-			114, 101, 2, 114, 101, 103, 3, 107, 116, 34, 13, 0, 114, 101, 2, 119, 0, 114, 101, 8, 2, 108, 0, 101, 114, 101, 110, 2, 103, 114,
-			97, 99, 3, 107, 116, 34, 13, 50, 0, 101, 114, 115, 101, 114, 3, 107, 116, 34, 89, 13, 34, 0, 108, 101, 8, 2, 25, 3, 107, 116,
-			55, 13, 0, 109, 101, 108, 3, 107, 116, 65, 13, 55, 0, 100, 101, 1, 10, 2, 32, 3, 107, 116, 72, 13, 0, 105, 100, 2, 32, 14,
-			128, 128, 132, 3, 107, 123, 47, 0, 105, 100, 101, 2, 17, 67, 3, 107, 123, 72, 13, 0, 7, 6, 105, 110, 0, 4, 105, 115, 105, 2,
-			17, 65, 3, 2, 37, 50, 2, 37, 91, 2, 37, 0, 105, 115, 105, 2, 101, 17, 65, 0, 2, 102, 111, 114, 109, 101, 14, 128, 132, 130,
-			3, 6, 109, 50, 0, 8, 2, 97, 17, 67, 101, 109, 14, 128, 132, 130, 3, 6, 109, 50, 10, 0, 103, 8, 2, 21, 3, 6, 109, 50,
-			136, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 109, 50, 136, 13, 0, 4, 103, 101, 2, 119, 105, 110, 103, 3, 6, 109, 50,
-			136, 116, 0, 103, 101, 101, 8, 2, 12, 0, 8, 2, 115, 116, 117, 100, 101, 14, 128, 132, 130, 3, 7, 109, 50, 0, 8, 2, 101, 110,
-			116, 3, 7, 109, 50, 10, 0, 4, 1, 17, 67, 2, 97, 115, 101, 109, 3, 10, 13, 50, 0, 1, 102, 108, 101, 115, 2, 17, 67, 21,
-			0, 103, 97, 110, 103, 3, 10, 109, 50, 136, 35, 68, 0, 4, 1, 21, 2, 103, 114, 121, 112, 3, 13, 50, 0, 2, 100, 105, 101, 110,
-			0, 2, 100, 111, 101, 110, 97, 0, 2, 101, 101, 110, 0, 2, 102, 101, 107, 0, 2, 104, 97, 108, 105, 103, 0, 2, 104, 101, 101, 109,
-			115, 0, 2, 104, 101, 103, 116, 101, 110, 0, 2, 107, 101, 110, 110, 0, 2, 115, 107, 105, 107, 0, 2, 115, 107, 114, 105, 112, 0, 2,
-			115, 112, 101, 107, 0, 2, 115, 116, 97, 110, 0, 2, 116, 105, 101, 109, 0, 2, 119, 101, 114, 107, 105, 110, 103, 17, 67, 17, 67, 0,
-			8, 2, 101, 114, 17, 67, 0, 105, 115, 105, 101, 3, 13, 50, 6, 37, 89, 2, 37, 0, 116, 117, 195, 175, 3, 13, 50, 47, 2, 40,
-			12, 37, 0, 116, 101, 2, 103, 114, 101, 3, 13, 50, 47, 13, 0, 4, 116, 101, 114, 2, 110, 97, 115, 105, 111, 3, 13, 50, 47, 13,
-			34, 0, 116, 101, 114, 2, 110, 101, 114, 105, 110, 0, 116, 101, 114, 2, 110, 105, 25, 0, 116, 105, 109, 105, 2, 100, 17, 65, 3, 13,
-			50, 47, 13, 65, 13, 0, 116, 114, 105, 103, 2, 101, 21, 3, 13, 50, 47, 34, 2, 37, 136, 0, 116, 114, 111, 8, 2, 17, 67, 3,
-			13, 50, 47, 34, 2, 40, 0, 116, 114, 105, 103, 101, 3, 13, 50, 47, 34, 37, 136, 13, 0, 116, 101, 103, 2, 114, 105, 3, 13, 50,
-			47, 112, 136, 0, 100, 105, 2, 97, 21, 3, 13, 50, 72, 2, 37, 0, 100, 111, 110, 101, 2, 115, 105, 3, 13, 50, 72, 2, 40, 50,
-			37, 12, 0, 100, 101, 114, 8, 2, 17, 67, 3, 13, 50, 72, 13, 34, 0, 4, 100, 105, 118, 105, 3, 13, 50, 72, 13, 84, 13, 0,
-			100, 105, 119, 105, 0, 100, 105, 115, 2, 107, 114, 3, 13, 50, 72, 13, 89, 0, 102, 97, 110, 2, 116, 105, 3, 13, 50, 83, 2, 35,
-			50, 0, 102, 111, 114, 2, 109, 97, 3, 13, 50, 83, 2, 110, 34, 0, 118, 97, 108, 105, 100, 101, 3, 13, 50, 84, 2, 35, 55, 37,
-			72, 13, 0, 118, 101, 115, 116, 2, 101, 101, 114, 3, 13, 50, 84, 2, 108, 89, 47, 0, 118, 101, 115, 116, 101, 2, 114, 21, 3, 13,
-			50, 84, 2, 108, 89, 47, 116, 0, 115, 105, 2, 100, 101, 110, 116, 3, 13, 50, 89, 13, 0, 115, 101, 107, 2, 117, 3, 13, 50, 89,
-			13, 49, 0, 115, 116, 105, 2, 116, 117, 3, 13, 50, 89, 47, 13, 0, 115, 116, 114, 117, 107, 116, 3, 13, 50, 89, 47, 34, 2, 111,
-			49, 47, 0, 115, 116, 114, 117, 107, 115, 3, 13, 50, 89, 47, 34, 6, 111, 49, 89, 0, 110, 101, 109, 101, 110, 3, 13, 50, 116, 65,
-			13, 50, 0, 110, 117, 101, 110, 100, 111, 3, 13, 50, 118, 12, 6, 108, 50, 72, 120, 0, 103, 114, 121, 112, 101, 110, 3, 13, 50, 136,
-			34, 123, 48, 13, 50, 0, 103, 1, 10, 2, 32, 3, 13, 68, 0, 103, 101, 1, 17, 67, 21, 2, 32, 3, 13, 68, 13, 0, 4, 100,
-			106, 105, 101, 3, 109, 37, 68, 80, 37, 0, 116, 106, 105, 101, 0, 8, 2, 97, 21, 14, 128, 132, 130, 3, 109, 50, 0, 8, 2, 111,
-			101, 3, 109, 50, 10, 0, 98, 101, 8, 2, 108, 17, 67, 3, 109, 50, 71, 2, 112, 0, 100, 119, 105, 110, 103, 3, 109, 50, 72, 58,
-			13, 68, 0, 100, 101, 108, 8, 2, 17, 67, 3, 109, 50, 72, 112, 55, 0, 115, 101, 107, 2, 17, 65, 3, 109, 50, 89, 108, 49, 10,
-			0, 103, 2, 115, 3, 109, 68, 0, 7, 6, 107, 97, 0, 116, 97, 8, 3, 4, 49, 35, 47, 35, 0, 116, 101, 1, 111, 118, 100, 97,
-			2, 17, 67, 3, 6, 49, 115, 47, 13, 0, 4, 1, 21, 2, 110, 111, 110, 3, 49, 2, 35, 0, 2, 106, 97, 107, 0, 2, 109, 97,
-			115, 0, 2, 110, 97, 108, 101, 0, 2, 112, 97, 17, 67, 101, 17, 67, 0, 2, 114, 111, 115, 0, 2, 115, 97, 114, 109, 0, 2, 115,
-			116, 114, 111, 108, 0, 2, 115, 116, 121, 0, 2, 116, 97, 114, 115, 105, 0, 8, 2, 100, 21, 0, 8, 2, 108, 17, 65, 110, 17, 67,
-			0, 8, 2, 114, 105, 101, 110, 0, 8, 2, 115, 116, 97, 0, 8, 2, 115, 116, 101, 21, 0, 8, 2, 116, 111, 0, 8, 2, 116, 114,
-			0, 4, 114, 2, 100, 111, 101, 115, 3, 49, 2, 35, 34, 0, 114, 2, 110, 117, 102, 102, 101, 108, 0, 114, 2, 116, 111, 110, 0, 114,
-			2, 119, 97, 116, 115, 0, 114, 2, 119, 101, 105, 0, 114, 2, 119, 121, 0, 114, 8, 2, 98, 0, 114, 8, 2, 118, 101, 0, 4, 114,
-			97, 2, 98, 121, 110, 3, 49, 2, 35, 34, 2, 35, 0, 114, 97, 2, 107, 111, 101, 108, 0, 114, 97, 109, 101, 108, 3, 49, 2, 35,
-			34, 2, 35, 65, 112, 55, 0, 114, 105, 107, 97, 2, 116, 117, 3, 49, 2, 35, 34, 2, 37, 49, 2, 35, 0, 114, 97, 2, 118, 97,
-			3, 49, 2, 35, 34, 13, 0, 114, 116, 101, 116, 115, 3, 49, 2, 35, 34, 47, 108, 47, 89, 0, 114, 110, 97, 2, 118, 97, 108, 3,
-			49, 2, 35, 34, 50, 2, 35, 0, 114, 109, 111, 115, 121, 110, 3, 49, 2, 35, 34, 65, 2, 40, 89, 123, 50, 0, 114, 109, 101, 2,
-			110, 97, 97, 100, 106, 3, 49, 2, 35, 34, 65, 13, 0, 114, 97, 116, 101, 3, 49, 2, 35, 34, 115, 47, 2, 37, 0, 4, 116, 101,
-			2, 100, 114, 3, 49, 2, 35, 47, 13, 0, 116, 101, 2, 103, 17, 65, 0, 116, 97, 108, 111, 2, 103, 17, 65, 3, 49, 2, 35, 47,
-			35, 55, 2, 40, 0, 116, 107, 105, 2, 115, 17, 65, 3, 49, 2, 35, 47, 49, 13, 0, 112, 2, 116, 101, 105, 110, 3, 49, 2, 35,
-			48, 0, 112, 97, 2, 115, 105, 116, 101, 105, 116, 3, 49, 2, 35, 48, 2, 35, 0, 112, 105, 2, 116, 97, 3, 49, 2, 35, 48, 2,
-			37, 0, 112, 101, 2, 108, 97, 21, 3, 49, 2, 35, 48, 13, 0, 112, 101, 114, 2, 106, 111, 108, 3, 49, 2, 35, 48, 13, 34, 0,
-			112, 115, 117, 108, 101, 3, 49, 2, 35, 48, 89, 118, 55, 13, 0, 112, 111, 8, 2, 17, 67, 3, 49, 2, 35, 48, 110, 0, 112, 101,
-			2, 108, 3, 49, 2, 35, 48, 112, 0, 4, 110, 2, 116, 105, 101, 110, 3, 49, 2, 35, 50, 0, 110, 8, 2, 116, 111, 21, 0, 4,
-			110, 100, 105, 2, 100, 17, 65, 3, 49, 2, 35, 50, 2, 37, 0, 110, 110, 105, 2, 98, 97, 0, 110, 115, 101, 2, 108, 108, 101, 3,
-			49, 2, 35, 50, 89, 13, 0, 4, 110, 111, 2, 32, 3, 49, 2, 35, 50, 117, 0, 110, 111, 8, 2, 118, 97, 97, 114, 0, 4, 108,
-			2, 98, 97, 115, 3, 49, 2, 35, 55, 0, 108, 2, 107, 111, 101, 110, 0, 108, 105, 2, 98, 3, 49, 2, 35, 55, 37, 0, 108, 101,
-			110, 100, 101, 114, 3, 49, 2, 35, 55, 108, 50, 72, 13, 34, 0, 109, 111, 101, 2, 102, 108, 3, 49, 2, 35, 65, 2, 40, 0, 109,
-			111, 101, 102, 108, 97, 103, 101, 3, 49, 2, 35, 65, 2, 40, 83, 55, 115, 90, 0, 109, 101, 114, 97, 100, 101, 3, 49, 2, 35, 65,
-			13, 34, 115, 72, 13, 0, 98, 97, 114, 101, 2, 116, 3, 49, 2, 35, 71, 2, 35, 34, 108, 0, 98, 105, 110, 101, 2, 116, 3, 49,
-			2, 35, 71, 2, 37, 50, 108, 0, 102, 101, 2, 195, 175, 3, 49, 2, 35, 83, 2, 37, 0, 102, 101, 2, 116, 101, 3, 49, 2, 35,
-			83, 13, 0, 115, 116, 97, 2, 110, 106, 101, 116, 3, 49, 2, 35, 89, 47, 2, 35, 0, 115, 107, 101, 2, 110, 97, 100, 101, 3, 49,
-			2, 35, 89, 49, 13, 0, 115, 115, 101, 2, 116, 3, 49, 2, 35, 89, 108, 0, 115, 101, 114, 110, 101, 3, 49, 2, 35, 89, 112, 34,
-			50, 13, 0, 116, 106, 105, 101, 2, 112, 105, 101, 3, 49, 2, 121, 80, 2, 37, 0, 110, 102, 101, 114, 2, 102, 111, 101, 108, 3, 49,
-			2, 133, 50, 83, 13, 34, 0, 116, 101, 103, 111, 114, 105, 101, 115, 3, 49, 4, 35, 47, 13, 136, 6, 117, 34, 37, 89, 0, 116, 101,
-			103, 111, 114, 105, 101, 3, 49, 4, 35, 47, 13, 136, 40, 34, 6, 37, 0, 97, 1, 17, 65, 21, 2, 116, 3, 49, 6, 115, 0, 116,
-			101, 1, 21, 2, 32, 3, 49, 6, 115, 47, 13, 0, 110, 101, 114, 1, 17, 65, 21, 2, 32, 3, 49, 6, 115, 50, 13, 34, 0, 4,
-			114, 2, 98, 101, 3, 49, 35, 34, 0, 114, 2, 118, 101, 110, 0, 114, 2, 118, 101, 114, 0, 116, 101, 103, 111, 114, 2, 105, 115, 17,
-			65, 3, 49, 35, 47, 13, 136, 40, 34, 0, 110, 116, 2, 111, 110, 100, 101, 114, 3, 49, 35, 50, 47, 10, 0, 110, 115, 101, 2, 108,
-			25, 3, 49, 35, 50, 89, 13, 0, 108, 97, 104, 97, 114, 105, 3, 49, 35, 55, 35, 107, 6, 115, 34, 37, 0, 4, 108, 109, 101, 101,
-			114, 3, 49, 35, 55, 65, 6, 116, 34, 0, 108, 109, 101, 114, 2, 17, 65, 0, 108, 119, 101, 114, 3, 49, 35, 55, 84, 13, 34, 10,
-			0, 109, 101, 114, 2, 97, 116, 106, 105, 101, 3, 49, 35, 65, 13, 34, 0, 109, 101, 114, 97, 97, 3, 49, 35, 65, 13, 34, 6, 115,
-			0, 109, 101, 114, 97, 3, 49, 35, 65, 13, 34, 35, 0, 98, 101, 108, 106, 111, 117, 3, 49, 35, 71, 13, 55, 57, 6, 120, 0, 100,
-			2, 109, 105, 117, 109, 3, 49, 35, 72, 0, 115, 116, 101, 114, 2, 111, 108, 105, 101, 3, 49, 35, 89, 47, 13, 34, 10, 0, 2, 100,
-			101, 114, 3, 49, 115, 0, 116, 101, 108, 1, 25, 3, 49, 115, 47, 13, 55, 0, 107, 101, 2, 17, 67, 3, 49, 115, 49, 13, 0, 4,
-			109, 101, 114, 3, 49, 115, 65, 13, 34, 0, 109, 101, 114, 2, 17, 67, 0, 98, 101, 108, 3, 49, 115, 71, 13, 55, 0, 110, 102, 101,
-			114, 3, 49, 133, 50, 83, 13, 34, 10, 0, 7, 6, 107, 111, 0, 4, 2, 107, 101, 116, 25, 3, 49, 2, 40, 0, 2, 107, 111, 110,
-			0, 2, 108, 111, 109, 0, 2, 108, 111, 110, 105, 0, 2, 109, 101, 100, 105, 0, 2, 109, 101, 116, 101, 0, 2, 114, 97, 0, 2, 114,
-			105, 110, 116, 0, 2, 114, 114, 117, 112, 0, 2, 195, 182, 0, 8, 2, 109, 105, 101, 107, 0, 8, 2, 109, 109, 111, 0, 8, 2, 112,
-			105, 101, 21, 0, 101, 2, 106, 97, 119, 101, 108, 0, 101, 2, 112, 108, 101, 116, 0, 101, 2, 112, 111, 110, 0, 101, 2, 114, 17, 65,
-			0, 114, 114, 101, 107, 3, 49, 2, 40, 34, 108, 49, 0, 114, 101, 110, 2, 116, 3, 49, 2, 40, 34, 108, 50, 0, 117, 107, 97, 2,
-			115, 105, 195, 171, 3, 49, 2, 40, 49, 115, 0, 110, 110, 101, 107, 3, 49, 2, 40, 50, 108, 49, 0, 101, 108, 2, 98, 108, 111, 101,
-			3, 49, 2, 40, 55, 0, 108, 108, 101, 2, 107, 116, 17, 65, 3, 49, 2, 40, 55, 2, 108, 0, 108, 108, 101, 2, 107, 116, 101, 25,
-			3, 49, 2, 40, 55, 108, 0, 108, 108, 101, 107, 2, 115, 3, 49, 2, 40, 55, 108, 49, 0, 108, 111, 2, 115, 25, 3, 49, 2, 40,
-			55, 110, 0, 108, 111, 110, 110, 101, 3, 49, 2, 40, 55, 110, 50, 13, 0, 108, 108, 101, 103, 97, 3, 49, 2, 40, 55, 116, 136, 2,
-			35, 0, 109, 101, 100, 105, 2, 97, 110, 116, 3, 49, 2, 40, 65, 2, 37, 72, 2, 37, 0, 109, 109, 97, 110, 100, 111, 3, 49, 2,
-			40, 65, 35, 50, 72, 40, 0, 109, 109, 105, 115, 115, 105, 101, 3, 49, 2, 40, 65, 37, 89, 2, 37, 0, 109, 97, 116, 105, 2, 25,
-			3, 49, 2, 40, 65, 115, 47, 2, 37, 0, 101, 118, 101, 114, 2, 116, 3, 49, 2, 40, 83, 112, 34, 0, 4, 114, 2, 115, 101, 116,
-			3, 49, 2, 110, 34, 0, 114, 8, 2, 100, 17, 65, 0, 114, 114, 101, 107, 116, 105, 101, 119, 101, 3, 49, 2, 110, 34, 2, 108, 49,
-			47, 37, 84, 13, 0, 114, 114, 105, 103, 2, 101, 3, 49, 2, 110, 34, 13, 136, 0, 4, 114, 116, 2, 115, 105, 103, 116, 105, 103, 3,
-			49, 2, 110, 34, 47, 0, 114, 116, 2, 115, 116, 111, 110, 100, 0, 114, 112, 111, 2, 114, 97, 97, 108, 3, 49, 2, 110, 34, 48, 13,
-			0, 112, 117, 2, 108, 17, 65, 3, 49, 2, 110, 48, 2, 118, 0, 107, 107, 101, 8, 2, 17, 67, 3, 49, 2, 110, 49, 13, 0, 110,
-			8, 2, 17, 67, 21, 14, 128, 132, 131, 3, 49, 2, 110, 50, 0, 110, 116, 114, 97, 2, 100, 105, 107, 115, 3, 49, 2, 110, 50, 47,
-			34, 2, 35, 0, 110, 116, 114, 97, 115, 101, 112, 3, 49, 2, 110, 50, 47, 34, 2, 35, 89, 108, 48, 0, 110, 116, 114, 111, 118, 101,
-			114, 2, 115, 3, 49, 2, 110, 50, 47, 34, 2, 40, 84, 112, 34, 0, 110, 116, 114, 97, 112, 2, 115, 105, 101, 3, 49, 2, 110, 50,
-			47, 34, 35, 48, 0, 110, 116, 114, 97, 107, 8, 3, 49, 2, 110, 50, 47, 34, 35, 49, 0, 110, 116, 114, 97, 115, 8, 3, 49, 2,
-			110, 50, 47, 34, 35, 89, 0, 110, 116, 97, 107, 2, 17, 65, 3, 49, 2, 110, 50, 47, 35, 49, 10, 0, 110, 100, 101, 110, 2, 115,
-			101, 3, 49, 2, 110, 50, 72, 2, 108, 50, 0, 110, 102, 101, 114, 2, 101, 3, 49, 2, 110, 50, 83, 13, 34, 0, 110, 102, 101, 114,
-			101, 110, 3, 49, 2, 110, 50, 83, 13, 34, 108, 50, 0, 4, 110, 115, 117, 108, 2, 17, 65, 3, 49, 2, 110, 50, 89, 2, 111, 55,
-			0, 110, 115, 117, 108, 2, 116, 97, 110, 116, 0, 110, 115, 101, 110, 2, 116, 114, 105, 101, 3, 49, 2, 110, 50, 89, 7, 108, 50, 0,
-			110, 115, 101, 2, 107, 119, 101, 110, 3, 49, 2, 110, 50, 89, 13, 0, 110, 115, 101, 114, 116, 105, 110, 97, 3, 49, 2, 110, 50, 89,
-			13, 34, 47, 37, 50, 2, 35, 0, 110, 115, 101, 114, 118, 3, 49, 2, 110, 50, 89, 13, 34, 84, 0, 110, 115, 101, 110, 2, 116, 114,
-			3, 49, 2, 110, 50, 89, 13, 50, 0, 110, 115, 105, 100, 101, 2, 114, 17, 65, 3, 49, 2, 110, 50, 89, 13, 72, 13, 0, 110, 115,
-			105, 115, 116, 3, 49, 2, 110, 50, 89, 13, 89, 47, 0, 110, 115, 116, 105, 2, 116, 117, 115, 105, 3, 49, 2, 110, 50, 89, 47, 13,
-			0, 110, 115, 116, 97, 98, 101, 108, 3, 49, 2, 110, 50, 89, 47, 115, 71, 13, 55, 0, 110, 115, 101, 112, 2, 17, 65, 3, 49, 2,
-			110, 50, 89, 108, 48, 10, 0, 4, 108, 2, 106, 97, 110, 3, 49, 2, 110, 55, 0, 108, 2, 119, 121, 110, 0, 4, 109, 2, 112, 108,
-			17, 65, 3, 49, 2, 110, 65, 0, 109, 2, 112, 111, 115, 105, 115, 105, 101, 0, 109, 109, 97, 110, 2, 100, 17, 65, 3, 49, 2, 110,
-			65, 2, 35, 50, 0, 109, 109, 101, 114, 2, 115, 105, 3, 49, 2, 110, 65, 2, 112, 34, 0, 109, 109, 117, 2, 110, 97, 3, 49, 2,
-			110, 65, 2, 118, 0, 109, 105, 2, 116, 101, 101, 3, 49, 2, 110, 65, 13, 0, 109, 109, 101, 110, 2, 116, 97, 3, 49, 2, 110, 65,
-			13, 50, 0, 109, 109, 105, 115, 115, 97, 114, 105, 2, 97, 3, 49, 2, 110, 65, 13, 89, 2, 35, 34, 2, 37, 0, 109, 112, 97, 110,
-			2, 106, 105, 101, 3, 49, 2, 110, 65, 48, 2, 35, 50, 0, 109, 112, 114, 111, 2, 109, 105, 101, 3, 49, 2, 110, 65, 48, 34, 2,
-			40, 0, 109, 107, 111, 109, 109, 101, 114, 3, 49, 2, 110, 65, 49, 110, 65, 13, 34, 0, 109, 98, 101, 114, 115, 3, 49, 2, 110, 65,
-			71, 113, 34, 89, 0, 109, 98, 117, 105, 115, 3, 49, 2, 110, 65, 71, 127, 89, 0, 110, 103, 2, 111, 116, 111, 109, 105, 101, 3, 49,
-			2, 110, 68, 81, 0, 4, 115, 2, 109, 101, 116, 3, 49, 2, 110, 89, 0, 115, 2, 116, 117, 0, 115, 109, 111, 2, 112, 111, 108, 105,
-			3, 49, 2, 110, 89, 65, 2, 40, 0, 115, 109, 101, 2, 116, 105, 101, 107, 3, 49, 2, 110, 89, 65, 13, 0, 107, 97, 2, 195, 175,
-			3, 49, 2, 117, 49, 2, 35, 0, 110, 105, 110, 103, 2, 105, 110, 3, 49, 2, 117, 50, 13, 68, 0, 100, 101, 2, 114, 105, 110, 103,
-			3, 49, 2, 117, 72, 116, 0, 117, 2, 115, 97, 21, 3, 49, 2, 120, 0, 108, 111, 2, 115, 115, 97, 3, 49, 4, 110, 55, 40, 0,
-			110, 103, 111, 2, 25, 3, 49, 4, 110, 68, 81, 40, 0, 110, 8, 2, 100, 105, 103, 3, 49, 6, 110, 50, 0, 110, 116, 114, 97, 8,
-			2, 25, 14, 128, 132, 134, 3, 49, 6, 110, 50, 47, 34, 35, 0, 108, 108, 101, 103, 101, 115, 2, 32, 3, 49, 6, 110, 55, 37, 75,
-			13, 89, 0, 101, 2, 114, 101, 110, 100, 3, 49, 40, 0, 101, 195, 171, 108, 3, 49, 40, 12, 55, 0, 112, 2, 111, 3, 49, 110, 48,
-			19, 0, 110, 2, 115, 117, 108, 3, 49, 110, 50, 0, 110, 110, 101, 107, 116, 101, 101, 114, 3, 49, 110, 50, 108, 49, 47, 6, 116, 34,
-			0, 108, 111, 110, 101, 108, 3, 49, 110, 55, 13, 50, 6, 112, 55, 0, 108, 108, 101, 103, 101, 3, 49, 110, 55, 37, 75, 0, 110, 107,
-			101, 108, 3, 49, 110, 68, 49, 13, 55, 0, 110, 107, 97, 8, 2, 25, 3, 49, 110, 68, 49, 35, 0, 115, 2, 116, 101, 114, 109, 3,
-			49, 110, 89, 0, 115, 116, 101, 3, 49, 110, 89, 47, 13, 0, 98, 114, 97, 3, 49, 117, 71, 34, 35, 0, 7, 6, 109, 97, 0, 110,
-			117, 2, 115, 107, 3, 4, 65, 35, 50, 118, 0, 4, 2, 103, 105, 115, 116, 101, 114, 3, 65, 2, 35, 0, 2, 103, 114, 105, 101, 116,
-			0, 2, 104, 17, 65, 0, 2, 107, 97, 115, 115, 97, 114, 0, 2, 107, 105, 101, 116, 105, 101, 0, 2, 107, 114, 105, 101, 108, 0, 2,
-			116, 101, 115, 105, 115, 0, 2, 116, 114, 0, 8, 2, 100, 0, 8, 2, 114, 17, 65, 0, 2, 114, 105, 116, 122, 3, 65, 2, 35, 6,
-			0, 114, 2, 115, 106, 101, 3, 65, 2, 35, 34, 0, 114, 105, 111, 2, 110, 101, 116, 3, 65, 2, 35, 34, 2, 37, 2, 40, 0, 114,
-			105, 101, 1, 21, 2, 32, 3, 65, 2, 35, 34, 6, 37, 0, 114, 105, 2, 116, 105, 101, 109, 3, 65, 2, 35, 34, 13, 0, 114, 105,
-			110, 101, 2, 25, 3, 65, 2, 35, 34, 37, 50, 13, 0, 114, 109, 111, 2, 115, 101, 116, 3, 65, 2, 35, 34, 65, 2, 40, 0, 114,
-			109, 101, 108, 97, 100, 101, 3, 65, 2, 35, 34, 65, 13, 55, 115, 72, 13, 0, 114, 103, 97, 2, 114, 105, 3, 65, 2, 35, 34, 136,
-			2, 35, 0, 116, 101, 114, 105, 2, 17, 65, 21, 3, 65, 2, 35, 47, 2, 116, 34, 2, 37, 0, 116, 101, 2, 109, 97, 116, 105, 3,
-			65, 2, 35, 47, 13, 0, 116, 101, 114, 105, 101, 2, 12, 3, 65, 2, 35, 47, 116, 34, 2, 37, 0, 107, 97, 2, 112, 97, 97, 110,
-			3, 65, 2, 35, 49, 2, 35, 0, 99, 97, 100, 97, 109, 105, 97, 3, 65, 2, 35, 49, 2, 35, 72, 115, 65, 2, 37, 38, 2, 35,
-			0, 99, 104, 105, 97, 118, 101, 3, 65, 2, 35, 49, 2, 37, 2, 35, 84, 108, 0, 107, 115, 105, 2, 109, 97, 21, 3, 65, 2, 35,
-			49, 89, 2, 37, 0, 107, 97, 98, 101, 114, 3, 65, 2, 35, 49, 115, 71, 13, 34, 0, 4, 110, 2, 100, 97, 3, 65, 2, 35, 50,
-			0, 110, 2, 104, 97, 102, 116, 0, 110, 2, 109, 111, 101, 0, 110, 2, 115, 106, 101, 116, 0, 110, 105, 2, 107, 117, 3, 65, 2, 35,
-			50, 2, 37, 0, 110, 105, 112, 117, 3, 65, 2, 35, 50, 2, 37, 48, 2, 118, 0, 4, 110, 101, 2, 119, 97, 108, 101, 3, 65, 2,
-			35, 50, 13, 0, 110, 110, 101, 2, 107, 121, 110, 0, 110, 106, 105, 2, 102, 105, 101, 3, 65, 2, 35, 50, 57, 13, 0, 110, 100, 111,
-			2, 108, 105, 101, 110, 3, 65, 2, 35, 50, 72, 2, 40, 0, 110, 105, 108, 108, 97, 2, 17, 67, 3, 65, 2, 35, 50, 109, 55, 2,
-			35, 0, 110, 101, 2, 108, 3, 65, 2, 35, 50, 112, 0, 108, 2, 103, 97, 115, 3, 65, 2, 35, 55, 0, 108, 97, 2, 103, 105, 101,
-			116, 3, 65, 2, 35, 55, 2, 35, 0, 108, 116, 101, 8, 2, 115, 17, 65, 3, 65, 2, 35, 55, 47, 116, 0, 109, 2, 112, 111, 101,
-			114, 3, 65, 2, 35, 65, 0, 115, 111, 2, 99, 104, 105, 115, 3, 65, 2, 35, 89, 2, 40, 0, 99, 101, 100, 111, 2, 110, 17, 65,
-			3, 65, 2, 35, 89, 13, 72, 117, 0, 115, 116, 101, 107, 116, 111, 2, 109, 3, 65, 2, 35, 89, 47, 108, 49, 47, 2, 40, 0, 115,
-			107, 101, 114, 2, 97, 100, 101, 3, 65, 2, 35, 89, 49, 13, 34, 0, 115, 107, 97, 114, 97, 3, 65, 2, 35, 89, 49, 115, 34, 2,
-			35, 0, 115, 106, 105, 2, 110, 97, 21, 3, 65, 2, 35, 91, 2, 37, 0, 103, 2, 110, 17, 65, 21, 3, 65, 2, 35, 136, 0, 103,
-			97, 2, 115, 121, 110, 3, 65, 2, 35, 136, 2, 35, 0, 103, 105, 115, 2, 116, 114, 97, 3, 65, 2, 35, 136, 2, 37, 89, 0, 103,
-			97, 2, 108, 105, 101, 3, 65, 2, 35, 136, 35, 0, 110, 105, 97, 2, 107, 3, 65, 2, 115, 50, 2, 37, 38, 2, 35, 0, 106, 101,
-			115, 116, 117, 3, 65, 2, 115, 57, 13, 89, 47, 2, 118, 0, 106, 101, 115, 116, 101, 105, 116, 108, 105, 3, 65, 2, 115, 57, 13, 89,
-			47, 123, 47, 55, 13, 0, 100, 101, 2, 108, 105, 101, 3, 65, 2, 115, 72, 13, 0, 121, 111, 110, 110, 97, 105, 115, 101, 3, 65, 2,
-			123, 57, 2, 40, 50, 123, 12, 88, 0, 116, 105, 103, 1, 21, 3, 65, 6, 115, 47, 13, 136, 0, 116, 105, 101, 115, 3, 65, 6, 115,
-			47, 37, 89, 0, 110, 105, 101, 114, 3, 65, 13, 50, 37, 12, 34, 0, 115, 106, 105, 101, 110, 3, 65, 13, 91, 37, 50, 0, 114, 97,
-			116, 2, 111, 110, 3, 65, 35, 34, 2, 35, 47, 0, 114, 97, 116, 104, 111, 110, 3, 65, 35, 34, 2, 35, 47, 2, 110, 50, 10, 0,
-			114, 109, 101, 114, 3, 65, 35, 34, 65, 13, 34, 10, 0, 107, 105, 101, 1, 21, 2, 115, 105, 101, 3, 65, 35, 49, 6, 37, 0, 107,
-			114, 97, 110, 107, 97, 1, 21, 3, 65, 35, 49, 34, 6, 35, 50, 49, 35, 0, 110, 105, 102, 101, 115, 3, 65, 35, 50, 37, 83, 108,
-			89, 0, 108, 1, 10, 2, 32, 14, 128, 128, 131, 3, 65, 35, 55, 0, 108, 97, 114, 105, 97, 3, 65, 35, 55, 6, 115, 34, 37, 35,
-			0, 108, 108, 101, 115, 2, 32, 3, 65, 35, 55, 13, 89, 0, 108, 118, 97, 2, 25, 3, 65, 35, 55, 83, 2, 35, 0, 110, 103, 111,
-			8, 3, 65, 35, 68, 81, 2, 40, 0, 115, 107, 101, 114, 3, 65, 35, 89, 49, 13, 34, 0, 2, 116, 114, 105, 107, 25, 3, 65, 115,
-			0, 110, 105, 2, 97, 107, 25, 3, 65, 115, 50, 2, 37, 0, 2, 98, 105, 101, 107, 3, 89, 0, 7, 6, 109, 101, 0, 116, 101, 2,
-			111, 3, 65, 2, 37, 47, 2, 37, 0, 116, 101, 111, 2, 114, 105, 101, 116, 3, 65, 2, 37, 47, 2, 37, 2, 40, 0, 116, 97, 8,
-			2, 17, 67, 3, 65, 2, 108, 47, 2, 35, 0, 110, 2, 116, 97, 115, 105, 101, 3, 65, 2, 108, 50, 0, 110, 111, 112, 111, 117, 2,
-			115, 97, 3, 65, 2, 108, 50, 2, 40, 48, 2, 120, 0, 110, 117, 101, 2, 116, 3, 65, 2, 108, 50, 2, 118, 12, 38, 108, 0, 110,
-			116, 97, 108, 105, 2, 116, 101, 105, 116, 3, 65, 2, 108, 50, 47, 2, 35, 55, 2, 37, 0, 110, 115, 116, 114, 117, 3, 65, 2, 108,
-			50, 89, 47, 34, 2, 118, 0, 4, 108, 97, 110, 99, 104, 3, 65, 2, 108, 55, 2, 35, 68, 49, 0, 108, 97, 110, 107, 0, 4, 108,
-			97, 110, 99, 104, 111, 108, 105, 101, 2, 32, 24, 3, 65, 2, 108, 55, 2, 35, 68, 49, 2, 117, 55, 37, 0, 108, 97, 110, 107, 111,
-			108, 105, 101, 2, 32, 24, 0, 108, 111, 100, 105, 8, 2, 101, 117, 3, 65, 2, 108, 55, 2, 40, 72, 2, 37, 0, 109, 2, 98, 114,
-			97, 3, 65, 2, 108, 65, 0, 109, 111, 2, 114, 17, 65, 3, 65, 2, 108, 65, 2, 40, 0, 109, 111, 114, 97, 2, 98, 105, 108, 105,
-			3, 65, 2, 108, 65, 2, 110, 34, 2, 35, 0, 109, 111, 2, 114, 105, 17, 65, 3, 65, 2, 108, 65, 117, 0, 100, 105, 2, 116, 17,
-			65, 3, 65, 2, 108, 72, 2, 37, 0, 100, 105, 116, 101, 2, 114, 114, 101, 3, 65, 2, 108, 72, 2, 37, 47, 13, 0, 100, 105, 115,
-			105, 2, 110, 97, 21, 3, 65, 2, 108, 72, 13, 89, 2, 37, 0, 4, 101, 2, 100, 111, 195, 171, 3, 65, 2, 116, 0, 101, 2, 119,
-			97, 114, 0, 101, 114, 2, 118, 111, 117, 100, 105, 103, 3, 65, 2, 116, 34, 0, 101, 114, 100, 101, 114, 2, 106, 97, 114, 3, 65, 2,
-			116, 34, 72, 13, 34, 0, 4, 100, 101, 2, 100, 111, 195, 171, 3, 65, 2, 116, 72, 13, 0, 100, 101, 2, 112, 108, 105, 103, 0, 100,
-			101, 8, 2, 108, 121, 0, 101, 115, 116, 101, 114, 101, 3, 65, 2, 116, 89, 47, 13, 34, 108, 0, 110, 116, 106, 105, 101, 3, 65, 6,
-			108, 37, 68, 80, 37, 0, 110, 116, 3, 65, 6, 108, 50, 47, 0, 108, 111, 8, 2, 100, 114, 3, 65, 6, 108, 55, 40, 0, 110, 105,
-			110, 103, 3, 65, 6, 116, 50, 13, 68, 0, 100, 101, 8, 2, 21, 14, 128, 132, 132, 3, 65, 6, 116, 72, 13, 0, 101, 103, 101, 8,
-			2, 21, 14, 128, 132, 133, 3, 65, 6, 116, 136, 13, 0, 4, 2, 106, 117, 102, 3, 65, 13, 0, 2, 108, 97, 97, 116, 115, 0, 2,
-			114, 105, 101, 116, 101, 0, 2, 116, 111, 100, 0, 8, 2, 100, 117, 17, 67, 0, 114, 105, 110, 111, 3, 65, 13, 34, 37, 50, 2, 40,
-			0, 116, 97, 108, 101, 3, 65, 13, 47, 6, 115, 55, 13, 0, 116, 111, 100, 101, 3, 65, 13, 47, 6, 117, 72, 13, 0, 116, 97, 97,
-			2, 17, 67, 3, 65, 13, 47, 115, 0, 107, 97, 97, 114, 3, 65, 13, 49, 6, 115, 34, 0, 107, 97, 97, 114, 103, 101, 3, 65, 13,
-			49, 6, 115, 34, 136, 13, 0, 110, 101, 101, 114, 3, 65, 13, 50, 6, 116, 34, 0, 110, 101, 114, 101, 3, 65, 13, 50, 6, 116, 34,
-			13, 0, 108, 111, 100, 105, 101, 115, 8, 3, 65, 13, 55, 6, 117, 72, 37, 89, 0, 100, 97, 108, 2, 106, 111, 110, 3, 65, 13, 72,
-			2, 35, 55, 0, 100, 105, 115, 121, 110, 101, 3, 65, 13, 72, 13, 89, 123, 50, 13, 0, 100, 97, 108, 106, 101, 3, 65, 13, 72, 35,
-			55, 57, 13, 0, 118, 114, 111, 117, 3, 65, 13, 83, 34, 6, 120, 0, 103, 97, 110, 105, 101, 115, 3, 65, 13, 136, 6, 115, 50, 37,
-			89, 0, 2, 100, 105, 117, 109, 3, 65, 37, 12, 0, 100, 105, 97, 3, 65, 37, 12, 72, 37, 12, 57, 35, 4, 0, 2, 114, 114, 105,
-			101, 3, 65, 108, 0, 116, 101, 101, 110, 3, 65, 108, 47, 10, 6, 116, 50, 0, 116, 111, 100, 105, 115, 3, 65, 108, 47, 40, 72, 6,
-			109, 89, 0, 110, 105, 110, 103, 2, 105, 116, 105, 115, 3, 65, 108, 50, 13, 68, 136, 0, 110, 116, 101, 101, 2, 17, 67, 3, 65, 108,
-			50, 47, 6, 116, 0, 110, 116, 101, 114, 105, 110, 103, 3, 65, 108, 50, 47, 6, 116, 34, 13, 68, 0, 110, 116, 101, 108, 101, 2, 25,
-			3, 65, 108, 50, 47, 6, 116, 55, 13, 0, 108, 111, 100, 105, 101, 8, 3, 65, 108, 55, 40, 72, 6, 37, 0, 110, 103, 2, 115, 101,
-			108, 3, 65, 108, 68, 0, 4, 115, 1, 102, 101, 104, 2, 32, 3, 65, 108, 89, 0, 115, 1, 108, 101, 102, 97, 116, 2, 32, 0, 115,
-			1, 115, 17, 65, 17, 65, 2, 32, 0, 115, 1, 115, 17, 67, 2, 32, 0, 115, 1, 121, 110, 115, 2, 32, 0, 115, 8, 2, 97, 97,
-			110, 3, 65, 108, 89, 10, 0, 4, 114, 107, 1, 101, 116, 3, 65, 112, 34, 49, 0, 114, 107, 2, 32, 0, 114, 107, 101, 2, 32, 3,
-			65, 112, 34, 49, 13, 0, 2, 116, 114, 117, 109, 3, 65, 116, 0, 114, 101, 1, 17, 67, 21, 2, 32, 3, 65, 116, 12, 34, 13, 0,
-			116, 101, 108, 8, 3, 65, 116, 47, 13, 55, 0, 7, 6, 109, 105, 0, 2, 110, 101, 117, 114, 3, 65, 2, 37, 0, 114, 97, 107, 117,
-			2, 108, 101, 117, 115, 3, 65, 2, 37, 34, 2, 35, 49, 2, 118, 0, 107, 114, 111, 98, 101, 3, 65, 2, 37, 49, 34, 117, 71, 13,
-			0, 110, 105, 2, 109, 97, 21, 3, 65, 2, 37, 50, 2, 37, 0, 97, 97, 117, 3, 65, 2, 37, 129, 12, 0, 110, 97, 103, 3, 65,
-			6, 109, 50, 35, 136, 0, 100, 100, 97, 103, 101, 116, 101, 3, 65, 6, 109, 72, 35, 136, 10, 116, 47, 13, 0, 115, 2, 108, 105, 107,
-			3, 65, 6, 109, 89, 0, 4, 2, 109, 105, 101, 107, 3, 65, 13, 0, 2, 109, 111, 115, 97, 0, 2, 115, 115, 105, 101, 108, 0, 114,
-			97, 107, 101, 108, 3, 65, 13, 34, 115, 49, 13, 55, 0, 110, 97, 114, 101, 2, 116, 3, 65, 13, 50, 2, 35, 34, 108, 0, 110, 105,
-			115, 116, 101, 114, 115, 3, 65, 13, 50, 6, 109, 89, 47, 13, 34, 89, 0, 110, 117, 2, 115, 107, 117, 3, 65, 13, 50, 13, 0, 4,
-			110, 100, 101, 114, 2, 106, 97, 114, 3, 65, 13, 50, 13, 34, 0, 110, 101, 114, 2, 17, 65, 0, 110, 105, 115, 116, 101, 114, 105, 3,
-			65, 13, 50, 13, 89, 47, 2, 116, 34, 2, 37, 0, 110, 105, 115, 116, 101, 2, 114, 105, 101, 25, 3, 65, 13, 50, 13, 89, 47, 116,
-			0, 108, 2, 106, 17, 65, 3, 65, 13, 55, 0, 108, 105, 116, 3, 65, 13, 55, 13, 47, 0, 108, 105, 101, 117, 3, 65, 13, 55, 57,
-			118, 0, 108, 108, 101, 2, 110, 110, 105, 17, 65, 3, 65, 13, 55, 108, 0, 100, 100, 101, 108, 2, 106, 97, 114, 105, 3, 65, 13, 72,
-			13, 55, 0, 4, 115, 2, 103, 105, 115, 3, 65, 13, 89, 0, 115, 2, 103, 117, 110, 0, 115, 2, 104, 97, 0, 115, 2, 108, 0, 115,
-			2, 110, 111, 101, 103, 0, 115, 2, 112, 108, 97, 97, 115, 0, 115, 2, 114, 97, 98, 101, 108, 0, 115, 2, 114, 101, 107, 101, 110, 0,
-			115, 2, 116, 105, 101, 107, 0, 115, 2, 116, 114, 111, 111, 115, 0, 115, 2, 118, 111, 114, 109, 0, 115, 8, 2, 105, 110, 14, 128, 132,
-			131, 0, 115, 8, 2, 109, 0, 115, 101, 2, 114, 97, 0, 115, 116, 101, 114, 2, 105, 101, 117, 115, 3, 65, 13, 89, 47, 116, 34, 0,
-			115, 107, 101, 2, 110, 3, 65, 13, 89, 49, 108, 0, 2, 115, 115, 105, 101, 3, 65, 37, 0, 107, 114, 2, 111, 3, 65, 37, 49, 34,
-			0, 100, 100, 101, 2, 108, 3, 65, 109, 72, 13, 0, 100, 100, 101, 108, 108, 105, 2, 107, 3, 65, 109, 72, 13, 55, 13, 0, 4, 115,
-			2, 108, 97, 109, 112, 3, 65, 109, 89, 0, 115, 2, 108, 111, 111, 112, 0, 115, 2, 111, 0, 7, 6, 109, 111, 0, 4, 2, 112, 97,
-			110, 105, 3, 65, 2, 40, 0, 101, 2, 114, 97, 115, 0, 116, 111, 114, 2, 105, 101, 3, 65, 2, 40, 47, 117, 34, 0, 4, 108, 101,
-			115, 2, 25, 3, 65, 2, 40, 55, 108, 89, 0, 108, 101, 115, 2, 116, 101, 32, 0, 100, 101, 114, 110, 3, 65, 2, 40, 72, 112, 34,
-			14, 50, 0, 104, 97, 109, 109, 101, 100, 2, 97, 3, 65, 2, 40, 107, 2, 35, 65, 13, 72, 0, 4, 2, 100, 117, 108, 17, 65, 3,
-			65, 2, 110, 0, 2, 115, 107, 101, 101, 0, 4, 114, 2, 102, 111, 115, 101, 3, 65, 2, 110, 34, 0, 114, 8, 2, 17, 67, 21, 0,
-			114, 102, 2, 111, 116, 111, 109, 105, 101, 3, 65, 2, 110, 34, 83, 0, 122, 122, 97, 114, 101, 108, 108, 97, 3, 65, 2, 110, 47, 89,
-			2, 35, 34, 112, 55, 2, 35, 0, 110, 2, 116, 101, 117, 114, 3, 65, 2, 110, 50, 0, 110, 105, 116, 2, 101, 3, 65, 2, 110, 50,
-			2, 37, 47, 0, 110, 117, 2, 109, 101, 110, 116, 3, 65, 2, 110, 50, 2, 118, 0, 110, 101, 2, 116, 195, 170, 114, 3, 65, 2, 110,
-			50, 13, 0, 110, 100, 101, 114, 2, 17, 65, 3, 65, 2, 110, 50, 72, 116, 34, 0, 108, 101, 115, 2, 116, 17, 65, 3, 65, 2, 110,
-			55, 13, 89, 0, 110, 8, 2, 103, 111, 21, 3, 65, 2, 110, 68, 0, 100, 101, 2, 108, 108, 101, 21, 3, 65, 2, 110, 72, 13, 0,
-			100, 101, 114, 97, 2, 116, 17, 65, 3, 65, 2, 110, 72, 13, 34, 2, 35, 0, 100, 101, 114, 97, 2, 116, 111, 114, 25, 3, 65, 2,
-			110, 72, 13, 34, 115, 0, 2, 110, 97, 114, 103, 3, 65, 2, 117, 0, 116, 105, 101, 2, 17, 67, 3, 65, 2, 117, 47, 37, 0, 110,
-			97, 114, 103, 105, 101, 2, 32, 24, 3, 65, 2, 117, 50, 2, 35, 34, 136, 37, 0, 110, 111, 2, 103, 97, 3, 65, 2, 117, 50, 2,
-			117, 0, 110, 111, 112, 111, 2, 108, 105, 3, 65, 2, 117, 50, 2, 117, 48, 2, 40, 0, 100, 101, 2, 108, 3, 65, 2, 117, 72, 112,
-			0, 115, 97, 2, 195, 175, 101, 107, 3, 65, 2, 117, 89, 2, 35, 0, 115, 97, 109, 2, 98, 105, 101, 107, 3, 65, 2, 117, 89, 2,
-			35, 65, 0, 101, 105, 116, 101, 3, 65, 6, 126, 47, 13, 0, 100, 101, 8, 3, 65, 7, 117, 72, 13, 0, 101, 100, 115, 119, 105, 108,
-			108, 105, 103, 3, 65, 40, 47, 89, 84, 6, 109, 55, 13, 136, 0, 114, 114, 8, 2, 105, 3, 65, 110, 34, 0, 114, 115, 8, 2, 21,
-			3, 65, 110, 34, 89, 0, 110, 110, 105, 107, 101, 3, 65, 110, 50, 13, 49, 13, 0, 110, 105, 116, 111, 114, 2, 25, 3, 65, 110, 50,
-			37, 47, 110, 34, 0, 2, 98, 105, 101, 108, 3, 65, 117, 6, 0, 116, 111, 114, 3, 65, 117, 47, 13, 34, 0, 7, 6, 111, 110, 0,
-			4, 2, 114, 101, 103, 118, 12, 12, 3, 2, 110, 50, 0, 2, 116, 111, 101, 0, 2, 116, 117, 103, 116, 105, 103, 0, 2, 116, 119, 121,
-			102, 101, 108, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 116, 97, 97, 108, 0, 8, 2, 116, 97, 107, 116, 0, 8, 2, 116, 97,
-			115, 98, 97, 0, 8, 2, 116, 111, 111, 17, 67, 17, 67, 0, 8, 2, 116, 121, 100, 0, 8, 2, 119, 101, 115, 101, 110, 0, 116, 2,
-			100, 21, 0, 111, 109, 2, 115, 116, 111, 111, 116, 3, 2, 110, 50, 2, 110, 65, 0, 4, 97, 102, 8, 2, 115, 107, 101, 105, 17, 67,
-			3, 2, 110, 50, 10, 2, 35, 83, 0, 97, 102, 8, 2, 119, 101, 110, 100, 0, 4, 100, 101, 114, 2, 98, 114, 101, 3, 2, 110, 50,
-			13, 34, 0, 100, 101, 114, 2, 98, 114, 111, 107, 101, 0, 100, 101, 114, 2, 100, 97, 110, 105, 103, 0, 100, 101, 114, 2, 100, 114, 117,
-			107, 0, 100, 101, 114, 2, 100, 117, 105, 109, 0, 100, 101, 114, 2, 104, 97, 110, 100, 101, 0, 100, 101, 114, 2, 104, 101, 119, 0, 100,
-			101, 114, 2, 104, 111, 114, 0, 100, 101, 114, 2, 104, 111, 117, 0, 100, 101, 114, 2, 108, 101, 103, 0, 100, 101, 114, 2, 109, 121, 110,
-			0, 100, 101, 114, 2, 110, 101, 0, 100, 101, 114, 2, 115, 107, 114, 121, 17, 67, 0, 100, 101, 114, 2, 115, 111, 101, 107, 101, 110, 0,
-			100, 101, 114, 2, 115, 116, 101, 117, 0, 100, 101, 114, 2, 115, 116, 114, 101, 0, 100, 101, 114, 2, 116, 101, 107, 101, 110, 0, 100, 101,
-			114, 2, 116, 114, 111, 117, 0, 100, 101, 114, 2, 118, 97, 110, 103, 0, 100, 101, 114, 2, 118, 105, 110, 0, 100, 101, 114, 2, 118, 114,
-			97, 0, 100, 101, 114, 2, 119, 101, 114, 112, 105, 110, 103, 0, 100, 101, 114, 2, 119, 111, 114, 112, 0, 100, 101, 114, 8, 2, 115, 107,
-			17, 65, 0, 100, 101, 114, 111, 110, 115, 105, 101, 3, 2, 110, 50, 13, 34, 19, 135, 50, 89, 37, 0, 100, 101, 114, 115, 116, 101, 98,
-			111, 3, 2, 110, 50, 13, 34, 89, 47, 13, 71, 117, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 2, 110, 50, 47, 0, 116, 101, 109,
-			2, 98, 97, 3, 2, 110, 50, 47, 108, 65, 0, 116, 101, 108, 8, 3, 2, 110, 50, 47, 112, 55, 0, 116, 101, 114, 105, 110, 103, 3,
-			2, 110, 50, 47, 116, 34, 13, 68, 0, 100, 101, 117, 114, 3, 2, 110, 50, 72, 2, 118, 13, 34, 0, 118, 111, 111, 114, 2, 115, 3,
-			2, 110, 50, 83, 2, 117, 34, 0, 4, 119, 101, 101, 114, 8, 2, 108, 3, 2, 110, 50, 84, 2, 116, 34, 0, 119, 101, 101, 114, 8,
-			2, 115, 112, 114, 0, 119, 101, 101, 114, 8, 2, 115, 116, 97, 97, 110, 0, 104, 101, 105, 108, 2, 115, 112, 101, 108, 3, 2, 110, 50,
-			107, 2, 123, 55, 0, 104, 101, 105, 108, 2, 105, 103, 3, 2, 110, 50, 107, 6, 123, 55, 0, 103, 101, 101, 115, 8, 3, 2, 110, 50,
-			136, 2, 116, 89, 0, 103, 101, 108, 2, 100, 105, 103, 3, 2, 110, 50, 136, 112, 55, 0, 103, 114, 101, 115, 1, 107, 3, 2, 110, 68,
-			136, 34, 108, 89, 0, 4, 2, 115, 107, 117, 108, 100, 32, 24, 3, 6, 110, 50, 0, 8, 2, 119, 17, 65, 115, 0, 100, 101, 114, 103,
-			101, 8, 2, 21, 14, 128, 132, 135, 3, 6, 110, 50, 13, 34, 136, 13, 0, 105, 101, 115, 1, 21, 3, 6, 117, 50, 37, 89, 0, 4,
-			100, 101, 114, 2, 115, 101, 107, 114, 3, 7, 110, 50, 13, 34, 0, 100, 101, 114, 2, 119, 121, 115, 17, 67, 21, 0, 100, 101, 114, 8,
-			2, 101, 110, 17, 67, 3, 7, 110, 50, 13, 34, 10, 0, 104, 101, 105, 108, 3, 7, 110, 50, 107, 123, 55, 0, 121, 1, 21, 2, 32,
-			3, 21, 0, 111, 111, 109, 3, 40, 50, 6, 117, 65, 0, 111, 109, 101, 3, 40, 50, 6, 117, 65, 13, 0, 111, 109, 105, 101, 115, 3,
-			40, 50, 6, 117, 65, 37, 89, 0, 111, 109, 105, 101, 3, 40, 50, 40, 65, 6, 37, 0, 4, 2, 100, 105, 101, 114, 3, 110, 50, 0,
-			2, 108, 97, 110, 103, 115, 0, 2, 115, 105, 110, 32, 24, 0, 2, 116, 117, 103, 0, 8, 2, 102, 105, 107, 115, 0, 8, 2, 107, 97,
-			110, 116, 0, 8, 2, 107, 111, 115, 116, 101, 0, 8, 2, 107, 114, 117, 105, 100, 0, 8, 2, 108, 117, 115, 0, 8, 2, 112, 97, 97,
-			114, 0, 8, 2, 116, 117, 105, 17, 67, 0, 8, 2, 117, 105, 116, 103, 101, 21, 12, 12, 14, 128, 132, 130, 3, 110, 50, 10, 0, 117,
-			105, 116, 8, 2, 21, 14, 128, 132, 133, 3, 110, 50, 10, 127, 47, 0, 4, 100, 101, 114, 3, 110, 50, 13, 34, 0, 100, 101, 114, 2,
-			104, 111, 117, 100, 25, 0, 100, 101, 114, 2, 104, 111, 117, 100, 101, 32, 0, 100, 101, 114, 2, 115, 107, 101, 105, 100, 32, 24, 0, 100,
-			101, 114, 119, 121, 115, 101, 114, 2, 97, 3, 110, 50, 13, 34, 84, 6, 123, 89, 13, 34, 10, 0, 114, 101, 103, 2, 25, 3, 110, 50,
-			34, 112, 136, 0, 110, 105, 101, 8, 3, 110, 50, 37, 0, 116, 101, 118, 114, 101, 100, 101, 3, 110, 50, 47, 13, 83, 34, 6, 116, 72,
-			13, 0, 116, 101, 101, 110, 115, 101, 103, 3, 110, 50, 47, 116, 50, 89, 6, 112, 136, 0, 119, 101, 101, 114, 8, 3, 110, 50, 84, 116,
-			34, 0, 4, 103, 101, 2, 100, 105, 101, 114, 116, 3, 110, 50, 136, 13, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 0, 103, 101, 114,
-			105, 101, 102, 108, 105, 2, 107, 3, 110, 50, 136, 13, 34, 6, 37, 83, 55, 13, 0, 103, 101, 108, 111, 111, 102, 108, 105, 8, 2, 107,
-			3, 110, 50, 136, 13, 55, 6, 117, 83, 55, 13, 0, 103, 101, 109, 97, 107, 108, 105, 2, 107, 3, 110, 50, 136, 13, 65, 6, 35, 49,
-			55, 13, 0, 105, 107, 115, 3, 117, 50, 13, 49, 89, 0, 4, 105, 101, 1, 108, 111, 107, 3, 117, 50, 37, 0, 105, 101, 1, 109, 101,
-			114, 101, 115, 2, 25, 0, 105, 101, 115, 1, 112, 21, 3, 117, 50, 37, 89, 0, 117, 115, 8, 3, 117, 50, 111, 89, 0, 4, 100, 106,
-			105, 101, 3, 124, 68, 80, 37, 0, 116, 106, 105, 101, 0, 4, 115, 1, 98, 3, 135, 50, 89, 0, 115, 1, 100, 0, 115, 1, 103, 0,
-			115, 1, 114, 102, 0, 4, 103, 101, 1, 21, 2, 108, 117, 107, 21, 3, 135, 68, 136, 13, 0, 103, 101, 2, 108, 117, 107, 32, 0, 103,
-			101, 2, 108, 117, 107, 107, 101, 32, 0, 103, 101, 2, 108, 117, 107, 107, 105, 101, 0, 103, 101, 2, 108, 117, 107, 115, 0, 103, 101, 118,
-			97, 2, 108, 3, 135, 68, 136, 13, 83, 35, 0, 7, 6, 111, 111, 0, 4, 114, 2, 98, 108, 121, 119, 3, 2, 117, 34, 0, 114, 2,
-			98, 114, 117, 103, 0, 114, 2, 100, 105, 110, 107, 0, 114, 2, 100, 111, 110, 100, 101, 114, 0, 114, 2, 100, 114, 97, 97, 103, 0, 114,
-			2, 103, 97, 110, 107, 0, 114, 2, 104, 101, 101, 114, 115, 0, 114, 2, 107, 111, 111, 109, 0, 114, 2, 108, 97, 97, 105, 100, 0, 114,
-			2, 108, 97, 109, 115, 0, 114, 2, 109, 101, 101, 115, 116, 101, 114, 0, 114, 2, 114, 101, 101, 100, 0, 114, 2, 114, 111, 109, 112, 101,
-			108, 0, 114, 2, 115, 105, 103, 116, 0, 114, 2, 115, 107, 114, 121, 0, 114, 2, 115, 112, 114, 111, 110, 107, 0, 114, 2, 115, 116, 117,
-			114, 0, 114, 2, 116, 114, 0, 114, 2, 116, 117, 105, 103, 0, 114, 8, 2, 100, 97, 103, 0, 114, 8, 2, 100, 101, 110, 107, 0, 114,
-			8, 2, 100, 111, 101, 110, 0, 114, 8, 2, 100, 114, 121, 17, 67, 0, 114, 8, 2, 103, 114, 111, 101, 105, 0, 114, 8, 2, 104, 97,
-			97, 115, 0, 114, 8, 2, 104, 111, 111, 102, 115, 0, 114, 8, 2, 112, 101, 105, 110, 115, 0, 114, 8, 2, 115, 107, 97, 100, 117, 0,
-			114, 8, 2, 115, 107, 97, 116, 0, 114, 8, 2, 115, 116, 101, 108, 112, 0, 114, 8, 2, 115, 116, 114, 111, 109, 105, 0, 114, 8, 2,
-			118, 108, 101, 117, 101, 108, 0, 114, 8, 2, 118, 108, 111, 101, 100, 105, 103, 0, 114, 8, 2, 119, 0, 4, 114, 2, 101, 101, 110, 3,
-			2, 117, 34, 10, 0, 114, 2, 101, 101, 110, 103, 101, 0, 114, 2, 101, 101, 110, 115, 21, 0, 114, 2, 101, 101, 116, 0, 114, 2, 101,
-			105, 115, 0, 114, 101, 114, 102, 108, 105, 107, 3, 2, 117, 34, 10, 112, 34, 83, 55, 13, 49, 0, 114, 100, 119, 97, 114, 115, 8, 3,
-			2, 117, 34, 72, 58, 35, 34, 89, 0, 114, 100, 101, 8, 2, 107, 3, 2, 117, 34, 72, 112, 0, 114, 115, 116, 117, 117, 114, 115, 8,
-			3, 2, 117, 34, 89, 47, 118, 12, 34, 89, 0, 114, 115, 97, 97, 107, 108, 105, 107, 3, 2, 117, 34, 89, 115, 49, 55, 13, 49, 0,
-			114, 114, 101, 2, 100, 17, 65, 3, 2, 117, 34, 116, 0, 116, 2, 109, 111, 101, 100, 105, 103, 3, 2, 117, 47, 0, 4, 103, 2, 108,
-			111, 112, 3, 2, 117, 136, 0, 103, 2, 108, 117, 105, 107, 0, 114, 2, 101, 101, 110, 21, 21, 3, 4, 117, 34, 10, 0, 114, 2, 119,
-			105, 103, 3, 6, 117, 34, 0, 112, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 117, 48, 136, 13, 0, 3, 117, 0, 4, 114, 2,
-			115, 105, 103, 116, 121, 100, 3, 117, 34, 0, 114, 2, 116, 114, 101, 107, 0, 114, 8, 2, 116, 114, 111, 109, 0, 114, 8, 2, 104, 97,
-			110, 100, 21, 3, 117, 34, 6, 0, 114, 107, 111, 101, 112, 101, 108, 3, 117, 34, 49, 6, 40, 48, 13, 55, 0, 114, 108, 101, 100, 101,
-			8, 3, 117, 34, 55, 6, 116, 72, 13, 0, 114, 108, 101, 2, 119, 17, 65, 110, 3, 117, 34, 55, 7, 116, 0, 114, 108, 101, 2, 108,
-			25, 3, 117, 34, 55, 112, 0, 114, 98, 111, 100, 105, 103, 3, 117, 34, 71, 6, 117, 72, 13, 136, 0, 114, 98, 108, 117, 102, 3, 117,
-			34, 71, 55, 6, 111, 83, 0, 114, 100, 114, 101, 119, 101, 3, 117, 34, 72, 34, 6, 116, 84, 13, 0, 109, 98, 108, 105, 107, 108, 105,
-			107, 3, 117, 65, 71, 55, 6, 109, 49, 55, 13, 49, 0, 4, 105, 3, 125, 0, 121, 0, 4, 110, 100, 106, 105, 101, 3, 125, 68, 49,
-			37, 0, 110, 116, 106, 105, 101, 0, 4, 100, 106, 105, 101, 3, 125, 80, 37, 0, 116, 106, 105, 101, 0, 7, 6, 111, 112, 0, 4, 2,
-			104, 111, 117, 100, 101, 3, 2, 110, 48, 0, 2, 108, 101, 116, 116, 0, 2, 110, 117, 117, 116, 0, 2, 114, 111, 101, 114, 105, 103, 0,
-			2, 114, 117, 105, 101, 110, 0, 2, 115, 105, 101, 110, 98, 0, 2, 115, 105, 111, 110, 101, 21, 0, 2, 115, 116, 97, 110, 100, 105, 103,
-			0, 2, 119, 105, 110, 100, 101, 0, 8, 2, 114, 101, 103, 0, 8, 2, 115, 121, 0, 8, 2, 118, 97, 108, 108, 0, 8, 2, 118, 108,
-			105, 101, 195, 171, 0, 112, 111, 114, 2, 116, 117, 3, 2, 110, 48, 2, 110, 34, 0, 112, 101, 114, 2, 118, 108, 97, 107, 107, 105, 3,
-			2, 110, 48, 13, 34, 0, 112, 111, 110, 2, 17, 65, 3, 2, 110, 48, 13, 50, 0, 112, 111, 115, 2, 105, 115, 105, 101, 3, 2, 110,
-			48, 13, 88, 0, 116, 105, 2, 109, 17, 65, 3, 2, 110, 48, 47, 2, 37, 0, 109, 101, 114, 107, 108, 105, 8, 2, 107, 3, 2, 110,
-			48, 65, 112, 34, 49, 55, 13, 0, 115, 101, 116, 108, 105, 107, 3, 2, 110, 48, 89, 108, 47, 55, 13, 49, 0, 115, 105, 103, 116, 101,
-			108, 105, 8, 2, 107, 3, 2, 110, 48, 89, 109, 136, 47, 13, 55, 13, 0, 101, 114, 8, 2, 17, 65, 3, 2, 117, 48, 13, 34, 0,
-			101, 114, 97, 115, 105, 101, 3, 2, 117, 48, 13, 34, 115, 89, 37, 0, 101, 110, 2, 98, 3, 2, 117, 48, 13, 50, 0, 8, 2, 21,
-			14, 128, 132, 130, 3, 6, 110, 48, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 110, 48, 136, 13, 0, 103, 101, 101, 2, 12,
-			3, 6, 110, 48, 136, 116, 0, 1, 17, 67, 10, 2, 105, 103, 3, 6, 117, 48, 0, 101, 101, 110, 1, 25, 3, 10, 2, 110, 48, 10,
-			116, 50, 0, 97, 97, 116, 3, 40, 48, 6, 115, 47, 0, 4, 97, 116, 105, 101, 115, 3, 40, 48, 6, 115, 47, 37, 89, 0, 97, 116,
-			105, 101, 115, 0, 97, 116, 105, 101, 3, 40, 48, 35, 47, 6, 37, 0, 2, 111, 102, 102, 101, 114, 3, 110, 48, 0, 112, 101, 114, 3,
-			110, 48, 13, 34, 0, 116, 101, 108, 3, 110, 48, 47, 112, 55, 0, 115, 112, 114, 97, 97, 107, 3, 110, 48, 89, 48, 34, 115, 49, 0,
-			105, 110, 105, 101, 3, 117, 48, 6, 37, 50, 37, 0, 4, 101, 2, 108, 3, 117, 48, 13, 0, 101, 8, 2, 25, 0, 101, 8, 2, 114,
-			105, 103, 0, 101, 114, 97, 2, 25, 3, 117, 48, 13, 34, 2, 35, 0, 101, 110, 2, 12, 3, 117, 48, 13, 50, 0, 105, 117, 109, 3,
-			117, 48, 37, 111, 65, 0, 117, 8, 2, 115, 3, 117, 48, 111, 0, 7, 6, 112, 97, 0, 114, 97, 2, 17, 67, 3, 4, 48, 35, 34,
-			35, 0, 4, 2, 103, 111, 100, 17, 65, 3, 48, 2, 35, 0, 2, 110, 101, 108, 101, 0, 2, 110, 105, 101, 107, 0, 2, 112, 105, 101,
-			114, 0, 2, 112, 105, 114, 117, 115, 0, 2, 115, 105, 102, 105, 0, 2, 115, 116, 101, 108, 0, 2, 116, 114, 17, 65, 0, 8, 2, 107,
-			107, 97, 0, 8, 2, 115, 116, 101, 105, 0, 8, 2, 115, 116, 111, 0, 8, 2, 116, 17, 65, 0, 112, 2, 98, 114, 111, 101, 107, 17,
-			65, 17, 67, 0, 114, 8, 2, 17, 67, 17, 65, 3, 48, 2, 35, 34, 0, 114, 111, 2, 100, 105, 3, 48, 2, 35, 34, 2, 40, 0,
-			114, 116, 105, 2, 115, 97, 3, 48, 2, 35, 34, 47, 2, 37, 0, 114, 116, 105, 2, 116, 117, 3, 48, 2, 35, 34, 47, 13, 0, 114,
-			108, 101, 2, 109, 101, 110, 116, 3, 48, 2, 35, 34, 55, 13, 0, 114, 109, 101, 2, 115, 97, 97, 110, 3, 48, 2, 35, 34, 65, 13,
-			0, 116, 105, 101, 2, 25, 24, 3, 48, 2, 35, 47, 6, 37, 0, 116, 114, 105, 2, 21, 3, 48, 2, 35, 47, 34, 2, 37, 0, 116,
-			114, 105, 97, 114, 2, 103, 97, 3, 48, 2, 35, 47, 34, 2, 37, 2, 35, 34, 0, 116, 114, 111, 2, 108, 108, 101, 3, 48, 2, 35,
-			47, 34, 2, 40, 0, 116, 195, 169, 3, 48, 2, 35, 47, 116, 0, 112, 97, 106, 97, 3, 48, 2, 35, 48, 6, 115, 37, 35, 0, 4,
-			112, 101, 2, 103, 97, 97, 105, 3, 48, 2, 35, 48, 13, 0, 112, 112, 101, 2, 114, 121, 0, 112, 97, 119, 101, 114, 3, 48, 2, 35,
-			48, 115, 84, 13, 34, 0, 107, 105, 115, 116, 97, 110, 3, 48, 2, 35, 49, 2, 37, 89, 47, 35, 50, 0, 107, 107, 101, 2, 116, 3,
-			48, 2, 35, 49, 108, 0, 4, 110, 8, 2, 100, 111, 3, 48, 2, 35, 50, 0, 110, 8, 2, 116, 111, 0, 110, 111, 2, 114, 97, 109,
-			3, 48, 2, 35, 50, 2, 40, 0, 110, 100, 101, 2, 109, 105, 101, 3, 48, 2, 35, 50, 72, 116, 0, 108, 2, 109, 105, 101, 116, 3,
-			48, 2, 35, 55, 0, 108, 105, 115, 115, 97, 100, 101, 3, 48, 2, 35, 55, 2, 37, 89, 115, 72, 13, 0, 108, 101, 2, 115, 116, 17,
-			65, 3, 48, 2, 35, 55, 13, 0, 108, 105, 110, 2, 100, 114, 111, 3, 48, 2, 35, 55, 13, 50, 0, 108, 101, 2, 116, 3, 48, 2,
-			35, 55, 108, 0, 109, 2, 17, 67, 3, 48, 2, 35, 65, 0, 109, 112, 101, 114, 2, 108, 3, 48, 2, 35, 65, 48, 13, 34, 0, 4,
-			118, 105, 108, 2, 106, 111, 101, 3, 48, 2, 35, 84, 13, 55, 0, 119, 105, 108, 2, 106, 111, 101, 0, 115, 2, 111, 112, 3, 48, 2,
-			35, 89, 0, 115, 115, 97, 2, 115, 105, 101, 114, 3, 48, 2, 35, 89, 2, 35, 0, 115, 116, 111, 8, 2, 114, 17, 65, 21, 3, 48,
-			2, 35, 89, 47, 2, 40, 0, 115, 101, 2, 108, 108, 97, 3, 48, 2, 35, 89, 112, 0, 116, 105, 101, 115, 1, 21, 3, 48, 6, 115,
-			47, 37, 89, 0, 100, 100, 97, 8, 2, 17, 67, 17, 65, 3, 48, 7, 35, 72, 35, 0, 2, 116, 97, 116, 3, 48, 13, 0, 114, 97,
-			100, 101, 2, 25, 3, 48, 13, 34, 115, 72, 13, 0, 110, 97, 100, 111, 3, 48, 13, 50, 115, 72, 120, 12, 0, 106, 97, 109, 97, 3,
-			48, 13, 75, 115, 65, 2, 35, 0, 114, 107, 97, 2, 98, 97, 97, 100, 106, 3, 48, 35, 34, 49, 2, 35, 0, 114, 107, 101, 2, 114,
-			97, 97, 100, 3, 48, 35, 34, 49, 13, 0, 107, 2, 17, 65, 3, 48, 35, 49, 19, 0, 110, 8, 2, 103, 101, 17, 67, 3, 48, 35,
-			50, 0, 110, 97, 109, 97, 3, 48, 35, 50, 13, 65, 35, 0, 110, 116, 115, 101, 114, 3, 48, 35, 50, 47, 89, 13, 34, 0, 108, 106,
-			97, 8, 2, 25, 3, 48, 35, 55, 57, 7, 35, 0, 109, 2, 112, 97, 3, 48, 35, 65, 0, 110, 107, 114, 101, 97, 3, 48, 35, 68,
-			49, 34, 2, 37, 2, 35, 0, 110, 103, 97, 3, 48, 35, 68, 81, 35, 0, 115, 8, 2, 17, 65, 17, 65, 3, 48, 35, 89, 0, 97,
-			114, 108, 8, 3, 48, 113, 34, 114, 0, 116, 105, 111, 3, 48, 115, 47, 37, 38, 40, 0, 7, 6, 112, 101, 0, 2, 110, 97, 108, 105,
-			3, 48, 2, 108, 0, 114, 105, 2, 115, 17, 67, 17, 65, 3, 48, 2, 108, 34, 13, 0, 114, 105, 102, 101, 2, 114, 17, 65, 21, 3,
-			48, 2, 108, 34, 13, 83, 13, 0, 110, 2, 100, 117, 108, 101, 3, 48, 2, 108, 50, 0, 110, 101, 2, 116, 114, 17, 65, 3, 48, 2,
-			108, 50, 13, 0, 110, 105, 115, 105, 2, 108, 108, 105, 3, 48, 2, 108, 50, 13, 89, 13, 0, 110, 115, 105, 2, 111, 101, 110, 3, 48,
-			2, 108, 50, 91, 2, 37, 0, 108, 105, 8, 2, 107, 97, 3, 48, 2, 108, 55, 2, 37, 0, 108, 111, 116, 111, 110, 3, 48, 2, 108,
-			55, 13, 47, 110, 50, 0, 100, 8, 2, 111, 102, 3, 48, 2, 108, 72, 0, 100, 97, 8, 2, 103, 3, 48, 2, 108, 72, 2, 35, 0,
-			100, 105, 8, 3, 48, 2, 108, 72, 2, 37, 0, 114, 2, 115, 101, 101, 108, 3, 48, 2, 112, 34, 0, 114, 108, 101, 2, 109, 111, 101,
-			3, 48, 2, 112, 34, 55, 13, 0, 114, 115, 111, 2, 110, 101, 101, 108, 3, 48, 2, 112, 34, 89, 2, 40, 0, 114, 103, 111, 108, 97,
-			3, 48, 2, 112, 34, 136, 117, 55, 2, 35, 0, 4, 108, 101, 2, 116, 111, 110, 3, 48, 2, 112, 55, 13, 0, 108, 101, 2, 116, 111,
-			110, 0, 114, 105, 2, 111, 3, 48, 2, 116, 34, 2, 37, 0, 114, 100, 101, 8, 3, 48, 6, 113, 34, 72, 13, 0, 4, 1, 17, 67,
-			21, 2, 100, 97, 3, 48, 13, 0, 2, 110, 97, 114, 105, 101, 0, 2, 114, 114, 111, 110, 0, 2, 116, 105, 101, 116, 101, 114, 0, 2,
-			116, 105, 115, 105, 0, 2, 116, 117, 110, 105, 97, 0, 8, 2, 100, 17, 65, 0, 4, 114, 2, 107, 117, 115, 115, 105, 101, 3, 48, 13,
-			34, 0, 114, 2, 115, 101, 112, 115, 105, 0, 114, 2, 115, 111, 0, 4, 114, 101, 1, 109, 97, 107, 115, 2, 32, 3, 48, 13, 34, 13,
-			0, 114, 101, 1, 112, 2, 32, 0, 114, 101, 1, 121, 114, 2, 32, 0, 114, 109, 105, 116, 3, 48, 13, 34, 65, 6, 109, 47, 0, 4,
-			114, 100, 101, 1, 101, 112, 2, 32, 3, 48, 13, 34, 72, 13, 0, 114, 100, 101, 1, 109, 101, 116, 2, 32, 0, 114, 100, 101, 1, 112,
-			105, 110, 115, 2, 32, 0, 114, 100, 101, 1, 114, 117, 112, 2, 32, 0, 114, 100, 101, 1, 115, 97, 114, 2, 32, 0, 114, 102, 101, 107,
-			3, 48, 13, 34, 83, 108, 49, 0, 114, 118, 101, 114, 116, 3, 48, 13, 34, 83, 112, 34, 47, 0, 114, 118, 101, 114, 115, 3, 48, 13,
-			34, 83, 112, 34, 89, 0, 114, 115, 101, 110, 116, 3, 48, 13, 34, 89, 108, 50, 47, 0, 114, 115, 101, 110, 116, 97, 1, 21, 2, 115,
-			105, 3, 48, 13, 34, 89, 108, 50, 47, 115, 0, 116, 114, 111, 108, 2, 101, 117, 109, 3, 48, 13, 47, 34, 117, 55, 0, 110, 101, 2,
-			32, 3, 48, 13, 50, 13, 0, 108, 105, 110, 103, 1, 114, 2, 32, 3, 48, 13, 55, 13, 68, 0, 114, 105, 112, 97, 2, 116, 3, 48,
-			108, 34, 37, 48, 35, 7, 0, 116, 114, 111, 108, 3, 48, 108, 47, 34, 13, 55, 10, 0, 100, 111, 8, 2, 109, 3, 48, 108, 72, 2,
-			40, 0, 115, 1, 114, 101, 100, 110, 117, 114, 3, 48, 108, 89, 0, 114, 115, 112, 101, 120, 3, 48, 109, 34, 89, 48, 108, 49, 89, 0,
-			114, 107, 101, 1, 21, 2, 32, 3, 48, 112, 34, 49, 13, 0, 114, 107, 101, 114, 1, 21, 2, 25, 3, 48, 112, 34, 49, 13, 34, 0,
-			114, 107, 105, 110, 103, 1, 21, 3, 48, 112, 34, 49, 13, 68, 0, 114, 109, 97, 110, 101, 110, 3, 48, 112, 34, 65, 35, 50, 6, 108,
-			50, 0, 114, 115, 2, 111, 109, 3, 48, 112, 34, 89, 10, 0, 114, 115, 107, 101, 3, 48, 112, 34, 89, 49, 13, 0, 114, 1, 121, 114,
-			2, 100, 3, 48, 113, 34, 0, 114, 100, 8, 2, 114, 3, 48, 113, 34, 47, 0, 4, 114, 100, 101, 1, 21, 2, 32, 3, 48, 113, 34,
-			72, 13, 0, 114, 100, 101, 2, 107, 97, 114, 0, 8, 2, 116, 114, 17, 65, 32, 3, 48, 116, 0, 114, 101, 1, 21, 2, 32, 3, 48,
-			116, 34, 13, 0, 7, 6, 112, 114, 0, 111, 116, 101, 115, 116, 3, 4, 48, 34, 110, 47, 13, 89, 47, 0, 111, 112, 97, 103, 3, 4,
-			48, 34, 110, 48, 35, 136, 0, 97, 107, 8, 2, 116, 121, 107, 3, 48, 34, 2, 35, 49, 0, 97, 107, 116, 105, 2, 115, 121, 110, 3,
-			48, 34, 2, 35, 49, 47, 2, 37, 0, 105, 2, 109, 97, 97, 116, 3, 48, 34, 2, 37, 0, 101, 116, 111, 114, 105, 3, 48, 34, 2,
-			37, 47, 2, 117, 34, 2, 37, 0, 101, 116, 111, 114, 105, 97, 2, 110, 3, 48, 34, 2, 37, 47, 2, 117, 34, 2, 37, 6, 115, 0,
-			101, 116, 111, 114, 105, 97, 2, 32, 3, 48, 34, 2, 37, 47, 6, 117, 34, 37, 35, 0, 101, 109, 105, 195, 168, 114, 101, 3, 48, 34,
-			2, 37, 65, 57, 113, 34, 0, 105, 118, 2, 97, 21, 3, 48, 34, 2, 37, 83, 0, 105, 101, 115, 116, 101, 114, 101, 2, 25, 3, 48,
-			34, 2, 37, 89, 47, 13, 34, 108, 0, 4, 111, 2, 17, 67, 17, 65, 3, 48, 34, 2, 40, 0, 111, 2, 98, 108, 17, 65, 0, 111,
-			2, 103, 114, 97, 109, 0, 111, 116, 101, 115, 2, 116, 101, 32, 24, 3, 48, 34, 2, 40, 47, 108, 89, 0, 111, 106, 101, 107, 3, 48,
-			34, 2, 40, 57, 108, 49, 0, 111, 100, 117, 107, 2, 17, 65, 3, 48, 34, 2, 40, 72, 111, 49, 10, 0, 111, 102, 101, 115, 115, 105,
-			111, 2, 110, 3, 48, 34, 2, 40, 83, 2, 108, 91, 2, 37, 2, 40, 0, 111, 118, 105, 116, 97, 3, 48, 34, 2, 40, 84, 37, 47,
-			2, 35, 0, 111, 115, 101, 115, 3, 48, 34, 2, 40, 89, 108, 89, 0, 111, 103, 114, 97, 109, 109, 101, 2, 114, 105, 110, 103, 3, 48,
-			34, 2, 40, 136, 34, 2, 35, 65, 116, 0, 101, 112, 97, 2, 114, 97, 3, 48, 34, 2, 108, 48, 13, 0, 101, 115, 116, 105, 103, 101,
-			3, 48, 34, 2, 108, 89, 47, 37, 12, 90, 0, 101, 115, 98, 105, 116, 101, 114, 105, 2, 97, 3, 48, 34, 2, 108, 89, 71, 13, 47,
-			2, 116, 34, 2, 37, 0, 101, 103, 2, 110, 97, 110, 17, 67, 3, 48, 34, 2, 108, 136, 0, 111, 112, 111, 115, 105, 3, 48, 34, 2,
-			110, 48, 13, 88, 37, 0, 111, 107, 117, 2, 114, 17, 65, 3, 48, 34, 2, 110, 49, 2, 118, 0, 111, 108, 101, 116, 97, 114, 105, 2,
-			97, 3, 48, 34, 2, 110, 55, 13, 47, 2, 35, 34, 2, 37, 0, 111, 109, 117, 108, 103, 2, 101, 3, 48, 34, 2, 110, 65, 2, 111,
-			55, 136, 0, 111, 109, 101, 110, 97, 100, 101, 3, 48, 34, 2, 110, 65, 13, 50, 115, 72, 13, 0, 111, 109, 105, 115, 107, 117, 3, 48,
-			34, 2, 110, 65, 13, 89, 49, 118, 0, 111, 98, 108, 101, 2, 109, 97, 116, 105, 3, 48, 34, 2, 110, 71, 55, 13, 0, 111, 102, 105,
-			116, 2, 101, 3, 48, 34, 2, 110, 83, 13, 47, 0, 111, 115, 101, 2, 100, 117, 114, 101, 3, 48, 34, 2, 110, 89, 13, 0, 111, 115,
-			116, 105, 2, 116, 117, 3, 48, 34, 2, 110, 89, 47, 13, 0, 101, 100, 105, 2, 107, 97, 110, 116, 3, 48, 34, 2, 116, 72, 13, 0,
-			111, 2, 103, 114, 101, 115, 115, 3, 48, 34, 2, 117, 0, 111, 116, 101, 2, 195, 175, 3, 48, 34, 2, 117, 47, 13, 0, 111, 106, 101,
-			107, 2, 116, 105, 101, 108, 3, 48, 34, 2, 117, 57, 2, 108, 49, 0, 111, 118, 105, 2, 97, 110, 100, 3, 48, 34, 2, 117, 84, 2,
-			37, 0, 111, 115, 97, 2, 195, 175, 101, 3, 48, 34, 2, 117, 89, 115, 0, 111, 103, 101, 115, 116, 101, 114, 2, 111, 3, 48, 34, 2,
-			117, 136, 2, 108, 89, 47, 13, 34, 0, 101, 2, 110, 97, 116, 97, 3, 48, 34, 4, 116, 0, 4, 101, 2, 108, 117, 100, 3, 48, 34,
-			13, 0, 101, 2, 109, 105, 101, 114, 0, 101, 2, 115, 17, 65, 0, 101, 116, 101, 110, 2, 115, 105, 3, 48, 34, 13, 47, 134, 50, 0,
-			105, 110, 115, 105, 2, 112, 17, 65, 3, 48, 34, 13, 50, 89, 13, 0, 105, 110, 115, 105, 112, 101, 2, 25, 3, 48, 34, 13, 50, 89,
-			37, 48, 13, 0, 105, 110, 115, 101, 2, 115, 3, 48, 34, 13, 50, 89, 108, 0, 105, 110, 115, 101, 115, 1, 21, 2, 32, 3, 48, 34,
-			13, 50, 89, 108, 89, 0, 105, 109, 105, 2, 116, 3, 48, 34, 13, 65, 13, 0, 4, 101, 115, 101, 2, 100, 101, 110, 116, 3, 48, 34,
-			13, 89, 13, 0, 105, 115, 111, 2, 110, 105, 101, 114, 0, 101, 115, 105, 100, 101, 110, 2, 17, 67, 3, 48, 34, 13, 89, 13, 72, 108,
-			50, 0, 101, 115, 116, 97, 2, 115, 105, 101, 3, 48, 34, 13, 89, 47, 115, 0, 101, 115, 116, 101, 2, 114, 101, 110, 100, 3, 48, 34,
-			13, 89, 47, 116, 0, 101, 115, 116, 101, 101, 114, 3, 48, 34, 13, 89, 47, 116, 34, 0, 101, 115, 101, 110, 116, 1, 21, 3, 48, 34,
-			13, 89, 108, 50, 47, 0, 101, 116, 111, 114, 105, 97, 2, 17, 67, 3, 48, 34, 37, 47, 6, 117, 34, 37, 35, 0, 101, 102, 101, 107,
-			3, 48, 34, 37, 83, 108, 49, 0, 111, 116, 101, 115, 3, 48, 34, 40, 47, 6, 108, 89, 0, 111, 109, 105, 110, 101, 110, 3, 48, 34,
-			110, 65, 37, 50, 6, 108, 50, 0, 111, 110, 107, 101, 114, 2, 116, 106, 105, 3, 48, 34, 110, 68, 49, 10, 112, 34, 0, 111, 102, 101,
-			115, 105, 101, 3, 48, 34, 110, 83, 13, 89, 6, 37, 0, 4, 101, 2, 104, 105, 115, 116, 111, 3, 48, 34, 116, 0, 101, 2, 115, 101,
-			32, 0, 101, 100, 105, 107, 101, 114, 3, 48, 34, 116, 72, 13, 49, 13, 34, 0, 111, 116, 2, 111, 110, 12, 3, 48, 34, 117, 47, 0,
-			111, 116, 111, 2, 17, 67, 3, 48, 34, 117, 47, 40, 0, 111, 107, 105, 101, 3, 48, 34, 117, 49, 2, 37, 0, 111, 115, 97, 3, 48,
-			34, 117, 89, 2, 35, 0, 111, 115, 101, 1, 21, 2, 32, 3, 48, 34, 117, 89, 13, 0, 7, 6, 114, 101, 0, 2, 97, 103, 101, 114,
-			101, 110, 3, 34, 2, 37, 0, 97, 2, 17, 67, 3, 34, 2, 37, 2, 35, 0, 104, 97, 98, 105, 108, 105, 116, 3, 34, 2, 37, 2,
-			35, 71, 2, 37, 55, 2, 37, 47, 0, 2, 195, 188, 3, 34, 2, 37, 10, 0, 97, 2, 107, 115, 3, 34, 2, 37, 35, 0, 102, 108,
-			101, 107, 2, 17, 67, 3, 34, 2, 37, 83, 55, 108, 49, 0, 116, 114, 111, 8, 2, 21, 14, 128, 132, 133, 3, 34, 2, 108, 47, 34,
-			2, 40, 0, 112, 2, 116, 105, 101, 108, 3, 34, 2, 108, 48, 0, 112, 101, 114, 116, 111, 105, 114, 101, 3, 34, 2, 108, 48, 13, 34,
-			47, 58, 115, 34, 0, 112, 117, 2, 116, 3, 34, 2, 108, 48, 118, 0, 100, 105, 103, 8, 2, 17, 65, 3, 34, 2, 108, 72, 2, 37,
-			136, 0, 102, 101, 114, 2, 97, 3, 34, 2, 108, 83, 13, 34, 0, 119, 111, 108, 2, 117, 3, 34, 2, 108, 84, 2, 111, 55, 0, 115,
-			111, 2, 110, 17, 65, 3, 34, 2, 108, 89, 2, 40, 0, 115, 111, 2, 108, 117, 115, 105, 101, 3, 34, 2, 108, 89, 2, 110, 0, 115,
-			116, 97, 117, 114, 3, 34, 2, 108, 89, 47, 2, 40, 34, 0, 115, 116, 101, 8, 2, 114, 101, 110, 100, 3, 34, 2, 108, 89, 47, 116,
-			0, 103, 105, 109, 101, 110, 2, 116, 97, 21, 3, 34, 2, 108, 136, 2, 37, 65, 2, 108, 50, 0, 103, 117, 2, 108, 17, 65, 3, 34,
-			2, 108, 136, 2, 118, 0, 103, 2, 104, 111, 101, 107, 105, 103, 3, 34, 2, 112, 136, 0, 2, 112, 114, 111, 100, 117, 3, 34, 2, 116,
-			0, 112, 101, 114, 2, 107, 117, 115, 3, 34, 2, 116, 48, 13, 34, 0, 108, 105, 195, 171, 102, 3, 34, 2, 116, 55, 2, 37, 108, 83,
-			0, 100, 101, 2, 114, 121, 3, 34, 2, 116, 72, 13, 0, 101, 108, 1, 17, 65, 10, 2, 32, 3, 34, 6, 116, 55, 0, 108, 101, 1,
-			10, 2, 32, 3, 34, 6, 116, 55, 13, 0, 4, 1, 17, 67, 2, 103, 97, 116, 3, 34, 13, 0, 2, 98, 101, 108, 0, 2, 100, 97,
-			107, 17, 67, 0, 2, 102, 114, 101, 105, 110, 0, 2, 103, 101, 101, 114, 0, 2, 103, 114, 101, 115, 25, 0, 2, 103, 114, 111, 101, 112,
-			0, 2, 107, 114, 117, 0, 2, 108, 105, 101, 107, 0, 2, 110, 17, 65, 0, 2, 112, 108, 105, 101, 107, 0, 2, 115, 101, 110, 115, 17,
-			65, 0, 2, 115, 101, 115, 115, 105, 101, 0, 2, 115, 112, 111, 110, 0, 2, 116, 111, 0, 8, 2, 108, 97, 0, 8, 2, 115, 112, 121,
-			116, 0, 8, 2, 115, 116, 97, 110, 116, 0, 116, 105, 2, 114, 101, 3, 34, 13, 47, 13, 0, 112, 117, 98, 108, 105, 2, 107, 3, 34,
-			13, 48, 2, 111, 71, 55, 2, 37, 0, 112, 117, 98, 108, 105, 101, 107, 3, 34, 13, 48, 2, 111, 71, 55, 37, 49, 0, 4, 107, 108,
-			97, 2, 109, 17, 65, 3, 34, 13, 49, 55, 35, 0, 107, 108, 97, 2, 109, 101, 101, 114, 0, 107, 108, 97, 109, 101, 3, 34, 13, 49,
-			55, 115, 65, 13, 0, 110, 101, 1, 111, 3, 34, 13, 50, 13, 0, 110, 111, 110, 115, 3, 34, 13, 50, 135, 50, 89, 0, 4, 108, 101,
-			2, 103, 17, 65, 3, 34, 13, 55, 13, 0, 108, 101, 2, 118, 97, 110, 0, 108, 105, 2, 103, 105, 0, 108, 97, 115, 101, 3, 34, 13,
-			55, 115, 89, 13, 0, 100, 101, 110, 2, 17, 65, 17, 67, 17, 65, 3, 34, 13, 72, 13, 50, 6, 0, 100, 101, 110, 101, 101, 114, 3,
-			34, 13, 72, 13, 50, 6, 116, 34, 0, 102, 111, 114, 2, 109, 3, 34, 13, 83, 2, 110, 34, 0, 102, 101, 114, 101, 110, 2, 100, 17,
-			65, 3, 34, 13, 83, 13, 34, 108, 50, 0, 119, 111, 108, 119, 101, 114, 3, 34, 13, 84, 6, 110, 55, 84, 13, 34, 0, 115, 101, 114,
-			119, 101, 3, 34, 13, 88, 6, 112, 34, 84, 13, 0, 4, 115, 105, 2, 100, 101, 110, 3, 34, 13, 89, 13, 0, 115, 105, 2, 116, 17,
-			65, 0, 115, 101, 114, 2, 118, 3, 34, 13, 89, 13, 34, 0, 115, 112, 101, 107, 2, 116, 101, 101, 114, 3, 34, 13, 89, 48, 2, 108,
-			49, 0, 115, 112, 101, 107, 3, 34, 13, 89, 48, 108, 49, 0, 115, 101, 112, 3, 34, 13, 89, 108, 48, 0, 115, 101, 115, 2, 32, 3,
-			34, 13, 89, 108, 89, 0, 115, 117, 108, 2, 116, 17, 65, 3, 34, 13, 89, 111, 55, 6, 0, 103, 105, 109, 101, 2, 32, 3, 34, 13,
-			90, 37, 12, 65, 0, 103, 2, 105, 115, 116, 3, 34, 13, 136, 0, 4, 103, 105, 2, 109, 101, 110, 116, 3, 34, 13, 136, 13, 0, 103,
-			105, 2, 115, 115, 101, 117, 17, 67, 0, 103, 108, 101, 2, 109, 101, 110, 116, 3, 34, 13, 136, 55, 13, 0, 103, 101, 114, 2, 17, 65,
-			3, 34, 13, 136, 116, 34, 0, 4, 1, 17, 67, 2, 110, 32, 3, 34, 108, 0, 1, 17, 67, 2, 110, 110, 101, 32, 0, 1, 101, 100,
-			114, 101, 112, 2, 110, 0, 116, 105, 110, 97, 3, 34, 108, 47, 37, 50, 35, 0, 112, 101, 116, 3, 34, 108, 48, 13, 47, 0, 107, 111,
-			114, 100, 3, 34, 108, 49, 2, 110, 34, 47, 0, 99, 99, 101, 3, 34, 108, 49, 37, 0, 109, 2, 32, 3, 34, 108, 65, 0, 103, 103,
-			97, 101, 3, 34, 108, 81, 123, 0, 103, 3, 34, 112, 136, 0, 103, 118, 101, 114, 100, 105, 103, 3, 34, 112, 136, 83, 6, 112, 34, 72,
-			13, 136, 0, 114, 105, 110, 103, 1, 10, 2, 32, 3, 34, 116, 34, 13, 68, 0, 107, 101, 2, 110, 17, 65, 3, 34, 116, 49, 13, 0,
-			4, 100, 101, 1, 115, 3, 34, 116, 72, 13, 0, 100, 101, 8, 2, 17, 67, 0, 100, 101, 108, 8, 3, 34, 116, 72, 13, 55, 0, 7,
-			6, 115, 101, 0, 110, 105, 111, 114, 2, 105, 116, 101, 105, 3, 89, 2, 37, 12, 50, 2, 37, 2, 110, 34, 0, 4, 114, 101, 2, 109,
-			111, 110, 105, 3, 89, 2, 108, 34, 13, 0, 114, 101, 2, 110, 97, 100, 101, 0, 114, 111, 116, 111, 2, 110, 105, 3, 89, 2, 108, 34,
-			13, 47, 2, 40, 0, 107, 117, 2, 108, 3, 89, 2, 108, 49, 2, 118, 0, 107, 119, 101, 2, 115, 116, 114, 17, 65, 3, 89, 2, 108,
-			49, 58, 13, 0, 107, 115, 2, 116, 97, 110, 116, 3, 89, 2, 108, 49, 89, 0, 107, 115, 116, 101, 2, 116, 3, 89, 2, 108, 49, 89,
-			47, 108, 0, 4, 110, 2, 115, 111, 114, 105, 101, 3, 89, 2, 108, 50, 0, 110, 2, 115, 117, 117, 114, 0, 110, 8, 2, 116, 114, 97,
-			21, 0, 110, 116, 105, 2, 109, 101, 110, 116, 3, 89, 2, 108, 50, 47, 2, 37, 0, 108, 105, 2, 98, 97, 3, 89, 2, 108, 55, 2,
-			37, 0, 109, 105, 2, 110, 97, 3, 89, 2, 108, 65, 2, 37, 0, 2, 108, 108, 105, 110, 3, 89, 2, 112, 6, 0, 108, 108, 111, 2,
-			102, 97, 3, 89, 2, 112, 55, 13, 0, 108, 100, 101, 114, 2, 121, 3, 89, 2, 112, 55, 72, 13, 34, 0, 108, 102, 2, 115, 116, 97,
-			110, 3, 89, 2, 112, 55, 83, 0, 108, 97, 2, 107, 97, 110, 116, 3, 89, 2, 116, 55, 13, 0, 105, 2, 115, 111, 101, 110, 3, 89,
-			2, 123, 0, 108, 1, 21, 2, 119, 105, 103, 3, 89, 6, 112, 55, 0, 108, 108, 105, 103, 1, 21, 3, 89, 6, 112, 55, 13, 136, 0,
-			108, 101, 1, 10, 2, 32, 3, 89, 6, 116, 55, 13, 0, 110, 105, 111, 114, 8, 3, 89, 7, 37, 12, 50, 37, 13, 34, 0, 107, 111,
-			1, 21, 2, 110, 111, 21, 3, 89, 10, 2, 108, 49, 2, 40, 0, 4, 2, 32, 3, 89, 13, 0, 2, 100, 117, 107, 0, 2, 107, 111,
-			0, 2, 107, 117, 0, 2, 114, 111, 101, 116, 0, 8, 2, 100, 101, 110, 116, 0, 8, 2, 100, 111, 111, 115, 0, 8, 2, 107, 114, 101,
-			0, 8, 2, 110, 105, 21, 0, 8, 2, 114, 105, 110, 103, 0, 8, 32, 2, 32, 0, 4, 114, 2, 115, 97, 110, 116, 3, 89, 13, 34,
-			0, 114, 2, 118, 101, 116, 0, 114, 8, 2, 101, 21, 0, 107, 114, 101, 2, 116, 97, 3, 89, 13, 49, 34, 13, 0, 107, 114, 101, 116,
-			97, 114, 105, 2, 17, 65, 3, 89, 13, 49, 34, 13, 47, 2, 35, 34, 2, 37, 0, 108, 101, 1, 111, 110, 2, 32, 3, 89, 13, 55,
-			13, 0, 108, 101, 107, 2, 17, 67, 17, 65, 3, 89, 13, 55, 108, 49, 0, 108, 111, 110, 8, 2, 115, 17, 67, 3, 89, 13, 55, 135,
-			50, 0, 109, 101, 8, 2, 17, 67, 116, 3, 89, 13, 65, 108, 0, 100, 97, 110, 8, 3, 89, 13, 72, 35, 50, 0, 100, 101, 2, 114,
-			105, 110, 103, 3, 89, 13, 72, 116, 0, 100, 101, 101, 114, 3, 89, 13, 72, 116, 34, 0, 107, 115, 1, 21, 2, 32, 3, 89, 108, 49,
-			89, 0, 110, 116, 101, 114, 3, 89, 108, 50, 47, 13, 34, 0, 110, 100, 105, 110, 103, 2, 32, 3, 89, 108, 50, 72, 13, 68, 0, 4,
-			109, 105, 8, 2, 17, 67, 3, 89, 108, 65, 37, 0, 109, 105, 8, 2, 32, 0, 115, 2, 117, 117, 114, 3, 89, 108, 89, 10, 0, 4,
-			1, 100, 101, 111, 108, 98, 2, 108, 3, 89, 112, 0, 1, 101, 105, 115, 105, 108, 111, 112, 2, 108, 25, 0, 1, 101, 108, 108, 105, 97,
-			114, 98, 2, 108, 0, 1, 103, 110, 105, 110, 117, 101, 104, 2, 108, 25, 0, 1, 109, 97, 97, 103, 103, 105, 108, 2, 108, 25, 0, 1,
-			109, 97, 116, 115, 2, 108, 0, 2, 103, 103, 17, 65, 0, 108, 108, 101, 2, 116, 106, 105, 101, 3, 89, 112, 55, 37, 0, 1, 17, 67,
-			21, 2, 114, 101, 32, 3, 89, 116, 0, 116, 101, 2, 110, 101, 32, 3, 89, 116, 47, 13, 0, 116, 101, 108, 2, 25, 3, 89, 116, 47,
-			13, 55, 0, 107, 101, 114, 3, 89, 116, 49, 13, 34, 0, 110, 105, 110, 103, 3, 89, 116, 50, 13, 68, 0, 110, 117, 8, 2, 17, 67,
-			17, 67, 3, 89, 116, 50, 118, 0, 109, 101, 108, 2, 21, 3, 89, 116, 65, 13, 55, 0, 98, 114, 97, 8, 3, 89, 116, 71, 34, 35,
-			0, 100, 101, 8, 3, 89, 116, 72, 13, 0, 7, 6, 115, 116, 0, 105, 101, 115, 1, 21, 3, 8, 89, 47, 2, 37, 89, 0, 101, 109,
-			112, 101, 114, 97, 109, 101, 1, 21, 3, 89, 10, 47, 108, 65, 48, 14, 34, 2, 35, 65, 108, 0, 4, 97, 2, 116, 117, 116, 17, 65,
-			3, 89, 47, 2, 35, 0, 97, 8, 2, 98, 105, 21, 0, 97, 110, 2, 100, 97, 3, 89, 47, 2, 35, 50, 0, 4, 97, 110, 100, 2,
-			104, 111, 117, 100, 101, 3, 89, 47, 2, 35, 50, 47, 0, 97, 110, 100, 2, 118, 97, 115, 116, 105, 0, 97, 110, 100, 101, 114, 100, 2,
-			21, 3, 89, 47, 2, 35, 50, 72, 13, 34, 47, 0, 97, 108, 97, 103, 2, 17, 67, 105, 101, 116, 3, 89, 47, 2, 35, 55, 2, 35,
-			136, 0, 105, 101, 2, 98, 101, 117, 3, 89, 47, 2, 37, 0, 105, 108, 101, 2, 116, 3, 89, 47, 2, 37, 55, 108, 0, 101, 8, 2,
-			114, 105, 3, 89, 47, 2, 108, 0, 101, 108, 108, 101, 110, 2, 98, 111, 115, 3, 89, 47, 2, 112, 55, 13, 65, 0, 101, 114, 101, 111,
-			2, 116, 105, 3, 89, 47, 2, 116, 34, 2, 37, 2, 40, 0, 101, 114, 111, 2, 195, 175, 101, 100, 3, 89, 47, 2, 116, 34, 2, 40,
-			38, 0, 117, 2, 100, 101, 3, 89, 47, 2, 118, 0, 117, 117, 114, 100, 101, 114, 101, 8, 2, 25, 25, 3, 89, 47, 2, 118, 34, 72,
-			13, 34, 108, 0, 117, 100, 101, 110, 2, 116, 3, 89, 47, 2, 118, 72, 108, 50, 0, 111, 117, 116, 2, 109, 111, 101, 100, 105, 3, 89,
-			47, 2, 120, 47, 0, 105, 101, 107, 1, 26, 21, 3, 89, 47, 6, 37, 49, 0, 101, 1, 21, 2, 108, 108, 101, 110, 3, 89, 47, 6,
-			112, 0, 101, 114, 114, 101, 116, 106, 105, 101, 3, 89, 47, 6, 112, 34, 37, 80, 37, 0, 97, 116, 105, 101, 115, 3, 89, 47, 6, 115,
-			47, 37, 89, 0, 121, 102, 103, 101, 2, 21, 14, 128, 132, 134, 3, 89, 47, 6, 123, 83, 136, 13, 0, 97, 97, 116, 8, 2, 115, 3,
-			89, 47, 7, 115, 47, 0, 4, 101, 1, 17, 67, 21, 2, 109, 97, 110, 3, 89, 47, 13, 0, 101, 1, 21, 2, 108, 121, 25, 0, 101,
-			1, 32, 15, 0, 101, 1, 114, 170, 195, 2, 32, 14, 128, 128, 131, 0, 101, 2, 108, 97, 97, 110, 0, 101, 2, 108, 97, 110, 100, 0,
-			101, 2, 108, 108, 97, 115, 105, 101, 0, 101, 2, 109, 97, 97, 116, 0, 101, 2, 109, 97, 114, 107, 0, 101, 8, 2, 102, 97, 97, 110,
-			0, 105, 2, 112, 117, 108, 17, 65, 0, 101, 114, 114, 101, 105, 3, 89, 47, 13, 34, 6, 123, 0, 101, 110, 101, 1, 105, 114, 104, 99,
-			2, 32, 3, 89, 47, 13, 50, 13, 0, 4, 101, 108, 1, 21, 2, 105, 17, 67, 3, 89, 47, 13, 55, 0, 101, 108, 1, 21, 2, 111,
-			0, 101, 108, 1, 110, 117, 107, 2, 100, 0, 101, 108, 1, 111, 112, 97, 0, 101, 108, 1, 114, 111, 119, 0, 101, 108, 8, 101, 110, 0,
-			105, 108, 2, 115, 119, 121, 0, 101, 108, 105, 107, 1, 21, 3, 89, 47, 13, 55, 13, 49, 0, 105, 109, 117, 2, 108, 17, 65, 3, 89,
-			47, 13, 65, 2, 118, 0, 114, 97, 116, 101, 103, 105, 101, 3, 89, 47, 34, 2, 35, 47, 13, 136, 37, 0, 114, 97, 116, 101, 103, 105,
-			101, 115, 3, 89, 47, 34, 2, 35, 47, 116, 136, 37, 89, 0, 114, 97, 98, 2, 111, 116, 111, 109, 105, 3, 89, 47, 34, 2, 35, 71,
-			0, 114, 97, 102, 2, 114, 101, 103, 116, 101, 3, 89, 47, 34, 2, 35, 83, 0, 114, 117, 107, 116, 2, 117, 3, 89, 47, 34, 2, 111,
-			49, 47, 0, 114, 117, 107, 116, 117, 2, 114, 101, 114, 17, 65, 110, 3, 89, 47, 34, 2, 111, 49, 47, 2, 118, 0, 114, 105, 103, 2,
-			110, 105, 101, 110, 3, 89, 47, 34, 13, 136, 0, 4, 114, 97, 110, 100, 2, 111, 3, 89, 47, 34, 35, 50, 47, 10, 0, 114, 97, 110,
-			100, 8, 2, 101, 114, 17, 67, 0, 114, 101, 115, 2, 32, 3, 89, 47, 34, 108, 89, 0, 114, 97, 97, 116, 1, 21, 2, 32, 14, 129,
-			128, 134, 3, 89, 47, 34, 115, 47, 0, 114, 101, 107, 101, 3, 89, 47, 34, 116, 49, 13, 0, 97, 112, 8, 2, 17, 65, 3, 89, 47,
-			35, 48, 10, 0, 97, 109, 105, 110, 97, 3, 89, 47, 35, 65, 2, 37, 50, 2, 35, 0, 101, 2, 109, 3, 89, 47, 108, 0, 101, 110,
-			2, 115, 105, 108, 3, 89, 47, 108, 50, 0, 101, 109, 112, 101, 108, 3, 89, 47, 108, 65, 48, 13, 55, 0, 111, 114, 109, 3, 89, 47,
-			110, 34, 14, 65, 0, 111, 107, 2, 17, 65, 3, 89, 47, 110, 49, 19, 0, 111, 102, 2, 111, 3, 89, 47, 110, 83, 19, 0, 4, 101,
-			1, 100, 110, 2, 114, 3, 89, 47, 112, 0, 101, 1, 101, 101, 115, 2, 114, 0, 101, 1, 101, 105, 112, 101, 115, 2, 114, 0, 101, 1,
-			101, 105, 115, 105, 118, 2, 114, 0, 101, 1, 101, 114, 17, 65, 109, 2, 114, 0, 101, 1, 101, 119, 101, 115, 2, 114, 0, 101, 1, 103,
-			114, 101, 119, 100, 2, 114, 0, 101, 1, 107, 99, 111, 114, 2, 114, 0, 101, 1, 108, 97, 97, 119, 100, 2, 114, 0, 101, 1, 108, 101,
-			17, 67, 11, 2, 114, 0, 101, 1, 108, 111, 111, 112, 2, 114, 0, 101, 1, 109, 97, 97, 115, 2, 108, 108, 101, 110, 0, 101, 1, 109,
-			108, 105, 102, 2, 114, 0, 101, 1, 110, 101, 101, 116, 2, 108, 108, 101, 110, 0, 101, 1, 112, 111, 112, 2, 114, 0, 101, 1, 114, 101,
-			112, 117, 115, 2, 114, 0, 101, 1, 116, 101, 17, 67, 2, 114, 25, 0, 101, 1, 116, 110, 101, 114, 112, 2, 114, 0, 101, 2, 108, 0,
-			4, 101, 114, 1, 103, 101, 119, 2, 119, 101, 3, 89, 47, 112, 34, 0, 101, 114, 2, 45, 104, 111, 116, 101, 108, 0, 101, 114, 2, 104,
-			111, 116, 101, 108, 0, 101, 114, 2, 119, 101, 110, 100, 0, 101, 114, 8, 0, 101, 114, 114, 101, 3, 89, 47, 112, 34, 13, 0, 101, 114,
-			107, 2, 32, 3, 89, 47, 112, 34, 49, 0, 101, 114, 107, 116, 1, 21, 3, 89, 47, 112, 34, 49, 47, 0, 101, 114, 102, 2, 25, 3,
-			89, 47, 112, 34, 83, 0, 101, 114, 119, 101, 110, 115, 2, 21, 3, 89, 47, 112, 34, 84, 13, 50, 89, 10, 0, 101, 108, 101, 1, 10,
-			2, 102, 111, 3, 89, 47, 112, 55, 13, 0, 4, 101, 114, 1, 107, 105, 119, 107, 3, 89, 47, 113, 34, 0, 101, 114, 1, 107, 111, 98,
-			2, 116, 0, 101, 114, 1, 107, 114, 97, 118, 2, 116, 106, 105, 101, 0, 101, 114, 1, 112, 97, 97, 107, 115, 2, 116, 106, 105, 101, 0,
-			97, 2, 100, 105, 111, 110, 3, 89, 47, 115, 0, 97, 112, 101, 108, 3, 89, 47, 115, 48, 13, 55, 0, 101, 2, 107, 101, 32, 3, 89,
-			47, 116, 0, 101, 107, 101, 2, 108, 105, 103, 3, 89, 47, 116, 49, 13, 0, 101, 107, 101, 114, 1, 17, 67, 3, 89, 47, 116, 49, 13,
-			34, 0, 101, 110, 101, 2, 32, 3, 89, 47, 116, 50, 13, 0, 101, 108, 101, 2, 32, 3, 89, 47, 116, 55, 13, 0, 101, 108, 101, 114,
-			3, 89, 47, 116, 55, 13, 34, 0, 4, 101, 100, 101, 2, 17, 67, 3, 89, 47, 116, 72, 13, 0, 101, 100, 101, 2, 32, 0, 101, 100,
-			105, 110, 103, 3, 89, 47, 116, 72, 13, 68, 0, 101, 119, 101, 108, 3, 89, 47, 116, 84, 13, 55, 0, 111, 116, 101, 110, 101, 3, 89,
-			47, 117, 47, 13, 50, 13, 0, 111, 107, 2, 101, 3, 89, 47, 117, 49, 0, 7, 6, 116, 101, 0, 109, 112, 101, 114, 97, 3, 4, 47,
-			108, 65, 48, 14, 34, 2, 35, 0, 2, 111, 17, 67, 3, 47, 2, 37, 2, 0, 97, 2, 116, 114, 97, 3, 47, 2, 37, 2, 35, 0,
-			97, 116, 101, 114, 3, 47, 2, 37, 115, 47, 13, 34, 0, 114, 97, 2, 112, 17, 65, 3, 47, 2, 108, 34, 2, 35, 0, 114, 97, 1,
-			111, 2, 112, 17, 65, 3, 47, 2, 108, 34, 2, 35, 6, 0, 114, 114, 111, 114, 2, 105, 115, 3, 47, 2, 108, 34, 2, 40, 34, 0,
-			4, 107, 115, 2, 116, 105, 101, 108, 3, 47, 2, 108, 49, 89, 0, 107, 115, 8, 2, 116, 117, 0, 4, 110, 2, 111, 116, 111, 109, 105,
-			101, 3, 47, 2, 108, 50, 0, 110, 2, 116, 97, 107, 101, 108, 0, 110, 2, 116, 111, 111, 110, 0, 110, 100, 101, 110, 115, 3, 47, 2,
-			108, 50, 72, 134, 50, 89, 0, 115, 111, 117, 2, 114, 105, 101, 3, 47, 2, 108, 89, 2, 40, 0, 4, 114, 2, 109, 105, 101, 116, 3,
-			47, 2, 112, 34, 0, 114, 2, 109, 121, 110, 0, 114, 8, 2, 115, 0, 114, 97, 97, 114, 100, 101, 8, 3, 47, 2, 112, 34, 19, 115,
-			34, 72, 13, 0, 114, 112, 101, 110, 2, 116, 121, 110, 3, 47, 2, 112, 34, 48, 13, 50, 0, 114, 109, 105, 2, 110, 97, 21, 3, 47,
-			2, 112, 34, 65, 2, 37, 0, 108, 101, 8, 2, 17, 67, 3, 47, 2, 112, 55, 13, 0, 4, 101, 110, 2, 115, 116, 114, 121, 100, 3,
-			47, 2, 116, 50, 0, 101, 110, 2, 119, 111, 111, 114, 0, 101, 110, 2, 111, 111, 114, 103, 101, 115, 3, 47, 2, 116, 50, 10, 0, 101,
-			110, 115, 2, 119, 111, 111, 114, 3, 47, 2, 116, 50, 89, 0, 4, 1, 17, 67, 21, 2, 114, 103, 101, 110, 100, 3, 47, 6, 112, 0,
-			2, 114, 103, 101, 110, 100, 0, 114, 110, 2, 101, 32, 3, 47, 6, 112, 34, 50, 0, 114, 110, 2, 25, 3, 47, 6, 113, 34, 14, 50,
-			0, 4, 1, 97, 17, 67, 2, 114, 105, 110, 103, 3, 47, 6, 116, 0, 1, 107, 2, 114, 105, 110, 103, 0, 4, 114, 101, 110, 100, 101,
-			1, 101, 112, 2, 32, 3, 47, 6, 116, 34, 13, 50, 72, 13, 0, 114, 101, 110, 100, 101, 1, 105, 2, 32, 0, 114, 101, 110, 100, 101,
-			1, 107, 101, 2, 32, 0, 114, 101, 110, 100, 101, 1, 108, 117, 2, 32, 0, 114, 101, 110, 100, 101, 1, 114, 101, 118, 2, 32, 0, 114,
-			101, 110, 100, 101, 1, 115, 97, 2, 32, 0, 108, 101, 1, 21, 2, 32, 3, 47, 6, 116, 55, 13, 0, 115, 101, 2, 32, 3, 47, 6,
-			116, 89, 13, 0, 115, 101, 115, 2, 32, 3, 47, 6, 116, 89, 13, 89, 0, 4, 117, 114, 1, 17, 65, 3, 47, 6, 128, 34, 0, 117,
-			114, 1, 107, 0, 101, 110, 2, 97, 114, 103, 117, 3, 47, 7, 116, 50, 0, 4, 1, 17, 65, 2, 108, 105, 110, 103, 3, 47, 13, 0,
-			1, 17, 65, 10, 2, 108, 112, 0, 1, 17, 65, 17, 67, 2, 108, 101, 110, 100, 0, 1, 17, 65, 21, 2, 103, 101, 17, 67, 0, 1,
-			17, 67, 21, 2, 17, 67, 0, 1, 17, 67, 21, 2, 109, 97, 114, 107, 0, 1, 21, 2, 111, 112, 0, 1, 97, 119, 2, 114, 105, 110,
-			103, 0, 1, 101, 105, 110, 2, 109, 105, 110, 0, 2, 32, 0, 2, 97, 97, 0, 2, 100, 111, 109, 0, 2, 111, 110, 100, 101, 114, 0,
-			2, 111, 111, 0, 2, 114, 114, 17, 65, 0, 8, 2, 98, 111, 119, 101, 0, 8, 2, 110, 111, 0, 8, 2, 119, 101, 0, 4, 114, 1,
-			10, 2, 116, 17, 65, 21, 3, 47, 13, 34, 0, 114, 1, 21, 2, 116, 121, 100, 0, 114, 1, 97, 119, 2, 116, 0, 114, 8, 2, 108,
-			0, 114, 8, 2, 110, 17, 65, 0, 114, 8, 2, 119, 0, 114, 105, 101, 1, 110, 3, 47, 13, 34, 6, 37, 0, 114, 117, 103, 103, 101,
-			101, 2, 12, 3, 47, 13, 34, 6, 111, 136, 116, 0, 4, 114, 100, 1, 10, 2, 32, 3, 47, 13, 34, 47, 0, 114, 116, 1, 10, 2,
-			114, 0, 114, 116, 106, 105, 101, 1, 10, 3, 47, 13, 34, 49, 37, 0, 114, 109, 101, 115, 1, 10, 3, 47, 13, 34, 65, 108, 89, 0,
-			114, 101, 103, 8, 3, 47, 13, 34, 112, 136, 0, 107, 111, 114, 3, 47, 13, 49, 110, 34, 0, 107, 101, 114, 101, 8, 3, 47, 13, 49,
-			116, 34, 13, 0, 4, 110, 1, 21, 2, 98, 97, 99, 104, 3, 47, 13, 50, 0, 110, 1, 21, 2, 100, 101, 114, 119, 121, 25, 0, 110,
-			105, 115, 3, 47, 13, 50, 109, 89, 0, 110, 97, 97, 114, 3, 47, 13, 50, 115, 34, 0, 4, 108, 1, 10, 2, 32, 3, 47, 13, 55,
-			0, 108, 1, 21, 2, 111, 0, 108, 1, 117, 101, 108, 115, 0, 108, 116, 106, 105, 101, 3, 47, 13, 55, 49, 37, 0, 108, 115, 1, 10,
-			2, 32, 3, 47, 13, 55, 89, 0, 108, 101, 117, 114, 3, 47, 13, 55, 128, 34, 0, 118, 111, 114, 101, 3, 47, 13, 83, 6, 117, 34,
-			13, 0, 118, 101, 114, 8, 2, 21, 3, 47, 13, 83, 13, 34, 0, 115, 97, 109, 101, 3, 47, 13, 89, 115, 65, 13, 0, 103, 101, 8,
-			2, 17, 67, 17, 65, 3, 47, 13, 136, 13, 0, 114, 117, 103, 8, 2, 14, 128, 132, 133, 3, 47, 14, 34, 6, 111, 136, 0, 114, 117,
-			103, 103, 101, 8, 2, 21, 14, 128, 132, 135, 3, 47, 14, 34, 6, 111, 136, 13, 0, 1, 17, 67, 2, 116, 106, 105, 101, 3, 47, 37,
-			0, 2, 107, 107, 105, 101, 12, 3, 47, 108, 0, 114, 114, 105, 195, 171, 114, 3, 47, 108, 34, 37, 13, 34, 0, 107, 115, 2, 12, 3,
-			47, 108, 49, 89, 0, 110, 2, 100, 101, 114, 3, 47, 108, 50, 0, 110, 110, 105, 115, 3, 47, 108, 50, 13, 89, 0, 110, 116, 2, 32,
-			3, 47, 108, 50, 47, 0, 110, 116, 101, 2, 32, 3, 47, 108, 50, 47, 13, 0, 109, 112, 111, 2, 32, 3, 47, 108, 65, 48, 2, 40,
-			0, 109, 112, 101, 114, 3, 47, 108, 65, 48, 13, 34, 0, 109, 112, 101, 108, 3, 47, 108, 65, 48, 13, 55, 0, 4, 1, 17, 67, 21,
-			2, 103, 110, 3, 47, 112, 0, 1, 17, 67, 21, 2, 107, 32, 0, 1, 17, 67, 21, 2, 108, 98, 111, 114, 100, 0, 1, 17, 67, 21,
-			2, 108, 108, 0, 1, 17, 67, 21, 2, 110, 107, 0, 2, 108, 0, 114, 109, 1, 21, 2, 32, 3, 47, 112, 34, 13, 65, 0, 114, 114,
-			97, 2, 99, 3, 47, 112, 34, 35, 0, 114, 116, 1, 10, 3, 47, 112, 34, 47, 0, 114, 109, 101, 1, 21, 2, 32, 3, 47, 112, 34,
-			65, 13, 0, 114, 116, 105, 8, 2, 17, 65, 25, 3, 47, 112, 34, 91, 57, 0, 108, 1, 101, 103, 2, 32, 3, 47, 112, 55, 0, 4,
-			108, 101, 1, 21, 2, 102, 111, 3, 47, 112, 55, 13, 0, 108, 101, 1, 21, 2, 103, 114, 97, 0, 108, 101, 107, 115, 3, 47, 112, 55,
-			108, 49, 89, 0, 4, 114, 116, 1, 115, 10, 2, 97, 97, 110, 3, 47, 113, 34, 47, 0, 114, 116, 1, 115, 10, 2, 101, 32, 0, 4,
-			1, 21, 2, 102, 105, 101, 32, 3, 47, 116, 0, 1, 21, 2, 108, 101, 114, 0, 1, 110, 105, 115, 2, 116, 105, 0, 1, 110, 121, 109,
-			2, 114, 105, 110, 103, 0, 1, 115, 2, 107, 105, 110, 103, 0, 4, 114, 105, 110, 103, 1, 115, 101, 108, 111, 109, 3, 47, 116, 34, 13,
-			68, 0, 114, 105, 110, 103, 8, 0, 4, 107, 1, 21, 2, 101, 110, 3, 47, 116, 49, 0, 107, 1, 112, 97, 2, 17, 65, 0, 107, 101,
-			110, 2, 17, 65, 3, 47, 116, 49, 13, 50, 0, 108, 101, 114, 8, 3, 47, 116, 55, 13, 34, 0, 119, 101, 2, 32, 3, 47, 116, 84,
-			13, 0, 119, 101, 110, 115, 8, 3, 47, 116, 84, 13, 50, 89, 0, 115, 105, 2, 115, 3, 47, 116, 89, 13, 0, 105, 107, 101, 110, 3,
-			47, 123, 49, 13, 50, 0, 7, 6, 116, 114, 0, 101, 107, 101, 110, 3, 47, 10, 34, 116, 49, 13, 50, 0, 97, 2, 106, 101, 107, 3,
-			47, 34, 2, 35, 0, 97, 112, 2, 115, 111, 101, 3, 47, 34, 2, 35, 48, 0, 97, 107, 8, 2, 116, 97, 3, 47, 34, 2, 35, 49,
-			0, 4, 97, 110, 115, 8, 2, 21, 14, 128, 132, 133, 3, 47, 34, 2, 35, 50, 89, 0, 97, 110, 115, 8, 2, 97, 107, 115, 105, 101,
-			0, 97, 110, 115, 101, 110, 100, 101, 110, 116, 2, 17, 65, 3, 47, 34, 2, 35, 50, 89, 2, 108, 50, 72, 2, 108, 50, 47, 0, 97,
-			110, 115, 105, 116, 111, 3, 47, 34, 2, 35, 50, 89, 37, 47, 2, 40, 0, 97, 110, 115, 112, 97, 2, 114, 97, 110, 116, 3, 47, 34,
-			2, 35, 50, 89, 48, 13, 0, 97, 110, 115, 112, 111, 114, 116, 3, 47, 34, 2, 35, 50, 89, 48, 110, 34, 47, 0, 97, 110, 115, 105,
-			115, 116, 111, 114, 3, 47, 34, 2, 35, 50, 89, 109, 89, 47, 13, 34, 0, 97, 100, 105, 2, 115, 105, 3, 47, 34, 2, 35, 72, 37,
-			0, 97, 103, 2, 101, 100, 3, 47, 34, 2, 35, 136, 0, 105, 2, 111, 109, 102, 3, 47, 34, 2, 37, 0, 105, 111, 109, 102, 2, 97,
-			110, 116, 3, 47, 34, 2, 37, 2, 110, 65, 83, 0, 4, 111, 2, 116, 115, 101, 101, 114, 3, 47, 34, 2, 110, 0, 111, 2, 116, 115,
-			101, 114, 105, 110, 103, 0, 4, 111, 109, 8, 2, 98, 3, 47, 34, 2, 110, 65, 0, 111, 109, 8, 2, 112, 101, 116, 0, 111, 103, 108,
-			111, 2, 100, 105, 101, 3, 47, 34, 2, 110, 136, 55, 2, 40, 0, 117, 2, 115, 116, 101, 101, 3, 47, 34, 2, 111, 0, 97, 103, 101,
-			2, 111, 116, 111, 109, 105, 3, 47, 34, 2, 115, 136, 2, 37, 0, 105, 115, 101, 1, 21, 2, 32, 3, 47, 34, 6, 37, 89, 13, 0,
-			105, 115, 101, 115, 1, 21, 2, 32, 3, 47, 34, 6, 37, 89, 13, 89, 0, 101, 101, 114, 1, 21, 3, 47, 34, 6, 116, 34, 0, 111,
-			117, 115, 115, 101, 97, 117, 3, 47, 34, 7, 40, 12, 89, 120, 0, 105, 8, 2, 98, 117, 3, 47, 34, 13, 0, 105, 108, 2, 106, 111,
-			101, 110, 3, 47, 34, 13, 55, 0, 105, 98, 117, 8, 2, 110, 97, 3, 47, 34, 13, 71, 2, 118, 0, 97, 112, 2, 111, 114, 114, 3,
-			47, 34, 35, 48, 10, 0, 97, 119, 2, 97, 3, 47, 34, 35, 84, 6, 0, 105, 111, 2, 32, 3, 47, 34, 37, 12, 40, 0, 101, 102,
-			2, 97, 102, 115, 3, 47, 34, 108, 83, 10, 0, 105, 118, 105, 97, 3, 47, 34, 109, 84, 37, 57, 2, 35, 0, 101, 2, 107, 3, 47,
-			34, 112, 0, 101, 107, 107, 101, 114, 3, 47, 34, 112, 49, 13, 34, 0, 97, 110, 115, 8, 2, 100, 97, 110, 115, 3, 47, 34, 115, 50,
-			89, 0, 101, 101, 114, 1, 21, 2, 17, 65, 3, 47, 34, 116, 34, 0, 101, 100, 105, 110, 103, 1, 10, 3, 47, 34, 116, 72, 13, 68,
-			0, 4, 117, 2, 112, 114, 111, 106, 101, 107, 3, 47, 34, 118, 0, 117, 2, 115, 112, 105, 101, 195, 171, 0, 117, 107, 2, 97, 97, 116,
-			115, 3, 47, 34, 118, 49, 0, 101, 110, 115, 2, 32, 3, 47, 34, 134, 50, 89, 0, 7, 6, 117, 105, 0, 116, 2, 100, 97, 103, 101,
-			110, 3, 2, 127, 0, 4, 116, 2, 98, 117, 110, 100, 3, 2, 127, 47, 0, 116, 2, 100, 114, 117, 107, 0, 116, 2, 104, 117, 105, 115,
-			105, 103, 0, 116, 2, 109, 117, 110, 116, 101, 110, 0, 116, 2, 115, 108, 117, 105, 116, 101, 110, 0, 116, 2, 115, 112, 97, 116, 116, 0,
-			116, 2, 115, 116, 101, 107, 101, 110, 0, 116, 2, 118, 111, 101, 114, 98, 97, 0, 116, 2, 118, 111, 101, 114, 105, 103, 0, 116, 2, 119,
-			105, 115, 98, 97, 0, 116, 2, 101, 101, 110, 3, 2, 127, 47, 10, 0, 116, 101, 101, 110, 2, 108, 111, 112, 3, 2, 127, 47, 10, 2,
-			116, 50, 0, 116, 109, 101, 2, 107, 97, 97, 114, 3, 2, 127, 47, 65, 13, 0, 116, 115, 116, 97, 97, 110, 2, 17, 67, 3, 2, 127,
-			47, 89, 47, 115, 50, 0, 116, 115, 112, 114, 101, 101, 107, 108, 3, 2, 127, 47, 89, 48, 34, 116, 49, 55, 0, 116, 115, 112, 97, 116,
-			108, 105, 107, 3, 2, 127, 47, 89, 48, 35, 47, 55, 13, 49, 0, 116, 115, 108, 117, 105, 116, 108, 105, 107, 3, 2, 127, 47, 89, 55,
-			127, 47, 55, 13, 49, 0, 116, 115, 111, 110, 100, 101, 114, 108, 105, 2, 107, 3, 2, 127, 47, 89, 110, 50, 13, 34, 55, 13, 0, 116,
-			101, 105, 110, 100, 101, 108, 105, 3, 2, 127, 47, 123, 50, 72, 13, 55, 13, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 6, 127, 47,
-			0, 116, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 127, 47, 136, 13, 0, 116, 103, 101, 101, 2, 12, 3, 6, 127, 47, 136, 116,
-			0, 4, 3, 127, 0, 2, 116, 106, 105, 101, 0, 101, 2, 17, 67, 3, 127, 13, 0, 4, 116, 2, 100, 114, 117, 107, 32, 24, 3, 127,
-			47, 0, 116, 2, 100, 114, 117, 107, 107, 105, 110, 103, 32, 0, 116, 2, 100, 114, 117, 107, 107, 105, 110, 103, 115, 0, 116, 2, 101, 101,
-			110, 108, 111, 111, 112, 3, 127, 47, 10, 0, 116, 101, 114, 3, 127, 47, 13, 34, 0, 116, 105, 110, 103, 3, 127, 47, 13, 68, 0, 116,
-			107, 101, 2, 110, 3, 127, 47, 49, 108, 0, 116, 115, 116, 97, 97, 110, 2, 114, 3, 127, 47, 89, 47, 115, 50, 0, 116, 103, 101, 119,
-			101, 114, 3, 127, 47, 136, 2, 116, 84, 13, 34, 0, 116, 103, 101, 119, 101, 114, 112, 3, 127, 47, 136, 13, 84, 112, 34, 48, 0, 116,
-			103, 101, 119, 101, 114, 107, 3, 127, 47, 136, 13, 84, 112, 34, 49, 0, 7, 6, 118, 101, 0, 4, 1, 21, 2, 32, 3, 21, 0, 115,
-			1, 17, 65, 2, 32, 0, 116, 101, 2, 114, 97, 3, 83, 2, 108, 47, 13, 0, 114, 116, 105, 2, 107, 97, 3, 83, 2, 112, 34, 47,
-			2, 37, 0, 4, 101, 108, 2, 100, 117, 105, 100, 3, 83, 2, 116, 55, 0, 101, 108, 2, 106, 97, 114, 0, 101, 108, 2, 115, 21, 21,
-			0, 114, 2, 107, 121, 107, 101, 114, 3, 83, 6, 113, 34, 0, 114, 103, 101, 115, 111, 103, 8, 3, 83, 6, 113, 34, 38, 136, 13, 89,
-			110, 136, 0, 114, 101, 110, 100, 2, 32, 3, 83, 6, 116, 34, 13, 50, 47, 0, 114, 101, 110, 100, 101, 3, 83, 6, 116, 34, 13, 50,
-			72, 13, 0, 114, 105, 110, 103, 3, 83, 6, 116, 34, 13, 68, 0, 108, 101, 3, 83, 6, 116, 55, 13, 0, 114, 115, 102, 8, 3, 83,
-			7, 112, 34, 89, 83, 0, 114, 2, 115, 112, 114, 105, 110, 103, 3, 83, 7, 113, 34, 0, 4, 114, 3, 83, 13, 34, 0, 114, 2, 102,
-			108, 101, 110, 17, 67, 0, 114, 2, 102, 114, 105, 115, 0, 114, 2, 118, 101, 108, 17, 65, 0, 114, 8, 2, 21, 14, 128, 132, 131, 0,
-			114, 97, 110, 116, 2, 119, 3, 83, 13, 34, 2, 35, 50, 47, 0, 114, 111, 110, 103, 101, 8, 2, 21, 14, 128, 132, 135, 3, 83, 13,
-			34, 6, 131, 68, 136, 13, 0, 4, 114, 97, 110, 116, 2, 119, 111, 111, 114, 100, 32, 3, 83, 13, 34, 10, 35, 50, 47, 0, 114, 97,
-			110, 116, 2, 119, 111, 111, 114, 100, 101, 32, 24, 0, 114, 101, 114, 2, 105, 110, 103, 3, 83, 13, 34, 10, 116, 34, 0, 114, 116, 101,
-			2, 108, 3, 83, 13, 34, 47, 112, 0, 114, 116, 101, 114, 2, 17, 65, 3, 83, 13, 34, 47, 116, 34, 0, 114, 108, 97, 110, 103, 115,
-			2, 97, 3, 83, 13, 34, 55, 6, 35, 68, 89, 0, 114, 98, 101, 116, 101, 3, 83, 13, 34, 71, 6, 116, 47, 13, 0, 114, 98, 121,
-			3, 83, 13, 34, 71, 123, 0, 4, 114, 102, 2, 105, 3, 83, 13, 34, 83, 0, 114, 102, 2, 114, 97, 97, 105, 0, 114, 102, 2, 114,
-			111, 109, 0, 114, 102, 8, 2, 108, 111, 117, 0, 114, 102, 8, 2, 111, 0, 114, 118, 101, 114, 115, 105, 110, 103, 3, 83, 13, 34, 83,
-			6, 112, 34, 89, 13, 68, 0, 114, 102, 121, 110, 3, 83, 13, 34, 83, 6, 123, 50, 0, 114, 115, 116, 101, 114, 1, 21, 2, 107, 3,
-			83, 13, 34, 89, 47, 112, 34, 0, 114, 111, 110, 100, 101, 114, 115, 116, 101, 2, 108, 3, 83, 13, 34, 110, 50, 13, 34, 89, 47, 6,
-			112, 0, 114, 103, 101, 116, 101, 3, 83, 13, 34, 136, 6, 116, 47, 13, 0, 114, 103, 101, 119, 101, 8, 3, 83, 13, 34, 136, 116, 84,
-			13, 0, 4, 110, 2, 100, 117, 115, 105, 101, 3, 83, 13, 50, 0, 110, 2, 121, 110, 0, 2, 115, 116, 3, 83, 108, 0, 116, 8, 2,
-			17, 65, 3, 83, 108, 47, 10, 0, 2, 108, 3, 83, 112, 0, 114, 2, 103, 101, 115, 105, 103, 3, 83, 112, 34, 0, 4, 114, 102, 3,
-			83, 112, 34, 83, 0, 114, 102, 2, 21, 0, 114, 119, 101, 2, 32, 3, 83, 112, 34, 84, 13, 0, 114, 119, 101, 114, 2, 32, 3, 83,
-			112, 34, 84, 13, 34, 0, 114, 119, 101, 114, 121, 3, 83, 112, 34, 84, 13, 34, 2, 123, 0, 114, 119, 101, 114, 115, 3, 83, 112, 34,
-			84, 13, 34, 89, 0, 4, 114, 115, 1, 21, 2, 32, 3, 83, 112, 34, 89, 0, 114, 115, 1, 21, 2, 101, 32, 0, 114, 115, 2, 100,
-			0, 114, 115, 2, 107, 117, 110, 115, 0, 114, 115, 2, 114, 0, 114, 115, 2, 118, 0, 114, 115, 8, 2, 98, 0, 114, 115, 101, 1, 17,
-			67, 2, 32, 3, 83, 112, 34, 89, 13, 0, 108, 100, 2, 17, 67, 3, 83, 112, 55, 47, 0, 4, 108, 100, 2, 101, 107, 115, 3, 83,
-			112, 55, 47, 10, 0, 108, 100, 2, 111, 0, 4, 103, 2, 101, 101, 110, 3, 83, 112, 136, 10, 0, 103, 2, 111, 0, 4, 114, 1, 17,
-			67, 21, 2, 32, 3, 83, 113, 34, 0, 114, 2, 114, 101, 105, 107, 0, 114, 2, 115, 105, 101, 32, 0, 114, 2, 115, 105, 101, 115, 32,
-			0, 114, 108, 97, 110, 103, 115, 8, 3, 83, 113, 34, 55, 35, 68, 89, 0, 4, 114, 115, 2, 107, 97, 108, 17, 67, 3, 83, 113, 34,
-			89, 0, 114, 115, 2, 112, 97, 110, 111, 114, 0, 114, 115, 2, 97, 108, 98, 117, 109, 3, 83, 113, 34, 89, 10, 0, 114, 115, 101, 2,
-			98, 3, 83, 113, 34, 89, 13, 0, 114, 103, 101, 2, 115, 116, 114, 101, 107, 3, 83, 113, 34, 136, 13, 0, 4, 114, 101, 2, 32, 3,
-			83, 116, 34, 13, 0, 114, 101, 2, 98, 0, 114, 101, 2, 100, 111, 0, 114, 101, 2, 104, 0, 114, 101, 2, 107, 0, 114, 101, 2, 109,
-			0, 114, 101, 2, 115, 116, 111, 0, 114, 101, 2, 118, 0, 4, 116, 111, 8, 2, 114, 101, 103, 3, 83, 116, 47, 2, 40, 0, 116, 111,
-			8, 2, 115, 116, 101, 109, 0, 116, 101, 2, 29, 3, 83, 116, 47, 13, 0, 116, 101, 114, 2, 25, 3, 83, 116, 47, 13, 34, 0, 108,
-			1, 21, 2, 17, 65, 3, 83, 116, 55, 0, 110, 2, 115, 116, 101, 114, 3, 83, 134, 50, 0, 114, 105, 102, 105, 2, 21, 3, 84, 2,
-			108, 34, 2, 37, 83, 2, 37, 0, 110, 2, 100, 101, 116, 116, 97, 3, 84, 2, 108, 50, 0, 4, 114, 2, 98, 97, 97, 108, 3, 84,
-			2, 112, 34, 0, 114, 2, 98, 97, 108, 17, 65, 0, 114, 115, 105, 102, 105, 2, 17, 67, 3, 84, 2, 112, 34, 89, 2, 37, 83, 2,
-			37, 0, 114, 115, 101, 1, 17, 65, 25, 2, 32, 3, 84, 6, 112, 34, 89, 13, 0, 114, 97, 110, 100, 97, 3, 84, 13, 34, 35, 50,
-			72, 35, 0, 114, 98, 101, 110, 97, 3, 84, 13, 34, 71, 116, 50, 2, 35, 0, 110, 101, 2, 115, 105, 17, 65, 3, 84, 13, 50, 37,
-			12, 0, 114, 1, 111, 114, 116, 2, 25, 3, 84, 112, 34, 0, 2, 110, 117, 115, 3, 84, 116, 0, 7, 6, 118, 111, 0, 114, 2, 32,
-			3, 21, 0, 4, 2, 107, 97, 3, 83, 2, 40, 0, 8, 2, 109, 101, 0, 2, 108, 17, 67, 3, 83, 2, 110, 0, 4, 108, 2, 98,
-			114, 105, 110, 103, 3, 83, 2, 110, 55, 0, 108, 2, 103, 114, 111, 101, 105, 0, 108, 2, 107, 111, 109, 101, 0, 108, 2, 101, 105, 110,
-			100, 105, 103, 3, 83, 2, 110, 55, 10, 0, 108, 108, 101, 2, 100, 105, 103, 3, 83, 2, 110, 55, 116, 0, 4, 111, 114, 2, 107, 111,
-			109, 98, 97, 3, 83, 2, 117, 34, 0, 111, 114, 2, 115, 105, 101, 0, 111, 114, 2, 115, 112, 111, 101, 100, 105, 0, 111, 114, 8, 2,
-			100, 101, 108, 105, 103, 0, 111, 114, 8, 2, 107, 111, 109, 17, 65, 0, 4, 111, 114, 2, 97, 102, 103, 97, 97, 110, 3, 83, 2, 117,
-			34, 10, 0, 111, 114, 116, 2, 100, 117, 114, 101, 110, 0, 111, 114, 116, 2, 118, 21, 21, 3, 83, 2, 117, 34, 47, 0, 111, 114, 119,
-			97, 97, 114, 100, 101, 2, 32, 3, 83, 2, 117, 34, 84, 115, 34, 72, 13, 0, 111, 114, 115, 116, 101, 100, 101, 108, 105, 2, 107, 3,
-			83, 2, 117, 34, 89, 47, 116, 72, 13, 55, 13, 0, 111, 114, 115, 107, 114, 105, 102, 116, 101, 108, 105, 2, 107, 3, 83, 2, 117, 34,
-			89, 49, 34, 109, 83, 47, 13, 55, 13, 0, 111, 103, 2, 100, 121, 3, 83, 2, 117, 136, 0, 101, 114, 105, 103, 1, 21, 3, 83, 6,
-			40, 34, 13, 136, 0, 108, 111, 112, 3, 83, 6, 110, 55, 10, 110, 48, 0, 114, 101, 110, 3, 83, 6, 117, 34, 13, 50, 0, 111, 114,
-			98, 101, 8, 2, 21, 14, 128, 132, 134, 3, 83, 6, 117, 34, 71, 13, 0, 111, 114, 103, 101, 8, 2, 21, 14, 128, 132, 134, 3, 83,
-			6, 117, 34, 136, 13, 0, 108, 2, 109, 97, 103, 3, 83, 7, 110, 55, 0, 4, 2, 108, 108, 17, 65, 32, 3, 83, 110, 0, 2, 108,
-			108, 101, 114, 0, 114, 109, 3, 83, 110, 34, 13, 65, 0, 114, 115, 116, 105, 2, 110, 3, 83, 110, 34, 89, 47, 6, 109, 0, 4, 108,
-			2, 98, 3, 83, 110, 55, 0, 108, 2, 103, 0, 108, 2, 104, 111, 117, 32, 0, 108, 2, 109, 97, 97, 110, 0, 108, 2, 109, 97, 110,
-			101, 0, 108, 2, 112, 114, 111, 112, 0, 108, 2, 114, 0, 108, 2, 115, 105, 17, 67, 0, 108, 2, 115, 116, 101, 32, 0, 108, 2, 115,
-			116, 111, 0, 108, 8, 2, 115, 107, 0, 108, 108, 101, 115, 2, 32, 3, 83, 110, 55, 13, 89, 0, 108, 116, 121, 100, 115, 3, 83, 110,
-			55, 47, 123, 47, 89, 0, 108, 107, 3, 83, 110, 55, 49, 0, 108, 107, 101, 3, 83, 110, 55, 49, 13, 0, 108, 119, 97, 115, 115, 101,
-			3, 83, 110, 55, 84, 6, 35, 89, 13, 0, 108, 108, 2, 101, 110, 103, 116, 101, 3, 83, 110, 55, 108, 0, 4, 111, 114, 2, 115, 107,
-			3, 83, 117, 34, 0, 111, 114, 2, 116, 114, 97, 112, 0, 111, 114, 2, 116, 114, 101, 107, 0, 111, 114, 8, 2, 98, 101, 101, 12, 0,
-			111, 114, 2, 17, 65, 3, 83, 117, 34, 10, 0, 111, 114, 117, 105, 116, 8, 3, 83, 117, 34, 10, 6, 127, 47, 0, 111, 114, 98, 97,
-			114, 3, 83, 117, 34, 71, 6, 115, 34, 0, 111, 114, 119, 97, 97, 114, 100, 101, 2, 32, 24, 3, 83, 117, 34, 84, 115, 34, 72, 13,
-			0, 111, 114, 115, 112, 101, 2, 108, 25, 3, 83, 117, 34, 89, 48, 6, 112, 0, 111, 114, 117, 105, 116, 2, 115, 116, 114, 101, 119, 3,
-			83, 117, 34, 127, 47, 6, 0, 108, 117, 109, 101, 3, 84, 2, 110, 55, 118, 65, 13, 0, 100, 107, 97, 3, 84, 110, 47, 49, 35, 0,
-			7, 6, 119, 101, 0, 8, 2, 108, 108, 21, 21, 3, 84, 2, 112, 0, 114, 107, 2, 115, 116, 101, 108, 108, 105, 3, 84, 2, 112, 34,
-			49, 0, 4, 108, 2, 115, 107, 97, 112, 101, 3, 84, 2, 112, 55, 0, 108, 2, 115, 112, 114, 101, 107, 101, 110, 0, 108, 2, 119, 105,
-			108, 0, 108, 8, 2, 114, 0, 108, 8, 2, 118, 0, 108, 8, 2, 101, 100, 101, 108, 3, 84, 2, 112, 55, 10, 0, 108, 98, 101, 104,
-			97, 97, 103, 108, 105, 107, 3, 84, 2, 112, 55, 71, 13, 107, 115, 136, 55, 13, 49, 0, 101, 2, 109, 111, 101, 100, 105, 3, 84, 2,
-			116, 0, 4, 101, 114, 2, 98, 97, 114, 115, 116, 3, 84, 2, 116, 34, 0, 101, 114, 2, 104, 111, 117, 0, 101, 114, 2, 107, 97, 97,
-			116, 115, 0, 101, 114, 2, 108, 101, 103, 0, 101, 114, 2, 108, 195, 170, 0, 101, 114, 2, 115, 116, 97, 97, 110, 0, 101, 114, 2, 115,
-			116, 114, 101, 119, 0, 101, 116, 2, 103, 105, 101, 114, 105, 103, 3, 84, 2, 116, 47, 0, 100, 101, 114, 2, 118, 97, 3, 84, 2, 116,
-			72, 13, 34, 0, 107, 107, 101, 110, 100, 1, 21, 3, 84, 6, 108, 49, 13, 50, 47, 0, 107, 107, 101, 110, 100, 101, 1, 21, 3, 84,
-			6, 108, 49, 13, 50, 72, 13, 0, 110, 100, 105, 103, 1, 21, 3, 84, 6, 108, 50, 72, 13, 136, 0, 103, 103, 101, 8, 2, 17, 67,
-			21, 14, 128, 132, 133, 3, 84, 6, 112, 136, 13, 0, 115, 105, 103, 104, 101, 105, 100, 1, 21, 3, 84, 6, 116, 89, 13, 136, 123, 47,
-			0, 114, 1, 17, 65, 2, 17, 65, 17, 65, 3, 84, 13, 34, 0, 110, 101, 1, 10, 2, 32, 3, 84, 13, 50, 13, 0, 110, 115, 1,
-			101, 110, 3, 84, 13, 50, 89, 0, 1, 17, 67, 21, 2, 116, 25, 3, 84, 108, 0, 4, 100, 1, 21, 2, 115, 116, 114, 3, 84, 108,
-			47, 0, 100, 1, 115, 2, 17, 67, 0, 100, 121, 119, 101, 114, 3, 84, 108, 47, 123, 84, 13, 34, 0, 110, 8, 2, 97, 17, 67, 3,
-			84, 108, 50, 19, 0, 98, 8, 3, 84, 108, 71, 0, 100, 100, 1, 115, 2, 21, 3, 84, 108, 72, 0, 114, 112, 3, 84, 112, 34, 48,
-			0, 114, 107, 1, 116, 3, 84, 112, 34, 49, 0, 114, 119, 101, 108, 3, 84, 112, 34, 84, 13, 55, 0, 108, 2, 118, 97, 97, 114, 116,
-			3, 84, 112, 55, 0, 108, 8, 2, 111, 112, 3, 84, 112, 55, 10, 0, 108, 102, 2, 32, 3, 84, 112, 55, 83, 0, 4, 103, 1, 21,
-			2, 32, 3, 84, 112, 136, 0, 103, 1, 114, 111, 111, 112, 115, 0, 103, 1, 25, 2, 111, 3, 84, 112, 136, 10, 0, 101, 114, 1, 115,
-			17, 65, 2, 32, 3, 84, 116, 34, 0, 101, 114, 8, 2, 115, 112, 3, 84, 116, 34, 6, 0, 114, 101, 1, 101, 103, 3, 84, 116, 34,
-			13, 0, 114, 105, 110, 103, 1, 17, 67, 21, 2, 32, 3, 84, 116, 34, 13, 68, 0, 116, 101, 110, 2, 17, 67, 3, 84, 116, 47, 13,
-			50, 0, 107, 101, 8, 2, 17, 67, 3, 84, 116, 49, 13, 0, 101, 115, 1, 21, 2, 32, 3, 84, 116, 89, 0, 105, 102, 101, 2, 108,
-			3, 84, 123, 83, 13, 0, 4, 110, 115, 1, 107, 117, 108, 3, 84, 134, 50, 89, 0, 110, 115, 1, 115, 101, 101, 102, 0, 7, 6, 97,
-			0, 4, 1, 17, 67, 2, 17, 67, 115, 105, 101, 114, 3, 2, 35, 0, 1, 17, 67, 2, 114, 105, 110, 97, 0, 1, 17, 67, 2, 116,
-			101, 114, 105, 110, 103, 0, 1, 17, 67, 11, 2, 32, 0, 1, 17, 67, 17, 65, 2, 32, 0, 1, 17, 67, 21, 2, 116, 105, 101, 102,
-			0, 1, 17, 67, 21, 2, 116, 105, 101, 119, 101, 0, 1, 21, 2, 17, 67, 105, 115, 97, 115, 105, 101, 0, 1, 21, 2, 17, 67, 105,
-			115, 101, 101, 114, 0, 1, 21, 2, 17, 67, 105, 115, 101, 114, 105, 110, 103, 0, 1, 98, 10, 2, 32, 0, 1, 100, 2, 103, 111, 103,
-			103, 101, 110, 0, 1, 100, 10, 2, 32, 0, 1, 105, 2, 32, 0, 1, 105, 2, 116, 105, 101, 17, 67, 0, 1, 106, 2, 112, 97, 110,
-			0, 1, 109, 21, 2, 116, 105, 101, 107, 0, 1, 109, 114, 10, 2, 32, 0, 1, 114, 10, 2, 32, 0, 1, 116, 10, 2, 32, 24, 0,
-			2, 17, 67, 17, 65, 17, 65, 0, 2, 17, 67, 121, 0, 2, 102, 102, 108, 105, 107, 0, 2, 103, 105, 116, 17, 65, 0, 2, 103, 111,
-			110, 105, 101, 0, 2, 103, 117, 114, 107, 105, 101, 0, 2, 107, 107, 111, 111, 114, 100, 0, 2, 108, 97, 114, 109, 0, 2, 108, 105, 115,
-			109, 101, 0, 2, 108, 105, 116, 101, 105, 116, 0, 2, 109, 101, 110, 116, 0, 2, 114, 105, 115, 116, 111, 107, 114, 0, 2, 115, 105, 101,
-			108, 0, 2, 115, 112, 101, 114, 115, 105, 101, 0, 2, 116, 111, 109, 17, 65, 0, 8, 2, 98, 17, 67, 0, 8, 2, 102, 102, 17, 65,
-			0, 8, 2, 107, 117, 0, 8, 2, 107, 119, 97, 116, 0, 8, 2, 108, 17, 65, 0, 8, 2, 108, 108, 111, 111, 105, 0, 8, 2, 108,
-			108, 117, 0, 8, 2, 112, 17, 67, 0, 8, 2, 112, 111, 0, 8, 2, 115, 116, 114, 17, 65, 0, 8, 107, 2, 110, 17, 65, 0, 102,
-			2, 118, 97, 108, 108, 105, 103, 0, 4, 114, 1, 25, 2, 112, 117, 105, 115, 3, 2, 35, 34, 0, 114, 2, 103, 97, 195, 175, 0, 114,
-			2, 109, 111, 101, 100, 105, 103, 0, 114, 2, 115, 101, 101, 110, 0, 114, 2, 116, 105, 107, 101, 108, 0, 114, 8, 2, 103, 105, 0, 114,
-			8, 2, 111, 109, 0, 114, 97, 2, 98, 105, 101, 114, 3, 2, 35, 34, 2, 35, 0, 114, 97, 98, 101, 2, 115, 107, 3, 2, 35, 34,
-			2, 35, 71, 108, 0, 114, 101, 2, 111, 108, 17, 65, 3, 2, 35, 34, 2, 37, 0, 114, 114, 111, 2, 103, 3, 2, 35, 34, 2, 40,
-			0, 114, 121, 1, 108, 101, 107, 107, 111, 109, 115, 21, 21, 21, 3, 2, 35, 34, 2, 123, 0, 114, 114, 101, 2, 115, 116, 17, 65, 3,
-			2, 35, 34, 13, 0, 4, 114, 109, 2, 108, 97, 115, 116, 3, 2, 35, 34, 14, 65, 0, 114, 109, 2, 115, 97, 108, 105, 103, 0, 114,
-			116, 105, 107, 117, 3, 2, 35, 34, 47, 2, 37, 49, 2, 118, 0, 114, 116, 101, 2, 102, 97, 107, 3, 2, 35, 34, 47, 13, 0, 114,
-			116, 105, 108, 108, 101, 2, 114, 105, 101, 3, 2, 35, 34, 47, 13, 55, 13, 0, 114, 116, 101, 8, 2, 114, 105, 3, 2, 35, 34, 47,
-			116, 0, 114, 115, 101, 2, 110, 97, 3, 2, 35, 34, 89, 13, 0, 114, 114, 101, 115, 2, 32, 3, 2, 35, 34, 108, 89, 0, 114, 97,
-			2, 98, 105, 3, 2, 35, 34, 115, 0, 114, 101, 110, 97, 2, 25, 12, 3, 2, 35, 34, 116, 50, 2, 35, 0, 114, 103, 2, 108, 105,
-			115, 116, 3, 2, 35, 34, 136, 0, 114, 103, 105, 116, 101, 107, 3, 2, 35, 34, 136, 2, 37, 47, 108, 49, 0, 114, 103, 101, 2, 116,
-			105, 112, 3, 2, 35, 34, 136, 13, 0, 114, 103, 101, 110, 2, 116, 17, 65, 3, 2, 35, 34, 136, 13, 50, 0, 4, 100, 2, 118, 105,
-			101, 115, 3, 2, 35, 47, 0, 116, 2, 108, 97, 110, 116, 0, 116, 2, 108, 101, 0, 116, 116, 101, 115, 116, 2, 17, 65, 3, 2, 35,
-			47, 2, 108, 89, 47, 0, 116, 111, 114, 105, 101, 115, 1, 21, 3, 2, 35, 47, 6, 117, 34, 37, 89, 0, 4, 116, 101, 1, 115, 2,
-			108, 3, 2, 35, 47, 13, 0, 116, 104, 101, 1, 17, 67, 2, 114, 105, 110, 97, 0, 116, 114, 111, 2, 102, 105, 101, 3, 2, 35, 47,
-			34, 2, 40, 0, 116, 116, 114, 105, 98, 2, 117, 3, 2, 35, 47, 34, 13, 71, 0, 116, 108, 101, 2, 116, 105, 101, 107, 3, 2, 35,
-			47, 55, 13, 0, 100, 109, 105, 2, 114, 3, 2, 35, 47, 65, 2, 37, 0, 116, 109, 111, 2, 115, 102, 101, 3, 2, 35, 47, 65, 2,
-			110, 0, 100, 109, 105, 110, 105, 3, 2, 35, 47, 65, 13, 50, 13, 0, 100, 109, 105, 2, 115, 115, 105, 101, 3, 2, 35, 47, 65, 37,
-			0, 116, 101, 108, 2, 106, 101, 101, 3, 2, 35, 47, 114, 0, 112, 111, 2, 107, 114, 105, 101, 17, 67, 3, 2, 35, 48, 2, 40, 0,
-			112, 111, 107, 97, 2, 108, 3, 2, 35, 48, 2, 110, 49, 2, 35, 0, 112, 111, 108, 111, 103, 2, 17, 65, 3, 2, 35, 48, 2, 110,
-			55, 2, 40, 136, 0, 112, 112, 101, 2, 108, 108, 17, 65, 3, 2, 35, 48, 13, 0, 112, 112, 97, 114, 2, 17, 65, 3, 2, 35, 48,
-			13, 34, 0, 112, 112, 101, 108, 8, 2, 107, 111, 21, 3, 2, 35, 48, 13, 55, 0, 112, 111, 115, 116, 111, 2, 108, 105, 101, 3, 2,
-			35, 48, 13, 89, 47, 117, 0, 112, 112, 114, 111, 112, 114, 105, 2, 17, 65, 3, 2, 35, 48, 34, 2, 117, 48, 34, 2, 37, 0, 112,
-			97, 114, 116, 3, 2, 35, 48, 35, 34, 47, 0, 112, 112, 108, 105, 2, 107, 97, 110, 116, 3, 2, 35, 48, 55, 2, 37, 0, 98, 115,
-			111, 2, 108, 117, 3, 2, 35, 48, 89, 2, 40, 0, 98, 115, 101, 2, 115, 3, 2, 35, 48, 89, 108, 0, 112, 112, 101, 110, 2, 100,
-			105, 17, 67, 3, 2, 35, 48, 108, 50, 0, 107, 2, 115, 121, 110, 3, 2, 35, 49, 0, 107, 111, 2, 17, 67, 105, 101, 116, 3, 2,
-			35, 49, 2, 40, 0, 107, 107, 111, 109, 109, 111, 2, 100, 3, 2, 35, 49, 2, 110, 65, 13, 0, 107, 107, 117, 2, 114, 97, 3, 2,
-			35, 49, 2, 118, 0, 107, 97, 2, 100, 101, 21, 3, 2, 35, 49, 13, 0, 107, 107, 101, 100, 105, 3, 2, 35, 49, 13, 72, 109, 0,
-			107, 114, 111, 2, 98, 97, 3, 2, 35, 49, 34, 2, 40, 0, 107, 116, 117, 97, 114, 105, 2, 17, 65, 3, 2, 35, 49, 47, 2, 118,
-			2, 35, 34, 2, 37, 0, 107, 119, 97, 114, 101, 2, 108, 3, 2, 35, 49, 58, 2, 35, 34, 112, 0, 107, 119, 97, 109, 97, 2, 114,
-			121, 110, 3, 2, 35, 49, 58, 2, 35, 65, 2, 35, 0, 107, 97, 2, 115, 105, 97, 3, 2, 35, 49, 115, 0, 110, 111, 2, 110, 105,
-			21, 3, 2, 35, 50, 2, 40, 0, 110, 116, 101, 114, 105, 110, 103, 3, 2, 35, 50, 47, 116, 34, 13, 68, 0, 4, 108, 2, 98, 97,
-			115, 116, 101, 114, 3, 2, 35, 55, 0, 108, 2, 98, 105, 110, 111, 0, 108, 2, 106, 97, 110, 100, 101, 114, 0, 108, 8, 2, 119, 101,
-			0, 108, 117, 2, 109, 105, 110, 105, 117, 109, 3, 2, 35, 55, 2, 40, 0, 108, 101, 120, 2, 97, 3, 2, 35, 55, 2, 108, 49, 88,
-			0, 108, 101, 107, 115, 97, 110, 100, 2, 114, 121, 3, 2, 35, 55, 2, 108, 49, 89, 2, 35, 50, 72, 0, 4, 108, 105, 8, 17, 67,
-			2, 102, 111, 114, 110, 105, 3, 2, 35, 55, 13, 0, 108, 108, 101, 2, 109, 105, 110, 116, 0, 108, 108, 101, 114, 2, 103, 105, 101, 32,
-			24, 3, 2, 35, 55, 13, 34, 0, 108, 8, 2, 101, 119, 105, 103, 3, 2, 35, 55, 38, 0, 108, 107, 111, 104, 111, 108, 2, 105, 101,
-			25, 3, 2, 35, 55, 49, 2, 40, 107, 117, 55, 0, 108, 109, 97, 2, 110, 97, 107, 3, 2, 35, 55, 65, 2, 35, 0, 108, 102, 97,
-			98, 101, 2, 116, 17, 65, 3, 2, 35, 55, 83, 2, 35, 71, 116, 0, 108, 108, 101, 114, 2, 103, 105, 101, 3, 2, 35, 55, 112, 34,
-			0, 108, 108, 101, 2, 110, 17, 65, 3, 2, 35, 55, 116, 0, 108, 108, 101, 101, 110, 3, 2, 35, 55, 116, 50, 0, 108, 99, 104, 101,
-			2, 109, 105, 3, 2, 35, 55, 136, 2, 116, 0, 108, 103, 101, 2, 114, 121, 110, 3, 2, 35, 55, 136, 13, 0, 4, 109, 8, 2, 17,
-			65, 3, 2, 35, 65, 0, 109, 8, 2, 110, 17, 65, 0, 109, 97, 114, 117, 108, 97, 3, 2, 35, 65, 2, 35, 34, 40, 55, 2, 35,
-			0, 109, 97, 115, 111, 110, 101, 3, 2, 35, 65, 2, 35, 89, 117, 50, 13, 0, 109, 117, 2, 17, 67, 17, 65, 3, 2, 35, 65, 2,
-			118, 0, 109, 112, 105, 2, 111, 101, 110, 3, 2, 35, 65, 48, 2, 37, 0, 109, 98, 97, 115, 115, 2, 97, 100, 101, 3, 2, 35, 65,
-			71, 2, 35, 89, 0, 109, 98, 97, 115, 115, 97, 2, 100, 101, 117, 3, 2, 35, 65, 71, 2, 35, 89, 2, 35, 0, 109, 98, 117, 2,
-			108, 3, 2, 35, 65, 71, 2, 118, 0, 109, 101, 114, 2, 105, 107, 3, 2, 35, 65, 116, 34, 0, 109, 109, 111, 2, 110, 105, 17, 65,
-			3, 2, 35, 65, 117, 0, 98, 111, 8, 2, 17, 67, 3, 2, 35, 71, 110, 0, 4, 98, 101, 108, 1, 116, 3, 2, 35, 71, 112, 55,
-			0, 98, 101, 108, 108, 1, 116, 0, 100, 111, 108, 101, 115, 115, 101, 110, 3, 2, 35, 72, 2, 117, 55, 13, 89, 108, 50, 0, 100, 114,
-			101, 110, 97, 2, 108, 105, 3, 2, 35, 72, 34, 13, 50, 2, 35, 0, 100, 114, 101, 2, 25, 3, 2, 35, 72, 34, 108, 0, 103, 97,
-			2, 112, 97, 110, 116, 3, 2, 35, 81, 2, 35, 0, 4, 102, 2, 103, 117, 110, 115, 116, 105, 103, 3, 2, 35, 83, 0, 102, 2, 104,
-			97, 110, 107, 0, 102, 2, 115, 105, 103, 116, 101, 0, 102, 2, 115, 107, 117, 119, 0, 102, 2, 115, 121, 100, 105, 103, 0, 102, 2, 119,
-			97, 103, 116, 101, 110, 0, 102, 8, 2, 107, 101, 114, 105, 103, 0, 102, 8, 2, 107, 111, 109, 115, 116, 105, 103, 0, 102, 102, 111, 2,
-			100, 105, 108, 3, 2, 35, 83, 2, 40, 0, 118, 111, 107, 97, 100, 101, 3, 2, 35, 83, 2, 40, 49, 115, 72, 13, 0, 118, 111, 107,
-			97, 100, 111, 3, 2, 35, 83, 2, 40, 49, 115, 72, 40, 0, 102, 114, 105, 107, 2, 97, 97, 110, 3, 2, 35, 83, 34, 2, 37, 49,
-			0, 102, 114, 105, 107, 97, 110, 101, 2, 25, 3, 2, 35, 83, 34, 2, 37, 49, 115, 50, 13, 0, 4, 102, 114, 111, 2, 100, 105, 116,
-			3, 2, 35, 83, 34, 2, 40, 0, 112, 104, 114, 111, 2, 100, 105, 116, 0, 102, 102, 114, 111, 2, 110, 116, 3, 2, 35, 83, 34, 2,
-			110, 0, 102, 119, 101, 115, 105, 103, 3, 2, 35, 83, 84, 116, 89, 13, 136, 0, 102, 115, 116, 111, 111, 116, 108, 3, 2, 35, 83, 89,
-			47, 117, 47, 55, 0, 102, 115, 111, 110, 100, 101, 114, 108, 3, 2, 35, 83, 89, 110, 50, 13, 34, 55, 0, 102, 103, 114, 121, 115, 108,
-			105, 107, 3, 2, 35, 83, 136, 34, 123, 89, 55, 13, 49, 0, 118, 111, 110, 116, 117, 2, 114, 105, 101, 114, 3, 2, 35, 84, 2, 110,
-			50, 47, 2, 118, 0, 115, 8, 2, 107, 101, 3, 2, 35, 89, 0, 115, 115, 117, 2, 114, 97, 110, 3, 2, 35, 89, 2, 111, 0, 115,
-			115, 111, 115, 105, 2, 17, 65, 3, 2, 35, 89, 2, 117, 91, 2, 37, 0, 115, 115, 101, 2, 103, 97, 97, 105, 3, 2, 35, 89, 13,
-			0, 115, 115, 105, 115, 116, 3, 2, 35, 89, 13, 89, 47, 0, 115, 112, 105, 8, 2, 114, 17, 65, 3, 2, 35, 89, 48, 2, 37, 0,
-			115, 112, 101, 107, 3, 2, 35, 89, 48, 108, 49, 0, 115, 107, 105, 116, 101, 8, 3, 2, 35, 89, 49, 37, 47, 13, 0, 115, 107, 97,
-			114, 105, 3, 2, 35, 89, 49, 115, 34, 2, 37, 0, 115, 98, 101, 115, 8, 3, 2, 35, 89, 71, 108, 89, 0, 115, 115, 101, 2, 115,
-			115, 111, 114, 3, 2, 35, 89, 108, 0, 115, 115, 105, 115, 1, 114, 2, 25, 3, 2, 35, 89, 109, 89, 0, 103, 111, 110, 105, 101, 2,
-			32, 24, 3, 2, 35, 136, 2, 40, 50, 37, 0, 103, 116, 101, 2, 108, 111, 115, 105, 103, 3, 2, 35, 136, 47, 13, 0, 4, 103, 116,
-			101, 114, 2, 98, 97, 107, 3, 2, 35, 136, 47, 13, 34, 0, 103, 116, 101, 114, 2, 100, 111, 103, 116, 0, 103, 116, 101, 114, 2, 108,
-			111, 115, 105, 103, 0, 103, 116, 101, 114, 2, 109, 105, 100, 100, 97, 0, 103, 116, 101, 114, 2, 115, 116, 97, 108, 108, 0, 103, 116, 101,
-			114, 2, 118, 111, 108, 103, 0, 103, 116, 101, 114, 2, 111, 111, 114, 3, 2, 35, 136, 47, 13, 34, 10, 0, 103, 116, 101, 114, 101, 101,
-			110, 2, 118, 111, 108, 103, 3, 2, 35, 136, 47, 13, 34, 10, 2, 116, 50, 0, 103, 116, 101, 114, 2, 117, 105, 116, 3, 2, 35, 136,
-			47, 13, 34, 19, 0, 103, 101, 110, 116, 3, 2, 35, 136, 108, 50, 47, 0, 103, 101, 110, 100, 97, 3, 2, 35, 136, 108, 50, 72, 2,
-			35, 0, 103, 101, 2, 114, 101, 110, 100, 3, 2, 35, 136, 116, 0, 117, 103, 117, 115, 116, 117, 115, 3, 2, 110, 136, 111, 89, 47, 111,
-			89, 0, 2, 112, 111, 108, 105, 116, 105, 3, 2, 115, 0, 117, 115, 116, 114, 97, 3, 2, 117, 89, 47, 34, 115, 0, 195, 171, 2, 114,
-			111, 98, 105, 3, 2, 121, 0, 118, 111, 110, 2, 116, 3, 4, 35, 84, 110, 50, 0, 108, 103, 101, 109, 101, 101, 110, 3, 6, 35, 55,
-			136, 13, 65, 4, 116, 50, 0, 102, 8, 2, 21, 14, 128, 132, 130, 3, 6, 35, 83, 0, 102, 103, 101, 8, 2, 21, 14, 128, 132, 132,
-			3, 6, 35, 83, 136, 13, 0, 102, 103, 101, 101, 2, 12, 3, 6, 35, 83, 136, 116, 0, 103, 116, 101, 114, 103, 101, 8, 2, 21, 14,
-			128, 132, 135, 3, 6, 35, 136, 47, 13, 34, 136, 13, 0, 103, 116, 105, 103, 1, 10, 3, 6, 35, 136, 47, 13, 136, 0, 4, 1, 105,
-			2, 116, 105, 101, 115, 3, 6, 115, 0, 2, 114, 105, 17, 65, 0, 8, 17, 67, 2, 17, 67, 105, 101, 32, 0, 116, 111, 114, 1, 21,
-			2, 25, 3, 6, 115, 47, 110, 34, 0, 98, 101, 108, 1, 116, 107, 101, 112, 115, 3, 6, 115, 71, 13, 55, 0, 98, 105, 101, 1, 17,
-			67, 3, 6, 115, 71, 37, 0, 100, 8, 17, 67, 114, 97, 2, 17, 65, 3, 6, 115, 72, 0, 100, 105, 103, 1, 21, 3, 6, 115, 72,
-			13, 136, 0, 100, 105, 101, 115, 1, 17, 67, 17, 65, 3, 6, 115, 72, 37, 89, 0, 115, 105, 101, 1, 17, 67, 3, 6, 115, 89, 37,
-			0, 103, 116, 101, 114, 8, 2, 101, 110, 3, 7, 35, 136, 47, 13, 34, 10, 0, 116, 116, 97, 99, 104, 195, 169, 3, 10, 2, 35, 47,
-			2, 35, 91, 116, 0, 4, 99, 107, 2, 32, 3, 21, 0, 121, 2, 32, 0, 121, 115, 2, 32, 0, 4, 105, 110, 101, 2, 32, 3, 21,
-			102, 114, 0, 105, 114, 101, 1, 21, 2, 32, 0, 4, 1, 17, 67, 2, 120, 17, 65, 12, 3, 35, 0, 1, 107, 10, 2, 32, 0, 1,
-			116, 115, 2, 116, 105, 115, 116, 0, 2, 17, 67, 0, 8, 2, 98, 98, 97, 0, 2, 100, 114, 101, 115, 3, 35, 6, 0, 114, 121, 1,
-			108, 101, 17, 67, 3, 35, 34, 6, 123, 0, 114, 109, 101, 115, 8, 3, 35, 34, 19, 65, 13, 89, 0, 100, 8, 112, 2, 17, 65, 3,
-			35, 47, 0, 116, 116, 101, 110, 2, 17, 67, 3, 35, 47, 6, 108, 50, 0, 116, 111, 114, 101, 1, 21, 2, 32, 3, 35, 47, 6, 117,
-			34, 13, 0, 116, 116, 101, 110, 2, 100, 3, 35, 47, 13, 50, 0, 112, 112, 8, 2, 17, 65, 3, 35, 48, 0, 112, 112, 195, 168, 108,
-			3, 35, 48, 6, 112, 55, 0, 4, 112, 1, 17, 67, 2, 111, 111, 114, 3, 35, 48, 10, 0, 112, 1, 17, 67, 2, 111, 114, 101, 32,
-			0, 108, 105, 8, 2, 107, 114, 17, 65, 3, 35, 55, 2, 37, 0, 108, 111, 195, 171, 3, 35, 55, 6, 40, 13, 0, 108, 111, 111, 103,
-			3, 35, 55, 6, 117, 136, 0, 108, 111, 103, 105, 101, 115, 3, 35, 55, 6, 117, 136, 37, 89, 0, 108, 108, 101, 8, 2, 17, 67, 3,
-			35, 55, 13, 0, 108, 111, 109, 8, 2, 21, 3, 35, 55, 19, 110, 65, 0, 108, 111, 103, 105, 101, 3, 35, 55, 40, 136, 6, 37, 0,
-			108, 107, 111, 104, 111, 108, 3, 35, 55, 49, 2, 40, 2, 110, 55, 0, 108, 109, 101, 2, 108, 101, 3, 35, 55, 65, 13, 0, 108, 102,
-			97, 98, 101, 2, 116, 25, 3, 35, 55, 83, 35, 71, 108, 0, 109, 97, 110, 100, 101, 108, 3, 35, 65, 6, 35, 50, 72, 13, 55, 0,
-			109, 112, 101, 114, 8, 3, 35, 65, 48, 13, 34, 0, 100, 106, 117, 110, 107, 3, 35, 72, 57, 6, 111, 68, 49, 0, 115, 1, 17, 67,
-			21, 2, 32, 3, 35, 89, 0, 103, 116, 8, 2, 117, 117, 114, 3, 35, 136, 47, 0, 103, 116, 101, 114, 110, 97, 3, 35, 136, 47, 13,
-			34, 50, 6, 115, 0, 4, 3, 115, 0, 1, 17, 67, 2, 17, 67, 105, 97, 32, 0, 1, 109, 97, 116, 2, 116, 105, 101, 107, 0, 1,
-			114, 98, 17, 67, 2, 32, 0, 1, 114, 100, 10, 2, 32, 0, 1, 114, 118, 10, 2, 32, 0, 1, 119, 2, 116, 101, 114, 105, 110, 103,
-			0, 2, 17, 67, 17, 65, 0, 2, 17, 67, 105, 101, 0, 2, 104, 108, 101, 32, 0, 8, 2, 115, 105, 195, 171, 0, 101, 0, 104, 2,
-			17, 67, 0, 114, 101, 1, 17, 67, 2, 17, 67, 17, 65, 3, 115, 34, 13, 0, 114, 101, 110, 100, 115, 3, 115, 34, 13, 50, 47, 89,
-			10, 0, 114, 101, 97, 3, 115, 34, 37, 35, 0, 116, 114, 105, 117, 109, 3, 115, 47, 34, 37, 111, 65, 0, 108, 105, 97, 3, 115, 55,
-			2, 37, 2, 35, 0, 100, 101, 109, 8, 3, 115, 72, 13, 65, 0, 100, 105, 117, 1, 17, 67, 2, 25, 3, 115, 72, 37, 111, 0, 102,
-			101, 108, 1, 17, 67, 2, 21, 3, 115, 83, 13, 55, 0, 102, 114, 105, 107, 97, 3, 115, 83, 34, 37, 49, 35, 0, 4, 115, 105, 101,
-			1, 21, 21, 21, 21, 3, 115, 89, 2, 37, 0, 115, 105, 101, 1, 108, 112, 0, 115, 105, 101, 1, 112, 115, 21, 0, 115, 101, 109, 3,
-			115, 89, 13, 65, 0, 4, 115, 105, 101, 1, 17, 67, 11, 17, 67, 3, 115, 89, 37, 0, 115, 105, 101, 1, 98, 117, 111, 0, 115, 105,
-			101, 1, 108, 103, 0, 115, 105, 101, 1, 109, 114, 111, 102, 21, 0, 115, 105, 101, 1, 116, 115, 17, 65, 17, 65, 0, 115, 105, 101, 1,
-			116, 115, 17, 67, 0, 103, 105, 101, 1, 17, 67, 3, 115, 136, 37, 0, 117, 1, 25, 3, 120, 0, 4, 2, 100, 106, 105, 101, 3, 121,
-			0, 105, 0, 116, 106, 105, 101, 3, 121, 80, 37, 0, 101, 110, 2, 116, 106, 105, 101, 3, 122, 68, 0, 100, 106, 105, 101, 3, 122, 80,
-			37, 0, 117, 3, 129, 0, 117, 101, 114, 3, 129, 13, 34, 0, 7, 6, 98, 0, 2, 98, 3, 0, 117, 114, 121, 1, 21, 2, 32, 3,
-			21, 0, 2, 32, 24, 3, 48, 0, 4, 3, 71, 0, 2, 101, 101, 110, 116, 106, 105, 101, 12, 12, 0, 4, 105, 2, 115, 97, 114, 3,
-			71, 2, 37, 0, 105, 2, 122, 97, 0, 105, 8, 2, 103, 97, 0, 105, 115, 97, 110, 2, 116, 121, 110, 3, 71, 2, 37, 89, 2, 35,
-			50, 0, 4, 111, 2, 98, 111, 116, 105, 101, 3, 71, 2, 40, 0, 111, 2, 104, 97, 97, 105, 0, 111, 2, 104, 101, 0, 111, 101, 2,
-			100, 100, 104, 105, 0, 111, 101, 2, 116, 115, 101, 101, 114, 0, 4, 111, 101, 114, 2, 103, 111, 110, 100, 3, 71, 2, 40, 34, 0, 111,
-			101, 114, 2, 105, 110, 0, 111, 101, 107, 101, 2, 116, 25, 3, 71, 2, 40, 49, 108, 0, 117, 108, 2, 103, 97, 3, 71, 2, 40, 55,
-			0, 117, 108, 108, 101, 2, 116, 105, 110, 3, 71, 2, 40, 55, 13, 0, 111, 114, 8, 2, 100, 17, 65, 21, 3, 71, 2, 110, 34, 0,
-			111, 107, 109, 97, 2, 107, 105, 101, 114, 3, 71, 2, 110, 49, 65, 2, 35, 0, 111, 110, 115, 109, 97, 114, 97, 3, 71, 2, 110, 50,
-			89, 65, 115, 34, 2, 35, 0, 111, 98, 98, 101, 2, 106, 3, 71, 2, 110, 71, 13, 0, 117, 114, 2, 108, 101, 115, 107, 3, 71, 2,
-			111, 34, 0, 117, 102, 102, 101, 2, 116, 3, 71, 2, 111, 83, 108, 0, 111, 2, 116, 97, 110, 105, 101, 3, 71, 2, 117, 0, 111, 116,
-			97, 2, 110, 105, 101, 32, 24, 3, 71, 2, 117, 47, 2, 35, 0, 111, 111, 115, 2, 97, 97, 114, 100, 105, 103, 3, 71, 2, 117, 89,
-			10, 0, 117, 114, 2, 111, 107, 114, 97, 3, 71, 2, 118, 34, 0, 117, 114, 111, 3, 71, 2, 118, 34, 117, 0, 4, 121, 2, 107, 111,
-			109, 21, 3, 71, 2, 123, 0, 121, 2, 118, 111, 111, 114, 98, 0, 121, 2, 101, 101, 110, 3, 71, 2, 123, 10, 0, 121, 100, 101, 114,
-			2, 17, 67, 21, 3, 71, 2, 123, 72, 13, 34, 0, 121, 119, 111, 111, 114, 100, 101, 108, 105, 3, 71, 2, 123, 84, 117, 34, 72, 13,
-			55, 13, 0, 121, 103, 101, 2, 108, 111, 119, 105, 3, 71, 2, 123, 136, 13, 0, 121, 8, 2, 116, 101, 108, 14, 128, 132, 130, 3, 71,
-			6, 123, 0, 121, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 71, 6, 123, 136, 13, 0, 117, 105, 116, 101, 110, 2, 103, 101, 3, 71,
-			6, 127, 47, 13, 50, 0, 111, 101, 112, 101, 110, 115, 3, 71, 7, 40, 48, 134, 50, 89, 0, 111, 119, 101, 8, 3, 71, 7, 117, 84,
-			13, 0, 98, 101, 2, 114, 114, 3, 71, 13, 0, 105, 107, 105, 110, 105, 3, 71, 13, 49, 37, 50, 37, 0, 105, 108, 2, 106, 3, 71,
-			13, 55, 0, 105, 98, 108, 105, 2, 111, 17, 67, 3, 71, 13, 71, 55, 2, 37, 12, 2, 0, 114, 97, 118, 2, 17, 65, 3, 71, 34,
-			2, 35, 84, 0, 114, 97, 115, 105, 2, 108, 105, 3, 71, 34, 2, 35, 89, 109, 0, 114, 111, 2, 115, 106, 117, 3, 71, 34, 2, 110,
-			0, 114, 111, 2, 109, 105, 3, 71, 34, 2, 117, 0, 114, 117, 2, 116, 97, 3, 71, 34, 2, 118, 0, 114, 105, 101, 119, 101, 8, 2,
-			17, 67, 3, 71, 34, 7, 37, 84, 13, 0, 114, 105, 108, 2, 106, 97, 110, 116, 3, 71, 34, 13, 55, 0, 114, 101, 100, 97, 8, 3,
-			71, 34, 13, 72, 115, 0, 114, 97, 110, 100, 2, 114, 3, 71, 34, 35, 50, 47, 0, 114, 97, 110, 100, 2, 97, 3, 71, 34, 35, 50,
-			47, 10, 0, 114, 97, 110, 100, 2, 111, 3, 71, 34, 35, 50, 47, 19, 0, 114, 111, 110, 2, 17, 65, 21, 3, 71, 34, 110, 50, 10,
-			0, 114, 97, 105, 108, 108, 101, 3, 71, 34, 123, 12, 55, 10, 0, 114, 101, 105, 100, 101, 108, 3, 71, 34, 123, 72, 13, 55, 0, 111,
-			101, 114, 101, 3, 71, 40, 12, 34, 13, 0, 111, 117, 108, 101, 118, 97, 114, 100, 3, 71, 40, 55, 13, 84, 35, 34, 72, 0, 4, 108,
-			97, 2, 116, 97, 110, 116, 3, 71, 55, 2, 35, 0, 108, 97, 8, 2, 109, 101, 0, 108, 111, 101, 2, 100, 100, 111, 114, 115, 21, 3,
-			71, 55, 2, 40, 0, 4, 108, 111, 101, 100, 2, 115, 107, 101, 110, 100, 105, 103, 3, 71, 55, 2, 40, 47, 0, 108, 111, 101, 100, 2,
-			115, 116, 111, 108, 0, 4, 108, 111, 8, 2, 107, 107, 97, 3, 71, 55, 2, 110, 0, 108, 111, 8, 2, 107, 107, 101, 101, 114, 0, 108,
-			111, 110, 2, 100, 105, 110, 101, 3, 71, 55, 2, 110, 50, 0, 108, 121, 2, 109, 111, 101, 100, 3, 71, 55, 2, 123, 0, 108, 97, 100,
-			2, 17, 65, 3, 71, 55, 35, 47, 10, 0, 108, 105, 107, 8, 2, 17, 65, 3, 71, 55, 109, 49, 10, 0, 108, 111, 109, 2, 97, 107,
-			107, 101, 114, 3, 71, 55, 110, 65, 10, 0, 105, 100, 8, 3, 71, 109, 47, 10, 0, 105, 110, 110, 101, 3, 71, 109, 50, 13, 0, 105,
-			108, 108, 105, 2, 107, 3, 71, 109, 55, 13, 0, 105, 100, 100, 3, 71, 109, 72, 0, 111, 114, 100, 101, 2, 114, 3, 71, 110, 34, 72,
-			13, 0, 111, 107, 2, 111, 111, 105, 3, 71, 110, 49, 10, 0, 111, 110, 100, 101, 2, 17, 67, 3, 71, 110, 50, 72, 13, 0, 111, 109,
-			2, 17, 65, 17, 65, 3, 71, 110, 65, 10, 0, 111, 110, 103, 111, 8, 3, 71, 110, 68, 81, 40, 0, 111, 115, 99, 104, 2, 32, 3,
-			71, 110, 89, 0, 111, 115, 2, 17, 65, 21, 3, 71, 110, 89, 19, 0, 4, 111, 2, 103, 114, 111, 110, 100, 3, 71, 117, 0, 111, 2,
-			115, 107, 114, 105, 102, 0, 111, 2, 118, 0, 111, 8, 2, 107, 108, 101, 0, 111, 116, 97, 8, 2, 110, 105, 17, 67, 17, 65, 3, 71,
-			117, 47, 7, 115, 0, 111, 109, 97, 97, 110, 115, 3, 71, 117, 65, 115, 50, 89, 0, 111, 119, 101, 110, 3, 71, 117, 84, 13, 50, 6,
-			0, 121, 98, 101, 108, 3, 71, 123, 71, 13, 55, 0, 117, 105, 116, 101, 3, 71, 127, 47, 13, 0, 4, 117, 105, 116, 101, 110, 2, 115,
-			116, 101, 3, 71, 127, 47, 13, 50, 0, 117, 105, 116, 101, 110, 2, 116, 0, 117, 105, 116, 101, 110, 3, 71, 127, 47, 13, 50, 6, 0,
-			7, 6, 99, 0, 2, 99, 3, 0, 4, 101, 2, 32, 3, 21, 0, 101, 108, 1, 21, 2, 32, 0, 104, 97, 116, 0, 108, 101, 1, 21,
-			2, 32, 0, 121, 2, 32, 0, 4, 3, 49, 0, 104, 2, 108, 0, 104, 2, 114, 111, 0, 107, 0, 104, 97, 2, 114, 105, 115, 109, 97,
-			3, 49, 2, 35, 0, 97, 108, 2, 118, 17, 65, 3, 49, 2, 35, 55, 0, 97, 108, 97, 109, 97, 114, 105, 3, 49, 2, 35, 55, 2,
-			35, 65, 115, 34, 2, 37, 0, 104, 111, 114, 101, 2, 111, 103, 114, 97, 3, 49, 2, 110, 34, 2, 37, 0, 111, 108, 111, 109, 98, 105,
-			2, 97, 21, 3, 49, 2, 110, 55, 2, 110, 65, 71, 2, 37, 0, 104, 111, 108, 101, 115, 116, 101, 114, 111, 108, 3, 49, 2, 110, 55,
-			108, 89, 47, 14, 34, 2, 110, 55, 0, 108, 105, 99, 104, 195, 169, 3, 49, 55, 2, 37, 91, 116, 0, 111, 114, 110, 101, 2, 108, 105,
-			3, 49, 110, 34, 50, 7, 116, 0, 104, 111, 108, 101, 114, 97, 3, 49, 117, 55, 13, 34, 35, 10, 0, 111, 107, 101, 3, 49, 120, 49,
-			0, 104, 101, 100, 100, 97, 114, 3, 76, 108, 72, 13, 34, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2, 121, 0, 101, 110, 2, 116,
-			97, 117, 114, 17, 65, 3, 89, 2, 108, 50, 0, 105, 1, 21, 2, 32, 3, 89, 6, 37, 0, 121, 2, 114, 105, 108, 108, 105, 101, 3,
-			89, 13, 0, 105, 8, 2, 112, 114, 17, 65, 3, 89, 37, 0, 104, 97, 108, 101, 116, 3, 91, 2, 35, 55, 123, 0, 104, 105, 110, 2,
-			101, 3, 91, 2, 37, 50, 0, 104, 97, 117, 2, 17, 67, 3, 91, 2, 120, 0, 104, 105, 114, 117, 114, 103, 2, 105, 101, 32, 24, 3,
-			91, 13, 34, 2, 111, 34, 136, 0, 104, 105, 114, 117, 114, 103, 3, 91, 13, 34, 111, 34, 136, 0, 4, 104, 3, 136, 0, 104, 8, 0,
-			104, 101, 109, 105, 107, 97, 2, 108, 105, 3, 136, 2, 116, 65, 2, 37, 49, 115, 0, 7, 6, 100, 0, 4, 1, 21, 2, 116, 3, 0,
-			4, 2, 32, 100, 24, 3, 0, 2, 100, 3, 0, 4, 103, 101, 1, 21, 2, 32, 3, 21, 0, 103, 101, 2, 32, 0, 4, 1, 21, 2,
-			17, 67, 3, 47, 0, 1, 21, 2, 101, 116, 101, 17, 67, 32, 0, 1, 21, 2, 114, 97, 97, 109, 0, 1, 21, 2, 114, 111, 111, 115,
-			0, 1, 21, 2, 114, 111, 115, 101, 32, 0, 1, 21, 2, 114, 111, 115, 105, 101, 0, 1, 21, 2, 114, 117, 105, 109, 0, 1, 101, 111,
-			2, 114, 0, 1, 110, 21, 2, 101, 116, 101, 32, 0, 1, 110, 97, 104, 2, 114, 0, 1, 110, 97, 115, 2, 114, 0, 1, 110, 105, 119,
-			2, 114, 0, 1, 110, 111, 104, 2, 17, 67, 0, 1, 111, 111, 2, 114, 0, 2, 32, 0, 2, 114, 105, 101, 109, 32, 0, 4, 1, 17,
-			65, 2, 97, 103, 116, 105, 103, 3, 47, 10, 0, 1, 21, 2, 101, 105, 101, 110, 0, 1, 21, 2, 101, 105, 110, 100, 101, 32, 0, 1,
-			21, 2, 101, 105, 115, 0, 1, 21, 2, 105, 110, 104, 111, 117, 0, 1, 21, 2, 121, 115, 116, 101, 114, 0, 1, 110, 21, 2, 117, 105,
-			116, 0, 1, 111, 111, 2, 17, 65, 3, 47, 19, 0, 119, 101, 115, 1, 21, 3, 47, 84, 6, 108, 89, 0, 119, 105, 108, 108, 105, 103,
-			1, 21, 3, 47, 84, 6, 109, 55, 13, 136, 0, 119, 101, 115, 101, 1, 21, 3, 47, 84, 116, 89, 13, 0, 115, 1, 21, 2, 32, 3,
-			47, 89, 0, 4, 3, 72, 0, 1, 21, 2, 114, 0, 1, 101, 111, 116, 2, 114, 0, 1, 111, 111, 114, 97, 107, 0, 1, 112, 2, 17,
-			67, 0, 1, 114, 101, 118, 2, 17, 67, 0, 100, 0, 100, 1, 21, 0, 100, 104, 0, 105, 2, 110, 97, 109, 105, 101, 3, 72, 2, 37,
-			0, 105, 97, 2, 17, 67, 3, 72, 2, 37, 2, 35, 0, 105, 97, 107, 111, 2, 110, 105, 101, 3, 72, 2, 37, 2, 35, 49, 2, 40,
-			0, 105, 114, 101, 107, 3, 72, 2, 37, 34, 108, 49, 0, 4, 105, 110, 97, 2, 109, 105, 101, 107, 3, 72, 2, 37, 50, 2, 35, 0,
-			105, 110, 97, 2, 109, 105, 101, 116, 0, 105, 110, 97, 2, 115, 116, 105, 101, 0, 105, 110, 111, 2, 115, 111, 117, 3, 72, 2, 37, 50,
-			2, 40, 0, 105, 101, 110, 115, 2, 119, 105, 108, 108, 105, 3, 72, 2, 37, 50, 89, 0, 105, 97, 107, 101, 110, 3, 72, 2, 37, 115,
-			49, 13, 50, 0, 105, 103, 105, 2, 116, 97, 3, 72, 2, 37, 136, 2, 37, 0, 117, 2, 101, 116, 3, 72, 2, 40, 12, 58, 0, 111,
-			101, 108, 2, 116, 114, 101, 102, 3, 72, 2, 40, 55, 0, 117, 118, 101, 116, 3, 72, 2, 40, 84, 123, 12, 0, 111, 101, 97, 110, 101,
-			3, 72, 2, 40, 115, 50, 13, 0, 111, 2, 115, 115, 105, 101, 114, 3, 72, 2, 110, 0, 111, 108, 2, 102, 121, 110, 3, 72, 2, 110,
-			55, 0, 111, 108, 111, 2, 109, 105, 101, 116, 3, 72, 2, 110, 55, 13, 0, 111, 109, 105, 110, 2, 17, 65, 3, 72, 2, 110, 65, 2,
-			37, 50, 0, 111, 109, 105, 110, 105, 2, 107, 97, 3, 72, 2, 110, 65, 2, 37, 50, 2, 37, 0, 97, 97, 114, 111, 112, 2, 118, 3,
-			72, 2, 115, 34, 2, 110, 48, 0, 97, 97, 114, 101, 110, 2, 116, 101, 3, 72, 2, 115, 34, 13, 50, 0, 97, 97, 100, 2, 119, 101,
-			114, 107, 3, 72, 2, 115, 47, 0, 111, 112, 97, 2, 109, 105, 3, 72, 2, 117, 48, 2, 35, 0, 97, 110, 116, 1, 21, 3, 72, 6,
-			35, 50, 47, 0, 97, 103, 1, 110, 97, 97, 2, 116, 105, 103, 3, 72, 6, 35, 136, 0, 97, 110, 105, 2, 103, 104, 3, 72, 6, 115,
-			50, 13, 0, 97, 109, 101, 115, 8, 3, 72, 6, 115, 65, 13, 89, 0, 111, 109, 105, 110, 101, 101, 2, 32, 3, 72, 6, 117, 65, 13,
-			50, 37, 0, 111, 100, 101, 8, 3, 72, 6, 117, 72, 13, 0, 4, 105, 2, 110, 101, 101, 3, 72, 13, 0, 105, 2, 112, 108, 111, 109,
-			97, 0, 105, 2, 115, 115, 105, 0, 105, 2, 118, 105, 115, 105, 101, 0, 105, 114, 105, 103, 2, 101, 3, 72, 13, 34, 13, 136, 0, 100,
-			101, 114, 100, 1, 21, 2, 32, 3, 72, 13, 34, 47, 0, 105, 112, 108, 111, 2, 109, 97, 116, 3, 72, 13, 48, 55, 2, 40, 0, 105,
-			107, 2, 118, 101, 108, 108, 3, 72, 13, 49, 0, 105, 110, 97, 1, 110, 97, 107, 115, 3, 72, 13, 50, 6, 115, 0, 105, 108, 101, 109,
-			109, 97, 3, 72, 13, 55, 108, 65, 35, 0, 105, 109, 101, 110, 2, 115, 105, 3, 72, 13, 65, 108, 50, 0, 105, 110, 103, 97, 97, 110,
-			3, 72, 13, 68, 81, 115, 50, 0, 105, 118, 105, 100, 101, 2, 110, 100, 3, 72, 13, 84, 13, 72, 108, 0, 4, 105, 115, 2, 107, 111,
-			101, 114, 115, 3, 72, 13, 89, 0, 105, 115, 2, 108, 111, 106, 97, 0, 105, 115, 2, 112, 117, 0, 105, 115, 8, 2, 105, 110, 14, 128,
-			132, 131, 0, 105, 115, 8, 2, 107, 114, 101, 0, 105, 115, 8, 2, 107, 117, 115, 115, 17, 65, 0, 105, 115, 8, 2, 111, 14, 128, 132,
-			131, 0, 105, 115, 8, 2, 116, 0, 105, 115, 115, 105, 112, 101, 108, 2, 105, 110, 3, 72, 13, 89, 2, 37, 48, 13, 55, 0, 105, 115,
-			115, 105, 112, 108, 105, 110, 101, 2, 25, 3, 72, 13, 89, 13, 48, 55, 37, 50, 13, 0, 105, 115, 116, 114, 111, 2, 102, 105, 101, 3,
-			72, 13, 89, 47, 34, 2, 40, 0, 105, 115, 116, 114, 105, 2, 98, 117, 3, 72, 13, 89, 47, 34, 13, 0, 105, 115, 107, 114, 101, 2,
-			115, 3, 72, 13, 89, 49, 34, 108, 0, 105, 103, 101, 114, 115, 3, 72, 13, 136, 13, 34, 89, 0, 105, 103, 116, 101, 114, 101, 2, 25,
-			3, 72, 13, 136, 47, 13, 34, 108, 0, 114, 111, 101, 102, 2, 103, 101, 101, 115, 3, 72, 34, 2, 40, 83, 0, 114, 117, 107, 107, 101,
-			8, 2, 114, 121, 3, 72, 34, 2, 111, 49, 13, 0, 114, 97, 109, 97, 2, 116, 117, 114, 103, 3, 72, 34, 2, 115, 65, 2, 35, 0,
-			114, 97, 2, 115, 116, 105, 101, 3, 72, 34, 35, 0, 114, 105, 108, 2, 17, 65, 3, 72, 34, 109, 55, 0, 114, 97, 8, 2, 115, 116,
-			3, 72, 34, 115, 0, 105, 101, 112, 101, 114, 2, 21, 3, 72, 37, 48, 13, 34, 0, 117, 2, 112, 108, 105, 17, 67, 3, 72, 40, 0,
-			4, 119, 1, 101, 103, 3, 72, 58, 0, 119, 1, 109, 0, 119, 1, 121, 98, 114, 101, 118, 0, 119, 2, 101, 114, 103, 0, 119, 101, 108,
-			109, 2, 32, 3, 72, 58, 112, 55, 14, 65, 0, 105, 2, 103, 25, 3, 72, 109, 0, 105, 115, 116, 101, 108, 3, 72, 109, 89, 47, 13,
-			55, 0, 111, 107, 116, 111, 114, 2, 25, 3, 72, 110, 49, 47, 13, 34, 0, 111, 107, 117, 3, 72, 110, 49, 118, 0, 111, 108, 2, 111,
-			115, 3, 72, 110, 55, 0, 111, 109, 8, 2, 17, 65, 17, 67, 17, 67, 3, 72, 110, 65, 0, 111, 110, 103, 97, 3, 72, 110, 68, 81,
-			35, 0, 97, 116, 101, 1, 105, 100, 110, 97, 107, 2, 17, 67, 3, 72, 115, 47, 13, 0, 97, 110, 105, 195, 171, 108, 3, 72, 115, 50,
-			37, 13, 55, 0, 111, 115, 105, 2, 115, 3, 72, 117, 89, 13, 0, 106, 8, 3, 75, 0, 106, 3, 80, 0, 106, 105, 101, 3, 80, 37,
-			0, 7, 6, 101, 0, 1, 105, 111, 111, 2, 110, 116, 106, 105, 101, 3, 0, 4, 2, 102, 101, 115, 105, 3, 2, 37, 0, 2, 109, 111,
-			115, 105, 0, 8, 2, 108, 108, 105, 112, 25, 0, 8, 108, 101, 105, 115, 2, 116, 106, 105, 101, 0, 108, 101, 107, 2, 116, 114, 111, 100,
-			101, 3, 2, 37, 55, 2, 108, 49, 0, 108, 101, 107, 116, 114, 3, 2, 37, 55, 108, 49, 47, 34, 0, 102, 102, 101, 107, 2, 25, 3,
-			2, 37, 83, 108, 49, 0, 118, 2, 101, 110, 116, 117, 101, 3, 2, 37, 84, 0, 118, 97, 108, 2, 117, 3, 2, 37, 84, 2, 35, 55,
-			0, 115, 115, 101, 110, 2, 115, 105, 3, 2, 37, 89, 108, 50, 0, 4, 1, 108, 108, 101, 116, 110, 105, 2, 107, 3, 2, 108, 0, 2,
-			107, 111, 110, 111, 21, 0, 8, 2, 107, 115, 0, 8, 2, 109, 105, 0, 116, 105, 2, 107, 101, 116, 3, 2, 108, 47, 2, 37, 0, 116,
-			105, 107, 101, 116, 116, 101, 2, 114, 17, 65, 3, 2, 108, 47, 2, 37, 49, 2, 108, 47, 116, 0, 4, 112, 105, 2, 100, 101, 17, 67,
-			3, 2, 108, 48, 2, 37, 0, 112, 105, 8, 2, 17, 67, 0, 112, 111, 117, 2, 108, 101, 116, 3, 2, 108, 48, 2, 40, 0, 107, 117,
-			2, 109, 101, 110, 105, 101, 3, 2, 108, 49, 2, 118, 0, 107, 119, 105, 2, 108, 105, 98, 114, 105, 3, 2, 108, 49, 58, 2, 37, 0,
-			120, 1, 108, 97, 2, 97, 110, 100, 3, 2, 108, 49, 88, 0, 107, 115, 97, 109, 105, 110, 2, 17, 65, 3, 2, 108, 49, 89, 2, 35,
-			65, 2, 37, 50, 0, 107, 115, 101, 2, 108, 108, 101, 110, 17, 67, 3, 2, 108, 49, 89, 13, 0, 107, 115, 101, 103, 101, 2, 17, 67,
-			17, 65, 3, 2, 108, 49, 89, 13, 136, 116, 0, 107, 115, 116, 114, 111, 2, 118, 101, 114, 3, 2, 108, 49, 89, 47, 34, 2, 40, 0,
-			107, 115, 116, 114, 101, 2, 109, 105, 115, 3, 2, 108, 49, 89, 47, 34, 13, 0, 107, 115, 116, 101, 114, 110, 8, 3, 2, 108, 49, 89,
-			47, 112, 34, 14, 50, 0, 107, 115, 112, 108, 105, 2, 115, 105, 101, 116, 3, 2, 108, 49, 89, 48, 55, 13, 0, 4, 108, 101, 2, 103,
-			97, 110, 17, 67, 3, 2, 108, 55, 13, 0, 108, 101, 2, 103, 105, 101, 0, 108, 101, 109, 101, 110, 116, 3, 2, 108, 55, 13, 65, 108,
-			50, 47, 0, 4, 109, 2, 112, 105, 114, 3, 2, 108, 65, 0, 109, 8, 2, 98, 108, 101, 0, 109, 102, 105, 2, 115, 101, 101, 109, 3,
-			2, 108, 65, 83, 2, 37, 0, 119, 111, 2, 108, 117, 115, 105, 3, 2, 108, 84, 2, 110, 0, 115, 8, 2, 107, 97, 114, 112, 3, 2,
-			108, 89, 0, 115, 105, 1, 100, 21, 2, 109, 97, 3, 2, 108, 89, 2, 37, 0, 115, 116, 114, 111, 2, 103, 101, 3, 2, 108, 89, 47,
-			34, 2, 40, 0, 115, 116, 101, 8, 2, 116, 3, 2, 108, 89, 47, 116, 0, 115, 107, 97, 2, 112, 97, 100, 101, 3, 2, 108, 89, 49,
-			13, 0, 115, 107, 97, 100, 101, 114, 3, 2, 108, 89, 49, 115, 72, 13, 34, 0, 114, 107, 101, 2, 110, 12, 3, 2, 112, 34, 49, 108,
-			0, 4, 2, 107, 108, 105, 112, 25, 3, 2, 116, 0, 8, 2, 103, 105, 112, 116, 0, 8, 2, 114, 111, 115, 105, 101, 0, 114, 101, 2,
-			107, 115, 105, 17, 65, 3, 2, 116, 34, 108, 0, 109, 97, 108, 106, 101, 3, 2, 116, 65, 35, 55, 57, 13, 0, 119, 101, 8, 2, 114,
-			101, 100, 3, 2, 116, 84, 13, 0, 119, 101, 119, 105, 103, 2, 116, 105, 103, 3, 2, 116, 84, 13, 84, 109, 136, 0, 119, 105, 103, 2,
-			100, 117, 3, 2, 116, 84, 13, 136, 0, 115, 111, 116, 101, 2, 114, 105, 101, 3, 2, 116, 89, 2, 40, 47, 116, 0, 103, 111, 115, 101,
-			110, 116, 114, 105, 101, 3, 2, 116, 136, 2, 40, 89, 108, 50, 47, 34, 37, 0, 103, 97, 8, 2, 108, 3, 2, 116, 136, 115, 0, 105,
-			101, 110, 97, 97, 114, 100, 105, 103, 3, 2, 123, 13, 50, 115, 34, 72, 13, 136, 0, 117, 2, 102, 111, 114, 105, 101, 3, 2, 128, 0,
-			117, 114, 111, 8, 2, 112, 101, 3, 2, 128, 34, 2, 117, 0, 117, 102, 111, 2, 114, 105, 101, 32, 24, 3, 2, 128, 83, 2, 117, 0,
-			118, 97, 110, 103, 8, 3, 4, 116, 83, 35, 68, 136, 0, 8, 17, 67, 2, 111, 110, 32, 3, 6, 37, 0, 4, 1, 17, 67, 2, 115,
-			107, 32, 12, 12, 3, 6, 108, 0, 1, 17, 67, 2, 115, 107, 101, 32, 12, 12, 0, 1, 17, 67, 21, 2, 115, 107, 101, 114, 32, 0,
-			1, 114, 97, 2, 115, 115, 101, 32, 0, 100, 106, 105, 101, 3, 6, 108, 12, 37, 80, 37, 0, 107, 116, 111, 109, 105, 101, 1, 17, 67,
-			3, 6, 108, 49, 47, 40, 65, 37, 0, 1, 115, 21, 2, 108, 102, 100, 101, 3, 6, 112, 0, 4, 1, 100, 21, 2, 115, 101, 32, 12,
-			3, 6, 116, 0, 1, 112, 2, 114, 105, 110, 103, 0, 1, 112, 101, 111, 114, 2, 114, 105, 110, 103, 0, 4, 114, 1, 102, 102, 111, 116,
-			115, 2, 17, 65, 3, 6, 116, 34, 0, 114, 1, 110, 105, 2, 17, 65, 0, 114, 105, 110, 103, 1, 117, 3, 6, 116, 34, 13, 68, 0,
-			116, 101, 110, 115, 8, 3, 6, 116, 47, 13, 50, 89, 0, 108, 101, 1, 117, 17, 67, 2, 25, 12, 3, 6, 116, 55, 13, 0, 105, 1,
-			114, 2, 115, 101, 110, 3, 6, 123, 0, 105, 107, 101, 8, 3, 6, 123, 49, 13, 0, 105, 110, 1, 21, 2, 100, 105, 103, 3, 6, 123,
-			50, 0, 108, 119, 101, 114, 115, 1, 17, 67, 3, 7, 112, 55, 84, 13, 34, 89, 0, 1, 17, 67, 2, 110, 100, 104, 3, 8, 13, 0,
-			107, 111, 110, 1, 10, 2, 111, 21, 3, 10, 2, 108, 49, 2, 40, 50, 0, 105, 1, 17, 67, 21, 2, 108, 97, 110, 100, 3, 10, 4,
-			123, 0, 105, 1, 21, 2, 115, 101, 110, 3, 10, 6, 123, 0, 114, 116, 115, 1, 21, 2, 32, 3, 10, 112, 34, 47, 89, 0, 114, 107,
-			101, 1, 100, 108, 117, 107, 115, 3, 10, 112, 34, 49, 108, 0, 114, 103, 8, 114, 101, 108, 108, 97, 3, 10, 112, 34, 136, 0, 116, 101,
-			114, 1, 114, 101, 105, 109, 3, 10, 116, 47, 13, 34, 0, 4, 1, 10, 2, 32, 3, 13, 0, 1, 10, 2, 108, 17, 67, 32, 0, 1,
-			10, 2, 108, 32, 0, 1, 10, 2, 109, 32, 0, 1, 10, 2, 114, 32, 0, 1, 17, 67, 2, 104, 0, 1, 17, 67, 2, 107, 97, 109,
-			112, 12, 0, 1, 17, 67, 2, 107, 97, 110, 116, 12, 0, 1, 17, 67, 2, 108, 116, 106, 105, 101, 0, 1, 17, 67, 2, 109, 97, 97,
-			116, 0, 1, 17, 67, 2, 109, 97, 110, 0, 1, 17, 67, 2, 109, 97, 114, 105, 101, 0, 1, 17, 67, 2, 112, 97, 100, 0, 1, 17,
-			67, 2, 112, 97, 110, 0, 1, 17, 67, 2, 116, 111, 101, 32, 0, 1, 17, 67, 2, 118, 0, 1, 17, 67, 2, 119, 97, 97, 114, 0,
-			1, 17, 67, 2, 119, 105, 110, 107, 101, 108, 0, 1, 17, 67, 10, 2, 103, 97, 110, 103, 101, 114, 0, 1, 17, 67, 10, 2, 108, 114,
-			17, 65, 0, 1, 17, 67, 10, 2, 115, 107, 21, 0, 1, 17, 67, 11, 2, 17, 67, 0, 1, 17, 67, 17, 65, 2, 108, 104, 0, 1,
-			17, 67, 17, 65, 17, 67, 2, 17, 67, 17, 67, 0, 1, 17, 67, 17, 65, 17, 67, 2, 114, 114, 0, 1, 17, 67, 21, 2, 98, 111,
-			0, 1, 17, 67, 21, 2, 98, 117, 0, 1, 17, 67, 21, 2, 98, 121, 0, 1, 17, 67, 21, 2, 100, 105, 101, 110, 0, 1, 17, 67,
-			21, 2, 103, 101, 17, 67, 21, 0, 1, 17, 67, 21, 2, 103, 114, 111, 101, 112, 0, 1, 17, 67, 21, 2, 106, 0, 1, 17, 67, 21,
-			2, 107, 111, 100, 101, 25, 0, 1, 17, 67, 21, 2, 107, 111, 109, 21, 0, 1, 17, 67, 21, 2, 109, 97, 97, 108, 32, 0, 1, 17,
-			67, 21, 2, 109, 97, 108, 101, 32, 0, 1, 17, 67, 21, 2, 114, 101, 101, 107, 25, 0, 1, 17, 67, 21, 2, 114, 101, 195, 171, 0,
-			1, 17, 67, 21, 2, 114, 104, 0, 1, 17, 67, 21, 2, 116, 97, 97, 108, 0, 1, 17, 67, 21, 2, 119, 97, 32, 0, 1, 17, 67,
-			21, 2, 119, 97, 101, 110, 0, 1, 17, 67, 101, 111, 17, 67, 2, 17, 67, 12, 0, 1, 17, 67, 105, 117, 2, 25, 12, 0, 1, 17,
-			67, 117, 101, 25, 2, 108, 17, 67, 21, 0, 1, 21, 2, 115, 112, 101, 108, 32, 0, 1, 25, 2, 112, 111, 111, 114, 116, 0, 1, 98,
-			10, 2, 115, 21, 0, 1, 98, 17, 65, 2, 119, 97, 0, 1, 100, 10, 2, 114, 21, 12, 12, 0, 1, 100, 17, 67, 2, 116, 114, 0,
-			1, 100, 21, 2, 98, 108, 0, 1, 100, 21, 2, 107, 108, 97, 115, 0, 1, 100, 21, 2, 107, 114, 0, 1, 100, 21, 2, 115, 21, 0,
-			1, 100, 97, 114, 114, 111, 111, 118, 2, 17, 67, 0, 1, 100, 100, 17, 65, 2, 108, 101, 32, 0, 1, 100, 100, 105, 109, 2, 21, 0,
-			1, 100, 102, 101, 105, 108, 2, 17, 67, 0, 1, 100, 103, 117, 101, 114, 118, 2, 17, 67, 0, 1, 100, 108, 97, 97, 110, 2, 17, 67,
-			0, 1, 100, 108, 101, 101, 119, 2, 119, 17, 65, 0, 1, 100, 108, 101, 112, 115, 2, 17, 67, 0, 1, 100, 108, 105, 119, 0, 1, 100,
-			108, 105, 119, 2, 107, 17, 65, 0, 1, 100, 110, 2, 108, 105, 110, 103, 0, 1, 100, 110, 17, 65, 2, 108, 17, 67, 0, 1, 100, 110,
-			97, 17, 67, 2, 17, 67, 0, 1, 100, 110, 97, 97, 109, 2, 108, 17, 65, 0, 1, 100, 110, 101, 105, 114, 118, 2, 17, 67, 0, 1,
-			100, 110, 105, 108, 98, 2, 17, 67, 21, 0, 1, 100, 110, 105, 108, 98, 2, 108, 105, 110, 103, 0, 1, 100, 110, 111, 17, 67, 2, 17,
-			67, 17, 65, 0, 1, 100, 110, 117, 107, 2, 21, 0, 1, 100, 111, 107, 2, 17, 67, 0, 1, 100, 114, 111, 111, 110, 2, 17, 67, 0,
-			1, 100, 121, 2, 108, 0, 1, 102, 108, 105, 107, 115, 2, 114, 0, 1, 102, 121, 115, 2, 114, 0, 1, 103, 110, 97, 108, 115, 2, 17,
-			67, 0, 1, 103, 110, 105, 17, 67, 2, 108, 17, 65, 0, 1, 103, 110, 105, 17, 67, 2, 108, 17, 67, 21, 0, 1, 103, 110, 105, 110,
-			101, 107, 2, 21, 0, 1, 105, 97, 97, 2, 17, 67, 0, 1, 105, 101, 0, 1, 105, 111, 111, 2, 17, 67, 0, 1, 107, 21, 2, 108,
-			100, 101, 32, 0, 1, 107, 21, 2, 114, 97, 97, 100, 0, 1, 107, 97, 108, 98, 2, 114, 0, 1, 107, 101, 111, 2, 17, 67, 0, 1,
-			107, 110, 2, 108, 17, 67, 0, 1, 107, 110, 17, 65, 2, 114, 21, 0, 1, 107, 110, 105, 119, 2, 108, 0, 1, 107, 111, 112, 115, 2,
-			17, 67, 0, 1, 107, 114, 101, 119, 2, 114, 115, 0, 1, 107, 114, 105, 115, 2, 108, 0, 1, 108, 2, 109, 111, 101, 110, 0, 1, 108,
-			97, 104, 2, 114, 17, 67, 21, 0, 1, 108, 97, 109, 2, 100, 121, 0, 1, 108, 97, 114, 101, 110, 105, 109, 2, 17, 67, 0, 1, 108,
-			101, 119, 117, 106, 2, 17, 67, 0, 1, 108, 105, 101, 114, 116, 2, 114, 17, 67, 0, 1, 108, 108, 105, 119, 2, 17, 67, 0, 1, 108,
-			111, 114, 116, 2, 17, 67, 21, 0, 1, 109, 2, 108, 101, 110, 100, 0, 1, 109, 2, 108, 105, 110, 103, 0, 1, 109, 97, 115, 0, 1,
-			109, 97, 115, 21, 2, 110, 115, 32, 0, 1, 109, 101, 110, 21, 2, 110, 115, 32, 0, 1, 109, 108, 101, 17, 67, 2, 116, 25, 0, 1,
-			109, 111, 107, 21, 2, 110, 115, 32, 0, 1, 109, 111, 115, 2, 114, 0, 1, 109, 114, 2, 114, 116, 106, 105, 101, 0, 1, 110, 97, 17,
-			67, 17, 67, 2, 17, 67, 17, 65, 0, 1, 110, 101, 105, 17, 67, 2, 114, 17, 67, 21, 0, 1, 110, 110, 17, 65, 17, 67, 2, 17,
-			67, 17, 65, 0, 1, 110, 110, 97, 112, 2, 17, 67, 0, 1, 110, 117, 101, 2, 114, 21, 0, 1, 112, 2, 116, 97, 108, 106, 101, 0,
-			1, 112, 2, 116, 97, 108, 106, 101, 0, 1, 112, 17, 65, 2, 108, 105, 110, 103, 0, 1, 112, 17, 65, 17, 67, 2, 114, 107, 17, 67,
-			0, 1, 112, 17, 67, 17, 65, 17, 67, 2, 114, 108, 0, 1, 112, 21, 2, 108, 104, 0, 1, 112, 21, 2, 114, 116, 106, 105, 101, 0,
-			1, 112, 105, 104, 2, 114, 0, 1, 112, 109, 2, 108, 100, 101, 32, 0, 1, 112, 109, 21, 2, 108, 17, 67, 21, 0, 1, 112, 109, 111,
-			107, 2, 116, 21, 0, 1, 112, 112, 2, 17, 67, 21, 12, 0, 1, 112, 114, 2, 114, 17, 67, 17, 67, 0, 1, 112, 114, 101, 119, 2,
-			114, 115, 17, 65, 0, 1, 112, 114, 117, 112, 2, 114, 0, 1, 112, 115, 2, 100, 0, 1, 112, 115, 2, 108, 111, 110, 107, 0, 1, 114,
-			101, 100, 101, 111, 103, 2, 21, 0, 1, 114, 101, 105, 17, 67, 29, 2, 21, 0, 1, 114, 114, 111, 2, 108, 0, 1, 115, 10, 2, 108,
-			21, 0, 1, 115, 25, 2, 110, 97, 0, 1, 115, 100, 110, 97, 104, 101, 100, 2, 17, 67, 21, 0, 1, 115, 101, 105, 2, 98, 0, 1,
-			115, 101, 105, 2, 102, 0, 1, 115, 105, 101, 2, 98, 101, 0, 1, 115, 105, 101, 2, 115, 116, 0, 1, 115, 107, 21, 2, 109, 17, 67,
-			0, 1, 115, 107, 117, 117, 108, 0, 1, 115, 111, 107, 114, 97, 110, 2, 17, 67, 0, 1, 115, 111, 108, 2, 115, 0, 1, 115, 111, 114,
-			2, 17, 67, 17, 65, 0, 1, 115, 117, 101, 114, 2, 21, 0, 1, 115, 117, 111, 112, 2, 17, 67, 0, 1, 116, 10, 2, 114, 21, 0,
-			1, 116, 17, 65, 10, 2, 98, 17, 65, 21, 0, 1, 117, 111, 2, 17, 67, 0, 1, 118, 2, 110, 110, 111, 21, 12, 0, 1, 119, 2,
-			108, 105, 110, 103, 0, 1, 119, 10, 2, 102, 0, 1, 119, 17, 65, 2, 98, 17, 65, 0, 1, 119, 97, 2, 17, 67, 21, 0, 1, 119,
-			101, 107, 115, 2, 17, 67, 0, 1, 119, 101, 108, 2, 110, 115, 0, 1, 119, 108, 97, 104, 2, 25, 0, 1, 119, 108, 111, 17, 67, 2,
-			17, 67, 0, 1, 119, 114, 2, 115, 0, 1, 119, 117, 101, 17, 67, 2, 108, 0, 1, 119, 121, 2, 114, 17, 65, 0, 1, 119, 121, 116,
-			115, 2, 17, 67, 0, 1, 121, 17, 67, 2, 17, 67, 12, 0, 1, 121, 17, 67, 2, 17, 67, 17, 67, 0, 2, 17, 67, 111, 117, 120,
-			0, 2, 110, 97, 114, 101, 115, 32, 0, 8, 100, 97, 2, 108, 17, 67, 0, 8, 100, 105, 101, 109, 2, 17, 67, 0, 8, 100, 110, 101,
-			101, 2, 17, 67, 17, 65, 0, 8, 108, 101, 105, 115, 2, 21, 0, 8, 112, 111, 2, 110, 0, 8, 112, 115, 97, 114, 2, 114, 0, 8,
-			115, 110, 101, 109, 0, 8, 115, 110, 101, 109, 2, 107, 0, 8, 119, 101, 2, 12, 12, 0, 4, 1, 17, 67, 2, 114, 106, 3, 13, 6,
-			0, 1, 114, 112, 114, 101, 116, 110, 105, 2, 116, 17, 65, 0, 4, 1, 17, 67, 2, 117, 105, 116, 3, 13, 10, 0, 1, 17, 67, 10,
-			2, 117, 117, 0, 1, 17, 67, 21, 2, 97, 17, 67, 17, 67, 0, 1, 17, 67, 21, 2, 111, 111, 114, 0, 1, 100, 110, 111, 104, 2,
-			21, 0, 1, 110, 105, 101, 116, 110, 111, 102, 2, 17, 67, 0, 1, 117, 111, 2, 97, 0, 4, 114, 1, 17, 67, 21, 2, 116, 121, 100,
-			3, 13, 34, 0, 114, 1, 102, 102, 2, 21, 0, 114, 1, 105, 17, 65, 2, 17, 65, 0, 114, 1, 105, 101, 108, 2, 115, 0, 114, 105,
-			101, 1, 110, 2, 32, 3, 13, 34, 6, 37, 0, 4, 114, 101, 115, 1, 17, 67, 3, 13, 34, 6, 108, 89, 0, 114, 101, 115, 115, 1,
-			17, 67, 0, 114, 105, 1, 110, 117, 101, 2, 110, 3, 13, 34, 6, 109, 0, 114, 1, 112, 111, 108, 2, 17, 65, 3, 13, 34, 10, 0,
-			114, 101, 1, 10, 2, 32, 3, 13, 34, 13, 0, 114, 101, 115, 1, 116, 97, 108, 3, 13, 34, 13, 89, 0, 4, 114, 115, 1, 10, 2,
-			32, 3, 13, 34, 89, 0, 114, 115, 1, 112, 108, 101, 104, 2, 32, 0, 114, 115, 1, 112, 114, 101, 119, 2, 32, 0, 114, 115, 1, 112,
-			114, 111, 100, 2, 32, 0, 114, 115, 1, 119, 101, 105, 2, 116, 101, 114, 0, 114, 115, 121, 100, 115, 1, 17, 67, 3, 13, 34, 89, 123,
-			47, 89, 0, 114, 101, 1, 115, 110, 97, 100, 21, 2, 25, 3, 13, 34, 108, 0, 114, 105, 103, 1, 25, 10, 3, 13, 34, 109, 136, 0,
-			4, 114, 105, 103, 101, 1, 17, 65, 17, 65, 3, 13, 34, 109, 136, 13, 0, 114, 105, 103, 101, 1, 25, 10, 0, 4, 114, 101, 105, 1,
-			10, 2, 32, 3, 13, 34, 123, 0, 114, 121, 1, 21, 2, 32, 12, 0, 114, 121, 1, 21, 2, 101, 32, 0, 107, 101, 1, 110, 2, 32,
-			3, 13, 49, 13, 0, 108, 1, 102, 102, 2, 21, 3, 13, 55, 0, 108, 97, 103, 116, 105, 103, 3, 13, 55, 6, 35, 136, 47, 13, 136,
-			0, 108, 1, 103, 110, 97, 109, 2, 17, 65, 3, 13, 55, 10, 0, 108, 101, 1, 10, 2, 32, 3, 13, 55, 13, 0, 108, 105, 107, 1,
-			10, 2, 105, 110, 103, 3, 13, 55, 13, 49, 0, 108, 105, 107, 104, 101, 105, 100, 1, 10, 3, 13, 55, 13, 49, 123, 47, 0, 108, 105,
-			103, 97, 1, 21, 2, 32, 3, 13, 55, 37, 136, 35, 0, 108, 97, 97, 114, 3, 13, 55, 115, 34, 0, 108, 111, 111, 115, 1, 17, 67,
-			3, 13, 55, 117, 89, 0, 108, 111, 115, 101, 1, 17, 67, 3, 13, 55, 117, 89, 13, 0, 108, 121, 115, 1, 17, 67, 21, 3, 13, 55,
-			123, 89, 0, 100, 101, 114, 109, 1, 17, 67, 21, 3, 13, 72, 112, 34, 14, 65, 10, 0, 100, 97, 110, 115, 1, 17, 67, 21, 3, 13,
-			72, 133, 50, 89, 0, 119, 101, 114, 107, 1, 17, 67, 21, 3, 13, 84, 112, 34, 49, 0, 119, 121, 1, 17, 67, 2, 17, 67, 3, 13,
-			84, 123, 0, 4, 115, 1, 17, 67, 17, 65, 17, 65, 17, 67, 29, 2, 32, 3, 13, 89, 0, 115, 1, 17, 67, 17, 65, 29, 2, 32,
-			0, 115, 1, 100, 17, 65, 17, 65, 17, 65, 17, 67, 29, 2, 32, 0, 115, 1, 100, 17, 67, 10, 2, 32, 0, 115, 1, 105, 17, 65,
-			17, 65, 2, 32, 0, 115, 1, 107, 2, 32, 0, 4, 115, 115, 1, 17, 67, 21, 2, 32, 3, 21, 0, 120, 2, 12, 0, 121, 2, 32,
-			0, 4, 1, 17, 67, 101, 111, 17, 67, 2, 116, 106, 105, 101, 3, 37, 0, 1, 110, 110, 97, 112, 2, 116, 106, 105, 101, 0, 116, 106,
-			105, 101, 1, 10, 2, 12, 3, 37, 80, 37, 0, 116, 106, 105, 101, 115, 1, 110, 110, 3, 37, 80, 37, 89, 0, 4, 1, 17, 67, 2,
-			107, 115, 12, 12, 3, 108, 0, 1, 17, 67, 2, 107, 116, 21, 12, 12, 0, 1, 17, 67, 2, 109, 109, 12, 12, 0, 1, 17, 67, 11,
-			2, 116, 116, 12, 0, 1, 17, 67, 17, 65, 17, 67, 2, 17, 67, 11, 0, 1, 100, 2, 102, 105, 0, 1, 100, 101, 114, 112, 2, 115,
-			116, 105, 0, 1, 106, 2, 107, 0, 1, 107, 21, 2, 116, 116, 21, 12, 0, 1, 108, 10, 2, 109, 32, 0, 1, 114, 2, 100, 105, 103,
-			101, 114, 105, 110, 103, 0, 2, 17, 67, 0, 8, 119, 2, 115, 107, 117, 115, 0, 1, 100, 2, 109, 111, 110, 115, 3, 108, 2, 0, 1,
-			17, 67, 2, 104, 108, 101, 32, 12, 3, 108, 12, 0, 116, 106, 105, 101, 115, 1, 110, 17, 67, 3, 108, 37, 80, 37, 89, 0, 112, 105,
-			108, 101, 112, 8, 3, 108, 48, 13, 55, 6, 108, 48, 0, 112, 115, 1, 17, 67, 21, 2, 12, 3, 108, 48, 89, 0, 120, 105, 107, 1,
-			109, 3, 108, 49, 89, 2, 37, 49, 0, 120, 97, 115, 1, 116, 3, 108, 49, 89, 13, 89, 0, 107, 115, 116, 97, 115, 101, 3, 108, 49,
-			89, 47, 6, 115, 89, 13, 0, 107, 115, 116, 101, 114, 8, 2, 25, 3, 108, 49, 89, 47, 13, 34, 0, 107, 115, 116, 114, 97, 2, 25,
-			3, 108, 49, 89, 47, 34, 35, 0, 118, 111, 108, 117, 115, 3, 108, 84, 110, 55, 6, 118, 89, 0, 4, 1, 17, 67, 2, 107, 3, 112,
-			0, 1, 17, 67, 2, 107, 107, 21, 12, 0, 1, 17, 67, 11, 2, 103, 103, 0, 1, 17, 67, 17, 65, 17, 67, 2, 103, 103, 0, 1,
-			17, 67, 21, 2, 103, 100, 12, 0, 1, 17, 67, 21, 2, 108, 107, 32, 12, 0, 1, 17, 67, 21, 2, 108, 107, 101, 32, 0, 1, 100,
-			21, 2, 114, 110, 115, 116, 12, 12, 0, 1, 100, 100, 108, 2, 108, 103, 17, 65, 17, 67, 0, 1, 107, 115, 21, 2, 108, 0, 1, 108,
-			108, 2, 108, 25, 0, 1, 109, 21, 2, 108, 100, 0, 1, 110, 107, 2, 108, 0, 1, 112, 115, 17, 67, 2, 108, 100, 0, 1, 112, 115,
-			17, 67, 2, 108, 115, 0, 1, 112, 115, 101, 103, 2, 108, 100, 0, 1, 112, 115, 117, 111, 107, 115, 2, 108, 32, 0, 1, 112, 115, 121,
-			108, 98, 2, 108, 25, 0, 1, 115, 17, 67, 2, 108, 102, 0, 1, 115, 17, 67, 2, 108, 108, 101, 32, 0, 1, 115, 107, 110, 111, 114,
-			116, 2, 108, 0, 1, 115, 114, 101, 105, 101, 2, 108, 0, 1, 116, 17, 65, 17, 67, 2, 103, 110, 0, 1, 118, 101, 17, 67, 2, 103,
-			25, 0, 1, 119, 17, 65, 17, 67, 2, 114, 107, 17, 65, 0, 1, 119, 17, 65, 17, 67, 2, 114, 107, 25, 0, 1, 119, 21, 2, 108,
-			115, 121, 110, 0, 1, 119, 108, 111, 98, 2, 114, 107, 32, 0, 2, 103, 25, 0, 2, 108, 25, 0, 2, 114, 0, 4, 114, 8, 2, 98,
-			3, 112, 34, 6, 0, 114, 8, 2, 118, 0, 114, 112, 1, 17, 67, 21, 2, 32, 3, 112, 34, 48, 0, 114, 112, 101, 1, 17, 67, 21,
-			2, 32, 3, 112, 34, 48, 13, 0, 114, 112, 105, 101, 1, 17, 67, 21, 2, 32, 3, 112, 34, 48, 37, 0, 4, 114, 107, 101, 1, 109,
-			2, 110, 100, 3, 112, 34, 49, 13, 0, 114, 107, 101, 1, 112, 2, 110, 100, 0, 114, 107, 101, 1, 119, 2, 110, 100, 0, 114, 100, 101,
-			8, 2, 17, 67, 3, 112, 34, 72, 13, 0, 114, 102, 1, 17, 67, 21, 2, 32, 3, 112, 34, 83, 0, 114, 119, 101, 1, 17, 67, 21,
-			2, 32, 3, 112, 34, 84, 13, 0, 4, 114, 115, 1, 112, 102, 2, 32, 3, 112, 34, 89, 0, 114, 115, 1, 112, 103, 2, 32, 0, 114,
-			115, 1, 112, 107, 2, 32, 0, 114, 115, 1, 112, 108, 2, 32, 0, 114, 115, 1, 112, 110, 2, 32, 0, 114, 115, 1, 112, 114, 2, 32,
-			0, 108, 112, 101, 8, 3, 112, 55, 48, 13, 0, 4, 114, 115, 1, 107, 103, 3, 113, 34, 89, 0, 114, 115, 1, 107, 116, 0, 114, 115,
-			1, 112, 117, 111, 108, 98, 0, 4, 3, 116, 0, 1, 17, 67, 2, 107, 17, 65, 12, 0, 1, 100, 17, 67, 17, 65, 2, 108, 101, 32,
-			0, 1, 100, 100, 17, 67, 2, 108, 101, 32, 0, 1, 100, 101, 111, 116, 2, 108, 105, 110, 103, 0, 1, 100, 110, 105, 2, 108, 105, 110,
-			103, 0, 1, 100, 115, 17, 67, 2, 108, 101, 32, 0, 1, 108, 108, 2, 115, 101, 114, 0, 1, 116, 105, 17, 67, 2, 114, 105, 110, 103,
-			0, 1, 116, 110, 171, 195, 105, 2, 114, 21, 110, 0, 1, 119, 21, 2, 103, 101, 110, 100, 101, 0, 1, 119, 114, 2, 115, 101, 32, 0,
-			2, 17, 67, 17, 65, 0, 8, 100, 110, 101, 101, 2, 108, 105, 103, 0, 195, 171, 0, 114, 101, 1, 119, 115, 2, 32, 3, 116, 12, 34,
-			13, 0, 4, 114, 101, 1, 108, 21, 2, 32, 3, 116, 34, 13, 0, 114, 101, 8, 0, 108, 108, 101, 110, 100, 101, 8, 3, 116, 55, 6,
-			108, 50, 72, 13, 0, 108, 108, 101, 110, 100, 105, 103, 8, 3, 116, 55, 6, 108, 50, 72, 13, 136, 0, 108, 97, 97, 114, 1, 100, 114,
-			111, 111, 3, 116, 55, 115, 34, 0, 109, 97, 1, 17, 67, 2, 32, 3, 116, 65, 35, 0, 100, 101, 1, 17, 67, 2, 32, 3, 116, 72,
-			13, 0, 100, 101, 108, 8, 3, 116, 72, 13, 55, 0, 100, 101, 115, 1, 17, 67, 2, 32, 3, 116, 72, 13, 89, 0, 119, 101, 108, 1,
-			17, 67, 2, 17, 65, 3, 116, 84, 13, 55, 0, 119, 105, 103, 104, 101, 105, 2, 100, 3, 116, 84, 13, 136, 4, 123, 0, 4, 105, 3,
-			123, 0, 121, 0, 105, 101, 114, 3, 123, 13, 34, 0, 105, 110, 100, 2, 101, 107, 115, 3, 123, 50, 47, 10, 0, 117, 3, 128, 0, 117,
-			101, 1, 17, 67, 3, 128, 13, 0, 117, 110, 116, 106, 105, 101, 3, 128, 37, 68, 80, 37, 0, 7, 6, 102, 0, 2, 102, 3, 0, 4,
-			105, 101, 108, 100, 3, 21, 0, 105, 116, 122, 8, 0, 117, 108, 1, 21, 2, 32, 0, 3, 83, 0, 4, 97, 2, 98, 114, 105, 101, 107,
-			3, 83, 2, 35, 0, 97, 2, 110, 97, 116, 105, 0, 97, 2, 116, 97, 21, 0, 97, 114, 105, 2, 115, 101, 195, 171, 114, 3, 83, 2,
-			35, 34, 2, 37, 0, 97, 114, 109, 97, 2, 115, 101, 117, 116, 3, 83, 2, 35, 34, 65, 2, 35, 0, 97, 116, 2, 115, 111, 101, 110,
-			3, 83, 2, 35, 47, 0, 97, 107, 2, 116, 111, 114, 101, 3, 83, 2, 35, 49, 0, 97, 107, 117, 108, 2, 116, 101, 105, 116, 3, 83,
-			2, 35, 49, 2, 111, 55, 0, 97, 107, 116, 117, 2, 114, 101, 114, 105, 3, 83, 2, 35, 49, 47, 2, 118, 0, 4, 97, 110, 2, 102,
-			97, 114, 101, 3, 83, 2, 35, 50, 0, 97, 110, 8, 2, 116, 111, 0, 97, 110, 116, 97, 2, 115, 17, 65, 3, 83, 2, 35, 50, 47,
-			2, 35, 0, 97, 109, 105, 2, 108, 105, 17, 65, 3, 83, 2, 35, 65, 37, 0, 97, 98, 114, 105, 2, 17, 67, 17, 65, 3, 83, 2,
-			35, 71, 34, 2, 37, 0, 97, 115, 105, 108, 105, 3, 83, 2, 35, 89, 13, 55, 2, 37, 0, 97, 115, 101, 2, 116, 25, 3, 83, 2,
-			35, 89, 108, 0, 97, 115, 97, 100, 101, 3, 83, 2, 35, 89, 115, 72, 13, 0, 4, 105, 2, 115, 97, 110, 116, 3, 83, 2, 37, 0,
-			105, 8, 2, 110, 97, 21, 0, 105, 97, 115, 107, 111, 3, 83, 2, 37, 35, 89, 49, 2, 40, 0, 111, 114, 101, 2, 108, 3, 83, 2,
-			40, 34, 112, 0, 111, 110, 101, 2, 116, 105, 101, 3, 83, 2, 40, 50, 116, 0, 101, 2, 109, 105, 110, 17, 65, 3, 83, 2, 108, 0,
-			101, 114, 111, 2, 109, 111, 3, 83, 2, 108, 34, 2, 40, 0, 101, 100, 101, 2, 114, 97, 3, 83, 2, 108, 72, 13, 0, 101, 115, 115,
-			111, 114, 2, 97, 21, 3, 83, 2, 108, 89, 13, 34, 0, 111, 2, 115, 115, 105, 101, 108, 3, 83, 2, 110, 0, 111, 114, 8, 2, 17,
-			67, 21, 3, 83, 2, 110, 34, 0, 111, 114, 109, 97, 2, 108, 105, 101, 110, 3, 83, 2, 110, 34, 65, 2, 35, 0, 111, 114, 109, 105,
-			2, 100, 97, 3, 83, 2, 110, 34, 65, 2, 37, 0, 111, 114, 109, 117, 2, 108, 105, 101, 114, 3, 83, 2, 110, 34, 65, 2, 118, 0,
-			111, 110, 2, 116, 101, 105, 110, 3, 83, 2, 110, 50, 0, 111, 110, 100, 117, 101, 3, 83, 2, 110, 50, 72, 118, 0, 111, 115, 2, 102,
-			97, 3, 83, 2, 110, 89, 0, 117, 110, 103, 2, 101, 3, 83, 2, 111, 68, 136, 0, 101, 8, 2, 116, 97, 21, 3, 83, 2, 116, 0,
-			111, 116, 111, 2, 115, 116, 97, 3, 83, 2, 117, 47, 2, 40, 0, 111, 116, 111, 103, 101, 2, 110, 105, 101, 3, 83, 2, 117, 47, 2,
-			40, 136, 116, 0, 111, 110, 101, 2, 116, 105, 101, 107, 3, 83, 2, 117, 50, 13, 0, 117, 8, 2, 116, 105, 3, 83, 2, 118, 0, 117,
-			115, 105, 2, 108, 108, 17, 65, 3, 83, 2, 118, 89, 13, 0, 121, 110, 103, 101, 2, 118, 111, 101, 108, 105, 3, 83, 2, 123, 50, 136,
-			13, 0, 111, 114, 8, 2, 115, 101, 32, 3, 83, 6, 110, 34, 0, 111, 110, 105, 101, 115, 1, 21, 3, 83, 6, 117, 50, 37, 89, 0,
-			4, 105, 2, 115, 105, 101, 107, 3, 83, 13, 0, 105, 2, 115, 107, 17, 65, 0, 101, 114, 2, 119, 101, 101, 108, 3, 83, 13, 34, 0,
-			101, 110, 111, 109, 2, 101, 3, 83, 13, 50, 2, 110, 65, 0, 101, 110, 111, 109, 101, 110, 2, 17, 65, 21, 3, 83, 13, 50, 2, 110,
-			65, 13, 50, 0, 4, 101, 108, 1, 21, 2, 101, 110, 100, 3, 83, 13, 55, 0, 101, 108, 1, 21, 2, 105, 110, 103, 0, 105, 108, 105,
-			2, 112, 112, 17, 65, 3, 83, 13, 55, 13, 0, 105, 108, 105, 115, 116, 121, 110, 3, 83, 13, 55, 13, 89, 47, 6, 123, 50, 0, 105,
-			108, 108, 101, 2, 116, 3, 83, 13, 55, 108, 0, 101, 115, 115, 111, 114, 101, 2, 32, 3, 83, 13, 89, 117, 34, 13, 0, 114, 97, 2,
-			103, 105, 101, 108, 3, 83, 34, 2, 35, 0, 4, 114, 97, 110, 2, 17, 67, 105, 110, 97, 3, 83, 34, 2, 35, 50, 0, 114, 97, 110,
-			8, 2, 17, 67, 105, 115, 17, 67, 17, 65, 0, 114, 97, 110, 103, 105, 2, 112, 97, 110, 105, 3, 83, 34, 2, 35, 68, 2, 37, 0,
-			114, 101, 2, 107, 119, 101, 110, 3, 83, 34, 2, 37, 0, 114, 111, 110, 116, 2, 17, 65, 21, 3, 83, 34, 2, 110, 50, 47, 0, 114,
-			117, 2, 115, 116, 114, 3, 83, 34, 2, 111, 0, 114, 105, 107, 107, 97, 100, 101, 2, 108, 3, 83, 34, 13, 49, 13, 72, 112, 0, 114,
-			101, 117, 100, 3, 83, 34, 124, 72, 0, 97, 2, 108, 97, 110, 107, 115, 3, 83, 35, 0, 105, 110, 101, 1, 114, 111, 109, 2, 21, 3,
-			83, 37, 50, 13, 10, 0, 4, 111, 110, 105, 101, 1, 21, 3, 83, 40, 50, 6, 37, 0, 111, 110, 105, 101, 1, 21, 2, 115, 21, 21,
-			0, 4, 108, 97, 2, 103, 114, 97, 110, 116, 3, 83, 55, 2, 35, 0, 108, 97, 2, 109, 105, 0, 108, 97, 109, 98, 111, 2, 106, 97,
-			110, 116, 3, 83, 55, 2, 35, 65, 71, 2, 40, 0, 108, 111, 2, 114, 101, 3, 83, 55, 2, 40, 0, 108, 101, 98, 2, 111, 116, 111,
-			109, 105, 101, 3, 83, 55, 2, 108, 71, 0, 108, 111, 114, 105, 2, 115, 115, 17, 65, 3, 83, 55, 2, 117, 34, 13, 0, 108, 117, 2,
-			119, 101, 3, 83, 55, 2, 118, 0, 108, 105, 107, 116, 8, 2, 101, 114, 17, 65, 3, 83, 55, 13, 49, 47, 0, 101, 115, 115, 111, 114,
-			3, 83, 108, 89, 13, 34, 0, 111, 107, 8, 2, 111, 3, 83, 110, 49, 10, 0, 117, 110, 103, 117, 115, 3, 83, 111, 68, 81, 111, 89,
-			10, 0, 101, 98, 114, 117, 97, 114, 105, 101, 3, 83, 116, 71, 34, 118, 4, 115, 34, 37, 0, 111, 2, 116, 111, 103, 114, 97, 3, 83,
-			117, 0, 111, 116, 111, 3, 83, 117, 47, 40, 0, 111, 108, 105, 111, 3, 83, 117, 55, 37, 10, 40, 0, 101, 105, 116, 101, 3, 83, 123,
-			47, 13, 0, 121, 110, 103, 101, 2, 17, 67, 3, 83, 123, 50, 136, 13, 0, 7, 6, 103, 0, 2, 103, 3, 0, 4, 104, 116, 3, 21,
-			0, 110, 1, 21, 2, 32, 0, 110, 111, 110, 1, 21, 2, 32, 3, 21, 102, 114, 0, 104, 8, 3, 81, 0, 104, 105, 2, 116, 97, 3,
-			81, 2, 37, 0, 117, 105, 108, 108, 111, 116, 105, 110, 101, 3, 81, 2, 37, 55, 2, 40, 47, 37, 50, 0, 111, 2, 114, 105, 108, 108,
-			97, 3, 81, 2, 40, 0, 117, 101, 114, 114, 105, 108, 108, 97, 3, 81, 13, 34, 6, 109, 55, 35, 0, 97, 114, 97, 103, 101, 3, 81,
-			13, 34, 6, 115, 75, 0, 108, 105, 115, 101, 2, 114, 105, 101, 110, 3, 81, 55, 13, 89, 13, 0, 97, 108, 97, 2, 32, 3, 81, 115,
-			55, 2, 35, 0, 111, 117, 114, 109, 101, 116, 3, 81, 117, 34, 65, 123, 12, 0, 4, 3, 136, 0, 104, 2, 32, 0, 4, 97, 2, 108,
-			17, 65, 17, 67, 3, 136, 2, 35, 0, 97, 2, 114, 105, 101, 112, 0, 97, 114, 2, 110, 3, 136, 2, 35, 34, 0, 97, 114, 121, 101,
-			1, 17, 67, 21, 3, 136, 2, 35, 34, 6, 123, 13, 0, 97, 114, 110, 105, 2, 115, 111, 101, 110, 3, 136, 2, 35, 34, 50, 2, 37,
-			0, 97, 108, 2, 106, 111, 101, 110, 3, 136, 2, 35, 55, 0, 97, 108, 97, 2, 115, 105, 3, 136, 2, 35, 55, 115, 0, 111, 101, 100,
-			2, 103, 117, 110, 115, 116, 3, 136, 2, 40, 47, 0, 111, 101, 100, 101, 114, 2, 116, 105, 101, 3, 136, 2, 40, 72, 13, 34, 0, 111,
-			101, 119, 101, 114, 8, 3, 136, 2, 40, 84, 13, 34, 0, 111, 114, 2, 100, 121, 110, 3, 136, 2, 110, 34, 0, 4, 111, 100, 2, 115,
-			97, 108, 105, 103, 3, 136, 2, 110, 47, 0, 111, 100, 2, 118, 114, 0, 4, 111, 100, 115, 2, 100, 105, 101, 110, 115, 116, 105, 103, 3,
-			136, 2, 110, 47, 89, 0, 111, 100, 115, 2, 108, 97, 115, 116, 101, 114, 0, 111, 100, 100, 101, 2, 108, 111, 3, 136, 2, 110, 72, 13,
-			0, 117, 116, 116, 117, 2, 114, 97, 3, 136, 2, 111, 47, 2, 111, 0, 111, 2, 100, 105, 110, 3, 136, 2, 117, 0, 97, 117, 116, 101,
-			110, 103, 3, 136, 2, 129, 47, 108, 68, 0, 111, 195, 171, 1, 17, 65, 3, 136, 6, 40, 13, 0, 97, 109, 105, 101, 115, 3, 136, 6,
-			115, 65, 37, 89, 0, 111, 111, 103, 1, 17, 65, 2, 32, 3, 136, 6, 117, 136, 0, 111, 103, 105, 101, 115, 1, 17, 65, 3, 136, 6,
-			117, 136, 37, 89, 0, 97, 115, 8, 2, 17, 65, 3, 136, 7, 35, 89, 10, 0, 103, 101, 1, 21, 2, 32, 3, 136, 13, 0, 105, 109,
-			2, 110, 97, 25, 3, 136, 13, 65, 0, 105, 109, 110, 97, 2, 115, 105, 17, 65, 3, 136, 13, 65, 50, 115, 0, 4, 114, 97, 2, 102,
-			105, 101, 107, 3, 136, 34, 2, 35, 0, 114, 97, 2, 102, 105, 101, 116, 0, 114, 97, 2, 110, 105, 101, 116, 0, 114, 97, 2, 115, 105,
-			101, 117, 0, 114, 97, 8, 2, 118, 17, 65, 0, 114, 97, 110, 100, 105, 2, 111, 3, 136, 34, 2, 35, 50, 72, 2, 37, 0, 114, 97,
-			109, 97, 2, 100, 111, 101, 3, 136, 34, 2, 35, 65, 2, 35, 0, 114, 97, 109, 109, 97, 2, 116, 105, 107, 3, 136, 34, 2, 35, 65,
-			35, 0, 114, 97, 100, 101, 2, 114, 105, 110, 103, 3, 136, 34, 2, 35, 72, 116, 0, 114, 111, 110, 100, 119, 101, 116, 108, 105, 107, 3,
-			136, 34, 2, 110, 50, 47, 84, 108, 47, 55, 13, 49, 0, 114, 97, 97, 100, 8, 2, 116, 3, 136, 34, 2, 115, 0, 4, 114, 97, 97,
-			100, 8, 2, 110, 101, 103, 101, 3, 136, 34, 2, 115, 47, 0, 114, 97, 97, 100, 8, 2, 118, 121, 102, 0, 114, 97, 97, 100, 8, 2,
-			101, 3, 136, 34, 2, 115, 47, 10, 0, 114, 97, 97, 100, 115, 101, 8, 2, 115, 3, 136, 34, 2, 115, 47, 89, 108, 0, 114, 1, 97,
-			17, 67, 117, 111, 2, 111, 111, 116, 106, 105, 101, 3, 136, 34, 6, 0, 4, 114, 97, 8, 2, 110, 97, 3, 136, 34, 13, 0, 114, 105,
-			2, 102, 102, 105, 101, 114, 0, 114, 105, 8, 2, 109, 17, 65, 0, 114, 97, 115, 8, 2, 17, 65, 3, 136, 34, 35, 89, 10, 0, 114,
-			105, 101, 107, 119, 97, 3, 136, 34, 37, 49, 58, 35, 0, 114, 111, 110, 100, 119, 101, 2, 116, 25, 3, 136, 34, 110, 50, 47, 84, 108,
-			0, 114, 111, 110, 100, 119, 101, 116, 2, 97, 3, 136, 34, 110, 50, 47, 84, 108, 47, 10, 0, 114, 97, 8, 2, 115, 105, 101, 3, 136,
-			34, 115, 0, 114, 97, 100, 101, 2, 17, 67, 3, 136, 34, 115, 72, 13, 0, 114, 111, 116, 101, 114, 101, 3, 136, 34, 117, 47, 13, 34,
-			13, 0, 4, 114, 111, 110, 100, 1, 114, 101, 116, 103, 97, 2, 105, 3, 136, 34, 131, 50, 47, 10, 0, 114, 111, 110, 100, 2, 111, 0,
-			97, 116, 8, 2, 111, 3, 136, 35, 47, 10, 0, 97, 109, 105, 101, 2, 32, 3, 136, 35, 65, 6, 37, 0, 111, 103, 105, 101, 1, 17,
-			65, 2, 32, 3, 136, 40, 136, 6, 37, 0, 108, 101, 116, 115, 101, 114, 3, 136, 55, 7, 108, 47, 89, 13, 34, 0, 108, 97, 110, 115,
-			3, 136, 55, 35, 50, 89, 0, 4, 108, 97, 115, 2, 97, 3, 136, 55, 35, 89, 10, 0, 108, 97, 115, 2, 111, 0, 105, 102, 8, 2,
-			17, 65, 3, 136, 109, 83, 10, 0, 111, 109, 97, 103, 2, 116, 105, 103, 3, 136, 110, 65, 10, 2, 35, 136, 0, 117, 115, 2, 111, 111,
-			105, 3, 136, 111, 89, 10, 0, 97, 100, 101, 8, 3, 136, 115, 72, 13, 0, 4, 97, 115, 2, 101, 114, 105, 103, 3, 136, 115, 89, 0,
-			97, 115, 2, 105, 101, 0, 97, 115, 2, 105, 103, 0, 195, 169, 115, 101, 108, 3, 136, 116, 89, 13, 55, 0, 4, 111, 117, 100, 2, 97,
-			21, 3, 136, 120, 47, 10, 0, 111, 117, 100, 2, 111, 0, 104, 101, 105, 100, 1, 21, 3, 136, 123, 47, 0, 4, 97, 110, 115, 1, 21,
-			3, 136, 133, 50, 89, 0, 97, 110, 115, 2, 17, 67, 0, 7, 6, 104, 0, 4, 1, 17, 65, 21, 2, 32, 3, 0, 2, 104, 3, 0,
-			108, 101, 1, 17, 65, 2, 32, 3, 8, 105, 108, 0, 3, 107, 0, 97, 114, 2, 112, 111, 101, 110, 3, 107, 2, 35, 34, 0, 4, 97,
-			114, 100, 2, 17, 67, 21, 3, 107, 2, 35, 34, 47, 0, 97, 114, 116, 2, 114, 111, 101, 114, 0, 97, 114, 116, 2, 115, 116, 111, 103,
-			116, 101, 32, 0, 97, 114, 108, 101, 2, 107, 121, 110, 3, 107, 2, 35, 34, 55, 13, 0, 97, 114, 109, 111, 2, 110, 105, 101, 3, 107,
-			2, 35, 34, 65, 2, 40, 0, 4, 97, 108, 2, 115, 115, 116, 97, 114, 3, 107, 2, 35, 55, 0, 97, 108, 2, 118, 101, 21, 0, 97,
-			108, 102, 2, 118, 105, 101, 114, 0, 97, 108, 102, 2, 118, 121, 102, 0, 97, 108, 111, 2, 103, 101, 3, 107, 2, 35, 55, 2, 40, 0,
-			97, 108, 108, 101, 108, 117, 106, 97, 3, 107, 2, 35, 55, 13, 55, 118, 57, 2, 35, 0, 4, 97, 108, 102, 2, 100, 114, 105, 101, 3,
-			107, 2, 35, 55, 83, 0, 97, 108, 102, 2, 107, 114, 111, 21, 0, 97, 108, 102, 2, 110, 101, 103, 101, 0, 97, 108, 102, 2, 115, 101,
-			119, 101, 0, 97, 108, 102, 2, 116, 105, 101, 110, 0, 97, 108, 102, 2, 116, 119, 97, 97, 108, 102, 0, 97, 108, 102, 2, 116, 119, 101,
-			101, 0, 4, 97, 108, 102, 2, 101, 101, 110, 3, 107, 2, 35, 55, 83, 10, 0, 97, 108, 102, 2, 101, 108, 102, 0, 97, 108, 102, 8,
-			2, 97, 103, 25, 0, 97, 108, 102, 115, 101, 2, 115, 3, 107, 2, 35, 55, 83, 89, 108, 0, 4, 105, 2, 115, 116, 111, 3, 107, 2,
-			37, 0, 105, 8, 2, 98, 105, 115, 0, 105, 101, 114, 110, 97, 2, 109, 97, 97, 108, 3, 107, 2, 37, 12, 34, 50, 115, 0, 105, 195,
-			171, 114, 2, 97, 114, 103, 105, 101, 3, 107, 2, 37, 13, 34, 0, 105, 195, 171, 114, 97, 114, 2, 103, 105, 101, 32, 24, 3, 107, 2,
-			37, 13, 34, 2, 35, 34, 0, 105, 195, 171, 114, 111, 2, 103, 108, 105, 101, 3, 107, 2, 37, 13, 34, 2, 40, 0, 105, 112, 2, 110,
-			111, 17, 67, 17, 65, 3, 107, 2, 37, 48, 0, 105, 112, 101, 114, 2, 98, 111, 3, 107, 2, 37, 48, 13, 34, 0, 105, 97, 2, 115,
-			105, 110, 116, 3, 107, 2, 37, 57, 2, 35, 0, 105, 115, 116, 114, 105, 2, 111, 110, 3, 107, 2, 37, 89, 47, 34, 2, 37, 0, 105,
-			195, 171, 110, 97, 3, 107, 2, 37, 116, 12, 50, 35, 0, 105, 103, 105, 195, 171, 2, 110, 17, 65, 3, 107, 2, 37, 136, 2, 37, 116,
-			0, 111, 116, 101, 2, 108, 3, 107, 2, 40, 47, 112, 0, 111, 101, 118, 101, 2, 114, 3, 107, 2, 40, 83, 112, 0, 111, 101, 118, 101,
-			101, 108, 104, 2, 101, 3, 107, 2, 40, 83, 116, 55, 107, 0, 111, 2, 110, 110, 101, 117, 114, 3, 107, 2, 110, 0, 4, 111, 114, 2,
-			108, 111, 115, 3, 107, 2, 110, 34, 0, 111, 114, 2, 109, 111, 0, 111, 114, 114, 105, 2, 98, 17, 65, 3, 107, 2, 110, 34, 2, 37,
-			0, 111, 110, 103, 2, 97, 3, 107, 2, 110, 68, 136, 0, 111, 114, 105, 115, 111, 110, 2, 116, 97, 3, 107, 2, 117, 34, 2, 37, 89,
-			2, 110, 50, 0, 4, 111, 111, 103, 2, 100, 114, 97, 3, 107, 2, 117, 136, 0, 111, 111, 103, 2, 109, 111, 101, 100, 105, 103, 0, 117,
-			2, 109, 101, 117, 114, 3, 107, 2, 118, 0, 117, 105, 115, 2, 104, 111, 117, 100, 32, 3, 107, 2, 127, 89, 0, 97, 114, 116, 105, 103,
-			1, 21, 3, 107, 6, 35, 34, 47, 13, 136, 0, 97, 108, 1, 17, 67, 21, 2, 115, 17, 65, 3, 107, 6, 35, 55, 0, 97, 108, 102,
-			8, 2, 103, 101, 14, 128, 132, 132, 3, 107, 6, 35, 55, 83, 0, 105, 110, 107, 101, 2, 112, 105, 110, 107, 3, 107, 13, 68, 49, 13,
-			0, 4, 97, 114, 100, 2, 104, 101, 105, 100, 3, 107, 35, 34, 47, 0, 97, 114, 100, 2, 108, 111, 0, 97, 114, 100, 2, 115, 116, 101,
-			0, 97, 114, 116, 2, 115, 116, 111, 103, 116, 101, 32, 24, 0, 97, 114, 100, 103, 101, 2, 17, 67, 3, 107, 35, 34, 47, 136, 13, 0,
-			97, 114, 109, 111, 110, 105, 101, 115, 3, 107, 35, 34, 65, 6, 117, 50, 37, 89, 0, 97, 114, 100, 101, 3, 107, 35, 34, 72, 13, 0,
-			97, 110, 100, 2, 111, 3, 107, 35, 50, 47, 19, 0, 105, 116, 108, 101, 114, 3, 107, 37, 47, 55, 13, 34, 0, 105, 112, 111, 8, 2,
-			21, 14, 128, 132, 132, 3, 107, 37, 48, 40, 0, 105, 110, 2, 100, 111, 101, 3, 107, 37, 50, 0, 105, 109, 110, 101, 3, 107, 37, 65,
-			50, 13, 0, 105, 115, 116, 101, 114, 2, 105, 3, 107, 37, 89, 47, 6, 116, 34, 0, 105, 115, 116, 101, 114, 2, 101, 3, 107, 37, 89,
-			47, 13, 34, 0, 111, 101, 110, 100, 101, 114, 3, 107, 40, 50, 13, 34, 0, 111, 102, 2, 17, 65, 3, 107, 110, 83, 10, 0, 97, 2,
-			119, 101, 3, 107, 115, 0, 97, 112, 101, 114, 3, 107, 115, 48, 13, 34, 0, 97, 110, 101, 8, 2, 17, 67, 3, 107, 115, 50, 13, 0,
-			97, 109, 101, 114, 3, 107, 115, 65, 13, 34, 0, 111, 98, 111, 8, 3, 107, 117, 71, 40, 0, 111, 102, 2, 105, 101, 3, 107, 117, 83,
-			0, 7, 6, 105, 0, 4, 1, 17, 67, 2, 195, 171, 115, 116, 97, 3, 2, 37, 0, 1, 104, 2, 100, 114, 17, 65, 0, 1, 112, 115,
-			2, 111, 101, 110, 0, 1, 120, 97, 116, 2, 21, 0, 1, 180, 195, 2, 25, 0, 2, 114, 111, 110, 105, 101, 0, 2, 118, 111, 111, 114,
-			0, 8, 2, 107, 111, 0, 8, 2, 109, 109, 117, 0, 8, 2, 114, 114, 0, 195, 171, 116, 101, 105, 116, 3, 2, 37, 13, 47, 6, 123,
-			47, 0, 114, 97, 8, 2, 17, 67, 3, 2, 37, 34, 35, 0, 116, 97, 108, 105, 2, 97, 3, 2, 37, 47, 2, 35, 55, 2, 37, 0,
-			101, 116, 101, 114, 109, 97, 2, 103, 3, 2, 37, 47, 13, 34, 65, 2, 35, 0, 112, 101, 2, 107, 111, 110, 3, 2, 37, 48, 13, 0,
-			108, 108, 117, 109, 105, 2, 110, 17, 65, 3, 2, 37, 55, 2, 40, 65, 2, 37, 0, 108, 108, 117, 2, 115, 116, 114, 17, 65, 3, 2,
-			37, 55, 2, 111, 0, 108, 108, 117, 2, 115, 105, 3, 2, 37, 55, 118, 0, 109, 112, 97, 108, 97, 3, 2, 37, 65, 48, 115, 55, 35,
-			0, 98, 101, 114, 2, 105, 21, 3, 2, 37, 71, 116, 34, 0, 100, 8, 2, 17, 65, 3, 2, 37, 72, 0, 4, 100, 101, 2, 97, 3,
-			2, 37, 72, 2, 37, 0, 100, 101, 2, 195, 171, 0, 100, 105, 8, 2, 111, 0, 115, 108, 97, 109, 8, 2, 105, 3, 2, 37, 89, 55,
-			2, 35, 65, 0, 101, 115, 101, 8, 2, 17, 67, 3, 4, 37, 89, 13, 0, 101, 1, 114, 116, 2, 32, 24, 3, 6, 37, 0, 116, 105,
-			115, 1, 17, 67, 21, 2, 32, 3, 6, 37, 47, 13, 89, 0, 4, 101, 107, 1, 110, 21, 2, 32, 3, 6, 37, 49, 0, 101, 107, 1,
-			110, 21, 2, 101, 32, 0, 101, 107, 1, 114, 116, 21, 2, 32, 0, 101, 107, 1, 114, 116, 21, 2, 101, 25, 0, 101, 107, 1, 116, 21,
-			2, 32, 0, 101, 107, 1, 116, 21, 2, 101, 32, 0, 101, 102, 1, 115, 115, 2, 32, 3, 6, 37, 83, 0, 4, 101, 119, 101, 1, 115,
-			110, 2, 25, 3, 6, 37, 84, 13, 0, 101, 119, 101, 1, 115, 115, 2, 32, 0, 115, 105, 101, 1, 17, 67, 3, 6, 37, 89, 37, 0,
-			1, 17, 67, 114, 97, 110, 2, 115, 115, 117, 115, 3, 6, 109, 0, 109, 109, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 6, 109, 65,
-			13, 34, 10, 0, 4, 115, 1, 17, 67, 17, 65, 2, 32, 3, 6, 109, 89, 0, 115, 1, 109, 101, 111, 108, 98, 0, 115, 1, 114, 97,
-			116, 105, 108, 2, 12, 0, 115, 116, 101, 1, 17, 67, 17, 65, 2, 32, 3, 6, 109, 89, 47, 13, 0, 115, 116, 105, 101, 115, 1, 17,
-			67, 21, 3, 6, 109, 89, 47, 37, 89, 0, 4, 115, 107, 1, 17, 67, 2, 32, 3, 6, 109, 89, 49, 0, 115, 107, 1, 17, 67, 2,
-			101, 32, 0, 115, 109, 101, 1, 21, 2, 25, 3, 6, 109, 89, 65, 13, 0, 107, 97, 1, 21, 2, 32, 3, 8, 2, 37, 49, 2, 35,
-			0, 115, 1, 114, 97, 21, 2, 25, 3, 8, 13, 89, 0, 4, 1, 17, 67, 2, 103, 3, 13, 0, 1, 102, 101, 100, 2, 110, 0, 1,
-			109, 2, 110, 105, 115, 116, 101, 114, 0, 1, 115, 105, 114, 107, 2, 25, 0, 2, 110, 110, 101, 101, 109, 98, 97, 0, 2, 116, 105, 101,
-			102, 0, 2, 116, 105, 101, 119, 0, 8, 109, 101, 2, 114, 0, 103, 101, 114, 1, 10, 2, 32, 14, 128, 128, 130, 3, 13, 34, 0, 103,
-			101, 114, 115, 1, 10, 2, 32, 14, 128, 128, 131, 3, 13, 34, 89, 0, 107, 101, 1, 10, 2, 32, 14, 128, 128, 131, 3, 13, 49, 13,
-			0, 107, 101, 114, 1, 108, 10, 2, 17, 67, 3, 13, 49, 13, 34, 0, 107, 101, 110, 100, 1, 17, 67, 10, 3, 13, 49, 13, 50, 47,
-			0, 107, 101, 110, 100, 101, 1, 17, 67, 10, 3, 13, 49, 13, 50, 72, 13, 0, 107, 105, 110, 103, 1, 17, 67, 3, 13, 49, 13, 68,
-			0, 107, 101, 115, 1, 17, 67, 10, 2, 32, 3, 13, 49, 13, 89, 0, 110, 2, 116, 117, 115, 115, 101, 110, 3, 13, 50, 0, 110, 116,
-			101, 110, 2, 115, 3, 13, 50, 47, 108, 50, 0, 110, 115, 117, 114, 103, 101, 110, 2, 17, 67, 3, 13, 50, 89, 2, 111, 34, 136, 108,
-			50, 0, 110, 103, 101, 110, 105, 101, 117, 114, 3, 13, 50, 136, 13, 50, 6, 118, 13, 34, 0, 109, 109, 105, 8, 2, 103, 114, 17, 65,
-			3, 13, 65, 13, 0, 4, 109, 112, 111, 2, 115, 97, 110, 116, 3, 13, 65, 48, 2, 40, 0, 109, 112, 111, 2, 116, 101, 0, 109, 112,
-			101, 114, 97, 2, 116, 17, 65, 21, 3, 13, 65, 48, 2, 108, 34, 2, 35, 0, 109, 98, 101, 2, 115, 3, 13, 65, 71, 13, 0, 4,
-			115, 1, 98, 117, 112, 2, 32, 3, 13, 89, 0, 115, 1, 108, 105, 117, 118, 0, 115, 1, 108, 111, 112, 2, 32, 0, 115, 1, 109, 17,
-			65, 17, 65, 2, 32, 0, 115, 1, 110, 101, 2, 25, 0, 4, 115, 1, 110, 102, 2, 17, 65, 3, 13, 89, 10, 0, 115, 1, 110, 110,
-			2, 17, 65, 0, 115, 114, 97, 101, 2, 108, 105, 21, 3, 13, 89, 34, 2, 121, 0, 115, 114, 97, 101, 2, 108, 105, 3, 13, 89, 34,
-			122, 0, 103, 101, 114, 1, 17, 67, 21, 2, 17, 67, 17, 65, 3, 13, 136, 13, 34, 0, 103, 101, 110, 100, 1, 17, 67, 21, 2, 32,
-			3, 13, 136, 13, 50, 47, 0, 103, 101, 110, 100, 101, 1, 17, 67, 21, 3, 13, 136, 13, 50, 72, 13, 0, 103, 105, 110, 103, 1, 17,
-			67, 3, 13, 136, 13, 68, 0, 103, 104, 101, 105, 2, 100, 3, 13, 136, 123, 0, 4, 99, 1, 21, 2, 32, 3, 21, 0, 108, 101, 115,
-			2, 32, 0, 116, 121, 2, 32, 24, 0, 195, 169, 3, 26, 37, 0, 4, 3, 37, 0, 1, 21, 2, 115, 101, 114, 105, 110, 103, 0, 1,
-			104, 2, 100, 114, 111, 0, 1, 115, 112, 2, 103, 17, 65, 0, 2, 17, 67, 17, 65, 0, 8, 116, 110, 97, 2, 17, 67, 0, 101, 0,
-			101, 1, 103, 2, 114, 105, 103, 0, 101, 1, 104, 2, 114, 100, 105, 101, 0, 101, 1, 107, 2, 114, 97, 110, 17, 67, 0, 101, 1, 107,
-			2, 114, 105, 101, 0, 101, 1, 107, 2, 114, 116, 115, 0, 101, 1, 107, 115, 2, 114, 105, 103, 0, 101, 1, 112, 2, 114, 101, 119, 0,
-			101, 1, 112, 2, 114, 105, 110, 103, 0, 101, 1, 119, 2, 114, 111, 111, 107, 0, 101, 2, 117, 117, 0, 195, 171, 110, 3, 37, 6, 108,
-			50, 0, 97, 116, 101, 114, 1, 17, 67, 3, 37, 6, 115, 47, 13, 34, 0, 97, 116, 114, 105, 101, 115, 1, 17, 67, 3, 37, 6, 115,
-			47, 34, 37, 89, 0, 97, 110, 97, 3, 37, 6, 115, 50, 35, 0, 97, 97, 108, 2, 32, 25, 3, 37, 6, 115, 55, 0, 97, 108, 101,
-			2, 32, 3, 37, 6, 115, 55, 13, 0, 101, 101, 2, 17, 67, 3, 37, 6, 116, 0, 195, 171, 114, 2, 17, 65, 3, 37, 6, 116, 34,
-			0, 195, 171, 108, 101, 3, 37, 6, 116, 55, 13, 0, 101, 117, 115, 3, 37, 6, 128, 89, 0, 101, 1, 17, 67, 2, 114, 3, 37, 12,
-			0, 101, 195, 171, 2, 25, 3, 37, 12, 13, 0, 114, 105, 8, 2, 115, 3, 37, 34, 13, 0, 114, 114, 105, 116, 101, 114, 2, 21, 3,
-			37, 34, 13, 47, 6, 116, 34, 0, 114, 111, 110, 105, 101, 2, 32, 24, 3, 37, 34, 40, 50, 6, 37, 0, 97, 116, 114, 105, 101, 1,
-			17, 67, 3, 37, 35, 47, 34, 6, 37, 0, 116, 101, 105, 116, 3, 37, 47, 6, 123, 47, 0, 116, 101, 109, 3, 37, 47, 108, 65, 0,
-			4, 101, 107, 1, 110, 107, 21, 2, 32, 3, 37, 49, 0, 101, 107, 1, 116, 105, 114, 107, 0, 109, 112, 105, 8, 2, 16, 3, 37, 65,
-			48, 37, 0, 103, 8, 2, 108, 111, 3, 37, 81, 0, 4, 118, 101, 101, 114, 1, 17, 67, 3, 37, 83, 6, 116, 34, 0, 118, 101, 114,
-			1, 17, 67, 2, 17, 65, 0, 115, 101, 101, 114, 1, 21, 3, 37, 89, 6, 116, 34, 0, 115, 101, 114, 101, 110, 1, 21, 2, 100, 3,
-			37, 89, 6, 116, 34, 13, 50, 0, 115, 101, 117, 114, 1, 21, 3, 37, 89, 6, 128, 34, 0, 115, 105, 101, 1, 17, 67, 21, 21, 21,
-			3, 37, 89, 37, 0, 115, 105, 101, 117, 115, 1, 17, 67, 3, 37, 89, 37, 6, 128, 89, 0, 115, 108, 97, 109, 8, 3, 37, 89, 55,
-			35, 65, 0, 103, 101, 114, 105, 110, 103, 1, 21, 3, 37, 136, 6, 116, 34, 13, 68, 0, 4, 1, 29, 2, 103, 25, 12, 3, 109, 0,
-			1, 115, 2, 103, 17, 67, 0, 1, 119, 115, 2, 103, 0, 2, 17, 67, 0, 4, 100, 106, 105, 101, 3, 109, 37, 80, 37, 0, 116, 106,
-			105, 101, 0, 116, 1, 119, 2, 17, 65, 3, 109, 47, 0, 115, 1, 109, 101, 17, 67, 21, 2, 32, 3, 109, 89, 0, 115, 112, 101, 108,
-			1, 17, 67, 3, 109, 89, 48, 13, 55, 0, 103, 101, 1, 10, 2, 32, 3, 109, 136, 13, 0, 103, 101, 115, 1, 10, 2, 32, 3, 109,
-			136, 13, 89, 0, 195, 171, 3, 116, 12, 14, 0, 101, 117, 3, 119, 0, 106, 2, 17, 67, 3, 123, 0, 7, 6, 106, 0, 2, 106, 3,
-			0, 4, 97, 99, 107, 8, 3, 21, 0, 101, 97, 110, 0, 101, 101, 112, 0, 111, 104, 110, 0, 4, 3, 57, 0, 8, 2, 97, 110, 116,
-			106, 105, 101, 25, 12, 12, 0, 97, 8, 2, 17, 67, 111, 98, 17, 65, 3, 57, 2, 35, 0, 97, 112, 111, 2, 110, 3, 57, 2, 35,
-			48, 110, 0, 4, 97, 99, 97, 114, 97, 110, 100, 97, 3, 57, 2, 35, 49, 2, 35, 34, 6, 35, 50, 72, 35, 0, 97, 107, 97, 114,
-			97, 110, 100, 97, 0, 97, 107, 111, 112, 101, 119, 101, 114, 3, 57, 2, 35, 49, 2, 110, 48, 116, 84, 13, 34, 10, 0, 97, 110, 8,
-			2, 17, 67, 21, 3, 57, 2, 35, 50, 0, 97, 108, 111, 101, 2, 115, 105, 101, 3, 57, 2, 35, 55, 2, 40, 0, 97, 115, 2, 109,
-			121, 110, 3, 57, 2, 35, 89, 0, 117, 2, 114, 105, 100, 3, 57, 2, 40, 0, 111, 101, 114, 2, 110, 97, 3, 57, 2, 40, 34, 0,
-			117, 114, 105, 115, 2, 100, 105, 107, 3, 57, 2, 40, 34, 13, 89, 0, 111, 104, 97, 2, 110, 3, 57, 2, 40, 107, 35, 0, 111, 114,
-			100, 97, 8, 2, 110, 105, 17, 65, 3, 57, 2, 110, 34, 72, 115, 0, 97, 107, 111, 98, 2, 114, 101, 103, 111, 112, 3, 57, 2, 115,
-			49, 2, 110, 48, 0, 117, 2, 119, 101, 3, 57, 2, 118, 0, 117, 119, 101, 2, 108, 105, 101, 114, 3, 57, 2, 118, 84, 13, 0, 117,
-			119, 101, 108, 101, 3, 57, 2, 118, 84, 116, 55, 13, 0, 117, 110, 103, 105, 8, 2, 97, 3, 57, 4, 40, 68, 2, 37, 0, 97, 103,
-			8, 2, 17, 65, 3, 57, 7, 35, 136, 10, 0, 101, 114, 117, 115, 97, 108, 101, 109, 3, 57, 13, 34, 118, 89, 2, 35, 55, 2, 108,
-			65, 0, 101, 110, 101, 119, 101, 114, 3, 57, 13, 50, 116, 84, 13, 34, 0, 97, 8, 2, 110, 110, 17, 65, 12, 3, 57, 35, 0, 97,
-			110, 8, 2, 115, 17, 65, 110, 25, 3, 57, 35, 50, 0, 97, 110, 117, 97, 114, 105, 101, 3, 57, 35, 50, 118, 4, 115, 34, 37, 0,
-			97, 103, 117, 97, 114, 3, 57, 35, 81, 58, 35, 34, 0, 101, 115, 117, 115, 3, 57, 37, 12, 89, 111, 89, 0, 117, 110, 105, 101, 3,
-			57, 40, 50, 37, 0, 117, 108, 105, 101, 3, 57, 40, 55, 37, 0, 111, 110, 103, 2, 101, 116, 106, 105, 101, 3, 57, 110, 68, 0, 111,
-			110, 103, 101, 3, 57, 110, 68, 13, 0, 97, 2, 98, 114, 111, 101, 114, 3, 57, 115, 0, 4, 97, 103, 2, 101, 110, 100, 3, 57, 115,
-			136, 0, 97, 103, 2, 101, 114, 0, 97, 103, 2, 105, 110, 103, 0, 101, 108, 108, 105, 101, 3, 75, 6, 108, 55, 37, 0, 111, 117, 108,
-			101, 3, 75, 40, 12, 55, 0, 97, 122, 122, 3, 75, 113, 88, 0, 7, 6, 107, 0, 2, 107, 3, 0, 107, 108, 101, 114, 101, 3, 8,
-			49, 55, 6, 116, 34, 13, 0, 3, 49, 0, 97, 114, 97, 107, 116, 101, 114, 3, 49, 2, 35, 34, 35, 49, 47, 13, 34, 0, 4, 105,
-			2, 110, 101, 116, 105, 101, 3, 49, 2, 37, 0, 105, 8, 2, 116, 97, 0, 105, 97, 97, 116, 3, 49, 2, 37, 38, 115, 47, 0, 105,
-			107, 111, 101, 2, 106, 111, 101, 3, 49, 2, 37, 49, 40, 12, 0, 105, 108, 105, 109, 97, 110, 100, 106, 97, 114, 111, 3, 49, 2, 37,
-			55, 13, 65, 2, 35, 50, 75, 115, 34, 40, 0, 101, 110, 2, 109, 101, 114, 107, 101, 110, 3, 49, 2, 108, 50, 0, 117, 108, 105, 110,
-			3, 49, 2, 111, 55, 2, 37, 50, 0, 101, 114, 97, 2, 109, 105, 101, 107, 3, 49, 2, 112, 34, 2, 35, 0, 101, 108, 107, 105, 101,
-			2, 119, 121, 110, 3, 49, 2, 112, 55, 49, 2, 37, 0, 101, 108, 110, 101, 114, 2, 105, 110, 3, 49, 2, 112, 55, 50, 13, 34, 0,
-			4, 117, 2, 98, 97, 21, 3, 49, 2, 118, 0, 117, 2, 98, 105, 101, 107, 0, 101, 105, 115, 101, 114, 2, 105, 110, 3, 49, 2, 123,
-			88, 13, 34, 0, 117, 110, 100, 105, 1, 21, 2, 103, 3, 49, 6, 111, 50, 72, 13, 0, 117, 115, 1, 105, 3, 49, 6, 111, 89, 0,
-			101, 114, 1, 114, 101, 100, 101, 119, 2, 17, 65, 3, 49, 6, 116, 34, 0, 101, 117, 114, 105, 103, 1, 21, 3, 49, 6, 128, 34, 13,
-			136, 0, 101, 117, 115, 101, 8, 3, 49, 7, 128, 89, 13, 0, 4, 101, 114, 1, 21, 2, 116, 106, 105, 101, 3, 49, 13, 34, 0, 107,
-			101, 114, 2, 17, 65, 0, 101, 114, 101, 110, 100, 1, 110, 2, 32, 3, 49, 13, 34, 13, 50, 47, 0, 101, 114, 101, 110, 100, 101, 1,
-			110, 2, 32, 3, 49, 13, 34, 13, 50, 72, 13, 0, 101, 114, 107, 101, 114, 115, 1, 107, 105, 108, 102, 3, 49, 13, 34, 49, 113, 34,
-			89, 0, 4, 101, 108, 101, 110, 100, 2, 32, 3, 49, 13, 55, 13, 50, 47, 0, 107, 101, 108, 101, 110, 100, 2, 32, 0, 4, 101, 108,
-			101, 110, 100, 101, 2, 32, 3, 49, 13, 55, 13, 50, 72, 13, 0, 107, 101, 108, 101, 110, 100, 101, 2, 32, 0, 4, 101, 108, 105, 110,
-			103, 3, 49, 13, 55, 13, 68, 0, 107, 101, 108, 105, 110, 103, 0, 114, 97, 2, 119, 97, 116, 3, 49, 34, 2, 35, 0, 4, 114, 101,
-			8, 2, 111, 3, 49, 34, 2, 37, 0, 114, 105, 2, 111, 101, 108, 0, 114, 101, 2, 100, 105, 116, 3, 49, 34, 2, 108, 0, 114, 111,
-			107, 111, 100, 105, 2, 108, 3, 49, 34, 2, 110, 49, 13, 72, 109, 0, 114, 117, 103, 101, 114, 3, 49, 34, 6, 128, 13, 34, 0, 114,
-			97, 103, 8, 2, 17, 65, 3, 49, 34, 7, 35, 136, 10, 0, 4, 114, 101, 2, 100, 105, 101, 116, 3, 49, 34, 13, 0, 114, 101, 8,
-			2, 112, 101, 21, 0, 114, 105, 2, 115, 97, 110, 116, 0, 114, 105, 116, 2, 17, 65, 3, 49, 34, 13, 47, 0, 114, 101, 109, 101, 2,
-			116, 97, 114, 116, 3, 49, 34, 13, 65, 13, 0, 114, 105, 109, 105, 2, 110, 17, 65, 3, 49, 34, 13, 65, 13, 6, 0, 114, 105, 115,
-			116, 97, 2, 108, 3, 49, 34, 13, 89, 47, 35, 0, 114, 105, 116, 105, 101, 115, 3, 49, 34, 37, 47, 37, 89, 0, 114, 105, 101, 107,
-			101, 116, 3, 49, 34, 37, 49, 13, 47, 0, 114, 105, 101, 107, 101, 116, 119, 3, 49, 34, 37, 49, 13, 47, 84, 0, 114, 105, 101, 119,
-			101, 2, 108, 3, 49, 34, 37, 84, 13, 0, 114, 97, 2, 103, 105, 101, 3, 49, 34, 115, 0, 97, 109, 101, 108, 101, 8, 3, 49, 35,
-			65, 6, 116, 55, 13, 0, 105, 108, 111, 8, 3, 49, 37, 55, 2, 40, 0, 105, 101, 115, 101, 114, 2, 21, 3, 49, 37, 89, 13, 34,
-			0, 110, 105, 112, 2, 17, 65, 3, 49, 50, 109, 48, 19, 0, 110, 101, 114, 115, 2, 32, 3, 49, 50, 112, 34, 89, 0, 4, 108, 97,
-			2, 115, 115, 105, 101, 107, 3, 49, 55, 2, 35, 0, 108, 97, 2, 118, 105, 101, 114, 0, 108, 97, 114, 105, 110, 101, 2, 116, 3, 49,
-			55, 2, 35, 34, 2, 37, 50, 108, 0, 108, 97, 110, 100, 101, 2, 115, 116, 105, 3, 49, 55, 2, 35, 50, 72, 13, 0, 4, 108, 97,
-			119, 101, 114, 2, 98, 111, 101, 114, 3, 49, 55, 2, 115, 84, 13, 34, 0, 108, 97, 119, 101, 114, 2, 100, 114, 0, 108, 97, 119, 101,
-			114, 2, 104, 101, 101, 114, 0, 108, 97, 119, 101, 114, 2, 106, 97, 115, 0, 108, 97, 119, 101, 114, 2, 110, 101, 103, 101, 0, 108, 97,
-			119, 101, 114, 2, 115, 101, 119, 0, 108, 97, 119, 101, 114, 2, 116, 0, 108, 97, 119, 101, 114, 2, 118, 0, 108, 97, 119, 101, 114, 2,
-			97, 3, 49, 55, 2, 115, 84, 13, 34, 10, 0, 108, 97, 119, 101, 114, 115, 101, 115, 3, 49, 55, 2, 115, 84, 13, 34, 89, 108, 89,
-			0, 108, 111, 117, 2, 115, 117, 108, 101, 3, 49, 55, 2, 120, 0, 108, 101, 105, 110, 2, 115, 105, 101, 108, 105, 3, 49, 55, 2, 123,
-			50, 0, 108, 101, 105, 110, 115, 101, 2, 114, 105, 103, 3, 49, 55, 2, 123, 50, 89, 116, 0, 4, 108, 105, 2, 109, 97, 97, 116, 3,
-			49, 55, 13, 0, 108, 105, 2, 110, 105, 101, 107, 0, 108, 97, 8, 2, 115, 17, 65, 21, 21, 3, 49, 55, 35, 0, 108, 105, 2, 109,
-			111, 112, 3, 49, 55, 109, 0, 108, 105, 112, 2, 17, 65, 3, 49, 55, 109, 48, 10, 0, 108, 105, 109, 1, 103, 114, 101, 98, 2, 17,
-			65, 3, 49, 55, 109, 65, 10, 0, 108, 97, 2, 107, 111, 117, 115, 3, 49, 55, 115, 0, 108, 97, 97, 114, 98, 108, 121, 107, 108, 105,
-			107, 3, 49, 55, 115, 34, 71, 55, 6, 123, 49, 55, 13, 49, 0, 4, 108, 97, 119, 101, 114, 3, 49, 55, 115, 84, 13, 34, 0, 108,
-			97, 119, 101, 114, 2, 118, 101, 108, 100, 0, 108, 97, 118, 101, 115, 105, 109, 98, 101, 108, 3, 49, 55, 115, 84, 13, 89, 13, 65, 71,
-			13, 55, 0, 108, 101, 114, 101, 3, 49, 55, 116, 34, 13, 0, 108, 101, 117, 114, 2, 101, 102, 102, 101, 107, 3, 49, 55, 128, 34, 0,
-			108, 101, 117, 114, 101, 3, 49, 55, 128, 34, 13, 0, 119, 8, 3, 49, 58, 0, 4, 119, 97, 2, 100, 114, 97, 3, 49, 58, 2, 35,
-			0, 119, 97, 2, 116, 114, 121, 110, 0, 119, 97, 114, 8, 2, 116, 17, 65, 3, 49, 58, 2, 35, 34, 0, 119, 97, 114, 97, 110, 2,
-			116, 3, 49, 58, 2, 35, 34, 13, 50, 0, 119, 97, 114, 116, 101, 2, 116, 3, 49, 58, 2, 35, 34, 47, 108, 0, 119, 97, 108, 105,
-			2, 17, 67, 21, 3, 49, 58, 2, 35, 55, 2, 37, 0, 119, 97, 97, 100, 2, 97, 97, 114, 100, 105, 3, 49, 58, 2, 115, 47, 10,
-			0, 119, 105, 2, 116, 97, 110, 115, 3, 49, 58, 13, 0, 119, 105, 110, 116, 101, 2, 116, 3, 49, 58, 13, 50, 47, 108, 0, 119, 97,
-			114, 116, 2, 101, 101, 117, 3, 49, 58, 35, 34, 47, 10, 0, 119, 97, 114, 116, 101, 105, 110, 100, 8, 3, 49, 58, 35, 34, 47, 10,
-			123, 50, 47, 0, 119, 97, 114, 116, 101, 108, 3, 49, 58, 35, 34, 47, 13, 55, 10, 0, 119, 101, 108, 97, 3, 49, 58, 108, 12, 55,
-			35, 0, 119, 105, 107, 8, 2, 17, 65, 3, 49, 58, 109, 49, 10, 0, 101, 2, 110, 110, 17, 65, 25, 3, 49, 108, 0, 117, 114, 119,
-			101, 3, 49, 111, 34, 84, 13, 0, 101, 114, 1, 21, 2, 115, 105, 101, 32, 3, 49, 112, 34, 0, 101, 114, 107, 2, 32, 3, 49, 112,
-			34, 49, 0, 101, 114, 107, 101, 2, 32, 3, 49, 112, 34, 49, 13, 0, 101, 114, 107, 101, 114, 3, 49, 112, 34, 49, 13, 34, 0, 101,
-			114, 107, 105, 101, 2, 25, 3, 49, 112, 34, 49, 37, 0, 101, 108, 110, 101, 114, 3, 49, 112, 55, 50, 13, 34, 0, 4, 101, 114, 115,
-			1, 108, 101, 116, 116, 111, 98, 3, 49, 113, 34, 89, 0, 101, 114, 115, 1, 115, 101, 101, 102, 0, 101, 116, 101, 2, 108, 3, 49, 116,
-			47, 13, 0, 101, 105, 115, 101, 114, 3, 49, 123, 88, 13, 34, 0, 7, 6, 108, 0, 2, 108, 3, 0, 111, 107, 111, 109, 111, 3, 4,
-			55, 40, 49, 40, 65, 40, 6, 0, 4, 97, 110, 100, 8, 2, 32, 114, 111, 118, 101, 114, 3, 21, 0, 101, 1, 17, 67, 2, 32, 0,
-			101, 115, 115, 1, 21, 2, 32, 0, 108, 1, 21, 2, 32, 24, 0, 3, 55, 0, 4, 97, 2, 116, 101, 110, 116, 3, 55, 2, 35, 0,
-			97, 8, 2, 107, 111, 110, 0, 97, 116, 114, 105, 110, 101, 3, 55, 2, 35, 47, 34, 37, 50, 13, 0, 97, 112, 97, 114, 2, 111, 116,
-			111, 109, 105, 3, 55, 2, 35, 48, 2, 35, 34, 0, 97, 112, 101, 108, 2, 32, 3, 55, 2, 35, 48, 6, 112, 55, 0, 97, 112, 101,
-			2, 108, 25, 3, 55, 2, 35, 48, 112, 0, 97, 110, 8, 2, 115, 17, 65, 3, 55, 2, 35, 50, 0, 97, 110, 111, 2, 108, 105, 101,
-			110, 3, 55, 2, 35, 50, 2, 40, 0, 97, 110, 100, 101, 2, 114, 121, 3, 55, 2, 35, 50, 72, 13, 0, 97, 109, 2, 108, 101, 110,
-			3, 55, 2, 35, 65, 0, 97, 109, 112, 101, 2, 116, 3, 55, 2, 35, 65, 48, 108, 0, 4, 97, 110, 103, 2, 119, 101, 114, 112, 3,
-			55, 2, 35, 68, 0, 97, 110, 103, 8, 2, 100, 21, 21, 0, 97, 110, 107, 2, 109, 111, 101, 3, 55, 2, 35, 68, 49, 0, 97, 98,
-			105, 2, 114, 105, 110, 116, 3, 55, 2, 35, 71, 13, 0, 97, 98, 111, 114, 97, 116, 111, 114, 3, 55, 2, 35, 71, 14, 34, 2, 35,
-			47, 6, 117, 34, 0, 97, 118, 101, 110, 116, 101, 108, 3, 55, 2, 35, 83, 108, 50, 47, 13, 55, 0, 97, 103, 117, 110, 101, 3, 55,
-			2, 35, 136, 118, 50, 13, 0, 105, 2, 107, 119, 105, 100, 3, 55, 2, 37, 0, 4, 105, 116, 2, 111, 116, 111, 109, 105, 101, 3, 55,
-			2, 37, 47, 0, 105, 116, 8, 2, 111, 103, 114, 97, 102, 0, 105, 116, 111, 8, 2, 17, 67, 3, 55, 2, 37, 47, 2, 40, 0, 105,
-			110, 103, 117, 2, 105, 3, 55, 2, 37, 68, 81, 58, 0, 105, 101, 102, 2, 116, 97, 108, 108, 3, 55, 2, 37, 83, 0, 4, 111, 2,
-			106, 97, 3, 55, 2, 40, 0, 111, 2, 107, 97, 108, 17, 65, 0, 117, 112, 105, 110, 101, 3, 55, 2, 40, 48, 37, 50, 13, 0, 111,
-			98, 111, 116, 111, 2, 109, 105, 101, 3, 55, 2, 40, 71, 2, 110, 47, 2, 40, 0, 111, 115, 105, 101, 115, 8, 3, 55, 2, 40, 89,
-			6, 37, 89, 0, 117, 115, 101, 114, 110, 3, 55, 2, 40, 89, 113, 34, 13, 50, 0, 101, 103, 105, 2, 111, 101, 110, 3, 55, 2, 108,
-			136, 2, 37, 0, 111, 109, 2, 98, 97, 114, 100, 17, 65, 3, 55, 2, 110, 65, 0, 111, 98, 111, 108, 97, 3, 55, 2, 110, 71, 131,
-			55, 35, 0, 111, 115, 98, 97, 110, 100, 105, 2, 103, 3, 55, 2, 110, 89, 71, 35, 50, 72, 13, 0, 117, 2, 109, 105, 101, 114, 3,
-			55, 2, 111, 0, 117, 107, 115, 97, 2, 108, 105, 103, 3, 55, 2, 111, 49, 89, 6, 115, 0, 101, 100, 101, 2, 107, 97, 110, 116, 3,
-			55, 2, 116, 72, 13, 0, 101, 118, 105, 2, 97, 116, 97, 110, 3, 55, 2, 116, 84, 2, 37, 0, 111, 117, 2, 114, 105, 101, 114, 3,
-			55, 2, 120, 0, 4, 121, 107, 2, 109, 111, 101, 100, 3, 55, 2, 123, 49, 0, 121, 107, 2, 110, 97, 109, 0, 117, 105, 116, 101, 2,
-			110, 97, 110, 116, 3, 55, 2, 127, 47, 13, 0, 117, 105, 100, 2, 114, 117, 103, 116, 3, 55, 2, 127, 72, 0, 111, 115, 103, 101, 8,
-			2, 21, 14, 128, 132, 133, 3, 55, 6, 110, 89, 136, 13, 0, 117, 115, 116, 105, 1, 21, 2, 103, 3, 55, 6, 111, 89, 47, 13, 0,
-			101, 101, 114, 1, 105, 17, 67, 3, 55, 6, 116, 34, 0, 101, 114, 105, 110, 103, 2, 32, 3, 55, 6, 116, 34, 13, 68, 0, 117, 103,
-			8, 2, 17, 67, 3, 55, 7, 111, 136, 0, 4, 101, 1, 108, 2, 32, 3, 55, 13, 0, 101, 1, 108, 21, 2, 115, 17, 67, 21, 0,
-			105, 2, 107, 101, 117, 114, 0, 105, 2, 114, 105, 101, 107, 0, 105, 2, 116, 117, 114, 103, 105, 101, 0, 105, 8, 2, 109, 105, 0, 105,
-			116, 101, 114, 2, 17, 65, 3, 55, 13, 47, 13, 34, 0, 105, 116, 101, 114, 97, 2, 116, 3, 55, 13, 47, 13, 34, 2, 35, 0, 105,
-			107, 1, 10, 2, 32, 14, 128, 128, 131, 3, 55, 13, 49, 0, 4, 105, 107, 101, 1, 10, 2, 17, 67, 21, 3, 55, 13, 49, 13, 0,
-			105, 107, 101, 1, 10, 2, 32, 14, 128, 128, 132, 0, 105, 107, 107, 101, 2, 119, 97, 0, 105, 107, 101, 114, 1, 10, 2, 32, 14, 128,
-			128, 133, 3, 55, 13, 49, 13, 34, 0, 105, 107, 101, 115, 1, 10, 2, 32, 14, 128, 128, 133, 3, 55, 13, 49, 13, 89, 0, 105, 107,
-			115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 134, 3, 55, 13, 49, 89, 47, 13, 0, 105, 110, 105, 2, 97, 97, 108, 3, 55, 13, 50,
-			2, 37, 0, 105, 110, 111, 2, 108, 101, 117, 109, 3, 55, 13, 50, 117, 0, 105, 109, 111, 117, 115, 105, 110, 101, 3, 55, 13, 65, 2,
-			40, 88, 37, 12, 50, 0, 105, 98, 101, 2, 114, 17, 65, 3, 55, 13, 71, 13, 0, 105, 98, 101, 8, 2, 114, 105, 21, 3, 55, 13,
-			71, 116, 0, 101, 118, 8, 2, 105, 3, 55, 13, 83, 0, 101, 119, 101, 114, 107, 1, 17, 65, 3, 55, 13, 84, 112, 34, 49, 0, 105,
-			115, 101, 110, 115, 105, 2, 101, 101, 114, 3, 55, 13, 89, 2, 108, 50, 89, 2, 37, 0, 105, 115, 101, 110, 115, 105, 101, 3, 55, 13,
-			89, 108, 12, 50, 89, 2, 37, 0, 105, 103, 2, 104, 111, 111, 102, 100, 3, 55, 13, 136, 0, 105, 103, 101, 110, 3, 55, 13, 136, 6,
-			108, 50, 0, 101, 103, 101, 110, 2, 100, 97, 3, 55, 13, 136, 13, 50, 0, 101, 103, 101, 110, 100, 101, 3, 55, 13, 136, 108, 50, 72,
-			13, 0, 105, 103, 103, 97, 97, 109, 108, 105, 107, 3, 55, 13, 136, 115, 65, 55, 13, 49, 0, 109, 1, 10, 2, 25, 3, 55, 14, 65,
-			0, 97, 110, 103, 101, 8, 2, 17, 67, 17, 65, 3, 55, 35, 68, 13, 0, 97, 102, 2, 97, 97, 114, 3, 55, 35, 83, 0, 4, 105,
-			2, 103, 97, 32, 3, 55, 37, 0, 105, 8, 2, 103, 97, 17, 67, 0, 105, 101, 102, 100, 101, 115, 3, 55, 37, 83, 72, 13, 89, 0,
-			101, 110, 100, 101, 8, 3, 55, 108, 50, 72, 13, 0, 4, 101, 115, 1, 17, 67, 21, 2, 25, 3, 55, 108, 89, 0, 101, 115, 1, 101,
-			105, 2, 32, 0, 101, 115, 115, 101, 1, 17, 67, 21, 2, 32, 3, 55, 108, 89, 13, 0, 105, 8, 2, 103, 3, 55, 109, 0, 105, 110,
-			107, 101, 114, 3, 55, 109, 68, 49, 13, 34, 0, 117, 115, 2, 111, 3, 55, 111, 89, 10, 0, 117, 103, 2, 17, 65, 3, 55, 111, 136,
-			19, 0, 101, 2, 107, 107, 101, 114, 3, 55, 112, 0, 97, 112, 97, 8, 2, 25, 3, 55, 115, 48, 35, 0, 101, 112, 101, 2, 108, 108,
-			3, 55, 116, 48, 13, 0, 101, 110, 105, 110, 103, 3, 55, 116, 50, 13, 68, 0, 101, 108, 105, 2, 107, 3, 55, 116, 55, 13, 0, 4,
-			101, 100, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 116, 72, 13, 0, 101, 100, 101, 1, 114, 101, 118, 2, 25, 0, 101, 100, 101,
-			2, 17, 67, 0, 101, 100, 105, 110, 103, 2, 32, 3, 55, 116, 72, 13, 68, 0, 101, 119, 101, 2, 25, 3, 55, 116, 84, 13, 0, 101,
-			119, 101, 2, 116, 106, 105, 101, 3, 55, 116, 84, 37, 0, 111, 114, 101, 8, 2, 17, 67, 21, 3, 55, 117, 34, 13, 0, 117, 2, 107,
-			119, 97, 114, 116, 3, 55, 118, 0, 117, 116, 104, 101, 114, 3, 55, 118, 47, 13, 34, 0, 101, 117, 101, 110, 2, 116, 106, 105, 101, 3,
-			55, 128, 37, 68, 0, 4, 97, 109, 102, 101, 114, 3, 55, 133, 65, 83, 13, 34, 0, 97, 110, 102, 101, 114, 0, 7, 6, 109, 0, 2,
-			109, 3, 0, 110, 1, 21, 2, 32, 3, 21, 0, 3, 65, 0, 117, 115, 105, 101, 107, 3, 65, 2, 111, 89, 37, 49, 0, 117, 115, 107,
-			97, 100, 101, 108, 3, 65, 2, 111, 89, 49, 2, 35, 72, 112, 55, 0, 117, 115, 107, 101, 2, 116, 105, 101, 114, 3, 65, 2, 111, 89,
-			49, 13, 0, 117, 115, 107, 101, 108, 2, 106, 97, 97, 116, 3, 65, 2, 111, 89, 49, 13, 55, 0, 117, 115, 101, 117, 109, 3, 65, 2,
-			118, 89, 128, 65, 0, 109, 101, 1, 17, 65, 17, 67, 2, 17, 67, 3, 65, 13, 0, 109, 101, 1, 17, 65, 17, 67, 2, 116, 106, 105,
-			101, 3, 65, 37, 0, 112, 101, 108, 1, 21, 2, 17, 65, 3, 65, 48, 13, 55, 0, 117, 114, 109, 101, 108, 3, 65, 111, 34, 65, 13,
-			55, 0, 117, 115, 105, 2, 17, 67, 3, 65, 118, 89, 37, 6, 0, 121, 109, 101, 114, 3, 65, 123, 65, 13, 34, 0, 195, 180, 114, 101,
-			2, 21, 3, 65, 131, 34, 13, 0, 7, 6, 110, 0, 4, 2, 32, 110, 3, 0, 2, 110, 3, 0, 97, 2, 116, 97, 108, 3, 4, 50,
-			35, 6, 0, 4, 3, 50, 0, 1, 10, 2, 103, 97, 116, 0, 1, 97, 97, 2, 103, 97, 115, 0, 1, 101, 2, 103, 111, 101, 17, 67,
-			0, 1, 101, 101, 2, 103, 0, 1, 101, 111, 2, 103, 0, 1, 101, 119, 2, 103, 21, 12, 12, 0, 1, 105, 101, 2, 103, 0, 1, 105,
-			112, 115, 2, 103, 101, 0, 1, 105, 117, 17, 67, 2, 103, 0, 1, 111, 111, 2, 103, 0, 1, 117, 101, 2, 103, 0, 1, 121, 2, 103,
-			0, 1, 171, 195, 2, 103, 0, 2, 32, 110, 32, 0, 8, 2, 17, 65, 17, 65, 0, 4, 97, 1, 21, 2, 108, 105, 115, 3, 50, 2,
-			35, 0, 97, 2, 116, 117, 117, 114, 0, 97, 2, 118, 114, 97, 110, 116, 0, 97, 8, 2, 114, 107, 0, 97, 2, 195, 175, 3, 50, 2,
-			35, 10, 0, 97, 2, 195, 175, 3, 50, 2, 35, 19, 0, 97, 114, 101, 115, 2, 32, 3, 50, 2, 35, 34, 6, 108, 89, 0, 97, 116,
-			117, 114, 101, 2, 108, 25, 3, 50, 2, 35, 47, 2, 118, 34, 112, 0, 97, 112, 111, 108, 101, 2, 111, 110, 116, 3, 50, 2, 35, 48,
-			2, 117, 55, 2, 37, 0, 97, 112, 111, 2, 108, 101, 111, 110, 3, 50, 2, 35, 48, 117, 0, 97, 109, 97, 107, 119, 97, 3, 50, 2,
-			35, 65, 35, 49, 58, 2, 35, 0, 97, 109, 105, 2, 98, 105, 3, 50, 2, 35, 65, 109, 0, 97, 118, 105, 103, 3, 50, 2, 35, 84,
-			2, 37, 136, 0, 97, 115, 105, 111, 2, 110, 97, 3, 50, 2, 35, 91, 2, 37, 2, 40, 0, 101, 2, 97, 110, 100, 101, 114, 17, 67,
-			97, 3, 50, 2, 37, 0, 101, 111, 2, 108, 105, 3, 50, 2, 37, 2, 40, 0, 4, 105, 107, 111, 2, 116, 105, 3, 50, 2, 37, 49,
-			2, 40, 0, 105, 107, 111, 2, 116, 105, 101, 110, 0, 111, 116, 2, 101, 114, 105, 110, 103, 3, 50, 2, 40, 47, 0, 111, 116, 117, 108,
-			101, 2, 25, 3, 50, 2, 40, 47, 118, 55, 13, 0, 111, 118, 101, 108, 108, 101, 3, 50, 2, 40, 83, 112, 55, 13, 0, 101, 107, 116,
-			97, 2, 114, 105, 101, 110, 3, 50, 2, 108, 49, 47, 2, 35, 0, 111, 2, 115, 116, 97, 108, 103, 105, 101, 3, 50, 2, 110, 0, 111,
-			114, 2, 109, 97, 21, 3, 50, 2, 110, 34, 0, 111, 107, 116, 117, 114, 110, 101, 3, 50, 2, 110, 49, 47, 111, 34, 50, 13, 0, 111,
-			110, 99, 104, 97, 2, 108, 97, 3, 50, 2, 110, 50, 91, 2, 35, 0, 111, 109, 105, 2, 110, 17, 65, 3, 50, 2, 110, 65, 2, 37,
-			0, 111, 109, 109, 101, 114, 2, 101, 101, 110, 3, 50, 2, 110, 65, 13, 34, 19, 0, 111, 115, 116, 97, 108, 2, 103, 105, 101, 32, 24,
-			3, 50, 2, 110, 89, 47, 2, 35, 55, 0, 101, 114, 2, 118, 101, 117, 3, 50, 2, 112, 34, 0, 4, 97, 2, 98, 117, 114, 105, 103,
-			3, 50, 2, 115, 0, 97, 2, 98, 121, 103, 101, 0, 97, 8, 2, 98, 121, 21, 0, 97, 8, 2, 100, 101, 108, 105, 103, 0, 97, 8,
-			2, 108, 97, 116, 105, 103, 0, 97, 8, 2, 115, 112, 101, 117, 114, 0, 97, 2, 121, 119, 101, 114, 105, 103, 3, 50, 2, 115, 10, 0,
-			97, 97, 114, 115, 116, 105, 103, 116, 101, 3, 50, 2, 115, 34, 89, 47, 109, 136, 47, 13, 0, 97, 98, 121, 104, 2, 101, 3, 50, 2,
-			115, 71, 123, 107, 0, 4, 101, 101, 114, 2, 100, 114, 117, 107, 107, 3, 50, 2, 116, 34, 0, 101, 101, 114, 2, 104, 97, 108, 101, 110,
-			100, 0, 101, 103, 101, 114, 2, 105, 110, 3, 50, 2, 116, 136, 13, 34, 0, 111, 2, 109, 97, 100, 3, 50, 2, 117, 0, 111, 111, 114,
-			100, 2, 111, 111, 115, 3, 50, 2, 117, 34, 47, 10, 0, 4, 111, 111, 100, 2, 108, 111, 116, 116, 105, 3, 50, 2, 117, 47, 0, 111,
-			111, 100, 2, 115, 97, 97, 107, 0, 111, 116, 97, 114, 105, 2, 17, 65, 3, 50, 2, 117, 47, 2, 35, 34, 2, 37, 38, 0, 111, 98,
-			101, 108, 8, 3, 50, 2, 117, 71, 112, 55, 0, 111, 118, 101, 109, 98, 101, 114, 3, 50, 2, 117, 83, 108, 65, 71, 13, 34, 0, 117,
-			97, 110, 2, 115, 101, 101, 114, 3, 50, 2, 118, 2, 35, 50, 0, 117, 97, 110, 115, 101, 2, 114, 105, 110, 103, 3, 50, 2, 118, 2,
-			35, 50, 89, 116, 0, 117, 97, 110, 115, 101, 2, 25, 3, 50, 2, 118, 35, 50, 89, 13, 0, 117, 119, 101, 114, 2, 119, 101, 116, 3,
-			50, 2, 118, 84, 13, 34, 0, 117, 117, 115, 2, 107, 105, 101, 114, 105, 103, 3, 50, 2, 118, 89, 0, 101, 117, 2, 116, 114, 3, 50,
-			2, 128, 0, 101, 117, 114, 111, 2, 17, 67, 17, 65, 3, 50, 2, 128, 34, 117, 0, 97, 8, 2, 17, 67, 32, 3, 50, 6, 35, 0,
-			97, 103, 8, 2, 17, 67, 3, 50, 6, 35, 136, 0, 97, 8, 3, 50, 6, 115, 0, 97, 103, 8, 2, 114, 97, 97, 100, 3, 50, 6,
-			115, 136, 0, 97, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 50, 6, 115, 136, 13, 0, 101, 108, 101, 1, 10, 2, 32, 3, 50, 6,
-			116, 55, 13, 0, 101, 101, 115, 1, 21, 2, 32, 3, 50, 6, 116, 89, 0, 101, 115, 101, 2, 32, 3, 50, 6, 116, 89, 13, 0, 4,
-			121, 1, 114, 101, 17, 67, 21, 2, 32, 3, 50, 6, 123, 0, 121, 1, 114, 101, 17, 67, 21, 2, 101, 0, 97, 8, 2, 115, 107, 101,
-			101, 114, 3, 50, 7, 115, 0, 101, 101, 114, 103, 101, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 50, 7, 116, 34, 136, 13, 0, 101,
-			2, 103, 111, 115, 105, 101, 3, 50, 13, 0, 110, 105, 110, 103, 3, 50, 13, 68, 0, 110, 101, 115, 1, 97, 104, 3, 50, 13, 89, 0,
-			4, 97, 1, 21, 2, 32, 3, 50, 35, 0, 97, 8, 2, 114, 17, 67, 0, 97, 8, 2, 116, 17, 67, 0, 97, 115, 116, 101, 114, 2,
-			103, 3, 50, 35, 89, 47, 13, 34, 0, 4, 97, 103, 2, 97, 100, 100, 101, 114, 3, 50, 35, 136, 10, 0, 97, 103, 2, 117, 105, 108,
-			0, 97, 103, 8, 2, 97, 97, 112, 0, 97, 103, 8, 2, 97, 112, 17, 65, 0, 105, 116, 114, 111, 3, 50, 37, 47, 34, 2, 40, 0,
-			116, 101, 114, 101, 2, 115, 115, 3, 50, 47, 34, 13, 6, 0, 101, 116, 2, 119, 101, 114, 107, 3, 50, 108, 47, 0, 101, 116, 116, 111,
-			8, 3, 50, 108, 47, 2, 40, 0, 4, 101, 116, 2, 97, 103, 116, 105, 103, 3, 50, 108, 47, 10, 0, 101, 116, 8, 2, 111, 0, 4,
-			101, 115, 1, 17, 67, 21, 2, 32, 3, 50, 108, 89, 0, 101, 115, 1, 101, 121, 98, 0, 101, 115, 1, 115, 2, 25, 0, 101, 115, 1,
-			121, 98, 0, 101, 115, 8, 2, 101, 105, 3, 50, 108, 89, 10, 0, 105, 2, 103, 103, 105, 101, 3, 50, 109, 0, 111, 103, 97, 108, 3,
-			50, 110, 136, 35, 55, 0, 101, 107, 2, 111, 109, 3, 50, 112, 49, 10, 0, 4, 97, 1, 114, 2, 32, 3, 50, 115, 0, 97, 2, 98,
-			111, 111, 116, 115, 0, 97, 2, 116, 114, 105, 117, 109, 0, 97, 2, 116, 114, 111, 115, 25, 0, 97, 2, 118, 114, 97, 0, 97, 8, 2,
-			103, 108, 111, 101, 0, 97, 8, 2, 115, 112, 101, 117, 114, 32, 24, 0, 97, 8, 2, 116, 114, 101, 107, 25, 0, 97, 1, 10, 2, 119,
-			101, 3, 50, 115, 2, 0, 97, 122, 105, 3, 50, 115, 47, 89, 37, 0, 97, 109, 101, 115, 3, 50, 115, 65, 13, 89, 0, 97, 100, 114,
-			117, 107, 108, 105, 107, 3, 50, 115, 72, 34, 6, 111, 49, 55, 13, 49, 0, 101, 116, 101, 108, 3, 50, 116, 47, 13, 55, 0, 111, 111,
-			100, 2, 115, 97, 97, 107, 32, 24, 3, 50, 117, 47, 0, 111, 116, 101, 2, 98, 3, 50, 117, 47, 13, 0, 121, 108, 111, 110, 3, 50,
-			122, 55, 110, 50, 0, 101, 117, 116, 101, 3, 50, 128, 47, 13, 0, 103, 101, 101, 115, 3, 50, 136, 116, 89, 0, 4, 2, 99, 3, 68,
-			0, 2, 107, 0, 2, 113, 0, 2, 116, 106, 105, 101, 0, 2, 120, 0, 103, 0, 103, 101, 114, 1, 17, 65, 17, 67, 3, 68, 13, 34,
-			0, 103, 101, 115, 1, 21, 2, 32, 3, 68, 13, 89, 0, 103, 117, 110, 105, 8, 3, 68, 81, 40, 12, 50, 37, 0, 4, 103, 1, 21,
-			2, 105, 116, 105, 115, 32, 3, 68, 136, 0, 103, 2, 101, 101, 82, 0, 103, 2, 101, 110, 116, 0, 7, 6, 111, 0, 4, 1, 17, 67,
-			2, 17, 67, 17, 65, 17, 65, 3, 2, 40, 0, 1, 17, 67, 2, 17, 67, 121, 0, 1, 17, 67, 10, 2, 32, 24, 0, 1, 107, 105,
-			115, 105, 114, 0, 2, 108, 105, 101, 110, 0, 97, 115, 101, 3, 2, 40, 10, 115, 89, 13, 0, 8, 105, 100, 117, 17, 65, 3, 2, 40,
-			12, 0, 114, 97, 110, 103, 2, 111, 101, 116, 3, 2, 40, 34, 2, 35, 68, 10, 0, 107, 114, 97, 116, 2, 105, 115, 17, 65, 3, 2,
-			40, 49, 34, 2, 35, 47, 0, 4, 2, 114, 97, 107, 101, 108, 3, 2, 110, 0, 2, 115, 111, 111, 110, 0, 8, 2, 109, 97, 114, 109,
-			0, 4, 114, 8, 2, 103, 97, 3, 2, 110, 34, 0, 114, 8, 2, 107, 97, 0, 4, 114, 116, 2, 111, 103, 114, 97, 3, 2, 110, 34,
-			47, 0, 114, 116, 2, 111, 108, 111, 0, 114, 116, 2, 111, 109, 101, 116, 114, 0, 114, 116, 2, 111, 115, 107, 111, 0, 114, 116, 111, 8,
-			2, 21, 3, 2, 110, 34, 47, 2, 40, 0, 114, 107, 101, 115, 3, 2, 110, 34, 49, 108, 89, 0, 114, 100, 111, 2, 110, 110, 97, 110,
-			3, 2, 110, 34, 72, 13, 0, 114, 100, 101, 110, 116, 8, 3, 2, 110, 34, 72, 108, 50, 47, 0, 114, 103, 97, 110, 105, 2, 115, 17,
-			65, 3, 2, 110, 34, 136, 2, 35, 50, 37, 0, 114, 103, 105, 2, 100, 101, 3, 2, 110, 34, 136, 13, 0, 98, 8, 2, 115, 3, 2,
-			110, 48, 0, 98, 115, 101, 114, 2, 118, 101, 101, 114, 3, 2, 110, 48, 89, 2, 112, 34, 0, 98, 115, 116, 105, 2, 110, 97, 3, 2,
-			110, 48, 89, 47, 13, 0, 107, 8, 2, 116, 17, 65, 3, 2, 110, 49, 0, 107, 107, 101, 114, 2, 110, 101, 117, 116, 3, 2, 110, 49,
-			13, 34, 0, 4, 109, 2, 108, 121, 3, 2, 110, 65, 0, 109, 2, 114, 105, 110, 103, 0, 109, 2, 115, 101, 105, 108, 0, 109, 2, 115,
-			105, 103, 0, 109, 2, 115, 119, 101, 114, 17, 67, 0, 109, 2, 118, 97, 116, 116, 0, 109, 2, 119, 101, 110, 116, 101, 108, 105, 0, 109,
-			8, 2, 103, 111, 114, 100, 0, 109, 8, 2, 104, 0, 109, 8, 2, 107, 108, 101, 109, 0, 109, 8, 2, 108, 97, 97, 103, 0, 109, 8,
-			2, 109, 117, 117, 114, 0, 109, 8, 2, 114, 97, 97, 109, 0, 109, 8, 2, 115, 105, 114, 107, 101, 108, 0, 109, 8, 2, 115, 107, 101,
-			112, 0, 109, 8, 2, 115, 107, 114, 0, 109, 8, 2, 115, 108, 117, 105, 101, 114, 0, 109, 8, 2, 115, 108, 117, 105, 116, 0, 109, 8,
-			2, 115, 116, 114, 101, 100, 101, 0, 109, 8, 2, 119, 97, 108, 0, 109, 8, 2, 119, 101, 108, 17, 67, 0, 109, 101, 108, 101, 2, 116,
-			3, 2, 110, 65, 13, 55, 108, 0, 109, 108, 105, 8, 2, 103, 103, 3, 2, 110, 65, 55, 109, 0, 109, 118, 101, 114, 8, 3, 2, 110,
-			65, 83, 112, 34, 0, 109, 115, 116, 97, 110, 100, 105, 103, 104, 3, 2, 110, 65, 89, 47, 35, 50, 72, 13, 136, 0, 109, 115, 107, 97,
-			110, 115, 8, 3, 2, 110, 65, 89, 49, 35, 50, 89, 0, 109, 115, 105, 110, 103, 101, 108, 3, 2, 110, 65, 89, 109, 68, 13, 55, 0,
-			109, 103, 101, 119, 105, 110, 103, 3, 2, 110, 65, 136, 116, 84, 13, 68, 0, 102, 102, 105, 115, 105, 3, 2, 110, 83, 2, 37, 91, 2,
-			37, 38, 0, 102, 102, 105, 2, 115, 105, 101, 114, 3, 2, 110, 83, 13, 0, 118, 117, 3, 2, 110, 84, 2, 118, 0, 115, 8, 2, 109,
-			111, 17, 67, 3, 2, 110, 89, 0, 115, 115, 105, 108, 108, 2, 101, 3, 2, 110, 89, 13, 55, 0, 115, 115, 105, 108, 108, 101, 2, 17,
-			67, 17, 65, 3, 2, 110, 89, 13, 55, 116, 0, 4, 1, 17, 67, 2, 17, 67, 105, 101, 101, 3, 2, 117, 0, 2, 108, 105, 109, 0,
-			2, 108, 121, 17, 67, 0, 2, 112, 97, 97, 108, 0, 2, 112, 97, 108, 101, 0, 8, 2, 118, 97, 21, 0, 114, 105, 195, 171, 110, 116,
-			2, 21, 3, 2, 117, 34, 2, 37, 57, 2, 108, 50, 47, 0, 114, 97, 110, 106, 101, 3, 2, 117, 34, 35, 50, 57, 13, 0, 114, 101,
-			110, 116, 2, 25, 3, 2, 117, 34, 108, 50, 47, 0, 116, 111, 109, 105, 101, 1, 21, 2, 32, 24, 3, 2, 117, 47, 2, 40, 65, 6,
-			37, 0, 116, 111, 109, 105, 101, 1, 21, 2, 195, 171, 3, 2, 117, 47, 2, 40, 65, 6, 37, 12, 0, 107, 97, 112, 105, 3, 2, 117,
-			49, 115, 48, 2, 37, 0, 108, 101, 2, 97, 110, 100, 101, 114, 3, 2, 117, 55, 2, 37, 0, 108, 121, 109, 2, 112, 3, 2, 117, 55,
-			109, 65, 0, 109, 105, 8, 2, 115, 115, 105, 101, 3, 2, 117, 65, 37, 0, 109, 101, 103, 97, 3, 2, 117, 65, 116, 136, 35, 0, 118,
-			97, 114, 105, 2, 111, 116, 111, 109, 105, 3, 2, 117, 84, 2, 115, 34, 2, 37, 0, 119, 101, 114, 2, 115, 112, 101, 108, 105, 103, 3,
-			2, 117, 84, 13, 34, 0, 115, 101, 2, 97, 3, 2, 117, 91, 2, 37, 0, 117, 116, 2, 111, 107, 114, 97, 3, 2, 120, 47, 0, 117,
-			116, 111, 2, 112, 115, 105, 101, 3, 2, 120, 47, 110, 0, 117, 100, 101, 114, 2, 119, 101, 116, 3, 2, 120, 72, 13, 34, 0, 1, 114,
+		autoFilesInMemory me = FilesInMemory_create ();
+		static unsigned char espeakdata_dicts1_data[81298] = {
+			0, 4, 0, 0, 213, 80, 0, 0, 14, 69, 80, 245, 9, 85, 48, 47, 117, 91, 37, 111, 89, 0, 0, 0, 0, 0, 0, 10, 198, 88,
+			243, 210, 44, 243, 64, 66, 9, 9, 198, 80, 244, 142, 4, 67, 192, 66, 24, 74, 44, 243, 134, 101, 69, 5, 73, 66, 137, 20, 49, 110,
+			50, 83, 6, 123, 47, 113, 34, 80, 37, 0, 23, 65, 4, 35, 15, 49, 35, 48, 6, 112, 55, 35, 0, 81, 99, 97, 112, 112, 101, 108,
+			108, 97, 32, 0, 18, 71, 32, 81, 76, 80, 83, 65, 48, 107, 116, 55, 47, 13, 65, 35, 55, 0, 10, 199, 5, 69, 18, 4, 180, 201,
+			20, 66, 9, 198, 80, 241, 82, 36, 83, 128, 66, 0, 20, 72, 88, 243, 210, 56, 83, 69, 57, 48, 83, 117, 34, 50, 116, 65, 13, 50,
+			89, 0, 6, 195, 92, 19, 148, 8, 0, 11, 68, 88, 19, 142, 20, 83, 35, 50, 13, 0, 13, 68, 61, 1, 78, 16, 110, 48, 10, 108,
+			50, 47, 0, 12, 4, 1, 19, 39, 20, 35, 89, 13, 47, 0, 72, 10, 67, 80, 243, 153, 47, 120, 50, 37, 0, 0, 6, 65, 8, 71,
+			116, 0, 0, 10, 198, 92, 19, 142, 20, 84, 128, 65, 8, 6, 195, 76, 16, 131, 17, 0, 6, 195, 89, 48, 64, 17, 14, 67, 52, 82,
+			128, 65, 13, 57, 111, 83, 34, 120, 0, 24, 0, 0, 6, 65, 12, 89, 116, 0, 0, 0, 17, 10, 2, 18, 195, 188, 14, 8, 9, 12,
+			4, 5, 21, 100, 101, 0, 10, 13, 4, 95, 8, 1, 3, 49, 6, 115, 34, 110, 50, 0, 0, 0, 13, 69, 56, 81, 197, 21, 32, 50,
+			13, 136, 116, 34, 0, 10, 69, 32, 85, 201, 81, 64, 21, 0, 10, 6, 65, 16, 72, 116, 0, 0, 0, 0, 11, 68, 88, 144, 203, 76,
+			84, 37, 49, 89, 0, 0, 5, 65, 20, 116, 0, 0, 12, 201, 16, 85, 82, 77, 68, 129, 4, 193, 5, 66, 15, 70, 92, 18, 204, 60,
+			241, 128, 84, 115, 49, 55, 117, 83, 0, 0, 10, 67, 64, 243, 132, 48, 135, 50, 47, 0, 17, 4, 95, 48, 67, 15, 107, 6, 110, 50,
+			13, 34, 47, 89, 47, 13, 0, 0, 26, 73, 52, 244, 133, 48, 85, 1, 64, 20, 139, 65, 110, 34, 13, 55, 4, 108, 47, 35, 48, 6,
+			35, 34, 49, 0, 0, 8, 197, 60, 244, 140, 20, 112, 66, 14, 69, 36, 225, 129, 52, 80, 13, 50, 83, 115, 65, 13, 0, 22, 73, 48,
+			19, 135, 20, 226, 15, 88, 83, 128, 55, 35, 68, 13, 50, 107, 117, 83, 13, 50, 0, 6, 65, 24, 108, 83, 0, 0, 6, 195, 76, 21,
+			75, 17, 0, 0, 0, 8, 197, 28, 83, 129, 16, 80, 66, 21, 10, 13, 1, 20, 20, 8, 195, 169, 195, 188, 19, 65, 35, 47, 6, 37,
+			12, 111, 89, 0, 14, 69, 8, 83, 129, 16, 80, 71, 13, 50, 115, 72, 37, 0, 15, 69, 52, 243, 129, 12, 240, 65, 110, 50, 6, 115,
+			49, 40, 0, 6, 65, 28, 136, 116, 0, 0, 0, 8, 195, 44, 19, 128, 72, 11, 32, 18, 71, 12, 243, 5, 76, 33, 82, 28, 49, 117,
+			55, 89, 71, 112, 34, 136, 0, 0, 19, 72, 80, 84, 130, 48, 19, 131, 32, 80, 47, 13, 34, 71, 55, 115, 50, 91, 0, 0, 6, 65,
+			32, 107, 115, 0, 0, 13, 70, 24, 192, 85, 8, 84, 148, 21, 102, 114, 0, 10, 0, 8, 67, 48, 244, 132, 21, 0, 10, 0, 15, 70,
+			60, 211, 69, 44, 81, 82, 110, 65, 13, 49, 116, 34, 0, 10, 198, 36, 229, 21, 77, 49, 78, 8, 32, 10, 1, 35, 50, 110, 65, 13,
+			34, 0, 27, 0, 10, 69, 28, 21, 19, 9, 144, 21, 0, 10, 5, 65, 36, 37, 0, 6, 195, 5, 66, 214, 17, 0, 13, 6, 4, 195,
+			169, 10, 195, 160, 21, 102, 114, 0, 10, 13, 1, 37, 48, 13, 34, 89, 6, 108, 50, 47, 0, 27, 0, 14, 1, 38, 23, 35, 65, 48,
+			112, 34, 89, 35, 50, 47, 0, 0, 0, 18, 70, 77, 68, 153, 17, 35, 211, 89, 47, 34, 123, 47, 10, 34, 110, 89, 0, 16, 69, 20,
+			180, 197, 48, 96, 2, 112, 49, 89, 6, 112, 55, 83, 0, 6, 65, 40, 57, 116, 0, 0, 16, 70, 44, 21, 137, 4, 20, 128, 49, 35,
+			84, 37, 6, 115, 34, 0, 0, 8, 67, 76, 148, 128, 21, 0, 10, 10, 67, 12, 20, 140, 49, 115, 34, 114, 0, 9, 1, 42, 89, 47,
+			112, 34, 0, 27, 0, 20, 72, 52, 84, 133, 28, 80, 137, 20, 64, 65, 116, 34, 13, 136, 13, 71, 37, 47, 0, 16, 70, 4, 50, 197,
+			72, 208, 78, 35, 49, 13, 34, 65, 35, 50, 0, 10, 1, 43, 48, 55, 6, 111, 89, 0, 27, 0, 6, 65, 44, 49, 115, 0, 0, 0,
+			12, 71, 28, 83, 148, 48, 83, 65, 56, 21, 0, 10, 9, 1, 46, 48, 111, 50, 47, 0, 27, 0, 12, 68, 80, 19, 137, 4, 47, 35,
+			50, 57, 35, 0, 10, 1, 47, 89, 47, 34, 116, 48, 0, 27, 0, 14, 69, 17, 84, 214, 21, 32, 72, 111, 89, 83, 112, 34, 0, 6,
+			65, 48, 112, 55, 0, 0, 0, 12, 67, 52, 85, 128, 65, 13, 83, 34, 120, 0, 24, 0, 0, 6, 65, 52, 108, 65, 0, 0, 24, 11,
+			22, 5, 18, 1, 6, 7, 5, 12, 5, 195, 171, 83, 112, 34, 35, 83, 136, 13, 55, 116, 13, 0, 9, 198, 60, 244, 140, 20, 81, 128,
+			66, 0, 17, 70, 12, 128, 82, 37, 51, 65, 49, 35, 34, 6, 109, 89, 65, 35, 0, 0, 22, 72, 65, 35, 205, 21, 66, 5, 85, 48,
+			48, 34, 40, 65, 6, 116, 47, 37, 38, 111, 89, 0, 21, 72, 52, 20, 135, 5, 33, 84, 32, 16, 65, 35, 34, 136, 35, 34, 6, 116,
+			47, 35, 0, 0, 8, 197, 64, 20, 139, 36, 80, 65, 14, 69, 80, 19, 139, 92, 16, 47, 35, 68, 49, 58, 35, 0, 11, 5, 95, 48,
+			1, 14, 4, 11, 108, 50, 0, 6, 65, 56, 108, 50, 0, 0, 9, 198, 60, 225, 5, 73, 118, 76, 67, 0, 10, 199, 4, 19, 135, 4,
+			19, 132, 20, 66, 0, 21, 72, 44, 243, 15, 77, 49, 78, 76, 80, 49, 110, 55, 13, 89, 6, 134, 50, 89, 13, 0, 0, 9, 198, 60,
+			225, 5, 73, 113, 71, 67, 9, 197, 16, 16, 82, 60, 208, 8, 32, 5, 65, 60, 117, 0, 0, 17, 70, 21, 113, 78, 81, 114, 76, 116,
+			84, 13, 50, 47, 84, 13, 55, 0, 6, 194, 61, 0, 72, 12, 15, 70, 48, 82, 80, 60, 193, 20, 55, 122, 48, 110, 55, 47, 0, 13,
+			1, 61, 10, 136, 13, 55, 6, 123, 49, 10, 0, 27, 0, 12, 71, 16, 243, 129, 48, 68, 207, 56, 21, 0, 10, 16, 70, 12, 128, 82,
+			48, 83, 133, 91, 115, 55, 6, 37, 12, 50, 0, 0, 12, 68, 61, 32, 65, 48, 117, 34, 6, 115, 55, 0, 20, 72, 36, 224, 71, 56,
+			83, 73, 56, 112, 13, 50, 35, 136, 50, 116, 65, 13, 68, 0, 0, 7, 1, 64, 71, 123, 9, 0, 6, 65, 64, 48, 116, 0, 0, 16,
+			70, 4, 227, 129, 48, 85, 0, 35, 50, 35, 55, 6, 108, 47, 0, 0, 0, 0, 6, 65, 68, 49, 118, 0, 0, 16, 70, 32, 244, 193,
+			56, 224, 64, 107, 40, 89, 6, 35, 50, 35, 0, 0, 10, 199, 5, 52, 197, 77, 51, 210, 20, 67, 12, 199, 28, 85, 143, 48, 115, 9,
+			44, 66, 8, 32, 0, 0, 8, 197, 60, 209, 197, 20, 96, 66, 0, 8, 67, 80, 129, 79, 47, 119, 0, 11, 70, 12, 128, 82, 48, 84,
+			192, 21, 0, 10, 0, 15, 6, 1, 14, 4, 18, 195, 169, 6, 35, 50, 72, 34, 123, 0, 0, 0, 17, 70, 28, 85, 197, 48, 198, 83,
+			136, 116, 84, 13, 55, 55, 123, 89, 0, 6, 65, 76, 108, 89, 0, 0, 19, 71, 77, 0, 71, 32, 85, 20, 36, 89, 48, 2, 35, 81,
+			108, 47, 2, 37, 0, 0, 11, 136, 20, 21, 14, 9, 19, 9, 195, 171, 66, 18, 71, 44, 147, 66, 21, 35, 5, 100, 49, 37, 65, 71,
+			13, 34, 55, 37, 0, 17, 70, 16, 160, 75, 5, 37, 1, 75, 35, 49, 6, 35, 34, 47, 35, 0, 0, 0, 6, 65, 80, 47, 116, 0,
+			0, 17, 70, 48, 20, 193, 28, 225, 64, 55, 35, 89, 6, 35, 50, 57, 13, 0, 16, 70, 4, 33, 21, 48, 192, 72, 35, 71, 72, 6,
+			40, 55, 35, 0, 0, 0, 7, 196, 88, 243, 20, 20, 65, 0, 9, 198, 60, 225, 197, 92, 83, 147, 65, 5, 193, 84, 72, 32, 14, 69,
+			76, 19, 132, 72, 16, 89, 35, 50, 72, 34, 35, 0, 9, 198, 52, 20, 148, 36, 83, 147, 66, 15, 69, 84, 112, 78, 16, 16, 40, 81,
+			6, 35, 50, 72, 35, 0, 0, 14, 70, 64, 85, 71, 20, 245, 0, 48, 111, 12, 90, 120, 0, 0, 0, 22, 72, 76, 244, 200, 4, 225,
+			213, 88, 80, 89, 110, 91, 35, 68, 81, 6, 40, 12, 84, 108, 0, 0, 24, 73, 48, 19, 66, 61, 33, 200, 36, 226, 64, 55, 35, 65,
+			71, 110, 34, 81, 6, 37, 12, 50, 37, 0, 6, 65, 88, 83, 116, 0, 0, 9, 66, 5, 48, 4, 35, 89, 0, 8, 0, 0, 9, 68,
+			52, 16, 133, 48, 21, 0, 10, 11, 200, 12, 243, 147, 80, 19, 148, 36, 16, 66, 0, 13, 69, 64, 85, 9, 80, 80, 48, 13, 47, 37,
+			47, 0, 14, 69, 64, 85, 18, 85, 48, 48, 116, 47, 34, 111, 89, 0, 12, 1, 92, 47, 34, 118, 89, 47, 34, 116, 48, 0, 6, 65,
+			92, 84, 116, 0, 0, 16, 70, 56, 85, 10, 36, 84, 192, 50, 108, 12, 37, 80, 37, 89, 0, 16, 70, 36, 66, 76, 48, 84, 192, 37,
+			72, 6, 109, 55, 13, 89, 0, 0, 11, 67, 64, 244, 148, 48, 110, 34, 47, 0, 65, 24, 73, 29, 35, 194, 48, 84, 147, 16, 19, 0,
+			136, 34, 110, 71, 55, 13, 34, 89, 72, 6, 35, 55, 0, 0, 12, 68, 44, 17, 133, 20, 49, 35, 83, 6, 116, 0, 0, 7, 65, 96,
+			108, 49, 89, 0, 0, 17, 70, 64, 19, 5, 72, 211, 192, 48, 35, 55, 6, 112, 34, 65, 40, 0, 0, 16, 70, 56, 85, 10, 36, 84,
+			197, 50, 108, 37, 80, 37, 89, 13, 0, 0, 12, 68, 49, 80, 193, 76, 55, 40, 49, 35, 89, 0, 0, 17, 70, 76, 243, 132, 20, 225,
+			83, 89, 110, 50, 72, 13, 50, 108, 89, 0, 5, 65, 100, 123, 0, 0, 11, 67, 4, 211, 211, 6, 115, 65, 110, 89, 0, 9, 67, 80,
+			134, 83, 47, 123, 89, 0, 17, 70, 56, 21, 1, 76, 128, 64, 50, 2, 35, 47, 6, 35, 91, 35, 0, 0, 10, 199, 48, 85, 137, 80,
+			146, 213, 76, 66, 12, 71, 72, 240, 133, 73, 68, 207, 56, 21, 0, 10, 28, 67, 48, 244, 192, 55, 110, 89, 10, 6, 35, 50, 75, 13,
+			55, 37, 12, 88, 0, 81, 97, 110, 103, 101, 108, 101, 115, 32, 0, 10, 67, 8, 197, 77, 71, 55, 40, 65, 0, 0, 10, 69, 44, 83,
+			22, 36, 224, 21, 0, 10, 7, 65, 104, 88, 108, 72, 0, 0, 16, 70, 56, 148, 150, 4, 224, 64, 50, 13, 34, 84, 115, 50, 35, 0,
+			16, 70, 28, 20, 129, 28, 84, 192, 81, 13, 34, 115, 75, 13, 89, 0, 9, 67, 21, 84, 143, 128, 34, 40, 0, 17, 70, 76, 16, 146,
+			36, 224, 64, 89, 35, 71, 34, 6, 37, 50, 35, 0, 0, 19, 71, 88, 84, 132, 21, 32, 65, 56, 83, 113, 34, 72, 13, 34, 10, 115,
+			50, 0, 0, 11, 68, 64, 147, 143, 80, 48, 37, 50, 40, 0, 9, 198, 60, 225, 197, 48, 243, 198, 65, 19, 72, 29, 32, 72, 4, 212,
+			212, 4, 64, 136, 34, 115, 65, 89, 47, 35, 47, 0, 0, 14, 69, 44, 244, 1, 5, 32, 49, 110, 48, 10, 115, 34, 0, 0, 0, 18,
+			71, 72, 147, 80, 20, 194, 78, 28, 34, 109, 65, 48, 13, 55, 13, 68, 0, 0, 0, 8, 197, 76, 81, 5, 73, 64, 8, 0, 14, 70,
+			21, 66, 69, 56, 225, 64, 108, 47, 37, 13, 50, 0, 0, 0, 13, 68, 61, 32, 76, 20, 117, 34, 6, 115, 55, 13, 0, 0, 14, 69,
+			16, 19, 5, 56, 80, 72, 35, 55, 6, 116, 50, 0, 10, 69, 12, 192, 73, 72, 80, 21, 0, 10, 0, 18, 70, 52, 20, 148, 36, 226,
+			64, 65, 35, 34, 47, 6, 37, 12, 50, 37, 0, 17, 70, 88, 149, 129, 48, 66, 64, 84, 37, 84, 6, 35, 55, 72, 37, 0, 0, 0,
+			16, 70, 40, 84, 197, 8, 83, 0, 57, 116, 89, 13, 71, 112, 55, 0, 0, 0, 17, 70, 40, 19, 148, 92, 18, 192, 57, 35, 50, 47,
+			58, 6, 35, 49, 0, 16, 70, 16, 17, 5, 48, 146, 192, 72, 115, 72, 13, 55, 109, 49, 0, 17, 66, 5, 80, 120, 15, 48, 6, 113,
+			34, 0, 81, 112, 97, 105, 114, 32, 0, 10, 199, 16, 85, 82, 77, 64, 65, 56, 66, 0, 7, 196, 76, 19, 146, 8, 17, 0, 8, 197,
+			60, 225, 213, 57, 48, 65, 14, 69, 56, 19, 69, 57, 48, 50, 115, 65, 13, 50, 89, 0, 8, 197, 20, 180, 205, 4, 224, 65, 13, 69,
+			17, 83, 142, 21, 48, 72, 111, 50, 13, 89, 0, 0, 9, 198, 60, 225, 197, 52, 18, 192, 65, 0, 10, 1, 126, 47, 109, 55, 72, 13,
+			0, 27, 0, 0, 0, 11, 70, 12, 130, 67, 4, 115, 192, 21, 0, 10, 0, 0, 12, 68, 21, 33, 197, 72, 112, 34, 81, 13, 34, 0,
+			0, 0, 0, 15, 70, 92, 243, 19, 20, 193, 89, 58, 40, 55, 89, 55, 37, 0, 0, 0, 18, 70, 20, 193, 15, 72, 17, 15, 112, 55,
+			72, 110, 34, 6, 115, 72, 120, 0, 0, 15, 70, 16, 145, 134, 85, 84, 192, 72, 13, 83, 118, 12, 89, 0, 15, 70, 85, 68, 133, 12,
+			133, 0, 118, 47, 34, 112, 136, 47, 0, 0, 0, 14, 7, 3, 18, 195, 168, 3, 8, 5, 49, 34, 108, 91, 0, 0, 8, 197, 92, 16,
+			82, 60, 208, 8, 0, 9, 198, 76, 82, 212, 61, 33, 64, 66, 9, 198, 16, 242, 212, 61, 33, 64, 66, 14, 70, 72, 83, 133, 81, 65,
+			64, 34, 13, 50, 108, 47, 0, 0, 0, 11, 200, 88, 243, 19, 92, 19, 135, 21, 32, 65, 0, 0, 21, 66, 16, 16, 72, 35, 15, 84,
+			6, 37, 50, 76, 37, 0, 81, 118, 105, 110, 99, 105, 32, 0, 11, 70, 20, 20, 212, 28, 21, 5, 21, 0, 10, 0, 0, 14, 69, 88,
+			244, 137, 28, 80, 83, 117, 34, 13, 136, 13, 0, 16, 69, 76, 145, 83, 80, 16, 89, 37, 38, 6, 108, 89, 47, 35, 0, 14, 69, 29,
+			32, 78, 28, 80, 136, 34, 115, 50, 89, 37, 0, 14, 69, 20, 196, 193, 8, 80, 112, 55, 89, 13, 71, 37, 0, 0, 0, 7, 195, 16,
+			21, 0, 72, 11, 0, 7, 196, 44, 243, 148, 20, 65, 23, 72, 53, 5, 77, 4, 192, 78, 28, 16, 65, 48, 40, 12, 65, 35, 55, 6,
+			35, 68, 81, 35, 0, 8, 67, 48, 17, 25, 21, 0, 10, 0, 14, 69, 16, 80, 143, 72, 16, 72, 13, 71, 117, 34, 35, 0, 0, 17,
+			70, 32, 16, 129, 45, 82, 192, 107, 6, 35, 71, 35, 49, 111, 49, 0, 0, 18, 7, 4, 1, 14, 9, 195, 171, 12, 72, 6, 115, 50,
+			37, 12, 13, 55, 0, 0, 22, 72, 88, 84, 147, 36, 225, 1, 8, 16, 83, 113, 34, 89, 10, 13, 50, 72, 115, 71, 35, 0, 11, 200,
+			52, 148, 194, 73, 82, 75, 80, 80, 66, 12, 68, 88, 243, 22, 60, 84, 110, 55, 84, 40, 0, 0, 0, 15, 70, 44, 194, 77, 20, 145,
+			0, 49, 55, 109, 65, 123, 47, 0, 0, 0, 0, 0, 16, 70, 64, 144, 193, 77, 51, 192, 48, 37, 49, 6, 35, 89, 40, 0, 11, 70,
+			52, 20, 135, 5, 33, 84, 21, 0, 10, 0, 0, 16, 7, 19, 195, 169, 1, 14, 3, 5, 89, 2, 116, 133, 50, 89, 0, 0, 16, 70,
+			80, 84, 207, 85, 37, 83, 47, 13, 89, 120, 34, 111, 89, 0, 0, 0, 13, 67, 52, 228, 128, 65, 109, 50, 6, 116, 34, 0, 24, 0,
+			9, 68, 60, 113, 5, 56, 21, 0, 10, 0, 9, 198, 77, 64, 67, 12, 21, 15, 66, 0, 17, 70, 48, 20, 193, 73, 84, 192, 55, 115,
+			89, 13, 34, 2, 111, 89, 0, 15, 70, 13, 84, 211, 60, 228, 192, 49, 35, 89, 13, 50, 89, 0, 13, 66, 17, 32, 72, 6, 110, 49,
+			47, 13, 34, 0, 24, 16, 66, 9, 96, 71, 123, 83, 6, 117, 34, 71, 116, 55, 47, 0, 24, 0, 0, 12, 200, 36, 229, 5, 20, 225,
+			5, 20, 192, 66, 8, 13, 68, 40, 244, 213, 4, 57, 6, 117, 91, 37, 35, 0, 12, 68, 45, 34, 71, 20, 49, 34, 37, 136, 13, 0,
+			0, 12, 69, 76, 50, 15, 61, 32, 89, 49, 117, 34, 0, 0, 17, 70, 52, 244, 212, 21, 37, 0, 65, 6, 110, 89, 47, 13, 34, 47,
+			0, 0, 0, 11, 67, 8, 85, 1, 71, 116, 47, 35, 0, 9, 13, 68, 44, 83, 137, 4, 49, 37, 12, 50, 37, 35, 0, 0, 0, 9,
+			198, 65, 34, 77, 5, 65, 64, 66, 0, 0, 8, 196, 60, 225, 5, 72, 72, 12, 0, 13, 69, 24, 245, 82, 36, 80, 83, 40, 34, 6,
+			37, 0, 0, 0, 17, 71, 81, 34, 67, 32, 20, 132, 80, 47, 34, 37, 136, 115, 34, 47, 0, 0, 16, 70, 76, 83, 133, 44, 19, 0,
+			89, 116, 50, 13, 49, 35, 55, 0, 0, 14, 69, 28, 195, 210, 36, 16, 81, 55, 131, 34, 37, 35, 0, 12, 201, 4, 208, 78, 104, 147,
+			84, 61, 66, 64, 68, 0, 0, 11, 70, 88, 144, 212, 61, 34, 65, 21, 0, 10, 0, 11, 200, 60, 225, 197, 92, 83, 147, 16, 80, 67,
+			0, 0, 0, 9, 198, 84, 226, 70, 61, 35, 69, 67, 0, 7, 196, 76, 241, 1, 80, 8, 7, 196, 60, 209, 1, 80, 8, 0, 0, 0,
+			6, 195, 4, 224, 192, 17, 0, 12, 68, 29, 34, 69, 28, 81, 34, 37, 12, 81, 0, 0, 0, 10, 198, 56, 241, 212, 4, 228, 192, 8,
+			32, 0, 17, 70, 48, 243, 132, 20, 228, 197, 55, 110, 50, 72, 13, 50, 89, 13, 0, 11, 67, 8, 80, 64, 71, 37, 12, 57, 35, 0,
+			0, 0, 0, 0, 6, 195, 16, 145, 64, 72, 0, 10, 67, 105, 83, 21, 88, 40, 55, 40, 0, 0, 14, 69, 72, 243, 132, 21, 32, 34,
+			110, 50, 72, 13, 34, 0, 14, 69, 17, 83, 131, 4, 224, 72, 35, 68, 49, 14, 50, 0, 12, 69, 8, 245, 87, 21, 32, 71, 120, 13,
+			34, 0, 0, 0, 19, 71, 28, 83, 4, 20, 194, 75, 20, 136, 112, 55, 72, 13, 55, 13, 49, 13, 0, 0, 10, 67, 73, 81, 1, 34,
+			40, 72, 35, 0, 0, 14, 69, 49, 82, 68, 61, 0, 55, 127, 47, 10, 110, 48, 0, 10, 69, 72, 240, 133, 73, 64, 21, 0, 10, 15,
+			69, 8, 84, 212, 21, 32, 71, 6, 108, 89, 47, 13, 34, 0, 0, 12, 201, 60, 244, 133, 20, 226, 207, 53, 53, 5, 66, 19, 8, 5,
+			6, 5, 19, 9, 195, 171, 18, 37, 83, 6, 116, 89, 37, 13, 34, 0, 17, 8, 3, 9, 20, 18, 15, 195, 170, 14, 89, 13, 47, 34,
+			40, 50, 0, 15, 66, 16, 80, 72, 13, 15, 55, 35, 0, 72, 81, 108, 97, 32, 8, 66, 16, 80, 72, 13, 0, 9, 16, 70, 28, 243,
+			149, 8, 145, 64, 81, 13, 50, 40, 12, 71, 37, 0, 0, 0, 12, 68, 32, 147, 4, 20, 107, 37, 55, 72, 13, 0, 0, 8, 195, 32,
+			16, 82, 72, 9, 32, 16, 69, 76, 243, 1, 56, 176, 89, 2, 117, 55, 35, 68, 49, 0, 8, 16, 7, 11, 1, 14, 1, 195, 164, 14,
+			49, 115, 50, 115, 35, 50, 0, 0, 0, 18, 71, 64, 148, 143, 84, 85, 20, 20, 48, 13, 34, 40, 12, 6, 108, 47, 0, 20, 71, 4,
+			112, 77, 20, 211, 143, 56, 35, 136, 35, 65, 6, 108, 65, 50, 110, 50, 0, 0, 13, 68, 92, 83, 1, 24, 84, 112, 55, 10, 35, 83,
+			0, 9, 68, 9, 34, 65, 56, 21, 0, 10, 12, 4, 95, 4, 16, 20, 6, 48, 111, 50, 47, 0, 0, 0, 5, 194, 9, 144, 72, 16,
+			66, 17, 80, 72, 13, 15, 47, 125, 0, 81, 116, 111, 105, 116, 32, 19, 66, 17, 80, 72, 13, 15, 48, 34, 6, 116, 0, 81, 112, 114,
+			101, 101, 122, 32, 18, 66, 17, 80, 72, 13, 15, 48, 55, 125, 0, 81, 112, 108, 111, 111, 121, 32, 23, 66, 17, 80, 72, 40, 15, 48,
+			55, 13, 89, 6, 37, 0, 81, 112, 108, 101, 115, 115, 105, 115, 32, 24, 66, 17, 80, 72, 40, 15, 48, 37, 89, 6, 115, 50, 37, 0,
+			81, 112, 105, 115, 97, 110, 105, 101, 32, 5, 194, 17, 80, 72, 0, 10, 199, 80, 83, 141, 36, 228, 212, 20, 66, 0, 13, 68, 32, 19,
+			12, 60, 107, 6, 109, 55, 4, 120, 0, 11, 200, 20, 65, 76, 4, 112, 129, 72, 80, 67, 15, 7, 5, 21, 7, 195, 168, 14, 5, 118,
+			90, 6, 108, 50, 0, 0, 10, 67, 40, 80, 78, 90, 133, 50, 0, 41, 0, 0, 8, 67, 56, 82, 76, 21, 0, 10, 0, 12, 68, 80,
+			19, 135, 4, 47, 35, 68, 81, 35, 0, 8, 196, 80, 83, 147, 100, 66, 8, 7, 196, 56, 17, 1, 80, 8, 0, 8, 197, 24, 195, 210,
+			37, 48, 65, 19, 70, 4, 229, 15, 56, 149, 83, 35, 50, 47, 6, 117, 50, 37, 57, 111, 89, 0, 0, 6, 194, 4, 192, 8, 32, 17,
+			70, 40, 240, 67, 32, 147, 64, 57, 40, 58, 6, 115, 136, 13, 65, 0, 0, 0, 12, 68, 49, 82, 193, 76, 55, 40, 49, 35, 89, 0,
+			12, 68, 29, 33, 84, 4, 81, 34, 116, 47, 35, 0, 13, 4, 95, 20, 12, 4, 47, 6, 109, 55, 72, 13, 0, 0, 10, 69, 92, 21,
+			19, 60, 224, 21, 0, 10, 14, 69, 37, 48, 66, 20, 192, 37, 89, 13, 71, 112, 55, 0, 0, 9, 198, 4, 196, 133, 20, 68, 192, 66,
+			0, 16, 67, 20, 228, 192, 108, 50, 89, 117, 83, 117, 34, 47, 89, 0, 24, 0, 12, 68, 88, 83, 132, 4, 84, 108, 50, 72, 35, 0,
+			9, 68, 12, 242, 5, 56, 21, 0, 10, 0, 13, 69, 12, 131, 208, 36, 224, 91, 2, 110, 48, 133, 0, 0, 17, 70, 60, 213, 18, 20,
+			229, 0, 110, 65, 47, 34, 6, 108, 50, 47, 0, 22, 66, 21, 64, 108, 47, 89, 6, 108, 47, 13, 34, 35, 0, 81, 99, 101, 116, 101,
+			114, 97, 32, 9, 198, 4, 194, 66, 4, 208, 64, 67, 0, 0, 9, 198, 92, 16, 82, 32, 81, 78, 8, 16, 70, 85, 2, 78, 29, 67,
+			206, 35, 48, 37, 68, 47, 13, 50, 0, 0, 0, 17, 70, 52, 242, 1, 52, 209, 68, 65, 40, 107, 6, 35, 65, 13, 47, 0, 0, 0,
+			12, 137, 1, 7, 20, 5, 18, 23, 5, 195, 171, 67, 0, 0, 16, 70, 8, 147, 208, 76, 145, 64, 71, 37, 6, 110, 48, 89, 37, 0,
+			16, 70, 52, 243, 148, 4, 117, 64, 65, 110, 50, 47, 13, 49, 118, 0, 0, 0, 0, 0, 9, 198, 60, 244, 151, 4, 18, 64, 65, 0,
+			0, 9, 198, 72, 243, 132, 20, 83, 0, 66, 9, 68, 48, 245, 73, 76, 55, 126, 0, 0, 8, 197, 60, 244, 139, 60, 208, 66, 14, 69,
+			20, 97, 129, 80, 16, 108, 83, 6, 115, 47, 35, 0, 0, 0, 10, 67, 52, 241, 84, 65, 40, 47, 0, 32, 0, 9, 198, 88, 243, 210,
+			92, 16, 82, 66, 13, 68, 76, 243, 143, 64, 89, 110, 50, 10, 110, 48, 0, 11, 200, 60, 225, 197, 72, 145, 70, 36, 80, 65, 0, 16,
+			70, 24, 85, 1, 44, 16, 83, 83, 108, 47, 35, 49, 115, 89, 0, 13, 69, 76, 128, 82, 60, 224, 91, 112, 34, 14, 50, 0, 10, 69,
+			8, 244, 212, 60, 224, 21, 0, 10, 0, 11, 70, 92, 147, 12, 36, 19, 64, 21, 0, 10, 0, 0, 24, 72, 16, 84, 207, 56, 64, 78,
+			45, 48, 72, 108, 89, 19, 110, 50, 72, 35, 68, 49, 89, 0, 8, 32, 16, 70, 20, 147, 147, 80, 82, 78, 121, 50, 89, 47, 121, 12,
+			50, 0, 20, 9, 23, 1, 12, 12, 15, 14, 9, 195, 171, 84, 35, 55, 6, 117, 50, 37, 13, 0, 0, 14, 69, 8, 84, 212, 21, 48,
+			71, 108, 89, 47, 13, 89, 0, 23, 73, 12, 192, 78, 92, 147, 12, 36, 19, 64, 49, 55, 113, 50, 58, 6, 37, 55, 37, 13, 65, 0,
+			0, 10, 67, 52, 241, 83, 65, 40, 89, 0, 32, 15, 70, 44, 128, 89, 100, 19, 64, 49, 35, 57, 6, 35, 65, 0, 18, 5, 19, 13,
+			19, 39, 5, 108, 89, 10, 108, 65, 10, 6, 108, 89, 13, 0, 0, 0, 0, 11, 68, 8, 245, 8, 4, 71, 117, 47, 35, 0, 0, 14,
+			6, 14, 1, 21, 4, 195, 169, 50, 110, 72, 6, 116, 0, 0, 0, 16, 71, 76, 50, 18, 20, 147, 133, 72, 91, 34, 121, 50, 13, 34,
+			0, 0, 12, 68, 80, 19, 135, 60, 47, 35, 68, 136, 40, 0, 12, 68, 12, 147, 132, 100, 89, 109, 50, 72, 37, 0, 9, 68, 4, 115,
+			133, 76, 21, 0, 10, 12, 68, 44, 243, 135, 60, 49, 110, 68, 81, 40, 0, 0, 0, 17, 70, 56, 85, 19, 61, 113, 76, 50, 108, 47,
+			89, 117, 84, 112, 55, 0, 11, 70, 12, 128, 85, 12, 84, 128, 21, 0, 10, 0, 18, 71, 9, 82, 84, 21, 1, 82, 16, 71, 127, 47,
+			13, 48, 113, 34, 47, 0, 23, 10, 13, 1, 3, 5, 4, 15, 14, 9, 195, 171, 65, 35, 89, 13, 72, 6, 117, 50, 37, 13, 0, 24,
+			10, 2, 1, 2, 9, 12, 15, 14, 9, 195, 171, 71, 35, 71, 37, 55, 6, 117, 50, 37, 38, 13, 0, 0, 11, 68, 4, 195, 1, 32,
+			2, 35, 55, 115, 0, 18, 7, 9, 20, 1, 12, 9, 195, 171, 37, 47, 6, 115, 55, 37, 38, 13, 0, 22, 72, 4, 97, 193, 56, 148,
+			212, 4, 224, 35, 83, 81, 6, 35, 50, 37, 89, 47, 35, 50, 0, 0, 18, 70, 12, 20, 193, 56, 245, 129, 49, 35, 89, 35, 50, 6,
+			117, 84, 35, 0, 0, 0, 0, 11, 68, 32, 19, 143, 84, 107, 115, 50, 120, 0, 0, 18, 70, 76, 241, 15, 20, 225, 5, 89, 6, 117,
+			72, 4, 40, 50, 72, 13, 0, 0, 17, 70, 52, 20, 140, 20, 225, 64, 65, 35, 34, 55, 6, 116, 12, 50, 0, 21, 9, 1, 2, 9,
+			13, 195, 169, 12, 5, 7, 35, 71, 37, 50, 6, 116, 55, 108, 136, 0, 0, 17, 67, 36, 228, 208, 109, 50, 89, 48, 108, 49, 47, 6,
+			128, 34, 0, 24, 0, 13, 68, 88, 84, 129, 24, 83, 112, 34, 10, 35, 83, 0, 12, 68, 88, 19, 129, 24, 83, 35, 50, 35, 83, 0,
+			15, 70, 76, 50, 15, 20, 208, 78, 89, 49, 40, 65, 35, 50, 0, 0, 14, 69, 64, 19, 1, 92, 16, 48, 13, 55, 115, 84, 35, 0,
+			16, 69, 21, 52, 5, 4, 176, 37, 12, 38, 89, 48, 37, 12, 49, 0, 7, 195, 16, 149, 0, 72, 32, 0, 0, 19, 71, 76, 181, 76,
+			16, 83, 1, 76, 89, 49, 111, 55, 72, 13, 55, 35, 89, 0, 20, 71, 56, 20, 193, 72, 83, 133, 72, 50, 35, 89, 35, 34, 6, 116,
+			50, 13, 34, 0, 16, 70, 48, 148, 19, 80, 145, 75, 55, 109, 48, 89, 47, 37, 49, 0, 15, 70, 12, 129, 67, 44, 84, 147, 76, 108,
+			49, 13, 34, 89, 0, 15, 70, 53, 144, 149, 72, 114, 0, 65, 123, 71, 111, 34, 136, 0, 0, 13, 68, 52, 19, 1, 56, 65, 35, 55,
+			6, 35, 50, 0, 0, 14, 69, 52, 17, 1, 52, 80, 65, 35, 72, 6, 115, 65, 0, 13, 69, 52, 20, 148, 32, 16, 65, 35, 34, 47,
+			35, 0, 13, 69, 8, 84, 148, 32, 16, 71, 112, 34, 47, 35, 0, 0, 6, 195, 20, 243, 133, 66, 10, 67, 8, 83, 133, 71, 116, 50,
+			13, 0, 0, 0, 11, 200, 44, 192, 65, 77, 96, 75, 36, 80, 66, 15, 6, 10, 21, 14, 195, 173, 14, 136, 40, 50, 6, 37, 50, 0,
+			0, 10, 67, 41, 80, 78, 136, 58, 35, 50, 0, 16, 70, 28, 83, 210, 28, 147, 129, 75, 131, 75, 6, 37, 50, 35, 0, 17, 70, 16,
+			19, 137, 20, 195, 5, 72, 35, 50, 37, 38, 6, 112, 55, 0, 0, 11, 67, 105, 83, 65, 88, 40, 12, 65, 35, 0, 16, 70, 48, 21,
+			5, 28, 19, 128, 55, 115, 47, 13, 136, 35, 50, 0, 11, 70, 12, 194, 70, 80, 243, 128, 21, 0, 10, 0, 16, 70, 72, 145, 83, 48,
+			147, 135, 34, 37, 12, 89, 55, 37, 68, 0, 7, 195, 16, 19, 128, 8, 32, 20, 71, 52, 85, 21, 76, 19, 5, 52, 65, 13, 47, 6,
+			118, 89, 35, 55, 108, 65, 0, 19, 71, 64, 146, 197, 80, 33, 82, 28, 48, 13, 49, 108, 47, 71, 112, 34, 136, 0, 0, 0, 9, 198,
+			4, 100, 137, 12, 19, 129, 67, 0, 10, 67, 88, 84, 129, 84, 116, 34, 35, 0, 11, 70, 77, 65, 80, 32, 83, 128, 21, 0, 10, 0,
+			10, 67, 88, 84, 128, 83, 6, 113, 34, 0, 10, 199, 16, 85, 82, 28, 16, 78, 76, 65, 0, 16, 73, 52, 17, 1, 52, 242, 83, 20,
+			195, 5, 21, 102, 114, 0, 10, 0, 13, 69, 80, 129, 82, 60, 224, 47, 34, 6, 110, 50, 0, 10, 69, 48, 147, 9, 4, 224, 21, 0,
+			10, 0, 17, 70, 56, 146, 211, 92, 84, 132, 50, 109, 49, 89, 84, 113, 34, 47, 0, 15, 70, 88, 149, 137, 21, 36, 192, 84, 13, 84,
+			13, 57, 116, 0, 0, 0, 10, 67, 88, 84, 135, 83, 112, 34, 136, 0, 9, 68, 32, 83, 5, 56, 21, 0, 10, 0, 14, 69, 52, 244,
+			139, 20, 192, 65, 110, 34, 49, 13, 55, 0, 0, 0, 0, 19, 72, 12, 132, 137, 77, 66, 65, 4, 224, 49, 34, 109, 89, 47, 37, 115,
+			50, 0, 0, 23, 73, 8, 83, 1, 56, 116, 137, 44, 84, 128, 71, 13, 55, 35, 68, 34, 13, 49, 4, 109, 34, 0, 0, 0, 0, 0,
+			14, 69, 77, 80, 137, 21, 64, 89, 111, 71, 6, 37, 47, 0, 9, 198, 4, 193, 193, 4, 225, 5, 66, 0, 6, 194, 8, 240, 72, 12,
+			0, 18, 71, 13, 33, 83, 12, 83, 132, 60, 49, 34, 13, 91, 108, 50, 72, 40, 0, 23, 73, 72, 16, 200, 52, 19, 137, 56, 241, 134,
+			34, 35, 136, 65, 6, 35, 50, 37, 50, 110, 83, 0, 19, 71, 16, 83, 133, 52, 20, 139, 20, 72, 116, 50, 13, 65, 35, 34, 49, 13,
+			0, 18, 71, 8, 241, 75, 5, 33, 83, 80, 71, 40, 49, 35, 34, 108, 89, 47, 0, 0, 0, 16, 69, 36, 225, 21, 56, 16, 37, 50,
+			72, 6, 40, 12, 50, 35, 0, 15, 6, 13, 15, 18, 14, 195, 169, 65, 110, 34, 50, 6, 123, 0, 14, 69, 52, 243, 137, 12, 16, 65,
+			110, 50, 37, 49, 35, 0, 15, 69, 32, 83, 5, 56, 16, 107, 37, 55, 6, 116, 50, 35, 0, 13, 69, 8, 85, 19, 36, 80, 71, 108,
+			47, 89, 37, 0, 0, 0, 0, 0, 15, 69, 80, 245, 1, 48, 80, 47, 40, 47, 6, 115, 55, 13, 0, 14, 69, 56, 17, 5, 48, 80,
+			50, 115, 72, 116, 55, 13, 0, 18, 70, 52, 16, 193, 72, 243, 137, 65, 35, 49, 35, 34, 6, 117, 50, 37, 0, 21, 73, 12, 132, 137,
+			77, 67, 198, 24, 83, 0, 49, 34, 13, 89, 47, 110, 83, 13, 55, 0, 17, 69, 4, 209, 76, 36, 16, 35, 65, 6, 37, 12, 55, 37,
+			57, 35, 0, 14, 69, 28, 17, 1, 72, 16, 136, 13, 72, 115, 34, 35, 0, 0, 0, 17, 3, 226, 133, 148, 47, 58, 4, 116, 72, 6,
+			113, 34, 72, 13, 89, 0, 0, 13, 68, 72, 243, 133, 48, 34, 40, 50, 6, 112, 55, 0, 0, 18, 70, 40, 18, 207, 52, 147, 129, 57,
+			35, 49, 40, 65, 6, 37, 50, 35, 0, 0, 9, 198, 20, 180, 212, 20, 83, 128, 65, 16, 70, 45, 84, 149, 52, 19, 128, 49, 40, 34,
+			40, 65, 35, 50, 0, 0, 16, 70, 21, 33, 197, 72, 147, 135, 112, 34, 81, 13, 34, 13, 68, 0, 0, 12, 68, 16, 20, 133, 52, 72,
+			35, 34, 13, 65, 0, 14, 70, 12, 147, 147, 5, 85, 0, 89, 13, 50, 89, 117, 0, 11, 3, 226, 133, 147, 72, 113, 34, 72, 13, 0,
+			0, 15, 69, 36, 229, 5, 57, 48, 13, 50, 47, 6, 108, 50, 89, 0, 14, 69, 20, 193, 5, 73, 48, 112, 55, 72, 13, 34, 89, 0,
+			14, 73, 77, 4, 137, 56, 116, 212, 20, 83, 128, 21, 0, 10, 0, 10, 198, 60, 100, 203, 60, 243, 128, 66, 8, 9, 198, 88, 147, 10,
+			60, 83, 128, 66, 13, 70, 5, 98, 71, 56, 243, 128, 21, 102, 114, 0, 10, 0, 0, 9, 68, 20, 197, 137, 76, 21, 0, 10, 0, 19,
+			70, 5, 3, 212, 20, 244, 197, 35, 48, 110, 47, 37, 38, 6, 117, 89, 13, 0, 14, 69, 52, 245, 84, 60, 224, 65, 40, 47, 6, 110,
+			50, 0, 0, 9, 198, 8, 244, 203, 4, 20, 192, 66, 11, 70, 8, 80, 84, 48, 84, 192, 21, 0, 10, 16, 70, 52, 84, 211, 36, 20,
+			192, 65, 13, 89, 37, 57, 35, 89, 0, 15, 70, 8, 244, 12, 4, 20, 192, 71, 117, 48, 55, 115, 89, 0, 0, 10, 67, 4, 128, 64,
+			115, 107, 26, 115, 0, 19, 71, 52, 21, 82, 37, 66, 85, 76, 65, 110, 34, 6, 37, 91, 57, 111, 89, 0, 0, 9, 68, 92, 83, 132,
+			100, 21, 0, 10, 10, 3, 95, 49, 15, 10, 6, 116, 34, 0, 0, 0, 10, 3, 95, 49, 1, 10, 6, 116, 50, 0, 0, 14, 71, 8,
+			245, 82, 28, 83, 201, 76, 21, 102, 114, 0, 10, 9, 3, 226, 130, 172, 128, 34, 40, 0, 0, 19, 8, 22, 15, 195, 171, 12, 5, 14,
+			20, 83, 117, 13, 55, 10, 108, 50, 47, 0, 0, 0, 17, 70, 56, 244, 141, 4, 193, 64, 50, 110, 34, 65, 6, 115, 55, 13, 0, 0,
+			0, 24, 67, 64, 144, 203, 48, 4, 37, 49, 15, 13, 50, 15, 48, 6, 123, 0, 82, 110, 32, 112, 97, 121, 32, 10, 3, 95, 50, 15,
+			47, 58, 6, 116, 0, 0, 0, 9, 66, 20, 176, 112, 49, 0, 72, 32, 0, 0, 10, 67, 88, 84, 147, 83, 113, 34, 89, 0, 12, 68,
+			28, 83, 133, 72, 136, 116, 50, 13, 34, 0, 13, 68, 5, 51, 207, 44, 2, 35, 89, 10, 117, 49, 0, 0, 15, 69, 76, 19, 1, 52,
+			144, 89, 35, 55, 6, 115, 65, 37, 0, 7, 195, 32, 85, 0, 72, 32, 16, 69, 17, 99, 210, 4, 176, 72, 14, 84, 6, 131, 90, 35,
+			49, 0, 0, 16, 70, 81, 32, 71, 36, 82, 192, 47, 34, 35, 136, 6, 37, 49, 0, 17, 70, 9, 33, 89, 4, 226, 64, 71, 34, 37,
+			57, 6, 115, 50, 37, 0, 16, 70, 65, 33, 83, 80, 146, 192, 48, 34, 108, 89, 47, 37, 49, 0, 24, 74, 64, 245, 3, 32, 81, 147,
+			81, 35, 207, 52, 48, 110, 76, 109, 83, 89, 47, 34, 6, 117, 65, 0, 0, 11, 199, 60, 225, 5, 73, 113, 82, 64, 67, 36, 10, 199,
+			28, 84, 136, 5, 33, 21, 76, 66, 0, 9, 68, 40, 243, 133, 76, 21, 0, 10, 10, 3, 95, 51, 15, 72, 6, 113, 34, 0, 0, 15,
+			69, 76, 243, 149, 72, 80, 89, 110, 50, 10, 118, 34, 13, 0, 0, 6, 194, 37, 48, 72, 32, 0, 12, 71, 92, 147, 66, 48, 81, 15,
+			56, 21, 0, 10, 0, 20, 72, 5, 36, 143, 28, 19, 147, 36, 80, 35, 34, 40, 136, 6, 35, 50, 89, 37, 0, 12, 68, 76, 245, 8,
+			60, 89, 40, 12, 47, 40, 0, 9, 67, 41, 83, 135, 57, 40, 68, 0, 0, 0, 0, 9, 198, 32, 84, 139, 84, 193, 83, 65, 17, 70,
+			44, 19, 1, 24, 243, 135, 49, 35, 55, 35, 83, 6, 110, 68, 0, 0, 0, 0, 20, 9, 6, 18, 1, 14, 195, 167, 15, 9, 19, 83,
+			34, 133, 50, 89, 58, 6, 115, 0, 0, 6, 195, 16, 148, 192, 72, 14, 71, 12, 129, 86, 72, 243, 5, 80, 21, 102, 114, 0, 10, 0,
+			0, 15, 70, 56, 245, 83, 20, 64, 69, 50, 120, 89, 13, 72, 115, 0, 0, 16, 70, 80, 84, 85, 36, 192, 64, 47, 13, 49, 37, 12,
+			55, 35, 0, 16, 70, 44, 19, 9, 20, 96, 64, 49, 35, 55, 6, 37, 83, 35, 0, 17, 70, 56, 21, 1, 76, 160, 64, 50, 2, 35,
+			47, 6, 35, 91, 35, 0, 18, 70, 52, 21, 8, 36, 20, 192, 65, 35, 47, 6, 37, 12, 57, 35, 89, 0, 9, 198, 8, 84, 141, 84,
+			64, 64, 66, 0, 19, 71, 65, 33, 84, 61, 34, 85, 76, 48, 34, 13, 47, 117, 34, 37, 111, 89, 0, 0, 20, 72, 29, 34, 69, 44,
+			83, 1, 56, 64, 136, 34, 37, 49, 13, 55, 35, 50, 47, 0, 0, 9, 197, 60, 244, 150, 4, 192, 66, 36, 10, 69, 56, 83, 19, 60,
+			224, 21, 0, 10, 0, 25, 74, 76, 225, 69, 84, 32, 76, 20, 97, 133, 44, 89, 50, 119, 71, 35, 55, 10, 37, 83, 4, 108, 49, 0,
+			10, 67, 8, 85, 197, 71, 116, 84, 13, 0, 17, 70, 76, 81, 129, 56, 160, 64, 89, 13, 83, 6, 35, 50, 57, 35, 0, 14, 4, 95,
+			13, 3, 14, 65, 6, 35, 49, 34, 110, 50, 0, 0, 20, 71, 28, 192, 68, 36, 21, 15, 72, 136, 55, 35, 72, 37, 6, 115, 47, 110,
+			34, 0, 0, 15, 70, 72, 145, 75, 21, 37, 0, 34, 37, 49, 13, 34, 47, 0, 0, 0, 0, 20, 71, 52, 20, 203, 21, 34, 78, 28,
+			65, 35, 89, 49, 6, 116, 34, 13, 68, 0, 9, 15, 69, 32, 20, 132, 61, 0, 107, 35, 34, 47, 19, 110, 48, 0, 16, 6, 11, 1,
+			195, 175, 18, 15, 49, 35, 10, 6, 37, 34, 40, 0, 0, 12, 68, 64, 20, 139, 20, 48, 35, 34, 49, 13, 0, 14, 70, 8, 83, 142,
+			21, 69, 0, 71, 108, 50, 13, 47, 0, 0, 17, 70, 76, 147, 129, 28, 241, 197, 89, 13, 50, 13, 136, 117, 136, 13, 0, 25, 73, 28,
+			241, 1, 48, 208, 71, 80, 145, 192, 136, 110, 47, 10, 35, 55, 65, 6, 35, 136, 47, 13, 136, 0, 10, 69, 77, 69, 65, 73, 64, 21,
+			0, 10, 14, 69, 29, 84, 212, 5, 96, 81, 40, 89, 47, 35, 83, 0, 0, 9, 198, 52, 20, 211, 4, 193, 64, 66, 15, 70, 12, 81,
+			9, 48, 193, 64, 89, 13, 72, 109, 55, 13, 0, 14, 70, 64, 244, 147, 12, 129, 64, 48, 110, 34, 91, 13, 0, 15, 70, 21, 53, 5,
+			48, 193, 64, 2, 37, 89, 47, 112, 55, 0, 0, 0, 7, 196, 76, 244, 1, 76, 66, 13, 68, 16, 149, 129, 56, 72, 37, 84, 6, 35,
+			50, 0, 9, 198, 4, 197, 5, 52, 149, 0, 67, 12, 5, 10, 15, 19, 195, 169, 21, 101, 115, 0, 10, 0, 18, 70, 36, 228, 207, 52,
+			226, 65, 13, 50, 89, 110, 65, 50, 37, 57, 35, 0, 16, 69, 32, 83, 5, 56, 80, 107, 37, 12, 55, 6, 37, 12, 50, 0, 0, 0,
+			20, 71, 92, 83, 9, 77, 112, 65, 72, 84, 6, 112, 55, 14, 89, 84, 115, 34, 0, 8, 11, 70, 56, 144, 200, 60, 192, 83, 21, 0,
+			10, 18, 71, 76, 147, 135, 5, 3, 197, 72, 89, 37, 68, 81, 35, 48, 40, 34, 0, 0, 21, 72, 88, 243, 210, 52, 19, 9, 28, 80,
+			83, 117, 34, 65, 6, 115, 55, 13, 136, 13, 0, 12, 68, 88, 84, 130, 100, 83, 13, 34, 71, 123, 0, 11, 68, 60, 244, 140, 20, 117,
+			34, 55, 13, 0, 27, 13, 19, 20, 15, 3, 11, 5, 14, 19, 20, 18, 195, 182, 13, 89, 47, 110, 49, 13, 50, 89, 47, 34, 117, 65,
+			0, 11, 68, 24, 20, 129, 60, 83, 115, 34, 117, 0, 12, 68, 12, 84, 133, 76, 89, 116, 34, 13, 89, 0, 12, 3, 95, 55, 15, 89,
+			6, 116, 84, 13, 50, 0, 0, 19, 70, 77, 80, 149, 72, 34, 65, 89, 111, 71, 6, 111, 34, 71, 37, 57, 35, 0, 12, 201, 32, 243,
+			198, 76, 16, 75, 48, 146, 192, 66, 0, 9, 198, 60, 224, 146, 84, 146, 192, 65, 0, 12, 71, 77, 83, 142, 101, 50, 68, 20, 21, 0,
+			10, 0, 11, 68, 4, 68, 137, 20, 115, 72, 34, 37, 0, 24, 73, 64, 130, 76, 4, 65, 76, 64, 130, 65, 83, 13, 55, 13, 72, 6,
+			112, 55, 83, 37, 38, 35, 0, 17, 6, 95, 18, 15, 13, 1, 14, 34, 40, 65, 6, 123, 50, 89, 13, 0, 0, 0, 0, 10, 199, 4,
+			113, 210, 21, 52, 201, 20, 66, 9, 198, 32, 84, 131, 84, 193, 83, 65, 0, 16, 70, 12, 132, 137, 76, 160, 78, 49, 34, 109, 89, 57,
+			35, 50, 0, 0, 0, 7, 194, 20, 224, 72, 8, 32, 0, 10, 199, 16, 148, 204, 20, 180, 201, 20, 66, 13, 3, 95, 51, 88, 6, 72,
+			112, 34, 47, 109, 136, 0, 0, 21, 9, 8, 5, 12, 12, 15, 195, 175, 19, 5, 107, 108, 55, 40, 58, 6, 37, 12, 88, 0, 13, 3,
+			95, 48, 67, 6, 107, 110, 50, 13, 34, 47, 0, 0, 8, 197, 60, 228, 129, 4, 64, 65, 27, 69, 29, 32, 65, 24, 96, 136, 34, 115,
+			83, 15, 34, 13, 50, 6, 108, 47, 0, 81, 114, 101, 105, 110, 101, 116, 32, 13, 69, 12, 86, 76, 60, 224, 89, 13, 55, 110, 50, 0,
+			0, 14, 70, 77, 68, 129, 85, 52, 192, 89, 47, 34, 129, 89, 0, 0, 19, 71, 52, 145, 23, 36, 229, 5, 72, 65, 109, 72, 84, 13,
+			50, 47, 13, 34, 0, 0, 13, 72, 92, 20, 200, 36, 225, 212, 60, 224, 21, 0, 10, 11, 3, 95, 57, 15, 50, 116, 136, 13, 50, 0,
+			0, 14, 69, 76, 19, 85, 20, 192, 89, 115, 65, 118, 13, 55, 0, 0, 17, 70, 29, 35, 206, 17, 148, 192, 136, 34, 131, 50, 47, 10,
+			123, 89, 0, 9, 198, 21, 32, 83, 53, 84, 192, 66, 0, 10, 199, 28, 84, 148, 73, 82, 68, 4, 66, 0, 9, 68, 12, 20, 143, 48,
+			21, 0, 10, 0, 0, 14, 70, 76, 50, 21, 81, 65, 64, 89, 49, 111, 47, 13, 0, 14, 70, 4, 227, 133, 81, 65, 64, 35, 50, 6,
+			108, 47, 0, 0, 0, 0, 0, 16, 70, 88, 84, 135, 21, 65, 64, 83, 13, 34, 136, 116, 47, 13, 0, 16, 70, 69, 82, 74, 61, 65,
+			64, 49, 37, 136, 6, 110, 47, 108, 0, 15, 3, 95, 49, 57, 6, 50, 116, 136, 13, 50, 47, 37, 50, 0, 0, 13, 3, 95, 49, 56,
+			10, 6, 35, 136, 47, 37, 50, 0, 0, 0, 14, 69, 57, 83, 69, 72, 144, 50, 111, 65, 13, 34, 37, 0, 13, 69, 20, 224, 207, 72,
+			80, 133, 68, 49, 131, 34, 0, 15, 69, 52, 18, 149, 8, 16, 65, 35, 57, 6, 40, 71, 35, 0, 0, 0, 0, 20, 72, 88, 84, 140,
+			4, 225, 211, 80, 80, 83, 13, 34, 55, 35, 68, 89, 47, 13, 0, 8, 196, 4, 117, 5, 72, 72, 12, 0, 15, 69, 4, 97, 193, 56,
+			80, 35, 83, 81, 6, 115, 50, 13, 0, 8, 197, 80, 246, 79, 80, 16, 66, 11, 3, 226, 136, 146, 65, 37, 50, 111, 89, 0, 0, 6,
+			194, 33, 144, 72, 32, 11, 70, 29, 33, 71, 61, 38, 64, 21, 0, 10, 11, 3, 95, 49, 49, 10, 6, 112, 55, 83, 0, 0, 10, 3,
+			95, 49, 48, 6, 47, 37, 50, 0, 0, 11, 200, 12, 19, 142, 20, 195, 15, 56, 144, 67, 13, 3, 95, 49, 51, 6, 72, 112, 34, 47,
+			37, 50, 0, 0, 13, 3, 95, 49, 50, 6, 47, 58, 6, 115, 55, 83, 0, 0, 13, 3, 95, 49, 53, 6, 83, 123, 83, 47, 37, 50,
+			0, 0, 9, 67, 40, 242, 12, 57, 117, 55, 0, 13, 3, 95, 49, 52, 6, 83, 116, 34, 47, 37, 50, 0, 0, 15, 3, 95, 49, 55,
+			6, 89, 116, 84, 13, 50, 47, 37, 50, 0, 0, 17, 70, 72, 81, 5, 16, 83, 5, 34, 116, 72, 13, 72, 116, 55, 13, 0, 13, 3,
+			95, 49, 54, 6, 89, 108, 89, 47, 37, 50, 0, 0, 0, 9, 198, 52, 84, 131, 20, 65, 83, 66, 15, 3, 95, 55, 88, 6, 89, 116,
+			84, 13, 50, 47, 109, 136, 0, 0, 12, 68, 76, 245, 133, 72, 89, 117, 83, 112, 34, 0, 11, 68, 12, 132, 137, 76, 49, 34, 109, 89,
+			0, 0, 0, 9, 198, 60, 224, 133, 29, 34, 80, 65, 0, 0, 0, 0, 16, 70, 89, 32, 80, 73, 148, 192, 83, 34, 115, 48, 34, 123,
+			89, 0, 0, 18, 71, 77, 65, 80, 32, 19, 149, 76, 89, 47, 13, 83, 115, 50, 111, 89, 0, 0, 0, 0, 17, 70, 76, 243, 66, 21,
+			33, 64, 89, 6, 110, 65, 71, 13, 34, 13, 0, 16, 70, 69, 82, 88, 61, 65, 64, 49, 37, 136, 6, 110, 47, 108, 0, 0, 20, 8,
+			3, 5, 19, 1, 18, 195, 169, 1, 89, 13, 89, 13, 34, 37, 12, 57, 35, 0, 0, 0, 0, 9, 198, 45, 83, 20, 85, 33, 64, 66,
+			0, 0, 22, 72, 48, 148, 197, 57, 50, 65, 5, 64, 55, 13, 89, 134, 50, 89, 37, 38, 6, 115, 47, 0, 0, 16, 70, 52, 148, 212,
+			21, 34, 69, 65, 13, 89, 47, 116, 34, 37, 0, 9, 198, 24, 16, 212, 61, 69, 77, 66, 15, 69, 84, 197, 78, 16, 144, 40, 55, 6,
+			40, 50, 72, 37, 0, 0, 17, 70, 64, 20, 16, 21, 33, 76, 48, 35, 48, 13, 34, 6, 112, 55, 0, 0, 17, 70, 60, 225, 5, 73,
+			34, 71, 110, 50, 13, 34, 6, 109, 136, 0, 36, 10, 199, 4, 19, 135, 21, 50, 69, 56, 8, 0, 12, 68, 24, 244, 148, 20, 83, 110,
+			34, 47, 13, 0, 24, 68, 12, 20, 144, 20, 49, 35, 34, 48, 108, 15, 72, 37, 12, 108, 65, 0, 81, 100, 105, 101, 109, 32, 7, 196,
+			40, 244, 137, 76, 65, 9, 68, 32, 83, 146, 100, 21, 0, 10, 0, 15, 69, 56, 17, 193, 56, 16, 50, 35, 81, 6, 115, 50, 35, 0,
+			0, 9, 198, 60, 225, 197, 49, 146, 192, 65, 17, 70, 44, 20, 9, 81, 65, 76, 49, 35, 48, 6, 109, 47, 13, 55, 0, 20, 9, 13,
+			1, 20, 20, 8, 5, 195, 188, 19, 65, 35, 47, 6, 37, 12, 111, 89, 0, 16, 7, 7, 5, 14, 195, 168, 22, 5, 90, 13, 50, 108,
+			12, 84, 0, 0, 14, 3, 95, 50, 88, 6, 47, 58, 109, 50, 47, 109, 136, 0, 0, 9, 68, 16, 21, 137, 16, 21, 0, 10, 17, 67,
+			65, 33, 83, 48, 34, 13, 89, 13, 72, 6, 108, 50, 47, 0, 24, 0, 0, 0, 0, 26, 12, 11, 14, 1, 16, 19, 5, 11, 195, 170,
+			18, 5, 12, 49, 50, 35, 48, 89, 13, 49, 113, 34, 13, 55, 0, 10, 3, 95, 56, 15, 10, 6, 35, 136, 0, 0, 14, 69, 48, 242,
+			193, 5, 48, 55, 110, 49, 10, 115, 89, 0, 9, 197, 4, 225, 5, 73, 48, 8, 32, 0, 0, 0, 0, 0, 0, 16, 70, 25, 32, 78,
+			12, 242, 83, 83, 34, 35, 50, 91, 58, 35, 0, 0, 14, 68, 37, 53, 90, 84, 37, 89, 6, 40, 12, 88, 40, 0, 13, 3, 95, 63,
+			63, 89, 13, 65, 71, 6, 117, 55, 0, 0, 19, 8, 9, 18, 15, 14, 9, 5, 195, 171, 37, 34, 40, 50, 6, 37, 12, 13, 0, 14,
+			69, 36, 225, 9, 20, 224, 109, 50, 72, 37, 50, 0, 36, 9, 67, 28, 81, 78, 136, 116, 50, 0, 17, 70, 4, 97, 193, 4, 228, 197,
+			35, 83, 81, 6, 115, 50, 89, 13, 0, 20, 8, 1, 12, 7, 5, 18, 9, 195, 171, 35, 55, 136, 6, 116, 34, 116, 12, 14, 0, 0,
+			11, 70, 13, 147, 148, 32, 144, 64, 21, 0, 10, 0, 8, 67, 28, 81, 64, 136, 116, 0, 18, 71, 12, 132, 137, 77, 66, 65, 56, 49,
+			34, 109, 89, 47, 37, 35, 50, 0, 20, 71, 48, 17, 25, 9, 32, 78, 16, 55, 123, 72, 37, 71, 34, 6, 35, 50, 47, 0, 13, 3,
+			95, 52, 88, 6, 83, 116, 34, 47, 109, 136, 0, 0, 0, 16, 69, 88, 84, 132, 21, 32, 83, 6, 112, 34, 72, 13, 34, 0, 8, 10,
+			69, 21, 35, 133, 77, 64, 21, 0, 10, 20, 70, 104, 147, 66, 4, 37, 197, 88, 109, 12, 65, 71, 6, 35, 71, 10, 58, 108, 0, 0,
+			15, 70, 77, 86, 133, 81, 65, 64, 89, 40, 88, 6, 108, 47, 0, 10, 67, 60, 193, 193, 110, 55, 81, 35, 0, 15, 70, 52, 83, 1,
+			56, 145, 64, 65, 13, 55, 115, 50, 37, 0, 0, 0, 0, 14, 69, 72, 82, 197, 57, 64, 34, 116, 49, 13, 50, 47, 0, 8, 67, 40,
+			240, 78, 21, 0, 10, 10, 69, 32, 19, 76, 21, 64, 21, 0, 10, 0, 25, 74, 64, 81, 1, 48, 81, 5, 53, 2, 78, 28, 48, 13,
+			72, 115, 55, 13, 72, 108, 65, 48, 13, 68, 0, 5, 194, 56, 16, 72, 8, 66, 48, 80, 55, 13, 0, 9, 17, 70, 64, 244, 148, 84,
+			112, 76, 48, 110, 34, 47, 118, 136, 35, 55, 0, 0, 10, 199, 60, 244, 147, 81, 35, 207, 52, 66, 13, 3, 95, 53, 88, 6, 83, 123,
+			83, 47, 109, 136, 0, 0, 13, 68, 76, 241, 18, 4, 89, 117, 72, 34, 6, 115, 0, 7, 196, 76, 241, 18, 4, 8, 9, 68, 72, 245,
+			133, 72, 21, 0, 10, 0, 16, 73, 8, 245, 82, 28, 83, 201, 76, 145, 64, 21, 102, 114, 0, 10, 12, 69, 64, 145, 82, 72, 80, 48,
+			6, 116, 34, 0, 14, 69, 21, 35, 69, 48, 240, 112, 34, 65, 13, 55, 117, 0, 0, 25, 74, 76, 19, 135, 20, 209, 69, 57, 50, 193,
+			64, 89, 35, 50, 136, 13, 65, 116, 50, 89, 49, 35, 48, 0, 0, 17, 71, 76, 86, 67, 32, 83, 12, 20, 89, 123, 91, 6, 112, 55,
+			13, 0, 0, 0, 8, 197, 60, 244, 147, 20, 80, 66, 0, 6, 194, 41, 144, 72, 32, 9, 198, 16, 241, 66, 4, 18, 64, 66, 0, 20,
+			71, 72, 245, 5, 72, 83, 132, 20, 34, 40, 47, 6, 116, 34, 13, 50, 72, 13, 0, 13, 3, 95, 54, 88, 6, 89, 108, 89, 47, 109,
+			136, 0, 0, 23, 73, 60, 33, 82, 4, 211, 69, 72, 112, 85, 117, 71, 13, 34, 6, 35, 65, 13, 34, 81, 129, 0, 0, 24, 73, 16,
+			244, 212, 60, 161, 87, 76, 178, 64, 72, 110, 89, 47, 110, 57, 6, 108, 84, 89, 49, 37, 0, 22, 73, 28, 244, 132, 60, 228, 194, 4,
+			18, 64, 81, 131, 34, 72, 13, 50, 89, 71, 6, 122, 0, 0, 16, 70, 44, 133, 77, 4, 195, 192, 49, 40, 65, 6, 115, 55, 40, 0,
+			17, 7, 2, 15, 7, 15, 20, 195, 161, 71, 110, 81, 110, 47, 6, 115, 0, 0, 19, 71, 16, 85, 82, 20, 229, 25, 16, 72, 118, 13,
+			34, 13, 50, 47, 123, 47, 0, 18, 71, 8, 85, 8, 48, 82, 5, 52, 71, 108, 47, 10, 55, 37, 108, 65, 0, 0, 13, 70, 52, 243,
+			147, 36, 85, 82, 21, 102, 114, 0, 10, 21, 72, 32, 84, 146, 101, 49, 78, 37, 48, 107, 112, 34, 6, 123, 89, 13, 50, 13, 89, 0,
+			17, 70, 32, 20, 148, 77, 65, 82, 107, 35, 34, 47, 89, 47, 112, 34, 0, 0, 14, 69, 73, 84, 208, 21, 48, 34, 111, 89, 48, 13,
+			89, 0, 8, 197, 5, 52, 18, 37, 48, 66, 0, 9, 67, 40, 241, 89, 75, 120, 37, 0, 0, 0, 0, 17, 70, 81, 51, 197, 56, 19,
+			73, 47, 89, 40, 50, 6, 115, 65, 37, 0, 17, 70, 52, 19, 8, 21, 32, 133, 65, 35, 55, 6, 112, 34, 71, 13, 0, 0, 16, 70,
+			16, 146, 215, 20, 196, 192, 72, 109, 49, 84, 13, 55, 89, 0, 17, 70, 76, 17, 193, 72, 144, 64, 89, 35, 136, 35, 34, 6, 37, 35,
+			0, 11, 70, 40, 84, 211, 36, 48, 64, 21, 0, 10, 18, 70, 28, 19, 9, 48, 80, 64, 136, 35, 55, 13, 55, 6, 37, 12, 35, 0,
+			0, 0, 0, 10, 69, 17, 84, 212, 36, 224, 21, 0, 10, 0, 0, 20, 71, 5, 48, 70, 77, 64, 78, 16, 35, 89, 10, 35, 83, 89,
+			47, 35, 50, 47, 0, 8, 195, 40, 245, 64, 72, 9, 32, 9, 67, 52, 21, 68, 65, 131, 72, 0, 13, 3, 95, 56, 88, 6, 47, 35,
+			136, 47, 109, 136, 0, 0, 0, 20, 8, 1, 12, 2, 1, 14, 9, 195, 171, 35, 55, 71, 6, 115, 50, 116, 12, 14, 0, 0, 0, 0,
+			21, 73, 72, 144, 200, 5, 33, 19, 8, 16, 73, 34, 37, 76, 13, 72, 89, 71, 6, 122, 0, 0, 23, 73, 44, 19, 69, 72, 17, 5,
+			72, 145, 64, 49, 35, 65, 13, 34, 115, 72, 13, 34, 6, 37, 0, 0, 13, 70, 12, 128, 82, 48, 145, 64, 76, 115, 55, 37, 0, 0,
+			15, 3, 95, 57, 88, 6, 50, 116, 136, 13, 50, 47, 109, 136, 0, 0, 0, 13, 69, 12, 241, 206, 4, 48, 49, 110, 67, 35, 49, 0,
+			6, 195, 52, 85, 0, 72, 0, 0, 15, 70, 64, 130, 76, 48, 148, 19, 83, 109, 55, 13, 48, 89, 0, 20, 71, 44, 193, 79, 64, 21,
+			18, 4, 49, 55, 119, 12, 48, 6, 115, 47, 34, 35, 0, 0, 19, 72, 4, 229, 15, 36, 225, 84, 80, 80, 35, 50, 47, 40, 50, 6,
+			108, 47, 0, 0, 14, 69, 12, 20, 9, 80, 16, 49, 35, 48, 37, 47, 35, 0, 13, 69, 4, 209, 76, 20, 80, 35, 65, 13, 55, 116,
+			0, 20, 8, 2, 15, 12, 9, 22, 9, 195, 171, 71, 40, 55, 6, 109, 84, 37, 12, 13, 0, 0, 9, 198, 52, 19, 5, 4, 114, 64,
+			67, 15, 70, 76, 50, 15, 49, 70, 128, 89, 49, 131, 55, 47, 89, 0, 12, 3, 95, 63, 65, 55, 6, 108, 47, 13, 34, 0, 0, 23,
+			73, 76, 197, 73, 80, 85, 197, 56, 16, 82, 89, 55, 127, 47, 10, 116, 84, 13, 50, 115, 34, 0, 10, 199, 60, 227, 205, 92, 243, 132,
+			20, 67, 19, 71, 76, 80, 129, 77, 66, 65, 56, 89, 13, 71, 35, 89, 47, 37, 35, 50, 0, 0, 17, 70, 44, 19, 69, 72, 241, 78,
+			49, 35, 65, 13, 34, 6, 40, 50, 0, 0, 0, 0, 0, 0, 18, 70, 77, 84, 137, 56, 19, 69, 89, 118, 34, 37, 50, 6, 115, 65,
+			13, 0, 0, 10, 3, 19, 39, 14, 89, 13, 50, 0, 72, 0, 5, 194, 36, 224, 72, 10, 3, 226, 153, 175, 49, 34, 127, 89, 0, 0,
+			0, 9, 68, 72, 240, 137, 56, 21, 0, 10, 9, 3, 226, 153, 173, 65, 110, 55, 0, 0, 0, 17, 70, 44, 21, 5, 80, 84, 128, 49,
+			35, 47, 6, 116, 47, 13, 34, 0, 0, 10, 199, 76, 48, 82, 48, 21, 20, 36, 66, 14, 4, 95, 15, 7, 15, 117, 136, 117, 50, 4,
+			112, 49, 0, 0, 0, 15, 69, 52, 20, 148, 36, 224, 65, 6, 115, 34, 47, 13, 50, 0, 10, 69, 8, 83, 147, 60, 224, 21, 0, 10,
+			8, 197, 8, 20, 211, 60, 224, 66, 0, 15, 70, 64, 85, 15, 61, 36, 192, 48, 13, 47, 117, 34, 89, 0, 15, 70, 48, 245, 66, 76,
+			84, 128, 55, 120, 48, 91, 13, 34, 0, 15, 70, 8, 244, 132, 20, 21, 88, 71, 110, 34, 72, 6, 120, 0, 0, 20, 71, 28, 84, 141,
+			60, 193, 78, 20, 75, 109, 12, 65, 13, 55, 6, 37, 12, 50, 0, 15, 70, 24, 84, 146, 20, 148, 129, 83, 13, 34, 113, 34, 13, 0,
+			0, 0, 17, 70, 77, 65, 82, 92, 83, 147, 89, 47, 112, 34, 84, 13, 50, 89, 0, 10, 198, 52, 148, 194, 73, 82, 75, 66, 36, 21,
+			73, 20, 225, 197, 48, 36, 133, 12, 133, 0, 108, 68, 13, 55, 71, 34, 112, 136, 47, 0, 0, 0, 18, 70, 64, 192, 83, 20, 229, 1,
+			48, 55, 35, 89, 6, 108, 50, 47, 35, 0, 10, 199, 36, 225, 197, 88, 243, 7, 20, 67, 0, 19, 8, 13, 1, 2, 1, 12, 195, 170,
+			12, 65, 35, 71, 35, 55, 6, 112, 55, 0, 0, 0, 0, 13, 6, 18, 5, 14, 195, 169, 5, 34, 13, 50, 123, 0, 17, 70, 52, 21,
+			8, 36, 193, 1, 65, 35, 47, 6, 109, 55, 72, 35, 0, 21, 67, 77, 84, 20, 89, 40, 48, 34, 108, 50, 47, 108, 50, 72, 6, 108,
+			50, 47, 0, 24, 0, 33, 68, 52, 241, 21, 76, 65, 4, 117, 72, 111, 89, 15, 117, 48, 13, 34, 6, 35, 50, 72, 37, 0, 81, 111,
+			112, 101, 114, 97, 110, 100, 105, 32, 0, 8, 197, 60, 212, 133, 16, 80, 66, 13, 69, 60, 85, 86, 72, 80, 111, 12, 84, 34, 13, 0,
+			15, 69, 56, 21, 21, 72, 80, 50, 35, 47, 6, 118, 34, 13, 0, 0, 0, 11, 199, 60, 225, 5, 73, 51, 197, 44, 67, 36, 10, 199,
+			16, 85, 82, 45, 37, 73, 76, 66, 20, 71, 52, 19, 148, 61, 96, 78, 36, 65, 35, 50, 47, 110, 84, 6, 115, 50, 37, 0, 13, 67,
+			28, 83, 140, 136, 13, 50, 13, 34, 115, 55, 0, 0, 9, 198, 52, 20, 211, 4, 19, 0, 66, 21, 72, 12, 20, 16, 84, 48, 201, 56,
+			240, 49, 35, 48, 40, 76, 6, 37, 12, 50, 40, 0, 22, 68, 80, 128, 66, 4, 47, 35, 71, 6, 115, 15, 50, 76, 40, 0, 81, 110,
+			99, 104, 117, 32, 13, 72, 8, 243, 142, 36, 85, 129, 48, 80, 21, 0, 10, 0, 16, 69, 12, 20, 201, 56, 240, 49, 35, 89, 6, 37,
+			12, 50, 120, 0, 14, 69, 48, 83, 206, 36, 80, 55, 37, 6, 117, 50, 37, 0, 0, 9, 198, 88, 243, 8, 20, 145, 0, 65, 0, 22,
+			73, 77, 112, 78, 28, 84, 147, 92, 16, 82, 89, 58, 35, 68, 13, 34, 89, 58, 115, 34, 0, 23, 67, 65, 35, 192, 48, 34, 117, 15,
+			83, 6, 110, 34, 65, 35, 0, 81, 102, 111, 114, 109, 97, 32, 19, 71, 8, 244, 212, 4, 19, 132, 20, 71, 6, 117, 89, 47, 115, 50,
+			72, 13, 0, 7, 195, 4, 19, 128, 72, 12, 20, 71, 64, 83, 9, 56, 64, 66, 4, 48, 112, 55, 13, 50, 72, 6, 115, 71, 35, 0,
+			0, 22, 72, 20, 193, 77, 20, 229, 1, 48, 80, 108, 55, 13, 65, 108, 50, 47, 6, 115, 55, 13, 0, 0, 13, 69, 16, 85, 82, 73,
+			144, 72, 128, 34, 34, 123, 0, 16, 67, 65, 35, 198, 48, 34, 40, 83, 6, 108, 89, 13, 34, 0, 24, 0, 21, 9, 13, 9, 12, 9,
+			20, 195, 170, 18, 5, 65, 109, 55, 13, 47, 6, 113, 34, 13, 0, 8, 3, 195, 161, 19, 35, 89, 0, 11, 70, 52, 21, 82, 20, 83,
+			128, 21, 0, 10, 9, 198, 40, 244, 132, 4, 19, 128, 66, 11, 70, 12, 19, 69, 72, 243, 128, 21, 0, 10, 14, 4, 95, 48, 77, 50,
+			65, 109, 55, 57, 6, 40, 50, 0, 0, 15, 4, 95, 48, 77, 51, 65, 109, 55, 57, 6, 35, 34, 47, 0, 0, 11, 68, 52, 20, 137,
+			20, 65, 115, 34, 37, 0, 0, 15, 4, 95, 48, 77, 49, 6, 72, 6, 127, 89, 13, 50, 47, 0, 0, 17, 70, 24, 147, 5, 52, 243,
+			128, 83, 6, 37, 55, 13, 65, 110, 50, 0, 16, 4, 95, 2, 18, 22, 49, 6, 110, 34, 47, 116, 49, 13, 50, 0, 0, 9, 198, 92,
+			19, 8, 4, 195, 1, 66, 0, 0, 0, 15, 70, 52, 83, 9, 77, 48, 64, 65, 13, 55, 109, 89, 35, 0, 14, 70, 24, 148, 195, 32,
+			84, 128, 83, 37, 91, 13, 34, 0, 11, 70, 8, 83, 3, 32, 84, 128, 21, 0, 10, 0, 18, 70, 76, 83, 129, 80, 244, 133, 89, 13,
+			50, 35, 47, 6, 117, 34, 13, 0, 14, 71, 13, 35, 201, 77, 48, 78, 80, 21, 102, 114, 0, 10, 0, 10, 67, 52, 20, 129, 65, 115,
+			34, 35, 0, 0, 9, 198, 45, 112, 78, 77, 82, 83, 66, 17, 70, 44, 21, 19, 92, 147, 139, 49, 35, 47, 89, 84, 13, 50, 49, 0,
+			13, 69, 72, 85, 9, 20, 96, 34, 13, 47, 37, 83, 0, 0, 9, 198, 20, 83, 139, 20, 84, 128, 65, 16, 70, 16, 17, 211, 80, 84,
+			128, 72, 35, 136, 89, 47, 112, 34, 0, 0, 19, 71, 8, 84, 206, 20, 65, 78, 20, 71, 13, 89, 50, 116, 72, 13, 50, 13, 0, 10,
+			199, 9, 34, 84, 80, 19, 138, 20, 66, 0, 0, 16, 70, 88, 84, 146, 21, 113, 71, 83, 112, 34, 13, 84, 112, 136, 0, 0, 11, 70,
+			28, 147, 2, 21, 37, 0, 21, 0, 10, 0, 18, 71, 64, 243, 137, 21, 1, 82, 76, 48, 117, 50, 37, 48, 112, 34, 89, 0, 0, 0,
+			0, 9, 198, 60, 244, 147, 21, 49, 64, 66, 0, 10, 67, 24, 244, 148, 83, 110, 34, 47, 0, 8, 67, 29, 86, 64, 21, 0, 10, 18,
+			71, 8, 241, 68, 5, 1, 83, 80, 71, 40, 72, 35, 48, 108, 89, 47, 0, 0, 21, 72, 8, 17, 5, 56, 131, 210, 77, 64, 71, 115,
+			72, 13, 50, 107, 110, 34, 89, 47, 0, 0, 8, 197, 40, 84, 193, 40, 16, 66, 10, 69, 8, 241, 73, 56, 112, 21, 0, 10, 0, 0,
+			0, 12, 68, 8, 244, 137, 76, 71, 110, 34, 13, 89, 0, 0, 21, 73, 88, 241, 76, 20, 229, 8, 20, 145, 0, 83, 40, 55, 13, 50,
+			47, 107, 123, 47, 0, 15, 70, 72, 243, 201, 64, 84, 147, 34, 125, 48, 113, 34, 89, 0, 8, 197, 44, 147, 79, 56, 240, 66, 13, 69,
+			76, 20, 16, 32, 240, 89, 35, 48, 83, 40, 0, 14, 69, 12, 80, 201, 48, 80, 89, 13, 89, 37, 12, 55, 0, 0, 6, 194, 53, 144,
+			72, 32, 0, 9, 198, 77, 66, 76, 77, 118, 69, 65, 20, 71, 76, 19, 136, 20, 68, 137, 56, 89, 35, 50, 107, 6, 116, 72, 34, 13,
+			50, 0, 0, 22, 72, 12, 132, 137, 77, 66, 65, 56, 16, 49, 34, 13, 89, 47, 37, 57, 6, 115, 50, 35, 0, 0, 16, 70, 56, 81,
+			197, 72, 147, 135, 50, 13, 136, 116, 34, 13, 68, 0, 16, 70, 8, 85, 197, 72, 147, 135, 71, 13, 84, 116, 34, 109, 68, 0, 18, 70,
+			88, 84, 213, 88, 149, 83, 84, 13, 89, 40, 12, 84, 37, 111, 89, 0, 0, 0, 17, 71, 76, 50, 5, 21, 1, 82, 76, 89, 49, 116,
+			48, 13, 34, 89, 0, 0, 19, 72, 52, 19, 13, 21, 48, 149, 73, 144, 65, 115, 65, 89, 71, 13, 34, 37, 0, 0, 15, 69, 29, 32,
+			84, 37, 48, 136, 34, 6, 115, 47, 13, 89, 0, 14, 69, 4, 226, 77, 85, 48, 35, 50, 37, 65, 40, 89, 0, 0, 6, 194, 60, 96,
+			72, 8, 16, 70, 8, 16, 137, 48, 243, 128, 71, 35, 71, 37, 55, 110, 50, 0, 0, 20, 71, 92, 81, 199, 21, 113, 78, 76, 84, 112,
+			136, 13, 84, 6, 108, 12, 50, 89, 0, 17, 70, 52, 17, 5, 48, 83, 133, 65, 35, 72, 13, 55, 6, 116, 50, 0, 17, 70, 52, 17,
+			5, 48, 83, 133, 65, 35, 72, 13, 55, 6, 116, 50, 0, 12, 71, 5, 35, 83, 81, 35, 206, 28, 21, 0, 10, 0, 0, 0, 11, 70,
+			72, 22, 77, 60, 225, 0, 21, 0, 10, 12, 70, 77, 4, 137, 56, 116, 192, 21, 0, 41, 10, 0, 16, 70, 28, 83, 133, 72, 193, 73,
+			136, 116, 50, 13, 34, 55, 123, 0, 20, 71, 56, 81, 133, 73, 66, 84, 36, 50, 108, 83, 13, 34, 47, 6, 37, 47, 37, 0, 0, 0,
+			9, 198, 88, 244, 133, 56, 64, 71, 67, 24, 73, 5, 34, 83, 80, 245, 5, 48, 84, 192, 35, 34, 37, 89, 47, 6, 117, 47, 13, 55,
+			108, 89, 0, 19, 70, 76, 19, 148, 36, 17, 207, 89, 35, 50, 47, 37, 38, 6, 115, 81, 40, 0, 0, 18, 70, 60, 225, 1, 56, 180,
+			192, 6, 110, 50, 72, 35, 68, 49, 89, 0, 8, 0, 11, 70, 88, 84, 143, 56, 144, 193, 21, 0, 10, 0, 11, 67, 52, 145, 193, 65,
+			6, 37, 136, 35, 0, 17, 7, 3, 18, 15, 14, 10, 195, 169, 49, 34, 110, 50, 57, 6, 116, 0, 0, 0, 13, 202, 44, 83, 142, 37,
+			53, 129, 5, 33, 9, 28, 65, 15, 70, 40, 21, 207, 61, 33, 0, 57, 115, 84, 117, 34, 47, 0, 16, 70, 8, 244, 135, 20, 225, 64,
+			71, 110, 34, 136, 13, 50, 13, 0, 0, 10, 67, 52, 17, 192, 65, 35, 136, 0, 32, 0, 8, 67, 52, 20, 153, 21, 0, 10, 0, 0,
+			15, 70, 28, 84, 136, 5, 33, 0, 136, 112, 34, 35, 34, 47, 0, 0, 14, 70, 72, 82, 78, 21, 69, 5, 34, 13, 50, 108, 47, 0,
+			19, 70, 16, 244, 143, 80, 129, 65, 72, 110, 34, 13, 47, 6, 37, 12, 57, 35, 0, 0, 21, 72, 28, 80, 146, 60, 177, 78, 21, 32,
+			136, 13, 71, 34, 117, 49, 13, 50, 13, 34, 0, 0, 13, 69, 80, 84, 193, 4, 208, 47, 13, 89, 115, 65, 0, 0, 0, 16, 70, 4,
+			229, 8, 60, 226, 69, 35, 50, 47, 6, 117, 50, 37, 0, 12, 5, 16, 5, 18, 195, 186, 48, 13, 34, 40, 0, 0, 8, 67, 52, 146,
+			197, 21, 0, 10, 0, 9, 197, 60, 225, 5, 84, 112, 65, 9, 22, 73, 56, 19, 1, 80, 145, 200, 20, 145, 0, 50, 115, 55, 6, 115,
+			47, 13, 136, 123, 47, 0, 10, 69, 32, 148, 16, 36, 80, 21, 0, 10, 0, 0, 10, 199, 88, 243, 210, 48, 83, 148, 20, 65, 11, 70,
+			88, 148, 135, 36, 226, 65, 21, 0, 10, 19, 71, 40, 244, 197, 64, 130, 78, 4, 57, 117, 89, 13, 83, 6, 37, 50, 35, 0, 17, 71,
+			8, 194, 71, 56, 21, 76, 80, 71, 55, 109, 136, 50, 120, 47, 0, 13, 6, 18, 8, 195, 180, 14, 5, 21, 102, 114, 0, 10, 0, 22,
+			72, 45, 83, 147, 52, 21, 9, 28, 80, 49, 111, 50, 89, 65, 6, 115, 47, 13, 136, 13, 0, 0, 21, 73, 25, 32, 78, 76, 50, 8,
+			60, 82, 192, 83, 34, 133, 50, 89, 107, 6, 40, 49, 0, 0, 12, 4, 95, 3, 9, 18, 49, 6, 35, 48, 37, 0, 0, 0, 20, 72,
+			76, 179, 204, 48, 145, 78, 21, 48, 89, 49, 110, 55, 37, 50, 4, 108, 89, 0, 16, 70, 12, 132, 153, 76, 193, 82, 49, 34, 121, 89,
+			55, 13, 34, 0, 13, 68, 52, 33, 75, 36, 65, 71, 108, 12, 49, 37, 0, 0, 13, 69, 56, 20, 211, 5, 80, 50, 35, 89, 6, 120,
+			0, 14, 69, 8, 82, 197, 73, 48, 71, 116, 49, 13, 34, 89, 0, 0, 6, 195, 36, 34, 83, 65, 0, 21, 71, 81, 32, 80, 21, 50,
+			85, 52, 47, 34, 35, 48, 6, 116, 89, 37, 12, 111, 65, 0, 0, 7, 196, 60, 227, 73, 56, 65, 0, 0, 9, 198, 36, 226, 204, 84,
+			148, 192, 66, 16, 70, 28, 83, 133, 76, 148, 192, 136, 116, 50, 13, 89, 13, 89, 0, 16, 70, 76, 80, 213, 56, 64, 64, 89, 13, 49,
+			40, 50, 72, 35, 0, 0, 19, 71, 12, 132, 137, 77, 66, 78, 20, 49, 34, 13, 89, 47, 6, 37, 12, 50, 0, 0, 0, 23, 73, 17,
+			34, 78, 44, 80, 146, 60, 84, 128, 72, 34, 109, 50, 49, 13, 71, 34, 40, 12, 34, 0, 0, 16, 70, 24, 195, 210, 36, 64, 64, 83,
+			55, 110, 34, 37, 72, 35, 0, 0, 13, 4, 95, 19, 20, 11, 89, 47, 34, 6, 116, 48, 0, 0, 20, 72, 48, 145, 70, 16, 84, 208,
+			20, 192, 55, 37, 83, 72, 13, 89, 48, 112, 55, 0, 0, 9, 198, 80, 245, 19, 36, 83, 147, 66, 20, 73, 52, 245, 73, 48, 193, 80,
+			84, 229, 0, 65, 40, 55, 37, 48, 111, 50, 47, 0, 12, 4, 95, 1, 3, 21, 35, 49, 6, 118, 47, 0, 0, 18, 70, 37, 50, 193,
+			72, 147, 212, 37, 89, 49, 6, 35, 34, 37, 110, 47, 0, 0, 12, 201, 4, 117, 5, 73, 53, 5, 88, 243, 210, 68, 17, 70, 17, 85,
+			133, 56, 17, 197, 72, 118, 84, 13, 50, 115, 136, 13, 0, 0, 0, 8, 197, 88, 19, 132, 5, 64, 65, 7, 195, 76, 19, 0, 72, 32,
+			0, 17, 70, 16, 17, 207, 72, 65, 64, 72, 35, 136, 10, 110, 34, 72, 13, 0, 0, 0, 0, 13, 69, 32, 81, 76, 8, 240, 107, 116,
+			55, 71, 117, 0, 15, 69, 60, 32, 68, 40, 16, 117, 71, 6, 35, 47, 57, 35, 0, 18, 70, 48, 83, 206, 5, 33, 15, 55, 119, 12,
+			50, 6, 35, 34, 72, 40, 0, 0, 0, 18, 71, 12, 132, 137, 77, 66, 78, 4, 49, 34, 13, 89, 47, 37, 50, 35, 0, 13, 4, 95,
+			18, 14, 7, 6, 115, 50, 71, 112, 55, 0, 0, 16, 70, 60, 101, 5, 92, 83, 0, 110, 83, 47, 13, 84, 112, 55, 0, 9, 198, 32,
+			241, 86, 20, 83, 0, 8, 0, 13, 69, 28, 84, 148, 36, 80, 81, 109, 12, 47, 37, 0, 0, 17, 70, 9, 84, 149, 56, 66, 64, 71,
+			40, 34, 6, 40, 50, 72, 37, 0, 0, 20, 71, 4, 229, 8, 60, 226, 85, 76, 35, 50, 47, 6, 117, 50, 37, 38, 111, 89, 0, 21,
+			67, 33, 69, 16, 107, 115, 47, 116, 47, 116, 48, 6, 116, 10, 0, 81, 58, 47, 47, 32, 0, 0, 0, 17, 70, 92, 147, 8, 20, 195,
+			64, 84, 13, 55, 107, 112, 55, 14, 65, 0, 0, 19, 71, 44, 243, 80, 84, 196, 201, 20, 49, 110, 65, 48, 6, 111, 55, 89, 37, 0,
+			0, 0, 14, 69, 32, 83, 1, 5, 48, 107, 116, 55, 6, 115, 89, 0, 0, 0, 0, 0, 8, 197, 32, 84, 141, 60, 224, 65, 0, 17,
+			70, 36, 227, 133, 77, 65, 76, 109, 50, 50, 108, 89, 47, 13, 55, 0, 0, 9, 67, 21, 32, 64, 116, 34, 35, 0, 9, 67, 72, 19,
+			12, 34, 115, 55, 0, 15, 6, 7, 18, 15, 22, 195, 169, 136, 34, 40, 84, 6, 116, 0, 0, 16, 7, 5, 12, 19, 1, 2, 195, 169,
+			112, 55, 89, 13, 71, 37, 0, 0, 0, 15, 70, 60, 81, 9, 65, 84, 192, 117, 72, 37, 48, 111, 89, 0, 15, 70, 8, 20, 130, 5,
+			32, 64, 71, 115, 71, 13, 34, 35, 0, 0, 19, 71, 52, 20, 148, 32, 147, 149, 76, 65, 35, 34, 47, 6, 37, 50, 111, 89, 0, 0,
+			9, 68, 52, 144, 77, 36, 21, 0, 10, 0, 0, 17, 70, 28, 195, 194, 4, 193, 64, 136, 55, 117, 71, 6, 115, 55, 13, 0, 17, 4,
+			95, 1, 3, 50, 72, 6, 111, 71, 13, 55, 35, 49, 118, 47, 0, 0, 0, 0, 24, 73, 64, 21, 18, 36, 245, 9, 76, 209, 64, 48,
+			35, 47, 34, 37, 40, 47, 6, 109, 89, 65, 13, 0, 13, 69, 8, 243, 65, 5, 64, 71, 117, 65, 115, 47, 0, 0, 16, 70, 88, 84,
+			132, 21, 33, 64, 83, 112, 34, 72, 13, 34, 13, 0, 9, 198, 24, 18, 212, 85, 33, 64, 66, 0, 0, 11, 68, 8, 82, 68, 20, 71,
+			123, 72, 13, 0, 8, 196, 41, 83, 12, 20, 72, 32, 11, 70, 52, 144, 200, 4, 83, 0, 21, 0, 10, 0, 0, 16, 70, 52, 245, 15,
+			73, 38, 64, 65, 117, 47, 13, 34, 34, 123, 0, 0, 17, 71, 72, 80, 133, 48, 193, 69, 72, 34, 13, 71, 13, 55, 116, 34, 0, 0,
+			16, 70, 44, 244, 147, 92, 83, 0, 49, 110, 34, 89, 84, 13, 55, 0, 0, 13, 69, 28, 19, 132, 32, 144, 81, 35, 50, 72, 37, 0,
+			0, 0, 0, 17, 70, 76, 243, 143, 56, 65, 82, 89, 110, 50, 10, 110, 50, 13, 34, 0, 19, 72, 48, 18, 78, 29, 48, 149, 72, 112,
+			55, 123, 50, 89, 71, 111, 34, 136, 0, 0, 14, 69, 52, 20, 129, 37, 48, 65, 35, 34, 6, 108, 12, 0, 0, 0, 16, 71, 84, 149,
+			4, 4, 114, 78, 28, 127, 72, 115, 136, 13, 68, 0, 18, 70, 4, 193, 197, 32, 83, 5, 35, 55, 136, 13, 107, 4, 116, 55, 13, 0,
+			13, 70, 76, 244, 130, 60, 227, 133, 21, 102, 114, 0, 10, 0, 0, 0, 0, 0, 12, 68, 92, 147, 80, 100, 58, 109, 65, 48, 37, 0,
+			11, 68, 72, 85, 8, 4, 34, 116, 47, 35, 0, 15, 70, 52, 16, 199, 36, 195, 0, 65, 13, 81, 57, 37, 55, 0, 0, 14, 69, 37,
+			52, 129, 20, 192, 109, 89, 34, 121, 12, 55, 0, 0, 15, 70, 28, 243, 79, 73, 32, 64, 136, 13, 65, 110, 34, 35, 0, 16, 70, 76,
+			145, 205, 84, 225, 0, 89, 37, 81, 65, 40, 50, 47, 0, 17, 70, 48, 80, 78, 17, 32, 64, 55, 37, 6, 35, 50, 72, 34, 35, 0,
+			0, 10, 199, 4, 195, 5, 72, 113, 78, 20, 67, 0, 11, 68, 88, 84, 146, 20, 83, 113, 34, 13, 0, 13, 72, 52, 16, 203, 36, 229,
+			15, 76, 128, 21, 0, 10, 11, 68, 80, 242, 201, 60, 47, 117, 49, 119, 0, 0, 14, 69, 8, 84, 215, 36, 192, 71, 108, 89, 84, 13,
+			55, 0, 8, 2, 195, 151, 65, 115, 55, 0, 0, 10, 66, 77, 64, 89, 13, 50, 47, 0, 24, 0, 0, 9, 68, 41, 83, 9, 4, 21,
+			0, 10, 0, 0, 0, 19, 71, 33, 83, 12, 21, 49, 76, 24, 107, 111, 55, 13, 89, 112, 55, 83, 0, 32, 0, 12, 68, 88, 84, 147,
+			20, 83, 113, 34, 89, 13, 0, 12, 68, 20, 226, 71, 20, 116, 50, 109, 136, 13, 0, 14, 68, 56, 19, 205, 36, 50, 35, 10, 6, 117,
+			65, 37, 0, 0, 12, 2, 194, 167, 35, 83, 72, 116, 55, 13, 68, 0, 0, 17, 70, 88, 18, 193, 57, 65, 64, 83, 2, 35, 49, 35,
+			50, 47, 13, 0, 10, 66, 76, 80, 108, 89, 13, 0, 41, 9, 6, 194, 60, 208, 72, 12, 13, 2, 194, 164, 65, 111, 50, 47, 116, 49,
+			13, 50, 0, 0, 10, 198, 60, 225, 5, 84, 113, 5, 65, 9, 8, 2, 194, 165, 57, 108, 50, 0, 0, 13, 68, 60, 225, 69, 72, 110,
+			50, 10, 116, 34, 0, 9, 12, 68, 8, 82, 193, 24, 71, 112, 49, 35, 83, 0, 16, 3, 5, 46, 1, 9, 108, 50, 10, 6, 35, 50,
+			72, 13, 34, 0, 0, 12, 69, 52, 81, 71, 20, 80, 65, 116, 136, 116, 0, 13, 69, 44, 230, 83, 56, 16, 50, 123, 89, 50, 35, 0,
+			9, 2, 194, 163, 48, 131, 50, 47, 0, 0, 0, 12, 201, 77, 113, 84, 80, 84, 138, 60, 83, 0, 67, 18, 71, 5, 52, 197, 8, 194,
+			69, 24, 35, 89, 13, 71, 55, 6, 37, 83, 0, 19, 70, 49, 80, 210, 21, 66, 65, 55, 40, 49, 34, 6, 37, 12, 91, 57, 35, 0,
+			20, 71, 8, 20, 131, 20, 195, 206, 4, 71, 35, 34, 89, 13, 55, 6, 117, 50, 35, 0, 0, 12, 68, 88, 84, 148, 20, 83, 112, 34,
+			47, 13, 0, 12, 68, 80, 84, 149, 28, 47, 14, 34, 111, 136, 0, 7, 196, 64, 20, 148, 20, 65, 17, 7, 3, 12, 9, 3, 8, 195,
+			169, 49, 55, 37, 91, 6, 123, 12, 0, 0, 0, 15, 70, 24, 84, 146, 5, 34, 64, 83, 13, 34, 115, 34, 37, 0, 5, 130, 195, 164,
+			43, 0, 19, 71, 16, 21, 201, 17, 53, 5, 72, 72, 115, 84, 13, 47, 89, 47, 112, 34, 0, 20, 71, 81, 32, 70, 4, 193, 193, 72,
+			47, 34, 35, 83, 6, 35, 55, 81, 35, 34, 0, 0, 21, 72, 64, 85, 18, 60, 225, 76, 48, 16, 48, 116, 47, 34, 40, 50, 6, 112,
+			55, 35, 0, 15, 7, 6, 15, 21, 3, 8, 195, 169, 83, 40, 91, 6, 116, 0, 12, 68, 12, 80, 201, 48, 89, 108, 89, 13, 55, 0,
+			9, 68, 56, 145, 197, 48, 21, 0, 10, 0, 0, 18, 70, 76, 192, 80, 5, 35, 64, 89, 55, 35, 48, 10, 35, 34, 14, 65, 0, 25,
+			2, 195, 160, 35, 15, 55, 35, 15, 49, 6, 35, 34, 47, 0, 82, 108, 97, 32, 99, 97, 114, 116, 101, 32, 6, 130, 195, 160, 43, 14,
+			0, 13, 2, 194, 169, 49, 40, 48, 6, 37, 34, 112, 136, 0, 5, 130, 195, 161, 43, 0, 18, 70, 32, 245, 1, 29, 65, 82, 107, 110,
+			47, 10, 35, 136, 47, 13, 34, 0, 18, 70, 16, 85, 133, 57, 65, 82, 72, 6, 116, 84, 13, 50, 47, 13, 34, 0, 13, 2, 194, 182,
+			48, 35, 34, 35, 136, 34, 115, 83, 0, 0, 5, 130, 195, 175, 43, 0, 5, 130, 195, 172, 43, 0, 9, 67, 88, 144, 64, 84, 37, 35,
+			0, 10, 2, 194, 181, 65, 37, 49, 34, 40, 0, 5, 130, 195, 173, 43, 0, 12, 68, 8, 82, 197, 72, 71, 116, 49, 13, 34, 0, 10,
+			68, 12, 128, 82, 48, 91, 115, 55, 0, 18, 72, 76, 86, 67, 32, 83, 12, 21, 48, 89, 123, 91, 6, 112, 55, 88, 0, 5, 130, 195,
+			170, 43, 0, 5, 130, 195, 171, 43, 0, 10, 2, 194, 176, 136, 34, 115, 72, 13, 0, 5, 130, 195, 168, 43, 0, 17, 2, 194, 177, 48,
+			55, 111, 89, 10, 110, 83, 65, 37, 50, 111, 89, 0, 5, 130, 195, 169, 43, 0, 13, 2, 194, 190, 72, 34, 37, 49, 58, 35, 34, 47,
+			0, 5, 130, 195, 182, 43, 0, 10, 69, 32, 245, 193, 72, 64, 21, 0, 10, 8, 197, 20, 195, 73, 20, 224, 66, 10, 69, 16, 20, 151,
+			36, 224, 21, 0, 10, 13, 2, 195, 183, 136, 13, 72, 116, 55, 72, 128, 34, 0, 0, 16, 70, 56, 241, 197, 20, 228, 192, 50, 110, 136,
+			10, 116, 50, 89, 0, 15, 70, 72, 80, 133, 44, 176, 64, 34, 13, 71, 108, 49, 35, 0, 11, 2, 194, 188, 13, 49, 58, 35, 34, 47,
+			0, 5, 130, 195, 180, 43, 0, 28, 67, 56, 145, 64, 50, 4, 37, 15, 84, 4, 115, 34, 15, 50, 6, 37, 0, 82, 119, 97, 97, 114,
+			32, 110, 105, 101, 32, 7, 195, 56, 145, 64, 13, 40, 11, 2, 194, 189, 13, 107, 35, 55, 84, 13, 0, 0, 11, 200, 76, 81, 5, 73,
+			65, 9, 20, 224, 67, 13, 4, 95, 3, 5, 4, 89, 13, 72, 109, 55, 35, 0, 5, 130, 195, 178, 43, 0, 13, 70, 28, 241, 66, 8,
+			83, 19, 21, 100, 101, 0, 10, 5, 130, 195, 179, 43, 0, 16, 70, 5, 97, 82, 76, 145, 64, 35, 84, 6, 112, 34, 89, 37, 0, 16,
+			70, 88, 148, 193, 28, 145, 64, 83, 37, 89, 6, 115, 136, 37, 0, 15, 70, 52, 20, 133, 48, 145, 64, 65, 35, 34, 13, 55, 37, 0,
+			0, 18, 4, 95, 12, 9, 7, 72, 6, 111, 71, 13, 55, 55, 108, 47, 13, 34, 0, 0, 9, 68, 12, 192, 82, 44, 21, 0, 10, 17,
+			70, 76, 19, 22, 4, 67, 210, 89, 35, 55, 84, 35, 72, 131, 34, 0, 0, 21, 67, 80, 83, 0, 47, 112, 55, 15, 35, 84, 6, 37,
+			84, 0, 81, 97, 118, 105, 118, 32, 0, 14, 70, 88, 243, 210, 28, 81, 64, 83, 117, 34, 136, 116, 0, 8, 66, 80, 80, 47, 13, 0,
+			32, 15, 70, 12, 241, 84, 104, 81, 64, 49, 40, 47, 89, 6, 116, 0, 21, 73, 40, 81, 134, 72, 86, 83, 8, 16, 73, 75, 108, 83,
+			34, 37, 89, 71, 6, 122, 0, 5, 130, 195, 188, 43, 0, 5, 130, 195, 189, 43, 0, 8, 196, 33, 83, 12, 20, 72, 32, 9, 68, 72,
+			241, 197, 72, 21, 0, 10, 13, 68, 48, 80, 78, 4, 55, 37, 6, 115, 50, 35, 0, 5, 130, 195, 186, 43, 0, 21, 73, 72, 83, 129,
+			37, 52, 193, 56, 49, 64, 34, 108, 50, 13, 89, 6, 133, 50, 89, 0, 8, 197, 60, 225, 197, 4, 112, 65, 14, 69, 32, 145, 82, 76,
+			240, 107, 37, 12, 34, 89, 110, 0, 15, 69, 12, 194, 86, 36, 16, 49, 55, 109, 84, 37, 57, 35, 0, 10, 69, 28, 83, 210, 28, 80,
+			21, 0, 10, 12, 69, 9, 32, 72, 4, 208, 71, 34, 115, 65, 0, 14, 69, 56, 147, 133, 88, 80, 50, 109, 50, 13, 83, 37, 0, 5,
+			130, 195, 187, 43, 0, 15, 70, 85, 37, 71, 84, 22, 64, 40, 34, 40, 81, 58, 121, 0, 0, 5, 130, 195, 185, 43, 0, 7, 196, 92,
+			18, 201, 76, 65, 12, 68, 12, 130, 78, 4, 91, 6, 37, 50, 35, 0, 0, 14, 69, 40, 19, 137, 56, 80, 75, 13, 50, 37, 12, 50,
+			0, 13, 69, 8, 85, 10, 36, 80, 71, 108, 37, 80, 37, 0, 15, 69, 4, 192, 83, 44, 16, 35, 55, 6, 35, 89, 49, 35, 0, 0,
+			9, 198, 72, 147, 139, 36, 226, 192, 66, 0, 18, 71, 17, 80, 130, 20, 194, 197, 56, 72, 111, 71, 13, 55, 49, 108, 50, 0, 0, 0,
+			16, 69, 21, 131, 196, 85, 48, 108, 49, 89, 6, 117, 72, 111, 89, 0, 0, 0, 18, 70, 60, 179, 1, 32, 243, 65, 120, 49, 55, 13,
+			107, 6, 120, 65, 35, 0, 0, 0, 18, 70, 64, 147, 143, 44, 178, 79, 48, 37, 50, 6, 110, 49, 37, 38, 40, 0, 0, 0, 0, 12,
+			68, 92, 21, 23, 60, 84, 35, 47, 84, 117, 0, 10, 67, 4, 36, 193, 35, 71, 89, 35, 0, 0, 9, 4, 95, 35, 4, 5, 72, 13,
+			0, 0, 0, 11, 67, 60, 228, 192, 135, 50, 89, 0, 72, 32, 0, 12, 68, 52, 245, 15, 72, 65, 117, 47, 13, 34, 0, 19, 72, 8,
+			18, 78, 76, 179, 15, 60, 96, 71, 123, 50, 89, 49, 55, 117, 83, 0, 0, 17, 70, 72, 85, 15, 72, 145, 75, 34, 13, 47, 40, 34,
+			6, 37, 49, 0, 25, 73, 52, 83, 79, 72, 16, 137, 48, 144, 64, 65, 108, 65, 110, 34, 35, 71, 6, 37, 55, 37, 57, 35, 0, 0,
+			10, 66, 81, 96, 47, 116, 83, 116, 10, 0, 0, 7, 195, 76, 245, 64, 72, 32, 0, 10, 67, 49, 83, 21, 55, 40, 55, 40, 0, 9,
+			68, 40, 147, 77, 100, 21, 0, 10, 0, 14, 69, 73, 84, 5, 73, 64, 34, 40, 48, 13, 34, 47, 0, 0, 9, 198, 88, 243, 19, 64,
+			241, 68, 65, 0, 7, 195, 92, 245, 64, 72, 32, 0, 9, 198, 60, 225, 197, 72, 145, 70, 65, 12, 68, 20, 97, 83, 20, 116, 83, 13,
+			89, 13, 0, 0, 20, 73, 32, 19, 132, 80, 84, 148, 40, 145, 64, 107, 35, 50, 47, 113, 34, 80, 37, 0, 11, 69, 88, 147, 204, 21,
+			64, 21, 0, 41, 10, 13, 69, 12, 17, 83, 5, 32, 89, 37, 88, 13, 34, 0, 0, 17, 70, 76, 147, 135, 20, 227, 212, 89, 109, 50,
+			136, 13, 50, 110, 47, 0, 9, 198, 56, 17, 5, 56, 177, 64, 65, 0, 0, 20, 9, 22, 18, 15, 5, 195, 171, 18, 9, 7, 83, 34,
+			40, 12, 13, 34, 13, 136, 0, 7, 196, 60, 228, 149, 76, 65, 12, 68, 32, 241, 82, 4, 107, 40, 34, 6, 115, 0, 14, 68, 16, 144,
+			78, 4, 72, 37, 57, 6, 115, 50, 35, 0, 0, 8, 197, 32, 241, 75, 60, 208, 8, 0, 0, 6, 195, 92, 21, 0, 8, 0, 20, 72,
+			64, 146, 193, 56, 145, 78, 36, 80, 48, 37, 49, 35, 50, 6, 37, 50, 37, 0, 13, 68, 4, 224, 76, 20, 35, 50, 6, 115, 55, 13,
+			0, 13, 68, 20, 192, 78, 4, 37, 55, 6, 115, 50, 35, 0, 0, 14, 69, 88, 84, 151, 20, 112, 83, 113, 34, 84, 112, 136, 0, 16,
+			70, 8, 16, 133, 48, 16, 83, 71, 35, 71, 13, 55, 115, 89, 0, 12, 69, 52, 84, 129, 4, 144, 65, 13, 34, 122, 0, 0, 23, 66,
+			77, 144, 89, 4, 123, 15, 35, 50, 15, 89, 6, 123, 0, 82, 97, 97, 110, 32, 115, 121, 32, 6, 194, 77, 144, 72, 32, 15, 70, 65,
+			33, 83, 48, 86, 64, 48, 34, 108, 89, 55, 37, 0, 0, 18, 71, 72, 17, 5, 52, 86, 69, 72, 34, 115, 72, 13, 65, 123, 13, 34,
+			0, 6, 2, 95, 1, 115, 0, 0, 9, 198, 88, 243, 210, 44, 81, 82, 65, 19, 72, 88, 84, 133, 17, 82, 70, 36, 80, 83, 116, 34,
+			13, 72, 127, 83, 37, 0, 11, 200, 77, 113, 76, 48, 83, 132, 4, 208, 67, 0, 23, 73, 28, 83, 5, 72, 83, 132, 32, 82, 68, 136,
+			13, 55, 116, 34, 13, 50, 47, 107, 123, 47, 0, 0, 0, 18, 71, 8, 244, 132, 20, 115, 197, 16, 71, 131, 34, 72, 13, 136, 40, 47,
+			0, 27, 12, 13, 5, 19, 15, 16, 15, 20, 1, 13, 9, 195, 171, 65, 108, 89, 40, 48, 40, 47, 6, 115, 65, 37, 13, 0, 0, 0,
+			13, 69, 8, 86, 69, 73, 48, 71, 123, 13, 34, 89, 0, 0, 9, 198, 60, 225, 197, 17, 83, 4, 65, 17, 70, 76, 84, 207, 80, 131,
+			192, 89, 13, 89, 6, 40, 12, 47, 40, 0, 0, 0, 0, 12, 68, 64, 21, 15, 76, 48, 115, 47, 110, 89, 0, 0, 9, 3, 7, 39,
+			14, 136, 109, 50, 0, 0, 9, 198, 60, 244, 130, 60, 244, 132, 66, 0, 19, 71, 20, 194, 83, 4, 33, 84, 32, 37, 55, 6, 37, 89,
+			35, 71, 108, 47, 0, 11, 67, 45, 112, 64, 49, 58, 35, 0, 72, 9, 0, 7, 196, 60, 227, 65, 28, 65, 0, 14, 69, 32, 241, 87,
+			20, 192, 107, 40, 84, 6, 112, 55, 0, 0, 21, 9, 22, 5, 18, 7, 5, 12, 5, 195, 171, 83, 113, 34, 136, 13, 55, 4, 116, 13,
+			0, 16, 70, 56, 20, 208, 21, 36, 192, 50, 35, 89, 48, 112, 34, 89, 0, 0, 19, 71, 80, 147, 79, 80, 129, 85, 76, 47, 13, 65,
+			6, 117, 47, 37, 111, 89, 0, 14, 71, 8, 240, 195, 4, 48, 201, 60, 21, 105, 116, 0, 10, 0, 0, 13, 69, 24, 145, 213, 85, 32,
+			83, 13, 136, 118, 34, 0, 6, 2, 95, 21, 118, 0, 0, 17, 70, 64, 83, 143, 72, 83, 148, 48, 108, 50, 117, 34, 108, 50, 47, 0,
+			17, 70, 44, 243, 139, 5, 113, 64, 49, 110, 50, 49, 6, 115, 84, 13, 0, 31, 76, 72, 149, 137, 21, 36, 207, 56, 65, 82, 20, 225,
+			0, 34, 13, 83, 37, 12, 34, 89, 110, 50, 13, 34, 10, 6, 108, 50, 47, 0, 0, 18, 70, 4, 48, 80, 84, 192, 207, 35, 49, 35,
+			48, 6, 40, 55, 49, 120, 0, 0, 0, 9, 198, 88, 243, 16, 84, 229, 5, 65, 0, 0, 9, 198, 32, 84, 139, 48, 16, 83, 65, 19,
+			70, 8, 80, 84, 72, 150, 0, 71, 37, 38, 6, 115, 47, 34, 13, 49, 89, 0, 12, 67, 9, 2, 192, 71, 13, 48, 112, 34, 49, 0,
+			0, 16, 70, 80, 241, 82, 20, 177, 78, 47, 40, 34, 116, 49, 13, 50, 0, 30, 76, 80, 129, 83, 76, 19, 15, 56, 144, 197, 57, 49,
+			64, 47, 108, 89, 35, 55, 117, 50, 37, 89, 6, 108, 12, 50, 89, 13, 0, 0, 15, 69, 64, 20, 129, 80, 80, 48, 35, 34, 6, 115,
+			47, 13, 0, 12, 69, 32, 242, 193, 4, 144, 107, 110, 49, 122, 0, 0, 17, 70, 16, 80, 149, 77, 54, 64, 72, 13, 71, 40, 89, 6,
+			37, 12, 0, 0, 0, 10, 135, 20, 5, 18, 4, 5, 195, 171, 66, 10, 68, 60, 244, 146, 100, 117, 34, 123, 0, 11, 2, 95, 34, 107,
+			115, 55, 23, 115, 50, 0, 0, 14, 69, 52, 147, 149, 80, 80, 65, 13, 50, 118, 47, 13, 0, 14, 69, 4, 98, 197, 72, 80, 35, 83,
+			49, 116, 34, 13, 0, 13, 69, 101, 99, 206, 56, 80, 37, 84, 6, 110, 50, 0, 13, 69, 64, 131, 197, 8, 80, 83, 37, 12, 71, 37,
+			0, 13, 69, 60, 229, 15, 56, 112, 110, 50, 47, 110, 68, 0, 24, 73, 88, 19, 146, 33, 147, 147, 16, 244, 144, 83, 35, 50, 34, 6,
+			123, 50, 89, 72, 110, 34, 48, 0, 0, 9, 66, 89, 80, 21, 102, 114, 0, 10, 0, 8, 195, 44, 243, 128, 72, 11, 32, 17, 70, 16,
+			19, 65, 76, 181, 83, 72, 13, 65, 35, 89, 49, 111, 89, 0, 8, 2, 95, 39, 47, 37, 49, 0, 0, 21, 72, 76, 19, 69, 48, 85,
+			201, 56, 112, 89, 115, 65, 13, 55, 4, 116, 84, 13, 68, 0, 20, 72, 64, 242, 78, 76, 85, 20, 36, 16, 48, 124, 50, 89, 6, 108,
+			47, 37, 35, 0, 20, 72, 52, 20, 135, 84, 84, 137, 80, 80, 65, 115, 81, 13, 34, 6, 37, 12, 47, 0, 0, 0, 15, 70, 77, 65,
+			80, 32, 19, 128, 89, 47, 116, 83, 35, 50, 0, 8, 67, 40, 19, 133, 21, 0, 10, 16, 70, 4, 68, 137, 4, 19, 128, 115, 72, 34,
+			37, 57, 35, 50, 0, 0, 6, 195, 88, 19, 128, 72, 0, 17, 70, 36, 115, 143, 72, 81, 82, 37, 136, 50, 117, 34, 6, 116, 34, 0,
+			6, 195, 37, 50, 83, 65, 16, 4, 95, 3, 1, 16, 107, 6, 117, 83, 55, 108, 47, 13, 34, 0, 0, 14, 69, 80, 19, 135, 5, 48,
+			47, 35, 68, 81, 35, 89, 0, 13, 69, 88, 84, 151, 21, 144, 83, 13, 34, 84, 123, 0, 27, 69, 9, 81, 78, 61, 48, 71, 58, 108,
+			50, 110, 89, 10, 6, 121, 34, 108, 89, 0, 81, 97, 105, 114, 101, 115, 32, 13, 2, 95, 41, 34, 112, 136, 89, 107, 35, 49, 37, 0,
+			0, 16, 70, 48, 147, 80, 61, 3, 192, 55, 13, 65, 48, 117, 48, 117, 0, 16, 70, 12, 19, 5, 16, 243, 128, 49, 35, 55, 37, 72,
+			110, 50, 0, 13, 2, 95, 40, 55, 109, 68, 89, 107, 35, 49, 37, 0, 0, 10, 67, 64, 84, 128, 48, 13, 34, 0, 9, 6, 195, 88,
+			148, 128, 72, 7, 195, 92, 244, 132, 72, 32, 0, 16, 70, 80, 83, 5, 52, 19, 142, 47, 116, 55, 13, 65, 35, 50, 0, 0, 24, 73,
+			64, 19, 132, 20, 211, 206, 37, 83, 64, 48, 35, 50, 72, 13, 65, 6, 117, 50, 37, 111, 65, 0, 15, 2, 95, 45, 49, 110, 48, 13,
+			55, 47, 116, 49, 13, 50, 0, 0, 10, 67, 32, 84, 133, 107, 116, 34, 13, 0, 10, 67, 48, 85, 137, 55, 116, 83, 37, 0, 9, 2,
+			95, 44, 49, 110, 65, 35, 0, 0, 19, 71, 12, 19, 69, 52, 33, 82, 80, 49, 35, 65, 13, 65, 71, 6, 113, 34, 0, 9, 67, 16,
+			84, 128, 72, 13, 34, 0, 9, 2, 95, 51, 6, 72, 34, 37, 0, 0, 12, 68, 80, 133, 76, 4, 47, 40, 12, 55, 35, 0, 12, 68,
+			76, 18, 78, 80, 89, 109, 50, 47, 0, 72, 9, 2, 95, 50, 6, 47, 58, 116, 0, 0, 13, 69, 44, 243, 65, 4, 224, 49, 110, 65,
+			115, 50, 0, 8, 197, 52, 147, 1, 4, 224, 66, 9, 2, 95, 49, 10, 6, 116, 50, 0, 0, 10, 67, 88, 149, 129, 84, 37, 84, 35,
+			0, 16, 70, 41, 84, 9, 80, 84, 128, 57, 40, 48, 37, 47, 13, 34, 0, 9, 2, 95, 48, 6, 50, 111, 55, 0, 0, 18, 71, 28,
+			85, 129, 48, 193, 78, 20, 136, 13, 83, 35, 55, 13, 50, 13, 0, 10, 2, 95, 55, 6, 89, 116, 84, 13, 0, 0, 21, 72, 8, 19,
+			135, 48, 17, 5, 76, 160, 71, 35, 68, 81, 55, 35, 72, 6, 108, 91, 0, 9, 2, 95, 54, 6, 89, 108, 89, 0, 0, 14, 69, 52,
+			84, 140, 61, 64, 65, 112, 34, 55, 6, 117, 0, 9, 2, 95, 53, 6, 83, 123, 83, 0, 0, 15, 70, 20, 97, 133, 57, 49, 64, 108,
+			83, 13, 50, 89, 13, 0, 17, 70, 52, 20, 140, 37, 49, 64, 65, 35, 34, 55, 6, 37, 12, 89, 0, 24, 11, 7, 5, 20, 19, 195,
+			169, 13, 1, 14, 195, 169, 136, 108, 47, 89, 6, 116, 65, 35, 50, 37, 0, 10, 2, 95, 52, 6, 83, 37, 12, 34, 0, 0, 13, 2,
+			95, 59, 49, 110, 65, 35, 48, 111, 50, 47, 0, 0, 15, 70, 40, 245, 66, 21, 37, 0, 57, 40, 71, 6, 113, 34, 0, 14, 2, 95,
+			58, 72, 111, 71, 13, 55, 48, 111, 50, 47, 0, 0, 13, 69, 52, 147, 149, 85, 64, 65, 13, 50, 118, 47, 0, 10, 2, 95, 57, 6,
+			50, 116, 136, 13, 0, 0, 10, 2, 95, 56, 10, 6, 35, 136, 47, 0, 0, 15, 70, 12, 147, 12, 36, 84, 147, 89, 109, 55, 57, 6,
+			116, 0, 15, 70, 12, 83, 12, 36, 84, 147, 89, 109, 55, 57, 6, 116, 0, 16, 70, 88, 147, 12, 36, 84, 147, 84, 109, 55, 37, 13,
+			34, 89, 0, 14, 2, 95, 63, 83, 34, 115, 136, 47, 116, 49, 13, 50, 0, 0, 14, 2, 95, 62, 136, 34, 117, 47, 13, 34, 23, 35,
+			89, 0, 0, 14, 69, 76, 19, 15, 52, 240, 89, 115, 55, 13, 65, 117, 0, 14, 69, 52, 148, 137, 4, 208, 65, 109, 34, 37, 13, 65,
+			0, 15, 69, 28, 64, 78, 76, 176, 81, 14, 72, 35, 50, 89, 49, 0, 0, 14, 2, 95, 60, 49, 55, 123, 50, 13, 34, 23, 35, 89,
+			0, 0, 18, 71, 9, 34, 69, 92, 83, 69, 76, 71, 34, 37, 84, 13, 65, 108, 89, 0, 0, 21, 72, 88, 84, 139, 20, 84, 132, 60,
+			208, 83, 13, 34, 49, 116, 34, 47, 10, 110, 65, 0, 9, 198, 88, 243, 210, 16, 21, 0, 8, 18, 8, 5, 19, 5, 7, 9, 195, 171,
+			12, 37, 89, 6, 116, 136, 37, 12, 0, 21, 72, 20, 211, 65, 72, 83, 148, 36, 16, 108, 65, 35, 34, 6, 134, 50, 91, 57, 35, 0,
+			0, 15, 69, 76, 19, 21, 80, 80, 89, 35, 55, 6, 118, 47, 13, 0, 14, 69, 48, 81, 193, 80, 80, 55, 13, 136, 115, 47, 13, 0,
+			15, 69, 16, 82, 193, 16, 80, 72, 108, 49, 6, 115, 72, 13, 0, 16, 69, 76, 244, 8, 36, 16, 89, 40, 83, 6, 37, 12, 57, 35,
+			0, 17, 70, 76, 19, 4, 4, 226, 1, 89, 35, 55, 72, 6, 35, 50, 35, 0, 0, 0, 17, 70, 17, 82, 84, 77, 113, 83, 72, 127,
+			47, 89, 84, 6, 108, 89, 0, 0, 21, 72, 16, 148, 12, 60, 208, 83, 36, 80, 72, 13, 48, 55, 117, 65, 35, 89, 6, 37, 0, 9,
+			68, 13, 148, 137, 48, 21, 0, 10, 0, 14, 69, 52, 20, 137, 85, 48, 65, 115, 34, 37, 111, 89, 0, 13, 69, 48, 85, 201, 21, 48,
+			55, 13, 84, 37, 89, 0, 0, 9, 198, 52, 148, 203, 36, 83, 128, 66, 15, 70, 12, 132, 137, 77, 67, 192, 49, 34, 109, 89, 47, 40,
+			0, 0, 0, 11, 68, 52, 16, 200, 60, 65, 35, 76, 120, 0, 16, 70, 12, 132, 137, 77, 67, 198, 49, 34, 109, 89, 47, 110, 83, 0,
+			0, 18, 70, 73, 147, 69, 48, 20, 153, 34, 123, 65, 13, 55, 35, 34, 6, 123, 0, 15, 70, 52, 144, 200, 20, 195, 5, 65, 37, 91,
+			6, 112, 55, 0, 18, 70, 12, 20, 143, 48, 147, 129, 49, 35, 34, 40, 55, 6, 37, 50, 35, 0, 0, 16, 70, 4, 195, 5, 29, 35,
+			192, 35, 55, 6, 108, 81, 34, 40, 0, 17, 70, 8, 244, 143, 16, 147, 128, 71, 110, 34, 40, 72, 6, 37, 50, 0, 16, 4, 194, 182,
+			194, 182, 48, 35, 34, 35, 136, 34, 115, 84, 13, 0, 0, 0, 11, 70, 88, 147, 131, 20, 229, 0, 21, 0, 10, 12, 5, 18, 5, 14,
+			195, 169, 34, 13, 50, 123, 0, 12, 68, 40, 244, 197, 24, 57, 117, 89, 13, 83, 0, 0, 15, 204, 92, 81, 82, 88, 243, 210, 77, 1,
+			76, 48, 147, 135, 65, 9, 198, 12, 243, 134, 21, 69, 9, 66, 10, 69, 28, 244, 132, 60, 224, 21, 0, 10, 0, 12, 137, 15, 14, 22,
+			5, 18, 13, 15, 195, 171, 65, 15, 70, 56, 146, 204, 4, 20, 192, 50, 37, 49, 55, 115, 89, 0, 0, 19, 71, 4, 229, 23, 21, 36,
+			5, 56, 35, 50, 47, 84, 112, 34, 48, 13, 50, 0, 0, 6, 195, 76, 243, 211, 72, 6, 195, 76, 243, 211, 8, 18, 8, 7, 1, 2,
+			18, 9, 195, 171, 12, 136, 115, 71, 34, 37, 13, 55, 0, 11, 5, 95, 35, 19, 20, 5, 89, 47, 13, 0, 0, 10, 69, 9, 84, 148,
+			60, 224, 21, 0, 10, 10, 69, 4, 193, 146, 20, 64, 21, 0, 10, 17, 70, 44, 147, 147, 32, 20, 193, 49, 37, 50, 91, 6, 115, 89,
+			35, 0, 0, 9, 198, 4, 229, 1, 72, 84, 192, 66, 15, 70, 76, 84, 150, 4, 20, 192, 89, 13, 34, 83, 115, 89, 0, 22, 73, 52,
+			243, 210, 72, 81, 83, 9, 84, 135, 65, 40, 34, 6, 116, 89, 71, 111, 34, 136, 0, 0, 0, 11, 70, 72, 144, 200, 5, 33, 0, 21,
+			0, 10, 12, 4, 95, 4, 15, 20, 48, 6, 111, 50, 47, 0, 0, 14, 69, 80, 245, 4, 5, 64, 47, 110, 72, 35, 47, 0, 8, 0,
+			9, 198, 60, 226, 213, 56, 65, 64, 65, 6, 195, 36, 65, 69, 66, 17, 70, 100, 243, 1, 56, 65, 64, 57, 40, 55, 6, 35, 50, 72,
+			13, 0, 10, 67, 4, 64, 77, 35, 72, 35, 65, 0, 0, 17, 71, 64, 192, 65, 76, 160, 65, 64, 48, 55, 115, 89, 57, 115, 48, 0,
+			18, 2, 95, 91, 55, 109, 68, 89, 15, 71, 55, 110, 49, 107, 35, 49, 37, 0, 0, 7, 196, 88, 84, 141, 100, 66, 11, 68, 32, 82,
+			203, 20, 107, 112, 49, 13, 0, 0, 17, 70, 64, 147, 143, 80, 17, 197, 48, 37, 50, 40, 47, 6, 115, 90, 0, 13, 69, 72, 82, 78,
+			21, 64, 34, 13, 50, 108, 47, 0, 15, 69, 52, 246, 129, 73, 64, 65, 117, 47, 89, 35, 34, 47, 0, 0, 17, 70, 45, 112, 90, 84,
+			197, 64, 49, 58, 35, 88, 6, 40, 55, 40, 0, 0, 9, 67, 32, 82, 192, 107, 112, 49, 0, 8, 2, 95, 95, 55, 123, 50, 0, 0,
+			9, 68, 40, 19, 69, 76, 21, 0, 10, 0, 22, 73, 88, 84, 146, 20, 112, 65, 56, 65, 64, 83, 112, 34, 13, 136, 6, 115, 50, 72,
+			13, 0, 15, 69, 76, 240, 133, 72, 80, 89, 6, 117, 71, 13, 34, 13, 0, 8, 197, 56, 19, 65, 80, 80, 66, 13, 69, 81, 37, 68,
+			36, 80, 47, 34, 40, 72, 37, 0, 9, 198, 12, 243, 146, 4, 66, 69, 66, 18, 2, 95, 93, 34, 112, 136, 89, 15, 71, 55, 110, 49,
+			107, 35, 49, 37, 0, 0, 16, 70, 45, 34, 84, 36, 82, 192, 49, 34, 109, 47, 6, 37, 49, 0, 8, 67, 28, 243, 201, 136, 124, 0,
+			18, 70, 4, 194, 15, 21, 113, 76, 35, 55, 107, 40, 84, 6, 112, 55, 0, 8, 0, 10, 199, 8, 20, 146, 36, 176, 68, 20, 67, 6,
+			195, 24, 18, 192, 17, 0, 12, 201, 92, 16, 82, 76, 182, 78, 48, 146, 197, 66, 13, 68, 20, 194, 84, 20, 37, 55, 6, 37, 12, 47,
+			0, 0, 8, 197, 81, 84, 139, 100, 80, 66, 0, 15, 70, 49, 146, 215, 4, 18, 192, 55, 123, 49, 84, 115, 49, 0, 9, 198, 28, 245,
+			68, 36, 226, 64, 66, 0, 12, 201, 36, 229, 5, 57, 50, 84, 20, 149, 0, 68, 18, 71, 28, 16, 78, 16, 85, 197, 28, 136, 115, 50,
+			72, 13, 84, 112, 136, 0, 0, 22, 72, 76, 241, 197, 56, 16, 77, 16, 80, 89, 6, 117, 136, 13, 50, 4, 115, 65, 72, 13, 0, 10,
+			67, 40, 16, 207, 57, 35, 49, 40, 0, 0, 12, 201, 92, 16, 82, 76, 182, 78, 48, 146, 192, 66, 6, 195, 37, 48, 142, 17, 0, 0,
+			20, 9, 195, 170, 18, 5, 14, 19, 20, 5, 18, 113, 34, 13, 50, 89, 47, 13, 34, 0, 0, 22, 72, 61, 32, 78, 40, 84, 5, 73,
+			48, 117, 34, 6, 35, 50, 57, 13, 48, 113, 34, 89, 0, 0, 0, 26, 74, 16, 85, 84, 21, 35, 206, 60, 210, 85, 52, 72, 128, 47,
+			13, 34, 117, 50, 6, 117, 65, 37, 111, 65, 0, 14, 4, 95, 7, 18, 22, 136, 34, 35, 83, 6, 109, 89, 0, 0, 9, 67, 20, 180,
+			192, 108, 49, 89, 0, 0, 0, 0, 16, 70, 36, 226, 193, 80, 128, 64, 37, 68, 49, 6, 115, 47, 35, 0, 9, 198, 24, 147, 129, 48,
+			148, 192, 67, 0, 0, 9, 68, 48, 85, 201, 76, 21, 0, 10, 12, 68, 36, 36, 197, 56, 37, 71, 89, 13, 50, 0, 0, 0, 0, 0,
+			13, 67, 20, 67, 83, 123, 13, 50, 72, 110, 65, 89, 0, 0, 0, 16, 70, 80, 85, 146, 20, 65, 64, 47, 13, 83, 34, 116, 72, 13,
+			0, 0, 9, 195, 92, 147, 0, 72, 11, 9, 32, 18, 2, 95, 123, 55, 109, 68, 89, 15, 49, 34, 111, 55, 107, 35, 49, 37, 0, 16,
+			4, 95, 4, 9, 1, 72, 6, 116, 55, 47, 116, 49, 13, 50, 0, 0, 7, 196, 4, 226, 77, 4, 65, 0, 15, 69, 9, 37, 87, 21,
+			32, 71, 34, 40, 58, 6, 113, 34, 0, 0, 16, 70, 77, 69, 75, 72, 17, 192, 89, 47, 118, 49, 34, 35, 136, 0, 15, 70, 77, 86,
+			129, 56, 225, 64, 89, 40, 88, 6, 115, 50, 0, 11, 70, 12, 20, 140, 100, 193, 64, 21, 0, 10, 0, 19, 71, 32, 148, 143, 76, 162,
+			77, 4, 107, 37, 34, 40, 91, 6, 37, 65, 35, 0, 0, 0, 23, 73, 48, 16, 149, 76, 50, 1, 28, 225, 64, 55, 35, 71, 111, 89,
+			49, 6, 35, 136, 50, 37, 0, 15, 69, 21, 81, 197, 56, 80, 57, 40, 75, 6, 37, 12, 50, 0, 18, 2, 95, 125, 34, 112, 136, 89,
+			15, 49, 34, 111, 55, 107, 35, 49, 37, 0, 0, 12, 2, 95, 124, 35, 83, 89, 47, 34, 116, 48, 0, 0, 0, 11, 200, 92, 83, 148,
+			4, 181, 9, 20, 176, 65, 0, 8, 197, 60, 225, 9, 56, 112, 65, 10, 69, 76, 244, 8, 36, 80, 21, 0, 10, 0, 11, 70, 64, 21,
+			18, 36, 50, 192, 21, 0, 10, 0, 0, 11, 70, 9, 35, 207, 44, 198, 78, 21, 0, 10, 0, 0, 0, 17, 71, 52, 245, 15, 73, 66,
+			137, 20, 65, 117, 47, 13, 34, 49, 37, 0, 12, 71, 48, 240, 203, 21, 32, 137, 20, 21, 0, 10, 0, 0, 13, 69, 92, 21, 23, 61,
+			80, 84, 35, 47, 84, 120, 0, 0, 17, 70, 12, 16, 133, 72, 225, 84, 49, 35, 71, 13, 34, 50, 6, 123, 0, 0, 18, 71, 16, 82,
+			210, 20, 194, 78, 28, 72, 108, 49, 34, 116, 55, 13, 68, 0, 0, 13, 70, 76, 50, 13, 36, 69, 0, 91, 65, 37, 47, 0, 0, 0,
+			18, 70, 52, 19, 132, 20, 192, 64, 65, 35, 50, 72, 6, 108, 12, 55, 35, 0, 0, 0, 0, 0, 17, 70, 52, 21, 20, 21, 84, 192,
+			65, 35, 47, 6, 37, 12, 111, 89, 0, 0, 17, 70, 44, 244, 9, 21, 33, 71, 49, 40, 48, 6, 37, 34, 112, 136, 0, 19, 8, 22,
+			9, 195, 171, 20, 14, 1, 13, 84, 57, 6, 108, 47, 50, 35, 65, 0, 12, 71, 52, 83, 2, 61, 84, 142, 20, 21, 0, 10, 0, 0,
+			14, 69, 88, 243, 21, 37, 64, 83, 110, 55, 10, 127, 47, 0, 13, 69, 32, 82, 77, 5, 64, 107, 121, 65, 35, 47, 0, 0, 16, 70,
+			93, 148, 199, 21, 33, 64, 84, 123, 89, 136, 116, 34, 13, 0, 0, 0, 0, 10, 69, 88, 144, 212, 61, 32, 21, 0, 10, 14, 73, 76,
+			128, 75, 21, 52, 5, 5, 33, 64, 21, 0, 10, 0, 13, 70, 72, 244, 211, 61, 85, 192, 34, 13, 89, 120, 0, 9, 198, 52, 144, 200,
+			36, 83, 0, 66, 0, 10, 199, 92, 81, 82, 44, 194, 78, 44, 66, 10, 199, 60, 225, 197, 92, 243, 206, 76, 65, 0, 11, 200, 60, 225,
+			5, 73, 118, 83, 21, 32, 67, 15, 70, 48, 145, 83, 8, 85, 0, 55, 37, 89, 71, 108, 47, 0, 13, 68, 20, 210, 76, 20, 108, 65,
+			6, 37, 12, 55, 0, 0, 15, 69, 32, 21, 129, 56, 16, 107, 35, 84, 6, 35, 50, 35, 0, 0, 0, 16, 70, 73, 82, 203, 21, 34,
+			71, 34, 111, 49, 13, 34, 13, 136, 0, 0, 11, 200, 4, 19, 147, 80, 16, 78, 16, 80, 66, 0, 15, 69, 52, 245, 15, 72, 80, 65,
+			117, 47, 6, 117, 34, 13, 0, 9, 197, 16, 16, 82, 56, 16, 8, 32, 14, 69, 76, 50, 1, 48, 176, 89, 49, 6, 35, 55, 49, 0,
+			0, 0, 16, 70, 72, 245, 20, 20, 225, 83, 34, 110, 47, 13, 50, 108, 89, 0, 13, 71, 32, 243, 199, 20, 65, 76, 20, 107, 117, 136,
+			0, 18, 71, 17, 35, 207, 53, 53, 5, 72, 72, 34, 117, 65, 89, 47, 112, 34, 0, 10, 199, 52, 17, 196, 4, 193, 78, 4, 67, 0,
+			11, 68, 16, 18, 83, 100, 72, 123, 88, 37, 0, 0, 10, 67, 5, 51, 198, 35, 89, 110, 83, 0, 0, 18, 70, 12, 243, 5, 57, 51,
+			192, 49, 40, 55, 6, 108, 12, 50, 89, 120, 0, 0, 13, 70, 21, 52, 18, 21, 52, 207, 21, 105, 116, 0, 10, 18, 70, 8, 195, 205,
+			21, 37, 83, 71, 55, 40, 65, 6, 116, 34, 111, 89, 0, 0, 0, 17, 70, 76, 177, 80, 76, 83, 5, 89, 49, 108, 48, 89, 13, 55,
+			13, 0, 11, 70, 44, 83, 148, 84, 50, 217, 21, 0, 10, 0, 25, 73, 52, 81, 137, 77, 67, 198, 20, 193, 83, 65, 108, 83, 37, 89,
+			47, 6, 117, 83, 13, 55, 13, 89, 0, 0, 0, 0, 0, 0, 7, 195, 17, 84, 192, 8, 32, 0, 0, 0, 11, 70, 76, 147, 129, 81,
+			32, 64, 21, 0, 10, 17, 70, 41, 80, 78, 37, 64, 64, 57, 40, 35, 50, 6, 37, 47, 35, 0, 0, 19, 71, 84, 149, 5, 72, 16,
+			82, 16, 127, 47, 13, 34, 10, 6, 115, 34, 47, 0, 14, 67, 4, 69, 128, 35, 47, 83, 40, 49, 6, 115, 47, 0, 0, 0, 13, 69,
+			48, 81, 193, 5, 64, 55, 13, 136, 115, 47, 0, 16, 70, 8, 83, 12, 21, 101, 69, 71, 112, 55, 84, 57, 40, 12, 0, 0, 0, 21,
+			71, 36, 225, 215, 5, 101, 77, 4, 37, 68, 81, 58, 35, 84, 6, 40, 12, 65, 35, 0, 0, 0, 8, 197, 92, 21, 20, 21, 32, 8,
+			0, 9, 198, 5, 53, 1, 73, 65, 64, 66, 0, 0, 10, 67, 89, 33, 75, 83, 34, 112, 49, 0, 0, 9, 198, 92, 81, 82, 28, 19,
+			13, 66, 12, 69, 80, 241, 71, 20, 80, 47, 40, 136, 116, 0, 14, 69, 48, 144, 137, 16, 240, 55, 13, 71, 37, 72, 40, 0, 0, 16,
+			70, 88, 16, 82, 92, 83, 0, 83, 115, 34, 84, 6, 112, 55, 0, 0, 10, 199, 84, 149, 5, 72, 208, 84, 20, 67, 14, 67, 44, 20,
+			20, 49, 35, 48, 47, 6, 123, 50, 0, 24, 0, 20, 72, 61, 85, 5, 56, 145, 75, 92, 16, 120, 47, 13, 50, 6, 37, 49, 58, 35,
+			0, 0, 14, 69, 88, 84, 147, 80, 80, 83, 112, 34, 89, 47, 13, 0, 17, 70, 56, 80, 146, 5, 50, 193, 50, 13, 71, 34, 35, 89,
+			49, 35, 0, 0, 0, 0, 17, 70, 56, 81, 197, 77, 65, 82, 50, 116, 136, 13, 89, 47, 112, 34, 0, 20, 72, 24, 147, 9, 65, 1,
+			78, 76, 80, 83, 13, 55, 13, 48, 108, 50, 89, 13, 0, 13, 68, 76, 245, 197, 48, 89, 117, 84, 6, 112, 55, 0, 21, 72, 25, 32,
+			83, 21, 32, 149, 72, 112, 83, 34, 123, 88, 13, 34, 71, 111, 34, 136, 0, 0, 0, 0, 0, 12, 68, 72, 81, 201, 20, 34, 13, 90,
+			37, 12, 0, 17, 70, 52, 147, 137, 77, 65, 82, 65, 13, 50, 109, 89, 47, 13, 34, 0, 21, 72, 65, 149, 8, 4, 115, 210, 5, 48,
+			48, 37, 47, 6, 115, 136, 117, 34, 35, 89, 0, 0, 8, 197, 61, 3, 1, 5, 48, 66, 0, 17, 70, 88, 84, 147, 24, 83, 4, 83,
+			112, 34, 89, 83, 112, 55, 47, 0, 0, 24, 73, 8, 85, 12, 20, 129, 77, 77, 65, 82, 71, 108, 47, 55, 37, 12, 108, 65, 89, 47,
+			112, 34, 0, 0, 9, 68, 92, 22, 78, 20, 21, 0, 10, 0, 14, 69, 8, 85, 197, 56, 64, 71, 116, 84, 13, 50, 47, 0, 14, 69,
+			12, 20, 141, 20, 224, 49, 35, 34, 65, 108, 50, 0, 0, 15, 70, 92, 147, 12, 20, 228, 192, 84, 109, 55, 13, 50, 89, 0, 18, 70,
+			40, 84, 133, 52, 144, 64, 57, 2, 116, 34, 13, 65, 6, 37, 35, 0, 0, 0, 13, 68, 20, 194, 90, 20, 37, 55, 6, 37, 12, 88,
+			0, 0, 8, 195, 28, 16, 78, 72, 9, 32, 14, 69, 36, 225, 210, 36, 64, 37, 68, 81, 34, 13, 72, 0, 0, 10, 67, 4, 193, 197,
+			35, 55, 136, 13, 0, 11, 70, 77, 65, 86, 20, 228, 192, 21, 0, 10, 11, 70, 12, 243, 12, 36, 228, 192, 21, 0, 10, 0, 6, 195,
+			92, 145, 64, 8, 7, 195, 80, 241, 64, 72, 32, 18, 71, 76, 50, 1, 48, 181, 217, 44, 89, 49, 35, 55, 49, 84, 123, 49, 0, 12,
+			71, 28, 84, 141, 37, 53, 15, 56, 21, 0, 10, 0, 19, 72, 92, 83, 12, 36, 225, 212, 60, 224, 58, 108, 55, 37, 68, 47, 13, 50,
+			0, 0, 0, 0, 6, 195, 32, 241, 64, 8, 0, 0, 16, 69, 88, 18, 193, 57, 64, 83, 2, 35, 49, 6, 35, 50, 47, 0, 10, 67,
+			4, 209, 78, 115, 65, 108, 50, 0, 10, 69, 5, 37, 8, 85, 32, 21, 0, 10, 0, 0, 0, 0, 9, 198, 4, 195, 73, 76, 178, 69,
+			67, 13, 69, 16, 84, 137, 12, 176, 72, 108, 34, 37, 49, 0, 0, 0, 9, 67, 105, 147, 0, 89, 123, 55, 0, 0, 0, 15, 69, 76,
+			243, 143, 72, 80, 89, 40, 50, 6, 117, 34, 13, 0, 17, 70, 29, 32, 70, 24, 149, 9, 81, 34, 35, 83, 6, 37, 47, 37, 0, 13,
+			70, 72, 245, 83, 76, 80, 85, 34, 13, 89, 120, 0, 16, 69, 76, 245, 197, 80, 240, 89, 40, 58, 6, 108, 12, 47, 40, 0, 16, 69,
+			52, 20, 21, 80, 240, 65, 35, 48, 6, 40, 12, 47, 40, 0, 15, 69, 44, 19, 129, 16, 16, 49, 35, 50, 35, 72, 2, 35, 0, 0,
+			0, 18, 70, 65, 35, 198, 21, 65, 83, 48, 34, 110, 83, 13, 47, 6, 108, 89, 0, 18, 71, 64, 245, 16, 61, 84, 146, 36, 48, 110,
+			47, 48, 40, 34, 6, 37, 0, 20, 71, 36, 212, 18, 60, 212, 20, 84, 37, 65, 48, 34, 6, 110, 65, 48, 47, 40, 0, 10, 199, 24,
+			147, 129, 48, 148, 212, 20, 67, 18, 70, 4, 192, 133, 73, 69, 83, 35, 55, 71, 6, 112, 34, 47, 111, 89, 0, 0, 11, 70, 29, 83,
+			12, 37, 97, 82, 21, 0, 10, 0, 10, 69, 8, 20, 139, 49, 144, 21, 0, 10, 0, 21, 72, 9, 33, 68, 20, 226, 193, 53, 0, 71,
+			34, 116, 72, 13, 50, 49, 35, 65, 48, 0, 14, 70, 4, 36, 129, 32, 19, 64, 115, 71, 34, 35, 65, 0, 0, 20, 71, 44, 245, 9,
+			48, 163, 206, 76, 49, 110, 47, 13, 55, 57, 6, 135, 50, 89, 0, 7, 195, 32, 243, 64, 72, 32, 9, 67, 44, 147, 64, 21, 0, 41,
+			10, 0, 12, 68, 32, 22, 68, 56, 107, 122, 72, 13, 50, 0, 17, 70, 8, 83, 138, 4, 210, 78, 71, 108, 50, 75, 13, 65, 13, 50,
+			0, 21, 72, 5, 32, 200, 36, 209, 68, 21, 48, 35, 34, 136, 37, 65, 6, 116, 72, 108, 89, 0, 0, 10, 69, 72, 131, 196, 21, 48,
+			21, 0, 10, 8, 197, 48, 17, 146, 5, 48, 66, 0, 12, 201, 81, 32, 80, 77, 85, 84, 40, 145, 83, 66, 12, 67, 4, 195, 205, 35,
+			55, 10, 6, 110, 65, 0, 11, 67, 36, 196, 197, 6, 37, 55, 88, 13, 0, 15, 70, 48, 84, 207, 80, 131, 192, 55, 13, 89, 40, 47,
+			40, 0, 0, 18, 71, 88, 243, 19, 12, 129, 78, 44, 83, 110, 55, 89, 49, 108, 68, 49, 0, 0, 0, 10, 69, 92, 147, 19, 60, 224,
+			21, 0, 10, 0, 15, 70, 61, 81, 19, 32, 84, 128, 120, 47, 89, 107, 112, 34, 0, 17, 70, 12, 80, 201, 48, 144, 64, 89, 13, 89,
+			37, 12, 55, 37, 35, 0, 0, 17, 71, 12, 128, 82, 52, 18, 78, 20, 91, 115, 65, 6, 123, 12, 50, 0, 0, 11, 68, 28, 86, 69,
+			72, 136, 123, 13, 34, 0, 0, 10, 69, 61, 129, 143, 72, 64, 21, 0, 10, 0, 16, 70, 32, 21, 133, 56, 112, 64, 107, 115, 83, 13,
+			68, 136, 35, 0, 0, 12, 71, 92, 147, 12, 37, 53, 15, 56, 21, 0, 10, 12, 71, 77, 65, 86, 20, 228, 207, 56, 21, 0, 10, 0,
+			0, 0, 14, 70, 52, 21, 20, 32, 81, 64, 65, 35, 47, 6, 116, 0, 0, 0, 18, 8, 2, 195, 170, 18, 5, 20, 25, 4, 71, 113,
+			34, 13, 47, 123, 47, 0, 14, 68, 32, 244, 197, 4, 107, 40, 89, 6, 37, 12, 35, 0, 0, 15, 69, 92, 83, 5, 21, 32, 84, 112,
+			55, 10, 6, 116, 34, 0, 0, 0, 20, 71, 88, 19, 141, 20, 193, 87, 20, 83, 35, 50, 65, 13, 55, 6, 116, 84, 13, 0, 11, 70,
+			16, 83, 9, 48, 18, 0, 21, 0, 10, 0, 11, 200, 56, 147, 77, 21, 35, 69, 21, 32, 65, 22, 72, 52, 17, 1, 28, 20, 203, 5,
+			32, 65, 35, 72, 35, 136, 6, 35, 89, 49, 35, 34, 0, 0, 16, 69, 32, 84, 133, 72, 240, 107, 108, 34, 6, 108, 12, 34, 40, 0,
+			17, 69, 4, 64, 71, 36, 240, 35, 72, 6, 115, 75, 37, 38, 2, 120, 0, 6, 195, 92, 16, 82, 8, 14, 69, 16, 83, 9, 48, 16,
+			72, 13, 55, 109, 55, 35, 0, 14, 69, 21, 84, 143, 64, 16, 128, 34, 6, 117, 48, 35, 0, 0, 0, 0, 13, 68, 16, 246, 69, 56,
+			72, 131, 57, 6, 108, 50, 0, 18, 72, 12, 132, 137, 77, 65, 76, 48, 80, 49, 34, 13, 89, 47, 112, 55, 0, 0, 13, 69, 76, 129,
+			73, 48, 16, 91, 37, 12, 55, 35, 0, 15, 69, 48, 245, 73, 76, 80, 55, 40, 58, 6, 37, 12, 88, 0, 14, 69, 5, 66, 5, 56,
+			80, 35, 47, 6, 116, 50, 13, 0, 0, 0, 0, 21, 72, 13, 34, 77, 64, 83, 5, 56, 80, 49, 34, 13, 65, 48, 13, 55, 37, 12,
+			50, 0, 20, 72, 12, 19, 79, 84, 99, 1, 28, 80, 49, 35, 65, 40, 83, 55, 6, 115, 90, 0, 0, 6, 97, 97, 0, 4, 110, 2,
+			98, 105, 100, 3, 2, 115, 50, 0, 110, 2, 103, 114, 101, 110, 115, 101, 110, 0, 110, 2, 103, 114, 121, 112, 101, 110, 100, 0, 110, 2,
+			104, 97, 110, 103, 105, 103, 0, 110, 2, 104, 97, 110, 107, 0, 110, 2, 104, 111, 117, 100, 101, 110, 0, 110, 2, 108, 111, 107, 0, 110,
+			2, 109, 101, 108, 100, 98, 97, 0, 110, 2, 112, 97, 115, 98, 97, 0, 110, 2, 115, 105, 101, 110, 0, 110, 2, 115, 112, 114, 101, 101,
+			107, 0, 110, 2, 115, 116, 17, 65, 17, 65, 17, 67, 0, 110, 2, 116, 97, 115, 98, 0, 110, 2, 118, 97, 97, 114, 0, 110, 2, 118,
+			97, 108, 108, 17, 65, 17, 67, 0, 110, 2, 118, 101, 103, 98, 97, 0, 110, 2, 118, 117, 108, 108, 101, 110, 100, 0, 110, 2, 119, 101,
+			115, 105, 103, 0, 110, 2, 119, 121, 115, 101, 110, 100, 101, 32, 118, 111, 111, 114, 110, 0, 110, 2, 101, 101, 110, 3, 2, 115, 50, 19,
+			0, 110, 116, 114, 101, 107, 108, 105, 107, 3, 2, 115, 50, 47, 34, 112, 49, 55, 13, 49, 0, 110, 100, 111, 101, 110, 108, 105, 107, 3,
+			2, 115, 50, 72, 40, 50, 55, 13, 49, 0, 110, 110, 101, 101, 109, 108, 105, 107, 3, 2, 115, 50, 116, 65, 55, 13, 49, 0, 109, 2,
+			98, 111, 114, 115, 3, 2, 115, 65, 0, 110, 2, 115, 105, 101, 110, 32, 24, 3, 6, 115, 50, 0, 4, 110, 119, 101, 110, 2, 32, 3,
+			6, 115, 50, 84, 108, 50, 0, 110, 119, 101, 110, 2, 100, 0, 110, 115, 116, 101, 114, 107, 3, 6, 115, 50, 89, 47, 112, 34, 49, 0,
+			110, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 115, 50, 136, 13, 0, 110, 103, 101, 101, 2, 12, 3, 6, 115, 50, 136, 116, 0,
+			110, 115, 2, 32, 3, 6, 133, 50, 89, 0, 110, 115, 101, 2, 32, 3, 6, 133, 50, 89, 13, 0, 3, 115, 0, 114, 100, 8, 2, 114,
+			3, 115, 34, 47, 0, 114, 100, 8, 2, 111, 3, 115, 34, 47, 10, 0, 4, 110, 2, 103, 3, 115, 50, 0, 110, 2, 108, 111, 107, 32,
+			24, 0, 110, 2, 115, 112, 114, 101, 101, 107, 32, 24, 0, 110, 2, 115, 116, 17, 65, 17, 65, 17, 67, 32, 24, 0, 110, 2, 116, 114,
+			101, 107, 32, 24, 0, 110, 2, 118, 97, 108, 108, 101, 114, 0, 4, 110, 2, 115, 107, 111, 117, 3, 115, 50, 6, 0, 110, 2, 118, 97,
+			110, 107, 0, 4, 110, 100, 2, 114, 111, 107, 3, 115, 50, 47, 10, 0, 110, 100, 2, 114, 117, 115, 0, 110, 116, 101, 108, 8, 3, 115,
+			50, 47, 112, 55, 0, 110, 100, 101, 108, 101, 3, 115, 50, 72, 116, 55, 13, 10, 0, 110, 115, 116, 101, 2, 108, 108, 101, 114, 105, 103,
+			3, 115, 50, 89, 47, 6, 112, 0, 110, 110, 101, 109, 2, 17, 65, 3, 115, 50, 116, 65, 0, 105, 3, 122, 0, 4, 110, 2, 100, 106,
+			105, 101, 3, 122, 68, 0, 110, 2, 116, 106, 105, 101, 0, 4, 100, 106, 105, 101, 3, 122, 80, 37, 0, 116, 106, 105, 101, 0, 7, 6,
+			97, 110, 0, 4, 1, 17, 67, 2, 107, 101, 101, 114, 3, 2, 35, 50, 0, 8, 2, 17, 65, 0, 8, 2, 101, 109, 105, 101, 0, 110,
+			8, 2, 97, 21, 0, 97, 116, 111, 2, 109, 105, 101, 3, 2, 35, 50, 2, 35, 47, 2, 40, 0, 97, 116, 111, 109, 105, 101, 115, 3,
+			2, 35, 50, 2, 35, 47, 117, 65, 2, 37, 89, 0, 111, 2, 114, 101, 107, 17, 67, 3, 2, 35, 50, 2, 40, 0, 111, 109, 97, 2,
+			108, 105, 101, 3, 2, 35, 50, 2, 40, 65, 2, 35, 0, 111, 109, 97, 108, 105, 101, 115, 3, 2, 35, 50, 2, 40, 65, 115, 55, 37,
+			89, 0, 101, 107, 2, 100, 111, 116, 3, 2, 35, 50, 2, 108, 49, 0, 101, 2, 109, 111, 3, 2, 35, 50, 13, 0, 116, 105, 8, 2,
+			17, 67, 14, 128, 132, 132, 3, 2, 35, 50, 47, 2, 37, 0, 116, 114, 97, 2, 115, 105, 101, 116, 3, 2, 35, 50, 47, 34, 2, 35,
+			0, 116, 101, 2, 110, 110, 17, 65, 3, 2, 35, 50, 47, 108, 0, 101, 116, 116, 101, 1, 17, 67, 2, 32, 3, 2, 35, 50, 108, 47,
+			0, 2, 103, 105, 110, 97, 3, 2, 35, 68, 0, 103, 101, 2, 108, 105, 101, 114, 3, 2, 35, 68, 13, 0, 103, 111, 114, 97, 3, 2,
+			35, 68, 81, 131, 34, 2, 35, 0, 103, 111, 108, 2, 101, 3, 2, 133, 68, 136, 2, 40, 55, 0, 103, 108, 8, 2, 17, 65, 3, 2,
+			133, 68, 136, 55, 2, 0, 97, 8, 2, 17, 67, 3, 4, 35, 50, 35, 0, 1, 103, 2, 32, 3, 21, 0, 111, 2, 114, 97, 107, 3,
+			35, 50, 2, 40, 0, 116, 114, 111, 111, 112, 1, 21, 3, 35, 50, 47, 34, 6, 117, 48, 0, 116, 114, 111, 112, 101, 1, 21, 2, 32,
+			3, 35, 50, 47, 34, 6, 117, 48, 13, 0, 116, 114, 111, 112, 105, 101, 1, 21, 3, 35, 50, 47, 34, 6, 117, 48, 37, 0, 116, 114,
+			111, 112, 105, 101, 1, 21, 2, 32, 24, 3, 35, 50, 47, 34, 40, 48, 6, 37, 0, 115, 106, 111, 118, 105, 3, 35, 50, 91, 7, 117,
+			83, 13, 0, 103, 108, 101, 101, 114, 3, 35, 68, 55, 116, 34, 0, 4, 2, 100, 106, 105, 101, 12, 3, 121, 68, 0, 2, 116, 106, 105,
+			101, 0, 4, 115, 1, 100, 3, 133, 50, 89, 0, 115, 1, 104, 0, 115, 1, 107, 0, 115, 1, 108, 0, 115, 1, 114, 102, 0, 115, 1,
+			114, 107, 0, 103, 111, 108, 97, 3, 133, 68, 136, 6, 117, 55, 35, 0, 7, 6, 98, 97, 0, 4, 2, 108, 97, 110, 115, 3, 71, 2,
+			35, 0, 2, 108, 100, 97, 100, 105, 103, 0, 2, 108, 106, 97, 97, 114, 0, 2, 108, 107, 111, 110, 0, 2, 108, 108, 111, 110, 0, 2,
+			110, 97, 108, 17, 65, 0, 2, 110, 105, 101, 114, 0, 2, 114, 101, 116, 25, 0, 2, 114, 111, 110, 0, 2, 115, 105, 101, 108, 105, 0,
+			2, 116, 105, 107, 0, 8, 2, 115, 97, 0, 114, 2, 98, 17, 65, 3, 71, 2, 35, 34, 0, 116, 97, 108, 2, 106, 111, 110, 3, 71,
+			2, 35, 47, 2, 35, 55, 0, 116, 116, 101, 2, 114, 121, 3, 71, 2, 35, 47, 13, 0, 107, 97, 116, 101, 2, 108, 3, 71, 2, 35,
+			49, 13, 47, 112, 0, 107, 116, 101, 2, 114, 105, 3, 71, 2, 35, 49, 47, 116, 0, 110, 100, 2, 105, 101, 116, 3, 71, 2, 35, 50,
+			72, 0, 4, 108, 97, 107, 108, 97, 118, 97, 3, 71, 2, 35, 55, 2, 35, 49, 55, 115, 84, 2, 35, 0, 108, 97, 107, 108, 97, 119,
+			97, 0, 108, 97, 110, 2, 115, 101, 101, 114, 3, 71, 2, 35, 55, 2, 35, 50, 0, 108, 108, 101, 114, 2, 105, 110, 17, 65, 3, 71,
+			2, 35, 55, 13, 34, 0, 108, 106, 117, 3, 71, 2, 35, 55, 57, 118, 0, 108, 104, 111, 114, 3, 71, 2, 35, 55, 107, 117, 34, 0,
+			108, 108, 101, 2, 116, 3, 71, 2, 35, 55, 108, 0, 108, 108, 97, 100, 101, 3, 71, 2, 35, 55, 115, 72, 13, 0, 106, 111, 110, 101,
+			2, 116, 3, 71, 2, 35, 57, 2, 40, 50, 108, 0, 109, 8, 2, 98, 111, 101, 115, 3, 71, 2, 35, 65, 0, 4, 110, 2, 107, 101,
+			116, 3, 71, 2, 35, 68, 0, 110, 2, 107, 105, 101, 114, 0, 110, 2, 107, 114, 111, 116, 0, 115, 105, 2, 108, 105, 115, 107, 3, 71,
+			2, 35, 89, 13, 0, 115, 111, 116, 104, 111, 3, 71, 2, 35, 89, 40, 47, 2, 40, 0, 115, 116, 105, 108, 108, 101, 3, 71, 2, 35,
+			89, 47, 37, 12, 55, 0, 104, 97, 109, 97, 3, 71, 2, 35, 107, 115, 65, 2, 35, 0, 110, 100, 2, 17, 65, 108, 105, 101, 114, 3,
+			71, 4, 35, 50, 72, 0, 108, 108, 111, 2, 116, 3, 71, 4, 35, 55, 110, 0, 1, 21, 2, 114, 101, 110, 3, 71, 6, 115, 0, 97,
+			114, 108, 105, 107, 1, 21, 3, 71, 6, 115, 34, 55, 13, 49, 0, 116, 101, 8, 3, 71, 7, 115, 47, 13, 0, 107, 108, 101, 105, 3,
+			71, 13, 49, 55, 123, 0, 103, 97, 115, 105, 101, 3, 71, 13, 136, 115, 89, 37, 0, 2, 114, 105, 116, 111, 110, 3, 71, 35, 0, 114,
+			111, 2, 109, 101, 116, 101, 114, 3, 71, 35, 34, 2, 40, 0, 114, 97, 2, 107, 3, 71, 35, 34, 6, 35, 0, 114, 111, 107, 3, 71,
+			35, 34, 7, 110, 49, 10, 0, 100, 2, 114, 3, 71, 35, 47, 0, 100, 8, 2, 17, 65, 3, 71, 35, 47, 10, 0, 107, 8, 2, 111,
+			3, 71, 35, 49, 10, 0, 110, 100, 2, 17, 65, 3, 71, 35, 50, 47, 0, 110, 100, 2, 101, 3, 71, 35, 50, 72, 0, 108, 108, 2,
+			101, 116, 106, 105, 101, 12, 3, 71, 35, 55, 0, 108, 115, 101, 109, 3, 71, 35, 55, 89, 13, 65, 0, 115, 116, 105, 111, 110, 3, 71,
+			35, 89, 47, 37, 110, 50, 0, 107, 101, 110, 3, 71, 115, 49, 13, 50, 0, 114, 98, 101, 114, 116, 111, 110, 3, 71, 115, 71, 13, 34,
+			47, 2, 110, 50, 0, 98, 97, 3, 71, 115, 71, 35, 0, 98, 97, 2, 116, 106, 105, 101, 3, 71, 115, 71, 121, 0, 115, 105, 2, 115,
+			3, 71, 115, 89, 13, 0, 100, 106, 105, 101, 3, 71, 121, 80, 37, 0, 7, 6, 98, 101, 0, 115, 101, 114, 105, 110, 103, 3, 8, 71,
+			13, 89, 116, 34, 13, 68, 0, 110, 8, 2, 17, 67, 105, 101, 110, 3, 71, 2, 108, 50, 0, 110, 8, 2, 103, 97, 3, 71, 2, 108,
+			68, 0, 114, 2, 108, 121, 110, 3, 71, 2, 112, 34, 0, 110, 101, 2, 100, 121, 3, 71, 2, 116, 50, 13, 0, 1, 17, 67, 2, 114,
+			115, 105, 101, 3, 71, 6, 113, 0, 101, 114, 1, 21, 2, 32, 3, 71, 6, 116, 34, 0, 4, 114, 105, 110, 103, 3, 71, 6, 116, 34,
+			13, 68, 0, 114, 105, 110, 103, 1, 98, 111, 114, 107, 115, 0, 116, 101, 114, 3, 71, 6, 116, 47, 13, 34, 0, 101, 108, 100, 105, 103,
+			1, 21, 3, 71, 6, 116, 55, 72, 13, 136, 0, 107, 101, 114, 8, 2, 17, 67, 21, 3, 71, 7, 116, 49, 13, 34, 0, 4, 1, 21,
+			2, 17, 67, 3, 71, 13, 0, 1, 98, 17, 65, 17, 67, 2, 108, 0, 1, 117, 106, 2, 108, 108, 17, 65, 0, 2, 100, 114, 21, 0,
+			2, 119, 101, 103, 105, 110, 103, 0, 8, 2, 17, 67, 121, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 32, 0, 2, 97, 109, 112,
+			3, 71, 13, 19, 0, 114, 2, 115, 101, 114, 107, 3, 71, 13, 34, 0, 4, 114, 105, 110, 103, 1, 17, 67, 3, 71, 13, 34, 13, 68,
+			0, 114, 105, 110, 103, 1, 111, 0, 107, 101, 110, 3, 71, 13, 49, 108, 50, 0, 110, 100, 101, 1, 98, 10, 3, 71, 13, 50, 72, 13,
+			0, 100, 119, 2, 21, 3, 71, 13, 72, 58, 0, 100, 101, 2, 17, 67, 102, 3, 71, 13, 72, 112, 0, 100, 101, 108, 105, 110, 103, 3,
+			71, 13, 72, 116, 55, 13, 68, 0, 119, 121, 115, 1, 21, 3, 71, 13, 84, 123, 89, 0, 115, 116, 101, 2, 107, 3, 71, 13, 89, 47,
+			112, 0, 115, 105, 103, 2, 116, 105, 103, 3, 71, 13, 89, 109, 136, 0, 104, 101, 112, 3, 71, 13, 107, 108, 48, 0, 103, 101, 114, 2,
+			17, 65, 3, 71, 13, 136, 116, 34, 0, 4, 2, 17, 67, 11, 12, 3, 71, 108, 0, 100, 2, 116, 0, 100, 106, 105, 101, 3, 71, 108,
+			12, 37, 80, 37, 0, 4, 100, 1, 21, 2, 32, 3, 71, 108, 47, 0, 100, 2, 17, 67, 0, 100, 2, 114, 97, 110, 100, 0, 100, 2,
+			119, 97, 114, 109, 0, 100, 2, 119, 111, 111, 114, 100, 0, 116, 108, 101, 104, 101, 2, 109, 3, 71, 108, 47, 55, 2, 37, 2, 108, 0,
+			100, 119, 2, 105, 101, 103, 3, 71, 108, 47, 84, 0, 110, 100, 101, 3, 71, 108, 50, 72, 13, 0, 110, 103, 101, 108, 3, 71, 108, 68,
+			13, 55, 0, 115, 115, 105, 101, 3, 71, 108, 89, 37, 0, 115, 116, 101, 2, 32, 3, 71, 108, 89, 47, 13, 0, 1, 101, 114, 2, 108,
+			25, 12, 3, 71, 112, 0, 114, 8, 2, 17, 67, 3, 71, 112, 34, 0, 114, 107, 101, 8, 3, 71, 112, 34, 49, 13, 0, 114, 103, 101,
+			3, 71, 112, 34, 81, 13, 0, 114, 103, 3, 71, 112, 34, 136, 0, 4, 107, 2, 32, 3, 71, 112, 49, 0, 107, 2, 100, 0, 107, 2,
+			102, 0, 107, 2, 104, 0, 107, 2, 109, 0, 107, 2, 115, 0, 107, 107, 2, 12, 0, 4, 1, 114, 2, 108, 25, 3, 71, 112, 55, 0,
+			108, 1, 17, 67, 2, 32, 0, 108, 8, 2, 17, 67, 0, 108, 108, 2, 12, 0, 4, 1, 110, 111, 115, 2, 115, 105, 101, 3, 71, 116,
+			0, 2, 100, 101, 32, 0, 101, 2, 12, 0, 4, 101, 114, 1, 97, 17, 67, 11, 3, 71, 116, 34, 0, 101, 114, 1, 101, 105, 100, 100,
+			101, 116, 0, 101, 114, 1, 115, 121, 0, 114, 101, 2, 32, 3, 71, 116, 34, 13, 0, 114, 105, 110, 103, 1, 116, 110, 111, 3, 71, 116,
+			34, 13, 68, 0, 116, 101, 2, 32, 3, 71, 116, 47, 13, 0, 116, 101, 115, 1, 97, 105, 100, 2, 21, 3, 71, 116, 47, 13, 89, 0,
+			116, 105, 101, 115, 3, 71, 116, 47, 37, 89, 0, 4, 107, 101, 114, 1, 21, 2, 32, 3, 71, 116, 49, 13, 34, 0, 107, 101, 114, 1,
+			21, 2, 116, 106, 105, 101, 0, 107, 101, 114, 2, 17, 67, 21, 0, 107, 101, 114, 2, 17, 65, 17, 65, 3, 71, 116, 49, 13, 34, 10,
+			0, 4, 110, 101, 1, 21, 2, 32, 3, 71, 116, 50, 13, 0, 110, 101, 2, 114, 0, 110, 105, 2, 103, 0, 100, 101, 2, 115, 116, 114,
+			3, 71, 116, 72, 13, 0, 100, 101, 108, 3, 71, 116, 72, 13, 55, 0, 100, 101, 118, 3, 71, 116, 72, 13, 83, 0, 100, 101, 115, 2,
+			32, 3, 71, 116, 72, 13, 89, 0, 4, 119, 101, 2, 107, 110, 105, 101, 3, 71, 116, 84, 13, 0, 119, 101, 2, 108, 105, 112, 0, 119,
+			101, 2, 114, 97, 115, 105, 101, 0, 119, 101, 2, 114, 105, 103, 0, 119, 101, 110, 100, 101, 3, 71, 116, 84, 13, 50, 72, 13, 0, 119,
+			105, 110, 103, 3, 71, 116, 84, 13, 68, 0, 4, 115, 2, 105, 101, 32, 3, 71, 116, 89, 0, 115, 2, 105, 101, 115, 32, 0, 115, 101,
+			109, 3, 71, 116, 89, 13, 65, 0, 115, 105, 103, 3, 71, 116, 89, 13, 136, 0, 97, 117, 3, 71, 120, 0, 105, 2, 12, 3, 71, 123,
+			0, 105, 103, 101, 3, 71, 123, 12, 90, 0, 117, 2, 17, 67, 3, 71, 128, 0, 117, 101, 108, 3, 71, 128, 13, 55, 0, 7, 6, 100,
+			101, 0, 1, 21, 2, 114, 111, 115, 105, 101, 3, 47, 10, 2, 116, 0, 4, 2, 109, 111, 111, 110, 3, 72, 2, 37, 0, 2, 112, 114,
+			101, 115, 115, 0, 111, 100, 111, 2, 114, 97, 110, 116, 3, 72, 2, 37, 2, 40, 72, 2, 40, 0, 116, 97, 105, 2, 108, 108, 101, 101,
+			114, 3, 72, 2, 37, 12, 47, 2, 123, 0, 109, 111, 110, 101, 3, 72, 2, 37, 65, 117, 50, 13, 0, 4, 2, 107, 108, 105, 110, 17,
+			65, 3, 72, 2, 108, 0, 2, 109, 111, 17, 67, 114, 0, 2, 112, 117, 116, 97, 0, 2, 115, 107, 117, 110, 0, 116, 111, 2, 110, 17,
+			65, 3, 72, 2, 108, 47, 2, 40, 0, 110, 8, 2, 100, 114, 105, 3, 72, 2, 108, 50, 0, 108, 105, 8, 2, 107, 97, 3, 72, 2,
+			108, 55, 2, 37, 0, 108, 105, 107, 97, 2, 116, 101, 115, 115, 3, 72, 2, 108, 55, 2, 37, 49, 2, 35, 0, 98, 105, 2, 116, 101,
+			3, 72, 2, 108, 71, 2, 37, 0, 4, 98, 117, 2, 116, 97, 3, 72, 2, 108, 71, 2, 118, 0, 98, 117, 2, 116, 101, 21, 0, 115,
+			8, 2, 112, 111, 3, 72, 2, 108, 89, 0, 114, 8, 2, 100, 117, 105, 17, 67, 3, 72, 2, 112, 34, 0, 108, 112, 104, 105, 110, 105,
+			117, 109, 3, 72, 2, 112, 55, 83, 37, 50, 37, 38, 111, 65, 0, 4, 2, 102, 108, 97, 115, 105, 3, 72, 2, 116, 0, 2, 104, 105,
+			100, 114, 0, 2, 107, 114, 105, 109, 105, 110, 97, 0, 2, 115, 116, 114, 117, 107, 116, 0, 101, 2, 109, 111, 101, 100, 105, 103, 0, 115,
+			116, 97, 98, 105, 108, 105, 8, 2, 115, 3, 72, 2, 116, 89, 47, 2, 35, 71, 2, 37, 55, 2, 37, 0, 115, 101, 109, 98, 101, 114,
+			3, 72, 2, 116, 89, 108, 65, 71, 13, 34, 0, 4, 117, 114, 2, 100, 114, 101, 110, 107, 3, 72, 2, 118, 13, 34, 0, 117, 114, 2,
+			100, 114, 105, 110, 103, 21, 0, 117, 114, 2, 103, 114, 111, 110, 100, 0, 117, 114, 2, 108, 101, 101, 102, 0, 117, 114, 2, 108, 111, 112,
+			21, 0, 117, 114, 2, 108, 117, 103, 116, 0, 117, 114, 2, 115, 105, 103, 116, 0, 117, 114, 2, 116, 114, 97, 112, 116, 0, 117, 114, 2,
+			119, 101, 101, 17, 67, 0, 117, 114, 2, 119, 105, 110, 116, 101, 114, 0, 117, 114, 2, 97, 97, 114, 3, 72, 2, 118, 13, 34, 10, 0,
+			117, 114, 115, 112, 101, 107, 3, 72, 2, 118, 13, 34, 89, 48, 108, 49, 0, 4, 117, 114, 2, 98, 111, 3, 72, 2, 128, 34, 0, 117,
+			114, 2, 100, 97, 103, 0, 117, 114, 2, 112, 114, 105, 101, 109, 0, 117, 114, 2, 114, 101, 105, 115, 0, 117, 114, 2, 115, 107, 121, 110,
+			17, 65, 0, 117, 114, 2, 115, 107, 121, 110, 100, 101, 0, 117, 114, 2, 115, 111, 101, 107, 0, 117, 114, 2, 119, 97, 97, 105, 100, 0,
+			2, 103, 114, 97, 100, 17, 65, 3, 72, 4, 116, 0, 116, 97, 105, 108, 3, 72, 6, 37, 12, 47, 123, 55, 0, 110, 105, 109, 8, 3,
+			72, 7, 108, 50, 13, 65, 0, 110, 107, 101, 110, 2, 100, 3, 72, 7, 108, 68, 49, 13, 50, 0, 4, 1, 10, 2, 110, 101, 32, 3,
+			72, 13, 0, 1, 21, 2, 107, 111, 110, 116, 114, 97, 107, 0, 1, 21, 2, 109, 101, 110, 116, 0, 2, 98, 17, 65, 0, 2, 107, 97,
+			97, 110, 0, 2, 107, 97, 110, 101, 0, 2, 107, 114, 101, 0, 2, 108, 97, 97, 110, 0, 114, 100, 1, 21, 2, 32, 3, 72, 13, 34,
+			47, 0, 112, 97, 114, 116, 101, 2, 109, 101, 110, 116, 3, 72, 13, 48, 2, 35, 34, 47, 13, 0, 112, 111, 115, 105, 116, 111, 3, 72,
+			13, 48, 117, 89, 37, 47, 40, 0, 107, 97, 110, 116, 2, 32, 3, 72, 13, 49, 35, 50, 47, 0, 110, 105, 115, 1, 10, 3, 72, 13,
+			50, 13, 89, 0, 110, 100, 1, 21, 2, 115, 116, 101, 3, 72, 13, 50, 47, 0, 110, 100, 1, 21, 2, 101, 114, 3, 72, 13, 50, 72,
+			0, 108, 101, 8, 2, 103, 17, 65, 3, 72, 13, 55, 13, 0, 108, 101, 1, 110, 117, 107, 2, 25, 3, 72, 13, 55, 108, 0, 108, 105,
+			2, 114, 105, 117, 109, 3, 72, 13, 55, 109, 0, 4, 108, 111, 111, 115, 3, 72, 13, 55, 117, 89, 0, 108, 111, 115, 0, 98, 97, 2,
+			116, 116, 101, 101, 114, 3, 72, 13, 71, 2, 35, 0, 98, 117, 117, 116, 3, 72, 13, 71, 118, 47, 0, 119, 101, 2, 116, 25, 3, 72,
+			13, 84, 108, 0, 112, 111, 116, 2, 32, 3, 72, 108, 48, 2, 40, 0, 107, 97, 100, 101, 2, 115, 3, 72, 108, 49, 6, 115, 72, 13,
+			0, 107, 97, 100, 101, 2, 110, 3, 72, 108, 49, 35, 72, 6, 108, 0, 110, 116, 101, 1, 21, 2, 21, 3, 72, 108, 50, 47, 13, 0,
+			110, 107, 3, 72, 108, 68, 49, 0, 115, 105, 98, 101, 108, 3, 72, 108, 89, 37, 71, 112, 55, 0, 114, 109, 1, 17, 67, 21, 2, 25,
+			3, 72, 112, 34, 14, 65, 0, 114, 103, 101, 8, 3, 72, 112, 34, 136, 13, 0, 4, 114, 100, 101, 1, 101, 101, 119, 116, 3, 72, 113,
+			34, 72, 13, 0, 114, 100, 101, 8, 2, 25, 0, 8, 2, 107, 108, 97, 115, 115, 3, 72, 116, 0, 4, 108, 101, 1, 114, 101, 100, 110,
+			111, 2, 21, 3, 72, 116, 55, 13, 10, 0, 108, 101, 1, 114, 111, 111, 118, 2, 21, 0, 7, 6, 101, 101, 0, 114, 98, 105, 101, 100,
+			119, 3, 2, 116, 34, 71, 2, 37, 47, 84, 0, 114, 119, 8, 3, 2, 116, 34, 84, 0, 4, 110, 2, 100, 114, 97, 103, 21, 3, 2,
+			116, 50, 0, 110, 2, 109, 97, 108, 105, 103, 0, 110, 2, 112, 97, 114, 105, 103, 0, 110, 2, 118, 111, 114, 109, 0, 110, 8, 2, 115,
+			116, 101, 109, 109, 0, 110, 8, 2, 115, 121, 0, 110, 8, 2, 116, 111, 110, 0, 110, 8, 2, 118, 111, 117, 100, 21, 0, 4, 114, 1,
+			21, 2, 24, 3, 6, 116, 34, 0, 114, 1, 107, 105, 0, 114, 1, 108, 111, 17, 65, 0, 114, 1, 109, 109, 0, 114, 1, 109, 114, 0,
+			114, 1, 115, 107, 0, 114, 1, 115, 115, 0, 114, 1, 117, 0, 114, 100, 104, 101, 105, 100, 1, 21, 3, 6, 116, 34, 47, 107, 123, 47,
+			0, 108, 1, 117, 3, 6, 116, 55, 0, 3, 116, 0, 2, 117, 117, 3, 116, 10, 0, 110, 2, 17, 67, 106, 105, 101, 3, 116, 12, 37,
+			68, 0, 4, 114, 1, 102, 115, 3, 116, 34, 0, 114, 1, 104, 0, 114, 1, 107, 21, 0, 114, 1, 107, 115, 0, 114, 1, 108, 17, 65,
+			17, 65, 0, 114, 1, 108, 17, 67, 17, 65, 17, 65, 0, 114, 1, 108, 17, 67, 21, 0, 114, 1, 108, 101, 103, 0, 114, 1, 108, 103,
+			0, 114, 1, 108, 107, 0, 114, 1, 108, 110, 0, 114, 1, 108, 114, 0, 114, 1, 108, 115, 0, 114, 1, 109, 17, 67, 0, 114, 1, 112,
+			101, 0, 114, 1, 115, 17, 67, 0, 114, 1, 116, 110, 171, 195, 105, 114, 111, 0, 114, 1, 118, 17, 65, 17, 65, 0, 114, 1, 118, 17,
+			67, 0, 114, 1, 118, 101, 17, 67, 0, 114, 1, 119, 0, 114, 98, 105, 101, 100, 2, 17, 65, 3, 116, 34, 71, 6, 37, 72, 0, 4,
+			100, 106, 105, 101, 3, 116, 37, 80, 37, 0, 116, 106, 105, 101, 0, 117, 3, 119, 12, 0, 117, 101, 3, 119, 12, 13, 0, 7, 6, 101,
+			110, 0, 101, 109, 109, 101, 108, 3, 2, 37, 50, 112, 65, 13, 55, 0, 4, 1, 17, 67, 17, 65, 17, 67, 2, 115, 105, 101, 101, 17,
+			67, 3, 2, 108, 50, 0, 1, 17, 67, 17, 65, 17, 67, 2, 115, 105, 195, 171, 17, 67, 0, 8, 2, 116, 111, 112, 116, 105, 101, 0,
+			101, 114, 2, 103, 105, 3, 2, 108, 50, 13, 34, 0, 116, 111, 101, 115, 105, 97, 3, 2, 108, 50, 47, 2, 40, 89, 2, 37, 35, 0,
+			107, 101, 108, 2, 118, 111, 117, 100, 105, 3, 2, 108, 50, 49, 13, 55, 0, 115, 105, 107, 108, 111, 112, 101, 3, 2, 108, 50, 89, 2,
+			37, 49, 55, 2, 40, 48, 13, 0, 105, 103, 8, 2, 109, 97, 3, 2, 108, 50, 109, 136, 0, 111, 114, 109, 8, 2, 17, 65, 3, 2,
+			116, 50, 110, 34, 65, 0, 116, 114, 101, 112, 114, 101, 2, 110, 101, 3, 2, 133, 50, 47, 34, 13, 48, 34, 13, 0, 4, 116, 1, 17,
+			67, 21, 2, 25, 3, 6, 108, 50, 47, 0, 116, 1, 17, 67, 21, 2, 101, 32, 0, 115, 105, 101, 1, 17, 67, 2, 25, 3, 6, 108,
+			50, 89, 37, 0, 115, 105, 101, 115, 1, 17, 67, 3, 6, 108, 50, 89, 37, 89, 0, 105, 8, 2, 103, 3, 6, 116, 50, 13, 0, 8,
+			107, 2, 100, 104, 3, 8, 108, 50, 0, 4, 115, 105, 101, 109, 2, 32, 3, 10, 2, 108, 50, 89, 37, 65, 0, 115, 105, 101, 109, 2,
+			101, 32, 0, 115, 101, 109, 98, 108, 101, 3, 10, 2, 133, 50, 89, 133, 65, 71, 114, 0, 4, 1, 10, 2, 17, 67, 32, 3, 13, 50,
+			0, 1, 10, 2, 32, 0, 1, 10, 2, 100, 101, 17, 67, 32, 0, 1, 10, 2, 100, 101, 32, 0, 1, 17, 67, 10, 2, 98, 17, 65,
+			114, 103, 0, 1, 100, 114, 111, 111, 98, 2, 115, 0, 1, 102, 21, 2, 105, 115, 0, 1, 103, 110, 2, 100, 0, 1, 105, 111, 111, 2,
+			115, 0, 1, 107, 17, 67, 97, 118, 2, 17, 67, 0, 1, 107, 21, 2, 115, 107, 97, 112, 0, 1, 109, 2, 105, 115, 0, 105, 101, 114,
+			1, 17, 67, 3, 13, 50, 6, 37, 12, 34, 0, 121, 1, 17, 67, 21, 2, 32, 3, 13, 50, 6, 123, 0, 4, 101, 1, 107, 10, 2,
+			32, 3, 13, 50, 13, 0, 101, 1, 115, 10, 2, 32, 0, 4, 115, 1, 108, 17, 65, 17, 65, 2, 32, 3, 13, 50, 89, 0, 115, 1,
+			108, 101, 118, 2, 32, 0, 115, 1, 108, 108, 117, 118, 2, 32, 0, 115, 1, 112, 112, 111, 17, 67, 0, 115, 119, 97, 97, 114, 1, 21,
+			2, 100, 105, 103, 3, 13, 50, 89, 84, 6, 115, 34, 0, 104, 101, 105, 100, 1, 17, 67, 3, 13, 50, 107, 123, 47, 0, 97, 97, 114,
+			1, 17, 67, 3, 13, 50, 115, 34, 0, 97, 114, 101, 1, 17, 67, 2, 32, 3, 13, 50, 115, 34, 13, 0, 99, 101, 2, 25, 12, 3,
+			21, 0, 116, 106, 105, 101, 1, 107, 10, 3, 37, 68, 80, 37, 0, 116, 106, 105, 101, 1, 114, 112, 3, 108, 12, 37, 68, 49, 2, 37,
+			0, 115, 1, 108, 2, 32, 3, 108, 12, 50, 89, 0, 115, 101, 1, 108, 2, 32, 3, 108, 12, 50, 89, 13, 0, 116, 106, 105, 101, 2,
+			12, 3, 108, 37, 68, 80, 37, 0, 4, 1, 107, 115, 2, 100, 3, 108, 50, 0, 1, 112, 17, 67, 21, 2, 32, 0, 1, 112, 105, 101,
+			114, 98, 0, 1, 116, 111, 112, 2, 17, 67, 0, 110, 1, 112, 17, 67, 21, 2, 101, 0, 4, 116, 1, 110, 101, 2, 12, 12, 3, 108,
+			50, 47, 0, 116, 1, 114, 112, 2, 12, 12, 0, 116, 1, 115, 21, 2, 114, 17, 65, 0, 106, 105, 110, 3, 108, 50, 57, 13, 50, 0,
+			100, 101, 108, 2, 32, 3, 108, 50, 72, 13, 55, 0, 115, 1, 112, 17, 67, 2, 12, 3, 108, 50, 89, 0, 115, 101, 1, 112, 17, 67,
+			2, 108, 101, 32, 3, 108, 50, 89, 116, 0, 4, 1, 10, 2, 107, 32, 3, 108, 68, 0, 103, 1, 10, 2, 32, 0, 103, 101, 2, 108,
+			3, 108, 68, 13, 0, 107, 101, 108, 8, 3, 108, 68, 49, 13, 55, 0, 111, 114, 109, 8, 3, 116, 50, 6, 110, 34, 13, 10, 65, 0,
+			101, 1, 107, 115, 2, 32, 3, 116, 50, 13, 0, 101, 114, 115, 3, 116, 50, 13, 34, 89, 0, 4, 115, 1, 109, 2, 12, 12, 3, 134,
+			50, 89, 0, 115, 1, 114, 103, 0, 115, 1, 119, 0, 115, 105, 101, 1, 109, 2, 25, 3, 134, 50, 89, 2, 37, 0, 7, 6, 103, 101,
+			0, 103, 101, 101, 1, 21, 3, 8, 136, 13, 136, 116, 0, 1, 17, 67, 2, 32, 3, 81, 13, 0, 114, 1, 114, 117, 98, 3, 81, 13,
+			34, 0, 110, 114, 101, 3, 90, 6, 133, 50, 34, 13, 0, 110, 105, 101, 2, 32, 3, 90, 13, 50, 37, 12, 0, 111, 8, 2, 115, 3,
+			136, 2, 37, 2, 40, 0, 114, 8, 2, 109, 97, 3, 136, 2, 112, 34, 0, 114, 117, 2, 98, 121, 110, 3, 136, 2, 116, 34, 2, 111,
+			0, 110, 101, 2, 97, 108, 111, 3, 136, 2, 116, 50, 2, 37, 0, 101, 115, 2, 100, 114, 105, 102, 116, 105, 3, 136, 2, 116, 89, 0,
+			109, 109, 101, 114, 3, 136, 6, 108, 65, 13, 34, 0, 1, 105, 110, 2, 114, 105, 3, 136, 6, 116, 0, 119, 101, 2, 32, 3, 136, 6,
+			116, 84, 13, 0, 4, 119, 101, 110, 100, 1, 21, 2, 32, 3, 136, 6, 116, 84, 13, 50, 47, 0, 119, 101, 110, 100, 1, 21, 2, 115,
+			116, 101, 0, 119, 101, 110, 100, 101, 1, 21, 2, 32, 3, 136, 6, 116, 84, 13, 50, 72, 13, 0, 115, 101, 2, 32, 3, 136, 6, 116,
+			89, 13, 0, 4, 3, 136, 13, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 111, 115, 115, 14, 128, 132, 130, 0, 107, 108, 101, 100,
+			101, 3, 136, 13, 49, 55, 116, 72, 13, 0, 110, 101, 2, 114, 17, 65, 3, 136, 13, 50, 13, 0, 110, 97, 100, 2, 101, 116, 106, 105,
+			101, 3, 136, 13, 50, 115, 72, 0, 110, 97, 100, 101, 3, 136, 13, 50, 115, 72, 13, 0, 110, 101, 2, 114, 105, 101, 25, 3, 136, 13,
+			50, 116, 0, 108, 121, 107, 101, 110, 105, 8, 2, 115, 3, 136, 13, 55, 6, 123, 49, 13, 50, 13, 0, 109, 101, 108, 2, 100, 3, 136,
+			13, 65, 112, 55, 0, 98, 101, 100, 101, 8, 3, 136, 13, 71, 116, 72, 13, 0, 118, 101, 115, 2, 32, 3, 136, 13, 83, 108, 89, 0,
+			119, 101, 108, 2, 119, 3, 136, 13, 84, 6, 112, 55, 0, 4, 119, 101, 108, 2, 100, 3, 136, 13, 84, 112, 55, 0, 119, 101, 108, 2,
+			102, 0, 119, 101, 101, 114, 3, 136, 13, 84, 116, 34, 0, 119, 101, 110, 115, 1, 17, 67, 21, 3, 136, 13, 84, 134, 50, 89, 0, 115,
+			101, 108, 2, 32, 3, 136, 13, 89, 112, 55, 0, 115, 101, 108, 108, 101, 2, 32, 3, 136, 13, 89, 112, 55, 13, 0, 115, 101, 108, 115,
+			3, 136, 13, 89, 112, 55, 89, 0, 103, 101, 119, 101, 110, 115, 3, 136, 13, 136, 116, 84, 13, 50, 89, 0, 4, 1, 17, 65, 2, 116,
+			106, 105, 101, 3, 136, 37, 0, 2, 111, 103, 114, 97, 0, 2, 111, 108, 111, 0, 2, 111, 109, 101, 0, 110, 115, 8, 2, 17, 67, 3,
+			136, 108, 12, 50, 89, 0, 109, 115, 3, 136, 108, 65, 89, 0, 115, 112, 101, 2, 32, 3, 136, 108, 89, 48, 13, 0, 115, 112, 101, 115,
+			2, 32, 3, 136, 108, 89, 48, 13, 89, 0, 4, 2, 107, 32, 3, 136, 112, 0, 2, 107, 103, 0, 2, 107, 104, 0, 2, 107, 107, 0,
+			2, 107, 115, 107, 101, 101, 114, 0, 2, 107, 116, 0, 8, 2, 114, 17, 67, 0, 114, 102, 1, 17, 67, 3, 136, 112, 34, 83, 0, 114,
+			119, 101, 1, 17, 67, 2, 32, 3, 136, 112, 34, 84, 13, 0, 107, 119, 2, 111, 114, 100, 3, 136, 112, 49, 84, 0, 108, 100, 3, 136,
+			112, 55, 47, 0, 108, 100, 2, 105, 110, 17, 67, 3, 136, 112, 55, 47, 10, 0, 108, 100, 2, 105, 110, 103, 3, 136, 112, 55, 72, 0,
+			4, 108, 100, 101, 2, 25, 3, 136, 112, 55, 72, 13, 0, 108, 100, 105, 0, 108, 100, 106, 105, 101, 3, 136, 112, 55, 80, 37, 0, 4,
+			1, 107, 114, 101, 119, 2, 119, 101, 114, 3, 136, 116, 0, 101, 2, 12, 0, 195, 171, 114, 2, 32, 3, 136, 116, 13, 34, 0, 110, 101,
+			2, 32, 3, 136, 116, 50, 13, 0, 110, 105, 116, 2, 105, 101, 17, 67, 3, 136, 116, 50, 13, 47, 0, 110, 117, 115, 3, 136, 116, 50,
+			111, 89, 0, 108, 101, 1, 25, 2, 32, 3, 136, 116, 55, 13, 0, 108, 101, 114, 8, 3, 136, 116, 55, 13, 34, 0, 4, 119, 101, 114,
+			1, 103, 97, 108, 115, 3, 136, 116, 84, 13, 34, 0, 119, 101, 114, 1, 116, 101, 119, 0, 119, 101, 114, 2, 32, 0, 119, 101, 114, 115,
+			2, 32, 3, 136, 116, 84, 13, 34, 89, 0, 119, 101, 110, 115, 2, 103, 3, 136, 116, 84, 13, 50, 89, 0, 119, 101, 108, 3, 136, 116,
+			84, 13, 55, 0, 119, 105, 110, 103, 3, 136, 116, 84, 13, 68, 0, 105, 2, 12, 3, 136, 123, 0, 117, 2, 17, 67, 3, 136, 128, 0,
+			7, 6, 104, 101, 0, 2, 98, 114, 101, 3, 107, 2, 37, 0, 116, 101, 114, 111, 2, 21, 21, 14, 128, 132, 134, 3, 107, 2, 108, 47,
+			14, 34, 2, 40, 0, 107, 8, 2, 116, 97, 3, 107, 2, 108, 49, 0, 114, 8, 2, 21, 14, 128, 132, 131, 3, 107, 2, 112, 34, 0,
+			114, 97, 108, 2, 100, 105, 101, 107, 3, 107, 2, 112, 34, 2, 35, 55, 0, 114, 2, 101, 110, 105, 3, 107, 2, 112, 34, 19, 0, 114,
+			97, 108, 2, 100, 3, 107, 2, 112, 34, 35, 55, 0, 114, 116, 111, 103, 2, 105, 110, 3, 107, 2, 112, 34, 47, 2, 110, 136, 0, 114,
+			109, 97, 102, 114, 111, 2, 100, 105, 3, 107, 2, 112, 34, 65, 2, 35, 83, 34, 2, 40, 0, 114, 109, 101, 2, 108, 121, 110, 3, 107,
+			2, 112, 34, 65, 13, 0, 114, 98, 101, 114, 103, 2, 105, 3, 107, 2, 112, 34, 71, 2, 112, 34, 136, 0, 114, 98, 101, 114, 103, 2,
+			115, 97, 21, 3, 107, 2, 112, 34, 71, 112, 34, 136, 0, 114, 105, 110, 110, 101, 114, 3, 107, 2, 112, 34, 109, 50, 13, 34, 0, 108,
+			2, 100, 105, 110, 3, 107, 2, 112, 55, 0, 108, 105, 2, 107, 111, 112, 3, 107, 2, 112, 55, 2, 37, 0, 108, 100, 2, 104, 97, 102,
+			116, 3, 107, 2, 112, 55, 47, 0, 2, 114, 111, 195, 175, 101, 3, 107, 2, 116, 0, 114, 111, 2, 195, 175, 101, 110, 3, 107, 2, 116,
+			34, 2, 40, 58, 0, 101, 116, 2, 104, 111, 111, 102, 100, 105, 3, 107, 2, 116, 47, 0, 4, 114, 8, 2, 98, 101, 17, 67, 14, 128,
+			132, 131, 3, 107, 6, 112, 34, 0, 114, 8, 2, 118, 101, 114, 14, 128, 132, 131, 0, 114, 100, 101, 114, 3, 107, 6, 112, 34, 72, 13,
+			34, 0, 108, 100, 101, 8, 3, 107, 6, 112, 55, 72, 13, 0, 114, 8, 2, 119, 97, 97, 3, 107, 7, 112, 34, 0, 4, 114, 2, 101,
+			107, 115, 97, 109, 17, 65, 3, 107, 7, 112, 34, 10, 0, 114, 8, 2, 117, 105, 116, 0, 1, 21, 2, 110, 25, 3, 107, 108, 0, 120,
+			2, 17, 67, 3, 107, 108, 49, 89, 0, 107, 115, 101, 2, 17, 67, 3, 107, 108, 49, 89, 13, 0, 109, 2, 17, 67, 3, 107, 108, 65,
+			0, 4, 2, 103, 3, 107, 112, 0, 2, 114, 114, 105, 101, 0, 4, 114, 2, 98, 101, 114, 103, 3, 107, 112, 34, 0, 114, 2, 107, 111,
+			109, 115, 0, 114, 8, 2, 109, 97, 110, 25, 0, 114, 8, 114, 111, 111, 2, 17, 67, 0, 114, 2, 101, 118, 97, 3, 107, 112, 34, 19,
+			0, 114, 116, 122, 111, 103, 3, 107, 112, 34, 47, 89, 110, 136, 0, 114, 116, 111, 103, 3, 107, 112, 34, 47, 110, 136, 0, 114, 102, 115,
+			3, 107, 112, 34, 83, 89, 0, 114, 115, 101, 110, 3, 107, 112, 34, 89, 13, 50, 0, 108, 3, 107, 112, 55, 0, 2, 108, 105, 3, 107,
+			116, 0, 114, 2, 101, 25, 3, 107, 116, 34, 0, 4, 114, 101, 2, 114, 101, 103, 3, 107, 116, 34, 13, 0, 114, 101, 2, 119, 0, 114,
+			101, 8, 2, 108, 0, 101, 114, 101, 110, 2, 103, 114, 97, 99, 3, 107, 116, 34, 13, 50, 0, 101, 114, 115, 101, 114, 3, 107, 116, 34,
+			89, 13, 34, 0, 108, 101, 8, 2, 25, 3, 107, 116, 55, 13, 0, 109, 101, 108, 3, 107, 116, 65, 13, 55, 0, 100, 101, 1, 10, 2,
+			32, 3, 107, 116, 72, 13, 0, 105, 100, 2, 32, 14, 128, 128, 132, 3, 107, 123, 47, 0, 105, 100, 101, 2, 17, 67, 3, 107, 123, 72,
+			13, 0, 7, 6, 105, 110, 0, 4, 105, 115, 105, 2, 17, 65, 3, 2, 37, 50, 2, 37, 91, 2, 37, 0, 105, 115, 105, 2, 101, 17,
+			65, 0, 2, 102, 111, 114, 109, 101, 14, 128, 132, 130, 3, 6, 109, 50, 0, 8, 2, 97, 17, 67, 101, 109, 14, 128, 132, 130, 3, 6,
+			109, 50, 10, 0, 103, 8, 2, 21, 3, 6, 109, 50, 136, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 109, 50, 136, 13, 0,
+			4, 103, 101, 2, 119, 105, 110, 103, 3, 6, 109, 50, 136, 116, 0, 103, 101, 101, 8, 2, 12, 0, 8, 2, 115, 116, 117, 100, 101, 14,
+			128, 132, 130, 3, 7, 109, 50, 0, 8, 2, 101, 110, 116, 3, 7, 109, 50, 10, 0, 4, 1, 17, 67, 2, 97, 115, 101, 109, 3, 10,
+			13, 50, 0, 1, 102, 108, 101, 115, 2, 17, 67, 21, 0, 103, 97, 110, 103, 3, 10, 109, 50, 136, 35, 68, 0, 4, 1, 21, 2, 103,
+			114, 121, 112, 3, 13, 50, 0, 2, 100, 105, 101, 110, 0, 2, 100, 111, 101, 110, 97, 0, 2, 101, 101, 110, 0, 2, 102, 101, 107, 0,
+			2, 104, 97, 108, 105, 103, 0, 2, 104, 101, 101, 109, 115, 0, 2, 104, 101, 103, 116, 101, 110, 0, 2, 107, 101, 110, 110, 0, 2, 115,
+			107, 105, 107, 0, 2, 115, 107, 114, 105, 112, 0, 2, 115, 112, 101, 107, 0, 2, 115, 116, 97, 110, 0, 2, 116, 105, 101, 109, 0, 2,
+			119, 101, 114, 107, 105, 110, 103, 17, 67, 17, 67, 0, 8, 2, 101, 114, 17, 67, 0, 105, 115, 105, 101, 3, 13, 50, 6, 37, 89, 2,
+			37, 0, 116, 117, 195, 175, 3, 13, 50, 47, 2, 40, 12, 37, 0, 116, 101, 2, 103, 114, 101, 3, 13, 50, 47, 13, 0, 4, 116, 101,
+			114, 2, 110, 97, 115, 105, 111, 3, 13, 50, 47, 13, 34, 0, 116, 101, 114, 2, 110, 101, 114, 105, 110, 0, 116, 101, 114, 2, 110, 105,
+			25, 0, 116, 105, 109, 105, 2, 100, 17, 65, 3, 13, 50, 47, 13, 65, 13, 0, 116, 114, 105, 103, 2, 101, 21, 3, 13, 50, 47, 34,
+			2, 37, 136, 0, 116, 114, 111, 8, 2, 17, 67, 3, 13, 50, 47, 34, 2, 40, 0, 116, 114, 105, 103, 101, 3, 13, 50, 47, 34, 37,
+			136, 13, 0, 116, 101, 103, 2, 114, 105, 3, 13, 50, 47, 112, 136, 0, 100, 105, 2, 97, 21, 3, 13, 50, 72, 2, 37, 0, 100, 111,
+			110, 101, 2, 115, 105, 3, 13, 50, 72, 2, 40, 50, 37, 12, 0, 100, 101, 114, 8, 2, 17, 67, 3, 13, 50, 72, 13, 34, 0, 4,
+			100, 105, 118, 105, 3, 13, 50, 72, 13, 84, 13, 0, 100, 105, 119, 105, 0, 100, 105, 115, 2, 107, 114, 3, 13, 50, 72, 13, 89, 0,
+			102, 97, 110, 2, 116, 105, 3, 13, 50, 83, 2, 35, 50, 0, 102, 111, 114, 2, 109, 97, 3, 13, 50, 83, 2, 110, 34, 0, 118, 97,
+			108, 105, 100, 101, 3, 13, 50, 84, 2, 35, 55, 37, 72, 13, 0, 118, 101, 115, 116, 2, 101, 101, 114, 3, 13, 50, 84, 2, 108, 89,
+			47, 0, 118, 101, 115, 116, 101, 2, 114, 21, 3, 13, 50, 84, 2, 108, 89, 47, 116, 0, 115, 105, 2, 100, 101, 110, 116, 3, 13, 50,
+			89, 13, 0, 115, 101, 107, 2, 117, 3, 13, 50, 89, 13, 49, 0, 115, 116, 105, 2, 116, 117, 3, 13, 50, 89, 47, 13, 0, 115, 116,
+			114, 117, 107, 116, 3, 13, 50, 89, 47, 34, 2, 111, 49, 47, 0, 115, 116, 114, 117, 107, 115, 3, 13, 50, 89, 47, 34, 6, 111, 49,
+			89, 0, 110, 101, 109, 101, 110, 3, 13, 50, 116, 65, 13, 50, 0, 110, 117, 101, 110, 100, 111, 3, 13, 50, 118, 12, 6, 108, 50, 72,
+			120, 0, 103, 114, 121, 112, 101, 110, 3, 13, 50, 136, 34, 123, 48, 13, 50, 0, 103, 1, 10, 2, 32, 3, 13, 68, 0, 103, 101, 1,
+			17, 67, 21, 2, 32, 3, 13, 68, 13, 0, 4, 100, 106, 105, 101, 3, 109, 37, 68, 80, 37, 0, 116, 106, 105, 101, 0, 8, 2, 97,
+			21, 14, 128, 132, 130, 3, 109, 50, 0, 8, 2, 111, 101, 3, 109, 50, 10, 0, 98, 101, 8, 2, 108, 17, 67, 3, 109, 50, 71, 2,
+			112, 0, 100, 119, 105, 110, 103, 3, 109, 50, 72, 58, 13, 68, 0, 100, 101, 108, 8, 2, 17, 67, 3, 109, 50, 72, 112, 55, 0, 115,
+			101, 107, 2, 17, 65, 3, 109, 50, 89, 108, 49, 10, 0, 103, 2, 115, 3, 109, 68, 0, 7, 6, 107, 97, 0, 116, 97, 8, 3, 4,
+			49, 35, 47, 35, 0, 4, 1, 21, 2, 110, 111, 110, 3, 49, 2, 35, 0, 2, 106, 97, 107, 0, 2, 109, 97, 115, 0, 2, 110, 97,
+			108, 101, 0, 2, 112, 97, 17, 67, 101, 17, 67, 0, 2, 114, 111, 115, 0, 2, 115, 97, 114, 109, 0, 2, 115, 116, 114, 111, 108, 0,
+			2, 115, 116, 121, 0, 2, 116, 97, 114, 115, 105, 0, 8, 2, 100, 21, 0, 8, 2, 108, 17, 65, 110, 17, 67, 0, 8, 2, 114, 105,
+			101, 110, 0, 8, 2, 115, 116, 97, 0, 8, 2, 115, 116, 101, 21, 0, 8, 2, 116, 111, 0, 8, 2, 116, 114, 0, 4, 114, 2, 100,
+			111, 101, 115, 3, 49, 2, 35, 34, 0, 114, 2, 110, 117, 102, 102, 101, 108, 0, 114, 2, 116, 111, 110, 0, 114, 2, 119, 97, 116, 115,
+			0, 114, 2, 119, 101, 105, 0, 114, 2, 119, 121, 0, 114, 8, 2, 98, 0, 114, 8, 2, 118, 101, 0, 4, 114, 97, 2, 98, 121, 110,
+			3, 49, 2, 35, 34, 2, 35, 0, 114, 97, 2, 107, 111, 101, 108, 0, 114, 97, 109, 101, 108, 3, 49, 2, 35, 34, 2, 35, 65, 112,
+			55, 0, 114, 105, 107, 97, 2, 116, 117, 3, 49, 2, 35, 34, 2, 37, 49, 2, 35, 0, 114, 97, 2, 118, 97, 3, 49, 2, 35, 34,
+			13, 0, 114, 116, 101, 116, 115, 3, 49, 2, 35, 34, 47, 108, 47, 89, 0, 114, 110, 97, 2, 118, 97, 108, 3, 49, 2, 35, 34, 50,
+			2, 35, 0, 114, 109, 111, 115, 121, 110, 3, 49, 2, 35, 34, 65, 2, 40, 89, 123, 50, 0, 114, 109, 101, 2, 110, 97, 97, 100, 106,
+			3, 49, 2, 35, 34, 65, 13, 0, 114, 97, 116, 101, 3, 49, 2, 35, 34, 115, 47, 2, 37, 0, 4, 116, 101, 2, 100, 114, 3, 49,
+			2, 35, 47, 13, 0, 116, 101, 2, 103, 17, 65, 0, 116, 97, 108, 111, 2, 103, 17, 65, 3, 49, 2, 35, 47, 35, 55, 2, 40, 0,
+			116, 107, 105, 2, 115, 17, 65, 3, 49, 2, 35, 47, 49, 13, 0, 112, 2, 116, 101, 105, 110, 3, 49, 2, 35, 48, 0, 112, 97, 2,
+			115, 105, 116, 101, 105, 116, 3, 49, 2, 35, 48, 2, 35, 0, 112, 105, 2, 116, 97, 3, 49, 2, 35, 48, 2, 37, 0, 112, 101, 2,
+			108, 97, 21, 3, 49, 2, 35, 48, 13, 0, 112, 101, 114, 2, 106, 111, 108, 3, 49, 2, 35, 48, 13, 34, 0, 112, 115, 117, 108, 101,
+			3, 49, 2, 35, 48, 89, 118, 55, 13, 0, 112, 111, 8, 2, 17, 67, 3, 49, 2, 35, 48, 110, 0, 112, 101, 2, 108, 3, 49, 2,
+			35, 48, 112, 0, 4, 110, 2, 116, 105, 101, 110, 3, 49, 2, 35, 50, 0, 110, 8, 2, 116, 111, 21, 0, 4, 110, 100, 105, 2, 100,
+			17, 65, 3, 49, 2, 35, 50, 2, 37, 0, 110, 110, 105, 2, 98, 97, 0, 110, 115, 101, 2, 108, 108, 101, 3, 49, 2, 35, 50, 89,
+			13, 0, 4, 110, 111, 2, 32, 3, 49, 2, 35, 50, 117, 0, 110, 111, 8, 2, 118, 97, 97, 114, 0, 4, 108, 2, 98, 97, 115, 3,
+			49, 2, 35, 55, 0, 108, 2, 107, 111, 101, 110, 0, 108, 105, 2, 98, 3, 49, 2, 35, 55, 37, 0, 108, 101, 110, 100, 101, 114, 3,
+			49, 2, 35, 55, 108, 50, 72, 13, 34, 0, 109, 111, 101, 2, 102, 108, 3, 49, 2, 35, 65, 2, 40, 0, 109, 111, 101, 102, 108, 97,
+			103, 101, 3, 49, 2, 35, 65, 2, 40, 83, 55, 115, 90, 0, 109, 101, 114, 97, 100, 101, 3, 49, 2, 35, 65, 13, 34, 115, 72, 13,
+			0, 98, 97, 114, 101, 2, 116, 3, 49, 2, 35, 71, 2, 35, 34, 108, 0, 98, 105, 110, 101, 2, 116, 3, 49, 2, 35, 71, 2, 37,
+			50, 108, 0, 102, 101, 2, 195, 175, 3, 49, 2, 35, 83, 2, 37, 0, 102, 101, 2, 116, 101, 3, 49, 2, 35, 83, 13, 0, 115, 116,
+			97, 2, 110, 106, 101, 116, 3, 49, 2, 35, 89, 47, 2, 35, 0, 115, 107, 101, 2, 110, 97, 100, 101, 3, 49, 2, 35, 89, 49, 13,
+			0, 115, 115, 101, 2, 116, 3, 49, 2, 35, 89, 108, 0, 115, 101, 114, 110, 101, 3, 49, 2, 35, 89, 112, 34, 50, 13, 0, 116, 106,
+			105, 101, 2, 112, 105, 101, 3, 49, 2, 121, 80, 2, 37, 0, 110, 102, 101, 114, 2, 102, 111, 101, 108, 3, 49, 2, 133, 50, 83, 13,
+			34, 0, 116, 101, 103, 111, 114, 105, 101, 115, 3, 49, 4, 35, 47, 13, 136, 6, 117, 34, 37, 89, 0, 116, 101, 103, 111, 114, 105, 101,
+			3, 49, 4, 35, 47, 13, 136, 40, 34, 6, 37, 0, 97, 1, 17, 65, 21, 2, 116, 3, 49, 6, 115, 0, 116, 101, 1, 21, 2, 32,
+			3, 49, 6, 115, 47, 13, 0, 110, 101, 114, 1, 17, 65, 21, 2, 32, 3, 49, 6, 115, 50, 13, 34, 0, 4, 114, 2, 98, 101, 3,
+			49, 35, 34, 0, 114, 2, 118, 101, 110, 0, 114, 2, 118, 101, 114, 0, 116, 101, 103, 111, 114, 2, 105, 115, 17, 65, 3, 49, 35, 47,
+			13, 136, 40, 34, 0, 110, 116, 2, 111, 110, 100, 101, 114, 3, 49, 35, 50, 47, 10, 0, 110, 115, 101, 2, 108, 25, 3, 49, 35, 50,
+			89, 13, 0, 108, 97, 104, 97, 114, 105, 3, 49, 35, 55, 35, 107, 6, 115, 34, 37, 0, 4, 108, 109, 101, 101, 114, 3, 49, 35, 55,
+			65, 6, 116, 34, 0, 108, 109, 101, 114, 2, 17, 65, 0, 108, 119, 101, 114, 3, 49, 35, 55, 84, 13, 34, 10, 0, 109, 101, 114, 2,
+			97, 116, 106, 105, 101, 3, 49, 35, 65, 13, 34, 0, 109, 101, 114, 97, 97, 3, 49, 35, 65, 13, 34, 6, 115, 0, 109, 101, 114, 97,
+			3, 49, 35, 65, 13, 34, 35, 0, 98, 101, 108, 106, 111, 117, 3, 49, 35, 71, 13, 55, 57, 6, 120, 0, 100, 2, 109, 105, 117, 109,
+			3, 49, 35, 72, 0, 115, 116, 101, 114, 2, 111, 108, 105, 101, 3, 49, 35, 89, 47, 13, 34, 10, 0, 2, 100, 101, 114, 3, 49, 115,
+			0, 116, 101, 108, 1, 25, 3, 49, 115, 47, 13, 55, 0, 107, 101, 2, 17, 67, 3, 49, 115, 49, 13, 0, 4, 109, 101, 114, 3, 49,
+			115, 65, 13, 34, 0, 109, 101, 114, 2, 17, 67, 0, 98, 101, 108, 3, 49, 115, 71, 13, 55, 0, 110, 102, 101, 114, 3, 49, 133, 50,
+			83, 13, 34, 10, 0, 7, 6, 107, 111, 0, 4, 2, 107, 101, 116, 25, 3, 49, 2, 40, 0, 2, 107, 111, 110, 0, 2, 108, 111, 109,
+			0, 2, 108, 111, 110, 105, 0, 2, 109, 101, 100, 105, 0, 2, 109, 101, 116, 101, 0, 2, 114, 97, 0, 2, 114, 105, 110, 116, 0, 2,
+			114, 114, 117, 112, 0, 2, 195, 182, 0, 8, 2, 109, 105, 101, 107, 0, 8, 2, 109, 109, 111, 0, 8, 2, 112, 105, 101, 21, 0, 101,
+			2, 106, 97, 119, 101, 108, 0, 101, 2, 112, 108, 101, 116, 0, 101, 2, 112, 111, 110, 0, 101, 2, 114, 17, 65, 0, 114, 114, 101, 107,
+			3, 49, 2, 40, 34, 108, 49, 0, 114, 101, 110, 2, 116, 3, 49, 2, 40, 34, 108, 50, 0, 117, 107, 97, 2, 115, 105, 195, 171, 3,
+			49, 2, 40, 49, 115, 0, 110, 110, 101, 107, 3, 49, 2, 40, 50, 108, 49, 0, 101, 108, 2, 98, 108, 111, 101, 3, 49, 2, 40, 55,
+			0, 108, 108, 101, 2, 107, 116, 17, 65, 3, 49, 2, 40, 55, 2, 108, 0, 108, 108, 101, 2, 107, 116, 101, 25, 3, 49, 2, 40, 55,
+			108, 0, 108, 108, 101, 107, 2, 115, 3, 49, 2, 40, 55, 108, 49, 0, 108, 111, 2, 115, 25, 3, 49, 2, 40, 55, 110, 0, 108, 111,
+			110, 110, 101, 3, 49, 2, 40, 55, 110, 50, 13, 0, 108, 108, 101, 103, 97, 3, 49, 2, 40, 55, 116, 136, 2, 35, 0, 109, 101, 100,
+			105, 2, 97, 110, 116, 3, 49, 2, 40, 65, 2, 37, 72, 2, 37, 0, 109, 109, 97, 110, 100, 111, 3, 49, 2, 40, 65, 35, 50, 72,
+			40, 0, 109, 109, 105, 115, 115, 105, 101, 3, 49, 2, 40, 65, 37, 89, 2, 37, 0, 109, 97, 116, 105, 2, 25, 3, 49, 2, 40, 65,
+			115, 47, 2, 37, 0, 101, 118, 101, 114, 2, 116, 3, 49, 2, 40, 83, 112, 34, 0, 4, 114, 2, 115, 101, 116, 3, 49, 2, 110, 34,
+			0, 114, 8, 2, 100, 17, 65, 0, 114, 114, 101, 107, 116, 105, 101, 119, 101, 3, 49, 2, 110, 34, 2, 108, 49, 47, 37, 84, 13, 0,
+			114, 114, 105, 103, 2, 101, 3, 49, 2, 110, 34, 13, 136, 0, 4, 114, 116, 2, 115, 105, 103, 116, 105, 103, 3, 49, 2, 110, 34, 47,
+			0, 114, 116, 2, 115, 116, 111, 110, 100, 0, 114, 112, 111, 2, 114, 97, 97, 108, 3, 49, 2, 110, 34, 48, 13, 0, 112, 117, 2, 108,
+			17, 65, 3, 49, 2, 110, 48, 2, 118, 0, 107, 107, 101, 8, 2, 17, 67, 3, 49, 2, 110, 49, 13, 0, 110, 8, 2, 17, 67, 21,
+			14, 128, 132, 131, 3, 49, 2, 110, 50, 0, 110, 116, 114, 97, 2, 100, 105, 107, 115, 3, 49, 2, 110, 50, 47, 34, 2, 35, 0, 110,
+			116, 114, 97, 115, 101, 112, 3, 49, 2, 110, 50, 47, 34, 2, 35, 89, 108, 48, 0, 110, 116, 114, 111, 118, 101, 114, 2, 115, 3, 49,
+			2, 110, 50, 47, 34, 2, 40, 84, 112, 34, 0, 110, 116, 114, 97, 112, 2, 115, 105, 101, 3, 49, 2, 110, 50, 47, 34, 35, 48, 0,
+			110, 116, 114, 97, 107, 8, 3, 49, 2, 110, 50, 47, 34, 35, 49, 0, 110, 116, 114, 97, 115, 8, 3, 49, 2, 110, 50, 47, 34, 35,
+			89, 0, 110, 116, 97, 107, 2, 17, 65, 3, 49, 2, 110, 50, 47, 35, 49, 10, 0, 110, 100, 101, 110, 2, 115, 101, 3, 49, 2, 110,
+			50, 72, 2, 108, 50, 0, 110, 102, 101, 114, 2, 101, 3, 49, 2, 110, 50, 83, 13, 34, 0, 110, 102, 101, 114, 101, 110, 3, 49, 2,
+			110, 50, 83, 13, 34, 108, 50, 0, 4, 110, 115, 117, 108, 2, 17, 65, 3, 49, 2, 110, 50, 89, 2, 111, 55, 0, 110, 115, 117, 108,
+			2, 116, 97, 110, 116, 0, 110, 115, 101, 110, 2, 116, 114, 105, 101, 3, 49, 2, 110, 50, 89, 7, 108, 50, 0, 110, 115, 101, 2, 107,
+			119, 101, 110, 3, 49, 2, 110, 50, 89, 13, 0, 110, 115, 101, 114, 116, 105, 110, 97, 3, 49, 2, 110, 50, 89, 13, 34, 47, 37, 50,
+			2, 35, 0, 110, 115, 101, 114, 118, 3, 49, 2, 110, 50, 89, 13, 34, 84, 0, 110, 115, 101, 110, 2, 116, 114, 3, 49, 2, 110, 50,
+			89, 13, 50, 0, 110, 115, 105, 100, 101, 2, 114, 17, 65, 3, 49, 2, 110, 50, 89, 13, 72, 13, 0, 110, 115, 105, 115, 116, 3, 49,
+			2, 110, 50, 89, 13, 89, 47, 0, 110, 115, 116, 105, 2, 116, 117, 115, 105, 3, 49, 2, 110, 50, 89, 47, 13, 0, 110, 115, 116, 97,
+			98, 101, 108, 3, 49, 2, 110, 50, 89, 47, 115, 71, 13, 55, 0, 110, 115, 101, 112, 2, 17, 65, 3, 49, 2, 110, 50, 89, 108, 48,
+			10, 0, 4, 108, 2, 106, 97, 110, 3, 49, 2, 110, 55, 0, 108, 2, 119, 121, 110, 0, 4, 109, 2, 112, 108, 17, 65, 3, 49, 2,
+			110, 65, 0, 109, 2, 112, 111, 115, 105, 115, 105, 101, 0, 109, 109, 97, 110, 2, 100, 17, 65, 3, 49, 2, 110, 65, 2, 35, 50, 0,
+			109, 109, 101, 114, 2, 115, 105, 3, 49, 2, 110, 65, 2, 112, 34, 0, 109, 109, 117, 2, 110, 97, 3, 49, 2, 110, 65, 2, 118, 0,
+			109, 105, 2, 116, 101, 101, 3, 49, 2, 110, 65, 13, 0, 109, 109, 101, 110, 2, 116, 97, 3, 49, 2, 110, 65, 13, 50, 0, 109, 109,
+			105, 115, 115, 97, 114, 105, 2, 97, 3, 49, 2, 110, 65, 13, 89, 2, 35, 34, 2, 37, 0, 109, 112, 97, 110, 2, 106, 105, 101, 3,
+			49, 2, 110, 65, 48, 2, 35, 50, 0, 109, 112, 114, 111, 2, 109, 105, 101, 3, 49, 2, 110, 65, 48, 34, 2, 40, 0, 109, 107, 111,
+			109, 109, 101, 114, 3, 49, 2, 110, 65, 49, 110, 65, 13, 34, 0, 109, 98, 101, 114, 115, 3, 49, 2, 110, 65, 71, 113, 34, 89, 0,
+			109, 98, 117, 105, 115, 3, 49, 2, 110, 65, 71, 127, 89, 0, 110, 103, 2, 111, 116, 111, 109, 105, 101, 3, 49, 2, 110, 68, 81, 0,
+			4, 115, 2, 109, 101, 116, 3, 49, 2, 110, 89, 0, 115, 2, 116, 117, 0, 115, 109, 111, 2, 112, 111, 108, 105, 3, 49, 2, 110, 89,
+			65, 2, 40, 0, 115, 109, 101, 2, 116, 105, 101, 107, 3, 49, 2, 110, 89, 65, 13, 0, 107, 97, 2, 195, 175, 3, 49, 2, 117, 49,
+			2, 35, 0, 110, 105, 110, 103, 2, 105, 110, 3, 49, 2, 117, 50, 13, 68, 0, 100, 101, 2, 114, 105, 110, 103, 3, 49, 2, 117, 72,
+			116, 0, 117, 2, 115, 97, 21, 3, 49, 2, 120, 0, 108, 111, 2, 115, 115, 97, 3, 49, 4, 110, 55, 40, 0, 110, 103, 111, 2, 25,
+			3, 49, 4, 110, 68, 81, 40, 0, 110, 8, 2, 100, 105, 103, 3, 49, 6, 110, 50, 0, 110, 116, 114, 97, 8, 2, 25, 14, 128, 132,
+			134, 3, 49, 6, 110, 50, 47, 34, 35, 0, 108, 108, 101, 103, 101, 115, 2, 32, 3, 49, 6, 110, 55, 37, 75, 13, 89, 0, 101, 2,
+			114, 101, 110, 100, 3, 49, 40, 0, 101, 195, 171, 108, 3, 49, 40, 12, 55, 0, 112, 2, 111, 3, 49, 110, 48, 19, 0, 110, 2, 115,
+			117, 108, 3, 49, 110, 50, 0, 110, 110, 101, 107, 116, 101, 101, 114, 3, 49, 110, 50, 108, 49, 47, 6, 116, 34, 0, 108, 111, 110, 101,
+			108, 3, 49, 110, 55, 13, 50, 6, 112, 55, 0, 108, 108, 101, 103, 101, 3, 49, 110, 55, 37, 75, 0, 110, 107, 101, 108, 3, 49, 110,
+			68, 49, 13, 55, 0, 110, 107, 97, 8, 2, 25, 3, 49, 110, 68, 49, 35, 0, 115, 2, 116, 101, 114, 109, 3, 49, 110, 89, 0, 115,
+			116, 101, 3, 49, 110, 89, 47, 13, 0, 98, 114, 97, 3, 49, 117, 71, 34, 35, 0, 7, 6, 109, 97, 0, 110, 117, 2, 115, 107, 3,
+			4, 65, 35, 50, 118, 0, 4, 2, 103, 105, 115, 116, 101, 114, 3, 65, 2, 35, 0, 2, 103, 114, 105, 101, 116, 0, 2, 104, 17, 65,
+			0, 2, 107, 97, 115, 115, 97, 114, 0, 2, 107, 105, 101, 116, 105, 101, 0, 2, 107, 114, 105, 101, 108, 0, 2, 116, 101, 115, 105, 115,
+			0, 2, 116, 114, 0, 8, 2, 100, 0, 8, 2, 114, 17, 65, 0, 2, 114, 105, 116, 122, 3, 65, 2, 35, 6, 0, 114, 2, 115, 106,
+			101, 3, 65, 2, 35, 34, 0, 114, 105, 111, 2, 110, 101, 116, 3, 65, 2, 35, 34, 2, 37, 2, 40, 0, 114, 105, 101, 1, 21, 2,
+			32, 3, 65, 2, 35, 34, 6, 37, 0, 114, 105, 2, 116, 105, 101, 109, 3, 65, 2, 35, 34, 13, 0, 114, 105, 110, 101, 2, 25, 3,
+			65, 2, 35, 34, 37, 50, 13, 0, 114, 109, 111, 2, 115, 101, 116, 3, 65, 2, 35, 34, 65, 2, 40, 0, 114, 109, 101, 108, 97, 100,
+			101, 3, 65, 2, 35, 34, 65, 13, 55, 115, 72, 13, 0, 114, 103, 97, 2, 114, 105, 3, 65, 2, 35, 34, 136, 2, 35, 0, 116, 101,
+			114, 105, 2, 17, 65, 21, 3, 65, 2, 35, 47, 2, 116, 34, 2, 37, 0, 116, 101, 2, 109, 97, 116, 105, 3, 65, 2, 35, 47, 13,
+			0, 116, 101, 114, 105, 101, 2, 12, 3, 65, 2, 35, 47, 116, 34, 2, 37, 0, 107, 97, 2, 112, 97, 97, 110, 3, 65, 2, 35, 49,
+			2, 35, 0, 99, 97, 100, 97, 109, 105, 97, 3, 65, 2, 35, 49, 2, 35, 72, 115, 65, 2, 37, 38, 2, 35, 0, 99, 104, 105, 97,
+			118, 101, 3, 65, 2, 35, 49, 2, 37, 2, 35, 84, 108, 0, 107, 115, 105, 2, 109, 97, 21, 3, 65, 2, 35, 49, 89, 2, 37, 0,
+			107, 97, 98, 101, 114, 3, 65, 2, 35, 49, 115, 71, 13, 34, 0, 4, 110, 2, 100, 97, 3, 65, 2, 35, 50, 0, 110, 2, 104, 97,
+			102, 116, 0, 110, 2, 109, 111, 101, 0, 110, 2, 115, 106, 101, 116, 0, 110, 105, 2, 107, 117, 3, 65, 2, 35, 50, 2, 37, 0, 110,
+			105, 112, 117, 3, 65, 2, 35, 50, 2, 37, 48, 2, 118, 0, 4, 110, 101, 2, 119, 97, 108, 101, 3, 65, 2, 35, 50, 13, 0, 110,
+			110, 101, 2, 107, 121, 110, 0, 110, 106, 105, 2, 102, 105, 101, 3, 65, 2, 35, 50, 57, 13, 0, 110, 100, 111, 2, 108, 105, 101, 110,
+			3, 65, 2, 35, 50, 72, 2, 40, 0, 110, 101, 2, 108, 3, 65, 2, 35, 50, 112, 0, 108, 2, 103, 97, 115, 3, 65, 2, 35, 55,
+			0, 108, 97, 2, 103, 105, 101, 116, 3, 65, 2, 35, 55, 2, 35, 0, 108, 116, 101, 8, 2, 115, 17, 65, 3, 65, 2, 35, 55, 47,
+			116, 0, 109, 2, 112, 111, 101, 114, 3, 65, 2, 35, 65, 0, 115, 111, 2, 99, 104, 105, 115, 3, 65, 2, 35, 89, 2, 40, 0, 99,
+			101, 100, 111, 2, 110, 17, 65, 3, 65, 2, 35, 89, 13, 72, 117, 0, 115, 116, 101, 107, 116, 111, 2, 109, 3, 65, 2, 35, 89, 47,
+			108, 49, 47, 2, 40, 0, 115, 107, 101, 114, 2, 97, 100, 101, 3, 65, 2, 35, 89, 49, 13, 34, 0, 115, 107, 97, 114, 97, 3, 65,
+			2, 35, 89, 49, 115, 34, 2, 35, 0, 115, 106, 105, 2, 110, 97, 21, 3, 65, 2, 35, 91, 2, 37, 0, 103, 2, 110, 17, 65, 21,
+			3, 65, 2, 35, 136, 0, 103, 97, 2, 115, 121, 110, 3, 65, 2, 35, 136, 2, 35, 0, 103, 105, 115, 2, 116, 114, 97, 3, 65, 2,
+			35, 136, 2, 37, 89, 0, 103, 97, 2, 108, 105, 101, 3, 65, 2, 35, 136, 35, 0, 110, 105, 97, 2, 107, 3, 65, 2, 115, 50, 2,
+			37, 38, 2, 35, 0, 106, 101, 115, 116, 117, 3, 65, 2, 115, 57, 13, 89, 47, 2, 118, 0, 106, 101, 115, 116, 101, 105, 116, 108, 105,
+			3, 65, 2, 115, 57, 13, 89, 47, 123, 47, 55, 13, 0, 100, 101, 2, 108, 105, 101, 3, 65, 2, 115, 72, 13, 0, 121, 111, 110, 110,
+			97, 105, 115, 101, 3, 65, 2, 123, 57, 2, 40, 50, 123, 12, 88, 0, 116, 105, 103, 1, 21, 3, 65, 6, 115, 47, 13, 136, 0, 116,
+			105, 101, 115, 3, 65, 6, 115, 47, 37, 89, 0, 110, 105, 101, 114, 3, 65, 13, 50, 37, 12, 34, 0, 115, 106, 105, 101, 110, 3, 65,
+			13, 91, 37, 50, 0, 114, 97, 116, 2, 111, 110, 3, 65, 35, 34, 2, 35, 47, 0, 114, 97, 116, 104, 111, 110, 3, 65, 35, 34, 2,
+			35, 47, 2, 110, 50, 10, 0, 114, 109, 101, 114, 3, 65, 35, 34, 65, 13, 34, 10, 0, 107, 105, 101, 1, 21, 2, 115, 105, 101, 3,
+			65, 35, 49, 6, 37, 0, 107, 114, 97, 110, 107, 97, 1, 21, 3, 65, 35, 49, 34, 6, 35, 50, 49, 35, 0, 110, 105, 102, 101, 115,
+			3, 65, 35, 50, 37, 83, 108, 89, 0, 108, 1, 10, 2, 32, 14, 128, 128, 131, 3, 65, 35, 55, 0, 108, 97, 114, 105, 97, 3, 65,
+			35, 55, 6, 115, 34, 37, 35, 0, 108, 108, 101, 115, 2, 32, 3, 65, 35, 55, 13, 89, 0, 108, 118, 97, 2, 25, 3, 65, 35, 55,
+			83, 2, 35, 0, 110, 103, 111, 8, 3, 65, 35, 68, 81, 2, 40, 0, 115, 107, 101, 114, 3, 65, 35, 89, 49, 13, 34, 0, 2, 116,
+			114, 105, 107, 25, 3, 65, 115, 0, 110, 105, 2, 97, 107, 25, 3, 65, 115, 50, 2, 37, 0, 2, 98, 105, 101, 107, 3, 89, 0, 7,
+			6, 109, 101, 0, 116, 101, 2, 111, 3, 65, 2, 37, 47, 2, 37, 0, 116, 101, 111, 2, 114, 105, 101, 116, 3, 65, 2, 37, 47, 2,
+			37, 2, 40, 0, 116, 97, 8, 2, 17, 67, 3, 65, 2, 108, 47, 2, 35, 0, 110, 2, 116, 97, 115, 105, 101, 3, 65, 2, 108, 50,
+			0, 110, 111, 112, 111, 117, 2, 115, 97, 3, 65, 2, 108, 50, 2, 40, 48, 2, 120, 0, 110, 117, 101, 2, 116, 3, 65, 2, 108, 50,
+			2, 118, 12, 38, 108, 0, 110, 116, 97, 108, 105, 2, 116, 101, 105, 116, 3, 65, 2, 108, 50, 47, 2, 35, 55, 2, 37, 0, 110, 115,
+			116, 114, 117, 3, 65, 2, 108, 50, 89, 47, 34, 2, 118, 0, 4, 108, 97, 110, 99, 104, 3, 65, 2, 108, 55, 2, 35, 68, 49, 0,
+			108, 97, 110, 107, 0, 4, 108, 97, 110, 99, 104, 111, 108, 105, 101, 2, 32, 24, 3, 65, 2, 108, 55, 2, 35, 68, 49, 2, 117, 55,
+			37, 0, 108, 97, 110, 107, 111, 108, 105, 101, 2, 32, 24, 0, 108, 111, 100, 105, 8, 2, 101, 117, 3, 65, 2, 108, 55, 2, 40, 72,
+			2, 37, 0, 109, 2, 98, 114, 97, 3, 65, 2, 108, 65, 0, 109, 111, 2, 114, 17, 65, 3, 65, 2, 108, 65, 2, 40, 0, 109, 111,
+			114, 97, 2, 98, 105, 108, 105, 3, 65, 2, 108, 65, 2, 110, 34, 2, 35, 0, 109, 111, 2, 114, 105, 17, 65, 3, 65, 2, 108, 65,
+			117, 0, 100, 105, 2, 116, 17, 65, 3, 65, 2, 108, 72, 2, 37, 0, 100, 105, 116, 101, 2, 114, 114, 101, 3, 65, 2, 108, 72, 2,
+			37, 47, 13, 0, 100, 105, 115, 105, 2, 110, 97, 21, 3, 65, 2, 108, 72, 13, 89, 2, 37, 0, 4, 101, 2, 100, 111, 195, 171, 3,
+			65, 2, 116, 0, 101, 2, 119, 97, 114, 0, 101, 114, 2, 118, 111, 117, 100, 105, 103, 3, 65, 2, 116, 34, 0, 101, 114, 100, 101, 114,
+			2, 106, 97, 114, 3, 65, 2, 116, 34, 72, 13, 34, 0, 4, 100, 101, 2, 100, 111, 195, 171, 3, 65, 2, 116, 72, 13, 0, 100, 101,
+			2, 112, 108, 105, 103, 0, 100, 101, 8, 2, 108, 121, 0, 101, 115, 116, 101, 114, 101, 3, 65, 2, 116, 89, 47, 13, 34, 108, 0, 110,
+			116, 106, 105, 101, 3, 65, 6, 108, 37, 68, 80, 37, 0, 110, 116, 3, 65, 6, 108, 50, 47, 0, 108, 111, 8, 2, 100, 114, 3, 65,
+			6, 108, 55, 40, 0, 110, 105, 110, 103, 3, 65, 6, 116, 50, 13, 68, 0, 100, 101, 8, 2, 21, 14, 128, 132, 132, 3, 65, 6, 116,
+			72, 13, 0, 101, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 65, 6, 116, 136, 13, 0, 4, 2, 106, 117, 102, 3, 65, 13, 0, 2,
+			108, 97, 97, 116, 115, 0, 2, 114, 105, 101, 116, 101, 0, 2, 116, 111, 100, 0, 8, 2, 100, 117, 17, 67, 0, 114, 105, 110, 111, 3,
+			65, 13, 34, 37, 50, 2, 40, 0, 116, 97, 108, 101, 3, 65, 13, 47, 6, 115, 55, 13, 0, 116, 111, 100, 101, 3, 65, 13, 47, 6,
+			117, 72, 13, 0, 116, 97, 97, 2, 17, 67, 3, 65, 13, 47, 115, 0, 107, 97, 97, 114, 3, 65, 13, 49, 6, 115, 34, 0, 107, 97,
+			97, 114, 103, 101, 3, 65, 13, 49, 6, 115, 34, 136, 13, 0, 110, 101, 101, 114, 3, 65, 13, 50, 6, 116, 34, 0, 110, 101, 114, 101,
+			3, 65, 13, 50, 6, 116, 34, 13, 0, 108, 111, 100, 105, 101, 115, 8, 3, 65, 13, 55, 6, 117, 72, 37, 89, 0, 100, 97, 108, 2,
+			106, 111, 110, 3, 65, 13, 72, 2, 35, 55, 0, 100, 105, 115, 121, 110, 101, 3, 65, 13, 72, 13, 89, 123, 50, 13, 0, 100, 97, 108,
+			106, 101, 3, 65, 13, 72, 35, 55, 57, 13, 0, 118, 114, 111, 117, 3, 65, 13, 83, 34, 6, 120, 0, 103, 97, 110, 105, 101, 115, 3,
+			65, 13, 136, 6, 115, 50, 37, 89, 0, 2, 100, 105, 117, 109, 3, 65, 37, 12, 0, 100, 105, 97, 3, 65, 37, 12, 72, 37, 12, 57,
+			35, 4, 0, 2, 114, 114, 105, 101, 3, 65, 108, 0, 116, 101, 101, 110, 3, 65, 108, 47, 10, 6, 116, 50, 0, 116, 111, 100, 105, 115,
+			3, 65, 108, 47, 40, 72, 6, 109, 89, 0, 110, 105, 110, 103, 2, 105, 116, 105, 115, 3, 65, 108, 50, 13, 68, 136, 0, 110, 116, 101,
+			101, 2, 17, 67, 3, 65, 108, 50, 47, 6, 116, 0, 110, 116, 101, 114, 105, 110, 103, 3, 65, 108, 50, 47, 6, 116, 34, 13, 68, 0,
+			110, 116, 101, 108, 101, 2, 25, 3, 65, 108, 50, 47, 6, 116, 55, 13, 0, 108, 111, 100, 105, 101, 8, 3, 65, 108, 55, 40, 72, 6,
+			37, 0, 110, 103, 2, 115, 101, 108, 3, 65, 108, 68, 0, 4, 115, 1, 102, 101, 104, 2, 32, 3, 65, 108, 89, 0, 115, 1, 108, 101,
+			102, 97, 116, 2, 32, 0, 115, 1, 115, 17, 65, 17, 65, 2, 32, 0, 115, 1, 115, 17, 67, 2, 32, 0, 115, 1, 121, 110, 115, 2,
+			32, 0, 115, 8, 2, 97, 97, 110, 3, 65, 108, 89, 10, 0, 4, 114, 107, 1, 101, 116, 3, 65, 112, 34, 49, 0, 114, 107, 2, 32,
+			0, 114, 107, 101, 2, 32, 3, 65, 112, 34, 49, 13, 0, 2, 116, 114, 117, 109, 3, 65, 116, 0, 114, 101, 1, 17, 67, 21, 2, 32,
+			3, 65, 116, 12, 34, 13, 0, 116, 101, 108, 8, 3, 65, 116, 47, 13, 55, 0, 7, 6, 109, 105, 0, 2, 110, 101, 117, 114, 3, 65,
+			2, 37, 0, 114, 97, 107, 117, 2, 108, 101, 117, 115, 3, 65, 2, 37, 34, 2, 35, 49, 2, 118, 0, 107, 114, 111, 98, 101, 3, 65,
+			2, 37, 49, 34, 117, 71, 13, 0, 110, 105, 2, 109, 97, 21, 3, 65, 2, 37, 50, 2, 37, 0, 97, 97, 117, 3, 65, 2, 37, 129,
+			12, 0, 110, 97, 103, 3, 65, 6, 109, 50, 35, 136, 0, 100, 100, 97, 103, 101, 116, 101, 3, 65, 6, 109, 72, 35, 136, 10, 116, 47,
+			13, 0, 115, 2, 108, 105, 107, 3, 65, 6, 109, 89, 0, 4, 2, 109, 105, 101, 107, 3, 65, 13, 0, 2, 109, 111, 115, 97, 0, 2,
+			115, 115, 105, 101, 108, 0, 114, 97, 107, 101, 108, 3, 65, 13, 34, 115, 49, 13, 55, 0, 110, 97, 114, 101, 2, 116, 3, 65, 13, 50,
+			2, 35, 34, 108, 0, 110, 105, 115, 116, 101, 114, 115, 3, 65, 13, 50, 6, 109, 89, 47, 13, 34, 89, 0, 110, 117, 2, 115, 107, 117,
+			3, 65, 13, 50, 13, 0, 4, 110, 100, 101, 114, 2, 106, 97, 114, 3, 65, 13, 50, 13, 34, 0, 110, 101, 114, 2, 17, 65, 0, 110,
+			105, 115, 116, 101, 114, 105, 3, 65, 13, 50, 13, 89, 47, 2, 116, 34, 2, 37, 0, 110, 105, 115, 116, 101, 2, 114, 105, 101, 25, 3,
+			65, 13, 50, 13, 89, 47, 116, 0, 108, 2, 106, 17, 65, 3, 65, 13, 55, 0, 108, 105, 116, 3, 65, 13, 55, 13, 47, 0, 108, 105,
+			101, 117, 3, 65, 13, 55, 57, 118, 0, 108, 108, 101, 2, 110, 110, 105, 17, 65, 3, 65, 13, 55, 108, 0, 100, 100, 101, 108, 2, 106,
+			97, 114, 105, 3, 65, 13, 72, 13, 55, 0, 4, 115, 2, 103, 105, 115, 3, 65, 13, 89, 0, 115, 2, 103, 117, 110, 0, 115, 2, 104,
+			97, 0, 115, 2, 108, 0, 115, 2, 110, 111, 101, 103, 0, 115, 2, 112, 108, 97, 97, 115, 0, 115, 2, 114, 97, 98, 101, 108, 0, 115,
+			2, 114, 101, 107, 101, 110, 0, 115, 2, 116, 105, 101, 107, 0, 115, 2, 116, 114, 111, 111, 115, 0, 115, 2, 118, 111, 114, 109, 0, 115,
+			8, 2, 105, 110, 14, 128, 132, 131, 0, 115, 8, 2, 109, 0, 115, 101, 2, 114, 97, 0, 115, 116, 101, 114, 2, 105, 101, 117, 115, 3,
+			65, 13, 89, 47, 116, 34, 0, 115, 107, 101, 2, 110, 3, 65, 13, 89, 49, 108, 0, 2, 115, 115, 105, 101, 3, 65, 37, 0, 107, 114,
+			2, 111, 3, 65, 37, 49, 34, 0, 100, 100, 101, 2, 108, 3, 65, 109, 72, 13, 0, 100, 100, 101, 108, 108, 105, 2, 107, 3, 65, 109,
+			72, 13, 55, 13, 0, 4, 115, 2, 108, 97, 109, 112, 3, 65, 109, 89, 0, 115, 2, 108, 111, 111, 112, 0, 115, 2, 111, 0, 7, 6,
+			109, 111, 0, 4, 2, 112, 97, 110, 105, 3, 65, 2, 40, 0, 101, 2, 114, 97, 115, 0, 116, 111, 114, 2, 105, 101, 3, 65, 2, 40,
+			47, 117, 34, 0, 4, 108, 101, 115, 2, 25, 3, 65, 2, 40, 55, 108, 89, 0, 108, 101, 115, 2, 116, 101, 32, 0, 100, 101, 114, 110,
+			3, 65, 2, 40, 72, 112, 34, 14, 50, 0, 104, 97, 109, 109, 101, 100, 2, 97, 3, 65, 2, 40, 107, 2, 35, 65, 13, 72, 0, 4,
+			2, 100, 117, 108, 17, 65, 3, 65, 2, 110, 0, 2, 115, 107, 101, 101, 0, 4, 114, 2, 102, 111, 115, 101, 3, 65, 2, 110, 34, 0,
+			114, 8, 2, 17, 67, 21, 0, 114, 102, 2, 111, 116, 111, 109, 105, 101, 3, 65, 2, 110, 34, 83, 0, 122, 122, 97, 114, 101, 108, 108,
+			97, 3, 65, 2, 110, 47, 89, 2, 35, 34, 112, 55, 2, 35, 0, 110, 2, 116, 101, 117, 114, 3, 65, 2, 110, 50, 0, 110, 105, 116,
+			2, 101, 3, 65, 2, 110, 50, 2, 37, 47, 0, 110, 117, 2, 109, 101, 110, 116, 3, 65, 2, 110, 50, 2, 118, 0, 110, 101, 2, 116,
+			195, 170, 114, 3, 65, 2, 110, 50, 13, 0, 110, 100, 101, 114, 2, 17, 65, 3, 65, 2, 110, 50, 72, 116, 34, 0, 108, 101, 115, 2,
+			116, 17, 65, 3, 65, 2, 110, 55, 13, 89, 0, 110, 8, 2, 103, 111, 21, 3, 65, 2, 110, 68, 0, 100, 101, 2, 108, 108, 101, 21,
+			3, 65, 2, 110, 72, 13, 0, 100, 101, 114, 97, 2, 116, 17, 65, 3, 65, 2, 110, 72, 13, 34, 2, 35, 0, 100, 101, 114, 97, 2,
+			116, 111, 114, 25, 3, 65, 2, 110, 72, 13, 34, 115, 0, 2, 110, 97, 114, 103, 3, 65, 2, 117, 0, 116, 105, 101, 2, 17, 67, 3,
+			65, 2, 117, 47, 37, 0, 110, 97, 114, 103, 105, 101, 2, 32, 24, 3, 65, 2, 117, 50, 2, 35, 34, 136, 37, 0, 110, 111, 2, 103,
+			97, 3, 65, 2, 117, 50, 2, 117, 0, 110, 111, 112, 111, 2, 108, 105, 3, 65, 2, 117, 50, 2, 117, 48, 2, 40, 0, 100, 101, 2,
+			108, 3, 65, 2, 117, 72, 112, 0, 115, 97, 2, 195, 175, 101, 107, 3, 65, 2, 117, 89, 2, 35, 0, 115, 97, 109, 2, 98, 105, 101,
+			107, 3, 65, 2, 117, 89, 2, 35, 65, 0, 101, 105, 116, 101, 3, 65, 6, 126, 47, 13, 0, 100, 101, 8, 3, 65, 7, 117, 72, 13,
+			0, 101, 100, 115, 119, 105, 108, 108, 105, 103, 3, 65, 40, 47, 89, 84, 6, 109, 55, 13, 136, 0, 114, 114, 8, 2, 105, 3, 65, 110,
+			34, 0, 114, 115, 8, 2, 21, 3, 65, 110, 34, 89, 0, 110, 110, 105, 107, 101, 3, 65, 110, 50, 13, 49, 13, 0, 110, 105, 116, 111,
+			114, 2, 25, 3, 65, 110, 50, 37, 47, 110, 34, 0, 2, 98, 105, 101, 108, 3, 65, 117, 6, 0, 116, 111, 114, 3, 65, 117, 47, 13,
+			34, 0, 7, 6, 111, 110, 0, 4, 2, 114, 101, 103, 118, 12, 12, 3, 2, 110, 50, 0, 2, 116, 111, 101, 0, 2, 116, 117, 103, 116,
+			105, 103, 0, 2, 116, 119, 121, 102, 101, 108, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 116, 97, 97, 108, 0, 8, 2, 116, 97,
+			107, 116, 0, 8, 2, 116, 97, 115, 98, 97, 0, 8, 2, 116, 111, 111, 17, 67, 17, 67, 0, 8, 2, 116, 121, 100, 0, 8, 2, 119,
+			101, 115, 101, 110, 0, 116, 2, 100, 21, 0, 111, 109, 2, 115, 116, 111, 111, 116, 3, 2, 110, 50, 2, 110, 65, 0, 4, 97, 102, 8,
+			2, 115, 107, 101, 105, 17, 67, 3, 2, 110, 50, 10, 2, 35, 83, 0, 97, 102, 8, 2, 119, 101, 110, 100, 0, 4, 100, 101, 114, 2,
+			98, 114, 101, 3, 2, 110, 50, 13, 34, 0, 100, 101, 114, 2, 98, 114, 111, 107, 101, 0, 100, 101, 114, 2, 100, 97, 110, 105, 103, 0,
+			100, 101, 114, 2, 100, 114, 117, 107, 0, 100, 101, 114, 2, 100, 117, 105, 109, 0, 100, 101, 114, 2, 104, 97, 110, 100, 101, 0, 100, 101,
+			114, 2, 104, 101, 119, 0, 100, 101, 114, 2, 104, 111, 114, 0, 100, 101, 114, 2, 104, 111, 117, 0, 100, 101, 114, 2, 108, 101, 103, 0,
+			100, 101, 114, 2, 109, 121, 110, 0, 100, 101, 114, 2, 110, 101, 0, 100, 101, 114, 2, 115, 107, 114, 121, 17, 67, 0, 100, 101, 114, 2,
+			115, 111, 101, 107, 101, 110, 0, 100, 101, 114, 2, 115, 116, 101, 117, 0, 100, 101, 114, 2, 115, 116, 114, 101, 0, 100, 101, 114, 2, 116,
+			101, 107, 101, 110, 0, 100, 101, 114, 2, 116, 114, 111, 117, 0, 100, 101, 114, 2, 118, 97, 110, 103, 0, 100, 101, 114, 2, 118, 105, 110,
+			0, 100, 101, 114, 2, 118, 114, 97, 0, 100, 101, 114, 2, 119, 101, 114, 112, 105, 110, 103, 0, 100, 101, 114, 2, 119, 111, 114, 112, 0,
+			100, 101, 114, 8, 2, 115, 107, 17, 65, 0, 100, 101, 114, 111, 110, 115, 105, 101, 3, 2, 110, 50, 13, 34, 19, 135, 50, 89, 37, 0,
+			100, 101, 114, 115, 116, 101, 98, 111, 3, 2, 110, 50, 13, 34, 89, 47, 13, 71, 117, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 2,
+			110, 50, 47, 0, 116, 101, 109, 2, 98, 97, 3, 2, 110, 50, 47, 108, 65, 0, 116, 101, 108, 8, 3, 2, 110, 50, 47, 112, 55, 0,
+			116, 101, 114, 105, 110, 103, 3, 2, 110, 50, 47, 116, 34, 13, 68, 0, 100, 101, 117, 114, 3, 2, 110, 50, 72, 2, 118, 13, 34, 0,
+			118, 111, 111, 114, 2, 115, 3, 2, 110, 50, 83, 2, 117, 34, 0, 4, 119, 101, 101, 114, 8, 2, 108, 3, 2, 110, 50, 84, 2, 116,
+			34, 0, 119, 101, 101, 114, 8, 2, 115, 112, 114, 0, 119, 101, 101, 114, 8, 2, 115, 116, 97, 97, 110, 0, 104, 101, 105, 108, 2, 115,
+			112, 101, 108, 3, 2, 110, 50, 107, 2, 123, 55, 0, 104, 101, 105, 108, 2, 105, 103, 3, 2, 110, 50, 107, 6, 123, 55, 0, 103, 101,
+			101, 115, 8, 3, 2, 110, 50, 136, 2, 116, 89, 0, 103, 101, 108, 2, 100, 105, 103, 3, 2, 110, 50, 136, 112, 55, 0, 103, 114, 101,
+			115, 1, 107, 3, 2, 110, 68, 136, 34, 108, 89, 0, 4, 2, 115, 107, 117, 108, 100, 32, 24, 3, 6, 110, 50, 0, 8, 2, 119, 17,
+			65, 115, 0, 100, 101, 114, 103, 101, 8, 2, 21, 14, 128, 132, 135, 3, 6, 110, 50, 13, 34, 136, 13, 0, 105, 101, 115, 1, 21, 3,
+			6, 117, 50, 37, 89, 0, 4, 100, 101, 114, 2, 115, 101, 107, 114, 3, 7, 110, 50, 13, 34, 0, 100, 101, 114, 2, 119, 121, 115, 17,
+			67, 21, 0, 100, 101, 114, 8, 2, 101, 110, 17, 67, 3, 7, 110, 50, 13, 34, 10, 0, 104, 101, 105, 108, 3, 7, 110, 50, 107, 123,
+			55, 0, 121, 1, 21, 2, 32, 3, 21, 0, 111, 111, 109, 3, 40, 50, 6, 117, 65, 0, 111, 109, 101, 3, 40, 50, 6, 117, 65, 13,
+			0, 111, 109, 105, 101, 115, 3, 40, 50, 6, 117, 65, 37, 89, 0, 111, 109, 105, 101, 3, 40, 50, 40, 65, 6, 37, 0, 4, 2, 100,
+			105, 101, 114, 3, 110, 50, 0, 2, 108, 97, 110, 103, 115, 0, 2, 115, 105, 110, 32, 24, 0, 2, 116, 117, 103, 0, 8, 2, 102, 105,
+			107, 115, 0, 8, 2, 107, 97, 110, 116, 0, 8, 2, 107, 111, 115, 116, 101, 0, 8, 2, 107, 114, 117, 105, 100, 0, 8, 2, 108, 117,
+			115, 0, 8, 2, 112, 97, 97, 114, 0, 8, 2, 116, 117, 105, 17, 67, 0, 8, 2, 117, 105, 116, 103, 101, 21, 12, 12, 14, 128, 132,
+			130, 3, 110, 50, 10, 0, 117, 105, 116, 8, 2, 21, 14, 128, 132, 133, 3, 110, 50, 10, 127, 47, 0, 4, 100, 101, 114, 3, 110, 50,
+			13, 34, 0, 100, 101, 114, 2, 104, 111, 117, 100, 25, 0, 100, 101, 114, 2, 104, 111, 117, 100, 101, 32, 0, 100, 101, 114, 2, 115, 107,
+			101, 105, 100, 32, 24, 0, 100, 101, 114, 119, 121, 115, 101, 114, 2, 97, 3, 110, 50, 13, 34, 84, 6, 123, 89, 13, 34, 10, 0, 114,
+			101, 103, 2, 25, 3, 110, 50, 34, 112, 136, 0, 110, 105, 101, 8, 3, 110, 50, 37, 0, 116, 101, 118, 114, 101, 100, 101, 3, 110, 50,
+			47, 13, 83, 34, 6, 116, 72, 13, 0, 116, 101, 101, 110, 115, 101, 103, 3, 110, 50, 47, 116, 50, 89, 6, 112, 136, 0, 119, 101, 101,
+			114, 8, 3, 110, 50, 84, 116, 34, 0, 4, 103, 101, 2, 100, 105, 101, 114, 116, 3, 110, 50, 136, 13, 0, 103, 101, 8, 2, 21, 14,
+			128, 132, 132, 0, 103, 101, 114, 105, 101, 102, 108, 105, 2, 107, 3, 110, 50, 136, 13, 34, 6, 37, 83, 55, 13, 0, 103, 101, 108, 111,
+			111, 102, 108, 105, 8, 2, 107, 3, 110, 50, 136, 13, 55, 6, 117, 83, 55, 13, 0, 103, 101, 109, 97, 107, 108, 105, 2, 107, 3, 110,
+			50, 136, 13, 65, 6, 35, 49, 55, 13, 0, 105, 107, 115, 3, 117, 50, 13, 49, 89, 0, 4, 105, 101, 1, 108, 111, 107, 3, 117, 50,
+			37, 0, 105, 101, 1, 109, 101, 114, 101, 115, 2, 25, 0, 105, 101, 115, 1, 112, 21, 3, 117, 50, 37, 89, 0, 117, 115, 8, 3, 117,
+			50, 111, 89, 0, 4, 100, 106, 105, 101, 3, 124, 68, 80, 37, 0, 116, 106, 105, 101, 0, 4, 115, 1, 98, 3, 135, 50, 89, 0, 115,
+			1, 100, 0, 115, 1, 103, 0, 115, 1, 114, 102, 0, 4, 103, 101, 1, 21, 2, 108, 117, 107, 21, 3, 135, 68, 136, 13, 0, 103, 101,
+			2, 108, 117, 107, 32, 0, 103, 101, 2, 108, 117, 107, 107, 101, 32, 0, 103, 101, 2, 108, 117, 107, 107, 105, 101, 0, 103, 101, 2, 108,
+			117, 107, 115, 0, 103, 101, 118, 97, 2, 108, 3, 135, 68, 136, 13, 83, 35, 0, 7, 6, 111, 111, 0, 4, 114, 2, 98, 108, 121, 119,
+			3, 2, 117, 34, 0, 114, 2, 98, 114, 117, 103, 0, 114, 2, 100, 105, 110, 107, 0, 114, 2, 100, 111, 110, 100, 101, 114, 0, 114, 2,
+			100, 114, 97, 97, 103, 0, 114, 2, 103, 97, 110, 107, 0, 114, 2, 104, 101, 101, 114, 115, 0, 114, 2, 107, 111, 111, 109, 0, 114, 2,
+			108, 97, 97, 105, 100, 0, 114, 2, 108, 97, 109, 115, 0, 114, 2, 109, 101, 101, 115, 116, 101, 114, 0, 114, 2, 114, 101, 101, 100, 0,
+			114, 2, 114, 111, 109, 112, 101, 108, 0, 114, 2, 115, 105, 103, 116, 0, 114, 2, 115, 107, 114, 121, 0, 114, 2, 115, 112, 114, 111, 110,
+			107, 0, 114, 2, 115, 116, 117, 114, 0, 114, 2, 116, 114, 0, 114, 2, 116, 117, 105, 103, 0, 114, 8, 2, 100, 97, 103, 0, 114, 8,
+			2, 100, 101, 110, 107, 0, 114, 8, 2, 100, 111, 101, 110, 0, 114, 8, 2, 100, 114, 121, 17, 67, 0, 114, 8, 2, 103, 114, 111, 101,
+			105, 0, 114, 8, 2, 104, 97, 97, 115, 0, 114, 8, 2, 104, 111, 111, 102, 115, 0, 114, 8, 2, 112, 101, 105, 110, 115, 0, 114, 8,
+			2, 115, 107, 97, 100, 117, 0, 114, 8, 2, 115, 107, 97, 116, 0, 114, 8, 2, 115, 116, 101, 108, 112, 0, 114, 8, 2, 115, 116, 114,
+			111, 109, 105, 0, 114, 8, 2, 118, 108, 101, 117, 101, 108, 0, 114, 8, 2, 118, 108, 111, 101, 100, 105, 103, 0, 114, 8, 2, 119, 0,
+			4, 114, 2, 101, 101, 110, 3, 2, 117, 34, 10, 0, 114, 2, 101, 101, 110, 103, 101, 0, 114, 2, 101, 101, 110, 115, 21, 0, 114, 2,
+			101, 101, 116, 0, 114, 2, 101, 105, 115, 0, 114, 101, 114, 102, 108, 105, 107, 3, 2, 117, 34, 10, 112, 34, 83, 55, 13, 49, 0, 114,
+			100, 119, 97, 114, 115, 8, 3, 2, 117, 34, 72, 58, 35, 34, 89, 0, 114, 100, 101, 8, 2, 107, 3, 2, 117, 34, 72, 112, 0, 114,
+			115, 116, 117, 117, 114, 115, 8, 3, 2, 117, 34, 89, 47, 118, 12, 34, 89, 0, 114, 115, 97, 97, 107, 108, 105, 107, 3, 2, 117, 34,
+			89, 115, 49, 55, 13, 49, 0, 114, 114, 101, 2, 100, 17, 65, 3, 2, 117, 34, 116, 0, 116, 2, 109, 111, 101, 100, 105, 103, 3, 2,
+			117, 47, 0, 4, 103, 2, 108, 111, 112, 3, 2, 117, 136, 0, 103, 2, 108, 117, 105, 107, 0, 114, 2, 101, 101, 110, 21, 21, 3, 4,
+			117, 34, 10, 0, 114, 2, 119, 105, 103, 3, 6, 117, 34, 0, 112, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 117, 48, 136, 13,
+			0, 3, 117, 0, 4, 114, 2, 115, 105, 103, 116, 121, 100, 3, 117, 34, 0, 114, 2, 116, 114, 101, 107, 0, 114, 8, 2, 116, 114, 111,
+			109, 0, 114, 8, 2, 104, 97, 110, 100, 21, 3, 117, 34, 6, 0, 114, 107, 111, 101, 112, 101, 108, 3, 117, 34, 49, 6, 40, 48, 13,
+			55, 0, 114, 108, 101, 100, 101, 8, 3, 117, 34, 55, 6, 116, 72, 13, 0, 114, 108, 101, 2, 119, 17, 65, 110, 3, 117, 34, 55, 7,
+			116, 0, 114, 108, 101, 2, 108, 25, 3, 117, 34, 55, 112, 0, 114, 98, 111, 100, 105, 103, 3, 117, 34, 71, 6, 117, 72, 13, 136, 0,
+			114, 98, 108, 117, 102, 3, 117, 34, 71, 55, 6, 111, 83, 0, 114, 100, 114, 101, 119, 101, 3, 117, 34, 72, 34, 6, 116, 84, 13, 0,
+			109, 98, 108, 105, 107, 108, 105, 107, 3, 117, 65, 71, 55, 6, 109, 49, 55, 13, 49, 0, 4, 105, 3, 125, 0, 121, 0, 4, 110, 100,
+			106, 105, 101, 3, 125, 68, 49, 37, 0, 110, 116, 106, 105, 101, 0, 4, 100, 106, 105, 101, 3, 125, 80, 37, 0, 116, 106, 105, 101, 0,
+			7, 6, 111, 112, 0, 4, 2, 104, 111, 117, 100, 101, 3, 2, 110, 48, 0, 2, 108, 101, 116, 116, 0, 2, 110, 117, 117, 116, 0, 2,
+			114, 111, 101, 114, 105, 103, 0, 2, 114, 117, 105, 101, 110, 0, 2, 115, 105, 101, 110, 98, 0, 2, 115, 105, 111, 110, 101, 21, 0, 2,
+			115, 116, 97, 110, 100, 105, 103, 0, 2, 119, 105, 110, 100, 101, 0, 8, 2, 114, 101, 103, 0, 8, 2, 115, 121, 0, 8, 2, 118, 97,
+			108, 108, 0, 8, 2, 118, 108, 105, 101, 195, 171, 0, 112, 111, 114, 2, 116, 117, 3, 2, 110, 48, 2, 110, 34, 0, 112, 101, 114, 2,
+			118, 108, 97, 107, 107, 105, 3, 2, 110, 48, 13, 34, 0, 112, 111, 110, 2, 17, 65, 3, 2, 110, 48, 13, 50, 0, 112, 111, 115, 2,
+			105, 115, 105, 101, 3, 2, 110, 48, 13, 88, 0, 116, 105, 2, 109, 17, 65, 3, 2, 110, 48, 47, 2, 37, 0, 109, 101, 114, 107, 108,
+			105, 8, 2, 107, 3, 2, 110, 48, 65, 112, 34, 49, 55, 13, 0, 115, 101, 116, 108, 105, 107, 3, 2, 110, 48, 89, 108, 47, 55, 13,
+			49, 0, 115, 105, 103, 116, 101, 108, 105, 8, 2, 107, 3, 2, 110, 48, 89, 109, 136, 47, 13, 55, 13, 0, 101, 114, 8, 2, 17, 65,
+			3, 2, 117, 48, 13, 34, 0, 101, 114, 97, 115, 105, 101, 3, 2, 117, 48, 13, 34, 115, 89, 37, 0, 101, 110, 2, 98, 3, 2, 117,
+			48, 13, 50, 0, 8, 2, 21, 14, 128, 132, 130, 3, 6, 110, 48, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 110, 48, 136,
+			13, 0, 103, 101, 101, 2, 12, 3, 6, 110, 48, 136, 116, 0, 1, 17, 67, 10, 2, 105, 103, 3, 6, 117, 48, 0, 101, 101, 110, 1,
+			25, 3, 10, 2, 110, 48, 10, 116, 50, 0, 97, 97, 116, 3, 40, 48, 6, 115, 47, 0, 4, 97, 116, 105, 101, 115, 3, 40, 48, 6,
+			115, 47, 37, 89, 0, 97, 116, 105, 101, 115, 0, 97, 116, 105, 101, 3, 40, 48, 35, 47, 6, 37, 0, 2, 111, 102, 102, 101, 114, 3,
+			110, 48, 0, 112, 101, 114, 3, 110, 48, 13, 34, 0, 116, 101, 108, 3, 110, 48, 47, 112, 55, 0, 115, 112, 114, 97, 97, 107, 3, 110,
+			48, 89, 48, 34, 115, 49, 0, 105, 110, 105, 101, 3, 117, 48, 6, 37, 50, 37, 0, 4, 101, 2, 108, 3, 117, 48, 13, 0, 101, 8,
+			2, 25, 0, 101, 8, 2, 114, 105, 103, 0, 101, 114, 97, 2, 25, 3, 117, 48, 13, 34, 2, 35, 0, 101, 110, 2, 12, 3, 117, 48,
+			13, 50, 0, 105, 117, 109, 3, 117, 48, 37, 111, 65, 0, 117, 8, 2, 115, 3, 117, 48, 111, 0, 7, 6, 112, 97, 0, 114, 97, 2,
+			17, 67, 3, 4, 48, 35, 34, 35, 0, 4, 2, 103, 111, 100, 17, 65, 3, 48, 2, 35, 0, 2, 110, 101, 108, 101, 0, 2, 110, 105,
+			101, 107, 0, 2, 112, 105, 101, 114, 0, 2, 112, 105, 114, 117, 115, 0, 2, 115, 105, 102, 105, 0, 2, 115, 116, 101, 108, 0, 2, 116,
+			114, 17, 65, 0, 8, 2, 107, 107, 97, 0, 8, 2, 115, 116, 101, 105, 0, 8, 2, 115, 116, 111, 0, 8, 2, 116, 17, 65, 0, 112,
+			2, 98, 114, 111, 101, 107, 17, 65, 17, 67, 0, 114, 8, 2, 17, 67, 17, 65, 3, 48, 2, 35, 34, 0, 114, 111, 2, 100, 105, 3,
+			48, 2, 35, 34, 2, 40, 0, 114, 116, 105, 2, 115, 97, 3, 48, 2, 35, 34, 47, 2, 37, 0, 114, 116, 105, 2, 116, 117, 3, 48,
+			2, 35, 34, 47, 13, 0, 114, 108, 101, 2, 109, 101, 110, 116, 3, 48, 2, 35, 34, 55, 13, 0, 114, 109, 101, 2, 115, 97, 97, 110,
+			3, 48, 2, 35, 34, 65, 13, 0, 116, 105, 101, 2, 25, 24, 3, 48, 2, 35, 47, 6, 37, 0, 116, 114, 105, 2, 21, 3, 48, 2,
+			35, 47, 34, 2, 37, 0, 116, 114, 105, 97, 114, 2, 103, 97, 3, 48, 2, 35, 47, 34, 2, 37, 2, 35, 34, 0, 116, 114, 111, 2,
+			108, 108, 101, 3, 48, 2, 35, 47, 34, 2, 40, 0, 116, 195, 169, 3, 48, 2, 35, 47, 116, 0, 112, 97, 106, 97, 3, 48, 2, 35,
+			48, 6, 115, 37, 35, 0, 4, 112, 101, 2, 103, 97, 97, 105, 3, 48, 2, 35, 48, 13, 0, 112, 112, 101, 2, 114, 121, 0, 112, 97,
+			119, 101, 114, 3, 48, 2, 35, 48, 115, 84, 13, 34, 0, 107, 105, 115, 116, 97, 110, 3, 48, 2, 35, 49, 2, 37, 89, 47, 35, 50,
+			0, 107, 107, 101, 2, 116, 3, 48, 2, 35, 49, 108, 0, 4, 110, 8, 2, 100, 111, 3, 48, 2, 35, 50, 0, 110, 8, 2, 116, 111,
+			0, 110, 111, 2, 114, 97, 109, 3, 48, 2, 35, 50, 2, 40, 0, 110, 100, 101, 2, 109, 105, 101, 3, 48, 2, 35, 50, 72, 116, 0,
+			108, 2, 109, 105, 101, 116, 3, 48, 2, 35, 55, 0, 108, 101, 2, 115, 116, 17, 65, 3, 48, 2, 35, 55, 13, 0, 108, 105, 110, 2,
+			100, 114, 111, 3, 48, 2, 35, 55, 13, 50, 0, 108, 101, 2, 116, 3, 48, 2, 35, 55, 108, 0, 109, 2, 17, 67, 3, 48, 2, 35,
+			65, 0, 109, 112, 101, 114, 2, 108, 3, 48, 2, 35, 65, 48, 13, 34, 0, 4, 118, 105, 108, 2, 106, 111, 101, 3, 48, 2, 35, 84,
+			13, 55, 0, 119, 105, 108, 2, 106, 111, 101, 0, 115, 2, 111, 112, 3, 48, 2, 35, 89, 0, 115, 115, 97, 2, 115, 105, 101, 114, 3,
+			48, 2, 35, 89, 2, 35, 0, 115, 116, 111, 8, 2, 114, 17, 65, 21, 3, 48, 2, 35, 89, 47, 2, 40, 0, 115, 101, 2, 108, 108,
+			97, 3, 48, 2, 35, 89, 112, 0, 116, 105, 101, 115, 1, 21, 3, 48, 6, 115, 47, 37, 89, 0, 100, 100, 97, 8, 2, 17, 67, 17,
+			65, 3, 48, 7, 35, 72, 35, 0, 2, 116, 97, 116, 3, 48, 13, 0, 114, 97, 100, 101, 2, 25, 3, 48, 13, 34, 115, 72, 13, 0,
+			110, 97, 100, 111, 3, 48, 13, 50, 115, 72, 120, 12, 0, 106, 97, 109, 97, 3, 48, 13, 75, 115, 65, 2, 35, 0, 114, 107, 97, 2,
+			98, 97, 97, 100, 106, 3, 48, 35, 34, 49, 2, 35, 0, 114, 107, 101, 2, 114, 97, 97, 100, 3, 48, 35, 34, 49, 13, 0, 107, 2,
+			17, 65, 3, 48, 35, 49, 19, 0, 110, 8, 2, 103, 101, 17, 67, 3, 48, 35, 50, 0, 110, 97, 109, 97, 3, 48, 35, 50, 13, 65,
+			35, 0, 110, 116, 115, 101, 114, 3, 48, 35, 50, 47, 89, 13, 34, 0, 108, 106, 97, 8, 2, 25, 3, 48, 35, 55, 57, 7, 35, 0,
+			109, 2, 112, 97, 3, 48, 35, 65, 0, 110, 107, 114, 101, 97, 3, 48, 35, 68, 49, 34, 2, 37, 2, 35, 0, 110, 103, 97, 3, 48,
+			35, 68, 81, 35, 0, 115, 8, 2, 17, 65, 17, 65, 3, 48, 35, 89, 0, 97, 114, 108, 8, 3, 48, 113, 34, 114, 0, 116, 105, 111,
+			3, 48, 115, 47, 37, 38, 40, 0, 7, 6, 112, 101, 0, 2, 110, 97, 108, 105, 3, 48, 2, 108, 0, 114, 105, 2, 115, 17, 67, 17,
+			65, 3, 48, 2, 108, 34, 13, 0, 114, 105, 102, 101, 2, 114, 17, 65, 21, 3, 48, 2, 108, 34, 13, 83, 13, 0, 110, 2, 100, 117,
+			108, 101, 3, 48, 2, 108, 50, 0, 110, 101, 2, 116, 114, 17, 65, 3, 48, 2, 108, 50, 13, 0, 110, 105, 115, 105, 2, 108, 108, 105,
+			3, 48, 2, 108, 50, 13, 89, 13, 0, 110, 115, 105, 2, 111, 101, 110, 3, 48, 2, 108, 50, 91, 2, 37, 0, 108, 105, 8, 2, 107,
+			97, 3, 48, 2, 108, 55, 2, 37, 0, 108, 111, 116, 111, 110, 3, 48, 2, 108, 55, 13, 47, 110, 50, 0, 100, 8, 2, 111, 102, 3,
+			48, 2, 108, 72, 0, 100, 97, 8, 2, 103, 3, 48, 2, 108, 72, 2, 35, 0, 100, 105, 8, 3, 48, 2, 108, 72, 2, 37, 0, 114,
+			2, 115, 101, 101, 108, 3, 48, 2, 112, 34, 0, 114, 108, 101, 2, 109, 111, 101, 3, 48, 2, 112, 34, 55, 13, 0, 114, 115, 111, 2,
+			110, 101, 101, 108, 3, 48, 2, 112, 34, 89, 2, 40, 0, 114, 103, 111, 108, 97, 3, 48, 2, 112, 34, 136, 117, 55, 2, 35, 0, 4,
+			108, 101, 2, 116, 111, 110, 3, 48, 2, 112, 55, 13, 0, 108, 101, 2, 116, 111, 110, 0, 114, 105, 2, 111, 3, 48, 2, 116, 34, 2,
+			37, 0, 114, 100, 101, 8, 3, 48, 6, 113, 34, 72, 13, 0, 4, 1, 17, 67, 21, 2, 100, 97, 3, 48, 13, 0, 2, 110, 97, 114,
+			105, 101, 0, 2, 114, 114, 111, 110, 0, 2, 116, 105, 101, 116, 101, 114, 0, 2, 116, 105, 115, 105, 0, 2, 116, 117, 110, 105, 97, 0,
+			8, 2, 100, 17, 65, 0, 4, 114, 2, 107, 117, 115, 115, 105, 101, 3, 48, 13, 34, 0, 114, 2, 115, 101, 112, 115, 105, 0, 114, 2,
+			115, 111, 0, 4, 114, 101, 1, 109, 97, 107, 115, 2, 32, 3, 48, 13, 34, 13, 0, 114, 101, 1, 112, 2, 32, 0, 114, 101, 1, 121,
+			114, 2, 32, 0, 114, 109, 105, 116, 3, 48, 13, 34, 65, 6, 109, 47, 0, 4, 114, 100, 101, 1, 101, 112, 2, 32, 3, 48, 13, 34,
+			72, 13, 0, 114, 100, 101, 1, 109, 101, 116, 2, 32, 0, 114, 100, 101, 1, 112, 105, 110, 115, 2, 32, 0, 114, 100, 101, 1, 114, 117,
+			112, 2, 32, 0, 114, 100, 101, 1, 115, 97, 114, 2, 32, 0, 114, 102, 101, 107, 3, 48, 13, 34, 83, 108, 49, 0, 114, 118, 101, 114,
+			116, 3, 48, 13, 34, 83, 112, 34, 47, 0, 114, 118, 101, 114, 115, 3, 48, 13, 34, 83, 112, 34, 89, 0, 114, 115, 101, 110, 116, 3,
+			48, 13, 34, 89, 108, 50, 47, 0, 114, 115, 101, 110, 116, 97, 1, 21, 2, 115, 105, 3, 48, 13, 34, 89, 108, 50, 47, 115, 0, 116,
+			114, 111, 108, 2, 101, 117, 109, 3, 48, 13, 47, 34, 117, 55, 0, 110, 101, 2, 32, 3, 48, 13, 50, 13, 0, 108, 105, 110, 103, 1,
+			114, 2, 32, 3, 48, 13, 55, 13, 68, 0, 114, 105, 112, 97, 2, 116, 3, 48, 108, 34, 37, 48, 35, 7, 0, 116, 114, 111, 108, 3,
+			48, 108, 47, 34, 13, 55, 10, 0, 100, 111, 8, 2, 109, 3, 48, 108, 72, 2, 40, 0, 115, 1, 114, 101, 100, 110, 117, 114, 3, 48,
+			108, 89, 0, 114, 107, 101, 1, 21, 2, 32, 3, 48, 112, 34, 49, 13, 0, 114, 107, 101, 114, 1, 21, 2, 25, 3, 48, 112, 34, 49,
+			13, 34, 0, 114, 107, 105, 110, 103, 1, 21, 3, 48, 112, 34, 49, 13, 68, 0, 114, 109, 97, 110, 101, 110, 3, 48, 112, 34, 65, 35,
+			50, 6, 108, 50, 0, 114, 115, 2, 111, 109, 3, 48, 112, 34, 89, 10, 0, 114, 115, 107, 101, 3, 48, 112, 34, 89, 49, 13, 0, 114,
+			1, 121, 114, 2, 100, 3, 48, 113, 34, 0, 114, 100, 8, 2, 114, 3, 48, 113, 34, 47, 0, 4, 114, 100, 101, 1, 21, 2, 32, 3,
+			48, 113, 34, 72, 13, 0, 114, 100, 101, 2, 107, 97, 114, 0, 8, 2, 116, 114, 17, 65, 32, 3, 48, 116, 0, 114, 101, 1, 21, 2,
+			32, 3, 48, 116, 34, 13, 0, 7, 6, 112, 114, 0, 111, 116, 101, 115, 116, 3, 4, 48, 34, 110, 47, 13, 89, 47, 0, 111, 112, 97,
+			103, 3, 4, 48, 34, 110, 48, 35, 136, 0, 97, 107, 8, 2, 116, 121, 107, 3, 48, 34, 2, 35, 49, 0, 97, 107, 116, 105, 2, 115,
+			121, 110, 3, 48, 34, 2, 35, 49, 47, 2, 37, 0, 105, 2, 109, 97, 97, 116, 3, 48, 34, 2, 37, 0, 101, 116, 111, 114, 105, 3,
+			48, 34, 2, 37, 47, 2, 117, 34, 2, 37, 0, 101, 116, 111, 114, 105, 97, 2, 110, 3, 48, 34, 2, 37, 47, 2, 117, 34, 2, 37,
+			6, 115, 0, 101, 116, 111, 114, 105, 97, 2, 32, 3, 48, 34, 2, 37, 47, 6, 117, 34, 37, 35, 0, 101, 109, 105, 195, 168, 114, 101,
+			3, 48, 34, 2, 37, 65, 57, 113, 34, 0, 105, 118, 2, 97, 21, 3, 48, 34, 2, 37, 83, 0, 105, 101, 115, 116, 101, 114, 101, 2,
+			25, 3, 48, 34, 2, 37, 89, 47, 13, 34, 108, 0, 4, 111, 2, 17, 67, 17, 65, 3, 48, 34, 2, 40, 0, 111, 2, 98, 108, 17,
+			65, 0, 111, 2, 103, 114, 97, 109, 0, 111, 116, 101, 115, 2, 116, 101, 32, 24, 3, 48, 34, 2, 40, 47, 108, 89, 0, 111, 106, 101,
+			107, 3, 48, 34, 2, 40, 57, 108, 49, 0, 111, 100, 117, 107, 2, 17, 65, 3, 48, 34, 2, 40, 72, 111, 49, 10, 0, 111, 102, 101,
+			115, 115, 105, 111, 2, 110, 3, 48, 34, 2, 40, 83, 2, 108, 91, 2, 37, 2, 40, 0, 111, 118, 105, 116, 97, 3, 48, 34, 2, 40,
+			84, 37, 47, 2, 35, 0, 111, 115, 101, 115, 3, 48, 34, 2, 40, 89, 108, 89, 0, 111, 103, 114, 97, 109, 109, 101, 2, 114, 105, 110,
+			103, 3, 48, 34, 2, 40, 136, 34, 2, 35, 65, 116, 0, 101, 112, 97, 2, 114, 97, 3, 48, 34, 2, 108, 48, 13, 0, 101, 115, 116,
+			105, 103, 101, 3, 48, 34, 2, 108, 89, 47, 37, 12, 90, 0, 101, 115, 98, 105, 116, 101, 114, 105, 2, 97, 3, 48, 34, 2, 108, 89,
+			71, 13, 47, 2, 116, 34, 2, 37, 0, 101, 103, 2, 110, 97, 110, 17, 67, 3, 48, 34, 2, 108, 136, 0, 111, 112, 111, 115, 105, 3,
+			48, 34, 2, 110, 48, 13, 88, 37, 0, 111, 107, 117, 2, 114, 17, 65, 3, 48, 34, 2, 110, 49, 2, 118, 0, 111, 108, 101, 116, 97,
+			114, 105, 2, 97, 3, 48, 34, 2, 110, 55, 13, 47, 2, 35, 34, 2, 37, 0, 111, 109, 117, 108, 103, 2, 101, 3, 48, 34, 2, 110,
+			65, 2, 111, 55, 136, 0, 111, 109, 101, 110, 97, 100, 101, 3, 48, 34, 2, 110, 65, 13, 50, 115, 72, 13, 0, 111, 109, 105, 115, 107,
+			117, 3, 48, 34, 2, 110, 65, 13, 89, 49, 118, 0, 111, 98, 108, 101, 2, 109, 97, 116, 105, 3, 48, 34, 2, 110, 71, 55, 13, 0,
+			111, 102, 105, 116, 2, 101, 3, 48, 34, 2, 110, 83, 13, 47, 0, 111, 115, 101, 2, 100, 117, 114, 101, 3, 48, 34, 2, 110, 89, 13,
+			0, 111, 115, 116, 105, 2, 116, 117, 3, 48, 34, 2, 110, 89, 47, 13, 0, 101, 100, 105, 2, 107, 97, 110, 116, 3, 48, 34, 2, 116,
+			72, 13, 0, 111, 2, 103, 114, 101, 115, 115, 3, 48, 34, 2, 117, 0, 111, 116, 101, 2, 195, 175, 3, 48, 34, 2, 117, 47, 13, 0,
+			111, 106, 101, 107, 2, 116, 105, 101, 108, 3, 48, 34, 2, 117, 57, 2, 108, 49, 0, 111, 118, 105, 2, 97, 110, 100, 3, 48, 34, 2,
+			117, 84, 2, 37, 0, 111, 115, 97, 2, 195, 175, 101, 3, 48, 34, 2, 117, 89, 115, 0, 111, 103, 101, 115, 116, 101, 114, 2, 111, 3,
+			48, 34, 2, 117, 136, 2, 108, 89, 47, 13, 34, 0, 101, 2, 110, 97, 116, 97, 3, 48, 34, 4, 116, 0, 4, 101, 2, 108, 117, 100,
+			3, 48, 34, 13, 0, 101, 2, 109, 105, 101, 114, 0, 101, 2, 115, 17, 65, 0, 101, 116, 101, 110, 2, 115, 105, 3, 48, 34, 13, 47,
+			134, 50, 0, 105, 110, 115, 105, 2, 112, 17, 65, 3, 48, 34, 13, 50, 89, 13, 0, 105, 110, 115, 105, 112, 101, 2, 25, 3, 48, 34,
+			13, 50, 89, 37, 48, 13, 0, 105, 110, 115, 101, 2, 115, 3, 48, 34, 13, 50, 89, 108, 0, 105, 110, 115, 101, 115, 1, 21, 2, 32,
+			3, 48, 34, 13, 50, 89, 108, 89, 0, 105, 109, 105, 2, 116, 3, 48, 34, 13, 65, 13, 0, 4, 101, 115, 101, 2, 100, 101, 110, 116,
+			3, 48, 34, 13, 89, 13, 0, 105, 115, 111, 2, 110, 105, 101, 114, 0, 101, 115, 105, 100, 101, 110, 2, 17, 67, 3, 48, 34, 13, 89,
+			13, 72, 108, 50, 0, 101, 115, 116, 97, 2, 115, 105, 101, 3, 48, 34, 13, 89, 47, 115, 0, 101, 115, 116, 101, 2, 114, 101, 110, 100,
+			3, 48, 34, 13, 89, 47, 116, 0, 101, 115, 116, 101, 101, 114, 3, 48, 34, 13, 89, 47, 116, 34, 0, 101, 115, 101, 110, 116, 1, 21,
+			3, 48, 34, 13, 89, 108, 50, 47, 0, 101, 116, 111, 114, 105, 97, 2, 17, 67, 3, 48, 34, 37, 47, 6, 117, 34, 37, 35, 0, 101,
+			102, 101, 107, 3, 48, 34, 37, 83, 108, 49, 0, 111, 116, 101, 115, 3, 48, 34, 40, 47, 6, 108, 89, 0, 111, 109, 105, 110, 101, 110,
+			3, 48, 34, 110, 65, 37, 50, 6, 108, 50, 0, 111, 110, 107, 101, 114, 2, 116, 106, 105, 3, 48, 34, 110, 68, 49, 10, 112, 34, 0,
+			111, 102, 101, 115, 105, 101, 3, 48, 34, 110, 83, 13, 89, 6, 37, 0, 4, 101, 2, 104, 105, 115, 116, 111, 3, 48, 34, 116, 0, 101,
+			2, 115, 101, 32, 0, 101, 100, 105, 107, 101, 114, 3, 48, 34, 116, 72, 13, 49, 13, 34, 0, 111, 116, 2, 111, 110, 12, 3, 48, 34,
+			117, 47, 0, 111, 116, 111, 2, 17, 67, 3, 48, 34, 117, 47, 40, 0, 111, 107, 105, 101, 3, 48, 34, 117, 49, 2, 37, 0, 111, 115,
+			97, 3, 48, 34, 117, 89, 2, 35, 0, 111, 115, 101, 1, 21, 2, 32, 3, 48, 34, 117, 89, 13, 0, 7, 6, 114, 101, 0, 2, 97,
+			103, 101, 114, 101, 110, 3, 34, 2, 37, 0, 97, 2, 17, 67, 3, 34, 2, 37, 2, 35, 0, 104, 97, 98, 105, 108, 105, 116, 3, 34,
+			2, 37, 2, 35, 71, 2, 37, 55, 2, 37, 47, 0, 2, 195, 188, 3, 34, 2, 37, 10, 0, 97, 2, 107, 115, 3, 34, 2, 37, 35,
+			0, 102, 108, 101, 107, 2, 17, 67, 3, 34, 2, 37, 83, 55, 108, 49, 0, 116, 114, 111, 8, 2, 21, 14, 128, 132, 133, 3, 34, 2,
+			108, 47, 34, 2, 40, 0, 112, 2, 116, 105, 101, 108, 3, 34, 2, 108, 48, 0, 112, 101, 114, 116, 111, 105, 114, 101, 3, 34, 2, 108,
+			48, 13, 34, 47, 58, 115, 34, 0, 112, 117, 2, 116, 3, 34, 2, 108, 48, 118, 0, 100, 105, 103, 8, 2, 17, 65, 3, 34, 2, 108,
+			72, 2, 37, 136, 0, 102, 101, 114, 2, 97, 3, 34, 2, 108, 83, 13, 34, 0, 119, 111, 108, 2, 117, 3, 34, 2, 108, 84, 2, 111,
+			55, 0, 115, 111, 2, 110, 17, 65, 3, 34, 2, 108, 89, 2, 40, 0, 115, 111, 2, 108, 117, 115, 105, 101, 3, 34, 2, 108, 89, 2,
+			110, 0, 115, 116, 97, 117, 114, 3, 34, 2, 108, 89, 47, 2, 40, 34, 0, 115, 116, 101, 8, 2, 114, 101, 110, 100, 3, 34, 2, 108,
+			89, 47, 116, 0, 103, 105, 109, 101, 110, 2, 116, 97, 21, 3, 34, 2, 108, 136, 2, 37, 65, 2, 108, 50, 0, 103, 117, 2, 108, 17,
+			65, 3, 34, 2, 108, 136, 2, 118, 0, 103, 2, 104, 111, 101, 107, 105, 103, 3, 34, 2, 112, 136, 0, 2, 112, 114, 111, 100, 117, 3,
+			34, 2, 116, 0, 112, 101, 114, 2, 107, 117, 115, 3, 34, 2, 116, 48, 13, 34, 0, 108, 105, 195, 171, 102, 3, 34, 2, 116, 55, 2,
+			37, 108, 83, 0, 100, 101, 2, 114, 121, 3, 34, 2, 116, 72, 13, 0, 101, 108, 1, 17, 65, 10, 2, 32, 3, 34, 6, 116, 55, 0,
+			108, 101, 1, 10, 2, 32, 3, 34, 6, 116, 55, 13, 0, 4, 1, 17, 67, 2, 103, 97, 116, 3, 34, 13, 0, 2, 98, 101, 108, 0,
+			2, 100, 97, 107, 17, 67, 0, 2, 102, 114, 101, 105, 110, 0, 2, 103, 101, 101, 114, 0, 2, 103, 114, 101, 115, 25, 0, 2, 103, 114,
+			111, 101, 112, 0, 2, 107, 114, 117, 0, 2, 108, 105, 101, 107, 0, 2, 110, 17, 65, 0, 2, 112, 108, 105, 101, 107, 0, 2, 115, 101,
+			110, 115, 17, 65, 0, 2, 115, 101, 115, 115, 105, 101, 0, 2, 115, 112, 111, 110, 0, 2, 116, 111, 0, 8, 2, 108, 97, 0, 8, 2,
+			115, 112, 121, 116, 0, 8, 2, 115, 116, 97, 110, 116, 0, 116, 105, 2, 114, 101, 3, 34, 13, 47, 13, 0, 112, 117, 98, 108, 105, 2,
+			107, 3, 34, 13, 48, 2, 111, 71, 55, 2, 37, 0, 112, 117, 98, 108, 105, 101, 107, 3, 34, 13, 48, 2, 111, 71, 55, 37, 49, 0,
+			4, 107, 108, 97, 2, 109, 17, 65, 3, 34, 13, 49, 55, 35, 0, 107, 108, 97, 2, 109, 101, 101, 114, 0, 107, 108, 97, 109, 101, 3,
+			34, 13, 49, 55, 115, 65, 13, 0, 110, 101, 1, 111, 3, 34, 13, 50, 13, 0, 110, 111, 110, 115, 3, 34, 13, 50, 135, 50, 89, 0,
+			4, 108, 101, 2, 103, 17, 65, 3, 34, 13, 55, 13, 0, 108, 101, 2, 118, 97, 110, 0, 108, 105, 2, 103, 105, 0, 108, 97, 115, 101,
+			3, 34, 13, 55, 115, 89, 13, 0, 100, 101, 110, 2, 17, 65, 17, 67, 17, 65, 3, 34, 13, 72, 13, 50, 6, 0, 100, 101, 110, 101,
+			101, 114, 3, 34, 13, 72, 13, 50, 6, 116, 34, 0, 102, 111, 114, 2, 109, 3, 34, 13, 83, 2, 110, 34, 0, 102, 101, 114, 101, 110,
+			2, 100, 17, 65, 3, 34, 13, 83, 13, 34, 108, 50, 0, 119, 111, 108, 119, 101, 114, 3, 34, 13, 84, 6, 110, 55, 84, 13, 34, 0,
+			115, 101, 114, 119, 101, 3, 34, 13, 88, 6, 112, 34, 84, 13, 0, 4, 115, 105, 2, 100, 101, 110, 3, 34, 13, 89, 13, 0, 115, 105,
+			2, 116, 17, 65, 0, 115, 101, 114, 2, 118, 3, 34, 13, 89, 13, 34, 0, 115, 112, 101, 107, 2, 116, 101, 101, 114, 3, 34, 13, 89,
+			48, 2, 108, 49, 0, 115, 112, 101, 107, 3, 34, 13, 89, 48, 108, 49, 0, 115, 101, 112, 3, 34, 13, 89, 108, 48, 0, 115, 101, 115,
+			2, 32, 3, 34, 13, 89, 108, 89, 0, 115, 117, 108, 2, 116, 17, 65, 3, 34, 13, 89, 111, 55, 6, 0, 103, 105, 109, 101, 2, 32,
+			3, 34, 13, 90, 37, 12, 65, 0, 103, 2, 105, 115, 116, 3, 34, 13, 136, 0, 4, 103, 105, 2, 109, 101, 110, 116, 3, 34, 13, 136,
+			13, 0, 103, 105, 2, 115, 115, 101, 117, 17, 67, 0, 103, 108, 101, 2, 109, 101, 110, 116, 3, 34, 13, 136, 55, 13, 0, 103, 101, 114,
+			2, 17, 65, 3, 34, 13, 136, 116, 34, 0, 4, 1, 17, 67, 2, 110, 32, 3, 34, 108, 0, 1, 17, 67, 2, 110, 110, 101, 32, 0,
+			1, 101, 100, 114, 101, 112, 2, 110, 0, 116, 105, 110, 97, 3, 34, 108, 47, 37, 50, 35, 0, 112, 101, 116, 3, 34, 108, 48, 13, 47,
+			0, 107, 111, 114, 100, 3, 34, 108, 49, 2, 110, 34, 47, 0, 99, 99, 101, 3, 34, 108, 49, 37, 0, 109, 2, 32, 3, 34, 108, 65,
+			0, 103, 103, 97, 101, 3, 34, 108, 81, 123, 0, 103, 3, 34, 112, 136, 0, 103, 118, 101, 114, 100, 105, 103, 3, 34, 112, 136, 83, 6,
+			112, 34, 72, 13, 136, 0, 114, 105, 110, 103, 1, 10, 2, 32, 3, 34, 116, 34, 13, 68, 0, 107, 101, 2, 110, 17, 65, 3, 34, 116,
+			49, 13, 0, 4, 100, 101, 1, 115, 3, 34, 116, 72, 13, 0, 100, 101, 8, 2, 17, 67, 0, 100, 101, 108, 8, 3, 34, 116, 72, 13,
+			55, 0, 7, 6, 115, 101, 0, 110, 105, 111, 114, 2, 105, 116, 101, 105, 3, 89, 2, 37, 12, 50, 2, 37, 2, 110, 34, 0, 4, 114,
+			101, 2, 109, 111, 110, 105, 3, 89, 2, 108, 34, 13, 0, 114, 101, 2, 110, 97, 100, 101, 0, 114, 111, 116, 111, 2, 110, 105, 3, 89,
+			2, 108, 34, 13, 47, 2, 40, 0, 107, 117, 2, 108, 3, 89, 2, 108, 49, 2, 118, 0, 107, 119, 101, 2, 115, 116, 114, 17, 65, 3,
+			89, 2, 108, 49, 58, 13, 0, 107, 115, 2, 116, 97, 110, 116, 3, 89, 2, 108, 49, 89, 0, 107, 115, 116, 101, 2, 116, 3, 89, 2,
+			108, 49, 89, 47, 108, 0, 4, 110, 2, 115, 111, 114, 105, 101, 3, 89, 2, 108, 50, 0, 110, 2, 115, 117, 117, 114, 0, 110, 8, 2,
+			116, 114, 97, 21, 0, 110, 116, 105, 2, 109, 101, 110, 116, 3, 89, 2, 108, 50, 47, 2, 37, 0, 108, 105, 2, 98, 97, 3, 89, 2,
+			108, 55, 2, 37, 0, 109, 105, 2, 110, 97, 3, 89, 2, 108, 65, 2, 37, 0, 2, 108, 108, 105, 110, 3, 89, 2, 112, 6, 0, 108,
+			108, 111, 2, 102, 97, 3, 89, 2, 112, 55, 13, 0, 108, 100, 101, 114, 2, 121, 3, 89, 2, 112, 55, 72, 13, 34, 0, 108, 102, 2,
+			115, 116, 97, 110, 3, 89, 2, 112, 55, 83, 0, 108, 97, 2, 107, 97, 110, 116, 3, 89, 2, 116, 55, 13, 0, 105, 2, 115, 111, 101,
+			110, 3, 89, 2, 123, 0, 108, 1, 21, 2, 119, 105, 103, 3, 89, 6, 112, 55, 0, 108, 108, 105, 103, 1, 21, 3, 89, 6, 112, 55,
+			13, 136, 0, 108, 101, 1, 10, 2, 32, 3, 89, 6, 116, 55, 13, 0, 110, 105, 111, 114, 8, 3, 89, 7, 37, 12, 50, 37, 13, 34,
+			0, 107, 111, 1, 21, 2, 110, 111, 21, 3, 89, 10, 2, 108, 49, 2, 40, 0, 4, 2, 32, 3, 89, 13, 0, 2, 100, 117, 107, 0,
+			2, 107, 111, 0, 2, 107, 117, 0, 2, 114, 111, 101, 116, 0, 8, 2, 100, 101, 110, 116, 0, 8, 2, 100, 111, 111, 115, 0, 8, 2,
+			107, 114, 101, 0, 8, 2, 110, 105, 21, 0, 8, 2, 114, 105, 110, 103, 0, 8, 32, 2, 32, 0, 4, 114, 2, 115, 97, 110, 116, 3,
+			89, 13, 34, 0, 114, 2, 118, 101, 116, 0, 114, 8, 2, 101, 21, 0, 107, 114, 101, 2, 116, 97, 3, 89, 13, 49, 34, 13, 0, 107,
+			114, 101, 116, 97, 114, 105, 2, 17, 65, 3, 89, 13, 49, 34, 13, 47, 2, 35, 34, 2, 37, 0, 108, 101, 1, 111, 110, 2, 32, 3,
+			89, 13, 55, 13, 0, 108, 101, 107, 2, 17, 67, 17, 65, 3, 89, 13, 55, 108, 49, 0, 108, 111, 110, 8, 2, 115, 17, 67, 3, 89,
+			13, 55, 135, 50, 0, 109, 101, 8, 2, 17, 67, 116, 3, 89, 13, 65, 108, 0, 100, 97, 110, 8, 3, 89, 13, 72, 35, 50, 0, 100,
+			101, 2, 114, 105, 110, 103, 3, 89, 13, 72, 116, 0, 100, 101, 101, 114, 3, 89, 13, 72, 116, 34, 0, 107, 115, 1, 21, 2, 32, 3,
+			89, 108, 49, 89, 0, 110, 116, 101, 114, 3, 89, 108, 50, 47, 13, 34, 0, 110, 100, 105, 110, 103, 2, 32, 3, 89, 108, 50, 72, 13,
+			68, 0, 4, 109, 105, 8, 2, 17, 67, 3, 89, 108, 65, 37, 0, 109, 105, 8, 2, 32, 0, 115, 2, 117, 117, 114, 3, 89, 108, 89,
+			10, 0, 4, 1, 100, 101, 111, 108, 98, 2, 108, 3, 89, 112, 0, 1, 101, 105, 115, 105, 108, 111, 112, 2, 108, 25, 0, 1, 101, 108,
+			108, 105, 97, 114, 98, 2, 108, 0, 1, 103, 110, 105, 110, 117, 101, 104, 2, 108, 25, 0, 1, 109, 97, 97, 103, 103, 105, 108, 2, 108,
+			25, 0, 1, 109, 97, 116, 115, 2, 108, 0, 2, 103, 103, 17, 65, 0, 108, 108, 101, 2, 116, 106, 105, 101, 3, 89, 112, 55, 37, 0,
+			1, 17, 67, 21, 2, 114, 101, 32, 3, 89, 116, 0, 116, 101, 2, 110, 101, 32, 3, 89, 116, 47, 13, 0, 116, 101, 108, 2, 25, 3,
+			89, 116, 47, 13, 55, 0, 107, 101, 114, 3, 89, 116, 49, 13, 34, 0, 110, 105, 110, 103, 3, 89, 116, 50, 13, 68, 0, 110, 117, 8,
+			2, 17, 67, 17, 67, 3, 89, 116, 50, 118, 0, 109, 101, 108, 2, 21, 3, 89, 116, 65, 13, 55, 0, 98, 114, 97, 8, 3, 89, 116,
+			71, 34, 35, 0, 100, 101, 8, 3, 89, 116, 72, 13, 0, 7, 6, 115, 116, 0, 105, 101, 115, 1, 21, 3, 8, 89, 47, 2, 37, 89,
+			0, 101, 109, 112, 101, 114, 97, 109, 101, 1, 21, 3, 89, 10, 47, 108, 65, 48, 14, 34, 2, 35, 65, 108, 0, 4, 97, 2, 116, 117,
+			116, 17, 65, 3, 89, 47, 2, 35, 0, 97, 8, 2, 98, 105, 21, 0, 97, 110, 2, 100, 97, 3, 89, 47, 2, 35, 50, 0, 4, 97,
+			110, 100, 2, 104, 111, 117, 100, 101, 3, 89, 47, 2, 35, 50, 47, 0, 97, 110, 100, 2, 118, 97, 115, 116, 105, 0, 97, 110, 100, 101,
+			114, 100, 2, 21, 3, 89, 47, 2, 35, 50, 72, 13, 34, 47, 0, 97, 108, 97, 103, 2, 17, 67, 105, 101, 116, 3, 89, 47, 2, 35,
+			55, 2, 35, 136, 0, 105, 101, 2, 98, 101, 117, 3, 89, 47, 2, 37, 0, 105, 108, 101, 2, 116, 3, 89, 47, 2, 37, 55, 108, 0,
+			101, 8, 2, 114, 105, 3, 89, 47, 2, 108, 0, 101, 108, 108, 101, 110, 2, 98, 111, 115, 3, 89, 47, 2, 112, 55, 13, 65, 0, 101,
+			114, 101, 111, 2, 116, 105, 3, 89, 47, 2, 116, 34, 2, 37, 2, 40, 0, 101, 114, 111, 2, 195, 175, 101, 100, 3, 89, 47, 2, 116,
+			34, 2, 40, 38, 0, 117, 2, 100, 101, 3, 89, 47, 2, 118, 0, 117, 100, 101, 110, 2, 116, 3, 89, 47, 2, 118, 72, 108, 50, 0,
+			111, 117, 116, 2, 109, 111, 101, 100, 105, 3, 89, 47, 2, 120, 47, 0, 105, 101, 107, 1, 26, 21, 3, 89, 47, 6, 37, 49, 0, 101,
+			1, 21, 2, 108, 108, 101, 110, 3, 89, 47, 6, 112, 0, 101, 114, 114, 101, 116, 106, 105, 101, 3, 89, 47, 6, 112, 34, 37, 80, 37,
+			0, 97, 116, 105, 101, 115, 3, 89, 47, 6, 115, 47, 37, 89, 0, 121, 102, 103, 101, 2, 21, 14, 128, 132, 134, 3, 89, 47, 6, 123,
+			83, 136, 13, 0, 97, 97, 116, 8, 2, 115, 3, 89, 47, 7, 115, 47, 0, 4, 101, 1, 17, 67, 21, 2, 109, 97, 110, 3, 89, 47,
+			13, 0, 101, 1, 21, 2, 108, 121, 25, 0, 101, 1, 32, 15, 0, 101, 1, 114, 170, 195, 2, 32, 14, 128, 128, 131, 0, 101, 2, 108,
+			97, 97, 110, 0, 101, 2, 108, 97, 110, 100, 0, 101, 2, 108, 108, 97, 115, 105, 101, 0, 101, 2, 109, 97, 97, 116, 0, 101, 2, 109,
+			97, 114, 107, 0, 101, 8, 2, 102, 97, 97, 110, 0, 105, 2, 112, 117, 108, 17, 65, 0, 101, 114, 114, 101, 105, 3, 89, 47, 13, 34,
+			6, 123, 0, 101, 110, 101, 1, 105, 114, 104, 99, 2, 32, 3, 89, 47, 13, 50, 13, 0, 4, 101, 108, 1, 21, 2, 105, 17, 67, 3,
+			89, 47, 13, 55, 0, 101, 108, 1, 21, 2, 111, 0, 101, 108, 1, 110, 117, 107, 2, 100, 0, 101, 108, 1, 111, 112, 97, 0, 101, 108,
+			1, 114, 111, 119, 0, 101, 108, 8, 101, 110, 0, 105, 108, 2, 115, 119, 121, 0, 101, 108, 105, 107, 1, 21, 3, 89, 47, 13, 55, 13,
+			49, 0, 105, 109, 117, 2, 108, 17, 65, 3, 89, 47, 13, 65, 2, 118, 0, 114, 97, 116, 101, 103, 105, 101, 3, 89, 47, 34, 2, 35,
+			47, 13, 136, 37, 0, 114, 97, 116, 101, 103, 105, 101, 115, 3, 89, 47, 34, 2, 35, 47, 116, 136, 37, 89, 0, 114, 97, 98, 2, 111,
+			116, 111, 109, 105, 3, 89, 47, 34, 2, 35, 71, 0, 114, 97, 102, 2, 114, 101, 103, 116, 101, 3, 89, 47, 34, 2, 35, 83, 0, 114,
+			117, 107, 116, 2, 117, 3, 89, 47, 34, 2, 111, 49, 47, 0, 114, 117, 107, 116, 117, 2, 114, 101, 114, 17, 65, 110, 3, 89, 47, 34,
+			2, 111, 49, 47, 2, 118, 0, 114, 105, 103, 2, 110, 105, 101, 110, 3, 89, 47, 34, 13, 136, 0, 4, 114, 97, 110, 100, 2, 111, 3,
+			89, 47, 34, 35, 50, 47, 10, 0, 114, 97, 110, 100, 8, 2, 101, 114, 17, 67, 0, 114, 101, 115, 2, 32, 3, 89, 47, 34, 108, 89,
+			0, 114, 97, 97, 116, 1, 21, 2, 32, 14, 129, 128, 134, 3, 89, 47, 34, 115, 47, 0, 114, 101, 107, 101, 3, 89, 47, 34, 116, 49,
+			13, 0, 97, 112, 8, 2, 17, 65, 3, 89, 47, 35, 48, 10, 0, 97, 109, 105, 110, 97, 3, 89, 47, 35, 65, 2, 37, 50, 2, 35,
+			0, 101, 2, 109, 3, 89, 47, 108, 0, 101, 110, 2, 115, 105, 108, 3, 89, 47, 108, 50, 0, 101, 109, 112, 101, 108, 3, 89, 47, 108,
+			65, 48, 13, 55, 0, 111, 114, 109, 3, 89, 47, 110, 34, 14, 65, 0, 111, 107, 2, 17, 65, 3, 89, 47, 110, 49, 19, 0, 111, 102,
+			2, 111, 3, 89, 47, 110, 83, 19, 0, 4, 101, 1, 100, 110, 2, 114, 3, 89, 47, 112, 0, 101, 1, 101, 101, 115, 2, 114, 0, 101,
+			1, 101, 105, 112, 101, 115, 2, 114, 0, 101, 1, 101, 105, 115, 105, 118, 2, 114, 0, 101, 1, 101, 114, 17, 65, 109, 2, 114, 0, 101,
+			1, 101, 119, 101, 115, 2, 114, 0, 101, 1, 103, 114, 101, 119, 100, 2, 114, 0, 101, 1, 107, 99, 111, 114, 2, 114, 0, 101, 1, 108,
+			97, 97, 119, 100, 2, 114, 0, 101, 1, 108, 101, 17, 67, 11, 2, 114, 0, 101, 1, 108, 111, 111, 112, 2, 114, 0, 101, 1, 109, 97,
+			97, 115, 2, 108, 108, 101, 110, 0, 101, 1, 109, 108, 105, 102, 2, 114, 0, 101, 1, 110, 101, 101, 116, 2, 108, 108, 101, 110, 0, 101,
+			1, 112, 111, 112, 2, 114, 0, 101, 1, 114, 101, 112, 117, 115, 2, 114, 0, 101, 1, 116, 101, 17, 67, 2, 114, 25, 0, 101, 1, 116,
+			110, 101, 114, 112, 2, 114, 0, 101, 2, 108, 0, 4, 101, 114, 1, 103, 101, 119, 2, 119, 101, 3, 89, 47, 112, 34, 0, 101, 114, 2,
+			45, 104, 111, 116, 101, 108, 0, 101, 114, 2, 104, 111, 116, 101, 108, 0, 101, 114, 2, 119, 101, 110, 100, 0, 101, 114, 8, 0, 101, 114,
+			114, 101, 3, 89, 47, 112, 34, 13, 0, 101, 114, 107, 2, 32, 3, 89, 47, 112, 34, 49, 0, 101, 114, 107, 116, 1, 21, 3, 89, 47,
+			112, 34, 49, 47, 0, 101, 114, 102, 2, 25, 3, 89, 47, 112, 34, 83, 0, 101, 114, 119, 101, 110, 115, 2, 21, 3, 89, 47, 112, 34,
+			84, 13, 50, 89, 10, 0, 101, 108, 101, 1, 10, 2, 102, 111, 3, 89, 47, 112, 55, 13, 0, 4, 101, 114, 1, 107, 105, 119, 107, 3,
+			89, 47, 113, 34, 0, 101, 114, 1, 107, 111, 98, 2, 116, 0, 101, 114, 1, 107, 114, 97, 118, 2, 116, 106, 105, 101, 0, 101, 114, 1,
+			112, 97, 97, 107, 115, 2, 116, 106, 105, 101, 0, 97, 2, 100, 105, 111, 110, 3, 89, 47, 115, 0, 97, 112, 101, 108, 3, 89, 47, 115,
+			48, 13, 55, 0, 101, 2, 107, 101, 32, 3, 89, 47, 116, 0, 101, 107, 101, 2, 108, 105, 103, 3, 89, 47, 116, 49, 13, 0, 101, 107,
+			101, 114, 1, 17, 67, 3, 89, 47, 116, 49, 13, 34, 0, 101, 110, 101, 2, 32, 3, 89, 47, 116, 50, 13, 0, 101, 108, 101, 2, 32,
+			3, 89, 47, 116, 55, 13, 0, 101, 108, 101, 114, 3, 89, 47, 116, 55, 13, 34, 0, 4, 101, 100, 101, 2, 17, 67, 3, 89, 47, 116,
+			72, 13, 0, 101, 100, 101, 2, 32, 0, 101, 100, 105, 110, 103, 3, 89, 47, 116, 72, 13, 68, 0, 101, 119, 101, 108, 3, 89, 47, 116,
+			84, 13, 55, 0, 111, 116, 101, 110, 101, 3, 89, 47, 117, 47, 13, 50, 13, 0, 111, 107, 2, 101, 3, 89, 47, 117, 49, 0, 7, 6,
+			116, 101, 0, 109, 112, 101, 114, 97, 3, 4, 47, 108, 65, 48, 14, 34, 2, 35, 0, 2, 111, 17, 67, 3, 47, 2, 37, 2, 0, 97,
+			2, 116, 114, 97, 3, 47, 2, 37, 2, 35, 0, 97, 116, 101, 114, 3, 47, 2, 37, 115, 47, 13, 34, 0, 114, 97, 2, 112, 17, 65,
+			3, 47, 2, 108, 34, 2, 35, 0, 114, 97, 1, 111, 2, 112, 17, 65, 3, 47, 2, 108, 34, 2, 35, 6, 0, 114, 114, 111, 114, 2,
+			105, 115, 3, 47, 2, 108, 34, 2, 40, 34, 0, 4, 107, 115, 2, 116, 105, 101, 108, 3, 47, 2, 108, 49, 89, 0, 107, 115, 8, 2,
+			116, 117, 0, 4, 110, 2, 111, 116, 111, 109, 105, 101, 3, 47, 2, 108, 50, 0, 110, 2, 116, 97, 107, 101, 108, 0, 110, 2, 116, 111,
+			111, 110, 0, 110, 100, 101, 110, 115, 3, 47, 2, 108, 50, 72, 134, 50, 89, 0, 115, 111, 117, 2, 114, 105, 101, 3, 47, 2, 108, 89,
+			2, 40, 0, 4, 114, 2, 109, 105, 101, 116, 3, 47, 2, 112, 34, 0, 114, 2, 109, 121, 110, 0, 114, 8, 2, 115, 0, 114, 97, 97,
+			114, 100, 101, 8, 3, 47, 2, 112, 34, 19, 115, 34, 72, 13, 0, 114, 112, 101, 110, 2, 116, 121, 110, 3, 47, 2, 112, 34, 48, 13,
+			50, 0, 114, 109, 105, 2, 110, 97, 21, 3, 47, 2, 112, 34, 65, 2, 37, 0, 108, 101, 8, 2, 17, 67, 3, 47, 2, 112, 55, 13,
+			0, 4, 101, 110, 2, 115, 116, 114, 121, 100, 3, 47, 2, 116, 50, 0, 101, 110, 2, 119, 111, 111, 114, 0, 101, 110, 2, 111, 111, 114,
+			103, 101, 115, 3, 47, 2, 116, 50, 10, 0, 101, 110, 115, 2, 119, 111, 111, 114, 3, 47, 2, 116, 50, 89, 0, 4, 1, 17, 67, 21,
+			2, 114, 103, 101, 110, 100, 3, 47, 6, 112, 0, 2, 114, 103, 101, 110, 100, 0, 114, 110, 2, 101, 32, 3, 47, 6, 112, 34, 50, 0,
+			114, 110, 2, 25, 3, 47, 6, 113, 34, 14, 50, 0, 4, 1, 97, 17, 67, 2, 114, 105, 110, 103, 3, 47, 6, 116, 0, 1, 107, 2,
+			114, 105, 110, 103, 0, 4, 114, 101, 110, 100, 101, 1, 101, 112, 2, 32, 3, 47, 6, 116, 34, 13, 50, 72, 13, 0, 114, 101, 110, 100,
+			101, 1, 105, 2, 32, 0, 114, 101, 110, 100, 101, 1, 107, 101, 2, 32, 0, 114, 101, 110, 100, 101, 1, 108, 117, 2, 32, 0, 114, 101,
+			110, 100, 101, 1, 114, 101, 118, 2, 32, 0, 114, 101, 110, 100, 101, 1, 115, 97, 2, 32, 0, 108, 101, 1, 21, 2, 32, 3, 47, 6,
+			116, 55, 13, 0, 115, 101, 2, 32, 3, 47, 6, 116, 89, 13, 0, 115, 101, 115, 2, 32, 3, 47, 6, 116, 89, 13, 89, 0, 4, 117,
+			114, 1, 17, 65, 3, 47, 6, 128, 34, 0, 117, 114, 1, 107, 0, 101, 110, 2, 97, 114, 103, 117, 3, 47, 7, 116, 50, 0, 4, 1,
+			17, 65, 2, 108, 105, 110, 103, 3, 47, 13, 0, 1, 17, 65, 10, 2, 108, 112, 0, 1, 17, 65, 17, 67, 2, 108, 101, 110, 100, 0,
+			1, 17, 65, 21, 2, 103, 101, 17, 67, 0, 1, 17, 67, 21, 2, 17, 67, 0, 1, 17, 67, 21, 2, 109, 97, 114, 107, 0, 1, 21,
+			2, 111, 112, 0, 1, 97, 119, 2, 114, 105, 110, 103, 0, 1, 101, 105, 110, 2, 109, 105, 110, 0, 2, 32, 0, 2, 97, 97, 0, 2,
+			100, 111, 109, 0, 2, 111, 110, 100, 101, 114, 0, 2, 111, 111, 0, 2, 114, 114, 17, 65, 0, 8, 2, 98, 111, 119, 101, 0, 8, 2,
+			110, 111, 0, 8, 2, 119, 101, 0, 4, 114, 1, 10, 2, 116, 17, 65, 21, 3, 47, 13, 34, 0, 114, 1, 21, 2, 116, 121, 100, 0,
+			114, 1, 97, 119, 2, 116, 0, 114, 8, 2, 108, 0, 114, 8, 2, 110, 17, 65, 0, 114, 8, 2, 119, 0, 114, 105, 101, 1, 110, 3,
+			47, 13, 34, 6, 37, 0, 114, 117, 103, 103, 101, 101, 2, 12, 3, 47, 13, 34, 6, 111, 136, 116, 0, 4, 114, 100, 1, 10, 2, 32,
+			3, 47, 13, 34, 47, 0, 114, 116, 1, 10, 2, 114, 0, 114, 116, 106, 105, 101, 1, 10, 3, 47, 13, 34, 49, 37, 0, 114, 109, 101,
+			115, 1, 10, 3, 47, 13, 34, 65, 108, 89, 0, 114, 101, 103, 8, 3, 47, 13, 34, 112, 136, 0, 107, 111, 114, 3, 47, 13, 49, 110,
+			34, 0, 107, 101, 114, 101, 8, 3, 47, 13, 49, 116, 34, 13, 0, 4, 110, 1, 21, 2, 98, 97, 99, 104, 3, 47, 13, 50, 0, 110,
+			1, 21, 2, 100, 101, 114, 119, 121, 25, 0, 110, 105, 115, 3, 47, 13, 50, 109, 89, 0, 110, 97, 97, 114, 3, 47, 13, 50, 115, 34,
+			0, 4, 108, 1, 10, 2, 32, 3, 47, 13, 55, 0, 108, 1, 21, 2, 111, 0, 108, 1, 117, 101, 108, 115, 0, 108, 116, 106, 105, 101,
+			3, 47, 13, 55, 49, 37, 0, 108, 115, 1, 10, 2, 32, 3, 47, 13, 55, 89, 0, 108, 101, 117, 114, 3, 47, 13, 55, 128, 34, 0,
+			118, 111, 114, 101, 3, 47, 13, 83, 6, 117, 34, 13, 0, 118, 101, 114, 8, 2, 21, 3, 47, 13, 83, 13, 34, 0, 115, 97, 109, 101,
+			3, 47, 13, 89, 115, 65, 13, 0, 103, 101, 8, 2, 17, 67, 17, 65, 3, 47, 13, 136, 13, 0, 114, 117, 103, 8, 2, 14, 128, 132,
+			133, 3, 47, 14, 34, 6, 111, 136, 0, 114, 117, 103, 103, 101, 8, 2, 21, 14, 128, 132, 135, 3, 47, 14, 34, 6, 111, 136, 13, 0,
+			1, 17, 67, 2, 116, 106, 105, 101, 3, 47, 37, 0, 2, 107, 107, 105, 101, 12, 3, 47, 108, 0, 114, 114, 105, 195, 171, 114, 3, 47,
+			108, 34, 37, 13, 34, 0, 107, 115, 2, 12, 3, 47, 108, 49, 89, 0, 110, 2, 100, 101, 114, 3, 47, 108, 50, 0, 110, 110, 105, 115,
+			3, 47, 108, 50, 13, 89, 0, 110, 116, 2, 32, 3, 47, 108, 50, 47, 0, 110, 116, 101, 2, 32, 3, 47, 108, 50, 47, 13, 0, 109,
+			112, 111, 2, 32, 3, 47, 108, 65, 48, 2, 40, 0, 109, 112, 101, 114, 3, 47, 108, 65, 48, 13, 34, 0, 109, 112, 101, 108, 3, 47,
+			108, 65, 48, 13, 55, 0, 4, 1, 17, 67, 21, 2, 103, 110, 3, 47, 112, 0, 1, 17, 67, 21, 2, 107, 32, 0, 1, 17, 67, 21,
+			2, 108, 98, 111, 114, 100, 0, 1, 17, 67, 21, 2, 108, 108, 0, 1, 17, 67, 21, 2, 110, 107, 0, 2, 108, 0, 114, 109, 1, 21,
+			2, 32, 3, 47, 112, 34, 13, 65, 0, 114, 114, 97, 2, 99, 3, 47, 112, 34, 35, 0, 114, 116, 1, 10, 3, 47, 112, 34, 47, 0,
+			114, 109, 101, 1, 21, 2, 32, 3, 47, 112, 34, 65, 13, 0, 114, 116, 105, 8, 2, 17, 65, 25, 3, 47, 112, 34, 91, 57, 0, 108,
+			1, 101, 103, 2, 32, 3, 47, 112, 55, 0, 4, 108, 101, 1, 21, 2, 102, 111, 3, 47, 112, 55, 13, 0, 108, 101, 1, 21, 2, 103,
+			114, 97, 0, 108, 101, 107, 115, 3, 47, 112, 55, 108, 49, 89, 0, 4, 114, 116, 1, 115, 10, 2, 97, 97, 110, 3, 47, 113, 34, 47,
+			0, 114, 116, 1, 115, 10, 2, 101, 32, 0, 4, 1, 21, 2, 102, 105, 101, 32, 3, 47, 116, 0, 1, 21, 2, 108, 101, 114, 0, 1,
+			110, 105, 115, 2, 116, 105, 0, 1, 110, 121, 109, 2, 114, 105, 110, 103, 0, 1, 115, 2, 107, 105, 110, 103, 0, 4, 114, 105, 110, 103,
+			1, 115, 101, 108, 111, 109, 3, 47, 116, 34, 13, 68, 0, 114, 105, 110, 103, 8, 0, 4, 107, 1, 21, 2, 101, 110, 3, 47, 116, 49,
+			0, 107, 1, 112, 97, 2, 17, 65, 0, 107, 101, 110, 2, 17, 65, 3, 47, 116, 49, 13, 50, 0, 108, 101, 114, 8, 3, 47, 116, 55,
+			13, 34, 0, 119, 101, 2, 32, 3, 47, 116, 84, 13, 0, 119, 101, 110, 115, 8, 3, 47, 116, 84, 13, 50, 89, 0, 115, 105, 2, 115,
+			3, 47, 116, 89, 13, 0, 105, 107, 101, 110, 3, 47, 123, 49, 13, 50, 0, 7, 6, 116, 114, 0, 101, 107, 101, 110, 3, 47, 10, 34,
+			116, 49, 13, 50, 0, 97, 2, 106, 101, 107, 3, 47, 34, 2, 35, 0, 97, 112, 2, 115, 111, 101, 3, 47, 34, 2, 35, 48, 0, 97,
+			107, 8, 2, 116, 97, 3, 47, 34, 2, 35, 49, 0, 4, 97, 110, 115, 8, 2, 21, 14, 128, 132, 133, 3, 47, 34, 2, 35, 50, 89,
+			0, 97, 110, 115, 8, 2, 97, 107, 115, 105, 101, 0, 97, 110, 115, 101, 110, 100, 101, 110, 116, 2, 17, 65, 3, 47, 34, 2, 35, 50,
+			89, 2, 108, 50, 72, 2, 108, 50, 47, 0, 97, 110, 115, 105, 116, 111, 3, 47, 34, 2, 35, 50, 89, 37, 47, 2, 40, 0, 97, 110,
+			115, 112, 97, 2, 114, 97, 110, 116, 3, 47, 34, 2, 35, 50, 89, 48, 13, 0, 97, 110, 115, 112, 111, 114, 116, 3, 47, 34, 2, 35,
+			50, 89, 48, 110, 34, 47, 0, 97, 110, 115, 105, 115, 116, 111, 114, 3, 47, 34, 2, 35, 50, 89, 109, 89, 47, 13, 34, 0, 97, 100,
+			105, 2, 115, 105, 3, 47, 34, 2, 35, 72, 37, 0, 97, 103, 2, 101, 100, 3, 47, 34, 2, 35, 136, 0, 105, 2, 111, 109, 102, 3,
+			47, 34, 2, 37, 0, 105, 111, 109, 102, 2, 97, 110, 116, 3, 47, 34, 2, 37, 2, 110, 65, 83, 0, 4, 111, 2, 116, 115, 101, 101,
+			114, 3, 47, 34, 2, 110, 0, 111, 2, 116, 115, 101, 114, 105, 110, 103, 0, 4, 111, 109, 8, 2, 98, 3, 47, 34, 2, 110, 65, 0,
+			111, 109, 8, 2, 112, 101, 116, 0, 111, 103, 108, 111, 2, 100, 105, 101, 3, 47, 34, 2, 110, 136, 55, 2, 40, 0, 117, 2, 115, 116,
+			101, 101, 3, 47, 34, 2, 111, 0, 97, 103, 101, 2, 111, 116, 111, 109, 105, 3, 47, 34, 2, 115, 136, 2, 37, 0, 105, 115, 101, 1,
+			21, 2, 32, 3, 47, 34, 6, 37, 89, 13, 0, 105, 115, 101, 115, 1, 21, 2, 32, 3, 47, 34, 6, 37, 89, 13, 89, 0, 101, 101,
+			114, 1, 21, 3, 47, 34, 6, 116, 34, 0, 111, 117, 115, 115, 101, 97, 117, 3, 47, 34, 7, 40, 12, 89, 120, 0, 105, 8, 2, 98,
+			117, 3, 47, 34, 13, 0, 105, 108, 2, 106, 111, 101, 110, 3, 47, 34, 13, 55, 0, 105, 98, 117, 8, 2, 110, 97, 3, 47, 34, 13,
+			71, 2, 118, 0, 97, 112, 2, 111, 114, 114, 3, 47, 34, 35, 48, 10, 0, 97, 119, 2, 97, 3, 47, 34, 35, 84, 6, 0, 105, 111,
+			2, 32, 3, 47, 34, 37, 12, 40, 0, 101, 102, 2, 97, 102, 115, 3, 47, 34, 108, 83, 10, 0, 105, 118, 105, 97, 3, 47, 34, 109,
+			84, 37, 57, 2, 35, 0, 101, 2, 107, 3, 47, 34, 112, 0, 101, 107, 107, 101, 114, 3, 47, 34, 112, 49, 13, 34, 0, 97, 110, 115,
+			8, 2, 100, 97, 110, 115, 3, 47, 34, 115, 50, 89, 0, 101, 101, 114, 1, 21, 2, 17, 65, 3, 47, 34, 116, 34, 0, 101, 100, 105,
+			110, 103, 1, 10, 3, 47, 34, 116, 72, 13, 68, 0, 4, 117, 2, 112, 114, 111, 106, 101, 107, 3, 47, 34, 118, 0, 117, 2, 115, 112,
+			105, 101, 195, 171, 0, 117, 107, 2, 97, 97, 116, 115, 3, 47, 34, 118, 49, 0, 101, 110, 115, 2, 32, 3, 47, 34, 134, 50, 89, 0,
+			7, 6, 117, 105, 0, 116, 2, 100, 97, 103, 101, 110, 3, 2, 127, 0, 4, 116, 2, 98, 117, 110, 100, 3, 2, 127, 47, 0, 116, 2,
+			100, 114, 117, 107, 0, 116, 2, 104, 117, 105, 115, 105, 103, 0, 116, 2, 109, 117, 110, 116, 101, 110, 0, 116, 2, 115, 108, 117, 105, 116,
+			101, 110, 0, 116, 2, 115, 112, 97, 116, 116, 0, 116, 2, 115, 116, 101, 107, 101, 110, 0, 116, 2, 118, 111, 101, 114, 98, 97, 0, 116,
+			2, 118, 111, 101, 114, 105, 103, 0, 116, 2, 119, 105, 115, 98, 97, 0, 116, 2, 101, 101, 110, 3, 2, 127, 47, 10, 0, 116, 101, 101,
+			110, 2, 108, 111, 112, 3, 2, 127, 47, 10, 2, 116, 50, 0, 116, 109, 101, 2, 107, 97, 97, 114, 3, 2, 127, 47, 65, 13, 0, 116,
+			115, 116, 97, 97, 110, 2, 17, 67, 3, 2, 127, 47, 89, 47, 115, 50, 0, 116, 115, 112, 114, 101, 101, 107, 108, 3, 2, 127, 47, 89,
+			48, 34, 116, 49, 55, 0, 116, 115, 112, 97, 116, 108, 105, 107, 3, 2, 127, 47, 89, 48, 35, 47, 55, 13, 49, 0, 116, 115, 108, 117,
+			105, 116, 108, 105, 107, 3, 2, 127, 47, 89, 55, 127, 47, 55, 13, 49, 0, 116, 115, 111, 110, 100, 101, 114, 108, 105, 2, 107, 3, 2,
+			127, 47, 89, 110, 50, 13, 34, 55, 13, 0, 116, 101, 105, 110, 100, 101, 108, 105, 3, 2, 127, 47, 123, 50, 72, 13, 55, 13, 0, 116,
+			8, 2, 21, 14, 128, 132, 131, 3, 6, 127, 47, 0, 116, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 6, 127, 47, 136, 13, 0, 116,
+			103, 101, 101, 2, 12, 3, 6, 127, 47, 136, 116, 0, 4, 3, 127, 0, 2, 116, 106, 105, 101, 0, 101, 2, 17, 67, 3, 127, 13, 0,
+			4, 116, 2, 100, 114, 117, 107, 32, 24, 3, 127, 47, 0, 116, 2, 100, 114, 117, 107, 107, 105, 110, 103, 32, 0, 116, 2, 100, 114, 117,
+			107, 107, 105, 110, 103, 115, 0, 116, 2, 101, 101, 110, 108, 111, 111, 112, 3, 127, 47, 10, 0, 116, 101, 114, 3, 127, 47, 13, 34, 0,
+			116, 105, 110, 103, 3, 127, 47, 13, 68, 0, 116, 107, 101, 2, 110, 3, 127, 47, 49, 108, 0, 116, 115, 116, 97, 97, 110, 2, 114, 3,
+			127, 47, 89, 47, 115, 50, 0, 116, 103, 101, 119, 101, 114, 3, 127, 47, 136, 2, 116, 84, 13, 34, 0, 116, 103, 101, 119, 101, 114, 112,
+			3, 127, 47, 136, 13, 84, 112, 34, 48, 0, 116, 103, 101, 119, 101, 114, 107, 3, 127, 47, 136, 13, 84, 112, 34, 49, 0, 7, 6, 118,
+			101, 0, 4, 1, 21, 2, 32, 3, 21, 0, 115, 1, 17, 65, 2, 32, 0, 116, 101, 2, 114, 97, 3, 83, 2, 108, 47, 13, 0, 114,
+			116, 105, 2, 107, 97, 3, 83, 2, 112, 34, 47, 2, 37, 0, 4, 101, 108, 2, 100, 117, 105, 100, 3, 83, 2, 116, 55, 0, 101, 108,
+			2, 106, 97, 114, 0, 101, 108, 2, 115, 21, 21, 0, 114, 2, 107, 121, 107, 101, 114, 3, 83, 6, 113, 34, 0, 114, 103, 101, 115, 111,
+			103, 8, 3, 83, 6, 113, 34, 38, 136, 13, 89, 110, 136, 0, 114, 101, 110, 100, 2, 32, 3, 83, 6, 116, 34, 13, 50, 47, 0, 114,
+			101, 110, 100, 101, 3, 83, 6, 116, 34, 13, 50, 72, 13, 0, 114, 105, 110, 103, 3, 83, 6, 116, 34, 13, 68, 0, 108, 101, 3, 83,
+			6, 116, 55, 13, 0, 114, 115, 102, 8, 3, 83, 7, 112, 34, 89, 83, 0, 114, 2, 115, 112, 114, 105, 110, 103, 3, 83, 7, 113, 34,
+			0, 4, 114, 3, 83, 13, 34, 0, 114, 2, 102, 108, 101, 110, 17, 67, 0, 114, 2, 102, 114, 105, 115, 0, 114, 2, 118, 101, 108, 17,
+			65, 0, 114, 8, 2, 21, 14, 128, 132, 131, 0, 114, 97, 110, 116, 2, 119, 3, 83, 13, 34, 2, 35, 50, 47, 0, 114, 111, 110, 103,
+			101, 8, 2, 21, 14, 128, 132, 135, 3, 83, 13, 34, 6, 131, 68, 136, 13, 0, 4, 114, 97, 110, 116, 2, 119, 111, 111, 114, 100, 32,
+			3, 83, 13, 34, 10, 35, 50, 47, 0, 114, 97, 110, 116, 2, 119, 111, 111, 114, 100, 101, 32, 24, 0, 114, 101, 114, 2, 105, 110, 103,
+			3, 83, 13, 34, 10, 116, 34, 0, 114, 116, 101, 2, 108, 3, 83, 13, 34, 47, 112, 0, 114, 116, 101, 114, 2, 17, 65, 3, 83, 13,
+			34, 47, 116, 34, 0, 114, 108, 97, 110, 103, 115, 2, 97, 3, 83, 13, 34, 55, 6, 35, 68, 89, 0, 114, 98, 101, 116, 101, 3, 83,
+			13, 34, 71, 6, 116, 47, 13, 0, 114, 98, 121, 3, 83, 13, 34, 71, 123, 0, 4, 114, 102, 2, 105, 3, 83, 13, 34, 83, 0, 114,
+			102, 2, 114, 111, 109, 0, 114, 102, 8, 2, 108, 111, 117, 0, 114, 102, 8, 2, 111, 0, 114, 118, 101, 114, 115, 105, 110, 103, 3, 83,
+			13, 34, 83, 6, 112, 34, 89, 13, 68, 0, 114, 102, 121, 110, 3, 83, 13, 34, 83, 6, 123, 50, 0, 114, 115, 116, 101, 114, 1, 21,
+			2, 107, 3, 83, 13, 34, 89, 47, 112, 34, 0, 114, 111, 110, 100, 101, 114, 115, 116, 101, 2, 108, 3, 83, 13, 34, 110, 50, 13, 34,
+			89, 47, 6, 112, 0, 114, 103, 101, 116, 101, 3, 83, 13, 34, 136, 6, 116, 47, 13, 0, 114, 103, 101, 119, 101, 8, 3, 83, 13, 34,
+			136, 116, 84, 13, 0, 4, 110, 2, 100, 117, 115, 105, 101, 3, 83, 13, 50, 0, 110, 2, 121, 110, 0, 2, 115, 116, 3, 83, 108, 0,
+			116, 8, 2, 17, 65, 3, 83, 108, 47, 10, 0, 2, 108, 3, 83, 112, 0, 114, 2, 103, 101, 115, 105, 103, 3, 83, 112, 34, 0, 4,
+			114, 102, 3, 83, 112, 34, 83, 0, 114, 102, 2, 21, 0, 114, 119, 101, 2, 32, 3, 83, 112, 34, 84, 13, 0, 114, 119, 101, 114, 2,
+			32, 3, 83, 112, 34, 84, 13, 34, 0, 114, 119, 101, 114, 121, 3, 83, 112, 34, 84, 13, 34, 2, 123, 0, 114, 119, 101, 114, 115, 3,
+			83, 112, 34, 84, 13, 34, 89, 0, 4, 114, 115, 1, 21, 2, 32, 3, 83, 112, 34, 89, 0, 114, 115, 1, 21, 2, 101, 32, 0, 114,
+			115, 2, 100, 0, 114, 115, 2, 107, 117, 110, 115, 0, 114, 115, 2, 114, 0, 114, 115, 2, 118, 0, 114, 115, 8, 2, 98, 0, 114, 115,
+			101, 1, 17, 67, 2, 32, 3, 83, 112, 34, 89, 13, 0, 108, 100, 2, 17, 67, 3, 83, 112, 55, 47, 0, 4, 108, 100, 2, 101, 107,
+			115, 3, 83, 112, 55, 47, 10, 0, 108, 100, 2, 111, 0, 4, 103, 2, 101, 101, 110, 3, 83, 112, 136, 10, 0, 103, 2, 111, 0, 4,
+			114, 1, 17, 67, 21, 2, 32, 3, 83, 113, 34, 0, 114, 2, 114, 101, 105, 107, 0, 114, 2, 115, 105, 101, 32, 0, 114, 2, 115, 105,
+			101, 115, 32, 0, 114, 108, 97, 110, 103, 115, 8, 3, 83, 113, 34, 55, 35, 68, 89, 0, 4, 114, 115, 2, 107, 97, 108, 17, 67, 3,
+			83, 113, 34, 89, 0, 114, 115, 2, 112, 97, 110, 111, 114, 0, 114, 115, 2, 97, 108, 98, 117, 109, 3, 83, 113, 34, 89, 10, 0, 114,
+			115, 101, 2, 98, 3, 83, 113, 34, 89, 13, 0, 114, 103, 101, 2, 115, 116, 114, 101, 107, 3, 83, 113, 34, 136, 13, 0, 4, 114, 101,
+			2, 32, 3, 83, 116, 34, 13, 0, 114, 101, 2, 98, 0, 114, 101, 2, 100, 111, 0, 114, 101, 2, 104, 0, 114, 101, 2, 107, 0, 114,
+			101, 2, 109, 0, 114, 101, 2, 115, 116, 111, 0, 114, 101, 2, 118, 0, 4, 116, 111, 8, 2, 114, 101, 103, 3, 83, 116, 47, 2, 40,
+			0, 116, 111, 8, 2, 115, 116, 101, 109, 0, 116, 101, 2, 29, 3, 83, 116, 47, 13, 0, 116, 101, 114, 2, 25, 3, 83, 116, 47, 13,
+			34, 0, 108, 1, 21, 2, 17, 65, 3, 83, 116, 55, 0, 110, 2, 115, 116, 101, 114, 3, 83, 134, 50, 0, 114, 105, 102, 105, 2, 21,
+			3, 84, 2, 108, 34, 2, 37, 83, 2, 37, 0, 110, 2, 100, 101, 116, 116, 97, 3, 84, 2, 108, 50, 0, 4, 114, 2, 98, 97, 97,
+			108, 3, 84, 2, 112, 34, 0, 114, 2, 98, 97, 108, 17, 65, 0, 114, 115, 105, 102, 105, 2, 17, 67, 3, 84, 2, 112, 34, 89, 2,
+			37, 83, 2, 37, 0, 114, 115, 101, 1, 17, 65, 25, 2, 32, 3, 84, 6, 112, 34, 89, 13, 0, 114, 97, 110, 100, 97, 3, 84, 13,
+			34, 35, 50, 72, 35, 0, 114, 98, 101, 110, 97, 3, 84, 13, 34, 71, 116, 50, 2, 35, 0, 110, 101, 2, 115, 105, 17, 65, 3, 84,
+			13, 50, 37, 12, 0, 114, 1, 111, 114, 116, 2, 25, 3, 84, 112, 34, 0, 2, 110, 117, 115, 3, 84, 116, 0, 7, 6, 118, 111, 0,
+			114, 2, 32, 3, 21, 0, 4, 2, 107, 97, 3, 83, 2, 40, 0, 8, 2, 109, 101, 0, 2, 108, 17, 67, 3, 83, 2, 110, 0, 4,
+			108, 2, 98, 114, 105, 110, 103, 3, 83, 2, 110, 55, 0, 108, 2, 103, 114, 111, 101, 105, 0, 108, 2, 107, 111, 109, 101, 0, 108, 2,
+			101, 105, 110, 100, 105, 103, 3, 83, 2, 110, 55, 10, 0, 108, 108, 101, 2, 100, 105, 103, 3, 83, 2, 110, 55, 116, 0, 4, 111, 114,
+			2, 107, 111, 109, 98, 97, 3, 83, 2, 117, 34, 0, 111, 114, 2, 115, 105, 101, 0, 111, 114, 2, 115, 112, 111, 101, 100, 105, 0, 111,
+			114, 8, 2, 100, 101, 108, 105, 103, 0, 111, 114, 8, 2, 107, 111, 109, 17, 65, 0, 4, 111, 114, 2, 97, 102, 103, 97, 97, 110, 3,
+			83, 2, 117, 34, 10, 0, 111, 114, 116, 2, 100, 117, 114, 101, 110, 0, 111, 114, 116, 2, 118, 21, 21, 3, 83, 2, 117, 34, 47, 0,
+			111, 114, 119, 97, 97, 114, 100, 101, 2, 32, 3, 83, 2, 117, 34, 84, 115, 34, 72, 13, 0, 111, 114, 115, 116, 101, 100, 101, 108, 105,
+			2, 107, 3, 83, 2, 117, 34, 89, 47, 116, 72, 13, 55, 13, 0, 111, 114, 115, 107, 114, 105, 102, 116, 101, 108, 105, 2, 107, 3, 83,
+			2, 117, 34, 89, 49, 34, 109, 83, 47, 13, 55, 13, 0, 111, 103, 2, 100, 121, 3, 83, 2, 117, 136, 0, 101, 114, 105, 103, 1, 21,
+			3, 83, 6, 40, 34, 13, 136, 0, 108, 111, 112, 3, 83, 6, 110, 55, 10, 110, 48, 0, 114, 101, 110, 3, 83, 6, 117, 34, 13, 50,
+			0, 111, 114, 98, 101, 8, 2, 21, 14, 128, 132, 134, 3, 83, 6, 117, 34, 71, 13, 0, 111, 114, 103, 101, 8, 2, 21, 14, 128, 132,
+			134, 3, 83, 6, 117, 34, 136, 13, 0, 108, 2, 109, 97, 103, 3, 83, 7, 110, 55, 0, 4, 2, 108, 108, 17, 65, 32, 3, 83, 110,
+			0, 2, 108, 108, 101, 114, 0, 114, 109, 3, 83, 110, 34, 13, 65, 0, 114, 115, 116, 105, 2, 110, 3, 83, 110, 34, 89, 47, 6, 109,
+			0, 4, 108, 2, 98, 3, 83, 110, 55, 0, 108, 2, 103, 0, 108, 2, 104, 111, 117, 32, 0, 108, 2, 109, 97, 97, 110, 0, 108, 2,
+			109, 97, 110, 101, 0, 108, 2, 112, 114, 111, 112, 0, 108, 2, 114, 0, 108, 2, 115, 105, 17, 67, 0, 108, 2, 115, 116, 101, 32, 0,
+			108, 2, 115, 116, 111, 0, 108, 8, 2, 115, 107, 0, 108, 108, 101, 115, 2, 32, 3, 83, 110, 55, 13, 89, 0, 108, 116, 121, 100, 115,
+			3, 83, 110, 55, 47, 123, 47, 89, 0, 108, 107, 3, 83, 110, 55, 49, 0, 108, 107, 101, 3, 83, 110, 55, 49, 13, 0, 108, 119, 97,
+			115, 115, 101, 3, 83, 110, 55, 84, 6, 35, 89, 13, 0, 108, 108, 2, 101, 110, 103, 116, 101, 3, 83, 110, 55, 108, 0, 4, 111, 114,
+			2, 115, 107, 3, 83, 117, 34, 0, 111, 114, 2, 116, 114, 97, 112, 0, 111, 114, 2, 116, 114, 101, 107, 0, 111, 114, 8, 2, 98, 101,
+			101, 12, 0, 111, 114, 2, 17, 65, 3, 83, 117, 34, 10, 0, 111, 114, 117, 105, 116, 8, 3, 83, 117, 34, 10, 6, 127, 47, 0, 111,
+			114, 98, 97, 114, 3, 83, 117, 34, 71, 6, 115, 34, 0, 111, 114, 119, 97, 97, 114, 100, 101, 2, 32, 24, 3, 83, 117, 34, 84, 115,
+			34, 72, 13, 0, 111, 114, 115, 112, 101, 2, 108, 25, 3, 83, 117, 34, 89, 48, 6, 112, 0, 111, 114, 117, 105, 116, 2, 115, 116, 114,
+			101, 119, 3, 83, 117, 34, 127, 47, 6, 0, 108, 117, 109, 101, 3, 84, 2, 110, 55, 118, 65, 13, 0, 100, 107, 97, 3, 84, 110, 47,
+			49, 35, 0, 7, 6, 119, 101, 0, 8, 2, 108, 108, 21, 21, 3, 84, 2, 112, 0, 114, 107, 2, 115, 116, 101, 108, 108, 105, 3, 84,
+			2, 112, 34, 49, 0, 4, 108, 2, 115, 107, 97, 112, 101, 3, 84, 2, 112, 55, 0, 108, 2, 115, 112, 114, 101, 107, 101, 110, 0, 108,
+			2, 119, 105, 108, 0, 108, 8, 2, 114, 0, 108, 8, 2, 118, 0, 108, 8, 2, 101, 100, 101, 108, 3, 84, 2, 112, 55, 10, 0, 108,
+			98, 101, 104, 97, 97, 103, 108, 105, 107, 3, 84, 2, 112, 55, 71, 13, 107, 115, 136, 55, 13, 49, 0, 101, 2, 109, 111, 101, 100, 105,
+			3, 84, 2, 116, 0, 4, 101, 114, 2, 98, 97, 114, 115, 116, 3, 84, 2, 116, 34, 0, 101, 114, 2, 104, 111, 117, 0, 101, 114, 2,
+			107, 97, 97, 116, 115, 0, 101, 114, 2, 108, 101, 103, 0, 101, 114, 2, 108, 195, 170, 0, 101, 114, 2, 115, 116, 97, 97, 110, 0, 101,
+			114, 2, 115, 116, 114, 101, 119, 0, 101, 116, 2, 103, 105, 101, 114, 105, 103, 3, 84, 2, 116, 47, 0, 100, 101, 114, 2, 118, 97, 3,
+			84, 2, 116, 72, 13, 34, 0, 107, 107, 101, 110, 100, 1, 21, 3, 84, 6, 108, 49, 13, 50, 47, 0, 107, 107, 101, 110, 100, 101, 1,
+			21, 3, 84, 6, 108, 49, 13, 50, 72, 13, 0, 110, 100, 105, 103, 1, 21, 3, 84, 6, 108, 50, 72, 13, 136, 0, 103, 103, 101, 8,
+			2, 17, 67, 21, 14, 128, 132, 133, 3, 84, 6, 112, 136, 13, 0, 115, 105, 103, 104, 101, 105, 100, 1, 21, 3, 84, 6, 116, 89, 13,
+			136, 123, 47, 0, 114, 1, 17, 65, 2, 17, 65, 17, 65, 3, 84, 13, 34, 0, 110, 101, 1, 10, 2, 32, 3, 84, 13, 50, 13, 0,
+			110, 115, 1, 101, 110, 3, 84, 13, 50, 89, 0, 1, 17, 67, 21, 2, 116, 25, 3, 84, 108, 0, 4, 100, 1, 21, 2, 115, 116, 114,
+			3, 84, 108, 47, 0, 100, 1, 115, 2, 17, 67, 0, 100, 121, 119, 101, 114, 3, 84, 108, 47, 123, 84, 13, 34, 0, 110, 8, 2, 97,
+			17, 67, 3, 84, 108, 50, 19, 0, 98, 8, 3, 84, 108, 71, 0, 100, 100, 1, 115, 2, 21, 3, 84, 108, 72, 0, 114, 112, 3, 84,
+			112, 34, 48, 0, 114, 107, 1, 116, 3, 84, 112, 34, 49, 0, 114, 119, 101, 108, 3, 84, 112, 34, 84, 13, 55, 0, 108, 2, 118, 97,
+			97, 114, 116, 3, 84, 112, 55, 0, 108, 102, 2, 32, 3, 84, 112, 55, 83, 0, 4, 103, 1, 21, 2, 32, 3, 84, 112, 136, 0, 103,
+			1, 114, 111, 111, 112, 115, 0, 103, 1, 25, 2, 111, 3, 84, 112, 136, 10, 0, 101, 114, 1, 115, 17, 65, 2, 32, 3, 84, 116, 34,
+			0, 101, 114, 8, 2, 115, 112, 3, 84, 116, 34, 6, 0, 114, 101, 1, 101, 103, 3, 84, 116, 34, 13, 0, 114, 105, 110, 103, 1, 17,
+			67, 21, 2, 32, 3, 84, 116, 34, 13, 68, 0, 116, 101, 110, 2, 17, 67, 3, 84, 116, 47, 13, 50, 0, 107, 101, 8, 2, 17, 67,
+			3, 84, 116, 49, 13, 0, 101, 115, 1, 21, 2, 32, 3, 84, 116, 89, 0, 105, 102, 101, 2, 108, 3, 84, 123, 83, 13, 0, 110, 115,
+			1, 115, 101, 101, 102, 3, 84, 134, 50, 89, 0, 7, 6, 97, 0, 4, 1, 17, 67, 2, 17, 67, 115, 105, 101, 114, 3, 2, 35, 0,
+			1, 17, 67, 2, 114, 105, 110, 97, 0, 1, 17, 67, 2, 116, 101, 114, 105, 110, 103, 0, 1, 17, 67, 11, 2, 32, 0, 1, 17, 67,
+			17, 65, 2, 32, 0, 1, 17, 67, 21, 2, 116, 105, 101, 102, 0, 1, 17, 67, 21, 2, 116, 105, 101, 119, 101, 0, 1, 21, 2, 17,
+			67, 105, 115, 97, 115, 105, 101, 0, 1, 21, 2, 17, 67, 105, 115, 101, 101, 114, 0, 1, 21, 2, 17, 67, 105, 115, 101, 114, 105, 110,
+			103, 0, 1, 98, 10, 2, 32, 0, 1, 100, 2, 103, 111, 103, 103, 101, 110, 0, 1, 100, 10, 2, 32, 0, 1, 105, 2, 32, 0, 1,
+			105, 2, 116, 105, 101, 17, 67, 0, 1, 106, 2, 112, 97, 110, 0, 1, 109, 21, 2, 116, 105, 101, 107, 0, 1, 109, 114, 10, 2, 32,
+			0, 1, 114, 10, 2, 32, 0, 1, 116, 10, 2, 32, 24, 0, 2, 17, 67, 17, 65, 17, 65, 0, 2, 17, 67, 121, 0, 2, 102, 102,
+			108, 105, 107, 0, 2, 103, 105, 116, 17, 65, 0, 2, 103, 111, 110, 105, 101, 0, 2, 103, 117, 114, 107, 105, 101, 0, 2, 107, 107, 111,
+			111, 114, 100, 0, 2, 108, 97, 114, 109, 0, 2, 108, 105, 115, 109, 101, 0, 2, 108, 105, 116, 101, 105, 116, 0, 2, 109, 101, 110, 116,
+			0, 2, 114, 105, 115, 116, 111, 107, 114, 0, 2, 115, 105, 101, 108, 0, 2, 115, 112, 101, 114, 115, 105, 101, 0, 2, 116, 111, 109, 17,
+			65, 0, 8, 2, 98, 17, 67, 0, 8, 2, 102, 102, 17, 65, 0, 8, 2, 107, 117, 0, 8, 2, 107, 119, 97, 116, 0, 8, 2, 108,
+			17, 65, 0, 8, 2, 108, 108, 111, 111, 105, 0, 8, 2, 108, 108, 117, 0, 8, 2, 112, 17, 67, 0, 8, 2, 112, 111, 0, 8, 2,
+			115, 116, 114, 17, 65, 0, 8, 107, 2, 110, 17, 65, 0, 102, 2, 118, 97, 108, 108, 105, 103, 0, 4, 114, 1, 25, 2, 112, 117, 105,
+			115, 3, 2, 35, 34, 0, 114, 2, 103, 97, 195, 175, 0, 114, 2, 109, 111, 101, 100, 105, 103, 0, 114, 2, 115, 101, 101, 110, 0, 114,
+			2, 116, 105, 107, 101, 108, 0, 114, 8, 2, 103, 105, 0, 114, 8, 2, 111, 109, 0, 114, 97, 2, 98, 105, 101, 114, 3, 2, 35, 34,
+			2, 35, 0, 114, 97, 98, 101, 2, 115, 107, 3, 2, 35, 34, 2, 35, 71, 108, 0, 114, 101, 2, 111, 108, 17, 65, 3, 2, 35, 34,
+			2, 37, 0, 114, 114, 111, 2, 103, 3, 2, 35, 34, 2, 40, 0, 114, 121, 1, 108, 101, 107, 107, 111, 109, 115, 21, 21, 21, 3, 2,
+			35, 34, 2, 123, 0, 114, 114, 101, 2, 115, 116, 17, 65, 3, 2, 35, 34, 13, 0, 4, 114, 109, 2, 108, 97, 115, 116, 3, 2, 35,
+			34, 14, 65, 0, 114, 109, 2, 115, 97, 108, 105, 103, 0, 114, 116, 105, 107, 117, 3, 2, 35, 34, 47, 2, 37, 49, 2, 118, 0, 114,
+			116, 101, 2, 102, 97, 107, 3, 2, 35, 34, 47, 13, 0, 114, 116, 105, 108, 108, 101, 2, 114, 105, 101, 3, 2, 35, 34, 47, 13, 55,
+			13, 0, 114, 116, 101, 8, 2, 114, 105, 3, 2, 35, 34, 47, 116, 0, 114, 115, 101, 2, 110, 97, 3, 2, 35, 34, 89, 13, 0, 114,
+			114, 101, 115, 2, 32, 3, 2, 35, 34, 108, 89, 0, 114, 97, 2, 98, 105, 3, 2, 35, 34, 115, 0, 114, 101, 110, 97, 2, 25, 12,
+			3, 2, 35, 34, 116, 50, 2, 35, 0, 114, 103, 2, 108, 105, 115, 116, 3, 2, 35, 34, 136, 0, 114, 103, 105, 116, 101, 107, 3, 2,
+			35, 34, 136, 2, 37, 47, 108, 49, 0, 114, 103, 101, 2, 116, 105, 112, 3, 2, 35, 34, 136, 13, 0, 114, 103, 101, 110, 2, 116, 17,
+			65, 3, 2, 35, 34, 136, 13, 50, 0, 4, 100, 2, 118, 105, 101, 115, 3, 2, 35, 47, 0, 116, 2, 108, 97, 110, 116, 0, 116, 2,
+			108, 101, 0, 116, 116, 101, 115, 116, 2, 17, 65, 3, 2, 35, 47, 2, 108, 89, 47, 0, 116, 111, 114, 105, 101, 115, 1, 21, 3, 2,
+			35, 47, 6, 117, 34, 37, 89, 0, 4, 116, 101, 1, 115, 2, 108, 3, 2, 35, 47, 13, 0, 116, 104, 101, 1, 17, 67, 2, 114, 105,
+			110, 97, 0, 116, 114, 111, 2, 102, 105, 101, 3, 2, 35, 47, 34, 2, 40, 0, 116, 116, 114, 105, 98, 2, 117, 3, 2, 35, 47, 34,
+			13, 71, 0, 116, 108, 101, 2, 116, 105, 101, 107, 3, 2, 35, 47, 55, 13, 0, 100, 109, 105, 2, 114, 3, 2, 35, 47, 65, 2, 37,
+			0, 116, 109, 111, 2, 115, 102, 101, 3, 2, 35, 47, 65, 2, 110, 0, 100, 109, 105, 110, 105, 3, 2, 35, 47, 65, 13, 50, 13, 0,
+			100, 109, 105, 2, 115, 115, 105, 101, 3, 2, 35, 47, 65, 37, 0, 116, 101, 108, 2, 106, 101, 101, 3, 2, 35, 47, 114, 0, 112, 111,
+			2, 107, 114, 105, 101, 17, 67, 3, 2, 35, 48, 2, 40, 0, 112, 111, 107, 97, 2, 108, 3, 2, 35, 48, 2, 110, 49, 2, 35, 0,
+			112, 111, 108, 111, 103, 2, 17, 65, 3, 2, 35, 48, 2, 110, 55, 2, 40, 136, 0, 112, 112, 101, 2, 108, 108, 17, 65, 3, 2, 35,
+			48, 13, 0, 112, 112, 97, 114, 2, 17, 65, 3, 2, 35, 48, 13, 34, 0, 112, 112, 101, 108, 8, 2, 107, 111, 21, 3, 2, 35, 48,
+			13, 55, 0, 112, 111, 115, 116, 111, 2, 108, 105, 101, 3, 2, 35, 48, 13, 89, 47, 117, 0, 112, 112, 114, 111, 112, 114, 105, 2, 17,
+			65, 3, 2, 35, 48, 34, 2, 117, 48, 34, 2, 37, 0, 112, 97, 114, 116, 3, 2, 35, 48, 35, 34, 47, 0, 112, 112, 108, 105, 2,
+			107, 97, 110, 116, 3, 2, 35, 48, 55, 2, 37, 0, 98, 115, 111, 2, 108, 117, 3, 2, 35, 48, 89, 2, 40, 0, 98, 115, 101, 2,
+			115, 3, 2, 35, 48, 89, 108, 0, 112, 112, 101, 110, 2, 100, 105, 17, 67, 3, 2, 35, 48, 108, 50, 0, 107, 2, 115, 121, 110, 3,
+			2, 35, 49, 0, 107, 111, 2, 17, 67, 105, 101, 116, 3, 2, 35, 49, 2, 40, 0, 107, 107, 111, 109, 109, 111, 2, 100, 3, 2, 35,
+			49, 2, 110, 65, 13, 0, 107, 107, 117, 2, 114, 97, 3, 2, 35, 49, 2, 118, 0, 107, 97, 2, 100, 101, 21, 3, 2, 35, 49, 13,
+			0, 107, 107, 101, 100, 105, 3, 2, 35, 49, 13, 72, 109, 0, 107, 114, 111, 2, 98, 97, 3, 2, 35, 49, 34, 2, 40, 0, 107, 116,
+			117, 97, 114, 105, 2, 17, 65, 3, 2, 35, 49, 47, 2, 118, 2, 35, 34, 2, 37, 0, 107, 119, 97, 114, 101, 2, 108, 3, 2, 35,
+			49, 58, 2, 35, 34, 112, 0, 107, 119, 97, 109, 97, 2, 114, 121, 110, 3, 2, 35, 49, 58, 2, 35, 65, 2, 35, 0, 107, 97, 2,
+			115, 105, 97, 3, 2, 35, 49, 115, 0, 110, 111, 2, 110, 105, 21, 3, 2, 35, 50, 2, 40, 0, 110, 116, 101, 114, 105, 110, 103, 3,
+			2, 35, 50, 47, 116, 34, 13, 68, 0, 4, 108, 2, 98, 97, 115, 116, 101, 114, 3, 2, 35, 55, 0, 108, 2, 98, 105, 110, 111, 0,
+			108, 2, 106, 97, 110, 100, 101, 114, 0, 108, 8, 2, 119, 101, 0, 108, 117, 2, 109, 105, 110, 105, 117, 109, 3, 2, 35, 55, 2, 40,
+			0, 108, 101, 120, 2, 97, 3, 2, 35, 55, 2, 108, 49, 88, 0, 108, 101, 107, 115, 97, 110, 100, 2, 114, 121, 3, 2, 35, 55, 2,
+			108, 49, 89, 2, 35, 50, 72, 0, 4, 108, 105, 8, 17, 67, 2, 102, 111, 114, 110, 105, 3, 2, 35, 55, 13, 0, 108, 108, 101, 2,
+			109, 105, 110, 116, 0, 108, 108, 101, 114, 2, 103, 105, 101, 32, 24, 3, 2, 35, 55, 13, 34, 0, 108, 8, 2, 101, 119, 105, 103, 3,
+			2, 35, 55, 38, 0, 108, 107, 111, 104, 111, 108, 2, 105, 101, 25, 3, 2, 35, 55, 49, 2, 40, 107, 117, 55, 0, 108, 109, 97, 2,
+			110, 97, 107, 3, 2, 35, 55, 65, 2, 35, 0, 108, 102, 97, 98, 101, 2, 116, 17, 65, 3, 2, 35, 55, 83, 2, 35, 71, 116, 0,
+			108, 108, 101, 114, 2, 103, 105, 101, 3, 2, 35, 55, 112, 34, 0, 108, 108, 101, 2, 110, 17, 65, 3, 2, 35, 55, 116, 0, 108, 108,
+			101, 101, 110, 3, 2, 35, 55, 116, 50, 0, 108, 99, 104, 101, 2, 109, 105, 3, 2, 35, 55, 136, 2, 116, 0, 108, 103, 101, 2, 114,
+			121, 110, 3, 2, 35, 55, 136, 13, 0, 4, 109, 8, 2, 17, 65, 3, 2, 35, 65, 0, 109, 8, 2, 110, 17, 65, 0, 109, 97, 114,
+			117, 108, 97, 3, 2, 35, 65, 2, 35, 34, 40, 55, 2, 35, 0, 109, 97, 115, 111, 110, 101, 3, 2, 35, 65, 2, 35, 89, 117, 50,
+			13, 0, 109, 117, 2, 17, 67, 17, 65, 3, 2, 35, 65, 2, 118, 0, 109, 112, 105, 2, 111, 101, 110, 3, 2, 35, 65, 48, 2, 37,
+			0, 109, 98, 97, 115, 115, 2, 97, 100, 101, 3, 2, 35, 65, 71, 2, 35, 89, 0, 109, 98, 97, 115, 115, 97, 2, 100, 101, 117, 3,
+			2, 35, 65, 71, 2, 35, 89, 2, 35, 0, 109, 98, 117, 2, 108, 3, 2, 35, 65, 71, 2, 118, 0, 109, 101, 114, 2, 105, 107, 3,
+			2, 35, 65, 116, 34, 0, 109, 109, 111, 2, 110, 105, 17, 65, 3, 2, 35, 65, 117, 0, 98, 111, 8, 2, 17, 67, 3, 2, 35, 71,
+			110, 0, 4, 98, 101, 108, 1, 116, 3, 2, 35, 71, 112, 55, 0, 98, 101, 108, 108, 1, 116, 0, 100, 111, 108, 101, 115, 115, 101, 110,
+			3, 2, 35, 72, 2, 117, 55, 13, 89, 108, 50, 0, 100, 114, 101, 110, 97, 2, 108, 105, 3, 2, 35, 72, 34, 13, 50, 2, 35, 0,
+			100, 114, 101, 2, 25, 3, 2, 35, 72, 34, 108, 0, 103, 97, 2, 112, 97, 110, 116, 3, 2, 35, 81, 2, 35, 0, 4, 102, 2, 103,
+			117, 110, 115, 116, 105, 103, 3, 2, 35, 83, 0, 102, 2, 104, 97, 110, 107, 0, 102, 2, 115, 105, 103, 116, 101, 0, 102, 2, 115, 107,
+			117, 119, 0, 102, 2, 115, 121, 100, 105, 103, 0, 102, 2, 119, 97, 103, 116, 101, 110, 0, 102, 8, 2, 107, 101, 114, 105, 103, 0, 102,
+			8, 2, 107, 111, 109, 115, 116, 105, 103, 0, 102, 102, 111, 2, 100, 105, 108, 3, 2, 35, 83, 2, 40, 0, 118, 111, 107, 97, 100, 101,
+			3, 2, 35, 83, 2, 40, 49, 115, 72, 13, 0, 118, 111, 107, 97, 100, 111, 3, 2, 35, 83, 2, 40, 49, 115, 72, 40, 0, 102, 114,
+			105, 107, 2, 97, 97, 110, 3, 2, 35, 83, 34, 2, 37, 49, 0, 102, 114, 105, 107, 97, 110, 101, 2, 25, 3, 2, 35, 83, 34, 2,
+			37, 49, 115, 50, 13, 0, 4, 102, 114, 111, 2, 100, 105, 116, 3, 2, 35, 83, 34, 2, 40, 0, 112, 104, 114, 111, 2, 100, 105, 116,
+			0, 102, 102, 114, 111, 2, 110, 116, 3, 2, 35, 83, 34, 2, 110, 0, 102, 119, 101, 115, 105, 103, 3, 2, 35, 83, 84, 116, 89, 13,
+			136, 0, 102, 115, 116, 111, 111, 116, 108, 3, 2, 35, 83, 89, 47, 117, 47, 55, 0, 102, 115, 111, 110, 100, 101, 114, 108, 3, 2, 35,
+			83, 89, 110, 50, 13, 34, 55, 0, 102, 103, 114, 121, 115, 108, 105, 107, 3, 2, 35, 83, 136, 34, 123, 89, 55, 13, 49, 0, 118, 111,
+			110, 116, 117, 2, 114, 105, 101, 114, 3, 2, 35, 84, 2, 110, 50, 47, 2, 118, 0, 115, 8, 2, 107, 101, 3, 2, 35, 89, 0, 115,
+			115, 117, 2, 114, 97, 110, 3, 2, 35, 89, 2, 111, 0, 115, 115, 111, 115, 105, 2, 17, 65, 3, 2, 35, 89, 2, 117, 91, 2, 37,
+			0, 115, 115, 101, 2, 103, 97, 97, 105, 3, 2, 35, 89, 13, 0, 115, 115, 105, 115, 116, 3, 2, 35, 89, 13, 89, 47, 0, 115, 112,
+			105, 8, 2, 114, 17, 65, 3, 2, 35, 89, 48, 2, 37, 0, 115, 112, 101, 107, 3, 2, 35, 89, 48, 108, 49, 0, 115, 107, 105, 116,
+			101, 8, 3, 2, 35, 89, 49, 37, 47, 13, 0, 115, 107, 97, 114, 105, 3, 2, 35, 89, 49, 115, 34, 2, 37, 0, 115, 98, 101, 115,
+			8, 3, 2, 35, 89, 71, 108, 89, 0, 115, 115, 101, 2, 115, 115, 111, 114, 3, 2, 35, 89, 108, 0, 115, 115, 105, 115, 1, 114, 2,
+			25, 3, 2, 35, 89, 109, 89, 0, 103, 111, 110, 105, 101, 2, 32, 24, 3, 2, 35, 136, 2, 40, 50, 37, 0, 103, 116, 101, 2, 108,
+			111, 115, 105, 103, 3, 2, 35, 136, 47, 13, 0, 4, 103, 116, 101, 114, 2, 98, 97, 107, 3, 2, 35, 136, 47, 13, 34, 0, 103, 116,
+			101, 114, 2, 100, 111, 103, 116, 0, 103, 116, 101, 114, 2, 108, 111, 115, 105, 103, 0, 103, 116, 101, 114, 2, 109, 105, 100, 100, 97, 0,
+			103, 116, 101, 114, 2, 115, 116, 97, 108, 108, 0, 103, 116, 101, 114, 2, 118, 111, 108, 103, 0, 103, 116, 101, 114, 2, 111, 111, 114, 3,
+			2, 35, 136, 47, 13, 34, 10, 0, 103, 116, 101, 114, 101, 101, 110, 2, 118, 111, 108, 103, 3, 2, 35, 136, 47, 13, 34, 10, 2, 116,
+			50, 0, 103, 116, 101, 114, 2, 117, 105, 116, 3, 2, 35, 136, 47, 13, 34, 19, 0, 103, 101, 110, 116, 3, 2, 35, 136, 108, 50, 47,
+			0, 103, 101, 110, 100, 97, 3, 2, 35, 136, 108, 50, 72, 2, 35, 0, 103, 101, 2, 114, 101, 110, 100, 3, 2, 35, 136, 116, 0, 117,
+			103, 117, 115, 116, 117, 115, 3, 2, 110, 136, 111, 89, 47, 111, 89, 0, 2, 112, 111, 108, 105, 116, 105, 3, 2, 115, 0, 117, 115, 116,
+			114, 97, 3, 2, 117, 89, 47, 34, 115, 0, 195, 171, 2, 114, 111, 98, 105, 3, 2, 121, 0, 118, 111, 110, 2, 116, 3, 4, 35, 84,
+			110, 50, 0, 108, 103, 101, 109, 101, 101, 110, 3, 6, 35, 55, 136, 13, 65, 4, 116, 50, 0, 102, 8, 2, 21, 14, 128, 132, 130, 3,
+			6, 35, 83, 0, 102, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 35, 83, 136, 13, 0, 102, 103, 101, 101, 2, 12, 3, 6, 35,
+			83, 136, 116, 0, 103, 116, 101, 114, 103, 101, 8, 2, 21, 14, 128, 132, 135, 3, 6, 35, 136, 47, 13, 34, 136, 13, 0, 103, 116, 105,
+			103, 1, 10, 3, 6, 35, 136, 47, 13, 136, 0, 4, 1, 105, 2, 116, 105, 101, 115, 3, 6, 115, 0, 2, 114, 105, 17, 65, 0, 8,
+			17, 67, 2, 17, 67, 105, 101, 32, 0, 116, 111, 114, 1, 21, 2, 25, 3, 6, 115, 47, 110, 34, 0, 98, 101, 108, 1, 116, 107, 101,
+			112, 115, 3, 6, 115, 71, 13, 55, 0, 98, 105, 101, 1, 17, 67, 3, 6, 115, 71, 37, 0, 100, 8, 17, 67, 114, 97, 2, 17, 65,
+			3, 6, 115, 72, 0, 100, 105, 103, 1, 21, 3, 6, 115, 72, 13, 136, 0, 100, 105, 101, 115, 1, 17, 67, 17, 65, 3, 6, 115, 72,
+			37, 89, 0, 115, 105, 101, 1, 17, 67, 3, 6, 115, 89, 37, 0, 103, 116, 101, 114, 8, 2, 101, 110, 3, 7, 35, 136, 47, 13, 34,
+			10, 0, 116, 116, 97, 99, 104, 195, 169, 3, 10, 2, 35, 47, 2, 35, 91, 116, 0, 4, 99, 107, 2, 32, 3, 21, 0, 121, 2, 32,
+			0, 121, 115, 2, 32, 0, 4, 105, 110, 101, 2, 32, 3, 21, 102, 114, 0, 105, 114, 101, 1, 21, 2, 32, 0, 4, 1, 17, 67, 2,
+			120, 17, 65, 12, 3, 35, 0, 1, 107, 10, 2, 32, 0, 1, 116, 115, 2, 116, 105, 115, 116, 0, 2, 17, 67, 0, 8, 2, 98, 98,
+			97, 0, 2, 100, 114, 101, 115, 3, 35, 6, 0, 114, 121, 1, 108, 101, 17, 67, 3, 35, 34, 6, 123, 0, 114, 109, 101, 115, 8, 3,
+			35, 34, 19, 65, 13, 89, 0, 100, 8, 112, 2, 17, 65, 3, 35, 47, 0, 116, 116, 101, 110, 2, 17, 67, 3, 35, 47, 6, 108, 50,
+			0, 116, 111, 114, 101, 1, 21, 2, 32, 3, 35, 47, 6, 117, 34, 13, 0, 116, 116, 101, 110, 2, 100, 3, 35, 47, 13, 50, 0, 112,
+			112, 8, 2, 17, 65, 3, 35, 48, 0, 112, 112, 195, 168, 108, 3, 35, 48, 6, 112, 55, 0, 4, 112, 1, 17, 67, 2, 111, 111, 114,
+			3, 35, 48, 10, 0, 112, 1, 17, 67, 2, 111, 114, 101, 32, 0, 108, 105, 8, 2, 107, 114, 17, 65, 3, 35, 55, 2, 37, 0, 108,
+			111, 195, 171, 3, 35, 55, 6, 40, 13, 0, 108, 111, 111, 103, 3, 35, 55, 6, 117, 136, 0, 108, 111, 103, 105, 101, 115, 3, 35, 55,
+			6, 117, 136, 37, 89, 0, 108, 108, 101, 8, 2, 17, 67, 3, 35, 55, 13, 0, 108, 111, 109, 8, 2, 21, 3, 35, 55, 19, 110, 65,
+			0, 108, 111, 103, 105, 101, 3, 35, 55, 40, 136, 6, 37, 0, 108, 107, 111, 104, 111, 108, 3, 35, 55, 49, 2, 40, 2, 110, 55, 0,
+			108, 109, 101, 2, 108, 101, 3, 35, 55, 65, 13, 0, 108, 102, 97, 98, 101, 2, 116, 25, 3, 35, 55, 83, 35, 71, 108, 0, 109, 97,
+			110, 100, 101, 108, 3, 35, 65, 6, 35, 50, 72, 13, 55, 0, 109, 112, 101, 114, 8, 3, 35, 65, 48, 13, 34, 0, 100, 106, 117, 110,
+			107, 3, 35, 72, 57, 6, 111, 68, 49, 0, 115, 1, 17, 67, 21, 2, 32, 3, 35, 89, 0, 103, 116, 8, 2, 117, 117, 114, 3, 35,
+			136, 47, 0, 103, 116, 101, 114, 110, 97, 3, 35, 136, 47, 13, 34, 50, 6, 115, 0, 4, 3, 115, 0, 1, 17, 67, 2, 17, 67, 105,
+			97, 32, 0, 1, 109, 97, 116, 2, 116, 105, 101, 107, 0, 1, 114, 98, 17, 67, 2, 32, 0, 1, 114, 100, 10, 2, 32, 0, 1, 114,
+			118, 10, 2, 32, 0, 1, 119, 2, 116, 101, 114, 105, 110, 103, 0, 2, 17, 67, 17, 65, 0, 2, 17, 67, 105, 101, 0, 2, 104, 108,
+			101, 32, 0, 8, 2, 115, 105, 195, 171, 0, 101, 0, 104, 2, 17, 67, 0, 114, 101, 1, 17, 67, 2, 17, 67, 17, 65, 3, 115, 34,
+			13, 0, 114, 101, 110, 100, 115, 3, 115, 34, 13, 50, 47, 89, 10, 0, 114, 101, 97, 3, 115, 34, 37, 35, 0, 116, 114, 105, 117, 109,
+			3, 115, 47, 34, 37, 111, 65, 0, 108, 105, 97, 3, 115, 55, 2, 37, 2, 35, 0, 100, 101, 109, 8, 3, 115, 72, 13, 65, 0, 100,
+			105, 117, 1, 17, 67, 2, 25, 3, 115, 72, 37, 111, 0, 102, 101, 108, 1, 17, 67, 2, 21, 3, 115, 83, 13, 55, 0, 102, 114, 105,
+			107, 97, 3, 115, 83, 34, 37, 49, 35, 0, 4, 115, 105, 101, 1, 21, 21, 21, 21, 3, 115, 89, 2, 37, 0, 115, 105, 101, 1, 108,
+			112, 0, 115, 105, 101, 1, 112, 115, 21, 0, 115, 101, 109, 3, 115, 89, 13, 65, 0, 4, 115, 105, 101, 1, 17, 67, 11, 17, 67, 3,
+			115, 89, 37, 0, 115, 105, 101, 1, 98, 117, 111, 0, 115, 105, 101, 1, 108, 103, 0, 115, 105, 101, 1, 109, 114, 111, 102, 21, 0, 115,
+			105, 101, 1, 116, 115, 17, 65, 17, 65, 0, 115, 105, 101, 1, 116, 115, 17, 67, 0, 103, 105, 101, 1, 17, 67, 3, 115, 136, 37, 0,
+			117, 1, 25, 3, 120, 0, 4, 2, 100, 106, 105, 101, 3, 121, 0, 105, 0, 116, 106, 105, 101, 3, 121, 80, 37, 0, 101, 110, 2, 116,
+			106, 105, 101, 3, 122, 68, 0, 100, 106, 105, 101, 3, 122, 80, 37, 0, 117, 3, 129, 0, 117, 101, 114, 3, 129, 13, 34, 0, 7, 6,
+			98, 0, 2, 98, 3, 0, 117, 114, 121, 1, 21, 2, 32, 3, 21, 0, 2, 32, 24, 3, 48, 0, 4, 3, 71, 0, 2, 101, 101, 110,
+			116, 106, 105, 101, 12, 12, 0, 4, 105, 2, 115, 97, 114, 3, 71, 2, 37, 0, 105, 2, 122, 97, 0, 105, 8, 2, 103, 97, 0, 105,
+			115, 97, 110, 2, 116, 121, 110, 3, 71, 2, 37, 89, 2, 35, 50, 0, 4, 111, 2, 98, 111, 116, 105, 101, 3, 71, 2, 40, 0, 111,
+			2, 104, 97, 97, 105, 0, 111, 2, 104, 101, 0, 111, 101, 2, 100, 100, 104, 105, 0, 111, 101, 2, 116, 115, 101, 101, 114, 0, 4, 111,
+			101, 114, 2, 103, 111, 110, 100, 3, 71, 2, 40, 34, 0, 111, 101, 114, 2, 105, 110, 0, 111, 101, 107, 101, 2, 116, 25, 3, 71, 2,
+			40, 49, 108, 0, 117, 108, 2, 103, 97, 3, 71, 2, 40, 55, 0, 117, 108, 108, 101, 2, 116, 105, 110, 3, 71, 2, 40, 55, 13, 0,
+			111, 114, 8, 2, 100, 17, 65, 21, 3, 71, 2, 110, 34, 0, 111, 107, 109, 97, 2, 107, 105, 101, 114, 3, 71, 2, 110, 49, 65, 2,
+			35, 0, 111, 110, 115, 109, 97, 114, 97, 3, 71, 2, 110, 50, 89, 65, 115, 34, 2, 35, 0, 111, 98, 98, 101, 2, 106, 3, 71, 2,
+			110, 71, 13, 0, 117, 114, 2, 108, 101, 115, 107, 3, 71, 2, 111, 34, 0, 117, 102, 102, 101, 2, 116, 3, 71, 2, 111, 83, 108, 0,
+			111, 2, 116, 97, 110, 105, 101, 3, 71, 2, 117, 0, 111, 116, 97, 2, 110, 105, 101, 32, 24, 3, 71, 2, 117, 47, 2, 35, 0, 111,
+			111, 115, 2, 97, 97, 114, 100, 105, 103, 3, 71, 2, 117, 89, 10, 0, 117, 114, 2, 111, 107, 114, 97, 3, 71, 2, 118, 34, 0, 117,
+			114, 111, 3, 71, 2, 118, 34, 117, 0, 4, 121, 2, 107, 111, 109, 21, 3, 71, 2, 123, 0, 121, 2, 118, 111, 111, 114, 98, 0, 121,
+			2, 101, 101, 110, 3, 71, 2, 123, 10, 0, 121, 100, 101, 114, 2, 17, 67, 21, 3, 71, 2, 123, 72, 13, 34, 0, 121, 119, 111, 111,
+			114, 100, 101, 108, 105, 3, 71, 2, 123, 84, 117, 34, 72, 13, 55, 13, 0, 121, 103, 101, 2, 108, 111, 119, 105, 3, 71, 2, 123, 136,
+			13, 0, 121, 8, 2, 116, 101, 108, 14, 128, 132, 130, 3, 71, 6, 123, 0, 121, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 71, 6,
+			123, 136, 13, 0, 117, 105, 116, 101, 110, 2, 103, 101, 3, 71, 6, 127, 47, 13, 50, 0, 111, 101, 112, 101, 110, 115, 3, 71, 7, 40,
+			48, 134, 50, 89, 0, 111, 119, 101, 8, 3, 71, 7, 117, 84, 13, 0, 98, 101, 2, 114, 114, 3, 71, 13, 0, 105, 107, 105, 110, 105,
+			3, 71, 13, 49, 37, 50, 37, 0, 105, 108, 2, 106, 3, 71, 13, 55, 0, 105, 98, 108, 105, 2, 111, 17, 67, 3, 71, 13, 71, 55,
+			2, 37, 12, 2, 0, 114, 97, 118, 2, 17, 65, 3, 71, 34, 2, 35, 84, 0, 114, 97, 115, 105, 2, 108, 105, 3, 71, 34, 2, 35,
+			89, 109, 0, 114, 111, 2, 115, 106, 117, 3, 71, 34, 2, 110, 0, 114, 111, 2, 109, 105, 3, 71, 34, 2, 117, 0, 114, 117, 2, 116,
+			97, 3, 71, 34, 2, 118, 0, 114, 105, 101, 119, 101, 8, 2, 17, 67, 3, 71, 34, 7, 37, 84, 13, 0, 114, 105, 108, 2, 106, 97,
+			110, 116, 3, 71, 34, 13, 55, 0, 114, 101, 100, 97, 8, 3, 71, 34, 13, 72, 115, 0, 114, 97, 110, 100, 2, 114, 3, 71, 34, 35,
+			50, 47, 0, 114, 97, 110, 100, 2, 97, 3, 71, 34, 35, 50, 47, 10, 0, 114, 97, 110, 100, 2, 111, 3, 71, 34, 35, 50, 47, 19,
+			0, 114, 111, 110, 2, 17, 65, 21, 3, 71, 34, 110, 50, 10, 0, 114, 97, 105, 108, 108, 101, 3, 71, 34, 123, 12, 55, 10, 0, 114,
+			101, 105, 100, 101, 108, 3, 71, 34, 123, 72, 13, 55, 0, 111, 101, 114, 101, 3, 71, 40, 12, 34, 13, 0, 111, 117, 108, 101, 118, 97,
+			114, 100, 3, 71, 40, 55, 13, 84, 35, 34, 72, 0, 4, 108, 97, 2, 116, 97, 110, 116, 3, 71, 55, 2, 35, 0, 108, 97, 8, 2,
+			109, 101, 0, 108, 111, 101, 2, 100, 100, 111, 114, 115, 21, 3, 71, 55, 2, 40, 0, 4, 108, 111, 101, 100, 2, 115, 107, 101, 110, 100,
+			105, 103, 3, 71, 55, 2, 40, 47, 0, 108, 111, 101, 100, 2, 115, 116, 111, 108, 0, 4, 108, 111, 8, 2, 107, 107, 97, 3, 71, 55,
+			2, 110, 0, 108, 111, 8, 2, 107, 107, 101, 101, 114, 0, 108, 111, 110, 2, 100, 105, 110, 101, 3, 71, 55, 2, 110, 50, 0, 108, 121,
+			2, 109, 111, 101, 100, 3, 71, 55, 2, 123, 0, 108, 97, 100, 2, 17, 65, 3, 71, 55, 35, 47, 10, 0, 108, 105, 107, 8, 2, 17,
+			65, 3, 71, 55, 109, 49, 10, 0, 108, 111, 109, 2, 97, 107, 107, 101, 114, 3, 71, 55, 110, 65, 10, 0, 105, 100, 8, 3, 71, 109,
+			47, 10, 0, 105, 110, 110, 101, 3, 71, 109, 50, 13, 0, 105, 108, 108, 105, 2, 107, 3, 71, 109, 55, 13, 0, 105, 100, 100, 3, 71,
+			109, 72, 0, 111, 114, 100, 101, 2, 114, 3, 71, 110, 34, 72, 13, 0, 111, 107, 2, 111, 111, 105, 3, 71, 110, 49, 10, 0, 111, 110,
+			100, 101, 2, 17, 67, 3, 71, 110, 50, 72, 13, 0, 111, 109, 2, 17, 65, 17, 65, 3, 71, 110, 65, 10, 0, 111, 110, 103, 111, 8,
+			3, 71, 110, 68, 81, 40, 0, 111, 115, 99, 104, 2, 32, 3, 71, 110, 89, 0, 111, 115, 2, 17, 65, 21, 3, 71, 110, 89, 19, 0,
+			4, 111, 2, 103, 114, 111, 110, 100, 3, 71, 117, 0, 111, 2, 115, 107, 114, 105, 102, 0, 111, 2, 118, 0, 111, 8, 2, 107, 108, 101,
+			0, 111, 116, 97, 8, 2, 110, 105, 17, 67, 17, 65, 3, 71, 117, 47, 7, 115, 0, 111, 109, 97, 97, 110, 115, 3, 71, 117, 65, 115,
+			50, 89, 0, 111, 119, 101, 110, 3, 71, 117, 84, 13, 50, 6, 0, 121, 98, 101, 108, 3, 71, 123, 71, 13, 55, 0, 117, 105, 116, 101,
+			3, 71, 127, 47, 13, 0, 4, 117, 105, 116, 101, 110, 2, 115, 116, 101, 3, 71, 127, 47, 13, 50, 0, 117, 105, 116, 101, 110, 2, 116,
+			0, 117, 105, 116, 101, 110, 3, 71, 127, 47, 13, 50, 6, 0, 7, 6, 99, 0, 2, 99, 3, 0, 4, 101, 2, 32, 3, 21, 0, 101,
+			108, 1, 21, 2, 32, 0, 104, 97, 116, 0, 108, 101, 1, 21, 2, 32, 0, 121, 2, 32, 0, 4, 3, 49, 0, 104, 2, 108, 0, 104,
+			2, 114, 111, 0, 107, 0, 104, 97, 2, 114, 105, 115, 109, 97, 3, 49, 2, 35, 0, 97, 108, 2, 118, 17, 65, 3, 49, 2, 35, 55,
+			0, 97, 108, 97, 109, 97, 114, 105, 3, 49, 2, 35, 55, 2, 35, 65, 115, 34, 2, 37, 0, 104, 111, 114, 101, 2, 111, 103, 114, 97,
+			3, 49, 2, 110, 34, 2, 37, 0, 111, 108, 111, 109, 98, 105, 2, 97, 21, 3, 49, 2, 110, 55, 2, 110, 65, 71, 2, 37, 0, 104,
+			111, 108, 101, 115, 116, 101, 114, 111, 108, 3, 49, 2, 110, 55, 108, 89, 47, 14, 34, 2, 110, 55, 0, 108, 105, 99, 104, 195, 169, 3,
+			49, 55, 2, 37, 91, 116, 0, 111, 114, 110, 101, 2, 108, 105, 3, 49, 110, 34, 50, 7, 116, 0, 104, 111, 108, 101, 114, 97, 3, 49,
+			117, 55, 13, 34, 35, 10, 0, 111, 107, 101, 3, 49, 120, 49, 0, 104, 101, 100, 100, 97, 114, 3, 76, 108, 72, 13, 34, 0, 4, 2,
+			101, 3, 89, 0, 2, 105, 0, 2, 121, 0, 101, 110, 2, 116, 97, 117, 114, 17, 65, 3, 89, 2, 108, 50, 0, 105, 1, 21, 2, 32,
+			3, 89, 6, 37, 0, 121, 2, 114, 105, 108, 108, 105, 101, 3, 89, 13, 0, 105, 8, 2, 112, 114, 17, 65, 3, 89, 37, 0, 104, 97,
+			108, 101, 116, 3, 91, 2, 35, 55, 123, 0, 104, 105, 110, 2, 101, 3, 91, 2, 37, 50, 0, 104, 97, 117, 2, 17, 67, 3, 91, 2,
+			120, 0, 104, 105, 114, 117, 114, 103, 2, 105, 101, 32, 24, 3, 91, 13, 34, 2, 111, 34, 136, 0, 104, 105, 114, 117, 114, 103, 3, 91,
+			13, 34, 111, 34, 136, 0, 4, 104, 3, 136, 0, 104, 8, 0, 104, 101, 109, 105, 107, 97, 2, 108, 105, 3, 136, 2, 116, 65, 2, 37,
+			49, 115, 0, 7, 6, 100, 0, 4, 1, 21, 2, 116, 3, 0, 4, 2, 32, 100, 24, 3, 0, 2, 100, 3, 0, 4, 103, 101, 1, 21,
+			2, 32, 3, 21, 0, 103, 101, 2, 32, 0, 4, 1, 21, 2, 17, 67, 3, 47, 0, 1, 21, 2, 101, 116, 101, 17, 67, 32, 0, 1,
+			21, 2, 114, 97, 97, 109, 0, 1, 21, 2, 114, 111, 111, 115, 0, 1, 21, 2, 114, 111, 115, 101, 32, 0, 1, 21, 2, 114, 111, 115,
+			105, 101, 0, 1, 21, 2, 114, 117, 105, 109, 0, 1, 101, 111, 2, 114, 0, 1, 110, 21, 2, 101, 116, 101, 32, 0, 1, 110, 97, 104,
+			2, 114, 0, 1, 110, 97, 115, 2, 114, 0, 1, 110, 105, 119, 2, 114, 0, 1, 110, 111, 104, 2, 17, 67, 0, 1, 111, 111, 2, 114,
+			0, 2, 32, 0, 2, 114, 105, 101, 109, 32, 0, 4, 1, 17, 65, 2, 97, 103, 116, 105, 103, 3, 47, 10, 0, 1, 21, 2, 101, 105,
+			101, 110, 0, 1, 21, 2, 101, 105, 110, 100, 101, 32, 0, 1, 21, 2, 101, 105, 115, 0, 1, 21, 2, 105, 110, 104, 111, 117, 0, 1,
+			110, 21, 2, 117, 105, 116, 0, 1, 111, 111, 2, 17, 65, 3, 47, 19, 0, 119, 101, 115, 1, 21, 3, 47, 84, 6, 108, 89, 0, 119,
+			105, 108, 108, 105, 103, 1, 21, 3, 47, 84, 6, 109, 55, 13, 136, 0, 119, 101, 115, 101, 1, 21, 3, 47, 84, 116, 89, 13, 0, 115,
+			1, 21, 2, 32, 3, 47, 89, 0, 4, 3, 72, 0, 1, 21, 2, 114, 0, 1, 101, 111, 116, 2, 114, 0, 1, 111, 111, 114, 97, 107,
+			0, 1, 112, 2, 17, 67, 0, 1, 114, 101, 118, 2, 17, 67, 0, 100, 0, 100, 1, 21, 0, 100, 104, 0, 105, 2, 110, 97, 109, 105,
+			101, 3, 72, 2, 37, 0, 105, 97, 2, 17, 67, 3, 72, 2, 37, 2, 35, 0, 105, 97, 107, 111, 2, 110, 105, 101, 3, 72, 2, 37,
+			2, 35, 49, 2, 40, 0, 105, 114, 101, 107, 3, 72, 2, 37, 34, 108, 49, 0, 4, 105, 110, 97, 2, 109, 105, 101, 107, 3, 72, 2,
+			37, 50, 2, 35, 0, 105, 110, 97, 2, 109, 105, 101, 116, 0, 105, 110, 97, 2, 115, 116, 105, 101, 0, 105, 110, 111, 2, 115, 111, 117,
+			3, 72, 2, 37, 50, 2, 40, 0, 105, 101, 110, 115, 2, 119, 105, 108, 108, 105, 3, 72, 2, 37, 50, 89, 0, 105, 97, 107, 101, 110,
+			3, 72, 2, 37, 115, 49, 13, 50, 0, 105, 103, 105, 2, 116, 97, 3, 72, 2, 37, 136, 2, 37, 0, 117, 2, 101, 116, 3, 72, 2,
+			40, 12, 58, 0, 111, 101, 108, 2, 116, 114, 101, 102, 3, 72, 2, 40, 55, 0, 117, 118, 101, 116, 3, 72, 2, 40, 84, 123, 12, 0,
+			111, 101, 97, 110, 101, 3, 72, 2, 40, 115, 50, 13, 0, 111, 2, 115, 115, 105, 101, 114, 3, 72, 2, 110, 0, 111, 108, 2, 102, 121,
+			110, 3, 72, 2, 110, 55, 0, 111, 108, 111, 2, 109, 105, 101, 116, 3, 72, 2, 110, 55, 13, 0, 111, 109, 105, 110, 2, 17, 65, 3,
+			72, 2, 110, 65, 2, 37, 50, 0, 111, 109, 105, 110, 105, 2, 107, 97, 3, 72, 2, 110, 65, 2, 37, 50, 2, 37, 0, 97, 97, 114,
+			111, 112, 2, 118, 3, 72, 2, 115, 34, 2, 110, 48, 0, 97, 97, 114, 101, 110, 2, 116, 101, 3, 72, 2, 115, 34, 13, 50, 0, 97,
+			97, 100, 2, 119, 101, 114, 107, 3, 72, 2, 115, 47, 0, 111, 112, 97, 2, 109, 105, 3, 72, 2, 117, 48, 2, 35, 0, 97, 110, 116,
+			1, 21, 3, 72, 6, 35, 50, 47, 0, 97, 103, 1, 110, 97, 97, 2, 116, 105, 103, 3, 72, 6, 35, 136, 0, 97, 110, 105, 2, 103,
+			104, 3, 72, 6, 115, 50, 13, 0, 97, 109, 101, 115, 8, 3, 72, 6, 115, 65, 13, 89, 0, 111, 109, 105, 110, 101, 101, 2, 32, 3,
+			72, 6, 117, 65, 13, 50, 37, 0, 111, 100, 101, 8, 3, 72, 6, 117, 72, 13, 0, 4, 105, 2, 110, 101, 101, 3, 72, 13, 0, 105,
+			2, 112, 108, 111, 109, 97, 0, 105, 2, 115, 115, 105, 0, 105, 2, 118, 105, 115, 105, 101, 0, 105, 114, 105, 103, 2, 101, 3, 72, 13,
+			34, 13, 136, 0, 100, 101, 114, 100, 1, 21, 2, 32, 3, 72, 13, 34, 47, 0, 105, 112, 108, 111, 2, 109, 97, 116, 3, 72, 13, 48,
+			55, 2, 40, 0, 105, 107, 2, 118, 101, 108, 108, 3, 72, 13, 49, 0, 105, 110, 97, 1, 110, 97, 107, 115, 3, 72, 13, 50, 6, 115,
+			0, 105, 108, 101, 109, 109, 97, 3, 72, 13, 55, 108, 65, 35, 0, 105, 109, 101, 110, 2, 115, 105, 3, 72, 13, 65, 108, 50, 0, 105,
+			110, 103, 97, 97, 110, 3, 72, 13, 68, 81, 115, 50, 0, 105, 118, 105, 100, 101, 2, 110, 100, 3, 72, 13, 84, 13, 72, 108, 0, 4,
+			105, 115, 2, 107, 111, 101, 114, 115, 3, 72, 13, 89, 0, 105, 115, 2, 108, 111, 106, 97, 0, 105, 115, 2, 112, 117, 0, 105, 115, 8,
+			2, 105, 110, 14, 128, 132, 131, 0, 105, 115, 8, 2, 107, 114, 101, 0, 105, 115, 8, 2, 107, 117, 115, 115, 17, 65, 0, 105, 115, 8,
+			2, 111, 14, 128, 132, 131, 0, 105, 115, 8, 2, 116, 0, 105, 115, 115, 105, 112, 101, 108, 2, 105, 110, 3, 72, 13, 89, 2, 37, 48,
+			13, 55, 0, 105, 115, 115, 105, 112, 108, 105, 110, 101, 2, 25, 3, 72, 13, 89, 13, 48, 55, 37, 50, 13, 0, 105, 115, 116, 114, 111,
+			2, 102, 105, 101, 3, 72, 13, 89, 47, 34, 2, 40, 0, 105, 115, 116, 114, 105, 2, 98, 117, 3, 72, 13, 89, 47, 34, 13, 0, 105,
+			115, 107, 114, 101, 2, 115, 3, 72, 13, 89, 49, 34, 108, 0, 105, 103, 101, 114, 115, 3, 72, 13, 136, 13, 34, 89, 0, 105, 103, 116,
+			101, 114, 101, 2, 25, 3, 72, 13, 136, 47, 13, 34, 108, 0, 114, 111, 101, 102, 2, 103, 101, 101, 115, 3, 72, 34, 2, 40, 83, 0,
+			114, 117, 107, 107, 101, 8, 2, 114, 121, 3, 72, 34, 2, 111, 49, 13, 0, 114, 97, 109, 97, 2, 116, 117, 114, 103, 3, 72, 34, 2,
+			115, 65, 2, 35, 0, 114, 97, 2, 115, 116, 105, 101, 3, 72, 34, 35, 0, 114, 105, 108, 2, 17, 65, 3, 72, 34, 109, 55, 0, 114,
+			97, 8, 2, 115, 116, 3, 72, 34, 115, 0, 105, 101, 112, 101, 114, 2, 21, 3, 72, 37, 48, 13, 34, 0, 117, 2, 112, 108, 105, 17,
+			67, 3, 72, 40, 0, 4, 119, 1, 101, 103, 3, 72, 58, 0, 119, 1, 109, 0, 119, 1, 121, 98, 114, 101, 118, 0, 119, 2, 101, 114,
+			103, 0, 119, 101, 108, 109, 2, 32, 3, 72, 58, 112, 55, 14, 65, 0, 105, 2, 103, 25, 3, 72, 109, 0, 105, 115, 116, 101, 108, 3,
+			72, 109, 89, 47, 13, 55, 0, 111, 107, 116, 111, 114, 2, 25, 3, 72, 110, 49, 47, 13, 34, 0, 111, 107, 117, 3, 72, 110, 49, 118,
+			0, 111, 108, 2, 111, 115, 3, 72, 110, 55, 0, 111, 109, 8, 2, 17, 65, 17, 67, 17, 67, 3, 72, 110, 65, 0, 111, 110, 103, 97,
+			3, 72, 110, 68, 81, 35, 0, 97, 116, 101, 1, 105, 100, 110, 97, 107, 2, 17, 67, 3, 72, 115, 47, 13, 0, 97, 110, 105, 195, 171,
+			108, 3, 72, 115, 50, 37, 13, 55, 0, 111, 115, 105, 2, 115, 3, 72, 117, 89, 13, 0, 106, 8, 3, 75, 0, 106, 3, 80, 0, 106,
+			105, 101, 3, 80, 37, 0, 7, 6, 101, 0, 1, 105, 111, 111, 2, 110, 116, 106, 105, 101, 3, 0, 4, 2, 102, 101, 115, 105, 3, 2,
+			37, 0, 2, 109, 111, 115, 105, 0, 8, 2, 108, 108, 105, 112, 25, 0, 8, 108, 101, 105, 115, 2, 116, 106, 105, 101, 0, 108, 101, 107,
+			2, 116, 114, 111, 100, 101, 3, 2, 37, 55, 2, 108, 49, 0, 108, 101, 107, 116, 114, 3, 2, 37, 55, 108, 49, 47, 34, 0, 102, 102,
+			101, 107, 2, 25, 3, 2, 37, 83, 108, 49, 0, 118, 2, 101, 110, 116, 117, 101, 3, 2, 37, 84, 0, 118, 97, 108, 2, 117, 3, 2,
+			37, 84, 2, 35, 55, 0, 115, 115, 101, 110, 2, 115, 105, 3, 2, 37, 89, 108, 50, 0, 4, 1, 108, 108, 101, 116, 110, 105, 2, 107,
+			3, 2, 108, 0, 2, 107, 111, 110, 111, 21, 0, 8, 2, 107, 115, 0, 8, 2, 109, 105, 0, 116, 105, 2, 107, 101, 116, 3, 2, 108,
+			47, 2, 37, 0, 116, 105, 107, 101, 116, 116, 101, 2, 114, 17, 65, 3, 2, 108, 47, 2, 37, 49, 2, 108, 47, 116, 0, 4, 112, 105,
+			2, 100, 101, 17, 67, 3, 2, 108, 48, 2, 37, 0, 112, 105, 8, 2, 17, 67, 0, 112, 111, 117, 2, 108, 101, 116, 3, 2, 108, 48,
+			2, 40, 0, 107, 117, 2, 109, 101, 110, 105, 101, 3, 2, 108, 49, 2, 118, 0, 107, 119, 105, 2, 108, 105, 98, 114, 105, 3, 2, 108,
+			49, 58, 2, 37, 0, 120, 1, 108, 97, 2, 97, 110, 100, 3, 2, 108, 49, 88, 0, 107, 115, 97, 109, 105, 110, 2, 17, 65, 3, 2,
+			108, 49, 89, 2, 35, 65, 2, 37, 50, 0, 107, 115, 101, 2, 108, 108, 101, 110, 17, 67, 3, 2, 108, 49, 89, 13, 0, 107, 115, 101,
+			103, 101, 2, 17, 67, 17, 65, 3, 2, 108, 49, 89, 13, 136, 116, 0, 107, 115, 116, 114, 111, 2, 118, 101, 114, 3, 2, 108, 49, 89,
+			47, 34, 2, 40, 0, 107, 115, 116, 114, 101, 2, 109, 105, 115, 3, 2, 108, 49, 89, 47, 34, 13, 0, 107, 115, 116, 101, 114, 110, 8,
+			3, 2, 108, 49, 89, 47, 112, 34, 14, 50, 0, 107, 115, 112, 108, 105, 2, 115, 105, 101, 116, 3, 2, 108, 49, 89, 48, 55, 13, 0,
+			4, 108, 101, 2, 103, 97, 110, 17, 67, 3, 2, 108, 55, 13, 0, 108, 101, 2, 103, 105, 101, 0, 108, 101, 109, 101, 110, 116, 3, 2,
+			108, 55, 13, 65, 108, 50, 47, 0, 4, 109, 2, 112, 105, 114, 3, 2, 108, 65, 0, 109, 8, 2, 98, 108, 101, 0, 109, 102, 105, 2,
+			115, 101, 101, 109, 3, 2, 108, 65, 83, 2, 37, 0, 119, 111, 2, 108, 117, 115, 105, 3, 2, 108, 84, 2, 110, 0, 115, 8, 2, 107,
+			97, 114, 112, 3, 2, 108, 89, 0, 115, 105, 1, 100, 21, 2, 109, 97, 3, 2, 108, 89, 2, 37, 0, 115, 116, 114, 111, 2, 103, 101,
+			3, 2, 108, 89, 47, 34, 2, 40, 0, 115, 116, 101, 8, 2, 116, 3, 2, 108, 89, 47, 116, 0, 115, 107, 97, 2, 112, 97, 100, 101,
+			3, 2, 108, 89, 49, 13, 0, 115, 107, 97, 100, 101, 114, 3, 2, 108, 89, 49, 115, 72, 13, 34, 0, 114, 107, 101, 2, 110, 12, 3,
+			2, 112, 34, 49, 108, 0, 4, 2, 107, 108, 105, 112, 25, 3, 2, 116, 0, 8, 2, 103, 105, 112, 116, 0, 8, 2, 114, 111, 115, 105,
+			101, 0, 114, 101, 2, 107, 115, 105, 17, 65, 3, 2, 116, 34, 108, 0, 109, 97, 108, 106, 101, 3, 2, 116, 65, 35, 55, 57, 13, 0,
+			119, 101, 8, 2, 114, 101, 100, 3, 2, 116, 84, 13, 0, 119, 101, 119, 105, 103, 2, 116, 105, 103, 3, 2, 116, 84, 13, 84, 109, 136,
+			0, 119, 105, 103, 2, 100, 117, 3, 2, 116, 84, 13, 136, 0, 115, 111, 116, 101, 2, 114, 105, 101, 3, 2, 116, 89, 2, 40, 47, 116,
+			0, 103, 111, 115, 101, 110, 116, 114, 105, 101, 3, 2, 116, 136, 2, 40, 89, 108, 50, 47, 34, 37, 0, 103, 97, 8, 2, 108, 3, 2,
+			116, 136, 115, 0, 105, 101, 110, 97, 97, 114, 100, 105, 103, 3, 2, 123, 13, 50, 115, 34, 72, 13, 136, 0, 117, 2, 102, 111, 114, 105,
+			101, 3, 2, 128, 0, 117, 114, 111, 8, 2, 112, 101, 3, 2, 128, 34, 2, 117, 0, 117, 102, 111, 2, 114, 105, 101, 32, 24, 3, 2,
+			128, 83, 2, 117, 0, 118, 97, 110, 103, 8, 3, 4, 116, 83, 35, 68, 136, 0, 8, 17, 67, 2, 111, 110, 32, 3, 6, 37, 0, 4,
+			1, 17, 67, 2, 115, 107, 32, 12, 12, 3, 6, 108, 0, 1, 17, 67, 2, 115, 107, 101, 32, 12, 12, 0, 1, 17, 67, 21, 2, 115,
+			107, 101, 114, 32, 0, 1, 114, 97, 2, 115, 115, 101, 32, 0, 100, 106, 105, 101, 3, 6, 108, 12, 37, 80, 37, 0, 107, 116, 111, 109,
+			105, 101, 1, 17, 67, 3, 6, 108, 49, 47, 40, 65, 37, 0, 1, 115, 21, 2, 108, 102, 100, 101, 3, 6, 112, 0, 4, 1, 100, 21,
+			2, 115, 101, 32, 12, 3, 6, 116, 0, 1, 112, 2, 114, 105, 110, 103, 0, 1, 112, 101, 111, 114, 2, 114, 105, 110, 103, 0, 4, 114,
+			1, 102, 102, 111, 116, 115, 2, 17, 65, 3, 6, 116, 34, 0, 114, 1, 110, 105, 2, 17, 65, 0, 114, 105, 110, 103, 1, 117, 3, 6,
+			116, 34, 13, 68, 0, 116, 101, 110, 115, 8, 3, 6, 116, 47, 13, 50, 89, 0, 108, 101, 1, 117, 17, 67, 2, 25, 12, 3, 6, 116,
+			55, 13, 0, 105, 1, 114, 2, 115, 101, 110, 3, 6, 123, 0, 105, 107, 101, 8, 3, 6, 123, 49, 13, 0, 105, 110, 1, 21, 2, 100,
+			105, 103, 3, 6, 123, 50, 0, 108, 119, 101, 114, 115, 1, 17, 67, 3, 7, 112, 55, 84, 13, 34, 89, 0, 1, 17, 67, 2, 110, 100,
+			104, 3, 8, 13, 0, 107, 111, 110, 1, 10, 2, 111, 21, 3, 10, 2, 108, 49, 2, 40, 50, 0, 105, 1, 17, 67, 21, 2, 108, 97,
+			110, 100, 3, 10, 4, 123, 0, 105, 1, 21, 2, 115, 101, 110, 3, 10, 6, 123, 0, 114, 116, 115, 1, 21, 2, 32, 3, 10, 112, 34,
+			47, 89, 0, 114, 107, 101, 1, 100, 108, 117, 107, 115, 3, 10, 112, 34, 49, 108, 0, 114, 103, 8, 114, 101, 108, 108, 97, 3, 10, 112,
+			34, 136, 0, 116, 101, 114, 1, 114, 101, 105, 109, 3, 10, 116, 47, 13, 34, 0, 4, 1, 10, 2, 32, 3, 13, 0, 1, 10, 2, 108,
+			17, 67, 32, 0, 1, 10, 2, 108, 32, 0, 1, 10, 2, 109, 32, 0, 1, 10, 2, 114, 32, 0, 1, 17, 67, 2, 104, 0, 1, 17,
+			67, 2, 107, 97, 109, 112, 12, 0, 1, 17, 67, 2, 107, 97, 110, 116, 12, 0, 1, 17, 67, 2, 108, 116, 106, 105, 101, 0, 1, 17,
+			67, 2, 109, 97, 97, 116, 0, 1, 17, 67, 2, 109, 97, 110, 0, 1, 17, 67, 2, 109, 97, 114, 105, 101, 0, 1, 17, 67, 2, 112,
+			97, 100, 0, 1, 17, 67, 2, 112, 97, 110, 0, 1, 17, 67, 2, 116, 111, 101, 32, 0, 1, 17, 67, 2, 118, 0, 1, 17, 67, 2,
+			119, 97, 97, 114, 0, 1, 17, 67, 2, 119, 105, 110, 107, 101, 108, 0, 1, 17, 67, 10, 2, 103, 97, 110, 103, 101, 114, 0, 1, 17,
+			67, 10, 2, 108, 114, 17, 65, 0, 1, 17, 67, 10, 2, 115, 107, 21, 0, 1, 17, 67, 11, 2, 17, 67, 0, 1, 17, 67, 17, 65,
+			2, 108, 104, 0, 1, 17, 67, 17, 65, 17, 67, 2, 17, 67, 17, 67, 0, 1, 17, 67, 17, 65, 17, 67, 2, 114, 114, 0, 1, 17,
+			67, 21, 2, 98, 111, 0, 1, 17, 67, 21, 2, 98, 117, 0, 1, 17, 67, 21, 2, 98, 121, 0, 1, 17, 67, 21, 2, 100, 105, 101,
+			110, 0, 1, 17, 67, 21, 2, 103, 101, 17, 67, 21, 0, 1, 17, 67, 21, 2, 103, 114, 111, 101, 112, 0, 1, 17, 67, 21, 2, 106,
+			0, 1, 17, 67, 21, 2, 107, 111, 100, 101, 25, 0, 1, 17, 67, 21, 2, 107, 111, 109, 21, 0, 1, 17, 67, 21, 2, 109, 97, 97,
+			108, 32, 0, 1, 17, 67, 21, 2, 109, 97, 108, 101, 32, 0, 1, 17, 67, 21, 2, 114, 101, 101, 107, 25, 0, 1, 17, 67, 21, 2,
+			114, 101, 195, 171, 0, 1, 17, 67, 21, 2, 114, 104, 0, 1, 17, 67, 21, 2, 116, 97, 97, 108, 0, 1, 17, 67, 21, 2, 119, 97,
+			32, 0, 1, 17, 67, 21, 2, 119, 97, 101, 110, 0, 1, 17, 67, 101, 111, 17, 67, 2, 17, 67, 12, 0, 1, 17, 67, 105, 117, 2,
+			25, 12, 0, 1, 17, 67, 117, 101, 25, 2, 108, 17, 67, 21, 0, 1, 21, 2, 115, 112, 101, 108, 32, 0, 1, 25, 2, 112, 111, 111,
+			114, 116, 0, 1, 98, 10, 2, 115, 21, 0, 1, 98, 17, 65, 2, 119, 97, 0, 1, 100, 10, 2, 114, 21, 12, 12, 0, 1, 100, 17,
+			67, 2, 116, 114, 0, 1, 100, 21, 2, 98, 108, 0, 1, 100, 21, 2, 107, 108, 97, 115, 0, 1, 100, 21, 2, 107, 114, 0, 1, 100,
+			21, 2, 115, 21, 0, 1, 100, 97, 114, 114, 111, 111, 118, 2, 17, 67, 0, 1, 100, 100, 17, 65, 2, 108, 101, 32, 0, 1, 100, 100,
+			105, 109, 2, 21, 0, 1, 100, 102, 101, 105, 108, 2, 17, 67, 0, 1, 100, 103, 117, 101, 114, 118, 2, 17, 67, 0, 1, 100, 108, 97,
+			97, 110, 2, 17, 67, 0, 1, 100, 108, 101, 101, 119, 2, 119, 17, 65, 0, 1, 100, 108, 101, 112, 115, 2, 17, 67, 0, 1, 100, 108,
+			105, 119, 0, 1, 100, 108, 105, 119, 2, 107, 17, 65, 0, 1, 100, 110, 2, 108, 105, 110, 103, 0, 1, 100, 110, 17, 65, 2, 108, 17,
+			67, 0, 1, 100, 110, 97, 17, 67, 2, 17, 67, 0, 1, 100, 110, 97, 97, 109, 2, 108, 17, 65, 0, 1, 100, 110, 101, 105, 114, 118,
+			2, 17, 67, 0, 1, 100, 110, 105, 108, 98, 2, 17, 67, 21, 0, 1, 100, 110, 105, 108, 98, 2, 108, 105, 110, 103, 0, 1, 100, 110,
+			111, 17, 67, 2, 17, 67, 17, 65, 0, 1, 100, 110, 117, 107, 2, 21, 0, 1, 100, 111, 107, 2, 17, 67, 0, 1, 100, 114, 111, 111,
+			110, 2, 17, 67, 0, 1, 100, 121, 2, 108, 0, 1, 102, 108, 105, 107, 115, 2, 114, 0, 1, 102, 121, 115, 2, 114, 0, 1, 103, 110,
+			97, 108, 115, 2, 17, 67, 0, 1, 103, 110, 105, 17, 67, 2, 108, 17, 65, 0, 1, 103, 110, 105, 17, 67, 2, 108, 17, 67, 21, 0,
+			1, 103, 110, 105, 110, 101, 107, 2, 21, 0, 1, 105, 97, 97, 2, 17, 67, 0, 1, 105, 101, 0, 1, 105, 111, 111, 2, 17, 67, 0,
+			1, 107, 21, 2, 108, 100, 101, 32, 0, 1, 107, 21, 2, 114, 97, 97, 100, 0, 1, 107, 97, 108, 98, 2, 114, 0, 1, 107, 101, 111,
+			2, 17, 67, 0, 1, 107, 110, 2, 108, 17, 67, 0, 1, 107, 110, 17, 65, 2, 114, 21, 0, 1, 107, 110, 105, 119, 2, 108, 0, 1,
+			107, 111, 112, 115, 2, 17, 67, 0, 1, 107, 114, 101, 119, 2, 114, 115, 0, 1, 107, 114, 105, 115, 2, 108, 0, 1, 108, 2, 109, 111,
+			101, 110, 0, 1, 108, 97, 104, 2, 114, 17, 67, 21, 0, 1, 108, 97, 109, 2, 100, 121, 0, 1, 108, 97, 114, 101, 110, 105, 109, 2,
+			17, 67, 0, 1, 108, 101, 119, 117, 106, 2, 17, 67, 0, 1, 108, 105, 101, 114, 116, 2, 114, 17, 67, 0, 1, 108, 108, 105, 119, 2,
+			17, 67, 0, 1, 108, 111, 114, 116, 2, 17, 67, 21, 0, 1, 109, 2, 108, 101, 110, 100, 0, 1, 109, 2, 108, 105, 110, 103, 0, 1,
+			109, 97, 115, 0, 1, 109, 97, 115, 21, 2, 110, 115, 32, 0, 1, 109, 101, 110, 21, 2, 110, 115, 32, 0, 1, 109, 108, 101, 17, 67,
+			2, 116, 25, 0, 1, 109, 111, 107, 21, 2, 110, 115, 32, 0, 1, 109, 111, 115, 2, 114, 0, 1, 109, 114, 2, 114, 116, 106, 105, 101,
+			0, 1, 110, 97, 17, 67, 17, 67, 2, 17, 67, 17, 65, 0, 1, 110, 101, 105, 17, 67, 2, 114, 17, 67, 21, 0, 1, 110, 110, 17,
+			65, 17, 67, 2, 17, 67, 17, 65, 0, 1, 110, 110, 97, 112, 2, 17, 67, 0, 1, 110, 117, 101, 2, 114, 21, 0, 1, 112, 2, 116,
+			97, 108, 106, 101, 0, 1, 112, 2, 116, 97, 108, 106, 101, 0, 1, 112, 17, 65, 2, 108, 105, 110, 103, 0, 1, 112, 17, 65, 17, 67,
+			2, 114, 107, 17, 67, 0, 1, 112, 17, 67, 17, 65, 17, 67, 2, 114, 108, 0, 1, 112, 21, 2, 108, 104, 0, 1, 112, 21, 2, 114,
+			116, 106, 105, 101, 0, 1, 112, 105, 104, 2, 114, 0, 1, 112, 109, 2, 108, 100, 101, 32, 0, 1, 112, 109, 21, 2, 108, 17, 67, 21,
+			0, 1, 112, 109, 111, 107, 2, 116, 21, 0, 1, 112, 112, 2, 17, 67, 21, 12, 0, 1, 112, 114, 2, 114, 17, 67, 17, 67, 0, 1,
+			112, 114, 101, 119, 2, 114, 115, 17, 65, 0, 1, 112, 114, 117, 112, 2, 114, 0, 1, 112, 115, 2, 100, 0, 1, 112, 115, 2, 108, 111,
+			110, 107, 0, 1, 114, 101, 100, 101, 111, 103, 2, 21, 0, 1, 114, 101, 105, 17, 67, 29, 2, 21, 0, 1, 114, 114, 111, 2, 108, 0,
+			1, 115, 10, 2, 108, 21, 0, 1, 115, 25, 2, 110, 97, 0, 1, 115, 100, 110, 97, 104, 101, 100, 2, 17, 67, 21, 0, 1, 115, 101,
+			105, 2, 98, 0, 1, 115, 101, 105, 2, 102, 0, 1, 115, 105, 101, 2, 98, 101, 0, 1, 115, 105, 101, 2, 115, 116, 0, 1, 115, 107,
+			21, 2, 109, 17, 67, 0, 1, 115, 107, 117, 117, 108, 0, 1, 115, 111, 107, 114, 97, 110, 2, 17, 67, 0, 1, 115, 111, 108, 2, 115,
+			0, 1, 115, 111, 114, 2, 17, 67, 17, 65, 0, 1, 115, 117, 101, 114, 2, 21, 0, 1, 115, 117, 111, 112, 2, 17, 67, 0, 1, 116,
+			10, 2, 114, 21, 0, 1, 116, 17, 65, 10, 2, 98, 17, 65, 21, 0, 1, 117, 111, 2, 17, 67, 0, 1, 118, 2, 110, 110, 111, 21,
+			12, 0, 1, 119, 2, 108, 105, 110, 103, 0, 1, 119, 10, 2, 102, 0, 1, 119, 17, 65, 2, 98, 17, 65, 0, 1, 119, 97, 2, 17,
+			67, 21, 0, 1, 119, 101, 107, 115, 2, 17, 67, 0, 1, 119, 101, 108, 2, 110, 115, 0, 1, 119, 108, 97, 104, 2, 25, 0, 1, 119,
+			108, 111, 17, 67, 2, 17, 67, 0, 1, 119, 114, 2, 115, 0, 1, 119, 117, 101, 17, 67, 2, 108, 0, 1, 119, 121, 2, 114, 17, 65,
+			0, 1, 119, 121, 116, 115, 2, 17, 67, 0, 1, 121, 17, 67, 2, 17, 67, 12, 0, 1, 121, 17, 67, 2, 17, 67, 17, 67, 0, 2,
+			17, 67, 111, 117, 120, 0, 2, 110, 97, 114, 101, 115, 32, 0, 8, 100, 97, 2, 108, 17, 67, 0, 8, 100, 105, 101, 109, 2, 17, 67,
+			0, 8, 100, 110, 101, 101, 2, 17, 67, 17, 65, 0, 8, 108, 101, 105, 115, 2, 21, 0, 8, 112, 111, 2, 110, 0, 8, 112, 115, 97,
+			114, 2, 114, 0, 8, 115, 110, 101, 109, 0, 8, 115, 110, 101, 109, 2, 107, 0, 8, 119, 101, 2, 12, 12, 0, 4, 1, 17, 67, 2,
+			114, 106, 3, 13, 6, 0, 1, 114, 112, 114, 101, 116, 110, 105, 2, 116, 17, 65, 0, 4, 1, 17, 67, 2, 117, 105, 116, 3, 13, 10,
+			0, 1, 17, 67, 10, 2, 117, 117, 0, 1, 17, 67, 21, 2, 97, 17, 67, 17, 67, 0, 1, 17, 67, 21, 2, 111, 111, 114, 0, 1,
+			100, 110, 111, 104, 2, 21, 0, 1, 110, 105, 101, 116, 110, 111, 102, 2, 17, 67, 0, 1, 117, 111, 2, 97, 0, 4, 114, 1, 17, 67,
+			21, 2, 116, 121, 100, 3, 13, 34, 0, 114, 1, 102, 102, 2, 21, 0, 114, 1, 105, 17, 65, 2, 17, 65, 0, 114, 1, 105, 101, 108,
+			2, 115, 0, 114, 105, 101, 1, 110, 2, 32, 3, 13, 34, 6, 37, 0, 4, 114, 101, 115, 1, 17, 67, 3, 13, 34, 6, 108, 89, 0,
+			114, 101, 115, 115, 1, 17, 67, 0, 114, 105, 1, 110, 117, 101, 2, 110, 3, 13, 34, 6, 109, 0, 114, 1, 112, 111, 108, 2, 17, 65,
+			3, 13, 34, 10, 0, 114, 101, 1, 10, 2, 32, 3, 13, 34, 13, 0, 114, 101, 115, 1, 116, 97, 108, 3, 13, 34, 13, 89, 0, 4,
+			114, 115, 1, 10, 2, 32, 3, 13, 34, 89, 0, 114, 115, 1, 112, 108, 101, 104, 2, 32, 0, 114, 115, 1, 112, 114, 101, 119, 2, 32,
+			0, 114, 115, 1, 112, 114, 111, 100, 2, 32, 0, 114, 115, 1, 119, 101, 105, 2, 116, 101, 114, 0, 114, 115, 121, 100, 115, 1, 17, 67,
+			3, 13, 34, 89, 123, 47, 89, 0, 114, 101, 1, 115, 110, 97, 100, 21, 2, 25, 3, 13, 34, 108, 0, 114, 105, 103, 1, 25, 10, 3,
+			13, 34, 109, 136, 0, 4, 114, 105, 103, 101, 1, 17, 65, 17, 65, 3, 13, 34, 109, 136, 13, 0, 114, 105, 103, 101, 1, 25, 10, 0,
+			4, 114, 101, 105, 1, 10, 2, 32, 3, 13, 34, 123, 0, 114, 121, 1, 21, 2, 32, 12, 0, 114, 121, 1, 21, 2, 101, 32, 0, 107,
+			101, 1, 110, 2, 32, 3, 13, 49, 13, 0, 108, 1, 102, 102, 2, 21, 3, 13, 55, 0, 108, 97, 103, 116, 105, 103, 3, 13, 55, 6,
+			35, 136, 47, 13, 136, 0, 108, 1, 103, 110, 97, 109, 2, 17, 65, 3, 13, 55, 10, 0, 108, 101, 1, 10, 2, 32, 3, 13, 55, 13,
+			0, 108, 105, 107, 1, 10, 2, 105, 110, 103, 3, 13, 55, 13, 49, 0, 108, 105, 107, 104, 101, 105, 100, 1, 10, 3, 13, 55, 13, 49,
+			123, 47, 0, 108, 105, 103, 97, 1, 21, 2, 32, 3, 13, 55, 37, 136, 35, 0, 108, 97, 97, 114, 3, 13, 55, 115, 34, 0, 108, 111,
+			111, 115, 1, 17, 67, 3, 13, 55, 117, 89, 0, 108, 111, 115, 101, 1, 17, 67, 3, 13, 55, 117, 89, 13, 0, 100, 101, 114, 109, 1,
+			17, 67, 21, 3, 13, 72, 112, 34, 14, 65, 10, 0, 100, 97, 110, 115, 1, 17, 67, 21, 3, 13, 72, 133, 50, 89, 0, 119, 101, 114,
+			107, 1, 17, 67, 21, 3, 13, 84, 112, 34, 49, 0, 119, 121, 1, 17, 67, 2, 17, 67, 3, 13, 84, 123, 0, 4, 115, 1, 17, 67,
+			17, 65, 17, 65, 17, 67, 29, 2, 32, 3, 13, 89, 0, 115, 1, 17, 67, 17, 65, 29, 2, 32, 0, 115, 1, 100, 17, 65, 17, 65,
+			17, 65, 17, 67, 29, 2, 32, 0, 115, 1, 100, 17, 67, 10, 2, 32, 0, 115, 1, 105, 17, 65, 17, 65, 2, 32, 0, 115, 1, 107,
+			2, 32, 0, 4, 115, 115, 1, 17, 67, 21, 2, 32, 3, 21, 0, 120, 2, 12, 0, 121, 2, 32, 0, 4, 1, 17, 67, 101, 111, 17,
+			67, 2, 116, 106, 105, 101, 3, 37, 0, 1, 110, 110, 97, 112, 2, 116, 106, 105, 101, 0, 116, 106, 105, 101, 1, 10, 2, 12, 3, 37,
+			80, 37, 0, 116, 106, 105, 101, 115, 1, 110, 110, 3, 37, 80, 37, 89, 0, 4, 1, 17, 67, 2, 107, 115, 12, 12, 3, 108, 0, 1,
+			17, 67, 2, 107, 116, 21, 12, 12, 0, 1, 17, 67, 2, 109, 109, 12, 12, 0, 1, 17, 67, 11, 2, 116, 116, 12, 0, 1, 17, 67,
+			17, 65, 17, 67, 2, 17, 67, 11, 0, 1, 100, 2, 102, 105, 0, 1, 100, 101, 114, 112, 2, 115, 116, 105, 0, 1, 106, 2, 107, 0,
+			1, 107, 21, 2, 116, 116, 21, 12, 0, 1, 108, 10, 2, 109, 32, 0, 1, 114, 2, 100, 105, 103, 101, 114, 105, 110, 103, 0, 2, 17,
+			67, 0, 8, 119, 2, 115, 107, 117, 115, 0, 1, 100, 2, 109, 111, 110, 115, 3, 108, 2, 0, 1, 17, 67, 2, 104, 108, 101, 32, 12,
+			3, 108, 12, 0, 116, 106, 105, 101, 115, 1, 110, 17, 67, 3, 108, 37, 80, 37, 89, 0, 112, 105, 108, 101, 112, 8, 3, 108, 48, 13,
+			55, 6, 108, 48, 0, 112, 115, 1, 17, 67, 21, 2, 12, 3, 108, 48, 89, 0, 120, 105, 107, 1, 109, 3, 108, 49, 89, 2, 37, 49,
+			0, 120, 97, 115, 1, 116, 3, 108, 49, 89, 13, 89, 0, 107, 115, 116, 97, 115, 101, 3, 108, 49, 89, 47, 6, 115, 89, 13, 0, 107,
+			115, 116, 101, 114, 8, 2, 25, 3, 108, 49, 89, 47, 13, 34, 0, 107, 115, 116, 114, 97, 2, 25, 3, 108, 49, 89, 47, 34, 35, 0,
+			118, 111, 108, 117, 115, 3, 108, 84, 110, 55, 6, 118, 89, 0, 4, 1, 17, 67, 2, 107, 3, 112, 0, 1, 17, 67, 2, 107, 107, 21,
+			12, 0, 1, 17, 67, 11, 2, 103, 103, 0, 1, 17, 67, 17, 65, 17, 67, 2, 103, 103, 0, 1, 17, 67, 21, 2, 103, 100, 12, 0,
+			1, 17, 67, 21, 2, 108, 107, 32, 12, 0, 1, 17, 67, 21, 2, 108, 107, 101, 32, 0, 1, 100, 21, 2, 114, 110, 115, 116, 12, 12,
+			0, 1, 100, 100, 108, 2, 108, 103, 17, 65, 17, 67, 0, 1, 107, 115, 21, 2, 108, 0, 1, 108, 108, 2, 108, 25, 0, 1, 109, 21,
+			2, 108, 100, 0, 1, 110, 107, 2, 108, 0, 1, 112, 115, 17, 67, 2, 108, 100, 0, 1, 112, 115, 17, 67, 2, 108, 115, 0, 1, 112,
+			115, 101, 103, 2, 108, 100, 0, 1, 112, 115, 117, 111, 107, 115, 2, 108, 32, 0, 1, 112, 115, 121, 108, 98, 2, 108, 25, 0, 1, 115,
+			17, 67, 2, 108, 102, 0, 1, 115, 17, 67, 2, 108, 108, 101, 32, 0, 1, 115, 107, 110, 111, 114, 116, 2, 108, 0, 1, 115, 114, 101,
+			105, 101, 2, 108, 0, 1, 116, 17, 65, 17, 67, 2, 103, 110, 0, 1, 118, 101, 17, 67, 2, 103, 25, 0, 1, 119, 17, 65, 17, 67,
+			2, 114, 107, 17, 65, 0, 1, 119, 17, 65, 17, 67, 2, 114, 107, 25, 0, 1, 119, 21, 2, 108, 115, 121, 110, 0, 1, 119, 108, 111,
+			98, 2, 114, 107, 32, 0, 2, 103, 25, 0, 2, 108, 25, 0, 2, 114, 0, 4, 114, 8, 2, 98, 3, 112, 34, 6, 0, 114, 8, 2,
+			118, 0, 114, 112, 1, 17, 67, 21, 2, 32, 3, 112, 34, 48, 0, 114, 112, 101, 1, 17, 67, 21, 2, 32, 3, 112, 34, 48, 13, 0,
+			114, 112, 105, 101, 1, 17, 67, 21, 2, 32, 3, 112, 34, 48, 37, 0, 4, 114, 107, 101, 1, 109, 2, 110, 100, 3, 112, 34, 49, 13,
+			0, 114, 107, 101, 1, 112, 2, 110, 100, 0, 114, 107, 101, 1, 119, 2, 110, 100, 0, 114, 100, 101, 8, 2, 17, 67, 3, 112, 34, 72,
+			13, 0, 114, 102, 1, 17, 67, 21, 2, 32, 3, 112, 34, 83, 0, 114, 119, 101, 1, 17, 67, 21, 2, 32, 3, 112, 34, 84, 13, 0,
+			4, 114, 115, 1, 112, 102, 2, 32, 3, 112, 34, 89, 0, 114, 115, 1, 112, 103, 2, 32, 0, 114, 115, 1, 112, 107, 2, 32, 0, 114,
+			115, 1, 112, 108, 2, 32, 0, 114, 115, 1, 112, 110, 2, 32, 0, 114, 115, 1, 112, 114, 2, 32, 0, 108, 112, 101, 8, 3, 112, 55,
+			48, 13, 0, 4, 114, 115, 1, 107, 103, 3, 113, 34, 89, 0, 114, 115, 1, 107, 116, 0, 114, 115, 1, 112, 117, 111, 108, 98, 0, 4,
+			3, 116, 0, 1, 17, 67, 2, 107, 17, 65, 12, 0, 1, 100, 17, 67, 17, 65, 2, 108, 101, 32, 0, 1, 100, 100, 17, 67, 2, 108,
+			101, 32, 0, 1, 100, 101, 111, 116, 2, 108, 105, 110, 103, 0, 1, 100, 110, 105, 2, 108, 105, 110, 103, 0, 1, 100, 115, 17, 67, 2,
+			108, 101, 32, 0, 1, 108, 108, 2, 115, 101, 114, 0, 1, 116, 105, 17, 67, 2, 114, 105, 110, 103, 0, 1, 116, 110, 171, 195, 105, 2,
+			114, 21, 110, 0, 1, 119, 21, 2, 103, 101, 110, 100, 101, 0, 1, 119, 114, 2, 115, 101, 32, 0, 2, 17, 67, 17, 65, 0, 8, 100,
+			110, 101, 101, 2, 108, 105, 103, 0, 195, 171, 0, 114, 101, 1, 119, 115, 2, 32, 3, 116, 12, 34, 13, 0, 4, 114, 101, 1, 108, 21,
+			2, 32, 3, 116, 34, 13, 0, 114, 101, 8, 0, 108, 108, 101, 110, 100, 101, 8, 3, 116, 55, 6, 108, 50, 72, 13, 0, 108, 108, 101,
+			110, 100, 105, 103, 8, 3, 116, 55, 6, 108, 50, 72, 13, 136, 0, 108, 97, 97, 114, 1, 100, 114, 111, 111, 3, 116, 55, 115, 34, 0,
+			109, 97, 1, 17, 67, 2, 32, 3, 116, 65, 35, 0, 100, 101, 1, 17, 67, 2, 32, 3, 116, 72, 13, 0, 100, 101, 108, 8, 3, 116,
+			72, 13, 55, 0, 100, 101, 115, 1, 17, 67, 2, 32, 3, 116, 72, 13, 89, 0, 119, 101, 108, 1, 17, 67, 2, 17, 65, 3, 116, 84,
+			13, 55, 0, 119, 105, 103, 104, 101, 105, 2, 100, 3, 116, 84, 13, 136, 4, 123, 0, 4, 105, 3, 123, 0, 121, 0, 105, 101, 114, 3,
+			123, 13, 34, 0, 105, 110, 100, 2, 101, 107, 115, 3, 123, 50, 47, 10, 0, 117, 3, 128, 0, 117, 101, 1, 17, 67, 3, 128, 13, 0,
+			117, 110, 116, 106, 105, 101, 3, 128, 37, 68, 80, 37, 0, 7, 6, 102, 0, 2, 102, 3, 0, 4, 105, 101, 108, 100, 3, 21, 0, 105,
+			116, 122, 8, 0, 117, 108, 1, 21, 2, 32, 0, 3, 83, 0, 4, 97, 2, 98, 114, 105, 101, 107, 3, 83, 2, 35, 0, 97, 2, 110,
+			97, 116, 105, 0, 97, 2, 116, 97, 21, 0, 97, 114, 105, 2, 115, 101, 195, 171, 114, 3, 83, 2, 35, 34, 2, 37, 0, 97, 114, 109,
+			97, 2, 115, 101, 117, 116, 3, 83, 2, 35, 34, 65, 2, 35, 0, 97, 116, 2, 115, 111, 101, 110, 3, 83, 2, 35, 47, 0, 97, 107,
+			2, 116, 111, 114, 101, 3, 83, 2, 35, 49, 0, 97, 107, 117, 108, 2, 116, 101, 105, 116, 3, 83, 2, 35, 49, 2, 111, 55, 0, 97,
+			107, 116, 117, 2, 114, 101, 114, 105, 3, 83, 2, 35, 49, 47, 2, 118, 0, 4, 97, 110, 2, 102, 97, 114, 101, 3, 83, 2, 35, 50,
+			0, 97, 110, 8, 2, 116, 111, 0, 97, 110, 116, 97, 2, 115, 17, 65, 3, 83, 2, 35, 50, 47, 2, 35, 0, 97, 109, 105, 2, 108,
+			105, 17, 65, 3, 83, 2, 35, 65, 37, 0, 97, 98, 114, 105, 2, 17, 67, 17, 65, 3, 83, 2, 35, 71, 34, 2, 37, 0, 97, 115,
+			105, 108, 105, 3, 83, 2, 35, 89, 13, 55, 2, 37, 0, 97, 115, 101, 2, 116, 25, 3, 83, 2, 35, 89, 108, 0, 97, 115, 97, 100,
+			101, 3, 83, 2, 35, 89, 115, 72, 13, 0, 4, 105, 2, 115, 97, 110, 116, 3, 83, 2, 37, 0, 105, 8, 2, 110, 97, 21, 0, 105,
+			97, 115, 107, 111, 3, 83, 2, 37, 35, 89, 49, 2, 40, 0, 111, 114, 101, 2, 108, 3, 83, 2, 40, 34, 112, 0, 111, 110, 101, 2,
+			116, 105, 101, 3, 83, 2, 40, 50, 116, 0, 101, 2, 109, 105, 110, 17, 65, 3, 83, 2, 108, 0, 101, 114, 111, 2, 109, 111, 3, 83,
+			2, 108, 34, 2, 40, 0, 101, 100, 101, 2, 114, 97, 3, 83, 2, 108, 72, 13, 0, 101, 115, 115, 111, 114, 2, 97, 21, 3, 83, 2,
+			108, 89, 13, 34, 0, 111, 2, 115, 115, 105, 101, 108, 3, 83, 2, 110, 0, 111, 114, 8, 2, 17, 67, 21, 3, 83, 2, 110, 34, 0,
+			111, 114, 109, 97, 2, 108, 105, 101, 110, 3, 83, 2, 110, 34, 65, 2, 35, 0, 111, 114, 109, 105, 2, 100, 97, 3, 83, 2, 110, 34,
+			65, 2, 37, 0, 111, 114, 109, 117, 2, 108, 105, 101, 114, 3, 83, 2, 110, 34, 65, 2, 118, 0, 111, 110, 2, 116, 101, 105, 110, 3,
+			83, 2, 110, 50, 0, 111, 110, 100, 117, 101, 3, 83, 2, 110, 50, 72, 118, 0, 111, 115, 2, 102, 97, 3, 83, 2, 110, 89, 0, 117,
+			110, 103, 2, 101, 3, 83, 2, 111, 68, 136, 0, 101, 8, 2, 116, 97, 21, 3, 83, 2, 116, 0, 111, 116, 111, 2, 115, 116, 97, 3,
+			83, 2, 117, 47, 2, 40, 0, 111, 116, 111, 103, 101, 2, 110, 105, 101, 3, 83, 2, 117, 47, 2, 40, 136, 116, 0, 111, 110, 101, 2,
+			116, 105, 101, 107, 3, 83, 2, 117, 50, 13, 0, 117, 8, 2, 116, 105, 3, 83, 2, 118, 0, 117, 115, 105, 2, 108, 108, 17, 65, 3,
+			83, 2, 118, 89, 13, 0, 121, 110, 103, 101, 2, 118, 111, 101, 108, 105, 3, 83, 2, 123, 50, 136, 13, 0, 111, 114, 8, 2, 115, 101,
+			32, 3, 83, 6, 110, 34, 0, 111, 110, 105, 101, 115, 1, 21, 3, 83, 6, 117, 50, 37, 89, 0, 4, 105, 2, 115, 105, 101, 107, 3,
+			83, 13, 0, 105, 2, 115, 107, 17, 65, 0, 101, 114, 2, 119, 101, 101, 108, 3, 83, 13, 34, 0, 101, 110, 111, 109, 2, 101, 3, 83,
+			13, 50, 2, 110, 65, 0, 101, 110, 111, 109, 101, 110, 2, 17, 65, 21, 3, 83, 13, 50, 2, 110, 65, 13, 50, 0, 4, 101, 108, 1,
+			21, 2, 101, 110, 100, 3, 83, 13, 55, 0, 101, 108, 1, 21, 2, 105, 110, 103, 0, 105, 108, 105, 2, 112, 112, 17, 65, 3, 83, 13,
+			55, 13, 0, 105, 108, 105, 115, 116, 121, 110, 3, 83, 13, 55, 13, 89, 47, 6, 123, 50, 0, 105, 108, 108, 101, 2, 116, 3, 83, 13,
+			55, 108, 0, 101, 115, 115, 111, 114, 101, 2, 32, 3, 83, 13, 89, 117, 34, 13, 0, 114, 97, 2, 103, 105, 101, 108, 3, 83, 34, 2,
+			35, 0, 4, 114, 97, 110, 2, 17, 67, 105, 110, 97, 3, 83, 34, 2, 35, 50, 0, 114, 97, 110, 8, 2, 17, 67, 105, 115, 17, 67,
+			17, 65, 0, 114, 97, 110, 103, 105, 2, 112, 97, 110, 105, 3, 83, 34, 2, 35, 68, 2, 37, 0, 114, 101, 2, 107, 119, 101, 110, 3,
+			83, 34, 2, 37, 0, 114, 111, 110, 116, 2, 17, 65, 21, 3, 83, 34, 2, 110, 50, 47, 0, 114, 117, 2, 115, 116, 114, 3, 83, 34,
+			2, 111, 0, 114, 105, 107, 107, 97, 100, 101, 2, 108, 3, 83, 34, 13, 49, 13, 72, 112, 0, 114, 101, 117, 100, 3, 83, 34, 124, 72,
+			0, 97, 2, 108, 97, 110, 107, 115, 3, 83, 35, 0, 105, 110, 101, 1, 114, 111, 109, 2, 21, 3, 83, 37, 50, 13, 10, 0, 4, 111,
+			110, 105, 101, 1, 21, 3, 83, 40, 50, 6, 37, 0, 111, 110, 105, 101, 1, 21, 2, 115, 21, 21, 0, 4, 108, 97, 2, 103, 114, 97,
+			110, 116, 3, 83, 55, 2, 35, 0, 108, 97, 2, 109, 105, 0, 108, 97, 109, 98, 111, 2, 106, 97, 110, 116, 3, 83, 55, 2, 35, 65,
+			71, 2, 40, 0, 108, 111, 2, 114, 101, 3, 83, 55, 2, 40, 0, 108, 101, 98, 2, 111, 116, 111, 109, 105, 101, 3, 83, 55, 2, 108,
+			71, 0, 108, 111, 114, 105, 2, 115, 115, 17, 65, 3, 83, 55, 2, 117, 34, 13, 0, 108, 117, 2, 119, 101, 3, 83, 55, 2, 118, 0,
+			108, 105, 107, 116, 8, 2, 101, 114, 17, 65, 3, 83, 55, 13, 49, 47, 0, 101, 115, 115, 111, 114, 3, 83, 108, 89, 13, 34, 0, 111,
+			107, 8, 2, 111, 3, 83, 110, 49, 10, 0, 117, 110, 103, 117, 115, 3, 83, 111, 68, 81, 111, 89, 10, 0, 101, 98, 114, 117, 97, 114,
+			105, 101, 3, 83, 116, 71, 34, 118, 4, 115, 34, 37, 0, 111, 2, 116, 111, 103, 114, 97, 3, 83, 117, 0, 111, 116, 111, 3, 83, 117,
+			47, 40, 0, 111, 108, 105, 111, 3, 83, 117, 55, 37, 10, 40, 0, 101, 105, 116, 101, 3, 83, 123, 47, 13, 0, 121, 110, 103, 101, 2,
+			17, 67, 3, 83, 123, 50, 136, 13, 0, 7, 6, 103, 0, 2, 103, 3, 0, 4, 104, 116, 3, 21, 0, 110, 1, 21, 2, 32, 0, 110,
+			111, 110, 1, 21, 2, 32, 3, 21, 102, 114, 0, 104, 2, 32, 3, 49, 0, 104, 8, 3, 81, 0, 104, 105, 2, 116, 97, 3, 81, 2,
+			37, 0, 117, 105, 108, 108, 111, 116, 105, 110, 101, 3, 81, 2, 37, 55, 2, 40, 47, 37, 50, 0, 111, 2, 114, 105, 108, 108, 97, 3,
+			81, 2, 40, 0, 117, 101, 114, 114, 105, 108, 108, 97, 3, 81, 13, 34, 6, 109, 55, 35, 0, 97, 114, 97, 103, 101, 3, 81, 13, 34,
+			6, 115, 75, 0, 108, 105, 115, 101, 2, 114, 105, 101, 110, 3, 81, 55, 13, 89, 13, 0, 97, 108, 97, 2, 32, 3, 81, 115, 55, 2,
+			35, 0, 111, 117, 114, 109, 101, 116, 3, 81, 117, 34, 65, 123, 12, 0, 3, 136, 0, 4, 97, 2, 108, 17, 65, 17, 67, 3, 136, 2,
+			35, 0, 97, 2, 114, 105, 101, 112, 0, 97, 114, 2, 110, 3, 136, 2, 35, 34, 0, 97, 114, 121, 101, 1, 17, 67, 21, 3, 136, 2,
+			35, 34, 6, 123, 13, 0, 97, 114, 110, 105, 2, 115, 111, 101, 110, 3, 136, 2, 35, 34, 50, 2, 37, 0, 97, 108, 2, 106, 111, 101,
+			110, 3, 136, 2, 35, 55, 0, 97, 108, 97, 2, 115, 105, 3, 136, 2, 35, 55, 115, 0, 111, 101, 100, 2, 103, 117, 110, 115, 116, 3,
+			136, 2, 40, 47, 0, 111, 101, 100, 101, 114, 2, 116, 105, 101, 3, 136, 2, 40, 72, 13, 34, 0, 111, 101, 119, 101, 114, 8, 3, 136,
+			2, 40, 84, 13, 34, 0, 111, 114, 2, 100, 121, 110, 3, 136, 2, 110, 34, 0, 4, 111, 100, 2, 115, 97, 108, 105, 103, 3, 136, 2,
+			110, 47, 0, 111, 100, 2, 118, 114, 0, 4, 111, 100, 115, 2, 100, 105, 101, 110, 115, 116, 105, 103, 3, 136, 2, 110, 47, 89, 0, 111,
+			100, 115, 2, 108, 97, 115, 116, 101, 114, 0, 111, 100, 100, 101, 2, 108, 111, 3, 136, 2, 110, 72, 13, 0, 117, 116, 116, 117, 2, 114,
+			97, 3, 136, 2, 111, 47, 2, 111, 0, 111, 2, 100, 105, 110, 3, 136, 2, 117, 0, 97, 117, 116, 101, 110, 103, 3, 136, 2, 129, 47,
+			108, 68, 0, 111, 195, 171, 1, 17, 65, 3, 136, 6, 40, 13, 0, 97, 109, 105, 101, 115, 3, 136, 6, 115, 65, 37, 89, 0, 111, 111,
+			103, 1, 17, 65, 2, 32, 3, 136, 6, 117, 136, 0, 111, 103, 105, 101, 115, 1, 17, 65, 3, 136, 6, 117, 136, 37, 89, 0, 97, 115,
+			8, 2, 17, 65, 3, 136, 7, 35, 89, 10, 0, 103, 101, 1, 21, 2, 32, 3, 136, 13, 0, 105, 109, 2, 110, 97, 25, 3, 136, 13,
+			65, 0, 105, 109, 110, 97, 2, 115, 105, 17, 65, 3, 136, 13, 65, 50, 115, 0, 4, 114, 97, 2, 102, 105, 101, 107, 3, 136, 34, 2,
+			35, 0, 114, 97, 2, 102, 105, 101, 116, 0, 114, 97, 2, 110, 105, 101, 116, 0, 114, 97, 2, 115, 105, 101, 117, 0, 114, 97, 8, 2,
+			118, 17, 65, 0, 114, 97, 110, 100, 105, 2, 111, 3, 136, 34, 2, 35, 50, 72, 2, 37, 0, 114, 97, 109, 97, 2, 100, 111, 101, 3,
+			136, 34, 2, 35, 65, 2, 35, 0, 114, 97, 109, 109, 97, 2, 116, 105, 107, 3, 136, 34, 2, 35, 65, 35, 0, 114, 97, 100, 101, 2,
+			114, 105, 110, 103, 3, 136, 34, 2, 35, 72, 116, 0, 114, 111, 110, 100, 119, 101, 116, 108, 105, 107, 3, 136, 34, 2, 110, 50, 47, 84,
+			108, 47, 55, 13, 49, 0, 114, 97, 97, 100, 8, 2, 116, 3, 136, 34, 2, 115, 0, 4, 114, 97, 97, 100, 8, 2, 110, 101, 103, 101,
+			3, 136, 34, 2, 115, 47, 0, 114, 97, 97, 100, 8, 2, 118, 121, 102, 0, 114, 97, 97, 100, 8, 2, 101, 3, 136, 34, 2, 115, 47,
+			10, 0, 114, 97, 97, 100, 115, 101, 8, 2, 115, 3, 136, 34, 2, 115, 47, 89, 108, 0, 114, 1, 97, 17, 67, 117, 111, 2, 111, 111,
+			116, 106, 105, 101, 3, 136, 34, 6, 0, 4, 114, 97, 8, 2, 110, 97, 3, 136, 34, 13, 0, 114, 105, 2, 102, 102, 105, 101, 114, 0,
+			114, 105, 8, 2, 109, 17, 65, 0, 114, 97, 115, 8, 2, 17, 65, 3, 136, 34, 35, 89, 10, 0, 114, 105, 101, 107, 119, 97, 3, 136,
+			34, 37, 49, 58, 35, 0, 114, 111, 110, 100, 119, 101, 2, 116, 25, 3, 136, 34, 110, 50, 47, 84, 108, 0, 114, 111, 110, 100, 119, 101,
+			116, 2, 97, 3, 136, 34, 110, 50, 47, 84, 108, 47, 10, 0, 114, 97, 8, 2, 115, 105, 101, 3, 136, 34, 115, 0, 114, 97, 100, 101,
+			2, 17, 67, 3, 136, 34, 115, 72, 13, 0, 114, 111, 116, 101, 114, 101, 3, 136, 34, 117, 47, 13, 34, 13, 0, 4, 114, 111, 110, 100,
+			1, 114, 101, 116, 103, 97, 2, 105, 3, 136, 34, 131, 50, 47, 10, 0, 114, 111, 110, 100, 2, 111, 0, 97, 116, 8, 2, 111, 3, 136,
+			35, 47, 10, 0, 97, 109, 105, 101, 2, 32, 3, 136, 35, 65, 6, 37, 0, 111, 103, 105, 101, 1, 17, 65, 2, 32, 3, 136, 40, 136,
+			6, 37, 0, 108, 101, 116, 115, 101, 114, 3, 136, 55, 7, 108, 47, 89, 13, 34, 0, 108, 97, 110, 115, 3, 136, 55, 35, 50, 89, 0,
+			4, 108, 97, 115, 2, 97, 3, 136, 55, 35, 89, 10, 0, 108, 97, 115, 2, 111, 0, 105, 102, 8, 2, 17, 65, 3, 136, 109, 83, 10,
+			0, 111, 109, 97, 103, 2, 116, 105, 103, 3, 136, 110, 65, 10, 2, 35, 136, 0, 117, 115, 2, 111, 111, 105, 3, 136, 111, 89, 10, 0,
+			97, 100, 101, 8, 3, 136, 115, 72, 13, 0, 4, 97, 115, 2, 101, 114, 105, 103, 3, 136, 115, 89, 0, 97, 115, 2, 105, 101, 0, 97,
+			115, 2, 105, 103, 0, 195, 169, 115, 101, 108, 3, 136, 116, 89, 13, 55, 0, 4, 111, 117, 100, 2, 97, 21, 3, 136, 120, 47, 10, 0,
+			111, 117, 100, 2, 111, 0, 104, 101, 105, 100, 1, 21, 3, 136, 123, 47, 0, 4, 97, 110, 115, 1, 21, 3, 136, 133, 50, 89, 0, 97,
+			110, 115, 2, 17, 67, 0, 7, 6, 104, 0, 4, 1, 17, 65, 21, 2, 32, 3, 0, 2, 104, 3, 0, 108, 101, 1, 17, 65, 2, 32,
+			3, 8, 105, 108, 0, 3, 107, 0, 97, 114, 2, 112, 111, 101, 110, 3, 107, 2, 35, 34, 0, 4, 97, 114, 100, 2, 17, 67, 21, 3,
+			107, 2, 35, 34, 47, 0, 97, 114, 116, 2, 114, 111, 101, 114, 0, 97, 114, 116, 2, 115, 116, 111, 103, 116, 101, 32, 0, 97, 114, 108,
+			101, 2, 107, 121, 110, 3, 107, 2, 35, 34, 55, 13, 0, 97, 114, 109, 111, 2, 110, 105, 101, 3, 107, 2, 35, 34, 65, 2, 40, 0,
+			4, 97, 108, 2, 115, 115, 116, 97, 114, 3, 107, 2, 35, 55, 0, 97, 108, 2, 118, 101, 21, 0, 97, 108, 102, 2, 118, 105, 101, 114,
+			0, 97, 108, 102, 2, 118, 121, 102, 0, 97, 108, 111, 2, 103, 101, 3, 107, 2, 35, 55, 2, 40, 0, 97, 108, 108, 101, 108, 117, 106,
+			97, 3, 107, 2, 35, 55, 13, 55, 118, 57, 2, 35, 0, 4, 97, 108, 102, 2, 100, 114, 105, 101, 3, 107, 2, 35, 55, 83, 0, 97,
+			108, 102, 2, 107, 114, 111, 21, 0, 97, 108, 102, 2, 110, 101, 103, 101, 0, 97, 108, 102, 2, 115, 101, 119, 101, 0, 97, 108, 102, 2,
+			116, 105, 101, 110, 0, 97, 108, 102, 2, 116, 119, 97, 97, 108, 102, 0, 97, 108, 102, 2, 116, 119, 101, 101, 0, 4, 97, 108, 102, 2,
+			101, 101, 110, 3, 107, 2, 35, 55, 83, 10, 0, 97, 108, 102, 2, 101, 108, 102, 0, 97, 108, 102, 8, 2, 97, 103, 25, 0, 97, 108,
+			102, 115, 101, 2, 115, 3, 107, 2, 35, 55, 83, 89, 108, 0, 4, 105, 2, 115, 116, 111, 3, 107, 2, 37, 0, 105, 8, 2, 98, 105,
+			115, 0, 105, 101, 114, 110, 97, 2, 109, 97, 97, 108, 3, 107, 2, 37, 12, 34, 50, 115, 0, 105, 195, 171, 114, 2, 97, 114, 103, 105,
+			101, 3, 107, 2, 37, 13, 34, 0, 105, 195, 171, 114, 97, 114, 2, 103, 105, 101, 32, 24, 3, 107, 2, 37, 13, 34, 2, 35, 34, 0,
+			105, 195, 171, 114, 111, 2, 103, 108, 105, 101, 3, 107, 2, 37, 13, 34, 2, 40, 0, 105, 112, 2, 110, 111, 17, 67, 17, 65, 3, 107,
+			2, 37, 48, 0, 105, 112, 101, 114, 2, 98, 111, 3, 107, 2, 37, 48, 13, 34, 0, 105, 97, 2, 115, 105, 110, 116, 3, 107, 2, 37,
+			57, 2, 35, 0, 105, 115, 116, 114, 105, 2, 111, 110, 3, 107, 2, 37, 89, 47, 34, 2, 37, 0, 105, 195, 171, 110, 97, 3, 107, 2,
+			37, 116, 12, 50, 35, 0, 105, 103, 105, 195, 171, 2, 110, 17, 65, 3, 107, 2, 37, 136, 2, 37, 116, 0, 111, 116, 101, 2, 108, 3,
+			107, 2, 40, 47, 112, 0, 111, 101, 118, 101, 2, 114, 3, 107, 2, 40, 83, 112, 0, 111, 101, 118, 101, 101, 108, 104, 2, 101, 3, 107,
+			2, 40, 83, 116, 55, 107, 0, 111, 2, 110, 110, 101, 117, 114, 3, 107, 2, 110, 0, 4, 111, 114, 2, 108, 111, 115, 3, 107, 2, 110,
+			34, 0, 111, 114, 2, 109, 111, 0, 111, 114, 114, 105, 2, 98, 17, 65, 3, 107, 2, 110, 34, 2, 37, 0, 111, 110, 103, 2, 97, 3,
+			107, 2, 110, 68, 136, 0, 111, 114, 105, 115, 111, 110, 2, 116, 97, 3, 107, 2, 117, 34, 2, 37, 89, 2, 110, 50, 0, 4, 111, 111,
+			103, 2, 100, 114, 97, 3, 107, 2, 117, 136, 0, 111, 111, 103, 2, 109, 111, 101, 100, 105, 103, 0, 117, 2, 109, 101, 117, 114, 3, 107,
+			2, 118, 0, 117, 105, 115, 2, 104, 111, 117, 100, 32, 3, 107, 2, 127, 89, 0, 97, 114, 116, 105, 103, 1, 21, 3, 107, 6, 35, 34,
+			47, 13, 136, 0, 97, 108, 1, 17, 67, 21, 2, 115, 17, 65, 3, 107, 6, 35, 55, 0, 97, 108, 102, 8, 2, 103, 101, 14, 128, 132,
+			132, 3, 107, 6, 35, 55, 83, 0, 105, 110, 107, 101, 2, 112, 105, 110, 107, 3, 107, 13, 68, 49, 13, 0, 4, 97, 114, 100, 2, 104,
+			101, 105, 100, 3, 107, 35, 34, 47, 0, 97, 114, 100, 2, 108, 111, 0, 97, 114, 100, 2, 115, 116, 101, 0, 97, 114, 116, 2, 115, 116,
+			111, 103, 116, 101, 32, 24, 0, 97, 114, 100, 103, 101, 2, 17, 67, 3, 107, 35, 34, 47, 136, 13, 0, 97, 114, 109, 111, 110, 105, 101,
+			115, 3, 107, 35, 34, 65, 6, 117, 50, 37, 89, 0, 97, 114, 100, 101, 3, 107, 35, 34, 72, 13, 0, 97, 110, 100, 2, 111, 3, 107,
+			35, 50, 47, 19, 0, 105, 116, 108, 101, 114, 3, 107, 37, 47, 55, 13, 34, 0, 105, 112, 111, 8, 2, 21, 14, 128, 132, 132, 3, 107,
+			37, 48, 40, 0, 105, 110, 2, 100, 111, 101, 3, 107, 37, 50, 0, 105, 109, 110, 101, 3, 107, 37, 65, 50, 13, 0, 105, 115, 116, 101,
+			114, 2, 105, 3, 107, 37, 89, 47, 6, 116, 34, 0, 105, 115, 116, 101, 114, 2, 101, 3, 107, 37, 89, 47, 13, 34, 0, 111, 101, 110,
+			100, 101, 114, 3, 107, 40, 50, 13, 34, 0, 111, 102, 2, 17, 65, 3, 107, 110, 83, 10, 0, 97, 2, 119, 101, 3, 107, 115, 0, 97,
+			112, 101, 114, 3, 107, 115, 48, 13, 34, 0, 97, 110, 101, 8, 2, 17, 67, 3, 107, 115, 50, 13, 0, 97, 109, 101, 114, 3, 107, 115,
+			65, 13, 34, 0, 111, 98, 111, 8, 3, 107, 117, 71, 40, 0, 111, 102, 2, 105, 101, 3, 107, 117, 83, 0, 7, 6, 105, 0, 4, 1,
+			17, 67, 2, 195, 171, 115, 116, 97, 3, 2, 37, 0, 1, 104, 2, 100, 114, 17, 65, 0, 1, 112, 115, 2, 111, 101, 110, 0, 1, 120,
+			97, 116, 2, 21, 0, 1, 180, 195, 2, 25, 0, 2, 114, 111, 110, 105, 101, 0, 2, 118, 111, 111, 114, 0, 8, 2, 107, 111, 0, 8,
+			2, 109, 109, 117, 0, 8, 2, 114, 114, 0, 195, 171, 116, 101, 105, 116, 3, 2, 37, 13, 47, 6, 123, 47, 0, 114, 97, 8, 2, 17,
+			67, 3, 2, 37, 34, 35, 0, 116, 97, 108, 105, 2, 97, 3, 2, 37, 47, 2, 35, 55, 2, 37, 0, 101, 116, 101, 114, 109, 97, 2,
+			103, 3, 2, 37, 47, 13, 34, 65, 2, 35, 0, 112, 101, 2, 107, 111, 110, 3, 2, 37, 48, 13, 0, 108, 108, 117, 109, 105, 2, 110,
+			17, 65, 3, 2, 37, 55, 2, 40, 65, 2, 37, 0, 108, 108, 117, 2, 115, 116, 114, 17, 65, 3, 2, 37, 55, 2, 111, 0, 108, 108,
+			117, 2, 115, 105, 3, 2, 37, 55, 118, 0, 109, 112, 97, 108, 97, 3, 2, 37, 65, 48, 115, 55, 35, 0, 98, 101, 114, 2, 105, 21,
+			3, 2, 37, 71, 116, 34, 0, 100, 8, 2, 17, 65, 3, 2, 37, 72, 0, 4, 100, 101, 2, 97, 3, 2, 37, 72, 2, 37, 0, 100,
+			101, 2, 195, 171, 0, 100, 105, 8, 2, 111, 0, 115, 108, 97, 109, 8, 2, 105, 3, 2, 37, 89, 55, 2, 35, 65, 0, 101, 115, 101,
+			8, 2, 17, 67, 3, 4, 37, 89, 13, 0, 101, 1, 114, 116, 2, 32, 24, 3, 6, 37, 0, 116, 105, 115, 1, 17, 67, 21, 2, 32,
+			3, 6, 37, 47, 13, 89, 0, 4, 101, 107, 1, 110, 21, 2, 32, 3, 6, 37, 49, 0, 101, 107, 1, 110, 21, 2, 101, 32, 0, 101,
+			107, 1, 114, 116, 21, 2, 32, 0, 101, 107, 1, 114, 116, 21, 2, 101, 25, 0, 101, 107, 1, 116, 21, 2, 32, 0, 101, 107, 1, 116,
+			21, 2, 101, 32, 0, 101, 102, 1, 115, 115, 2, 32, 3, 6, 37, 83, 0, 4, 101, 119, 101, 1, 115, 110, 2, 25, 3, 6, 37, 84,
+			13, 0, 101, 119, 101, 1, 115, 115, 2, 32, 0, 115, 105, 101, 1, 17, 67, 3, 6, 37, 89, 37, 0, 1, 17, 67, 114, 97, 110, 2,
+			115, 115, 117, 115, 3, 6, 109, 0, 109, 109, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 6, 109, 65, 13, 34, 10, 0, 4, 115, 1,
+			17, 67, 17, 65, 2, 32, 3, 6, 109, 89, 0, 115, 1, 109, 101, 111, 108, 98, 0, 115, 1, 114, 97, 116, 105, 108, 2, 12, 0, 115,
+			116, 101, 1, 17, 67, 17, 65, 2, 32, 3, 6, 109, 89, 47, 13, 0, 115, 116, 105, 101, 115, 1, 17, 67, 21, 3, 6, 109, 89, 47,
+			37, 89, 0, 4, 115, 107, 1, 17, 67, 2, 32, 3, 6, 109, 89, 49, 0, 115, 107, 1, 17, 67, 2, 101, 32, 0, 115, 109, 101, 1,
+			21, 2, 25, 3, 6, 109, 89, 65, 13, 0, 107, 97, 1, 21, 2, 32, 3, 8, 2, 37, 49, 2, 35, 0, 115, 1, 114, 97, 21, 2,
+			25, 3, 8, 13, 89, 0, 4, 1, 17, 67, 2, 103, 3, 13, 0, 1, 102, 101, 100, 2, 110, 0, 1, 109, 2, 110, 105, 115, 116, 101,
+			114, 0, 1, 115, 105, 114, 107, 2, 25, 0, 2, 110, 110, 101, 101, 109, 98, 97, 0, 2, 116, 105, 101, 102, 0, 2, 116, 105, 101, 119,
+			0, 8, 109, 101, 2, 114, 0, 103, 101, 114, 1, 10, 2, 32, 14, 128, 128, 130, 3, 13, 34, 0, 103, 101, 114, 115, 1, 10, 2, 32,
+			14, 128, 128, 131, 3, 13, 34, 89, 0, 107, 101, 1, 10, 2, 32, 14, 128, 128, 131, 3, 13, 49, 13, 0, 107, 101, 114, 1, 108, 10,
+			2, 17, 67, 3, 13, 49, 13, 34, 0, 107, 101, 110, 100, 1, 17, 67, 10, 3, 13, 49, 13, 50, 47, 0, 107, 101, 110, 100, 101, 1,
+			17, 67, 10, 3, 13, 49, 13, 50, 72, 13, 0, 107, 105, 110, 103, 1, 17, 67, 3, 13, 49, 13, 68, 0, 110, 2, 116, 117, 115, 115,
+			101, 110, 3, 13, 50, 0, 110, 116, 101, 110, 2, 115, 3, 13, 50, 47, 108, 50, 0, 110, 115, 117, 114, 103, 101, 110, 2, 17, 67, 3,
+			13, 50, 89, 2, 111, 34, 136, 108, 50, 0, 110, 103, 101, 110, 105, 101, 117, 114, 3, 13, 50, 136, 13, 50, 6, 118, 13, 34, 0, 109,
+			109, 105, 8, 2, 103, 114, 17, 65, 3, 13, 65, 13, 0, 4, 109, 112, 111, 2, 115, 97, 110, 116, 3, 13, 65, 48, 2, 40, 0, 109,
+			112, 111, 2, 116, 101, 0, 109, 112, 101, 114, 97, 2, 116, 17, 65, 21, 3, 13, 65, 48, 2, 108, 34, 2, 35, 0, 109, 98, 101, 2,
+			115, 3, 13, 65, 71, 13, 0, 4, 115, 1, 98, 117, 112, 2, 32, 3, 13, 89, 0, 115, 1, 108, 105, 117, 118, 0, 115, 1, 108, 111,
+			112, 2, 32, 0, 115, 1, 109, 17, 65, 17, 65, 2, 32, 0, 115, 1, 110, 101, 2, 25, 0, 4, 115, 1, 110, 102, 2, 17, 65, 3,
+			13, 89, 10, 0, 115, 1, 110, 110, 2, 17, 65, 0, 115, 114, 97, 101, 2, 108, 105, 21, 3, 13, 89, 34, 2, 121, 0, 115, 114, 97,
+			101, 2, 108, 105, 3, 13, 89, 34, 122, 0, 103, 101, 114, 1, 17, 67, 21, 2, 17, 67, 17, 65, 3, 13, 136, 13, 34, 0, 103, 101,
+			110, 100, 1, 17, 67, 21, 2, 32, 3, 13, 136, 13, 50, 47, 0, 103, 101, 110, 100, 101, 1, 17, 67, 21, 3, 13, 136, 13, 50, 72,
+			13, 0, 103, 105, 110, 103, 1, 17, 67, 3, 13, 136, 13, 68, 0, 103, 104, 101, 105, 2, 100, 3, 13, 136, 123, 0, 4, 99, 1, 21,
+			2, 32, 3, 21, 0, 108, 101, 115, 2, 32, 0, 116, 121, 2, 32, 24, 0, 195, 169, 3, 26, 37, 0, 4, 3, 37, 0, 1, 21, 2,
+			115, 101, 114, 105, 110, 103, 0, 1, 104, 2, 100, 114, 111, 0, 1, 115, 112, 2, 103, 17, 65, 0, 2, 17, 67, 17, 65, 0, 8, 116,
+			110, 97, 2, 17, 67, 0, 101, 0, 101, 1, 103, 2, 114, 105, 103, 0, 101, 1, 104, 2, 114, 100, 105, 101, 0, 101, 1, 107, 2, 114,
+			97, 110, 17, 67, 0, 101, 1, 107, 2, 114, 105, 101, 0, 101, 1, 107, 2, 114, 116, 115, 0, 101, 1, 107, 115, 2, 114, 105, 103, 0,
+			101, 1, 112, 2, 114, 101, 119, 0, 101, 1, 112, 2, 114, 105, 110, 103, 0, 101, 1, 119, 2, 114, 111, 111, 107, 0, 101, 2, 117, 117,
+			0, 195, 171, 110, 3, 37, 6, 108, 50, 0, 97, 116, 101, 114, 1, 17, 67, 3, 37, 6, 115, 47, 13, 34, 0, 97, 116, 114, 105, 101,
+			115, 1, 17, 67, 3, 37, 6, 115, 47, 34, 37, 89, 0, 97, 110, 97, 3, 37, 6, 115, 50, 35, 0, 97, 97, 108, 2, 32, 25, 3,
+			37, 6, 115, 55, 0, 97, 108, 101, 2, 32, 3, 37, 6, 115, 55, 13, 0, 101, 101, 2, 17, 67, 3, 37, 6, 116, 0, 195, 171, 114,
+			2, 17, 65, 3, 37, 6, 116, 34, 0, 195, 171, 108, 101, 3, 37, 6, 116, 55, 13, 0, 101, 117, 115, 3, 37, 6, 128, 89, 0, 101,
+			1, 17, 67, 2, 114, 3, 37, 12, 0, 101, 195, 171, 2, 25, 3, 37, 12, 13, 0, 114, 105, 8, 2, 115, 3, 37, 34, 13, 0, 114,
+			114, 105, 116, 101, 114, 2, 21, 3, 37, 34, 13, 47, 6, 116, 34, 0, 114, 111, 110, 105, 101, 2, 32, 24, 3, 37, 34, 40, 50, 6,
+			37, 0, 97, 116, 114, 105, 101, 1, 17, 67, 3, 37, 35, 47, 34, 6, 37, 0, 116, 101, 105, 116, 1, 21, 3, 37, 47, 6, 123, 47,
+			0, 116, 101, 109, 3, 37, 47, 108, 65, 0, 4, 101, 107, 1, 110, 107, 21, 2, 32, 3, 37, 49, 0, 101, 107, 1, 116, 105, 114, 107,
+			0, 109, 112, 105, 8, 2, 16, 3, 37, 65, 48, 37, 0, 103, 8, 2, 108, 111, 3, 37, 81, 0, 4, 118, 101, 101, 114, 1, 17, 67,
+			3, 37, 83, 6, 116, 34, 0, 118, 101, 114, 1, 17, 67, 2, 17, 65, 0, 115, 101, 101, 114, 1, 21, 3, 37, 89, 6, 116, 34, 0,
+			115, 101, 114, 101, 110, 1, 21, 2, 100, 3, 37, 89, 6, 116, 34, 13, 50, 0, 115, 101, 117, 114, 1, 21, 3, 37, 89, 6, 128, 34,
+			0, 115, 105, 101, 1, 17, 67, 21, 21, 21, 3, 37, 89, 37, 0, 115, 105, 101, 117, 115, 1, 17, 67, 3, 37, 89, 37, 6, 128, 89,
+			0, 115, 108, 97, 109, 8, 3, 37, 89, 55, 35, 65, 0, 103, 101, 114, 105, 110, 103, 1, 21, 3, 37, 136, 6, 116, 34, 13, 68, 0,
+			4, 1, 29, 2, 103, 25, 12, 3, 109, 0, 1, 115, 2, 103, 17, 67, 0, 1, 119, 115, 2, 103, 0, 2, 17, 67, 0, 4, 100, 106,
+			105, 101, 3, 109, 37, 80, 37, 0, 116, 106, 105, 101, 0, 116, 1, 119, 2, 17, 65, 3, 109, 47, 0, 115, 1, 109, 101, 17, 67, 21,
+			2, 32, 3, 109, 89, 0, 115, 112, 101, 108, 1, 17, 67, 3, 109, 89, 48, 13, 55, 0, 103, 101, 1, 10, 2, 32, 3, 109, 136, 13,
+			0, 103, 101, 115, 1, 10, 2, 32, 3, 109, 136, 13, 89, 0, 195, 171, 3, 116, 12, 14, 0, 101, 117, 3, 119, 0, 106, 2, 17, 67,
+			3, 123, 0, 7, 6, 106, 0, 2, 106, 3, 0, 4, 97, 99, 107, 8, 3, 21, 0, 101, 97, 110, 0, 101, 101, 112, 0, 111, 104, 110,
+			0, 4, 3, 57, 0, 8, 2, 97, 110, 116, 106, 105, 101, 25, 12, 12, 0, 97, 8, 2, 17, 67, 111, 98, 17, 65, 3, 57, 2, 35,
+			0, 97, 112, 111, 2, 110, 3, 57, 2, 35, 48, 110, 0, 4, 97, 99, 97, 114, 97, 110, 100, 97, 3, 57, 2, 35, 49, 2, 35, 34,
+			6, 35, 50, 72, 35, 0, 97, 107, 97, 114, 97, 110, 100, 97, 0, 97, 107, 111, 112, 101, 119, 101, 114, 3, 57, 2, 35, 49, 2, 110,
+			48, 116, 84, 13, 34, 10, 0, 97, 110, 8, 2, 17, 67, 21, 3, 57, 2, 35, 50, 0, 97, 108, 111, 101, 2, 115, 105, 101, 3, 57,
+			2, 35, 55, 2, 40, 0, 97, 115, 2, 109, 121, 110, 3, 57, 2, 35, 89, 0, 117, 2, 114, 105, 100, 3, 57, 2, 40, 0, 111, 101,
+			114, 2, 110, 97, 3, 57, 2, 40, 34, 0, 117, 114, 105, 115, 2, 100, 105, 107, 3, 57, 2, 40, 34, 13, 89, 0, 111, 104, 97, 2,
+			110, 3, 57, 2, 40, 107, 35, 0, 111, 114, 100, 97, 8, 2, 110, 105, 17, 65, 3, 57, 2, 110, 34, 72, 115, 0, 97, 107, 111, 98,
+			2, 114, 101, 103, 111, 112, 3, 57, 2, 115, 49, 2, 110, 48, 0, 117, 2, 119, 101, 3, 57, 2, 118, 0, 117, 119, 101, 2, 108, 105,
+			101, 114, 3, 57, 2, 118, 84, 13, 0, 117, 119, 101, 108, 101, 3, 57, 2, 118, 84, 116, 55, 13, 0, 117, 110, 103, 105, 8, 2, 97,
+			3, 57, 4, 40, 68, 2, 37, 0, 97, 103, 8, 2, 17, 65, 3, 57, 7, 35, 136, 10, 0, 101, 114, 117, 115, 97, 108, 101, 109, 3,
+			57, 13, 34, 118, 89, 2, 35, 55, 2, 108, 65, 0, 101, 110, 101, 119, 101, 114, 3, 57, 13, 50, 116, 84, 13, 34, 0, 97, 8, 2,
+			110, 110, 17, 65, 12, 3, 57, 35, 0, 97, 110, 8, 2, 115, 17, 65, 110, 25, 3, 57, 35, 50, 0, 97, 110, 117, 97, 114, 105, 101,
+			3, 57, 35, 50, 118, 4, 115, 34, 37, 0, 97, 103, 117, 97, 114, 3, 57, 35, 81, 58, 35, 34, 0, 101, 115, 117, 115, 3, 57, 37,
+			12, 89, 111, 89, 0, 117, 110, 105, 101, 3, 57, 40, 50, 37, 0, 117, 108, 105, 101, 3, 57, 40, 55, 37, 0, 111, 110, 103, 2, 101,
+			116, 106, 105, 101, 3, 57, 110, 68, 0, 111, 110, 103, 101, 3, 57, 110, 68, 13, 0, 97, 2, 98, 114, 111, 101, 114, 3, 57, 115, 0,
+			4, 97, 103, 2, 101, 110, 100, 3, 57, 115, 136, 0, 97, 103, 2, 101, 114, 0, 97, 103, 2, 105, 110, 103, 0, 101, 108, 108, 105, 101,
+			3, 75, 6, 108, 55, 37, 0, 111, 117, 108, 101, 3, 75, 40, 12, 55, 0, 97, 122, 122, 3, 75, 113, 88, 0, 7, 6, 107, 0, 2,
+			107, 3, 0, 107, 108, 101, 114, 101, 3, 8, 49, 55, 6, 116, 34, 13, 0, 3, 49, 0, 97, 114, 97, 107, 116, 101, 114, 3, 49, 2,
+			35, 34, 35, 49, 47, 13, 34, 0, 4, 105, 2, 110, 101, 116, 105, 101, 3, 49, 2, 37, 0, 105, 8, 2, 116, 97, 0, 105, 97, 97,
+			116, 3, 49, 2, 37, 38, 115, 47, 0, 105, 107, 111, 101, 2, 106, 111, 101, 3, 49, 2, 37, 49, 40, 12, 0, 105, 108, 105, 109, 97,
+			110, 100, 106, 97, 114, 111, 3, 49, 2, 37, 55, 13, 65, 2, 35, 50, 75, 115, 34, 40, 0, 101, 110, 2, 109, 101, 114, 107, 101, 110,
+			3, 49, 2, 108, 50, 0, 117, 108, 105, 110, 3, 49, 2, 111, 55, 2, 37, 50, 0, 101, 114, 97, 2, 109, 105, 101, 107, 3, 49, 2,
+			112, 34, 2, 35, 0, 101, 108, 107, 105, 101, 2, 119, 121, 110, 3, 49, 2, 112, 55, 49, 2, 37, 0, 101, 108, 110, 101, 114, 2, 105,
+			110, 3, 49, 2, 112, 55, 50, 13, 34, 0, 4, 117, 2, 98, 97, 21, 3, 49, 2, 118, 0, 117, 2, 98, 105, 101, 107, 0, 101, 105,
+			115, 101, 114, 2, 105, 110, 3, 49, 2, 123, 88, 13, 34, 0, 117, 110, 100, 105, 1, 21, 2, 103, 3, 49, 6, 111, 50, 72, 13, 0,
+			117, 115, 1, 105, 3, 49, 6, 111, 89, 0, 101, 114, 1, 114, 101, 100, 101, 119, 2, 17, 65, 3, 49, 6, 116, 34, 0, 101, 117, 114,
+			105, 103, 1, 21, 3, 49, 6, 128, 34, 13, 136, 0, 101, 117, 115, 101, 8, 3, 49, 7, 128, 89, 13, 0, 4, 101, 114, 1, 21, 2,
+			116, 106, 105, 101, 3, 49, 13, 34, 0, 107, 101, 114, 2, 17, 65, 0, 101, 114, 101, 110, 100, 1, 110, 2, 32, 3, 49, 13, 34, 13,
+			50, 47, 0, 101, 114, 101, 110, 100, 101, 1, 110, 2, 32, 3, 49, 13, 34, 13, 50, 72, 13, 0, 101, 114, 107, 101, 114, 115, 1, 107,
+			105, 108, 102, 3, 49, 13, 34, 49, 113, 34, 89, 0, 4, 101, 108, 101, 110, 100, 2, 32, 3, 49, 13, 55, 13, 50, 47, 0, 107, 101,
+			108, 101, 110, 100, 2, 32, 0, 4, 101, 108, 101, 110, 100, 101, 2, 32, 3, 49, 13, 55, 13, 50, 72, 13, 0, 107, 101, 108, 101, 110,
+			100, 101, 2, 32, 0, 4, 101, 108, 105, 110, 103, 3, 49, 13, 55, 13, 68, 0, 107, 101, 108, 105, 110, 103, 0, 114, 97, 2, 119, 97,
+			116, 3, 49, 34, 2, 35, 0, 4, 114, 101, 8, 2, 111, 3, 49, 34, 2, 37, 0, 114, 105, 2, 111, 101, 108, 0, 114, 101, 2, 100,
+			105, 116, 3, 49, 34, 2, 108, 0, 114, 111, 107, 111, 100, 105, 2, 108, 3, 49, 34, 2, 110, 49, 13, 72, 109, 0, 114, 117, 103, 101,
+			114, 3, 49, 34, 6, 128, 13, 34, 0, 114, 97, 103, 8, 2, 17, 65, 3, 49, 34, 7, 35, 136, 10, 0, 4, 114, 101, 2, 100, 105,
+			101, 116, 3, 49, 34, 13, 0, 114, 101, 8, 2, 112, 101, 21, 0, 114, 105, 2, 115, 97, 110, 116, 0, 114, 105, 116, 2, 17, 65, 3,
+			49, 34, 13, 47, 0, 114, 101, 109, 101, 2, 116, 97, 114, 116, 3, 49, 34, 13, 65, 13, 0, 114, 105, 109, 105, 2, 110, 17, 65, 3,
+			49, 34, 13, 65, 13, 6, 0, 114, 105, 115, 116, 97, 2, 108, 3, 49, 34, 13, 89, 47, 35, 0, 114, 105, 116, 105, 101, 115, 3, 49,
+			34, 37, 47, 37, 89, 0, 114, 105, 101, 107, 101, 116, 3, 49, 34, 37, 49, 13, 47, 0, 114, 105, 101, 107, 101, 116, 119, 3, 49, 34,
+			37, 49, 13, 47, 84, 0, 114, 105, 101, 119, 101, 2, 108, 3, 49, 34, 37, 84, 13, 0, 114, 97, 2, 103, 105, 101, 3, 49, 34, 115,
+			0, 97, 109, 101, 108, 101, 8, 3, 49, 35, 65, 6, 116, 55, 13, 0, 105, 108, 111, 8, 3, 49, 37, 55, 2, 40, 0, 105, 101, 115,
+			101, 114, 2, 21, 3, 49, 37, 89, 13, 34, 0, 110, 105, 112, 2, 17, 65, 3, 49, 50, 109, 48, 19, 0, 110, 101, 114, 115, 2, 32,
+			3, 49, 50, 112, 34, 89, 0, 4, 108, 97, 2, 115, 115, 105, 101, 107, 3, 49, 55, 2, 35, 0, 108, 97, 2, 118, 105, 101, 114, 0,
+			108, 97, 114, 105, 110, 101, 2, 116, 3, 49, 55, 2, 35, 34, 2, 37, 50, 108, 0, 108, 97, 110, 100, 101, 2, 115, 116, 105, 3, 49,
+			55, 2, 35, 50, 72, 13, 0, 4, 108, 97, 119, 101, 114, 2, 98, 111, 101, 114, 3, 49, 55, 2, 115, 84, 13, 34, 0, 108, 97, 119,
+			101, 114, 2, 100, 114, 0, 108, 97, 119, 101, 114, 2, 104, 101, 101, 114, 0, 108, 97, 119, 101, 114, 2, 106, 97, 115, 0, 108, 97, 119,
+			101, 114, 2, 110, 101, 103, 101, 0, 108, 97, 119, 101, 114, 2, 115, 101, 119, 0, 108, 97, 119, 101, 114, 2, 116, 0, 108, 97, 119, 101,
+			114, 2, 118, 0, 108, 97, 119, 101, 114, 2, 97, 3, 49, 55, 2, 115, 84, 13, 34, 10, 0, 108, 97, 119, 101, 114, 115, 101, 115, 3,
+			49, 55, 2, 115, 84, 13, 34, 89, 108, 89, 0, 108, 111, 117, 2, 115, 117, 108, 101, 3, 49, 55, 2, 120, 0, 108, 101, 105, 110, 2,
+			115, 105, 101, 108, 105, 3, 49, 55, 2, 123, 50, 0, 108, 101, 105, 110, 115, 101, 2, 114, 105, 103, 3, 49, 55, 2, 123, 50, 89, 116,
+			0, 4, 108, 105, 2, 109, 97, 97, 116, 3, 49, 55, 13, 0, 108, 105, 2, 110, 105, 101, 107, 0, 108, 97, 8, 2, 115, 17, 65, 21,
+			21, 3, 49, 55, 35, 0, 108, 105, 2, 109, 111, 112, 3, 49, 55, 109, 0, 108, 105, 112, 2, 17, 65, 3, 49, 55, 109, 48, 10, 0,
+			108, 105, 109, 1, 103, 114, 101, 98, 2, 17, 65, 3, 49, 55, 109, 65, 10, 0, 108, 97, 2, 107, 111, 117, 115, 3, 49, 55, 115, 0,
+			108, 97, 97, 114, 98, 108, 121, 107, 108, 105, 107, 3, 49, 55, 115, 34, 71, 55, 6, 123, 49, 55, 13, 49, 0, 4, 108, 97, 119, 101,
+			114, 3, 49, 55, 115, 84, 13, 34, 0, 108, 97, 119, 101, 114, 2, 118, 101, 108, 100, 0, 108, 97, 118, 101, 115, 105, 109, 98, 101, 108,
+			3, 49, 55, 115, 84, 13, 89, 13, 65, 71, 13, 55, 0, 108, 101, 114, 101, 3, 49, 55, 116, 34, 13, 0, 108, 101, 117, 114, 2, 101,
+			102, 102, 101, 107, 3, 49, 55, 128, 34, 0, 108, 101, 117, 114, 101, 3, 49, 55, 128, 34, 13, 0, 119, 8, 3, 49, 58, 0, 4, 119,
+			97, 2, 100, 114, 97, 3, 49, 58, 2, 35, 0, 119, 97, 2, 116, 114, 121, 110, 0, 119, 97, 114, 8, 2, 116, 17, 65, 3, 49, 58,
+			2, 35, 34, 0, 119, 97, 114, 97, 110, 2, 116, 3, 49, 58, 2, 35, 34, 13, 50, 0, 119, 97, 114, 116, 101, 2, 116, 3, 49, 58,
+			2, 35, 34, 47, 108, 0, 119, 97, 108, 105, 2, 17, 67, 21, 3, 49, 58, 2, 35, 55, 2, 37, 0, 119, 97, 97, 100, 2, 97, 97,
+			114, 100, 105, 3, 49, 58, 2, 115, 47, 10, 0, 119, 105, 2, 116, 97, 110, 115, 3, 49, 58, 13, 0, 119, 105, 110, 116, 101, 2, 116,
+			3, 49, 58, 13, 50, 47, 108, 0, 119, 97, 114, 116, 2, 101, 101, 117, 3, 49, 58, 35, 34, 47, 10, 0, 119, 97, 114, 116, 101, 105,
+			110, 100, 8, 3, 49, 58, 35, 34, 47, 10, 123, 50, 47, 0, 119, 97, 114, 116, 101, 108, 3, 49, 58, 35, 34, 47, 13, 55, 10, 0,
+			119, 101, 108, 97, 3, 49, 58, 108, 12, 55, 35, 0, 119, 105, 107, 8, 2, 17, 65, 3, 49, 58, 109, 49, 10, 0, 101, 2, 110, 110,
+			17, 65, 25, 3, 49, 108, 0, 117, 114, 119, 101, 3, 49, 111, 34, 84, 13, 0, 101, 114, 1, 21, 2, 115, 105, 101, 32, 3, 49, 112,
+			34, 0, 101, 114, 107, 2, 32, 3, 49, 112, 34, 49, 0, 101, 114, 107, 101, 2, 32, 3, 49, 112, 34, 49, 13, 0, 101, 114, 107, 101,
+			114, 3, 49, 112, 34, 49, 13, 34, 0, 101, 114, 107, 105, 101, 2, 25, 3, 49, 112, 34, 49, 37, 0, 101, 108, 110, 101, 114, 3, 49,
+			112, 55, 50, 13, 34, 0, 4, 101, 114, 115, 1, 108, 101, 116, 116, 111, 98, 3, 49, 113, 34, 89, 0, 101, 114, 115, 1, 115, 101, 101,
+			102, 0, 101, 116, 101, 2, 108, 3, 49, 116, 47, 13, 0, 101, 105, 115, 101, 114, 3, 49, 123, 88, 13, 34, 0, 7, 6, 108, 0, 2,
+			108, 3, 0, 111, 107, 111, 109, 111, 3, 4, 55, 40, 49, 40, 65, 40, 6, 0, 4, 97, 110, 100, 8, 2, 32, 114, 111, 118, 101, 114,
+			3, 21, 0, 101, 1, 17, 67, 2, 32, 0, 101, 115, 115, 1, 21, 2, 32, 0, 108, 1, 21, 2, 32, 24, 0, 3, 55, 0, 4, 97,
+			2, 116, 101, 110, 116, 3, 55, 2, 35, 0, 97, 8, 2, 107, 111, 110, 0, 97, 116, 114, 105, 110, 101, 3, 55, 2, 35, 47, 34, 37,
+			50, 13, 0, 97, 112, 97, 114, 2, 111, 116, 111, 109, 105, 3, 55, 2, 35, 48, 2, 35, 34, 0, 97, 112, 101, 108, 2, 32, 3, 55,
+			2, 35, 48, 6, 112, 55, 0, 97, 112, 101, 2, 108, 25, 3, 55, 2, 35, 48, 112, 0, 97, 110, 8, 2, 115, 17, 65, 3, 55, 2,
+			35, 50, 0, 97, 110, 111, 2, 108, 105, 101, 110, 3, 55, 2, 35, 50, 2, 40, 0, 97, 110, 100, 101, 2, 114, 121, 3, 55, 2, 35,
+			50, 72, 13, 0, 97, 109, 2, 108, 101, 110, 3, 55, 2, 35, 65, 0, 97, 109, 112, 101, 2, 116, 3, 55, 2, 35, 65, 48, 108, 0,
+			4, 97, 110, 103, 2, 119, 101, 114, 112, 3, 55, 2, 35, 68, 0, 97, 110, 103, 8, 2, 100, 21, 21, 0, 97, 110, 107, 2, 109, 111,
+			101, 3, 55, 2, 35, 68, 49, 0, 97, 98, 105, 2, 114, 105, 110, 116, 3, 55, 2, 35, 71, 13, 0, 97, 98, 111, 114, 97, 116, 111,
+			114, 3, 55, 2, 35, 71, 14, 34, 2, 35, 47, 6, 117, 34, 0, 97, 118, 101, 110, 116, 101, 108, 3, 55, 2, 35, 83, 108, 50, 47,
+			13, 55, 0, 97, 103, 117, 110, 101, 3, 55, 2, 35, 136, 118, 50, 13, 0, 105, 2, 107, 119, 105, 100, 3, 55, 2, 37, 0, 4, 105,
+			116, 2, 111, 116, 111, 109, 105, 101, 3, 55, 2, 37, 47, 0, 105, 116, 8, 2, 111, 103, 114, 97, 102, 0, 105, 116, 111, 8, 2, 17,
+			67, 3, 55, 2, 37, 47, 2, 40, 0, 105, 110, 103, 117, 2, 105, 3, 55, 2, 37, 68, 81, 58, 0, 105, 101, 102, 2, 116, 97, 108,
+			108, 3, 55, 2, 37, 83, 0, 4, 111, 2, 106, 97, 3, 55, 2, 40, 0, 111, 2, 107, 97, 108, 17, 65, 0, 117, 112, 105, 110, 101,
+			3, 55, 2, 40, 48, 37, 50, 13, 0, 111, 98, 111, 116, 111, 2, 109, 105, 101, 3, 55, 2, 40, 71, 2, 110, 47, 2, 40, 0, 111,
+			115, 105, 101, 115, 8, 3, 55, 2, 40, 89, 6, 37, 89, 0, 117, 115, 101, 114, 110, 3, 55, 2, 40, 89, 113, 34, 13, 50, 0, 101,
+			103, 105, 2, 111, 101, 110, 3, 55, 2, 108, 136, 2, 37, 0, 111, 109, 2, 98, 97, 114, 100, 17, 65, 3, 55, 2, 110, 65, 0, 111,
+			98, 111, 108, 97, 3, 55, 2, 110, 71, 131, 55, 35, 0, 111, 115, 98, 97, 110, 100, 105, 2, 103, 3, 55, 2, 110, 89, 71, 35, 50,
+			72, 13, 0, 117, 2, 109, 105, 101, 114, 3, 55, 2, 111, 0, 117, 107, 115, 97, 2, 108, 105, 103, 3, 55, 2, 111, 49, 89, 6, 115,
+			0, 101, 100, 101, 2, 107, 97, 110, 116, 3, 55, 2, 116, 72, 13, 0, 101, 118, 105, 2, 97, 116, 97, 110, 3, 55, 2, 116, 84, 2,
+			37, 0, 111, 117, 2, 114, 105, 101, 114, 3, 55, 2, 120, 0, 4, 121, 107, 2, 109, 111, 101, 100, 3, 55, 2, 123, 49, 0, 121, 107,
+			2, 110, 97, 109, 0, 117, 105, 116, 101, 2, 110, 97, 110, 116, 3, 55, 2, 127, 47, 13, 0, 117, 105, 100, 2, 114, 117, 103, 116, 3,
+			55, 2, 127, 72, 0, 111, 115, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 55, 6, 110, 89, 136, 13, 0, 117, 115, 116, 105, 1, 21,
+			2, 103, 3, 55, 6, 111, 89, 47, 13, 0, 101, 101, 114, 1, 105, 17, 67, 3, 55, 6, 116, 34, 0, 101, 114, 105, 110, 103, 2, 32,
+			3, 55, 6, 116, 34, 13, 68, 0, 117, 103, 8, 2, 17, 67, 3, 55, 7, 111, 136, 0, 4, 101, 1, 108, 2, 32, 3, 55, 13, 0,
+			101, 1, 108, 21, 2, 115, 17, 67, 21, 0, 105, 2, 107, 101, 117, 114, 0, 105, 2, 114, 105, 101, 107, 0, 105, 2, 116, 117, 114, 103,
+			105, 101, 0, 105, 8, 2, 109, 105, 0, 105, 116, 101, 114, 2, 17, 65, 3, 55, 13, 47, 13, 34, 0, 105, 116, 101, 114, 97, 2, 116,
+			3, 55, 13, 47, 13, 34, 2, 35, 0, 105, 107, 1, 10, 2, 32, 14, 128, 128, 131, 3, 55, 13, 49, 0, 4, 105, 107, 101, 1, 10,
+			2, 17, 67, 21, 3, 55, 13, 49, 13, 0, 105, 107, 101, 1, 10, 2, 32, 14, 128, 128, 132, 0, 105, 107, 107, 101, 2, 119, 97, 0,
+			105, 107, 101, 114, 1, 10, 2, 32, 14, 128, 128, 133, 3, 55, 13, 49, 13, 34, 0, 105, 107, 101, 115, 1, 10, 2, 32, 14, 128, 128,
+			133, 3, 55, 13, 49, 13, 89, 0, 105, 107, 115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 134, 3, 55, 13, 49, 89, 47, 13, 0, 105,
+			110, 105, 2, 97, 97, 108, 3, 55, 13, 50, 2, 37, 0, 105, 110, 111, 2, 108, 101, 117, 109, 3, 55, 13, 50, 117, 0, 105, 109, 111,
+			117, 115, 105, 110, 101, 3, 55, 13, 65, 2, 40, 88, 37, 12, 50, 0, 105, 98, 101, 2, 114, 17, 65, 3, 55, 13, 71, 13, 0, 105,
+			98, 101, 8, 2, 114, 105, 21, 3, 55, 13, 71, 116, 0, 101, 118, 8, 2, 105, 3, 55, 13, 83, 0, 101, 119, 101, 114, 107, 1, 17,
+			65, 3, 55, 13, 84, 112, 34, 49, 0, 105, 115, 101, 110, 115, 105, 2, 101, 101, 114, 3, 55, 13, 89, 2, 108, 50, 89, 2, 37, 0,
+			105, 115, 101, 110, 115, 105, 101, 3, 55, 13, 89, 108, 12, 50, 89, 2, 37, 0, 105, 103, 2, 104, 111, 111, 102, 100, 3, 55, 13, 136,
+			0, 105, 103, 101, 110, 3, 55, 13, 136, 6, 108, 50, 0, 101, 103, 101, 110, 2, 100, 97, 3, 55, 13, 136, 13, 50, 0, 101, 103, 101,
+			110, 100, 101, 3, 55, 13, 136, 108, 50, 72, 13, 0, 105, 103, 103, 97, 97, 109, 108, 105, 107, 3, 55, 13, 136, 115, 65, 55, 13, 49,
+			0, 109, 1, 10, 2, 25, 3, 55, 14, 65, 0, 97, 110, 103, 101, 8, 2, 17, 67, 17, 65, 3, 55, 35, 68, 13, 0, 97, 102, 2,
+			97, 97, 114, 3, 55, 35, 83, 0, 4, 105, 2, 103, 97, 32, 3, 55, 37, 0, 105, 8, 2, 103, 97, 17, 67, 0, 105, 101, 102, 100,
+			101, 115, 3, 55, 37, 83, 72, 13, 89, 0, 101, 110, 100, 101, 8, 3, 55, 108, 50, 72, 13, 0, 4, 101, 115, 1, 17, 67, 21, 2,
+			25, 3, 55, 108, 89, 0, 101, 115, 1, 101, 105, 2, 32, 0, 101, 115, 115, 101, 1, 17, 67, 21, 2, 32, 3, 55, 108, 89, 13, 0,
+			105, 8, 2, 103, 3, 55, 109, 0, 105, 110, 107, 101, 114, 3, 55, 109, 68, 49, 13, 34, 0, 117, 115, 2, 111, 3, 55, 111, 89, 10,
+			0, 117, 103, 2, 17, 65, 3, 55, 111, 136, 19, 0, 101, 2, 107, 107, 101, 114, 3, 55, 112, 0, 97, 112, 97, 8, 2, 25, 3, 55,
+			115, 48, 35, 0, 101, 112, 101, 2, 108, 108, 3, 55, 116, 48, 13, 0, 101, 110, 105, 110, 103, 3, 55, 116, 50, 13, 68, 0, 101, 108,
+			105, 2, 107, 3, 55, 116, 55, 13, 0, 4, 101, 100, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 116, 72, 13, 0, 101, 100, 101,
+			1, 114, 101, 118, 2, 25, 0, 101, 100, 101, 2, 17, 67, 0, 101, 100, 105, 110, 103, 2, 32, 3, 55, 116, 72, 13, 68, 0, 101, 119,
+			101, 2, 25, 3, 55, 116, 84, 13, 0, 101, 119, 101, 2, 116, 106, 105, 101, 3, 55, 116, 84, 37, 0, 111, 114, 101, 8, 2, 17, 67,
+			21, 3, 55, 117, 34, 13, 0, 117, 2, 107, 119, 97, 114, 116, 3, 55, 118, 0, 117, 116, 104, 101, 114, 3, 55, 118, 47, 13, 34, 0,
+			101, 117, 101, 110, 2, 116, 106, 105, 101, 3, 55, 128, 37, 68, 0, 4, 97, 109, 102, 101, 114, 3, 55, 133, 65, 83, 13, 34, 0, 97,
+			110, 102, 101, 114, 0, 7, 6, 109, 0, 2, 109, 3, 0, 110, 1, 21, 2, 32, 3, 21, 0, 3, 65, 0, 117, 115, 105, 101, 107, 3,
+			65, 2, 111, 89, 37, 49, 0, 117, 115, 107, 97, 100, 101, 108, 3, 65, 2, 111, 89, 49, 2, 35, 72, 112, 55, 0, 117, 115, 107, 101,
+			2, 116, 105, 101, 114, 3, 65, 2, 111, 89, 49, 13, 0, 117, 115, 107, 101, 108, 2, 106, 97, 97, 116, 3, 65, 2, 111, 89, 49, 13,
+			55, 0, 117, 115, 101, 117, 109, 3, 65, 2, 118, 89, 128, 65, 0, 109, 101, 1, 17, 65, 17, 67, 2, 17, 67, 3, 65, 13, 0, 109,
+			101, 1, 17, 65, 17, 67, 2, 116, 106, 105, 101, 3, 65, 37, 0, 112, 101, 108, 1, 21, 2, 17, 65, 3, 65, 48, 13, 55, 0, 117,
+			114, 109, 101, 108, 3, 65, 111, 34, 65, 13, 55, 0, 117, 115, 105, 2, 17, 67, 3, 65, 118, 89, 37, 6, 0, 121, 109, 101, 114, 3,
+			65, 123, 65, 13, 34, 0, 195, 180, 114, 101, 2, 21, 3, 65, 131, 34, 13, 0, 7, 6, 110, 0, 4, 2, 32, 110, 3, 0, 2, 110,
+			3, 0, 97, 2, 116, 97, 108, 3, 4, 50, 35, 6, 0, 4, 3, 50, 0, 1, 10, 2, 103, 97, 116, 0, 1, 97, 97, 2, 103, 97,
+			115, 0, 1, 101, 2, 103, 111, 101, 17, 67, 0, 1, 101, 101, 2, 103, 0, 1, 101, 111, 2, 103, 0, 1, 101, 119, 2, 103, 21, 12,
+			12, 0, 1, 105, 101, 2, 103, 0, 1, 105, 112, 115, 2, 103, 101, 0, 1, 105, 117, 17, 67, 2, 103, 0, 1, 111, 111, 2, 103, 0,
+			1, 117, 101, 2, 103, 0, 1, 121, 2, 103, 0, 1, 171, 195, 2, 103, 0, 2, 32, 110, 32, 0, 8, 2, 17, 65, 17, 65, 0, 4,
+			97, 1, 21, 2, 108, 105, 115, 3, 50, 2, 35, 0, 97, 2, 116, 117, 117, 114, 0, 97, 2, 118, 114, 97, 110, 116, 0, 97, 8, 2,
+			114, 107, 0, 97, 2, 195, 175, 3, 50, 2, 35, 10, 0, 97, 2, 195, 175, 3, 50, 2, 35, 19, 0, 97, 114, 101, 115, 2, 32, 3,
+			50, 2, 35, 34, 6, 108, 89, 0, 97, 116, 117, 114, 101, 2, 108, 25, 3, 50, 2, 35, 47, 2, 118, 34, 112, 0, 97, 112, 111, 108,
+			101, 2, 111, 110, 116, 3, 50, 2, 35, 48, 2, 117, 55, 2, 37, 0, 97, 112, 111, 2, 108, 101, 111, 110, 3, 50, 2, 35, 48, 117,
+			0, 97, 109, 97, 107, 119, 97, 3, 50, 2, 35, 65, 35, 49, 58, 2, 35, 0, 97, 109, 105, 2, 98, 105, 3, 50, 2, 35, 65, 109,
+			0, 97, 118, 105, 103, 3, 50, 2, 35, 84, 2, 37, 136, 0, 97, 115, 105, 111, 2, 110, 97, 3, 50, 2, 35, 91, 2, 37, 2, 40,
+			0, 101, 2, 97, 110, 100, 101, 114, 17, 67, 97, 3, 50, 2, 37, 0, 101, 111, 2, 108, 105, 3, 50, 2, 37, 2, 40, 0, 4, 105,
+			107, 111, 2, 116, 105, 3, 50, 2, 37, 49, 2, 40, 0, 105, 107, 111, 2, 116, 105, 101, 110, 0, 111, 116, 2, 101, 114, 105, 110, 103,
+			3, 50, 2, 40, 47, 0, 111, 116, 117, 108, 101, 2, 25, 3, 50, 2, 40, 47, 118, 55, 13, 0, 111, 118, 101, 108, 108, 101, 3, 50,
+			2, 40, 83, 112, 55, 13, 0, 101, 107, 116, 97, 2, 114, 105, 101, 110, 3, 50, 2, 108, 49, 47, 2, 35, 0, 111, 2, 115, 116, 97,
+			108, 103, 105, 101, 3, 50, 2, 110, 0, 111, 114, 2, 109, 97, 21, 3, 50, 2, 110, 34, 0, 111, 107, 116, 117, 114, 110, 101, 3, 50,
+			2, 110, 49, 47, 111, 34, 50, 13, 0, 111, 110, 99, 104, 97, 2, 108, 97, 3, 50, 2, 110, 50, 91, 2, 35, 0, 111, 109, 105, 2,
+			110, 17, 65, 3, 50, 2, 110, 65, 2, 37, 0, 111, 109, 109, 101, 114, 2, 101, 101, 110, 3, 50, 2, 110, 65, 13, 34, 19, 0, 111,
+			115, 116, 97, 108, 2, 103, 105, 101, 32, 24, 3, 50, 2, 110, 89, 47, 2, 35, 55, 0, 101, 114, 2, 118, 101, 117, 3, 50, 2, 112,
+			34, 0, 4, 97, 2, 98, 117, 114, 105, 103, 3, 50, 2, 115, 0, 97, 2, 98, 121, 103, 101, 0, 97, 8, 2, 98, 121, 21, 0, 97,
+			8, 2, 100, 101, 108, 105, 103, 0, 97, 8, 2, 108, 97, 116, 105, 103, 0, 97, 8, 2, 115, 112, 101, 117, 114, 0, 97, 2, 121, 119,
+			101, 114, 105, 103, 3, 50, 2, 115, 10, 0, 97, 97, 114, 115, 116, 105, 103, 116, 101, 3, 50, 2, 115, 34, 89, 47, 109, 136, 47, 13,
+			0, 97, 98, 121, 104, 2, 101, 3, 50, 2, 115, 71, 123, 107, 0, 4, 101, 101, 114, 2, 100, 114, 117, 107, 107, 3, 50, 2, 116, 34,
+			0, 101, 101, 114, 2, 104, 97, 108, 101, 110, 100, 0, 101, 103, 101, 114, 2, 105, 110, 3, 50, 2, 116, 136, 13, 34, 0, 111, 2, 109,
+			97, 100, 3, 50, 2, 117, 0, 111, 111, 114, 100, 2, 111, 111, 115, 3, 50, 2, 117, 34, 47, 10, 0, 4, 111, 111, 100, 2, 108, 111,
+			116, 116, 105, 3, 50, 2, 117, 47, 0, 111, 111, 100, 2, 115, 97, 97, 107, 0, 111, 116, 97, 114, 105, 2, 17, 65, 3, 50, 2, 117,
+			47, 2, 35, 34, 2, 37, 38, 0, 111, 98, 101, 108, 8, 3, 50, 2, 117, 71, 112, 55, 0, 111, 118, 101, 109, 98, 101, 114, 3, 50,
+			2, 117, 83, 108, 65, 71, 13, 34, 0, 117, 97, 110, 2, 115, 101, 101, 114, 3, 50, 2, 118, 2, 35, 50, 0, 117, 97, 110, 115, 101,
+			2, 114, 105, 110, 103, 3, 50, 2, 118, 2, 35, 50, 89, 116, 0, 117, 97, 110, 115, 101, 2, 25, 3, 50, 2, 118, 35, 50, 89, 13,
+			0, 117, 119, 101, 114, 2, 119, 101, 116, 3, 50, 2, 118, 84, 13, 34, 0, 117, 117, 115, 2, 107, 105, 101, 114, 105, 103, 3, 50, 2,
+			118, 89, 0, 101, 117, 2, 116, 114, 3, 50, 2, 128, 0, 101, 117, 114, 111, 2, 17, 67, 17, 65, 3, 50, 2, 128, 34, 117, 0, 97,
+			8, 2, 17, 67, 32, 3, 50, 6, 35, 0, 97, 103, 8, 2, 17, 67, 3, 50, 6, 35, 136, 0, 97, 8, 3, 50, 6, 115, 0, 97,
+			103, 8, 2, 114, 97, 97, 100, 3, 50, 6, 115, 136, 0, 97, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 50, 6, 115, 136, 13, 0,
+			101, 108, 101, 1, 10, 2, 32, 3, 50, 6, 116, 55, 13, 0, 101, 101, 115, 1, 21, 2, 32, 3, 50, 6, 116, 89, 0, 101, 115, 101,
+			2, 32, 3, 50, 6, 116, 89, 13, 0, 4, 121, 1, 114, 101, 17, 67, 21, 2, 32, 3, 50, 6, 123, 0, 121, 1, 114, 101, 17, 67,
+			21, 2, 101, 0, 97, 8, 2, 115, 107, 101, 101, 114, 3, 50, 7, 115, 0, 101, 101, 114, 103, 101, 8, 2, 17, 67, 21, 14, 128, 132,
+			134, 3, 50, 7, 116, 34, 136, 13, 0, 101, 2, 103, 111, 115, 105, 101, 3, 50, 13, 0, 110, 105, 110, 103, 3, 50, 13, 68, 0, 110,
+			101, 115, 1, 97, 104, 3, 50, 13, 89, 0, 4, 97, 1, 21, 2, 32, 3, 50, 35, 0, 97, 8, 2, 114, 17, 67, 0, 97, 8, 2,
+			116, 17, 67, 0, 97, 115, 116, 101, 114, 2, 103, 3, 50, 35, 89, 47, 13, 34, 0, 4, 97, 103, 2, 97, 100, 100, 101, 114, 3, 50,
+			35, 136, 10, 0, 97, 103, 2, 117, 105, 108, 0, 97, 103, 8, 2, 97, 97, 112, 0, 97, 103, 8, 2, 97, 112, 17, 65, 0, 105, 116,
+			114, 111, 3, 50, 37, 47, 34, 2, 40, 0, 116, 101, 114, 101, 2, 115, 115, 3, 50, 47, 34, 13, 6, 0, 101, 116, 2, 119, 101, 114,
+			107, 3, 50, 108, 47, 0, 101, 116, 116, 111, 8, 3, 50, 108, 47, 2, 40, 0, 4, 101, 116, 2, 97, 103, 116, 105, 103, 3, 50, 108,
+			47, 10, 0, 101, 116, 8, 2, 111, 0, 4, 101, 115, 1, 17, 67, 21, 2, 32, 3, 50, 108, 89, 0, 101, 115, 1, 101, 121, 98, 0,
+			101, 115, 1, 115, 2, 25, 0, 101, 115, 1, 121, 98, 0, 101, 115, 8, 2, 101, 105, 3, 50, 108, 89, 10, 0, 105, 2, 103, 103, 105,
+			101, 3, 50, 109, 0, 111, 103, 97, 108, 3, 50, 110, 136, 35, 55, 0, 101, 107, 2, 111, 109, 3, 50, 112, 49, 10, 0, 4, 97, 1,
+			114, 2, 32, 3, 50, 115, 0, 97, 2, 98, 111, 111, 116, 115, 0, 97, 2, 116, 114, 105, 117, 109, 0, 97, 2, 116, 114, 111, 115, 25,
+			0, 97, 2, 118, 114, 97, 0, 97, 8, 2, 103, 108, 111, 101, 0, 97, 8, 2, 115, 112, 101, 117, 114, 32, 24, 0, 97, 8, 2, 116,
+			114, 101, 107, 25, 0, 97, 1, 10, 2, 119, 101, 3, 50, 115, 2, 0, 97, 122, 105, 3, 50, 115, 47, 89, 37, 0, 97, 109, 101, 115,
+			3, 50, 115, 65, 13, 89, 0, 97, 100, 114, 117, 107, 108, 105, 107, 3, 50, 115, 72, 34, 6, 111, 49, 55, 13, 49, 0, 101, 116, 101,
+			108, 3, 50, 116, 47, 13, 55, 0, 111, 111, 100, 2, 115, 97, 97, 107, 32, 24, 3, 50, 117, 47, 0, 111, 116, 101, 2, 98, 3, 50,
+			117, 47, 13, 0, 121, 108, 111, 110, 3, 50, 122, 55, 110, 50, 0, 101, 117, 116, 101, 3, 50, 128, 47, 13, 0, 103, 101, 101, 115, 3,
+			50, 136, 116, 89, 0, 4, 2, 32, 103, 3, 68, 0, 2, 99, 0, 2, 107, 0, 2, 113, 0, 2, 116, 106, 105, 101, 0, 2, 120, 0,
+			103, 0, 103, 101, 114, 1, 17, 65, 17, 67, 3, 68, 13, 34, 0, 103, 101, 115, 1, 21, 2, 32, 3, 68, 13, 89, 0, 103, 117, 110,
+			105, 8, 3, 68, 81, 40, 12, 50, 37, 0, 4, 103, 1, 21, 2, 105, 116, 105, 115, 32, 3, 68, 136, 0, 103, 2, 101, 101, 82, 0,
+			103, 2, 101, 110, 116, 0, 7, 6, 111, 0, 4, 1, 17, 67, 2, 17, 67, 17, 65, 17, 65, 3, 2, 40, 0, 1, 17, 67, 2, 17,
+			67, 121, 0, 1, 17, 67, 10, 2, 32, 24, 0, 1, 107, 105, 115, 105, 114, 0, 2, 108, 105, 101, 110, 0, 97, 115, 101, 3, 2, 40,
+			10, 115, 89, 13, 0, 8, 105, 100, 117, 17, 65, 3, 2, 40, 12, 0, 114, 97, 110, 103, 2, 111, 101, 116, 3, 2, 40, 34, 2, 35,
+			68, 10, 0, 107, 114, 97, 116, 2, 105, 115, 17, 65, 3, 2, 40, 49, 34, 2, 35, 47, 0, 4, 2, 114, 97, 107, 101, 108, 3, 2,
+			110, 0, 2, 115, 111, 111, 110, 0, 8, 2, 109, 97, 114, 109, 0, 4, 114, 8, 2, 103, 97, 3, 2, 110, 34, 0, 114, 8, 2, 107,
+			97, 0, 4, 114, 116, 2, 111, 103, 114, 97, 3, 2, 110, 34, 47, 0, 114, 116, 2, 111, 108, 111, 0, 114, 116, 2, 111, 109, 101, 116,
+			114, 0, 114, 116, 2, 111, 115, 107, 111, 0, 114, 116, 111, 8, 2, 21, 3, 2, 110, 34, 47, 2, 40, 0, 114, 107, 101, 115, 3, 2,
+			110, 34, 49, 108, 89, 0, 114, 100, 111, 2, 110, 110, 97, 110, 3, 2, 110, 34, 72, 13, 0, 114, 100, 101, 110, 116, 8, 3, 2, 110,
+			34, 72, 108, 50, 47, 0, 114, 103, 97, 110, 105, 2, 115, 17, 65, 3, 2, 110, 34, 136, 2, 35, 50, 37, 0, 114, 103, 105, 2, 100,
+			101, 3, 2, 110, 34, 136, 13, 0, 98, 8, 2, 115, 3, 2, 110, 48, 0, 98, 115, 101, 114, 2, 118, 101, 101, 114, 3, 2, 110, 48,
+			89, 2, 112, 34, 0, 98, 115, 116, 105, 2, 110, 97, 3, 2, 110, 48, 89, 47, 13, 0, 107, 8, 2, 116, 17, 65, 3, 2, 110, 49,
+			0, 107, 107, 101, 114, 2, 110, 101, 117, 116, 3, 2, 110, 49, 13, 34, 0, 4, 109, 2, 108, 121, 3, 2, 110, 65, 0, 109, 2, 114,
+			105, 110, 103, 0, 109, 2, 115, 101, 105, 108, 0, 109, 2, 115, 105, 103, 0, 109, 2, 115, 119, 101, 114, 17, 67, 0, 109, 2, 118, 97,
+			116, 116, 0, 109, 2, 119, 101, 110, 116, 101, 108, 105, 0, 109, 8, 2, 103, 111, 114, 100, 0, 109, 8, 2, 104, 0, 109, 8, 2, 107,
+			108, 101, 109, 0, 109, 8, 2, 108, 97, 97, 103, 0, 109, 8, 2, 109, 117, 117, 114, 0, 109, 8, 2, 114, 97, 97, 109, 0, 109, 8,
+			2, 115, 105, 114, 107, 101, 108, 0, 109, 8, 2, 115, 107, 101, 112, 0, 109, 8, 2, 115, 107, 114, 0, 109, 8, 2, 115, 108, 117, 105,
+			101, 114, 0, 109, 8, 2, 115, 108, 117, 105, 116, 0, 109, 8, 2, 115, 116, 114, 101, 100, 101, 0, 109, 8, 2, 119, 97, 108, 0, 109,
+			8, 2, 119, 101, 108, 17, 67, 0, 109, 101, 108, 101, 2, 116, 3, 2, 110, 65, 13, 55, 108, 0, 109, 108, 105, 8, 2, 103, 103, 3,
+			2, 110, 65, 55, 109, 0, 109, 118, 101, 114, 8, 3, 2, 110, 65, 83, 112, 34, 0, 109, 115, 116, 97, 110, 100, 105, 103, 104, 3, 2,
+			110, 65, 89, 47, 35, 50, 72, 13, 136, 0, 109, 115, 107, 97, 110, 115, 8, 3, 2, 110, 65, 89, 49, 35, 50, 89, 0, 109, 115, 105,
+			110, 103, 101, 108, 3, 2, 110, 65, 89, 109, 68, 13, 55, 0, 109, 103, 101, 119, 105, 110, 103, 3, 2, 110, 65, 136, 116, 84, 13, 68,
+			0, 102, 102, 105, 115, 105, 3, 2, 110, 83, 2, 37, 91, 2, 37, 38, 0, 102, 102, 105, 2, 115, 105, 101, 114, 3, 2, 110, 83, 13,
+			0, 118, 117, 3, 2, 110, 84, 2, 118, 0, 115, 8, 2, 109, 111, 17, 67, 3, 2, 110, 89, 0, 115, 115, 105, 108, 108, 2, 101, 3,
+			2, 110, 89, 13, 55, 0, 115, 115, 105, 108, 108, 101, 2, 17, 67, 17, 65, 3, 2, 110, 89, 13, 55, 116, 0, 4, 1, 17, 67, 2,
+			17, 67, 105, 101, 101, 3, 2, 117, 0, 2, 108, 105, 109, 0, 2, 108, 121, 17, 67, 0, 2, 112, 97, 97, 108, 0, 2, 112, 97, 108,
+			101, 0, 8, 2, 118, 97, 21, 0, 114, 105, 195, 171, 110, 116, 2, 21, 3, 2, 117, 34, 2, 37, 57, 2, 108, 50, 47, 0, 114, 97,
+			110, 106, 101, 3, 2, 117, 34, 35, 50, 57, 13, 0, 114, 101, 110, 116, 2, 25, 3, 2, 117, 34, 108, 50, 47, 0, 116, 111, 109, 105,
+			101, 1, 21, 2, 32, 24, 3, 2, 117, 47, 2, 40, 65, 6, 37, 0, 116, 111, 109, 105, 101, 1, 21, 2, 195, 171, 3, 2, 117, 47,
+			2, 40, 65, 6, 37, 12, 0, 107, 97, 112, 105, 3, 2, 117, 49, 115, 48, 2, 37, 0, 108, 101, 2, 97, 110, 100, 101, 114, 3, 2,
+			117, 55, 2, 37, 0, 108, 121, 109, 2, 112, 3, 2, 117, 55, 109, 65, 0, 109, 105, 8, 2, 115, 115, 105, 101, 3, 2, 117, 65, 37,
+			0, 109, 101, 103, 97, 3, 2, 117, 65, 116, 136, 35, 0, 118, 97, 114, 105, 2, 111, 116, 111, 109, 105, 3, 2, 117, 84, 2, 115, 34,
+			2, 37, 0, 119, 101, 114, 2, 115, 112, 101, 108, 105, 103, 3, 2, 117, 84, 13, 34, 0, 115, 101, 2, 97, 3, 2, 117, 91, 2, 37,
+			0, 117, 116, 2, 111, 107, 114, 97, 3, 2, 120, 47, 0, 117, 100, 101, 114, 2, 119, 101, 116, 3, 2, 120, 72, 13, 34, 0, 1, 114,
 			117, 98, 2, 32, 3, 4, 117, 0, 117, 120, 3, 6, 40, 0, 109, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 6, 110, 65, 136, 13,
 			0, 109, 103, 101, 101, 2, 12, 3, 6, 110, 65, 136, 116, 0, 1, 98, 114, 2, 32, 3, 6, 117, 0, 114, 105, 117, 3, 6, 117, 34,
 			37, 111, 0, 116, 105, 101, 115, 1, 21, 3, 6, 117, 47, 37, 89, 0, 103, 105, 103, 1, 17, 67, 3, 10, 117, 136, 13, 136, 0, 4,
@@ -2477,293 +2443,310 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 97, 114, 97, 2, 115, 101, 3, 89, 2, 35, 34, 2, 35, 0, 97, 114, 107, 111, 2, 102, 97, 3, 89, 2, 35, 34, 49, 2, 40,
 			0, 4, 97, 110, 2, 17, 65, 116, 17, 65, 17, 67, 3, 89, 2, 35, 50, 0, 97, 110, 8, 2, 100, 97, 0, 4, 97, 108, 2, 109,
 			97, 110, 100, 101, 114, 3, 89, 2, 35, 55, 0, 97, 108, 2, 112, 101, 116, 101, 114, 0, 97, 108, 97, 2, 109, 97, 110, 100, 101, 114,
-			3, 89, 2, 35, 55, 2, 35, 0, 97, 108, 100, 97, 110, 104, 97, 3, 89, 2, 35, 55, 72, 35, 50, 2, 35, 0, 97, 108, 111, 2,
-			110, 3, 89, 2, 35, 55, 110, 0, 97, 109, 8, 2, 98, 3, 89, 2, 35, 65, 0, 97, 109, 97, 114, 105, 2, 116, 97, 3, 89, 2,
-			35, 65, 2, 35, 34, 2, 37, 0, 97, 110, 103, 101, 114, 101, 2, 25, 3, 89, 2, 35, 68, 13, 34, 108, 0, 97, 98, 111, 116, 2,
-			17, 65, 3, 89, 2, 35, 71, 2, 40, 47, 0, 97, 102, 97, 114, 105, 3, 89, 2, 35, 83, 115, 34, 2, 37, 0, 97, 118, 2, 97,
-			110, 110, 17, 65, 3, 89, 2, 35, 84, 0, 97, 103, 2, 109, 111, 101, 3, 89, 2, 35, 136, 0, 97, 103, 104, 101, 98, 98, 101, 2,
-			110, 3, 89, 2, 35, 136, 107, 108, 71, 13, 0, 105, 8, 2, 107, 108, 111, 3, 89, 2, 37, 0, 105, 112, 114, 101, 2, 25, 3, 89,
-			2, 37, 48, 34, 108, 0, 105, 101, 108, 107, 117, 110, 1, 21, 2, 100, 105, 103, 3, 89, 2, 37, 55, 49, 4, 111, 50, 0, 4, 111,
-			2, 110, 97, 116, 17, 65, 3, 89, 2, 40, 0, 111, 2, 112, 114, 97, 0, 111, 117, 2, 102, 102, 108, 101, 117, 0, 117, 2, 115, 97,
-			17, 67, 0, 117, 8, 2, 109, 101, 114, 105, 0, 111, 101, 116, 2, 115, 97, 112, 112, 105, 3, 89, 2, 40, 47, 0, 111, 110, 110, 101,
-			2, 116, 3, 89, 2, 40, 50, 108, 0, 111, 109, 97, 8, 2, 108, 105, 17, 65, 3, 89, 2, 40, 65, 115, 0, 111, 101, 100, 97, 8,
-			2, 110, 3, 89, 2, 40, 72, 35, 0, 111, 101, 119, 101, 2, 110, 105, 101, 114, 3, 89, 2, 40, 84, 13, 0, 111, 115, 97, 2, 116,
-			105, 3, 89, 2, 40, 89, 115, 0, 4, 111, 2, 108, 105, 100, 3, 89, 2, 110, 0, 111, 2, 108, 105, 101, 100, 0, 4, 111, 108, 2,
-			100, 121, 3, 89, 2, 110, 55, 0, 111, 108, 8, 2, 100, 97, 0, 117, 2, 109, 109, 105, 101, 114, 3, 89, 2, 111, 0, 117, 114, 114,
-			111, 2, 103, 97, 3, 89, 2, 111, 34, 2, 40, 0, 4, 117, 98, 2, 115, 116, 97, 110, 115, 105, 101, 3, 89, 2, 111, 48, 0, 117,
-			98, 2, 116, 105, 0, 117, 107, 115, 101, 115, 3, 89, 2, 111, 49, 89, 108, 89, 0, 117, 108, 116, 97, 110, 97, 3, 89, 2, 111, 55,
-			47, 115, 50, 2, 35, 0, 4, 117, 98, 2, 108, 105, 3, 89, 2, 111, 71, 0, 117, 98, 2, 115, 105, 100, 17, 65, 0, 117, 98, 2,
-			115, 107, 114, 105, 112, 0, 117, 98, 108, 105, 2, 109, 17, 65, 3, 89, 2, 111, 71, 55, 2, 37, 0, 117, 98, 108, 105, 109, 105, 2,
-			110, 97, 3, 89, 2, 111, 71, 55, 2, 37, 65, 2, 37, 0, 117, 98, 115, 116, 105, 2, 116, 117, 3, 89, 2, 111, 71, 89, 47, 13,
-			0, 117, 103, 103, 101, 115, 3, 89, 2, 111, 136, 108, 89, 0, 97, 2, 116, 97, 110, 105, 101, 3, 89, 2, 115, 0, 97, 109, 101, 8,
-			2, 104, 17, 65, 21, 3, 89, 2, 115, 65, 13, 0, 99, 101, 110, 97, 114, 105, 111, 3, 89, 2, 116, 50, 115, 34, 2, 37, 38, 2,
-			117, 0, 117, 105, 100, 2, 45, 97, 102, 114, 105, 107, 3, 89, 2, 127, 47, 0, 117, 105, 100, 2, 111, 111, 115, 3, 89, 2, 127, 47,
-			10, 0, 105, 110, 111, 2, 110, 105, 101, 109, 3, 89, 4, 37, 50, 2, 40, 0, 117, 112, 101, 114, 105, 110, 116, 101, 110, 100, 101, 110,
-			116, 3, 89, 4, 40, 48, 34, 13, 50, 47, 2, 108, 50, 72, 108, 50, 47, 0, 4, 111, 100, 111, 109, 2, 105, 101, 116, 3, 89, 4,
-			117, 72, 110, 65, 0, 111, 100, 111, 109, 2, 105, 101, 116, 0, 105, 116, 114, 117, 115, 3, 89, 6, 37, 47, 34, 2, 111, 89, 10, 0,
-			105, 101, 102, 1, 21, 2, 32, 3, 89, 6, 37, 83, 0, 105, 101, 119, 101, 1, 21, 2, 32, 3, 89, 6, 37, 84, 13, 0, 105, 101,
-			119, 101, 114, 1, 21, 2, 32, 3, 89, 6, 37, 84, 13, 34, 0, 105, 2, 110, 110, 105, 103, 3, 89, 6, 109, 0, 117, 103, 1, 21,
-			2, 116, 105, 103, 3, 89, 6, 111, 136, 0, 101, 108, 102, 2, 32, 3, 89, 6, 112, 55, 83, 0, 97, 97, 109, 8, 2, 14, 128, 132,
-			132, 3, 89, 6, 115, 65, 0, 97, 109, 101, 8, 2, 21, 14, 128, 132, 132, 3, 89, 6, 115, 65, 13, 0, 101, 114, 105, 110, 103, 1,
-			21, 3, 89, 6, 116, 34, 13, 68, 0, 101, 119, 101, 1, 25, 2, 17, 67, 3, 89, 6, 116, 84, 13, 0, 111, 110, 2, 111, 109, 3,
-			89, 7, 110, 50, 10, 0, 117, 112, 101, 114, 2, 17, 65, 3, 89, 7, 118, 48, 13, 34, 10, 0, 101, 119, 101, 1, 21, 2, 119, 105,
-			103, 3, 89, 10, 116, 84, 13, 0, 4, 105, 2, 108, 108, 97, 98, 17, 65, 3, 89, 13, 0, 105, 2, 108, 108, 97, 98, 17, 65, 0,
-			105, 2, 110, 97, 112, 25, 0, 105, 2, 112, 105, 101, 114, 0, 105, 2, 116, 114, 111, 101, 110, 0, 105, 2, 118, 105, 101, 108, 0, 105,
-			8, 2, 110, 111, 17, 67, 0, 105, 114, 101, 110, 101, 3, 89, 13, 34, 116, 50, 13, 0, 105, 116, 114, 111, 110, 101, 108, 108, 97, 3,
-			89, 13, 47, 34, 2, 40, 50, 112, 55, 2, 35, 0, 101, 112, 116, 101, 109, 98, 101, 114, 3, 89, 13, 48, 47, 108, 65, 71, 13, 34,
-			0, 4, 105, 110, 2, 106, 97, 3, 89, 13, 50, 0, 105, 110, 2, 116, 97, 107, 17, 67, 0, 105, 110, 8, 2, 100, 114, 111, 0, 105,
-			110, 116, 101, 116, 105, 101, 115, 3, 89, 13, 50, 47, 116, 47, 37, 89, 0, 105, 110, 105, 115, 116, 2, 17, 65, 114, 3, 89, 13, 50,
-			109, 89, 47, 0, 105, 108, 105, 107, 111, 111, 110, 3, 89, 13, 55, 2, 37, 49, 117, 50, 10, 0, 105, 108, 104, 111, 101, 2, 17, 65,
-			3, 89, 13, 55, 2, 40, 58, 0, 105, 108, 105, 2, 110, 100, 3, 89, 13, 55, 109, 0, 97, 108, 97, 114, 105, 115, 3, 89, 13, 55,
-			115, 34, 13, 89, 0, 4, 105, 109, 8, 2, 98, 17, 65, 3, 89, 13, 65, 0, 105, 109, 112, 2, 116, 111, 0, 105, 109, 109, 101, 2,
-			116, 114, 105, 101, 32, 24, 3, 89, 13, 65, 13, 0, 105, 109, 112, 111, 2, 115, 105, 17, 65, 3, 89, 13, 65, 48, 117, 0, 105, 109,
-			98, 105, 2, 111, 17, 67, 3, 89, 13, 65, 71, 2, 37, 0, 105, 109, 98, 111, 2, 108, 105, 101, 107, 3, 89, 13, 65, 71, 2, 40,
-			0, 105, 109, 109, 101, 2, 116, 114, 105, 101, 3, 89, 13, 65, 116, 0, 4, 101, 115, 1, 21, 2, 32, 3, 89, 13, 89, 0, 105, 115,
-			2, 116, 121, 110, 0, 105, 115, 116, 2, 101, 3, 89, 13, 89, 47, 0, 105, 115, 116, 101, 2, 109, 97, 116, 3, 89, 13, 89, 47, 13,
-			0, 105, 103, 2, 97, 21, 3, 89, 13, 136, 0, 105, 103, 97, 114, 101, 2, 116, 3, 89, 13, 136, 2, 35, 34, 108, 0, 97, 8, 2,
-			102, 102, 3, 89, 35, 7, 0, 97, 110, 100, 2, 97, 100, 100, 101, 114, 3, 89, 35, 50, 47, 10, 0, 97, 108, 118, 111, 2, 25, 3,
-			89, 35, 55, 84, 2, 40, 0, 97, 104, 97, 114, 97, 3, 89, 35, 107, 6, 115, 34, 35, 0, 105, 2, 107, 108, 105, 101, 3, 89, 37,
-			0, 105, 112, 97, 108, 101, 1, 21, 3, 89, 37, 48, 6, 115, 55, 13, 0, 105, 101, 107, 101, 8, 3, 89, 37, 49, 13, 0, 105, 107,
-			108, 117, 2, 115, 3, 89, 37, 49, 55, 111, 0, 111, 110, 97, 110, 116, 3, 89, 40, 50, 6, 35, 50, 47, 0, 112, 97, 2, 115, 105,
-			101, 101, 114, 3, 89, 48, 2, 35, 0, 112, 97, 114, 8, 2, 116, 97, 21, 3, 89, 48, 2, 35, 34, 0, 4, 112, 97, 110, 2, 100,
-			97, 98, 3, 89, 48, 2, 35, 50, 0, 112, 97, 110, 2, 106, 17, 65, 17, 65, 0, 112, 97, 110, 2, 115, 112, 101, 107, 0, 112, 97,
-			115, 2, 109, 111, 100, 3, 89, 48, 2, 35, 89, 0, 4, 112, 105, 2, 110, 97, 21, 3, 89, 48, 2, 37, 0, 112, 105, 8, 2, 114,
-			97, 0, 112, 105, 110, 101, 2, 116, 3, 89, 48, 2, 37, 50, 108, 0, 112, 101, 107, 2, 116, 97, 107, 101, 108, 3, 89, 48, 2, 108,
-			49, 0, 112, 101, 107, 117, 2, 108, 17, 65, 3, 89, 48, 2, 108, 49, 2, 118, 0, 112, 101, 115, 8, 2, 109, 97, 3, 89, 48, 2,
-			108, 89, 0, 112, 101, 115, 105, 2, 102, 3, 89, 48, 2, 108, 89, 2, 109, 0, 112, 101, 115, 105, 2, 97, 3, 89, 48, 2, 108, 91,
-			2, 37, 0, 112, 111, 110, 8, 2, 116, 97, 3, 89, 48, 2, 110, 50, 0, 112, 111, 114, 116, 8, 2, 21, 21, 21, 3, 89, 48, 7,
-			110, 34, 47, 10, 0, 112, 101, 114, 1, 21, 2, 97, 3, 89, 48, 13, 34, 6, 0, 112, 105, 116, 115, 2, 118, 111, 110, 3, 89, 48,
-			13, 47, 89, 0, 112, 101, 115, 101, 2, 114, 121, 3, 89, 48, 13, 89, 13, 0, 112, 114, 101, 101, 107, 119, 111, 111, 114, 100, 101, 108,
-			105, 3, 89, 48, 34, 2, 116, 49, 84, 117, 34, 72, 13, 55, 13, 0, 112, 114, 105, 110, 103, 98, 111, 2, 107, 3, 89, 48, 34, 7,
-			109, 68, 71, 110, 0, 112, 114, 111, 107, 101, 3, 89, 48, 34, 117, 49, 13, 0, 112, 97, 114, 116, 101, 108, 3, 89, 48, 35, 34, 47,
-			13, 55, 0, 112, 97, 116, 8, 2, 97, 3, 89, 48, 35, 47, 10, 0, 112, 111, 101, 100, 8, 2, 21, 3, 89, 48, 40, 47, 0, 112,
-			111, 101, 100, 2, 105, 103, 3, 89, 48, 40, 72, 0, 112, 101, 114, 1, 107, 101, 2, 105, 109, 3, 89, 48, 108, 34, 0, 112, 101, 115,
-			105, 97, 108, 105, 115, 3, 89, 48, 108, 91, 35, 55, 6, 109, 89, 0, 112, 101, 115, 105, 97, 108, 105, 115, 2, 101, 101, 110, 3, 89,
-			48, 108, 91, 35, 55, 6, 109, 89, 10, 0, 112, 101, 115, 105, 97, 108, 105, 115, 2, 17, 65, 3, 89, 48, 108, 91, 37, 35, 55, 37,
-			89, 0, 4, 112, 101, 108, 1, 17, 65, 17, 65, 2, 100, 3, 89, 48, 112, 55, 0, 112, 101, 108, 1, 17, 67, 2, 32, 0, 112, 101,
-			108, 1, 101, 2, 32, 0, 112, 101, 108, 8, 17, 65, 110, 2, 32, 0, 112, 101, 108, 97, 103, 116, 105, 103, 3, 89, 48, 112, 55, 6,
-			35, 136, 47, 13, 136, 0, 112, 101, 110, 101, 2, 32, 3, 89, 48, 116, 50, 13, 0, 112, 101, 108, 101, 1, 10, 2, 32, 3, 89, 48,
-			116, 55, 13, 0, 107, 97, 2, 118, 111, 116, 3, 89, 49, 2, 35, 0, 107, 97, 114, 8, 2, 17, 67, 3, 89, 49, 2, 35, 34, 0,
-			107, 97, 107, 101, 114, 2, 105, 110, 103, 3, 89, 49, 2, 35, 49, 116, 34, 0, 107, 97, 110, 2, 100, 97, 3, 89, 49, 2, 35, 50,
-			0, 107, 97, 110, 100, 101, 2, 114, 105, 110, 103, 3, 89, 49, 2, 35, 50, 72, 116, 0, 107, 105, 115, 111, 102, 114, 2, 101, 3, 89,
-			49, 2, 37, 89, 2, 40, 83, 34, 0, 107, 101, 2, 100, 117, 108, 101, 3, 89, 49, 2, 108, 0, 107, 111, 112, 112, 101, 108, 2, 109,
-			97, 97, 3, 89, 49, 2, 110, 48, 13, 55, 0, 107, 101, 114, 2, 109, 117, 116, 115, 3, 89, 49, 2, 112, 34, 0, 107, 101, 114, 112,
-			105, 2, 111, 101, 110, 3, 89, 49, 2, 112, 34, 48, 2, 37, 0, 107, 111, 2, 108, 105, 101, 114, 3, 89, 49, 2, 117, 0, 107, 121,
-			110, 2, 104, 101, 105, 3, 89, 49, 2, 123, 50, 0, 107, 97, 112, 108, 105, 107, 1, 21, 3, 89, 49, 6, 35, 48, 55, 13, 49, 0,
-			107, 121, 110, 108, 105, 107, 1, 21, 3, 89, 49, 6, 123, 50, 55, 13, 49, 0, 107, 111, 107, 8, 2, 17, 65, 14, 128, 132, 132, 3,
-			89, 49, 7, 110, 49, 10, 0, 107, 101, 2, 100, 111, 110, 107, 3, 89, 49, 13, 0, 107, 105, 108, 100, 101, 114, 2, 121, 3, 89, 49,
-			13, 55, 72, 13, 34, 0, 107, 101, 108, 101, 8, 2, 116, 3, 89, 49, 13, 55, 108, 0, 107, 114, 97, 112, 110, 101, 2, 108, 3, 89,
-			49, 34, 2, 35, 48, 50, 112, 0, 107, 114, 105, 102, 2, 17, 65, 3, 89, 49, 34, 109, 83, 10, 0, 107, 97, 114, 114, 101, 108, 3,
-			89, 49, 35, 34, 13, 55, 0, 107, 97, 112, 112, 121, 8, 17, 67, 17, 65, 17, 65, 17, 67, 3, 89, 49, 35, 48, 6, 123, 0, 4,
-			107, 97, 112, 1, 21, 2, 105, 110, 21, 3, 89, 49, 35, 48, 10, 0, 107, 97, 112, 1, 21, 2, 111, 0, 107, 108, 101, 2, 114, 111,
-			115, 101, 3, 89, 49, 55, 13, 0, 107, 117, 108, 100, 2, 101, 114, 107, 101, 110, 3, 89, 49, 111, 55, 47, 10, 0, 107, 101, 114, 112,
-			3, 89, 49, 112, 34, 48, 0, 107, 97, 100, 101, 3, 89, 49, 115, 72, 13, 0, 107, 97, 100, 117, 3, 89, 49, 115, 72, 118, 0, 107,
-			101, 109, 101, 114, 3, 89, 49, 116, 65, 13, 34, 0, 107, 111, 111, 110, 103, 101, 2, 17, 67, 3, 89, 49, 117, 50, 136, 13, 0, 107,
-			111, 108, 101, 3, 89, 49, 117, 55, 13, 0, 110, 101, 108, 8, 2, 17, 65, 3, 89, 50, 7, 112, 55, 10, 0, 110, 101, 108, 2, 32,
-			3, 89, 50, 112, 55, 0, 110, 97, 112, 101, 114, 2, 105, 110, 103, 3, 89, 50, 115, 48, 13, 34, 0, 108, 97, 2, 118, 105, 110, 3,
-			89, 55, 2, 35, 0, 108, 97, 103, 8, 3, 89, 55, 7, 35, 136, 10, 0, 108, 97, 103, 2, 111, 102, 102, 3, 89, 55, 35, 136, 10,
-			0, 108, 111, 112, 2, 101, 109, 109, 101, 114, 3, 89, 55, 110, 48, 10, 0, 108, 97, 2, 119, 101, 3, 89, 55, 115, 0, 108, 97, 119,
-			101, 2, 107, 3, 89, 55, 115, 84, 13, 0, 4, 106, 1, 21, 2, 97, 17, 67, 17, 65, 3, 89, 57, 0, 106, 1, 21, 2, 97, 97,
-			114, 0, 4, 119, 2, 101, 114, 109, 3, 89, 58, 0, 119, 8, 0, 119, 97, 2, 104, 105, 108, 105, 3, 89, 58, 2, 35, 0, 119, 97,
-			114, 116, 2, 103, 97, 108, 3, 89, 58, 2, 35, 34, 47, 0, 4, 119, 97, 97, 114, 2, 108, 121, 119, 3, 89, 58, 2, 115, 34, 0,
-			119, 97, 97, 114, 2, 109, 111, 101, 100, 0, 119, 97, 109, 8, 2, 17, 65, 21, 3, 89, 58, 35, 65, 10, 0, 117, 105, 116, 101, 3,
-			89, 58, 37, 47, 13, 0, 119, 101, 110, 100, 101, 108, 3, 89, 58, 108, 50, 72, 13, 55, 0, 119, 101, 109, 1, 21, 2, 32, 3, 89,
-			58, 108, 65, 0, 119, 101, 109, 8, 2, 17, 65, 3, 89, 58, 108, 65, 10, 0, 119, 105, 116, 115, 101, 114, 3, 89, 58, 109, 47, 89,
-			13, 34, 0, 119, 101, 101, 112, 3, 89, 58, 116, 48, 0, 119, 101, 112, 101, 3, 89, 58, 116, 48, 13, 0, 109, 97, 2, 114, 97, 103,
-			3, 89, 65, 2, 35, 0, 109, 101, 108, 116, 3, 89, 65, 112, 55, 47, 0, 119, 97, 103, 2, 25, 3, 89, 84, 35, 136, 0, 119, 101,
-			114, 107, 1, 21, 3, 89, 84, 112, 34, 49, 0, 119, 101, 101, 1, 21, 2, 32, 3, 89, 84, 116, 0, 105, 108, 105, 107, 111, 2, 110,
-			3, 89, 109, 55, 2, 37, 49, 2, 110, 0, 105, 108, 119, 101, 114, 3, 89, 109, 55, 84, 13, 34, 0, 105, 116, 117, 97, 115, 105, 101,
-			3, 89, 109, 76, 40, 6, 115, 89, 37, 0, 111, 2, 110, 110, 101, 116, 106, 105, 101, 12, 12, 3, 89, 110, 0, 111, 110, 2, 103, 21,
-			3, 89, 110, 50, 0, 117, 98, 8, 2, 97, 3, 89, 111, 71, 10, 0, 97, 107, 101, 3, 89, 115, 49, 13, 0, 97, 109, 101, 110, 2,
-			12, 3, 89, 115, 65, 13, 50, 0, 97, 109, 101, 108, 2, 17, 67, 3, 89, 115, 65, 13, 55, 0, 97, 97, 109, 103, 101, 101, 3, 89,
-			115, 65, 136, 116, 0, 101, 119, 101, 2, 116, 106, 105, 101, 3, 89, 116, 84, 37, 0, 111, 2, 118, 3, 89, 117, 0, 111, 105, 101, 8,
-			3, 89, 117, 19, 37, 0, 111, 118, 101, 114, 114, 101, 3, 89, 117, 83, 6, 112, 34, 13, 0, 111, 115, 105, 97, 108, 2, 105, 3, 89,
-			117, 91, 37, 35, 55, 6, 0, 111, 115, 105, 111, 2, 45, 3, 89, 117, 91, 119, 12, 0, 97, 117, 110, 97, 3, 89, 131, 50, 35, 0,
-			4, 1, 17, 67, 2, 105, 101, 101, 17, 67, 3, 91, 0, 1, 17, 67, 2, 105, 195, 171, 108, 101, 0, 2, 105, 195, 171, 110, 0, 99,
-			104, 0, 104, 8, 0, 106, 0, 106, 97, 2, 109, 97, 3, 91, 2, 35, 0, 106, 97, 114, 2, 109, 97, 110, 116, 3, 91, 2, 35, 34,
-			0, 106, 97, 109, 112, 97, 110, 106, 101, 3, 91, 2, 35, 65, 48, 35, 50, 57, 13, 0, 106, 97, 109, 112, 111, 101, 3, 91, 2, 35,
-			65, 48, 40, 12, 0, 106, 111, 107, 111, 108, 97, 100, 101, 3, 91, 2, 110, 49, 13, 55, 115, 72, 13, 0, 106, 105, 109, 112, 97, 110,
-			2, 115, 101, 101, 3, 91, 13, 65, 48, 2, 35, 50, 0, 105, 1, 21, 2, 111, 3, 91, 37, 0, 105, 97, 97, 108, 3, 91, 37, 6,
-			115, 55, 0, 105, 97, 108, 101, 3, 91, 37, 6, 115, 55, 13, 0, 99, 104, 117, 8, 2, 17, 67, 3, 91, 40, 0, 106, 101, 114, 114,
-			105, 101, 3, 91, 108, 34, 37, 0, 105, 111, 1, 21, 2, 110, 101, 3, 91, 119, 6, 0, 7, 6, 116, 0, 4, 2, 32, 100, 24, 3,
-			0, 2, 116, 3, 0, 4, 99, 104, 1, 17, 65, 3, 21, 0, 104, 1, 21, 2, 32, 24, 0, 104, 8, 0, 104, 121, 1, 21, 2, 32,
-			0, 105, 111, 110, 1, 21, 2, 32, 0, 105, 111, 110, 115, 1, 21, 2, 32, 0, 108, 101, 1, 21, 2, 32, 0, 106, 105, 101, 1, 101,
-			114, 3, 37, 80, 37, 0, 4, 3, 47, 0, 1, 17, 67, 21, 2, 101, 110, 121, 0, 1, 21, 2, 101, 109, 97, 25, 12, 12, 0, 1,
-			97, 97, 114, 116, 115, 2, 106, 0, 104, 1, 21, 2, 17, 67, 0, 104, 8, 2, 21, 21, 0, 4, 97, 1, 21, 2, 108, 105, 115, 3,
-			47, 2, 35, 0, 97, 2, 98, 108, 101, 116, 0, 97, 2, 114, 105, 101, 102, 0, 97, 2, 114, 105, 101, 119, 101, 0, 97, 8, 2, 109,
-			98, 0, 97, 114, 8, 2, 116, 97, 21, 3, 47, 2, 35, 34, 0, 97, 114, 101, 110, 2, 116, 97, 3, 47, 2, 35, 34, 13, 50, 0,
-			97, 116, 111, 101, 2, 195, 171, 3, 47, 2, 35, 47, 2, 40, 0, 97, 112, 105, 115, 115, 101, 2, 114, 105, 3, 47, 2, 35, 48, 13,
-			89, 13, 0, 97, 107, 115, 105, 100, 101, 114, 2, 109, 3, 47, 2, 35, 49, 89, 2, 37, 72, 2, 112, 34, 0, 97, 110, 122, 97, 2,
-			110, 105, 3, 47, 2, 35, 50, 88, 115, 0, 97, 108, 101, 110, 2, 116, 106, 105, 101, 3, 47, 2, 35, 55, 108, 37, 68, 0, 97, 108,
-			101, 110, 116, 3, 47, 2, 35, 55, 108, 50, 47, 0, 97, 109, 97, 114, 105, 115, 107, 3, 47, 2, 35, 65, 2, 35, 34, 109, 89, 49,
-			0, 97, 109, 101, 108, 101, 2, 116, 106, 3, 47, 2, 35, 65, 13, 55, 108, 37, 0, 97, 109, 98, 111, 101, 2, 114, 121, 110, 3, 47,
-			2, 35, 65, 71, 2, 40, 0, 97, 109, 97, 2, 116, 105, 101, 3, 47, 2, 35, 65, 115, 0, 97, 98, 101, 114, 2, 110, 97, 107, 101,
-			108, 3, 47, 2, 35, 71, 13, 34, 0, 97, 98, 97, 107, 3, 47, 2, 35, 71, 35, 49, 0, 97, 98, 108, 111, 2, 16, 3, 47, 2,
-			35, 71, 55, 117, 0, 97, 102, 101, 2, 114, 101, 3, 47, 2, 35, 83, 13, 0, 97, 118, 101, 114, 2, 110, 105, 101, 114, 3, 47, 2,
-			35, 83, 13, 34, 0, 97, 118, 101, 114, 110, 101, 3, 47, 2, 35, 83, 112, 34, 50, 13, 0, 4, 105, 2, 112, 101, 114, 17, 65, 3,
-			47, 2, 37, 0, 105, 2, 114, 97, 0, 105, 101, 114, 108, 97, 110, 2, 116, 121, 3, 47, 2, 37, 12, 34, 55, 2, 35, 50, 0, 105,
-			114, 97, 2, 110, 110, 105, 101, 3, 47, 2, 37, 34, 2, 35, 0, 105, 110, 101, 110, 8, 2, 116, 97, 21, 3, 47, 2, 37, 50, 2,
-			108, 50, 0, 105, 98, 101, 116, 8, 3, 47, 2, 37, 71, 108, 47, 0, 105, 97, 114, 97, 3, 47, 2, 37, 115, 34, 35, 0, 4, 111,
-			101, 2, 107, 111, 109, 101, 3, 47, 2, 40, 0, 111, 101, 2, 107, 111, 109, 115, 116, 105, 0, 111, 101, 2, 108, 97, 97, 116, 98, 97,
-			0, 111, 101, 2, 114, 105, 115, 116, 101, 21, 0, 111, 101, 114, 2, 110, 3, 47, 2, 40, 34, 0, 111, 101, 114, 101, 107, 101, 110, 2,
-			98, 3, 47, 2, 40, 34, 6, 116, 49, 13, 50, 0, 111, 101, 114, 101, 105, 107, 101, 3, 47, 2, 40, 34, 123, 49, 13, 0, 4, 111,
-			112, 8, 2, 97, 97, 115, 3, 47, 2, 40, 48, 0, 111, 112, 8, 2, 97, 115, 101, 0, 111, 101, 112, 97, 115, 108, 105, 107, 3, 47,
-			2, 40, 48, 35, 89, 55, 13, 49, 0, 111, 110, 101, 101, 108, 3, 47, 2, 40, 50, 116, 55, 0, 111, 110, 101, 108, 101, 3, 47, 2,
-			40, 50, 116, 55, 13, 0, 111, 101, 103, 97, 110, 107, 3, 47, 2, 40, 136, 6, 35, 68, 49, 0, 111, 101, 103, 101, 101, 102, 3, 47,
-			2, 40, 136, 116, 83, 0, 111, 101, 103, 101, 119, 101, 110, 2, 100, 3, 47, 2, 40, 136, 116, 84, 13, 50, 0, 111, 114, 8, 2, 110,
-			121, 110, 3, 47, 2, 110, 34, 0, 111, 107, 2, 116, 111, 107, 107, 3, 47, 2, 110, 49, 0, 111, 107, 107, 101, 2, 108, 111, 3, 47,
-			2, 110, 49, 13, 0, 111, 109, 98, 111, 108, 97, 3, 47, 2, 110, 65, 71, 117, 55, 2, 35, 0, 111, 115, 8, 2, 107, 97, 3, 47,
-			2, 110, 89, 0, 111, 8, 2, 110, 97, 3, 47, 2, 117, 0, 4, 111, 112, 8, 2, 111, 103, 114, 97, 3, 47, 2, 117, 48, 0, 111,
-			112, 8, 2, 111, 108, 111, 0, 117, 98, 101, 114, 107, 117, 108, 111, 115, 101, 3, 47, 2, 118, 71, 13, 34, 49, 2, 118, 55, 117, 89,
-			13, 0, 97, 105, 119, 97, 2, 110, 3, 47, 2, 121, 58, 35, 0, 121, 100, 2, 114, 111, 119, 3, 47, 2, 123, 47, 0, 111, 105, 2,
-			108, 101, 116, 3, 47, 2, 124, 0, 117, 105, 110, 2, 105, 101, 114, 3, 47, 2, 127, 50, 0, 1, 114, 101, 118, 100, 97, 2, 101, 3,
-			47, 6, 0, 105, 101, 102, 1, 21, 2, 32, 3, 47, 6, 37, 83, 0, 4, 105, 101, 119, 101, 1, 21, 2, 32, 3, 47, 6, 37, 84,
-			13, 0, 105, 101, 119, 101, 1, 21, 2, 114, 32, 0, 111, 101, 8, 2, 119, 101, 110, 25, 14, 128, 132, 131, 3, 47, 6, 40, 0, 111,
-			101, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 47, 6, 40, 136, 13, 0, 111, 101, 103, 101, 2, 119, 105, 110, 103, 3, 47, 6, 40,
-			136, 116, 0, 97, 108, 105, 103, 1, 21, 3, 47, 6, 115, 55, 13, 136, 0, 111, 114, 105, 115, 1, 21, 2, 32, 3, 47, 6, 117, 34,
-			13, 89, 0, 117, 117, 114, 3, 47, 6, 118, 34, 0, 121, 1, 21, 2, 100, 105, 103, 3, 47, 6, 123, 0, 117, 105, 103, 108, 105, 107,
-			3, 47, 6, 127, 136, 55, 13, 49, 0, 97, 110, 100, 101, 8, 2, 17, 67, 21, 3, 47, 7, 35, 50, 72, 13, 0, 111, 112, 8, 2,
-			17, 65, 3, 47, 7, 110, 48, 10, 0, 117, 114, 98, 111, 8, 2, 25, 3, 47, 7, 111, 34, 71, 117, 10, 0, 104, 101, 117, 8, 3,
-			47, 7, 128, 0, 116, 101, 108, 3, 47, 13, 55, 0, 105, 110, 107, 2, 116, 105, 110, 107, 3, 47, 13, 68, 49, 0, 4, 97, 110, 100,
-			2, 111, 3, 47, 35, 50, 47, 10, 0, 97, 110, 100, 8, 2, 97, 0, 105, 116, 101, 108, 3, 47, 37, 47, 13, 55, 0, 105, 115, 115,
-			117, 101, 3, 47, 37, 91, 2, 40, 0, 111, 101, 114, 101, 2, 32, 3, 47, 40, 12, 34, 13, 0, 111, 101, 110, 101, 109, 101, 110, 3,
-			47, 40, 50, 6, 116, 65, 13, 50, 0, 4, 106, 1, 21, 2, 97, 3, 47, 57, 0, 106, 1, 105, 117, 0, 106, 111, 101, 114, 110, 97,
-			108, 105, 1, 21, 3, 47, 57, 2, 40, 34, 50, 2, 35, 55, 13, 0, 119, 101, 101, 100, 2, 25, 3, 47, 58, 37, 12, 72, 0, 119,
-			105, 115, 2, 17, 65, 3, 47, 58, 109, 89, 10, 0, 119, 101, 101, 100, 2, 114, 97, 3, 47, 58, 116, 72, 0, 119, 121, 102, 101, 2,
-			108, 3, 47, 58, 123, 83, 13, 0, 111, 103, 1, 103, 114, 111, 98, 3, 47, 110, 136, 10, 0, 117, 114, 108, 105, 110, 103, 116, 111, 110,
-			3, 47, 111, 12, 55, 2, 37, 68, 47, 13, 50, 0, 117, 115, 115, 101, 110, 3, 47, 111, 89, 13, 50, 0, 117, 103, 2, 17, 65, 3,
-			47, 111, 136, 10, 0, 4, 117, 117, 114, 1, 105, 116, 114, 97, 112, 3, 47, 118, 12, 34, 0, 117, 117, 114, 1, 115, 0, 121, 100, 2,
-			114, 3, 47, 123, 47, 0, 97, 110, 116, 8, 2, 101, 3, 47, 133, 50, 47, 0, 97, 110, 116, 101, 115, 3, 47, 133, 50, 47, 13, 89,
-			0, 4, 106, 3, 76, 0, 106, 8, 2, 105, 101, 0, 106, 101, 2, 108, 108, 105, 115, 3, 76, 2, 108, 0, 106, 97, 110, 107, 1, 21,
-			3, 76, 35, 68, 49, 0, 106, 101, 108, 108, 111, 3, 76, 108, 55, 40, 0, 106, 2, 105, 101, 3, 80, 0, 106, 105, 101, 1, 105, 117,
-			3, 80, 37, 0, 105, 97, 2, 32, 3, 91, 57, 35, 0, 7, 6, 117, 0, 103, 97, 110, 2, 100, 101, 3, 2, 40, 81, 2, 35, 50,
-			0, 1, 109, 2, 115, 107, 105, 101, 116, 3, 2, 111, 0, 108, 116, 105, 2, 109, 97, 3, 2, 111, 55, 47, 2, 37, 0, 8, 2, 114,
-			97, 3, 2, 118, 0, 114, 105, 110, 101, 3, 2, 118, 34, 37, 50, 13, 0, 114, 105, 101, 110, 119, 101, 103, 3, 2, 118, 34, 37, 50,
-			84, 112, 136, 10, 0, 114, 101, 8, 2, 116, 3, 2, 118, 34, 116, 0, 116, 111, 2, 112, 105, 17, 65, 3, 2, 118, 47, 117, 0, 110,
-			105, 118, 101, 114, 115, 2, 17, 65, 21, 3, 2, 118, 50, 2, 37, 84, 2, 112, 34, 89, 0, 115, 8, 98, 2, 17, 65, 3, 7, 111,
-			89, 10, 0, 2, 104, 108, 101, 32, 3, 40, 12, 0, 2, 17, 67, 3, 111, 0, 4, 3, 118, 0, 2, 17, 67, 17, 65, 0, 117, 0,
-			114, 101, 8, 2, 17, 67, 3, 118, 12, 34, 13, 0, 114, 105, 110, 101, 101, 114, 3, 118, 34, 37, 50, 6, 116, 34, 0, 119, 1, 110,
-			3, 118, 84, 0, 4, 119, 101, 1, 110, 2, 17, 67, 3, 118, 84, 13, 0, 119, 101, 1, 114, 17, 67, 2, 17, 67, 0, 119, 101, 108,
-			105, 107, 1, 17, 67, 3, 118, 84, 13, 55, 13, 49, 0, 121, 3, 127, 0, 110, 116, 106, 105, 101, 1, 17, 67, 3, 127, 68, 80, 37,
-			0, 116, 106, 105, 101, 3, 127, 80, 37, 0, 7, 6, 118, 0, 2, 118, 3, 0, 105, 108, 108, 101, 3, 21, 0, 3, 83, 0, 97, 2,
-			108, 108, 101, 105, 3, 83, 2, 35, 0, 97, 116, 105, 2, 107, 97, 97, 110, 3, 83, 2, 35, 47, 2, 37, 0, 97, 107, 97, 2, 116,
-			117, 114, 101, 3, 83, 2, 35, 49, 13, 0, 97, 110, 8, 2, 21, 3, 83, 2, 35, 50, 0, 97, 110, 115, 101, 108, 102, 2, 115, 112,
-			114, 3, 83, 2, 35, 50, 89, 2, 112, 55, 83, 0, 105, 2, 111, 3, 83, 2, 37, 0, 105, 111, 2, 108, 101, 116, 25, 3, 83, 2,
-			37, 2, 40, 0, 105, 101, 114, 2, 107, 97, 110, 116, 105, 103, 3, 83, 2, 37, 12, 34, 0, 105, 116, 114, 105, 2, 111, 101, 108, 3,
-			83, 2, 37, 47, 34, 2, 37, 0, 4, 117, 108, 2, 107, 97, 3, 83, 2, 111, 55, 0, 117, 108, 8, 2, 103, 97, 97, 116, 0, 121,
-			2, 97, 110, 100, 105, 103, 3, 83, 2, 123, 0, 97, 108, 108, 105, 103, 3, 83, 6, 35, 55, 13, 136, 0, 97, 115, 103, 101, 8, 2,
-			21, 14, 128, 132, 133, 3, 83, 6, 35, 89, 136, 13, 0, 105, 115, 101, 2, 25, 3, 83, 6, 37, 89, 37, 0, 117, 108, 100, 105, 103,
-			3, 83, 6, 111, 55, 72, 13, 136, 0, 97, 97, 114, 100, 105, 103, 1, 21, 3, 83, 6, 115, 34, 72, 13, 136, 0, 97, 107, 97, 110,
-			115, 105, 101, 3, 83, 13, 49, 35, 50, 89, 37, 0, 4, 105, 115, 1, 25, 2, 105, 101, 114, 3, 83, 13, 89, 0, 105, 115, 1, 101,
-			105, 21, 2, 32, 0, 105, 115, 101, 110, 2, 116, 101, 3, 83, 13, 89, 13, 50, 0, 105, 115, 105, 116, 101, 3, 83, 13, 89, 37, 47,
-			13, 0, 114, 101, 100, 101, 2, 108, 105, 101, 119, 3, 83, 34, 2, 116, 72, 13, 0, 114, 101, 101, 115, 97, 97, 110, 2, 106, 97, 3,
-			83, 34, 2, 116, 89, 19, 2, 115, 50, 0, 4, 114, 121, 2, 109, 101, 115, 115, 101, 108, 3, 83, 34, 2, 123, 0, 114, 121, 2, 109,
-			111, 101, 100, 0, 114, 121, 2, 112, 111, 115, 116, 105, 0, 114, 121, 2, 119, 105, 108, 0, 114, 105, 101, 110, 100, 105, 2, 110, 3, 83,
-			34, 37, 50, 72, 6, 109, 0, 114, 111, 116, 2, 101, 105, 101, 114, 3, 83, 34, 110, 47, 10, 0, 114, 101, 101, 109, 100, 101, 3, 83,
-			34, 116, 65, 72, 13, 0, 114, 101, 100, 101, 3, 83, 34, 116, 72, 13, 0, 114, 121, 103, 101, 119, 105, 103, 3, 83, 34, 123, 136, 6,
-			116, 84, 13, 136, 0, 97, 2, 100, 111, 101, 107, 3, 83, 35, 0, 97, 116, 8, 2, 17, 65, 21, 3, 83, 35, 47, 10, 0, 97, 107,
-			2, 117, 110, 105, 101, 3, 83, 35, 49, 10, 0, 97, 110, 103, 8, 2, 21, 3, 83, 35, 68, 0, 97, 110, 103, 101, 110, 3, 83, 35,
-			68, 13, 50, 0, 97, 110, 107, 108, 105, 107, 8, 3, 83, 35, 68, 49, 55, 13, 49, 0, 97, 115, 115, 116, 101, 2, 108, 3, 83, 35,
-			89, 47, 112, 0, 105, 115, 1, 100, 97, 2, 101, 21, 3, 83, 37, 89, 6, 0, 108, 105, 101, 195, 171, 2, 110, 105, 101, 114, 3, 83,
-			55, 2, 37, 13, 0, 108, 97, 109, 2, 111, 111, 3, 83, 55, 35, 65, 10, 0, 108, 97, 2, 17, 67, 17, 65, 17, 65, 3, 83, 55,
-			115, 0, 105, 115, 2, 17, 65, 3, 83, 109, 89, 0, 195, 169, 114, 3, 83, 113, 34, 0, 4, 97, 97, 114, 100, 105, 103, 1, 114, 101,
-			118, 3, 83, 115, 34, 72, 13, 136, 0, 97, 97, 114, 100, 105, 103, 1, 116, 105, 117, 0, 97, 116, 101, 2, 17, 67, 3, 83, 115, 47,
-			13, 0, 1, 21, 2, 97, 108, 101, 110, 116, 3, 84, 0, 97, 2, 107, 117, 3, 84, 2, 35, 0, 97, 114, 105, 2, 17, 65, 3, 84,
-			2, 35, 34, 2, 37, 0, 97, 108, 117, 116, 97, 3, 84, 2, 35, 55, 118, 47, 2, 35, 0, 97, 115, 101, 108, 105, 110, 101, 3, 84,
-			2, 35, 89, 13, 55, 37, 50, 0, 97, 103, 105, 110, 2, 17, 65, 21, 3, 84, 2, 35, 136, 2, 37, 50, 0, 4, 105, 2, 98, 114,
-			17, 65, 3, 84, 2, 37, 0, 105, 2, 99, 116, 111, 21, 0, 105, 8, 2, 114, 97, 0, 105, 116, 97, 2, 109, 105, 3, 84, 2, 37,
-			47, 2, 35, 0, 105, 115, 105, 2, 111, 101, 110, 3, 84, 2, 37, 89, 2, 37, 0, 105, 115, 2, 117, 17, 65, 3, 84, 2, 37, 90,
-			0, 105, 8, 2, 114, 105, 3, 84, 13, 0, 105, 114, 116, 117, 3, 84, 13, 34, 76, 2, 118, 0, 97, 103, 105, 110, 97, 3, 84, 35,
-			136, 37, 50, 35, 0, 105, 114, 117, 2, 25, 3, 84, 37, 34, 111, 0, 105, 116, 114, 111, 8, 2, 32, 3, 84, 37, 47, 34, 2, 40,
-			0, 105, 107, 105, 110, 103, 3, 84, 37, 49, 37, 68, 0, 105, 100, 101, 111, 3, 84, 37, 72, 119, 0, 4, 105, 115, 1, 17, 65, 2,
-			97, 115, 105, 101, 3, 84, 37, 89, 0, 105, 115, 2, 105, 101, 0, 105, 115, 2, 117, 109, 0, 105, 115, 1, 17, 65, 2, 101, 21, 3,
-			84, 37, 89, 6, 0, 105, 195, 171, 116, 110, 97, 2, 109, 101, 3, 84, 57, 2, 108, 47, 50, 2, 35, 0, 105, 108, 108, 97, 3, 84,
-			109, 55, 35, 0, 7, 6, 119, 0, 2, 119, 3, 0, 4, 1, 21, 2, 17, 67, 32, 3, 21, 0, 1, 21, 2, 32, 24, 0, 104, 0,
-			110, 0, 111, 111, 100, 2, 12, 0, 111, 114, 116, 104, 0, 115, 1, 21, 2, 32, 24, 0, 4, 1, 100, 3, 58, 0, 1, 104, 103, 0,
-			1, 107, 0, 1, 115, 0, 1, 115, 2, 97, 114, 116, 0, 1, 115, 2, 101, 101, 114, 100, 101, 114, 0, 1, 115, 21, 2, 97, 108, 107,
-			32, 0, 1, 115, 101, 98, 2, 97, 97, 114, 100, 101, 0, 1, 115, 101, 105, 2, 97, 97, 110, 0, 1, 115, 114, 101, 2, 101, 101, 114,
-			32, 0, 1, 116, 0, 97, 103, 103, 97, 1, 107, 3, 58, 35, 136, 35, 0, 97, 114, 101, 1, 115, 101, 98, 3, 58, 115, 34, 13, 0,
-			121, 102, 101, 108, 1, 116, 21, 3, 58, 123, 83, 13, 55, 0, 4, 3, 84, 0, 1, 17, 67, 2, 101, 101, 114, 100, 101, 114, 0, 1,
-			17, 67, 2, 105, 116, 32, 0, 1, 17, 67, 2, 195, 170, 114, 101, 108, 100, 0, 1, 17, 67, 17, 65, 2, 97, 97, 105, 101, 114, 0,
-			1, 17, 67, 21, 2, 97, 97, 114, 100, 101, 32, 0, 1, 17, 67, 21, 2, 97, 114, 109, 0, 1, 17, 67, 21, 2, 101, 114, 107, 0,
-			1, 17, 67, 21, 2, 101, 195, 171, 0, 1, 17, 67, 21, 2, 105, 101, 108, 0, 1, 17, 67, 21, 2, 111, 17, 67, 25, 0, 1, 17,
-			67, 21, 2, 111, 111, 17, 67, 0, 1, 17, 67, 21, 2, 117, 114, 109, 0, 1, 17, 67, 21, 2, 121, 100, 0, 1, 17, 67, 111, 111,
-			0, 1, 21, 2, 97, 101, 110, 0, 1, 100, 17, 65, 17, 65, 0, 1, 100, 21, 2, 97, 97, 114, 0, 1, 100, 97, 0, 1, 100, 110,
-			0, 1, 100, 111, 17, 67, 0, 1, 100, 121, 0, 1, 107, 2, 17, 65, 110, 100, 0, 1, 107, 2, 101, 114, 17, 67, 0, 1, 107, 2,
-			111, 17, 65, 0, 1, 107, 21, 2, 97, 108, 109, 0, 1, 115, 2, 97, 116, 101, 114, 0, 1, 115, 2, 101, 101, 107, 0, 1, 115, 2,
-			105, 108, 0, 1, 115, 2, 111, 101, 100, 101, 0, 1, 115, 2, 111, 101, 108, 105, 110, 103, 0, 1, 115, 2, 111, 117, 0, 1, 115, 2,
-			114, 0, 1, 115, 2, 121, 102, 0, 1, 115, 10, 2, 101, 101, 102, 115, 0, 1, 115, 17, 65, 17, 65, 2, 101, 110, 107, 0, 1, 115,
-			21, 2, 17, 65, 110, 32, 0, 1, 115, 21, 2, 17, 65, 110, 100, 0, 1, 115, 21, 2, 97, 97, 110, 0, 1, 115, 21, 2, 97, 108,
-			0, 1, 115, 21, 2, 97, 110, 103, 32, 0, 1, 115, 21, 2, 97, 110, 103, 101, 32, 0, 1, 115, 21, 2, 101, 110, 110, 0, 1, 115,
-			97, 97, 108, 112, 2, 101, 114, 17, 67, 0, 1, 115, 97, 118, 0, 1, 115, 105, 101, 108, 118, 0, 1, 115, 105, 109, 0, 1, 115, 107,
-			108, 111, 118, 0, 1, 115, 107, 121, 108, 2, 97, 97, 17, 67, 0, 1, 115, 110, 101, 0, 1, 115, 111, 108, 0, 1, 115, 114, 101, 0,
-			1, 116, 2, 97, 97, 114, 0, 1, 116, 2, 97, 116, 0, 1, 116, 17, 65, 11, 0, 1, 116, 21, 2, 97, 110, 100, 0, 1, 116, 21,
-			2, 105, 101, 0, 1, 116, 21, 2, 121, 0, 1, 116, 101, 111, 0, 1, 116, 105, 0, 1, 116, 110, 2, 17, 65, 0, 1, 116, 114, 97,
-			119, 115, 0, 1, 116, 117, 17, 67, 0, 1, 116, 117, 111, 0, 2, 101, 115, 101, 32, 0, 2, 121, 115, 0, 97, 116, 2, 119, 111, 110,
-			100, 3, 84, 2, 35, 47, 0, 4, 97, 110, 2, 115, 116, 97, 108, 116, 3, 84, 2, 35, 50, 0, 97, 110, 2, 116, 114, 111, 117, 105,
-			103, 0, 97, 110, 111, 114, 100, 101, 108, 105, 2, 107, 3, 84, 2, 35, 50, 10, 110, 34, 72, 13, 55, 13, 0, 97, 108, 2, 107, 117,
-			114, 101, 3, 84, 2, 35, 55, 0, 97, 110, 107, 101, 108, 2, 109, 111, 101, 100, 3, 84, 2, 35, 68, 49, 13, 55, 0, 111, 101, 2,
-			115, 116, 121, 110, 3, 84, 2, 40, 0, 111, 108, 2, 118, 105, 110, 3, 84, 2, 110, 55, 0, 97, 97, 114, 2, 110, 101, 101, 109, 98,
-			97, 3, 84, 2, 115, 34, 0, 121, 115, 103, 101, 2, 114, 105, 103, 3, 84, 2, 123, 89, 136, 116, 0, 195, 170, 114, 101, 108, 100, 8,
-			2, 21, 14, 128, 132, 134, 3, 84, 6, 113, 34, 13, 55, 47, 10, 0, 97, 97, 114, 100, 105, 103, 1, 10, 3, 84, 6, 115, 34, 72,
-			13, 136, 0, 97, 110, 8, 2, 17, 65, 14, 128, 132, 131, 3, 84, 7, 35, 50, 10, 0, 105, 108, 108, 101, 2, 109, 105, 3, 84, 13,
-			55, 13, 0, 105, 108, 104, 101, 108, 2, 109, 105, 3, 84, 13, 55, 107, 2, 112, 55, 0, 105, 110, 107, 101, 2, 108, 105, 101, 114, 3,
-			84, 13, 68, 49, 13, 55, 0, 105, 115, 112, 101, 108, 2, 116, 117, 3, 84, 13, 89, 48, 13, 55, 0, 114, 101, 101, 100, 2, 97, 97,
-			114, 100, 105, 103, 3, 84, 34, 2, 116, 47, 10, 0, 114, 101, 101, 100, 2, 97, 3, 84, 34, 116, 47, 10, 0, 4, 97, 97, 114, 100,
-			101, 101, 114, 3, 84, 35, 34, 72, 6, 116, 34, 0, 97, 97, 114, 100, 101, 114, 2, 21, 0, 97, 110, 103, 101, 2, 100, 114, 97, 103,
-			3, 84, 35, 50, 136, 13, 0, 97, 115, 1, 115, 21, 2, 25, 3, 84, 35, 89, 0, 97, 115, 97, 103, 2, 116, 105, 103, 3, 84, 35,
-			89, 10, 4, 35, 136, 0, 97, 103, 1, 17, 67, 2, 25, 3, 84, 35, 136, 0, 105, 107, 105, 110, 103, 3, 84, 37, 49, 37, 68, 0,
-			111, 114, 99, 101, 115, 116, 101, 114, 3, 84, 40, 89, 47, 13, 34, 0, 101, 100, 2, 114, 101, 110, 3, 84, 108, 47, 0, 101, 114, 115,
-			116, 101, 1, 21, 2, 32, 3, 84, 109, 34, 89, 47, 13, 0, 4, 105, 110, 100, 8, 2, 97, 3, 84, 109, 50, 47, 10, 0, 105, 110,
-			100, 8, 2, 111, 0, 105, 108, 107, 101, 114, 3, 84, 109, 55, 49, 13, 34, 0, 105, 110, 107, 101, 108, 1, 17, 67, 3, 84, 109, 68,
-			49, 13, 55, 0, 105, 103, 8, 3, 84, 109, 136, 0, 111, 108, 8, 2, 17, 65, 3, 84, 110, 55, 10, 0, 111, 108, 107, 101, 3, 84,
-			110, 55, 49, 13, 0, 195, 170, 114, 101, 108, 2, 100, 106, 105, 101, 3, 84, 113, 34, 13, 55, 0, 195, 170, 114, 101, 108, 100, 119, 3,
-			84, 113, 34, 13, 55, 47, 84, 0, 195, 170, 114, 101, 108, 100, 101, 2, 32, 3, 84, 113, 34, 13, 55, 72, 13, 0, 4, 97, 1, 21,
-			2, 32, 24, 3, 84, 115, 0, 97, 2, 115, 112, 111, 114, 101, 0, 97, 2, 118, 111, 108, 0, 97, 2, 118, 114, 97, 103, 0, 97, 8,
-			2, 98, 111, 0, 97, 8, 2, 119, 121, 0, 97, 97, 114, 1, 107, 3, 84, 115, 34, 0, 4, 97, 114, 101, 1, 107, 21, 3, 84, 115,
-			34, 13, 0, 97, 114, 101, 1, 115, 21, 0, 97, 114, 101, 1, 116, 2, 25, 0, 97, 97, 114, 116, 115, 1, 17, 67, 3, 84, 115, 34,
-			47, 89, 0, 97, 116, 101, 114, 1, 107, 21, 3, 84, 115, 47, 13, 34, 0, 97, 112, 101, 110, 3, 84, 115, 48, 13, 50, 0, 101, 101,
-			107, 1, 107, 114, 101, 119, 3, 84, 116, 49, 0, 111, 111, 114, 100, 2, 97, 3, 84, 117, 34, 47, 10, 0, 111, 111, 114, 100, 101, 3,
-			84, 117, 34, 72, 13, 0, 111, 110, 105, 110, 103, 1, 17, 67, 21, 3, 84, 117, 50, 13, 68, 0, 111, 111, 110, 103, 101, 119, 101, 115,
-			3, 84, 117, 50, 136, 13, 84, 108, 89, 0, 121, 107, 1, 115, 10, 3, 84, 123, 49, 0, 121, 110, 107, 101, 108, 2, 100, 101, 114, 3,
-			84, 123, 50, 49, 112, 55, 0, 7, 6, 120, 0, 2, 120, 3, 0, 104, 111, 115, 97, 3, 49, 7, 131, 89, 35, 0, 3, 49, 89, 0,
-			101, 110, 2, 111, 3, 88, 2, 108, 50, 0, 7, 6, 121, 0, 1, 112, 112, 97, 107, 115, 2, 32, 3, 2, 123, 0, 1, 17, 67, 11,
-			2, 32, 3, 21, 0, 111, 114, 107, 3, 57, 6, 131, 49, 0, 3, 123, 0, 115, 116, 101, 114, 114, 101, 2, 108, 105, 110, 3, 123, 89,
-			47, 13, 34, 116, 0, 7, 6, 122, 0, 2, 122, 3, 0, 3, 88, 0, 97, 109, 98, 101, 115, 105, 3, 88, 2, 35, 65, 71, 116, 89,
-			2, 37, 0, 101, 98, 114, 97, 3, 88, 116, 71, 34, 35, 0, 1, 116, 3, 89, 0, 7, 6, 206, 0, 4, 172, 3, 6, 35, 55, 83,
-			35, 10, 0, 177, 0, 4, 173, 3, 6, 108, 48, 89, 37, 55, 110, 50, 10, 0, 181, 0, 191, 3, 6, 110, 65, 37, 49, 34, 110, 50,
-			10, 0, 4, 174, 3, 6, 116, 47, 35, 10, 0, 183, 0, 4, 175, 3, 37, 6, 117, 47, 35, 10, 0, 185, 0, 186, 3, 49, 6, 35,
-			48, 35, 10, 0, 190, 3, 49, 89, 6, 37, 10, 0, 189, 3, 50, 6, 118, 12, 10, 0, 187, 3, 55, 6, 35, 65, 71, 72, 35, 10,
-			0, 188, 3, 65, 6, 118, 12, 10, 0, 178, 3, 71, 6, 116, 47, 35, 10, 0, 180, 3, 72, 6, 112, 55, 47, 35, 10, 0, 179, 3,
-			81, 6, 35, 65, 35, 10, 0, 184, 3, 87, 6, 116, 47, 35, 10, 0, 182, 3, 88, 6, 116, 47, 35, 10, 0, 7, 6, 207, 0, 4,
-			133, 3, 6, 40, 48, 89, 37, 55, 110, 50, 10, 0, 141, 0, 140, 3, 6, 110, 65, 37, 49, 34, 110, 50, 10, 0, 129, 3, 34, 6,
-			117, 10, 0, 132, 3, 47, 6, 129, 10, 0, 128, 3, 48, 6, 37, 10, 0, 136, 3, 48, 89, 6, 37, 10, 0, 134, 3, 83, 6, 37,
-			10, 0, 4, 130, 3, 89, 6, 37, 81, 65, 35, 10, 0, 131, 0, 135, 3, 101, 6, 37, 10, 0, 4, 137, 3, 117, 65, 6, 116, 136,
-			35, 10, 0, 142, 0, 7, 6, 0, 33, 1, 19, 3, 0, 195, 175, 108, 108, 117, 2, 115, 116, 3, 2, 37, 55, 2, 111, 0, 39, 116,
-			106, 105, 101, 1, 21, 3, 2, 37, 80, 37, 0, 195, 175, 115, 111, 108, 3, 2, 37, 89, 2, 40, 55, 0, 195, 175, 2, 110, 17, 67,
-			3, 6, 109, 0, 195, 169, 107, 1, 25, 2, 32, 3, 6, 112, 49, 0, 195, 170, 114, 2, 32, 3, 7, 113, 34, 0, 195, 170, 114, 101,
-			2, 32, 3, 7, 113, 34, 13, 0, 195, 161, 1, 17, 67, 2, 17, 67, 17, 65, 3, 7, 115, 0, 33, 3, 9, 123, 47, 34, 40, 48,
-			9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 4, 195, 171, 2, 116, 101, 105,
-			116, 3, 13, 0, 195, 175, 2, 110, 115, 112, 0, 195, 175, 2, 110, 116, 0, 201, 153, 0, 195, 175, 110, 107, 97, 114, 110, 2, 17, 65,
-			3, 13, 68, 49, 2, 35, 34, 50, 0, 195, 177, 3, 21, 101, 115, 0, 195, 161, 1, 25, 2, 17, 67, 25, 3, 26, 35, 0, 195, 161,
-			108, 108, 101, 2, 25, 3, 26, 35, 55, 13, 0, 195, 179, 195, 169, 3, 26, 40, 0, 195, 169, 1, 25, 2, 17, 67, 25, 3, 26, 108,
-			0, 195, 179, 1, 25, 2, 17, 67, 25, 3, 26, 110, 0, 195, 186, 1, 25, 2, 17, 67, 25, 3, 26, 111, 0, 195, 169, 107, 2, 32,
-			3, 26, 112, 49, 0, 195, 161, 195, 161, 3, 26, 115, 0, 195, 169, 195, 169, 3, 26, 116, 0, 195, 179, 195, 179, 3, 26, 117, 0, 195,
-			179, 195, 186, 3, 26, 120, 0, 195, 189, 3, 26, 123, 0, 195, 179, 195, 179, 105, 3, 26, 125, 0, 195, 169, 195, 186, 3, 26, 128, 0,
-			195, 175, 103, 110, 111, 114, 101, 101, 114, 3, 37, 136, 50, 40, 34, 6, 116, 34, 0, 45, 8, 32, 2, 32, 15, 3, 65, 37, 50, 111,
-			89, 0, 36, 3, 72, 110, 55, 13, 34, 0, 39, 115, 1, 21, 2, 14, 128, 128, 130, 3, 89, 0, 195, 168, 8, 17, 67, 2, 32, 3,
-			108, 0, 195, 187, 101, 3, 111, 12, 13, 0, 195, 171, 1, 101, 103, 2, 114, 102, 3, 112, 0, 195, 170, 2, 114, 3, 113, 0, 195, 170,
-			101, 114, 1, 108, 3, 113, 13, 34, 0, 195, 170, 114, 1, 107, 115, 2, 12, 3, 113, 34, 0, 195, 170, 114, 101, 1, 98, 2, 32, 3,
-			113, 34, 13, 0, 195, 170, 3, 130, 0, 195, 180, 3, 131, 0, 195, 174, 101, 3, 132, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts1 = FileInMemory_createWithData (82372, reinterpret_cast<const char *> (&espeakdata_dicts1_data), 
-			U"espeak-1.48.04-source/espeak-data/af_dict", 
+			3, 89, 2, 35, 55, 2, 35, 0, 97, 108, 111, 2, 110, 3, 89, 2, 35, 55, 110, 0, 97, 109, 8, 2, 98, 3, 89, 2, 35, 65,
+			0, 97, 109, 97, 114, 105, 2, 116, 97, 3, 89, 2, 35, 65, 2, 35, 34, 2, 37, 0, 97, 110, 103, 101, 114, 101, 2, 25, 3, 89,
+			2, 35, 68, 13, 34, 108, 0, 97, 98, 111, 116, 2, 17, 65, 3, 89, 2, 35, 71, 2, 40, 47, 0, 97, 102, 97, 114, 105, 3, 89,
+			2, 35, 83, 115, 34, 2, 37, 0, 97, 118, 2, 97, 110, 110, 17, 65, 3, 89, 2, 35, 84, 0, 97, 103, 2, 109, 111, 101, 3, 89,
+			2, 35, 136, 0, 97, 103, 104, 101, 98, 98, 101, 2, 110, 3, 89, 2, 35, 136, 107, 108, 71, 13, 0, 105, 8, 2, 107, 108, 111, 3,
+			89, 2, 37, 0, 105, 112, 114, 101, 2, 25, 3, 89, 2, 37, 48, 34, 108, 0, 105, 101, 108, 107, 117, 110, 1, 21, 2, 100, 105, 103,
+			3, 89, 2, 37, 55, 49, 4, 111, 50, 0, 4, 111, 2, 110, 97, 116, 17, 65, 3, 89, 2, 40, 0, 111, 2, 112, 114, 97, 0, 111,
+			117, 2, 102, 102, 108, 101, 117, 0, 117, 2, 115, 97, 17, 67, 0, 117, 8, 2, 109, 101, 114, 105, 0, 111, 101, 116, 2, 115, 97, 112,
+			112, 105, 3, 89, 2, 40, 47, 0, 111, 110, 110, 101, 2, 116, 3, 89, 2, 40, 50, 108, 0, 111, 109, 97, 8, 2, 108, 105, 17, 65,
+			3, 89, 2, 40, 65, 115, 0, 111, 101, 100, 97, 8, 2, 110, 3, 89, 2, 40, 72, 35, 0, 111, 101, 119, 101, 2, 110, 105, 101, 114,
+			3, 89, 2, 40, 84, 13, 0, 111, 115, 97, 2, 116, 105, 3, 89, 2, 40, 89, 115, 0, 4, 111, 2, 108, 105, 100, 3, 89, 2, 110,
+			0, 111, 2, 108, 105, 101, 100, 0, 4, 111, 108, 2, 100, 121, 3, 89, 2, 110, 55, 0, 111, 108, 8, 2, 100, 97, 0, 117, 2, 109,
+			109, 105, 101, 114, 3, 89, 2, 111, 0, 117, 114, 114, 111, 2, 103, 97, 3, 89, 2, 111, 34, 2, 40, 0, 4, 117, 98, 2, 115, 116,
+			97, 110, 115, 105, 101, 3, 89, 2, 111, 48, 0, 117, 98, 2, 116, 105, 0, 117, 107, 115, 101, 115, 3, 89, 2, 111, 49, 89, 108, 89,
+			0, 117, 108, 116, 97, 110, 97, 3, 89, 2, 111, 55, 47, 115, 50, 2, 35, 0, 4, 117, 98, 2, 108, 105, 3, 89, 2, 111, 71, 0,
+			117, 98, 2, 115, 105, 100, 17, 65, 0, 117, 98, 2, 115, 107, 114, 105, 112, 0, 117, 98, 108, 105, 2, 109, 17, 65, 3, 89, 2, 111,
+			71, 55, 2, 37, 0, 117, 98, 108, 105, 109, 105, 2, 110, 97, 3, 89, 2, 111, 71, 55, 2, 37, 65, 2, 37, 0, 117, 98, 115, 116,
+			105, 2, 116, 117, 3, 89, 2, 111, 71, 89, 47, 13, 0, 117, 103, 103, 101, 115, 3, 89, 2, 111, 136, 108, 89, 0, 97, 2, 116, 97,
+			110, 105, 101, 3, 89, 2, 115, 0, 97, 109, 101, 8, 2, 104, 17, 65, 21, 3, 89, 2, 115, 65, 13, 0, 99, 101, 110, 97, 114, 105,
+			111, 3, 89, 2, 116, 50, 115, 34, 2, 37, 38, 2, 117, 0, 117, 105, 100, 2, 45, 97, 102, 114, 105, 107, 3, 89, 2, 127, 47, 0,
+			117, 105, 100, 2, 111, 111, 115, 3, 89, 2, 127, 47, 10, 0, 105, 110, 111, 2, 110, 105, 101, 109, 3, 89, 4, 37, 50, 2, 40, 0,
+			117, 112, 101, 114, 105, 110, 116, 101, 110, 100, 101, 110, 116, 3, 89, 4, 40, 48, 34, 13, 50, 47, 2, 108, 50, 72, 108, 50, 47, 0,
+			4, 111, 100, 111, 109, 2, 105, 101, 116, 3, 89, 4, 117, 72, 110, 65, 0, 111, 100, 111, 109, 2, 105, 101, 116, 0, 105, 116, 114, 117,
+			115, 3, 89, 6, 37, 47, 34, 2, 111, 89, 10, 0, 105, 101, 102, 1, 21, 2, 32, 3, 89, 6, 37, 83, 0, 105, 101, 119, 101, 1,
+			21, 2, 32, 3, 89, 6, 37, 84, 13, 0, 105, 101, 119, 101, 114, 1, 21, 2, 32, 3, 89, 6, 37, 84, 13, 34, 0, 105, 2, 110,
+			110, 105, 103, 3, 89, 6, 109, 0, 117, 103, 1, 21, 2, 116, 105, 103, 3, 89, 6, 111, 136, 0, 101, 108, 102, 2, 32, 3, 89, 6,
+			112, 55, 83, 0, 97, 97, 109, 8, 2, 14, 128, 132, 132, 3, 89, 6, 115, 65, 0, 97, 109, 101, 8, 2, 21, 14, 128, 132, 132, 3,
+			89, 6, 115, 65, 13, 0, 101, 114, 105, 110, 103, 1, 21, 3, 89, 6, 116, 34, 13, 68, 0, 101, 119, 101, 1, 25, 2, 17, 67, 3,
+			89, 6, 116, 84, 13, 0, 111, 110, 2, 111, 109, 3, 89, 7, 110, 50, 10, 0, 117, 112, 101, 114, 2, 17, 65, 3, 89, 7, 118, 48,
+			13, 34, 10, 0, 101, 119, 101, 1, 21, 2, 119, 105, 103, 3, 89, 10, 116, 84, 13, 0, 4, 105, 2, 108, 108, 97, 98, 17, 65, 3,
+			89, 13, 0, 105, 2, 108, 108, 97, 98, 17, 65, 0, 105, 2, 110, 97, 112, 25, 0, 105, 2, 112, 105, 101, 114, 0, 105, 2, 116, 114,
+			111, 101, 110, 0, 105, 2, 118, 105, 101, 108, 0, 105, 8, 2, 110, 111, 17, 67, 0, 105, 114, 101, 110, 101, 3, 89, 13, 34, 116, 50,
+			13, 0, 105, 116, 114, 111, 110, 101, 108, 108, 97, 3, 89, 13, 47, 34, 2, 40, 50, 112, 55, 2, 35, 0, 101, 112, 116, 101, 109, 98,
+			101, 114, 3, 89, 13, 48, 47, 108, 65, 71, 13, 34, 0, 4, 105, 110, 2, 106, 97, 3, 89, 13, 50, 0, 105, 110, 2, 116, 97, 107,
+			17, 67, 0, 105, 110, 8, 2, 100, 114, 111, 0, 105, 110, 116, 101, 116, 105, 101, 115, 3, 89, 13, 50, 47, 116, 47, 37, 89, 0, 105,
+			110, 105, 115, 116, 2, 17, 65, 114, 3, 89, 13, 50, 109, 89, 47, 0, 105, 108, 105, 107, 111, 111, 110, 3, 89, 13, 55, 2, 37, 49,
+			117, 50, 10, 0, 105, 108, 104, 111, 101, 2, 17, 65, 3, 89, 13, 55, 2, 40, 58, 0, 105, 108, 105, 2, 110, 100, 3, 89, 13, 55,
+			109, 0, 97, 108, 97, 114, 105, 115, 3, 89, 13, 55, 115, 34, 13, 89, 0, 4, 105, 109, 8, 2, 98, 17, 65, 3, 89, 13, 65, 0,
+			105, 109, 112, 2, 116, 111, 0, 105, 109, 109, 101, 2, 116, 114, 105, 101, 32, 24, 3, 89, 13, 65, 13, 0, 105, 109, 112, 111, 2, 115,
+			105, 17, 65, 3, 89, 13, 65, 48, 117, 0, 105, 109, 98, 105, 2, 111, 17, 67, 3, 89, 13, 65, 71, 2, 37, 0, 105, 109, 98, 111,
+			2, 108, 105, 101, 107, 3, 89, 13, 65, 71, 2, 40, 0, 105, 109, 109, 101, 2, 116, 114, 105, 101, 3, 89, 13, 65, 116, 0, 4, 101,
+			115, 1, 21, 2, 32, 3, 89, 13, 89, 0, 105, 115, 2, 116, 121, 110, 0, 105, 115, 116, 2, 101, 3, 89, 13, 89, 47, 0, 105, 115,
+			116, 101, 2, 109, 97, 116, 3, 89, 13, 89, 47, 13, 0, 105, 103, 2, 97, 21, 3, 89, 13, 136, 0, 105, 103, 97, 114, 101, 2, 116,
+			3, 89, 13, 136, 2, 35, 34, 108, 0, 97, 8, 2, 102, 102, 3, 89, 35, 7, 0, 97, 110, 100, 2, 97, 100, 100, 101, 114, 3, 89,
+			35, 50, 47, 10, 0, 97, 108, 118, 111, 2, 25, 3, 89, 35, 55, 84, 2, 40, 0, 97, 104, 97, 114, 97, 3, 89, 35, 107, 6, 115,
+			34, 35, 0, 105, 2, 107, 108, 105, 101, 3, 89, 37, 0, 105, 112, 97, 108, 101, 1, 21, 3, 89, 37, 48, 6, 115, 55, 13, 0, 105,
+			101, 107, 101, 8, 3, 89, 37, 49, 13, 0, 105, 107, 108, 117, 2, 115, 3, 89, 37, 49, 55, 111, 0, 111, 110, 97, 110, 116, 3, 89,
+			40, 50, 6, 35, 50, 47, 0, 112, 97, 2, 115, 105, 101, 101, 114, 3, 89, 48, 2, 35, 0, 112, 97, 114, 8, 2, 116, 97, 21, 3,
+			89, 48, 2, 35, 34, 0, 4, 112, 97, 110, 2, 100, 97, 98, 3, 89, 48, 2, 35, 50, 0, 112, 97, 110, 2, 106, 17, 65, 17, 65,
+			0, 112, 97, 110, 2, 115, 112, 101, 107, 0, 112, 97, 115, 2, 109, 111, 100, 3, 89, 48, 2, 35, 89, 0, 4, 112, 105, 2, 110, 97,
+			21, 3, 89, 48, 2, 37, 0, 112, 105, 8, 2, 114, 97, 0, 112, 105, 110, 101, 2, 116, 3, 89, 48, 2, 37, 50, 108, 0, 112, 101,
+			107, 2, 116, 97, 107, 101, 108, 3, 89, 48, 2, 108, 49, 0, 112, 101, 107, 117, 2, 108, 17, 65, 3, 89, 48, 2, 108, 49, 2, 118,
+			0, 112, 101, 115, 8, 2, 109, 97, 3, 89, 48, 2, 108, 89, 0, 112, 101, 115, 105, 2, 102, 3, 89, 48, 2, 108, 89, 2, 109, 0,
+			112, 101, 115, 105, 2, 97, 3, 89, 48, 2, 108, 91, 2, 37, 0, 112, 111, 110, 8, 2, 116, 97, 3, 89, 48, 2, 110, 50, 0, 112,
+			111, 114, 116, 8, 2, 21, 21, 21, 3, 89, 48, 7, 110, 34, 47, 10, 0, 112, 101, 114, 1, 21, 2, 97, 3, 89, 48, 13, 34, 6,
+			0, 112, 105, 116, 115, 2, 118, 111, 110, 3, 89, 48, 13, 47, 89, 0, 112, 101, 115, 101, 2, 114, 121, 3, 89, 48, 13, 89, 13, 0,
+			112, 114, 101, 101, 107, 119, 111, 111, 114, 100, 101, 108, 105, 3, 89, 48, 34, 2, 116, 49, 84, 117, 34, 72, 13, 55, 13, 0, 112, 114,
+			105, 110, 103, 98, 111, 2, 107, 3, 89, 48, 34, 7, 109, 68, 71, 110, 0, 112, 114, 111, 107, 101, 3, 89, 48, 34, 117, 49, 13, 0,
+			112, 97, 114, 116, 101, 108, 3, 89, 48, 35, 34, 47, 13, 55, 0, 112, 97, 116, 8, 2, 97, 3, 89, 48, 35, 47, 10, 0, 112, 111,
+			101, 100, 8, 2, 21, 3, 89, 48, 40, 47, 0, 112, 111, 101, 100, 2, 105, 103, 3, 89, 48, 40, 72, 0, 112, 101, 114, 1, 107, 101,
+			2, 105, 109, 3, 89, 48, 108, 34, 0, 112, 101, 115, 105, 97, 108, 105, 115, 3, 89, 48, 108, 91, 35, 55, 6, 109, 89, 0, 112, 101,
+			115, 105, 97, 108, 105, 115, 2, 17, 65, 3, 89, 48, 108, 91, 37, 35, 55, 37, 89, 0, 4, 112, 101, 108, 1, 17, 65, 17, 65, 2,
+			100, 3, 89, 48, 112, 55, 0, 112, 101, 108, 1, 17, 67, 2, 32, 0, 112, 101, 108, 1, 101, 2, 32, 0, 112, 101, 108, 8, 17, 65,
+			110, 2, 32, 0, 112, 101, 108, 97, 103, 116, 105, 103, 3, 89, 48, 112, 55, 6, 35, 136, 47, 13, 136, 0, 112, 101, 110, 101, 2, 32,
+			3, 89, 48, 116, 50, 13, 0, 112, 101, 108, 101, 1, 10, 2, 32, 3, 89, 48, 116, 55, 13, 0, 107, 97, 2, 118, 111, 116, 3, 89,
+			49, 2, 35, 0, 107, 97, 114, 8, 2, 17, 67, 3, 89, 49, 2, 35, 34, 0, 107, 97, 107, 101, 114, 2, 105, 110, 103, 3, 89, 49,
+			2, 35, 49, 116, 34, 0, 107, 97, 110, 2, 100, 97, 3, 89, 49, 2, 35, 50, 0, 107, 97, 110, 100, 101, 2, 114, 105, 110, 103, 3,
+			89, 49, 2, 35, 50, 72, 116, 0, 107, 105, 115, 111, 102, 114, 2, 101, 3, 89, 49, 2, 37, 89, 2, 40, 83, 34, 0, 107, 101, 2,
+			100, 117, 108, 101, 3, 89, 49, 2, 108, 0, 107, 111, 112, 112, 101, 108, 2, 109, 97, 97, 3, 89, 49, 2, 110, 48, 13, 55, 0, 107,
+			101, 114, 2, 109, 117, 116, 115, 3, 89, 49, 2, 112, 34, 0, 107, 101, 114, 112, 105, 2, 111, 101, 110, 3, 89, 49, 2, 112, 34, 48,
+			2, 37, 0, 107, 111, 2, 108, 105, 101, 114, 3, 89, 49, 2, 117, 0, 107, 121, 110, 2, 104, 101, 105, 3, 89, 49, 2, 123, 50, 0,
+			107, 97, 112, 108, 105, 107, 1, 21, 3, 89, 49, 6, 35, 48, 55, 13, 49, 0, 107, 121, 110, 108, 105, 107, 1, 21, 3, 89, 49, 6,
+			123, 50, 55, 13, 49, 0, 107, 111, 107, 8, 2, 17, 65, 14, 128, 132, 132, 3, 89, 49, 7, 110, 49, 10, 0, 107, 101, 2, 100, 111,
+			110, 107, 3, 89, 49, 13, 0, 107, 105, 108, 100, 101, 114, 2, 121, 3, 89, 49, 13, 55, 72, 13, 34, 0, 107, 101, 108, 101, 8, 2,
+			116, 3, 89, 49, 13, 55, 108, 0, 107, 114, 97, 112, 110, 101, 2, 108, 3, 89, 49, 34, 2, 35, 48, 50, 112, 0, 107, 114, 105, 102,
+			2, 17, 65, 3, 89, 49, 34, 109, 83, 10, 0, 107, 97, 114, 114, 101, 108, 3, 89, 49, 35, 34, 13, 55, 0, 107, 97, 112, 112, 121,
+			8, 17, 67, 17, 65, 17, 65, 17, 67, 3, 89, 49, 35, 48, 6, 123, 0, 4, 107, 97, 112, 1, 21, 2, 105, 110, 21, 3, 89, 49,
+			35, 48, 10, 0, 107, 97, 112, 1, 21, 2, 111, 0, 107, 108, 101, 2, 114, 111, 115, 101, 3, 89, 49, 55, 13, 0, 107, 117, 108, 100,
+			2, 101, 114, 107, 101, 110, 3, 89, 49, 111, 55, 47, 10, 0, 107, 101, 114, 112, 3, 89, 49, 112, 34, 48, 0, 107, 97, 100, 101, 3,
+			89, 49, 115, 72, 13, 0, 107, 97, 100, 117, 3, 89, 49, 115, 72, 118, 0, 107, 101, 109, 101, 114, 3, 89, 49, 116, 65, 13, 34, 0,
+			107, 111, 111, 110, 103, 101, 2, 17, 67, 3, 89, 49, 117, 50, 136, 13, 0, 107, 111, 108, 101, 3, 89, 49, 117, 55, 13, 0, 110, 101,
+			108, 8, 2, 17, 65, 3, 89, 50, 7, 112, 55, 10, 0, 110, 101, 108, 2, 32, 3, 89, 50, 112, 55, 0, 110, 97, 112, 101, 114, 2,
+			105, 110, 103, 3, 89, 50, 115, 48, 13, 34, 0, 108, 97, 2, 118, 105, 110, 3, 89, 55, 2, 35, 0, 108, 97, 103, 8, 3, 89, 55,
+			7, 35, 136, 10, 0, 108, 97, 103, 2, 111, 102, 102, 3, 89, 55, 35, 136, 10, 0, 108, 111, 112, 2, 101, 109, 109, 101, 114, 3, 89,
+			55, 110, 48, 10, 0, 108, 97, 2, 119, 101, 3, 89, 55, 115, 0, 4, 106, 1, 21, 2, 97, 17, 67, 17, 65, 3, 89, 57, 0, 106,
+			1, 21, 2, 97, 97, 114, 0, 4, 119, 2, 101, 114, 109, 3, 89, 58, 0, 119, 8, 0, 119, 97, 2, 104, 105, 108, 105, 3, 89, 58,
+			2, 35, 0, 119, 97, 114, 116, 2, 103, 97, 108, 3, 89, 58, 2, 35, 34, 47, 0, 4, 119, 97, 97, 114, 2, 108, 121, 119, 3, 89,
+			58, 2, 115, 34, 0, 119, 97, 97, 114, 2, 109, 111, 101, 100, 0, 119, 97, 109, 8, 2, 17, 65, 21, 3, 89, 58, 35, 65, 10, 0,
+			117, 105, 116, 101, 3, 89, 58, 37, 47, 13, 0, 119, 101, 110, 100, 101, 108, 3, 89, 58, 108, 50, 72, 13, 55, 0, 119, 101, 109, 1,
+			21, 2, 32, 3, 89, 58, 108, 65, 0, 119, 101, 109, 8, 2, 17, 65, 3, 89, 58, 108, 65, 10, 0, 119, 105, 116, 115, 101, 114, 3,
+			89, 58, 109, 47, 89, 13, 34, 0, 119, 101, 101, 112, 3, 89, 58, 116, 48, 0, 119, 101, 112, 101, 3, 89, 58, 116, 48, 13, 0, 109,
+			97, 2, 114, 97, 103, 3, 89, 65, 2, 35, 0, 109, 101, 108, 116, 3, 89, 65, 112, 55, 47, 0, 119, 97, 103, 2, 25, 3, 89, 84,
+			35, 136, 0, 119, 101, 114, 107, 1, 21, 3, 89, 84, 112, 34, 49, 0, 119, 101, 101, 1, 21, 2, 32, 3, 89, 84, 116, 0, 105, 108,
+			105, 107, 111, 2, 110, 3, 89, 109, 55, 2, 37, 49, 2, 110, 0, 105, 108, 119, 101, 114, 3, 89, 109, 55, 84, 13, 34, 0, 105, 116,
+			117, 97, 115, 105, 101, 3, 89, 109, 76, 40, 6, 115, 89, 37, 0, 111, 2, 110, 110, 101, 116, 106, 105, 101, 12, 12, 3, 89, 110, 0,
+			111, 110, 2, 103, 21, 3, 89, 110, 50, 0, 117, 98, 8, 2, 97, 3, 89, 111, 71, 10, 0, 97, 107, 101, 3, 89, 115, 49, 13, 0,
+			97, 109, 101, 110, 2, 12, 3, 89, 115, 65, 13, 50, 0, 97, 109, 101, 108, 2, 17, 67, 3, 89, 115, 65, 13, 55, 0, 97, 97, 109,
+			103, 101, 101, 3, 89, 115, 65, 136, 116, 0, 101, 119, 101, 2, 116, 106, 105, 101, 3, 89, 116, 84, 37, 0, 111, 2, 118, 3, 89, 117,
+			0, 111, 105, 101, 8, 3, 89, 117, 19, 37, 0, 111, 118, 101, 114, 114, 101, 3, 89, 117, 83, 6, 112, 34, 13, 0, 111, 115, 105, 97,
+			108, 2, 105, 3, 89, 117, 91, 37, 35, 55, 6, 0, 111, 115, 105, 111, 2, 45, 3, 89, 117, 91, 119, 12, 0, 97, 117, 110, 97, 3,
+			89, 131, 50, 35, 0, 4, 1, 17, 67, 2, 105, 101, 101, 17, 67, 3, 91, 0, 1, 17, 67, 2, 105, 195, 171, 108, 101, 0, 2, 105,
+			195, 171, 110, 0, 99, 104, 0, 104, 8, 0, 106, 0, 106, 97, 2, 109, 97, 3, 91, 2, 35, 0, 106, 97, 114, 2, 109, 97, 110, 116,
+			3, 91, 2, 35, 34, 0, 106, 97, 109, 112, 97, 110, 106, 101, 3, 91, 2, 35, 65, 48, 35, 50, 57, 13, 0, 106, 97, 109, 112, 111,
+			101, 3, 91, 2, 35, 65, 48, 40, 12, 0, 106, 111, 107, 111, 108, 97, 100, 101, 3, 91, 2, 110, 49, 13, 55, 115, 72, 13, 0, 106,
+			105, 109, 112, 97, 110, 2, 115, 101, 101, 3, 91, 13, 65, 48, 2, 35, 50, 0, 105, 1, 21, 2, 111, 3, 91, 37, 0, 105, 97, 97,
+			108, 3, 91, 37, 6, 115, 55, 0, 105, 97, 108, 101, 3, 91, 37, 6, 115, 55, 13, 0, 99, 104, 117, 8, 2, 17, 67, 3, 91, 40,
+			0, 106, 101, 114, 114, 105, 101, 3, 91, 108, 34, 37, 0, 105, 111, 1, 21, 2, 110, 101, 3, 91, 119, 6, 0, 7, 6, 116, 0, 4,
+			2, 32, 100, 24, 3, 0, 2, 116, 3, 0, 4, 99, 104, 1, 17, 65, 3, 21, 0, 104, 1, 21, 2, 32, 24, 0, 104, 8, 0, 104,
+			121, 1, 21, 2, 32, 0, 105, 111, 110, 1, 21, 2, 32, 0, 105, 111, 110, 115, 1, 21, 2, 32, 0, 108, 101, 1, 21, 2, 32, 0,
+			106, 105, 101, 1, 101, 114, 3, 37, 80, 37, 0, 4, 3, 47, 0, 1, 17, 67, 21, 2, 101, 110, 121, 0, 1, 21, 2, 101, 109, 97,
+			25, 12, 12, 0, 1, 97, 97, 114, 116, 115, 2, 106, 0, 104, 1, 21, 2, 17, 67, 0, 104, 8, 2, 21, 21, 0, 4, 97, 1, 21,
+			2, 108, 105, 115, 3, 47, 2, 35, 0, 97, 2, 98, 108, 101, 116, 0, 97, 2, 114, 105, 101, 102, 0, 97, 2, 114, 105, 101, 119, 101,
+			0, 97, 8, 2, 109, 98, 0, 97, 114, 8, 2, 116, 97, 21, 3, 47, 2, 35, 34, 0, 97, 114, 101, 110, 2, 116, 97, 3, 47, 2,
+			35, 34, 13, 50, 0, 97, 116, 111, 101, 2, 195, 171, 3, 47, 2, 35, 47, 2, 40, 0, 97, 112, 105, 115, 115, 101, 2, 114, 105, 3,
+			47, 2, 35, 48, 13, 89, 13, 0, 97, 107, 115, 105, 100, 101, 114, 2, 109, 3, 47, 2, 35, 49, 89, 2, 37, 72, 2, 112, 34, 0,
+			97, 110, 122, 97, 2, 110, 105, 3, 47, 2, 35, 50, 88, 115, 0, 97, 108, 101, 110, 2, 116, 106, 105, 101, 3, 47, 2, 35, 55, 108,
+			37, 68, 0, 97, 108, 101, 110, 116, 3, 47, 2, 35, 55, 108, 50, 47, 0, 97, 109, 97, 114, 105, 115, 107, 3, 47, 2, 35, 65, 2,
+			35, 34, 109, 89, 49, 0, 97, 109, 101, 108, 101, 2, 116, 106, 3, 47, 2, 35, 65, 13, 55, 108, 37, 0, 97, 109, 98, 111, 101, 2,
+			114, 121, 110, 3, 47, 2, 35, 65, 71, 2, 40, 0, 97, 109, 97, 2, 116, 105, 101, 3, 47, 2, 35, 65, 115, 0, 97, 98, 101, 114,
+			2, 110, 97, 107, 101, 108, 3, 47, 2, 35, 71, 13, 34, 0, 97, 98, 97, 107, 3, 47, 2, 35, 71, 35, 49, 0, 97, 98, 108, 111,
+			2, 16, 3, 47, 2, 35, 71, 55, 117, 0, 97, 102, 101, 2, 114, 101, 3, 47, 2, 35, 83, 13, 0, 97, 118, 101, 114, 2, 110, 105,
+			101, 114, 3, 47, 2, 35, 83, 13, 34, 0, 97, 118, 101, 114, 110, 101, 3, 47, 2, 35, 83, 112, 34, 50, 13, 0, 4, 105, 2, 112,
+			101, 114, 17, 65, 3, 47, 2, 37, 0, 105, 2, 114, 97, 0, 105, 101, 114, 108, 97, 110, 2, 116, 121, 3, 47, 2, 37, 12, 34, 55,
+			2, 35, 50, 0, 105, 114, 97, 2, 110, 110, 105, 101, 3, 47, 2, 37, 34, 2, 35, 0, 105, 110, 101, 110, 8, 2, 116, 97, 21, 3,
+			47, 2, 37, 50, 2, 108, 50, 0, 105, 98, 101, 116, 8, 3, 47, 2, 37, 71, 108, 47, 0, 105, 97, 114, 97, 3, 47, 2, 37, 115,
+			34, 35, 0, 4, 111, 101, 2, 107, 111, 109, 101, 3, 47, 2, 40, 0, 111, 101, 2, 107, 111, 109, 115, 116, 105, 0, 111, 101, 2, 108,
+			97, 97, 116, 98, 97, 0, 111, 101, 2, 114, 105, 115, 116, 101, 21, 0, 111, 101, 114, 2, 110, 3, 47, 2, 40, 34, 0, 111, 101, 114,
+			101, 107, 101, 110, 2, 98, 3, 47, 2, 40, 34, 6, 116, 49, 13, 50, 0, 111, 101, 114, 101, 105, 107, 101, 3, 47, 2, 40, 34, 123,
+			49, 13, 0, 4, 111, 112, 8, 2, 97, 97, 115, 3, 47, 2, 40, 48, 0, 111, 112, 8, 2, 97, 115, 101, 0, 111, 101, 112, 97, 115,
+			108, 105, 107, 3, 47, 2, 40, 48, 35, 89, 55, 13, 49, 0, 111, 110, 101, 101, 108, 3, 47, 2, 40, 50, 116, 55, 0, 111, 110, 101,
+			108, 101, 3, 47, 2, 40, 50, 116, 55, 13, 0, 111, 101, 103, 97, 110, 107, 3, 47, 2, 40, 136, 6, 35, 68, 49, 0, 111, 101, 103,
+			101, 101, 102, 3, 47, 2, 40, 136, 116, 83, 0, 111, 101, 103, 101, 119, 101, 110, 2, 100, 3, 47, 2, 40, 136, 116, 84, 13, 50, 0,
+			111, 114, 8, 2, 110, 121, 110, 3, 47, 2, 110, 34, 0, 111, 107, 2, 116, 111, 107, 107, 3, 47, 2, 110, 49, 0, 111, 107, 107, 101,
+			2, 108, 111, 3, 47, 2, 110, 49, 13, 0, 111, 109, 98, 111, 108, 97, 3, 47, 2, 110, 65, 71, 117, 55, 2, 35, 0, 111, 115, 8,
+			2, 107, 97, 3, 47, 2, 110, 89, 0, 111, 8, 2, 110, 97, 3, 47, 2, 117, 0, 4, 111, 112, 8, 2, 111, 103, 114, 97, 3, 47,
+			2, 117, 48, 0, 111, 112, 8, 2, 111, 108, 111, 0, 117, 98, 101, 114, 107, 117, 108, 111, 115, 101, 3, 47, 2, 118, 71, 13, 34, 49,
+			2, 118, 55, 117, 89, 13, 0, 97, 105, 119, 97, 2, 110, 3, 47, 2, 121, 58, 35, 0, 121, 100, 2, 114, 111, 119, 3, 47, 2, 123,
+			47, 0, 111, 105, 2, 108, 101, 116, 3, 47, 2, 124, 0, 117, 105, 110, 2, 105, 101, 114, 3, 47, 2, 127, 50, 0, 1, 114, 101, 118,
+			100, 97, 2, 101, 3, 47, 6, 0, 105, 101, 102, 1, 21, 2, 32, 3, 47, 6, 37, 83, 0, 4, 105, 101, 119, 101, 1, 21, 2, 32,
+			3, 47, 6, 37, 84, 13, 0, 105, 101, 119, 101, 1, 21, 2, 114, 32, 0, 111, 101, 8, 2, 119, 101, 110, 25, 14, 128, 132, 131, 3,
+			47, 6, 40, 0, 111, 101, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 47, 6, 40, 136, 13, 0, 111, 101, 103, 101, 2, 119, 105, 110,
+			103, 3, 47, 6, 40, 136, 116, 0, 97, 108, 105, 103, 1, 21, 3, 47, 6, 115, 55, 13, 136, 0, 111, 114, 105, 115, 1, 21, 2, 32,
+			3, 47, 6, 117, 34, 13, 89, 0, 117, 117, 114, 3, 47, 6, 118, 34, 0, 121, 1, 21, 2, 100, 105, 103, 3, 47, 6, 123, 0, 117,
+			105, 103, 108, 105, 107, 3, 47, 6, 127, 136, 55, 13, 49, 0, 97, 110, 100, 101, 8, 2, 17, 67, 21, 3, 47, 7, 35, 50, 72, 13,
+			0, 111, 112, 8, 2, 17, 65, 3, 47, 7, 110, 48, 10, 0, 117, 114, 98, 111, 8, 2, 25, 3, 47, 7, 111, 34, 71, 117, 10, 0,
+			104, 101, 117, 8, 3, 47, 7, 128, 0, 116, 101, 108, 3, 47, 13, 55, 0, 105, 110, 107, 2, 116, 105, 110, 107, 3, 47, 13, 68, 49,
+			0, 4, 97, 110, 100, 2, 111, 3, 47, 35, 50, 47, 10, 0, 97, 110, 100, 8, 2, 97, 0, 105, 116, 101, 108, 3, 47, 37, 47, 13,
+			55, 0, 105, 115, 115, 117, 101, 3, 47, 37, 91, 2, 40, 0, 111, 101, 114, 101, 2, 32, 3, 47, 40, 12, 34, 13, 0, 111, 101, 110,
+			101, 109, 101, 110, 3, 47, 40, 50, 6, 116, 65, 13, 50, 0, 4, 106, 1, 21, 2, 97, 3, 47, 57, 0, 106, 1, 105, 117, 0, 106,
+			111, 101, 114, 110, 97, 108, 105, 1, 21, 3, 47, 57, 2, 40, 34, 50, 2, 35, 55, 13, 0, 119, 101, 101, 100, 2, 25, 3, 47, 58,
+			37, 12, 72, 0, 119, 105, 115, 2, 17, 65, 3, 47, 58, 109, 89, 10, 0, 119, 101, 101, 100, 2, 114, 97, 3, 47, 58, 116, 72, 0,
+			119, 121, 102, 101, 2, 108, 3, 47, 58, 123, 83, 13, 0, 111, 103, 1, 103, 114, 111, 98, 3, 47, 110, 136, 10, 0, 117, 114, 108, 105,
+			110, 103, 116, 111, 110, 3, 47, 111, 12, 55, 2, 37, 68, 47, 13, 50, 0, 117, 115, 115, 101, 110, 3, 47, 111, 89, 13, 50, 0, 117,
+			103, 2, 17, 65, 3, 47, 111, 136, 10, 0, 4, 117, 117, 114, 1, 105, 116, 114, 97, 112, 3, 47, 118, 12, 34, 0, 117, 117, 114, 1,
+			115, 0, 121, 100, 2, 114, 3, 47, 123, 47, 0, 97, 110, 116, 8, 2, 101, 3, 47, 133, 50, 47, 0, 97, 110, 116, 101, 115, 3, 47,
+			133, 50, 47, 13, 89, 0, 4, 106, 3, 76, 0, 106, 8, 2, 105, 101, 0, 106, 101, 2, 108, 108, 105, 115, 3, 76, 2, 108, 0, 106,
+			97, 110, 107, 1, 21, 3, 76, 35, 68, 49, 0, 106, 101, 108, 108, 111, 3, 76, 108, 55, 40, 0, 106, 2, 105, 101, 3, 80, 0, 106,
+			105, 101, 1, 105, 117, 3, 80, 37, 0, 105, 97, 2, 32, 3, 91, 57, 35, 0, 7, 6, 117, 0, 103, 97, 110, 2, 100, 101, 3, 2,
+			40, 81, 2, 35, 50, 0, 1, 109, 2, 115, 107, 105, 101, 116, 3, 2, 111, 0, 108, 116, 105, 2, 109, 97, 3, 2, 111, 55, 47, 2,
+			37, 0, 8, 2, 114, 97, 3, 2, 118, 0, 114, 105, 110, 101, 3, 2, 118, 34, 37, 50, 13, 0, 114, 105, 101, 110, 119, 101, 103, 3,
+			2, 118, 34, 37, 50, 84, 112, 136, 10, 0, 114, 101, 8, 2, 116, 3, 2, 118, 34, 116, 0, 116, 111, 2, 112, 105, 17, 65, 3, 2,
+			118, 47, 117, 0, 110, 105, 118, 101, 114, 115, 2, 17, 65, 21, 3, 2, 118, 50, 2, 37, 84, 2, 112, 34, 89, 0, 115, 8, 98, 2,
+			17, 65, 3, 7, 111, 89, 10, 0, 2, 104, 108, 101, 32, 3, 40, 12, 0, 2, 17, 67, 3, 111, 0, 4, 3, 118, 0, 2, 17, 67,
+			17, 65, 0, 117, 0, 114, 101, 8, 2, 17, 67, 3, 118, 12, 34, 13, 0, 114, 105, 110, 101, 101, 114, 3, 118, 34, 37, 50, 6, 116,
+			34, 0, 119, 1, 110, 3, 118, 84, 0, 4, 119, 101, 1, 110, 2, 17, 67, 3, 118, 84, 13, 0, 119, 101, 1, 114, 17, 67, 2, 17,
+			67, 0, 119, 101, 108, 105, 107, 1, 17, 67, 3, 118, 84, 13, 55, 13, 49, 0, 121, 3, 127, 0, 110, 116, 106, 105, 101, 1, 17, 67,
+			3, 127, 68, 80, 37, 0, 116, 106, 105, 101, 3, 127, 80, 37, 0, 7, 6, 118, 0, 2, 118, 3, 0, 105, 108, 108, 101, 3, 21, 0,
+			3, 83, 0, 97, 2, 108, 108, 101, 105, 3, 83, 2, 35, 0, 97, 116, 105, 2, 107, 97, 97, 110, 3, 83, 2, 35, 47, 2, 37, 0,
+			97, 107, 97, 2, 116, 117, 114, 101, 3, 83, 2, 35, 49, 13, 0, 97, 110, 8, 2, 21, 3, 83, 2, 35, 50, 0, 97, 110, 115, 101,
+			108, 102, 2, 115, 112, 114, 3, 83, 2, 35, 50, 89, 2, 112, 55, 83, 0, 105, 2, 111, 3, 83, 2, 37, 0, 105, 111, 2, 108, 101,
+			116, 25, 3, 83, 2, 37, 2, 40, 0, 105, 101, 114, 2, 107, 97, 110, 116, 105, 103, 3, 83, 2, 37, 12, 34, 0, 105, 116, 114, 105,
+			2, 111, 101, 108, 3, 83, 2, 37, 47, 34, 2, 37, 0, 4, 117, 108, 2, 107, 97, 3, 83, 2, 111, 55, 0, 117, 108, 8, 2, 103,
+			97, 97, 116, 0, 121, 2, 97, 110, 100, 105, 103, 3, 83, 2, 123, 0, 97, 108, 108, 105, 103, 3, 83, 6, 35, 55, 13, 136, 0, 97,
+			115, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 83, 6, 35, 89, 136, 13, 0, 105, 115, 101, 2, 25, 3, 83, 6, 37, 89, 37, 0,
+			117, 108, 100, 105, 103, 3, 83, 6, 111, 55, 72, 13, 136, 0, 97, 97, 114, 100, 105, 103, 1, 21, 3, 83, 6, 115, 34, 72, 13, 136,
+			0, 97, 107, 97, 110, 115, 105, 101, 3, 83, 13, 49, 35, 50, 89, 37, 0, 4, 105, 115, 1, 25, 2, 105, 101, 114, 3, 83, 13, 89,
+			0, 105, 115, 1, 101, 105, 21, 2, 32, 0, 105, 115, 101, 110, 2, 116, 101, 3, 83, 13, 89, 13, 50, 0, 105, 115, 105, 116, 101, 3,
+			83, 13, 89, 37, 47, 13, 0, 114, 101, 100, 101, 2, 108, 105, 101, 119, 3, 83, 34, 2, 116, 72, 13, 0, 114, 101, 101, 115, 97, 97,
+			110, 2, 106, 97, 3, 83, 34, 2, 116, 89, 19, 2, 115, 50, 0, 4, 114, 121, 2, 109, 101, 115, 115, 101, 108, 3, 83, 34, 2, 123,
+			0, 114, 121, 2, 109, 111, 101, 100, 0, 114, 121, 2, 112, 111, 115, 116, 105, 0, 114, 121, 2, 119, 105, 108, 0, 114, 105, 101, 110, 100,
+			105, 2, 110, 3, 83, 34, 37, 50, 72, 6, 109, 0, 114, 111, 116, 2, 101, 105, 101, 114, 3, 83, 34, 110, 47, 10, 0, 114, 101, 101,
+			109, 100, 101, 3, 83, 34, 116, 65, 72, 13, 0, 114, 101, 100, 101, 3, 83, 34, 116, 72, 13, 0, 114, 121, 103, 101, 119, 105, 103, 3,
+			83, 34, 123, 136, 6, 116, 84, 13, 136, 0, 97, 2, 100, 111, 101, 107, 3, 83, 35, 0, 97, 116, 8, 2, 17, 65, 21, 3, 83, 35,
+			47, 10, 0, 97, 107, 2, 117, 110, 105, 101, 3, 83, 35, 49, 10, 0, 97, 110, 103, 8, 2, 21, 3, 83, 35, 68, 0, 97, 110, 103,
+			101, 110, 3, 83, 35, 68, 13, 50, 0, 97, 110, 107, 108, 105, 107, 8, 3, 83, 35, 68, 49, 55, 13, 49, 0, 97, 115, 115, 116, 101,
+			2, 108, 3, 83, 35, 89, 47, 112, 0, 105, 115, 1, 100, 97, 2, 101, 21, 3, 83, 37, 89, 6, 0, 108, 105, 101, 195, 171, 2, 110,
+			105, 101, 114, 3, 83, 55, 2, 37, 13, 0, 108, 97, 109, 2, 111, 111, 3, 83, 55, 35, 65, 10, 0, 108, 97, 2, 17, 67, 17, 65,
+			17, 65, 3, 83, 55, 115, 0, 105, 115, 2, 17, 65, 3, 83, 109, 89, 0, 195, 169, 114, 3, 83, 113, 34, 0, 4, 97, 97, 114, 100,
+			105, 103, 1, 114, 101, 118, 3, 83, 115, 34, 72, 13, 136, 0, 97, 97, 114, 100, 105, 103, 1, 116, 105, 117, 0, 97, 116, 101, 2, 17,
+			67, 3, 83, 115, 47, 13, 0, 1, 21, 2, 97, 108, 101, 110, 116, 3, 84, 0, 97, 2, 107, 117, 3, 84, 2, 35, 0, 97, 114, 105,
+			2, 17, 65, 3, 84, 2, 35, 34, 2, 37, 0, 97, 108, 117, 116, 97, 3, 84, 2, 35, 55, 118, 47, 2, 35, 0, 97, 115, 101, 108,
+			105, 110, 101, 3, 84, 2, 35, 89, 13, 55, 37, 50, 0, 97, 103, 105, 110, 2, 17, 65, 21, 3, 84, 2, 35, 136, 2, 37, 50, 0,
+			4, 105, 2, 98, 114, 17, 65, 3, 84, 2, 37, 0, 105, 2, 99, 116, 111, 21, 0, 105, 8, 2, 114, 97, 0, 105, 116, 97, 2, 109,
+			105, 3, 84, 2, 37, 47, 2, 35, 0, 105, 115, 105, 2, 111, 101, 110, 3, 84, 2, 37, 89, 2, 37, 0, 105, 115, 2, 117, 17, 65,
+			3, 84, 2, 37, 90, 0, 105, 8, 2, 114, 105, 3, 84, 13, 0, 105, 114, 116, 117, 3, 84, 13, 34, 76, 2, 118, 0, 97, 103, 105,
+			110, 97, 3, 84, 35, 136, 37, 50, 35, 0, 105, 114, 117, 2, 25, 3, 84, 37, 34, 111, 0, 105, 116, 114, 111, 8, 2, 32, 3, 84,
+			37, 47, 34, 2, 40, 0, 105, 107, 105, 110, 103, 3, 84, 37, 49, 37, 68, 0, 105, 100, 101, 111, 3, 84, 37, 72, 119, 0, 4, 105,
+			115, 1, 17, 65, 2, 97, 115, 105, 101, 3, 84, 37, 89, 0, 105, 115, 2, 105, 101, 0, 105, 115, 2, 117, 109, 0, 105, 115, 1, 17,
+			65, 2, 101, 21, 3, 84, 37, 89, 6, 0, 105, 195, 171, 116, 110, 97, 2, 109, 101, 3, 84, 57, 2, 108, 47, 50, 2, 35, 0, 105,
+			108, 108, 97, 3, 84, 109, 55, 35, 0, 7, 6, 119, 0, 2, 119, 3, 0, 4, 1, 21, 2, 17, 67, 32, 3, 21, 0, 1, 21, 2,
+			32, 24, 0, 104, 0, 110, 0, 111, 111, 100, 2, 12, 0, 111, 114, 116, 104, 0, 115, 1, 21, 2, 32, 24, 0, 4, 1, 100, 3, 58,
+			0, 1, 104, 103, 0, 1, 107, 0, 1, 115, 0, 1, 115, 2, 97, 114, 116, 0, 1, 115, 2, 101, 101, 114, 100, 101, 114, 0, 1, 115,
+			21, 2, 97, 108, 107, 32, 0, 1, 115, 101, 98, 2, 97, 97, 114, 100, 101, 0, 1, 115, 101, 105, 2, 97, 97, 110, 0, 1, 115, 114,
+			101, 2, 101, 101, 114, 32, 0, 1, 116, 0, 97, 103, 103, 97, 1, 107, 3, 58, 35, 136, 35, 0, 97, 114, 101, 1, 115, 101, 98, 3,
+			58, 115, 34, 13, 0, 121, 102, 101, 108, 1, 116, 21, 3, 58, 123, 83, 13, 55, 0, 4, 3, 84, 0, 1, 17, 67, 2, 101, 101, 114,
+			100, 101, 114, 0, 1, 17, 67, 2, 105, 116, 32, 0, 1, 17, 67, 2, 195, 170, 114, 101, 108, 100, 0, 1, 17, 67, 17, 65, 2, 97,
+			97, 105, 101, 114, 0, 1, 17, 67, 21, 2, 97, 97, 114, 100, 101, 32, 0, 1, 17, 67, 21, 2, 97, 114, 109, 0, 1, 17, 67, 21,
+			2, 101, 114, 107, 0, 1, 17, 67, 21, 2, 101, 195, 171, 0, 1, 17, 67, 21, 2, 105, 101, 108, 0, 1, 17, 67, 21, 2, 111, 17,
+			67, 25, 0, 1, 17, 67, 21, 2, 111, 111, 17, 67, 0, 1, 17, 67, 21, 2, 117, 114, 109, 0, 1, 17, 67, 21, 2, 121, 100, 0,
+			1, 17, 67, 111, 111, 0, 1, 21, 2, 97, 101, 110, 0, 1, 100, 17, 65, 17, 65, 0, 1, 100, 21, 2, 97, 97, 114, 0, 1, 100,
+			97, 0, 1, 100, 110, 0, 1, 100, 111, 17, 67, 0, 1, 100, 121, 0, 1, 107, 2, 17, 65, 110, 100, 0, 1, 107, 2, 101, 114, 17,
+			67, 0, 1, 107, 2, 111, 17, 65, 0, 1, 107, 21, 2, 97, 108, 109, 0, 1, 115, 2, 97, 116, 101, 114, 0, 1, 115, 2, 101, 101,
+			107, 0, 1, 115, 2, 105, 108, 0, 1, 115, 2, 111, 101, 100, 101, 0, 1, 115, 2, 111, 101, 108, 105, 110, 103, 0, 1, 115, 2, 111,
+			117, 0, 1, 115, 2, 114, 0, 1, 115, 2, 121, 102, 0, 1, 115, 10, 2, 101, 101, 102, 115, 0, 1, 115, 17, 65, 17, 65, 2, 101,
+			110, 107, 0, 1, 115, 21, 2, 17, 65, 110, 32, 0, 1, 115, 21, 2, 17, 65, 110, 100, 0, 1, 115, 21, 2, 97, 97, 110, 0, 1,
+			115, 21, 2, 97, 108, 0, 1, 115, 21, 2, 97, 110, 103, 32, 0, 1, 115, 21, 2, 97, 110, 103, 101, 32, 0, 1, 115, 21, 2, 101,
+			110, 110, 0, 1, 115, 97, 97, 108, 112, 2, 101, 114, 17, 67, 0, 1, 115, 97, 118, 0, 1, 115, 105, 101, 108, 118, 0, 1, 115, 105,
+			109, 0, 1, 115, 107, 108, 111, 118, 0, 1, 115, 107, 121, 108, 2, 97, 97, 17, 67, 0, 1, 115, 110, 101, 0, 1, 115, 111, 108, 0,
+			1, 115, 114, 101, 0, 1, 116, 2, 97, 97, 114, 0, 1, 116, 2, 97, 116, 0, 1, 116, 17, 65, 11, 0, 1, 116, 21, 2, 97, 110,
+			100, 0, 1, 116, 21, 2, 105, 101, 0, 1, 116, 21, 2, 121, 0, 1, 116, 101, 111, 0, 1, 116, 105, 0, 1, 116, 110, 2, 17, 65,
+			0, 1, 116, 114, 97, 119, 115, 0, 1, 116, 117, 17, 67, 0, 1, 116, 117, 111, 0, 2, 101, 115, 101, 32, 0, 2, 121, 115, 0, 97,
+			116, 2, 119, 111, 110, 100, 3, 84, 2, 35, 47, 0, 4, 97, 110, 2, 115, 116, 97, 108, 116, 3, 84, 2, 35, 50, 0, 97, 110, 2,
+			116, 114, 111, 117, 105, 103, 0, 97, 110, 111, 114, 100, 101, 108, 105, 2, 107, 3, 84, 2, 35, 50, 10, 110, 34, 72, 13, 55, 13, 0,
+			97, 108, 2, 107, 117, 114, 101, 3, 84, 2, 35, 55, 0, 97, 110, 107, 101, 108, 2, 109, 111, 101, 100, 3, 84, 2, 35, 68, 49, 13,
+			55, 0, 111, 101, 2, 115, 116, 121, 110, 3, 84, 2, 40, 0, 111, 108, 2, 118, 105, 110, 3, 84, 2, 110, 55, 0, 97, 97, 114, 2,
+			110, 101, 101, 109, 98, 97, 3, 84, 2, 115, 34, 0, 121, 115, 103, 101, 2, 114, 105, 103, 3, 84, 2, 123, 89, 136, 116, 0, 195, 170,
+			114, 101, 108, 100, 8, 2, 21, 14, 128, 132, 134, 3, 84, 6, 113, 34, 13, 55, 47, 10, 0, 97, 97, 114, 100, 105, 103, 1, 10, 3,
+			84, 6, 115, 34, 72, 13, 136, 0, 97, 110, 8, 2, 17, 65, 14, 128, 132, 131, 3, 84, 7, 35, 50, 10, 0, 105, 108, 108, 101, 2,
+			109, 105, 3, 84, 13, 55, 13, 0, 105, 108, 104, 101, 108, 2, 109, 105, 3, 84, 13, 55, 107, 2, 112, 55, 0, 105, 110, 107, 101, 2,
+			108, 105, 101, 114, 3, 84, 13, 68, 49, 13, 55, 0, 105, 115, 112, 101, 108, 2, 116, 117, 3, 84, 13, 89, 48, 13, 55, 0, 114, 101,
+			101, 100, 2, 97, 97, 114, 100, 105, 103, 3, 84, 34, 2, 116, 47, 10, 0, 114, 101, 101, 100, 2, 97, 3, 84, 34, 116, 47, 10, 0,
+			4, 97, 97, 114, 100, 101, 101, 114, 3, 84, 35, 34, 72, 6, 116, 34, 0, 97, 97, 114, 100, 101, 114, 2, 21, 0, 97, 110, 103, 101,
+			2, 100, 114, 97, 103, 3, 84, 35, 50, 136, 13, 0, 97, 115, 1, 115, 21, 2, 25, 3, 84, 35, 89, 0, 97, 115, 97, 103, 2, 116,
+			105, 103, 3, 84, 35, 89, 10, 4, 35, 136, 0, 97, 103, 1, 17, 67, 2, 25, 3, 84, 35, 136, 0, 105, 107, 105, 110, 103, 3, 84,
+			37, 49, 37, 68, 0, 111, 114, 99, 101, 115, 116, 101, 114, 3, 84, 40, 89, 47, 13, 34, 0, 101, 100, 2, 114, 101, 110, 3, 84, 108,
+			47, 0, 101, 114, 115, 116, 101, 1, 21, 2, 32, 3, 84, 109, 34, 89, 47, 13, 0, 4, 105, 110, 100, 8, 2, 97, 3, 84, 109, 50,
+			47, 10, 0, 105, 110, 100, 8, 2, 111, 0, 105, 108, 107, 101, 114, 3, 84, 109, 55, 49, 13, 34, 0, 105, 110, 107, 101, 108, 1, 17,
+			67, 3, 84, 109, 68, 49, 13, 55, 0, 105, 103, 8, 3, 84, 109, 136, 0, 111, 108, 8, 2, 17, 65, 3, 84, 110, 55, 10, 0, 111,
+			108, 107, 101, 3, 84, 110, 55, 49, 13, 0, 195, 170, 114, 101, 108, 2, 100, 106, 105, 101, 3, 84, 113, 34, 13, 55, 0, 195, 170, 114,
+			101, 108, 100, 119, 3, 84, 113, 34, 13, 55, 47, 84, 0, 195, 170, 114, 101, 108, 100, 101, 2, 32, 3, 84, 113, 34, 13, 55, 72, 13,
+			0, 4, 97, 1, 21, 2, 32, 24, 3, 84, 115, 0, 97, 2, 115, 112, 111, 114, 101, 0, 97, 2, 118, 111, 108, 0, 97, 2, 118, 114,
+			97, 103, 0, 97, 8, 2, 98, 111, 0, 97, 8, 2, 119, 121, 0, 97, 97, 114, 1, 107, 3, 84, 115, 34, 0, 4, 97, 114, 101, 1,
+			107, 21, 3, 84, 115, 34, 13, 0, 97, 114, 101, 1, 115, 21, 0, 97, 114, 101, 1, 116, 2, 25, 0, 97, 97, 114, 116, 115, 1, 17,
+			67, 3, 84, 115, 34, 47, 89, 0, 97, 116, 101, 114, 1, 107, 21, 3, 84, 115, 47, 13, 34, 0, 97, 112, 101, 110, 3, 84, 115, 48,
+			13, 50, 0, 111, 111, 114, 100, 2, 97, 3, 84, 117, 34, 47, 10, 0, 111, 111, 114, 100, 101, 3, 84, 117, 34, 72, 13, 0, 111, 110,
+			105, 110, 103, 1, 17, 67, 21, 3, 84, 117, 50, 13, 68, 0, 111, 111, 110, 103, 101, 119, 101, 115, 3, 84, 117, 50, 136, 13, 84, 108,
+			89, 0, 121, 107, 1, 115, 10, 3, 84, 123, 49, 0, 121, 110, 107, 101, 108, 2, 100, 101, 114, 3, 84, 123, 50, 49, 112, 55, 0, 101,
+			110, 115, 1, 107, 117, 108, 3, 84, 134, 50, 89, 0, 7, 6, 120, 0, 2, 120, 3, 0, 104, 111, 115, 97, 3, 49, 7, 131, 89, 35,
+			0, 3, 49, 89, 0, 101, 110, 2, 111, 3, 88, 2, 108, 50, 0, 7, 6, 121, 0, 1, 112, 112, 97, 107, 115, 2, 32, 3, 2, 123,
+			0, 1, 17, 67, 11, 2, 32, 3, 21, 0, 111, 114, 107, 3, 57, 6, 131, 49, 0, 3, 123, 0, 115, 116, 101, 114, 114, 101, 2, 108,
+			105, 110, 3, 123, 89, 47, 13, 34, 116, 0, 7, 6, 122, 0, 2, 122, 3, 0, 3, 88, 0, 97, 109, 98, 101, 115, 105, 3, 88, 2,
+			35, 65, 71, 116, 89, 2, 37, 0, 101, 98, 114, 97, 3, 88, 116, 71, 34, 35, 0, 1, 116, 3, 89, 0, 7, 6, 206, 0, 4, 172,
+			3, 6, 35, 55, 83, 35, 10, 0, 177, 0, 4, 173, 3, 6, 108, 48, 89, 37, 55, 110, 50, 10, 0, 181, 0, 191, 3, 6, 110, 65,
+			37, 49, 34, 110, 50, 10, 0, 4, 174, 3, 6, 116, 47, 35, 10, 0, 183, 0, 4, 175, 3, 37, 6, 117, 47, 35, 10, 0, 185, 0,
+			186, 3, 49, 6, 35, 48, 35, 10, 0, 190, 3, 49, 89, 6, 37, 10, 0, 189, 3, 50, 6, 118, 12, 10, 0, 187, 3, 55, 6, 35,
+			65, 71, 72, 35, 10, 0, 188, 3, 65, 6, 118, 12, 10, 0, 178, 3, 71, 6, 116, 47, 35, 10, 0, 180, 3, 72, 6, 112, 55, 47,
+			35, 10, 0, 179, 3, 81, 6, 35, 65, 35, 10, 0, 184, 3, 87, 6, 116, 47, 35, 10, 0, 182, 3, 88, 6, 116, 47, 35, 10, 0,
+			7, 6, 207, 0, 4, 133, 3, 6, 40, 48, 89, 37, 55, 110, 50, 10, 0, 141, 0, 140, 3, 6, 110, 65, 37, 49, 34, 110, 50, 10,
+			0, 129, 3, 34, 6, 117, 10, 0, 132, 3, 47, 6, 129, 10, 0, 128, 3, 48, 6, 37, 10, 0, 136, 3, 48, 89, 6, 37, 10, 0,
+			134, 3, 83, 6, 37, 10, 0, 4, 130, 3, 89, 6, 37, 81, 65, 35, 10, 0, 131, 0, 135, 3, 101, 6, 37, 10, 0, 4, 137, 3,
+			117, 65, 6, 116, 136, 35, 10, 0, 142, 0, 7, 6, 0, 33, 1, 19, 3, 0, 195, 175, 108, 108, 117, 2, 115, 116, 3, 2, 37, 55,
+			2, 111, 0, 39, 116, 106, 105, 101, 1, 21, 3, 2, 37, 80, 37, 0, 195, 175, 115, 111, 108, 3, 2, 37, 89, 2, 40, 55, 0, 195,
+			175, 2, 110, 17, 67, 3, 6, 109, 0, 195, 169, 107, 1, 25, 2, 32, 3, 6, 112, 49, 0, 195, 170, 114, 2, 32, 3, 7, 113, 34,
+			0, 195, 170, 114, 101, 2, 32, 3, 7, 113, 34, 13, 0, 195, 161, 1, 17, 67, 2, 17, 67, 17, 65, 3, 7, 115, 0, 33, 3, 9,
+			123, 47, 34, 40, 48, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 4, 195,
+			171, 2, 116, 101, 105, 116, 3, 13, 0, 195, 175, 2, 110, 115, 112, 0, 195, 175, 2, 110, 116, 0, 201, 153, 0, 195, 175, 110, 107, 97,
+			114, 110, 2, 17, 65, 3, 13, 68, 49, 2, 35, 34, 50, 0, 195, 177, 3, 21, 101, 115, 0, 195, 161, 1, 25, 2, 17, 67, 25, 3,
+			26, 35, 0, 195, 161, 108, 108, 101, 2, 25, 3, 26, 35, 55, 13, 0, 195, 179, 195, 169, 3, 26, 40, 0, 195, 169, 1, 25, 2, 17,
+			67, 25, 3, 26, 108, 0, 195, 179, 1, 25, 2, 17, 67, 25, 3, 26, 110, 0, 195, 186, 1, 25, 2, 17, 67, 25, 3, 26, 111, 0,
+			195, 169, 107, 2, 32, 3, 26, 112, 49, 0, 195, 161, 195, 161, 3, 26, 115, 0, 195, 169, 195, 169, 3, 26, 116, 0, 195, 179, 195, 179,
+			3, 26, 117, 0, 195, 179, 195, 186, 3, 26, 120, 0, 195, 189, 3, 26, 123, 0, 195, 179, 195, 179, 105, 3, 26, 125, 0, 195, 169, 195,
+			186, 3, 26, 128, 0, 195, 175, 103, 110, 111, 114, 101, 101, 114, 3, 37, 136, 50, 40, 34, 6, 116, 34, 0, 45, 8, 32, 2, 32, 15,
+			3, 65, 37, 50, 111, 89, 0, 36, 3, 72, 110, 55, 13, 34, 0, 39, 115, 1, 21, 2, 14, 128, 128, 130, 3, 89, 0, 195, 168, 8,
+			17, 67, 2, 32, 3, 108, 0, 195, 187, 101, 3, 111, 12, 13, 0, 195, 171, 1, 101, 103, 2, 114, 102, 3, 112, 0, 195, 170, 2, 114,
+			3, 113, 0, 195, 170, 101, 114, 1, 108, 3, 113, 13, 34, 0, 195, 170, 114, 1, 107, 115, 2, 12, 3, 113, 34, 0, 195, 170, 114, 101,
+			1, 98, 2, 32, 3, 113, 34, 13, 0, 195, 170, 3, 130, 0, 195, 180, 3, 131, 0, 195, 174, 101, 3, 132, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts1 = FileInMemory_createWithData (81297, reinterpret_cast<const char *> (&espeakdata_dicts1_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/af_dict", 
 			U"af");
-		my addItem_move (espeakdata_dicts1.move());
+		Collection_addItem (me.peek(), espeakdata_dicts1.transfer());
 
-		static unsigned char espeakdata_dicts2_data[3335] = {
-			0, 4, 0, 0, 149, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4,
-			95, 100, 112, 116, 10, 50, 6, 13, 110, 108, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 1, 37, 48, 13, 34, 89, 6, 13, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_dicts2_data[1351] = {
+			0, 4, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2772,6 +2755,39 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 201, 148, 0, 3, 109, 0, 7, 6, 201, 155, 0, 3, 108, 0, 7, 6, 97,
+			0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 7, 6, 100,
+			0, 3, 72, 0, 119, 3, 75, 0, 119, 2, 105, 3, 77, 0, 7, 6, 101, 0, 3, 36, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6,
+			103, 0, 121, 3, 72, 94, 0, 3, 81, 0, 7, 6, 104, 0, 4, 2, 105, 3, 99, 0, 121, 0, 119, 2, 105, 3, 99, 58, 0, 3,
+			107, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0, 3, 75, 0, 7, 6, 107, 0, 3, 49, 0, 121, 3, 78, 0, 7, 6, 108,
+			0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 4, 103, 2, 105, 3, 67, 0, 106, 0, 119, 2, 105,
+			0, 4, 110, 121, 2, 105, 3, 67, 12, 0, 121, 2, 105, 0, 2, 107, 3, 68, 0, 103, 3, 68, 12, 0, 119, 3, 68, 12, 58, 0,
+			7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 58, 0, 7, 6, 114, 0,
+			3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 2, 105, 3, 47, 99, 0, 7, 6, 117, 0, 3, 40, 0,
+			7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 3, 88, 0, 7, 6, 121, 0,
+			1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 109, 55, 35, 51, 0, 7, 0,
+			0};
+		autoFileInMemory espeakdata_dicts2 = FileInMemory_createWithData (1350, reinterpret_cast<const char *> (&espeakdata_dicts2_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ak_dict", 
+			U"ak");
+		Collection_addItem (me.peek(), espeakdata_dicts2.transfer());
+
+		static unsigned char espeakdata_dicts3_data[3335] = {
+			0, 4, 0, 0, 149, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 37, 48, 13, 34, 89, 6, 13, 50, 47, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 4,
+			16, 20, 10, 50, 6, 13, 110, 108, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 18, 3, 225, 141, 164, 72, 6, 108, 34, 108, 82, 108, 89, 13, 34, 13, 88, 0, 0, 20, 3, 225, 141, 167, 110, 6,
 			108, 57, 35, 112, 36, 65, 108, 55, 108, 49, 108, 47, 0, 0, 0, 0, 0, 18, 3, 225, 141, 163, 50, 6, 13, 110, 13, 55, 35, 89,
 			13, 34, 13, 88, 0, 0, 18, 3, 225, 141, 162, 19, 6, 35, 34, 35, 47, 108, 50, 13, 110, 108, 71, 0, 0, 0, 0, 0, 0, 0,
@@ -2873,6702 +2889,6098 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			32, 3, 83, 0, 136, 3, 83, 13, 0, 139, 3, 83, 35, 0, 140, 3, 83, 36, 0, 138, 3, 83, 37, 0, 142, 3, 83, 39, 0, 137,
 			3, 83, 40, 0, 154, 3, 83, 57, 13, 0, 143, 3, 83, 58, 35, 0, 141, 3, 83, 108, 0, 7, 6, 0, 36, 3, 72, 39, 55, 35,
 			34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts2 = FileInMemory_createWithData (3334, reinterpret_cast<const char *> (&espeakdata_dicts2_data), 
-			U"espeak-1.48.04-source/espeak-data/am_dict", 
+		autoFileInMemory espeakdata_dicts3 = FileInMemory_createWithData (3334, reinterpret_cast<const char *> (&espeakdata_dicts3_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/am_dict", 
 			U"am");
-		my addItem_move (espeakdata_dicts2.move());
-
-		static unsigned char espeakdata_dicts3_data[6718] = {
-			0, 4, 0, 0, 123, 21, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 12, 68, 5, 4, 12, 20, 6, 35, 48, 109, 55, 0,
-			5, 194, 5, 0, 13, 0, 13, 69, 37, 2, 15, 56, 80, 6, 117, 83, 39, 50, 0, 6, 195, 73, 48, 64, 13, 0, 0, 6, 65, 8,
-			71, 36, 0, 0, 0, 0, 0, 6, 65, 12, 87, 36, 0, 0, 0, 6, 195, 69, 81, 64, 72, 0, 0, 6, 65, 16, 72, 36, 0, 0,
-			0, 16, 70, 24, 16, 197, 8, 243, 203, 83, 6, 118, 89, 71, 40, 49, 0, 6, 195, 76, 147, 128, 72, 0, 10, 4, 95, 100, 112, 116,
-			49, 39, 50, 0, 0, 16, 65, 20, 37, 89, 48, 37, 49, 0, 81, 115, 112, 101, 97, 107, 32, 6, 195, 36, 225, 77, 13, 0, 0, 6,
-			195, 69, 82, 64, 72, 0, 0, 7, 65, 24, 109, 83, 36, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 7, 65,
-			32, 35, 76, 36, 0, 0, 25, 1, 33, 87, 35, 51, 51, 6, 35, 34, 15, 36, 49, 89, 49, 55, 35, 65, 35, 87, 57, 6, 39, 50,
-			0, 0, 0, 19, 1, 35, 89, 37, 67, 6, 35, 55, 86, 36, 50, 40, 65, 6, 36, 34, 39, 0, 0, 14, 65, 36, 6, 117, 48, 39,
-			72, 0, 81, 112, 111, 100, 32, 16, 65, 36, 6, 117, 83, 39, 50, 0, 81, 112, 104, 111, 110, 101, 32, 4, 193, 36, 76, 10, 1, 36,
-			72, 6, 39, 55, 35, 34, 0, 0, 6, 195, 37, 0, 193, 13, 6, 195, 37, 0, 192, 13, 5, 194, 37, 0, 13, 12, 1, 37, 48, 39,
-			34, 87, 57, 6, 109, 50, 0, 0, 6, 195, 80, 244, 128, 13, 6, 195, 5, 68, 192, 13, 13, 1, 38, 35, 65, 48, 36, 34, 89, 6,
-			35, 50, 0, 18, 65, 112, 6, 35, 15, 35, 49, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 0, 13, 65, 40, 4, 37, 15, 55,
-			6, 35, 34, 81, 35, 0, 0, 0, 6, 195, 21, 68, 192, 13, 7, 195, 64, 244, 128, 72, 28, 13, 1, 42, 35, 89, 47, 36, 34, 37,
-			89, 49, 39, 0, 0, 7, 1, 43, 65, 35, 89, 0, 0, 8, 197, 69, 80, 78, 16, 240, 72, 6, 65, 44, 49, 35, 0, 0, 0, 6,
-			195, 12, 21, 128, 13, 0, 9, 1, 47, 71, 35, 51, 51, 35, 0, 0, 8, 197, 8, 83, 12, 61, 48, 72, 7, 65, 48, 109, 55, 36,
-			0, 15, 4, 95, 100, 105, 97, 72, 57, 109, 34, 6, 36, 89, 37, 0, 0, 15, 1, 49, 40, 50, 15, 81, 34, 6, 114, 0, 81, 194,
-			176, 32, 20, 1, 49, 40, 50, 15, 81, 34, 6, 114, 15, 87, 6, 36, 0, 81, 194, 186, 99, 32, 0, 0, 0, 7, 196, 37, 64, 193,
-			80, 13, 7, 65, 52, 109, 65, 36, 0, 0, 0, 0, 0, 17, 70, 76, 241, 148, 92, 20, 133, 89, 6, 39, 83, 47, 58, 36, 34, 0,
-			17, 70, 32, 20, 132, 92, 20, 133, 101, 6, 35, 34, 72, 58, 36, 34, 0, 7, 65, 56, 109, 50, 36, 0, 0, 0, 0, 0, 4, 193,
-			60, 76, 0, 5, 194, 61, 0, 13, 9, 1, 61, 37, 100, 58, 35, 55, 0, 0, 14, 69, 33, 81, 82, 28, 16, 101, 40, 36, 34, 81,
-			35, 0, 0, 0, 10, 1, 64, 35, 51, 51, 39, 82, 35, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 40, 0,
-			0, 0, 6, 195, 36, 80, 192, 13, 0, 0, 8, 65, 72, 109, 51, 52, 36, 0, 0, 0, 0, 13, 4, 95, 100, 111, 116, 48, 6, 40,
-			50, 47, 39, 0, 0, 7, 65, 76, 109, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 5, 194, 4, 48, 13, 0, 0,
-			0, 5, 65, 84, 40, 0, 0, 6, 195, 85, 0, 192, 13, 0, 6, 195, 4, 82, 192, 13, 0, 0, 13, 65, 88, 4, 71, 36, 15, 71,
-			6, 35, 91, 35, 0, 0, 5, 194, 5, 48, 76, 0, 6, 195, 36, 227, 64, 13, 6, 195, 36, 208, 192, 13, 0, 6, 195, 4, 53, 80,
-			13, 16, 4, 95, 49, 77, 52, 40, 50, 15, 71, 37, 61, 6, 39, 50, 0, 0, 6, 195, 16, 196, 201, 13, 15, 1, 92, 49, 39, 50,
-			47, 34, 35, 82, 35, 51, 51, 35, 0, 14, 65, 92, 4, 71, 36, 15, 72, 6, 110, 48, 55, 36, 0, 0, 6, 195, 84, 144, 206, 13,
-			0, 6, 195, 37, 83, 128, 13, 6, 195, 36, 83, 192, 13, 0, 13, 67, 84, 226, 88, 57, 6, 40, 50, 37, 49, 89, 0, 0, 6, 65,
-			96, 91, 36, 0, 0, 16, 4, 95, 49, 77, 50, 40, 50, 15, 65, 37, 61, 6, 39, 50, 0, 0, 0, 0, 7, 65, 100, 57, 36, 0,
-			49, 6, 65, 100, 37, 0, 72, 0, 7, 196, 8, 83, 12, 4, 72, 0, 6, 195, 80, 244, 192, 72, 6, 195, 48, 244, 192, 72, 0, 0,
-			8, 65, 104, 87, 36, 47, 35, 0, 0, 7, 66, 5, 64, 35, 47, 0, 0, 6, 195, 12, 148, 192, 13, 6, 195, 64, 244, 192, 72, 0,
-			0, 0, 6, 195, 5, 68, 0, 13, 0, 0, 0, 0, 5, 194, 12, 16, 13, 0, 0, 0, 0, 0, 11, 4, 95, 48, 67, 111, 87, 36,
-			50, 47, 0, 0, 6, 195, 85, 49, 144, 13, 0, 0, 0, 6, 195, 36, 212, 192, 13, 0, 0, 19, 1, 124, 71, 6, 35, 51, 51, 35,
-			82, 36, 34, 47, 37, 49, 6, 35, 55, 0, 0, 0, 13, 4, 95, 51, 88, 111, 47, 34, 36, 50, 47, 117, 0, 13, 4, 95, 54, 48,
-			111, 89, 37, 91, 35, 50, 47, 0, 0, 12, 4, 95, 116, 108, 100, 47, 6, 37, 61, 35, 0, 0, 0, 0, 6, 195, 4, 224, 128, 13,
-			0, 0, 0, 6, 195, 4, 100, 0, 13, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 99, 0, 13, 0, 0, 6, 195, 5, 101, 0, 13,
-			0, 12, 4, 95, 49, 67, 48, 87, 57, 6, 109, 50, 0, 0, 0, 0, 0, 0, 6, 195, 8, 83, 0, 72, 0, 0, 6, 195, 81, 2,
-			64, 13, 0, 0, 0, 6, 195, 37, 48, 70, 13, 0, 12, 68, 32, 241, 5, 72, 101, 39, 86, 36, 34, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 19, 71, 52, 84, 211, 20, 225, 197, 72, 65, 6, 36, 89, 36, 50, 75, 36, 34, 0, 0, 0, 14, 65, 128, 87, 36, 15, 87,
-			36, 47, 57, 109, 61, 35, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 229, 128, 13, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 144,
-			13, 0, 0, 0, 0, 14, 4, 95, 109, 99, 110, 65, 35, 49, 34, 6, 110, 50, 0, 0, 11, 4, 95, 49, 67, 111, 87, 109, 50, 47,
-			0, 0, 6, 195, 76, 19, 148, 72, 0, 16, 70, 81, 114, 84, 80, 84, 128, 47, 58, 6, 37, 47, 36, 34, 0, 0, 0, 0, 0, 0,
-			0, 13, 4, 95, 55, 48, 111, 89, 109, 47, 35, 50, 47, 0, 0, 0, 0, 5, 194, 20, 32, 13, 6, 195, 69, 80, 78, 72, 0, 6,
-			195, 36, 224, 192, 13, 6, 195, 5, 1, 67, 13, 0, 0, 0, 7, 196, 77, 83, 77, 4, 13, 0, 0, 0, 0, 7, 196, 24, 16, 213,
-			4, 13, 0, 6, 195, 36, 225, 192, 13, 6, 195, 8, 209, 64, 13, 0, 0, 6, 195, 60, 49, 5, 13, 6, 195, 36, 49, 5, 13, 0,
-			0, 6, 195, 72, 81, 64, 13, 0, 0, 0, 5, 194, 8, 144, 72, 5, 194, 16, 80, 72, 0, 0, 0, 0, 8, 197, 12, 145, 77, 5,
-			64, 13, 6, 195, 4, 180, 0, 13, 0, 6, 195, 24, 210, 64, 13, 0, 15, 70, 32, 245, 13, 4, 147, 0, 101, 39, 47, 65, 118, 55,
-			0, 0, 0, 5, 194, 21, 48, 72, 0, 0, 0, 0, 0, 6, 195, 85, 97, 71, 13, 0, 0, 0, 7, 66, 12, 128, 76, 36, 0, 0,
-			0, 0, 0, 0, 13, 69, 12, 132, 143, 52, 80, 49, 34, 39, 65, 36, 0, 0, 0, 0, 12, 68, 76, 182, 80, 20, 36, 89, 49, 117,
-			48, 0, 0, 6, 195, 60, 53, 64, 13, 0, 0, 0, 0, 6, 195, 5, 101, 128, 13, 18, 65, 136, 6, 36, 15, 35, 49, 87, 109, 50,
-			47, 58, 6, 35, 86, 35, 0, 0, 0, 0, 0, 6, 195, 4, 209, 0, 13, 0, 0, 0, 15, 70, 4, 225, 18, 60, 145, 0, 35, 50,
-			72, 34, 120, 72, 0, 0, 14, 4, 95, 50, 67, 111, 72, 39, 89, 87, 109, 50, 47, 0, 0, 0, 0, 6, 195, 13, 50, 70, 13, 0,
-			0, 0, 0, 0, 0, 0, 13, 69, 21, 52, 5, 4, 176, 37, 89, 48, 37, 49, 0, 0, 0, 0, 6, 195, 24, 80, 128, 13, 6, 195,
-			20, 112, 128, 13, 6, 195, 17, 144, 64, 13, 0, 0, 0, 6, 195, 4, 228, 0, 13, 0, 6, 195, 64, 144, 128, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 24, 81, 0, 13, 0, 0, 0, 0, 0, 0, 12, 68, 32, 19, 1, 72, 101, 35, 55, 35, 34, 0,
-			0, 0, 0, 0, 6, 195, 4, 243, 128, 72, 0, 0, 6, 195, 13, 50, 67, 13, 0, 0, 0, 0, 0, 15, 70, 40, 16, 213, 105, 162,
-			64, 57, 35, 49, 40, 89, 37, 0, 0, 0, 0, 7, 196, 12, 84, 201, 16, 13, 10, 4, 95, 49, 49, 111, 39, 50, 87, 0, 0, 0,
-			6, 195, 5, 100, 192, 13, 0, 0, 0, 0, 6, 195, 21, 82, 65, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 51,
-			67, 111, 47, 34, 36, 89, 87, 109, 50, 47, 0, 11, 4, 95, 49, 51, 111, 47, 51, 36, 87, 0, 0, 6, 195, 8, 244, 0, 13, 0,
-			0, 0, 10, 67, 32, 144, 143, 101, 37, 82, 39, 0, 0, 0, 0, 0, 10, 4, 95, 49, 48, 111, 72, 109, 87, 0, 0, 0, 0, 0,
-			6, 195, 25, 83, 195, 13, 0, 0, 0, 0, 11, 4, 95, 49, 53, 111, 49, 37, 50, 87, 0, 0, 0, 6, 195, 20, 240, 192, 13, 0,
-			11, 67, 37, 3, 196, 6, 117, 48, 39, 72, 0, 0, 18, 65, 148, 6, 37, 15, 35, 49, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0,
-			0, 0, 6, 195, 72, 225, 64, 13, 6, 195, 65, 51, 197, 13, 10, 3, 226, 130, 172, 115, 34, 39, 89, 0, 0, 0, 10, 4, 95, 49,
-			50, 111, 72, 39, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 111, 103, 111, 49, 39, 72, 6, 36, 47, 35, 0, 0, 0,
-			0, 0, 0, 5, 194, 33, 80, 72, 0, 0, 0, 12, 69, 32, 240, 203, 21, 144, 101, 39, 49, 118, 0, 13, 4, 95, 49, 52, 111, 49,
-			35, 47, 39, 34, 87, 0, 0, 0, 0, 0, 0, 5, 194, 20, 192, 72, 0, 6, 195, 48, 148, 192, 72, 6, 195, 56, 84, 192, 72, 12,
-			3, 95, 50, 48, 71, 6, 37, 50, 47, 36, 0, 0, 0, 0, 0, 6, 195, 52, 244, 192, 72, 6, 195, 48, 20, 192, 72, 0, 0, 0,
-			12, 4, 95, 98, 114, 118, 71, 34, 6, 36, 40, 0, 0, 0, 6, 195, 8, 83, 12, 72, 0, 10, 4, 95, 49, 54, 111, 89, 109, 87,
-			0, 0, 20, 4, 95, 97, 99, 50, 72, 6, 110, 48, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 6, 195, 20, 17, 19,
-			13, 0, 5, 194, 36, 80, 72, 0, 0, 0, 6, 195, 20, 213, 0, 13, 0, 0, 0, 0, 0, 5, 194, 37, 80, 13, 11, 5, 95, 48,
-			77, 49, 111, 65, 37, 55, 0, 0, 7, 196, 52, 144, 143, 72, 13, 0, 0, 14, 4, 95, 55, 88, 111, 89, 109, 47, 35, 50, 47, 117,
-			0, 0, 0, 0, 0, 0, 6, 194, 20, 224, 72, 28, 0, 13, 3, 95, 51, 88, 47, 34, 6, 36, 50, 47, 35, 0, 0, 6, 195, 4,
-			84, 4, 13, 14, 3, 95, 48, 67, 87, 57, 6, 109, 50, 47, 39, 89, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 84, 129, 128, 13,
-			6, 195, 57, 148, 197, 13, 0, 13, 3, 95, 49, 67, 87, 57, 6, 109, 50, 47, 39, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 16,
-			72, 12, 4, 95, 35, 194, 170, 2, 6, 36, 50, 35, 0, 0, 0, 16, 3, 95, 50, 67, 72, 39, 87, 57, 6, 109, 50, 47, 39, 89,
-			0, 0, 9, 67, 40, 85, 0, 57, 36, 47, 0, 0, 0, 18, 65, 156, 6, 39, 15, 35, 49, 87, 109, 50, 47, 58, 6, 35, 86, 35,
-			0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 39, 50, 87, 36, 0, 0, 11, 3, 95, 49, 48, 72, 57, 6, 36, 87, 0, 0, 18, 3,
-			95, 51, 67, 47, 34, 36, 89, 87, 57, 6, 109, 50, 47, 39, 89, 0, 12, 3, 95, 49, 51, 47, 34, 6, 36, 87, 36, 0, 0, 11,
-			3, 95, 49, 50, 72, 6, 39, 87, 36, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37, 50, 87, 36, 0, 0, 14, 3, 95, 49, 52, 49,
-			35, 47, 6, 39, 34, 87, 36, 0, 0, 0, 0, 12, 4, 95, 35, 194, 186, 2, 6, 36, 50, 39, 0, 0, 14, 3, 95, 55, 88, 89,
-			36, 47, 6, 35, 50, 47, 35, 0, 0, 0, 0, 0, 0, 12, 68, 32, 19, 13, 4, 101, 35, 55, 65, 35, 0, 14, 4, 95, 49, 111,
-			120, 48, 34, 37, 65, 6, 109, 34, 0, 0, 0, 0, 6, 195, 37, 21, 65, 13, 0, 0, 0, 0, 6, 195, 8, 37, 129, 13, 15, 4,
-			95, 97, 99, 117, 35, 49, 87, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 10, 3, 95, 49, 88, 72, 4, 36, 87, 0, 0, 16, 3,
-			95, 54, 67, 89, 118, 87, 57, 6, 109, 50, 47, 39, 89, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 88, 71, 4, 37, 50,
-			47, 0, 0, 19, 3, 95, 55, 67, 89, 57, 109, 47, 36, 87, 57, 6, 109, 50, 47, 39, 89, 0, 0, 6, 195, 65, 53, 67, 13, 0,
-			0, 0, 0, 6, 195, 48, 245, 3, 13, 0, 0, 6, 195, 60, 80, 64, 13, 0, 19, 3, 95, 56, 67, 81, 58, 37, 47, 39, 87, 57,
-			6, 109, 50, 47, 39, 89, 0, 0, 0, 0, 0, 6, 131, 105, 110, 51, 13, 10, 3, 95, 53, 111, 87, 37, 50, 49, 0, 14, 3, 95,
-			63, 63, 89, 37, 65, 71, 6, 110, 55, 39, 0, 0, 0, 0, 6, 195, 64, 49, 64, 13, 15, 3, 95, 52, 88, 49, 58, 35, 34, 6,
-			35, 50, 47, 35, 0, 0, 17, 3, 95, 57, 67, 50, 39, 58, 87, 57, 6, 109, 50, 47, 39, 89, 0, 0, 0, 0, 9, 67, 48, 149,
-			133, 55, 117, 82, 0, 6, 195, 85, 1, 128, 13, 6, 195, 12, 81, 64, 13, 0, 0, 0, 5, 194, 48, 80, 72, 0, 6, 195, 76, 210,
-			64, 13, 16, 3, 95, 53, 88, 87, 37, 50, 49, 58, 6, 35, 50, 47, 35, 0, 0, 0, 14, 4, 95, 114, 110, 103, 35, 50, 6, 37,
-			36, 61, 39, 0, 0, 0, 0, 9, 3, 95, 55, 111, 89, 109, 47, 0, 0, 0, 0, 14, 3, 95, 54, 88, 89, 37, 91, 6, 35, 50,
-			47, 35, 0, 0, 0, 0, 0, 6, 195, 85, 3, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 95, 57, 111, 50, 111, 0,
-			14, 4, 95, 50, 111, 120, 89, 36, 100, 6, 40, 50, 72, 0, 0, 8, 197, 12, 84, 25, 52, 80, 13, 0, 6, 195, 21, 4, 214, 13,
-			0, 15, 3, 95, 56, 88, 81, 58, 37, 47, 6, 35, 50, 47, 35, 0, 0, 0, 0, 0, 6, 195, 85, 5, 128, 13, 0, 0, 6, 195,
-			8, 83, 19, 72, 0, 5, 194, 52, 80, 72, 0, 14, 3, 95, 57, 88, 50, 39, 82, 6, 35, 50, 47, 35, 0, 0, 0, 14, 4, 95,
-			54, 67, 111, 89, 118, 89, 87, 109, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 49, 88, 111, 72, 36, 87, 37, 0,
-			14, 4, 95, 52, 48, 111, 49, 58, 35, 34, 35, 50, 47, 0, 0, 0, 0, 11, 3, 95, 52, 111, 49, 58, 35, 47, 34, 0, 18, 65,
-			168, 6, 40, 15, 35, 49, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 13, 4, 95, 115, 116, 107, 71, 6, 35, 51, 52, 35, 0,
-			0, 0, 0, 6, 195, 84, 144, 128, 13, 0, 0, 0, 0, 14, 69, 28, 243, 199, 48, 80, 81, 6, 40, 81, 109, 55, 0, 6, 195, 84,
-			16, 128, 13, 0, 0, 0, 0, 6, 195, 65, 49, 64, 13, 0, 0, 0, 0, 6, 195, 81, 49, 64, 13, 0, 0, 0, 5, 194, 64, 16,
-			72, 5, 194, 48, 144, 72, 5, 194, 56, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 61, 48, 72, 5, 194, 61, 48, 76, 14,
-			65, 172, 4, 40, 86, 57, 109, 34, 6, 109, 89, 37, 0, 19, 4, 95, 99, 105, 114, 87, 37, 34, 49, 40, 65, 83, 55, 6, 36, 91,
-			39, 0, 0, 0, 14, 4, 95, 48, 77, 52, 71, 37, 61, 6, 39, 50, 89, 0, 0, 0, 10, 3, 95, 56, 111, 81, 58, 37, 47, 0,
-			14, 4, 95, 48, 77, 50, 65, 37, 61, 6, 39, 50, 89, 0, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 6,
-			195, 8, 244, 22, 13, 0, 0, 0, 0, 0, 6, 195, 85, 4, 192, 13, 0, 14, 4, 95, 51, 111, 120, 47, 109, 34, 87, 6, 109, 34,
-			0, 0, 0, 0, 6, 195, 5, 21, 64, 13, 6, 195, 65, 81, 83, 72, 16, 4, 95, 108, 105, 103, 55, 37, 100, 35, 86, 6, 40, 34,
-			35, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 72, 0, 15, 4, 95, 55, 67, 111, 89, 57, 109, 47, 87, 109, 50, 47, 0,
-			0, 0, 8, 197, 8, 83, 12, 5, 48, 72, 0, 0, 6, 195, 52, 149, 0, 13, 0, 14, 70, 92, 128, 84, 76, 20, 16, 58, 35, 89,
-			35, 48, 0, 0, 0, 0, 12, 4, 95, 50, 88, 111, 71, 37, 50, 47, 37, 0, 15, 4, 95, 53, 48, 111, 87, 37, 50, 49, 58, 35,
-			50, 47, 0, 0, 0, 7, 196, 24, 147, 149, 48, 13, 0, 0, 0, 0, 0, 9, 66, 48, 192, 6, 109, 61, 36, 0, 0, 6, 195, 64,
-			64, 64, 13, 0, 0, 0, 0, 6, 195, 76, 80, 192, 13, 6, 195, 60, 208, 192, 13, 0, 0, 0, 0, 6, 195, 64, 65, 64, 13, 6,
-			195, 12, 225, 64, 13, 0, 0, 0, 0, 6, 195, 60, 209, 192, 13, 0, 14, 4, 95, 99, 101, 100, 87, 36, 86, 6, 37, 61, 35, 0,
-			0, 0, 5, 194, 44, 240, 13, 5, 194, 56, 144, 72, 5, 194, 72, 16, 72, 0, 6, 195, 84, 162, 64, 13, 6, 195, 64, 66, 64, 13,
-			6, 195, 12, 226, 64, 13, 6, 195, 36, 34, 64, 72, 0, 6, 195, 28, 21, 20, 13, 0, 0, 0, 0, 0, 0, 7, 66, 57, 144, 67,
-			36, 0, 0, 6, 195, 36, 35, 64, 13, 0, 16, 4, 95, 99, 97, 112, 65, 6, 35, 98, 40, 89, 49, 55, 35, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 195, 52, 148, 192, 72, 6, 195, 72, 244, 192, 72, 0, 0, 0, 0, 6, 195, 60, 212, 192, 13, 6, 195, 88, 244, 192,
-			72, 6, 195, 56, 244, 192, 72, 0, 0, 0, 0, 7, 196, 69, 82, 69, 56, 72, 20, 4, 95, 100, 97, 99, 72, 6, 110, 48, 55, 36,
-			15, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 0, 6, 195, 84, 21, 192, 13, 0, 0, 6, 195, 36, 48, 65, 13, 0, 5, 194, 48,
-			240, 72, 0, 17, 4, 95, 56, 67, 111, 81, 58, 4, 118, 47, 39, 87, 109, 50, 47, 0, 0, 0, 0, 0, 0, 26, 3, 95, 194, 161,
-			40, 82, 34, 6, 37, 34, 15, 36, 49, 89, 49, 55, 35, 65, 35, 87, 57, 6, 39, 50, 0, 0, 0, 0, 6, 195, 72, 16, 195, 13,
-			0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 41, 81, 15, 57, 40, 86, 39, 0, 0, 0, 0, 0, 6, 195, 20, 32, 128, 13, 0, 15,
-			70, 52, 246, 137, 48, 192, 64, 65, 39, 87, 37, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 48, 65, 13, 0,
-			6, 195, 36, 16, 70, 13, 6, 194, 80, 16, 72, 28, 0, 6, 195, 64, 145, 0, 13, 0, 0, 0, 5, 131, 239, 187, 191, 0, 0, 0,
-			0, 27, 3, 95, 194, 191, 40, 82, 34, 6, 37, 34, 15, 37, 50, 47, 36, 34, 34, 39, 100, 35, 87, 57, 6, 39, 50, 0, 0, 6,
-			195, 52, 224, 67, 13, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 8, 20, 160, 4, 71, 35, 34, 89, 35, 0, 0, 6, 195, 20, 17,
-			68, 13, 0, 0, 6, 195, 60, 196, 0, 13, 13, 4, 95, 103, 114, 118, 81, 34, 6, 37, 109, 40, 0, 0, 6, 195, 77, 84, 192, 72,
-			0, 0, 0, 0, 6, 195, 85, 1, 0, 13, 0, 0, 15, 67, 57, 97, 1, 36, 50, 36, 71, 36, 72, 36, 6, 35, 0, 0, 0, 0,
-			0, 6, 195, 60, 145, 65, 13, 0, 5, 194, 84, 16, 13, 5, 194, 76, 80, 72, 0, 14, 4, 95, 57, 67, 111, 50, 58, 115, 87, 109,
-			50, 47, 0, 0, 7, 196, 8, 83, 12, 76, 72, 0, 11, 2, 194, 163, 55, 37, 82, 34, 35, 89, 0, 0, 0, 0, 6, 195, 84, 147,
-			80, 13, 0, 0, 5, 194, 77, 80, 72, 0, 15, 4, 95, 52, 88, 111, 49, 58, 35, 34, 35, 50, 47, 117, 0, 0, 22, 2, 194, 170,
-			39, 34, 86, 37, 50, 6, 35, 55, 15, 83, 36, 65, 36, 50, 6, 37, 50, 0, 0, 0, 0, 0, 0, 7, 196, 48, 147, 149, 96, 65,
-			6, 195, 64, 115, 213, 13, 0, 5, 194, 60, 224, 72, 0, 0, 0, 0, 9, 2, 194, 176, 81, 34, 114, 89, 0, 0, 0, 0, 6, 195,
-			85, 35, 0, 13, 0, 0, 0, 23, 2, 194, 186, 39, 34, 86, 37, 50, 6, 35, 55, 15, 65, 35, 89, 49, 40, 55, 6, 37, 50, 0,
-			0, 0, 0, 6, 195, 60, 225, 192, 13, 8, 2, 195, 177, 109, 67, 36, 0, 0, 0, 22, 73, 80, 133, 78, 16, 84, 130, 37, 33, 0,
-			87, 35, 50, 72, 36, 34, 71, 37, 34, 72, 0, 20, 3, 194, 186, 102, 81, 34, 6, 114, 89, 15, 83, 6, 35, 34, 109, 50, 101, 118,
-			0, 0, 5, 194, 80, 80, 72, 0, 0, 0, 6, 195, 4, 80, 201, 13, 0, 22, 3, 194, 186, 99, 81, 34, 6, 114, 89, 15, 87, 36,
-			50, 47, 37, 81, 34, 6, 114, 89, 0, 0, 0, 0, 0, 5, 194, 81, 80, 72, 0, 6, 195, 72, 97, 67, 13, 6, 195, 16, 241, 195,
-			13, 6, 195, 4, 51, 64, 13, 0, 0, 0, 19, 3, 194, 186, 107, 81, 34, 6, 114, 89, 15, 49, 6, 36, 55, 82, 37, 50, 0, 0,
-			0, 0, 6, 195, 84, 67, 0, 13, 0, 0, 6, 195, 4, 36, 192, 13, 0, 0, 0, 0, 14, 69, 33, 81, 82, 104, 16, 101, 40, 36,
-			34, 87, 35, 0, 0, 0, 0, 0, 8, 197, 64, 244, 145, 84, 80, 72, 0, 0, 0, 0, 6, 195, 85, 37, 128, 13, 0, 0, 0, 5,
-			194, 84, 80, 13, 0, 0, 0, 0, 6, 195, 92, 20, 0, 13, 0, 0, 15, 69, 41, 83, 137, 61, 32, 57, 6, 40, 50, 37, 39, 34,
-			0, 0, 0, 0, 16, 4, 95, 53, 88, 111, 87, 37, 50, 49, 58, 35, 50, 47, 117, 0, 14, 4, 95, 56, 48, 111, 81, 58, 37, 47,
-			35, 50, 47, 0, 0, 0, 6, 195, 76, 19, 85, 13, 0, 0, 0, 0, 0, 6, 195, 12, 243, 79, 72, 0, 0, 6, 195, 24, 144, 128,
-			13, 6, 195, 4, 48, 128, 13, 0, 0, 12, 69, 60, 97, 137, 12, 80, 39, 83, 37, 89, 0, 18, 70, 32, 243, 7, 61, 34, 79, 101,
-			39, 55, 81, 6, 39, 34, 37, 39, 0, 0, 0, 6, 195, 21, 32, 192, 13, 0, 0, 6, 195, 85, 36, 211, 13, 0, 5, 194, 85, 96,
-			13, 0, 6, 195, 81, 50, 129, 13, 6, 195, 72, 17, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 84, 117, 0, 13,
-			0, 0, 0, 9, 67, 12, 128, 84, 76, 35, 47, 0, 0, 0, 0, 6, 195, 12, 243, 128, 72, 0, 0, 0, 0, 6, 195, 89, 3, 192,
-			13, 0, 0, 23, 2, 95, 41, 87, 35, 51, 51, 6, 35, 34, 15, 48, 35, 34, 36, 50, 47, 6, 36, 89, 37, 0, 0, 22, 2, 95,
-			40, 40, 82, 34, 6, 37, 34, 15, 48, 35, 34, 36, 50, 47, 6, 36, 89, 37, 0, 0, 6, 195, 64, 84, 128, 72, 0, 0, 10, 2,
-			95, 45, 81, 57, 6, 39, 50, 0, 0, 0, 6, 195, 21, 36, 192, 72, 10, 2, 95, 51, 47, 34, 6, 36, 89, 0, 0, 7, 196, 92,
-			149, 19, 4, 13, 7, 196, 24, 20, 1, 20, 13, 9, 2, 95, 50, 72, 6, 39, 89, 0, 0, 8, 2, 95, 49, 6, 40, 50, 0, 0,
-			10, 2, 95, 48, 87, 6, 36, 34, 39, 0, 0, 6, 195, 36, 53, 128, 13, 10, 2, 95, 55, 89, 57, 6, 109, 47, 0, 0, 9, 2,
-			95, 54, 89, 6, 118, 89, 0, 0, 11, 2, 95, 53, 87, 6, 37, 50, 49, 39, 0, 0, 12, 2, 95, 52, 49, 58, 6, 35, 47, 34,
-			39, 0, 0, 6, 195, 12, 83, 197, 13, 0, 0, 9, 2, 95, 57, 50, 58, 6, 115, 0, 0, 5, 194, 72, 240, 72, 11, 2, 95, 56,
-			81, 58, 6, 118, 47, 39, 0, 0, 27, 2, 95, 63, 87, 35, 51, 51, 6, 35, 34, 15, 37, 50, 47, 36, 34, 34, 39, 100, 35, 87,
-			57, 6, 39, 50, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 54, 88, 111, 89, 37, 91, 35, 50, 47, 117, 0, 13, 4, 95, 57, 48,
-			111, 50, 39, 82, 35, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 144, 210, 13, 0, 6, 195, 72, 32, 64, 13,
-			6, 195, 64, 80, 192, 13, 0, 0, 0, 6, 195, 16, 241, 214, 13, 0, 6, 195, 85, 48, 128, 13, 6, 195, 56, 32, 64, 13, 0, 0,
-			0, 5, 194, 85, 160, 13, 0, 0, 0, 6, 195, 20, 81, 83, 13, 0, 0, 18, 2, 95, 91, 40, 82, 34, 6, 37, 34, 15, 100, 35,
-			83, 6, 36, 47, 0, 0, 6, 195, 88, 146, 0, 13, 0, 6, 195, 76, 241, 0, 13, 0, 0, 6, 195, 16, 226, 64, 13, 0, 0, 19,
-			2, 95, 93, 87, 35, 51, 51, 6, 35, 34, 15, 100, 35, 83, 6, 36, 47, 0, 0, 0, 6, 195, 24, 34, 64, 13, 0, 0, 0, 9,
-			67, 40, 22, 154, 57, 35, 89, 0, 0, 0, 0, 0, 12, 68, 8, 19, 138, 60, 82, 35, 50, 57, 39, 0, 0, 6, 195, 24, 19, 192,
-			13, 0, 0, 0, 0, 6, 195, 76, 244, 192, 13, 6, 195, 4, 52, 192, 13, 6, 195, 72, 20, 192, 72, 0, 0, 0, 0, 6, 195, 48,
-			84, 192, 72, 0, 0, 13, 4, 95, 104, 97, 99, 49, 35, 34, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 16, 2, 95, 123, 40, 82,
-			34, 6, 37, 34, 15, 49, 55, 6, 114, 0, 0, 0, 6, 195, 84, 209, 0, 13, 7, 2, 95, 121, 57, 36, 0, 0, 5, 194, 84, 208,
-			13, 5, 194, 100, 80, 72, 0, 0, 0, 6, 195, 12, 51, 207, 13, 17, 2, 95, 125, 87, 35, 51, 51, 6, 35, 34, 15, 49, 55, 6,
-			114, 0, 0, 6, 195, 84, 212, 0, 13, 0, 17, 70, 24, 148, 133, 24, 246, 0, 83, 6, 117, 34, 83, 39, 49, 89, 0, 0, 0, 10,
-			5, 95, 48, 97, 110, 100, 2, 37, 0, 0, 0, 0, 0, 11, 4, 95, 50, 48, 111, 71, 37, 50, 47, 0, 0, 0, 0, 0, 23, 73,
-			16, 84, 197, 57, 145, 82, 52, 20, 128, 86, 36, 89, 36, 50, 57, 109, 34, 65, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 15, 4, 95, 35, 51, 50, 109, 89, 48, 6, 35, 87, 57, 39, 0, 0, 6, 195, 81, 97, 64, 13, 0, 0, 0, 0,
-			12, 68, 32, 244, 1, 72, 101, 39, 48, 35, 34, 0, 0, 17, 70, 92, 147, 132, 61, 116, 192, 58, 6, 37, 50, 72, 39, 58, 89, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 195, 128, 13, 6, 195, 4, 67, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 65,
-			84, 192, 72, 0, 7, 196, 16, 112, 73, 4, 13, 0, 0, 0, 6, 195, 85, 52, 192, 13, 6, 195, 81, 84, 192, 72, 0, 0, 0, 0,
-			6, 195, 73, 69, 133, 13, 0, 0, 0, 0, 10, 5, 95, 120, 35, 194, 170, 2, 35, 0, 0, 7, 196, 12, 145, 21, 36, 13, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 56, 88, 111, 81, 58, 37, 47, 35, 50, 47, 117, 0, 0, 0, 0, 0, 12, 4, 95, 51,
-			48, 111, 47, 34, 36, 50, 47, 0, 0, 0, 10, 5, 95, 120, 35, 194, 186, 2, 39, 0, 0, 0, 0, 0, 6, 195, 64, 112, 64, 13,
-			6, 195, 4, 80, 64, 13, 0, 0, 0, 0, 6, 195, 84, 64, 192, 13, 0, 0, 0, 0, 6, 195, 64, 113, 64, 13, 6, 195, 36, 81,
-			64, 13, 6, 195, 8, 49, 64, 13, 0, 0, 0, 0, 6, 195, 84, 65, 192, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 24, 50,
-			64, 13, 6, 195, 20, 82, 64, 13, 0, 0, 6, 195, 12, 37, 67, 13, 0, 0, 0, 0, 6, 195, 12, 53, 67, 13, 0, 0, 6, 195,
-			84, 83, 64, 13, 0, 0, 0, 0, 6, 195, 20, 196, 192, 72, 0, 0, 0, 0, 0, 0, 14, 69, 32, 20, 131, 36, 16, 101, 35, 34,
-			87, 57, 35, 0, 0, 13, 68, 32, 243, 9, 60, 101, 6, 39, 55, 37, 39, 0, 0, 6, 195, 37, 69, 128, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 64, 84, 13, 0, 14, 4, 95, 57, 88, 111, 50, 39, 82, 35, 50, 47, 117, 0, 0,
-			0, 0, 6, 195, 4, 68, 204, 13, 0, 6, 18, 66, 108, 0, 114, 0, 121, 0, 7, 6, 18, 68, 102, 0, 104, 0, 106, 0, 115, 0,
-			121, 0, 122, 0, 114, 0, 7, 6, 18, 69, 98, 0, 118, 0, 102, 0, 112, 0, 7, 6, 18, 70, 103, 0, 107, 0, 7, 6, 18, 71,
-			97, 0, 101, 0, 111, 0, 7, 6, 195, 167, 0, 3, 87, 0, 7, 6, 195, 177, 0, 3, 67, 0, 7, 6, 97, 0, 39, 8, 3, 2,
-			35, 0, 117, 2, 29, 3, 6, 114, 0, 4, 105, 2, 29, 3, 6, 117, 0, 121, 2, 29, 0, 3, 35, 0, 105, 120, 3, 35, 91, 0,
-			117, 3, 114, 0, 4, 105, 3, 117, 0, 121, 2, 25, 0, 7, 6, 98, 0, 4, 3, 71, 0, 1, 109, 0, 1, 110, 0, 2, 105, 17,
-			65, 0, 2, 117, 17, 65, 0, 8, 0, 8, 2, 17, 65, 0, 4, 2, 17, 65, 3, 82, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0,
-			7, 6, 99, 0, 4, 3, 49, 0, 107, 0, 104, 3, 76, 0, 2, 17, 71, 3, 87, 0, 7, 6, 100, 0, 1, 110, 2, 32, 3, 8,
-			0, 4, 3, 72, 0, 1, 108, 0, 1, 109, 0, 1, 110, 0, 1, 114, 0, 8, 0, 8, 2, 17, 65, 0, 39, 8, 2, 17, 65, 14,
-			128, 132, 130, 0, 101, 39, 8, 3, 72, 2, 36, 0, 4, 2, 17, 65, 3, 86, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 7, 6,
-			101, 0, 110, 116, 97, 39, 8, 3, 4, 36, 50, 47, 2, 35, 0, 117, 2, 29, 3, 6, 115, 0, 4, 105, 2, 29, 3, 6, 118, 0,
-			121, 2, 29, 0, 3, 36, 0, 110, 116, 39, 8, 2, 17, 65, 14, 128, 132, 132, 3, 36, 50, 47, 0, 105, 120, 3, 36, 91, 0, 4,
-			1, 105, 3, 109, 0, 1, 117, 0, 1, 121, 0, 117, 3, 115, 0, 4, 105, 3, 118, 0, 121, 2, 25, 0, 4, 1, 32, 18, 71, 2,
-			17, 67, 17, 67, 3, 124, 0, 1, 104, 32, 18, 71, 2, 17, 67, 17, 67, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 110,
-			8, 2, 17, 65, 3, 50, 0, 4, 3, 81, 0, 1, 109, 0, 1, 110, 0, 104, 8, 2, 17, 65, 0, 117, 2, 101, 0, 117, 2, 105,
-			0, 117, 2, 195, 169, 0, 117, 2, 195, 173, 0, 4, 117, 2, 17, 65, 3, 81, 58, 0, 195, 188, 0, 4, 2, 17, 65, 3, 100, 0,
-			2, 18, 68, 0, 2, 99, 17, 71, 0, 2, 17, 71, 12, 3, 101, 0, 7, 6, 104, 0, 3, 0, 117, 2, 17, 71, 3, 81, 58, 0,
-			7, 6, 105, 0, 4, 3, 37, 0, 2, 117, 32, 0, 2, 17, 65, 3, 57, 0, 7, 6, 106, 0, 3, 101, 0, 7, 6, 107, 0, 3,
-			49, 0, 7, 6, 108, 0, 4, 3, 55, 0, 108, 2, 32, 0, 108, 3, 61, 0, 7, 6, 109, 0, 4, 3, 65, 0, 39, 8, 2, 17,
-			65, 14, 128, 132, 130, 0, 111, 39, 8, 3, 65, 2, 39, 0, 7, 6, 110, 0, 3, 50, 0, 4, 2, 18, 69, 3, 65, 0, 2, 32,
-			18, 69, 0, 121, 2, 17, 65, 3, 67, 0, 7, 6, 111, 0, 117, 2, 29, 3, 6, 39, 58, 0, 4, 105, 2, 29, 3, 6, 120, 0,
-			121, 2, 29, 0, 3, 39, 0, 117, 3, 39, 58, 0, 105, 120, 3, 39, 91, 0, 4, 1, 105, 3, 110, 0, 1, 117, 0, 1, 121, 0,
-			4, 105, 3, 120, 0, 121, 2, 25, 0, 7, 6, 112, 0, 4, 3, 48, 0, 39, 8, 2, 17, 65, 14, 128, 132, 130, 0, 97, 39, 8,
-			3, 48, 2, 35, 0, 101, 39, 8, 3, 48, 2, 36, 0, 115, 8, 3, 89, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 39, 17,
-			65, 0, 117, 2, 39, 104, 17, 65, 0, 117, 2, 101, 0, 117, 2, 105, 0, 117, 2, 195, 169, 0, 117, 2, 195, 173, 0, 4, 117, 2,
-			17, 65, 3, 49, 58, 0, 195, 188, 0, 7, 6, 114, 0, 1, 21, 2, 45, 3, 8, 0, 115, 2, 32, 3, 8, 89, 0, 4, 3, 34,
-			0, 1, 17, 65, 2, 17, 65, 0, 1, 17, 67, 2, 17, 65, 0, 2, 32, 0, 2, 116, 0, 4, 1, 108, 2, 17, 65, 3, 51, 0,
-			1, 109, 2, 17, 65, 0, 1, 110, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 8, 2, 17, 65, 0, 114, 3, 51, 52, 0, 7, 6,
-			115, 0, 8, 2, 17, 67, 21, 3, 2, 36, 89, 0, 4, 3, 89, 0, 1, 10, 2, 32, 14, 128, 128, 129, 0, 1, 32, 17, 65, 2,
-			17, 67, 0, 8, 2, 104, 17, 65, 0, 8, 2, 121, 0, 39, 8, 2, 17, 65, 14, 128, 132, 130, 0, 7, 6, 116, 0, 4, 1, 110,
-			2, 109, 3, 0, 8, 115, 111, 112, 2, 17, 67, 3, 0, 4, 1, 110, 2, 32, 3, 8, 0, 1, 115, 2, 32, 0, 4, 1, 97, 2,
-			32, 3, 25, 0, 1, 101, 117, 2, 32, 0, 1, 105, 101, 2, 32, 0, 1, 105, 117, 2, 32, 0, 1, 117, 2, 32, 0, 4, 3, 47,
-			0, 8, 115, 111, 112, 2, 104, 0, 39, 8, 2, 17, 65, 14, 128, 132, 130, 0, 97, 39, 8, 3, 47, 2, 35, 0, 111, 39, 8, 3,
-			47, 2, 39, 0, 122, 3, 87, 0, 7, 6, 117, 0, 4, 3, 40, 0, 1, 114, 2, 17, 65, 0, 2, 105, 0, 2, 117, 0, 8, 2,
-			117, 0, 4, 105, 120, 3, 40, 91, 0, 105, 120, 1, 114, 0, 2, 17, 65, 3, 58, 0, 4, 1, 17, 65, 2, 17, 71, 3, 81, 58,
-			0, 8, 2, 17, 65, 0, 8, 115, 101, 2, 17, 71, 0, 8, 115, 101, 100, 2, 17, 71, 0, 4, 8, 114, 105, 99, 2, 101, 108, 108,
-			3, 100, 58, 0, 8, 114, 105, 117, 113, 115, 101, 2, 101, 108, 0, 7, 6, 118, 0, 4, 3, 71, 0, 1, 109, 0, 1, 110, 0, 2,
-			105, 17, 65, 0, 2, 117, 17, 65, 0, 8, 0, 8, 2, 17, 65, 0, 4, 2, 17, 65, 3, 82, 0, 2, 18, 68, 0, 2, 99, 17,
-			71, 0, 7, 6, 119, 0, 3, 82, 0, 7, 6, 120, 0, 3, 49, 89, 0, 4, 1, 17, 67, 3, 91, 0, 1, 105, 0, 8, 0, 7,
-			6, 121, 0, 4, 1, 17, 67, 2, 17, 67, 3, 37, 0, 2, 32, 0, 3, 57, 0, 7, 6, 122, 0, 3, 87, 0, 7, 6, 0, 39,
-			3, 0, 195, 161, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0, 195, 173, 3, 7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 186, 3, 7,
-			40, 0, 4, 45, 1, 32, 15, 2, 32, 15, 3, 65, 6, 36, 50, 39, 89, 0, 45, 8, 32, 2, 32, 15, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts3 = FileInMemory_createWithData (6717, reinterpret_cast<const char *> (&espeakdata_dicts3_data), 
-			U"espeak-1.48.04-source/espeak-data/an_dict", 
-			U"an");
-		my addItem_move (espeakdata_dicts3.move());
+		Collection_addItem (me.peek(), espeakdata_dicts3.transfer());
 
-		static unsigned char espeakdata_dicts4_data[5018] = {
-			0, 4, 0, 0, 152, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4,
-			95, 100, 112, 116, 10, 72, 6, 121, 106, 6, 39, 65, 37, 49, 10, 0, 0, 0, 0, 0, 0, 13, 137, 224, 166, 149, 224, 167, 139, 224,
-			166, 164, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 137, 224, 166, 149, 224, 167, 139, 224, 166, 168, 72, 8, 9,
-			1, 36, 140, 121, 55, 35, 34, 0, 0, 13, 1, 37, 106, 6, 121, 47, 49, 6, 121, 34, 35, 0, 0, 0, 0, 0, 0, 0, 7, 1,
-			43, 57, 121, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 61, 106, 6, 121, 65,
-			35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 164, 224, 167, 139, 224,
-			166, 149, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137,
-			224, 166, 133, 224, 166, 165, 224, 166, 154, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 164, 224, 167, 139, 224, 166,
-			176, 72, 0, 0, 0, 0, 0, 0, 15, 9, 224, 166, 143, 224, 166, 159, 224, 166, 190, 148, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 22, 146, 224, 166, 149, 224, 167, 135, 224, 166, 164, 224, 166, 191, 224, 167, 159, 224, 166, 190, 72, 8, 0, 0, 0, 0, 0, 0,
-			14, 6, 224, 166, 161, 224, 166, 188, 72, 121, 36, 34, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 166, 164, 224,
-			167, 135, 224, 166, 164, 224, 166, 191, 224, 167, 159, 224, 166, 190, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 224,
-			166, 149, 224, 166, 191, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 51, 57, 6,
-			40, 50, 121, 76, 121, 55, 55, 6, 37, 91, 0, 11, 3, 95, 50, 49, 36, 49, 6, 40, 91, 0, 0, 14, 3, 95, 51, 56, 6, 128,
-			139, 47, 34, 6, 37, 91, 0, 10, 3, 95, 50, 48, 71, 6, 37, 91, 0, 0, 11, 3, 95, 50, 51, 47, 6, 36, 57, 91, 0, 0,
-			11, 3, 95, 50, 50, 71, 6, 35, 57, 91, 0, 0, 12, 3, 95, 50, 53, 48, 6, 130, 76, 37, 91, 0, 0, 13, 3, 95, 50, 52,
-			76, 6, 121, 71, 71, 37, 91, 0, 0, 13, 3, 95, 50, 55, 106, 6, 35, 47, 6, 35, 91, 0, 0, 14, 3, 95, 50, 54, 76, 107,
-			6, 35, 71, 71, 37, 91, 0, 0, 16, 3, 95, 51, 49, 6, 36, 49, 6, 121, 47, 34, 6, 37, 91, 0, 0, 11, 3, 95, 51, 48,
-			47, 34, 6, 37, 91, 0, 0, 14, 3, 95, 51, 51, 47, 6, 36, 47, 34, 6, 37, 91, 0, 0, 14, 3, 95, 51, 50, 71, 6, 121,
-			47, 34, 6, 37, 91, 0, 0, 15, 3, 95, 51, 53, 48, 6, 130, 57, 47, 34, 6, 37, 91, 0, 0, 15, 3, 95, 51, 52, 76, 6,
-			39, 58, 47, 34, 6, 37, 91, 0, 0, 16, 3, 95, 51, 55, 106, 6, 128, 37, 6, 47, 34, 6, 37, 91, 0, 0, 14, 3, 95, 51,
-			54, 149, 6, 121, 47, 34, 6, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224,
-			166, 149, 49, 121, 0, 15, 3, 95, 55, 57, 6, 40, 50, 121, 35, 6, 106, 6, 37, 0, 17, 3, 95, 54, 49, 6, 36, 49, 6, 106,
-			121, 6, 139, 139, 6, 37, 0, 0, 8, 3, 224, 166, 148, 39, 58, 0, 15, 3, 95, 55, 56, 6, 128, 139, 35, 47, 47, 6, 121, 34,
-			0, 9, 3, 95, 54, 48, 89, 118, 139, 0, 0, 16, 3, 224, 167, 159, 4, 39, 50, 47, 39, 89, 47, 36, 121, 57, 0, 8, 3, 224,
-			166, 151, 81, 121, 0, 11, 3, 95, 48, 67, 36, 6, 106, 6, 39, 0, 16, 3, 95, 54, 51, 47, 6, 36, 106, 121, 6, 139, 139, 6,
-			37, 0, 0, 8, 3, 224, 166, 150, 145, 121, 0, 16, 3, 95, 54, 50, 71, 6, 35, 106, 121, 6, 139, 139, 6, 37, 0, 0, 18, 3,
-			95, 54, 53, 48, 6, 39, 57, 6, 106, 121, 6, 139, 139, 6, 37, 0, 0, 9, 3, 224, 166, 144, 39, 57, 0, 76, 18, 3, 95, 54,
-			52, 76, 6, 39, 58, 6, 106, 121, 6, 139, 139, 6, 37, 0, 0, 9, 3, 224, 166, 147, 39, 0, 76, 28, 7, 3, 224, 166, 147, 39,
-			0, 14, 3, 95, 54, 55, 91, 118, 76, 121, 47, 6, 47, 37, 0, 0, 15, 3, 95, 54, 54, 91, 6, 36, 91, 121, 139, 139, 6, 37,
-			0, 0, 16, 3, 95, 55, 49, 113, 6, 145, 6, 121, 47, 47, 6, 121, 34, 0, 0, 14, 3, 95, 55, 48, 106, 6, 121, 47, 47, 6,
-			121, 34, 0, 0, 8, 3, 224, 166, 143, 36, 0, 76, 15, 3, 95, 55, 51, 47, 6, 37, 35, 47, 47, 6, 121, 34, 0, 0, 16, 3,
-			95, 55, 50, 71, 6, 35, 107, 35, 47, 47, 6, 121, 34, 0, 0, 14, 3, 224, 166, 137, 107, 34, 121, 91, 12, 39, 6, 40, 0, 17,
-			3, 95, 55, 53, 48, 6, 121, 106, 6, 35, 139, 47, 6, 121, 34, 0, 0, 14, 3, 224, 166, 136, 72, 6, 112, 34, 146, 39, 6, 37,
-			0, 16, 3, 95, 55, 52, 76, 6, 40, 107, 35, 47, 47, 6, 121, 34, 0, 0, 8, 3, 224, 166, 139, 34, 37, 0, 16, 3, 95, 55,
-			55, 91, 6, 35, 47, 35, 47, 47, 6, 121, 34, 0, 0, 14, 3, 224, 166, 138, 72, 6, 112, 34, 146, 39, 6, 40, 0, 16, 3, 95,
-			55, 54, 149, 6, 37, 57, 35, 47, 47, 6, 121, 34, 0, 0, 14, 3, 224, 167, 141, 107, 6, 121, 91, 39, 50, 47, 39, 0, 7, 3,
-			224, 166, 133, 121, 0, 13, 3, 95, 49, 57, 6, 40, 50, 6, 50, 37, 91, 0, 0, 12, 3, 224, 167, 140, 6, 39, 58, 49, 35, 34,
-			0, 12, 3, 95, 49, 56, 6, 35, 141, 35, 34, 121, 0, 0, 14, 3, 224, 166, 135, 107, 34, 121, 91, 12, 39, 6, 37, 0, 0, 7,
-			3, 224, 166, 134, 35, 0, 16, 3, 224, 167, 142, 49, 107, 4, 121, 50, 140, 39, 47, 6, 121, 0, 0, 18, 3, 224, 166, 129, 76, 6,
-			121, 50, 72, 34, 39, 71, 37, 50, 72, 40, 0, 0, 12, 3, 224, 167, 136, 6, 39, 57, 49, 35, 34, 0, 0, 14, 3, 224, 166, 131,
-			71, 6, 37, 91, 121, 34, 81, 39, 0, 11, 3, 224, 167, 139, 6, 39, 49, 35, 34, 0, 0, 14, 3, 224, 166, 130, 6, 121, 50, 40,
-			91, 91, 121, 34, 0, 0, 15, 3, 95, 50, 57, 6, 40, 50, 121, 47, 34, 6, 37, 91, 0, 12, 3, 95, 49, 49, 113, 146, 6, 118,
-			34, 39, 0, 0, 11, 3, 95, 50, 56, 6, 35, 141, 35, 91, 0, 9, 3, 95, 49, 48, 72, 13, 107, 0, 0, 11, 3, 224, 167, 135,
-			6, 36, 49, 35, 34, 0, 11, 3, 95, 49, 51, 47, 6, 36, 34, 121, 0, 0, 11, 3, 95, 49, 50, 71, 6, 35, 34, 121, 0, 0,
-			15, 3, 224, 167, 129, 72, 6, 112, 34, 146, 40, 49, 35, 34, 0, 13, 3, 95, 49, 53, 48, 6, 121, 50, 36, 34, 121, 0, 0, 15,
-			3, 224, 167, 128, 72, 6, 112, 34, 146, 37, 49, 35, 34, 0, 13, 3, 95, 49, 52, 149, 35, 40, 6, 72, 72, 121, 0, 0, 12, 3,
-			224, 167, 131, 34, 6, 37, 49, 35, 34, 0, 13, 3, 95, 49, 55, 106, 6, 121, 47, 36, 34, 121, 0, 0, 17, 3, 224, 167, 130, 107,
-			34, 121, 91, 12, 39, 6, 40, 49, 35, 34, 0, 11, 3, 95, 49, 54, 106, 6, 39, 55, 121, 0, 0, 0, 0, 18, 3, 224, 166, 183,
-			65, 4, 40, 138, 36, 50, 12, 39, 91, 12, 6, 121, 0, 0, 17, 3, 224, 166, 182, 47, 4, 35, 55, 36, 71, 39, 91, 12, 6, 121,
-			0, 0, 0, 0, 0, 8, 3, 224, 166, 178, 55, 121, 0, 0, 8, 3, 224, 166, 173, 137, 121, 0, 15, 3, 95, 52, 57, 6, 40, 50,
-			121, 48, 130, 76, 35, 91, 0, 0, 11, 3, 224, 165, 164, 72, 109, 66, 34, 37, 0, 8, 3, 224, 166, 172, 71, 121, 0, 16, 3, 95,
-			52, 56, 6, 128, 6, 76, 121, 55, 55, 6, 37, 91, 0, 0, 17, 3, 224, 166, 175, 4, 39, 50, 47, 39, 89, 47, 36, 75, 6, 121,
-			0, 0, 8, 3, 224, 166, 174, 65, 121, 0, 0, 8, 3, 224, 167, 177, 58, 121, 0, 0, 8, 3, 224, 167, 176, 34, 121, 0, 16, 3,
-			224, 166, 168, 72, 4, 39, 50, 47, 36, 50, 50, 6, 121, 0, 0, 8, 3, 224, 166, 171, 83, 121, 0, 0, 8, 3, 224, 166, 170, 48,
-			121, 0, 0, 8, 3, 224, 166, 165, 25, 121, 0, 14, 3, 95, 53, 57, 6, 40, 50, 121, 6, 106, 118, 139, 0, 16, 3, 95, 52, 49,
-			6, 36, 49, 76, 121, 55, 55, 6, 37, 91, 0, 9, 3, 95, 50, 97, 72, 6, 40, 0, 0, 8, 3, 224, 166, 164, 47, 121, 0, 14,
-			3, 95, 53, 56, 6, 35, 139, 35, 50, 50, 6, 39, 0, 13, 3, 95, 52, 48, 76, 121, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224,
-			166, 167, 138, 121, 0, 16, 3, 95, 52, 51, 47, 6, 36, 47, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 166, 72, 121, 0,
-			15, 3, 95, 52, 50, 71, 6, 37, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 161, 140, 121, 0, 17, 3, 95, 52, 53, 48,
-			6, 130, 57, 47, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 160, 141, 121, 0, 15, 3, 95, 52, 52, 76, 6, 39, 35, 55,
-			55, 6, 37, 91, 0, 0, 16, 3, 224, 166, 163, 65, 4, 39, 72, 138, 36, 66, 66, 6, 121, 0, 16, 3, 95, 52, 55, 106, 6, 35,
-			76, 121, 55, 55, 6, 37, 89, 0, 0, 8, 3, 224, 166, 162, 142, 121, 0, 17, 3, 95, 52, 54, 76, 6, 36, 76, 121, 6, 55, 55,
-			6, 37, 91, 0, 0, 8, 3, 224, 166, 157, 144, 121, 0, 19, 3, 95, 54, 57, 6, 40, 50, 121, 6, 106, 6, 121, 47, 47, 6, 121,
-			34, 0, 14, 3, 95, 53, 49, 113, 6, 49, 35, 50, 50, 6, 39, 0, 0, 8, 3, 224, 166, 156, 79, 121, 0, 15, 3, 95, 54, 56,
-			6, 128, 139, 91, 121, 139, 139, 6, 37, 0, 13, 3, 95, 53, 48, 48, 6, 130, 76, 6, 35, 91, 0, 0, 8, 3, 224, 166, 159, 139,
-			121, 0, 15, 3, 95, 53, 51, 47, 6, 36, 48, 35, 50, 50, 6, 39, 0, 0, 10, 3, 224, 166, 158, 6, 37, 68, 130, 0, 15, 3,
-			95, 53, 50, 71, 6, 35, 57, 35, 50, 50, 6, 39, 0, 0, 11, 3, 224, 166, 153, 6, 40, 68, 81, 130, 0, 16, 3, 95, 53, 53,
-			48, 6, 39, 50, 76, 35, 50, 50, 6, 39, 0, 0, 8, 3, 224, 166, 152, 146, 121, 0, 15, 3, 95, 53, 52, 76, 6, 40, 57, 35,
-			50, 50, 6, 39, 0, 0, 9, 3, 224, 166, 155, 76, 107, 121, 0, 15, 3, 95, 53, 55, 106, 6, 35, 47, 35, 50, 50, 6, 39, 0,
-			0, 8, 3, 224, 166, 154, 76, 121, 0, 15, 3, 95, 53, 54, 149, 6, 35, 48, 35, 50, 50, 6, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 17, 3, 95, 56, 57, 6, 40, 50, 121, 50, 121, 71, 71, 6, 39, 57, 0, 0, 15, 3, 95, 56, 56, 106, 6, 35, 47,
-			35, 6, 91, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 57, 57, 50, 6, 37, 34, 35, 50, 121, 71, 71, 6, 39, 57,
-			0, 14, 3, 95, 56, 49, 113, 6, 49, 35, 6, 106, 6, 37, 0, 9, 3, 95, 54, 97, 149, 6, 121, 0, 0, 17, 3, 95, 57, 56,
-			6, 128, 139, 35, 50, 121, 71, 71, 6, 39, 57, 0, 10, 3, 95, 56, 48, 118, 106, 6, 37, 0, 0, 15, 3, 95, 56, 51, 47, 6,
-			37, 34, 35, 6, 106, 6, 37, 0, 0, 15, 3, 95, 56, 50, 71, 6, 37, 34, 35, 6, 106, 6, 37, 0, 0, 15, 3, 95, 56, 53,
-			48, 6, 131, 76, 35, 6, 106, 6, 37, 0, 0, 15, 3, 95, 56, 52, 76, 6, 40, 34, 35, 6, 106, 6, 37, 0, 0, 14, 3, 95,
-			56, 55, 91, 6, 35, 47, 35, 91, 6, 37, 0, 0, 15, 3, 95, 56, 54, 149, 6, 37, 57, 35, 6, 106, 6, 37, 0, 0, 17, 3,
-			95, 57, 49, 113, 6, 49, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 12, 3, 224, 166, 188, 71, 6, 37, 50, 72, 40, 0, 13, 3,
-			95, 57, 48, 50, 121, 71, 71, 6, 39, 57, 0, 13, 3, 95, 54, 88, 89, 6, 35, 139, 139, 6, 37, 0, 0, 17, 3, 224, 166, 191,
-			107, 34, 121, 91, 12, 39, 6, 37, 49, 35, 34, 0, 18, 3, 95, 57, 51, 47, 6, 37, 34, 118, 50, 121, 71, 71, 6, 39, 57, 0,
-			0, 11, 3, 224, 166, 190, 6, 35, 49, 35, 34, 0, 19, 3, 95, 57, 50, 71, 6, 37, 34, 35, 6, 50, 121, 71, 71, 6, 39, 57,
-			0, 0, 8, 3, 224, 166, 185, 107, 121, 0, 18, 3, 95, 57, 53, 48, 6, 121, 76, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 17,
-			3, 224, 166, 184, 72, 4, 39, 50, 47, 36, 6, 106, 12, 6, 121, 0, 18, 3, 95, 57, 52, 76, 6, 40, 34, 35, 50, 121, 71, 71,
-			6, 39, 57, 0, 0, 18, 3, 95, 57, 55, 106, 6, 35, 47, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 18, 3, 95, 57, 54, 149,
-			6, 37, 57, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 57, 97, 50, 6, 121, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 52, 6, 121, 34,
-			71, 40, 72, 0, 0, 0, 11, 4, 95, 48, 77, 50, 55, 6, 35, 145, 0, 0, 12, 4, 95, 48, 77, 51, 49, 6, 39, 139, 37, 0,
-			0, 0, 13, 4, 95, 48, 77, 49, 107, 6, 35, 57, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 166, 134, 224, 166, 170, 224, 166, 168, 224, 166, 190, 224, 166, 149, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 166, 164, 224, 167, 159, 72, 0, 13, 137, 224, 166, 134,
-			224, 166, 176, 224, 167, 129, 72, 8, 0, 0, 0, 0, 0, 0, 15, 140, 224, 166, 134, 224, 166, 174, 224, 166, 190, 224, 166, 176, 72, 0,
-			9, 134, 224, 166, 184, 224, 166, 191, 72, 0, 0, 22, 146, 224, 166, 149, 224, 166, 191, 224, 166, 168, 224, 167, 141, 224, 166, 164, 224, 167,
-			129, 72, 8, 0, 0, 0, 0, 0, 18, 143, 224, 166, 164, 224, 167, 139, 224, 166, 174, 224, 166, 190, 224, 166, 149, 72, 0, 0, 0, 0,
-			0, 0, 0, 13, 137, 224, 166, 143, 224, 166, 176, 224, 166, 130, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 175, 224, 166, 166, 224, 166, 191, 8, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 134, 224, 166, 174, 224, 166, 175, 72, 0, 16, 140, 224, 166, 133, 224, 166, 165, 224, 166, 176, 224, 166, 190,
-			72, 8, 11, 6, 224, 166, 162, 224, 166, 188, 138, 36, 0, 0, 15, 140, 224, 166, 134, 224, 166, 170, 224, 166, 168, 224, 166, 191, 72, 0,
-			12, 137, 224, 166, 134, 224, 166, 174, 224, 166, 191, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 166, 164, 224, 167, 129, 224, 166, 174, 224, 166,
-			191, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 10, 2, 95, 51, 47, 6, 37, 50, 37, 0, 0, 9, 2, 95, 50, 72,
-			6, 40, 57, 0, 0, 8, 2, 95, 49, 6, 36, 49, 0, 0, 11, 2, 95, 48, 106, 6, 40, 50, 57, 121, 0, 0, 9, 2, 95, 55,
-			106, 6, 35, 47, 0, 0, 9, 2, 95, 54, 149, 6, 121, 57, 0, 0, 9, 2, 95, 53, 48, 6, 128, 76, 0, 0, 11, 2, 95, 52,
-			149, 6, 35, 34, 6, 37, 0, 0, 0, 0, 9, 2, 95, 57, 50, 6, 121, 57, 0, 0, 7, 2, 95, 56, 128, 141, 0, 0, 17, 2,
-			95, 63, 48, 34, 6, 39, 91, 50, 121, 76, 37, 107, 50, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 4, 95, 224, 166, 144, 39, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 95, 224, 166, 143,
-			36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 164, 224, 166, 190, 224, 166, 135, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 137, 224, 166, 149, 224, 166, 191, 224, 167, 159, 72, 8, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 9, 224, 166,
-			149, 224, 167, 141, 224, 166, 183, 49, 4, 39, 57, 65, 40, 138, 36, 50, 12, 39, 91, 12, 6, 121, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 230, 9, 0, 0, 48, 0, 0, 0, 231, 9,
-			0, 0, 49, 0, 0, 0, 232, 9, 0, 0, 50, 0, 0, 0, 233, 9, 0, 0, 51, 0, 0, 0, 234, 9, 0, 0, 52, 0, 0, 0,
-			235, 9, 0, 0, 53, 0, 0, 0, 236, 9, 0, 0, 54, 0, 0, 0, 237, 9, 0, 0, 55, 0, 0, 0, 238, 9, 0, 0, 56, 0,
-			0, 0, 239, 9, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 22, 0, 2, 17, 66, 3, 145, 145, 0, 3, 145, 145, 109, 0,
-			7, 6, 1, 58, 0, 2, 17, 66, 3, 84, 0, 3, 84, 109, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0,
-			7, 6, 1, 35, 0, 2, 17, 66, 3, 107, 70, 0, 3, 107, 70, 109, 0, 7, 6, 1, 2, 0, 1, 17, 67, 3, 130, 0, 7, 6,
-			1, 3, 0, 4, 1, 17, 65, 3, 68, 0, 1, 17, 67, 0, 7, 6, 1, 4, 0, 3, 0, 2, 32, 3, 108, 0, 7, 6, 1, 6,
-			0, 3, 109, 0, 224, 166, 129, 3, 130, 0, 224, 167, 141, 224, 166, 175, 224, 166, 190, 3, 148, 0, 7, 6, 1, 7, 0, 3, 35, 0,
-			224, 166, 129, 3, 128, 0, 7, 6, 1, 8, 0, 3, 37, 0, 224, 166, 129, 3, 124, 0, 7, 6, 1, 9, 0, 3, 37, 0, 224, 166,
-			129, 3, 124, 0, 7, 6, 1, 10, 0, 3, 40, 0, 224, 166, 129, 3, 133, 0, 7, 6, 1, 11, 0, 3, 40, 0, 224, 166, 129, 3,
-			133, 0, 7, 6, 1, 12, 0, 3, 34, 37, 0, 7, 6, 1, 16, 0, 3, 148, 0, 224, 166, 129, 3, 148, 150, 0, 7, 6, 1, 16,
-			0, 3, 36, 0, 224, 166, 129, 3, 126, 0, 224, 167, 141, 224, 166, 175, 224, 166, 190, 3, 148, 0, 7, 6, 1, 17, 0, 3, 39, 57,
-			0, 224, 166, 129, 3, 131, 57, 0, 7, 6, 1, 20, 0, 3, 39, 0, 224, 166, 129, 3, 131, 0, 7, 6, 1, 20, 0, 3, 119, 0,
-			7, 6, 1, 21, 0, 3, 39, 58, 0, 224, 166, 129, 3, 131, 58, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 3, 49, 109,
-			0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 109, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 109,
-			0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 109, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 109,
-			0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 76, 0, 3, 76, 109, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 149, 0, 3, 149, 109,
-			0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 79, 0, 224, 167, 141, 224, 166, 172, 2, 17, 66, 0, 4, 3, 79, 109, 0, 224, 167,
-			141, 224, 166, 172, 0, 224, 167, 141, 224, 166, 158, 2, 17, 66, 3, 81, 81, 0, 224, 167, 141, 224, 166, 158, 3, 81, 81, 131, 0, 7,
-			6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7,
-			6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 3, 139, 109, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 141, 0, 3, 141, 109, 0, 7,
-			6, 1, 34, 0, 2, 17, 66, 3, 140, 0, 3, 140, 109, 0, 7, 6, 1, 35, 0, 2, 17, 66, 3, 142, 0, 3, 142, 109, 0, 7,
-			6, 1, 36, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 2, 32, 3, 47, 39,
-			0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 109, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 72,
-			0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 109, 0, 7, 6, 1, 41, 0, 2, 17, 66, 3, 50,
-			0, 3, 50, 109, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 2, 17, 66, 3, 83,
-			0, 3, 83, 109, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137,
-			0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 65, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 1, 141, 167, 224, 2,
-			17, 66, 32, 3, 12, 0, 1, 141, 167, 224, 2, 32, 3, 12, 121, 0, 2, 17, 66, 3, 75, 0, 3, 75, 109, 0, 4, 1, 141, 167,
-			224, 2, 17, 67, 3, 148, 0, 224, 166, 190, 1, 141, 167, 224, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 109, 0,
-			7, 6, 1, 55, 0, 2, 224, 167, 141, 224, 166, 178, 3, 89, 0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 56, 0,
-			2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 57, 0, 4, 2, 224, 167, 141, 224, 166, 164, 3, 89, 0, 2, 224, 167, 141,
-			224, 166, 165, 0, 2, 224, 167, 141, 224, 166, 175, 0, 224, 167, 141, 224, 166, 172, 8, 2, 17, 66, 3, 91, 0, 224, 167, 141, 224, 166,
-			172, 8, 3, 91, 109, 0, 2, 17, 66, 3, 106, 0, 3, 106, 13, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 2, 32, 3,
-			107, 39, 0, 3, 107, 109, 0, 7, 6, 1, 63, 0, 1, 17, 67, 3, 35, 0, 224, 166, 129, 1, 17, 67, 3, 128, 0, 7, 6, 1,
-			64, 0, 1, 17, 67, 3, 37, 0, 224, 166, 129, 1, 17, 67, 3, 124, 0, 7, 6, 1, 65, 0, 1, 17, 67, 3, 37, 0, 224, 166,
-			129, 1, 17, 67, 3, 124, 0, 7, 6, 1, 66, 0, 1, 17, 67, 3, 40, 0, 224, 166, 129, 1, 17, 67, 3, 133, 0, 7, 6, 1,
-			67, 0, 1, 17, 67, 3, 40, 0, 224, 166, 129, 1, 17, 67, 3, 133, 0, 7, 6, 1, 68, 0, 1, 17, 67, 3, 34, 6, 37, 0,
-			7, 6, 1, 72, 0, 1, 17, 67, 3, 36, 0, 224, 166, 137, 1, 17, 67, 3, 36, 58, 0, 224, 166, 129, 1, 17, 67, 3, 126, 0,
-			7, 6, 1, 73, 0, 1, 17, 67, 3, 39, 57, 0, 224, 166, 129, 1, 17, 67, 3, 131, 57, 0, 7, 6, 1, 76, 0, 1, 17, 67,
-			3, 39, 0, 224, 166, 129, 1, 17, 67, 3, 131, 0, 7, 6, 1, 77, 0, 1, 17, 67, 3, 39, 58, 0, 224, 166, 129, 1, 17, 67,
-			3, 131, 58, 0, 7, 6, 1, 79, 0, 3, 47, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 0, 8, 2, 17, 66, 3, 57, 0, 3,
-			57, 109, 0, 7, 6, 1, 113, 0, 2, 17, 66, 3, 34, 0, 3, 34, 109, 0, 7, 6, 1, 114, 0, 3, 58, 35, 109, 0, 2, 17,
-			66, 3, 58, 121, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts4 = FileInMemory_createWithData (5017, reinterpret_cast<const char *> (&espeakdata_dicts4_data), 
-			U"espeak-1.48.04-source/espeak-data/as_dict", 
-			U"as");
-		my addItem_move (espeakdata_dicts4.move());
-
-		static unsigned char espeakdata_dicts5_data[2136] = {
-			0, 4, 0, 0, 151, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
-			75, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 13, 4, 95, 100, 112, 116, 10, 47, 4, 35, 65, 23, 0, 0,
-			0, 0, 0, 0, 6, 65, 24, 83, 36, 0, 0, 0, 0, 0, 6, 65, 28, 79, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 36, 0,
-			0, 0, 0, 0, 0, 9, 1, 37, 102, 97, 105, 122, 0, 29, 0, 0, 9, 134, 115, 201, 153, 110, 105, 110, 76, 0, 6, 65, 40, 90,
-			36, 0, 0, 0, 10, 1, 42, 117, 108, 100, 117, 122, 0, 29, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65, 48, 36,
-			55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65, 0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 6, 195, 76, 150, 128, 76,
-			0, 0, 4, 193, 60, 76, 0, 0, 0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 81, 36, 0, 0, 0, 0, 0,
-			6, 65, 72, 36, 51, 0, 0, 0, 0, 0, 6, 65, 76, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 12, 65, 92, 72, 40, 71, 109, 55, 84, 6, 109, 0, 0, 0, 0, 0,
-			6, 65, 96, 101, 36, 0, 0, 0, 0, 0, 6, 65, 100, 57, 36, 0, 0, 0, 0, 0, 6, 65, 104, 88, 36, 0, 7, 132, 104, 201,
-			153, 109, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 131, 118, 201, 153, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 16, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 5, 194, 9, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 128, 76, 36, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 145, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 12, 144, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 229, 78, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 148, 128, 72,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 131, 121, 201, 153, 72, 0, 7, 132, 105, 115, 201, 153, 76, 0, 0, 9, 134, 109, 201, 153, 110, 105, 109, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3,
-			95, 51, 88, 39, 47, 6, 40, 88, 0, 0, 10, 3, 95, 48, 67, 57, 6, 112, 88, 0, 0, 0, 0, 7, 132, 105, 108, 201, 153, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3,
-			95, 55, 88, 57, 36, 47, 65, 6, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95,
-			49, 88, 6, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 37, 57, 37, 51, 65, 6, 37, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 52, 88, 81, 6, 13, 51, 101, 0, 0, 0, 0, 0, 5, 194,
-			14, 176, 72, 0, 0, 0, 0, 11, 3, 95, 53, 88, 125, 55, 55, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54,
-			88, 35, 55, 47, 65, 6, 13, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88,
-			89, 125, 99, 89, 6, 125, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 72, 39, 101, 89, 6, 35, 50, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 36, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 5, 194, 48, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65,
-			37, 55, 57, 6, 39, 50, 0, 0, 15, 4, 95, 48, 77, 51, 65, 37, 55, 57, 6, 35, 51, 72, 0, 0, 0, 11, 4, 95, 48, 77,
-			49, 65, 6, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 11, 136, 111, 110, 108, 97, 114, 196, 177, 110, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 8, 150, 137, 52, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
-			132, 115, 201, 153, 110, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 76, 150, 137, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 110, 201, 153, 72, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 109, 201, 153, 110, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 95, 201, 153, 125, 0, 0,
-			7, 2, 196, 159, 100, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 197, 159, 91, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 60, 227, 1, 72, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 51, 6, 112, 76, 0, 0, 9, 2, 95, 50, 37, 80, 6, 37, 0,
-			0, 9, 2, 95, 49, 71, 6, 37, 51, 0, 0, 11, 2, 95, 48, 89, 13, 83, 6, 13, 51, 0, 0, 11, 2, 95, 55, 57, 36, 72,
-			72, 6, 37, 0, 0, 10, 2, 95, 54, 35, 55, 47, 6, 13, 0, 0, 9, 2, 95, 53, 71, 6, 36, 91, 0, 0, 10, 2, 95, 52,
-			72, 6, 126, 51, 72, 0, 0, 0, 0, 12, 2, 95, 57, 72, 39, 81, 81, 6, 40, 88, 0, 0, 5, 194, 100, 16, 72, 5, 194, 100,
-			16, 76, 12, 2, 95, 56, 89, 125, 99, 80, 6, 37, 88, 0, 0, 0, 0, 0, 0, 6, 195, 8, 150, 128, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 111, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 18, 82, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 99, 196, 177, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 100, 201, 153, 76,
-			0, 0, 0, 0, 0, 0, 0, 6, 18, 67, 196, 177, 0, 97, 0, 111, 0, 117, 0, 7, 6, 18, 68, 195, 182, 0, 195, 188, 0, 105,
-			0, 101, 0, 7, 6, 195, 167, 0, 3, 76, 0, 7, 6, 195, 182, 0, 3, 126, 0, 7, 6, 195, 188, 0, 3, 112, 0, 7, 6, 196,
-			159, 0, 4, 1, 17, 65, 3, 12, 0, 97, 1, 97, 0, 111, 1, 111, 0, 117, 1, 117, 0, 195, 182, 1, 182, 195, 0, 195, 188, 1,
-			188, 195, 0, 4, 1, 101, 3, 57, 0, 1, 105, 0, 3, 100, 0, 7, 6, 196, 177, 0, 3, 13, 0, 7, 6, 197, 159, 0, 3, 91,
-			0, 7, 6, 201, 153, 0, 4, 1, 21, 2, 32, 3, 2, 125, 0, 1, 45, 2, 32, 0, 3, 125, 0, 7, 6, 97, 0, 4, 3, 35,
-			0, 1, 45, 2, 32, 0, 105, 2, 25, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 75, 0, 7, 6, 100, 0,
-			3, 72, 0, 97, 110, 1, 45, 2, 32, 3, 72, 2, 35, 50, 0, 201, 153, 107, 1, 45, 2, 32, 3, 72, 2, 125, 49, 0, 201, 153,
-			110, 1, 45, 2, 32, 3, 72, 2, 125, 50, 0, 7, 6, 101, 0, 3, 36, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3,
-			79, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 121, 97, 1, 21, 2, 32, 3, 8, 37, 38, 35, 0, 3, 37, 0, 7, 6,
-			106, 0, 3, 90, 0, 7, 6, 107, 0, 3, 80, 0, 2, 25, 3, 99, 0, 7, 6, 108, 0, 3, 55, 0, 4, 1, 18, 67, 2, 25,
-			3, 64, 0, 2, 18, 67, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6,
-			112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 81, 0, 2, 32, 3, 101, 0, 7, 6, 114, 0, 1, 17, 67, 2, 32, 3, 14, 34, 0,
-			4, 1, 17, 65, 2, 17, 65, 3, 16, 0, 1, 159, 196, 2, 17, 65, 0, 3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116,
-			0, 3, 47, 0, 1, 18, 68, 2, 18, 68, 3, 123, 0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119,
-			0, 3, 58, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 164,
-			3, 125, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts5 = FileInMemory_createWithData (2135, reinterpret_cast<const char *> (&espeakdata_dicts5_data), 
-			U"espeak-1.48.04-source/espeak-data/az_dict", 
+		static unsigned char espeakdata_dicts4_data[1813] = {
+			0, 4, 0, 0, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
+			75, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 24, 83, 36, 0, 0, 0, 0,
+			0, 6, 65, 28, 79, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 40, 90, 36,
+			0, 0, 0, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65,
+			0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 6, 195, 76, 150, 128, 76, 0, 0, 4, 193, 60, 76, 0, 0, 0, 0, 6,
+			65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 81, 36, 0, 0, 0, 0, 0, 6, 65, 72, 36, 51, 0, 0, 0, 0, 0, 6,
+			65, 76, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0,
+			0, 0, 0, 12, 65, 92, 72, 40, 71, 109, 55, 84, 6, 109, 0, 0, 0, 0, 0, 6, 65, 96, 101, 36, 0, 0, 0, 0, 0, 6,
+			65, 100, 57, 36, 0, 0, 0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 19, 201, 153, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 13, 201, 153, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 4, 16, 20, 10, 84, 37, 51,
+			81, 4, 112, 55, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 19, 201, 153, 14, 9, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 60, 227, 1, 72, 76, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 39, 47, 6, 40, 88, 0, 0, 10, 3, 95, 48,
+			67, 57, 6, 112, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 55, 88, 57, 36, 47, 65, 6, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 9, 3, 95, 49, 88, 6, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 37, 57,
+			37, 51, 65, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 150, 137, 56, 76, 0, 0, 0, 0, 0, 0, 0, 11,
+			3, 95, 52, 88, 81, 6, 13, 51, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 53, 88, 127, 55, 55, 6, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 35, 55, 47, 65, 6, 13, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 134, 13, 201, 153, 14, 9, 13, 76, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 89, 127, 99, 89, 6, 127, 50, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 72, 39, 101, 89, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 39, 50, 0, 0, 15, 4, 95, 48, 77, 51, 65, 37, 55, 57, 6, 35,
+			51, 72, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 8, 150, 137, 52, 76, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 229, 78, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 2, 196, 159, 100, 36, 0, 7, 2, 195, 167, 76, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 197, 159, 91, 36, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 15, 14, 12,
+			1, 18, 196, 177, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 2, 95, 51, 6, 112, 76, 0, 0, 9, 2, 95, 50, 37, 80, 6, 37, 0, 0, 9, 2, 95, 49, 71, 6, 37, 51, 0, 0, 11,
+			2, 95, 48, 89, 13, 83, 6, 13, 51, 0, 0, 11, 2, 95, 55, 57, 36, 72, 72, 6, 37, 0, 0, 10, 2, 95, 54, 35, 55, 47,
+			6, 13, 0, 0, 9, 2, 95, 53, 71, 6, 36, 91, 0, 0, 10, 2, 95, 52, 72, 6, 125, 51, 72, 0, 0, 0, 0, 12, 2, 95,
+			57, 72, 39, 81, 81, 6, 40, 88, 0, 0, 12, 2, 95, 56, 89, 127, 99, 80, 6, 37, 88, 0, 0, 0, 0, 0, 0, 6, 195, 8,
+			150, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 167, 0, 3, 76, 0, 7, 6,
+			195, 182, 0, 3, 125, 0, 7, 6, 195, 188, 0, 3, 112, 0, 7, 6, 196, 159, 0, 3, 100, 0, 7, 6, 196, 177, 0, 3, 13, 0,
+			7, 6, 197, 159, 0, 3, 91, 0, 7, 6, 201, 153, 0, 3, 127, 0, 7, 6, 97, 0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0,
+			7, 6, 99, 0, 3, 75, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 36, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6,
+			103, 0, 3, 79, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0,
+			3, 80, 0, 2, 25, 3, 99, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 7,
+			6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 81, 0, 7, 6, 114, 0, 1, 17, 65, 2, 17, 65,
+			3, 16, 0, 3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118,
+			0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3,
+			88, 0, 7, 6, 0, 195, 164, 3, 127, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts4 = FileInMemory_createWithData (1812, reinterpret_cast<const char *> (&espeakdata_dicts4_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/az_dict", 
 			U"az");
-		my addItem_move (espeakdata_dicts5.move());
+		Collection_addItem (me.peek(), espeakdata_dicts4.transfer());
 
-		static unsigned char espeakdata_dicts6_data[27007] = {
-			0, 4, 0, 0, 222, 99, 0, 0, 0, 0, 8, 197, 52, 20, 203, 5, 0, 66, 0, 0, 0, 6, 195, 98, 214, 205, 66, 8, 197, 85,
-			180, 147, 108, 176, 66, 0, 17, 66, 5, 0, 35, 48, 35, 34, 47, 35, 65, 6, 36, 50, 47, 0, 24, 6, 195, 5, 0, 89, 66, 0,
-			7, 196, 246, 83, 27, 44, 67, 0, 0, 8, 196, 61, 50, 219, 52, 72, 23, 9, 198, 88, 17, 71, 185, 178, 192, 67, 9, 198, 32, 20,
-			27, 69, 54, 203, 65, 0, 9, 198, 73, 52, 65, 76, 97, 0, 66, 0, 8, 197, 64, 22, 109, 108, 176, 67, 0, 0, 6, 195, 244, 99,
-			0, 66, 9, 198, 20, 19, 65, 32, 198, 203, 67, 0, 0, 10, 199, 99, 208, 129, 20, 123, 155, 44, 68, 9, 198, 55, 17, 123, 49, 178,
-			192, 67, 0, 8, 197, 77, 180, 68, 5, 144, 66, 0, 12, 201, 52, 18, 141, 80, 225, 71, 185, 178, 192, 68, 0, 6, 195, 75, 160, 85,
-			66, 6, 195, 67, 160, 85, 66, 6, 195, 31, 192, 85, 66, 6, 195, 22, 224, 85, 66, 0, 0, 17, 4, 95, 100, 112, 116, 10, 117, 38,
-			6, 35, 64, 39, 10, 37, 15, 0, 6, 195, 80, 94, 128, 65, 6, 195, 236, 128, 87, 66, 7, 196, 4, 34, 1, 92, 66, 0, 7, 196,
-			67, 177, 65, 88, 66, 0, 6, 195, 68, 17, 122, 65, 9, 198, 16, 99, 196, 68, 21, 64, 67, 0, 7, 196, 85, 65, 1, 72, 66, 7,
-			196, 37, 146, 65, 72, 67, 7, 196, 36, 212, 1, 72, 66, 7, 196, 32, 20, 1, 72, 66, 6, 195, 189, 80, 82, 66, 0, 6, 195, 90,
-			208, 83, 66, 9, 198, 65, 16, 79, 76, 101, 192, 67, 6, 195, 224, 144, 83, 67, 6, 195, 176, 243, 123, 67, 7, 196, 60, 36, 65, 76,
-			66, 6, 195, 53, 72, 211, 66, 7, 196, 44, 243, 65, 76, 66, 6, 195, 47, 160, 83, 66, 7, 196, 20, 243, 65, 76, 66, 0, 6, 195,
-			164, 74, 82, 66, 0, 9, 198, 95, 18, 207, 17, 16, 85, 67, 9, 198, 91, 99, 143, 17, 16, 85, 67, 8, 197, 88, 145, 81, 5, 48,
-			66, 10, 199, 88, 98, 211, 60, 68, 65, 84, 67, 8, 197, 84, 244, 149, 5, 48, 66, 7, 196, 87, 211, 65, 76, 66, 8, 197, 77, 16,
-			84, 51, 176, 65, 8, 197, 73, 176, 145, 5, 48, 66, 9, 198, 73, 124, 15, 17, 16, 85, 67, 9, 198, 73, 60, 15, 17, 16, 85, 67,
-			7, 196, 220, 193, 65, 76, 66, 9, 198, 65, 91, 87, 17, 16, 85, 66, 6, 195, 66, 152, 211, 66, 9, 198, 67, 211, 143, 17, 16, 85,
-			67, 7, 196, 66, 116, 65, 76, 66, 7, 196, 67, 197, 6, 76, 67, 9, 198, 66, 244, 207, 17, 16, 85, 67, 9, 198, 66, 209, 143, 17,
-			16, 85, 68, 7, 196, 54, 241, 65, 76, 66, 9, 198, 47, 164, 207, 17, 16, 85, 67, 8, 197, 9, 22, 205, 11, 160, 65, 0, 7, 196,
-			66, 149, 163, 72, 66, 0, 8, 197, 90, 210, 85, 5, 48, 67, 8, 197, 73, 77, 132, 5, 48, 67, 7, 196, 165, 94, 193, 76, 67, 7,
-			196, 166, 129, 1, 76, 67, 9, 198, 68, 18, 3, 68, 20, 192, 66, 9, 198, 64, 243, 6, 16, 20, 192, 67, 8, 197, 66, 49, 9, 5,
-			48, 67, 9, 198, 44, 48, 69, 68, 20, 192, 66, 9, 198, 20, 99, 6, 16, 20, 192, 67, 8, 197, 4, 74, 68, 5, 48, 67, 0, 0,
-			9, 198, 86, 181, 12, 76, 100, 192, 67, 9, 198, 73, 64, 140, 36, 208, 83, 67, 8, 197, 164, 180, 253, 5, 48, 67, 9, 198, 65, 34,
-			86, 224, 20, 192, 67, 8, 197, 66, 148, 58, 5, 48, 67, 9, 198, 64, 244, 147, 82, 52, 192, 67, 12, 201, 48, 98, 210, 36, 179, 196,
-			68, 21, 64, 68, 9, 198, 46, 241, 73, 20, 20, 192, 67, 8, 197, 22, 196, 253, 5, 48, 67, 9, 198, 20, 100, 147, 184, 20, 192, 67,
-			0, 9, 198, 98, 113, 139, 61, 128, 82, 68, 0, 9, 198, 92, 149, 123, 10, 52, 192, 65, 9, 198, 76, 101, 142, 177, 16, 83, 67, 9,
-			198, 64, 197, 19, 177, 16, 83, 67, 9, 198, 47, 52, 209, 5, 65, 122, 67, 12, 201, 47, 17, 141, 5, 51, 196, 68, 21, 64, 69, 9,
-			198, 20, 97, 48, 236, 20, 192, 68, 10, 199, 8, 146, 195, 4, 84, 65, 76, 67, 9, 198, 4, 67, 15, 55, 176, 83, 68, 0, 9, 198,
-			46, 233, 193, 77, 128, 82, 68, 0, 12, 201, 84, 244, 236, 233, 51, 196, 68, 21, 64, 69, 10, 199, 84, 244, 207, 5, 14, 129, 76, 69,
-			10, 199, 77, 18, 84, 54, 164, 65, 76, 68, 9, 198, 67, 100, 201, 213, 65, 122, 68, 9, 198, 47, 19, 193, 67, 160, 83, 69, 0, 0,
-			11, 1, 35, 72, 6, 37, 38, 36, 95, 0, 27, 11, 200, 73, 68, 59, 84, 244, 149, 5, 48, 68, 11, 200, 68, 17, 73, 60, 20, 58,
-			5, 48, 70, 10, 199, 47, 49, 12, 60, 222, 193, 76, 68, 10, 199, 197, 36, 6, 45, 63, 65, 76, 68, 12, 201, 13, 177, 12, 25, 98,
-			69, 68, 20, 192, 68, 0, 0, 13, 1, 37, 48, 34, 39, 117, 6, 36, 50, 47, 0, 27, 0, 6, 1, 38, 21, 0, 47, 0, 0, 0,
-			13, 65, 116, 6, 36, 34, 65, 4, 35, 64, 13, 49, 0, 13, 202, 76, 99, 6, 84, 244, 207, 5, 14, 129, 76, 71, 12, 201, 24, 193,
-			139, 79, 96, 68, 164, 64, 83, 70, 0, 15, 1, 42, 88, 84, 36, 88, 72, 6, 37, 76, 49, 35, 0, 27, 0, 9, 1, 43, 48, 55,
-			40, 89, 0, 27, 9, 198, 84, 244, 221, 60, 163, 0, 66, 0, 0, 4, 129, 45, 8, 0, 0, 21, 1, 47, 50, 35, 49, 64, 6, 39,
-			50, 36, 50, 35, 15, 76, 36, 34, 47, 4, 35, 0, 7, 196, 180, 16, 129, 100, 67, 0, 0, 6, 195, 25, 41, 21, 66, 0, 0, 8,
-			197, 32, 241, 17, 5, 80, 66, 0, 0, 6, 195, 64, 148, 186, 65, 9, 198, 60, 211, 196, 68, 21, 64, 67, 6, 195, 45, 69, 122, 65,
-			6, 195, 44, 100, 186, 65, 6, 195, 20, 98, 250, 65, 9, 198, 8, 147, 196, 68, 21, 64, 67, 6, 195, 5, 96, 83, 66, 6, 195, 4,
-			32, 83, 66, 0, 7, 196, 8, 98, 193, 72, 66, 0, 6, 195, 92, 153, 83, 66, 9, 198, 87, 51, 196, 68, 21, 64, 67, 9, 198, 79,
-			131, 196, 68, 21, 64, 67, 9, 198, 76, 148, 15, 17, 16, 85, 67, 9, 198, 76, 99, 6, 17, 16, 85, 67, 9, 198, 64, 243, 9, 17,
-			16, 85, 67, 9, 198, 67, 160, 68, 68, 21, 64, 67, 7, 196, 55, 0, 71, 236, 67, 9, 198, 48, 148, 207, 17, 16, 85, 67, 9, 198,
-			140, 225, 68, 68, 21, 64, 66, 7, 196, 44, 194, 82, 232, 65, 9, 198, 46, 210, 68, 68, 21, 64, 67, 9, 198, 25, 51, 143, 17, 16,
-			85, 67, 7, 196, 21, 66, 193, 76, 66, 9, 198, 153, 51, 196, 68, 21, 64, 67, 0, 8, 197, 44, 243, 2, 5, 32, 66, 0, 9, 198,
-			91, 209, 143, 17, 16, 85, 68, 10, 199, 88, 99, 9, 60, 68, 65, 84, 68, 10, 199, 68, 17, 73, 60, 68, 65, 84, 68, 8, 197, 64,
-			245, 131, 5, 48, 66, 8, 197, 60, 37, 131, 5, 48, 66, 7, 196, 46, 144, 193, 76, 66, 7, 196, 5, 14, 129, 76, 67, 0, 0, 8,
-			197, 74, 226, 75, 5, 48, 67, 11, 200, 72, 98, 72, 52, 241, 17, 5, 80, 68, 8, 197, 66, 144, 209, 5, 48, 66, 6, 195, 244, 146,
-			0, 66, 8, 197, 52, 97, 38, 5, 48, 67, 7, 196, 141, 74, 65, 76, 68, 10, 199, 47, 161, 73, 60, 68, 65, 84, 68, 8, 197, 23,
-			178, 67, 5, 48, 67, 11, 200, 8, 144, 140, 36, 241, 17, 5, 80, 68, 7, 196, 175, 96, 129, 76, 67, 8, 197, 4, 90, 82, 5, 48,
-			67, 8, 197, 153, 51, 205, 5, 48, 67, 0, 10, 199, 73, 177, 12, 24, 80, 193, 96, 66, 8, 197, 66, 242, 233, 5, 32, 67, 0, 16,
-			1, 61, 36, 15, 34, 6, 35, 84, 50, 39, 15, 50, 4, 35, 0, 9, 198, 84, 16, 145, 36, 176, 83, 67, 8, 197, 73, 67, 37, 145,
-			48, 67, 11, 200, 73, 1, 139, 79, 97, 17, 5, 80, 67, 8, 197, 164, 133, 12, 149, 48, 67, 8, 197, 164, 142, 195, 5, 48, 67, 9,
-			198, 48, 98, 211, 244, 20, 192, 67, 9, 198, 44, 243, 66, 196, 20, 192, 67, 8, 197, 35, 162, 38, 5, 48, 67, 11, 200, 24, 193, 139,
-			79, 97, 17, 5, 80, 68, 9, 198, 21, 64, 140, 36, 176, 83, 67, 9, 198, 20, 99, 108, 68, 20, 192, 67, 9, 198, 8, 148, 148, 49,
-			80, 83, 67, 8, 197, 153, 59, 17, 5, 48, 67, 0, 7, 196, 88, 18, 163, 32, 66, 8, 197, 64, 100, 205, 24, 128, 66, 9, 198, 47,
-			52, 209, 4, 32, 82, 67, 0, 8, 197, 55, 163, 109, 4, 80, 67, 9, 198, 45, 22, 196, 157, 16, 83, 67, 9, 198, 189, 50, 80, 5,
-			32, 83, 68, 0, 11, 1, 64, 49, 55, 6, 39, 65, 71, 35, 0, 0, 10, 198, 64, 243, 70, 28, 85, 0, 72, 23, 10, 199, 75, 180,
-			201, 84, 146, 193, 76, 68, 13, 202, 68, 17, 73, 61, 49, 140, 24, 68, 65, 84, 70, 10, 199, 64, 241, 82, 24, 186, 101, 68, 65, 10,
-			199, 64, 20, 209, 39, 165, 129, 76, 68, 10, 199, 52, 20, 209, 39, 165, 129, 76, 68, 0, 0, 11, 200, 88, 147, 75, 60, 208, 177, 5,
-			48, 68, 10, 199, 67, 100, 198, 45, 63, 65, 76, 68, 0, 0, 0, 7, 196, 87, 3, 205, 192, 67, 6, 195, 30, 193, 138, 66, 0, 12,
-			201, 47, 52, 209, 5, 10, 67, 68, 20, 192, 68, 0, 0, 12, 201, 221, 114, 109, 20, 99, 108, 68, 20, 192, 70, 0, 0, 6, 195, 75,
-			0, 83, 66, 0, 0, 9, 198, 55, 50, 83, 247, 17, 0, 66, 7, 196, 44, 99, 6, 100, 66, 0, 0, 5, 194, 56, 144, 72, 5, 194,
-			48, 144, 72, 0, 5, 194, 104, 96, 72, 5, 194, 72, 96, 72, 0, 6, 195, 74, 208, 77, 66, 0, 6, 195, 84, 18, 47, 66, 6, 195,
-			79, 203, 192, 66, 6, 195, 76, 145, 47, 66, 6, 195, 149, 27, 192, 66, 6, 195, 56, 150, 111, 66, 6, 195, 144, 75, 192, 66, 6, 195,
-			52, 17, 47, 66, 6, 195, 44, 20, 47, 66, 6, 195, 44, 18, 47, 66, 6, 195, 182, 53, 128, 66, 6, 195, 4, 164, 111, 66, 0, 7,
-			196, 76, 99, 6, 92, 66, 7, 196, 72, 19, 70, 92, 66, 7, 196, 52, 243, 6, 92, 66, 0, 7, 195, 45, 16, 74, 72, 23, 6, 195,
-			130, 81, 47, 67, 6, 195, 91, 163, 111, 66, 6, 195, 87, 179, 111, 66, 7, 196, 81, 16, 68, 188, 67, 7, 196, 68, 17, 73, 188, 67,
-			6, 195, 67, 101, 111, 66, 6, 195, 54, 241, 47, 66, 6, 195, 47, 161, 111, 66, 6, 195, 34, 241, 111, 66, 7, 196, 16, 194, 68, 188,
-			66, 6, 195, 19, 177, 111, 66, 0, 6, 194, 144, 80, 72, 23, 8, 197, 104, 145, 12, 25, 112, 66, 7, 196, 88, 18, 27, 68, 66, 8,
-			197, 77, 16, 80, 25, 112, 66, 8, 197, 72, 193, 144, 25, 112, 66, 7, 196, 72, 191, 70, 92, 66, 9, 198, 75, 162, 207, 84, 17, 0,
-			67, 8, 197, 64, 241, 76, 25, 112, 66, 6, 195, 64, 148, 59, 66, 6, 195, 46, 238, 192, 66, 6, 195, 21, 65, 147, 66, 8, 197, 11,
-			161, 140, 25, 80, 67, 0, 11, 66, 80, 192, 40, 55, 37, 117, 35, 0, 24, 8, 197, 89, 67, 9, 18, 240, 67, 6, 195, 75, 160, 74,
-			66, 8, 197, 68, 19, 65, 34, 240, 67, 8, 197, 161, 68, 144, 25, 96, 67, 6, 195, 46, 208, 74, 66, 7, 196, 12, 100, 251, 188, 67,
-			7, 196, 232, 208, 68, 188, 67, 0, 5, 194, 72, 16, 72, 9, 198, 77, 18, 66, 82, 67, 0, 67, 6, 195, 79, 178, 123, 67, 6, 195,
-			149, 1, 147, 66, 9, 198, 72, 180, 73, 64, 101, 192, 66, 7, 196, 68, 18, 13, 236, 66, 6, 195, 66, 209, 147, 66, 7, 196, 60, 211,
-			6, 76, 66, 6, 195, 60, 40, 203, 65, 8, 197, 140, 179, 205, 25, 112, 65, 7, 196, 44, 243, 6, 76, 66, 9, 198, 44, 148, 134, 48,
-			101, 192, 65, 7, 196, 44, 20, 137, 236, 67, 6, 195, 10, 225, 147, 66, 6, 195, 10, 209, 147, 66, 7, 196, 5, 51, 6, 76, 66, 0,
-			8, 196, 66, 196, 65, 40, 72, 23, 8, 196, 144, 180, 65, 40, 72, 23, 8, 197, 148, 194, 82, 54, 240, 67, 8, 197, 70, 241, 70, 54,
-			240, 67, 6, 195, 64, 97, 109, 66, 7, 196, 55, 62, 35, 56, 67, 8, 197, 55, 178, 69, 38, 240, 68, 6, 195, 52, 97, 109, 66, 7,
-			196, 47, 162, 70, 72, 65, 8, 197, 46, 211, 194, 70, 240, 67, 8, 197, 20, 240, 187, 54, 240, 65, 7, 196, 14, 222, 201, 188, 68, 9,
-			198, 5, 36, 209, 4, 75, 192, 67, 7, 196, 7, 190, 35, 56, 68, 6, 195, 4, 33, 109, 66, 0, 7, 196, 148, 34, 70, 76, 67, 8,
-			197, 73, 178, 204, 25, 48, 66, 6, 195, 67, 160, 69, 66, 8, 197, 44, 244, 204, 25, 48, 66, 0, 6, 195, 91, 161, 109, 66, 6, 195,
-			74, 241, 109, 66, 7, 196, 68, 148, 212, 180, 67, 9, 198, 66, 241, 73, 101, 11, 192, 67, 6, 195, 55, 166, 109, 66, 6, 195, 54, 241,
-			45, 66, 9, 198, 21, 177, 197, 60, 36, 111, 67, 6, 195, 14, 241, 109, 66, 0, 9, 198, 88, 244, 198, 48, 158, 192, 68, 9, 198, 72,
-			19, 79, 48, 100, 192, 67, 7, 196, 67, 212, 233, 76, 66, 7, 196, 67, 2, 238, 236, 65, 9, 198, 53, 68, 65, 84, 100, 192, 67, 9,
-			198, 52, 241, 70, 48, 158, 192, 68, 8, 197, 8, 18, 179, 25, 48, 67, 0, 30, 1, 92, 39, 71, 34, 6, 35, 47, 50, 35, 15, 50,
-			35, 49, 64, 6, 39, 50, 36, 50, 35, 15, 76, 36, 34, 47, 4, 35, 0, 8, 197, 76, 96, 83, 70, 208, 67, 10, 199, 72, 198, 206,
-			96, 240, 145, 188, 67, 7, 196, 72, 187, 197, 180, 66, 12, 201, 65, 34, 86, 224, 20, 207, 48, 241, 0, 69, 8, 197, 64, 20, 1, 18,
-			208, 67, 6, 195, 55, 30, 237, 67, 7, 196, 48, 144, 187, 180, 67, 7, 196, 24, 195, 65, 32, 66, 8, 197, 20, 101, 201, 54, 208, 67,
-			6, 195, 19, 14, 237, 67, 6, 195, 5, 56, 200, 66, 0, 8, 197, 65, 18, 75, 140, 80, 66, 9, 198, 64, 148, 147, 60, 193, 147, 67,
-			9, 198, 64, 98, 210, 36, 209, 147, 67, 6, 195, 61, 153, 128, 66, 7, 196, 212, 94, 1, 20, 67, 0, 12, 1, 94, 49, 39, 55, 6,
-			37, 71, 49, 35, 0, 8, 197, 96, 20, 17, 4, 128, 66, 8, 197, 52, 20, 251, 38, 208, 68, 7, 196, 45, 68, 100, 32, 66, 9, 198,
-			9, 180, 251, 86, 50, 128, 65, 0, 5, 194, 52, 144, 72, 9, 198, 85, 26, 215, 39, 62, 192, 68, 9, 198, 86, 196, 147, 236, 158, 192,
-			68, 8, 197, 73, 177, 108, 140, 80, 67, 9, 198, 60, 47, 79, 76, 243, 123, 69, 9, 198, 52, 20, 139, 232, 17, 64, 67, 0, 14, 4,
-			95, 49, 77, 49, 99, 37, 55, 6, 35, 72, 35, 0, 6, 195, 157, 16, 68, 66, 7, 196, 212, 83, 227, 32, 67, 8, 197, 8, 19, 194,
-			4, 32, 67, 6, 195, 8, 31, 0, 66, 0, 6, 195, 24, 82, 64, 65, 10, 198, 36, 131, 70, 28, 85, 0, 72, 23, 20, 4, 95, 49,
-			77, 50, 36, 72, 6, 37, 50, 15, 65, 37, 55, 37, 6, 39, 50, 0, 9, 198, 72, 197, 7, 8, 22, 64, 66, 8, 197, 8, 241, 1,
-			149, 144, 67, 0, 21, 4, 95, 49, 77, 51, 36, 72, 6, 37, 50, 15, 65, 37, 55, 37, 6, 35, 34, 72, 0, 6, 195, 44, 246, 47,
-			66, 6, 195, 24, 180, 111, 66, 8, 197, 21, 180, 117, 140, 128, 67, 0, 9, 198, 153, 62, 61, 78, 148, 192, 68, 0, 7, 196, 73, 66,
-			205, 188, 66, 6, 195, 221, 4, 111, 66, 7, 196, 52, 97, 5, 188, 66, 7, 196, 44, 243, 24, 188, 66, 0, 0, 8, 197, 76, 240, 143,
-			18, 240, 67, 7, 196, 221, 3, 227, 56, 67, 9, 198, 67, 100, 201, 212, 64, 72, 68, 6, 195, 44, 248, 202, 66, 8, 197, 16, 243, 15,
-			18, 240, 67, 0, 0, 8, 197, 67, 213, 198, 140, 224, 67, 6, 195, 55, 219, 64, 66, 6, 195, 47, 219, 64, 66, 9, 198, 44, 97, 6,
-			48, 43, 192, 65, 6, 195, 212, 187, 64, 66, 0, 7, 196, 73, 67, 81, 172, 65, 10, 199, 58, 115, 194, 60, 64, 101, 100, 69, 7, 196,
-			13, 178, 36, 44, 65, 0, 6, 195, 86, 226, 109, 67, 7, 196, 84, 99, 197, 180, 67, 9, 198, 72, 19, 84, 68, 18, 128, 67, 9, 198,
-			52, 97, 45, 60, 219, 192, 68, 9, 198, 44, 193, 144, 76, 243, 111, 67, 9, 198, 47, 19, 198, 45, 27, 192, 68, 9, 198, 8, 144, 140,
-			36, 243, 111, 68, 8, 197, 189, 63, 15, 54, 240, 68, 0, 7, 196, 67, 96, 227, 44, 65, 8, 197, 65, 18, 72, 70, 176, 65, 0, 7,
-			196, 4, 83, 124, 180, 67, 0, 0, 8, 197, 64, 20, 147, 246, 208, 67, 8, 197, 44, 243, 51, 38, 208, 68, 8, 197, 197, 49, 132, 70,
-			208, 67, 8, 197, 169, 113, 139, 70, 208, 67, 0, 5, 194, 72, 144, 72, 9, 198, 220, 217, 13, 9, 67, 0, 67, 0, 6, 194, 96, 96,
-			72, 23, 9, 198, 64, 244, 240, 92, 155, 64, 68, 0, 6, 195, 61, 49, 151, 66, 6, 195, 37, 161, 151, 66, 6, 195, 20, 97, 151, 66,
-			0, 9, 198, 95, 177, 141, 204, 155, 64, 69, 6, 195, 90, 107, 192, 66, 6, 195, 148, 59, 192, 66, 6, 195, 148, 43, 192, 66, 6, 195,
-			74, 107, 192, 66, 6, 195, 52, 105, 78, 66, 6, 195, 20, 144, 239, 66, 6, 195, 20, 98, 239, 66, 6, 195, 10, 251, 192, 66, 0, 7,
-			196, 96, 100, 198, 92, 66, 7, 196, 48, 100, 198, 92, 66, 6, 195, 47, 49, 151, 66, 0, 7, 196, 88, 18, 131, 188, 66, 7, 196, 77,
-			244, 66, 188, 66, 6, 195, 74, 82, 239, 66, 6, 195, 75, 16, 80, 66, 11, 200, 68, 17, 73, 61, 34, 68, 144, 192, 69, 7, 196, 45,
-			68, 66, 188, 66, 6, 195, 47, 176, 239, 66, 7, 196, 44, 96, 129, 64, 66, 7, 196, 13, 67, 11, 188, 66, 9, 198, 169, 113, 129, 20,
-			223, 45, 69, 10, 199, 168, 81, 143, 72, 145, 36, 48, 69, 0, 5, 194, 80, 112, 72, 6, 195, 87, 14, 192, 66, 6, 195, 70, 106, 23,
-			66, 7, 196, 32, 54, 232, 92, 66, 0, 10, 66, 96, 192, 76, 55, 36, 50, 0, 24, 14, 66, 64, 192, 48, 55, 39, 91, 47, 6, 35,
-			47, 0, 24, 6, 1, 118, 21, 0, 47, 6, 195, 87, 17, 146, 66, 8, 197, 64, 99, 9, 46, 240, 67, 6, 195, 67, 169, 175, 67, 5,
-			194, 158, 208, 66, 8, 197, 52, 245, 137, 46, 240, 67, 7, 196, 47, 96, 82, 188, 67, 7, 196, 47, 164, 198, 96, 66, 5, 194, 214, 208,
-			66, 8, 197, 12, 99, 9, 46, 240, 67, 7, 196, 11, 160, 66, 188, 67, 0, 7, 195, 72, 193, 133, 72, 23, 7, 196, 76, 101, 83, 236,
-			66, 6, 195, 222, 132, 192, 66, 9, 198, 64, 148, 207, 52, 101, 192, 65, 6, 195, 66, 177, 147, 66, 7, 196, 61, 82, 87, 236, 67, 7,
-			196, 145, 156, 6, 92, 65, 6, 195, 54, 193, 147, 66, 9, 198, 45, 22, 210, 76, 101, 192, 66, 7, 196, 44, 20, 198, 76, 66, 7, 196,
-			25, 36, 198, 76, 66, 8, 197, 12, 22, 112, 25, 112, 65, 8, 197, 8, 97, 239, 25, 112, 67, 6, 195, 10, 242, 251, 66, 0, 6, 1,
-			120, 21, 0, 47, 6, 195, 52, 105, 76, 66, 7, 196, 45, 25, 129, 40, 66, 11, 200, 47, 52, 209, 4, 17, 77, 242, 208, 69, 6, 195,
-			46, 107, 64, 66, 6, 195, 36, 81, 173, 67, 8, 197, 32, 16, 145, 154, 240, 67, 6, 195, 12, 20, 173, 66, 6, 195, 232, 107, 64, 67,
-			0, 7, 196, 79, 181, 201, 236, 67, 7, 196, 149, 2, 87, 236, 67, 7, 196, 74, 227, 205, 236, 67, 9, 198, 65, 180, 67, 192, 101, 192,
-			67, 7, 196, 67, 21, 198, 76, 66, 8, 197, 54, 49, 112, 25, 112, 67, 8, 197, 52, 148, 139, 25, 48, 66, 6, 195, 51, 218, 19, 66,
-			8, 197, 46, 49, 112, 25, 112, 65, 8, 197, 44, 20, 139, 25, 48, 66, 6, 195, 196, 124, 59, 67, 7, 196, 31, 164, 201, 236, 67, 8,
-			197, 25, 2, 83, 25, 48, 67, 7, 196, 9, 23, 232, 76, 66, 0, 9, 198, 77, 16, 77, 12, 18, 128, 66, 6, 195, 66, 144, 237, 66,
-			7, 196, 53, 68, 139, 180, 66, 6, 195, 51, 17, 173, 67, 6, 195, 47, 17, 237, 66, 7, 196, 29, 68, 100, 48, 66, 9, 198, 5, 3,
-			211, 24, 242, 0, 68, 0, 8, 197, 79, 99, 80, 25, 48, 66, 7, 196, 165, 15, 83, 236, 67, 8, 197, 64, 195, 218, 4, 80, 66, 8,
-			197, 67, 162, 83, 25, 48, 67, 8, 197, 52, 98, 51, 25, 48, 67, 7, 196, 44, 243, 6, 28, 66, 7, 196, 44, 148, 6, 28, 66, 8,
-			197, 46, 163, 147, 25, 48, 66, 8, 197, 44, 62, 147, 25, 48, 66, 8, 197, 44, 16, 177, 25, 48, 67, 6, 195, 14, 209, 135, 66, 8,
-			197, 11, 177, 139, 25, 48, 67, 7, 196, 11, 172, 198, 76, 67, 8, 197, 189, 242, 83, 25, 48, 68, 7, 196, 173, 114, 115, 236, 68, 0,
-			8, 197, 88, 147, 73, 46, 208, 67, 6, 195, 79, 128, 72, 66, 7, 196, 165, 114, 101, 48, 67, 8, 197, 68, 17, 73, 46, 208, 67, 7,
-			196, 160, 209, 165, 48, 67, 7, 196, 49, 67, 113, 180, 67, 7, 196, 46, 242, 66, 180, 67, 0, 6, 194, 56, 240, 72, 23, 6, 194, 64,
-			240, 72, 23, 9, 198, 72, 49, 147, 48, 243, 123, 67, 9, 198, 65, 64, 187, 76, 100, 192, 67, 8, 197, 67, 4, 137, 207, 176, 68, 8,
-			197, 144, 154, 147, 25, 48, 68, 7, 196, 45, 190, 70, 28, 66, 9, 198, 44, 243, 66, 4, 170, 17, 67, 9, 198, 36, 213, 14, 37, 49,
-			147, 68, 8, 197, 22, 196, 209, 199, 176, 67, 9, 198, 20, 148, 144, 189, 46, 192, 67, 9, 198, 20, 96, 134, 48, 243, 123, 68, 9, 198,
-			22, 209, 139, 60, 222, 192, 68, 9, 198, 5, 92, 73, 76, 100, 192, 68, 0, 9, 198, 84, 100, 147, 36, 59, 64, 67, 8, 197, 84, 97,
-			123, 10, 208, 65, 7, 196, 79, 179, 113, 180, 67, 9, 198, 72, 19, 79, 72, 59, 64, 67, 7, 196, 67, 176, 193, 32, 66, 7, 196, 244,
-			145, 49, 180, 68, 7, 196, 55, 161, 49, 180, 67, 9, 198, 52, 17, 5, 188, 242, 0, 67, 8, 197, 44, 22, 75, 154, 208, 67, 7, 196,
-			47, 169, 3, 180, 67, 7, 196, 47, 161, 113, 180, 67, 7, 196, 197, 62, 195, 180, 67, 10, 199, 20, 99, 9, 44, 20, 198, 72, 68, 0,
-			5, 194, 76, 144, 72, 10, 199, 72, 98, 212, 56, 83, 205, 236, 68, 8, 197, 166, 181, 201, 207, 176, 69, 9, 198, 65, 18, 125, 37, 49,
-			147, 68, 6, 195, 145, 1, 131, 66, 9, 198, 55, 195, 196, 48, 97, 64, 67, 9, 198, 44, 243, 73, 72, 156, 251, 69, 9, 198, 44, 59,
-			211, 37, 49, 147, 67, 10, 199, 44, 20, 1, 92, 148, 198, 76, 68, 9, 198, 24, 193, 139, 79, 99, 123, 68, 9, 198, 153, 63, 73, 76,
-			100, 192, 68, 0, 0, 9, 198, 224, 242, 9, 92, 156, 251, 70, 9, 198, 54, 249, 76, 37, 49, 147, 68, 10, 199, 169, 34, 207, 32, 148,
-			198, 76, 68, 0, 6, 195, 176, 107, 192, 67, 6, 195, 214, 51, 128, 66, 0, 10, 199, 84, 244, 253, 25, 15, 83, 236, 69, 11, 200, 80,
-			226, 67, 237, 34, 83, 25, 48, 69, 10, 199, 73, 64, 251, 192, 148, 198, 76, 69, 11, 200, 73, 1, 151, 38, 210, 83, 25, 48, 69, 11,
-			200, 72, 198, 206, 96, 241, 12, 24, 80, 67, 10, 199, 67, 100, 144, 236, 148, 198, 76, 68, 10, 199, 161, 68, 209, 180, 148, 198, 76, 69,
-			10, 199, 22, 209, 139, 60, 67, 6, 20, 68, 9, 198, 19, 14, 237, 37, 49, 147, 69, 7, 196, 10, 212, 129, 52, 66, 0, 6, 195, 66,
-			57, 78, 66, 6, 195, 10, 208, 239, 66, 0, 9, 198, 74, 129, 39, 180, 97, 192, 68, 11, 200, 64, 243, 20, 66, 244, 137, 207, 176, 70,
-			7, 196, 153, 59, 35, 12, 67, 0, 6, 195, 68, 25, 74, 66, 11, 200, 47, 19, 213, 25, 36, 201, 14, 208, 69, 0, 11, 200, 24, 193,
-			139, 79, 108, 71, 195, 176, 70, 0, 6, 195, 97, 64, 237, 66, 8, 197, 54, 214, 20, 18, 240, 67, 10, 199, 168, 81, 143, 79, 179, 113,
-			180, 70, 0, 0, 7, 196, 52, 18, 4, 180, 66, 0, 0, 16, 67, 9, 67, 0, 71, 40, 55, 36, 84, 4, 35, 34, 47, 0, 24, 8,
-			197, 72, 20, 209, 5, 0, 66, 9, 198, 66, 148, 147, 69, 64, 239, 67, 8, 197, 161, 77, 135, 4, 160, 68, 0, 0, 9, 198, 52, 146,
-			246, 72, 190, 0, 67, 8, 197, 12, 100, 246, 14, 208, 67, 0, 0, 0, 6, 195, 79, 143, 64, 66, 6, 195, 61, 52, 61, 66, 7, 196,
-			52, 241, 70, 52, 66, 6, 195, 46, 214, 213, 66, 6, 195, 46, 209, 141, 66, 7, 196, 44, 17, 70, 52, 66, 7, 196, 8, 17, 70, 52,
-			66, 0, 0, 6, 195, 75, 7, 125, 66, 0, 0, 7, 196, 96, 17, 91, 68, 66, 8, 197, 84, 243, 11, 51, 208, 66, 8, 197, 25, 99,
-			204, 61, 48, 67, 8, 197, 20, 100, 144, 61, 48, 66, 0, 8, 197, 77, 18, 88, 51, 0, 66, 6, 195, 5, 1, 140, 66, 7, 196, 189,
-			52, 107, 72, 66, 0, 7, 196, 48, 146, 221, 244, 66, 7, 196, 45, 246, 6, 44, 66, 7, 196, 197, 94, 139, 76, 66, 7, 196, 197, 62,
-			201, 244, 68, 7, 196, 36, 82, 79, 76, 67, 0, 8, 197, 73, 69, 73, 45, 32, 66, 8, 197, 64, 145, 13, 24, 160, 66, 7, 196, 44,
-			242, 6, 48, 66, 0, 8, 197, 86, 254, 137, 61, 48, 68, 8, 197, 77, 245, 76, 24, 176, 66, 7, 196, 148, 229, 221, 244, 66, 7, 196,
-			73, 180, 134, 20, 66, 9, 198, 47, 53, 76, 36, 180, 192, 66, 8, 197, 44, 243, 80, 61, 48, 66, 8, 197, 44, 240, 85, 119, 208, 67,
-			7, 196, 46, 50, 221, 244, 66, 9, 198, 24, 180, 147, 70, 180, 192, 66, 9, 198, 24, 180, 147, 236, 159, 64, 68, 8, 197, 21, 64, 140,
-			119, 208, 66, 8, 197, 8, 198, 213, 119, 208, 66, 8, 197, 4, 208, 83, 119, 208, 67, 0, 9, 198, 52, 227, 196, 61, 131, 48, 67, 0,
-			7, 196, 69, 179, 70, 28, 66, 9, 198, 64, 20, 209, 36, 244, 192, 67, 7, 196, 175, 209, 93, 244, 67, 0, 7, 196, 67, 171, 70, 48,
-			67, 7, 196, 44, 21, 70, 32, 66, 9, 198, 20, 124, 19, 108, 195, 112, 65, 0, 9, 198, 73, 4, 113, 77, 223, 64, 66, 7, 196, 220,
-			197, 70, 28, 66, 9, 198, 172, 49, 133, 80, 180, 192, 67, 0, 0, 8, 197, 73, 58, 77, 24, 112, 66, 8, 197, 72, 201, 253, 24, 80,
-			67, 5, 194, 159, 0, 66, 8, 197, 18, 145, 125, 24, 80, 67, 8, 197, 153, 62, 46, 61, 48, 68, 0, 7, 196, 60, 36, 134, 16, 66,
-			0, 20, 4, 95, 50, 77, 50, 72, 84, 6, 35, 15, 65, 37, 55, 37, 6, 39, 50, 35, 0, 9, 198, 99, 179, 143, 16, 193, 133, 67,
-			0, 21, 4, 95, 50, 77, 51, 72, 84, 6, 35, 15, 65, 37, 55, 37, 6, 35, 34, 72, 35, 0, 6, 195, 60, 35, 112, 66, 7, 196,
-			18, 61, 105, 32, 67, 0, 7, 195, 8, 98, 0, 72, 23, 0, 7, 196, 73, 68, 201, 192, 67, 11, 200, 45, 67, 133, 81, 17, 71, 38,
-			0, 65, 0, 8, 197, 67, 96, 140, 24, 208, 66, 0, 0, 9, 198, 67, 212, 213, 24, 163, 0, 66, 0, 7, 196, 79, 99, 6, 40, 66,
-			0, 0, 8, 197, 212, 83, 204, 24, 160, 67, 0, 8, 197, 68, 18, 11, 61, 144, 66, 0, 0, 0, 7, 195, 73, 180, 128, 72, 23, 0,
-			6, 195, 60, 33, 141, 66, 9, 198, 45, 223, 85, 37, 145, 139, 65, 0, 0, 0, 7, 196, 61, 50, 207, 72, 66, 6, 195, 61, 36, 240,
-			66, 0, 7, 196, 25, 81, 139, 76, 66, 0, 6, 195, 149, 15, 0, 66, 8, 197, 64, 241, 78, 61, 32, 66, 6, 195, 46, 148, 240, 66,
-			7, 196, 20, 240, 74, 192, 67, 0, 7, 196, 67, 97, 139, 76, 66, 6, 195, 55, 31, 64, 66, 8, 197, 45, 179, 139, 119, 208, 66, 0,
-			8, 197, 165, 83, 6, 45, 32, 66, 6, 195, 61, 33, 140, 66, 7, 196, 48, 149, 198, 40, 66, 0, 8, 197, 165, 36, 6, 45, 48, 66,
-			8, 197, 20, 155, 70, 45, 48, 67, 6, 195, 212, 18, 189, 67, 0, 6, 195, 66, 241, 140, 66, 0, 14, 67, 16, 241, 64, 81, 39, 72,
-			6, 37, 50, 35, 0, 24, 7, 196, 78, 147, 157, 244, 66, 9, 198, 67, 100, 144, 24, 180, 192, 66, 9, 198, 47, 52, 144, 24, 180, 192,
-			66, 8, 197, 28, 145, 12, 119, 208, 66, 7, 196, 10, 196, 157, 244, 66, 0, 8, 197, 64, 20, 147, 24, 192, 66, 0, 7, 196, 73, 51,
-			198, 28, 66, 9, 198, 72, 16, 143, 77, 223, 64, 67, 7, 196, 52, 100, 198, 28, 66, 8, 197, 49, 241, 79, 24, 80, 67, 7, 196, 48,
-			100, 198, 28, 66, 6, 195, 47, 97, 135, 66, 9, 198, 47, 52, 246, 49, 223, 64, 67, 7, 196, 25, 100, 198, 28, 66, 0, 0, 7, 196,
-			99, 180, 198, 28, 66, 8, 197, 93, 181, 83, 24, 112, 66, 7, 196, 77, 180, 232, 28, 66, 9, 198, 79, 176, 80, 24, 52, 192, 67, 7,
-			196, 73, 61, 134, 28, 66, 7, 196, 72, 148, 232, 28, 66, 8, 197, 68, 20, 147, 24, 112, 66, 7, 196, 140, 212, 198, 28, 66, 8, 197,
-			45, 179, 147, 24, 112, 66, 7, 196, 47, 212, 198, 28, 66, 8, 197, 197, 36, 241, 45, 48, 66, 8, 197, 9, 67, 83, 24, 112, 66, 7,
-			196, 232, 76, 230, 76, 67, 0, 7, 196, 75, 20, 198, 32, 66, 9, 198, 52, 227, 199, 37, 49, 140, 65, 0, 9, 198, 87, 163, 65, 92,
-			96, 211, 67, 9, 198, 32, 54, 206, 76, 97, 192, 66, 0, 9, 198, 81, 4, 102, 37, 49, 140, 66, 6, 195, 144, 195, 196, 66, 9, 198,
-			32, 16, 166, 37, 49, 140, 66, 0, 7, 196, 76, 244, 198, 52, 66, 9, 198, 79, 58, 71, 37, 39, 125, 68, 0, 8, 197, 47, 178, 240,
-			24, 128, 67, 10, 199, 36, 132, 17, 152, 148, 198, 48, 66, 8, 197, 24, 179, 204, 60, 64, 67, 0, 7, 195, 176, 243, 15, 72, 23, 10,
-			199, 47, 31, 70, 28, 148, 157, 244, 69, 0, 8, 197, 66, 145, 76, 60, 64, 66, 0, 9, 198, 212, 89, 219, 69, 49, 135, 68, 0, 10,
-			199, 66, 145, 82, 150, 164, 198, 48, 66, 7, 196, 15, 180, 198, 64, 66, 0, 11, 200, 72, 49, 147, 157, 180, 83, 24, 112, 68, 0, 7,
-			196, 64, 100, 198, 48, 66, 7, 196, 52, 244, 198, 48, 66, 7, 196, 44, 244, 198, 48, 66, 12, 201, 20, 243, 79, 81, 4, 102, 37, 49,
-			140, 68, 0, 8, 197, 8, 149, 83, 24, 176, 66, 0, 7, 196, 67, 165, 198, 48, 66, 7, 196, 47, 164, 198, 48, 66, 0, 0, 0, 0,
-			5, 194, 53, 64, 72, 0, 0, 8, 197, 55, 18, 71, 81, 0, 67, 0, 11, 65, 4, 2, 35, 89, 0, 81, 209, 129, 32, 11, 65, 4,
-			2, 35, 84, 0, 81, 208, 178, 32, 5, 193, 4, 72, 23, 7, 196, 48, 99, 84, 68, 66, 0, 6, 195, 77, 18, 115, 66, 6, 195, 72,
-			149, 115, 66, 0, 6, 195, 25, 51, 192, 65, 7, 196, 88, 19, 84, 76, 66, 7, 196, 74, 49, 84, 68, 66, 6, 195, 145, 101, 19, 66,
-			7, 196, 52, 19, 84, 76, 66, 6, 195, 11, 165, 19, 66, 0, 11, 200, 66, 145, 80, 4, 130, 83, 24, 192, 66, 8, 197, 36, 212, 20,
-			49, 32, 66, 6, 195, 26, 83, 51, 67, 0, 7, 196, 58, 192, 84, 76, 65, 8, 197, 4, 130, 77, 81, 48, 65, 0, 8, 197, 88, 97,
-			6, 55, 48, 67, 6, 195, 144, 83, 202, 66, 8, 197, 47, 50, 212, 69, 32, 66, 8, 197, 153, 51, 194, 81, 32, 67, 0, 9, 198, 77,
-			21, 2, 4, 85, 17, 67, 8, 197, 76, 99, 123, 81, 48, 67, 8, 197, 55, 166, 81, 81, 48, 66, 6, 195, 20, 147, 197, 66, 0, 7,
-			196, 44, 147, 73, 204, 67, 8, 197, 47, 165, 73, 60, 192, 67, 7, 196, 21, 180, 77, 204, 66, 0, 7, 195, 64, 241, 64, 72, 23, 8,
-			196, 36, 132, 15, 20, 72, 23, 9, 197, 20, 241, 70, 76, 240, 72, 23, 9, 197, 12, 209, 146, 76, 240, 72, 23, 7, 196, 77, 18, 79,
-			20, 66, 8, 197, 65, 67, 139, 79, 192, 66, 9, 198, 64, 97, 65, 16, 241, 0, 67, 7, 196, 5, 37, 109, 76, 66, 8, 197, 180, 19,
-			113, 81, 48, 68, 0, 9, 198, 77, 18, 80, 76, 149, 128, 66, 9, 198, 68, 18, 11, 68, 22, 0, 65, 9, 198, 52, 244, 207, 77, 18,
-			115, 68, 9, 198, 44, 243, 80, 189, 220, 192, 67, 0, 9, 197, 144, 209, 146, 76, 240, 72, 23, 9, 198, 8, 22, 137, 96, 179, 192, 65,
-			6, 195, 5, 82, 89, 66, 0, 8, 197, 72, 191, 80, 39, 48, 67, 7, 196, 66, 107, 137, 204, 68, 8, 197, 169, 52, 73, 60, 192, 67,
-			0, 9, 198, 221, 0, 69, 28, 152, 0, 65, 6, 195, 75, 19, 197, 66, 9, 198, 65, 177, 80, 108, 86, 203, 67, 0, 8, 197, 46, 249,
-			81, 39, 48, 68, 0, 0, 8, 197, 86, 227, 204, 60, 64, 67, 8, 197, 204, 179, 204, 60, 64, 67, 0, 9, 198, 52, 146, 246, 128, 137,
-			252, 69, 0, 7, 196, 79, 211, 79, 32, 66, 6, 195, 66, 236, 192, 66, 8, 197, 160, 189, 140, 60, 64, 67, 8, 197, 160, 61, 140, 60,
-			64, 67, 8, 197, 45, 68, 73, 60, 128, 67, 9, 198, 25, 50, 77, 60, 195, 196, 68, 9, 198, 17, 16, 85, 60, 195, 196, 67, 11, 200,
-			19, 14, 237, 37, 34, 77, 81, 32, 68, 0, 8, 197, 68, 144, 143, 50, 112, 67, 7, 196, 36, 188, 207, 52, 67, 0, 10, 199, 85, 16,
-			72, 24, 243, 15, 16, 68, 9, 198, 47, 161, 73, 60, 195, 196, 68, 9, 198, 193, 51, 205, 60, 195, 196, 68, 7, 196, 9, 67, 29, 204,
-			66, 0, 7, 195, 44, 20, 207, 72, 23, 10, 199, 72, 49, 147, 60, 82, 79, 20, 68, 7, 196, 74, 241, 91, 44, 66, 0, 9, 198, 88,
-			148, 147, 60, 195, 196, 67, 9, 198, 76, 100, 6, 17, 211, 200, 67, 10, 199, 52, 100, 198, 244, 243, 15, 16, 69, 9, 198, 141, 28, 68,
-			60, 195, 196, 68, 8, 197, 44, 20, 9, 103, 48, 67, 9, 198, 189, 61, 144, 60, 195, 196, 68, 10, 199, 4, 77, 130, 36, 243, 15, 16,
-			69, 0, 6, 195, 150, 50, 0, 66, 9, 198, 13, 179, 14, 60, 195, 205, 67, 0, 11, 200, 52, 146, 246, 8, 147, 204, 60, 64, 69, 8,
-			197, 52, 97, 109, 119, 48, 67, 7, 196, 25, 145, 140, 204, 67, 10, 199, 24, 66, 80, 76, 243, 15, 16, 68, 0, 9, 198, 233, 0, 69,
-			28, 146, 192, 67, 0, 8, 197, 68, 18, 11, 51, 48, 66, 0, 0, 10, 199, 164, 228, 196, 192, 243, 15, 16, 68, 0, 0, 8, 197, 67,
-			100, 236, 60, 192, 67, 0, 0, 9, 198, 189, 50, 87, 36, 179, 51, 68, 0, 7, 196, 12, 99, 20, 68, 66, 6, 195, 11, 19, 205, 66,
-			0, 6, 65, 8, 71, 13, 0, 0, 7, 196, 52, 18, 20, 76, 66, 8, 197, 44, 244, 147, 81, 16, 66, 7, 196, 47, 52, 212, 68, 66,
-			8, 197, 9, 67, 4, 81, 16, 66, 0, 8, 197, 45, 68, 139, 81, 32, 66, 0, 9, 198, 88, 145, 118, 48, 241, 0, 67, 6, 195, 148,
-			182, 205, 66, 7, 196, 74, 84, 212, 76, 66, 7, 196, 44, 240, 173, 76, 66, 9, 198, 15, 14, 207, 48, 241, 0, 68, 0, 7, 196, 44,
-			241, 212, 88, 66, 0, 8, 197, 91, 166, 12, 108, 176, 66, 7, 196, 77, 28, 79, 52, 66, 8, 197, 72, 191, 66, 81, 48, 66, 0, 6,
-			195, 86, 50, 243, 66, 0, 9, 198, 64, 18, 58, 49, 178, 192, 67, 0, 8, 197, 21, 179, 4, 81, 128, 66, 0, 9, 198, 52, 20, 139,
-			232, 198, 203, 67, 0, 0, 7, 196, 72, 197, 4, 4, 66, 8, 197, 157, 113, 131, 108, 80, 67, 0, 0, 9, 198, 65, 50, 87, 24, 54,
-			197, 67, 0, 10, 199, 45, 190, 73, 44, 241, 212, 88, 68, 0, 8, 197, 216, 208, 143, 36, 80, 67, 9, 198, 64, 243, 6, 13, 177, 64,
-			67, 8, 197, 48, 109, 195, 108, 80, 67, 9, 198, 36, 133, 13, 69, 65, 64, 67, 0, 0, 9, 198, 89, 67, 111, 60, 145, 64, 68, 8,
-			197, 74, 170, 3, 108, 80, 67, 0, 7, 196, 64, 98, 211, 196, 66, 0, 7, 196, 91, 181, 42, 52, 67, 0, 6, 195, 24, 178, 80, 66,
-			9, 198, 20, 101, 201, 8, 99, 0, 67, 9, 198, 18, 52, 144, 5, 15, 0, 67, 0, 10, 199, 197, 33, 139, 76, 149, 201, 20, 68, 9,
-			198, 28, 157, 83, 58, 118, 197, 68, 0, 0, 11, 200, 68, 20, 147, 192, 145, 131, 108, 80, 69, 8, 197, 66, 51, 167, 36, 176, 67, 8,
-			197, 55, 6, 70, 168, 176, 67, 9, 198, 24, 179, 6, 45, 50, 75, 67, 0, 6, 195, 79, 100, 238, 66, 0, 9, 198, 52, 148, 139, 196,
-			198, 203, 67, 0, 9, 198, 8, 147, 205, 37, 124, 64, 68, 6, 195, 4, 80, 89, 66, 0, 9, 198, 145, 18, 207, 76, 146, 192, 67, 9,
-			198, 16, 20, 147, 216, 227, 205, 67, 0, 6, 195, 150, 54, 64, 66, 8, 197, 204, 32, 89, 38, 0, 65, 0, 0, 9, 198, 65, 62, 207,
-			22, 180, 238, 68, 0, 10, 199, 52, 18, 146, 79, 211, 27, 44, 67, 7, 196, 32, 19, 65, 88, 66, 10, 199, 189, 50, 66, 36, 244, 201,
-			44, 69, 0, 6, 195, 66, 224, 85, 66, 0, 7, 196, 84, 20, 148, 48, 66, 8, 197, 73, 51, 205, 5, 96, 66, 8, 197, 68, 18, 13,
-			5, 96, 66, 0, 7, 65, 12, 84, 13, 0, 49, 4, 193, 12, 23, 7, 196, 99, 166, 65, 84, 66, 6, 195, 50, 113, 151, 66, 7, 196,
-			21, 65, 84, 44, 66, 7, 196, 17, 244, 84, 44, 66, 7, 196, 12, 19, 80, 240, 66, 0, 8, 197, 72, 149, 110, 37, 32, 65, 9, 198,
-			64, 17, 73, 100, 21, 128, 67, 0, 6, 195, 224, 149, 13, 65, 8, 197, 44, 20, 24, 80, 176, 66, 8, 197, 16, 102, 70, 85, 48, 66,
-			7, 196, 12, 89, 198, 92, 66, 7, 196, 11, 212, 148, 44, 66, 0, 7, 196, 148, 165, 84, 56, 66, 7, 196, 67, 101, 198, 72, 66, 7,
-			196, 32, 21, 163, 72, 66, 0, 6, 195, 67, 192, 83, 66, 8, 197, 45, 68, 89, 80, 208, 66, 0, 0, 7, 196, 91, 161, 84, 236, 65,
-			9, 198, 52, 146, 246, 86, 227, 64, 67, 8, 197, 44, 241, 207, 23, 176, 67, 0, 8, 197, 8, 99, 39, 141, 32, 67, 0, 7, 195, 13,
-			178, 0, 72, 23, 9, 198, 76, 99, 6, 64, 20, 192, 67, 8, 197, 222, 52, 73, 80, 208, 66, 9, 198, 68, 18, 23, 12, 100, 192, 66,
-			7, 196, 47, 209, 163, 76, 67, 9, 198, 44, 243, 73, 76, 100, 192, 67, 9, 198, 44, 243, 15, 21, 21, 13, 67, 9, 198, 7, 179, 197,
-			69, 67, 64, 68, 0, 11, 200, 77, 244, 76, 124, 71, 195, 25, 128, 68, 8, 197, 73, 180, 17, 80, 64, 66, 0, 8, 197, 72, 222, 129,
-			16, 80, 66, 7, 196, 74, 217, 100, 76, 67, 9, 198, 66, 146, 9, 20, 149, 13, 66, 0, 0, 7, 196, 54, 100, 84, 20, 66, 0, 7,
-			196, 45, 79, 148, 32, 66, 0, 10, 199, 44, 243, 73, 75, 162, 65, 76, 69, 0, 0, 10, 199, 72, 98, 233, 149, 18, 65, 76, 69, 11,
-			200, 67, 101, 75, 60, 210, 83, 25, 48, 68, 10, 199, 67, 99, 6, 149, 18, 65, 76, 69, 7, 196, 64, 19, 84, 44, 66, 6, 195, 55,
-			213, 11, 66, 0, 0, 6, 195, 26, 84, 0, 66, 0, 6, 195, 25, 95, 0, 66, 0, 0, 0, 7, 196, 84, 100, 201, 100, 66, 8, 197,
-			55, 18, 77, 80, 208, 65, 0, 0, 9, 198, 54, 180, 137, 53, 67, 64, 65, 0, 0, 0, 10, 66, 13, 96, 84, 107, 39, 47, 0, 24,
-			6, 195, 37, 160, 86, 66, 0, 10, 66, 17, 16, 81, 34, 35, 47, 0, 24, 10, 199, 44, 243, 80, 192, 82, 84, 52, 66, 0, 0, 6,
-			195, 54, 240, 85, 66, 10, 199, 47, 49, 79, 55, 18, 84, 52, 67, 0, 12, 65, 16, 81, 39, 72, 6, 37, 50, 35, 0, 25, 6, 195,
-			149, 53, 12, 66, 0, 7, 196, 64, 20, 147, 240, 66, 0, 12, 3, 226, 132, 150, 50, 6, 39, 65, 36, 34, 0, 7, 196, 97, 65, 20,
-			56, 66, 8, 197, 93, 180, 67, 80, 192, 66, 0, 8, 197, 73, 65, 71, 80, 176, 66, 6, 195, 224, 148, 192, 65, 7, 196, 45, 77, 145,
-			76, 66, 6, 195, 196, 20, 192, 66, 7, 196, 36, 212, 61, 76, 66, 7, 196, 25, 34, 253, 76, 66, 6, 195, 23, 30, 128, 65, 0, 8,
-			196, 52, 97, 197, 80, 72, 23, 8, 197, 175, 100, 147, 37, 96, 67, 0, 9, 198, 221, 114, 79, 48, 241, 0, 68, 7, 196, 72, 20, 21,
-			240, 66, 8, 197, 64, 20, 144, 245, 48, 66, 8, 197, 54, 240, 82, 79, 192, 67, 8, 197, 24, 180, 144, 245, 48, 66, 0, 9, 198, 8,
-			98, 9, 73, 60, 0, 67, 0, 7, 196, 66, 50, 193, 76, 66, 0, 9, 198, 47, 52, 209, 5, 95, 82, 67, 0, 9, 198, 77, 27, 210,
-			67, 212, 192, 66, 7, 196, 244, 156, 19, 240, 68, 9, 198, 45, 79, 148, 32, 197, 11, 67, 6, 195, 34, 210, 67, 65, 6, 195, 22, 200,
-			197, 66, 8, 197, 4, 93, 75, 5, 48, 67, 0, 9, 198, 52, 22, 113, 224, 148, 128, 68, 0, 7, 196, 197, 62, 228, 76, 67, 9, 198,
-			33, 176, 143, 48, 98, 250, 67, 0, 0, 9, 198, 24, 130, 75, 156, 97, 64, 68, 0, 0, 9, 198, 77, 27, 210, 67, 212, 252, 67, 9,
-			198, 76, 96, 83, 216, 49, 133, 68, 0, 0, 9, 198, 73, 62, 47, 156, 97, 64, 68, 7, 196, 67, 182, 6, 52, 66, 11, 200, 7, 179,
-			211, 70, 244, 144, 245, 48, 69, 11, 200, 153, 51, 211, 70, 244, 144, 245, 48, 68, 0, 6, 131, 226, 128, 166, 8, 7, 196, 54, 241, 139,
-			192, 67, 0, 11, 200, 52, 109, 203, 60, 208, 177, 5, 48, 69, 0, 8, 197, 86, 235, 211, 217, 0, 67, 7, 196, 224, 98, 212, 56, 67,
-			8, 197, 52, 17, 71, 80, 224, 66, 0, 0, 9, 198, 12, 99, 8, 24, 53, 12, 67, 0, 8, 197, 64, 99, 19, 24, 176, 66, 0, 9,
-			198, 24, 193, 139, 79, 97, 240, 68, 0, 0, 0, 0, 6, 195, 92, 155, 192, 66, 0, 0, 0, 11, 66, 25, 48, 36, 47, 6, 35, 91,
-			0, 24, 6, 195, 164, 193, 149, 66, 0, 7, 195, 74, 150, 148, 72, 23, 7, 196, 70, 181, 17, 72, 66, 7, 196, 52, 147, 111, 72, 66,
-			6, 195, 47, 193, 152, 66, 7, 196, 44, 17, 111, 72, 66, 6, 195, 10, 219, 210, 66, 6, 195, 180, 155, 210, 67, 0, 9, 198, 52, 146,
-			207, 48, 241, 0, 67, 7, 196, 44, 243, 73, 44, 66, 7, 196, 32, 20, 245, 68, 66, 0, 6, 195, 72, 107, 210, 66, 8, 197, 64, 20,
-			137, 189, 32, 67, 6, 195, 4, 90, 82, 66, 0, 6, 65, 20, 72, 13, 0, 7, 196, 88, 148, 233, 92, 66, 6, 195, 79, 90, 87, 66,
-			7, 196, 75, 22, 6, 92, 66, 6, 195, 74, 170, 87, 66, 7, 196, 64, 97, 111, 76, 66, 7, 196, 53, 177, 105, 92, 66, 6, 195, 48,
-			101, 123, 66, 8, 197, 45, 16, 69, 25, 112, 66, 9, 198, 47, 164, 194, 140, 230, 64, 66, 8, 197, 44, 19, 89, 36, 176, 66, 6, 195,
-			197, 91, 211, 66, 8, 197, 17, 16, 69, 25, 112, 66, 7, 196, 16, 145, 47, 76, 66, 6, 195, 19, 188, 0, 66, 6, 195, 18, 219, 211,
-			66, 9, 198, 212, 193, 138, 8, 243, 0, 65, 7, 196, 12, 100, 233, 92, 66, 8, 197, 8, 97, 12, 25, 112, 66, 6, 195, 234, 241, 253,
-			67, 0, 8, 197, 76, 243, 59, 189, 32, 67, 6, 195, 216, 219, 210, 66, 7, 196, 164, 62, 239, 72, 67, 9, 198, 36, 212, 6, 22, 244,
-			128, 67, 7, 196, 9, 16, 77, 196, 66, 0, 8, 196, 67, 208, 69, 36, 72, 23, 8, 197, 89, 16, 66, 165, 112, 66, 7, 196, 88, 147,
-			73, 44, 66, 8, 197, 88, 145, 81, 189, 48, 66, 7, 196, 66, 145, 39, 244, 65, 7, 196, 61, 54, 6, 76, 66, 9, 198, 52, 148, 207,
-			48, 241, 0, 67, 6, 195, 55, 17, 123, 66, 6, 195, 54, 242, 123, 67, 8, 197, 52, 19, 122, 25, 112, 67, 6, 195, 141, 81, 147, 66,
-			7, 196, 45, 68, 73, 236, 67, 6, 195, 47, 162, 123, 67, 8, 197, 24, 212, 60, 36, 176, 67, 7, 196, 15, 162, 111, 76, 67, 7, 196,
-			9, 245, 70, 76, 66, 0, 8, 197, 66, 149, 123, 189, 32, 67, 7, 196, 67, 160, 85, 196, 67, 7, 196, 52, 22, 129, 8, 66, 7, 196,
-			197, 62, 198, 72, 67, 0, 7, 196, 76, 251, 70, 76, 67, 8, 197, 73, 69, 76, 119, 208, 66, 7, 196, 221, 84, 212, 236, 65, 8, 197,
-			72, 186, 237, 25, 112, 67, 7, 196, 74, 229, 6, 76, 67, 7, 196, 72, 98, 233, 76, 66, 7, 196, 66, 147, 73, 236, 67, 8, 197, 64,
-			243, 9, 55, 176, 67, 7, 196, 56, 243, 65, 20, 66, 7, 196, 55, 5, 6, 76, 67, 8, 197, 45, 180, 141, 25, 48, 66, 9, 198, 44,
-			243, 119, 52, 243, 0, 67, 9, 198, 44, 48, 69, 70, 244, 192, 66, 6, 195, 46, 107, 123, 67, 7, 196, 36, 129, 39, 244, 65, 7, 196,
-			32, 17, 39, 244, 65, 8, 197, 21, 64, 140, 25, 48, 66, 7, 196, 20, 241, 39, 244, 65, 7, 196, 20, 100, 175, 76, 66, 7, 196, 20,
-			98, 233, 76, 66, 6, 195, 19, 171, 211, 66, 9, 198, 13, 16, 71, 180, 101, 192, 67, 0, 9, 198, 76, 98, 232, 84, 100, 128, 67, 8,
-			197, 20, 157, 228, 57, 32, 67, 0, 8, 197, 77, 27, 210, 87, 176, 66, 9, 198, 72, 98, 212, 56, 91, 211, 67, 9, 198, 65, 180, 117,
-			30, 149, 192, 67, 8, 197, 66, 145, 77, 25, 48, 66, 8, 197, 66, 51, 153, 25, 48, 66, 8, 197, 67, 160, 80, 25, 48, 67, 7, 196,
-			140, 142, 134, 76, 67, 8, 197, 45, 68, 82, 189, 48, 66, 9, 198, 44, 243, 112, 22, 244, 192, 67, 9, 198, 44, 243, 70, 20, 155, 211,
-			68, 7, 196, 46, 244, 243, 236, 67, 8, 197, 44, 19, 123, 39, 176, 68, 9, 198, 197, 52, 73, 18, 244, 192, 67, 7, 196, 36, 132, 73,
-			12, 65, 7, 196, 20, 240, 137, 12, 65, 7, 196, 232, 43, 70, 76, 67, 0, 5, 194, 144, 160, 65, 12, 201, 216, 142, 54, 36, 141, 69,
-			37, 49, 140, 69, 9, 198, 67, 100, 212, 11, 187, 210, 68, 0, 8, 197, 91, 195, 205, 189, 48, 67, 7, 196, 140, 47, 111, 76, 67, 9,
-			198, 19, 49, 79, 48, 158, 192, 68, 9, 198, 15, 180, 207, 48, 100, 192, 67, 8, 197, 5, 36, 60, 189, 48, 67, 0, 10, 199, 64, 193,
-			139, 72, 145, 35, 72, 67, 0, 10, 199, 73, 50, 80, 192, 82, 111, 76, 68, 10, 199, 44, 16, 145, 36, 243, 6, 76, 68, 8, 197, 197,
-			60, 5, 189, 48, 67, 0, 6, 195, 216, 219, 192, 66, 6, 195, 44, 248, 206, 66, 8, 197, 44, 20, 17, 36, 128, 66, 0, 11, 200, 73,
-			1, 151, 38, 210, 72, 189, 48, 69, 9, 198, 20, 98, 15, 23, 219, 211, 68, 6, 195, 188, 184, 195, 66, 8, 197, 180, 81, 150, 36, 80,
-			67, 0, 6, 195, 67, 100, 47, 66, 6, 195, 66, 98, 111, 67, 6, 195, 20, 248, 208, 66, 7, 196, 20, 115, 227, 56, 66, 0, 9, 198,
-			77, 27, 210, 67, 171, 211, 67, 12, 201, 67, 97, 139, 76, 241, 79, 18, 127, 64, 68, 11, 200, 24, 180, 139, 81, 18, 9, 189, 48, 68,
-			0, 11, 200, 84, 244, 207, 52, 20, 251, 38, 208, 70, 5, 194, 226, 208, 66, 8, 197, 20, 96, 134, 140, 224, 67, 0, 8, 197, 25, 129,
-			141, 36, 176, 67, 6, 195, 24, 130, 75, 66, 0, 8, 197, 84, 244, 248, 140, 224, 67, 9, 198, 80, 226, 67, 236, 208, 68, 68, 10, 199,
-			48, 98, 231, 60, 83, 227, 32, 69, 7, 196, 44, 19, 204, 196, 67, 7, 196, 20, 99, 21, 196, 66, 9, 198, 20, 98, 210, 77, 28, 64,
-			66, 0, 12, 201, 64, 243, 9, 76, 99, 73, 17, 27, 211, 69, 11, 200, 189, 50, 69, 25, 10, 82, 189, 48, 69, 0, 9, 198, 17, 27,
-			197, 60, 219, 192, 67, 8, 197, 12, 18, 6, 51, 16, 67, 0, 9, 198, 172, 17, 70, 52, 146, 192, 68, 0, 8, 197, 91, 179, 70, 51,
-			16, 67, 7, 196, 74, 129, 61, 196, 67, 0, 8, 197, 37, 36, 253, 36, 176, 67, 0, 9, 198, 9, 179, 4, 232, 245, 110, 68, 0, 0,
-			9, 198, 88, 245, 77, 233, 155, 64, 65, 9, 198, 74, 84, 207, 72, 190, 0, 67, 9, 198, 8, 144, 140, 36, 245, 110, 68, 0, 6, 195,
-			18, 222, 0, 66, 0, 9, 198, 84, 99, 5, 55, 166, 109, 65, 9, 198, 74, 48, 224, 56, 245, 110, 68, 6, 195, 25, 59, 128, 66, 0,
-			10, 199, 24, 180, 151, 193, 52, 73, 44, 67, 0, 9, 198, 20, 149, 123, 193, 114, 109, 69, 6, 195, 8, 21, 238, 66, 0, 6, 195, 95,
-			18, 75, 66, 7, 196, 73, 51, 201, 44, 66, 7, 196, 64, 148, 134, 92, 66, 7, 196, 64, 96, 198, 92, 66, 7, 196, 28, 144, 198, 92,
-			66, 6, 195, 15, 1, 151, 66, 6, 195, 11, 209, 151, 66, 6, 195, 4, 74, 23, 66, 0, 4, 193, 24, 72, 7, 196, 64, 100, 147, 184,
-			66, 7, 196, 61, 48, 198, 72, 66, 6, 195, 57, 251, 210, 66, 6, 195, 154, 244, 128, 66, 0, 7, 195, 32, 17, 64, 72, 23, 7, 196,
-			74, 129, 198, 92, 66, 8, 197, 72, 49, 147, 25, 112, 66, 6, 195, 164, 62, 192, 66, 8, 197, 65, 16, 82, 25, 112, 66, 6, 195, 64,
-			241, 147, 66, 8, 197, 64, 197, 3, 25, 112, 66, 7, 196, 66, 52, 198, 92, 66, 6, 195, 60, 33, 147, 66, 8, 197, 52, 148, 147, 36,
-			176, 66, 8, 197, 52, 18, 14, 36, 176, 66, 8, 197, 45, 18, 83, 36, 176, 66, 8, 197, 21, 177, 197, 25, 112, 66, 6, 195, 23, 90,
-			87, 66, 7, 196, 16, 213, 41, 92, 66, 7, 196, 5, 93, 142, 76, 66, 6, 195, 4, 81, 147, 66, 0, 6, 195, 98, 187, 64, 66, 6,
-			195, 91, 179, 241, 67, 6, 195, 84, 148, 238, 66, 6, 195, 87, 27, 64, 66, 7, 196, 166, 132, 175, 72, 67, 7, 196, 48, 145, 14, 196,
-			66, 7, 196, 32, 101, 147, 196, 66, 8, 197, 22, 226, 71, 189, 32, 67, 8, 197, 10, 209, 65, 91, 16, 67, 8, 197, 4, 36, 151, 25,
-			32, 66, 0, 9, 198, 108, 70, 204, 56, 146, 192, 65, 7, 196, 88, 18, 131, 236, 66, 7, 196, 73, 241, 198, 76, 66, 7, 196, 74, 81,
-			239, 76, 66, 7, 196, 75, 177, 239, 76, 66, 8, 197, 72, 18, 131, 189, 48, 66, 9, 198, 64, 243, 9, 76, 146, 192, 67, 8, 197, 64,
-			241, 111, 36, 176, 65, 7, 196, 61, 84, 134, 76, 66, 9, 198, 60, 36, 65, 32, 101, 192, 67, 9, 198, 44, 243, 80, 61, 36, 192, 66,
-			8, 197, 44, 148, 27, 165, 112, 65, 8, 197, 20, 148, 139, 189, 48, 66, 6, 195, 8, 22, 129, 66, 0, 7, 196, 79, 180, 201, 64, 66,
-			9, 198, 76, 99, 6, 76, 148, 0, 67, 7, 196, 67, 97, 41, 72, 66, 7, 196, 47, 49, 41, 72, 66, 8, 197, 44, 243, 80, 165, 32,
-			66, 8, 197, 24, 180, 144, 165, 32, 66, 8, 197, 9, 243, 6, 79, 16, 67, 7, 196, 7, 121, 14, 72, 67, 0, 8, 197, 85, 68, 75,
-			25, 48, 66, 8, 197, 84, 195, 211, 39, 176, 67, 7, 196, 86, 213, 198, 76, 66, 6, 195, 222, 67, 147, 66, 8, 197, 75, 30, 19, 36,
-			176, 67, 8, 197, 69, 70, 67, 25, 48, 66, 8, 197, 216, 219, 211, 36, 176, 67, 7, 196, 164, 228, 201, 236, 67, 8, 197, 65, 18, 67,
-			25, 48, 66, 8, 197, 64, 145, 147, 25, 48, 67, 8, 197, 64, 20, 147, 25, 48, 66, 8, 197, 64, 20, 129, 31, 176, 67, 7, 196, 161,
-			33, 146, 236, 67, 9, 198, 53, 66, 9, 46, 244, 192, 67, 7, 196, 55, 163, 197, 236, 67, 7, 196, 47, 212, 134, 76, 66, 8, 197, 44,
-			24, 21, 25, 48, 67, 8, 197, 22, 225, 165, 57, 48, 67, 9, 198, 20, 144, 66, 25, 50, 75, 68, 7, 196, 212, 83, 205, 236, 67, 8,
-			197, 9, 241, 71, 25, 48, 66, 8, 197, 4, 90, 82, 189, 48, 67, 0, 8, 197, 76, 98, 210, 78, 224, 66, 0, 9, 198, 84, 16, 145,
-			36, 187, 211, 67, 8, 197, 79, 131, 15, 55, 176, 67, 9, 198, 74, 84, 201, 73, 50, 75, 67, 9, 198, 72, 149, 110, 37, 50, 75, 68,
-			7, 196, 167, 83, 3, 236, 67, 10, 199, 68, 18, 11, 6, 3, 137, 44, 66, 9, 198, 64, 243, 65, 34, 242, 75, 66, 9, 198, 67, 171,
-			73, 76, 146, 192, 68, 8, 197, 176, 24, 14, 36, 176, 66, 9, 198, 52, 193, 139, 60, 222, 192, 67, 7, 196, 54, 226, 115, 236, 68, 8,
-			197, 49, 73, 19, 36, 176, 67, 8, 197, 48, 97, 9, 207, 176, 68, 7, 196, 46, 52, 104, 76, 66, 8, 197, 46, 224, 193, 79, 176, 65,
-			9, 198, 21, 177, 197, 60, 222, 192, 67, 9, 198, 20, 144, 251, 74, 244, 192, 67, 9, 198, 20, 100, 41, 74, 244, 192, 67, 8, 197, 19,
-			98, 14, 36, 176, 66, 9, 198, 16, 147, 100, 73, 50, 75, 67, 8, 197, 14, 49, 15, 55, 176, 67, 0, 7, 196, 91, 197, 17, 16, 66,
-			9, 198, 73, 180, 134, 50, 3, 177, 66, 9, 198, 24, 66, 80, 78, 3, 177, 66, 9, 198, 9, 27, 160, 57, 60, 64, 67, 0, 8, 197,
-			148, 35, 15, 36, 80, 67, 9, 198, 73, 15, 19, 60, 222, 192, 67, 9, 198, 72, 147, 84, 140, 228, 192, 67, 9, 198, 52, 17, 1, 35,
-			30, 192, 68, 8, 197, 46, 52, 113, 25, 48, 67, 8, 197, 47, 160, 66, 199, 176, 68, 9, 198, 24, 180, 147, 238, 67, 147, 67, 9, 198,
-			19, 98, 5, 60, 46, 192, 67, 9, 198, 9, 18, 68, 4, 95, 0, 67, 6, 195, 175, 209, 64, 66, 0, 9, 198, 92, 146, 204, 61, 36,
-			238, 67, 9, 198, 64, 243, 20, 87, 27, 64, 68, 0, 4, 193, 168, 72, 9, 198, 91, 176, 137, 92, 145, 64, 67, 7, 196, 149, 27, 70,
-			28, 67, 9, 198, 73, 99, 227, 73, 50, 75, 67, 8, 197, 66, 148, 147, 36, 112, 66, 9, 198, 64, 100, 147, 37, 114, 69, 67, 10, 199,
-			52, 20, 140, 61, 32, 198, 76, 67, 9, 198, 45, 66, 204, 156, 241, 64, 67, 8, 197, 44, 243, 15, 36, 80, 67, 8, 197, 32, 60, 39,
-			60, 80, 67, 9, 198, 24, 178, 9, 73, 60, 23, 67, 0, 7, 196, 55, 162, 201, 32, 66, 7, 196, 46, 118, 6, 16, 66, 0, 8, 197,
-			73, 94, 207, 36, 80, 67, 9, 198, 74, 80, 174, 37, 49, 147, 68, 10, 199, 72, 191, 79, 73, 51, 205, 236, 68, 10, 199, 68, 18, 14,
-			60, 67, 6, 20, 67, 9, 198, 19, 161, 123, 60, 34, 123, 69, 0, 15, 3, 95, 51, 88, 47, 34, 6, 37, 72, 36, 89, 36, 47, 0,
-			11, 200, 73, 58, 80, 76, 243, 73, 95, 16, 68, 6, 195, 47, 61, 74, 66, 8, 197, 44, 243, 39, 60, 128, 67, 10, 199, 21, 16, 77,
-			5, 53, 17, 16, 67, 0, 13, 3, 95, 48, 67, 89, 47, 6, 39, 47, 37, 50, 0, 9, 198, 128, 165, 198, 67, 109, 69, 68, 9, 198,
-			67, 98, 248, 74, 242, 75, 66, 6, 195, 225, 50, 75, 66, 9, 198, 52, 105, 76, 60, 145, 64, 68, 8, 197, 212, 94, 54, 212, 80, 68,
-			0, 11, 200, 96, 100, 195, 109, 20, 213, 198, 208, 68, 8, 197, 77, 18, 80, 140, 224, 66, 8, 197, 56, 146, 207, 79, 16, 67, 0, 9,
-			198, 79, 131, 56, 219, 81, 64, 68, 7, 196, 75, 28, 201, 52, 67, 11, 200, 53, 67, 19, 36, 219, 137, 207, 176, 70, 9, 198, 20, 147,
-			79, 61, 61, 69, 68, 0, 7, 196, 64, 100, 18, 196, 66, 8, 197, 16, 244, 147, 195, 16, 65, 0, 8, 197, 65, 26, 211, 36, 176, 66,
-			8, 197, 64, 243, 112, 36, 176, 67, 0, 7, 196, 47, 179, 210, 196, 67, 0, 9, 198, 77, 22, 194, 227, 109, 69, 68, 8, 197, 74, 51,
-			112, 36, 176, 65, 7, 196, 67, 172, 201, 52, 67, 0, 0, 10, 3, 95, 49, 67, 89, 47, 6, 39, 0, 8, 197, 66, 126, 240, 36, 176,
-			66, 9, 198, 32, 20, 207, 99, 2, 75, 66, 8, 197, 34, 110, 176, 36, 176, 66, 8, 197, 22, 126, 240, 36, 176, 66, 9, 198, 22, 113,
-			133, 192, 146, 192, 66, 9, 198, 22, 209, 139, 227, 109, 69, 69, 9, 198, 212, 163, 137, 44, 198, 203, 67, 0, 7, 196, 47, 160, 179, 184,
-			67, 0, 8, 197, 89, 27, 240, 36, 176, 65, 9, 198, 77, 21, 7, 192, 146, 192, 65, 10, 199, 73, 179, 73, 100, 204, 9, 44, 66, 6,
-			195, 24, 204, 0, 66, 6, 195, 18, 211, 217, 66, 0, 9, 198, 189, 50, 83, 177, 44, 64, 68, 0, 6, 195, 81, 15, 64, 66, 9, 198,
-			73, 178, 77, 192, 226, 75, 66, 10, 199, 67, 99, 73, 100, 204, 9, 44, 66, 9, 198, 64, 193, 141, 192, 226, 75, 65, 0, 6, 195, 16,
-			19, 112, 66, 0, 20, 3, 95, 49, 57, 72, 4, 36, 84, 36, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 6, 195, 91, 161, 141, 66,
-			11, 200, 65, 180, 117, 53, 182, 48, 36, 176, 69, 9, 198, 67, 98, 193, 31, 2, 75, 66, 7, 196, 64, 241, 70, 52, 66, 10, 199, 52,
-			104, 206, 88, 243, 9, 44, 68, 6, 195, 36, 211, 211, 66, 6, 195, 32, 20, 61, 66, 0, 19, 3, 95, 49, 56, 4, 39, 89, 36, 65,
-			50, 6, 35, 72, 36, 89, 36, 47, 0, 7, 196, 84, 244, 132, 192, 66, 9, 198, 76, 99, 6, 72, 190, 0, 67, 7, 196, 16, 240, 140,
-			192, 66, 0, 13, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 35, 0, 6, 195, 78, 146, 61, 66, 7, 196, 68, 18, 5, 244, 66, 11,
-			200, 65, 18, 67, 109, 17, 240, 36, 176, 66, 10, 199, 160, 52, 65, 73, 60, 9, 44, 68, 6, 195, 144, 82, 61, 66, 6, 195, 46, 119,
-			125, 66, 7, 196, 8, 99, 15, 76, 66, 0, 7, 196, 73, 68, 251, 192, 67, 9, 198, 67, 100, 207, 76, 148, 0, 67, 8, 197, 66, 149,
-			73, 45, 32, 66, 9, 198, 47, 48, 240, 92, 156, 237, 69, 9, 198, 25, 34, 201, 52, 244, 128, 67, 6, 195, 191, 52, 128, 66, 0, 6,
-			195, 79, 191, 64, 66, 6, 195, 64, 242, 61, 66, 6, 195, 60, 34, 61, 66, 8, 197, 52, 21, 73, 61, 48, 67, 7, 196, 47, 210, 69,
-			244, 67, 8, 197, 20, 148, 144, 81, 48, 66, 6, 195, 168, 188, 211, 66, 6, 195, 4, 131, 211, 66, 0, 7, 196, 79, 101, 70, 40, 66,
-			9, 198, 197, 62, 228, 92, 156, 237, 70, 6, 195, 15, 161, 140, 66, 0, 5, 193, 144, 72, 23, 6, 65, 28, 90, 13, 0, 7, 196, 84,
-			17, 15, 76, 66, 8, 197, 79, 209, 129, 23, 208, 68, 8, 197, 79, 179, 73, 23, 208, 67, 8, 197, 67, 97, 84, 45, 48, 66, 6, 195,
-			66, 227, 211, 66, 9, 198, 53, 180, 83, 12, 101, 192, 66, 6, 195, 55, 23, 125, 66, 8, 197, 140, 36, 65, 23, 208, 67, 8, 197, 44,
-			22, 109, 61, 48, 67, 0, 7, 196, 67, 177, 6, 48, 66, 9, 198, 60, 194, 68, 61, 90, 78, 68, 8, 197, 47, 210, 85, 24, 160, 67,
-			0, 7, 195, 13, 42, 69, 72, 23, 18, 3, 95, 49, 49, 36, 72, 4, 37, 50, 6, 35, 72, 36, 89, 36, 47, 0, 8, 197, 164, 92,
-			68, 61, 48, 65, 6, 195, 166, 162, 61, 67, 7, 196, 64, 153, 68, 244, 67, 8, 197, 53, 68, 139, 25, 48, 66, 7, 196, 52, 25, 69,
-			244, 67, 7, 196, 16, 96, 233, 44, 66, 0, 12, 3, 95, 49, 48, 72, 6, 36, 89, 36, 47, 0, 8, 197, 60, 36, 147, 164, 192, 66,
-			9, 198, 48, 100, 142, 37, 129, 138, 67, 8, 197, 47, 160, 77, 24, 192, 67, 9, 198, 47, 160, 68, 116, 242, 0, 67, 8, 197, 19, 3,
-			211, 37, 0, 67, 8, 197, 233, 98, 123, 24, 160, 68, 7, 196, 172, 62, 134, 48, 67, 0, 8, 196, 73, 15, 70, 20, 72, 23, 8, 196,
-			64, 244, 169, 20, 72, 23, 7, 195, 145, 42, 69, 72, 23, 13, 3, 95, 51, 67, 47, 34, 6, 37, 89, 47, 35, 0, 17, 3, 95, 49,
-			51, 47, 34, 37, 50, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 148, 180, 137, 20, 147, 211, 68, 8, 197, 73, 68, 240, 119, 208, 67,
-			8, 197, 164, 114, 82, 119, 208, 67, 10, 199, 64, 243, 20, 36, 82, 79, 76, 69, 6, 195, 54, 241, 135, 66, 9, 198, 45, 22, 196, 60,
-			143, 64, 67, 0, 17, 3, 95, 49, 50, 72, 84, 35, 50, 6, 35, 72, 36, 89, 36, 47, 0, 0, 7, 195, 88, 99, 64, 72, 23, 17,
-			3, 95, 49, 53, 48, 36, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 8, 197, 77, 68, 19, 24, 112, 66, 8, 197, 73, 180, 66, 24,
-			112, 66, 9, 198, 72, 99, 18, 108, 49, 147, 67, 8, 197, 164, 191, 69, 119, 208, 67, 9, 198, 68, 18, 146, 108, 49, 147, 67, 7, 196,
-			65, 179, 40, 28, 66, 7, 196, 54, 49, 70, 28, 66, 8, 197, 48, 241, 56, 24, 80, 67, 6, 195, 47, 138, 7, 66, 9, 198, 44, 20,
-			139, 4, 87, 125, 67, 8, 197, 17, 16, 69, 24, 112, 66, 9, 198, 19, 211, 215, 12, 100, 192, 67, 0, 21, 3, 95, 49, 52, 76, 4,
-			36, 47, 37, 34, 37, 50, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 67, 100, 207, 43, 177, 138, 68, 8, 197, 53, 68, 165, 56, 64,
-			66, 8, 197, 51, 19, 211, 37, 0, 67, 6, 195, 24, 223, 0, 66, 0, 20, 3, 95, 49, 55, 89, 4, 36, 72, 36, 65, 50, 6, 35,
-			72, 36, 89, 36, 47, 0, 9, 198, 74, 49, 79, 48, 97, 64, 67, 12, 201, 66, 148, 139, 205, 94, 240, 92, 152, 0, 68, 11, 200, 47,
-			52, 209, 5, 80, 68, 61, 48, 68, 6, 195, 15, 177, 131, 66, 9, 198, 4, 223, 83, 37, 39, 125, 68, 0, 18, 3, 95, 49, 54, 91,
-			36, 89, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 24, 83, 143, 96, 204, 0, 67, 8, 197, 9, 67, 123, 188, 64, 67, 7,
-			196, 172, 59, 111, 16, 67, 0, 7, 196, 52, 104, 206, 28, 66, 6, 195, 47, 209, 141, 66, 9, 198, 9, 16, 83, 157, 129, 133, 67, 0,
-			17, 3, 95, 55, 88, 89, 36, 72, 36, 65, 72, 36, 89, 6, 36, 47, 0, 12, 201, 168, 81, 143, 20, 148, 144, 48, 98, 128, 69, 0,
-			0, 0, 6, 195, 22, 243, 192, 66, 7, 196, 164, 186, 134, 52, 67, 0, 6, 195, 77, 74, 12, 66, 0, 7, 196, 84, 150, 70, 44, 66,
-			6, 195, 9, 250, 75, 66, 0, 8, 197, 96, 150, 56, 24, 160, 67, 8, 197, 87, 162, 82, 24, 160, 67, 0, 0, 7, 196, 145, 55, 233,
-			48, 67, 9, 198, 54, 98, 15, 48, 98, 128, 67, 8, 197, 212, 83, 197, 24, 192, 67, 0, 0, 0, 0, 0, 0, 7, 196, 52, 100, 207,
-			88, 66, 9, 198, 212, 95, 65, 32, 81, 140, 68, 0, 6, 195, 73, 176, 189, 66, 6, 195, 72, 178, 125, 66, 16, 205, 61, 49, 152, 25,
-			36, 195, 192, 245, 118, 57, 57, 198, 92, 70, 6, 195, 52, 17, 253, 66, 0, 5, 193, 160, 72, 9, 7, 196, 13, 180, 54, 72, 66, 0,
-			7, 196, 81, 96, 71, 244, 67, 7, 196, 73, 51, 194, 244, 66, 7, 196, 72, 20, 29, 244, 66, 6, 195, 216, 35, 211, 66, 7, 196, 68,
-			18, 2, 244, 66, 7, 196, 64, 241, 66, 244, 66, 6, 195, 60, 47, 64, 66, 6, 195, 173, 55, 125, 66, 0, 6, 195, 18, 61, 88, 66,
-			0, 6, 195, 84, 197, 61, 66, 6, 195, 79, 15, 64, 66, 7, 196, 149, 16, 83, 244, 67, 6, 195, 167, 116, 64, 66, 7, 196, 60, 47,
-			79, 76, 67, 6, 195, 52, 18, 189, 66, 0, 6, 65, 32, 88, 13, 0, 8, 197, 68, 18, 14, 61, 32, 66, 8, 197, 180, 32, 83, 217,
-			32, 67, 0, 7, 196, 88, 240, 143, 76, 66, 8, 197, 87, 178, 66, 61, 48, 65, 7, 196, 78, 153, 7, 244, 67, 9, 198, 68, 17, 73,
-			61, 111, 64, 68, 8, 197, 67, 164, 206, 119, 208, 66, 7, 196, 52, 100, 198, 244, 67, 6, 195, 47, 132, 253, 66, 6, 195, 47, 62, 0,
-			66, 6, 195, 47, 49, 125, 66, 6, 195, 44, 157, 83, 66, 6, 195, 28, 157, 83, 66, 6, 195, 18, 99, 211, 66, 6, 195, 168, 135, 125,
-			66, 0, 7, 196, 9, 179, 53, 96, 66, 7, 196, 180, 44, 79, 72, 67, 0, 8, 197, 85, 18, 72, 119, 208, 66, 9, 198, 87, 212, 141,
-			4, 127, 64, 67, 7, 196, 86, 227, 247, 84, 67, 9, 198, 77, 18, 75, 60, 199, 125, 67, 8, 197, 68, 18, 19, 213, 16, 66, 7, 196,
-			55, 52, 221, 244, 66, 8, 197, 55, 52, 176, 119, 208, 67, 7, 196, 17, 25, 157, 244, 66, 0, 15, 3, 95, 50, 88, 72, 84, 6, 35,
-			72, 36, 89, 36, 47, 0, 7, 196, 60, 35, 15, 16, 66, 0, 8, 197, 66, 242, 75, 119, 208, 67, 6, 195, 160, 49, 135, 66, 8, 197,
-			31, 49, 12, 119, 208, 66, 8, 197, 188, 177, 147, 119, 208, 67, 8, 197, 188, 98, 197, 61, 48, 67, 0, 9, 198, 129, 100, 203, 49, 64,
-			128, 66, 7, 196, 25, 11, 143, 16, 67, 7, 196, 20, 155, 79, 16, 67, 0, 9, 198, 91, 99, 137, 45, 223, 64, 67, 8, 197, 75, 186,
-			147, 119, 208, 67, 7, 196, 66, 52, 198, 28, 66, 7, 196, 245, 62, 6, 20, 67, 9, 198, 20, 98, 59, 77, 223, 64, 67, 8, 197, 13,
-			180, 83, 24, 112, 66, 8, 197, 189, 50, 80, 60, 80, 67, 0, 6, 195, 34, 211, 196, 66, 0, 8, 197, 73, 59, 39, 24, 80, 67, 8,
-			197, 25, 2, 72, 60, 80, 67, 9, 198, 9, 22, 211, 12, 97, 192, 66, 0, 8, 197, 32, 243, 204, 60, 64, 67, 6, 195, 190, 211, 196,
-			67, 0, 9, 198, 68, 18, 16, 48, 241, 64, 66, 10, 199, 64, 243, 20, 60, 47, 79, 76, 69, 8, 197, 34, 188, 231, 24, 80, 68, 9,
-			198, 153, 51, 205, 205, 55, 125, 68, 0, 8, 197, 55, 30, 237, 60, 64, 68, 8, 197, 44, 25, 76, 60, 64, 67, 0, 10, 199, 73, 59,
-			15, 60, 47, 79, 76, 69, 9, 198, 67, 168, 205, 193, 55, 125, 68, 0, 0, 11, 200, 36, 130, 212, 73, 61, 67, 24, 80, 68, 7, 196,
-			33, 67, 20, 52, 66, 11, 200, 25, 36, 198, 73, 61, 67, 24, 80, 68, 0, 7, 196, 88, 244, 198, 48, 66, 0, 10, 3, 95, 63, 63,
-			88, 50, 35, 49, 0, 6, 195, 96, 21, 25, 66, 6, 195, 44, 21, 25, 66, 12, 201, 24, 193, 139, 79, 99, 115, 77, 223, 64, 69, 0,
-			8, 197, 73, 15, 126, 55, 0, 66, 0, 12, 201, 48, 148, 251, 5, 53, 54, 12, 97, 64, 70, 0, 18, 3, 95, 52, 88, 76, 36, 47,
-			37, 34, 6, 37, 72, 36, 89, 36, 47, 0, 10, 199, 66, 209, 179, 76, 243, 15, 16, 69, 0, 10, 199, 52, 21, 141, 81, 19, 20, 44,
-			67, 0, 0, 7, 195, 45, 179, 64, 72, 23, 0, 0, 0, 6, 195, 164, 140, 192, 66, 11, 200, 64, 243, 9, 76, 244, 197, 24, 192, 68,
-			6, 195, 144, 76, 192, 66, 6, 195, 19, 179, 202, 66, 6, 195, 168, 140, 192, 66, 6, 195, 8, 146, 51, 66, 6, 195, 8, 145, 115, 66,
-			6, 195, 11, 172, 192, 66, 0, 6, 195, 73, 179, 64, 72, 6, 195, 61, 61, 81, 66, 7, 196, 52, 20, 148, 68, 66, 7, 196, 45, 68,
-			148, 68, 66, 7, 196, 44, 240, 148, 68, 66, 7, 196, 36, 82, 79, 52, 67, 0, 15, 3, 95, 53, 88, 48, 36, 47, 72, 36, 89, 6,
-			36, 47, 0, 6, 195, 91, 211, 115, 66, 7, 196, 85, 68, 68, 204, 66, 6, 195, 87, 160, 115, 67, 8, 197, 68, 17, 73, 81, 32, 65,
-			7, 196, 53, 69, 76, 204, 66, 6, 195, 55, 211, 115, 66, 6, 195, 54, 246, 115, 66, 7, 196, 52, 18, 15, 48, 66, 6, 195, 47, 209,
-			115, 66, 6, 195, 46, 247, 115, 66, 7, 196, 8, 99, 79, 48, 66, 0, 0, 8, 197, 64, 243, 9, 19, 48, 67, 6, 195, 64, 17, 51,
-			66, 8, 197, 52, 240, 137, 87, 48, 65, 6, 195, 52, 19, 115, 66, 6, 195, 45, 68, 51, 66, 7, 196, 18, 49, 15, 48, 66, 6, 195,
-			12, 17, 51, 66, 6, 195, 9, 70, 115, 66, 7, 196, 8, 144, 187, 204, 67, 8, 197, 8, 98, 2, 216, 160, 66, 6, 195, 232, 76, 192,
-			66, 0, 7, 196, 75, 17, 118, 52, 66, 7, 196, 15, 179, 84, 76, 66, 7, 196, 8, 99, 44, 244, 67, 0, 7, 196, 64, 243, 80, 204,
-			66, 7, 196, 67, 9, 68, 204, 67, 9, 198, 56, 249, 81, 37, 68, 128, 66, 7, 196, 48, 97, 9, 204, 67, 7, 196, 44, 19, 73, 204,
-			67, 6, 195, 31, 161, 51, 66, 7, 196, 25, 2, 68, 204, 67, 9, 198, 20, 144, 80, 4, 140, 192, 68, 6, 195, 10, 226, 115, 67, 0,
-			8, 197, 68, 18, 12, 60, 208, 66, 8, 197, 68, 18, 4, 159, 208, 65, 8, 197, 10, 242, 209, 81, 48, 66, 6, 195, 188, 241, 64, 66,
-			0, 7, 196, 74, 81, 73, 204, 67, 13, 202, 64, 241, 80, 164, 84, 134, 20, 20, 198, 48, 65, 8, 197, 64, 241, 77, 60, 192, 66, 7,
-			196, 176, 18, 9, 204, 68, 8, 197, 52, 21, 129, 19, 48, 67, 8, 197, 45, 16, 88, 60, 192, 66, 8, 197, 47, 19, 210, 183, 48, 68,
-			8, 197, 44, 62, 147, 239, 48, 67, 8, 197, 24, 208, 145, 39, 48, 67, 7, 196, 13, 180, 72, 224, 66, 9, 198, 189, 50, 68, 236, 242,
-			128, 68, 0, 5, 193, 36, 72, 8, 7, 196, 61, 49, 39, 244, 65, 7, 196, 60, 37, 143, 20, 66, 6, 195, 147, 97, 64, 66, 9, 198,
-			44, 25, 80, 80, 196, 192, 67, 7, 196, 197, 37, 12, 76, 66, 9, 198, 24, 50, 237, 37, 4, 192, 67, 0, 16, 3, 95, 54, 88, 91,
-			36, 89, 47, 72, 36, 89, 6, 36, 47, 0, 7, 196, 86, 245, 122, 204, 67, 10, 199, 52, 193, 139, 204, 17, 79, 40, 68, 7, 196, 52,
-			146, 246, 8, 66, 8, 197, 19, 163, 137, 35, 48, 67, 8, 197, 8, 25, 76, 119, 48, 67, 0, 8, 197, 47, 52, 148, 49, 48, 66, 0,
-			7, 196, 83, 99, 15, 16, 67, 9, 198, 216, 83, 197, 192, 93, 142, 68, 8, 197, 10, 241, 123, 60, 192, 67, 0, 8, 197, 66, 145, 68,
-			159, 208, 65, 0, 8, 197, 216, 188, 5, 216, 192, 67, 6, 195, 67, 195, 196, 66, 8, 197, 19, 161, 123, 60, 32, 67, 9, 198, 188, 67,
-			15, 84, 240, 128, 67, 0, 8, 197, 64, 241, 86, 60, 80, 66, 6, 195, 64, 150, 167, 66, 7, 196, 67, 178, 79, 20, 67, 8, 197, 25,
-			144, 85, 60, 80, 67, 9, 198, 24, 193, 139, 79, 97, 64, 67, 0, 9, 198, 84, 146, 9, 60, 195, 196, 68, 6, 195, 72, 98, 51, 66,
-			6, 195, 67, 211, 202, 66, 8, 197, 61, 51, 204, 60, 64, 67, 6, 195, 53, 77, 206, 66, 6, 195, 47, 131, 202, 66, 8, 197, 16, 99,
-			204, 60, 64, 67, 8, 197, 9, 67, 5, 60, 64, 66, 8, 197, 8, 147, 204, 60, 64, 67, 6, 195, 188, 156, 192, 67, 0, 8, 197, 67,
-			160, 86, 60, 80, 67, 0, 6, 195, 221, 3, 204, 66, 10, 199, 72, 98, 72, 52, 243, 15, 16, 68, 6, 195, 60, 140, 192, 66, 7, 196,
-			56, 253, 246, 16, 67, 6, 195, 160, 61, 142, 66, 8, 197, 44, 242, 60, 60, 64, 65, 10, 199, 24, 208, 145, 36, 243, 15, 16, 68, 8,
-			197, 169, 20, 212, 60, 128, 67, 10, 199, 9, 179, 4, 232, 245, 79, 8, 68, 0, 9, 198, 44, 148, 140, 244, 241, 64, 67, 9, 198, 13,
-			177, 12, 236, 241, 64, 67, 0, 6, 195, 67, 204, 192, 66, 6, 195, 67, 188, 192, 66, 10, 199, 61, 89, 76, 52, 243, 15, 16, 68, 9,
-			198, 52, 98, 15, 32, 242, 128, 67, 6, 195, 44, 22, 115, 66, 8, 197, 44, 20, 147, 216, 224, 66, 7, 196, 212, 94, 15, 40, 67, 7,
-			196, 11, 2, 15, 48, 66, 0, 0, 7, 196, 92, 146, 204, 204, 66, 8, 197, 79, 192, 148, 103, 48, 67, 8, 197, 74, 83, 137, 60, 192,
-			67, 10, 199, 73, 1, 140, 24, 243, 15, 16, 68, 9, 198, 60, 81, 139, 60, 204, 192, 68, 6, 195, 144, 179, 51, 66, 8, 197, 52, 146,
-			246, 87, 48, 67, 7, 196, 48, 244, 137, 204, 67, 7, 196, 44, 20, 201, 204, 67, 7, 196, 32, 20, 140, 204, 66, 9, 198, 24, 193, 139,
-			79, 99, 128, 67, 9, 198, 20, 146, 211, 61, 92, 192, 67, 10, 199, 10, 180, 251, 36, 243, 15, 16, 69, 8, 197, 7, 179, 200, 60, 192,
-			68, 0, 7, 196, 66, 147, 15, 52, 66, 0, 9, 198, 95, 4, 212, 68, 156, 192, 68, 8, 197, 77, 180, 78, 179, 128, 67, 11, 200, 73,
-			51, 205, 5, 51, 204, 60, 64, 68, 7, 196, 66, 244, 137, 204, 67, 10, 199, 45, 18, 77, 196, 243, 15, 16, 68, 8, 197, 44, 243, 15,
-			87, 48, 67, 9, 198, 44, 20, 134, 76, 245, 115, 68, 8, 197, 20, 243, 79, 87, 48, 67, 10, 199, 23, 179, 65, 76, 243, 15, 16, 68,
-			9, 198, 168, 139, 211, 60, 195, 196, 68, 8, 197, 8, 20, 147, 39, 48, 67, 0, 9, 198, 75, 185, 207, 23, 211, 197, 69, 6, 195, 165,
-			53, 25, 66, 8, 197, 68, 18, 4, 216, 208, 66, 10, 199, 40, 241, 103, 60, 95, 79, 20, 69, 7, 196, 8, 244, 212, 100, 66, 0, 16,
-			3, 95, 56, 88, 39, 89, 36, 65, 72, 36, 89, 6, 36, 47, 0, 9, 198, 88, 99, 9, 61, 61, 144, 68, 11, 200, 84, 148, 248, 5,
-			51, 204, 60, 64, 69, 9, 198, 78, 146, 133, 124, 226, 115, 68, 13, 202, 65, 34, 86, 61, 82, 72, 36, 243, 15, 16, 70, 8, 197, 45,
-			43, 143, 87, 48, 67, 7, 196, 47, 52, 246, 48, 66, 8, 197, 20, 243, 113, 39, 48, 68, 8, 197, 12, 100, 246, 19, 48, 67, 9, 198,
-			12, 100, 147, 156, 242, 128, 67, 0, 10, 199, 92, 155, 231, 60, 95, 79, 20, 70, 10, 199, 88, 207, 103, 60, 95, 79, 20, 69, 10, 199,
-			75, 185, 219, 16, 206, 207, 20, 69, 11, 200, 13, 177, 12, 27, 81, 125, 60, 80, 69, 0, 11, 200, 160, 61, 144, 5, 51, 204, 60, 64,
-			69, 0, 0, 9, 198, 141, 28, 68, 61, 92, 192, 68, 9, 198, 44, 243, 66, 196, 98, 51, 68, 0, 0, 6, 195, 68, 18, 179, 66, 7,
-			196, 64, 240, 143, 40, 66, 7, 196, 61, 48, 143, 40, 66, 6, 195, 52, 29, 206, 66, 6, 195, 46, 252, 192, 66, 0, 0, 17, 3, 95,
-			57, 88, 72, 36, 84, 36, 47, 72, 36, 89, 6, 36, 47, 0, 7, 196, 68, 18, 53, 40, 66, 6, 195, 244, 99, 204, 67, 5, 194, 163,
-			48, 66, 8, 197, 44, 21, 2, 60, 160, 67, 6, 195, 188, 29, 206, 67, 0, 8, 196, 73, 13, 147, 36, 72, 23, 7, 196, 4, 81, 144,
-			76, 66, 0, 7, 196, 79, 99, 66, 204, 66, 12, 201, 68, 17, 73, 60, 68, 65, 52, 245, 115, 70, 7, 196, 47, 160, 143, 48, 66, 7,
-			196, 32, 16, 143, 40, 66, 0, 7, 196, 89, 179, 2, 176, 65, 0, 7, 196, 80, 226, 119, 56, 67, 8, 197, 77, 18, 66, 60, 160, 66,
-			8, 197, 68, 18, 2, 60, 160, 66, 8, 197, 65, 18, 66, 60, 160, 66, 8, 197, 145, 3, 204, 27, 48, 68, 6, 195, 46, 148, 243, 66,
-			6, 195, 46, 147, 204, 66, 7, 196, 28, 19, 66, 204, 66, 6, 195, 10, 210, 243, 66, 0, 8, 197, 65, 18, 74, 60, 208, 66, 7, 196,
-			188, 20, 207, 52, 67, 0, 6, 65, 40, 37, 0, 72, 8, 197, 81, 99, 194, 60, 192, 67, 8, 197, 68, 18, 11, 60, 192, 66, 8, 197,
-			67, 98, 72, 212, 192, 67, 6, 195, 60, 35, 200, 66, 7, 196, 55, 162, 212, 96, 66, 0, 12, 3, 95, 63, 65, 71, 6, 40, 49, 84,
-			35, 0, 8, 197, 75, 186, 147, 81, 48, 67, 8, 197, 64, 243, 49, 60, 208, 67, 9, 198, 197, 36, 201, 77, 68, 192, 67, 0, 9, 198,
-			88, 19, 70, 48, 108, 192, 68, 9, 198, 85, 27, 203, 52, 29, 206, 67, 9, 198, 84, 98, 140, 25, 60, 192, 67, 8, 197, 87, 163, 65,
-			220, 224, 67, 7, 196, 175, 209, 70, 204, 68, 0, 0, 7, 196, 91, 181, 207, 16, 66, 11, 200, 28, 99, 6, 32, 240, 134, 79, 48, 69,
-			0, 9, 198, 48, 97, 79, 88, 241, 64, 67, 6, 195, 34, 99, 197, 66, 0, 11, 200, 5, 37, 109, 76, 240, 134, 79, 48, 69, 0, 8,
-			197, 73, 180, 54, 212, 80, 67, 7, 196, 68, 18, 53, 20, 66, 8, 197, 160, 35, 210, 212, 80, 67, 8, 197, 13, 178, 22, 60, 80, 66,
-			0, 9, 198, 52, 146, 47, 79, 100, 0, 67, 7, 196, 47, 53, 84, 32, 66, 6, 195, 34, 188, 192, 66, 6, 195, 30, 220, 192, 66, 0,
-			9, 198, 66, 52, 206, 61, 99, 197, 67, 8, 197, 66, 208, 77, 80, 80, 67, 9, 198, 49, 67, 143, 88, 241, 64, 67, 9, 198, 47, 49,
-			136, 152, 241, 64, 68, 9, 198, 212, 83, 207, 79, 81, 64, 68, 9, 198, 153, 51, 200, 152, 241, 64, 68, 0, 8, 197, 75, 19, 204, 60,
-			64, 67, 7, 196, 67, 96, 143, 40, 66, 6, 195, 66, 195, 51, 66, 8, 197, 55, 51, 204, 60, 64, 67, 6, 195, 11, 48, 179, 66, 0,
-			9, 198, 67, 98, 72, 88, 241, 64, 67, 10, 199, 52, 193, 139, 60, 137, 143, 20, 68, 10, 199, 17, 22, 205, 60, 244, 245, 20, 68, 9,
-			198, 16, 18, 56, 219, 81, 64, 68, 9, 198, 12, 100, 246, 88, 241, 64, 67, 0, 9, 198, 76, 101, 142, 60, 195, 196, 67, 9, 198, 64,
-			100, 207, 8, 242, 128, 67, 7, 196, 66, 244, 198, 204, 67, 7, 196, 55, 4, 207, 48, 66, 6, 195, 9, 68, 243, 66, 0, 9, 198, 72,
-			147, 80, 76, 243, 64, 66, 9, 198, 52, 20, 140, 227, 109, 69, 68, 11, 200, 24, 180, 139, 81, 18, 39, 60, 80, 68, 0, 6, 195, 87,
-			3, 204, 66, 6, 195, 67, 100, 243, 66, 6, 195, 64, 244, 248, 66, 9, 198, 19, 17, 139, 60, 195, 196, 68, 6, 195, 10, 212, 243, 66,
-			0, 10, 199, 88, 193, 130, 60, 137, 143, 20, 68, 6, 195, 36, 132, 236, 65, 0, 8, 197, 91, 211, 210, 47, 128, 67, 9, 198, 160, 35,
-			210, 44, 204, 192, 67, 7, 196, 36, 131, 211, 224, 67, 8, 197, 31, 195, 210, 47, 128, 67, 0, 9, 198, 89, 27, 248, 219, 81, 64, 68,
-			8, 197, 4, 77, 142, 60, 208, 67, 0, 7, 196, 55, 62, 15, 48, 67, 9, 198, 52, 227, 196, 60, 35, 202, 67, 8, 197, 20, 144, 82,
-			47, 128, 67, 11, 200, 20, 155, 70, 45, 51, 204, 60, 64, 69, 10, 199, 8, 20, 139, 25, 48, 143, 48, 65, 8, 197, 153, 51, 196, 60,
-			192, 67, 0, 9, 198, 5, 36, 246, 56, 243, 64, 67, 0, 9, 198, 73, 180, 87, 24, 35, 204, 67, 9, 198, 73, 62, 198, 61, 34, 248,
-			68, 8, 197, 47, 17, 146, 47, 128, 67, 10, 199, 20, 100, 134, 76, 240, 143, 40, 68, 9, 198, 17, 180, 76, 60, 35, 204, 67, 0, 7,
-			196, 46, 251, 73, 128, 66, 7, 196, 34, 107, 73, 128, 65, 11, 200, 24, 193, 139, 79, 100, 54, 212, 80, 69, 0, 7, 196, 88, 22, 73,
-			100, 66, 10, 199, 73, 1, 139, 79, 100, 139, 224, 67, 11, 200, 52, 17, 14, 37, 51, 210, 47, 128, 68, 10, 199, 24, 193, 139, 79, 100,
-			139, 224, 68, 9, 198, 18, 208, 239, 61, 34, 248, 68, 0, 0, 0, 9, 198, 45, 180, 69, 30, 210, 96, 65, 10, 199, 17, 16, 83, 37,
-			38, 9, 128, 65, 0, 7, 196, 88, 18, 58, 76, 66, 7, 196, 67, 102, 9, 76, 65, 6, 195, 140, 133, 17, 66, 6, 195, 45, 67, 124,
-			66, 0, 10, 199, 72, 96, 251, 60, 146, 19, 176, 68, 0, 26, 4, 104, 116, 116, 112, 36, 57, 76, 47, 37, 12, 47, 37, 12, 6, 48,
-			37, 12, 10, 0, 81, 58, 47, 47, 32, 12, 201, 80, 196, 209, 4, 210, 75, 217, 34, 248, 69, 8, 197, 77, 18, 84, 53, 80, 66, 7,
-			196, 44, 22, 77, 240, 66, 8, 197, 24, 180, 144, 237, 48, 66, 9, 198, 20, 100, 15, 32, 148, 192, 66, 7, 196, 16, 96, 196, 240, 66,
-			0, 0, 8, 197, 74, 83, 133, 233, 48, 66, 8, 197, 44, 99, 6, 67, 192, 67, 6, 195, 32, 101, 124, 66, 6, 195, 12, 98, 60, 66,
-			6, 195, 8, 98, 60, 66, 0, 8, 197, 76, 97, 12, 37, 128, 66, 8, 197, 44, 148, 58, 37, 32, 67, 8, 197, 11, 1, 149, 37, 32,
-			67, 0, 6, 65, 44, 49, 13, 0, 6, 195, 67, 213, 124, 66, 8, 197, 64, 241, 73, 80, 208, 65, 8, 197, 52, 97, 73, 80, 208, 65,
-			8, 197, 47, 19, 213, 184, 208, 67, 8, 197, 44, 17, 65, 37, 80, 67, 9, 198, 43, 179, 196, 48, 149, 64, 67, 0, 7, 196, 79, 2,
-			20, 88, 66, 6, 195, 55, 62, 150, 66, 9, 198, 44, 226, 68, 224, 148, 128, 67, 6, 195, 43, 190, 150, 66, 9, 198, 9, 180, 72, 224,
-			148, 128, 67, 0, 8, 197, 56, 144, 198, 51, 192, 67, 9, 198, 24, 194, 72, 37, 67, 64, 66, 8, 197, 20, 144, 85, 184, 208, 67, 8,
-			197, 5, 11, 17, 37, 80, 67, 0, 8, 197, 69, 178, 248, 37, 32, 67, 0, 9, 198, 73, 62, 198, 61, 91, 141, 68, 9, 198, 20, 99,
-			60, 37, 67, 64, 66, 8, 197, 168, 62, 137, 80, 208, 66, 8, 197, 172, 62, 137, 80, 208, 66, 0, 9, 198, 64, 20, 209, 39, 165, 128,
-			67, 9, 198, 44, 25, 81, 32, 148, 128, 65, 6, 195, 173, 179, 0, 66, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6, 39, 50,
-			35, 0, 10, 199, 72, 147, 80, 60, 130, 84, 52, 66, 9, 198, 19, 181, 14, 20, 149, 13, 66, 0, 16, 4, 95, 48, 77, 51, 65, 37,
-			55, 37, 6, 35, 34, 72, 35, 0, 0, 0, 14, 4, 95, 48, 77, 49, 99, 6, 37, 55, 35, 72, 37, 0, 6, 195, 61, 59, 0, 65,
-			0, 10, 199, 20, 99, 21, 199, 162, 84, 52, 67, 0, 8, 197, 64, 20, 209, 80, 192, 66, 0, 9, 198, 91, 210, 72, 206, 83, 0, 68,
-			8, 197, 65, 25, 142, 80, 176, 66, 0, 0, 0, 7, 196, 72, 19, 84, 56, 66, 0, 0, 9, 198, 52, 146, 47, 73, 124, 0, 67, 0,
-			10, 199, 65, 16, 80, 70, 99, 148, 44, 67, 12, 201, 197, 36, 209, 80, 220, 37, 68, 149, 13, 68, 0, 0, 6, 195, 23, 186, 153, 66,
-			0, 9, 198, 220, 80, 69, 28, 152, 0, 65, 0, 15, 66, 73, 48, 89, 47, 39, 47, 6, 37, 50, 49, 37, 0, 24, 8, 197, 74, 49,
-			75, 37, 144, 66, 6, 195, 60, 197, 11, 66, 0, 7, 196, 232, 16, 137, 128, 66, 0, 6, 195, 46, 58, 153, 66, 6, 195, 4, 47, 83,
-			66, 0, 0, 8, 197, 73, 244, 83, 80, 176, 66, 8, 197, 72, 19, 79, 80, 176, 67, 7, 196, 45, 64, 251, 76, 66, 7, 196, 46, 145,
-			73, 76, 65, 8, 197, 44, 21, 24, 80, 176, 65, 7, 196, 20, 100, 187, 76, 66, 0, 9, 198, 64, 246, 129, 20, 114, 96, 65, 0, 9,
-			198, 128, 213, 17, 49, 66, 192, 67, 7, 196, 85, 68, 78, 240, 66, 7, 196, 77, 68, 78, 240, 66, 7, 196, 64, 102, 75, 240, 66, 6,
-			195, 66, 240, 124, 67, 6, 195, 144, 178, 83, 65, 7, 196, 53, 67, 133, 240, 66, 7, 196, 47, 53, 251, 76, 66, 8, 197, 44, 243, 85,
-			245, 48, 66, 6, 195, 46, 58, 145, 66, 7, 196, 20, 96, 137, 76, 65, 7, 196, 9, 66, 210, 240, 66, 0, 9, 198, 95, 194, 193, 20,
-			114, 96, 65, 9, 198, 85, 68, 100, 20, 114, 96, 65, 9, 198, 73, 62, 1, 20, 114, 96, 65, 9, 198, 53, 69, 101, 20, 114, 96, 65,
-			9, 198, 140, 50, 193, 20, 114, 96, 65, 9, 198, 44, 149, 99, 20, 114, 96, 65, 7, 196, 47, 170, 212, 48, 67, 9, 198, 14, 180, 129,
-			20, 114, 96, 65, 10, 199, 9, 65, 75, 4, 81, 201, 128, 65, 0, 7, 196, 77, 67, 20, 52, 66, 7, 196, 75, 17, 71, 240, 66, 6,
-			195, 72, 20, 252, 66, 0, 9, 198, 84, 207, 37, 20, 114, 96, 65, 10, 199, 79, 98, 139, 4, 81, 201, 128, 65, 10, 199, 72, 184, 197,
-			4, 81, 201, 128, 65, 7, 196, 52, 100, 201, 72, 66, 7, 196, 44, 20, 212, 56, 66, 10, 199, 23, 82, 139, 4, 81, 201, 128, 65, 9,
-			198, 183, 163, 65, 20, 114, 96, 66, 0, 7, 196, 61, 51, 9, 12, 65, 8, 197, 44, 243, 111, 23, 192, 67, 0, 6, 65, 48, 55, 13,
-			0, 10, 199, 164, 184, 205, 4, 81, 201, 128, 66, 9, 198, 141, 62, 228, 20, 114, 96, 66, 0, 7, 196, 73, 64, 240, 240, 67, 8, 197,
-			65, 18, 72, 36, 48, 65, 9, 198, 52, 97, 1, 91, 181, 192, 67, 8, 197, 24, 194, 75, 75, 192, 67, 7, 196, 8, 243, 9, 20, 66,
-			0, 6, 195, 72, 209, 128, 72, 10, 199, 22, 217, 187, 4, 81, 201, 128, 67, 0, 7, 196, 64, 242, 9, 12, 65, 7, 196, 61, 50, 9,
-			12, 65, 0, 6, 195, 86, 226, 72, 66, 8, 197, 73, 60, 56, 37, 32, 67, 8, 197, 20, 149, 83, 204, 64, 66, 0, 7, 196, 84, 197,
-			9, 20, 66, 10, 199, 68, 17, 73, 179, 53, 251, 76, 69, 7, 196, 196, 59, 73, 20, 67, 0, 12, 201, 99, 179, 143, 11, 212, 129, 20,
-			114, 96, 67, 9, 198, 73, 54, 203, 51, 130, 82, 67, 7, 196, 47, 193, 9, 32, 66, 0, 12, 201, 48, 147, 115, 4, 80, 69, 28, 152,
-			0, 67, 7, 196, 10, 182, 73, 100, 66, 0, 0, 7, 196, 48, 110, 58, 20, 67, 0, 8, 197, 64, 22, 75, 80, 192, 66, 0, 9, 198,
-			8, 241, 73, 19, 161, 64, 67, 7, 196, 154, 241, 58, 20, 67, 0, 0, 6, 195, 50, 197, 13, 66, 9, 198, 32, 99, 48, 97, 66, 192,
-			67, 8, 197, 232, 158, 196, 232, 80, 68, 0, 0, 0, 8, 197, 64, 148, 139, 80, 224, 66, 7, 196, 46, 213, 212, 56, 66, 8, 197, 8,
-			20, 147, 80, 224, 66, 0, 0, 0, 0, 0, 6, 195, 184, 146, 192, 66, 0, 0, 6, 195, 55, 162, 64, 72, 7, 195, 56, 146, 0, 72,
-			23, 7, 196, 84, 146, 9, 44, 66, 9, 198, 66, 254, 19, 36, 181, 13, 66, 7, 196, 48, 241, 9, 44, 66, 6, 195, 51, 194, 75, 66,
-			6, 195, 232, 100, 147, 66, 0, 8, 196, 13, 180, 86, 80, 72, 23, 0, 8, 197, 77, 16, 68, 36, 176, 66, 7, 196, 74, 84, 73, 44,
-			66, 6, 195, 64, 244, 252, 66, 6, 195, 140, 146, 192, 66, 8, 197, 8, 97, 12, 36, 176, 66, 7, 196, 10, 208, 82, 76, 66, 7, 196,
-			7, 210, 82, 76, 66, 0, 7, 196, 44, 17, 81, 184, 66, 6, 195, 233, 156, 64, 66, 0, 6, 195, 128, 137, 252, 67, 7, 196, 96, 99,
-			9, 44, 66, 8, 197, 88, 243, 59, 36, 176, 67, 7, 196, 86, 249, 82, 76, 66, 8, 197, 67, 100, 198, 73, 48, 66, 7, 196, 52, 97,
-			73, 44, 66, 0, 6, 195, 67, 131, 49, 66, 6, 195, 55, 213, 113, 66, 6, 195, 47, 163, 113, 66, 6, 195, 8, 241, 110, 66, 7, 196,
-			8, 16, 148, 196, 67, 0, 9, 197, 73, 4, 96, 52, 240, 72, 23, 8, 197, 96, 149, 76, 36, 176, 66, 8, 197, 88, 18, 163, 41, 80,
-			66, 8, 197, 77, 16, 85, 36, 176, 66, 9, 198, 54, 242, 85, 25, 36, 192, 67, 8, 197, 49, 73, 16, 232, 176, 65, 7, 196, 140, 47,
-			49, 76, 67, 9, 198, 47, 52, 209, 5, 36, 192, 66, 9, 198, 36, 36, 73, 100, 147, 64, 67, 0, 6, 195, 67, 204, 88, 66, 8, 197,
-			52, 17, 1, 35, 16, 67, 8, 197, 47, 160, 77, 86, 224, 67, 7, 196, 32, 21, 186, 196, 67, 6, 195, 170, 83, 113, 67, 6, 195, 14,
-			251, 177, 67, 0, 8, 197, 72, 20, 252, 36, 176, 67, 9, 198, 68, 146, 207, 100, 100, 192, 67, 8, 197, 67, 98, 1, 36, 176, 67, 6,
-			195, 67, 210, 67, 65, 7, 196, 61, 48, 137, 12, 65, 7, 196, 60, 36, 73, 12, 65, 9, 198, 52, 105, 85, 36, 130, 75, 68, 8, 197,
-			52, 20, 251, 36, 176, 67, 8, 197, 37, 36, 251, 36, 176, 67, 9, 198, 193, 53, 18, 36, 20, 147, 68, 0, 7, 196, 95, 21, 250, 196,
-			65, 7, 196, 145, 89, 76, 196, 67, 7, 196, 15, 160, 250, 196, 65, 7, 196, 8, 97, 84, 196, 67, 12, 201, 188, 100, 147, 24, 130, 79,
-			48, 241, 0, 70, 0, 8, 197, 85, 16, 72, 119, 208, 66, 6, 195, 164, 142, 195, 66, 8, 197, 68, 18, 17, 36, 48, 65, 8, 197, 64,
-			241, 66, 36, 48, 65, 9, 198, 64, 20, 207, 48, 241, 0, 67, 9, 198, 48, 98, 139, 226, 52, 147, 67, 7, 196, 30, 241, 122, 52, 66,
-			9, 198, 10, 218, 15, 48, 241, 0, 68, 0, 6, 195, 96, 98, 72, 66, 7, 196, 81, 166, 209, 8, 66, 8, 197, 66, 52, 147, 187, 16,
-			67, 8, 197, 67, 2, 87, 187, 16, 68, 8, 197, 47, 98, 207, 22, 224, 67, 7, 196, 197, 37, 12, 196, 67, 7, 196, 5, 36, 60, 196,
-			67, 8, 197, 4, 90, 100, 51, 16, 68, 0, 7, 196, 88, 207, 73, 20, 66, 8, 197, 88, 145, 81, 36, 80, 66, 9, 198, 66, 226, 68,
-			68, 147, 64, 67, 7, 196, 47, 160, 137, 20, 66, 0, 9, 198, 88, 243, 6, 73, 62, 241, 68, 7, 196, 87, 211, 109, 196, 67, 9, 198,
-			77, 16, 77, 64, 204, 64, 66, 8, 197, 73, 254, 81, 36, 128, 66, 7, 196, 216, 131, 122, 196, 67, 7, 196, 55, 161, 58, 196, 67, 7,
-			196, 54, 241, 122, 196, 67, 7, 196, 192, 150, 58, 196, 66, 8, 197, 16, 16, 186, 23, 16, 67, 8, 197, 9, 179, 4, 235, 16, 65, 7,
-			196, 180, 146, 58, 196, 68, 0, 6, 65, 52, 65, 13, 0, 8, 197, 86, 249, 72, 119, 208, 67, 7, 196, 66, 196, 73, 12, 65, 0, 7,
-			196, 47, 211, 137, 32, 66, 8, 197, 172, 48, 77, 235, 16, 68, 0, 7, 196, 92, 155, 201, 20, 67, 11, 200, 88, 148, 15, 91, 49, 81,
-			36, 176, 68, 8, 197, 88, 144, 145, 36, 80, 66, 8, 197, 73, 67, 21, 36, 80, 66, 7, 196, 73, 55, 250, 20, 66, 8, 197, 72, 21,
-			81, 36, 80, 66, 0, 6, 195, 164, 139, 128, 66, 0, 8, 197, 84, 197, 61, 36, 80, 67, 7, 196, 52, 155, 58, 20, 67, 0, 10, 199,
-			65, 16, 66, 108, 193, 58, 196, 66, 6, 195, 23, 17, 46, 66, 0, 9, 198, 88, 100, 211, 68, 146, 192, 66, 9, 198, 73, 67, 21, 4,
-			210, 69, 67, 9, 198, 65, 16, 70, 32, 146, 192, 67, 9, 198, 52, 100, 207, 20, 146, 192, 67, 9, 198, 44, 20, 207, 48, 146, 192, 67,
-			9, 198, 9, 67, 6, 15, 161, 64, 67, 0, 7, 196, 28, 20, 141, 196, 66, 8, 197, 8, 241, 15, 54, 224, 67, 6, 195, 11, 2, 49,
-			66, 0, 8, 197, 10, 188, 2, 232, 80, 67, 7, 196, 189, 60, 201, 52, 67, 0, 8, 197, 92, 100, 6, 51, 16, 67, 8, 197, 88, 207,
-			79, 86, 224, 67, 6, 195, 64, 99, 49, 66, 6, 195, 44, 243, 113, 66, 8, 197, 188, 67, 15, 86, 224, 67, 0, 9, 198, 84, 242, 187,
-			15, 178, 192, 65, 9, 198, 73, 64, 147, 217, 2, 75, 67, 0, 7, 196, 69, 77, 213, 184, 67, 9, 198, 16, 244, 144, 60, 92, 64, 67,
-			0, 10, 199, 64, 241, 80, 245, 70, 9, 44, 65, 9, 198, 24, 193, 139, 77, 18, 75, 67, 0, 9, 198, 45, 66, 212, 69, 66, 0, 67,
-			7, 196, 47, 53, 251, 56, 66, 9, 198, 14, 52, 147, 24, 204, 64, 67, 7, 196, 8, 204, 197, 196, 66, 0, 9, 198, 54, 189, 134, 32,
-			146, 192, 68, 9, 198, 25, 11, 134, 65, 50, 75, 68, 0, 8, 197, 16, 194, 87, 239, 16, 67, 0, 38, 3, 95, 194, 171, 55, 38, 4,
-			35, 84, 35, 15, 72, 84, 4, 39, 37, 50, 35, 15, 47, 34, 37, 4, 13, 81, 35, 55, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0,
-			0, 9, 198, 19, 179, 111, 61, 91, 128, 68, 0, 0, 24, 3, 95, 194, 166, 48, 34, 36, 49, 4, 13, 89, 50, 35, 47, 35, 15, 76,
-			36, 34, 47, 6, 35, 0, 6, 195, 52, 100, 238, 66, 0, 6, 195, 164, 114, 77, 66, 8, 197, 64, 100, 147, 36, 176, 66, 7, 196, 46,
-			52, 137, 44, 66, 7, 196, 236, 100, 201, 44, 67, 0, 6, 195, 68, 149, 241, 66, 6, 195, 70, 108, 64, 66, 7, 196, 56, 246, 134, 72,
-			66, 0, 7, 196, 80, 211, 137, 44, 66, 9, 198, 80, 194, 88, 56, 146, 192, 65, 8, 197, 80, 94, 142, 36, 176, 65, 9, 198, 72, 209,
-			153, 56, 146, 192, 66, 7, 196, 45, 64, 137, 44, 66, 8, 197, 18, 49, 78, 36, 176, 66, 0, 7, 196, 44, 245, 70, 196, 67, 0, 7,
-			195, 4, 208, 64, 72, 23, 8, 197, 91, 210, 72, 205, 48, 67, 9, 198, 77, 68, 205, 188, 146, 192, 65, 9, 198, 76, 111, 70, 76, 146,
-			192, 68, 6, 195, 164, 220, 211, 66, 9, 198, 66, 209, 153, 56, 146, 192, 65, 8, 197, 140, 142, 142, 36, 176, 65, 8, 197, 140, 78, 206,
-			36, 176, 65, 9, 198, 44, 194, 77, 5, 50, 75, 67, 9, 198, 20, 241, 13, 5, 50, 75, 67, 9, 198, 17, 16, 77, 5, 50, 75, 67,
-			9, 198, 4, 128, 148, 96, 226, 75, 65, 0, 7, 196, 92, 145, 47, 196, 65, 8, 197, 72, 99, 32, 59, 16, 65, 6, 195, 69, 64, 177,
-			66, 7, 196, 52, 101, 239, 196, 67, 8, 197, 20, 53, 24, 51, 0, 66, 6, 195, 15, 4, 238, 66, 0, 8, 197, 87, 49, 147, 36, 176,
-			67, 8, 197, 86, 240, 83, 36, 176, 67, 9, 198, 72, 100, 147, 71, 18, 75, 65, 10, 199, 65, 16, 68, 52, 20, 201, 44, 67, 9, 198,
-			145, 10, 88, 56, 146, 192, 65, 8, 197, 53, 182, 48, 36, 176, 67, 8, 197, 8, 249, 78, 36, 176, 67, 0, 9, 198, 68, 147, 76, 128,
-			236, 64, 65, 8, 197, 67, 162, 198, 79, 16, 67, 7, 196, 44, 241, 70, 196, 67, 8, 197, 46, 48, 198, 75, 16, 67, 7, 196, 44, 18,
-			6, 196, 67, 9, 198, 24, 81, 140, 12, 18, 146, 65, 6, 195, 20, 106, 136, 66, 0, 8, 196, 67, 100, 201, 12, 72, 23, 7, 196, 67,
-			96, 137, 12, 65, 9, 198, 64, 100, 6, 48, 226, 75, 67, 9, 198, 36, 132, 207, 96, 226, 75, 65, 0, 8, 197, 79, 180, 48, 79, 16,
-			67, 6, 195, 75, 186, 136, 66, 7, 196, 67, 17, 42, 56, 66, 8, 197, 57, 66, 204, 27, 16, 67, 7, 196, 47, 176, 83, 196, 67, 7,
-			196, 28, 104, 211, 196, 67, 7, 196, 20, 243, 107, 196, 67, 0, 10, 199, 84, 193, 132, 52, 20, 201, 44, 67, 10, 199, 73, 98, 72, 52,
-			20, 201, 44, 67, 9, 198, 74, 144, 155, 68, 226, 75, 65, 10, 199, 52, 20, 198, 52, 20, 201, 44, 68, 9, 198, 52, 20, 147, 60, 92,
-			211, 67, 9, 198, 31, 180, 195, 192, 146, 192, 65, 10, 199, 189, 50, 80, 240, 100, 201, 44, 69, 0, 9, 198, 95, 18, 195, 4, 164, 128,
-			66, 9, 198, 25, 2, 83, 68, 21, 174, 68, 8, 197, 13, 178, 19, 244, 64, 66, 6, 195, 173, 114, 72, 66, 0, 6, 195, 84, 159, 69,
-			66, 10, 199, 81, 36, 61, 24, 83, 137, 44, 65, 6, 195, 177, 34, 69, 66, 12, 201, 24, 113, 146, 24, 83, 73, 96, 226, 75, 67, 8,
-			197, 19, 3, 215, 36, 80, 67, 10, 199, 15, 179, 184, 60, 91, 201, 44, 67, 0, 6, 65, 56, 50, 13, 0, 9, 198, 197, 62, 213, 24,
-			164, 128, 67, 9, 198, 17, 16, 71, 22, 252, 64, 65, 8, 197, 188, 20, 236, 75, 16, 68, 0, 12, 201, 77, 180, 15, 108, 70, 204, 56,
-			146, 192, 67, 10, 199, 69, 65, 79, 20, 240, 137, 12, 67, 12, 201, 65, 34, 86, 62, 251, 73, 76, 146, 192, 70, 10, 199, 161, 13, 139,
-			225, 43, 201, 44, 67, 9, 198, 52, 109, 197, 60, 34, 67, 67, 10, 199, 52, 97, 79, 20, 240, 137, 12, 67, 8, 197, 4, 36, 148, 68,
-			80, 66, 0, 8, 197, 5, 3, 15, 52, 32, 66, 0, 12, 201, 72, 97, 77, 61, 177, 27, 48, 226, 75, 67, 7, 196, 196, 82, 106, 20,
-			67, 11, 200, 13, 177, 12, 24, 83, 194, 36, 48, 67, 0, 10, 199, 73, 177, 17, 4, 113, 111, 196, 66, 9, 198, 57, 242, 189, 45, 139,
-			241, 66, 6, 195, 22, 180, 238, 66, 0, 9, 198, 72, 177, 144, 76, 146, 192, 66, 12, 201, 65, 180, 117, 36, 132, 207, 96, 226, 75, 67,
-			9, 198, 53, 22, 210, 56, 146, 192, 66, 8, 197, 52, 21, 167, 36, 176, 67, 9, 198, 140, 164, 205, 61, 50, 67, 65, 9, 198, 45, 22,
-			195, 56, 146, 192, 66, 8, 197, 36, 67, 48, 36, 176, 67, 9, 198, 21, 22, 195, 56, 146, 192, 66, 9, 198, 20, 198, 199, 56, 146, 192,
-			66, 8, 197, 16, 241, 112, 36, 176, 67, 7, 196, 18, 220, 9, 44, 65, 9, 198, 5, 36, 251, 60, 145, 64, 68, 0, 6, 195, 78, 196,
-			177, 66, 8, 197, 64, 20, 139, 168, 192, 66, 6, 195, 46, 192, 113, 67, 7, 196, 212, 81, 170, 48, 67, 0, 10, 199, 77, 16, 80, 24,
-			131, 201, 20, 68, 7, 196, 148, 180, 201, 44, 66, 9, 198, 73, 52, 91, 12, 226, 75, 66, 9, 198, 73, 3, 6, 76, 226, 75, 66, 9,
-			198, 64, 19, 70, 76, 226, 75, 65, 8, 197, 66, 217, 142, 36, 176, 65, 9, 198, 48, 145, 38, 56, 146, 192, 65, 9, 198, 44, 243, 6,
-			72, 226, 75, 67, 8, 197, 44, 17, 118, 168, 176, 67, 12, 201, 24, 193, 139, 79, 97, 79, 8, 144, 192, 68, 10, 199, 21, 180, 117, 20,
-			240, 137, 12, 67, 9, 198, 23, 130, 82, 56, 146, 192, 65, 9, 198, 13, 22, 210, 76, 226, 75, 66, 0, 7, 196, 67, 100, 198, 196, 67,
-			7, 196, 64, 243, 39, 196, 67, 0, 12, 201, 73, 14, 205, 5, 51, 200, 60, 145, 64, 69, 10, 199, 64, 241, 80, 37, 35, 137, 44, 65,
-			7, 196, 60, 220, 201, 52, 67, 8, 197, 44, 148, 240, 36, 176, 65, 8, 197, 36, 220, 14, 36, 176, 65, 9, 198, 20, 155, 70, 45, 50,
-			75, 68, 0, 9, 198, 73, 62, 198, 61, 50, 80, 68, 8, 197, 45, 28, 79, 51, 16, 67, 0, 9, 198, 86, 197, 18, 56, 146, 192, 65,
-			9, 198, 76, 146, 195, 192, 146, 192, 65, 9, 198, 72, 99, 112, 56, 146, 192, 65, 8, 197, 67, 100, 176, 36, 176, 67, 9, 198, 65, 16,
-			83, 192, 146, 192, 65, 9, 198, 144, 33, 133, 164, 226, 75, 66, 0, 0, 11, 200, 77, 18, 66, 4, 74, 78, 36, 176, 66, 9, 198, 40,
-			241, 79, 87, 211, 64, 67, 9, 198, 180, 179, 214, 60, 194, 75, 68, 0, 10, 199, 88, 99, 79, 16, 195, 194, 196, 68, 9, 198, 73, 52,
-			73, 88, 236, 64, 66, 11, 200, 73, 51, 205, 5, 51, 210, 47, 128, 68, 10, 199, 46, 209, 138, 20, 244, 139, 224, 68, 9, 198, 20, 19,
-			65, 72, 188, 64, 67, 9, 198, 153, 51, 205, 60, 43, 128, 68, 0, 9, 198, 88, 207, 79, 87, 211, 64, 67, 9, 198, 220, 36, 147, 15,
-			2, 75, 65, 9, 198, 216, 84, 147, 15, 2, 75, 65, 10, 199, 52, 243, 9, 76, 60, 9, 44, 66, 0, 0, 11, 200, 73, 180, 12, 24,
-			220, 14, 36, 176, 66, 10, 199, 73, 176, 233, 55, 3, 137, 44, 66, 12, 201, 64, 100, 207, 108, 70, 204, 56, 146, 192, 67, 11, 200, 60,
-			38, 134, 73, 48, 240, 36, 176, 66, 10, 199, 145, 145, 146, 76, 60, 9, 44, 66, 0, 7, 196, 24, 208, 74, 48, 66, 0, 12, 201, 73,
-			182, 20, 13, 36, 195, 192, 146, 192, 66, 11, 200, 73, 189, 194, 73, 48, 240, 36, 176, 66, 8, 197, 4, 213, 12, 25, 48, 67, 0, 8,
-			196, 72, 52, 91, 88, 72, 23, 0, 7, 196, 88, 243, 79, 76, 66, 6, 195, 75, 23, 125, 66, 12, 201, 65, 180, 198, 100, 100, 147, 15,
-			2, 75, 67, 12, 201, 66, 145, 89, 25, 36, 195, 192, 146, 192, 66, 9, 198, 60, 33, 140, 37, 34, 192, 67, 9, 198, 44, 243, 80, 48,
-			244, 192, 66, 7, 196, 189, 52, 107, 76, 66, 0, 0, 6, 195, 77, 18, 125, 66, 13, 202, 73, 179, 211, 25, 129, 146, 76, 60, 9, 44,
-			67, 9, 198, 64, 243, 9, 16, 195, 211, 67, 7, 196, 66, 52, 157, 244, 66, 7, 196, 46, 52, 157, 244, 66, 7, 196, 22, 148, 157, 244,
-			66, 8, 197, 17, 18, 77, 119, 208, 66, 7, 196, 172, 59, 230, 76, 67, 0, 7, 196, 16, 235, 143, 96, 66, 0, 12, 201, 67, 98, 72,
-			212, 84, 147, 15, 2, 75, 67, 8, 197, 5, 43, 210, 119, 208, 67, 0, 7, 196, 141, 49, 139, 72, 66, 8, 197, 5, 68, 144, 81, 96,
-			65, 0, 9, 198, 56, 150, 65, 21, 180, 64, 67, 8, 197, 47, 52, 209, 173, 48, 66, 0, 0, 7, 195, 74, 145, 64, 72, 23, 7, 195,
-			66, 145, 64, 72, 23, 7, 196, 164, 140, 221, 244, 67, 0, 0, 38, 3, 95, 194, 187, 116, 4, 35, 89, 50, 35, 15, 72, 84, 4, 39,
-			37, 50, 35, 15, 47, 34, 37, 4, 13, 81, 35, 55, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 0, 8, 197, 11, 101, 14, 196, 64,
-			65, 0, 7, 195, 66, 146, 0, 72, 23, 7, 196, 21, 246, 70, 44, 66, 0, 0, 6, 65, 68, 34, 13, 0, 0, 0, 6, 195, 130, 147,
-			64, 66, 0, 8, 197, 20, 146, 1, 40, 224, 66, 0, 7, 196, 8, 245, 134, 52, 66, 9, 198, 233, 98, 80, 26, 49, 0, 68, 0, 7,
-			196, 20, 105, 74, 48, 66, 0, 9, 198, 68, 17, 70, 76, 99, 0, 67, 9, 198, 13, 67, 133, 236, 188, 69, 65, 0, 8, 197, 46, 196,
-			198, 40, 192, 66, 0, 0, 9, 198, 44, 243, 66, 4, 163, 128, 66, 0, 0, 6, 195, 72, 111, 0, 66, 0, 0, 0, 6, 195, 129, 102,
-			209, 66, 12, 201, 52, 242, 1, 40, 176, 69, 28, 152, 0, 66, 0, 0, 6, 195, 85, 77, 145, 66, 8, 197, 73, 64, 134, 45, 48, 66,
-			7, 196, 44, 20, 219, 68, 66, 8, 197, 20, 101, 70, 45, 48, 66, 8, 197, 5, 36, 6, 45, 48, 66, 0, 0, 7, 196, 76, 99, 247,
-			84, 67, 8, 197, 66, 149, 70, 45, 48, 66, 7, 196, 64, 242, 29, 244, 66, 7, 196, 60, 33, 139, 76, 66, 7, 196, 47, 57, 75, 76,
-			66, 7, 196, 44, 20, 147, 244, 66, 7, 196, 5, 81, 139, 76, 66, 0, 7, 196, 52, 20, 246, 72, 66, 7, 196, 4, 43, 207, 72, 67,
-			0, 7, 196, 92, 145, 47, 244, 67, 7, 196, 88, 20, 219, 68, 66, 7, 196, 72, 20, 219, 68, 66, 9, 198, 44, 243, 80, 48, 98, 211,
-			66, 9, 198, 197, 49, 140, 24, 180, 192, 67, 7, 196, 7, 188, 230, 76, 68, 0, 0, 8, 197, 79, 179, 79, 87, 208, 67, 9, 198, 44,
-			244, 141, 206, 100, 192, 67, 7, 196, 47, 164, 207, 84, 66, 9, 198, 20, 149, 84, 33, 223, 64, 67, 9, 198, 5, 36, 246, 144, 52, 192,
-			67, 0, 9, 198, 44, 243, 80, 48, 98, 210, 66, 12, 201, 47, 164, 207, 86, 195, 205, 8, 18, 142, 69, 0, 9, 198, 88, 244, 240, 76,
-			244, 192, 67, 7, 196, 67, 100, 147, 244, 66, 8, 197, 20, 96, 137, 79, 208, 65, 9, 198, 233, 98, 83, 24, 180, 192, 67, 0, 0, 9,
-			198, 5, 3, 210, 79, 101, 64, 67, 0, 6, 65, 64, 48, 13, 0, 6, 195, 79, 133, 8, 66, 8, 197, 67, 160, 69, 177, 32, 67, 6,
-			195, 160, 86, 196, 66, 0, 9, 198, 34, 188, 248, 216, 98, 211, 69, 10, 199, 19, 100, 141, 4, 164, 147, 244, 65, 0, 6, 195, 21, 65,
-			140, 66, 0, 12, 201, 9, 241, 71, 25, 62, 54, 24, 180, 192, 69, 11, 200, 10, 209, 147, 52, 18, 146, 79, 208, 66, 0, 0, 9, 198,
-			47, 52, 209, 5, 60, 61, 68, 0, 7, 65, 72, 89, 13, 0, 49, 4, 193, 72, 23, 9, 198, 64, 243, 20, 45, 22, 196, 67, 0, 12,
-			201, 47, 53, 251, 76, 208, 74, 73, 63, 64, 66, 0, 0, 8, 197, 77, 180, 77, 108, 176, 66, 0, 7, 196, 72, 20, 20, 56, 66, 0,
-			10, 199, 8, 22, 73, 8, 242, 20, 44, 68, 0, 8, 197, 21, 16, 68, 80, 224, 66, 8, 197, 8, 20, 134, 40, 224, 66, 0, 0, 0,
-			0, 8, 197, 52, 98, 44, 233, 0, 67, 0, 7, 3, 95, 209, 131, 40, 0, 0, 0, 6, 194, 172, 240, 72, 23, 8, 3, 95, 209, 129,
-			89, 13, 0, 6, 195, 164, 85, 19, 66, 6, 195, 4, 213, 17, 66, 0, 0, 7, 196, 72, 19, 84, 68, 66, 7, 196, 52, 101, 148, 68,
-			66, 6, 195, 48, 98, 250, 65, 8, 197, 29, 179, 19, 108, 176, 66, 7, 196, 11, 98, 193, 76, 66, 8, 197, 8, 148, 141, 81, 48, 66,
-			7, 196, 8, 18, 45, 76, 66, 7, 196, 4, 40, 212, 76, 65, 0, 6, 195, 148, 204, 192, 66, 6, 195, 74, 220, 192, 66, 6, 195, 196,
-			85, 18, 66, 6, 195, 18, 220, 192, 66, 6, 195, 10, 220, 192, 66, 0, 8, 197, 44, 19, 66, 81, 16, 66, 9, 198, 5, 52, 73, 9,
-			68, 192, 67, 0, 0, 8, 197, 85, 179, 133, 108, 176, 66, 6, 195, 52, 244, 253, 66, 0, 9, 198, 60, 211, 137, 9, 68, 128, 65, 6,
-			195, 48, 147, 115, 66, 7, 196, 24, 51, 148, 88, 66, 0, 9, 198, 97, 66, 212, 56, 85, 17, 67, 9, 198, 72, 99, 32, 56, 85, 17,
-			67, 9, 198, 47, 52, 209, 6, 212, 192, 67, 9, 198, 46, 209, 91, 69, 179, 64, 67, 9, 198, 46, 208, 77, 9, 68, 64, 67, 0, 6,
-			195, 148, 212, 51, 66, 7, 196, 66, 249, 76, 204, 67, 0, 0, 8, 197, 76, 99, 6, 87, 48, 67, 8, 197, 52, 97, 1, 87, 48, 67,
-			7, 196, 140, 212, 9, 204, 67, 0, 7, 195, 65, 178, 192, 72, 23, 8, 197, 67, 98, 212, 217, 16, 67, 0, 8, 197, 168, 36, 65, 87,
-			48, 67, 0, 8, 197, 47, 49, 131, 108, 80, 67, 0, 0, 6, 65, 76, 47, 13, 0, 9, 198, 64, 244, 140, 25, 35, 39, 67, 0, 9,
-			198, 44, 48, 69, 70, 226, 115, 68, 0, 9, 198, 18, 113, 133, 157, 177, 64, 68, 7, 196, 212, 95, 79, 20, 67, 9, 198, 8, 241, 15,
-			72, 201, 192, 67, 0, 8, 197, 80, 210, 82, 108, 192, 65, 8, 197, 69, 77, 213, 60, 32, 67, 7, 196, 64, 100, 246, 48, 66, 0, 0,
-			6, 195, 98, 182, 204, 66, 12, 201, 68, 17, 73, 61, 49, 140, 25, 92, 192, 70, 9, 198, 45, 44, 15, 84, 240, 128, 67, 11, 200, 168,
-			81, 143, 76, 99, 6, 87, 48, 70, 0, 10, 199, 76, 100, 142, 60, 68, 91, 20, 67, 7, 196, 150, 52, 155, 52, 67, 0, 7, 196, 92,
-			146, 204, 224, 66, 0, 7, 196, 64, 241, 54, 52, 66, 0, 10, 199, 74, 48, 224, 56, 245, 79, 8, 68, 7, 196, 74, 189, 213, 204, 67,
-			7, 196, 52, 146, 246, 56, 66, 7, 196, 44, 244, 204, 204, 66, 9, 198, 19, 179, 111, 61, 83, 194, 68, 8, 197, 16, 20, 147, 216, 192,
-			66, 6, 195, 18, 213, 115, 66, 0, 0, 9, 198, 68, 18, 13, 37, 38, 204, 65, 7, 196, 67, 213, 201, 204, 67, 8, 197, 64, 241, 82,
-			51, 48, 66, 7, 196, 161, 68, 246, 56, 67, 0, 0, 9, 198, 72, 19, 108, 205, 61, 140, 68, 8, 197, 66, 52, 147, 216, 224, 66, 9,
-			198, 52, 17, 40, 76, 245, 115, 68, 9, 198, 17, 16, 77, 61, 92, 192, 67, 0, 0, 9, 198, 44, 17, 65, 73, 61, 142, 67, 0, 7,
-			196, 48, 240, 148, 76, 66, 6, 195, 4, 117, 17, 66, 0, 0, 7, 196, 64, 20, 20, 68, 66, 7, 196, 8, 241, 212, 68, 66, 0, 6,
-			195, 64, 148, 243, 66, 5, 194, 179, 128, 66, 6, 195, 181, 54, 206, 66, 0, 7, 196, 86, 244, 207, 52, 66, 8, 197, 50, 226, 80, 81,
-			48, 67, 0, 8, 197, 66, 148, 147, 60, 192, 66, 6, 195, 67, 52, 243, 66, 8, 197, 20, 53, 2, 60, 160, 66, 7, 196, 5, 113, 147,
-			204, 67, 0, 7, 196, 65, 18, 83, 176, 65, 0, 6, 195, 73, 49, 128, 72, 7, 196, 87, 99, 147, 204, 66, 6, 195, 84, 29, 206, 66,
-			8, 197, 76, 105, 78, 81, 32, 65, 7, 196, 60, 46, 211, 204, 65, 8, 197, 44, 244, 177, 81, 32, 65, 6, 195, 34, 99, 202, 66, 6,
-			195, 28, 100, 243, 66, 7, 196, 13, 180, 83, 224, 66, 6, 195, 8, 100, 243, 66, 8, 197, 153, 51, 210, 79, 128, 67, 0, 6, 195, 160,
-			176, 64, 65, 6, 195, 69, 178, 230, 66, 9, 198, 36, 132, 27, 48, 179, 205, 67, 0, 26, 3, 95, 208, 142, 39, 71, 34, 4, 35, 47,
-			36, 50, 15, 40, 72, 37, 84, 6, 37, 47, 36, 55, 36, 50, 0, 7, 196, 84, 100, 147, 204, 66, 7, 196, 84, 18, 147, 204, 66, 8,
-			197, 77, 180, 66, 81, 96, 66, 7, 196, 77, 18, 83, 204, 66, 9, 198, 52, 146, 246, 9, 68, 128, 67, 8, 197, 52, 105, 78, 60, 192,
-			67, 9, 198, 48, 98, 210, 36, 188, 192, 67, 6, 195, 47, 164, 243, 66, 6, 195, 46, 244, 243, 66, 8, 197, 32, 20, 147, 60, 160, 66,
-			0, 9, 197, 13, 180, 41, 44, 144, 72, 23, 28, 3, 95, 209, 151, 39, 71, 34, 4, 35, 47, 36, 50, 15, 84, 13, 48, 34, 39, 89,
-			6, 37, 47, 36, 55, 36, 50, 0, 8, 197, 99, 202, 204, 108, 176, 67, 0, 9, 198, 79, 99, 6, 40, 37, 18, 67, 7, 196, 74, 226,
-			75, 204, 67, 8, 197, 66, 148, 147, 60, 160, 66, 8, 197, 44, 243, 22, 60, 128, 66, 7, 196, 11, 162, 83, 204, 67, 0, 0, 8, 197,
-			44, 19, 123, 79, 48, 67, 9, 198, 168, 45, 130, 25, 60, 192, 68, 0, 12, 3, 95, 209, 147, 83, 55, 39, 34, 37, 50, 0, 7, 196,
-			177, 62, 15, 20, 67, 7, 196, 44, 20, 207, 20, 66, 0, 8, 197, 76, 99, 204, 60, 64, 67, 7, 196, 220, 53, 143, 32, 66, 0, 5,
-			194, 36, 208, 72, 5, 193, 80, 72, 23, 0, 11, 200, 73, 51, 205, 188, 240, 134, 79, 48, 69, 6, 195, 60, 35, 202, 66, 0, 0, 7,
-			196, 77, 68, 203, 180, 66, 9, 198, 65, 34, 86, 60, 195, 196, 67, 6, 195, 67, 96, 237, 66, 6, 195, 64, 244, 243, 66, 6, 195, 8,
-			98, 243, 66, 6, 195, 5, 51, 204, 66, 0, 0, 7, 196, 83, 97, 193, 40, 67, 6, 195, 75, 9, 237, 67, 9, 198, 244, 226, 83, 60,
-			195, 196, 68, 6, 195, 45, 44, 51, 66, 6, 195, 46, 214, 208, 66, 0, 6, 195, 67, 100, 236, 65, 0, 8, 196, 36, 128, 219, 56, 72,
-			23, 9, 198, 87, 163, 107, 60, 195, 196, 68, 8, 197, 64, 243, 20, 79, 48, 67, 11, 200, 48, 98, 210, 36, 179, 204, 60, 64, 68, 9,
-			198, 20, 99, 9, 76, 99, 0, 65, 8, 197, 5, 66, 215, 39, 48, 68, 0, 9, 198, 75, 176, 134, 32, 198, 203, 67, 11, 200, 64, 243,
-			20, 68, 18, 16, 4, 80, 68, 9, 198, 46, 208, 66, 181, 178, 192, 68, 0, 6, 195, 164, 249, 78, 67, 7, 196, 8, 148, 35, 56, 66,
-			8, 197, 180, 179, 214, 60, 192, 67, 0, 0, 8, 197, 67, 178, 82, 47, 128, 67, 7, 196, 16, 244, 231, 188, 67, 0, 9, 198, 52, 100,
-			246, 56, 243, 64, 67, 0, 8, 197, 145, 18, 207, 54, 240, 67, 9, 198, 8, 242, 5, 80, 75, 192, 67, 0, 10, 199, 67, 171, 79, 16,
-			146, 27, 52, 65, 0, 6, 194, 184, 144, 72, 23, 15, 3, 95, 208, 185, 6, 37, 49, 34, 4, 35, 47, 49, 39, 0, 7, 196, 195, 210,
-			65, 100, 68, 0, 7, 3, 95, 208, 184, 37, 0, 6, 195, 156, 100, 128, 66, 7, 196, 52, 19, 84, 48, 66, 0, 7, 196, 64, 102, 1,
-			76, 66, 7, 196, 36, 132, 9, 76, 65, 0, 7, 196, 47, 160, 84, 48, 67, 6, 195, 5, 56, 210, 66, 0, 7, 3, 95, 208, 181, 36,
-			0, 6, 195, 90, 210, 85, 66, 8, 197, 68, 18, 16, 37, 48, 65, 7, 196, 47, 98, 198, 76, 66, 6, 195, 20, 248, 209, 65, 6, 195,
-			8, 241, 151, 66, 7, 196, 11, 161, 84, 44, 66, 8, 197, 8, 19, 66, 80, 176, 66, 0, 9, 198, 81, 41, 66, 5, 146, 96, 66, 8,
-			197, 44, 243, 80, 5, 32, 66, 0, 8, 3, 95, 208, 179, 81, 13, 0, 7, 196, 96, 147, 89, 240, 66, 9, 198, 77, 18, 87, 12, 100,
-			192, 66, 9, 198, 53, 67, 133, 105, 66, 192, 66, 6, 195, 192, 150, 58, 66, 0, 8, 3, 95, 208, 178, 84, 13, 0, 9, 198, 65, 180,
-			198, 64, 148, 128, 67, 7, 196, 47, 196, 9, 96, 66, 0, 8, 197, 84, 18, 15, 55, 176, 67, 9, 198, 33, 176, 143, 8, 243, 0, 67,
-			8, 197, 16, 197, 16, 25, 112, 66, 8, 197, 16, 18, 15, 55, 176, 67, 6, 195, 180, 37, 13, 66, 0, 7, 3, 95, 208, 176, 35, 0,
-			9, 198, 68, 17, 73, 61, 128, 82, 68, 9, 198, 64, 244, 140, 25, 2, 82, 67, 7, 196, 11, 160, 148, 56, 66, 0, 13, 2, 95, 34,
-			49, 35, 84, 6, 37, 76, 49, 37, 0, 6, 195, 145, 11, 77, 66, 8, 197, 52, 20, 145, 5, 80, 66, 10, 199, 52, 17, 9, 73, 52,
-			65, 76, 67, 7, 196, 11, 169, 198, 92, 65, 9, 198, 5, 36, 246, 48, 241, 0, 67, 0, 16, 2, 95, 33, 40, 72, 37, 84, 6, 37,
-			47, 36, 55, 36, 50, 0, 8, 197, 58, 193, 65, 80, 224, 65, 8, 197, 147, 97, 120, 37, 32, 68, 0, 6, 194, 180, 16, 72, 23, 8,
-			197, 75, 18, 231, 25, 112, 65, 9, 198, 56, 146, 235, 12, 101, 192, 65, 9, 198, 53, 16, 72, 156, 101, 192, 65, 9, 198, 25, 33, 183,
-			12, 101, 192, 66, 9, 198, 16, 16, 182, 12, 101, 192, 65, 9, 198, 168, 81, 143, 86, 227, 64, 68, 0, 14, 2, 95, 39, 35, 48, 39,
-			89, 47, 34, 6, 39, 83, 0, 8, 197, 148, 163, 184, 37, 32, 67, 8, 197, 65, 25, 184, 37, 32, 67, 0, 15, 2, 95, 38, 35, 65,
-			48, 36, 34, 89, 6, 35, 50, 47, 0, 9, 198, 67, 97, 139, 148, 228, 192, 67, 0, 9, 198, 45, 16, 82, 59, 130, 82, 67, 8, 197,
-			44, 19, 66, 80, 128, 66, 0, 9, 198, 47, 52, 148, 50, 83, 147, 67, 9, 198, 16, 100, 165, 66, 113, 151, 66, 0, 0, 7, 196, 96,
-			144, 148, 44, 66, 6, 195, 164, 59, 217, 66, 10, 199, 48, 109, 82, 24, 185, 78, 76, 68, 0, 18, 2, 95, 41, 116, 4, 35, 89, 50,
-			35, 15, 89, 49, 6, 39, 71, 35, 0, 0, 18, 2, 95, 40, 55, 38, 6, 35, 84, 35, 15, 89, 49, 6, 39, 71, 35, 0, 8, 197,
-			88, 18, 133, 80, 176, 66, 0, 0, 11, 2, 95, 46, 47, 6, 39, 76, 49, 35, 0, 6, 195, 75, 206, 0, 66, 0, 10, 2, 95, 45,
-			47, 37, 34, 4, 36, 0, 0, 14, 2, 95, 44, 88, 35, 48, 36, 47, 6, 35, 57, 35, 0, 6, 65, 84, 83, 13, 0, 0, 9, 2,
-			95, 51, 47, 34, 6, 37, 0, 8, 197, 77, 18, 66, 80, 224, 66, 0, 9, 2, 95, 50, 72, 84, 6, 36, 0, 0, 10, 2, 95, 49,
-			36, 72, 50, 6, 39, 0, 0, 10, 2, 95, 48, 50, 6, 40, 64, 35, 0, 0, 11, 2, 95, 55, 89, 6, 36, 72, 36, 65, 0, 0,
-			10, 2, 95, 54, 91, 6, 36, 89, 47, 0, 0, 9, 2, 95, 53, 48, 6, 36, 47, 0, 0, 12, 2, 95, 52, 76, 6, 36, 47, 37,
-			34, 37, 0, 0, 23, 2, 95, 59, 47, 4, 39, 76, 49, 35, 15, 37, 15, 88, 35, 48, 36, 47, 6, 35, 57, 35, 0, 0, 15, 2,
-			95, 58, 72, 84, 40, 36, 47, 6, 39, 76, 37, 36, 0, 7, 196, 68, 21, 129, 76, 66, 9, 198, 64, 20, 17, 36, 176, 89, 65, 9,
-			198, 47, 61, 209, 92, 149, 13, 66, 6, 195, 8, 25, 83, 66, 0, 11, 2, 95, 57, 72, 6, 36, 84, 36, 47, 0, 0, 10, 2, 95,
-			56, 6, 39, 89, 36, 65, 0, 6, 195, 68, 149, 250, 65, 8, 197, 56, 148, 209, 5, 48, 66, 7, 196, 52, 17, 36, 76, 66, 7, 196,
-			20, 146, 229, 76, 66, 7, 196, 232, 243, 65, 76, 67, 7, 196, 4, 44, 193, 76, 67, 0, 18, 2, 95, 63, 84, 13, 48, 34, 39, 89,
-			6, 37, 47, 36, 55, 36, 50, 0, 6, 195, 190, 240, 82, 67, 0, 6, 194, 32, 16, 72, 23, 16, 2, 95, 62, 48, 39, 15, 81, 39,
-			55, 38, 6, 35, 65, 39, 0, 7, 196, 77, 26, 229, 76, 66, 8, 197, 149, 18, 75, 5, 48, 67, 7, 196, 164, 244, 165, 76, 67, 8,
-			197, 52, 101, 240, 5, 48, 67, 9, 198, 36, 81, 143, 48, 241, 0, 68, 8, 197, 20, 100, 20, 149, 48, 67, 8, 197, 20, 98, 239, 5,
-			48, 67, 8, 197, 5, 49, 146, 149, 48, 67, 7, 196, 5, 60, 37, 76, 67, 0, 6, 195, 78, 197, 0, 66, 6, 195, 55, 48, 86, 66,
-			6, 195, 31, 2, 86, 66, 0, 14, 2, 95, 60, 48, 39, 15, 65, 6, 35, 55, 49, 39, 0, 9, 198, 84, 244, 207, 74, 84, 192, 67,
-			6, 195, 79, 188, 0, 66, 8, 197, 76, 96, 134, 103, 192, 67, 9, 198, 73, 64, 146, 77, 16, 83, 66, 9, 198, 75, 17, 73, 44, 20,
-			192, 67, 9, 198, 66, 145, 73, 44, 20, 192, 67, 8, 197, 47, 160, 179, 5, 48, 67, 9, 198, 24, 180, 144, 204, 20, 192, 67, 9, 198,
-			20, 148, 12, 60, 208, 83, 67, 9, 198, 9, 253, 139, 68, 20, 192, 67, 8, 197, 7, 179, 210, 149, 48, 68, 6, 195, 4, 64, 64, 66,
-			0, 7, 196, 91, 164, 20, 56, 66, 0, 8, 197, 80, 226, 75, 80, 208, 65, 10, 199, 80, 196, 209, 4, 128, 212, 44, 67, 9, 198, 79,
-			179, 79, 74, 84, 192, 67, 6, 195, 44, 18, 89, 66, 9, 198, 197, 84, 65, 32, 53, 11, 65, 9, 198, 197, 91, 147, 68, 20, 192, 67,
-			0, 8, 197, 75, 195, 205, 5, 96, 67, 8, 197, 48, 100, 248, 37, 32, 67, 9, 198, 36, 188, 207, 74, 84, 128, 68, 7, 196, 180, 219,
-			193, 88, 67, 0, 10, 199, 86, 214, 73, 84, 146, 193, 76, 68, 7, 196, 65, 27, 137, 12, 65, 9, 198, 47, 53, 240, 77, 16, 83, 67,
-			9, 198, 8, 146, 250, 11, 48, 83, 68, 9, 198, 232, 148, 147, 177, 16, 83, 68, 0, 0, 11, 200, 88, 145, 118, 73, 67, 21, 5, 48,
-			68, 11, 200, 68, 17, 73, 60, 16, 179, 5, 48, 70, 0, 10, 66, 8, 192, 71, 55, 39, 49, 0, 24, 7, 196, 47, 164, 20, 32, 66,
-			0, 12, 201, 64, 243, 20, 84, 16, 145, 36, 176, 83, 69, 6, 195, 52, 243, 35, 66, 9, 198, 44, 243, 44, 169, 67, 64, 66, 0, 7,
-			196, 68, 22, 6, 48, 66, 11, 200, 68, 18, 3, 24, 164, 17, 5, 96, 67, 0, 0, 0, 7, 195, 65, 18, 64, 72, 23, 7, 196, 10,
-			195, 20, 44, 66, 0, 9, 4, 95, 226, 128, 161, 21, 0, 47, 0, 9, 4, 95, 226, 128, 160, 21, 0, 47, 9, 198, 73, 180, 87, 24,
-			49, 133, 67, 0, 6, 65, 88, 101, 13, 0, 0, 18, 4, 95, 226, 128, 166, 65, 50, 39, 81, 39, 47, 6, 39, 76, 37, 36, 0, 10,
-			199, 72, 49, 147, 60, 67, 6, 20, 67, 9, 198, 53, 66, 9, 46, 113, 133, 68, 9, 198, 8, 102, 65, 52, 99, 0, 67, 0, 0, 0,
-			0, 10, 199, 72, 52, 91, 89, 137, 198, 44, 67, 10, 199, 215, 3, 143, 196, 59, 73, 20, 70, 0, 0, 9, 198, 76, 101, 142, 36, 181,
-			13, 65, 0, 0, 0, 29, 2, 95, 91, 55, 38, 4, 35, 84, 35, 15, 49, 84, 35, 72, 34, 4, 35, 47, 50, 35, 15, 89, 49, 6,
-			39, 71, 35, 0, 6, 195, 64, 102, 45, 66, 6, 195, 44, 101, 109, 66, 0, 7, 196, 44, 17, 70, 76, 66, 0, 6, 194, 36, 128, 72,
-			23, 18, 4, 95, 226, 128, 147, 49, 4, 13, 89, 39, 15, 47, 37, 34, 6, 36, 0, 0, 7, 196, 79, 179, 9, 44, 66, 6, 195, 150,
-			51, 147, 66, 8, 197, 73, 67, 21, 5, 48, 66, 7, 196, 54, 246, 70, 76, 66, 8, 197, 45, 68, 12, 25, 48, 66, 8, 197, 44, 195,
-			200, 25, 48, 66, 6, 195, 46, 226, 77, 66, 6, 195, 170, 49, 147, 67, 0, 18, 2, 95, 95, 72, 4, 39, 55, 50, 35, 15, 76, 36,
-			34, 47, 6, 35, 0, 6, 195, 81, 27, 192, 66, 8, 197, 60, 34, 88, 4, 160, 67, 0, 8, 196, 35, 160, 69, 36, 72, 23, 7, 196,
-			96, 100, 9, 44, 66, 6, 195, 164, 129, 151, 66, 9, 198, 64, 19, 85, 48, 100, 192, 66, 7, 196, 52, 97, 70, 92, 66, 7, 196, 52,
-			21, 8, 236, 65, 7, 196, 45, 67, 70, 92, 66, 8, 197, 20, 144, 77, 189, 48, 67, 8, 197, 181, 98, 77, 36, 176, 67, 6, 195, 173,
-			70, 123, 67, 0, 29, 2, 95, 93, 116, 4, 35, 89, 50, 35, 15, 49, 84, 35, 72, 34, 4, 35, 47, 50, 35, 15, 89, 49, 6, 39,
-			71, 35, 0, 7, 196, 81, 36, 6, 88, 66, 9, 198, 72, 98, 210, 5, 11, 128, 67, 0, 7, 196, 72, 97, 70, 84, 66, 8, 197, 65,
-			16, 89, 25, 112, 66, 8, 197, 48, 149, 198, 55, 176, 67, 8, 197, 32, 99, 70, 55, 176, 67, 6, 195, 20, 98, 253, 66, 8, 197, 8,
-			242, 139, 61, 48, 66, 9, 198, 5, 3, 204, 60, 65, 147, 68, 0, 9, 198, 77, 244, 75, 60, 18, 0, 67, 7, 196, 76, 147, 80, 188,
-			66, 9, 198, 64, 243, 20, 18, 52, 128, 67, 6, 195, 6, 83, 111, 67, 0, 19, 4, 95, 226, 128, 148, 72, 4, 13, 55, 81, 39, 15,
-			47, 37, 34, 6, 36, 0, 9, 198, 91, 99, 143, 48, 241, 0, 67, 8, 197, 73, 58, 76, 25, 112, 66, 9, 198, 73, 1, 139, 82, 51,
-			147, 67, 8, 197, 52, 105, 76, 36, 176, 67, 9, 198, 16, 243, 6, 52, 101, 192, 67, 7, 196, 19, 177, 6, 84, 66, 9, 198, 9, 180,
-			72, 204, 241, 0, 67, 0, 5, 194, 10, 144, 72, 8, 197, 92, 99, 15, 86, 240, 67, 7, 196, 75, 11, 15, 72, 67, 7, 196, 180, 37,
-			13, 196, 67, 7, 196, 4, 74, 77, 188, 67, 0, 9, 2, 95, 96, 81, 34, 35, 83, 0, 9, 198, 65, 18, 89, 24, 193, 151, 67, 9,
-			198, 244, 177, 146, 77, 27, 211, 67, 11, 200, 52, 244, 207, 92, 146, 204, 25, 48, 68, 8, 197, 54, 226, 122, 23, 176, 68, 8, 197, 47,
-			53, 227, 19, 176, 65, 9, 198, 44, 62, 147, 242, 244, 192, 67, 10, 199, 44, 20, 9, 77, 72, 206, 76, 68, 9, 198, 25, 2, 68, 68,
-			21, 64, 67, 0, 8, 197, 67, 203, 18, 187, 16, 68, 0, 9, 198, 84, 244, 207, 17, 16, 85, 67, 8, 197, 165, 36, 253, 189, 48, 67,
-			10, 199, 20, 146, 6, 48, 211, 211, 244, 68, 9, 198, 20, 99, 79, 17, 16, 85, 67, 0, 6, 195, 52, 18, 128, 72, 9, 198, 88, 145,
-			118, 66, 51, 128, 67, 0, 9, 198, 88, 145, 118, 17, 16, 85, 67, 9, 198, 79, 179, 79, 17, 16, 85, 67, 10, 199, 73, 178, 195, 233,
-			63, 47, 76, 68, 9, 198, 52, 146, 246, 17, 16, 85, 67, 9, 198, 188, 99, 79, 17, 16, 85, 68, 9, 198, 152, 147, 205, 61, 63, 64,
-			69, 0, 6, 195, 91, 219, 64, 66, 0, 6, 195, 164, 191, 69, 66, 7, 196, 47, 99, 73, 20, 66, 10, 199, 20, 99, 115, 73, 52, 111,
-			76, 67, 0, 7, 196, 72, 145, 36, 48, 66, 0, 11, 200, 52, 100, 198, 244, 241, 17, 5, 80, 69, 11, 200, 37, 36, 253, 36, 241, 17,
-			5, 80, 69, 0, 6, 195, 99, 208, 80, 66, 7, 196, 196, 149, 201, 180, 68, 9, 198, 20, 148, 252, 4, 208, 128, 67, 0, 6, 65, 92,
-			117, 13, 0, 8, 197, 65, 18, 72, 144, 176, 65, 11, 200, 24, 193, 139, 79, 99, 79, 79, 208, 69, 0, 12, 201, 64, 241, 84, 65, 25,
-			137, 76, 99, 0, 65, 8, 197, 53, 68, 134, 51, 16, 67, 6, 195, 47, 219, 192, 66, 8, 197, 37, 36, 15, 51, 16, 67, 8, 197, 16,
-			18, 15, 51, 16, 67, 0, 10, 199, 45, 22, 245, 36, 131, 9, 12, 67, 0, 0, 0, 7, 196, 23, 49, 212, 188, 67, 0, 0, 6, 195,
-			86, 191, 0, 66, 9, 198, 17, 16, 85, 60, 219, 192, 67, 0, 0, 0, 6, 194, 20, 240, 72, 23, 6, 195, 61, 113, 147, 66, 0, 32,
-			2, 95, 123, 55, 38, 4, 35, 84, 35, 15, 84, 13, 55, 50, 39, 4, 39, 71, 34, 35, 88, 50, 35, 15, 89, 49, 6, 39, 71, 35,
-			0, 6, 195, 96, 25, 76, 66, 6, 195, 46, 251, 64, 66, 0, 7, 196, 73, 176, 198, 76, 66, 12, 201, 68, 16, 143, 76, 245, 143, 48,
-			146, 192, 69, 7, 196, 64, 146, 198, 76, 66, 9, 198, 55, 162, 198, 79, 17, 0, 65, 6, 195, 54, 177, 147, 66, 6, 195, 30, 177, 147,
-			66, 7, 196, 9, 66, 198, 76, 66, 7, 196, 5, 34, 198, 76, 66, 0, 6, 195, 67, 217, 76, 66, 6, 195, 61, 43, 128, 66, 0, 7,
-			195, 66, 145, 73, 72, 23, 11, 66, 48, 48, 55, 4, 36, 84, 35, 0, 24, 6, 195, 88, 16, 187, 66, 7, 196, 220, 195, 137, 44, 66,
-			7, 196, 67, 162, 198, 76, 66, 6, 195, 66, 254, 192, 66, 8, 197, 25, 50, 75, 25, 48, 67, 8, 197, 20, 144, 66, 25, 48, 67, 8,
-			197, 17, 68, 66, 25, 48, 66, 8, 197, 9, 18, 75, 25, 48, 66, 7, 196, 10, 242, 198, 76, 66, 6, 195, 233, 44, 0, 66, 0, 7,
-			196, 66, 144, 198, 72, 66, 8, 197, 45, 18, 82, 148, 192, 66, 6, 195, 46, 240, 80, 66, 6, 195, 26, 83, 128, 66, 6, 195, 236, 32,
-			80, 66, 7, 196, 17, 240, 198, 96, 66, 0, 6, 194, 20, 16, 72, 9, 5, 194, 52, 16, 72, 14, 2, 95, 126, 84, 13, 55, 50, 6,
-			37, 76, 49, 35, 0, 6, 195, 64, 156, 251, 67, 7, 196, 49, 177, 198, 92, 66, 7, 196, 33, 176, 134, 92, 66, 6, 195, 11, 176, 187,
-			66, 9, 198, 233, 97, 143, 48, 241, 0, 68, 8, 197, 4, 87, 229, 57, 48, 67, 0, 32, 2, 95, 125, 116, 4, 35, 89, 50, 35, 15,
-			84, 13, 55, 50, 39, 4, 39, 71, 34, 35, 88, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 6, 195, 76, 153, 78, 66, 6, 195, 149,
-			107, 192, 66, 7, 196, 52, 18, 165, 64, 66, 0, 23, 2, 95, 124, 84, 36, 34, 47, 37, 49, 4, 35, 55, 50, 35, 15, 76, 36, 34,
-			47, 6, 35, 0, 9, 198, 72, 98, 210, 148, 228, 192, 66, 7, 196, 216, 131, 194, 236, 67, 9, 198, 66, 148, 198, 45, 36, 192, 66, 7,
-			196, 67, 212, 201, 236, 67, 9, 198, 47, 52, 198, 45, 36, 192, 66, 7, 196, 30, 144, 134, 92, 66, 9, 198, 20, 96, 159, 148, 228, 192,
-			67, 7, 196, 18, 144, 134, 92, 66, 8, 197, 13, 16, 66, 25, 112, 66, 8, 197, 232, 100, 165, 57, 48, 67, 0, 6, 195, 87, 57, 78,
-			66, 9, 198, 64, 145, 133, 25, 41, 76, 68, 7, 196, 16, 18, 165, 56, 66, 7, 196, 9, 68, 75, 188, 66, 7, 196, 8, 244, 165, 56,
-			66, 0, 8, 197, 89, 64, 166, 25, 112, 67, 8, 197, 72, 98, 229, 57, 48, 66, 10, 199, 72, 97, 77, 37, 131, 137, 44, 65, 9, 198,
-			65, 25, 174, 56, 146, 192, 65, 8, 197, 52, 148, 137, 207, 176, 68, 8, 197, 12, 100, 246, 55, 176, 67, 0, 11, 5, 95, 48, 97, 110,
-			100, 10, 2, 37, 0, 7, 196, 91, 211, 210, 188, 67, 6, 195, 8, 240, 72, 66, 0, 9, 198, 97, 65, 197, 192, 101, 192, 67, 9, 198,
-			95, 161, 170, 96, 226, 75, 65, 9, 198, 84, 145, 20, 70, 244, 192, 67, 7, 196, 73, 180, 165, 12, 66, 9, 198, 67, 100, 198, 74, 83,
-			147, 67, 9, 198, 36, 210, 68, 70, 244, 192, 67, 9, 198, 24, 210, 68, 70, 244, 192, 67, 8, 197, 9, 26, 243, 39, 176, 68, 0, 6,
-			195, 16, 241, 70, 65, 7, 196, 164, 140, 239, 72, 67, 9, 198, 67, 100, 201, 212, 49, 146, 68, 8, 197, 66, 115, 6, 46, 240, 67, 0,
-			9, 198, 85, 67, 139, 92, 156, 251, 68, 9, 198, 65, 25, 134, 20, 226, 75, 65, 6, 195, 66, 209, 135, 66, 10, 199, 54, 242, 85, 25,
-			41, 78, 76, 68, 9, 198, 48, 98, 147, 194, 244, 192, 65, 12, 201, 24, 113, 141, 25, 33, 152, 56, 146, 192, 67, 0, 11, 200, 72, 209,
-			147, 44, 17, 71, 38, 0, 65, 9, 198, 64, 243, 9, 76, 146, 239, 68, 7, 196, 24, 180, 165, 32, 66, 0, 9, 198, 88, 148, 56, 62,
-			83, 64, 68, 10, 199, 72, 99, 6, 45, 114, 115, 236, 69, 9, 198, 160, 89, 207, 48, 226, 75, 68, 8, 197, 142, 49, 71, 38, 0, 65,
-			9, 198, 47, 53, 198, 72, 156, 251, 69, 10, 199, 44, 243, 6, 45, 114, 115, 236, 69, 9, 198, 32, 19, 73, 73, 179, 0, 65, 9, 198,
-			23, 48, 66, 244, 226, 75, 66, 10, 199, 13, 178, 16, 38, 83, 137, 44, 66, 0, 6, 195, 220, 179, 204, 66, 6, 195, 50, 203, 64, 66,
-			6, 195, 10, 203, 64, 66, 0, 9, 198, 167, 83, 31, 92, 156, 251, 70, 10, 199, 161, 4, 102, 24, 83, 137, 44, 66, 9, 198, 24, 194,
-			80, 220, 145, 64, 68, 0, 6, 195, 91, 28, 64, 66, 11, 200, 66, 144, 209, 6, 81, 71, 38, 0, 66, 6, 195, 67, 165, 237, 66, 6,
-			195, 47, 169, 76, 66, 0, 7, 196, 81, 140, 9, 44, 67, 8, 197, 76, 101, 142, 36, 176, 66, 8, 197, 68, 148, 206, 36, 176, 66, 8,
-			197, 44, 253, 208, 4, 80, 67, 7, 196, 212, 163, 137, 44, 66, 0, 6, 65, 96, 76, 13, 0, 7, 196, 44, 62, 165, 48, 66, 8, 197,
-			44, 20, 9, 148, 192, 67, 6, 195, 15, 188, 237, 67, 6, 195, 233, 44, 45, 67, 0, 9, 198, 96, 148, 147, 56, 146, 192, 66, 9, 198,
-			92, 99, 20, 48, 242, 69, 68, 9, 198, 64, 100, 147, 56, 146, 192, 66, 9, 198, 48, 148, 147, 224, 17, 64, 67, 8, 197, 180, 187, 79,
-			36, 80, 68, 0, 8, 197, 88, 241, 65, 148, 160, 67, 6, 195, 84, 244, 243, 66, 7, 196, 67, 212, 236, 180, 67, 9, 198, 64, 243, 9,
-			92, 18, 128, 67, 7, 196, 67, 189, 228, 48, 67, 8, 197, 20, 144, 68, 206, 208, 68, 6, 195, 9, 73, 78, 66, 0, 9, 198, 72, 99,
-			70, 20, 99, 0, 67, 10, 199, 12, 99, 15, 72, 148, 6, 20, 68, 0, 9, 198, 88, 99, 9, 61, 34, 248, 68, 6, 195, 79, 137, 78,
-			66, 7, 196, 73, 67, 37, 56, 66, 8, 197, 66, 51, 139, 79, 48, 66, 7, 196, 44, 21, 101, 56, 66, 6, 195, 46, 210, 239, 66, 8,
-			197, 18, 54, 65, 148, 160, 67, 6, 195, 10, 210, 239, 66, 0, 10, 199, 89, 64, 143, 73, 51, 137, 44, 67, 9, 198, 66, 179, 210, 76,
-			226, 75, 65, 10, 199, 32, 243, 211, 25, 99, 137, 44, 68, 0, 8, 197, 65, 68, 73, 148, 224, 67, 8, 197, 44, 20, 9, 148, 224, 67,
-			0, 9, 198, 73, 181, 24, 192, 146, 192, 68, 10, 199, 72, 191, 79, 73, 51, 137, 44, 65, 9, 198, 67, 98, 212, 23, 2, 75, 66, 10,
-			199, 67, 195, 211, 25, 99, 137, 44, 68, 10, 199, 145, 4, 91, 73, 51, 137, 44, 65, 10, 199, 46, 148, 15, 73, 51, 137, 44, 65, 11,
-			200, 33, 176, 143, 76, 101, 142, 36, 176, 68, 10, 199, 34, 147, 15, 73, 51, 137, 44, 65, 7, 196, 175, 99, 137, 52, 67, 0, 9, 198,
-			141, 28, 68, 61, 34, 248, 68, 0, 9, 198, 78, 146, 3, 192, 146, 192, 65, 11, 200, 73, 60, 3, 25, 36, 206, 36, 176, 65, 12, 201,
-			68, 17, 73, 61, 49, 150, 56, 146, 192, 69, 9, 198, 55, 51, 196, 68, 19, 64, 67, 9, 198, 46, 227, 196, 68, 19, 64, 67, 0, 8,
-			197, 246, 241, 20, 148, 224, 66, 0, 11, 200, 77, 18, 91, 17, 179, 14, 36, 176, 66, 9, 198, 65, 33, 131, 23, 50, 77, 67, 0, 7,
-			196, 76, 99, 70, 48, 66, 7, 196, 76, 97, 6, 48, 66, 7, 196, 61, 49, 70, 48, 66, 7, 196, 52, 241, 70, 48, 66, 0, 12, 201,
-			61, 35, 79, 108, 70, 204, 56, 146, 192, 67, 10, 199, 161, 34, 248, 61, 35, 137, 44, 66, 0, 7, 196, 99, 1, 6, 48, 66, 8, 197,
-			68, 18, 5, 24, 192, 66, 7, 196, 66, 145, 70, 48, 66, 7, 196, 53, 66, 6, 40, 66, 0, 7, 196, 91, 1, 70, 44, 66, 12, 201,
-			65, 25, 143, 108, 70, 204, 56, 146, 192, 67, 12, 201, 64, 241, 80, 60, 194, 231, 56, 146, 192, 65, 12, 201, 52, 227, 196, 61, 177, 27,
-			48, 226, 75, 67, 6, 195, 5, 34, 251, 66, 0, 7, 196, 11, 209, 70, 40, 66, 9, 198, 8, 100, 243, 156, 242, 0, 68, 0, 6, 195,
-			105, 74, 87, 66, 12, 201, 96, 100, 252, 37, 177, 27, 48, 226, 75, 68, 0, 8, 197, 64, 243, 46, 24, 160, 67, 0, 7, 196, 44, 21,
-			155, 68, 66, 0, 6, 195, 73, 76, 68, 66, 7, 196, 9, 70, 77, 192, 66, 0, 9, 198, 84, 206, 9, 20, 148, 139, 67, 7, 196, 148,
-			225, 70, 52, 66, 9, 198, 73, 14, 205, 5, 113, 147, 67, 8, 197, 52, 101, 140, 24, 208, 66, 9, 198, 44, 20, 11, 60, 222, 192, 67,
-			0, 7, 196, 44, 248, 196, 192, 67, 6, 195, 20, 145, 136, 66, 7, 196, 189, 50, 68, 192, 67, 0, 0, 0, 7, 196, 64, 17, 70, 28,
-			66, 7, 196, 16, 241, 70, 28, 66, 7, 196, 8, 241, 70, 28, 66, 0, 7, 196, 75, 176, 134, 32, 66, 11, 200, 64, 241, 54, 52, 17,
-			71, 38, 0, 66, 9, 198, 16, 18, 15, 60, 35, 112, 68, 0, 9, 198, 65, 26, 211, 36, 187, 211, 67, 7, 196, 44, 19, 91, 100, 66,
-			8, 197, 17, 180, 77, 24, 112, 66, 8, 197, 17, 16, 66, 24, 112, 66, 0, 9, 198, 73, 59, 15, 60, 35, 112, 68, 10, 199, 44, 226,
-			68, 60, 240, 141, 192, 68, 7, 196, 44, 204, 241, 16, 66, 0, 7, 195, 98, 146, 0, 72, 23, 6, 195, 98, 113, 139, 66, 9, 198, 72,
-			214, 209, 20, 97, 192, 66, 0, 8, 197, 5, 113, 147, 187, 0, 68, 0, 8, 197, 32, 96, 200, 24, 176, 66, 0, 8, 197, 32, 195, 197,
-			24, 160, 66, 8, 197, 5, 3, 196, 24, 160, 67, 0, 0, 8, 197, 99, 163, 197, 24, 160, 67, 6, 195, 48, 97, 48, 66, 0, 0, 9,
-			198, 152, 147, 205, 60, 81, 140, 69, 0, 7, 196, 212, 83, 198, 52, 67, 0, 0, 6, 65, 100, 91, 13, 0, 6, 195, 236, 76, 0, 66,
-			0, 0, 9, 198, 99, 179, 143, 32, 99, 64, 67, 0, 9, 198, 154, 249, 69, 28, 152, 0, 66, 0, 0, 0, 7, 196, 80, 128, 134, 44,
-			66, 0, 6, 195, 140, 177, 138, 66, 0, 16, 67, 73, 52, 64, 89, 47, 34, 6, 35, 50, 37, 117, 35, 0, 24, 6, 195, 10, 182, 209,
-			66, 0, 8, 197, 67, 160, 66, 24, 192, 67, 0, 0, 7, 195, 61, 32, 240, 72, 23, 8, 197, 23, 177, 130, 24, 160, 67, 0, 0, 0,
-			9, 198, 45, 22, 210, 79, 134, 211, 67, 0, 7, 196, 48, 149, 240, 32, 66, 0, 10, 199, 9, 66, 205, 24, 162, 219, 68, 65, 0, 0,
-			0, 9, 198, 44, 25, 69, 28, 152, 0, 65, 0, 9, 198, 217, 51, 73, 73, 54, 209, 65, 6, 195, 24, 193, 139, 66, 8, 197, 13, 180,
-			67, 24, 112, 66, 0, 0, 9, 198, 52, 105, 76, 81, 17, 0, 67, 0, 0, 8, 197, 52, 244, 248, 24, 80, 67, 0, 8, 197, 64, 193,
-			130, 24, 160, 66, 0, 9, 198, 72, 19, 79, 76, 98, 192, 67, 0, 0, 0, 0, 0, 7, 65, 104, 91, 47, 13, 0, 6, 195, 55, 171,
-			48, 67, 10, 199, 17, 27, 197, 88, 244, 198, 48, 67, 0, 0, 8, 197, 21, 73, 16, 164, 224, 67, 0, 0, 0, 0, 0, 0, 0, 0,
-			9, 198, 61, 82, 87, 36, 242, 0, 68, 0, 7, 196, 44, 245, 203, 232, 65, 0, 9, 198, 64, 243, 20, 73, 179, 128, 67, 0, 8, 197,
-			96, 98, 209, 108, 176, 66, 0, 0, 8, 197, 67, 160, 89, 81, 48, 67, 9, 198, 20, 99, 65, 16, 241, 0, 67, 0, 7, 195, 13, 22,
-			200, 72, 23, 0, 7, 195, 176, 17, 193, 72, 23, 6, 195, 17, 72, 217, 66, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 68, 18, 18,
-			78, 147, 0, 66, 9, 198, 52, 21, 186, 4, 81, 193, 68, 0, 0, 7, 196, 74, 210, 219, 52, 66, 6, 195, 233, 54, 203, 66, 0, 0,
-			0, 0, 13, 65, 108, 6, 36, 34, 81, 4, 39, 55, 35, 65, 0, 0, 0, 0, 0, 0, 0, 11, 200, 64, 241, 84, 96, 20, 147, 108,
-			176, 65, 0, 0, 0, 0, 9, 198, 47, 160, 77, 8, 243, 0, 67, 8, 197, 8, 99, 19, 108, 176, 66, 0, 9, 198, 189, 50, 85, 68,
-			146, 0, 67, 0, 0, 0, 9, 198, 22, 144, 143, 73, 178, 192, 67, 0, 0, 9, 198, 237, 117, 187, 92, 241, 0, 67, 9, 198, 23, 1,
-			118, 48, 241, 0, 67, 0, 0, 9, 198, 68, 21, 129, 76, 198, 203, 67, 8, 197, 246, 82, 204, 108, 176, 67, 0, 9, 198, 67, 101, 82,
-			109, 242, 0, 67, 0, 0, 6, 18, 66, 208, 181, 0, 209, 144, 0, 208, 184, 0, 209, 157, 0, 7, 6, 18, 67, 209, 128, 0, 208, 187,
-			0, 208, 188, 0, 208, 189, 0, 7, 6, 18, 68, 208, 180, 208, 183, 0, 208, 180, 208, 182, 0, 208, 177, 0, 208, 178, 0, 208, 179, 0,
-			208, 180, 0, 208, 183, 0, 208, 182, 0, 7, 6, 18, 69, 208, 191, 0, 209, 132, 0, 208, 186, 0, 209, 130, 0, 209, 129, 0, 209, 134,
-			0, 209, 136, 0, 209, 137, 0, 209, 135, 0, 209, 133, 0, 7, 6, 1, 17, 0, 209, 128, 1, 21, 2, 32, 3, 6, 35, 34, 0, 209,
-			130, 208, 181, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 35, 47, 36, 55, 36, 50, 0, 209, 130, 208, 181, 208, 187, 209, 129,
-			209, 130, 208, 178, 208, 190, 1, 21, 2, 32, 3, 6, 35, 47, 36, 55, 89, 47, 84, 39, 0, 208, 186, 1, 21, 2, 32, 3, 6, 35,
-			49, 0, 208, 189, 208, 184, 208, 181, 1, 21, 2, 32, 3, 6, 35, 50, 37, 36, 0, 208, 189, 209, 129, 208, 186, 208, 184, 1, 21, 2,
-			32, 3, 6, 35, 50, 89, 49, 37, 0, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 35, 55, 36, 50, 0, 208, 187, 208, 184,
-			209, 137, 208, 181, 1, 21, 2, 32, 3, 6, 35, 55, 37, 91, 47, 36, 0, 208, 187, 208, 189, 209, 143, 1, 21, 2, 32, 3, 6, 35,
-			55, 50, 38, 35, 0, 209, 135, 1, 21, 2, 32, 3, 6, 35, 76, 0, 208, 178, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32, 3, 6,
-			35, 84, 37, 91, 47, 36, 0, 208, 182, 1, 21, 2, 32, 3, 6, 35, 90, 0, 209, 134, 208, 184, 209, 143, 1, 21, 2, 32, 3, 6,
-			35, 117, 37, 35, 0, 4, 3, 35, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 209, 128, 208, 184, 209, 143, 1, 21, 2, 32, 3, 35,
-			34, 37, 35, 0, 7, 6, 1, 18, 0, 3, 71, 0, 2, 17, 71, 3, 71, 38, 0, 7, 6, 1, 19, 0, 3, 84, 0, 2, 17, 71,
-			3, 84, 38, 0, 7, 6, 1, 20, 0, 3, 81, 0, 2, 17, 71, 3, 122, 0, 7, 6, 1, 21, 0, 3, 72, 0, 208, 182, 3, 75,
-			0, 2, 17, 71, 3, 116, 0, 208, 183, 3, 118, 0, 208, 183, 2, 17, 71, 3, 118, 38, 0, 7, 6, 1, 22, 0, 208, 181, 208, 189,
-			1, 21, 2, 32, 3, 6, 36, 36, 50, 0, 208, 189, 208, 184, 208, 181, 1, 21, 2, 32, 3, 6, 36, 50, 37, 36, 0, 208, 189, 209,
-			130, 1, 21, 2, 32, 3, 6, 36, 50, 47, 0, 208, 185, 209, 129, 208, 186, 208, 184, 1, 21, 2, 32, 3, 6, 36, 57, 89, 49, 37,
-			0, 208, 177, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 36, 71, 36, 50, 0, 208, 178, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6,
-			36, 84, 36, 50, 0, 3, 36, 0, 7, 6, 1, 23, 0, 3, 90, 0, 7, 6, 1, 24, 0, 3, 88, 0, 2, 17, 71, 3, 94, 0,
-			7, 6, 1, 25, 0, 4, 1, 130, 209, 190, 208, 2, 209, 143, 32, 3, 6, 37, 0, 1, 186, 208, 2, 208, 189, 209, 143, 32, 0, 209,
-			130, 1, 21, 2, 32, 3, 6, 37, 47, 0, 209, 130, 208, 181, 208, 187, 1, 21, 2, 32, 3, 6, 37, 47, 36, 55, 0, 209, 130, 208,
-			181, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 37, 47, 36, 55, 36, 50, 0, 208, 180, 208, 177, 208, 176, 1, 21, 2, 32,
-			3, 6, 37, 47, 71, 35, 0, 208, 186, 208, 176, 208, 178, 1, 21, 2, 32, 3, 6, 37, 49, 35, 84, 0, 208, 189, 209, 129, 208, 186,
-			208, 184, 1, 21, 2, 32, 3, 6, 37, 50, 89, 49, 37, 0, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 37, 55, 36, 50,
-			0, 208, 187, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32, 3, 6, 37, 55, 37, 91, 47, 36, 0, 208, 188, 208, 176, 1, 21, 2, 32,
-			3, 6, 37, 65, 35, 0, 209, 135, 208, 181, 209, 129, 208, 186, 208, 184, 1, 21, 2, 32, 3, 6, 37, 76, 36, 89, 49, 37, 0, 208,
-			178, 1, 21, 2, 32, 3, 6, 37, 84, 0, 208, 178, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 37, 84, 36, 50, 0, 208, 183, 209,
-			138, 208, 188, 1, 21, 2, 32, 3, 6, 37, 88, 13, 65, 0, 209, 129, 209, 130, 1, 21, 2, 32, 3, 6, 37, 89, 47, 0, 3, 37,
-			0, 2, 32, 24, 3, 37, 12, 0, 7, 6, 1, 26, 0, 3, 57, 0, 7, 6, 1, 27, 0, 3, 49, 0, 2, 17, 71, 3, 49, 38,
-			0, 208, 190, 1, 21, 2, 32, 14, 128, 128, 130, 3, 49, 39, 0, 7, 6, 1, 28, 0, 4, 2, 17, 71, 3, 55, 0, 2, 18, 66,
-			0, 2, 209, 140, 18, 66, 3, 61, 0, 3, 64, 0, 7, 6, 1, 29, 0, 3, 65, 0, 2, 17, 71, 3, 65, 38, 0, 7, 6, 1,
-			30, 0, 3, 50, 0, 208, 189, 3, 50, 12, 0, 2, 17, 71, 3, 67, 0, 7, 6, 1, 31, 0, 209, 128, 208, 184, 209, 131, 208, 188,
-			1, 21, 2, 32, 3, 6, 39, 34, 37, 40, 65, 0, 208, 186, 1, 21, 2, 32, 3, 6, 39, 49, 0, 208, 178, 208, 181, 208, 189, 1,
-			21, 2, 32, 3, 6, 39, 84, 36, 50, 0, 208, 178, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32, 3, 6, 39, 84, 37, 91, 47, 36,
-			0, 208, 178, 208, 189, 208, 184, 208, 186, 1, 21, 2, 32, 3, 6, 39, 84, 50, 37, 49, 0, 208, 183, 208, 181, 208, 189, 2, 32, 3,
-			6, 39, 88, 36, 50, 0, 3, 39, 0, 208, 178, 208, 176, 2, 209, 130, 32, 3, 39, 84, 6, 35, 0, 208, 178, 208, 184, 2, 209, 130,
-			32, 3, 39, 84, 6, 37, 0, 7, 6, 1, 32, 0, 3, 48, 0, 2, 17, 71, 3, 48, 38, 0, 7, 6, 1, 33, 0, 3, 34, 0,
-			2, 17, 71, 3, 34, 38, 0, 7, 6, 1, 34, 0, 3, 89, 0, 2, 17, 71, 3, 95, 0, 7, 6, 1, 35, 0, 3, 47, 0, 209,
-			130, 3, 47, 12, 0, 208, 176, 1, 21, 2, 32, 14, 128, 128, 130, 3, 47, 35, 0, 208, 181, 1, 21, 2, 32, 14, 128, 128, 130, 3,
-			47, 36, 0, 2, 17, 71, 3, 115, 0, 7, 6, 1, 36, 0, 3, 40, 0, 7, 6, 1, 37, 0, 3, 83, 0, 2, 17, 71, 3, 83,
-			38, 0, 7, 6, 1, 38, 0, 4, 2, 17, 71, 3, 99, 0, 2, 208, 184, 0, 3, 101, 0, 7, 6, 1, 39, 0, 3, 117, 0, 2,
-			17, 71, 3, 117, 38, 0, 7, 6, 1, 40, 0, 208, 190, 1, 21, 2, 32, 3, 8, 76, 39, 0, 3, 76, 0, 7, 6, 1, 41, 0,
-			3, 91, 0, 7, 6, 1, 42, 0, 3, 91, 47, 0, 2, 17, 71, 3, 91, 115, 0, 7, 6, 1, 43, 0, 3, 13, 0, 209, 130, 1,
-			21, 2, 32, 14, 128, 128, 130, 3, 13, 47, 0, 7, 6, 1, 45, 0, 1, 17, 67, 3, 0, 3, 57, 0, 7, 6, 1, 47, 0, 1,
-			17, 67, 3, 40, 0, 3, 57, 40, 0, 7, 6, 1, 48, 0, 208, 189, 208, 184, 208, 181, 1, 21, 2, 32, 3, 6, 57, 35, 50, 37,
-			36, 0, 4, 1, 17, 67, 3, 35, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 209, 130, 1, 17, 67, 21, 2, 32, 14, 128,
-			192, 130, 3, 35, 47, 0, 4, 3, 57, 35, 0, 1, 21, 2, 32, 14, 128, 192, 129, 0, 209, 130, 1, 21, 2, 32, 14, 128, 192, 130,
-			3, 57, 35, 47, 0, 7, 6, 0, 209, 144, 3, 7, 36, 0, 209, 157, 3, 7, 37, 0, 204, 128, 3, 8, 0, 36, 3, 72, 6, 39,
-			64, 35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts6 = FileInMemory_createWithData (27006, reinterpret_cast<const char *> (&espeakdata_dicts6_data), 
-			U"espeak-1.48.04-source/espeak-data/bg_dict", 
+		static unsigned char espeakdata_dicts5_data[26955] = {
+			0, 4, 0, 0, 170, 99, 0, 0, 8, 197, 64, 20, 144, 245, 48, 66, 8, 197, 55, 166, 81, 81, 48, 66, 8, 197, 50, 226, 80, 81,
+			48, 67, 8, 197, 47, 52, 209, 173, 48, 66, 0, 9, 198, 88, 148, 147, 60, 195, 196, 67, 9, 198, 87, 163, 107, 60, 195, 196, 68, 9,
+			198, 25, 50, 77, 60, 195, 196, 68, 9, 198, 168, 139, 211, 60, 195, 196, 68, 0, 8, 197, 52, 20, 203, 5, 0, 66, 0, 6, 195, 79,
+			128, 72, 66, 7, 196, 175, 99, 137, 52, 67, 0, 7, 196, 74, 49, 84, 68, 66, 7, 196, 67, 97, 139, 76, 66, 7, 196, 65, 27, 137,
+			12, 65, 8, 197, 66, 148, 58, 5, 48, 67, 7, 196, 8, 244, 212, 100, 66, 0, 5, 193, 4, 72, 23, 8, 197, 149, 18, 75, 5, 48,
+			67, 6, 195, 75, 160, 74, 66, 12, 201, 68, 17, 73, 60, 68, 65, 52, 245, 115, 70, 6, 195, 48, 98, 250, 65, 9, 198, 47, 161, 73,
+			60, 195, 196, 68, 9, 198, 17, 16, 85, 60, 195, 196, 67, 0, 17, 66, 5, 0, 35, 48, 35, 34, 47, 35, 65, 6, 36, 50, 47, 0,
+			24, 6, 195, 5, 0, 89, 66, 0, 6, 195, 148, 204, 192, 66, 10, 199, 197, 36, 6, 45, 63, 65, 76, 68, 0, 7, 196, 73, 67, 37,
+			56, 66, 7, 196, 20, 115, 227, 56, 66, 7, 196, 212, 81, 170, 48, 67, 0, 6, 65, 8, 71, 13, 0, 8, 197, 64, 193, 130, 24, 160,
+			66, 0, 9, 198, 77, 27, 210, 67, 212, 192, 66, 9, 198, 73, 52, 65, 76, 97, 0, 66, 9, 198, 197, 36, 201, 77, 68, 192, 67, 9,
+			198, 24, 50, 237, 37, 4, 192, 67, 0, 0, 11, 200, 84, 148, 248, 5, 51, 204, 60, 64, 69, 0, 7, 65, 12, 84, 13, 0, 14, 4,
+			193, 12, 23, 8, 197, 77, 18, 66, 60, 160, 66, 8, 197, 73, 94, 207, 36, 80, 67, 6, 195, 67, 211, 202, 66, 6, 195, 244, 99, 0,
+			66, 8, 197, 10, 188, 2, 232, 80, 67, 0, 9, 198, 73, 52, 73, 88, 236, 64, 66, 6, 195, 67, 100, 47, 66, 9, 198, 52, 193, 139,
+			60, 222, 192, 67, 9, 198, 44, 243, 80, 61, 36, 192, 66, 9, 198, 14, 52, 147, 24, 204, 64, 67, 0, 0, 6, 195, 14, 251, 177, 67,
+			0, 12, 65, 16, 81, 39, 72, 6, 37, 50, 35, 0, 25, 9, 198, 47, 19, 193, 67, 160, 83, 69, 8, 197, 22, 196, 209, 199, 176, 67,
+			8, 197, 168, 36, 65, 87, 48, 67, 0, 6, 195, 74, 170, 87, 66, 9, 198, 64, 17, 73, 100, 21, 128, 67, 0, 6, 195, 73, 179, 64,
+			72, 9, 198, 16, 20, 147, 216, 227, 205, 67, 0, 17, 4, 95, 100, 112, 116, 10, 117, 38, 6, 35, 64, 39, 10, 37, 15, 0, 6, 195,
+			75, 9, 237, 67, 7, 196, 20, 146, 229, 76, 66, 7, 196, 173, 114, 115, 236, 68, 0, 6, 65, 20, 72, 13, 0, 8, 197, 25, 99, 204,
+			61, 48, 67, 0, 9, 198, 77, 18, 80, 76, 149, 128, 66, 0, 9, 198, 188, 99, 79, 17, 16, 85, 68, 0, 7, 196, 74, 210, 219, 52,
+			66, 6, 195, 69, 64, 177, 66, 0, 4, 193, 24, 72, 9, 198, 32, 20, 207, 99, 2, 75, 66, 8, 197, 19, 3, 215, 36, 80, 67, 0,
+			9, 198, 73, 15, 19, 60, 222, 192, 67, 9, 198, 53, 67, 133, 105, 66, 192, 66, 9, 198, 140, 50, 193, 20, 114, 96, 65, 6, 195, 47,
+			138, 7, 66, 0, 6, 195, 79, 133, 8, 66, 0, 7, 196, 75, 22, 6, 92, 66, 6, 195, 75, 19, 197, 66, 12, 201, 64, 243, 9, 76,
+			99, 73, 17, 27, 211, 69, 0, 6, 65, 28, 90, 13, 0, 8, 197, 52, 105, 78, 60, 192, 67, 6, 195, 22, 180, 238, 66, 0, 6, 195,
+			24, 180, 111, 66, 0, 0, 0, 7, 195, 45, 16, 74, 72, 23, 6, 65, 32, 88, 13, 0, 8, 197, 45, 68, 82, 189, 48, 66, 9, 198,
+			45, 22, 196, 157, 16, 83, 67, 8, 197, 44, 243, 85, 245, 48, 66, 8, 197, 20, 98, 239, 5, 48, 67, 0, 9, 198, 72, 19, 79, 72,
+			59, 64, 67, 9, 198, 64, 244, 240, 92, 155, 64, 68, 6, 195, 4, 81, 147, 66, 0, 10, 199, 67, 100, 198, 45, 63, 65, 76, 68, 6,
+			195, 176, 107, 192, 67, 6, 195, 147, 97, 64, 66, 0, 11, 1, 35, 72, 6, 37, 38, 36, 95, 0, 27, 6, 195, 91, 161, 109, 66, 6,
+			195, 36, 81, 173, 67, 6, 195, 11, 19, 205, 66, 0, 5, 193, 36, 72, 8, 8, 197, 69, 77, 213, 60, 32, 67, 8, 197, 66, 145, 68,
+			159, 208, 65, 9, 198, 24, 179, 6, 45, 50, 75, 67, 9, 198, 20, 241, 13, 5, 50, 75, 67, 8, 197, 16, 197, 16, 25, 112, 66, 0,
+			13, 1, 37, 48, 34, 39, 117, 6, 36, 50, 47, 0, 27, 9, 198, 64, 243, 6, 13, 177, 64, 67, 6, 195, 44, 157, 83, 66, 0, 16,
+			67, 73, 52, 64, 89, 47, 34, 6, 35, 50, 37, 117, 35, 0, 24, 6, 1, 38, 21, 0, 10, 6, 195, 60, 140, 192, 66, 6, 195, 46,
+			252, 192, 66, 6, 195, 18, 220, 192, 66, 0, 6, 195, 129, 102, 209, 66, 7, 196, 197, 62, 228, 76, 67, 0, 6, 65, 40, 37, 0, 72,
+			8, 197, 160, 61, 140, 60, 64, 67, 6, 195, 4, 90, 82, 66, 0, 6, 195, 77, 18, 115, 66, 9, 198, 66, 148, 198, 45, 36, 192, 66,
+			6, 195, 44, 22, 115, 66, 0, 15, 1, 42, 88, 84, 36, 88, 72, 6, 37, 76, 49, 35, 0, 27, 0, 8, 196, 67, 208, 69, 36, 72,
+			23, 9, 1, 43, 48, 55, 40, 89, 0, 27, 9, 198, 84, 244, 221, 60, 163, 0, 66, 6, 195, 77, 18, 125, 66, 9, 198, 65, 62, 207,
+			22, 180, 238, 68, 0, 6, 65, 44, 49, 13, 0, 8, 197, 88, 207, 79, 86, 224, 67, 8, 197, 73, 60, 56, 37, 32, 67, 8, 197, 16,
+			194, 87, 239, 16, 67, 8, 197, 16, 16, 186, 23, 16, 67, 0, 4, 129, 45, 8, 9, 198, 52, 22, 113, 224, 148, 128, 68, 9, 198, 44,
+			20, 11, 60, 222, 192, 67, 9, 198, 189, 50, 68, 236, 242, 128, 68, 0, 6, 195, 221, 3, 204, 66, 6, 195, 157, 16, 68, 66, 0, 8,
+			196, 35, 160, 69, 36, 72, 23, 21, 1, 47, 50, 35, 49, 64, 6, 39, 50, 36, 50, 35, 15, 76, 36, 34, 47, 4, 35, 0, 7, 196,
+			165, 15, 83, 236, 67, 7, 196, 68, 17, 73, 188, 67, 6, 195, 60, 34, 61, 66, 7, 196, 54, 226, 115, 236, 68, 7, 196, 52, 100, 198,
+			244, 67, 6, 195, 5, 82, 89, 66, 0, 6, 65, 48, 55, 13, 0, 8, 197, 69, 178, 248, 37, 32, 67, 6, 195, 31, 2, 86, 66, 8,
+			197, 188, 177, 147, 119, 208, 67, 0, 9, 198, 24, 193, 139, 79, 97, 64, 67, 6, 195, 18, 219, 211, 66, 9, 198, 8, 241, 15, 72, 201,
+			192, 67, 0, 10, 199, 66, 209, 179, 76, 243, 15, 16, 69, 10, 199, 52, 100, 198, 244, 243, 15, 16, 69, 9, 198, 24, 66, 80, 78, 3,
+			177, 66, 0, 0, 6, 65, 52, 65, 13, 0, 8, 197, 11, 161, 140, 25, 80, 67, 8, 197, 5, 68, 144, 81, 96, 65, 0, 6, 195, 91,
+			163, 111, 66, 6, 195, 64, 241, 147, 66, 0, 9, 198, 91, 99, 143, 17, 16, 85, 67, 9, 198, 76, 148, 15, 17, 16, 85, 67, 9, 198,
+			65, 91, 87, 17, 16, 85, 66, 9, 198, 66, 209, 143, 17, 16, 85, 68, 9, 198, 48, 148, 207, 17, 16, 85, 67, 9, 198, 47, 164, 207,
+			17, 16, 85, 67, 9, 198, 25, 51, 143, 17, 16, 85, 67, 0, 7, 196, 83, 97, 193, 40, 67, 7, 196, 55, 0, 71, 236, 67, 0, 6,
+			65, 56, 50, 13, 0, 8, 197, 72, 19, 79, 80, 176, 67, 8, 197, 52, 18, 14, 36, 176, 66, 8, 197, 8, 241, 15, 54, 224, 67, 0,
+			6, 195, 176, 243, 123, 67, 6, 195, 46, 244, 243, 66, 0, 0, 6, 195, 244, 146, 0, 66, 0, 8, 197, 85, 180, 147, 108, 176, 66, 9,
+			198, 64, 197, 19, 177, 16, 83, 67, 8, 197, 32, 96, 200, 24, 176, 66, 9, 198, 232, 148, 147, 177, 16, 83, 68, 0, 16, 1, 61, 36,
+			15, 34, 6, 35, 84, 50, 39, 15, 50, 4, 35, 0, 9, 198, 68, 18, 13, 37, 38, 204, 65, 0, 0, 7, 196, 97, 65, 20, 56, 66,
+			9, 198, 73, 54, 203, 51, 130, 82, 67, 7, 196, 72, 98, 233, 76, 66, 6, 195, 75, 160, 85, 66, 7, 196, 67, 102, 9, 76, 65, 7,
+			196, 44, 245, 70, 196, 67, 7, 196, 236, 100, 201, 44, 67, 9, 198, 24, 81, 140, 12, 18, 146, 65, 6, 195, 23, 186, 153, 66, 0, 11,
+			1, 64, 49, 55, 6, 39, 65, 71, 35, 0, 6, 65, 64, 48, 13, 0, 6, 195, 76, 153, 78, 66, 9, 198, 60, 47, 79, 76, 243, 123,
+			69, 8, 197, 10, 242, 209, 81, 48, 66, 0, 10, 198, 64, 243, 70, 28, 85, 0, 72, 23, 6, 195, 92, 153, 83, 66, 6, 195, 54, 193,
+			147, 66, 6, 195, 28, 157, 83, 66, 0, 9, 198, 64, 243, 9, 17, 16, 85, 67, 10, 199, 189, 50, 80, 240, 100, 201, 44, 69, 0, 6,
+			195, 91, 161, 141, 66, 9, 198, 74, 48, 224, 56, 245, 110, 68, 7, 196, 145, 89, 76, 196, 67, 7, 196, 36, 131, 211, 224, 67, 0, 6,
+			65, 68, 34, 13, 0, 8, 197, 84, 243, 11, 51, 208, 66, 8, 197, 73, 69, 76, 119, 208, 66, 9, 198, 64, 98, 210, 36, 209, 147, 67,
+			0, 13, 202, 73, 179, 211, 25, 129, 146, 76, 60, 9, 44, 67, 6, 195, 66, 227, 211, 66, 0, 6, 195, 222, 132, 192, 66, 0, 7, 196,
+			88, 22, 73, 100, 66, 7, 196, 20, 105, 74, 48, 66, 0, 7, 65, 72, 89, 13, 0, 14, 4, 193, 72, 23, 6, 195, 79, 137, 78, 66,
+			8, 197, 47, 160, 77, 24, 192, 67, 0, 9, 198, 172, 49, 133, 80, 180, 192, 67, 0, 0, 6, 195, 75, 0, 83, 66, 7, 196, 67, 176,
+			193, 32, 66, 7, 196, 60, 35, 15, 16, 66, 6, 195, 12, 20, 173, 66, 0, 6, 65, 76, 47, 13, 0, 8, 197, 91, 179, 70, 51, 16,
+			67, 8, 197, 80, 94, 142, 36, 176, 65, 8, 197, 79, 192, 148, 103, 48, 67, 8, 197, 68, 19, 65, 34, 240, 67, 8, 197, 47, 19, 213,
+			184, 208, 67, 8, 197, 44, 21, 24, 80, 176, 65, 0, 9, 198, 67, 100, 201, 212, 64, 72, 68, 6, 195, 53, 72, 211, 66, 9, 198, 55,
+			50, 83, 247, 17, 0, 66, 9, 198, 22, 113, 133, 192, 146, 192, 66, 0, 6, 195, 73, 49, 128, 72, 0, 7, 196, 66, 147, 15, 52, 66,
+			7, 196, 44, 241, 212, 88, 66, 0, 5, 193, 80, 72, 23, 8, 197, 12, 100, 246, 19, 48, 67, 0, 9, 198, 73, 62, 198, 61, 34, 248,
+			68, 0, 9, 198, 128, 165, 198, 67, 109, 69, 68, 9, 198, 77, 22, 194, 227, 109, 69, 68, 0, 7, 196, 95, 21, 250, 196, 65, 6, 195,
+			85, 77, 145, 66, 11, 200, 73, 58, 80, 76, 243, 73, 95, 16, 68, 7, 196, 73, 51, 201, 44, 66, 7, 196, 212, 83, 205, 236, 67, 7,
+			196, 9, 67, 29, 204, 66, 0, 6, 65, 84, 83, 13, 0, 9, 198, 74, 84, 201, 73, 50, 75, 67, 9, 198, 47, 53, 198, 72, 156, 251,
+			69, 9, 198, 24, 180, 147, 238, 67, 147, 67, 0, 9, 198, 75, 162, 207, 84, 17, 0, 67, 9, 198, 64, 20, 209, 39, 165, 128, 67, 0,
+			10, 199, 84, 244, 253, 25, 15, 83, 236, 69, 9, 198, 84, 244, 207, 17, 16, 85, 67, 9, 198, 79, 179, 79, 17, 16, 85, 67, 9, 198,
+			20, 99, 79, 17, 16, 85, 67, 0, 9, 198, 77, 18, 66, 82, 67, 0, 67, 0, 6, 65, 88, 101, 13, 0, 6, 195, 34, 99, 202, 66,
+			0, 9, 198, 80, 194, 88, 56, 146, 192, 65, 9, 198, 76, 111, 70, 76, 146, 192, 68, 9, 198, 65, 16, 83, 192, 146, 192, 65, 0, 10,
+			199, 20, 99, 21, 199, 162, 84, 52, 67, 0, 7, 196, 80, 128, 134, 44, 66, 11, 200, 77, 18, 66, 4, 74, 78, 36, 176, 66, 11, 200,
+			73, 60, 3, 25, 36, 206, 36, 176, 65, 7, 196, 220, 53, 143, 32, 66, 7, 196, 44, 244, 204, 204, 66, 6, 195, 34, 99, 197, 66, 0,
+			30, 1, 92, 39, 71, 34, 6, 35, 47, 50, 35, 15, 50, 35, 49, 64, 6, 39, 50, 36, 50, 35, 15, 76, 36, 34, 47, 4, 35, 0,
+			6, 65, 92, 117, 13, 0, 8, 197, 76, 240, 143, 18, 240, 67, 8, 197, 216, 208, 143, 36, 80, 67, 12, 201, 68, 17, 73, 61, 49, 150,
+			56, 146, 192, 69, 12, 201, 65, 34, 86, 224, 20, 207, 48, 241, 0, 69, 8, 197, 64, 145, 147, 25, 48, 67, 8, 197, 64, 20, 139, 168,
+			192, 66, 8, 197, 140, 142, 142, 36, 176, 65, 8, 197, 140, 78, 206, 36, 176, 65, 8, 197, 44, 19, 66, 81, 16, 66, 8, 197, 19, 98,
+			14, 36, 176, 66, 8, 197, 8, 18, 179, 25, 48, 67, 8, 197, 4, 87, 229, 57, 48, 67, 0, 9, 198, 77, 27, 210, 67, 212, 252, 67,
+			9, 198, 44, 20, 207, 48, 146, 192, 67, 6, 195, 15, 1, 151, 66, 0, 12, 1, 94, 49, 39, 55, 6, 37, 71, 49, 35, 0, 0, 6,
+			195, 78, 146, 61, 66, 0, 14, 4, 95, 49, 77, 49, 99, 37, 55, 6, 35, 72, 35, 0, 6, 65, 96, 76, 13, 0, 8, 197, 76, 96,
+			134, 103, 192, 67, 8, 197, 69, 70, 67, 25, 48, 66, 6, 195, 55, 62, 150, 66, 8, 197, 44, 22, 109, 61, 48, 67, 6, 195, 8, 31,
+			0, 66, 0, 10, 198, 36, 131, 70, 28, 85, 0, 72, 23, 20, 4, 95, 49, 77, 50, 36, 72, 6, 37, 50, 15, 65, 37, 55, 37, 6,
+			39, 50, 0, 9, 198, 91, 99, 137, 45, 223, 64, 67, 9, 198, 72, 16, 143, 77, 223, 64, 67, 9, 198, 47, 19, 198, 45, 27, 192, 68,
+			9, 198, 17, 27, 197, 60, 219, 192, 67, 0, 21, 4, 95, 49, 77, 51, 36, 72, 6, 37, 50, 15, 65, 37, 55, 37, 6, 35, 34, 72,
+			0, 10, 199, 48, 109, 82, 24, 185, 78, 76, 68, 0, 7, 196, 91, 181, 42, 52, 67, 7, 196, 84, 146, 9, 44, 66, 7, 196, 76, 97,
+			6, 48, 66, 7, 196, 74, 81, 73, 204, 67, 7, 196, 64, 240, 143, 40, 66, 7, 196, 197, 37, 12, 196, 67, 0, 6, 65, 100, 91, 13,
+			0, 12, 201, 47, 53, 251, 76, 208, 74, 73, 63, 64, 66, 8, 197, 13, 178, 19, 244, 64, 66, 8, 197, 9, 67, 5, 60, 64, 66, 0,
+			6, 195, 18, 99, 211, 66, 0, 0, 7, 196, 61, 49, 39, 244, 65, 7, 196, 244, 145, 49, 180, 68, 0, 7, 65, 104, 91, 47, 13, 0,
+			8, 197, 21, 16, 68, 80, 224, 66, 8, 197, 212, 83, 204, 24, 160, 67, 8, 197, 189, 63, 15, 54, 240, 68, 0, 9, 198, 44, 48, 69,
+			68, 20, 192, 66, 9, 198, 20, 100, 15, 32, 148, 192, 66, 0, 7, 195, 73, 180, 128, 72, 23, 6, 195, 60, 35, 112, 66, 0, 7, 196,
+			30, 144, 134, 92, 66, 7, 196, 12, 19, 80, 240, 66, 0, 13, 65, 108, 6, 36, 34, 81, 4, 39, 55, 35, 65, 0, 8, 197, 92, 99,
+			15, 86, 240, 67, 8, 197, 88, 241, 65, 148, 160, 67, 8, 197, 76, 99, 6, 87, 48, 67, 8, 197, 176, 24, 14, 36, 176, 66, 8, 197,
+			57, 66, 204, 27, 16, 67, 8, 197, 36, 220, 14, 36, 176, 65, 0, 9, 198, 73, 62, 47, 156, 97, 64, 68, 9, 198, 72, 99, 112, 56,
+			146, 192, 65, 9, 198, 48, 145, 38, 56, 146, 192, 65, 0, 10, 199, 58, 115, 194, 60, 64, 101, 100, 69, 0, 7, 196, 91, 1, 70, 44,
+			66, 9, 198, 220, 217, 13, 9, 67, 0, 67, 7, 196, 44, 96, 129, 64, 66, 0, 8, 197, 84, 195, 211, 39, 176, 67, 9, 198, 73, 64,
+			146, 77, 16, 83, 66, 9, 198, 73, 52, 91, 12, 226, 75, 66, 8, 197, 44, 19, 123, 79, 48, 67, 0, 0, 0, 7, 196, 73, 180, 165,
+			12, 66, 7, 196, 75, 11, 15, 72, 67, 0, 13, 65, 116, 6, 36, 34, 65, 4, 35, 64, 13, 49, 0, 8, 197, 160, 35, 210, 212, 80,
+			67, 8, 197, 34, 188, 231, 24, 80, 68, 0, 6, 195, 67, 101, 111, 66, 6, 195, 36, 211, 211, 66, 0, 6, 1, 118, 21, 0, 10, 10,
+			199, 47, 49, 79, 55, 18, 84, 52, 67, 0, 11, 200, 64, 243, 20, 68, 18, 16, 4, 80, 68, 7, 196, 20, 243, 107, 196, 67, 7, 196,
+			17, 240, 198, 96, 66, 0, 6, 1, 120, 21, 0, 10, 8, 197, 68, 148, 206, 36, 176, 66, 9, 198, 44, 59, 211, 37, 49, 147, 67, 0,
+			9, 198, 88, 100, 211, 68, 146, 192, 66, 9, 198, 76, 146, 195, 192, 146, 192, 65, 9, 198, 45, 180, 69, 30, 210, 96, 65, 0, 6, 195,
+			79, 143, 64, 66, 10, 199, 161, 4, 102, 24, 83, 137, 44, 66, 6, 195, 140, 146, 192, 66, 9, 198, 5, 3, 211, 24, 242, 0, 68, 0,
+			9, 198, 47, 52, 209, 4, 32, 82, 67, 7, 196, 196, 149, 201, 180, 68, 0, 8, 197, 88, 18, 133, 80, 176, 66, 12, 201, 73, 182, 20,
+			13, 36, 195, 192, 146, 192, 66, 9, 198, 24, 193, 139, 79, 99, 123, 68, 0, 7, 195, 44, 20, 207, 72, 23, 9, 198, 88, 148, 56, 62,
+			83, 64, 68, 9, 198, 72, 177, 144, 76, 146, 192, 66, 9, 198, 52, 100, 207, 20, 146, 192, 67, 0, 6, 195, 79, 15, 64, 66, 9, 198,
+			52, 17, 5, 188, 242, 0, 67, 0, 9, 198, 79, 99, 6, 40, 37, 18, 67, 0, 8, 197, 79, 99, 80, 25, 48, 66, 8, 197, 56, 148,
+			209, 5, 48, 66, 6, 195, 53, 77, 206, 66, 0, 9, 198, 24, 193, 139, 79, 99, 128, 67, 0, 0, 6, 195, 224, 149, 13, 65, 7, 196,
+			44, 21, 101, 56, 66, 6, 195, 22, 200, 197, 66, 0, 8, 197, 85, 16, 72, 119, 208, 66, 0, 9, 198, 77, 16, 77, 64, 204, 64, 66,
+			9, 198, 68, 147, 76, 128, 236, 64, 65, 6, 195, 6, 83, 111, 67, 0, 6, 195, 66, 241, 140, 66, 6, 195, 188, 156, 192, 67, 0, 7,
+			196, 245, 62, 6, 20, 67, 7, 196, 52, 155, 58, 20, 67, 7, 196, 55, 162, 212, 96, 66, 7, 196, 20, 98, 233, 76, 66, 0, 8, 197,
+			80, 210, 82, 108, 192, 65, 8, 197, 67, 100, 236, 60, 192, 67, 8, 197, 66, 52, 147, 216, 224, 66, 8, 197, 161, 77, 135, 4, 160, 68,
+			8, 197, 44, 20, 9, 148, 192, 67, 8, 197, 23, 177, 130, 24, 160, 67, 0, 6, 195, 98, 113, 139, 66, 9, 198, 95, 18, 195, 4, 164,
+			128, 66, 9, 198, 60, 81, 139, 60, 204, 192, 68, 6, 195, 24, 193, 139, 66, 0, 0, 8, 196, 61, 50, 219, 52, 72, 23, 7, 196, 72,
+			148, 232, 28, 66, 7, 196, 12, 89, 198, 92, 66, 7, 196, 9, 179, 53, 96, 66, 0, 16, 67, 9, 67, 0, 71, 40, 55, 36, 84, 4,
+			35, 34, 47, 0, 24, 8, 197, 72, 20, 209, 5, 0, 66, 8, 197, 45, 28, 79, 51, 16, 67, 6, 195, 47, 131, 202, 66, 8, 197, 37,
+			36, 15, 51, 16, 67, 8, 197, 20, 144, 68, 206, 208, 68, 8, 197, 16, 18, 15, 51, 16, 67, 8, 197, 11, 1, 149, 37, 32, 67, 8,
+			197, 4, 77, 142, 60, 208, 67, 0, 6, 195, 95, 18, 75, 66, 9, 198, 89, 67, 111, 60, 145, 64, 68, 6, 195, 164, 220, 211, 66, 9,
+			198, 55, 195, 196, 48, 97, 64, 67, 9, 198, 19, 49, 79, 48, 158, 192, 68, 6, 195, 168, 188, 211, 66, 0, 10, 199, 76, 100, 142, 60,
+			68, 91, 20, 67, 6, 195, 66, 240, 124, 67, 6, 195, 61, 153, 128, 66, 9, 198, 52, 146, 246, 72, 190, 0, 67, 0, 7, 195, 72, 193,
+			133, 72, 23, 7, 196, 61, 48, 198, 72, 66, 7, 196, 46, 251, 73, 128, 66, 7, 196, 212, 95, 79, 20, 67, 0, 5, 193, 144, 72, 23,
+			8, 197, 85, 18, 72, 119, 208, 66, 8, 197, 79, 209, 129, 23, 208, 68, 8, 197, 64, 243, 9, 55, 176, 67, 8, 197, 52, 17, 1, 35,
+			16, 67, 8, 197, 10, 209, 65, 91, 16, 67, 0, 6, 195, 233, 54, 203, 66, 0, 6, 195, 25, 51, 192, 65, 10, 199, 52, 20, 140, 61,
+			32, 198, 76, 67, 0, 0, 8, 197, 93, 181, 83, 24, 112, 66, 8, 197, 48, 109, 195, 108, 80, 67, 8, 197, 17, 180, 77, 24, 112, 66,
+			0, 0, 8, 197, 77, 18, 88, 51, 0, 66, 6, 195, 236, 32, 80, 66, 0, 6, 195, 73, 176, 189, 66, 7, 196, 67, 189, 228, 48, 67,
+			6, 195, 52, 97, 109, 66, 7, 196, 45, 25, 129, 40, 66, 0, 0, 10, 66, 17, 16, 81, 34, 35, 47, 0, 24, 9, 198, 88, 17, 71,
+			185, 178, 192, 67, 6, 195, 55, 213, 11, 66, 6, 195, 34, 241, 111, 66, 6, 195, 5, 96, 83, 66, 0, 6, 195, 25, 59, 128, 66, 0,
+			7, 196, 18, 144, 134, 92, 66, 7, 196, 8, 243, 9, 20, 66, 0, 8, 197, 76, 96, 83, 70, 208, 67, 8, 197, 68, 18, 11, 61, 144,
+			66, 0, 0, 6, 195, 92, 155, 192, 66, 0, 5, 194, 159, 0, 66, 7, 196, 145, 156, 6, 92, 65, 7, 196, 52, 104, 206, 28, 66, 0,
+			5, 193, 160, 72, 11, 8, 197, 88, 145, 81, 189, 48, 66, 8, 197, 66, 49, 9, 5, 48, 67, 8, 197, 44, 244, 204, 25, 48, 66, 6,
+			195, 188, 29, 206, 67, 9, 198, 4, 128, 148, 96, 226, 75, 65, 0, 20, 4, 95, 50, 77, 50, 72, 84, 6, 35, 15, 65, 37, 55, 37,
+			6, 39, 50, 35, 0, 9, 198, 40, 241, 79, 87, 211, 64, 67, 6, 195, 20, 97, 151, 66, 0, 21, 4, 95, 50, 77, 51, 72, 84, 6,
+			35, 15, 65, 37, 55, 37, 6, 35, 34, 72, 35, 0, 10, 199, 88, 99, 79, 16, 195, 194, 196, 68, 0, 7, 195, 8, 98, 0, 72, 23,
+			7, 196, 61, 49, 70, 48, 66, 0, 11, 200, 45, 67, 133, 81, 17, 71, 38, 0, 65, 8, 197, 44, 19, 66, 80, 128, 66, 0, 9, 198,
+			36, 212, 6, 22, 244, 128, 67, 0, 0, 7, 196, 96, 99, 9, 44, 66, 7, 196, 80, 211, 137, 44, 66, 9, 198, 67, 212, 213, 24, 163,
+			0, 66, 7, 196, 46, 50, 221, 244, 66, 0, 4, 193, 168, 72, 9, 198, 73, 14, 205, 5, 113, 147, 67, 8, 197, 44, 243, 51, 38, 208,
+			68, 8, 197, 44, 20, 9, 148, 224, 67, 8, 197, 20, 149, 83, 204, 64, 66, 8, 197, 169, 113, 139, 70, 208, 67, 8, 197, 12, 99, 9,
+			46, 240, 67, 8, 197, 7, 179, 200, 60, 192, 68, 0, 0, 6, 195, 66, 236, 192, 66, 0, 6, 195, 67, 96, 237, 66, 7, 196, 49, 177,
+			198, 92, 66, 7, 196, 20, 155, 79, 16, 67, 7, 196, 18, 49, 15, 48, 66, 7, 196, 10, 182, 73, 100, 66, 0, 8, 197, 91, 166, 12,
+			108, 176, 66, 8, 197, 73, 51, 205, 5, 96, 66, 8, 197, 68, 18, 11, 51, 48, 66, 0, 9, 198, 48, 98, 147, 194, 244, 192, 65, 9,
+			198, 46, 208, 66, 181, 178, 192, 68, 0, 9, 198, 53, 66, 9, 46, 113, 133, 68, 10, 199, 40, 241, 103, 60, 95, 79, 20, 69, 0, 11,
+			200, 84, 244, 207, 52, 20, 251, 38, 208, 70, 7, 196, 64, 102, 75, 240, 66, 7, 196, 11, 209, 70, 40, 66, 0, 8, 197, 54, 226, 122,
+			23, 176, 68, 8, 197, 44, 148, 58, 37, 32, 67, 6, 195, 192, 150, 58, 66, 8, 197, 20, 243, 113, 39, 48, 68, 0, 6, 194, 20, 16,
+			72, 11, 6, 195, 55, 211, 115, 66, 0, 10, 199, 72, 98, 72, 52, 243, 15, 16, 68, 6, 195, 64, 244, 248, 66, 10, 199, 45, 18, 77,
+			196, 243, 15, 16, 68, 10, 199, 24, 66, 80, 76, 243, 15, 16, 68, 0, 7, 196, 140, 47, 49, 76, 67, 7, 196, 44, 20, 201, 204, 67,
+			0, 6, 195, 149, 15, 0, 66, 9, 198, 148, 180, 137, 20, 147, 211, 68, 9, 198, 73, 1, 139, 82, 51, 147, 67, 9, 198, 189, 50, 87,
+			36, 179, 51, 68, 0, 0, 6, 195, 64, 244, 252, 66, 6, 195, 52, 105, 76, 66, 0, 9, 198, 98, 113, 139, 61, 128, 82, 68, 7, 196,
+			216, 131, 194, 236, 67, 6, 195, 60, 33, 141, 66, 7, 196, 53, 68, 139, 180, 66, 7, 196, 54, 100, 84, 20, 66, 0, 8, 197, 76, 98,
+			210, 78, 224, 66, 6, 195, 52, 105, 78, 66, 8, 197, 52, 21, 167, 36, 176, 67, 8, 197, 37, 36, 251, 36, 176, 67, 0, 0, 10, 199,
+			73, 50, 80, 192, 82, 111, 76, 68, 6, 195, 60, 47, 64, 66, 0, 7, 196, 92, 155, 201, 20, 67, 7, 196, 91, 164, 20, 56, 66, 7,
+			196, 88, 18, 27, 68, 66, 7, 196, 73, 241, 198, 76, 66, 7, 196, 73, 176, 198, 76, 66, 9, 198, 46, 233, 193, 77, 128, 82, 68, 7,
+			196, 44, 20, 219, 68, 66, 7, 196, 7, 188, 230, 76, 68, 0, 8, 197, 96, 150, 56, 24, 160, 67, 8, 197, 90, 210, 85, 5, 48, 67,
+			8, 197, 84, 244, 248, 140, 224, 67, 8, 197, 65, 68, 73, 148, 224, 67, 8, 197, 9, 67, 4, 81, 16, 66, 0, 6, 195, 64, 244, 243,
+			66, 6, 195, 60, 33, 147, 66, 9, 198, 54, 180, 137, 53, 67, 64, 65, 0, 7, 195, 13, 22, 200, 72, 23, 0, 7, 196, 73, 68, 251,
+			192, 67, 7, 196, 44, 62, 165, 48, 66, 7, 196, 212, 83, 227, 32, 67, 6, 195, 4, 117, 17, 66, 0, 8, 197, 84, 244, 149, 5, 48,
+			66, 8, 197, 66, 149, 70, 45, 48, 66, 8, 197, 24, 180, 144, 237, 48, 66, 8, 197, 9, 241, 71, 25, 48, 66, 0, 6, 195, 52, 243,
+			35, 66, 6, 195, 50, 113, 151, 66, 9, 198, 17, 16, 85, 60, 219, 192, 67, 6, 195, 170, 49, 147, 67, 0, 6, 195, 60, 35, 200, 66,
+			0, 11, 200, 52, 109, 203, 60, 208, 177, 5, 48, 69, 7, 196, 47, 164, 20, 32, 66, 0, 8, 197, 68, 18, 11, 60, 192, 66, 6, 195,
+			60, 35, 202, 66, 0, 6, 195, 105, 74, 87, 66, 6, 195, 70, 106, 23, 66, 9, 198, 53, 66, 9, 46, 244, 192, 67, 9, 198, 17, 16,
+			77, 61, 92, 192, 67, 9, 198, 5, 92, 73, 76, 100, 192, 68, 9, 198, 153, 63, 73, 76, 100, 192, 68, 0, 10, 199, 52, 18, 146, 79,
+			211, 27, 44, 67, 6, 195, 46, 147, 204, 66, 0, 7, 196, 74, 81, 239, 76, 66, 9, 198, 67, 100, 201, 213, 65, 122, 68, 11, 200, 64,
+			243, 9, 76, 244, 197, 24, 192, 68, 7, 196, 67, 177, 65, 88, 66, 7, 196, 44, 242, 6, 48, 66, 0, 8, 197, 96, 20, 17, 4, 128,
+			66, 8, 197, 55, 30, 237, 60, 64, 68, 8, 197, 44, 243, 22, 60, 128, 66, 8, 197, 16, 20, 147, 216, 192, 66, 0, 10, 66, 13, 96,
+			84, 107, 39, 47, 0, 24, 9, 198, 17, 180, 76, 60, 35, 204, 67, 0, 7, 195, 32, 17, 64, 72, 23, 10, 199, 72, 49, 147, 60, 67,
+			6, 20, 67, 6, 195, 67, 100, 236, 65, 10, 199, 22, 209, 139, 60, 67, 6, 20, 68, 0, 7, 196, 65, 18, 83, 176, 65, 7, 196, 67,
+			178, 79, 20, 67, 7, 196, 47, 98, 198, 76, 66, 0, 8, 197, 67, 4, 137, 207, 176, 68, 8, 197, 44, 62, 147, 239, 48, 67, 8, 197,
+			32, 99, 70, 55, 176, 67, 6, 195, 15, 4, 238, 66, 0, 9, 198, 79, 131, 196, 68, 21, 64, 67, 9, 198, 65, 16, 79, 76, 101, 192,
+			67, 9, 198, 56, 146, 235, 12, 101, 192, 65, 9, 198, 53, 180, 83, 12, 101, 192, 66, 9, 198, 48, 97, 79, 88, 241, 64, 67, 9, 198,
+			25, 2, 68, 68, 21, 64, 67, 9, 198, 153, 51, 196, 68, 21, 64, 67, 0, 6, 195, 86, 226, 72, 66, 9, 198, 47, 52, 209, 5, 60,
+			61, 68, 0, 7, 196, 87, 3, 205, 192, 67, 7, 196, 81, 16, 68, 188, 67, 7, 196, 74, 84, 212, 76, 66, 7, 196, 11, 161, 84, 44,
+			66, 7, 196, 180, 37, 13, 196, 67, 0, 8, 197, 55, 18, 71, 81, 0, 67, 8, 197, 180, 32, 83, 217, 32, 67, 0, 9, 198, 68, 18,
+			16, 48, 241, 64, 66, 0, 6, 195, 24, 82, 64, 65, 10, 199, 72, 96, 251, 60, 146, 19, 176, 68, 0, 7, 195, 13, 42, 69, 72, 23,
+			6, 195, 96, 21, 25, 66, 7, 196, 216, 131, 122, 196, 67, 11, 200, 64, 243, 20, 66, 244, 137, 207, 176, 70, 6, 195, 22, 224, 85, 66,
+			7, 196, 16, 244, 231, 188, 67, 0, 8, 197, 72, 20, 252, 36, 176, 67, 8, 197, 52, 244, 248, 24, 80, 67, 6, 195, 9, 73, 78, 66,
+			0, 6, 194, 144, 80, 72, 23, 9, 198, 72, 197, 7, 8, 22, 64, 66, 0, 9, 198, 47, 61, 209, 92, 149, 13, 66, 10, 199, 13, 178,
+			16, 38, 83, 137, 44, 66, 10, 199, 15, 179, 184, 60, 91, 201, 44, 67, 0, 9, 198, 85, 27, 203, 52, 29, 206, 67, 9, 198, 68, 17,
+			73, 61, 128, 82, 68, 7, 196, 161, 33, 146, 236, 67, 7, 196, 55, 161, 58, 196, 67, 7, 196, 12, 100, 233, 92, 66, 0, 8, 197, 89,
+			27, 240, 36, 176, 65, 8, 197, 64, 243, 112, 36, 176, 67, 8, 197, 64, 241, 66, 36, 48, 65, 9, 198, 48, 98, 139, 226, 52, 147, 67,
+			0, 9, 198, 64, 97, 65, 16, 241, 0, 67, 6, 195, 45, 44, 51, 66, 0, 9, 198, 68, 18, 11, 68, 22, 0, 65, 10, 199, 45, 22,
+			245, 36, 131, 9, 12, 67, 0, 7, 196, 67, 162, 198, 76, 66, 0, 8, 197, 54, 49, 112, 25, 112, 67, 8, 197, 46, 49, 112, 25, 112,
+			65, 8, 197, 44, 20, 139, 25, 48, 66, 0, 9, 198, 221, 0, 69, 28, 152, 0, 65, 6, 195, 64, 17, 51, 66, 0, 6, 195, 55, 219,
+			64, 66, 0, 7, 196, 79, 211, 79, 32, 66, 7, 196, 67, 17, 42, 56, 66, 7, 196, 52, 20, 246, 72, 66, 7, 196, 47, 99, 73, 20,
+			66, 0, 8, 197, 86, 254, 137, 61, 48, 68, 8, 197, 164, 133, 12, 149, 48, 67, 8, 197, 66, 145, 77, 25, 48, 66, 8, 197, 35, 162,
+			38, 5, 48, 67, 12, 201, 24, 193, 139, 79, 99, 115, 77, 223, 64, 69, 8, 197, 20, 144, 77, 189, 48, 67, 8, 197, 8, 242, 139, 61,
+			48, 66, 0, 5, 194, 10, 144, 72, 9, 198, 24, 193, 139, 79, 97, 240, 68, 9, 198, 189, 61, 144, 60, 195, 196, 68, 0, 9, 198, 97,
+			66, 212, 56, 85, 17, 67, 10, 199, 73, 177, 17, 4, 113, 111, 196, 66, 6, 195, 73, 76, 68, 66, 6, 195, 11, 172, 192, 66, 0, 7,
+			196, 167, 83, 3, 236, 67, 7, 196, 64, 242, 9, 12, 65, 11, 200, 24, 180, 139, 81, 18, 9, 189, 48, 68, 11, 200, 153, 51, 211, 70,
+			244, 144, 245, 48, 68, 0, 8, 197, 77, 18, 66, 80, 224, 66, 8, 197, 65, 18, 72, 70, 176, 65, 0, 9, 198, 84, 244, 207, 74, 84,
+			192, 67, 9, 198, 80, 226, 67, 236, 208, 68, 68, 9, 198, 65, 64, 187, 76, 100, 192, 67, 9, 198, 52, 146, 246, 9, 68, 128, 67, 0,
+			0, 7, 196, 84, 18, 147, 204, 66, 6, 195, 150, 50, 0, 66, 7, 196, 48, 97, 9, 204, 67, 11, 200, 47, 52, 209, 4, 17, 77, 242,
+			208, 69, 7, 196, 44, 248, 196, 192, 67, 7, 196, 20, 240, 137, 12, 65, 7, 196, 4, 34, 1, 92, 66, 0, 8, 197, 21, 73, 16, 164,
+			224, 67, 8, 197, 20, 53, 2, 60, 160, 66, 0, 9, 198, 129, 100, 203, 49, 64, 128, 66, 9, 198, 77, 18, 87, 12, 100, 192, 66, 13,
+			202, 76, 99, 6, 84, 244, 207, 5, 14, 129, 76, 71, 6, 195, 23, 90, 87, 66, 9, 198, 19, 211, 215, 12, 100, 192, 67, 6, 195, 9,
+			70, 115, 66, 9, 198, 233, 0, 69, 28, 146, 192, 67, 0, 10, 199, 84, 244, 207, 5, 14, 129, 76, 69, 6, 195, 20, 106, 136, 66, 0,
+			6, 195, 86, 226, 109, 67, 7, 196, 81, 96, 71, 244, 67, 7, 196, 73, 51, 198, 28, 66, 7, 196, 66, 249, 76, 204, 67, 7, 196, 44,
+			243, 6, 28, 66, 7, 196, 32, 20, 245, 68, 66, 0, 8, 197, 66, 115, 6, 46, 240, 67, 0, 6, 195, 48, 147, 115, 66, 9, 198, 43,
+			179, 196, 48, 149, 64, 67, 0, 10, 199, 75, 185, 219, 16, 206, 207, 20, 69, 0, 7, 196, 86, 244, 207, 52, 66, 7, 196, 77, 18, 79,
+			20, 66, 6, 195, 67, 131, 49, 66, 7, 196, 55, 162, 201, 32, 66, 6, 195, 32, 20, 61, 66, 7, 196, 9, 66, 198, 76, 66, 7, 196,
+			7, 121, 14, 72, 67, 7, 196, 5, 34, 198, 76, 66, 7, 196, 232, 208, 68, 188, 67, 0, 12, 201, 47, 17, 141, 5, 51, 196, 68, 21,
+			64, 69, 0, 6, 195, 145, 1, 131, 66, 6, 195, 197, 91, 211, 66, 0, 0, 7, 196, 67, 97, 41, 72, 66, 7, 196, 64, 97, 111, 76,
+			66, 7, 196, 54, 241, 122, 196, 67, 0, 8, 197, 74, 170, 3, 108, 80, 67, 9, 198, 66, 148, 147, 69, 64, 239, 67, 8, 197, 65, 25,
+			142, 80, 176, 66, 8, 197, 17, 16, 69, 24, 112, 66, 8, 197, 8, 19, 66, 80, 176, 66, 0, 9, 198, 88, 145, 118, 48, 241, 0, 67,
+			9, 198, 85, 68, 100, 20, 114, 96, 65, 9, 198, 15, 14, 207, 48, 241, 0, 68, 0, 6, 195, 61, 33, 140, 66, 0, 6, 195, 47, 132,
+			253, 66, 0, 9, 198, 87, 163, 65, 92, 96, 211, 67, 8, 197, 74, 51, 112, 36, 176, 65, 0, 11, 66, 25, 48, 36, 47, 6, 35, 91,
+			0, 24, 6, 195, 67, 100, 243, 66, 6, 195, 11, 48, 179, 66, 0, 10, 199, 72, 98, 233, 149, 18, 65, 76, 69, 10, 199, 67, 99, 6,
+			149, 18, 65, 76, 69, 9, 198, 4, 223, 83, 37, 39, 125, 68, 0, 7, 196, 91, 197, 17, 16, 66, 9, 198, 8, 144, 140, 36, 245, 110,
+			68, 0, 8, 197, 17, 16, 69, 25, 112, 66, 0, 9, 198, 65, 34, 86, 60, 195, 196, 67, 9, 198, 52, 146, 246, 86, 227, 64, 67, 9,
+			198, 20, 98, 59, 77, 223, 64, 67, 0, 6, 195, 81, 15, 64, 66, 10, 199, 46, 209, 138, 20, 244, 139, 224, 68, 10, 199, 21, 16, 77,
+			5, 53, 17, 16, 67, 0, 11, 200, 73, 1, 151, 38, 210, 72, 189, 48, 69, 7, 196, 69, 179, 70, 28, 66, 6, 195, 55, 213, 113, 66,
+			0, 8, 197, 64, 197, 3, 25, 112, 66, 8, 197, 47, 160, 179, 5, 48, 67, 8, 197, 24, 180, 144, 245, 48, 66, 8, 197, 20, 148, 139,
+			189, 48, 66, 8, 197, 23, 178, 67, 5, 48, 67, 0, 9, 198, 76, 101, 142, 60, 195, 196, 67, 6, 195, 64, 148, 59, 66, 6, 195, 31,
+			161, 51, 66, 0, 10, 66, 8, 192, 71, 55, 39, 49, 0, 24, 6, 195, 145, 11, 77, 66, 6, 195, 10, 182, 209, 66, 0, 0, 0, 8,
+			197, 73, 180, 17, 80, 64, 66, 8, 197, 45, 68, 73, 60, 128, 67, 0, 9, 198, 72, 19, 108, 205, 61, 140, 68, 9, 198, 20, 101, 201,
+			8, 99, 0, 67, 9, 198, 18, 52, 144, 5, 15, 0, 67, 0, 6, 195, 96, 25, 76, 66, 9, 198, 44, 243, 80, 48, 98, 211, 66, 6,
+			195, 232, 76, 192, 66, 0, 7, 196, 77, 18, 83, 204, 66, 7, 196, 61, 82, 87, 236, 67, 9, 198, 44, 243, 80, 48, 98, 210, 66, 7,
+			196, 196, 82, 106, 20, 67, 7, 196, 180, 44, 79, 72, 67, 0, 8, 197, 93, 180, 67, 80, 192, 66, 0, 9, 198, 88, 19, 70, 48, 108,
+			192, 68, 6, 195, 164, 114, 77, 66, 9, 198, 56, 150, 65, 21, 180, 64, 67, 9, 198, 47, 52, 209, 5, 36, 192, 66, 9, 198, 20, 144,
+			80, 4, 140, 192, 68, 9, 198, 9, 180, 72, 224, 148, 128, 67, 0, 6, 195, 72, 209, 128, 72, 6, 195, 75, 186, 136, 66, 10, 199, 68,
+			18, 14, 60, 67, 6, 20, 67, 0, 7, 196, 150, 52, 155, 52, 67, 6, 195, 60, 40, 203, 65, 7, 196, 47, 162, 70, 72, 65, 7, 196,
+			25, 11, 143, 16, 67, 7, 196, 13, 180, 54, 72, 66, 6, 195, 11, 176, 187, 66, 0, 8, 197, 84, 18, 15, 55, 176, 67, 8, 197, 52,
+			97, 109, 119, 48, 67, 8, 197, 16, 18, 15, 55, 176, 67, 8, 197, 4, 208, 83, 119, 208, 67, 0, 8, 197, 204, 32, 89, 38, 0, 65,
+			0, 6, 195, 16, 19, 112, 66, 0, 7, 196, 91, 211, 210, 188, 67, 7, 196, 76, 99, 6, 92, 66, 7, 196, 47, 169, 3, 180, 67, 6,
+			195, 20, 98, 239, 66, 7, 196, 11, 160, 66, 188, 67, 0, 6, 195, 52, 100, 238, 66, 8, 197, 52, 21, 129, 19, 48, 67, 0, 6, 194,
+			32, 16, 72, 23, 9, 198, 8, 241, 73, 19, 161, 64, 67, 0, 7, 195, 65, 18, 64, 72, 23, 9, 198, 84, 206, 9, 20, 148, 139, 67,
+			10, 199, 79, 98, 139, 4, 81, 201, 128, 65, 10, 199, 23, 179, 65, 76, 243, 15, 16, 68, 10, 199, 22, 217, 187, 4, 81, 201, 128, 67,
+			10, 199, 9, 65, 75, 4, 81, 201, 128, 65, 0, 7, 196, 73, 67, 81, 172, 65, 7, 196, 37, 146, 65, 72, 67, 7, 196, 32, 16, 143,
+			40, 66, 7, 196, 20, 96, 137, 76, 65, 11, 200, 19, 14, 237, 37, 34, 77, 81, 32, 68, 7, 196, 11, 98, 193, 76, 66, 0, 9, 198,
+			91, 209, 143, 17, 16, 85, 68, 9, 198, 67, 211, 143, 17, 16, 85, 67, 8, 197, 181, 98, 77, 36, 176, 67, 0, 9, 198, 141, 62, 228,
+			20, 114, 96, 66, 0, 9, 198, 84, 16, 145, 36, 176, 83, 67, 0, 11, 200, 88, 148, 15, 91, 49, 81, 36, 176, 68, 11, 200, 65, 18,
+			67, 109, 17, 240, 36, 176, 66, 6, 195, 224, 144, 83, 67, 9, 198, 48, 100, 142, 37, 129, 138, 67, 7, 196, 47, 179, 210, 196, 67, 7,
+			196, 21, 66, 193, 76, 66, 0, 8, 197, 9, 67, 83, 24, 112, 66, 0, 12, 201, 64, 243, 20, 84, 16, 145, 36, 176, 83, 69, 9, 198,
+			52, 227, 199, 37, 49, 140, 65, 9, 198, 12, 100, 147, 156, 242, 128, 67, 0, 7, 195, 45, 179, 64, 72, 23, 6, 195, 61, 43, 128, 66,
+			9, 198, 47, 53, 240, 77, 16, 83, 67, 6, 195, 10, 203, 64, 66, 0, 7, 195, 13, 178, 0, 72, 23, 7, 196, 78, 147, 157, 244, 66,
+			7, 196, 72, 20, 219, 68, 66, 7, 196, 21, 65, 84, 44, 66, 0, 8, 197, 72, 49, 147, 25, 112, 66, 8, 197, 64, 245, 131, 5, 48,
+			66, 9, 198, 64, 20, 17, 36, 176, 89, 65, 8, 197, 54, 240, 82, 79, 192, 67, 8, 197, 20, 155, 70, 45, 48, 67, 6, 195, 20, 98,
+			250, 65, 8, 197, 4, 130, 77, 81, 48, 65, 0, 6, 195, 20, 98, 253, 66, 0, 0, 6, 195, 196, 124, 59, 67, 7, 196, 4, 40, 212,
+			76, 65, 0, 8, 197, 44, 243, 80, 61, 48, 66, 8, 197, 21, 177, 197, 25, 112, 66, 0, 6, 195, 47, 17, 237, 66, 0, 9, 198, 67,
+			98, 212, 23, 2, 75, 66, 10, 199, 48, 98, 231, 60, 83, 227, 32, 69, 9, 198, 17, 16, 77, 5, 50, 75, 67, 10, 199, 9, 66, 205,
+			24, 162, 219, 68, 65, 0, 0, 8, 197, 145, 18, 207, 54, 240, 67, 6, 195, 140, 177, 138, 66, 0, 5, 194, 144, 160, 65, 9, 198, 79,
+			179, 79, 74, 84, 192, 67, 9, 198, 47, 52, 198, 45, 36, 192, 66, 6, 195, 26, 84, 0, 66, 9, 198, 212, 95, 65, 32, 81, 140, 68,
+			0, 6, 195, 70, 108, 64, 66, 6, 195, 244, 99, 204, 67, 6, 195, 25, 95, 0, 66, 10, 199, 12, 99, 15, 72, 148, 6, 20, 68, 0,
+			6, 195, 72, 98, 51, 66, 7, 196, 52, 97, 5, 188, 66, 0, 8, 197, 64, 100, 205, 24, 128, 66, 8, 197, 64, 20, 147, 246, 208, 67,
+			8, 197, 55, 51, 204, 60, 64, 67, 6, 195, 43, 190, 150, 66, 8, 197, 32, 243, 204, 60, 64, 67, 9, 198, 13, 179, 14, 60, 195, 205,
+			67, 0, 9, 198, 73, 62, 198, 61, 50, 80, 68, 6, 195, 47, 163, 113, 66, 0, 9, 198, 8, 144, 140, 36, 243, 111, 68, 0, 7, 196,
+			91, 181, 207, 16, 66, 7, 196, 60, 211, 6, 76, 66, 7, 196, 52, 243, 6, 92, 66, 6, 195, 47, 162, 123, 67, 7, 196, 46, 213, 212,
+			56, 66, 7, 196, 34, 107, 73, 128, 65, 0, 8, 197, 79, 179, 79, 87, 208, 67, 8, 197, 148, 163, 184, 37, 32, 67, 8, 197, 65, 25,
+			184, 37, 32, 67, 8, 197, 53, 68, 134, 51, 16, 67, 0, 6, 195, 91, 179, 241, 67, 9, 198, 141, 28, 68, 61, 34, 248, 68, 9, 198,
+			18, 208, 239, 61, 34, 248, 68, 0, 9, 198, 20, 155, 70, 45, 50, 75, 68, 0, 7, 196, 84, 100, 201, 100, 66, 7, 196, 76, 251, 70,
+			76, 67, 7, 196, 25, 100, 198, 28, 66, 7, 196, 9, 16, 77, 196, 66, 7, 196, 4, 81, 144, 76, 66, 0, 8, 197, 52, 97, 1, 87,
+			48, 67, 8, 197, 45, 179, 139, 119, 208, 66, 0, 9, 198, 9, 67, 6, 15, 161, 64, 67, 0, 10, 199, 164, 184, 205, 4, 81, 201, 128,
+			66, 6, 195, 66, 254, 192, 66, 6, 195, 46, 148, 240, 66, 0, 9, 198, 92, 146, 204, 61, 36, 238, 67, 7, 196, 87, 211, 65, 76, 66,
+			7, 196, 81, 166, 209, 8, 66, 7, 196, 75, 20, 198, 32, 66, 7, 196, 52, 18, 4, 180, 66, 6, 195, 46, 148, 243, 66, 6, 195, 47,
+			160, 83, 66, 0, 12, 3, 226, 132, 150, 50, 6, 39, 65, 36, 34, 0, 0, 0, 9, 198, 20, 96, 134, 48, 243, 123, 68, 0, 9, 198,
+			221, 114, 79, 48, 241, 0, 68, 7, 196, 64, 153, 68, 244, 67, 7, 196, 61, 50, 207, 72, 66, 7, 196, 44, 99, 6, 100, 66, 7, 196,
+			232, 243, 65, 76, 67, 7, 196, 4, 83, 124, 180, 67, 0, 8, 197, 80, 226, 75, 80, 208, 65, 8, 197, 72, 222, 129, 16, 80, 66, 8,
+			197, 68, 18, 4, 216, 208, 66, 8, 197, 37, 36, 253, 36, 176, 67, 9, 198, 8, 98, 9, 73, 60, 0, 67, 8, 197, 232, 158, 196, 232,
+			80, 68, 0, 9, 198, 64, 243, 9, 92, 18, 128, 67, 0, 10, 199, 52, 243, 9, 76, 60, 9, 44, 66, 0, 7, 196, 88, 20, 219, 68,
+			66, 7, 196, 68, 18, 53, 20, 66, 7, 196, 45, 67, 70, 92, 66, 7, 196, 44, 243, 6, 76, 66, 7, 196, 46, 52, 104, 76, 66, 7,
+			196, 44, 148, 6, 28, 66, 7, 196, 44, 22, 77, 240, 66, 7, 196, 10, 212, 129, 52, 66, 0, 8, 197, 68, 18, 16, 37, 48, 65, 8,
+			197, 189, 242, 83, 25, 48, 68, 0, 9, 198, 84, 100, 147, 36, 59, 64, 67, 6, 195, 61, 52, 61, 66, 0, 9, 198, 68, 18, 146, 108,
+			49, 147, 67, 9, 198, 67, 98, 193, 31, 2, 75, 66, 9, 198, 24, 193, 139, 77, 18, 75, 67, 0, 7, 196, 99, 180, 198, 28, 66, 7,
+			196, 84, 197, 9, 20, 66, 9, 198, 67, 100, 201, 212, 49, 146, 68, 7, 196, 196, 59, 73, 20, 67, 0, 8, 197, 65, 18, 67, 25, 48,
+			66, 8, 197, 20, 101, 70, 45, 48, 66, 8, 197, 4, 74, 68, 5, 48, 67, 0, 6, 195, 90, 210, 85, 66, 6, 195, 173, 55, 125, 66,
+			0, 0, 7, 196, 197, 94, 139, 76, 66, 0, 6, 131, 226, 128, 166, 8, 8, 197, 53, 68, 165, 56, 64, 66, 0, 9, 198, 75, 17, 73,
+			44, 20, 192, 67, 9, 198, 46, 241, 73, 20, 20, 192, 67, 9, 198, 197, 49, 140, 24, 180, 192, 67, 0, 8, 197, 86, 235, 211, 217, 0,
+			67, 10, 199, 73, 59, 15, 60, 47, 79, 76, 69, 6, 195, 224, 148, 192, 65, 6, 195, 15, 161, 140, 66, 0, 7, 196, 88, 18, 131, 188,
+			66, 7, 196, 68, 18, 53, 40, 66, 7, 196, 60, 36, 134, 16, 66, 7, 196, 47, 160, 179, 184, 67, 7, 196, 4, 44, 193, 76, 67, 0,
+			12, 201, 221, 114, 109, 20, 99, 108, 68, 20, 192, 70, 12, 201, 47, 52, 209, 5, 10, 67, 68, 20, 192, 68, 8, 197, 12, 100, 246, 14,
+			208, 67, 0, 9, 198, 79, 176, 80, 24, 52, 192, 67, 9, 198, 67, 100, 144, 24, 180, 192, 66, 9, 198, 20, 97, 48, 236, 20, 192, 68,
+			0, 10, 199, 68, 18, 11, 6, 3, 137, 44, 66, 10, 199, 52, 17, 9, 73, 52, 65, 76, 67, 6, 195, 8, 98, 60, 66, 0, 6, 195,
+			26, 83, 51, 67, 7, 196, 25, 2, 68, 204, 67, 0, 8, 197, 72, 99, 32, 59, 16, 65, 8, 197, 47, 19, 210, 183, 48, 68, 0, 5,
+			194, 163, 48, 66, 0, 7, 195, 66, 145, 64, 72, 23, 9, 198, 220, 36, 147, 15, 2, 75, 65, 10, 199, 45, 190, 73, 44, 241, 212, 88,
+			68, 0, 11, 200, 77, 244, 76, 124, 71, 195, 25, 128, 68, 7, 196, 75, 17, 71, 240, 66, 7, 196, 177, 62, 15, 20, 67, 0, 8, 197,
+			75, 186, 147, 119, 208, 67, 8, 197, 48, 100, 248, 37, 32, 67, 0, 6, 195, 54, 241, 45, 66, 0, 7, 195, 61, 32, 240, 72, 23, 0,
+			8, 196, 72, 52, 91, 88, 72, 23, 7, 196, 68, 148, 212, 180, 67, 6, 195, 64, 150, 167, 66, 9, 198, 52, 146, 207, 48, 241, 0, 67,
+			6, 195, 54, 241, 47, 66, 0, 0, 12, 201, 65, 180, 198, 100, 100, 147, 15, 2, 75, 67, 9, 198, 65, 16, 70, 32, 146, 192, 67, 9,
+			198, 53, 22, 210, 56, 146, 192, 66, 9, 198, 47, 164, 194, 140, 230, 64, 66, 6, 195, 19, 188, 0, 66, 9, 198, 212, 193, 138, 8, 243,
+			0, 65, 0, 0, 6, 195, 60, 197, 11, 66, 9, 198, 52, 148, 207, 48, 241, 0, 67, 6, 195, 47, 161, 111, 66, 7, 196, 32, 20, 1,
+			72, 66, 6, 195, 9, 68, 243, 66, 7, 196, 8, 99, 15, 76, 66, 0, 9, 198, 88, 145, 118, 17, 16, 85, 67, 12, 201, 77, 180, 15,
+			108, 70, 204, 56, 146, 192, 67, 9, 198, 76, 99, 6, 17, 16, 85, 67, 6, 195, 164, 249, 78, 67, 12, 201, 65, 25, 143, 108, 70, 204,
+			56, 146, 192, 67, 12, 201, 24, 113, 141, 25, 33, 152, 56, 146, 192, 67, 8, 197, 188, 67, 15, 86, 224, 67, 0, 9, 198, 86, 197, 18,
+			56, 146, 192, 65, 9, 198, 77, 21, 7, 192, 146, 192, 65, 9, 198, 73, 181, 24, 192, 146, 192, 68, 9, 198, 64, 243, 9, 76, 146, 192,
+			67, 9, 198, 52, 17, 1, 35, 30, 192, 68, 9, 198, 44, 243, 119, 52, 243, 0, 67, 0, 7, 195, 88, 99, 64, 72, 23, 0, 11, 200,
+			77, 18, 91, 17, 179, 14, 36, 176, 66, 7, 196, 72, 187, 197, 180, 66, 7, 196, 64, 242, 29, 244, 66, 7, 196, 52, 18, 20, 76, 66,
+			7, 196, 7, 210, 82, 76, 66, 0, 8, 197, 72, 18, 131, 189, 48, 66, 12, 201, 64, 100, 207, 108, 70, 204, 56, 146, 192, 67, 8, 197,
+			144, 154, 147, 25, 48, 68, 8, 197, 44, 148, 27, 165, 112, 65, 8, 197, 47, 17, 146, 47, 128, 67, 8, 197, 44, 99, 6, 67, 192, 67,
+			0, 9, 198, 52, 97, 45, 60, 219, 192, 68, 9, 198, 8, 22, 137, 96, 179, 192, 65, 0, 0, 7, 196, 52, 25, 69, 244, 67, 7, 196,
+			47, 212, 198, 28, 66, 7, 196, 28, 104, 211, 196, 67, 7, 196, 23, 49, 212, 188, 67, 0, 8, 197, 74, 83, 133, 233, 48, 66, 8, 197,
+			66, 51, 153, 25, 48, 66, 8, 197, 64, 20, 147, 25, 48, 66, 8, 197, 31, 195, 210, 47, 128, 67, 8, 197, 7, 179, 210, 149, 48, 68,
+			0, 9, 198, 66, 241, 73, 101, 11, 192, 67, 0, 6, 195, 128, 137, 252, 67, 9, 198, 74, 144, 155, 68, 226, 75, 65, 9, 198, 72, 99,
+			18, 108, 49, 147, 67, 9, 198, 64, 19, 70, 76, 226, 75, 65, 0, 11, 200, 73, 51, 205, 5, 51, 210, 47, 128, 68, 7, 196, 67, 96,
+			227, 44, 65, 11, 200, 52, 17, 14, 37, 51, 210, 47, 128, 68, 0, 8, 197, 216, 188, 5, 216, 192, 67, 9, 198, 44, 243, 66, 4, 170,
+			17, 67, 8, 197, 44, 22, 75, 154, 208, 67, 8, 197, 46, 211, 194, 70, 240, 67, 8, 197, 233, 98, 123, 24, 160, 68, 8, 197, 5, 3,
+			196, 24, 160, 67, 0, 9, 198, 20, 146, 211, 61, 92, 192, 67, 9, 198, 20, 99, 6, 16, 20, 192, 67, 0, 10, 199, 73, 178, 195, 233,
+			63, 47, 76, 68, 9, 198, 45, 223, 85, 37, 145, 139, 65, 10, 199, 20, 100, 134, 76, 240, 143, 40, 68, 0, 7, 196, 72, 197, 4, 4,
+			66, 7, 196, 164, 244, 165, 76, 67, 11, 200, 68, 17, 73, 61, 34, 68, 144, 192, 69, 7, 196, 67, 165, 198, 48, 66, 7, 196, 47, 164,
+			198, 48, 66, 7, 196, 36, 212, 1, 72, 66, 7, 196, 8, 16, 148, 196, 67, 0, 8, 197, 44, 21, 2, 60, 160, 67, 8, 197, 44, 20,
+			147, 216, 224, 66, 9, 198, 36, 132, 27, 48, 179, 205, 67, 12, 201, 9, 241, 71, 25, 62, 54, 24, 180, 192, 69, 8, 197, 8, 98, 2,
+			216, 160, 66, 0, 9, 198, 76, 99, 6, 64, 20, 192, 67, 9, 198, 44, 244, 141, 206, 100, 192, 67, 9, 198, 24, 180, 144, 204, 20, 192,
+			67, 9, 198, 9, 27, 160, 57, 60, 64, 67, 0, 10, 199, 160, 52, 65, 73, 60, 9, 44, 68, 0, 7, 196, 79, 101, 70, 40, 66, 7,
+			196, 73, 61, 134, 28, 66, 0, 9, 198, 84, 99, 5, 55, 166, 109, 65, 9, 198, 73, 180, 134, 50, 3, 177, 66, 8, 197, 73, 68, 240,
+			119, 208, 67, 8, 197, 72, 191, 80, 39, 48, 67, 8, 197, 64, 20, 129, 31, 176, 67, 8, 197, 145, 3, 204, 27, 48, 68, 9, 198, 52,
+			21, 186, 4, 81, 193, 68, 8, 197, 44, 20, 9, 103, 48, 67, 12, 201, 24, 193, 139, 79, 97, 79, 8, 144, 192, 68, 8, 197, 20, 96,
+			137, 79, 208, 65, 0, 7, 195, 176, 17, 193, 72, 23, 0, 9, 198, 74, 84, 207, 72, 190, 0, 67, 9, 198, 64, 243, 9, 76, 146, 239,
+			68, 0, 6, 195, 54, 242, 123, 67, 6, 195, 18, 222, 0, 66, 7, 196, 232, 76, 230, 76, 67, 0, 8, 197, 88, 97, 6, 55, 48, 67,
+			8, 197, 86, 249, 72, 119, 208, 67, 8, 197, 31, 49, 12, 119, 208, 66, 8, 197, 19, 163, 137, 35, 48, 67, 0, 9, 198, 74, 49, 79,
+			48, 97, 64, 67, 6, 195, 54, 240, 85, 66, 0, 6, 195, 220, 179, 204, 66, 6, 195, 61, 36, 240, 66, 9, 198, 244, 177, 146, 77, 27,
+			211, 67, 9, 198, 212, 89, 219, 69, 49, 135, 68, 0, 8, 196, 67, 100, 201, 12, 72, 23, 7, 196, 44, 18, 6, 196, 67, 7, 196, 15,
+			180, 198, 64, 66, 7, 196, 4, 43, 207, 72, 67, 0, 9, 197, 144, 209, 146, 76, 240, 72, 23, 8, 197, 68, 18, 17, 36, 48, 65, 8,
+			197, 64, 241, 86, 60, 80, 66, 8, 197, 49, 73, 19, 36, 176, 67, 8, 197, 13, 180, 67, 24, 112, 66, 8, 197, 8, 149, 83, 24, 176,
+			66, 0, 7, 195, 66, 145, 73, 72, 23, 9, 198, 108, 70, 204, 56, 146, 192, 65, 9, 198, 85, 26, 215, 39, 62, 192, 68, 9, 198, 72,
+			209, 153, 56, 146, 192, 66, 0, 10, 199, 64, 243, 20, 60, 47, 79, 76, 69, 9, 198, 52, 20, 147, 60, 92, 211, 67, 6, 195, 47, 169,
+			76, 66, 0, 6, 195, 90, 208, 83, 66, 7, 196, 73, 66, 205, 188, 66, 7, 196, 75, 177, 239, 76, 66, 11, 200, 64, 241, 84, 96, 20,
+			147, 108, 176, 65, 7, 196, 44, 245, 203, 232, 65, 0, 9, 198, 76, 99, 6, 76, 148, 0, 67, 8, 197, 216, 219, 211, 36, 176, 67, 12,
+			201, 216, 142, 54, 36, 141, 69, 37, 49, 140, 69, 8, 197, 52, 20, 251, 36, 176, 67, 8, 197, 13, 180, 83, 24, 112, 66, 0, 0, 10,
+			199, 81, 36, 61, 24, 83, 137, 44, 65, 6, 195, 149, 107, 192, 66, 10, 199, 69, 65, 79, 20, 240, 137, 12, 67, 0, 11, 200, 73, 180,
+			12, 24, 220, 14, 36, 176, 66, 7, 196, 24, 51, 148, 88, 66, 0, 12, 201, 61, 35, 79, 108, 70, 204, 56, 146, 192, 67, 8, 197, 45,
+			16, 69, 25, 112, 66, 0, 6, 195, 74, 208, 77, 66, 9, 198, 9, 18, 68, 4, 95, 0, 67, 0, 6, 195, 130, 147, 64, 66, 9, 198,
+			73, 178, 77, 192, 226, 75, 66, 9, 198, 21, 177, 197, 60, 36, 111, 67, 0, 7, 196, 64, 148, 134, 92, 66, 6, 195, 61, 49, 151, 66,
+			7, 196, 47, 96, 82, 188, 67, 0, 8, 197, 91, 211, 210, 47, 128, 67, 6, 195, 64, 148, 186, 65, 8, 197, 197, 36, 241, 45, 48, 66,
+			0, 12, 201, 72, 97, 77, 61, 177, 27, 48, 226, 75, 67, 9, 198, 64, 243, 20, 73, 179, 128, 67, 9, 198, 20, 149, 84, 33, 223, 64,
+			67, 0, 15, 3, 95, 51, 88, 47, 34, 6, 37, 72, 36, 89, 36, 47, 0, 9, 198, 65, 18, 125, 37, 49, 147, 68, 10, 199, 65, 16,
+			80, 70, 99, 148, 44, 67, 9, 198, 66, 179, 210, 76, 226, 75, 65, 9, 198, 13, 22, 210, 76, 226, 75, 66, 9, 198, 180, 179, 214, 60,
+			194, 75, 68, 0, 13, 3, 95, 48, 67, 89, 47, 6, 39, 47, 37, 50, 0, 7, 196, 68, 18, 2, 244, 66, 7, 196, 60, 47, 79, 76,
+			67, 7, 196, 140, 212, 9, 204, 67, 7, 196, 46, 118, 6, 16, 66, 7, 196, 16, 240, 140, 192, 66, 7, 196, 16, 145, 47, 76, 66, 0,
+			8, 197, 54, 214, 20, 18, 240, 67, 8, 197, 32, 16, 145, 154, 240, 67, 0, 0, 6, 195, 167, 116, 64, 66, 0, 7, 196, 69, 77, 213,
+			184, 67, 6, 195, 54, 246, 115, 66, 7, 196, 12, 100, 251, 188, 67, 7, 196, 12, 99, 20, 68, 66, 7, 196, 8, 245, 134, 52, 66, 0,
+			0, 0, 0, 10, 3, 95, 49, 67, 89, 47, 6, 39, 0, 6, 195, 54, 241, 135, 66, 11, 200, 47, 19, 213, 25, 36, 201, 14, 208, 69,
+			7, 196, 10, 195, 20, 44, 66, 0, 0, 6, 195, 24, 204, 0, 66, 9, 198, 20, 124, 19, 108, 195, 112, 65, 9, 198, 16, 18, 56, 219,
+			81, 64, 68, 0, 10, 199, 67, 171, 79, 16, 146, 27, 52, 65, 0, 7, 196, 52, 18, 15, 48, 66, 7, 196, 180, 16, 129, 100, 67, 0,
+			0, 6, 194, 20, 240, 72, 23, 20, 3, 95, 49, 57, 72, 4, 36, 84, 36, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 36,
+			133, 13, 69, 65, 64, 67, 9, 198, 24, 194, 80, 220, 145, 64, 68, 9, 198, 16, 18, 15, 60, 35, 112, 68, 0, 19, 3, 95, 49, 56,
+			4, 39, 89, 36, 65, 50, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 76, 99, 6, 72, 190, 0, 67, 10, 199, 73, 1, 140, 24, 243,
+			15, 16, 68, 9, 198, 65, 26, 211, 36, 187, 211, 67, 0, 13, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 35, 0, 7, 196, 189, 52,
+			107, 72, 66, 0, 9, 198, 67, 100, 207, 76, 148, 0, 67, 8, 197, 64, 241, 111, 36, 176, 65, 8, 197, 66, 51, 167, 36, 176, 67, 0,
+			6, 195, 20, 248, 209, 65, 0, 6, 195, 20, 248, 208, 66, 0, 7, 196, 88, 18, 131, 236, 66, 7, 196, 72, 145, 36, 48, 66, 6, 195,
+			45, 68, 51, 66, 7, 196, 47, 164, 198, 96, 66, 7, 196, 189, 52, 107, 76, 66, 0, 0, 18, 3, 95, 49, 49, 36, 72, 4, 37, 50,
+			6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 65, 25, 174, 56, 146, 192, 65, 6, 195, 61, 61, 81, 66, 0, 12, 3, 95, 49, 48, 72,
+			6, 36, 89, 36, 47, 0, 6, 195, 77, 74, 12, 66, 9, 198, 47, 160, 68, 116, 242, 0, 67, 6, 195, 26, 83, 128, 66, 8, 197, 19,
+			3, 211, 37, 0, 67, 10, 199, 168, 81, 143, 72, 145, 36, 48, 69, 0, 13, 3, 95, 51, 67, 47, 34, 6, 37, 89, 47, 35, 0, 17,
+			3, 95, 49, 51, 47, 34, 37, 50, 6, 35, 72, 36, 89, 36, 47, 0, 7, 196, 68, 18, 5, 244, 66, 7, 196, 52, 17, 36, 76, 66,
+			6, 195, 10, 209, 147, 66, 0, 17, 3, 95, 49, 50, 72, 84, 35, 50, 6, 35, 72, 36, 89, 36, 47, 0, 8, 197, 17, 68, 66, 25,
+			48, 66, 0, 17, 3, 95, 49, 53, 48, 36, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 0, 21, 3, 95, 49, 52, 76, 4, 36, 47,
+			37, 34, 37, 50, 6, 35, 72, 36, 89, 36, 47, 0, 8, 197, 51, 19, 211, 37, 0, 67, 6, 195, 24, 223, 0, 66, 10, 199, 215, 3,
+			143, 196, 59, 73, 20, 70, 0, 20, 3, 95, 49, 55, 89, 4, 36, 72, 36, 65, 50, 6, 35, 72, 36, 89, 36, 47, 0, 7, 196, 67,
+			101, 198, 72, 66, 12, 201, 66, 148, 139, 205, 94, 240, 92, 152, 0, 68, 7, 196, 55, 161, 49, 180, 67, 6, 195, 30, 177, 147, 66, 0,
+			18, 3, 95, 49, 54, 91, 36, 89, 47, 50, 6, 35, 72, 36, 89, 36, 47, 0, 8, 197, 77, 180, 78, 179, 128, 67, 8, 197, 66, 144,
+			209, 5, 48, 66, 9, 198, 24, 83, 143, 96, 204, 0, 67, 8, 197, 4, 213, 12, 25, 48, 67, 0, 6, 194, 36, 128, 72, 23, 9, 198,
+			52, 100, 246, 56, 243, 64, 67, 0, 17, 3, 95, 55, 88, 89, 36, 72, 36, 65, 72, 36, 89, 6, 36, 47, 0, 10, 199, 47, 31, 70,
+			28, 148, 157, 244, 69, 9, 198, 19, 14, 237, 37, 49, 147, 69, 0, 7, 196, 166, 129, 1, 76, 67, 6, 195, 52, 17, 47, 66, 7, 196,
+			48, 241, 9, 44, 66, 7, 196, 5, 36, 60, 196, 67, 0, 8, 197, 21, 180, 117, 140, 128, 67, 0, 0, 0, 7, 196, 44, 240, 173, 76,
+			66, 6, 195, 188, 184, 195, 66, 0, 8, 197, 89, 67, 9, 18, 240, 67, 9, 198, 88, 243, 6, 73, 62, 241, 68, 8, 197, 52, 20, 251,
+			38, 208, 68, 8, 197, 45, 16, 88, 60, 192, 66, 0, 0, 0, 7, 196, 67, 100, 147, 244, 66, 0, 8, 197, 56, 146, 207, 79, 16, 67,
+			0, 9, 198, 89, 27, 248, 219, 81, 64, 68, 9, 198, 79, 131, 56, 219, 81, 64, 68, 6, 195, 170, 83, 113, 67, 0, 9, 198, 32, 20,
+			27, 69, 54, 203, 65, 0, 6, 195, 91, 211, 115, 66, 7, 196, 79, 99, 66, 204, 66, 7, 196, 17, 244, 84, 44, 66, 0, 9, 198, 99,
+			179, 143, 16, 193, 133, 67, 8, 197, 79, 179, 73, 23, 208, 67, 8, 197, 76, 97, 12, 37, 128, 66, 8, 197, 75, 195, 205, 5, 96, 67,
+			6, 195, 216, 219, 210, 66, 8, 197, 4, 90, 100, 51, 16, 68, 0, 5, 194, 52, 16, 72, 11, 66, 48, 48, 55, 4, 36, 84, 35, 0,
+			24, 6, 195, 177, 34, 69, 66, 6, 195, 47, 49, 125, 66, 0, 10, 199, 85, 16, 72, 24, 243, 15, 16, 68, 10, 199, 24, 208, 145, 36,
+			243, 15, 16, 68, 0, 11, 200, 53, 67, 19, 36, 219, 137, 207, 176, 70, 7, 196, 16, 18, 165, 56, 66, 7, 196, 4, 74, 77, 188, 67,
+			0, 8, 197, 222, 52, 73, 80, 208, 66, 8, 197, 65, 18, 74, 60, 208, 66, 8, 197, 55, 163, 109, 4, 80, 67, 0, 6, 194, 180, 16,
+			72, 23, 9, 198, 55, 17, 123, 49, 178, 192, 67, 0, 9, 198, 4, 67, 15, 55, 176, 83, 68, 0, 6, 195, 84, 244, 243, 66, 11, 200,
+			72, 198, 206, 96, 241, 12, 24, 80, 67, 7, 196, 68, 21, 129, 76, 66, 6, 195, 64, 148, 243, 66, 6, 195, 47, 62, 0, 66, 6, 195,
+			232, 100, 147, 66, 0, 8, 197, 88, 144, 145, 36, 80, 66, 8, 197, 67, 160, 86, 60, 80, 67, 0, 6, 195, 52, 244, 253, 66, 0, 15,
+			3, 95, 50, 88, 72, 84, 6, 35, 72, 36, 89, 36, 47, 0, 9, 198, 8, 146, 250, 11, 48, 83, 68, 0, 7, 196, 88, 207, 73, 20,
+			66, 7, 196, 88, 18, 58, 76, 66, 6, 195, 84, 18, 47, 66, 7, 196, 74, 217, 100, 76, 67, 6, 195, 164, 129, 151, 66, 7, 196, 60,
+			220, 201, 52, 67, 7, 196, 47, 210, 69, 244, 67, 7, 196, 32, 54, 232, 92, 66, 7, 196, 15, 179, 84, 76, 66, 0, 8, 197, 91, 195,
+			205, 189, 48, 67, 8, 197, 77, 180, 68, 5, 144, 66, 8, 197, 52, 98, 51, 25, 48, 67, 8, 197, 52, 19, 122, 25, 112, 67, 8, 197,
+			44, 195, 200, 25, 48, 66, 0, 9, 198, 44, 243, 66, 4, 163, 128, 66, 0, 6, 195, 216, 219, 192, 66, 9, 198, 167, 83, 31, 92, 156,
+			251, 70, 6, 195, 232, 107, 64, 67, 9, 198, 5, 3, 204, 60, 65, 147, 68, 0, 7, 196, 96, 144, 148, 44, 66, 7, 196, 67, 21, 198,
+			76, 66, 7, 196, 25, 36, 198, 76, 66, 7, 196, 9, 245, 70, 76, 66, 0, 9, 198, 72, 99, 32, 56, 85, 17, 67, 8, 197, 52, 20,
+			145, 5, 80, 66, 8, 197, 25, 50, 75, 25, 48, 67, 8, 197, 8, 97, 239, 25, 112, 67, 8, 197, 8, 97, 12, 25, 112, 66, 8, 197,
+			153, 62, 46, 61, 48, 68, 0, 9, 198, 44, 243, 44, 169, 67, 64, 66, 9, 198, 7, 179, 197, 69, 67, 64, 68, 0, 6, 195, 45, 67,
+			124, 66, 6, 195, 191, 52, 128, 66, 0, 11, 200, 88, 147, 75, 60, 208, 177, 5, 48, 68, 7, 196, 84, 244, 132, 192, 66, 7, 196, 76,
+			101, 83, 236, 66, 11, 200, 73, 68, 59, 84, 244, 149, 5, 48, 68, 7, 196, 220, 195, 137, 44, 66, 7, 196, 68, 18, 13, 236, 66, 7,
+			196, 64, 100, 246, 48, 66, 7, 196, 55, 163, 197, 236, 67, 0, 8, 197, 64, 22, 75, 80, 192, 66, 8, 197, 64, 20, 1, 18, 208, 67,
+			0, 9, 198, 84, 98, 140, 25, 60, 192, 67, 9, 198, 72, 147, 84, 140, 228, 192, 67, 5, 194, 158, 208, 66, 9, 198, 53, 68, 65, 84,
+			100, 192, 67, 9, 198, 20, 144, 251, 74, 244, 192, 67, 9, 198, 168, 45, 130, 25, 60, 192, 68, 0, 10, 199, 52, 104, 206, 88, 243, 9,
+			44, 68, 10, 199, 47, 49, 12, 60, 222, 193, 76, 68, 0, 7, 196, 64, 102, 1, 76, 66, 7, 196, 52, 20, 148, 68, 66, 7, 196, 47,
+			52, 212, 68, 66, 0, 8, 197, 73, 15, 126, 55, 0, 66, 8, 197, 68, 17, 73, 46, 208, 67, 8, 197, 64, 145, 13, 24, 160, 66, 8,
+			197, 64, 20, 147, 24, 192, 66, 8, 197, 44, 20, 17, 36, 128, 66, 0, 0, 18, 3, 95, 52, 88, 76, 36, 47, 37, 34, 6, 37, 72,
+			36, 89, 36, 47, 0, 10, 199, 44, 243, 73, 75, 162, 65, 76, 69, 0, 7, 196, 74, 229, 6, 76, 67, 7, 196, 52, 18, 165, 64, 66,
+			7, 196, 47, 164, 207, 84, 66, 6, 195, 15, 177, 131, 66, 0, 8, 197, 165, 83, 6, 45, 32, 66, 9, 198, 9, 16, 83, 157, 129, 133,
+			67, 0, 9, 198, 87, 51, 196, 68, 21, 64, 67, 9, 198, 45, 22, 210, 76, 101, 192, 66, 0, 0, 7, 196, 48, 240, 148, 76, 66, 7,
+			196, 21, 246, 70, 44, 66, 0, 8, 197, 72, 149, 110, 37, 32, 65, 8, 197, 48, 149, 198, 55, 176, 67, 8, 197, 8, 198, 213, 119, 208,
+			66, 0, 9, 198, 65, 180, 117, 30, 149, 192, 67, 9, 198, 67, 98, 72, 88, 241, 64, 67, 9, 198, 44, 148, 140, 244, 241, 64, 67, 0,
+			15, 3, 95, 53, 88, 48, 36, 47, 72, 36, 89, 6, 36, 47, 0, 9, 198, 64, 243, 9, 16, 195, 211, 67, 10, 199, 64, 241, 82, 24,
+			186, 101, 68, 65, 0, 7, 196, 84, 17, 15, 76, 66, 11, 200, 68, 18, 3, 24, 164, 17, 5, 96, 67, 7, 196, 67, 100, 198, 196, 67,
+			7, 196, 52, 22, 129, 8, 66, 7, 196, 47, 160, 84, 48, 67, 7, 196, 212, 163, 137, 44, 66, 0, 9, 197, 12, 209, 146, 76, 240, 72,
+			23, 8, 197, 96, 149, 76, 36, 176, 66, 8, 197, 87, 49, 147, 36, 176, 67, 8, 197, 77, 16, 68, 36, 176, 66, 8, 197, 64, 241, 73,
+			80, 208, 65, 9, 198, 66, 254, 19, 36, 181, 13, 66, 8, 197, 53, 182, 48, 36, 176, 67, 8, 197, 48, 241, 56, 24, 80, 67, 0, 0,
+			6, 195, 5, 1, 140, 66, 0, 7, 196, 60, 46, 211, 204, 65, 0, 9, 197, 20, 241, 70, 76, 240, 72, 23, 8, 197, 49, 241, 79, 24,
+			80, 67, 6, 195, 45, 69, 122, 65, 8, 197, 8, 97, 12, 36, 176, 66, 0, 9, 198, 152, 147, 205, 60, 81, 140, 69, 0, 16, 3, 95,
+			54, 88, 91, 36, 89, 47, 72, 36, 89, 6, 36, 47, 0, 6, 195, 8, 240, 72, 66, 0, 7, 196, 88, 18, 163, 32, 66, 6, 195, 79,
+			178, 123, 67, 11, 200, 73, 189, 194, 73, 48, 240, 36, 176, 66, 11, 200, 60, 38, 134, 73, 48, 240, 36, 176, 66, 7, 196, 56, 246, 134,
+			72, 66, 9, 198, 47, 52, 209, 5, 65, 122, 67, 6, 195, 47, 49, 151, 66, 7, 196, 5, 93, 142, 76, 66, 0, 9, 198, 47, 48, 240,
+			92, 156, 237, 69, 8, 197, 232, 100, 165, 57, 48, 67, 8, 197, 4, 90, 82, 5, 48, 67, 0, 9, 198, 88, 207, 79, 87, 211, 64, 67,
+			9, 198, 55, 51, 196, 68, 19, 64, 67, 9, 198, 141, 28, 68, 60, 195, 196, 68, 9, 198, 8, 242, 5, 80, 75, 192, 67, 0, 6, 195,
+			22, 243, 192, 66, 6, 195, 91, 219, 64, 66, 6, 195, 81, 27, 192, 66, 0, 7, 196, 77, 244, 66, 188, 66, 6, 195, 11, 209, 151, 66,
+			6, 195, 173, 70, 123, 67, 0, 8, 197, 46, 52, 113, 25, 48, 67, 0, 6, 195, 51, 17, 173, 67, 0, 0, 7, 196, 73, 51, 194, 244,
+			66, 7, 196, 60, 33, 139, 76, 66, 7, 196, 48, 110, 58, 20, 67, 11, 200, 7, 179, 211, 70, 244, 144, 245, 48, 69, 0, 8, 197, 73,
+			254, 81, 36, 128, 66, 8, 197, 169, 52, 73, 60, 192, 67, 0, 9, 198, 73, 180, 87, 24, 35, 204, 67, 9, 198, 67, 97, 139, 148, 228,
+			192, 67, 6, 195, 46, 58, 145, 66, 9, 198, 44, 48, 69, 70, 244, 192, 66, 9, 198, 20, 96, 159, 148, 228, 192, 67, 9, 198, 153, 62,
+			61, 78, 148, 192, 68, 0, 6, 195, 160, 176, 64, 65, 9, 198, 44, 48, 69, 70, 226, 115, 68, 0, 7, 196, 68, 22, 6, 48, 66, 7,
+			196, 48, 149, 240, 32, 66, 7, 196, 47, 53, 84, 32, 66, 7, 196, 44, 240, 148, 68, 66, 0, 6, 195, 47, 61, 74, 66, 8, 197, 197,
+			49, 132, 70, 208, 67, 6, 195, 8, 241, 110, 66, 0, 5, 194, 53, 64, 72, 6, 195, 66, 144, 237, 66, 9, 198, 56, 249, 81, 37, 68,
+			128, 66, 9, 198, 15, 180, 207, 48, 100, 192, 67, 0, 16, 3, 95, 56, 88, 39, 89, 36, 65, 72, 36, 89, 6, 36, 47, 0, 0, 6,
+			195, 144, 179, 51, 66, 7, 196, 36, 188, 207, 52, 67, 0, 8, 197, 79, 131, 15, 55, 176, 67, 8, 197, 68, 18, 14, 61, 32, 66, 8,
+			197, 67, 203, 18, 187, 16, 68, 8, 197, 8, 25, 76, 119, 48, 67, 0, 9, 198, 67, 160, 68, 68, 21, 64, 67, 9, 198, 52, 20, 139,
+			232, 17, 64, 67, 9, 198, 32, 54, 206, 76, 97, 192, 66, 9, 198, 16, 99, 196, 68, 21, 64, 67, 0, 0, 8, 196, 36, 132, 15, 20,
+			72, 23, 7, 196, 55, 4, 207, 48, 66, 7, 196, 28, 20, 141, 196, 66, 7, 196, 8, 204, 197, 196, 66, 6, 195, 4, 131, 211, 66, 0,
+			12, 201, 84, 244, 236, 233, 51, 196, 68, 21, 64, 69, 8, 197, 67, 164, 206, 119, 208, 66, 8, 197, 12, 100, 246, 55, 176, 67, 8, 197,
+			5, 43, 210, 119, 208, 67, 8, 197, 172, 48, 77, 235, 16, 68, 0, 5, 194, 36, 208, 72, 7, 195, 145, 42, 69, 72, 23, 9, 198, 97,
+			65, 197, 192, 101, 192, 67, 9, 198, 74, 129, 39, 180, 97, 192, 68, 9, 198, 60, 36, 65, 32, 101, 192, 67, 0, 17, 3, 95, 57, 88,
+			72, 36, 84, 36, 47, 72, 36, 89, 6, 36, 47, 0, 0, 9, 198, 47, 52, 209, 5, 95, 82, 67, 6, 195, 47, 164, 243, 66, 0, 8,
+			197, 22, 126, 240, 36, 176, 66, 0, 9, 198, 84, 207, 37, 20, 114, 96, 65, 9, 198, 64, 145, 133, 25, 41, 76, 68, 9, 198, 14, 180,
+			129, 20, 114, 96, 65, 0, 9, 198, 20, 148, 12, 60, 208, 83, 67, 0, 7, 196, 67, 212, 201, 236, 67, 7, 196, 5, 14, 129, 76, 67,
+			0, 8, 197, 72, 201, 253, 24, 80, 67, 8, 197, 64, 195, 218, 4, 80, 66, 9, 198, 44, 20, 139, 4, 87, 125, 67, 8, 197, 18, 145,
+			125, 24, 80, 67, 0, 0, 6, 195, 79, 191, 64, 66, 0, 7, 196, 92, 145, 47, 196, 65, 7, 196, 85, 68, 68, 204, 66, 7, 196, 79,
+			179, 113, 180, 67, 6, 195, 74, 82, 239, 66, 7, 196, 161, 68, 246, 56, 67, 7, 196, 53, 69, 76, 204, 66, 7, 196, 45, 68, 66, 188,
+			66, 7, 196, 17, 25, 157, 244, 66, 0, 8, 197, 91, 210, 72, 205, 48, 67, 8, 197, 77, 18, 84, 53, 80, 66, 8, 197, 165, 36, 253,
+			189, 48, 67, 8, 197, 20, 100, 20, 149, 48, 67, 8, 197, 11, 177, 139, 25, 48, 67, 0, 6, 195, 46, 58, 153, 66, 9, 198, 153, 51,
+			205, 60, 43, 128, 68, 0, 6, 195, 164, 139, 128, 66, 0, 6, 195, 149, 1, 147, 66, 6, 195, 64, 156, 251, 67, 7, 196, 44, 21, 155,
+			68, 66, 6, 195, 10, 208, 239, 66, 0, 8, 197, 75, 18, 231, 25, 112, 65, 8, 197, 72, 98, 229, 57, 48, 66, 8, 197, 64, 241, 76,
+			25, 112, 66, 9, 198, 52, 146, 47, 79, 100, 0, 67, 8, 197, 47, 52, 148, 49, 48, 66, 8, 197, 20, 100, 144, 61, 48, 66, 8, 197,
+			8, 148, 141, 81, 48, 66, 8, 197, 5, 36, 60, 189, 48, 67, 0, 6, 195, 68, 17, 122, 65, 9, 198, 64, 243, 20, 87, 27, 64, 68,
+			9, 198, 66, 226, 68, 68, 147, 64, 67, 0, 6, 195, 144, 178, 83, 65, 9, 198, 52, 17, 40, 76, 245, 115, 68, 6, 195, 10, 226, 115,
+			67, 6, 195, 10, 210, 243, 66, 0, 6, 195, 20, 145, 136, 66, 0, 8, 196, 13, 180, 86, 80, 72, 23, 7, 196, 166, 132, 175, 72, 67,
+			7, 196, 164, 140, 239, 72, 67, 6, 195, 67, 160, 69, 66, 7, 196, 46, 52, 137, 44, 66, 6, 195, 180, 37, 13, 66, 0, 8, 197, 148,
+			194, 82, 54, 240, 67, 8, 197, 67, 160, 66, 24, 192, 67, 8, 197, 44, 243, 39, 60, 128, 67, 6, 195, 30, 193, 138, 66, 0, 6, 195,
+			8, 98, 243, 66, 0, 6, 195, 164, 140, 192, 66, 0, 7, 196, 88, 240, 143, 76, 66, 11, 200, 73, 51, 205, 5, 51, 204, 60, 64, 68,
+			11, 200, 160, 61, 144, 5, 51, 204, 60, 64, 69, 0, 8, 197, 84, 97, 123, 10, 208, 65, 8, 197, 70, 241, 70, 54, 240, 67, 8, 197,
+			44, 242, 60, 60, 64, 65, 8, 197, 20, 146, 1, 40, 224, 66, 0, 9, 198, 160, 35, 210, 44, 204, 192, 67, 9, 198, 44, 226, 68, 224,
+			148, 128, 67, 0, 0, 7, 196, 92, 145, 47, 244, 67, 7, 196, 195, 210, 65, 100, 68, 0, 6, 195, 72, 107, 210, 66, 8, 197, 64, 241,
+			82, 51, 48, 66, 9, 198, 20, 19, 65, 32, 198, 203, 67, 0, 6, 195, 52, 19, 115, 66, 9, 198, 24, 130, 75, 156, 97, 64, 68, 6,
+			195, 10, 210, 239, 66, 0, 10, 199, 88, 207, 103, 60, 95, 79, 20, 69, 0, 7, 196, 83, 99, 15, 16, 67, 7, 196, 77, 68, 203, 180,
+			66, 7, 196, 72, 191, 70, 92, 66, 12, 201, 67, 98, 72, 212, 84, 147, 15, 2, 75, 67, 0, 8, 197, 164, 114, 82, 119, 208, 67, 8,
+			197, 64, 243, 20, 79, 48, 67, 9, 198, 52, 148, 139, 196, 198, 203, 67, 8, 197, 44, 241, 207, 23, 176, 67, 8, 197, 20, 157, 228, 57,
+			32, 67, 0, 5, 194, 48, 144, 72, 9, 198, 49, 67, 143, 88, 241, 64, 67, 9, 198, 18, 113, 133, 157, 177, 64, 68, 9, 198, 12, 100,
+			246, 88, 241, 64, 67, 6, 195, 10, 212, 243, 66, 0, 10, 199, 10, 180, 251, 36, 243, 15, 16, 69, 0, 26, 4, 104, 116, 116, 112, 36,
+			57, 76, 47, 37, 12, 47, 37, 12, 6, 48, 37, 12, 10, 0, 81, 58, 47, 47, 32, 7, 196, 61, 51, 9, 12, 65, 6, 195, 46, 192,
+			113, 67, 6, 195, 31, 192, 85, 66, 0, 8, 197, 68, 18, 12, 60, 208, 66, 8, 197, 44, 19, 89, 36, 176, 66, 8, 197, 25, 2, 72,
+			60, 80, 67, 0, 9, 198, 128, 213, 17, 49, 66, 192, 67, 9, 198, 95, 194, 193, 20, 114, 96, 65, 6, 195, 164, 142, 195, 66, 9, 198,
+			45, 22, 195, 56, 146, 192, 66, 9, 198, 21, 22, 195, 56, 146, 192, 66, 6, 195, 8, 100, 243, 66, 0, 6, 195, 52, 18, 128, 72, 0,
+			7, 196, 79, 181, 201, 236, 67, 0, 8, 197, 77, 16, 85, 36, 176, 66, 8, 197, 73, 65, 71, 80, 176, 66, 8, 197, 68, 20, 147, 24,
+			112, 66, 8, 197, 67, 98, 1, 36, 176, 67, 8, 197, 157, 113, 131, 108, 80, 67, 0, 9, 198, 77, 16, 77, 12, 18, 128, 66, 9, 198,
+			52, 98, 15, 32, 242, 128, 67, 9, 198, 19, 98, 5, 60, 46, 192, 67, 6, 195, 10, 225, 147, 66, 0, 9, 198, 52, 146, 246, 17, 16,
+			85, 67, 6, 195, 36, 132, 236, 65, 10, 199, 9, 179, 4, 232, 245, 79, 8, 68, 0, 7, 196, 52, 21, 8, 236, 65, 6, 195, 19, 14,
+			237, 67, 0, 8, 197, 73, 64, 134, 45, 48, 66, 8, 197, 164, 92, 68, 61, 48, 65, 9, 198, 144, 33, 133, 164, 226, 75, 66, 8, 197,
+			44, 243, 111, 23, 192, 67, 9, 198, 20, 144, 66, 25, 50, 75, 68, 6, 195, 173, 179, 0, 66, 0, 15, 4, 95, 48, 77, 50, 65, 37,
+			55, 37, 6, 39, 50, 35, 0, 5, 194, 179, 128, 66, 9, 198, 44, 97, 6, 48, 43, 192, 65, 6, 195, 8, 241, 151, 66, 0, 16, 4,
+			95, 48, 77, 51, 65, 37, 55, 37, 6, 35, 34, 72, 35, 0, 10, 199, 168, 81, 143, 79, 179, 113, 180, 70, 0, 8, 196, 64, 244, 169,
+			20, 72, 23, 7, 196, 99, 166, 65, 84, 66, 0, 14, 4, 95, 48, 77, 49, 99, 6, 37, 55, 35, 72, 37, 0, 8, 197, 73, 178, 204,
+			25, 48, 66, 8, 197, 164, 142, 195, 5, 48, 67, 6, 195, 61, 59, 0, 65, 8, 197, 140, 179, 205, 25, 112, 65, 9, 198, 25, 11, 134,
+			65, 50, 75, 68, 8, 197, 4, 93, 75, 5, 48, 67, 0, 9, 198, 72, 98, 210, 5, 11, 128, 67, 6, 195, 68, 18, 179, 66, 9, 198,
+			46, 209, 91, 69, 179, 64, 67, 0, 9, 198, 75, 185, 207, 23, 211, 197, 69, 6, 195, 74, 220, 192, 66, 6, 195, 10, 220, 192, 66, 0,
+			9, 198, 91, 210, 72, 206, 83, 0, 68, 7, 196, 9, 66, 210, 240, 66, 0, 8, 197, 75, 19, 204, 60, 64, 67, 8, 197, 64, 99, 9,
+			46, 240, 67, 8, 197, 44, 25, 76, 60, 64, 67, 0, 9, 198, 88, 244, 240, 76, 244, 192, 67, 9, 198, 65, 180, 198, 64, 148, 128, 67,
+			0, 9, 198, 73, 62, 198, 61, 91, 141, 68, 10, 199, 66, 145, 82, 150, 164, 198, 48, 66, 0, 8, 196, 144, 180, 65, 40, 72, 23, 7,
+			196, 85, 68, 78, 240, 66, 11, 200, 52, 146, 246, 8, 147, 204, 60, 64, 69, 7, 196, 45, 68, 100, 32, 66, 7, 196, 36, 132, 9, 76,
+			65, 7, 196, 11, 162, 83, 204, 67, 0, 9, 198, 52, 146, 47, 73, 124, 0, 67, 9, 198, 45, 79, 148, 32, 197, 11, 67, 8, 197, 24,
+			179, 204, 60, 64, 67, 6, 195, 10, 219, 210, 66, 0, 9, 198, 95, 4, 212, 68, 156, 192, 68, 6, 195, 222, 67, 147, 66, 6, 195, 225,
+			50, 75, 66, 9, 198, 54, 242, 85, 25, 36, 192, 67, 0, 10, 199, 145, 4, 91, 73, 51, 137, 44, 65, 0, 7, 196, 73, 68, 201, 192,
+			67, 7, 196, 24, 180, 165, 32, 66, 7, 196, 232, 43, 70, 76, 67, 0, 8, 197, 92, 100, 6, 51, 16, 67, 9, 198, 84, 16, 145, 36,
+			187, 211, 67, 9, 198, 220, 80, 69, 28, 152, 0, 65, 8, 197, 44, 243, 80, 5, 32, 66, 9, 198, 16, 147, 100, 73, 50, 75, 67, 8,
+			197, 5, 66, 215, 39, 48, 68, 0, 6, 195, 160, 49, 135, 66, 6, 195, 47, 176, 239, 66, 0, 9, 198, 57, 242, 189, 45, 139, 241, 66,
+			0, 7, 196, 140, 212, 198, 28, 66, 7, 196, 47, 211, 137, 32, 66, 7, 196, 20, 99, 21, 196, 66, 0, 6, 195, 68, 25, 74, 66, 8,
+			197, 66, 149, 73, 45, 32, 66, 8, 197, 52, 240, 137, 87, 48, 65, 9, 198, 44, 194, 77, 5, 50, 75, 67, 8, 197, 8, 20, 147, 39,
+			48, 67, 0, 5, 194, 52, 144, 72, 0, 9, 198, 20, 149, 123, 193, 114, 109, 69, 10, 199, 4, 77, 130, 36, 243, 15, 16, 69, 0, 7,
+			196, 88, 148, 233, 92, 66, 11, 200, 73, 51, 205, 188, 240, 134, 79, 48, 69, 6, 195, 67, 160, 85, 66, 7, 196, 192, 150, 58, 196, 66,
+			7, 196, 9, 68, 75, 188, 66, 0, 0, 9, 198, 72, 19, 84, 68, 18, 128, 67, 6, 195, 66, 152, 211, 66, 9, 198, 60, 33, 140, 37,
+			34, 192, 67, 0, 10, 199, 72, 191, 79, 73, 51, 205, 236, 68, 10, 199, 64, 241, 80, 37, 35, 137, 44, 65, 0, 7, 196, 48, 244, 137,
+			204, 67, 0, 8, 197, 66, 208, 77, 80, 80, 67, 8, 197, 44, 17, 118, 168, 176, 67, 9, 198, 193, 53, 18, 36, 20, 147, 68, 0, 9,
+			198, 88, 244, 198, 48, 158, 192, 68, 9, 198, 64, 100, 207, 8, 242, 128, 67, 0, 10, 199, 99, 208, 129, 20, 123, 155, 44, 68, 10, 199,
+			20, 99, 115, 73, 52, 111, 76, 67, 0, 11, 200, 33, 176, 143, 76, 101, 142, 36, 176, 68, 7, 196, 175, 209, 70, 204, 68, 0, 8, 197,
+			20, 144, 66, 25, 48, 67, 8, 197, 12, 22, 112, 25, 112, 65, 0, 0, 9, 198, 66, 52, 206, 61, 99, 197, 67, 10, 199, 44, 16, 145,
+			36, 243, 6, 76, 68, 0, 6, 195, 84, 159, 69, 66, 11, 200, 67, 101, 75, 60, 210, 83, 25, 48, 68, 12, 201, 48, 147, 115, 4, 80,
+			69, 28, 152, 0, 67, 9, 198, 33, 176, 143, 48, 98, 250, 67, 0, 8, 197, 77, 16, 80, 25, 112, 66, 9, 198, 216, 84, 147, 15, 2,
+			75, 65, 8, 197, 65, 16, 82, 25, 112, 66, 8, 197, 44, 16, 177, 25, 48, 67, 8, 197, 9, 18, 75, 25, 48, 66, 0, 9, 198, 95,
+			177, 141, 204, 155, 64, 69, 0, 10, 199, 197, 33, 139, 76, 149, 201, 20, 68, 6, 195, 196, 20, 192, 66, 0, 9, 198, 216, 83, 197, 192,
+			93, 142, 68, 11, 200, 68, 17, 73, 60, 16, 179, 5, 48, 70, 0, 6, 195, 160, 61, 142, 66, 8, 197, 47, 178, 240, 24, 128, 67, 0,
+			9, 198, 64, 243, 6, 16, 20, 192, 67, 9, 198, 64, 20, 209, 36, 244, 192, 67, 9, 198, 47, 52, 144, 24, 180, 192, 66, 0, 0, 7,
+			196, 77, 68, 78, 240, 66, 7, 196, 61, 48, 137, 12, 65, 7, 196, 180, 219, 193, 88, 67, 0, 8, 197, 77, 18, 80, 140, 224, 66, 8,
+			197, 52, 17, 71, 80, 224, 66, 6, 195, 46, 208, 74, 66, 8, 197, 20, 240, 187, 54, 240, 65, 0, 9, 198, 44, 243, 80, 48, 244, 192,
+			66, 9, 198, 44, 243, 66, 196, 20, 192, 67, 0, 6, 195, 12, 98, 60, 66, 0, 7, 196, 87, 211, 109, 196, 67, 7, 196, 86, 249, 82,
+			76, 66, 7, 196, 20, 241, 39, 244, 65, 6, 195, 212, 18, 189, 67, 0, 9, 198, 64, 193, 141, 192, 226, 75, 65, 8, 197, 66, 51, 139,
+			79, 48, 66, 9, 198, 224, 242, 9, 92, 156, 251, 70, 9, 198, 160, 89, 207, 48, 226, 75, 68, 8, 197, 52, 148, 137, 207, 176, 68, 8,
+			197, 47, 50, 212, 69, 32, 66, 8, 197, 24, 180, 144, 165, 32, 66, 8, 197, 9, 243, 6, 79, 16, 67, 0, 9, 198, 52, 227, 196, 61,
+			131, 48, 67, 0, 0, 7, 195, 56, 146, 0, 72, 23, 7, 196, 66, 145, 39, 244, 65, 7, 196, 67, 160, 85, 196, 67, 7, 196, 36, 129,
+			39, 244, 65, 7, 196, 33, 176, 134, 92, 66, 0, 8, 197, 77, 16, 84, 51, 176, 65, 8, 197, 76, 105, 78, 81, 32, 65, 8, 197, 161,
+			68, 144, 25, 96, 67, 8, 197, 12, 18, 6, 51, 16, 67, 6, 195, 189, 80, 82, 66, 0, 5, 194, 72, 16, 72, 5, 194, 56, 144, 72,
+			6, 195, 4, 32, 83, 66, 0, 10, 199, 67, 100, 144, 236, 148, 198, 76, 68, 12, 201, 47, 164, 207, 86, 195, 205, 8, 18, 142, 69, 9,
+			198, 20, 147, 79, 61, 61, 69, 68, 0, 7, 196, 46, 144, 193, 76, 66, 7, 196, 44, 243, 73, 44, 66, 7, 196, 8, 18, 45, 76, 66,
+			0, 8, 197, 148, 35, 15, 36, 80, 67, 0, 6, 194, 184, 144, 72, 23, 6, 194, 172, 240, 72, 23, 9, 198, 81, 41, 66, 5, 146, 96,
+			66, 9, 198, 145, 18, 207, 76, 146, 192, 67, 0, 0, 7, 196, 75, 176, 134, 32, 66, 7, 196, 67, 212, 233, 76, 66, 7, 196, 45, 77,
+			145, 76, 66, 7, 196, 47, 170, 212, 48, 67, 7, 196, 29, 68, 100, 48, 66, 7, 196, 25, 81, 139, 76, 66, 0, 8, 197, 76, 101, 142,
+			36, 176, 66, 8, 197, 64, 243, 49, 60, 208, 67, 8, 197, 66, 217, 142, 36, 176, 65, 12, 201, 188, 100, 147, 24, 130, 79, 48, 241, 0,
+			70, 0, 9, 198, 64, 20, 207, 48, 241, 0, 67, 9, 198, 10, 218, 15, 48, 241, 0, 68, 0, 10, 199, 89, 64, 143, 73, 51, 137, 44,
+			67, 0, 6, 195, 52, 18, 189, 66, 7, 196, 44, 243, 24, 188, 66, 7, 196, 47, 176, 83, 196, 67, 0, 8, 197, 104, 145, 12, 25, 112,
+			66, 8, 197, 73, 77, 132, 5, 48, 67, 8, 197, 44, 62, 147, 25, 48, 66, 0, 0, 10, 199, 20, 99, 9, 44, 20, 198, 72, 68, 0,
+			7, 196, 164, 140, 221, 244, 67, 7, 196, 47, 160, 137, 20, 66, 6, 195, 20, 147, 197, 66, 0, 9, 198, 73, 3, 6, 76, 226, 75, 66,
+			8, 197, 52, 101, 240, 5, 48, 67, 9, 198, 52, 105, 85, 36, 130, 75, 68, 9, 198, 44, 243, 6, 72, 226, 75, 67, 9, 198, 36, 213,
+			14, 37, 49, 147, 68, 0, 0, 10, 199, 73, 64, 251, 192, 148, 198, 76, 69, 6, 195, 47, 193, 152, 66, 10, 199, 169, 34, 207, 32, 148,
+			198, 76, 68, 0, 12, 201, 65, 180, 117, 36, 132, 207, 96, 226, 75, 67, 7, 196, 64, 241, 70, 52, 66, 7, 196, 67, 177, 6, 48, 66,
+			7, 196, 140, 47, 111, 76, 67, 7, 196, 45, 79, 148, 32, 66, 7, 196, 16, 213, 41, 92, 66, 7, 196, 8, 244, 165, 56, 66, 7, 196,
+			189, 50, 68, 192, 67, 0, 8, 197, 87, 162, 82, 24, 160, 67, 12, 201, 80, 196, 209, 4, 210, 75, 217, 34, 248, 69, 0, 0, 0, 6,
+			195, 74, 241, 109, 66, 7, 196, 5, 60, 37, 76, 67, 0, 8, 197, 68, 18, 5, 24, 192, 66, 8, 197, 67, 98, 72, 212, 192, 67, 8,
+			197, 47, 165, 73, 60, 192, 67, 8, 197, 16, 243, 15, 18, 240, 67, 0, 9, 198, 65, 34, 86, 224, 20, 192, 67, 9, 198, 48, 98, 211,
+			244, 20, 192, 67, 9, 198, 47, 53, 76, 36, 180, 192, 66, 9, 198, 44, 243, 80, 189, 220, 192, 67, 6, 195, 24, 130, 75, 66, 6, 195,
+			9, 250, 75, 66, 0, 10, 199, 73, 179, 73, 100, 204, 9, 44, 66, 9, 198, 45, 66, 212, 69, 66, 0, 67, 0, 7, 196, 32, 17, 39,
+			244, 65, 0, 12, 201, 68, 17, 73, 61, 49, 140, 25, 92, 192, 70, 9, 198, 64, 243, 65, 34, 242, 75, 66, 8, 197, 66, 242, 233, 5,
+			32, 67, 0, 38, 3, 95, 194, 171, 55, 38, 4, 35, 84, 35, 15, 72, 84, 4, 39, 37, 50, 35, 15, 47, 34, 37, 4, 13, 81, 35,
+			55, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 0, 10, 199, 52, 21, 141, 81, 19, 20, 44, 67, 0, 12, 201, 96, 100, 252, 37, 177,
+			27, 48, 226, 75, 68, 7, 196, 66, 144, 198, 72, 66, 7, 196, 55, 62, 15, 48, 67, 7, 196, 28, 144, 198, 92, 66, 11, 200, 168, 81,
+			143, 76, 99, 6, 87, 48, 70, 7, 196, 188, 20, 207, 52, 67, 0, 24, 3, 95, 194, 166, 48, 34, 36, 49, 4, 13, 89, 50, 35, 47,
+			35, 15, 76, 36, 34, 47, 6, 35, 0, 12, 201, 48, 148, 251, 5, 53, 54, 12, 97, 64, 70, 8, 197, 28, 145, 12, 119, 208, 66, 6,
+			195, 23, 17, 46, 66, 0, 9, 198, 73, 59, 15, 60, 35, 112, 68, 0, 0, 6, 195, 78, 196, 177, 66, 6, 195, 52, 17, 253, 66, 7,
+			196, 48, 145, 14, 196, 66, 7, 196, 47, 57, 75, 76, 66, 0, 8, 197, 75, 30, 19, 36, 176, 67, 0, 9, 198, 66, 209, 153, 56, 146,
+			192, 65, 9, 198, 20, 148, 144, 189, 46, 192, 67, 0, 9, 198, 65, 50, 87, 24, 54, 197, 67, 9, 198, 67, 168, 205, 193, 55, 125, 68,
+			8, 197, 20, 53, 24, 51, 0, 66, 9, 198, 169, 113, 129, 20, 223, 45, 69, 10, 199, 8, 146, 195, 4, 84, 65, 76, 67, 0, 7, 196,
+			77, 67, 20, 52, 66, 7, 196, 67, 96, 137, 12, 65, 7, 196, 25, 34, 253, 76, 66, 7, 196, 8, 148, 35, 56, 66, 6, 195, 4, 33,
+			109, 66, 0, 12, 201, 65, 34, 86, 62, 251, 73, 76, 146, 192, 70, 9, 198, 52, 109, 197, 60, 34, 67, 67, 8, 197, 44, 253, 208, 4,
+			80, 67, 8, 197, 44, 20, 24, 80, 176, 66, 12, 201, 20, 243, 79, 81, 4, 102, 37, 49, 140, 68, 8, 197, 18, 49, 78, 36, 176, 66,
+			8, 197, 212, 94, 54, 212, 80, 68, 0, 15, 66, 73, 48, 89, 47, 39, 47, 6, 37, 50, 49, 37, 0, 24, 9, 198, 96, 148, 147, 56,
+			146, 192, 66, 9, 198, 172, 17, 70, 52, 146, 192, 68, 0, 10, 199, 161, 13, 139, 225, 43, 201, 44, 67, 0, 9, 198, 60, 194, 68, 61,
+			90, 78, 68, 11, 200, 24, 180, 139, 81, 18, 39, 60, 80, 68, 7, 196, 13, 180, 83, 224, 66, 7, 196, 189, 60, 201, 52, 67, 0, 8,
+			197, 164, 180, 253, 5, 48, 67, 9, 198, 54, 249, 76, 37, 49, 147, 68, 8, 197, 22, 196, 253, 5, 48, 67, 8, 197, 5, 49, 146, 149,
+			48, 67, 0, 9, 198, 99, 179, 143, 32, 99, 64, 67, 6, 195, 141, 81, 147, 66, 6, 195, 20, 144, 239, 66, 0, 0, 7, 196, 220, 197,
+			70, 28, 66, 7, 196, 145, 55, 233, 48, 67, 12, 201, 52, 227, 196, 61, 177, 27, 48, 226, 75, 67, 7, 196, 54, 49, 70, 28, 66, 7,
+			196, 52, 101, 239, 196, 67, 7, 196, 54, 241, 139, 192, 67, 0, 9, 198, 74, 80, 174, 37, 49, 147, 68, 8, 197, 44, 244, 147, 81, 16,
+			66, 8, 197, 16, 102, 70, 85, 48, 66, 0, 0, 6, 195, 87, 3, 204, 66, 6, 195, 156, 100, 128, 66, 0, 7, 196, 67, 96, 143, 40,
+			66, 7, 196, 66, 145, 70, 48, 66, 7, 196, 52, 241, 70, 52, 66, 6, 195, 44, 101, 109, 66, 7, 196, 44, 17, 70, 52, 66, 6, 195,
+			168, 135, 125, 66, 7, 196, 8, 17, 70, 52, 66, 0, 8, 197, 64, 243, 46, 24, 160, 67, 8, 197, 60, 36, 147, 164, 192, 66, 8, 197,
+			20, 101, 201, 54, 208, 67, 8, 197, 16, 99, 204, 60, 64, 67, 0, 9, 198, 16, 244, 144, 60, 92, 64, 67, 0, 9, 198, 13, 67, 133,
+			236, 188, 69, 65, 6, 195, 154, 244, 128, 66, 0, 7, 196, 52, 241, 70, 48, 66, 0, 8, 197, 87, 163, 65, 220, 224, 67, 0, 9, 198,
+			46, 208, 77, 9, 68, 64, 67, 6, 195, 4, 164, 111, 66, 0, 10, 199, 52, 20, 209, 39, 165, 129, 76, 68, 10, 199, 189, 50, 66, 36,
+			244, 201, 44, 69, 0, 7, 196, 88, 19, 84, 76, 66, 7, 196, 86, 245, 122, 204, 67, 7, 196, 221, 84, 212, 236, 65, 9, 198, 67, 100,
+			212, 11, 187, 210, 68, 7, 196, 64, 19, 84, 44, 66, 7, 196, 64, 17, 70, 28, 66, 0, 9, 198, 67, 100, 198, 74, 83, 147, 67, 8,
+			197, 44, 240, 85, 119, 208, 67, 0, 6, 195, 14, 209, 135, 66, 0, 10, 199, 23, 82, 139, 4, 81, 201, 128, 65, 10, 199, 8, 20, 139,
+			25, 48, 143, 48, 65, 0, 7, 196, 79, 2, 20, 88, 66, 7, 196, 149, 16, 83, 244, 67, 7, 196, 244, 156, 19, 240, 68, 12, 201, 24,
+			113, 146, 24, 83, 73, 96, 226, 75, 67, 7, 196, 9, 70, 77, 192, 66, 0, 12, 201, 73, 14, 205, 5, 51, 200, 60, 145, 64, 69, 8,
+			197, 55, 52, 176, 119, 208, 67, 6, 195, 37, 160, 86, 66, 9, 198, 19, 161, 123, 60, 34, 123, 69, 0, 9, 198, 45, 66, 204, 156, 241,
+			64, 67, 0, 10, 199, 92, 155, 231, 60, 95, 79, 20, 70, 10, 199, 44, 20, 1, 92, 148, 198, 76, 68, 0, 7, 196, 61, 48, 143, 40,
+			66, 7, 196, 32, 21, 163, 72, 66, 0, 8, 197, 65, 26, 211, 36, 176, 66, 8, 197, 55, 6, 70, 168, 176, 67, 9, 198, 189, 50, 80,
+			5, 32, 83, 68, 0, 0, 7, 195, 65, 178, 192, 72, 23, 0, 0, 8, 197, 77, 68, 19, 24, 112, 66, 8, 197, 73, 180, 54, 212, 80,
+			67, 8, 197, 64, 100, 147, 36, 176, 66, 9, 198, 24, 178, 9, 73, 60, 23, 67, 0, 9, 198, 54, 98, 15, 48, 98, 128, 67, 0, 6,
+			195, 90, 107, 192, 66, 0, 7, 196, 64, 243, 39, 196, 67, 7, 196, 64, 96, 198, 92, 66, 7, 196, 160, 209, 165, 48, 67, 7, 196, 32,
+			101, 147, 196, 66, 7, 196, 16, 241, 70, 28, 66, 7, 196, 8, 241, 70, 28, 66, 0, 0, 38, 3, 95, 194, 187, 116, 4, 35, 89, 50,
+			35, 15, 72, 84, 4, 39, 37, 50, 35, 15, 47, 34, 37, 4, 13, 81, 35, 55, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 0, 6,
+			195, 98, 187, 64, 66, 10, 199, 72, 52, 91, 89, 137, 198, 44, 67, 6, 195, 74, 107, 192, 66, 0, 7, 195, 66, 146, 0, 72, 23, 6,
+			195, 15, 188, 237, 67, 0, 8, 197, 88, 145, 81, 5, 48, 66, 8, 197, 72, 186, 237, 25, 112, 67, 6, 195, 52, 29, 206, 66, 0, 5,
+			194, 72, 96, 72, 9, 198, 88, 145, 118, 66, 51, 128, 67, 0, 10, 199, 88, 99, 9, 60, 68, 65, 84, 68, 10, 199, 68, 17, 73, 60,
+			68, 65, 84, 68, 10, 199, 47, 161, 73, 60, 68, 65, 84, 68, 10, 199, 44, 20, 9, 77, 72, 206, 76, 68, 10, 199, 17, 22, 205, 60,
+			244, 245, 20, 68, 0, 7, 196, 85, 65, 1, 72, 66, 7, 196, 72, 19, 84, 68, 66, 11, 200, 52, 100, 198, 244, 241, 17, 5, 80, 69,
+			7, 196, 47, 52, 246, 48, 66, 11, 200, 37, 36, 253, 36, 241, 17, 5, 80, 69, 7, 196, 13, 180, 72, 224, 66, 11, 200, 8, 144, 140,
+			36, 241, 17, 5, 80, 68, 0, 6, 195, 68, 149, 250, 65, 12, 201, 67, 97, 139, 76, 241, 79, 18, 127, 64, 68, 8, 197, 11, 101, 14,
+			196, 64, 65, 8, 197, 8, 147, 204, 60, 64, 67, 0, 9, 198, 76, 98, 232, 84, 100, 128, 67, 9, 198, 197, 62, 213, 24, 164, 128, 67,
+			6, 195, 19, 177, 111, 66, 9, 198, 233, 98, 80, 26, 49, 0, 68, 0, 10, 199, 64, 243, 20, 36, 82, 79, 76, 69, 9, 198, 19, 181,
+			14, 20, 149, 13, 66, 0, 7, 196, 99, 1, 6, 48, 66, 7, 196, 79, 179, 9, 44, 66, 7, 196, 72, 97, 70, 84, 66, 9, 198, 68,
+			17, 70, 76, 99, 0, 67, 9, 198, 64, 244, 140, 25, 2, 82, 67, 7, 196, 54, 241, 65, 76, 66, 7, 196, 45, 64, 251, 76, 66, 7,
+			196, 46, 244, 243, 236, 67, 7, 196, 21, 180, 77, 204, 66, 7, 196, 19, 177, 6, 84, 66, 7, 196, 154, 241, 58, 20, 67, 0, 8, 197,
+			86, 227, 204, 60, 64, 67, 8, 197, 66, 145, 76, 60, 64, 66, 8, 197, 20, 96, 134, 140, 224, 67, 8, 197, 180, 179, 214, 60, 192, 67,
+			6, 195, 180, 155, 210, 67, 0, 9, 198, 24, 180, 147, 70, 180, 192, 66, 0, 9, 198, 217, 51, 73, 73, 54, 209, 65, 6, 195, 175, 209,
+			64, 66, 0, 7, 196, 53, 66, 6, 40, 66, 7, 196, 47, 160, 143, 48, 66, 7, 196, 44, 17, 70, 76, 66, 7, 196, 172, 59, 111, 16,
+			67, 0, 6, 195, 72, 111, 0, 66, 8, 197, 66, 52, 147, 187, 16, 67, 8, 197, 140, 36, 65, 23, 208, 67, 8, 197, 45, 68, 139, 81,
+			32, 66, 8, 197, 22, 226, 71, 189, 32, 67, 0, 9, 198, 65, 180, 67, 192, 101, 192, 67, 6, 195, 66, 195, 51, 66, 0, 10, 199, 72,
+			184, 197, 4, 81, 201, 128, 65, 0, 7, 196, 91, 161, 84, 236, 65, 12, 201, 52, 242, 1, 40, 176, 69, 28, 152, 0, 66, 7, 196, 44,
+			20, 147, 244, 66, 0, 8, 197, 77, 27, 210, 87, 176, 66, 8, 197, 76, 243, 59, 189, 32, 67, 8, 197, 73, 69, 73, 45, 32, 66, 9,
+			198, 72, 100, 147, 71, 18, 75, 65, 9, 198, 44, 243, 70, 20, 155, 211, 68, 8, 197, 44, 243, 2, 5, 32, 66, 8, 197, 24, 208, 145,
+			39, 48, 67, 0, 6, 194, 56, 240, 72, 23, 0, 0, 0, 6, 195, 66, 57, 78, 66, 8, 197, 64, 99, 19, 24, 176, 66, 8, 197, 34,
+			110, 176, 36, 176, 66, 8, 197, 189, 50, 80, 60, 80, 67, 0, 6, 195, 55, 17, 123, 66, 9, 198, 183, 163, 65, 20, 114, 96, 66, 0,
+			0, 7, 196, 164, 62, 239, 72, 67, 7, 196, 66, 149, 163, 72, 66, 6, 195, 46, 209, 141, 66, 7, 196, 15, 162, 111, 76, 67, 7, 196,
+			8, 144, 187, 204, 67, 0, 8, 197, 67, 100, 176, 36, 176, 67, 16, 205, 61, 49, 152, 25, 36, 195, 192, 245, 118, 57, 57, 198, 92, 70,
+			8, 197, 52, 148, 147, 36, 176, 66, 8, 197, 55, 18, 77, 80, 208, 65, 8, 197, 52, 105, 76, 36, 176, 67, 8, 197, 168, 62, 137, 80,
+			208, 66, 8, 197, 172, 62, 137, 80, 208, 66, 0, 0, 9, 198, 76, 101, 142, 36, 181, 13, 65, 10, 199, 64, 193, 139, 72, 145, 35, 72,
+			67, 0, 7, 196, 165, 114, 101, 48, 67, 0, 6, 195, 84, 148, 238, 66, 8, 197, 73, 67, 21, 5, 48, 66, 8, 197, 67, 162, 83, 25,
+			48, 67, 9, 198, 16, 100, 165, 66, 113, 151, 66, 8, 197, 13, 16, 66, 25, 112, 66, 8, 197, 153, 59, 17, 5, 48, 67, 0, 9, 198,
+			73, 4, 113, 77, 223, 64, 66, 6, 195, 66, 177, 147, 66, 0, 0, 8, 196, 52, 97, 197, 80, 72, 23, 11, 200, 88, 145, 118, 73, 67,
+			21, 5, 48, 68, 7, 196, 74, 129, 198, 92, 66, 7, 196, 72, 19, 84, 56, 66, 6, 195, 68, 149, 241, 66, 7, 196, 32, 20, 140, 204,
+			66, 0, 8, 197, 73, 176, 145, 5, 48, 66, 9, 198, 73, 64, 147, 217, 2, 75, 67, 9, 198, 65, 18, 89, 24, 193, 151, 67, 0, 14,
+			66, 64, 192, 48, 55, 39, 91, 47, 6, 35, 47, 0, 24, 6, 195, 79, 90, 87, 66, 9, 198, 5, 36, 209, 4, 75, 192, 67, 0, 0,
+			7, 196, 45, 68, 73, 236, 67, 7, 196, 31, 164, 201, 236, 67, 11, 200, 24, 193, 139, 79, 97, 17, 5, 80, 68, 7, 196, 172, 62, 134,
+			48, 67, 0, 8, 197, 60, 34, 88, 4, 160, 67, 8, 197, 47, 210, 85, 24, 160, 67, 0, 9, 198, 92, 149, 123, 10, 52, 192, 65, 9,
+			198, 86, 181, 12, 76, 100, 192, 67, 9, 198, 64, 19, 85, 48, 100, 192, 66, 9, 198, 47, 52, 209, 6, 212, 192, 67, 6, 195, 8, 146,
+			51, 66, 0, 6, 195, 18, 61, 88, 66, 0, 11, 200, 66, 145, 80, 4, 130, 83, 24, 192, 66, 7, 196, 55, 62, 35, 56, 67, 7, 196,
+			7, 190, 35, 56, 68, 0, 8, 197, 67, 213, 198, 140, 224, 67, 8, 197, 58, 193, 65, 80, 224, 65, 8, 197, 32, 20, 147, 60, 160, 66,
+			9, 198, 34, 188, 248, 216, 98, 211, 69, 8, 197, 19, 161, 123, 60, 32, 67, 8, 197, 212, 83, 197, 24, 192, 67, 8, 197, 8, 19, 194,
+			4, 32, 67, 0, 9, 198, 197, 52, 73, 18, 244, 192, 67, 6, 195, 4, 47, 83, 66, 0, 10, 199, 73, 176, 233, 55, 3, 137, 44, 66,
+			0, 7, 196, 74, 129, 61, 196, 67, 7, 196, 60, 37, 143, 20, 66, 7, 196, 140, 142, 134, 76, 67, 7, 196, 11, 169, 198, 92, 65, 0,
+			6, 195, 57, 251, 210, 66, 8, 197, 52, 98, 44, 233, 0, 67, 8, 197, 46, 224, 193, 79, 176, 65, 8, 197, 17, 18, 77, 119, 208, 66,
+			9, 198, 212, 163, 137, 44, 198, 203, 67, 8, 197, 8, 99, 39, 141, 32, 67, 0, 9, 198, 72, 214, 209, 20, 97, 192, 66, 9, 198, 53,
+			16, 72, 156, 101, 192, 65, 9, 198, 140, 225, 68, 68, 21, 64, 66, 9, 198, 46, 210, 68, 68, 21, 64, 67, 9, 198, 13, 177, 12, 236,
+			241, 64, 67, 0, 10, 199, 17, 16, 83, 37, 38, 9, 128, 65, 0, 7, 196, 52, 97, 70, 92, 66, 7, 196, 18, 61, 105, 32, 67, 0,
+			6, 195, 84, 29, 206, 66, 8, 197, 36, 212, 20, 49, 32, 66, 8, 197, 4, 36, 151, 25, 32, 66, 0, 5, 194, 72, 144, 72, 9, 198,
+			72, 180, 73, 64, 101, 192, 66, 9, 198, 64, 148, 207, 52, 101, 192, 65, 6, 195, 67, 169, 175, 67, 9, 198, 16, 16, 182, 12, 101, 192,
+			65, 9, 198, 13, 16, 71, 180, 101, 192, 67, 0, 6, 195, 149, 53, 12, 66, 9, 198, 197, 62, 228, 92, 156, 237, 70, 0, 7, 196, 88,
+			243, 79, 76, 66, 7, 196, 88, 147, 73, 44, 66, 7, 196, 84, 20, 148, 48, 66, 7, 196, 221, 3, 227, 56, 67, 6, 195, 165, 53, 25,
+			66, 7, 196, 61, 50, 9, 12, 65, 0, 8, 197, 64, 22, 109, 108, 176, 67, 0, 9, 198, 84, 242, 187, 15, 178, 192, 65, 0, 10, 199,
+			67, 195, 211, 25, 99, 137, 44, 68, 0, 11, 200, 65, 180, 117, 53, 182, 48, 36, 176, 69, 7, 196, 67, 212, 236, 180, 67, 6, 195, 50,
+			197, 13, 66, 7, 196, 44, 20, 137, 236, 67, 0, 8, 197, 84, 197, 61, 36, 80, 67, 8, 197, 52, 101, 140, 24, 208, 66, 8, 197, 45,
+			68, 89, 80, 208, 66, 8, 197, 47, 160, 77, 86, 224, 67, 0, 6, 195, 47, 209, 115, 66, 6, 195, 37, 161, 151, 66, 0, 6, 195, 79,
+			203, 192, 66, 9, 198, 73, 67, 21, 4, 210, 69, 67, 10, 199, 68, 17, 73, 179, 53, 251, 76, 69, 10, 199, 64, 20, 209, 39, 165, 129,
+			76, 68, 6, 195, 47, 219, 64, 66, 0, 7, 196, 64, 98, 211, 196, 66, 7, 196, 212, 94, 1, 20, 67, 0, 8, 197, 65, 67, 139, 79,
+			192, 66, 8, 197, 56, 144, 198, 51, 192, 67, 8, 197, 52, 21, 73, 61, 48, 67, 8, 197, 25, 2, 83, 25, 48, 67, 0, 6, 195, 44,
+			246, 47, 66, 9, 198, 46, 227, 196, 68, 19, 64, 67, 9, 198, 193, 51, 205, 60, 195, 196, 68, 0, 6, 195, 87, 27, 64, 66, 10, 199,
+			54, 242, 85, 25, 41, 78, 76, 68, 0, 11, 200, 80, 226, 67, 237, 34, 83, 25, 48, 69, 11, 200, 73, 1, 151, 38, 210, 83, 25, 48,
+			69, 6, 195, 46, 226, 77, 66, 0, 8, 197, 88, 18, 163, 41, 80, 66, 9, 198, 52, 20, 139, 232, 198, 203, 67, 8, 197, 24, 194, 75,
+			75, 192, 67, 8, 197, 20, 144, 82, 47, 128, 67, 0, 9, 198, 36, 36, 73, 100, 147, 64, 67, 0, 6, 195, 46, 214, 208, 66, 0, 7,
+			196, 76, 99, 70, 48, 66, 7, 196, 64, 241, 54, 52, 66, 7, 196, 67, 171, 70, 48, 67, 7, 196, 64, 20, 20, 68, 66, 6, 195, 55,
+			23, 125, 66, 0, 0, 9, 198, 68, 146, 207, 100, 100, 192, 67, 9, 198, 141, 28, 68, 61, 92, 192, 68, 9, 198, 44, 25, 80, 80, 196,
+			192, 67, 0, 0, 7, 196, 96, 100, 9, 44, 66, 7, 196, 148, 180, 201, 44, 66, 7, 196, 47, 53, 251, 76, 66, 6, 195, 46, 214, 213,
+			66, 7, 196, 8, 98, 193, 72, 66, 7, 196, 153, 59, 35, 12, 67, 0, 8, 197, 45, 18, 82, 148, 192, 66, 0, 9, 198, 72, 19, 79,
+			48, 100, 192, 67, 9, 198, 60, 211, 137, 9, 68, 128, 65, 9, 198, 52, 146, 246, 128, 137, 252, 69, 6, 195, 19, 171, 211, 66, 0, 6,
+			195, 98, 182, 204, 66, 10, 199, 75, 180, 201, 84, 146, 193, 76, 68, 10, 199, 72, 98, 212, 56, 83, 205, 236, 68, 10, 199, 67, 99, 73,
+			100, 204, 9, 44, 66, 9, 198, 44, 243, 15, 21, 21, 13, 67, 10, 199, 44, 243, 6, 45, 114, 115, 236, 69, 10, 199, 24, 180, 151, 193,
+			52, 73, 44, 67, 0, 7, 196, 67, 2, 238, 236, 65, 6, 195, 144, 82, 61, 66, 6, 195, 44, 243, 113, 66, 0, 9, 198, 77, 27, 210,
+			67, 171, 211, 67, 6, 195, 44, 100, 186, 65, 0, 9, 198, 60, 211, 196, 68, 21, 64, 67, 9, 198, 52, 105, 76, 60, 145, 64, 68, 9,
+			198, 8, 147, 196, 68, 21, 64, 67, 0, 10, 199, 44, 226, 68, 60, 240, 141, 192, 68, 6, 195, 188, 241, 64, 66, 0, 7, 196, 64, 146,
+			198, 76, 66, 7, 196, 197, 62, 198, 72, 67, 7, 196, 10, 208, 82, 76, 66, 0, 9, 198, 85, 67, 139, 92, 156, 251, 68, 8, 197, 79,
+			180, 48, 79, 16, 67, 8, 197, 64, 241, 78, 61, 32, 66, 8, 197, 67, 162, 198, 79, 16, 67, 8, 197, 67, 160, 69, 177, 32, 67, 12,
+			201, 48, 98, 210, 36, 179, 196, 68, 21, 64, 68, 8, 197, 9, 179, 4, 235, 16, 65, 0, 5, 194, 76, 144, 72, 5, 194, 80, 112, 72,
+			6, 194, 64, 240, 72, 23, 9, 198, 5, 36, 251, 60, 145, 64, 68, 0, 9, 198, 22, 209, 139, 227, 109, 69, 69, 0, 7, 196, 81, 140,
+			9, 44, 67, 7, 196, 149, 2, 87, 236, 67, 7, 196, 165, 94, 193, 76, 67, 7, 196, 66, 50, 193, 76, 66, 6, 195, 67, 165, 237, 66,
+			7, 196, 47, 53, 251, 56, 66, 0, 8, 197, 85, 179, 133, 108, 176, 66, 8, 197, 77, 245, 76, 24, 176, 66, 8, 197, 77, 180, 77, 108,
+			176, 66, 8, 197, 65, 18, 75, 140, 80, 66, 8, 197, 66, 126, 240, 36, 176, 66, 9, 198, 44, 193, 144, 76, 243, 111, 67, 8, 197, 180,
+			81, 150, 36, 80, 67, 0, 0, 6, 195, 87, 14, 192, 66, 0, 7, 196, 66, 107, 137, 204, 68, 7, 196, 53, 177, 105, 92, 66, 6, 195,
+			47, 209, 141, 66, 11, 200, 13, 177, 12, 27, 81, 125, 60, 80, 69, 7, 196, 212, 94, 15, 40, 67, 7, 196, 8, 99, 44, 244, 67, 0,
+			26, 3, 95, 208, 142, 39, 71, 34, 4, 35, 47, 36, 50, 15, 40, 72, 37, 84, 6, 37, 47, 36, 55, 36, 50, 0, 7, 2, 95, 3,
+			84, 13, 0, 12, 201, 99, 179, 143, 11, 212, 129, 20, 114, 96, 67, 8, 197, 47, 49, 131, 108, 80, 67, 9, 198, 21, 64, 140, 36, 176,
+			83, 67, 0, 28, 3, 95, 209, 151, 39, 71, 34, 4, 35, 47, 36, 50, 15, 84, 13, 48, 34, 39, 89, 6, 37, 47, 36, 55, 36, 50,
+			0, 0, 6, 2, 95, 1, 35, 0, 10, 199, 52, 97, 79, 20, 240, 137, 12, 67, 6, 195, 190, 211, 196, 67, 0, 6, 2, 95, 6, 36,
+			0, 11, 200, 72, 49, 147, 157, 180, 83, 24, 112, 68, 6, 195, 166, 162, 61, 67, 7, 196, 56, 243, 65, 20, 66, 7, 196, 10, 242, 198,
+			76, 66, 0, 8, 197, 89, 64, 166, 25, 112, 67, 6, 195, 87, 17, 146, 66, 8, 197, 60, 37, 131, 5, 48, 66, 0, 12, 3, 95, 209,
+			147, 83, 55, 39, 34, 37, 50, 0, 7, 2, 95, 4, 81, 13, 0, 9, 198, 72, 147, 80, 76, 243, 64, 66, 6, 195, 46, 210, 239, 66,
+			9, 198, 19, 17, 139, 60, 195, 196, 68, 9, 198, 168, 81, 143, 86, 227, 64, 68, 6, 195, 8, 145, 115, 66, 0, 6, 195, 149, 27, 192,
+			66, 6, 195, 144, 195, 196, 66, 6, 195, 55, 31, 64, 66, 0, 8, 196, 73, 13, 147, 36, 72, 23, 7, 196, 79, 99, 6, 40, 66, 7,
+			196, 72, 20, 20, 56, 66, 0, 14, 2, 95, 10, 6, 37, 49, 34, 4, 35, 47, 49, 39, 0, 8, 197, 87, 178, 66, 61, 48, 65, 8,
+			197, 67, 98, 212, 217, 16, 67, 8, 197, 65, 16, 89, 25, 112, 66, 8, 197, 67, 160, 80, 25, 48, 67, 8, 197, 44, 24, 21, 25, 48,
+			67, 8, 197, 180, 19, 113, 81, 48, 68, 0, 6, 2, 95, 9, 37, 0, 9, 198, 88, 245, 77, 233, 155, 64, 65, 9, 198, 84, 146, 9,
+			60, 195, 196, 68, 9, 198, 244, 226, 83, 60, 195, 196, 68, 0, 6, 195, 11, 2, 49, 66, 0, 0, 7, 196, 75, 17, 118, 52, 66, 7,
+			196, 45, 64, 137, 44, 66, 0, 8, 197, 76, 99, 204, 60, 64, 67, 0, 9, 198, 45, 44, 15, 84, 240, 128, 67, 9, 198, 20, 99, 9,
+			76, 99, 0, 65, 0, 6, 195, 144, 76, 192, 66, 6, 195, 168, 140, 192, 66, 0, 7, 2, 95, 18, 89, 13, 0, 11, 200, 96, 100, 195,
+			109, 20, 213, 198, 208, 68, 7, 196, 66, 147, 73, 236, 67, 7, 196, 5, 81, 139, 76, 66, 0, 8, 197, 52, 245, 137, 46, 240, 67, 0,
+			9, 198, 25, 34, 201, 52, 244, 128, 67, 9, 198, 20, 148, 252, 4, 208, 128, 67, 0, 10, 199, 84, 193, 132, 52, 20, 201, 44, 67, 10,
+			199, 64, 241, 80, 245, 70, 9, 44, 65, 9, 198, 20, 98, 15, 23, 219, 211, 68, 0, 7, 196, 79, 180, 201, 64, 66, 7, 196, 44, 194,
+			82, 232, 65, 7, 196, 24, 195, 65, 32, 66, 0, 9, 198, 73, 180, 87, 24, 49, 133, 67, 0, 6, 2, 95, 20, 40, 0, 9, 198, 5,
+			3, 210, 79, 101, 64, 67, 0, 10, 199, 88, 193, 130, 60, 137, 143, 20, 68, 10, 199, 72, 49, 147, 60, 82, 79, 20, 68, 0, 7, 196,
+			92, 146, 204, 204, 66, 6, 195, 28, 100, 243, 66, 7, 196, 11, 2, 15, 48, 66, 0, 8, 197, 68, 17, 73, 81, 32, 65, 6, 195, 19,
+			179, 202, 66, 0, 9, 198, 52, 97, 1, 91, 181, 192, 67, 0, 6, 195, 55, 162, 64, 72, 9, 198, 76, 101, 142, 177, 16, 83, 67, 9,
+			198, 72, 49, 147, 48, 243, 123, 67, 9, 198, 140, 164, 205, 61, 50, 67, 65, 0, 7, 196, 74, 226, 75, 204, 67, 7, 196, 15, 160, 250,
+			196, 65, 7, 196, 5, 37, 109, 76, 66, 7, 196, 180, 146, 58, 196, 68, 0, 8, 197, 44, 243, 15, 36, 80, 67, 8, 197, 25, 129, 141,
+			36, 176, 67, 0, 9, 198, 73, 62, 1, 20, 114, 96, 65, 9, 198, 64, 246, 129, 20, 114, 96, 65, 9, 198, 53, 69, 101, 20, 114, 96,
+			65, 9, 198, 33, 176, 143, 8, 243, 0, 67, 9, 198, 31, 180, 195, 192, 146, 192, 65, 0, 0, 13, 2, 95, 34, 49, 35, 84, 6, 37,
+			76, 49, 37, 0, 7, 196, 87, 99, 147, 204, 66, 6, 195, 51, 194, 75, 66, 7, 196, 16, 96, 196, 240, 66, 7, 196, 14, 222, 201, 188,
+			68, 6, 195, 8, 25, 83, 66, 6, 195, 10, 242, 251, 66, 9, 198, 5, 36, 246, 48, 241, 0, 67, 0, 16, 2, 95, 33, 40, 72, 37,
+			84, 6, 37, 47, 36, 55, 36, 50, 0, 8, 197, 73, 244, 83, 80, 176, 66, 12, 201, 66, 145, 89, 25, 36, 195, 192, 146, 192, 66, 9,
+			198, 66, 244, 207, 17, 16, 85, 67, 8, 197, 49, 73, 16, 232, 176, 65, 0, 9, 198, 86, 196, 147, 236, 158, 192, 68, 6, 195, 164, 191,
+			69, 66, 9, 198, 44, 149, 99, 20, 114, 96, 65, 0, 14, 2, 95, 39, 35, 48, 39, 89, 47, 34, 6, 39, 83, 0, 10, 199, 74, 48,
+			224, 56, 245, 79, 8, 68, 10, 199, 72, 99, 6, 45, 114, 115, 236, 69, 6, 195, 50, 203, 64, 66, 10, 199, 21, 180, 117, 20, 240, 137,
+			12, 67, 6, 195, 10, 251, 192, 66, 0, 15, 2, 95, 38, 35, 65, 48, 36, 34, 89, 6, 35, 50, 47, 0, 6, 195, 56, 150, 111, 66,
+			7, 196, 11, 160, 148, 56, 66, 0, 8, 197, 73, 67, 37, 145, 48, 67, 8, 197, 74, 226, 75, 5, 48, 67, 8, 197, 67, 100, 198, 73,
+			48, 66, 8, 197, 67, 160, 89, 81, 48, 67, 0, 6, 195, 140, 133, 17, 66, 9, 198, 45, 22, 196, 60, 143, 64, 67, 0, 6, 195, 46,
+			107, 64, 66, 0, 7, 196, 96, 147, 89, 240, 66, 11, 200, 47, 52, 209, 5, 80, 68, 61, 48, 68, 7, 196, 25, 145, 140, 204, 67, 7,
+			196, 16, 235, 143, 96, 66, 0, 18, 2, 95, 41, 116, 4, 35, 89, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 8, 197, 89, 16, 66,
+			165, 112, 66, 0, 18, 2, 95, 40, 55, 38, 6, 35, 84, 35, 15, 89, 49, 6, 39, 71, 35, 0, 9, 198, 87, 212, 141, 4, 127, 64,
+			67, 9, 198, 24, 180, 147, 236, 159, 64, 68, 9, 198, 5, 36, 246, 56, 243, 64, 67, 0, 0, 11, 2, 95, 46, 47, 6, 39, 76, 49,
+			35, 0, 7, 196, 92, 146, 204, 224, 66, 7, 196, 88, 244, 198, 48, 66, 6, 195, 75, 206, 0, 66, 7, 196, 70, 181, 17, 72, 66, 7,
+			196, 52, 101, 148, 68, 66, 0, 10, 2, 95, 45, 47, 37, 34, 4, 36, 0, 8, 197, 160, 189, 140, 60, 64, 67, 8, 197, 8, 20, 134,
+			40, 224, 66, 0, 14, 2, 95, 44, 88, 35, 48, 36, 47, 6, 35, 57, 35, 0, 9, 198, 48, 98, 210, 36, 188, 192, 67, 9, 198, 5,
+			52, 73, 9, 68, 192, 67, 9, 198, 188, 67, 15, 84, 240, 128, 67, 0, 9, 2, 95, 51, 47, 34, 6, 37, 0, 6, 195, 34, 188, 192,
+			66, 6, 195, 30, 220, 192, 66, 10, 199, 17, 27, 197, 88, 244, 198, 48, 67, 0, 9, 2, 95, 50, 72, 84, 6, 36, 0, 7, 196, 64,
+			100, 147, 184, 66, 9, 198, 45, 16, 82, 59, 130, 82, 67, 7, 196, 46, 242, 66, 180, 67, 7, 196, 32, 19, 65, 88, 66, 7, 196, 24,
+			208, 74, 48, 66, 7, 196, 8, 241, 212, 68, 66, 0, 10, 2, 95, 49, 36, 72, 50, 6, 39, 0, 8, 197, 81, 99, 194, 60, 192, 67,
+			8, 197, 64, 148, 139, 80, 224, 66, 8, 197, 8, 20, 147, 80, 224, 66, 0, 10, 2, 95, 48, 50, 6, 40, 64, 35, 0, 6, 195, 64,
+			99, 49, 66, 9, 198, 44, 25, 81, 32, 148, 128, 65, 0, 11, 2, 95, 55, 89, 6, 36, 72, 36, 65, 0, 9, 198, 73, 99, 227, 73,
+			50, 75, 67, 6, 195, 55, 171, 48, 67, 0, 10, 2, 95, 54, 91, 6, 36, 89, 47, 0, 7, 196, 76, 147, 80, 188, 66, 7, 196, 72,
+			19, 70, 92, 66, 7, 196, 66, 52, 198, 28, 66, 7, 196, 197, 62, 195, 180, 67, 7, 196, 172, 59, 230, 76, 67, 0, 9, 2, 95, 53,
+			48, 6, 36, 47, 0, 9, 198, 76, 96, 83, 216, 49, 133, 68, 8, 197, 68, 18, 4, 159, 208, 65, 8, 197, 64, 243, 9, 19, 48, 67,
+			8, 197, 21, 179, 4, 81, 128, 66, 0, 12, 2, 95, 52, 76, 6, 36, 47, 37, 34, 37, 0, 0, 23, 2, 95, 59, 47, 4, 39, 76,
+			49, 35, 15, 37, 15, 88, 35, 48, 36, 47, 6, 35, 57, 35, 0, 10, 199, 61, 89, 76, 52, 243, 15, 16, 68, 0, 15, 2, 95, 58,
+			72, 84, 40, 36, 47, 6, 39, 76, 37, 36, 0, 11, 200, 28, 99, 6, 32, 240, 134, 79, 48, 69, 0, 11, 2, 95, 57, 72, 6, 36,
+			84, 36, 47, 0, 8, 197, 66, 149, 123, 189, 32, 67, 8, 197, 67, 2, 87, 187, 16, 68, 8, 197, 66, 242, 75, 119, 208, 67, 8, 197,
+			44, 243, 80, 165, 32, 66, 8, 197, 14, 49, 15, 55, 176, 67, 0, 10, 2, 95, 56, 6, 39, 89, 36, 65, 0, 6, 195, 8, 22, 129,
+			66, 0, 18, 2, 95, 63, 84, 13, 48, 34, 39, 89, 6, 37, 47, 36, 55, 36, 50, 0, 10, 199, 52, 193, 139, 60, 137, 143, 20, 68,
+			10, 199, 8, 22, 73, 8, 242, 20, 44, 68, 0, 16, 2, 95, 62, 48, 39, 15, 81, 39, 55, 38, 6, 35, 65, 39, 0, 7, 196, 164,
+			228, 201, 236, 67, 6, 195, 67, 192, 83, 66, 7, 196, 176, 18, 9, 204, 68, 7, 196, 44, 243, 65, 76, 66, 7, 196, 44, 241, 70, 196,
+			67, 9, 198, 36, 81, 143, 48, 241, 0, 68, 7, 196, 20, 243, 65, 76, 66, 0, 6, 195, 78, 197, 0, 66, 8, 197, 65, 18, 72, 144,
+			176, 65, 8, 197, 47, 98, 207, 22, 224, 67, 8, 197, 17, 16, 66, 24, 112, 66, 8, 197, 180, 187, 79, 36, 80, 68, 0, 14, 2, 95,
+			60, 48, 39, 15, 65, 6, 35, 55, 49, 39, 0, 6, 195, 79, 188, 0, 66, 9, 198, 32, 99, 48, 97, 66, 192, 67, 0, 10, 199, 44,
+			243, 80, 192, 82, 84, 52, 66, 6, 195, 23, 30, 128, 65, 0, 11, 200, 24, 193, 139, 79, 100, 54, 212, 80, 69, 0, 9, 198, 95, 18,
+			207, 17, 16, 85, 67, 9, 198, 73, 124, 15, 17, 16, 85, 67, 9, 198, 73, 60, 15, 17, 16, 85, 67, 9, 198, 64, 100, 147, 37, 114,
+			69, 67, 0, 0, 6, 195, 212, 187, 64, 66, 0, 7, 196, 148, 165, 84, 56, 66, 6, 195, 72, 149, 115, 66, 7, 196, 52, 146, 246, 8,
+			66, 7, 196, 49, 67, 113, 180, 67, 7, 196, 48, 100, 198, 28, 66, 7, 196, 46, 52, 157, 244, 66, 7, 196, 5, 51, 6, 76, 66, 7,
+			196, 175, 209, 93, 244, 67, 0, 8, 197, 165, 36, 6, 45, 48, 66, 8, 197, 46, 163, 147, 25, 48, 66, 8, 197, 5, 36, 6, 45, 48,
+			66, 0, 0, 10, 199, 77, 16, 80, 24, 131, 201, 20, 68, 6, 195, 148, 43, 192, 66, 6, 195, 144, 75, 192, 66, 6, 195, 48, 97, 48,
+			66, 9, 198, 44, 20, 134, 76, 245, 115, 68, 0, 7, 196, 67, 9, 68, 204, 67, 0, 8, 197, 72, 191, 66, 81, 48, 66, 0, 11, 66,
+			80, 192, 40, 55, 37, 117, 35, 0, 24, 9, 198, 19, 179, 111, 61, 91, 128, 68, 0, 9, 4, 95, 226, 128, 161, 21, 0, 10, 6, 195,
+			4, 64, 64, 66, 0, 9, 4, 95, 226, 128, 160, 21, 0, 10, 7, 196, 80, 226, 119, 56, 67, 7, 196, 64, 241, 66, 244, 66, 7, 196,
+			52, 244, 198, 48, 66, 7, 196, 44, 244, 198, 48, 66, 7, 196, 44, 19, 73, 204, 67, 6, 195, 46, 107, 123, 67, 9, 198, 25, 2, 83,
+			68, 21, 174, 68, 7, 196, 20, 100, 175, 76, 66, 0, 8, 197, 74, 83, 137, 60, 192, 67, 0, 18, 4, 95, 226, 128, 166, 65, 50, 39,
+			81, 39, 47, 6, 39, 76, 37, 36, 0, 9, 198, 81, 4, 102, 37, 49, 140, 66, 9, 198, 66, 145, 73, 44, 20, 192, 67, 9, 198, 20,
+			99, 108, 68, 20, 192, 67, 9, 198, 8, 102, 65, 52, 99, 0, 67, 6, 195, 234, 241, 253, 67, 9, 198, 189, 50, 83, 177, 44, 64, 68,
+			0, 10, 199, 161, 34, 248, 61, 35, 137, 44, 66, 10, 199, 36, 132, 17, 152, 148, 198, 48, 66, 6, 195, 233, 156, 64, 66, 0, 7, 196,
+			76, 244, 198, 52, 66, 7, 196, 64, 100, 198, 48, 66, 6, 195, 47, 97, 135, 66, 7, 196, 44, 19, 204, 196, 67, 6, 195, 5, 34, 251,
+			66, 0, 8, 197, 88, 147, 73, 46, 208, 67, 8, 197, 64, 241, 77, 60, 192, 66, 8, 197, 55, 178, 69, 38, 240, 68, 12, 201, 13, 177,
+			12, 25, 98, 69, 68, 20, 192, 68, 0, 9, 198, 68, 18, 3, 68, 20, 192, 66, 13, 202, 64, 241, 80, 164, 84, 134, 20, 20, 198, 48,
+			65, 9, 198, 197, 91, 147, 68, 20, 192, 67, 0, 6, 195, 96, 98, 72, 66, 0, 7, 196, 65, 179, 40, 28, 66, 7, 196, 52, 146, 246,
+			56, 66, 7, 196, 52, 100, 198, 28, 66, 7, 196, 8, 99, 79, 48, 66, 7, 196, 232, 16, 137, 128, 66, 0, 8, 197, 147, 97, 120, 37,
+			32, 68, 8, 197, 52, 146, 246, 87, 48, 67, 8, 197, 188, 20, 236, 75, 16, 68, 0, 0, 7, 195, 74, 145, 64, 72, 23, 29, 2, 95,
+			91, 55, 38, 4, 35, 84, 35, 15, 49, 84, 35, 72, 34, 4, 35, 47, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 9, 198, 72, 149,
+			110, 37, 50, 75, 68, 6, 195, 173, 114, 72, 66, 0, 6, 195, 87, 160, 115, 67, 11, 200, 10, 209, 147, 52, 18, 146, 79, 208, 66, 0,
+			18, 4, 95, 226, 128, 147, 49, 4, 13, 89, 39, 15, 47, 37, 34, 6, 36, 0, 9, 198, 52, 20, 140, 227, 109, 69, 68, 8, 197, 21,
+			64, 140, 119, 208, 66, 8, 197, 175, 100, 147, 37, 96, 67, 8, 197, 153, 51, 194, 81, 32, 67, 0, 13, 202, 65, 34, 86, 61, 82, 72,
+			36, 243, 15, 16, 70, 0, 18, 2, 95, 95, 72, 4, 39, 55, 50, 35, 15, 76, 36, 34, 47, 6, 35, 0, 10, 199, 164, 228, 196, 192,
+			243, 15, 16, 68, 0, 6, 195, 130, 81, 47, 67, 6, 195, 34, 210, 67, 65, 0, 29, 2, 95, 93, 116, 4, 35, 89, 50, 35, 15, 49,
+			84, 35, 72, 34, 4, 35, 47, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 8, 197, 8, 249, 78, 36, 176, 67, 0, 9, 198, 78, 146,
+			3, 192, 146, 192, 65, 0, 9, 198, 77, 244, 75, 60, 18, 0, 67, 6, 195, 150, 54, 64, 66, 6, 195, 160, 86, 196, 66, 9, 198, 8,
+			148, 148, 49, 80, 83, 67, 0, 19, 4, 95, 226, 128, 148, 72, 4, 13, 55, 81, 39, 15, 47, 37, 34, 6, 36, 0, 9, 198, 91, 99,
+			143, 48, 241, 0, 67, 7, 196, 64, 100, 18, 196, 66, 7, 196, 60, 36, 73, 12, 65, 7, 196, 60, 36, 65, 76, 66, 7, 196, 32, 21,
+			186, 196, 67, 9, 198, 9, 180, 72, 204, 241, 0, 67, 0, 8, 197, 65, 18, 72, 36, 48, 65, 8, 197, 66, 148, 147, 36, 112, 66, 8,
+			197, 8, 99, 19, 108, 176, 66, 8, 197, 4, 36, 148, 68, 80, 66, 0, 9, 2, 95, 96, 81, 34, 35, 83, 0, 9, 198, 77, 68, 205,
+			188, 146, 192, 65, 9, 198, 23, 130, 82, 56, 146, 192, 65, 0, 10, 199, 72, 191, 79, 73, 51, 137, 44, 65, 10, 199, 65, 16, 66, 108,
+			193, 58, 196, 66, 10, 199, 46, 148, 15, 73, 51, 137, 44, 65, 6, 195, 47, 219, 192, 66, 0, 6, 195, 88, 16, 187, 66, 7, 196, 64,
+			243, 80, 204, 66, 6, 195, 145, 101, 19, 66, 0, 8, 197, 85, 68, 75, 25, 48, 66, 8, 197, 67, 178, 82, 47, 128, 67, 8, 197, 153,
+			51, 210, 79, 128, 67, 0, 6, 195, 97, 64, 237, 66, 6, 195, 64, 102, 45, 66, 6, 195, 55, 166, 109, 66, 6, 195, 17, 72, 217, 66,
+			0, 10, 199, 73, 1, 139, 79, 100, 139, 224, 67, 9, 198, 64, 100, 6, 48, 226, 75, 67, 10, 199, 24, 193, 139, 79, 100, 139, 224, 68,
+			9, 198, 23, 48, 66, 244, 226, 75, 66, 0, 7, 196, 48, 146, 221, 244, 66, 7, 196, 44, 20, 198, 76, 66, 7, 196, 10, 196, 157, 244,
+			66, 0, 8, 197, 73, 58, 76, 25, 112, 66, 8, 197, 72, 193, 144, 25, 112, 66, 8, 197, 68, 18, 19, 213, 16, 66, 8, 197, 8, 241,
+			1, 149, 144, 67, 8, 197, 188, 98, 197, 61, 48, 67, 0, 6, 194, 96, 96, 72, 23, 9, 198, 68, 17, 73, 61, 111, 64, 68, 9, 198,
+			47, 52, 246, 49, 223, 64, 67, 0, 10, 199, 161, 68, 209, 180, 148, 198, 76, 69, 0, 7, 196, 84, 100, 147, 204, 66, 7, 196, 47, 49,
+			41, 72, 66, 7, 196, 44, 147, 73, 204, 67, 6, 195, 4, 74, 23, 66, 0, 12, 201, 64, 241, 84, 65, 25, 137, 76, 99, 0, 65, 8,
+			197, 18, 54, 65, 148, 160, 67, 9, 198, 153, 51, 205, 205, 55, 125, 68, 0, 6, 195, 14, 241, 109, 66, 9, 198, 5, 36, 246, 144, 52,
+			192, 67, 0, 6, 195, 67, 188, 192, 66, 9, 198, 52, 244, 207, 77, 18, 115, 68, 9, 198, 44, 243, 66, 196, 98, 51, 68, 0, 7, 196,
+			89, 179, 2, 176, 65, 7, 196, 175, 96, 129, 76, 67, 0, 8, 197, 68, 18, 2, 60, 160, 66, 8, 197, 10, 241, 123, 60, 192, 67, 0,
+			9, 198, 20, 100, 147, 184, 20, 192, 67, 9, 198, 9, 253, 139, 68, 20, 192, 67, 9, 198, 233, 98, 83, 24, 180, 192, 67, 0, 6, 195,
+			86, 191, 0, 66, 10, 199, 72, 198, 206, 96, 240, 145, 188, 67, 0, 7, 196, 66, 52, 198, 92, 66, 0, 8, 197, 77, 180, 66, 81, 96,
+			66, 8, 197, 46, 48, 198, 75, 16, 67, 0, 6, 195, 148, 182, 205, 66, 0, 32, 2, 95, 123, 55, 38, 4, 35, 84, 35, 15, 84, 13,
+			55, 50, 39, 4, 39, 71, 34, 35, 88, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 9, 198, 36, 132, 207, 96, 226, 75, 65, 0, 7,
+			196, 78, 153, 7, 244, 67, 6, 195, 67, 52, 243, 66, 7, 196, 224, 98, 212, 56, 67, 9, 198, 55, 162, 198, 79, 17, 0, 65, 0, 8,
+			197, 47, 160, 66, 199, 176, 68, 8, 197, 20, 243, 79, 87, 48, 67, 0, 6, 195, 233, 44, 0, 66, 0, 6, 195, 46, 240, 80, 66, 6,
+			195, 184, 146, 192, 66, 0, 14, 2, 95, 126, 84, 13, 55, 50, 6, 37, 76, 49, 35, 0, 11, 200, 24, 193, 139, 79, 108, 71, 195, 176,
+			70, 9, 198, 233, 97, 143, 48, 241, 0, 68, 0, 32, 2, 95, 125, 116, 4, 35, 89, 50, 35, 15, 84, 13, 55, 50, 39, 4, 39, 71,
+			34, 35, 88, 50, 35, 15, 89, 49, 6, 39, 71, 35, 0, 8, 197, 88, 243, 59, 36, 176, 67, 0, 23, 2, 95, 124, 84, 36, 34, 47,
+			37, 49, 4, 35, 55, 50, 35, 15, 76, 36, 34, 47, 6, 35, 0, 6, 195, 84, 197, 61, 66, 6, 195, 75, 7, 125, 66, 9, 198, 67,
+			171, 73, 76, 146, 192, 68, 9, 198, 54, 189, 134, 32, 146, 192, 68, 9, 198, 32, 16, 166, 37, 49, 140, 66, 12, 201, 24, 193, 139, 79,
+			96, 68, 164, 64, 83, 70, 0, 6, 195, 80, 94, 128, 65, 10, 199, 77, 18, 84, 54, 164, 65, 76, 68, 0, 8, 196, 66, 196, 65, 40,
+			72, 23, 7, 196, 66, 116, 65, 76, 66, 6, 195, 61, 113, 147, 66, 7, 196, 52, 147, 111, 72, 66, 7, 196, 52, 19, 84, 48, 66, 7,
+			196, 44, 17, 111, 72, 66, 0, 11, 5, 95, 48, 97, 110, 100, 10, 2, 37, 0, 0, 9, 198, 64, 100, 147, 56, 146, 192, 66, 9, 198,
+			145, 10, 88, 56, 146, 192, 65, 9, 198, 20, 198, 199, 56, 146, 192, 66, 0, 10, 199, 72, 147, 80, 60, 130, 84, 52, 66, 9, 198, 67,
+			98, 248, 74, 242, 75, 66, 9, 198, 64, 244, 140, 25, 35, 39, 67, 10, 199, 34, 147, 15, 73, 51, 137, 44, 65, 0, 7, 196, 81, 36,
+			6, 88, 66, 7, 196, 148, 229, 221, 244, 66, 11, 200, 68, 20, 147, 192, 145, 131, 108, 80, 69, 7, 196, 48, 100, 198, 92, 66, 7, 196,
+			47, 212, 134, 76, 66, 7, 196, 44, 19, 91, 100, 66, 7, 196, 22, 148, 157, 244, 66, 7, 196, 9, 23, 232, 76, 66, 7, 196, 11, 172,
+			198, 76, 67, 0, 11, 200, 72, 209, 147, 44, 17, 71, 38, 0, 65, 8, 197, 75, 186, 147, 81, 48, 67, 12, 201, 68, 16, 143, 76, 245,
+			143, 48, 146, 192, 69, 12, 201, 64, 241, 80, 60, 194, 231, 56, 146, 192, 65, 0, 8, 197, 142, 49, 71, 38, 0, 65, 9, 198, 32, 19,
+			73, 73, 179, 0, 65, 0, 9, 198, 65, 177, 80, 108, 86, 203, 67, 9, 198, 65, 25, 134, 20, 226, 75, 65, 0, 7, 196, 61, 84, 134,
+			76, 66, 6, 195, 51, 218, 19, 66, 7, 196, 47, 161, 113, 180, 67, 7, 196, 16, 194, 68, 188, 66, 0, 11, 200, 66, 144, 209, 6, 81,
+			71, 38, 0, 66, 8, 197, 53, 68, 139, 25, 48, 66, 0, 9, 198, 88, 99, 9, 61, 34, 248, 68, 0, 10, 199, 88, 98, 211, 60, 68,
+			65, 84, 67, 0, 7, 196, 47, 209, 163, 76, 67, 7, 196, 36, 212, 61, 76, 66, 7, 196, 16, 96, 233, 44, 66, 11, 200, 189, 50, 69,
+			25, 10, 82, 189, 48, 69, 0, 8, 197, 61, 51, 204, 60, 64, 67, 8, 197, 246, 241, 20, 148, 224, 66, 6, 195, 144, 83, 202, 66, 8,
+			197, 46, 196, 198, 40, 192, 66, 8, 197, 5, 3, 15, 52, 32, 66, 0, 9, 198, 72, 99, 70, 20, 99, 0, 67, 13, 202, 68, 17, 73,
+			61, 49, 140, 24, 68, 65, 84, 70, 5, 194, 214, 208, 66, 0, 9, 198, 78, 146, 133, 124, 226, 115, 68, 0, 7, 196, 148, 225, 70, 52,
+			66, 7, 196, 73, 180, 134, 20, 66, 7, 196, 74, 84, 73, 44, 66, 6, 195, 66, 209, 135, 66, 7, 196, 48, 99, 84, 68, 66, 6, 195,
+			46, 247, 115, 66, 7, 196, 8, 97, 84, 196, 67, 0, 8, 197, 65, 18, 66, 60, 160, 66, 6, 195, 44, 248, 202, 66, 8, 197, 153, 51,
+			196, 60, 192, 67, 0, 0, 9, 198, 95, 161, 170, 96, 226, 75, 65, 10, 199, 73, 98, 72, 52, 20, 201, 44, 67, 0, 7, 196, 76, 99,
+			247, 84, 67, 7, 196, 64, 20, 147, 240, 66, 7, 196, 36, 82, 79, 52, 67, 11, 200, 20, 155, 70, 45, 51, 204, 60, 64, 69, 0, 8,
+			197, 44, 243, 15, 87, 48, 67, 6, 195, 44, 248, 206, 66, 0, 0, 10, 199, 73, 177, 12, 24, 80, 193, 96, 66, 9, 198, 72, 98, 212,
+			56, 91, 211, 67, 10, 199, 19, 100, 141, 4, 164, 147, 244, 65, 6, 195, 182, 53, 128, 66, 0, 7, 196, 77, 28, 79, 52, 66, 7, 196,
+			48, 144, 187, 180, 67, 6, 195, 236, 128, 87, 66, 0, 9, 198, 65, 33, 131, 23, 50, 77, 67, 6, 195, 55, 48, 86, 66, 8, 197, 46,
+			249, 81, 39, 48, 68, 0, 0, 6, 195, 164, 62, 192, 66, 10, 199, 20, 146, 6, 48, 211, 211, 244, 68, 9, 198, 8, 100, 243, 156, 242,
+			0, 68, 0, 7, 196, 73, 64, 240, 240, 67, 6, 195, 67, 210, 67, 65, 7, 196, 66, 196, 73, 12, 65, 7, 196, 66, 244, 137, 204, 67,
+			6, 195, 48, 101, 123, 66, 0, 9, 197, 73, 4, 96, 52, 240, 72, 23, 8, 197, 246, 82, 204, 108, 176, 67, 8, 197, 45, 179, 147, 24,
+			112, 66, 8, 197, 45, 18, 83, 36, 176, 66, 8, 197, 20, 144, 85, 184, 208, 67, 6, 195, 8, 21, 238, 66, 6, 195, 190, 240, 82, 67,
+			0, 9, 198, 64, 243, 20, 45, 22, 196, 67, 6, 195, 64, 97, 109, 66, 9, 198, 21, 177, 197, 60, 222, 192, 67, 9, 198, 22, 209, 139,
+			60, 222, 192, 68, 0, 6, 195, 32, 101, 124, 66, 0, 6, 195, 164, 85, 19, 66, 7, 196, 67, 213, 201, 204, 67, 7, 196, 52, 100, 201,
+			72, 66, 7, 196, 44, 21, 70, 32, 66, 7, 196, 44, 17, 81, 184, 66, 9, 198, 44, 17, 65, 73, 61, 142, 67, 11, 200, 36, 130, 212,
+			73, 61, 67, 24, 80, 68, 11, 200, 25, 36, 198, 73, 61, 67, 24, 80, 68, 6, 195, 18, 213, 115, 66, 0, 8, 197, 99, 202, 204, 108,
+			176, 67, 8, 197, 73, 58, 77, 24, 112, 66, 0, 9, 198, 52, 241, 70, 48, 158, 192, 68, 6, 195, 25, 41, 21, 66, 9, 198, 22, 144,
+			143, 73, 178, 192, 67, 0, 6, 195, 67, 195, 196, 66, 6, 195, 46, 251, 64, 66, 0, 7, 196, 96, 100, 198, 92, 66, 7, 196, 84, 99,
+			197, 180, 67, 7, 196, 86, 213, 198, 76, 66, 7, 196, 67, 197, 6, 76, 67, 7, 196, 52, 19, 84, 76, 66, 0, 11, 200, 64, 241, 54,
+			52, 17, 71, 38, 0, 66, 12, 201, 52, 18, 141, 80, 225, 71, 185, 178, 192, 68, 12, 201, 168, 81, 143, 20, 148, 144, 48, 98, 128, 69,
+			8, 197, 5, 11, 17, 37, 80, 67, 8, 197, 153, 51, 205, 5, 48, 67, 0, 9, 198, 20, 99, 60, 37, 67, 64, 66, 0, 6, 195, 67,
+			204, 88, 66, 0, 7, 195, 98, 146, 0, 72, 23, 7, 196, 75, 28, 201, 52, 67, 11, 200, 52, 244, 207, 92, 146, 204, 25, 48, 68, 7,
+			196, 55, 52, 221, 244, 66, 0, 8, 197, 76, 99, 123, 81, 48, 67, 8, 197, 74, 49, 75, 37, 144, 66, 8, 197, 67, 97, 84, 45, 48,
+			66, 8, 197, 45, 68, 12, 25, 48, 66, 8, 197, 32, 241, 17, 5, 80, 66, 8, 197, 5, 113, 147, 187, 0, 68, 8, 197, 4, 90, 82,
+			189, 48, 67, 0, 5, 194, 104, 96, 72, 9, 198, 88, 99, 9, 61, 61, 144, 68, 6, 195, 46, 119, 125, 66, 0, 7, 195, 74, 150, 148,
+			72, 23, 9, 198, 45, 22, 210, 79, 134, 211, 67, 0, 7, 195, 176, 243, 15, 72, 23, 11, 200, 72, 98, 72, 52, 241, 17, 5, 80, 68,
+			7, 196, 20, 100, 187, 76, 66, 0, 0, 9, 198, 17, 16, 71, 22, 252, 64, 65, 0, 6, 195, 5, 51, 204, 66, 0, 8, 196, 36, 128,
+			219, 56, 72, 23, 6, 195, 221, 4, 111, 66, 7, 196, 220, 193, 65, 76, 66, 7, 196, 74, 241, 91, 44, 66, 7, 196, 74, 189, 213, 204,
+			67, 7, 196, 164, 186, 134, 52, 67, 7, 196, 67, 182, 6, 52, 66, 0, 8, 197, 66, 148, 147, 60, 160, 66, 8, 197, 64, 20, 209, 80,
+			192, 66, 8, 197, 204, 179, 204, 60, 64, 67, 6, 195, 181, 54, 206, 66, 0, 9, 198, 76, 100, 6, 17, 211, 200, 67, 9, 198, 64, 243,
+			20, 18, 52, 128, 67, 6, 195, 64, 242, 61, 66, 6, 195, 55, 30, 237, 67, 9, 198, 36, 188, 207, 74, 84, 128, 68, 6, 195, 236, 76,
+			0, 66, 9, 198, 20, 19, 65, 72, 188, 64, 67, 0, 0, 7, 196, 55, 5, 6, 76, 67, 7, 196, 48, 149, 198, 40, 66, 11, 200, 48,
+			98, 210, 36, 179, 204, 60, 64, 68, 7, 196, 28, 19, 66, 204, 66, 0, 8, 197, 44, 19, 123, 39, 176, 68, 8, 197, 9, 26, 243, 39,
+			176, 68, 9, 198, 154, 249, 69, 28, 152, 0, 66, 0, 9, 198, 212, 83, 207, 79, 81, 64, 68, 0, 0, 7, 196, 86, 227, 247, 84, 67,
+			6, 195, 148, 212, 51, 66, 7, 196, 47, 196, 9, 96, 66, 7, 196, 47, 193, 9, 32, 66, 11, 200, 5, 37, 109, 76, 240, 134, 79, 48,
+			69, 0, 6, 195, 69, 178, 230, 66, 8, 197, 166, 181, 201, 207, 176, 69, 8, 197, 68, 18, 13, 5, 96, 66, 8, 197, 45, 43, 143, 87,
+			48, 67, 0, 6, 195, 44, 21, 25, 66, 0, 6, 195, 75, 16, 80, 66, 6, 195, 46, 238, 192, 66, 0, 6, 195, 87, 179, 111, 66, 7,
+			196, 36, 82, 79, 76, 67, 0, 8, 197, 73, 180, 66, 24, 112, 66, 8, 197, 67, 96, 140, 24, 208, 66, 8, 197, 44, 148, 240, 36, 176,
+			65, 8, 197, 13, 178, 22, 60, 80, 66, 0, 9, 198, 9, 180, 251, 86, 50, 128, 65, 0, 6, 195, 99, 208, 80, 66, 0, 7, 196, 74,
+			227, 205, 236, 67, 7, 196, 52, 97, 73, 44, 66, 6, 195, 54, 177, 147, 66, 7, 196, 33, 67, 20, 52, 66, 7, 196, 20, 240, 74, 192,
+			67, 6, 195, 12, 17, 51, 66, 7, 196, 5, 113, 147, 204, 67, 0, 9, 197, 13, 180, 41, 44, 144, 72, 23, 8, 197, 88, 145, 81, 36,
+			80, 66, 8, 197, 86, 240, 83, 36, 176, 67, 9, 198, 77, 18, 75, 60, 199, 125, 67, 8, 197, 72, 21, 81, 36, 80, 66, 8, 197, 52,
+			97, 73, 80, 208, 65, 6, 195, 196, 85, 18, 66, 0, 6, 195, 164, 193, 149, 66, 9, 198, 64, 18, 58, 49, 178, 192, 67, 0, 10, 199,
+			65, 16, 68, 52, 20, 201, 44, 67, 10, 199, 52, 193, 139, 204, 17, 79, 40, 68, 9, 198, 44, 243, 73, 72, 156, 251, 69, 0, 7, 196,
+			67, 172, 201, 52, 67, 6, 195, 66, 209, 147, 66, 7, 196, 44, 204, 241, 16, 66, 7, 196, 44, 20, 212, 56, 66, 0, 8, 197, 52, 148,
+			139, 25, 48, 66, 9, 198, 44, 25, 69, 28, 152, 0, 65, 8, 197, 44, 17, 65, 37, 80, 67, 8, 197, 21, 64, 140, 25, 48, 66, 8,
+			197, 22, 225, 165, 57, 48, 67, 0, 9, 198, 24, 194, 72, 37, 67, 64, 66, 6, 195, 4, 213, 17, 66, 0, 6, 195, 148, 59, 192, 66,
+			6, 195, 72, 20, 252, 66, 6, 195, 214, 51, 128, 66, 0, 7, 196, 72, 20, 21, 240, 66, 9, 198, 52, 105, 76, 81, 17, 0, 67, 9,
+			198, 19, 179, 111, 61, 83, 194, 68, 0, 6, 195, 164, 74, 82, 66, 8, 197, 20, 148, 144, 81, 48, 66, 0, 10, 66, 96, 192, 76, 55,
+			36, 50, 0, 24, 6, 195, 164, 59, 217, 66, 0, 0, 7, 196, 73, 55, 250, 20, 66, 11, 200, 73, 1, 139, 79, 97, 17, 5, 80, 67,
+			7, 196, 45, 68, 148, 68, 66, 0, 9, 198, 79, 58, 71, 37, 39, 125, 68, 8, 197, 68, 144, 143, 50, 112, 67, 8, 197, 9, 67, 123,
+			188, 64, 67, 0, 9, 198, 44, 243, 112, 22, 244, 192, 67, 0, 7, 195, 4, 208, 64, 72, 23, 10, 199, 72, 97, 77, 37, 131, 137, 44,
+			65, 10, 199, 32, 243, 211, 25, 99, 137, 44, 68, 0, 7, 196, 246, 83, 27, 44, 67, 7, 196, 56, 253, 246, 16, 67, 7, 196, 30, 241,
+			122, 52, 66, 0, 8, 197, 99, 163, 197, 24, 160, 67, 6, 195, 79, 100, 238, 66, 8, 197, 66, 148, 147, 60, 192, 66, 8, 197, 32, 195,
+			197, 24, 160, 66, 8, 197, 169, 20, 212, 60, 128, 67, 0, 9, 198, 72, 98, 210, 148, 228, 192, 66, 9, 198, 36, 210, 68, 70, 244, 192,
+			67, 9, 198, 24, 210, 68, 70, 244, 192, 67, 0, 14, 67, 16, 241, 64, 81, 39, 72, 6, 37, 50, 35, 0, 24, 6, 195, 5, 56, 200,
+			66, 0, 6, 195, 150, 51, 147, 66, 7, 196, 58, 192, 84, 76, 65, 6, 195, 44, 18, 47, 66, 7, 196, 13, 178, 36, 44, 65, 0, 6,
+			195, 16, 241, 70, 65, 8, 197, 164, 191, 69, 119, 208, 67, 8, 197, 16, 244, 147, 195, 16, 65, 0, 0, 7, 195, 64, 241, 64, 72, 23,
+			9, 198, 47, 52, 148, 50, 83, 147, 67, 0, 6, 195, 76, 145, 47, 66, 7, 196, 149, 27, 70, 28, 67, 0, 8, 197, 64, 20, 137, 189,
+			32, 67, 6, 195, 5, 56, 210, 66, 0, 9, 198, 91, 176, 137, 92, 145, 64, 67, 9, 198, 48, 148, 147, 224, 17, 64, 67, 9, 198, 25,
+			33, 183, 12, 101, 192, 66, 9, 198, 9, 22, 211, 12, 97, 192, 66, 0, 9, 198, 61, 82, 87, 36, 242, 0, 68, 9, 198, 197, 84, 65,
+			32, 53, 11, 65, 6, 195, 21, 65, 140, 66, 0, 7, 196, 77, 26, 229, 76, 66, 0, 8, 197, 96, 98, 209, 108, 176, 66, 8, 197, 73,
+			177, 108, 140, 80, 67, 8, 197, 73, 67, 21, 36, 80, 66, 8, 197, 24, 212, 60, 36, 176, 67, 0, 9, 198, 72, 19, 79, 76, 98, 192,
+			67, 9, 198, 12, 99, 8, 24, 53, 12, 67, 0, 0, 7, 196, 52, 100, 207, 88, 66, 7, 196, 46, 145, 73, 76, 65, 12, 201, 197, 36,
+			209, 80, 220, 37, 68, 149, 13, 68, 9, 198, 20, 99, 65, 16, 241, 0, 67, 0, 8, 197, 73, 59, 39, 24, 80, 67, 8, 197, 29, 179,
+			19, 108, 176, 66, 8, 197, 16, 241, 112, 36, 176, 67, 0, 6, 195, 4, 80, 89, 66, 0, 9, 198, 68, 21, 129, 76, 198, 203, 67, 6,
+			195, 34, 211, 196, 66, 0, 7, 196, 96, 17, 91, 68, 66, 7, 196, 45, 246, 6, 44, 66, 6, 195, 44, 20, 47, 66, 7, 196, 197, 62,
+			201, 244, 68, 6, 195, 21, 65, 147, 66, 7, 196, 11, 212, 148, 44, 66, 0, 8, 197, 52, 97, 38, 5, 48, 67, 8, 197, 45, 180, 141,
+			25, 48, 66, 0, 6, 195, 233, 44, 45, 67, 0, 10, 199, 80, 196, 209, 4, 128, 212, 44, 67, 9, 198, 64, 148, 147, 60, 193, 147, 67,
+			0, 7, 196, 148, 34, 70, 76, 67, 11, 200, 68, 17, 73, 60, 20, 58, 5, 48, 70, 7, 196, 53, 67, 133, 240, 66, 7, 196, 45, 190,
+			70, 28, 66, 0, 9, 198, 77, 21, 2, 4, 85, 17, 67, 8, 197, 197, 60, 5, 189, 48, 67, 8, 197, 9, 22, 205, 11, 160, 65, 0,
+			9, 198, 68, 18, 18, 78, 147, 0, 66, 6, 195, 18, 211, 217, 66, 9, 198, 152, 147, 205, 61, 63, 64, 69, 0, 6, 195, 67, 213, 124,
+			66, 6, 195, 24, 178, 80, 66, 0, 8, 196, 73, 15, 70, 20, 72, 23, 6, 195, 86, 50, 243, 66, 7, 196, 141, 74, 65, 76, 68, 9,
+			198, 9, 179, 4, 232, 245, 110, 68, 0, 0, 9, 198, 64, 244, 147, 82, 52, 192, 67, 5, 194, 226, 208, 66, 9, 198, 44, 62, 147, 242,
+			244, 192, 67, 9, 198, 20, 100, 41, 74, 244, 192, 67, 0, 6, 195, 91, 28, 64, 66, 6, 195, 67, 204, 192, 66, 10, 199, 145, 145, 146,
+			76, 60, 9, 44, 66, 0, 7, 196, 36, 132, 73, 12, 65, 7, 196, 18, 220, 9, 44, 65, 7, 196, 13, 67, 11, 188, 66, 7, 196, 212,
+			83, 198, 52, 67, 0, 0, 6, 195, 98, 214, 205, 66, 9, 198, 84, 145, 20, 70, 244, 192, 67, 6, 195, 72, 178, 125, 66, 9, 198, 68,
+			18, 23, 12, 100, 192, 66, 9, 198, 44, 243, 73, 76, 100, 192, 67, 9, 198, 20, 98, 210, 77, 28, 64, 66, 9, 198, 8, 147, 205, 37,
+			124, 64, 68, 0, 10, 199, 86, 214, 73, 84, 146, 193, 76, 68, 9, 198, 75, 176, 134, 32, 198, 203, 67, 10, 199, 52, 20, 198, 52, 20,
+			201, 44, 68, 0, 7, 196, 84, 150, 70, 44, 66, 7, 196, 77, 180, 232, 28, 66, 6, 195, 216, 35, 211, 66, 0, 8, 197, 47, 53, 227,
+			19, 176, 65, 0, 9, 198, 47, 49, 136, 152, 241, 64, 68, 9, 198, 44, 148, 134, 48, 101, 192, 65, 9, 198, 16, 243, 6, 52, 101, 192,
+			67, 0, 0, 7, 196, 54, 246, 70, 76, 66, 7, 196, 44, 20, 207, 20, 66, 7, 196, 197, 37, 12, 76, 66, 11, 200, 24, 193, 139, 79,
+			99, 79, 79, 208, 69, 0, 6, 195, 87, 57, 78, 66, 8, 197, 48, 97, 9, 207, 176, 68, 8, 197, 44, 244, 177, 81, 32, 65, 0, 6,
+			195, 66, 224, 85, 66, 9, 198, 47, 160, 77, 8, 243, 0, 67, 9, 198, 153, 51, 200, 152, 241, 64, 68, 0, 6, 195, 67, 217, 76, 66,
+			9, 198, 189, 50, 85, 68, 146, 0, 67, 0, 7, 196, 141, 49, 139, 72, 66, 0, 8, 197, 36, 67, 48, 36, 176, 67, 8, 197, 32, 60,
+			39, 60, 80, 67, 9, 198, 28, 157, 83, 58, 118, 197, 68, 0, 6, 195, 75, 23, 125, 66, 0, 9, 198, 73, 64, 140, 36, 208, 83, 67,
+			0, 9, 198, 67, 100, 207, 43, 177, 138, 68, 9, 198, 52, 227, 196, 60, 35, 202, 67, 9, 198, 237, 117, 187, 92, 241, 0, 67, 9, 198,
+			23, 1, 118, 48, 241, 0, 67, 0, 9, 198, 92, 99, 20, 48, 242, 69, 68, 9, 198, 66, 146, 9, 20, 149, 13, 66, 8, 197, 25, 144,
+			85, 60, 80, 67, 0, 6, 195, 44, 18, 89, 66, 0, 9, 198, 67, 101, 82, 109, 242, 0, 67, 0, 7, 196, 72, 20, 29, 244, 66, 7,
+			196, 66, 52, 157, 244, 66, 7, 196, 66, 244, 198, 204, 67, 6, 195, 66, 98, 111, 67, 7, 196, 61, 54, 6, 76, 66, 11, 200, 13, 177,
+			12, 24, 83, 194, 36, 48, 67, 6, 195, 11, 165, 19, 66, 0, 6, 18, 66, 208, 181, 0, 209, 144, 0, 208, 184, 0, 209, 157, 0, 7,
+			6, 18, 67, 209, 128, 0, 208, 187, 0, 208, 188, 0, 208, 189, 0, 7, 6, 18, 68, 208, 180, 208, 183, 0, 208, 180, 208, 182, 0, 208,
+			177, 0, 208, 178, 0, 208, 179, 0, 208, 180, 0, 208, 183, 0, 208, 182, 0, 7, 6, 18, 69, 208, 191, 0, 209, 132, 0, 208, 186, 0,
+			209, 130, 0, 209, 129, 0, 209, 134, 0, 209, 136, 0, 209, 137, 0, 209, 135, 0, 209, 133, 0, 7, 6, 1, 17, 0, 209, 128, 1, 21,
+			2, 32, 3, 6, 35, 34, 0, 209, 130, 208, 181, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 35, 47, 36, 55, 36, 50, 0,
+			209, 130, 208, 181, 208, 187, 209, 129, 209, 130, 208, 178, 208, 190, 1, 21, 2, 32, 3, 6, 35, 47, 36, 55, 89, 47, 84, 39, 0, 208,
+			186, 1, 21, 2, 32, 3, 6, 35, 49, 0, 208, 189, 208, 184, 208, 181, 1, 21, 2, 32, 3, 6, 35, 50, 37, 36, 0, 208, 189, 209,
+			129, 208, 186, 208, 184, 1, 21, 2, 32, 3, 6, 35, 50, 89, 49, 37, 0, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 35,
+			55, 36, 50, 0, 208, 187, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32, 3, 6, 35, 55, 37, 91, 47, 36, 0, 208, 187, 208, 189, 209,
+			143, 1, 21, 2, 32, 3, 6, 35, 55, 50, 38, 35, 0, 209, 135, 1, 21, 2, 32, 3, 6, 35, 76, 0, 208, 178, 208, 184, 209, 137,
+			208, 181, 1, 21, 2, 32, 3, 6, 35, 84, 37, 91, 47, 36, 0, 208, 182, 1, 21, 2, 32, 3, 6, 35, 90, 0, 209, 134, 208, 184,
+			209, 143, 1, 21, 2, 32, 3, 6, 35, 117, 37, 35, 0, 4, 3, 35, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 209, 128, 208, 184,
+			209, 143, 1, 21, 2, 32, 3, 35, 34, 37, 35, 0, 7, 6, 1, 18, 0, 3, 71, 0, 2, 17, 71, 3, 71, 38, 0, 7, 6, 1,
+			19, 0, 3, 84, 0, 2, 17, 71, 3, 84, 38, 0, 7, 6, 1, 20, 0, 3, 81, 0, 2, 17, 71, 3, 122, 0, 7, 6, 1, 21,
+			0, 3, 72, 0, 208, 182, 3, 75, 0, 2, 17, 71, 3, 116, 0, 208, 183, 3, 118, 0, 208, 183, 2, 17, 71, 3, 118, 38, 0, 7,
+			6, 1, 22, 0, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 36, 36, 50, 0, 208, 189, 208, 184, 208, 181, 1, 21, 2, 32, 3, 6,
+			36, 50, 37, 36, 0, 208, 189, 209, 130, 1, 21, 2, 32, 3, 6, 36, 50, 47, 0, 208, 185, 209, 129, 208, 186, 208, 184, 1, 21, 2,
+			32, 3, 6, 36, 57, 89, 49, 37, 0, 208, 177, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 36, 71, 36, 50, 0, 208, 178, 208, 181,
+			208, 189, 1, 21, 2, 32, 3, 6, 36, 84, 36, 50, 0, 3, 36, 0, 7, 6, 1, 23, 0, 3, 90, 0, 7, 6, 1, 24, 0, 3,
+			88, 0, 2, 17, 71, 3, 94, 0, 7, 6, 1, 25, 0, 4, 1, 130, 209, 190, 208, 2, 209, 143, 32, 3, 6, 37, 0, 1, 186, 208,
+			2, 208, 189, 209, 143, 32, 0, 209, 130, 1, 21, 2, 32, 3, 6, 37, 47, 0, 209, 130, 208, 181, 208, 187, 1, 21, 2, 32, 3, 6,
+			37, 47, 36, 55, 0, 209, 130, 208, 181, 208, 187, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 37, 47, 36, 55, 36, 50, 0, 208, 180,
+			208, 177, 208, 176, 1, 21, 2, 32, 3, 6, 37, 47, 71, 35, 0, 208, 186, 208, 176, 208, 178, 1, 21, 2, 32, 3, 6, 37, 49, 35,
+			84, 0, 208, 189, 209, 129, 208, 186, 208, 184, 1, 21, 2, 32, 3, 6, 37, 50, 89, 49, 37, 0, 208, 187, 208, 181, 208, 189, 1, 21,
+			2, 32, 3, 6, 37, 55, 36, 50, 0, 208, 187, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32, 3, 6, 37, 55, 37, 91, 47, 36, 0,
+			208, 188, 208, 176, 1, 21, 2, 32, 3, 6, 37, 65, 35, 0, 209, 135, 208, 181, 209, 129, 208, 186, 208, 184, 1, 21, 2, 32, 3, 6,
+			37, 76, 36, 89, 49, 37, 0, 208, 178, 1, 21, 2, 32, 3, 6, 37, 84, 0, 208, 178, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6,
+			37, 84, 36, 50, 0, 208, 183, 209, 138, 208, 188, 1, 21, 2, 32, 3, 6, 37, 88, 13, 65, 0, 209, 129, 209, 130, 1, 21, 2, 32,
+			3, 6, 37, 89, 47, 0, 3, 37, 0, 2, 32, 24, 3, 37, 12, 0, 7, 6, 1, 26, 0, 3, 57, 0, 7, 6, 1, 27, 0, 3,
+			49, 0, 2, 17, 71, 3, 49, 38, 0, 208, 190, 1, 21, 2, 32, 14, 128, 128, 130, 3, 49, 39, 0, 7, 6, 1, 28, 0, 4, 2,
+			17, 71, 3, 55, 0, 2, 18, 66, 0, 2, 209, 140, 18, 66, 3, 61, 0, 3, 64, 0, 7, 6, 1, 29, 0, 3, 65, 0, 2, 17,
+			71, 3, 65, 38, 0, 7, 6, 1, 30, 0, 3, 50, 0, 208, 189, 3, 50, 12, 0, 2, 17, 71, 3, 67, 0, 7, 6, 1, 31, 0,
+			209, 128, 208, 184, 209, 131, 208, 188, 1, 21, 2, 32, 3, 6, 39, 34, 37, 40, 65, 0, 208, 186, 1, 21, 2, 32, 3, 6, 39, 49,
+			0, 208, 178, 208, 181, 208, 189, 1, 21, 2, 32, 3, 6, 39, 84, 36, 50, 0, 208, 178, 208, 184, 209, 137, 208, 181, 1, 21, 2, 32,
+			3, 6, 39, 84, 37, 91, 47, 36, 0, 208, 178, 208, 189, 208, 184, 208, 186, 1, 21, 2, 32, 3, 6, 39, 84, 50, 37, 49, 0, 208,
+			183, 208, 181, 208, 189, 2, 32, 3, 6, 39, 88, 36, 50, 0, 3, 39, 0, 208, 178, 208, 176, 2, 209, 130, 32, 3, 39, 84, 6, 35,
+			0, 208, 178, 208, 184, 2, 209, 130, 32, 3, 39, 84, 6, 37, 0, 7, 6, 1, 32, 0, 3, 48, 0, 2, 17, 71, 3, 48, 38, 0,
+			7, 6, 1, 33, 0, 3, 34, 0, 2, 17, 71, 3, 34, 38, 0, 7, 6, 1, 34, 0, 3, 89, 0, 2, 17, 71, 3, 95, 0, 7,
+			6, 1, 35, 0, 3, 47, 0, 209, 130, 3, 47, 12, 0, 208, 176, 1, 21, 2, 32, 14, 128, 128, 130, 3, 47, 35, 0, 208, 181, 1,
+			21, 2, 32, 14, 128, 128, 130, 3, 47, 36, 0, 2, 17, 71, 3, 115, 0, 7, 6, 1, 36, 0, 3, 40, 0, 7, 6, 1, 37, 0,
+			3, 83, 0, 2, 17, 71, 3, 83, 38, 0, 7, 6, 1, 38, 0, 4, 2, 17, 71, 3, 99, 0, 2, 208, 184, 0, 3, 101, 0, 7,
+			6, 1, 39, 0, 3, 117, 0, 2, 17, 71, 3, 117, 38, 0, 7, 6, 1, 40, 0, 208, 190, 1, 21, 2, 32, 3, 8, 76, 39, 0,
+			3, 76, 0, 7, 6, 1, 41, 0, 3, 91, 0, 7, 6, 1, 42, 0, 3, 91, 47, 0, 2, 17, 71, 3, 91, 115, 0, 7, 6, 1,
+			43, 0, 3, 13, 0, 209, 130, 1, 21, 2, 32, 14, 128, 128, 130, 3, 13, 47, 0, 7, 6, 1, 45, 0, 1, 17, 67, 3, 0, 3,
+			57, 0, 7, 6, 1, 47, 0, 1, 17, 67, 3, 40, 0, 3, 57, 40, 0, 7, 6, 1, 48, 0, 208, 189, 208, 184, 208, 181, 1, 21,
+			2, 32, 3, 6, 57, 35, 50, 37, 36, 0, 4, 1, 17, 67, 3, 35, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 209, 130,
+			1, 17, 67, 21, 2, 32, 14, 128, 192, 130, 3, 35, 47, 0, 4, 3, 57, 35, 0, 1, 21, 2, 32, 14, 128, 192, 129, 0, 209, 130,
+			1, 21, 2, 32, 14, 128, 192, 130, 3, 57, 35, 47, 0, 7, 6, 0, 209, 144, 3, 7, 36, 0, 209, 157, 3, 7, 37, 0, 204, 128,
+			3, 8, 0, 36, 3, 72, 6, 39, 64, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts5 = FileInMemory_createWithData (26954, reinterpret_cast<const char *> (&espeakdata_dicts5_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/bg_dict", 
 			U"bg");
-		my addItem_move (espeakdata_dicts6.move());
+		Collection_addItem (me.peek(), espeakdata_dicts5.transfer());
 
-		static unsigned char espeakdata_dicts7_data[8088] = {
-			0, 4, 0, 0, 242, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4,
-			95, 100, 112, 116, 10, 72, 6, 121, 89, 39, 65, 37, 49, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 1, 36, 140, 121, 55, 35, 34, 0, 0, 12, 1, 37, 91, 121, 47, 49, 6, 121, 34, 35, 0, 0, 0, 0, 0, 0, 0,
-			7, 1, 43, 57, 121, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 61, 91, 121,
-			65, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 164, 224, 167, 129, 224, 166, 135, 72, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 18, 143, 224, 166, 174, 224, 166, 167, 224, 167, 141, 224, 166, 175, 224, 167, 135, 72, 0, 0, 0, 0, 0, 12, 137, 224,
-			166, 155, 224, 166, 191, 224, 166, 178, 72, 0, 15, 140, 224, 166, 147, 224, 166, 166, 224, 167, 135, 224, 166, 176, 72, 0, 0, 0, 12, 137,
-			224, 166, 147, 224, 166, 159, 224, 166, 190, 72, 18, 143, 224, 166, 164, 224, 166, 190, 224, 166, 166, 224, 167, 135, 224, 166, 176, 72, 0, 0,
-			0, 21, 146, 224, 166, 134, 224, 166, 174, 224, 166, 190, 224, 166, 166, 224, 167, 135, 224, 166, 176, 72, 0, 0, 0, 9, 134, 224, 166, 143,
-			224, 166, 135, 72, 24, 149, 224, 166, 164, 224, 167, 139, 224, 166, 174, 224, 166, 190, 224, 166, 166, 224, 167, 135, 224, 166, 176, 72, 0, 0,
-			18, 143, 224, 166, 155, 224, 166, 191, 224, 166, 178, 224, 167, 135, 224, 166, 168, 72, 0, 0, 0, 0, 36, 24, 224, 166, 149, 224, 166, 190,
-			224, 166, 178, 224, 166, 170, 224, 167, 129, 224, 166, 176, 224, 167, 129, 224, 166, 183, 49, 35, 55, 4, 48, 40, 34, 40, 91, 0, 0, 0,
-			0, 0, 12, 137, 224, 166, 133, 224, 166, 165, 224, 166, 154, 72, 0, 0, 0, 0, 0, 0, 40, 27, 224, 166, 134, 224, 166, 149, 224, 166,
-			190, 224, 166, 182, 224, 166, 149, 224, 167, 129, 224, 166, 184, 224, 167, 129, 224, 166, 174, 35, 49, 118, 91, 4, 49, 40, 91, 40, 65, 0,
-			0, 9, 134, 224, 166, 143, 224, 166, 176, 72, 9, 134, 224, 166, 143, 224, 166, 176, 72, 0, 0, 0, 12, 137, 224, 166, 164, 224, 167, 139,
-			224, 166, 176, 72, 0, 18, 143, 224, 166, 147, 224, 166, 159, 224, 166, 190, 224, 166, 149, 224, 167, 135, 72, 18, 143, 224, 166, 143, 224, 166,
-			168, 224, 166, 190, 224, 166, 149, 224, 167, 135, 72, 0, 0, 0, 21, 146, 224, 166, 134, 224, 166, 170, 224, 166, 168, 224, 166, 190, 224, 166,
-			149, 224, 167, 135, 72, 0, 0, 12, 137, 224, 166, 143, 224, 166, 159, 224, 166, 190, 72, 0, 0, 25, 15, 224, 166, 151, 224, 166, 176, 224,
-			166, 174, 224, 166, 191, 224, 166, 178, 81, 121, 34, 4, 65, 37, 55, 0, 0, 12, 6, 224, 166, 143, 224, 166, 164, 148, 47, 39, 0, 21,
-			146, 224, 166, 147, 224, 166, 151, 224, 167, 129, 224, 166, 178, 224, 167, 139, 224, 166, 176, 72, 0, 40, 27, 224, 166, 137, 224, 166, 164, 224,
-			167, 141, 224, 166, 164, 224, 166, 176, 224, 166, 166, 224, 166, 190, 224, 167, 159, 224, 167, 128, 40, 47, 47, 38, 39, 34, 4, 72, 118, 113,
-			0, 0, 29, 18, 224, 166, 150, 224, 166, 190, 224, 166, 178, 224, 166, 172, 224, 166, 191, 224, 166, 178, 49, 107, 118, 55, 6, 71, 37, 55,
-			0, 0, 0, 38, 24, 224, 166, 133, 224, 166, 168, 224, 167, 141, 224, 166, 166, 224, 166, 176, 224, 166, 174, 224, 166, 185, 224, 166, 178, 35,
-			50, 72, 39, 34, 4, 65, 35, 107, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 166, 161, 224, 166, 188, 70, 121, 0,
-			0, 0, 0, 0, 0, 15, 140, 224, 166, 149, 224, 166, 176, 224, 166, 155, 224, 166, 191, 72, 0, 0, 0, 9, 134, 224, 166, 147, 224, 166,
-			176, 72, 0, 0, 0, 0, 0, 0, 33, 21, 224, 166, 150, 224, 167, 129, 224, 166, 168, 224, 166, 184, 224, 167, 129, 224, 166, 159, 224, 166,
-			191, 49, 107, 40, 50, 4, 91, 40, 47, 37, 0, 0, 0, 0, 0, 0, 0, 0, 33, 21, 224, 166, 155, 224, 166, 190, 224, 166, 178, 224,
-			166, 172, 224, 166, 190, 224, 166, 149, 224, 166, 178, 143, 35, 55, 6, 71, 118, 49, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 137, 224, 166, 185, 224, 166, 175, 224, 166, 188, 72, 0, 0, 0, 0, 10, 134, 224, 166, 149, 224, 167, 135, 72, 8, 0, 0, 0,
-			0, 0, 18, 143, 224, 166, 149, 224, 166, 176, 224, 167, 135, 224, 166, 155, 224, 166, 191, 72, 0, 0, 0, 0, 0, 0, 30, 18, 224, 166,
-			134, 224, 166, 178, 224, 166, 159, 224, 166, 170, 224, 166, 149, 224, 166, 190, 35, 55, 4, 47, 121, 4, 48, 49, 35, 0, 0, 0, 36, 24,
-			224, 166, 171, 224, 167, 129, 224, 166, 178, 224, 166, 182, 224, 166, 175, 224, 167, 141, 224, 166, 175, 224, 166, 190, 83, 40, 55, 6, 91, 35,
-			79, 79, 118, 0, 0, 0, 0, 21, 12, 224, 166, 151, 224, 166, 156, 224, 166, 151, 224, 166, 156, 81, 121, 79, 81, 121, 79, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 21, 224, 166, 151,
-			224, 166, 190, 224, 166, 178, 224, 166, 151, 224, 166, 178, 224, 167, 141, 224, 166, 170, 81, 35, 55, 6, 81, 121, 55, 48, 39, 0, 0, 0,
-			0, 0, 10, 134, 224, 166, 149, 224, 166, 191, 72, 8, 0, 0, 0, 0, 0, 28, 18, 224, 166, 168, 224, 166, 190, 224, 167, 156, 224, 166,
-			149, 224, 167, 139, 224, 166, 178, 50, 35, 34, 4, 49, 39, 55, 0, 0, 0, 0, 0, 24, 15, 224, 166, 150, 224, 166, 191, 224, 167, 156,
-			224, 166, 149, 224, 166, 191, 49, 107, 37, 70, 49, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 51, 57, 6, 40, 50, 121,
-			76, 121, 55, 55, 6, 37, 91, 0, 11, 3, 95, 50, 49, 36, 49, 6, 40, 91, 0, 0, 14, 3, 95, 51, 56, 6, 35, 139, 47, 34,
-			6, 37, 91, 0, 11, 3, 95, 50, 48, 49, 6, 40, 34, 37, 0, 0, 11, 3, 95, 50, 51, 47, 6, 36, 57, 91, 0, 0, 11, 3,
-			95, 50, 50, 71, 6, 35, 57, 91, 0, 0, 12, 3, 95, 50, 53, 48, 6, 130, 76, 37, 91, 0, 0, 13, 3, 95, 50, 52, 76, 6,
-			121, 71, 71, 37, 91, 0, 0, 12, 3, 95, 50, 55, 91, 35, 47, 6, 35, 91, 0, 0, 14, 3, 95, 50, 54, 76, 107, 6, 35, 71,
-			71, 37, 91, 0, 0, 15, 3, 95, 51, 49, 6, 36, 49, 121, 47, 34, 6, 37, 91, 0, 0, 11, 3, 95, 51, 48, 47, 34, 6, 37,
-			91, 0, 0, 14, 3, 95, 51, 51, 47, 6, 36, 47, 34, 6, 37, 91, 0, 0, 14, 3, 95, 51, 50, 71, 6, 121, 47, 34, 6, 37,
-			91, 0, 0, 15, 3, 95, 51, 53, 48, 6, 130, 57, 47, 34, 6, 37, 91, 0, 0, 15, 3, 95, 51, 52, 76, 6, 39, 58, 47, 34,
-			6, 37, 91, 0, 0, 15, 3, 95, 51, 55, 91, 6, 128, 37, 47, 34, 6, 37, 91, 0, 0, 14, 3, 95, 51, 54, 149, 6, 121, 47,
-			34, 6, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 167, 157, 107, 70, 121,
-			0, 8, 3, 224, 166, 149, 49, 121, 0, 14, 3, 95, 55, 57, 6, 40, 50, 121, 35, 91, 6, 37, 0, 15, 3, 95, 54, 49, 6, 36,
-			49, 91, 121, 139, 139, 6, 37, 0, 0, 8, 3, 224, 166, 148, 39, 58, 0, 8, 3, 224, 167, 156, 70, 121, 0, 15, 3, 95, 55, 56,
-			6, 35, 139, 35, 47, 47, 6, 121, 34, 0, 10, 3, 95, 54, 48, 89, 6, 35, 139, 0, 0, 8, 3, 224, 167, 159, 121, 57, 0, 8,
-			3, 224, 166, 151, 81, 121, 0, 9, 3, 95, 48, 67, 91, 6, 39, 0, 15, 3, 95, 54, 51, 47, 6, 36, 91, 121, 139, 139, 6, 37,
-			0, 0, 8, 3, 224, 166, 150, 145, 121, 0, 15, 3, 95, 54, 50, 71, 6, 35, 91, 121, 139, 139, 6, 37, 0, 0, 16, 3, 95, 54,
-			53, 48, 6, 39, 57, 91, 121, 139, 139, 6, 37, 0, 0, 9, 3, 224, 166, 144, 39, 57, 0, 76, 16, 3, 95, 54, 52, 76, 6, 39,
-			58, 91, 121, 139, 139, 6, 37, 0, 0, 6, 131, 224, 166, 147, 72, 9, 3, 224, 166, 147, 39, 0, 76, 28, 15, 3, 95, 54, 55, 91,
-			6, 35, 76, 121, 139, 139, 6, 37, 0, 0, 15, 140, 224, 166, 164, 224, 167, 139, 224, 166, 149, 224, 167, 135, 72, 15, 3, 95, 54, 54,
-			91, 6, 36, 91, 121, 139, 139, 6, 37, 0, 0, 15, 3, 95, 55, 49, 6, 36, 49, 35, 47, 47, 6, 121, 34, 0, 0, 14, 3, 95,
-			55, 48, 91, 6, 121, 47, 47, 6, 121, 34, 0, 0, 6, 131, 224, 166, 143, 72, 8, 3, 224, 166, 143, 36, 0, 76, 15, 3, 95, 55,
-			51, 47, 6, 37, 35, 47, 47, 6, 121, 34, 0, 0, 16, 3, 95, 55, 50, 71, 6, 35, 107, 35, 47, 47, 6, 121, 34, 0, 0, 14,
-			3, 224, 166, 137, 107, 34, 121, 91, 12, 39, 6, 40, 0, 16, 3, 95, 55, 53, 48, 6, 121, 76, 35, 47, 47, 6, 121, 34, 0, 0,
-			14, 3, 224, 166, 136, 72, 6, 112, 34, 146, 39, 6, 37, 0, 16, 3, 95, 55, 52, 76, 6, 40, 107, 35, 47, 47, 6, 121, 34, 0,
-			0, 8, 3, 224, 166, 139, 34, 37, 0, 16, 3, 95, 55, 55, 91, 6, 35, 47, 35, 47, 47, 6, 121, 34, 0, 0, 14, 3, 224, 166,
-			138, 72, 6, 112, 34, 146, 39, 6, 40, 0, 16, 3, 95, 55, 54, 149, 6, 37, 57, 35, 47, 47, 6, 121, 34, 0, 0, 24, 149, 224,
-			166, 147, 224, 166, 151, 224, 167, 129, 224, 166, 178, 224, 167, 139, 224, 166, 149, 224, 167, 135, 72, 14, 3, 224, 167, 141, 107, 6, 121, 91,
-			39, 50, 47, 39, 0, 7, 3, 224, 166, 133, 121, 0, 11, 3, 95, 49, 57, 6, 40, 50, 37, 91, 0, 0, 12, 3, 224, 167, 140, 6,
-			39, 58, 49, 35, 34, 0, 12, 3, 95, 49, 56, 6, 35, 141, 35, 34, 121, 0, 0, 14, 3, 224, 166, 135, 107, 34, 121, 91, 12, 39,
-			6, 37, 0, 0, 7, 3, 224, 166, 134, 35, 0, 16, 3, 224, 167, 142, 49, 107, 4, 121, 50, 140, 39, 47, 6, 121, 0, 0, 18, 3,
-			224, 166, 129, 76, 6, 121, 50, 72, 34, 39, 71, 37, 50, 72, 40, 0, 0, 12, 3, 224, 167, 136, 6, 39, 57, 49, 35, 34, 0, 0,
-			14, 3, 224, 166, 131, 71, 6, 37, 91, 121, 34, 81, 39, 0, 11, 3, 224, 167, 139, 6, 39, 49, 35, 34, 0, 0, 14, 3, 224, 166,
-			130, 6, 121, 50, 40, 91, 91, 121, 34, 0, 0, 15, 3, 95, 50, 57, 6, 40, 50, 121, 47, 34, 6, 37, 91, 0, 12, 3, 95, 49,
-			49, 6, 148, 81, 35, 34, 39, 0, 0, 11, 3, 95, 50, 56, 6, 35, 141, 35, 91, 0, 10, 3, 95, 49, 48, 72, 6, 121, 91, 0,
-			0, 11, 3, 224, 167, 135, 6, 36, 49, 35, 34, 0, 11, 3, 95, 49, 51, 47, 6, 36, 34, 121, 0, 0, 11, 3, 95, 49, 50, 71,
-			6, 35, 34, 121, 0, 0, 15, 3, 224, 167, 129, 72, 6, 112, 34, 146, 40, 49, 35, 34, 0, 13, 3, 95, 49, 53, 48, 6, 121, 50,
-			36, 34, 121, 0, 0, 15, 3, 224, 167, 128, 72, 6, 112, 34, 146, 37, 49, 35, 34, 0, 12, 3, 95, 49, 52, 149, 6, 39, 72, 72,
-			121, 0, 0, 12, 3, 224, 167, 131, 34, 6, 37, 49, 35, 34, 0, 13, 3, 95, 49, 55, 91, 6, 121, 47, 36, 34, 121, 0, 0, 17,
-			3, 224, 167, 130, 107, 34, 121, 91, 12, 39, 6, 40, 49, 35, 34, 0, 11, 3, 95, 49, 54, 91, 6, 39, 55, 121, 0, 0, 0, 0,
-			18, 3, 224, 166, 183, 65, 4, 40, 138, 36, 50, 12, 39, 91, 12, 6, 121, 0, 0, 17, 3, 224, 166, 182, 47, 4, 35, 55, 36, 71,
-			39, 91, 12, 6, 121, 0, 0, 0, 8, 3, 224, 166, 176, 34, 121, 0, 0, 28, 15, 224, 166, 150, 224, 166, 176, 224, 166, 150, 224, 166,
-			176, 224, 167, 135, 49, 107, 121, 34, 4, 49, 107, 121, 34, 36, 0, 0, 8, 3, 224, 166, 178, 55, 121, 0, 0, 8, 3, 224, 166, 173,
-			137, 121, 0, 15, 3, 95, 52, 57, 6, 40, 50, 121, 48, 130, 76, 35, 91, 0, 0, 11, 3, 224, 165, 164, 72, 109, 66, 140, 109, 0,
-			8, 3, 224, 166, 172, 71, 121, 0, 15, 3, 95, 52, 56, 6, 35, 76, 121, 55, 55, 6, 37, 91, 0, 0, 17, 3, 224, 166, 175, 4,
-			39, 50, 47, 39, 89, 47, 36, 75, 6, 121, 0, 0, 8, 3, 224, 166, 174, 65, 121, 0, 0, 0, 30, 155, 224, 166, 170, 224, 166, 176,
-			224, 167, 141, 224, 166, 175, 224, 167, 141, 224, 166, 175, 224, 166, 168, 224, 167, 141, 224, 166, 164, 72, 16, 3, 224, 166, 168, 72, 4, 39,
-			50, 47, 36, 50, 50, 6, 121, 0, 0, 8, 3, 224, 166, 171, 83, 121, 0, 0, 13, 137, 224, 166, 149, 224, 167, 135, 224, 166, 168, 72,
-			8, 27, 152, 224, 166, 170, 224, 167, 130, 224, 166, 176, 224, 167, 141, 224, 166, 172, 224, 167, 141, 224, 166, 172, 224, 167, 135, 72, 8, 3,
-			224, 166, 170, 48, 121, 0, 0, 8, 3, 224, 166, 165, 25, 121, 0, 14, 3, 95, 53, 57, 6, 40, 50, 121, 91, 6, 35, 139, 0, 16,
-			3, 95, 52, 49, 6, 36, 49, 76, 121, 55, 55, 6, 37, 91, 0, 9, 3, 95, 50, 97, 72, 6, 40, 0, 0, 8, 3, 224, 166, 164,
-			47, 121, 0, 14, 3, 95, 53, 56, 6, 35, 139, 35, 50, 50, 6, 39, 0, 13, 3, 95, 52, 48, 76, 121, 55, 55, 6, 37, 91, 0,
-			0, 8, 3, 224, 166, 167, 138, 121, 0, 16, 3, 95, 52, 51, 47, 6, 36, 47, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166,
-			166, 72, 121, 0, 15, 3, 95, 52, 50, 71, 6, 37, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 161, 140, 121, 0, 17, 3,
-			95, 52, 53, 48, 6, 130, 57, 47, 35, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 160, 141, 121, 0, 15, 3, 95, 52, 52, 76,
-			6, 39, 35, 55, 55, 6, 37, 91, 0, 0, 16, 3, 224, 166, 163, 65, 4, 39, 72, 138, 36, 66, 66, 6, 121, 0, 16, 3, 95, 52,
-			55, 91, 6, 35, 76, 121, 55, 55, 6, 37, 89, 0, 0, 8, 3, 224, 166, 162, 142, 121, 0, 16, 3, 95, 52, 54, 76, 6, 36, 76,
-			121, 55, 55, 6, 37, 91, 0, 0, 8, 3, 224, 166, 157, 144, 121, 0, 17, 3, 95, 54, 57, 6, 40, 50, 121, 91, 121, 47, 47, 6,
-			121, 34, 0, 14, 3, 95, 53, 49, 6, 148, 49, 35, 50, 50, 6, 39, 0, 0, 8, 3, 224, 166, 156, 79, 121, 0, 15, 3, 95, 54,
-			56, 6, 35, 139, 91, 121, 139, 139, 6, 37, 0, 13, 3, 95, 53, 48, 48, 6, 130, 76, 6, 35, 91, 0, 0, 8, 3, 224, 166, 159,
-			139, 121, 0, 15, 3, 95, 53, 51, 47, 6, 36, 48, 35, 50, 50, 6, 39, 0, 0, 10, 3, 224, 166, 158, 6, 37, 68, 130, 0, 15,
-			3, 95, 53, 50, 71, 6, 35, 57, 35, 50, 50, 6, 39, 0, 0, 11, 3, 224, 166, 153, 6, 40, 68, 81, 130, 0, 16, 3, 95, 53,
-			53, 48, 6, 39, 50, 76, 35, 50, 50, 6, 39, 0, 0, 8, 3, 224, 166, 152, 146, 121, 0, 15, 3, 95, 53, 52, 76, 6, 40, 57,
-			35, 50, 50, 6, 39, 0, 0, 9, 3, 224, 166, 155, 76, 107, 121, 0, 15, 3, 95, 53, 55, 91, 6, 35, 47, 35, 50, 50, 6, 39,
-			0, 0, 8, 3, 224, 166, 154, 76, 121, 0, 15, 3, 95, 53, 54, 149, 6, 35, 48, 35, 50, 50, 6, 39, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 17, 3, 95, 56, 57, 6, 40, 50, 121, 50, 121, 71, 71, 6, 39, 57, 0, 0, 13, 3, 95, 56, 56, 6, 35, 139,
-			35, 91, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 57, 57, 50, 6, 37, 34, 35, 50, 121, 71, 71, 6, 39, 57, 0,
-			13, 3, 95, 56, 49, 6, 148, 49, 35, 91, 6, 37, 0, 9, 3, 95, 54, 97, 149, 6, 121, 0, 0, 17, 3, 95, 57, 56, 6, 35,
-			139, 35, 50, 121, 71, 71, 6, 39, 57, 0, 10, 3, 95, 56, 48, 35, 91, 6, 37, 0, 0, 31, 18, 224, 166, 150, 224, 166, 190, 224,
-			166, 182, 224, 166, 174, 224, 166, 185, 224, 166, 178, 49, 107, 35, 91, 4, 65, 121, 107, 121, 55, 0, 14, 3, 95, 56, 51, 47, 6, 36,
-			34, 35, 91, 6, 37, 0, 0, 14, 3, 95, 56, 50, 71, 6, 36, 34, 35, 91, 6, 37, 0, 0, 14, 3, 95, 56, 53, 48, 6, 131,
-			76, 35, 91, 6, 37, 0, 0, 14, 3, 95, 56, 52, 76, 6, 40, 34, 35, 91, 6, 37, 0, 0, 14, 3, 95, 56, 55, 91, 6, 35,
-			47, 35, 91, 6, 37, 0, 0, 14, 3, 95, 56, 54, 149, 6, 37, 57, 35, 91, 6, 37, 0, 0, 30, 18, 224, 166, 150, 224, 166, 190,
-			224, 166, 168, 224, 166, 150, 224, 166, 190, 224, 166, 168, 49, 107, 118, 50, 6, 49, 107, 35, 50, 0, 30, 18, 224, 166, 150, 224, 166, 190,
-			224, 166, 168, 224, 166, 150, 224, 166, 190, 224, 166, 168, 49, 107, 35, 50, 4, 49, 107, 35, 50, 0, 17, 3, 95, 57, 49, 6, 148, 49,
-			35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 12, 3, 224, 166, 188, 71, 6, 37, 50, 72, 40, 0, 13, 3, 95, 57, 48, 50, 121, 71,
-			71, 6, 39, 57, 0, 13, 3, 95, 54, 88, 89, 6, 35, 139, 139, 6, 37, 0, 0, 17, 3, 224, 166, 191, 107, 34, 121, 91, 12, 39,
-			6, 37, 49, 35, 34, 0, 18, 3, 95, 57, 51, 47, 6, 36, 34, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 11, 3, 224, 166, 190,
-			6, 35, 49, 35, 34, 0, 18, 3, 95, 57, 50, 71, 6, 36, 34, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 8, 3, 224, 166, 185,
-			107, 121, 0, 18, 3, 95, 57, 53, 48, 6, 121, 76, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 16, 3, 224, 166, 184, 72, 4, 39,
-			50, 47, 36, 91, 12, 6, 121, 0, 18, 3, 95, 57, 52, 76, 6, 40, 34, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 18, 3, 95,
-			57, 55, 91, 6, 35, 47, 35, 50, 121, 71, 71, 6, 39, 57, 0, 0, 18, 3, 95, 57, 54, 149, 6, 37, 57, 35, 50, 121, 71, 71,
-			6, 39, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 57, 97, 50, 6, 121, 0, 0, 0, 18, 143, 224, 166, 133, 224,
-			166, 172, 224, 167, 141, 224, 166, 166, 224, 166, 191, 72, 0, 0, 28, 18, 224, 166, 149, 224, 167, 159, 224, 167, 135, 224, 166, 149, 224, 166,
-			156, 224, 166, 168, 49, 121, 36, 49, 79, 121, 50, 0, 0, 0, 0, 13, 137, 224, 166, 149, 224, 166, 150, 224, 166, 168, 72, 8, 0, 0,
-			0, 38, 24, 224, 166, 172, 224, 166, 190, 224, 166, 184, 224, 166, 168, 224, 166, 149, 224, 167, 139, 224, 166, 184, 224, 166, 168, 71, 118, 89,
-			39, 50, 6, 49, 39, 89, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 18, 224, 166, 134, 224, 166, 168, 224, 166, 149, 224, 167,
-			139, 224, 166, 176, 224, 166, 190, 118, 50, 4, 49, 39, 34, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 52, 6, 121, 34, 71, 40, 72,
-			0, 0, 0, 11, 4, 95, 48, 77, 50, 55, 6, 35, 145, 0, 0, 10, 67, 4, 147, 128, 65, 39, 89, 47, 0, 12, 4, 95, 48, 77,
-			51, 49, 6, 39, 139, 37, 0, 0, 0, 13, 4, 95, 48, 77, 49, 107, 6, 35, 57, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 166, 134, 224, 166, 174, 224, 166, 190, 224, 167, 159, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 15, 224, 166, 160, 224, 166, 151, 224, 166, 172, 224, 166, 190, 224, 166, 156, 141, 121, 81, 6,
-			71, 35, 79, 0, 13, 137, 224, 166, 143, 224, 166, 172, 224, 166, 130, 72, 8, 0, 0, 9, 134, 224, 166, 184, 224, 167, 135, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 26, 15, 224, 166, 159, 224, 166, 168, 224, 166, 159, 224, 166, 168, 224, 167, 135, 47, 121, 50, 4, 47, 121,
-			50, 36, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 166, 134, 224, 166, 174, 224, 166, 190, 224, 166, 176, 72, 0, 0, 0, 22, 146, 224,
-			166, 149, 224, 166, 191, 224, 166, 168, 224, 167, 141, 224, 166, 164, 224, 167, 129, 72, 8, 18, 143, 224, 166, 134, 224, 166, 170, 224, 166, 168,
-			224, 166, 190, 224, 166, 176, 72, 0, 12, 137, 224, 166, 135, 224, 166, 168, 224, 166, 191, 72, 0, 0, 18, 143, 224, 166, 164, 224, 167, 139,
-			224, 166, 174, 224, 166, 190, 224, 167, 159, 72, 0, 0, 0, 0, 0, 28, 18, 224, 166, 168, 224, 166, 190, 224, 166, 174, 224, 166, 161, 224,
-			166, 190, 224, 166, 149, 50, 118, 65, 6, 72, 118, 49, 0, 24, 15, 224, 166, 134, 224, 166, 168, 224, 166, 154, 224, 166, 190, 224, 166, 168,
-			35, 50, 4, 80, 35, 50, 0, 0, 32, 21, 224, 166, 134, 224, 166, 176, 224, 166, 190, 224, 166, 174, 224, 166, 172, 224, 166, 190, 224, 166,
-			151, 35, 34, 118, 65, 6, 71, 35, 81, 0, 0, 0, 27, 15, 224, 166, 149, 224, 166, 154, 224, 166, 149, 224, 166, 154, 224, 166, 191, 49,
-			121, 4, 80, 6, 49, 121, 80, 37, 0, 0, 0, 32, 21, 224, 166, 168, 224, 166, 190, 224, 166, 149, 224, 166, 155, 224, 166, 190, 224, 166,
-			172, 224, 166, 191, 50, 118, 49, 80, 107, 118, 71, 37, 0, 0, 0, 28, 18, 224, 166, 154, 224, 166, 190, 224, 166, 178, 224, 166, 172, 224,
-			166, 190, 224, 166, 156, 80, 35, 55, 6, 71, 35, 79, 0, 18, 143, 224, 166, 147, 224, 166, 151, 224, 167, 129, 224, 166, 178, 224, 167, 139,
-			72, 0, 0, 12, 137, 224, 166, 164, 224, 166, 172, 224, 167, 135, 8, 0, 0, 38, 24, 224, 166, 149, 224, 166, 168, 224, 166, 149, 224, 166,
-			154, 224, 166, 190, 224, 166, 129, 224, 166, 170, 224, 166, 190, 49, 121, 50, 121, 49, 4, 80, 150, 118, 48, 35, 0, 0, 56, 39, 224, 166,
-			170, 224, 167, 141, 224, 166, 176, 224, 166, 167, 224, 166, 190, 224, 166, 168, 224, 166, 174, 224, 166, 168, 224, 167, 141, 224, 166, 164, 224, 167,
-			141, 224, 166, 176, 224, 167, 128, 48, 34, 121, 142, 35, 50, 4, 65, 121, 50, 6, 47, 34, 37, 0, 0, 0, 0, 12, 137, 224, 166, 164,
-			224, 166, 172, 224, 167, 129, 8, 10, 134, 224, 166, 134, 224, 166, 176, 72, 8, 0, 22, 12, 224, 166, 155, 224, 166, 159, 224, 166, 170, 224,
-			166, 159, 143, 121, 47, 6, 48, 121, 47, 0, 15, 140, 224, 166, 168, 224, 167, 128, 224, 166, 154, 224, 167, 135, 72, 0, 0, 12, 137, 224,
-			166, 137, 224, 166, 170, 224, 166, 176, 72, 0, 0, 0, 15, 140, 224, 166, 147, 224, 166, 159, 224, 166, 190, 224, 166, 176, 72, 15, 140, 224,
-			166, 143, 224, 166, 159, 224, 166, 190, 224, 166, 176, 72, 15, 140, 224, 166, 143, 224, 166, 168, 224, 166, 190, 224, 166, 176, 72, 15, 140, 224,
-			166, 143, 224, 166, 159, 224, 166, 190, 224, 166, 176, 72, 0, 34, 21, 224, 166, 136, 224, 166, 151, 224, 166, 178, 224, 166, 170, 224, 166, 190,
-			224, 166, 150, 224, 167, 128, 37, 81, 39, 55, 4, 48, 118, 49, 107, 37, 0, 30, 18, 224, 166, 134, 224, 166, 184, 224, 166, 168, 224, 166,
-			164, 224, 166, 178, 224, 167, 135, 118, 89, 39, 50, 4, 47, 39, 55, 36, 0, 0, 0, 18, 143, 224, 166, 164, 224, 167, 139, 224, 166, 174,
-			224, 166, 190, 224, 166, 176, 72, 0, 0, 33, 21, 224, 166, 134, 224, 166, 164, 224, 166, 184, 224, 166, 172, 224, 166, 190, 224, 166, 156, 224,
-			167, 128, 35, 47, 39, 91, 4, 71, 118, 79, 113, 0, 0, 32, 21, 224, 166, 149, 224, 166, 190, 224, 166, 178, 224, 166, 149, 224, 167, 135,
-			224, 166, 164, 224, 167, 129, 49, 35, 55, 4, 49, 36, 47, 40, 0, 28, 18, 224, 166, 184, 224, 167, 139, 224, 166, 174, 224, 166, 172, 224,
-			166, 190, 224, 166, 176, 91, 39, 65, 4, 71, 35, 34, 0, 16, 140, 224, 166, 133, 224, 166, 165, 224, 166, 172, 224, 166, 190, 72, 8, 0,
-			0, 12, 137, 224, 166, 175, 224, 166, 166, 224, 166, 191, 8, 0, 34, 21, 224, 166, 156, 224, 166, 178, 224, 166, 150, 224, 166, 190, 224, 166,
-			172, 224, 166, 190, 224, 166, 176, 79, 121, 55, 4, 49, 107, 35, 71, 35, 34, 0, 0, 0, 0, 28, 18, 224, 166, 149, 224, 166, 178, 224,
-			166, 149, 224, 166, 190, 224, 166, 164, 224, 166, 190, 49, 121, 55, 49, 35, 47, 35, 0, 29, 18, 224, 166, 149, 224, 166, 176, 224, 166, 166,
-			224, 166, 190, 224, 166, 164, 224, 166, 190, 49, 121, 34, 4, 72, 35, 47, 118, 0, 38, 24, 224, 166, 174, 224, 166, 153, 224, 167, 141, 224,
-			166, 151, 224, 166, 178, 224, 166, 172, 224, 166, 190, 224, 166, 176, 65, 121, 50, 81, 6, 39, 55, 4, 71, 35, 34, 0, 0, 0, 0, 34,
-			21, 224, 166, 150, 224, 166, 190, 224, 166, 170, 224, 166, 155, 224, 166, 190, 224, 167, 156, 224, 166, 190, 49, 107, 35, 48, 4, 80, 107, 35,
-			34, 118, 0, 26, 15, 224, 166, 134, 224, 166, 170, 224, 166, 168, 224, 166, 156, 224, 166, 168, 118, 48, 39, 50, 4, 57, 39, 50, 0, 0,
-			32, 21, 224, 166, 156, 224, 166, 190, 224, 166, 178, 224, 166, 184, 224, 166, 190, 224, 166, 156, 224, 166, 191, 79, 35, 55, 6, 91, 118, 79,
-			37, 0, 32, 21, 224, 166, 154, 224, 166, 190, 224, 166, 178, 224, 166, 172, 224, 166, 190, 224, 166, 156, 224, 166, 191, 80, 35, 55, 6, 71,
-			35, 79, 37, 0, 0, 0, 0, 0, 0, 41, 27, 224, 166, 137, 224, 166, 164, 224, 167, 141, 224, 166, 164, 224, 166, 176, 224, 166, 166, 224,
-			166, 190, 224, 166, 164, 224, 166, 190, 40, 47, 47, 6, 39, 34, 4, 72, 35, 47, 35, 0, 0, 38, 24, 224, 166, 134, 224, 166, 166, 224,
-			166, 172, 224, 166, 149, 224, 166, 190, 224, 167, 159, 224, 166, 166, 224, 166, 190, 118, 72, 39, 71, 4, 49, 35, 57, 6, 72, 118, 0, 40,
-			27, 224, 166, 133, 224, 166, 174, 224, 166, 178, 224, 166, 149, 224, 166, 190, 224, 166, 168, 224, 167, 141, 224, 166, 164, 224, 166, 191, 35, 65,
-			39, 55, 4, 49, 35, 50, 47, 37, 0, 15, 140, 224, 166, 172, 224, 166, 191, 224, 166, 168, 224, 166, 190, 72, 15, 140, 224, 166, 164, 224,
-			166, 190, 224, 166, 176, 224, 166, 190, 72, 15, 140, 224, 166, 134, 224, 166, 174, 224, 166, 176, 224, 166, 190, 72, 12, 6, 224, 166, 162, 224,
-			166, 188, 107, 70, 121, 0, 0, 15, 140, 224, 166, 134, 224, 166, 170, 224, 166, 168, 224, 166, 191, 72, 15, 140, 224, 166, 134, 224, 166, 170,
-			224, 166, 168, 224, 166, 191, 72, 0, 12, 137, 224, 166, 134, 224, 166, 174, 224, 166, 191, 72, 0, 0, 0, 22, 12, 224, 166, 154, 224, 166,
-			159, 224, 166, 170, 224, 166, 159, 80, 121, 47, 4, 48, 121, 47, 0, 0, 21, 12, 224, 166, 143, 224, 166, 149, 224, 166, 156, 224, 166, 168,
-			148, 49, 6, 79, 121, 50, 0, 28, 18, 224, 166, 134, 224, 166, 184, 224, 166, 149, 224, 166, 190, 224, 166, 176, 224, 166, 190, 118, 89, 4,
-			49, 118, 34, 118, 0, 0, 0, 28, 18, 224, 166, 159, 224, 166, 190, 224, 166, 168, 224, 166, 159, 224, 166, 190, 224, 166, 168, 47, 118, 50,
-			4, 47, 35, 50, 0, 25, 15, 224, 166, 150, 224, 167, 129, 224, 166, 176, 224, 166, 170, 224, 166, 191, 49, 107, 40, 4, 34, 48, 37, 0,
-			0, 0, 0, 0, 0, 33, 21, 224, 166, 150, 224, 166, 190, 224, 166, 168, 224, 166, 184, 224, 166, 190, 224, 166, 174, 224, 166, 190, 49, 107,
-			35, 50, 4, 91, 35, 65, 35, 0, 0, 0, 40, 27, 224, 166, 135, 224, 166, 129, 224, 166, 166, 224, 167, 129, 224, 166, 176, 224, 166, 155,
-			224, 166, 190, 224, 166, 168, 224, 166, 190, 124, 72, 40, 34, 6, 80, 107, 118, 50, 118, 0, 0, 0, 0, 0, 40, 27, 224, 166, 185, 224,
-			166, 190, 224, 166, 176, 224, 166, 190, 224, 166, 174, 224, 166, 156, 224, 166, 190, 224, 166, 166, 224, 166, 190, 107, 35, 34, 118, 65, 6, 79,
-			35, 72, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 166, 164, 224, 167, 129,
-			224, 166, 174, 224, 166, 191, 72, 0, 31, 18, 224, 166, 134, 224, 166, 174, 224, 166, 156, 224, 166, 168, 224, 166, 164, 224, 166, 190, 118, 65,
-			6, 57, 35, 50, 39, 6, 47, 118, 0, 0, 0, 29, 18, 224, 166, 152, 224, 166, 159, 224, 166, 149, 224, 166, 190, 224, 166, 178, 224, 167,
-			128, 146, 121, 47, 6, 49, 35, 55, 37, 0, 0, 33, 21, 224, 166, 152, 224, 166, 190, 224, 166, 184, 224, 166, 170, 224, 166, 190, 224, 166,
-			164, 224, 166, 190, 81, 107, 118, 89, 6, 48, 118, 47, 35, 0, 33, 21, 224, 166, 149, 224, 166, 190, 224, 166, 176, 224, 166, 150, 224, 166,
-			190, 224, 166, 168, 224, 166, 190, 49, 35, 34, 4, 49, 107, 35, 50, 35, 0, 34, 21, 224, 166, 149, 224, 166, 190, 224, 166, 156, 224, 166,
-			178, 224, 166, 178, 224, 166, 164, 224, 166, 190, 49, 35, 79, 39, 55, 4, 55, 121, 47, 35, 0, 35, 21, 224, 166, 149, 224, 166, 172, 224,
-			166, 176, 224, 166, 150, 224, 166, 190, 224, 166, 168, 224, 166, 190, 49, 121, 71, 121, 34, 4, 49, 107, 118, 50, 35, 0, 0, 0, 0, 37,
-			24, 224, 166, 149, 224, 167, 159, 224, 167, 135, 224, 166, 166, 224, 166, 150, 224, 166, 190, 224, 166, 168, 224, 166, 190, 49, 121, 6, 36, 72,
-			49, 107, 35, 50, 35, 0, 0, 0, 0, 0, 36, 24, 224, 166, 149, 224, 166, 190, 224, 166, 168, 224, 166, 170, 224, 166, 190, 224, 166, 164,
-			224, 166, 178, 224, 166, 190, 49, 118, 50, 6, 48, 35, 47, 55, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 9, 2, 95, 51, 47, 6, 37, 50, 0, 0, 9, 2, 95,
-			50, 72, 6, 40, 57, 0, 0, 8, 2, 95, 49, 6, 148, 49, 0, 0, 11, 2, 95, 48, 91, 6, 40, 50, 57, 121, 0, 0, 9, 2,
-			95, 55, 91, 6, 35, 47, 0, 0, 9, 2, 95, 54, 149, 6, 121, 57, 0, 0, 9, 2, 95, 53, 48, 6, 128, 76, 0, 0, 9, 2,
-			95, 52, 149, 6, 35, 34, 0, 0, 0, 0, 9, 2, 95, 57, 50, 6, 121, 57, 0, 0, 8, 2, 95, 56, 6, 35, 141, 0, 0, 17,
-			2, 95, 63, 48, 34, 6, 39, 91, 50, 121, 76, 37, 107, 50, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 8, 4, 95, 224, 166, 147, 39, 0, 0, 0, 0, 9, 4, 95, 224, 166, 144, 39, 57, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 4, 95, 224, 166, 143, 36, 0, 0, 0, 0, 0, 0, 31, 21, 224, 166, 154, 224, 166, 190, 224, 166, 178, 224, 166, 154,
-			224, 167, 129, 224, 166, 178, 224, 167, 139, 80, 118, 55, 80, 40, 55, 39, 0, 0, 0, 0, 28, 18, 224, 166, 160, 224, 166, 191, 224, 166,
-			149, 224, 166, 160, 224, 166, 190, 224, 166, 149, 141, 37, 49, 4, 141, 35, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 164, 224, 166, 190, 224, 166, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
-			18, 224, 166, 149, 224, 166, 190, 224, 166, 176, 224, 166, 172, 224, 166, 190, 224, 166, 176, 49, 35, 34, 4, 71, 35, 34, 0, 29, 18, 224,
-			166, 172, 224, 167, 129, 224, 166, 167, 224, 166, 172, 224, 166, 190, 224, 166, 176, 71, 40, 72, 107, 4, 71, 35, 34, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 19, 143, 224, 166, 149, 224, 167, 139, 224, 166, 165, 224, 166, 190, 224, 167, 159, 72, 8, 0, 0, 0, 24, 149,
-			224, 166, 149, 224, 166, 176, 224, 166, 155, 224, 166, 191, 224, 166, 178, 224, 166, 190, 224, 166, 174, 72, 0, 0, 0, 0, 0, 50, 36, 224,
-			166, 170, 224, 167, 139, 224, 166, 183, 224, 167, 141, 224, 166, 159, 224, 166, 174, 224, 166, 190, 224, 166, 184, 224, 167, 141, 224, 166, 159, 224,
-			166, 190, 224, 166, 176, 48, 39, 89, 47, 6, 65, 118, 89, 47, 118, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 42, 27, 224, 166, 135, 224, 166, 174, 224, 166, 168, 224, 166, 149, 224, 166, 178, 224, 167, 141, 224, 166, 175, 224,
-			166, 190, 224, 166, 168, 37, 65, 39, 50, 4, 49, 35, 55, 6, 55, 118, 50, 0, 0, 0, 0, 37, 24, 224, 166, 170, 224, 166, 190, 224,
-			166, 182, 224, 166, 172, 224, 166, 190, 224, 166, 178, 224, 166, 191, 224, 166, 182, 48, 35, 89, 107, 6, 71, 35, 55, 37, 91, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 9, 224, 166, 149, 224, 167, 141, 224, 166, 183, 49, 4, 39, 57, 65, 40, 138, 36, 50,
-			12, 39, 91, 12, 6, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 166, 147, 224, 166, 176, 224, 166, 190, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 230, 9, 0, 0, 48, 0, 0, 0, 231, 9, 0, 0, 49, 0, 0, 0,
-			232, 9, 0, 0, 50, 0, 0, 0, 233, 9, 0, 0, 51, 0, 0, 0, 234, 9, 0, 0, 52, 0, 0, 0, 235, 9, 0, 0, 53, 0,
-			0, 0, 236, 9, 0, 0, 54, 0, 0, 0, 237, 9, 0, 0, 55, 0, 0, 0, 238, 9, 0, 0, 56, 0, 0, 0, 239, 9, 0, 0,
-			57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 58, 0, 2, 17, 66, 3, 84, 0, 3, 84, 109, 0, 7, 6, 1, 2, 0, 1, 17, 67,
-			3, 130, 0, 7, 6, 1, 3, 0, 4, 1, 17, 65, 3, 68, 0, 1, 17, 67, 0, 7, 6, 1, 4, 0, 3, 0, 2, 32, 3, 108,
-			0, 7, 6, 1, 6, 0, 3, 109, 0, 224, 166, 129, 3, 130, 0, 224, 167, 141, 224, 166, 175, 224, 166, 190, 3, 148, 0, 7, 6, 1,
-			7, 0, 3, 35, 0, 224, 166, 129, 3, 128, 0, 7, 6, 1, 8, 0, 3, 37, 0, 224, 166, 129, 3, 124, 0, 7, 6, 1, 9, 0,
-			3, 37, 0, 224, 166, 129, 3, 124, 0, 7, 6, 1, 10, 0, 3, 40, 0, 224, 166, 129, 3, 133, 0, 7, 6, 1, 11, 0, 3, 40,
-			0, 224, 166, 129, 3, 133, 0, 7, 6, 1, 12, 0, 3, 34, 37, 0, 224, 166, 129, 3, 34, 124, 0, 7, 6, 1, 13, 0, 3, 45,
-			0, 7, 6, 1, 16, 0, 3, 148, 0, 224, 166, 129, 3, 148, 150, 0, 7, 6, 1, 16, 0, 3, 36, 0, 224, 166, 129, 3, 126, 0,
-			224, 167, 141, 224, 166, 175, 224, 166, 190, 3, 148, 0, 7, 6, 1, 17, 0, 3, 39, 57, 0, 224, 166, 129, 3, 131, 57, 0, 7, 6,
-			1, 20, 0, 3, 39, 0, 224, 166, 129, 3, 131, 0, 7, 6, 1, 20, 0, 3, 119, 0, 7, 6, 1, 21, 0, 3, 39, 58, 0, 224,
-			166, 129, 3, 131, 58, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 3, 49, 109, 0, 224, 167, 141, 224, 166, 183, 2, 17, 66,
-			3, 145, 145, 0, 224, 167, 141, 224, 166, 183, 3, 145, 145, 109, 0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 109, 0,
-			7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 109, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 109, 0,
-			7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 76, 0, 3, 76, 109, 0,
-			7, 6, 1, 28, 0, 2, 17, 66, 3, 149, 0, 3, 149, 109, 0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 79, 0, 224, 167, 141,
-			224, 166, 172, 2, 17, 66, 0, 4, 3, 79, 109, 0, 224, 167, 141, 224, 166, 172, 0, 224, 167, 141, 224, 166, 158, 2, 17, 66, 3, 81,
-			81, 0, 224, 167, 141, 224, 166, 158, 3, 81, 81, 131, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6,
-			1, 31, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 3, 139, 109, 0, 7, 6,
-			1, 33, 0, 2, 17, 66, 3, 141, 0, 3, 141, 109, 0, 7, 6, 1, 34, 0, 224, 166, 188, 2, 17, 66, 3, 70, 0, 224, 166, 188,
-			3, 70, 109, 0, 2, 17, 66, 3, 140, 0, 3, 140, 109, 0, 7, 6, 1, 35, 0, 224, 166, 188, 2, 17, 66, 3, 107, 70, 0, 224,
-			166, 188, 3, 107, 70, 109, 0, 2, 17, 66, 3, 142, 0, 3, 142, 109, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 50, 0, 3, 50,
-			109, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 2, 32, 3, 47, 39, 0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17,
-			66, 3, 25, 0, 3, 25, 109, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 72, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 2, 17,
-			66, 3, 138, 0, 3, 138, 109, 0, 7, 6, 1, 41, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 43, 0, 2, 17,
-			66, 3, 48, 0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 2, 17, 66, 3, 83, 0, 3, 83, 109, 0, 7, 6, 1, 45, 0, 2, 17,
-			66, 3, 71, 0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 2, 17,
-			66, 3, 65, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 224, 166, 188, 2, 17, 66, 3, 0, 1, 141, 167, 224, 2, 17, 66, 32, 3,
-			12, 0, 1, 141, 167, 224, 2, 32, 3, 12, 121, 0, 224, 166, 188, 8, 2, 17, 66, 3, 57, 0, 224, 166, 188, 3, 57, 109, 0, 2,
-			17, 66, 3, 75, 0, 3, 75, 109, 0, 4, 1, 141, 167, 224, 2, 17, 67, 3, 148, 0, 224, 166, 190, 1, 141, 167, 224, 0, 7, 6,
-			1, 49, 0, 2, 17, 66, 3, 34, 0, 3, 34, 109, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 109, 0, 7, 6,
-			1, 55, 0, 2, 224, 167, 141, 224, 166, 178, 3, 89, 0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17,
-			66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 57, 0, 4, 2, 224, 167, 141, 224, 166, 164, 3, 89, 0, 2, 224, 167, 141, 224, 166,
-			165, 0, 2, 224, 167, 141, 224, 166, 175, 0, 4, 2, 17, 66, 3, 91, 0, 224, 167, 141, 224, 166, 172, 8, 2, 17, 66, 0, 4, 3,
-			91, 109, 0, 224, 167, 141, 224, 166, 172, 8, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 2, 32, 3, 107, 39, 0, 3, 107,
-			109, 0, 7, 6, 1, 61, 0, 3, 0, 7, 6, 1, 63, 0, 1, 17, 67, 3, 35, 0, 224, 166, 129, 1, 17, 67, 3, 128, 0, 7,
-			6, 1, 64, 0, 1, 17, 67, 3, 37, 0, 224, 166, 129, 1, 17, 67, 3, 124, 0, 7, 6, 1, 65, 0, 1, 17, 67, 3, 37, 0,
-			224, 166, 129, 1, 17, 67, 3, 124, 0, 7, 6, 1, 66, 0, 1, 17, 67, 3, 40, 0, 224, 166, 129, 1, 17, 67, 3, 133, 0, 7,
-			6, 1, 67, 0, 1, 17, 67, 3, 40, 0, 224, 166, 129, 1, 17, 67, 3, 133, 0, 7, 6, 1, 68, 0, 1, 17, 67, 3, 34, 6,
-			37, 0, 224, 166, 129, 1, 17, 67, 3, 34, 6, 124, 0, 7, 6, 1, 72, 0, 1, 17, 67, 3, 36, 0, 224, 166, 137, 1, 17, 67,
-			3, 36, 58, 0, 224, 166, 129, 1, 17, 67, 3, 126, 0, 7, 6, 1, 73, 0, 1, 17, 67, 3, 39, 57, 0, 224, 166, 129, 1, 17,
-			67, 3, 131, 57, 0, 7, 6, 1, 76, 0, 1, 17, 67, 3, 39, 0, 224, 166, 129, 1, 17, 67, 3, 131, 0, 7, 6, 1, 77, 0,
-			1, 17, 67, 3, 39, 58, 0, 224, 166, 129, 1, 17, 67, 3, 131, 58, 0, 7, 6, 1, 78, 0, 1, 17, 67, 3, 0, 7, 6, 1,
-			79, 0, 3, 47, 0, 7, 6, 1, 93, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 107,
-			70, 0, 2, 32, 3, 107, 70, 39, 0, 3, 107, 70, 109, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 0, 8, 2, 17, 66, 3, 57,
-			0, 2, 32, 3, 57, 39, 0, 3, 57, 109, 0, 7, 6, 0, 4, 224, 166, 139, 3, 44, 0, 224, 167, 131, 0, 224, 167, 132, 0, 224,
-			167, 160, 0, 4, 224, 166, 140, 3, 45, 0, 224, 167, 161, 0, 224, 167, 162, 0, 224, 167, 163, 0, 4, 45, 1, 32, 15, 2, 32, 15,
-			3, 71, 37, 57, 6, 39, 81, 0, 45, 8, 32, 2, 32, 15, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts7 = FileInMemory_createWithData (8087, reinterpret_cast<const char *> (&espeakdata_dicts7_data), 
-			U"espeak-1.48.04-source/espeak-data/bn_dict", 
-			U"bn");
-		my addItem_move (espeakdata_dicts7.move());
+		static unsigned char espeakdata_dicts6_data[2830] = {
+			0, 4, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 32, 15, 0, 0, 48, 0, 0, 0, 33, 15, 0, 0, 49, 0,
+			0, 0, 34, 15, 0, 0, 50, 0, 0, 0, 35, 15, 0, 0, 51, 0, 0, 0, 36, 15, 0, 0, 52, 0, 0, 0, 37, 15, 0, 0,
+			53, 0, 0, 0, 38, 15, 0, 0, 54, 0, 0, 0, 39, 15, 0, 0, 55, 0, 0, 0, 40, 15, 0, 0, 56, 0, 0, 0, 41, 15,
+			0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 65, 0, 4, 1, 21, 2, 32, 3, 49, 0, 2, 17, 66, 0, 3, 49, 35, 0,
+			7, 6, 1, 66, 0, 4, 1, 21, 2, 32, 3, 146, 0, 2, 17, 66, 0, 3, 146, 35, 0, 7, 6, 1, 67, 0, 4, 1, 21, 2,
+			32, 3, 81, 0, 2, 17, 66, 0, 3, 81, 35, 0, 7, 6, 1, 68, 0, 4, 1, 21, 2, 32, 3, 147, 0, 2, 17, 66, 0, 3,
+			147, 35, 0, 7, 6, 1, 69, 0, 4, 1, 21, 2, 32, 3, 68, 0, 2, 17, 66, 0, 3, 68, 35, 0, 7, 6, 1, 70, 0, 4,
+			1, 21, 2, 32, 3, 80, 0, 2, 17, 66, 0, 3, 80, 35, 0, 7, 6, 1, 71, 0, 4, 1, 21, 2, 32, 3, 144, 0, 2, 17,
+			66, 0, 3, 144, 35, 0, 7, 6, 1, 72, 0, 4, 1, 21, 2, 32, 3, 79, 0, 2, 17, 66, 0, 3, 79, 35, 0, 7, 6, 1,
+			74, 0, 4, 1, 21, 2, 32, 3, 67, 0, 2, 17, 66, 0, 3, 67, 35, 0, 7, 6, 1, 75, 0, 4, 1, 21, 2, 32, 3, 140,
+			0, 2, 17, 66, 0, 3, 140, 35, 0, 7, 6, 1, 76, 0, 4, 1, 21, 2, 32, 3, 142, 0, 2, 17, 66, 0, 3, 142, 35, 0,
+			7, 6, 1, 77, 0, 4, 1, 21, 2, 32, 3, 141, 0, 2, 17, 66, 0, 3, 141, 35, 0, 7, 6, 1, 78, 0, 4, 1, 21, 2,
+			32, 3, 143, 0, 2, 17, 66, 0, 3, 143, 35, 0, 7, 6, 1, 79, 0, 4, 1, 21, 2, 32, 3, 66, 0, 2, 17, 66, 0, 3,
+			66, 35, 0, 7, 6, 1, 80, 0, 4, 1, 21, 2, 32, 3, 47, 0, 2, 17, 66, 0, 3, 47, 35, 0, 7, 6, 1, 81, 0, 4,
+			1, 21, 2, 32, 3, 138, 0, 2, 17, 66, 0, 3, 138, 35, 0, 7, 6, 1, 82, 0, 4, 1, 21, 2, 32, 3, 72, 0, 2, 17,
+			66, 0, 3, 72, 35, 0, 7, 6, 1, 83, 0, 4, 1, 21, 2, 32, 3, 139, 0, 2, 17, 66, 0, 3, 139, 35, 0, 7, 6, 1,
+			84, 0, 4, 1, 21, 2, 32, 3, 50, 0, 2, 17, 66, 0, 3, 50, 35, 0, 7, 6, 1, 85, 0, 4, 1, 21, 2, 32, 3, 48,
+			0, 2, 17, 66, 0, 3, 48, 35, 0, 7, 6, 1, 86, 0, 4, 1, 21, 2, 32, 3, 136, 0, 2, 17, 66, 0, 3, 136, 35, 0,
+			7, 6, 1, 87, 0, 4, 1, 21, 2, 32, 3, 71, 0, 2, 17, 66, 0, 3, 71, 35, 0, 7, 6, 1, 88, 0, 4, 1, 21, 2,
+			32, 3, 137, 0, 2, 17, 66, 0, 3, 137, 35, 0, 7, 6, 1, 89, 0, 4, 1, 21, 2, 32, 3, 65, 0, 2, 17, 66, 0, 3,
+			65, 35, 0, 7, 6, 1, 90, 0, 4, 1, 21, 2, 32, 3, 149, 0, 2, 17, 66, 0, 3, 149, 35, 0, 7, 6, 1, 91, 0, 4,
+			1, 21, 2, 32, 3, 151, 0, 2, 17, 66, 0, 3, 151, 35, 0, 7, 6, 1, 92, 0, 4, 1, 21, 2, 32, 3, 150, 0, 2, 17,
+			66, 0, 3, 150, 35, 0, 7, 6, 1, 93, 0, 4, 1, 21, 2, 32, 3, 152, 0, 2, 17, 66, 0, 3, 152, 35, 0, 7, 6, 1,
+			94, 0, 4, 1, 21, 2, 32, 3, 58, 0, 2, 17, 66, 0, 3, 58, 35, 0, 7, 6, 1, 95, 0, 4, 1, 21, 2, 32, 3, 90,
+			0, 2, 17, 66, 0, 3, 90, 35, 0, 7, 6, 1, 96, 0, 4, 1, 21, 2, 32, 3, 88, 0, 2, 17, 66, 0, 3, 88, 35, 0,
+			7, 6, 1, 97, 0, 4, 1, 21, 2, 32, 3, 19, 0, 2, 17, 66, 0, 3, 19, 35, 0, 7, 6, 1, 98, 0, 4, 1, 21, 2,
+			32, 3, 57, 0, 2, 17, 66, 0, 3, 57, 35, 0, 7, 6, 1, 99, 0, 4, 1, 21, 2, 32, 3, 34, 0, 2, 17, 66, 0, 3,
+			34, 35, 0, 7, 6, 1, 100, 0, 4, 1, 21, 2, 32, 3, 55, 0, 2, 17, 66, 0, 3, 55, 35, 0, 7, 6, 1, 101, 0, 4,
+			1, 21, 2, 32, 3, 91, 0, 2, 17, 66, 0, 3, 91, 35, 0, 7, 6, 1, 102, 0, 4, 1, 21, 2, 32, 3, 93, 0, 2, 17,
+			66, 0, 3, 93, 35, 0, 7, 6, 1, 103, 0, 4, 1, 21, 2, 32, 3, 89, 0, 2, 17, 66, 0, 3, 89, 35, 0, 7, 6, 1,
+			104, 0, 4, 1, 21, 2, 32, 3, 108, 0, 2, 17, 66, 0, 3, 108, 35, 0, 7, 6, 1, 105, 0, 4, 1, 21, 2, 32, 3, 19,
+			0, 2, 17, 66, 0, 3, 19, 35, 0, 7, 6, 1, 106, 0, 4, 1, 21, 2, 32, 3, 49, 93, 0, 2, 17, 66, 0, 3, 49, 93,
+			35, 0, 7, 6, 224, 189, 0, 186, 3, 36, 0, 178, 3, 37, 0, 188, 3, 39, 0, 180, 3, 40, 0, 182, 3, 44, 0, 183, 3, 44,
+			12, 0, 184, 3, 45, 0, 185, 3, 45, 12, 0, 179, 3, 112, 0, 187, 3, 114, 0, 177, 3, 118, 0, 189, 3, 119, 0, 181, 3, 123,
+			0, 7, 6, 224, 190, 0, 4, 176, 1, 21, 2, 32, 3, 19, 0, 176, 2, 17, 66, 0, 184, 1, 21, 2, 32, 0, 184, 2, 17, 66,
+			0, 4, 176, 3, 19, 35, 0, 184, 0, 4, 178, 1, 21, 2, 32, 3, 34, 0, 178, 2, 17, 66, 0, 178, 3, 34, 35, 0, 4, 159,
+			1, 21, 2, 32, 3, 47, 0, 159, 2, 17, 66, 0, 159, 3, 47, 35, 0, 4, 164, 1, 21, 2, 32, 3, 48, 0, 164, 2, 17, 66,
+			0, 164, 3, 48, 35, 0, 4, 144, 1, 21, 2, 32, 3, 49, 0, 144, 2, 17, 66, 0, 144, 3, 49, 35, 0, 4, 185, 1, 21, 2,
+			32, 3, 49, 93, 0, 185, 2, 17, 66, 0, 185, 3, 49, 93, 35, 0, 4, 163, 1, 21, 2, 32, 3, 50, 0, 163, 2, 17, 66, 0,
+			163, 3, 50, 35, 0, 4, 179, 1, 21, 2, 32, 3, 55, 0, 179, 2, 17, 66, 0, 179, 3, 55, 35, 0, 4, 177, 1, 21, 2, 32,
+			3, 57, 0, 177, 2, 17, 66, 0, 177, 3, 57, 35, 0, 4, 173, 1, 21, 2, 32, 3, 58, 0, 173, 2, 17, 66, 0, 173, 3, 58,
+			35, 0, 4, 168, 1, 21, 2, 32, 3, 65, 0, 168, 2, 17, 66, 0, 168, 3, 65, 35, 0, 4, 158, 1, 21, 2, 32, 3, 66, 0,
+			158, 2, 17, 66, 0, 158, 3, 66, 35, 0, 4, 153, 1, 21, 2, 32, 3, 67, 0, 153, 2, 17, 66, 0, 153, 3, 67, 35, 0, 4,
+			148, 1, 21, 2, 32, 3, 68, 0, 148, 2, 17, 66, 0, 148, 3, 68, 35, 0, 4, 166, 1, 21, 2, 32, 3, 71, 0, 166, 2, 17,
+			66, 0, 166, 3, 71, 35, 0, 4, 161, 1, 21, 2, 32, 3, 72, 0, 161, 2, 17, 66, 0, 161, 3, 72, 35, 0, 4, 151, 1, 21,
+			2, 32, 3, 79, 0, 151, 2, 17, 66, 0, 151, 3, 79, 35, 0, 4, 149, 1, 21, 2, 32, 3, 80, 0, 149, 2, 17, 66, 0, 149,
+			3, 80, 35, 0, 4, 146, 1, 21, 2, 32, 3, 81, 0, 146, 2, 17, 66, 0, 146, 3, 81, 35, 0, 4, 175, 1, 21, 2, 32, 3,
+			88, 0, 175, 2, 17, 66, 0, 175, 3, 88, 35, 0, 4, 182, 1, 21, 2, 32, 3, 89, 0, 182, 2, 17, 66, 0, 182, 3, 89, 35,
+			0, 4, 174, 1, 21, 2, 32, 3, 90, 0, 174, 2, 17, 66, 0, 174, 3, 90, 35, 0, 4, 180, 1, 21, 2, 32, 3, 91, 0, 180,
+			2, 17, 66, 0, 180, 3, 91, 35, 0, 4, 181, 1, 21, 2, 32, 3, 93, 0, 181, 2, 17, 66, 0, 181, 3, 93, 35, 0, 4, 183,
+			1, 21, 2, 32, 3, 108, 0, 183, 2, 17, 66, 0, 183, 3, 108, 35, 0, 4, 165, 1, 21, 2, 32, 3, 136, 0, 165, 2, 17, 66,
+			0, 165, 3, 136, 35, 0, 4, 167, 1, 21, 2, 32, 3, 137, 0, 167, 2, 17, 66, 0, 167, 3, 137, 35, 0, 4, 160, 1, 21, 2,
+			32, 3, 138, 0, 160, 2, 17, 66, 0, 160, 3, 138, 35, 0, 4, 162, 1, 21, 2, 32, 3, 139, 0, 162, 2, 17, 66, 0, 162, 3,
+			139, 35, 0, 4, 154, 1, 21, 2, 32, 3, 140, 0, 154, 2, 17, 66, 0, 154, 3, 140, 35, 0, 4, 156, 1, 21, 2, 32, 3, 141,
+			0, 156, 2, 17, 66, 0, 156, 3, 141, 35, 0, 4, 155, 1, 21, 2, 32, 3, 142, 0, 155, 2, 17, 66, 0, 155, 3, 142, 35, 0,
+			4, 157, 1, 21, 2, 32, 3, 143, 0, 157, 2, 17, 66, 0, 157, 3, 143, 35, 0, 4, 150, 1, 21, 2, 32, 3, 144, 0, 150, 2,
+			17, 66, 0, 150, 3, 144, 35, 0, 4, 145, 1, 21, 2, 32, 3, 146, 0, 145, 2, 17, 66, 0, 145, 3, 146, 35, 0, 147, 1, 21,
+			2, 32, 3, 147, 0, 147, 3, 147, 35, 0, 4, 169, 1, 21, 2, 32, 3, 149, 0, 169, 2, 17, 66, 0, 169, 3, 149, 35, 0, 4,
+			171, 1, 21, 2, 32, 3, 150, 0, 171, 2, 17, 66, 0, 171, 3, 150, 35, 0, 4, 170, 1, 21, 2, 32, 3, 151, 0, 170, 2, 17,
+			66, 0, 170, 3, 151, 35, 0, 4, 172, 1, 21, 2, 32, 3, 152, 0, 172, 2, 17, 66, 0, 172, 3, 152, 35, 0, 7, 6, 0, 36,
+			3, 72, 39, 55, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts6 = FileInMemory_createWithData (2829, reinterpret_cast<const char *> (&espeakdata_dicts6_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/bo_dict", 
+			U"bo");
+		Collection_addItem (me.peek(), espeakdata_dicts6.transfer());
 
-		static unsigned char espeakdata_dicts8_data[4154] = {
-			0, 4, 0, 0, 22, 12, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 0, 49, 5, 193, 4, 72, 28, 0, 0, 0, 0, 6, 65,
-			8, 71, 36, 0, 0, 0, 6, 195, 4, 208, 128, 28, 0, 0, 6, 65, 12, 89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0,
-			0, 0, 0, 12, 4, 95, 100, 112, 116, 10, 49, 39, 65, 35, 0, 0, 0, 0, 0, 0, 7, 65, 24, 109, 83, 124, 0, 0, 0, 0,
-			7, 196, 24, 244, 133, 76, 76, 0, 6, 65, 28, 79, 36, 0, 0, 0, 0, 0, 6, 65, 32, 35, 49, 0, 0, 0, 0, 14, 1, 35,
-			49, 111, 57, 97, 37, 50, 6, 109, 47, 0, 27, 0, 6, 65, 36, 37, 0, 49, 5, 193, 36, 72, 8, 0, 15, 1, 37, 48, 13, 51,
-			89, 13, 50, 47, 6, 35, 77, 13, 0, 0, 18, 1, 38, 9, 9, 6, 37, 38, 15, 9, 124, 68, 55, 6, 109, 88, 124, 0, 0, 0,
-			8, 65, 40, 96, 110, 47, 124, 0, 0, 0, 9, 67, 21, 68, 192, 36, 123, 0, 76, 14, 1, 42, 35, 89, 47, 36, 16, 6, 37, 89,
-			49, 0, 27, 0, 9, 1, 43, 65, 16, 36, 89, 0, 27, 0, 6, 65, 44, 49, 36, 0, 0, 6, 195, 76, 84, 162, 76, 9, 1, 45,
-			65, 6, 109, 67, 89, 0, 0, 0, 9, 1, 47, 71, 35, 16, 51, 35, 0, 0, 7, 65, 48, 109, 55, 124, 0, 16, 4, 95, 100, 105,
-			97, 72, 57, 6, 109, 69, 36, 89, 37, 89, 0, 0, 0, 0, 0, 7, 65, 52, 109, 65, 124, 0, 0, 0, 0, 0, 7, 65, 56, 109,
-			50, 124, 0, 0, 0, 0, 0, 6, 65, 60, 39, 0, 49, 5, 193, 60, 72, 8, 0, 11, 1, 61, 37, 100, 58, 6, 35, 55, 0, 27,
-			0, 0, 0, 6, 65, 64, 48, 36, 0, 11, 1, 64, 35, 16, 51, 6, 39, 82, 35, 0, 0, 0, 0, 0, 6, 65, 68, 49, 40, 0,
-			0, 0, 6, 195, 84, 224, 64, 72, 0, 0, 8, 65, 72, 109, 51, 52, 13, 0, 0, 0, 0, 12, 4, 95, 100, 111, 116, 48, 6, 40,
-			50, 47, 0, 0, 8, 65, 76, 109, 89, 89, 13, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 7, 196, 76,
-			84, 133, 84, 76, 0, 0, 0, 13, 65, 88, 6, 85, 36, 15, 71, 6, 117, 97, 124, 0, 0, 8, 66, 137, 48, 36, 89, 0, 76, 0,
-			0, 0, 14, 65, 92, 6, 85, 36, 15, 72, 6, 39, 71, 55, 13, 0, 0, 0, 16, 1, 94, 89, 37, 51, 49, 40, 65, 83, 55, 6,
-			109, 49, 89, 0, 0, 0, 7, 65, 96, 37, 49, 89, 0, 0, 0, 0, 0, 12, 65, 100, 6, 37, 15, 81, 69, 109, 100, 124, 0, 0,
-			0, 0, 0, 8, 65, 104, 88, 36, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 84, 225, 83, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 196, 20, 229, 18, 20, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 65, 128, 89, 36, 4, 47, 69, 13, 50, 49, 35, 86, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 195, 64, 83, 19, 72, 28, 0, 0, 0, 14, 4, 95, 109, 99, 110, 65, 35, 49, 69, 6, 110, 50, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 21, 137, 4, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 16, 80, 72, 0, 0, 0, 6, 195, 16, 83, 0, 72, 0, 0, 0, 0, 0, 6, 195, 137, 33, 77, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 192, 72, 28, 0, 0, 0, 0, 0, 6, 195, 84, 228, 192, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 33, 78, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 32, 16, 35, 0, 76, 0, 6, 195, 25, 82, 64, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 19, 128, 35, 50, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 32, 21, 137, 21, 48, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 226, 130, 172, 6, 109, 58, 16, 111, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 21, 33, 83, 76, 0, 7, 66, 32, 80, 109, 0, 76, 0, 0, 0, 14, 4, 95, 111, 103, 111, 49, 39, 55, 6, 37, 47, 35, 0,
-			0, 0, 8, 197, 76, 84, 137, 21, 48, 76, 0, 6, 195, 26, 116, 129, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 20,
-			192, 72, 28, 5, 194, 20, 192, 72, 0, 9, 67, 32, 20, 192, 35, 89, 0, 76, 10, 3, 95, 50, 48, 85, 6, 37, 50, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 4, 95, 98, 114, 118, 71, 69, 6, 36, 82, 36, 0, 0, 0, 0, 0, 20, 4, 95, 97, 99, 50, 72, 6,
-			110, 71, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 26, 116, 133, 52, 76,
-			0, 0, 0, 0, 0, 10, 67, 78, 115, 128, 89, 39, 50, 0, 76, 0, 0, 0, 7, 196, 26, 116, 133, 84, 76, 0, 6, 194, 20, 224,
-			72, 28, 0, 13, 3, 95, 51, 88, 47, 69, 6, 109, 50, 47, 124, 0, 0, 12, 3, 95, 48, 67, 89, 6, 109, 50, 47, 89, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 89, 6, 109, 50, 47, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 16, 72, 12,
-			3, 95, 49, 57, 72, 37, 50, 6, 39, 40, 0, 0, 13, 3, 95, 49, 56, 72, 37, 82, 6, 40, 57, 47, 0, 0, 0, 0, 0, 0,
-			0, 0, 11, 3, 95, 49, 49, 6, 110, 50, 88, 13, 0, 0, 10, 3, 95, 49, 48, 72, 6, 36, 58, 0, 0, 13, 3, 95, 49, 51,
-			47, 69, 6, 109, 72, 88, 13, 0, 0, 12, 3, 95, 49, 50, 72, 6, 39, 72, 88, 13, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37,
-			50, 88, 13, 0, 0, 14, 3, 95, 49, 52, 49, 124, 47, 6, 39, 51, 88, 13, 0, 0, 12, 3, 95, 49, 55, 72, 37, 89, 6, 109,
-			47, 0, 0, 12, 3, 95, 49, 54, 89, 6, 109, 72, 88, 13, 0, 0, 0, 14, 3, 95, 55, 88, 89, 13, 47, 6, 35, 50, 47, 124,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 53, 67, 89, 37, 50, 89, 6, 109, 50, 123, 0, 0, 0, 0, 13, 4, 95,
-			97, 99, 117, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88, 85, 4, 37,
-			50, 47, 37, 0, 0, 14, 3, 95, 55, 67, 89, 4, 36, 123, 6, 109, 50, 123, 0, 0, 0, 0, 0, 0, 0, 8, 197, 76, 84, 165,
-			21, 80, 76, 0, 0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 89, 6, 37, 65, 71, 110, 55, 0, 0, 0, 0, 19, 3, 197, 128, 108,
-			109, 55, 124, 4, 90, 13, 65, 37, 50, 6, 35, 86, 124, 0, 15, 3, 95, 52, 88, 49, 58, 124, 69, 6, 35, 50, 47, 124, 0, 0,
-			15, 3, 95, 57, 67, 50, 4, 110, 40, 89, 6, 109, 50, 123, 0, 0, 0, 0, 0, 0, 6, 195, 16, 83, 19, 72, 0, 0, 16, 3,
-			95, 53, 88, 89, 37, 50, 49, 58, 6, 35, 50, 47, 124, 0, 0, 0, 13, 4, 95, 114, 110, 103, 35, 50, 6, 37, 98, 39, 0, 0,
-			0, 0, 0, 0, 0, 15, 3, 95, 54, 88, 89, 13, 57, 97, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 88, 85, 40, 57, 47, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 6, 195, 24, 245, 64,
-			76, 0, 0, 0, 0, 14, 3, 95, 57, 88, 50, 111, 69, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
-			197, 32, 21, 137, 20, 208, 76, 0, 0, 0, 0, 13, 4, 95, 115, 116, 107, 71, 6, 35, 16, 51, 35, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 99, 105, 114, 89, 37, 51, 49,
-			40, 65, 83, 55, 6, 109, 49, 89, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 61, 6, 39, 50, 13, 89, 0, 0, 0,
-			0, 11, 4, 95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 108, 105, 103, 55, 37,
-			100, 35, 86, 6, 40, 69, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 32, 21, 137, 21,
-			80, 76, 0, 0, 0, 0, 0, 0, 0, 9, 66, 48, 192, 6, 109, 37, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 16, 4, 95, 99, 101, 100, 47, 69, 109, 50, 49, 6, 35, 86, 35, 0, 0, 7, 195, 64, 83, 0, 72, 28, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 99, 97, 112, 65, 6, 35, 98, 40, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 20, 4, 95, 100, 97, 99, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 20, 3,
-			95, 194, 171, 6, 39, 71, 69, 13, 15, 49, 111, 65, 6, 109, 47, 13, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 3,
-			95, 194, 161, 35, 82, 69, 6, 37, 51, 35, 86, 65, 37, 69, 35, 87, 57, 6, 110, 50, 0, 0, 7, 196, 76, 84, 155, 76, 76, 0,
-			0, 0, 8, 197, 32, 21, 137, 20, 224, 76, 0, 0, 0, 7, 196, 24, 244, 133, 56, 76, 0, 0, 6, 195, 76, 84, 155, 76, 0, 0,
-			0, 0, 0, 0, 6, 195, 21, 32, 64, 76, 10, 67, 78, 112, 192, 89, 39, 49, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 95, 194, 191, 35, 82, 69, 6, 37, 51, 37, 50, 47, 109, 16, 51, 4, 39, 100, 35,
-			87, 57, 6, 110, 50, 0, 0, 0, 8, 197, 76, 84, 137, 20, 224, 76, 0, 0, 21, 3, 95, 194, 187, 47, 6, 35, 50, 49, 124, 15,
-			49, 111, 65, 6, 109, 47, 13, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 103, 114, 118, 81, 69, 6, 35, 82, 36, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 124, 48, 124, 69, 47, 6, 35, 47, 0, 0, 0, 0, 0, 12, 2,
-			194, 163, 55, 55, 37, 40, 69, 13, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 194, 169, 49, 39, 48, 37, 16, 51,
-			6, 117, 47, 0, 0, 14, 2, 194, 182, 48, 124, 69, 6, 35, 100, 69, 124, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 8, 2, 195, 177, 109, 67, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 83, 64, 109,
-			65, 0, 76, 6, 195, 76, 243, 64, 76, 0, 0, 0, 0, 0, 0, 0, 6, 195, 137, 33, 85, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 9, 67, 32, 85, 64, 109, 58, 0, 76, 6, 195, 76, 245, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 2, 95, 34, 49, 111, 65, 6, 109, 47, 13, 89, 0, 0, 23, 2, 95, 33, 89, 6, 37, 81, 50, 13, 15, 72, 124, 72,
-			65, 37, 69, 124, 89, 57, 6, 39, 0, 0, 0, 15, 2, 95, 39, 124, 48, 6, 110, 89, 47, 69, 6, 111, 83, 0, 0, 0, 0, 0,
-			0, 0, 23, 2, 95, 41, 47, 6, 35, 50, 49, 124, 15, 48, 124, 69, 6, 109, 50, 47, 13, 88, 37, 89, 0, 0, 22, 2, 95, 40,
-			6, 39, 71, 69, 13, 15, 48, 124, 69, 6, 109, 50, 47, 13, 88, 37, 89, 0, 0, 7, 195, 64, 84, 128, 72, 28, 10, 2, 95, 47,
-			71, 35, 16, 51, 35, 0, 0, 8, 2, 95, 46, 48, 40, 50, 0, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 10, 2, 95,
-			51, 47, 69, 6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 110, 89, 0, 0, 7, 2, 95, 49, 6, 40, 0, 0, 10, 2, 95, 48,
-			88, 6, 36, 69, 111, 0, 0, 9, 2, 95, 55, 89, 6, 109, 47, 0, 0, 9, 2, 95, 54, 89, 6, 37, 89, 0, 0, 10, 2, 95,
-			53, 89, 6, 37, 68, 49, 0, 0, 12, 2, 95, 52, 49, 58, 6, 35, 47, 69, 13, 0, 0, 15, 2, 95, 59, 48, 4, 40, 50, 37,
-			49, 6, 39, 65, 35, 0, 0, 15, 2, 95, 58, 72, 6, 39, 89, 15, 48, 6, 40, 50, 89, 0, 0, 9, 2, 95, 57, 50, 6, 39,
-			58, 0, 0, 10, 2, 95, 56, 85, 6, 40, 57, 47, 0, 0, 26, 2, 95, 63, 89, 6, 37, 81, 50, 13, 15, 72, 37, 50, 47, 13,
-			51, 52, 111, 100, 124, 89, 57, 6, 39, 0, 0, 15, 2, 95, 62, 65, 124, 96, 6, 39, 15, 9, 9, 49, 13, 0, 0, 0, 15, 2,
-			95, 60, 65, 13, 50, 6, 39, 15, 9, 9, 49, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 22, 2, 95, 91, 6, 39, 71, 69, 13, 15, 49, 55, 124, 58, 86, 6, 35, 47, 4, 39, 16, 0,
-			0, 0, 0, 7, 66, 88, 144, 84, 37, 0, 0, 18, 2, 95, 95, 71, 6, 35, 51, 52, 124, 15, 82, 6, 35, 57, 97, 124, 0, 0,
-			0, 23, 2, 95, 93, 47, 6, 35, 50, 49, 124, 15, 49, 55, 124, 58, 86, 6, 35, 47, 4, 39, 16, 0, 0, 21, 2, 95, 92, 71,
-			6, 35, 16, 51, 35, 37, 65, 71, 109, 51, 47, 6, 37, 86, 35, 0, 0, 0, 0, 6, 2, 95, 97, 35, 0, 0, 19, 2, 95, 96,
-			124, 49, 89, 6, 109, 50, 47, 4, 111, 82, 6, 109, 69, 47, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 84, 133, 52, 76, 0, 6,
-			2, 95, 105, 37, 0, 0, 0, 6, 2, 95, 111, 39, 0, 0, 0, 0, 0, 6, 195, 48, 84, 192, 72, 0, 0, 13, 4, 95, 104, 97,
-			99, 49, 35, 69, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 123, 6, 39, 71, 69, 13, 15, 49, 55, 6, 35, 58, 89,
-			0, 0, 10, 4, 95, 35, 57, 96, 47, 35, 71, 0, 0, 0, 0, 0, 0, 18, 2, 95, 125, 47, 6, 35, 50, 49, 124, 15, 49, 55,
-			6, 35, 58, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 84, 129, 56, 76, 0, 0, 0, 5, 194, 84, 224, 72,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 35, 51, 50, 13, 89, 48, 6, 35, 57, 0, 0, 0, 0, 0, 0,
-			0, 20, 4, 108, 194, 183, 108, 109, 55, 124, 4, 90, 13, 65, 37, 50, 6, 35, 86, 124, 0, 0, 0, 8, 197, 76, 84, 165, 20, 208,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 84, 137, 4, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 196, 192,
-			72, 0, 0, 0, 0, 7, 195, 4, 196, 192, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 18, 66, 102, 0, 104, 0, 108, 0, 114, 0, 115, 0, 118, 0, 119, 0, 121, 0, 122, 0, 7, 6, 18, 67, 104,
-			0, 108, 0, 114, 0, 115, 0, 118, 0, 119, 0, 121, 0, 122, 0, 7, 6, 18, 68, 102, 0, 104, 0, 114, 0, 115, 0, 118, 0, 119,
-			0, 121, 0, 122, 0, 7, 6, 18, 69, 195, 173, 0, 195, 169, 0, 195, 168, 0, 105, 0, 101, 0, 7, 6, 18, 70, 112, 0, 116, 0,
-			107, 0, 102, 0, 115, 0, 7, 6, 18, 74, 98, 0, 100, 0, 103, 0, 109, 0, 118, 0, 108, 0, 110, 0, 100, 0, 122, 0, 114, 0,
-			113, 0, 7, 6, 18, 75, 97, 0, 101, 0, 111, 0, 7, 6, 18, 76, 105, 0, 117, 0, 7, 6, 18, 86, 112, 0, 98, 0, 116, 0,
-			100, 0, 107, 0, 103, 0, 7, 6, 18, 87, 102, 0, 118, 0, 115, 0, 122, 0, 7, 6, 18, 88, 109, 0, 110, 0, 7, 6, 18, 89,
-			108, 108, 0, 108, 0, 7, 6, 18, 90, 114, 0, 7, 6, 195, 167, 0, 3, 89, 0, 7, 6, 97, 0, 101, 3, 4, 35, 125, 0, 3,
-			35, 0, 109, 98, 2, 32, 17, 65, 3, 35, 65, 0, 7, 6, 98, 0, 2, 32, 3, 48, 0, 3, 71, 0, 4, 1, 17, 65, 2, 17,
-			65, 3, 82, 0, 1, 18, 67, 2, 17, 65, 0, 1, 32, 17, 65, 2, 17, 65, 0, 1, 32, 18, 67, 2, 17, 65, 0, 7, 6, 99,
-			0, 3, 49, 0, 2, 18, 69, 3, 89, 0, 7, 6, 100, 0, 2, 32, 3, 47, 0, 118, 3, 71, 71, 0, 3, 72, 0, 106, 3, 77,
-			0, 4, 1, 17, 65, 2, 17, 65, 3, 86, 0, 1, 18, 68, 2, 17, 65, 0, 1, 32, 17, 65, 2, 17, 65, 0, 1, 32, 18, 68,
-			2, 17, 65, 0, 7, 6, 101, 0, 2, 110, 116, 32, 3, 36, 0, 3, 109, 0, 97, 3, 125, 4, 35, 0, 111, 3, 125, 4, 39, 0,
-			7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 117, 105, 3, 77, 37, 0, 4, 3, 81, 0, 117, 2, 18, 69,
-			0, 2, 18, 69, 3, 96, 0, 4, 1, 17, 65, 2, 17, 65, 3, 100, 0, 1, 17, 65, 2, 114, 17, 65, 0, 1, 18, 66, 2, 17,
-			65, 0, 1, 32, 17, 65, 2, 17, 65, 0, 1, 32, 18, 66, 2, 17, 65, 0, 7, 6, 104, 0, 3, 0, 105, 1, 45, 2, 32, 3,
-			6, 37, 0, 111, 1, 45, 2, 32, 3, 6, 111, 0, 7, 6, 105, 0, 4, 3, 37, 0, 1, 188, 195, 103, 2, 25, 0, 1, 188, 195,
-			113, 2, 25, 0, 2, 97, 32, 0, 2, 117, 0, 4, 1, 17, 65, 2, 25, 12, 3, 57, 0, 2, 17, 65, 0, 103, 1, 17, 65, 2,
-			32, 3, 78, 0, 120, 1, 17, 65, 3, 97, 0, 7, 6, 106, 0, 3, 96, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 4,
-			3, 55, 0, 39, 8, 2, 14, 128, 132, 130, 0, 97, 1, 45, 2, 32, 3, 55, 124, 0, 108, 3, 61, 0, 7, 6, 109, 0, 4, 3,
-			65, 0, 39, 8, 2, 14, 128, 132, 130, 0, 112, 2, 25, 0, 7, 6, 110, 0, 4, 2, 32, 3, 8, 50, 0, 116, 2, 32, 0, 4,
-			3, 50, 0, 1, 101, 2, 32, 0, 1, 105, 2, 32, 0, 39, 8, 2, 14, 128, 132, 130, 0, 116, 2, 25, 0, 4, 1, 21, 2, 98,
-			3, 65, 0, 1, 21, 2, 118, 0, 1, 98, 2, 21, 0, 1, 118, 2, 21, 0, 121, 3, 67, 0, 4, 2, 99, 25, 3, 68, 0, 103,
-			0, 7, 6, 111, 0, 114, 2, 32, 3, 6, 39, 16, 0, 3, 39, 0, 117, 3, 110, 58, 0, 7, 6, 112, 0, 3, 48, 0, 2, 116,
-			3, 48, 12, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 18, 69, 0, 195, 188, 3, 49, 58, 0, 117, 105, 3, 49, 58, 37, 0,
-			7, 6, 114, 0, 2, 32, 3, 8, 0, 4, 8, 3, 16, 51, 0, 114, 0, 4, 3, 51, 0, 1, 108, 2, 17, 65, 0, 1, 109, 2,
-			17, 65, 0, 1, 110, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 4, 1, 17, 65, 2, 17, 65, 3, 69, 0, 1, 17, 67, 2, 17,
-			65, 0, 2, 116, 0, 7, 6, 115, 0, 1, 17, 65, 2, 17, 65, 3, 88, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128, 129,
-			0, 39, 8, 2, 14, 128, 132, 130, 0, 115, 0, 101, 1, 45, 2, 32, 3, 89, 13, 0, 7, 6, 116, 0, 4, 3, 47, 0, 39, 8,
-			2, 14, 128, 132, 130, 0, 109, 3, 65, 65, 0, 122, 3, 72, 88, 0, 4, 103, 2, 18, 69, 3, 77, 0, 106, 0, 4, 106, 2, 32,
-			3, 78, 0, 120, 0, 7, 6, 117, 0, 4, 3, 40, 0, 2, 105, 0, 117, 3, 40, 58, 0, 4, 1, 17, 65, 2, 25, 3, 58, 0,
-			2, 17, 65, 0, 7, 6, 118, 0, 3, 82, 0, 8, 3, 85, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 4, 3, 49, 89,
-			0, 8, 17, 65, 2, 18, 70, 0, 8, 17, 65, 3, 81, 88, 0, 4, 1, 25, 3, 97, 0, 1, 105, 17, 65, 0, 1, 117, 17, 65,
-			0, 7, 6, 121, 0, 3, 37, 0, 2, 17, 65, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 160, 3, 7, 35, 0,
-			195, 169, 3, 7, 36, 0, 195, 173, 3, 7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 186, 3, 7, 40, 0, 195, 168, 3, 7, 109, 0,
-			195, 178, 3, 7, 110, 0, 195, 175, 3, 37, 0, 195, 188, 3, 40, 0, 197, 128, 3, 55, 0, 195, 188, 1, 103, 3, 58, 0, 195, 177,
-			3, 67, 0, 36, 3, 72, 39, 55, 124, 16, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts8 = FileInMemory_createWithData (4153, reinterpret_cast<const char *> (&espeakdata_dicts8_data), 
-			U"espeak-1.48.04-source/espeak-data/ca_dict", 
+		static unsigned char espeakdata_dicts7_data[4178] = {
+			0, 4, 0, 0, 46, 12, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 0, 14, 5, 193, 4, 72, 28, 0, 0, 0, 0, 6, 65,
+			8, 71, 36, 0, 0, 0, 6, 195, 4, 208, 128, 28, 0, 0, 6, 65, 12, 89, 36, 0, 0, 0, 13, 4, 95, 8, 1, 3, 49, 35,
+			69, 6, 110, 50, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65, 24, 109, 83, 124, 0, 0, 0,
+			0, 0, 6, 65, 28, 79, 36, 0, 9, 134, 19, 5, 18, 195, 160, 19, 76, 0, 0, 0, 0, 6, 65, 32, 35, 49, 0, 0, 0, 0,
+			14, 1, 35, 49, 111, 57, 97, 37, 50, 6, 109, 47, 0, 27, 0, 6, 65, 36, 37, 0, 14, 5, 193, 36, 72, 8, 0, 15, 1, 37,
+			48, 13, 51, 89, 13, 50, 47, 6, 35, 77, 13, 0, 0, 18, 1, 38, 9, 9, 6, 37, 38, 15, 9, 124, 68, 55, 6, 109, 88, 124,
+			0, 0, 0, 8, 65, 40, 96, 110, 47, 124, 0, 0, 0, 9, 67, 21, 68, 192, 36, 123, 0, 76, 14, 1, 42, 35, 89, 47, 36, 16,
+			6, 37, 89, 49, 0, 27, 0, 9, 1, 43, 65, 16, 36, 89, 0, 27, 0, 6, 65, 44, 49, 36, 0, 0, 9, 1, 45, 65, 6, 109,
+			67, 89, 0, 0, 0, 9, 1, 47, 71, 35, 16, 51, 35, 0, 0, 7, 65, 48, 109, 55, 124, 0, 0, 0, 0, 0, 7, 65, 52, 109,
+			65, 124, 0, 0, 0, 0, 0, 7, 65, 56, 109, 50, 124, 0, 0, 0, 0, 0, 6, 65, 60, 39, 0, 14, 5, 193, 60, 72, 8, 0,
+			11, 1, 61, 37, 100, 58, 6, 35, 55, 0, 27, 0, 0, 0, 6, 65, 64, 48, 36, 0, 11, 1, 64, 35, 16, 51, 6, 39, 82, 35,
+			0, 0, 0, 0, 0, 6, 65, 68, 49, 40, 0, 0, 0, 6, 195, 84, 224, 64, 72, 0, 0, 8, 65, 72, 109, 51, 52, 13, 0, 0,
+			0, 0, 0, 8, 65, 76, 109, 89, 89, 13, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 11, 4, 19, 195,
+			179, 14, 89, 39, 50, 0, 76, 0, 0, 0, 13, 65, 88, 6, 85, 36, 15, 71, 6, 117, 97, 124, 0, 0, 0, 0, 10, 135, 19, 5,
+			18, 195, 173, 5, 13, 76, 0, 14, 65, 92, 6, 85, 36, 15, 72, 6, 39, 71, 55, 13, 0, 0, 0, 16, 1, 94, 89, 37, 51, 49,
+			40, 65, 83, 55, 6, 109, 49, 89, 0, 0, 0, 7, 65, 96, 37, 49, 89, 0, 0, 0, 11, 4, 19, 195, 179, 3, 89, 39, 49, 0,
+			76, 0, 10, 135, 19, 5, 18, 195, 173, 5, 21, 76, 0, 12, 65, 100, 6, 37, 15, 81, 69, 109, 100, 124, 0, 0, 0, 0, 0, 8,
+			65, 104, 88, 36, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 84, 225, 83, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
+			16, 80, 72, 0, 0, 0, 6, 195, 16, 83, 0, 72, 0, 0, 0, 12, 4, 95, 4, 16, 20, 10, 49, 39, 65, 35, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 192, 72, 28, 0, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 36, 0, 0, 0,
+			0, 6, 195, 84, 228, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 21, 137, 4, 76, 0, 0, 7, 66,
+			32, 16, 35, 0, 76, 0, 6, 195, 25, 82, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 19, 128, 35, 50, 0, 76, 0,
+			0, 8, 197, 32, 21, 137, 21, 48, 76, 0, 0, 0, 0, 8, 197, 76, 84, 137, 21, 48, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 32, 21, 137, 21, 80, 76, 0, 0, 0,
+			0, 0, 0, 0, 7, 196, 24, 244, 133, 56, 76, 0, 0, 0, 0, 0, 0, 0, 11, 3, 226, 130, 172, 6, 109, 58, 16, 111, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 66, 32, 80, 109, 0, 76, 0, 0, 8, 133, 6, 195, 179, 18, 1, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 196, 76, 84, 133, 52, 76, 0, 0, 6, 194, 20, 192, 72, 28, 5, 194, 20, 192, 72, 0, 9, 67, 32, 20,
+			192, 35, 89, 0, 76, 10, 3, 95, 50, 48, 85, 6, 37, 50, 0, 0, 7, 196, 76, 84, 129, 56, 76, 0, 0, 0, 0, 0, 0, 14,
+			4, 95, 13, 3, 14, 65, 35, 49, 69, 6, 110, 50, 0, 0, 19, 3, 197, 128, 12, 109, 55, 124, 4, 90, 13, 65, 37, 50, 6, 35,
+			86, 124, 0, 0, 0, 0, 0, 0, 7, 196, 76, 84, 137, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 24, 244, 133, 76, 76,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 84, 133, 84, 76, 0, 0, 6, 194, 20, 224, 72, 28, 0, 13, 3, 95, 51, 88, 47,
+			69, 6, 109, 50, 47, 124, 0, 0, 12, 3, 95, 48, 67, 89, 6, 109, 50, 47, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3,
+			95, 49, 67, 89, 6, 109, 50, 47, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 16, 72, 12, 3, 95, 49, 57, 72, 37, 50, 6, 39,
+			40, 0, 0, 13, 3, 95, 49, 56, 72, 37, 82, 6, 40, 57, 47, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 110,
+			50, 88, 13, 0, 0, 10, 3, 95, 49, 48, 72, 6, 36, 58, 0, 0, 13, 3, 95, 49, 51, 47, 69, 6, 109, 72, 88, 13, 0, 0,
+			12, 3, 95, 49, 50, 72, 6, 39, 72, 88, 13, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37, 50, 88, 13, 0, 0, 14, 3, 95, 49,
+			52, 49, 124, 47, 6, 39, 51, 88, 13, 0, 0, 12, 3, 95, 49, 55, 72, 37, 89, 6, 109, 47, 0, 0, 12, 3, 95, 49, 54, 89,
+			6, 109, 72, 88, 13, 0, 0, 0, 14, 3, 95, 55, 88, 89, 13, 47, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 14, 3, 95, 53, 67, 89, 37, 50, 89, 6, 109, 50, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 32, 21, 137, 20,
+			208, 76, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88, 85, 4, 37, 50, 47, 37, 0, 0, 14, 3, 95, 55, 67, 89, 4, 36, 123,
+			6, 109, 50, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 32, 21, 137, 20, 224, 76, 0, 0, 0, 13, 3, 95, 63, 63,
+			89, 6, 37, 65, 71, 110, 55, 0, 0, 8, 197, 76, 84, 137, 20, 224, 76, 0, 0, 15, 3, 95, 52, 88, 49, 58, 124, 69, 6, 35,
+			50, 47, 124, 0, 0, 15, 3, 95, 57, 67, 50, 4, 110, 40, 89, 6, 109, 50, 123, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95,
+			53, 88, 89, 37, 50, 49, 58, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 54, 88, 89, 13, 57, 97,
+			6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 88, 85, 40, 57,
+			47, 6, 35, 50, 47, 124, 0, 0, 0, 0, 0, 6, 195, 24, 245, 64, 76, 0, 0, 0, 0, 14, 3, 95, 57, 88, 50, 111, 69, 6,
+			35, 50, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 15,
+			7, 15, 49, 39, 55, 6, 37, 47, 35, 0, 0, 7, 196, 20, 229, 18, 20, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 61, 6, 39, 50, 13, 89, 0, 0, 0, 0, 11, 4,
+			95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 13, 4, 95, 2, 18, 22, 71, 69, 6, 36, 82, 36, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 12, 194, 183, 12, 109, 55, 124, 4, 90, 13, 65, 37, 50, 6, 35, 86, 124,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 48, 192, 6, 109, 37, 124, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 64, 83, 0, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+			3, 195, 169, 19, 36, 89, 0, 76, 19, 4, 95, 3, 9, 18, 89, 37, 51, 49, 40, 65, 83, 55, 6, 109, 49, 89, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 19, 20, 11, 71, 6, 35, 16, 51, 35, 0, 0, 0, 13, 4, 95, 1, 3,
+			21, 35, 100, 6, 40, 86, 39, 0, 0, 20, 3, 95, 194, 171, 6, 39, 71, 69, 13, 15, 49, 111, 65, 6, 109, 47, 13, 89, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 18, 14, 7, 35, 50, 6, 37, 98, 39, 0, 0, 23, 3, 95, 194, 161, 35, 82, 69,
+			6, 37, 51, 35, 86, 65, 37, 69, 35, 87, 57, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 19, 5, 18, 195,
+			160, 76, 0, 0, 0, 0, 0, 0, 6, 195, 21, 32, 64, 76, 0, 0, 0, 8, 133, 19, 5, 18, 195, 169, 76, 7, 195, 64, 83, 19,
+			72, 28, 0, 0, 0, 0, 20, 4, 95, 1, 3, 50, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 0, 0, 6,
+			195, 21, 33, 78, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 95, 194, 191, 35, 82, 69, 6, 37, 51, 37, 50, 47, 109, 16,
+			51, 4, 39, 100, 35, 87, 57, 6, 110, 50, 0, 0, 0, 0, 0, 6, 195, 21, 33, 83, 76, 21, 3, 95, 194, 187, 47, 6, 35, 50,
+			49, 124, 15, 49, 111, 65, 6, 109, 47, 13, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 6, 195, 179,
+			18, 5, 13, 76, 0, 0, 0, 6, 195, 16, 83, 19, 72, 0, 0, 0, 13, 2, 194, 167, 124, 48, 124, 69, 47, 6, 35, 47, 0, 0,
+			0, 0, 0, 12, 2, 194, 163, 55, 55, 37, 40, 69, 13, 89, 0, 0, 0, 0, 0, 16, 2, 195, 167, 89, 36, 4, 47, 69, 13, 50,
+			49, 35, 86, 124, 0, 0, 0, 0, 0, 0, 0, 14, 2, 194, 169, 49, 39, 48, 37, 16, 51, 6, 117, 47, 0, 0, 14, 2, 194, 182,
+			48, 124, 69, 6, 35, 100, 69, 124, 83, 0, 0, 0, 0, 9, 134, 6, 195, 179, 18, 5, 21, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 16, 4, 95, 3, 5, 4, 47, 69, 109, 50, 49, 6, 35, 86, 35, 0, 0, 0, 0, 8, 2, 195, 177, 109, 67, 13, 0, 16, 4,
+			95, 12, 9, 7, 55, 37, 100, 35, 86, 6, 40, 69, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 83,
+			64, 109, 65, 0, 76, 6, 195, 76, 243, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32,
+			85, 64, 109, 58, 0, 76, 6, 195, 76, 245, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
+			95, 1, 35, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 9, 37, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 49, 111, 65, 6, 109, 47, 13, 89, 0, 0,
+			23, 2, 95, 33, 89, 6, 37, 81, 50, 13, 15, 72, 124, 72, 65, 37, 69, 124, 89, 57, 6, 39, 0, 0, 0, 15, 2, 95, 39, 124,
+			48, 6, 110, 89, 47, 69, 6, 111, 83, 0, 0, 0, 0, 0, 0, 13, 4, 95, 3, 1, 16, 65, 6, 35, 98, 40, 89, 0, 0, 23,
+			2, 95, 41, 47, 6, 35, 50, 49, 124, 15, 48, 124, 69, 6, 109, 50, 47, 13, 88, 37, 89, 0, 0, 22, 2, 95, 40, 6, 39, 71,
+			69, 13, 15, 48, 124, 69, 6, 109, 50, 47, 13, 88, 37, 89, 0, 0, 7, 195, 64, 84, 128, 72, 28, 10, 2, 95, 47, 71, 35, 16,
+			51, 35, 0, 0, 8, 2, 95, 46, 48, 40, 50, 0, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 10, 2, 95, 51, 47, 69,
+			6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 110, 89, 0, 0, 7, 2, 95, 49, 6, 40, 0, 0, 10, 2, 95, 48, 88, 6, 36,
+			69, 111, 0, 0, 9, 2, 95, 55, 89, 6, 109, 47, 0, 0, 9, 2, 95, 54, 89, 6, 37, 89, 0, 0, 10, 2, 95, 53, 89, 6,
+			37, 68, 49, 0, 20, 4, 95, 4, 1, 3, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 12, 2, 95, 52, 49,
+			58, 6, 35, 47, 69, 13, 0, 0, 15, 2, 95, 59, 48, 4, 40, 50, 37, 49, 6, 39, 65, 35, 0, 0, 15, 2, 95, 58, 72, 6,
+			39, 89, 15, 48, 6, 40, 50, 89, 0, 0, 9, 2, 95, 57, 50, 6, 39, 58, 0, 0, 10, 2, 95, 56, 85, 6, 40, 57, 47, 0,
+			0, 26, 2, 95, 63, 89, 6, 37, 81, 50, 13, 15, 72, 37, 50, 47, 13, 51, 52, 111, 100, 124, 89, 57, 6, 39, 0, 0, 15, 2,
+			95, 62, 65, 124, 96, 6, 39, 15, 9, 9, 49, 13, 0, 0, 0, 15, 2, 95, 60, 65, 13, 50, 6, 39, 15, 9, 9, 49, 13, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 4, 15, 20, 48, 6,
+			40, 50, 47, 0, 0, 0, 0, 22, 2, 95, 91, 6, 39, 71, 69, 13, 15, 49, 55, 124, 58, 86, 6, 35, 47, 4, 39, 16, 0, 0,
+			0, 0, 7, 66, 88, 144, 84, 37, 0, 0, 18, 2, 95, 95, 71, 6, 35, 51, 52, 124, 15, 82, 6, 35, 57, 97, 124, 0, 0, 0,
+			23, 2, 95, 93, 47, 6, 35, 50, 49, 124, 15, 49, 55, 124, 58, 86, 6, 35, 47, 4, 39, 16, 0, 0, 21, 2, 95, 92, 71, 6,
+			35, 16, 51, 35, 37, 65, 71, 109, 51, 47, 6, 37, 86, 35, 0, 0, 0, 0, 0, 19, 2, 95, 96, 124, 49, 89, 6, 109, 50, 47,
+			4, 111, 82, 6, 109, 69, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 7, 18, 22, 81, 69, 6, 35, 82, 36, 0, 0,
+			0, 0, 0, 0, 6, 195, 48, 84, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 123, 6, 39, 71, 69, 13, 15, 49, 55,
+			6, 35, 58, 89, 0, 16, 4, 95, 4, 9, 1, 72, 57, 6, 109, 69, 36, 89, 37, 89, 0, 0, 10, 4, 95, 35, 57, 96, 47, 35,
+			71, 0, 0, 0, 0, 0, 0, 18, 2, 95, 125, 47, 6, 35, 50, 49, 124, 15, 49, 55, 6, 35, 58, 89, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 84, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 35, 51,
+			50, 13, 89, 48, 6, 35, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 195, 169, 18, 5, 13, 76, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 133, 195, 169, 18, 5, 21, 76, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 196, 192, 72, 0, 0, 0, 0, 7,
+			195, 4, 196, 192, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18,
+			66, 102, 0, 104, 0, 108, 0, 114, 0, 115, 0, 118, 0, 119, 0, 121, 0, 122, 0, 7, 6, 18, 67, 104, 0, 108, 0, 114, 0, 115,
+			0, 118, 0, 119, 0, 121, 0, 122, 0, 7, 6, 18, 68, 102, 0, 104, 0, 114, 0, 115, 0, 118, 0, 119, 0, 121, 0, 122, 0, 7,
+			6, 18, 69, 195, 173, 0, 195, 169, 0, 195, 168, 0, 105, 0, 101, 0, 7, 6, 18, 70, 112, 0, 116, 0, 107, 0, 102, 0, 115, 0,
+			7, 6, 18, 74, 98, 0, 100, 0, 103, 0, 109, 0, 118, 0, 108, 0, 110, 0, 100, 0, 122, 0, 114, 0, 113, 0, 7, 6, 18, 75,
+			97, 0, 101, 0, 111, 0, 7, 6, 18, 76, 105, 0, 117, 0, 7, 6, 18, 86, 112, 0, 98, 0, 116, 0, 100, 0, 107, 0, 103, 0,
+			7, 6, 18, 87, 102, 0, 118, 0, 115, 0, 122, 0, 7, 6, 18, 88, 109, 0, 110, 0, 7, 6, 18, 89, 108, 108, 0, 108, 0, 7,
+			6, 18, 90, 114, 0, 7, 6, 195, 167, 0, 3, 89, 0, 7, 6, 97, 0, 101, 3, 4, 35, 125, 0, 3, 35, 0, 109, 98, 2, 32,
+			17, 65, 3, 35, 65, 0, 7, 6, 98, 0, 2, 32, 3, 48, 0, 3, 71, 0, 4, 1, 17, 65, 2, 17, 65, 3, 82, 0, 1, 18,
+			67, 2, 17, 65, 0, 1, 32, 17, 65, 2, 17, 65, 0, 1, 32, 18, 67, 2, 17, 65, 0, 7, 6, 99, 0, 3, 49, 0, 2, 18,
+			69, 3, 89, 0, 7, 6, 100, 0, 2, 32, 3, 47, 0, 118, 3, 71, 71, 0, 3, 72, 0, 106, 3, 77, 0, 4, 1, 17, 65, 2,
+			17, 65, 3, 86, 0, 1, 18, 68, 2, 17, 65, 0, 1, 32, 17, 65, 2, 17, 65, 0, 1, 32, 18, 68, 2, 17, 65, 0, 7, 6,
+			101, 0, 2, 110, 116, 32, 3, 36, 0, 3, 109, 0, 97, 3, 125, 4, 35, 0, 111, 3, 125, 4, 39, 0, 7, 6, 102, 0, 3, 83,
+			0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 117, 105, 3, 77, 37, 0, 4, 3, 81, 0, 117, 2, 18, 69, 0, 2, 18, 69, 3, 96,
+			0, 4, 1, 17, 65, 2, 17, 65, 3, 100, 0, 1, 17, 65, 2, 114, 17, 65, 0, 1, 18, 66, 2, 17, 65, 0, 1, 32, 17, 65,
+			2, 17, 65, 0, 1, 32, 18, 66, 2, 17, 65, 0, 7, 6, 104, 0, 3, 0, 105, 1, 45, 2, 32, 3, 6, 37, 0, 111, 1, 45,
+			2, 32, 3, 6, 111, 0, 7, 6, 105, 0, 4, 3, 37, 0, 1, 188, 195, 103, 2, 25, 0, 1, 188, 195, 113, 2, 25, 0, 2, 97,
+			32, 0, 2, 117, 0, 4, 1, 17, 65, 2, 25, 12, 3, 57, 0, 2, 17, 65, 0, 103, 1, 17, 65, 2, 32, 3, 78, 0, 120, 1,
+			17, 65, 3, 97, 0, 7, 6, 106, 0, 3, 96, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 4, 3, 55, 0, 39, 8, 2,
+			14, 128, 132, 130, 0, 97, 1, 45, 2, 32, 3, 55, 124, 0, 108, 3, 61, 0, 7, 6, 109, 0, 4, 3, 65, 0, 39, 8, 2, 14,
+			128, 132, 130, 0, 112, 2, 25, 0, 7, 6, 110, 0, 4, 2, 32, 3, 8, 50, 0, 116, 2, 32, 0, 4, 3, 50, 0, 1, 101, 2,
+			32, 0, 1, 105, 2, 32, 0, 39, 8, 2, 14, 128, 132, 130, 0, 116, 2, 25, 0, 4, 1, 21, 2, 98, 3, 65, 0, 1, 21, 2,
+			118, 0, 1, 98, 2, 21, 0, 1, 118, 2, 21, 0, 121, 3, 67, 0, 4, 2, 99, 25, 3, 68, 0, 103, 0, 7, 6, 111, 0, 114,
+			2, 32, 3, 6, 39, 16, 0, 3, 39, 0, 117, 3, 110, 58, 0, 7, 6, 112, 0, 3, 48, 0, 2, 116, 3, 48, 12, 0, 7, 6,
+			113, 0, 4, 3, 49, 0, 117, 2, 18, 69, 0, 195, 188, 3, 49, 58, 0, 117, 105, 3, 49, 58, 37, 0, 7, 6, 114, 0, 2, 32,
+			3, 8, 0, 4, 8, 3, 16, 51, 0, 114, 0, 4, 3, 51, 0, 1, 108, 2, 17, 65, 0, 1, 109, 2, 17, 65, 0, 1, 110, 2,
+			17, 65, 0, 1, 115, 2, 17, 65, 0, 4, 1, 17, 65, 2, 17, 65, 3, 69, 0, 1, 17, 67, 2, 17, 65, 0, 2, 116, 0, 7,
+			6, 115, 0, 1, 17, 65, 2, 17, 65, 3, 88, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 39, 8, 2, 14, 128,
+			132, 130, 0, 115, 0, 101, 1, 45, 2, 32, 3, 89, 13, 0, 7, 6, 116, 0, 4, 3, 47, 0, 39, 8, 2, 14, 128, 132, 130, 0,
+			109, 3, 65, 65, 0, 122, 3, 72, 88, 0, 4, 103, 2, 18, 69, 3, 77, 0, 106, 0, 4, 106, 2, 32, 3, 78, 0, 120, 0, 7,
+			6, 117, 0, 4, 3, 40, 0, 2, 105, 0, 117, 3, 40, 58, 0, 4, 1, 17, 65, 2, 25, 3, 58, 0, 2, 17, 65, 0, 7, 6,
+			118, 0, 3, 82, 0, 8, 3, 85, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 4, 3, 49, 89, 0, 8, 17, 65, 2, 18,
+			70, 0, 8, 17, 65, 3, 81, 88, 0, 4, 1, 25, 3, 97, 0, 1, 105, 17, 65, 0, 1, 117, 17, 65, 0, 7, 6, 121, 0, 3,
+			37, 0, 2, 17, 65, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 160, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0,
+			195, 173, 3, 7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 186, 3, 7, 40, 0, 195, 168, 3, 7, 109, 0, 195, 178, 3, 7, 110, 0,
+			195, 175, 3, 37, 0, 195, 188, 3, 40, 0, 197, 128, 3, 55, 0, 195, 188, 1, 103, 3, 58, 0, 195, 177, 3, 67, 0, 36, 3, 72,
+			39, 55, 124, 16, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts7 = FileInMemory_createWithData (4177, reinterpret_cast<const char *> (&espeakdata_dicts7_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ca_dict", 
 			U"ca");
-		my addItem_move (espeakdata_dicts8.move());
+		Collection_addItem (me.peek(), espeakdata_dicts7.transfer());
 
-		static unsigned char espeakdata_dicts9_data[7566] = {
-			0, 4, 0, 0, 21, 17, 0, 0, 0, 0, 0, 0, 6, 194, 228, 80, 72, 8, 0, 6, 65, 4, 124, 0, 49, 6, 193, 4, 72, 28,
-			8, 0, 0, 6, 195, 12, 16, 128, 13, 0, 0, 6, 65, 8, 71, 123, 0, 0, 0, 0, 0, 6, 65, 12, 117, 123, 0, 0, 0, 0,
-			0, 6, 65, 16, 72, 123, 0, 0, 0, 0, 14, 4, 95, 100, 112, 116, 9, 76, 124, 51, 49, 35, 10, 0, 0, 5, 65, 20, 123, 0,
-			0, 0, 6, 195, 41, 50, 64, 72, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 10, 68, 64, 245, 197, 72, 48, 127, 44, 0, 0, 5,
-			194, 188, 16, 13, 0, 6, 195, 189, 101, 84, 13, 6, 65, 28, 81, 123, 0, 0, 6, 195, 29, 0, 64, 13, 0, 0, 0, 6, 65, 32,
-			107, 124, 0, 0, 14, 1, 33, 84, 37, 81, 133, 37, 76, 67, 121, 49, 0, 27, 0, 0, 10, 1, 35, 81, 133, 121, 90, 36, 49, 0,
-			0, 6, 65, 36, 121, 0, 49, 5, 193, 36, 72, 28, 0, 5, 194, 37, 0, 13, 13, 1, 37, 48, 51, 39, 117, 36, 50, 47, 39, 0,
-			27, 0, 12, 1, 38, 35, 65, 48, 44, 89, 36, 50, 47, 0, 12, 65, 112, 72, 55, 6, 129, 107, 123, 4, 124, 0, 0, 0, 6, 65,
-			40, 57, 123, 0, 0, 0, 15, 1, 42, 107, 84, 57, 36, 88, 79, 37, 76, 49, 35, 0, 27, 15, 1, 42, 107, 84, 57, 36, 88, 79,
-			37, 76, 49, 35, 0, 27, 0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 124, 0, 49, 6, 195, 9, 147, 25, 72,
-			4, 193, 44, 28, 0, 6, 195, 45, 0, 64, 13, 0, 10, 1, 46, 47, 36, 76, 49, 35, 0, 27, 0, 10, 1, 47, 55, 39, 65, 36,
-			50, 39, 0, 0, 13, 4, 95, 100, 105, 97, 47, 51, 6, 36, 65, 35, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52,
-			36, 65, 0, 0, 6, 195, 53, 0, 64, 13, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 6, 65, 60, 125, 0, 49, 6,
-			193, 60, 72, 8, 23, 0, 10, 1, 61, 51, 39, 84, 50, 39, 0, 27, 0, 0, 0, 11, 1, 64, 88, 35, 84, 37, 50, 124, 76, 0,
-			6, 65, 64, 48, 123, 0, 0, 0, 6, 195, 20, 81, 192, 13, 0, 0, 7, 65, 68, 49, 84, 123, 0, 0, 0, 0, 0, 6, 65, 72,
-			36, 51, 0, 0, 0, 0, 13, 4, 95, 100, 111, 116, 47, 6, 36, 76, 49, 35, 0, 0, 7, 65, 76, 36, 89, 0, 49, 7, 65, 76,
-			89, 10, 0, 8, 0, 0, 0, 0, 6, 65, 80, 47, 123, 0, 0, 0, 6, 195, 4, 226, 64, 8, 0, 0, 11, 136, 99, 104, 116, 196,
-			155, 106, 195, 173, 76, 0, 7, 66, 85, 0, 35, 48, 0, 0, 0, 19, 67, 33, 69, 16, 107, 124, 47, 36, 47, 36, 48, 123, 0, 81,
-			58, 47, 47, 32, 0, 7, 65, 88, 84, 123, 0, 49, 7, 65, 88, 84, 10, 0, 28, 0, 0, 0, 14, 4, 95, 49, 77, 52, 71, 6,
-			37, 55, 37, 125, 50, 0, 0, 11, 1, 92, 71, 36, 49, 89, 55, 36, 91, 0, 11, 65, 92, 72, 84, 6, 39, 57, 84, 123, 0, 0,
-			0, 11, 1, 94, 88, 72, 133, 121, 91, 49, 35, 0, 0, 0, 13, 4, 95, 49, 77, 49, 80, 6, 37, 89, 121, 117, 0, 7, 65, 96,
-			37, 49, 89, 0, 0, 14, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 125, 50, 0, 0, 16, 4, 95, 49, 77, 51, 65, 6, 37, 55,
-			37, 35, 51, 72, 35, 0, 0, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 47, 0,
-			49, 7, 65, 104, 89, 10, 0, 28, 0, 0, 6, 195, 5, 65, 0, 13, 0, 0, 6, 195, 189, 48, 68, 13, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 41, 49, 77, 72, 0, 0, 6, 195, 57, 52, 128, 13, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55,
-			72, 35, 0, 0, 13, 4, 95, 116, 108, 100, 80, 6, 37, 55, 72, 35, 0, 0, 0, 6, 195, 53, 197, 5, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 13, 33, 0, 13, 0, 0, 0, 0, 6, 195, 189, 52, 210, 13, 0, 0, 0, 8, 196, 65, 35, 212, 36, 72,
-			8, 0, 6, 195, 93, 34, 64, 13, 0, 0, 0, 0, 6, 195, 17, 2, 64, 13, 0, 0, 0, 6, 195, 188, 196, 128, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 69, 76, 52, 143, 48, 192, 89, 49, 34, 125, 55, 0, 0, 6, 195, 72, 196, 128, 13, 6, 195, 56, 68, 128,
-			13, 6, 195, 8, 196, 128, 13, 0, 0, 0, 0, 6, 195, 73, 52, 192, 13, 0, 0, 0, 0, 0, 0, 7, 195, 56, 17, 5, 72, 8,
-			7, 195, 64, 241, 5, 72, 8, 0, 0, 0, 0, 0, 0, 6, 195, 84, 102, 128, 13, 0, 0, 14, 67, 16, 51, 0, 72, 36, 117, 37,
-			55, 37, 47, 44, 0, 0, 14, 4, 95, 109, 99, 110, 65, 6, 35, 49, 51, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 195, 72, 192, 192, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 85, 97, 128, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 9, 81, 5, 212, 72, 0, 0, 0, 0, 0, 0, 0, 5, 194, 9, 144, 72, 5, 194, 9, 144, 72, 0, 7, 195, 56, 80,
-			143, 72, 8, 0, 0, 6, 195, 9, 147, 0, 72, 0, 0, 0, 0, 0, 7, 66, 12, 128, 101, 124, 0, 0, 0, 10, 3, 95, 35, 57,
-			47, 6, 35, 48, 0, 0, 0, 0, 0, 0, 6, 195, 45, 35, 205, 8, 0, 0, 0, 0, 0, 0, 6, 195, 61, 165, 128, 13, 12, 65,
-			136, 72, 55, 6, 129, 107, 123, 4, 123, 0, 0, 0, 0, 0, 0, 0, 5, 194, 189, 32, 13, 0, 0, 0, 0, 0, 6, 195, 188, 21,
-			128, 13, 0, 0, 0, 0, 0, 0, 6, 195, 9, 144, 200, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69,
-			4, 229, 15, 56, 144, 35, 50, 47, 39, 50, 37, 0, 0, 0, 0, 0, 7, 196, 12, 128, 197, 212, 76, 8, 197, 9, 144, 200, 60, 208,
-			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 57, 83, 64, 50, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
-			60, 52, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 41, 51, 69, 72, 4, 193, 144, 43, 0, 0, 0, 14,
-			66, 12, 208, 117, 36, 50, 47, 37, 65, 36, 47, 44, 0, 0, 0, 0, 0, 0, 7, 195, 8, 86, 128, 8, 23, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 14, 70, 61, 85, 12, 60, 242, 192, 127, 47, 55, 126, 49, 0, 0, 0, 0, 0, 0, 12, 65, 148,
-			72, 55, 6, 129, 107, 123, 4, 121, 0, 0, 0, 7, 195, 60, 65, 64, 72, 28, 9, 3, 226, 130, 172, 128, 51, 39, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 11, 67, 64, 117, 80, 48, 131, 75, 35, 48, 0, 0, 14, 4, 95, 111, 103, 111, 6, 39, 81, 39, 50, 36,
-			49, 0, 0, 0, 0, 0, 0, 12, 66, 29, 112, 81, 37, 81, 35, 84, 35, 47, 0, 0, 6, 195, 61, 51, 128, 13, 6, 195, 53, 195,
-			64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 52, 128, 13, 6, 195, 8, 84, 192, 13, 0, 0, 0, 15,
-			4, 95, 98, 114, 118, 6, 39, 71, 55, 129, 76, 36, 49, 0, 0, 0, 0, 0, 18, 4, 95, 97, 99, 50, 72, 84, 57, 6, 36, 76,
-			6, 124, 51, 49, 37, 0, 0, 0, 0, 0, 7, 194, 16, 240, 72, 28, 23, 0, 0, 12, 69, 56, 85, 212, 60, 224, 67, 126, 47, 50,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 12, 19, 131, 20, 192, 49, 36, 50, 89, 45, 0, 13, 66,
-			44, 32, 49, 37, 55, 39, 71, 35, 57, 47, 0, 0, 13, 3, 95, 51, 88, 47, 134, 6, 37, 117, 36, 47, 0, 0, 10, 3, 95, 48,
-			67, 89, 6, 36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 84, 129, 128, 13, 0, 10, 3, 95, 49, 67, 89, 47, 6, 39, 0,
-			0, 0, 0, 0, 15, 70, 84, 229, 9, 80, 193, 68, 35, 50, 47, 37, 47, 45, 0, 0, 0, 5, 194, 40, 80, 72, 17, 3, 95, 49,
-			57, 72, 6, 36, 84, 35, 47, 36, 50, 124, 117, 47, 0, 0, 15, 3, 95, 49, 56, 6, 39, 89, 40, 65, 50, 124, 117, 47, 0, 0,
-			15, 3, 95, 50, 67, 72, 84, 57, 6, 36, 89, 80, 6, 36, 0, 0, 0, 0, 9, 132, 112, 197, 153, 105, 72, 8, 23, 12, 65, 156,
-			72, 55, 6, 129, 107, 123, 4, 125, 0, 0, 0, 0, 15, 3, 95, 49, 49, 57, 6, 36, 72, 36, 50, 124, 117, 47, 0, 0, 6, 195,
-			65, 35, 64, 13, 6, 195, 48, 91, 192, 8, 12, 3, 95, 49, 48, 72, 6, 36, 89, 36, 47, 0, 0, 14, 3, 95, 51, 67, 47, 134,
-			6, 37, 89, 47, 6, 35, 0, 14, 3, 95, 49, 51, 47, 134, 6, 37, 50, 124, 117, 47, 0, 0, 14, 3, 95, 49, 50, 72, 84, 6,
-			35, 50, 124, 117, 47, 0, 0, 5, 194, 6, 240, 8, 14, 3, 95, 49, 53, 48, 6, 35, 47, 50, 124, 117, 47, 0, 0, 6, 195, 81,
-			35, 64, 13, 14, 3, 95, 49, 52, 76, 47, 6, 44, 50, 124, 117, 47, 0, 0, 7, 132, 98, 195, 189, 116, 72, 16, 3, 95, 49, 55,
-			89, 6, 36, 72, 40, 65, 50, 124, 117, 47, 0, 0, 15, 3, 95, 49, 54, 91, 6, 36, 89, 47, 50, 124, 117, 47, 0, 0, 0, 17,
-			3, 95, 55, 88, 89, 6, 36, 72, 40, 65, 72, 36, 89, 124, 47, 0, 0, 15, 3, 95, 52, 67, 76, 47, 37, 133, 37, 89, 47, 6,
-			35, 0, 0, 0, 0, 0, 0, 0, 9, 66, 33, 160, 107, 36, 51, 117, 0, 0, 0, 0, 0, 0, 13, 4, 95, 97, 99, 117, 76, 6,
-			124, 51, 49, 35, 0, 0, 0, 0, 0, 14, 67, 52, 134, 128, 65, 36, 81, 35, 107, 36, 51, 117, 0, 0, 4, 193, 160, 43, 0, 0,
-			0, 0, 0, 11, 3, 95, 50, 102, 72, 84, 57, 6, 36, 0, 0, 0, 6, 195, 41, 51, 213, 72, 13, 3, 95, 50, 88, 72, 84, 6,
-			35, 117, 36, 47, 0, 0, 15, 5, 95, 48, 77, 65, 49, 80, 6, 37, 89, 121, 117, 36, 0, 0, 0, 17, 5, 95, 48, 77, 65, 51,
-			65, 6, 37, 55, 37, 35, 51, 72, 37, 0, 0, 16, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55, 37, 125, 50, 37, 0, 0, 0, 16,
-			5, 95, 48, 77, 65, 52, 71, 6, 37, 55, 37, 125, 50, 37, 0, 0, 13, 66, 28, 224, 81, 37, 81, 35, 67, 40, 47, 50, 0, 0,
-			6, 195, 88, 112, 64, 13, 0, 0, 0, 0, 0, 12, 3, 95, 63, 63, 89, 37, 65, 71, 39, 55, 0, 0, 0, 0, 15, 3, 95, 52,
-			88, 76, 47, 6, 37, 133, 37, 117, 36, 47, 0, 0, 0, 0, 0, 0, 0, 8, 195, 56, 17, 0, 72, 8, 23, 0, 7, 194, 56, 16,
-			72, 28, 23, 0, 6, 195, 64, 50, 64, 13, 14, 3, 95, 53, 88, 48, 6, 35, 72, 36, 89, 124, 47, 0, 0, 0, 14, 4, 95, 114,
-			110, 103, 49, 51, 6, 129, 90, 36, 49, 0, 0, 0, 0, 0, 0, 12, 66, 45, 112, 49, 37, 55, 39, 84, 35, 47, 0, 0, 14, 3,
-			95, 54, 88, 91, 6, 36, 72, 36, 89, 124, 47, 0, 0, 0, 0, 0, 0, 19, 71, 8, 19, 9, 77, 66, 75, 4, 71, 35, 55, 37,
-			89, 47, 37, 49, 35, 0, 0, 0, 0, 6, 195, 60, 68, 192, 13, 0, 7, 196, 9, 148, 212, 20, 72, 7, 196, 64, 241, 12, 20, 8,
-			0, 0, 0, 0, 7, 196, 88, 81, 12, 20, 8, 0, 13, 69, 16, 83, 5, 80, 80, 72, 37, 55, 121, 47, 0, 8, 197, 12, 128, 197,
-			52, 80, 76, 0, 0, 16, 3, 95, 56, 88, 6, 39, 89, 40, 65, 72, 36, 89, 124, 47, 0, 0, 0, 0, 0, 6, 195, 17, 37, 128,
-			13, 6, 195, 8, 86, 133, 8, 0, 0, 19, 67, 12, 20, 19, 49, 35, 48, 89, 55, 39, 49, 0, 81, 108, 111, 99, 107, 32, 0, 0,
-			16, 3, 95, 57, 88, 72, 6, 36, 84, 35, 72, 36, 89, 124, 47, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 65, 88, 50,
-			35, 49, 0, 0, 0, 0, 0, 0, 0, 12, 65, 168, 72, 55, 6, 129, 107, 123, 4, 126, 0, 0, 19, 4, 95, 115, 116, 107, 91, 6,
-			37, 49, 65, 124, 76, 6, 124, 51, 49, 35, 0, 0, 0, 0, 6, 195, 189, 49, 146, 13, 0, 0, 0, 0, 0, 0, 0, 12, 67, 64,
-			113, 14, 48, 131, 75, 72, 127, 50, 0, 0, 8, 197, 9, 81, 5, 52, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 56,
-			20, 18, 61, 66, 64, 8, 0, 0, 0, 0, 0, 0, 15, 4, 95, 99, 105, 114, 89, 47, 133, 6, 121, 91, 49, 35, 0, 4, 193, 172,
-			43, 0, 8, 195, 65, 35, 192, 72, 8, 23, 0, 15, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 125, 50, 126, 0, 0, 0, 15, 4,
-			95, 48, 77, 50, 65, 6, 37, 55, 37, 125, 50, 126, 0, 0, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55, 37, 35, 51, 72, 0, 0,
-			0, 13, 4, 95, 48, 77, 49, 80, 6, 37, 89, 121, 117, 0, 0, 7, 194, 60, 64, 72, 28, 23, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 17, 4, 95, 108, 105, 103, 55, 6, 37, 81, 35, 47, 4, 40, 51, 35, 0, 0, 0, 0, 0, 0, 0, 0, 13, 66, 44, 208, 49,
-			37, 55, 39, 65, 36, 47, 44, 0, 5, 194, 52, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
-			66, 44, 224, 49, 37, 55, 39, 67, 40, 47, 50, 0, 6, 195, 44, 193, 18, 13, 7, 196, 44, 243, 5, 52, 8, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 8, 195, 16, 193, 64, 72, 8, 23, 0, 0, 0, 6, 195, 12, 254, 64, 8, 0, 0, 14, 4, 95, 99, 101, 100, 117,
-			6, 36, 79, 37, 55, 35, 0, 0, 10, 67, 76, 150, 133, 89, 35, 57, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
-			36, 35, 64, 13, 0, 12, 4, 95, 99, 97, 112, 84, 36, 55, 49, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 65, 188, 76, 123, 0, 0, 0, 6, 195, 12, 128, 197, 76, 0, 0, 0, 0, 0, 5, 194, 72, 48, 13, 6, 195, 189, 52,
-			128, 13, 6, 195, 53, 195, 69, 76, 0, 0, 6, 195, 91, 80, 75, 8, 0, 0, 0, 11, 68, 48, 22, 133, 72, 55, 131, 88, 44, 0,
-			0, 0, 0, 5, 194, 73, 48, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 64, 64, 13, 0, 0, 0,
-			5, 194, 77, 32, 13, 6, 195, 18, 82, 217, 8, 0, 0, 0, 0, 6, 195, 53, 205, 64, 76, 0, 0, 0, 0, 12, 69, 76, 80, 82,
-			12, 128, 89, 36, 51, 76, 0, 0, 6, 195, 60, 177, 0, 13, 6, 195, 52, 147, 79, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 64, 68, 128, 13, 0, 0, 0, 21, 4, 95, 103, 114, 118, 80, 6, 36, 91, 49, 121, 38, 6, 35,
-			49, 117, 36, 50, 47, 0, 0, 6, 195, 64, 196, 128, 13, 0, 0, 9, 2, 195, 151, 49, 51, 124, 47, 0, 7, 2, 196, 143, 79, 123,
-			0, 0, 0, 0, 0, 6, 195, 9, 81, 5, 72, 0, 0, 0, 0, 13, 2, 194, 167, 48, 35, 51, 35, 81, 51, 35, 83, 0, 0, 5,
-			194, 60, 208, 13, 5, 194, 76, 80, 72, 0, 0, 0, 0, 7, 2, 197, 136, 36, 67, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 196,
-			155, 37, 57, 36, 0, 0, 0, 14, 2, 194, 169, 49, 6, 39, 48, 37, 51, 35, 57, 47, 0, 0, 0, 16, 70, 21, 128, 200, 4, 225,
-			197, 37, 49, 89, 76, 131, 50, 75, 0, 0, 0, 0, 0, 0, 11, 2, 194, 176, 89, 47, 40, 48, 36, 67, 0, 0, 6, 195, 12, 112,
-			64, 13, 7, 2, 197, 153, 36, 133, 0, 0, 0, 6, 195, 12, 128, 201, 76, 11, 2, 195, 183, 79, 36, 55, 36, 50, 39, 0, 0, 5,
-			194, 73, 128, 13, 7, 2, 195, 180, 40, 125, 0, 0, 7, 2, 197, 165, 80, 123, 0, 0, 0, 0, 0, 0, 7, 196, 60, 179, 204, 60,
-			8, 0, 9, 67, 64, 17, 197, 48, 131, 75, 0, 6, 195, 76, 144, 197, 8, 17, 2, 197, 175, 6, 126, 89, 10, 49, 51, 6, 129, 90,
-			49, 36, 65, 0, 0, 0, 6, 195, 5, 34, 128, 13, 18, 2, 195, 189, 72, 55, 6, 129, 123, 4, 37, 48, 89, 37, 55, 39, 50, 0,
-			0, 0, 0, 0, 0, 7, 2, 196, 190, 36, 61, 0, 0, 0, 8, 195, 76, 180, 154, 72, 28, 23, 0, 0, 14, 2, 196, 186, 72, 55,
-			6, 129, 107, 123, 4, 36, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 18, 165, 76, 0, 0,
-			0, 0, 0, 0, 0, 11, 67, 84, 226, 69, 40, 50, 37, 57, 36, 0, 0, 7, 194, 64, 240, 72, 8, 23, 5, 194, 76, 144, 72, 0,
-			8, 195, 64, 241, 0, 72, 8, 23, 0, 0, 6, 195, 52, 86, 137, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 6, 195, 5, 32, 192, 13, 0, 0, 0, 0, 6, 195, 85, 48, 64, 13, 0, 0, 12, 69, 12, 128, 78, 28, 80, 76, 131, 50, 75,
-			0, 8, 197, 12, 128, 197, 80, 80, 76, 8, 197, 9, 81, 5, 80, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 144,
-			72, 0, 0, 10, 3, 101, 46, 103, 50, 35, 48, 133, 0, 0, 0, 0, 0, 13, 2, 95, 34, 40, 84, 39, 88, 39, 84, 49, 37, 0,
-			0, 0, 0, 7, 196, 54, 84, 212, 60, 8, 13, 2, 95, 39, 35, 48, 39, 89, 47, 51, 39, 83, 0, 0, 0, 0, 10, 2, 95, 36,
-			72, 39, 55, 124, 51, 0, 0, 0, 0, 18, 2, 95, 41, 88, 124, 84, 39, 34, 49, 35, 88, 35, 84, 133, 121, 47, 0, 0, 12, 2,
-			95, 40, 88, 124, 84, 39, 51, 49, 35, 0, 0, 6, 195, 52, 180, 128, 13, 0, 10, 2, 95, 46, 47, 36, 76, 49, 35, 0, 0, 10,
-			2, 95, 45, 65, 121, 50, 40, 89, 0, 0, 6, 195, 77, 52, 210, 13, 10, 2, 95, 44, 76, 124, 51, 49, 35, 0, 0, 8, 2, 95,
-			51, 47, 134, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 11, 2, 95, 49, 57, 6, 36, 72, 36, 50, 0, 0, 10, 2,
-			95, 48, 50, 6, 40, 55, 35, 0, 0, 9, 67, 32, 243, 69, 107, 129, 65, 0, 6, 195, 84, 181, 128, 13, 11, 2, 95, 55, 89, 6,
-			36, 72, 40, 65, 0, 0, 10, 2, 95, 54, 91, 6, 36, 89, 47, 0, 0, 10, 2, 95, 53, 48, 6, 57, 36, 47, 0, 0, 11, 2,
-			95, 52, 76, 47, 6, 37, 133, 37, 0, 0, 13, 2, 95, 59, 88, 72, 133, 36, 72, 67, 121, 49, 0, 0, 15, 2, 95, 58, 72, 84,
-			6, 39, 57, 47, 36, 76, 49, 35, 0, 0, 12, 2, 95, 57, 72, 6, 36, 84, 57, 36, 47, 0, 0, 10, 2, 95, 56, 6, 39, 89,
-			40, 65, 0, 0, 12, 2, 95, 63, 39, 47, 35, 88, 67, 121, 49, 0, 0, 7, 132, 109, 196, 155, 108, 76, 10, 2, 95, 62, 84, 57,
-			36, 76, 121, 0, 0, 0, 10, 2, 95, 60, 65, 36, 50, 91, 121, 0, 0, 0, 0, 0, 0, 6, 195, 9, 81, 21, 72, 0, 0, 0,
-			0, 0, 0, 6, 195, 92, 116, 15, 13, 0, 0, 0, 0, 6, 65, 212, 36, 91, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 177, 192,
-			13, 0, 0, 0, 0, 6, 195, 9, 147, 1, 72, 6, 195, 4, 193, 64, 8, 22, 2, 95, 91, 107, 51, 6, 35, 50, 35, 47, 124, 15,
-			88, 6, 124, 84, 39, 51, 49, 35, 0, 0, 0, 0, 7, 194, 104, 16, 72, 8, 23, 0, 14, 2, 95, 95, 48, 39, 47, 47, 44, 90,
-			36, 67, 121, 0, 0, 0, 21, 2, 95, 93, 107, 51, 6, 35, 50, 35, 47, 124, 15, 88, 6, 35, 84, 133, 121, 47, 0, 0, 0, 0,
-			0, 6, 2, 95, 97, 124, 0, 0, 22, 2, 95, 96, 6, 39, 71, 51, 124, 117, 4, 36, 50, 124, 15, 76, 6, 124, 51, 49, 35, 0,
-			0, 0, 0, 0, 0, 7, 2, 95, 107, 49, 124, 0, 0, 0, 6, 195, 9, 147, 15, 72, 6, 2, 95, 105, 121, 0, 0, 0, 6, 2,
-			95, 111, 125, 0, 0, 0, 0, 0, 7, 2, 95, 115, 36, 89, 0, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 124, 76, 36, 49, 0,
-			0, 0, 0, 7, 2, 95, 118, 84, 123, 0, 0, 6, 2, 95, 117, 126, 0, 0, 0, 22, 2, 95, 123, 89, 55, 6, 39, 90, 36, 50,
-			124, 15, 88, 6, 124, 84, 39, 51, 49, 35, 0, 0, 8, 2, 95, 122, 88, 36, 47, 0, 0, 0, 0, 0, 0, 21, 2, 95, 125, 89,
-			55, 6, 39, 90, 36, 50, 124, 15, 88, 6, 35, 84, 133, 121, 47, 0, 0, 18, 2, 95, 124, 89, 84, 6, 37, 89, 55, 124, 15, 76,
-			6, 124, 51, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 16, 245, 206, 72, 127, 50, 0, 0, 0, 0, 0, 0, 6, 195, 188,
-			192, 64, 13, 0, 0, 0, 0, 12, 67, 21, 48, 192, 37, 89, 49, 36, 37, 48, 0, 0, 8, 196, 76, 180, 154, 20, 72, 8, 0, 0,
-			0, 0, 0, 0, 14, 4, 95, 35, 51, 50, 65, 6, 36, 88, 36, 51, 35, 0, 0, 0, 0, 0, 7, 194, 104, 80, 72, 28, 23, 0,
-			0, 0, 9, 134, 98, 196, 155, 104, 101, 109, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 196, 128,
-			13, 0, 0, 0, 0, 6, 195, 9, 148, 192, 72, 0, 0, 0, 0, 12, 67, 93, 117, 192, 84, 123, 84, 123, 84, 123, 0, 6, 195, 60,
-			133, 128, 13, 0, 11, 68, 5, 48, 201, 36, 35, 89, 49, 37, 0, 0, 0, 0, 0, 0, 10, 133, 112, 197, 153, 101, 100, 72, 8, 23,
-			0, 0, 14, 67, 28, 134, 128, 81, 37, 81, 35, 107, 36, 34, 117, 0, 0, 0, 0, 0, 14, 67, 44, 134, 128, 49, 37, 55, 39, 107,
-			36, 34, 117, 0, 6, 195, 9, 147, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 52, 201, 13, 6, 195,
-			60, 128, 192, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 41, 53, 5, 72, 0, 0, 0, 0, 6, 195, 77, 69, 129, 13, 6, 195,
-			21, 65, 128, 13, 0, 0, 0, 0, 0, 7, 196, 9, 81, 15, 84, 72, 0, 0, 14, 69, 36, 228, 197, 73, 64, 37, 50, 88, 36, 51,
-			47, 0, 0, 0, 7, 65, 228, 90, 36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 53, 192, 76, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 100, 105, 0, 4, 1, 97,
-			2, 107, 3, 72, 37, 0, 1, 97, 108, 2, 115, 0, 1, 97, 114, 116, 2, 99, 0, 1, 101, 109, 0, 1, 101, 112, 111, 116, 2, 99,
-			0, 1, 101, 114, 107, 2, 116, 0, 1, 105, 109, 0, 1, 108, 97, 114, 0, 1, 110, 2, 99, 0, 1, 110, 97, 2, 100, 0, 1, 110,
-			97, 109, 2, 116, 0, 1, 110, 105, 0, 1, 111, 2, 99, 0, 1, 111, 105, 114, 2, 99, 0, 1, 111, 107, 2, 102, 105, 0, 1, 111,
-			116, 101, 0, 1, 114, 97, 100, 2, 122, 0, 1, 114, 111, 0, 1, 155, 196, 109, 0, 1, 169, 195, 109, 0, 2, 97, 0, 2, 97, 32,
-			0, 2, 101, 0, 2, 103, 105, 0, 2, 106, 0, 2, 107, 0, 2, 110, 105, 107, 0, 2, 111, 0, 2, 114, 0, 2, 115, 99, 105, 112,
-			0, 2, 115, 107, 0, 2, 115, 109, 0, 2, 115, 112, 0, 2, 115, 116, 0, 2, 115, 116, 0, 2, 116, 105, 107, 0, 2, 117, 0, 2,
-			117, 109, 32, 0, 8, 2, 99, 104, 0, 8, 2, 102, 0, 8, 2, 103, 0, 8, 2, 108, 101, 116, 0, 8, 2, 109, 101, 0, 8, 2,
-			109, 105, 0, 8, 2, 112, 0, 8, 2, 115, 0, 8, 2, 118, 97, 110, 0, 8, 2, 118, 101, 114, 0, 8, 2, 118, 105, 100, 0, 8,
-			2, 122, 0, 8, 2, 195, 161, 0, 8, 97, 108, 103, 0, 8, 97, 114, 116, 0, 8, 101, 0, 8, 101, 110, 2, 112, 0, 8, 101, 112,
-			120, 101, 0, 8, 108, 111, 112, 0, 8, 110, 97, 99, 115, 0, 8, 111, 2, 110, 115, 116, 0, 8, 111, 109, 0, 8, 114, 97, 107, 0,
-			8, 114, 97, 115, 0, 8, 117, 97, 0, 99, 107, 8, 3, 72, 37, 49, 0, 4, 2, 101, 32, 3, 72, 37, 57, 0, 2, 101, 32, 0,
-			2, 105, 32, 0, 2, 111, 32, 0, 2, 117, 32, 0, 8, 2, 97, 0, 115, 116, 105, 2, 99, 3, 72, 37, 89, 47, 37, 0, 115, 107,
-			114, 101, 100, 105, 3, 72, 37, 89, 49, 14, 16, 36, 72, 37, 0, 115, 99, 111, 8, 3, 72, 37, 89, 49, 39, 0, 4, 1, 101, 153,
-			197, 2, 115, 107, 3, 79, 37, 0, 1, 111, 104, 99, 2, 115, 0, 8, 2, 114, 99, 0, 8, 2, 114, 107, 0, 8, 2, 118, 105, 122,
-			110, 97, 0, 8, 2, 118, 105, 122, 110, 121, 0, 8, 101, 108, 104, 0, 7, 6, 110, 105, 0, 4, 1, 97, 2, 100, 3, 50, 37, 0,
-			1, 97, 2, 107, 0, 1, 97, 2, 107, 111, 118, 0, 1, 97, 2, 122, 0, 1, 97, 103, 114, 111, 110, 97, 0, 1, 97, 104, 99, 2,
-			99, 0, 1, 97, 104, 99, 2, 107, 0, 1, 97, 104, 99, 101, 2, 115, 0, 1, 97, 109, 2, 102, 0, 1, 97, 109, 2, 112, 0, 1,
-			97, 109, 114, 101, 0, 1, 97, 110, 2, 115, 0, 1, 101, 2, 107, 0, 1, 101, 2, 115, 0, 1, 101, 103, 0, 1, 101, 108, 97, 2,
-			116, 0, 1, 101, 108, 101, 2, 116, 0, 1, 101, 122, 2, 116, 0, 1, 103, 2, 116, 0, 1, 105, 2, 99, 105, 0, 1, 105, 2, 107,
-			0, 1, 105, 2, 116, 0, 1, 105, 102, 101, 0, 1, 105, 108, 107, 0, 1, 105, 109, 0, 1, 107, 2, 112, 0, 1, 111, 2, 100, 0,
-			1, 111, 2, 107, 0, 1, 111, 2, 115, 0, 1, 111, 100, 2, 99, 0, 1, 111, 102, 2, 99, 0, 1, 111, 103, 0, 1, 111, 103, 97,
-			116, 2, 115, 0, 1, 111, 109, 101, 114, 101, 0, 1, 111, 109, 114, 97, 104, 0, 1, 111, 110, 2, 109, 0, 1, 111, 114, 2, 99, 0,
-			1, 111, 114, 100, 110, 101, 0, 1, 111, 114, 104, 99, 110, 121, 115, 0, 1, 111, 114, 105, 0, 1, 111, 116, 107, 0, 1, 117, 2, 116,
-			0, 1, 117, 109, 2, 107, 0, 1, 117, 109, 2, 115, 0, 1, 117, 109, 111, 107, 0, 1, 117, 116, 2, 115, 0, 1, 169, 195, 103, 0,
-			2, 97, 32, 0, 2, 97, 107, 0, 2, 107, 108, 0, 2, 110, 105, 107, 0, 2, 115, 109, 0, 2, 115, 116, 0, 2, 116, 105, 107, 0,
-			2, 117, 109, 32, 0, 2, 122, 117, 106, 0, 8, 2, 108, 0, 8, 2, 116, 114, 111, 0, 8, 97, 2, 109, 0, 8, 97, 103, 114, 111,
-			0, 8, 97, 107, 2, 98, 0, 8, 97, 109, 117, 104, 0, 8, 97, 110, 2, 116, 114, 0, 8, 97, 112, 2, 99, 107, 0, 8, 97, 115,
-			2, 116, 0, 8, 97, 116, 111, 98, 0, 8, 97, 118, 108, 97, 103, 0, 8, 101, 105, 103, 121, 104, 0, 8, 101, 115, 2, 108, 0, 8,
-			101, 116, 2, 115, 0, 8, 111, 98, 101, 0, 8, 111, 108, 111, 107, 0, 8, 111, 109, 0, 8, 116, 101, 2, 99, 0, 8, 117, 0, 8,
-			117, 109, 0, 8, 117, 109, 105, 2, 116, 0, 8, 121, 99, 0, 8, 169, 195, 114, 116, 0, 116, 105, 1, 105, 102, 3, 50, 37, 47, 37,
-			0, 107, 111, 116, 105, 8, 3, 50, 37, 49, 39, 47, 37, 0, 4, 2, 101, 32, 3, 50, 37, 57, 0, 2, 105, 32, 0, 2, 111, 32,
-			0, 2, 117, 32, 0, 2, 195, 173, 0, 4, 1, 97, 122, 2, 107, 3, 67, 37, 0, 1, 100, 111, 112, 2, 107, 0, 1, 100, 117, 111,
-			108, 0, 1, 105, 118, 2, 116, 0, 1, 105, 141, 196, 2, 116, 0, 1, 106, 111, 116, 115, 0, 1, 111, 114, 112, 2, 107, 0, 1, 117,
-			2, 107, 0, 1, 118, 2, 107, 108, 0, 1, 122, 118, 2, 107, 0, 1, 153, 197, 111, 109, 161, 195, 110, 0, 8, 2, 116, 114, 111, 32,
-			0, 8, 97, 104, 99, 173, 195, 109, 0, 8, 105, 108, 104, 2, 116, 0, 8, 111, 114, 98, 0, 7, 6, 116, 105, 0, 4, 109, 101, 2,
-			32, 3, 47, 35, 57, 65, 0, 109, 101, 8, 0, 4, 1, 97, 2, 99, 3, 47, 37, 0, 1, 97, 2, 107, 0, 1, 97, 2, 110, 0,
-			1, 97, 2, 118, 0, 1, 97, 2, 122, 0, 1, 97, 109, 2, 99, 107, 0, 1, 97, 109, 2, 107, 97, 0, 1, 97, 109, 97, 2, 99,
-			0, 1, 97, 109, 97, 2, 107, 0, 1, 97, 109, 97, 114, 100, 0, 1, 97, 109, 101, 2, 99, 0, 1, 97, 109, 101, 2, 107, 0, 1,
-			97, 109, 111, 114, 97, 0, 1, 97, 109, 111, 116, 2, 99, 0, 1, 97, 109, 117, 2, 99, 0, 1, 97, 112, 97, 2, 99, 0, 1, 97,
-			112, 97, 2, 196, 141, 0, 1, 97, 112, 109, 111, 2, 98, 0, 1, 97, 112, 109, 121, 0, 1, 101, 2, 99, 0, 1, 101, 2, 107, 0,
-			1, 101, 2, 118, 0, 1, 101, 2, 122, 0, 1, 101, 107, 114, 97, 2, 110, 103, 0, 1, 101, 110, 2, 99, 0, 1, 101, 114, 111, 101,
-			2, 99, 0, 1, 105, 2, 107, 0, 1, 105, 103, 2, 109, 0, 1, 105, 108, 2, 99, 0, 1, 105, 109, 105, 114, 2, 118, 0, 1, 105,
-			110, 97, 118, 2, 116, 0, 1, 105, 114, 2, 99, 0, 1, 105, 114, 2, 107, 0, 1, 105, 114, 107, 0, 1, 105, 118, 114, 0, 1, 107,
-			2, 118, 0, 1, 107, 97, 0, 1, 107, 101, 0, 1, 107, 114, 0, 1, 108, 117, 107, 2, 118, 0, 1, 110, 2, 99, 0, 1, 110, 2,
-			110, 0, 1, 110, 97, 2, 107, 0, 1, 110, 97, 2, 108, 0, 1, 110, 97, 2, 115, 0, 1, 110, 101, 2, 110, 0, 1, 110, 101, 118,
-			2, 108, 0, 1, 110, 105, 2, 109, 0, 1, 110, 111, 107, 0, 1, 111, 2, 107, 0, 1, 111, 98, 2, 122, 0, 1, 111, 109, 2, 118,
-			0, 1, 111, 114, 2, 107, 0, 1, 111, 114, 101, 2, 99, 0, 1, 111, 120, 2, 107, 0, 1, 112, 101, 2, 107, 0, 1, 112, 111, 0,
-			1, 114, 2, 122, 0, 1, 114, 111, 2, 109, 0, 1, 115, 2, 107, 0, 1, 115, 2, 109, 117, 108, 0, 1, 115, 2, 112, 0, 1, 115,
-			101, 100, 2, 108, 0, 1, 115, 101, 103, 117, 115, 0, 1, 115, 101, 118, 110, 0, 1, 115, 111, 2, 99, 0, 1, 117, 2, 107, 0, 1,
-			117, 97, 0, 1, 120, 2, 108, 0, 1, 189, 195, 2, 99, 107, 0, 2, 97, 32, 0, 2, 99, 107, 0, 2, 102, 0, 2, 110, 105, 107,
-			0, 2, 115, 109, 0, 2, 115, 116, 0, 2, 116, 105, 107, 0, 2, 116, 117, 108, 0, 2, 117, 109, 32, 0, 8, 2, 98, 0, 8, 2,
-			99, 105, 0, 8, 2, 109, 98, 0, 8, 2, 110, 107, 0, 8, 2, 114, 97, 110, 0, 8, 2, 116, 97, 110, 0, 8, 2, 116, 117, 108,
-			0, 8, 2, 116, 195, 161, 110, 0, 8, 2, 120, 0, 8, 97, 108, 112, 2, 110, 0, 8, 97, 109, 103, 101, 108, 102, 0, 8, 97, 109,
-			169, 195, 116, 0, 8, 97, 115, 2, 114, 0, 8, 97, 115, 2, 197, 153, 0, 8, 101, 109, 115, 111, 107, 0, 8, 101, 112, 2, 196, 141,
-			0, 8, 105, 115, 111, 112, 0, 8, 108, 117, 2, 109, 0, 8, 108, 117, 109, 0, 8, 110, 97, 0, 8, 110, 97, 108, 116, 97, 0, 8,
-			110, 101, 99, 0, 8, 110, 101, 115, 0, 8, 110, 101, 118, 101, 114, 112, 0, 8, 110, 111, 107, 2, 110, 0, 8, 111, 108, 102, 0, 8,
-			112, 105, 108, 107, 101, 0, 8, 112, 111, 2, 99, 0, 8, 114, 101, 118, 2, 107, 0, 8, 115, 98, 97, 0, 8, 115, 101, 98, 0, 8,
-			115, 101, 108, 97, 112, 0, 8, 115, 101, 114, 2, 116, 0, 8, 115, 110, 105, 0, 8, 115, 110, 111, 107, 0, 8, 115, 117, 106, 0, 8,
-			117, 114, 0, 110, 105, 2, 117, 3, 47, 37, 50, 37, 57, 0, 4, 2, 101, 32, 3, 47, 37, 57, 0, 2, 105, 32, 0, 2, 111, 32,
-			0, 2, 117, 32, 0, 109, 111, 110, 105, 2, 116, 3, 47, 37, 65, 39, 50, 37, 0, 4, 115, 116, 105, 1, 97, 3, 47, 37, 89, 47,
-			37, 0, 115, 116, 105, 8, 97, 116, 115, 0, 4, 1, 97, 104, 99, 2, 99, 3, 80, 37, 0, 1, 97, 108, 2, 110, 0, 1, 97, 109,
-			2, 99, 0, 1, 99, 0, 1, 101, 99, 105, 153, 197, 0, 1, 101, 108, 112, 0, 1, 101, 153, 197, 2, 99, 0, 1, 104, 99, 101, 108,
-			0, 1, 111, 114, 2, 118, 0, 1, 112, 97, 2, 118, 0, 1, 114, 100, 0, 1, 115, 101, 161, 197, 0, 1, 115, 109, 0, 1, 115, 111,
-			100, 0, 1, 115, 111, 104, 0, 1, 115, 111, 107, 2, 99, 0, 1, 115, 161, 195, 2, 99, 0, 1, 155, 196, 2, 99, 0, 1, 155, 196,
-			112, 0, 1, 155, 196, 118, 2, 118, 0, 1, 161, 195, 115, 101, 100, 0, 1, 173, 195, 118, 101, 0, 8, 97, 109, 2, 110, 0, 8, 101,
-			99, 97, 118, 100, 0, 8, 101, 115, 101, 100, 0, 8, 111, 114, 112, 0, 8, 115, 97, 114, 116, 115, 0, 8, 121, 107, 2, 99, 0, 8,
-			155, 196, 116, 0, 7, 6, 195, 161, 0, 3, 124, 0, 7, 6, 195, 164, 0, 3, 36, 0, 7, 6, 195, 169, 0, 3, 123, 0, 7, 6,
-			195, 173, 0, 3, 121, 0, 7, 6, 195, 179, 0, 3, 125, 0, 7, 6, 195, 180, 0, 3, 40, 39, 0, 7, 6, 195, 186, 0, 3, 126,
-			0, 7, 6, 195, 189, 0, 3, 121, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 143, 0, 4, 3, 79, 0, 2, 32, 17, 70,
-			0, 2, 32, 3, 80, 0, 7, 6, 196, 155, 0, 3, 36, 0, 7, 6, 196, 190, 0, 3, 61, 0, 7, 6, 197, 136, 0, 3, 67, 0,
-			7, 6, 197, 153, 0, 3, 133, 0, 4, 1, 102, 3, 134, 0, 1, 107, 0, 1, 112, 0, 1, 116, 0, 7, 6, 197, 161, 0, 3, 91,
-			0, 7, 6, 197, 165, 0, 3, 80, 0, 7, 6, 197, 175, 0, 3, 126, 0, 7, 6, 197, 190, 0, 4, 3, 90, 0, 2, 32, 17, 70,
-			0, 2, 32, 3, 91, 0, 7, 6, 97, 0, 3, 35, 0, 99, 107, 1, 114, 116, 3, 36, 49, 0, 117, 3, 127, 0, 105, 1, 109, 2,
-			108, 3, 131, 0, 103, 101, 1, 112, 3, 131, 75, 0, 115, 116, 101, 1, 112, 2, 32, 3, 131, 89, 47, 0, 7, 6, 98, 0, 2, 32,
-			3, 48, 0, 4, 3, 71, 0, 2, 32, 17, 70, 0, 97, 99, 107, 3, 71, 36, 49, 0, 196, 155, 3, 71, 57, 36, 0, 111, 97, 114,
-			100, 3, 71, 125, 34, 72, 0, 97, 115, 105, 99, 3, 71, 131, 88, 37, 49, 0, 7, 6, 99, 0, 4, 1, 101, 114, 2, 111, 3, 49,
-			0, 1, 115, 97, 112, 2, 97, 108, 0, 2, 117, 115, 0, 8, 2, 97, 108, 0, 8, 2, 108, 97, 117, 0, 8, 2, 111, 109, 0, 8,
-			2, 111, 114, 0, 8, 97, 109, 2, 114, 0, 8, 115, 2, 111, 0, 107, 1, 97, 112, 0, 107, 1, 111, 108, 0, 107, 8, 97, 112, 2,
-			97, 0, 114, 101, 97, 116, 105, 8, 3, 49, 34, 36, 35, 47, 37, 0, 111, 118, 101, 114, 3, 49, 35, 84, 44, 0, 97, 8, 115, 2,
-			110, 3, 49, 36, 0, 116, 114, 108, 3, 49, 39, 50, 47, 14, 16, 39, 55, 0, 111, 103, 110, 105, 1, 101, 114, 2, 116, 3, 49, 39,
-			81, 50, 37, 0, 104, 3, 101, 0, 3, 117, 0, 7, 6, 100, 0, 2, 32, 3, 47, 0, 4, 3, 72, 0, 2, 32, 17, 70, 0, 2,
-			105, 28, 17, 0, 2, 195, 173, 28, 17, 0, 4, 197, 190, 3, 75, 0, 197, 190, 2, 32, 17, 70, 0, 197, 190, 2, 32, 3, 76, 0,
-			4, 2, 105, 3, 79, 0, 2, 195, 173, 0, 2, 196, 155, 0, 122, 2, 32, 3, 117, 0, 4, 122, 3, 118, 0, 122, 2, 32, 17, 70,
-			0, 7, 6, 101, 0, 3, 36, 0, 121, 1, 107, 3, 121, 0, 117, 3, 128, 0, 106, 2, 25, 3, 131, 0, 7, 6, 102, 0, 3, 83,
-			0, 196, 155, 3, 83, 57, 36, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 4, 3, 81, 0, 2, 32, 17, 70, 0, 7, 6, 104, 0,
-			2, 32, 3, 101, 0, 4, 3, 107, 0, 2, 32, 17, 70, 0, 7, 6, 105, 0, 97, 3, 2, 37, 35, 0, 101, 3, 2, 37, 36, 0,
-			117, 3, 2, 37, 40, 0, 103, 104, 116, 1, 17, 67, 3, 35, 57, 47, 0, 3, 37, 0, 97, 2, 32, 3, 37, 35, 0, 101, 2, 32,
-			3, 37, 57, 36, 0, 105, 2, 32, 3, 37, 57, 37, 0, 111, 2, 32, 3, 37, 57, 39, 0, 117, 2, 32, 3, 37, 57, 40, 0, 8,
-			2, 111, 110, 3, 57, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 4, 3, 49, 0, 107, 0, 7, 6, 108, 0, 1, 25, 2,
-			25, 3, 45, 0, 4, 3, 55, 0, 108, 0, 97, 115, 101, 114, 8, 3, 55, 131, 88, 34, 0, 7, 6, 109, 0, 3, 65, 0, 105, 99,
-			8, 2, 114, 111, 3, 65, 35, 57, 49, 0, 97, 110, 97, 103, 101, 114, 8, 3, 65, 36, 50, 36, 75, 44, 0, 101, 115, 115, 97, 103,
-			101, 8, 3, 65, 36, 89, 37, 75, 0, 196, 155, 3, 65, 67, 36, 0, 7, 6, 110, 0, 2, 110, 3, 0, 4, 3, 50, 0, 2, 105,
-			28, 17, 0, 2, 195, 173, 28, 17, 0, 4, 2, 105, 3, 67, 0, 2, 195, 173, 0, 2, 196, 155, 0, 101, 119, 3, 67, 126, 0, 4,
-			2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 105, 99, 101, 1, 118, 3, 39, 57, 89, 0, 4, 111, 1, 116, 2,
-			108, 3, 126, 0, 117, 1, 114, 103, 2, 112, 0, 4, 117, 3, 129, 0, 119, 8, 100, 110, 105, 119, 0, 7, 6, 112, 0, 4, 3, 48,
-			0, 112, 2, 17, 65, 32, 0, 196, 155, 3, 48, 57, 36, 0, 7, 6, 113, 0, 4, 3, 49, 84, 0, 117, 0, 7, 6, 114, 0, 1,
-			25, 2, 25, 3, 44, 0, 4, 3, 51, 0, 114, 0, 105, 103, 104, 116, 3, 51, 35, 57, 47, 0, 7, 6, 115, 0, 4, 1, 101, 2,
-			105, 100, 3, 88, 0, 8, 101, 114, 112, 2, 105, 100, 0, 4, 3, 89, 0, 115, 2, 17, 65, 32, 0, 115, 2, 32, 0, 101, 108, 101,
-			99, 2, 116, 3, 89, 37, 55, 36, 49, 0, 112, 97, 99, 101, 3, 89, 48, 131, 89, 0, 99, 97, 112, 101, 3, 89, 49, 131, 48, 0,
-			104, 105, 102, 116, 3, 91, 37, 83, 47, 0, 7, 6, 116, 0, 4, 3, 47, 0, 2, 105, 28, 17, 0, 2, 195, 173, 28, 17, 0, 116,
-			2, 17, 65, 32, 0, 116, 2, 32, 0, 4, 2, 105, 3, 80, 0, 2, 195, 173, 0, 2, 196, 155, 0, 7, 6, 117, 0, 3, 40, 0,
-			7, 6, 118, 0, 3, 84, 0, 196, 155, 3, 84, 57, 36, 0, 7, 6, 119, 0, 3, 84, 0, 97, 118, 101, 3, 84, 131, 83, 0, 7,
-			6, 120, 0, 3, 49, 89, 0, 111, 116, 105, 1, 101, 2, 99, 3, 81, 88, 39, 47, 37, 0, 7, 6, 121, 0, 3, 37, 0, 2, 195,
-			173, 3, 37, 57, 0, 7, 6, 122, 0, 4, 3, 88, 0, 2, 32, 17, 70, 0, 2, 32, 3, 89, 0, 7, 6, 0, 4, 45, 1, 32,
-			17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 171, 3, 36, 0, 195, 188, 3, 37, 0, 197, 149, 3,
-			44, 0, 196, 186, 3, 45, 0, 45, 8, 32, 2, 32, 15, 3, 65, 121, 50, 40, 89, 0, 36, 3, 72, 39, 55, 124, 51, 0, 195, 182,
-			3, 123, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts9 = FileInMemory_createWithData (7565, reinterpret_cast<const char *> (&espeakdata_dicts9_data), 
-			U"espeak-1.48.04-source/espeak-data/cs_dict", 
+		static unsigned char espeakdata_dicts8_data[7615] = {
+			0, 4, 0, 0, 70, 17, 0, 0, 0, 0, 0, 0, 6, 195, 41, 49, 77, 72, 0, 6, 65, 4, 124, 0, 14, 6, 193, 4, 72, 28,
+			8, 0, 0, 6, 195, 12, 16, 128, 17, 9, 134, 2, 196, 155, 8, 5, 13, 8, 0, 0, 6, 65, 8, 71, 123, 0, 0, 0, 0, 0,
+			6, 65, 12, 117, 123, 0, 0, 0, 13, 4, 95, 8, 1, 3, 107, 6, 124, 76, 36, 49, 0, 0, 0, 6, 65, 16, 72, 123, 0, 0,
+			7, 132, 196, 141, 19, 18, 17, 0, 0, 0, 5, 65, 20, 123, 0, 0, 0, 6, 195, 41, 50, 64, 72, 0, 0, 14, 69, 4, 229, 15,
+			56, 144, 35, 50, 47, 39, 50, 37, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 6, 195, 41, 51, 69, 72, 0, 6, 65, 28, 81, 123,
+			0, 0, 6, 195, 29, 0, 64, 17, 0, 11, 67, 64, 117, 80, 48, 131, 75, 35, 48, 0, 0, 0, 6, 65, 32, 107, 124, 0, 0, 14,
+			1, 33, 84, 37, 81, 133, 37, 76, 67, 121, 49, 0, 27, 0, 0, 10, 1, 35, 81, 133, 121, 90, 36, 49, 0, 0, 6, 65, 36, 121,
+			0, 14, 5, 193, 36, 72, 28, 0, 5, 194, 37, 0, 17, 13, 1, 37, 48, 51, 39, 117, 36, 50, 47, 39, 0, 27, 0, 12, 1, 38,
+			35, 65, 48, 44, 89, 36, 50, 47, 0, 0, 0, 7, 132, 12, 5, 196, 141, 8, 6, 65, 40, 57, 123, 0, 0, 0, 15, 1, 42, 107,
+			84, 57, 36, 88, 79, 37, 76, 49, 35, 0, 27, 15, 1, 42, 107, 84, 57, 36, 88, 79, 37, 76, 49, 35, 0, 27, 0, 9, 1, 43,
+			48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 124, 0, 14, 4, 193, 44, 28, 0, 6, 195, 45, 0, 64, 17, 0, 10, 1, 46, 47,
+			36, 76, 49, 35, 0, 27, 0, 10, 1, 47, 55, 39, 65, 36, 50, 39, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 7, 196, 88,
+			81, 12, 20, 8, 0, 6, 65, 52, 36, 65, 0, 0, 6, 195, 53, 0, 64, 17, 0, 9, 134, 2, 21, 4, 5, 197, 161, 72, 0, 0,
+			11, 136, 3, 8, 20, 196, 155, 10, 195, 173, 76, 8, 197, 9, 81, 5, 52, 80, 72, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 6,
+			65, 60, 125, 0, 14, 6, 193, 60, 72, 8, 23, 0, 10, 1, 61, 51, 39, 84, 50, 39, 0, 27, 0, 0, 10, 67, 76, 150, 133, 89,
+			35, 57, 88, 0, 0, 11, 1, 64, 88, 35, 84, 37, 50, 124, 76, 0, 6, 65, 64, 48, 123, 0, 0, 0, 6, 195, 20, 81, 192, 17,
+			0, 0, 7, 65, 68, 49, 84, 123, 0, 0, 0, 0, 7, 132, 13, 196, 155, 12, 76, 0, 6, 65, 72, 36, 51, 0, 0, 0, 0, 0,
+			7, 65, 76, 36, 89, 0, 14, 7, 65, 76, 89, 10, 0, 8, 10, 133, 16, 197, 153, 5, 4, 72, 8, 23, 0, 0, 0, 6, 195, 76,
+			144, 197, 8, 0, 6, 65, 80, 47, 123, 0, 0, 0, 6, 195, 4, 226, 64, 8, 0, 11, 67, 84, 226, 69, 40, 50, 37, 57, 36, 0,
+			6, 195, 52, 86, 137, 8, 0, 0, 7, 66, 85, 0, 35, 48, 0, 8, 133, 4, 195, 173, 11, 25, 8, 0, 0, 0, 12, 69, 12, 128,
+			78, 28, 80, 76, 131, 50, 75, 0, 7, 65, 88, 84, 123, 0, 14, 8, 197, 12, 128, 197, 80, 80, 76, 7, 65, 88, 84, 10, 0, 28,
+			0, 0, 0, 14, 4, 95, 49, 77, 52, 71, 6, 37, 55, 37, 125, 50, 0, 0, 11, 1, 92, 71, 36, 49, 89, 55, 36, 91, 0, 11,
+			65, 92, 72, 84, 6, 39, 57, 84, 123, 0, 0, 0, 11, 1, 94, 88, 72, 133, 121, 91, 49, 35, 0, 0, 0, 13, 4, 95, 49, 77,
+			49, 80, 6, 37, 89, 121, 117, 0, 7, 65, 96, 37, 49, 89, 0, 0, 14, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 125, 50, 0,
+			0, 16, 4, 95, 49, 77, 51, 65, 6, 37, 55, 37, 35, 51, 72, 35, 0, 0, 0, 9, 67, 16, 245, 206, 72, 127, 50, 0, 11, 65,
+			100, 37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 47, 0, 14, 7, 65, 104, 89, 10, 0, 28, 0, 0,
+			6, 195, 5, 65, 0, 17, 0, 11, 68, 5, 48, 201, 36, 35, 89, 49, 37, 0, 0, 0, 15, 70, 84, 229, 9, 80, 193, 68, 35, 50,
+			47, 37, 47, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 57, 52, 128, 17, 0, 0, 0, 0, 19, 71,
+			8, 19, 9, 77, 66, 75, 4, 71, 35, 55, 37, 89, 47, 37, 49, 35, 0, 9, 1, 126, 47, 37, 55, 72, 35, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 8, 196, 65, 35, 212, 36, 72, 8, 0, 0, 0, 6, 195, 13, 33, 0, 17, 0, 0, 0, 0, 8, 133, 196, 141,
+			19, 19, 18, 17, 0, 0, 0, 7, 132, 3, 15, 197, 190, 8, 0, 6, 195, 93, 34, 64, 17, 0, 0, 0, 0, 6, 195, 17, 2, 64,
+			17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 72, 196, 128, 17, 6, 195, 56, 68, 128, 17, 6, 195, 8, 196, 128,
+			17, 0, 0, 0, 0, 6, 195, 73, 52, 192, 17, 0, 0, 0, 0, 0, 6, 195, 41, 51, 213, 72, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 84, 102, 128, 17, 0, 0, 14, 67, 16, 51, 0, 72, 36, 117, 37, 55, 37, 47, 44, 0, 0, 0, 0, 0, 0, 9, 198, 56, 20,
+			18, 61, 66, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 72, 192, 192, 17, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
+			85, 97, 128, 17, 0, 6, 195, 9, 81, 5, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 4, 16, 20, 9,
+			76, 124, 51, 49, 35, 10, 0, 0, 0, 5, 194, 9, 144, 72, 5, 194, 9, 144, 72, 0, 0, 6, 195, 9, 81, 21, 72, 0, 6, 195,
+			9, 147, 0, 72, 0, 0, 0, 0, 0, 7, 66, 12, 128, 101, 124, 0, 0, 0, 13, 4, 95, 20, 12, 4, 80, 6, 37, 55, 72, 35,
+			0, 10, 3, 95, 35, 57, 47, 6, 35, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 61, 165, 128, 17, 0, 0,
+			0, 0, 16, 70, 21, 128, 200, 4, 225, 197, 37, 49, 89, 76, 131, 50, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 76, 52, 143, 48, 192, 89, 49, 34, 125, 55, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 195, 56, 80, 143, 72, 8, 0, 0, 6, 195, 45, 35, 205, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 57, 83, 64,
+			50, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 52, 128, 17, 0, 0, 13, 69, 12, 19, 131, 20, 192, 49, 36, 50,
+			89, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 66, 12, 208, 117, 36, 50, 47, 37, 65, 36, 47, 44, 0,
+			6, 195, 8, 86, 133, 8, 0, 0, 0, 0, 0, 7, 195, 8, 86, 128, 8, 23, 0, 0, 0, 0, 0, 7, 196, 44, 243, 5, 52, 8,
+			0, 6, 195, 44, 193, 18, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 60, 65, 64, 72, 28, 9, 3,
+			226, 130, 172, 128, 51, 39, 0, 0, 0, 8, 195, 76, 180, 154, 72, 28, 23, 0, 9, 67, 64, 17, 197, 48, 131, 75, 0, 6, 131, 196,
+			141, 1, 17, 0, 0, 8, 133, 13, 195, 161, 197, 161, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 9, 81, 5, 80, 80, 72,
+			11, 3, 95, 50, 6, 72, 84, 57, 6, 36, 0, 0, 12, 66, 29, 112, 81, 37, 81, 35, 84, 35, 47, 0, 0, 6, 195, 61, 51, 128,
+			17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 52, 128, 17, 6, 195, 8, 84, 192, 17, 0, 0, 0, 14, 4,
+			95, 13, 3, 14, 65, 6, 35, 49, 51, 39, 50, 0, 0, 0, 0, 0, 6, 195, 76, 52, 201, 17, 0, 0, 0, 0, 7, 194, 16, 240,
+			72, 28, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 196, 141, 18, 17, 0, 13, 66, 44, 32, 49,
+			37, 55, 39, 71, 35, 57, 47, 0, 0, 13, 3, 95, 51, 88, 47, 134, 6, 37, 117, 36, 47, 0, 0, 10, 3, 95, 48, 67, 89, 6,
+			36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 84, 129, 128, 17, 0, 10, 3, 95, 49, 67, 89, 47, 6, 39, 0, 0, 0, 0,
+			0, 0, 0, 5, 194, 40, 80, 72, 17, 3, 95, 49, 57, 72, 6, 36, 84, 35, 47, 36, 50, 124, 117, 47, 0, 0, 15, 3, 95, 49,
+			56, 6, 39, 89, 40, 65, 50, 124, 117, 47, 0, 0, 15, 3, 95, 50, 67, 72, 84, 57, 6, 36, 89, 80, 6, 36, 0, 0, 0, 0,
+			0, 0, 0, 15, 3, 95, 49, 49, 57, 6, 36, 72, 36, 50, 124, 117, 47, 0, 0, 6, 195, 65, 35, 64, 17, 12, 3, 95, 49, 48,
+			72, 6, 36, 89, 36, 47, 0, 0, 14, 3, 95, 51, 67, 47, 134, 6, 37, 89, 47, 6, 35, 0, 14, 3, 95, 49, 51, 47, 134, 6,
+			37, 50, 124, 117, 47, 0, 0, 14, 3, 95, 49, 50, 72, 84, 6, 35, 50, 124, 117, 47, 0, 0, 14, 3, 95, 49, 53, 48, 6, 35,
+			47, 50, 124, 117, 47, 0, 0, 6, 195, 81, 35, 64, 17, 14, 3, 95, 49, 52, 76, 47, 6, 44, 50, 124, 117, 47, 0, 0, 16, 3,
+			95, 49, 55, 89, 6, 36, 72, 40, 65, 50, 124, 117, 47, 0, 0, 15, 3, 95, 49, 54, 91, 6, 36, 89, 47, 50, 124, 117, 47, 0,
+			0, 0, 17, 3, 95, 55, 88, 89, 6, 36, 72, 40, 65, 72, 36, 89, 124, 47, 0, 0, 15, 3, 95, 52, 67, 76, 47, 37, 133, 37,
+			89, 47, 6, 35, 0, 0, 0, 0, 0, 0, 0, 9, 66, 33, 160, 107, 36, 51, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+			67, 52, 134, 128, 65, 36, 81, 35, 107, 36, 51, 117, 0, 0, 7, 196, 9, 148, 212, 20, 72, 7, 196, 64, 241, 12, 20, 8, 0, 0,
+			0, 9, 132, 16, 197, 153, 9, 72, 8, 23, 0, 0, 0, 0, 13, 3, 95, 50, 88, 72, 84, 6, 35, 117, 36, 47, 0, 0, 15, 5,
+			95, 48, 77, 65, 49, 80, 6, 37, 89, 121, 117, 36, 0, 0, 0, 17, 5, 95, 48, 77, 65, 51, 65, 6, 37, 55, 37, 35, 51, 72,
+			37, 0, 0, 16, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55, 37, 125, 50, 37, 0, 0, 0, 16, 5, 95, 48, 77, 65, 52, 71, 6,
+			37, 55, 37, 125, 50, 37, 0, 0, 13, 66, 28, 224, 81, 37, 81, 35, 67, 40, 47, 50, 0, 0, 6, 195, 88, 112, 64, 17, 0, 11,
+			68, 48, 22, 133, 72, 55, 131, 88, 44, 0, 0, 0, 0, 0, 6, 195, 52, 147, 79, 8, 12, 3, 95, 63, 63, 89, 37, 65, 71, 39,
+			55, 0, 0, 0, 0, 15, 3, 95, 52, 88, 76, 47, 6, 37, 133, 37, 117, 36, 47, 0, 0, 0, 0, 0, 0, 0, 8, 195, 56, 17,
+			0, 72, 8, 23, 0, 7, 194, 56, 16, 72, 28, 23, 0, 6, 195, 64, 50, 64, 17, 14, 3, 95, 53, 88, 48, 6, 35, 72, 36, 89,
+			124, 47, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 52, 210, 17, 0, 12, 66, 45, 112, 49, 37, 55, 39, 84, 35, 47, 0, 0, 14,
+			3, 95, 54, 88, 91, 6, 36, 72, 36, 89, 124, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 68, 192, 17, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 3, 95, 56, 88, 6, 39, 89, 40, 65, 72, 36, 89, 124, 47, 0, 0, 0, 0, 6, 195, 77, 69, 129, 17,
+			0, 6, 195, 17, 37, 128, 17, 0, 0, 0, 0, 16, 3, 95, 57, 88, 72, 6, 36, 84, 35, 72, 36, 89, 124, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 131, 13, 195, 161, 76, 10, 3, 95, 63, 65, 88, 50, 35, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 14, 4, 95, 15, 7, 15, 6, 39, 81, 39, 50, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 13, 195, 161,
+			13, 5, 76, 0, 0, 0, 0, 0, 9, 134, 3, 8, 3, 5, 197, 161, 76, 0, 0, 0, 0, 0, 0, 8, 197, 9, 144, 200, 60, 208,
+			72, 0, 0, 8, 195, 65, 35, 192, 72, 8, 23, 0, 15, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 125, 50, 126, 0, 0, 0, 15,
+			4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 125, 50, 126, 0, 0, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55, 37, 35, 51, 72, 0,
+			0, 0, 13, 4, 95, 48, 77, 49, 80, 6, 37, 89, 121, 117, 0, 0, 7, 194, 60, 64, 72, 28, 23, 15, 4, 95, 2, 18, 22, 6,
+			39, 71, 55, 129, 76, 36, 49, 0, 0, 0, 0, 12, 69, 56, 85, 212, 60, 224, 67, 126, 47, 50, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 66, 44, 208, 49, 37, 55, 39, 65, 36, 47, 44, 0, 5, 194, 52, 144, 72, 0, 0, 0, 13, 69, 16,
+			83, 5, 80, 80, 72, 37, 55, 121, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 66, 44, 224, 49, 37, 55,
+			39, 67, 40, 47, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 195, 16, 193, 64, 72, 8, 23, 0, 0, 0, 0, 0, 7, 196,
+			60, 179, 204, 60, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 35, 64, 17, 0, 0, 0, 15, 4, 95, 3, 9,
+			18, 89, 47, 133, 6, 121, 91, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 76, 180, 154, 20, 72, 8, 0, 0,
+			0, 19, 4, 95, 19, 20, 11, 91, 6, 37, 49, 65, 124, 76, 6, 124, 51, 49, 35, 0, 0, 0, 13, 4, 95, 1, 3, 21, 76, 6,
+			124, 51, 49, 35, 0, 0, 0, 0, 0, 0, 5, 194, 72, 48, 17, 0, 0, 0, 0, 0, 14, 4, 95, 18, 14, 7, 49, 51, 6, 129,
+			90, 36, 49, 0, 0, 0, 0, 5, 194, 73, 48, 17, 0, 19, 67, 33, 69, 16, 107, 124, 47, 36, 47, 36, 48, 123, 0, 81, 58, 47,
+			47, 32, 0, 0, 0, 7, 132, 196, 141, 1, 22, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 64, 64, 17, 0, 0, 0,
+			5, 194, 77, 32, 17, 0, 0, 7, 195, 56, 17, 5, 72, 8, 0, 0, 18, 4, 95, 1, 3, 50, 72, 84, 57, 6, 36, 76, 6, 124,
+			51, 49, 37, 0, 0, 0, 0, 0, 0, 6, 195, 60, 177, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 195, 64, 68, 128, 17, 0, 0, 0, 0, 6, 195, 64, 196, 128, 17, 0, 0, 9, 2, 195, 151, 49, 51, 124, 47, 0, 7, 2,
+			196, 143, 79, 123, 0, 0, 0, 7, 2, 196, 141, 76, 123, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 48, 35, 51, 35, 81, 51,
+			35, 83, 0, 0, 5, 194, 60, 208, 17, 5, 194, 76, 80, 72, 0, 0, 0, 0, 10, 3, 5, 46, 7, 50, 35, 48, 133, 0, 7, 2,
+			197, 136, 36, 67, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 196, 155, 37, 57, 36, 0, 0, 0, 14, 2, 194, 169, 49, 6, 39, 48,
+			37, 51, 35, 57, 47, 0, 13, 2, 195, 161, 72, 55, 6, 129, 107, 123, 4, 124, 0, 0, 7, 132, 2, 195, 189, 20, 72, 0, 0, 0,
+			13, 2, 195, 173, 72, 55, 6, 129, 107, 123, 4, 121, 0, 0, 0, 5, 130, 195, 171, 43, 0, 8, 133, 13, 195, 161, 20, 5, 76, 11,
+			2, 194, 176, 89, 47, 40, 48, 36, 67, 0, 0, 6, 195, 12, 112, 64, 17, 7, 2, 197, 153, 36, 133, 0, 13, 2, 195, 169, 72, 55,
+			6, 129, 107, 123, 4, 123, 0, 0, 5, 130, 195, 182, 43, 0, 12, 69, 76, 80, 82, 12, 128, 89, 36, 51, 76, 0, 11, 2, 195, 183,
+			79, 36, 55, 36, 50, 39, 0, 0, 5, 194, 73, 128, 17, 7, 2, 195, 180, 40, 125, 0, 0, 7, 2, 197, 165, 80, 123, 0, 0, 14,
+			4, 95, 3, 5, 4, 117, 6, 36, 79, 37, 55, 35, 0, 0, 13, 2, 195, 179, 72, 55, 6, 129, 107, 123, 4, 125, 0, 0, 0, 17,
+			4, 95, 12, 9, 7, 55, 6, 37, 81, 35, 47, 4, 40, 51, 35, 0, 7, 2, 197, 161, 36, 91, 0, 0, 0, 17, 2, 197, 175, 6,
+			126, 89, 10, 49, 51, 6, 129, 90, 49, 36, 65, 0, 0, 5, 130, 195, 188, 43, 0, 6, 195, 5, 34, 128, 17, 18, 2, 195, 189, 72,
+			55, 6, 129, 123, 4, 37, 48, 89, 37, 55, 39, 50, 0, 0, 13, 2, 195, 186, 72, 55, 6, 129, 107, 123, 4, 126, 0, 0, 0, 0,
+			0, 7, 2, 196, 190, 36, 61, 0, 0, 0, 0, 0, 14, 2, 196, 186, 72, 55, 6, 129, 107, 123, 4, 36, 55, 0, 0, 0, 6, 195,
+			92, 116, 15, 17, 0, 0, 6, 195, 9, 147, 1, 72, 8, 2, 197, 190, 90, 36, 47, 0, 0, 0, 6, 195, 9, 147, 15, 72, 0, 0,
+			0, 0, 0, 0, 6, 195, 9, 147, 9, 72, 0, 0, 0, 0, 7, 196, 9, 81, 15, 84, 72, 6, 131, 1, 196, 141, 8, 0, 0, 0,
+			0, 0, 0, 7, 194, 64, 240, 72, 8, 23, 5, 194, 76, 144, 72, 0, 8, 195, 64, 241, 0, 72, 8, 23, 0, 0, 0, 0, 0, 6,
+			195, 9, 147, 25, 72, 0, 0, 0, 6, 2, 95, 1, 124, 0, 0, 0, 0, 0, 0, 7, 2, 95, 11, 49, 124, 0, 0, 0, 6, 2,
+			95, 9, 121, 0, 0, 0, 6, 195, 5, 32, 192, 17, 6, 2, 95, 15, 125, 0, 0, 0, 0, 0, 6, 195, 85, 48, 64, 17, 7, 2,
+			95, 19, 36, 89, 0, 0, 0, 0, 0, 0, 7, 2, 95, 22, 84, 123, 0, 0, 6, 2, 95, 21, 126, 0, 0, 0, 0, 8, 2, 95,
+			26, 88, 36, 47, 0, 0, 0, 7, 131, 197, 190, 5, 72, 8, 5, 194, 80, 144, 72, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 40,
+			84, 39, 88, 39, 84, 49, 37, 0, 0, 0, 0, 13, 2, 95, 39, 35, 48, 39, 89, 47, 51, 39, 83, 0, 0, 0, 0, 10, 2, 95,
+			36, 72, 39, 55, 124, 51, 0, 0, 0, 12, 4, 95, 3, 1, 16, 84, 36, 55, 49, 123, 0, 0, 18, 2, 95, 41, 88, 124, 84, 39,
+			34, 49, 35, 88, 35, 84, 133, 121, 47, 0, 0, 12, 2, 95, 40, 88, 124, 84, 39, 51, 49, 35, 0, 0, 6, 195, 52, 180, 128, 17,
+			0, 10, 2, 95, 46, 47, 36, 76, 49, 35, 0, 0, 10, 2, 95, 45, 65, 121, 50, 40, 89, 0, 0, 10, 2, 95, 44, 76, 124, 51,
+			49, 35, 0, 0, 8, 2, 95, 51, 47, 134, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 11, 2, 95, 49, 57, 6, 36,
+			72, 36, 50, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 35, 0, 0, 6, 195, 84, 181, 128, 17, 11, 2, 95, 55, 89, 6, 36, 72,
+			40, 65, 0, 0, 10, 2, 95, 54, 91, 6, 36, 89, 47, 0, 0, 10, 2, 95, 53, 48, 6, 57, 36, 47, 0, 0, 11, 2, 95, 52,
+			76, 47, 6, 37, 133, 37, 0, 0, 13, 2, 95, 59, 88, 72, 133, 36, 72, 67, 121, 49, 0, 0, 15, 2, 95, 58, 72, 84, 6, 39,
+			57, 47, 36, 76, 49, 35, 0, 0, 12, 2, 95, 57, 72, 6, 36, 84, 57, 36, 47, 0, 0, 10, 2, 95, 56, 6, 39, 89, 40, 65,
+			0, 0, 12, 2, 95, 63, 39, 47, 35, 88, 67, 121, 49, 0, 0, 10, 2, 95, 62, 84, 57, 36, 76, 121, 0, 0, 8, 197, 12, 128,
+			197, 52, 80, 76, 0, 10, 2, 95, 60, 65, 36, 50, 91, 121, 0, 0, 0, 8, 133, 13, 1, 10, 195, 173, 76, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 177, 192, 17, 0, 13, 4, 95, 4, 15, 20, 47, 6, 36,
+			76, 49, 35, 0, 0, 0, 0, 6, 195, 4, 193, 64, 8, 22, 2, 95, 91, 107, 51, 6, 35, 50, 35, 47, 124, 15, 88, 6, 124, 84,
+			39, 51, 49, 35, 0, 0, 0, 0, 7, 194, 104, 16, 72, 8, 23, 0, 14, 2, 95, 95, 48, 39, 47, 47, 44, 90, 36, 67, 121, 0,
+			0, 0, 21, 2, 95, 93, 107, 51, 6, 35, 50, 35, 47, 124, 15, 88, 6, 35, 84, 133, 121, 47, 0, 0, 0, 0, 0, 0, 22, 2,
+			95, 96, 6, 39, 71, 51, 124, 117, 4, 36, 50, 124, 15, 76, 6, 124, 51, 49, 35, 0, 0, 9, 134, 13, 195, 173, 19, 20, 15, 8,
+			0, 0, 8, 133, 196, 141, 22, 21, 20, 17, 0, 0, 0, 0, 0, 21, 4, 95, 7, 18, 22, 80, 6, 36, 91, 49, 121, 38, 6, 35,
+			49, 117, 36, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 2, 95, 123, 89, 55, 6, 39, 90, 36, 50,
+			124, 15, 88, 6, 124, 84, 39, 51, 49, 35, 0, 13, 4, 95, 4, 9, 1, 47, 51, 6, 36, 65, 35, 0, 0, 0, 0, 8, 133, 22,
+			197, 161, 1, 11, 8, 0, 0, 10, 68, 64, 245, 197, 72, 48, 127, 44, 0, 0, 21, 2, 95, 125, 89, 55, 6, 39, 90, 36, 50, 124,
+			15, 88, 6, 35, 84, 133, 121, 47, 0, 0, 18, 2, 95, 124, 89, 84, 6, 37, 89, 55, 124, 15, 76, 6, 124, 51, 35, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 196, 141, 12, 1, 17, 0, 0, 0, 0, 12, 67, 21, 48, 192, 37, 89, 49,
+			36, 37, 48, 0, 0, 0, 0, 7, 195, 64, 241, 5, 72, 8, 0, 0, 0, 0, 14, 4, 95, 35, 51, 50, 65, 6, 36, 88, 36, 51,
+			35, 0, 0, 6, 195, 9, 144, 200, 72, 0, 0, 0, 7, 132, 196, 141, 12, 18, 17, 7, 194, 104, 80, 72, 28, 23, 0, 0, 0, 0,
+			0, 0, 0, 0, 14, 70, 61, 85, 12, 60, 242, 192, 127, 47, 55, 126, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52,
+			196, 128, 17, 0, 0, 0, 0, 6, 195, 9, 148, 192, 72, 0, 0, 0, 0, 12, 67, 93, 117, 192, 84, 123, 84, 123, 84, 123, 0, 6,
+			195, 60, 133, 128, 17, 0, 0, 0, 0, 0, 19, 67, 12, 20, 19, 49, 35, 48, 89, 55, 39, 49, 0, 81, 108, 111, 99, 107, 32, 0,
+			0, 0, 14, 67, 28, 134, 128, 81, 37, 81, 35, 107, 36, 34, 117, 0, 0, 0, 12, 67, 64, 113, 14, 48, 131, 75, 72, 127, 50, 0,
+			0, 0, 14, 67, 44, 134, 128, 49, 37, 55, 39, 107, 36, 34, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12,
+			128, 197, 76, 0, 6, 195, 60, 128, 192, 17, 7, 132, 13, 195, 161, 13, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 196,
+			141, 19, 1, 4, 17, 0, 6, 195, 12, 128, 201, 76, 0, 6, 195, 21, 65, 128, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 67, 32, 243, 69, 107, 129, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 196, 141, 19, 6, 18, 17,
+			0, 0, 0, 0, 0, 0, 14, 69, 36, 228, 197, 73, 64, 37, 50, 88, 36, 51, 47, 0, 0, 6, 195, 41, 53, 5, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 100, 105, 0, 4, 1, 97, 2, 107, 3, 72, 37, 0, 1, 97, 108, 2, 115,
+			0, 1, 97, 114, 116, 2, 99, 0, 1, 101, 109, 0, 1, 101, 112, 111, 116, 2, 99, 0, 1, 101, 114, 107, 2, 116, 0, 1, 105, 109,
+			0, 1, 108, 97, 114, 0, 1, 110, 2, 99, 0, 1, 110, 97, 2, 100, 0, 1, 110, 97, 109, 2, 116, 0, 1, 110, 105, 0, 1, 111,
+			2, 99, 0, 1, 111, 105, 114, 2, 99, 0, 1, 111, 107, 2, 102, 105, 0, 1, 111, 116, 101, 0, 1, 114, 97, 100, 2, 122, 0, 1,
+			114, 111, 0, 1, 155, 196, 109, 0, 1, 169, 195, 109, 0, 2, 97, 0, 2, 97, 32, 0, 2, 101, 0, 2, 103, 105, 0, 2, 106, 0,
+			2, 107, 0, 2, 110, 105, 107, 0, 2, 111, 0, 2, 114, 0, 2, 115, 99, 105, 112, 0, 2, 115, 107, 0, 2, 115, 109, 0, 2, 115,
+			112, 0, 2, 115, 116, 0, 2, 115, 116, 0, 2, 116, 105, 107, 0, 2, 117, 0, 2, 117, 109, 32, 0, 8, 2, 99, 104, 0, 8, 2,
+			102, 0, 8, 2, 103, 0, 8, 2, 108, 101, 116, 0, 8, 2, 109, 101, 0, 8, 2, 109, 105, 0, 8, 2, 112, 0, 8, 2, 115, 0,
+			8, 2, 118, 97, 110, 0, 8, 2, 118, 101, 114, 0, 8, 2, 118, 105, 100, 0, 8, 2, 122, 0, 8, 2, 195, 161, 0, 8, 97, 108,
+			103, 0, 8, 97, 114, 116, 0, 8, 101, 0, 8, 101, 110, 2, 112, 0, 8, 101, 112, 120, 101, 0, 8, 108, 111, 112, 0, 8, 110, 97,
+			99, 115, 0, 8, 111, 2, 110, 115, 116, 0, 8, 111, 109, 0, 8, 114, 97, 107, 0, 8, 114, 97, 115, 0, 8, 117, 97, 0, 99, 107,
+			8, 3, 72, 37, 49, 0, 4, 2, 101, 32, 3, 72, 37, 57, 0, 2, 101, 32, 0, 2, 105, 32, 0, 2, 111, 32, 0, 2, 117, 32,
+			0, 8, 2, 97, 0, 115, 116, 105, 2, 99, 3, 72, 37, 89, 47, 37, 0, 115, 107, 114, 101, 100, 105, 3, 72, 37, 89, 49, 14, 16,
+			36, 72, 37, 0, 115, 99, 111, 8, 3, 72, 37, 89, 49, 39, 0, 4, 1, 101, 153, 197, 2, 115, 107, 3, 79, 37, 0, 1, 111, 104,
+			99, 2, 115, 0, 8, 2, 114, 99, 0, 8, 2, 114, 107, 0, 8, 2, 118, 105, 122, 110, 97, 0, 8, 2, 118, 105, 122, 110, 121, 0,
+			8, 101, 108, 104, 0, 7, 6, 110, 105, 0, 4, 1, 97, 2, 100, 3, 50, 37, 0, 1, 97, 2, 107, 0, 1, 97, 2, 107, 111, 118,
+			0, 1, 97, 2, 122, 0, 1, 97, 103, 114, 111, 110, 97, 0, 1, 97, 104, 99, 2, 99, 0, 1, 97, 104, 99, 2, 107, 0, 1, 97,
+			104, 99, 101, 2, 115, 0, 1, 97, 109, 2, 102, 0, 1, 97, 109, 2, 112, 0, 1, 97, 109, 114, 101, 0, 1, 97, 110, 2, 115, 0,
+			1, 101, 2, 107, 0, 1, 101, 2, 115, 0, 1, 101, 103, 0, 1, 101, 108, 97, 2, 116, 0, 1, 101, 108, 101, 2, 116, 0, 1, 101,
+			122, 2, 116, 0, 1, 103, 2, 116, 0, 1, 105, 2, 99, 105, 0, 1, 105, 2, 107, 0, 1, 105, 2, 116, 0, 1, 105, 102, 101, 0,
+			1, 105, 108, 107, 0, 1, 105, 109, 0, 1, 107, 2, 112, 0, 1, 111, 2, 100, 0, 1, 111, 2, 107, 0, 1, 111, 2, 115, 0, 1,
+			111, 100, 2, 99, 0, 1, 111, 102, 2, 99, 0, 1, 111, 103, 0, 1, 111, 103, 97, 116, 2, 115, 0, 1, 111, 109, 101, 114, 101, 0,
+			1, 111, 109, 114, 97, 104, 0, 1, 111, 110, 2, 109, 0, 1, 111, 114, 2, 99, 0, 1, 111, 114, 100, 110, 101, 0, 1, 111, 114, 104,
+			99, 110, 121, 115, 0, 1, 111, 114, 105, 0, 1, 111, 116, 107, 0, 1, 117, 2, 116, 0, 1, 117, 109, 2, 107, 0, 1, 117, 109, 2,
+			115, 0, 1, 117, 109, 111, 107, 0, 1, 117, 116, 2, 115, 0, 1, 169, 195, 103, 0, 2, 97, 32, 0, 2, 97, 107, 0, 2, 107, 108,
+			0, 2, 110, 105, 107, 0, 2, 115, 109, 0, 2, 115, 116, 0, 2, 116, 105, 107, 0, 2, 117, 109, 32, 0, 2, 122, 117, 106, 0, 8,
+			2, 108, 0, 8, 2, 116, 114, 111, 0, 8, 97, 2, 109, 0, 8, 97, 103, 114, 111, 0, 8, 97, 107, 2, 98, 0, 8, 97, 109, 117,
+			104, 0, 8, 97, 110, 2, 116, 114, 0, 8, 97, 112, 2, 99, 107, 0, 8, 97, 115, 2, 116, 0, 8, 97, 116, 111, 98, 0, 8, 97,
+			118, 108, 97, 103, 0, 8, 101, 105, 103, 121, 104, 0, 8, 101, 115, 2, 108, 0, 8, 101, 116, 2, 115, 0, 8, 111, 98, 101, 0, 8,
+			111, 108, 111, 107, 0, 8, 111, 109, 0, 8, 116, 101, 2, 99, 0, 8, 117, 0, 8, 117, 109, 0, 8, 117, 109, 105, 2, 116, 0, 8,
+			121, 99, 0, 8, 169, 195, 114, 116, 0, 116, 105, 1, 105, 102, 3, 50, 37, 47, 37, 0, 107, 111, 116, 105, 8, 3, 50, 37, 49, 39,
+			47, 37, 0, 4, 2, 101, 32, 3, 50, 37, 57, 0, 2, 105, 32, 0, 2, 111, 32, 0, 2, 117, 32, 0, 2, 195, 173, 0, 4, 1,
+			97, 122, 2, 107, 3, 67, 37, 0, 1, 100, 111, 112, 2, 107, 0, 1, 100, 117, 111, 108, 0, 1, 105, 118, 2, 116, 0, 1, 105, 141,
+			196, 2, 116, 0, 1, 106, 111, 116, 115, 0, 1, 111, 114, 112, 2, 107, 0, 1, 117, 2, 107, 0, 1, 118, 2, 107, 108, 0, 1, 122,
+			118, 2, 107, 0, 1, 153, 197, 111, 109, 161, 195, 110, 0, 8, 2, 116, 114, 111, 32, 0, 8, 97, 104, 99, 173, 195, 109, 0, 8, 105,
+			108, 104, 2, 116, 0, 8, 111, 114, 98, 0, 7, 6, 116, 105, 0, 4, 109, 101, 2, 32, 3, 47, 35, 57, 65, 0, 109, 101, 8, 0,
+			4, 1, 97, 2, 99, 3, 47, 37, 0, 1, 97, 2, 107, 0, 1, 97, 2, 110, 0, 1, 97, 2, 118, 0, 1, 97, 2, 122, 0, 1,
+			97, 109, 2, 99, 107, 0, 1, 97, 109, 2, 107, 97, 0, 1, 97, 109, 97, 2, 99, 0, 1, 97, 109, 97, 2, 107, 0, 1, 97, 109,
+			97, 114, 100, 0, 1, 97, 109, 101, 2, 99, 0, 1, 97, 109, 101, 2, 107, 0, 1, 97, 109, 111, 114, 97, 0, 1, 97, 109, 111, 116,
+			2, 99, 0, 1, 97, 109, 117, 2, 99, 0, 1, 97, 112, 97, 2, 99, 0, 1, 97, 112, 97, 2, 196, 141, 0, 1, 97, 112, 109, 111,
+			2, 98, 0, 1, 97, 112, 109, 121, 0, 1, 101, 2, 99, 0, 1, 101, 2, 107, 0, 1, 101, 2, 118, 0, 1, 101, 2, 122, 0, 1,
+			101, 107, 114, 97, 2, 110, 103, 0, 1, 101, 110, 2, 99, 0, 1, 101, 114, 111, 101, 2, 99, 0, 1, 105, 2, 107, 0, 1, 105, 103,
+			2, 109, 0, 1, 105, 108, 2, 99, 0, 1, 105, 109, 105, 114, 2, 118, 0, 1, 105, 110, 97, 118, 2, 116, 0, 1, 105, 114, 2, 99,
+			0, 1, 105, 114, 2, 107, 0, 1, 105, 114, 107, 0, 1, 105, 118, 114, 0, 1, 107, 2, 118, 0, 1, 107, 97, 0, 1, 107, 101, 0,
+			1, 107, 114, 0, 1, 108, 117, 107, 2, 118, 0, 1, 110, 2, 99, 0, 1, 110, 2, 110, 0, 1, 110, 97, 2, 107, 0, 1, 110, 97,
+			2, 108, 0, 1, 110, 97, 2, 115, 0, 1, 110, 101, 2, 110, 0, 1, 110, 101, 118, 2, 108, 0, 1, 110, 105, 2, 109, 0, 1, 110,
+			111, 107, 0, 1, 111, 2, 107, 0, 1, 111, 98, 2, 122, 0, 1, 111, 109, 2, 118, 0, 1, 111, 114, 2, 107, 0, 1, 111, 114, 101,
+			2, 99, 0, 1, 111, 120, 2, 107, 0, 1, 112, 101, 2, 107, 0, 1, 112, 111, 0, 1, 114, 2, 122, 0, 1, 114, 111, 2, 109, 0,
+			1, 115, 2, 107, 0, 1, 115, 2, 109, 117, 108, 0, 1, 115, 2, 112, 0, 1, 115, 101, 100, 2, 108, 0, 1, 115, 101, 103, 117, 115,
+			0, 1, 115, 101, 118, 110, 0, 1, 115, 111, 2, 99, 0, 1, 117, 2, 107, 0, 1, 117, 97, 0, 1, 120, 2, 108, 0, 1, 189, 195,
+			2, 99, 107, 0, 2, 97, 32, 0, 2, 99, 107, 0, 2, 102, 0, 2, 110, 105, 107, 0, 2, 115, 109, 0, 2, 115, 116, 0, 2, 116,
+			105, 107, 0, 2, 116, 117, 108, 0, 2, 117, 109, 32, 0, 8, 2, 98, 0, 8, 2, 99, 105, 0, 8, 2, 109, 98, 0, 8, 2, 110,
+			107, 0, 8, 2, 114, 97, 110, 0, 8, 2, 116, 97, 110, 0, 8, 2, 116, 117, 108, 0, 8, 2, 116, 195, 161, 110, 0, 8, 2, 120,
+			0, 8, 97, 108, 112, 2, 110, 0, 8, 97, 109, 103, 101, 108, 102, 0, 8, 97, 109, 169, 195, 116, 0, 8, 97, 115, 2, 114, 0, 8,
+			97, 115, 2, 197, 153, 0, 8, 101, 109, 115, 111, 107, 0, 8, 101, 112, 2, 196, 141, 0, 8, 105, 115, 111, 112, 0, 8, 108, 117, 2,
+			109, 0, 8, 108, 117, 109, 0, 8, 110, 97, 0, 8, 110, 97, 108, 116, 97, 0, 8, 110, 101, 99, 0, 8, 110, 101, 115, 0, 8, 110,
+			101, 118, 101, 114, 112, 0, 8, 110, 111, 107, 2, 110, 0, 8, 111, 108, 102, 0, 8, 112, 105, 108, 107, 101, 0, 8, 112, 111, 2, 99,
+			0, 8, 114, 101, 118, 2, 107, 0, 8, 115, 98, 97, 0, 8, 115, 101, 98, 0, 8, 115, 101, 108, 97, 112, 0, 8, 115, 101, 114, 2,
+			116, 0, 8, 115, 110, 105, 0, 8, 115, 110, 111, 107, 0, 8, 115, 117, 106, 0, 8, 117, 114, 0, 110, 105, 2, 117, 3, 47, 37, 50,
+			37, 57, 0, 4, 2, 101, 32, 3, 47, 37, 57, 0, 2, 105, 32, 0, 2, 111, 32, 0, 2, 117, 32, 0, 109, 111, 110, 105, 2, 116,
+			3, 47, 37, 65, 39, 50, 37, 0, 4, 115, 116, 105, 1, 97, 3, 47, 37, 89, 47, 37, 0, 115, 116, 105, 8, 97, 116, 115, 0, 4,
+			1, 97, 104, 99, 2, 99, 3, 80, 37, 0, 1, 97, 108, 2, 110, 0, 1, 97, 109, 2, 99, 0, 1, 99, 0, 1, 101, 99, 105, 153,
+			197, 0, 1, 101, 108, 112, 0, 1, 101, 153, 197, 2, 99, 0, 1, 104, 99, 101, 108, 0, 1, 111, 114, 2, 118, 0, 1, 112, 97, 2,
+			118, 0, 1, 114, 100, 0, 1, 115, 101, 161, 197, 0, 1, 115, 109, 0, 1, 115, 111, 100, 0, 1, 115, 111, 104, 0, 1, 115, 111, 107,
+			2, 99, 0, 1, 115, 161, 195, 2, 99, 0, 1, 155, 196, 2, 99, 0, 1, 155, 196, 112, 0, 1, 155, 196, 118, 2, 118, 0, 1, 161,
+			195, 115, 101, 100, 0, 1, 173, 195, 118, 101, 0, 8, 97, 109, 2, 110, 0, 8, 101, 99, 97, 118, 100, 0, 8, 101, 115, 101, 100, 0,
+			8, 111, 114, 112, 0, 8, 115, 97, 114, 116, 115, 0, 8, 121, 107, 2, 99, 0, 8, 155, 196, 116, 0, 7, 6, 195, 161, 0, 3, 124,
+			0, 7, 6, 195, 164, 0, 3, 36, 0, 7, 6, 195, 169, 0, 3, 123, 0, 7, 6, 195, 173, 0, 3, 121, 0, 7, 6, 195, 179, 0,
+			3, 125, 0, 7, 6, 195, 180, 0, 3, 40, 39, 0, 7, 6, 195, 186, 0, 3, 126, 0, 7, 6, 195, 189, 0, 3, 121, 0, 7, 6,
+			196, 141, 0, 3, 76, 0, 7, 6, 196, 143, 0, 4, 3, 79, 0, 2, 32, 17, 70, 0, 2, 32, 3, 80, 0, 7, 6, 196, 155, 0,
+			3, 36, 0, 7, 6, 196, 190, 0, 3, 61, 0, 7, 6, 197, 136, 0, 3, 67, 0, 7, 6, 197, 153, 0, 3, 133, 0, 4, 1, 102,
+			3, 134, 0, 1, 107, 0, 1, 112, 0, 1, 116, 0, 7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 165, 0, 3, 80, 0, 7, 6,
+			197, 175, 0, 3, 126, 0, 7, 6, 197, 190, 0, 4, 3, 90, 0, 2, 32, 17, 70, 0, 2, 32, 3, 91, 0, 7, 6, 97, 0, 3,
+			35, 0, 99, 107, 1, 114, 116, 3, 36, 49, 0, 117, 3, 127, 0, 105, 1, 109, 2, 108, 3, 131, 0, 103, 101, 1, 112, 3, 131, 75,
+			0, 115, 116, 101, 1, 112, 2, 32, 3, 131, 89, 47, 0, 7, 6, 98, 0, 2, 32, 3, 48, 0, 4, 3, 71, 0, 2, 32, 17, 70,
+			0, 97, 99, 107, 3, 71, 36, 49, 0, 196, 155, 3, 71, 57, 36, 0, 111, 97, 114, 100, 3, 71, 125, 34, 72, 0, 97, 115, 105, 99,
+			3, 71, 131, 88, 37, 49, 0, 7, 6, 99, 0, 4, 1, 101, 114, 2, 111, 3, 49, 0, 1, 115, 97, 112, 2, 97, 108, 0, 2, 117,
+			115, 0, 8, 2, 97, 108, 0, 8, 2, 108, 97, 117, 0, 8, 2, 111, 109, 0, 8, 2, 111, 114, 0, 8, 97, 109, 2, 114, 0, 8,
+			115, 2, 111, 0, 107, 1, 97, 112, 0, 107, 1, 111, 108, 0, 107, 8, 97, 112, 2, 97, 0, 114, 101, 97, 116, 105, 8, 3, 49, 34,
+			36, 35, 47, 37, 0, 111, 118, 101, 114, 3, 49, 35, 84, 44, 0, 97, 8, 115, 2, 110, 3, 49, 36, 0, 116, 114, 108, 3, 49, 39,
+			50, 47, 14, 16, 39, 55, 0, 111, 103, 110, 105, 1, 101, 114, 2, 116, 3, 49, 39, 81, 50, 37, 0, 104, 3, 101, 0, 3, 117, 0,
+			7, 6, 100, 0, 2, 32, 3, 47, 0, 4, 3, 72, 0, 2, 32, 17, 70, 0, 2, 105, 28, 17, 0, 2, 195, 173, 28, 17, 0, 4,
+			197, 190, 3, 75, 0, 197, 190, 2, 32, 17, 70, 0, 197, 190, 2, 32, 3, 76, 0, 4, 2, 105, 3, 79, 0, 2, 195, 173, 0, 2,
+			196, 155, 0, 122, 2, 32, 3, 117, 0, 4, 122, 3, 118, 0, 122, 2, 32, 17, 70, 0, 7, 6, 101, 0, 3, 36, 0, 121, 1, 107,
+			3, 121, 0, 117, 3, 128, 0, 106, 2, 25, 3, 131, 0, 7, 6, 102, 0, 3, 83, 0, 196, 155, 3, 83, 57, 36, 0, 7, 6, 103,
+			0, 2, 32, 3, 49, 0, 4, 3, 81, 0, 2, 32, 17, 70, 0, 7, 6, 104, 0, 2, 32, 3, 101, 0, 4, 3, 107, 0, 2, 32,
+			17, 70, 0, 7, 6, 105, 0, 97, 3, 2, 37, 35, 0, 101, 3, 2, 37, 36, 0, 117, 3, 2, 37, 40, 0, 103, 104, 116, 1, 17,
+			67, 3, 35, 57, 47, 0, 3, 37, 0, 97, 2, 32, 3, 37, 35, 0, 101, 2, 32, 3, 37, 57, 36, 0, 105, 2, 32, 3, 37, 57,
+			37, 0, 111, 2, 32, 3, 37, 57, 39, 0, 117, 2, 32, 3, 37, 57, 40, 0, 8, 2, 111, 110, 3, 57, 0, 7, 6, 106, 0, 3,
+			57, 0, 7, 6, 107, 0, 4, 3, 49, 0, 107, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3, 45, 0, 4, 3, 55, 0, 108, 0, 97,
+			115, 101, 114, 8, 3, 55, 131, 88, 34, 0, 7, 6, 109, 0, 3, 65, 0, 105, 99, 8, 2, 114, 111, 3, 65, 35, 57, 49, 0, 97,
+			110, 97, 103, 101, 114, 8, 3, 65, 36, 50, 36, 75, 44, 0, 101, 115, 115, 97, 103, 101, 8, 3, 65, 36, 89, 37, 75, 0, 196, 155,
+			3, 65, 67, 36, 0, 7, 6, 110, 0, 2, 110, 3, 0, 4, 3, 50, 0, 2, 105, 28, 17, 0, 2, 195, 173, 28, 17, 0, 4, 2,
+			105, 3, 67, 0, 2, 195, 173, 0, 2, 196, 155, 0, 101, 119, 3, 67, 126, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111,
+			0, 3, 39, 0, 105, 99, 101, 1, 118, 3, 39, 57, 89, 0, 4, 111, 1, 116, 2, 108, 3, 126, 0, 117, 1, 114, 103, 2, 112, 0,
+			4, 117, 3, 129, 0, 119, 8, 100, 110, 105, 119, 0, 7, 6, 112, 0, 4, 3, 48, 0, 112, 2, 17, 65, 32, 0, 196, 155, 3, 48,
+			57, 36, 0, 7, 6, 113, 0, 4, 3, 49, 84, 0, 117, 0, 7, 6, 114, 0, 1, 25, 2, 25, 3, 44, 0, 4, 3, 51, 0, 114,
+			0, 105, 103, 104, 116, 3, 51, 35, 57, 47, 0, 7, 6, 115, 0, 4, 1, 101, 2, 105, 100, 3, 88, 0, 8, 101, 114, 112, 2, 105,
+			100, 0, 4, 3, 89, 0, 115, 2, 17, 65, 32, 0, 115, 2, 32, 0, 101, 108, 101, 99, 2, 116, 3, 89, 37, 55, 36, 49, 0, 112,
+			97, 99, 101, 3, 89, 48, 131, 89, 0, 99, 97, 112, 101, 3, 89, 49, 131, 48, 0, 104, 105, 102, 116, 3, 91, 37, 83, 47, 0, 7,
+			6, 116, 0, 4, 3, 47, 0, 2, 105, 28, 17, 0, 2, 195, 173, 28, 17, 0, 116, 2, 17, 65, 32, 0, 116, 2, 32, 0, 4, 2,
+			105, 3, 80, 0, 2, 195, 173, 0, 2, 196, 155, 0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 3, 84, 0, 196, 155, 3, 84,
+			57, 36, 0, 7, 6, 119, 0, 3, 84, 0, 97, 118, 101, 3, 84, 131, 83, 0, 7, 6, 120, 0, 3, 49, 89, 0, 111, 116, 105, 1,
+			101, 2, 99, 3, 81, 88, 39, 47, 37, 0, 7, 6, 121, 0, 3, 37, 0, 2, 195, 173, 3, 37, 57, 0, 7, 6, 122, 0, 4, 3,
+			88, 0, 2, 32, 17, 70, 0, 2, 32, 3, 89, 0, 7, 6, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32,
+			17, 67, 2, 32, 15, 0, 195, 171, 3, 36, 0, 195, 188, 3, 37, 0, 197, 149, 3, 44, 0, 196, 186, 3, 45, 0, 45, 8, 32, 2,
+			32, 15, 3, 65, 121, 50, 40, 89, 0, 36, 3, 72, 39, 55, 124, 51, 0, 195, 182, 3, 123, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts8 = FileInMemory_createWithData (7614, reinterpret_cast<const char *> (&espeakdata_dicts8_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/cs_dict", 
 			U"cs");
-		my addItem_move (espeakdata_dicts9.move());
+		Collection_addItem (me.peek(), espeakdata_dicts8.transfer());
 
-		static unsigned char espeakdata_dicts10_data[3462] = {
-			0, 4, 0, 0, 30, 9, 0, 0, 0, 0, 0, 6, 195, 32, 243, 128, 76, 0, 0, 7, 196, 72, 241, 68, 16, 72, 7, 65, 4, 2,
-			35, 0, 8, 0, 7, 66, 100, 224, 13, 50, 0, 9, 66, 5, 0, 10, 2, 35, 48, 0, 0, 0, 0, 0, 7, 196, 32, 243, 142, 4,
-			76, 0, 6, 195, 64, 240, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 28, 19, 128, 76, 0, 11, 4, 95, 100, 112, 116, 48,
-			132, 50, 47, 0, 0, 6, 65, 20, 108, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 36,
-			109, 0, 76, 0, 0, 0, 0, 0, 0, 6, 195, 73, 145, 23, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 33, 147,
-			142, 100, 76, 0, 0, 0, 0, 0, 6, 195, 17, 118, 64, 72, 0, 0, 15, 65, 60, 118, 107, 6, 115, 72, 0, 8, 81, 104, 121, 100,
-			32, 7, 65, 60, 10, 2, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65, 116, 10, 2, 119, 0, 0, 0, 9, 66,
-			5, 32, 10, 2, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 48, 72, 8, 0, 8, 195, 13, 147, 128, 72, 8, 9,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 85, 206, 76, 0, 6, 195, 33, 115, 128, 76, 0, 0, 12, 4, 95, 49,
-			77, 49, 65, 6, 114, 55, 10, 0, 0, 0, 6, 195, 100, 224, 64, 76, 0, 0, 5, 65, 100, 13, 0, 0, 7, 196, 28, 19, 12, 4,
-			72, 8, 197, 28, 17, 143, 16, 64, 76, 0, 0, 0, 6, 195, 92, 81, 9, 72, 0, 9, 66, 5, 64, 10, 2, 35, 47, 0, 0, 6,
-			195, 28, 20, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 24, 83, 12, 100, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 197, 73, 145, 25, 12, 128, 72, 0, 0, 0, 0, 7, 196, 100, 225, 4, 36, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 28, 21, 211, 60, 224, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 21, 32, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 195, 0, 72, 0, 0, 0, 0, 0, 0, 7, 67, 100, 225, 192,
-			13, 0, 6, 195, 56, 85, 64, 8, 0, 0, 0, 0, 0, 0, 0, 5, 194, 28, 16, 76, 9, 66, 4, 208, 10, 2, 35, 65, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 21, 80, 72, 0, 0, 0, 0, 0, 0, 6, 195, 73, 144, 200, 72, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 196, 33, 115, 142, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 24, 80, 76, 0, 6, 195, 24, 83,
-			0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 19, 128, 72, 6, 195, 16, 19, 128, 76, 7, 195, 16, 19,
-			128, 8, 9, 7, 195, 80, 19, 128, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 244, 128, 8, 0, 0, 0, 0, 6, 195,
-			17, 147, 65, 72, 0, 0, 0, 0, 0, 0, 6, 195, 8, 241, 0, 72, 0, 5, 194, 20, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 195, 1, 72, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 197, 84, 228, 136, 101, 112, 72, 0, 0, 0, 5, 194, 25, 144, 72, 0, 0, 0, 0, 7, 196, 100, 225, 4,
-			60, 76, 0, 6, 195, 33, 147, 128, 76, 0, 0, 0, 0, 7, 195, 56, 84, 192, 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 197, 29,
-			115, 133, 84, 64, 76, 0, 0, 0, 0, 0, 6, 195, 80, 21, 192, 76, 7, 196, 72, 128, 73, 56, 76, 0, 0, 0, 0, 0, 0, 0,
-			7, 196, 4, 50, 15, 76, 8, 0, 0, 0, 0, 0, 0, 7, 196, 28, 19, 12, 36, 72, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4,
-			195, 9, 72, 14, 3, 95, 51, 88, 47, 34, 6, 114, 86, 4, 117, 81, 0, 0, 11, 3, 95, 48, 67, 49, 6, 35, 50, 47, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 39, 109, 97, 76, 0, 0, 0, 0, 8, 66, 32, 144, 107, 114, 0, 76, 0, 0, 8,
-			197, 28, 19, 12, 92, 224, 72, 14, 3, 95, 50, 67, 72, 6, 122, 81, 4, 35, 50, 47, 0, 0, 0, 6, 131, 39, 110, 97, 76, 0,
-			0, 6, 195, 73, 118, 84, 72, 0, 0, 0, 0, 6, 195, 28, 19, 12, 72, 15, 3, 95, 51, 67, 47, 34, 6, 114, 101, 4, 35, 50,
-			47, 0, 0, 0, 8, 197, 4, 195, 23, 12, 128, 72, 0, 0, 0, 0, 0, 14, 3, 95, 55, 88, 89, 6, 121, 87, 86, 4, 117, 81,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 24, 241, 0, 72, 0, 0, 10, 3, 95, 49, 88, 72, 6,
-			117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 72, 6, 122, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0,
-			0, 8, 197, 28, 84, 207, 12, 128, 76, 0, 7, 196, 21, 32, 153, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 52, 88,
-			48, 6, 108, 72, 58, 35, 34, 86, 4, 117, 81, 0, 0, 0, 6, 195, 17, 35, 211, 76, 0, 0, 6, 195, 52, 17, 64, 72, 6, 195,
-			52, 17, 64, 72, 0, 0, 0, 5, 194, 56, 16, 72, 0, 14, 3, 95, 53, 88, 48, 6, 110, 65, 86, 4, 117, 81, 0, 0, 0, 0,
-			0, 6, 195, 52, 18, 64, 41, 6, 195, 52, 18, 64, 76, 0, 0, 0, 0, 14, 3, 95, 54, 88, 101, 58, 6, 117, 86, 4, 117, 81,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 56, 88, 58, 6, 110, 87, 86, 4, 117, 81,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 50, 6, 123, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 195, 1, 56, 72, 0, 0, 0, 0, 0, 8, 197, 72, 129, 73, 56, 16, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 28, 84, 207, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 61, 48, 72, 8,
-			0, 6, 195, 20, 147, 128, 72, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 6, 114, 55, 127, 50, 10, 0, 0, 14, 4, 95, 48, 77,
-			51, 71, 6, 114, 55, 127, 50, 10, 0, 0, 0, 12, 4, 95, 48, 77, 49, 65, 6, 114, 55, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 73, 118, 64, 72, 0, 0, 12, 69, 33, 81, 200, 21, 48,
-			107, 127, 12, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 72, 129, 73, 56, 144, 76, 0, 7, 196, 72, 133, 206, 28,
-			76, 0, 0, 0, 0, 0, 10, 199, 72, 134, 87, 24, 18, 78, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 56, 144, 50,
-			114, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 84, 192, 72, 0, 0, 0, 0,
-			0, 9, 198, 60, 129, 82, 93, 145, 4, 8, 0, 0, 16, 70, 13, 147, 82, 4, 81, 192, 49, 113, 65, 34, 6, 120, 81, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 52, 17, 78, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 195, 77, 145, 4, 72, 8, 0, 6, 195, 17, 37, 217, 76, 0, 0, 0, 0, 0, 0, 11, 3, 195, 180, 108, 10, 2, 118,
-			55, 0, 9, 0, 0, 0, 0, 0, 0, 6, 195, 29, 145, 1, 76, 0, 0, 0, 14, 69, 8, 19, 135, 61, 32, 71, 35, 68, 81, 111,
-			34, 0, 0, 0, 0, 0, 0, 0, 0, 8, 195, 77, 81, 0, 72, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 225, 0,
-			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 81, 80, 76, 0,
-			0, 6, 195, 16, 16, 200, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 56, 133, 192, 50, 107, 116,
-			0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 28, 21, 211, 60, 50, 0, 76, 0, 0, 0, 6, 194, 77, 144,
-			72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 134, 87, 72, 18, 64, 72, 6, 195, 32, 80, 128, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 196, 100, 210, 5, 56, 8, 9, 0, 0, 0, 0, 0, 0, 0, 11, 68, 40, 243, 133, 76, 75, 118, 50, 89,
-			0, 8, 66, 80, 144, 47, 114, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			8, 195, 21, 36, 192, 72, 8, 9, 9, 2, 95, 51, 47, 34, 6, 114, 0, 0, 8, 2, 95, 50, 72, 6, 122, 0, 0, 8, 2, 95,
-			49, 6, 110, 50, 0, 0, 9, 2, 95, 48, 50, 6, 112, 55, 0, 0, 6, 195, 17, 147, 129, 72, 9, 2, 95, 55, 89, 6, 121, 87,
-			0, 0, 10, 2, 95, 54, 101, 58, 6, 117, 99, 0, 0, 10, 2, 95, 53, 48, 6, 110, 65, 48, 0, 0, 12, 2, 95, 52, 48, 6,
-			108, 72, 58, 35, 34, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 123, 0, 0, 9, 2, 95, 56, 58, 6, 110, 87, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 17, 76, 76, 0, 0, 0, 0, 0, 6, 2, 95, 73, 114, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 66, 101, 32, 13, 34, 0, 0, 0, 0, 0, 0, 6, 195, 56, 17, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 9,
-			67, 12, 130, 64, 101, 114, 0, 76, 0, 0, 6, 2, 95, 97, 119, 0, 0, 0, 0, 0, 6, 2, 95, 101, 117, 0, 0, 0, 6, 195,
-			73, 147, 128, 72, 0, 0, 0, 0, 6, 2, 95, 111, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 28, 19, 12, 4, 224,
-			72, 8, 195, 93, 37, 8, 72, 8, 9, 0, 0, 0, 7, 196, 8, 192, 69, 56, 76, 0, 0, 6, 2, 95, 121, 113, 0, 0, 0, 9,
-			198, 28, 19, 12, 92, 50, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 195, 23, 56, 72, 0, 0, 0,
-			0, 0, 0, 0, 8, 197, 101, 48, 146, 100, 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 66, 101, 112, 2, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 195, 76, 133, 196, 72, 8, 9, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 85, 1, 36, 8, 0, 0,
-			0, 7, 196, 73, 145, 25, 56, 72, 0, 0, 0, 0, 0, 6, 195, 56, 85, 68, 76, 0, 0, 0, 6, 195, 100, 208, 64, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 67, 4, 115, 211, 10, 119, 81, 111, 89, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 33, 115, 142, 92, 76,
-			6, 66, 100, 208, 13, 0, 0, 0, 0, 0, 0, 0, 7, 196, 28, 19, 12, 84, 72, 0, 0, 0, 0, 0, 6, 18, 66, 99, 104, 0,
-			100, 100, 0, 102, 102, 0, 108, 108, 0, 116, 104, 0, 7, 6, 97, 0, 4, 2, 17, 67, 3, 35, 0, 2, 17, 67, 17, 67, 0, 4,
-			3, 119, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115, 0,
-			2, 116, 104, 0, 8, 2, 32, 0, 97, 0, 101, 3, 120, 0, 105, 3, 121, 0, 117, 3, 122, 0, 119, 2, 12, 3, 123, 0, 7, 6,
-			98, 0, 3, 71, 0, 8, 2, 32, 3, 71, 114, 0, 7, 6, 99, 0, 3, 49, 0, 119, 110, 8, 3, 49, 112, 65, 0, 4, 104, 1,
-			101, 3, 99, 0, 104, 1, 105, 0, 104, 1, 117, 0, 104, 3, 101, 0, 8, 2, 32, 3, 108, 49, 0, 104, 8, 2, 32, 3, 108, 101,
-			0, 7, 6, 100, 0, 3, 72, 0, 8, 2, 32, 3, 72, 114, 0, 100, 3, 86, 0, 100, 8, 2, 32, 3, 108, 86, 0, 7, 6, 101,
-			0, 4, 2, 17, 67, 3, 108, 0, 2, 17, 67, 17, 67, 0, 2, 119, 17, 65, 0, 4, 3, 117, 0, 2, 98, 0, 2, 99, 104, 0,
-			2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 101, 0,
-			4, 105, 3, 124, 0, 121, 0, 117, 3, 125, 0, 119, 2, 12, 3, 126, 0, 7, 6, 102, 0, 102, 3, 83, 0, 3, 84, 0, 102, 8,
-			2, 32, 3, 108, 83, 0, 8, 2, 32, 3, 108, 84, 0, 7, 6, 103, 0, 3, 81, 0, 119, 114, 3, 81, 58, 14, 34, 0, 119, 110,
-			3, 81, 58, 14, 50, 0, 119, 108, 3, 81, 58, 14, 55, 0, 8, 2, 32, 3, 108, 81, 0, 7, 6, 104, 0, 3, 107, 0, 8, 2,
-			32, 3, 107, 119, 0, 7, 6, 105, 0, 2, 17, 65, 3, 57, 0, 4, 2, 17, 67, 3, 109, 0, 2, 17, 67, 17, 67, 0, 4, 3,
-			114, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 108, 0, 2,
-			110, 0, 2, 114, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 105, 0, 119, 2, 12, 3, 127, 0, 7, 6, 106, 0, 3, 75,
-			0, 8, 2, 32, 3, 75, 113, 0, 7, 6, 107, 0, 3, 49, 0, 8, 2, 32, 3, 49, 113, 0, 7, 6, 108, 0, 3, 55, 0, 108,
-			3, 105, 0, 108, 97, 110, 8, 3, 105, 35, 50, 0, 8, 2, 32, 3, 108, 55, 0, 108, 8, 2, 32, 3, 108, 105, 0, 7, 6, 109,
-			0, 3, 65, 0, 8, 2, 32, 3, 108, 65, 0, 7, 6, 110, 0, 3, 50, 0, 103, 3, 68, 0, 8, 2, 32, 3, 108, 50, 0, 103,
-			8, 2, 32, 3, 108, 68, 0, 7, 6, 111, 0, 4, 2, 17, 67, 3, 111, 0, 2, 17, 67, 17, 67, 0, 4, 3, 118, 0, 2, 98,
-			0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 8,
-			2, 32, 0, 111, 0, 105, 3, 129, 0, 4, 101, 3, 130, 0, 117, 0, 7, 6, 112, 0, 3, 48, 0, 8, 2, 32, 3, 48, 114, 0,
-			104, 3, 83, 0, 104, 8, 2, 32, 3, 83, 114, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 58, 0, 8, 2, 32, 3, 49, 58,
-			119, 0, 7, 6, 114, 0, 3, 34, 0, 104, 3, 107, 34, 0, 104, 8, 2, 32, 3, 107, 34, 118, 0, 8, 2, 32, 3, 108, 34, 0,
-			7, 6, 115, 0, 3, 89, 0, 105, 2, 17, 65, 3, 91, 0, 8, 2, 32, 3, 108, 89, 0, 7, 6, 116, 0, 3, 47, 0, 8, 2,
-			32, 3, 47, 114, 0, 104, 3, 87, 0, 104, 8, 2, 32, 3, 108, 87, 0, 7, 6, 117, 0, 8, 2, 32, 3, 4, 109, 71, 6, 108,
-			72, 111, 55, 0, 4, 2, 17, 67, 3, 110, 0, 2, 17, 67, 17, 67, 0, 4, 3, 115, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100,
-			0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 108, 0, 2, 108, 108, 0, 2, 110, 0, 2, 114, 0, 2, 115,
-			0, 2, 116, 104, 0, 117, 0, 119, 2, 12, 3, 128, 0, 7, 6, 118, 0, 3, 84, 0, 8, 2, 32, 3, 84, 114, 0, 7, 6, 119,
-			0, 8, 2, 108, 3, 0, 4, 1, 103, 3, 58, 0, 2, 17, 65, 0, 4, 1, 10, 2, 25, 12, 3, 112, 0, 2, 17, 67, 0, 2,
-			17, 67, 17, 67, 0, 4, 3, 116, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0,
-			2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 119, 0, 121, 3, 132, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 2,
-			32, 3, 108, 49, 89, 0, 7, 6, 121, 0, 110, 8, 2, 32, 110, 3, 13, 0, 110, 8, 2, 32, 3, 13, 50, 0, 8, 2, 119, 3,
-			57, 0, 4, 2, 17, 67, 3, 110, 0, 2, 17, 67, 17, 67, 0, 4, 2, 21, 12, 3, 113, 0, 8, 2, 32, 0, 4, 3, 115, 0,
-			2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 119, 2, 12, 3, 128, 0, 7, 6, 122,
-			0, 3, 88, 0, 8, 2, 32, 3, 88, 116, 0, 7, 6, 0, 39, 114, 2, 32, 14, 128, 128, 130, 3, 34, 0, 195, 160, 3, 35, 0,
-			46, 3, 48, 132, 50, 47, 0, 39, 110, 2, 32, 14, 128, 128, 130, 3, 50, 0, 39, 99, 104, 2, 32, 14, 128, 128, 131, 3, 101, 0,
-			195, 168, 3, 108, 0, 195, 172, 3, 109, 0, 4, 195, 185, 3, 110, 0, 225, 187, 179, 0, 195, 178, 3, 111, 0, 225, 186, 129, 3, 112,
-			0, 4, 195, 174, 3, 114, 0, 195, 175, 0, 4, 195, 187, 3, 115, 0, 197, 183, 0, 197, 181, 3, 116, 0, 195, 170, 3, 117, 0, 195,
-			180, 3, 118, 0, 195, 162, 3, 119, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts10 = FileInMemory_createWithData (3461, reinterpret_cast<const char *> (&espeakdata_dicts10_data), 
-			U"espeak-1.48.04-source/espeak-data/cy_dict", 
+		static unsigned char espeakdata_dicts9_data[3463] = {
+			0, 4, 0, 0, 31, 9, 0, 0, 0, 0, 0, 6, 195, 32, 243, 128, 76, 0, 0, 7, 65, 4, 2, 35, 0, 8, 0, 7, 66, 100,
+			224, 13, 50, 0, 9, 66, 5, 0, 10, 2, 35, 48, 0, 0, 0, 0, 0, 0, 6, 195, 64, 240, 128, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 28, 19, 128, 76, 0, 0, 6, 65, 20, 108, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 65, 36, 109, 0, 76, 0, 0, 0, 0, 8, 197, 28, 19, 12, 92, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 196, 28, 84, 207, 56, 76, 0, 0, 0, 6, 195, 17, 118, 64, 72, 0, 0, 15, 65, 60, 118, 107, 6, 115,
+			72, 0, 8, 81, 104, 121, 100, 32, 7, 65, 60, 10, 2, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 13, 147, 82, 4,
+			81, 192, 49, 113, 65, 34, 6, 120, 81, 0, 0, 0, 0, 0, 9, 66, 5, 32, 10, 2, 35, 34, 0, 0, 0, 0, 14, 69, 8, 19,
+			135, 61, 32, 71, 35, 68, 81, 111, 34, 0, 0, 0, 0, 0, 0, 6, 194, 4, 48, 72, 8, 0, 8, 195, 13, 147, 128, 72, 8, 11,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 33, 115, 128, 76, 0, 0, 12, 4, 95, 49, 77, 49, 65, 6, 114, 55,
+			10, 0, 0, 0, 6, 195, 100, 224, 64, 76, 8, 195, 93, 37, 8, 72, 8, 11, 0, 0, 5, 65, 100, 13, 0, 0, 0, 0, 0, 0,
+			9, 66, 5, 64, 10, 2, 35, 47, 0, 0, 6, 195, 28, 20, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 32, 243, 142, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 85, 206, 76, 0, 0, 0, 0, 8, 197, 28, 17, 143,
+			16, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 196, 72, 133, 206, 28, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 21, 32, 72, 8, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 100, 210, 5, 56, 8, 11, 11, 4, 95, 4, 16, 20, 48, 132, 50, 47, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 28, 19, 12, 4, 224, 72, 6, 195, 4, 195, 0, 72, 0, 0, 0, 0, 0,
+			0, 7, 67, 100, 225, 192, 13, 0, 6, 195, 56, 85, 64, 8, 0, 0, 0, 0, 6, 195, 56, 85, 68, 76, 0, 0, 0, 5, 194, 28,
+			16, 76, 9, 66, 4, 208, 10, 2, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 21, 80, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 196, 28, 19, 12, 4, 72, 7, 196, 24, 83, 12, 100, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 5, 194, 24, 80, 76, 0, 6, 195, 24, 83, 0, 72, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 147, 65, 72, 0, 0,
+			0, 0, 0, 6, 195, 16, 19, 128, 72, 6, 195, 16, 19, 128, 76, 7, 195, 16, 19, 128, 8, 11, 7, 195, 80, 19, 128, 8, 11, 0,
+			0, 0, 0, 0, 7, 196, 28, 19, 12, 36, 72, 7, 196, 4, 50, 15, 76, 8, 0, 0, 0, 6, 195, 52, 244, 128, 8, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 241, 0, 72, 0, 5, 194, 20, 144, 72, 0, 0, 7, 196, 4, 195, 1, 56, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 16, 200,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 68, 40, 243, 133, 76, 75, 118, 50, 89, 0, 0, 0, 6, 195, 17, 147, 129, 72, 5,
+			194, 25, 144, 72, 0, 0, 0, 0, 0, 6, 195, 33, 147, 128, 76, 0, 0, 0, 0, 7, 195, 56, 84, 192, 8, 11, 0, 7, 196, 4,
+			195, 23, 56, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 85, 1, 36, 8, 0, 0, 0, 6, 195, 80, 21, 192, 76, 0, 12,
+			67, 4, 115, 211, 10, 119, 81, 111, 89, 0, 76, 0, 0, 0, 0, 7, 196, 28, 19, 12, 84, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 92, 81, 9, 72, 0, 14, 3, 95, 51, 88, 47, 34, 6, 114, 86, 4, 117, 81, 0, 0, 11, 3,
+			95, 48, 67, 49, 6, 35, 50, 47, 0, 0, 0, 0, 0, 7, 196, 100, 225, 4, 36, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 66, 32, 144, 107, 114, 0, 76, 0, 0, 14, 3, 95, 50, 67, 72, 6, 122, 81, 4, 35, 50, 47, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 15, 3, 95, 51, 67, 47, 34, 6, 114, 101, 4, 35, 50, 47, 0, 0, 0, 0, 0, 7, 196, 100, 225, 4, 60, 76, 0, 0,
+			0, 14, 3, 95, 55, 88, 89, 6, 121, 87, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 24, 241, 0, 72, 0, 0, 10, 3, 95, 49, 88, 72, 6, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88,
+			72, 6, 122, 86, 4, 117, 81, 0, 0, 0, 12, 69, 33, 81, 200, 21, 48, 107, 127, 12, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 195, 52, 17, 78, 72, 0, 0, 0, 0, 0, 0, 17, 3, 95, 52, 88, 48, 6, 108, 72, 58, 35, 34, 86, 4, 117, 81, 0, 0,
+			0, 0, 0, 6, 195, 52, 17, 64, 72, 6, 195, 52, 17, 64, 72, 0, 0, 0, 5, 194, 56, 16, 72, 0, 14, 3, 95, 53, 88, 48,
+			6, 110, 65, 86, 4, 117, 81, 0, 0, 0, 0, 9, 198, 72, 134, 87, 72, 18, 64, 72, 0, 6, 195, 52, 18, 64, 41, 6, 195, 52,
+			18, 64, 76, 0, 0, 0, 0, 14, 3, 95, 54, 88, 101, 58, 6, 117, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 56, 88, 58, 6, 110, 87, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
+			3, 95, 57, 88, 50, 6, 123, 86, 4, 117, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 61, 48, 72, 8, 0, 6,
+			195, 20, 147, 128, 72, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 6, 114, 55, 127, 50, 10, 0, 0, 14, 4, 95, 48, 77, 51, 71,
+			6, 114, 55, 127, 50, 10, 0, 0, 0, 12, 4, 95, 48, 77, 49, 65, 6, 114, 55, 10, 0, 0, 0, 6, 195, 73, 118, 84, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 39, 13, 1, 76, 0, 0, 6, 195, 17, 35, 211, 76, 0, 0, 0, 0, 0, 0, 6, 131,
+			39, 14, 1, 76, 0, 0, 0, 6, 195, 73, 118, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 195, 17, 37, 217, 76, 0, 0, 0, 11, 3, 195, 180, 12, 10, 2, 118, 55, 0, 11, 0, 0, 0, 0, 0, 0, 0, 8, 66, 56,
+			144, 50, 114, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 84, 192, 72, 0, 7,
+			196, 8, 192, 69, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 72, 241,
+			68, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 196, 33, 115, 142, 4, 76, 0, 0, 0, 0, 0, 8, 197, 84, 228, 136, 101, 112, 72, 0, 0, 0, 0, 0,
+			0, 0, 7, 196, 72, 128, 73, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 195, 77, 81, 0, 72, 8, 11, 0, 8, 2, 195, 162, 10, 2, 119, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 225,
+			0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 60, 129, 82, 93, 145, 4, 8, 0, 0, 0, 0,
+			0, 0, 0, 0, 5, 194, 81, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 56, 133,
+			192, 50, 107, 116, 0, 76, 0, 0, 0, 0, 0, 7, 196, 33, 115, 142, 92, 76, 0, 0, 0, 0, 0, 0, 0, 9, 198, 28, 21, 211,
+			60, 50, 0, 76, 0, 7, 196, 33, 147, 142, 100, 76, 0, 0, 6, 195, 73, 145, 23, 72, 6, 194, 77, 144, 72, 8, 0, 6, 2, 95,
+			1, 119, 0, 0, 0, 0, 0, 6, 2, 95, 5, 117, 0, 0, 0, 0, 0, 0, 6, 195, 32, 80, 128, 72, 6, 2, 95, 15, 118, 0,
+			0, 0, 8, 197, 73, 145, 25, 12, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 25, 113, 0, 0, 8,
+			66, 80, 144, 47, 114, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 195, 1, 72, 0, 0, 0, 0, 0,
+			0, 0, 8, 197, 29, 115, 133, 84, 64, 76, 8, 197, 4, 195, 23, 12, 128, 72, 0, 6, 195, 4, 195, 9, 72, 0, 8, 195, 21, 36,
+			192, 72, 8, 11, 9, 2, 95, 51, 47, 34, 6, 114, 0, 0, 7, 196, 21, 32, 153, 56, 76, 8, 2, 95, 50, 72, 6, 122, 0, 0,
+			8, 2, 95, 49, 6, 110, 50, 0, 0, 9, 2, 95, 48, 50, 6, 112, 55, 0, 0, 9, 2, 95, 55, 89, 6, 121, 87, 0, 0, 10,
+			2, 95, 54, 101, 58, 6, 117, 99, 0, 0, 10, 2, 95, 53, 48, 6, 110, 65, 48, 0, 0, 12, 2, 95, 52, 48, 6, 108, 72, 58,
+			35, 34, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 123, 0, 0, 9, 2, 95, 56, 58, 6, 110, 87, 0, 0, 0, 0, 0, 0, 0,
+			0, 8, 197, 72, 129, 73, 56, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 73, 114, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 66, 101, 32, 13, 34, 0, 0, 0, 0, 0, 0, 6, 195, 56, 17, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67,
+			12, 130, 64, 101, 114, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 73, 147, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 196, 73, 145, 25, 56, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 28, 19, 12, 92, 50, 0, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 28, 21, 211, 60, 224, 76, 0, 0, 0,
+			0, 0, 0, 6, 195, 73, 144, 200, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 101, 112, 2, 128, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 28, 19, 12, 72, 0, 0, 0, 0, 0, 0, 8, 197, 28, 84, 207, 12, 128, 76, 0, 0, 10, 199,
+			72, 134, 87, 24, 18, 78, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 72, 129, 73, 56, 144, 76,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 100, 208, 64, 76, 0, 0, 0, 6, 195, 29, 145, 1, 76, 0,
+			7, 195, 77, 145, 4, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 17, 76, 76, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 101, 48, 146, 100, 64, 66, 0, 0, 8, 195, 76, 133, 196, 72, 8,
+			11, 0, 0, 0, 0, 0, 0, 0, 6, 66, 100, 208, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 99, 104,
+			0, 100, 100, 0, 102, 102, 0, 108, 108, 0, 116, 104, 0, 7, 6, 97, 0, 4, 2, 17, 67, 3, 35, 0, 2, 17, 67, 17, 67, 0,
+			4, 3, 119, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115,
+			0, 2, 116, 104, 0, 8, 2, 32, 0, 97, 0, 101, 3, 120, 0, 105, 3, 121, 0, 117, 3, 122, 0, 119, 2, 12, 3, 123, 0, 7,
+			6, 98, 0, 3, 71, 0, 8, 2, 32, 3, 71, 114, 0, 7, 6, 99, 0, 3, 49, 0, 119, 110, 8, 3, 49, 112, 65, 0, 4, 104,
+			1, 101, 3, 99, 0, 104, 1, 105, 0, 104, 1, 117, 0, 104, 3, 101, 0, 8, 2, 32, 3, 108, 49, 0, 104, 8, 2, 32, 3, 108,
+			101, 0, 7, 6, 100, 0, 3, 72, 0, 8, 2, 32, 3, 72, 114, 0, 100, 3, 86, 0, 100, 8, 2, 32, 3, 108, 86, 0, 7, 6,
+			101, 0, 4, 2, 17, 67, 3, 108, 0, 2, 17, 67, 17, 67, 0, 2, 119, 17, 65, 0, 4, 3, 117, 0, 2, 98, 0, 2, 99, 104,
+			0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 101,
+			0, 4, 105, 3, 124, 0, 121, 0, 117, 3, 125, 0, 119, 2, 12, 3, 126, 0, 7, 6, 102, 0, 102, 3, 83, 0, 3, 84, 0, 102,
+			8, 2, 32, 3, 108, 83, 0, 8, 2, 32, 3, 108, 84, 0, 7, 6, 103, 0, 3, 81, 0, 119, 114, 3, 81, 58, 14, 34, 0, 119,
+			110, 3, 81, 58, 14, 50, 0, 119, 108, 3, 81, 58, 14, 55, 0, 8, 2, 32, 3, 108, 81, 0, 7, 6, 104, 0, 3, 107, 0, 8,
+			2, 32, 3, 107, 119, 0, 7, 6, 105, 0, 2, 17, 65, 3, 57, 0, 4, 2, 17, 67, 3, 109, 0, 2, 17, 67, 17, 67, 0, 4,
+			3, 114, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 108, 0,
+			2, 110, 0, 2, 114, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 105, 0, 119, 2, 12, 3, 127, 0, 7, 6, 106, 0, 3,
+			75, 0, 8, 2, 32, 3, 75, 113, 0, 7, 6, 107, 0, 3, 49, 0, 8, 2, 32, 3, 49, 113, 0, 7, 6, 108, 0, 3, 55, 0,
+			108, 3, 105, 0, 108, 97, 110, 8, 3, 105, 35, 50, 0, 8, 2, 32, 3, 108, 55, 0, 108, 8, 2, 32, 3, 108, 105, 0, 7, 6,
+			109, 0, 3, 65, 0, 8, 2, 32, 3, 108, 65, 0, 7, 6, 110, 0, 3, 50, 0, 103, 3, 68, 0, 8, 2, 32, 3, 108, 50, 0,
+			103, 8, 2, 32, 3, 108, 68, 0, 7, 6, 111, 0, 4, 2, 17, 67, 3, 111, 0, 2, 17, 67, 17, 67, 0, 4, 3, 118, 0, 2,
+			98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0,
+			8, 2, 32, 0, 111, 0, 105, 3, 129, 0, 4, 101, 3, 130, 0, 117, 0, 7, 6, 112, 0, 3, 48, 0, 8, 2, 32, 3, 48, 114,
+			0, 104, 3, 83, 0, 104, 8, 2, 32, 3, 83, 114, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 58, 0, 8, 2, 32, 3, 49,
+			58, 119, 0, 7, 6, 114, 0, 3, 34, 0, 104, 3, 107, 34, 0, 104, 8, 2, 32, 3, 107, 34, 118, 0, 8, 2, 32, 3, 108, 34,
+			0, 7, 6, 115, 0, 3, 89, 0, 105, 2, 17, 65, 3, 91, 0, 8, 2, 32, 3, 108, 89, 0, 7, 6, 116, 0, 3, 47, 0, 8,
+			2, 32, 3, 47, 114, 0, 104, 3, 87, 0, 104, 8, 2, 32, 3, 108, 87, 0, 7, 6, 117, 0, 8, 2, 32, 3, 4, 109, 71, 6,
+			108, 72, 111, 55, 0, 4, 2, 17, 67, 3, 110, 0, 2, 17, 67, 17, 67, 0, 4, 3, 115, 0, 2, 98, 0, 2, 99, 104, 0, 2,
+			100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102, 0, 2, 103, 0, 2, 108, 0, 2, 108, 108, 0, 2, 110, 0, 2, 114, 0, 2,
+			115, 0, 2, 116, 104, 0, 117, 0, 119, 2, 12, 3, 128, 0, 7, 6, 118, 0, 3, 84, 0, 8, 2, 32, 3, 84, 114, 0, 7, 6,
+			119, 0, 8, 2, 108, 3, 0, 4, 1, 103, 3, 58, 0, 2, 17, 65, 0, 4, 1, 10, 2, 25, 12, 3, 112, 0, 2, 17, 67, 0,
+			2, 17, 67, 17, 67, 0, 4, 3, 116, 0, 2, 98, 0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 102, 0, 2, 102, 102,
+			0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 8, 2, 32, 0, 119, 0, 121, 3, 132, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8,
+			2, 32, 3, 108, 49, 89, 0, 7, 6, 121, 0, 110, 8, 2, 32, 110, 3, 13, 0, 110, 8, 2, 32, 3, 13, 50, 0, 8, 2, 119,
+			3, 57, 0, 4, 2, 17, 67, 3, 110, 0, 2, 17, 67, 17, 67, 0, 4, 2, 21, 12, 3, 113, 0, 8, 2, 32, 0, 4, 3, 115,
+			0, 2, 99, 104, 0, 2, 100, 0, 2, 100, 100, 0, 2, 103, 0, 2, 115, 0, 2, 116, 104, 0, 119, 2, 12, 3, 128, 0, 7, 6,
+			122, 0, 3, 88, 0, 8, 2, 32, 3, 88, 116, 0, 7, 6, 0, 39, 114, 2, 32, 14, 128, 128, 130, 3, 34, 0, 195, 160, 3, 35,
+			0, 46, 3, 48, 132, 50, 47, 0, 39, 110, 2, 32, 14, 128, 128, 130, 3, 50, 0, 39, 99, 104, 2, 32, 14, 128, 128, 131, 3, 101,
+			0, 195, 168, 3, 108, 0, 195, 172, 3, 109, 0, 4, 195, 185, 3, 110, 0, 225, 187, 179, 0, 195, 178, 3, 111, 0, 225, 186, 129, 3,
+			112, 0, 4, 195, 174, 3, 114, 0, 195, 175, 0, 4, 195, 187, 3, 115, 0, 197, 183, 0, 197, 181, 3, 116, 0, 195, 170, 3, 117, 0,
+			195, 180, 3, 118, 0, 195, 162, 3, 119, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts9 = FileInMemory_createWithData (3462, reinterpret_cast<const char *> (&espeakdata_dicts9_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/cy_dict", 
 			U"cy");
-		my addItem_move (espeakdata_dicts10.move());
+		Collection_addItem (me.peek(), espeakdata_dicts9.transfer());
 
-		static unsigned char espeakdata_dicts11_data[208490] = {
-			0, 4, 0, 0, 253, 209, 1, 0, 11, 200, 65, 35, 199, 72, 19, 77, 165, 32, 15, 8, 197, 52, 244, 134, 20, 208, 15, 0, 13, 202,
-			61, 35, 129, 52, 83, 148, 21, 34, 78, 28, 15, 13, 202, 52, 19, 137, 24, 84, 212, 21, 34, 78, 28, 15, 13, 202, 44, 243, 150, 60,
-			197, 84, 21, 34, 78, 28, 15, 13, 202, 44, 243, 134, 72, 243, 148, 21, 34, 78, 28, 15, 13, 202, 36, 229, 5, 73, 3, 204, 21, 34,
-			78, 28, 15, 13, 202, 36, 225, 11, 88, 20, 148, 21, 34, 78, 28, 15, 13, 202, 16, 242, 213, 52, 83, 148, 21, 34, 78, 28, 15, 13,
-			202, 5, 33, 213, 52, 83, 148, 21, 34, 78, 28, 15, 0, 8, 197, 80, 18, 212, 36, 176, 15, 7, 196, 88, 20, 129, 56, 16, 0, 17,
-			67, 52, 83, 128, 65, 36, 50, 15, 89, 108, 0, 81, 115, 195, 165, 32, 10, 199, 4, 229, 9, 8, 147, 211, 20, 15, 9, 198, 60, 224,
-			78, 37, 53, 0, 15, 9, 198, 9, 81, 134, 37, 53, 0, 15, 15, 204, 81, 32, 78, 77, 50, 210, 36, 33, 82, 36, 225, 192, 15, 15,
-			204, 77, 80, 147, 80, 19, 148, 37, 97, 82, 36, 225, 192, 15, 15, 204, 72, 148, 201, 44, 245, 149, 72, 65, 82, 36, 225, 192, 15, 15,
-			204, 64, 84, 147, 64, 82, 212, 37, 97, 82, 36, 225, 192, 15, 15, 204, 64, 84, 134, 20, 181, 9, 60, 225, 82, 36, 225, 192, 15, 15,
-			204, 44, 243, 134, 20, 181, 9, 60, 225, 82, 36, 225, 192, 15, 15, 204, 36, 225, 18, 20, 114, 83, 81, 33, 82, 36, 225, 192, 15, 10,
-			199, 16, 82, 193, 56, 84, 211, 20, 15, 10, 199, 52, 243, 143, 45, 32, 84, 36, 15, 14, 70, 77, 81, 134, 60, 194, 192, 89, 109, 83,
-			109, 49, 0, 6, 195, 52, 83, 128, 8, 0, 12, 201, 4, 32, 146, 21, 98, 65, 81, 84, 128, 15, 11, 200, 64, 21, 18, 60, 225, 83,
-			76, 80, 15, 0, 9, 198, 104, 243, 204, 60, 114, 64, 15, 12, 201, 16, 83, 9, 44, 21, 5, 77, 49, 64, 15, 10, 199, 36, 224, 68,
-			124, 181, 129, 80, 15, 0, 9, 198, 5, 0, 84, 37, 50, 192, 15, 7, 196, 5, 0, 84, 36, 15, 9, 198, 44, 243, 150, 20, 229, 0,
-			15, 9, 198, 44, 243, 148, 4, 229, 0, 15, 9, 198, 5, 0, 78, 4, 113, 64, 15, 9, 68, 5, 4, 12, 20, 21, 0, 47, 12, 68,
-			32, 21, 132, 20, 107, 117, 86, 13, 0, 76, 13, 4, 95, 116, 117, 114, 47, 6, 112, 12, 50, 72, 0, 5, 193, 108, 43, 49, 0, 11,
-			200, 80, 83, 80, 21, 32, 84, 85, 32, 15, 11, 200, 48, 149, 20, 21, 32, 84, 85, 32, 15, 11, 200, 16, 83, 79, 45, 32, 84, 85,
-			32, 15, 8, 197, 60, 194, 69, 72, 80, 15, 8, 197, 56, 245, 5, 72, 80, 15, 8, 197, 56, 81, 197, 72, 80, 15, 10, 199, 77, 98,
-			78, 16, 193, 82, 36, 15, 10, 199, 77, 84, 141, 84, 193, 82, 36, 15, 10, 199, 76, 180, 137, 8, 193, 82, 36, 15, 10, 199, 65, 34,
-			86, 5, 65, 82, 36, 15, 10, 199, 28, 19, 1, 57, 65, 82, 36, 15, 10, 199, 25, 34, 77, 85, 33, 82, 36, 15, 10, 199, 24, 19,
-			19, 44, 225, 82, 36, 15, 10, 199, 21, 2, 71, 60, 225, 82, 36, 15, 10, 199, 12, 130, 75, 4, 225, 82, 36, 15, 10, 199, 8, 146,
-			143, 85, 65, 82, 36, 15, 10, 199, 5, 37, 9, 48, 193, 82, 36, 15, 9, 198, 52, 244, 203, 61, 98, 84, 15, 9, 198, 4, 229, 18,
-			4, 50, 84, 15, 8, 197, 36, 66, 79, 80, 144, 15, 13, 69, 76, 244, 8, 36, 80, 89, 125, 40, 83, 111, 0, 0, 11, 200, 77, 65,
-			82, 20, 244, 203, 61, 0, 15, 9, 198, 44, 148, 149, 72, 114, 64, 15, 11, 200, 76, 180, 159, 16, 65, 82, 21, 32, 15, 18, 70, 61,
-			34, 71, 4, 210, 64, 39, 34, 36, 81, 6, 35, 65, 37, 0, 15, 9, 198, 21, 84, 153, 80, 210, 64, 15, 9, 198, 4, 224, 84, 60,
-			210, 64, 15, 0, 6, 195, 72, 81, 201, 15, 8, 197, 52, 20, 212, 36, 176, 15, 8, 197, 28, 84, 212, 36, 176, 15, 8, 197, 8, 84,
-			212, 36, 176, 15, 6, 65, 8, 71, 36, 0, 0, 9, 198, 29, 39, 195, 37, 53, 0, 15, 10, 199, 29, 147, 78, 5, 50, 85, 52, 15,
-			9, 198, 36, 229, 133, 57, 64, 82, 15, 9, 198, 4, 229, 9, 45, 96, 82, 15, 10, 199, 45, 103, 210, 84, 192, 78, 80, 15, 0, 12,
-			201, 44, 243, 77, 37, 52, 193, 72, 144, 84, 15, 12, 201, 8, 20, 137, 84, 212, 213, 48, 96, 84, 15, 7, 196, 81, 82, 193, 56, 16,
-			7, 196, 72, 243, 65, 56, 16, 7, 196, 4, 97, 129, 8, 15, 0, 10, 199, 65, 39, 211, 21, 37, 133, 72, 15, 12, 201, 20, 229, 18,
-			21, 4, 133, 56, 19, 148, 15, 0, 33, 69, 65, 80, 140, 36, 48, 48, 109, 71, 55, 114, 49, 15, 89, 132, 12, 84, 111, 89, 14, 50,
-			0, 81, 115, 101, 114, 118, 105, 99, 101, 110, 32, 30, 69, 65, 80, 140, 36, 48, 48, 109, 71, 55, 114, 49, 15, 89, 132, 12, 84, 111,
-			89, 0, 81, 115, 101, 114, 118, 105, 99, 101, 32, 31, 69, 65, 80, 140, 36, 48, 48, 108, 71, 55, 36, 49, 15, 72, 39, 65, 6, 117,
-			57, 50, 0, 15, 81, 100, 111, 109, 97, 105, 110, 32, 6, 65, 12, 89, 36, 0, 0, 11, 200, 81, 35, 205, 64, 85, 9, 77, 64, 15,
-			11, 200, 77, 84, 146, 20, 19, 9, 77, 64, 15, 11, 200, 48, 144, 133, 72, 19, 9, 77, 64, 15, 11, 200, 40, 245, 82, 56, 19, 9,
-			77, 64, 15, 11, 200, 8, 83, 12, 21, 68, 137, 77, 64, 15, 12, 201, 8, 144, 140, 36, 241, 210, 4, 97, 82, 15, 10, 199, 81, 34,
-			83, 80, 84, 211, 20, 15, 10, 199, 36, 229, 5, 72, 84, 211, 20, 15, 10, 199, 45, 241, 133, 72, 84, 133, 80, 15, 16, 75, 84, 225,
-			5, 73, 53, 1, 80, 83, 69, 57, 64, 21, 0, 47, 0, 8, 197, 76, 20, 139, 60, 208, 15, 13, 202, 76, 179, 204, 20, 209, 83, 80,
-			84, 133, 72, 15, 9, 198, 81, 149, 129, 29, 66, 71, 15, 9, 198, 61, 4, 137, 29, 66, 71, 15, 9, 198, 56, 20, 129, 29, 66, 71,
-			15, 9, 198, 48, 149, 129, 29, 66, 71, 15, 9, 198, 81, 149, 129, 29, 66, 71, 15, 9, 198, 56, 20, 129, 29, 66, 71, 15, 9, 198,
-			48, 149, 129, 29, 66, 71, 15, 0, 9, 198, 44, 20, 142, 20, 243, 0, 15, 0, 9, 198, 32, 84, 143, 37, 51, 69, 15, 9, 198, 24,
-			20, 195, 37, 51, 69, 15, 9, 198, 13, 146, 204, 37, 51, 69, 15, 9, 198, 8, 20, 20, 37, 51, 69, 15, 13, 202, 72, 81, 204, 20,
-			209, 78, 80, 84, 133, 80, 15, 13, 202, 4, 194, 207, 32, 243, 9, 76, 84, 133, 80, 15, 12, 201, 12, 192, 73, 73, 99, 217, 4, 224,
-			197, 15, 9, 68, 9, 35, 206, 96, 21, 0, 47, 6, 65, 16, 72, 36, 0, 0, 15, 204, 46, 147, 147, 16, 148, 203, 72, 147, 73, 56,
-			84, 128, 15, 7, 196, 60, 224, 78, 36, 15, 9, 198, 97, 147, 15, 29, 32, 70, 15, 9, 198, 64, 20, 129, 29, 32, 70, 15, 9, 198,
-			48, 149, 15, 29, 32, 70, 15, 9, 198, 44, 83, 73, 29, 32, 70, 15, 9, 198, 24, 243, 143, 29, 32, 70, 15, 9, 198, 16, 83, 79,
-			29, 32, 70, 15, 17, 70, 64, 83, 132, 4, 229, 0, 48, 121, 68, 72, 6, 121, 68, 0, 15, 0, 8, 197, 72, 21, 137, 56, 80, 15,
-			15, 69, 8, 83, 9, 104, 80, 71, 36, 55, 37, 12, 89, 0, 66, 12, 201, 5, 34, 223, 60, 195, 199, 37, 50, 192, 15, 8, 197, 20,
-			212, 1, 80, 144, 15, 8, 197, 4, 194, 217, 52, 144, 15, 12, 69, 12, 243, 142, 36, 80, 49, 109, 50, 37, 0, 11, 67, 76, 147, 128,
-			89, 6, 37, 50, 0, 76, 0, 12, 201, 45, 103, 210, 84, 192, 78, 80, 148, 203, 15, 12, 201, 44, 19, 95, 48, 83, 206, 80, 148, 203,
-			15, 9, 198, 29, 80, 82, 4, 226, 64, 15, 14, 4, 95, 100, 112, 116, 10, 49, 4, 108, 65, 117, 12, 0, 0, 9, 198, 61, 67, 211,
-			44, 244, 0, 15, 10, 199, 48, 144, 137, 16, 147, 169, 76, 15, 10, 199, 28, 192, 77, 61, 84, 169, 76, 15, 10, 199, 4, 192, 149, 52,
-			147, 169, 76, 15, 8, 197, 8, 84, 204, 60, 112, 15, 12, 201, 45, 33, 65, 80, 149, 137, 80, 85, 0, 15, 11, 200, 64, 20, 129, 16,
-			148, 201, 76, 176, 15, 11, 200, 60, 36, 212, 21, 68, 137, 76, 176, 15, 11, 200, 52, 85, 1, 24, 244, 137, 76, 176, 15, 11, 200, 52,
-			19, 131, 33, 84, 137, 76, 176, 15, 11, 200, 48, 144, 129, 56, 84, 201, 76, 176, 15, 11, 200, 36, 225, 15, 56, 84, 201, 76, 176, 15,
-			11, 200, 36, 195, 21, 76, 244, 137, 76, 176, 15, 11, 200, 28, 16, 143, 56, 84, 201, 76, 176, 15, 11, 200, 21, 128, 197, 57, 68, 137,
-			76, 176, 15, 14, 203, 20, 208, 78, 12, 148, 1, 80, 244, 137, 76, 176, 15, 11, 200, 13, 147, 9, 56, 68, 137, 76, 176, 15, 11, 200,
-			4, 195, 21, 76, 244, 137, 76, 176, 15, 0, 11, 200, 65, 35, 205, 37, 50, 213, 165, 48, 15, 11, 200, 36, 229, 18, 5, 97, 78, 165,
-			48, 15, 12, 201, 81, 32, 78, 77, 3, 210, 82, 148, 128, 15, 12, 201, 72, 82, 207, 52, 208, 78, 18, 148, 128, 15, 9, 198, 21, 0,
-			85, 48, 85, 0, 15, 9, 198, 76, 19, 137, 80, 85, 0, 15, 9, 198, 44, 21, 137, 80, 85, 0, 15, 9, 198, 20, 229, 9, 80, 85,
-			0, 15, 12, 201, 72, 17, 9, 60, 195, 199, 37, 50, 192, 15, 12, 201, 52, 146, 210, 60, 225, 83, 37, 50, 192, 15, 12, 201, 45, 35,
-			206, 60, 195, 199, 37, 50, 192, 15, 12, 201, 44, 20, 143, 48, 147, 135, 37, 50, 192, 15, 12, 201, 32, 148, 16, 60, 195, 199, 37, 50,
-			192, 15, 12, 201, 25, 33, 78, 60, 195, 199, 37, 50, 192, 15, 12, 201, 24, 147, 13, 60, 195, 199, 37, 50, 192, 15, 9, 198, 56, 144,
-			133, 56, 149, 0, 15, 10, 199, 4, 224, 75, 60, 197, 84, 36, 15, 9, 198, 64, 243, 9, 80, 146, 192, 15, 9, 198, 52, 82, 193, 56,
-			146, 192, 15, 9, 198, 44, 84, 129, 52, 146, 192, 15, 9, 198, 72, 81, 133, 72, 21, 0, 15, 9, 198, 89, 83, 14, 21, 32, 66, 15,
-			9, 198, 81, 32, 70, 36, 176, 66, 15, 9, 198, 72, 83, 65, 72, 176, 66, 15, 9, 198, 44, 243, 80, 5, 32, 66, 15, 9, 198, 44,
-			243, 77, 85, 64, 66, 15, 9, 198, 16, 82, 204, 36, 224, 66, 15, 0, 12, 201, 76, 176, 82, 48, 21, 9, 58, 148, 192, 15, 12, 201,
-			44, 243, 77, 84, 226, 75, 5, 74, 82, 15, 12, 201, 44, 243, 12, 4, 35, 210, 5, 74, 82, 15, 12, 201, 16, 83, 79, 57, 53, 18,
-			5, 74, 82, 15, 10, 199, 25, 32, 78, 44, 241, 143, 56, 15, 15, 204, 77, 68, 149, 45, 69, 82, 4, 194, 83, 80, 148, 203, 15, 0,
-			12, 201, 88, 17, 193, 8, 243, 132, 21, 33, 64, 15, 12, 201, 65, 35, 199, 72, 19, 77, 21, 33, 64, 15, 12, 201, 44, 243, 150, 60,
-			197, 84, 21, 33, 64, 15, 12, 201, 44, 243, 148, 72, 20, 212, 21, 33, 64, 15, 12, 201, 16, 242, 213, 52, 83, 148, 21, 33, 64, 15,
-			12, 201, 5, 33, 213, 52, 83, 148, 21, 33, 64, 15, 8, 197, 33, 243, 5, 72, 144, 15, 8, 197, 26, 147, 5, 72, 144, 15, 0, 6,
-			195, 48, 241, 201, 15, 9, 198, 64, 83, 5, 72, 147, 133, 15, 9, 198, 44, 243, 5, 72, 147, 133, 15, 16, 205, 56, 21, 9, 60, 224,
-			76, 76, 240, 201, 4, 194, 83, 80, 15, 12, 201, 64, 244, 201, 80, 149, 137, 80, 85, 0, 15, 12, 201, 56, 81, 193, 80, 149, 137, 80,
-			85, 0, 15, 6, 65, 24, 115, 83, 0, 0, 10, 199, 61, 85, 133, 73, 69, 82, 20, 15, 10, 199, 44, 243, 134, 37, 69, 82, 20, 15,
-			9, 198, 17, 35, 199, 37, 53, 0, 15, 9, 198, 77, 147, 132, 36, 177, 82, 15, 9, 198, 73, 80, 146, 36, 49, 82, 15, 10, 199, 72,
-			84, 197, 73, 97, 82, 20, 15, 10, 199, 72, 84, 15, 73, 65, 82, 20, 15, 10, 199, 72, 21, 9, 60, 225, 82, 20, 15, 10, 199, 64,
-			192, 75, 5, 65, 82, 20, 15, 10, 199, 64, 21, 5, 57, 65, 82, 20, 15, 10, 199, 64, 19, 12, 21, 65, 82, 20, 15, 10, 199, 45,
-			85, 133, 73, 65, 82, 20, 15, 10, 199, 45, 83, 13, 36, 225, 82, 20, 15, 10, 199, 24, 244, 198, 5, 65, 82, 20, 15, 9, 198, 24,
-			84, 142, 37, 49, 82, 15, 10, 199, 16, 242, 212, 61, 33, 82, 20, 15, 10, 199, 16, 84, 197, 73, 65, 82, 20, 15, 10, 199, 16, 82,
-			210, 21, 65, 82, 20, 15, 10, 199, 16, 80, 129, 81, 65, 82, 20, 15, 10, 199, 5, 69, 5, 77, 65, 82, 20, 15, 10, 199, 5, 4,
-			15, 73, 65, 82, 20, 15, 10, 199, 4, 181, 9, 60, 225, 82, 20, 15, 9, 198, 5, 35, 69, 56, 145, 78, 15, 9, 198, 16, 19, 65,
-			76, 49, 78, 15, 0, 7, 196, 45, 84, 133, 72, 15, 11, 200, 45, 35, 206, 60, 209, 84, 72, 144, 15, 11, 200, 5, 81, 9, 60, 209,
-			84, 72, 144, 15, 12, 201, 25, 83, 132, 4, 209, 78, 80, 19, 0, 15, 0, 28, 68, 88, 244, 133, 76, 84, 108, 12, 89, 15, 49, 84,
-			121, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 11, 200, 53, 84, 203, 84, 192, 84, 85, 32, 15, 11, 200, 44, 20,
-			130, 85, 32, 84, 61, 32, 15, 11, 200, 36, 228, 208, 37, 32, 84, 61, 32, 15, 9, 198, 77, 1, 67, 36, 83, 0, 15, 12, 201, 77,
-			65, 82, 20, 243, 69, 81, 34, 64, 15, 12, 201, 44, 243, 15, 72, 147, 69, 81, 34, 64, 15, 12, 201, 24, 147, 15, 76, 241, 137, 45,
-			83, 64, 15, 12, 201, 80, 84, 146, 37, 67, 210, 37, 83, 64, 15, 12, 201, 60, 97, 133, 73, 67, 210, 37, 83, 64, 15, 9, 198, 61,
-			5, 9, 52, 19, 0, 15, 7, 196, 88, 244, 133, 76, 72, 0, 10, 199, 54, 144, 140, 21, 34, 78, 28, 15, 12, 201, 12, 128, 82, 48,
-			21, 1, 56, 84, 137, 15, 9, 198, 32, 148, 212, 61, 34, 69, 15, 6, 65, 28, 81, 36, 0, 0, 11, 200, 33, 227, 132, 80, 84, 137,
-			56, 112, 15, 10, 199, 8, 20, 143, 56, 84, 211, 20, 15, 0, 18, 67, 44, 19, 128, 49, 118, 50, 15, 107, 117, 0, 81, 104, 97, 118,
-			101, 32, 11, 200, 40, 84, 137, 44, 244, 143, 76, 80, 15, 7, 196, 52, 84, 207, 56, 15, 13, 202, 81, 34, 65, 56, 117, 76, 5, 66,
-			79, 56, 15, 13, 202, 81, 32, 78, 76, 195, 203, 5, 66, 79, 56, 15, 13, 202, 77, 68, 129, 56, 117, 76, 5, 66, 79, 56, 15, 13,
-			202, 44, 243, 148, 20, 212, 12, 5, 66, 79, 56, 15, 13, 202, 36, 229, 18, 61, 52, 5, 45, 66, 79, 56, 15, 13, 202, 36, 212, 18,
-			61, 98, 83, 5, 66, 79, 56, 15, 13, 202, 4, 178, 207, 52, 211, 196, 5, 66, 79, 56, 15, 9, 198, 64, 147, 129, 29, 66, 71, 15,
-			11, 200, 60, 229, 15, 28, 83, 133, 76, 80, 15, 11, 200, 64, 20, 148, 36, 50, 80, 36, 80, 15, 7, 196, 44, 149, 9, 56, 15, 9,
-			198, 64, 147, 129, 29, 66, 71, 15, 6, 195, 44, 19, 128, 76, 0, 9, 198, 36, 228, 212, 37, 69, 84, 15, 13, 202, 52, 21, 18, 36,
-			181, 76, 21, 34, 78, 28, 15, 13, 202, 36, 225, 18, 20, 117, 76, 21, 34, 78, 28, 15, 13, 202, 20, 180, 208, 48, 242, 84, 21, 34,
-			78, 28, 15, 13, 202, 16, 148, 212, 72, 144, 149, 21, 34, 78, 28, 15, 13, 202, 8, 20, 146, 36, 176, 68, 21, 34, 78, 28, 15, 12,
-			201, 77, 3, 206, 80, 19, 137, 76, 209, 64, 15, 12, 201, 76, 83, 73, 56, 20, 137, 76, 209, 64, 15, 12, 201, 52, 243, 133, 80, 20,
-			137, 76, 209, 64, 15, 12, 201, 20, 180, 212, 72, 83, 73, 76, 209, 64, 15, 0, 14, 203, 65, 39, 211, 85, 4, 15, 76, 149, 9, 60,
-			224, 15, 14, 203, 84, 66, 207, 56, 181, 82, 72, 84, 137, 56, 112, 15, 14, 203, 81, 32, 85, 52, 21, 9, 76, 84, 137, 56, 112, 15,
-			14, 203, 81, 32, 78, 76, 210, 84, 80, 84, 137, 56, 112, 15, 14, 203, 80, 84, 212, 4, 209, 78, 80, 84, 137, 56, 112, 15, 14, 203,
-			80, 84, 141, 60, 116, 129, 24, 84, 137, 56, 112, 15, 14, 203, 77, 147, 139, 72, 85, 9, 76, 84, 137, 56, 112, 15, 14, 203, 77, 1,
-			67, 36, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 76, 147, 80, 48, 145, 137, 12, 84, 137, 56, 112, 15, 13, 202, 64, 244, 148, 73,
-			245, 20, 21, 34, 78, 28, 15, 14, 203, 64, 244, 21, 48, 20, 137, 76, 84, 137, 56, 112, 15, 14, 203, 64, 20, 140, 4, 209, 78, 80,
-			84, 137, 56, 112, 15, 14, 203, 56, 243, 73, 56, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 56, 85, 84, 72, 19, 9, 76, 84, 137,
-			56, 112, 15, 14, 203, 56, 21, 21, 72, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 53, 149, 15, 48, 241, 201, 76, 84, 137, 56, 112,
-			15, 14, 203, 48, 144, 133, 72, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 44, 20, 9, 80, 19, 9, 76, 84, 137, 56, 112, 15, 14,
-			203, 44, 19, 12, 36, 116, 129, 24, 84, 137, 56, 112, 15, 14, 203, 36, 65, 79, 48, 241, 201, 76, 84, 137, 56, 112, 15, 14, 203, 32,
-			243, 79, 28, 83, 137, 76, 84, 137, 56, 112, 15, 14, 203, 25, 83, 132, 4, 209, 78, 80, 84, 137, 56, 112, 15, 14, 203, 24, 244, 198,
-			61, 33, 83, 12, 84, 137, 56, 112, 15, 14, 203, 24, 147, 140, 4, 225, 9, 76, 84, 137, 56, 112, 15, 14, 203, 20, 180, 208, 72, 244,
-			18, 36, 84, 137, 56, 112, 15, 14, 203, 16, 148, 203, 72, 147, 73, 56, 84, 137, 56, 112, 15, 14, 203, 16, 147, 69, 57, 50, 79, 56,
-			84, 137, 56, 112, 15, 14, 203, 16, 81, 137, 9, 34, 76, 48, 84, 137, 56, 112, 15, 14, 203, 16, 21, 1, 52, 21, 9, 76, 84, 137,
-			56, 112, 15, 14, 203, 8, 20, 212, 5, 33, 9, 76, 84, 137, 56, 112, 15, 14, 203, 5, 85, 15, 52, 21, 9, 76, 84, 137, 56, 112,
-			15, 14, 203, 4, 193, 129, 8, 85, 9, 76, 84, 137, 56, 112, 15, 14, 203, 4, 48, 197, 77, 50, 79, 56, 84, 137, 56, 112, 15, 10,
-			199, 50, 145, 206, 4, 117, 9, 28, 15, 10, 199, 50, 145, 206, 4, 117, 9, 28, 15, 7, 65, 32, 107, 125, 12, 0, 0, 9, 198, 8,
-			243, 137, 80, 85, 0, 15, 9, 198, 16, 81, 137, 56, 149, 0, 15, 13, 202, 84, 226, 86, 21, 36, 193, 48, 148, 205, 20, 15, 13, 202,
-			44, 243, 12, 20, 181, 9, 88, 148, 205, 20, 15, 9, 198, 5, 54, 76, 4, 229, 0, 15, 0, 25, 67, 28, 21, 128, 81, 117, 15, 89,
-			121, 57, 15, 47, 36, 55, 0, 82, 115, 105, 103, 32, 116, 105, 108, 32, 8, 197, 64, 244, 197, 72, 80, 15, 8, 197, 4, 181, 5, 72,
-			80, 15, 8, 197, 64, 243, 9, 80, 144, 15, 8, 197, 9, 83, 9, 52, 144, 15, 0, 16, 205, 84, 65, 9, 24, 97, 82, 20, 229, 9,
-			21, 34, 78, 28, 15, 10, 199, 52, 21, 5, 52, 21, 9, 44, 15, 10, 199, 5, 34, 84, 52, 85, 9, 44, 15, 10, 199, 16, 84, 5,
-			56, 65, 78, 76, 15, 9, 1, 35, 50, 6, 125, 65, 108, 0, 0, 22, 65, 36, 37, 15, 49, 84, 6, 121, 12, 72, 108, 0, 81, 107,
-			118, 97, 114, 116, 101, 114, 32, 10, 199, 76, 176, 78, 16, 19, 41, 76, 15, 10, 199, 44, 243, 148, 4, 114, 105, 76, 15, 9, 198, 52,
-			81, 9, 125, 96, 76, 15, 8, 65, 36, 10, 37, 11, 0, 76, 0, 11, 200, 80, 83, 132, 20, 229, 9, 165, 48, 15, 11, 200, 65, 33,
-			83, 80, 145, 201, 165, 48, 15, 11, 200, 44, 243, 80, 20, 225, 9, 165, 48, 15, 9, 198, 44, 147, 133, 80, 146, 192, 15, 9, 198, 4,
-			225, 197, 48, 146, 192, 15, 9, 198, 81, 83, 133, 76, 145, 78, 15, 9, 198, 21, 68, 149, 72, 145, 78, 15, 9, 198, 5, 52, 217, 72,
-			145, 78, 15, 13, 1, 37, 48, 51, 39, 89, 6, 115, 50, 72, 0, 27, 0, 11, 200, 56, 83, 204, 37, 66, 75, 84, 208, 15, 11, 200,
-			56, 20, 139, 61, 66, 75, 84, 208, 15, 19, 72, 12, 19, 148, 21, 32, 149, 73, 144, 49, 118, 50, 47, 109, 71, 34, 37, 0, 7, 1,
-			38, 10, 108, 58, 0, 0, 12, 201, 44, 21, 1, 65, 83, 20, 21, 33, 64, 15, 12, 201, 25, 32, 71, 52, 83, 148, 21, 33, 64, 15,
-			12, 201, 24, 245, 15, 44, 244, 9, 21, 33, 64, 15, 24, 73, 8, 243, 130, 60, 227, 137, 21, 33, 64, 71, 108, 68, 71, 108, 68, 57,
-			6, 115, 12, 34, 0, 15, 12, 201, 8, 19, 132, 21, 35, 204, 21, 33, 64, 15, 11, 200, 65, 39, 212, 21, 34, 84, 84, 208, 15, 12,
-			201, 72, 81, 133, 45, 67, 210, 37, 83, 64, 15, 12, 201, 65, 35, 214, 37, 51, 210, 37, 83, 64, 15, 12, 201, 52, 147, 137, 77, 65,
-			82, 37, 83, 64, 15, 12, 201, 45, 33, 77, 5, 67, 210, 37, 83, 64, 15, 9, 198, 16, 148, 203, 60, 98, 76, 15, 13, 1, 39, 35,
-			48, 39, 89, 47, 34, 6, 108, 83, 0, 0, 8, 197, 28, 83, 204, 60, 112, 15, 14, 68, 44, 19, 133, 48, 49, 117, 50, 6, 36, 55,
-			0, 15, 6, 195, 33, 84, 137, 15, 9, 198, 48, 147, 143, 48, 85, 77, 15, 9, 198, 76, 147, 9, 12, 149, 77, 15, 9, 198, 64, 243,
-			15, 56, 149, 77, 15, 7, 196, 32, 16, 137, 48, 15, 7, 196, 12, 149, 137, 48, 15, 7, 196, 88, 242, 193, 48, 15, 7, 196, 64, 242,
-			193, 48, 15, 7, 196, 24, 242, 193, 48, 15, 7, 65, 40, 57, 108, 86, 0, 0, 13, 202, 64, 20, 129, 48, 193, 76, 60, 116, 129, 52,
-			15, 9, 198, 52, 147, 12, 36, 32, 82, 15, 9, 198, 17, 35, 205, 20, 64, 82, 15, 0, 15, 1, 42, 6, 117, 89, 72, 14, 34, 4,
-			37, 89, 81, 0, 27, 0, 14, 70, 48, 145, 197, 76, 243, 64, 55, 111, 89, 109, 65, 0, 9, 198, 65, 35, 211, 4, 148, 212, 15, 9,
-			198, 48, 147, 135, 88, 148, 212, 15, 17, 70, 77, 98, 78, 28, 243, 64, 89, 84, 36, 68, 6, 108, 65, 0, 15, 9, 198, 16, 21, 1,
-			56, 243, 64, 15, 9, 198, 5, 85, 15, 56, 243, 64, 15, 9, 198, 16, 144, 71, 72, 19, 64, 15, 9, 198, 4, 224, 71, 72, 19, 64,
-			15, 9, 198, 65, 35, 194, 48, 83, 64, 15, 10, 69, 8, 244, 212, 60, 224, 21, 0, 47, 8, 1, 43, 48, 55, 40, 89, 0, 0, 10,
-			199, 64, 241, 1, 29, 34, 83, 80, 15, 10, 199, 64, 84, 211, 36, 210, 83, 80, 15, 10, 199, 52, 243, 143, 80, 82, 83, 80, 15, 10,
-			199, 52, 243, 129, 72, 178, 83, 80, 15, 10, 199, 45, 83, 20, 85, 34, 83, 80, 15, 10, 199, 44, 243, 148, 61, 34, 83, 80, 15, 10,
-			199, 24, 19, 1, 56, 114, 83, 80, 15, 10, 199, 21, 128, 197, 73, 2, 83, 80, 15, 10, 199, 16, 81, 129, 37, 66, 83, 80, 15, 10,
-			199, 8, 19, 132, 4, 114, 83, 80, 15, 11, 200, 164, 179, 206, 60, 210, 83, 21, 32, 15, 11, 200, 65, 39, 206, 84, 209, 82, 21, 32,
-			15, 11, 200, 45, 244, 133, 77, 65, 82, 21, 32, 15, 7, 196, 76, 83, 137, 48, 15, 7, 65, 44, 49, 125, 12, 0, 0, 11, 200, 5,
-			4, 5, 56, 66, 67, 37, 64, 15, 8, 197, 65, 81, 82, 36, 192, 15, 12, 201, 25, 224, 143, 72, 113, 78, 76, 84, 128, 15, 0, 13,
-			202, 81, 32, 78, 76, 194, 84, 80, 84, 133, 72, 15, 11, 200, 84, 226, 84, 5, 34, 83, 52, 80, 15, 11, 200, 76, 128, 77, 4, 226,
-			83, 52, 80, 15, 11, 200, 64, 197, 82, 4, 194, 83, 52, 80, 15, 11, 200, 64, 83, 142, 4, 194, 83, 52, 80, 15, 11, 200, 52, 17,
-			206, 21, 66, 83, 52, 80, 15, 11, 200, 44, 242, 193, 36, 226, 83, 52, 80, 15, 11, 200, 33, 148, 14, 61, 66, 83, 52, 80, 15, 11,
-			200, 32, 83, 12, 20, 226, 83, 52, 80, 15, 11, 200, 12, 19, 22, 36, 226, 83, 52, 80, 15, 8, 197, 77, 148, 212, 20, 208, 15, 0,
-			7, 196, 81, 34, 105, 72, 15, 10, 199, 64, 243, 9, 80, 243, 15, 28, 15, 10, 199, 32, 85, 5, 72, 243, 15, 28, 15, 8, 197, 25,
-			84, 201, 60, 224, 15, 16, 205, 84, 66, 210, 101, 53, 1, 48, 194, 83, 21, 34, 78, 28, 15, 16, 205, 36, 225, 21, 77, 68, 137, 4,
-			194, 83, 21, 34, 78, 28, 15, 16, 205, 16, 149, 137, 76, 147, 206, 4, 194, 83, 21, 34, 78, 28, 15, 14, 203, 48, 21, 144, 5, 53,
-			5, 85, 34, 83, 21, 32, 15, 14, 203, 25, 83, 139, 80, 147, 206, 4, 194, 83, 21, 32, 15, 14, 203, 9, 84, 133, 5, 82, 210, 5,
-			66, 83, 21, 32, 15, 10, 199, 29, 34, 78, 4, 117, 9, 28, 15, 12, 201, 77, 147, 139, 72, 243, 137, 76, 209, 64, 15, 12, 201, 72,
-			85, 129, 56, 50, 9, 76, 209, 64, 15, 12, 201, 56, 20, 131, 37, 52, 201, 76, 209, 64, 15, 12, 201, 48, 84, 194, 36, 19, 137, 76,
-			209, 64, 15, 12, 201, 37, 51, 205, 61, 33, 137, 76, 209, 64, 15, 12, 201, 4, 224, 75, 72, 243, 137, 76, 209, 64, 15, 12, 201, 4,
-			194, 207, 32, 243, 9, 76, 209, 64, 15, 10, 199, 21, 128, 197, 48, 193, 78, 76, 15, 10, 199, 29, 34, 78, 4, 117, 9, 28, 15, 10,
-			199, 44, 243, 147, 60, 224, 78, 76, 15, 11, 70, 24, 148, 133, 92, 19, 12, 21, 0, 47, 14, 1, 47, 89, 81, 51, 108, 89, 72, 34,
-			121, 57, 0, 27, 0, 7, 196, 12, 84, 149, 80, 15, 17, 206, 61, 1, 82, 5, 66, 79, 56, 19, 9, 76, 84, 137, 56, 112, 15, 15,
-			204, 76, 83, 148, 36, 209, 78, 80, 19, 9, 76, 84, 128, 15, 10, 199, 52, 243, 135, 60, 195, 201, 16, 15, 10, 199, 52, 85, 1, 48,
-			195, 201, 16, 15, 15, 204, 44, 19, 21, 56, 64, 143, 72, 113, 78, 76, 84, 128, 15, 9, 68, 56, 145, 200, 80, 21, 0, 47, 6, 65,
-			48, 115, 55, 0, 13, 4, 95, 100, 105, 97, 6, 39, 65, 55, 129, 72, 0, 0, 9, 198, 4, 231, 211, 80, 84, 201, 15, 11, 200, 61,
-			97, 82, 53, 241, 212, 36, 112, 15, 12, 201, 28, 80, 143, 52, 209, 82, 48, 145, 192, 15, 10, 199, 44, 243, 147, 61, 37, 9, 20, 15,
-			10, 199, 5, 81, 9, 80, 244, 137, 20, 15, 10, 199, 76, 227, 194, 8, 148, 205, 20, 15, 10, 199, 64, 244, 21, 48, 148, 205, 20, 15,
-			10, 199, 56, 146, 9, 48, 148, 205, 20, 15, 10, 199, 56, 21, 21, 72, 148, 205, 20, 15, 10, 199, 37, 51, 1, 52, 148, 205, 20, 15,
-			10, 199, 25, 85, 21, 72, 148, 205, 20, 15, 10, 199, 20, 212, 9, 72, 148, 205, 20, 15, 10, 199, 8, 245, 21, 48, 148, 205, 20, 15,
-			10, 199, 4, 181, 9, 88, 148, 205, 20, 15, 14, 203, 44, 243, 135, 21, 53, 9, 60, 225, 82, 21, 64, 15, 11, 200, 124, 181, 137, 88,
-			19, 5, 57, 48, 15, 9, 198, 16, 144, 77, 4, 229, 0, 15, 0, 12, 201, 25, 243, 143, 52, 83, 143, 48, 241, 192, 15, 12, 201, 61,
-			97, 82, 88, 147, 132, 20, 194, 71, 15, 12, 201, 32, 83, 73, 76, 103, 210, 37, 50, 192, 15, 12, 201, 5, 67, 79, 76, 103, 210, 37,
-			50, 192, 15, 0, 10, 199, 72, 85, 15, 84, 50, 41, 72, 15, 10, 199, 44, 243, 132, 84, 181, 41, 72, 15, 10, 199, 36, 228, 208, 20,
-			181, 41, 72, 15, 9, 198, 88, 83, 4, 124, 66, 71, 15, 10, 199, 76, 176, 66, 4, 117, 9, 28, 15, 9, 198, 76, 85, 159, 72, 66,
-			71, 15, 10, 199, 24, 82, 140, 4, 117, 9, 28, 15, 10, 199, 76, 176, 66, 4, 117, 9, 28, 15, 10, 199, 24, 82, 140, 4, 117, 9,
-			28, 15, 15, 70, 76, 245, 8, 20, 38, 64, 89, 109, 86, 14, 71, 37, 0, 0, 10, 199, 52, 148, 193, 57, 68, 143, 64, 15, 10, 199,
-			24, 147, 1, 57, 68, 143, 64, 15, 10, 199, 76, 180, 143, 25, 83, 41, 76, 15, 12, 201, 8, 84, 212, 36, 19, 9, 80, 85, 0, 69,
-			9, 198, 4, 84, 143, 17, 35, 205, 15, 12, 201, 85, 53, 1, 8, 147, 9, 80, 85, 0, 15, 12, 201, 76, 83, 147, 84, 19, 9, 80,
-			85, 0, 15, 12, 201, 36, 229, 129, 48, 145, 9, 80, 85, 0, 15, 12, 201, 36, 211, 79, 8, 147, 9, 80, 85, 0, 15, 12, 201, 36,
-			195, 5, 28, 19, 9, 80, 85, 0, 15, 12, 201, 8, 84, 212, 36, 19, 9, 80, 85, 0, 15, 12, 201, 4, 224, 201, 20, 227, 137, 80,
-			85, 0, 15, 9, 198, 64, 84, 137, 24, 84, 137, 15, 9, 198, 44, 147, 133, 76, 84, 137, 15, 9, 198, 24, 20, 193, 56, 84, 137, 15,
-			10, 199, 100, 226, 214, 125, 33, 9, 28, 15, 10, 199, 77, 145, 41, 77, 67, 9, 28, 15, 10, 199, 58, 145, 22, 20, 225, 9, 28, 15,
-			11, 200, 81, 48, 82, 37, 53, 9, 76, 176, 15, 11, 200, 77, 81, 1, 56, 84, 201, 76, 176, 15, 11, 200, 64, 84, 137, 24, 84, 137,
-			76, 176, 15, 11, 200, 64, 83, 135, 20, 116, 137, 76, 176, 15, 11, 200, 56, 244, 212, 4, 193, 201, 76, 176, 15, 11, 200, 37, 51, 205,
-			21, 68, 137, 76, 176, 15, 14, 203, 36, 66, 79, 77, 147, 139, 72, 21, 9, 76, 176, 15, 14, 203, 32, 148, 212, 61, 34, 67, 37, 53,
-			9, 76, 176, 15, 14, 203, 32, 84, 141, 4, 100, 143, 16, 149, 9, 76, 176, 15, 11, 200, 28, 83, 205, 21, 68, 137, 76, 176, 15, 11,
-			200, 8, 243, 66, 5, 53, 9, 76, 176, 15, 14, 203, 8, 82, 1, 88, 147, 210, 37, 53, 9, 76, 176, 15, 11, 200, 4, 193, 65, 80,
-			244, 137, 76, 176, 15, 9, 198, 81, 32, 86, 21, 53, 9, 15, 8, 197, 80, 82, 206, 36, 176, 15, 7, 196, 72, 16, 129, 80, 15, 7,
-			196, 64, 148, 129, 80, 15, 7, 196, 44, 20, 129, 80, 15, 6, 65, 52, 115, 65, 0, 0, 9, 198, 76, 176, 66, 20, 195, 206, 15, 9,
-			198, 52, 146, 210, 60, 99, 206, 15, 11, 200, 61, 97, 82, 24, 202, 68, 36, 112, 15, 12, 201, 80, 21, 84, 60, 195, 199, 37, 50, 192,
-			15, 12, 201, 76, 240, 201, 60, 195, 199, 37, 50, 192, 15, 12, 201, 76, 83, 73, 60, 195, 199, 37, 50, 192, 15, 12, 201, 65, 54, 75,
-			60, 195, 199, 37, 50, 192, 15, 12, 201, 64, 244, 148, 84, 114, 83, 37, 50, 192, 15, 15, 204, 44, 243, 148, 72, 17, 9, 45, 67, 210,
-			37, 50, 192, 15, 12, 201, 33, 145, 18, 60, 195, 199, 37, 50, 192, 15, 15, 204, 32, 19, 12, 84, 50, 78, 5, 67, 210, 37, 50, 192,
-			15, 12, 201, 28, 83, 133, 4, 195, 199, 37, 50, 192, 15, 12, 201, 25, 148, 201, 60, 195, 199, 37, 50, 192, 15, 12, 201, 21, 70, 77,
-			60, 195, 199, 37, 50, 192, 15, 15, 204, 5, 33, 213, 52, 83, 148, 5, 67, 210, 37, 50, 192, 15, 9, 198, 52, 83, 15, 16, 146, 192,
-			15, 9, 198, 20, 192, 83, 80, 146, 192, 15, 11, 200, 24, 192, 71, 20, 195, 1, 57, 64, 15, 0, 10, 199, 44, 244, 146, 61, 50, 79,
-			56, 15, 11, 200, 80, 84, 146, 5, 52, 197, 72, 80, 15, 12, 201, 77, 68, 129, 25, 50, 217, 48, 66, 71, 15, 0, 15, 204, 29, 32,
-			77, 52, 21, 9, 44, 19, 9, 80, 85, 0, 15, 12, 201, 65, 149, 8, 4, 115, 210, 124, 148, 203, 15, 0, 17, 70, 72, 82, 137, 12,
-			84, 133, 34, 116, 57, 111, 89, 6, 114, 109, 0, 9, 198, 80, 245, 82, 57, 84, 133, 15, 12, 201, 84, 226, 70, 61, 35, 73, 80, 85,
-			0, 15, 12, 201, 77, 85, 133, 73, 243, 137, 80, 85, 0, 15, 12, 201, 72, 17, 9, 44, 19, 9, 80, 85, 0, 15, 12, 201, 44, 20,
-			1, 8, 147, 9, 80, 85, 0, 15, 12, 201, 32, 243, 79, 28, 83, 137, 80, 85, 0, 15, 9, 198, 77, 2, 79, 56, 84, 133, 15, 9,
-			198, 76, 176, 78, 16, 84, 133, 15, 9, 198, 64, 242, 78, 80, 84, 133, 15, 9, 198, 52, 245, 9, 88, 84, 133, 15, 9, 198, 52, 20,
-			137, 56, 84, 133, 15, 9, 198, 29, 37, 80, 64, 84, 133, 15, 9, 198, 29, 37, 78, 16, 84, 133, 15, 9, 198, 28, 20, 129, 28, 84,
-			133, 15, 9, 198, 24, 145, 213, 72, 84, 133, 15, 9, 198, 4, 192, 82, 52, 84, 133, 15, 9, 198, 4, 181, 9, 88, 84, 133, 15, 9,
-			198, 4, 35, 210, 80, 84, 133, 15, 9, 198, 82, 148, 146, 21, 34, 64, 15, 9, 198, 77, 74, 66, 21, 34, 64, 15, 9, 198, 76, 225,
-			68, 44, 84, 137, 15, 9, 198, 76, 192, 71, 80, 84, 137, 15, 12, 201, 81, 32, 78, 77, 3, 210, 80, 21, 0, 15, 6, 65, 56, 115,
-			50, 0, 0, 10, 199, 52, 20, 135, 5, 34, 78, 20, 15, 10, 199, 24, 147, 9, 65, 2, 78, 20, 15, 9, 198, 44, 244, 148, 37, 51,
-			206, 15, 9, 198, 64, 21, 137, 48, 195, 206, 15, 9, 198, 52, 81, 1, 48, 163, 206, 15, 9, 198, 89, 42, 86, 48, 84, 137, 15, 10,
-			199, 80, 83, 5, 52, 85, 18, 36, 15, 10, 199, 76, 241, 137, 77, 65, 82, 36, 15, 10, 199, 72, 85, 8, 5, 97, 82, 36, 15, 10,
-			199, 64, 81, 1, 57, 65, 82, 36, 15, 10, 199, 61, 33, 7, 100, 65, 82, 36, 15, 10, 199, 45, 83, 147, 80, 193, 82, 36, 15, 10,
-			199, 44, 242, 197, 81, 65, 82, 36, 15, 10, 199, 44, 194, 77, 65, 33, 82, 36, 15, 10, 199, 41, 84, 137, 77, 65, 82, 36, 15, 10,
-			199, 36, 225, 129, 57, 65, 82, 36, 15, 9, 198, 9, 39, 206, 16, 84, 137, 15, 10, 199, 64, 197, 84, 60, 226, 85, 52, 15, 10, 199,
-			32, 20, 141, 60, 226, 85, 52, 15, 10, 199, 8, 84, 153, 48, 194, 85, 52, 15, 9, 198, 52, 19, 132, 5, 64, 82, 15, 0, 10, 199,
-			16, 241, 5, 44, 17, 143, 56, 15, 10, 199, 65, 35, 214, 37, 50, 79, 56, 15, 10, 199, 44, 243, 148, 85, 50, 79, 56, 15, 13, 202,
-			41, 84, 212, 36, 98, 75, 5, 66, 79, 56, 15, 13, 202, 24, 19, 19, 36, 98, 75, 5, 66, 79, 56, 15, 10, 199, 16, 147, 73, 77,
-			50, 79, 56, 15, 10, 199, 16, 83, 73, 77, 50, 79, 56, 15, 7, 196, 17, 84, 5, 72, 15, 11, 200, 16, 84, 212, 36, 195, 5, 72,
-			144, 15, 15, 204, 45, 38, 83, 80, 19, 12, 60, 116, 129, 24, 148, 203, 15, 11, 200, 44, 193, 80, 80, 243, 65, 56, 144, 15, 12, 201,
-			44, 243, 132, 37, 66, 79, 56, 19, 0, 15, 0, 9, 198, 88, 242, 193, 48, 148, 212, 15, 9, 198, 4, 227, 129, 48, 148, 212, 15, 11,
-			200, 80, 83, 5, 88, 148, 201, 60, 224, 15, 11, 200, 77, 80, 195, 21, 52, 201, 60, 224, 15, 11, 200, 20, 180, 203, 49, 84, 201, 60,
-			224, 15, 11, 200, 16, 148, 203, 85, 52, 201, 60, 224, 15, 11, 200, 16, 145, 210, 21, 52, 201, 60, 224, 15, 11, 200, 16, 81, 210, 21,
-			52, 201, 60, 224, 15, 15, 204, 76, 83, 148, 36, 209, 78, 80, 19, 9, 80, 85, 0, 15, 15, 204, 72, 84, 208, 20, 181, 1, 8, 147,
-			9, 80, 85, 0, 15, 10, 199, 125, 53, 5, 80, 148, 197, 72, 15, 10, 199, 17, 243, 79, 56, 148, 197, 72, 15, 12, 201, 72, 81, 213,
-			48, 17, 5, 81, 34, 64, 15, 12, 201, 45, 96, 75, 76, 19, 22, 21, 34, 64, 15, 12, 201, 64, 192, 78, 21, 64, 82, 37, 83, 64,
-			15, 12, 201, 16, 83, 6, 36, 224, 82, 37, 83, 64, 15, 9, 198, 41, 85, 133, 56, 147, 0, 15, 9, 198, 24, 241, 5, 72, 19, 0,
-			15, 0, 9, 198, 21, 85, 1, 56, 20, 201, 15, 12, 201, 77, 74, 75, 36, 243, 69, 81, 34, 64, 15, 12, 201, 52, 20, 139, 76, 180,
-			137, 28, 84, 137, 15, 12, 201, 25, 84, 197, 57, 64, 83, 80, 84, 137, 15, 8, 197, 16, 83, 69, 57, 48, 15, 5, 65, 60, 39, 0,
-			0, 11, 200, 72, 83, 1, 80, 149, 137, 77, 64, 15, 11, 200, 72, 80, 201, 16, 149, 137, 77, 64, 15, 9, 198, 16, 151, 212, 37, 53,
-			0, 15, 11, 200, 16, 85, 1, 36, 195, 9, 77, 64, 15, 9, 198, 61, 0, 67, 37, 65, 84, 15, 12, 201, 65, 241, 1, 28, 241, 201,
-			76, 84, 128, 15, 9, 198, 61, 0, 76, 37, 49, 82, 15, 11, 200, 61, 0, 153, 28, 113, 76, 36, 112, 15, 12, 201, 120, 192, 143, 72,
-			113, 78, 76, 84, 128, 15, 12, 201, 29, 33, 78, 120, 113, 78, 76, 84, 128, 15, 6, 195, 61, 0, 76, 15, 10, 1, 61, 55, 6, 37,
-			65, 36, 86, 0, 0, 9, 198, 65, 35, 195, 20, 74, 82, 15, 9, 198, 61, 1, 82, 5, 74, 82, 15, 9, 198, 52, 241, 5, 48, 202,
-			82, 15, 9, 198, 52, 81, 1, 48, 170, 82, 15, 9, 198, 12, 128, 85, 24, 106, 82, 15, 9, 198, 5, 36, 129, 56, 122, 82, 15, 7,
-			196, 25, 85, 15, 56, 15, 13, 202, 80, 82, 206, 60, 180, 129, 80, 148, 197, 72, 15, 13, 202, 76, 176, 78, 16, 147, 129, 88, 148, 197,
-			72, 15, 13, 202, 65, 35, 194, 48, 83, 65, 80, 148, 197, 72, 15, 13, 202, 52, 84, 139, 4, 229, 9, 48, 148, 197, 72, 15, 13, 202,
-			24, 146, 212, 36, 243, 129, 48, 148, 197, 72, 15, 13, 202, 12, 243, 148, 4, 147, 133, 72, 148, 197, 72, 15, 14, 68, 28, 19, 73, 56,
-			81, 117, 65, 6, 115, 68, 0, 15, 11, 200, 72, 81, 143, 72, 210, 83, 52, 80, 15, 11, 200, 64, 243, 25, 80, 82, 83, 52, 80, 15,
-			11, 200, 61, 53, 18, 4, 178, 83, 52, 80, 15, 11, 200, 56, 244, 150, 4, 114, 83, 52, 80, 15, 11, 200, 53, 148, 212, 36, 50, 83,
-			52, 80, 15, 11, 200, 28, 145, 193, 57, 66, 83, 52, 80, 15, 11, 200, 28, 84, 141, 4, 226, 83, 52, 80, 15, 11, 200, 4, 225, 204,
-			36, 50, 83, 52, 80, 15, 11, 200, 4, 176, 68, 20, 210, 83, 52, 80, 15, 8, 197, 20, 208, 140, 20, 208, 15, 12, 201, 44, 243, 148,
-			36, 225, 78, 80, 19, 0, 15, 13, 69, 76, 129, 73, 48, 16, 91, 37, 12, 55, 118, 0, 0, 9, 198, 36, 208, 133, 12, 147, 0, 15,
-			0, 10, 199, 77, 80, 147, 80, 149, 21, 80, 15, 9, 198, 81, 35, 205, 8, 244, 197, 15, 9, 198, 77, 147, 66, 36, 244, 197, 15, 9,
-			198, 76, 179, 5, 72, 244, 197, 15, 9, 198, 76, 176, 66, 36, 244, 197, 15, 9, 198, 65, 35, 199, 56, 244, 197, 15, 9, 198, 5, 3,
-			212, 20, 244, 197, 15, 12, 201, 8, 18, 212, 21, 34, 79, 48, 241, 201, 15, 15, 204, 61, 1, 82, 5, 66, 79, 56, 19, 9, 76, 84,
-			128, 15, 9, 198, 4, 224, 77, 56, 84, 197, 15, 7, 196, 24, 147, 137, 80, 15, 7, 196, 5, 50, 65, 80, 15, 6, 65, 64, 48, 36,
-			0, 14, 1, 64, 89, 50, 4, 117, 71, 14, 55, 6, 117, 12, 0, 0, 11, 200, 125, 33, 70, 73, 145, 212, 36, 112, 15, 11, 200, 52,
-			148, 212, 74, 148, 212, 36, 112, 15, 11, 200, 65, 241, 1, 28, 241, 201, 76, 176, 15, 13, 202, 77, 80, 138, 20, 181, 9, 88, 148, 205,
-			20, 15, 13, 202, 77, 2, 82, 37, 69, 65, 48, 148, 205, 20, 15, 13, 202, 76, 243, 78, 4, 208, 149, 48, 148, 205, 20, 15, 13, 202,
-			64, 20, 139, 36, 228, 207, 56, 148, 205, 20, 15, 13, 202, 44, 243, 147, 21, 37, 129, 80, 148, 205, 20, 15, 13, 202, 16, 80, 197, 57,
-			68, 129, 48, 148, 205, 20, 15, 9, 198, 65, 33, 83, 20, 229, 0, 15, 0, 11, 67, 76, 145, 192, 89, 121, 57, 0, 49, 45, 17, 67,
-			76, 145, 192, 89, 37, 15, 84, 117, 0, 81, 104, 118, 97, 100, 32, 8, 197, 52, 149, 15, 76, 80, 15, 12, 201, 64, 19, 31, 60, 229,
-			15, 48, 241, 192, 15, 12, 201, 52, 18, 133, 77, 71, 212, 37, 50, 192, 15, 6, 195, 76, 145, 192, 72, 0, 10, 199, 44, 243, 77, 4,
-			225, 41, 72, 15, 10, 199, 60, 67, 206, 80, 243, 15, 28, 15, 10, 199, 60, 49, 65, 56, 243, 15, 28, 15, 10, 199, 36, 211, 85, 56,
-			243, 15, 28, 15, 10, 199, 52, 85, 1, 25, 148, 201, 44, 15, 0, 10, 199, 49, 82, 211, 85, 34, 105, 76, 15, 12, 201, 81, 34, 86,
-			36, 19, 9, 80, 85, 0, 15, 12, 201, 76, 82, 211, 84, 19, 9, 80, 85, 0, 15, 12, 201, 72, 83, 1, 80, 149, 137, 80, 85, 0,
-			15, 12, 201, 56, 245, 1, 8, 147, 9, 80, 85, 0, 15, 12, 201, 53, 84, 201, 44, 19, 9, 80, 85, 0, 15, 12, 201, 17, 84, 129,
-			8, 147, 9, 80, 85, 0, 15, 9, 198, 81, 38, 76, 48, 84, 137, 15, 9, 198, 81, 35, 204, 16, 84, 137, 15, 9, 198, 77, 66, 75,
-			48, 84, 137, 15, 9, 198, 49, 83, 83, 44, 84, 137, 15, 9, 198, 45, 82, 143, 56, 84, 137, 15, 9, 198, 45, 38, 68, 16, 84, 137,
-			15, 9, 198, 44, 192, 84, 80, 84, 137, 15, 9, 198, 17, 34, 76, 48, 84, 137, 15, 14, 203, 81, 32, 78, 76, 21, 12, 4, 229, 9,
-			76, 176, 15, 14, 203, 72, 85, 137, 76, 147, 206, 37, 53, 9, 76, 176, 15, 14, 203, 61, 4, 15, 73, 69, 78, 37, 53, 9, 76, 176,
-			15, 14, 203, 45, 33, 65, 80, 147, 206, 37, 53, 9, 76, 176, 15, 14, 203, 36, 195, 21, 76, 147, 206, 37, 53, 9, 76, 176, 15, 14,
-			203, 8, 144, 140, 36, 245, 5, 44, 20, 137, 76, 176, 15, 7, 196, 72, 20, 9, 16, 15, 8, 197, 73, 80, 146, 36, 176, 15, 6, 65,
-			68, 49, 40, 0, 0, 18, 70, 48, 81, 197, 56, 65, 78, 55, 36, 81, 6, 115, 50, 72, 14, 50, 0, 12, 201, 77, 65, 82, 20, 245,
-			25, 66, 148, 128, 15, 12, 201, 72, 84, 212, 5, 84, 129, 82, 148, 128, 15, 12, 201, 44, 243, 147, 81, 37, 75, 82, 148, 128, 15, 15,
-			204, 60, 227, 205, 5, 67, 208, 60, 145, 84, 37, 50, 192, 15, 9, 198, 72, 85, 15, 72, 146, 192, 15, 9, 198, 52, 245, 15, 72, 146,
-			192, 15, 9, 198, 88, 20, 137, 4, 229, 0, 15, 0, 18, 5, 100, 106, 39, 101, 114, 72, 37, 12, 6, 72, 57, 36, 12, 57, 108, 0,
-			0, 18, 67, 76, 176, 76, 89, 49, 118, 15, 107, 117, 0, 81, 104, 97, 118, 101, 32, 9, 198, 64, 84, 137, 76, 179, 208, 15, 9, 198,
-			32, 244, 143, 76, 179, 208, 15, 9, 198, 20, 225, 15, 76, 179, 208, 15, 15, 204, 36, 228, 212, 73, 83, 69, 57, 64, 76, 37, 53, 0,
-			15, 6, 195, 76, 176, 76, 76, 0, 21, 72, 72, 82, 137, 12, 84, 137, 56, 112, 34, 36, 57, 37, 89, 6, 36, 51, 37, 68, 0, 11,
-			200, 77, 81, 134, 48, 84, 137, 56, 112, 15, 11, 200, 76, 178, 84, 76, 84, 137, 56, 112, 15, 11, 200, 76, 84, 1, 72, 84, 137, 56,
-			112, 15, 11, 200, 72, 82, 137, 12, 84, 137, 56, 112, 15, 11, 200, 64, 147, 15, 80, 84, 137, 56, 112, 15, 11, 200, 52, 20, 137, 56,
-			84, 137, 56, 112, 15, 11, 200, 44, 243, 15, 72, 84, 137, 56, 112, 15, 11, 200, 44, 195, 193, 44, 84, 137, 56, 112, 15, 11, 200, 28,
-			20, 129, 28, 84, 137, 56, 112, 15, 11, 200, 24, 145, 213, 72, 84, 137, 56, 112, 15, 11, 200, 16, 19, 137, 76, 84, 137, 56, 112, 15,
-			11, 200, 5, 52, 213, 72, 84, 137, 56, 112, 15, 7, 196, 48, 19, 69, 48, 15, 12, 201, 65, 35, 212, 60, 179, 204, 48, 84, 133, 15,
-			12, 201, 16, 148, 195, 37, 3, 9, 56, 84, 133, 15, 7, 196, 28, 83, 65, 48, 15, 7, 196, 4, 227, 129, 48, 15, 10, 199, 52, 19,
-			135, 20, 176, 78, 80, 15, 10, 199, 36, 228, 201, 57, 80, 78, 80, 15, 6, 65, 72, 115, 34, 0, 0, 15, 204, 28, 84, 212, 4, 197,
-			16, 77, 146, 207, 48, 241, 192, 15, 9, 198, 28, 197, 75, 4, 115, 206, 15, 9, 198, 72, 83, 1, 80, 147, 206, 15, 9, 198, 36, 195,
-			21, 76, 147, 206, 15, 9, 198, 16, 149, 137, 76, 147, 206, 15, 9, 198, 4, 195, 21, 76, 147, 206, 15, 12, 201, 37, 51, 31, 56, 65,
-			82, 36, 225, 5, 15, 0, 10, 199, 44, 243, 134, 85, 50, 79, 56, 15, 10, 199, 36, 211, 73, 77, 50, 79, 56, 15, 13, 202, 76, 84,
-			137, 21, 4, 143, 17, 80, 197, 72, 15, 10, 199, 44, 193, 77, 20, 229, 9, 56, 15, 10, 199, 52, 19, 12, 61, 32, 201, 56, 15, 8,
-			67, 80, 129, 64, 21, 0, 47, 0, 11, 200, 81, 34, 85, 52, 96, 84, 61, 32, 15, 11, 200, 72, 81, 143, 72, 208, 84, 61, 32, 15,
-			11, 200, 16, 82, 204, 4, 208, 84, 61, 32, 15, 9, 198, 21, 33, 207, 56, 243, 64, 15, 9, 198, 4, 116, 143, 56, 243, 64, 15, 11,
-			200, 72, 81, 140, 20, 180, 201, 60, 224, 15, 11, 200, 64, 84, 150, 21, 36, 201, 60, 224, 15, 11, 200, 44, 243, 150, 21, 36, 201, 60,
-			224, 15, 9, 198, 21, 2, 71, 72, 19, 64, 15, 11, 200, 64, 83, 137, 12, 147, 12, 36, 224, 15, 18, 4, 95, 100, 111, 116, 58, 37,
-			86, 72, 6, 127, 47, 35, 71, 108, 84, 0, 0, 7, 196, 52, 241, 5, 48, 15, 6, 65, 76, 36, 89, 0, 0, 9, 198, 77, 0, 84,
-			38, 148, 192, 15, 12, 201, 77, 0, 83, 80, 144, 201, 80, 85, 0, 15, 11, 200, 77, 0, 84, 36, 84, 137, 56, 112, 15, 9, 198, 77,
-			0, 84, 36, 84, 128, 15, 10, 199, 77, 0, 78, 45, 83, 5, 72, 15, 9, 198, 77, 0, 76, 36, 84, 133, 15, 9, 198, 77, 0, 68,
-			76, 84, 128, 15, 6, 195, 48, 145, 82, 15, 12, 201, 77, 0, 82, 76, 243, 77, 20, 194, 71, 15, 11, 200, 77, 0, 71, 25, 244, 132,
-			36, 112, 15, 9, 198, 77, 0, 78, 36, 243, 0, 15, 11, 200, 77, 0, 83, 52, 241, 9, 76, 176, 15, 12, 201, 65, 35, 199, 56, 244,
-			212, 36, 177, 82, 15, 12, 201, 52, 83, 1, 56, 179, 204, 36, 177, 82, 15, 12, 201, 20, 193, 75, 81, 35, 206, 36, 177, 82, 15, 12,
-			201, 16, 144, 71, 56, 244, 212, 36, 177, 82, 15, 9, 198, 77, 0, 82, 80, 19, 128, 15, 8, 197, 77, 0, 71, 5, 64, 15, 0, 9,
-			198, 48, 81, 201, 60, 231, 210, 15, 9, 198, 29, 32, 78, 84, 199, 210, 15, 11, 200, 26, 145, 5, 72, 19, 9, 77, 64, 15, 14, 203,
-			44, 243, 147, 21, 37, 129, 80, 244, 137, 84, 208, 15, 18, 67, 48, 241, 192, 55, 108, 49, 6, 36, 50, 0, 44, 15, 81, 105, 110, 32,
-			0, 7, 196, 17, 84, 233, 72, 15, 9, 198, 164, 213, 30, 48, 145, 192, 15, 10, 199, 24, 244, 148, 72, 243, 9, 28, 15, 10, 199, 4,
-			100, 203, 100, 83, 9, 28, 15, 10, 199, 5, 85, 15, 52, 21, 9, 44, 15, 10, 199, 77, 98, 78, 4, 117, 9, 28, 15, 0, 11, 200,
-			52, 21, 18, 36, 181, 76, 125, 32, 15, 11, 200, 64, 84, 148, 20, 229, 12, 36, 112, 15, 11, 200, 61, 3, 21, 44, 177, 76, 36, 112,
-			15, 11, 200, 60, 210, 25, 28, 113, 76, 36, 112, 15, 11, 200, 28, 83, 148, 4, 113, 76, 36, 112, 15, 10, 199, 26, 147, 7, 4, 117,
-			9, 28, 15, 11, 200, 24, 244, 148, 72, 147, 140, 36, 112, 15, 11, 200, 24, 244, 140, 36, 113, 76, 36, 112, 15, 11, 200, 65, 35, 214,
-			20, 226, 69, 57, 48, 15, 11, 200, 44, 243, 150, 20, 226, 69, 57, 48, 15, 11, 200, 36, 225, 210, 20, 66, 69, 57, 48, 15, 10, 199,
-			26, 147, 7, 4, 117, 9, 28, 15, 0, 9, 198, 16, 82, 213, 66, 148, 128, 15, 10, 199, 84, 226, 79, 56, 148, 205, 20, 15, 10, 199,
-			76, 21, 1, 56, 148, 205, 20, 15, 10, 199, 52, 85, 15, 16, 148, 205, 20, 15, 10, 199, 48, 240, 130, 100, 148, 205, 20, 15, 10, 199,
-			20, 180, 207, 80, 148, 205, 20, 15, 9, 198, 80, 19, 135, 20, 229, 0, 15, 0, 11, 200, 24, 202, 74, 80, 83, 137, 77, 64, 15, 12,
-			201, 56, 81, 6, 124, 193, 5, 48, 145, 192, 15, 12, 201, 28, 80, 146, 124, 178, 197, 48, 145, 192, 15, 12, 201, 24, 244, 134, 125, 33,
-			5, 48, 145, 192, 15, 0, 9, 198, 65, 145, 205, 124, 148, 203, 15, 9, 198, 72, 81, 133, 72, 83, 148, 15, 9, 198, 44, 243, 147, 80,
-			19, 148, 15, 0, 9, 198, 81, 38, 75, 44, 84, 137, 15, 9, 198, 76, 225, 82, 64, 84, 137, 15, 9, 198, 76, 213, 71, 48, 84, 137,
-			15, 9, 198, 76, 180, 137, 88, 84, 137, 15, 10, 199, 88, 147, 4, 73, 225, 9, 28, 15, 10, 199, 80, 147, 6, 124, 193, 9, 28, 15,
-			10, 199, 72, 85, 6, 125, 33, 9, 28, 15, 10, 199, 48, 83, 70, 124, 193, 9, 28, 15, 7, 196, 8, 84, 193, 80, 15, 5, 65, 84,
-			40, 0, 0, 9, 198, 88, 144, 146, 5, 67, 210, 15, 14, 203, 88, 149, 137, 76, 82, 212, 36, 243, 137, 77, 64, 15, 13, 202, 65, 39,
-			204, 36, 210, 78, 5, 34, 83, 80, 15, 9, 198, 32, 82, 211, 4, 115, 206, 15, 8, 198, 48, 82, 211, 36, 179, 206, 9, 198, 64, 192,
-			83, 81, 35, 206, 15, 9, 198, 64, 244, 201, 80, 147, 206, 15, 11, 200, 81, 38, 75, 25, 244, 132, 36, 112, 15, 11, 200, 76, 192, 71,
-			25, 244, 132, 36, 112, 15, 11, 200, 76, 19, 132, 25, 244, 132, 36, 112, 15, 11, 200, 65, 34, 83, 89, 244, 132, 36, 112, 15, 11, 200,
-			36, 225, 19, 81, 243, 132, 36, 112, 15, 11, 200, 33, 84, 203, 89, 244, 132, 36, 112, 15, 15, 204, 29, 81, 22, 20, 192, 133, 32, 17,
-			197, 48, 145, 192, 15, 15, 204, 29, 81, 19, 8, 84, 208, 61, 69, 5, 48, 145, 192, 15, 11, 200, 20, 196, 203, 89, 244, 132, 36, 112,
-			15, 11, 200, 4, 224, 80, 125, 53, 9, 76, 176, 15, 0, 16, 5, 99, 100, 39, 101, 110, 89, 36, 12, 72, 36, 12, 112, 50, 0, 22,
-			71, 64, 244, 212, 36, 195, 15, 56, 48, 4, 108, 89, 72, 37, 55, 57, 6, 108, 68, 0, 15, 10, 199, 72, 85, 15, 73, 50, 79, 56,
-			15, 10, 199, 44, 243, 12, 37, 50, 79, 56, 15, 10, 199, 16, 147, 69, 57, 50, 79, 56, 15, 12, 201, 80, 147, 7, 124, 225, 197, 48,
-			145, 192, 15, 12, 201, 60, 212, 212, 124, 225, 5, 48, 145, 192, 15, 12, 201, 52, 148, 212, 124, 226, 197, 48, 145, 192, 15, 12, 201, 24,
-			244, 148, 73, 241, 5, 48, 145, 192, 15, 12, 201, 24, 244, 147, 53, 241, 5, 48, 145, 192, 15, 12, 201, 24, 244, 135, 124, 225, 197, 48,
-			145, 192, 15, 12, 201, 24, 244, 134, 124, 225, 197, 48, 145, 192, 15, 12, 201, 24, 244, 132, 125, 37, 133, 48, 145, 192, 15, 12, 201, 65,
-			241, 5, 72, 20, 212, 37, 50, 192, 15, 12, 201, 25, 147, 15, 28, 83, 133, 80, 148, 203, 15, 0, 11, 200, 52, 19, 20, 30, 148, 133,
-			72, 144, 15, 9, 198, 65, 35, 212, 60, 179, 204, 15, 9, 198, 28, 198, 67, 21, 35, 204, 15, 16, 205, 44, 243, 147, 81, 37, 75, 80,
-			149, 137, 77, 66, 83, 44, 15, 16, 205, 20, 180, 208, 72, 84, 211, 36, 243, 137, 77, 66, 83, 44, 15, 16, 205, 20, 180, 200, 36, 34,
-			84, 36, 243, 137, 77, 66, 83, 44, 15, 9, 198, 48, 149, 15, 72, 19, 0, 15, 0, 12, 201, 164, 161, 78, 80, 161, 78, 21, 34, 64,
-			15, 9, 198, 77, 66, 75, 44, 84, 137, 15, 9, 198, 76, 181, 76, 44, 84, 137, 15, 9, 198, 17, 34, 75, 44, 84, 137, 15, 14, 203,
-			80, 84, 212, 4, 209, 78, 80, 20, 137, 76, 176, 15, 14, 203, 65, 54, 75, 60, 19, 129, 49, 149, 9, 76, 176, 15, 14, 203, 64, 20,
-			140, 4, 209, 78, 80, 20, 137, 76, 176, 15, 14, 203, 52, 85, 1, 48, 195, 199, 72, 17, 137, 76, 176, 15, 14, 203, 45, 34, 77, 36,
-			224, 76, 37, 53, 9, 76, 176, 15, 14, 203, 8, 18, 212, 21, 34, 79, 48, 241, 201, 76, 176, 15, 9, 198, 72, 83, 69, 16, 149, 77,
-			15, 9, 198, 4, 181, 129, 72, 149, 77, 15, 12, 201, 61, 37, 15, 12, 84, 129, 80, 149, 0, 15, 6, 65, 88, 84, 36, 0, 0, 22,
-			72, 44, 243, 134, 37, 35, 65, 56, 64, 49, 109, 50, 83, 111, 34, 65, 6, 118, 50, 72, 0, 9, 198, 56, 245, 1, 80, 147, 206, 15,
-			9, 198, 45, 33, 65, 80, 147, 206, 15, 9, 198, 16, 245, 1, 80, 147, 206, 15, 9, 198, 76, 183, 204, 52, 84, 137, 15, 15, 204, 80,
-			245, 1, 48, 149, 1, 72, 148, 212, 37, 50, 192, 15, 15, 204, 77, 80, 138, 20, 181, 9, 88, 148, 212, 37, 50, 192, 15, 15, 204, 77,
-			2, 82, 37, 69, 65, 48, 148, 212, 37, 50, 192, 15, 15, 204, 52, 84, 139, 4, 229, 9, 48, 148, 212, 37, 50, 192, 15, 15, 204, 37,
-			51, 204, 5, 66, 79, 56, 148, 212, 37, 50, 192, 15, 15, 204, 24, 245, 15, 29, 32, 77, 52, 85, 18, 37, 50, 192, 15, 15, 204, 16,
-			80, 197, 57, 68, 129, 48, 148, 212, 37, 50, 192, 15, 15, 204, 5, 96, 78, 80, 112, 82, 16, 148, 212, 37, 50, 192, 15, 9, 198, 44,
-			243, 12, 60, 145, 0, 15, 9, 198, 77, 243, 1, 72, 149, 77, 15, 10, 199, 24, 243, 129, 77, 65, 78, 36, 15, 9, 198, 24, 97, 82,
-			52, 21, 0, 15, 0, 10, 199, 77, 147, 80, 61, 50, 79, 56, 15, 10, 199, 72, 80, 197, 57, 50, 79, 56, 15, 10, 199, 36, 226, 204,
-			85, 50, 79, 56, 15, 15, 204, 64, 20, 148, 36, 181, 76, 5, 34, 83, 80, 148, 203, 15, 15, 204, 56, 243, 139, 60, 225, 143, 72, 210,
-			83, 80, 148, 203, 15, 15, 204, 16, 148, 203, 72, 147, 73, 56, 21, 15, 72, 148, 203, 15, 0, 10, 200, 64, 19, 143, 65, 66, 75, 60,
-			224, 11, 200, 77, 147, 139, 72, 245, 18, 60, 224, 15, 11, 200, 65, 35, 198, 21, 52, 201, 60, 224, 15, 11, 200, 44, 243, 139, 49, 84,
-			201, 60, 224, 15, 11, 200, 44, 243, 134, 21, 52, 201, 60, 224, 15, 11, 200, 20, 180, 208, 48, 244, 201, 60, 224, 15, 9, 198, 44, 20,
-			129, 88, 83, 0, 15, 9, 198, 12, 83, 148, 72, 19, 0, 15, 21, 4, 95, 49, 77, 52, 6, 36, 12, 50, 15, 71, 37, 55, 37, 57,
-			6, 39, 12, 50, 0, 0, 7, 196, 64, 244, 169, 76, 15, 9, 198, 4, 227, 210, 20, 180, 201, 15, 15, 204, 77, 147, 139, 72, 240, 217,
-			44, 195, 212, 72, 243, 128, 15, 7, 196, 52, 245, 5, 48, 15, 12, 201, 64, 244, 148, 73, 245, 20, 21, 33, 64, 15, 7, 196, 64, 20,
-			9, 48, 15, 7, 196, 88, 20, 193, 48, 15, 7, 196, 56, 20, 193, 48, 15, 14, 65, 92, 72, 6, 108, 71, 36, 55, 47, 84, 36, 12,
-			0, 22, 1, 92, 6, 108, 65, 84, 115, 50, 72, 89, 81, 34, 4, 108, 89, 72, 51, 35, 37, 0, 27, 0, 8, 197, 64, 243, 80, 165,
-			48, 15, 9, 198, 48, 19, 80, 37, 53, 0, 15, 9, 198, 28, 20, 132, 37, 53, 0, 15, 12, 201, 64, 243, 25, 80, 82, 206, 36, 177,
-			82, 15, 0, 0, 7, 196, 28, 82, 41, 72, 15, 6, 195, 4, 181, 84, 15, 14, 203, 81, 32, 78, 76, 148, 212, 61, 34, 83, 21, 32,
-			15, 10, 199, 17, 34, 76, 4, 117, 9, 28, 15, 9, 198, 76, 21, 5, 48, 194, 84, 15, 9, 198, 37, 52, 129, 20, 194, 84, 15, 10,
-			199, 17, 34, 76, 4, 117, 9, 28, 15, 8, 67, 84, 226, 88, 21, 0, 47, 0, 8, 197, 64, 20, 140, 165, 32, 15, 12, 201, 44, 243,
-			15, 56, 144, 76, 37, 53, 0, 15, 11, 200, 4, 225, 210, 36, 33, 76, 36, 112, 15, 11, 200, 4, 195, 73, 56, 65, 76, 36, 112, 15,
-			9, 198, 48, 20, 135, 21, 52, 197, 15, 7, 196, 20, 243, 9, 80, 15, 7, 65, 96, 115, 49, 89, 0, 16, 4, 95, 49, 77, 49, 36,
-			72, 15, 47, 6, 123, 89, 14, 50, 0, 0, 15, 70, 76, 128, 77, 64, 243, 192, 91, 57, 122, 65, 71, 124, 0, 9, 198, 76, 210, 78,
-			46, 148, 128, 15, 9, 66, 4, 64, 118, 86, 0, 49, 45, 7, 66, 4, 64, 118, 11, 0, 21, 4, 95, 49, 77, 50, 6, 36, 12, 50,
-			15, 65, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 15, 5, 99, 100, 39, 101, 114, 89, 36, 12, 72, 36, 12, 108, 0, 12, 201, 36,
-			225, 137, 56, 149, 9, 88, 148, 203, 15, 12, 201, 33, 145, 210, 61, 50, 207, 64, 148, 203, 15, 21, 4, 95, 49, 77, 51, 6, 36, 12,
-			50, 15, 65, 37, 55, 37, 57, 6, 121, 12, 72, 0, 0, 10, 199, 65, 32, 71, 52, 21, 9, 44, 15, 0, 12, 201, 61, 34, 69, 57,
-			64, 76, 37, 53, 0, 15, 9, 198, 24, 18, 212, 61, 69, 77, 15, 9, 198, 88, 149, 129, 72, 149, 77, 15, 9, 198, 80, 149, 1, 56,
-			149, 77, 15, 9, 198, 28, 84, 129, 56, 149, 77, 15, 12, 201, 16, 85, 5, 72, 210, 78, 4, 229, 0, 15, 5, 65, 100, 129, 0, 0,
-			18, 207, 36, 228, 212, 73, 83, 69, 57, 64, 76, 37, 49, 82, 36, 225, 192, 15, 12, 201, 65, 35, 194, 48, 83, 65, 80, 146, 192, 15,
-			12, 201, 44, 148, 143, 65, 32, 75, 80, 146, 192, 15, 0, 7, 196, 64, 20, 129, 8, 15, 0, 9, 198, 5, 37, 5, 72, 145, 76, 15,
-			13, 202, 45, 34, 77, 36, 224, 76, 37, 53, 9, 44, 15, 0, 11, 200, 80, 149, 21, 48, 84, 137, 56, 112, 15, 11, 200, 76, 176, 76,
-			64, 84, 137, 56, 112, 15, 11, 200, 72, 83, 143, 88, 84, 137, 56, 112, 15, 11, 200, 72, 83, 5, 28, 84, 137, 56, 112, 15, 11, 200,
-			64, 194, 83, 76, 84, 137, 56, 112, 15, 11, 200, 48, 19, 73, 56, 84, 137, 56, 112, 15, 11, 200, 25, 32, 78, 44, 84, 137, 56, 112,
-			15, 11, 200, 21, 96, 75, 84, 84, 137, 56, 112, 15, 11, 200, 16, 83, 5, 28, 84, 137, 56, 112, 15, 11, 200, 5, 69, 1, 44, 84,
-			137, 56, 112, 15, 10, 199, 25, 83, 132, 4, 209, 78, 80, 15, 10, 199, 16, 85, 5, 72, 113, 78, 80, 15, 10, 199, 77, 84, 16, 48,
-			80, 78, 80, 15, 10, 199, 24, 16, 146, 36, 176, 78, 80, 15, 9, 198, 88, 83, 133, 72, 16, 128, 15, 9, 198, 80, 243, 5, 72, 16,
-			128, 15, 7, 65, 104, 89, 115, 47, 0, 0, 15, 66, 5, 64, 118, 15, 107, 118, 0, 81, 104, 97, 118, 101, 32, 9, 198, 48, 16, 146,
-			4, 67, 210, 15, 9, 198, 44, 244, 146, 36, 67, 210, 15, 9, 198, 20, 193, 86, 5, 67, 210, 15, 9, 198, 20, 193, 75, 81, 35, 206,
-			15, 11, 200, 80, 83, 132, 20, 229, 9, 20, 192, 15, 11, 200, 80, 19, 135, 20, 229, 9, 20, 192, 15, 11, 200, 12, 84, 133, 52, 243,
-			137, 20, 192, 15, 11, 200, 64, 244, 201, 80, 147, 206, 20, 192, 15, 11, 200, 60, 178, 193, 76, 147, 206, 20, 192, 15, 11, 200, 25, 83,
-			139, 80, 147, 206, 20, 192, 15, 12, 201, 77, 148, 212, 20, 208, 84, 37, 49, 82, 15, 12, 201, 77, 64, 78, 16, 20, 132, 37, 49, 82,
-			15, 12, 201, 76, 83, 147, 36, 34, 76, 37, 49, 82, 15, 12, 201, 72, 81, 201, 60, 224, 76, 37, 49, 82, 15, 12, 201, 52, 21, 5,
-			72, 144, 76, 37, 49, 82, 15, 12, 201, 52, 20, 203, 84, 194, 78, 37, 49, 82, 15, 12, 201, 48, 82, 211, 36, 176, 76, 37, 49, 82,
-			15, 12, 201, 45, 38, 83, 80, 19, 12, 37, 49, 82, 15, 12, 201, 44, 20, 129, 52, 83, 12, 37, 49, 82, 15, 12, 201, 32, 244, 208,
-			37, 64, 76, 37, 49, 82, 15, 12, 201, 16, 83, 79, 45, 32, 84, 37, 49, 82, 15, 12, 201, 8, 17, 193, 80, 83, 12, 37, 49, 82,
-			15, 12, 201, 4, 178, 204, 36, 208, 84, 37, 49, 82, 15, 7, 196, 4, 113, 82, 20, 15, 11, 200, 44, 243, 5, 77, 65, 82, 60, 192,
-			15, 12, 201, 72, 244, 203, 36, 193, 5, 57, 49, 82, 15, 12, 201, 44, 243, 4, 36, 225, 197, 57, 49, 82, 15, 11, 200, 64, 83, 148,
-			4, 115, 206, 4, 192, 15, 11, 200, 44, 243, 147, 20, 228, 213, 4, 192, 15, 11, 200, 32, 82, 211, 4, 115, 206, 4, 192, 15, 11, 200,
-			16, 148, 133, 45, 67, 210, 4, 192, 15, 5, 194, 5, 64, 72, 0, 10, 199, 36, 212, 12, 61, 50, 79, 56, 15, 10, 199, 44, 193, 80,
-			80, 243, 65, 56, 16, 0, 11, 200, 44, 243, 80, 36, 192, 84, 61, 32, 15, 9, 198, 65, 54, 75, 61, 49, 64, 15, 11, 200, 52, 85,
-			1, 48, 195, 198, 60, 224, 15, 9, 198, 64, 84, 147, 60, 225, 76, 15, 13, 202, 57, 146, 233, 8, 147, 135, 20, 228, 197, 72, 15, 13,
-			202, 32, 170, 82, 72, 147, 135, 20, 228, 197, 72, 15, 11, 200, 76, 19, 22, 4, 67, 210, 4, 224, 15, 11, 200, 72, 19, 132, 73, 84,
-			201, 4, 224, 15, 12, 201, 36, 228, 213, 24, 98, 67, 36, 83, 148, 15, 8, 197, 88, 20, 137, 4, 32, 15, 0, 8, 67, 60, 176, 89,
-			21, 0, 47, 0, 10, 199, 8, 80, 82, 8, 82, 132, 20, 67, 12, 201, 64, 84, 147, 60, 226, 70, 36, 49, 82, 15, 10, 199, 28, 83,
-			65, 48, 147, 132, 20, 15, 10, 199, 25, 148, 147, 80, 147, 132, 20, 15, 8, 197, 29, 32, 67, 36, 192, 15, 8, 197, 25, 32, 71, 36,
-			192, 15, 0, 12, 68, 56, 241, 197, 56, 50, 6, 39, 14, 50, 0, 9, 198, 53, 84, 203, 84, 199, 210, 15, 9, 198, 12, 83, 12, 84,
-			199, 210, 15, 9, 198, 4, 197, 133, 60, 199, 210, 15, 7, 196, 44, 147, 137, 56, 15, 11, 200, 80, 161, 78, 21, 34, 78, 16, 80, 15,
-			11, 200, 77, 98, 71, 21, 34, 78, 16, 80, 15, 11, 200, 44, 243, 147, 84, 194, 78, 16, 80, 15, 11, 200, 44, 84, 148, 20, 210, 78,
-			16, 80, 15, 11, 200, 36, 225, 129, 57, 66, 78, 16, 80, 15, 11, 200, 32, 84, 148, 84, 114, 78, 16, 80, 15, 11, 200, 20, 196, 203,
-			21, 34, 78, 16, 80, 15, 11, 200, 16, 19, 147, 21, 34, 78, 16, 80, 15, 10, 199, 9, 83, 7, 5, 34, 69, 56, 15, 0, 19, 5,
-			102, 46, 101, 107, 115, 83, 108, 36, 81, 89, 36, 65, 48, 13, 55, 0, 25, 16, 69, 24, 192, 75, 60, 224, 83, 55, 117, 49, 6, 108,
-			68, 0, 15, 8, 197, 80, 19, 142, 36, 224, 15, 8, 197, 52, 244, 134, 36, 224, 15, 8, 197, 4, 211, 210, 36, 224, 15, 8, 197, 81,
-			35, 202, 4, 224, 15, 8, 197, 72, 16, 130, 36, 224, 15, 10, 199, 77, 66, 77, 84, 192, 78, 76, 15, 0, 7, 196, 52, 20, 213, 80,
-			15, 11, 200, 72, 80, 75, 80, 147, 206, 125, 32, 15, 0, 11, 66, 12, 16, 89, 37, 34, 49, 117, 0, 25, 9, 198, 125, 66, 79, 48,
-			241, 201, 15, 8, 197, 37, 36, 133, 4, 192, 15, 9, 198, 33, 145, 18, 4, 229, 0, 15, 0, 9, 198, 44, 243, 147, 84, 199, 210, 15,
-			9, 198, 12, 148, 139, 84, 199, 210, 15, 8, 197, 124, 119, 201, 76, 176, 15, 0, 9, 198, 64, 243, 25, 4, 210, 68, 15, 9, 198, 64,
-			84, 212, 36, 50, 68, 15, 8, 197, 76, 20, 132, 36, 224, 15, 8, 197, 16, 147, 216, 36, 224, 15, 8, 197, 40, 244, 132, 4, 224, 15,
-			11, 200, 76, 82, 83, 52, 241, 210, 4, 96, 15, 11, 200, 60, 49, 65, 56, 241, 210, 4, 96, 15, 11, 200, 44, 20, 132, 36, 241, 210,
-			4, 96, 15, 11, 200, 8, 144, 140, 36, 241, 210, 4, 96, 15, 9, 198, 36, 224, 201, 16, 83, 148, 15, 9, 198, 29, 32, 68, 36, 83,
-			148, 15, 9, 198, 16, 242, 213, 52, 83, 148, 15, 8, 197, 8, 192, 68, 4, 224, 16, 9, 68, 25, 33, 65, 44, 21, 0, 47, 0, 9,
-			198, 48, 22, 129, 72, 243, 128, 15, 9, 198, 80, 244, 147, 36, 243, 128, 15, 9, 198, 77, 64, 68, 36, 243, 128, 15, 9, 198, 8, 147,
-			12, 36, 243, 128, 15, 9, 198, 5, 82, 212, 36, 243, 128, 15, 12, 201, 48, 81, 201, 80, 147, 73, 80, 85, 0, 15, 12, 201, 25, 32,
-			84, 21, 35, 137, 80, 85, 0, 15, 9, 198, 52, 17, 206, 60, 194, 69, 15, 9, 198, 44, 193, 78, 60, 66, 69, 15, 9, 198, 77, 147,
-			80, 61, 50, 69, 15, 9, 198, 28, 84, 141, 4, 226, 69, 15, 9, 198, 21, 2, 84, 4, 98, 69, 15, 9, 198, 16, 80, 197, 56, 226,
-			69, 15, 7, 196, 76, 83, 73, 80, 15, 9, 198, 56, 146, 207, 80, 147, 128, 15, 9, 198, 44, 20, 143, 80, 147, 128, 15, 9, 198, 76,
-			20, 129, 12, 83, 128, 15, 9, 198, 64, 19, 129, 52, 19, 128, 15, 12, 201, 80, 85, 18, 5, 96, 76, 20, 229, 0, 15, 0, 9, 198,
-			36, 225, 21, 45, 67, 210, 15, 9, 198, 76, 243, 21, 80, 147, 206, 15, 9, 198, 72, 245, 1, 80, 147, 206, 15, 9, 198, 56, 81, 193,
-			80, 147, 206, 15, 9, 198, 48, 81, 193, 80, 147, 206, 15, 9, 198, 20, 213, 76, 76, 147, 206, 15, 9, 198, 12, 149, 1, 80, 147, 206,
-			15, 14, 203, 64, 19, 31, 60, 229, 15, 48, 241, 201, 76, 176, 15, 11, 200, 44, 19, 129, 4, 231, 201, 76, 176, 15, 11, 200, 44, 19,
-			129, 4, 231, 201, 76, 176, 15, 14, 203, 25, 243, 143, 52, 83, 143, 48, 241, 201, 76, 176, 15, 9, 198, 5, 4, 5, 80, 149, 0, 15,
-			9, 198, 76, 225, 71, 48, 21, 0, 15, 0, 10, 199, 72, 80, 197, 77, 50, 79, 56, 15, 10, 199, 4, 227, 133, 45, 50, 79, 56, 15,
-			10, 199, 4, 67, 73, 77, 50, 79, 56, 15, 9, 198, 52, 19, 133, 72, 194, 71, 15, 9, 198, 49, 146, 211, 4, 194, 71, 15, 9, 198,
-			28, 241, 13, 60, 66, 71, 15, 9, 198, 4, 228, 197, 20, 194, 71, 15, 11, 200, 9, 32, 86, 85, 32, 82, 36, 80, 15, 11, 200, 72,
-			81, 133, 45, 67, 210, 36, 80, 15, 11, 200, 65, 35, 214, 37, 51, 210, 36, 80, 15, 11, 200, 45, 33, 77, 5, 67, 210, 36, 80, 15,
-			7, 196, 16, 147, 129, 72, 15, 10, 199, 72, 84, 208, 20, 181, 1, 8, 15, 10, 199, 56, 81, 204, 36, 113, 65, 8, 15, 0, 6, 195,
-			89, 51, 208, 13, 12, 201, 48, 20, 153, 56, 115, 211, 44, 244, 0, 15, 8, 197, 8, 192, 77, 21, 32, 15, 16, 205, 16, 83, 132, 72,
-			242, 210, 60, 227, 204, 60, 114, 83, 44, 15, 9, 198, 36, 225, 129, 57, 66, 76, 15, 11, 200, 44, 243, 148, 72, 243, 12, 4, 32, 15,
-			11, 200, 36, 224, 67, 12, 84, 20, 4, 32, 15, 12, 69, 12, 243, 142, 61, 32, 49, 109, 50, 109, 0, 0, 9, 198, 5, 53, 18, 60,
-			227, 205, 15, 11, 200, 24, 147, 20, 72, 84, 137, 56, 112, 15, 9, 198, 80, 16, 149, 48, 84, 128, 15, 9, 198, 76, 21, 9, 56, 84,
-			128, 15, 9, 198, 72, 84, 213, 52, 84, 128, 15, 9, 198, 52, 243, 137, 80, 84, 128, 15, 9, 198, 52, 83, 79, 72, 84, 128, 15, 9,
-			198, 45, 83, 85, 48, 84, 128, 15, 9, 198, 36, 228, 197, 72, 84, 128, 15, 9, 198, 36, 226, 1, 48, 84, 128, 15, 9, 198, 36, 195,
-			21, 16, 84, 128, 15, 9, 198, 28, 83, 73, 56, 84, 128, 15, 9, 198, 24, 242, 213, 76, 84, 128, 15, 9, 198, 24, 16, 149, 48, 84,
-			128, 15, 9, 198, 20, 210, 84, 80, 84, 128, 15, 9, 198, 16, 243, 73, 56, 84, 128, 15, 9, 198, 16, 80, 137, 80, 84, 128, 15, 9,
-			198, 5, 52, 9, 72, 84, 128, 15, 9, 198, 4, 195, 21, 16, 84, 128, 15, 9, 198, 4, 67, 208, 80, 84, 128, 15, 14, 203, 72, 81,
-			204, 20, 209, 78, 80, 20, 137, 76, 176, 15, 14, 203, 72, 81, 201, 60, 224, 76, 37, 53, 9, 76, 176, 15, 14, 203, 72, 21, 9, 60,
-			224, 76, 37, 53, 9, 76, 176, 15, 14, 203, 64, 242, 78, 80, 147, 12, 37, 53, 9, 76, 176, 15, 14, 203, 64, 21, 5, 72, 224, 76,
-			37, 53, 9, 76, 176, 15, 14, 203, 56, 21, 9, 60, 224, 76, 37, 53, 9, 76, 176, 15, 14, 203, 44, 19, 142, 36, 32, 76, 37, 53,
-			9, 76, 176, 15, 14, 203, 33, 83, 65, 56, 34, 79, 48, 241, 201, 76, 176, 15, 12, 201, 44, 244, 147, 21, 69, 5, 72, 85, 0, 15,
-			10, 199, 76, 183, 204, 4, 117, 9, 28, 15, 10, 199, 8, 202, 68, 4, 117, 9, 28, 15, 9, 198, 32, 243, 143, 72, 20, 128, 15, 12,
-			201, 44, 243, 77, 20, 228, 213, 72, 16, 128, 15, 0, 11, 200, 65, 34, 78, 12, 148, 9, 20, 192, 15, 9, 198, 17, 42, 77, 52, 84,
-			137, 15, 11, 200, 76, 83, 132, 73, 241, 212, 36, 112, 15, 9, 198, 36, 229, 129, 48, 145, 0, 15, 9, 198, 21, 84, 143, 64, 145, 0,
-			15, 9, 198, 52, 83, 5, 72, 85, 0, 15, 11, 200, 45, 35, 205, 61, 51, 205, 4, 192, 15, 0, 10, 199, 4, 194, 214, 4, 229, 15,
-			72, 15, 11, 200, 88, 83, 133, 72, 243, 15, 28, 144, 15, 11, 200, 61, 35, 137, 80, 243, 15, 28, 144, 15, 11, 200, 60, 67, 206, 80,
-			243, 15, 28, 144, 15, 11, 200, 60, 49, 65, 56, 243, 15, 28, 144, 15, 11, 200, 36, 211, 85, 56, 243, 15, 28, 144, 15, 11, 200, 28,
-			192, 67, 36, 243, 15, 28, 144, 15, 11, 200, 24, 83, 73, 56, 243, 15, 28, 144, 15, 11, 200, 20, 118, 80, 80, 243, 15, 28, 144, 15,
-			12, 201, 44, 243, 132, 37, 66, 79, 56, 83, 0, 15, 7, 196, 85, 33, 197, 72, 15, 7, 196, 52, 245, 133, 72, 15, 12, 201, 120, 33,
-			78, 32, 161, 82, 80, 145, 192, 15, 12, 201, 88, 81, 5, 72, 135, 198, 80, 145, 192, 15, 12, 201, 45, 32, 83, 10, 148, 147, 80, 145,
-			192, 15, 12, 201, 44, 243, 148, 84, 33, 82, 56, 19, 0, 15, 5, 195, 32, 244, 192, 0, 11, 200, 72, 84, 208, 37, 32, 84, 61, 32,
-			15, 11, 200, 45, 83, 20, 37, 96, 84, 61, 32, 15, 12, 201, 80, 84, 141, 36, 227, 204, 60, 114, 64, 15, 12, 201, 5, 52, 217, 72,
-			147, 204, 60, 114, 64, 15, 9, 198, 45, 34, 77, 36, 225, 76, 15, 9, 198, 32, 244, 141, 60, 225, 76, 15, 15, 204, 81, 32, 78, 77,
-			97, 83, 80, 149, 9, 76, 209, 64, 15, 15, 204, 76, 83, 147, 5, 66, 79, 56, 19, 9, 76, 209, 64, 15, 15, 204, 44, 243, 147, 81,
-			37, 75, 80, 149, 137, 76, 209, 64, 15, 15, 204, 25, 83, 132, 4, 209, 78, 80, 19, 9, 76, 209, 64, 15, 15, 204, 20, 180, 200, 36,
-			34, 84, 36, 243, 137, 76, 209, 64, 15, 10, 199, 8, 243, 19, 40, 85, 137, 44, 15, 11, 200, 88, 83, 133, 105, 81, 76, 4, 224, 15,
-			11, 200, 29, 80, 84, 20, 208, 76, 4, 224, 15, 11, 200, 85, 48, 133, 44, 148, 212, 4, 224, 16, 11, 200, 44, 20, 193, 44, 132, 212,
-			4, 224, 16, 9, 198, 77, 147, 143, 16, 19, 0, 15, 0, 13, 69, 12, 19, 1, 37, 48, 49, 117, 55, 6, 115, 0, 7, 196, 76, 84,
-			169, 76, 15, 9, 198, 76, 240, 201, 60, 227, 205, 15, 7, 196, 5, 4, 137, 48, 15, 11, 200, 61, 35, 129, 52, 83, 148, 36, 176, 15,
-			11, 200, 16, 144, 71, 56, 244, 212, 36, 176, 15, 0, 8, 197, 76, 84, 137, 165, 48, 15, 8, 197, 17, 80, 137, 165, 48, 15, 8, 197,
-			12, 20, 137, 165, 48, 15, 9, 198, 80, 16, 200, 37, 53, 0, 15, 9, 198, 52, 20, 152, 37, 53, 0, 15, 9, 198, 16, 17, 1, 37,
-			53, 0, 15, 12, 201, 25, 33, 77, 65, 35, 214, 60, 177, 82, 15, 12, 201, 20, 193, 75, 81, 34, 70, 36, 49, 82, 15, 12, 201, 77,
-			148, 212, 20, 208, 84, 36, 177, 82, 15, 12, 201, 57, 83, 73, 76, 208, 84, 36, 177, 82, 15, 12, 201, 44, 148, 143, 52, 19, 148, 36,
-			177, 82, 15, 12, 201, 44, 20, 137, 76, 208, 84, 36, 177, 82, 15, 12, 201, 5, 53, 9, 28, 208, 84, 36, 177, 82, 15, 9, 198, 65,
-			39, 204, 84, 66, 69, 15, 7, 196, 20, 180, 197, 52, 15, 0, 11, 200, 61, 37, 15, 65, 241, 9, 77, 64, 15, 7, 196, 8, 20, 143,
-			56, 15, 11, 200, 80, 84, 146, 37, 67, 210, 36, 80, 15, 11, 200, 60, 97, 133, 73, 67, 210, 36, 80, 15, 14, 203, 20, 180, 193, 52,
-			147, 129, 80, 244, 137, 84, 208, 15, 14, 4, 95, 51, 88, 111, 47, 34, 6, 119, 83, 47, 14, 0, 0, 9, 198, 52, 85, 5, 61, 34,
-			84, 15, 12, 4, 95, 116, 108, 100, 47, 37, 55, 72, 13, 0, 0, 8, 197, 32, 243, 142, 165, 32, 15, 12, 201, 45, 34, 77, 36, 224,
-			76, 37, 53, 0, 15, 7, 196, 64, 85, 9, 80, 15, 7, 196, 5, 81, 9, 80, 15, 9, 68, 12, 245, 67, 32, 21, 0, 47, 0, 14,
-			203, 44, 243, 147, 81, 37, 75, 80, 149, 137, 77, 64, 15, 14, 203, 25, 83, 132, 4, 209, 78, 80, 19, 9, 77, 64, 15, 11, 200, 4,
-			100, 223, 81, 65, 76, 36, 112, 15, 9, 198, 8, 18, 197, 48, 149, 0, 15, 7, 66, 4, 96, 118, 11, 0, 0, 19, 5, 100, 106, 39,
-			101, 110, 72, 37, 12, 6, 72, 57, 36, 12, 57, 112, 50, 0, 9, 198, 36, 208, 71, 36, 231, 210, 15, 10, 199, 76, 82, 214, 20, 228,
-			197, 72, 15, 10, 199, 64, 84, 148, 85, 32, 133, 72, 15, 10, 199, 52, 20, 212, 85, 32, 133, 72, 15, 10, 199, 44, 244, 146, 84, 212,
-			5, 72, 15, 10, 199, 44, 243, 147, 21, 37, 133, 72, 15, 10, 199, 44, 243, 139, 49, 81, 5, 72, 15, 10, 199, 36, 229, 9, 52, 145,
-			5, 72, 15, 10, 199, 20, 180, 208, 48, 241, 5, 72, 15, 10, 199, 16, 83, 9, 44, 21, 5, 72, 15, 10, 199, 5, 4, 12, 5, 81,
-			5, 72, 15, 10, 199, 8, 84, 135, 20, 228, 197, 72, 15, 0, 17, 67, 33, 96, 68, 84, 117, 15, 89, 108, 0, 49, 81, 115, 195, 165,
-			32, 10, 199, 80, 245, 1, 48, 149, 31, 72, 15, 8, 197, 104, 148, 139, 60, 224, 15, 10, 199, 80, 83, 5, 52, 21, 9, 44, 15, 10,
-			199, 64, 225, 85, 52, 21, 9, 44, 15, 10, 199, 29, 32, 77, 52, 21, 9, 44, 15, 10, 199, 20, 225, 82, 28, 85, 9, 44, 15, 10,
-			199, 24, 192, 84, 84, 193, 78, 76, 15, 9, 198, 56, 245, 137, 12, 144, 84, 15, 9, 198, 24, 16, 146, 36, 176, 84, 15, 9, 198, 12,
-			128, 82, 52, 19, 148, 15, 0, 0, 13, 68, 4, 193, 78, 20, 118, 55, 6, 114, 50, 14, 0, 12, 201, 72, 84, 18, 125, 49, 78, 80,
-			84, 128, 15, 11, 200, 24, 192, 77, 8, 246, 65, 57, 64, 15, 9, 198, 20, 193, 70, 4, 229, 0, 15, 0, 10, 199, 81, 32, 86, 21,
-			53, 5, 72, 15, 10, 199, 72, 84, 208, 20, 181, 5, 72, 15, 9, 198, 65, 39, 195, 37, 49, 82, 15, 10, 199, 65, 34, 79, 72, 149,
-			5, 72, 15, 10, 199, 64, 244, 212, 16, 21, 5, 72, 15, 10, 199, 64, 84, 147, 37, 53, 5, 72, 15, 10, 199, 52, 83, 147, 81, 37,
-			69, 72, 15, 10, 199, 44, 243, 147, 81, 37, 69, 72, 15, 10, 199, 44, 242, 78, 12, 145, 5, 72, 15, 10, 199, 36, 228, 212, 37, 69,
-			69, 72, 15, 9, 198, 29, 39, 195, 37, 49, 82, 15, 10, 199, 24, 197, 79, 72, 145, 5, 72, 15, 10, 199, 21, 50, 193, 52, 245, 5,
-			72, 15, 10, 199, 20, 180, 212, 73, 81, 5, 72, 15, 10, 199, 20, 180, 203, 49, 81, 5, 72, 15, 10, 199, 5, 53, 18, 36, 225, 197,
-			72, 15, 9, 198, 46, 145, 197, 57, 49, 82, 15, 11, 200, 56, 81, 204, 36, 113, 78, 12, 80, 15, 11, 200, 44, 243, 148, 20, 224, 78,
-			12, 80, 15, 11, 200, 21, 128, 197, 48, 193, 78, 12, 80, 15, 11, 200, 16, 145, 134, 21, 33, 78, 12, 80, 15, 11, 200, 5, 52, 201,
-			77, 64, 78, 12, 80, 15, 7, 196, 44, 20, 1, 8, 15, 11, 200, 64, 84, 147, 36, 99, 1, 28, 80, 15, 0, 18, 70, 52, 19, 129,
-			29, 80, 64, 65, 117, 50, 6, 117, 12, 81, 58, 117, 0, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 53, 0, 15, 9, 198,
-			72, 149, 15, 72, 225, 76, 15, 8, 197, 44, 20, 211, 4, 32, 15, 0, 8, 197, 20, 194, 84, 125, 32, 15, 12, 201, 8, 144, 140, 36,
-			245, 5, 44, 20, 128, 15, 9, 198, 72, 84, 1, 72, 16, 128, 15, 9, 198, 56, 21, 137, 28, 16, 128, 15, 9, 198, 37, 36, 137, 80,
-			16, 128, 15, 0, 12, 201, 72, 21, 9, 60, 224, 76, 37, 49, 82, 15, 12, 201, 65, 54, 75, 60, 195, 199, 37, 49, 82, 15, 12, 201,
-			65, 35, 204, 21, 64, 82, 37, 49, 82, 15, 12, 201, 65, 34, 77, 37, 66, 86, 37, 49, 82, 15, 12, 201, 64, 84, 147, 60, 224, 76,
-			37, 49, 82, 15, 12, 201, 64, 20, 129, 48, 193, 76, 37, 49, 82, 15, 12, 201, 60, 34, 133, 45, 66, 86, 37, 49, 82, 15, 12, 201,
-			56, 21, 9, 60, 224, 76, 37, 49, 82, 15, 12, 201, 52, 85, 1, 52, 244, 134, 61, 49, 82, 15, 12, 201, 52, 20, 135, 36, 224, 76,
-			37, 49, 82, 15, 12, 201, 45, 35, 206, 60, 195, 199, 37, 49, 82, 15, 12, 201, 45, 34, 77, 36, 224, 76, 37, 49, 82, 15, 12, 201,
-			44, 243, 77, 84, 224, 76, 37, 49, 82, 15, 12, 201, 44, 20, 129, 45, 65, 82, 37, 49, 82, 15, 12, 201, 44, 19, 142, 36, 32, 76,
-			37, 49, 82, 15, 12, 201, 36, 229, 5, 72, 224, 76, 37, 49, 82, 15, 12, 201, 24, 19, 73, 48, 144, 82, 37, 49, 82, 15, 12, 201,
-			21, 70, 77, 60, 195, 199, 37, 49, 82, 15, 12, 201, 20, 97, 133, 45, 66, 86, 37, 49, 82, 15, 12, 201, 12, 243, 80, 85, 65, 82,
-			37, 49, 82, 15, 12, 201, 4, 209, 82, 36, 176, 78, 37, 49, 82, 15, 8, 197, 25, 34, 71, 36, 64, 15, 12, 201, 32, 84, 142, 36,
-			225, 197, 57, 49, 82, 15, 12, 201, 21, 48, 138, 21, 33, 197, 57, 49, 82, 15, 7, 196, 16, 83, 142, 20, 76, 0, 10, 199, 88, 144,
-			212, 61, 34, 65, 56, 15, 10, 199, 76, 19, 65, 72, 149, 1, 56, 15, 10, 199, 32, 84, 140, 61, 98, 65, 56, 15, 11, 200, 124, 181,
-			137, 88, 19, 5, 57, 64, 15, 10, 199, 76, 19, 65, 72, 149, 1, 56, 16, 9, 198, 36, 212, 5, 16, 19, 147, 15, 0, 9, 198, 60,
-			97, 137, 12, 145, 76, 15, 11, 200, 12, 244, 212, 5, 34, 67, 4, 224, 15, 12, 201, 81, 32, 78, 76, 49, 78, 16, 83, 148, 15, 12,
-			201, 36, 229, 5, 73, 97, 78, 36, 83, 148, 15, 11, 200, 64, 243, 25, 85, 33, 84, 4, 224, 16, 0, 13, 202, 12, 128, 84, 20, 21,
-			66, 72, 144, 78, 80, 15, 0, 10, 199, 80, 19, 65, 72, 147, 132, 20, 15, 10, 199, 72, 149, 129, 48, 147, 132, 20, 15, 10, 199, 65,
-			34, 79, 72, 147, 132, 20, 15, 8, 197, 52, 148, 211, 36, 192, 15, 15, 204, 88, 244, 132, 36, 225, 194, 61, 33, 197, 57, 49, 82, 15,
-			15, 204, 76, 176, 78, 16, 84, 130, 61, 33, 197, 57, 49, 82, 15, 9, 198, 12, 19, 69, 72, 245, 78, 15, 14, 203, 72, 82, 207, 57,
-			96, 76, 21, 48, 197, 57, 64, 15, 10, 199, 80, 19, 80, 60, 224, 68, 20, 15, 10, 199, 72, 83, 79, 84, 192, 68, 20, 15, 10, 199,
-			52, 20, 141, 20, 192, 68, 20, 15, 10, 199, 44, 243, 15, 56, 224, 68, 20, 15, 10, 199, 44, 20, 130, 60, 224, 68, 20, 15, 10, 199,
-			24, 20, 150, 20, 192, 68, 20, 15, 10, 199, 21, 52, 12, 4, 224, 68, 20, 15, 10, 199, 12, 131, 203, 60, 192, 68, 20, 15, 10, 199,
-			8, 20, 212, 60, 224, 68, 20, 15, 10, 199, 4, 208, 129, 77, 48, 68, 20, 15, 0, 11, 200, 77, 65, 82, 20, 241, 210, 4, 208, 15,
-			11, 200, 76, 82, 83, 52, 241, 210, 4, 208, 15, 11, 200, 61, 33, 193, 56, 145, 210, 4, 208, 15, 11, 200, 44, 20, 132, 36, 241, 210,
-			4, 208, 15, 7, 196, 60, 49, 65, 56, 16, 0, 20, 72, 8, 82, 71, 56, 85, 4, 20, 160, 71, 116, 68, 6, 114, 72, 122, 57, 0,
-			66, 8, 197, 84, 226, 83, 60, 224, 15, 8, 197, 61, 5, 9, 60, 224, 15, 8, 197, 48, 81, 201, 60, 224, 15, 11, 70, 76, 178, 78,
-			32, 80, 68, 21, 0, 47, 0, 0, 8, 197, 17, 83, 208, 60, 192, 15, 5, 194, 16, 16, 72, 0, 7, 196, 52, 84, 193, 56, 16, 0,
-			8, 197, 64, 84, 147, 60, 224, 15, 8, 197, 64, 192, 84, 36, 224, 15, 8, 197, 44, 19, 204, 36, 224, 15, 8, 197, 16, 83, 148, 36,
-			224, 15, 8, 197, 8, 84, 140, 36, 224, 15, 8, 197, 64, 192, 84, 36, 224, 15, 8, 197, 8, 84, 140, 36, 224, 15, 8, 197, 45, 83,
-			80, 4, 224, 16, 0, 9, 198, 8, 50, 75, 61, 34, 69, 15, 9, 198, 56, 84, 20, 84, 226, 69, 15, 7, 196, 21, 97, 78, 80, 15,
-			9, 68, 21, 97, 78, 80, 21, 0, 47, 0, 9, 198, 56, 144, 143, 56, 149, 0, 15, 9, 198, 14, 147, 9, 8, 21, 0, 15, 9, 198,
-			4, 71, 203, 88, 21, 0, 15, 0, 9, 198, 16, 83, 1, 29, 66, 71, 15, 9, 198, 4, 68, 212, 4, 66, 71, 15, 9, 198, 16, 83,
-			1, 29, 66, 71, 15, 10, 199, 44, 243, 134, 37, 50, 193, 8, 15, 0, 12, 201, 44, 19, 5, 40, 67, 211, 44, 244, 0, 15, 12, 201,
-			28, 19, 22, 4, 227, 211, 44, 244, 0, 15, 11, 200, 24, 20, 137, 77, 242, 83, 52, 80, 15, 8, 67, 81, 34, 80, 21, 0, 47, 0,
-			9, 198, 52, 85, 1, 24, 244, 128, 15, 9, 198, 16, 80, 201, 76, 244, 128, 15, 9, 198, 72, 80, 75, 80, 244, 128, 15, 9, 198, 88,
-			81, 197, 80, 84, 128, 15, 9, 198, 88, 19, 21, 80, 84, 128, 15, 9, 198, 80, 245, 67, 32, 84, 128, 15, 9, 198, 77, 1, 78, 16,
-			84, 128, 15, 9, 198, 76, 147, 85, 48, 84, 128, 15, 9, 198, 76, 84, 15, 56, 84, 128, 15, 9, 198, 76, 19, 21, 80, 84, 128, 15,
-			9, 198, 76, 16, 143, 80, 84, 128, 15, 9, 198, 73, 83, 83, 80, 84, 128, 15, 9, 198, 72, 148, 201, 44, 84, 128, 15, 9, 198, 72,
-			85, 137, 16, 84, 128, 15, 9, 198, 72, 84, 207, 56, 84, 128, 15, 9, 198, 72, 84, 201, 16, 84, 128, 15, 9, 198, 72, 83, 5, 28,
-			84, 128, 15, 9, 198, 72, 82, 217, 48, 84, 128, 15, 9, 198, 72, 82, 137, 12, 84, 128, 15, 9, 198, 72, 81, 193, 48, 84, 128, 15,
-			9, 198, 72, 81, 133, 72, 84, 128, 15, 9, 198, 72, 81, 9, 28, 84, 128, 15, 9, 198, 72, 80, 201, 80, 84, 128, 15, 9, 198, 65,
-			33, 77, 36, 84, 128, 15, 9, 198, 64, 245, 83, 76, 84, 128, 15, 9, 198, 64, 242, 213, 48, 84, 128, 15, 9, 198, 64, 21, 9, 56,
-			84, 128, 15, 9, 198, 61, 33, 9, 56, 84, 128, 15, 9, 198, 61, 5, 9, 52, 84, 128, 15, 9, 198, 61, 4, 15, 56, 84, 128, 15,
-			9, 198, 61, 1, 1, 80, 84, 128, 15, 9, 198, 52, 81, 9, 80, 84, 128, 15, 9, 198, 52, 20, 143, 16, 84, 128, 15, 9, 198, 48,
-			144, 201, 80, 84, 128, 15, 9, 198, 48, 19, 73, 56, 84, 128, 15, 9, 198, 44, 195, 193, 44, 84, 128, 15, 9, 198, 44, 194, 67, 32,
-			84, 128, 15, 9, 198, 36, 229, 137, 80, 84, 128, 15, 9, 198, 36, 224, 201, 80, 84, 128, 15, 9, 198, 36, 212, 15, 56, 84, 128, 15,
-			9, 198, 32, 243, 143, 72, 84, 128, 15, 9, 198, 32, 21, 129, 72, 84, 128, 15, 9, 198, 29, 32, 83, 76, 84, 128, 15, 9, 198, 25,
-			32, 80, 64, 84, 128, 15, 9, 198, 20, 225, 193, 28, 84, 128, 15, 9, 198, 16, 85, 143, 88, 84, 128, 15, 9, 198, 16, 84, 9, 48,
-			84, 128, 15, 9, 198, 16, 83, 5, 28, 84, 128, 15, 9, 198, 16, 80, 201, 52, 84, 128, 15, 9, 198, 16, 80, 201, 16, 84, 128, 15,
-			9, 198, 12, 148, 197, 48, 84, 128, 15, 9, 198, 12, 128, 82, 52, 84, 128, 15, 9, 198, 12, 128, 82, 28, 84, 128, 15, 9, 198, 12,
-			128, 78, 28, 84, 128, 15, 9, 198, 12, 83, 148, 72, 84, 128, 15, 9, 198, 12, 17, 13, 36, 84, 128, 15, 9, 198, 9, 32, 73, 76,
-			84, 128, 15, 9, 198, 5, 52, 213, 72, 84, 128, 15, 9, 198, 5, 36, 137, 88, 84, 128, 15, 9, 198, 4, 197, 5, 72, 84, 128, 15,
-			9, 198, 4, 69, 137, 76, 84, 128, 15, 9, 198, 164, 179, 206, 60, 210, 64, 15, 9, 198, 16, 144, 84, 21, 35, 73, 15, 9, 198, 57,
-			82, 204, 20, 20, 128, 15, 9, 198, 53, 144, 78, 52, 20, 128, 15, 9, 198, 48, 19, 73, 56, 20, 128, 15, 9, 198, 5, 97, 79, 48,
-			20, 128, 15, 14, 70, 33, 99, 210, 24, 244, 128, 84, 125, 83, 6, 109, 0, 0, 10, 199, 48, 147, 78, 60, 195, 199, 36, 15, 10, 199,
-			29, 32, 70, 60, 195, 199, 36, 15, 10, 199, 28, 83, 77, 60, 195, 199, 36, 15, 10, 199, 5, 81, 9, 60, 195, 199, 36, 15, 9, 198,
-			52, 19, 1, 44, 149, 0, 15, 11, 200, 65, 35, 206, 60, 210, 78, 4, 192, 15, 0, 11, 200, 64, 243, 9, 80, 243, 15, 28, 144, 15,
-			11, 200, 52, 85, 15, 16, 243, 15, 28, 144, 15, 11, 200, 45, 34, 83, 80, 243, 15, 28, 144, 15, 11, 200, 21, 50, 193, 80, 243, 15,
-			28, 144, 15, 11, 200, 20, 229, 15, 52, 243, 15, 28, 144, 15, 11, 200, 20, 208, 146, 100, 243, 15, 28, 144, 15, 7, 196, 88, 245, 5,
-			72, 15, 7, 196, 72, 81, 197, 72, 15, 7, 196, 61, 5, 5, 72, 15, 7, 196, 48, 81, 197, 72, 15, 7, 196, 41, 81, 197, 72, 15,
-			7, 196, 12, 149, 5, 72, 15, 11, 200, 32, 85, 5, 72, 243, 143, 52, 144, 15, 11, 200, 25, 148, 201, 60, 115, 143, 52, 144, 15, 14,
-			203, 64, 21, 18, 36, 20, 139, 4, 194, 83, 52, 80, 15, 14, 203, 64, 20, 148, 36, 181, 76, 5, 34, 83, 52, 80, 15, 7, 196, 88,
-			81, 193, 72, 15, 7, 196, 68, 21, 1, 72, 15, 7, 196, 44, 21, 1, 72, 15, 0, 18, 207, 17, 32, 77, 4, 67, 203, 84, 209, 78,
-			80, 20, 137, 76, 209, 64, 15, 11, 200, 12, 21, 1, 48, 243, 137, 20, 224, 15, 11, 200, 64, 20, 129, 29, 80, 89, 4, 224, 15, 11,
-			200, 52, 81, 9, 80, 84, 146, 4, 224, 16, 9, 198, 45, 38, 83, 80, 19, 0, 15, 14, 73, 8, 80, 67, 33, 99, 204, 48, 86, 64,
-			21, 0, 47, 0, 9, 198, 4, 229, 9, 56, 243, 73, 15, 12, 201, 16, 243, 73, 12, 147, 5, 72, 85, 0, 15, 0, 10, 199, 44, 244,
-			205, 60, 195, 199, 36, 15, 9, 198, 41, 81, 1, 37, 53, 0, 15, 8, 197, 25, 34, 86, 60, 192, 15, 9, 198, 4, 65, 78, 60, 145,
-			0, 15, 8, 197, 25, 37, 71, 4, 192, 15, 0, 12, 201, 88, 84, 147, 36, 243, 133, 72, 147, 135, 15, 12, 201, 72, 81, 133, 72, 83,
-			148, 36, 83, 0, 15, 10, 199, 53, 82, 1, 52, 81, 1, 56, 15, 7, 196, 80, 149, 1, 56, 16, 12, 201, 16, 147, 69, 57, 50, 79,
-			56, 19, 0, 15, 0, 9, 198, 88, 149, 18, 36, 243, 0, 15, 0, 11, 200, 80, 245, 67, 32, 84, 137, 56, 112, 15, 11, 200, 77, 64,
-			84, 84, 84, 137, 56, 112, 15, 11, 200, 76, 180, 129, 88, 84, 137, 56, 112, 15, 11, 200, 76, 176, 78, 16, 84, 137, 56, 112, 15, 11,
-			200, 76, 176, 77, 24, 84, 137, 56, 112, 15, 11, 200, 73, 83, 83, 80, 84, 137, 56, 112, 15, 11, 200, 72, 81, 149, 76, 84, 137, 56,
-			112, 15, 11, 200, 72, 81, 133, 72, 84, 137, 56, 112, 15, 11, 200, 72, 81, 21, 12, 84, 137, 56, 112, 15, 11, 200, 72, 81, 9, 28,
-			84, 137, 56, 112, 15, 11, 200, 64, 242, 78, 80, 84, 137, 56, 112, 15, 11, 200, 64, 192, 71, 36, 84, 137, 56, 112, 15, 11, 200, 64,
-			21, 9, 56, 84, 137, 56, 112, 15, 11, 200, 64, 20, 129, 24, 84, 137, 56, 112, 15, 11, 200, 64, 20, 129, 16, 84, 137, 56, 112, 15,
-			11, 200, 64, 19, 133, 48, 84, 137, 56, 112, 15, 11, 200, 61, 5, 9, 52, 84, 137, 56, 112, 15, 11, 200, 52, 245, 9, 88, 84, 137,
-			56, 112, 15, 11, 200, 45, 83, 85, 48, 84, 137, 56, 112, 15, 11, 200, 44, 20, 137, 44, 84, 137, 56, 112, 15, 11, 200, 44, 19, 143,
-			56, 84, 137, 56, 112, 15, 11, 200, 44, 17, 13, 36, 84, 137, 56, 112, 15, 11, 200, 40, 243, 135, 48, 84, 137, 56, 112, 15, 11, 200,
-			36, 226, 84, 36, 84, 137, 56, 112, 15, 11, 200, 36, 225, 137, 12, 84, 137, 56, 112, 15, 11, 200, 36, 115, 143, 72, 84, 137, 56, 112,
-			15, 11, 200, 32, 243, 143, 72, 84, 137, 56, 112, 15, 11, 200, 29, 37, 80, 64, 84, 137, 56, 112, 15, 11, 200, 28, 83, 133, 72, 84,
-			137, 56, 112, 15, 11, 200, 24, 16, 149, 48, 84, 137, 56, 112, 15, 11, 200, 20, 228, 201, 48, 84, 137, 56, 112, 15, 11, 200, 20, 208,
-			76, 40, 84, 137, 56, 112, 15, 11, 200, 20, 181, 137, 64, 84, 137, 56, 112, 15, 11, 200, 17, 81, 76, 48, 84, 137, 56, 112, 15, 11,
-			200, 16, 243, 73, 56, 84, 137, 56, 112, 15, 11, 200, 16, 85, 143, 88, 84, 137, 56, 112, 15, 11, 200, 16, 84, 137, 88, 84, 137, 56,
-			112, 15, 11, 200, 16, 80, 201, 52, 84, 137, 56, 112, 15, 11, 200, 16, 80, 137, 80, 84, 137, 56, 112, 15, 11, 200, 12, 83, 148, 72,
-			84, 137, 56, 112, 15, 11, 200, 12, 17, 13, 36, 84, 137, 56, 112, 15, 11, 200, 9, 35, 195, 32, 84, 137, 56, 112, 15, 11, 200, 9,
-			32, 73, 76, 84, 137, 56, 112, 15, 11, 200, 4, 192, 82, 52, 84, 137, 56, 112, 15, 11, 200, 4, 181, 9, 88, 84, 137, 56, 112, 15,
-			11, 200, 4, 69, 137, 76, 84, 137, 56, 112, 15, 11, 200, 4, 35, 210, 80, 84, 137, 56, 112, 15, 11, 200, 4, 35, 206, 56, 84, 137,
-			56, 112, 15, 9, 198, 64, 243, 25, 24, 243, 137, 15, 19, 70, 64, 84, 5, 72, 243, 137, 48, 36, 48, 13, 34, 6, 39, 50, 37, 0,
-			15, 10, 199, 65, 241, 1, 28, 241, 201, 44, 15, 0, 9, 198, 48, 19, 65, 37, 53, 0, 15, 20, 66, 12, 64, 89, 36, 72, 36, 51,
-			6, 108, 65, 0, 44, 15, 81, 114, 111, 109, 32, 9, 198, 17, 147, 129, 52, 149, 0, 15, 8, 197, 72, 17, 9, 4, 192, 15, 8, 197,
-			24, 147, 9, 4, 192, 15, 0, 7, 196, 77, 2, 79, 56, 15, 12, 201, 44, 243, 148, 72, 18, 5, 72, 147, 135, 15, 10, 199, 81, 32,
-			78, 76, 149, 5, 72, 15, 10, 199, 72, 85, 129, 48, 145, 5, 72, 15, 10, 199, 72, 85, 15, 84, 50, 5, 72, 15, 10, 199, 72, 84,
-			212, 37, 69, 69, 72, 15, 10, 199, 72, 81, 140, 20, 181, 5, 72, 15, 10, 199, 65, 35, 204, 60, 225, 197, 72, 15, 10, 199, 65, 35,
-			199, 72, 81, 5, 72, 15, 10, 199, 44, 244, 212, 84, 210, 69, 72, 15, 10, 199, 44, 243, 147, 80, 21, 5, 72, 15, 10, 199, 44, 243,
-			142, 20, 181, 5, 72, 15, 10, 199, 44, 243, 80, 61, 53, 5, 72, 15, 10, 199, 32, 16, 137, 48, 149, 5, 72, 15, 10, 199, 24, 147,
-			138, 85, 53, 5, 72, 15, 10, 199, 24, 84, 141, 20, 229, 5, 72, 15, 10, 199, 20, 97, 133, 45, 69, 69, 72, 15, 10, 199, 4, 48,
-			197, 57, 69, 69, 72, 15, 10, 199, 4, 36, 212, 72, 18, 5, 72, 15, 10, 199, 36, 70, 76, 48, 146, 197, 72, 15, 10, 199, 8, 245,
-			1, 56, 146, 197, 72, 15, 7, 196, 72, 244, 201, 56, 15, 7, 196, 88, 83, 1, 56, 16, 0, 8, 197, 76, 244, 132, 36, 224, 15, 8,
-			197, 64, 82, 212, 36, 224, 15, 8, 197, 28, 20, 132, 36, 224, 15, 8, 197, 4, 226, 76, 36, 224, 15, 9, 198, 64, 244, 212, 84, 192,
-			84, 15, 9, 198, 64, 21, 18, 60, 224, 84, 15, 9, 198, 44, 243, 147, 84, 192, 84, 15, 9, 198, 44, 243, 66, 36, 224, 84, 15, 9,
-			198, 44, 20, 130, 60, 224, 84, 15, 9, 198, 44, 19, 132, 36, 64, 84, 15, 9, 198, 36, 229, 5, 72, 224, 84, 15, 9, 198, 16, 144,
-			75, 60, 224, 84, 15, 9, 198, 16, 83, 79, 45, 32, 84, 15, 9, 198, 8, 148, 213, 48, 96, 84, 15, 9, 198, 4, 68, 133, 77, 48,
-			84, 15, 8, 197, 80, 20, 148, 4, 224, 16, 8, 197, 65, 35, 208, 4, 224, 16, 8, 197, 64, 192, 84, 4, 224, 16, 8, 197, 49, 242,
-			193, 28, 80, 15, 0, 9, 198, 65, 148, 143, 52, 19, 137, 15, 9, 198, 44, 243, 80, 4, 115, 137, 15, 9, 198, 44, 18, 207, 24, 243,
-			137, 15, 4, 193, 128, 43, 0, 8, 197, 164, 179, 204, 60, 112, 15, 9, 198, 44, 242, 31, 72, 84, 128, 15, 9, 198, 4, 66, 31, 72,
-			84, 128, 15, 0, 10, 199, 77, 80, 148, 72, 18, 5, 72, 15, 10, 199, 72, 85, 129, 56, 50, 5, 72, 15, 10, 199, 72, 84, 18, 20,
-			210, 69, 72, 15, 10, 199, 64, 20, 212, 36, 50, 5, 72, 15, 10, 199, 44, 243, 134, 37, 50, 197, 72, 15, 10, 199, 44, 20, 18, 36,
-			243, 5, 72, 15, 10, 199, 36, 225, 11, 61, 2, 69, 72, 15, 10, 199, 20, 180, 212, 72, 18, 5, 72, 15, 10, 199, 16, 148, 212, 72,
-			18, 5, 72, 15, 10, 199, 16, 148, 211, 60, 50, 69, 72, 15, 10, 199, 16, 84, 133, 29, 83, 5, 72, 15, 10, 199, 16, 84, 18, 20,
-			50, 69, 72, 15, 10, 199, 12, 128, 77, 9, 34, 69, 72, 15, 10, 199, 4, 208, 76, 28, 19, 69, 72, 15, 10, 199, 4, 32, 146, 21,
-			98, 69, 72, 15, 11, 200, 76, 84, 150, 37, 68, 137, 12, 80, 15, 11, 200, 44, 244, 144, 84, 193, 78, 12, 80, 15, 11, 200, 44, 243,
-			132, 60, 193, 78, 12, 80, 15, 11, 200, 44, 243, 16, 61, 37, 1, 28, 80, 15, 0, 9, 198, 12, 245, 84, 85, 33, 64, 15, 9, 198,
-			29, 32, 86, 85, 33, 64, 15, 9, 198, 25, 34, 83, 85, 33, 64, 15, 9, 198, 88, 149, 18, 36, 225, 64, 15, 9, 198, 80, 19, 10,
-			21, 33, 64, 15, 9, 198, 77, 83, 77, 21, 33, 64, 15, 9, 198, 65, 83, 19, 21, 33, 64, 15, 9, 198, 64, 192, 78, 21, 33, 64,
-			15, 9, 198, 48, 147, 138, 21, 33, 64, 15, 13, 202, 57, 244, 212, 44, 243, 77, 4, 225, 5, 72, 15, 9, 198, 28, 20, 142, 21, 33,
-			64, 15, 9, 198, 25, 34, 83, 21, 33, 64, 15, 9, 198, 21, 64, 71, 21, 33, 64, 15, 9, 198, 17, 32, 71, 21, 33, 64, 15, 9,
-			198, 8, 20, 130, 21, 33, 64, 15, 9, 198, 24, 245, 82, 4, 113, 64, 15, 0, 8, 197, 80, 84, 142, 125, 32, 15, 9, 198, 56, 244,
-			212, 4, 193, 201, 15, 11, 200, 60, 101, 1, 48, 211, 204, 60, 112, 15, 11, 200, 48, 20, 153, 56, 115, 204, 60, 112, 15, 12, 201, 88,
-			149, 1, 52, 147, 137, 76, 84, 128, 15, 12, 201, 84, 225, 5, 73, 101, 82, 16, 84, 128, 15, 12, 201, 81, 34, 86, 36, 19, 9, 76,
-			84, 128, 15, 12, 201, 81, 32, 85, 52, 21, 9, 76, 84, 128, 15, 12, 201, 81, 32, 78, 77, 3, 210, 80, 84, 128, 15, 12, 201, 81,
-			32, 78, 76, 101, 78, 16, 84, 128, 15, 12, 201, 81, 32, 78, 76, 99, 210, 52, 84, 128, 15, 12, 201, 81, 32, 78, 76, 49, 78, 16,
-			84, 128, 15, 12, 201, 80, 84, 141, 60, 116, 129, 24, 84, 128, 15, 12, 201, 80, 80, 84, 72, 19, 9, 76, 84, 128, 15, 12, 201, 77,
-			147, 139, 72, 243, 137, 76, 84, 128, 15, 12, 201, 77, 68, 129, 80, 145, 137, 12, 84, 128, 15, 12, 201, 77, 66, 71, 52, 21, 9, 76,
-			84, 128, 15, 12, 201, 77, 65, 82, 20, 245, 25, 64, 84, 128, 15, 12, 201, 77, 1, 67, 36, 19, 9, 76, 84, 128, 15, 12, 201, 76,
-			176, 78, 16, 19, 9, 76, 84, 128, 15, 12, 201, 76, 147, 80, 48, 145, 137, 12, 84, 128, 15, 12, 201, 76, 82, 211, 84, 19, 9, 76,
-			84, 128, 15, 12, 201, 76, 49, 78, 60, 116, 129, 24, 84, 128, 15, 12, 201, 76, 19, 69, 45, 50, 83, 80, 84, 128, 15, 12, 201, 72,
-			83, 210, 28, 19, 137, 76, 84, 128, 15, 12, 201, 72, 82, 207, 53, 1, 78, 76, 84, 128, 15, 12, 201, 72, 82, 207, 52, 208, 78, 16,
-			84, 128, 15, 12, 201, 72, 17, 9, 44, 19, 9, 76, 84, 128, 15, 12, 201, 65, 35, 208, 4, 112, 78, 16, 84, 128, 15, 12, 201, 64,
-			244, 21, 48, 20, 137, 76, 84, 128, 15, 12, 201, 64, 20, 212, 21, 84, 137, 76, 84, 128, 15, 12, 201, 64, 20, 140, 4, 209, 78, 80,
-			84, 128, 15, 12, 201, 56, 243, 73, 56, 19, 9, 76, 84, 128, 15, 12, 201, 56, 85, 84, 72, 19, 9, 76, 84, 128, 15, 12, 201, 56,
-			21, 21, 72, 19, 9, 76, 84, 128, 15, 12, 201, 53, 84, 201, 44, 19, 9, 76, 84, 128, 15, 12, 201, 52, 18, 193, 16, 19, 73, 76,
-			84, 128, 15, 12, 201, 48, 144, 133, 72, 19, 9, 76, 84, 128, 15, 12, 201, 44, 244, 133, 60, 116, 129, 24, 84, 128, 15, 12, 201, 72,
-			82, 207, 57, 53, 18, 84, 84, 128, 15, 12, 201, 44, 243, 132, 37, 66, 79, 56, 84, 128, 15, 12, 201, 44, 195, 210, 60, 99, 210, 52,
-			84, 128, 15, 12, 201, 44, 192, 83, 76, 145, 137, 12, 84, 128, 15, 12, 201, 44, 21, 1, 48, 241, 201, 76, 84, 128, 15, 12, 201, 44,
-			20, 9, 80, 19, 9, 76, 84, 128, 15, 12, 201, 40, 245, 82, 56, 19, 9, 76, 84, 128, 15, 12, 201, 28, 83, 137, 57, 97, 83, 80,
-			84, 128, 15, 12, 201, 36, 229, 5, 73, 5, 78, 28, 84, 128, 15, 12, 201, 36, 229, 5, 72, 99, 204, 36, 84, 128, 15, 12, 201, 36,
-			226, 84, 36, 19, 9, 76, 84, 128, 15, 12, 201, 36, 225, 15, 45, 68, 137, 56, 84, 128, 15, 12, 201, 36, 225, 5, 45, 49, 82, 12,
-			84, 128, 15, 12, 201, 36, 212, 12, 20, 209, 78, 80, 84, 128, 15, 12, 201, 36, 211, 79, 8, 147, 9, 76, 84, 128, 15, 12, 201, 36,
-			65, 79, 48, 241, 201, 76, 84, 128, 15, 12, 201, 32, 245, 141, 21, 53, 5, 72, 84, 128, 15, 12, 201, 32, 243, 79, 48, 241, 201, 76,
-			84, 128, 15, 12, 201, 28, 192, 77, 61, 84, 137, 76, 84, 128, 15, 12, 201, 28, 83, 133, 72, 19, 9, 76, 84, 128, 15, 12, 201, 25,
-			32, 84, 21, 35, 137, 76, 84, 128, 15, 12, 201, 24, 195, 210, 4, 116, 129, 24, 84, 128, 15, 12, 201, 20, 180, 212, 72, 21, 129, 28,
-			84, 128, 15, 12, 201, 20, 180, 212, 72, 20, 15, 48, 84, 128, 15, 12, 201, 20, 180, 212, 20, 228, 201, 88, 84, 128, 15, 12, 201, 20,
-			180, 212, 20, 212, 15, 72, 84, 128, 15, 12, 201, 16, 21, 1, 52, 21, 9, 76, 84, 128, 15, 12, 201, 8, 84, 212, 36, 19, 9, 76,
-			84, 128, 15, 12, 201, 5, 85, 15, 56, 243, 73, 76, 84, 128, 15, 12, 201, 4, 195, 5, 28, 244, 137, 76, 84, 128, 15, 12, 201, 4,
-			100, 137, 44, 19, 137, 76, 84, 128, 15, 12, 201, 8, 244, 148, 4, 67, 208, 80, 84, 128, 15, 12, 201, 4, 67, 73, 56, 148, 212, 72,
-			84, 128, 15, 12, 201, 77, 64, 84, 37, 53, 9, 44, 84, 128, 15, 12, 201, 76, 179, 204, 5, 53, 9, 44, 84, 128, 15, 12, 201, 76,
-			178, 83, 52, 21, 9, 44, 84, 128, 15, 12, 201, 76, 19, 135, 88, 147, 137, 44, 84, 128, 15, 12, 201, 65, 32, 71, 52, 21, 9, 44,
-			84, 128, 15, 12, 201, 64, 20, 129, 49, 149, 9, 44, 84, 128, 15, 12, 201, 60, 36, 212, 21, 68, 137, 44, 84, 128, 15, 12, 201, 52,
-			85, 1, 25, 148, 201, 44, 84, 128, 15, 12, 201, 52, 21, 5, 52, 21, 9, 44, 84, 128, 15, 12, 201, 29, 32, 77, 52, 21, 9, 44,
-			84, 128, 15, 12, 201, 24, 193, 71, 52, 21, 9, 44, 84, 128, 15, 12, 201, 21, 128, 197, 57, 68, 137, 44, 84, 128, 15, 12, 201, 17,
-			148, 204, 20, 181, 9, 44, 84, 128, 15, 12, 201, 16, 21, 1, 52, 21, 9, 44, 84, 128, 15, 12, 201, 8, 192, 83, 24, 83, 73, 44,
-			84, 128, 15, 12, 201, 5, 34, 84, 52, 85, 9, 44, 84, 128, 15, 12, 201, 4, 227, 210, 20, 181, 9, 44, 84, 128, 15, 12, 201, 4,
-			194, 207, 32, 243, 9, 44, 84, 128, 15, 12, 201, 57, 144, 143, 72, 113, 78, 76, 84, 128, 15, 10, 199, 44, 244, 144, 84, 193, 78, 80,
-			15, 12, 201, 20, 180, 208, 21, 34, 77, 20, 229, 0, 15, 10, 199, 4, 36, 212, 36, 225, 78, 80, 15, 10, 199, 81, 32, 70, 36, 176,
-			78, 80, 15, 12, 201, 44, 243, 77, 84, 226, 75, 4, 229, 0, 15, 10, 199, 16, 147, 5, 81, 64, 78, 80, 15, 9, 198, 88, 84, 137,
-			80, 16, 128, 15, 0, 9, 198, 8, 245, 73, 48, 195, 206, 15, 9, 198, 48, 145, 82, 36, 225, 192, 15, 9, 198, 88, 83, 133, 16, 145,
-			192, 15, 7, 196, 36, 208, 71, 20, 15, 7, 196, 21, 64, 71, 20, 15, 9, 68, 36, 208, 71, 20, 21, 0, 47, 0, 11, 200, 45, 38,
-			80, 80, 241, 193, 52, 144, 15, 8, 67, 80, 19, 11, 21, 0, 47, 0, 9, 198, 56, 85, 82, 61, 49, 64, 15, 9, 198, 56, 82, 210,
-			61, 49, 64, 15, 9, 198, 33, 148, 14, 61, 49, 64, 15, 12, 201, 4, 231, 211, 80, 84, 201, 60, 195, 199, 15, 9, 198, 24, 147, 133,
-			77, 49, 64, 15, 9, 198, 4, 68, 133, 77, 49, 64, 15, 9, 198, 44, 19, 15, 72, 145, 64, 15, 9, 198, 164, 181, 77, 20, 226, 75,
-			15, 9, 198, 44, 20, 203, 4, 65, 64, 15, 0, 21, 73, 64, 20, 211, 21, 0, 82, 80, 245, 84, 48, 117, 35, 71, 121, 47, 6, 40,
-			0, 15, 9, 198, 28, 83, 199, 72, 17, 128, 15, 12, 201, 81, 32, 78, 77, 0, 82, 20, 229, 0, 15, 12, 201, 81, 32, 78, 77, 0,
-			82, 20, 228, 192, 15, 12, 201, 72, 84, 18, 125, 49, 78, 80, 19, 148, 15, 0, 10, 199, 32, 148, 212, 60, 195, 199, 36, 15, 9, 198,
-			36, 225, 15, 48, 241, 192, 15, 8, 197, 44, 197, 83, 36, 192, 15, 12, 201, 32, 84, 141, 20, 225, 85, 80, 146, 192, 15, 12, 201, 13,
-			149, 15, 28, 83, 133, 80, 146, 192, 15, 0, 10, 199, 65, 83, 19, 5, 66, 79, 56, 15, 10, 199, 61, 130, 68, 5, 66, 79, 56, 15,
-			10, 199, 61, 101, 76, 5, 66, 79, 56, 15, 10, 199, 37, 51, 204, 5, 66, 79, 56, 15, 10, 199, 36, 229, 5, 57, 66, 79, 56, 15,
-			10, 199, 36, 225, 140, 5, 66, 79, 56, 15, 8, 197, 32, 245, 133, 72, 144, 15, 9, 198, 104, 83, 15, 80, 148, 203, 15, 9, 198, 77,
-			147, 143, 16, 148, 203, 15, 9, 198, 64, 192, 83, 80, 148, 203, 15, 9, 198, 52, 83, 15, 16, 148, 203, 15, 9, 198, 36, 66, 79, 80,
-			148, 203, 15, 9, 198, 20, 192, 83, 80, 148, 203, 15, 0, 8, 197, 12, 130, 76, 20, 224, 15, 8, 197, 65, 35, 198, 4, 224, 16, 0,
-			9, 198, 21, 81, 143, 52, 19, 137, 15, 9, 198, 12, 84, 133, 52, 243, 137, 15, 9, 68, 76, 208, 76, 48, 21, 0, 47, 11, 70, 25,
-			34, 69, 56, 67, 25, 21, 0, 47, 0, 8, 197, 64, 85, 18, 60, 192, 15, 11, 200, 72, 129, 85, 52, 21, 15, 36, 64, 15, 0, 10,
-			199, 61, 33, 9, 56, 21, 15, 72, 15, 10, 199, 52, 18, 213, 48, 21, 15, 72, 15, 10, 199, 36, 227, 143, 88, 21, 15, 72, 15, 10,
-			199, 36, 212, 5, 72, 21, 15, 72, 15, 10, 199, 20, 213, 76, 28, 21, 15, 72, 15, 10, 199, 4, 195, 9, 28, 21, 15, 72, 15, 10,
-			199, 65, 241, 5, 72, 20, 212, 36, 15, 11, 200, 56, 85, 82, 5, 53, 5, 56, 144, 15, 0, 10, 199, 36, 225, 22, 20, 225, 9, 28,
-			15, 10, 199, 8, 19, 19, 81, 148, 137, 28, 15, 10, 199, 4, 68, 203, 36, 195, 9, 28, 15, 9, 198, 76, 18, 203, 5, 34, 68, 15,
-			9, 198, 28, 198, 75, 61, 50, 68, 15, 8, 4, 95, 111, 114, 100, 14, 0, 0, 10, 199, 61, 97, 82, 77, 241, 9, 28, 15, 10, 199,
-			48, 85, 6, 125, 33, 9, 28, 15, 9, 198, 44, 21, 1, 80, 243, 137, 15, 12, 201, 44, 243, 147, 80, 149, 21, 20, 229, 0, 15, 14,
-			203, 72, 82, 207, 57, 96, 76, 21, 48, 197, 57, 48, 15, 0, 9, 198, 37, 32, 75, 37, 50, 192, 15, 9, 198, 36, 33, 82, 37, 50,
-			192, 15, 9, 198, 20, 198, 83, 37, 50, 192, 15, 9, 198, 76, 178, 90, 60, 145, 0, 15, 9, 198, 52, 241, 5, 72, 21, 0, 15, 15,
-			4, 95, 109, 99, 110, 65, 6, 35, 49, 34, 4, 127, 50, 0, 0, 10, 199, 28, 83, 133, 72, 21, 15, 72, 15, 7, 196, 88, 243, 69,
-			72, 15, 11, 200, 80, 84, 212, 36, 211, 206, 36, 80, 15, 8, 67, 18, 37, 0, 72, 36, 0, 0, 10, 199, 88, 83, 2, 101, 33, 9,
-			28, 15, 10, 199, 48, 85, 19, 36, 225, 9, 28, 15, 9, 198, 4, 98, 31, 56, 114, 71, 15, 0, 9, 198, 52, 21, 1, 16, 244, 128,
-			15, 9, 198, 45, 84, 129, 80, 244, 128, 15, 15, 204, 20, 180, 208, 21, 34, 77, 20, 229, 1, 80, 244, 128, 15, 9, 198, 64, 21, 15,
-			48, 241, 201, 15, 9, 198, 60, 226, 207, 48, 241, 201, 15, 9, 198, 32, 243, 79, 48, 241, 201, 15, 9, 198, 13, 149, 15, 48, 241, 201,
-			15, 17, 70, 8, 83, 9, 104, 84, 128, 71, 36, 55, 37, 12, 89, 108, 0, 66, 9, 198, 81, 37, 78, 44, 84, 128, 15, 9, 198, 81,
-			32, 83, 76, 84, 128, 15, 9, 198, 81, 32, 75, 80, 84, 128, 15, 9, 198, 77, 84, 16, 48, 84, 128, 15, 9, 198, 72, 83, 133, 28,
-			84, 128, 15, 9, 198, 72, 81, 21, 12, 84, 128, 15, 9, 198, 64, 149, 143, 80, 84, 128, 15, 9, 198, 60, 97, 133, 72, 84, 128, 15,
-			9, 198, 53, 83, 11, 80, 84, 128, 15, 9, 198, 52, 241, 5, 72, 84, 128, 15, 9, 198, 52, 148, 197, 72, 84, 128, 15, 9, 198, 44,
-			20, 212, 72, 84, 128, 15, 9, 198, 36, 227, 143, 88, 84, 128, 15, 9, 198, 36, 226, 137, 12, 84, 128, 15, 9, 198, 36, 226, 9, 8,
-			84, 128, 15, 9, 198, 36, 225, 140, 84, 84, 128, 15, 9, 198, 36, 225, 137, 12, 84, 128, 15, 9, 198, 36, 225, 9, 12, 84, 128, 15,
-			9, 198, 36, 115, 143, 72, 84, 128, 15, 9, 198, 24, 192, 77, 8, 84, 128, 15, 9, 198, 24, 147, 20, 72, 84, 128, 15, 9, 198, 21,
-			50, 193, 64, 84, 128, 15, 9, 198, 16, 148, 137, 28, 84, 128, 15, 9, 198, 16, 85, 15, 56, 84, 128, 15, 9, 198, 16, 84, 137, 88,
-			84, 128, 15, 9, 198, 16, 84, 15, 56, 84, 128, 15, 9, 198, 16, 83, 9, 72, 84, 128, 15, 9, 198, 16, 81, 137, 56, 84, 128, 15,
-			9, 198, 16, 81, 21, 12, 84, 128, 15, 9, 198, 16, 81, 9, 44, 84, 128, 15, 9, 198, 16, 81, 9, 12, 84, 128, 15, 9, 198, 12,
-			130, 70, 72, 84, 128, 15, 9, 198, 8, 147, 208, 80, 84, 128, 15, 9, 198, 4, 178, 207, 48, 84, 128, 15, 9, 198, 4, 97, 137, 12,
-			84, 128, 15, 9, 198, 4, 69, 143, 44, 84, 128, 15, 11, 200, 65, 35, 212, 20, 147, 146, 36, 112, 15, 10, 199, 28, 84, 202, 124, 101,
-			9, 28, 15, 11, 200, 8, 84, 141, 84, 64, 82, 36, 112, 15, 9, 198, 32, 243, 79, 57, 147, 73, 15, 9, 198, 48, 81, 193, 80, 20,
-			128, 15, 9, 198, 77, 65, 76, 48, 20, 128, 15, 9, 198, 28, 195, 211, 76, 20, 128, 15, 9, 198, 8, 145, 137, 48, 20, 128, 15, 11,
-			70, 76, 48, 78, 56, 84, 128, 21, 0, 47, 0, 12, 201, 44, 243, 77, 84, 226, 75, 5, 67, 210, 15, 10, 199, 44, 243, 139, 84, 34,
-			78, 20, 15, 9, 198, 64, 85, 9, 80, 147, 206, 15, 9, 198, 5, 81, 9, 80, 147, 206, 15, 9, 198, 4, 65, 9, 80, 147, 206, 15,
-			13, 202, 44, 243, 147, 21, 37, 129, 80, 244, 137, 20, 15, 8, 197, 53, 84, 203, 5, 64, 15, 0, 10, 199, 60, 33, 21, 45, 66, 79,
-			56, 15, 10, 199, 36, 225, 21, 45, 66, 79, 56, 15, 7, 196, 53, 85, 5, 72, 15, 14, 203, 36, 228, 212, 73, 83, 69, 57, 64, 82,
-			36, 80, 15, 10, 199, 29, 35, 211, 29, 32, 73, 56, 15, 10, 199, 85, 37, 71, 84, 22, 65, 56, 15, 10, 199, 12, 19, 66, 60, 66,
-			129, 56, 15, 14, 70, 76, 129, 76, 4, 114, 0, 91, 37, 12, 55, 118, 0, 0, 8, 197, 44, 243, 132, 61, 32, 15, 11, 200, 72, 82,
-			210, 20, 21, 9, 60, 224, 15, 11, 200, 72, 81, 210, 21, 52, 201, 60, 224, 15, 11, 200, 52, 245, 9, 88, 21, 9, 60, 224, 15, 11,
-			200, 44, 244, 21, 48, 21, 9, 60, 224, 15, 11, 200, 36, 226, 84, 36, 21, 9, 60, 224, 15, 11, 200, 16, 83, 143, 80, 21, 9, 60,
-			224, 15, 11, 200, 16, 81, 137, 56, 149, 9, 60, 224, 15, 11, 200, 5, 4, 15, 76, 149, 9, 60, 224, 15, 11, 200, 4, 197, 5, 72,
-			21, 9, 60, 224, 15, 8, 197, 64, 192, 67, 21, 32, 15, 8, 197, 48, 19, 131, 21, 32, 15, 8, 197, 25, 83, 135, 21, 32, 15, 8,
-			197, 24, 244, 131, 21, 32, 15, 9, 198, 44, 20, 129, 52, 35, 204, 15, 11, 200, 81, 80, 133, 72, 181, 76, 36, 224, 15, 9, 198, 16,
-			243, 73, 12, 147, 0, 15, 11, 200, 25, 32, 78, 12, 148, 203, 4, 224, 15, 8, 197, 5, 67, 205, 5, 32, 15, 9, 198, 48, 21, 5,
-			72, 19, 0, 15, 0, 7, 196, 64, 148, 143, 48, 15, 0, 9, 198, 72, 84, 207, 49, 85, 0, 15, 9, 198, 33, 145, 18, 60, 99, 206,
-			15, 9, 198, 29, 32, 70, 60, 99, 206, 15, 8, 197, 44, 21, 83, 4, 192, 15, 0, 12, 67, 77, 65, 71, 89, 72, 35, 57, 0, 49,
-			45, 23, 72, 88, 194, 69, 76, 83, 9, 56, 80, 83, 55, 37, 89, 13, 55, 6, 37, 12, 50, 13, 0, 15, 11, 200, 9, 34, 71, 4,
-			229, 9, 56, 80, 15, 10, 199, 64, 243, 12, 85, 66, 79, 56, 15, 10, 199, 12, 83, 148, 85, 34, 79, 56, 15, 10, 199, 4, 97, 133,
-			45, 66, 79, 56, 15, 11, 200, 76, 177, 76, 21, 69, 5, 72, 80, 15, 11, 200, 72, 245, 76, 21, 69, 5, 72, 80, 15, 11, 200, 65,
-			35, 202, 20, 181, 5, 72, 80, 15, 11, 200, 64, 21, 18, 84, 194, 133, 72, 80, 15, 11, 200, 8, 147, 12, 21, 69, 5, 72, 80, 15,
-			9, 198, 60, 198, 77, 64, 148, 203, 15, 9, 198, 52, 85, 15, 16, 148, 203, 15, 9, 198, 44, 21, 15, 16, 148, 203, 15, 9, 198, 20,
-			180, 207, 80, 148, 203, 15, 9, 198, 9, 82, 207, 48, 148, 203, 15, 10, 199, 56, 20, 15, 48, 149, 1, 56, 15, 10, 199, 44, 243, 12,
-			20, 114, 65, 56, 15, 10, 199, 76, 18, 210, 37, 53, 1, 56, 16, 0, 9, 198, 52, 243, 147, 81, 42, 83, 15, 9, 198, 52, 147, 149,
-			80, 154, 83, 15, 8, 197, 72, 81, 201, 60, 224, 15, 8, 197, 80, 84, 146, 36, 224, 15, 8, 197, 8, 83, 154, 36, 224, 15, 10, 199,
-			4, 193, 65, 80, 244, 137, 44, 15, 0, 9, 198, 8, 83, 133, 24, 144, 197, 67, 11, 200, 88, 148, 201, 80, 84, 137, 56, 112, 15, 11,
-			200, 88, 81, 197, 80, 84, 137, 56, 112, 15, 11, 200, 77, 64, 70, 24, 84, 137, 56, 112, 15, 11, 200, 72, 85, 137, 16, 84, 137, 56,
-			112, 15, 11, 200, 72, 83, 1, 80, 84, 137, 56, 112, 15, 11, 200, 72, 81, 213, 48, 84, 137, 56, 112, 15, 11, 200, 56, 20, 193, 48,
-			84, 137, 56, 112, 15, 11, 200, 44, 194, 67, 32, 84, 137, 56, 112, 15, 11, 200, 21, 53, 9, 52, 84, 137, 56, 112, 15, 11, 200, 21,
-			50, 193, 48, 84, 137, 56, 112, 15, 9, 198, 72, 83, 148, 72, 144, 197, 15, 9, 198, 52, 243, 148, 72, 144, 197, 15, 9, 198, 8, 83,
-			133, 24, 144, 197, 15, 0, 5, 194, 8, 128, 13, 9, 198, 61, 1, 82, 37, 53, 0, 15, 9, 198, 37, 32, 78, 37, 53, 0, 15, 10,
-			199, 72, 245, 9, 77, 49, 82, 36, 15, 10, 199, 20, 115, 195, 20, 229, 18, 36, 15, 10, 199, 4, 193, 143, 57, 49, 82, 36, 15, 8,
-			197, 64, 148, 212, 60, 192, 15, 12, 201, 64, 19, 31, 60, 194, 84, 36, 181, 77, 15, 12, 201, 77, 68, 133, 65, 67, 205, 100, 50, 78,
-			15, 8, 197, 72, 149, 21, 4, 192, 15, 0, 10, 199, 88, 242, 193, 48, 148, 197, 72, 15, 10, 199, 81, 32, 75, 5, 52, 197, 72, 15,
-			10, 199, 77, 65, 78, 12, 147, 5, 72, 15, 10, 199, 76, 213, 75, 44, 84, 197, 72, 15, 10, 199, 65, 35, 203, 48, 19, 69, 72, 15,
-			10, 199, 64, 20, 132, 60, 227, 133, 72, 15, 10, 199, 45, 98, 78, 44, 83, 5, 72, 15, 10, 199, 44, 243, 139, 85, 36, 133, 72, 15,
-			10, 199, 44, 243, 134, 61, 35, 69, 72, 15, 10, 199, 44, 243, 134, 37, 35, 69, 72, 15, 10, 199, 44, 243, 132, 20, 228, 197, 72, 15,
-			10, 199, 44, 21, 1, 49, 148, 197, 72, 15, 10, 199, 44, 20, 148, 60, 227, 133, 72, 15, 10, 199, 44, 20, 9, 81, 83, 5, 72, 15,
-			10, 199, 44, 19, 148, 60, 227, 133, 72, 15, 10, 199, 16, 148, 208, 20, 228, 197, 72, 15, 10, 199, 16, 82, 204, 5, 52, 197, 72, 15,
-			10, 199, 16, 80, 200, 36, 100, 133, 72, 15, 10, 199, 5, 52, 201, 52, 147, 5, 72, 15, 10, 199, 4, 178, 213, 53, 83, 5, 72, 15,
-			10, 199, 52, 83, 15, 16, 146, 197, 72, 15, 10, 199, 88, 82, 140, 20, 228, 197, 72, 15, 10, 199, 88, 20, 132, 20, 228, 197, 72, 15,
-			10, 199, 16, 148, 208, 20, 228, 197, 72, 15, 0, 19, 71, 72, 82, 137, 12, 84, 133, 76, 34, 36, 57, 37, 89, 6, 36, 108, 89, 0,
-			8, 197, 88, 147, 204, 36, 224, 15, 8, 197, 8, 133, 84, 4, 224, 15, 9, 198, 77, 80, 147, 81, 32, 84, 15, 9, 198, 77, 80, 140,
-			36, 208, 84, 15, 9, 198, 76, 83, 137, 61, 32, 84, 15, 9, 198, 72, 85, 19, 77, 64, 84, 15, 9, 198, 72, 84, 213, 49, 64, 84,
-			15, 9, 198, 72, 84, 197, 73, 96, 84, 15, 9, 198, 64, 20, 212, 61, 32, 84, 15, 9, 198, 16, 148, 208, 5, 32, 84, 15, 8, 197,
-			8, 133, 84, 4, 224, 16, 0, 12, 201, 5, 37, 9, 48, 193, 82, 37, 53, 0, 15, 0, 24, 73, 44, 243, 134, 37, 35, 65, 56, 65,
-			82, 49, 109, 50, 83, 111, 34, 65, 6, 118, 50, 72, 109, 0, 12, 201, 45, 38, 68, 77, 33, 86, 36, 65, 82, 15, 6, 195, 164, 65,
-			77, 15, 9, 198, 20, 193, 71, 4, 229, 0, 15, 17, 70, 16, 19, 147, 4, 229, 0, 72, 35, 50, 89, 6, 121, 50, 0, 15, 12, 68,
-			76, 243, 153, 4, 89, 109, 50, 57, 118, 0, 0, 10, 199, 72, 243, 65, 56, 148, 197, 72, 15, 10, 199, 72, 81, 201, 77, 68, 133, 72,
-			15, 10, 199, 72, 81, 18, 21, 52, 197, 72, 15, 10, 199, 64, 20, 129, 49, 148, 197, 72, 15, 10, 199, 61, 34, 197, 77, 68, 133, 72,
-			15, 10, 199, 56, 243, 65, 16, 148, 197, 72, 15, 10, 199, 52, 147, 137, 77, 68, 133, 72, 15, 10, 199, 52, 19, 149, 17, 80, 197, 72,
-			15, 10, 199, 44, 243, 80, 20, 228, 197, 72, 15, 10, 199, 36, 225, 137, 49, 68, 133, 72, 15, 10, 199, 36, 225, 11, 5, 52, 197, 72,
-			15, 10, 199, 36, 195, 21, 77, 68, 133, 72, 15, 10, 199, 4, 229, 9, 12, 148, 5, 72, 15, 10, 199, 4, 194, 193, 48, 148, 197, 72,
-			15, 8, 197, 125, 64, 78, 60, 192, 15, 11, 200, 64, 21, 15, 28, 83, 133, 76, 80, 15, 11, 200, 25, 147, 15, 28, 83, 133, 76, 80,
-			15, 10, 199, 77, 65, 71, 20, 228, 197, 72, 15, 10, 199, 45, 33, 84, 20, 228, 197, 72, 15, 10, 199, 40, 19, 137, 81, 50, 1, 72,
-			15, 0, 17, 70, 52, 150, 20, 85, 33, 64, 65, 36, 81, 89, 47, 57, 108, 0, 15, 9, 198, 48, 82, 212, 85, 33, 64, 15, 9, 198,
-			25, 34, 84, 85, 33, 64, 15, 9, 198, 80, 18, 212, 21, 33, 64, 15, 9, 198, 77, 69, 68, 21, 33, 64, 15, 9, 198, 77, 3, 204,
-			21, 33, 64, 15, 9, 198, 76, 243, 132, 21, 33, 64, 15, 9, 198, 64, 20, 139, 21, 33, 64, 15, 9, 198, 45, 99, 212, 21, 33, 64,
-			15, 9, 198, 44, 244, 9, 21, 33, 64, 15, 9, 198, 29, 32, 68, 21, 33, 64, 15, 9, 198, 28, 20, 132, 21, 33, 64, 15, 9, 198,
-			24, 146, 211, 21, 33, 64, 15, 18, 70, 9, 37, 89, 21, 33, 64, 71, 34, 129, 57, 6, 115, 12, 34, 0, 15, 9, 198, 8, 20, 132,
-			21, 33, 64, 15, 9, 198, 16, 84, 15, 56, 83, 148, 15, 12, 201, 36, 228, 212, 73, 82, 212, 61, 32, 84, 15, 0, 9, 198, 21, 67,
-			143, 48, 241, 201, 15, 11, 200, 89, 83, 11, 4, 227, 204, 60, 112, 15, 11, 200, 28, 84, 143, 57, 67, 204, 60, 112, 15, 12, 201, 60,
-			36, 212, 37, 0, 84, 36, 243, 128, 15, 10, 199, 72, 82, 214, 37, 33, 78, 80, 15, 10, 199, 44, 243, 80, 21, 65, 78, 80, 15, 10,
-			199, 88, 147, 132, 36, 176, 78, 80, 15, 10, 199, 29, 32, 84, 84, 192, 78, 80, 15, 10, 199, 16, 83, 196, 61, 32, 78, 80, 15, 20,
-			71, 8, 243, 150, 37, 96, 78, 80, 71, 108, 68, 84, 37, 84, 6, 121, 68, 0, 15, 0, 23, 73, 48, 81, 197, 56, 65, 82, 56, 84,
-			192, 55, 36, 81, 6, 115, 50, 72, 108, 50, 14, 89, 0, 9, 198, 64, 21, 15, 48, 241, 192, 15, 9, 198, 60, 226, 207, 48, 241, 192,
-			15, 9, 198, 4, 194, 207, 48, 241, 192, 15, 9, 198, 72, 83, 9, 28, 147, 206, 15, 9, 198, 16, 243, 129, 80, 147, 206, 15, 9, 198,
-			5, 97, 82, 76, 147, 206, 15, 12, 201, 9, 35, 206, 44, 244, 203, 61, 1, 82, 15, 8, 66, 21, 32, 115, 34, 0, 72, 0, 19, 70,
-			26, 147, 10, 21, 67, 206, 83, 132, 55, 57, 36, 47, 6, 108, 50, 0, 15, 10, 199, 88, 20, 137, 5, 66, 79, 56, 15, 10, 199, 72,
-			82, 133, 45, 66, 79, 56, 15, 10, 199, 65, 35, 205, 61, 66, 79, 56, 15, 10, 199, 44, 243, 77, 84, 226, 79, 56, 15, 10, 199, 36,
-			229, 133, 57, 66, 79, 56, 15, 10, 199, 16, 145, 197, 77, 66, 79, 56, 15, 10, 199, 16, 85, 137, 5, 66, 79, 56, 15, 10, 199, 5,
-			52, 197, 73, 66, 79, 56, 15, 10, 199, 4, 226, 77, 5, 66, 79, 56, 15, 10, 199, 4, 209, 133, 80, 19, 73, 56, 15, 0, 9, 198,
-			104, 243, 206, 61, 49, 64, 15, 9, 198, 56, 20, 139, 61, 49, 64, 15, 9, 198, 48, 18, 212, 61, 49, 64, 15, 9, 198, 28, 197, 75,
-			61, 49, 64, 15, 9, 198, 12, 148, 146, 61, 49, 64, 15, 11, 200, 44, 244, 146, 85, 5, 9, 60, 224, 15, 11, 200, 16, 148, 208, 21,
-			36, 201, 60, 224, 15, 9, 198, 72, 147, 69, 77, 49, 64, 15, 10, 199, 8, 19, 12, 37, 53, 9, 44, 15, 9, 198, 36, 225, 5, 12,
-			83, 148, 15, 6, 195, 61, 96, 76, 15, 6, 195, 61, 32, 76, 15, 9, 198, 20, 179, 1, 80, 19, 148, 15, 0, 9, 198, 80, 244, 15,
-			48, 241, 201, 15, 9, 198, 76, 86, 15, 48, 241, 201, 15, 9, 198, 9, 38, 79, 48, 241, 201, 15, 11, 200, 80, 17, 19, 40, 146, 201,
-			76, 176, 15, 11, 200, 40, 21, 129, 56, 84, 201, 76, 176, 15, 11, 200, 5, 3, 203, 73, 145, 137, 76, 176, 15, 11, 200, 4, 195, 5,
-			28, 244, 137, 76, 176, 15, 11, 200, 36, 225, 143, 72, 208, 84, 36, 176, 15, 9, 198, 8, 147, 199, 72, 17, 128, 15, 0, 9, 198, 72,
-			83, 5, 28, 147, 206, 15, 9, 198, 56, 245, 129, 80, 147, 206, 15, 9, 198, 53, 85, 1, 80, 147, 206, 15, 10, 199, 52, 19, 5, 72,
-			147, 132, 20, 15, 0, 10, 199, 80, 84, 212, 5, 66, 79, 56, 15, 10, 199, 77, 1, 68, 37, 66, 79, 56, 15, 10, 199, 44, 240, 76,
-			37, 66, 79, 56, 15, 10, 199, 4, 68, 133, 56, 19, 9, 56, 15, 0, 10, 199, 21, 128, 197, 57, 68, 137, 44, 15, 10, 199, 4, 225,
-			204, 37, 53, 9, 44, 15, 0, 0, 17, 66, 16, 80, 72, 6, 37, 15, 72, 36, 34, 0, 81, 100, 101, 114, 32, 17, 66, 16, 80, 72,
-			6, 37, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 18, 66, 16, 80, 72, 37, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32,
-			5, 194, 16, 80, 72, 0, 10, 199, 65, 35, 198, 21, 52, 207, 72, 15, 10, 199, 65, 35, 195, 21, 52, 207, 72, 15, 10, 199, 72, 81,
-			213, 48, 21, 15, 72, 15, 10, 199, 72, 80, 201, 80, 21, 15, 72, 15, 10, 199, 36, 225, 9, 44, 21, 15, 72, 15, 10, 199, 21, 50,
-			193, 48, 21, 15, 72, 15, 0, 9, 198, 125, 32, 169, 16, 145, 192, 15, 10, 199, 76, 19, 86, 37, 69, 9, 28, 15, 10, 199, 76, 17,
-			212, 52, 241, 9, 28, 15, 9, 198, 61, 3, 158, 20, 194, 71, 15, 10, 199, 24, 244, 147, 100, 227, 9, 28, 15, 10, 199, 17, 144, 147,
-			36, 225, 9, 28, 15, 0, 22, 68, 32, 83, 19, 80, 107, 6, 115, 55, 89, 47, 15, 107, 117, 0, 81, 104, 97, 118, 101, 32, 7, 196,
-			81, 34, 83, 80, 15, 10, 199, 81, 35, 214, 125, 33, 9, 28, 15, 10, 199, 4, 228, 212, 124, 225, 9, 28, 15, 12, 201, 76, 145, 206,
-			36, 98, 75, 4, 229, 0, 15, 0, 8, 197, 21, 33, 77, 37, 64, 15, 9, 198, 4, 84, 143, 48, 149, 0, 15, 9, 198, 16, 21, 1,
-			52, 21, 0, 15, 0, 18, 67, 16, 85, 0, 72, 6, 36, 15, 72, 36, 34, 0, 81, 100, 101, 114, 32, 18, 67, 16, 85, 0, 72, 6,
-			36, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 25, 67, 16, 85, 0, 72, 36, 15, 49, 84, 121, 6, 47, 36, 34, 0, 81, 107, 118,
-			97, 114, 116, 101, 114, 32, 10, 199, 80, 16, 149, 48, 21, 15, 72, 15, 10, 199, 76, 147, 85, 48, 21, 15, 72, 15, 10, 199, 72, 81,
-			140, 20, 181, 15, 72, 15, 10, 199, 65, 35, 212, 20, 181, 15, 72, 15, 13, 202, 53, 83, 20, 37, 3, 9, 44, 21, 15, 72, 15, 10,
-			199, 36, 228, 208, 20, 181, 15, 72, 15, 10, 199, 36, 226, 9, 8, 149, 15, 72, 15, 10, 199, 36, 226, 1, 48, 21, 15, 72, 15, 12,
-			201, 88, 145, 5, 73, 103, 210, 16, 145, 192, 15, 12, 201, 77, 68, 129, 25, 103, 210, 16, 145, 192, 15, 12, 201, 48, 19, 132, 76, 176,
-			66, 20, 194, 71, 15, 12, 201, 36, 225, 19, 45, 34, 86, 20, 194, 71, 15, 11, 200, 36, 229, 5, 72, 209, 68, 36, 80, 15, 11, 200,
-			36, 229, 5, 72, 197, 68, 36, 80, 15, 9, 67, 16, 85, 0, 72, 36, 0, 72, 0, 8, 197, 76, 82, 212, 61, 32, 15, 8, 197, 88,
-			20, 137, 21, 32, 15, 8, 197, 4, 226, 77, 21, 32, 15, 8, 197, 4, 195, 9, 21, 32, 15, 9, 198, 52, 19, 132, 72, 147, 0, 15,
-			8, 197, 44, 244, 147, 5, 32, 15, 0, 8, 197, 49, 145, 8, 165, 32, 15, 8, 197, 4, 208, 84, 165, 32, 15, 9, 198, 125, 37, 159,
-			72, 66, 71, 15, 11, 200, 77, 145, 22, 21, 53, 12, 36, 112, 15, 11, 200, 76, 19, 132, 77, 147, 140, 36, 112, 15, 11, 200, 61, 4,
-			21, 77, 65, 76, 36, 112, 15, 11, 200, 28, 83, 147, 81, 34, 68, 36, 112, 15, 11, 200, 24, 244, 129, 29, 65, 76, 36, 112, 15, 10,
-			199, 20, 225, 18, 124, 117, 9, 28, 15, 11, 200, 17, 83, 68, 72, 148, 212, 36, 112, 15, 11, 200, 5, 4, 5, 80, 149, 12, 36, 112,
-			15, 0, 17, 66, 17, 80, 72, 40, 15, 107, 118, 11, 0, 81, 104, 97, 118, 101, 32, 8, 197, 5, 162, 77, 85, 64, 15, 12, 201, 16,
-			83, 79, 57, 53, 18, 5, 67, 210, 15, 10, 199, 64, 144, 195, 60, 194, 78, 20, 15, 9, 198, 4, 67, 208, 80, 147, 206, 15, 8, 197,
-			77, 64, 75, 37, 64, 15, 9, 198, 76, 19, 65, 72, 149, 0, 15, 8, 197, 64, 20, 211, 5, 64, 15, 9, 198, 32, 16, 137, 80, 21,
-			0, 15, 8, 197, 25, 33, 71, 5, 64, 15, 8, 66, 17, 80, 72, 40, 0, 72, 0, 10, 199, 76, 83, 147, 5, 66, 79, 56, 15, 10,
-			199, 44, 20, 211, 5, 66, 79, 56, 15, 14, 203, 88, 81, 197, 80, 20, 137, 4, 226, 83, 52, 80, 15, 14, 203, 77, 68, 149, 45, 69,
-			82, 4, 194, 83, 52, 80, 15, 14, 203, 65, 35, 212, 21, 53, 1, 57, 66, 83, 52, 80, 15, 14, 203, 44, 244, 205, 61, 3, 204, 37,
-			66, 83, 52, 80, 15, 14, 203, 44, 244, 144, 61, 32, 84, 37, 98, 83, 52, 80, 15, 14, 203, 37, 36, 129, 80, 147, 206, 4, 194, 83,
-			52, 80, 15, 14, 203, 36, 225, 21, 77, 68, 137, 4, 194, 83, 52, 80, 15, 6, 195, 32, 19, 64, 72, 0, 8, 197, 4, 224, 70, 61,
-			32, 15, 8, 197, 72, 82, 212, 61, 32, 15, 8, 197, 24, 18, 212, 61, 32, 15, 17, 70, 8, 80, 200, 4, 209, 76, 71, 114, 91, 118,
-			65, 6, 114, 60, 0, 11, 200, 88, 148, 201, 80, 21, 9, 60, 224, 15, 11, 200, 88, 81, 197, 80, 21, 9, 60, 224, 15, 11, 200, 77,
-			64, 71, 56, 21, 9, 60, 224, 15, 11, 200, 72, 80, 201, 80, 21, 9, 60, 224, 15, 11, 200, 61, 33, 9, 56, 21, 9, 60, 224, 15,
-			11, 200, 52, 241, 21, 48, 21, 9, 60, 224, 15, 11, 200, 36, 243, 137, 76, 21, 9, 60, 224, 15, 11, 200, 21, 50, 193, 48, 21, 9,
-			60, 224, 15, 11, 200, 16, 148, 211, 20, 181, 9, 60, 224, 15, 11, 200, 16, 84, 21, 80, 21, 9, 60, 224, 15, 11, 200, 16, 84, 9,
-			48, 21, 9, 60, 224, 15, 11, 200, 4, 212, 21, 80, 21, 9, 60, 224, 15, 8, 197, 88, 84, 147, 21, 32, 15, 8, 197, 80, 18, 211,
-			21, 32, 15, 8, 197, 48, 18, 211, 21, 32, 15, 8, 197, 24, 20, 147, 21, 32, 15, 12, 201, 88, 83, 1, 57, 53, 31, 56, 66, 71,
-			15, 15, 204, 20, 180, 208, 21, 34, 77, 20, 229, 1, 72, 145, 64, 15, 11, 200, 4, 229, 9, 24, 80, 146, 36, 224, 15, 15, 204, 20,
-			180, 208, 72, 84, 211, 36, 243, 137, 76, 209, 64, 15, 9, 198, 65, 241, 15, 24, 147, 0, 15, 9, 198, 32, 243, 79, 24, 147, 0, 15,
-			11, 200, 32, 84, 131, 20, 115, 214, 36, 224, 15, 8, 197, 52, 17, 217, 5, 32, 15, 0, 9, 198, 16, 21, 1, 48, 241, 201, 15, 15,
-			204, 77, 84, 18, 4, 224, 84, 85, 32, 76, 37, 51, 69, 15, 0, 8, 197, 25, 84, 137, 165, 48, 15, 9, 198, 4, 36, 207, 49, 85,
-			0, 15, 9, 198, 24, 195, 210, 37, 53, 0, 15, 9, 198, 64, 83, 148, 4, 115, 206, 15, 9, 198, 21, 37, 80, 80, 147, 206, 15, 9,
-			198, 4, 208, 137, 80, 147, 206, 15, 9, 198, 4, 192, 129, 56, 145, 78, 15, 0, 10, 199, 76, 149, 21, 5, 66, 79, 56, 15, 10, 199,
-			72, 81, 1, 45, 66, 79, 56, 15, 10, 199, 72, 17, 9, 5, 66, 79, 56, 15, 10, 199, 36, 226, 133, 45, 66, 79, 56, 15, 10, 199,
-			36, 225, 133, 45, 66, 79, 56, 15, 10, 199, 64, 197, 86, 37, 84, 201, 56, 15, 12, 201, 44, 21, 1, 77, 68, 143, 24, 19, 0, 15,
-			0, 9, 198, 45, 38, 83, 60, 194, 84, 15, 0, 12, 201, 24, 20, 141, 4, 179, 199, 56, 244, 201, 15, 12, 201, 16, 243, 79, 72, 112,
-			78, 37, 53, 0, 15, 11, 200, 80, 21, 15, 88, 84, 137, 56, 112, 15, 11, 200, 76, 242, 71, 56, 84, 137, 56, 112, 15, 11, 200, 52,
-			241, 21, 48, 84, 137, 56, 112, 15, 11, 200, 20, 210, 71, 72, 84, 137, 56, 112, 15, 11, 200, 16, 81, 137, 48, 84, 137, 56, 112, 15,
-			11, 200, 8, 243, 137, 80, 84, 137, 56, 112, 15, 11, 200, 4, 212, 21, 80, 84, 137, 56, 112, 15, 7, 196, 81, 34, 79, 48, 15, 9,
-			198, 4, 195, 9, 4, 224, 197, 15, 9, 198, 25, 84, 197, 48, 17, 197, 15, 9, 198, 4, 97, 149, 80, 17, 197, 15, 0, 21, 66, 4,
-			192, 35, 55, 15, 49, 6, 122, 57, 72, 118, 0, 81, 113, 97, 101, 100, 97, 32, 9, 198, 28, 19, 66, 37, 53, 0, 15, 9, 198, 88,
-			243, 20, 36, 113, 82, 15, 9, 198, 65, 80, 140, 36, 49, 82, 15, 9, 198, 16, 149, 133, 72, 113, 82, 15, 9, 198, 16, 83, 65, 72,
-			177, 82, 15, 9, 198, 5, 4, 12, 36, 49, 82, 15, 9, 198, 24, 84, 141, 20, 229, 0, 15, 9, 198, 52, 20, 139, 4, 229, 0, 15,
-			0, 29, 75, 77, 21, 65, 72, 81, 1, 56, 49, 82, 56, 80, 89, 49, 58, 6, 115, 108, 72, 117, 12, 50, 89, 108, 20, 50, 13, 0,
-			0, 17, 66, 53, 224, 65, 125, 12, 15, 107, 118, 0, 81, 104, 97, 118, 101, 32, 5, 194, 53, 224, 76, 9, 3, 95, 35, 57, 47, 35,
-			71, 0, 0, 12, 201, 61, 5, 15, 52, 85, 18, 37, 53, 0, 15, 9, 198, 77, 64, 70, 24, 17, 197, 15, 0, 9, 198, 72, 84, 212,
-			4, 229, 0, 15, 0, 8, 197, 45, 84, 201, 56, 80, 15, 11, 200, 77, 4, 153, 17, 53, 1, 28, 80, 15, 11, 200, 64, 192, 84, 52,
-			83, 129, 28, 80, 15, 8, 197, 45, 84, 129, 28, 80, 15, 0, 9, 198, 16, 148, 137, 28, 83, 148, 15, 9, 198, 52, 147, 9, 80, 19,
-			148, 15, 9, 198, 4, 66, 149, 16, 19, 148, 15, 0, 8, 197, 85, 101, 76, 125, 32, 15, 9, 198, 28, 83, 196, 125, 50, 64, 15, 11,
-			200, 45, 34, 77, 36, 227, 204, 60, 112, 15, 11, 200, 44, 147, 133, 76, 147, 204, 60, 112, 15, 10, 199, 77, 82, 203, 84, 193, 78, 80,
-			15, 12, 201, 77, 80, 147, 45, 34, 66, 20, 229, 0, 15, 10, 199, 60, 36, 203, 85, 32, 78, 80, 15, 10, 199, 44, 243, 208, 21, 32,
-			78, 80, 15, 12, 201, 44, 243, 148, 72, 243, 12, 4, 229, 0, 15, 10, 199, 36, 229, 5, 56, 64, 78, 80, 15, 10, 199, 32, 244, 208,
-			37, 64, 78, 80, 15, 10, 199, 5, 69, 5, 77, 64, 78, 80, 15, 10, 199, 5, 48, 197, 56, 64, 78, 80, 15, 10, 199, 5, 4, 5,
-			48, 192, 78, 80, 15, 10, 199, 4, 48, 197, 65, 64, 78, 80, 15, 0, 23, 66, 21, 64, 36, 72, 15, 83, 6, 108, 34, 89, 129, 50,
-			0, 81, 102, 111, 114, 115, 121, 110, 32, 17, 66, 21, 64, 36, 72, 15, 107, 6, 121, 40, 0, 81, 104, 97, 118, 32, 23, 66, 21, 64,
-			36, 72, 15, 83, 108, 15, 72, 121, 57, 0, 82, 102, 111, 114, 32, 100, 105, 103, 32, 17, 66, 21, 64, 36, 72, 15, 6, 83, 39, 34,
-			0, 81, 102, 111, 114, 32, 16, 66, 21, 64, 36, 72, 15, 107, 121, 40, 0, 81, 104, 97, 118, 32, 24, 66, 21, 64, 36, 47, 15, 49,
-			84, 121, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 26, 74, 8, 80, 200, 4, 209, 76, 76, 21, 67, 20, 71, 114,
-			91, 118, 65, 6, 114, 60, 89, 6, 125, 12, 89, 0, 9, 198, 89, 244, 148, 36, 225, 5, 15, 9, 198, 21, 84, 129, 76, 145, 78, 15,
-			9, 198, 60, 213, 18, 20, 229, 0, 15, 8, 66, 21, 64, 36, 47, 0, 72, 0, 24, 69, 76, 181, 76, 48, 80, 89, 81, 6, 123, 55,
-			14, 15, 107, 6, 117, 0, 81, 104, 97, 118, 101, 32, 10, 199, 72, 85, 5, 57, 66, 79, 56, 15, 10, 199, 60, 181, 76, 5, 66, 79,
-			56, 15, 10, 199, 24, 244, 141, 5, 66, 79, 56, 15, 10, 199, 16, 85, 5, 57, 66, 79, 56, 15, 10, 199, 16, 81, 140, 5, 66, 79,
-			56, 15, 8, 197, 20, 198, 83, 36, 80, 15, 8, 197, 5, 96, 78, 12, 80, 15, 8, 197, 80, 148, 129, 16, 80, 15, 8, 197, 64, 20,
-			129, 16, 80, 15, 8, 197, 44, 20, 129, 16, 80, 15, 8, 197, 76, 181, 76, 48, 80, 76, 0, 12, 201, 89, 83, 11, 4, 227, 204, 60,
-			114, 64, 15, 12, 201, 28, 84, 143, 57, 67, 204, 60, 114, 64, 15, 11, 200, 20, 180, 203, 85, 36, 201, 60, 224, 15, 10, 199, 81, 84,
-			137, 77, 66, 83, 44, 15, 10, 199, 77, 64, 84, 5, 34, 83, 44, 15, 10, 199, 76, 195, 214, 4, 178, 83, 44, 15, 10, 199, 72, 148,
-			5, 57, 50, 83, 44, 15, 10, 199, 72, 16, 201, 77, 66, 83, 44, 15, 10, 199, 65, 84, 137, 77, 66, 83, 44, 15, 10, 199, 64, 81,
-			1, 57, 66, 83, 44, 15, 10, 199, 61, 33, 193, 77, 66, 83, 44, 15, 10, 199, 56, 22, 137, 77, 66, 83, 44, 15, 10, 199, 52, 148,
-			212, 72, 242, 83, 44, 15, 10, 199, 48, 149, 21, 72, 114, 83, 44, 15, 10, 199, 45, 34, 71, 21, 34, 83, 44, 15, 10, 199, 44, 244,
-			205, 21, 66, 83, 44, 15, 10, 199, 44, 21, 75, 5, 50, 83, 44, 15, 10, 199, 44, 19, 13, 84, 178, 83, 44, 15, 10, 199, 28, 83,
-			203, 20, 210, 83, 44, 15, 10, 199, 21, 2, 68, 20, 210, 83, 44, 15, 10, 199, 20, 196, 193, 77, 50, 83, 44, 15, 10, 199, 20, 180,
-			212, 5, 66, 83, 44, 15, 10, 199, 4, 224, 76, 60, 114, 83, 44, 15, 10, 199, 4, 195, 5, 72, 114, 83, 44, 15, 10, 199, 4, 176,
-			68, 20, 210, 83, 44, 15, 10, 199, 4, 34, 200, 5, 50, 83, 44, 15, 9, 198, 77, 147, 148, 21, 49, 64, 15, 9, 198, 60, 33, 21,
-			12, 83, 148, 15, 0, 12, 201, 8, 84, 212, 101, 33, 82, 36, 225, 5, 68, 11, 200, 81, 32, 85, 52, 21, 9, 76, 176, 15, 11, 200,
-			77, 80, 129, 72, 181, 9, 76, 176, 15, 11, 200, 76, 19, 79, 40, 81, 9, 76, 176, 15, 11, 200, 65, 35, 203, 48, 149, 9, 76, 176,
-			15, 11, 200, 65, 32, 71, 52, 21, 9, 76, 176, 15, 11, 200, 64, 20, 137, 80, 85, 9, 76, 176, 15, 11, 200, 52, 85, 1, 25, 148,
-			201, 76, 176, 15, 11, 200, 52, 21, 5, 52, 21, 9, 76, 176, 15, 11, 200, 33, 148, 15, 80, 85, 9, 76, 176, 15, 11, 200, 21, 96,
-			78, 28, 83, 9, 76, 176, 15, 11, 200, 20, 180, 197, 28, 85, 9, 76, 176, 15, 11, 200, 16, 144, 75, 72, 149, 9, 76, 176, 15, 11,
-			200, 13, 148, 18, 36, 245, 9, 76, 176, 15, 11, 200, 5, 34, 84, 52, 85, 9, 76, 176, 15, 11, 200, 4, 229, 9, 80, 85, 9, 76,
-			176, 15, 11, 200, 4, 227, 210, 20, 181, 9, 76, 176, 15, 9, 198, 64, 243, 25, 28, 19, 73, 15, 12, 201, 45, 83, 147, 80, 225, 82,
-			36, 225, 5, 15, 12, 201, 8, 84, 212, 101, 33, 82, 36, 225, 5, 15, 13, 202, 44, 243, 138, 84, 226, 212, 36, 243, 129, 48, 15, 12,
-			201, 64, 20, 148, 36, 50, 80, 4, 229, 0, 15, 8, 67, 49, 82, 197, 21, 0, 47, 0, 25, 73, 76, 243, 19, 40, 83, 137, 81, 54,
-			78, 89, 109, 55, 89, 57, 13, 50, 6, 111, 47, 89, 111, 50, 0, 0, 31, 68, 84, 226, 79, 56, 57, 40, 50, 57, 112, 50, 15, 89,
-			47, 36, 37, 89, 57, 13, 50, 0, 81, 115, 116, 97, 116, 105, 111, 110, 32, 7, 196, 84, 226, 79, 56, 15, 11, 200, 72, 81, 133, 72,
-			83, 132, 84, 208, 15, 11, 200, 52, 83, 79, 72, 19, 132, 84, 208, 15, 11, 200, 44, 243, 80, 61, 50, 84, 84, 208, 15, 11, 200, 64,
-			243, 25, 56, 243, 73, 84, 208, 15, 11, 200, 52, 147, 12, 20, 227, 137, 84, 208, 15, 11, 200, 44, 243, 147, 61, 37, 9, 84, 208, 15,
-			11, 200, 21, 96, 78, 28, 83, 9, 84, 208, 15, 11, 200, 13, 144, 78, 44, 19, 9, 84, 208, 15, 11, 200, 5, 81, 9, 80, 244, 137,
-			84, 208, 15, 7, 196, 73, 80, 137, 56, 15, 4, 193, 136, 43, 0, 8, 197, 45, 243, 5, 72, 144, 15, 10, 199, 85, 35, 204, 60, 114,
-			83, 44, 15, 10, 199, 77, 80, 147, 60, 226, 83, 44, 15, 10, 199, 76, 83, 147, 61, 34, 83, 44, 15, 10, 199, 64, 21, 18, 36, 50,
-			83, 44, 15, 10, 199, 64, 20, 9, 77, 66, 83, 44, 15, 10, 199, 52, 84, 207, 104, 242, 83, 44, 15, 10, 199, 52, 19, 20, 21, 50,
-			83, 44, 15, 10, 199, 48, 85, 129, 57, 66, 83, 44, 15, 10, 199, 48, 85, 1, 72, 114, 83, 44, 15, 10, 199, 44, 244, 137, 57, 66,
-			83, 44, 15, 10, 199, 21, 68, 149, 76, 178, 83, 44, 15, 10, 199, 4, 224, 84, 60, 210, 83, 44, 15, 14, 203, 44, 20, 146, 20, 39,
-			203, 76, 210, 78, 16, 80, 15, 0, 12, 201, 48, 81, 19, 4, 113, 82, 36, 225, 5, 15, 0, 12, 201, 65, 35, 212, 84, 33, 82, 4,
-			228, 192, 15, 0, 11, 200, 33, 148, 15, 44, 243, 132, 72, 144, 15, 11, 200, 28, 83, 132, 5, 35, 69, 72, 144, 15, 8, 197, 8, 82,
-			214, 20, 208, 15, 0, 33, 67, 76, 19, 20, 89, 6, 108, 55, 47, 15, 55, 115, 57, 49, 15, 89, 6, 37, 47, 37, 0, 82, 108, 97,
-			107, 101, 32, 99, 105, 116, 121, 32, 9, 198, 64, 20, 143, 16, 148, 212, 15, 9, 198, 61, 33, 193, 56, 148, 212, 15, 9, 198, 49, 85,
-			5, 56, 148, 212, 15, 9, 198, 48, 17, 197, 72, 148, 212, 15, 9, 198, 21, 52, 193, 100, 148, 212, 15, 9, 198, 8, 20, 213, 56, 148,
-			212, 15, 9, 198, 73, 81, 134, 21, 34, 64, 15, 9, 198, 40, 240, 130, 21, 34, 64, 15, 9, 198, 28, 20, 150, 21, 34, 64, 15, 9,
-			198, 16, 82, 207, 73, 83, 64, 15, 9, 198, 77, 147, 70, 60, 226, 64, 15, 0, 9, 198, 52, 147, 12, 36, 243, 128, 15, 9, 198, 20,
-			194, 83, 36, 243, 128, 15, 9, 198, 16, 242, 212, 72, 147, 128, 15, 9, 198, 36, 226, 21, 52, 19, 128, 16, 9, 198, 17, 83, 3, 36,
-			19, 128, 16, 9, 198, 4, 116, 129, 52, 19, 128, 16, 0, 9, 198, 124, 181, 129, 80, 244, 128, 15, 9, 198, 76, 18, 211, 37, 50, 192,
-			15, 9, 198, 37, 64, 76, 37, 50, 192, 15, 9, 198, 32, 84, 143, 37, 50, 192, 15, 9, 198, 4, 225, 18, 60, 145, 0, 15, 8, 197,
-			36, 228, 85, 37, 64, 15, 10, 199, 80, 147, 79, 45, 32, 84, 36, 15, 10, 199, 61, 37, 15, 16, 243, 148, 36, 15, 12, 201, 24, 195,
-			206, 20, 195, 15, 29, 32, 70, 15, 8, 197, 65, 34, 77, 5, 64, 15, 9, 198, 24, 244, 141, 36, 64, 66, 15, 9, 198, 5, 4, 5,
-			48, 192, 66, 15, 9, 198, 4, 224, 76, 101, 48, 66, 15, 0, 10, 199, 77, 80, 195, 21, 52, 207, 72, 15, 7, 196, 76, 19, 133, 72,
-			15, 7, 196, 16, 243, 133, 72, 15, 9, 198, 32, 245, 141, 60, 66, 71, 15, 9, 198, 28, 83, 69, 56, 194, 71, 15, 0, 8, 197, 33,
-			244, 133, 76, 144, 15, 8, 197, 16, 85, 137, 21, 32, 15, 9, 198, 64, 20, 129, 8, 243, 0, 15, 9, 198, 64, 19, 1, 80, 19, 0,
-			15, 0, 8, 197, 52, 20, 211, 165, 32, 15, 8, 197, 24, 192, 78, 165, 32, 15, 12, 201, 72, 81, 197, 56, 84, 129, 80, 244, 128, 15,
-			12, 201, 52, 19, 137, 65, 83, 1, 80, 244, 128, 15, 12, 201, 44, 243, 210, 16, 147, 129, 80, 244, 128, 15, 12, 201, 44, 243, 147, 64,
-			148, 129, 80, 244, 128, 15, 12, 201, 44, 243, 80, 72, 147, 65, 80, 244, 128, 15, 12, 201, 44, 243, 77, 20, 229, 1, 80, 244, 128, 15,
-			12, 201, 44, 148, 143, 65, 32, 75, 80, 244, 128, 15, 12, 201, 36, 228, 197, 52, 147, 129, 80, 244, 128, 15, 12, 201, 20, 180, 193, 52,
-			147, 129, 80, 244, 128, 15, 12, 201, 4, 48, 197, 48, 84, 129, 80, 244, 128, 15, 12, 201, 125, 53, 5, 80, 144, 201, 76, 209, 64, 15,
-			12, 201, 26, 145, 5, 72, 19, 9, 76, 209, 64, 15, 12, 201, 21, 2, 75, 85, 39, 201, 76, 209, 64, 15, 12, 201, 44, 243, 77, 37,
-			69, 5, 72, 85, 0, 15, 0, 5, 194, 21, 80, 13, 10, 199, 52, 147, 137, 5, 69, 82, 20, 15, 10, 199, 52, 147, 137, 5, 69, 82,
-			20, 15, 10, 199, 72, 85, 143, 49, 65, 82, 20, 15, 10, 199, 24, 244, 141, 5, 65, 82, 20, 15, 10, 199, 8, 19, 132, 4, 113, 82,
-			20, 15, 8, 197, 124, 243, 9, 76, 176, 15, 9, 198, 80, 16, 140, 60, 145, 0, 15, 13, 202, 64, 243, 25, 12, 83, 148, 72, 148, 205,
-			20, 15, 13, 202, 53, 82, 1, 52, 81, 1, 56, 148, 205, 20, 15, 13, 202, 52, 84, 139, 4, 229, 9, 48, 148, 205, 20, 15, 13, 202,
-			37, 51, 204, 5, 66, 79, 56, 148, 205, 20, 15, 13, 202, 4, 224, 76, 24, 16, 133, 80, 148, 205, 20, 15, 8, 197, 77, 6, 71, 5,
-			64, 15, 0, 11, 68, 20, 229, 5, 72, 116, 50, 47, 109, 0, 12, 201, 52, 147, 137, 77, 65, 82, 36, 83, 0, 15, 7, 196, 44, 21,
-			133, 72, 15, 7, 196, 28, 84, 133, 72, 15, 0, 12, 201, 32, 85, 5, 72, 241, 15, 45, 50, 64, 15, 8, 197, 72, 19, 135, 21, 32,
-			15, 8, 197, 48, 243, 135, 21, 32, 15, 8, 197, 45, 35, 203, 21, 32, 15, 8, 197, 28, 192, 83, 21, 32, 15, 8, 197, 16, 244, 211,
-			21, 32, 15, 10, 199, 81, 80, 82, 20, 114, 83, 44, 15, 10, 199, 80, 83, 204, 60, 114, 83, 44, 15, 10, 199, 76, 49, 78, 5, 34,
-			83, 44, 15, 10, 199, 72, 85, 77, 5, 66, 83, 44, 15, 10, 199, 72, 131, 196, 21, 50, 83, 44, 15, 10, 199, 52, 243, 129, 72, 178,
-			83, 44, 15, 10, 199, 52, 85, 5, 61, 34, 83, 44, 15, 10, 199, 45, 35, 205, 5, 66, 83, 44, 15, 10, 199, 44, 241, 206, 5, 66,
-			83, 44, 15, 10, 199, 44, 20, 148, 4, 114, 83, 44, 15, 10, 199, 44, 19, 13, 100, 178, 83, 44, 15, 10, 199, 40, 84, 213, 37, 66,
-			83, 44, 15, 10, 199, 33, 148, 212, 21, 34, 83, 44, 15, 10, 199, 21, 84, 212, 4, 178, 83, 44, 15, 10, 199, 21, 50, 201, 52, 242,
-			83, 44, 15, 10, 199, 21, 34, 84, 72, 82, 83, 44, 15, 10, 199, 8, 148, 195, 5, 146, 83, 44, 15, 10, 199, 8, 147, 204, 60, 114,
-			83, 44, 15, 10, 199, 5, 85, 5, 57, 66, 83, 44, 15, 10, 199, 4, 208, 146, 61, 50, 83, 44, 15, 15, 204, 76, 83, 148, 36, 209,
-			78, 80, 19, 9, 76, 209, 64, 15, 8, 197, 48, 147, 133, 5, 32, 15, 8, 197, 40, 17, 213, 5, 32, 15, 8, 197, 48, 147, 133, 5,
-			32, 15, 10, 69, 72, 19, 135, 21, 32, 21, 0, 47, 0, 9, 198, 80, 82, 206, 60, 227, 205, 15, 9, 198, 44, 20, 131, 36, 227, 205,
-			15, 11, 200, 96, 83, 143, 24, 240, 137, 76, 176, 15, 11, 200, 88, 242, 193, 80, 149, 137, 76, 176, 15, 11, 200, 88, 81, 197, 80, 20,
-			137, 76, 176, 15, 11, 200, 88, 19, 21, 80, 20, 137, 76, 176, 15, 11, 200, 77, 80, 148, 72, 244, 9, 76, 176, 15, 11, 200, 76, 243,
-			9, 16, 20, 137, 76, 176, 15, 11, 200, 76, 20, 129, 12, 83, 137, 76, 176, 15, 11, 200, 72, 80, 76, 37, 53, 9, 76, 176, 15, 11,
-			200, 65, 35, 195, 20, 229, 9, 76, 176, 15, 11, 200, 64, 145, 84, 37, 53, 9, 76, 176, 15, 11, 200, 64, 144, 78, 37, 53, 9, 76,
-			176, 15, 11, 200, 61, 5, 1, 80, 149, 137, 76, 176, 15, 11, 200, 56, 18, 86, 37, 53, 9, 76, 176, 15, 11, 200, 52, 243, 143, 24,
-			243, 137, 76, 176, 15, 11, 200, 52, 85, 1, 8, 243, 9, 76, 176, 15, 11, 200, 48, 20, 9, 16, 20, 137, 76, 176, 15, 11, 200, 44,
-			21, 5, 28, 244, 137, 76, 176, 15, 11, 200, 32, 85, 82, 37, 53, 9, 76, 176, 15, 11, 200, 32, 81, 197, 52, 243, 137, 76, 176, 15,
-			11, 200, 28, 83, 199, 72, 17, 137, 76, 176, 15, 11, 200, 24, 21, 86, 37, 53, 9, 76, 176, 15, 11, 200, 17, 84, 129, 80, 149, 137,
-			76, 176, 15, 11, 200, 17, 80, 76, 37, 53, 9, 76, 176, 15, 11, 200, 16, 162, 66, 61, 85, 9, 76, 176, 15, 11, 200, 16, 144, 75,
-			72, 243, 137, 76, 176, 15, 11, 200, 8, 18, 203, 4, 229, 9, 76, 176, 15, 11, 200, 5, 67, 205, 37, 53, 9, 76, 176, 15, 11, 200,
-			5, 34, 193, 37, 53, 9, 76, 176, 15, 11, 200, 4, 116, 143, 56, 243, 73, 76, 176, 15, 11, 200, 72, 243, 65, 56, 148, 212, 36, 176,
-			15, 0, 8, 197, 85, 34, 78, 165, 48, 15, 8, 197, 60, 210, 78, 165, 48, 15, 8, 197, 56, 149, 18, 165, 48, 15, 8, 197, 56, 84,
-			150, 165, 48, 15, 8, 197, 24, 144, 146, 165, 48, 15, 7, 196, 36, 66, 79, 52, 15, 7, 196, 28, 194, 79, 52, 15, 13, 202, 29, 83,
-			77, 36, 20, 129, 8, 144, 213, 52, 15, 0, 11, 200, 44, 243, 134, 20, 181, 21, 72, 80, 15, 8, 197, 20, 225, 82, 28, 144, 15, 12,
-			201, 61, 1, 82, 5, 66, 79, 56, 83, 0, 15, 11, 200, 77, 3, 206, 76, 244, 133, 72, 80, 15, 11, 200, 16, 148, 212, 4, 224, 197,
-			72, 80, 15, 11, 200, 5, 81, 205, 20, 229, 5, 72, 80, 15, 7, 196, 40, 21, 129, 56, 15, 10, 199, 8, 148, 135, 37, 69, 9, 56,
-			15, 0, 9, 198, 77, 147, 133, 72, 114, 64, 15, 9, 198, 4, 194, 207, 32, 243, 0, 15, 10, 199, 104, 243, 204, 60, 114, 83, 44, 15,
-			10, 199, 77, 148, 212, 20, 210, 83, 44, 15, 10, 199, 64, 19, 132, 20, 210, 83, 44, 15, 10, 199, 52, 19, 1, 101, 50, 83, 44, 15,
-			10, 199, 52, 17, 217, 5, 34, 83, 44, 15, 10, 199, 45, 85, 193, 37, 66, 83, 44, 15, 10, 199, 44, 148, 135, 37, 50, 83, 44, 15,
-			10, 199, 28, 145, 193, 57, 66, 83, 44, 15, 10, 199, 28, 128, 78, 21, 50, 83, 44, 15, 10, 199, 28, 83, 204, 60, 114, 83, 44, 15,
-			10, 199, 25, 33, 78, 21, 66, 83, 44, 15, 10, 199, 24, 244, 133, 57, 50, 83, 44, 15, 10, 199, 21, 33, 77, 37, 66, 83, 44, 15,
-			10, 199, 16, 144, 76, 60, 114, 83, 44, 15, 10, 199, 9, 84, 141, 21, 50, 83, 44, 15, 10, 199, 8, 19, 19, 4, 210, 83, 44, 15,
-			10, 199, 5, 53, 13, 5, 66, 83, 44, 15, 12, 68, 12, 193, 82, 44, 49, 55, 121, 12, 49, 0, 0, 12, 201, 88, 19, 4, 32, 244,
-			142, 37, 53, 0, 15, 12, 201, 8, 82, 1, 88, 147, 210, 37, 53, 0, 15, 0, 10, 199, 28, 19, 135, 73, 243, 169, 76, 15, 14, 204,
-			60, 227, 205, 5, 67, 208, 60, 145, 84, 36, 179, 206, 10, 199, 8, 81, 18, 4, 113, 82, 36, 15, 0, 11, 200, 88, 148, 148, 84, 244,
-			197, 72, 144, 15, 11, 200, 81, 32, 75, 5, 52, 197, 72, 144, 15, 11, 200, 45, 33, 83, 80, 243, 65, 80, 144, 15, 7, 196, 33, 83,
-			65, 56, 16, 7, 196, 8, 19, 129, 56, 16, 21, 72, 12, 147, 131, 36, 227, 129, 80, 144, 89, 36, 50, 89, 37, 50, 6, 117, 47, 37,
-			0, 0, 9, 198, 76, 176, 66, 21, 34, 64, 15, 9, 198, 17, 34, 86, 21, 34, 64, 15, 0, 6, 195, 61, 130, 68, 15, 9, 68, 8,
-			246, 76, 20, 21, 0, 47, 0, 9, 198, 52, 147, 143, 37, 50, 192, 15, 9, 198, 17, 37, 83, 37, 50, 192, 15, 10, 199, 77, 84, 18,
-			20, 208, 84, 36, 15, 10, 199, 16, 148, 12, 60, 208, 84, 36, 15, 10, 199, 5, 85, 15, 45, 32, 84, 36, 15, 10, 69, 76, 147, 135,
-			48, 80, 21, 0, 47, 0, 0, 12, 201, 76, 241, 137, 77, 66, 75, 21, 33, 84, 15, 12, 201, 44, 243, 147, 80, 84, 142, 21, 33, 84,
-			15, 12, 201, 16, 148, 212, 36, 225, 214, 21, 33, 84, 15, 12, 201, 76, 243, 129, 72, 20, 16, 5, 32, 84, 15, 0, 7, 196, 32, 83,
-			132, 20, 72, 0, 30, 69, 69, 82, 67, 32, 80, 49, 111, 91, 15, 55, 124, 34, 6, 115, 12, 50, 12, 0, 81, 108, 111, 114, 114, 97,
-			105, 110, 101, 32, 11, 200, 8, 245, 82, 28, 83, 201, 76, 144, 15, 9, 198, 4, 231, 205, 37, 50, 192, 15, 10, 199, 65, 39, 211, 80,
-			147, 132, 20, 15, 8, 197, 56, 245, 137, 12, 80, 15, 8, 197, 64, 19, 129, 16, 80, 15, 8, 197, 56, 18, 129, 16, 80, 15, 8, 197,
-			5, 34, 193, 16, 80, 15, 8, 197, 8, 17, 193, 28, 80, 15, 12, 69, 52, 17, 1, 52, 80, 21, 102, 114, 0, 47, 0, 10, 199, 65,
-			39, 211, 36, 65, 78, 80, 15, 10, 199, 65, 39, 196, 36, 176, 78, 80, 15, 0, 20, 67, 16, 82, 129, 72, 36, 91, 57, 35, 15, 6,
-			84, 129, 0, 44, 81, 118, 117, 32, 11, 200, 80, 83, 203, 72, 21, 9, 76, 176, 15, 11, 200, 77, 147, 148, 4, 181, 9, 76, 176, 15,
-			11, 200, 77, 144, 129, 72, 149, 9, 76, 176, 15, 11, 200, 64, 20, 129, 8, 243, 9, 76, 176, 15, 11, 200, 37, 51, 1, 52, 149, 9,
-			76, 176, 15, 11, 200, 33, 145, 201, 20, 163, 137, 76, 176, 15, 11, 200, 32, 19, 147, 20, 21, 9, 76, 176, 15, 11, 200, 8, 147, 210,
-			101, 67, 73, 76, 176, 15, 11, 200, 5, 34, 201, 52, 81, 9, 76, 176, 15, 11, 200, 4, 229, 1, 72, 181, 9, 76, 176, 15, 11, 200,
-			4, 225, 1, 49, 84, 201, 76, 176, 15, 11, 200, 4, 193, 129, 8, 85, 9, 76, 176, 15, 11, 200, 4, 180, 143, 52, 21, 9, 76, 176,
-			15, 9, 198, 77, 147, 143, 57, 147, 73, 15, 12, 201, 20, 180, 207, 72, 34, 84, 4, 229, 0, 15, 0, 12, 201, 88, 149, 1, 48, 148,
-			212, 37, 50, 192, 15, 12, 201, 84, 226, 79, 56, 148, 212, 37, 50, 192, 15, 12, 201, 80, 245, 5, 52, 148, 212, 37, 50, 192, 15, 12,
-			201, 80, 147, 79, 45, 32, 84, 37, 50, 192, 15, 12, 201, 80, 84, 129, 64, 85, 84, 37, 50, 192, 15, 12, 201, 77, 148, 212, 20, 208,
-			84, 37, 50, 192, 15, 12, 201, 76, 227, 194, 8, 148, 212, 37, 50, 192, 15, 12, 201, 76, 86, 67, 32, 83, 12, 37, 50, 192, 15, 12,
-			201, 76, 21, 1, 56, 148, 212, 37, 50, 192, 15, 12, 201, 72, 246, 65, 48, 148, 212, 37, 50, 192, 15, 12, 201, 72, 145, 207, 72, 148,
-			212, 37, 50, 192, 15, 12, 201, 72, 16, 149, 48, 148, 212, 37, 50, 192, 15, 12, 201, 65, 54, 75, 60, 65, 76, 37, 50, 192, 15, 12,
-			201, 65, 54, 75, 20, 65, 76, 37, 50, 192, 15, 12, 201, 65, 35, 199, 56, 244, 212, 37, 50, 192, 15, 12, 201, 64, 244, 21, 48, 148,
-			212, 37, 50, 192, 15, 12, 201, 64, 193, 79, 56, 20, 212, 37, 50, 192, 15, 12, 201, 64, 20, 133, 57, 65, 84, 37, 50, 192, 15, 12,
-			201, 64, 19, 148, 20, 148, 212, 37, 50, 192, 15, 12, 201, 64, 16, 201, 24, 148, 212, 37, 50, 192, 15, 12, 201, 61, 37, 15, 16, 243,
-			148, 37, 50, 192, 15, 12, 201, 61, 5, 9, 52, 148, 212, 37, 50, 192, 15, 12, 201, 57, 83, 73, 76, 208, 84, 37, 50, 192, 15, 12,
-			201, 56, 146, 9, 48, 148, 212, 37, 50, 192, 15, 12, 201, 52, 244, 135, 4, 224, 84, 37, 50, 192, 15, 12, 201, 52, 244, 134, 20, 208,
-			84, 37, 50, 192, 15, 12, 201, 52, 244, 129, 48, 148, 212, 37, 50, 192, 15, 12, 201, 52, 243, 133, 28, 20, 203, 37, 50, 192, 15, 12,
-			201, 52, 85, 1, 77, 64, 84, 37, 50, 192, 15, 12, 201, 52, 82, 193, 56, 148, 212, 37, 50, 192, 15, 12, 201, 48, 246, 65, 48, 148,
-			212, 37, 50, 192, 15, 12, 201, 48, 241, 193, 72, 149, 13, 37, 50, 192, 15, 12, 201, 48, 147, 135, 88, 148, 212, 37, 50, 192, 15, 12,
-			201, 48, 83, 137, 56, 148, 212, 37, 50, 192, 15, 12, 201, 44, 243, 15, 72, 148, 212, 37, 50, 192, 15, 12, 201, 44, 21, 1, 48, 84,
-			20, 37, 50, 192, 15, 12, 201, 44, 20, 137, 76, 208, 84, 37, 50, 192, 15, 12, 201, 37, 51, 1, 52, 148, 212, 37, 50, 192, 15, 12,
-			201, 36, 65, 65, 48, 148, 212, 37, 50, 192, 15, 12, 201, 33, 83, 79, 72, 148, 212, 37, 50, 192, 15, 12, 201, 33, 83, 65, 56, 148,
-			212, 37, 50, 192, 15, 12, 201, 32, 147, 132, 84, 148, 212, 37, 50, 192, 15, 12, 201, 32, 81, 15, 56, 148, 212, 37, 50, 192, 15, 12,
-			201, 29, 32, 86, 37, 65, 84, 37, 50, 192, 15, 12, 201, 28, 83, 210, 28, 148, 212, 37, 50, 192, 15, 12, 201, 28, 21, 76, 48, 148,
-			212, 37, 50, 192, 15, 12, 201, 25, 85, 21, 72, 148, 212, 37, 50, 192, 15, 12, 201, 24, 144, 133, 72, 244, 20, 37, 50, 192, 15, 12,
-			201, 24, 83, 73, 56, 148, 212, 37, 50, 192, 15, 12, 201, 24, 21, 1, 48, 148, 212, 37, 50, 192, 15, 12, 201, 21, 81, 133, 52, 148,
-			212, 37, 50, 192, 15, 12, 201, 21, 52, 193, 100, 148, 212, 37, 50, 192, 15, 12, 201, 21, 50, 193, 64, 148, 212, 37, 50, 192, 15, 12,
-			201, 20, 212, 9, 72, 148, 212, 37, 50, 192, 15, 12, 201, 20, 208, 140, 20, 208, 84, 37, 50, 192, 15, 12, 201, 16, 148, 137, 28, 148,
-			212, 37, 50, 192, 15, 12, 201, 16, 148, 12, 60, 208, 84, 37, 50, 192, 15, 12, 201, 16, 144, 71, 56, 244, 212, 37, 50, 192, 15, 12,
-			201, 16, 83, 79, 45, 32, 84, 37, 50, 192, 15, 12, 201, 16, 83, 9, 72, 148, 212, 37, 50, 192, 15, 12, 201, 9, 81, 4, 32, 148,
-			212, 37, 50, 192, 15, 12, 201, 5, 85, 15, 45, 32, 84, 37, 50, 192, 15, 12, 201, 5, 53, 9, 28, 208, 84, 37, 50, 192, 15, 12,
-			201, 4, 229, 9, 76, 84, 20, 37, 50, 192, 15, 12, 201, 4, 227, 129, 48, 148, 212, 37, 50, 192, 15, 12, 201, 4, 224, 82, 44, 148,
-			212, 37, 50, 192, 15, 12, 201, 4, 197, 18, 84, 148, 212, 37, 50, 192, 15, 12, 201, 4, 194, 217, 52, 148, 212, 37, 50, 192, 15, 12,
-			201, 4, 181, 9, 88, 148, 212, 37, 50, 192, 15, 12, 201, 4, 180, 201, 60, 208, 84, 37, 50, 192, 15, 12, 201, 4, 84, 143, 56, 21,
-			84, 37, 50, 192, 15, 13, 202, 24, 244, 134, 5, 69, 5, 72, 147, 132, 20, 15, 0, 17, 67, 21, 101, 0, 36, 84, 115, 50, 47, 40,
-			6, 115, 55, 0, 13, 25, 8, 197, 4, 180, 201, 60, 208, 15, 8, 197, 52, 82, 133, 72, 144, 15, 8, 197, 4, 225, 5, 72, 144, 15,
-			8, 197, 80, 81, 5, 84, 208, 15, 11, 200, 64, 84, 137, 60, 66, 75, 84, 208, 15, 11, 200, 21, 2, 67, 20, 229, 18, 84, 208, 15,
-			0, 9, 198, 17, 148, 198, 5, 50, 64, 15, 9, 198, 28, 83, 204, 60, 114, 64, 15, 8, 197, 89, 228, 197, 72, 144, 15, 8, 197, 74,
-			145, 197, 72, 144, 15, 10, 199, 44, 148, 149, 72, 114, 83, 44, 15, 9, 198, 64, 19, 132, 20, 210, 64, 15, 0, 9, 198, 104, 147, 206,
-			37, 51, 69, 15, 8, 197, 80, 84, 141, 36, 176, 15, 8, 197, 73, 149, 13, 36, 176, 15, 7, 196, 77, 81, 1, 56, 15, 7, 196, 77,
-			81, 1, 56, 16, 7, 196, 76, 81, 1, 56, 16, 6, 195, 76, 147, 133, 76, 0, 7, 196, 80, 83, 210, 36, 15, 10, 199, 65, 54, 75,
-			36, 21, 18, 36, 15, 10, 199, 64, 146, 193, 57, 65, 82, 36, 15, 10, 199, 64, 20, 9, 77, 65, 82, 36, 15, 10, 199, 61, 5, 15,
-			52, 85, 18, 36, 15, 10, 199, 44, 20, 143, 77, 49, 82, 36, 15, 10, 199, 36, 225, 137, 72, 209, 82, 36, 15, 10, 199, 24, 245, 15,
-			52, 85, 18, 36, 15, 10, 199, 24, 147, 9, 77, 65, 82, 36, 15, 10, 199, 17, 148, 197, 57, 65, 82, 36, 15, 10, 199, 8, 145, 207,
-			81, 65, 82, 36, 15, 10, 199, 5, 37, 9, 77, 65, 82, 36, 15, 4, 193, 140, 43, 0, 11, 200, 44, 243, 80, 5, 36, 197, 72, 144,
-			15, 8, 197, 32, 21, 129, 72, 144, 15, 8, 197, 8, 145, 193, 52, 144, 15, 8, 197, 4, 224, 82, 44, 144, 15, 8, 197, 8, 20, 143,
-			56, 144, 15, 8, 197, 80, 83, 210, 20, 208, 15, 0, 9, 198, 88, 20, 203, 21, 34, 64, 15, 9, 198, 64, 192, 71, 21, 34, 64, 15,
-			9, 198, 53, 149, 20, 21, 34, 64, 15, 9, 198, 53, 148, 132, 21, 34, 64, 15, 9, 198, 48, 147, 135, 21, 34, 64, 15, 9, 198, 48,
-			81, 140, 21, 34, 64, 15, 9, 198, 44, 243, 9, 9, 34, 64, 15, 9, 198, 32, 82, 211, 21, 34, 64, 15, 9, 198, 24, 145, 140, 21,
-			34, 64, 15, 9, 198, 8, 20, 130, 5, 34, 64, 15, 20, 68, 12, 129, 67, 44, 47, 57, 115, 49, 6, 37, 50, 0, 44, 15, 81, 105,
-			110, 32, 9, 198, 81, 148, 15, 29, 32, 70, 15, 9, 198, 80, 244, 15, 29, 32, 70, 15, 9, 198, 80, 83, 5, 29, 32, 70, 15, 9,
-			198, 76, 84, 137, 29, 32, 70, 15, 9, 198, 32, 243, 79, 29, 32, 70, 15, 9, 198, 24, 245, 15, 29, 32, 70, 15, 9, 198, 21, 67,
-			143, 29, 32, 70, 15, 9, 198, 8, 20, 143, 29, 32, 70, 15, 9, 198, 5, 85, 15, 29, 32, 70, 15, 0, 9, 198, 8, 18, 212, 21,
-			34, 69, 15, 9, 198, 80, 84, 146, 5, 34, 69, 15, 9, 198, 44, 243, 12, 60, 66, 69, 15, 9, 198, 32, 84, 130, 5, 34, 69, 15,
-			6, 195, 28, 83, 137, 15, 9, 198, 77, 97, 67, 37, 51, 69, 15, 9, 198, 76, 192, 86, 37, 51, 69, 15, 0, 9, 198, 44, 243, 80,
-			48, 85, 0, 15, 9, 198, 44, 21, 129, 48, 85, 0, 15, 9, 198, 12, 243, 80, 48, 85, 0, 15, 9, 198, 48, 83, 137, 56, 148, 212,
-			15, 9, 198, 33, 83, 79, 72, 148, 212, 15, 9, 198, 64, 20, 137, 80, 85, 0, 15, 9, 198, 76, 20, 6, 37, 50, 192, 15, 9, 198,
-			52, 244, 193, 37, 50, 192, 15, 9, 198, 48, 19, 212, 37, 50, 192, 15, 9, 198, 44, 19, 212, 37, 50, 192, 15, 9, 198, 8, 147, 212,
-			37, 50, 192, 15, 9, 198, 5, 32, 66, 37, 50, 192, 15, 9, 198, 45, 38, 79, 48, 149, 0, 15, 6, 195, 21, 64, 84, 15, 0, 9,
-			198, 44, 244, 148, 20, 194, 71, 15, 9, 198, 44, 149, 129, 29, 66, 71, 15, 9, 198, 4, 197, 143, 72, 194, 71, 15, 9, 198, 4, 117,
-			5, 72, 194, 71, 15, 9, 198, 4, 100, 201, 56, 66, 71, 15, 9, 198, 44, 149, 129, 29, 66, 71, 15, 11, 67, 16, 149, 0, 72, 6,
-			37, 47, 0, 72, 0, 11, 200, 4, 208, 84, 165, 34, 83, 52, 80, 15, 12, 201, 44, 147, 133, 52, 21, 15, 29, 32, 70, 15, 12, 201,
-			32, 148, 212, 61, 34, 79, 29, 32, 70, 15, 9, 198, 65, 35, 198, 37, 64, 66, 15, 9, 198, 56, 81, 207, 80, 144, 66, 15, 9, 198,
-			16, 148, 208, 85, 64, 66, 15, 9, 198, 16, 148, 203, 85, 64, 66, 15, 9, 198, 16, 83, 79, 57, 64, 66, 15, 9, 198, 5, 4, 12,
-			36, 176, 66, 15, 9, 198, 4, 48, 197, 65, 64, 66, 15, 0, 12, 201, 64, 21, 15, 28, 83, 137, 80, 85, 0, 15, 12, 201, 24, 83,
-			73, 56, 147, 137, 80, 85, 0, 15, 7, 196, 72, 242, 197, 72, 15, 12, 201, 16, 83, 147, 37, 67, 205, 21, 68, 137, 15, 7, 196, 88,
-			83, 1, 72, 15, 0, 10, 199, 28, 20, 142, 37, 69, 82, 20, 15, 12, 201, 61, 48, 201, 48, 195, 211, 44, 244, 0, 15, 9, 198, 64,
-			18, 76, 48, 85, 0, 15, 10, 199, 76, 145, 206, 4, 193, 82, 20, 15, 10, 199, 72, 82, 204, 4, 209, 82, 20, 15, 10, 199, 72, 81,
-			143, 72, 209, 82, 20, 15, 10, 199, 65, 35, 198, 21, 65, 82, 20, 15, 10, 199, 65, 35, 196, 84, 49, 82, 20, 15, 10, 199, 64, 245,
-			5, 57, 49, 82, 20, 15, 10, 199, 64, 20, 143, 16, 145, 82, 20, 15, 10, 199, 64, 20, 134, 84, 209, 82, 20, 15, 10, 199, 44, 244,
-			212, 84, 209, 82, 20, 15, 10, 199, 44, 243, 148, 85, 33, 82, 20, 15, 10, 199, 8, 19, 1, 56, 49, 82, 20, 15, 10, 199, 4, 227,
-			143, 56, 49, 82, 20, 15, 10, 199, 4, 68, 133, 77, 49, 82, 20, 15, 9, 198, 64, 243, 70, 72, 149, 0, 15, 10, 199, 64, 19, 31,
-			60, 116, 129, 24, 15, 0, 12, 201, 76, 149, 21, 5, 66, 79, 56, 83, 0, 15, 12, 201, 72, 81, 1, 45, 66, 79, 56, 83, 0, 15,
-			9, 198, 85, 39, 205, 37, 50, 192, 15, 14, 203, 76, 17, 15, 52, 20, 207, 12, 130, 83, 52, 80, 15, 14, 203, 65, 35, 214, 36, 228,
-			201, 4, 194, 83, 52, 80, 15, 14, 203, 65, 35, 212, 20, 181, 9, 60, 226, 83, 52, 80, 15, 14, 203, 64, 84, 147, 64, 82, 212, 37,
-			98, 83, 52, 80, 15, 14, 203, 64, 84, 134, 20, 181, 9, 60, 226, 83, 52, 80, 15, 14, 203, 52, 19, 20, 33, 84, 201, 4, 226, 83,
-			52, 80, 15, 14, 203, 52, 16, 200, 36, 21, 133, 48, 194, 83, 52, 80, 15, 14, 203, 44, 243, 77, 84, 226, 84, 5, 34, 83, 52, 80,
-			15, 14, 203, 44, 243, 77, 21, 32, 201, 4, 194, 83, 52, 80, 15, 14, 203, 36, 225, 9, 88, 145, 21, 4, 194, 83, 52, 80, 15, 14,
-			203, 36, 212, 18, 21, 52, 201, 60, 226, 83, 52, 80, 15, 14, 203, 24, 192, 71, 20, 195, 1, 57, 66, 83, 52, 80, 15, 14, 203, 20,
-			180, 208, 4, 228, 201, 60, 226, 83, 52, 80, 15, 14, 203, 9, 84, 133, 5, 82, 210, 5, 66, 83, 52, 80, 15, 14, 203, 9, 32, 78,
-			16, 84, 201, 4, 226, 83, 52, 80, 15, 14, 203, 5, 34, 83, 80, 242, 210, 5, 66, 83, 52, 80, 15, 0, 8, 197, 49, 241, 5, 72,
-			80, 15, 9, 198, 76, 144, 137, 72, 145, 78, 15, 9, 198, 28, 83, 210, 28, 145, 78, 15, 9, 198, 21, 66, 79, 64, 145, 78, 15, 9,
-			198, 77, 84, 146, 20, 19, 0, 15, 9, 198, 26, 145, 5, 72, 19, 0, 15, 18, 73, 76, 128, 85, 28, 131, 133, 77, 54, 64, 91, 126,
-			50, 116, 89, 111, 0, 0, 20, 67, 32, 19, 128, 107, 117, 50, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 10, 199, 28, 192,
-			78, 17, 83, 41, 76, 15, 9, 198, 52, 146, 210, 61, 67, 205, 15, 12, 201, 36, 224, 75, 80, 149, 137, 80, 85, 0, 15, 7, 196, 52,
-			148, 197, 72, 15, 7, 196, 48, 241, 197, 72, 15, 7, 196, 45, 33, 69, 72, 15, 7, 196, 16, 21, 5, 72, 15, 11, 200, 104, 147, 206,
-			37, 53, 9, 76, 176, 15, 11, 200, 104, 147, 66, 4, 37, 201, 76, 176, 15, 11, 200, 77, 147, 139, 72, 243, 137, 76, 176, 15, 11, 200,
-			77, 147, 77, 21, 68, 137, 76, 176, 15, 11, 200, 77, 66, 76, 37, 53, 9, 76, 176, 15, 11, 200, 77, 64, 84, 84, 20, 137, 76, 176,
-			15, 11, 200, 77, 64, 84, 37, 53, 9, 76, 176, 15, 11, 200, 77, 2, 82, 4, 229, 9, 76, 176, 15, 11, 200, 76, 179, 204, 5, 53,
-			9, 76, 176, 15, 11, 200, 56, 85, 82, 4, 193, 201, 76, 176, 15, 11, 200, 52, 18, 197, 16, 243, 137, 76, 176, 15, 11, 200, 49, 83,
-			132, 20, 228, 201, 76, 176, 15, 11, 200, 45, 83, 9, 56, 20, 137, 76, 176, 15, 11, 200, 45, 33, 84, 20, 228, 201, 76, 176, 15, 11,
-			200, 44, 21, 1, 49, 149, 9, 76, 176, 15, 11, 200, 44, 20, 213, 37, 53, 9, 76, 176, 15, 11, 200, 37, 51, 212, 21, 35, 73, 76,
-			176, 15, 11, 200, 29, 148, 129, 80, 244, 137, 76, 176, 15, 11, 200, 28, 84, 137, 5, 68, 137, 76, 176, 15, 11, 200, 24, 20, 195, 37,
-			53, 9, 76, 176, 15, 11, 200, 16, 144, 83, 80, 243, 9, 76, 176, 15, 11, 200, 8, 147, 205, 21, 68, 137, 76, 176, 15, 11, 200, 4,
-			194, 207, 32, 243, 9, 76, 176, 15, 11, 67, 16, 147, 128, 72, 6, 37, 50, 0, 76, 6, 195, 32, 19, 128, 72, 0, 10, 199, 20, 180,
-			208, 61, 37, 41, 72, 15, 12, 201, 81, 34, 78, 36, 64, 68, 37, 50, 192, 15, 12, 201, 80, 83, 5, 76, 179, 208, 37, 50, 192, 15,
-			12, 201, 80, 18, 211, 60, 227, 205, 37, 50, 192, 15, 12, 201, 77, 147, 133, 72, 113, 84, 37, 50, 192, 15, 12, 201, 77, 147, 80, 5,
-			65, 84, 37, 50, 192, 15, 12, 201, 65, 54, 75, 60, 177, 77, 37, 50, 192, 15, 12, 201, 65, 35, 212, 61, 70, 80, 37, 50, 192, 15,
-			12, 201, 64, 243, 25, 73, 149, 13, 37, 50, 192, 15, 12, 201, 64, 20, 129, 80, 18, 212, 37, 50, 192, 15, 12, 201, 56, 84, 15, 80,
-			148, 212, 37, 50, 192, 15, 12, 201, 53, 84, 201, 44, 19, 148, 37, 50, 192, 15, 12, 201, 52, 244, 203, 61, 98, 84, 37, 50, 192, 15,
-			12, 201, 52, 85, 15, 16, 148, 212, 37, 50, 192, 15, 12, 201, 52, 84, 143, 88, 147, 135, 37, 50, 192, 15, 12, 201, 48, 16, 153, 72,
-			147, 148, 37, 50, 192, 15, 12, 201, 45, 144, 133, 72, 225, 84, 37, 50, 192, 15, 12, 201, 45, 38, 83, 80, 19, 12, 37, 50, 192, 15,
-			12, 201, 44, 244, 205, 60, 195, 199, 37, 50, 192, 15, 12, 201, 44, 148, 143, 52, 19, 148, 37, 50, 192, 15, 12, 201, 44, 21, 1, 65,
-			83, 20, 37, 50, 192, 15, 12, 201, 37, 52, 129, 20, 194, 84, 37, 50, 192, 15, 12, 201, 33, 148, 15, 80, 18, 212, 37, 50, 192, 15,
-			12, 201, 33, 145, 18, 60, 198, 84, 37, 50, 192, 15, 12, 201, 32, 148, 212, 60, 195, 199, 37, 50, 192, 15, 12, 201, 32, 84, 146, 56,
-			133, 84, 37, 50, 192, 15, 12, 201, 32, 83, 73, 13, 146, 204, 37, 50, 192, 15, 12, 201, 29, 32, 70, 60, 227, 205, 37, 50, 192, 15,
-			12, 201, 16, 149, 25, 72, 19, 66, 37, 50, 192, 15, 12, 201, 12, 243, 135, 60, 193, 83, 37, 50, 192, 15, 12, 201, 12, 86, 76, 60,
-			225, 83, 37, 50, 192, 15, 12, 201, 5, 3, 208, 48, 82, 212, 37, 50, 192, 15, 12, 201, 5, 3, 204, 60, 113, 84, 37, 50, 192, 15,
-			12, 201, 4, 224, 75, 60, 197, 84, 37, 50, 192, 15, 12, 201, 4, 193, 207, 72, 149, 13, 37, 50, 192, 15, 0, 11, 200, 89, 83, 11,
-			4, 226, 83, 165, 32, 15, 11, 200, 5, 32, 137, 81, 32, 71, 165, 32, 15, 11, 200, 8, 83, 133, 16, 144, 197, 72, 80, 68, 12, 201,
-			88, 84, 137, 24, 144, 197, 72, 147, 135, 15, 12, 201, 88, 19, 15, 72, 148, 197, 72, 147, 135, 15, 12, 201, 84, 67, 9, 12, 149, 5,
-			72, 147, 135, 15, 12, 201, 84, 65, 5, 48, 81, 197, 72, 147, 135, 15, 12, 201, 81, 32, 78, 76, 149, 5, 72, 147, 135, 15, 12, 201,
-			80, 83, 5, 88, 148, 197, 72, 147, 135, 15, 12, 201, 80, 82, 211, 81, 84, 133, 72, 147, 135, 15, 12, 201, 77, 80, 148, 72, 18, 5,
-			72, 147, 135, 15, 12, 201, 77, 80, 147, 36, 66, 69, 72, 147, 135, 15, 12, 201, 76, 177, 76, 21, 69, 5, 72, 147, 135, 15, 12, 201,
-			72, 85, 129, 48, 145, 5, 72, 147, 135, 15, 12, 201, 72, 85, 15, 84, 50, 5, 72, 147, 135, 15, 12, 201, 72, 84, 212, 37, 69, 69,
-			72, 147, 135, 15, 12, 201, 72, 82, 210, 85, 69, 5, 72, 147, 135, 15, 12, 201, 72, 81, 140, 20, 181, 5, 72, 147, 135, 15, 12, 201,
-			72, 81, 86, 4, 197, 69, 72, 147, 135, 15, 12, 201, 72, 20, 16, 61, 37, 5, 72, 147, 135, 15, 12, 201, 65, 35, 202, 20, 181, 5,
-			72, 147, 135, 15, 12, 201, 65, 34, 79, 72, 149, 5, 72, 147, 135, 15, 12, 201, 64, 243, 1, 72, 148, 197, 72, 147, 135, 15, 12, 201,
-			64, 84, 150, 21, 37, 5, 72, 147, 135, 15, 12, 201, 64, 84, 141, 37, 69, 5, 72, 147, 135, 15, 12, 201, 64, 16, 201, 24, 144, 197,
-			72, 147, 135, 15, 12, 201, 56, 22, 137, 24, 144, 197, 72, 147, 135, 15, 12, 201, 52, 241, 9, 24, 144, 197, 72, 147, 135, 15, 12, 201,
-			52, 82, 193, 56, 148, 197, 72, 147, 135, 15, 12, 201, 48, 21, 9, 56, 148, 197, 72, 147, 135, 15, 12, 201, 44, 244, 147, 21, 69, 5,
-			72, 147, 135, 15, 12, 201, 44, 244, 146, 84, 212, 5, 72, 147, 135, 15, 12, 201, 44, 243, 150, 21, 37, 5, 72, 147, 135, 15, 12, 201,
-			44, 243, 147, 81, 37, 69, 72, 147, 135, 15, 12, 201, 44, 243, 147, 80, 21, 5, 72, 147, 135, 15, 12, 201, 44, 243, 134, 37, 50, 197,
-			72, 147, 135, 15, 12, 201, 44, 243, 77, 37, 69, 5, 72, 147, 135, 15, 12, 201, 44, 243, 16, 61, 37, 5, 72, 147, 135, 15, 12, 201,
-			44, 243, 15, 56, 148, 197, 72, 147, 135, 15, 12, 201, 44, 241, 9, 24, 144, 197, 72, 147, 135, 15, 12, 201, 36, 229, 129, 48, 145, 5,
-			72, 147, 135, 15, 12, 201, 36, 229, 9, 52, 145, 5, 72, 147, 135, 15, 12, 201, 36, 228, 212, 37, 69, 69, 72, 147, 135, 15, 12, 201,
-			36, 225, 11, 61, 2, 69, 72, 147, 135, 15, 12, 201, 36, 70, 76, 48, 148, 197, 72, 147, 135, 15, 12, 201, 29, 37, 66, 48, 148, 197,
-			72, 147, 135, 15, 12, 201, 28, 20, 146, 61, 69, 5, 72, 147, 135, 15, 12, 201, 24, 197, 79, 72, 145, 5, 72, 147, 135, 15, 12, 201,
-			21, 85, 18, 60, 98, 69, 72, 147, 135, 15, 12, 201, 21, 81, 143, 72, 148, 197, 72, 147, 135, 15, 12, 201, 21, 66, 75, 21, 69, 5,
-			72, 147, 135, 15, 12, 201, 20, 97, 133, 45, 69, 69, 72, 147, 135, 15, 12, 201, 16, 148, 212, 72, 18, 5, 72, 147, 135, 15, 12, 201,
-			9, 81, 7, 21, 69, 5, 72, 147, 135, 15, 12, 201, 9, 34, 75, 21, 69, 5, 72, 147, 135, 15, 12, 201, 8, 245, 1, 56, 148, 197,
-			72, 147, 135, 15, 12, 201, 8, 243, 66, 5, 33, 5, 72, 147, 135, 15, 12, 201, 8, 147, 12, 21, 69, 5, 72, 147, 135, 15, 12, 201,
-			8, 20, 212, 5, 33, 5, 72, 147, 135, 15, 12, 201, 5, 53, 18, 36, 225, 197, 72, 147, 135, 15, 12, 201, 4, 229, 9, 44, 148, 197,
-			72, 147, 135, 15, 12, 201, 4, 229, 5, 16, 21, 5, 72, 147, 135, 15, 12, 201, 4, 211, 210, 80, 148, 197, 72, 147, 135, 15, 12, 201,
-			4, 48, 197, 57, 69, 69, 72, 147, 135, 15, 12, 201, 4, 36, 212, 72, 18, 5, 72, 147, 135, 15, 11, 200, 77, 84, 16, 61, 37, 5,
-			72, 80, 15, 11, 200, 36, 225, 19, 81, 81, 5, 72, 80, 15, 11, 200, 77, 64, 84, 36, 243, 133, 72, 80, 15, 11, 200, 72, 82, 210,
-			85, 69, 5, 72, 80, 15, 11, 200, 72, 20, 16, 61, 37, 5, 72, 80, 15, 11, 200, 64, 145, 205, 20, 229, 5, 72, 80, 15, 11, 200,
-			36, 229, 129, 48, 145, 5, 72, 80, 15, 11, 200, 28, 20, 146, 61, 69, 5, 72, 80, 15, 11, 200, 8, 241, 211, 80, 21, 133, 72, 80,
-			15, 11, 200, 8, 147, 199, 72, 17, 133, 72, 80, 15, 11, 200, 5, 82, 212, 36, 243, 133, 72, 80, 15, 11, 200, 65, 35, 211, 12, 83,
-			137, 84, 208, 15, 11, 200, 45, 84, 129, 80, 244, 137, 84, 208, 15, 11, 200, 28, 195, 211, 76, 20, 137, 84, 208, 15, 0, 9, 198, 24,
-			19, 148, 5, 50, 64, 15, 9, 198, 49, 241, 5, 72, 147, 135, 15, 8, 197, 74, 149, 133, 72, 144, 15, 0, 10, 199, 8, 149, 21, 52,
-			147, 169, 76, 15, 9, 198, 77, 10, 71, 21, 34, 64, 15, 9, 198, 45, 245, 140, 21, 34, 64, 15, 9, 198, 34, 147, 147, 21, 34, 64,
-			15, 9, 198, 32, 243, 79, 24, 243, 137, 15, 0, 10, 199, 36, 228, 197, 52, 147, 169, 72, 15, 10, 199, 45, 84, 141, 4, 113, 82, 36,
-			15, 7, 196, 33, 99, 210, 36, 15, 0, 28, 75, 44, 243, 134, 37, 35, 65, 56, 65, 82, 56, 80, 49, 108, 50, 83, 36, 34, 65, 6,
-			117, 50, 72, 110, 50, 13, 0, 11, 200, 77, 147, 80, 5, 66, 83, 165, 32, 15, 11, 200, 56, 20, 139, 61, 66, 83, 165, 32, 15, 11,
-			200, 52, 17, 206, 21, 66, 83, 165, 32, 15, 11, 200, 33, 148, 14, 61, 66, 83, 165, 32, 15, 12, 201, 8, 80, 82, 8, 82, 132, 56,
-			147, 135, 67, 12, 201, 81, 32, 86, 21, 53, 5, 72, 147, 135, 15, 12, 201, 81, 32, 86, 21, 36, 197, 72, 147, 135, 15, 12, 201, 77,
-			84, 208, 20, 225, 5, 72, 147, 135, 15, 12, 201, 77, 64, 84, 36, 243, 133, 72, 147, 135, 15, 12, 201, 76, 82, 214, 20, 228, 197, 72,
-			147, 135, 15, 12, 201, 76, 81, 205, 20, 229, 5, 72, 147, 135, 15, 12, 201, 72, 83, 1, 80, 149, 133, 72, 147, 135, 15, 12, 201, 72,
-			80, 75, 80, 149, 133, 72, 147, 135, 15, 12, 201, 65, 35, 204, 60, 225, 197, 72, 147, 135, 15, 12, 201, 64, 145, 205, 20, 229, 5, 72,
-			147, 135, 15, 12, 201, 52, 243, 137, 80, 244, 133, 72, 147, 135, 15, 12, 201, 44, 243, 147, 21, 37, 133, 72, 147, 135, 15, 12, 201, 44,
-			243, 134, 84, 225, 5, 72, 147, 135, 15, 12, 201, 44, 243, 80, 61, 53, 5, 72, 147, 135, 15, 12, 201, 44, 243, 77, 20, 229, 5, 72,
-			147, 135, 15, 12, 201, 36, 225, 19, 81, 81, 5, 72, 147, 135, 15, 12, 201, 36, 225, 18, 4, 225, 197, 72, 147, 135, 15, 12, 201, 36,
-			225, 7, 72, 21, 133, 72, 147, 135, 15, 12, 201, 24, 84, 141, 20, 229, 5, 72, 147, 135, 15, 12, 201, 21, 50, 193, 52, 245, 5, 72,
-			147, 135, 15, 12, 201, 20, 180, 203, 49, 81, 5, 72, 147, 135, 15, 12, 201, 16, 148, 212, 4, 224, 197, 72, 147, 135, 15, 12, 201, 16,
-			148, 208, 21, 33, 197, 72, 147, 135, 15, 12, 201, 16, 148, 203, 60, 229, 5, 72, 147, 135, 15, 12, 201, 16, 145, 148, 60, 225, 197, 72,
-			147, 135, 15, 12, 201, 16, 84, 193, 88, 245, 69, 72, 147, 135, 15, 12, 201, 16, 84, 18, 20, 50, 69, 72, 147, 135, 15, 12, 201, 16,
-			81, 197, 56, 84, 133, 72, 147, 135, 15, 12, 201, 16, 80, 197, 57, 68, 133, 72, 147, 135, 15, 12, 201, 8, 241, 211, 80, 21, 133, 72,
-			147, 135, 15, 12, 201, 8, 147, 199, 72, 17, 133, 72, 147, 135, 15, 12, 201, 8, 19, 12, 5, 53, 5, 72, 147, 135, 15, 12, 201, 4,
-			48, 197, 48, 84, 133, 72, 147, 135, 15, 11, 200, 48, 145, 197, 52, 17, 197, 72, 144, 15, 8, 197, 48, 144, 133, 72, 144, 15, 11, 200,
-			44, 20, 146, 61, 52, 197, 72, 144, 15, 11, 200, 9, 83, 148, 52, 17, 197, 72, 144, 15, 8, 197, 29, 84, 129, 52, 144, 15, 0, 9,
-			198, 88, 19, 11, 21, 34, 64, 15, 9, 198, 76, 243, 4, 21, 34, 64, 15, 9, 198, 65, 32, 76, 21, 34, 64, 15, 9, 198, 64, 147,
-			80, 21, 34, 64, 15, 9, 198, 64, 147, 12, 21, 34, 64, 15, 9, 198, 64, 19, 80, 21, 34, 64, 15, 9, 198, 52, 19, 20, 21, 34,
-			64, 15, 9, 198, 48, 245, 20, 21, 34, 64, 15, 12, 201, 45, 96, 78, 80, 85, 5, 61, 34, 64, 15, 12, 201, 44, 19, 77, 21, 32,
-			84, 21, 34, 64, 15, 9, 198, 33, 146, 204, 21, 34, 64, 15, 9, 198, 29, 34, 83, 21, 34, 64, 15, 9, 198, 28, 19, 12, 21, 34,
-			64, 15, 9, 198, 9, 145, 199, 21, 34, 64, 15, 9, 198, 9, 83, 20, 21, 34, 64, 15, 9, 198, 8, 21, 20, 21, 34, 64, 15, 9,
-			198, 77, 147, 80, 5, 66, 64, 15, 9, 198, 24, 20, 133, 77, 66, 64, 15, 9, 198, 17, 147, 129, 77, 66, 64, 15, 9, 198, 16, 83,
-			69, 57, 66, 64, 15, 9, 198, 33, 96, 66, 20, 128, 82, 15, 9, 198, 24, 244, 141, 84, 192, 82, 15, 7, 66, 16, 160, 21, 0, 47,
-			0, 31, 67, 64, 20, 128, 48, 121, 12, 115, 81, 89, 14, 6, 55, 35, 12, 68, 89, 0, 81, 101, 120, 99, 101, 108, 108, 101, 110, 99,
-			101, 32, 12, 201, 8, 80, 82, 8, 82, 132, 20, 196, 197, 67, 9, 198, 52, 243, 143, 80, 243, 137, 15, 9, 198, 52, 243, 143, 52, 19,
-			137, 15, 9, 198, 16, 144, 75, 72, 243, 137, 15, 9, 67, 32, 20, 128, 107, 121, 0, 76, 0, 9, 198, 65, 83, 12, 36, 213, 84, 15,
-			9, 198, 85, 67, 208, 37, 50, 192, 15, 9, 198, 32, 18, 84, 37, 50, 192, 15, 9, 198, 21, 35, 212, 37, 50, 192, 15, 9, 198, 5,
-			67, 205, 37, 50, 192, 15, 9, 198, 17, 147, 129, 52, 146, 192, 15, 0, 11, 200, 53, 150, 15, 52, 21, 15, 76, 80, 15, 9, 198, 65,
-			39, 208, 5, 32, 84, 15, 12, 4, 95, 49, 49, 111, 115, 55, 83, 72, 14, 0, 0, 0, 10, 199, 44, 244, 146, 20, 181, 21, 72, 15,
-			9, 198, 65, 39, 208, 5, 33, 82, 15, 9, 198, 65, 39, 198, 21, 33, 82, 15, 9, 198, 4, 211, 79, 56, 149, 77, 15, 6, 195, 40,
-			84, 128, 72, 0, 0, 8, 197, 56, 147, 194, 36, 80, 15, 11, 200, 81, 32, 75, 20, 245, 15, 52, 144, 15, 10, 199, 72, 84, 5, 48,
-			193, 78, 80, 15, 10, 199, 64, 84, 141, 4, 225, 78, 80, 15, 10, 199, 21, 128, 197, 48, 193, 78, 80, 15, 10, 199, 5, 52, 201, 77,
-			65, 78, 80, 15, 13, 202, 44, 19, 3, 37, 83, 78, 37, 68, 129, 80, 15, 13, 202, 12, 19, 3, 37, 83, 78, 37, 68, 129, 80, 15,
-			10, 199, 72, 84, 213, 49, 64, 78, 80, 15, 10, 199, 60, 36, 197, 73, 96, 78, 80, 15, 10, 199, 44, 243, 147, 60, 224, 78, 80, 15,
-			13, 69, 76, 195, 193, 56, 80, 89, 55, 125, 58, 50, 0, 0, 9, 66, 33, 32, 107, 117, 34, 0, 25, 12, 201, 88, 20, 133, 16, 82,
-			204, 5, 33, 82, 15, 9, 198, 44, 147, 95, 72, 148, 203, 15, 9, 198, 17, 243, 79, 56, 148, 203, 15, 10, 199, 77, 147, 143, 57, 147,
-			73, 44, 15, 0, 10, 67, 32, 21, 128, 107, 121, 40, 0, 49, 25, 67, 32, 243, 5, 107, 6, 39, 40, 55, 37, 50, 58, 4, 127, 50,
-			0, 82, 105, 110, 32, 111, 110, 101, 32, 11, 200, 80, 244, 15, 48, 241, 201, 76, 176, 15, 11, 200, 76, 86, 15, 48, 241, 201, 76, 176,
-			15, 11, 200, 64, 243, 25, 56, 84, 201, 76, 176, 15, 11, 200, 53, 149, 15, 48, 241, 201, 76, 176, 15, 11, 200, 52, 243, 143, 48, 241,
-			201, 76, 176, 15, 11, 200, 52, 147, 1, 56, 84, 201, 76, 176, 15, 11, 200, 52, 83, 1, 56, 84, 201, 76, 176, 15, 11, 200, 52, 19,
-			1, 8, 20, 137, 76, 176, 15, 11, 200, 20, 180, 207, 80, 84, 137, 76, 176, 15, 11, 200, 9, 38, 79, 48, 241, 201, 76, 176, 15, 11,
-			200, 8, 19, 19, 81, 148, 137, 76, 176, 15, 9, 198, 65, 35, 208, 72, 149, 77, 15, 0, 0, 12, 201, 80, 84, 141, 60, 116, 129, 24,
-			148, 203, 15, 12, 201, 80, 82, 206, 60, 180, 129, 80, 148, 203, 15, 12, 201, 76, 176, 78, 16, 147, 129, 88, 148, 203, 15, 12, 201, 76,
-			49, 78, 60, 116, 129, 24, 148, 203, 15, 12, 201, 72, 84, 18, 60, 116, 129, 24, 148, 203, 15, 12, 201, 72, 81, 143, 72, 210, 83, 80,
-			148, 203, 15, 12, 201, 64, 244, 142, 60, 116, 129, 24, 148, 203, 15, 12, 201, 64, 243, 25, 80, 82, 83, 80, 148, 203, 15, 12, 201, 64,
-			84, 211, 36, 210, 83, 80, 148, 203, 15, 12, 201, 56, 21, 137, 28, 21, 15, 72, 148, 203, 15, 12, 201, 52, 243, 143, 80, 82, 83, 80,
-			148, 203, 15, 12, 201, 52, 243, 129, 72, 178, 83, 80, 148, 203, 15, 12, 201, 52, 85, 15, 16, 243, 15, 28, 148, 203, 15, 12, 201, 52,
-			85, 1, 48, 197, 82, 28, 148, 203, 15, 12, 201, 52, 20, 212, 60, 67, 206, 80, 148, 203, 15, 12, 201, 45, 34, 83, 80, 243, 15, 28,
-			148, 203, 15, 12, 201, 44, 244, 133, 60, 116, 129, 24, 148, 203, 15, 12, 201, 44, 243, 150, 84, 196, 201, 88, 148, 203, 15, 12, 201, 44,
-			20, 132, 36, 243, 15, 28, 148, 203, 15, 12, 201, 36, 212, 5, 72, 21, 9, 88, 148, 203, 15, 12, 201, 33, 148, 15, 44, 243, 132, 72,
-			148, 203, 15, 12, 201, 33, 145, 18, 60, 116, 129, 24, 148, 203, 15, 12, 201, 33, 81, 213, 20, 227, 212, 80, 148, 203, 15, 12, 201, 32,
-			82, 211, 4, 209, 84, 72, 148, 203, 15, 12, 201, 24, 244, 130, 73, 145, 5, 72, 148, 203, 15, 12, 201, 24, 20, 141, 4, 49, 85, 80,
-			148, 203, 15, 12, 201, 24, 19, 1, 56, 114, 83, 80, 148, 203, 15, 12, 201, 20, 229, 21, 76, 144, 83, 80, 148, 203, 15, 12, 201, 20,
-			229, 15, 52, 243, 15, 28, 148, 203, 15, 12, 201, 16, 81, 129, 37, 66, 83, 80, 148, 203, 15, 7, 196, 52, 240, 137, 48, 15, 7, 196,
-			72, 81, 193, 48, 15, 7, 196, 36, 65, 65, 48, 15, 0, 9, 198, 88, 144, 146, 4, 99, 206, 15, 9, 198, 76, 245, 83, 4, 99, 206,
-			15, 10, 199, 28, 83, 198, 101, 50, 83, 44, 15, 10, 199, 16, 147, 206, 101, 50, 83, 44, 15, 10, 199, 5, 85, 1, 72, 178, 83, 44,
-			15, 0, 20, 67, 4, 195, 5, 117, 55, 112, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 10, 199, 81, 32, 68, 37, 66, 79,
-			56, 15, 10, 199, 76, 83, 5, 45, 66, 79, 56, 15, 10, 199, 44, 243, 12, 5, 66, 79, 56, 15, 10, 199, 29, 32, 68, 5, 66, 79,
-			56, 15, 9, 198, 76, 218, 82, 21, 34, 64, 15, 9, 198, 76, 202, 83, 21, 34, 64, 15, 9, 198, 53, 243, 11, 21, 34, 64, 15, 9,
-			198, 49, 242, 203, 21, 34, 64, 15, 9, 198, 25, 244, 135, 21, 34, 64, 15, 9, 198, 80, 83, 5, 64, 21, 9, 15, 9, 198, 21, 2,
-			90, 60, 245, 9, 15, 17, 70, 105, 80, 195, 32, 147, 137, 89, 40, 49, 6, 37, 50, 37, 0, 15, 9, 198, 49, 81, 15, 52, 19, 137,
-			15, 4, 193, 144, 43, 0, 10, 199, 44, 243, 132, 37, 67, 210, 36, 15, 8, 197, 76, 17, 146, 4, 224, 16, 0, 11, 200, 48, 145, 66,
-			32, 21, 133, 72, 144, 15, 11, 200, 8, 241, 200, 60, 193, 5, 72, 144, 15, 12, 201, 76, 83, 133, 28, 19, 5, 76, 148, 203, 15, 12,
-			201, 72, 81, 140, 20, 181, 15, 72, 148, 203, 15, 12, 201, 52, 83, 147, 40, 85, 137, 44, 148, 203, 15, 12, 201, 48, 243, 135, 60, 32,
-			82, 16, 148, 203, 15, 12, 201, 44, 243, 77, 37, 52, 193, 72, 148, 203, 15, 12, 201, 20, 180, 197, 53, 3, 1, 72, 148, 203, 15, 12,
-			201, 16, 149, 137, 56, 21, 15, 72, 148, 203, 15, 12, 201, 4, 69, 143, 44, 21, 15, 72, 148, 203, 15, 11, 200, 24, 147, 8, 5, 35,
-			79, 56, 144, 15, 9, 198, 56, 244, 141, 4, 227, 128, 15, 0, 25, 73, 77, 21, 65, 72, 81, 1, 56, 49, 78, 89, 49, 58, 6, 115,
-			108, 72, 117, 12, 50, 89, 14, 50, 0, 12, 201, 64, 19, 132, 20, 176, 71, 21, 34, 64, 15, 12, 201, 28, 83, 146, 20, 208, 76, 21,
-			34, 64, 15, 12, 201, 4, 180, 207, 56, 243, 69, 81, 34, 64, 15, 10, 199, 80, 18, 206, 20, 211, 9, 28, 15, 10, 199, 24, 244, 147,
-			60, 227, 9, 28, 15, 12, 201, 124, 118, 80, 80, 243, 15, 28, 148, 203, 15, 11, 200, 24, 20, 195, 37, 53, 15, 36, 64, 15, 8, 197,
-			53, 84, 197, 4, 192, 15, 0, 10, 199, 16, 85, 15, 56, 21, 15, 72, 15, 7, 196, 45, 84, 15, 56, 15, 9, 198, 64, 148, 212, 4,
-			50, 69, 15, 9, 198, 5, 84, 208, 36, 50, 69, 15, 9, 198, 53, 149, 15, 52, 19, 137, 15, 6, 195, 52, 19, 137, 15, 0, 9, 198,
-			81, 32, 80, 64, 148, 212, 15, 9, 198, 80, 83, 143, 72, 148, 212, 15, 9, 198, 52, 82, 133, 72, 148, 212, 15, 9, 198, 48, 21, 9,
-			56, 148, 212, 15, 9, 198, 44, 243, 15, 72, 148, 212, 15, 9, 198, 33, 83, 65, 56, 148, 212, 15, 9, 198, 28, 83, 210, 28, 148, 212,
-			15, 9, 198, 24, 83, 73, 56, 148, 212, 15, 9, 198, 20, 212, 9, 72, 148, 212, 15, 9, 198, 9, 81, 4, 32, 148, 212, 15, 9, 198,
-			8, 18, 83, 76, 148, 212, 15, 9, 198, 4, 197, 18, 84, 148, 212, 15, 9, 198, 4, 196, 9, 56, 148, 212, 15, 9, 198, 4, 181, 9,
-			88, 148, 212, 15, 10, 199, 164, 213, 30, 48, 83, 9, 28, 15, 9, 198, 52, 243, 135, 60, 194, 68, 15, 9, 198, 77, 240, 153, 56, 149,
-			0, 15, 9, 198, 77, 144, 129, 72, 149, 0, 15, 9, 198, 52, 81, 193, 8, 149, 0, 15, 9, 198, 44, 147, 15, 8, 149, 0, 15, 8,
-			197, 20, 228, 201, 4, 224, 16, 0, 7, 196, 44, 19, 149, 80, 15, 9, 198, 16, 144, 75, 72, 243, 128, 15, 9, 198, 76, 82, 212, 36,
-			243, 128, 15, 9, 198, 72, 82, 212, 36, 243, 128, 15, 9, 198, 64, 244, 148, 36, 243, 128, 15, 9, 198, 48, 82, 212, 36, 243, 128, 15,
-			9, 198, 24, 146, 212, 36, 243, 128, 15, 9, 198, 24, 18, 212, 36, 243, 128, 15, 9, 198, 20, 66, 84, 36, 243, 128, 15, 9, 198, 16,
-			146, 212, 36, 243, 128, 15, 11, 200, 58, 145, 20, 165, 33, 148, 36, 112, 15, 11, 200, 64, 83, 1, 72, 115, 206, 36, 80, 15, 11, 200,
-			65, 34, 86, 36, 193, 71, 36, 80, 15, 7, 196, 48, 85, 137, 80, 15, 9, 198, 52, 83, 1, 56, 147, 128, 15, 9, 198, 52, 22, 129,
-			72, 147, 128, 15, 17, 70, 12, 128, 71, 72, 147, 128, 91, 35, 81, 34, 6, 115, 68, 0, 15, 11, 200, 89, 83, 11, 4, 226, 83, 52,
-			80, 15, 11, 200, 76, 243, 9, 65, 50, 83, 52, 80, 15, 11, 200, 72, 85, 77, 5, 66, 83, 52, 80, 15, 11, 200, 64, 84, 211, 36,
-			210, 83, 52, 80, 15, 11, 200, 52, 244, 141, 60, 226, 83, 52, 80, 15, 11, 200, 52, 244, 134, 36, 226, 83, 52, 80, 15, 11, 200, 52,
-			243, 143, 80, 82, 83, 52, 80, 15, 11, 200, 52, 243, 129, 72, 178, 83, 52, 80, 15, 11, 200, 52, 241, 5, 72, 226, 83, 52, 80, 15,
-			11, 200, 52, 20, 207, 12, 130, 83, 52, 80, 15, 11, 200, 45, 83, 20, 85, 34, 83, 52, 80, 15, 11, 200, 44, 243, 77, 84, 226, 83,
-			52, 80, 15, 11, 200, 40, 84, 213, 37, 66, 83, 52, 80, 15, 11, 200, 32, 148, 212, 61, 34, 83, 52, 80, 15, 11, 200, 16, 241, 205,
-			5, 66, 83, 52, 80, 15, 11, 200, 16, 84, 208, 61, 66, 83, 52, 80, 15, 11, 200, 16, 81, 129, 37, 66, 83, 52, 80, 15, 9, 198,
-			52, 86, 9, 12, 19, 128, 15, 9, 198, 44, 19, 148, 36, 19, 128, 15, 9, 198, 32, 18, 84, 36, 19, 128, 15, 9, 198, 29, 82, 78,
-			20, 19, 128, 15, 9, 198, 8, 245, 19, 92, 19, 128, 15, 7, 196, 76, 148, 129, 80, 15, 7, 196, 16, 80, 129, 80, 15, 0, 11, 200,
-			77, 68, 143, 8, 244, 203, 61, 0, 15, 12, 201, 164, 161, 66, 48, 146, 203, 20, 194, 71, 15, 12, 201, 76, 83, 22, 26, 147, 7, 20,
-			194, 71, 15, 12, 201, 48, 85, 15, 64, 202, 83, 20, 194, 71, 15, 10, 199, 25, 34, 80, 61, 53, 9, 28, 15, 12, 201, 24, 244, 139,
-			73, 243, 139, 20, 194, 71, 15, 12, 201, 9, 42, 83, 80, 103, 204, 16, 145, 192, 15, 9, 198, 44, 20, 132, 36, 19, 0, 15, 0, 9,
-			198, 64, 81, 9, 13, 84, 133, 15, 9, 198, 9, 35, 195, 33, 84, 133, 15, 7, 196, 72, 85, 21, 72, 15, 10, 199, 72, 81, 146, 4,
-			181, 15, 72, 15, 10, 199, 65, 35, 202, 20, 181, 15, 72, 15, 10, 199, 48, 16, 143, 72, 21, 15, 72, 15, 10, 199, 16, 81, 140, 20,
-			181, 15, 72, 15, 12, 201, 36, 211, 79, 72, 19, 9, 80, 85, 0, 15, 9, 198, 77, 64, 84, 84, 84, 133, 15, 9, 198, 76, 178, 84,
-			76, 84, 133, 15, 9, 198, 65, 83, 139, 80, 84, 133, 15, 9, 198, 64, 195, 205, 8, 84, 133, 15, 9, 198, 64, 148, 129, 80, 84, 133,
-			15, 9, 198, 64, 147, 15, 80, 84, 133, 15, 9, 198, 64, 20, 129, 16, 84, 133, 15, 9, 198, 64, 19, 133, 48, 84, 133, 15, 9, 198,
-			57, 80, 78, 12, 84, 133, 15, 9, 198, 52, 20, 131, 32, 84, 133, 15, 9, 198, 45, 38, 80, 80, 84, 133, 15, 9, 198, 44, 19, 143,
-			56, 84, 133, 15, 9, 198, 29, 83, 77, 36, 84, 133, 15, 9, 198, 28, 83, 133, 72, 84, 133, 15, 9, 198, 17, 81, 76, 48, 84, 133,
-			15, 9, 198, 16, 80, 149, 80, 84, 133, 15, 9, 198, 9, 35, 206, 104, 84, 133, 15, 9, 198, 9, 35, 195, 32, 84, 133, 15, 9, 198,
-			8, 18, 129, 16, 84, 133, 15, 9, 198, 5, 96, 78, 12, 84, 133, 15, 9, 198, 5, 34, 201, 88, 84, 133, 15, 10, 199, 61, 97, 82,
-			34, 148, 137, 28, 15, 10, 199, 28, 84, 203, 124, 101, 9, 28, 15, 0, 20, 71, 48, 147, 79, 85, 50, 78, 20, 55, 111, 65, 126, 89,
-			6, 37, 50, 14, 0, 15, 12, 201, 125, 33, 83, 45, 243, 132, 21, 34, 64, 15, 9, 198, 52, 20, 207, 56, 149, 0, 15, 9, 198, 60,
-			35, 9, 28, 21, 0, 15, 0, 8, 197, 44, 244, 147, 165, 32, 15, 8, 197, 49, 244, 201, 60, 224, 15, 9, 198, 72, 84, 1, 72, 84,
-			128, 15, 9, 198, 64, 17, 201, 56, 84, 128, 15, 10, 199, 52, 19, 169, 89, 33, 82, 20, 15, 9, 198, 45, 98, 84, 80, 84, 128, 15,
-			9, 198, 40, 243, 137, 76, 84, 128, 15, 9, 198, 36, 225, 9, 44, 84, 128, 15, 9, 198, 28, 195, 211, 76, 84, 128, 15, 9, 198, 8,
-			20, 146, 36, 84, 128, 15, 9, 198, 4, 33, 9, 12, 84, 128, 15, 11, 200, 53, 244, 139, 89, 244, 132, 36, 112, 15, 11, 200, 49, 244,
-			197, 89, 244, 132, 36, 112, 15, 7, 196, 32, 16, 137, 80, 15, 7, 196, 60, 35, 1, 80, 15, 9, 198, 88, 81, 197, 80, 20, 128, 15,
-			0, 12, 201, 36, 212, 18, 61, 98, 83, 5, 67, 210, 15, 9, 198, 81, 34, 76, 48, 147, 206, 15, 9, 198, 4, 64, 80, 80, 147, 206,
-			15, 9, 198, 45, 84, 129, 80, 83, 0, 15, 9, 198, 26, 147, 137, 44, 148, 203, 15, 9, 198, 20, 198, 83, 124, 148, 203, 15, 9, 198,
-			5, 32, 77, 124, 148, 203, 15, 0, 9, 198, 76, 145, 206, 4, 202, 82, 15, 9, 198, 12, 130, 75, 4, 234, 82, 15, 12, 201, 64, 20,
-			129, 76, 149, 15, 48, 241, 201, 15, 12, 201, 21, 2, 68, 20, 210, 79, 48, 241, 201, 15, 12, 201, 16, 144, 76, 20, 181, 15, 48, 241,
-			201, 15, 10, 199, 88, 144, 146, 5, 66, 79, 56, 15, 10, 199, 52, 145, 210, 5, 66, 79, 56, 15, 10, 199, 44, 241, 206, 37, 66, 79,
-			56, 15, 10, 199, 44, 20, 142, 5, 66, 79, 56, 15, 12, 201, 77, 1, 67, 36, 19, 9, 80, 85, 0, 15, 12, 201, 64, 244, 21, 48,
-			20, 137, 80, 85, 0, 15, 12, 201, 56, 85, 84, 72, 19, 9, 80, 85, 0, 15, 12, 201, 53, 85, 1, 8, 147, 9, 80, 85, 0, 15,
-			0, 26, 74, 77, 21, 65, 72, 81, 1, 56, 49, 82, 20, 89, 49, 58, 6, 115, 108, 72, 117, 12, 50, 89, 108, 112, 0, 9, 198, 77,
-			64, 84, 37, 53, 0, 15, 11, 200, 81, 32, 78, 76, 149, 9, 60, 224, 15, 11, 200, 64, 84, 134, 20, 181, 9, 60, 224, 15, 11, 200,
-			44, 243, 150, 20, 181, 9, 60, 224, 15, 11, 200, 44, 243, 135, 21, 53, 9, 60, 224, 15, 11, 200, 44, 243, 134, 20, 181, 9, 60, 224,
-			15, 11, 200, 44, 21, 137, 80, 21, 9, 60, 224, 15, 11, 200, 37, 36, 137, 80, 21, 9, 60, 224, 15, 11, 200, 36, 226, 213, 8, 21,
-			9, 60, 224, 15, 11, 200, 36, 226, 1, 48, 21, 9, 60, 224, 15, 11, 200, 29, 32, 68, 84, 21, 9, 60, 224, 15, 11, 200, 28, 83,
-			73, 56, 21, 9, 60, 224, 15, 11, 200, 20, 210, 71, 72, 21, 9, 60, 224, 15, 11, 200, 16, 149, 137, 56, 21, 9, 60, 224, 15, 11,
-			200, 16, 81, 9, 44, 21, 9, 60, 224, 15, 11, 200, 5, 52, 9, 72, 21, 9, 60, 224, 15, 11, 200, 4, 113, 210, 21, 52, 201, 60,
-			224, 15, 13, 202, 77, 80, 147, 80, 19, 148, 37, 97, 82, 20, 15, 13, 202, 72, 85, 143, 49, 85, 9, 60, 225, 82, 20, 15, 13, 202,
-			64, 84, 147, 64, 82, 212, 37, 97, 82, 20, 15, 13, 202, 44, 243, 80, 48, 147, 69, 57, 65, 82, 20, 15, 13, 202, 36, 228, 212, 73,
-			83, 69, 57, 65, 82, 20, 15, 11, 200, 8, 83, 133, 16, 146, 212, 36, 224, 15, 0, 11, 200, 20, 208, 143, 84, 50, 21, 72, 80, 15,
-			11, 200, 81, 35, 205, 64, 85, 5, 72, 80, 15, 11, 200, 44, 243, 131, 21, 37, 5, 72, 80, 15, 11, 200, 29, 34, 77, 5, 52, 197,
-			72, 80, 15, 11, 200, 21, 66, 75, 21, 69, 5, 72, 80, 15, 11, 200, 9, 81, 7, 21, 69, 5, 72, 80, 15, 11, 200, 9, 34, 75,
-			21, 69, 5, 72, 80, 15, 12, 201, 81, 35, 212, 76, 178, 83, 80, 148, 203, 15, 12, 201, 80, 84, 141, 61, 53, 1, 80, 148, 203, 15,
-			12, 201, 80, 84, 141, 60, 209, 84, 72, 148, 203, 15, 12, 201, 77, 65, 82, 20, 241, 143, 56, 148, 203, 15, 12, 201, 77, 65, 78, 60,
-			116, 129, 24, 148, 203, 15, 12, 201, 60, 36, 203, 85, 32, 78, 80, 148, 203, 15, 12, 201, 52, 246, 129, 52, 34, 81, 84, 148, 203, 15,
-			12, 201, 52, 240, 193, 52, 34, 81, 84, 148, 203, 15, 12, 201, 52, 225, 77, 61, 65, 75, 56, 148, 203, 15, 12, 201, 36, 211, 85, 56,
-			243, 15, 28, 148, 203, 15, 12, 201, 32, 84, 143, 77, 68, 129, 80, 148, 203, 15, 12, 201, 25, 85, 21, 72, 243, 15, 28, 148, 203, 15,
-			12, 201, 24, 147, 8, 5, 35, 79, 56, 148, 203, 15, 12, 201, 21, 67, 143, 12, 83, 148, 72, 148, 203, 15, 12, 201, 21, 50, 201, 52,
-			243, 15, 28, 148, 203, 15, 12, 201, 20, 118, 80, 80, 243, 15, 28, 148, 203, 15, 12, 201, 16, 83, 132, 72, 243, 15, 28, 148, 203, 15,
-			12, 201, 13, 149, 15, 64, 192, 83, 52, 148, 203, 15, 12, 201, 4, 178, 213, 76, 21, 9, 88, 148, 203, 15, 9, 68, 48, 85, 133, 48,
-			21, 0, 47, 12, 4, 95, 49, 48, 111, 47, 37, 14, 50, 14, 0, 0, 9, 198, 81, 34, 75, 36, 234, 83, 15, 9, 198, 72, 83, 9,
-			28, 154, 83, 15, 9, 198, 53, 84, 203, 84, 202, 83, 15, 9, 198, 52, 19, 9, 12, 154, 83, 15, 9, 198, 44, 21, 133, 72, 234, 83,
-			15, 9, 198, 36, 225, 197, 56, 154, 83, 15, 9, 198, 29, 32, 78, 84, 202, 83, 15, 9, 198, 4, 208, 137, 80, 154, 83, 15, 15, 204,
-			44, 243, 147, 81, 37, 75, 80, 149, 137, 80, 85, 0, 15, 13, 202, 65, 39, 208, 61, 50, 84, 36, 243, 133, 48, 15, 9, 198, 61, 34,
-			206, 164, 148, 203, 15, 9, 198, 32, 80, 146, 124, 148, 203, 15, 6, 195, 85, 34, 78, 15, 10, 199, 60, 36, 212, 21, 68, 137, 44, 15,
-			10, 199, 52, 85, 1, 24, 244, 137, 44, 15, 0, 9, 198, 16, 144, 71, 56, 244, 197, 15, 10, 199, 72, 81, 21, 45, 66, 79, 56, 15,
-			10, 199, 61, 1, 82, 5, 66, 79, 56, 15, 10, 199, 20, 208, 78, 5, 66, 79, 56, 15, 11, 200, 81, 148, 9, 76, 84, 137, 56, 112,
-			15, 11, 200, 81, 37, 78, 44, 84, 137, 56, 112, 15, 11, 200, 81, 32, 75, 80, 84, 137, 56, 112, 15, 11, 200, 77, 64, 71, 56, 84,
-			137, 56, 112, 15, 11, 200, 65, 83, 139, 80, 84, 137, 56, 112, 15, 11, 200, 61, 33, 9, 56, 84, 137, 56, 112, 15, 11, 200, 60, 178,
-			213, 64, 84, 137, 56, 112, 15, 11, 200, 57, 80, 78, 12, 84, 137, 56, 112, 15, 11, 200, 45, 96, 68, 72, 84, 137, 56, 112, 15, 11,
-			200, 44, 20, 212, 72, 84, 137, 56, 112, 15, 11, 200, 36, 243, 137, 76, 84, 137, 56, 112, 15, 11, 200, 29, 83, 77, 36, 84, 137, 56,
-			112, 15, 11, 200, 29, 37, 78, 16, 84, 137, 56, 112, 15, 11, 200, 21, 64, 66, 48, 84, 137, 56, 112, 15, 11, 200, 20, 225, 193, 28,
-			84, 137, 56, 112, 15, 11, 200, 20, 213, 76, 28, 84, 137, 56, 112, 15, 11, 200, 16, 82, 213, 64, 84, 137, 56, 112, 15, 11, 200, 12,
-			130, 70, 72, 84, 137, 56, 112, 15, 11, 200, 5, 97, 82, 80, 84, 137, 56, 112, 15, 11, 200, 4, 227, 143, 80, 84, 137, 56, 112, 15,
-			9, 198, 20, 180, 197, 28, 84, 197, 15, 0, 9, 198, 12, 83, 12, 37, 53, 0, 15, 10, 199, 8, 150, 129, 73, 33, 82, 36, 15, 0,
-			8, 197, 8, 147, 208, 76, 144, 15, 12, 201, 88, 145, 84, 56, 19, 69, 76, 148, 203, 15, 12, 201, 85, 53, 82, 64, 21, 15, 72, 148,
-			203, 15, 12, 201, 81, 83, 85, 49, 69, 65, 72, 148, 203, 15, 12, 201, 77, 80, 138, 20, 181, 9, 88, 148, 203, 15, 12, 201, 77, 65,
-			84, 61, 50, 207, 64, 148, 203, 15, 12, 201, 76, 82, 83, 52, 243, 15, 28, 148, 203, 15, 12, 201, 72, 80, 201, 80, 21, 9, 88, 148,
-			203, 15, 12, 201, 64, 243, 25, 12, 83, 148, 72, 148, 203, 15, 12, 201, 64, 84, 137, 77, 64, 76, 80, 148, 203, 15, 12, 201, 64, 84,
-			137, 64, 21, 5, 80, 148, 203, 15, 12, 201, 52, 243, 9, 56, 243, 15, 28, 148, 203, 15, 12, 201, 52, 146, 210, 61, 50, 207, 64, 148,
-			203, 15, 12, 201, 52, 18, 210, 61, 50, 207, 64, 148, 203, 15, 12, 201, 44, 244, 205, 60, 224, 85, 80, 148, 203, 15, 12, 201, 13, 149,
-			15, 28, 83, 133, 80, 148, 203, 15, 11, 68, 24, 147, 129, 48, 20, 36, 89, 36, 0, 11, 200, 80, 82, 206, 60, 180, 129, 80, 144, 15,
-			11, 200, 64, 197, 84, 60, 180, 129, 80, 144, 15, 7, 196, 48, 16, 137, 48, 15, 7, 196, 80, 243, 129, 48, 15, 7, 196, 44, 19, 129,
-			48, 15, 7, 196, 24, 147, 129, 48, 15, 7, 196, 8, 19, 129, 48, 15, 0, 9, 198, 25, 85, 21, 73, 83, 64, 15, 9, 198, 20, 198,
-			83, 37, 83, 64, 15, 9, 198, 16, 145, 206, 37, 64, 82, 15, 9, 198, 65, 35, 204, 21, 64, 82, 15, 0, 10, 199, 4, 66, 149, 56,
-			181, 21, 72, 15, 12, 201, 64, 242, 78, 80, 147, 12, 37, 53, 0, 15, 9, 198, 80, 83, 203, 72, 21, 9, 15, 0, 9, 198, 104, 18,
-			82, 37, 50, 192, 15, 9, 198, 76, 244, 130, 37, 50, 192, 15, 9, 198, 76, 84, 130, 37, 50, 192, 15, 10, 199, 44, 148, 143, 52, 19,
-			148, 36, 15, 0, 10, 199, 24, 244, 146, 124, 65, 82, 36, 15, 7, 196, 80, 147, 73, 16, 15, 9, 198, 44, 20, 129, 8, 147, 128, 15,
-			9, 198, 8, 18, 18, 4, 147, 128, 15, 9, 198, 77, 3, 206, 80, 19, 128, 16, 16, 71, 12, 133, 82, 12, 130, 76, 48, 76, 132, 12,
-			91, 111, 55, 0, 0, 12, 201, 81, 32, 78, 77, 50, 210, 36, 33, 82, 15, 12, 201, 45, 38, 80, 80, 241, 210, 4, 97, 82, 15, 11,
-			200, 25, 148, 150, 125, 34, 197, 72, 144, 15, 11, 200, 25, 34, 84, 124, 226, 197, 72, 144, 15, 0, 27, 67, 73, 80, 128, 51, 6, 126,
-			71, 15, 108, 15, 89, 72, 6, 126, 71, 0, 82, 111, 103, 32, 115, 116, 117, 98, 32, 9, 198, 65, 39, 205, 5, 69, 82, 15, 11, 200,
-			80, 84, 141, 36, 227, 204, 60, 112, 15, 11, 200, 52, 85, 5, 61, 35, 204, 60, 112, 15, 9, 198, 53, 240, 78, 17, 33, 82, 15, 9,
-			198, 29, 244, 212, 21, 33, 82, 15, 0, 12, 201, 45, 103, 210, 84, 192, 78, 80, 84, 137, 15, 9, 198, 76, 84, 135, 20, 229, 0, 15,
-			12, 201, 65, 35, 211, 80, 149, 21, 21, 33, 84, 15, 12, 201, 64, 84, 137, 4, 194, 83, 21, 33, 84, 15, 12, 201, 44, 243, 134, 20,
-			65, 82, 21, 33, 84, 15, 12, 201, 36, 229, 5, 72, 84, 211, 21, 33, 84, 15, 12, 201, 24, 147, 9, 64, 83, 147, 21, 33, 84, 15,
-			12, 201, 16, 148, 211, 20, 210, 78, 21, 33, 84, 15, 12, 201, 16, 85, 5, 72, 210, 78, 21, 33, 84, 15, 0, 12, 201, 72, 81, 201,
-			77, 68, 129, 81, 84, 128, 15, 12, 201, 56, 243, 69, 56, 179, 1, 81, 84, 128, 15, 12, 201, 36, 229, 5, 56, 64, 78, 81, 84, 128,
-			15, 12, 201, 24, 195, 211, 45, 83, 1, 81, 84, 128, 15, 14, 203, 64, 192, 84, 80, 83, 147, 48, 17, 197, 72, 144, 15, 10, 199, 72,
-			84, 201, 77, 65, 78, 80, 15, 10, 199, 65, 35, 208, 60, 225, 78, 80, 15, 10, 199, 44, 243, 148, 36, 225, 78, 80, 15, 10, 199, 44,
-			243, 147, 84, 193, 78, 80, 15, 10, 199, 44, 243, 80, 60, 225, 78, 80, 15, 10, 199, 20, 180, 208, 60, 225, 78, 80, 15, 10, 199, 16,
-			148, 208, 60, 225, 78, 80, 15, 13, 202, 76, 83, 22, 12, 83, 148, 72, 84, 133, 80, 15, 16, 205, 56, 21, 18, 37, 83, 66, 36, 176,
-			82, 8, 243, 129, 80, 15, 10, 199, 77, 1, 75, 84, 192, 78, 80, 15, 10, 199, 36, 211, 73, 29, 32, 78, 80, 15, 10, 199, 12, 83,
-			5, 9, 32, 78, 80, 15, 10, 199, 5, 36, 133, 77, 64, 78, 80, 15, 0, 15, 66, 25, 128, 83, 108, 36, 81, 89, 36, 65, 48, 13,
-			55, 0, 12, 201, 44, 243, 77, 4, 225, 1, 57, 69, 82, 15, 9, 198, 76, 176, 78, 76, 147, 206, 15, 9, 198, 36, 225, 149, 76, 147,
-			206, 15, 9, 198, 21, 128, 201, 76, 147, 206, 15, 12, 201, 81, 32, 78, 76, 98, 71, 85, 33, 82, 15, 12, 201, 60, 212, 212, 73, 82,
-			212, 85, 33, 82, 15, 12, 201, 72, 84, 212, 73, 82, 212, 85, 33, 82, 15, 12, 201, 45, 96, 75, 76, 19, 22, 21, 33, 82, 15, 12,
-			201, 4, 229, 9, 12, 128, 77, 9, 33, 82, 15, 9, 198, 124, 118, 80, 80, 148, 203, 15, 10, 199, 64, 19, 133, 29, 148, 137, 44, 15,
-			10, 199, 32, 243, 73, 48, 85, 9, 44, 15, 10, 199, 16, 144, 76, 20, 181, 9, 44, 15, 0, 10, 199, 76, 82, 210, 21, 66, 79, 56,
-			15, 10, 199, 25, 83, 132, 5, 66, 79, 56, 15, 11, 200, 88, 148, 143, 48, 241, 201, 76, 176, 15, 11, 200, 80, 83, 5, 24, 243, 137,
-			76, 176, 15, 11, 200, 73, 83, 143, 48, 241, 201, 76, 176, 15, 11, 200, 60, 194, 71, 5, 34, 201, 76, 176, 15, 11, 200, 53, 146, 207,
-			48, 241, 201, 76, 176, 15, 11, 200, 44, 20, 22, 21, 33, 9, 76, 176, 15, 11, 200, 36, 65, 79, 48, 241, 201, 76, 176, 15, 11, 200,
-			24, 147, 15, 48, 241, 201, 76, 176, 15, 11, 200, 16, 83, 65, 28, 241, 201, 76, 176, 15, 9, 198, 36, 212, 5, 72, 149, 77, 15, 11,
-			200, 77, 148, 212, 20, 208, 84, 36, 176, 15, 11, 200, 57, 83, 73, 76, 208, 84, 36, 176, 15, 11, 200, 20, 208, 140, 20, 208, 84, 36,
-			176, 15, 11, 200, 16, 148, 12, 60, 208, 84, 36, 176, 15, 16, 73, 52, 17, 5, 52, 242, 83, 20, 195, 5, 21, 102, 114, 0, 47, 10,
-			67, 16, 145, 192, 72, 122, 57, 0, 76, 10, 3, 226, 130, 172, 36, 40, 34, 39, 0, 0, 11, 200, 4, 68, 207, 73, 5, 9, 60, 224,
-			15, 0, 12, 201, 80, 83, 5, 44, 147, 133, 80, 148, 203, 15, 12, 201, 77, 147, 12, 60, 114, 83, 80, 148, 203, 15, 12, 201, 76, 21,
-			68, 36, 20, 129, 8, 148, 203, 15, 12, 201, 65, 35, 194, 48, 83, 65, 80, 148, 203, 15, 12, 201, 64, 243, 9, 80, 243, 15, 28, 148,
-			203, 15, 12, 201, 64, 197, 84, 60, 180, 129, 80, 148, 203, 15, 12, 201, 56, 81, 5, 73, 48, 75, 76, 148, 203, 15, 12, 201, 52, 147,
-			133, 72, 19, 15, 28, 148, 203, 15, 12, 201, 52, 84, 207, 64, 245, 1, 52, 148, 203, 15, 12, 201, 45, 33, 77, 48, 243, 15, 28, 148,
-			203, 15, 12, 201, 44, 148, 143, 65, 32, 75, 80, 148, 203, 15, 12, 201, 44, 20, 148, 60, 116, 129, 24, 148, 203, 15, 12, 201, 36, 225,
-			15, 44, 147, 133, 76, 148, 203, 15, 12, 201, 36, 212, 5, 72, 21, 15, 72, 148, 203, 15, 12, 201, 21, 50, 193, 80, 243, 15, 28, 148,
-			203, 15, 7, 196, 64, 81, 1, 48, 15, 7, 196, 52, 241, 1, 48, 15, 7, 196, 5, 33, 65, 48, 15, 13, 4, 95, 49, 50, 111, 47,
-			108, 55, 83, 72, 14, 0, 0, 9, 198, 76, 179, 210, 64, 147, 206, 15, 9, 198, 13, 244, 193, 72, 148, 203, 15, 10, 199, 52, 83, 147,
-			40, 85, 137, 44, 15, 0, 10, 67, 20, 115, 133, 122, 57, 50, 14, 0, 10, 199, 49, 82, 211, 5, 66, 79, 56, 15, 10, 199, 36, 210,
-			84, 5, 66, 79, 56, 15, 10, 199, 24, 195, 212, 5, 66, 79, 56, 15, 10, 199, 16, 84, 197, 73, 66, 79, 56, 15, 10, 199, 4, 114,
-			84, 5, 66, 79, 56, 15, 10, 199, 24, 83, 129, 12, 85, 9, 56, 15, 9, 198, 164, 181, 77, 20, 226, 64, 15, 11, 67, 16, 147, 133,
-			72, 6, 37, 50, 14, 0, 11, 67, 52, 147, 133, 65, 6, 37, 50, 14, 0, 10, 67, 40, 81, 192, 57, 121, 57, 0, 76, 0, 7, 196,
-			20, 193, 71, 36, 15, 10, 199, 72, 17, 9, 60, 99, 206, 36, 15, 16, 205, 77, 69, 66, 8, 82, 233, 8, 147, 135, 20, 228, 197, 72,
-			15, 0, 12, 201, 48, 19, 135, 60, 32, 82, 16, 148, 203, 15, 12, 201, 44, 243, 147, 60, 224, 78, 80, 148, 203, 15, 12, 201, 36, 226,
-			9, 8, 149, 15, 72, 148, 203, 15, 12, 201, 32, 145, 82, 60, 115, 25, 24, 148, 203, 15, 12, 201, 16, 147, 5, 81, 64, 78, 80, 148,
-			203, 15, 12, 201, 4, 208, 149, 48, 21, 15, 72, 148, 203, 15, 11, 200, 77, 65, 82, 20, 241, 143, 56, 144, 15, 22, 72, 12, 19, 142,
-			20, 195, 15, 56, 144, 49, 117, 50, 13, 55, 6, 39, 12, 50, 37, 0, 15, 7, 196, 20, 180, 201, 48, 15, 0, 6, 194, 12, 240, 13,
-			42, 10, 199, 88, 19, 139, 84, 225, 9, 28, 15, 10, 199, 49, 85, 135, 21, 36, 137, 28, 15, 10, 199, 24, 244, 142, 84, 101, 9, 28,
-			15, 9, 198, 64, 84, 137, 45, 83, 64, 15, 6, 195, 73, 82, 78, 15, 0, 10, 199, 88, 148, 201, 80, 21, 15, 72, 15, 10, 199, 85,
-			53, 82, 64, 21, 15, 72, 15, 10, 199, 76, 84, 1, 72, 21, 15, 72, 15, 10, 199, 61, 97, 82, 17, 225, 9, 28, 15, 0, 9, 198,
-			56, 81, 210, 60, 145, 0, 15, 9, 198, 25, 83, 135, 36, 50, 68, 15, 0, 7, 196, 88, 243, 21, 80, 15, 9, 198, 56, 85, 84, 72,
-			243, 128, 15, 10, 199, 76, 180, 159, 16, 65, 82, 36, 15, 10, 199, 45, 244, 133, 77, 65, 82, 36, 15, 10, 199, 18, 145, 2, 36, 65,
-			82, 36, 15, 11, 200, 44, 20, 18, 36, 99, 204, 36, 80, 15, 11, 200, 64, 192, 78, 21, 64, 82, 36, 80, 15, 11, 200, 44, 20, 18,
-			36, 99, 204, 36, 80, 15, 11, 200, 16, 83, 6, 36, 224, 82, 36, 80, 15, 9, 198, 88, 20, 197, 48, 147, 128, 15, 9, 198, 48, 80,
-			201, 80, 147, 128, 15, 9, 198, 44, 241, 134, 20, 147, 128, 15, 9, 198, 52, 243, 143, 52, 19, 128, 16, 9, 198, 49, 81, 15, 52, 19,
-			128, 16, 15, 4, 95, 111, 103, 111, 6, 127, 81, 127, 50, 4, 115, 49, 0, 0, 0, 10, 199, 4, 113, 210, 21, 52, 207, 72, 15, 10,
-			199, 65, 35, 211, 20, 181, 15, 72, 15, 13, 202, 64, 244, 21, 48, 20, 137, 76, 21, 15, 72, 15, 10, 199, 44, 243, 150, 20, 181, 15,
-			72, 15, 10, 199, 44, 243, 148, 4, 181, 15, 72, 15, 10, 199, 44, 243, 132, 84, 181, 15, 72, 15, 10, 199, 28, 192, 68, 36, 21, 15,
-			72, 15, 10, 199, 21, 96, 76, 84, 21, 15, 72, 15, 9, 198, 52, 241, 21, 48, 84, 133, 15, 11, 200, 61, 4, 137, 56, 65, 76, 36,
-			112, 15, 11, 200, 60, 213, 18, 20, 229, 12, 36, 112, 15, 11, 200, 52, 241, 20, 4, 113, 76, 36, 112, 15, 11, 200, 52, 241, 2, 100,
-			65, 76, 36, 112, 15, 11, 200, 40, 243, 70, 73, 81, 76, 36, 112, 15, 11, 200, 24, 244, 147, 88, 20, 140, 36, 112, 15, 11, 200, 24,
-			244, 141, 20, 229, 12, 36, 112, 15, 11, 200, 24, 244, 139, 48, 20, 140, 36, 112, 15, 10, 199, 24, 244, 132, 124, 117, 9, 28, 15, 11,
-			200, 24, 244, 129, 72, 113, 76, 36, 112, 15, 11, 200, 21, 97, 78, 81, 148, 140, 36, 112, 15, 11, 200, 4, 195, 79, 16, 84, 140, 36,
-			112, 15, 12, 201, 28, 19, 12, 37, 83, 79, 96, 145, 0, 15, 9, 198, 72, 81, 149, 28, 149, 77, 15, 9, 198, 36, 225, 197, 56, 149,
-			77, 15, 9, 198, 36, 225, 9, 12, 149, 77, 15, 9, 198, 16, 83, 9, 72, 149, 77, 15, 9, 198, 4, 209, 137, 8, 149, 77, 15, 9,
-			198, 16, 146, 207, 80, 243, 73, 15, 14, 69, 76, 80, 77, 85, 48, 91, 115, 37, 65, 14, 89, 0, 0, 10, 199, 65, 228, 212, 120, 83,
-			9, 28, 15, 0, 8, 197, 64, 244, 148, 165, 32, 15, 8, 197, 24, 244, 136, 165, 32, 15, 8, 197, 12, 21, 83, 165, 32, 15, 7, 196,
-			32, 84, 149, 80, 15, 9, 198, 125, 53, 5, 80, 146, 192, 15, 6, 195, 21, 66, 75, 15, 6, 195, 21, 2, 75, 15, 7, 196, 77, 82,
-			193, 80, 15, 7, 196, 61, 2, 65, 80, 15, 7, 196, 17, 82, 193, 80, 15, 12, 201, 20, 180, 212, 20, 212, 15, 72, 19, 0, 15, 11,
-			4, 95, 104, 111, 107, 107, 6, 40, 49, 0, 0, 12, 201, 88, 84, 147, 36, 98, 75, 5, 67, 210, 15, 12, 201, 77, 64, 66, 36, 194,
-			83, 5, 67, 210, 15, 12, 201, 44, 243, 131, 20, 229, 18, 5, 67, 210, 15, 19, 70, 21, 53, 18, 4, 115, 206, 36, 89, 47, 51, 35,
-			81, 6, 108, 68, 0, 15, 18, 70, 4, 181, 129, 72, 83, 0, 121, 49, 84, 121, 51, 6, 119, 55, 0, 15, 13, 202, 64, 84, 147, 64,
-			82, 212, 37, 100, 137, 28, 15, 9, 198, 125, 53, 5, 80, 148, 203, 15, 0, 10, 199, 80, 18, 211, 5, 66, 79, 56, 15, 10, 199, 21,
-			99, 204, 85, 66, 79, 56, 15, 10, 199, 20, 193, 86, 5, 66, 79, 56, 15, 12, 201, 36, 195, 15, 100, 19, 9, 80, 85, 0, 15, 12,
-			201, 5, 51, 195, 36, 19, 9, 80, 85, 0, 15, 13, 202, 80, 147, 19, 81, 39, 203, 44, 83, 9, 28, 15, 13, 202, 48, 85, 16, 121,
-			98, 82, 44, 83, 9, 28, 15, 13, 202, 24, 244, 147, 45, 39, 203, 44, 83, 9, 28, 15, 12, 201, 76, 19, 77, 20, 228, 213, 72, 149,
-			77, 15, 11, 200, 64, 243, 25, 80, 82, 206, 36, 176, 15, 12, 201, 44, 243, 135, 48, 243, 69, 72, 21, 0, 15, 0, 8, 197, 64, 20,
-			212, 165, 48, 15, 8, 197, 45, 84, 137, 165, 48, 15, 9, 198, 32, 20, 144, 37, 53, 0, 15, 11, 200, 85, 53, 82, 64, 21, 9, 60,
-			224, 15, 11, 200, 72, 84, 18, 21, 52, 201, 60, 224, 15, 11, 200, 72, 84, 5, 80, 149, 9, 60, 224, 15, 11, 200, 72, 84, 1, 72,
-			21, 9, 60, 224, 15, 11, 200, 65, 35, 195, 21, 52, 201, 60, 224, 15, 11, 200, 64, 84, 141, 37, 52, 201, 60, 224, 15, 11, 200, 64,
-			84, 139, 85, 52, 201, 60, 224, 15, 11, 200, 44, 243, 131, 21, 52, 201, 60, 224, 15, 11, 200, 44, 243, 77, 37, 52, 201, 60, 224, 15,
-			11, 200, 40, 243, 137, 76, 21, 9, 60, 224, 15, 11, 200, 36, 229, 15, 56, 21, 9, 60, 224, 15, 11, 200, 36, 225, 9, 44, 21, 9,
-			60, 224, 15, 11, 200, 24, 81, 5, 72, 21, 9, 60, 224, 15, 11, 200, 5, 69, 18, 4, 181, 9, 60, 224, 15, 11, 200, 4, 195, 15,
-			44, 21, 9, 60, 224, 15, 11, 200, 4, 67, 143, 80, 21, 9, 60, 224, 15, 11, 200, 4, 64, 80, 80, 21, 9, 60, 224, 15, 9, 198,
-			41, 81, 9, 12, 145, 76, 15, 14, 203, 64, 85, 5, 72, 19, 147, 81, 243, 132, 36, 112, 15, 9, 198, 52, 85, 18, 61, 3, 204, 15,
-			11, 200, 64, 84, 141, 37, 52, 201, 60, 224, 15, 0, 10, 199, 5, 34, 223, 60, 195, 199, 36, 15, 11, 200, 76, 84, 144, 20, 229, 9,
-			56, 80, 15, 10, 199, 4, 69, 133, 72, 34, 69, 48, 15, 7, 196, 32, 245, 5, 48, 15, 12, 201, 88, 83, 133, 72, 243, 15, 28, 148,
-			203, 15, 12, 201, 77, 147, 148, 4, 115, 65, 80, 148, 203, 15, 12, 201, 77, 147, 80, 80, 243, 65, 80, 148, 203, 15, 12, 201, 65, 80,
-			140, 36, 50, 83, 80, 148, 203, 15, 12, 201, 64, 19, 139, 72, 243, 65, 80, 148, 203, 15, 12, 201, 61, 35, 137, 80, 243, 15, 28, 148,
-			203, 15, 12, 201, 60, 67, 206, 80, 243, 15, 28, 148, 203, 15, 12, 201, 60, 49, 65, 56, 243, 15, 28, 148, 203, 15, 12, 201, 56, 85,
-			82, 5, 53, 5, 56, 148, 203, 15, 12, 201, 52, 148, 193, 57, 68, 143, 64, 148, 203, 15, 12, 201, 52, 81, 9, 84, 210, 83, 80, 148,
-			203, 15, 12, 201, 45, 96, 68, 72, 241, 143, 56, 148, 203, 15, 12, 201, 45, 35, 206, 60, 209, 84, 72, 148, 203, 15, 12, 201, 44, 244,
-			21, 48, 21, 15, 72, 148, 203, 15, 12, 201, 44, 19, 12, 36, 116, 129, 24, 148, 203, 15, 12, 201, 36, 179, 206, 60, 116, 129, 24, 148,
-			203, 15, 12, 201, 33, 145, 18, 61, 53, 1, 80, 148, 203, 15, 12, 201, 28, 192, 67, 36, 243, 15, 28, 148, 203, 15, 12, 201, 28, 84,
-			141, 4, 226, 83, 80, 148, 203, 15, 12, 201, 25, 32, 83, 20, 243, 15, 28, 148, 203, 15, 12, 201, 24, 147, 1, 57, 68, 143, 64, 148,
-			203, 15, 12, 201, 24, 83, 73, 56, 243, 15, 28, 148, 203, 15, 12, 201, 16, 148, 203, 60, 116, 129, 24, 148, 203, 15, 12, 201, 16, 81,
-			137, 56, 149, 15, 72, 148, 203, 15, 12, 201, 4, 225, 197, 49, 48, 75, 76, 148, 203, 15, 7, 196, 88, 149, 1, 48, 15, 7, 196, 80,
-			245, 1, 48, 15, 0, 9, 198, 65, 33, 83, 76, 147, 206, 15, 9, 198, 20, 210, 83, 76, 147, 206, 15, 15, 204, 36, 229, 5, 57, 66,
-			79, 56, 19, 9, 80, 85, 0, 15, 9, 198, 81, 35, 203, 124, 148, 203, 15, 9, 198, 33, 244, 133, 80, 148, 203, 15, 9, 198, 45, 35,
-			193, 80, 145, 78, 15, 9, 198, 12, 20, 137, 8, 145, 78, 15, 6, 195, 37, 32, 78, 15, 0, 17, 70, 8, 84, 131, 21, 84, 197, 71,
-			115, 34, 89, 132, 12, 89, 0, 66, 10, 199, 72, 80, 197, 65, 66, 79, 56, 15, 10, 199, 72, 80, 133, 48, 194, 79, 56, 15, 10, 199,
-			45, 33, 77, 5, 66, 79, 56, 15, 10, 199, 16, 81, 21, 45, 66, 79, 56, 15, 11, 200, 24, 192, 78, 44, 84, 137, 56, 112, 15, 11,
-			200, 5, 81, 9, 80, 84, 137, 56, 112, 15, 9, 198, 56, 240, 140, 21, 52, 197, 15, 9, 198, 44, 243, 84, 21, 52, 197, 15, 9, 198,
-			17, 80, 200, 21, 52, 197, 15, 9, 198, 52, 20, 131, 37, 0, 78, 16, 10, 199, 28, 19, 15, 65, 0, 68, 20, 15, 8, 67, 73, 83,
-			128, 21, 0, 47, 0, 13, 202, 64, 20, 143, 16, 243, 148, 60, 195, 199, 36, 15, 13, 202, 44, 20, 129, 45, 65, 82, 60, 195, 199, 36,
-			15, 9, 198, 85, 67, 208, 37, 53, 0, 15, 9, 198, 56, 244, 132, 37, 53, 0, 15, 9, 198, 80, 83, 196, 60, 194, 84, 15, 9, 198,
-			76, 178, 66, 60, 226, 84, 15, 9, 198, 52, 146, 210, 60, 194, 84, 15, 9, 198, 44, 243, 80, 61, 50, 84, 15, 9, 198, 44, 242, 203,
-			60, 194, 84, 15, 9, 198, 20, 180, 208, 20, 66, 84, 15, 7, 196, 24, 243, 133, 52, 15, 0, 12, 201, 88, 20, 207, 52, 245, 15, 72,
-			148, 203, 15, 12, 201, 60, 229, 15, 28, 83, 133, 80, 148, 203, 15, 12, 201, 60, 35, 9, 28, 21, 15, 72, 148, 203, 15, 12, 201, 36,
-			225, 9, 44, 21, 9, 88, 148, 203, 15, 12, 201, 33, 145, 18, 61, 65, 75, 56, 148, 203, 15, 12, 201, 32, 84, 141, 20, 225, 85, 80,
-			148, 203, 15, 12, 201, 8, 243, 19, 40, 85, 137, 44, 148, 203, 15, 12, 201, 5, 66, 5, 56, 145, 78, 76, 148, 203, 15, 12, 201, 5,
-			34, 83, 80, 245, 5, 48, 148, 203, 15, 12, 201, 5, 3, 203, 4, 198, 80, 80, 148, 203, 15, 7, 196, 88, 148, 137, 48, 15, 8, 67,
-			76, 243, 135, 21, 0, 47, 0, 5, 194, 36, 64, 13, 10, 199, 28, 83, 194, 36, 243, 15, 28, 15, 9, 198, 77, 147, 132, 72, 243, 64,
-			15, 0, 17, 5, 98, 104, 39, 101, 114, 71, 4, 36, 12, 107, 6, 125, 12, 108, 0, 14, 203, 77, 68, 129, 80, 145, 137, 12, 84, 137,
-			56, 112, 15, 10, 199, 72, 84, 1, 81, 34, 69, 72, 15, 10, 199, 44, 243, 148, 72, 18, 5, 72, 15, 10, 199, 16, 83, 149, 57, 66,
-			69, 72, 15, 0, 13, 202, 64, 20, 148, 20, 227, 199, 20, 225, 83, 20, 15, 0, 9, 198, 44, 243, 15, 24, 243, 128, 15, 11, 200, 21,
-			84, 143, 65, 242, 83, 21, 32, 15, 9, 198, 88, 19, 129, 16, 147, 128, 15, 9, 198, 64, 147, 135, 88, 147, 128, 15, 9, 198, 52, 83,
-			1, 52, 147, 128, 15, 9, 198, 52, 81, 9, 12, 147, 128, 15, 11, 200, 29, 33, 78, 120, 83, 147, 21, 32, 15, 9, 198, 52, 242, 9,
-			44, 19, 128, 15, 9, 198, 52, 81, 9, 12, 147, 128, 15, 9, 198, 37, 64, 76, 36, 83, 128, 15, 9, 198, 4, 225, 207, 48, 19, 128,
-			15, 9, 198, 81, 83, 9, 64, 19, 128, 16, 9, 198, 64, 83, 9, 44, 19, 128, 16, 9, 198, 52, 83, 66, 72, 19, 128, 16, 9, 198,
-			21, 81, 143, 52, 19, 128, 16, 0, 28, 67, 80, 245, 82, 47, 40, 12, 13, 72, 13, 15, 6, 83, 108, 12, 89, 0, 82, 100, 101, 32,
-			102, 111, 114, 99, 101, 32, 8, 197, 9, 35, 205, 36, 64, 15, 0, 11, 200, 32, 84, 144, 21, 67, 204, 60, 112, 15, 11, 200, 16, 84,
-			141, 5, 67, 204, 60, 112, 15, 11, 200, 9, 35, 205, 5, 67, 204, 60, 112, 15, 13, 202, 44, 243, 12, 20, 181, 9, 88, 148, 197, 72,
-			15, 7, 196, 17, 84, 129, 8, 15, 0, 7, 196, 8, 147, 159, 72, 15, 10, 199, 72, 17, 9, 60, 195, 199, 36, 15, 10, 199, 61, 53,
-			5, 60, 195, 199, 36, 15, 10, 199, 45, 35, 206, 60, 195, 199, 36, 15, 10, 199, 36, 181, 25, 60, 195, 199, 36, 15, 10, 199, 36, 179,
-			206, 60, 195, 199, 36, 15, 10, 199, 32, 148, 16, 60, 195, 199, 36, 15, 10, 199, 25, 33, 78, 60, 195, 199, 36, 15, 10, 199, 24, 147,
-			13, 60, 195, 199, 36, 15, 14, 203, 44, 243, 77, 21, 32, 201, 4, 194, 83, 21, 32, 15, 14, 203, 36, 225, 21, 77, 68, 137, 4, 194,
-			83, 21, 32, 15, 14, 203, 36, 225, 9, 88, 145, 21, 4, 194, 83, 21, 32, 15, 14, 203, 16, 149, 137, 76, 147, 206, 4, 194, 83, 21,
-			32, 15, 14, 203, 77, 97, 78, 16, 35, 210, 28, 83, 147, 21, 32, 15, 14, 203, 76, 147, 11, 20, 35, 210, 28, 83, 147, 21, 32, 15,
-			14, 203, 52, 20, 137, 4, 113, 82, 28, 83, 147, 21, 32, 15, 14, 203, 44, 20, 148, 4, 114, 78, 36, 83, 147, 21, 32, 15, 9, 198,
-			72, 21, 9, 60, 224, 76, 15, 9, 198, 44, 19, 148, 60, 224, 76, 15, 9, 198, 77, 2, 82, 4, 229, 0, 15, 8, 67, 92, 244, 132,
-			21, 0, 47, 0, 11, 200, 65, 39, 202, 84, 66, 67, 21, 32, 15, 10, 199, 24, 148, 141, 4, 209, 78, 80, 15, 10, 199, 16, 148, 211,
-			36, 65, 78, 80, 15, 10, 199, 81, 33, 77, 84, 192, 78, 80, 15, 9, 198, 77, 1, 78, 16, 16, 128, 15, 9, 198, 72, 148, 201, 44,
-			16, 128, 15, 9, 198, 44, 243, 147, 80, 16, 128, 15, 0, 5, 194, 37, 64, 13, 8, 197, 81, 145, 143, 36, 64, 15, 8, 197, 8, 147,
-			195, 36, 64, 15, 11, 200, 44, 21, 5, 28, 244, 137, 4, 192, 15, 9, 198, 65, 39, 199, 56, 19, 147, 15, 13, 4, 95, 98, 114, 118,
-			71, 34, 6, 37, 12, 84, 0, 0, 9, 198, 32, 244, 148, 60, 227, 205, 15, 10, 199, 48, 18, 212, 5, 66, 79, 56, 15, 10, 199, 44,
-			243, 132, 37, 66, 79, 56, 15, 10, 199, 36, 229, 21, 37, 66, 79, 56, 15, 10, 199, 16, 148, 133, 45, 66, 79, 56, 15, 13, 202, 72,
-			82, 207, 57, 96, 76, 21, 48, 197, 72, 15, 13, 202, 20, 180, 203, 60, 211, 85, 56, 144, 197, 72, 15, 13, 202, 20, 180, 197, 53, 3,
-			9, 24, 144, 197, 72, 15, 13, 67, 56, 85, 192, 21, 0, 47, 81, 97, 103, 101, 32, 0, 7, 196, 28, 85, 159, 72, 15, 11, 200, 77,
-			80, 150, 20, 229, 9, 60, 224, 15, 11, 200, 65, 35, 208, 61, 37, 9, 60, 224, 15, 13, 202, 64, 19, 31, 77, 66, 78, 20, 228, 197,
-			72, 15, 11, 200, 65, 35, 214, 36, 228, 201, 4, 224, 15, 11, 200, 9, 32, 78, 16, 84, 201, 4, 224, 15, 0, 10, 199, 24, 147, 129,
-			57, 50, 69, 48, 15, 10, 199, 84, 226, 86, 21, 36, 193, 48, 15, 10, 199, 64, 243, 25, 28, 243, 129, 48, 15, 10, 199, 61, 37, 15,
-			28, 243, 129, 48, 15, 10, 199, 52, 81, 9, 12, 147, 129, 48, 15, 10, 199, 20, 208, 146, 100, 243, 129, 48, 15, 0, 9, 198, 65, 42,
-			74, 76, 148, 203, 15, 7, 196, 52, 147, 73, 44, 15, 15, 204, 78, 147, 132, 21, 32, 143, 72, 113, 78, 76, 84, 128, 15, 15, 204, 76,
-			18, 211, 46, 144, 137, 56, 113, 78, 76, 84, 128, 15, 15, 204, 72, 147, 135, 46, 144, 137, 56, 113, 78, 76, 84, 128, 15, 18, 4, 95,
-			97, 99, 50, 72, 108, 13, 55, 35, 49, 57, 6, 40, 12, 47, 0, 0, 6, 195, 88, 244, 133, 72, 0, 8, 197, 12, 149, 18, 60, 224,
-			15, 6, 195, 5, 67, 204, 15, 10, 199, 56, 20, 139, 60, 208, 78, 36, 15, 8, 197, 76, 19, 79, 4, 224, 15, 0, 12, 201, 88, 246,
-			69, 85, 34, 83, 80, 148, 203, 15, 12, 201, 80, 84, 146, 61, 34, 83, 80, 148, 203, 15, 12, 201, 77, 147, 66, 60, 194, 83, 80, 148,
-			203, 15, 12, 201, 77, 64, 76, 36, 226, 83, 80, 148, 203, 15, 12, 201, 77, 2, 82, 37, 66, 83, 80, 148, 203, 15, 12, 201, 76, 240,
-			201, 4, 194, 83, 80, 148, 203, 15, 12, 201, 72, 149, 21, 4, 194, 83, 80, 148, 203, 15, 12, 201, 65, 35, 198, 100, 192, 75, 80, 148,
-			203, 15, 12, 201, 65, 34, 86, 5, 66, 83, 80, 148, 203, 15, 12, 201, 64, 197, 82, 4, 194, 83, 80, 148, 203, 15, 12, 201, 64, 20,
-			129, 48, 192, 75, 80, 148, 203, 15, 12, 201, 56, 245, 133, 48, 194, 83, 80, 148, 203, 15, 12, 201, 53, 148, 212, 36, 98, 83, 80, 148,
-			203, 15, 12, 201, 52, 241, 5, 72, 226, 83, 80, 148, 203, 15, 12, 201, 52, 20, 207, 12, 130, 83, 80, 148, 203, 15, 12, 201, 44, 243,
-			77, 84, 226, 83, 80, 148, 203, 15, 12, 201, 44, 16, 130, 4, 194, 83, 80, 148, 203, 15, 12, 201, 32, 148, 212, 61, 34, 83, 80, 148,
-			203, 15, 12, 201, 32, 83, 12, 20, 226, 83, 80, 148, 203, 15, 12, 201, 28, 83, 197, 48, 82, 212, 72, 148, 203, 15, 12, 201, 28, 20,
-			212, 72, 243, 143, 52, 148, 203, 15, 12, 201, 25, 148, 201, 60, 115, 143, 52, 148, 203, 15, 12, 201, 24, 244, 141, 4, 194, 83, 80, 148,
-			203, 15, 12, 201, 24, 85, 68, 4, 194, 83, 80, 148, 203, 15, 12, 201, 24, 85, 9, 12, 130, 83, 80, 148, 203, 15, 12, 201, 17, 32,
-			77, 5, 69, 82, 28, 148, 203, 15, 12, 201, 16, 20, 151, 36, 226, 83, 80, 148, 203, 15, 12, 201, 12, 19, 22, 36, 226, 83, 80, 148,
-			203, 15, 12, 201, 9, 37, 84, 4, 194, 83, 80, 148, 203, 15, 12, 201, 4, 36, 213, 72, 66, 83, 80, 148, 203, 15, 12, 201, 52, 146,
-			210, 60, 225, 83, 36, 83, 128, 15, 10, 67, 33, 98, 83, 84, 36, 89, 0, 76, 0, 12, 201, 88, 19, 15, 72, 148, 193, 80, 147, 206,
-			15, 12, 201, 81, 148, 9, 24, 146, 193, 80, 147, 206, 15, 12, 201, 64, 243, 1, 72, 148, 193, 80, 147, 206, 15, 12, 201, 44, 243, 148,
-			36, 229, 65, 80, 147, 206, 15, 12, 201, 44, 243, 147, 80, 148, 1, 80, 147, 206, 15, 12, 201, 44, 243, 135, 72, 81, 193, 80, 147, 206,
-			15, 12, 201, 20, 208, 78, 12, 148, 1, 80, 147, 206, 15, 12, 201, 4, 211, 210, 80, 148, 193, 80, 147, 206, 15, 12, 201, 4, 194, 77,
-			20, 229, 1, 80, 147, 206, 15, 12, 201, 4, 48, 197, 57, 69, 65, 80, 147, 206, 15, 8, 197, 44, 21, 84, 20, 192, 15, 8, 197, 44,
-			21, 84, 20, 192, 15, 7, 196, 44, 19, 73, 44, 15, 0, 7, 196, 52, 20, 137, 56, 15, 7, 196, 52, 20, 137, 56, 15, 0, 14, 203,
-			64, 243, 25, 52, 84, 137, 76, 21, 9, 60, 224, 15, 8, 197, 9, 33, 84, 60, 224, 15, 9, 198, 24, 147, 20, 72, 21, 0, 15, 8,
-			197, 52, 81, 9, 4, 224, 16, 0, 21, 68, 77, 67, 210, 80, 89, 47, 39, 34, 72, 15, 107, 121, 40, 0, 81, 104, 97, 118, 32, 9,
-			198, 77, 64, 84, 36, 243, 128, 15, 9, 198, 28, 82, 147, 80, 194, 71, 15, 9, 198, 28, 20, 207, 48, 147, 128, 15, 10, 199, 13, 244,
-			193, 72, 148, 205, 20, 15, 9, 198, 65, 84, 137, 80, 19, 128, 15, 12, 201, 61, 48, 201, 48, 195, 199, 72, 17, 128, 15, 12, 201, 48,
-			82, 211, 36, 179, 199, 72, 17, 128, 15, 0, 6, 195, 20, 212, 0, 13, 9, 198, 45, 103, 211, 80, 244, 128, 15, 0, 40, 68, 16, 147,
-			133, 72, 72, 111, 50, 6, 114, 47, 34, 122, 68, 89, 48, 108, 47, 6, 121, 71, 55, 14, 0, 81, 116, 114, 97, 110, 115, 112, 111, 114,
-			116, 97, 98, 108, 101, 32, 6, 195, 5, 67, 205, 15, 7, 196, 64, 19, 133, 72, 15, 7, 196, 16, 147, 133, 72, 15, 10, 199, 4, 99,
-			30, 76, 83, 9, 28, 15, 10, 199, 4, 99, 31, 76, 83, 9, 28, 15, 12, 201, 104, 83, 130, 84, 65, 8, 37, 51, 69, 15, 12, 201,
-			72, 81, 201, 60, 224, 76, 37, 51, 69, 15, 12, 201, 44, 244, 144, 61, 32, 84, 37, 51, 69, 15, 12, 201, 44, 243, 80, 5, 32, 84,
-			37, 51, 69, 15, 12, 201, 44, 243, 15, 56, 144, 76, 37, 51, 69, 15, 12, 201, 44, 193, 82, 36, 176, 76, 37, 51, 69, 15, 12, 201,
-			16, 83, 79, 45, 32, 84, 37, 51, 69, 15, 12, 201, 8, 243, 129, 64, 20, 148, 37, 51, 69, 15, 12, 201, 5, 53, 9, 28, 208, 84,
-			37, 51, 69, 15, 12, 201, 20, 50, 1, 84, 97, 133, 72, 85, 0, 15, 7, 196, 16, 83, 129, 72, 15, 6, 196, 20, 195, 5, 72, 0,
-			11, 200, 65, 228, 1, 77, 49, 76, 36, 112, 15, 11, 200, 61, 5, 31, 56, 177, 76, 36, 112, 15, 11, 200, 24, 244, 132, 164, 161, 76,
-			36, 112, 15, 11, 200, 4, 229, 31, 56, 65, 76, 36, 112, 15, 9, 198, 37, 51, 1, 52, 149, 0, 15, 9, 198, 12, 240, 203, 64, 149,
-			0, 15, 13, 202, 80, 245, 1, 48, 149, 1, 72, 148, 205, 20, 15, 13, 202, 44, 243, 147, 60, 224, 78, 80, 148, 205, 20, 15, 13, 202,
-			44, 243, 134, 84, 50, 65, 56, 148, 205, 20, 15, 13, 202, 16, 147, 5, 81, 64, 78, 80, 148, 205, 20, 15, 13, 202, 5, 96, 78, 80,
-			112, 82, 16, 148, 205, 20, 15, 14, 203, 12, 132, 137, 77, 66, 65, 57, 50, 1, 88, 224, 15, 11, 200, 45, 38, 80, 80, 241, 210, 4,
-			96, 15, 0, 8, 197, 29, 32, 86, 165, 32, 15, 7, 196, 44, 20, 21, 80, 15, 9, 198, 16, 149, 137, 76, 244, 128, 15, 12, 201, 81,
-			32, 78, 76, 69, 75, 80, 244, 128, 15, 9, 198, 45, 96, 78, 80, 244, 128, 15, 9, 198, 88, 145, 9, 52, 84, 128, 15, 9, 198, 72,
-			18, 76, 48, 84, 128, 15, 9, 198, 56, 243, 73, 56, 84, 128, 15, 9, 198, 52, 84, 137, 80, 84, 128, 15, 9, 198, 44, 20, 137, 44,
-			84, 128, 15, 9, 198, 21, 128, 201, 80, 84, 128, 15, 9, 198, 16, 149, 137, 16, 84, 128, 15, 9, 198, 4, 208, 149, 48, 84, 128, 15,
-			7, 196, 61, 35, 129, 80, 15, 0, 11, 200, 65, 35, 214, 36, 228, 201, 20, 192, 15, 13, 202, 28, 83, 129, 57, 97, 78, 16, 83, 9,
-			28, 15, 15, 204, 4, 229, 18, 61, 3, 205, 61, 33, 137, 76, 209, 64, 15, 9, 198, 25, 32, 75, 80, 19, 0, 15, 0, 7, 196, 4,
-			65, 5, 72, 15, 14, 203, 48, 245, 141, 20, 66, 15, 48, 65, 76, 36, 112, 15, 10, 199, 81, 32, 77, 64, 243, 9, 56, 15, 15, 204,
-			36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 51, 69, 15, 15, 204, 20, 180, 201, 77, 65, 78, 80, 144, 76, 37, 51, 69, 15, 11, 200,
-			48, 147, 135, 88, 148, 212, 36, 176, 15, 10, 199, 8, 144, 140, 36, 243, 65, 56, 16, 0, 8, 197, 44, 20, 137, 165, 48, 15, 11, 200,
-			4, 229, 9, 80, 242, 211, 36, 224, 15, 16, 205, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 205, 20, 15, 0, 7, 196, 65, 84,
-			9, 48, 15, 13, 69, 13, 33, 65, 77, 144, 49, 34, 37, 89, 111, 0, 25, 4, 95, 55, 88, 111, 107, 117, 55, 83, 57, 6, 117, 34,
-			89, 36, 50, 89, 47, 129, 84, 14, 50, 14, 0, 0, 12, 201, 65, 39, 208, 5, 32, 84, 36, 243, 128, 15, 12, 201, 125, 53, 5, 80,
-			148, 197, 72, 147, 135, 15, 13, 202, 81, 32, 78, 77, 3, 206, 21, 34, 78, 28, 15, 13, 202, 77, 1, 67, 36, 98, 67, 21, 34, 78,
-			28, 15, 13, 202, 73, 84, 211, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 64, 244, 201, 80, 147, 206, 21, 34, 78, 28, 15, 13, 202,
-			44, 192, 82, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 28, 195, 210, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 24, 19, 19, 36,
-			98, 67, 21, 34, 78, 28, 15, 12, 201, 17, 243, 79, 56, 148, 197, 72, 147, 135, 15, 13, 202, 16, 84, 201, 56, 98, 67, 21, 34, 78,
-			28, 15, 13, 202, 16, 83, 79, 57, 53, 18, 21, 34, 78, 28, 15, 13, 202, 4, 96, 129, 48, 19, 131, 21, 34, 78, 28, 15, 10, 199,
-			76, 192, 86, 37, 53, 9, 44, 15, 10, 199, 33, 145, 18, 5, 83, 9, 44, 15, 8, 197, 64, 20, 195, 4, 192, 15, 0, 13, 202, 20,
-			180, 212, 72, 245, 133, 73, 50, 79, 56, 15, 9, 198, 4, 66, 31, 76, 147, 206, 15, 14, 203, 77, 80, 138, 20, 181, 9, 88, 84, 137,
-			56, 112, 15, 14, 203, 76, 243, 9, 16, 20, 137, 76, 84, 137, 56, 112, 15, 14, 203, 76, 82, 213, 48, 20, 137, 76, 84, 137, 56, 112,
-			15, 14, 203, 72, 146, 207, 12, 129, 84, 80, 84, 137, 56, 112, 15, 14, 203, 72, 82, 207, 28, 227, 211, 12, 84, 137, 56, 112, 15, 14,
-			203, 65, 35, 212, 60, 179, 204, 48, 84, 137, 56, 112, 15, 14, 203, 64, 243, 25, 52, 84, 137, 76, 84, 137, 56, 112, 15, 14, 203, 64,
-			192, 83, 80, 145, 137, 12, 84, 137, 56, 112, 15, 14, 203, 52, 146, 210, 61, 50, 207, 64, 84, 137, 56, 112, 15, 14, 203, 45, 96, 78,
-			80, 145, 137, 12, 84, 137, 56, 112, 15, 14, 203, 44, 243, 139, 72, 85, 9, 76, 84, 137, 56, 112, 15, 14, 203, 44, 243, 12, 5, 66,
-			79, 56, 84, 137, 56, 112, 15, 14, 203, 44, 21, 5, 28, 244, 137, 76, 84, 137, 56, 112, 15, 14, 203, 36, 229, 5, 73, 1, 76, 48,
-			84, 137, 56, 112, 15, 14, 203, 36, 65, 78, 80, 145, 137, 12, 84, 137, 56, 112, 15, 14, 203, 32, 145, 82, 5, 34, 201, 76, 84, 137,
-			56, 112, 15, 14, 203, 29, 82, 76, 48, 245, 9, 56, 84, 137, 56, 112, 15, 14, 203, 16, 148, 195, 37, 3, 9, 56, 84, 137, 56, 112,
-			15, 14, 203, 12, 83, 148, 72, 145, 149, 28, 84, 137, 56, 112, 15, 9, 198, 28, 83, 205, 21, 68, 137, 15, 10, 199, 44, 20, 141, 60,
-			148, 201, 56, 15, 10, 199, 4, 229, 9, 65, 148, 137, 56, 15, 10, 199, 56, 85, 82, 85, 4, 9, 56, 15, 9, 198, 9, 39, 203, 4,
-			113, 64, 15, 0, 8, 197, 81, 34, 75, 36, 224, 15, 8, 197, 80, 18, 87, 4, 224, 15, 7, 196, 73, 83, 95, 56, 15, 8, 197, 80,
-			18, 87, 4, 224, 16, 17, 71, 12, 243, 5, 72, 145, 7, 20, 49, 125, 58, 55, 34, 111, 75, 0, 18, 71, 12, 19, 66, 72, 145, 7,
-			20, 49, 115, 57, 65, 71, 51, 113, 75, 0, 0, 11, 200, 72, 82, 214, 37, 50, 84, 165, 32, 15, 11, 200, 48, 85, 133, 72, 19, 132,
-			165, 32, 15, 11, 200, 36, 228, 212, 73, 82, 212, 165, 32, 15, 11, 200, 5, 52, 213, 72, 19, 132, 165, 32, 15, 11, 200, 4, 208, 129,
-			77, 48, 68, 165, 32, 15, 11, 200, 4, 178, 214, 37, 50, 84, 165, 32, 15, 15, 204, 81, 32, 78, 77, 3, 1, 57, 64, 84, 36, 243,
-			128, 15, 15, 204, 36, 228, 212, 73, 83, 69, 57, 64, 84, 36, 243, 128, 15, 15, 204, 36, 211, 65, 81, 34, 75, 84, 192, 84, 36, 243,
-			128, 15, 11, 200, 16, 81, 159, 44, 21, 9, 60, 224, 15, 15, 204, 80, 82, 206, 60, 180, 129, 80, 148, 197, 72, 147, 135, 15, 15, 204,
-			76, 176, 78, 16, 147, 129, 88, 148, 197, 72, 147, 135, 15, 15, 204, 65, 35, 194, 48, 83, 65, 80, 148, 197, 72, 147, 135, 15, 15, 204,
-			52, 84, 139, 4, 229, 9, 48, 148, 197, 72, 147, 135, 15, 15, 204, 24, 146, 212, 36, 243, 129, 48, 148, 197, 72, 147, 135, 15, 15, 204,
-			16, 83, 73, 56, 84, 129, 48, 148, 197, 72, 147, 135, 15, 15, 204, 16, 80, 197, 57, 68, 129, 48, 148, 197, 72, 147, 135, 15, 15, 204,
-			12, 243, 148, 4, 147, 133, 72, 148, 197, 72, 147, 135, 15, 0, 25, 66, 20, 224, 36, 50, 15, 49, 117, 50, 39, 50, 6, 36, 34, 0,
-			81, 107, 97, 110, 111, 110, 101, 114, 32, 16, 66, 20, 224, 36, 50, 15, 89, 6, 108, 0, 81, 115, 195, 165, 32, 25, 66, 20, 224, 36,
-			50, 15, 55, 36, 81, 6, 115, 50, 72, 14, 0, 81, 108, 101, 103, 101, 110, 100, 101, 32, 23, 66, 20, 224, 121, 68, 15, 48, 117, 89,
-			6, 121, 68, 0, 81, 112, 97, 115, 115, 97, 110, 116, 32, 19, 66, 20, 224, 121, 68, 15, 6, 71, 55, 108, 49, 0, 81, 98, 108, 111,
-			99, 32, 18, 66, 20, 224, 121, 68, 15, 83, 6, 35, 89, 0, 81, 102, 97, 99, 101, 32, 9, 198, 80, 20, 212, 5, 69, 82, 15, 9,
-			198, 77, 68, 137, 45, 69, 82, 15, 9, 198, 5, 4, 18, 21, 69, 82, 15, 12, 201, 44, 243, 147, 81, 37, 75, 80, 147, 206, 15, 12,
-			201, 36, 229, 18, 60, 69, 75, 80, 147, 206, 15, 12, 201, 16, 84, 201, 56, 97, 75, 80, 147, 206, 15, 12, 201, 12, 245, 133, 73, 97,
-			82, 76, 147, 206, 15, 13, 202, 88, 148, 213, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 88, 19, 132, 4, 194, 83, 21, 34, 78, 28,
-			15, 13, 202, 80, 84, 146, 61, 34, 83, 21, 34, 78, 28, 15, 13, 202, 77, 147, 66, 60, 194, 83, 21, 34, 78, 28, 15, 13, 202, 76,
-			240, 201, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 72, 149, 21, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 64, 21, 18, 60, 226,
-			83, 21, 34, 78, 28, 15, 13, 202, 56, 244, 141, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 53, 84, 197, 4, 194, 83, 21, 34, 78,
-			28, 15, 13, 202, 36, 229, 5, 57, 50, 86, 21, 34, 78, 28, 15, 13, 202, 24, 244, 141, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202,
-			24, 84, 148, 36, 194, 83, 21, 34, 78, 28, 15, 13, 202, 16, 85, 18, 60, 226, 83, 21, 34, 78, 28, 15, 13, 202, 9, 37, 84, 4,
-			194, 83, 21, 34, 78, 28, 15, 13, 202, 4, 181, 21, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 4, 68, 212, 72, 147, 135, 21, 34,
-			78, 28, 15, 8, 197, 28, 243, 132, 60, 192, 15, 11, 200, 24, 19, 19, 36, 98, 75, 5, 64, 15, 12, 201, 16, 82, 207, 48, 193, 84,
-			4, 113, 64, 15, 5, 194, 20, 224, 72, 0, 13, 202, 77, 80, 143, 72, 66, 78, 5, 66, 79, 56, 15, 13, 202, 24, 84, 148, 36, 194,
-			83, 5, 66, 79, 56, 15, 10, 199, 88, 242, 193, 9, 83, 1, 72, 15, 13, 3, 95, 51, 88, 47, 16, 6, 120, 86, 84, 13, 0, 0,
-			8, 197, 64, 21, 18, 60, 224, 15, 17, 69, 56, 21, 18, 60, 224, 50, 6, 117, 12, 47, 51, 108, 50, 0, 15, 14, 203, 36, 229, 5,
-			73, 1, 76, 48, 21, 9, 60, 224, 15, 14, 203, 36, 65, 78, 80, 145, 137, 44, 21, 9, 60, 224, 15, 14, 203, 20, 180, 212, 72, 20,
-			15, 48, 21, 9, 60, 224, 15, 14, 203, 12, 83, 148, 72, 19, 9, 76, 21, 9, 60, 224, 15, 14, 203, 4, 67, 73, 56, 148, 212, 72,
-			21, 9, 60, 224, 15, 9, 198, 56, 18, 86, 37, 65, 84, 15, 8, 197, 40, 20, 205, 36, 224, 15, 9, 198, 24, 244, 131, 21, 33, 84,
-			15, 9, 198, 24, 19, 12, 21, 33, 84, 15, 9, 198, 20, 195, 216, 21, 33, 84, 15, 13, 3, 95, 48, 67, 107, 6, 40, 50, 51, 108,
-			86, 0, 0, 9, 198, 44, 21, 84, 36, 243, 128, 15, 10, 199, 52, 20, 137, 8, 243, 137, 80, 15, 10, 199, 45, 98, 82, 72, 85, 137,
-			80, 15, 9, 198, 5, 68, 129, 104, 147, 128, 15, 9, 198, 5, 32, 66, 36, 83, 128, 15, 9, 198, 80, 144, 133, 80, 19, 128, 15, 9,
-			198, 4, 33, 83, 76, 147, 128, 15, 10, 199, 73, 85, 9, 56, 84, 133, 80, 15, 10, 199, 16, 83, 5, 28, 84, 133, 80, 15, 10, 199,
-			16, 80, 201, 16, 84, 133, 80, 15, 10, 199, 5, 96, 78, 12, 84, 133, 80, 15, 10, 199, 4, 197, 5, 72, 84, 133, 80, 15, 10, 199,
-			24, 192, 71, 20, 195, 1, 80, 15, 0, 0, 13, 202, 12, 148, 212, 21, 32, 201, 20, 228, 197, 72, 15, 11, 200, 65, 39, 202, 84, 66,
-			75, 5, 64, 15, 9, 198, 26, 145, 19, 20, 192, 82, 15, 12, 201, 16, 83, 79, 57, 53, 18, 4, 229, 0, 15, 0, 7, 196, 8, 81,
-			223, 72, 15, 11, 200, 88, 148, 213, 4, 194, 83, 21, 32, 15, 11, 200, 88, 84, 130, 4, 194, 83, 21, 32, 15, 11, 200, 88, 19, 132,
-			4, 194, 83, 21, 32, 15, 11, 200, 81, 148, 129, 56, 226, 83, 21, 32, 15, 11, 200, 81, 34, 65, 56, 117, 76, 21, 32, 15, 11, 200,
-			80, 84, 146, 61, 34, 83, 21, 32, 15, 11, 200, 77, 147, 66, 60, 194, 83, 21, 32, 15, 11, 200, 77, 68, 129, 56, 117, 76, 21, 32,
-			15, 11, 200, 77, 65, 82, 36, 194, 83, 21, 32, 15, 11, 200, 77, 64, 66, 36, 194, 83, 21, 32, 15, 11, 200, 76, 240, 201, 4, 194,
-			83, 21, 32, 15, 11, 200, 76, 145, 206, 4, 194, 83, 21, 32, 15, 11, 200, 72, 149, 21, 4, 194, 83, 21, 32, 15, 11, 200, 72, 80,
-			201, 72, 181, 76, 21, 32, 15, 11, 200, 65, 35, 211, 64, 82, 212, 21, 32, 15, 11, 200, 65, 34, 86, 36, 193, 71, 21, 32, 15, 11,
-			200, 64, 21, 18, 60, 226, 83, 21, 32, 15, 11, 200, 64, 20, 148, 36, 50, 80, 21, 32, 15, 11, 200, 56, 244, 141, 4, 194, 83, 21,
-			32, 15, 11, 200, 52, 85, 1, 48, 194, 83, 21, 32, 15, 11, 200, 52, 21, 18, 36, 181, 76, 21, 32, 15, 11, 200, 52, 20, 203, 36,
-			226, 83, 21, 32, 15, 11, 200, 52, 19, 20, 72, 18, 212, 21, 32, 15, 11, 200, 33, 145, 18, 60, 198, 83, 21, 32, 15, 11, 200, 32,
-			20, 141, 60, 226, 83, 21, 32, 15, 11, 200, 28, 84, 141, 4, 226, 83, 21, 32, 15, 11, 200, 28, 19, 22, 4, 226, 83, 21, 32, 15,
-			11, 200, 24, 244, 141, 4, 194, 83, 21, 32, 15, 11, 200, 24, 197, 79, 72, 84, 195, 21, 32, 15, 11, 200, 24, 84, 148, 36, 194, 83,
-			21, 32, 15, 11, 200, 24, 18, 211, 36, 210, 76, 21, 32, 15, 11, 200, 20, 180, 208, 48, 242, 84, 21, 32, 15, 11, 200, 16, 85, 18,
-			60, 226, 83, 21, 32, 15, 11, 200, 9, 37, 84, 4, 194, 83, 21, 32, 15, 11, 200, 8, 20, 146, 36, 176, 68, 21, 32, 15, 11, 200,
-			8, 19, 11, 4, 226, 83, 21, 32, 15, 11, 200, 4, 181, 21, 4, 194, 83, 21, 32, 15, 11, 200, 4, 178, 214, 36, 84, 195, 21, 32,
-			15, 11, 200, 4, 178, 207, 52, 211, 196, 21, 32, 15, 11, 200, 64, 192, 84, 60, 226, 75, 21, 32, 15, 11, 200, 32, 84, 129, 48, 66,
-			75, 21, 32, 15, 9, 198, 52, 244, 132, 20, 229, 0, 15, 9, 198, 88, 84, 148, 36, 176, 76, 15, 9, 198, 77, 1, 75, 81, 32, 76,
-			15, 9, 198, 44, 244, 144, 61, 32, 76, 15, 9, 198, 44, 240, 75, 76, 144, 76, 15, 9, 198, 24, 84, 212, 37, 96, 76, 15, 9, 198,
-			16, 147, 21, 88, 144, 76, 15, 9, 198, 12, 85, 1, 57, 64, 76, 15, 0, 11, 200, 61, 33, 193, 56, 241, 210, 4, 208, 15, 11, 200,
-			45, 38, 80, 80, 241, 210, 4, 208, 15, 9, 198, 77, 147, 70, 60, 226, 75, 15, 9, 198, 52, 148, 197, 72, 16, 128, 15, 9, 198, 24,
-			21, 143, 72, 16, 128, 15, 0, 12, 201, 80, 82, 206, 60, 195, 199, 37, 49, 82, 15, 12, 201, 64, 144, 78, 37, 53, 9, 56, 65, 64,
-			15, 12, 201, 45, 33, 79, 48, 84, 137, 56, 65, 64, 15, 12, 201, 32, 84, 147, 44, 84, 137, 56, 65, 64, 15, 12, 201, 25, 34, 83,
-			80, 84, 137, 56, 65, 64, 15, 12, 201, 8, 18, 203, 4, 229, 9, 56, 65, 64, 15, 8, 197, 53, 243, 129, 16, 80, 15, 0, 9, 198,
-			53, 150, 41, 16, 83, 64, 15, 13, 70, 20, 228, 197, 52, 35, 5, 21, 102, 114, 0, 47, 0, 7, 196, 64, 241, 83, 36, 15, 15, 204,
-			37, 36, 133, 88, 84, 147, 36, 34, 76, 37, 65, 84, 15, 15, 204, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 65, 84, 15, 11, 200,
-			61, 37, 15, 65, 241, 9, 76, 176, 15, 9, 198, 72, 81, 201, 60, 224, 76, 15, 9, 198, 61, 34, 71, 36, 224, 76, 15, 9, 198, 29,
-			85, 20, 85, 32, 76, 15, 9, 198, 25, 85, 20, 21, 32, 76, 15, 9, 198, 12, 84, 133, 9, 32, 76, 15, 9, 198, 8, 18, 203, 4,
-			224, 76, 15, 8, 197, 61, 1, 82, 4, 32, 15, 17, 3, 95, 49, 67, 36, 72, 15, 107, 6, 40, 50, 51, 108, 12, 86, 0, 0, 10,
-			199, 60, 97, 137, 12, 147, 133, 48, 15, 9, 198, 16, 243, 69, 77, 66, 75, 15, 14, 203, 73, 81, 11, 164, 34, 78, 28, 83, 147, 21,
-			32, 15, 9, 198, 88, 148, 149, 48, 83, 147, 15, 9, 198, 72, 84, 201, 16, 83, 147, 15, 10, 199, 77, 147, 129, 28, 241, 193, 48, 15,
-			10, 199, 4, 69, 133, 72, 34, 65, 48, 15, 0, 9, 198, 80, 84, 148, 37, 244, 128, 15, 9, 198, 61, 33, 9, 57, 244, 128, 15, 12,
-			201, 88, 84, 137, 24, 146, 193, 80, 147, 206, 15, 12, 201, 56, 245, 9, 24, 146, 193, 80, 147, 206, 15, 12, 201, 48, 81, 201, 80, 147,
-			65, 80, 147, 206, 15, 12, 201, 44, 243, 80, 48, 146, 193, 80, 147, 206, 15, 12, 201, 20, 180, 208, 48, 146, 193, 80, 147, 206, 15, 12,
-			201, 5, 81, 205, 20, 229, 1, 80, 147, 206, 15, 17, 206, 20, 180, 212, 21, 36, 137, 80, 244, 137, 4, 194, 84, 21, 64, 15, 13, 202,
-			77, 3, 206, 80, 19, 137, 77, 66, 83, 44, 15, 13, 202, 72, 84, 208, 37, 32, 84, 61, 34, 83, 44, 15, 13, 202, 44, 243, 66, 36,
-			224, 84, 61, 34, 83, 44, 15, 13, 202, 32, 83, 9, 60, 49, 78, 81, 34, 83, 44, 15, 8, 197, 24, 148, 211, 36, 192, 15, 7, 196,
-			64, 19, 137, 44, 15, 0, 10, 67, 81, 33, 64, 47, 34, 6, 116, 0, 7, 196, 52, 83, 15, 56, 15, 13, 202, 81, 32, 78, 77, 3,
-			211, 37, 66, 79, 56, 15, 13, 202, 72, 82, 212, 36, 98, 75, 5, 66, 79, 56, 15, 0, 7, 197, 8, 19, 12, 60, 224, 14, 203, 81,
-			32, 78, 76, 99, 210, 52, 21, 9, 60, 224, 15, 14, 203, 77, 68, 129, 80, 145, 137, 44, 21, 9, 60, 224, 15, 8, 197, 64, 84, 19,
-			36, 224, 15, 10, 69, 64, 145, 7, 36, 224, 21, 0, 47, 0, 0, 12, 201, 52, 83, 147, 81, 37, 65, 80, 147, 206, 15, 12, 201, 36,
-			229, 9, 52, 145, 1, 80, 147, 206, 15, 12, 201, 16, 148, 211, 60, 50, 65, 80, 147, 206, 15, 12, 201, 4, 32, 146, 21, 98, 65, 80,
-			147, 206, 15, 8, 197, 44, 20, 130, 60, 192, 15, 8, 197, 4, 180, 201, 4, 192, 15, 12, 3, 95, 49, 57, 50, 6, 114, 72, 14, 50,
-			0, 0, 7, 196, 48, 20, 9, 56, 15, 9, 198, 81, 48, 82, 37, 51, 69, 15, 9, 198, 80, 131, 205, 37, 51, 69, 15, 9, 198, 56,
-			18, 86, 37, 51, 69, 15, 9, 198, 48, 19, 65, 37, 51, 69, 15, 9, 198, 41, 81, 1, 37, 51, 69, 15, 9, 198, 24, 21, 86, 37,
-			51, 69, 15, 9, 198, 5, 67, 205, 37, 51, 69, 15, 9, 198, 5, 34, 193, 37, 51, 69, 15, 9, 198, 4, 99, 210, 37, 51, 69, 15,
-			11, 3, 95, 49, 56, 6, 118, 72, 14, 50, 0, 0, 8, 197, 64, 243, 80, 60, 224, 15, 10, 199, 85, 32, 129, 56, 148, 205, 20, 15,
-			10, 199, 48, 21, 9, 56, 148, 205, 20, 15, 10, 199, 44, 243, 15, 72, 148, 205, 20, 15, 10, 199, 28, 83, 210, 28, 148, 205, 20, 15,
-			10, 199, 9, 81, 4, 32, 148, 205, 20, 15, 8, 197, 64, 20, 21, 4, 224, 15, 9, 198, 61, 53, 9, 56, 21, 0, 15, 0, 9, 198,
-			49, 85, 135, 37, 34, 71, 15, 9, 198, 28, 85, 129, 48, 66, 71, 15, 0, 9, 198, 81, 34, 86, 36, 19, 0, 15, 0, 7, 196, 28,
-			83, 5, 72, 15, 9, 198, 48, 85, 75, 124, 210, 64, 15, 12, 201, 85, 66, 76, 37, 64, 82, 37, 51, 69, 15, 12, 201, 64, 20, 129,
-			48, 193, 76, 37, 51, 69, 15, 12, 201, 61, 4, 15, 73, 69, 78, 37, 51, 69, 15, 12, 201, 56, 21, 9, 60, 224, 76, 37, 51, 69,
-			15, 12, 201, 52, 48, 193, 73, 66, 25, 37, 51, 69, 15, 12, 201, 44, 19, 142, 36, 32, 76, 37, 51, 69, 15, 12, 201, 32, 148, 212,
-			61, 34, 67, 37, 51, 69, 15, 12, 201, 21, 81, 1, 36, 211, 206, 37, 51, 69, 15, 12, 201, 20, 181, 137, 48, 144, 146, 37, 51, 69,
-			15, 12, 201, 20, 179, 5, 45, 66, 67, 37, 51, 69, 15, 12, 201, 8, 82, 1, 88, 147, 210, 37, 51, 69, 15, 12, 201, 4, 115, 143,
-			77, 66, 67, 37, 51, 69, 15, 12, 201, 76, 82, 210, 21, 64, 82, 36, 21, 0, 15, 12, 201, 4, 229, 9, 45, 96, 82, 36, 21, 0,
-			15, 7, 196, 28, 19, 1, 72, 15, 7, 196, 64, 243, 1, 72, 15, 0, 12, 201, 77, 1, 75, 81, 35, 211, 44, 244, 0, 15, 10, 199,
-			80, 21, 84, 60, 195, 199, 36, 15, 10, 199, 76, 240, 201, 60, 195, 199, 36, 15, 10, 199, 76, 83, 73, 60, 195, 199, 36, 15, 10, 199,
-			65, 54, 75, 60, 195, 199, 36, 15, 10, 199, 44, 20, 132, 36, 19, 7, 36, 15, 10, 199, 33, 145, 18, 60, 195, 199, 36, 15, 10, 199,
-			25, 148, 201, 60, 195, 199, 36, 15, 10, 199, 21, 70, 77, 60, 195, 199, 36, 15, 10, 199, 5, 53, 18, 60, 195, 199, 36, 15, 9, 198,
-			64, 19, 70, 48, 85, 0, 15, 9, 198, 80, 83, 132, 20, 228, 192, 15, 9, 198, 80, 19, 135, 20, 228, 192, 15, 9, 198, 81, 34, 66,
-			84, 224, 76, 15, 9, 198, 72, 82, 212, 61, 32, 76, 15, 9, 198, 52, 20, 135, 36, 224, 76, 15, 0, 9, 198, 20, 161, 75, 80, 244,
-			128, 15, 12, 201, 76, 83, 147, 5, 66, 79, 56, 83, 0, 15, 9, 198, 88, 148, 201, 80, 84, 128, 15, 9, 198, 88, 19, 9, 16, 84,
-			128, 15, 9, 198, 81, 148, 9, 76, 84, 128, 15, 9, 198, 81, 84, 195, 32, 84, 128, 15, 9, 198, 80, 243, 5, 72, 84, 128, 15, 9,
-			198, 80, 149, 21, 48, 84, 128, 15, 9, 198, 77, 81, 134, 48, 84, 128, 15, 9, 198, 77, 64, 71, 56, 84, 128, 15, 9, 198, 77, 64,
-			70, 24, 84, 128, 15, 9, 198, 77, 3, 206, 76, 84, 128, 15, 9, 198, 76, 176, 77, 24, 84, 128, 15, 9, 198, 76, 176, 76, 64, 84,
-			128, 15, 9, 198, 76, 84, 1, 72, 84, 128, 15, 9, 198, 72, 84, 5, 80, 84, 128, 15, 9, 198, 72, 83, 143, 88, 84, 128, 15, 9,
-			198, 72, 83, 1, 80, 84, 128, 15, 9, 198, 72, 82, 210, 20, 84, 128, 15, 9, 198, 72, 81, 149, 76, 84, 128, 15, 9, 198, 64, 244,
-			148, 36, 84, 128, 15, 9, 198, 64, 194, 83, 76, 84, 128, 15, 9, 198, 64, 192, 71, 36, 84, 128, 15, 9, 198, 60, 225, 21, 48, 84,
-			128, 15, 9, 198, 52, 147, 137, 52, 84, 128, 15, 9, 198, 52, 83, 129, 28, 84, 128, 15, 9, 198, 52, 18, 213, 48, 84, 128, 15, 9,
-			198, 48, 147, 73, 80, 84, 128, 15, 9, 198, 44, 243, 15, 72, 84, 128, 15, 9, 198, 44, 17, 13, 36, 84, 128, 15, 9, 198, 41, 80,
-			137, 48, 84, 128, 15, 9, 198, 40, 243, 135, 48, 84, 128, 15, 9, 198, 36, 243, 137, 76, 84, 128, 15, 9, 198, 36, 229, 129, 16, 84,
-			128, 15, 9, 198, 36, 226, 84, 36, 84, 128, 15, 9, 198, 28, 19, 15, 64, 84, 128, 15, 9, 198, 28, 19, 15, 56, 84, 128, 15, 9,
-			198, 25, 32, 78, 44, 84, 128, 15, 9, 198, 21, 96, 75, 84, 84, 128, 15, 9, 198, 21, 64, 66, 48, 84, 128, 15, 9, 198, 20, 209,
-			78, 16, 84, 128, 15, 9, 198, 20, 208, 76, 40, 84, 128, 15, 9, 198, 20, 181, 137, 64, 84, 128, 15, 9, 198, 16, 83, 143, 80, 84,
-			128, 15, 9, 198, 16, 82, 193, 80, 84, 128, 15, 9, 198, 16, 19, 137, 76, 84, 128, 15, 9, 198, 5, 97, 82, 80, 84, 128, 15, 9,
-			198, 5, 69, 1, 44, 84, 128, 15, 9, 198, 4, 67, 213, 12, 84, 128, 15, 9, 198, 76, 19, 79, 88, 20, 128, 15, 9, 198, 9, 33,
-			86, 36, 20, 128, 15, 9, 198, 5, 34, 201, 88, 20, 128, 15, 0, 28, 67, 30, 148, 128, 81, 4, 132, 34, 15, 89, 121, 57, 15, 47,
-			6, 36, 55, 0, 82, 115, 105, 103, 32, 116, 105, 108, 32, 9, 198, 8, 145, 78, 56, 19, 0, 15, 11, 3, 95, 49, 49, 6, 116, 55,
-			84, 13, 0, 0, 9, 198, 8, 195, 206, 16, 147, 133, 15, 7, 196, 72, 245, 5, 72, 15, 7, 196, 16, 245, 5, 72, 15, 7, 196, 5,
-			5, 5, 72, 15, 7, 196, 56, 245, 1, 72, 15, 7, 196, 49, 81, 193, 72, 15, 7, 196, 12, 149, 1, 72, 15, 9, 3, 95, 49, 48,
-			47, 6, 111, 0, 0, 9, 198, 88, 148, 135, 36, 224, 76, 15, 9, 198, 56, 21, 9, 60, 224, 76, 15, 9, 198, 44, 243, 77, 84, 224,
-			76, 15, 9, 198, 44, 19, 142, 36, 32, 76, 15, 13, 68, 24, 244, 132, 36, 83, 109, 72, 6, 111, 0, 8, 13, 3, 95, 49, 51, 47,
-			51, 6, 120, 72, 14, 50, 0, 0, 9, 198, 88, 245, 5, 72, 147, 135, 15, 9, 198, 88, 148, 197, 72, 147, 135, 15, 9, 198, 72, 81,
-			197, 72, 147, 135, 15, 9, 198, 72, 20, 197, 72, 147, 135, 15, 9, 198, 65, 84, 133, 72, 147, 135, 15, 9, 198, 64, 243, 5, 72, 147,
-			135, 15, 9, 198, 61, 5, 5, 72, 147, 135, 15, 9, 198, 60, 194, 69, 72, 147, 135, 15, 9, 198, 56, 245, 5, 72, 147, 135, 15, 9,
-			198, 56, 81, 197, 72, 147, 135, 15, 9, 198, 48, 81, 197, 72, 147, 135, 15, 9, 198, 48, 20, 197, 72, 147, 135, 15, 9, 198, 48, 18,
-			197, 72, 147, 135, 15, 9, 198, 41, 81, 197, 72, 147, 135, 15, 9, 198, 28, 83, 5, 72, 147, 135, 15, 9, 198, 16, 245, 5, 72, 147,
-			135, 15, 9, 198, 12, 149, 5, 72, 147, 135, 15, 9, 198, 8, 20, 197, 72, 147, 135, 15, 9, 198, 5, 5, 5, 72, 147, 135, 15, 10,
-			199, 52, 146, 210, 60, 34, 69, 48, 15, 9, 198, 80, 82, 212, 60, 226, 75, 15, 10, 3, 95, 49, 50, 47, 6, 108, 55, 0, 0, 12,
-			201, 65, 39, 208, 61, 50, 84, 36, 243, 128, 15, 12, 201, 44, 243, 147, 81, 34, 75, 80, 147, 206, 15, 12, 201, 36, 225, 140, 4, 211,
-			65, 80, 147, 206, 15, 12, 201, 5, 37, 9, 45, 83, 1, 80, 147, 206, 15, 10, 199, 77, 69, 68, 21, 34, 78, 28, 15, 13, 202, 77,
-			68, 129, 8, 17, 19, 21, 34, 78, 28, 15, 10, 199, 76, 19, 4, 21, 34, 78, 28, 15, 13, 202, 64, 20, 129, 25, 32, 83, 21, 34,
-			78, 28, 15, 10, 199, 64, 19, 16, 21, 34, 78, 28, 15, 10, 199, 61, 134, 68, 21, 34, 78, 28, 15, 10, 199, 61, 130, 68, 21, 34,
-			78, 28, 15, 10, 199, 52, 21, 20, 21, 34, 78, 28, 15, 10, 199, 45, 34, 68, 21, 34, 78, 28, 15, 10, 199, 45, 33, 77, 21, 34,
-			78, 28, 15, 10, 199, 41, 84, 212, 21, 34, 78, 28, 15, 10, 199, 37, 51, 204, 21, 34, 78, 28, 15, 13, 202, 33, 148, 15, 77, 64,
-			83, 21, 34, 78, 28, 15, 10, 199, 20, 213, 76, 21, 34, 78, 28, 15, 13, 202, 16, 243, 69, 77, 66, 67, 21, 34, 78, 28, 15, 10,
-			199, 16, 243, 12, 21, 34, 78, 28, 15, 8, 197, 76, 84, 137, 20, 192, 15, 8, 197, 80, 243, 147, 36, 192, 15, 8, 197, 88, 84, 147,
-			4, 192, 15, 11, 200, 77, 80, 140, 36, 210, 78, 4, 192, 15, 13, 3, 95, 49, 53, 83, 6, 115, 65, 72, 14, 50, 0, 0, 10, 199,
-			44, 17, 1, 88, 84, 169, 76, 15, 10, 199, 36, 225, 133, 45, 66, 105, 76, 15, 11, 200, 84, 68, 193, 56, 84, 137, 56, 112, 15, 14,
-			203, 84, 68, 1, 72, 49, 76, 48, 84, 137, 56, 112, 15, 11, 200, 80, 16, 149, 48, 84, 137, 56, 112, 15, 11, 200, 72, 84, 213, 52,
-			84, 137, 56, 112, 15, 14, 203, 72, 83, 1, 80, 149, 137, 76, 84, 137, 56, 112, 15, 11, 200, 64, 195, 205, 8, 84, 137, 56, 112, 15,
-			11, 200, 52, 243, 137, 80, 84, 137, 56, 112, 15, 11, 200, 45, 38, 80, 80, 84, 137, 56, 112, 15, 11, 200, 36, 226, 1, 48, 84, 137,
-			56, 112, 15, 14, 203, 36, 225, 11, 4, 194, 213, 48, 84, 137, 56, 112, 15, 11, 200, 28, 83, 73, 56, 84, 137, 56, 112, 15, 11, 200,
-			24, 242, 213, 76, 84, 137, 56, 112, 15, 11, 200, 9, 35, 206, 104, 84, 137, 56, 112, 15, 11, 200, 4, 67, 208, 80, 84, 137, 56, 112,
-			15, 8, 197, 65, 39, 204, 5, 64, 15, 7, 196, 60, 181, 1, 56, 16, 14, 3, 95, 49, 52, 83, 57, 6, 39, 34, 72, 14, 50, 0,
-			0, 11, 200, 81, 80, 133, 72, 181, 76, 165, 48, 15, 10, 199, 72, 83, 143, 88, 21, 41, 72, 15, 10, 199, 20, 180, 212, 21, 34, 105,
-			72, 15, 9, 198, 5, 67, 205, 37, 53, 0, 15, 8, 197, 80, 19, 80, 60, 224, 15, 14, 203, 44, 192, 83, 76, 145, 137, 44, 21, 9,
-			60, 224, 15, 8, 197, 5, 82, 211, 36, 224, 15, 10, 199, 4, 225, 18, 60, 118, 78, 36, 15, 11, 200, 56, 144, 193, 72, 17, 213, 4,
-			224, 15, 8, 197, 89, 83, 11, 4, 224, 16, 10, 199, 81, 34, 75, 61, 64, 71, 20, 15, 10, 199, 72, 84, 15, 73, 64, 71, 20, 15,
-			10, 199, 21, 33, 77, 37, 64, 71, 20, 15, 10, 199, 5, 32, 137, 81, 32, 71, 20, 15, 12, 3, 95, 49, 55, 89, 6, 133, 72, 14,
-			50, 0, 0, 12, 201, 76, 147, 135, 5, 3, 210, 20, 19, 128, 15, 12, 201, 65, 81, 82, 80, 244, 137, 12, 19, 128, 15, 14, 3, 95,
-			49, 54, 89, 6, 121, 57, 89, 72, 14, 50, 0, 0, 23, 73, 77, 21, 65, 72, 81, 1, 56, 49, 64, 89, 49, 58, 6, 115, 108, 72,
-			117, 12, 50, 89, 0, 9, 198, 76, 181, 76, 65, 69, 82, 15, 9, 198, 65, 83, 16, 37, 69, 82, 15, 9, 198, 64, 20, 148, 37, 69,
-			82, 15, 9, 198, 16, 240, 197, 57, 69, 82, 15, 9, 198, 16, 146, 212, 5, 69, 82, 15, 11, 200, 89, 83, 7, 5, 34, 84, 21, 64,
-			15, 11, 200, 88, 148, 203, 61, 50, 84, 21, 64, 15, 11, 200, 84, 211, 210, 4, 194, 84, 21, 64, 15, 11, 200, 80, 242, 211, 36, 50,
-			84, 21, 64, 15, 11, 200, 77, 80, 148, 36, 194, 84, 21, 64, 15, 11, 200, 77, 69, 80, 36, 66, 84, 21, 64, 15, 11, 200, 77, 65,
-			82, 36, 194, 84, 21, 64, 15, 11, 200, 77, 64, 66, 36, 194, 84, 21, 64, 15, 11, 200, 76, 240, 201, 4, 194, 84, 21, 64, 15, 11,
-			200, 76, 84, 150, 36, 194, 84, 21, 64, 15, 11, 200, 65, 81, 82, 36, 194, 84, 21, 64, 15, 11, 200, 65, 80, 140, 36, 50, 84, 21,
-			64, 15, 11, 200, 64, 197, 82, 4, 194, 84, 21, 64, 15, 11, 200, 64, 84, 134, 36, 66, 84, 21, 64, 15, 11, 200, 64, 21, 5, 72,
-			226, 84, 21, 64, 15, 11, 200, 64, 20, 211, 37, 98, 84, 21, 64, 15, 11, 200, 56, 244, 141, 4, 194, 84, 21, 64, 15, 11, 200, 52,
-			244, 148, 4, 194, 84, 21, 64, 15, 11, 200, 52, 244, 130, 36, 66, 84, 21, 64, 15, 11, 200, 52, 241, 5, 72, 226, 84, 21, 64, 15,
-			11, 200, 52, 83, 148, 4, 194, 84, 21, 64, 15, 11, 200, 52, 21, 5, 72, 226, 84, 21, 64, 15, 11, 200, 52, 20, 211, 37, 98, 84,
-			21, 64, 15, 11, 200, 48, 147, 133, 5, 34, 84, 21, 64, 15, 11, 200, 48, 146, 214, 36, 66, 84, 21, 64, 15, 11, 200, 48, 20, 195,
-			37, 98, 84, 21, 64, 15, 11, 200, 45, 84, 137, 61, 50, 84, 21, 64, 15, 11, 200, 44, 243, 139, 5, 98, 84, 21, 64, 15, 11, 200,
-			44, 243, 77, 84, 226, 84, 21, 64, 15, 11, 200, 44, 21, 83, 4, 194, 84, 21, 64, 15, 11, 200, 40, 245, 137, 4, 194, 84, 21, 64,
-			15, 11, 200, 36, 229, 5, 57, 50, 84, 21, 64, 15, 11, 200, 36, 229, 5, 29, 34, 84, 21, 64, 15, 11, 200, 36, 225, 5, 52, 226,
-			84, 21, 64, 15, 11, 200, 29, 32, 86, 36, 66, 84, 21, 64, 15, 11, 200, 28, 83, 137, 4, 194, 84, 21, 64, 15, 11, 200, 25, 37,
-			71, 4, 194, 84, 21, 64, 15, 11, 200, 25, 34, 86, 60, 194, 84, 21, 64, 15, 11, 200, 25, 34, 71, 36, 66, 84, 21, 64, 15, 11,
-			200, 25, 32, 71, 36, 194, 84, 21, 64, 15, 11, 200, 24, 244, 141, 4, 194, 84, 21, 64, 15, 11, 200, 24, 84, 212, 37, 98, 84, 21,
-			64, 15, 11, 200, 24, 84, 148, 36, 194, 84, 21, 64, 15, 11, 200, 24, 18, 212, 36, 50, 84, 21, 64, 15, 11, 200, 17, 82, 212, 36,
-			194, 84, 21, 64, 15, 11, 200, 16, 149, 133, 73, 50, 84, 21, 64, 15, 11, 200, 16, 81, 143, 72, 210, 84, 21, 64, 15, 11, 200, 12,
-			83, 5, 9, 34, 84, 21, 64, 15, 11, 200, 9, 37, 84, 4, 194, 84, 21, 64, 15, 11, 200, 5, 67, 206, 4, 194, 84, 21, 64, 15,
-			11, 200, 4, 229, 9, 45, 98, 84, 21, 64, 15, 11, 200, 4, 227, 206, 100, 210, 84, 21, 64, 15, 11, 200, 4, 226, 77, 61, 50, 84,
-			21, 64, 15, 11, 200, 4, 211, 210, 4, 194, 84, 21, 64, 15, 11, 200, 4, 208, 137, 29, 82, 84, 21, 64, 15, 11, 200, 4, 181, 21,
-			4, 194, 84, 21, 64, 15, 11, 200, 4, 36, 213, 72, 66, 84, 21, 64, 15, 11, 200, 4, 35, 143, 72, 210, 84, 21, 64, 15, 13, 202,
-			89, 83, 11, 4, 226, 83, 21, 34, 78, 28, 15, 13, 202, 81, 32, 78, 77, 2, 82, 21, 34, 78, 28, 15, 13, 202, 81, 32, 78, 76,
-			97, 82, 21, 34, 78, 28, 15, 13, 202, 80, 83, 210, 21, 66, 83, 21, 34, 78, 28, 15, 13, 202, 80, 83, 5, 29, 32, 70, 21, 34,
-			78, 28, 15, 13, 202, 77, 84, 5, 73, 98, 83, 21, 34, 78, 28, 15, 13, 202, 76, 177, 77, 5, 66, 83, 21, 34, 78, 28, 15, 13,
-			202, 76, 19, 139, 80, 147, 206, 21, 34, 78, 28, 15, 13, 202, 64, 20, 129, 29, 32, 70, 21, 34, 78, 28, 15, 13, 202, 60, 34, 133,
-			45, 66, 86, 21, 34, 78, 28, 15, 13, 202, 56, 20, 139, 61, 66, 83, 21, 34, 78, 28, 15, 13, 202, 52, 241, 5, 72, 226, 83, 21,
-			34, 78, 28, 15, 13, 202, 52, 84, 131, 21, 34, 83, 21, 34, 78, 28, 15, 13, 202, 52, 17, 206, 21, 66, 83, 21, 34, 78, 28, 15,
-			13, 202, 44, 243, 148, 4, 210, 78, 21, 34, 78, 28, 15, 13, 202, 44, 194, 77, 5, 66, 83, 21, 34, 78, 28, 15, 13, 202, 44, 147,
-			15, 52, 85, 18, 21, 34, 78, 28, 15, 13, 202, 44, 20, 130, 60, 226, 83, 21, 34, 78, 28, 15, 13, 202, 33, 148, 14, 61, 66, 83,
-			21, 34, 78, 28, 15, 13, 202, 32, 148, 212, 61, 34, 83, 21, 34, 78, 28, 15, 13, 202, 28, 195, 194, 4, 194, 83, 21, 34, 78, 28,
-			15, 13, 202, 28, 129, 84, 80, 242, 83, 21, 34, 78, 28, 15, 13, 202, 28, 20, 142, 37, 51, 206, 21, 34, 78, 28, 15, 13, 202, 24,
-			245, 15, 29, 32, 70, 21, 34, 78, 28, 15, 13, 202, 24, 147, 13, 5, 66, 83, 21, 34, 78, 28, 15, 13, 202, 17, 32, 77, 5, 66,
-			83, 21, 34, 78, 28, 15, 13, 202, 16, 241, 205, 5, 66, 83, 21, 34, 78, 28, 15, 13, 202, 16, 83, 196, 61, 34, 83, 21, 34, 78,
-			28, 15, 13, 202, 5, 35, 205, 5, 66, 83, 21, 34, 78, 28, 15, 13, 202, 4, 227, 206, 100, 210, 83, 21, 34, 78, 28, 15, 13, 202,
-			4, 224, 76, 60, 114, 83, 21, 34, 78, 28, 15, 13, 202, 4, 176, 68, 20, 210, 83, 21, 34, 78, 28, 15, 8, 197, 4, 224, 66, 60,
-			192, 15, 15, 69, 76, 84, 129, 36, 192, 89, 36, 34, 6, 35, 57, 0, 15, 12, 201, 56, 243, 131, 32, 19, 1, 56, 49, 64, 15, 12,
-			201, 52, 84, 193, 48, 194, 65, 56, 49, 64, 15, 12, 201, 44, 243, 139, 85, 36, 133, 56, 49, 64, 15, 12, 201, 36, 229, 15, 48, 84,
-			129, 56, 49, 64, 15, 11, 200, 52, 20, 147, 44, 19, 12, 5, 64, 15, 8, 197, 64, 84, 137, 4, 192, 15, 8, 197, 56, 244, 141, 4,
-			192, 15, 8, 197, 52, 19, 149, 4, 192, 15, 8, 197, 40, 245, 137, 4, 192, 15, 8, 197, 28, 83, 137, 4, 192, 15, 0, 12, 201, 16,
-			85, 5, 72, 210, 78, 37, 53, 0, 15, 13, 202, 81, 32, 78, 77, 2, 82, 5, 66, 79, 56, 15, 7, 196, 65, 34, 79, 56, 15, 13,
-			202, 44, 243, 148, 4, 210, 78, 5, 66, 79, 56, 15, 13, 202, 44, 243, 12, 4, 35, 210, 5, 66, 79, 56, 15, 13, 202, 32, 19, 12,
-			84, 50, 78, 5, 66, 79, 56, 15, 13, 202, 20, 180, 208, 5, 68, 137, 5, 66, 79, 56, 15, 10, 199, 52, 19, 137, 65, 83, 5, 72,
-			15, 10, 199, 48, 81, 201, 80, 147, 69, 72, 15, 15, 3, 95, 55, 88, 107, 118, 55, 83, 57, 6, 116, 34, 89, 0, 0, 9, 198, 29,
-			32, 86, 37, 65, 84, 15, 9, 198, 4, 227, 149, 37, 65, 84, 15, 8, 197, 64, 19, 13, 36, 224, 15, 8, 197, 9, 32, 77, 36, 224,
-			15, 9, 198, 64, 21, 9, 20, 229, 0, 15, 9, 198, 76, 149, 21, 21, 33, 84, 15, 9, 198, 52, 20, 139, 21, 33, 84, 15, 9, 198,
-			8, 192, 83, 21, 33, 84, 15, 9, 198, 64, 20, 211, 4, 229, 0, 15, 0, 10, 199, 5, 85, 15, 72, 149, 5, 80, 15, 12, 201, 44,
-			243, 12, 5, 66, 79, 56, 84, 128, 15, 12, 201, 12, 83, 148, 72, 19, 9, 76, 84, 128, 15, 10, 199, 80, 82, 206, 60, 180, 129, 80,
-			15, 10, 199, 77, 3, 206, 76, 244, 129, 80, 15, 10, 199, 72, 85, 137, 76, 244, 129, 80, 15, 10, 199, 64, 197, 84, 60, 180, 129, 80,
-			15, 10, 199, 64, 83, 147, 36, 243, 129, 80, 15, 10, 199, 44, 243, 210, 16, 147, 129, 80, 15, 10, 199, 16, 84, 212, 36, 195, 1, 80,
-			15, 0, 18, 70, 40, 19, 66, 61, 33, 64, 72, 57, 121, 65, 71, 39, 51, 6, 115, 0, 16, 205, 20, 226, 5, 17, 50, 207, 52, 208,
-			84, 21, 34, 78, 28, 15, 9, 198, 80, 16, 149, 21, 33, 64, 15, 9, 198, 73, 82, 78, 21, 33, 64, 15, 9, 198, 64, 20, 211, 21,
-			33, 64, 15, 9, 198, 56, 244, 141, 21, 33, 64, 15, 9, 198, 29, 32, 86, 21, 33, 64, 15, 9, 198, 28, 195, 211, 21, 33, 64, 15,
-			9, 198, 25, 32, 83, 21, 33, 64, 15, 9, 198, 24, 84, 137, 21, 33, 64, 15, 9, 198, 20, 193, 86, 21, 33, 64, 15, 9, 198, 9,
-			37, 78, 21, 33, 64, 15, 15, 70, 12, 128, 71, 4, 195, 0, 91, 118, 81, 6, 118, 55, 0, 0, 9, 198, 72, 85, 9, 72, 17, 5,
-			15, 9, 198, 64, 19, 9, 76, 17, 5, 15, 9, 198, 48, 147, 79, 56, 17, 5, 15, 9, 198, 48, 83, 79, 56, 17, 5, 15, 20, 70,
-			45, 37, 83, 80, 17, 5, 49, 34, 129, 89, 72, 6, 117, 12, 86, 13, 0, 15, 9, 198, 44, 19, 143, 56, 17, 5, 15, 9, 198, 28,
-			19, 15, 64, 17, 5, 15, 0, 11, 200, 97, 147, 15, 29, 32, 70, 21, 32, 15, 11, 200, 96, 84, 143, 29, 32, 70, 21, 32, 15, 11,
-			200, 81, 148, 15, 29, 32, 70, 21, 32, 15, 11, 200, 81, 32, 78, 77, 2, 82, 21, 32, 15, 11, 200, 81, 32, 78, 76, 97, 82, 21,
-			32, 15, 11, 200, 76, 81, 9, 52, 83, 148, 21, 32, 15, 11, 200, 76, 19, 139, 80, 147, 206, 21, 32, 15, 11, 200, 72, 85, 129, 12,
-			50, 78, 21, 32, 15, 11, 200, 65, 35, 214, 36, 19, 148, 21, 32, 15, 11, 200, 65, 35, 199, 72, 81, 9, 21, 32, 15, 11, 200, 64,
-			85, 9, 80, 147, 206, 21, 32, 15, 11, 200, 64, 20, 129, 29, 32, 70, 21, 32, 15, 11, 200, 60, 34, 133, 45, 66, 86, 21, 32, 15,
-			11, 200, 48, 149, 15, 29, 32, 70, 21, 32, 15, 11, 200, 44, 243, 148, 4, 210, 78, 21, 32, 15, 11, 200, 44, 243, 132, 61, 69, 9,
-			21, 32, 15, 11, 200, 44, 243, 12, 4, 35, 210, 21, 32, 15, 11, 200, 44, 147, 15, 52, 85, 18, 21, 32, 15, 11, 200, 44, 20, 129,
-			8, 147, 137, 21, 32, 15, 11, 200, 36, 229, 5, 73, 97, 78, 21, 32, 15, 11, 200, 36, 226, 207, 52, 211, 196, 21, 32, 15, 11, 200,
-			32, 19, 12, 84, 50, 78, 21, 32, 15, 11, 200, 28, 20, 142, 37, 51, 206, 21, 32, 15, 11, 200, 25, 33, 75, 88, 83, 148, 21, 32,
-			15, 11, 200, 28, 83, 133, 80, 16, 140, 21, 32, 15, 11, 200, 20, 180, 208, 5, 68, 137, 21, 32, 15, 11, 200, 4, 178, 210, 20, 66,
-			84, 21, 32, 15, 11, 200, 16, 242, 213, 52, 83, 148, 5, 32, 15, 9, 198, 9, 34, 83, 4, 229, 0, 15, 12, 3, 95, 49, 111, 83,
-			132, 34, 89, 72, 14, 0, 0, 18, 207, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 197, 72, 147, 135, 15, 18, 207, 36, 228, 212,
-			37, 69, 84, 36, 243, 129, 48, 148, 197, 72, 147, 135, 15, 12, 201, 76, 243, 9, 16, 20, 137, 76, 84, 128, 15, 12, 201, 76, 82, 213,
-			48, 20, 137, 76, 84, 128, 15, 12, 201, 72, 82, 207, 28, 227, 211, 12, 84, 128, 15, 12, 201, 64, 243, 25, 52, 84, 137, 76, 84, 128,
-			15, 12, 201, 64, 192, 83, 80, 145, 137, 12, 84, 128, 15, 12, 201, 52, 147, 9, 80, 20, 137, 76, 84, 128, 15, 12, 201, 61, 3, 65,
-			28, 20, 201, 56, 84, 128, 15, 12, 201, 45, 96, 78, 80, 145, 137, 12, 84, 128, 15, 12, 201, 44, 243, 139, 72, 85, 9, 76, 84, 128,
-			15, 12, 201, 4, 98, 78, 77, 64, 76, 48, 84, 128, 15, 12, 201, 36, 65, 78, 80, 145, 137, 12, 84, 128, 15, 12, 201, 32, 145, 82,
-			5, 34, 201, 76, 84, 128, 15, 12, 201, 29, 147, 78, 5, 53, 9, 12, 84, 128, 15, 12, 201, 32, 243, 73, 48, 85, 9, 44, 84, 128,
-			15, 12, 201, 16, 144, 76, 20, 181, 9, 44, 84, 128, 15, 0, 9, 198, 88, 148, 203, 61, 49, 64, 15, 9, 198, 44, 195, 210, 61, 49,
-			64, 15, 9, 198, 24, 144, 146, 61, 49, 64, 15, 9, 198, 12, 243, 80, 61, 49, 64, 15, 11, 200, 124, 118, 80, 80, 243, 15, 28, 144,
-			15, 9, 198, 16, 149, 82, 21, 49, 64, 15, 9, 198, 16, 19, 65, 77, 50, 78, 15, 11, 200, 20, 180, 203, 72, 83, 69, 57, 64, 15,
-			10, 199, 64, 84, 212, 36, 193, 78, 76, 15, 10, 199, 20, 180, 201, 77, 65, 78, 76, 15, 10, 199, 16, 145, 134, 21, 33, 78, 76, 15,
-			11, 200, 72, 84, 212, 5, 84, 129, 57, 64, 15, 11, 200, 72, 81, 201, 77, 68, 129, 57, 64, 15, 13, 72, 76, 85, 20, 48, 83, 69,
-			57, 64, 21, 0, 47, 0, 10, 67, 16, 21, 5, 72, 115, 57, 47, 0, 0, 12, 201, 44, 243, 134, 36, 65, 78, 80, 145, 76, 15, 9,
-			198, 76, 192, 86, 60, 98, 76, 15, 0, 12, 201, 65, 39, 198, 21, 33, 78, 80, 145, 76, 15, 9, 198, 80, 21, 1, 72, 148, 203, 15,
-			9, 198, 44, 147, 133, 80, 148, 203, 15, 9, 198, 44, 147, 133, 76, 148, 203, 15, 9, 198, 36, 70, 76, 48, 148, 203, 15, 9, 198, 20,
-			209, 129, 80, 148, 203, 15, 9, 198, 8, 245, 1, 56, 148, 203, 15, 9, 198, 5, 34, 193, 16, 148, 203, 15, 9, 198, 80, 243, 5, 72,
-			19, 147, 15, 9, 198, 72, 83, 5, 88, 19, 147, 15, 0, 12, 201, 44, 243, 210, 16, 147, 129, 80, 147, 206, 15, 12, 201, 44, 243, 147,
-			20, 180, 129, 80, 147, 206, 15, 12, 201, 36, 225, 137, 49, 68, 129, 80, 147, 206, 15, 12, 201, 36, 225, 15, 64, 84, 129, 80, 147, 206,
-			15, 12, 201, 24, 192, 71, 20, 195, 1, 80, 147, 206, 15, 12, 201, 16, 148, 212, 72, 144, 149, 80, 147, 206, 15, 12, 201, 16, 83, 149,
-			57, 66, 65, 80, 147, 206, 15, 9, 198, 64, 20, 129, 24, 98, 78, 15, 8, 197, 64, 83, 131, 36, 192, 15, 8, 197, 44, 243, 131, 36,
-			192, 15, 12, 201, 32, 147, 12, 21, 42, 68, 36, 19, 128, 15, 10, 199, 4, 36, 212, 36, 225, 78, 76, 15, 0, 13, 202, 44, 243, 134,
-			36, 117, 82, 5, 66, 79, 56, 15, 13, 202, 44, 243, 134, 20, 65, 82, 5, 66, 79, 56, 15, 13, 202, 36, 225, 9, 88, 145, 21, 5,
-			66, 79, 56, 15, 13, 202, 4, 195, 9, 81, 65, 82, 5, 66, 79, 56, 15, 13, 202, 4, 113, 204, 85, 66, 78, 5, 66, 79, 56, 15,
-			14, 4, 95, 97, 99, 117, 35, 49, 57, 6, 40, 12, 47, 0, 0, 9, 198, 65, 39, 211, 36, 66, 69, 15, 10, 3, 95, 50, 111, 117,
-			50, 13, 50, 0, 12, 4, 95, 99, 114, 108, 49, 6, 112, 12, 55, 0, 0, 18, 207, 8, 83, 133, 16, 146, 212, 36, 225, 82, 44, 195,
-			211, 80, 84, 128, 68, 12, 201, 24, 243, 11, 48, 244, 137, 77, 66, 75, 15, 0, 9, 198, 4, 195, 95, 29, 66, 71, 15, 12, 201, 84,
-			226, 70, 61, 35, 73, 76, 209, 64, 15, 12, 201, 77, 84, 146, 20, 19, 9, 76, 209, 64, 15, 12, 201, 76, 177, 80, 80, 144, 201, 76,
-			209, 64, 15, 12, 201, 72, 17, 9, 44, 19, 9, 76, 209, 64, 15, 12, 201, 65, 32, 71, 52, 21, 9, 76, 209, 64, 15, 12, 201, 64,
-			21, 18, 36, 245, 9, 76, 209, 64, 15, 12, 201, 56, 85, 84, 72, 19, 9, 76, 209, 64, 15, 12, 201, 56, 21, 21, 72, 19, 9, 76,
-			209, 64, 15, 12, 201, 52, 84, 211, 36, 19, 137, 76, 209, 64, 15, 12, 201, 48, 144, 133, 72, 19, 9, 76, 209, 64, 15, 12, 201, 44,
-			243, 134, 61, 35, 73, 76, 209, 64, 15, 12, 201, 44, 20, 9, 80, 19, 9, 76, 209, 64, 15, 12, 201, 28, 227, 211, 80, 144, 201, 76,
-			209, 64, 15, 12, 201, 9, 32, 72, 52, 19, 137, 76, 209, 64, 15, 12, 201, 4, 229, 1, 28, 243, 137, 76, 209, 64, 15, 8, 197, 48,
-			147, 133, 4, 192, 15, 8, 197, 48, 16, 137, 4, 192, 15, 0, 10, 199, 80, 147, 2, 165, 35, 9, 28, 15, 7, 196, 49, 84, 9, 56,
-			15, 0, 8, 197, 8, 81, 21, 36, 224, 67, 11, 200, 80, 147, 2, 164, 161, 76, 36, 112, 15, 11, 200, 65, 228, 133, 28, 225, 76, 36,
-			112, 15, 12, 201, 56, 244, 132, 88, 84, 212, 48, 145, 192, 15, 12, 201, 44, 243, 148, 72, 18, 212, 48, 145, 192, 15, 11, 200, 24, 244,
-			142, 164, 161, 76, 36, 112, 15, 9, 198, 36, 179, 206, 37, 50, 192, 15, 10, 199, 52, 147, 12, 20, 227, 137, 20, 15, 10, 199, 13, 144,
-			78, 44, 19, 9, 20, 15, 9, 198, 16, 81, 137, 12, 149, 0, 15, 8, 197, 8, 81, 21, 36, 224, 15, 10, 199, 21, 81, 133, 52, 148,
-			205, 20, 15, 9, 198, 44, 19, 9, 24, 21, 0, 15, 4, 193, 160, 43, 0, 12, 201, 76, 198, 78, 28, 83, 1, 29, 66, 71, 15, 0,
-			9, 198, 28, 241, 4, 124, 66, 71, 15, 13, 202, 28, 83, 142, 20, 212, 203, 84, 83, 9, 28, 15, 0, 13, 202, 65, 81, 19, 20, 202,
-			74, 21, 35, 9, 28, 15, 0, 11, 200, 64, 243, 25, 32, 148, 212, 61, 32, 15, 8, 197, 76, 145, 206, 21, 32, 15, 8, 197, 49, 82,
-			210, 21, 32, 15, 8, 197, 33, 145, 18, 21, 32, 15, 8, 197, 25, 84, 142, 21, 32, 15, 11, 200, 80, 147, 18, 120, 65, 76, 36, 112,
-			15, 11, 200, 61, 4, 223, 81, 65, 76, 36, 112, 15, 11, 200, 60, 212, 223, 81, 65, 76, 36, 112, 15, 11, 200, 4, 228, 212, 164, 65,
-			76, 36, 112, 15, 13, 202, 20, 180, 193, 52, 147, 129, 80, 244, 137, 20, 15, 9, 198, 64, 20, 129, 44, 149, 0, 15, 9, 198, 16, 243,
-			5, 72, 149, 0, 15, 9, 198, 65, 34, 79, 72, 21, 0, 15, 9, 198, 53, 240, 197, 56, 21, 0, 15, 9, 198, 52, 17, 18, 36, 112,
-			76, 15, 9, 198, 36, 212, 5, 72, 144, 76, 15, 12, 3, 95, 51, 111, 47, 34, 115, 72, 57, 14, 0, 0, 8, 197, 52, 20, 139, 165,
-			32, 15, 8, 197, 24, 20, 131, 165, 32, 15, 9, 198, 64, 144, 193, 16, 244, 128, 15, 9, 198, 77, 3, 206, 76, 244, 128, 15, 9, 198,
-			76, 83, 129, 80, 244, 128, 15, 9, 198, 16, 243, 129, 80, 244, 128, 15, 19, 70, 8, 83, 9, 104, 148, 203, 71, 36, 55, 37, 12, 89,
-			37, 89, 81, 0, 66, 9, 198, 80, 20, 137, 24, 84, 128, 15, 9, 198, 76, 180, 129, 88, 84, 128, 15, 9, 198, 64, 20, 129, 24, 84,
-			128, 15, 9, 198, 64, 19, 143, 72, 84, 128, 15, 9, 198, 60, 178, 213, 64, 84, 128, 15, 9, 198, 56, 21, 137, 28, 84, 128, 15, 9,
-			198, 53, 84, 201, 12, 84, 128, 15, 9, 198, 48, 16, 143, 72, 84, 128, 15, 9, 198, 45, 96, 68, 72, 84, 128, 15, 9, 198, 37, 36,
-			137, 80, 84, 128, 15, 9, 198, 29, 32, 68, 84, 84, 128, 15, 9, 198, 25, 35, 212, 80, 84, 128, 15, 9, 198, 21, 96, 76, 84, 84,
-			128, 15, 9, 198, 20, 228, 201, 48, 84, 128, 15, 9, 198, 20, 213, 76, 28, 84, 128, 15, 9, 198, 17, 81, 84, 80, 84, 128, 15, 9,
-			198, 17, 33, 83, 76, 84, 128, 15, 9, 198, 16, 83, 79, 48, 84, 128, 15, 9, 198, 16, 82, 213, 64, 84, 128, 15, 9, 198, 16, 82,
-			207, 72, 84, 128, 15, 9, 198, 4, 227, 143, 80, 84, 128, 15, 9, 198, 4, 35, 206, 56, 84, 128, 15, 9, 198, 76, 21, 1, 56, 148,
-			203, 15, 9, 198, 48, 85, 137, 80, 148, 203, 15, 9, 198, 32, 80, 146, 4, 148, 203, 15, 9, 198, 21, 84, 129, 76, 148, 203, 15, 9,
-			198, 16, 83, 9, 72, 148, 203, 15, 9, 198, 8, 83, 9, 104, 148, 203, 15, 9, 198, 5, 165, 5, 44, 148, 203, 15, 9, 198, 76, 83,
-			73, 56, 20, 128, 15, 9, 198, 41, 80, 137, 48, 20, 128, 15, 12, 201, 80, 84, 146, 37, 67, 210, 36, 19, 0, 15, 0, 10, 199, 81,
-			84, 142, 21, 34, 78, 28, 15, 10, 199, 80, 18, 212, 21, 34, 78, 28, 15, 10, 199, 80, 18, 211, 21, 34, 78, 28, 15, 10, 199, 80,
-			16, 149, 21, 34, 78, 28, 15, 10, 199, 77, 3, 204, 21, 34, 78, 28, 15, 10, 199, 76, 243, 132, 21, 34, 78, 28, 15, 10, 199, 64,
-			192, 78, 21, 34, 78, 28, 15, 10, 199, 52, 243, 148, 21, 34, 78, 28, 15, 10, 199, 48, 19, 131, 21, 34, 78, 28, 15, 10, 199, 28,
-			20, 142, 21, 34, 78, 28, 15, 10, 199, 24, 146, 211, 21, 34, 78, 28, 15, 10, 199, 8, 20, 132, 21, 34, 78, 28, 15, 10, 199, 8,
-			20, 130, 21, 34, 78, 28, 15, 9, 198, 64, 20, 203, 88, 147, 0, 15, 9, 198, 24, 81, 5, 72, 19, 0, 15, 6, 195, 10, 148, 128,
-			76, 0, 14, 203, 76, 19, 77, 20, 227, 9, 28, 225, 76, 36, 112, 15, 14, 203, 76, 19, 77, 20, 225, 143, 48, 65, 76, 36, 112, 15,
-			12, 201, 65, 35, 212, 60, 179, 204, 48, 21, 0, 15, 10, 69, 48, 20, 20, 61, 0, 21, 0, 47, 11, 3, 95, 50, 88, 47, 6, 129,
-			12, 123, 0, 0, 9, 198, 44, 20, 213, 37, 53, 0, 15, 12, 201, 76, 84, 150, 36, 49, 82, 36, 225, 192, 15, 12, 201, 64, 20, 134,
-			84, 209, 82, 36, 225, 192, 15, 12, 201, 16, 84, 193, 72, 209, 82, 36, 225, 192, 15, 12, 201, 5, 36, 129, 56, 113, 82, 36, 225, 192,
-			15, 8, 197, 76, 19, 4, 21, 32, 15, 8, 197, 72, 245, 76, 21, 32, 15, 8, 197, 36, 210, 84, 21, 32, 15, 8, 197, 25, 34, 84,
-			21, 32, 15, 8, 197, 4, 114, 84, 21, 32, 15, 9, 198, 80, 83, 80, 61, 32, 76, 15, 9, 198, 52, 18, 211, 36, 208, 76, 15, 9,
-			198, 36, 229, 5, 73, 96, 76, 15, 0, 10, 199, 20, 211, 212, 36, 243, 133, 48, 15, 11, 200, 60, 209, 210, 85, 4, 5, 72, 80, 15,
-			9, 198, 80, 19, 65, 72, 148, 203, 15, 9, 198, 45, 35, 193, 80, 148, 203, 15, 9, 198, 41, 84, 137, 16, 148, 203, 15, 9, 198, 25,
-			85, 21, 72, 148, 203, 15, 9, 198, 24, 243, 133, 80, 148, 203, 15, 9, 198, 4, 115, 129, 80, 148, 203, 15, 12, 201, 44, 20, 132, 36,
-			224, 76, 80, 19, 0, 15, 0, 9, 198, 60, 97, 137, 12, 154, 83, 15, 10, 199, 64, 20, 211, 21, 34, 78, 28, 15, 10, 199, 44, 244,
-			9, 21, 34, 78, 28, 15, 10, 199, 44, 195, 210, 21, 34, 78, 28, 15, 10, 199, 25, 32, 83, 21, 34, 78, 28, 15, 10, 199, 24, 243,
-			9, 21, 34, 78, 28, 15, 10, 199, 17, 32, 80, 21, 34, 78, 28, 15, 10, 199, 12, 19, 80, 21, 34, 78, 28, 15, 10, 199, 9, 37,
-			78, 21, 34, 78, 28, 15, 10, 199, 8, 195, 203, 21, 34, 78, 28, 15, 8, 197, 52, 83, 148, 60, 192, 15, 8, 197, 24, 244, 211, 36,
-			192, 15, 9, 198, 56, 145, 197, 72, 144, 78, 15, 9, 198, 4, 225, 204, 60, 208, 78, 16, 8, 197, 76, 160, 75, 4, 192, 15, 8, 197,
-			24, 148, 203, 4, 192, 15, 12, 71, 76, 178, 78, 32, 80, 68, 76, 21, 0, 47, 0, 10, 199, 52, 148, 129, 45, 83, 41, 76, 15, 12,
-			201, 61, 4, 15, 73, 69, 78, 37, 53, 0, 15, 7, 196, 9, 85, 1, 56, 16, 0, 9, 198, 76, 183, 204, 76, 186, 82, 15, 10, 199,
-			72, 84, 1, 72, 21, 41, 72, 15, 10, 199, 44, 243, 132, 60, 209, 82, 36, 15, 0, 12, 201, 5, 69, 18, 36, 37, 84, 36, 243, 128,
-			15, 12, 201, 41, 81, 207, 76, 192, 86, 36, 83, 128, 15, 0, 8, 197, 77, 147, 66, 60, 192, 15, 8, 197, 12, 128, 84, 60, 192, 15,
-			11, 200, 80, 83, 80, 21, 33, 82, 21, 64, 15, 11, 200, 72, 85, 19, 36, 225, 82, 21, 64, 15, 11, 200, 72, 84, 201, 28, 225, 82,
-			21, 64, 15, 11, 200, 72, 17, 134, 36, 225, 82, 21, 64, 15, 11, 200, 48, 19, 69, 48, 193, 82, 21, 64, 15, 11, 200, 36, 226, 193,
-			72, 225, 82, 21, 64, 15, 11, 200, 16, 148, 12, 60, 209, 82, 21, 64, 15, 11, 200, 16, 85, 1, 48, 161, 82, 21, 64, 15, 11, 200,
-			81, 34, 85, 53, 98, 82, 5, 64, 15, 11, 200, 16, 148, 133, 45, 67, 210, 5, 64, 15, 11, 200, 16, 81, 133, 57, 51, 210, 5, 64,
-			15, 11, 200, 12, 128, 77, 64, 147, 206, 5, 64, 15, 11, 200, 9, 84, 133, 5, 82, 210, 5, 64, 15, 11, 200, 5, 34, 83, 80, 242,
-			210, 5, 64, 15, 8, 197, 76, 240, 201, 4, 192, 15, 8, 197, 24, 244, 141, 4, 192, 15, 0, 12, 201, 12, 129, 70, 72, 81, 1, 45,
-			74, 82, 15, 12, 201, 65, 34, 77, 37, 66, 86, 37, 53, 0, 15, 12, 201, 36, 195, 21, 76, 147, 206, 37, 53, 0, 15, 10, 199, 77,
-			84, 16, 72, 147, 69, 72, 15, 10, 199, 44, 243, 80, 72, 147, 69, 72, 15, 10, 199, 36, 225, 140, 4, 211, 69, 72, 15, 10, 199, 5,
-			37, 9, 45, 83, 5, 72, 15, 0, 27, 70, 24, 244, 147, 100, 225, 84, 83, 6, 108, 34, 89, 129, 50, 13, 72, 15, 107, 121, 34, 0,
-			81, 104, 97, 114, 32, 7, 196, 16, 148, 211, 20, 76, 0, 11, 200, 76, 180, 143, 25, 83, 15, 76, 80, 15, 12, 201, 72, 146, 207, 12,
-			129, 84, 80, 84, 128, 15, 12, 201, 44, 21, 5, 28, 244, 137, 76, 84, 128, 15, 12, 201, 36, 229, 5, 73, 1, 76, 48, 84, 128, 15,
-			12, 201, 12, 130, 70, 24, 243, 142, 36, 84, 128, 15, 12, 201, 12, 83, 148, 72, 145, 149, 28, 84, 128, 15, 12, 201, 56, 244, 212, 4,
-			193, 201, 44, 84, 128, 15, 10, 199, 44, 243, 139, 61, 33, 1, 80, 15, 10, 199, 44, 19, 143, 56, 146, 193, 80, 15, 10, 199, 36, 212,
-			12, 4, 229, 1, 80, 15, 0, 9, 198, 8, 244, 132, 85, 33, 64, 15, 9, 198, 88, 21, 20, 21, 33, 64, 15, 9, 198, 80, 84, 212,
-			21, 33, 64, 15, 9, 198, 80, 19, 135, 21, 33, 64, 15, 9, 198, 76, 245, 80, 21, 33, 64, 15, 9, 198, 76, 244, 148, 21, 33, 64,
-			15, 9, 198, 72, 84, 212, 21, 33, 64, 15, 9, 198, 64, 244, 212, 21, 33, 64, 15, 9, 198, 64, 21, 83, 21, 33, 64, 15, 9, 198,
-			64, 20, 148, 21, 33, 64, 15, 9, 198, 52, 20, 211, 21, 33, 64, 15, 9, 198, 52, 20, 203, 21, 33, 64, 15, 9, 198, 52, 20, 139,
-			21, 33, 64, 15, 9, 198, 52, 19, 139, 21, 33, 64, 15, 9, 198, 45, 84, 147, 21, 33, 64, 15, 9, 198, 44, 20, 211, 21, 33, 64,
-			15, 12, 201, 36, 211, 65, 81, 34, 75, 84, 193, 82, 15, 18, 70, 29, 37, 89, 21, 33, 64, 81, 34, 129, 57, 6, 115, 12, 34, 0,
-			15, 9, 198, 24, 147, 135, 21, 33, 64, 15, 9, 198, 16, 243, 12, 21, 33, 64, 15, 9, 198, 9, 35, 196, 21, 33, 64, 15, 11, 70,
-			88, 83, 148, 85, 33, 64, 21, 0, 47, 0, 9, 198, 45, 103, 210, 84, 193, 82, 15, 9, 198, 76, 192, 86, 36, 225, 5, 15, 9, 198,
-			32, 83, 20, 36, 225, 5, 15, 0, 30, 68, 24, 244, 131, 20, 83, 108, 34, 89, 15, 4, 65, 118, 6, 89, 57, 132, 12, 34, 0, 81,
-			109, 97, 106, 101, 117, 114, 101, 32, 11, 200, 89, 83, 11, 4, 226, 83, 21, 32, 15, 11, 200, 89, 83, 7, 5, 34, 83, 21, 32, 15,
-			11, 200, 80, 83, 210, 21, 66, 83, 21, 32, 15, 11, 200, 77, 147, 148, 21, 66, 83, 21, 32, 15, 11, 200, 77, 147, 80, 5, 66, 83,
-			21, 32, 15, 11, 200, 77, 84, 5, 73, 98, 83, 21, 32, 15, 11, 200, 76, 177, 77, 5, 66, 83, 21, 32, 15, 11, 200, 76, 82, 212,
-			61, 34, 83, 21, 32, 15, 11, 200, 72, 243, 65, 57, 66, 83, 21, 32, 15, 11, 200, 65, 83, 22, 21, 34, 83, 21, 32, 15, 11, 200,
-			65, 34, 86, 5, 66, 83, 21, 32, 15, 11, 200, 64, 84, 137, 60, 66, 83, 21, 32, 15, 11, 200, 64, 20, 211, 37, 98, 83, 21, 32,
-			15, 11, 200, 56, 85, 82, 61, 66, 83, 21, 32, 15, 11, 200, 56, 20, 139, 61, 66, 83, 21, 32, 15, 11, 200, 52, 241, 5, 72, 226,
-			83, 21, 32, 15, 11, 200, 52, 84, 131, 21, 34, 83, 21, 32, 15, 11, 200, 52, 20, 148, 101, 34, 83, 21, 32, 15, 11, 200, 52, 17,
-			206, 21, 66, 83, 21, 32, 15, 11, 200, 48, 16, 137, 4, 194, 83, 21, 32, 15, 11, 200, 44, 194, 77, 5, 66, 83, 21, 32, 15, 11,
-			200, 44, 20, 130, 60, 226, 83, 21, 32, 15, 11, 200, 44, 19, 148, 60, 226, 83, 21, 32, 15, 11, 200, 36, 229, 5, 57, 50, 86, 21,
-			32, 15, 11, 200, 36, 212, 18, 61, 98, 83, 21, 32, 15, 11, 200, 33, 148, 14, 61, 66, 83, 21, 32, 15, 11, 200, 32, 148, 212, 61,
-			34, 83, 21, 32, 15, 11, 200, 32, 84, 130, 5, 34, 83, 21, 32, 15, 11, 200, 28, 116, 149, 8, 194, 83, 21, 32, 15, 11, 200, 28,
-			195, 194, 4, 194, 83, 21, 32, 15, 11, 200, 28, 129, 84, 80, 242, 83, 21, 32, 15, 11, 200, 24, 147, 13, 5, 66, 83, 21, 32, 15,
-			11, 200, 20, 193, 75, 81, 34, 83, 21, 32, 15, 11, 200, 17, 32, 77, 5, 66, 83, 21, 32, 15, 11, 200, 16, 241, 205, 5, 66, 83,
-			21, 32, 15, 11, 200, 16, 148, 212, 36, 225, 214, 21, 32, 15, 11, 200, 16, 144, 76, 60, 114, 83, 21, 32, 15, 11, 200, 16, 83, 196,
-			61, 34, 83, 21, 32, 15, 11, 200, 8, 20, 130, 5, 34, 83, 21, 32, 15, 11, 200, 5, 35, 205, 5, 66, 83, 21, 32, 15, 11, 200,
-			4, 227, 206, 100, 210, 83, 21, 32, 15, 11, 200, 4, 224, 76, 60, 114, 83, 21, 32, 15, 11, 200, 4, 176, 68, 20, 210, 83, 21, 32,
-			15, 11, 200, 4, 32, 78, 16, 243, 142, 21, 32, 15, 11, 200, 80, 83, 210, 21, 66, 75, 21, 32, 15, 11, 200, 76, 82, 212, 21, 34,
-			75, 21, 32, 15, 11, 200, 72, 243, 65, 57, 66, 75, 21, 32, 15, 11, 200, 72, 85, 77, 5, 66, 75, 21, 32, 15, 11, 200, 56, 85,
-			82, 61, 66, 75, 21, 32, 15, 11, 200, 48, 241, 201, 77, 66, 75, 21, 32, 15, 11, 200, 33, 148, 212, 21, 34, 75, 21, 32, 15, 11,
-			200, 32, 148, 212, 61, 34, 75, 21, 32, 15, 11, 200, 20, 179, 5, 45, 66, 75, 21, 32, 15, 11, 200, 17, 148, 198, 5, 66, 75, 21,
-			32, 15, 11, 200, 17, 32, 77, 5, 66, 75, 21, 32, 15, 11, 200, 16, 241, 205, 5, 66, 75, 21, 32, 15, 11, 200, 16, 145, 1, 45,
-			66, 75, 21, 32, 15, 11, 200, 16, 144, 66, 21, 66, 75, 21, 32, 15, 9, 198, 4, 208, 137, 20, 229, 0, 15, 9, 198, 65, 35, 214,
-			36, 19, 148, 15, 9, 198, 5, 36, 143, 28, 19, 148, 15, 11, 3, 95, 53, 111, 83, 115, 65, 47, 14, 0, 12, 3, 95, 63, 63, 89,
-			129, 65, 71, 39, 55, 0, 0, 0, 11, 66, 53, 32, 65, 36, 89, 47, 108, 0, 25, 9, 198, 52, 19, 20, 61, 49, 64, 15, 18, 70,
-			20, 180, 208, 61, 49, 64, 36, 81, 89, 48, 39, 89, 6, 36, 0, 15, 9, 198, 65, 35, 212, 21, 49, 64, 15, 9, 198, 16, 144, 84,
-			21, 49, 64, 15, 11, 200, 44, 243, 139, 85, 36, 133, 57, 64, 15, 11, 200, 4, 35, 206, 56, 83, 69, 57, 64, 15, 10, 199, 44, 243,
-			80, 21, 65, 78, 76, 15, 11, 200, 44, 20, 9, 81, 83, 1, 57, 64, 15, 0, 11, 200, 44, 18, 207, 24, 243, 137, 76, 176, 15, 11,
-			200, 16, 21, 1, 48, 241, 201, 76, 176, 15, 11, 200, 64, 84, 134, 61, 35, 65, 57, 48, 15, 11, 3, 95, 52, 88, 83, 6, 133, 23,
-			108, 0, 0, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 65, 84, 15, 7, 196, 77, 67, 205, 36, 15, 0, 9, 198, 21, 2,
-			71, 72, 17, 128, 15, 6, 195, 16, 83, 147, 76, 6, 195, 32, 19, 147, 76, 0, 9, 198, 21, 50, 193, 17, 35, 206, 15, 9, 198, 72,
-			80, 75, 80, 147, 206, 15, 9, 198, 36, 229, 129, 76, 147, 206, 15, 10, 199, 36, 225, 21, 45, 64, 78, 76, 15, 0, 22, 67, 32, 21,
-			133, 107, 117, 15, 81, 57, 6, 125, 34, 47, 0, 81, 103, 106, 111, 114, 116, 32, 23, 67, 32, 21, 133, 107, 117, 15, 84, 6, 116, 110,
-			108, 86, 0, 81, 118, 195, 166, 114, 101, 116, 32, 18, 67, 32, 21, 133, 107, 117, 15, 51, 6, 119, 72, 0, 81, 114, 101, 116, 32, 10,
-			199, 13, 146, 204, 61, 68, 143, 56, 15, 9, 198, 77, 243, 1, 72, 145, 64, 15, 0, 11, 200, 60, 225, 21, 48, 21, 9, 60, 224, 15,
-			11, 200, 16, 148, 203, 72, 85, 9, 60, 224, 15, 11, 200, 16, 147, 1, 80, 21, 9, 60, 224, 15, 11, 200, 4, 100, 133, 4, 181, 9,
-			60, 224, 15, 11, 200, 4, 33, 82, 72, 21, 9, 60, 224, 15, 11, 3, 95, 54, 111, 89, 57, 115, 72, 14, 0, 0, 12, 201, 80, 84,
-			212, 61, 53, 5, 72, 243, 128, 15, 12, 201, 88, 83, 148, 36, 192, 84, 36, 243, 128, 15, 12, 201, 88, 16, 195, 36, 224, 84, 36, 243,
-			128, 15, 12, 201, 77, 80, 147, 84, 212, 20, 36, 243, 128, 15, 12, 201, 77, 66, 80, 84, 192, 84, 36, 243, 128, 15, 12, 201, 77, 66,
-			77, 84, 192, 84, 36, 243, 128, 15, 12, 201, 77, 64, 71, 24, 192, 84, 36, 243, 128, 15, 12, 201, 72, 85, 1, 72, 64, 84, 36, 243,
-			128, 15, 12, 201, 72, 84, 201, 28, 224, 84, 36, 243, 128, 15, 12, 201, 61, 48, 201, 48, 192, 84, 36, 243, 128, 15, 12, 201, 60, 36,
-			212, 73, 80, 212, 36, 243, 128, 15, 12, 201, 48, 146, 214, 36, 64, 84, 36, 243, 128, 15, 12, 201, 44, 244, 146, 20, 192, 84, 36, 243,
-			128, 15, 12, 201, 44, 243, 132, 60, 192, 84, 36, 243, 128, 15, 12, 201, 44, 243, 80, 36, 192, 84, 36, 243, 128, 15, 12, 201, 44, 240,
-			71, 84, 192, 84, 36, 243, 128, 15, 12, 201, 36, 227, 203, 84, 192, 84, 36, 243, 128, 15, 12, 201, 36, 226, 204, 36, 224, 84, 36, 243,
-			128, 15, 12, 201, 36, 226, 193, 77, 48, 84, 36, 243, 128, 15, 12, 201, 29, 32, 78, 84, 192, 84, 36, 243, 128, 15, 12, 201, 24, 20,
-			195, 36, 224, 84, 36, 243, 128, 15, 12, 201, 20, 194, 77, 36, 224, 84, 36, 243, 128, 15, 12, 201, 20, 180, 212, 72, 18, 212, 36, 243,
-			128, 15, 12, 201, 20, 160, 75, 84, 192, 84, 36, 243, 128, 15, 12, 201, 16, 84, 201, 28, 224, 84, 36, 243, 128, 15, 12, 201, 12, 148,
-			139, 84, 192, 84, 36, 243, 128, 15, 12, 201, 4, 197, 5, 72, 224, 84, 36, 243, 128, 15, 12, 201, 4, 113, 210, 5, 96, 84, 36, 243,
-			128, 15, 0, 10, 66, 52, 48, 65, 122, 49, 6, 0, 41, 9, 198, 50, 148, 193, 29, 66, 71, 15, 12, 201, 88, 242, 193, 9, 83, 1,
-			72, 145, 64, 15, 9, 198, 50, 148, 193, 29, 66, 71, 15, 0, 10, 199, 65, 227, 9, 16, 83, 9, 28, 15, 14, 3, 95, 53, 88, 107,
-			118, 55, 6, 47, 16, 116, 89, 0, 0, 9, 198, 80, 83, 5, 76, 179, 208, 15, 9, 198, 60, 36, 207, 48, 85, 0, 15, 11, 200, 65,
-			229, 137, 72, 177, 76, 36, 112, 15, 12, 201, 61, 97, 82, 76, 145, 212, 48, 145, 192, 15, 11, 200, 60, 209, 223, 56, 113, 76, 36, 112,
-			15, 11, 200, 56, 244, 132, 165, 53, 12, 36, 112, 15, 10, 199, 32, 244, 148, 20, 228, 201, 20, 15, 10, 199, 64, 244, 212, 49, 81, 9,
-			20, 15, 10, 199, 9, 35, 205, 44, 19, 9, 20, 15, 10, 199, 8, 83, 133, 24, 144, 201, 20, 15, 9, 198, 81, 32, 78, 76, 149, 0,
-			15, 10, 199, 72, 145, 207, 72, 148, 205, 20, 15, 10, 199, 32, 147, 132, 84, 148, 205, 20, 15, 10, 199, 28, 21, 76, 48, 148, 205, 20,
-			15, 10, 199, 16, 148, 137, 28, 148, 205, 20, 15, 0, 27, 68, 36, 66, 79, 80, 37, 72, 37, 6, 39, 15, 89, 117, 84, 6, 121, 68,
-			0, 81, 115, 97, 118, 97, 110, 116, 32, 12, 201, 24, 244, 146, 120, 67, 133, 48, 145, 192, 15, 12, 201, 24, 244, 142, 125, 35, 69, 48,
-			145, 192, 15, 11, 4, 95, 114, 110, 103, 34, 37, 50, 81, 0, 0, 9, 198, 80, 84, 212, 5, 67, 210, 15, 9, 198, 72, 243, 12, 5,
-			67, 210, 15, 9, 198, 37, 51, 204, 5, 67, 210, 15, 9, 198, 81, 34, 86, 36, 83, 0, 15, 8, 197, 80, 84, 141, 37, 64, 15, 8,
-			197, 40, 84, 213, 37, 64, 15, 8, 197, 72, 16, 137, 5, 64, 15, 9, 198, 56, 85, 84, 72, 19, 0, 15, 0, 9, 198, 25, 148, 201,
-			85, 33, 201, 15, 10, 199, 61, 3, 41, 76, 83, 9, 28, 15, 10, 199, 60, 208, 169, 40, 83, 9, 28, 15, 8, 67, 76, 86, 25, 21,
-			0, 47, 0, 11, 200, 36, 226, 214, 37, 50, 84, 61, 32, 15, 10, 199, 32, 148, 16, 60, 68, 143, 52, 15, 8, 197, 44, 195, 210, 21,
-			32, 15, 8, 197, 32, 19, 22, 21, 32, 15, 8, 197, 24, 195, 210, 21, 32, 15, 11, 3, 95, 55, 111, 89, 129, 84, 50, 14, 0, 0,
-			8, 197, 52, 243, 148, 165, 32, 15, 8, 197, 48, 82, 212, 165, 32, 15, 9, 198, 44, 243, 5, 72, 148, 203, 15, 9, 198, 28, 83, 133,
-			80, 148, 203, 15, 9, 198, 24, 19, 129, 80, 148, 203, 15, 14, 203, 36, 225, 5, 80, 84, 141, 36, 226, 83, 52, 80, 15, 14, 203, 25,
-			83, 139, 80, 147, 206, 4, 194, 83, 52, 80, 15, 14, 203, 16, 242, 213, 52, 83, 148, 5, 34, 83, 52, 80, 15, 12, 201, 65, 35, 198,
-			21, 52, 207, 72, 19, 0, 15, 12, 201, 44, 243, 138, 20, 181, 21, 72, 19, 0, 15, 0, 18, 7, 119, 99, 39, 101, 114, 110, 101, 84,
-			6, 36, 89, 36, 108, 50, 13, 0, 12, 201, 9, 34, 76, 48, 19, 148, 36, 225, 64, 15, 9, 198, 8, 85, 1, 81, 35, 206, 15, 10,
-			199, 64, 20, 148, 21, 34, 78, 28, 15, 10, 199, 64, 20, 139, 21, 34, 78, 28, 15, 10, 199, 56, 244, 141, 21, 34, 78, 28, 15, 10,
-			199, 45, 99, 212, 21, 34, 78, 28, 15, 10, 199, 44, 192, 82, 21, 34, 78, 28, 15, 10, 199, 28, 20, 132, 21, 34, 78, 28, 15, 10,
-			199, 24, 20, 147, 21, 34, 78, 28, 15, 10, 199, 21, 99, 204, 21, 34, 78, 28, 15, 10, 199, 17, 80, 140, 21, 34, 78, 28, 15, 10,
-			199, 4, 226, 77, 21, 34, 78, 28, 15, 13, 202, 76, 83, 22, 8, 82, 1, 28, 83, 9, 28, 15, 13, 202, 61, 97, 82, 61, 33, 5,
-			57, 67, 9, 28, 15, 8, 197, 65, 35, 211, 37, 64, 15, 15, 204, 81, 32, 68, 37, 66, 79, 56, 19, 9, 76, 209, 64, 15, 15, 204,
-			64, 20, 140, 4, 209, 78, 80, 20, 137, 76, 209, 64, 15, 15, 204, 32, 84, 141, 4, 100, 143, 16, 149, 9, 76, 209, 64, 15, 8, 197,
-			64, 192, 75, 5, 64, 15, 0, 6, 195, 32, 35, 192, 13, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 51, 69, 15, 9, 198,
-			73, 83, 95, 56, 145, 78, 15, 12, 201, 65, 35, 198, 21, 52, 207, 72, 21, 0, 15, 11, 200, 124, 181, 129, 80, 244, 137, 4, 192, 15,
-			11, 3, 95, 54, 88, 47, 16, 6, 115, 89, 0, 0, 8, 197, 45, 83, 20, 85, 32, 15, 8, 197, 44, 244, 9, 165, 48, 15, 8, 197,
-			8, 147, 12, 165, 48, 15, 11, 200, 52, 81, 9, 80, 21, 9, 60, 224, 15, 11, 200, 48, 144, 201, 80, 21, 9, 60, 224, 15, 11, 200,
-			44, 244, 146, 20, 181, 9, 60, 224, 15, 8, 197, 88, 243, 20, 21, 32, 15, 8, 197, 64, 19, 16, 21, 32, 15, 8, 197, 45, 34, 68,
-			21, 32, 15, 8, 197, 41, 84, 212, 21, 32, 15, 8, 197, 20, 213, 76, 21, 32, 15, 8, 197, 17, 32, 80, 21, 32, 15, 8, 197, 12,
-			19, 80, 21, 32, 15, 10, 199, 76, 240, 201, 60, 227, 205, 36, 15, 12, 201, 56, 245, 133, 48, 194, 83, 80, 146, 192, 15, 13, 69, 13,
-			85, 12, 21, 32, 49, 109, 47, 55, 109, 0, 0, 9, 198, 12, 19, 129, 16, 148, 203, 15, 9, 198, 5, 50, 65, 80, 148, 203, 15, 10,
-			199, 80, 244, 141, 20, 229, 9, 48, 15, 0, 10, 199, 56, 149, 18, 21, 34, 78, 28, 15, 10, 199, 44, 19, 11, 21, 34, 78, 28, 15,
-			10, 199, 32, 19, 22, 21, 34, 78, 28, 15, 10, 199, 29, 32, 86, 21, 34, 78, 28, 15, 10, 199, 28, 195, 211, 21, 34, 78, 28, 15,
-			9, 198, 56, 17, 148, 4, 194, 78, 15, 9, 198, 76, 144, 201, 48, 145, 78, 15, 12, 201, 52, 84, 207, 64, 245, 1, 52, 145, 78, 15,
-			15, 204, 56, 21, 18, 37, 83, 75, 5, 32, 143, 56, 21, 0, 15, 5, 65, 164, 132, 0, 0, 12, 201, 85, 66, 76, 37, 64, 82, 37,
-			53, 0, 15, 12, 201, 20, 181, 137, 48, 144, 146, 37, 53, 0, 15, 11, 200, 88, 145, 9, 52, 84, 137, 56, 112, 15, 11, 200, 56, 243,
-			73, 56, 84, 137, 56, 112, 15, 11, 200, 52, 84, 137, 80, 84, 137, 56, 112, 15, 11, 200, 5, 96, 78, 12, 84, 137, 56, 112, 15, 9,
-			198, 20, 228, 201, 48, 17, 197, 15, 11, 70, 32, 243, 69, 64, 17, 197, 21, 0, 47, 0, 9, 198, 56, 18, 86, 37, 53, 0, 15, 12,
-			201, 25, 148, 201, 60, 115, 143, 52, 146, 192, 15, 0, 12, 201, 88, 149, 137, 76, 82, 212, 36, 243, 128, 15, 12, 201, 77, 80, 148, 72,
-			18, 212, 36, 243, 128, 15, 12, 201, 72, 84, 212, 72, 146, 212, 36, 243, 128, 15, 12, 201, 72, 82, 214, 37, 50, 84, 36, 243, 128, 15,
-			12, 201, 65, 83, 139, 80, 18, 212, 36, 243, 128, 15, 12, 201, 65, 35, 208, 61, 50, 84, 36, 243, 128, 15, 12, 201, 60, 36, 212, 73,
-			82, 212, 36, 243, 128, 15, 12, 201, 44, 243, 148, 72, 18, 212, 36, 243, 128, 15, 12, 201, 44, 243, 80, 61, 50, 84, 36, 243, 128, 15,
-			12, 201, 36, 228, 212, 73, 82, 212, 36, 243, 128, 15, 12, 201, 16, 148, 212, 72, 18, 212, 36, 243, 128, 15, 12, 201, 16, 145, 134, 72,
-			18, 212, 36, 243, 128, 15, 12, 201, 8, 83, 133, 16, 146, 212, 36, 243, 128, 15, 12, 201, 4, 178, 214, 37, 50, 84, 36, 243, 128, 15,
-			12, 201, 4, 36, 212, 72, 18, 212, 36, 243, 128, 15, 7, 196, 81, 148, 143, 48, 15, 8, 197, 76, 145, 233, 40, 224, 15, 0, 8, 66,
-			57, 224, 50, 108, 0, 50, 21, 66, 36, 192, 37, 55, 15, 72, 6, 40, 12, 76, 57, 13, 0, 81, 100, 117, 99, 101, 32, 9, 198, 81,
-			32, 70, 36, 177, 82, 15, 9, 198, 77, 81, 134, 36, 113, 82, 15, 9, 198, 72, 84, 12, 36, 49, 82, 15, 9, 198, 72, 83, 143, 56,
-			49, 82, 15, 9, 198, 44, 243, 147, 84, 209, 82, 15, 9, 198, 36, 226, 149, 72, 145, 82, 15, 9, 198, 16, 84, 12, 4, 49, 82, 15,
-			0, 11, 200, 44, 244, 205, 21, 67, 204, 60, 112, 15, 10, 199, 29, 147, 159, 44, 243, 15, 28, 15, 22, 73, 12, 243, 142, 20, 53, 9,
-			13, 85, 0, 49, 109, 50, 6, 114, 47, 111, 49, 109, 72, 0, 0, 0, 9, 198, 72, 17, 9, 60, 195, 199, 15, 9, 198, 24, 147, 13,
-			60, 195, 199, 15, 8, 197, 80, 82, 83, 52, 80, 15, 8, 197, 16, 82, 83, 52, 80, 15, 8, 197, 85, 48, 78, 12, 80, 15, 8, 197,
-			76, 80, 78, 12, 80, 15, 0, 9, 67, 33, 99, 210, 84, 6, 125, 0, 0, 8, 197, 21, 2, 76, 60, 112, 15, 0, 10, 199, 80, 83,
-			5, 60, 195, 199, 36, 15, 10, 199, 80, 82, 206, 60, 195, 199, 36, 15, 10, 199, 56, 85, 82, 60, 195, 199, 36, 15, 10, 199, 52, 244,
-			134, 60, 195, 199, 36, 15, 10, 199, 52, 85, 18, 60, 195, 199, 36, 15, 10, 199, 32, 20, 12, 60, 195, 199, 36, 15, 9, 198, 76, 180,
-			137, 8, 83, 148, 15, 9, 198, 61, 4, 15, 56, 83, 148, 15, 9, 198, 45, 99, 212, 36, 83, 148, 15, 9, 198, 25, 33, 75, 88, 83,
-			148, 15, 9, 198, 77, 146, 207, 24, 19, 148, 15, 9, 198, 76, 82, 211, 80, 19, 148, 15, 9, 198, 60, 178, 213, 64, 19, 148, 15, 9,
-			198, 45, 96, 68, 72, 19, 148, 15, 9, 198, 36, 212, 15, 76, 19, 148, 15, 9, 198, 9, 34, 76, 48, 19, 148, 15, 11, 3, 95, 57,
-			111, 50, 37, 14, 50, 14, 0, 0, 9, 198, 64, 243, 5, 52, 148, 203, 15, 9, 198, 56, 245, 15, 72, 148, 203, 15, 9, 198, 56, 19,
-			73, 8, 148, 203, 15, 9, 198, 32, 147, 132, 84, 148, 203, 15, 9, 198, 5, 53, 5, 72, 148, 203, 15, 9, 198, 5, 37, 5, 76, 148,
-			203, 15, 8, 197, 4, 176, 67, 36, 80, 15, 11, 200, 77, 66, 80, 20, 225, 9, 84, 208, 15, 11, 200, 44, 243, 80, 20, 225, 9, 84,
-			208, 15, 9, 198, 66, 147, 137, 80, 83, 148, 15, 8, 197, 24, 16, 193, 16, 80, 15, 0, 19, 71, 48, 81, 197, 56, 65, 82, 76, 55,
-			36, 81, 6, 115, 50, 72, 108, 89, 0, 10, 199, 81, 148, 129, 56, 226, 83, 44, 15, 10, 199, 77, 147, 12, 4, 34, 83, 44, 15, 10,
-			199, 76, 144, 77, 21, 50, 83, 44, 15, 10, 199, 52, 243, 4, 61, 98, 83, 44, 15, 10, 199, 44, 20, 193, 44, 130, 83, 44, 15, 10,
-			199, 32, 84, 139, 84, 194, 83, 44, 15, 10, 199, 28, 19, 22, 4, 226, 83, 44, 15, 9, 198, 64, 20, 148, 37, 48, 78, 16, 9, 198,
-			44, 20, 5, 48, 192, 78, 16, 10, 199, 72, 83, 21, 45, 64, 78, 76, 15, 0, 11, 200, 76, 147, 143, 48, 241, 201, 76, 176, 15, 11,
-			200, 64, 21, 15, 48, 241, 201, 76, 176, 15, 11, 200, 60, 226, 207, 48, 241, 201, 76, 176, 15, 11, 200, 56, 244, 141, 4, 227, 137, 76,
-			176, 15, 11, 200, 44, 21, 5, 44, 85, 9, 76, 176, 15, 11, 200, 36, 66, 79, 52, 21, 9, 76, 176, 15, 11, 200, 24, 243, 143, 48,
-			241, 201, 76, 176, 15, 11, 200, 24, 193, 71, 52, 21, 9, 76, 176, 15, 11, 200, 4, 193, 197, 9, 32, 73, 76, 176, 15, 7, 196, 4,
-			116, 129, 24, 15, 11, 200, 65, 39, 212, 20, 225, 5, 57, 64, 15, 11, 3, 95, 56, 88, 83, 6, 37, 34, 89, 0, 0, 11, 200, 77,
-			81, 199, 21, 53, 9, 60, 224, 15, 11, 200, 72, 84, 207, 73, 5, 9, 60, 224, 15, 0, 8, 197, 53, 84, 197, 84, 208, 15, 11, 200,
-			44, 83, 143, 80, 17, 137, 84, 208, 15, 11, 200, 9, 35, 205, 44, 19, 9, 84, 208, 15, 8, 197, 8, 146, 201, 56, 144, 15, 9, 198,
-			77, 147, 66, 60, 194, 75, 15, 0, 9, 198, 25, 33, 78, 21, 50, 64, 15, 10, 199, 80, 19, 13, 84, 66, 83, 44, 15, 10, 199, 76,
-			20, 132, 60, 226, 83, 44, 15, 10, 199, 72, 20, 19, 60, 66, 83, 44, 15, 10, 199, 64, 193, 66, 20, 162, 83, 44, 15, 10, 199, 64,
-			192, 84, 60, 226, 83, 44, 15, 10, 199, 32, 84, 129, 48, 66, 83, 44, 15, 10, 199, 29, 33, 78, 4, 66, 83, 44, 15, 9, 198, 52,
-			20, 143, 44, 176, 78, 15, 9, 198, 40, 19, 65, 36, 48, 78, 15, 10, 199, 72, 84, 201, 77, 64, 78, 76, 15, 0, 11, 200, 81, 148,
-			15, 48, 241, 201, 76, 176, 15, 11, 200, 77, 145, 137, 48, 149, 9, 76, 176, 15, 11, 200, 76, 84, 143, 48, 241, 201, 76, 176, 15, 11,
-			200, 21, 67, 143, 48, 241, 201, 76, 176, 15, 11, 200, 21, 2, 76, 21, 5, 9, 76, 176, 15, 11, 200, 9, 84, 135, 84, 225, 9, 76,
-			176, 15, 7, 196, 88, 83, 137, 56, 15, 8, 197, 81, 32, 70, 36, 176, 15, 7, 196, 61, 34, 193, 56, 16, 0, 0, 10, 199, 81, 35,
-			212, 76, 178, 83, 80, 15, 10, 199, 28, 84, 141, 4, 226, 83, 80, 15, 8, 197, 44, 243, 132, 60, 208, 15, 11, 200, 65, 39, 214, 20,
-			229, 9, 60, 224, 15, 8, 197, 52, 19, 5, 72, 144, 15, 11, 200, 48, 19, 80, 37, 53, 5, 72, 144, 15, 11, 200, 24, 19, 148, 5,
-			53, 5, 72, 144, 15, 8, 197, 21, 81, 143, 72, 144, 15, 11, 200, 12, 128, 82, 13, 85, 5, 72, 144, 15, 6, 195, 52, 81, 0, 76,
-			0, 11, 200, 72, 85, 129, 56, 50, 9, 77, 64, 15, 11, 200, 56, 20, 131, 37, 52, 201, 77, 64, 15, 11, 200, 44, 192, 83, 76, 144,
-			201, 77, 64, 15, 11, 200, 44, 21, 129, 48, 84, 137, 77, 64, 15, 11, 200, 9, 32, 84, 76, 50, 9, 77, 64, 15, 9, 198, 76, 194,
-			66, 21, 34, 64, 15, 9, 198, 76, 192, 86, 21, 34, 64, 15, 9, 198, 56, 20, 146, 21, 34, 64, 15, 9, 198, 44, 226, 66, 21, 34,
-			64, 15, 9, 198, 44, 19, 148, 61, 34, 64, 15, 9, 198, 28, 224, 86, 21, 34, 64, 15, 9, 198, 24, 20, 150, 21, 34, 64, 15, 9,
-			198, 61, 4, 223, 81, 50, 71, 15, 9, 198, 28, 20, 129, 57, 66, 64, 15, 0, 7, 196, 76, 145, 143, 56, 15, 9, 198, 64, 19, 12,
-			4, 66, 69, 15, 8, 67, 8, 246, 64, 21, 0, 47, 14, 3, 95, 57, 88, 107, 117, 55, 83, 6, 115, 65, 89, 0, 0, 9, 198, 84,
-			226, 79, 56, 148, 212, 15, 9, 198, 76, 21, 1, 56, 148, 212, 15, 9, 198, 72, 16, 149, 48, 148, 212, 15, 9, 198, 64, 19, 148, 20,
-			148, 212, 15, 9, 198, 48, 240, 130, 100, 148, 212, 15, 9, 198, 44, 243, 15, 56, 148, 212, 15, 9, 198, 32, 81, 15, 56, 148, 212, 15,
-			9, 198, 29, 35, 211, 76, 148, 212, 15, 9, 198, 16, 83, 9, 72, 148, 212, 15, 9, 198, 12, 149, 137, 48, 148, 212, 15, 9, 198, 48,
-			20, 16, 37, 50, 192, 15, 9, 198, 20, 193, 71, 37, 50, 192, 15, 10, 199, 21, 82, 193, 72, 148, 212, 36, 15, 0, 12, 201, 36, 225,
-			137, 49, 68, 129, 80, 244, 128, 15, 12, 201, 16, 83, 79, 17, 83, 1, 80, 244, 128, 15, 9, 198, 60, 181, 1, 28, 243, 128, 15, 9,
-			198, 88, 84, 147, 36, 243, 128, 15, 9, 198, 61, 96, 84, 36, 243, 128, 15, 9, 198, 24, 148, 211, 36, 243, 128, 15, 0, 9, 198, 36,
-			210, 84, 5, 67, 210, 15, 9, 198, 4, 114, 84, 5, 67, 210, 15, 15, 204, 81, 32, 78, 76, 194, 84, 80, 84, 129, 80, 147, 206, 15,
-			8, 197, 52, 20, 141, 37, 64, 15, 8, 197, 24, 244, 141, 5, 64, 15, 9, 68, 13, 148, 149, 76, 21, 0, 47, 0, 7, 196, 77, 85,
-			21, 72, 15, 10, 199, 44, 243, 132, 20, 228, 207, 72, 15, 12, 201, 77, 147, 132, 36, 176, 76, 37, 51, 69, 15, 12, 201, 72, 85, 137,
-			76, 147, 206, 37, 51, 69, 15, 12, 201, 64, 242, 78, 80, 147, 12, 37, 51, 69, 15, 12, 201, 52, 21, 5, 72, 144, 76, 37, 51, 69,
-			15, 12, 201, 36, 225, 129, 57, 66, 76, 37, 51, 69, 15, 12, 201, 36, 212, 5, 72, 144, 76, 37, 51, 69, 15, 0, 10, 199, 5, 3,
-			208, 48, 82, 211, 36, 15, 8, 197, 85, 34, 78, 21, 32, 15, 8, 197, 80, 149, 18, 21, 32, 15, 8, 197, 61, 1, 82, 21, 32, 15,
-			8, 197, 56, 149, 18, 21, 32, 15, 8, 197, 48, 149, 18, 21, 32, 15, 8, 197, 20, 208, 78, 21, 32, 15, 10, 199, 4, 224, 76, 101,
-			49, 82, 20, 15, 0, 8, 197, 25, 34, 83, 165, 32, 15, 12, 201, 72, 81, 201, 77, 68, 129, 80, 244, 128, 15, 12, 201, 56, 243, 69,
-			56, 179, 1, 80, 244, 128, 15, 12, 201, 44, 243, 147, 21, 37, 129, 80, 244, 128, 15, 12, 201, 44, 243, 132, 20, 228, 193, 80, 244, 128,
-			15, 12, 201, 44, 243, 80, 20, 228, 193, 80, 244, 128, 15, 12, 201, 36, 195, 21, 77, 68, 129, 80, 244, 128, 15, 12, 201, 4, 178, 213,
-			53, 83, 1, 80, 244, 128, 15, 12, 201, 80, 84, 146, 37, 67, 210, 36, 83, 0, 15, 0, 10, 199, 80, 19, 148, 4, 194, 83, 44, 15,
-			10, 199, 77, 3, 210, 4, 66, 83, 44, 15, 10, 199, 64, 197, 84, 60, 226, 83, 44, 15, 10, 199, 52, 85, 1, 48, 194, 83, 44, 15,
-			10, 199, 49, 82, 213, 48, 194, 83, 44, 15, 10, 199, 48, 84, 207, 80, 130, 83, 44, 15, 10, 199, 37, 35, 203, 21, 50, 83, 44, 15,
-			10, 199, 16, 144, 84, 60, 226, 83, 44, 15, 10, 199, 16, 18, 212, 100, 194, 83, 44, 15, 10, 199, 8, 20, 130, 4, 66, 83, 44, 15,
-			9, 198, 25, 32, 75, 80, 147, 0, 15, 9, 198, 25, 33, 85, 16, 144, 78, 15, 9, 198, 8, 84, 212, 40, 19, 0, 15, 13, 3, 95,
-			63, 65, 71, 39, 40, 89, 47, 35, 58, 0, 0, 9, 198, 24, 243, 143, 29, 32, 77, 15, 9, 198, 4, 84, 143, 29, 32, 77, 15, 7,
-			196, 12, 148, 133, 72, 15, 11, 200, 100, 83, 69, 56, 149, 9, 76, 176, 15, 11, 200, 88, 82, 140, 20, 228, 201, 76, 176, 15, 11, 200,
-			88, 20, 132, 20, 228, 201, 76, 176, 15, 11, 200, 76, 20, 139, 5, 53, 9, 76, 176, 15, 11, 200, 76, 19, 15, 52, 243, 137, 76, 176,
-			15, 11, 200, 65, 34, 83, 52, 21, 9, 76, 176, 15, 11, 200, 64, 19, 143, 72, 19, 73, 76, 176, 15, 11, 200, 64, 19, 133, 29, 148,
-			137, 76, 176, 15, 11, 200, 61, 33, 201, 5, 53, 9, 76, 176, 15, 11, 200, 41, 81, 1, 37, 53, 9, 76, 176, 15, 11, 200, 36, 225,
-			15, 48, 241, 201, 76, 176, 15, 11, 200, 32, 145, 82, 5, 34, 201, 76, 176, 15, 11, 200, 20, 194, 84, 37, 53, 9, 76, 176, 15, 11,
-			200, 8, 84, 135, 20, 228, 201, 76, 176, 15, 11, 200, 8, 19, 12, 37, 53, 9, 76, 176, 15, 11, 200, 4, 225, 75, 16, 245, 9, 76,
-			176, 15, 11, 200, 4, 180, 143, 8, 21, 9, 76, 176, 15, 15, 204, 52, 20, 139, 20, 68, 205, 20, 176, 78, 37, 51, 69, 15, 15, 204,
-			29, 37, 78, 17, 69, 137, 28, 144, 78, 37, 51, 69, 15, 12, 201, 64, 20, 211, 36, 243, 133, 72, 85, 0, 15, 0, 8, 197, 77, 64,
-			84, 85, 32, 15, 8, 197, 88, 148, 203, 165, 48, 15, 9, 198, 104, 147, 206, 37, 53, 0, 15, 8, 197, 76, 176, 76, 21, 32, 15, 8,
-			197, 61, 134, 68, 21, 32, 15, 8, 197, 61, 130, 68, 21, 32, 15, 8, 197, 52, 21, 20, 21, 32, 15, 8, 197, 45, 33, 80, 21, 32,
-			15, 8, 197, 37, 51, 204, 21, 32, 15, 8, 197, 28, 245, 84, 21, 32, 15, 8, 197, 21, 2, 76, 21, 32, 15, 10, 199, 56, 84, 20,
-			84, 226, 85, 52, 15, 10, 199, 52, 20, 148, 101, 34, 85, 52, 15, 10, 199, 4, 69, 133, 72, 34, 85, 52, 15, 16, 205, 16, 82, 207,
-			57, 53, 18, 84, 181, 9, 88, 148, 205, 20, 15, 8, 197, 37, 51, 194, 5, 32, 15, 0, 8, 197, 16, 148, 12, 60, 208, 15, 12, 201,
-			52, 19, 169, 89, 33, 82, 36, 225, 192, 15, 12, 201, 81, 32, 68, 37, 66, 79, 56, 83, 0, 15, 11, 200, 65, 35, 212, 21, 53, 5,
-			72, 80, 15, 11, 200, 16, 145, 148, 60, 225, 197, 72, 80, 15, 17, 206, 4, 224, 82, 44, 244, 217, 56, 66, 75, 4, 194, 83, 52, 80,
-			15, 0, 9, 198, 8, 243, 77, 21, 50, 64, 15, 13, 202, 16, 148, 211, 20, 229, 9, 21, 34, 78, 28, 15, 8, 197, 89, 245, 133, 72,
-			144, 15, 10, 199, 80, 85, 84, 60, 226, 83, 44, 15, 10, 199, 80, 82, 212, 60, 226, 83, 44, 15, 10, 199, 80, 19, 154, 4, 226, 83,
-			44, 15, 10, 199, 77, 148, 212, 60, 194, 83, 44, 15, 10, 199, 45, 148, 137, 48, 194, 83, 44, 15, 10, 199, 37, 50, 201, 4, 66, 83,
-			44, 15, 10, 199, 32, 20, 141, 60, 226, 83, 44, 15, 10, 199, 21, 82, 204, 36, 66, 83, 44, 15, 10, 199, 21, 2, 83, 60, 66, 83,
-			44, 15, 7, 196, 53, 84, 201, 44, 15, 9, 198, 16, 151, 212, 21, 66, 75, 15, 0, 12, 201, 124, 181, 137, 48, 144, 146, 37, 53, 0,
-			15, 12, 201, 72, 85, 137, 76, 147, 206, 37, 53, 0, 15, 14, 203, 8, 84, 212, 36, 19, 9, 76, 84, 137, 56, 112, 69, 14, 203, 81,
-			34, 86, 36, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 77, 66, 71, 52, 21, 9, 76, 84, 137, 56, 112, 15, 14, 203, 76, 176, 78,
-			16, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 76, 82, 211, 84, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 72, 17, 9, 44, 19,
-			9, 76, 84, 137, 56, 112, 15, 14, 203, 53, 84, 201, 44, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 40, 245, 82, 56, 19, 9, 76,
-			84, 137, 56, 112, 15, 14, 203, 36, 211, 79, 8, 147, 9, 76, 84, 137, 56, 112, 15, 14, 203, 32, 243, 79, 48, 241, 201, 76, 84, 137,
-			56, 112, 15, 14, 203, 28, 83, 133, 72, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 16, 83, 79, 72, 19, 9, 76, 84, 137, 56, 112,
-			15, 14, 203, 8, 84, 212, 36, 19, 9, 76, 84, 137, 56, 112, 15, 9, 198, 37, 51, 205, 21, 68, 137, 15, 11, 200, 80, 131, 205, 37,
-			53, 9, 76, 176, 15, 11, 200, 77, 147, 66, 36, 245, 9, 76, 176, 15, 11, 200, 64, 21, 18, 36, 245, 9, 76, 176, 15, 11, 200, 48,
-			19, 65, 37, 53, 9, 76, 176, 15, 11, 200, 44, 148, 137, 8, 21, 9, 76, 176, 15, 11, 200, 32, 243, 73, 48, 85, 9, 76, 176, 15,
-			11, 200, 20, 226, 71, 52, 21, 9, 76, 176, 15, 11, 200, 16, 146, 207, 80, 243, 73, 76, 176, 15, 11, 200, 16, 145, 148, 60, 225, 201,
-			76, 176, 15, 11, 200, 16, 144, 76, 20, 181, 9, 76, 176, 15, 11, 200, 4, 193, 77, 4, 227, 137, 76, 176, 15, 12, 201, 64, 244, 212,
-			76, 52, 137, 65, 69, 77, 15, 7, 196, 24, 20, 137, 56, 15, 7, 196, 4, 196, 9, 56, 15, 7, 196, 4, 197, 1, 56, 16, 0, 9,
-			198, 17, 32, 71, 37, 53, 0, 15, 15, 204, 81, 32, 78, 77, 3, 1, 57, 65, 82, 36, 225, 192, 15, 15, 204, 80, 82, 206, 60, 195,
-			199, 37, 49, 82, 36, 225, 192, 15, 15, 204, 44, 243, 80, 72, 243, 73, 81, 65, 82, 36, 225, 192, 15, 15, 204, 36, 228, 212, 73, 83,
-			69, 57, 65, 82, 36, 225, 192, 15, 15, 204, 36, 211, 65, 81, 34, 75, 84, 193, 82, 36, 225, 192, 15, 15, 204, 8, 144, 140, 36, 241,
-			210, 4, 97, 82, 36, 225, 192, 15, 10, 3, 95, 52, 111, 83, 57, 36, 108, 0, 0, 12, 201, 65, 39, 195, 37, 49, 82, 36, 225, 192,
-			15, 12, 201, 29, 39, 195, 37, 49, 82, 36, 225, 192, 15, 11, 200, 88, 147, 132, 52, 17, 197, 72, 144, 15, 11, 200, 25, 34, 66, 101,
-			69, 5, 72, 144, 15, 8, 197, 36, 225, 82, 80, 144, 15, 14, 4, 95, 115, 116, 107, 89, 47, 34, 6, 39, 40, 49, 0, 0, 12, 201,
-			45, 38, 83, 80, 19, 12, 61, 49, 64, 15, 14, 203, 44, 243, 147, 80, 149, 21, 80, 147, 206, 20, 192, 15, 9, 198, 77, 80, 147, 84,
-			209, 82, 15, 9, 198, 77, 66, 80, 84, 193, 82, 15, 9, 198, 77, 1, 75, 84, 193, 82, 15, 9, 198, 76, 80, 197, 72, 225, 82, 15,
-			9, 198, 72, 85, 1, 8, 193, 82, 15, 9, 198, 64, 244, 212, 84, 193, 82, 15, 9, 198, 64, 192, 84, 36, 225, 82, 15, 9, 198, 64,
-			20, 208, 60, 193, 82, 15, 9, 198, 52, 147, 135, 20, 193, 82, 15, 9, 198, 52, 20, 141, 61, 33, 82, 15, 9, 198, 48, 19, 69, 57,
-			65, 82, 15, 9, 198, 44, 244, 146, 60, 65, 82, 15, 9, 198, 44, 243, 150, 20, 225, 82, 15, 9, 198, 44, 243, 132, 60, 193, 82, 15,
-			9, 198, 44, 243, 66, 36, 225, 82, 15, 9, 198, 44, 243, 12, 36, 65, 82, 15, 9, 198, 44, 242, 197, 81, 65, 82, 15, 9, 198, 44,
-			240, 71, 84, 193, 82, 15, 9, 198, 44, 19, 132, 36, 65, 82, 15, 9, 198, 44, 19, 85, 24, 193, 82, 15, 9, 198, 44, 19, 11, 84,
-			193, 82, 15, 9, 198, 36, 229, 5, 72, 225, 82, 15, 9, 198, 36, 229, 5, 56, 65, 82, 15, 9, 198, 36, 227, 203, 84, 193, 82, 15,
-			9, 198, 32, 20, 131, 20, 193, 82, 15, 9, 198, 29, 32, 84, 84, 193, 82, 15, 9, 198, 24, 245, 82, 4, 113, 82, 15, 9, 198, 20,
-			194, 77, 36, 225, 82, 15, 9, 198, 20, 180, 208, 60, 225, 82, 15, 9, 198, 20, 180, 201, 77, 65, 82, 15, 9, 198, 16, 148, 211, 60,
-			225, 82, 15, 9, 198, 16, 148, 211, 36, 65, 82, 15, 9, 198, 16, 148, 208, 60, 225, 82, 15, 9, 198, 16, 85, 1, 12, 129, 82, 15,
-			9, 198, 16, 84, 212, 36, 225, 82, 15, 9, 198, 16, 83, 69, 57, 65, 82, 15, 9, 198, 16, 82, 204, 36, 225, 82, 15, 9, 198, 12,
-			148, 139, 84, 193, 82, 15, 9, 198, 8, 192, 78, 12, 129, 82, 15, 9, 198, 5, 69, 18, 4, 129, 82, 15, 9, 198, 5, 4, 18, 60,
-			33, 82, 15, 9, 198, 4, 36, 207, 72, 33, 82, 15, 9, 198, 77, 98, 78, 21, 34, 64, 15, 9, 198, 76, 49, 78, 21, 34, 64, 15,
-			9, 198, 17, 33, 74, 21, 34, 64, 15, 9, 198, 65, 35, 214, 77, 66, 64, 15, 12, 201, 52, 84, 137, 80, 242, 210, 5, 66, 64, 15,
-			12, 201, 9, 84, 133, 5, 82, 210, 5, 66, 64, 15, 12, 201, 5, 34, 83, 80, 242, 210, 5, 66, 64, 15, 19, 70, 48, 19, 147, 20,
-			225, 82, 55, 117, 50, 89, 13, 50, 6, 36, 34, 0, 15, 19, 70, 24, 19, 11, 60, 225, 82, 83, 117, 55, 49, 39, 50, 6, 36, 34,
-			0, 15, 11, 200, 45, 103, 210, 84, 192, 78, 12, 80, 15, 0, 12, 201, 45, 33, 65, 80, 147, 206, 37, 53, 0, 15, 13, 202, 25, 32,
-			71, 52, 83, 148, 5, 66, 79, 56, 15, 13, 202, 16, 148, 208, 72, 244, 15, 73, 66, 79, 56, 15, 15, 204, 44, 83, 79, 80, 84, 129,
-			64, 85, 84, 36, 181, 77, 15, 8, 197, 45, 34, 84, 36, 176, 15, 0, 9, 198, 44, 243, 150, 60, 197, 84, 15, 15, 204, 72, 81, 201,
-			60, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 65, 54, 75, 60, 195, 199, 37, 49, 82, 36, 225, 192, 15, 15, 204, 48, 82, 211,
-			36, 176, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 45, 38, 83, 80, 19, 12, 37, 49, 82, 36, 225, 192, 15, 15, 204, 45, 38, 80,
-			80, 241, 210, 4, 97, 82, 36, 225, 192, 15, 15, 204, 32, 244, 208, 37, 64, 76, 37, 49, 82, 36, 225, 192, 15, 14, 203, 26, 145, 5,
-			72, 19, 9, 76, 84, 137, 56, 112, 15, 15, 204, 16, 84, 212, 4, 34, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 16, 84, 207, 72,
-			112, 78, 37, 49, 82, 36, 225, 192, 15, 15, 204, 16, 83, 79, 45, 32, 84, 37, 49, 82, 36, 225, 192, 15, 15, 204, 4, 178, 204, 36,
-			208, 84, 37, 49, 82, 36, 225, 192, 15, 0, 9, 198, 80, 82, 206, 60, 195, 199, 15, 9, 198, 56, 85, 82, 60, 195, 199, 15, 9, 198,
-			56, 82, 210, 60, 195, 199, 15, 0, 12, 201, 65, 39, 196, 21, 53, 9, 56, 84, 128, 15, 12, 201, 16, 145, 134, 21, 33, 78, 80, 145,
-			82, 15, 0, 12, 68, 56, 241, 204, 20, 50, 6, 39, 14, 50, 0, 9, 198, 72, 245, 1, 72, 144, 78, 15, 9, 198, 44, 244, 147, 36,
-			176, 78, 15, 9, 198, 8, 20, 148, 32, 144, 78, 15, 9, 198, 4, 100, 137, 44, 16, 78, 15, 9, 198, 4, 100, 137, 44, 16, 78, 15,
-			9, 198, 16, 148, 212, 4, 229, 0, 15, 9, 198, 8, 20, 212, 4, 229, 0, 15, 11, 70, 32, 243, 204, 36, 112, 78, 21, 0, 47, 0,
-			11, 200, 44, 19, 132, 36, 64, 84, 85, 32, 15, 9, 198, 125, 65, 82, 37, 50, 192, 15, 9, 198, 76, 103, 210, 37, 50, 192, 15, 9,
-			198, 48, 149, 21, 72, 114, 75, 15, 8, 197, 57, 80, 78, 12, 80, 15, 10, 69, 76, 245, 82, 12, 80, 21, 0, 47, 0, 12, 201, 44,
-			243, 134, 164, 65, 82, 21, 33, 84, 15, 14, 203, 44, 244, 146, 21, 52, 15, 56, 64, 78, 12, 80, 15, 0, 8, 197, 104, 243, 204, 60,
-			112, 15, 11, 200, 65, 39, 212, 20, 229, 9, 60, 224, 15, 11, 200, 80, 83, 5, 64, 21, 9, 76, 176, 15, 11, 200, 60, 229, 15, 48,
-			241, 201, 76, 176, 15, 11, 200, 48, 243, 66, 5, 33, 9, 76, 176, 15, 11, 200, 24, 243, 133, 52, 21, 9, 76, 176, 15, 11, 200, 20,
-			230, 153, 52, 21, 9, 76, 176, 15, 11, 200, 5, 85, 15, 52, 21, 9, 76, 176, 15, 11, 200, 5, 3, 211, 80, 243, 9, 76, 176, 15,
-			9, 198, 52, 85, 15, 57, 147, 73, 15, 9, 198, 44, 242, 31, 72, 83, 148, 15, 12, 201, 124, 181, 137, 16, 148, 212, 4, 229, 0, 15,
-			0, 10, 199, 44, 21, 1, 48, 84, 19, 36, 15, 12, 201, 81, 83, 85, 49, 64, 82, 37, 50, 192, 15, 12, 201, 80, 84, 146, 21, 53,
-			18, 37, 50, 192, 15, 12, 201, 80, 83, 5, 52, 85, 18, 37, 50, 192, 15, 12, 201, 80, 16, 133, 48, 192, 82, 37, 50, 192, 15, 12,
-			201, 76, 83, 22, 37, 35, 206, 37, 50, 192, 15, 12, 201, 72, 85, 8, 5, 97, 82, 37, 50, 192, 15, 12, 201, 65, 35, 214, 37, 51,
-			210, 37, 50, 192, 15, 12, 201, 65, 35, 204, 21, 64, 82, 37, 50, 192, 15, 12, 201, 64, 243, 25, 80, 82, 206, 37, 50, 192, 15, 12,
-			201, 64, 192, 78, 21, 64, 82, 37, 50, 192, 15, 12, 201, 52, 146, 210, 60, 99, 206, 37, 50, 192, 15, 12, 201, 48, 81, 197, 56, 64,
-			82, 37, 50, 192, 15, 12, 201, 45, 81, 134, 21, 37, 6, 37, 50, 192, 15, 12, 201, 44, 243, 131, 20, 229, 18, 37, 50, 192, 15, 12,
-			201, 44, 19, 5, 56, 64, 82, 37, 50, 192, 15, 12, 201, 41, 81, 207, 76, 192, 86, 37, 50, 192, 15, 12, 201, 28, 83, 195, 20, 229,
-			18, 37, 50, 192, 15, 12, 201, 16, 146, 212, 5, 67, 210, 37, 50, 192, 15, 12, 201, 16, 81, 140, 5, 67, 210, 37, 50, 192, 15, 12,
-			201, 4, 229, 9, 45, 96, 82, 37, 50, 192, 15, 12, 201, 4, 48, 197, 77, 51, 210, 37, 50, 192, 15, 9, 198, 64, 243, 77, 21, 32,
-			78, 15, 9, 198, 12, 20, 132, 36, 112, 78, 16, 13, 72, 77, 113, 65, 81, 50, 9, 73, 64, 21, 0, 47, 0, 9, 198, 44, 19, 95,
-			48, 83, 206, 15, 13, 202, 36, 229, 5, 73, 3, 204, 5, 66, 79, 56, 15, 9, 198, 32, 84, 141, 21, 66, 75, 15, 9, 198, 72, 85,
-			133, 72, 83, 147, 15, 8, 197, 81, 34, 65, 16, 80, 15, 8, 197, 72, 242, 193, 16, 80, 15, 8, 197, 17, 38, 65, 16, 80, 15, 8,
-			197, 16, 82, 193, 16, 80, 15, 8, 197, 12, 146, 193, 16, 80, 15, 9, 198, 44, 243, 147, 80, 19, 147, 15, 6, 195, 52, 83, 147, 8,
-			0, 15, 204, 65, 34, 86, 5, 65, 137, 56, 19, 147, 36, 84, 128, 15, 10, 199, 8, 147, 198, 101, 50, 83, 44, 15, 7, 196, 60, 35,
-			9, 44, 15, 0, 0, 10, 199, 64, 85, 18, 60, 193, 85, 52, 15, 10, 199, 76, 147, 5, 57, 66, 85, 52, 15, 10, 199, 61, 32, 84,
-			61, 34, 85, 52, 15, 10, 199, 44, 243, 12, 60, 66, 85, 52, 15, 10, 199, 32, 84, 130, 5, 34, 85, 52, 15, 10, 199, 28, 195, 211,
-			5, 34, 85, 52, 15, 0, 14, 68, 92, 17, 207, 56, 84, 117, 81, 6, 108, 68, 0, 15, 14, 203, 44, 194, 84, 61, 34, 68, 20, 181,
-			15, 52, 144, 15, 8, 197, 44, 243, 15, 56, 144, 15, 14, 203, 24, 244, 147, 80, 19, 132, 21, 34, 78, 16, 80, 15, 17, 4, 95, 115,
-			109, 99, 89, 65, 6, 125, 12, 55, 49, 4, 35, 48, 0, 0, 9, 198, 44, 193, 82, 21, 50, 64, 15, 9, 198, 40, 19, 15, 85, 50,
-			64, 15, 12, 201, 61, 4, 15, 76, 149, 9, 60, 225, 76, 15, 12, 201, 5, 4, 15, 76, 149, 9, 60, 225, 76, 15, 0, 0, 11, 200,
-			77, 1, 67, 36, 19, 9, 77, 64, 15, 11, 200, 56, 85, 84, 72, 19, 9, 77, 64, 15, 11, 200, 56, 21, 21, 72, 19, 9, 77, 64,
-			15, 11, 200, 44, 243, 139, 72, 85, 9, 77, 64, 15, 11, 200, 4, 36, 207, 49, 85, 9, 77, 64, 15, 10, 199, 64, 245, 16, 61, 84,
-			146, 36, 15, 10, 199, 60, 208, 146, 100, 65, 82, 36, 15, 10, 199, 52, 20, 203, 36, 225, 82, 36, 15, 10, 199, 45, 32, 75, 36, 193,
-			82, 36, 15, 9, 198, 64, 20, 148, 37, 50, 192, 15, 18, 70, 60, 64, 76, 37, 50, 192, 39, 72, 35, 55, 6, 37, 89, 49, 0, 15,
-			9, 198, 4, 96, 84, 37, 50, 192, 15, 0, 7, 196, 65, 34, 79, 72, 15, 8, 197, 73, 81, 197, 72, 144, 15, 8, 197, 25, 34, 69,
-			72, 144, 15, 11, 200, 24, 244, 141, 100, 225, 5, 72, 144, 15, 8, 197, 48, 149, 1, 56, 144, 15, 14, 203, 44, 243, 134, 37, 35, 65,
-			56, 66, 78, 16, 80, 15, 0, 9, 198, 72, 243, 65, 56, 148, 212, 15, 11, 200, 164, 179, 206, 60, 209, 84, 72, 144, 15, 9, 198, 80,
-			145, 199, 21, 34, 64, 15, 9, 198, 76, 230, 68, 21, 34, 64, 15, 9, 198, 73, 149, 20, 21, 34, 64, 15, 9, 198, 72, 83, 147, 21,
-			34, 64, 15, 9, 198, 64, 147, 132, 21, 34, 64, 15, 9, 198, 64, 18, 203, 21, 34, 64, 15, 9, 198, 44, 241, 204, 21, 34, 64, 15,
-			9, 198, 44, 240, 140, 21, 34, 64, 15, 9, 198, 44, 20, 148, 21, 34, 64, 15, 9, 198, 40, 20, 203, 21, 34, 64, 15, 9, 198, 28,
-			226, 68, 21, 34, 64, 15, 9, 198, 24, 148, 203, 21, 34, 64, 15, 9, 198, 16, 145, 148, 21, 34, 64, 15, 9, 198, 9, 35, 196, 21,
-			34, 64, 15, 9, 198, 8, 147, 132, 21, 34, 64, 15, 9, 198, 24, 81, 5, 77, 66, 64, 15, 9, 198, 12, 130, 65, 57, 66, 64, 15,
-			9, 198, 44, 20, 9, 80, 19, 0, 15, 0, 9, 198, 56, 82, 212, 5, 34, 69, 15, 9, 198, 52, 20, 148, 101, 34, 69, 15, 9, 198,
-			28, 84, 149, 56, 66, 69, 15, 9, 198, 4, 197, 77, 36, 226, 69, 15, 9, 198, 4, 69, 133, 72, 34, 69, 15, 9, 198, 80, 16, 200,
-			37, 51, 69, 15, 9, 198, 52, 20, 152, 37, 51, 69, 15, 9, 198, 20, 194, 84, 37, 51, 69, 15, 9, 198, 16, 17, 1, 37, 51, 69,
-			15, 0, 9, 198, 72, 20, 137, 80, 85, 0, 15, 18, 70, 8, 148, 203, 84, 149, 0, 71, 37, 89, 49, 84, 6, 37, 47, 0, 15, 9,
-			198, 29, 39, 195, 37, 51, 69, 15, 9, 198, 49, 85, 8, 21, 32, 78, 15, 9, 198, 12, 83, 12, 60, 96, 78, 16, 17, 71, 12, 130,
-			72, 84, 18, 21, 4, 76, 37, 58, 6, 35, 58, 35, 0, 0, 7, 196, 24, 85, 5, 72, 15, 9, 198, 77, 1, 67, 36, 98, 75, 15,
-			7, 196, 80, 21, 1, 72, 15, 28, 67, 48, 149, 0, 55, 37, 72, 112, 48, 117, 34, 6, 121, 72, 0, 15, 82, 100, 101, 32, 112, 97,
-			114, 97, 100, 101, 32, 0, 12, 201, 80, 18, 201, 77, 67, 211, 44, 244, 0, 15, 12, 201, 20, 193, 75, 81, 35, 211, 44, 244, 0, 15,
-			9, 198, 4, 84, 143, 76, 243, 0, 15, 9, 198, 44, 241, 9, 12, 147, 0, 15, 9, 198, 25, 35, 206, 80, 19, 0, 15, 9, 198, 16,
-			80, 201, 52, 19, 0, 15, 18, 71, 77, 2, 69, 48, 33, 82, 28, 89, 48, 111, 55, 71, 132, 12, 81, 0, 0, 9, 198, 64, 243, 25,
-			45, 35, 205, 15, 11, 200, 80, 16, 200, 37, 53, 9, 76, 176, 15, 11, 200, 77, 67, 203, 5, 53, 9, 76, 176, 15, 11, 200, 76, 178,
-			83, 52, 21, 9, 76, 176, 15, 15, 204, 65, 54, 75, 61, 0, 84, 60, 195, 199, 37, 50, 192, 15, 12, 201, 65, 54, 75, 61, 0, 84,
-			37, 50, 192, 15, 11, 200, 64, 20, 129, 76, 149, 9, 76, 176, 15, 11, 200, 64, 20, 129, 49, 149, 9, 76, 176, 15, 11, 200, 52, 20,
-			152, 37, 53, 9, 76, 176, 15, 11, 200, 52, 18, 193, 72, 243, 137, 76, 176, 15, 11, 200, 45, 96, 68, 72, 21, 9, 76, 176, 15, 11,
-			200, 33, 145, 18, 5, 83, 9, 76, 176, 15, 11, 200, 24, 19, 148, 5, 53, 9, 76, 176, 15, 11, 200, 21, 33, 207, 56, 243, 73, 76,
-			176, 15, 11, 200, 20, 208, 146, 100, 243, 137, 76, 176, 15, 11, 200, 16, 17, 1, 37, 53, 9, 76, 176, 15, 11, 200, 8, 192, 83, 24,
-			83, 73, 76, 176, 15, 11, 200, 8, 20, 20, 37, 53, 9, 76, 176, 15, 11, 200, 5, 64, 86, 37, 53, 9, 76, 176, 15, 11, 200, 5,
-			1, 82, 36, 241, 9, 76, 176, 15, 11, 200, 4, 226, 77, 37, 53, 9, 76, 176, 15, 10, 199, 65, 54, 75, 61, 0, 84, 36, 15, 12,
-			201, 72, 21, 9, 60, 224, 76, 37, 51, 69, 15, 12, 201, 65, 54, 75, 60, 195, 199, 37, 51, 69, 15, 12, 201, 65, 34, 77, 37, 66,
-			86, 37, 51, 69, 15, 12, 201, 64, 21, 5, 72, 224, 76, 37, 51, 69, 15, 12, 201, 60, 34, 133, 45, 66, 86, 37, 51, 69, 15, 12,
-			201, 52, 20, 203, 84, 194, 78, 37, 51, 69, 15, 12, 201, 49, 85, 8, 21, 32, 78, 37, 51, 69, 15, 12, 201, 32, 243, 204, 36, 112,
-			78, 37, 51, 69, 15, 12, 201, 25, 33, 85, 16, 144, 78, 37, 51, 69, 15, 12, 201, 16, 85, 5, 72, 210, 78, 37, 51, 69, 15, 12,
-			201, 8, 20, 148, 32, 144, 78, 37, 51, 69, 15, 12, 201, 4, 209, 82, 36, 176, 78, 37, 51, 69, 15, 9, 198, 65, 54, 75, 61, 0,
-			84, 15, 0, 10, 199, 44, 19, 142, 20, 197, 82, 20, 15, 10, 199, 88, 83, 148, 36, 193, 82, 20, 15, 10, 199, 81, 83, 142, 20, 193,
-			82, 20, 15, 10, 199, 81, 34, 85, 52, 97, 82, 20, 15, 10, 199, 76, 82, 213, 56, 65, 82, 20, 15, 10, 199, 65, 35, 198, 36, 193,
-			82, 20, 15, 10, 199, 64, 83, 132, 84, 193, 82, 20, 15, 10, 199, 52, 20, 135, 36, 225, 82, 20, 15, 10, 199, 44, 243, 147, 84, 193,
-			82, 20, 15, 10, 199, 44, 20, 197, 72, 225, 82, 20, 15, 10, 199, 4, 178, 207, 72, 65, 82, 20, 15, 12, 201, 97, 147, 15, 29, 32,
-			70, 37, 50, 192, 15, 12, 201, 96, 84, 143, 29, 32, 70, 37, 50, 192, 15, 12, 201, 81, 148, 15, 29, 32, 70, 37, 50, 192, 15, 12,
-			201, 80, 244, 15, 29, 32, 70, 37, 50, 192, 15, 12, 201, 80, 243, 79, 29, 32, 70, 37, 50, 192, 15, 12, 201, 80, 83, 5, 80, 82,
-			206, 37, 50, 192, 15, 12, 201, 80, 83, 5, 29, 32, 70, 37, 50, 192, 15, 12, 201, 77, 84, 5, 73, 51, 206, 37, 50, 192, 15, 12,
-			201, 76, 147, 135, 4, 193, 83, 37, 50, 192, 15, 12, 201, 72, 17, 9, 60, 99, 206, 37, 50, 192, 15, 12, 201, 65, 148, 143, 80, 82,
-			206, 37, 50, 192, 15, 12, 201, 65, 54, 75, 36, 21, 18, 37, 50, 192, 15, 12, 201, 64, 19, 148, 60, 210, 77, 37, 50, 192, 15, 12,
-			201, 61, 37, 15, 29, 32, 70, 37, 50, 192, 15, 12, 201, 56, 243, 79, 29, 32, 70, 37, 50, 192, 15, 12, 201, 53, 83, 20, 36, 85,
-			14, 37, 50, 192, 15, 12, 201, 52, 243, 143, 29, 32, 70, 37, 50, 192, 15, 12, 201, 52, 85, 1, 52, 244, 134, 37, 50, 192, 15, 12,
-			201, 52, 17, 1, 28, 20, 203, 37, 50, 192, 15, 12, 201, 48, 149, 15, 29, 32, 70, 37, 50, 192, 15, 12, 201, 45, 38, 79, 80, 82,
-			206, 37, 50, 192, 15, 12, 201, 44, 244, 205, 60, 115, 206, 37, 50, 192, 15, 12, 201, 44, 83, 73, 29, 32, 70, 37, 50, 192, 15, 12,
-			201, 36, 65, 79, 29, 32, 70, 37, 50, 192, 15, 12, 201, 32, 243, 15, 29, 32, 70, 37, 50, 192, 15, 12, 201, 29, 32, 70, 60, 195,
-			199, 37, 50, 192, 15, 12, 201, 28, 84, 149, 56, 66, 86, 37, 50, 192, 15, 12, 201, 28, 83, 77, 60, 195, 199, 37, 50, 192, 15, 12,
-			201, 24, 245, 15, 29, 32, 70, 37, 50, 192, 15, 12, 201, 24, 243, 143, 29, 32, 70, 37, 50, 192, 15, 12, 201, 21, 67, 143, 29, 32,
-			70, 37, 50, 192, 15, 12, 201, 20, 193, 75, 81, 35, 206, 37, 50, 192, 15, 12, 201, 16, 85, 5, 45, 66, 86, 37, 50, 192, 15, 12,
-			201, 16, 83, 79, 29, 32, 70, 37, 50, 192, 15, 12, 201, 12, 19, 9, 24, 244, 142, 37, 50, 192, 15, 12, 201, 8, 81, 18, 4, 113,
-			82, 37, 50, 192, 15, 12, 201, 8, 20, 143, 52, 85, 18, 37, 50, 192, 15, 12, 201, 5, 85, 15, 29, 32, 70, 37, 50, 192, 15, 12,
-			201, 5, 81, 9, 60, 195, 199, 37, 50, 192, 15, 12, 201, 4, 114, 84, 5, 67, 210, 37, 50, 192, 15, 9, 198, 76, 147, 9, 44, 21,
-			0, 15, 9, 198, 64, 192, 71, 36, 21, 0, 15, 9, 198, 44, 20, 197, 52, 21, 0, 15, 9, 198, 4, 84, 143, 64, 192, 78, 16, 8,
-			66, 61, 48, 108, 89, 0, 76, 12, 4, 95, 98, 97, 114, 10, 71, 6, 121, 13, 0, 20, 4, 95, 99, 105, 114, 89, 6, 112, 12, 49,
-			108, 65, 83, 55, 4, 115, 49, 89, 0, 4, 193, 172, 43, 0, 7, 196, 4, 226, 79, 56, 15, 9, 198, 80, 20, 133, 72, 147, 135, 15,
-			9, 198, 64, 20, 133, 72, 147, 135, 15, 9, 198, 64, 19, 133, 72, 147, 135, 15, 9, 198, 48, 85, 133, 72, 147, 135, 15, 9, 198, 48,
-			21, 133, 72, 147, 135, 15, 9, 198, 45, 84, 5, 72, 147, 135, 15, 9, 198, 24, 147, 133, 72, 147, 135, 15, 9, 198, 4, 65, 5, 72,
-			147, 135, 15, 12, 201, 36, 229, 5, 57, 66, 79, 56, 83, 0, 15, 7, 196, 17, 84, 201, 56, 15, 9, 198, 72, 84, 21, 8, 194, 75,
-			15, 9, 198, 53, 82, 203, 20, 34, 75, 15, 7, 196, 52, 85, 1, 56, 16, 10, 67, 52, 147, 128, 65, 37, 50, 0, 72, 0, 12, 201,
-			80, 83, 5, 29, 32, 70, 21, 33, 64, 15, 12, 201, 77, 68, 149, 45, 69, 82, 21, 33, 64, 15, 12, 201, 76, 181, 76, 65, 69, 82,
-			21, 33, 64, 15, 12, 201, 24, 245, 15, 29, 32, 70, 21, 33, 64, 15, 12, 201, 5, 85, 15, 29, 32, 70, 21, 33, 64, 15, 7, 196,
-			4, 229, 9, 44, 15, 12, 201, 65, 35, 208, 61, 37, 9, 60, 224, 76, 15, 17, 4, 95, 48, 77, 52, 71, 37, 55, 37, 57, 6, 39,
-			12, 50, 112, 0, 0, 9, 198, 88, 20, 197, 48, 147, 133, 15, 9, 198, 28, 83, 1, 80, 147, 133, 15, 9, 198, 17, 85, 133, 80, 147,
-			133, 15, 12, 201, 64, 84, 150, 21, 36, 201, 80, 85, 0, 15, 12, 201, 28, 83, 133, 74, 148, 201, 80, 85, 0, 15, 9, 198, 88, 20,
-			197, 48, 147, 133, 15, 9, 198, 4, 116, 143, 56, 243, 73, 15, 8, 197, 52, 244, 193, 36, 176, 15, 8, 197, 29, 32, 70, 36, 176, 15,
-			0, 9, 198, 64, 21, 75, 37, 53, 0, 15, 9, 198, 88, 147, 132, 36, 49, 82, 15, 9, 198, 80, 19, 66, 85, 33, 82, 15, 9, 198,
-			77, 81, 199, 21, 33, 82, 15, 9, 198, 76, 181, 76, 65, 65, 82, 15, 9, 198, 76, 83, 5, 45, 65, 82, 15, 9, 198, 72, 148, 15,
-			77, 65, 82, 15, 9, 198, 72, 84, 213, 49, 65, 82, 15, 9, 198, 72, 84, 208, 37, 33, 82, 15, 9, 198, 72, 83, 73, 81, 65, 82,
-			15, 9, 198, 72, 83, 1, 56, 49, 82, 15, 9, 198, 72, 82, 213, 73, 33, 82, 15, 9, 198, 72, 16, 129, 81, 65, 82, 15, 9, 198,
-			64, 148, 5, 81, 65, 82, 15, 9, 198, 64, 84, 141, 85, 65, 82, 15, 9, 198, 64, 84, 134, 61, 33, 82, 15, 9, 198, 64, 20, 211,
-			37, 97, 82, 15, 9, 198, 61, 34, 69, 57, 65, 82, 15, 9, 198, 60, 36, 212, 73, 81, 82, 15, 9, 198, 60, 36, 212, 37, 1, 82,
-			15, 9, 198, 60, 36, 197, 73, 97, 82, 15, 9, 198, 57, 83, 77, 21, 33, 82, 15, 9, 198, 45, 84, 147, 37, 97, 82, 15, 9, 198,
-			45, 83, 20, 37, 97, 82, 15, 9, 198, 45, 34, 84, 37, 49, 82, 15, 9, 198, 45, 33, 68, 37, 65, 82, 15, 9, 198, 44, 244, 146,
-			36, 113, 82, 15, 9, 198, 44, 243, 142, 61, 65, 82, 15, 9, 198, 44, 243, 134, 21, 33, 82, 15, 9, 198, 44, 243, 80, 5, 33, 82,
-			15, 9, 198, 44, 243, 77, 85, 65, 82, 15, 9, 198, 44, 20, 130, 85, 33, 82, 15, 9, 198, 44, 19, 9, 9, 33, 82, 15, 9, 198,
-			36, 229, 133, 57, 65, 82, 15, 9, 198, 36, 229, 5, 29, 33, 82, 15, 9, 198, 36, 228, 213, 49, 65, 82, 15, 9, 198, 36, 228, 212,
-			73, 81, 82, 15, 9, 198, 36, 228, 208, 37, 33, 82, 15, 9, 198, 36, 225, 143, 72, 209, 82, 15, 9, 198, 36, 225, 12, 60, 113, 82,
-			15, 9, 198, 36, 225, 12, 21, 97, 82, 15, 9, 198, 36, 225, 4, 5, 65, 82, 15, 9, 198, 36, 212, 12, 36, 49, 82, 15, 9, 198,
-			32, 244, 208, 37, 65, 82, 15, 9, 198, 32, 84, 143, 37, 49, 82, 15, 9, 198, 28, 20, 129, 57, 65, 82, 15, 9, 198, 24, 16, 197,
-			81, 65, 82, 15, 9, 198, 24, 16, 146, 36, 177, 82, 15, 9, 198, 20, 112, 76, 37, 49, 82, 15, 9, 198, 16, 149, 133, 73, 65, 82,
-			15, 9, 198, 16, 148, 211, 20, 177, 82, 15, 9, 198, 16, 147, 73, 81, 65, 82, 15, 9, 198, 16, 145, 134, 21, 33, 82, 15, 9, 198,
-			16, 84, 18, 36, 209, 82, 15, 9, 198, 16, 84, 15, 73, 65, 82, 15, 9, 198, 16, 82, 204, 5, 33, 82, 15, 9, 198, 16, 82, 204,
-			4, 209, 82, 15, 9, 198, 16, 82, 25, 17, 33, 82, 15, 9, 198, 16, 81, 143, 72, 209, 82, 15, 9, 198, 12, 83, 5, 9, 33, 82,
-			15, 9, 198, 8, 149, 149, 4, 177, 82, 15, 9, 198, 8, 19, 12, 61, 65, 82, 15, 9, 198, 5, 52, 201, 77, 65, 82, 15, 9, 198,
-			5, 49, 129, 49, 65, 82, 15, 9, 198, 5, 32, 137, 81, 33, 82, 15, 9, 198, 5, 4, 18, 21, 65, 82, 15, 9, 198, 4, 227, 196,
-			37, 49, 82, 15, 9, 198, 4, 67, 73, 81, 65, 82, 15, 9, 198, 4, 36, 197, 57, 65, 82, 15, 12, 201, 36, 225, 140, 5, 67, 210,
-			37, 50, 192, 15, 9, 198, 52, 85, 18, 36, 177, 82, 15, 9, 198, 37, 35, 206, 36, 177, 82, 15, 7, 196, 5, 67, 206, 36, 15, 12,
-			201, 5, 49, 82, 8, 18, 132, 76, 160, 78, 15, 12, 201, 5, 49, 82, 8, 18, 132, 76, 160, 78, 16, 11, 70, 16, 80, 149, 28, 113,
-			82, 21, 0, 47, 10, 3, 95, 56, 111, 108, 47, 50, 14, 0, 17, 4, 95, 48, 77, 50, 65, 37, 55, 37, 57, 6, 39, 12, 50, 108,
-			0, 0, 17, 67, 52, 19, 128, 65, 118, 50, 107, 118, 0, 81, 104, 97, 118, 101, 32, 10, 199, 4, 69, 143, 44, 21, 21, 72, 15, 11,
-			200, 88, 84, 147, 36, 243, 133, 72, 80, 15, 8, 197, 72, 81, 5, 72, 144, 15, 11, 200, 76, 83, 73, 56, 20, 137, 84, 208, 15, 11,
-			200, 76, 19, 129, 80, 244, 137, 84, 208, 15, 11, 200, 52, 244, 129, 80, 244, 137, 84, 208, 15, 11, 200, 44, 243, 15, 24, 243, 137, 84,
-			208, 15, 11, 200, 44, 243, 12, 60, 181, 137, 84, 208, 15, 8, 197, 16, 84, 15, 56, 144, 15, 7, 196, 81, 148, 129, 56, 16, 7, 196,
-			28, 19, 1, 56, 16, 17, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 6, 121, 12, 72, 112, 0, 0, 8, 197, 82, 146, 133, 72, 144,
-			15, 0, 9, 198, 76, 218, 76, 21, 34, 64, 15, 9, 198, 57, 225, 12, 21, 34, 64, 15, 9, 198, 33, 244, 132, 21, 34, 64, 15, 16,
-			69, 64, 243, 9, 76, 176, 48, 39, 55, 6, 37, 89, 49, 0, 15, 8, 197, 77, 64, 84, 36, 176, 15, 8, 197, 72, 84, 12, 36, 176,
-			15, 13, 4, 95, 48, 77, 49, 47, 6, 123, 89, 14, 50, 0, 0, 9, 198, 76, 21, 68, 37, 50, 192, 15, 9, 198, 64, 241, 84, 37,
-			50, 192, 15, 9, 198, 5, 34, 193, 37, 50, 192, 15, 11, 66, 64, 32, 83, 37, 50, 35, 55, 0, 42, 10, 199, 44, 21, 1, 45, 33,
-			83, 20, 15, 10, 199, 65, 34, 78, 76, 84, 211, 20, 15, 10, 199, 64, 85, 9, 80, 84, 211, 20, 15, 10, 199, 52, 18, 84, 72, 84,
-			211, 20, 15, 0, 10, 199, 77, 69, 75, 44, 21, 21, 72, 15, 10, 199, 52, 18, 213, 48, 21, 21, 72, 15, 10, 199, 45, 96, 68, 72,
-			21, 21, 72, 15, 10, 199, 44, 243, 15, 72, 21, 21, 72, 15, 10, 199, 5, 4, 1, 72, 21, 21, 72, 15, 8, 197, 24, 19, 148, 60,
-			208, 15, 8, 197, 81, 149, 133, 72, 144, 15, 8, 197, 72, 241, 5, 72, 144, 15, 8, 197, 72, 20, 197, 72, 144, 15, 11, 200, 64, 243,
-			25, 12, 83, 148, 72, 144, 15, 8, 197, 44, 241, 197, 72, 144, 15, 8, 197, 40, 17, 197, 72, 144, 15, 8, 197, 8, 17, 197, 72, 144,
-			15, 8, 197, 44, 243, 147, 84, 208, 15, 0, 11, 200, 36, 212, 18, 36, 208, 84, 85, 32, 15, 9, 198, 80, 244, 211, 21, 34, 64, 15,
-			9, 198, 80, 20, 16, 21, 34, 64, 15, 9, 198, 76, 182, 68, 21, 34, 64, 15, 9, 198, 76, 182, 68, 21, 34, 64, 15, 9, 198, 76,
-			182, 68, 21, 34, 64, 15, 9, 198, 76, 19, 20, 21, 34, 64, 15, 9, 198, 72, 148, 212, 21, 34, 64, 15, 9, 198, 72, 20, 19, 21,
-			34, 64, 15, 12, 201, 72, 16, 149, 48, 148, 212, 21, 34, 64, 15, 12, 201, 56, 21, 20, 21, 35, 196, 21, 34, 64, 15, 9, 198, 52,
-			244, 212, 21, 34, 64, 15, 9, 198, 49, 84, 203, 21, 34, 64, 15, 9, 198, 48, 241, 19, 21, 34, 64, 15, 9, 198, 48, 20, 19, 21,
-			34, 64, 15, 9, 198, 48, 20, 16, 21, 34, 64, 15, 9, 198, 40, 20, 16, 21, 34, 64, 15, 9, 198, 33, 148, 212, 21, 34, 64, 15,
-			9, 198, 25, 84, 203, 21, 34, 64, 15, 9, 198, 24, 81, 20, 21, 34, 64, 15, 9, 198, 17, 32, 80, 21, 34, 64, 15, 9, 198, 12,
-			21, 83, 21, 34, 64, 15, 9, 198, 9, 38, 68, 21, 34, 64, 15, 9, 198, 8, 85, 12, 21, 34, 64, 15, 9, 198, 65, 35, 198, 21,
-			66, 64, 15, 9, 198, 16, 84, 208, 61, 66, 64, 15, 11, 200, 72, 83, 159, 77, 48, 78, 12, 80, 15, 0, 11, 200, 65, 227, 203, 81,
-			35, 202, 21, 32, 15, 9, 198, 4, 229, 9, 24, 243, 137, 15, 0, 12, 201, 44, 243, 131, 21, 52, 201, 60, 225, 82, 15, 12, 201, 44,
-			243, 77, 37, 52, 201, 60, 225, 82, 15, 9, 198, 52, 86, 154, 4, 226, 78, 15, 13, 202, 20, 180, 212, 72, 21, 129, 28, 19, 131, 20,
-			15, 9, 198, 24, 243, 9, 4, 229, 0, 15, 0, 10, 199, 4, 66, 31, 72, 83, 131, 20, 15, 6, 195, 88, 244, 128, 72, 5, 195, 24,
-			244, 128, 0, 9, 198, 33, 145, 18, 60, 98, 76, 15, 10, 199, 60, 36, 197, 73, 96, 78, 76, 15, 0, 9, 198, 29, 32, 70, 60, 227,
-			205, 15, 11, 200, 80, 241, 207, 48, 84, 201, 76, 176, 15, 11, 200, 56, 84, 1, 48, 84, 201, 76, 176, 15, 11, 200, 17, 148, 208, 21,
-			5, 9, 76, 176, 15, 7, 196, 24, 197, 73, 16, 15, 9, 198, 88, 19, 129, 16, 149, 77, 15, 9, 198, 56, 240, 133, 48, 149, 77, 15,
-			10, 199, 65, 35, 196, 84, 49, 78, 80, 15, 10, 199, 60, 97, 137, 12, 144, 78, 80, 15, 10, 199, 36, 226, 149, 72, 144, 78, 80, 15,
-			0, 9, 198, 88, 145, 5, 60, 99, 206, 15, 9, 198, 77, 68, 153, 44, 226, 78, 15, 12, 201, 28, 84, 141, 4, 226, 83, 80, 146, 192,
-			15, 9, 198, 72, 80, 71, 20, 229, 0, 15, 13, 202, 77, 83, 6, 5, 4, 159, 64, 20, 129, 80, 15, 13, 72, 52, 19, 129, 28, 83,
-			69, 57, 64, 21, 0, 47, 0, 12, 201, 65, 35, 208, 124, 65, 85, 80, 146, 192, 15, 9, 198, 36, 211, 65, 56, 83, 147, 15, 9, 198,
-			64, 243, 69, 72, 19, 147, 15, 14, 4, 95, 108, 105, 103, 55, 37, 81, 35, 47, 40, 34, 0, 0, 10, 199, 77, 64, 84, 36, 243, 159,
-			72, 15, 10, 199, 52, 243, 5, 45, 147, 31, 72, 15, 10, 199, 52, 147, 12, 36, 243, 159, 72, 15, 10, 199, 45, 96, 84, 21, 35, 159,
-			72, 15, 10, 199, 33, 83, 65, 56, 149, 31, 72, 15, 10, 199, 16, 242, 212, 72, 147, 159, 72, 15, 0, 9, 198, 53, 144, 197, 48, 149,
-			77, 15, 12, 201, 4, 208, 149, 48, 21, 15, 72, 149, 77, 15, 10, 199, 48, 242, 207, 52, 240, 137, 48, 15, 10, 199, 32, 85, 5, 72,
-			241, 137, 48, 15, 12, 201, 29, 228, 197, 64, 245, 5, 57, 66, 76, 15, 7, 196, 24, 16, 201, 48, 15, 7, 196, 16, 80, 137, 48, 15,
-			9, 198, 24, 244, 148, 36, 227, 128, 15, 7, 196, 48, 81, 193, 48, 15, 14, 70, 76, 50, 23, 20, 150, 128, 89, 84, 136, 47, 89, 0,
-			0, 12, 201, 84, 226, 86, 21, 36, 201, 81, 244, 128, 15, 12, 201, 77, 1, 75, 80, 18, 213, 49, 244, 128, 15, 12, 201, 65, 35, 212,
-			60, 179, 204, 49, 244, 128, 15, 12, 201, 64, 20, 140, 4, 209, 78, 81, 244, 128, 15, 12, 201, 36, 225, 140, 5, 66, 79, 57, 244, 128,
-			15, 12, 201, 21, 99, 204, 85, 66, 79, 57, 244, 128, 15, 12, 201, 16, 148, 195, 37, 3, 9, 57, 244, 128, 15, 8, 197, 8, 83, 154,
-			60, 192, 15, 12, 201, 65, 54, 75, 60, 102, 83, 37, 50, 192, 15, 12, 201, 64, 243, 25, 4, 225, 18, 37, 50, 192, 15, 12, 201, 20,
-			115, 195, 20, 229, 18, 37, 50, 192, 15, 0, 8, 197, 4, 211, 133, 76, 144, 15, 8, 197, 28, 226, 69, 72, 144, 15, 0, 9, 198, 52,
-			19, 162, 72, 194, 71, 15, 10, 199, 44, 244, 144, 61, 35, 9, 28, 15, 10, 199, 28, 241, 22, 36, 195, 9, 28, 15, 12, 201, 29, 147,
-			159, 44, 243, 15, 28, 148, 203, 15, 10, 199, 65, 39, 211, 20, 229, 1, 8, 15, 0, 10, 199, 65, 80, 140, 36, 50, 83, 80, 15, 9,
-			198, 32, 243, 79, 24, 243, 128, 15, 9, 198, 20, 211, 212, 36, 243, 128, 15, 9, 198, 8, 20, 212, 36, 243, 128, 15, 9, 198, 77, 245,
-			20, 21, 34, 64, 15, 9, 198, 54, 147, 12, 21, 34, 64, 15, 9, 198, 45, 245, 20, 21, 34, 64, 15, 10, 199, 8, 241, 6, 125, 33,
-			9, 28, 15, 17, 206, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 53, 9, 76, 176, 15, 17, 206, 20, 180, 201, 77, 65, 78, 80, 144,
-			76, 37, 53, 9, 76, 176, 15, 12, 201, 44, 194, 77, 4, 181, 5, 72, 149, 77, 15, 9, 198, 65, 35, 212, 20, 147, 128, 15, 9, 198,
-			64, 225, 85, 52, 243, 137, 15, 9, 198, 40, 18, 207, 8, 147, 128, 15, 0, 11, 200, 164, 209, 137, 56, 69, 12, 36, 112, 15, 12, 201,
-			60, 213, 133, 45, 51, 5, 48, 145, 192, 15, 12, 201, 48, 19, 132, 24, 198, 71, 80, 145, 192, 15, 12, 201, 45, 32, 77, 64, 80, 71,
-			80, 145, 192, 15, 11, 200, 33, 227, 132, 80, 84, 140, 36, 112, 15, 11, 200, 24, 244, 147, 81, 225, 76, 36, 112, 15, 12, 201, 24, 244,
-			130, 36, 225, 20, 48, 145, 192, 15, 11, 200, 36, 228, 197, 45, 66, 67, 36, 64, 15, 11, 200, 8, 18, 212, 21, 34, 67, 36, 64, 15,
-			10, 199, 21, 81, 1, 36, 211, 206, 36, 15, 12, 201, 45, 32, 77, 64, 80, 71, 80, 145, 192, 15, 8, 197, 84, 224, 201, 4, 192, 15,
-			0, 7, 196, 56, 21, 21, 72, 15, 9, 198, 78, 148, 169, 88, 84, 137, 15, 12, 201, 61, 97, 82, 44, 243, 77, 20, 194, 71, 15, 12,
-			201, 28, 83, 143, 64, 192, 68, 20, 194, 71, 15, 12, 201, 28, 83, 142, 20, 212, 201, 29, 66, 71, 15, 12, 201, 25, 33, 68, 76, 243,
-			77, 20, 194, 71, 15, 12, 201, 20, 161, 78, 16, 243, 77, 20, 194, 71, 15, 12, 201, 20, 101, 5, 73, 98, 83, 20, 194, 71, 15, 0,
-			9, 198, 72, 145, 207, 72, 148, 212, 15, 9, 198, 64, 19, 133, 48, 148, 212, 15, 9, 198, 64, 16, 201, 24, 148, 212, 15, 9, 198, 56,
-			21, 21, 72, 148, 212, 15, 9, 198, 52, 244, 129, 48, 148, 212, 15, 9, 198, 32, 147, 132, 84, 148, 212, 15, 9, 198, 28, 21, 76, 48,
-			148, 212, 15, 9, 198, 25, 85, 21, 72, 148, 212, 15, 9, 198, 24, 147, 129, 48, 148, 212, 15, 9, 198, 16, 148, 137, 28, 148, 212, 15,
-			9, 198, 5, 33, 197, 48, 148, 212, 15, 9, 198, 21, 65, 82, 56, 83, 0, 15, 12, 201, 72, 17, 134, 36, 224, 68, 21, 34, 64, 15,
-			10, 199, 65, 81, 19, 21, 35, 9, 28, 15, 13, 202, 20, 101, 5, 73, 33, 84, 80, 83, 9, 28, 15, 12, 201, 76, 19, 77, 20, 228,
-			213, 72, 145, 64, 15, 9, 198, 44, 244, 132, 36, 19, 0, 15, 9, 198, 4, 67, 73, 72, 19, 0, 15, 0, 8, 197, 8, 19, 139, 165,
-			32, 15, 9, 198, 85, 53, 82, 64, 84, 128, 15, 9, 198, 72, 85, 83, 76, 84, 128, 15, 9, 198, 60, 33, 21, 12, 84, 128, 15, 9,
-			198, 52, 245, 83, 76, 84, 128, 15, 9, 198, 44, 20, 21, 56, 84, 128, 15, 9, 198, 36, 229, 21, 8, 84, 128, 15, 9, 198, 36, 229,
-			15, 56, 84, 128, 15, 9, 198, 36, 225, 21, 12, 84, 128, 15, 9, 198, 8, 20, 213, 56, 84, 128, 15, 9, 198, 4, 195, 15, 44, 84,
-			128, 15, 9, 198, 76, 210, 71, 72, 84, 137, 15, 9, 198, 76, 178, 68, 80, 84, 137, 15, 9, 198, 24, 163, 204, 48, 84, 137, 15, 10,
-			199, 89, 244, 147, 5, 37, 9, 28, 15, 13, 202, 48, 85, 1, 57, 71, 206, 16, 83, 9, 28, 15, 14, 203, 20, 101, 5, 73, 68, 153,
-			44, 177, 76, 36, 112, 15, 9, 198, 32, 81, 197, 52, 243, 137, 15, 7, 196, 88, 149, 129, 80, 15, 0, 9, 198, 44, 245, 5, 48, 85,
-			0, 15, 11, 200, 36, 225, 12, 165, 49, 76, 36, 112, 15, 11, 200, 4, 225, 159, 29, 65, 76, 36, 112, 15, 13, 202, 44, 243, 15, 72,
-			21, 21, 72, 20, 137, 20, 15, 10, 199, 44, 83, 73, 44, 19, 9, 20, 15, 10, 199, 64, 243, 25, 56, 243, 73, 20, 15, 10, 199, 21,
-			96, 78, 28, 83, 9, 20, 15, 10, 199, 48, 83, 137, 56, 148, 205, 20, 15, 9, 198, 88, 83, 133, 104, 144, 78, 15, 9, 198, 60, 65,
-			78, 76, 80, 78, 15, 9, 198, 4, 225, 204, 36, 176, 78, 15, 9, 198, 61, 33, 9, 56, 21, 0, 15, 9, 198, 4, 181, 15, 72, 21,
-			0, 15, 9, 198, 57, 147, 70, 60, 208, 78, 16, 9, 198, 44, 195, 196, 72, 144, 78, 16, 9, 198, 17, 32, 71, 60, 208, 78, 16, 0,
-			26, 67, 52, 149, 0, 65, 37, 47, 15, 49, 84, 121, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 14, 68, 46, 148,
-			143, 52, 49, 132, 51, 6, 108, 65, 0, 15, 12, 201, 88, 83, 2, 20, 128, 71, 20, 194, 71, 15, 12, 201, 32, 245, 133, 17, 48, 71,
-			20, 194, 71, 15, 11, 200, 44, 243, 21, 52, 32, 82, 36, 80, 15, 11, 200, 44, 19, 5, 56, 64, 82, 36, 80, 15, 10, 67, 52, 149,
-			0, 65, 37, 47, 0, 72, 0, 11, 200, 88, 145, 9, 52, 21, 9, 60, 224, 15, 11, 200, 65, 35, 202, 20, 181, 9, 60, 224, 15, 11,
-			200, 56, 243, 73, 56, 21, 9, 60, 224, 15, 11, 200, 45, 83, 85, 48, 21, 9, 60, 224, 15, 11, 200, 44, 243, 139, 72, 85, 9, 60,
-			224, 15, 11, 200, 28, 83, 133, 72, 21, 9, 60, 224, 15, 11, 200, 24, 16, 149, 48, 21, 9, 60, 224, 15, 11, 200, 16, 84, 137, 88,
-			21, 9, 60, 224, 15, 11, 200, 4, 36, 207, 49, 85, 9, 60, 224, 15, 10, 199, 88, 144, 146, 21, 34, 78, 28, 15, 10, 199, 76, 244,
-			148, 21, 34, 78, 28, 15, 10, 199, 76, 84, 150, 21, 34, 78, 28, 15, 10, 199, 76, 21, 84, 21, 34, 78, 28, 15, 10, 199, 73, 83,
-			132, 21, 34, 78, 28, 15, 10, 199, 60, 181, 76, 21, 34, 78, 28, 15, 10, 199, 45, 35, 203, 21, 34, 78, 28, 15, 10, 199, 44, 243,
-			148, 21, 34, 78, 28, 15, 10, 199, 44, 20, 211, 21, 34, 78, 28, 15, 10, 199, 44, 20, 148, 21, 34, 78, 28, 15, 10, 199, 28, 192,
-			83, 21, 34, 78, 28, 15, 10, 199, 16, 244, 211, 21, 34, 78, 28, 15, 10, 199, 16, 85, 137, 21, 34, 78, 28, 15, 10, 199, 9, 35,
-			196, 21, 34, 78, 28, 15, 9, 198, 8, 17, 193, 80, 83, 0, 15, 12, 201, 60, 210, 210, 36, 225, 211, 124, 66, 71, 15, 9, 198, 52,
-			20, 147, 44, 19, 0, 15, 0, 7, 196, 60, 66, 105, 76, 15, 8, 197, 44, 192, 75, 165, 32, 15, 12, 201, 76, 147, 80, 48, 144, 201,
-			80, 85, 0, 15, 9, 198, 56, 20, 193, 48, 84, 133, 15, 9, 198, 24, 192, 78, 44, 84, 133, 15, 9, 198, 24, 147, 5, 80, 84, 133,
-			15, 9, 198, 20, 180, 201, 48, 84, 133, 15, 14, 203, 88, 81, 5, 73, 53, 25, 28, 113, 76, 36, 112, 15, 7, 196, 45, 35, 193, 80,
-			15, 7, 196, 4, 115, 129, 80, 15, 8, 197, 24, 147, 129, 57, 48, 15, 0, 10, 199, 28, 16, 129, 72, 66, 78, 20, 15, 9, 198, 48,
-			144, 133, 72, 144, 78, 15, 9, 198, 32, 243, 132, 85, 32, 78, 15, 9, 198, 5, 4, 1, 72, 21, 0, 15, 9, 198, 77, 80, 139, 85,
-			64, 78, 16, 9, 198, 60, 36, 201, 16, 144, 78, 16, 15, 4, 95, 114, 101, 118, 34, 37, 84, 6, 112, 12, 89, 72, 0, 0, 11, 200,
-			13, 84, 146, 36, 53, 76, 84, 208, 15, 9, 198, 44, 244, 205, 21, 66, 75, 15, 10, 199, 77, 34, 76, 4, 226, 193, 56, 15, 12, 201,
-			48, 16, 137, 60, 65, 78, 80, 19, 0, 15, 14, 4, 95, 50, 88, 111, 47, 6, 129, 84, 13, 50, 14, 0, 0, 8, 197, 50, 146, 130,
-			60, 208, 15, 10, 199, 88, 21, 20, 21, 34, 78, 28, 15, 10, 199, 80, 149, 18, 21, 34, 78, 28, 15, 10, 199, 64, 244, 212, 21, 34,
-			78, 28, 15, 10, 199, 48, 149, 18, 21, 34, 78, 28, 15, 10, 199, 29, 32, 68, 21, 34, 78, 28, 15, 10, 199, 25, 34, 84, 21, 34,
-			78, 28, 15, 10, 199, 25, 34, 83, 21, 34, 78, 28, 15, 10, 199, 20, 195, 216, 21, 34, 78, 28, 15, 10, 199, 17, 32, 71, 21, 34,
-			78, 28, 15, 7, 196, 45, 80, 137, 44, 15, 9, 198, 48, 82, 211, 36, 176, 76, 15, 0, 12, 201, 84, 226, 86, 21, 36, 201, 80, 85,
-			0, 15, 12, 201, 44, 192, 83, 76, 144, 201, 80, 85, 0, 15, 12, 201, 28, 83, 133, 72, 244, 201, 80, 85, 0, 15, 12, 201, 8, 148,
-			15, 48, 20, 137, 80, 85, 0, 15, 12, 201, 76, 181, 70, 24, 81, 1, 72, 149, 77, 15, 12, 201, 44, 243, 77, 37, 52, 207, 72, 149,
-			77, 15, 7, 196, 72, 149, 129, 48, 15, 10, 199, 29, 147, 78, 5, 50, 65, 48, 15, 0, 9, 198, 29, 32, 84, 37, 53, 0, 15, 9,
-			198, 13, 146, 204, 37, 53, 0, 15, 9, 198, 8, 20, 211, 37, 53, 0, 15, 9, 198, 8, 20, 20, 37, 53, 0, 15, 9, 198, 80, 20,
-			5, 81, 49, 82, 15, 9, 198, 77, 66, 76, 37, 49, 82, 15, 9, 198, 76, 50, 1, 81, 65, 82, 15, 9, 198, 72, 85, 149, 72, 65,
-			82, 15, 9, 198, 72, 85, 133, 73, 49, 82, 15, 9, 198, 72, 85, 129, 49, 81, 82, 15, 9, 198, 72, 81, 210, 20, 65, 82, 15, 9,
-			198, 72, 80, 76, 37, 49, 82, 15, 9, 198, 64, 241, 84, 37, 49, 82, 15, 9, 198, 45, 32, 75, 20, 193, 82, 15, 9, 198, 44, 243,
-			12, 4, 33, 82, 15, 9, 198, 44, 19, 132, 37, 49, 82, 15, 9, 198, 36, 67, 204, 37, 49, 82, 15, 9, 198, 24, 19, 148, 5, 49,
-			82, 15, 9, 198, 21, 35, 212, 37, 49, 82, 15, 9, 198, 20, 225, 15, 77, 49, 82, 15, 9, 198, 20, 160, 75, 84, 193, 82, 15, 9,
-			198, 16, 144, 76, 101, 49, 82, 15, 9, 198, 16, 85, 129, 49, 81, 82, 15, 9, 198, 16, 84, 212, 73, 81, 82, 15, 9, 198, 16, 84,
-			12, 61, 145, 82, 15, 9, 198, 4, 225, 204, 37, 49, 82, 15, 9, 198, 4, 113, 210, 5, 97, 82, 15, 14, 203, 124, 181, 137, 48, 144,
-			146, 37, 53, 9, 76, 176, 15, 10, 199, 8, 20, 201, 48, 146, 213, 52, 15, 10, 199, 53, 148, 212, 21, 34, 85, 52, 15, 10, 199, 45,
-			34, 84, 21, 34, 85, 52, 15, 10, 199, 44, 243, 147, 36, 194, 85, 52, 15, 10, 199, 44, 243, 131, 36, 194, 85, 52, 15, 10, 199, 16,
-			85, 84, 21, 34, 85, 52, 15, 7, 196, 4, 115, 206, 36, 15, 9, 198, 72, 148, 5, 57, 49, 82, 15, 9, 198, 8, 241, 197, 57, 49,
-			82, 15, 0, 10, 199, 80, 149, 21, 48, 21, 21, 72, 15, 10, 199, 44, 243, 148, 4, 181, 21, 72, 15, 10, 199, 44, 243, 138, 20, 181,
-			21, 72, 15, 10, 199, 44, 192, 86, 36, 21, 21, 72, 15, 10, 199, 44, 20, 137, 44, 21, 21, 72, 15, 8, 197, 24, 144, 146, 60, 208,
-			15, 9, 198, 73, 244, 207, 56, 225, 82, 15, 14, 203, 20, 180, 208, 21, 34, 77, 20, 229, 5, 72, 80, 15, 11, 200, 8, 20, 212, 5,
-			33, 5, 72, 80, 15, 8, 197, 44, 245, 5, 72, 144, 15, 20, 72, 12, 193, 77, 20, 229, 9, 56, 80, 49, 55, 116, 65, 113, 50, 47,
-			136, 50, 0, 8, 67, 61, 85, 0, 21, 0, 47, 0, 10, 199, 65, 39, 198, 20, 181, 21, 72, 15, 13, 202, 77, 147, 139, 72, 85, 9,
-			77, 66, 83, 44, 15, 13, 202, 76, 84, 1, 72, 21, 9, 77, 66, 83, 44, 15, 13, 202, 52, 147, 137, 52, 19, 9, 77, 66, 83, 44,
-			15, 13, 202, 33, 145, 18, 60, 70, 78, 4, 210, 83, 44, 15, 13, 202, 25, 32, 71, 52, 83, 148, 5, 34, 83, 44, 15, 13, 202, 24,
-			147, 1, 80, 83, 9, 77, 66, 83, 44, 15, 13, 202, 16, 242, 213, 52, 83, 148, 5, 34, 83, 44, 15, 13, 202, 16, 84, 141, 5, 67,
-			204, 60, 114, 83, 44, 15, 13, 202, 9, 35, 205, 5, 67, 204, 60, 114, 83, 44, 15, 13, 202, 5, 34, 201, 80, 82, 212, 60, 226, 83,
-			44, 15, 13, 202, 4, 229, 18, 61, 3, 204, 60, 114, 83, 44, 15, 12, 201, 16, 84, 201, 16, 84, 129, 81, 83, 64, 15, 12, 201, 80,
-			84, 212, 36, 211, 206, 37, 83, 64, 15, 12, 201, 44, 243, 21, 52, 32, 82, 37, 83, 64, 15, 12, 201, 44, 19, 5, 56, 64, 82, 37,
-			83, 64, 15, 9, 198, 45, 96, 82, 81, 50, 84, 15, 16, 4, 95, 114, 102, 120, 34, 47, 34, 39, 83, 55, 115, 49, 89, 0, 0, 9,
-			198, 81, 32, 75, 80, 244, 197, 15, 9, 198, 25, 37, 75, 80, 244, 197, 15, 12, 201, 44, 243, 80, 5, 32, 84, 37, 53, 0, 15, 8,
-			198, 64, 84, 137, 44, 243, 128, 9, 198, 77, 147, 139, 72, 243, 128, 15, 9, 198, 52, 81, 193, 24, 243, 128, 15, 9, 198, 77, 69, 84,
-			80, 84, 137, 15, 9, 198, 8, 84, 133, 16, 84, 137, 15, 17, 206, 77, 84, 18, 4, 224, 84, 85, 32, 76, 37, 53, 9, 76, 176, 15,
-			9, 198, 33, 148, 15, 80, 84, 197, 15, 12, 201, 72, 84, 208, 60, 228, 207, 72, 149, 77, 15, 17, 70, 60, 147, 19, 44, 147, 128, 108,
-			57, 55, 89, 49, 115, 50, 0, 15, 9, 198, 60, 97, 137, 12, 147, 128, 15, 9, 198, 64, 84, 147, 36, 19, 128, 15, 0, 9, 198, 45,
-			103, 211, 81, 84, 128, 15, 12, 201, 8, 83, 133, 16, 146, 212, 36, 225, 82, 68, 12, 201, 77, 80, 150, 20, 229, 9, 60, 225, 82, 15,
-			12, 201, 65, 35, 208, 61, 37, 9, 60, 225, 82, 15, 12, 201, 44, 243, 148, 72, 20, 201, 28, 225, 82, 15, 10, 199, 64, 243, 25, 4,
-			225, 18, 36, 15, 9, 198, 76, 49, 78, 37, 50, 192, 15, 9, 198, 72, 243, 66, 37, 50, 192, 15, 14, 203, 64, 19, 31, 77, 66, 78,
-			20, 228, 201, 76, 176, 15, 9, 198, 37, 35, 206, 37, 50, 192, 15, 9, 198, 36, 176, 82, 37, 50, 192, 15, 10, 199, 44, 20, 5, 48,
-			192, 78, 36, 15, 0, 14, 203, 77, 147, 80, 80, 243, 65, 80, 243, 15, 28, 144, 15, 13, 202, 25, 33, 68, 21, 34, 75, 76, 128, 86,
-			56, 15, 0, 9, 198, 77, 84, 9, 57, 83, 64, 15, 9, 198, 5, 85, 5, 57, 66, 64, 15, 9, 198, 4, 211, 133, 77, 66, 64, 15,
-			0, 11, 200, 80, 242, 211, 36, 179, 204, 60, 112, 15, 9, 198, 76, 209, 76, 80, 84, 137, 15, 9, 198, 76, 194, 75, 44, 84, 137, 15,
-			9, 198, 76, 178, 76, 16, 84, 137, 15, 9, 198, 64, 148, 129, 80, 84, 137, 15, 10, 199, 64, 84, 147, 21, 34, 193, 80, 15, 0, 12,
-			201, 64, 84, 134, 20, 181, 9, 60, 225, 82, 15, 12, 201, 44, 243, 134, 20, 181, 9, 60, 225, 82, 15, 0, 9, 198, 88, 148, 201, 60,
-			231, 210, 15, 9, 198, 80, 83, 80, 61, 39, 210, 15, 9, 198, 76, 82, 210, 21, 71, 210, 15, 9, 198, 48, 149, 20, 21, 39, 210, 15,
-			9, 198, 48, 21, 18, 36, 231, 210, 15, 11, 200, 16, 81, 133, 45, 68, 137, 12, 80, 15, 0, 14, 68, 73, 244, 207, 56, 51, 115, 89,
-			6, 108, 68, 0, 15, 11, 200, 77, 80, 147, 84, 213, 9, 60, 224, 15, 11, 200, 64, 84, 131, 21, 5, 9, 60, 224, 15, 11, 200, 44,
-			243, 131, 21, 5, 9, 60, 224, 15, 11, 200, 20, 180, 197, 45, 85, 9, 60, 224, 15, 11, 200, 80, 147, 19, 45, 244, 133, 72, 144, 15,
-			11, 200, 61, 97, 82, 50, 144, 133, 72, 144, 15, 11, 200, 61, 33, 11, 50, 149, 133, 72, 144, 15, 11, 200, 61, 5, 18, 124, 178, 197,
-			72, 144, 15, 10, 199, 44, 243, 134, 21, 33, 78, 76, 15, 0, 11, 200, 77, 68, 129, 80, 81, 201, 76, 176, 15, 11, 200, 28, 83, 137,
-			80, 149, 137, 76, 176, 15, 11, 200, 17, 148, 204, 20, 181, 9, 76, 176, 15, 15, 204, 64, 20, 140, 4, 209, 78, 80, 20, 137, 44, 84,
-			128, 15, 9, 198, 45, 84, 137, 61, 53, 77, 15, 11, 200, 80, 84, 129, 64, 85, 84, 36, 176, 15, 10, 199, 81, 32, 78, 76, 145, 78,
-			80, 15, 10, 199, 77, 68, 137, 56, 113, 78, 80, 15, 10, 199, 72, 80, 201, 64, 145, 78, 80, 15, 10, 199, 44, 243, 147, 84, 209, 78,
-			80, 15, 12, 201, 36, 229, 5, 72, 84, 211, 20, 229, 0, 15, 12, 201, 36, 229, 5, 48, 194, 71, 20, 229, 0, 15, 10, 199, 16, 149,
-			133, 72, 113, 78, 80, 15, 11, 200, 4, 208, 137, 88, 19, 5, 57, 48, 15, 10, 199, 36, 225, 143, 72, 208, 78, 80, 15, 12, 201, 12,
-			192, 73, 73, 99, 217, 4, 229, 0, 15, 10, 199, 12, 128, 78, 28, 80, 78, 80, 15, 12, 71, 77, 64, 84, 20, 209, 78, 80, 21, 0,
-			47, 0, 10, 199, 64, 19, 9, 56, 68, 143, 52, 15, 9, 198, 77, 80, 141, 5, 34, 78, 15, 18, 70, 9, 83, 12, 21, 66, 78, 71,
-			129, 55, 13, 47, 6, 115, 68, 0, 15, 9, 198, 16, 19, 13, 5, 66, 78, 15, 9, 198, 5, 81, 213, 77, 66, 78, 15, 11, 200, 52,
-			81, 9, 44, 19, 69, 57, 64, 15, 11, 200, 36, 228, 212, 73, 83, 69, 57, 64, 15, 11, 200, 36, 224, 201, 80, 19, 69, 57, 64, 15,
-			21, 72, 56, 243, 131, 32, 19, 1, 57, 64, 50, 108, 50, 91, 13, 55, 6, 121, 68, 0, 15, 0, 17, 67, 52, 145, 192, 65, 35, 57,
-			15, 89, 108, 0, 81, 115, 195, 165, 32, 14, 203, 44, 20, 146, 36, 84, 133, 52, 17, 197, 72, 144, 15, 10, 67, 52, 145, 192, 65, 122,
-			57, 0, 72, 0, 10, 199, 77, 80, 147, 36, 66, 95, 72, 15, 10, 199, 64, 20, 129, 76, 149, 31, 72, 15, 10, 199, 44, 243, 77, 37,
-			52, 223, 72, 15, 10, 199, 8, 147, 143, 45, 83, 31, 72, 15, 10, 199, 72, 84, 201, 77, 65, 78, 76, 15, 10, 199, 52, 243, 147, 81,
-			32, 78, 76, 15, 0, 11, 200, 73, 81, 9, 52, 83, 148, 125, 32, 15, 12, 201, 88, 147, 132, 36, 176, 84, 36, 243, 128, 15, 12, 201,
-			77, 80, 140, 36, 208, 84, 36, 243, 128, 15, 12, 201, 76, 81, 210, 20, 112, 84, 36, 243, 128, 15, 12, 201, 72, 84, 208, 37, 32, 84,
-			36, 243, 128, 15, 12, 201, 72, 83, 1, 45, 48, 84, 36, 243, 128, 15, 12, 201, 72, 82, 204, 4, 208, 84, 36, 243, 128, 15, 12, 201,
-			72, 82, 70, 36, 176, 84, 36, 243, 128, 15, 12, 201, 72, 81, 143, 72, 208, 84, 36, 243, 128, 15, 12, 201, 72, 80, 76, 37, 48, 84,
-			36, 243, 128, 15, 12, 201, 65, 80, 140, 36, 176, 84, 36, 243, 128, 15, 12, 201, 65, 35, 214, 60, 176, 84, 36, 243, 128, 15, 12, 201,
-			64, 84, 141, 85, 64, 84, 36, 243, 128, 15, 12, 201, 44, 244, 144, 61, 32, 84, 36, 243, 128, 15, 12, 201, 44, 243, 138, 84, 112, 84,
-			36, 243, 128, 15, 12, 201, 44, 243, 12, 60, 176, 84, 36, 243, 128, 15, 12, 201, 36, 228, 201, 57, 80, 84, 36, 243, 128, 15, 12, 201,
-			36, 225, 143, 72, 208, 84, 36, 243, 128, 15, 12, 201, 36, 212, 12, 36, 176, 84, 36, 243, 128, 15, 12, 201, 36, 211, 73, 29, 32, 84,
-			36, 243, 128, 15, 12, 201, 32, 16, 137, 81, 80, 84, 36, 243, 128, 15, 12, 201, 29, 32, 86, 37, 64, 84, 36, 243, 128, 15, 12, 201,
-			24, 197, 75, 81, 80, 84, 36, 243, 128, 15, 12, 201, 24, 16, 146, 36, 176, 84, 36, 243, 128, 15, 12, 201, 17, 148, 198, 84, 226, 212,
-			36, 243, 128, 15, 12, 201, 17, 84, 12, 36, 176, 84, 36, 243, 128, 15, 12, 201, 16, 84, 208, 21, 32, 84, 36, 243, 128, 15, 12, 201,
-			16, 84, 18, 37, 96, 84, 36, 243, 128, 15, 12, 201, 16, 83, 65, 72, 176, 84, 36, 243, 128, 15, 12, 201, 16, 82, 204, 5, 32, 84,
-			36, 243, 128, 15, 12, 201, 16, 82, 204, 4, 208, 84, 36, 243, 128, 15, 12, 201, 16, 81, 143, 72, 208, 84, 36, 243, 128, 15, 12, 201,
-			16, 81, 140, 61, 32, 84, 36, 243, 128, 15, 12, 201, 5, 52, 207, 12, 144, 84, 36, 243, 128, 15, 12, 201, 5, 4, 12, 36, 176, 84,
-			36, 243, 128, 15, 12, 201, 4, 178, 204, 4, 208, 84, 36, 243, 128, 15, 12, 201, 4, 97, 137, 72, 208, 84, 36, 243, 128, 15, 7, 196,
-			36, 130, 133, 48, 15, 13, 202, 20, 224, 217, 44, 195, 208, 124, 66, 83, 44, 15, 9, 198, 76, 243, 1, 72, 149, 77, 15, 12, 201, 48,
-			16, 143, 72, 21, 15, 72, 149, 77, 15, 9, 198, 41, 81, 9, 12, 149, 77, 15, 10, 199, 25, 32, 78, 44, 241, 137, 48, 15, 12, 71,
-			52, 19, 147, 24, 145, 76, 16, 21, 0, 47, 9, 68, 12, 240, 67, 32, 21, 0, 47, 0, 12, 201, 74, 147, 148, 28, 83, 143, 48, 241,
-			201, 15, 12, 201, 64, 19, 31, 60, 229, 15, 48, 241, 201, 15, 0, 19, 67, 80, 145, 19, 47, 37, 89, 15, 50, 6, 108, 49, 0, 81,
-			110, 111, 107, 32, 10, 69, 8, 18, 76, 21, 144, 21, 0, 47, 6, 195, 16, 85, 19, 72, 0, 9, 198, 58, 146, 129, 29, 66, 71, 15,
-			9, 198, 4, 225, 31, 29, 66, 71, 15, 9, 198, 4, 99, 95, 29, 66, 71, 15, 9, 198, 58, 146, 129, 29, 66, 71, 15, 14, 4, 95,
-			99, 101, 100, 89, 13, 72, 6, 37, 55, 35, 0, 0, 18, 70, 12, 128, 78, 76, 243, 128, 91, 57, 121, 50, 89, 6, 108, 68, 0, 15,
-			9, 198, 64, 243, 25, 28, 243, 128, 15, 9, 198, 61, 37, 15, 28, 243, 128, 15, 9, 198, 97, 147, 15, 24, 243, 128, 15, 9, 198, 76,
-			84, 211, 36, 243, 128, 15, 9, 198, 64, 20, 211, 36, 243, 128, 15, 9, 198, 61, 2, 78, 36, 243, 128, 15, 9, 198, 52, 148, 211, 36,
-			243, 128, 15, 9, 198, 21, 96, 83, 36, 243, 128, 15, 9, 198, 76, 182, 76, 48, 84, 137, 15, 9, 198, 44, 21, 129, 48, 84, 137, 15,
-			12, 201, 77, 84, 208, 20, 228, 207, 72, 149, 77, 15, 12, 201, 44, 243, 147, 37, 53, 15, 72, 149, 77, 15, 9, 198, 77, 65, 65, 72,
-			147, 128, 15, 9, 198, 65, 70, 65, 48, 147, 128, 15, 9, 198, 37, 99, 210, 36, 19, 128, 15, 9, 198, 9, 33, 84, 4, 115, 128, 15,
-			9, 198, 88, 85, 5, 72, 19, 128, 16, 9, 198, 53, 149, 15, 52, 19, 128, 16, 13, 70, 13, 35, 213, 80, 243, 128, 21, 102, 114, 0,
-			47, 0, 9, 198, 5, 52, 197, 77, 51, 210, 15, 11, 200, 60, 212, 212, 164, 65, 76, 36, 112, 15, 11, 200, 48, 20, 212, 89, 244, 132,
-			36, 112, 15, 11, 200, 34, 146, 148, 36, 65, 76, 36, 112, 15, 11, 200, 28, 195, 210, 89, 244, 132, 36, 112, 15, 10, 199, 44, 244, 205,
-			60, 115, 206, 36, 15, 8, 66, 60, 112, 108, 0, 76, 8, 0, 10, 199, 80, 84, 141, 37, 53, 15, 72, 15, 12, 201, 88, 147, 132, 76,
-			178, 66, 20, 194, 71, 15, 12, 201, 45, 83, 147, 80, 103, 210, 16, 145, 192, 15, 12, 201, 24, 244, 141, 60, 65, 78, 80, 194, 71, 15,
-			11, 200, 16, 241, 5, 44, 17, 143, 56, 144, 15, 0, 10, 199, 45, 33, 80, 21, 35, 9, 28, 15, 10, 199, 4, 228, 214, 5, 35, 9,
-			28, 15, 9, 198, 64, 20, 129, 56, 242, 68, 15, 12, 201, 76, 181, 70, 24, 81, 1, 72, 145, 64, 15, 12, 201, 44, 243, 77, 37, 52,
-			207, 72, 145, 64, 15, 9, 198, 61, 3, 211, 77, 83, 64, 15, 9, 198, 36, 226, 84, 36, 19, 0, 15, 0, 9, 198, 8, 147, 205, 21,
-			68, 137, 15, 11, 200, 81, 35, 211, 45, 147, 4, 36, 112, 15, 11, 200, 76, 181, 82, 44, 17, 212, 36, 112, 15, 10, 199, 65, 229, 1,
-			28, 83, 9, 28, 15, 11, 200, 61, 34, 193, 56, 17, 212, 36, 112, 15, 11, 200, 56, 21, 142, 45, 83, 132, 36, 112, 15, 11, 200, 45,
-			32, 77, 64, 17, 212, 36, 112, 15, 11, 200, 44, 243, 4, 76, 147, 132, 36, 112, 15, 11, 200, 44, 193, 74, 56, 211, 196, 36, 112, 15,
-			11, 200, 25, 38, 71, 80, 17, 212, 36, 112, 15, 11, 200, 16, 81, 137, 56, 84, 140, 36, 112, 15, 8, 197, 36, 229, 5, 57, 48, 15,
-			7, 196, 56, 245, 1, 80, 15, 7, 196, 24, 197, 65, 80, 15, 7, 196, 8, 21, 1, 80, 15, 11, 200, 76, 181, 82, 44, 17, 212, 36,
-			112, 15, 11, 200, 45, 32, 77, 64, 17, 212, 36, 112, 15, 11, 200, 25, 38, 71, 80, 17, 212, 36, 112, 15, 0, 12, 201, 46, 144, 133,
-			56, 128, 86, 56, 84, 137, 15, 10, 199, 88, 242, 193, 48, 148, 205, 20, 15, 10, 199, 77, 67, 201, 12, 148, 205, 20, 15, 10, 199, 64,
-			16, 201, 24, 148, 205, 20, 15, 10, 199, 56, 243, 65, 16, 148, 205, 20, 15, 10, 199, 52, 244, 129, 48, 148, 205, 20, 15, 10, 199, 45,
-			98, 69, 80, 148, 205, 20, 15, 10, 199, 24, 19, 129, 80, 148, 205, 20, 15, 0, 12, 201, 4, 208, 84, 165, 32, 71, 80, 145, 192, 15,
-			11, 200, 4, 229, 5, 64, 83, 132, 36, 80, 15, 12, 201, 76, 83, 148, 36, 209, 78, 80, 19, 0, 15, 0, 11, 200, 72, 85, 143, 49,
-			85, 9, 60, 224, 15, 11, 200, 72, 84, 207, 49, 85, 9, 60, 224, 15, 11, 200, 60, 178, 213, 64, 21, 9, 60, 224, 15, 11, 200, 56,
-			21, 137, 28, 21, 9, 60, 224, 15, 11, 200, 52, 241, 5, 72, 21, 9, 60, 224, 15, 11, 200, 45, 96, 68, 72, 21, 9, 60, 224, 15,
-			11, 200, 44, 20, 212, 72, 21, 9, 60, 224, 15, 11, 200, 36, 227, 143, 88, 21, 9, 60, 224, 15, 11, 200, 16, 85, 15, 56, 21, 9,
-			60, 224, 15, 11, 200, 16, 82, 207, 72, 21, 9, 60, 224, 15, 11, 200, 5, 85, 15, 52, 21, 9, 60, 224, 15, 11, 200, 5, 4, 1,
-			72, 149, 9, 60, 224, 15, 11, 200, 4, 227, 143, 80, 21, 9, 60, 224, 15, 11, 200, 4, 33, 9, 44, 21, 9, 60, 224, 15, 10, 199,
-			89, 84, 132, 21, 34, 78, 28, 15, 10, 199, 80, 245, 80, 21, 34, 78, 28, 15, 10, 199, 80, 19, 135, 21, 34, 78, 28, 15, 10, 199,
-			77, 83, 77, 21, 34, 78, 28, 15, 10, 199, 73, 82, 78, 21, 34, 78, 28, 15, 10, 199, 72, 19, 135, 21, 34, 78, 28, 15, 10, 199,
-			64, 192, 67, 21, 34, 78, 28, 15, 10, 199, 64, 21, 83, 21, 34, 78, 28, 15, 10, 199, 53, 83, 132, 21, 34, 78, 28, 15, 10, 199,
-			52, 20, 203, 21, 34, 78, 28, 15, 10, 199, 52, 20, 139, 21, 34, 78, 28, 15, 10, 199, 48, 243, 135, 21, 34, 78, 28, 15, 10, 199,
-			48, 147, 138, 21, 34, 78, 28, 15, 10, 199, 44, 16, 200, 21, 34, 78, 28, 15, 10, 199, 25, 83, 132, 21, 34, 78, 28, 15, 10, 199,
-			24, 244, 131, 21, 34, 78, 28, 15, 10, 199, 21, 35, 196, 21, 34, 78, 28, 15, 10, 199, 20, 66, 84, 21, 34, 78, 28, 15, 10, 199,
-			16, 146, 212, 21, 34, 78, 28, 15, 9, 198, 77, 3, 210, 80, 83, 0, 15, 11, 200, 84, 197, 18, 4, 208, 82, 36, 224, 15, 0, 7,
-			196, 64, 243, 5, 80, 15, 7, 196, 64, 19, 5, 80, 15, 12, 201, 65, 33, 84, 38, 148, 201, 80, 85, 0, 15, 12, 201, 65, 33, 67,
-			38, 148, 201, 80, 85, 0, 15, 7, 196, 88, 148, 201, 80, 15, 9, 198, 21, 33, 207, 56, 243, 73, 15, 9, 198, 8, 192, 83, 24, 83,
-			73, 15, 7, 196, 76, 19, 1, 80, 15, 0, 7, 66, 57, 144, 50, 129, 0, 8, 197, 52, 17, 137, 165, 48, 15, 9, 198, 81, 32, 75,
-			82, 148, 128, 15, 10, 199, 29, 33, 78, 4, 66, 78, 20, 15, 9, 198, 100, 83, 69, 56, 149, 0, 15, 9, 198, 16, 83, 132, 72, 149,
-			0, 15, 9, 198, 88, 19, 137, 48, 194, 78, 15, 12, 201, 52, 225, 77, 61, 65, 75, 56, 146, 192, 15, 6, 195, 85, 96, 78, 16, 0,
-			6, 195, 56, 115, 192, 13, 0, 10, 199, 80, 19, 10, 21, 34, 78, 28, 15, 10, 199, 76, 145, 206, 21, 34, 78, 28, 15, 10, 199, 65,
-			83, 19, 21, 34, 78, 28, 15, 10, 199, 37, 34, 83, 21, 34, 78, 28, 15, 10, 199, 33, 145, 18, 21, 34, 78, 28, 15, 10, 199, 25,
-			84, 142, 21, 34, 78, 28, 15, 10, 199, 9, 81, 211, 21, 34, 78, 28, 15, 13, 202, 76, 19, 141, 5, 34, 78, 21, 50, 83, 44, 15,
-			13, 202, 45, 38, 80, 80, 241, 210, 4, 98, 83, 44, 15, 13, 202, 44, 194, 77, 5, 67, 204, 60, 114, 83, 44, 15, 20, 4, 95, 99,
-			97, 112, 89, 47, 39, 108, 47, 15, 71, 39, 40, 89, 47, 35, 58, 0, 0, 12, 201, 77, 84, 16, 61, 50, 84, 36, 243, 128, 15, 12,
-			201, 52, 19, 149, 17, 82, 212, 36, 243, 128, 15, 12, 201, 45, 98, 78, 80, 147, 12, 36, 243, 128, 15, 12, 201, 44, 243, 138, 84, 226,
-			212, 36, 243, 128, 15, 12, 201, 36, 228, 212, 37, 69, 84, 36, 243, 128, 15, 12, 201, 36, 226, 214, 37, 50, 84, 36, 243, 128, 15, 12,
-			201, 20, 180, 212, 36, 226, 212, 36, 243, 128, 15, 12, 201, 20, 180, 208, 61, 50, 84, 36, 243, 128, 15, 12, 201, 16, 148, 212, 36, 226,
-			212, 36, 243, 128, 15, 12, 201, 16, 148, 208, 61, 50, 84, 36, 243, 128, 15, 12, 201, 16, 84, 212, 73, 82, 212, 36, 243, 128, 15, 10,
-			199, 28, 83, 196, 125, 66, 83, 44, 15, 9, 198, 52, 243, 69, 57, 69, 77, 15, 10, 199, 88, 81, 197, 80, 16, 137, 48, 15, 10, 199,
-			52, 84, 139, 4, 229, 9, 48, 15, 7, 196, 52, 85, 1, 48, 15, 7, 196, 48, 85, 1, 48, 15, 7, 196, 24, 21, 1, 48, 15, 0,
-			17, 6, 100, 110, 97, 39, 101, 116, 72, 114, 116, 50, 6, 118, 14, 86, 0, 9, 67, 60, 116, 222, 109, 89, 14, 0, 9, 198, 77, 80,
-			140, 36, 209, 82, 15, 9, 198, 65, 35, 214, 60, 177, 82, 15, 9, 198, 65, 35, 212, 20, 113, 82, 15, 9, 198, 64, 150, 154, 36, 177,
-			82, 15, 9, 198, 36, 228, 208, 36, 49, 82, 15, 9, 198, 20, 180, 197, 72, 49, 82, 15, 9, 198, 17, 84, 12, 36, 49, 82, 15, 9,
-			198, 5, 52, 207, 12, 145, 82, 15, 9, 198, 4, 66, 149, 56, 113, 82, 15, 10, 199, 16, 84, 15, 76, 149, 21, 52, 15, 0, 14, 203,
-			8, 244, 148, 5, 82, 212, 36, 243, 133, 72, 80, 15, 14, 203, 65, 54, 75, 60, 19, 129, 49, 148, 197, 72, 80, 15, 6, 195, 45, 83,
-			128, 72, 0, 13, 202, 76, 83, 73, 56, 20, 137, 77, 66, 83, 44, 15, 13, 202, 72, 85, 77, 5, 67, 204, 60, 114, 83, 44, 15, 13,
-			202, 65, 35, 212, 21, 53, 1, 57, 66, 83, 44, 15, 13, 202, 52, 243, 133, 80, 20, 137, 77, 66, 83, 44, 15, 13, 202, 52, 85, 5,
-			61, 35, 204, 60, 114, 83, 44, 15, 13, 202, 45, 96, 75, 76, 19, 22, 21, 34, 83, 44, 15, 13, 202, 44, 244, 205, 61, 3, 204, 37,
-			66, 83, 44, 15, 13, 202, 44, 243, 148, 72, 17, 129, 45, 66, 83, 44, 15, 13, 202, 28, 20, 212, 72, 244, 203, 61, 2, 83, 44, 15,
-			13, 202, 24, 243, 11, 48, 244, 137, 77, 66, 83, 44, 15, 13, 202, 20, 193, 75, 81, 35, 204, 101, 66, 83, 44, 15, 13, 202, 16, 148,
-			12, 60, 208, 84, 5, 34, 83, 44, 15, 13, 202, 4, 229, 1, 28, 243, 137, 77, 66, 83, 44, 15, 13, 202, 4, 224, 75, 72, 243, 137,
-			77, 66, 83, 44, 15, 13, 202, 4, 195, 5, 72, 115, 204, 60, 114, 83, 44, 15, 9, 198, 56, 243, 142, 21, 66, 84, 15, 0, 17, 70,
-			48, 144, 73, 76, 243, 128, 55, 37, 117, 89, 6, 108, 68, 0, 15, 17, 70, 8, 195, 213, 76, 243, 128, 71, 55, 40, 89, 6, 108, 68,
-			0, 15, 9, 198, 60, 181, 15, 28, 243, 128, 15, 9, 198, 64, 243, 25, 24, 243, 128, 15, 14, 203, 77, 65, 78, 60, 116, 129, 24, 84,
-			137, 56, 112, 15, 14, 203, 72, 85, 137, 80, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 64, 20, 212, 21, 84, 137, 76, 84, 137, 56,
-			112, 15, 14, 203, 64, 19, 1, 80, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 52, 243, 143, 64, 243, 9, 76, 84, 137, 56, 112, 15,
-			14, 203, 44, 21, 1, 48, 241, 201, 76, 84, 137, 56, 112, 15, 14, 203, 36, 225, 15, 45, 68, 137, 56, 84, 137, 56, 112, 15, 14, 203,
-			32, 82, 212, 60, 116, 129, 24, 84, 137, 56, 112, 15, 14, 203, 24, 81, 5, 72, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 20, 180,
-			212, 20, 212, 15, 72, 84, 137, 56, 112, 15, 14, 203, 16, 145, 201, 80, 19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 12, 128, 80, 80,
-			19, 9, 76, 84, 137, 56, 112, 15, 14, 203, 4, 100, 137, 44, 19, 137, 76, 84, 137, 56, 112, 15, 14, 203, 20, 193, 75, 81, 35, 211,
-			80, 21, 9, 76, 176, 15, 11, 200, 16, 151, 212, 21, 66, 75, 21, 32, 15, 12, 201, 88, 242, 193, 9, 83, 1, 72, 149, 77, 15, 9,
-			198, 76, 18, 210, 37, 53, 9, 15, 9, 198, 88, 149, 1, 52, 147, 128, 15, 9, 198, 72, 21, 133, 48, 147, 128, 15, 9, 198, 64, 85,
-			9, 16, 147, 128, 15, 9, 198, 53, 81, 90, 104, 147, 128, 15, 9, 198, 52, 17, 193, 76, 147, 128, 15, 9, 198, 44, 84, 129, 80, 147,
-			128, 15, 9, 198, 36, 228, 213, 48, 147, 128, 15, 9, 198, 5, 68, 143, 64, 147, 128, 15, 9, 198, 4, 192, 149, 52, 147, 128, 15, 9,
-			198, 44, 20, 21, 12, 147, 128, 15, 9, 198, 4, 100, 137, 44, 19, 128, 15, 9, 198, 65, 148, 143, 52, 19, 128, 16, 9, 198, 61, 69,
-			15, 52, 19, 128, 16, 9, 198, 9, 32, 72, 52, 19, 128, 16, 0, 9, 198, 4, 225, 204, 37, 53, 0, 15, 0, 13, 69, 77, 145, 14,
-			21, 144, 89, 111, 72, 50, 111, 0, 0, 7, 196, 64, 243, 31, 72, 15, 7, 196, 77, 244, 207, 56, 15, 9, 198, 21, 36, 129, 81, 83,
-			64, 15, 9, 198, 37, 34, 68, 37, 83, 64, 15, 8, 197, 72, 83, 148, 4, 32, 15, 0, 11, 200, 44, 194, 77, 5, 67, 204, 60, 112,
-			15, 9, 198, 77, 147, 77, 21, 68, 137, 15, 10, 199, 56, 18, 211, 44, 245, 137, 80, 15, 0, 12, 201, 65, 39, 198, 4, 36, 137, 44,
-			84, 128, 15, 12, 201, 65, 35, 199, 56, 244, 212, 36, 49, 82, 15, 15, 204, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 49, 82, 15,
-			12, 201, 16, 144, 71, 56, 244, 212, 36, 49, 82, 15, 18, 207, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 212, 37, 50, 192, 15,
-			8, 197, 44, 195, 210, 36, 64, 15, 8, 197, 33, 145, 18, 36, 64, 15, 9, 198, 21, 98, 68, 20, 229, 0, 15, 9, 198, 4, 208, 82,
-			4, 229, 0, 15, 0, 9, 198, 65, 80, 133, 73, 71, 210, 15, 9, 198, 5, 32, 137, 81, 39, 210, 15, 16, 205, 36, 229, 5, 72, 224,
-			84, 36, 243, 129, 48, 148, 197, 72, 15, 13, 202, 20, 180, 203, 60, 211, 85, 56, 146, 197, 72, 15, 18, 70, 52, 17, 206, 36, 98, 75,
-			65, 117, 68, 37, 83, 6, 37, 49, 0, 15, 11, 200, 12, 19, 79, 84, 99, 1, 28, 80, 15, 0, 7, 196, 52, 243, 31, 72, 15, 11,
-			200, 72, 81, 146, 4, 181, 9, 60, 224, 15, 11, 200, 44, 243, 150, 20, 229, 9, 60, 224, 15, 9, 198, 45, 34, 77, 36, 224, 76, 15,
-			9, 198, 36, 225, 15, 48, 83, 148, 15, 9, 198, 25, 32, 71, 52, 83, 148, 15, 9, 198, 20, 195, 203, 88, 83, 148, 15, 9, 198, 36,
-			226, 31, 72, 83, 147, 15, 9, 198, 80, 84, 141, 36, 224, 76, 15, 9, 198, 72, 85, 133, 73, 48, 76, 15, 9, 198, 32, 244, 141, 60,
-			224, 76, 15, 9, 198, 16, 144, 71, 60, 224, 76, 15, 9, 198, 53, 84, 201, 44, 19, 148, 15, 9, 198, 48, 16, 143, 72, 19, 148, 15,
-			9, 198, 36, 115, 143, 72, 19, 148, 15, 9, 198, 17, 81, 76, 48, 19, 148, 15, 0, 9, 198, 164, 179, 204, 60, 114, 64, 15, 10, 199,
-			44, 243, 69, 16, 144, 78, 80, 15, 0, 8, 197, 77, 69, 80, 36, 64, 15, 9, 198, 61, 5, 76, 20, 229, 0, 15, 9, 198, 24, 19,
-			12, 20, 229, 0, 15, 9, 198, 17, 32, 66, 4, 229, 0, 15, 0, 14, 68, 5, 33, 207, 56, 6, 35, 34, 81, 108, 50, 0, 15, 14,
-			203, 37, 36, 133, 48, 145, 201, 165, 50, 84, 21, 64, 15, 12, 201, 81, 32, 78, 76, 49, 78, 16, 83, 147, 15, 12, 201, 24, 244, 198,
-			61, 33, 83, 12, 83, 147, 15, 7, 196, 8, 242, 129, 56, 16, 4, 193, 188, 43, 0, 12, 201, 60, 101, 1, 48, 211, 204, 60, 114, 64,
-			15, 12, 201, 48, 20, 153, 56, 115, 204, 60, 114, 64, 15, 12, 201, 24, 20, 141, 4, 179, 204, 60, 114, 64, 15, 13, 202, 80, 84, 141,
-			61, 3, 1, 77, 66, 83, 44, 15, 13, 202, 76, 83, 147, 84, 19, 9, 77, 66, 83, 44, 15, 13, 202, 72, 85, 129, 56, 50, 9, 77,
-			66, 83, 44, 15, 13, 202, 56, 20, 131, 37, 52, 201, 77, 66, 83, 44, 15, 13, 202, 52, 243, 143, 64, 243, 9, 77, 66, 83, 44, 15,
-			13, 202, 48, 81, 201, 80, 147, 73, 77, 66, 83, 44, 15, 13, 202, 44, 192, 83, 76, 144, 201, 77, 66, 83, 44, 15, 13, 202, 24, 81,
-			5, 72, 19, 9, 77, 66, 83, 44, 15, 13, 202, 20, 180, 212, 72, 83, 73, 77, 66, 83, 44, 15, 9, 198, 52, 83, 79, 72, 144, 76,
-			15, 9, 198, 16, 144, 75, 60, 224, 76, 15, 0, 10, 199, 76, 82, 212, 61, 34, 69, 48, 15, 10, 199, 64, 245, 5, 57, 66, 69, 48,
-			15, 10, 199, 21, 52, 197, 57, 66, 69, 48, 15, 10, 199, 8, 18, 212, 21, 34, 69, 48, 15, 10, 199, 77, 3, 206, 17, 242, 83, 44,
-			15, 10, 199, 61, 34, 197, 77, 68, 129, 48, 15, 10, 199, 21, 2, 83, 44, 244, 1, 48, 15, 0, 17, 206, 16, 145, 134, 21, 33, 78,
-			80, 144, 66, 36, 194, 84, 21, 64, 15, 10, 199, 88, 145, 5, 60, 116, 129, 52, 15, 10, 199, 77, 65, 78, 60, 116, 129, 52, 15, 10,
-			199, 64, 83, 148, 4, 116, 129, 52, 15, 10, 199, 32, 82, 211, 4, 116, 129, 52, 15, 8, 197, 64, 244, 212, 36, 192, 15, 12, 201, 76,
-			145, 206, 36, 98, 75, 4, 228, 192, 15, 0, 0, 11, 200, 29, 147, 159, 44, 243, 15, 28, 144, 15, 14, 203, 81, 32, 78, 77, 50, 210,
-			37, 5, 9, 60, 224, 15, 13, 202, 65, 39, 206, 84, 209, 82, 5, 66, 79, 56, 15, 14, 203, 56, 85, 84, 72, 19, 9, 76, 21, 9,
-			60, 224, 15, 14, 203, 56, 21, 21, 72, 19, 9, 76, 21, 9, 60, 224, 15, 14, 203, 20, 180, 208, 72, 244, 18, 36, 21, 9, 60, 224,
-			15, 14, 203, 16, 81, 137, 9, 34, 76, 48, 21, 9, 60, 224, 15, 13, 202, 44, 147, 133, 76, 147, 204, 60, 114, 83, 44, 15, 8, 197,
-			44, 20, 197, 36, 224, 15, 8, 197, 84, 180, 129, 36, 224, 15, 10, 199, 46, 144, 133, 56, 128, 86, 56, 15, 8, 197, 44, 244, 133, 4,
-			224, 15, 8, 197, 44, 83, 153, 4, 224, 15, 0, 12, 201, 77, 1, 75, 81, 35, 199, 72, 17, 128, 15, 0, 9, 198, 80, 18, 211, 5,
-			67, 210, 15, 8, 197, 45, 33, 83, 60, 192, 15, 7, 196, 80, 244, 20, 36, 15, 0, 10, 199, 64, 192, 71, 36, 21, 15, 72, 15, 7,
-			196, 80, 20, 133, 72, 15, 15, 204, 4, 231, 211, 80, 84, 201, 60, 195, 199, 37, 50, 192, 15, 21, 72, 80, 244, 148, 20, 195, 9, 56,
-			144, 47, 108, 47, 13, 55, 6, 37, 50, 37, 0, 15, 0, 9, 198, 81, 227, 13, 60, 66, 71, 15, 9, 198, 34, 146, 141, 60, 66, 71,
-			15, 9, 198, 4, 97, 159, 48, 66, 71, 15, 0, 12, 201, 80, 245, 1, 48, 148, 193, 80, 244, 128, 15, 12, 201, 72, 84, 212, 5, 84,
-			129, 80, 244, 128, 15, 12, 201, 61, 33, 193, 56, 148, 193, 80, 244, 128, 15, 12, 201, 44, 243, 15, 56, 148, 193, 80, 244, 128, 15, 12,
-			201, 44, 21, 1, 49, 148, 193, 80, 244, 128, 15, 12, 201, 16, 84, 212, 36, 195, 1, 80, 244, 128, 15, 10, 199, 65, 229, 137, 76, 83,
-			9, 28, 15, 10, 199, 34, 146, 129, 16, 83, 9, 28, 15, 0, 9, 198, 77, 65, 82, 60, 145, 0, 15, 9, 198, 52, 81, 193, 48, 149,
-			0, 15, 9, 198, 8, 19, 19, 4, 210, 78, 15, 9, 198, 48, 85, 129, 57, 66, 78, 15, 9, 198, 5, 33, 197, 57, 66, 78, 15, 9,
-			198, 64, 146, 197, 72, 85, 0, 15, 9, 198, 81, 32, 75, 80, 21, 0, 15, 9, 198, 72, 83, 211, 80, 21, 0, 15, 9, 198, 5, 85,
-			15, 52, 21, 0, 15, 0, 12, 201, 81, 34, 75, 36, 226, 15, 48, 66, 71, 15, 12, 201, 48, 245, 141, 20, 66, 15, 48, 66, 71, 15,
-			12, 201, 81, 32, 78, 77, 97, 82, 76, 19, 0, 15, 0, 9, 198, 44, 20, 18, 36, 243, 0, 15, 6, 195, 84, 226, 84, 15, 9, 198,
-			5, 84, 212, 72, 19, 0, 15, 0, 10, 199, 81, 39, 206, 21, 34, 78, 28, 15, 12, 201, 45, 38, 83, 80, 19, 12, 60, 145, 0, 15,
-			12, 201, 45, 33, 65, 80, 147, 206, 37, 51, 69, 15, 12, 201, 16, 148, 212, 72, 18, 5, 72, 85, 0, 15, 7, 196, 80, 243, 65, 80,
-			15, 0, 9, 198, 21, 65, 82, 56, 149, 0, 15, 9, 198, 9, 35, 206, 44, 149, 0, 15, 9, 198, 28, 198, 67, 21, 34, 78, 15, 13,
-			202, 24, 244, 130, 73, 81, 197, 72, 148, 205, 20, 15, 9, 198, 76, 178, 86, 28, 21, 0, 15, 9, 198, 45, 96, 68, 72, 21, 0, 15,
-			9, 198, 36, 228, 212, 4, 228, 192, 15, 0, 9, 198, 28, 195, 210, 38, 148, 192, 15, 9, 198, 4, 211, 213, 74, 148, 192, 15, 7, 196,
-			29, 86, 65, 56, 15, 0, 8, 197, 56, 85, 82, 60, 224, 15, 13, 202, 88, 84, 130, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 81,
-			148, 129, 56, 226, 83, 21, 34, 78, 28, 15, 13, 202, 77, 65, 82, 36, 194, 83, 21, 34, 78, 28, 15, 13, 202, 77, 64, 66, 36, 194,
-			83, 21, 34, 78, 28, 15, 13, 202, 76, 145, 206, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 52, 85, 1, 48, 194, 83, 21, 34, 78,
-			28, 15, 13, 202, 52, 20, 203, 36, 226, 83, 21, 34, 78, 28, 15, 13, 202, 32, 20, 141, 60, 226, 83, 21, 34, 78, 28, 15, 13, 202,
-			28, 84, 141, 4, 226, 83, 21, 34, 78, 28, 15, 13, 202, 28, 19, 22, 4, 226, 83, 21, 34, 78, 28, 15, 13, 202, 16, 149, 137, 76,
-			147, 206, 21, 34, 78, 28, 15, 13, 202, 8, 19, 11, 4, 226, 83, 21, 34, 78, 28, 15, 13, 202, 4, 32, 78, 16, 243, 142, 21, 34,
-			78, 28, 15, 8, 197, 32, 84, 143, 36, 224, 15, 0, 11, 200, 76, 181, 129, 17, 35, 206, 165, 32, 15, 11, 200, 28, 19, 22, 4, 226,
-			83, 165, 32, 15, 13, 202, 21, 84, 143, 65, 242, 83, 21, 34, 78, 28, 15, 14, 203, 4, 195, 5, 28, 244, 137, 76, 84, 137, 56, 112,
-			15, 10, 199, 65, 35, 202, 20, 181, 9, 48, 15, 10, 199, 8, 144, 140, 36, 241, 137, 48, 15, 12, 201, 20, 208, 78, 12, 148, 5, 72,
-			85, 0, 15, 7, 196, 72, 246, 65, 48, 15, 0, 9, 198, 81, 37, 66, 4, 69, 82, 15, 9, 198, 45, 84, 150, 5, 69, 82, 15, 15,
-			204, 64, 84, 147, 60, 226, 70, 36, 49, 82, 36, 225, 192, 15, 15, 204, 52, 20, 203, 84, 194, 78, 37, 49, 82, 36, 225, 192, 15, 10,
-			199, 5, 53, 18, 60, 227, 205, 36, 15, 8, 197, 17, 82, 212, 36, 192, 15, 8, 197, 12, 242, 84, 4, 192, 15, 9, 68, 48, 84, 143,
-			100, 21, 0, 47, 0, 13, 202, 88, 84, 147, 36, 98, 75, 5, 66, 79, 56, 15, 13, 202, 77, 65, 82, 36, 194, 83, 5, 66, 79, 56,
-			15, 13, 202, 77, 1, 67, 36, 98, 75, 5, 66, 79, 56, 15, 13, 202, 76, 240, 201, 4, 194, 83, 5, 66, 79, 56, 15, 13, 202, 72,
-			83, 79, 57, 53, 18, 5, 66, 79, 56, 15, 13, 202, 53, 148, 212, 36, 98, 75, 5, 66, 79, 56, 15, 13, 202, 44, 243, 131, 20, 229,
-			18, 5, 66, 79, 56, 15, 13, 202, 36, 229, 5, 73, 35, 199, 5, 66, 79, 56, 15, 13, 202, 29, 32, 84, 36, 98, 75, 5, 66, 79,
-			56, 15, 13, 202, 16, 83, 79, 57, 53, 18, 5, 66, 79, 56, 15, 12, 201, 40, 245, 82, 56, 19, 9, 77, 66, 75, 15, 8, 197, 53,
-			244, 139, 5, 64, 15, 0, 14, 203, 77, 66, 71, 52, 21, 9, 76, 21, 9, 60, 224, 15, 14, 203, 53, 83, 20, 37, 3, 9, 44, 21,
-			9, 60, 224, 15, 14, 203, 36, 211, 79, 8, 147, 9, 76, 21, 9, 60, 224, 15, 14, 203, 28, 83, 133, 72, 19, 9, 76, 21, 9, 60,
-			224, 15, 14, 203, 16, 148, 203, 72, 147, 73, 56, 21, 9, 60, 224, 15, 14, 203, 5, 4, 18, 60, 180, 201, 52, 21, 9, 60, 224, 15,
-			13, 202, 88, 84, 147, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 72, 82, 212, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 64, 20,
-			129, 24, 98, 78, 21, 34, 78, 28, 15, 13, 202, 52, 244, 148, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 45, 96, 76, 36, 98, 67,
-			21, 34, 78, 28, 15, 13, 202, 44, 243, 131, 20, 229, 18, 21, 34, 78, 28, 15, 16, 205, 44, 243, 77, 21, 32, 201, 4, 194, 83, 21,
-			34, 78, 28, 15, 16, 205, 36, 225, 9, 88, 145, 21, 4, 194, 83, 21, 34, 78, 28, 15, 13, 202, 25, 32, 75, 80, 147, 206, 21, 34,
-			78, 28, 15, 13, 202, 12, 84, 148, 36, 98, 67, 21, 34, 78, 28, 15, 6, 195, 72, 83, 204, 15, 8, 197, 52, 84, 137, 4, 224, 16,
-			9, 68, 52, 16, 200, 60, 21, 0, 47, 0, 9, 198, 12, 130, 70, 24, 243, 128, 15, 9, 198, 80, 83, 147, 36, 243, 128, 15, 9, 198,
-			64, 83, 147, 36, 243, 128, 15, 9, 198, 21, 35, 211, 36, 243, 128, 15, 8, 197, 64, 199, 196, 21, 32, 15, 9, 198, 36, 225, 21, 77,
-			68, 137, 15, 9, 198, 48, 19, 143, 48, 147, 128, 15, 9, 198, 24, 83, 73, 56, 147, 128, 15, 7, 196, 25, 85, 9, 48, 15, 9, 198,
-			81, 84, 139, 52, 83, 128, 15, 9, 198, 52, 18, 197, 16, 243, 128, 15, 9, 198, 24, 244, 149, 72, 83, 128, 15, 9, 198, 8, 18, 1,
-			52, 19, 128, 15, 9, 198, 72, 82, 142, 24, 19, 128, 16, 0, 24, 73, 77, 21, 65, 72, 81, 1, 56, 49, 82, 89, 49, 58, 6, 115,
-			108, 72, 117, 12, 50, 89, 108, 0, 9, 198, 76, 19, 13, 37, 53, 0, 15, 9, 198, 20, 194, 84, 37, 53, 0, 15, 12, 201, 81, 148,
-			15, 80, 82, 206, 36, 177, 82, 15, 6, 195, 121, 37, 9, 15, 8, 197, 77, 65, 82, 36, 192, 15, 10, 199, 72, 84, 211, 61, 84, 131,
-			20, 15, 10, 199, 36, 115, 143, 72, 19, 131, 20, 15, 11, 200, 52, 21, 18, 36, 20, 139, 5, 64, 15, 11, 200, 12, 84, 148, 36, 98,
-			75, 5, 64, 15, 8, 197, 77, 2, 82, 4, 192, 15, 12, 71, 36, 229, 5, 72, 96, 67, 20, 21, 0, 47, 0, 9, 198, 76, 240, 201,
-			60, 195, 199, 15, 9, 198, 52, 85, 18, 60, 195, 199, 15, 9, 198, 25, 148, 201, 60, 195, 199, 15, 9, 198, 5, 53, 18, 60, 195, 199,
-			15, 12, 201, 29, 42, 78, 48, 19, 132, 37, 49, 82, 15, 13, 72, 64, 144, 195, 4, 66, 76, 49, 144, 21, 0, 47, 0, 9, 198, 80,
-			20, 148, 20, 193, 84, 15, 9, 198, 44, 244, 147, 20, 193, 84, 15, 9, 198, 20, 112, 76, 37, 65, 84, 15, 11, 200, 88, 84, 147, 36,
-			98, 67, 21, 32, 15, 11, 200, 77, 1, 67, 36, 98, 67, 21, 32, 15, 11, 200, 73, 84, 211, 36, 98, 67, 21, 32, 15, 11, 200, 72,
-			84, 212, 72, 147, 135, 21, 32, 15, 11, 200, 72, 84, 18, 60, 69, 67, 21, 32, 15, 11, 200, 72, 83, 66, 61, 84, 147, 21, 32, 15,
-			11, 200, 72, 82, 212, 36, 98, 67, 21, 32, 15, 11, 200, 53, 148, 212, 36, 98, 67, 21, 32, 15, 11, 200, 52, 244, 148, 36, 98, 67,
-			21, 32, 15, 11, 200, 48, 244, 135, 56, 85, 20, 21, 32, 15, 11, 200, 45, 96, 76, 36, 98, 67, 21, 32, 15, 11, 200, 44, 243, 80,
-			48, 85, 20, 21, 32, 15, 11, 200, 44, 243, 77, 84, 226, 67, 21, 32, 15, 11, 200, 44, 192, 82, 36, 98, 67, 21, 32, 15, 11, 200,
-			44, 20, 129, 52, 35, 204, 21, 32, 15, 11, 200, 36, 229, 18, 60, 69, 67, 21, 32, 15, 11, 200, 36, 229, 5, 72, 84, 211, 21, 32,
-			15, 11, 200, 28, 195, 210, 36, 98, 67, 21, 32, 15, 11, 200, 28, 84, 212, 36, 181, 76, 21, 32, 15, 11, 200, 24, 244, 148, 36, 98,
-			67, 21, 32, 15, 11, 200, 60, 209, 143, 72, 213, 76, 21, 32, 15, 11, 200, 24, 19, 19, 36, 98, 67, 21, 32, 15, 11, 200, 16, 148,
-			211, 36, 210, 76, 21, 32, 15, 11, 200, 16, 84, 201, 56, 98, 67, 21, 32, 15, 11, 200, 12, 84, 148, 36, 98, 67, 21, 32, 15, 11,
-			200, 4, 68, 212, 72, 147, 135, 21, 32, 15, 9, 198, 61, 96, 82, 37, 83, 64, 15, 9, 198, 77, 147, 132, 36, 176, 84, 15, 8, 197,
-			64, 244, 148, 4, 32, 15, 12, 201, 44, 20, 129, 52, 35, 204, 4, 113, 64, 15, 0, 10, 199, 88, 149, 129, 12, 149, 5, 80, 15, 10,
-			199, 64, 243, 1, 72, 149, 5, 80, 15, 10, 199, 56, 21, 9, 88, 149, 5, 80, 15, 10, 199, 52, 147, 143, 72, 149, 5, 80, 15, 10,
-			199, 52, 18, 143, 72, 149, 5, 80, 15, 10, 199, 48, 246, 65, 48, 149, 5, 80, 15, 10, 199, 48, 21, 9, 56, 149, 5, 80, 15, 10,
-			199, 45, 96, 78, 80, 149, 5, 80, 15, 10, 199, 44, 243, 137, 12, 149, 5, 80, 15, 10, 199, 44, 20, 1, 12, 149, 5, 80, 15, 10,
-			199, 36, 229, 9, 52, 149, 5, 80, 15, 10, 199, 36, 65, 78, 80, 149, 5, 80, 15, 10, 199, 25, 85, 9, 48, 149, 5, 80, 15, 10,
-			199, 21, 67, 137, 12, 149, 5, 80, 15, 10, 199, 4, 97, 137, 56, 149, 5, 80, 15, 10, 199, 77, 64, 76, 4, 181, 9, 80, 15, 10,
-			199, 52, 20, 135, 84, 84, 137, 80, 15, 10, 199, 29, 32, 80, 80, 243, 9, 80, 15, 10, 199, 16, 84, 21, 80, 84, 133, 80, 15, 10,
-			199, 48, 144, 197, 57, 66, 65, 80, 15, 0, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 49, 82, 15, 15, 204, 36, 228, 212,
-			73, 83, 69, 57, 64, 76, 37, 49, 82, 15, 12, 201, 5, 85, 5, 57, 66, 70, 36, 49, 82, 15, 8, 197, 77, 83, 6, 36, 64, 15,
-			8, 197, 29, 32, 86, 36, 64, 15, 8, 67, 64, 18, 82, 21, 0, 47, 0, 9, 198, 76, 83, 73, 61, 66, 75, 15, 0, 7, 196, 88,
-			83, 31, 72, 15, 9, 198, 84, 49, 78, 81, 32, 76, 15, 9, 198, 60, 97, 137, 12, 144, 76, 15, 9, 198, 44, 243, 15, 56, 144, 76,
-			15, 9, 198, 36, 229, 5, 29, 32, 76, 15, 9, 198, 4, 195, 21, 88, 144, 76, 15, 0, 11, 200, 65, 39, 211, 80, 21, 9, 60, 224,
-			15, 12, 201, 72, 83, 9, 28, 154, 83, 37, 65, 84, 15, 9, 198, 50, 149, 137, 56, 65, 64, 15, 9, 198, 42, 145, 9, 56, 65, 64,
-			15, 0, 11, 67, 92, 145, 78, 84, 6, 37, 12, 50, 0, 9, 198, 76, 82, 213, 49, 244, 128, 15, 9, 198, 76, 19, 137, 81, 244, 128,
-			15, 9, 198, 72, 81, 213, 49, 244, 128, 15, 9, 198, 52, 243, 133, 81, 244, 128, 15, 9, 198, 52, 241, 21, 49, 244, 128, 15, 9, 198,
-			52, 147, 9, 81, 244, 128, 15, 9, 198, 44, 243, 148, 73, 244, 128, 15, 9, 198, 36, 228, 213, 49, 244, 128, 15, 11, 200, 52, 147, 9,
-			81, 244, 137, 76, 176, 15, 0, 12, 202, 65, 54, 75, 60, 96, 82, 52, 18, 207, 56, 13, 202, 45, 96, 76, 36, 98, 75, 5, 66, 79,
-			56, 15, 13, 202, 44, 243, 147, 80, 84, 142, 5, 66, 79, 56, 15, 13, 202, 36, 226, 207, 73, 3, 210, 5, 66, 79, 56, 15, 13, 202,
-			36, 225, 9, 77, 3, 211, 37, 66, 79, 56, 15, 7, 196, 88, 83, 9, 56, 15, 13, 72, 8, 80, 67, 32, 37, 71, 29, 144, 21, 0,
-			47, 0, 11, 200, 8, 144, 140, 36, 244, 203, 61, 0, 15, 6, 195, 60, 35, 204, 15, 12, 201, 65, 35, 208, 124, 65, 85, 80, 148, 203,
-			15, 8, 197, 8, 20, 211, 36, 224, 15, 12, 201, 4, 67, 73, 72, 19, 9, 56, 65, 64, 15, 9, 198, 64, 20, 212, 61, 32, 76, 15,
-			12, 201, 72, 240, 137, 57, 51, 206, 4, 65, 64, 15, 12, 201, 32, 20, 140, 20, 178, 78, 4, 65, 64, 15, 0, 16, 205, 44, 243, 77,
-			20, 228, 213, 72, 16, 137, 48, 149, 5, 80, 15, 14, 203, 61, 33, 193, 56, 148, 193, 80, 244, 137, 76, 176, 15, 14, 203, 44, 243, 134,
-			37, 50, 193, 80, 244, 137, 76, 176, 15, 12, 201, 52, 21, 82, 21, 64, 78, 36, 83, 128, 15, 10, 199, 65, 148, 129, 52, 145, 1, 48,
-			15, 10, 199, 44, 243, 135, 20, 226, 65, 48, 15, 10, 199, 16, 144, 76, 20, 181, 1, 48, 15, 0, 12, 201, 53, 83, 73, 24, 146, 193,
-			80, 147, 206, 15, 15, 204, 44, 20, 148, 4, 114, 78, 36, 83, 147, 37, 50, 192, 15, 8, 197, 64, 20, 212, 36, 192, 15, 8, 197, 56,
-			244, 208, 36, 192, 15, 6, 195, 64, 147, 206, 15, 0, 7, 196, 76, 19, 15, 56, 15, 0, 13, 202, 44, 243, 134, 164, 65, 82, 5, 66,
-			79, 56, 15, 12, 201, 77, 1, 75, 81, 35, 199, 72, 19, 64, 15, 8, 197, 80, 84, 141, 36, 224, 15, 8, 197, 44, 242, 193, 36, 224,
-			15, 7, 196, 8, 81, 201, 44, 15, 8, 197, 64, 84, 149, 4, 224, 15, 8, 197, 76, 17, 137, 4, 224, 16, 8, 197, 52, 244, 137, 4,
-			224, 16, 0, 6, 195, 28, 17, 197, 15, 0, 8, 197, 64, 20, 212, 20, 192, 15, 7, 196, 64, 20, 148, 36, 15, 0, 7, 196, 4, 212,
-			5, 72, 15, 7, 196, 33, 84, 193, 72, 15, 7, 196, 8, 20, 193, 72, 15, 0, 29, 68, 16, 84, 133, 76, 72, 115, 12, 108, 89, 15,
-			49, 84, 121, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 9, 198, 52, 147, 133, 72, 19, 0, 15, 9, 198, 28, 83,
-			133, 72, 19, 0, 15, 7, 196, 40, 84, 133, 76, 76, 12, 68, 16, 84, 133, 76, 72, 115, 108, 89, 0, 72, 0, 9, 198, 80, 147, 139,
-			81, 84, 128, 15, 9, 198, 64, 243, 9, 81, 84, 128, 15, 9, 198, 48, 145, 193, 81, 84, 128, 15, 9, 198, 45, 33, 65, 81, 84, 128,
-			15, 9, 198, 4, 113, 78, 81, 84, 128, 15, 9, 198, 85, 67, 208, 37, 51, 69, 15, 9, 198, 81, 35, 208, 37, 51, 69, 15, 9, 198,
-			72, 80, 76, 37, 51, 69, 15, 9, 198, 64, 145, 84, 37, 51, 69, 15, 9, 198, 56, 244, 132, 37, 51, 69, 15, 9, 198, 21, 35, 212,
-			37, 51, 69, 15, 9, 198, 17, 80, 76, 37, 51, 69, 15, 0, 13, 202, 88, 144, 212, 61, 34, 65, 56, 148, 205, 20, 15, 13, 202, 60,
-			36, 203, 85, 32, 78, 80, 148, 205, 20, 15, 10, 199, 33, 83, 65, 56, 148, 205, 20, 15, 13, 202, 16, 242, 212, 72, 147, 129, 72, 148,
-			205, 20, 15, 10, 199, 4, 197, 18, 84, 148, 205, 20, 15, 9, 198, 16, 84, 137, 88, 21, 0, 15, 9, 198, 4, 69, 143, 44, 21, 0,
-			15, 13, 70, 13, 35, 209, 84, 148, 192, 21, 102, 114, 0, 47, 5, 131, 239, 187, 191, 0, 6, 195, 53, 34, 64, 13, 7, 196, 64, 146,
-			197, 72, 15, 7, 196, 48, 18, 197, 72, 15, 7, 196, 88, 146, 193, 72, 15, 0, 9, 198, 64, 20, 148, 36, 83, 0, 15, 9, 198, 52,
-			85, 1, 56, 243, 0, 15, 9, 198, 72, 17, 9, 44, 19, 0, 15, 9, 198, 44, 193, 82, 36, 176, 76, 15, 9, 198, 44, 20, 132, 36,
-			224, 76, 15, 0, 11, 200, 26, 145, 5, 72, 21, 9, 60, 224, 15, 12, 201, 65, 35, 204, 21, 64, 82, 36, 21, 0, 15, 0, 11, 67,
-			20, 113, 78, 23, 121, 57, 14, 50, 0, 10, 199, 80, 85, 18, 4, 195, 199, 36, 15, 10, 199, 64, 85, 18, 60, 195, 199, 36, 15, 10,
-			199, 28, 83, 133, 4, 195, 199, 36, 15, 9, 198, 77, 74, 86, 48, 85, 0, 15, 14, 203, 20, 180, 200, 36, 34, 84, 36, 243, 137, 77,
-			64, 15, 13, 202, 81, 32, 78, 77, 97, 83, 80, 148, 205, 20, 15, 13, 202, 76, 176, 78, 16, 147, 129, 88, 148, 205, 20, 15, 13, 202,
-			21, 99, 204, 85, 66, 79, 56, 148, 205, 20, 15, 13, 202, 21, 67, 143, 12, 83, 148, 72, 148, 205, 20, 15, 9, 198, 45, 84, 5, 72,
-			85, 0, 15, 9, 198, 76, 83, 148, 20, 228, 192, 15, 9, 198, 64, 21, 9, 20, 228, 192, 15, 9, 198, 21, 98, 68, 20, 228, 192, 15,
-			9, 198, 16, 148, 211, 20, 228, 192, 15, 9, 198, 5, 81, 9, 20, 228, 192, 15, 9, 198, 4, 180, 143, 8, 21, 0, 15, 9, 198, 88,
-			20, 137, 4, 228, 192, 15, 0, 9, 198, 72, 242, 197, 72, 147, 135, 15, 9, 198, 72, 17, 5, 72, 147, 135, 15, 9, 198, 45, 33, 69,
-			72, 147, 135, 15, 9, 198, 28, 17, 197, 72, 147, 135, 15, 9, 198, 24, 147, 5, 72, 147, 135, 15, 9, 198, 24, 85, 5, 72, 147, 135,
-			15, 9, 198, 16, 244, 197, 72, 147, 135, 15, 9, 198, 16, 21, 5, 72, 147, 135, 15, 9, 198, 5, 35, 69, 72, 147, 135, 15, 9, 198,
-			4, 181, 5, 72, 147, 135, 15, 9, 198, 32, 84, 129, 48, 66, 75, 15, 9, 198, 16, 145, 1, 45, 66, 75, 15, 0, 10, 199, 65, 35,
-			202, 20, 181, 41, 72, 15, 10, 199, 32, 83, 19, 36, 225, 233, 72, 15, 14, 203, 76, 147, 80, 48, 145, 137, 44, 21, 9, 60, 224, 15,
-			14, 203, 72, 82, 207, 53, 1, 78, 76, 21, 9, 60, 224, 15, 14, 203, 72, 82, 207, 52, 208, 78, 16, 21, 9, 60, 224, 15, 14, 203,
-			72, 82, 193, 64, 149, 21, 48, 21, 9, 60, 224, 15, 14, 203, 36, 229, 5, 73, 4, 133, 80, 21, 9, 60, 224, 15, 14, 203, 20, 180,
-			212, 72, 20, 15, 76, 149, 9, 60, 224, 15, 13, 202, 80, 82, 206, 36, 98, 67, 21, 34, 78, 28, 15, 13, 202, 5, 85, 15, 44, 192,
-			86, 21, 34, 78, 28, 15, 8, 197, 80, 242, 211, 36, 224, 15, 8, 197, 9, 84, 139, 36, 224, 15, 9, 198, 44, 243, 15, 77, 48, 76,
-			15, 0, 10, 199, 44, 20, 18, 36, 50, 105, 76, 15, 9, 198, 104, 144, 133, 48, 147, 133, 15, 9, 198, 76, 243, 129, 80, 147, 133, 15,
-			9, 198, 52, 147, 129, 72, 147, 133, 15, 9, 198, 44, 21, 129, 80, 147, 133, 15, 9, 198, 28, 83, 210, 28, 147, 133, 15, 9, 198, 4,
-			35, 206, 56, 147, 133, 15, 10, 199, 88, 82, 212, 61, 34, 69, 48, 15, 12, 201, 32, 83, 19, 36, 225, 207, 72, 19, 128, 15, 12, 201,
-			25, 33, 68, 21, 34, 67, 36, 19, 128, 15, 10, 199, 52, 17, 201, 77, 68, 129, 48, 15, 10, 199, 16, 144, 77, 21, 68, 129, 48, 15,
-			11, 70, 16, 80, 68, 48, 147, 133, 21, 0, 47, 0, 9, 198, 77, 68, 149, 45, 69, 82, 15, 9, 198, 76, 145, 206, 5, 69, 82, 15,
-			11, 200, 64, 244, 148, 73, 245, 20, 165, 32, 15, 9, 198, 80, 131, 205, 37, 53, 0, 15, 10, 199, 64, 146, 212, 60, 116, 129, 52, 15,
-			10, 199, 32, 148, 212, 60, 116, 129, 52, 15, 10, 199, 24, 195, 210, 4, 116, 129, 52, 15, 8, 197, 24, 195, 206, 20, 192, 15, 8, 197,
-			28, 198, 75, 60, 192, 15, 15, 68, 32, 18, 84, 36, 107, 117, 6, 37, 12, 47, 37, 0, 15, 8, 197, 72, 84, 20, 36, 192, 15, 8,
-			197, 64, 148, 212, 36, 192, 15, 8, 197, 24, 85, 68, 4, 192, 15, 13, 70, 52, 243, 147, 36, 85, 82, 21, 102, 114, 0, 47, 0, 13,
-			202, 72, 85, 18, 61, 52, 5, 45, 66, 79, 56, 15, 13, 202, 64, 84, 147, 21, 97, 82, 5, 66, 79, 56, 15, 13, 202, 16, 85, 5,
-			72, 210, 78, 5, 66, 79, 56, 15, 7, 196, 40, 20, 1, 56, 15, 0, 8, 197, 52, 18, 210, 60, 224, 15, 13, 202, 81, 148, 15, 29,
-			32, 70, 21, 34, 78, 28, 15, 13, 202, 77, 147, 148, 21, 66, 83, 21, 34, 78, 28, 15, 13, 202, 77, 68, 149, 45, 69, 82, 21, 34,
-			78, 28, 15, 13, 202, 72, 243, 65, 57, 66, 83, 21, 34, 78, 28, 15, 13, 202, 65, 83, 22, 21, 34, 83, 21, 34, 78, 28, 15, 13,
-			202, 65, 34, 86, 5, 66, 83, 21, 34, 78, 28, 15, 13, 202, 64, 84, 137, 60, 66, 83, 21, 34, 78, 28, 15, 13, 202, 64, 20, 211,
-			37, 98, 83, 21, 34, 78, 28, 15, 13, 202, 48, 149, 15, 29, 32, 70, 21, 34, 78, 28, 15, 13, 202, 48, 16, 137, 4, 194, 83, 21,
-			34, 78, 28, 15, 13, 202, 44, 19, 148, 60, 226, 83, 21, 34, 78, 28, 15, 13, 202, 36, 226, 210, 36, 210, 78, 21, 34, 78, 28, 15,
-			13, 202, 36, 212, 18, 61, 98, 83, 21, 34, 78, 28, 15, 13, 202, 16, 85, 5, 72, 210, 78, 21, 34, 78, 28, 15, 13, 202, 8, 20,
-			130, 5, 34, 83, 21, 34, 78, 28, 15, 8, 197, 28, 83, 149, 36, 224, 15, 8, 197, 36, 225, 9, 4, 224, 15, 8, 197, 24, 146, 137,
-			4, 224, 15, 8, 197, 9, 84, 141, 4, 224, 15, 8, 197, 76, 128, 77, 4, 224, 16, 8, 197, 8, 21, 137, 4, 224, 16, 0, 14, 203,
-			72, 84, 18, 125, 49, 78, 80, 21, 9, 60, 224, 15, 0, 8, 197, 24, 195, 212, 20, 192, 15, 8, 197, 77, 64, 66, 36, 192, 15, 10,
-			199, 80, 243, 5, 72, 19, 131, 20, 15, 10, 199, 72, 81, 133, 72, 83, 131, 20, 15, 10, 199, 48, 85, 133, 72, 19, 131, 20, 15, 10,
-			199, 16, 147, 9, 28, 83, 131, 20, 15, 10, 199, 16, 82, 193, 16, 83, 131, 20, 15, 10, 199, 5, 52, 213, 72, 19, 131, 20, 15, 10,
-			199, 5, 36, 143, 28, 19, 131, 20, 15, 10, 199, 4, 208, 149, 48, 19, 131, 20, 15, 11, 200, 77, 66, 80, 20, 225, 9, 5, 64, 15,
-			10, 199, 80, 18, 203, 20, 192, 71, 20, 15, 10, 199, 64, 84, 147, 60, 224, 71, 20, 15, 10, 199, 44, 19, 85, 24, 192, 71, 20, 15,
-			10, 199, 20, 208, 129, 48, 192, 71, 20, 15, 0, 9, 198, 28, 83, 133, 4, 195, 199, 15, 18, 207, 8, 83, 133, 24, 144, 197, 24, 244,
-			133, 77, 66, 76, 48, 147, 135, 67, 16, 205, 84, 66, 210, 101, 53, 1, 48, 194, 83, 5, 66, 79, 56, 15, 15, 204, 29, 42, 78, 48,
-			19, 132, 37, 49, 82, 36, 225, 192, 15, 8, 67, 48, 243, 203, 21, 0, 47, 0, 11, 200, 8, 80, 82, 8, 82, 132, 21, 32, 67, 9,
-			198, 72, 80, 76, 37, 65, 84, 15, 9, 198, 57, 83, 12, 37, 65, 84, 15, 9, 198, 45, 96, 76, 37, 65, 84, 15, 9, 198, 17, 80,
-			76, 37, 65, 84, 15, 9, 198, 16, 83, 147, 37, 65, 84, 15, 9, 198, 4, 114, 76, 37, 65, 84, 15, 10, 199, 124, 181, 137, 88, 19,
-			5, 72, 15, 11, 200, 77, 80, 147, 80, 149, 21, 21, 32, 15, 11, 200, 77, 80, 147, 45, 34, 66, 21, 32, 15, 11, 200, 72, 82, 78,
-			88, 84, 212, 21, 32, 15, 11, 200, 72, 82, 77, 64, 244, 148, 21, 32, 15, 11, 200, 65, 35, 211, 80, 149, 21, 21, 32, 15, 11, 200,
-			65, 35, 211, 45, 34, 66, 21, 32, 15, 11, 200, 64, 84, 147, 21, 97, 82, 21, 32, 15, 11, 200, 61, 35, 129, 52, 83, 148, 21, 32,
-			15, 11, 200, 52, 19, 137, 24, 84, 212, 21, 32, 15, 11, 200, 44, 243, 148, 72, 144, 149, 21, 32, 15, 11, 200, 44, 243, 147, 80, 149,
-			21, 21, 32, 15, 11, 200, 44, 243, 147, 60, 194, 68, 21, 32, 15, 11, 200, 44, 243, 134, 72, 243, 148, 21, 32, 15, 11, 200, 44, 243,
-			134, 36, 117, 82, 21, 32, 15, 11, 200, 44, 241, 75, 76, 148, 212, 21, 32, 15, 11, 200, 36, 229, 5, 73, 3, 204, 21, 32, 15, 11,
-			200, 36, 226, 210, 36, 210, 78, 21, 32, 15, 11, 200, 36, 225, 13, 5, 32, 200, 21, 32, 15, 11, 200, 36, 225, 11, 88, 20, 148, 21,
-			32, 15, 11, 200, 20, 101, 5, 72, 64, 84, 21, 32, 15, 11, 200, 16, 148, 212, 72, 144, 149, 21, 32, 15, 11, 200, 16, 148, 211, 20,
-			229, 9, 21, 32, 15, 11, 200, 16, 85, 5, 72, 210, 78, 21, 32, 15, 11, 200, 5, 85, 15, 44, 192, 86, 21, 32, 15, 11, 200, 4,
-			195, 9, 81, 65, 82, 21, 32, 15, 9, 198, 80, 19, 10, 21, 33, 84, 15, 9, 198, 61, 85, 18, 21, 33, 84, 15, 9, 198, 52, 19,
-			137, 21, 33, 84, 15, 9, 198, 8, 243, 66, 21, 33, 84, 15, 12, 201, 44, 243, 12, 20, 181, 18, 36, 49, 64, 15, 12, 201, 36, 228,
-			208, 20, 181, 18, 36, 49, 64, 15, 0, 10, 199, 12, 16, 146, 36, 243, 5, 80, 15, 10, 199, 88, 149, 1, 48, 149, 5, 80, 15, 10,
-			199, 88, 148, 137, 48, 149, 5, 80, 15, 10, 199, 88, 19, 9, 16, 149, 5, 80, 15, 10, 199, 85, 32, 129, 56, 149, 5, 80, 15, 10,
-			199, 80, 245, 1, 48, 149, 5, 80, 15, 10, 199, 80, 243, 129, 48, 149, 5, 80, 15, 10, 199, 76, 243, 143, 72, 149, 5, 80, 15, 10,
-			199, 76, 243, 9, 16, 149, 5, 80, 15, 10, 199, 76, 83, 137, 48, 149, 5, 80, 15, 10, 199, 72, 149, 129, 48, 149, 5, 80, 15, 10,
-			199, 72, 145, 201, 16, 149, 5, 80, 15, 10, 199, 72, 20, 9, 16, 149, 5, 80, 15, 10, 199, 65, 34, 79, 72, 149, 5, 80, 15, 10,
-			199, 56, 240, 137, 48, 149, 5, 80, 15, 10, 199, 56, 21, 1, 48, 149, 5, 80, 15, 10, 199, 56, 20, 193, 48, 149, 5, 80, 15, 10,
-			199, 52, 244, 129, 48, 149, 5, 80, 15, 10, 199, 52, 241, 1, 48, 149, 5, 80, 15, 10, 199, 52, 240, 137, 48, 149, 5, 80, 15, 10,
-			199, 48, 242, 193, 48, 149, 5, 80, 15, 10, 199, 48, 81, 193, 48, 149, 5, 80, 15, 10, 199, 48, 16, 137, 48, 149, 5, 80, 15, 10,
-			199, 44, 19, 1, 52, 149, 5, 80, 15, 10, 199, 36, 211, 85, 56, 149, 5, 80, 15, 10, 199, 36, 65, 65, 48, 149, 5, 80, 15, 10,
-			199, 33, 83, 65, 56, 149, 5, 80, 15, 10, 199, 32, 16, 137, 48, 149, 5, 80, 15, 10, 199, 24, 145, 5, 48, 149, 5, 80, 15, 10,
-			199, 24, 21, 1, 48, 149, 5, 80, 15, 10, 199, 24, 16, 201, 48, 149, 5, 80, 15, 10, 199, 16, 80, 137, 48, 149, 5, 80, 15, 10,
-			199, 8, 19, 129, 48, 149, 5, 80, 15, 10, 199, 4, 181, 9, 88, 149, 5, 80, 15, 10, 199, 52, 17, 201, 77, 68, 129, 80, 15, 10,
-			199, 44, 243, 132, 20, 228, 193, 80, 15, 10, 199, 21, 2, 83, 44, 244, 1, 80, 15, 10, 199, 16, 148, 208, 20, 228, 193, 80, 15, 0,
-			18, 207, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 49, 82, 36, 225, 192, 15, 18, 207, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37,
-			49, 82, 36, 225, 192, 15, 9, 198, 52, 84, 203, 4, 194, 78, 15, 18, 70, 52, 20, 143, 69, 82, 78, 65, 121, 34, 39, 6, 49, 115,
-			68, 0, 15, 9, 198, 52, 19, 132, 60, 194, 78, 15, 9, 198, 32, 84, 141, 20, 194, 78, 15, 13, 4, 95, 103, 114, 118, 35, 49, 89,
-			6, 35, 68, 0, 0, 0, 9, 198, 4, 50, 68, 61, 49, 64, 15, 13, 202, 56, 85, 82, 61, 4, 217, 44, 243, 15, 28, 15, 9, 198,
-			24, 244, 141, 21, 33, 64, 15, 9, 198, 48, 240, 133, 48, 145, 64, 15, 9, 198, 88, 19, 129, 16, 145, 64, 15, 9, 198, 76, 243, 1,
-			72, 145, 64, 15, 9, 198, 56, 240, 133, 48, 145, 64, 15, 9, 198, 41, 81, 9, 12, 145, 64, 15, 9, 198, 104, 20, 137, 76, 209, 64,
-			15, 9, 198, 88, 84, 137, 76, 209, 64, 15, 9, 198, 76, 130, 73, 76, 209, 64, 15, 10, 199, 64, 84, 141, 4, 225, 78, 76, 15, 9,
-			198, 72, 83, 143, 56, 49, 64, 15, 9, 198, 8, 19, 1, 56, 49, 64, 15, 9, 198, 4, 36, 197, 56, 49, 64, 15, 9, 198, 44, 243,
-			12, 4, 113, 64, 15, 11, 70, 52, 84, 211, 4, 113, 64, 21, 0, 47, 0, 12, 201, 65, 39, 205, 5, 69, 82, 37, 65, 84, 15, 11,
-			200, 77, 81, 134, 36, 50, 69, 57, 48, 15, 11, 200, 77, 80, 147, 37, 53, 5, 57, 48, 15, 11, 200, 44, 243, 147, 20, 181, 133, 57,
-			48, 15, 11, 200, 44, 242, 78, 12, 145, 5, 57, 48, 15, 9, 198, 76, 84, 133, 56, 17, 5, 15, 9, 198, 72, 83, 85, 48, 17, 5,
-			15, 9, 198, 52, 84, 211, 36, 17, 5, 15, 9, 198, 52, 20, 137, 56, 17, 5, 15, 9, 198, 21, 50, 193, 64, 17, 5, 15, 10, 2,
-			195, 151, 81, 6, 35, 68, 36, 0, 0, 9, 198, 76, 243, 9, 81, 244, 128, 15, 7, 196, 53, 147, 211, 20, 15, 9, 198, 88, 148, 143,
-			48, 241, 192, 15, 9, 198, 73, 83, 143, 48, 241, 192, 15, 9, 198, 53, 146, 207, 48, 241, 192, 15, 9, 198, 52, 243, 143, 48, 241, 192,
-			15, 9, 198, 36, 65, 79, 48, 241, 192, 15, 11, 200, 77, 81, 134, 36, 50, 69, 57, 64, 15, 11, 200, 72, 84, 208, 60, 225, 5, 57,
-			64, 15, 11, 200, 44, 243, 147, 20, 181, 133, 57, 64, 15, 11, 200, 20, 180, 208, 20, 66, 69, 57, 64, 15, 11, 200, 16, 83, 9, 56,
-			181, 133, 57, 64, 15, 7, 196, 56, 145, 67, 20, 15, 11, 200, 37, 36, 133, 48, 85, 129, 57, 64, 15, 0, 9, 198, 80, 149, 1, 56,
-			148, 203, 15, 9, 198, 80, 82, 83, 80, 148, 203, 15, 9, 198, 76, 145, 5, 72, 148, 203, 15, 9, 198, 76, 21, 9, 72, 148, 203, 15,
-			9, 198, 64, 20, 143, 16, 148, 203, 15, 9, 198, 64, 20, 137, 76, 148, 203, 15, 9, 198, 61, 51, 79, 80, 148, 203, 15, 9, 198, 61,
-			33, 193, 56, 148, 203, 15, 9, 198, 60, 49, 65, 56, 148, 203, 15, 9, 198, 52, 82, 193, 56, 148, 203, 15, 9, 198, 48, 18, 207, 56,
-			148, 203, 15, 9, 198, 44, 84, 149, 8, 148, 203, 15, 9, 198, 41, 83, 143, 56, 148, 203, 15, 9, 198, 16, 82, 83, 80, 148, 203, 15,
-			9, 198, 12, 20, 137, 8, 148, 203, 15, 9, 198, 4, 193, 197, 72, 148, 203, 15, 9, 198, 24, 147, 9, 64, 83, 147, 15, 9, 198, 9,
-			34, 76, 48, 19, 147, 15, 0, 9, 198, 84, 180, 129, 36, 225, 64, 15, 15, 204, 84, 225, 5, 72, 82, 211, 81, 33, 77, 37, 65, 84,
-			15, 15, 204, 65, 35, 208, 61, 37, 9, 60, 224, 76, 37, 65, 84, 15, 10, 199, 44, 243, 134, 49, 81, 78, 76, 15, 6, 195, 72, 80,
-			76, 15, 9, 198, 72, 245, 76, 4, 65, 64, 15, 9, 198, 9, 35, 203, 4, 65, 64, 15, 9, 198, 8, 19, 12, 4, 65, 64, 15, 0,
-			12, 201, 65, 39, 211, 36, 65, 78, 80, 145, 76, 15, 12, 201, 4, 193, 75, 76, 19, 132, 72, 147, 128, 15, 12, 201, 44, 243, 148, 4,
-			181, 6, 48, 17, 5, 15, 0, 16, 205, 72, 84, 18, 125, 49, 78, 80, 21, 9, 88, 149, 5, 80, 15, 10, 199, 88, 20, 197, 45, 67,
-			205, 36, 15, 12, 201, 76, 176, 78, 16, 147, 129, 88, 145, 78, 15, 0, 0, 15, 5, 100, 110, 97, 39, 115, 72, 114, 116, 50, 6, 118,
-			89, 0, 13, 202, 44, 20, 129, 45, 65, 82, 37, 53, 9, 44, 15, 14, 203, 81, 32, 78, 77, 54, 76, 88, 19, 137, 20, 224, 15, 14,
-			203, 81, 32, 78, 77, 50, 76, 88, 19, 137, 20, 224, 15, 0, 7, 196, 64, 147, 143, 48, 15, 14, 2, 194, 167, 48, 35, 34, 35, 81,
-			34, 6, 35, 83, 0, 0, 15, 66, 76, 80, 89, 36, 15, 89, 108, 0, 81, 115, 195, 165, 32, 9, 198, 65, 35, 214, 37, 51, 210, 15,
-			12, 201, 88, 145, 21, 56, 65, 82, 48, 145, 192, 15, 12, 201, 88, 81, 5, 72, 129, 70, 80, 145, 192, 15, 12, 201, 84, 225, 196, 60,
-			211, 69, 48, 145, 192, 15, 12, 201, 80, 147, 19, 80, 81, 5, 48, 145, 192, 15, 12, 201, 77, 64, 78, 16, 128, 70, 80, 145, 192, 15,
-			12, 201, 77, 2, 68, 76, 98, 78, 16, 145, 192, 15, 12, 201, 76, 224, 75, 44, 84, 193, 48, 145, 192, 15, 12, 201, 60, 212, 212, 36,
-			195, 5, 48, 145, 192, 15, 12, 201, 60, 36, 212, 21, 35, 129, 76, 145, 192, 15, 12, 201, 48, 245, 134, 61, 35, 69, 48, 145, 192, 15,
-			12, 201, 33, 84, 205, 60, 65, 82, 48, 145, 192, 15, 12, 201, 32, 83, 2, 72, 81, 5, 48, 145, 192, 15, 12, 201, 32, 19, 19, 77,
-			64, 82, 72, 145, 192, 15, 12, 201, 28, 83, 130, 73, 81, 197, 48, 145, 192, 15, 12, 201, 24, 244, 149, 56, 65, 82, 48, 145, 192, 15,
-			12, 201, 24, 244, 132, 72, 17, 197, 48, 145, 192, 15, 12, 201, 24, 244, 129, 56, 65, 82, 48, 145, 192, 15, 12, 201, 8, 148, 203, 61,
-			4, 5, 48, 145, 192, 15, 12, 201, 8, 20, 141, 32, 161, 82, 80, 145, 192, 15, 8, 197, 77, 2, 78, 4, 192, 15, 8, 197, 64, 197,
-			82, 4, 192, 15, 8, 197, 28, 195, 194, 4, 192, 15, 6, 194, 60, 208, 76, 28, 0, 7, 196, 45, 84, 5, 72, 15, 11, 200, 164, 228,
-			203, 89, 244, 132, 36, 112, 15, 10, 2, 194, 165, 57, 6, 36, 50, 12, 0, 0, 11, 200, 64, 84, 134, 61, 32, 84, 61, 32, 15, 11,
-			200, 60, 36, 197, 73, 96, 84, 61, 32, 15, 11, 200, 44, 243, 77, 85, 64, 84, 61, 32, 15, 11, 200, 44, 19, 11, 84, 192, 84, 61,
-			32, 15, 11, 200, 36, 225, 143, 72, 208, 84, 61, 32, 15, 11, 200, 17, 84, 12, 36, 176, 84, 61, 32, 15, 8, 197, 64, 147, 206, 21,
-			32, 15, 8, 197, 20, 229, 18, 21, 32, 15, 9, 198, 4, 194, 193, 48, 242, 68, 15, 12, 201, 77, 147, 139, 72, 85, 9, 76, 209, 64,
-			15, 12, 201, 76, 84, 1, 72, 21, 9, 76, 209, 64, 15, 12, 201, 76, 83, 147, 84, 19, 9, 76, 209, 64, 15, 12, 201, 52, 243, 143,
-			64, 243, 9, 76, 209, 64, 15, 12, 201, 52, 147, 137, 52, 19, 9, 76, 209, 64, 15, 12, 201, 48, 19, 65, 72, 50, 201, 76, 209, 64,
-			15, 12, 201, 44, 192, 83, 76, 144, 201, 76, 209, 64, 15, 12, 201, 44, 21, 15, 48, 144, 201, 76, 209, 64, 15, 12, 201, 24, 81, 5,
-			72, 19, 9, 76, 209, 64, 15, 12, 201, 12, 128, 85, 88, 147, 137, 76, 209, 64, 15, 8, 197, 36, 226, 84, 5, 32, 15, 8, 197, 32,
-			82, 212, 5, 32, 15, 10, 2, 194, 162, 89, 6, 36, 50, 47, 0, 0, 9, 198, 25, 32, 75, 81, 84, 128, 15, 6, 195, 52, 17, 201,
-			15, 9, 2, 194, 163, 48, 40, 50, 19, 0, 0, 8, 197, 76, 177, 76, 21, 64, 15, 8, 197, 72, 245, 76, 21, 64, 15, 8, 197, 8,
-			147, 12, 21, 64, 15, 8, 197, 21, 2, 84, 21, 64, 15, 10, 199, 56, 20, 212, 85, 37, 9, 20, 15, 10, 199, 65, 35, 211, 12, 83,
-			137, 20, 15, 8, 197, 45, 98, 86, 37, 64, 15, 8, 197, 29, 32, 78, 37, 64, 15, 8, 197, 28, 19, 66, 37, 64, 15, 8, 197, 20,
-			35, 206, 37, 64, 15, 10, 199, 88, 149, 1, 48, 148, 205, 20, 15, 10, 199, 80, 245, 5, 52, 148, 205, 20, 15, 10, 199, 64, 19, 148,
-			20, 148, 205, 20, 15, 10, 199, 61, 33, 193, 56, 148, 205, 20, 15, 10, 199, 52, 82, 193, 56, 148, 205, 20, 15, 10, 199, 48, 18, 207,
-			56, 148, 205, 20, 15, 10, 199, 36, 65, 65, 48, 148, 205, 20, 15, 10, 199, 32, 81, 15, 56, 148, 205, 20, 15, 10, 199, 24, 83, 73,
-			56, 148, 205, 20, 15, 10, 199, 4, 196, 9, 56, 148, 205, 20, 15, 10, 199, 4, 192, 137, 56, 148, 205, 20, 15, 8, 197, 72, 80, 197,
-			57, 64, 15, 9, 198, 72, 83, 133, 28, 21, 0, 15, 8, 197, 65, 34, 86, 5, 64, 15, 8, 197, 45, 32, 66, 5, 64, 15, 8, 197,
-			20, 210, 82, 5, 64, 15, 9, 198, 4, 197, 77, 56, 21, 0, 15, 14, 69, 5, 81, 213, 77, 64, 125, 81, 125, 89, 72, 0, 41, 10,
-			69, 77, 2, 82, 37, 64, 21, 0, 47, 0, 9, 198, 88, 243, 15, 57, 74, 82, 15, 9, 198, 72, 81, 201, 77, 58, 82, 15, 9, 198,
-			45, 35, 206, 36, 186, 82, 15, 9, 198, 36, 225, 133, 72, 154, 82, 15, 9, 198, 36, 212, 15, 73, 74, 82, 15, 12, 201, 77, 83, 6,
-			5, 66, 65, 104, 243, 0, 15, 9, 198, 5, 53, 5, 56, 148, 203, 15, 0, 8, 197, 89, 84, 132, 21, 32, 15, 8, 197, 64, 240, 200,
-			21, 32, 15, 8, 197, 20, 66, 84, 21, 32, 15, 8, 197, 16, 146, 212, 21, 32, 15, 12, 201, 61, 97, 82, 77, 245, 20, 20, 194, 71,
-			15, 8, 197, 8, 20, 130, 5, 32, 15, 9, 198, 81, 32, 70, 36, 176, 76, 15, 9, 198, 24, 20, 153, 56, 112, 76, 15, 9, 198, 9,
-			35, 206, 44, 144, 76, 15, 28, 2, 194, 174, 34, 36, 81, 37, 89, 47, 34, 6, 115, 34, 108, 86, 15, 84, 6, 121, 34, 14, 65, 115,
-			34, 49, 14, 0, 0, 12, 201, 12, 132, 137, 77, 66, 65, 56, 149, 0, 15, 0, 8, 197, 81, 34, 66, 85, 64, 15, 8, 197, 77, 64,
-			82, 85, 64, 15, 8, 197, 76, 86, 9, 77, 64, 15, 8, 197, 41, 84, 137, 77, 64, 15, 12, 201, 88, 146, 193, 72, 145, 82, 36, 225,
-			192, 15, 12, 201, 81, 83, 142, 20, 193, 82, 36, 225, 192, 15, 12, 201, 81, 34, 85, 52, 97, 82, 36, 225, 192, 15, 12, 201, 80, 16,
-			149, 37, 49, 82, 36, 225, 192, 15, 12, 201, 77, 148, 212, 20, 209, 82, 36, 225, 192, 15, 12, 201, 77, 83, 6, 60, 225, 82, 36, 225,
-			192, 15, 12, 201, 77, 66, 80, 84, 193, 82, 36, 225, 192, 15, 12, 201, 77, 66, 77, 84, 193, 82, 36, 225, 192, 15, 12, 201, 76, 82,
-			213, 56, 65, 82, 36, 225, 192, 15, 12, 201, 76, 81, 210, 20, 113, 82, 36, 225, 192, 15, 12, 201, 76, 80, 197, 72, 225, 82, 36, 225,
-			192, 15, 12, 201, 73, 80, 146, 36, 49, 82, 36, 225, 192, 15, 12, 201, 72, 85, 21, 72, 225, 82, 36, 225, 192, 15, 12, 201, 72, 85,
-			1, 8, 193, 82, 36, 225, 192, 15, 12, 201, 72, 84, 197, 73, 97, 82, 36, 225, 192, 15, 12, 201, 72, 83, 73, 81, 65, 82, 36, 225,
-			192, 15, 12, 201, 72, 82, 70, 36, 49, 82, 36, 225, 192, 15, 12, 201, 64, 245, 5, 57, 49, 82, 36, 225, 192, 15, 12, 201, 64, 241,
-			19, 60, 193, 82, 36, 225, 192, 15, 12, 201, 64, 192, 75, 5, 65, 82, 36, 225, 192, 15, 12, 201, 64, 84, 134, 61, 33, 82, 36, 225,
-			192, 15, 12, 201, 64, 83, 132, 84, 193, 82, 36, 225, 192, 15, 12, 201, 64, 21, 5, 57, 65, 82, 36, 225, 192, 15, 12, 201, 64, 20,
-			143, 16, 145, 82, 36, 225, 192, 15, 12, 201, 60, 36, 197, 73, 97, 82, 36, 225, 192, 15, 12, 201, 57, 83, 77, 21, 33, 82, 36, 225,
-			192, 15, 12, 201, 56, 81, 204, 36, 113, 82, 36, 225, 192, 15, 12, 201, 52, 18, 211, 36, 209, 82, 36, 225, 192, 15, 12, 201, 48, 144,
-			197, 57, 49, 82, 36, 225, 192, 15, 12, 201, 45, 84, 148, 37, 49, 82, 36, 225, 192, 15, 12, 201, 45, 83, 20, 37, 97, 82, 36, 225,
-			192, 15, 12, 201, 45, 33, 78, 20, 193, 82, 36, 225, 192, 15, 12, 201, 45, 33, 68, 37, 65, 82, 36, 225, 192, 15, 12, 201, 44, 244,
-			146, 84, 113, 82, 36, 225, 192, 15, 12, 201, 44, 243, 77, 85, 65, 82, 36, 225, 192, 15, 12, 201, 44, 240, 71, 84, 193, 82, 36, 225,
-			192, 15, 12, 201, 44, 20, 197, 72, 225, 82, 36, 225, 192, 15, 12, 201, 44, 20, 130, 85, 33, 82, 36, 225, 192, 15, 12, 201, 44, 19,
-			85, 24, 193, 82, 36, 225, 192, 15, 12, 201, 44, 19, 9, 9, 33, 82, 36, 225, 192, 15, 12, 201, 41, 81, 1, 37, 49, 82, 36, 225,
-			192, 15, 12, 201, 36, 229, 133, 57, 65, 82, 36, 225, 192, 15, 12, 201, 36, 229, 5, 29, 33, 82, 36, 225, 192, 15, 12, 201, 36, 227,
-			203, 84, 193, 82, 36, 225, 192, 15, 12, 201, 36, 226, 204, 84, 65, 82, 36, 225, 192, 15, 12, 201, 36, 226, 193, 77, 49, 82, 36, 225,
-			192, 15, 12, 201, 36, 225, 5, 45, 49, 82, 36, 225, 192, 15, 12, 201, 32, 244, 208, 37, 65, 82, 36, 225, 192, 15, 12, 201, 32, 20,
-			131, 20, 193, 82, 36, 225, 192, 15, 12, 201, 25, 84, 201, 60, 225, 82, 36, 225, 192, 15, 12, 201, 24, 197, 75, 81, 81, 82, 36, 225,
-			192, 15, 12, 201, 24, 84, 142, 37, 49, 82, 36, 225, 192, 15, 12, 201, 24, 16, 197, 81, 65, 82, 36, 225, 192, 15, 12, 201, 20, 194,
-			77, 36, 225, 82, 36, 225, 192, 15, 12, 201, 17, 84, 12, 36, 177, 82, 36, 225, 192, 15, 12, 201, 16, 85, 1, 12, 129, 82, 36, 225,
-			192, 15, 12, 201, 16, 84, 197, 73, 65, 82, 36, 225, 192, 15, 12, 201, 16, 84, 15, 73, 65, 82, 36, 225, 192, 15, 12, 201, 12, 148,
-			139, 84, 193, 82, 36, 225, 192, 15, 12, 201, 8, 19, 132, 4, 113, 82, 36, 225, 192, 15, 12, 201, 8, 19, 19, 4, 209, 82, 36, 225,
-			192, 15, 12, 201, 8, 19, 12, 61, 65, 82, 36, 225, 192, 15, 12, 201, 5, 69, 5, 77, 65, 82, 36, 225, 192, 15, 12, 201, 5, 68,
-			143, 24, 145, 82, 36, 225, 192, 15, 12, 201, 5, 67, 205, 37, 49, 82, 36, 225, 192, 15, 12, 201, 5, 49, 129, 49, 65, 82, 36, 225,
-			192, 15, 12, 201, 5, 34, 193, 37, 49, 82, 36, 225, 192, 15, 12, 201, 5, 4, 18, 21, 65, 82, 36, 225, 192, 15, 12, 201, 4, 227,
-			143, 56, 49, 82, 36, 225, 192, 15, 12, 201, 4, 178, 207, 72, 65, 82, 36, 225, 192, 15, 12, 201, 4, 36, 207, 72, 33, 82, 36, 225,
-			192, 15, 12, 201, 4, 36, 197, 57, 65, 82, 36, 225, 192, 15, 9, 198, 64, 20, 129, 76, 149, 0, 15, 8, 197, 24, 19, 12, 37, 64,
-			15, 11, 200, 50, 145, 211, 82, 148, 137, 4, 224, 15, 9, 198, 29, 39, 147, 80, 83, 128, 15, 9, 198, 21, 35, 212, 60, 208, 78, 16,
-			7, 196, 25, 242, 193, 48, 15, 5, 130, 195, 164, 43, 0, 9, 198, 84, 112, 78, 16, 148, 203, 15, 9, 198, 81, 83, 133, 76, 148, 203,
-			15, 9, 198, 77, 83, 69, 72, 148, 203, 15, 9, 198, 76, 21, 25, 72, 148, 203, 15, 9, 198, 52, 245, 9, 88, 148, 203, 15, 9, 198,
-			52, 19, 1, 92, 148, 203, 15, 9, 198, 52, 19, 1, 40, 148, 203, 15, 9, 198, 44, 131, 69, 72, 148, 203, 15, 9, 198, 44, 19, 129,
-			72, 148, 203, 15, 9, 198, 32, 243, 69, 72, 148, 203, 15, 9, 198, 21, 81, 143, 72, 148, 203, 15, 9, 198, 20, 212, 9, 72, 148, 203,
-			15, 9, 198, 16, 82, 75, 80, 148, 203, 15, 9, 198, 5, 52, 217, 72, 148, 203, 15, 9, 198, 4, 181, 9, 88, 148, 203, 15, 9, 198,
-			26, 147, 137, 44, 145, 78, 15, 12, 201, 76, 183, 204, 76, 186, 82, 36, 19, 128, 15, 17, 4, 95, 52, 88, 111, 83, 132, 108, 6, 47,
-			129, 84, 14, 50, 14, 0, 0, 10, 199, 77, 69, 75, 44, 21, 41, 72, 15, 10, 199, 72, 20, 16, 61, 37, 41, 72, 15, 10, 199, 56,
-			21, 137, 28, 21, 41, 72, 15, 10, 199, 44, 244, 146, 20, 181, 41, 72, 15, 10, 199, 44, 243, 16, 61, 37, 41, 72, 15, 10, 199, 36,
-			227, 143, 88, 21, 41, 72, 15, 10, 199, 16, 82, 207, 72, 21, 41, 72, 15, 7, 197, 64, 84, 146, 60, 224, 8, 197, 56, 19, 139, 36,
-			224, 15, 15, 69, 16, 84, 211, 36, 224, 72, 36, 89, 6, 115, 68, 0, 15, 7, 196, 61, 5, 9, 44, 15, 8, 197, 80, 243, 135, 4,
-			224, 15, 15, 204, 24, 194, 80, 65, 35, 204, 21, 64, 82, 36, 21, 0, 15, 8, 197, 52, 19, 135, 4, 224, 16, 9, 198, 48, 20, 153,
-			56, 112, 76, 15, 9, 198, 44, 21, 5, 17, 32, 76, 15, 9, 198, 32, 244, 208, 37, 64, 76, 15, 11, 70, 52, 243, 148, 72, 80, 76,
-			21, 0, 47, 20, 2, 194, 170, 83, 36, 65, 37, 50, 37, 50, 15, 132, 72, 37, 50, 6, 35, 55, 0, 0, 10, 199, 64, 84, 142, 36,
-			50, 105, 76, 15, 10, 199, 53, 148, 212, 21, 34, 105, 76, 15, 10, 199, 24, 147, 9, 77, 68, 169, 76, 15, 10, 199, 64, 145, 68, 21,
-			53, 1, 48, 15, 10, 199, 44, 243, 12, 20, 114, 65, 48, 15, 0, 10, 199, 32, 82, 212, 60, 116, 129, 52, 15, 8, 197, 56, 21, 84,
-			36, 192, 15, 8, 197, 64, 244, 212, 4, 192, 15, 8, 197, 9, 37, 84, 4, 192, 15, 0, 7, 196, 25, 149, 9, 56, 15, 10, 199, 53,
-			84, 203, 20, 67, 206, 56, 15, 13, 2, 194, 169, 49, 108, 48, 37, 34, 121, 57, 47, 0, 0, 12, 201, 20, 180, 208, 60, 225, 78, 80,
-			145, 76, 15, 12, 201, 20, 180, 201, 77, 65, 78, 80, 145, 76, 15, 12, 201, 16, 145, 134, 21, 33, 78, 80, 145, 76, 15, 8, 197, 48,
-			81, 213, 4, 224, 16, 0, 5, 130, 197, 159, 43, 5, 130, 195, 175, 43, 0, 9, 198, 81, 80, 129, 37, 53, 0, 15, 11, 200, 76, 244,
-			132, 36, 225, 82, 21, 64, 15, 11, 200, 72, 85, 1, 72, 65, 82, 21, 64, 15, 11, 200, 72, 84, 197, 73, 97, 82, 21, 64, 15, 11,
-			200, 72, 83, 143, 52, 209, 82, 21, 64, 15, 11, 200, 52, 19, 137, 21, 33, 82, 21, 64, 15, 11, 200, 45, 83, 20, 37, 97, 82, 21,
-			64, 15, 11, 200, 45, 33, 78, 20, 193, 82, 21, 64, 15, 11, 200, 36, 225, 9, 28, 225, 82, 21, 64, 15, 11, 200, 32, 20, 193, 72,
-			65, 82, 21, 64, 15, 11, 200, 24, 16, 207, 56, 225, 82, 21, 64, 15, 11, 200, 24, 16, 197, 81, 65, 82, 21, 64, 15, 11, 200, 20,
-			180, 193, 49, 65, 82, 21, 64, 15, 11, 200, 16, 84, 129, 56, 113, 82, 21, 64, 15, 11, 200, 16, 84, 18, 37, 97, 82, 21, 64, 15,
-			11, 200, 16, 84, 18, 36, 209, 82, 21, 64, 15, 11, 200, 8, 19, 1, 56, 49, 82, 21, 64, 15, 11, 200, 5, 52, 207, 73, 65, 82,
-			21, 64, 15, 11, 200, 4, 229, 9, 45, 97, 82, 21, 64, 15, 11, 200, 4, 97, 133, 45, 65, 82, 21, 64, 15, 11, 200, 44, 243, 139,
-			84, 34, 78, 5, 64, 15, 11, 200, 44, 243, 131, 20, 229, 18, 5, 64, 15, 11, 200, 8, 146, 193, 72, 35, 206, 5, 64, 15, 11, 200,
-			8, 20, 130, 37, 69, 82, 5, 64, 15, 11, 200, 4, 113, 204, 60, 209, 82, 5, 64, 15, 8, 197, 85, 34, 78, 4, 192, 15, 8, 197,
-			5, 53, 18, 4, 192, 15, 0, 9, 198, 60, 211, 105, 8, 193, 82, 15, 7, 2, 194, 181, 65, 129, 0, 0, 11, 200, 81, 32, 78, 77,
-			3, 206, 21, 32, 15, 11, 200, 80, 82, 206, 36, 98, 67, 21, 32, 15, 11, 200, 77, 80, 143, 72, 66, 78, 21, 32, 15, 11, 200, 76,
-			181, 129, 17, 35, 206, 21, 32, 15, 11, 200, 72, 83, 79, 57, 53, 18, 21, 32, 15, 11, 200, 64, 20, 129, 24, 98, 78, 21, 32, 15,
-			11, 200, 44, 243, 131, 20, 229, 18, 21, 32, 15, 11, 200, 44, 243, 77, 84, 226, 75, 21, 32, 15, 11, 200, 36, 229, 5, 72, 97, 82,
-			21, 32, 15, 11, 200, 33, 148, 15, 77, 64, 83, 21, 32, 15, 11, 200, 16, 243, 69, 77, 66, 67, 21, 32, 15, 11, 200, 16, 83, 79,
-			57, 53, 18, 21, 32, 15, 11, 200, 5, 3, 211, 81, 35, 198, 21, 32, 15, 11, 200, 77, 147, 70, 60, 226, 75, 21, 32, 15, 11, 200,
-			76, 83, 73, 61, 66, 75, 21, 32, 15, 11, 200, 76, 83, 65, 57, 66, 75, 21, 32, 15, 11, 200, 20, 193, 75, 81, 34, 75, 21, 32,
-			15, 11, 200, 5, 67, 1, 57, 66, 75, 21, 32, 15, 11, 200, 5, 53, 13, 5, 66, 75, 21, 32, 15, 11, 200, 4, 224, 76, 101, 66,
-			75, 21, 32, 15, 11, 200, 4, 195, 5, 72, 114, 75, 21, 32, 15, 11, 200, 4, 176, 68, 20, 210, 75, 21, 32, 15, 11, 200, 4, 115,
-			143, 77, 66, 75, 21, 32, 15, 0, 19, 71, 12, 129, 86, 72, 243, 5, 80, 89, 57, 115, 84, 34, 39, 55, 6, 115, 0, 10, 199, 76,
-			130, 66, 8, 243, 5, 80, 15, 10, 199, 24, 192, 71, 20, 243, 5, 80, 15, 12, 201, 80, 83, 5, 29, 32, 70, 37, 53, 0, 15, 10,
-			199, 80, 84, 141, 61, 53, 1, 80, 15, 10, 199, 20, 229, 18, 20, 50, 1, 80, 15, 0, 9, 198, 72, 244, 205, 5, 34, 78, 15, 9,
-			198, 8, 19, 4, 4, 178, 78, 15, 0, 0, 9, 198, 76, 19, 65, 72, 145, 64, 15, 9, 198, 72, 240, 137, 56, 145, 64, 15, 9, 198,
-			44, 243, 69, 16, 145, 64, 15, 9, 198, 28, 84, 129, 56, 145, 64, 15, 9, 198, 76, 147, 9, 12, 145, 64, 15, 9, 198, 64, 243, 15,
-			56, 145, 64, 15, 9, 198, 36, 212, 5, 72, 145, 64, 15, 9, 198, 28, 84, 129, 56, 145, 64, 15, 9, 198, 4, 211, 79, 56, 145, 64,
-			15, 9, 198, 76, 241, 137, 76, 209, 64, 15, 9, 198, 76, 86, 9, 76, 209, 64, 15, 9, 198, 53, 85, 9, 76, 209, 64, 15, 9, 198,
-			52, 243, 137, 76, 209, 64, 15, 9, 198, 52, 19, 201, 76, 209, 64, 15, 9, 198, 45, 80, 137, 76, 209, 64, 15, 9, 198, 16, 19, 137,
-			76, 209, 64, 15, 9, 198, 88, 148, 149, 48, 83, 148, 15, 9, 198, 72, 84, 201, 16, 83, 148, 15, 9, 198, 52, 243, 149, 52, 83, 148,
-			15, 9, 198, 72, 83, 79, 56, 49, 64, 15, 9, 198, 52, 21, 18, 36, 49, 64, 15, 9, 198, 45, 83, 1, 56, 49, 64, 15, 9, 198,
-			4, 181, 18, 36, 49, 64, 15, 12, 201, 17, 32, 77, 5, 69, 82, 28, 144, 84, 15, 9, 198, 76, 194, 84, 4, 113, 64, 15, 9, 198,
-			64, 192, 77, 4, 113, 64, 15, 9, 198, 52, 243, 148, 4, 113, 64, 15, 9, 198, 25, 35, 205, 4, 113, 64, 15, 14, 2, 194, 190, 47,
-			34, 115, 49, 84, 6, 121, 34, 47, 0, 0, 9, 198, 56, 19, 143, 29, 32, 77, 15, 9, 198, 44, 147, 15, 29, 32, 77, 15, 9, 198,
-			32, 243, 15, 29, 32, 77, 15, 9, 198, 33, 148, 132, 36, 225, 5, 15, 9, 198, 29, 33, 86, 36, 225, 5, 15, 11, 200, 44, 243, 139,
-			61, 33, 1, 57, 48, 15, 11, 200, 44, 243, 132, 84, 181, 1, 57, 48, 15, 12, 201, 36, 229, 5, 72, 84, 211, 4, 229, 0, 15, 19,
-			2, 195, 183, 72, 37, 84, 37, 72, 6, 36, 51, 108, 86, 15, 65, 115, 86, 0, 0, 9, 198, 76, 86, 15, 48, 241, 192, 15, 9, 198,
-			21, 67, 143, 48, 241, 192, 15, 10, 199, 28, 20, 212, 72, 243, 143, 52, 15, 9, 198, 20, 193, 78, 16, 145, 192, 15, 9, 198, 4, 228,
-			197, 48, 145, 192, 15, 6, 195, 60, 208, 78, 15, 11, 200, 44, 243, 148, 72, 18, 5, 57, 64, 15, 11, 200, 44, 243, 77, 37, 69, 5,
-			57, 64, 15, 11, 200, 72, 81, 140, 20, 181, 1, 57, 64, 15, 11, 200, 65, 32, 75, 80, 146, 193, 57, 64, 15, 11, 200, 5, 84, 203,
-			84, 197, 1, 57, 64, 15, 13, 2, 194, 188, 36, 50, 15, 49, 84, 121, 34, 47, 0, 0, 11, 2, 194, 189, 36, 50, 6, 107, 117, 55,
-			0, 0, 9, 198, 88, 16, 195, 36, 225, 64, 15, 9, 198, 81, 84, 130, 36, 225, 64, 15, 9, 198, 80, 84, 154, 36, 225, 64, 15, 9,
-			198, 77, 69, 68, 36, 225, 64, 15, 9, 198, 52, 20, 203, 36, 225, 64, 15, 9, 198, 24, 244, 134, 36, 225, 64, 15, 12, 201, 44, 194,
-			77, 4, 181, 5, 72, 145, 76, 15, 9, 198, 84, 197, 137, 56, 65, 64, 15, 9, 198, 29, 81, 9, 56, 65, 64, 15, 14, 203, 20, 180,
-			202, 84, 115, 211, 48, 21, 137, 20, 224, 15, 10, 199, 81, 84, 130, 84, 193, 78, 76, 15, 10, 199, 44, 243, 135, 73, 81, 78, 76, 15,
-			10, 199, 5, 48, 197, 56, 65, 78, 76, 15, 12, 201, 44, 243, 147, 37, 53, 15, 72, 144, 76, 15, 9, 198, 53, 148, 137, 4, 65, 64,
-			15, 10, 199, 72, 81, 21, 56, 64, 78, 76, 15, 10, 199, 61, 33, 15, 56, 224, 78, 76, 15, 22, 2, 194, 186, 65, 6, 35, 89, 49,
-			40, 55, 37, 50, 15, 132, 72, 37, 50, 6, 35, 55, 0, 0, 12, 201, 65, 35, 199, 21, 53, 5, 72, 243, 128, 15, 9, 198, 80, 83,
-			5, 29, 32, 77, 15, 9, 198, 56, 243, 79, 29, 32, 77, 15, 9, 198, 52, 243, 143, 29, 32, 77, 15, 9, 198, 36, 65, 79, 29, 32,
-			77, 15, 9, 198, 24, 245, 15, 29, 32, 77, 15, 21, 71, 33, 145, 18, 60, 99, 201, 48, 107, 129, 72, 34, 39, 83, 6, 108, 37, 55,
-			0, 15, 0, 7, 196, 28, 83, 143, 52, 15, 0, 9, 67, 36, 177, 64, 35, 57, 49, 0, 5, 130, 195, 177, 43, 0, 15, 204, 44, 20,
-			129, 45, 65, 82, 37, 53, 9, 45, 83, 64, 15, 0, 22, 67, 48, 145, 197, 55, 37, 13, 15, 49, 39, 89, 72, 13, 0, 81, 107, 111,
-			115, 116, 101, 32, 17, 67, 48, 145, 197, 55, 37, 13, 15, 89, 108, 0, 81, 115, 195, 165, 32, 7, 196, 45, 33, 79, 48, 15, 12, 201,
-			65, 241, 1, 28, 241, 201, 45, 83, 64, 15, 6, 195, 64, 17, 197, 15, 0, 9, 198, 16, 147, 73, 77, 51, 210, 15, 9, 198, 36, 229,
-			133, 77, 67, 210, 15, 9, 198, 16, 85, 5, 45, 67, 210, 15, 0, 0, 12, 69, 8, 194, 86, 21, 32, 71, 55, 111, 34, 0, 9, 198,
-			29, 148, 143, 76, 179, 208, 15, 7, 196, 52, 147, 169, 72, 15, 11, 200, 44, 243, 80, 72, 84, 211, 61, 32, 15, 8, 197, 76, 83, 137,
-			61, 32, 15, 11, 200, 88, 83, 148, 36, 192, 84, 61, 32, 15, 11, 200, 81, 32, 78, 76, 148, 212, 61, 32, 15, 11, 200, 61, 48, 201,
-			48, 192, 84, 61, 32, 15, 11, 200, 48, 146, 214, 36, 64, 84, 61, 32, 15, 11, 200, 36, 226, 193, 77, 48, 84, 61, 32, 15, 11, 200,
-			21, 96, 80, 61, 32, 84, 61, 32, 15, 11, 200, 5, 4, 12, 36, 176, 84, 61, 32, 15, 8, 197, 88, 144, 146, 21, 32, 15, 8, 197,
-			81, 84, 142, 21, 32, 15, 8, 197, 76, 84, 150, 21, 32, 15, 8, 197, 60, 224, 78, 21, 32, 15, 12, 201, 45, 32, 68, 76, 42, 82,
-			77, 66, 71, 15, 12, 201, 28, 83, 142, 20, 209, 169, 72, 194, 71, 15, 13, 202, 25, 37, 71, 81, 51, 205, 52, 83, 9, 28, 15, 12,
-			201, 77, 84, 208, 20, 228, 207, 72, 145, 64, 15, 12, 201, 72, 84, 208, 60, 228, 207, 72, 145, 64, 15, 12, 201, 44, 243, 147, 37, 53,
-			15, 72, 145, 64, 15, 12, 201, 44, 194, 77, 4, 181, 5, 72, 145, 64, 15, 7, 196, 36, 209, 78, 76, 15, 8, 197, 76, 179, 204, 5,
-			32, 15, 8, 197, 60, 181, 76, 5, 32, 15, 9, 198, 56, 243, 73, 56, 19, 0, 15, 10, 69, 76, 84, 150, 21, 32, 21, 0, 47, 0,
-			10, 199, 88, 147, 11, 121, 35, 9, 28, 15, 10, 199, 12, 83, 12, 84, 195, 201, 16, 15, 0, 8, 197, 80, 242, 76, 21, 64, 15, 8,
-			197, 64, 83, 12, 21, 64, 15, 8, 197, 60, 209, 76, 21, 64, 15, 8, 197, 36, 99, 204, 21, 64, 15, 9, 198, 17, 80, 84, 48, 85,
-			0, 15, 8, 197, 8, 19, 12, 21, 64, 15, 8, 197, 4, 213, 76, 21, 64, 15, 8, 197, 64, 20, 9, 77, 64, 15, 8, 197, 60, 35,
-			201, 77, 64, 15, 8, 197, 44, 244, 9, 77, 64, 15, 8, 197, 8, 147, 9, 77, 64, 15, 15, 204, 76, 19, 77, 20, 226, 204, 5, 4,
-			5, 48, 145, 192, 15, 15, 204, 28, 83, 142, 20, 212, 203, 36, 227, 133, 48, 145, 192, 15, 15, 204, 16, 148, 203, 60, 229, 9, 57, 81,
-			82, 48, 145, 192, 15, 10, 199, 52, 244, 129, 80, 244, 137, 20, 15, 10, 199, 44, 243, 15, 24, 243, 137, 20, 15, 10, 199, 44, 243, 12,
-			60, 181, 137, 20, 15, 10, 199, 44, 83, 143, 80, 17, 137, 20, 15, 8, 197, 53, 84, 214, 37, 64, 15, 8, 197, 36, 226, 214, 37, 64,
-			15, 8, 197, 29, 32, 70, 37, 64, 15, 9, 198, 16, 243, 15, 52, 149, 0, 15, 9, 198, 20, 225, 15, 72, 98, 78, 15, 9, 198, 16,
-			82, 211, 81, 34, 78, 15, 10, 199, 72, 246, 65, 48, 148, 205, 20, 15, 10, 199, 61, 5, 9, 52, 148, 205, 20, 15, 10, 199, 56, 84,
-			15, 80, 148, 205, 20, 15, 10, 199, 36, 66, 79, 80, 148, 205, 20, 15, 10, 199, 24, 21, 1, 48, 148, 205, 20, 15, 10, 199, 21, 50,
-			193, 64, 148, 205, 20, 15, 10, 199, 4, 224, 82, 44, 148, 205, 20, 15, 8, 197, 88, 148, 197, 57, 64, 15, 8, 197, 72, 81, 197, 57,
-			64, 15, 8, 197, 16, 80, 197, 57, 64, 15, 8, 197, 4, 48, 197, 57, 64, 15, 8, 197, 45, 32, 86, 5, 64, 15, 8, 197, 44, 195,
-			210, 5, 64, 15, 8, 197, 17, 32, 86, 5, 64, 15, 8, 197, 88, 17, 193, 57, 64, 15, 8, 197, 61, 5, 1, 57, 64, 15, 12, 201,
-			16, 145, 134, 21, 33, 78, 80, 144, 66, 15, 0, 12, 201, 54, 146, 147, 60, 211, 69, 48, 145, 192, 15, 12, 201, 24, 244, 147, 164, 211,
-			69, 48, 145, 192, 15, 12, 201, 24, 244, 132, 164, 211, 69, 48, 145, 192, 15, 12, 201, 4, 97, 210, 124, 228, 197, 48, 145, 192, 15, 9,
-			198, 77, 68, 143, 24, 148, 203, 15, 9, 198, 76, 144, 137, 72, 148, 203, 15, 9, 198, 36, 65, 78, 80, 148, 203, 15, 9, 198, 28, 83,
-			210, 28, 148, 203, 15, 9, 198, 28, 83, 133, 72, 148, 203, 15, 9, 198, 21, 81, 197, 56, 148, 203, 15, 9, 198, 20, 118, 80, 80, 148,
-			203, 15, 9, 198, 5, 68, 143, 24, 148, 203, 15, 9, 198, 5, 32, 77, 4, 148, 203, 15, 0, 7, 196, 88, 145, 233, 72, 15, 8, 197,
-			76, 83, 147, 61, 32, 15, 8, 197, 12, 83, 147, 61, 32, 15, 8, 197, 80, 244, 148, 21, 32, 15, 8, 197, 64, 20, 140, 21, 32, 15,
-			8, 197, 60, 181, 76, 21, 32, 15, 8, 197, 52, 243, 148, 21, 32, 15, 8, 197, 44, 243, 148, 21, 32, 15, 8, 197, 44, 20, 148, 21,
-			32, 15, 8, 197, 21, 99, 204, 21, 32, 15, 8, 197, 17, 80, 140, 21, 32, 15, 12, 201, 124, 117, 5, 76, 176, 66, 20, 194, 71, 15,
-			12, 201, 33, 227, 132, 29, 34, 66, 20, 194, 71, 15, 12, 201, 24, 244, 148, 73, 241, 134, 20, 194, 71, 15, 9, 198, 56, 82, 210, 60,
-			98, 76, 15, 10, 199, 44, 244, 147, 165, 34, 65, 56, 15, 0, 9, 198, 17, 39, 211, 36, 225, 64, 15, 0, 9, 198, 76, 19, 137, 82,
-			148, 128, 15, 9, 198, 20, 208, 76, 42, 148, 128, 15, 9, 198, 17, 33, 83, 78, 148, 128, 15, 9, 198, 16, 243, 80, 82, 148, 128, 15,
-			12, 201, 88, 147, 132, 36, 49, 82, 36, 225, 192, 15, 12, 201, 77, 80, 147, 84, 209, 82, 36, 225, 192, 15, 12, 201, 76, 83, 5, 45,
-			65, 82, 36, 225, 192, 15, 12, 201, 64, 192, 84, 36, 225, 82, 36, 225, 192, 15, 12, 201, 64, 20, 211, 37, 97, 82, 36, 225, 192, 15,
-			12, 201, 64, 20, 208, 60, 193, 82, 36, 225, 192, 15, 12, 201, 61, 34, 69, 57, 65, 82, 36, 225, 192, 15, 12, 201, 52, 20, 141, 61,
-			33, 82, 36, 225, 192, 15, 12, 201, 48, 19, 69, 57, 65, 82, 36, 225, 192, 15, 12, 201, 45, 84, 147, 37, 97, 82, 36, 225, 192, 15,
-			12, 201, 44, 244, 212, 84, 209, 82, 36, 225, 192, 15, 12, 201, 44, 243, 134, 21, 33, 82, 36, 225, 192, 15, 12, 201, 44, 243, 66, 36,
-			225, 82, 36, 225, 192, 15, 12, 201, 44, 19, 11, 84, 193, 82, 36, 225, 192, 15, 12, 201, 36, 229, 5, 72, 225, 82, 36, 225, 192, 15,
-			12, 201, 36, 228, 212, 73, 81, 82, 36, 225, 192, 15, 12, 201, 36, 225, 143, 72, 209, 82, 36, 225, 192, 15, 12, 201, 36, 225, 12, 21,
-			97, 82, 36, 225, 192, 15, 12, 201, 24, 245, 82, 4, 113, 82, 36, 225, 192, 15, 12, 201, 20, 180, 208, 60, 225, 82, 36, 225, 192, 15,
-			12, 201, 16, 148, 208, 60, 225, 82, 36, 225, 192, 15, 12, 201, 16, 147, 73, 81, 65, 82, 36, 225, 192, 15, 12, 201, 16, 83, 69, 57,
-			65, 82, 36, 225, 192, 15, 12, 201, 16, 82, 204, 36, 225, 82, 36, 225, 192, 15, 12, 201, 16, 82, 204, 5, 33, 82, 36, 225, 192, 15,
-			12, 201, 12, 83, 5, 9, 33, 82, 36, 225, 192, 15, 12, 201, 8, 192, 78, 12, 129, 82, 36, 225, 192, 15, 12, 201, 8, 19, 1, 56,
-			49, 82, 36, 225, 192, 15, 12, 201, 5, 4, 18, 60, 33, 82, 36, 225, 192, 15, 9, 198, 76, 241, 15, 52, 149, 0, 15, 9, 198, 52,
-			243, 143, 48, 149, 0, 15, 8, 197, 45, 33, 68, 37, 64, 15, 8, 197, 16, 240, 197, 57, 64, 15, 6, 195, 48, 144, 78, 16, 8, 197,
-			45, 84, 129, 57, 64, 15, 8, 197, 28, 145, 193, 57, 64, 15, 8, 197, 28, 20, 129, 57, 64, 15, 0, 17, 67, 44, 243, 64, 49, 108,
-			65, 15, 89, 108, 0, 81, 115, 195, 165, 32, 9, 198, 44, 144, 83, 80, 148, 203, 15, 10, 67, 76, 243, 64, 89, 109, 65, 0, 72, 0,
-			0, 12, 201, 77, 84, 5, 73, 98, 83, 36, 243, 128, 15, 12, 201, 52, 243, 148, 20, 225, 71, 72, 147, 128, 15, 0, 9, 198, 5, 36,
-			129, 56, 113, 82, 15, 9, 198, 20, 193, 71, 36, 177, 82, 15, 10, 199, 72, 84, 208, 60, 228, 213, 52, 15, 10, 199, 52, 21, 83, 60,
-			193, 85, 52, 15, 10, 199, 44, 243, 15, 77, 67, 205, 36, 15, 0, 19, 67, 16, 83, 64, 72, 6, 115, 65, 15, 72, 36, 34, 0, 81,
-			100, 101, 114, 32, 19, 67, 16, 83, 64, 72, 6, 115, 65, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 6, 195, 16, 83, 64, 72, 0,
-			9, 198, 5, 34, 223, 60, 195, 199, 15, 0, 10, 67, 36, 72, 128, 111, 72, 6, 114, 0, 12, 201, 88, 144, 146, 4, 99, 206, 37, 53,
-			0, 15, 9, 198, 74, 145, 2, 100, 226, 84, 15, 9, 198, 77, 2, 79, 56, 17, 197, 15, 9, 198, 76, 16, 143, 80, 17, 197, 15, 9,
-			198, 64, 192, 78, 80, 17, 197, 15, 9, 198, 20, 181, 137, 64, 17, 197, 15, 0, 12, 201, 16, 144, 76, 20, 181, 15, 48, 241, 192, 15,
-			9, 198, 80, 244, 130, 37, 53, 0, 15, 9, 198, 32, 244, 142, 37, 53, 0, 15, 0, 9, 198, 32, 148, 212, 60, 195, 199, 15, 9, 198,
-			32, 148, 16, 60, 195, 199, 15, 9, 198, 28, 83, 77, 60, 195, 199, 15, 9, 198, 25, 33, 78, 60, 195, 199, 15, 6, 195, 84, 226, 75,
-			15, 10, 199, 65, 39, 202, 84, 66, 67, 20, 15, 7, 196, 45, 84, 129, 8, 15, 0, 21, 66, 29, 224, 81, 125, 15, 48, 6, 125, 15,
-			117, 0, 82, 112, 195, 165, 32, 97, 102, 32, 6, 195, 4, 210, 68, 15, 9, 198, 72, 82, 214, 37, 50, 84, 15, 0, 10, 199, 77, 64,
-			76, 4, 115, 73, 80, 15, 0, 21, 68, 44, 244, 212, 20, 49, 39, 89, 72, 13, 15, 65, 115, 86, 0, 81, 109, 101, 100, 32, 19, 68,
-			88, 147, 12, 20, 84, 37, 55, 112, 15, 89, 108, 0, 81, 115, 195, 165, 32, 21, 68, 88, 147, 12, 20, 84, 111, 55, 112, 15, 107, 6,
-			117, 0, 81, 104, 97, 118, 101, 32, 10, 199, 21, 35, 212, 60, 208, 78, 36, 15, 9, 198, 81, 85, 129, 49, 80, 78, 15, 9, 198, 8,
-			85, 10, 20, 229, 0, 15, 9, 198, 32, 244, 148, 84, 192, 78, 16, 0, 8, 197, 48, 21, 137, 56, 80, 15, 8, 197, 52, 147, 133, 72,
-			80, 15, 8, 197, 28, 83, 133, 72, 80, 15, 9, 198, 85, 48, 133, 44, 148, 203, 15, 9, 198, 72, 85, 15, 72, 148, 203, 15, 9, 198,
-			52, 245, 15, 72, 148, 203, 15, 9, 198, 48, 149, 15, 80, 148, 203, 15, 9, 198, 44, 244, 193, 44, 148, 203, 15, 9, 198, 44, 19, 143,
-			56, 148, 203, 15, 9, 198, 20, 225, 82, 28, 148, 203, 15, 9, 198, 12, 243, 79, 72, 148, 203, 15, 9, 198, 4, 209, 137, 8, 148, 203,
-			15, 9, 198, 4, 196, 193, 12, 148, 203, 15, 0, 18, 66, 77, 224, 89, 108, 15, 89, 36, 50, 47, 0, 81, 115, 101, 110, 116, 32, 16,
-			66, 77, 224, 89, 108, 15, 107, 35, 34, 0, 81, 104, 97, 114, 32, 26, 66, 77, 224, 89, 6, 125, 15, 65, 6, 125, 89, 6, 37, 13,
-			0, 82, 109, 195, 165, 32, 115, 105, 103, 101, 32, 16, 66, 77, 224, 89, 108, 15, 65, 6, 125, 0, 81, 109, 195, 165, 32, 19, 66, 77,
-			224, 89, 108, 15, 84, 6, 115, 108, 0, 81, 118, 195, 166, 114, 101, 32, 21, 66, 77, 224, 89, 108, 15, 55, 6, 115, 68, 112, 0, 81,
-			108, 195, 166, 110, 103, 101, 32, 17, 66, 77, 224, 89, 108, 15, 84, 6, 121, 34, 0, 81, 118, 97, 114, 32, 20, 66, 77, 224, 89, 108,
-			15, 107, 6, 108, 57, 47, 0, 81, 104, 195, 184, 106, 116, 32, 17, 66, 77, 224, 89, 108, 15, 84, 6, 36, 55, 0, 81, 118, 105, 108,
-			32, 20, 66, 77, 224, 89, 108, 15, 55, 6, 121, 68, 47, 0, 81, 108, 97, 110, 103, 116, 32, 18, 66, 77, 224, 89, 108, 15, 81, 6,
-			132, 34, 0, 81, 103, 195, 184, 114, 32, 15, 66, 77, 224, 89, 108, 15, 6, 115, 34, 0, 81, 101, 114, 32, 20, 66, 77, 224, 89, 108,
-			15, 65, 6, 35, 68, 112, 0, 81, 109, 97, 110, 103, 101, 32, 22, 66, 77, 224, 89, 108, 15, 65, 6, 35, 12, 57, 13, 86, 0, 81,
-			109, 101, 103, 101, 116, 32, 9, 198, 76, 244, 130, 37, 67, 204, 15, 9, 198, 73, 81, 9, 52, 83, 148, 15, 9, 198, 60, 48, 201, 16,
-			83, 148, 15, 9, 198, 16, 82, 193, 16, 83, 148, 15, 9, 198, 80, 243, 5, 72, 19, 148, 15, 9, 198, 72, 83, 5, 88, 19, 148, 15,
-			9, 198, 61, 33, 9, 56, 19, 148, 15, 9, 198, 25, 32, 80, 64, 19, 148, 15, 9, 198, 24, 192, 71, 72, 19, 148, 15, 9, 198, 24,
-			145, 213, 72, 19, 148, 15, 0, 8, 197, 16, 144, 76, 60, 112, 15, 12, 201, 52, 243, 147, 81, 42, 83, 37, 65, 84, 15, 0, 10, 199,
-			24, 83, 142, 60, 195, 199, 36, 15, 9, 198, 5, 35, 79, 16, 145, 192, 15, 9, 198, 8, 243, 9, 88, 144, 78, 15, 9, 198, 5, 53,
-			18, 4, 176, 78, 16, 10, 199, 25, 243, 143, 52, 83, 129, 48, 15, 0, 8, 197, 84, 225, 9, 56, 80, 15, 8, 197, 44, 16, 137, 56,
-			80, 15, 8, 197, 8, 240, 137, 56, 80, 15, 9, 198, 16, 144, 84, 60, 226, 75, 15, 8, 197, 64, 243, 9, 12, 80, 15, 8, 197, 64,
-			243, 65, 16, 80, 15, 10, 69, 60, 227, 9, 56, 80, 21, 0, 47, 0, 7, 196, 44, 243, 73, 44, 15, 7, 196, 44, 243, 9, 44, 15,
-			0, 13, 202, 20, 225, 9, 52, 83, 147, 36, 243, 129, 48, 15, 0, 29, 68, 12, 243, 133, 100, 6, 49, 39, 40, 50, 37, 15, 6, 35,
-			57, 55, 112, 50, 72, 0, 81, 105, 115, 108, 97, 110, 100, 32, 6, 195, 36, 179, 206, 15, 0, 12, 201, 65, 39, 211, 20, 229, 1, 80,
-			147, 206, 15, 14, 203, 44, 243, 150, 20, 229, 21, 4, 194, 78, 16, 80, 15, 8, 197, 29, 32, 70, 20, 208, 15, 0, 9, 198, 5, 85,
-			15, 65, 50, 64, 15, 9, 198, 32, 21, 83, 76, 148, 212, 15, 9, 198, 21, 50, 193, 64, 148, 212, 15, 14, 203, 4, 229, 9, 44, 243,
-			131, 21, 5, 9, 60, 224, 15, 15, 204, 76, 181, 69, 77, 2, 76, 48, 84, 137, 56, 65, 64, 15, 15, 204, 33, 84, 194, 21, 53, 25,
-			72, 84, 137, 56, 65, 64, 15, 0, 18, 67, 36, 178, 197, 36, 81, 14, 15, 107, 117, 0, 81, 104, 97, 118, 101, 32, 13, 202, 4, 178,
-			207, 53, 0, 71, 56, 21, 41, 72, 15, 10, 199, 88, 147, 204, 36, 226, 83, 80, 15, 10, 199, 80, 84, 146, 61, 34, 83, 80, 15, 10,
-			199, 80, 19, 13, 84, 66, 83, 80, 15, 10, 199, 77, 147, 66, 60, 194, 83, 80, 15, 10, 199, 77, 64, 76, 36, 226, 83, 80, 15, 10,
-			199, 77, 2, 82, 37, 66, 83, 80, 15, 10, 199, 76, 240, 201, 4, 194, 83, 80, 15, 10, 199, 76, 163, 198, 20, 194, 83, 80, 15, 10,
-			199, 76, 84, 137, 4, 194, 83, 80, 15, 10, 199, 76, 82, 212, 21, 34, 83, 80, 15, 10, 199, 72, 84, 197, 73, 98, 83, 80, 15, 10,
-			199, 65, 34, 86, 5, 66, 83, 80, 15, 10, 199, 64, 197, 82, 4, 194, 83, 80, 15, 10, 199, 60, 178, 213, 49, 66, 83, 80, 15, 10,
-			199, 53, 149, 20, 21, 34, 83, 80, 15, 10, 199, 52, 245, 9, 60, 226, 83, 80, 15, 10, 199, 52, 19, 137, 21, 34, 83, 80, 15, 10,
-			199, 44, 243, 131, 37, 2, 83, 80, 15, 10, 199, 44, 242, 193, 36, 226, 83, 80, 15, 10, 199, 44, 16, 130, 4, 194, 83, 80, 15, 10,
-			199, 32, 83, 12, 20, 226, 83, 80, 15, 10, 199, 29, 82, 84, 5, 34, 83, 80, 15, 10, 199, 24, 244, 141, 4, 194, 83, 80, 15, 10,
-			199, 24, 85, 9, 12, 130, 83, 80, 15, 10, 199, 16, 20, 151, 36, 226, 83, 80, 15, 10, 199, 12, 83, 66, 4, 194, 83, 80, 15, 10,
-			199, 12, 19, 22, 36, 226, 83, 80, 15, 10, 199, 4, 181, 9, 60, 226, 83, 80, 15, 10, 199, 4, 36, 213, 72, 66, 83, 80, 15, 12,
-			201, 4, 178, 207, 53, 0, 71, 56, 84, 128, 15, 0, 14, 69, 40, 19, 15, 85, 128, 89, 57, 118, 6, 55, 123, 0, 9, 198, 61, 1,
-			82, 5, 67, 210, 15, 9, 198, 36, 226, 133, 45, 67, 210, 15, 11, 200, 80, 83, 5, 24, 243, 137, 77, 64, 15, 11, 200, 76, 84, 1,
-			72, 21, 9, 77, 64, 15, 11, 200, 76, 83, 73, 56, 20, 137, 77, 64, 15, 11, 200, 64, 83, 147, 36, 243, 137, 77, 64, 15, 11, 200,
-			64, 20, 131, 20, 195, 9, 77, 64, 15, 11, 200, 52, 243, 133, 80, 20, 137, 77, 64, 15, 11, 200, 52, 147, 137, 52, 19, 9, 77, 64,
-			15, 11, 200, 48, 144, 146, 21, 69, 9, 77, 64, 15, 11, 200, 44, 244, 142, 21, 69, 9, 77, 64, 15, 11, 200, 44, 21, 84, 36, 243,
-			137, 77, 64, 15, 11, 200, 24, 243, 11, 48, 244, 137, 77, 64, 15, 11, 200, 24, 147, 1, 80, 83, 9, 77, 64, 15, 11, 200, 4, 229,
-			1, 28, 243, 137, 77, 64, 15, 11, 200, 4, 194, 207, 32, 243, 9, 77, 64, 15, 9, 198, 65, 241, 9, 5, 68, 137, 15, 9, 198, 65,
-			54, 75, 37, 50, 192, 15, 14, 69, 77, 84, 211, 21, 128, 89, 109, 89, 116, 81, 89, 0, 0, 7, 196, 81, 83, 79, 72, 15, 7, 196,
-			80, 83, 143, 72, 15, 13, 202, 81, 32, 78, 76, 99, 210, 52, 21, 15, 72, 15, 7, 196, 28, 148, 133, 72, 15, 8, 197, 20, 212, 9,
-			72, 144, 15, 8, 197, 76, 241, 15, 52, 144, 15, 12, 201, 74, 147, 148, 28, 83, 143, 29, 32, 70, 15, 0, 11, 200, 77, 66, 77, 84,
-			192, 84, 61, 32, 15, 11, 200, 4, 224, 76, 101, 48, 84, 61, 32, 15, 8, 197, 65, 35, 194, 21, 32, 15, 8, 197, 52, 145, 210, 21,
-			32, 15, 8, 197, 24, 192, 78, 21, 32, 15, 6, 195, 32, 144, 84, 15, 6, 195, 4, 112, 84, 15, 9, 198, 52, 147, 137, 52, 19, 0,
-			15, 9, 198, 16, 145, 201, 80, 19, 0, 15, 0, 0, 8, 197, 77, 64, 84, 85, 64, 15, 8, 197, 77, 66, 76, 21, 64, 15, 8, 197,
-			76, 243, 9, 77, 64, 15, 8, 197, 57, 81, 9, 77, 64, 15, 8, 197, 52, 241, 9, 77, 64, 15, 8, 197, 8, 21, 9, 77, 64, 15,
-			8, 197, 77, 83, 6, 37, 64, 15, 8, 197, 56, 149, 18, 37, 64, 15, 8, 197, 21, 52, 18, 37, 64, 15, 9, 198, 44, 195, 210, 4,
-			210, 78, 15, 8, 197, 44, 194, 69, 57, 64, 15, 8, 197, 77, 83, 6, 5, 64, 15, 8, 197, 77, 2, 78, 5, 64, 15, 8, 197, 56,
-			149, 18, 5, 64, 15, 8, 197, 33, 145, 18, 5, 64, 15, 8, 197, 29, 32, 78, 5, 64, 15, 8, 197, 12, 149, 18, 5, 64, 15, 8,
-			197, 88, 18, 193, 57, 64, 15, 8, 197, 64, 146, 193, 57, 64, 15, 0, 17, 70, 14, 38, 129, 56, 225, 78, 89, 114, 89, 6, 117, 50,
-			14, 50, 0, 11, 67, 76, 149, 0, 89, 6, 37, 47, 0, 72, 0, 8, 197, 80, 244, 148, 85, 32, 15, 8, 197, 73, 84, 20, 85, 32,
-			15, 8, 197, 44, 243, 148, 85, 32, 15, 7, 196, 33, 83, 105, 72, 15, 8, 197, 41, 83, 137, 61, 32, 15, 8, 197, 80, 245, 80, 21,
-			32, 15, 8, 197, 80, 83, 132, 21, 32, 15, 8, 197, 76, 21, 84, 21, 32, 15, 8, 197, 44, 16, 200, 21, 32, 15, 8, 197, 25, 83,
-			132, 21, 32, 15, 8, 197, 21, 35, 196, 21, 32, 15, 8, 197, 20, 194, 68, 21, 32, 15, 8, 197, 16, 19, 132, 21, 32, 15, 11, 70,
-			92, 130, 80, 12, 244, 132, 21, 0, 47, 10, 69, 13, 84, 147, 61, 32, 21, 0, 47, 0, 12, 201, 32, 84, 141, 4, 100, 143, 16, 149,
-			0, 15, 12, 201, 72, 81, 140, 20, 181, 5, 72, 85, 0, 15, 10, 69, 92, 147, 132, 61, 112, 21, 0, 47, 0, 9, 198, 80, 21, 15,
-			90, 148, 128, 15, 9, 198, 76, 242, 71, 58, 148, 128, 15, 9, 198, 5, 81, 9, 82, 148, 128, 15, 8, 197, 76, 17, 9, 77, 64, 15,
-			8, 197, 5, 85, 9, 77, 64, 15, 8, 197, 5, 65, 73, 77, 64, 15, 12, 201, 52, 19, 137, 65, 83, 1, 80, 147, 206, 15, 10, 199,
-			61, 1, 143, 72, 209, 82, 20, 15, 8, 197, 72, 84, 208, 37, 64, 15, 8, 197, 32, 149, 20, 37, 64, 15, 9, 198, 45, 35, 205, 5,
-			66, 78, 15, 9, 198, 4, 35, 210, 36, 114, 78, 15, 12, 201, 29, 37, 78, 17, 69, 137, 28, 144, 78, 15, 9, 198, 24, 147, 9, 65,
-			2, 78, 15, 8, 197, 76, 243, 4, 5, 64, 15, 8, 197, 25, 64, 76, 5, 64, 15, 8, 197, 4, 49, 84, 5, 64, 15, 8, 197, 76,
-			82, 193, 57, 64, 15, 0, 9, 198, 76, 176, 66, 74, 148, 192, 15, 9, 198, 65, 33, 67, 38, 148, 192, 15, 9, 198, 56, 244, 141, 50,
-			148, 192, 15, 9, 198, 29, 32, 67, 38, 148, 192, 15, 9, 198, 28, 83, 133, 74, 148, 192, 15, 12, 201, 65, 39, 208, 5, 33, 82, 36,
-			225, 192, 15, 9, 198, 121, 34, 21, 76, 144, 78, 15, 24, 4, 95, 53, 88, 111, 107, 117, 55, 47, 16, 6, 115, 89, 36, 50, 89, 47,
-			129, 84, 14, 50, 14, 0, 0, 12, 201, 124, 181, 137, 88, 19, 5, 72, 147, 135, 15, 13, 202, 76, 81, 9, 52, 83, 148, 21, 34, 78,
-			28, 15, 13, 202, 65, 35, 214, 36, 19, 148, 21, 34, 78, 28, 15, 13, 202, 44, 243, 148, 72, 20, 212, 21, 34, 78, 28, 15, 13, 202,
-			44, 243, 147, 60, 194, 68, 21, 34, 78, 28, 15, 12, 201, 36, 212, 18, 124, 115, 133, 72, 147, 135, 15, 12, 201, 65, 35, 208, 61, 37,
-			9, 60, 225, 76, 15, 12, 201, 44, 243, 150, 20, 229, 9, 60, 225, 76, 15, 8, 67, 80, 80, 200, 21, 0, 47, 11, 70, 64, 20, 211,
-			92, 244, 132, 21, 0, 47, 0, 11, 200, 88, 83, 148, 36, 192, 84, 165, 32, 15, 11, 200, 81, 32, 78, 76, 192, 84, 165, 32, 15, 11,
-			200, 64, 84, 134, 61, 32, 84, 165, 32, 15, 11, 200, 60, 36, 197, 73, 96, 84, 165, 32, 15, 11, 200, 57, 83, 77, 21, 32, 84, 165,
-			32, 15, 11, 200, 52, 19, 149, 17, 82, 212, 165, 32, 15, 11, 200, 44, 243, 208, 21, 32, 84, 165, 32, 15, 11, 200, 44, 243, 148, 72,
-			243, 12, 165, 32, 15, 11, 200, 36, 225, 143, 72, 208, 84, 165, 32, 15, 11, 200, 20, 180, 208, 20, 66, 84, 165, 32, 15, 11, 200, 4,
-			181, 80, 84, 226, 212, 165, 32, 15, 9, 198, 8, 20, 143, 29, 32, 77, 15, 9, 198, 5, 69, 15, 29, 32, 77, 15, 14, 203, 72, 82,
-			1, 8, 147, 9, 80, 84, 137, 56, 112, 15, 14, 203, 52, 243, 143, 25, 67, 206, 28, 84, 137, 56, 112, 15, 14, 203, 12, 83, 148, 72,
-			19, 9, 76, 84, 137, 56, 112, 15, 8, 197, 52, 19, 137, 76, 176, 15, 8, 197, 52, 85, 18, 36, 176, 15, 12, 201, 24, 20, 200, 36,
-			243, 133, 72, 85, 0, 15, 0, 17, 70, 48, 81, 197, 56, 65, 82, 55, 36, 81, 6, 115, 50, 72, 108, 0, 9, 198, 76, 192, 86, 37,
-			53, 0, 15, 12, 201, 77, 80, 147, 45, 34, 80, 80, 147, 206, 15, 12, 201, 76, 21, 9, 76, 96, 75, 80, 147, 206, 15, 12, 201, 72,
-			84, 18, 60, 69, 75, 80, 147, 206, 15, 12, 201, 65, 35, 211, 45, 34, 80, 80, 147, 206, 15, 12, 201, 41, 84, 137, 76, 66, 75, 80,
-			147, 206, 15, 12, 201, 36, 229, 5, 72, 161, 75, 80, 147, 206, 15, 15, 204, 84, 67, 65, 81, 34, 75, 84, 193, 82, 36, 225, 192, 15,
-			15, 204, 77, 80, 150, 20, 229, 9, 60, 225, 82, 36, 225, 192, 15, 15, 204, 65, 35, 208, 61, 37, 9, 60, 225, 82, 36, 225, 192, 15,
-			15, 204, 44, 243, 148, 36, 225, 197, 57, 65, 82, 36, 225, 192, 15, 15, 204, 9, 35, 206, 44, 244, 203, 61, 1, 82, 36, 225, 192, 15,
-			9, 198, 88, 16, 195, 36, 225, 82, 15, 9, 198, 81, 33, 80, 4, 225, 82, 15, 9, 198, 81, 33, 77, 84, 193, 82, 15, 9, 198, 81,
-			32, 78, 12, 129, 82, 15, 9, 198, 80, 244, 144, 20, 65, 82, 15, 9, 198, 77, 84, 16, 60, 225, 82, 15, 10, 199, 61, 4, 213, 52,
-			209, 82, 20, 15, 9, 198, 72, 85, 1, 72, 65, 82, 15, 9, 198, 72, 84, 207, 72, 33, 82, 15, 9, 198, 72, 84, 201, 28, 225, 82,
-			15, 9, 198, 72, 82, 214, 37, 33, 82, 15, 9, 198, 72, 81, 149, 56, 65, 82, 15, 9, 198, 72, 19, 80, 60, 225, 82, 15, 9, 198,
-			72, 17, 134, 36, 225, 82, 15, 9, 198, 65, 35, 208, 60, 225, 82, 15, 9, 198, 65, 35, 205, 20, 225, 82, 15, 9, 198, 65, 35, 198,
-			37, 65, 82, 15, 9, 198, 65, 35, 198, 4, 225, 82, 15, 9, 198, 65, 35, 195, 20, 65, 82, 15, 9, 198, 64, 84, 131, 37, 1, 82,
-			15, 9, 198, 61, 48, 201, 48, 193, 82, 15, 9, 198, 56, 149, 133, 48, 193, 82, 15, 9, 198, 52, 245, 73, 48, 193, 82, 15, 9, 198,
-			52, 245, 9, 60, 225, 82, 15, 9, 198, 52, 243, 5, 77, 65, 82, 15, 9, 198, 48, 146, 214, 36, 65, 82, 15, 9, 198, 44, 244, 146,
-			20, 193, 82, 15, 9, 198, 44, 243, 80, 60, 225, 82, 15, 9, 198, 44, 243, 80, 36, 193, 82, 15, 9, 198, 44, 243, 77, 5, 65, 82,
-			15, 9, 198, 44, 19, 142, 20, 193, 82, 15, 9, 198, 36, 226, 193, 72, 225, 82, 15, 9, 198, 36, 212, 15, 73, 65, 82, 15, 9, 198,
-			29, 32, 84, 36, 225, 82, 15, 9, 198, 29, 32, 78, 84, 193, 82, 15, 9, 198, 25, 37, 83, 81, 33, 82, 15, 9, 198, 24, 244, 141,
-			84, 193, 82, 15, 9, 198, 24, 20, 195, 36, 225, 82, 15, 9, 198, 21, 128, 197, 48, 193, 82, 15, 9, 198, 21, 50, 207, 73, 65, 82,
-			15, 9, 198, 20, 208, 129, 48, 193, 82, 15, 9, 198, 20, 180, 208, 20, 65, 82, 15, 9, 198, 16, 148, 203, 85, 65, 82, 15, 9, 198,
-			16, 81, 210, 4, 65, 82, 15, 9, 198, 12, 130, 75, 4, 225, 82, 15, 9, 198, 5, 69, 1, 12, 129, 82, 15, 9, 198, 4, 227, 149,
-			48, 193, 82, 15, 9, 198, 4, 227, 133, 45, 65, 82, 15, 9, 198, 4, 197, 5, 72, 225, 82, 15, 9, 198, 4, 178, 214, 37, 33, 82,
-			15, 9, 198, 4, 68, 207, 72, 33, 82, 15, 9, 198, 4, 36, 212, 36, 225, 82, 15, 10, 199, 28, 84, 141, 4, 226, 85, 52, 15, 10,
-			199, 80, 18, 211, 60, 227, 205, 36, 15, 9, 198, 5, 49, 80, 80, 146, 192, 15, 11, 70, 72, 80, 197, 37, 97, 82, 21, 0, 47, 0,
-			8, 197, 41, 83, 5, 72, 144, 15, 16, 69, 76, 19, 1, 52, 144, 89, 117, 55, 6, 117, 65, 37, 0, 15, 7, 196, 76, 244, 129, 56,
-			15, 7, 196, 8, 83, 137, 56, 15, 7, 196, 44, 244, 129, 56, 16, 0, 13, 202, 88, 17, 193, 8, 243, 132, 21, 34, 78, 28, 15, 12,
-			201, 65, 39, 211, 21, 37, 133, 72, 147, 135, 15, 13, 202, 8, 19, 132, 21, 35, 204, 21, 34, 78, 28, 15, 10, 199, 36, 212, 18, 124,
-			115, 133, 72, 15, 7, 196, 8, 21, 9, 44, 15, 0, 13, 202, 44, 243, 148, 72, 245, 133, 73, 50, 69, 48, 15, 0, 10, 199, 76, 18,
-			203, 5, 35, 211, 20, 15, 10, 199, 12, 83, 12, 84, 195, 211, 20, 15, 15, 204, 20, 180, 203, 60, 211, 85, 56, 146, 193, 80, 147, 206,
-			15, 15, 204, 20, 180, 197, 53, 3, 9, 24, 146, 193, 80, 147, 206, 15, 15, 204, 77, 148, 212, 20, 208, 84, 37, 49, 82, 36, 225, 192,
-			15, 15, 204, 77, 64, 78, 16, 20, 132, 37, 49, 82, 36, 225, 192, 15, 15, 204, 76, 83, 147, 36, 34, 76, 37, 49, 82, 36, 225, 192,
-			15, 15, 204, 72, 17, 9, 60, 66, 82, 36, 113, 82, 36, 225, 192, 15, 15, 204, 65, 35, 199, 56, 244, 212, 36, 49, 82, 36, 225, 192,
-			15, 15, 204, 52, 21, 5, 72, 144, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 16, 144, 71, 56, 244, 212, 36, 49, 82, 36, 225, 192,
-			15, 15, 204, 8, 17, 193, 80, 83, 12, 37, 49, 82, 36, 225, 192, 15, 12, 201, 65, 39, 196, 37, 52, 15, 56, 84, 128, 15, 0, 9,
-			198, 65, 54, 75, 60, 195, 199, 15, 15, 204, 44, 243, 12, 20, 181, 9, 88, 148, 197, 72, 147, 135, 15, 15, 204, 20, 180, 197, 53, 3,
-			9, 24, 144, 197, 72, 147, 135, 15, 15, 204, 16, 148, 203, 88, 19, 9, 24, 144, 197, 72, 147, 135, 15, 15, 204, 16, 83, 73, 48, 149,
-			1, 72, 148, 197, 72, 147, 135, 15, 8, 197, 76, 147, 79, 56, 144, 15, 0, 11, 200, 44, 243, 138, 84, 226, 212, 85, 32, 15, 11, 200,
-			36, 229, 133, 77, 66, 84, 85, 32, 15, 11, 200, 4, 181, 80, 84, 226, 212, 85, 32, 15, 9, 198, 76, 84, 150, 37, 69, 84, 15, 9,
-			198, 5, 69, 18, 36, 37, 84, 15, 12, 201, 81, 80, 133, 72, 181, 76, 61, 49, 64, 15, 12, 201, 64, 20, 143, 16, 243, 148, 61, 49,
-			64, 15, 12, 201, 64, 20, 129, 16, 83, 148, 61, 49, 64, 15, 12, 201, 52, 85, 1, 52, 244, 134, 61, 49, 64, 15, 12, 201, 8, 147,
-			8, 5, 38, 137, 61, 49, 64, 15, 12, 201, 5, 98, 84, 4, 210, 78, 61, 49, 64, 15, 9, 198, 48, 149, 21, 72, 114, 64, 15, 12,
-			201, 77, 65, 87, 5, 33, 5, 77, 49, 64, 15, 12, 201, 4, 178, 213, 72, 21, 5, 77, 49, 64, 15, 6, 195, 125, 64, 78, 16, 0,
-			17, 70, 24, 243, 132, 4, 229, 0, 83, 108, 68, 72, 6, 121, 68, 0, 15, 0, 8, 197, 73, 85, 9, 56, 80, 15, 8, 197, 61, 96,
-			82, 36, 80, 15, 8, 197, 61, 96, 82, 36, 80, 15, 9, 198, 76, 83, 65, 57, 66, 75, 15, 9, 198, 16, 241, 205, 5, 66, 75, 15,
-			8, 197, 64, 245, 1, 28, 80, 15, 10, 69, 77, 21, 65, 72, 80, 21, 0, 47, 0, 7, 195, 85, 52, 210, 13, 42, 13, 202, 76, 83,
-			22, 24, 147, 129, 57, 50, 69, 72, 15, 9, 198, 48, 148, 9, 105, 160, 78, 15, 9, 198, 32, 21, 193, 36, 144, 78, 15, 9, 198, 4,
-			225, 15, 73, 32, 78, 15, 9, 198, 80, 19, 9, 76, 208, 78, 16, 0, 6, 195, 85, 48, 64, 13, 8, 197, 84, 99, 204, 60, 112, 15,
-			8, 197, 65, 35, 204, 60, 112, 15, 8, 197, 61, 67, 204, 60, 112, 15, 6, 195, 44, 83, 73, 15, 12, 201, 36, 225, 9, 24, 97, 82,
-			20, 229, 0, 15, 0, 9, 198, 17, 80, 140, 4, 229, 0, 15, 12, 68, 12, 130, 78, 4, 47, 57, 136, 50, 118, 0, 9, 68, 92, 130,
-			84, 20, 21, 0, 47, 0, 8, 197, 61, 34, 197, 72, 80, 15, 8, 197, 48, 85, 133, 72, 80, 15, 8, 197, 5, 50, 197, 76, 80, 15,
-			8, 197, 5, 32, 76, 36, 80, 15, 8, 197, 37, 34, 68, 36, 80, 15, 9, 198, 72, 243, 65, 57, 66, 75, 15, 9, 198, 48, 241, 201,
-			77, 66, 75, 15, 8, 197, 52, 19, 9, 12, 80, 15, 0, 11, 200, 21, 2, 68, 36, 20, 203, 61, 0, 15, 12, 201, 77, 80, 147, 80,
-			149, 21, 80, 147, 206, 15, 12, 201, 65, 35, 203, 48, 19, 65, 80, 147, 206, 15, 12, 201, 44, 243, 150, 21, 36, 193, 80, 147, 206, 15,
-			12, 201, 44, 243, 147, 64, 148, 129, 80, 147, 206, 15, 12, 201, 44, 243, 132, 20, 228, 193, 80, 147, 206, 15, 12, 201, 44, 243, 132, 20,
-			211, 129, 80, 147, 206, 15, 12, 201, 44, 243, 80, 20, 228, 193, 80, 147, 206, 15, 12, 201, 44, 20, 9, 81, 83, 1, 80, 147, 206, 15,
-			12, 201, 36, 229, 18, 61, 97, 82, 76, 147, 206, 15, 12, 201, 36, 228, 197, 52, 147, 129, 80, 147, 206, 15, 12, 201, 36, 195, 21, 77,
-			68, 129, 80, 147, 206, 15, 12, 201, 20, 180, 211, 64, 148, 129, 80, 147, 206, 15, 12, 201, 20, 180, 208, 48, 244, 129, 80, 147, 206, 15,
-			12, 201, 20, 180, 193, 52, 147, 129, 80, 147, 206, 15, 12, 201, 16, 148, 208, 20, 228, 193, 80, 147, 206, 15, 12, 201, 12, 149, 137, 48,
-			148, 193, 80, 147, 206, 15, 12, 201, 5, 85, 15, 72, 148, 193, 80, 147, 206, 15, 12, 201, 5, 52, 201, 52, 147, 1, 80, 147, 206, 15,
-			12, 201, 4, 208, 76, 28, 19, 65, 80, 147, 206, 15, 12, 201, 4, 178, 213, 53, 83, 1, 80, 147, 206, 15, 12, 201, 4, 48, 197, 48,
-			84, 129, 80, 147, 206, 15, 13, 202, 72, 83, 1, 80, 149, 137, 77, 66, 83, 44, 15, 13, 202, 65, 35, 214, 60, 176, 84, 61, 34, 83,
-			44, 15, 13, 202, 64, 20, 129, 16, 145, 205, 5, 66, 83, 44, 15, 13, 202, 48, 147, 12, 20, 20, 201, 5, 66, 83, 44, 15, 13, 202,
-			44, 19, 11, 84, 192, 84, 61, 34, 83, 44, 15, 13, 202, 36, 228, 208, 37, 32, 84, 61, 34, 83, 44, 15, 13, 202, 36, 225, 143, 72,
-			208, 84, 61, 34, 83, 44, 15, 13, 202, 32, 245, 20, 20, 229, 15, 81, 66, 83, 44, 15, 13, 202, 16, 144, 71, 72, 19, 77, 5, 66,
-			83, 44, 15, 13, 202, 16, 82, 204, 5, 32, 84, 61, 34, 83, 44, 15, 13, 202, 8, 243, 19, 40, 85, 137, 77, 66, 83, 44, 15, 13,
-			202, 5, 34, 83, 80, 242, 210, 5, 66, 83, 44, 15, 13, 202, 4, 180, 207, 56, 243, 69, 81, 34, 83, 44, 15, 12, 201, 4, 229, 9,
-			32, 148, 212, 4, 210, 78, 15, 9, 198, 4, 209, 82, 36, 176, 78, 15, 9, 198, 56, 20, 139, 60, 208, 78, 16, 9, 198, 52, 84, 137,
-			16, 144, 78, 16, 0, 13, 202, 76, 81, 9, 52, 83, 148, 5, 66, 79, 56, 15, 13, 202, 52, 19, 137, 24, 84, 212, 5, 66, 79, 56,
-			15, 13, 202, 44, 243, 134, 72, 243, 148, 5, 66, 79, 56, 15, 13, 202, 16, 242, 213, 52, 83, 148, 5, 66, 79, 56, 15, 13, 202, 5,
-			33, 213, 52, 83, 148, 5, 66, 79, 56, 15, 14, 203, 44, 243, 148, 72, 20, 21, 56, 181, 9, 76, 176, 15, 14, 203, 44, 20, 129, 45,
-			65, 82, 37, 53, 9, 76, 176, 15, 14, 203, 16, 83, 147, 37, 67, 205, 21, 68, 137, 76, 176, 15, 7, 196, 76, 21, 9, 56, 15, 7,
-			196, 44, 19, 73, 56, 15, 8, 197, 45, 35, 206, 36, 176, 15, 0, 15, 204, 44, 20, 129, 45, 65, 82, 60, 195, 199, 37, 50, 192, 15,
-			10, 199, 84, 197, 9, 52, 21, 21, 52, 15, 10, 199, 64, 84, 134, 20, 181, 21, 52, 15, 10, 199, 80, 84, 146, 5, 34, 85, 52, 15,
-			10, 199, 77, 147, 80, 61, 50, 85, 52, 15, 10, 199, 44, 243, 12, 20, 114, 85, 52, 15, 10, 199, 5, 84, 208, 36, 50, 85, 52, 15,
-			9, 198, 21, 81, 197, 56, 146, 192, 15, 9, 198, 5, 67, 5, 80, 146, 192, 15, 0, 8, 197, 61, 53, 5, 72, 144, 15, 15, 204, 25,
-			83, 139, 80, 147, 206, 4, 194, 83, 80, 148, 203, 15, 8, 197, 36, 225, 129, 52, 144, 15, 10, 199, 49, 244, 133, 72, 147, 132, 20, 15,
-			0, 12, 201, 88, 242, 193, 48, 148, 193, 80, 147, 206, 15, 12, 201, 72, 84, 212, 5, 84, 129, 80, 147, 206, 15, 12, 201, 72, 21, 9,
-			32, 16, 137, 80, 147, 206, 15, 12, 201, 65, 35, 211, 80, 149, 21, 80, 147, 206, 15, 12, 201, 48, 81, 193, 48, 148, 193, 80, 147, 206,
-			15, 12, 201, 44, 243, 147, 80, 149, 21, 80, 147, 206, 15, 12, 201, 44, 243, 147, 36, 115, 129, 80, 147, 206, 15, 12, 201, 44, 243, 15,
-			56, 148, 193, 80, 147, 206, 15, 12, 201, 44, 21, 5, 44, 148, 193, 80, 147, 206, 15, 12, 201, 44, 19, 129, 48, 148, 193, 80, 147, 206,
-			15, 12, 201, 36, 229, 5, 73, 97, 78, 80, 147, 206, 15, 12, 201, 36, 226, 193, 52, 147, 129, 80, 147, 206, 15, 12, 201, 36, 195, 21,
-			52, 147, 129, 80, 147, 206, 15, 12, 201, 24, 144, 146, 36, 195, 1, 80, 147, 206, 15, 16, 205, 24, 145, 5, 36, 179, 205, 52, 148, 211,
-			5, 34, 83, 44, 15, 12, 201, 44, 20, 130, 61, 37, 78, 17, 83, 64, 15, 12, 201, 44, 20, 130, 60, 194, 78, 21, 83, 64, 15, 12,
-			201, 64, 20, 148, 36, 50, 80, 37, 83, 64, 15, 9, 198, 32, 20, 141, 60, 226, 64, 15, 0, 8, 197, 25, 244, 137, 77, 64, 15, 7,
-			196, 80, 19, 15, 56, 15, 13, 202, 72, 85, 18, 60, 99, 5, 45, 50, 79, 56, 15, 13, 202, 28, 195, 210, 36, 98, 75, 5, 66, 79,
-			56, 15, 8, 197, 53, 148, 212, 36, 176, 15, 9, 198, 73, 244, 207, 56, 224, 66, 15, 8, 67, 12, 242, 197, 21, 0, 47, 6, 195, 80,
-			147, 0, 76, 6, 195, 88, 83, 0, 76, 0, 10, 199, 77, 68, 137, 44, 177, 82, 36, 15, 7, 196, 37, 35, 206, 36, 15, 13, 202, 88,
-			147, 204, 36, 226, 83, 80, 147, 132, 20, 15, 0, 15, 204, 81, 32, 78, 76, 98, 71, 85, 32, 84, 36, 243, 128, 15, 15, 204, 64, 84,
-			147, 60, 226, 70, 36, 176, 84, 36, 243, 128, 15, 15, 204, 52, 21, 5, 72, 144, 76, 37, 48, 84, 36, 243, 128, 15, 15, 204, 45, 38,
-			83, 80, 19, 12, 37, 48, 84, 36, 243, 128, 15, 15, 204, 16, 149, 133, 73, 50, 70, 36, 176, 84, 36, 243, 128, 15, 15, 204, 16, 145,
-			134, 21, 33, 78, 80, 144, 84, 36, 243, 128, 15, 15, 204, 5, 85, 5, 57, 66, 70, 36, 176, 84, 36, 243, 128, 15, 6, 195, 88, 81,
-			0, 76, 0, 10, 66, 92, 48, 84, 6, 36, 89, 36, 0, 9, 198, 85, 35, 204, 60, 114, 64, 15, 11, 200, 97, 147, 15, 24, 243, 137,
-			77, 64, 15, 11, 200, 88, 84, 147, 36, 243, 137, 77, 64, 15, 11, 200, 81, 35, 205, 8, 243, 137, 77, 64, 15, 11, 200, 76, 22, 15,
-			24, 243, 137, 77, 64, 15, 11, 200, 72, 17, 9, 44, 19, 9, 77, 64, 15, 11, 200, 64, 244, 201, 80, 149, 137, 77, 64, 15, 11, 200,
-			64, 243, 25, 28, 19, 73, 77, 64, 15, 11, 200, 64, 19, 70, 48, 85, 9, 77, 64, 15, 11, 200, 56, 81, 193, 80, 149, 137, 77, 64,
-			15, 11, 200, 52, 147, 9, 80, 20, 137, 77, 64, 15, 11, 200, 52, 19, 137, 13, 84, 137, 77, 64, 15, 11, 200, 44, 243, 134, 61, 35,
-			73, 77, 64, 15, 11, 200, 44, 195, 203, 44, 83, 137, 77, 64, 15, 11, 200, 44, 20, 9, 80, 19, 9, 77, 64, 15, 11, 200, 28, 83,
-			133, 72, 19, 9, 77, 64, 15, 11, 200, 21, 96, 78, 28, 83, 9, 77, 64, 15, 11, 200, 12, 128, 85, 88, 147, 137, 77, 64, 15, 9,
-			198, 56, 243, 73, 56, 83, 0, 15, 9, 198, 64, 20, 129, 76, 243, 0, 15, 9, 198, 48, 144, 133, 72, 19, 0, 15, 9, 198, 28, 192,
-			67, 36, 19, 0, 15, 14, 70, 12, 240, 203, 56, 86, 64, 49, 108, 49, 50, 113, 0, 11, 70, 52, 18, 15, 56, 86, 64, 21, 0, 47,
-			0, 7, 196, 16, 240, 197, 72, 15, 7, 196, 5, 35, 69, 72, 15, 9, 198, 5, 64, 86, 37, 51, 69, 15, 9, 198, 4, 226, 77, 37,
-			51, 69, 15, 7, 196, 12, 145, 193, 72, 15, 0, 14, 70, 8, 82, 71, 56, 85, 0, 71, 36, 68, 36, 0, 66, 10, 199, 76, 179, 205,
-			4, 113, 82, 36, 15, 10, 199, 64, 20, 134, 84, 209, 82, 36, 15, 9, 198, 24, 18, 212, 60, 145, 0, 15, 9, 198, 24, 21, 143, 72,
-			149, 0, 15, 9, 198, 4, 181, 129, 88, 149, 0, 15, 9, 198, 29, 32, 83, 76, 21, 0, 15, 9, 198, 16, 83, 5, 28, 21, 0, 15,
-			0, 9, 198, 16, 144, 83, 44, 244, 0, 15, 9, 198, 65, 35, 211, 60, 66, 75, 15, 0, 9, 198, 64, 18, 201, 77, 64, 78, 15, 9,
-			198, 80, 20, 140, 5, 64, 78, 16, 9, 198, 52, 243, 69, 57, 64, 78, 16, 0, 12, 201, 8, 81, 21, 36, 228, 212, 4, 211, 69, 67,
-			12, 201, 77, 3, 206, 80, 19, 137, 80, 85, 0, 15, 7, 196, 72, 17, 5, 72, 15, 9, 198, 54, 144, 140, 21, 33, 64, 15, 0, 6,
-			195, 88, 244, 148, 72, 0, 11, 200, 65, 39, 196, 36, 181, 9, 60, 224, 15, 9, 198, 76, 19, 133, 72, 147, 135, 15, 9, 198, 52, 147,
-			133, 72, 147, 135, 15, 9, 198, 28, 148, 133, 72, 147, 135, 15, 9, 198, 17, 84, 5, 72, 147, 135, 15, 9, 198, 16, 146, 203, 20, 66,
-			75, 15, 15, 2, 95, 33, 40, 72, 51, 108, 71, 89, 47, 121, 57, 50, 0, 0, 14, 203, 81, 32, 68, 37, 66, 79, 56, 19, 9, 77,
-			64, 15, 13, 202, 65, 35, 199, 72, 19, 77, 21, 34, 78, 28, 15, 13, 202, 52, 19, 20, 72, 18, 212, 21, 34, 78, 28, 15, 13, 202,
-			24, 18, 211, 36, 210, 76, 21, 34, 78, 28, 15, 13, 202, 20, 180, 208, 5, 68, 137, 21, 34, 78, 28, 15, 12, 201, 77, 68, 129, 8,
-			17, 19, 21, 33, 64, 15, 12, 201, 64, 244, 201, 80, 147, 206, 21, 33, 64, 15, 12, 201, 64, 20, 129, 25, 32, 83, 21, 33, 64, 15,
-			12, 201, 52, 85, 1, 77, 64, 83, 21, 33, 64, 15, 12, 201, 44, 243, 148, 72, 243, 12, 21, 33, 64, 15, 12, 201, 25, 83, 139, 80,
-			147, 206, 21, 33, 64, 15, 12, 201, 25, 32, 75, 80, 147, 206, 21, 33, 64, 15, 12, 201, 16, 149, 137, 76, 147, 206, 21, 33, 64, 15,
-			12, 201, 4, 208, 137, 80, 147, 206, 21, 33, 64, 15, 12, 201, 60, 208, 68, 72, 84, 211, 21, 33, 64, 15, 20, 73, 76, 128, 75, 21,
-			52, 5, 5, 33, 64, 91, 116, 37, 49, 89, 71, 111, 34, 0, 0, 7, 196, 8, 85, 15, 56, 15, 12, 201, 76, 243, 9, 16, 20, 137,
-			80, 85, 0, 15, 12, 201, 72, 81, 213, 48, 20, 137, 80, 85, 0, 15, 13, 202, 164, 179, 206, 60, 210, 83, 21, 34, 78, 28, 15, 13,
-			202, 84, 67, 65, 58, 149, 146, 21, 34, 78, 28, 15, 14, 203, 20, 180, 208, 48, 144, 201, 80, 84, 137, 56, 112, 15, 16, 69, 52, 83,
-			137, 76, 176, 65, 36, 50, 6, 37, 89, 49, 0, 15, 12, 201, 81, 32, 78, 77, 97, 83, 80, 149, 0, 15, 0, 10, 199, 65, 39, 195,
-			37, 50, 79, 56, 15, 11, 200, 65, 39, 205, 36, 84, 137, 56, 112, 15, 15, 204, 4, 101, 159, 72, 113, 77, 20, 176, 78, 37, 51, 69,
-			15, 9, 198, 80, 83, 65, 80, 146, 192, 15, 9, 198, 64, 243, 5, 52, 146, 192, 15, 9, 198, 28, 83, 133, 80, 146, 192, 15, 9, 198,
-			24, 243, 133, 80, 146, 192, 15, 9, 198, 4, 181, 83, 80, 146, 192, 15, 0, 15, 204, 36, 228, 213, 8, 244, 132, 36, 224, 84, 36, 243,
-			128, 15, 15, 204, 4, 178, 204, 36, 208, 84, 37, 48, 84, 36, 243, 128, 15, 0, 13, 202, 81, 34, 65, 56, 117, 76, 21, 34, 78, 28,
-			15, 16, 205, 81, 32, 78, 76, 148, 212, 61, 34, 83, 21, 34, 78, 28, 15, 13, 202, 77, 80, 147, 80, 149, 21, 21, 34, 78, 28, 15,
-			13, 202, 77, 68, 129, 56, 117, 76, 21, 34, 78, 28, 15, 13, 202, 72, 80, 201, 72, 181, 76, 21, 34, 78, 28, 15, 13, 202, 65, 35,
-			211, 64, 82, 212, 21, 34, 78, 28, 15, 13, 202, 64, 20, 148, 36, 50, 80, 21, 34, 78, 28, 15, 13, 202, 44, 243, 147, 80, 149, 21,
-			21, 34, 78, 28, 15, 13, 202, 44, 243, 80, 48, 85, 20, 21, 34, 78, 28, 15, 16, 205, 25, 83, 139, 80, 147, 206, 4, 194, 83, 21,
-			34, 78, 28, 15, 16, 205, 9, 84, 133, 5, 82, 210, 5, 66, 83, 21, 34, 78, 28, 15, 9, 198, 88, 146, 193, 72, 145, 82, 15, 9,
-			198, 80, 244, 148, 85, 33, 82, 15, 9, 198, 80, 83, 80, 21, 33, 82, 15, 9, 198, 77, 147, 139, 61, 1, 82, 15, 9, 198, 76, 81,
-			210, 20, 113, 82, 15, 9, 198, 72, 84, 207, 49, 97, 82, 15, 9, 198, 72, 83, 79, 57, 65, 82, 15, 9, 198, 72, 83, 1, 45, 49,
-			82, 15, 9, 198, 72, 80, 197, 57, 49, 82, 15, 9, 198, 4, 100, 133, 4, 113, 82, 15, 9, 198, 65, 35, 205, 61, 97, 82, 15, 9,
-			198, 65, 35, 202, 36, 49, 82, 15, 9, 198, 64, 83, 12, 21, 65, 82, 15, 9, 198, 61, 34, 71, 4, 209, 82, 15, 9, 198, 56, 81,
-			204, 36, 113, 82, 15, 9, 198, 44, 244, 146, 84, 113, 82, 15, 9, 198, 44, 243, 208, 21, 33, 82, 15, 9, 198, 44, 243, 135, 73, 81,
-			82, 15, 9, 198, 44, 243, 131, 37, 1, 82, 15, 9, 198, 44, 242, 203, 21, 33, 82, 15, 9, 198, 36, 229, 143, 49, 97, 82, 15, 9,
-			198, 36, 229, 133, 77, 65, 82, 15, 9, 198, 36, 229, 133, 73, 65, 82, 15, 9, 198, 36, 228, 201, 77, 65, 82, 15, 9, 198, 36, 226,
-			214, 37, 33, 82, 15, 9, 198, 36, 211, 73, 29, 33, 82, 15, 9, 198, 29, 32, 86, 37, 65, 82, 15, 9, 198, 28, 19, 15, 65, 1,
-			82, 15, 9, 198, 25, 84, 201, 60, 225, 82, 15, 9, 198, 24, 147, 135, 21, 33, 82, 15, 9, 198, 24, 18, 212, 85, 33, 82, 15, 9,
-			198, 21, 128, 197, 73, 1, 82, 15, 9, 198, 21, 96, 80, 61, 33, 82, 15, 9, 198, 20, 180, 197, 45, 97, 82, 15, 9, 198, 16, 148,
-			208, 85, 65, 82, 15, 9, 198, 16, 85, 5, 45, 65, 82, 15, 9, 198, 16, 84, 18, 5, 97, 82, 15, 9, 198, 16, 83, 79, 57, 65,
-			82, 15, 9, 198, 16, 82, 193, 57, 65, 82, 15, 9, 198, 16, 81, 140, 61, 33, 82, 15, 9, 198, 16, 19, 65, 76, 49, 82, 15, 9,
-			198, 12, 83, 147, 85, 33, 82, 15, 9, 198, 12, 83, 69, 57, 65, 82, 15, 9, 198, 8, 20, 212, 60, 225, 82, 15, 9, 198, 5, 69,
-			18, 5, 1, 82, 15, 9, 198, 5, 67, 205, 37, 49, 82, 15, 9, 198, 5, 36, 133, 77, 65, 82, 15, 9, 198, 4, 211, 133, 77, 65,
-			82, 15, 9, 198, 4, 113, 210, 20, 113, 82, 15, 9, 198, 4, 48, 197, 65, 65, 82, 15, 9, 198, 4, 36, 207, 49, 97, 82, 15, 9,
-			198, 81, 148, 129, 56, 226, 64, 15, 9, 198, 16, 144, 75, 60, 226, 64, 15, 7, 196, 9, 85, 9, 44, 15, 0, 19, 67, 16, 83, 128,
-			72, 6, 115, 50, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 19, 67, 16, 83, 128, 72, 6, 115, 50, 15, 72, 36, 34, 0, 81, 100,
-			101, 114, 32, 13, 202, 64, 20, 148, 36, 50, 80, 5, 66, 79, 56, 15, 13, 202, 44, 243, 147, 80, 83, 12, 5, 66, 79, 56, 15, 13,
-			202, 36, 229, 5, 73, 5, 78, 45, 66, 79, 56, 15, 14, 203, 88, 149, 1, 52, 147, 137, 76, 84, 137, 56, 112, 15, 14, 203, 81, 32,
-			78, 77, 3, 210, 80, 84, 137, 56, 112, 15, 14, 203, 81, 32, 78, 76, 99, 210, 52, 84, 137, 56, 112, 15, 14, 203, 77, 147, 139, 72,
-			243, 137, 76, 84, 137, 56, 112, 15, 14, 203, 77, 65, 82, 20, 245, 25, 64, 84, 137, 56, 112, 15, 14, 203, 72, 82, 207, 57, 53, 18,
-			84, 84, 137, 56, 112, 15, 14, 203, 44, 243, 132, 37, 66, 79, 56, 84, 137, 56, 112, 15, 14, 203, 44, 192, 83, 76, 145, 137, 12, 84,
-			137, 56, 112, 15, 14, 203, 28, 192, 77, 61, 84, 137, 76, 84, 137, 56, 112, 15, 14, 203, 16, 84, 201, 56, 99, 210, 52, 84, 137, 56,
-			112, 15, 14, 203, 5, 85, 15, 56, 243, 73, 76, 84, 137, 56, 112, 15, 8, 197, 73, 84, 212, 36, 176, 15, 8, 197, 21, 35, 212, 36,
-			176, 15, 8, 197, 17, 84, 12, 36, 176, 15, 10, 67, 16, 83, 128, 72, 115, 50, 0, 72, 0, 10, 199, 5, 48, 133, 77, 67, 211, 20,
-			15, 13, 202, 77, 71, 210, 61, 1, 82, 5, 66, 79, 56, 15, 12, 201, 65, 35, 198, 21, 52, 201, 60, 225, 76, 15, 12, 201, 44, 243,
-			134, 21, 52, 201, 60, 225, 76, 15, 12, 201, 65, 35, 198, 21, 52, 201, 60, 224, 76, 15, 12, 71, 64, 83, 148, 32, 245, 83, 20, 21,
-			0, 47, 0, 20, 8, 119, 99, 39, 101, 114, 110, 101, 115, 84, 6, 36, 89, 36, 108, 50, 13, 89, 0, 14, 204, 44, 20, 129, 45, 65,
-			82, 37, 53, 9, 44, 243, 128, 8, 197, 21, 85, 15, 56, 144, 15, 8, 197, 5, 53, 5, 56, 144, 15, 10, 2, 95, 41, 89, 47, 39,
-			50, 36, 0, 11, 2, 95, 41, 89, 47, 36, 84, 36, 50, 0, 10, 2, 95, 41, 89, 47, 36, 84, 36, 0, 12, 2, 95, 41, 89, 107,
-			37, 34, 55, 36, 129, 0, 11, 2, 95, 41, 80, 35, 34, 72, 37, 50, 0, 11, 2, 95, 41, 80, 35, 81, 50, 36, 129, 0, 10, 2,
-			95, 41, 80, 35, 47, 107, 129, 0, 12, 2, 95, 41, 80, 35, 34, 47, 37, 36, 34, 0, 10, 2, 95, 41, 80, 107, 40, 80, 49, 0,
-			9, 2, 95, 41, 80, 35, 48, 36, 0, 0, 9, 198, 81, 34, 76, 60, 114, 64, 15, 9, 198, 4, 224, 76, 60, 114, 64, 15, 9, 198,
-			4, 195, 5, 72, 114, 64, 15, 9, 198, 4, 176, 68, 20, 210, 64, 15, 11, 200, 65, 39, 198, 21, 33, 78, 12, 80, 15, 0, 12, 201,
-			81, 34, 71, 60, 227, 205, 21, 68, 137, 15, 12, 201, 64, 192, 78, 28, 83, 205, 21, 68, 137, 15, 6, 195, 32, 84, 128, 72, 0, 31,
-			76, 77, 21, 65, 72, 81, 1, 56, 49, 82, 56, 84, 192, 89, 49, 58, 6, 115, 108, 72, 117, 12, 50, 89, 108, 20, 50, 13, 89, 0,
-			11, 200, 52, 19, 149, 24, 18, 212, 85, 32, 15, 11, 200, 5, 34, 201, 80, 82, 212, 85, 32, 15, 11, 200, 4, 116, 137, 45, 83, 20,
-			85, 32, 15, 11, 200, 4, 66, 149, 16, 19, 148, 85, 32, 15, 11, 2, 95, 46, 48, 125, 68, 47, 125, 65, 0, 0, 7, 196, 72, 145,
-			201, 16, 15, 14, 2, 95, 45, 71, 37, 50, 14, 89, 72, 34, 121, 37, 0, 0, 11, 2, 95, 44, 49, 6, 39, 65, 35, 12, 0, 0,
-			12, 67, 53, 36, 192, 65, 36, 89, 36, 89, 0, 25, 9, 198, 44, 242, 31, 76, 147, 206, 15, 11, 200, 44, 243, 150, 21, 33, 197, 57,
-			48, 15, 11, 200, 16, 148, 203, 72, 84, 1, 57, 48, 15, 9, 67, 88, 20, 128, 84, 121, 0, 76, 11, 67, 16, 84, 128, 72, 116, 34,
-			0, 76, 72, 9, 2, 95, 51, 47, 51, 6, 114, 0, 0, 10, 199, 32, 85, 5, 72, 243, 143, 52, 15, 8, 2, 95, 50, 47, 6, 39,
-			0, 0, 10, 199, 77, 147, 159, 77, 65, 83, 36, 15, 10, 199, 44, 147, 159, 77, 65, 83, 36, 15, 12, 201, 24, 244, 134, 165, 33, 82,
-			37, 50, 192, 15, 9, 198, 72, 83, 65, 56, 83, 147, 15, 9, 198, 36, 225, 140, 84, 83, 147, 15, 9, 198, 36, 225, 15, 48, 83, 147,
-			15, 9, 198, 20, 195, 203, 88, 83, 147, 15, 8, 197, 56, 243, 65, 16, 80, 15, 9, 198, 49, 83, 73, 56, 19, 147, 15, 9, 198, 16,
-			243, 73, 56, 19, 147, 15, 9, 2, 95, 49, 6, 36, 12, 50, 0, 0, 12, 201, 65, 35, 204, 60, 225, 193, 80, 147, 206, 15, 12, 201,
-			64, 84, 148, 85, 32, 129, 80, 147, 206, 15, 12, 201, 52, 20, 212, 85, 32, 129, 80, 147, 206, 15, 12, 201, 44, 243, 147, 84, 197, 1,
-			80, 147, 206, 15, 12, 201, 36, 225, 9, 76, 180, 133, 80, 147, 206, 15, 12, 201, 36, 212, 12, 4, 229, 1, 80, 147, 206, 15, 12, 201,
-			24, 84, 141, 20, 229, 1, 80, 147, 206, 15, 12, 201, 5, 84, 203, 84, 197, 1, 80, 147, 206, 15, 13, 202, 76, 84, 130, 60, 180, 143,
-			5, 66, 83, 44, 15, 12, 201, 64, 19, 31, 60, 116, 129, 24, 148, 203, 15, 13, 202, 52, 81, 137, 77, 67, 198, 20, 194, 83, 44, 15,
-			9, 198, 76, 18, 203, 5, 34, 78, 15, 11, 200, 44, 243, 150, 21, 33, 197, 57, 64, 15, 11, 200, 77, 84, 16, 48, 146, 193, 57, 64,
-			15, 11, 200, 52, 147, 137, 77, 68, 129, 57, 64, 15, 11, 200, 44, 243, 77, 4, 225, 1, 57, 64, 15, 11, 200, 24, 195, 210, 37, 52,
-			193, 57, 64, 15, 9, 2, 95, 48, 6, 50, 125, 55, 0, 0, 13, 202, 52, 244, 148, 36, 98, 75, 5, 66, 79, 56, 15, 13, 202, 44,
-			243, 77, 84, 226, 75, 5, 66, 79, 56, 15, 13, 202, 28, 84, 212, 36, 181, 76, 5, 66, 79, 56, 15, 13, 202, 24, 244, 148, 36, 98,
-			75, 5, 66, 79, 56, 15, 13, 202, 16, 148, 211, 36, 210, 76, 5, 66, 79, 56, 15, 14, 203, 44, 243, 147, 64, 148, 129, 80, 244, 137,
-			76, 176, 15, 14, 203, 20, 180, 193, 52, 147, 129, 80, 244, 137, 76, 176, 15, 14, 203, 12, 149, 137, 48, 148, 193, 80, 244, 137, 76, 176,
-			15, 9, 2, 95, 55, 89, 6, 130, 58, 0, 0, 10, 199, 88, 85, 5, 72, 147, 159, 72, 15, 10, 199, 52, 148, 211, 36, 243, 159, 72,
-			15, 10, 199, 32, 84, 133, 16, 149, 31, 72, 15, 10, 199, 20, 193, 77, 20, 229, 31, 72, 15, 12, 201, 25, 243, 143, 52, 83, 143, 48,
-			241, 201, 15, 15, 204, 88, 84, 147, 36, 98, 75, 5, 67, 210, 37, 50, 192, 15, 15, 204, 36, 212, 18, 61, 98, 83, 5, 67, 210, 37,
-			50, 192, 15, 6, 195, 4, 114, 76, 15, 9, 198, 52, 85, 15, 16, 146, 192, 15, 9, 198, 44, 21, 15, 48, 146, 192, 15, 10, 2, 95,
-			54, 89, 6, 116, 81, 89, 0, 0, 8, 197, 4, 193, 75, 76, 144, 15, 9, 198, 76, 22, 15, 24, 243, 128, 15, 9, 198, 36, 135, 210,
-			16, 145, 192, 15, 16, 69, 72, 243, 65, 56, 144, 34, 39, 65, 6, 117, 50, 37, 0, 15, 10, 199, 5, 85, 15, 52, 240, 137, 48, 15,
-			12, 201, 72, 85, 19, 52, 81, 9, 12, 147, 128, 15, 7, 196, 48, 242, 193, 48, 15, 9, 2, 95, 53, 83, 6, 116, 65, 0, 0, 9,
-			198, 65, 35, 199, 72, 19, 64, 15, 9, 198, 125, 33, 197, 73, 34, 71, 15, 9, 198, 76, 19, 72, 165, 34, 71, 15, 9, 198, 64, 85,
-			9, 81, 83, 64, 15, 9, 198, 56, 147, 194, 37, 83, 64, 15, 9, 2, 95, 52, 83, 6, 37, 108, 0, 0, 11, 67, 81, 83, 133, 47,
-			40, 50, 14, 0, 41, 12, 201, 44, 243, 80, 48, 83, 69, 57, 71, 210, 15, 9, 198, 76, 181, 77, 48, 84, 137, 15, 9, 198, 45, 37,
-			75, 44, 84, 137, 15, 9, 198, 4, 225, 201, 88, 84, 137, 15, 10, 199, 24, 244, 147, 125, 67, 9, 28, 15, 15, 2, 95, 59, 89, 36,
-			65, 37, 49, 39, 12, 55, 108, 50, 0, 0, 10, 67, 64, 130, 76, 83, 37, 60, 0, 25, 12, 201, 88, 83, 147, 44, 16, 133, 48, 145,
-			192, 15, 12, 201, 80, 18, 206, 20, 211, 69, 48, 145, 192, 15, 12, 201, 76, 176, 82, 65, 50, 78, 16, 145, 192, 15, 12, 201, 76, 83,
-			19, 44, 16, 133, 48, 145, 192, 15, 12, 201, 61, 97, 82, 76, 181, 69, 48, 145, 192, 15, 12, 201, 60, 213, 22, 37, 53, 5, 48, 145,
-			192, 15, 12, 201, 60, 212, 203, 72, 149, 133, 48, 145, 192, 15, 12, 201, 60, 212, 203, 36, 101, 5, 48, 145, 192, 15, 12, 201, 56, 81,
-			2, 73, 145, 5, 48, 145, 192, 15, 12, 201, 44, 81, 19, 60, 211, 69, 48, 145, 192, 15, 12, 201, 44, 19, 77, 21, 32, 84, 48, 145,
-			192, 15, 12, 201, 32, 84, 147, 44, 16, 133, 48, 145, 192, 15, 12, 201, 29, 81, 4, 60, 211, 69, 48, 145, 192, 15, 12, 201, 29, 32,
-			78, 28, 149, 133, 48, 145, 192, 15, 12, 201, 28, 83, 139, 20, 225, 5, 48, 145, 192, 15, 12, 201, 24, 244, 150, 20, 229, 5, 48, 145,
-			192, 15, 12, 201, 24, 244, 149, 17, 49, 69, 48, 145, 192, 15, 12, 201, 24, 244, 148, 73, 145, 5, 48, 145, 192, 15, 12, 201, 24, 244,
-			148, 60, 194, 197, 48, 145, 192, 15, 12, 201, 24, 244, 147, 45, 145, 5, 48, 145, 192, 15, 12, 201, 24, 244, 142, 20, 211, 69, 48, 145,
-			192, 15, 12, 201, 24, 244, 141, 5, 53, 5, 48, 145, 192, 15, 12, 201, 24, 244, 139, 5, 53, 5, 48, 145, 192, 15, 12, 201, 8, 241,
-			211, 80, 21, 133, 48, 145, 192, 15, 12, 201, 4, 68, 203, 36, 195, 5, 48, 145, 192, 15, 8, 197, 44, 20, 141, 36, 224, 15, 8, 197,
-			28, 84, 141, 4, 224, 15, 12, 2, 95, 58, 49, 6, 39, 12, 55, 108, 50, 0, 0, 10, 199, 76, 243, 4, 21, 34, 83, 80, 15, 10,
-			199, 65, 35, 203, 85, 34, 83, 80, 15, 10, 199, 56, 245, 133, 48, 194, 83, 80, 15, 10, 199, 52, 244, 134, 36, 226, 83, 80, 15, 10,
-			199, 52, 241, 5, 72, 226, 83, 80, 15, 10, 199, 52, 20, 207, 12, 130, 83, 80, 15, 10, 199, 52, 20, 203, 36, 226, 83, 80, 15, 10,
-			199, 44, 243, 80, 60, 226, 83, 80, 15, 10, 199, 44, 243, 77, 84, 226, 83, 80, 15, 10, 199, 32, 148, 212, 61, 34, 83, 80, 15, 10,
-			199, 32, 20, 144, 20, 226, 83, 80, 15, 10, 199, 24, 17, 207, 81, 66, 83, 80, 15, 10, 199, 12, 243, 21, 52, 226, 83, 80, 15, 18,
-			207, 81, 32, 78, 77, 53, 66, 77, 64, 78, 80, 144, 84, 36, 243, 128, 15, 8, 2, 95, 57, 50, 6, 111, 0, 0, 9, 198, 16, 81,
-			133, 57, 51, 210, 15, 9, 198, 44, 20, 129, 52, 83, 0, 15, 12, 201, 56, 81, 5, 72, 68, 159, 29, 66, 71, 15, 12, 201, 88, 81,
-			197, 80, 20, 137, 76, 209, 64, 15, 12, 201, 76, 82, 213, 48, 20, 137, 76, 209, 64, 15, 12, 201, 65, 84, 137, 80, 19, 137, 76, 209,
-			64, 15, 12, 201, 64, 244, 201, 80, 149, 137, 76, 209, 64, 15, 12, 201, 56, 81, 193, 80, 149, 137, 76, 209, 64, 15, 12, 201, 52, 147,
-			9, 80, 20, 137, 76, 209, 64, 15, 12, 201, 52, 85, 1, 8, 243, 9, 76, 209, 64, 15, 12, 201, 44, 243, 139, 72, 85, 9, 76, 209,
-			64, 15, 12, 201, 32, 81, 197, 52, 243, 137, 76, 209, 64, 15, 12, 201, 12, 83, 148, 72, 19, 9, 76, 209, 64, 15, 12, 201, 8, 243,
-			19, 40, 85, 137, 76, 209, 64, 15, 12, 201, 4, 36, 207, 49, 85, 9, 76, 209, 64, 15, 8, 197, 76, 145, 206, 4, 192, 15, 10, 2,
-			95, 56, 6, 125, 12, 72, 13, 0, 0, 9, 198, 4, 195, 5, 28, 244, 137, 15, 10, 199, 52, 81, 7, 165, 35, 9, 28, 15, 8, 197,
-			88, 19, 5, 57, 48, 15, 18, 2, 95, 63, 89, 48, 132, 34, 89, 65, 125, 55, 89, 47, 121, 57, 50, 0, 0, 11, 200, 65, 35, 203,
-			85, 32, 84, 61, 32, 15, 9, 198, 52, 85, 15, 16, 148, 212, 15, 9, 198, 76, 183, 212, 80, 84, 137, 15, 9, 198, 64, 167, 203, 44,
-			84, 137, 15, 10, 199, 45, 84, 129, 80, 244, 137, 20, 15, 10, 199, 28, 195, 211, 76, 20, 137, 20, 15, 0, 7, 196, 52, 147, 149, 80,
-			15, 9, 198, 65, 35, 212, 21, 66, 75, 15, 9, 198, 45, 35, 205, 5, 66, 75, 15, 0, 9, 198, 12, 130, 75, 4, 234, 83, 15, 13,
-			202, 20, 224, 217, 44, 195, 208, 124, 66, 83, 80, 15, 13, 202, 80, 147, 6, 61, 35, 1, 16, 83, 9, 28, 15, 13, 202, 29, 81, 19,
-			40, 19, 77, 21, 35, 9, 28, 15, 9, 198, 88, 83, 133, 80, 144, 78, 15, 9, 198, 76, 144, 201, 48, 144, 78, 15, 9, 198, 88, 19,
-			5, 72, 144, 78, 16, 9, 198, 52, 243, 132, 36, 19, 0, 15, 9, 198, 45, 96, 82, 80, 19, 0, 15, 8, 67, 76, 227, 194, 21, 0,
-			47, 0, 9, 198, 52, 19, 137, 13, 84, 133, 15, 9, 198, 88, 243, 20, 36, 122, 82, 15, 9, 198, 77, 1, 68, 37, 74, 82, 15, 9,
-			198, 76, 245, 84, 20, 234, 82, 15, 9, 198, 76, 181, 76, 65, 74, 82, 15, 9, 198, 72, 81, 1, 45, 74, 82, 15, 9, 198, 56, 149,
-			133, 48, 202, 82, 15, 9, 198, 37, 51, 204, 5, 74, 82, 15, 9, 198, 36, 225, 197, 56, 154, 82, 15, 9, 198, 29, 85, 133, 72, 234,
-			82, 15, 9, 198, 16, 148, 133, 45, 74, 82, 15, 9, 198, 16, 85, 1, 12, 138, 82, 15, 9, 198, 16, 84, 197, 73, 74, 82, 15, 9,
-			198, 16, 80, 129, 81, 74, 82, 15, 9, 198, 4, 227, 143, 56, 58, 82, 15, 12, 201, 84, 227, 210, 52, 19, 9, 80, 85, 0, 15, 12,
-			201, 48, 144, 133, 72, 19, 9, 80, 85, 0, 15, 9, 198, 45, 82, 143, 56, 84, 133, 15, 9, 198, 44, 20, 146, 36, 84, 133, 15, 9,
-			198, 29, 34, 76, 48, 84, 133, 15, 12, 201, 44, 148, 211, 20, 210, 83, 76, 84, 137, 15, 10, 199, 164, 179, 204, 60, 114, 83, 44, 15,
-			10, 199, 24, 20, 137, 77, 242, 83, 44, 15, 12, 201, 60, 36, 197, 73, 96, 84, 61, 34, 69, 15, 12, 201, 16, 148, 12, 60, 208, 84,
-			5, 34, 69, 15, 16, 70, 77, 2, 84, 24, 148, 133, 89, 48, 114, 47, 83, 136, 109, 0, 8, 197, 32, 83, 132, 21, 48, 76, 0, 7,
-			196, 48, 146, 233, 72, 15, 12, 201, 84, 226, 86, 21, 36, 193, 48, 148, 212, 15, 12, 201, 52, 84, 139, 4, 229, 9, 48, 148, 212, 15,
-			12, 201, 44, 243, 77, 4, 225, 9, 80, 148, 212, 15, 12, 201, 37, 51, 204, 5, 66, 79, 56, 148, 212, 15, 12, 201, 88, 243, 20, 36,
-			113, 82, 36, 225, 192, 15, 12, 201, 88, 83, 148, 36, 193, 82, 36, 225, 192, 15, 12, 201, 88, 16, 195, 36, 225, 82, 36, 225, 192, 15,
-			12, 201, 84, 68, 207, 73, 65, 82, 36, 225, 192, 15, 12, 201, 84, 68, 129, 56, 113, 82, 36, 225, 192, 15, 12, 201, 84, 68, 12, 4,
-			49, 82, 36, 225, 192, 15, 12, 201, 81, 33, 80, 4, 225, 82, 36, 225, 192, 15, 12, 201, 81, 32, 78, 12, 129, 82, 36, 225, 192, 15,
-			12, 201, 81, 32, 70, 36, 177, 82, 36, 225, 192, 15, 12, 201, 80, 244, 144, 20, 65, 82, 36, 225, 192, 15, 12, 201, 80, 83, 80, 21,
-			33, 82, 36, 225, 192, 15, 12, 201, 80, 20, 5, 81, 49, 82, 36, 225, 192, 15, 12, 201, 80, 19, 80, 60, 225, 82, 36, 225, 192, 15,
-			12, 201, 80, 16, 133, 48, 193, 82, 36, 225, 192, 15, 12, 201, 77, 147, 139, 61, 1, 82, 36, 225, 192, 15, 12, 201, 77, 80, 140, 36,
-			209, 82, 36, 225, 192, 15, 12, 201, 72, 85, 133, 73, 49, 82, 36, 225, 192, 15, 12, 201, 72, 85, 129, 49, 81, 82, 36, 225, 192, 15,
-			12, 201, 72, 85, 1, 72, 65, 82, 36, 225, 192, 15, 12, 201, 72, 82, 214, 37, 33, 82, 36, 225, 192, 15, 12, 201, 72, 81, 149, 56,
-			65, 82, 36, 225, 192, 15, 12, 201, 72, 80, 76, 37, 49, 82, 36, 225, 192, 15, 12, 201, 72, 21, 9, 60, 225, 82, 36, 225, 192, 15,
-			12, 201, 72, 19, 80, 60, 225, 82, 36, 225, 192, 15, 12, 201, 72, 17, 134, 36, 225, 82, 36, 225, 192, 15, 12, 201, 65, 80, 140, 36,
-			49, 82, 36, 225, 192, 15, 12, 201, 65, 35, 212, 20, 113, 82, 36, 225, 192, 15, 12, 201, 65, 35, 205, 61, 97, 82, 36, 225, 192, 15,
-			12, 201, 65, 35, 202, 36, 49, 82, 36, 225, 192, 15, 12, 201, 65, 35, 198, 4, 225, 82, 36, 225, 192, 15, 12, 201, 64, 83, 12, 21,
-			65, 82, 36, 225, 192, 15, 12, 201, 64, 19, 12, 21, 65, 82, 36, 225, 192, 15, 12, 201, 52, 245, 73, 48, 193, 82, 36, 225, 192, 15,
-			12, 201, 52, 245, 9, 60, 225, 82, 36, 225, 192, 15, 12, 201, 52, 243, 5, 77, 65, 82, 36, 225, 192, 15, 12, 201, 52, 241, 5, 48,
-			193, 82, 36, 225, 192, 15, 12, 201, 52, 20, 135, 36, 225, 82, 36, 225, 192, 15, 12, 201, 48, 146, 214, 36, 65, 82, 36, 225, 192, 15,
-			12, 201, 45, 85, 133, 73, 65, 82, 36, 225, 192, 15, 12, 201, 44, 243, 150, 60, 161, 82, 36, 225, 192, 15, 12, 201, 44, 243, 148, 85,
-			33, 82, 36, 225, 192, 15, 12, 201, 44, 243, 147, 84, 209, 82, 36, 225, 192, 15, 12, 201, 44, 243, 80, 60, 225, 82, 36, 225, 192, 15,
-			12, 201, 44, 243, 80, 36, 193, 82, 36, 225, 192, 15, 12, 201, 44, 243, 77, 5, 65, 82, 36, 225, 192, 15, 12, 201, 44, 242, 203, 21,
-			33, 82, 36, 225, 192, 15, 12, 201, 44, 19, 142, 20, 193, 82, 36, 225, 192, 15, 12, 201, 36, 229, 143, 49, 97, 82, 36, 225, 192, 15,
-			12, 201, 36, 229, 133, 77, 65, 82, 36, 225, 192, 15, 12, 201, 36, 229, 133, 73, 65, 82, 36, 225, 192, 15, 12, 201, 36, 228, 208, 36,
-			49, 82, 36, 225, 192, 15, 12, 201, 32, 20, 144, 84, 225, 82, 36, 225, 192, 15, 12, 201, 29, 32, 86, 37, 65, 82, 36, 225, 192, 15,
-			12, 201, 29, 32, 84, 36, 225, 82, 36, 225, 192, 15, 12, 201, 29, 32, 78, 84, 193, 82, 36, 225, 192, 15, 12, 201, 28, 19, 15, 65,
-			1, 82, 36, 225, 192, 15, 12, 201, 25, 37, 83, 81, 33, 82, 36, 225, 192, 15, 12, 201, 24, 244, 198, 5, 65, 82, 36, 225, 192, 15,
-			12, 201, 24, 244, 141, 84, 193, 82, 36, 225, 192, 15, 12, 201, 24, 244, 141, 5, 65, 82, 36, 225, 192, 15, 12, 201, 24, 19, 148, 5,
-			49, 82, 36, 225, 192, 15, 12, 201, 24, 18, 212, 85, 33, 82, 36, 225, 192, 15, 12, 201, 21, 128, 197, 73, 1, 82, 36, 225, 192, 15,
-			12, 201, 21, 96, 80, 61, 33, 82, 36, 225, 192, 15, 12, 201, 21, 50, 207, 73, 65, 82, 36, 225, 192, 15, 12, 201, 21, 35, 212, 37,
-			49, 82, 36, 225, 192, 15, 12, 201, 20, 225, 15, 77, 49, 82, 36, 225, 192, 15, 12, 201, 20, 208, 129, 48, 193, 82, 36, 225, 192, 15,
-			12, 201, 20, 180, 208, 20, 65, 82, 36, 225, 192, 15, 12, 201, 20, 180, 197, 45, 97, 82, 36, 225, 192, 15, 12, 201, 17, 84, 12, 36,
-			49, 82, 36, 225, 192, 15, 12, 201, 16, 85, 5, 45, 65, 82, 36, 225, 192, 15, 12, 201, 16, 85, 1, 48, 161, 82, 36, 225, 192, 15,
-			12, 201, 16, 84, 201, 28, 225, 82, 36, 225, 192, 15, 12, 201, 16, 84, 18, 5, 97, 82, 36, 225, 192, 15, 12, 201, 16, 84, 12, 61,
-			145, 82, 36, 225, 192, 15, 12, 201, 16, 84, 12, 4, 49, 82, 36, 225, 192, 15, 12, 201, 16, 83, 79, 57, 65, 82, 36, 225, 192, 15,
-			12, 201, 16, 83, 65, 76, 177, 82, 36, 225, 192, 15, 12, 201, 16, 83, 65, 72, 177, 82, 36, 225, 192, 15, 12, 201, 16, 82, 193, 57,
-			65, 82, 36, 225, 192, 15, 12, 201, 16, 81, 210, 4, 65, 82, 36, 225, 192, 15, 12, 201, 16, 81, 140, 61, 33, 82, 36, 225, 192, 15,
-			12, 201, 16, 19, 65, 76, 49, 82, 36, 225, 192, 15, 12, 201, 12, 83, 147, 85, 33, 82, 36, 225, 192, 15, 12, 201, 12, 83, 69, 57,
-			65, 82, 36, 225, 192, 15, 12, 201, 5, 69, 18, 5, 1, 82, 36, 225, 192, 15, 12, 201, 5, 69, 1, 12, 129, 82, 36, 225, 192, 15,
-			12, 201, 5, 52, 207, 73, 65, 82, 36, 225, 192, 15, 12, 201, 5, 52, 207, 12, 145, 82, 36, 225, 192, 15, 12, 201, 5, 4, 15, 73,
-			65, 82, 36, 225, 192, 15, 12, 201, 5, 4, 12, 36, 49, 82, 36, 225, 192, 15, 12, 201, 4, 227, 149, 48, 193, 82, 36, 225, 192, 15,
-			12, 201, 4, 227, 133, 45, 65, 82, 36, 225, 192, 15, 12, 201, 4, 225, 204, 37, 49, 82, 36, 225, 192, 15, 12, 201, 4, 197, 5, 72,
-			225, 82, 36, 225, 192, 15, 12, 201, 4, 181, 9, 60, 225, 82, 36, 225, 192, 15, 12, 201, 4, 113, 210, 20, 113, 82, 36, 225, 192, 15,
-			12, 201, 4, 68, 207, 72, 33, 82, 36, 225, 192, 15, 12, 201, 4, 68, 133, 77, 49, 82, 36, 225, 192, 15, 12, 201, 4, 48, 197, 65,
-			65, 82, 36, 225, 192, 15, 12, 201, 4, 36, 207, 49, 97, 82, 36, 225, 192, 15, 9, 198, 65, 39, 211, 80, 84, 133, 15, 9, 198, 65,
-			39, 205, 36, 84, 133, 15, 11, 200, 48, 241, 207, 65, 241, 9, 76, 176, 15, 9, 198, 76, 84, 1, 72, 21, 0, 15, 0, 9, 198, 49,
-			83, 73, 58, 148, 192, 15, 12, 201, 77, 147, 159, 77, 65, 84, 37, 50, 192, 15, 12, 201, 64, 19, 31, 60, 194, 84, 37, 50, 192, 15,
-			12, 201, 44, 147, 159, 77, 65, 84, 37, 50, 192, 15, 7, 196, 52, 84, 137, 80, 15, 7, 196, 76, 83, 129, 80, 15, 7, 196, 64, 20,
-			129, 80, 15, 21, 4, 95, 54, 88, 111, 47, 34, 6, 115, 89, 36, 50, 89, 47, 129, 84, 14, 50, 14, 0, 0, 15, 204, 64, 84, 134,
-			20, 181, 9, 8, 147, 9, 80, 85, 0, 15, 13, 202, 80, 242, 211, 36, 179, 204, 60, 114, 83, 44, 15, 13, 202, 60, 101, 1, 48, 211,
-			204, 60, 114, 83, 44, 15, 13, 202, 48, 20, 153, 56, 115, 204, 60, 114, 83, 44, 15, 13, 202, 24, 20, 141, 4, 179, 204, 60, 114, 83,
-			44, 15, 9, 198, 44, 244, 147, 61, 32, 78, 15, 9, 198, 76, 147, 85, 49, 64, 78, 16, 9, 198, 64, 83, 77, 36, 176, 78, 16, 9,
-			198, 24, 147, 9, 29, 32, 78, 16, 0, 9, 198, 76, 147, 133, 13, 84, 133, 15, 10, 199, 88, 243, 21, 52, 147, 169, 76, 15, 9, 198,
-			17, 148, 204, 20, 180, 201, 15, 12, 201, 88, 148, 148, 84, 244, 201, 80, 85, 0, 15, 12, 201, 64, 192, 83, 80, 144, 201, 80, 85, 0,
-			15, 12, 201, 44, 244, 132, 36, 19, 9, 80, 85, 0, 15, 12, 201, 44, 243, 150, 20, 180, 201, 80, 85, 0, 15, 12, 201, 44, 243, 148,
-			36, 229, 73, 80, 85, 0, 15, 12, 201, 44, 243, 142, 20, 180, 201, 80, 85, 0, 15, 12, 201, 44, 243, 134, 61, 35, 73, 80, 85, 0,
-			15, 12, 201, 25, 35, 206, 80, 19, 9, 80, 85, 0, 15, 12, 201, 20, 192, 83, 80, 144, 201, 80, 85, 0, 15, 12, 201, 4, 67, 73,
-			72, 19, 9, 80, 85, 0, 15, 12, 201, 80, 84, 212, 4, 209, 78, 80, 84, 133, 15, 9, 198, 64, 193, 84, 80, 84, 133, 15, 12, 201,
-			16, 147, 69, 57, 50, 79, 56, 84, 133, 15, 9, 198, 9, 34, 76, 48, 84, 133, 15, 9, 198, 4, 64, 80, 80, 84, 133, 15, 14, 203,
-			85, 66, 76, 37, 64, 82, 37, 53, 9, 76, 176, 15, 14, 203, 81, 34, 71, 60, 227, 205, 21, 68, 137, 76, 176, 15, 14, 203, 81, 32,
-			78, 77, 97, 83, 80, 149, 9, 76, 176, 15, 14, 203, 77, 84, 5, 72, 83, 12, 37, 5, 9, 76, 176, 15, 14, 203, 56, 243, 69, 56,
-			179, 1, 80, 244, 137, 76, 176, 15, 14, 203, 44, 243, 80, 20, 228, 193, 80, 244, 137, 76, 176, 15, 14, 203, 44, 192, 85, 77, 68, 143,
-			24, 240, 137, 76, 176, 15, 10, 199, 24, 244, 134, 165, 34, 83, 44, 15, 14, 203, 20, 181, 137, 48, 144, 146, 37, 53, 9, 76, 176, 15,
-			10, 199, 16, 151, 212, 21, 66, 83, 44, 15, 8, 197, 24, 16, 146, 36, 176, 15, 12, 201, 65, 35, 212, 20, 181, 15, 72, 21, 0, 15,
-			12, 201, 36, 228, 208, 20, 181, 15, 72, 21, 0, 15, 0, 10, 199, 72, 84, 5, 80, 149, 41, 72, 15, 10, 199, 64, 20, 212, 36, 50,
-			41, 72, 15, 10, 199, 44, 243, 12, 20, 181, 41, 72, 15, 10, 199, 16, 148, 208, 4, 50, 41, 72, 15, 9, 198, 77, 70, 76, 37, 53,
-			0, 15, 9, 198, 77, 66, 76, 37, 53, 0, 15, 9, 198, 45, 84, 147, 37, 53, 0, 15, 6, 195, 36, 67, 204, 15, 11, 200, 76, 17,
-			4, 84, 183, 201, 76, 176, 15, 10, 199, 76, 49, 78, 5, 34, 85, 52, 15, 10, 199, 52, 17, 206, 21, 50, 85, 52, 15, 0, 8, 197,
-			4, 224, 84, 60, 208, 15, 12, 201, 24, 244, 146, 124, 65, 82, 37, 50, 192, 15, 10, 199, 64, 245, 5, 57, 66, 65, 48, 15, 0, 15,
-			204, 77, 81, 199, 21, 53, 9, 8, 147, 9, 80, 85, 0, 15, 15, 204, 44, 243, 150, 21, 37, 9, 8, 147, 9, 80, 85, 0, 15, 15,
-			204, 21, 67, 143, 12, 83, 148, 72, 144, 201, 80, 85, 0, 15, 9, 198, 80, 16, 149, 37, 49, 82, 15, 9, 198, 77, 83, 6, 60, 225,
-			82, 15, 9, 198, 77, 80, 195, 20, 65, 82, 15, 9, 198, 77, 67, 204, 81, 49, 82, 15, 9, 198, 77, 66, 77, 84, 193, 82, 15, 9,
-			198, 73, 149, 13, 37, 49, 82, 15, 9, 198, 72, 85, 21, 72, 225, 82, 15, 9, 198, 60, 181, 18, 60, 161, 82, 15, 9, 198, 48, 144,
-			197, 57, 49, 82, 15, 9, 198, 45, 84, 148, 37, 49, 82, 15, 9, 198, 44, 20, 133, 77, 49, 82, 15, 9, 198, 37, 35, 206, 37, 49,
-			82, 15, 9, 198, 36, 228, 201, 57, 81, 82, 15, 9, 198, 36, 226, 204, 84, 65, 82, 15, 9, 198, 36, 226, 204, 36, 225, 82, 15, 9,
-			198, 36, 226, 193, 77, 49, 82, 15, 9, 198, 36, 225, 5, 45, 49, 82, 15, 9, 198, 32, 20, 141, 60, 225, 82, 15, 9, 198, 24, 197,
-			75, 81, 81, 82, 15, 9, 198, 5, 34, 193, 37, 49, 82, 15, 13, 202, 84, 226, 70, 61, 35, 73, 77, 66, 83, 44, 15, 13, 202, 80,
-			84, 141, 36, 227, 204, 60, 114, 83, 44, 15, 13, 202, 77, 84, 5, 72, 192, 84, 37, 98, 83, 44, 15, 13, 202, 77, 80, 147, 80, 19,
-			148, 37, 98, 83, 44, 15, 13, 202, 77, 65, 82, 20, 243, 69, 81, 34, 83, 44, 15, 13, 202, 76, 83, 147, 60, 211, 212, 61, 34, 83,
-			44, 15, 13, 202, 65, 35, 199, 72, 19, 77, 5, 66, 83, 44, 15, 13, 202, 64, 84, 147, 64, 82, 212, 37, 98, 83, 44, 15, 13, 202,
-			52, 83, 15, 17, 32, 77, 5, 66, 83, 44, 15, 13, 202, 44, 243, 134, 61, 35, 73, 77, 66, 83, 44, 15, 13, 202, 44, 243, 80, 61,
-			50, 84, 61, 34, 83, 44, 15, 13, 202, 44, 20, 9, 80, 19, 9, 77, 66, 83, 44, 15, 13, 202, 36, 229, 5, 72, 147, 73, 77, 66,
-			83, 44, 15, 13, 202, 36, 226, 214, 37, 50, 84, 61, 34, 83, 44, 15, 13, 202, 24, 83, 142, 61, 50, 193, 56, 66, 83, 44, 15, 13,
-			202, 12, 83, 148, 72, 19, 9, 77, 66, 83, 44, 15, 13, 202, 5, 4, 5, 48, 192, 84, 37, 98, 83, 44, 15, 12, 201, 36, 229, 5,
-			73, 33, 71, 57, 83, 64, 15, 12, 201, 65, 34, 86, 36, 193, 71, 37, 83, 64, 15, 12, 201, 44, 20, 18, 36, 99, 204, 37, 83, 64,
-			15, 12, 201, 36, 229, 5, 72, 209, 68, 37, 83, 64, 15, 12, 201, 36, 229, 5, 72, 197, 68, 37, 83, 64, 15, 12, 201, 4, 229, 5,
-			64, 83, 132, 37, 83, 64, 15, 7, 196, 48, 241, 201, 44, 15, 9, 198, 20, 180, 212, 72, 83, 64, 15, 0, 9, 198, 76, 147, 9, 44,
-			244, 197, 15, 12, 201, 72, 81, 201, 60, 224, 76, 37, 53, 0, 15, 12, 201, 20, 224, 197, 24, 19, 15, 29, 32, 77, 15, 9, 198, 77,
-			2, 78, 16, 84, 137, 15, 9, 198, 76, 227, 194, 8, 84, 137, 15, 9, 198, 52, 83, 129, 28, 84, 137, 15, 9, 198, 28, 20, 148, 56,
-			84, 137, 15, 14, 203, 48, 82, 211, 36, 179, 199, 72, 17, 137, 76, 176, 15, 14, 203, 45, 35, 205, 5, 67, 199, 72, 17, 137, 76, 176,
-			15, 14, 203, 44, 243, 15, 56, 144, 76, 37, 53, 9, 76, 176, 15, 8, 197, 64, 241, 84, 36, 176, 15, 8, 197, 56, 21, 84, 36, 176,
-			15, 0, 12, 201, 8, 18, 212, 21, 34, 79, 48, 241, 192, 15, 9, 198, 24, 20, 195, 37, 53, 0, 15, 6, 195, 88, 147, 204, 15, 6,
-			195, 24, 147, 204, 15, 10, 199, 125, 53, 5, 80, 146, 197, 72, 15, 8, 67, 12, 243, 204, 21, 0, 47, 0, 8, 197, 64, 241, 210, 60,
-			208, 15, 9, 198, 80, 83, 5, 24, 243, 128, 15, 13, 202, 44, 243, 80, 61, 50, 84, 36, 243, 133, 48, 15, 13, 202, 36, 228, 212, 37,
-			69, 84, 36, 243, 133, 48, 15, 10, 199, 28, 83, 132, 164, 33, 82, 36, 15, 9, 198, 41, 83, 135, 36, 19, 128, 15, 9, 198, 72, 19,
-			65, 16, 19, 128, 16, 7, 196, 52, 244, 129, 48, 15, 7, 196, 44, 244, 129, 48, 15, 0, 9, 198, 80, 83, 204, 60, 114, 64, 15, 9,
-			198, 72, 83, 204, 60, 114, 64, 15, 9, 198, 8, 147, 204, 60, 114, 64, 15, 15, 204, 36, 228, 212, 73, 83, 69, 57, 64, 82, 37, 83,
-			64, 15, 0, 6, 195, 16, 224, 64, 13, 6, 195, 16, 224, 64, 13, 9, 198, 76, 160, 83, 44, 84, 137, 15, 9, 198, 61, 32, 78, 28,
-			84, 137, 15, 9, 198, 48, 18, 197, 72, 84, 137, 15, 9, 198, 44, 195, 214, 56, 84, 137, 15, 9, 198, 29, 37, 66, 48, 84, 137, 15,
-			13, 202, 56, 85, 82, 5, 53, 5, 56, 146, 197, 72, 15, 0, 9, 198, 16, 148, 16, 20, 69, 84, 15, 9, 198, 65, 35, 195, 20, 229,
-			0, 15, 0, 13, 202, 76, 180, 149, 20, 36, 159, 44, 177, 82, 36, 15, 18, 207, 20, 180, 212, 72, 20, 1, 72, 192, 77, 20, 229, 1,
-			72, 148, 203, 15, 11, 200, 164, 181, 77, 20, 226, 75, 21, 32, 15, 9, 198, 65, 39, 196, 36, 176, 84, 15, 4, 193, 212, 43, 0, 9,
-			198, 25, 83, 139, 80, 147, 206, 15, 9, 198, 25, 34, 75, 80, 147, 206, 15, 9, 198, 21, 33, 75, 80, 147, 206, 15, 9, 198, 56, 82,
-			212, 5, 34, 78, 15, 0, 15, 70, 8, 17, 213, 21, 69, 5, 71, 118, 6, 81, 115, 47, 0, 9, 198, 24, 19, 73, 48, 151, 210, 15,
-			9, 198, 4, 181, 9, 60, 231, 210, 15, 11, 200, 44, 243, 148, 36, 225, 197, 57, 48, 15, 11, 200, 44, 243, 147, 37, 53, 5, 57, 48,
-			15, 0, 30, 76, 44, 243, 134, 37, 35, 65, 56, 65, 82, 56, 84, 192, 49, 109, 50, 83, 111, 34, 65, 6, 118, 50, 72, 108, 50, 14,
-			89, 0, 9, 198, 65, 39, 211, 20, 229, 0, 15, 9, 198, 20, 210, 84, 80, 83, 148, 15, 9, 198, 76, 147, 85, 48, 19, 148, 15, 9,
-			198, 5, 52, 9, 72, 19, 148, 15, 9, 198, 4, 67, 208, 80, 19, 148, 15, 13, 70, 41, 81, 197, 52, 83, 148, 21, 102, 114, 0, 47,
-			0, 7, 196, 88, 19, 9, 16, 15, 10, 199, 65, 39, 211, 36, 66, 85, 52, 15, 10, 199, 65, 39, 204, 84, 66, 85, 52, 15, 7, 196,
-			85, 39, 205, 36, 15, 0, 13, 202, 76, 82, 83, 52, 241, 210, 4, 98, 83, 44, 15, 13, 202, 60, 49, 65, 56, 241, 210, 4, 98, 83,
-			44, 15, 13, 202, 44, 20, 132, 36, 241, 210, 4, 98, 83, 44, 15, 13, 202, 8, 144, 140, 36, 241, 210, 4, 98, 83, 44, 15, 13, 202,
-			8, 19, 135, 48, 17, 5, 76, 130, 83, 44, 15, 12, 201, 4, 208, 84, 165, 34, 83, 80, 148, 203, 15, 9, 198, 64, 244, 212, 20, 194,
-			78, 15, 9, 198, 32, 20, 140, 20, 178, 78, 15, 9, 198, 20, 225, 15, 45, 34, 78, 15, 11, 200, 44, 243, 148, 36, 225, 197, 57, 64,
-			15, 11, 200, 44, 243, 147, 37, 53, 5, 57, 64, 15, 11, 200, 16, 84, 195, 20, 225, 5, 57, 64, 15, 10, 199, 77, 68, 137, 56, 113,
-			78, 76, 15, 10, 199, 16, 149, 133, 72, 113, 78, 76, 15, 11, 200, 65, 35, 212, 21, 53, 1, 57, 64, 15, 11, 200, 44, 243, 131, 21,
-			37, 1, 57, 64, 15, 11, 200, 44, 243, 66, 5, 69, 1, 57, 64, 15, 11, 200, 36, 229, 15, 48, 84, 129, 57, 64, 15, 11, 200, 4,
-			194, 77, 20, 229, 1, 57, 64, 15, 0, 6, 195, 20, 177, 192, 13, 10, 67, 36, 65, 64, 111, 72, 6, 114, 0, 12, 201, 16, 148, 203,
-			72, 85, 9, 60, 231, 210, 15, 9, 198, 21, 2, 76, 21, 4, 201, 15, 9, 198, 17, 148, 208, 21, 4, 201, 15, 10, 199, 164, 181, 77,
-			20, 226, 83, 44, 15, 10, 199, 65, 148, 133, 57, 242, 83, 44, 15, 10, 199, 28, 19, 9, 49, 242, 83, 44, 15, 10, 199, 21, 84, 143,
-			65, 242, 83, 44, 15, 0, 10, 199, 64, 83, 147, 36, 243, 159, 72, 15, 10, 199, 5, 85, 15, 72, 149, 31, 72, 15, 7, 196, 80, 18,
-			211, 36, 15, 11, 200, 65, 39, 211, 20, 229, 9, 76, 176, 15, 11, 200, 21, 2, 75, 85, 39, 201, 76, 176, 15, 11, 200, 4, 231, 211,
-			80, 85, 9, 76, 176, 15, 13, 202, 77, 84, 16, 61, 50, 84, 61, 34, 85, 52, 15, 13, 202, 16, 242, 213, 52, 83, 148, 5, 34, 85,
-			52, 15, 13, 202, 16, 148, 12, 60, 208, 84, 5, 34, 85, 52, 15, 6, 195, 20, 112, 76, 15, 0, 10, 67, 36, 177, 83, 35, 57, 49,
-			89, 0, 15, 204, 76, 17, 15, 52, 20, 207, 12, 130, 83, 80, 148, 203, 15, 15, 204, 65, 54, 75, 60, 194, 78, 29, 98, 83, 80, 148,
-			203, 15, 15, 204, 64, 84, 134, 20, 181, 9, 60, 226, 83, 80, 148, 203, 15, 15, 204, 44, 243, 77, 84, 226, 84, 5, 34, 83, 80, 148,
-			203, 15, 15, 204, 44, 192, 83, 76, 145, 137, 44, 21, 15, 72, 148, 203, 15, 15, 204, 36, 225, 9, 88, 145, 21, 4, 194, 83, 80, 148,
-			203, 15, 15, 204, 36, 212, 18, 21, 52, 201, 60, 226, 83, 80, 148, 203, 15, 15, 204, 20, 180, 208, 4, 228, 201, 60, 226, 83, 80, 148,
-			203, 15, 0, 9, 198, 52, 83, 1, 56, 243, 64, 15, 13, 202, 72, 244, 203, 36, 193, 5, 57, 50, 83, 44, 15, 13, 202, 45, 34, 77,
-			36, 227, 204, 60, 114, 83, 44, 15, 13, 202, 32, 84, 144, 21, 67, 204, 60, 114, 83, 44, 15, 11, 67, 20, 192, 78, 36, 55, 35, 50,
-			0, 16, 0, 19, 67, 88, 147, 0, 84, 114, 55, 15, 107, 6, 118, 0, 81, 104, 97, 118, 101, 32, 9, 198, 44, 192, 77, 52, 84, 137,
-			15, 9, 198, 44, 21, 5, 28, 244, 137, 15, 9, 198, 36, 67, 204, 5, 68, 137, 15, 9, 198, 24, 243, 137, 5, 68, 137, 15, 9, 198,
-			9, 38, 71, 28, 84, 137, 15, 14, 203, 77, 147, 132, 36, 176, 76, 37, 53, 9, 76, 176, 15, 14, 203, 52, 21, 5, 72, 144, 76, 37,
-			53, 9, 76, 176, 15, 14, 203, 52, 19, 137, 65, 83, 1, 80, 244, 137, 76, 176, 15, 14, 203, 44, 19, 5, 40, 67, 211, 44, 244, 9,
-			76, 176, 15, 14, 203, 36, 212, 5, 72, 144, 76, 37, 53, 9, 76, 176, 15, 13, 202, 26, 145, 5, 72, 19, 9, 77, 66, 83, 44, 15,
-			14, 203, 21, 2, 68, 20, 210, 79, 48, 241, 201, 76, 176, 15, 14, 203, 16, 144, 76, 20, 181, 15, 48, 241, 201, 76, 176, 15, 14, 203,
-			16, 85, 5, 72, 210, 78, 37, 53, 9, 76, 176, 15, 6, 195, 88, 147, 0, 76, 0, 13, 202, 64, 84, 144, 20, 225, 9, 45, 83, 31,
-			72, 15, 7, 196, 4, 96, 83, 36, 15, 12, 201, 80, 147, 18, 20, 115, 133, 48, 145, 192, 15, 15, 204, 44, 147, 133, 52, 21, 15, 29,
-			32, 70, 37, 50, 192, 15, 15, 204, 32, 148, 212, 61, 34, 79, 29, 32, 70, 37, 50, 192, 15, 6, 195, 4, 224, 76, 15, 0, 10, 199,
-			52, 146, 210, 61, 50, 207, 64, 15, 9, 198, 24, 202, 74, 80, 148, 212, 15, 7, 196, 80, 19, 73, 48, 15, 13, 68, 45, 32, 65, 48,
-			49, 34, 108, 12, 55, 0, 15, 0, 18, 66, 88, 144, 84, 37, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 10, 199, 34, 147,
-			147, 21, 34, 83, 80, 15, 13, 202, 88, 145, 5, 57, 50, 193, 8, 83, 9, 28, 15, 12, 201, 88, 145, 5, 8, 81, 223, 72, 194, 71,
-			15, 13, 202, 48, 145, 5, 57, 50, 193, 8, 83, 9, 28, 15, 12, 201, 24, 244, 136, 120, 33, 78, 80, 194, 71, 15, 16, 205, 76, 83,
-			147, 5, 66, 79, 56, 19, 9, 77, 66, 83, 44, 15, 16, 205, 25, 83, 132, 4, 209, 78, 80, 19, 9, 77, 66, 83, 44, 15, 12, 201,
-			72, 84, 18, 21, 52, 193, 48, 145, 64, 15, 12, 201, 48, 16, 143, 72, 21, 15, 72, 145, 64, 15, 12, 201, 4, 208, 149, 48, 21, 15,
-			72, 145, 64, 15, 12, 201, 76, 82, 211, 84, 19, 9, 76, 209, 64, 15, 12, 201, 72, 83, 1, 80, 149, 137, 76, 209, 64, 15, 8, 66,
-			88, 144, 84, 37, 0, 72, 0, 9, 198, 77, 68, 153, 28, 84, 137, 15, 9, 198, 76, 165, 83, 44, 84, 137, 15, 9, 198, 76, 19, 1,
-			80, 84, 137, 15, 9, 198, 45, 32, 68, 76, 84, 137, 15, 9, 198, 44, 226, 82, 44, 84, 137, 15, 10, 199, 77, 241, 22, 4, 227, 9,
-			28, 15, 15, 204, 20, 180, 208, 21, 34, 77, 20, 229, 1, 72, 149, 77, 15, 8, 197, 45, 84, 129, 57, 48, 15, 14, 2, 95, 95, 71,
-			6, 125, 50, 89, 72, 34, 121, 37, 0, 0, 7, 196, 64, 244, 233, 72, 15, 11, 200, 36, 228, 212, 73, 82, 212, 61, 32, 15, 12, 201,
-			77, 2, 82, 37, 69, 65, 48, 148, 212, 15, 12, 201, 76, 243, 78, 4, 208, 149, 48, 148, 212, 15, 12, 201, 72, 80, 197, 65, 66, 79,
-			56, 148, 212, 15, 12, 201, 44, 243, 12, 20, 181, 9, 88, 148, 212, 15, 12, 201, 44, 192, 82, 36, 225, 84, 80, 148, 212, 15, 12, 201,
-			32, 83, 12, 20, 32, 82, 16, 148, 212, 15, 12, 201, 21, 99, 204, 85, 66, 79, 56, 148, 212, 15, 10, 199, 36, 225, 149, 76, 244, 137,
-			20, 15, 10, 199, 77, 66, 80, 20, 225, 9, 20, 15, 10, 199, 76, 83, 73, 56, 20, 137, 20, 15, 10, 199, 76, 19, 129, 80, 244, 137,
-			20, 15, 10, 199, 44, 243, 80, 20, 225, 9, 20, 15, 9, 198, 48, 19, 73, 56, 21, 0, 15, 0, 7, 196, 76, 19, 21, 80, 15, 13,
-			202, 88, 147, 204, 60, 224, 197, 48, 194, 83, 80, 15, 13, 202, 88, 83, 148, 72, 147, 15, 45, 98, 83, 80, 15, 13, 202, 76, 17, 15,
-			52, 20, 207, 12, 130, 83, 80, 15, 13, 202, 64, 84, 139, 85, 52, 201, 60, 226, 83, 80, 15, 13, 202, 64, 20, 148, 36, 181, 76, 5,
-			34, 83, 80, 15, 13, 202, 52, 19, 149, 24, 18, 212, 85, 34, 83, 80, 15, 13, 202, 36, 225, 5, 80, 84, 141, 36, 226, 83, 80, 15,
-			13, 202, 25, 83, 139, 80, 147, 206, 4, 194, 83, 80, 15, 13, 202, 16, 242, 213, 52, 83, 148, 5, 34, 83, 80, 15, 7, 196, 36, 229,
-			73, 80, 15, 7, 196, 24, 16, 201, 80, 15, 7, 196, 48, 81, 193, 80, 15, 7, 196, 12, 149, 1, 80, 15, 11, 70, 72, 86, 78, 60,
-			193, 19, 21, 0, 47, 0, 19, 70, 16, 148, 212, 36, 179, 206, 72, 37, 89, 47, 37, 49, 6, 108, 50, 0, 15, 9, 198, 8, 85, 129,
-			81, 35, 206, 15, 9, 198, 41, 83, 139, 80, 147, 206, 15, 9, 198, 25, 32, 75, 80, 147, 206, 15, 10, 199, 24, 244, 141, 21, 34, 78,
-			28, 15, 9, 198, 48, 144, 133, 73, 66, 78, 15, 7, 196, 4, 113, 78, 76, 15, 9, 198, 40, 245, 82, 56, 19, 0, 15, 0, 7, 196,
-			24, 19, 105, 76, 15, 6, 195, 60, 74, 82, 15, 12, 201, 20, 180, 212, 72, 83, 73, 80, 85, 0, 15, 12, 201, 77, 6, 84, 76, 194,
-			75, 44, 84, 137, 15, 10, 199, 164, 179, 206, 60, 210, 83, 44, 15, 10, 199, 5, 66, 5, 57, 242, 83, 44, 15, 8, 197, 64, 245, 5,
-			57, 48, 15, 8, 197, 48, 144, 197, 57, 48, 15, 8, 197, 21, 52, 197, 57, 48, 15, 15, 70, 14, 38, 129, 56, 225, 64, 89, 114, 89,
-			6, 117, 50, 0, 0, 12, 201, 76, 176, 78, 16, 147, 129, 88, 148, 212, 15, 12, 201, 65, 35, 208, 4, 112, 78, 16, 148, 212, 15, 12,
-			201, 60, 36, 203, 85, 32, 78, 80, 148, 212, 15, 15, 204, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 212, 15, 12, 201, 5, 96,
-			78, 80, 112, 82, 16, 148, 212, 15, 12, 201, 77, 66, 76, 37, 49, 82, 36, 225, 192, 15, 12, 201, 76, 145, 206, 4, 193, 82, 36, 225,
-			192, 15, 12, 201, 76, 50, 1, 81, 65, 82, 36, 225, 192, 15, 12, 201, 72, 82, 204, 4, 209, 82, 36, 225, 192, 15, 12, 201, 72, 81,
-			143, 72, 209, 82, 36, 225, 192, 15, 12, 201, 65, 35, 198, 36, 193, 82, 36, 225, 192, 15, 12, 201, 64, 241, 84, 37, 49, 82, 36, 225,
-			192, 15, 12, 201, 45, 32, 75, 20, 193, 82, 36, 225, 192, 15, 12, 201, 44, 19, 132, 37, 49, 82, 36, 225, 192, 15, 12, 201, 36, 225,
-			12, 60, 113, 82, 36, 225, 192, 15, 12, 201, 36, 67, 204, 37, 49, 82, 36, 225, 192, 15, 12, 201, 32, 84, 143, 37, 49, 82, 36, 225,
-			192, 15, 12, 201, 24, 16, 146, 36, 177, 82, 36, 225, 192, 15, 12, 201, 20, 112, 76, 37, 49, 82, 36, 225, 192, 15, 12, 201, 16, 148,
-			211, 20, 177, 82, 36, 225, 192, 15, 12, 201, 16, 85, 129, 49, 81, 82, 36, 225, 192, 15, 12, 201, 16, 84, 212, 73, 81, 82, 36, 225,
-			192, 15, 12, 201, 16, 82, 204, 4, 209, 82, 36, 225, 192, 15, 12, 201, 16, 81, 143, 72, 209, 82, 36, 225, 192, 15, 12, 201, 8, 149,
-			149, 4, 177, 82, 36, 225, 192, 15, 12, 201, 4, 227, 196, 37, 49, 82, 36, 225, 192, 15, 12, 201, 4, 113, 210, 5, 97, 82, 36, 225,
-			192, 15, 9, 198, 4, 225, 204, 60, 98, 76, 15, 0, 7, 196, 8, 17, 21, 80, 15, 7, 196, 76, 243, 5, 80, 15, 7, 196, 5, 67,
-			5, 80, 15, 13, 202, 77, 68, 149, 45, 69, 82, 4, 194, 83, 80, 15, 13, 202, 44, 243, 77, 84, 226, 84, 5, 34, 83, 80, 15, 13,
-			202, 36, 225, 21, 77, 68, 137, 4, 194, 83, 80, 15, 13, 202, 36, 225, 9, 88, 145, 21, 4, 194, 83, 80, 15, 13, 202, 36, 212, 18,
-			21, 52, 201, 60, 226, 83, 80, 15, 7, 196, 76, 130, 73, 80, 15, 7, 196, 4, 231, 205, 36, 15, 7, 196, 28, 17, 193, 80, 15, 12,
-			201, 76, 18, 210, 4, 209, 78, 80, 19, 0, 15, 0, 9, 198, 77, 81, 134, 50, 148, 128, 15, 9, 198, 64, 192, 78, 82, 148, 128, 15,
-			9, 198, 45, 33, 65, 82, 148, 128, 15, 9, 198, 16, 82, 193, 82, 148, 128, 15, 9, 198, 12, 148, 197, 50, 148, 128, 15, 14, 203, 20,
-			180, 208, 72, 84, 211, 36, 243, 137, 77, 64, 15, 13, 202, 80, 84, 141, 60, 70, 78, 4, 210, 83, 44, 15, 13, 202, 64, 83, 15, 64,
-			243, 142, 21, 50, 83, 44, 15, 13, 202, 28, 84, 143, 57, 67, 204, 60, 114, 83, 44, 15, 9, 198, 53, 84, 211, 20, 194, 78, 15, 0,
-			20, 67, 33, 83, 128, 107, 125, 50, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 14, 5, 119, 99, 39, 101, 114, 84, 6, 36,
-			89, 36, 108, 0, 12, 201, 36, 208, 133, 12, 147, 9, 80, 85, 0, 15, 12, 201, 4, 227, 210, 52, 19, 9, 80, 85, 0, 15, 12, 201,
-			77, 80, 138, 20, 181, 9, 88, 84, 133, 15, 12, 201, 29, 82, 76, 48, 245, 9, 56, 84, 133, 15, 12, 201, 25, 83, 132, 4, 209, 78,
-			80, 84, 133, 15, 12, 201, 12, 149, 137, 48, 148, 197, 72, 85, 0, 15, 6, 195, 33, 83, 128, 72, 0, 9, 198, 64, 145, 84, 37, 53,
-			0, 15, 11, 200, 125, 66, 79, 48, 241, 201, 76, 176, 15, 11, 200, 65, 241, 9, 5, 68, 137, 76, 176, 15, 11, 200, 65, 67, 204, 20,
-			215, 201, 76, 176, 15, 0, 13, 202, 4, 231, 211, 80, 84, 201, 60, 195, 199, 36, 15, 7, 2, 95, 101, 36, 12, 0, 0, 15, 204, 16,
-			83, 132, 72, 242, 210, 60, 227, 204, 60, 114, 64, 15, 9, 198, 77, 147, 80, 80, 243, 64, 15, 15, 204, 36, 225, 140, 20, 180, 201, 8,
-			147, 9, 80, 85, 0, 15, 9, 198, 72, 82, 70, 36, 49, 82, 15, 9, 198, 65, 35, 208, 4, 113, 82, 15, 9, 198, 52, 18, 211, 36,
-			209, 82, 15, 9, 198, 44, 243, 138, 84, 113, 82, 15, 9, 198, 21, 52, 1, 48, 145, 82, 15, 9, 198, 17, 84, 12, 36, 177, 82, 15,
-			9, 198, 8, 19, 19, 4, 209, 82, 15, 9, 198, 5, 68, 143, 24, 145, 82, 15, 12, 201, 164, 179, 206, 60, 209, 84, 72, 148, 203, 15,
-			13, 202, 76, 19, 147, 20, 211, 212, 61, 34, 83, 44, 15, 13, 202, 64, 244, 201, 80, 149, 137, 77, 66, 83, 44, 15, 13, 202, 64, 20,
-			129, 80, 17, 205, 5, 66, 83, 44, 15, 13, 202, 56, 81, 193, 80, 149, 137, 77, 66, 83, 44, 15, 13, 202, 52, 243, 143, 45, 35, 205,
-			5, 66, 83, 44, 15, 13, 202, 52, 147, 9, 80, 20, 137, 77, 66, 83, 44, 15, 13, 202, 44, 19, 15, 72, 147, 69, 81, 34, 83, 44,
-			15, 13, 202, 33, 145, 18, 60, 209, 75, 4, 226, 83, 44, 15, 13, 202, 32, 81, 197, 52, 243, 137, 77, 66, 83, 44, 15, 13, 202, 12,
-			128, 85, 88, 147, 137, 77, 66, 83, 44, 15, 9, 198, 21, 35, 212, 36, 177, 82, 15, 0, 10, 199, 124, 118, 80, 80, 243, 15, 28, 15,
-			14, 203, 52, 18, 193, 16, 19, 73, 76, 84, 137, 56, 112, 15, 14, 203, 44, 195, 210, 60, 99, 210, 52, 84, 137, 56, 112, 15, 14, 203,
-			36, 225, 5, 45, 49, 82, 12, 84, 137, 56, 112, 15, 14, 203, 36, 212, 12, 20, 209, 78, 80, 84, 137, 56, 112, 15, 14, 203, 25, 32,
-			84, 21, 35, 137, 76, 84, 137, 56, 112, 15, 14, 203, 20, 180, 212, 72, 20, 15, 48, 84, 137, 56, 112, 15, 14, 203, 4, 194, 207, 32,
-			243, 9, 76, 84, 137, 56, 112, 15, 14, 203, 4, 67, 73, 56, 148, 212, 72, 84, 137, 56, 112, 15, 9, 198, 29, 147, 129, 56, 68, 137,
-			15, 13, 202, 77, 68, 129, 80, 244, 198, 125, 34, 83, 44, 15, 14, 203, 76, 83, 22, 8, 147, 199, 72, 17, 137, 76, 176, 15, 14, 203,
-			36, 225, 140, 4, 211, 65, 80, 244, 137, 76, 176, 15, 14, 203, 33, 145, 18, 60, 83, 5, 45, 68, 137, 76, 176, 15, 14, 203, 8, 243,
-			129, 64, 20, 148, 37, 53, 9, 76, 176, 15, 14, 203, 5, 37, 9, 45, 83, 1, 80, 244, 137, 76, 176, 15, 0, 9, 198, 72, 80, 76,
-			37, 53, 0, 15, 9, 198, 17, 80, 76, 37, 53, 0, 15, 9, 198, 16, 83, 148, 37, 53, 0, 15, 9, 198, 12, 19, 80, 37, 53, 0,
-			15, 15, 204, 84, 226, 86, 21, 36, 193, 48, 148, 212, 37, 50, 192, 15, 15, 204, 80, 161, 75, 44, 244, 204, 61, 96, 75, 37, 50, 192,
-			15, 15, 204, 76, 176, 78, 16, 147, 129, 88, 148, 212, 37, 50, 192, 15, 15, 204, 65, 35, 208, 4, 112, 78, 16, 148, 212, 37, 50, 192,
-			15, 15, 204, 44, 243, 12, 20, 181, 9, 88, 148, 212, 37, 50, 192, 15, 15, 204, 24, 244, 148, 36, 98, 75, 5, 67, 210, 37, 50, 192,
-			15, 15, 204, 24, 20, 141, 4, 179, 199, 56, 244, 212, 37, 50, 192, 15, 15, 204, 21, 99, 204, 85, 66, 79, 56, 148, 212, 37, 50, 192,
-			15, 0, 15, 5, 119, 99, 39, 101, 116, 84, 6, 36, 89, 36, 13, 72, 0, 7, 196, 5, 4, 5, 48, 15, 15, 204, 44, 243, 77, 84,
-			224, 76, 64, 243, 9, 80, 148, 203, 15, 7, 196, 73, 84, 129, 48, 15, 7, 196, 8, 20, 193, 48, 15, 7, 2, 95, 105, 37, 12, 0,
-			0, 15, 204, 20, 180, 201, 77, 65, 78, 80, 144, 76, 37, 53, 0, 15, 11, 200, 52, 85, 18, 61, 3, 204, 37, 64, 15, 11, 200, 44,
-			244, 205, 61, 3, 204, 37, 64, 15, 0, 6, 195, 76, 244, 192, 13, 12, 201, 77, 147, 132, 36, 176, 76, 37, 53, 0, 15, 12, 201, 52,
-			21, 5, 72, 144, 76, 37, 53, 0, 15, 12, 201, 36, 212, 5, 72, 144, 76, 37, 53, 0, 15, 12, 201, 21, 52, 5, 72, 19, 148, 37,
-			53, 0, 15, 11, 200, 50, 148, 199, 124, 225, 197, 72, 144, 15, 9, 198, 28, 84, 137, 5, 68, 137, 15, 13, 202, 64, 84, 137, 64, 21,
-			5, 80, 146, 197, 72, 15, 0, 7, 196, 76, 19, 31, 72, 15, 9, 198, 77, 103, 210, 52, 84, 137, 15, 9, 198, 76, 215, 148, 80, 84,
-			137, 15, 9, 198, 76, 183, 206, 16, 84, 137, 15, 10, 199, 33, 244, 133, 80, 146, 197, 72, 15, 0, 10, 199, 77, 83, 132, 9, 147, 137,
-			80, 15, 10, 199, 64, 193, 66, 37, 48, 201, 80, 15, 10, 199, 44, 243, 150, 21, 37, 9, 80, 15, 10, 199, 20, 180, 208, 48, 144, 201,
-			80, 15, 0, 15, 204, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 53, 0, 15, 12, 201, 72, 17, 9, 60, 66, 82, 36, 113, 82, 15,
-			8, 197, 64, 84, 134, 36, 64, 15, 8, 197, 52, 244, 130, 36, 64, 15, 8, 197, 48, 146, 214, 36, 64, 15, 8, 197, 44, 20, 130, 36,
-			64, 15, 8, 197, 13, 144, 78, 36, 64, 15, 14, 203, 56, 21, 18, 37, 83, 66, 20, 230, 143, 5, 64, 15, 0, 9, 198, 64, 82, 213,
-			56, 151, 210, 15, 9, 198, 45, 84, 148, 60, 148, 201, 15, 12, 201, 16, 147, 5, 81, 64, 78, 80, 84, 137, 15, 13, 202, 32, 84, 141,
-			20, 225, 85, 80, 146, 197, 72, 15, 10, 199, 5, 32, 71, 60, 226, 69, 56, 15, 10, 199, 4, 224, 84, 60, 194, 69, 56, 15, 10, 199,
-			4, 34, 200, 5, 50, 69, 56, 15, 10, 199, 44, 21, 1, 52, 20, 129, 56, 16, 0, 9, 198, 52, 21, 5, 72, 145, 76, 15, 9, 198,
-			80, 20, 129, 57, 65, 76, 15, 9, 198, 45, 83, 20, 85, 33, 76, 15, 9, 198, 41, 80, 137, 49, 245, 77, 15, 9, 198, 81, 32, 83,
-			76, 83, 148, 15, 9, 198, 77, 69, 68, 20, 229, 0, 15, 9, 198, 36, 212, 15, 80, 83, 148, 15, 9, 198, 36, 211, 65, 56, 83, 148,
-			15, 9, 198, 24, 147, 1, 52, 83, 148, 15, 9, 198, 4, 35, 206, 56, 83, 148, 15, 9, 198, 24, 16, 149, 48, 19, 148, 15, 9, 198,
-			20, 210, 71, 72, 19, 148, 15, 9, 198, 17, 80, 140, 20, 19, 148, 15, 9, 198, 16, 243, 73, 56, 19, 148, 15, 9, 198, 16, 80, 149,
-			80, 19, 148, 15, 9, 198, 4, 208, 149, 48, 19, 148, 15, 0, 8, 197, 76, 176, 76, 125, 32, 15, 8, 197, 8, 84, 214, 125, 32, 15,
-			11, 200, 77, 147, 132, 21, 34, 78, 16, 80, 15, 11, 200, 65, 35, 214, 77, 66, 78, 16, 80, 15, 11, 200, 41, 81, 76, 76, 210, 78,
-			16, 80, 15, 9, 198, 32, 20, 141, 60, 226, 75, 15, 14, 4, 95, 104, 97, 99, 107, 6, 35, 76, 4, 115, 49, 0, 0, 11, 200, 44,
-			21, 15, 16, 244, 203, 61, 0, 15, 11, 200, 28, 20, 212, 72, 244, 203, 61, 0, 15, 11, 200, 65, 39, 204, 36, 210, 78, 125, 32, 15,
-			13, 202, 77, 84, 146, 20, 19, 9, 77, 66, 83, 44, 15, 13, 202, 77, 68, 143, 8, 244, 203, 61, 2, 83, 44, 15, 13, 202, 77, 65,
-			82, 20, 244, 203, 61, 2, 83, 44, 15, 13, 202, 72, 81, 143, 72, 208, 84, 61, 34, 83, 44, 15, 13, 202, 56, 85, 84, 72, 19, 9,
-			77, 66, 83, 44, 15, 13, 202, 56, 21, 21, 72, 19, 9, 77, 66, 83, 44, 15, 13, 202, 48, 144, 133, 72, 19, 9, 77, 66, 83, 44,
-			15, 13, 202, 44, 243, 139, 72, 85, 9, 77, 66, 83, 44, 15, 13, 202, 44, 243, 80, 36, 192, 84, 61, 34, 83, 44, 15, 13, 202, 44,
-			243, 15, 72, 147, 69, 81, 34, 83, 44, 15, 13, 202, 40, 245, 82, 56, 19, 9, 77, 66, 83, 44, 15, 13, 202, 24, 192, 71, 20, 195,
-			1, 57, 66, 83, 44, 15, 13, 202, 21, 2, 71, 72, 19, 77, 5, 66, 83, 44, 15, 13, 202, 16, 82, 204, 4, 208, 84, 61, 34, 83,
-			44, 15, 13, 202, 9, 84, 133, 5, 82, 210, 5, 66, 83, 44, 15, 13, 202, 8, 83, 12, 21, 68, 137, 77, 66, 83, 44, 15, 13, 202,
-			4, 36, 207, 49, 85, 9, 77, 66, 83, 44, 15, 8, 197, 16, 147, 216, 36, 64, 15, 13, 202, 44, 244, 146, 21, 52, 15, 56, 65, 78,
-			76, 15, 0, 12, 201, 72, 85, 143, 49, 85, 9, 60, 231, 210, 15, 12, 201, 44, 243, 77, 37, 52, 201, 60, 231, 210, 15, 9, 198, 52,
-			85, 18, 60, 227, 205, 15, 9, 198, 44, 243, 132, 100, 195, 205, 15, 10, 199, 46, 145, 197, 57, 50, 83, 44, 15, 7, 196, 44, 19, 137,
-			56, 15, 9, 198, 5, 85, 15, 56, 243, 73, 15, 10, 199, 76, 20, 132, 36, 226, 69, 56, 15, 10, 199, 52, 19, 12, 61, 32, 193, 56,
-			15, 12, 201, 77, 80, 132, 60, 210, 78, 4, 229, 0, 15, 0, 8, 197, 17, 32, 71, 60, 224, 15, 15, 204, 44, 243, 80, 48, 83, 69,
-			57, 64, 82, 37, 65, 84, 15, 9, 198, 56, 245, 1, 72, 145, 76, 15, 12, 201, 52, 81, 9, 44, 19, 69, 57, 65, 76, 15, 12, 201,
-			36, 228, 212, 73, 83, 69, 57, 65, 76, 15, 8, 197, 104, 80, 200, 36, 224, 15, 11, 200, 36, 225, 15, 56, 84, 201, 20, 224, 15, 11,
-			200, 5, 84, 212, 72, 19, 9, 20, 224, 15, 11, 200, 4, 225, 1, 49, 84, 201, 20, 224, 15, 11, 200, 76, 192, 71, 20, 196, 197, 4,
-			224, 15, 11, 200, 32, 244, 147, 20, 228, 201, 4, 224, 15, 12, 201, 36, 228, 212, 73, 83, 69, 57, 64, 76, 15, 0, 11, 200, 76, 81,
-			9, 52, 83, 148, 125, 32, 15, 11, 200, 65, 35, 208, 72, 145, 84, 125, 32, 15, 11, 200, 64, 20, 148, 36, 181, 76, 125, 32, 15, 11,
-			200, 52, 147, 12, 36, 20, 132, 125, 32, 15, 11, 200, 44, 243, 77, 84, 226, 84, 125, 32, 15, 11, 200, 25, 83, 139, 80, 147, 206, 125,
-			32, 15, 9, 198, 48, 80, 133, 56, 66, 71, 15, 9, 198, 25, 34, 77, 60, 66, 71, 15, 9, 198, 24, 147, 149, 72, 194, 71, 15, 9,
-			198, 24, 145, 213, 72, 194, 71, 15, 9, 198, 4, 101, 5, 56, 194, 71, 15, 13, 202, 20, 180, 208, 21, 34, 77, 20, 229, 1, 48, 15,
-			13, 202, 16, 84, 1, 73, 65, 77, 20, 229, 1, 48, 15, 0, 12, 201, 72, 85, 77, 5, 67, 204, 60, 114, 64, 15, 12, 201, 52, 85,
-			5, 61, 35, 204, 60, 114, 64, 15, 12, 201, 16, 84, 141, 5, 67, 204, 60, 114, 64, 15, 12, 201, 9, 35, 205, 5, 67, 204, 60, 114,
-			64, 15, 12, 201, 4, 229, 18, 61, 3, 204, 60, 114, 64, 15, 12, 201, 4, 195, 5, 72, 115, 204, 60, 114, 64, 15, 12, 201, 81, 32,
-			78, 76, 210, 83, 76, 147, 206, 15, 12, 201, 72, 21, 9, 24, 146, 193, 80, 147, 206, 15, 12, 201, 61, 33, 193, 56, 148, 193, 80, 147,
-			206, 15, 12, 201, 52, 241, 9, 24, 146, 193, 80, 147, 206, 15, 12, 201, 44, 243, 148, 72, 144, 149, 80, 147, 206, 15, 12, 201, 44, 243,
-			134, 37, 50, 193, 80, 147, 206, 15, 12, 201, 44, 243, 134, 37, 35, 65, 80, 147, 206, 15, 12, 201, 44, 241, 9, 24, 146, 193, 80, 147,
-			206, 15, 12, 201, 44, 19, 143, 56, 148, 193, 80, 147, 206, 15, 12, 201, 36, 228, 212, 4, 195, 1, 80, 147, 206, 15, 12, 201, 16, 84,
-			212, 36, 195, 1, 80, 147, 206, 15, 12, 201, 4, 229, 9, 12, 148, 1, 80, 147, 206, 15, 11, 200, 76, 82, 214, 20, 229, 9, 20, 192,
-			15, 11, 200, 44, 243, 77, 21, 32, 201, 20, 192, 15, 11, 200, 36, 225, 21, 77, 68, 137, 20, 192, 15, 11, 200, 72, 83, 1, 80, 147,
-			206, 20, 192, 15, 8, 197, 52, 243, 135, 60, 192, 15, 8, 197, 80, 19, 148, 4, 192, 15, 8, 197, 16, 83, 148, 4, 192, 15, 0, 7,
-			196, 24, 16, 207, 56, 15, 7, 196, 81, 145, 143, 56, 15, 13, 202, 36, 225, 15, 21, 84, 143, 65, 242, 83, 44, 15, 9, 198, 44, 243,
-			139, 100, 194, 69, 15, 9, 198, 29, 147, 78, 5, 50, 69, 15, 9, 198, 64, 197, 84, 60, 226, 69, 15, 9, 198, 44, 243, 147, 36, 194,
-			69, 15, 9, 198, 29, 147, 78, 5, 50, 69, 15, 7, 196, 13, 80, 129, 56, 15, 10, 199, 80, 84, 141, 60, 116, 129, 24, 15, 10, 199,
-			76, 49, 78, 60, 116, 129, 24, 15, 10, 199, 72, 84, 18, 60, 116, 129, 24, 15, 10, 199, 64, 244, 142, 60, 116, 129, 24, 15, 10, 199,
-			64, 19, 148, 60, 116, 129, 24, 15, 10, 199, 44, 244, 133, 60, 116, 129, 24, 15, 10, 199, 44, 20, 148, 60, 116, 129, 24, 15, 10, 199,
-			4, 225, 201, 60, 116, 129, 24, 15, 10, 199, 44, 243, 150, 21, 36, 193, 8, 15, 10, 199, 44, 243, 70, 61, 37, 1, 8, 15, 0, 7,
-			196, 45, 33, 84, 36, 15, 12, 201, 20, 180, 212, 72, 21, 129, 28, 19, 148, 15, 0, 10, 199, 77, 65, 84, 61, 50, 207, 64, 15, 12,
-			201, 81, 32, 78, 77, 3, 210, 80, 16, 128, 15, 0, 9, 198, 72, 243, 139, 20, 67, 210, 15, 9, 198, 65, 35, 205, 61, 67, 210, 15,
-			9, 198, 44, 243, 132, 37, 67, 210, 15, 9, 198, 25, 83, 132, 5, 67, 210, 15, 9, 198, 16, 146, 212, 5, 67, 210, 15, 9, 198, 4,
-			226, 77, 5, 67, 210, 15, 9, 198, 16, 80, 201, 8, 83, 0, 15, 8, 197, 76, 18, 210, 4, 192, 15, 0, 7, 196, 64, 20, 133, 72,
-			15, 10, 199, 77, 65, 78, 60, 116, 129, 24, 15, 10, 199, 72, 17, 9, 60, 116, 129, 24, 15, 10, 199, 44, 19, 12, 36, 116, 129, 24,
-			15, 7, 196, 4, 116, 129, 72, 15, 10, 199, 65, 32, 75, 80, 146, 193, 8, 15, 10, 199, 4, 211, 210, 80, 148, 193, 8, 15, 0, 9,
-			198, 16, 167, 214, 48, 84, 137, 15, 0, 13, 202, 65, 35, 212, 20, 181, 9, 60, 226, 83, 80, 15, 13, 202, 64, 84, 134, 20, 181, 9,
-			60, 226, 83, 80, 15, 13, 202, 16, 242, 213, 52, 83, 148, 4, 194, 83, 80, 15, 12, 201, 77, 80, 147, 80, 19, 148, 36, 83, 0, 15,
-			9, 198, 80, 21, 15, 88, 84, 128, 15, 9, 198, 76, 242, 71, 56, 84, 128, 15, 9, 198, 72, 85, 9, 72, 84, 128, 15, 9, 198, 20,
-			210, 71, 72, 84, 128, 15, 9, 198, 16, 81, 137, 48, 84, 128, 15, 9, 198, 12, 128, 83, 76, 84, 128, 15, 9, 198, 8, 243, 137, 80,
-			84, 128, 15, 7, 196, 32, 19, 73, 80, 15, 0, 9, 198, 52, 83, 15, 16, 154, 83, 15, 9, 198, 52, 148, 212, 72, 19, 0, 15, 0,
-			7, 196, 16, 243, 143, 72, 15, 9, 198, 45, 35, 205, 61, 51, 205, 15, 9, 198, 44, 243, 77, 84, 227, 205, 15, 12, 201, 44, 192, 77,
-			64, 133, 71, 28, 84, 137, 15, 7, 196, 8, 150, 129, 72, 15, 0, 10, 67, 36, 65, 84, 111, 72, 6, 114, 0, 7, 196, 24, 21, 169,
-			72, 15, 9, 198, 76, 82, 214, 20, 228, 192, 15, 9, 198, 72, 80, 71, 20, 228, 192, 15, 0, 9, 198, 21, 2, 83, 44, 244, 0, 15,
-			9, 198, 65, 33, 84, 38, 148, 192, 15, 9, 198, 16, 83, 9, 74, 148, 192, 15, 9, 198, 72, 81, 213, 48, 84, 128, 15, 9, 198, 21,
-			53, 9, 52, 84, 128, 15, 9, 198, 16, 84, 21, 80, 84, 128, 15, 9, 198, 4, 212, 21, 80, 84, 128, 15, 7, 196, 48, 147, 73, 80,
-			15, 9, 198, 65, 39, 211, 20, 226, 76, 15, 7, 196, 53, 83, 1, 80, 15, 9, 5, 95, 48, 97, 110, 100, 108, 0, 0, 9, 198, 52,
-			19, 132, 5, 34, 78, 15, 0, 12, 201, 8, 83, 133, 24, 144, 197, 72, 85, 0, 68, 12, 201, 44, 243, 80, 48, 144, 197, 72, 85, 0,
-			15, 12, 201, 8, 83, 133, 24, 144, 197, 72, 85, 0, 15, 0, 9, 198, 64, 245, 5, 57, 66, 76, 15, 11, 200, 56, 80, 80, 60, 194,
-			84, 4, 224, 15, 0, 11, 200, 65, 39, 212, 20, 229, 9, 165, 48, 15, 11, 200, 65, 35, 214, 60, 176, 84, 165, 32, 15, 11, 200, 17,
-			32, 77, 5, 69, 82, 28, 144, 15, 7, 196, 48, 246, 65, 48, 15, 0, 12, 201, 80, 242, 211, 36, 179, 204, 60, 114, 64, 15, 12, 201,
-			45, 34, 77, 36, 227, 204, 60, 114, 64, 15, 12, 201, 44, 194, 77, 5, 67, 204, 60, 114, 64, 15, 12, 201, 44, 147, 133, 76, 147, 204,
-			60, 114, 64, 15, 12, 201, 32, 84, 144, 21, 67, 204, 60, 114, 64, 15, 26, 73, 64, 21, 18, 60, 230, 77, 36, 179, 206, 48, 117, 47,
-			34, 39, 50, 6, 129, 65, 37, 49, 108, 50, 0, 15, 11, 200, 5, 37, 9, 24, 144, 201, 20, 192, 15, 8, 197, 80, 18, 212, 36, 192,
-			15, 7, 196, 25, 148, 201, 44, 15, 15, 204, 16, 83, 73, 56, 84, 129, 48, 148, 197, 72, 85, 0, 15, 0, 23, 72, 4, 98, 67, 36,
-			243, 129, 16, 240, 118, 83, 111, 89, 57, 124, 6, 50, 121, 12, 72, 39, 0, 12, 201, 56, 21, 9, 60, 224, 76, 37, 53, 0, 15, 10,
-			199, 77, 84, 208, 20, 225, 5, 72, 15, 10, 199, 72, 84, 208, 60, 225, 5, 72, 15, 10, 199, 72, 80, 75, 80, 149, 133, 72, 15, 10,
-			199, 64, 148, 149, 21, 69, 5, 72, 15, 10, 199, 64, 84, 141, 37, 69, 5, 72, 15, 10, 199, 48, 243, 66, 5, 33, 5, 72, 15, 10,
-			199, 44, 243, 150, 21, 33, 197, 72, 15, 10, 199, 44, 243, 147, 84, 197, 5, 72, 15, 10, 199, 44, 243, 77, 20, 229, 5, 72, 15, 10,
-			199, 44, 243, 77, 4, 225, 5, 72, 15, 10, 199, 44, 243, 16, 61, 37, 5, 72, 15, 10, 199, 36, 229, 5, 72, 17, 197, 72, 15, 10,
-			199, 36, 212, 12, 4, 229, 5, 72, 15, 10, 199, 16, 148, 208, 21, 33, 197, 72, 15, 10, 199, 8, 243, 66, 5, 33, 5, 72, 15, 10,
-			199, 20, 180, 197, 53, 3, 1, 72, 15, 0, 8, 197, 16, 144, 75, 60, 224, 15, 8, 197, 88, 148, 201, 60, 224, 15, 13, 202, 60, 36,
-			197, 73, 96, 84, 61, 34, 85, 52, 15, 8, 197, 48, 21, 18, 36, 224, 15, 8, 197, 12, 149, 18, 36, 224, 15, 9, 198, 88, 146, 193,
-			72, 144, 84, 15, 9, 198, 77, 84, 146, 60, 112, 84, 15, 9, 198, 36, 229, 18, 36, 176, 84, 15, 0, 7, 195, 44, 101, 75, 13, 42,
-			11, 200, 77, 81, 134, 37, 48, 78, 12, 80, 15, 11, 200, 44, 243, 134, 21, 33, 78, 12, 80, 15, 11, 200, 44, 243, 80, 21, 65, 78,
-			12, 80, 15, 11, 200, 16, 148, 133, 45, 68, 137, 12, 80, 15, 0, 12, 201, 64, 19, 148, 60, 210, 77, 36, 177, 82, 15, 12, 201, 20,
-			115, 195, 20, 229, 18, 36, 177, 82, 15, 8, 197, 65, 35, 198, 36, 192, 15, 11, 200, 64, 21, 18, 36, 20, 139, 5, 64, 15, 8, 197,
-			88, 84, 130, 4, 192, 15, 0, 12, 201, 72, 21, 9, 60, 224, 76, 37, 53, 0, 15, 11, 200, 76, 84, 137, 165, 50, 84, 21, 64, 15,
-			11, 200, 60, 36, 203, 164, 226, 84, 21, 64, 15, 10, 199, 88, 84, 137, 24, 144, 197, 72, 15, 10, 199, 81, 32, 86, 21, 36, 197, 72,
-			15, 10, 199, 76, 81, 205, 20, 229, 5, 72, 15, 10, 199, 72, 83, 66, 85, 36, 197, 72, 15, 10, 199, 72, 83, 1, 80, 149, 133, 72,
-			15, 10, 199, 72, 80, 201, 16, 149, 133, 72, 15, 10, 199, 64, 16, 201, 24, 144, 197, 72, 15, 10, 199, 56, 22, 137, 24, 144, 197, 72,
-			15, 10, 199, 52, 19, 137, 13, 84, 133, 72, 15, 10, 199, 44, 243, 148, 36, 229, 69, 72, 15, 10, 199, 44, 243, 134, 84, 225, 5, 72,
-			15, 10, 199, 44, 243, 77, 37, 69, 5, 72, 15, 10, 199, 44, 243, 15, 56, 148, 197, 72, 15, 10, 199, 44, 21, 15, 48, 144, 197, 72,
-			15, 10, 199, 36, 70, 76, 48, 148, 197, 72, 15, 10, 199, 20, 180, 212, 20, 225, 5, 72, 15, 10, 199, 20, 180, 208, 61, 37, 5, 72,
-			15, 10, 199, 20, 180, 208, 48, 144, 197, 72, 15, 10, 199, 20, 180, 208, 4, 225, 5, 72, 15, 10, 199, 16, 145, 134, 84, 225, 5, 72,
-			15, 10, 199, 16, 80, 197, 48, 84, 133, 72, 15, 10, 199, 8, 245, 1, 56, 148, 197, 72, 15, 10, 199, 5, 84, 203, 84, 197, 5, 72,
-			15, 10, 199, 5, 69, 18, 36, 37, 69, 72, 15, 10, 199, 4, 229, 9, 44, 148, 197, 72, 15, 10, 199, 4, 48, 197, 48, 84, 133, 72,
-			15, 7, 196, 56, 245, 1, 8, 15, 7, 196, 53, 85, 1, 8, 15, 0, 22, 68, 28, 84, 142, 20, 81, 6, 115, 34, 50, 112, 15, 107,
-			117, 0, 81, 104, 97, 118, 101, 32, 12, 201, 81, 32, 78, 77, 3, 1, 57, 64, 84, 15, 9, 198, 52, 145, 210, 4, 229, 0, 15, 0,
-			10, 199, 20, 180, 203, 88, 148, 201, 80, 15, 9, 198, 17, 32, 77, 5, 66, 75, 15, 0, 9, 198, 80, 149, 21, 49, 244, 128, 15, 9,
-			198, 64, 244, 21, 49, 244, 128, 15, 14, 203, 72, 84, 212, 72, 146, 212, 37, 98, 84, 21, 64, 15, 14, 203, 72, 17, 9, 60, 18, 212,
-			37, 98, 84, 21, 64, 15, 14, 203, 65, 35, 214, 36, 228, 201, 4, 194, 84, 21, 64, 15, 14, 203, 64, 20, 129, 16, 242, 211, 4, 194,
-			84, 21, 64, 15, 14, 203, 52, 243, 149, 52, 83, 148, 4, 194, 84, 21, 64, 15, 14, 203, 36, 225, 9, 88, 145, 21, 4, 194, 84, 21,
-			64, 15, 14, 203, 20, 115, 195, 20, 229, 18, 36, 50, 84, 21, 64, 15, 12, 201, 5, 3, 208, 48, 82, 212, 36, 177, 82, 15, 8, 197,
-			56, 81, 210, 36, 64, 15, 8, 197, 33, 144, 146, 36, 64, 15, 11, 200, 64, 243, 148, 36, 98, 75, 5, 64, 15, 0, 6, 195, 20, 64,
-			128, 13, 13, 202, 72, 85, 18, 4, 228, 205, 37, 69, 5, 72, 15, 16, 205, 36, 228, 212, 37, 69, 84, 36, 243, 129, 48, 148, 197, 72,
-			15, 13, 202, 56, 82, 210, 60, 208, 78, 80, 146, 197, 72, 15, 13, 202, 44, 148, 143, 65, 32, 75, 80, 146, 197, 72, 15, 13, 202, 24,
-			147, 8, 5, 35, 79, 56, 146, 197, 72, 15, 10, 199, 72, 81, 197, 57, 50, 65, 56, 15, 10, 199, 12, 20, 212, 36, 194, 65, 56, 15,
-			9, 198, 72, 85, 129, 56, 50, 5, 15, 10, 199, 44, 20, 140, 40, 242, 1, 56, 16, 7, 196, 4, 147, 65, 8, 15, 6, 195, 25, 32,
-			64, 76, 0, 10, 199, 61, 32, 78, 28, 80, 68, 20, 15, 10, 199, 60, 198, 77, 64, 144, 68, 20, 15, 10, 199, 52, 20, 203, 21, 32,
-			68, 20, 15, 10, 199, 44, 21, 129, 48, 176, 68, 20, 15, 10, 199, 40, 84, 133, 52, 144, 68, 20, 15, 10, 199, 8, 20, 146, 36, 176,
-			68, 20, 15, 8, 197, 64, 20, 211, 4, 32, 15, 0, 8, 197, 89, 83, 7, 125, 32, 15, 21, 68, 77, 64, 78, 16, 89, 47, 117, 50,
-			72, 6, 36, 50, 0, 44, 15, 81, 105, 110, 32, 11, 200, 88, 84, 212, 4, 194, 78, 16, 80, 15, 11, 200, 76, 19, 135, 21, 34, 78,
-			16, 80, 15, 11, 200, 64, 20, 212, 61, 34, 78, 16, 80, 15, 11, 200, 44, 82, 147, 21, 34, 78, 16, 80, 15, 11, 200, 32, 83, 7,
-			20, 226, 78, 16, 80, 15, 11, 200, 16, 145, 212, 21, 34, 78, 16, 80, 15, 9, 198, 76, 177, 77, 5, 66, 75, 15, 11, 200, 8, 19,
-			21, 77, 68, 129, 16, 80, 15, 0, 11, 200, 9, 35, 206, 44, 244, 203, 61, 0, 15, 9, 198, 32, 243, 143, 73, 244, 128, 15, 0, 13,
-			202, 77, 74, 75, 36, 243, 69, 81, 34, 83, 44, 15, 10, 199, 9, 32, 83, 36, 194, 65, 56, 15, 12, 68, 12, 242, 5, 56, 49, 125,
-			40, 14, 50, 0, 0, 14, 69, 76, 18, 71, 60, 224, 89, 121, 57, 81, 108, 50, 0, 8, 197, 21, 2, 71, 60, 224, 15, 8, 197, 72,
-			21, 9, 60, 224, 15, 16, 69, 29, 32, 84, 36, 224, 81, 34, 121, 47, 6, 115, 68, 0, 15, 8, 197, 76, 195, 214, 20, 224, 15, 11,
-			200, 72, 84, 21, 8, 194, 75, 4, 224, 15, 8, 197, 85, 33, 84, 4, 224, 16, 0, 11, 200, 52, 85, 1, 48, 197, 82, 28, 144, 15,
-			11, 200, 25, 85, 21, 72, 243, 15, 28, 144, 15, 11, 200, 25, 32, 83, 20, 243, 15, 28, 144, 15, 11, 200, 21, 50, 201, 52, 243, 15,
-			28, 144, 15, 11, 200, 16, 83, 132, 72, 243, 15, 28, 144, 15, 13, 202, 20, 180, 208, 21, 34, 77, 20, 229, 5, 48, 15, 12, 201, 12,
-			19, 9, 24, 244, 142, 36, 83, 128, 15, 9, 198, 65, 39, 199, 56, 19, 148, 15, 0, 12, 201, 44, 244, 205, 21, 67, 204, 60, 114, 64,
-			15, 8, 197, 88, 83, 148, 36, 192, 15, 8, 197, 28, 83, 148, 36, 192, 15, 8, 197, 24, 84, 148, 36, 192, 15, 8, 197, 88, 19, 132,
-			4, 192, 15, 8, 197, 76, 19, 132, 4, 192, 15, 11, 200, 65, 4, 137, 56, 50, 80, 4, 192, 15, 11, 200, 64, 20, 129, 16, 242, 211,
-			4, 192, 15, 11, 200, 61, 35, 129, 52, 83, 148, 4, 192, 15, 11, 200, 60, 48, 201, 16, 83, 148, 4, 192, 15, 11, 200, 52, 243, 149,
-			52, 83, 148, 4, 192, 15, 11, 200, 32, 244, 137, 76, 243, 148, 4, 192, 15, 12, 4, 95, 35, 51, 50, 71, 55, 35, 50, 49, 0, 0,
-			9, 198, 88, 19, 11, 101, 34, 69, 15, 9, 198, 76, 49, 78, 5, 34, 69, 15, 9, 198, 72, 83, 9, 45, 98, 69, 15, 9, 198, 76,
-			147, 5, 57, 66, 69, 15, 9, 198, 76, 49, 78, 5, 34, 69, 15, 9, 198, 61, 32, 84, 61, 34, 69, 15, 9, 198, 53, 148, 212, 21,
-			34, 69, 15, 9, 198, 45, 34, 84, 21, 34, 69, 15, 9, 198, 44, 243, 131, 36, 194, 69, 15, 9, 198, 44, 243, 12, 20, 114, 69, 15,
-			9, 198, 28, 195, 211, 5, 34, 69, 15, 9, 198, 16, 85, 84, 21, 34, 69, 15, 9, 198, 80, 83, 5, 24, 243, 137, 15, 7, 196, 85,
-			32, 129, 56, 16, 0, 22, 68, 32, 20, 16, 100, 107, 117, 48, 37, 15, 6, 121, 40, 108, 0, 81, 104, 111, 117, 114, 32, 8, 197, 28,
-			19, 9, 60, 224, 15, 8, 197, 44, 195, 210, 36, 224, 15, 12, 201, 36, 229, 5, 73, 1, 76, 48, 19, 148, 15, 10, 69, 61, 33, 71,
-			60, 224, 21, 0, 47, 0, 13, 202, 44, 244, 146, 21, 52, 15, 56, 65, 78, 80, 15, 0, 8, 197, 76, 84, 150, 36, 192, 15, 8, 197,
-			24, 80, 146, 36, 192, 15, 8, 197, 44, 243, 150, 4, 192, 15, 9, 198, 5, 36, 197, 56, 19, 0, 15, 0, 7, 196, 65, 84, 133, 72,
-			15, 7, 196, 44, 20, 5, 72, 15, 9, 198, 52, 148, 207, 29, 147, 137, 15, 10, 199, 32, 82, 212, 60, 116, 129, 24, 15, 10, 199, 65,
-			32, 75, 80, 148, 193, 8, 15, 10, 199, 44, 243, 132, 20, 211, 129, 8, 15, 10, 199, 24, 20, 200, 36, 243, 129, 8, 15, 0, 27, 67,
-			24, 18, 84, 83, 116, 47, 118, 49, 109, 65, 48, 55, 6, 111, 0, 81, 97, 99, 99, 111, 109, 112, 108, 105, 32, 9, 198, 81, 32, 83,
-			76, 21, 0, 15, 0, 9, 198, 64, 244, 201, 81, 84, 128, 15, 9, 198, 5, 35, 65, 81, 84, 128, 15, 9, 198, 72, 85, 137, 76, 244,
-			128, 15, 9, 198, 44, 244, 21, 48, 84, 128, 15, 9, 198, 21, 50, 193, 48, 84, 128, 15, 9, 198, 5, 81, 9, 80, 84, 128, 15, 9,
-			68, 12, 128, 82, 80, 21, 0, 47, 0, 9, 198, 44, 20, 146, 36, 243, 0, 15, 10, 67, 57, 228, 128, 50, 108, 34, 0, 8, 0, 6,
-			195, 44, 101, 77, 13, 10, 199, 76, 195, 214, 20, 226, 69, 56, 15, 10, 199, 12, 20, 212, 36, 194, 69, 56, 15, 10, 199, 16, 243, 73,
-			56, 144, 193, 56, 15, 0, 9, 198, 44, 194, 69, 57, 65, 76, 15, 9, 198, 36, 211, 79, 73, 65, 76, 15, 9, 198, 44, 194, 69, 57,
-			65, 76, 15, 9, 198, 44, 20, 146, 85, 49, 76, 15, 9, 198, 36, 211, 79, 73, 65, 76, 15, 9, 198, 36, 225, 9, 88, 145, 0, 15,
-			9, 198, 44, 243, 147, 20, 228, 192, 15, 9, 198, 44, 243, 132, 20, 228, 192, 15, 9, 198, 16, 83, 9, 44, 21, 0, 15, 0, 12, 201,
-			84, 226, 70, 61, 35, 69, 72, 147, 135, 15, 12, 201, 77, 65, 78, 12, 147, 5, 72, 147, 135, 15, 12, 201, 77, 3, 206, 76, 244, 133,
-			72, 147, 135, 15, 12, 201, 76, 82, 212, 36, 243, 133, 72, 147, 135, 15, 12, 201, 72, 81, 201, 77, 68, 133, 72, 147, 135, 15, 12, 201,
-			72, 21, 9, 32, 16, 133, 72, 147, 135, 15, 12, 201, 61, 34, 197, 77, 68, 133, 72, 147, 135, 15, 12, 201, 52, 81, 9, 12, 147, 133,
-			72, 147, 135, 15, 12, 201, 52, 19, 137, 65, 83, 5, 72, 147, 135, 15, 12, 201, 48, 81, 201, 80, 147, 69, 72, 147, 135, 15, 12, 201,
-			44, 243, 210, 16, 147, 133, 72, 147, 135, 15, 12, 201, 44, 243, 132, 20, 228, 197, 72, 147, 135, 15, 12, 201, 44, 243, 132, 20, 211, 133,
-			72, 147, 135, 15, 12, 201, 44, 243, 80, 72, 147, 69, 72, 147, 135, 15, 12, 201, 44, 243, 80, 20, 228, 197, 72, 147, 135, 15, 12, 201,
-			44, 192, 85, 77, 83, 5, 72, 147, 135, 15, 12, 201, 44, 21, 84, 36, 243, 133, 72, 147, 135, 15, 12, 201, 44, 20, 148, 60, 227, 133,
-			72, 147, 135, 15, 12, 201, 44, 19, 148, 60, 227, 133, 72, 147, 135, 15, 12, 201, 36, 228, 197, 52, 147, 133, 72, 147, 135, 15, 12, 201,
-			36, 225, 137, 49, 68, 133, 72, 147, 135, 15, 12, 201, 36, 225, 18, 84, 195, 5, 72, 147, 135, 15, 12, 201, 36, 225, 11, 48, 20, 133,
-			72, 147, 135, 15, 12, 201, 36, 195, 21, 77, 68, 133, 72, 147, 135, 15, 12, 201, 28, 83, 1, 80, 147, 133, 72, 147, 135, 15, 12, 201,
-			24, 147, 129, 57, 50, 69, 72, 147, 135, 15, 12, 201, 24, 147, 15, 76, 241, 133, 72, 147, 135, 15, 12, 201, 16, 148, 208, 20, 228, 197,
-			72, 147, 135, 15, 12, 201, 13, 84, 20, 85, 35, 133, 72, 147, 135, 15, 12, 201, 12, 149, 137, 48, 148, 197, 72, 147, 135, 15, 12, 201,
-			12, 19, 79, 84, 99, 5, 72, 147, 135, 15, 12, 201, 5, 85, 15, 72, 148, 197, 72, 147, 135, 15, 12, 201, 5, 52, 201, 52, 147, 5,
-			72, 147, 135, 15, 12, 201, 4, 208, 76, 28, 19, 69, 72, 147, 135, 15, 12, 201, 4, 178, 213, 53, 83, 5, 72, 147, 135, 15, 0, 18,
-			7, 108, 39, 99, 104, 97, 105, 109, 55, 117, 49, 34, 6, 35, 57, 65, 0, 0, 10, 199, 77, 2, 82, 37, 69, 105, 76, 15, 10, 199,
-			36, 224, 197, 77, 69, 105, 76, 15, 9, 198, 52, 243, 143, 28, 19, 73, 15, 10, 199, 61, 53, 9, 56, 66, 69, 56, 15, 10, 199, 9,
-			32, 83, 36, 194, 69, 56, 15, 7, 196, 80, 86, 1, 56, 15, 9, 68, 48, 241, 201, 56, 21, 0, 47, 0, 11, 200, 76, 83, 148, 20,
-			229, 9, 165, 48, 15, 10, 199, 8, 147, 12, 21, 69, 41, 72, 15, 8, 197, 56, 21, 9, 60, 224, 15, 16, 69, 64, 244, 12, 36, 224,
-			48, 108, 48, 55, 6, 115, 68, 0, 15, 11, 200, 64, 243, 25, 56, 84, 201, 20, 224, 15, 11, 200, 52, 83, 1, 56, 84, 201, 20, 224,
-			15, 11, 200, 52, 18, 197, 16, 243, 137, 20, 224, 15, 11, 200, 4, 33, 83, 76, 147, 137, 20, 224, 15, 11, 200, 88, 81, 197, 80, 20,
-			137, 4, 224, 15, 11, 200, 20, 53, 65, 16, 244, 137, 4, 224, 15, 8, 197, 4, 97, 200, 4, 224, 15, 11, 68, 77, 83, 12, 100, 89,
-			109, 55, 111, 0, 10, 69, 5, 84, 212, 36, 224, 21, 0, 47, 0, 11, 200, 76, 83, 5, 56, 243, 15, 28, 144, 15, 11, 200, 76, 82,
-			83, 52, 243, 15, 28, 144, 15, 11, 200, 52, 243, 9, 56, 243, 15, 28, 144, 15, 12, 201, 88, 242, 193, 48, 148, 197, 72, 147, 135, 15,
-			12, 201, 88, 148, 137, 48, 148, 197, 72, 147, 135, 15, 12, 201, 85, 32, 129, 56, 148, 197, 72, 147, 135, 15, 12, 201, 84, 64, 129, 77,
-			83, 133, 72, 147, 135, 15, 12, 201, 81, 148, 9, 24, 144, 197, 72, 147, 135, 15, 12, 201, 80, 149, 143, 48, 148, 197, 72, 147, 135, 15,
-			12, 201, 80, 84, 146, 5, 52, 197, 72, 147, 135, 15, 12, 201, 80, 83, 65, 80, 148, 197, 72, 147, 135, 15, 12, 201, 80, 83, 5, 24,
-			243, 133, 72, 147, 135, 15, 12, 201, 76, 213, 75, 44, 84, 197, 72, 147, 135, 15, 12, 201, 76, 128, 77, 64, 243, 133, 72, 147, 135, 15,
-			12, 201, 76, 21, 9, 72, 148, 197, 72, 147, 135, 15, 12, 201, 72, 243, 65, 56, 148, 197, 72, 147, 135, 15, 12, 201, 72, 149, 129, 48,
-			148, 197, 72, 147, 135, 15, 12, 201, 72, 84, 212, 5, 84, 133, 72, 147, 135, 15, 12, 201, 72, 83, 80, 48, 16, 197, 72, 147, 135, 15,
-			12, 201, 72, 81, 84, 4, 35, 5, 72, 147, 135, 15, 12, 201, 72, 81, 18, 21, 52, 197, 72, 147, 135, 15, 12, 201, 72, 21, 9, 24,
-			144, 197, 72, 147, 135, 15, 12, 201, 64, 243, 65, 16, 148, 197, 72, 147, 135, 15, 12, 201, 64, 243, 9, 80, 148, 197, 72, 147, 135, 15,
-			12, 201, 64, 243, 5, 52, 148, 197, 72, 147, 135, 15, 12, 201, 64, 83, 147, 36, 243, 133, 72, 147, 135, 15, 12, 201, 64, 21, 18, 84,
-			194, 133, 72, 147, 135, 15, 12, 201, 64, 20, 129, 49, 148, 197, 72, 147, 135, 15, 12, 201, 61, 33, 193, 56, 148, 197, 72, 147, 135, 15,
-			12, 201, 53, 83, 73, 24, 144, 197, 72, 147, 135, 15, 12, 201, 52, 245, 15, 72, 148, 197, 72, 147, 135, 15, 12, 201, 52, 244, 129, 48,
-			148, 197, 72, 147, 135, 15, 12, 201, 52, 240, 137, 48, 148, 197, 72, 147, 135, 15, 12, 201, 52, 18, 143, 72, 148, 197, 72, 147, 135, 15,
-			12, 201, 52, 17, 193, 76, 147, 133, 72, 147, 135, 15, 12, 201, 48, 242, 193, 48, 148, 197, 72, 147, 135, 15, 12, 201, 48, 81, 193, 48,
-			148, 197, 72, 147, 135, 15, 12, 201, 44, 243, 134, 61, 35, 69, 72, 147, 135, 15, 12, 201, 44, 243, 134, 37, 35, 69, 72, 147, 135, 15,
-			12, 201, 44, 21, 5, 44, 148, 197, 72, 147, 135, 15, 12, 201, 44, 19, 143, 56, 148, 197, 72, 147, 135, 15, 12, 201, 44, 19, 129, 48,
-			148, 197, 72, 147, 135, 15, 12, 201, 37, 51, 1, 52, 148, 197, 72, 147, 135, 15, 12, 201, 36, 228, 212, 4, 195, 5, 72, 147, 135, 15,
-			12, 201, 36, 225, 16, 48, 16, 197, 72, 147, 135, 15, 12, 201, 36, 225, 11, 5, 52, 197, 72, 147, 135, 15, 12, 201, 36, 211, 85, 56,
-			148, 197, 72, 147, 135, 15, 12, 201, 36, 195, 21, 52, 147, 133, 72, 147, 135, 15, 12, 201, 36, 65, 65, 48, 148, 197, 72, 147, 135, 15,
-			12, 201, 33, 83, 65, 56, 148, 197, 72, 147, 135, 15, 12, 201, 29, 34, 77, 5, 52, 197, 72, 147, 135, 15, 12, 201, 24, 197, 73, 16,
-			148, 197, 72, 147, 135, 15, 12, 201, 24, 83, 73, 56, 148, 197, 72, 147, 135, 15, 12, 201, 24, 21, 143, 72, 148, 197, 72, 147, 135, 15,
-			12, 201, 24, 20, 200, 36, 243, 133, 72, 147, 135, 15, 12, 201, 24, 19, 129, 80, 148, 197, 72, 147, 135, 15, 12, 201, 20, 208, 78, 12,
-			148, 5, 72, 147, 135, 15, 12, 201, 16, 84, 212, 36, 195, 5, 72, 147, 135, 15, 12, 201, 16, 83, 129, 81, 84, 133, 72, 147, 135, 15,
-			12, 201, 16, 82, 204, 5, 52, 197, 72, 147, 135, 15, 12, 201, 16, 80, 200, 36, 100, 133, 72, 147, 135, 15, 12, 201, 8, 19, 129, 48,
-			148, 197, 72, 147, 135, 15, 12, 201, 4, 181, 9, 88, 148, 197, 72, 147, 135, 15, 11, 200, 32, 147, 12, 21, 42, 68, 4, 224, 15, 0,
-			9, 198, 72, 80, 197, 65, 69, 82, 15, 8, 197, 44, 244, 142, 20, 192, 15, 8, 197, 44, 244, 142, 20, 192, 15, 9, 198, 66, 147, 137,
-			80, 84, 128, 15, 9, 198, 33, 227, 132, 80, 84, 128, 15, 8, 197, 44, 243, 147, 60, 192, 15, 9, 198, 26, 147, 137, 44, 84, 128, 15,
-			8, 197, 77, 80, 148, 36, 192, 15, 8, 197, 52, 244, 140, 36, 192, 15, 12, 201, 81, 84, 139, 52, 83, 137, 77, 64, 78, 16, 12, 201,
-			80, 17, 19, 40, 146, 201, 77, 64, 78, 16, 14, 203, 81, 32, 78, 76, 49, 78, 16, 83, 148, 4, 192, 15, 8, 197, 52, 83, 148, 4,
-			192, 15, 11, 200, 37, 36, 129, 80, 147, 206, 4, 192, 15, 0, 10, 199, 77, 80, 147, 36, 66, 69, 72, 15, 10, 199, 84, 68, 208, 36,
-			243, 133, 72, 15, 10, 199, 76, 128, 77, 64, 243, 133, 72, 15, 10, 199, 64, 20, 131, 20, 195, 5, 72, 15, 10, 199, 44, 243, 147, 36,
-			115, 133, 72, 15, 10, 199, 44, 21, 84, 36, 243, 133, 72, 15, 10, 199, 36, 228, 212, 4, 195, 5, 72, 15, 10, 199, 36, 225, 18, 84,
-			195, 5, 72, 15, 10, 199, 28, 243, 132, 60, 194, 69, 72, 15, 10, 199, 20, 180, 193, 52, 147, 133, 72, 15, 10, 199, 16, 84, 212, 36,
-			195, 5, 72, 15, 10, 199, 12, 19, 79, 84, 99, 5, 72, 15, 10, 199, 76, 177, 80, 80, 146, 197, 72, 15, 10, 199, 76, 21, 9, 72,
-			146, 197, 72, 15, 10, 199, 72, 85, 15, 72, 146, 197, 72, 15, 10, 199, 64, 243, 5, 52, 146, 197, 72, 15, 10, 199, 28, 227, 211, 80,
-			146, 197, 72, 15, 10, 199, 28, 83, 133, 80, 146, 197, 72, 15, 10, 199, 24, 243, 133, 80, 146, 197, 72, 15, 10, 199, 24, 19, 129, 80,
-			146, 197, 72, 15, 10, 199, 20, 212, 9, 72, 146, 197, 72, 15, 10, 199, 5, 53, 5, 56, 146, 197, 72, 15, 10, 199, 4, 181, 83, 80,
-			146, 197, 72, 15, 7, 196, 48, 21, 9, 56, 15, 13, 202, 48, 145, 67, 33, 65, 78, 77, 65, 73, 56, 15, 7, 196, 48, 21, 9, 56,
-			15, 10, 199, 44, 243, 77, 20, 229, 1, 72, 15, 0, 8, 197, 44, 21, 9, 60, 224, 15, 10, 199, 65, 39, 212, 20, 225, 5, 72, 15,
-			8, 197, 24, 195, 210, 36, 224, 15, 9, 198, 81, 34, 66, 84, 224, 84, 15, 9, 198, 77, 83, 20, 4, 224, 84, 15, 9, 198, 72, 82,
-			212, 61, 32, 84, 15, 9, 198, 72, 16, 130, 36, 224, 84, 15, 9, 198, 64, 245, 5, 57, 64, 84, 15, 9, 198, 48, 82, 212, 61, 32,
-			84, 15, 9, 198, 44, 244, 146, 20, 192, 84, 15, 9, 198, 29, 32, 78, 84, 192, 84, 15, 9, 198, 24, 245, 15, 77, 64, 84, 15, 9,
-			198, 12, 83, 147, 61, 32, 84, 15, 9, 198, 5, 69, 5, 57, 64, 84, 15, 8, 197, 76, 244, 18, 4, 224, 16, 0, 12, 201, 81, 32,
-			78, 76, 210, 84, 80, 84, 128, 15, 12, 201, 80, 18, 212, 72, 81, 213, 48, 84, 128, 15, 12, 201, 77, 147, 139, 72, 85, 9, 76, 84,
-			128, 15, 12, 201, 77, 65, 84, 61, 50, 207, 64, 84, 128, 15, 12, 201, 77, 65, 78, 60, 116, 129, 24, 84, 128, 15, 12, 201, 72, 85,
-			137, 80, 19, 9, 76, 84, 128, 15, 12, 201, 72, 82, 212, 61, 50, 207, 64, 84, 128, 15, 12, 201, 72, 82, 193, 64, 149, 21, 48, 84,
-			128, 15, 12, 201, 72, 82, 1, 8, 147, 9, 80, 84, 128, 15, 12, 201, 60, 212, 18, 36, 244, 137, 80, 84, 128, 15, 12, 201, 4, 100,
-			1, 81, 37, 76, 40, 84, 128, 15, 12, 201, 64, 19, 1, 80, 19, 9, 76, 84, 128, 15, 12, 201, 53, 149, 15, 48, 241, 201, 76, 84,
-			128, 15, 12, 201, 53, 83, 20, 37, 3, 9, 12, 84, 128, 15, 12, 201, 52, 243, 143, 64, 243, 9, 76, 84, 128, 15, 12, 201, 52, 243,
-			143, 25, 67, 206, 28, 84, 128, 15, 12, 201, 52, 146, 210, 61, 50, 207, 64, 84, 128, 15, 12, 201, 44, 243, 147, 81, 34, 78, 28, 84,
-			128, 15, 12, 201, 44, 19, 12, 36, 116, 129, 24, 84, 128, 15, 12, 201, 36, 229, 5, 73, 4, 133, 80, 84, 128, 15, 12, 201, 36, 229,
-			5, 72, 210, 84, 80, 84, 128, 15, 12, 201, 36, 225, 11, 4, 194, 213, 48, 84, 128, 15, 12, 201, 32, 243, 79, 28, 83, 137, 76, 84,
-			128, 15, 12, 201, 32, 82, 212, 60, 116, 129, 24, 84, 128, 15, 12, 201, 24, 244, 198, 61, 33, 83, 12, 84, 128, 15, 12, 201, 20, 180,
-			208, 72, 244, 18, 36, 84, 128, 15, 12, 201, 20, 180, 208, 48, 144, 201, 80, 84, 128, 15, 12, 201, 16, 148, 203, 72, 147, 73, 56, 84,
-			128, 15, 12, 201, 16, 145, 201, 80, 19, 9, 76, 84, 128, 15, 12, 201, 16, 83, 73, 77, 50, 79, 56, 84, 128, 15, 12, 201, 12, 128,
-			80, 80, 19, 9, 76, 84, 128, 15, 12, 201, 8, 20, 212, 5, 33, 9, 76, 84, 128, 15, 12, 201, 5, 85, 15, 52, 21, 9, 76, 84,
-			128, 15, 12, 201, 4, 193, 129, 8, 85, 9, 76, 84, 128, 15, 12, 201, 77, 145, 137, 48, 149, 9, 44, 84, 128, 15, 12, 201, 21, 2,
-			76, 21, 5, 9, 44, 84, 128, 15, 12, 201, 88, 144, 143, 72, 113, 78, 76, 84, 128, 15, 12, 201, 32, 240, 146, 60, 113, 78, 76, 84,
-			128, 15, 11, 200, 44, 20, 148, 60, 227, 129, 28, 80, 15, 11, 200, 24, 84, 142, 37, 52, 193, 28, 80, 15, 20, 71, 76, 195, 214, 4,
-			178, 69, 80, 89, 55, 124, 84, 118, 49, 6, 111, 13, 86, 0, 0, 8, 197, 44, 20, 212, 20, 192, 15, 8, 197, 44, 20, 148, 20, 192,
-			15, 8, 197, 44, 20, 212, 20, 192, 15, 8, 197, 44, 244, 132, 20, 192, 15, 8, 197, 44, 20, 148, 20, 192, 15, 8, 197, 8, 244, 132,
-			20, 192, 15, 12, 201, 81, 32, 78, 77, 3, 1, 57, 65, 82, 15, 12, 201, 44, 243, 148, 36, 225, 197, 57, 65, 82, 15, 13, 69, 12,
-			129, 82, 100, 192, 91, 116, 34, 114, 59, 0, 0, 11, 200, 64, 243, 80, 165, 50, 84, 21, 64, 15, 11, 200, 56, 84, 150, 165, 50, 84,
-			21, 64, 15, 11, 200, 52, 243, 132, 124, 226, 84, 21, 64, 15, 10, 199, 88, 149, 137, 76, 82, 197, 72, 15, 10, 199, 72, 81, 210, 20,
-			66, 69, 72, 15, 10, 199, 72, 81, 197, 56, 84, 133, 72, 15, 10, 199, 72, 81, 5, 24, 147, 133, 72, 15, 10, 199, 72, 80, 83, 77,
-			83, 69, 72, 15, 9, 198, 65, 39, 211, 36, 65, 82, 15, 10, 199, 65, 32, 75, 80, 148, 197, 72, 15, 10, 199, 64, 84, 150, 21, 37,
-			5, 72, 15, 10, 199, 52, 148, 211, 36, 243, 133, 72, 15, 10, 199, 44, 243, 210, 16, 147, 133, 72, 15, 10, 199, 44, 243, 150, 21, 37,
-			5, 72, 15, 10, 199, 44, 243, 132, 20, 211, 133, 72, 15, 10, 199, 44, 19, 15, 72, 145, 133, 72, 15, 10, 199, 36, 228, 197, 52, 147,
-			133, 72, 15, 10, 199, 36, 226, 193, 52, 147, 133, 72, 15, 10, 199, 36, 195, 21, 52, 147, 133, 72, 15, 10, 199, 28, 83, 1, 80, 147,
-			133, 72, 15, 10, 199, 24, 147, 147, 61, 37, 5, 72, 15, 10, 199, 24, 147, 129, 57, 50, 69, 72, 15, 10, 199, 24, 147, 15, 76, 241,
-			133, 72, 15, 10, 199, 65, 35, 211, 4, 146, 197, 72, 15, 10, 199, 64, 243, 9, 80, 146, 197, 72, 15, 10, 199, 52, 85, 15, 16, 146,
-			197, 72, 15, 10, 199, 52, 82, 193, 56, 146, 197, 72, 15, 10, 199, 44, 243, 5, 72, 146, 197, 72, 15, 10, 199, 44, 84, 129, 52, 146,
-			197, 72, 15, 10, 199, 9, 83, 9, 52, 146, 197, 72, 15, 0, 12, 201, 65, 35, 205, 37, 50, 213, 37, 65, 84, 15, 10, 199, 65, 39,
-			211, 20, 229, 5, 72, 15, 0, 11, 200, 46, 147, 147, 45, 99, 212, 21, 32, 15, 0, 14, 203, 72, 85, 133, 73, 50, 66, 36, 194, 84,
-			21, 64, 15, 14, 203, 65, 35, 199, 72, 84, 211, 37, 98, 84, 21, 64, 15, 14, 203, 65, 35, 198, 37, 64, 66, 36, 194, 84, 21, 64,
-			15, 14, 203, 44, 243, 80, 5, 66, 66, 36, 194, 84, 21, 64, 15, 14, 203, 37, 36, 129, 80, 147, 206, 4, 194, 84, 21, 64, 15, 14,
-			203, 36, 225, 70, 24, 82, 212, 37, 98, 84, 21, 64, 15, 14, 203, 25, 83, 139, 80, 147, 206, 4, 194, 84, 21, 64, 15, 14, 203, 16,
-			148, 212, 36, 226, 212, 37, 98, 84, 21, 64, 15, 14, 203, 16, 84, 212, 73, 82, 212, 37, 98, 84, 21, 64, 15, 14, 203, 4, 48, 197,
-			65, 64, 66, 36, 194, 84, 21, 64, 15, 12, 201, 44, 244, 146, 21, 52, 15, 56, 65, 82, 15, 9, 198, 36, 226, 149, 72, 145, 64, 15,
-			9, 198, 8, 85, 15, 56, 145, 64, 15, 9, 198, 5, 37, 5, 72, 145, 64, 15, 9, 198, 72, 81, 149, 28, 145, 64, 15, 9, 198, 53,
-			144, 197, 48, 145, 64, 15, 9, 198, 36, 225, 9, 12, 145, 64, 15, 9, 198, 16, 83, 9, 72, 145, 64, 15, 9, 198, 4, 209, 137, 8,
-			145, 64, 15, 9, 198, 81, 84, 137, 76, 209, 64, 15, 9, 198, 80, 19, 201, 76, 209, 64, 15, 9, 198, 72, 16, 201, 76, 209, 64, 15,
-			9, 198, 65, 84, 137, 76, 209, 64, 15, 9, 198, 64, 20, 9, 76, 209, 64, 15, 9, 198, 57, 81, 9, 76, 209, 64, 15, 9, 198, 56,
-			22, 137, 76, 209, 64, 15, 9, 198, 49, 148, 137, 76, 209, 64, 15, 9, 198, 20, 115, 201, 76, 209, 64, 15, 9, 198, 8, 147, 9, 76,
-			209, 64, 15, 10, 199, 77, 66, 76, 37, 53, 9, 44, 15, 10, 199, 77, 64, 84, 37, 53, 9, 44, 15, 10, 199, 76, 179, 204, 5, 53,
-			9, 44, 15, 9, 198, 80, 243, 142, 4, 113, 64, 15, 9, 198, 64, 20, 211, 4, 113, 64, 15, 9, 198, 52, 20, 211, 4, 113, 64, 15,
-			9, 198, 44, 244, 147, 4, 113, 64, 15, 9, 198, 25, 84, 212, 4, 113, 64, 15, 9, 198, 12, 245, 82, 4, 113, 64, 15, 9, 198, 12,
-			244, 147, 4, 113, 64, 15, 9, 198, 12, 243, 12, 4, 113, 64, 15, 11, 70, 76, 50, 69, 56, 49, 64, 21, 0, 47, 0, 10, 199, 81,
-			32, 86, 21, 37, 9, 56, 15, 0, 9, 198, 76, 147, 143, 48, 241, 192, 15, 9, 198, 53, 149, 15, 48, 241, 192, 15, 9, 198, 24, 147,
-			15, 48, 241, 192, 15, 9, 198, 88, 83, 79, 16, 145, 192, 15, 9, 198, 81, 33, 69, 56, 145, 192, 15, 12, 201, 72, 83, 73, 56, 148,
-			195, 20, 228, 192, 15, 12, 201, 49, 83, 73, 56, 84, 195, 20, 228, 192, 15, 12, 201, 45, 98, 78, 80, 84, 211, 20, 228, 192, 15, 12,
-			201, 36, 229, 5, 48, 194, 71, 20, 228, 192, 15, 12, 201, 36, 225, 9, 24, 97, 82, 20, 228, 192, 15, 12, 201, 24, 197, 79, 72, 84,
-			195, 20, 228, 192, 15, 0, 8, 197, 72, 17, 9, 125, 32, 15, 8, 197, 65, 33, 75, 125, 32, 15, 9, 198, 76, 83, 73, 80, 148, 203,
-			15, 9, 198, 64, 21, 5, 80, 148, 203, 15, 9, 198, 44, 84, 129, 52, 148, 203, 15, 9, 198, 20, 212, 1, 80, 148, 203, 15, 9, 198,
-			17, 37, 73, 16, 148, 203, 15, 9, 198, 4, 224, 82, 44, 148, 203, 15, 9, 198, 25, 33, 75, 88, 83, 147, 15, 9, 198, 77, 80, 147,
-			80, 19, 147, 15, 0, 9, 198, 80, 243, 148, 36, 225, 64, 15, 9, 198, 44, 19, 148, 36, 225, 64, 15, 9, 198, 21, 64, 77, 36, 225,
-			64, 15, 9, 198, 33, 145, 18, 5, 162, 78, 15, 10, 199, 32, 85, 82, 37, 53, 9, 44, 15, 12, 201, 65, 33, 83, 9, 149, 5, 72,
-			144, 78, 15, 9, 198, 45, 35, 203, 4, 65, 64, 15, 9, 198, 33, 148, 212, 4, 65, 64, 15, 9, 198, 24, 244, 140, 4, 65, 64, 15,
-			9, 198, 9, 34, 71, 4, 65, 64, 15, 9, 198, 8, 195, 203, 4, 65, 64, 15, 15, 70, 12, 20, 141, 36, 225, 64, 49, 121, 12, 65,
-			136, 50, 0, 0, 10, 199, 80, 84, 144, 20, 229, 9, 56, 15, 10, 199, 76, 84, 144, 20, 229, 9, 56, 15, 0, 9, 198, 65, 32, 75,
-			80, 146, 192, 15, 12, 201, 64, 84, 137, 77, 64, 76, 80, 146, 192, 15, 0, 11, 200, 52, 147, 133, 72, 19, 15, 28, 144, 15, 11, 200,
-			45, 33, 77, 48, 243, 15, 28, 144, 15, 11, 200, 44, 20, 132, 36, 243, 15, 28, 144, 15, 7, 196, 24, 83, 143, 48, 15, 11, 200, 33,
-			243, 79, 28, 195, 194, 36, 224, 15, 11, 200, 28, 20, 212, 72, 243, 143, 52, 144, 15, 0, 10, 199, 77, 98, 71, 4, 117, 9, 28, 15,
-			10, 199, 45, 85, 20, 21, 36, 137, 28, 15, 10, 199, 45, 83, 20, 85, 35, 9, 28, 15, 10, 199, 28, 83, 5, 4, 117, 9, 28, 15,
-			10, 199, 21, 98, 78, 16, 83, 9, 28, 15, 10, 199, 4, 101, 1, 28, 83, 9, 28, 15, 10, 199, 77, 98, 71, 4, 117, 9, 28, 15,
-			0, 11, 200, 80, 147, 7, 37, 97, 76, 36, 112, 15, 11, 200, 61, 1, 129, 81, 65, 76, 36, 112, 15, 11, 200, 61, 1, 18, 37, 97,
-			76, 36, 112, 15, 11, 200, 60, 208, 153, 81, 65, 76, 36, 112, 15, 11, 200, 45, 98, 78, 16, 17, 212, 36, 112, 15, 11, 200, 24, 19,
-			148, 5, 50, 82, 36, 112, 15, 9, 198, 77, 147, 139, 72, 243, 137, 15, 11, 200, 45, 98, 78, 16, 17, 212, 36, 112, 15, 0, 11, 200,
-			76, 19, 68, 73, 241, 212, 36, 112, 15, 12, 201, 56, 21, 21, 72, 96, 71, 48, 145, 192, 15, 12, 201, 24, 244, 132, 20, 192, 71, 80,
-			145, 192, 15, 11, 200, 17, 103, 210, 28, 17, 212, 36, 112, 15, 9, 198, 77, 3, 5, 56, 66, 68, 15, 8, 197, 16, 83, 6, 36, 224,
-			15, 12, 201, 52, 81, 4, 20, 192, 71, 80, 145, 192, 15, 12, 201, 24, 244, 132, 20, 192, 71, 80, 145, 192, 15, 0, 12, 201, 8, 80,
-			82, 8, 82, 132, 20, 194, 71, 67, 12, 201, 45, 84, 134, 101, 36, 212, 20, 194, 71, 15, 12, 201, 24, 244, 150, 20, 180, 204, 20, 194,
-			71, 15, 12, 201, 24, 244, 149, 17, 50, 71, 20, 194, 71, 15, 12, 201, 8, 80, 82, 8, 82, 132, 20, 194, 71, 15, 11, 200, 89, 83,
-			7, 5, 34, 83, 52, 80, 15, 11, 200, 88, 246, 69, 85, 34, 83, 52, 80, 15, 11, 200, 88, 19, 132, 4, 194, 83, 52, 80, 15, 11,
-			200, 81, 35, 212, 76, 178, 83, 52, 80, 15, 11, 200, 80, 84, 146, 61, 34, 83, 52, 80, 15, 11, 200, 77, 147, 66, 60, 194, 83, 52,
-			80, 15, 11, 200, 77, 147, 12, 60, 114, 83, 52, 80, 15, 11, 200, 77, 64, 76, 36, 226, 83, 52, 80, 15, 11, 200, 77, 2, 82, 37,
-			66, 83, 52, 80, 15, 11, 200, 76, 240, 201, 4, 194, 83, 52, 80, 15, 11, 200, 76, 130, 78, 80, 242, 83, 52, 80, 15, 11, 200, 76,
-			84, 137, 4, 194, 83, 52, 80, 15, 11, 200, 76, 82, 212, 21, 34, 83, 52, 80, 15, 11, 200, 72, 243, 65, 57, 66, 83, 52, 80, 15,
-			11, 200, 65, 34, 86, 5, 66, 83, 52, 80, 15, 11, 200, 64, 192, 84, 60, 226, 83, 52, 80, 15, 11, 200, 60, 178, 213, 49, 66, 83,
-			52, 80, 15, 11, 200, 56, 83, 204, 60, 114, 83, 52, 80, 15, 11, 200, 52, 243, 135, 60, 194, 83, 52, 80, 15, 11, 200, 52, 19, 137,
-			21, 34, 83, 52, 80, 15, 11, 200, 45, 33, 84, 36, 226, 83, 52, 80, 15, 11, 200, 28, 19, 12, 36, 50, 83, 52, 80, 15, 11, 200,
-			24, 244, 141, 4, 194, 83, 52, 80, 15, 11, 200, 24, 85, 68, 4, 194, 83, 52, 80, 15, 11, 200, 24, 85, 9, 12, 130, 83, 52, 80,
-			15, 11, 200, 20, 180, 207, 72, 50, 83, 52, 80, 15, 11, 200, 16, 20, 151, 36, 226, 83, 52, 80, 15, 11, 200, 9, 37, 84, 4, 194,
-			83, 52, 80, 15, 11, 200, 8, 20, 130, 5, 34, 83, 52, 80, 15, 11, 200, 4, 36, 213, 72, 66, 83, 52, 80, 15, 0, 9, 198, 33,
-			145, 18, 60, 99, 210, 15, 9, 198, 80, 244, 133, 4, 67, 210, 15, 9, 198, 124, 68, 149, 20, 194, 71, 15, 10, 199, 48, 21, 129, 16,
-			83, 9, 28, 15, 10, 199, 48, 19, 135, 52, 241, 9, 28, 15, 10, 199, 24, 244, 133, 56, 83, 9, 28, 15, 9, 198, 52, 243, 143, 64,
-			243, 0, 15, 10, 199, 48, 19, 135, 4, 117, 9, 28, 15, 8, 197, 49, 83, 66, 4, 192, 15, 0, 10, 199, 20, 180, 197, 45, 85, 15,
-			72, 15, 12, 201, 34, 146, 159, 73, 103, 210, 16, 145, 192, 15, 10, 199, 4, 117, 22, 125, 33, 9, 28, 15, 0, 7, 196, 4, 181, 41,
-			72, 15, 8, 197, 72, 80, 71, 21, 32, 15, 8, 197, 37, 34, 83, 21, 32, 15, 8, 197, 12, 131, 203, 21, 32, 15, 8, 197, 9, 81,
-			211, 21, 32, 15, 9, 198, 24, 197, 79, 72, 145, 0, 15, 9, 198, 16, 82, 193, 56, 21, 0, 15, 15, 70, 12, 128, 66, 48, 148, 192,
-			91, 118, 71, 55, 6, 111, 0, 0, 9, 198, 80, 82, 211, 81, 84, 128, 15, 9, 198, 76, 82, 211, 81, 84, 128, 15, 9, 198, 65, 83,
-			139, 81, 84, 128, 15, 9, 198, 52, 146, 211, 81, 84, 128, 15, 9, 198, 41, 83, 139, 81, 84, 128, 15, 9, 198, 5, 81, 9, 80, 244,
-			128, 15, 12, 201, 48, 19, 135, 76, 243, 77, 20, 194, 71, 15, 12, 201, 44, 243, 148, 36, 229, 69, 72, 194, 71, 15, 12, 201, 36, 225,
-			19, 80, 147, 12, 20, 194, 71, 15, 12, 201, 25, 33, 77, 44, 243, 77, 20, 194, 71, 15, 9, 198, 64, 243, 9, 80, 148, 203, 15, 9,
-			198, 21, 36, 129, 80, 148, 203, 15, 9, 198, 9, 37, 78, 20, 148, 203, 15, 9, 198, 8, 20, 201, 48, 148, 203, 15, 7, 196, 4, 113,
-			78, 80, 15, 11, 70, 92, 20, 146, 36, 244, 128, 21, 0, 47, 0, 9, 198, 28, 197, 84, 36, 234, 83, 15, 8, 197, 52, 19, 201, 77,
-			64, 15, 9, 198, 44, 243, 148, 72, 243, 0, 15, 8, 197, 77, 83, 142, 37, 64, 15, 8, 197, 65, 35, 198, 37, 64, 15, 9, 198, 32,
-			148, 212, 4, 210, 78, 15, 9, 198, 5, 4, 5, 49, 50, 78, 15, 9, 198, 45, 96, 82, 80, 147, 0, 15, 8, 197, 52, 17, 206, 5,
-			64, 15, 8, 197, 24, 244, 198, 5, 64, 15, 9, 198, 88, 17, 201, 56, 19, 0, 15, 9, 198, 72, 85, 137, 88, 19, 0, 15, 9, 198,
-			36, 195, 5, 28, 19, 0, 15, 8, 197, 88, 243, 1, 57, 64, 15, 8, 197, 45, 83, 1, 57, 64, 15, 8, 197, 28, 19, 1, 57, 64,
-			15, 0, 9, 198, 36, 229, 5, 72, 154, 82, 15, 7, 196, 52, 245, 15, 72, 15, 9, 198, 56, 85, 82, 4, 193, 201, 15, 10, 199, 36,
-			229, 5, 57, 50, 79, 56, 15, 10, 199, 16, 149, 133, 73, 50, 79, 56, 15, 11, 200, 88, 19, 9, 16, 84, 137, 56, 112, 15, 11, 200,
-			84, 68, 129, 16, 84, 137, 56, 112, 15, 11, 200, 81, 84, 195, 32, 84, 137, 56, 112, 15, 11, 200, 77, 3, 206, 76, 84, 137, 56, 112,
-			15, 11, 200, 76, 147, 85, 48, 84, 137, 56, 112, 15, 11, 200, 76, 19, 21, 80, 84, 137, 56, 112, 15, 11, 200, 60, 225, 21, 48, 84,
-			137, 56, 112, 15, 11, 200, 52, 147, 137, 52, 84, 137, 56, 112, 15, 11, 200, 52, 18, 213, 48, 84, 137, 56, 112, 15, 11, 200, 45, 98,
-			84, 80, 84, 137, 56, 112, 15, 11, 200, 40, 243, 137, 76, 84, 137, 56, 112, 15, 11, 200, 28, 19, 15, 64, 84, 137, 56, 112, 15, 11,
-			200, 24, 147, 5, 80, 84, 137, 56, 112, 15, 11, 200, 20, 180, 201, 48, 84, 137, 56, 112, 15, 11, 200, 16, 82, 193, 80, 84, 137, 56,
-			112, 15, 12, 201, 77, 84, 16, 61, 50, 84, 61, 34, 69, 15, 12, 201, 16, 242, 213, 52, 83, 148, 5, 34, 69, 15, 9, 198, 4, 229,
-			15, 57, 147, 73, 15, 10, 199, 16, 243, 73, 56, 146, 193, 56, 15, 10, 199, 12, 243, 15, 52, 34, 65, 56, 15, 0, 9, 198, 73, 244,
-			207, 56, 234, 82, 15, 8, 197, 45, 33, 77, 21, 32, 15, 9, 198, 44, 243, 15, 72, 149, 0, 15, 9, 198, 76, 243, 22, 20, 228, 192,
-			15, 9, 198, 80, 83, 203, 72, 21, 0, 15, 0, 21, 72, 48, 81, 197, 56, 65, 82, 56, 80, 55, 36, 81, 6, 115, 50, 72, 108, 50,
-			14, 0, 9, 198, 76, 243, 65, 80, 148, 203, 15, 9, 198, 76, 84, 129, 24, 148, 203, 15, 9, 198, 72, 18, 201, 80, 148, 203, 15, 12,
-			201, 12, 83, 148, 72, 145, 149, 28, 19, 0, 15, 20, 4, 95, 56, 88, 111, 83, 37, 34, 89, 36, 50, 89, 47, 129, 84, 14, 50, 14,
-			0, 0, 8, 197, 88, 84, 137, 77, 64, 15, 8, 197, 4, 244, 137, 77, 64, 15, 8, 197, 8, 21, 88, 37, 64, 15, 8, 197, 8, 19,
-			132, 37, 64, 15, 7, 196, 49, 148, 137, 44, 15, 8, 197, 88, 19, 5, 57, 64, 15, 8, 197, 80, 19, 5, 57, 64, 15, 8, 197, 64,
-			147, 69, 57, 64, 15, 8, 197, 52, 243, 69, 57, 64, 15, 8, 197, 16, 83, 69, 57, 64, 15, 8, 197, 48, 18, 212, 5, 64, 15, 8,
-			197, 16, 146, 212, 5, 64, 15, 0, 9, 198, 50, 145, 211, 82, 148, 128, 15, 8, 197, 164, 66, 80, 4, 192, 15, 0, 14, 68, 64, 128,
-			82, 52, 83, 121, 12, 34, 65, 19, 0, 25, 10, 199, 45, 34, 78, 60, 194, 78, 20, 15, 23, 72, 4, 180, 143, 77, 66, 75, 60, 224,
-			35, 49, 34, 108, 89, 72, 37, 49, 6, 108, 50, 0, 15, 11, 200, 36, 229, 5, 72, 97, 82, 60, 224, 15, 11, 200, 88, 83, 133, 72,
-			21, 9, 60, 224, 15, 11, 200, 76, 147, 85, 48, 21, 9, 60, 224, 15, 11, 200, 72, 84, 21, 80, 21, 9, 60, 224, 15, 11, 200, 72,
-			83, 143, 88, 21, 9, 60, 224, 15, 11, 200, 72, 83, 5, 28, 21, 9, 60, 224, 15, 11, 200, 65, 35, 212, 20, 181, 9, 60, 224, 15,
-			11, 200, 65, 35, 196, 84, 181, 9, 60, 224, 15, 11, 200, 64, 244, 21, 48, 21, 9, 60, 224, 15, 11, 200, 61, 4, 15, 76, 149, 9,
-			60, 224, 15, 8, 197, 52, 245, 9, 60, 224, 15, 11, 200, 36, 229, 137, 80, 21, 9, 60, 224, 15, 11, 200, 36, 228, 208, 20, 181, 9,
-			60, 224, 15, 11, 200, 36, 226, 9, 8, 149, 9, 60, 224, 15, 11, 200, 36, 224, 201, 80, 21, 9, 60, 224, 15, 11, 200, 28, 192, 67,
-			36, 21, 9, 60, 224, 15, 11, 200, 20, 209, 78, 16, 21, 9, 60, 224, 15, 11, 200, 20, 180, 208, 4, 228, 201, 60, 224, 15, 11, 200,
-			16, 84, 18, 21, 52, 201, 60, 224, 15, 11, 200, 16, 83, 5, 28, 21, 9, 60, 224, 15, 11, 200, 4, 211, 85, 56, 149, 9, 60, 224,
-			15, 8, 197, 4, 181, 9, 60, 224, 15, 9, 198, 52, 20, 203, 36, 225, 76, 15, 11, 200, 76, 145, 82, 72, 19, 5, 60, 224, 15, 8,
-			197, 45, 33, 84, 36, 224, 15, 12, 201, 20, 180, 203, 72, 83, 69, 57, 64, 76, 15, 0, 0, 12, 201, 52, 19, 137, 65, 83, 1, 82,
-			148, 128, 15, 12, 201, 36, 228, 212, 4, 195, 1, 82, 148, 128, 15, 12, 201, 20, 229, 18, 21, 4, 133, 58, 148, 128, 15, 12, 201, 16,
-			148, 212, 72, 144, 149, 82, 148, 128, 15, 12, 201, 16, 84, 212, 36, 195, 1, 82, 148, 128, 15, 12, 201, 16, 84, 201, 56, 97, 75, 82,
-			148, 128, 15, 10, 199, 20, 229, 15, 52, 243, 15, 28, 15, 8, 197, 64, 244, 148, 4, 192, 15, 0, 11, 200, 5, 52, 217, 72, 147, 204,
-			60, 112, 15, 12, 201, 36, 225, 129, 57, 65, 82, 37, 53, 0, 15, 10, 199, 85, 32, 129, 56, 148, 197, 72, 15, 10, 199, 81, 148, 9,
-			24, 144, 197, 72, 15, 10, 199, 80, 149, 143, 48, 148, 197, 72, 15, 10, 199, 80, 83, 65, 80, 148, 197, 72, 15, 10, 199, 76, 225, 68,
-			44, 84, 133, 72, 15, 10, 199, 76, 21, 9, 72, 148, 197, 72, 15, 10, 199, 72, 149, 129, 48, 148, 197, 72, 15, 10, 199, 72, 84, 212,
-			5, 84, 133, 72, 15, 10, 199, 72, 83, 80, 48, 16, 197, 72, 15, 10, 199, 72, 21, 9, 32, 16, 133, 72, 15, 10, 199, 72, 21, 9,
-			24, 144, 197, 72, 15, 10, 199, 64, 243, 65, 16, 148, 197, 72, 15, 10, 199, 64, 243, 5, 52, 148, 197, 72, 15, 10, 199, 61, 33, 193,
-			56, 148, 197, 72, 15, 10, 199, 56, 245, 9, 24, 144, 197, 72, 15, 10, 199, 53, 83, 73, 24, 144, 197, 72, 15, 10, 199, 52, 245, 15,
-			72, 148, 197, 72, 15, 10, 199, 52, 244, 129, 48, 148, 197, 72, 15, 10, 199, 52, 240, 137, 48, 148, 197, 72, 15, 10, 199, 52, 18, 143,
-			72, 148, 197, 72, 15, 10, 199, 44, 243, 150, 21, 36, 197, 72, 15, 10, 199, 44, 243, 147, 64, 148, 133, 72, 15, 10, 199, 44, 243, 147,
-			20, 180, 133, 72, 15, 10, 199, 44, 243, 80, 48, 144, 197, 72, 15, 10, 199, 44, 21, 5, 44, 148, 197, 72, 15, 10, 199, 44, 19, 143,
-			56, 148, 197, 72, 15, 10, 199, 44, 19, 129, 48, 148, 197, 72, 15, 10, 199, 36, 225, 11, 48, 20, 133, 72, 15, 10, 199, 36, 224, 85,
-			29, 84, 133, 72, 15, 10, 199, 36, 211, 85, 56, 148, 197, 72, 15, 10, 199, 33, 83, 65, 56, 148, 197, 72, 15, 10, 199, 24, 83, 73,
-			56, 148, 197, 72, 15, 10, 199, 24, 21, 143, 72, 148, 197, 72, 15, 10, 199, 24, 19, 129, 80, 148, 197, 72, 15, 10, 199, 20, 180, 208,
-			48, 244, 133, 72, 15, 10, 199, 16, 83, 129, 81, 84, 133, 72, 15, 10, 199, 12, 149, 137, 48, 148, 197, 72, 15, 10, 199, 8, 83, 133,
-			16, 144, 197, 72, 15, 10, 199, 8, 19, 129, 48, 148, 197, 72, 15, 10, 199, 4, 181, 9, 88, 148, 197, 72, 15, 10, 199, 49, 83, 132,
-			20, 228, 197, 72, 15, 0, 13, 138, 39, 97, 102, 109, 97, 114, 99, 104, 101, 114, 15, 13, 202, 65, 54, 75, 60, 96, 82, 52, 18, 213,
-			52, 15, 7, 196, 64, 193, 84, 36, 15, 8, 197, 32, 83, 12, 20, 224, 15, 9, 198, 64, 244, 212, 21, 64, 84, 15, 9, 198, 64, 20,
-			139, 60, 208, 84, 15, 9, 198, 48, 149, 20, 21, 32, 84, 15, 9, 198, 44, 19, 77, 21, 32, 84, 15, 9, 198, 17, 84, 12, 36, 176,
-			84, 15, 9, 198, 16, 148, 12, 60, 208, 84, 15, 9, 198, 16, 84, 208, 21, 32, 84, 15, 9, 198, 13, 146, 204, 4, 208, 84, 15, 9,
-			198, 9, 32, 75, 80, 80, 84, 15, 9, 198, 5, 85, 15, 45, 32, 84, 15, 9, 198, 4, 113, 210, 20, 112, 84, 15, 0, 9, 198, 29,
-			39, 195, 37, 65, 84, 15, 12, 201, 72, 83, 1, 80, 149, 137, 76, 84, 128, 15, 12, 201, 21, 2, 71, 72, 17, 137, 44, 84, 128, 15,
-			12, 201, 5, 66, 5, 56, 145, 78, 76, 84, 128, 15, 0, 10, 199, 88, 83, 133, 72, 243, 15, 28, 15, 10, 199, 65, 35, 203, 80, 243,
-			15, 28, 15, 10, 199, 61, 35, 137, 80, 243, 15, 28, 15, 10, 199, 28, 192, 67, 36, 243, 15, 28, 15, 10, 199, 20, 118, 80, 80, 243,
-			15, 28, 15, 10, 199, 64, 244, 169, 76, 149, 5, 80, 15, 12, 201, 45, 35, 208, 77, 98, 83, 37, 65, 82, 15, 12, 201, 44, 243, 80,
-			72, 243, 73, 81, 65, 82, 15, 12, 201, 44, 243, 80, 48, 83, 69, 57, 65, 82, 15, 12, 201, 36, 229, 5, 73, 5, 78, 45, 65, 82,
-			15, 8, 197, 56, 85, 82, 4, 192, 15, 0, 11, 67, 76, 52, 201, 89, 49, 108, 89, 37, 0, 18, 67, 64, 112, 64, 48, 125, 15, 81,
-			51, 6, 125, 19, 50, 15, 117, 0, 25, 18, 71, 72, 82, 137, 12, 84, 133, 72, 34, 116, 57, 111, 89, 6, 114, 109, 0, 10, 199, 88,
-			149, 1, 48, 148, 197, 72, 15, 10, 199, 88, 148, 137, 48, 148, 197, 72, 15, 10, 199, 88, 19, 15, 72, 148, 197, 72, 15, 10, 199, 80,
-			83, 5, 88, 148, 197, 72, 15, 10, 199, 76, 82, 212, 36, 243, 133, 72, 15, 10, 199, 72, 80, 83, 77, 84, 133, 72, 15, 10, 199, 72,
-			20, 16, 20, 195, 5, 72, 15, 9, 198, 65, 39, 204, 84, 65, 82, 15, 10, 199, 64, 243, 9, 80, 148, 197, 72, 15, 10, 199, 64, 243,
-			1, 72, 148, 197, 72, 15, 10, 199, 64, 84, 147, 36, 99, 5, 72, 15, 10, 199, 52, 243, 137, 80, 244, 133, 72, 15, 10, 199, 52, 241,
-			9, 24, 144, 197, 72, 15, 10, 199, 52, 82, 193, 56, 148, 197, 72, 15, 10, 199, 52, 20, 211, 4, 180, 133, 72, 15, 10, 199, 48, 242,
-			193, 48, 148, 197, 72, 15, 10, 199, 48, 81, 193, 48, 148, 197, 72, 15, 10, 199, 48, 21, 9, 56, 148, 197, 72, 15, 10, 199, 44, 241,
-			9, 24, 144, 197, 72, 15, 10, 199, 37, 51, 1, 52, 148, 197, 72, 15, 10, 199, 36, 65, 65, 48, 148, 197, 72, 15, 10, 199, 24, 197,
-			73, 16, 148, 197, 72, 15, 10, 199, 21, 81, 143, 72, 148, 197, 72, 15, 10, 199, 60, 209, 5, 24, 147, 133, 72, 15, 10, 199, 5, 85,
-			15, 72, 148, 197, 72, 15, 10, 199, 4, 211, 210, 80, 148, 197, 72, 15, 12, 201, 20, 180, 208, 20, 66, 84, 72, 144, 197, 15, 8, 67,
-			8, 32, 192, 21, 0, 47, 0, 12, 201, 88, 20, 137, 4, 34, 76, 37, 65, 84, 15, 12, 201, 84, 213, 83, 36, 176, 76, 37, 65, 84,
-			15, 12, 201, 80, 82, 206, 36, 176, 76, 37, 65, 84, 15, 12, 201, 77, 1, 67, 36, 98, 67, 37, 65, 84, 15, 12, 201, 76, 147, 85,
-			49, 64, 78, 37, 65, 84, 15, 12, 201, 76, 83, 147, 37, 66, 86, 37, 65, 84, 15, 12, 201, 76, 83, 147, 36, 34, 76, 37, 65, 84,
-			15, 12, 201, 76, 83, 5, 45, 66, 86, 37, 65, 84, 15, 12, 201, 72, 83, 148, 4, 34, 76, 37, 65, 84, 15, 12, 201, 72, 80, 201,
-			65, 35, 195, 37, 65, 84, 15, 12, 201, 72, 80, 197, 65, 66, 86, 37, 65, 84, 15, 12, 201, 72, 21, 9, 60, 224, 76, 37, 65, 84,
-			15, 12, 201, 65, 34, 77, 37, 66, 86, 37, 65, 84, 15, 12, 201, 64, 84, 144, 48, 82, 211, 37, 65, 84, 15, 12, 201, 64, 84, 137,
-			60, 66, 67, 37, 65, 84, 15, 12, 201, 64, 20, 129, 48, 193, 76, 37, 65, 84, 15, 12, 201, 61, 34, 71, 36, 224, 76, 37, 65, 84,
-			15, 12, 201, 61, 4, 15, 73, 69, 78, 37, 65, 84, 15, 12, 201, 60, 97, 137, 12, 144, 76, 37, 65, 84, 15, 12, 201, 60, 97, 133,
-			57, 50, 86, 37, 65, 84, 15, 12, 201, 60, 34, 133, 45, 66, 86, 37, 65, 84, 15, 12, 201, 56, 21, 9, 60, 224, 76, 37, 65, 84,
-			15, 12, 201, 52, 21, 5, 72, 144, 76, 37, 65, 84, 15, 12, 201, 52, 20, 203, 84, 194, 78, 37, 65, 84, 15, 12, 201, 45, 34, 77,
-			36, 224, 76, 37, 65, 84, 15, 12, 201, 44, 243, 80, 48, 82, 211, 37, 65, 84, 15, 12, 201, 44, 20, 9, 48, 192, 82, 37, 65, 84,
-			15, 12, 201, 36, 229, 5, 57, 50, 86, 37, 65, 84, 15, 12, 201, 36, 225, 133, 72, 147, 210, 37, 65, 84, 15, 12, 201, 36, 225, 129,
-			57, 66, 76, 37, 65, 84, 15, 12, 201, 36, 212, 21, 49, 50, 86, 37, 65, 84, 15, 12, 201, 36, 211, 79, 73, 64, 76, 37, 65, 84,
-			15, 12, 201, 36, 195, 9, 45, 98, 68, 37, 65, 84, 15, 12, 201, 32, 148, 212, 61, 34, 67, 37, 65, 84, 15, 12, 201, 29, 32, 78,
-			16, 147, 211, 37, 65, 84, 15, 12, 201, 24, 19, 73, 48, 144, 82, 37, 65, 84, 15, 12, 201, 21, 97, 78, 81, 80, 76, 37, 65, 84,
-			15, 12, 201, 20, 193, 75, 81, 34, 67, 37, 65, 84, 15, 12, 201, 20, 97, 133, 45, 66, 86, 37, 65, 84, 15, 12, 201, 12, 148, 139,
-			84, 192, 82, 37, 65, 84, 15, 12, 201, 5, 85, 5, 57, 66, 67, 37, 65, 84, 15, 12, 201, 5, 52, 197, 73, 66, 86, 37, 65, 84,
-			15, 9, 198, 52, 17, 206, 21, 50, 84, 15, 9, 198, 4, 48, 197, 77, 50, 84, 15, 9, 198, 16, 148, 203, 4, 229, 0, 15, 9, 198,
-			8, 18, 203, 4, 229, 0, 15, 0, 13, 202, 88, 82, 147, 80, 16, 137, 48, 149, 5, 80, 15, 13, 202, 84, 226, 86, 21, 36, 193, 48,
-			149, 5, 80, 15, 13, 202, 77, 81, 199, 21, 53, 9, 88, 149, 5, 80, 15, 13, 202, 77, 80, 147, 36, 66, 65, 72, 149, 5, 80, 15,
-			13, 202, 77, 80, 138, 20, 181, 9, 88, 149, 5, 80, 15, 13, 202, 77, 2, 82, 37, 69, 65, 48, 149, 5, 80, 15, 13, 202, 72, 81,
-			140, 20, 180, 201, 88, 149, 5, 80, 15, 13, 202, 65, 49, 85, 16, 243, 153, 52, 149, 5, 80, 15, 13, 202, 65, 35, 196, 84, 181, 9,
-			88, 149, 5, 80, 15, 13, 202, 64, 245, 5, 57, 66, 65, 48, 149, 5, 80, 15, 13, 202, 64, 192, 85, 76, 144, 137, 48, 149, 5, 80,
-			15, 13, 202, 64, 84, 141, 37, 52, 201, 88, 149, 5, 80, 15, 13, 202, 44, 243, 135, 20, 226, 65, 48, 149, 5, 80, 15, 13, 202, 44,
-			243, 132, 84, 181, 9, 88, 149, 5, 80, 15, 13, 202, 44, 243, 12, 20, 181, 9, 88, 149, 5, 80, 15, 13, 202, 44, 243, 12, 20, 114,
-			65, 48, 149, 5, 80, 15, 13, 202, 37, 36, 137, 80, 16, 137, 48, 149, 5, 80, 15, 13, 202, 37, 36, 133, 29, 83, 1, 72, 149, 5,
-			80, 15, 13, 202, 36, 195, 5, 28, 149, 9, 52, 149, 5, 80, 15, 13, 202, 32, 85, 5, 72, 241, 197, 56, 149, 5, 80, 15, 13, 202,
-			24, 193, 75, 76, 144, 137, 48, 149, 5, 80, 15, 13, 202, 21, 128, 197, 57, 68, 137, 12, 149, 5, 80, 15, 13, 202, 20, 211, 212, 36,
-			243, 129, 48, 149, 5, 80, 15, 13, 202, 20, 180, 203, 49, 84, 201, 88, 149, 5, 80, 15, 13, 202, 16, 84, 18, 21, 52, 201, 88, 149,
-			5, 80, 15, 13, 202, 5, 69, 18, 4, 181, 9, 88, 149, 5, 80, 15, 13, 202, 4, 113, 210, 21, 52, 201, 88, 149, 5, 80, 15, 11,
-			200, 45, 96, 68, 72, 241, 143, 56, 144, 15, 11, 200, 8, 144, 140, 36, 243, 65, 56, 144, 15, 0, 9, 198, 52, 21, 5, 72, 145, 64,
-			15, 9, 198, 52, 18, 15, 56, 145, 64, 15, 9, 198, 24, 19, 73, 48, 145, 64, 15, 9, 198, 20, 225, 9, 88, 145, 64, 15, 9, 198,
-			8, 81, 207, 56, 145, 64, 15, 9, 198, 88, 149, 129, 72, 145, 64, 15, 9, 198, 80, 149, 1, 56, 145, 64, 15, 9, 198, 72, 83, 69,
-			16, 145, 64, 15, 9, 198, 65, 35, 208, 72, 145, 64, 15, 9, 198, 36, 225, 197, 56, 145, 64, 15, 9, 198, 4, 181, 129, 72, 145, 64,
-			15, 9, 198, 81, 37, 73, 76, 209, 64, 15, 9, 198, 76, 17, 9, 76, 209, 64, 15, 9, 198, 45, 147, 137, 76, 209, 64, 15, 9, 198,
-			32, 243, 9, 76, 209, 64, 15, 9, 198, 5, 85, 9, 76, 209, 64, 15, 9, 198, 5, 65, 73, 76, 209, 64, 15, 9, 198, 88, 18, 193,
-			56, 49, 64, 15, 9, 198, 76, 84, 150, 36, 49, 64, 15, 9, 198, 72, 243, 65, 56, 49, 64, 15, 9, 198, 64, 21, 18, 36, 49, 64,
-			15, 9, 198, 44, 20, 18, 36, 49, 64, 15, 9, 198, 44, 17, 5, 56, 49, 64, 15, 9, 198, 24, 18, 129, 56, 49, 64, 15, 9, 198,
-			4, 227, 143, 56, 49, 64, 15, 9, 198, 45, 84, 148, 4, 113, 64, 15, 17, 70, 8, 243, 132, 4, 113, 64, 71, 6, 108, 50, 72, 37,
-			75, 0, 15, 9, 198, 8, 192, 77, 4, 113, 64, 15, 9, 198, 8, 19, 132, 4, 113, 64, 15, 11, 70, 8, 243, 132, 4, 113, 64, 21,
-			0, 47, 0, 9, 198, 88, 148, 143, 48, 241, 201, 15, 9, 198, 73, 83, 143, 48, 241, 201, 15, 9, 198, 53, 146, 207, 48, 241, 201, 15,
-			9, 198, 36, 65, 79, 48, 241, 201, 15, 9, 198, 16, 83, 65, 28, 241, 201, 15, 10, 199, 29, 32, 77, 52, 241, 143, 56, 15, 10, 199,
-			4, 48, 197, 77, 50, 79, 56, 15, 10, 199, 16, 148, 195, 37, 3, 9, 56, 15, 10, 199, 24, 195, 210, 20, 229, 9, 56, 15, 8, 67,
-			12, 144, 64, 21, 0, 47, 0, 24, 73, 76, 176, 84, 20, 35, 193, 72, 65, 84, 89, 49, 6, 115, 37, 47, 71, 125, 12, 72, 14, 86,
-			0, 9, 198, 44, 21, 1, 48, 241, 192, 15, 9, 198, 32, 243, 79, 48, 241, 192, 15, 9, 198, 16, 21, 1, 48, 241, 192, 15, 9, 198,
-			29, 81, 5, 48, 145, 192, 15, 9, 198, 84, 69, 69, 48, 145, 192, 15, 9, 198, 20, 193, 77, 20, 229, 0, 15, 12, 201, 36, 229, 5,
-			72, 97, 82, 20, 228, 192, 15, 9, 198, 64, 20, 139, 4, 229, 0, 15, 13, 202, 76, 50, 1, 48, 37, 82, 29, 64, 71, 20, 15, 0,
-			0, 25, 70, 88, 148, 139, 20, 65, 64, 84, 6, 37, 34, 49, 36, 86, 13, 15, 89, 108, 0, 81, 115, 195, 165, 32, 9, 198, 24, 20,
-			203, 36, 225, 64, 15, 9, 198, 8, 82, 203, 5, 50, 78, 67, 9, 198, 28, 20, 142, 37, 51, 206, 15, 9, 198, 76, 19, 139, 80, 147,
-			206, 15, 9, 198, 24, 193, 75, 76, 147, 206, 15, 9, 198, 80, 19, 66, 85, 34, 78, 15, 9, 198, 52, 242, 203, 5, 50, 78, 15, 9,
-			198, 8, 82, 203, 5, 50, 78, 15, 9, 198, 88, 83, 137, 56, 65, 64, 15, 18, 70, 28, 83, 9, 56, 65, 64, 81, 36, 55, 6, 36,
-			50, 72, 13, 0, 15, 9, 198, 16, 84, 137, 56, 65, 64, 15, 10, 199, 29, 147, 78, 5, 53, 9, 44, 15, 10, 199, 16, 21, 1, 52,
-			21, 9, 44, 15, 12, 201, 12, 83, 148, 72, 19, 1, 76, 145, 78, 15, 9, 198, 64, 193, 74, 4, 65, 64, 15, 9, 198, 21, 53, 18,
-			4, 65, 64, 15, 9, 198, 9, 32, 86, 4, 65, 64, 15, 11, 70, 60, 97, 140, 36, 225, 64, 21, 0, 47, 0, 9, 198, 76, 147, 143,
-			48, 241, 201, 15, 9, 198, 60, 229, 15, 48, 241, 201, 15, 9, 198, 24, 243, 143, 48, 241, 201, 15, 11, 200, 45, 144, 133, 72, 225, 84,
-			36, 176, 15, 12, 201, 44, 241, 70, 24, 144, 201, 20, 229, 0, 15, 12, 201, 29, 85, 133, 72, 225, 77, 20, 229, 0, 15, 0, 11, 200,
-			77, 84, 208, 20, 228, 201, 60, 224, 15, 11, 200, 20, 180, 212, 20, 228, 201, 60, 224, 15, 11, 200, 4, 36, 207, 73, 5, 9, 60, 224,
-			15, 0, 12, 201, 44, 243, 66, 36, 224, 84, 61, 34, 75, 15, 10, 199, 81, 84, 130, 84, 193, 78, 80, 15, 10, 199, 81, 34, 86, 4,
-			193, 78, 80, 15, 10, 199, 72, 80, 197, 57, 49, 78, 80, 15, 10, 199, 65, 35, 205, 36, 225, 78, 80, 15, 10, 199, 44, 243, 135, 73,
-			81, 78, 80, 15, 10, 199, 20, 225, 15, 77, 49, 78, 80, 15, 10, 199, 5, 48, 197, 56, 65, 78, 80, 15, 10, 199, 77, 81, 134, 37,
-			48, 78, 80, 15, 10, 199, 76, 82, 213, 56, 64, 78, 80, 15, 10, 199, 72, 81, 21, 56, 64, 78, 80, 15, 10, 199, 36, 229, 18, 36,
-			112, 78, 80, 15, 0, 10, 199, 61, 4, 201, 28, 83, 9, 28, 15, 10, 199, 61, 3, 1, 16, 83, 9, 28, 15, 10, 199, 33, 83, 4,
-			76, 19, 9, 28, 15, 10, 199, 4, 229, 1, 28, 83, 9, 28, 15, 10, 199, 4, 228, 203, 84, 83, 9, 28, 15, 0, 11, 200, 81, 98,
-			86, 48, 17, 212, 36, 112, 15, 11, 200, 81, 83, 135, 76, 147, 132, 36, 112, 15, 11, 200, 80, 147, 12, 4, 65, 76, 36, 112, 15, 11,
-			200, 80, 18, 211, 45, 147, 4, 36, 112, 15, 11, 200, 77, 3, 9, 16, 17, 212, 36, 112, 15, 11, 200, 76, 176, 76, 44, 17, 212, 36,
-			112, 15, 11, 200, 72, 81, 197, 16, 84, 140, 36, 112, 15, 11, 200, 52, 148, 213, 56, 65, 76, 36, 112, 15, 11, 200, 52, 19, 135, 24,
-			243, 4, 36, 112, 15, 11, 200, 52, 19, 132, 32, 17, 148, 36, 112, 15, 11, 200, 44, 243, 4, 8, 195, 196, 36, 112, 15, 11, 200, 32,
-			84, 148, 84, 113, 76, 36, 112, 15, 11, 200, 29, 81, 6, 73, 145, 212, 36, 112, 15, 10, 199, 28, 83, 34, 4, 117, 9, 28, 15, 11,
-			200, 24, 244, 149, 17, 49, 76, 36, 112, 15, 11, 200, 24, 244, 147, 80, 19, 132, 36, 112, 15, 11, 200, 4, 229, 133, 56, 65, 76, 36,
-			112, 15, 11, 200, 4, 193, 129, 16, 84, 140, 36, 112, 15, 11, 200, 81, 98, 86, 48, 17, 212, 36, 112, 15, 11, 200, 77, 3, 9, 16,
-			17, 212, 36, 112, 15, 11, 200, 76, 176, 76, 44, 17, 212, 36, 112, 15, 0, 11, 200, 88, 145, 20, 50, 145, 148, 36, 112, 15, 11, 200,
-			77, 67, 210, 53, 241, 212, 36, 112, 15, 9, 198, 33, 145, 18, 61, 130, 68, 15, 9, 198, 32, 84, 130, 36, 50, 68, 15, 0, 11, 200,
-			52, 147, 137, 77, 65, 82, 36, 80, 15, 0, 9, 198, 72, 17, 9, 5, 67, 210, 15, 12, 201, 88, 83, 31, 73, 103, 210, 16, 145, 192,
-			15, 10, 199, 77, 67, 210, 4, 117, 9, 28, 15, 10, 199, 8, 20, 142, 4, 117, 9, 28, 15, 10, 199, 4, 225, 201, 88, 83, 9, 28,
-			15, 15, 204, 44, 19, 77, 21, 34, 5, 73, 33, 73, 56, 65, 64, 15, 10, 199, 77, 67, 210, 4, 117, 9, 28, 15, 10, 199, 8, 20,
-			142, 4, 117, 9, 28, 15, 9, 198, 77, 1, 67, 36, 19, 0, 15, 0, 10, 199, 78, 148, 135, 52, 241, 9, 28, 15, 0, 7, 196, 88,
-			19, 41, 72, 15, 8, 197, 81, 32, 67, 21, 32, 15, 8, 197, 85, 33, 71, 21, 32, 15, 8, 197, 44, 19, 11, 21, 32, 15, 8, 197,
-			21, 34, 71, 21, 32, 15, 8, 197, 8, 195, 203, 21, 32, 15, 11, 200, 81, 98, 86, 49, 39, 132, 36, 112, 15, 11, 200, 77, 66, 76,
-			25, 244, 132, 36, 112, 15, 11, 200, 17, 34, 75, 25, 243, 4, 36, 112, 15, 10, 199, 57, 147, 70, 60, 208, 78, 36, 15, 18, 70, 84,
-			225, 21, 48, 21, 0, 108, 50, 72, 40, 55, 6, 117, 47, 0, 15, 8, 197, 88, 19, 21, 5, 32, 15, 10, 69, 80, 80, 83, 21, 32,
-			21, 0, 47, 0, 9, 198, 92, 19, 9, 76, 148, 203, 15, 9, 198, 80, 83, 65, 80, 148, 203, 15, 9, 198, 76, 130, 73, 80, 148, 203,
-			15, 9, 198, 65, 35, 211, 4, 148, 203, 15, 9, 198, 49, 83, 129, 80, 148, 203, 15, 9, 198, 48, 144, 133, 72, 148, 203, 15, 9, 198,
-			9, 83, 9, 52, 148, 203, 15, 9, 198, 5, 67, 5, 80, 148, 203, 15, 9, 198, 4, 116, 129, 72, 148, 203, 15, 11, 200, 76, 178, 90,
-			60, 100, 133, 56, 144, 15, 0, 8, 197, 80, 21, 140, 21, 64, 15, 8, 197, 80, 16, 140, 21, 64, 15, 8, 197, 76, 242, 204, 21, 64,
-			15, 8, 197, 17, 80, 140, 21, 64, 15, 8, 197, 45, 80, 137, 77, 64, 15, 9, 198, 72, 85, 137, 76, 147, 206, 15, 9, 198, 16, 80,
-			201, 76, 147, 206, 15, 8, 197, 76, 241, 134, 37, 64, 15, 8, 197, 24, 84, 146, 37, 64, 15, 9, 198, 81, 84, 141, 4, 194, 78, 15,
-			12, 201, 28, 145, 193, 57, 67, 205, 4, 226, 64, 15, 10, 199, 44, 20, 213, 37, 53, 9, 44, 15, 8, 197, 64, 245, 5, 57, 64, 15,
-			8, 197, 80, 17, 198, 5, 64, 15, 8, 197, 44, 241, 206, 5, 64, 15, 9, 198, 28, 83, 137, 80, 19, 0, 15, 9, 198, 24, 197, 86,
-			36, 19, 0, 15, 9, 198, 5, 51, 195, 36, 19, 0, 15, 8, 197, 53, 85, 1, 57, 64, 15, 0, 13, 202, 16, 81, 137, 9, 34, 76,
-			48, 21, 15, 72, 15, 9, 198, 53, 149, 15, 48, 241, 201, 15, 9, 198, 24, 147, 15, 48, 241, 201, 15, 11, 200, 84, 67, 5, 88, 84,
-			137, 56, 112, 15, 11, 200, 81, 32, 83, 76, 84, 137, 56, 112, 15, 11, 200, 80, 20, 137, 24, 84, 137, 56, 112, 15, 11, 200, 77, 84,
-			16, 48, 84, 137, 56, 112, 15, 11, 200, 64, 242, 213, 48, 84, 137, 56, 112, 15, 11, 200, 64, 193, 84, 80, 84, 137, 56, 112, 15, 11,
-			200, 64, 19, 143, 72, 84, 137, 56, 112, 15, 11, 200, 64, 17, 201, 56, 84, 137, 56, 112, 15, 11, 200, 60, 33, 21, 12, 84, 137, 56,
-			112, 15, 11, 200, 56, 21, 137, 28, 84, 137, 56, 112, 15, 11, 200, 53, 83, 11, 80, 84, 137, 56, 112, 15, 11, 200, 48, 144, 201, 80,
-			84, 137, 56, 112, 15, 11, 200, 45, 82, 143, 56, 84, 137, 56, 112, 15, 11, 200, 44, 20, 21, 56, 84, 137, 56, 112, 15, 11, 200, 36,
-			229, 15, 56, 84, 137, 56, 112, 15, 11, 200, 36, 225, 9, 44, 84, 137, 56, 112, 15, 11, 200, 36, 225, 9, 12, 84, 137, 56, 112, 15,
-			11, 200, 29, 34, 76, 48, 84, 137, 56, 112, 15, 11, 200, 29, 32, 68, 84, 84, 137, 56, 112, 15, 11, 200, 28, 195, 211, 76, 84, 137,
-			56, 112, 15, 11, 200, 25, 35, 212, 80, 84, 137, 56, 112, 15, 11, 200, 24, 192, 77, 8, 84, 137, 56, 112, 15, 11, 200, 21, 96, 76,
-			84, 84, 137, 56, 112, 15, 11, 200, 17, 33, 83, 76, 84, 137, 56, 112, 15, 11, 200, 16, 148, 137, 28, 84, 137, 56, 112, 15, 11, 200,
-			16, 85, 15, 56, 84, 137, 56, 112, 15, 11, 200, 16, 84, 15, 56, 84, 137, 56, 112, 15, 11, 200, 16, 83, 79, 48, 84, 137, 56, 112,
-			15, 11, 200, 16, 82, 207, 72, 84, 137, 56, 112, 15, 11, 200, 16, 81, 137, 56, 84, 137, 56, 112, 15, 11, 200, 12, 148, 197, 48, 84,
-			137, 56, 112, 15, 11, 200, 5, 34, 201, 88, 84, 137, 56, 112, 15, 11, 200, 4, 195, 15, 44, 84, 137, 56, 112, 15, 11, 200, 4, 33,
-			9, 12, 84, 137, 56, 112, 15, 16, 205, 52, 148, 213, 56, 65, 76, 76, 84, 214, 125, 33, 9, 28, 15, 0, 8, 197, 72, 17, 9, 21,
-			32, 15, 8, 197, 52, 81, 9, 21, 32, 15, 8, 197, 24, 243, 9, 21, 32, 15, 9, 198, 77, 64, 78, 56, 147, 204, 15, 12, 201, 124,
-			181, 137, 48, 144, 146, 37, 51, 69, 15, 9, 198, 36, 228, 197, 72, 21, 0, 15, 8, 197, 65, 83, 19, 5, 32, 15, 8, 197, 64, 84,
-			211, 5, 32, 15, 8, 197, 28, 195, 211, 5, 32, 15, 4, 193, 228, 43, 0, 11, 200, 8, 20, 139, 20, 229, 9, 56, 80, 15, 12, 201,
-			81, 32, 78, 76, 192, 84, 36, 243, 128, 15, 12, 201, 77, 1, 75, 84, 192, 84, 36, 243, 128, 15, 12, 201, 72, 84, 197, 73, 96, 84,
-			36, 243, 128, 15, 12, 201, 65, 35, 199, 72, 84, 211, 36, 243, 128, 15, 12, 201, 64, 84, 134, 61, 32, 84, 36, 243, 128, 15, 12, 201,
-			60, 36, 197, 73, 96, 84, 36, 243, 128, 15, 12, 201, 48, 19, 69, 57, 64, 84, 36, 243, 128, 15, 12, 201, 45, 83, 13, 36, 224, 84,
-			36, 243, 128, 15, 12, 201, 44, 243, 147, 84, 212, 20, 36, 243, 128, 15, 12, 201, 44, 243, 142, 61, 64, 84, 36, 243, 128, 15, 12, 201,
-			44, 243, 80, 5, 32, 84, 36, 243, 128, 15, 12, 201, 44, 243, 77, 85, 64, 84, 36, 243, 128, 15, 12, 201, 44, 243, 66, 36, 224, 84,
-			36, 243, 128, 15, 12, 201, 44, 19, 11, 84, 192, 84, 36, 243, 128, 15, 12, 201, 36, 229, 5, 29, 32, 84, 36, 243, 128, 15, 12, 201,
-			36, 228, 208, 37, 32, 84, 36, 243, 128, 15, 12, 201, 36, 225, 9, 28, 224, 84, 36, 243, 128, 15, 12, 201, 29, 32, 84, 84, 192, 84,
-			36, 243, 128, 15, 12, 201, 20, 180, 193, 49, 64, 84, 36, 243, 128, 15, 12, 201, 16, 84, 212, 36, 224, 84, 36, 243, 128, 15, 12, 201,
-			16, 84, 203, 72, 148, 20, 36, 243, 128, 15, 12, 201, 16, 84, 197, 73, 64, 84, 36, 243, 128, 15, 12, 201, 16, 84, 15, 73, 64, 84,
-			36, 243, 128, 15, 12, 201, 16, 82, 204, 36, 224, 84, 36, 243, 128, 15, 12, 201, 8, 19, 12, 61, 64, 84, 36, 243, 128, 15, 12, 201,
-			5, 69, 5, 77, 64, 84, 36, 243, 128, 15, 12, 201, 5, 4, 18, 60, 32, 84, 36, 243, 128, 15, 12, 201, 4, 36, 197, 57, 64, 84,
-			36, 243, 128, 15, 15, 204, 76, 19, 77, 20, 229, 18, 124, 178, 197, 48, 145, 192, 15, 15, 204, 28, 83, 142, 20, 213, 18, 124, 225, 197,
-			48, 145, 192, 15, 9, 198, 88, 242, 193, 48, 148, 203, 15, 9, 198, 56, 243, 65, 16, 148, 203, 15, 9, 198, 17, 147, 129, 52, 148, 203,
-			15, 9, 198, 4, 194, 193, 48, 148, 203, 15, 0, 30, 69, 76, 80, 210, 21, 64, 89, 37, 81, 34, 36, 72, 15, 89, 6, 132, 84, 37,
-			89, 0, 81, 115, 101, 114, 118, 105, 99, 101, 32, 9, 198, 76, 16, 143, 82, 148, 128, 15, 9, 198, 52, 20, 143, 18, 148, 128, 15, 9,
-			198, 40, 243, 135, 50, 148, 128, 15, 9, 198, 12, 128, 82, 54, 148, 128, 15, 8, 197, 72, 82, 210, 85, 64, 15, 8, 197, 81, 84, 137,
-			77, 64, 15, 8, 197, 80, 19, 201, 77, 64, 15, 8, 197, 76, 241, 137, 77, 64, 15, 8, 197, 72, 16, 201, 77, 64, 15, 8, 197, 65,
-			84, 137, 77, 64, 15, 8, 197, 56, 22, 137, 77, 64, 15, 8, 197, 52, 243, 137, 77, 64, 15, 8, 197, 44, 244, 137, 77, 64, 15, 9,
-			198, 72, 81, 149, 76, 147, 206, 15, 9, 198, 16, 85, 143, 80, 147, 206, 15, 8, 197, 104, 83, 204, 37, 64, 15, 8, 197, 64, 21, 5,
-			57, 64, 15, 8, 197, 48, 21, 5, 57, 64, 15, 8, 197, 8, 147, 208, 5, 64, 15, 8, 197, 64, 81, 1, 57, 64, 15, 8, 197, 60,
-			181, 1, 57, 64, 15, 8, 197, 4, 181, 1, 57, 64, 15, 0, 7, 195, 92, 131, 192, 13, 42, 9, 198, 81, 148, 15, 48, 241, 201, 15,
-			9, 198, 77, 68, 129, 80, 81, 201, 15, 9, 198, 76, 84, 143, 48, 241, 201, 15, 9, 198, 4, 229, 15, 48, 241, 201, 15, 10, 199, 36,
-			229, 133, 73, 50, 79, 56, 15, 10, 199, 4, 181, 129, 52, 20, 137, 56, 15, 15, 204, 36, 229, 5, 73, 97, 78, 80, 147, 206, 37, 51,
-			69, 15, 11, 200, 20, 193, 75, 81, 35, 206, 36, 176, 15, 0, 15, 70, 64, 20, 148, 61, 85, 0, 48, 121, 47, 6, 40, 0, 15, 9,
-			198, 24, 21, 86, 37, 53, 0, 15, 11, 200, 76, 84, 1, 72, 21, 9, 60, 224, 15, 11, 200, 60, 35, 9, 28, 21, 9, 60, 224, 15,
-			11, 200, 44, 243, 150, 84, 196, 201, 60, 224, 15, 11, 200, 44, 243, 147, 84, 213, 9, 60, 224, 15, 11, 200, 44, 243, 142, 20, 180, 201,
-			60, 224, 15, 11, 200, 44, 243, 12, 20, 181, 9, 60, 224, 15, 11, 200, 24, 145, 213, 72, 21, 9, 60, 224, 15, 0, 12, 201, 81, 33,
-			80, 4, 224, 84, 36, 243, 128, 15, 12, 201, 65, 35, 198, 4, 224, 84, 36, 243, 128, 15, 12, 201, 44, 243, 208, 21, 32, 84, 36, 243,
-			128, 15, 12, 201, 36, 228, 203, 72, 148, 20, 36, 243, 128, 15, 12, 201, 36, 226, 193, 72, 224, 84, 36, 243, 128, 15, 12, 201, 25, 37,
-			83, 81, 32, 84, 36, 243, 128, 15, 12, 201, 21, 96, 80, 61, 32, 84, 36, 243, 128, 15, 12, 201, 16, 84, 18, 5, 96, 84, 36, 243,
-			128, 15, 12, 201, 5, 36, 133, 77, 64, 84, 36, 243, 128, 15, 12, 201, 4, 97, 133, 45, 64, 84, 36, 243, 128, 15, 12, 201, 4, 48,
-			197, 65, 64, 84, 36, 243, 128, 15, 18, 71, 12, 193, 86, 20, 192, 78, 16, 49, 55, 37, 12, 84, 55, 118, 50, 0, 0, 10, 199, 52,
-			147, 133, 72, 19, 15, 28, 15, 10, 199, 45, 33, 77, 48, 243, 15, 28, 15, 10, 199, 32, 21, 130, 36, 243, 15, 28, 15, 9, 198, 76,
-			84, 150, 36, 49, 82, 15, 9, 198, 16, 84, 193, 72, 209, 82, 15, 9, 198, 5, 4, 12, 36, 177, 82, 15, 9, 198, 4, 96, 84, 36,
-			177, 82, 15, 0, 11, 200, 4, 229, 18, 61, 3, 204, 60, 112, 15, 11, 200, 4, 195, 5, 72, 115, 204, 60, 112, 15, 0, 9, 198, 64,
-			144, 78, 37, 53, 0, 15, 0, 9, 198, 29, 32, 70, 60, 195, 199, 15, 0, 10, 199, 53, 84, 201, 44, 243, 15, 28, 15, 10, 199, 25,
-			85, 21, 72, 243, 15, 28, 15, 10, 199, 21, 50, 201, 52, 243, 15, 28, 15, 10, 199, 16, 83, 132, 72, 243, 15, 28, 15, 8, 66, 65,
-			224, 48, 126, 0, 72, 0, 8, 197, 80, 83, 204, 60, 112, 15, 8, 197, 8, 147, 204, 60, 112, 15, 6, 195, 64, 241, 77, 15, 9, 198,
-			72, 84, 212, 4, 224, 197, 15, 9, 198, 20, 210, 78, 20, 224, 197, 15, 9, 198, 20, 193, 71, 4, 224, 197, 15, 0, 27, 68, 32, 21,
-			84, 20, 2, 39, 12, 47, 49, 123, 6, 47, 129, 12, 34, 0, 81, 99, 111, 117, 116, 117, 114, 101, 32, 9, 198, 52, 20, 135, 21, 34,
-			84, 15, 9, 198, 24, 244, 198, 61, 34, 84, 15, 9, 198, 17, 84, 16, 20, 66, 84, 15, 7, 196, 16, 85, 20, 20, 76, 0, 21, 68,
-			53, 229, 20, 20, 65, 6, 109, 47, 14, 15, 107, 117, 0, 81, 104, 97, 118, 101, 32, 8, 197, 61, 51, 79, 76, 80, 15, 8, 197, 52,
-			147, 79, 76, 80, 15, 8, 197, 45, 80, 133, 72, 80, 15, 8, 197, 28, 17, 197, 72, 80, 15, 8, 197, 24, 147, 5, 72, 80, 15, 8,
-			197, 16, 244, 197, 72, 80, 15, 9, 198, 88, 83, 133, 72, 148, 203, 15, 9, 198, 76, 243, 65, 48, 148, 203, 15, 9, 198, 64, 83, 1,
-			28, 148, 203, 15, 9, 198, 57, 83, 69, 72, 148, 203, 15, 9, 198, 37, 51, 1, 52, 148, 203, 15, 9, 198, 36, 229, 73, 80, 148, 203,
-			15, 9, 198, 32, 19, 73, 80, 148, 203, 15, 9, 198, 21, 66, 79, 64, 148, 203, 15, 9, 198, 16, 82, 193, 16, 148, 203, 15, 9, 198,
-			5, 50, 197, 80, 148, 203, 15, 9, 198, 4, 181, 83, 80, 148, 203, 15, 8, 197, 44, 147, 133, 76, 80, 15, 8, 197, 28, 83, 133, 76,
-			80, 15, 8, 197, 72, 21, 129, 28, 80, 15, 10, 69, 72, 83, 65, 44, 80, 21, 0, 47, 0, 10, 199, 80, 244, 142, 37, 34, 83, 44,
-			15, 10, 199, 77, 147, 143, 65, 66, 83, 44, 15, 10, 199, 76, 243, 9, 77, 66, 83, 44, 15, 10, 199, 76, 83, 73, 61, 66, 83, 44,
-			15, 10, 199, 76, 82, 212, 21, 34, 83, 44, 15, 10, 199, 61, 53, 9, 56, 66, 83, 44, 15, 10, 199, 57, 81, 9, 77, 66, 83, 44,
-			15, 10, 199, 45, 84, 147, 61, 34, 83, 44, 15, 10, 199, 20, 179, 5, 45, 66, 83, 44, 15, 10, 199, 20, 97, 77, 21, 34, 83, 44,
-			15, 10, 199, 17, 148, 198, 5, 66, 83, 44, 15, 10, 199, 17, 32, 86, 36, 66, 83, 44, 15, 10, 199, 16, 145, 1, 45, 66, 83, 44,
-			15, 10, 199, 9, 84, 149, 56, 66, 83, 44, 15, 10, 199, 8, 20, 130, 5, 34, 83, 44, 15, 10, 199, 5, 67, 1, 57, 66, 83, 44,
-			15, 9, 198, 60, 49, 65, 56, 145, 78, 15, 9, 198, 44, 242, 31, 72, 83, 147, 15, 9, 198, 4, 66, 31, 72, 83, 147, 15, 0, 6,
-			195, 37, 55, 210, 15, 8, 197, 4, 224, 76, 60, 112, 15, 9, 198, 52, 84, 139, 60, 227, 205, 15, 12, 201, 36, 212, 5, 73, 66, 78,
-			20, 229, 0, 15, 0, 10, 199, 61, 37, 15, 16, 242, 211, 36, 15, 9, 198, 76, 243, 22, 20, 229, 0, 15, 9, 198, 20, 210, 78, 20,
-			229, 0, 15, 0, 8, 197, 52, 20, 137, 56, 80, 15, 12, 201, 81, 32, 78, 76, 18, 212, 36, 243, 128, 15, 12, 201, 72, 84, 212, 37,
-			69, 84, 36, 243, 128, 15, 8, 197, 72, 20, 197, 72, 80, 15, 8, 197, 64, 243, 5, 72, 80, 15, 8, 197, 52, 83, 5, 72, 80, 15,
-			8, 197, 33, 84, 197, 72, 80, 15, 8, 197, 8, 20, 197, 72, 80, 15, 8, 197, 64, 20, 133, 76, 80, 15, 11, 200, 64, 244, 212, 49,
-			81, 9, 84, 208, 15, 8, 197, 52, 83, 129, 28, 80, 15, 8, 197, 28, 20, 129, 28, 80, 15, 13, 69, 77, 112, 78, 20, 80, 89, 58,
-			109, 50, 111, 0, 15, 69, 5, 35, 5, 56, 80, 121, 55, 6, 37, 12, 50, 0, 41, 0, 10, 199, 88, 19, 149, 5, 66, 83, 44, 15,
-			10, 199, 80, 83, 12, 85, 34, 83, 44, 15, 10, 199, 77, 147, 148, 21, 66, 83, 44, 15, 10, 199, 77, 83, 142, 37, 66, 83, 44, 15,
-			10, 199, 76, 242, 210, 5, 66, 83, 44, 15, 10, 199, 76, 83, 65, 57, 66, 83, 44, 15, 10, 199, 72, 243, 65, 57, 66, 83, 44, 15,
-			10, 199, 72, 17, 129, 20, 194, 83, 44, 15, 10, 199, 65, 54, 75, 61, 66, 83, 44, 15, 10, 199, 65, 35, 211, 60, 66, 83, 44, 15,
-			10, 199, 64, 84, 137, 60, 66, 83, 44, 15, 10, 199, 61, 32, 84, 61, 34, 83, 44, 15, 10, 199, 52, 21, 82, 37, 66, 83, 44, 15,
-			10, 199, 52, 19, 201, 77, 66, 83, 44, 15, 10, 199, 49, 147, 70, 5, 66, 83, 44, 15, 10, 199, 48, 241, 201, 77, 66, 83, 44, 15,
-			10, 199, 45, 80, 137, 77, 66, 83, 44, 15, 10, 199, 44, 194, 77, 5, 66, 83, 44, 15, 10, 199, 21, 96, 83, 61, 34, 83, 44, 15,
-			10, 199, 21, 51, 212, 21, 34, 83, 44, 15, 10, 199, 20, 179, 9, 65, 66, 83, 44, 15, 10, 199, 17, 32, 75, 60, 226, 83, 44, 15,
-			10, 199, 16, 241, 205, 5, 66, 83, 44, 15, 10, 199, 16, 84, 208, 61, 66, 83, 44, 15, 10, 199, 5, 37, 9, 77, 66, 83, 44, 15,
-			10, 199, 5, 35, 205, 5, 66, 83, 44, 15, 10, 199, 5, 4, 137, 61, 34, 83, 44, 15, 10, 199, 4, 192, 77, 60, 66, 83, 44, 15,
-			10, 199, 4, 115, 143, 77, 66, 83, 44, 15, 0, 9, 198, 36, 225, 15, 48, 241, 201, 15, 10, 199, 16, 145, 134, 85, 50, 79, 56, 15,
-			11, 200, 80, 83, 5, 52, 21, 9, 76, 176, 15, 11, 200, 76, 241, 15, 52, 149, 9, 76, 176, 15, 11, 200, 64, 225, 85, 52, 21, 9,
-			76, 176, 15, 11, 200, 52, 243, 143, 48, 149, 9, 76, 176, 15, 11, 200, 52, 85, 15, 57, 147, 73, 76, 176, 15, 11, 200, 29, 147, 78,
-			5, 53, 9, 76, 176, 15, 11, 200, 29, 32, 77, 52, 21, 9, 76, 176, 15, 11, 200, 25, 148, 201, 85, 33, 201, 76, 176, 15, 11, 200,
-			24, 195, 210, 37, 53, 9, 76, 176, 15, 11, 200, 24, 147, 15, 76, 241, 137, 76, 176, 15, 11, 200, 20, 225, 82, 28, 85, 9, 76, 176,
-			15, 11, 200, 8, 147, 199, 72, 17, 137, 76, 176, 15, 11, 200, 8, 16, 153, 48, 243, 137, 76, 176, 15, 11, 200, 4, 99, 210, 37, 53,
-			9, 76, 176, 15, 14, 203, 58, 148, 146, 21, 53, 78, 16, 38, 78, 37, 64, 15, 8, 197, 81, 32, 71, 36, 176, 15, 8, 197, 8, 147,
-			206, 36, 176, 15, 7, 196, 5, 66, 5, 56, 15, 7, 196, 61, 51, 65, 56, 16, 7, 196, 16, 82, 193, 56, 16, 14, 70, 12, 245, 82,
-			80, 225, 89, 49, 125, 47, 50, 111, 0, 14, 70, 12, 20, 140, 37, 51, 5, 49, 121, 55, 136, 55, 0, 0, 12, 201, 80, 83, 5, 60,
-			195, 199, 37, 50, 192, 15, 12, 201, 80, 82, 206, 60, 195, 199, 37, 50, 192, 15, 12, 201, 56, 85, 82, 60, 195, 199, 37, 50, 192, 15,
-			12, 201, 52, 244, 134, 60, 195, 199, 37, 50, 192, 15, 12, 201, 52, 85, 18, 60, 195, 199, 37, 50, 192, 15, 10, 199, 88, 17, 5, 52,
-			80, 213, 52, 15, 9, 198, 28, 198, 80, 80, 146, 192, 15, 9, 198, 8, 245, 1, 56, 146, 192, 15, 0, 25, 73, 8, 80, 200, 4, 209,
-			76, 76, 245, 147, 71, 114, 91, 118, 65, 6, 114, 60, 89, 6, 109, 58, 89, 0, 12, 201, 81, 32, 78, 76, 101, 83, 36, 243, 128, 15,
-			12, 201, 77, 84, 16, 72, 84, 211, 36, 243, 128, 15, 12, 201, 72, 84, 1, 73, 66, 84, 36, 243, 128, 15, 12, 201, 45, 96, 68, 72,
-			147, 12, 36, 243, 128, 15, 12, 201, 44, 243, 80, 72, 84, 211, 36, 243, 128, 15, 12, 201, 36, 229, 5, 72, 18, 212, 36, 243, 128, 15,
-			12, 201, 20, 180, 208, 20, 66, 84, 36, 243, 128, 15, 9, 198, 48, 149, 147, 4, 194, 71, 15, 9, 198, 28, 83, 89, 80, 194, 71, 15,
-			9, 198, 20, 225, 143, 48, 66, 71, 15, 9, 67, 76, 128, 87, 91, 125, 12, 0, 0, 9, 198, 80, 84, 141, 36, 226, 64, 15, 9, 198,
-			72, 80, 76, 37, 48, 66, 15, 9, 198, 45, 34, 84, 37, 48, 66, 15, 9, 198, 44, 243, 150, 20, 224, 66, 15, 0, 9, 198, 52, 17,
-			206, 21, 50, 69, 15, 9, 198, 32, 20, 141, 60, 226, 69, 15, 9, 198, 8, 84, 153, 48, 194, 69, 15, 12, 201, 8, 85, 78, 17, 33,
-			82, 36, 225, 5, 15, 7, 196, 88, 81, 193, 56, 15, 7, 196, 61, 33, 193, 56, 16, 0, 9, 198, 88, 149, 1, 48, 148, 212, 15, 9,
-			198, 72, 246, 65, 48, 148, 212, 15, 9, 198, 64, 244, 21, 48, 148, 212, 15, 9, 198, 61, 5, 9, 52, 148, 212, 15, 9, 198, 56, 146,
-			9, 48, 148, 212, 15, 9, 198, 48, 246, 65, 48, 148, 212, 15, 9, 198, 37, 51, 1, 52, 148, 212, 15, 9, 198, 36, 65, 65, 48, 148,
-			212, 15, 9, 198, 32, 21, 129, 72, 148, 212, 15, 9, 198, 24, 21, 1, 48, 148, 212, 15, 9, 198, 8, 145, 193, 52, 148, 212, 15, 9,
-			198, 4, 224, 82, 44, 148, 212, 15, 9, 198, 4, 194, 217, 52, 148, 212, 15, 9, 198, 4, 181, 129, 72, 148, 212, 15, 10, 199, 16, 83,
-			79, 45, 32, 84, 36, 15, 0, 10, 199, 72, 81, 143, 72, 210, 83, 80, 15, 10, 199, 64, 243, 25, 80, 82, 83, 80, 15, 10, 199, 20,
-			180, 207, 72, 50, 83, 80, 15, 10, 199, 4, 69, 133, 57, 66, 83, 80, 15, 8, 197, 16, 144, 68, 20, 208, 15, 0, 9, 198, 72, 80,
-			197, 65, 67, 210, 15, 9, 198, 84, 99, 204, 60, 114, 64, 15, 9, 198, 61, 67, 204, 60, 114, 64, 15, 9, 198, 48, 85, 1, 72, 114,
-			64, 15, 9, 198, 21, 67, 204, 60, 114, 64, 15, 9, 198, 5, 3, 204, 60, 114, 64, 15, 11, 200, 77, 3, 206, 80, 19, 137, 77, 64,
-			15, 11, 200, 76, 83, 147, 84, 19, 9, 77, 64, 15, 11, 200, 52, 243, 143, 64, 243, 9, 77, 64, 15, 11, 200, 48, 81, 201, 80, 147,
-			73, 77, 64, 15, 11, 200, 44, 19, 131, 20, 195, 9, 77, 64, 15, 11, 200, 24, 81, 5, 72, 19, 9, 77, 64, 15, 11, 200, 20, 180,
-			212, 72, 83, 73, 77, 64, 15, 11, 200, 4, 224, 66, 5, 5, 9, 77, 64, 15, 9, 198, 21, 2, 68, 20, 210, 64, 15, 9, 198, 80,
-			82, 211, 80, 147, 0, 15, 8, 198, 4, 35, 210, 36, 114, 64, 0, 12, 201, 32, 243, 105, 61, 0, 84, 37, 50, 192, 15, 10, 199, 32,
-			243, 105, 61, 0, 84, 36, 15, 9, 198, 32, 243, 105, 61, 0, 84, 15, 0, 11, 200, 20, 194, 77, 36, 224, 84, 61, 32, 15, 8, 197,
-			12, 21, 83, 21, 32, 15, 9, 198, 21, 53, 9, 52, 21, 0, 15, 8, 197, 4, 181, 21, 5, 32, 15, 0, 11, 200, 56, 82, 210, 60,
-			208, 78, 80, 144, 15, 12, 201, 12, 83, 148, 72, 148, 5, 80, 19, 0, 15, 0, 24, 69, 88, 19, 132, 21, 64, 84, 117, 50, 13, 86,
-			15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 16, 69, 16, 148, 208, 85, 64, 72, 37, 89, 71, 6, 129, 47, 0, 15, 8, 197,
-			88, 147, 204, 21, 64, 15, 8, 197, 5, 37, 9, 77, 64, 15, 10, 199, 84, 226, 84, 5, 34, 83, 44, 15, 10, 199, 80, 83, 211, 60,
-			98, 83, 44, 15, 10, 199, 77, 147, 70, 60, 226, 83, 44, 15, 10, 199, 77, 83, 77, 5, 34, 83, 44, 15, 10, 199, 76, 177, 77, 5,
-			66, 83, 44, 15, 10, 199, 76, 86, 9, 77, 66, 83, 44, 15, 10, 199, 76, 17, 9, 77, 66, 83, 44, 15, 10, 199, 52, 20, 148, 101,
-			34, 83, 44, 15, 10, 199, 32, 243, 9, 77, 66, 83, 44, 15, 10, 199, 32, 149, 20, 37, 66, 83, 44, 15, 10, 199, 32, 148, 212, 61,
-			34, 83, 44, 15, 10, 199, 32, 83, 22, 21, 66, 83, 44, 15, 10, 199, 28, 19, 1, 45, 66, 83, 44, 15, 10, 199, 24, 20, 129, 60,
-			226, 83, 44, 15, 10, 199, 20, 226, 204, 37, 66, 83, 44, 15, 10, 199, 20, 224, 217, 44, 194, 83, 44, 15, 10, 199, 20, 195, 9, 65,
-			66, 83, 44, 15, 10, 199, 17, 32, 77, 5, 66, 83, 44, 15, 10, 199, 16, 243, 69, 77, 66, 83, 44, 15, 10, 199, 16, 149, 82, 21,
-			66, 83, 44, 15, 10, 199, 16, 144, 66, 21, 66, 83, 44, 15, 10, 199, 8, 84, 130, 21, 34, 83, 44, 15, 10, 199, 5, 85, 9, 77,
-			66, 83, 44, 15, 10, 199, 5, 65, 73, 77, 66, 83, 44, 15, 10, 199, 4, 224, 70, 61, 34, 83, 44, 15, 8, 197, 4, 229, 18, 37,
-			64, 15, 8, 197, 12, 83, 69, 57, 64, 15, 8, 197, 65, 35, 194, 5, 64, 15, 9, 198, 36, 195, 15, 100, 19, 0, 15, 0, 7, 196,
-			88, 147, 169, 76, 15, 7, 196, 88, 83, 169, 76, 15, 7, 196, 76, 243, 143, 72, 15, 13, 202, 4, 67, 73, 56, 148, 212, 72, 21, 15,
-			72, 15, 7, 196, 32, 245, 133, 72, 15, 7, 196, 8, 242, 129, 72, 15, 13, 202, 36, 226, 207, 52, 209, 78, 77, 84, 129, 8, 15, 0,
-			7, 196, 52, 19, 41, 72, 15, 7, 196, 45, 83, 41, 72, 15, 8, 197, 61, 32, 84, 61, 32, 15, 10, 199, 44, 83, 79, 80, 18, 211,
-			36, 15, 10, 199, 24, 245, 15, 80, 18, 211, 36, 15, 8, 197, 9, 82, 203, 5, 32, 15, 0, 9, 198, 49, 82, 211, 86, 148, 192, 15,
-			7, 196, 80, 82, 83, 80, 15, 7, 196, 16, 82, 83, 80, 15, 11, 200, 8, 83, 133, 24, 144, 201, 84, 208, 67, 11, 200, 84, 226, 70,
-			61, 35, 69, 72, 80, 15, 11, 200, 80, 83, 5, 24, 243, 133, 72, 80, 15, 11, 200, 64, 83, 147, 36, 243, 133, 72, 80, 15, 11, 200,
-			52, 81, 9, 12, 147, 133, 72, 80, 15, 11, 200, 52, 17, 193, 76, 147, 133, 72, 80, 15, 11, 200, 44, 192, 85, 77, 83, 5, 72, 80,
-			15, 11, 200, 8, 83, 133, 24, 144, 201, 84, 208, 15, 24, 4, 95, 57, 88, 111, 107, 117, 55, 83, 6, 115, 65, 89, 36, 50, 89, 47,
-			129, 84, 14, 50, 14, 0, 0, 8, 197, 20, 115, 201, 77, 64, 15, 13, 202, 25, 33, 75, 88, 83, 148, 21, 34, 78, 28, 15, 13, 202,
-			25, 32, 71, 52, 83, 148, 21, 34, 78, 28, 15, 13, 202, 4, 178, 210, 20, 66, 84, 21, 34, 78, 28, 15, 10, 199, 104, 20, 137, 77,
-			66, 83, 44, 15, 10, 199, 88, 84, 137, 77, 66, 83, 44, 15, 10, 199, 80, 83, 210, 21, 66, 83, 44, 15, 10, 199, 80, 19, 201, 77,
-			66, 83, 44, 15, 10, 199, 77, 147, 80, 5, 66, 83, 44, 15, 10, 199, 76, 245, 138, 21, 66, 83, 44, 15, 10, 199, 76, 241, 137, 77,
-			66, 83, 44, 15, 10, 199, 65, 35, 198, 21, 66, 83, 44, 15, 10, 199, 64, 20, 211, 37, 98, 83, 44, 15, 10, 199, 61, 51, 65, 56,
-			226, 83, 44, 15, 10, 199, 56, 85, 82, 61, 66, 83, 44, 15, 10, 199, 56, 83, 204, 37, 66, 83, 44, 15, 10, 199, 56, 82, 210, 61,
-			66, 83, 44, 15, 10, 199, 56, 20, 139, 61, 66, 83, 44, 15, 10, 199, 52, 243, 137, 77, 66, 83, 44, 15, 10, 199, 52, 19, 4, 37,
-			98, 83, 44, 15, 10, 199, 52, 17, 206, 21, 66, 83, 44, 15, 10, 199, 33, 148, 14, 61, 66, 83, 44, 15, 10, 199, 32, 84, 141, 21,
-			66, 83, 44, 15, 10, 199, 20, 193, 75, 81, 34, 83, 44, 15, 10, 199, 20, 115, 201, 77, 66, 83, 44, 15, 10, 199, 17, 147, 129, 77,
-			66, 83, 44, 15, 10, 199, 8, 19, 5, 5, 34, 83, 44, 15, 10, 199, 4, 224, 76, 101, 66, 83, 44, 15, 18, 70, 52, 20, 143, 12,
-			18, 78, 65, 121, 34, 39, 6, 49, 115, 68, 0, 15, 7, 196, 28, 245, 9, 44, 15, 10, 199, 4, 180, 143, 8, 21, 9, 44, 15, 8,
-			197, 61, 34, 69, 57, 64, 15, 8, 197, 52, 19, 132, 5, 64, 15, 0, 11, 200, 21, 2, 71, 72, 17, 137, 76, 176, 15, 11, 200, 16,
-			21, 1, 52, 21, 9, 76, 176, 15, 10, 199, 80, 20, 148, 72, 22, 137, 56, 15, 8, 197, 44, 194, 78, 36, 176, 15, 12, 201, 80, 82,
-			211, 81, 84, 133, 72, 85, 0, 15, 0, 10, 199, 65, 35, 195, 20, 69, 82, 20, 15, 9, 198, 48, 149, 146, 37, 53, 0, 15, 15, 204,
-			72, 21, 9, 60, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 65, 35, 204, 21, 64, 82, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			65, 34, 77, 37, 66, 86, 37, 49, 82, 36, 225, 192, 15, 15, 204, 64, 84, 147, 60, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			64, 20, 129, 48, 193, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 60, 34, 133, 45, 66, 86, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			56, 21, 9, 60, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 52, 20, 135, 36, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			45, 34, 77, 36, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 44, 243, 77, 84, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			44, 20, 129, 45, 65, 82, 37, 49, 82, 36, 225, 192, 15, 15, 204, 44, 19, 142, 36, 32, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			36, 229, 5, 72, 224, 76, 37, 49, 82, 36, 225, 192, 15, 15, 204, 24, 19, 73, 48, 144, 82, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			20, 193, 75, 81, 34, 70, 36, 49, 82, 36, 225, 192, 15, 15, 204, 20, 97, 133, 45, 66, 86, 37, 49, 82, 36, 225, 192, 15, 15, 204,
-			16, 149, 133, 73, 50, 70, 36, 49, 82, 36, 225, 192, 15, 15, 204, 16, 145, 134, 21, 33, 78, 80, 145, 82, 36, 225, 192, 15, 15, 204,
-			12, 243, 80, 85, 65, 82, 37, 49, 82, 36, 225, 192, 15, 15, 204, 5, 85, 5, 57, 66, 70, 36, 49, 82, 36, 225, 192, 15, 15, 204,
-			4, 209, 82, 36, 176, 78, 37, 49, 82, 36, 225, 192, 15, 10, 199, 80, 19, 80, 60, 225, 82, 20, 15, 10, 199, 80, 16, 133, 48, 193,
-			82, 20, 15, 10, 199, 72, 80, 133, 48, 193, 82, 20, 15, 10, 199, 52, 241, 5, 48, 193, 82, 20, 15, 10, 199, 44, 243, 150, 60, 161,
-			82, 20, 15, 10, 199, 32, 20, 144, 84, 225, 82, 20, 15, 10, 199, 16, 85, 1, 48, 161, 82, 20, 15, 10, 199, 16, 84, 201, 28, 225,
-			82, 20, 15, 10, 199, 5, 4, 5, 48, 193, 82, 20, 15, 10, 199, 64, 19, 12, 4, 66, 85, 52, 15, 10, 199, 28, 84, 149, 56, 66,
-			85, 52, 15, 10, 199, 21, 2, 84, 4, 98, 85, 52, 15, 10, 199, 16, 80, 197, 56, 226, 85, 52, 15, 10, 199, 4, 197, 77, 36, 226,
-			85, 52, 15, 9, 198, 5, 36, 197, 56, 146, 192, 15, 0, 6, 20, 0, 252, 0, 0, 0, 121, 0, 0, 0, 246, 0, 0, 0, 248, 0,
-			0, 0, 228, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 99, 107, 0, 110, 107, 0, 110, 103, 0, 107, 0, 103, 0,
-			113, 0, 106, 0, 7, 6, 18, 67, 112, 0, 98, 0, 102, 0, 118, 0, 109, 0, 7, 6, 18, 68, 108, 0, 100, 0, 7, 6, 18, 69,
-			195, 184, 0, 117, 0, 121, 0, 105, 0, 111, 0, 7, 6, 18, 70, 195, 166, 0, 195, 165, 0, 97, 0, 7, 6, 18, 71, 112, 0, 98,
-			0, 7, 6, 18, 72, 116, 0, 107, 0, 118, 0, 7, 6, 18, 73, 115, 112, 0, 115, 116, 0, 115, 107, 0, 7, 6, 18, 74, 109, 0,
-			110, 0, 7, 6, 18, 75, 99, 0, 107, 0, 7, 6, 18, 76, 97, 0, 101, 0, 7, 6, 97, 103, 0, 1, 108, 114, 111, 102, 3, 2,
-			118, 57, 0, 1, 98, 108, 105, 116, 2, 101, 3, 6, 117, 38, 0, 101, 1, 10, 2, 28, 33, 12, 12, 12, 3, 6, 117, 91, 14, 0,
-			4, 101, 1, 10, 2, 114, 32, 28, 33, 12, 12, 3, 6, 117, 91, 109, 0, 101, 1, 10, 2, 114, 110, 101, 28, 33, 12, 12, 0, 101,
-			1, 10, 2, 114, 115, 32, 28, 33, 12, 12, 0, 110, 1, 116, 101, 114, 98, 2, 101, 3, 6, 118, 50, 38, 0, 110, 1, 115, 97, 108,
-			2, 101, 3, 6, 118, 50, 57, 0, 101, 1, 114, 10, 2, 28, 33, 12, 12, 3, 6, 121, 12, 91, 13, 0, 101, 1, 114, 10, 2, 114,
-			28, 33, 12, 12, 3, 6, 121, 12, 91, 109, 0, 101, 2, 108, 105, 103, 12, 3, 7, 118, 57, 14, 0, 1, 116, 2, 108, 105, 97, 116,
-			101, 108, 108, 101, 3, 21, 105, 116, 0, 104, 1, 108, 108, 97, 103, 3, 112, 81, 0, 8, 98, 2, 101, 108, 12, 3, 115, 57, 81, 0,
-			4, 1, 100, 2, 101, 12, 12, 3, 117, 0, 100, 1, 115, 2, 101, 12, 12, 12, 0, 101, 1, 116, 101, 114, 97, 118, 0, 101, 1, 116,
-			101, 114, 111, 102, 0, 1, 106, 2, 101, 12, 3, 117, 12, 0, 101, 116, 1, 116, 2, 12, 3, 117, 12, 13, 86, 0, 100, 101, 1, 108,
-			3, 117, 12, 14, 0, 4, 101, 1, 100, 110, 97, 98, 3, 117, 12, 91, 14, 0, 101, 1, 112, 2, 12, 12, 0, 101, 1, 115, 115, 97,
-			109, 101, 116, 114, 101, 106, 104, 0, 101, 1, 116, 101, 2, 12, 0, 101, 1, 116, 117, 102, 102, 97, 0, 4, 101, 1, 116, 2, 108, 115,
-			101, 3, 117, 14, 0, 101, 1, 116, 101, 98, 0, 110, 1, 116, 115, 97, 107, 2, 101, 116, 3, 117, 50, 57, 6, 0, 4, 1, 98, 2,
-			101, 114, 105, 12, 3, 117, 57, 0, 1, 108, 2, 114, 101, 12, 0, 1, 108, 115, 109, 101, 110, 110, 101, 103, 2, 12, 0, 4, 101, 1,
-			17, 67, 2, 12, 12, 12, 3, 117, 57, 14, 0, 101, 1, 98, 2, 114, 117, 108, 0, 101, 8, 116, 2, 32, 12, 0, 101, 1, 17, 67,
-			2, 110, 25, 12, 12, 3, 117, 57, 20, 14, 0, 4, 101, 110, 100, 1, 98, 2, 101, 32, 104, 101, 100, 3, 117, 57, 112, 50, 0, 101,
-			110, 100, 1, 98, 2, 101, 32, 115, 111, 108, 0, 101, 110, 100, 1, 98, 2, 101, 32, 118, 97, 114, 109, 0, 1, 108, 108, 101, 112, 2,
-			114, 97, 3, 117, 81, 0, 4, 1, 112, 115, 2, 101, 116, 116, 3, 117, 81, 6, 0, 104, 1, 112, 115, 2, 101, 116, 116, 0, 101, 1,
-			116, 117, 109, 2, 110, 3, 117, 81, 6, 36, 0, 101, 1, 10, 2, 114, 101, 28, 33, 12, 12, 3, 117, 91, 6, 114, 0, 4, 101, 1,
-			103, 2, 32, 12, 3, 117, 91, 14, 0, 101, 1, 103, 2, 110, 32, 12, 12, 0, 101, 1, 110, 111, 0, 101, 1, 115, 115, 97, 0, 101,
-			1, 116, 110, 97, 108, 112, 0, 4, 1, 100, 2, 115, 32, 3, 118, 0, 1, 100, 21, 2, 32, 12, 12, 0, 1, 100, 115, 2, 21, 12,
-			12, 0, 1, 116, 2, 102, 97, 116, 0, 101, 1, 116, 100, 108, 111, 118, 2, 32, 0, 101, 8, 116, 2, 32, 97, 102, 0, 101, 8, 116,
-			2, 32, 100, 101, 109, 32, 0, 101, 8, 116, 2, 32, 100, 101, 110, 32, 0, 101, 8, 116, 2, 32, 100, 101, 116, 32, 0, 101, 8, 116,
-			2, 32, 101, 110, 32, 0, 101, 8, 116, 2, 32, 101, 116, 32, 0, 101, 8, 116, 2, 32, 105, 109, 111, 100, 0, 101, 8, 116, 2, 32,
-			106, 101, 114, 0, 101, 8, 116, 2, 32, 109, 105, 103, 32, 0, 101, 8, 116, 2, 32, 112, 195, 165, 32, 0, 101, 8, 116, 2, 32, 115,
-			105, 103, 32, 0, 101, 8, 116, 32, 101, 107, 107, 105, 2, 32, 0, 101, 8, 116, 32, 101, 108, 108, 105, 118, 2, 32, 0, 101, 8, 116,
-			32, 101, 108, 108, 117, 107, 115, 2, 32, 0, 101, 8, 116, 32, 101, 110, 110, 117, 107, 2, 32, 0, 101, 8, 116, 32, 101, 116, 116, 165,
-			195, 109, 2, 32, 0, 101, 8, 116, 32, 103, 101, 106, 2, 32, 0, 101, 8, 116, 32, 105, 2, 32, 0, 101, 8, 116, 32, 105, 118, 2,
-			32, 0, 101, 8, 116, 32, 107, 111, 110, 2, 32, 0, 101, 8, 116, 32, 108, 97, 107, 115, 2, 32, 0, 101, 8, 116, 32, 108, 105, 118,
-			2, 32, 0, 101, 8, 116, 32, 110, 97, 107, 2, 32, 0, 101, 8, 116, 32, 116, 97, 2, 32, 0, 101, 8, 116, 32, 116, 100, 111, 103,
-			2, 32, 0, 101, 8, 116, 32, 116, 101, 100, 2, 32, 0, 101, 8, 116, 32, 117, 100, 2, 32, 0, 101, 8, 116, 32, 118, 108, 101, 115,
-			2, 32, 0, 101, 8, 116, 32, 165, 195, 109, 2, 32, 0, 4, 1, 98, 2, 102, 114, 3, 118, 4, 0, 1, 98, 2, 105, 12, 0, 1,
-			98, 2, 112, 195, 165, 0, 1, 98, 2, 116, 105, 108, 0, 1, 116, 2, 115, 101, 108, 118, 3, 118, 6, 0, 4, 1, 98, 2, 111, 118,
-			101, 114, 3, 118, 9, 0, 1, 98, 2, 117, 100, 0, 1, 98, 2, 118, 101, 100, 0, 101, 1, 116, 101, 114, 111, 102, 2, 116, 3, 118,
-			14, 0, 4, 1, 17, 67, 115, 2, 12, 12, 12, 3, 118, 57, 0, 1, 98, 2, 101, 102, 116, 101, 114, 0, 1, 98, 2, 101, 102, 116,
-			101, 114, 12, 12, 0, 1, 98, 101, 109, 109, 101, 106, 104, 2, 32, 0, 1, 100, 2, 32, 12, 0, 1, 108, 2, 32, 12, 0, 1, 108,
-			2, 110, 0, 1, 108, 2, 110, 101, 114, 0, 1, 108, 2, 114, 101, 0, 1, 108, 112, 0, 1, 108, 112, 111, 0, 1, 108, 115, 2, 110,
-			101, 0, 1, 108, 115, 2, 110, 105, 12, 0, 1, 108, 115, 112, 111, 0, 1, 115, 2, 101, 110, 12, 12, 12, 0, 1, 115, 110, 97, 114,
-			2, 110, 0, 1, 116, 2, 32, 12, 12, 0, 1, 116, 2, 110, 101, 12, 0, 1, 118, 115, 2, 116, 12, 12, 0, 1, 118, 115, 101, 110,
-			118, 101, 2, 12, 12, 12, 0, 1, 118, 115, 115, 100, 110, 165, 195, 2, 12, 12, 12, 0, 2, 110, 105, 110, 103, 12, 0, 8, 18, 71,
-			2, 32, 0, 8, 106, 2, 32, 0, 8, 107, 115, 2, 101, 110, 12, 12, 0, 8, 115, 2, 116, 101, 32, 0, 4, 101, 1, 108, 102, 2,
-			110, 101, 3, 118, 57, 14, 0, 101, 1, 108, 115, 115, 108, 101, 115, 100, 166, 195, 114, 2, 110, 0, 101, 8, 2, 32, 0, 4, 101, 2,
-			114, 110, 3, 118, 57, 108, 0, 101, 114, 1, 17, 67, 2, 12, 12, 0, 101, 114, 2, 104, 195, 184, 110, 0, 101, 114, 8, 2, 32, 0,
-			101, 114, 1, 116, 116, 103, 97, 105, 2, 32, 3, 118, 57, 109, 0, 110, 97, 110, 1, 116, 114, 97, 3, 118, 68, 6, 122, 68, 0, 4,
-			1, 100, 2, 111, 103, 12, 3, 118, 81, 0, 1, 106, 2, 117, 97, 114, 0, 1, 108, 102, 2, 114, 97, 110, 116, 0, 1, 108, 112, 2,
-			105, 0, 1, 112, 115, 2, 97, 116, 0, 103, 1, 116, 2, 101, 0, 101, 1, 116, 114, 97, 99, 2, 110, 97, 3, 118, 81, 6, 36, 12,
-			0, 101, 116, 101, 115, 1, 116, 3, 118, 81, 6, 114, 47, 14, 89, 0, 4, 101, 100, 1, 109, 114, 97, 3, 118, 81, 6, 115, 72, 0,
-			101, 100, 100, 1, 109, 114, 97, 0, 101, 8, 2, 110, 116, 12, 12, 3, 118, 81, 6, 116, 0, 101, 2, 110, 116, 12, 12, 12, 3, 118,
-			81, 116, 0, 101, 114, 1, 103, 2, 101, 12, 3, 118, 91, 6, 114, 0, 101, 114, 1, 116, 101, 3, 118, 91, 109, 0, 1, 112, 115, 2,
-			111, 12, 12, 3, 121, 12, 81, 0, 101, 114, 8, 114, 2, 12, 12, 12, 3, 121, 58, 108, 0, 101, 114, 1, 114, 2, 12, 12, 12, 3,
-			121, 58, 109, 0, 101, 110, 100, 1, 98, 2, 101, 3, 121, 58, 115, 50, 0, 4, 1, 118, 115, 101, 114, 166, 195, 2, 116, 3, 121, 81,
-			0, 1, 118, 115, 103, 110, 105, 114, 101, 107, 114, 97, 112, 2, 116, 0, 1, 118, 115, 107, 105, 116, 117, 98, 2, 116, 0, 1, 118, 115,
-			108, 97, 116, 105, 112, 115, 111, 104, 2, 116, 0, 4, 1, 108, 2, 17, 67, 12, 3, 121, 123, 0, 1, 108, 102, 2, 97, 102, 98, 114,
-			195, 166, 110, 100, 0, 1, 108, 102, 2, 114, 101, 12, 0, 1, 108, 115, 2, 115, 105, 100, 101, 0, 1, 108, 115, 2, 115, 109, 195, 165,
-			108, 0, 1, 108, 115, 2, 115, 118, 195, 166, 114, 100, 0, 1, 108, 115, 2, 116, 105, 108, 102, 0, 1, 108, 115, 101, 2, 108, 17, 65,
-			0, 1, 112, 115, 2, 110, 117, 109, 0, 1, 114, 2, 101, 12, 0, 4, 101, 114, 1, 116, 100, 108, 111, 118, 2, 32, 3, 122, 34, 0,
-			101, 114, 1, 116, 101, 114, 111, 102, 0, 101, 114, 8, 116, 2, 32, 12, 0, 1, 98, 2, 117, 100, 103, 97, 110, 103, 3, 122, 40, 0,
-			103, 1, 108, 115, 2, 101, 3, 122, 49, 0, 4, 1, 98, 2, 17, 65, 110, 3, 122, 58, 0, 1, 98, 2, 18, 66, 12, 0, 1, 98,
-			2, 98, 12, 0, 1, 98, 2, 100, 12, 0, 1, 98, 2, 102, 0, 1, 98, 2, 104, 12, 0, 1, 98, 2, 107, 0, 1, 98, 2, 108,
-			12, 0, 1, 98, 2, 109, 0, 1, 98, 2, 112, 0, 1, 98, 2, 114, 117, 100, 0, 1, 98, 2, 115, 12, 0, 1, 98, 2, 116, 21,
-			0, 1, 98, 2, 116, 97, 108, 0, 1, 98, 2, 116, 114, 97, 112, 0, 1, 98, 2, 116, 117, 110, 103, 0, 1, 98, 2, 118, 12, 0,
-			1, 98, 2, 118, 97, 115, 107, 0, 1, 100, 2, 105, 110, 115, 116, 105, 0, 1, 100, 2, 108, 21, 12, 0, 1, 107, 115, 2, 108, 101,
-			114, 0, 1, 115, 2, 115, 195, 184, 0, 1, 116, 2, 17, 67, 12, 0, 8, 108, 115, 2, 17, 67, 21, 12, 12, 12, 12, 0, 8, 108,
-			115, 2, 32, 107, 111, 114, 116, 0, 101, 1, 114, 2, 12, 12, 12, 12, 3, 122, 58, 14, 0, 110, 1, 116, 115, 3, 122, 58, 68, 0,
-			4, 1, 98, 2, 116, 101, 3, 122, 81, 0, 1, 102, 2, 116, 101, 114, 0, 1, 106, 2, 116, 0, 1, 108, 2, 116, 12, 0, 1, 108,
-			115, 2, 116, 32, 12, 12, 12, 0, 1, 108, 115, 2, 116, 101, 12, 12, 12, 12, 12, 0, 1, 108, 115, 2, 116, 110, 12, 12, 0, 1,
-			108, 117, 103, 0, 1, 109, 115, 2, 116, 12, 12, 0, 1, 112, 2, 116, 0, 1, 115, 2, 116, 12, 0, 1, 118, 115, 100, 101, 104, 114,
-			101, 107, 107, 105, 115, 2, 116, 0, 2, 116, 105, 103, 0, 8, 108, 115, 2, 115, 32, 12, 0, 8, 108, 115, 2, 115, 101, 110, 0, 101,
-			100, 105, 101, 1, 114, 116, 3, 122, 81, 6, 114, 86, 57, 14, 0, 101, 1, 114, 10, 2, 114, 101, 28, 33, 12, 12, 3, 122, 91, 6,
-			114, 0, 101, 1, 114, 102, 102, 117, 115, 2, 116, 116, 101, 3, 122, 91, 6, 116, 0, 4, 1, 102, 2, 21, 12, 3, 122, 123, 0, 1,
-			115, 2, 110, 12, 0, 101, 114, 1, 108, 102, 2, 109, 117, 115, 3, 122, 123, 108, 0, 7, 6, 97, 108, 0, 4, 1, 100, 101, 112, 115,
-			2, 115, 107, 3, 6, 117, 55, 0, 1, 117, 115, 107, 101, 115, 0, 8, 98, 97, 107, 2, 101, 0, 8, 98, 109, 105, 116, 2, 101, 0,
-			8, 100, 110, 97, 107, 115, 2, 101, 0, 8, 103, 101, 114, 2, 101, 0, 8, 104, 114, 111, 102, 2, 101, 0, 8, 105, 114, 101, 116, 97,
-			109, 2, 101, 0, 8, 105, 116, 97, 114, 103, 2, 101, 0, 8, 105, 116, 110, 101, 116, 111, 112, 2, 101, 0, 8, 107, 111, 108, 2, 101,
-			0, 8, 109, 114, 111, 102, 2, 101, 0, 8, 110, 105, 102, 2, 101, 0, 8, 110, 110, 101, 105, 98, 0, 8, 110, 110, 101, 105, 114, 116,
-			2, 101, 0, 8, 115, 115, 105, 109, 2, 101, 0, 8, 116, 114, 111, 102, 2, 101, 32, 0, 8, 116, 114, 111, 109, 111, 116, 108, 97, 115,
-			2, 101, 0, 8, 117, 100, 97, 114, 103, 2, 101, 0, 8, 117, 110, 97, 109, 2, 101, 0, 101, 8, 105, 99, 101, 112, 115, 2, 32, 3,
-			6, 117, 55, 13, 0, 101, 8, 105, 116, 110, 101, 114, 101, 102, 102, 105, 100, 3, 6, 117, 55, 14, 0, 4, 8, 114, 101, 109, 117, 110,
-			2, 101, 3, 6, 121, 12, 55, 0, 8, 114, 111, 109, 2, 101, 0, 8, 114, 111, 116, 115, 97, 112, 2, 101, 0, 4, 8, 110, 105, 114,
-			117, 3, 7, 117, 55, 0, 8, 110, 111, 105, 116, 97, 114, 2, 101, 0, 8, 110, 111, 115, 114, 101, 112, 2, 101, 0, 7, 6, 98, 101,
-			0, 8, 2, 116, 97, 108, 3, 2, 71, 114, 0, 97, 117, 8, 3, 2, 71, 124, 0, 8, 2, 21, 3, 71, 2, 114, 0, 4, 8, 2,
-			100, 101, 3, 71, 36, 0, 8, 2, 101, 116, 97, 32, 0, 8, 2, 116, 97, 0, 8, 2, 116, 97, 115, 116, 114, 195, 165, 108, 0, 8,
-			2, 116, 97, 116, 114, 111, 110, 0, 8, 2, 116, 97, 118, 101, 114, 115, 105, 111, 110, 0, 8, 2, 116, 101, 108, 0, 8, 2, 116, 108,
-			0, 101, 116, 104, 111, 118, 101, 110, 3, 71, 36, 47, 39, 84, 14, 50, 0, 97, 8, 2, 118, 105, 115, 3, 71, 37, 0, 101, 99, 104,
-			8, 3, 71, 37, 76, 0, 4, 2, 110, 104, 195, 165, 114, 100, 3, 71, 114, 0, 8, 2, 100, 100, 105, 110, 103, 0, 8, 2, 110, 97,
-			114, 98, 101, 106, 100, 101, 0, 8, 2, 110, 98, 98, 117, 107, 0, 8, 2, 110, 98, 114, 117, 100, 0, 8, 2, 110, 98, 114, 195, 166,
-			107, 0, 8, 2, 110, 101, 100, 100, 101, 114, 0, 8, 2, 110, 101, 110, 100, 101, 0, 8, 2, 110, 101, 110, 101, 0, 8, 2, 110, 101,
-			114, 0, 8, 2, 110, 101, 116, 0, 8, 2, 110, 102, 101, 100, 116, 0, 8, 2, 110, 102, 105, 115, 107, 0, 8, 2, 110, 102, 114, 105,
-			0, 8, 2, 110, 107, 108, 0, 8, 2, 110, 109, 101, 108, 0, 8, 2, 110, 109, 101, 108, 0, 8, 2, 110, 112, 105, 98, 101, 0, 8,
-			2, 110, 112, 108, 97, 100, 115, 0, 8, 2, 110, 114, 97, 100, 0, 8, 2, 110, 115, 107, 105, 110, 110, 101, 0, 8, 2, 110, 115, 112,
-			195, 166, 110, 100, 0, 8, 2, 110, 116, 195, 184, 106, 0, 8, 2, 115, 107, 32, 0, 8, 2, 115, 107, 101, 32, 0, 4, 8, 2, 106,
-			100, 115, 3, 71, 115, 0, 8, 2, 108, 103, 105, 0, 8, 2, 110, 103, 110, 97, 0, 8, 2, 110, 104, 0, 8, 2, 110, 108, 0, 8,
-			2, 110, 118, 0, 8, 2, 114, 98, 0, 8, 2, 114, 103, 101, 110, 32, 0, 105, 103, 101, 8, 3, 71, 115, 12, 91, 0, 4, 8, 2,
-			100, 114, 101, 3, 71, 116, 0, 8, 2, 100, 114, 105, 110, 103, 0, 8, 2, 100, 115, 116, 101, 0, 8, 2, 103, 103, 101, 0, 8, 2,
-			108, 108, 97, 0, 8, 2, 110, 99, 104, 109, 97, 114, 107, 0, 8, 2, 110, 103, 101, 108, 0, 8, 2, 110, 106, 97, 109, 105, 110, 0,
-			8, 2, 106, 108, 101, 3, 71, 121, 0, 114, 107, 101, 108, 101, 121, 3, 71, 132, 49, 59, 37, 0, 4, 103, 8, 2, 98, 108, 101, 110,
-			100, 101, 3, 71, 136, 0, 103, 8, 2, 109, 97, 110, 100, 0, 103, 8, 2, 110, 105, 110, 103, 0, 7, 6, 101, 100, 0, 4, 1, 112,
-			105, 99, 111, 108, 101, 118, 2, 101, 3, 6, 114, 86, 0, 1, 116, 115, 102, 97, 2, 107, 111, 109, 0, 101, 1, 107, 121, 115, 112, 2,
-			108, 105, 115, 107, 3, 14, 72, 6, 36, 0, 4, 1, 107, 114, 97, 109, 3, 14, 86, 0, 1, 109, 109, 0, 1, 118, 111, 104, 0, 4,
-			101, 1, 21, 2, 32, 3, 14, 86, 14, 0, 101, 1, 107, 115, 114, 111, 102, 0, 1, 102, 103, 2, 101, 12, 3, 36, 86, 0, 4, 101,
-			1, 98, 108, 105, 116, 3, 36, 86, 14, 0, 101, 1, 98, 109, 101, 2, 32, 12, 0, 101, 1, 98, 109, 101, 2, 116, 32, 12, 0, 101,
-			1, 102, 112, 111, 2, 12, 12, 0, 101, 1, 104, 111, 108, 103, 2, 12, 0, 101, 1, 107, 100, 184, 195, 100, 2, 12, 0, 101, 1, 108,
-			100, 108, 105, 118, 2, 12, 0, 101, 1, 108, 100, 110, 105, 2, 12, 0, 101, 1, 108, 100, 117, 2, 12, 0, 101, 1, 108, 102, 97, 2,
-			12, 0, 101, 1, 108, 106, 101, 118, 2, 12, 0, 101, 1, 108, 110, 101, 104, 2, 12, 0, 101, 1, 108, 112, 111, 2, 12, 0, 101, 1,
-			108, 114, 111, 102, 2, 12, 0, 101, 1, 108, 115, 105, 109, 2, 12, 0, 101, 1, 108, 115, 118, 105, 108, 2, 12, 0, 101, 1, 108, 116,
-			101, 114, 2, 12, 0, 101, 1, 108, 116, 114, 111, 98, 0, 101, 1, 108, 116, 114, 111, 98, 2, 12, 0, 101, 1, 109, 115, 0, 101, 1,
-			110, 114, 101, 100, 0, 101, 1, 110, 114, 101, 104, 0, 4, 101, 114, 1, 98, 108, 105, 116, 3, 36, 86, 108, 0, 101, 114, 1, 102, 2,
-			32, 12, 0, 101, 114, 1, 108, 100, 108, 105, 118, 2, 12, 0, 101, 114, 1, 108, 100, 110, 105, 2, 12, 0, 101, 114, 1, 108, 100, 117,
-			2, 12, 0, 101, 114, 1, 108, 102, 97, 2, 12, 0, 101, 114, 1, 108, 106, 101, 118, 2, 12, 0, 101, 114, 1, 108, 110, 101, 104, 2,
-			12, 0, 101, 114, 1, 108, 112, 111, 2, 12, 0, 101, 114, 1, 108, 114, 111, 102, 2, 12, 0, 101, 114, 1, 108, 115, 105, 109, 2, 12,
-			0, 101, 114, 1, 108, 115, 118, 105, 108, 2, 12, 0, 101, 114, 1, 108, 116, 101, 114, 2, 12, 0, 101, 114, 1, 108, 116, 114, 111, 98,
-			2, 12, 0, 1, 114, 100, 110, 117, 104, 2, 12, 3, 108, 86, 0, 4, 101, 1, 114, 10, 2, 32, 3, 109, 86, 14, 0, 101, 1, 114,
-			10, 2, 115, 32, 0, 1, 104, 100, 110, 97, 115, 3, 114, 86, 0, 101, 1, 108, 114, 111, 102, 2, 110, 12, 3, 114, 86, 14, 0, 101,
-			114, 1, 104, 2, 12, 3, 114, 86, 108, 0, 4, 101, 1, 114, 98, 108, 101, 104, 3, 115, 86, 14, 0, 101, 1, 114, 100, 108, 105, 118,
-			2, 32, 12, 0, 101, 1, 114, 101, 98, 2, 32, 12, 0, 101, 1, 114, 101, 108, 103, 117, 2, 32, 12, 0, 101, 1, 114, 101, 110, 114,
+		static unsigned char espeakdata_dicts10_data[193792] = {
+			0, 4, 0, 0, 203, 216, 1, 0, 12, 201, 60, 101, 1, 48, 211, 204, 60, 114, 64, 20, 12, 201, 48, 20, 153, 56, 115, 204, 60, 114,
+			64, 20, 12, 201, 24, 20, 141, 4, 179, 204, 60, 114, 64, 20, 13, 138, 1, 18, 11, 195, 166, 15, 12, 15, 7, 9, 20, 17, 142, 1,
+			14, 195, 166, 19, 20, 5, 19, 9, 15, 12, 15, 7, 9, 20, 15, 140, 6, 15, 18, 6, 195, 184, 18, 5, 18, 9, 19, 11, 20, 0,
+			26, 73, 8, 80, 200, 4, 209, 76, 76, 245, 147, 71, 36, 91, 35, 65, 6, 36, 12, 60, 89, 6, 114, 58, 89, 0, 0, 10, 199, 72,
+			17, 9, 60, 195, 199, 36, 20, 10, 199, 61, 53, 5, 60, 195, 199, 36, 20, 10, 199, 45, 35, 206, 60, 195, 199, 36, 20, 10, 199, 36,
+			181, 25, 60, 195, 199, 36, 20, 10, 199, 36, 179, 206, 60, 195, 199, 36, 20, 10, 199, 32, 148, 16, 60, 195, 199, 36, 20, 10, 199, 25,
+			33, 78, 60, 195, 199, 36, 20, 10, 199, 24, 147, 13, 60, 195, 199, 36, 20, 14, 203, 24, 147, 140, 4, 225, 9, 76, 84, 137, 56, 112,
+			20, 14, 203, 20, 180, 208, 72, 244, 18, 36, 84, 137, 56, 112, 20, 14, 203, 16, 81, 137, 9, 34, 76, 48, 84, 137, 56, 112, 20, 10,
+			199, 4, 69, 133, 72, 34, 69, 48, 20, 12, 201, 16, 144, 71, 56, 244, 212, 36, 49, 82, 20, 12, 201, 64, 243, 25, 80, 82, 206, 36,
+			177, 82, 20, 0, 17, 67, 52, 83, 128, 65, 36, 50, 15, 89, 114, 0, 81, 115, 195, 165, 32, 9, 198, 60, 224, 78, 37, 53, 0, 20,
+			9, 198, 9, 81, 134, 37, 53, 0, 20, 12, 201, 8, 81, 21, 36, 228, 212, 4, 211, 69, 67, 9, 198, 76, 84, 150, 36, 49, 82, 20,
+			9, 198, 16, 84, 193, 72, 209, 82, 20, 9, 198, 5, 4, 12, 36, 177, 82, 20, 12, 137, 19, 22, 195, 166, 18, 13, 5, 18, 9, 20,
+			12, 137, 4, 18, 195, 184, 13, 13, 5, 18, 9, 20, 9, 198, 4, 96, 84, 36, 177, 82, 20, 6, 195, 52, 83, 128, 8, 0, 9, 198,
+			36, 225, 21, 77, 68, 137, 20, 0, 13, 202, 64, 20, 143, 16, 243, 148, 60, 195, 199, 36, 20, 9, 198, 21, 33, 207, 56, 243, 64, 20,
+			9, 198, 4, 116, 143, 56, 243, 64, 20, 8, 197, 8, 192, 77, 21, 32, 20, 10, 135, 22, 195, 165, 19, 5, 18, 9, 20, 0, 9, 198,
+			65, 54, 75, 61, 49, 64, 20, 9, 198, 48, 22, 129, 72, 243, 128, 20, 9, 198, 80, 244, 147, 36, 243, 128, 20, 9, 198, 77, 64, 68,
+			36, 243, 128, 20, 9, 198, 8, 147, 12, 36, 243, 128, 20, 9, 198, 5, 82, 212, 36, 243, 128, 20, 12, 137, 7, 18, 195, 166, 3, 9,
+			19, 5, 18, 20, 11, 136, 6, 195, 166, 18, 7, 5, 18, 9, 20, 9, 198, 5, 0, 84, 37, 50, 192, 20, 12, 201, 52, 83, 1, 56,
+			179, 204, 36, 177, 82, 20, 12, 201, 16, 144, 71, 56, 244, 212, 36, 177, 82, 20, 10, 199, 52, 21, 83, 60, 193, 85, 52, 20, 9, 198,
+			4, 48, 197, 77, 50, 84, 20, 7, 196, 5, 0, 84, 36, 20, 9, 198, 56, 146, 207, 80, 147, 128, 20, 9, 198, 44, 20, 143, 80, 147,
+			128, 20, 10, 199, 33, 83, 65, 56, 148, 205, 20, 20, 10, 199, 4, 197, 18, 84, 148, 205, 20, 20, 9, 198, 76, 20, 129, 12, 83, 128,
+			20, 9, 198, 64, 19, 129, 52, 19, 128, 20, 9, 198, 44, 243, 150, 20, 229, 0, 20, 10, 199, 64, 84, 141, 4, 225, 78, 76, 20, 9,
+			198, 44, 243, 148, 4, 229, 0, 20, 9, 198, 5, 0, 78, 4, 113, 64, 20, 0, 17, 70, 72, 82, 137, 12, 84, 133, 34, 36, 57, 37,
+			89, 6, 36, 114, 0, 10, 199, 65, 35, 195, 20, 69, 82, 20, 20, 10, 199, 80, 19, 80, 60, 225, 82, 20, 20, 10, 199, 80, 16, 133,
+			48, 193, 82, 20, 20, 10, 199, 72, 80, 133, 48, 193, 82, 20, 20, 10, 199, 52, 241, 5, 48, 193, 82, 20, 20, 10, 199, 16, 84, 201,
+			28, 225, 82, 20, 20, 10, 199, 5, 4, 5, 48, 193, 82, 20, 20, 9, 198, 81, 38, 76, 48, 84, 137, 20, 9, 198, 49, 83, 83, 44,
+			84, 137, 20, 9, 198, 45, 82, 143, 56, 84, 137, 20, 9, 198, 45, 38, 68, 16, 84, 137, 20, 9, 198, 44, 192, 84, 80, 84, 137, 20,
+			9, 198, 17, 34, 76, 48, 84, 137, 20, 10, 199, 4, 224, 75, 60, 197, 84, 36, 20, 0, 11, 200, 77, 65, 82, 20, 244, 203, 61, 0,
+			20, 9, 198, 20, 193, 75, 81, 35, 206, 20, 7, 196, 52, 84, 193, 56, 21, 0, 12, 201, 81, 32, 78, 76, 101, 83, 36, 243, 128, 20,
+			12, 201, 77, 84, 16, 72, 84, 211, 36, 243, 128, 20, 12, 201, 72, 84, 1, 73, 66, 84, 36, 243, 128, 20, 12, 201, 45, 96, 68, 72,
+			147, 12, 36, 243, 128, 20, 12, 201, 44, 243, 80, 72, 84, 211, 36, 243, 128, 20, 12, 201, 36, 229, 5, 72, 18, 212, 36, 243, 128, 20,
+			12, 201, 20, 180, 208, 20, 66, 84, 36, 243, 128, 20, 12, 201, 24, 147, 15, 76, 241, 137, 45, 83, 64, 20, 12, 201, 80, 84, 146, 37,
+			67, 210, 37, 83, 64, 20, 12, 201, 60, 97, 133, 73, 67, 210, 37, 83, 64, 20, 8, 197, 16, 83, 148, 36, 224, 20, 8, 197, 8, 84,
+			140, 36, 224, 20, 13, 202, 88, 144, 212, 61, 34, 65, 56, 148, 205, 20, 20, 13, 202, 60, 36, 203, 85, 32, 78, 80, 148, 205, 20, 20,
+			13, 202, 16, 242, 212, 72, 147, 129, 72, 148, 205, 20, 20, 8, 197, 8, 84, 140, 36, 224, 20, 8, 197, 45, 83, 80, 4, 224, 21, 6,
+			65, 8, 71, 36, 0, 0, 18, 70, 52, 19, 129, 29, 80, 64, 65, 110, 50, 6, 110, 12, 81, 58, 110, 0, 9, 198, 72, 80, 75, 80,
+			244, 128, 20, 9, 198, 77, 1, 78, 16, 84, 128, 20, 9, 198, 76, 84, 15, 56, 84, 128, 20, 9, 198, 72, 84, 207, 56, 84, 128, 20,
+			9, 198, 72, 82, 137, 12, 84, 128, 20, 9, 198, 64, 245, 83, 76, 84, 128, 20, 9, 198, 61, 33, 9, 56, 84, 128, 20, 9, 198, 61,
+			4, 15, 56, 84, 128, 20, 9, 198, 44, 195, 193, 44, 84, 128, 20, 9, 198, 36, 212, 15, 56, 84, 128, 20, 9, 198, 25, 32, 80, 64,
+			84, 128, 20, 9, 198, 20, 225, 193, 28, 84, 128, 20, 9, 198, 5, 52, 213, 72, 84, 128, 20, 15, 140, 12, 195, 184, 19, 7, 195, 166,
+			14, 7, 5, 18, 9, 20, 8, 133, 195, 184, 4, 5, 13, 20, 9, 198, 5, 97, 79, 48, 20, 128, 20, 9, 198, 52, 147, 9, 80, 19,
+			148, 20, 9, 198, 4, 66, 149, 16, 19, 148, 20, 0, 10, 199, 32, 148, 212, 60, 195, 199, 36, 20, 9, 198, 52, 243, 143, 52, 19, 137,
+			20, 10, 199, 77, 82, 203, 84, 193, 78, 80, 20, 14, 203, 56, 21, 18, 37, 83, 66, 20, 230, 143, 5, 64, 20, 10, 199, 5, 48, 197,
+			56, 64, 78, 80, 20, 0, 15, 204, 44, 20, 129, 45, 65, 82, 37, 53, 9, 45, 83, 64, 20, 9, 198, 4, 224, 76, 101, 48, 66, 20,
+			7, 196, 21, 64, 71, 20, 20, 9, 68, 76, 208, 76, 48, 21, 0, 10, 0, 12, 201, 88, 149, 1, 52, 147, 137, 76, 84, 128, 20, 12,
+			201, 84, 225, 5, 73, 101, 82, 16, 84, 128, 20, 12, 201, 81, 32, 78, 77, 3, 210, 80, 84, 128, 20, 12, 201, 81, 32, 78, 76, 99,
+			210, 52, 84, 128, 20, 12, 201, 77, 68, 129, 80, 145, 137, 12, 84, 128, 20, 12, 201, 72, 83, 210, 28, 19, 137, 76, 84, 128, 20, 12,
+			201, 36, 229, 5, 72, 99, 204, 36, 84, 128, 20, 12, 201, 36, 212, 12, 20, 209, 78, 80, 84, 128, 20, 12, 201, 28, 192, 77, 61, 84,
+			137, 76, 84, 128, 20, 12, 201, 25, 32, 84, 21, 35, 137, 76, 84, 128, 20, 12, 201, 5, 85, 15, 56, 243, 73, 76, 84, 128, 20, 8,
+			197, 32, 245, 133, 72, 144, 20, 8, 197, 64, 85, 18, 60, 192, 20, 12, 201, 76, 178, 83, 52, 21, 9, 44, 84, 128, 20, 12, 201, 64,
+			20, 129, 49, 149, 9, 44, 84, 128, 20, 12, 201, 21, 128, 197, 57, 68, 137, 44, 84, 128, 20, 12, 201, 8, 192, 83, 24, 83, 73, 44,
+			84, 128, 20, 11, 136, 195, 184, 11, 15, 14, 15, 13, 9, 20, 6, 65, 12, 89, 36, 0, 0, 17, 70, 8, 83, 9, 104, 84, 128, 71,
+			36, 55, 37, 12, 89, 114, 0, 66, 12, 202, 65, 54, 75, 60, 96, 82, 52, 18, 207, 56, 9, 198, 72, 83, 133, 28, 84, 128, 20, 9,
+			198, 60, 97, 133, 72, 84, 128, 20, 9, 198, 52, 241, 5, 72, 84, 128, 20, 9, 198, 52, 148, 197, 72, 84, 128, 20, 9, 198, 36, 227,
+			143, 88, 84, 128, 20, 9, 198, 36, 225, 9, 12, 84, 128, 20, 9, 198, 24, 192, 77, 8, 84, 128, 20, 9, 198, 16, 148, 137, 28, 84,
+			128, 20, 9, 198, 16, 85, 15, 56, 84, 128, 20, 9, 198, 16, 84, 15, 56, 84, 128, 20, 9, 198, 16, 83, 9, 72, 84, 128, 20, 9,
+			198, 8, 147, 208, 80, 84, 128, 20, 12, 201, 45, 33, 65, 80, 147, 206, 37, 51, 69, 20, 9, 198, 45, 99, 212, 36, 83, 148, 20, 9,
+			198, 48, 81, 193, 80, 20, 128, 20, 9, 198, 76, 82, 211, 80, 19, 148, 20, 9, 198, 60, 178, 213, 64, 19, 148, 20, 9, 198, 45, 96,
+			68, 72, 19, 148, 20, 9, 198, 88, 84, 137, 80, 16, 128, 20, 0, 9, 198, 4, 116, 143, 56, 243, 73, 20, 9, 198, 4, 229, 9, 24,
+			243, 137, 20, 10, 199, 8, 144, 140, 36, 243, 65, 56, 21, 14, 4, 95, 8, 1, 3, 107, 6, 35, 76, 4, 109, 49, 0, 0, 14, 139,
+			7, 25, 14, 195, 166, 11, 15, 12, 15, 7, 9, 20, 11, 200, 77, 81, 199, 21, 53, 9, 60, 224, 20, 11, 200, 72, 84, 207, 73, 5,
+			9, 60, 224, 20, 9, 198, 44, 20, 142, 20, 243, 0, 20, 9, 198, 25, 33, 85, 16, 144, 78, 20, 0, 12, 201, 72, 81, 201, 77, 68,
+			129, 80, 244, 128, 20, 12, 201, 44, 243, 147, 21, 37, 129, 80, 244, 128, 20, 12, 201, 44, 243, 132, 20, 228, 193, 80, 244, 128, 20, 12,
+			201, 44, 243, 80, 20, 228, 193, 80, 244, 128, 20, 12, 201, 36, 195, 21, 77, 68, 129, 80, 244, 128, 20, 10, 135, 2, 5, 19, 22, 195,
+			166, 18, 20, 12, 201, 64, 243, 25, 52, 84, 137, 76, 84, 128, 20, 12, 201, 64, 192, 83, 80, 145, 137, 12, 84, 128, 20, 12, 201, 61,
+			3, 65, 28, 20, 201, 56, 84, 128, 20, 12, 201, 45, 96, 78, 80, 145, 137, 12, 84, 128, 20, 12, 201, 32, 145, 82, 5, 34, 201, 76,
+			84, 128, 20, 12, 201, 29, 147, 78, 5, 53, 9, 12, 84, 128, 20, 8, 197, 4, 226, 77, 21, 32, 20, 12, 201, 32, 243, 73, 48, 85,
+			9, 44, 84, 128, 20, 12, 201, 16, 144, 76, 20, 181, 9, 44, 84, 128, 20, 15, 204, 36, 229, 5, 73, 97, 78, 80, 147, 206, 37, 51,
+			69, 20, 6, 65, 16, 72, 36, 0, 0, 11, 136, 20, 5, 18, 20, 9, 195, 166, 18, 20, 11, 136, 8, 15, 14, 15, 18, 195, 166, 18,
+			20, 9, 198, 104, 243, 206, 61, 49, 64, 20, 9, 198, 56, 20, 139, 61, 49, 64, 20, 9, 198, 28, 197, 75, 61, 49, 64, 20, 16, 141,
+			6, 195, 166, 14, 15, 13, 5, 14, 15, 12, 15, 7, 9, 20, 9, 198, 76, 244, 130, 37, 67, 204, 20, 17, 70, 64, 83, 132, 4, 229,
+			0, 48, 112, 68, 72, 6, 112, 68, 0, 20, 0, 9, 198, 45, 82, 143, 56, 84, 133, 20, 9, 198, 44, 20, 146, 36, 84, 133, 20, 9,
+			198, 29, 34, 76, 48, 84, 133, 20, 10, 199, 61, 1, 143, 72, 209, 82, 20, 20, 9, 198, 48, 18, 197, 72, 84, 137, 20, 9, 198, 29,
+			37, 66, 48, 84, 137, 20, 10, 199, 21, 35, 212, 60, 208, 78, 36, 20, 9, 198, 33, 148, 132, 36, 225, 5, 20, 11, 67, 76, 147, 128,
+			89, 6, 37, 50, 0, 76, 0, 9, 198, 65, 35, 205, 61, 67, 210, 20, 11, 200, 12, 84, 148, 36, 98, 75, 5, 64, 20, 13, 138, 16,
+			18, 195, 166, 19, 5, 14, 20, 1, 2, 20, 0, 9, 198, 61, 67, 211, 44, 244, 0, 20, 12, 201, 45, 33, 65, 80, 149, 137, 80, 85,
+			0, 20, 12, 201, 88, 147, 132, 36, 49, 82, 36, 225, 192, 20, 12, 201, 77, 80, 147, 84, 209, 82, 36, 225, 192, 20, 12, 201, 76, 83,
+			5, 45, 65, 82, 36, 225, 192, 20, 12, 201, 64, 192, 84, 36, 225, 82, 36, 225, 192, 20, 12, 201, 64, 20, 211, 37, 97, 82, 36, 225,
+			192, 20, 12, 201, 64, 20, 208, 60, 193, 82, 36, 225, 192, 20, 12, 201, 61, 34, 69, 57, 65, 82, 36, 225, 192, 20, 12, 201, 52, 20,
+			141, 61, 33, 82, 36, 225, 192, 20, 12, 201, 48, 19, 69, 57, 65, 82, 36, 225, 192, 20, 12, 201, 45, 84, 147, 37, 97, 82, 36, 225,
+			192, 20, 12, 201, 44, 244, 212, 84, 209, 82, 36, 225, 192, 20, 12, 201, 44, 243, 134, 21, 33, 82, 36, 225, 192, 20, 12, 201, 44, 243,
+			66, 36, 225, 82, 36, 225, 192, 20, 12, 201, 44, 19, 11, 84, 193, 82, 36, 225, 192, 20, 12, 201, 36, 229, 5, 72, 225, 82, 36, 225,
+			192, 20, 12, 201, 36, 228, 212, 73, 81, 82, 36, 225, 192, 20, 12, 201, 36, 225, 143, 72, 209, 82, 36, 225, 192, 20, 12, 201, 36, 225,
+			12, 21, 97, 82, 36, 225, 192, 20, 12, 201, 24, 245, 82, 4, 113, 82, 36, 225, 192, 20, 12, 201, 20, 180, 208, 60, 225, 82, 36, 225,
+			192, 20, 12, 201, 16, 148, 208, 60, 225, 82, 36, 225, 192, 20, 12, 201, 16, 147, 73, 81, 65, 82, 36, 225, 192, 20, 12, 201, 16, 83,
+			69, 57, 65, 82, 36, 225, 192, 20, 12, 201, 16, 82, 204, 36, 225, 82, 36, 225, 192, 20, 12, 201, 16, 82, 204, 5, 33, 82, 36, 225,
+			192, 20, 12, 201, 12, 83, 5, 9, 33, 82, 36, 225, 192, 20, 12, 201, 8, 192, 78, 12, 129, 82, 36, 225, 192, 20, 12, 201, 8, 19,
+			1, 56, 49, 82, 36, 225, 192, 20, 12, 201, 5, 4, 18, 60, 33, 82, 36, 225, 192, 20, 12, 201, 48, 245, 134, 61, 35, 69, 48, 145,
+			192, 20, 0, 11, 136, 11, 22, 195, 166, 19, 20, 15, 18, 20, 9, 198, 21, 0, 85, 48, 85, 0, 20, 9, 198, 52, 147, 12, 36, 243,
+			128, 20, 9, 198, 20, 194, 83, 36, 243, 128, 20, 9, 198, 76, 19, 137, 80, 85, 0, 20, 9, 198, 44, 21, 137, 80, 85, 0, 20, 9,
+			198, 20, 229, 9, 80, 85, 0, 20, 9, 198, 44, 20, 146, 85, 49, 76, 20, 12, 201, 77, 80, 138, 20, 181, 9, 88, 84, 133, 20, 12,
+			201, 29, 82, 76, 48, 245, 9, 56, 84, 133, 20, 12, 201, 16, 147, 5, 81, 64, 78, 80, 84, 137, 20, 9, 198, 77, 147, 148, 21, 49,
+			64, 20, 9, 198, 16, 82, 207, 73, 83, 64, 20, 9, 198, 56, 144, 133, 56, 149, 0, 20, 9, 198, 16, 242, 212, 72, 147, 128, 20, 12,
+			137, 7, 18, 195, 166, 3, 9, 19, 13, 5, 20, 9, 198, 72, 81, 133, 72, 21, 0, 20, 9, 198, 36, 229, 18, 36, 176, 84, 20, 9,
+			198, 36, 226, 21, 52, 19, 128, 21, 9, 198, 17, 83, 3, 36, 19, 128, 21, 9, 198, 4, 116, 129, 52, 19, 128, 21, 0, 9, 198, 4,
+			84, 143, 17, 35, 205, 20, 10, 199, 24, 19, 19, 44, 225, 82, 36, 20, 10, 199, 77, 98, 71, 4, 117, 9, 28, 20, 9, 198, 52, 17,
+			206, 21, 50, 69, 20, 10, 199, 80, 84, 141, 60, 116, 129, 24, 20, 10, 199, 44, 244, 133, 60, 116, 129, 24, 20, 10, 199, 77, 98, 71,
+			4, 117, 9, 28, 20, 0, 9, 198, 48, 16, 146, 4, 67, 210, 20, 9, 198, 44, 244, 146, 36, 67, 210, 20, 9, 198, 20, 193, 86, 5,
+			67, 210, 20, 15, 204, 81, 32, 78, 77, 3, 1, 57, 65, 82, 36, 225, 192, 20, 15, 204, 80, 82, 206, 60, 195, 199, 37, 49, 82, 36,
+			225, 192, 20, 15, 204, 44, 243, 80, 72, 243, 73, 81, 65, 82, 36, 225, 192, 20, 15, 204, 36, 228, 212, 73, 83, 69, 57, 65, 82, 36,
+			225, 192, 20, 15, 204, 36, 211, 65, 81, 34, 75, 84, 193, 82, 36, 225, 192, 20, 15, 204, 8, 144, 140, 36, 241, 210, 4, 97, 82, 36,
+			225, 192, 20, 9, 198, 77, 147, 132, 36, 177, 82, 20, 9, 198, 73, 80, 146, 36, 49, 82, 20, 9, 198, 24, 84, 142, 37, 49, 82, 20,
+			15, 204, 20, 180, 200, 36, 34, 84, 36, 243, 137, 76, 209, 64, 20, 6, 195, 76, 147, 133, 76, 0, 12, 201, 81, 32, 78, 76, 18, 212,
+			36, 243, 128, 20, 12, 201, 72, 84, 212, 37, 69, 84, 36, 243, 128, 20, 12, 201, 64, 244, 201, 80, 149, 137, 80, 85, 0, 20, 12, 201,
+			56, 81, 193, 80, 149, 137, 80, 85, 0, 20, 12, 201, 52, 147, 137, 77, 65, 82, 37, 83, 64, 20, 8, 197, 80, 84, 141, 36, 176, 20,
+			8, 197, 80, 83, 210, 20, 208, 20, 8, 197, 8, 17, 193, 28, 80, 20, 6, 65, 24, 109, 83, 0, 0, 10, 135, 11, 21, 18, 9, 195,
+			184, 19, 20, 9, 198, 65, 83, 12, 36, 213, 84, 20, 9, 198, 28, 83, 204, 60, 114, 64, 20, 9, 198, 17, 35, 199, 37, 53, 0, 20,
+			13, 202, 25, 37, 71, 81, 51, 205, 52, 83, 9, 28, 20, 9, 198, 64, 19, 132, 20, 210, 64, 20, 9, 198, 60, 33, 21, 12, 83, 148,
+			20, 0, 10, 199, 48, 147, 78, 60, 195, 199, 36, 20, 10, 199, 29, 32, 70, 60, 195, 199, 36, 20, 10, 199, 28, 83, 77, 60, 195, 199,
+			36, 20, 10, 199, 5, 81, 9, 60, 195, 199, 36, 20, 12, 137, 16, 18, 195, 166, 3, 9, 19, 5, 18, 20, 12, 201, 64, 84, 147, 60,
+			226, 70, 36, 49, 82, 20, 12, 201, 52, 20, 203, 84, 194, 78, 37, 49, 82, 20, 10, 199, 36, 70, 76, 48, 146, 197, 72, 20, 10, 199,
+			8, 245, 1, 56, 146, 197, 72, 20, 13, 138, 16, 18, 195, 166, 12, 21, 4, 9, 21, 13, 20, 17, 70, 105, 80, 195, 32, 147, 137, 89,
+			40, 49, 6, 37, 50, 37, 0, 20, 9, 198, 49, 81, 15, 52, 19, 137, 20, 12, 201, 25, 83, 132, 4, 209, 78, 80, 19, 0, 20, 10,
+			199, 8, 20, 212, 60, 224, 68, 20, 20, 0, 9, 134, 22, 9, 7, 195, 184, 18, 20, 7, 196, 45, 84, 15, 56, 20, 11, 200, 80, 21,
+			15, 88, 84, 137, 56, 112, 20, 11, 200, 76, 242, 71, 56, 84, 137, 56, 112, 20, 11, 200, 20, 210, 71, 72, 84, 137, 56, 112, 20, 11,
+			200, 16, 81, 137, 48, 84, 137, 56, 112, 20, 11, 200, 8, 243, 137, 80, 84, 137, 56, 112, 20, 9, 198, 77, 1, 67, 36, 83, 0, 20,
+			11, 200, 16, 148, 212, 4, 224, 197, 72, 80, 20, 11, 200, 5, 52, 201, 77, 64, 78, 12, 80, 20, 9, 198, 61, 5, 9, 52, 19, 0,
+			20, 0, 13, 138, 13, 25, 19, 20, 5, 18, 9, 195, 184, 19, 20, 10, 135, 13, 1, 19, 19, 195, 184, 18, 20, 10, 135, 13, 1, 18,
+			11, 195, 184, 18, 20, 8, 197, 56, 147, 194, 36, 80, 20, 8, 197, 20, 228, 201, 4, 224, 21, 8, 197, 53, 84, 197, 4, 192, 20, 6,
+			65, 28, 81, 36, 0, 0, 9, 198, 72, 84, 1, 72, 84, 128, 20, 9, 198, 64, 17, 201, 56, 84, 128, 20, 9, 198, 45, 98, 84, 80,
+			84, 128, 20, 9, 198, 40, 243, 137, 76, 84, 128, 20, 9, 198, 36, 225, 9, 44, 84, 128, 20, 9, 198, 28, 195, 211, 76, 84, 128, 20,
+			13, 202, 20, 180, 203, 60, 211, 85, 56, 146, 197, 72, 20, 9, 198, 8, 20, 146, 36, 84, 128, 20, 9, 198, 4, 33, 9, 12, 84, 128,
+			20, 12, 201, 52, 20, 203, 84, 194, 78, 37, 51, 69, 20, 9, 198, 76, 192, 86, 60, 98, 76, 20, 9, 198, 88, 81, 197, 80, 20, 128,
+			20, 0, 12, 137, 18, 5, 7, 9, 19, 19, 195, 184, 18, 20, 9, 198, 25, 148, 201, 85, 33, 201, 20, 9, 198, 88, 20, 197, 48, 147,
+			133, 20, 9, 198, 28, 83, 1, 80, 147, 133, 20, 14, 203, 72, 83, 1, 80, 149, 137, 76, 84, 137, 56, 112, 20, 10, 199, 52, 19, 137,
+			65, 83, 5, 72, 20, 10, 199, 48, 81, 201, 80, 147, 69, 72, 20, 9, 198, 76, 18, 210, 37, 53, 9, 20, 9, 198, 88, 20, 197, 48,
+			147, 133, 20, 10, 199, 72, 145, 207, 72, 148, 205, 20, 20, 10, 199, 32, 147, 132, 84, 148, 205, 20, 20, 10, 199, 28, 21, 76, 48, 148,
+			205, 20, 20, 9, 198, 20, 194, 84, 37, 51, 69, 20, 10, 199, 16, 148, 137, 28, 148, 205, 20, 20, 10, 199, 88, 242, 193, 9, 83, 1,
+			72, 20, 6, 195, 44, 19, 128, 76, 14, 4, 95, 51, 88, 15, 47, 34, 6, 111, 83, 47, 13, 0, 0, 11, 200, 88, 145, 9, 52, 84,
+			137, 56, 112, 20, 11, 200, 56, 243, 73, 56, 84, 137, 56, 112, 20, 11, 200, 52, 84, 137, 80, 84, 137, 56, 112, 20, 11, 200, 5, 96,
+			78, 12, 84, 137, 56, 112, 20, 7, 196, 20, 180, 201, 48, 20, 0, 28, 67, 80, 245, 82, 47, 40, 12, 13, 72, 13, 15, 6, 83, 114,
+			12, 89, 0, 82, 100, 101, 32, 102, 111, 114, 99, 101, 32, 12, 201, 36, 225, 137, 49, 68, 129, 80, 244, 128, 20, 12, 201, 16, 83, 79,
+			17, 83, 1, 80, 244, 128, 20, 10, 135, 18, 1, 4, 9, 195, 166, 18, 20, 12, 201, 44, 243, 12, 5, 66, 79, 56, 84, 128, 20, 12,
+			201, 12, 83, 148, 72, 19, 9, 76, 84, 128, 20, 7, 65, 32, 107, 113, 12, 0, 0, 9, 198, 8, 243, 137, 80, 85, 0, 20, 9, 198,
+			4, 194, 193, 48, 242, 68, 20, 9, 198, 64, 84, 137, 45, 83, 64, 20, 9, 198, 16, 81, 137, 56, 149, 0, 20, 9, 198, 88, 20, 197,
+			48, 147, 128, 20, 9, 198, 48, 80, 201, 80, 147, 128, 20, 12, 201, 72, 21, 9, 60, 224, 76, 37, 51, 69, 20, 12, 201, 64, 21, 5,
+			72, 224, 76, 37, 51, 69, 20, 9, 198, 77, 147, 132, 36, 176, 84, 20, 9, 198, 52, 243, 143, 52, 19, 128, 21, 9, 198, 49, 81, 15,
+			52, 19, 128, 21, 9, 198, 5, 54, 76, 4, 229, 0, 20, 0, 25, 67, 28, 21, 128, 81, 110, 15, 89, 35, 57, 15, 47, 36, 55, 0,
+			82, 115, 105, 103, 32, 116, 105, 108, 32, 14, 203, 84, 68, 1, 72, 49, 76, 48, 84, 137, 56, 112, 20, 14, 203, 36, 225, 11, 4, 194,
+			213, 48, 84, 137, 56, 112, 20, 10, 199, 77, 68, 137, 44, 177, 82, 36, 20, 9, 198, 44, 21, 5, 28, 244, 137, 20, 6, 195, 5, 67,
+			204, 20, 0, 6, 195, 5, 67, 205, 20, 9, 198, 25, 84, 201, 60, 225, 82, 20, 9, 198, 8, 20, 212, 60, 225, 82, 20, 9, 1, 35,
+			50, 6, 113, 65, 114, 0, 0, 22, 65, 36, 37, 15, 49, 84, 6, 112, 12, 72, 114, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 12,
+			201, 44, 20, 130, 61, 37, 78, 17, 83, 64, 20, 12, 201, 64, 20, 148, 36, 50, 80, 37, 83, 64, 20, 15, 204, 65, 35, 198, 21, 52,
+			201, 60, 224, 76, 37, 51, 69, 20, 12, 201, 4, 193, 75, 76, 19, 132, 72, 147, 128, 20, 7, 65, 36, 10, 37, 0, 76, 0, 9, 198,
+			77, 64, 84, 36, 243, 128, 20, 11, 136, 8, 195, 165, 14, 4, 20, 5, 18, 20, 13, 202, 44, 243, 147, 21, 37, 129, 80, 244, 137, 20,
+			20, 9, 198, 52, 17, 206, 21, 50, 84, 20, 9, 198, 28, 20, 207, 48, 147, 128, 20, 9, 198, 65, 84, 137, 80, 19, 128, 20, 13, 1,
+			37, 48, 51, 39, 89, 6, 36, 50, 72, 0, 27, 0, 10, 199, 53, 84, 201, 44, 243, 15, 28, 20, 10, 199, 25, 85, 21, 72, 243, 15,
+			28, 20, 10, 199, 21, 50, 201, 52, 243, 15, 28, 20, 10, 199, 16, 83, 132, 72, 243, 15, 28, 20, 9, 198, 77, 2, 79, 56, 84, 133,
+			20, 9, 198, 52, 20, 137, 56, 84, 133, 20, 9, 198, 29, 37, 78, 16, 84, 133, 20, 9, 198, 28, 20, 129, 28, 84, 133, 20, 9, 198,
+			24, 145, 213, 72, 84, 133, 20, 9, 198, 81, 38, 75, 44, 84, 137, 20, 9, 198, 76, 225, 82, 64, 84, 137, 20, 9, 198, 76, 180, 137,
+			88, 84, 137, 20, 10, 199, 48, 19, 135, 52, 241, 9, 28, 20, 10, 199, 24, 244, 133, 56, 83, 9, 28, 20, 10, 199, 32, 83, 22, 21,
+			66, 83, 44, 20, 10, 199, 20, 226, 204, 37, 66, 83, 44, 20, 10, 199, 20, 224, 217, 44, 194, 83, 44, 20, 10, 199, 8, 84, 130, 21,
+			34, 83, 44, 20, 12, 201, 81, 148, 15, 80, 82, 206, 36, 177, 82, 20, 15, 140, 16, 18, 15, 16, 195, 166, 4, 5, 21, 20, 9, 11,
+			20, 10, 199, 77, 65, 78, 60, 116, 129, 24, 20, 10, 199, 48, 19, 135, 4, 117, 9, 28, 20, 12, 137, 6, 195, 184, 4, 19, 5, 12,
+			1, 18, 20, 6, 1, 38, 114, 58, 0, 0, 9, 198, 36, 225, 21, 45, 67, 210, 20, 7, 196, 64, 241, 83, 36, 20, 13, 138, 195, 166,
+			11, 22, 9, 22, 1, 12, 5, 18, 20, 7, 196, 64, 19, 137, 44, 20, 11, 200, 64, 243, 148, 36, 98, 75, 5, 64, 20, 13, 1, 39,
+			35, 48, 39, 89, 47, 34, 6, 114, 83, 0, 0, 12, 201, 81, 33, 80, 4, 224, 84, 36, 243, 128, 20, 12, 201, 65, 35, 198, 4, 224,
+			84, 36, 243, 128, 20, 12, 201, 44, 243, 208, 21, 32, 84, 36, 243, 128, 20, 12, 201, 36, 228, 203, 72, 148, 20, 36, 243, 128, 20, 12,
+			201, 36, 226, 193, 72, 224, 84, 36, 243, 128, 20, 12, 201, 25, 37, 83, 81, 32, 84, 36, 243, 128, 20, 12, 201, 21, 96, 80, 61, 32,
+			84, 36, 243, 128, 20, 12, 201, 16, 84, 18, 5, 96, 84, 36, 243, 128, 20, 12, 201, 5, 36, 133, 77, 64, 84, 36, 243, 128, 20, 12,
+			201, 4, 97, 133, 45, 64, 84, 36, 243, 128, 20, 12, 201, 4, 48, 197, 65, 64, 84, 36, 243, 128, 20, 8, 197, 44, 20, 130, 60, 192,
+			20, 12, 201, 12, 19, 9, 24, 244, 142, 36, 83, 128, 20, 8, 197, 4, 180, 201, 4, 192, 20, 7, 65, 40, 57, 114, 86, 0, 0, 9,
+			198, 81, 148, 9, 76, 84, 128, 20, 9, 198, 80, 243, 5, 72, 84, 128, 20, 9, 198, 77, 81, 134, 48, 84, 128, 20, 9, 198, 77, 64,
+			71, 56, 84, 128, 20, 9, 198, 76, 84, 1, 72, 84, 128, 20, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 49, 82, 20, 9,
+			198, 52, 83, 129, 28, 84, 128, 20, 9, 198, 44, 243, 15, 72, 84, 128, 20, 9, 198, 36, 243, 137, 76, 84, 128, 20, 9, 198, 28, 19,
+			15, 56, 84, 128, 20, 9, 198, 21, 64, 66, 48, 84, 128, 20, 9, 198, 16, 19, 137, 76, 84, 128, 20, 9, 198, 5, 97, 82, 80, 84,
+			128, 20, 9, 198, 4, 67, 213, 12, 84, 128, 20, 12, 201, 44, 148, 211, 20, 210, 83, 76, 84, 137, 20, 13, 202, 77, 147, 139, 72, 85,
+			9, 77, 66, 83, 44, 20, 13, 202, 76, 84, 1, 72, 21, 9, 77, 66, 83, 44, 20, 13, 202, 52, 147, 137, 52, 19, 9, 77, 66, 83,
+			44, 20, 13, 202, 25, 32, 71, 52, 83, 148, 5, 34, 83, 44, 20, 13, 202, 24, 147, 1, 80, 83, 9, 77, 66, 83, 44, 20, 13, 202,
+			16, 242, 213, 52, 83, 148, 5, 34, 83, 44, 20, 13, 202, 5, 34, 201, 80, 82, 212, 60, 226, 83, 44, 20, 9, 198, 16, 148, 137, 28,
+			83, 148, 20, 0, 12, 201, 44, 243, 131, 20, 229, 18, 5, 67, 210, 20, 10, 199, 44, 244, 205, 60, 195, 199, 36, 20, 12, 201, 4, 32,
+			146, 21, 98, 65, 80, 147, 206, 20, 10, 199, 36, 225, 22, 20, 225, 9, 28, 20, 10, 199, 104, 243, 204, 60, 114, 83, 44, 20, 10, 199,
+			24, 244, 133, 57, 50, 83, 44, 20, 10, 199, 9, 84, 141, 21, 50, 83, 44, 20, 9, 198, 53, 149, 15, 52, 19, 137, 20, 9, 198, 104,
+			147, 206, 37, 51, 69, 20, 10, 199, 36, 229, 5, 56, 64, 78, 80, 20, 10, 199, 5, 4, 5, 48, 192, 78, 80, 20, 15, 1, 42, 6,
+			35, 89, 72, 110, 34, 4, 37, 89, 81, 0, 27, 0, 19, 72, 8, 82, 71, 56, 85, 4, 20, 160, 71, 36, 68, 36, 72, 35, 57, 0,
+			66, 13, 138, 195, 166, 19, 20, 5, 20, 9, 19, 5, 18, 20, 7, 196, 49, 84, 9, 56, 20, 11, 200, 44, 243, 148, 72, 243, 12, 4,
+			32, 20, 11, 200, 36, 224, 67, 12, 84, 20, 4, 32, 20, 8, 1, 43, 48, 55, 40, 89, 0, 0, 12, 201, 52, 19, 137, 65, 83, 1,
+			80, 244, 128, 20, 12, 201, 44, 243, 80, 72, 147, 65, 80, 244, 128, 20, 12, 201, 44, 148, 143, 65, 32, 75, 80, 244, 128, 20, 8, 197,
+			8, 81, 21, 36, 224, 67, 12, 201, 81, 32, 78, 76, 101, 78, 16, 84, 128, 20, 12, 201, 77, 147, 139, 72, 243, 137, 76, 84, 128, 20,
+			8, 197, 76, 145, 206, 21, 32, 20, 12, 201, 52, 18, 193, 16, 19, 73, 76, 84, 128, 20, 12, 201, 44, 243, 132, 37, 66, 79, 56, 84,
+			128, 20, 12, 201, 44, 195, 210, 60, 99, 210, 52, 84, 128, 20, 12, 201, 44, 192, 83, 76, 145, 137, 12, 84, 128, 20, 8, 197, 33, 145,
+			18, 21, 32, 20, 8, 197, 25, 84, 142, 21, 32, 20, 12, 201, 20, 180, 212, 72, 21, 129, 28, 84, 128, 20, 12, 201, 77, 64, 84, 37,
+			53, 9, 44, 84, 128, 20, 12, 201, 76, 179, 204, 5, 53, 9, 44, 84, 128, 20, 12, 201, 76, 19, 135, 88, 147, 137, 44, 84, 128, 20,
+			12, 201, 60, 36, 212, 21, 68, 137, 44, 84, 128, 20, 12, 201, 4, 194, 207, 32, 243, 9, 44, 84, 128, 20, 8, 197, 8, 81, 21, 36,
+			224, 20, 11, 136, 13, 25, 24, 195, 184, 4, 5, 13, 20, 8, 197, 48, 147, 133, 4, 192, 20, 8, 197, 48, 16, 137, 4, 192, 20, 12,
+			201, 65, 35, 212, 84, 33, 82, 4, 228, 192, 20, 7, 65, 44, 49, 113, 12, 0, 0, 9, 198, 56, 21, 137, 28, 84, 128, 20, 9, 198,
+			16, 82, 207, 72, 84, 128, 20, 13, 202, 44, 147, 133, 76, 147, 204, 60, 114, 83, 44, 20, 12, 201, 72, 85, 137, 76, 147, 206, 37, 51,
+			69, 20, 9, 198, 76, 180, 137, 8, 83, 148, 20, 9, 198, 61, 4, 15, 56, 83, 148, 20, 9, 198, 25, 33, 75, 88, 83, 148, 20, 14,
+			139, 195, 166, 11, 22, 9, 22, 1, 12, 5, 14, 19, 20, 9, 198, 41, 80, 137, 48, 20, 128, 20, 0, 9, 67, 28, 149, 128, 81, 6,
+			37, 0, 10, 199, 44, 243, 132, 20, 228, 207, 72, 20, 16, 141, 7, 18, 195, 184, 14, 12, 1, 14, 4, 9, 19, 5, 18, 20, 9, 198,
+			32, 81, 197, 52, 243, 137, 20, 9, 198, 76, 192, 86, 36, 225, 5, 20, 14, 139, 195, 166, 11, 22, 9, 22, 1, 12, 5, 14, 20, 20,
+			10, 199, 81, 34, 75, 61, 64, 71, 20, 20, 0, 11, 200, 81, 32, 78, 77, 2, 82, 21, 32, 20, 11, 200, 81, 32, 78, 76, 97, 82,
+			21, 32, 20, 11, 200, 76, 19, 139, 80, 147, 206, 21, 32, 20, 11, 200, 64, 20, 129, 29, 32, 70, 21, 32, 20, 15, 204, 61, 1, 82,
+			5, 66, 79, 56, 19, 9, 76, 84, 128, 20, 11, 200, 60, 34, 133, 45, 66, 86, 21, 32, 20, 11, 200, 44, 147, 15, 52, 85, 18, 21,
+			32, 20, 11, 200, 36, 229, 5, 73, 97, 78, 21, 32, 20, 11, 200, 28, 20, 142, 37, 51, 206, 21, 32, 20, 11, 200, 77, 147, 66, 36,
+			245, 9, 76, 176, 20, 11, 200, 44, 148, 137, 8, 21, 9, 76, 176, 20, 11, 200, 20, 226, 71, 52, 21, 9, 76, 176, 20, 11, 200, 4,
+			193, 77, 4, 227, 137, 76, 176, 20, 15, 204, 64, 20, 140, 4, 209, 78, 80, 20, 137, 44, 84, 128, 20, 7, 196, 77, 67, 205, 36, 20,
+			11, 200, 65, 35, 214, 36, 228, 201, 4, 224, 20, 11, 200, 9, 32, 78, 16, 84, 201, 4, 224, 20, 9, 198, 64, 20, 148, 37, 48, 78,
+			21, 11, 200, 44, 21, 5, 28, 244, 137, 4, 192, 20, 14, 1, 47, 89, 81, 51, 114, 89, 72, 34, 35, 37, 0, 27, 0, 12, 201, 56,
+			243, 69, 56, 179, 1, 80, 244, 128, 20, 12, 201, 4, 178, 213, 53, 83, 1, 80, 244, 128, 20, 12, 201, 76, 243, 9, 16, 20, 137, 76,
+			84, 128, 20, 12, 201, 76, 82, 213, 48, 20, 137, 76, 84, 128, 20, 12, 201, 72, 82, 207, 28, 227, 211, 12, 84, 128, 20, 12, 201, 52,
+			147, 9, 80, 20, 137, 76, 84, 128, 20, 12, 201, 44, 243, 139, 72, 85, 9, 76, 84, 128, 20, 12, 201, 36, 65, 78, 80, 145, 137, 12,
+			84, 128, 20, 8, 197, 32, 19, 22, 21, 32, 20, 8, 197, 24, 195, 210, 21, 32, 20, 8, 197, 65, 35, 211, 37, 64, 20, 8, 197, 64,
+			192, 75, 5, 64, 20, 6, 65, 48, 109, 55, 0, 10, 67, 33, 99, 210, 84, 6, 114, 34, 0, 0, 9, 198, 52, 19, 20, 61, 49, 64,
+			20, 9, 198, 16, 144, 77, 4, 229, 0, 20, 11, 70, 92, 130, 80, 12, 244, 132, 21, 0, 10, 0, 9, 198, 77, 68, 153, 28, 84, 137,
+			20, 10, 199, 76, 179, 205, 4, 113, 82, 36, 20, 10, 199, 64, 20, 134, 84, 209, 82, 36, 20, 14, 203, 20, 193, 75, 81, 35, 211, 80,
+			21, 9, 76, 176, 20, 0, 9, 198, 44, 243, 132, 37, 67, 210, 20, 9, 198, 25, 83, 132, 5, 67, 210, 20, 9, 198, 16, 146, 212, 5,
+			67, 210, 20, 9, 198, 8, 85, 129, 81, 35, 206, 20, 11, 200, 77, 80, 147, 45, 34, 66, 21, 32, 20, 11, 200, 65, 35, 211, 45, 34,
+			66, 21, 32, 20, 12, 137, 1, 6, 8, 195, 166, 14, 7, 9, 7, 20, 11, 200, 52, 21, 18, 36, 20, 139, 5, 64, 20, 9, 68, 13,
+			148, 149, 76, 21, 0, 10, 0, 12, 201, 8, 84, 212, 36, 19, 9, 80, 85, 0, 69, 12, 201, 85, 53, 1, 8, 147, 9, 80, 85, 0,
+			20, 12, 201, 76, 83, 147, 84, 19, 9, 80, 85, 0, 20, 12, 201, 36, 229, 129, 48, 145, 9, 80, 85, 0, 20, 12, 201, 36, 211, 79,
+			8, 147, 9, 80, 85, 0, 20, 12, 201, 36, 195, 5, 28, 19, 9, 80, 85, 0, 20, 12, 201, 8, 84, 212, 36, 19, 9, 80, 85, 0,
+			20, 12, 201, 4, 224, 201, 20, 227, 137, 80, 85, 0, 20, 12, 201, 77, 65, 87, 5, 33, 5, 77, 49, 64, 20, 9, 198, 25, 33, 75,
+			88, 83, 147, 20, 9, 198, 77, 80, 147, 80, 19, 147, 20, 6, 65, 52, 109, 65, 0, 0, 9, 198, 60, 181, 1, 28, 243, 128, 20, 9,
+			198, 88, 84, 147, 36, 243, 128, 20, 9, 198, 61, 96, 84, 36, 243, 128, 20, 9, 198, 24, 148, 211, 36, 243, 128, 20, 6, 195, 52, 83,
+			147, 8, 0, 10, 199, 52, 147, 133, 72, 19, 15, 28, 20, 10, 199, 45, 33, 77, 48, 243, 15, 28, 20, 10, 199, 45, 83, 20, 85, 35,
+			9, 28, 20, 10, 199, 28, 83, 5, 4, 117, 9, 28, 20, 10, 199, 80, 83, 210, 21, 66, 83, 44, 20, 10, 199, 80, 19, 201, 77, 66,
+			83, 44, 20, 10, 199, 76, 241, 137, 77, 66, 83, 44, 20, 10, 199, 56, 83, 204, 37, 66, 83, 44, 20, 10, 199, 56, 82, 210, 61, 66,
+			83, 44, 20, 10, 199, 52, 243, 137, 77, 66, 83, 44, 20, 10, 199, 20, 193, 75, 81, 34, 83, 44, 20, 10, 199, 4, 224, 76, 101, 66,
+			83, 44, 20, 10, 199, 44, 20, 148, 60, 116, 129, 24, 20, 0, 11, 200, 20, 194, 77, 36, 224, 84, 61, 32, 20, 14, 68, 92, 17, 207,
+			56, 84, 110, 81, 6, 114, 68, 0, 20, 9, 198, 64, 192, 83, 81, 35, 206, 20, 15, 204, 29, 32, 77, 52, 21, 9, 44, 19, 9, 80,
+			85, 0, 20, 12, 201, 33, 145, 210, 61, 50, 207, 64, 148, 203, 20, 7, 196, 60, 35, 9, 44, 20, 11, 200, 64, 21, 18, 36, 20, 139,
+			5, 64, 20, 0, 8, 197, 104, 243, 204, 60, 112, 20, 12, 201, 81, 32, 78, 76, 192, 84, 36, 243, 128, 20, 12, 201, 77, 1, 75, 84,
+			192, 84, 36, 243, 128, 20, 12, 201, 72, 84, 197, 73, 96, 84, 36, 243, 128, 20, 12, 201, 65, 35, 199, 72, 84, 211, 36, 243, 128, 20,
+			12, 201, 64, 84, 134, 61, 32, 84, 36, 243, 128, 20, 12, 201, 60, 36, 197, 73, 96, 84, 36, 243, 128, 20, 12, 201, 48, 19, 69, 57,
+			64, 84, 36, 243, 128, 20, 12, 201, 45, 83, 13, 36, 224, 84, 36, 243, 128, 20, 12, 201, 44, 243, 147, 84, 212, 20, 36, 243, 128, 20,
+			12, 201, 44, 243, 142, 61, 64, 84, 36, 243, 128, 20, 12, 201, 44, 243, 80, 5, 32, 84, 36, 243, 128, 20, 12, 201, 44, 243, 77, 85,
+			64, 84, 36, 243, 128, 20, 12, 201, 44, 243, 66, 36, 224, 84, 36, 243, 128, 20, 12, 201, 44, 19, 11, 84, 192, 84, 36, 243, 128, 20,
+			12, 201, 36, 229, 5, 29, 32, 84, 36, 243, 128, 20, 12, 201, 36, 228, 208, 37, 32, 84, 36, 243, 128, 20, 12, 201, 36, 225, 9, 28,
+			224, 84, 36, 243, 128, 20, 12, 201, 29, 32, 84, 84, 192, 84, 36, 243, 128, 20, 12, 201, 20, 180, 193, 49, 64, 84, 36, 243, 128, 20,
+			12, 201, 16, 84, 212, 36, 224, 84, 36, 243, 128, 20, 12, 201, 16, 84, 203, 72, 148, 20, 36, 243, 128, 20, 12, 201, 16, 84, 197, 73,
+			64, 84, 36, 243, 128, 20, 12, 201, 16, 84, 15, 73, 64, 84, 36, 243, 128, 20, 12, 201, 16, 82, 204, 36, 224, 84, 36, 243, 128, 20,
+			12, 201, 8, 19, 12, 61, 64, 84, 36, 243, 128, 20, 12, 201, 5, 69, 5, 77, 64, 84, 36, 243, 128, 20, 12, 201, 5, 4, 18, 60,
+			32, 84, 36, 243, 128, 20, 12, 201, 4, 36, 197, 57, 64, 84, 36, 243, 128, 20, 12, 201, 84, 226, 70, 61, 35, 73, 80, 85, 0, 20,
+			12, 201, 72, 17, 9, 44, 19, 9, 80, 85, 0, 20, 12, 201, 44, 20, 1, 8, 147, 9, 80, 85, 0, 20, 12, 201, 32, 243, 79, 28,
+			83, 137, 80, 85, 0, 20, 12, 201, 72, 81, 133, 45, 67, 210, 37, 83, 64, 20, 12, 201, 65, 35, 214, 37, 51, 210, 37, 83, 64, 20,
+			12, 201, 45, 33, 77, 5, 67, 210, 37, 83, 64, 20, 8, 197, 44, 243, 15, 56, 144, 20, 12, 201, 81, 32, 78, 77, 3, 210, 80, 21,
+			0, 20, 9, 198, 36, 212, 5, 16, 19, 147, 20, 6, 65, 56, 109, 50, 0, 9, 5, 95, 48, 1, 14, 4, 114, 0, 0, 10, 135, 6,
+			21, 18, 9, 195, 184, 19, 20, 9, 198, 44, 193, 82, 21, 50, 64, 20, 9, 198, 40, 19, 15, 85, 50, 64, 20, 13, 202, 28, 20, 212,
+			72, 244, 203, 61, 2, 83, 44, 20, 13, 202, 20, 193, 75, 81, 35, 204, 101, 66, 83, 44, 20, 13, 202, 4, 229, 1, 28, 243, 137, 77,
+			66, 83, 44, 20, 13, 202, 4, 224, 75, 72, 243, 137, 77, 66, 83, 44, 20, 9, 198, 36, 225, 5, 12, 83, 148, 20, 9, 198, 20, 179,
+			1, 80, 19, 148, 20, 0, 11, 136, 16, 18, 5, 20, 9, 195, 184, 19, 20, 12, 137, 9, 14, 6, 5, 18, 9, 195, 184, 18, 20, 10,
+			199, 76, 213, 75, 44, 84, 197, 72, 20, 10, 199, 48, 85, 19, 36, 225, 9, 28, 20, 10, 199, 76, 195, 214, 4, 178, 83, 44, 20, 10,
+			199, 72, 148, 5, 57, 50, 83, 44, 20, 10, 199, 28, 83, 203, 20, 210, 83, 44, 20, 10, 199, 21, 2, 68, 20, 210, 83, 44, 20, 10,
+			199, 20, 196, 193, 77, 50, 83, 44, 20, 10, 199, 52, 83, 15, 16, 146, 197, 72, 20, 9, 198, 77, 97, 67, 37, 51, 69, 20, 9, 198,
+			76, 192, 86, 37, 51, 69, 20, 12, 201, 44, 243, 4, 36, 225, 197, 57, 49, 82, 20, 12, 201, 44, 243, 132, 37, 66, 79, 56, 19, 0,
+			20, 10, 199, 52, 20, 141, 20, 192, 68, 20, 20, 0, 12, 137, 13, 9, 14, 21, 20, 9, 195, 184, 19, 20, 12, 137, 13, 5, 12, 15,
+			4, 9, 195, 184, 19, 20, 13, 138, 5, 11, 19, 20, 5, 18, 9, 195, 184, 18, 20, 11, 200, 44, 147, 133, 76, 147, 204, 60, 112, 20,
+			15, 204, 81, 32, 78, 77, 3, 1, 57, 64, 84, 36, 243, 128, 20, 15, 204, 36, 228, 212, 73, 83, 69, 57, 64, 84, 36, 243, 128, 20,
+			15, 204, 36, 211, 65, 81, 34, 75, 84, 192, 84, 36, 243, 128, 20, 15, 204, 76, 83, 148, 36, 209, 78, 80, 19, 9, 80, 85, 0, 20,
+			15, 204, 72, 84, 208, 20, 181, 1, 8, 147, 9, 80, 85, 0, 20, 11, 200, 52, 241, 21, 48, 84, 137, 56, 112, 20, 11, 200, 4, 212,
+			21, 80, 84, 137, 56, 112, 20, 11, 200, 88, 148, 148, 84, 244, 197, 72, 144, 20, 11, 200, 65, 35, 212, 20, 147, 146, 36, 112, 20, 11,
+			200, 77, 80, 129, 72, 181, 9, 76, 176, 20, 11, 200, 65, 32, 71, 52, 21, 9, 76, 176, 20, 11, 200, 33, 148, 15, 80, 85, 9, 76,
+			176, 20, 11, 200, 21, 96, 78, 28, 83, 9, 76, 176, 20, 11, 200, 13, 148, 18, 36, 245, 9, 76, 176, 20, 9, 198, 41, 85, 133, 56,
+			147, 0, 20, 9, 198, 24, 241, 5, 72, 19, 0, 20, 0, 10, 135, 6, 1, 18, 3, 195, 184, 18, 20, 8, 197, 4, 211, 133, 76, 144,
+			20, 8, 197, 28, 226, 69, 72, 144, 20, 16, 205, 20, 180, 208, 72, 84, 211, 36, 243, 137, 77, 66, 83, 44, 20, 8, 197, 84, 224, 201,
+			4, 192, 20, 5, 65, 60, 39, 0, 0, 11, 136, 4, 18, 5, 19, 19, 195, 184, 18, 20, 9, 198, 61, 0, 67, 37, 65, 84, 20, 9,
+			198, 85, 53, 82, 64, 84, 128, 20, 9, 198, 72, 85, 83, 76, 84, 128, 20, 9, 198, 61, 0, 76, 37, 49, 82, 20, 9, 198, 60, 33,
+			21, 12, 84, 128, 20, 9, 198, 52, 245, 83, 76, 84, 128, 20, 9, 198, 44, 20, 21, 56, 84, 128, 20, 9, 198, 36, 229, 21, 8, 84,
+			128, 20, 9, 198, 36, 229, 15, 56, 84, 128, 20, 9, 198, 36, 225, 21, 12, 84, 128, 20, 9, 198, 8, 20, 213, 56, 84, 128, 20, 9,
+			198, 4, 195, 15, 44, 84, 128, 20, 11, 200, 61, 0, 153, 28, 113, 76, 36, 112, 20, 13, 202, 45, 34, 77, 36, 227, 204, 60, 114, 83,
+			44, 20, 13, 202, 32, 84, 144, 21, 67, 204, 60, 114, 83, 44, 20, 12, 201, 32, 148, 212, 61, 34, 67, 37, 51, 69, 20, 12, 201, 21,
+			81, 1, 36, 211, 206, 37, 51, 69, 20, 12, 201, 20, 179, 5, 45, 66, 67, 37, 51, 69, 20, 12, 201, 8, 82, 1, 88, 147, 210, 37,
+			51, 69, 20, 12, 201, 4, 115, 143, 77, 66, 67, 37, 51, 69, 20, 6, 195, 61, 0, 76, 20, 10, 1, 61, 55, 6, 37, 65, 36, 86,
+			0, 0, 19, 71, 48, 81, 197, 56, 65, 82, 76, 55, 36, 81, 6, 109, 50, 72, 114, 89, 0, 9, 198, 17, 85, 133, 80, 147, 133, 20,
+			10, 199, 13, 146, 204, 61, 68, 143, 56, 20, 10, 199, 77, 84, 16, 72, 147, 69, 72, 20, 10, 199, 44, 243, 80, 72, 147, 69, 72, 20,
+			10, 199, 36, 225, 140, 4, 211, 69, 72, 20, 10, 199, 5, 37, 9, 45, 83, 5, 72, 20, 14, 203, 44, 20, 146, 36, 84, 133, 52, 17,
+			197, 72, 144, 20, 10, 199, 52, 147, 12, 20, 227, 137, 20, 20, 10, 199, 8, 20, 201, 48, 146, 213, 52, 20, 10, 199, 44, 243, 147, 36,
+			194, 85, 52, 20, 9, 198, 80, 16, 200, 37, 51, 69, 20, 9, 198, 52, 20, 152, 37, 51, 69, 20, 9, 198, 16, 17, 1, 37, 51, 69,
+			20, 12, 201, 44, 243, 148, 36, 225, 78, 80, 19, 0, 20, 0, 11, 200, 76, 147, 143, 48, 241, 201, 76, 176, 20, 11, 200, 64, 21, 15,
+			48, 241, 201, 76, 176, 20, 11, 200, 60, 226, 207, 48, 241, 201, 76, 176, 20, 11, 200, 56, 244, 141, 4, 227, 137, 76, 176, 20, 11, 200,
+			44, 21, 5, 44, 85, 9, 76, 176, 20, 11, 200, 36, 66, 79, 52, 21, 9, 76, 176, 20, 11, 200, 24, 243, 143, 48, 241, 201, 76, 176,
+			20, 11, 200, 24, 193, 71, 52, 21, 9, 76, 176, 20, 9, 198, 36, 208, 133, 12, 147, 0, 20, 11, 200, 45, 38, 80, 80, 241, 210, 4,
+			96, 20, 0, 12, 201, 72, 146, 207, 12, 129, 84, 80, 84, 128, 20, 12, 201, 44, 21, 5, 28, 244, 137, 76, 84, 128, 20, 12, 201, 36,
+			229, 5, 73, 1, 76, 48, 84, 128, 20, 12, 201, 12, 130, 70, 24, 243, 142, 36, 84, 128, 20, 12, 201, 12, 83, 148, 72, 145, 149, 28,
+			84, 128, 20, 12, 201, 56, 244, 212, 4, 193, 201, 44, 84, 128, 20, 6, 65, 64, 48, 36, 0, 15, 1, 64, 89, 50, 4, 110, 12, 71,
+			36, 55, 6, 110, 12, 0, 0, 18, 70, 12, 128, 78, 76, 243, 128, 91, 57, 112, 50, 89, 6, 114, 68, 0, 20, 9, 198, 64, 243, 25,
+			28, 243, 128, 20, 9, 198, 61, 37, 15, 28, 243, 128, 20, 9, 198, 61, 2, 78, 36, 243, 128, 20, 9, 198, 61, 3, 211, 77, 83, 64,
+			20, 9, 198, 72, 82, 214, 37, 50, 84, 20, 9, 198, 65, 70, 65, 48, 147, 128, 20, 12, 201, 64, 20, 129, 48, 193, 76, 37, 51, 69,
+			20, 12, 201, 56, 21, 9, 60, 224, 76, 37, 51, 69, 20, 12, 201, 44, 19, 142, 36, 32, 76, 37, 51, 69, 20, 9, 198, 9, 33, 84,
+			4, 115, 128, 20, 9, 198, 65, 33, 83, 20, 229, 0, 20, 9, 198, 53, 149, 15, 52, 19, 128, 21, 11, 70, 64, 20, 211, 92, 244, 132,
+			21, 0, 10, 0, 11, 67, 76, 145, 192, 89, 35, 57, 0, 14, 45, 17, 67, 76, 145, 192, 89, 37, 15, 84, 110, 0, 81, 104, 118, 97,
+			100, 32, 17, 67, 76, 145, 192, 89, 37, 15, 65, 35, 57, 0, 81, 109, 105, 103, 32, 10, 199, 24, 195, 210, 4, 116, 129, 52, 20, 9,
+			198, 64, 193, 84, 80, 84, 133, 20, 9, 198, 9, 34, 76, 48, 84, 133, 20, 9, 198, 4, 64, 80, 80, 84, 133, 20, 9, 198, 77, 2,
+			78, 16, 84, 137, 20, 9, 198, 52, 83, 129, 28, 84, 137, 20, 10, 199, 65, 35, 211, 12, 83, 137, 20, 20, 6, 195, 84, 226, 84, 20,
+			14, 203, 12, 132, 137, 77, 66, 65, 57, 50, 1, 88, 224, 20, 6, 195, 76, 145, 192, 72, 0, 9, 198, 45, 84, 148, 37, 49, 82, 20,
+			0, 12, 201, 81, 34, 86, 36, 19, 9, 80, 85, 0, 20, 12, 201, 76, 82, 211, 84, 19, 9, 80, 85, 0, 20, 12, 201, 72, 83, 1,
+			80, 149, 137, 80, 85, 0, 20, 12, 201, 56, 245, 1, 8, 147, 9, 80, 85, 0, 20, 12, 201, 53, 84, 201, 44, 19, 9, 80, 85, 0,
+			20, 12, 201, 17, 84, 129, 8, 147, 9, 80, 85, 0, 20, 10, 135, 16, 12, 195, 166, 4, 5, 18, 20, 8, 197, 77, 69, 80, 36, 64,
+			20, 12, 201, 36, 229, 5, 73, 33, 71, 57, 83, 64, 20, 12, 201, 44, 20, 18, 36, 99, 204, 37, 83, 64, 20, 12, 201, 36, 229, 5,
+			72, 209, 68, 37, 83, 64, 20, 12, 201, 4, 229, 5, 64, 83, 132, 37, 83, 64, 20, 6, 65, 68, 49, 40, 0, 0, 12, 201, 65, 35,
+			212, 60, 179, 204, 48, 84, 133, 20, 12, 201, 16, 148, 195, 37, 3, 9, 56, 84, 133, 20, 12, 201, 52, 20, 139, 76, 180, 137, 28, 84,
+			137, 20, 9, 198, 88, 20, 137, 4, 229, 0, 20, 0, 10, 199, 76, 225, 68, 44, 84, 133, 72, 20, 12, 201, 72, 21, 9, 60, 224, 76,
+			37, 49, 82, 20, 12, 201, 64, 84, 147, 60, 224, 76, 37, 49, 82, 20, 12, 201, 64, 20, 129, 48, 193, 76, 37, 49, 82, 20, 12, 201,
+			52, 20, 135, 36, 224, 76, 37, 49, 82, 20, 12, 201, 45, 34, 77, 36, 224, 76, 37, 49, 82, 20, 12, 201, 36, 229, 5, 72, 224, 76,
+			37, 49, 82, 20, 10, 199, 20, 180, 208, 48, 244, 133, 72, 20, 10, 199, 76, 83, 73, 61, 66, 83, 44, 20, 10, 199, 61, 53, 9, 56,
+			66, 83, 44, 20, 10, 199, 20, 97, 77, 21, 34, 83, 44, 20, 10, 199, 17, 32, 86, 36, 66, 83, 44, 20, 10, 199, 16, 145, 1, 45,
+			66, 83, 44, 20, 10, 199, 9, 84, 149, 56, 66, 83, 44, 20, 10, 199, 4, 181, 129, 52, 20, 137, 56, 20, 12, 201, 32, 84, 142, 36,
+			225, 197, 57, 49, 82, 20, 10, 199, 72, 17, 9, 60, 116, 129, 24, 20, 10, 199, 44, 19, 12, 36, 116, 129, 24, 20, 10, 199, 72, 80,
+			197, 57, 49, 78, 80, 20, 10, 199, 44, 243, 135, 73, 81, 78, 80, 20, 0, 9, 198, 88, 144, 146, 5, 67, 210, 20, 15, 204, 36, 228,
+			212, 73, 83, 69, 57, 64, 76, 37, 53, 0, 20, 9, 198, 28, 197, 75, 4, 115, 206, 20, 15, 204, 77, 147, 139, 72, 240, 217, 44, 195,
+			212, 72, 243, 128, 20, 14, 68, 76, 19, 15, 56, 89, 110, 55, 6, 114, 68, 0, 20, 9, 198, 72, 83, 1, 80, 147, 206, 20, 10, 135,
+			13, 195, 166, 14, 1, 4, 5, 20, 6, 195, 28, 17, 197, 20, 0, 9, 198, 104, 83, 15, 80, 148, 203, 20, 9, 198, 77, 147, 143, 16,
+			148, 203, 20, 9, 198, 64, 192, 83, 80, 148, 203, 20, 9, 198, 52, 83, 15, 16, 148, 203, 20, 9, 198, 36, 66, 79, 80, 148, 203, 20,
+			9, 198, 20, 192, 83, 80, 148, 203, 20, 8, 197, 80, 84, 141, 36, 224, 20, 8, 197, 52, 244, 137, 4, 224, 21, 6, 65, 72, 109, 34,
+			0, 0, 13, 202, 84, 226, 70, 61, 35, 73, 77, 66, 83, 44, 20, 13, 202, 77, 65, 82, 20, 243, 69, 81, 34, 83, 44, 20, 13, 202,
+			44, 243, 134, 61, 35, 73, 77, 66, 83, 44, 20, 13, 202, 44, 20, 9, 80, 19, 9, 77, 66, 83, 44, 20, 13, 202, 36, 229, 5, 72,
+			147, 73, 77, 66, 83, 44, 20, 13, 202, 24, 83, 142, 61, 50, 193, 56, 66, 83, 44, 20, 13, 202, 12, 83, 148, 72, 19, 9, 77, 66,
+			83, 44, 20, 9, 198, 16, 84, 15, 56, 83, 148, 20, 13, 70, 13, 35, 209, 84, 148, 192, 21, 102, 114, 0, 10, 8, 67, 48, 243, 203,
+			21, 0, 10, 0, 10, 199, 80, 16, 149, 48, 21, 15, 72, 20, 10, 199, 36, 226, 1, 48, 21, 15, 72, 20, 12, 201, 16, 83, 79, 57,
+			53, 18, 5, 67, 210, 20, 9, 198, 80, 244, 15, 48, 241, 201, 20, 9, 198, 76, 86, 15, 48, 241, 201, 20, 9, 198, 9, 38, 79, 48,
+			241, 201, 20, 12, 201, 72, 21, 9, 32, 16, 137, 80, 147, 206, 20, 12, 201, 65, 35, 211, 80, 149, 21, 80, 147, 206, 20, 12, 201, 44,
+			243, 147, 80, 149, 21, 80, 147, 206, 20, 12, 201, 44, 243, 147, 36, 115, 129, 80, 147, 206, 20, 12, 201, 36, 226, 193, 52, 147, 129, 80,
+			147, 206, 20, 12, 201, 36, 195, 21, 52, 147, 129, 80, 147, 206, 20, 12, 201, 24, 144, 146, 36, 195, 1, 80, 147, 206, 20, 10, 199, 52,
+			19, 20, 21, 50, 83, 44, 20, 10, 199, 72, 82, 214, 37, 33, 78, 80, 20, 10, 199, 44, 243, 80, 21, 65, 78, 80, 20, 10, 199, 72,
+			84, 208, 20, 181, 1, 8, 20, 9, 198, 25, 84, 197, 48, 17, 197, 20, 9, 198, 4, 97, 149, 80, 17, 197, 20, 8, 67, 80, 129, 64,
+			21, 0, 10, 0, 7, 196, 53, 147, 211, 20, 20, 7, 196, 64, 147, 143, 48, 20, 12, 201, 64, 20, 129, 48, 192, 75, 80, 148, 203, 20,
+			12, 201, 56, 245, 133, 48, 194, 83, 80, 148, 203, 20, 12, 201, 52, 241, 5, 72, 226, 83, 80, 148, 203, 20, 12, 201, 52, 20, 207, 12,
+			130, 83, 80, 148, 203, 20, 12, 201, 44, 243, 77, 84, 226, 83, 80, 148, 203, 20, 12, 201, 32, 148, 212, 61, 34, 83, 80, 148, 203, 20,
+			12, 201, 25, 148, 201, 60, 115, 143, 52, 148, 203, 20, 11, 200, 65, 35, 206, 60, 210, 78, 4, 192, 20, 9, 198, 5, 4, 5, 48, 192,
+			66, 20, 0, 8, 197, 81, 34, 66, 85, 64, 20, 8, 197, 77, 64, 82, 85, 64, 20, 12, 201, 65, 35, 208, 61, 37, 9, 60, 225, 76,
+			20, 8, 197, 20, 229, 18, 21, 32, 20, 16, 205, 25, 83, 132, 4, 209, 78, 80, 19, 9, 77, 66, 83, 44, 20, 8, 197, 77, 2, 78,
+			4, 192, 20, 8, 197, 64, 197, 82, 4, 192, 20, 8, 197, 28, 195, 194, 4, 192, 20, 6, 65, 76, 36, 89, 0, 0, 13, 202, 53, 83,
+			20, 37, 3, 9, 44, 21, 15, 72, 20, 15, 140, 4, 9, 19, 3, 9, 16, 12, 9, 14, 195, 166, 18, 20, 12, 201, 77, 0, 83, 80,
+			144, 201, 80, 85, 0, 20, 11, 200, 77, 0, 84, 36, 84, 137, 56, 112, 20, 9, 198, 77, 0, 84, 36, 84, 128, 20, 10, 199, 77, 0,
+			78, 45, 83, 5, 72, 20, 9, 198, 77, 0, 76, 36, 84, 133, 20, 9, 198, 77, 0, 68, 76, 84, 128, 20, 13, 202, 76, 84, 137, 21,
+			4, 143, 17, 80, 197, 72, 20, 12, 201, 77, 0, 82, 76, 243, 77, 20, 194, 71, 20, 9, 198, 77, 0, 78, 36, 243, 0, 20, 11, 200,
+			77, 0, 83, 52, 241, 9, 76, 176, 20, 9, 198, 77, 0, 82, 80, 19, 128, 20, 8, 197, 77, 0, 71, 5, 64, 20, 0, 10, 199, 45,
+			99, 212, 21, 34, 78, 28, 20, 10, 199, 28, 20, 132, 21, 34, 78, 28, 20, 10, 199, 17, 80, 140, 21, 34, 78, 28, 20, 18, 67, 48,
+			241, 192, 55, 114, 49, 6, 36, 50, 0, 44, 20, 81, 105, 110, 32, 0, 11, 200, 44, 244, 205, 21, 67, 204, 60, 112, 20, 11, 200, 56,
+			20, 131, 37, 52, 201, 77, 64, 20, 11, 200, 44, 192, 83, 76, 144, 201, 77, 64, 20, 13, 138, 16, 18, 195, 166, 3, 9, 19, 9, 15,
+			14, 20, 11, 200, 16, 148, 212, 36, 225, 214, 21, 32, 20, 7, 196, 45, 33, 79, 48, 20, 11, 200, 81, 148, 15, 48, 241, 201, 76, 176,
+			20, 11, 200, 77, 145, 137, 48, 149, 9, 76, 176, 20, 11, 200, 76, 84, 143, 48, 241, 201, 76, 176, 20, 11, 200, 21, 67, 143, 48, 241,
+			201, 76, 176, 20, 11, 200, 21, 2, 76, 21, 5, 9, 76, 176, 20, 11, 200, 9, 84, 135, 84, 225, 9, 76, 176, 20, 11, 200, 13, 84,
+			146, 36, 53, 76, 84, 208, 20, 11, 200, 80, 83, 80, 21, 33, 82, 21, 64, 20, 11, 200, 72, 84, 201, 28, 225, 82, 21, 64, 20, 11,
+			200, 72, 17, 134, 36, 225, 82, 21, 64, 20, 11, 200, 48, 19, 69, 48, 193, 82, 21, 64, 20, 11, 200, 36, 226, 193, 72, 225, 82, 21,
+			64, 20, 11, 200, 16, 148, 12, 60, 209, 82, 21, 64, 20, 11, 200, 16, 85, 1, 48, 161, 82, 21, 64, 20, 12, 137, 9, 14, 8, 195,
+			166, 18, 5, 14, 19, 20, 0, 8, 197, 88, 144, 146, 21, 32, 20, 8, 197, 76, 84, 150, 21, 32, 20, 9, 198, 32, 84, 129, 48, 66,
+			75, 20, 12, 201, 25, 148, 201, 60, 115, 143, 52, 146, 192, 20, 8, 197, 60, 181, 76, 5, 32, 20, 8, 197, 28, 20, 129, 57, 64, 20,
+			10, 69, 76, 84, 150, 21, 32, 21, 0, 10, 0, 9, 198, 76, 86, 15, 48, 241, 192, 20, 9, 198, 21, 67, 143, 48, 241, 192, 20, 9,
+			198, 81, 84, 130, 36, 225, 64, 20, 9, 198, 80, 84, 154, 36, 225, 64, 20, 9, 198, 24, 244, 134, 36, 225, 64, 20, 9, 198, 21, 50,
+			193, 64, 148, 212, 20, 13, 202, 76, 81, 9, 52, 83, 148, 21, 34, 78, 28, 20, 13, 202, 65, 35, 214, 36, 19, 148, 21, 34, 78, 28,
+			20, 12, 201, 48, 81, 19, 4, 113, 82, 36, 225, 5, 20, 6, 195, 84, 226, 75, 20, 9, 198, 80, 19, 135, 20, 229, 0, 20, 9, 198,
+			44, 20, 132, 36, 224, 76, 20, 0, 9, 198, 52, 19, 137, 13, 84, 133, 20, 10, 199, 72, 84, 197, 73, 98, 83, 80, 20, 10, 199, 12,
+			19, 22, 36, 226, 83, 80, 20, 10, 199, 28, 20, 212, 72, 243, 143, 52, 20, 14, 203, 76, 83, 22, 8, 147, 199, 72, 17, 137, 76, 176,
+			20, 10, 199, 80, 18, 211, 60, 227, 205, 36, 20, 10, 199, 44, 243, 135, 73, 81, 78, 76, 20, 0, 7, 196, 81, 83, 79, 72, 20, 7,
+			196, 80, 83, 143, 72, 20, 9, 198, 25, 83, 139, 80, 147, 206, 20, 9, 198, 25, 34, 75, 80, 147, 206, 20, 9, 198, 21, 33, 75, 80,
+			147, 206, 20, 11, 200, 76, 181, 129, 17, 35, 206, 21, 32, 20, 7, 196, 44, 243, 9, 44, 20, 11, 200, 44, 243, 77, 37, 69, 5, 57,
+			64, 20, 11, 200, 65, 32, 75, 80, 146, 193, 57, 64, 20, 11, 200, 5, 84, 203, 84, 197, 1, 57, 64, 20, 0, 8, 197, 8, 240, 137,
+			56, 80, 20, 13, 138, 195, 166, 18, 22, 195, 166, 18, 4, 9, 7, 20, 12, 201, 76, 224, 75, 44, 84, 193, 48, 145, 192, 20, 13, 138,
+			18, 5, 20, 6, 195, 166, 18, 4, 9, 7, 20, 12, 201, 60, 212, 212, 36, 195, 5, 48, 145, 192, 20, 12, 201, 60, 36, 212, 21, 35,
+			129, 76, 145, 192, 20, 13, 138, 2, 15, 4, 6, 195, 166, 18, 4, 9, 7, 20, 12, 201, 8, 148, 203, 61, 4, 5, 48, 145, 192, 20,
+			9, 198, 64, 21, 5, 80, 148, 203, 20, 9, 198, 44, 84, 129, 52, 148, 203, 20, 9, 198, 20, 212, 1, 80, 148, 203, 20, 9, 198, 17,
+			37, 73, 16, 148, 203, 20, 10, 69, 92, 147, 132, 61, 112, 21, 0, 10, 6, 65, 84, 40, 19, 0, 0, 9, 198, 5, 85, 15, 65, 50,
+			64, 20, 9, 198, 88, 149, 1, 48, 148, 212, 20, 13, 202, 88, 83, 148, 72, 147, 15, 45, 98, 83, 80, 20, 13, 202, 64, 84, 139, 85,
+			52, 201, 60, 226, 83, 80, 20, 13, 202, 36, 225, 5, 80, 84, 141, 36, 226, 83, 80, 20, 9, 198, 36, 65, 65, 48, 148, 212, 20, 13,
+			202, 25, 83, 139, 80, 147, 206, 4, 194, 83, 80, 20, 13, 202, 16, 242, 213, 52, 83, 148, 5, 34, 83, 80, 20, 14, 139, 195, 184, 13,
+			20, 195, 165, 12, 5, 12, 9, 7, 20, 14, 139, 20, 18, 25, 11, 6, 195, 166, 18, 4, 9, 7, 20, 14, 139, 19, 16, 1, 7, 6,
+			195, 166, 18, 4, 9, 7, 20, 14, 139, 19, 12, 1, 7, 6, 195, 166, 18, 4, 9, 7, 20, 14, 139, 19, 1, 14, 4, 6, 195, 166,
+			18, 4, 9, 7, 20, 14, 139, 16, 18, 9, 19, 22, 195, 166, 18, 4, 9, 7, 20, 14, 139, 15, 16, 19, 195, 166, 20, 20, 5, 12,
+			9, 7, 20, 14, 139, 15, 13, 19, 195, 166, 20, 20, 5, 12, 9, 7, 20, 14, 139, 15, 13, 7, 195, 166, 14, 7, 5, 12, 9, 7,
+			20, 9, 198, 5, 35, 79, 16, 145, 192, 20, 14, 139, 1, 14, 20, 195, 166, 14, 4, 5, 12, 9, 7, 20, 14, 139, 1, 6, 19, 195,
+			166, 20, 20, 5, 12, 9, 7, 20, 0, 18, 71, 72, 82, 137, 12, 84, 133, 72, 34, 36, 57, 37, 89, 6, 36, 114, 0, 10, 199, 29,
+			32, 77, 52, 241, 143, 56, 20, 12, 201, 36, 229, 5, 72, 161, 75, 80, 147, 206, 20, 15, 140, 22, 9, 4, 5, 18, 22, 195, 166, 18,
+			4, 9, 7, 20, 15, 140, 19, 20, 18, 1, 6, 22, 195, 166, 18, 4, 9, 7, 20, 15, 140, 11, 21, 14, 19, 20, 6, 195, 166, 18,
+			4, 9, 7, 20, 15, 140, 6, 15, 18, 19, 195, 184, 13, 13, 5, 12, 9, 7, 20, 15, 140, 6, 15, 18, 19, 13, 195, 166, 4, 5,
+			12, 9, 7, 20, 15, 140, 6, 15, 18, 6, 195, 166, 18, 4, 5, 12, 9, 7, 20, 10, 199, 88, 19, 149, 5, 66, 83, 44, 20, 10,
+			199, 80, 83, 12, 85, 34, 83, 44, 20, 10, 199, 72, 17, 129, 20, 194, 83, 44, 20, 10, 199, 65, 35, 211, 60, 66, 83, 44, 20, 10,
+			199, 64, 84, 137, 60, 66, 83, 44, 20, 10, 199, 45, 80, 137, 77, 66, 83, 44, 20, 10, 199, 21, 51, 212, 21, 34, 83, 44, 20, 10,
+			199, 17, 32, 75, 60, 226, 83, 44, 20, 10, 199, 5, 4, 137, 61, 34, 83, 44, 20, 10, 199, 4, 192, 77, 60, 66, 83, 44, 20, 10,
+			199, 4, 115, 143, 77, 66, 83, 44, 20, 9, 198, 32, 20, 141, 60, 226, 69, 20, 9, 198, 8, 84, 153, 48, 194, 69, 20, 10, 199, 76,
+			49, 78, 60, 116, 129, 24, 20, 10, 199, 72, 84, 18, 60, 116, 129, 24, 20, 10, 199, 64, 19, 148, 60, 116, 129, 24, 20, 0, 9, 198,
+			32, 82, 211, 4, 115, 206, 20, 7, 196, 80, 19, 15, 56, 20, 9, 198, 64, 244, 201, 80, 147, 206, 20, 11, 200, 52, 81, 9, 12, 147,
+			133, 72, 80, 20, 16, 141, 22, 5, 12, 195, 166, 18, 22, 195, 166, 18, 4, 9, 7, 20, 15, 204, 76, 19, 77, 20, 226, 204, 5, 4,
+			5, 48, 145, 192, 20, 16, 141, 15, 22, 5, 18, 19, 195, 166, 20, 20, 5, 12, 9, 7, 20, 15, 204, 28, 83, 142, 20, 212, 203, 36,
+			227, 133, 48, 145, 192, 20, 12, 201, 5, 34, 83, 80, 245, 5, 48, 148, 203, 20, 9, 198, 48, 149, 15, 72, 19, 0, 20, 0, 8, 197,
+			65, 35, 204, 60, 112, 20, 8, 197, 61, 67, 204, 60, 112, 20, 8, 197, 48, 85, 133, 72, 80, 20, 9, 198, 49, 146, 211, 4, 194, 71,
+			20, 17, 142, 12, 5, 20, 1, 14, 20, 195, 166, 14, 4, 5, 12, 9, 7, 20, 17, 142, 8, 195, 184, 10, 195, 166, 18, 22, 195, 166,
+			18, 4, 9, 7, 20, 9, 198, 4, 228, 197, 20, 194, 71, 20, 8, 197, 5, 32, 76, 36, 80, 20, 12, 201, 61, 37, 15, 12, 84, 129,
+			80, 149, 0, 20, 8, 197, 36, 225, 129, 52, 144, 20, 6, 65, 88, 84, 36, 0, 0, 10, 135, 11, 1, 18, 9, 195, 184, 19, 20, 10,
+			135, 3, 1, 18, 9, 195, 184, 19, 20, 11, 136, 3, 8, 1, 18, 13, 195, 184, 18, 20, 13, 202, 64, 244, 201, 80, 149, 137, 77, 66,
+			83, 44, 20, 13, 202, 56, 81, 193, 80, 149, 137, 77, 66, 83, 44, 20, 13, 202, 52, 147, 9, 80, 20, 137, 77, 66, 83, 44, 20, 13,
+			202, 44, 19, 15, 72, 147, 69, 81, 34, 83, 44, 20, 13, 202, 33, 145, 18, 60, 209, 75, 4, 226, 83, 44, 20, 13, 202, 12, 128, 85,
+			88, 147, 137, 77, 66, 83, 44, 20, 9, 198, 76, 18, 203, 5, 34, 68, 20, 9, 198, 44, 243, 12, 60, 145, 0, 20, 9, 198, 32, 20,
+			141, 60, 226, 64, 20, 9, 198, 5, 67, 5, 80, 146, 192, 20, 9, 198, 24, 97, 82, 52, 21, 0, 20, 0, 10, 67, 64, 130, 76, 83,
+			37, 60, 0, 25, 19, 71, 72, 82, 137, 12, 84, 133, 76, 34, 36, 57, 37, 89, 6, 36, 114, 89, 0, 10, 199, 72, 81, 213, 48, 21,
+			15, 72, 20, 10, 199, 72, 80, 201, 80, 21, 15, 72, 20, 10, 199, 36, 225, 9, 44, 21, 15, 72, 20, 10, 199, 21, 50, 193, 48, 21,
+			15, 72, 20, 12, 201, 72, 21, 9, 24, 146, 193, 80, 147, 206, 20, 12, 201, 61, 33, 193, 56, 148, 193, 80, 147, 206, 20, 12, 201, 52,
+			241, 9, 24, 146, 193, 80, 147, 206, 20, 12, 201, 44, 243, 148, 72, 144, 149, 80, 147, 206, 20, 12, 201, 44, 243, 134, 37, 50, 193, 80,
+			147, 206, 20, 12, 201, 44, 243, 134, 37, 35, 65, 80, 147, 206, 20, 12, 201, 44, 241, 9, 24, 146, 193, 80, 147, 206, 20, 12, 201, 44,
+			19, 143, 56, 148, 193, 80, 147, 206, 20, 12, 201, 36, 228, 212, 4, 195, 1, 80, 147, 206, 20, 12, 201, 16, 84, 212, 36, 195, 1, 80,
+			147, 206, 20, 12, 201, 4, 229, 9, 12, 148, 1, 80, 147, 206, 20, 10, 199, 44, 21, 1, 49, 148, 197, 72, 20, 10, 199, 16, 82, 204,
+			5, 52, 197, 72, 20, 10, 199, 16, 80, 200, 36, 100, 133, 72, 20, 10, 199, 81, 80, 82, 20, 114, 83, 44, 20, 10, 199, 44, 20, 148,
+			4, 114, 83, 44, 20, 10, 199, 8, 148, 195, 5, 146, 83, 44, 20, 8, 133, 195, 166, 20, 1, 14, 21, 9, 198, 77, 64, 70, 24, 17,
+			197, 20, 0, 11, 200, 45, 34, 77, 36, 227, 204, 60, 112, 20, 9, 198, 44, 20, 129, 88, 83, 0, 20, 11, 200, 5, 81, 205, 20, 229,
+			5, 72, 80, 20, 12, 201, 61, 97, 82, 44, 243, 77, 20, 194, 71, 20, 12, 201, 25, 33, 68, 76, 243, 77, 20, 194, 71, 20, 12, 201,
+			20, 161, 78, 16, 243, 77, 20, 194, 71, 20, 16, 141, 2, 18, 195, 184, 19, 20, 6, 195, 166, 12, 4, 9, 7, 20, 11, 200, 88, 242,
+			193, 80, 149, 137, 76, 176, 20, 11, 200, 72, 80, 76, 37, 53, 9, 76, 176, 20, 11, 200, 65, 35, 195, 20, 229, 9, 76, 176, 20, 11,
+			200, 64, 145, 84, 37, 53, 9, 76, 176, 20, 11, 200, 61, 5, 1, 80, 149, 137, 76, 176, 20, 11, 200, 28, 83, 199, 72, 17, 137, 76,
+			176, 20, 11, 200, 17, 84, 129, 80, 149, 137, 76, 176, 20, 11, 200, 17, 80, 76, 37, 53, 9, 76, 176, 20, 11, 200, 16, 162, 66, 61,
+			85, 9, 76, 176, 20, 11, 200, 16, 144, 75, 72, 243, 137, 76, 176, 20, 11, 200, 5, 67, 205, 37, 53, 9, 76, 176, 20, 11, 200, 5,
+			34, 193, 37, 53, 9, 76, 176, 20, 11, 200, 64, 197, 84, 60, 180, 129, 80, 144, 20, 9, 198, 33, 96, 66, 20, 128, 82, 20, 9, 198,
+			12, 83, 148, 72, 19, 0, 20, 21, 4, 95, 49, 77, 52, 6, 36, 12, 50, 15, 71, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 14,
+			139, 16, 18, 15, 7, 18, 1, 13, 13, 195, 184, 18, 20, 8, 197, 4, 193, 75, 76, 144, 20, 9, 198, 28, 82, 147, 80, 194, 71, 20,
+			8, 197, 44, 20, 141, 36, 224, 20, 16, 69, 72, 243, 65, 56, 144, 34, 39, 65, 6, 110, 50, 37, 0, 20, 12, 201, 32, 84, 141, 20,
+			225, 85, 80, 146, 192, 20, 12, 201, 13, 149, 15, 28, 83, 133, 80, 146, 192, 20, 8, 197, 28, 84, 141, 4, 224, 20, 8, 197, 88, 19,
+			5, 57, 48, 20, 8, 197, 76, 145, 206, 4, 192, 20, 8, 197, 56, 243, 65, 16, 80, 20, 14, 65, 92, 72, 6, 114, 71, 36, 55, 47,
+			84, 36, 12, 0, 22, 1, 92, 6, 114, 65, 84, 36, 50, 72, 89, 81, 34, 4, 114, 89, 72, 51, 35, 37, 0, 27, 0, 9, 198, 48,
+			19, 80, 37, 53, 0, 20, 9, 198, 28, 20, 132, 37, 53, 0, 20, 9, 198, 52, 85, 15, 16, 146, 192, 20, 9, 198, 44, 21, 15, 48,
+			146, 192, 20, 0, 10, 199, 5, 3, 208, 48, 82, 211, 36, 20, 14, 203, 20, 180, 208, 21, 34, 77, 20, 229, 5, 72, 80, 20, 14, 203,
+			77, 147, 132, 36, 176, 76, 37, 53, 9, 76, 176, 20, 14, 203, 52, 21, 5, 72, 144, 76, 37, 53, 9, 76, 176, 20, 14, 203, 36, 212,
+			5, 72, 144, 76, 37, 53, 9, 76, 176, 20, 14, 203, 16, 85, 5, 72, 210, 78, 37, 53, 9, 76, 176, 20, 10, 199, 13, 144, 78, 44,
+			19, 9, 20, 20, 10, 199, 44, 243, 12, 60, 66, 85, 52, 20, 10, 199, 28, 195, 211, 5, 34, 85, 52, 20, 10, 199, 44, 243, 80, 21,
+			65, 78, 76, 20, 6, 195, 4, 224, 76, 20, 0, 9, 198, 45, 32, 75, 20, 193, 82, 20, 9, 198, 16, 84, 212, 73, 81, 82, 20, 9,
+			198, 4, 113, 210, 5, 97, 82, 20, 12, 201, 20, 101, 5, 73, 98, 83, 20, 194, 71, 20, 11, 200, 100, 83, 69, 56, 149, 9, 76, 176,
+			20, 11, 200, 76, 19, 15, 52, 243, 137, 76, 176, 20, 11, 200, 65, 34, 83, 52, 21, 9, 76, 176, 20, 11, 200, 64, 19, 143, 72, 19,
+			73, 76, 176, 20, 11, 200, 61, 33, 201, 5, 53, 9, 76, 176, 20, 11, 200, 41, 81, 1, 37, 53, 9, 76, 176, 20, 11, 200, 36, 225,
+			15, 48, 241, 201, 76, 176, 20, 11, 200, 20, 194, 84, 37, 53, 9, 76, 176, 20, 11, 200, 8, 19, 12, 37, 53, 9, 76, 176, 20, 11,
+			200, 4, 225, 75, 16, 245, 9, 76, 176, 20, 11, 200, 4, 180, 143, 8, 21, 9, 76, 176, 20, 7, 196, 88, 19, 9, 16, 20, 9, 198,
+			77, 68, 153, 44, 226, 78, 20, 13, 68, 45, 32, 65, 48, 49, 34, 114, 12, 55, 0, 20, 0, 14, 139, 22, 21, 12, 11, 1, 14, 9,
+			19, 195, 184, 18, 20, 14, 139, 19, 25, 13, 16, 1, 20, 9, 19, 195, 184, 18, 20, 14, 139, 13, 1, 7, 14, 5, 20, 9, 19, 195,
+			184, 18, 20, 12, 201, 44, 243, 15, 56, 144, 76, 37, 53, 0, 20, 18, 70, 52, 17, 206, 36, 98, 75, 65, 110, 68, 37, 83, 6, 37,
+			49, 0, 20, 7, 65, 96, 109, 49, 89, 0, 17, 4, 95, 49, 77, 49, 36, 72, 15, 47, 6, 40, 12, 89, 14, 50, 0, 0, 17, 206,
+			36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 53, 9, 76, 176, 20, 17, 206, 20, 180, 201, 77, 65, 78, 80, 144, 76, 37, 53, 9, 76,
+			176, 20, 13, 202, 77, 84, 16, 61, 50, 84, 61, 34, 85, 52, 20, 9, 66, 4, 64, 110, 86, 0, 14, 45, 7, 66, 4, 64, 110, 12,
+			0, 21, 4, 95, 49, 77, 50, 6, 36, 12, 50, 15, 65, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 9, 198, 76, 147, 133, 13, 84,
+			133, 20, 10, 199, 88, 145, 5, 60, 116, 129, 52, 20, 10, 199, 77, 65, 78, 60, 116, 129, 52, 20, 14, 203, 48, 82, 211, 36, 179, 199,
+			72, 17, 137, 76, 176, 20, 14, 203, 45, 35, 205, 5, 67, 199, 72, 17, 137, 76, 176, 20, 14, 203, 44, 243, 15, 56, 144, 76, 37, 53,
+			9, 76, 176, 20, 10, 199, 77, 147, 80, 61, 50, 85, 52, 20, 12, 201, 5, 49, 82, 8, 18, 132, 76, 160, 78, 20, 12, 201, 5, 49,
+			82, 8, 18, 132, 76, 160, 78, 21, 21, 4, 95, 49, 77, 51, 6, 36, 12, 50, 15, 65, 37, 55, 37, 57, 6, 112, 12, 72, 0, 0,
+			9, 198, 77, 80, 195, 20, 65, 82, 20, 9, 198, 77, 66, 77, 84, 193, 82, 20, 9, 198, 72, 85, 21, 72, 225, 82, 20, 13, 138, 16,
+			18, 195, 166, 19, 5, 14, 20, 5, 18, 20, 9, 198, 32, 20, 141, 60, 225, 82, 20, 9, 198, 76, 18, 203, 5, 34, 78, 20, 11, 200,
+			44, 243, 139, 61, 33, 1, 57, 48, 20, 11, 200, 44, 243, 132, 84, 181, 1, 57, 48, 20, 0, 12, 201, 61, 34, 69, 57, 64, 76, 37,
+			53, 0, 20, 9, 198, 64, 243, 9, 80, 148, 203, 20, 9, 198, 8, 20, 201, 48, 148, 203, 20, 12, 201, 16, 85, 5, 72, 210, 78, 4,
+			229, 0, 20, 6, 65, 100, 117, 19, 0, 0, 13, 202, 64, 20, 129, 48, 193, 76, 60, 116, 129, 52, 20, 15, 140, 18, 5, 16, 18, 195,
+			166, 19, 5, 14, 20, 5, 18, 20, 0, 9, 198, 81, 35, 205, 8, 244, 197, 20, 9, 198, 65, 35, 199, 56, 244, 197, 20, 12, 201, 56,
+			21, 9, 60, 224, 76, 37, 49, 82, 20, 10, 199, 44, 243, 147, 64, 148, 133, 72, 20, 12, 201, 44, 243, 77, 84, 224, 76, 37, 49, 82,
+			20, 12, 201, 44, 19, 142, 36, 32, 76, 37, 49, 82, 20, 10, 199, 36, 225, 11, 48, 20, 133, 72, 20, 9, 198, 44, 147, 133, 76, 84,
+			137, 20, 9, 198, 24, 20, 193, 56, 84, 137, 20, 10, 199, 80, 83, 211, 60, 98, 83, 44, 20, 10, 199, 24, 20, 129, 60, 226, 83, 44,
+			20, 10, 199, 17, 32, 77, 5, 66, 83, 44, 20, 10, 199, 4, 224, 70, 61, 34, 83, 44, 20, 9, 198, 4, 224, 77, 56, 84, 197, 20,
+			10, 199, 80, 84, 144, 20, 229, 9, 56, 20, 10, 199, 76, 84, 144, 20, 229, 9, 56, 20, 10, 199, 20, 225, 15, 77, 49, 78, 80, 20,
+			0, 9, 198, 56, 245, 1, 80, 147, 206, 20, 9, 198, 45, 33, 65, 80, 147, 206, 20, 9, 198, 16, 245, 1, 80, 147, 206, 20, 12, 201,
+			52, 146, 210, 61, 50, 207, 64, 148, 203, 20, 21, 68, 77, 64, 78, 16, 89, 47, 110, 50, 72, 6, 37, 50, 0, 44, 20, 81, 105, 110,
+			32, 9, 198, 44, 243, 150, 20, 224, 66, 20, 0, 8, 197, 28, 19, 9, 60, 224, 20, 9, 198, 60, 198, 77, 64, 148, 203, 20, 9, 198,
+			52, 85, 15, 16, 148, 203, 20, 9, 198, 44, 21, 15, 16, 148, 203, 20, 9, 198, 20, 180, 207, 80, 148, 203, 20, 9, 198, 9, 82, 207,
+			48, 148, 203, 20, 8, 197, 44, 195, 210, 36, 224, 20, 8, 197, 44, 243, 150, 4, 192, 20, 7, 65, 104, 89, 109, 47, 0, 0, 16, 66,
+			5, 64, 110, 15, 107, 110, 12, 0, 81, 104, 97, 118, 101, 32, 9, 198, 72, 149, 15, 72, 225, 76, 20, 12, 201, 12, 128, 82, 48, 21,
+			1, 56, 84, 137, 20, 13, 202, 77, 80, 147, 80, 19, 148, 37, 98, 83, 44, 20, 13, 202, 64, 84, 147, 64, 82, 212, 37, 98, 83, 44,
+			20, 13, 202, 52, 83, 15, 17, 32, 77, 5, 66, 83, 44, 20, 13, 202, 44, 243, 80, 61, 50, 84, 61, 34, 83, 44, 20, 13, 202, 36,
+			226, 214, 37, 50, 84, 61, 34, 83, 44, 20, 12, 201, 20, 180, 208, 20, 66, 84, 72, 144, 197, 20, 8, 66, 5, 64, 110, 12, 0, 72,
+			0, 10, 199, 72, 81, 140, 20, 181, 15, 72, 20, 10, 199, 65, 35, 212, 20, 181, 15, 72, 20, 10, 199, 36, 228, 208, 20, 181, 15, 72,
+			20, 12, 201, 52, 83, 147, 81, 37, 65, 80, 147, 206, 20, 12, 201, 36, 229, 9, 52, 145, 1, 80, 147, 206, 20, 10, 199, 36, 225, 11,
+			5, 52, 197, 72, 20, 10, 199, 52, 19, 1, 101, 50, 83, 44, 20, 10, 199, 44, 148, 143, 52, 19, 148, 36, 20, 0, 11, 200, 88, 148,
+			201, 80, 21, 9, 60, 224, 20, 11, 200, 88, 81, 197, 80, 21, 9, 60, 224, 20, 11, 200, 72, 80, 201, 80, 21, 9, 60, 224, 20, 11,
+			200, 52, 241, 21, 48, 21, 9, 60, 224, 20, 11, 200, 21, 50, 193, 48, 21, 9, 60, 224, 20, 11, 200, 16, 84, 21, 80, 21, 9, 60,
+			224, 20, 11, 200, 16, 84, 9, 48, 21, 9, 60, 224, 20, 11, 200, 4, 212, 21, 80, 21, 9, 60, 224, 20, 12, 201, 65, 35, 198, 100,
+			192, 75, 80, 148, 203, 20, 12, 201, 64, 197, 82, 4, 194, 83, 80, 148, 203, 20, 12, 201, 53, 148, 212, 36, 98, 83, 80, 148, 203, 20,
+			12, 201, 44, 16, 130, 4, 194, 83, 80, 148, 203, 20, 12, 201, 32, 83, 12, 20, 226, 83, 80, 148, 203, 20, 12, 201, 28, 20, 212, 72,
+			243, 143, 52, 148, 203, 20, 12, 201, 17, 32, 77, 5, 69, 82, 28, 148, 203, 20, 12, 201, 12, 19, 22, 36, 226, 83, 80, 148, 203, 20,
+			11, 200, 76, 19, 22, 4, 67, 210, 4, 224, 20, 11, 200, 16, 148, 133, 45, 67, 210, 4, 192, 20, 0, 12, 201, 36, 229, 5, 56, 64,
+			78, 81, 84, 128, 20, 8, 197, 88, 84, 137, 77, 64, 20, 8, 197, 4, 244, 137, 77, 64, 20, 12, 201, 44, 243, 150, 20, 229, 9, 60,
+			225, 76, 20, 8, 197, 37, 34, 83, 21, 32, 20, 8, 197, 9, 81, 211, 21, 32, 20, 8, 197, 8, 19, 132, 37, 64, 20, 8, 197, 16,
+			83, 6, 36, 224, 20, 8, 197, 88, 19, 5, 57, 64, 20, 8, 197, 80, 19, 5, 57, 64, 20, 8, 197, 64, 147, 69, 57, 64, 20, 8,
+			197, 52, 243, 69, 57, 64, 20, 8, 197, 16, 83, 69, 57, 64, 20, 8, 197, 48, 18, 212, 5, 64, 20, 8, 197, 49, 83, 66, 4, 192,
+			20, 0, 9, 198, 5, 81, 9, 80, 244, 128, 20, 12, 201, 64, 20, 129, 76, 149, 15, 48, 241, 201, 20, 12, 201, 16, 144, 76, 20, 181,
+			15, 48, 241, 201, 20, 9, 198, 80, 243, 148, 36, 225, 64, 20, 9, 198, 44, 19, 148, 36, 225, 64, 20, 9, 198, 65, 32, 75, 80, 146,
+			192, 20, 9, 198, 9, 34, 71, 4, 65, 64, 20, 9, 198, 8, 195, 203, 4, 65, 64, 20, 0, 10, 199, 81, 35, 212, 76, 178, 83, 80,
+			20, 10, 199, 64, 20, 139, 21, 34, 78, 28, 20, 15, 204, 25, 83, 139, 80, 147, 206, 4, 194, 83, 80, 148, 203, 20, 0, 22, 72, 9,
+			33, 65, 44, 64, 78, 12, 80, 71, 34, 109, 37, 81, 6, 72, 35, 12, 50, 89, 0, 11, 200, 44, 21, 129, 48, 84, 137, 77, 64, 20,
+			11, 200, 52, 81, 9, 80, 21, 9, 60, 224, 20, 11, 200, 48, 144, 201, 80, 21, 9, 60, 224, 20, 11, 200, 44, 244, 146, 20, 181, 9,
+			60, 224, 20, 11, 200, 80, 83, 210, 21, 66, 83, 21, 32, 20, 11, 200, 77, 147, 80, 5, 66, 83, 21, 32, 20, 11, 200, 56, 20, 139,
+			61, 66, 83, 21, 32, 20, 11, 200, 52, 20, 148, 101, 34, 83, 21, 32, 20, 11, 200, 52, 17, 206, 21, 66, 83, 21, 32, 20, 11, 200,
+			44, 20, 130, 60, 226, 83, 21, 32, 20, 11, 200, 33, 148, 14, 61, 66, 83, 21, 32, 20, 11, 200, 28, 195, 194, 4, 194, 83, 21, 32,
+			20, 11, 200, 20, 193, 75, 81, 34, 83, 21, 32, 20, 11, 200, 16, 144, 76, 60, 114, 83, 21, 32, 20, 11, 200, 4, 227, 206, 100, 210,
+			83, 21, 32, 20, 11, 200, 4, 224, 76, 60, 114, 83, 21, 32, 20, 11, 200, 4, 176, 68, 20, 210, 83, 21, 32, 20, 11, 200, 80, 131,
+			205, 37, 53, 9, 76, 176, 20, 11, 200, 64, 21, 18, 36, 245, 9, 76, 176, 20, 11, 200, 48, 19, 65, 37, 53, 9, 76, 176, 20, 11,
+			200, 32, 243, 73, 48, 85, 9, 76, 176, 20, 11, 200, 16, 146, 207, 80, 243, 73, 76, 176, 20, 11, 200, 16, 145, 148, 60, 225, 201, 76,
+			176, 20, 11, 200, 16, 144, 76, 20, 181, 9, 76, 176, 20, 11, 200, 72, 85, 77, 5, 66, 75, 21, 32, 20, 11, 200, 33, 148, 212, 21,
+			34, 75, 21, 32, 20, 11, 200, 32, 148, 212, 61, 34, 75, 21, 32, 20, 11, 200, 17, 32, 77, 5, 66, 75, 21, 32, 20, 11, 200, 16,
+			241, 205, 5, 66, 75, 21, 32, 20, 9, 198, 52, 86, 154, 4, 226, 78, 20, 11, 200, 4, 35, 206, 56, 83, 69, 57, 64, 20, 11, 200,
+			72, 85, 19, 36, 225, 82, 21, 64, 20, 11, 200, 44, 20, 9, 81, 83, 1, 57, 64, 20, 0, 8, 197, 72, 82, 210, 85, 64, 20, 12,
+			201, 9, 34, 76, 48, 19, 148, 36, 225, 64, 20, 8, 197, 72, 16, 201, 77, 64, 20, 8, 197, 65, 84, 137, 77, 64, 20, 8, 197, 44,
+			244, 137, 77, 64, 20, 8, 197, 44, 19, 11, 21, 32, 20, 8, 197, 21, 34, 71, 21, 32, 20, 8, 197, 48, 21, 5, 57, 64, 20, 8,
+			197, 64, 81, 1, 57, 64, 20, 0, 11, 66, 12, 16, 89, 37, 34, 49, 110, 0, 25, 9, 198, 32, 243, 79, 48, 241, 192, 20, 9, 198,
+			32, 21, 83, 76, 148, 212, 20, 9, 198, 84, 69, 69, 48, 145, 192, 20, 9, 198, 32, 244, 141, 60, 224, 76, 20, 9, 198, 33, 145, 18,
+			4, 229, 0, 20, 0, 9, 198, 76, 147, 9, 44, 244, 197, 20, 10, 199, 76, 84, 137, 4, 194, 83, 80, 20, 10, 199, 60, 178, 213, 49,
+			66, 83, 80, 20, 14, 203, 25, 83, 139, 80, 147, 206, 4, 194, 83, 21, 32, 20, 14, 203, 8, 243, 129, 64, 20, 148, 37, 53, 9, 76,
+			176, 20, 0, 11, 200, 24, 243, 11, 48, 244, 137, 77, 64, 20, 19, 70, 16, 148, 212, 36, 179, 206, 72, 37, 89, 47, 37, 49, 6, 114,
+			50, 0, 20, 9, 198, 41, 83, 139, 80, 147, 206, 20, 9, 198, 25, 32, 75, 80, 147, 206, 20, 11, 200, 44, 243, 77, 84, 226, 75, 21,
+			32, 20, 11, 200, 16, 243, 69, 77, 66, 67, 21, 32, 20, 12, 137, 195, 184, 13, 20, 195, 165, 12, 9, 7, 20, 12, 137, 22, 5, 12,
+			4, 195, 166, 4, 9, 7, 20, 12, 137, 7, 15, 4, 4, 195, 166, 4, 9, 7, 20, 11, 200, 5, 53, 13, 5, 66, 75, 21, 32, 20,
+			7, 196, 61, 33, 193, 56, 21, 11, 200, 72, 81, 140, 20, 181, 1, 57, 64, 20, 0, 12, 201, 16, 144, 76, 20, 181, 15, 48, 241, 192,
+			20, 12, 201, 48, 81, 201, 80, 147, 73, 80, 85, 0, 20, 12, 201, 25, 32, 84, 21, 35, 137, 80, 85, 0, 20, 8, 197, 64, 243, 5,
+			72, 80, 20, 8, 197, 52, 83, 5, 72, 80, 20, 12, 201, 80, 147, 19, 80, 81, 5, 48, 145, 192, 20, 13, 138, 15, 22, 5, 18, 19,
+			195, 166, 4, 9, 7, 20, 13, 138, 14, 195, 184, 4, 22, 5, 14, 4, 9, 7, 20, 12, 201, 32, 83, 2, 72, 81, 5, 48, 145, 192,
+			20, 12, 201, 32, 19, 19, 77, 64, 82, 72, 145, 192, 20, 12, 201, 28, 83, 130, 73, 81, 197, 48, 145, 192, 20, 12, 201, 24, 244, 132,
+			72, 17, 197, 48, 145, 192, 20, 9, 198, 72, 18, 201, 80, 148, 203, 20, 9, 198, 32, 20, 141, 60, 226, 75, 20, 12, 201, 80, 85, 18,
+			5, 96, 76, 20, 229, 0, 20, 0, 13, 202, 76, 17, 15, 52, 20, 207, 12, 130, 83, 80, 20, 9, 198, 56, 146, 9, 48, 148, 212, 20,
+			13, 202, 52, 19, 149, 24, 18, 212, 85, 34, 83, 80, 20, 9, 198, 37, 51, 1, 52, 148, 212, 20, 9, 198, 24, 21, 1, 48, 148, 212,
+			20, 9, 198, 4, 194, 217, 52, 148, 212, 20, 14, 139, 20, 9, 12, 2, 195, 184, 10, 5, 12, 9, 7, 20, 14, 139, 16, 195, 165, 18,
+			5, 7, 14, 5, 12, 9, 7, 20, 9, 198, 77, 64, 78, 56, 147, 204, 20, 9, 198, 5, 4, 5, 80, 149, 0, 20, 9, 198, 76, 225,
+			71, 48, 21, 0, 20, 9, 198, 72, 16, 130, 36, 224, 84, 20, 0, 12, 201, 44, 243, 147, 81, 37, 75, 80, 147, 206, 20, 12, 201, 36,
+			229, 18, 60, 69, 75, 80, 147, 206, 20, 12, 201, 16, 84, 201, 56, 97, 75, 80, 147, 206, 20, 12, 201, 12, 245, 133, 73, 97, 82, 76,
+			147, 206, 20, 10, 199, 52, 243, 137, 80, 244, 133, 72, 20, 10, 199, 52, 20, 211, 4, 180, 133, 72, 20, 15, 140, 20, 9, 12, 7, 195,
+			166, 14, 7, 5, 12, 9, 7, 20, 10, 199, 44, 21, 1, 52, 20, 129, 56, 21, 0, 22, 3, 7, 195, 165, 81, 113, 15, 48, 6, 113,
+			15, 110, 0, 82, 112, 195, 165, 32, 97, 102, 32, 12, 201, 48, 20, 153, 56, 115, 211, 44, 244, 0, 20, 6, 195, 48, 241, 201, 20, 9,
+			198, 76, 243, 21, 80, 147, 206, 20, 9, 198, 72, 245, 1, 80, 147, 206, 20, 9, 198, 56, 81, 193, 80, 147, 206, 20, 9, 198, 48, 81,
+			193, 80, 147, 206, 20, 9, 198, 20, 213, 76, 76, 147, 206, 20, 9, 198, 12, 149, 1, 80, 147, 206, 20, 11, 200, 64, 242, 213, 48, 84,
+			137, 56, 112, 20, 11, 200, 48, 144, 201, 80, 84, 137, 56, 112, 20, 11, 200, 12, 148, 197, 48, 84, 137, 56, 112, 20, 11, 200, 64, 83,
+			147, 36, 243, 133, 72, 80, 20, 16, 141, 15, 13, 11, 18, 9, 14, 7, 19, 195, 166, 4, 9, 7, 20, 11, 200, 45, 98, 78, 16, 17,
+			212, 36, 112, 20, 15, 204, 29, 81, 22, 20, 192, 133, 32, 17, 197, 48, 145, 192, 20, 15, 204, 29, 81, 19, 8, 84, 208, 61, 69, 5,
+			48, 145, 192, 20, 12, 137, 1, 6, 6, 195, 166, 12, 4, 9, 7, 20, 12, 201, 60, 229, 15, 28, 83, 133, 80, 148, 203, 20, 12, 201,
+			32, 84, 141, 20, 225, 85, 80, 148, 203, 20, 11, 200, 32, 83, 7, 20, 226, 78, 16, 80, 20, 11, 200, 45, 98, 78, 16, 17, 212, 36,
+			112, 20, 7, 196, 4, 97, 129, 8, 20, 11, 200, 44, 20, 148, 60, 227, 129, 28, 80, 20, 0, 33, 69, 65, 80, 140, 36, 48, 48, 114,
+			71, 55, 36, 49, 15, 89, 13, 12, 84, 37, 89, 14, 50, 0, 81, 115, 101, 114, 118, 105, 99, 101, 110, 32, 30, 69, 65, 80, 140, 36,
+			48, 48, 114, 71, 55, 36, 49, 15, 89, 13, 12, 84, 37, 89, 0, 81, 115, 101, 114, 118, 105, 99, 101, 32, 12, 201, 77, 2, 82, 37,
+			69, 65, 48, 148, 212, 20, 12, 201, 76, 243, 78, 4, 208, 149, 48, 148, 212, 20, 16, 205, 56, 21, 9, 60, 224, 76, 76, 240, 201, 4,
+			194, 83, 80, 20, 8, 197, 56, 245, 5, 72, 80, 20, 13, 138, 22, 195, 166, 18, 19, 1, 18, 20, 9, 7, 20, 12, 201, 56, 21, 21,
+			72, 96, 71, 48, 145, 192, 20, 13, 138, 7, 5, 19, 11, 195, 166, 6, 20, 9, 7, 20, 13, 138, 7, 5, 19, 10, 195, 166, 6, 20,
+			9, 7, 20, 12, 201, 24, 244, 132, 20, 192, 71, 80, 145, 192, 20, 8, 197, 20, 212, 1, 80, 144, 20, 31, 69, 65, 80, 140, 36, 48,
+			48, 114, 71, 55, 36, 49, 15, 72, 39, 65, 6, 110, 57, 50, 0, 20, 81, 100, 111, 109, 97, 105, 110, 32, 12, 201, 44, 244, 147, 21,
+			69, 5, 72, 85, 0, 20, 12, 201, 52, 81, 4, 20, 192, 71, 80, 145, 192, 20, 12, 201, 24, 244, 132, 20, 192, 71, 80, 145, 192, 20,
+			0, 9, 198, 32, 244, 141, 60, 225, 76, 20, 9, 198, 36, 229, 129, 48, 145, 0, 20, 9, 198, 21, 84, 143, 64, 145, 0, 20, 9, 198,
+			29, 80, 82, 4, 226, 64, 20, 9, 198, 64, 243, 9, 80, 146, 192, 20, 9, 198, 44, 84, 129, 52, 146, 192, 20, 9, 198, 52, 83, 5,
+			72, 85, 0, 20, 0, 9, 198, 21, 67, 143, 48, 241, 201, 20, 12, 201, 88, 19, 15, 72, 148, 193, 80, 147, 206, 20, 12, 201, 81, 148,
+			9, 24, 146, 193, 80, 147, 206, 20, 12, 201, 64, 243, 1, 72, 148, 193, 80, 147, 206, 20, 12, 201, 44, 243, 148, 36, 229, 65, 80, 147,
+			206, 20, 12, 201, 44, 243, 147, 80, 148, 1, 80, 147, 206, 20, 12, 201, 44, 243, 135, 72, 81, 193, 80, 147, 206, 20, 12, 201, 20, 208,
+			78, 12, 148, 1, 80, 147, 206, 20, 12, 201, 4, 211, 210, 80, 148, 193, 80, 147, 206, 20, 12, 201, 4, 194, 77, 20, 229, 1, 80, 147,
+			206, 20, 12, 201, 4, 48, 197, 57, 69, 65, 80, 147, 206, 20, 14, 203, 52, 146, 210, 61, 50, 207, 64, 84, 137, 56, 112, 20, 12, 201,
+			44, 243, 132, 37, 66, 79, 56, 83, 0, 20, 10, 199, 44, 244, 146, 84, 212, 5, 72, 20, 15, 140, 195, 165, 2, 5, 14, 8, 10, 5,
+			18, 20, 9, 7, 20, 15, 140, 22, 5, 4, 5, 18, 8, 195, 166, 6, 20, 9, 7, 20, 15, 140, 6, 15, 18, 18, 195, 165, 4, 14,
+			5, 12, 9, 7, 20, 15, 140, 6, 15, 18, 7, 195, 166, 14, 7, 5, 12, 9, 7, 20, 15, 140, 6, 15, 18, 6, 195, 166, 14, 7,
+			5, 12, 9, 7, 20, 9, 198, 44, 243, 12, 60, 66, 69, 20, 14, 203, 44, 243, 150, 20, 229, 21, 4, 194, 78, 16, 80, 20, 12, 201,
+			44, 243, 148, 84, 33, 82, 56, 19, 0, 20, 5, 195, 32, 244, 192, 0, 11, 200, 88, 148, 201, 80, 84, 137, 56, 112, 20, 11, 200, 88,
+			81, 197, 80, 84, 137, 56, 112, 20, 11, 200, 77, 64, 70, 24, 84, 137, 56, 112, 20, 11, 200, 72, 85, 137, 16, 84, 137, 56, 112, 20,
+			11, 200, 72, 83, 1, 80, 84, 137, 56, 112, 20, 11, 200, 56, 20, 193, 48, 84, 137, 56, 112, 20, 11, 200, 44, 194, 67, 32, 84, 137,
+			56, 112, 20, 11, 200, 72, 20, 16, 61, 37, 5, 72, 80, 20, 11, 200, 28, 20, 146, 61, 69, 5, 72, 80, 20, 12, 201, 81, 34, 75,
+			36, 226, 15, 48, 66, 71, 20, 12, 201, 48, 245, 141, 20, 66, 15, 48, 66, 71, 20, 12, 201, 48, 19, 135, 76, 243, 77, 20, 194, 71,
+			20, 12, 201, 25, 33, 77, 44, 243, 77, 20, 194, 71, 20, 16, 141, 6, 15, 18, 20, 18, 195, 166, 6, 6, 5, 12, 9, 7, 20, 11,
+			200, 80, 244, 15, 48, 241, 201, 76, 176, 20, 11, 200, 76, 86, 15, 48, 241, 201, 76, 176, 20, 11, 200, 53, 149, 15, 48, 241, 201, 76,
+			176, 20, 11, 200, 52, 243, 143, 48, 241, 201, 76, 176, 20, 11, 200, 9, 38, 79, 48, 241, 201, 76, 176, 20, 11, 200, 36, 229, 5, 72,
+			209, 68, 36, 80, 20, 11, 200, 44, 243, 147, 84, 194, 78, 16, 80, 20, 7, 196, 76, 83, 137, 48, 20, 7, 196, 72, 16, 129, 80, 20,
+			9, 198, 77, 147, 143, 16, 19, 0, 20, 0, 8, 197, 28, 83, 204, 60, 112, 20, 8, 197, 25, 84, 201, 60, 224, 20, 9, 198, 28, 85,
+			129, 48, 66, 71, 20, 8, 197, 65, 81, 82, 36, 192, 20, 8, 197, 80, 82, 206, 36, 176, 20, 8, 197, 77, 148, 212, 20, 208, 20, 8,
+			197, 16, 83, 69, 57, 48, 20, 0, 13, 202, 4, 67, 73, 56, 148, 212, 72, 21, 15, 72, 20, 9, 198, 80, 16, 200, 37, 53, 0, 20,
+			9, 198, 52, 20, 152, 37, 53, 0, 20, 9, 198, 16, 17, 1, 37, 53, 0, 20, 9, 198, 52, 83, 15, 16, 146, 192, 20, 9, 198, 20,
+			192, 83, 80, 146, 192, 20, 0, 10, 199, 44, 244, 9, 21, 34, 78, 28, 20, 14, 203, 20, 180, 208, 48, 144, 201, 80, 84, 137, 56, 112,
+			20, 10, 199, 12, 19, 80, 21, 34, 78, 28, 20, 19, 144, 7, 5, 14, 14, 5, 13, 20, 18, 195, 166, 14, 7, 5, 12, 9, 7, 20,
+			14, 203, 21, 2, 68, 20, 210, 79, 48, 241, 201, 76, 176, 20, 14, 203, 16, 144, 76, 20, 181, 15, 48, 241, 201, 76, 176, 20, 10, 199,
+			4, 69, 133, 72, 34, 85, 52, 20, 10, 199, 80, 244, 141, 20, 229, 9, 48, 20, 12, 137, 6, 195, 184, 14, 9, 11, 9, 5, 14, 20,
+			10, 199, 73, 85, 9, 56, 84, 133, 80, 20, 8, 67, 84, 226, 88, 21, 0, 10, 0, 11, 200, 60, 225, 21, 48, 21, 9, 60, 224, 20,
+			11, 200, 16, 148, 203, 72, 85, 9, 60, 224, 20, 11, 200, 16, 147, 1, 80, 21, 9, 60, 224, 20, 11, 200, 4, 100, 133, 4, 181, 9,
+			60, 224, 20, 11, 200, 4, 33, 82, 72, 21, 9, 60, 224, 20, 7, 196, 52, 241, 5, 48, 20, 9, 198, 44, 243, 150, 20, 225, 82, 20,
+			9, 198, 44, 240, 71, 84, 193, 82, 20, 9, 198, 36, 227, 203, 84, 193, 82, 20, 9, 198, 16, 85, 1, 12, 129, 82, 20, 11, 200, 17,
+			148, 208, 21, 5, 9, 76, 176, 20, 9, 198, 88, 19, 137, 48, 194, 78, 20, 11, 200, 56, 144, 193, 72, 17, 213, 4, 224, 20, 9, 198,
+			4, 84, 143, 64, 192, 78, 21, 11, 200, 77, 80, 140, 36, 210, 78, 4, 192, 20, 11, 200, 64, 84, 134, 61, 35, 65, 57, 48, 20, 0,
+			12, 201, 45, 34, 77, 36, 224, 76, 37, 53, 0, 20, 12, 201, 56, 245, 133, 48, 194, 83, 80, 146, 192, 20, 0, 9, 198, 52, 85, 15,
+			16, 148, 212, 20, 13, 202, 52, 19, 20, 72, 18, 212, 21, 34, 78, 28, 20, 13, 202, 24, 18, 211, 36, 210, 76, 21, 34, 78, 28, 20,
+			13, 202, 20, 180, 208, 5, 68, 137, 21, 34, 78, 28, 20, 13, 202, 20, 180, 208, 21, 34, 77, 20, 229, 5, 48, 20, 13, 202, 16, 242,
+			213, 52, 83, 148, 5, 34, 85, 52, 20, 9, 198, 8, 18, 197, 48, 149, 0, 20, 13, 202, 76, 83, 22, 12, 83, 148, 72, 84, 133, 80,
+			20, 6, 66, 4, 96, 110, 0, 0, 6, 195, 89, 51, 208, 17, 12, 201, 8, 83, 133, 16, 146, 212, 36, 225, 82, 68, 10, 199, 32, 148,
+			212, 60, 116, 129, 52, 20, 12, 201, 77, 80, 150, 20, 229, 9, 60, 225, 82, 20, 12, 201, 65, 35, 208, 61, 37, 9, 60, 225, 82, 20,
+			0, 7, 196, 85, 33, 197, 72, 20, 9, 198, 72, 84, 201, 28, 225, 82, 20, 9, 198, 72, 17, 134, 36, 225, 82, 20, 9, 198, 21, 128,
+			197, 48, 193, 82, 20, 9, 198, 20, 208, 129, 48, 193, 82, 20, 9, 198, 53, 84, 211, 20, 194, 78, 20, 7, 196, 44, 147, 137, 56, 20,
+			9, 68, 25, 33, 65, 44, 21, 0, 10, 0, 24, 73, 76, 176, 84, 20, 35, 193, 72, 65, 84, 89, 49, 6, 36, 37, 47, 71, 39, 13,
+			72, 108, 86, 0, 9, 198, 37, 51, 1, 52, 148, 203, 20, 9, 198, 36, 229, 73, 80, 148, 203, 20, 9, 198, 21, 66, 79, 64, 148, 203,
+			20, 9, 198, 16, 82, 193, 16, 148, 203, 20, 9, 198, 5, 50, 197, 80, 148, 203, 20, 12, 201, 65, 35, 208, 61, 37, 9, 60, 224, 76,
+			20, 0, 9, 198, 20, 193, 70, 4, 229, 0, 20, 0, 10, 199, 88, 83, 133, 72, 243, 15, 28, 20, 10, 199, 61, 35, 137, 80, 243, 15,
+			28, 20, 10, 199, 28, 192, 67, 36, 243, 15, 28, 20, 10, 199, 45, 34, 78, 60, 194, 78, 20, 20, 12, 201, 44, 243, 148, 72, 20, 201,
+			28, 225, 82, 20, 10, 199, 36, 212, 12, 4, 229, 5, 72, 20, 10, 199, 77, 81, 134, 37, 48, 78, 80, 20, 0, 15, 204, 65, 35, 198,
+			21, 52, 201, 60, 224, 76, 37, 53, 0, 20, 7, 196, 41, 81, 197, 72, 20, 12, 201, 77, 65, 84, 61, 50, 207, 64, 148, 203, 20, 12,
+			201, 64, 243, 25, 12, 83, 148, 72, 148, 203, 20, 12, 201, 64, 84, 137, 64, 21, 5, 80, 148, 203, 20, 12, 201, 52, 18, 210, 61, 50,
+			207, 64, 148, 203, 20, 12, 201, 44, 244, 205, 60, 224, 85, 80, 148, 203, 20, 12, 201, 13, 149, 15, 28, 83, 133, 80, 148, 203, 20, 7,
+			196, 21, 97, 78, 80, 20, 9, 198, 16, 82, 204, 36, 224, 66, 20, 9, 68, 21, 97, 78, 80, 21, 0, 10, 0, 13, 138, 7, 25, 14,
+			195, 166, 11, 15, 12, 15, 7, 20, 8, 197, 84, 226, 83, 60, 224, 20, 8, 197, 61, 5, 9, 60, 224, 20, 8, 197, 48, 81, 201, 60,
+			224, 20, 11, 136, 12, 195, 184, 22, 9, 14, 4, 5, 20, 0, 8, 67, 80, 19, 11, 21, 0, 10, 0, 10, 199, 76, 147, 85, 48, 21,
+			15, 72, 20, 10, 199, 36, 226, 9, 8, 149, 15, 72, 20, 15, 140, 6, 195, 166, 14, 15, 13, 5, 14, 15, 12, 15, 7, 20, 12, 201,
+			88, 242, 193, 48, 148, 193, 80, 147, 206, 20, 10, 199, 88, 20, 137, 5, 66, 79, 56, 20, 12, 201, 72, 84, 212, 5, 84, 129, 80, 147,
+			206, 20, 10, 199, 65, 35, 205, 61, 66, 79, 56, 20, 12, 201, 48, 81, 193, 48, 148, 193, 80, 147, 206, 20, 10, 199, 44, 243, 77, 84,
+			226, 79, 56, 20, 12, 201, 44, 243, 15, 56, 148, 193, 80, 147, 206, 20, 12, 201, 44, 21, 5, 44, 148, 193, 80, 147, 206, 20, 12, 201,
+			44, 19, 129, 48, 148, 193, 80, 147, 206, 20, 10, 199, 5, 52, 197, 73, 66, 79, 56, 20, 10, 199, 4, 226, 77, 5, 66, 79, 56, 20,
+			10, 199, 64, 244, 212, 16, 21, 5, 72, 20, 10, 199, 24, 197, 79, 72, 145, 5, 72, 20, 15, 204, 44, 243, 77, 84, 224, 76, 64, 243,
+			9, 80, 148, 203, 20, 10, 199, 28, 83, 198, 101, 50, 83, 44, 20, 10, 199, 5, 85, 1, 72, 178, 83, 44, 20, 0, 11, 200, 32, 84,
+			131, 20, 115, 214, 36, 224, 20, 9, 198, 16, 148, 203, 85, 64, 66, 20, 9, 198, 4, 48, 197, 65, 64, 66, 20, 0, 8, 197, 48, 19,
+			131, 21, 32, 20, 8, 197, 25, 83, 135, 21, 32, 20, 8, 197, 44, 197, 83, 36, 192, 20, 8, 197, 12, 130, 76, 20, 224, 20, 8, 197,
+			65, 35, 198, 4, 224, 21, 8, 197, 5, 67, 205, 5, 32, 20, 0, 9, 198, 12, 245, 84, 85, 33, 64, 20, 13, 202, 76, 81, 9, 52,
+			83, 148, 5, 66, 79, 56, 20, 13, 202, 44, 243, 134, 72, 243, 148, 5, 66, 79, 56, 20, 13, 202, 16, 242, 213, 52, 83, 148, 5, 66,
+			79, 56, 20, 13, 202, 5, 33, 213, 52, 83, 148, 5, 66, 79, 56, 20, 9, 198, 77, 83, 77, 21, 33, 64, 20, 9, 198, 37, 32, 75,
+			37, 50, 192, 20, 9, 198, 36, 33, 82, 37, 50, 192, 20, 9, 198, 20, 198, 83, 37, 50, 192, 20, 16, 141, 9, 19, 12, 195, 166, 14,
+			4, 5, 18, 9, 14, 4, 5, 20, 9, 198, 72, 82, 212, 61, 32, 76, 20, 0, 10, 199, 65, 80, 140, 36, 50, 83, 80, 20, 10, 199,
+			52, 18, 84, 72, 84, 211, 20, 20, 6, 195, 61, 32, 76, 20, 9, 198, 64, 19, 9, 76, 17, 5, 20, 20, 70, 45, 37, 83, 80, 17,
+			5, 49, 34, 116, 89, 72, 6, 110, 12, 86, 13, 0, 20, 10, 199, 36, 225, 21, 45, 64, 78, 76, 20, 0, 7, 196, 81, 34, 83, 80,
+			20, 11, 200, 65, 35, 214, 36, 228, 201, 20, 192, 20, 11, 200, 88, 84, 130, 4, 194, 83, 21, 32, 20, 11, 200, 81, 148, 129, 56, 226,
+			83, 21, 32, 20, 11, 200, 77, 65, 82, 36, 194, 83, 21, 32, 20, 11, 200, 77, 64, 66, 36, 194, 83, 21, 32, 20, 11, 200, 76, 145,
+			206, 4, 194, 83, 21, 32, 20, 11, 200, 28, 84, 141, 4, 226, 83, 21, 32, 20, 11, 200, 28, 19, 22, 4, 226, 83, 21, 32, 20, 0,
+			12, 201, 65, 54, 75, 60, 102, 83, 37, 50, 192, 20, 12, 201, 64, 243, 25, 4, 225, 18, 37, 50, 192, 20, 12, 201, 20, 115, 195, 20,
+			229, 18, 37, 50, 192, 20, 0, 9, 198, 64, 21, 15, 48, 241, 192, 20, 9, 198, 60, 226, 207, 48, 241, 192, 20, 9, 198, 4, 194, 207,
+			48, 241, 192, 20, 9, 198, 64, 20, 139, 21, 33, 64, 20, 9, 198, 24, 146, 211, 21, 33, 64, 20, 5, 194, 16, 16, 72, 0, 10, 199,
+			5, 48, 133, 77, 67, 211, 20, 20, 10, 199, 65, 35, 203, 85, 34, 83, 80, 20, 10, 199, 56, 245, 133, 48, 194, 83, 80, 20, 10, 199,
+			52, 241, 5, 72, 226, 83, 80, 20, 10, 199, 44, 243, 80, 60, 226, 83, 80, 20, 10, 199, 44, 243, 77, 84, 226, 83, 80, 20, 10, 199,
+			32, 20, 144, 20, 226, 83, 80, 20, 14, 203, 36, 225, 21, 77, 68, 137, 4, 194, 83, 21, 32, 20, 14, 203, 16, 149, 137, 76, 147, 206,
+			4, 194, 83, 21, 32, 20, 9, 198, 76, 84, 133, 56, 17, 5, 20, 0, 11, 200, 88, 84, 147, 36, 98, 67, 21, 32, 20, 11, 200, 72,
+			84, 18, 60, 69, 67, 21, 32, 20, 11, 200, 53, 148, 212, 36, 98, 67, 21, 32, 20, 11, 200, 45, 96, 76, 36, 98, 67, 21, 32, 20,
+			11, 200, 36, 229, 18, 60, 69, 67, 21, 32, 20, 15, 204, 80, 161, 75, 44, 244, 204, 61, 96, 75, 37, 50, 192, 20, 0, 16, 205, 84,
+			65, 9, 24, 97, 82, 20, 229, 9, 21, 34, 78, 28, 20, 12, 201, 72, 84, 197, 73, 97, 82, 36, 225, 192, 20, 12, 201, 72, 83, 73,
+			81, 65, 82, 36, 225, 192, 20, 12, 201, 64, 192, 75, 5, 65, 82, 36, 225, 192, 20, 12, 201, 64, 84, 134, 61, 33, 82, 36, 225, 192,
+			20, 12, 201, 64, 21, 5, 57, 65, 82, 36, 225, 192, 20, 12, 201, 60, 36, 197, 73, 97, 82, 36, 225, 192, 20, 12, 201, 57, 83, 77,
+			21, 33, 82, 36, 225, 192, 20, 12, 201, 45, 83, 20, 37, 97, 82, 36, 225, 192, 20, 12, 201, 45, 33, 68, 37, 65, 82, 36, 225, 192,
+			20, 12, 201, 44, 243, 77, 85, 65, 82, 36, 225, 192, 20, 12, 201, 44, 20, 130, 85, 33, 82, 36, 225, 192, 20, 12, 201, 44, 19, 9,
+			9, 33, 82, 36, 225, 192, 20, 12, 201, 36, 229, 133, 57, 65, 82, 36, 225, 192, 20, 12, 201, 36, 229, 5, 29, 33, 82, 36, 225, 192,
+			20, 12, 201, 32, 244, 208, 37, 65, 82, 36, 225, 192, 20, 12, 201, 24, 16, 197, 81, 65, 82, 36, 225, 192, 20, 12, 201, 16, 84, 197,
+			73, 65, 82, 36, 225, 192, 20, 12, 201, 16, 84, 15, 73, 65, 82, 36, 225, 192, 20, 12, 201, 8, 19, 12, 61, 65, 82, 36, 225, 192,
+			20, 12, 201, 5, 69, 5, 77, 65, 82, 36, 225, 192, 20, 12, 201, 5, 49, 129, 49, 65, 82, 36, 225, 192, 20, 12, 201, 5, 4, 18,
+			21, 65, 82, 36, 225, 192, 20, 12, 201, 4, 36, 197, 57, 65, 82, 36, 225, 192, 20, 0, 13, 202, 88, 147, 204, 60, 224, 197, 48, 194,
+			83, 80, 20, 9, 198, 65, 35, 211, 4, 148, 212, 20, 9, 198, 56, 144, 143, 56, 149, 0, 20, 0, 26, 73, 64, 21, 18, 60, 230, 77,
+			36, 179, 206, 48, 110, 47, 34, 39, 50, 6, 116, 65, 37, 49, 114, 50, 0, 20, 12, 201, 76, 21, 9, 76, 96, 75, 80, 147, 206, 20,
+			12, 201, 72, 84, 18, 60, 69, 75, 80, 147, 206, 20, 12, 201, 41, 84, 137, 76, 66, 75, 80, 147, 206, 20, 10, 199, 4, 48, 197, 77,
+			50, 79, 56, 20, 10, 199, 81, 32, 86, 21, 36, 197, 72, 20, 10, 199, 72, 80, 201, 16, 149, 133, 72, 20, 10, 199, 4, 48, 197, 48,
+			84, 133, 72, 20, 10, 199, 61, 3, 1, 16, 83, 9, 28, 20, 0, 12, 201, 44, 19, 5, 40, 67, 211, 44, 244, 0, 20, 12, 201, 28,
+			19, 22, 4, 227, 211, 44, 244, 0, 20, 11, 200, 88, 19, 9, 16, 84, 137, 56, 112, 20, 11, 200, 84, 68, 129, 16, 84, 137, 56, 112,
+			20, 11, 200, 81, 84, 195, 32, 84, 137, 56, 112, 20, 11, 200, 77, 3, 206, 76, 84, 137, 56, 112, 20, 11, 200, 76, 19, 21, 80, 84,
+			137, 56, 112, 20, 11, 200, 60, 225, 21, 48, 84, 137, 56, 112, 20, 11, 200, 52, 147, 137, 52, 84, 137, 56, 112, 20, 11, 200, 52, 18,
+			213, 48, 84, 137, 56, 112, 20, 15, 204, 44, 243, 148, 36, 225, 197, 57, 65, 82, 36, 225, 192, 20, 11, 200, 28, 19, 15, 64, 84, 137,
+			56, 112, 20, 11, 200, 24, 147, 5, 80, 84, 137, 56, 112, 20, 11, 200, 20, 180, 201, 48, 84, 137, 56, 112, 20, 11, 200, 16, 82, 193,
+			80, 84, 137, 56, 112, 20, 15, 204, 9, 35, 206, 44, 244, 203, 61, 1, 82, 36, 225, 192, 20, 7, 196, 45, 33, 69, 72, 20, 11, 200,
+			81, 83, 135, 76, 147, 132, 36, 112, 20, 11, 200, 80, 18, 211, 45, 147, 4, 36, 112, 20, 11, 200, 52, 19, 135, 24, 243, 4, 36, 112,
+			20, 11, 200, 44, 243, 4, 8, 195, 196, 36, 112, 20, 11, 200, 29, 81, 6, 73, 145, 212, 36, 112, 20, 11, 200, 4, 193, 129, 16, 84,
+			140, 36, 112, 20, 11, 200, 65, 35, 214, 77, 66, 78, 16, 80, 20, 7, 196, 76, 81, 1, 56, 21, 9, 68, 8, 246, 76, 20, 21, 0,
+			10, 0, 12, 201, 77, 65, 82, 20, 243, 69, 81, 34, 64, 20, 12, 201, 44, 243, 15, 72, 147, 69, 81, 34, 64, 20, 8, 197, 32, 21,
+			129, 72, 144, 20, 8, 197, 8, 20, 143, 56, 144, 20, 0, 9, 198, 64, 84, 147, 60, 225, 76, 20, 9, 198, 88, 20, 203, 21, 34, 64,
+			20, 9, 198, 64, 192, 71, 21, 34, 64, 20, 9, 198, 48, 147, 135, 21, 34, 64, 20, 9, 198, 32, 82, 211, 21, 34, 64, 20, 9, 198,
+			48, 19, 212, 37, 50, 192, 20, 9, 198, 44, 19, 212, 37, 50, 192, 20, 9, 198, 8, 147, 212, 37, 50, 192, 20, 9, 198, 52, 19, 1,
+			44, 149, 0, 20, 0, 10, 199, 65, 35, 195, 21, 52, 207, 72, 20, 14, 203, 77, 147, 80, 80, 243, 65, 80, 243, 15, 28, 144, 20, 9,
+			198, 64, 21, 15, 48, 241, 201, 20, 9, 198, 60, 226, 207, 48, 241, 201, 20, 9, 198, 32, 243, 79, 48, 241, 201, 20, 9, 198, 13, 149,
+			15, 48, 241, 201, 20, 10, 199, 64, 243, 12, 85, 66, 79, 56, 20, 10, 199, 4, 97, 133, 45, 66, 79, 56, 20, 14, 203, 72, 82, 1,
+			8, 147, 9, 80, 84, 137, 56, 112, 20, 14, 203, 52, 243, 143, 25, 67, 206, 28, 84, 137, 56, 112, 20, 0, 18, 7, 12, 39, 3, 8,
+			1, 9, 13, 55, 110, 49, 34, 6, 35, 57, 65, 0, 12, 137, 11, 1, 22, 5, 18, 14, 195, 184, 19, 20, 11, 200, 88, 83, 133, 72,
+			243, 15, 28, 144, 20, 11, 200, 61, 35, 137, 80, 243, 15, 28, 144, 20, 11, 200, 28, 192, 67, 36, 243, 15, 28, 144, 20, 9, 134, 19,
+			195, 166, 19, 15, 14, 20, 16, 6, 18, 195, 166, 19, 15, 14, 51, 109, 89, 6, 114, 68, 0, 20, 11, 200, 21, 50, 193, 48, 84, 137,
+			56, 112, 20, 11, 200, 36, 225, 19, 81, 81, 5, 72, 80, 20, 11, 200, 48, 145, 66, 32, 21, 133, 72, 144, 20, 11, 200, 8, 241, 200,
+			60, 193, 5, 72, 144, 20, 11, 200, 36, 229, 5, 72, 197, 68, 36, 80, 20, 11, 200, 44, 243, 80, 61, 50, 84, 84, 208, 20, 11, 200,
+			64, 243, 25, 56, 243, 73, 84, 208, 20, 11, 200, 52, 147, 12, 20, 227, 137, 84, 208, 20, 11, 200, 21, 96, 78, 28, 83, 9, 84, 208,
+			20, 11, 200, 32, 84, 148, 84, 114, 78, 16, 80, 20, 7, 196, 52, 240, 137, 48, 20, 7, 196, 16, 80, 129, 80, 20, 9, 198, 45, 38,
+			83, 80, 19, 0, 20, 0, 12, 201, 64, 19, 132, 20, 176, 71, 21, 34, 64, 20, 12, 201, 81, 34, 78, 36, 64, 68, 37, 50, 192, 20,
+			12, 201, 80, 83, 5, 76, 179, 208, 37, 50, 192, 20, 12, 201, 64, 20, 129, 80, 18, 212, 37, 50, 192, 20, 12, 201, 48, 16, 153, 72,
+			147, 148, 37, 50, 192, 20, 12, 201, 37, 52, 129, 20, 194, 84, 37, 50, 192, 20, 12, 201, 33, 148, 15, 80, 18, 212, 37, 50, 192, 20,
+			12, 201, 33, 145, 18, 60, 198, 84, 37, 50, 192, 20, 12, 201, 4, 193, 207, 72, 149, 13, 37, 50, 192, 20, 12, 201, 16, 243, 73, 12,
+			147, 5, 72, 85, 0, 20, 8, 197, 76, 17, 146, 4, 224, 21, 0, 14, 139, 19, 5, 14, 20, 5, 14, 20, 9, 195, 184, 19, 20, 14,
+			139, 16, 18, 15, 13, 9, 19, 11, 21, 195, 184, 19, 20, 9, 198, 41, 81, 1, 37, 53, 0, 20, 9, 198, 4, 65, 78, 60, 145, 0,
+			20, 9, 198, 24, 244, 131, 21, 33, 84, 20, 9, 198, 72, 81, 201, 60, 224, 76, 20, 9, 198, 29, 85, 20, 85, 32, 76, 20, 0, 15,
+			140, 16, 18, 195, 166, 20, 5, 14, 20, 9, 195, 184, 19, 20, 12, 137, 7, 21, 22, 5, 18, 14, 195, 184, 18, 20, 10, 199, 44, 195,
+			210, 21, 34, 78, 28, 20, 12, 201, 72, 81, 133, 72, 83, 148, 36, 83, 0, 20, 10, 199, 16, 83, 5, 28, 84, 133, 80, 20, 10, 199,
+			16, 80, 201, 16, 84, 133, 80, 20, 10, 199, 4, 197, 5, 72, 84, 133, 80, 20, 12, 201, 16, 147, 69, 57, 50, 79, 56, 19, 0, 20,
+			0, 7, 196, 88, 243, 21, 80, 20, 9, 198, 77, 1, 75, 84, 193, 82, 20, 9, 198, 64, 192, 84, 36, 225, 82, 20, 9, 198, 64, 20,
+			208, 60, 193, 82, 20, 9, 198, 44, 242, 197, 81, 65, 82, 20, 9, 198, 44, 19, 11, 84, 193, 82, 20, 9, 198, 16, 148, 211, 60, 225,
+			82, 20, 9, 198, 16, 84, 212, 36, 225, 82, 20, 9, 198, 16, 82, 204, 36, 225, 82, 20, 9, 198, 5, 4, 18, 60, 33, 82, 20, 9,
+			198, 88, 149, 18, 36, 243, 0, 20, 11, 200, 9, 35, 205, 44, 19, 9, 84, 208, 20, 9, 198, 77, 80, 141, 5, 34, 78, 20, 9, 198,
+			16, 19, 13, 5, 66, 78, 20, 7, 196, 64, 81, 1, 48, 20, 7, 196, 52, 241, 1, 48, 20, 7, 196, 5, 33, 65, 48, 20, 0, 14,
+			139, 1, 13, 2, 1, 19, 19, 1, 4, 195, 184, 18, 20, 12, 201, 65, 35, 205, 37, 50, 213, 37, 65, 84, 20, 12, 201, 80, 83, 5,
+			80, 82, 206, 37, 50, 192, 20, 12, 201, 76, 147, 135, 4, 193, 83, 37, 50, 192, 20, 12, 201, 52, 17, 1, 28, 20, 203, 37, 50, 192,
+			20, 12, 201, 44, 244, 205, 60, 115, 206, 37, 50, 192, 20, 12, 201, 28, 84, 149, 56, 66, 86, 37, 50, 192, 20, 12, 201, 64, 84, 137,
+			4, 194, 83, 21, 33, 84, 20, 0, 9, 198, 48, 19, 65, 37, 53, 0, 20, 20, 66, 12, 64, 89, 36, 72, 36, 51, 6, 114, 65, 0,
+			44, 20, 81, 114, 111, 109, 32, 9, 198, 17, 147, 129, 52, 149, 0, 20, 13, 202, 20, 180, 208, 21, 34, 77, 20, 229, 1, 48, 20, 13,
+			202, 16, 84, 1, 73, 65, 77, 20, 229, 1, 48, 20, 0, 12, 137, 16, 18, 195, 166, 13, 1, 20, 21, 18, 20, 10, 199, 56, 21, 9,
+			88, 149, 5, 80, 20, 10, 199, 52, 18, 143, 72, 149, 5, 80, 20, 10, 199, 48, 246, 65, 48, 149, 5, 80, 20, 10, 199, 36, 229, 9,
+			52, 149, 5, 80, 20, 10, 199, 4, 97, 137, 56, 149, 5, 80, 20, 12, 201, 36, 211, 65, 81, 34, 75, 84, 193, 82, 20, 12, 201, 8,
+			144, 140, 36, 241, 210, 4, 97, 82, 20, 10, 199, 52, 244, 129, 80, 244, 137, 20, 20, 10, 199, 65, 148, 129, 52, 145, 1, 48, 20, 0,
+			21, 68, 77, 67, 210, 80, 89, 47, 39, 34, 72, 15, 107, 112, 40, 0, 81, 104, 97, 118, 32, 15, 204, 84, 225, 5, 72, 82, 211, 81,
+			33, 77, 37, 65, 84, 20, 9, 198, 81, 33, 77, 84, 193, 82, 20, 9, 198, 65, 35, 198, 4, 225, 82, 20, 9, 198, 56, 149, 133, 48,
+			193, 82, 20, 9, 198, 52, 245, 73, 48, 193, 82, 20, 9, 198, 44, 243, 77, 5, 65, 82, 20, 9, 198, 36, 226, 193, 72, 225, 82, 20,
+			9, 198, 25, 37, 83, 81, 33, 82, 20, 9, 198, 16, 148, 203, 85, 65, 82, 20, 7, 196, 4, 65, 5, 72, 20, 0, 9, 198, 76, 130,
+			73, 80, 148, 203, 20, 9, 198, 65, 35, 211, 4, 148, 203, 20, 9, 198, 49, 83, 129, 80, 148, 203, 20, 9, 198, 9, 83, 9, 52, 148,
+			203, 20, 9, 198, 5, 67, 5, 80, 148, 203, 20, 9, 198, 17, 32, 77, 5, 66, 75, 20, 0, 13, 202, 77, 80, 147, 36, 66, 65, 72,
+			149, 5, 80, 20, 13, 202, 64, 192, 85, 76, 144, 137, 48, 149, 5, 80, 20, 13, 202, 21, 128, 197, 57, 68, 137, 12, 149, 5, 80, 20,
+			13, 202, 4, 113, 210, 21, 52, 201, 88, 149, 5, 80, 20, 9, 198, 52, 20, 135, 21, 34, 84, 20, 9, 198, 24, 244, 198, 61, 34, 84,
+			20, 0, 10, 199, 20, 118, 80, 80, 243, 15, 28, 20, 10, 199, 72, 80, 75, 80, 149, 133, 72, 20, 12, 137, 13, 195, 166, 1, 14, 4,
+			18, 5, 18, 20, 10, 199, 44, 243, 150, 21, 33, 197, 72, 20, 10, 199, 44, 243, 147, 84, 197, 5, 72, 20, 12, 201, 44, 243, 80, 48,
+			83, 69, 57, 65, 82, 20, 10, 199, 44, 243, 77, 4, 225, 5, 72, 20, 10, 199, 77, 67, 210, 4, 117, 9, 28, 20, 10, 199, 8, 20,
+			142, 4, 117, 9, 28, 20, 10, 199, 52, 243, 143, 45, 32, 84, 36, 20, 10, 199, 77, 67, 210, 4, 117, 9, 28, 20, 10, 199, 8, 20,
+			142, 4, 117, 9, 28, 20, 10, 199, 36, 229, 18, 36, 112, 78, 80, 20, 0, 9, 198, 44, 244, 148, 37, 51, 206, 20, 7, 196, 52, 83,
+			15, 56, 20, 13, 138, 9, 13, 16, 18, 195, 166, 7, 14, 5, 18, 20, 7, 196, 49, 81, 193, 72, 20, 9, 198, 44, 243, 77, 85, 64,
+			66, 20, 0, 7, 197, 8, 19, 12, 60, 224, 12, 201, 20, 180, 208, 21, 34, 77, 20, 229, 0, 20, 12, 201, 44, 243, 77, 84, 226, 75,
+			4, 229, 0, 20, 10, 69, 64, 145, 7, 36, 224, 21, 0, 10, 0, 13, 202, 20, 101, 5, 73, 33, 84, 80, 83, 9, 28, 20, 12, 201,
+			64, 244, 212, 76, 52, 137, 65, 69, 77, 20, 0, 12, 201, 53, 83, 73, 24, 146, 193, 80, 147, 206, 20, 10, 199, 72, 84, 208, 20, 181,
+			5, 72, 20, 10, 199, 52, 83, 147, 81, 37, 69, 72, 20, 10, 199, 44, 243, 147, 81, 37, 69, 72, 20, 10, 199, 36, 228, 212, 37, 69,
+			69, 72, 20, 10, 199, 5, 53, 18, 36, 225, 197, 72, 20, 10, 199, 4, 225, 204, 37, 53, 9, 44, 20, 10, 199, 29, 32, 84, 84, 192,
+			78, 80, 20, 10, 199, 16, 83, 196, 61, 32, 78, 80, 20, 10, 199, 44, 243, 134, 37, 50, 193, 8, 20, 0, 10, 67, 16, 21, 5, 72,
+			36, 57, 47, 0, 12, 201, 88, 246, 69, 85, 34, 83, 80, 148, 203, 20, 12, 201, 80, 84, 146, 61, 34, 83, 80, 148, 203, 20, 12, 201,
+			77, 147, 66, 60, 194, 83, 80, 148, 203, 20, 12, 201, 77, 64, 76, 36, 226, 83, 80, 148, 203, 20, 12, 201, 77, 2, 82, 37, 66, 83,
+			80, 148, 203, 20, 12, 201, 76, 240, 201, 4, 194, 83, 80, 148, 203, 20, 12, 201, 72, 149, 21, 4, 194, 83, 80, 148, 203, 20, 12, 201,
+			65, 34, 86, 5, 66, 83, 80, 148, 203, 20, 12, 201, 28, 83, 197, 48, 82, 212, 72, 148, 203, 20, 12, 201, 24, 244, 141, 4, 194, 83,
+			80, 148, 203, 20, 12, 201, 24, 85, 68, 4, 194, 83, 80, 148, 203, 20, 12, 201, 24, 85, 9, 12, 130, 83, 80, 148, 203, 20, 12, 201,
+			16, 20, 151, 36, 226, 83, 80, 148, 203, 20, 12, 201, 9, 37, 84, 4, 194, 83, 80, 148, 203, 20, 12, 201, 4, 36, 213, 72, 66, 83,
+			80, 148, 203, 20, 0, 21, 73, 64, 20, 211, 21, 0, 82, 80, 245, 84, 48, 110, 35, 71, 112, 47, 6, 40, 0, 20, 8, 197, 76, 19,
+			4, 21, 32, 20, 8, 197, 4, 114, 84, 21, 32, 20, 8, 197, 64, 83, 131, 36, 192, 20, 8, 197, 44, 243, 131, 36, 192, 20, 12, 201,
+			81, 32, 78, 77, 0, 82, 20, 229, 0, 20, 12, 201, 81, 32, 78, 77, 0, 82, 20, 228, 192, 20, 0, 13, 202, 45, 96, 76, 36, 98,
+			75, 5, 66, 79, 56, 20, 9, 198, 80, 16, 149, 21, 33, 64, 20, 9, 198, 56, 244, 141, 21, 33, 64, 20, 9, 198, 24, 84, 137, 21,
+			33, 64, 20, 9, 198, 36, 179, 206, 37, 50, 192, 20, 9, 198, 77, 1, 75, 81, 32, 76, 20, 9, 198, 44, 244, 144, 61, 32, 76, 20,
+			9, 198, 24, 84, 212, 37, 96, 76, 20, 0, 15, 204, 76, 17, 15, 52, 20, 207, 12, 130, 83, 80, 148, 203, 20, 15, 204, 64, 84, 134,
+			20, 181, 9, 60, 226, 83, 80, 148, 203, 20, 15, 204, 44, 243, 77, 84, 226, 84, 5, 34, 83, 80, 148, 203, 20, 15, 204, 36, 225, 9,
+			88, 145, 21, 4, 194, 83, 80, 148, 203, 20, 15, 204, 36, 212, 18, 21, 52, 201, 60, 226, 83, 80, 148, 203, 20, 15, 204, 20, 180, 208,
+			4, 228, 201, 60, 226, 83, 80, 148, 203, 20, 13, 138, 12, 195, 166, 18, 5, 18, 9, 14, 4, 5, 20, 9, 198, 44, 19, 143, 56, 17,
+			5, 20, 0, 11, 200, 44, 19, 132, 36, 64, 84, 85, 32, 20, 11, 200, 61, 33, 193, 56, 241, 210, 4, 208, 20, 11, 200, 45, 38, 80,
+			80, 241, 210, 4, 208, 20, 11, 200, 20, 180, 208, 48, 242, 84, 21, 32, 20, 11, 200, 4, 178, 207, 52, 211, 196, 21, 32, 20, 16, 141,
+			16, 18, 15, 16, 195, 166, 4, 5, 21, 20, 9, 19, 11, 20, 11, 200, 77, 66, 80, 20, 225, 9, 84, 208, 20, 11, 200, 44, 243, 80,
+			20, 225, 9, 84, 208, 20, 0, 8, 197, 45, 83, 20, 85, 32, 20, 8, 197, 45, 34, 68, 21, 32, 20, 8, 197, 41, 84, 212, 21, 32,
+			20, 12, 201, 36, 225, 140, 5, 67, 210, 37, 50, 192, 20, 0, 9, 198, 80, 19, 135, 21, 33, 64, 20, 9, 198, 64, 21, 83, 21, 33,
+			64, 20, 9, 198, 52, 20, 211, 21, 33, 64, 20, 9, 198, 52, 20, 203, 21, 33, 64, 20, 9, 198, 52, 20, 139, 21, 33, 64, 20, 9,
+			198, 52, 19, 139, 21, 33, 64, 20, 9, 198, 45, 84, 147, 21, 33, 64, 20, 9, 198, 44, 20, 211, 21, 33, 64, 20, 9, 198, 24, 147,
+			135, 21, 33, 64, 20, 0, 10, 199, 88, 20, 197, 45, 67, 205, 36, 20, 9, 198, 72, 83, 85, 48, 17, 5, 20, 9, 198, 52, 84, 211,
+			36, 17, 5, 20, 10, 199, 61, 33, 15, 56, 224, 78, 76, 20, 0, 15, 204, 24, 244, 148, 36, 98, 75, 5, 67, 210, 37, 50, 192, 20,
+			7, 196, 88, 83, 137, 56, 20, 11, 200, 77, 66, 80, 20, 225, 9, 5, 64, 20, 7, 196, 61, 34, 193, 56, 21, 0, 8, 197, 21, 2,
+			76, 60, 112, 20, 8, 197, 52, 19, 5, 72, 144, 20, 9, 198, 88, 242, 193, 48, 148, 203, 20, 9, 198, 76, 177, 77, 5, 66, 75, 20,
+			12, 201, 44, 243, 147, 80, 149, 21, 20, 229, 0, 20, 0, 9, 198, 88, 242, 193, 48, 148, 212, 20, 9, 198, 4, 227, 129, 48, 148, 212,
+			20, 9, 198, 44, 19, 148, 61, 34, 64, 20, 9, 198, 76, 178, 90, 60, 145, 0, 20, 9, 198, 72, 82, 212, 61, 32, 84, 20, 9, 198,
+			52, 241, 5, 72, 21, 0, 20, 9, 198, 48, 82, 212, 61, 32, 84, 20, 0, 10, 199, 76, 81, 205, 20, 229, 5, 72, 20, 10, 199, 64,
+			145, 205, 20, 229, 5, 72, 20, 10, 199, 44, 243, 134, 84, 225, 5, 72, 20, 10, 199, 5, 84, 203, 84, 197, 5, 72, 20, 10, 199, 61,
+			4, 201, 28, 83, 9, 28, 20, 10, 199, 33, 83, 4, 76, 19, 9, 28, 20, 10, 199, 4, 229, 1, 28, 83, 9, 28, 20, 10, 199, 4,
+			228, 203, 84, 83, 9, 28, 20, 9, 198, 32, 148, 212, 61, 34, 69, 20, 0, 22, 72, 48, 81, 197, 56, 65, 82, 56, 80, 55, 36, 81,
+			6, 109, 50, 72, 114, 50, 108, 89, 0, 21, 72, 48, 81, 197, 56, 65, 82, 56, 80, 55, 36, 81, 6, 109, 50, 72, 114, 50, 108, 0,
+			11, 200, 16, 84, 212, 36, 195, 5, 72, 144, 20, 11, 200, 81, 98, 86, 48, 17, 212, 36, 112, 20, 11, 200, 76, 176, 76, 44, 17, 212,
+			36, 112, 20, 11, 200, 72, 81, 197, 16, 84, 140, 36, 112, 20, 11, 200, 52, 19, 132, 32, 17, 148, 36, 112, 20, 11, 200, 24, 244, 149,
+			17, 49, 76, 36, 112, 20, 11, 200, 24, 244, 147, 80, 19, 132, 36, 112, 20, 11, 200, 64, 20, 129, 16, 148, 201, 76, 176, 20, 11, 200,
+			52, 19, 131, 33, 84, 137, 76, 176, 20, 12, 201, 5, 66, 5, 56, 145, 78, 76, 148, 203, 20, 11, 200, 45, 144, 133, 72, 225, 84, 36,
+			176, 20, 11, 200, 81, 98, 86, 48, 17, 212, 36, 112, 20, 11, 200, 76, 176, 76, 44, 17, 212, 36, 112, 20, 9, 198, 4, 229, 9, 45,
+			96, 82, 20, 0, 8, 197, 73, 81, 197, 72, 144, 20, 12, 201, 72, 81, 213, 48, 17, 5, 81, 34, 64, 20, 8, 197, 48, 149, 1, 56,
+			144, 20, 8, 197, 57, 80, 78, 12, 80, 20, 12, 201, 36, 228, 212, 73, 82, 212, 61, 32, 84, 20, 0, 11, 136, 3, 9, 19, 5, 12,
+			195, 184, 18, 20, 9, 198, 80, 145, 199, 21, 34, 64, 20, 9, 198, 72, 83, 147, 21, 34, 64, 20, 9, 198, 64, 18, 203, 21, 34, 64,
+			20, 9, 198, 40, 20, 203, 21, 34, 64, 20, 9, 198, 24, 148, 203, 21, 34, 64, 20, 9, 198, 64, 20, 148, 37, 50, 192, 20, 18, 70,
+			60, 64, 76, 37, 50, 192, 39, 72, 35, 55, 6, 37, 89, 49, 0, 20, 9, 198, 4, 96, 84, 37, 50, 192, 20, 0, 12, 137, 9, 14,
+			7, 5, 14, 9, 195, 184, 18, 20, 10, 199, 65, 83, 19, 5, 66, 79, 56, 20, 12, 137, 1, 4, 8, 195, 166, 19, 9, 15, 14, 20,
+			10, 199, 81, 32, 78, 76, 149, 5, 72, 20, 10, 199, 20, 97, 133, 45, 69, 69, 72, 20, 10, 199, 45, 84, 141, 4, 113, 82, 36, 20,
+			10, 199, 56, 20, 15, 48, 149, 1, 56, 20, 10, 199, 8, 148, 135, 37, 69, 9, 56, 20, 0, 12, 137, 9, 14, 7, 5, 14, 9, 195,
+			184, 19, 20, 9, 134, 7, 5, 8, 195, 184, 18, 20, 11, 200, 72, 81, 213, 48, 84, 137, 56, 112, 20, 11, 200, 21, 53, 9, 52, 84,
+			137, 56, 112, 20, 11, 200, 9, 83, 148, 52, 17, 197, 72, 144, 20, 11, 200, 76, 19, 132, 77, 147, 140, 36, 112, 20, 11, 200, 4, 225,
+			1, 49, 84, 201, 76, 176, 20, 11, 200, 65, 35, 211, 12, 83, 137, 84, 208, 20, 9, 198, 16, 243, 73, 12, 147, 0, 20, 7, 196, 16,
+			80, 137, 48, 20, 9, 198, 48, 21, 5, 72, 19, 0, 20, 0, 10, 135, 12, 195, 166, 19, 9, 15, 14, 20, 9, 198, 49, 85, 135, 37,
+			34, 71, 20, 8, 197, 8, 83, 154, 60, 192, 20, 12, 201, 88, 149, 1, 48, 148, 212, 37, 50, 192, 20, 12, 201, 84, 226, 79, 56, 148,
+			212, 37, 50, 192, 20, 12, 201, 80, 245, 5, 52, 148, 212, 37, 50, 192, 20, 12, 201, 76, 227, 194, 8, 148, 212, 37, 50, 192, 20, 12,
+			201, 76, 21, 1, 56, 148, 212, 37, 50, 192, 20, 12, 201, 72, 246, 65, 48, 148, 212, 37, 50, 192, 20, 12, 201, 72, 145, 207, 72, 148,
+			212, 37, 50, 192, 20, 12, 201, 65, 54, 75, 60, 65, 76, 37, 50, 192, 20, 12, 201, 64, 244, 21, 48, 148, 212, 37, 50, 192, 20, 12,
+			201, 64, 193, 79, 56, 20, 212, 37, 50, 192, 20, 12, 201, 64, 19, 148, 20, 148, 212, 37, 50, 192, 20, 12, 201, 61, 5, 9, 52, 148,
+			212, 37, 50, 192, 20, 12, 201, 56, 146, 9, 48, 148, 212, 37, 50, 192, 20, 12, 201, 52, 244, 135, 4, 224, 84, 37, 50, 192, 20, 12,
+			201, 52, 82, 193, 56, 148, 212, 37, 50, 192, 20, 12, 201, 48, 246, 65, 48, 148, 212, 37, 50, 192, 20, 12, 201, 48, 241, 193, 72, 149,
+			13, 37, 50, 192, 20, 12, 201, 37, 51, 1, 52, 148, 212, 37, 50, 192, 20, 12, 201, 36, 65, 65, 48, 148, 212, 37, 50, 192, 20, 12,
+			201, 33, 83, 65, 56, 148, 212, 37, 50, 192, 20, 12, 201, 32, 147, 132, 84, 148, 212, 37, 50, 192, 20, 12, 201, 32, 81, 15, 56, 148,
+			212, 37, 50, 192, 20, 12, 201, 28, 21, 76, 48, 148, 212, 37, 50, 192, 20, 12, 201, 24, 83, 73, 56, 148, 212, 37, 50, 192, 20, 12,
+			201, 24, 21, 1, 48, 148, 212, 37, 50, 192, 20, 12, 201, 21, 52, 193, 100, 148, 212, 37, 50, 192, 20, 12, 201, 21, 50, 193, 64, 148,
+			212, 37, 50, 192, 20, 12, 201, 20, 212, 9, 72, 148, 212, 37, 50, 192, 20, 12, 201, 16, 148, 137, 28, 148, 212, 37, 50, 192, 20, 12,
+			201, 16, 144, 71, 56, 244, 212, 37, 50, 192, 20, 12, 201, 16, 83, 9, 72, 148, 212, 37, 50, 192, 20, 12, 201, 4, 224, 82, 44, 148,
+			212, 37, 50, 192, 20, 12, 201, 4, 197, 18, 84, 148, 212, 37, 50, 192, 20, 12, 201, 4, 194, 217, 52, 148, 212, 37, 50, 192, 20, 12,
+			201, 4, 181, 9, 88, 148, 212, 37, 50, 192, 20, 8, 197, 24, 147, 129, 57, 48, 20, 0, 19, 67, 80, 145, 19, 47, 37, 89, 15, 50,
+			6, 114, 49, 0, 81, 110, 111, 107, 32, 14, 139, 20, 5, 14, 4, 5, 14, 20, 9, 195, 184, 19, 20, 11, 136, 4, 15, 13, 16, 20,
+			195, 184, 18, 20, 9, 198, 72, 84, 207, 49, 85, 0, 20, 13, 202, 41, 84, 212, 36, 98, 75, 5, 66, 79, 56, 20, 13, 202, 24, 19,
+			19, 36, 98, 75, 5, 66, 79, 56, 20, 9, 198, 4, 227, 149, 37, 65, 84, 20, 9, 198, 24, 244, 148, 36, 227, 128, 20, 9, 198, 8,
+			192, 83, 21, 33, 84, 20, 0, 11, 136, 14, 15, 18, 13, 12, 195, 184, 19, 20, 12, 137, 3, 8, 9, 11, 1, 14, 195, 184, 18, 20,
+			12, 137, 1, 18, 18, 1, 14, 7, 195, 184, 18, 20, 10, 199, 44, 21, 1, 48, 84, 19, 36, 20, 10, 199, 9, 35, 205, 44, 19, 9,
+			20, 20, 0, 12, 137, 3, 8, 9, 11, 1, 14, 195, 184, 19, 20, 7, 196, 36, 130, 133, 48, 20, 9, 198, 72, 16, 129, 81, 65, 82,
+			20, 9, 198, 64, 84, 134, 61, 33, 82, 20, 9, 198, 60, 36, 197, 73, 97, 82, 20, 9, 198, 57, 83, 77, 21, 33, 82, 20, 9, 198,
+			44, 243, 77, 85, 65, 82, 20, 9, 198, 24, 16, 197, 81, 65, 82, 20, 9, 198, 16, 82, 25, 17, 33, 82, 20, 9, 198, 8, 19, 12,
+			61, 65, 82, 20, 9, 198, 5, 49, 129, 49, 65, 82, 20, 9, 198, 4, 67, 73, 81, 65, 82, 20, 15, 204, 80, 245, 1, 48, 149, 1,
+			72, 148, 212, 37, 50, 192, 20, 15, 204, 77, 80, 138, 20, 181, 9, 88, 148, 212, 37, 50, 192, 20, 15, 204, 77, 2, 82, 37, 69, 65,
+			48, 148, 212, 37, 50, 192, 20, 15, 204, 52, 84, 139, 4, 229, 9, 48, 148, 212, 37, 50, 192, 20, 15, 204, 37, 51, 204, 5, 66, 79,
+			56, 148, 212, 37, 50, 192, 20, 15, 204, 16, 80, 197, 57, 68, 129, 48, 148, 212, 37, 50, 192, 20, 15, 204, 5, 96, 78, 80, 112, 82,
+			16, 148, 212, 37, 50, 192, 20, 11, 200, 44, 243, 15, 24, 243, 137, 84, 208, 20, 11, 200, 44, 243, 12, 60, 181, 137, 84, 208, 20, 9,
+			198, 28, 198, 67, 21, 34, 78, 20, 0, 14, 69, 76, 128, 77, 65, 80, 91, 57, 35, 65, 71, 39, 0, 12, 201, 80, 16, 133, 48, 192,
+			82, 37, 50, 192, 20, 12, 201, 64, 243, 25, 80, 82, 206, 37, 50, 192, 20, 12, 201, 48, 81, 197, 56, 64, 82, 37, 50, 192, 20, 12,
+			201, 45, 81, 134, 21, 37, 6, 37, 50, 192, 20, 12, 201, 44, 19, 5, 56, 64, 82, 37, 50, 192, 20, 12, 201, 41, 81, 207, 76, 192,
+			86, 37, 50, 192, 20, 12, 201, 16, 81, 140, 5, 67, 210, 37, 50, 192, 20, 12, 201, 36, 229, 5, 72, 84, 211, 21, 33, 84, 20, 12,
+			201, 24, 147, 9, 64, 83, 147, 21, 33, 84, 20, 6, 195, 85, 96, 78, 21, 0, 5, 194, 8, 128, 17, 9, 198, 61, 1, 82, 37, 53,
+			0, 20, 9, 198, 37, 32, 78, 37, 53, 0, 20, 17, 142, 16, 18, 195, 166, 16, 15, 19, 9, 20, 9, 15, 14, 5, 12, 20, 9, 198,
+			44, 21, 5, 17, 32, 76, 20, 13, 4, 95, 20, 21, 18, 47, 6, 108, 12, 50, 72, 0, 0, 10, 199, 88, 82, 212, 61, 34, 69, 48,
+			20, 12, 201, 45, 35, 208, 77, 98, 83, 37, 65, 82, 20, 12, 201, 36, 229, 5, 73, 5, 78, 45, 65, 82, 20, 18, 207, 36, 229, 5,
+			72, 224, 84, 36, 243, 129, 48, 148, 212, 37, 50, 192, 20, 10, 199, 44, 243, 15, 24, 243, 137, 20, 20, 10, 199, 44, 243, 12, 60, 181,
+			137, 20, 20, 0, 14, 68, 5, 33, 207, 56, 6, 35, 34, 81, 114, 50, 0, 20, 13, 138, 16, 18, 195, 166, 19, 5, 18, 22, 5, 18,
+			20, 9, 198, 65, 35, 205, 61, 97, 82, 20, 9, 198, 21, 128, 197, 73, 1, 82, 20, 9, 198, 20, 180, 197, 45, 97, 82, 20, 9, 198,
+			12, 83, 147, 85, 33, 82, 20, 9, 198, 4, 48, 197, 65, 65, 82, 20, 11, 200, 44, 243, 147, 20, 181, 133, 57, 48, 20, 7, 196, 8,
+			242, 129, 56, 21, 0, 12, 201, 5, 37, 9, 48, 193, 82, 37, 53, 0, 20, 12, 201, 44, 243, 80, 48, 82, 211, 37, 65, 84, 20, 8,
+			197, 33, 145, 18, 36, 64, 20, 8, 197, 64, 244, 212, 36, 192, 20, 8, 67, 64, 18, 82, 21, 0, 10, 0, 13, 202, 77, 80, 138, 20,
+			181, 9, 88, 149, 5, 80, 20, 13, 202, 64, 84, 141, 37, 52, 201, 88, 149, 5, 80, 20, 13, 202, 32, 85, 5, 72, 241, 197, 56, 149,
+			5, 80, 20, 13, 202, 5, 69, 18, 4, 181, 9, 88, 149, 5, 80, 20, 15, 140, 16, 18, 195, 166, 4, 9, 19, 16, 15, 14, 5, 18,
+			20, 9, 198, 52, 244, 203, 61, 98, 84, 20, 9, 198, 36, 228, 212, 4, 228, 192, 20, 9, 198, 20, 193, 71, 4, 229, 0, 20, 17, 70,
+			16, 19, 147, 4, 229, 0, 72, 35, 50, 89, 6, 112, 50, 0, 20, 0, 10, 199, 65, 35, 203, 80, 243, 15, 28, 20, 10, 199, 16, 82,
+			210, 21, 65, 82, 20, 20, 10, 199, 4, 225, 201, 88, 83, 9, 28, 20, 6, 195, 60, 35, 204, 20, 9, 198, 72, 83, 69, 16, 149, 77,
+			20, 9, 198, 4, 181, 129, 72, 149, 77, 20, 10, 199, 16, 83, 79, 45, 32, 84, 36, 20, 10, 199, 80, 20, 148, 72, 22, 137, 56, 20,
+			12, 4, 95, 49, 49, 15, 109, 55, 83, 72, 108, 0, 0, 7, 196, 88, 83, 9, 56, 20, 14, 139, 16, 18, 195, 166, 6, 5, 18, 5,
+			14, 3, 5, 20, 0, 11, 67, 20, 113, 78, 35, 12, 57, 13, 50, 0, 12, 201, 60, 36, 212, 37, 0, 84, 36, 243, 128, 20, 12, 201,
+			36, 225, 9, 24, 97, 82, 20, 228, 192, 20, 0, 13, 202, 72, 85, 143, 49, 85, 9, 60, 225, 82, 20, 20, 13, 202, 36, 228, 212, 73,
+			83, 69, 57, 65, 82, 20, 20, 13, 202, 28, 83, 142, 20, 212, 203, 84, 83, 9, 28, 20, 12, 201, 72, 84, 208, 60, 228, 207, 72, 149,
+			77, 20, 9, 198, 76, 83, 148, 20, 228, 192, 20, 8, 66, 21, 32, 109, 34, 0, 72, 0, 10, 199, 76, 145, 206, 4, 193, 82, 20, 20,
+			10, 199, 72, 81, 143, 72, 209, 82, 20, 20, 10, 199, 44, 243, 134, 37, 50, 197, 72, 20, 10, 199, 20, 180, 212, 72, 18, 5, 72, 20,
+			10, 199, 24, 244, 147, 100, 227, 9, 28, 20, 9, 198, 4, 209, 137, 8, 149, 77, 20, 10, 199, 12, 19, 66, 60, 66, 129, 56, 20, 10,
+			199, 4, 36, 212, 36, 225, 78, 80, 20, 6, 195, 72, 80, 76, 20, 10, 199, 16, 147, 5, 81, 64, 78, 80, 20, 0, 9, 198, 76, 144,
+			137, 72, 145, 78, 20, 9, 198, 28, 83, 210, 28, 145, 78, 20, 11, 200, 25, 32, 78, 12, 148, 203, 4, 224, 20, 0, 10, 135, 22, 21,
+			12, 7, 195, 166, 18, 20, 8, 197, 21, 2, 84, 21, 64, 20, 8, 197, 64, 240, 200, 21, 32, 20, 15, 204, 20, 180, 208, 21, 34, 77,
+			20, 229, 1, 72, 149, 77, 20, 8, 197, 29, 32, 78, 37, 64, 20, 8, 197, 28, 19, 66, 37, 64, 20, 8, 197, 20, 210, 82, 5, 64,
+			20, 8, 197, 8, 20, 130, 5, 32, 20, 14, 69, 5, 81, 213, 77, 64, 113, 81, 113, 89, 72, 0, 41, 0, 13, 202, 16, 81, 137, 9,
+			34, 76, 48, 21, 15, 72, 20, 9, 198, 4, 50, 68, 61, 49, 64, 20, 9, 198, 24, 244, 141, 21, 33, 64, 20, 9, 198, 104, 20, 137,
+			76, 209, 64, 20, 9, 198, 88, 84, 137, 76, 209, 64, 20, 9, 198, 76, 130, 73, 76, 209, 64, 20, 13, 138, 11, 22, 195, 166, 18, 21,
+			12, 1, 14, 20, 20, 0, 10, 199, 80, 18, 212, 21, 34, 78, 28, 20, 10, 199, 77, 3, 204, 21, 34, 78, 28, 20, 10, 199, 76, 243,
+			132, 21, 34, 78, 28, 20, 10, 199, 52, 243, 148, 21, 34, 78, 28, 20, 10, 199, 8, 20, 132, 21, 34, 78, 28, 20, 10, 199, 65, 34,
+			78, 76, 84, 211, 20, 20, 12, 201, 76, 176, 78, 16, 147, 129, 88, 145, 78, 20, 10, 199, 4, 36, 212, 36, 225, 78, 76, 20, 0, 11,
+			200, 36, 212, 18, 36, 208, 84, 85, 32, 20, 11, 200, 77, 1, 67, 36, 19, 9, 77, 64, 20, 11, 200, 56, 85, 84, 72, 19, 9, 77,
+			64, 20, 11, 200, 56, 21, 21, 72, 19, 9, 77, 64, 20, 11, 200, 44, 243, 139, 72, 85, 9, 77, 64, 20, 11, 200, 4, 36, 207, 49,
+			85, 9, 77, 64, 20, 7, 196, 28, 83, 143, 52, 20, 11, 200, 52, 241, 5, 72, 226, 84, 21, 64, 20, 11, 200, 48, 147, 133, 5, 34,
+			84, 21, 64, 20, 11, 200, 44, 243, 77, 84, 226, 84, 21, 64, 20, 11, 200, 24, 84, 212, 37, 98, 84, 21, 64, 20, 11, 200, 36, 226,
+			207, 52, 211, 196, 21, 32, 20, 9, 198, 8, 19, 19, 4, 210, 78, 20, 9, 198, 88, 83, 133, 104, 144, 78, 20, 9, 198, 60, 65, 78,
+			76, 80, 78, 20, 11, 200, 81, 34, 85, 53, 98, 82, 5, 64, 20, 9, 198, 44, 195, 196, 72, 144, 78, 21, 13, 72, 76, 85, 20, 48,
+			83, 69, 57, 64, 21, 0, 10, 0, 8, 197, 80, 242, 76, 21, 64, 20, 8, 197, 60, 209, 76, 21, 64, 20, 8, 197, 36, 99, 204, 21,
+			64, 20, 8, 197, 64, 20, 9, 77, 64, 20, 8, 197, 8, 147, 9, 77, 64, 20, 8, 197, 80, 244, 148, 21, 32, 20, 8, 197, 60, 181,
+			76, 21, 32, 20, 8, 197, 44, 243, 148, 21, 32, 20, 8, 197, 44, 20, 148, 21, 32, 20, 8, 197, 53, 84, 214, 37, 64, 20, 12, 201,
+			76, 177, 80, 80, 144, 201, 76, 209, 64, 20, 12, 201, 52, 84, 211, 36, 19, 137, 76, 209, 64, 20, 12, 201, 4, 229, 1, 28, 243, 137,
+			76, 209, 64, 20, 8, 197, 45, 32, 86, 5, 64, 20, 8, 197, 17, 32, 86, 5, 64, 20, 6, 195, 48, 144, 78, 21, 0, 17, 66, 16,
+			80, 72, 6, 37, 15, 72, 36, 34, 0, 81, 100, 101, 114, 32, 17, 66, 16, 80, 72, 6, 37, 15, 107, 36, 34, 0, 81, 104, 101, 114,
+			32, 18, 66, 16, 80, 72, 37, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 13, 202, 25, 33, 75, 88, 83, 148, 21, 34, 78,
+			28, 20, 13, 202, 25, 32, 71, 52, 83, 148, 21, 34, 78, 28, 20, 13, 202, 4, 178, 210, 20, 66, 84, 21, 34, 78, 28, 20, 18, 143,
+			16, 1, 12, 195, 166, 19, 20, 9, 14, 5, 14, 19, 9, 19, 11, 20, 9, 198, 44, 243, 69, 16, 145, 64, 20, 9, 198, 28, 84, 129,
+			56, 145, 64, 20, 9, 198, 76, 147, 9, 12, 145, 64, 20, 9, 198, 28, 84, 129, 56, 145, 64, 20, 9, 198, 52, 19, 201, 76, 209, 64,
+			20, 9, 198, 45, 80, 137, 76, 209, 64, 20, 9, 198, 24, 20, 153, 56, 112, 76, 20, 9, 198, 52, 243, 148, 4, 113, 64, 20, 5, 194,
+			16, 80, 72, 0, 14, 203, 72, 84, 212, 72, 146, 212, 37, 98, 84, 21, 64, 20, 14, 203, 72, 17, 9, 60, 18, 212, 37, 98, 84, 21,
+			64, 20, 15, 140, 16, 195, 166, 4, 5, 18, 1, 19, 20, 9, 19, 11, 20, 12, 201, 77, 68, 133, 65, 67, 205, 100, 50, 78, 20, 10,
+			199, 44, 243, 15, 77, 67, 205, 36, 20, 10, 199, 80, 243, 5, 72, 19, 131, 20, 20, 6, 195, 32, 144, 84, 20, 6, 195, 4, 112, 84,
+			20, 0, 21, 68, 44, 244, 212, 20, 49, 39, 89, 72, 13, 15, 65, 109, 86, 0, 81, 109, 101, 100, 32, 19, 68, 88, 147, 12, 20, 84,
+			37, 55, 108, 15, 89, 114, 0, 81, 115, 195, 165, 32, 11, 200, 4, 116, 137, 45, 83, 20, 85, 32, 20, 11, 200, 72, 82, 77, 64, 244,
+			148, 21, 32, 20, 11, 200, 61, 35, 129, 52, 83, 148, 21, 32, 20, 11, 200, 44, 243, 134, 72, 243, 148, 21, 32, 20, 11, 200, 36, 229,
+			5, 73, 3, 204, 21, 32, 20, 11, 200, 36, 225, 11, 88, 20, 148, 21, 32, 20, 11, 200, 72, 84, 208, 60, 225, 5, 57, 64, 20, 11,
+			200, 44, 243, 147, 20, 181, 133, 57, 64, 20, 11, 200, 16, 83, 9, 56, 181, 133, 57, 64, 20, 11, 200, 37, 36, 133, 48, 85, 129, 57,
+			64, 20, 0, 12, 201, 88, 146, 193, 72, 145, 82, 36, 225, 192, 20, 12, 201, 81, 83, 142, 20, 193, 82, 36, 225, 192, 20, 12, 201, 80,
+			16, 149, 37, 49, 82, 36, 225, 192, 20, 12, 201, 77, 148, 212, 20, 209, 82, 36, 225, 192, 20, 12, 201, 77, 83, 6, 60, 225, 82, 36,
+			225, 192, 20, 12, 201, 77, 66, 77, 84, 193, 82, 36, 225, 192, 20, 12, 201, 76, 81, 210, 20, 113, 82, 36, 225, 192, 20, 12, 201, 72,
+			85, 21, 72, 225, 82, 36, 225, 192, 20, 12, 201, 64, 245, 5, 57, 49, 82, 36, 225, 192, 20, 12, 201, 64, 241, 19, 60, 193, 82, 36,
+			225, 192, 20, 12, 201, 56, 81, 204, 36, 113, 82, 36, 225, 192, 20, 12, 201, 48, 144, 197, 57, 49, 82, 36, 225, 192, 20, 12, 201, 45,
+			84, 148, 37, 49, 82, 36, 225, 192, 20, 12, 201, 45, 33, 78, 20, 193, 82, 36, 225, 192, 20, 12, 201, 44, 244, 146, 84, 113, 82, 36,
+			225, 192, 20, 12, 201, 41, 81, 1, 37, 49, 82, 36, 225, 192, 20, 12, 201, 36, 226, 204, 84, 65, 82, 36, 225, 192, 20, 12, 201, 36,
+			226, 193, 77, 49, 82, 36, 225, 192, 20, 12, 201, 36, 225, 5, 45, 49, 82, 36, 225, 192, 20, 12, 201, 25, 84, 201, 60, 225, 82, 36,
+			225, 192, 20, 12, 201, 24, 197, 75, 81, 81, 82, 36, 225, 192, 20, 12, 201, 8, 19, 132, 4, 113, 82, 36, 225, 192, 20, 12, 201, 5,
+			67, 205, 37, 49, 82, 36, 225, 192, 20, 12, 201, 5, 34, 193, 37, 49, 82, 36, 225, 192, 20, 12, 201, 4, 227, 143, 56, 49, 82, 36,
+			225, 192, 20, 12, 201, 4, 178, 207, 72, 65, 82, 36, 225, 192, 20, 8, 197, 20, 212, 9, 72, 144, 20, 11, 136, 195, 184, 11, 21, 13,
+			5, 14, 9, 20, 12, 201, 44, 21, 15, 48, 144, 201, 76, 209, 64, 20, 12, 201, 76, 145, 206, 36, 98, 75, 4, 229, 0, 20, 0, 14,
+			139, 195, 166, 18, 5, 6, 18, 25, 7, 20, 9, 7, 20, 9, 198, 65, 54, 75, 37, 50, 192, 20, 9, 198, 4, 84, 143, 48, 149, 0,
+			20, 13, 202, 20, 180, 212, 72, 21, 129, 28, 19, 131, 20, 20, 9, 198, 16, 21, 1, 52, 21, 0, 20, 0, 18, 67, 16, 85, 0, 72,
+			6, 36, 15, 72, 36, 34, 0, 81, 100, 101, 114, 32, 18, 67, 16, 85, 0, 72, 6, 36, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32,
+			25, 67, 16, 85, 0, 72, 36, 15, 49, 84, 112, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 10, 199, 20, 180, 197,
+			45, 85, 15, 72, 20, 10, 199, 20, 229, 15, 52, 243, 15, 28, 20, 9, 198, 52, 84, 139, 60, 227, 205, 20, 15, 140, 15, 13, 19, 20,
+			195, 166, 14, 4, 5, 12, 9, 7, 20, 9, 198, 88, 149, 129, 72, 149, 77, 20, 9, 67, 16, 85, 0, 72, 36, 0, 72, 0, 10, 135,
+			12, 195, 184, 10, 2, 15, 13, 20, 15, 204, 72, 21, 9, 60, 224, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 65, 35, 204, 21, 64,
+			82, 37, 49, 82, 36, 225, 192, 20, 15, 204, 65, 34, 77, 37, 66, 86, 37, 49, 82, 36, 225, 192, 20, 15, 204, 64, 84, 147, 60, 224,
+			76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 64, 20, 129, 48, 193, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 60, 34, 133, 45, 66,
+			86, 37, 49, 82, 36, 225, 192, 20, 15, 204, 56, 21, 9, 60, 224, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 52, 20, 135, 36, 224,
+			76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 45, 34, 77, 36, 224, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 44, 243, 77, 84, 224,
+			76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 44, 20, 129, 45, 65, 82, 37, 49, 82, 36, 225, 192, 20, 15, 204, 44, 19, 142, 36, 32,
+			76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 36, 229, 5, 72, 224, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 24, 19, 73, 48, 144,
+			82, 37, 49, 82, 36, 225, 192, 20, 15, 204, 20, 193, 75, 81, 34, 70, 36, 49, 82, 36, 225, 192, 20, 15, 204, 20, 97, 133, 45, 66,
+			86, 37, 49, 82, 36, 225, 192, 20, 15, 204, 16, 149, 133, 73, 50, 70, 36, 49, 82, 36, 225, 192, 20, 15, 204, 16, 145, 134, 21, 33,
+			78, 80, 145, 82, 36, 225, 192, 20, 15, 204, 12, 243, 80, 85, 65, 82, 37, 49, 82, 36, 225, 192, 20, 15, 204, 4, 209, 82, 36, 176,
+			78, 37, 49, 82, 36, 225, 192, 20, 7, 196, 72, 17, 5, 72, 20, 11, 200, 45, 35, 206, 60, 209, 84, 72, 144, 20, 11, 200, 5, 81,
+			9, 60, 209, 84, 72, 144, 20, 11, 200, 36, 195, 21, 76, 244, 137, 76, 176, 20, 11, 200, 21, 128, 197, 57, 68, 137, 76, 176, 20, 11,
+			200, 4, 195, 21, 76, 244, 137, 76, 176, 20, 11, 200, 56, 82, 210, 60, 208, 78, 80, 144, 20, 7, 196, 37, 35, 206, 36, 20, 11, 200,
+			8, 144, 140, 36, 243, 65, 56, 144, 20, 15, 204, 44, 243, 147, 81, 37, 75, 80, 149, 137, 76, 209, 64, 20, 9, 198, 52, 19, 132, 72,
+			147, 0, 20, 14, 4, 95, 4, 16, 20, 10, 49, 4, 114, 65, 110, 12, 0, 0, 10, 135, 16, 1, 18, 12, 195, 184, 18, 20, 12, 201,
+			52, 146, 210, 60, 225, 83, 37, 50, 192, 20, 8, 197, 64, 245, 1, 28, 80, 20, 0, 29, 4, 7, 195, 184, 18, 81, 4, 118, 34, 15,
+			89, 35, 57, 15, 47, 6, 36, 55, 0, 82, 115, 105, 103, 32, 116, 105, 108, 32, 17, 66, 17, 80, 72, 40, 15, 107, 110, 12, 0, 81,
+			104, 97, 118, 101, 32, 10, 135, 6, 9, 2, 18, 195, 184, 19, 20, 11, 136, 19, 15, 9, 7, 14, 195, 184, 18, 20, 9, 198, 44, 20,
+			129, 52, 35, 204, 20, 9, 198, 76, 19, 65, 72, 149, 0, 20, 9, 198, 32, 16, 137, 80, 21, 0, 20, 8, 66, 17, 80, 72, 40, 0,
+			72, 0, 11, 136, 19, 11, 1, 2, 18, 195, 184, 19, 20, 11, 136, 7, 18, 1, 3, 9, 195, 184, 19, 20, 10, 199, 36, 227, 143, 88,
+			21, 15, 72, 20, 18, 207, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 49, 82, 36, 225, 192, 20, 10, 199, 72, 84, 212, 37, 69, 69,
+			72, 20, 10, 199, 72, 81, 140, 20, 181, 5, 72, 20, 10, 199, 65, 35, 199, 72, 81, 5, 72, 20, 10, 199, 44, 243, 147, 80, 21, 5,
+			72, 20, 15, 140, 6, 15, 18, 20, 18, 195, 166, 4, 5, 12, 9, 7, 20, 11, 136, 19, 6, 195, 166, 18, 9, 19, 11, 20, 10, 199,
+			4, 68, 133, 56, 19, 9, 56, 20, 6, 195, 4, 114, 76, 20, 10, 199, 8, 19, 12, 37, 53, 9, 44, 20, 6, 195, 32, 19, 64, 72,
+			0, 13, 138, 14, 1, 22, 9, 7, 1, 20, 195, 184, 18, 20, 7, 196, 52, 147, 149, 80, 20, 11, 200, 8, 241, 211, 80, 21, 133, 72,
+			80, 20, 11, 200, 77, 147, 77, 21, 68, 137, 76, 176, 20, 11, 200, 8, 147, 205, 21, 68, 137, 76, 176, 20, 11, 200, 44, 243, 147, 61,
+			37, 9, 84, 208, 20, 11, 200, 56, 85, 82, 5, 53, 5, 56, 144, 20, 9, 198, 32, 243, 79, 24, 147, 0, 20, 0, 9, 134, 19, 5,
+			18, 195, 184, 19, 20, 10, 135, 11, 15, 18, 19, 195, 184, 18, 20, 10, 135, 11, 12, 1, 11, 195, 184, 18, 20, 8, 197, 32, 83, 132,
+			21, 48, 76, 0, 9, 198, 4, 36, 207, 49, 85, 0, 20, 9, 198, 24, 195, 210, 37, 53, 0, 20, 9, 198, 76, 22, 15, 24, 243, 128,
+			20, 9, 198, 65, 35, 199, 72, 19, 64, 20, 9, 198, 56, 147, 194, 37, 83, 64, 20, 9, 198, 52, 20, 139, 21, 33, 84, 20, 0, 22,
+			9, 6, 195, 184, 12, 10, 5, 20, 15, 14, 83, 118, 55, 57, 36, 47, 6, 114, 50, 0, 20, 10, 199, 24, 147, 129, 57, 50, 69, 48,
+			20, 14, 203, 80, 84, 212, 4, 209, 78, 80, 20, 137, 76, 176, 20, 14, 203, 64, 20, 140, 4, 209, 78, 80, 20, 137, 76, 176, 20, 10,
+			199, 8, 83, 133, 24, 144, 201, 20, 20, 10, 199, 21, 81, 133, 52, 148, 205, 20, 20, 10, 199, 64, 84, 212, 36, 193, 78, 76, 20, 10,
+			199, 36, 212, 12, 4, 229, 1, 80, 20, 12, 201, 44, 21, 1, 77, 68, 143, 24, 19, 0, 20, 6, 195, 20, 112, 76, 20, 12, 4, 95,
+			49, 48, 15, 47, 37, 13, 50, 108, 0, 0, 7, 196, 76, 19, 21, 80, 20, 9, 198, 60, 36, 212, 73, 81, 82, 20, 9, 198, 36, 228,
+			213, 49, 65, 82, 20, 9, 198, 36, 228, 212, 73, 81, 82, 20, 9, 198, 36, 225, 143, 72, 209, 82, 20, 9, 198, 36, 225, 12, 21, 97,
+			82, 20, 9, 198, 5, 32, 137, 81, 33, 82, 20, 12, 137, 11, 9, 13, 195, 166, 18, 9, 19, 11, 20, 11, 200, 44, 83, 143, 80, 17,
+			137, 84, 208, 20, 7, 196, 36, 229, 73, 80, 20, 9, 198, 12, 20, 132, 36, 112, 78, 21, 0, 9, 198, 52, 85, 18, 60, 195, 199, 20,
+			12, 201, 16, 243, 79, 72, 112, 78, 37, 53, 0, 20, 12, 201, 5, 69, 18, 36, 37, 84, 36, 243, 128, 20, 17, 142, 19, 20, 18, 1,
+			20, 15, 19, 6, 195, 166, 18, 9, 19, 11, 20, 8, 197, 64, 245, 5, 57, 48, 20, 0, 21, 66, 4, 192, 35, 55, 15, 49, 6, 35,
+			57, 72, 35, 0, 81, 113, 97, 101, 100, 97, 32, 14, 139, 7, 1, 14, 7, 18, 195, 166, 14, 195, 184, 19, 20, 9, 198, 28, 19, 66,
+			37, 53, 0, 20, 9, 198, 52, 83, 1, 56, 243, 64, 20, 12, 137, 22, 18, 195, 184, 22, 12, 5, 18, 9, 20, 14, 139, 13, 9, 12,
+			9, 20, 195, 166, 18, 9, 19, 11, 20, 9, 198, 24, 84, 141, 20, 229, 0, 20, 9, 198, 52, 19, 137, 21, 33, 84, 20, 9, 198, 52,
+			20, 139, 4, 229, 0, 20, 0, 10, 199, 88, 149, 1, 48, 149, 5, 80, 20, 10, 199, 80, 245, 1, 48, 149, 5, 80, 20, 10, 199, 76,
+			243, 9, 16, 149, 5, 80, 20, 10, 199, 76, 83, 137, 48, 149, 5, 80, 20, 10, 199, 72, 149, 129, 48, 149, 5, 80, 20, 10, 199, 72,
+			145, 201, 16, 149, 5, 80, 20, 10, 199, 72, 20, 9, 16, 149, 5, 80, 20, 10, 199, 56, 240, 137, 48, 149, 5, 80, 20, 10, 199, 56,
+			21, 1, 48, 149, 5, 80, 20, 10, 199, 56, 20, 193, 48, 149, 5, 80, 20, 10, 199, 52, 241, 1, 48, 149, 5, 80, 20, 10, 199, 52,
+			240, 137, 48, 149, 5, 80, 20, 10, 199, 48, 242, 193, 48, 149, 5, 80, 20, 10, 199, 48, 81, 193, 48, 149, 5, 80, 20, 10, 199, 36,
+			211, 85, 56, 149, 5, 80, 20, 10, 199, 36, 65, 65, 48, 149, 5, 80, 20, 10, 199, 24, 145, 5, 48, 149, 5, 80, 20, 10, 199, 24,
+			21, 1, 48, 149, 5, 80, 20, 10, 199, 24, 16, 201, 48, 149, 5, 80, 20, 10, 199, 16, 80, 137, 48, 149, 5, 80, 20, 10, 199, 76,
+			82, 212, 61, 34, 69, 48, 20, 10, 199, 21, 52, 197, 57, 66, 69, 48, 20, 10, 199, 8, 18, 212, 21, 34, 69, 48, 20, 12, 201, 80,
+			82, 206, 60, 195, 199, 37, 49, 82, 20, 12, 201, 44, 243, 80, 72, 243, 73, 81, 65, 82, 20, 13, 138, 19, 11, 18, 195, 166, 4, 4,
+			5, 18, 9, 20, 15, 140, 1, 20, 13, 15, 19, 6, 195, 166, 18, 9, 19, 11, 20, 10, 199, 44, 243, 135, 20, 226, 65, 48, 20, 0,
+			9, 198, 72, 80, 197, 65, 69, 82, 20, 7, 196, 16, 243, 143, 72, 20, 9, 198, 44, 242, 203, 21, 33, 82, 20, 9, 198, 24, 147, 135,
+			21, 33, 82, 20, 9, 198, 16, 81, 140, 61, 33, 82, 20, 14, 139, 15, 16, 20, 18, 195, 166, 11, 11, 5, 18, 9, 20, 16, 141, 11,
+			22, 195, 166, 18, 21, 12, 1, 14, 20, 9, 19, 11, 20, 16, 141, 1, 13, 1, 20, 195, 184, 18, 9, 19, 20, 9, 19, 11, 20, 7,
+			196, 45, 33, 84, 36, 20, 7, 196, 44, 19, 137, 56, 20, 11, 136, 13, 195, 166, 3, 5, 14, 1, 20, 20, 9, 198, 56, 20, 139, 60,
+			208, 78, 21, 9, 3, 95, 35, 57, 47, 35, 71, 0, 12, 4, 95, 20, 12, 4, 47, 37, 55, 72, 13, 0, 0, 12, 201, 61, 5, 15,
+			52, 85, 18, 37, 53, 0, 20, 12, 201, 32, 148, 212, 61, 34, 67, 37, 65, 84, 20, 12, 201, 20, 193, 75, 81, 34, 67, 37, 65, 84,
+			20, 12, 201, 5, 85, 5, 57, 66, 67, 37, 65, 84, 20, 11, 136, 20, 195, 184, 18, 18, 5, 18, 9, 20, 8, 197, 52, 243, 135, 60,
+			192, 20, 8, 197, 104, 80, 200, 36, 224, 20, 0, 13, 202, 77, 2, 82, 37, 69, 65, 48, 149, 5, 80, 20, 13, 202, 65, 49, 85, 16,
+			243, 153, 52, 149, 5, 80, 20, 13, 202, 44, 243, 135, 20, 226, 65, 48, 149, 5, 80, 20, 13, 202, 36, 195, 5, 28, 149, 9, 52, 149,
+			5, 80, 20, 13, 202, 24, 193, 75, 76, 144, 137, 48, 149, 5, 80, 20, 9, 198, 72, 81, 213, 48, 84, 128, 20, 9, 198, 21, 53, 9,
+			52, 84, 128, 20, 12, 137, 19, 11, 195, 166, 12, 13, 5, 18, 9, 20, 15, 140, 195, 165, 12, 2, 15, 18, 7, 5, 14, 19, 5, 18,
+			20, 15, 140, 6, 195, 165, 2, 15, 18, 7, 5, 14, 19, 5, 18, 20, 9, 198, 76, 82, 214, 20, 228, 192, 20, 9, 198, 72, 84, 212,
+			4, 229, 0, 20, 0, 12, 201, 81, 32, 78, 76, 98, 71, 85, 33, 82, 20, 10, 199, 72, 21, 9, 60, 225, 82, 20, 20, 10, 199, 64,
+			19, 12, 21, 65, 82, 20, 20, 10, 199, 45, 83, 13, 36, 225, 82, 20, 20, 10, 199, 24, 244, 198, 5, 65, 82, 20, 20, 10, 199, 4,
+			181, 9, 60, 225, 82, 20, 20, 9, 198, 48, 147, 143, 48, 85, 77, 20, 9, 198, 76, 147, 9, 12, 149, 77, 20, 10, 199, 32, 82, 212,
+			60, 116, 129, 24, 20, 0, 23, 72, 4, 180, 143, 77, 66, 75, 60, 224, 35, 49, 34, 114, 89, 72, 37, 49, 6, 114, 50, 0, 20, 9,
+			198, 64, 21, 137, 48, 195, 206, 20, 9, 198, 52, 81, 1, 48, 163, 206, 20, 11, 200, 20, 180, 208, 4, 228, 201, 60, 224, 20, 11, 200,
+			16, 84, 18, 21, 52, 201, 60, 224, 20, 12, 201, 88, 84, 147, 36, 243, 133, 72, 147, 135, 20, 11, 200, 76, 145, 82, 72, 19, 5, 60,
+			224, 20, 0, 8, 197, 88, 83, 148, 36, 192, 20, 8, 197, 28, 83, 148, 36, 192, 20, 12, 201, 88, 144, 143, 72, 113, 78, 76, 84, 128,
+			20, 8, 197, 76, 195, 214, 20, 224, 20, 12, 201, 77, 80, 147, 45, 34, 66, 20, 229, 0, 20, 12, 201, 44, 243, 148, 72, 243, 12, 4,
+			229, 0, 20, 8, 197, 64, 20, 211, 4, 32, 20, 0, 23, 66, 21, 64, 36, 72, 15, 83, 6, 114, 34, 89, 116, 50, 0, 81, 102, 111,
+			114, 115, 121, 110, 32, 17, 66, 21, 64, 36, 72, 15, 107, 6, 112, 40, 0, 81, 104, 97, 118, 32, 17, 66, 21, 64, 36, 72, 15, 6,
+			83, 39, 34, 0, 81, 102, 111, 114, 32, 16, 66, 21, 64, 36, 72, 15, 107, 112, 40, 0, 81, 104, 97, 118, 32, 24, 66, 21, 64, 36,
+			47, 15, 49, 84, 112, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 13, 202, 76, 83, 22, 24, 147, 129, 57, 50, 69,
+			72, 20, 9, 198, 60, 213, 18, 20, 229, 0, 20, 9, 198, 44, 243, 132, 20, 228, 192, 20, 11, 70, 76, 178, 78, 32, 80, 68, 21, 0,
+			10, 8, 66, 21, 64, 36, 47, 0, 72, 0, 12, 137, 6, 1, 13, 9, 12, 9, 195, 166, 18, 20, 10, 199, 60, 33, 21, 45, 66, 79,
+			56, 20, 10, 199, 36, 225, 21, 45, 66, 79, 56, 20, 10, 199, 72, 82, 204, 4, 209, 82, 20, 20, 10, 199, 12, 128, 77, 9, 34, 69,
+			72, 20, 10, 199, 4, 227, 143, 56, 49, 82, 20, 20, 9, 198, 64, 243, 25, 28, 19, 73, 20, 10, 199, 21, 128, 197, 57, 68, 137, 44,
+			20, 10, 199, 32, 84, 140, 61, 98, 65, 56, 20, 10, 199, 44, 244, 144, 84, 193, 78, 80, 20, 0, 13, 138, 19, 21, 2, 19, 9, 4,
+			9, 195, 166, 18, 20, 9, 134, 2, 5, 7, 195, 166, 18, 20, 11, 200, 72, 81, 210, 21, 52, 201, 60, 224, 20, 11, 200, 60, 178, 193,
+			76, 147, 206, 20, 192, 20, 11, 200, 25, 83, 139, 80, 147, 206, 20, 192, 20, 7, 196, 24, 83, 143, 48, 20, 12, 137, 6, 195, 184, 14,
+			9, 11, 9, 19, 11, 20, 0, 10, 135, 16, 18, 5, 11, 195, 166, 18, 20, 8, 197, 52, 19, 201, 77, 64, 20, 8, 197, 45, 33, 77,
+			21, 32, 20, 8, 197, 65, 35, 198, 37, 64, 20, 8, 197, 52, 17, 206, 5, 64, 20, 8, 197, 24, 244, 198, 5, 64, 20, 8, 197, 88,
+			243, 1, 57, 64, 20, 12, 201, 64, 20, 148, 36, 50, 80, 4, 229, 0, 20, 8, 197, 45, 83, 1, 57, 64, 20, 0, 13, 202, 44, 243,
+			147, 80, 84, 142, 5, 66, 79, 56, 20, 13, 202, 36, 226, 207, 73, 3, 210, 5, 66, 79, 56, 20, 9, 198, 4, 209, 137, 8, 145, 64,
+			20, 8, 133, 195, 165, 18, 20, 9, 20, 9, 198, 81, 84, 137, 76, 209, 64, 20, 9, 198, 80, 19, 201, 76, 209, 64, 20, 9, 198, 72,
+			16, 201, 76, 209, 64, 20, 9, 198, 65, 84, 137, 76, 209, 64, 20, 9, 198, 56, 22, 137, 76, 209, 64, 20, 9, 198, 49, 148, 137, 76,
+			209, 64, 20, 9, 198, 20, 115, 201, 76, 209, 64, 20, 13, 202, 48, 145, 67, 33, 65, 78, 77, 65, 73, 56, 20, 9, 198, 80, 243, 142,
+			4, 113, 64, 20, 9, 198, 12, 245, 82, 4, 113, 64, 20, 0, 10, 135, 6, 195, 166, 18, 9, 19, 20, 20, 10, 199, 81, 84, 142, 21,
+			34, 78, 28, 20, 10, 199, 80, 18, 211, 21, 34, 78, 28, 20, 10, 199, 64, 192, 78, 21, 34, 78, 28, 20, 10, 199, 48, 19, 131, 21,
+			34, 78, 28, 20, 10, 199, 28, 20, 142, 21, 34, 78, 28, 20, 10, 199, 24, 146, 211, 21, 34, 78, 28, 20, 10, 199, 8, 20, 130, 21,
+			34, 78, 28, 20, 13, 4, 95, 49, 50, 15, 47, 114, 55, 83, 72, 108, 0, 0, 11, 200, 64, 243, 25, 32, 148, 212, 61, 32, 20, 13,
+			138, 11, 15, 13, 13, 9, 19, 19, 195, 166, 18, 20, 11, 200, 65, 81, 82, 36, 194, 84, 21, 64, 20, 11, 200, 65, 80, 140, 36, 50,
+			84, 21, 64, 20, 11, 200, 64, 21, 5, 72, 226, 84, 21, 64, 20, 11, 200, 44, 21, 83, 4, 194, 84, 21, 64, 20, 11, 200, 25, 37,
+			71, 4, 194, 84, 21, 64, 20, 11, 200, 25, 34, 86, 60, 194, 84, 21, 64, 20, 11, 200, 25, 32, 71, 36, 194, 84, 21, 64, 20, 11,
+			200, 4, 226, 77, 61, 50, 84, 21, 64, 20, 11, 200, 4, 208, 137, 29, 82, 84, 21, 64, 20, 9, 198, 8, 20, 148, 32, 144, 78, 20,
+			9, 198, 4, 100, 137, 44, 16, 78, 20, 9, 198, 4, 100, 137, 44, 16, 78, 20, 11, 200, 20, 180, 203, 72, 83, 69, 57, 64, 20, 11,
+			200, 5, 34, 83, 80, 242, 210, 5, 64, 20, 0, 8, 197, 80, 21, 140, 21, 64, 20, 8, 197, 76, 242, 204, 21, 64, 20, 11, 136, 12,
+			195, 166, 11, 11, 5, 18, 9, 20, 11, 136, 8, 195, 184, 14, 19, 5, 18, 9, 20, 13, 138, 7, 5, 15, 4, 195, 166, 20, 9, 19,
+			11, 20, 13, 138, 5, 21, 18, 15, 16, 195, 166, 9, 19, 11, 20, 8, 197, 76, 241, 134, 37, 64, 20, 12, 201, 28, 227, 211, 80, 144,
+			201, 76, 209, 64, 20, 12, 201, 9, 32, 72, 52, 19, 137, 76, 209, 64, 20, 8, 197, 64, 245, 5, 57, 64, 20, 8, 197, 64, 84, 211,
+			5, 32, 20, 0, 13, 202, 88, 84, 130, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 81, 148, 129, 56, 226, 83, 21, 34, 78, 28, 20,
+			13, 202, 77, 65, 82, 36, 194, 83, 21, 34, 78, 28, 20, 13, 202, 77, 64, 66, 36, 194, 83, 21, 34, 78, 28, 20, 13, 202, 76, 145,
+			206, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 52, 85, 1, 48, 194, 83, 21, 34, 78, 28, 20, 13, 202, 52, 20, 203, 36, 226, 83,
+			21, 34, 78, 28, 20, 13, 202, 32, 20, 141, 60, 226, 83, 21, 34, 78, 28, 20, 13, 202, 28, 84, 141, 4, 226, 83, 21, 34, 78, 28,
+			20, 13, 202, 28, 19, 22, 4, 226, 83, 21, 34, 78, 28, 20, 13, 202, 16, 149, 137, 76, 147, 206, 21, 34, 78, 28, 20, 13, 202, 8,
+			19, 11, 4, 226, 83, 21, 34, 78, 28, 20, 13, 202, 4, 32, 78, 16, 243, 142, 21, 34, 78, 28, 20, 12, 201, 81, 34, 71, 60, 227,
+			205, 21, 68, 137, 20, 14, 139, 16, 20, 15, 12, 5, 13, 195, 166, 9, 19, 11, 20, 9, 198, 24, 19, 73, 48, 145, 64, 20, 9, 198,
+			20, 225, 9, 88, 145, 64, 20, 9, 198, 88, 149, 129, 72, 145, 64, 20, 9, 198, 72, 83, 69, 16, 145, 64, 20, 9, 198, 4, 181, 129,
+			72, 145, 64, 20, 9, 198, 45, 147, 137, 76, 209, 64, 20, 9, 198, 60, 97, 137, 12, 144, 76, 20, 9, 198, 4, 195, 21, 88, 144, 76,
+			20, 17, 70, 8, 243, 132, 4, 113, 64, 71, 6, 114, 50, 72, 37, 75, 0, 20, 9, 198, 8, 19, 132, 4, 113, 64, 20, 11, 70, 8,
+			243, 132, 4, 113, 64, 21, 0, 10, 0, 14, 203, 44, 243, 147, 81, 37, 75, 80, 149, 137, 77, 64, 20, 14, 203, 64, 20, 129, 16, 242,
+			211, 4, 194, 84, 21, 64, 20, 15, 140, 8, 5, 13, 9, 19, 6, 195, 166, 18, 9, 19, 11, 20, 10, 199, 44, 243, 134, 49, 81, 78,
+			76, 20, 10, 199, 4, 208, 149, 48, 19, 131, 20, 20, 0, 7, 196, 76, 243, 143, 72, 20, 11, 200, 97, 147, 15, 24, 243, 137, 77, 64,
+			20, 11, 200, 88, 84, 147, 36, 243, 137, 77, 64, 20, 11, 200, 44, 195, 203, 44, 83, 137, 77, 64, 20, 16, 141, 11, 1, 13, 195, 166,
+			12, 5, 15, 14, 20, 9, 19, 11, 20, 9, 198, 32, 21, 193, 36, 144, 78, 20, 7, 196, 61, 51, 65, 56, 21, 7, 196, 8, 242, 129,
+			72, 20, 0, 12, 137, 6, 12, 195, 184, 10, 20, 9, 19, 20, 20, 16, 205, 84, 66, 210, 101, 53, 1, 48, 194, 83, 21, 34, 78, 28,
+			20, 12, 201, 73, 80, 146, 36, 49, 82, 36, 225, 192, 20, 16, 205, 36, 225, 21, 77, 68, 137, 4, 194, 83, 21, 34, 78, 28, 20, 12,
+			201, 24, 84, 142, 37, 49, 82, 36, 225, 192, 20, 16, 205, 16, 149, 137, 76, 147, 206, 4, 194, 83, 21, 34, 78, 28, 20, 11, 136, 19,
+			20, 195, 184, 2, 5, 18, 9, 20, 13, 138, 15, 16, 12, 195, 184, 19, 5, 12, 9, 7, 20, 13, 138, 7, 5, 12, 195, 169, 1, 7,
+			20, 9, 7, 20, 17, 142, 9, 14, 4, 15, 5, 21, 18, 15, 16, 195, 166, 9, 19, 11, 20, 12, 201, 72, 84, 208, 60, 228, 207, 72,
+			145, 64, 20, 12, 201, 48, 19, 65, 72, 50, 201, 76, 209, 64, 20, 12, 201, 12, 128, 85, 88, 147, 137, 76, 209, 64, 20, 12, 201, 44,
+			20, 129, 52, 35, 204, 4, 113, 64, 20, 10, 69, 72, 83, 65, 44, 80, 21, 0, 10, 0, 9, 198, 48, 85, 1, 72, 114, 64, 20, 14,
+			139, 9, 14, 4, 12, 195, 184, 19, 5, 12, 9, 7, 20, 9, 198, 4, 225, 18, 60, 145, 0, 20, 13, 202, 64, 20, 148, 20, 227, 199,
+			20, 225, 83, 20, 20, 13, 202, 25, 33, 68, 21, 34, 75, 76, 128, 86, 56, 20, 8, 198, 4, 35, 210, 36, 114, 64, 0, 10, 199, 24,
+			147, 129, 57, 50, 69, 72, 20, 10, 199, 24, 147, 15, 76, 241, 133, 72, 20, 10, 199, 61, 33, 7, 100, 65, 82, 36, 20, 10, 199, 45,
+			83, 147, 80, 193, 82, 36, 20, 10, 199, 44, 242, 197, 81, 65, 82, 36, 20, 10, 199, 44, 194, 77, 65, 33, 82, 36, 20, 10, 199, 41,
+			84, 137, 77, 65, 82, 36, 20, 13, 138, 7, 5, 14, 4, 195, 184, 2, 5, 18, 9, 20, 10, 199, 16, 21, 1, 52, 21, 9, 44, 20,
+			10, 199, 72, 81, 197, 57, 50, 65, 56, 20, 10, 199, 24, 195, 210, 20, 229, 9, 56, 20, 10, 199, 44, 243, 132, 20, 211, 129, 8, 20,
+			0, 11, 200, 17, 32, 77, 5, 69, 82, 28, 144, 20, 11, 200, 76, 147, 85, 48, 84, 137, 56, 112, 20, 15, 204, 64, 84, 147, 60, 226,
+			70, 36, 49, 82, 36, 225, 192, 20, 15, 204, 52, 20, 203, 84, 194, 78, 37, 49, 82, 36, 225, 192, 20, 16, 141, 12, 5, 20, 15, 16,
+			12, 195, 184, 19, 5, 12, 9, 7, 20, 9, 198, 64, 20, 129, 8, 243, 0, 20, 11, 200, 77, 81, 1, 56, 84, 201, 76, 176, 20, 11,
+			200, 52, 147, 137, 77, 65, 82, 36, 80, 20, 15, 204, 20, 180, 208, 21, 34, 77, 20, 229, 1, 72, 145, 64, 20, 7, 196, 81, 82, 193,
+			56, 21, 9, 198, 64, 19, 1, 80, 19, 0, 20, 0, 8, 197, 8, 84, 204, 60, 112, 20, 15, 69, 8, 83, 9, 104, 80, 71, 36, 55,
+			37, 12, 89, 0, 66, 17, 142, 20, 9, 12, 19, 20, 18, 195, 166, 11, 11, 5, 12, 9, 7, 20, 13, 138, 20, 9, 12, 6, 195, 166,
+			12, 4, 9, 7, 20, 12, 201, 44, 243, 77, 37, 69, 5, 72, 85, 0, 20, 0, 5, 194, 21, 80, 17, 18, 70, 8, 80, 200, 4, 209,
+			76, 71, 36, 91, 35, 65, 6, 36, 12, 60, 0, 9, 198, 80, 16, 140, 60, 145, 0, 20, 9, 198, 64, 243, 25, 4, 210, 68, 20, 18,
+			70, 61, 34, 71, 4, 210, 64, 39, 34, 36, 81, 6, 35, 65, 37, 0, 20, 9, 198, 77, 80, 140, 36, 208, 84, 20, 0, 14, 203, 4,
+			195, 5, 28, 244, 137, 76, 84, 137, 56, 112, 20, 12, 201, 52, 147, 137, 77, 65, 82, 36, 83, 0, 20, 10, 199, 4, 99, 65, 72, 50,
+			5, 72, 20, 19, 144, 19, 1, 13, 13, 5, 14, 20, 18, 195, 166, 11, 11, 5, 12, 9, 7, 20, 15, 140, 14, 195, 184, 4, 20, 195,
+			184, 18, 6, 20, 9, 7, 20, 14, 203, 72, 81, 204, 20, 209, 78, 80, 20, 137, 76, 176, 20, 10, 199, 52, 19, 5, 72, 147, 132, 20,
+			20, 10, 199, 8, 243, 19, 40, 85, 137, 44, 20, 0, 9, 198, 88, 144, 146, 4, 99, 206, 20, 11, 200, 80, 245, 67, 32, 84, 137, 56,
+			112, 20, 11, 200, 76, 176, 78, 16, 84, 137, 56, 112, 20, 11, 200, 76, 176, 77, 24, 84, 137, 56, 112, 20, 11, 200, 73, 83, 83, 80,
+			84, 137, 56, 112, 20, 11, 200, 72, 81, 149, 76, 84, 137, 56, 112, 20, 11, 200, 72, 81, 133, 72, 84, 137, 56, 112, 20, 11, 200, 72,
+			81, 9, 28, 84, 137, 56, 112, 20, 11, 200, 64, 242, 78, 80, 84, 137, 56, 112, 20, 11, 200, 64, 192, 71, 36, 84, 137, 56, 112, 20,
+			11, 200, 64, 21, 9, 56, 84, 137, 56, 112, 20, 11, 200, 61, 5, 9, 52, 84, 137, 56, 112, 20, 11, 200, 52, 245, 9, 88, 84, 137,
+			56, 112, 20, 11, 200, 44, 17, 13, 36, 84, 137, 56, 112, 20, 11, 200, 40, 243, 135, 48, 84, 137, 56, 112, 20, 11, 200, 36, 226, 84,
+			36, 84, 137, 56, 112, 20, 11, 200, 32, 243, 143, 72, 84, 137, 56, 112, 20, 11, 200, 29, 37, 80, 64, 84, 137, 56, 112, 20, 11, 200,
+			20, 208, 76, 40, 84, 137, 56, 112, 20, 11, 200, 20, 181, 137, 64, 84, 137, 56, 112, 20, 11, 200, 16, 85, 143, 88, 84, 137, 56, 112,
+			20, 11, 200, 16, 80, 201, 52, 84, 137, 56, 112, 20, 11, 200, 12, 83, 148, 72, 84, 137, 56, 112, 20, 11, 200, 12, 17, 13, 36, 84,
+			137, 56, 112, 20, 11, 200, 9, 32, 73, 76, 84, 137, 56, 112, 20, 11, 200, 4, 192, 82, 52, 84, 137, 56, 112, 20, 11, 200, 4, 181,
+			9, 88, 84, 137, 56, 112, 20, 11, 200, 4, 69, 137, 76, 84, 137, 56, 112, 20, 11, 200, 4, 35, 210, 80, 84, 137, 56, 112, 20, 14,
+			68, 44, 19, 133, 48, 49, 110, 50, 6, 36, 55, 0, 20, 11, 200, 81, 35, 205, 64, 85, 5, 72, 80, 20, 11, 200, 44, 243, 131, 21,
+			37, 5, 72, 80, 20, 11, 200, 21, 66, 75, 21, 69, 5, 72, 80, 20, 11, 200, 9, 81, 7, 21, 69, 5, 72, 80, 20, 11, 200, 9,
+			34, 75, 21, 69, 5, 72, 80, 20, 12, 137, 16, 25, 7, 13, 195, 166, 9, 19, 11, 20, 11, 200, 60, 194, 71, 5, 34, 201, 76, 176,
+			20, 11, 200, 72, 81, 133, 45, 67, 210, 36, 80, 20, 11, 200, 65, 35, 214, 37, 51, 210, 36, 80, 20, 11, 200, 45, 33, 77, 5, 67,
+			210, 36, 80, 20, 7, 196, 24, 147, 137, 80, 20, 7, 196, 32, 16, 137, 48, 20, 11, 200, 61, 35, 129, 52, 83, 148, 36, 176, 20, 12,
+			137, 4, 9, 195, 166, 20, 5, 20, 9, 11, 20, 9, 198, 12, 20, 137, 8, 145, 78, 20, 7, 196, 5, 50, 65, 80, 20, 11, 200, 77,
+			4, 153, 17, 53, 1, 28, 80, 20, 0, 6, 195, 48, 145, 82, 20, 10, 69, 8, 244, 212, 60, 224, 21, 0, 10, 0, 13, 202, 81, 32,
+			78, 76, 99, 210, 52, 21, 15, 72, 20, 9, 198, 16, 21, 1, 56, 243, 64, 20, 0, 14, 203, 80, 84, 212, 4, 209, 78, 80, 84, 137,
+			56, 112, 20, 14, 203, 77, 147, 139, 72, 85, 9, 76, 84, 137, 56, 112, 20, 10, 199, 77, 69, 68, 21, 34, 78, 28, 20, 14, 203, 76,
+			147, 80, 48, 145, 137, 12, 84, 137, 56, 112, 20, 10, 199, 76, 19, 4, 21, 34, 78, 28, 20, 14, 203, 64, 244, 21, 48, 20, 137, 76,
+			84, 137, 56, 112, 20, 14, 203, 64, 20, 140, 4, 209, 78, 80, 84, 137, 56, 112, 20, 10, 199, 64, 19, 16, 21, 34, 78, 28, 20, 10,
+			199, 45, 33, 77, 21, 34, 78, 28, 20, 14, 203, 44, 19, 12, 36, 116, 129, 24, 84, 137, 56, 112, 20, 14, 203, 36, 65, 79, 48, 241,
+			201, 76, 84, 137, 56, 112, 20, 14, 203, 25, 83, 132, 4, 209, 78, 80, 84, 137, 56, 112, 20, 14, 203, 24, 244, 198, 61, 33, 83, 12,
+			84, 137, 56, 112, 20, 10, 199, 20, 213, 76, 21, 34, 78, 28, 20, 14, 203, 5, 85, 15, 52, 21, 9, 76, 84, 137, 56, 112, 20, 14,
+			203, 4, 193, 129, 8, 85, 9, 76, 84, 137, 56, 112, 20, 12, 201, 61, 1, 82, 5, 66, 79, 56, 83, 0, 20, 9, 198, 37, 51, 205,
+			21, 68, 137, 20, 10, 199, 16, 84, 15, 76, 149, 21, 52, 20, 10, 199, 52, 20, 137, 8, 243, 137, 80, 20, 10, 199, 45, 98, 82, 72,
+			85, 137, 80, 20, 10, 199, 85, 32, 129, 56, 148, 205, 20, 20, 10, 199, 48, 21, 9, 56, 148, 205, 20, 20, 10, 199, 44, 243, 15, 72,
+			148, 205, 20, 20, 10, 199, 28, 83, 210, 28, 148, 205, 20, 20, 10, 199, 9, 81, 4, 32, 148, 205, 20, 20, 10, 199, 20, 180, 201, 77,
+			65, 78, 76, 20, 6, 195, 76, 176, 76, 76, 0, 9, 198, 77, 80, 140, 36, 209, 82, 20, 9, 198, 65, 35, 214, 60, 177, 82, 20, 9,
+			198, 65, 35, 212, 20, 113, 82, 20, 9, 198, 5, 52, 207, 12, 145, 82, 20, 9, 198, 4, 66, 149, 56, 113, 82, 20, 9, 198, 4, 194,
+			207, 32, 243, 0, 20, 16, 141, 195, 184, 11, 15, 14, 15, 13, 5, 20, 18, 9, 19, 11, 20, 12, 137, 195, 166, 7, 25, 16, 20, 9,
+			19, 11, 20, 7, 196, 20, 243, 9, 80, 20, 9, 198, 48, 144, 133, 72, 144, 78, 20, 9, 198, 60, 36, 201, 16, 144, 78, 21, 7, 196,
+			4, 227, 129, 48, 20, 8, 67, 60, 176, 89, 21, 0, 10, 0, 9, 198, 32, 148, 16, 60, 195, 199, 20, 9, 198, 25, 33, 78, 60, 195,
+			199, 20, 12, 201, 88, 19, 4, 32, 244, 142, 37, 53, 0, 20, 12, 201, 8, 82, 1, 88, 147, 210, 37, 53, 0, 20, 11, 136, 19, 12,
+			195, 184, 19, 5, 18, 9, 20, 17, 142, 19, 20, 195, 184, 11, 9, 15, 13, 5, 20, 18, 9, 19, 11, 20, 13, 138, 19, 16, 15, 14,
+			4, 195, 166, 9, 19, 11, 20, 17, 142, 6, 195, 184, 4, 5, 18, 1, 12, 9, 19, 20, 9, 19, 11, 20, 17, 142, 5, 14, 3, 25,
+			11, 12, 15, 16, 195, 166, 4, 9, 19, 11, 20, 0, 13, 202, 52, 21, 18, 36, 181, 76, 21, 34, 78, 28, 20, 13, 202, 36, 225, 18,
+			20, 117, 76, 21, 34, 78, 28, 20, 13, 202, 20, 180, 208, 48, 242, 84, 21, 34, 78, 28, 20, 13, 202, 8, 20, 146, 36, 176, 68, 21,
+			34, 78, 28, 20, 14, 139, 16, 195, 166, 4, 1, 7, 15, 7, 9, 19, 11, 20, 13, 202, 81, 32, 78, 77, 97, 83, 80, 148, 205, 20,
+			20, 13, 202, 76, 176, 78, 16, 147, 129, 88, 148, 205, 20, 20, 13, 202, 21, 99, 204, 85, 66, 79, 56, 148, 205, 20, 20, 13, 202, 21,
+			67, 143, 12, 83, 148, 72, 148, 205, 20, 20, 9, 198, 48, 20, 153, 56, 112, 76, 20, 13, 202, 44, 243, 138, 84, 226, 212, 36, 243, 129,
+			48, 20, 11, 70, 52, 243, 148, 72, 80, 76, 21, 0, 10, 0, 10, 199, 24, 83, 142, 60, 195, 199, 36, 20, 10, 199, 32, 82, 212, 60,
+			116, 129, 52, 20, 15, 140, 16, 18, 195, 166, 16, 1, 18, 5, 18, 9, 14, 7, 20, 14, 139, 16, 18, 195, 166, 10, 21, 4, 9, 11,
+			1, 20, 20, 10, 199, 20, 229, 18, 20, 50, 1, 80, 20, 0, 9, 198, 65, 35, 208, 4, 113, 82, 20, 9, 198, 44, 243, 138, 84, 113,
+			82, 20, 9, 198, 21, 52, 1, 48, 145, 82, 20, 9, 198, 8, 19, 19, 4, 209, 82, 20, 14, 139, 6, 18, 9, 20, 195, 166, 14, 11,
+			5, 18, 9, 20, 9, 198, 4, 35, 210, 36, 114, 78, 20, 11, 200, 77, 80, 147, 37, 53, 5, 57, 48, 20, 9, 198, 64, 83, 77, 36,
+			176, 78, 21, 0, 13, 138, 195, 166, 7, 25, 16, 20, 15, 12, 15, 7, 20, 9, 198, 29, 32, 70, 60, 195, 199, 20, 17, 142, 5, 21,
+			18, 15, 16, 195, 166, 9, 19, 5, 18, 9, 14, 7, 20, 16, 205, 16, 82, 207, 57, 53, 18, 84, 181, 9, 88, 148, 205, 20, 20, 10,
+			135, 19, 9, 7, 195, 184, 10, 14, 20, 7, 196, 16, 147, 129, 72, 20, 7, 196, 64, 20, 129, 8, 20, 0, 8, 197, 104, 148, 139, 60,
+			224, 20, 9, 198, 4, 192, 82, 52, 84, 133, 20, 9, 198, 4, 35, 210, 80, 84, 133, 20, 0, 9, 198, 80, 16, 149, 48, 84, 128, 20,
+			9, 198, 76, 21, 9, 56, 84, 128, 20, 9, 198, 72, 84, 213, 52, 84, 128, 20, 12, 201, 25, 33, 77, 65, 35, 214, 60, 177, 82, 20,
+			9, 198, 52, 243, 137, 80, 84, 128, 20, 9, 198, 52, 83, 79, 72, 84, 128, 20, 9, 198, 45, 83, 85, 48, 84, 128, 20, 9, 198, 36,
+			228, 197, 72, 84, 128, 20, 9, 198, 36, 226, 1, 48, 84, 128, 20, 9, 198, 36, 195, 21, 16, 84, 128, 20, 9, 198, 28, 83, 73, 56,
+			84, 128, 20, 9, 198, 24, 242, 213, 76, 84, 128, 20, 9, 198, 24, 16, 149, 48, 84, 128, 20, 9, 198, 20, 210, 84, 80, 84, 128, 20,
+			9, 198, 16, 243, 73, 56, 84, 128, 20, 9, 198, 16, 80, 137, 80, 84, 128, 20, 9, 198, 5, 52, 9, 72, 84, 128, 20, 9, 198, 4,
+			195, 21, 16, 84, 128, 20, 9, 198, 4, 67, 208, 80, 84, 128, 20, 17, 142, 19, 11, 18, 21, 5, 2, 18, 195, 166, 11, 11, 5, 18,
+			9, 20, 9, 198, 32, 243, 143, 72, 20, 128, 20, 9, 198, 88, 83, 133, 72, 16, 128, 20, 0, 10, 199, 36, 212, 12, 61, 50, 79, 56,
+			20, 10, 199, 44, 243, 150, 60, 161, 82, 20, 20, 10, 199, 44, 21, 84, 36, 243, 133, 72, 20, 10, 199, 32, 20, 144, 84, 225, 82, 20,
+			20, 10, 199, 20, 180, 193, 52, 147, 133, 72, 20, 10, 199, 16, 85, 1, 48, 161, 82, 20, 20, 10, 199, 12, 19, 79, 84, 99, 5, 72,
+			20, 10, 199, 25, 83, 132, 4, 209, 78, 80, 20, 10, 199, 16, 85, 5, 72, 113, 78, 80, 20, 10, 199, 77, 84, 16, 48, 80, 78, 80,
+			20, 10, 199, 44, 243, 150, 21, 36, 193, 8, 20, 0, 11, 200, 52, 85, 1, 48, 195, 198, 60, 224, 20, 7, 196, 77, 2, 79, 56, 20,
+			12, 201, 80, 84, 212, 4, 209, 78, 80, 84, 133, 20, 11, 200, 44, 243, 5, 77, 65, 82, 60, 192, 20, 14, 139, 4, 9, 195, 166, 20,
+			5, 20, 9, 11, 5, 18, 20, 7, 196, 72, 244, 201, 56, 20, 11, 200, 56, 80, 80, 60, 194, 84, 4, 224, 20, 7, 196, 88, 83, 1,
+			56, 21, 7, 196, 44, 20, 1, 8, 20, 7, 196, 16, 83, 142, 20, 76, 0, 12, 201, 81, 32, 78, 76, 210, 84, 80, 84, 128, 20, 9,
+			198, 64, 148, 129, 80, 84, 133, 20, 12, 201, 53, 149, 15, 48, 241, 201, 76, 84, 128, 20, 12, 201, 53, 83, 20, 37, 3, 9, 12, 84,
+			128, 20, 9, 198, 45, 38, 80, 80, 84, 133, 20, 12, 201, 36, 229, 5, 72, 210, 84, 80, 84, 128, 20, 12, 201, 32, 243, 79, 28, 83,
+			137, 76, 84, 128, 20, 12, 201, 20, 180, 208, 72, 244, 18, 36, 84, 128, 20, 12, 201, 16, 148, 203, 72, 147, 73, 56, 84, 128, 20, 9,
+			198, 9, 35, 206, 104, 84, 133, 20, 12, 201, 8, 20, 212, 5, 33, 9, 76, 84, 128, 20, 9, 198, 8, 18, 129, 16, 84, 133, 20, 12,
+			201, 77, 145, 137, 48, 149, 9, 44, 84, 128, 20, 12, 201, 21, 2, 76, 21, 5, 9, 44, 84, 128, 20, 8, 197, 28, 20, 132, 36, 224,
+			20, 8, 197, 4, 226, 76, 36, 224, 20, 9, 198, 44, 243, 80, 4, 115, 137, 20, 8, 197, 80, 20, 148, 4, 224, 21, 8, 197, 64, 192,
+			84, 4, 224, 21, 8, 197, 72, 17, 9, 4, 192, 20, 8, 197, 24, 147, 9, 4, 192, 20, 0, 9, 198, 52, 85, 1, 24, 244, 128, 20,
+			9, 198, 76, 16, 143, 80, 84, 128, 20, 9, 198, 73, 83, 83, 80, 84, 128, 20, 9, 198, 72, 148, 201, 44, 84, 128, 20, 9, 198, 65,
+			33, 77, 36, 84, 128, 20, 9, 198, 64, 21, 9, 56, 84, 128, 20, 9, 198, 52, 20, 143, 16, 84, 128, 20, 9, 198, 48, 19, 73, 56,
+			84, 128, 20, 13, 202, 44, 243, 80, 48, 147, 69, 57, 65, 82, 20, 20, 9, 198, 12, 128, 82, 52, 84, 128, 20, 9, 198, 12, 83, 148,
+			72, 84, 128, 20, 9, 198, 12, 17, 13, 36, 84, 128, 20, 9, 198, 5, 36, 137, 88, 84, 128, 20, 9, 198, 57, 82, 204, 20, 20, 128,
+			20, 9, 198, 37, 36, 137, 80, 16, 128, 20, 0, 10, 199, 44, 244, 146, 20, 181, 21, 72, 20, 10, 199, 48, 18, 212, 5, 66, 79, 56,
+			20, 10, 199, 44, 243, 132, 37, 66, 79, 56, 20, 10, 199, 36, 229, 21, 37, 66, 79, 56, 20, 10, 199, 16, 148, 133, 45, 66, 79, 56,
+			20, 10, 199, 8, 19, 132, 4, 113, 82, 20, 20, 10, 199, 44, 148, 149, 72, 114, 83, 44, 20, 10, 199, 52, 85, 1, 24, 244, 137, 44,
+			20, 10, 199, 24, 148, 141, 4, 209, 78, 80, 20, 10, 199, 16, 148, 211, 36, 65, 78, 80, 20, 12, 201, 20, 180, 207, 72, 34, 84, 4,
+			229, 0, 20, 0, 10, 135, 195, 166, 15, 12, 9, 19, 11, 20, 11, 200, 85, 48, 133, 44, 148, 212, 4, 224, 21, 11, 200, 45, 35, 205,
+			61, 51, 205, 4, 192, 20, 0, 12, 201, 76, 147, 80, 48, 145, 137, 12, 84, 128, 20, 12, 201, 72, 82, 207, 53, 1, 78, 76, 84, 128,
+			20, 12, 201, 72, 82, 207, 52, 208, 78, 16, 84, 128, 20, 12, 201, 4, 195, 5, 28, 244, 137, 76, 84, 128, 20, 9, 198, 76, 209, 76,
+			80, 84, 137, 20, 9, 198, 76, 194, 75, 44, 84, 137, 20, 9, 198, 76, 178, 76, 16, 84, 137, 20, 9, 198, 64, 148, 129, 80, 84, 137,
+			20, 12, 201, 17, 148, 204, 20, 181, 9, 44, 84, 128, 20, 8, 197, 53, 84, 203, 5, 64, 20, 12, 201, 8, 144, 140, 36, 245, 5, 44,
+			20, 128, 20, 10, 69, 77, 68, 133, 21, 64, 21, 0, 10, 0, 9, 198, 56, 85, 82, 61, 49, 64, 20, 13, 202, 25, 32, 71, 52, 83,
+			148, 5, 66, 79, 56, 20, 13, 202, 16, 148, 208, 72, 244, 15, 73, 66, 79, 56, 20, 9, 198, 44, 20, 203, 4, 65, 64, 20, 0, 10,
+			199, 77, 83, 77, 21, 34, 78, 28, 20, 9, 198, 36, 211, 65, 56, 83, 147, 20, 0, 11, 200, 44, 20, 129, 8, 147, 137, 21, 32, 20,
+			12, 137, 16, 10, 195, 166, 11, 11, 5, 18, 9, 20, 12, 201, 44, 192, 77, 64, 133, 71, 28, 84, 137, 20, 7, 196, 81, 34, 79, 48,
+			20, 18, 143, 195, 166, 11, 22, 9, 12, 9, 2, 18, 9, 19, 20, 9, 19, 11, 20, 14, 139, 16, 195, 166, 4, 9, 1, 20, 18, 9,
+			19, 11, 20, 14, 139, 15, 18, 20, 15, 16, 195, 166, 4, 9, 19, 11, 20, 14, 139, 12, 15, 7, 15, 16, 195, 166, 4, 9, 19, 11,
+			20, 13, 72, 77, 113, 65, 81, 50, 9, 73, 64, 21, 0, 10, 0, 9, 198, 21, 2, 76, 21, 4, 201, 20, 9, 198, 17, 148, 208, 21,
+			4, 201, 20, 12, 201, 45, 38, 83, 80, 19, 12, 61, 49, 64, 20, 8, 197, 88, 20, 137, 21, 32, 20, 9, 198, 76, 160, 83, 44, 84,
+			137, 20, 9, 198, 61, 32, 78, 28, 84, 137, 20, 12, 201, 24, 244, 130, 36, 225, 20, 48, 145, 192, 20, 12, 201, 76, 19, 77, 20, 228,
+			213, 72, 145, 64, 20, 8, 197, 77, 64, 75, 37, 64, 20, 14, 139, 8, 9, 12, 12, 5, 18, 195, 184, 4, 1, 14, 20, 8, 197, 64,
+			20, 211, 5, 64, 20, 8, 197, 44, 244, 147, 5, 32, 20, 0, 9, 198, 36, 211, 65, 56, 83, 148, 20, 0, 14, 139, 15, 18, 20, 15,
+			16, 195, 166, 4, 9, 19, 20, 20, 0, 9, 198, 72, 80, 197, 65, 67, 210, 20, 9, 198, 44, 243, 80, 48, 85, 0, 20, 9, 198, 44,
+			21, 129, 48, 85, 0, 20, 9, 198, 12, 243, 80, 48, 85, 0, 20, 9, 198, 64, 20, 137, 80, 85, 0, 20, 7, 196, 76, 19, 133, 72,
+			20, 7, 196, 16, 243, 133, 72, 20, 9, 198, 45, 38, 79, 48, 149, 0, 20, 9, 198, 32, 148, 212, 4, 210, 78, 20, 9, 198, 5, 4,
+			5, 49, 50, 78, 20, 7, 196, 33, 83, 65, 56, 21, 7, 196, 8, 19, 129, 56, 21, 0, 12, 201, 52, 85, 1, 52, 244, 134, 61, 49,
+			64, 20, 8, 197, 20, 225, 82, 28, 144, 20, 12, 201, 77, 66, 76, 37, 49, 82, 36, 225, 192, 20, 12, 201, 76, 145, 206, 4, 193, 82,
+			36, 225, 192, 20, 12, 201, 76, 50, 1, 81, 65, 82, 36, 225, 192, 20, 12, 201, 72, 82, 204, 4, 209, 82, 36, 225, 192, 20, 12, 201,
+			72, 81, 143, 72, 209, 82, 36, 225, 192, 20, 12, 201, 65, 35, 198, 36, 193, 82, 36, 225, 192, 20, 12, 201, 64, 241, 84, 37, 49, 82,
+			36, 225, 192, 20, 12, 201, 45, 32, 75, 20, 193, 82, 36, 225, 192, 20, 12, 201, 44, 19, 132, 37, 49, 82, 36, 225, 192, 20, 12, 201,
+			36, 225, 12, 60, 113, 82, 36, 225, 192, 20, 12, 201, 36, 67, 204, 37, 49, 82, 36, 225, 192, 20, 12, 201, 32, 84, 143, 37, 49, 82,
+			36, 225, 192, 20, 12, 201, 24, 16, 146, 36, 177, 82, 36, 225, 192, 20, 12, 201, 20, 112, 76, 37, 49, 82, 36, 225, 192, 20, 12, 201,
+			16, 148, 211, 20, 177, 82, 36, 225, 192, 20, 12, 201, 16, 85, 129, 49, 81, 82, 36, 225, 192, 20, 12, 201, 16, 84, 212, 73, 81, 82,
+			36, 225, 192, 20, 12, 201, 16, 82, 204, 4, 209, 82, 36, 225, 192, 20, 12, 201, 16, 81, 143, 72, 209, 82, 36, 225, 192, 20, 12, 201,
+			8, 149, 149, 4, 177, 82, 36, 225, 192, 20, 12, 201, 4, 227, 196, 37, 49, 82, 36, 225, 192, 20, 12, 201, 4, 113, 210, 5, 97, 82,
+			36, 225, 192, 20, 13, 138, 19, 195, 184, 18, 195, 184, 22, 5, 18, 9, 20, 9, 198, 28, 84, 129, 56, 149, 77, 20, 12, 201, 72, 83,
+			1, 80, 149, 137, 76, 209, 64, 20, 8, 197, 80, 148, 129, 16, 80, 20, 8, 197, 64, 20, 129, 16, 80, 20, 11, 67, 16, 149, 0, 72,
+			6, 37, 47, 0, 72, 0, 9, 198, 77, 147, 133, 72, 114, 64, 20, 0, 10, 199, 72, 80, 197, 77, 50, 79, 56, 20, 10, 199, 4, 227,
+			133, 45, 50, 79, 56, 20, 10, 199, 4, 67, 73, 77, 50, 79, 56, 20, 12, 201, 64, 21, 15, 28, 83, 137, 80, 85, 0, 20, 12, 201,
+			24, 83, 73, 56, 147, 137, 80, 85, 0, 20, 10, 199, 44, 243, 132, 20, 211, 133, 72, 20, 10, 199, 36, 228, 197, 52, 147, 133, 72, 20,
+			10, 199, 28, 83, 1, 80, 147, 133, 72, 20, 15, 140, 195, 184, 10, 5, 14, 20, 10, 5, 14, 5, 18, 9, 20, 10, 199, 77, 98, 78,
+			16, 193, 82, 36, 20, 10, 199, 77, 84, 141, 84, 193, 82, 36, 20, 10, 199, 76, 180, 137, 8, 193, 82, 36, 20, 10, 199, 65, 34, 86,
+			5, 65, 82, 36, 20, 10, 199, 28, 19, 1, 57, 65, 82, 36, 20, 10, 199, 25, 34, 77, 85, 33, 82, 36, 20, 10, 199, 21, 2, 71,
+			60, 225, 82, 36, 20, 10, 199, 12, 130, 75, 4, 225, 82, 36, 20, 10, 199, 8, 146, 143, 85, 65, 82, 36, 20, 10, 199, 5, 37, 9,
+			48, 193, 82, 36, 20, 12, 201, 4, 229, 9, 32, 148, 212, 4, 210, 78, 20, 10, 199, 52, 85, 1, 25, 148, 201, 44, 20, 10, 199, 52,
+			20, 203, 21, 32, 68, 20, 20, 0, 12, 201, 61, 48, 201, 48, 195, 211, 44, 244, 0, 20, 9, 198, 64, 18, 76, 48, 85, 0, 20, 11,
+			200, 80, 149, 21, 48, 84, 137, 56, 112, 20, 11, 200, 76, 176, 76, 64, 84, 137, 56, 112, 20, 11, 200, 72, 83, 143, 88, 84, 137, 56,
+			112, 20, 11, 200, 72, 83, 5, 28, 84, 137, 56, 112, 20, 15, 204, 72, 81, 201, 60, 224, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204,
+			65, 54, 75, 60, 195, 199, 37, 49, 82, 36, 225, 192, 20, 11, 200, 64, 194, 83, 76, 84, 137, 56, 112, 20, 15, 204, 48, 82, 211, 36,
+			176, 76, 37, 49, 82, 36, 225, 192, 20, 11, 200, 48, 19, 73, 56, 84, 137, 56, 112, 20, 15, 204, 45, 38, 83, 80, 19, 12, 37, 49,
+			82, 36, 225, 192, 20, 15, 204, 45, 38, 80, 80, 241, 210, 4, 97, 82, 36, 225, 192, 20, 15, 204, 32, 244, 208, 37, 64, 76, 37, 49,
+			82, 36, 225, 192, 20, 11, 200, 25, 32, 78, 44, 84, 137, 56, 112, 20, 11, 200, 21, 96, 75, 84, 84, 137, 56, 112, 20, 15, 204, 16,
+			84, 212, 4, 34, 76, 37, 49, 82, 36, 225, 192, 20, 15, 204, 16, 84, 207, 72, 112, 78, 37, 49, 82, 36, 225, 192, 20, 15, 204, 16,
+			83, 79, 45, 32, 84, 37, 49, 82, 36, 225, 192, 20, 11, 200, 16, 83, 5, 28, 84, 137, 56, 112, 20, 11, 200, 5, 69, 1, 44, 84,
+			137, 56, 112, 20, 15, 204, 4, 178, 204, 36, 208, 84, 37, 49, 82, 36, 225, 192, 20, 11, 200, 84, 226, 70, 61, 35, 69, 72, 80, 20,
+			11, 200, 44, 192, 85, 77, 83, 5, 72, 80, 20, 11, 200, 64, 21, 18, 60, 225, 83, 76, 80, 20, 11, 200, 56, 83, 204, 37, 66, 75,
+			84, 208, 20, 11, 200, 56, 20, 139, 61, 66, 75, 84, 208, 20, 9, 198, 64, 243, 70, 72, 149, 0, 20, 11, 200, 44, 243, 80, 21, 65,
+			78, 12, 80, 20, 7, 196, 88, 83, 1, 72, 20, 7, 196, 32, 83, 132, 20, 72, 0, 11, 136, 12, 21, 11, 19, 21, 195, 184, 19, 20,
+			12, 201, 76, 149, 21, 5, 66, 79, 56, 83, 0, 20, 12, 201, 72, 81, 1, 45, 66, 79, 56, 83, 0, 20, 9, 198, 44, 193, 78, 60,
+			66, 69, 20, 9, 198, 77, 147, 80, 61, 50, 69, 20, 9, 198, 21, 81, 143, 52, 19, 137, 20, 12, 69, 52, 17, 1, 52, 80, 21, 102,
+			114, 0, 10, 0, 17, 142, 5, 14, 3, 25, 11, 12, 15, 16, 195, 166, 4, 9, 19, 20, 20, 9, 198, 60, 97, 137, 12, 145, 76, 20,
+			9, 198, 77, 84, 146, 20, 19, 0, 20, 0, 20, 67, 32, 19, 128, 107, 110, 50, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32,
+			10, 199, 72, 80, 197, 65, 66, 79, 56, 20, 10, 199, 45, 33, 77, 5, 66, 79, 56, 20, 10, 199, 16, 81, 21, 45, 66, 79, 56, 20,
+			12, 201, 36, 224, 75, 80, 149, 137, 80, 85, 0, 20, 14, 203, 77, 65, 78, 60, 116, 129, 24, 84, 137, 56, 112, 20, 14, 203, 72, 85,
+			137, 80, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 64, 20, 212, 21, 84, 137, 76, 84, 137, 56, 112, 20, 14, 203, 64, 19, 1, 80,
+			19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 52, 243, 143, 64, 243, 9, 76, 84, 137, 56, 112, 20, 14, 203, 44, 21, 1, 48, 241, 201,
+			76, 84, 137, 56, 112, 20, 18, 207, 36, 228, 212, 73, 83, 69, 57, 64, 76, 37, 49, 82, 36, 225, 192, 20, 14, 203, 36, 225, 15, 45,
+			68, 137, 56, 84, 137, 56, 112, 20, 14, 203, 32, 82, 212, 60, 116, 129, 24, 84, 137, 56, 112, 20, 14, 203, 24, 81, 5, 72, 19, 9,
+			76, 84, 137, 56, 112, 20, 14, 203, 20, 180, 212, 20, 212, 15, 72, 84, 137, 56, 112, 20, 14, 203, 16, 145, 201, 80, 19, 9, 76, 84,
+			137, 56, 112, 20, 14, 203, 12, 128, 80, 80, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 4, 100, 137, 44, 19, 137, 76, 84, 137, 56,
+			112, 20, 10, 199, 44, 20, 143, 77, 49, 82, 36, 20, 10, 199, 36, 225, 137, 72, 209, 82, 36, 20, 10, 199, 80, 19, 65, 72, 147, 132,
+			20, 20, 10, 199, 65, 34, 79, 72, 147, 132, 20, 20, 11, 67, 16, 147, 128, 72, 6, 37, 50, 0, 76, 6, 195, 32, 19, 128, 72, 0,
+			11, 200, 24, 192, 78, 44, 84, 137, 56, 112, 20, 11, 200, 5, 81, 9, 80, 84, 137, 56, 112, 20, 11, 200, 44, 243, 80, 5, 36, 197,
+			72, 144, 20, 11, 68, 24, 147, 129, 48, 20, 36, 89, 36, 0, 7, 196, 32, 16, 137, 80, 20, 7, 196, 48, 16, 137, 48, 20, 7, 196,
+			60, 35, 1, 80, 20, 7, 196, 80, 243, 129, 48, 20, 7, 196, 44, 19, 129, 48, 20, 7, 196, 24, 147, 129, 48, 20, 7, 196, 8, 19,
+			129, 48, 20, 11, 200, 44, 243, 16, 61, 37, 1, 28, 80, 20, 0, 9, 198, 76, 182, 76, 48, 84, 137, 20, 9, 198, 44, 21, 129, 48,
+			84, 137, 20, 6, 195, 73, 82, 78, 20, 9, 198, 48, 19, 65, 37, 51, 69, 20, 9, 198, 5, 67, 205, 37, 51, 69, 20, 25, 4, 95,
+			55, 88, 15, 107, 110, 55, 83, 57, 6, 110, 34, 89, 36, 50, 89, 47, 116, 84, 13, 50, 13, 0, 0, 11, 67, 20, 115, 133, 35, 12,
+			37, 50, 13, 0, 11, 136, 20, 18, 1, 11, 20, 195, 184, 18, 20, 13, 202, 81, 32, 78, 77, 2, 82, 5, 66, 79, 56, 20, 13, 202,
+			44, 243, 148, 4, 210, 78, 5, 66, 79, 56, 20, 13, 202, 44, 243, 12, 4, 35, 210, 5, 66, 79, 56, 20, 13, 202, 32, 19, 12, 84,
+			50, 78, 5, 66, 79, 56, 20, 13, 202, 20, 180, 208, 5, 68, 137, 5, 66, 79, 56, 20, 9, 198, 25, 85, 21, 73, 83, 64, 20, 9,
+			198, 20, 198, 83, 37, 83, 64, 20, 9, 198, 44, 20, 129, 8, 147, 128, 20, 9, 198, 8, 18, 18, 4, 147, 128, 20, 9, 198, 77, 3,
+			206, 80, 19, 128, 21, 11, 67, 16, 147, 133, 72, 6, 37, 50, 36, 0, 0, 10, 199, 44, 20, 132, 36, 19, 7, 36, 20, 10, 199, 5,
+			53, 18, 60, 195, 199, 36, 20, 9, 198, 80, 20, 133, 72, 147, 135, 20, 10, 199, 80, 19, 10, 21, 34, 78, 28, 20, 10, 199, 76, 145,
+			206, 21, 34, 78, 28, 20, 10, 199, 65, 83, 19, 21, 34, 78, 28, 20, 9, 198, 64, 20, 133, 72, 147, 135, 20, 9, 198, 64, 19, 133,
+			72, 147, 135, 20, 10, 199, 37, 34, 83, 21, 34, 78, 28, 20, 10, 199, 33, 145, 18, 21, 34, 78, 28, 20, 10, 199, 25, 84, 142, 21,
+			34, 78, 28, 20, 9, 198, 24, 147, 133, 72, 147, 135, 20, 10, 199, 9, 81, 211, 21, 34, 78, 28, 20, 10, 199, 44, 83, 73, 44, 19,
+			9, 20, 20, 10, 199, 64, 85, 18, 60, 193, 85, 52, 20, 10, 199, 77, 67, 201, 12, 148, 205, 20, 20, 10, 199, 64, 16, 201, 24, 148,
+			205, 20, 20, 10, 199, 52, 244, 129, 48, 148, 205, 20, 20, 10, 199, 24, 19, 129, 80, 148, 205, 20, 20, 10, 199, 48, 242, 207, 52, 240,
+			137, 48, 20, 10, 199, 24, 192, 71, 20, 195, 1, 80, 20, 10, 199, 52, 81, 9, 12, 147, 129, 48, 20, 10, 199, 20, 208, 146, 100, 243,
+			129, 48, 20, 0, 9, 198, 16, 82, 204, 4, 209, 82, 20, 9, 198, 8, 149, 149, 4, 177, 82, 20, 12, 201, 16, 85, 5, 72, 210, 78,
+			37, 51, 69, 20, 7, 196, 24, 243, 133, 52, 20, 9, 198, 40, 19, 65, 36, 48, 78, 20, 7, 196, 77, 82, 193, 80, 20, 7, 196, 61,
+			2, 65, 80, 20, 7, 196, 17, 82, 193, 80, 20, 11, 70, 16, 80, 149, 28, 113, 82, 21, 0, 10, 0, 14, 139, 9, 14, 19, 20, 18,
+			21, 11, 20, 195, 184, 18, 20, 9, 198, 52, 147, 129, 72, 147, 133, 20, 9, 198, 28, 83, 210, 28, 147, 133, 20, 9, 198, 4, 35, 206,
+			56, 147, 133, 20, 12, 201, 77, 84, 16, 61, 50, 84, 36, 243, 128, 20, 12, 201, 52, 19, 149, 17, 82, 212, 36, 243, 128, 20, 12, 201,
+			45, 98, 78, 80, 147, 12, 36, 243, 128, 20, 12, 201, 44, 243, 138, 84, 226, 212, 36, 243, 128, 20, 12, 201, 36, 228, 212, 37, 69, 84,
+			36, 243, 128, 20, 12, 201, 36, 226, 214, 37, 50, 84, 36, 243, 128, 20, 12, 201, 20, 180, 212, 36, 226, 212, 36, 243, 128, 20, 12, 201,
+			20, 180, 208, 61, 50, 84, 36, 243, 128, 20, 12, 201, 16, 148, 212, 36, 226, 212, 36, 243, 128, 20, 12, 201, 16, 148, 208, 61, 50, 84,
+			36, 243, 128, 20, 12, 201, 16, 84, 212, 73, 82, 212, 36, 243, 128, 20, 0, 15, 140, 11, 15, 14, 19, 20, 18, 21, 11, 20, 195, 184,
+			18, 20, 9, 198, 44, 243, 15, 24, 243, 128, 20, 13, 202, 89, 83, 11, 4, 226, 83, 21, 34, 78, 28, 20, 13, 202, 81, 32, 78, 77,
+			2, 82, 21, 34, 78, 28, 20, 13, 202, 81, 32, 78, 76, 97, 82, 21, 34, 78, 28, 20, 13, 202, 80, 83, 210, 21, 66, 83, 21, 34,
+			78, 28, 20, 13, 202, 80, 83, 5, 29, 32, 70, 21, 34, 78, 28, 20, 13, 202, 77, 84, 5, 73, 98, 83, 21, 34, 78, 28, 20, 12,
+			201, 77, 3, 206, 76, 244, 133, 72, 147, 135, 20, 13, 202, 76, 177, 77, 5, 66, 83, 21, 34, 78, 28, 20, 13, 202, 76, 19, 139, 80,
+			147, 206, 21, 34, 78, 28, 20, 12, 201, 72, 21, 9, 32, 16, 133, 72, 147, 135, 20, 13, 202, 64, 20, 129, 29, 32, 70, 21, 34, 78,
+			28, 20, 13, 202, 60, 34, 133, 45, 66, 86, 21, 34, 78, 28, 20, 13, 202, 56, 20, 139, 61, 66, 83, 21, 34, 78, 28, 20, 13, 202,
+			52, 241, 5, 72, 226, 83, 21, 34, 78, 28, 20, 13, 202, 52, 84, 131, 21, 34, 83, 21, 34, 78, 28, 20, 12, 201, 52, 81, 9, 12,
+			147, 133, 72, 147, 135, 20, 13, 202, 52, 17, 206, 21, 66, 83, 21, 34, 78, 28, 20, 13, 202, 44, 243, 148, 4, 210, 78, 21, 34, 78,
+			28, 20, 13, 202, 44, 194, 77, 5, 66, 83, 21, 34, 78, 28, 20, 13, 202, 44, 147, 15, 52, 85, 18, 21, 34, 78, 28, 20, 12, 201,
+			44, 21, 84, 36, 243, 133, 72, 147, 135, 20, 13, 202, 44, 20, 130, 60, 226, 83, 21, 34, 78, 28, 20, 12, 201, 36, 225, 18, 84, 195,
+			5, 72, 147, 135, 20, 12, 201, 36, 225, 11, 48, 20, 133, 72, 147, 135, 20, 13, 202, 33, 148, 14, 61, 66, 83, 21, 34, 78, 28, 20,
+			13, 202, 32, 148, 212, 61, 34, 83, 21, 34, 78, 28, 20, 13, 202, 28, 195, 194, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 28, 129,
+			84, 80, 242, 83, 21, 34, 78, 28, 20, 13, 202, 28, 20, 142, 37, 51, 206, 21, 34, 78, 28, 20, 13, 202, 24, 245, 15, 29, 32, 70,
+			21, 34, 78, 28, 20, 13, 202, 24, 147, 13, 5, 66, 83, 21, 34, 78, 28, 20, 13, 202, 17, 32, 77, 5, 66, 83, 21, 34, 78, 28,
+			20, 13, 202, 16, 241, 205, 5, 66, 83, 21, 34, 78, 28, 20, 13, 202, 16, 83, 196, 61, 34, 83, 21, 34, 78, 28, 20, 12, 201, 12,
+			149, 137, 48, 148, 197, 72, 147, 135, 20, 12, 201, 12, 19, 79, 84, 99, 5, 72, 147, 135, 20, 13, 202, 5, 35, 205, 5, 66, 83, 21,
+			34, 78, 28, 20, 13, 202, 4, 227, 206, 100, 210, 83, 21, 34, 78, 28, 20, 13, 202, 4, 224, 76, 60, 114, 83, 21, 34, 78, 28, 20,
+			13, 202, 4, 176, 68, 20, 210, 83, 21, 34, 78, 28, 20, 13, 202, 36, 228, 212, 37, 69, 84, 36, 243, 133, 48, 20, 9, 198, 64, 147,
+			135, 88, 147, 128, 20, 9, 198, 52, 81, 9, 12, 147, 128, 20, 13, 202, 84, 226, 86, 21, 36, 193, 48, 148, 205, 20, 20, 13, 202, 44,
+			243, 12, 20, 181, 9, 88, 148, 205, 20, 20, 9, 198, 52, 242, 9, 44, 19, 128, 20, 9, 198, 52, 81, 9, 12, 147, 128, 20, 9, 198,
+			4, 225, 207, 48, 19, 128, 20, 9, 198, 81, 83, 9, 64, 19, 128, 21, 9, 198, 64, 83, 9, 44, 19, 128, 21, 9, 198, 52, 83, 66,
+			72, 19, 128, 21, 9, 198, 21, 81, 143, 52, 19, 128, 21, 7, 66, 16, 160, 21, 0, 10, 0, 31, 67, 64, 20, 128, 48, 35, 12, 36,
+			81, 89, 13, 6, 55, 35, 12, 68, 89, 0, 81, 101, 120, 99, 101, 108, 108, 101, 110, 99, 101, 32, 10, 199, 77, 65, 84, 61, 50, 207,
+			64, 20, 10, 199, 80, 85, 18, 4, 195, 199, 36, 20, 10, 199, 64, 85, 18, 60, 195, 199, 36, 20, 10, 199, 28, 83, 133, 4, 195, 199,
+			36, 20, 9, 198, 76, 19, 133, 72, 147, 135, 20, 9, 198, 52, 147, 133, 72, 147, 135, 20, 9, 198, 28, 148, 133, 72, 147, 135, 20, 12,
+			201, 65, 54, 75, 60, 195, 199, 37, 49, 82, 20, 12, 201, 21, 70, 77, 60, 195, 199, 37, 49, 82, 20, 10, 199, 45, 84, 129, 80, 244,
+			137, 20, 20, 10, 199, 28, 195, 211, 76, 20, 137, 20, 20, 10, 199, 48, 144, 197, 57, 66, 65, 80, 20, 10, 67, 32, 20, 128, 107, 112,
+			34, 0, 76, 0, 40, 68, 16, 147, 133, 72, 72, 37, 50, 6, 36, 47, 34, 112, 68, 89, 48, 114, 47, 6, 35, 71, 55, 13, 0, 81,
+			116, 114, 97, 110, 115, 112, 111, 114, 116, 97, 98, 108, 101, 32, 7, 196, 64, 19, 133, 72, 20, 9, 198, 61, 34, 71, 4, 209, 82, 20,
+			7, 196, 16, 147, 133, 72, 20, 9, 198, 5, 67, 205, 37, 49, 82, 20, 12, 201, 65, 54, 75, 60, 195, 199, 37, 51, 69, 20, 7, 196,
+			16, 83, 129, 72, 20, 16, 73, 52, 17, 5, 52, 242, 83, 20, 195, 5, 21, 102, 114, 0, 10, 6, 196, 20, 195, 5, 72, 0, 8, 197,
+			64, 21, 18, 60, 224, 20, 17, 69, 56, 21, 18, 60, 224, 50, 6, 110, 12, 47, 51, 114, 50, 0, 20, 16, 205, 81, 32, 78, 76, 148,
+			212, 61, 34, 83, 21, 34, 78, 28, 20, 16, 205, 25, 83, 139, 80, 147, 206, 4, 194, 83, 21, 34, 78, 28, 20, 9, 198, 76, 176, 78,
+			16, 84, 133, 20, 9, 198, 64, 242, 78, 80, 84, 133, 20, 9, 198, 52, 245, 9, 88, 84, 133, 20, 9, 198, 29, 37, 80, 64, 84, 133,
+			20, 9, 198, 4, 181, 9, 88, 84, 133, 20, 8, 197, 28, 243, 132, 60, 192, 20, 8, 197, 8, 147, 195, 36, 64, 20, 8, 197, 40, 20,
+			205, 36, 224, 20, 9, 198, 77, 147, 139, 72, 243, 137, 20, 12, 201, 72, 85, 19, 52, 81, 9, 12, 147, 128, 20, 0, 9, 198, 16, 149,
+			137, 76, 244, 128, 20, 9, 198, 45, 96, 78, 80, 244, 128, 20, 12, 201, 76, 82, 212, 36, 243, 133, 72, 147, 135, 20, 12, 201, 44, 243,
+			210, 16, 147, 133, 72, 147, 135, 20, 12, 201, 44, 243, 132, 20, 211, 133, 72, 147, 135, 20, 12, 201, 36, 228, 197, 52, 147, 133, 72, 147,
+			135, 20, 12, 201, 28, 83, 1, 80, 147, 133, 72, 147, 135, 20, 12, 201, 5, 85, 15, 72, 148, 197, 72, 147, 135, 20, 9, 198, 88, 145,
+			9, 52, 84, 128, 20, 9, 198, 72, 18, 76, 48, 84, 128, 20, 9, 198, 56, 243, 73, 56, 84, 128, 20, 9, 198, 52, 84, 137, 80, 84,
+			128, 20, 9, 198, 44, 20, 137, 44, 84, 128, 20, 9, 198, 21, 128, 201, 80, 84, 128, 20, 9, 198, 16, 149, 137, 16, 84, 128, 20, 9,
+			198, 4, 208, 149, 48, 84, 128, 20, 9, 198, 28, 198, 67, 21, 35, 204, 20, 0, 10, 199, 77, 147, 80, 61, 50, 79, 56, 20, 10, 199,
+			64, 20, 131, 20, 195, 5, 72, 20, 12, 201, 52, 85, 1, 52, 244, 134, 61, 49, 82, 20, 10, 199, 76, 176, 66, 4, 117, 9, 28, 20,
+			10, 199, 84, 226, 84, 5, 34, 83, 44, 20, 10, 199, 77, 147, 70, 60, 226, 83, 44, 20, 10, 199, 76, 86, 9, 77, 66, 83, 44, 20,
+			10, 199, 76, 17, 9, 77, 66, 83, 44, 20, 10, 199, 52, 20, 148, 101, 34, 83, 44, 20, 10, 199, 32, 243, 9, 77, 66, 83, 44, 20,
+			10, 199, 32, 149, 20, 37, 66, 83, 44, 20, 10, 199, 28, 19, 1, 45, 66, 83, 44, 20, 10, 199, 16, 243, 69, 77, 66, 83, 44, 20,
+			10, 199, 16, 149, 82, 21, 66, 83, 44, 20, 10, 199, 16, 144, 66, 21, 66, 83, 44, 20, 10, 199, 5, 85, 9, 77, 66, 83, 44, 20,
+			10, 199, 5, 65, 73, 77, 66, 83, 44, 20, 10, 199, 76, 176, 66, 4, 117, 9, 28, 20, 10, 199, 24, 16, 146, 36, 176, 78, 80, 20,
+			6, 195, 40, 84, 128, 72, 0, 11, 200, 77, 147, 139, 72, 245, 18, 60, 224, 20, 7, 196, 65, 34, 79, 56, 20, 7, 196, 28, 83, 5,
+			72, 20, 7, 196, 28, 19, 1, 72, 20, 7, 196, 64, 243, 1, 72, 20, 13, 68, 24, 244, 132, 36, 83, 114, 72, 6, 37, 0, 8, 0,
+			9, 198, 64, 195, 205, 8, 84, 133, 20, 9, 198, 64, 20, 129, 16, 84, 133, 20, 9, 198, 64, 19, 133, 48, 84, 133, 20, 9, 198, 52,
+			20, 131, 32, 84, 133, 20, 12, 201, 36, 225, 11, 4, 194, 213, 48, 84, 128, 20, 9, 198, 9, 35, 195, 32, 84, 133, 20, 9, 198, 5,
+			96, 78, 12, 84, 133, 20, 8, 197, 9, 32, 77, 36, 224, 20, 8, 197, 40, 245, 137, 4, 192, 20, 8, 197, 28, 83, 137, 4, 192, 20,
+			0, 9, 66, 33, 32, 107, 110, 34, 0, 25, 9, 198, 76, 176, 77, 24, 84, 128, 20, 9, 198, 76, 176, 76, 64, 84, 128, 20, 9, 198,
+			72, 82, 210, 20, 84, 128, 20, 9, 198, 72, 81, 149, 76, 84, 128, 20, 15, 140, 16, 18, 195, 166, 6, 1, 2, 18, 9, 11, 5, 18,
+			20, 9, 198, 64, 244, 148, 36, 84, 128, 20, 9, 198, 64, 194, 83, 76, 84, 128, 20, 9, 198, 44, 17, 13, 36, 84, 128, 20, 9, 198,
+			40, 243, 135, 48, 84, 128, 20, 9, 198, 36, 226, 84, 36, 84, 128, 20, 9, 198, 25, 32, 78, 44, 84, 128, 20, 9, 198, 21, 96, 75,
+			84, 84, 128, 20, 9, 198, 20, 209, 78, 16, 84, 128, 20, 9, 198, 20, 181, 137, 64, 84, 128, 20, 9, 198, 16, 83, 143, 80, 84, 128,
+			20, 9, 198, 5, 69, 1, 44, 84, 128, 20, 13, 202, 80, 84, 141, 61, 3, 1, 77, 66, 83, 44, 20, 13, 202, 76, 83, 147, 84, 19,
+			9, 77, 66, 83, 44, 20, 13, 202, 72, 85, 129, 56, 50, 9, 77, 66, 83, 44, 20, 13, 202, 56, 20, 131, 37, 52, 201, 77, 66, 83,
+			44, 20, 13, 202, 52, 243, 143, 64, 243, 9, 77, 66, 83, 44, 20, 13, 202, 48, 81, 201, 80, 147, 73, 77, 66, 83, 44, 20, 13, 202,
+			44, 192, 83, 76, 144, 201, 77, 66, 83, 44, 20, 13, 202, 24, 81, 5, 72, 19, 9, 77, 66, 83, 44, 20, 13, 202, 20, 180, 212, 72,
+			83, 73, 77, 66, 83, 44, 20, 9, 198, 80, 83, 132, 20, 228, 192, 20, 9, 198, 9, 33, 86, 36, 20, 128, 20, 9, 198, 5, 34, 201,
+			88, 20, 128, 20, 9, 198, 24, 21, 143, 72, 16, 128, 20, 0, 10, 67, 32, 21, 128, 107, 112, 40, 0, 14, 10, 199, 80, 18, 211, 5,
+			66, 79, 56, 20, 10, 199, 44, 148, 135, 37, 50, 83, 44, 20, 10, 199, 81, 33, 77, 84, 192, 78, 80, 20, 0, 9, 198, 8, 85, 1,
+			81, 35, 206, 20, 6, 195, 32, 19, 147, 76, 0, 12, 201, 81, 32, 78, 76, 49, 78, 16, 84, 128, 20, 12, 201, 76, 19, 69, 45, 50,
+			83, 80, 84, 128, 20, 12, 201, 65, 35, 208, 4, 112, 78, 16, 84, 128, 20, 12, 201, 64, 244, 21, 48, 20, 137, 76, 84, 128, 20, 12,
+			201, 64, 20, 212, 21, 84, 137, 76, 84, 128, 20, 12, 201, 64, 20, 140, 4, 209, 78, 80, 84, 128, 20, 8, 197, 49, 82, 210, 21, 32,
+			20, 12, 201, 44, 21, 1, 48, 241, 201, 76, 84, 128, 20, 12, 201, 36, 229, 5, 73, 5, 78, 28, 84, 128, 20, 12, 201, 36, 225, 15,
+			45, 68, 137, 56, 84, 128, 20, 12, 201, 36, 65, 79, 48, 241, 201, 76, 84, 128, 20, 12, 201, 20, 180, 212, 20, 228, 201, 88, 84, 128,
+			20, 12, 201, 20, 180, 212, 20, 212, 15, 72, 84, 128, 20, 12, 201, 4, 100, 137, 44, 19, 137, 76, 84, 128, 20, 12, 201, 44, 243, 77,
+			20, 228, 213, 72, 16, 128, 20, 0, 9, 198, 44, 195, 210, 61, 49, 64, 20, 9, 198, 24, 144, 146, 61, 49, 64, 20, 9, 198, 12, 243,
+			80, 61, 49, 64, 20, 13, 202, 24, 84, 148, 36, 194, 83, 5, 66, 79, 56, 20, 13, 202, 76, 19, 141, 5, 34, 78, 21, 50, 83, 44,
+			20, 13, 202, 45, 38, 80, 80, 241, 210, 4, 98, 83, 44, 20, 13, 138, 16, 18, 195, 166, 19, 9, 4, 5, 14, 20, 20, 9, 198, 36,
+			225, 15, 48, 83, 148, 20, 9, 198, 25, 32, 71, 52, 83, 148, 20, 9, 198, 20, 195, 203, 88, 83, 148, 20, 9, 198, 53, 84, 201, 44,
+			19, 148, 20, 9, 198, 48, 16, 143, 72, 19, 148, 20, 9, 198, 36, 115, 143, 72, 19, 148, 20, 9, 198, 17, 81, 76, 48, 19, 148, 20,
+			0, 14, 139, 16, 18, 195, 166, 20, 5, 14, 4, 5, 14, 20, 20, 10, 199, 72, 84, 15, 73, 64, 71, 20, 20, 10, 199, 21, 33, 77,
+			37, 64, 71, 20, 20, 0, 30, 68, 24, 244, 131, 20, 83, 114, 34, 89, 15, 4, 65, 35, 6, 89, 57, 118, 12, 34, 0, 81, 109, 97,
+			106, 101, 117, 114, 101, 32, 11, 200, 97, 147, 15, 29, 32, 70, 21, 32, 20, 11, 200, 96, 84, 143, 29, 32, 70, 21, 32, 20, 11, 200,
+			81, 148, 15, 29, 32, 70, 21, 32, 20, 11, 200, 64, 85, 9, 80, 147, 206, 21, 32, 20, 11, 200, 48, 149, 15, 29, 32, 70, 21, 32,
+			20, 7, 196, 81, 148, 143, 48, 20, 0, 16, 205, 84, 66, 210, 101, 53, 1, 48, 194, 83, 5, 66, 79, 56, 20, 9, 198, 45, 32, 68,
+			76, 84, 137, 20, 12, 201, 81, 32, 78, 76, 49, 78, 16, 83, 148, 20, 0, 9, 198, 24, 147, 1, 52, 83, 148, 20, 13, 202, 76, 50,
+			1, 48, 37, 82, 29, 64, 71, 20, 20, 0, 12, 201, 36, 212, 18, 61, 98, 83, 5, 67, 210, 20, 9, 198, 72, 83, 65, 56, 83, 147,
+			20, 9, 198, 36, 225, 15, 48, 83, 147, 20, 9, 198, 20, 195, 203, 88, 83, 147, 20, 9, 198, 49, 83, 73, 56, 19, 147, 20, 0, 7,
+			196, 77, 85, 21, 72, 20, 11, 200, 5, 85, 15, 44, 192, 86, 21, 32, 20, 9, 198, 77, 144, 129, 72, 149, 0, 20, 9, 198, 52, 81,
+			193, 8, 149, 0, 20, 9, 198, 44, 147, 15, 8, 149, 0, 20, 7, 196, 53, 84, 201, 44, 20, 7, 196, 4, 116, 129, 24, 20, 0, 12,
+			201, 81, 80, 133, 72, 181, 76, 61, 49, 64, 20, 12, 201, 64, 20, 129, 16, 83, 148, 61, 49, 64, 20, 12, 201, 5, 98, 84, 4, 210,
+			78, 61, 49, 64, 20, 0, 11, 200, 77, 68, 143, 8, 244, 203, 61, 0, 20, 9, 198, 8, 243, 77, 21, 50, 64, 20, 12, 201, 81, 32,
+			78, 76, 49, 78, 16, 83, 147, 20, 9, 198, 44, 20, 132, 36, 19, 0, 20, 0, 9, 134, 6, 1, 13, 195, 184, 19, 20, 11, 136, 4,
+			18, 195, 166, 19, 9, 14, 5, 20, 10, 199, 44, 243, 12, 37, 50, 79, 56, 20, 12, 201, 36, 211, 79, 72, 19, 9, 80, 85, 0, 20,
+			10, 199, 72, 81, 197, 56, 84, 133, 72, 20, 10, 199, 72, 81, 5, 24, 147, 133, 72, 20, 10, 199, 72, 80, 83, 77, 83, 69, 72, 20,
+			10, 199, 44, 243, 210, 16, 147, 133, 72, 20, 10, 199, 104, 20, 137, 77, 66, 83, 44, 20, 10, 199, 88, 84, 137, 77, 66, 83, 44, 20,
+			10, 199, 77, 147, 80, 5, 66, 83, 44, 20, 10, 199, 76, 245, 138, 21, 66, 83, 44, 20, 10, 199, 65, 35, 198, 21, 66, 83, 44, 20,
+			10, 199, 64, 20, 211, 37, 98, 83, 44, 20, 10, 199, 61, 51, 65, 56, 226, 83, 44, 20, 10, 199, 56, 85, 82, 61, 66, 83, 44, 20,
+			10, 199, 56, 20, 139, 61, 66, 83, 44, 20, 10, 199, 52, 19, 4, 37, 98, 83, 44, 20, 10, 199, 52, 17, 206, 21, 66, 83, 44, 20,
+			10, 199, 33, 148, 14, 61, 66, 83, 44, 20, 10, 199, 32, 84, 141, 21, 66, 83, 44, 20, 10, 199, 20, 115, 201, 77, 66, 83, 44, 20,
+			10, 199, 17, 147, 129, 77, 66, 83, 44, 20, 10, 199, 8, 19, 5, 5, 34, 83, 44, 20, 0, 7, 196, 65, 34, 79, 72, 20, 11, 200,
+			16, 21, 1, 52, 21, 9, 76, 176, 20, 9, 198, 52, 20, 207, 56, 149, 0, 20, 7, 196, 5, 67, 206, 36, 20, 7, 196, 4, 229, 9,
+			44, 20, 9, 198, 60, 35, 9, 28, 21, 0, 20, 7, 196, 28, 19, 1, 56, 21, 0, 8, 197, 24, 19, 148, 60, 208, 20, 8, 197, 72,
+			81, 5, 72, 144, 20, 8, 197, 44, 243, 147, 84, 208, 20, 9, 198, 64, 243, 25, 24, 243, 137, 20, 19, 70, 64, 84, 5, 72, 243, 137,
+			48, 36, 48, 13, 34, 6, 39, 50, 37, 0, 20, 8, 197, 16, 84, 15, 56, 144, 20, 0, 13, 202, 56, 85, 82, 61, 4, 217, 44, 243,
+			15, 28, 20, 9, 198, 8, 20, 213, 56, 148, 212, 20, 9, 198, 45, 84, 129, 80, 83, 0, 20, 13, 202, 81, 32, 78, 76, 194, 84, 80,
+			84, 133, 72, 20, 13, 202, 77, 3, 206, 80, 19, 137, 77, 66, 83, 44, 20, 13, 202, 72, 84, 208, 37, 32, 84, 61, 34, 83, 44, 20,
+			13, 202, 44, 243, 66, 36, 224, 84, 61, 34, 83, 44, 20, 13, 202, 32, 83, 9, 60, 49, 78, 81, 34, 83, 44, 20, 0, 29, 75, 44,
+			243, 134, 37, 35, 65, 56, 65, 82, 56, 80, 49, 114, 50, 83, 36, 34, 65, 6, 110, 50, 72, 108, 20, 50, 13, 0, 13, 138, 7, 12,
+			1, 13, 15, 21, 18, 195, 184, 19, 20, 12, 137, 19, 15, 21, 20, 5, 14, 195, 184, 18, 20, 12, 137, 13, 5, 4, 1, 12, 10, 195,
+			184, 18, 20, 10, 199, 49, 82, 211, 5, 66, 79, 56, 20, 10, 199, 36, 210, 84, 5, 66, 79, 56, 20, 10, 199, 24, 195, 212, 5, 66,
+			79, 56, 20, 10, 199, 16, 84, 197, 73, 66, 79, 56, 20, 10, 199, 4, 114, 84, 5, 66, 79, 56, 20, 12, 201, 77, 1, 67, 36, 19,
+			9, 80, 85, 0, 20, 12, 201, 64, 244, 21, 48, 20, 137, 80, 85, 0, 20, 12, 201, 56, 85, 84, 72, 19, 9, 80, 85, 0, 20, 12,
+			201, 53, 85, 1, 8, 147, 9, 80, 85, 0, 20, 10, 199, 81, 32, 75, 5, 52, 197, 72, 20, 10, 199, 44, 243, 134, 61, 35, 69, 72,
+			20, 10, 199, 44, 243, 134, 37, 35, 69, 72, 20, 10, 199, 8, 81, 18, 4, 113, 82, 36, 20, 10, 199, 52, 148, 212, 72, 242, 83, 44,
+			20, 10, 199, 44, 21, 75, 5, 50, 83, 44, 20, 10, 199, 4, 34, 200, 5, 50, 83, 44, 20, 10, 199, 4, 208, 129, 77, 48, 68, 20,
+			20, 0, 9, 134, 16, 15, 19, 195, 184, 18, 20, 9, 134, 13, 1, 12, 195, 184, 18, 20, 9, 198, 77, 64, 84, 37, 53, 0, 20, 9,
+			198, 21, 50, 193, 17, 35, 206, 20, 11, 200, 81, 32, 85, 52, 21, 9, 76, 176, 20, 11, 200, 65, 35, 203, 48, 149, 9, 76, 176, 20,
+			11, 200, 52, 21, 5, 52, 21, 9, 76, 176, 20, 11, 200, 16, 144, 75, 72, 149, 9, 76, 176, 20, 11, 200, 5, 34, 84, 52, 85, 9,
+			76, 176, 20, 11, 200, 4, 227, 210, 20, 181, 9, 76, 176, 20, 12, 201, 76, 19, 77, 20, 228, 213, 72, 149, 77, 20, 11, 200, 56, 81,
+			204, 36, 113, 78, 12, 80, 20, 7, 196, 45, 35, 193, 80, 20, 7, 196, 4, 115, 129, 80, 20, 0, 10, 135, 6, 15, 18, 8, 195, 184,
+			18, 20, 10, 135, 1, 13, 1, 20, 195, 184, 18, 20, 9, 198, 77, 69, 84, 80, 84, 137, 20, 9, 198, 8, 84, 133, 16, 84, 137, 20,
+			9, 198, 80, 131, 205, 37, 51, 69, 20, 9, 198, 41, 81, 1, 37, 51, 69, 20, 9, 198, 5, 34, 193, 37, 51, 69, 20, 10, 69, 8,
+			18, 76, 21, 144, 21, 0, 10, 0, 8, 198, 64, 84, 137, 44, 243, 128, 9, 198, 77, 147, 139, 72, 243, 128, 20, 9, 198, 52, 81, 193,
+			24, 243, 128, 20, 13, 202, 64, 20, 148, 36, 50, 80, 5, 66, 79, 56, 20, 13, 202, 44, 243, 147, 80, 83, 12, 5, 66, 79, 56, 20,
+			13, 202, 36, 229, 5, 73, 5, 78, 45, 66, 79, 56, 20, 15, 204, 44, 243, 147, 81, 37, 75, 80, 149, 137, 80, 85, 0, 20, 9, 198,
+			77, 84, 9, 57, 83, 64, 20, 17, 70, 60, 147, 19, 44, 147, 128, 114, 57, 55, 89, 49, 109, 50, 0, 20, 9, 198, 60, 97, 137, 12,
+			147, 128, 20, 13, 202, 88, 147, 204, 36, 226, 83, 80, 147, 132, 20, 20, 9, 198, 64, 84, 147, 36, 19, 128, 20, 16, 70, 33, 99, 210,
+			16, 19, 128, 84, 114, 72, 6, 110, 50, 0, 20, 0, 12, 137, 19, 16, 5, 4, 9, 20, 195, 184, 18, 20, 12, 137, 1, 14, 14, 15,
+			14, 3, 195, 184, 18, 20, 9, 198, 48, 85, 133, 72, 147, 135, 20, 9, 198, 48, 21, 133, 72, 147, 135, 20, 9, 198, 4, 65, 5, 72,
+			147, 135, 20, 10, 199, 64, 243, 25, 56, 243, 73, 20, 20, 10, 199, 21, 96, 78, 28, 83, 9, 20, 20, 10, 199, 53, 148, 212, 21, 34,
+			85, 52, 20, 10, 199, 45, 34, 84, 21, 34, 85, 52, 20, 10, 199, 44, 243, 131, 36, 194, 85, 52, 20, 10, 199, 16, 85, 84, 21, 34,
+			85, 52, 20, 10, 199, 88, 81, 197, 80, 16, 137, 48, 20, 0, 13, 138, 18, 5, 20, 15, 21, 3, 8, 195, 184, 18, 20, 13, 138, 16,
+			1, 19, 20, 9, 3, 8, 195, 184, 18, 20, 13, 138, 8, 5, 12, 19, 9, 14, 7, 195, 184, 18, 20, 7, 196, 64, 243, 5, 80, 20,
+			7, 196, 64, 19, 5, 80, 20, 9, 198, 12, 83, 12, 37, 53, 0, 20, 9, 198, 80, 20, 5, 81, 49, 82, 20, 9, 198, 72, 85, 129,
+			49, 81, 82, 20, 7, 196, 88, 148, 201, 80, 20, 7, 196, 76, 19, 1, 80, 20, 13, 72, 64, 144, 195, 4, 66, 76, 49, 144, 21, 0,
+			10, 0, 14, 139, 22, 5, 14, 20, 9, 12, 1, 20, 195, 184, 18, 20, 14, 139, 8, 25, 16, 14, 15, 20, 9, 19, 195, 184, 18, 20,
+			12, 201, 88, 147, 132, 36, 176, 84, 36, 243, 128, 20, 12, 201, 77, 80, 140, 36, 208, 84, 36, 243, 128, 20, 12, 201, 76, 81, 210, 20,
+			112, 84, 36, 243, 128, 20, 12, 201, 72, 84, 208, 37, 32, 84, 36, 243, 128, 20, 12, 201, 72, 83, 1, 45, 48, 84, 36, 243, 128, 20,
+			12, 201, 72, 82, 204, 4, 208, 84, 36, 243, 128, 20, 12, 201, 72, 82, 70, 36, 176, 84, 36, 243, 128, 20, 12, 201, 72, 81, 143, 72,
+			208, 84, 36, 243, 128, 20, 12, 201, 72, 80, 76, 37, 48, 84, 36, 243, 128, 20, 12, 201, 65, 80, 140, 36, 176, 84, 36, 243, 128, 20,
+			12, 201, 65, 35, 214, 60, 176, 84, 36, 243, 128, 20, 12, 201, 64, 84, 141, 85, 64, 84, 36, 243, 128, 20, 12, 201, 44, 244, 144, 61,
+			32, 84, 36, 243, 128, 20, 12, 201, 44, 243, 138, 84, 112, 84, 36, 243, 128, 20, 12, 201, 44, 243, 12, 60, 176, 84, 36, 243, 128, 20,
+			12, 201, 36, 228, 201, 57, 80, 84, 36, 243, 128, 20, 12, 201, 36, 225, 143, 72, 208, 84, 36, 243, 128, 20, 12, 201, 36, 212, 12, 36,
+			176, 84, 36, 243, 128, 20, 12, 201, 36, 211, 73, 29, 32, 84, 36, 243, 128, 20, 12, 201, 32, 16, 137, 81, 80, 84, 36, 243, 128, 20,
+			12, 201, 29, 32, 86, 37, 64, 84, 36, 243, 128, 20, 12, 201, 24, 197, 75, 81, 80, 84, 36, 243, 128, 20, 12, 201, 24, 16, 146, 36,
+			176, 84, 36, 243, 128, 20, 12, 201, 17, 148, 198, 84, 226, 212, 36, 243, 128, 20, 12, 201, 17, 84, 12, 36, 176, 84, 36, 243, 128, 20,
+			12, 201, 16, 84, 208, 21, 32, 84, 36, 243, 128, 20, 12, 201, 16, 84, 18, 37, 96, 84, 36, 243, 128, 20, 12, 201, 16, 83, 65, 72,
+			176, 84, 36, 243, 128, 20, 12, 201, 16, 82, 204, 5, 32, 84, 36, 243, 128, 20, 12, 201, 16, 82, 204, 4, 208, 84, 36, 243, 128, 20,
+			12, 201, 16, 81, 143, 72, 208, 84, 36, 243, 128, 20, 12, 201, 16, 81, 140, 61, 32, 84, 36, 243, 128, 20, 12, 201, 5, 52, 207, 12,
+			144, 84, 36, 243, 128, 20, 12, 201, 5, 4, 12, 36, 176, 84, 36, 243, 128, 20, 12, 201, 4, 178, 204, 4, 208, 84, 36, 243, 128, 20,
+			12, 201, 4, 97, 137, 72, 208, 84, 36, 243, 128, 20, 16, 205, 16, 83, 132, 72, 242, 210, 60, 227, 204, 60, 114, 83, 44, 20, 12, 201,
+			16, 84, 201, 16, 84, 129, 81, 83, 64, 20, 12, 201, 80, 84, 212, 36, 211, 206, 37, 83, 64, 20, 12, 201, 44, 243, 21, 52, 32, 82,
+			37, 83, 64, 20, 12, 201, 44, 19, 5, 56, 64, 82, 37, 83, 64, 20, 12, 201, 41, 81, 207, 76, 192, 86, 36, 83, 128, 20, 8, 197,
+			36, 229, 5, 57, 48, 20, 0, 15, 140, 4, 9, 19, 20, 18, 9, 2, 21, 20, 195, 184, 18, 20, 17, 70, 48, 144, 73, 76, 243, 128,
+			55, 37, 110, 89, 6, 114, 68, 0, 20, 17, 70, 8, 195, 213, 76, 243, 128, 71, 55, 40, 89, 6, 114, 68, 0, 20, 9, 198, 60, 181,
+			15, 28, 243, 128, 20, 9, 198, 64, 243, 25, 24, 243, 128, 20, 12, 201, 77, 84, 208, 20, 225, 5, 72, 147, 135, 20, 12, 201, 72, 80,
+			75, 80, 149, 133, 72, 147, 135, 20, 12, 201, 44, 243, 77, 20, 229, 5, 72, 147, 135, 20, 12, 201, 36, 225, 7, 72, 21, 133, 72, 147,
+			135, 20, 12, 201, 16, 148, 208, 21, 33, 197, 72, 147, 135, 20, 12, 201, 16, 148, 203, 60, 229, 5, 72, 147, 135, 20, 13, 202, 44, 243,
+			80, 61, 50, 84, 36, 243, 133, 48, 20, 9, 198, 64, 85, 9, 16, 147, 128, 20, 9, 198, 5, 68, 143, 64, 147, 128, 20, 9, 198, 44,
+			20, 21, 12, 147, 128, 20, 9, 198, 4, 100, 137, 44, 19, 128, 20, 9, 198, 65, 148, 143, 52, 19, 128, 21, 9, 198, 9, 32, 72, 52,
+			19, 128, 21, 0, 12, 201, 64, 242, 78, 80, 147, 12, 37, 53, 0, 20, 12, 137, 11, 22, 195, 166, 18, 21, 12, 5, 18, 20, 6, 195,
+			72, 83, 204, 20, 10, 199, 52, 17, 206, 21, 50, 85, 52, 20, 10, 199, 20, 180, 208, 48, 144, 201, 80, 20, 10, 199, 16, 144, 77, 21,
+			68, 129, 48, 20, 0, 15, 204, 81, 32, 78, 76, 98, 71, 85, 32, 84, 36, 243, 128, 20, 15, 204, 64, 84, 147, 60, 226, 70, 36, 176,
+			84, 36, 243, 128, 20, 15, 204, 52, 21, 5, 72, 144, 76, 37, 48, 84, 36, 243, 128, 20, 15, 204, 45, 38, 83, 80, 19, 12, 37, 48,
+			84, 36, 243, 128, 20, 15, 204, 16, 149, 133, 73, 50, 70, 36, 176, 84, 36, 243, 128, 20, 15, 204, 16, 145, 134, 21, 33, 78, 80, 144,
+			84, 36, 243, 128, 20, 15, 204, 5, 85, 5, 57, 66, 70, 36, 176, 84, 36, 243, 128, 20, 15, 140, 19, 21, 22, 5, 18, 195, 166, 14,
+			9, 20, 5, 20, 20, 7, 196, 80, 20, 133, 72, 20, 9, 198, 80, 16, 149, 37, 49, 82, 20, 9, 198, 73, 149, 13, 37, 49, 82, 20,
+			9, 198, 36, 228, 201, 57, 81, 82, 20, 9, 198, 5, 34, 193, 37, 49, 82, 20, 0, 9, 198, 77, 147, 66, 36, 244, 197, 20, 9, 198,
+			5, 3, 212, 20, 244, 197, 20, 9, 198, 16, 83, 65, 28, 241, 201, 20, 12, 201, 36, 229, 5, 72, 197, 68, 37, 83, 64, 20, 9, 198,
+			4, 229, 15, 57, 147, 73, 20, 8, 197, 77, 65, 82, 36, 192, 20, 6, 195, 64, 147, 206, 20, 8, 197, 52, 84, 137, 4, 224, 21, 8,
+			197, 77, 2, 82, 4, 192, 20, 0, 12, 201, 81, 32, 86, 21, 36, 197, 72, 147, 135, 20, 12, 201, 77, 64, 84, 36, 243, 133, 72, 147,
+			135, 20, 12, 201, 76, 81, 205, 20, 229, 5, 72, 147, 135, 20, 12, 201, 72, 83, 1, 80, 149, 133, 72, 147, 135, 20, 12, 201, 64, 145,
+			205, 20, 229, 5, 72, 147, 135, 20, 12, 201, 52, 243, 137, 80, 244, 133, 72, 147, 135, 20, 12, 201, 44, 243, 134, 84, 225, 5, 72, 147,
+			135, 20, 12, 201, 16, 81, 197, 56, 84, 133, 72, 147, 135, 20, 12, 201, 8, 241, 211, 80, 21, 133, 72, 147, 135, 20, 12, 201, 8, 147,
+			199, 72, 17, 133, 72, 147, 135, 20, 12, 201, 4, 48, 197, 48, 84, 133, 72, 147, 135, 20, 9, 198, 52, 20, 203, 36, 225, 76, 20, 9,
+			198, 37, 52, 129, 20, 194, 84, 20, 0, 27, 67, 73, 80, 128, 51, 6, 113, 71, 15, 114, 15, 89, 72, 6, 113, 71, 0, 82, 111, 103,
+			32, 115, 116, 117, 98, 32, 18, 207, 81, 32, 78, 77, 53, 66, 77, 64, 78, 80, 144, 84, 36, 243, 128, 20, 10, 199, 72, 21, 9, 32,
+			16, 133, 72, 20, 10, 199, 24, 82, 140, 4, 117, 9, 28, 20, 10, 199, 80, 244, 142, 37, 34, 83, 44, 20, 10, 199, 77, 147, 143, 65,
+			66, 83, 44, 20, 10, 199, 76, 243, 9, 77, 66, 83, 44, 20, 10, 199, 76, 82, 212, 21, 34, 83, 44, 20, 10, 199, 57, 81, 9, 77,
+			66, 83, 44, 20, 10, 199, 45, 84, 147, 61, 34, 83, 44, 20, 10, 199, 20, 179, 5, 45, 66, 83, 44, 20, 10, 199, 17, 148, 198, 5,
+			66, 83, 44, 20, 10, 199, 8, 20, 130, 5, 34, 83, 44, 20, 10, 199, 5, 67, 1, 57, 66, 83, 44, 20, 10, 199, 49, 83, 132, 20,
+			228, 197, 72, 20, 10, 199, 24, 82, 140, 4, 117, 9, 28, 20, 10, 199, 52, 19, 135, 20, 176, 78, 80, 20, 0, 29, 68, 16, 84, 133,
+			76, 72, 109, 12, 114, 89, 15, 49, 84, 112, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 9, 198, 72, 83, 9, 28,
+			147, 206, 20, 13, 138, 16, 18, 195, 166, 20, 5, 14, 4, 5, 18, 20, 7, 196, 4, 212, 5, 72, 20, 11, 200, 88, 81, 197, 80, 20,
+			137, 4, 224, 20, 7, 196, 40, 20, 1, 56, 20, 11, 200, 20, 53, 65, 16, 244, 137, 4, 224, 20, 9, 198, 76, 84, 135, 20, 229, 0,
+			20, 7, 196, 33, 84, 193, 72, 20, 11, 200, 37, 36, 129, 80, 147, 206, 4, 192, 20, 7, 196, 40, 84, 133, 76, 76, 13, 68, 16, 84,
+			133, 76, 72, 109, 12, 114, 89, 0, 72, 12, 3, 95, 49, 15, 83, 118, 34, 89, 72, 108, 0, 0, 8, 197, 28, 83, 149, 36, 224, 20,
+			9, 198, 65, 148, 143, 52, 19, 137, 20, 9, 198, 44, 18, 207, 24, 243, 137, 20, 8, 197, 36, 225, 9, 4, 224, 20, 8, 197, 8, 21,
+			137, 4, 224, 21, 12, 137, 16, 18, 195, 166, 7, 14, 1, 14, 20, 20, 0, 15, 66, 25, 128, 83, 114, 36, 81, 89, 36, 65, 48, 13,
+			55, 0, 9, 198, 80, 147, 139, 81, 84, 128, 20, 9, 198, 4, 113, 78, 81, 84, 128, 20, 13, 202, 76, 179, 204, 20, 209, 83, 80, 84,
+			133, 72, 20, 13, 202, 77, 84, 146, 20, 19, 9, 77, 66, 83, 44, 20, 13, 202, 77, 65, 82, 20, 244, 203, 61, 2, 83, 44, 20, 13,
+			202, 56, 85, 84, 72, 19, 9, 77, 66, 83, 44, 20, 13, 202, 56, 21, 21, 72, 19, 9, 77, 66, 83, 44, 20, 13, 202, 48, 144, 133,
+			72, 19, 9, 77, 66, 83, 44, 20, 13, 202, 44, 243, 139, 72, 85, 9, 77, 66, 83, 44, 20, 13, 202, 44, 243, 80, 36, 192, 84, 61,
+			34, 83, 44, 20, 13, 202, 44, 243, 15, 72, 147, 69, 81, 34, 83, 44, 20, 13, 202, 40, 245, 82, 56, 19, 9, 77, 66, 83, 44, 20,
+			13, 202, 24, 192, 71, 20, 195, 1, 57, 66, 83, 44, 20, 13, 202, 9, 84, 133, 5, 82, 210, 5, 66, 83, 44, 20, 13, 202, 8, 83,
+			12, 21, 68, 137, 77, 66, 83, 44, 20, 13, 202, 4, 36, 207, 49, 85, 9, 77, 66, 83, 44, 20, 9, 198, 52, 146, 210, 60, 194, 84,
+			20, 9, 198, 44, 243, 80, 61, 50, 84, 20, 0, 10, 199, 44, 243, 150, 20, 181, 15, 72, 20, 10, 199, 44, 243, 148, 4, 181, 15, 72,
+			20, 12, 201, 77, 80, 147, 80, 149, 21, 80, 147, 206, 20, 12, 201, 65, 35, 203, 48, 19, 65, 80, 147, 206, 20, 12, 201, 44, 20, 9,
+			81, 83, 1, 80, 147, 206, 20, 12, 201, 5, 52, 201, 52, 147, 1, 80, 147, 206, 20, 12, 201, 4, 208, 76, 28, 19, 65, 80, 147, 206,
+			20, 12, 201, 4, 178, 213, 53, 83, 1, 80, 147, 206, 20, 10, 199, 56, 243, 65, 16, 148, 197, 72, 20, 10, 199, 4, 194, 193, 48, 148,
+			197, 72, 20, 10, 199, 77, 80, 147, 60, 226, 83, 44, 20, 10, 199, 77, 1, 75, 84, 192, 78, 80, 20, 10, 67, 16, 145, 192, 72, 35,
+			57, 0, 76, 10, 3, 226, 130, 172, 36, 40, 34, 39, 0, 0, 17, 142, 14, 195, 166, 19, 20, 11, 15, 13, 13, 1, 14, 4, 5, 18,
+			20, 11, 200, 64, 20, 129, 29, 80, 89, 4, 224, 20, 0, 8, 197, 76, 86, 9, 77, 64, 20, 8, 197, 41, 84, 137, 77, 64, 20, 8,
+			197, 64, 147, 206, 21, 32, 20, 16, 205, 76, 83, 147, 5, 66, 79, 56, 19, 9, 77, 66, 83, 44, 20, 8, 197, 24, 19, 12, 37, 64,
+			20, 8, 197, 36, 226, 84, 5, 32, 20, 8, 197, 32, 82, 212, 5, 32, 20, 9, 198, 20, 228, 201, 48, 17, 197, 20, 11, 70, 32, 243,
+			69, 64, 17, 197, 21, 0, 10, 0, 22, 67, 48, 145, 197, 55, 37, 13, 15, 49, 39, 89, 72, 13, 0, 81, 107, 111, 115, 116, 101, 32,
+			17, 67, 48, 145, 197, 55, 37, 13, 15, 89, 114, 0, 81, 115, 195, 165, 32, 9, 198, 9, 35, 203, 4, 65, 64, 20, 12, 137, 16, 18,
+			195, 166, 7, 14, 1, 14, 19, 20, 6, 195, 64, 17, 197, 20, 0, 10, 199, 28, 84, 141, 4, 226, 83, 80, 20, 12, 201, 52, 19, 137,
+			65, 83, 1, 80, 147, 206, 20, 10, 199, 89, 84, 132, 21, 34, 78, 28, 20, 10, 199, 80, 245, 80, 21, 34, 78, 28, 20, 10, 199, 53,
+			83, 132, 21, 34, 78, 28, 20, 10, 199, 44, 16, 200, 21, 34, 78, 28, 20, 10, 199, 25, 83, 132, 21, 34, 78, 28, 20, 10, 199, 21,
+			35, 196, 21, 34, 78, 28, 20, 10, 199, 20, 66, 84, 21, 34, 78, 28, 20, 10, 199, 16, 146, 212, 21, 34, 78, 28, 20, 9, 198, 80,
+			82, 83, 80, 148, 203, 20, 9, 198, 61, 33, 193, 56, 148, 203, 20, 9, 198, 44, 84, 149, 8, 148, 203, 20, 9, 198, 16, 82, 83, 80,
+			148, 203, 20, 9, 198, 12, 20, 137, 8, 148, 203, 20, 10, 199, 5, 53, 18, 60, 227, 205, 36, 20, 10, 199, 5, 32, 137, 81, 32, 71,
+			20, 20, 10, 67, 40, 81, 192, 57, 35, 37, 0, 76, 0, 29, 68, 12, 243, 133, 100, 6, 49, 39, 40, 50, 37, 15, 6, 35, 57, 55,
+			108, 50, 72, 0, 81, 105, 115, 108, 97, 110, 100, 32, 11, 200, 72, 85, 129, 56, 50, 9, 77, 64, 20, 11, 200, 9, 32, 84, 76, 50,
+			9, 77, 64, 20, 11, 200, 36, 229, 5, 57, 50, 86, 21, 32, 20, 11, 200, 52, 20, 147, 44, 19, 12, 5, 64, 20, 9, 198, 12, 83,
+			12, 60, 96, 78, 21, 10, 3, 95, 50, 15, 110, 50, 13, 50, 0, 0, 12, 201, 60, 213, 133, 45, 51, 5, 48, 145, 192, 20, 12, 201,
+			48, 19, 132, 24, 198, 71, 80, 145, 192, 20, 8, 197, 76, 179, 204, 5, 32, 20, 8, 197, 28, 145, 193, 57, 64, 20, 0, 6, 194, 12,
+			240, 17, 42, 9, 198, 52, 20, 203, 36, 225, 64, 20, 13, 202, 77, 68, 149, 45, 69, 82, 4, 194, 83, 80, 20, 13, 202, 36, 225, 21,
+			77, 68, 137, 4, 194, 83, 80, 20, 13, 202, 88, 17, 193, 8, 243, 132, 21, 34, 78, 28, 20, 13, 202, 8, 19, 132, 21, 35, 204, 21,
+			34, 78, 28, 20, 12, 137, 19, 1, 13, 8, 195, 184, 18, 9, 7, 20, 9, 198, 4, 228, 197, 48, 145, 192, 20, 12, 201, 77, 147, 12,
+			60, 114, 83, 80, 148, 203, 20, 12, 201, 64, 243, 9, 80, 243, 15, 28, 148, 203, 20, 12, 201, 21, 50, 193, 80, 243, 15, 28, 148, 203,
+			20, 9, 198, 4, 225, 204, 60, 98, 76, 20, 9, 198, 20, 210, 84, 80, 83, 148, 20, 9, 198, 53, 148, 137, 4, 65, 64, 20, 9, 198,
+			76, 147, 85, 48, 19, 148, 20, 13, 70, 41, 81, 197, 52, 83, 148, 21, 102, 114, 0, 10, 0, 12, 201, 44, 243, 77, 84, 226, 75, 5,
+			67, 210, 20, 10, 199, 64, 197, 82, 4, 194, 83, 80, 20, 10, 199, 29, 82, 84, 5, 34, 83, 80, 20, 10, 199, 12, 83, 66, 4, 194,
+			83, 80, 20, 13, 138, 25, 14, 11, 22, 195, 166, 18, 4, 9, 7, 20, 13, 138, 20, 18, 15, 22, 195, 166, 18, 4, 9, 7, 20, 13,
+			138, 16, 195, 165, 12, 9, 4, 5, 12, 9, 7, 20, 13, 138, 12, 5, 20, 6, 195, 166, 18, 4, 9, 7, 20, 9, 198, 76, 83, 73,
+			80, 148, 203, 20, 9, 198, 4, 224, 82, 44, 148, 203, 20, 9, 198, 16, 146, 203, 20, 66, 75, 20, 0, 9, 198, 72, 17, 9, 5, 67,
+			210, 20, 11, 200, 81, 32, 78, 77, 3, 206, 21, 32, 20, 11, 200, 72, 83, 79, 57, 53, 18, 21, 32, 20, 7, 196, 28, 148, 133, 72,
+			20, 11, 200, 16, 83, 79, 57, 53, 18, 21, 32, 20, 14, 139, 19, 20, 9, 12, 6, 195, 166, 18, 4, 9, 7, 20, 14, 139, 15, 13,
+			19, 20, 195, 184, 4, 5, 12, 9, 7, 20, 14, 139, 8, 21, 19, 11, 22, 195, 166, 18, 4, 9, 7, 20, 14, 139, 7, 12, 15, 18,
+			22, 195, 166, 18, 4, 9, 7, 20, 14, 139, 5, 12, 19, 11, 22, 195, 166, 18, 4, 9, 7, 20, 14, 139, 1, 14, 19, 20, 195, 184,
+			4, 5, 12, 9, 7, 20, 9, 198, 56, 81, 210, 60, 145, 0, 20, 9, 198, 81, 84, 141, 4, 194, 78, 20, 7, 196, 76, 244, 129, 56,
+			20, 7, 196, 8, 83, 137, 56, 20, 11, 200, 16, 84, 195, 20, 225, 5, 57, 64, 20, 7, 196, 44, 244, 129, 56, 21, 11, 200, 44, 243,
+			131, 21, 37, 1, 57, 64, 20, 11, 200, 44, 243, 66, 5, 69, 1, 57, 64, 20, 11, 200, 4, 194, 77, 20, 229, 1, 57, 64, 20, 0,
+			8, 197, 16, 144, 76, 60, 112, 20, 8, 197, 44, 16, 137, 56, 80, 20, 8, 197, 41, 83, 5, 72, 144, 20, 15, 140, 13, 195, 166, 18,
+			11, 22, 195, 166, 18, 4, 9, 7, 20, 12, 201, 44, 81, 19, 60, 211, 69, 48, 145, 192, 20, 12, 201, 29, 81, 4, 60, 211, 69, 48,
+			145, 192, 20, 12, 201, 24, 244, 142, 20, 211, 69, 48, 145, 192, 20, 15, 204, 64, 20, 148, 36, 181, 76, 5, 34, 83, 80, 148, 203, 20,
+			15, 204, 56, 243, 139, 60, 225, 143, 72, 210, 83, 80, 148, 203, 20, 8, 197, 52, 19, 137, 76, 176, 20, 9, 198, 64, 197, 84, 60, 226,
+			69, 20, 16, 69, 76, 19, 1, 52, 144, 89, 110, 55, 6, 110, 65, 37, 0, 20, 8, 197, 52, 85, 18, 36, 176, 20, 8, 197, 64, 243,
+			9, 12, 80, 20, 8, 197, 64, 243, 65, 16, 80, 20, 0, 9, 198, 61, 5, 9, 52, 148, 212, 20, 9, 198, 32, 21, 129, 72, 148, 212,
+			20, 9, 198, 4, 181, 129, 72, 148, 212, 20, 12, 137, 195, 166, 4, 18, 21, 5, 12, 9, 7, 20, 16, 141, 22, 5, 12, 1, 14, 19,
+			20, 195, 166, 14, 4, 9, 7, 20, 12, 201, 88, 83, 133, 72, 243, 15, 28, 148, 203, 20, 12, 201, 61, 35, 137, 80, 243, 15, 28, 148,
+			203, 20, 12, 201, 60, 67, 206, 80, 243, 15, 28, 148, 203, 20, 12, 201, 60, 49, 65, 56, 243, 15, 28, 148, 203, 20, 12, 201, 52, 148,
+			193, 57, 68, 143, 64, 148, 203, 20, 12, 201, 33, 145, 18, 61, 53, 1, 80, 148, 203, 20, 12, 201, 28, 192, 67, 36, 243, 15, 28, 148,
+			203, 20, 12, 201, 24, 147, 1, 57, 68, 143, 64, 148, 203, 20, 12, 201, 24, 83, 73, 56, 243, 15, 28, 148, 203, 20, 9, 198, 5, 49,
+			80, 80, 146, 192, 20, 0, 22, 71, 64, 244, 212, 36, 195, 15, 56, 48, 4, 114, 89, 72, 37, 55, 57, 6, 114, 68, 0, 20, 10, 199,
+			76, 82, 212, 36, 243, 133, 72, 20, 10, 199, 5, 85, 15, 72, 148, 197, 72, 20, 10, 199, 29, 34, 78, 4, 117, 9, 28, 20, 9, 198,
+			28, 83, 89, 80, 194, 71, 20, 9, 198, 20, 225, 143, 48, 66, 71, 20, 10, 199, 77, 147, 148, 21, 66, 83, 44, 20, 10, 199, 77, 83,
+			142, 37, 66, 83, 44, 20, 10, 199, 76, 242, 210, 5, 66, 83, 44, 20, 10, 199, 76, 83, 65, 57, 66, 83, 44, 20, 10, 199, 72, 243,
+			65, 57, 66, 83, 44, 20, 10, 199, 65, 54, 75, 61, 66, 83, 44, 20, 10, 199, 61, 32, 84, 61, 34, 83, 44, 20, 10, 199, 52, 21,
+			82, 37, 66, 83, 44, 20, 10, 199, 52, 19, 201, 77, 66, 83, 44, 20, 10, 199, 49, 147, 70, 5, 66, 83, 44, 20, 10, 199, 48, 241,
+			201, 77, 66, 83, 44, 20, 10, 199, 44, 194, 77, 5, 66, 83, 44, 20, 10, 199, 21, 96, 83, 61, 34, 83, 44, 20, 10, 199, 20, 179,
+			9, 65, 66, 83, 44, 20, 10, 199, 16, 241, 205, 5, 66, 83, 44, 20, 10, 199, 16, 84, 208, 61, 66, 83, 44, 20, 10, 199, 5, 37,
+			9, 77, 66, 83, 44, 20, 10, 199, 5, 35, 205, 5, 66, 83, 44, 20, 12, 201, 28, 19, 12, 37, 83, 79, 96, 145, 0, 20, 10, 199,
+			65, 32, 71, 52, 21, 9, 44, 20, 10, 199, 64, 244, 142, 60, 116, 129, 24, 20, 10, 199, 29, 34, 78, 4, 117, 9, 28, 20, 0, 9,
+			134, 20, 18, 9, 195, 184, 18, 20, 11, 200, 52, 85, 1, 48, 197, 82, 28, 144, 20, 9, 198, 64, 83, 148, 4, 115, 206, 20, 7, 196,
+			5, 35, 69, 72, 20, 14, 139, 22, 9, 4, 20, 12, 195, 184, 6, 20, 9, 7, 20, 18, 143, 16, 5, 20, 5, 18, 1, 14, 19, 20,
+			195, 166, 14, 4, 9, 7, 20, 14, 139, 1, 14, 6, 195, 166, 7, 20, 5, 12, 9, 7, 20, 11, 200, 80, 83, 5, 52, 21, 9, 76,
+			176, 20, 11, 200, 76, 241, 15, 52, 149, 9, 76, 176, 20, 11, 200, 64, 225, 85, 52, 21, 9, 76, 176, 20, 11, 200, 52, 243, 143, 48,
+			149, 9, 76, 176, 20, 11, 200, 52, 85, 15, 57, 147, 73, 76, 176, 20, 11, 200, 29, 147, 78, 5, 53, 9, 76, 176, 20, 11, 200, 29,
+			32, 77, 52, 21, 9, 76, 176, 20, 11, 200, 25, 148, 201, 85, 33, 201, 76, 176, 20, 11, 200, 24, 195, 210, 37, 53, 9, 76, 176, 20,
+			11, 200, 24, 147, 15, 76, 241, 137, 76, 176, 20, 11, 200, 20, 225, 82, 28, 85, 9, 76, 176, 20, 11, 200, 8, 147, 199, 72, 17, 137,
+			76, 176, 20, 11, 200, 8, 16, 153, 48, 243, 137, 76, 176, 20, 11, 200, 4, 99, 210, 37, 53, 9, 76, 176, 20, 12, 3, 95, 51, 15,
+			47, 34, 109, 72, 57, 108, 0, 8, 4, 95, 15, 18, 4, 108, 0, 0, 11, 136, 1, 13, 15, 21, 18, 195, 184, 19, 20, 15, 140, 14,
+			5, 4, 6, 195, 166, 12, 4, 5, 12, 9, 7, 20, 15, 140, 6, 15, 18, 14, 195, 166, 18, 13, 5, 12, 9, 7, 20, 12, 201, 80,
+			83, 5, 60, 195, 199, 37, 50, 192, 20, 12, 201, 80, 82, 206, 60, 195, 199, 37, 50, 192, 20, 12, 201, 56, 85, 82, 60, 195, 199, 37,
+			50, 192, 20, 12, 201, 52, 244, 134, 60, 195, 199, 37, 50, 192, 20, 12, 201, 52, 85, 18, 60, 195, 199, 37, 50, 192, 20, 16, 69, 52,
+			83, 137, 76, 176, 65, 36, 50, 6, 37, 89, 49, 0, 20, 9, 198, 52, 17, 206, 60, 194, 69, 20, 12, 201, 65, 35, 194, 48, 83, 65,
+			80, 146, 192, 20, 12, 201, 44, 148, 143, 65, 32, 75, 80, 146, 192, 20, 8, 197, 52, 19, 9, 12, 80, 20, 12, 201, 20, 180, 212, 20,
+			212, 15, 72, 19, 0, 20, 0, 9, 198, 61, 33, 193, 56, 148, 212, 20, 18, 70, 4, 181, 129, 72, 83, 0, 112, 49, 84, 112, 51, 6,
+			111, 55, 0, 20, 13, 202, 72, 83, 1, 80, 149, 137, 77, 66, 83, 44, 20, 13, 202, 65, 35, 214, 60, 176, 84, 61, 34, 83, 44, 20,
+			13, 202, 64, 20, 129, 16, 145, 205, 5, 66, 83, 44, 20, 13, 202, 48, 147, 12, 20, 20, 201, 5, 66, 83, 44, 20, 13, 202, 44, 19,
+			11, 84, 192, 84, 61, 34, 83, 44, 20, 13, 202, 36, 228, 208, 37, 32, 84, 61, 34, 83, 44, 20, 13, 202, 36, 225, 143, 72, 208, 84,
+			61, 34, 83, 44, 20, 13, 202, 32, 245, 20, 20, 229, 15, 81, 66, 83, 44, 20, 13, 202, 16, 144, 71, 72, 19, 77, 5, 66, 83, 44,
+			20, 13, 202, 16, 82, 204, 5, 32, 84, 61, 34, 83, 44, 20, 13, 202, 8, 243, 19, 40, 85, 137, 77, 66, 83, 44, 20, 13, 202, 5,
+			34, 83, 80, 242, 210, 5, 66, 83, 44, 20, 13, 202, 4, 180, 207, 56, 243, 69, 81, 34, 83, 44, 20, 9, 198, 80, 83, 65, 80, 146,
+			192, 20, 9, 198, 4, 181, 83, 80, 146, 192, 20, 9, 198, 64, 21, 18, 60, 224, 84, 20, 0, 10, 199, 4, 66, 149, 56, 181, 21, 72,
+			20, 10, 199, 88, 148, 201, 80, 21, 15, 72, 20, 10, 199, 85, 53, 82, 64, 21, 15, 72, 20, 12, 201, 36, 225, 137, 49, 68, 129, 80,
+			147, 206, 20, 12, 201, 36, 225, 15, 64, 84, 129, 80, 147, 206, 20, 12, 201, 16, 148, 212, 72, 144, 149, 80, 147, 206, 20, 12, 201, 16,
+			83, 149, 57, 66, 65, 80, 147, 206, 20, 12, 201, 36, 195, 15, 100, 19, 9, 80, 85, 0, 20, 12, 201, 5, 51, 195, 36, 19, 9, 80,
+			85, 0, 20, 10, 199, 88, 242, 193, 48, 148, 197, 72, 20, 14, 203, 8, 244, 148, 5, 82, 212, 36, 243, 133, 72, 80, 20, 21, 146, 13,
+			9, 19, 21, 14, 4, 5, 12, 19, 5, 19, 22, 195, 166, 18, 4, 9, 7, 20, 14, 203, 44, 243, 148, 72, 20, 21, 56, 181, 9, 76,
+			176, 20, 10, 199, 4, 208, 146, 61, 50, 83, 44, 20, 10, 199, 77, 147, 143, 57, 147, 73, 44, 20, 12, 201, 44, 243, 135, 48, 243, 69,
+			72, 21, 0, 20, 0, 11, 200, 32, 84, 144, 21, 67, 204, 60, 112, 20, 9, 198, 32, 20, 144, 37, 53, 0, 20, 11, 200, 76, 20, 129,
+			12, 83, 137, 76, 176, 20, 11, 200, 64, 144, 78, 37, 53, 9, 76, 176, 20, 11, 200, 56, 18, 86, 37, 53, 9, 76, 176, 20, 11, 200,
+			52, 243, 143, 24, 243, 137, 76, 176, 20, 15, 204, 44, 20, 129, 45, 65, 82, 60, 195, 199, 37, 50, 192, 20, 11, 200, 32, 85, 82, 37,
+			53, 9, 76, 176, 20, 11, 200, 32, 81, 197, 52, 243, 137, 76, 176, 20, 11, 200, 24, 21, 86, 37, 53, 9, 76, 176, 20, 11, 200, 8,
+			18, 203, 4, 229, 9, 76, 176, 20, 11, 200, 4, 116, 143, 56, 243, 73, 76, 176, 20, 11, 200, 65, 34, 86, 36, 193, 71, 36, 80, 20,
+			7, 196, 52, 84, 137, 80, 20, 11, 200, 80, 82, 206, 60, 180, 129, 80, 144, 20, 11, 200, 21, 128, 197, 48, 193, 78, 12, 80, 20, 7,
+			196, 76, 83, 129, 80, 20, 7, 196, 64, 20, 129, 80, 20, 7, 196, 52, 244, 129, 48, 20, 7, 196, 44, 244, 129, 48, 20, 0, 16, 205,
+			44, 243, 147, 81, 37, 75, 80, 149, 137, 77, 66, 83, 44, 20, 16, 205, 20, 180, 200, 36, 34, 84, 36, 243, 137, 77, 66, 83, 44, 20,
+			0, 9, 198, 80, 83, 5, 24, 243, 128, 20, 15, 204, 36, 229, 5, 57, 66, 79, 56, 19, 9, 80, 85, 0, 20, 12, 201, 88, 83, 2,
+			20, 128, 71, 20, 194, 71, 20, 12, 201, 77, 68, 129, 25, 50, 217, 48, 66, 71, 20, 12, 201, 32, 245, 133, 17, 48, 71, 20, 194, 71,
+			20, 9, 198, 41, 83, 135, 36, 19, 128, 20, 9, 198, 72, 19, 65, 16, 19, 128, 21, 0, 12, 137, 9, 13, 16, 15, 18, 20, 195, 184,
+			18, 20, 12, 201, 44, 243, 147, 81, 34, 75, 80, 147, 206, 20, 12, 201, 36, 225, 140, 4, 211, 65, 80, 147, 206, 20, 12, 201, 5, 37,
+			9, 45, 83, 1, 80, 147, 206, 20, 14, 203, 85, 66, 76, 37, 64, 82, 37, 53, 9, 76, 176, 20, 14, 203, 81, 34, 71, 60, 227, 205,
+			21, 68, 137, 76, 176, 20, 14, 203, 44, 192, 85, 77, 68, 143, 24, 240, 137, 76, 176, 20, 14, 203, 20, 181, 137, 48, 144, 146, 37, 53,
+			9, 76, 176, 20, 15, 140, 16, 195, 166, 4, 1, 7, 15, 7, 9, 11, 21, 13, 20, 10, 199, 76, 147, 5, 57, 66, 85, 52, 20, 10,
+			199, 61, 32, 84, 61, 34, 85, 52, 20, 10, 199, 32, 84, 130, 5, 34, 85, 52, 20, 10, 199, 88, 242, 193, 48, 148, 205, 20, 20, 10,
+			199, 56, 243, 65, 16, 148, 205, 20, 20, 10, 199, 45, 98, 69, 80, 148, 205, 20, 20, 10, 199, 32, 85, 5, 72, 241, 137, 48, 20, 12,
+			137, 195, 165, 18, 8, 21, 19, 9, 1, 14, 20, 10, 199, 44, 243, 210, 16, 147, 129, 80, 20, 9, 198, 52, 20, 131, 37, 0, 78, 21,
+			10, 199, 84, 226, 86, 21, 36, 193, 48, 20, 10, 199, 28, 19, 15, 65, 0, 68, 20, 20, 8, 67, 73, 83, 128, 21, 0, 10, 0, 13,
+			138, 19, 11, 195, 166, 12, 19, 11, 195, 184, 18, 20, 7, 196, 8, 17, 21, 80, 20, 7, 196, 76, 243, 5, 80, 20, 9, 198, 85, 67,
+			208, 37, 53, 0, 20, 9, 198, 56, 244, 132, 37, 53, 0, 20, 9, 198, 76, 50, 1, 81, 65, 82, 20, 9, 198, 44, 243, 12, 4, 33,
+			82, 20, 9, 198, 20, 160, 75, 84, 193, 82, 20, 9, 198, 16, 85, 129, 49, 81, 82, 20, 11, 200, 4, 208, 137, 88, 19, 5, 57, 48,
+			20, 0, 9, 198, 4, 225, 201, 88, 84, 137, 20, 0, 5, 194, 36, 64, 17, 12, 201, 64, 84, 211, 36, 210, 83, 80, 148, 203, 20, 12,
+			201, 52, 243, 143, 80, 82, 83, 80, 148, 203, 20, 12, 201, 52, 243, 129, 72, 178, 83, 80, 148, 203, 20, 12, 201, 24, 19, 1, 56, 114,
+			83, 80, 148, 203, 20, 12, 201, 16, 81, 129, 37, 66, 83, 80, 148, 203, 20, 13, 202, 60, 36, 197, 73, 96, 84, 61, 34, 85, 52, 20,
+			13, 202, 72, 81, 204, 20, 209, 78, 80, 84, 133, 80, 20, 13, 202, 4, 194, 207, 32, 243, 9, 76, 84, 133, 80, 20, 0, 19, 71, 12,
+			129, 86, 72, 243, 5, 80, 89, 57, 109, 84, 34, 39, 55, 6, 36, 0, 10, 199, 24, 192, 71, 20, 243, 5, 80, 20, 10, 199, 64, 83,
+			148, 4, 116, 129, 52, 20, 10, 199, 32, 82, 211, 4, 116, 129, 52, 20, 12, 201, 45, 35, 206, 60, 195, 199, 37, 49, 82, 20, 9, 198,
+			21, 36, 129, 80, 148, 203, 20, 9, 198, 9, 37, 78, 20, 148, 203, 20, 10, 199, 64, 193, 66, 37, 48, 201, 80, 20, 10, 199, 21, 2,
+			83, 44, 244, 1, 48, 20, 0, 9, 198, 77, 83, 6, 60, 225, 82, 20, 7, 196, 64, 20, 133, 72, 20, 9, 198, 33, 145, 18, 5, 162,
+			78, 20, 7, 196, 4, 116, 129, 72, 20, 13, 72, 8, 80, 67, 32, 37, 71, 29, 144, 21, 0, 10, 0, 9, 198, 80, 245, 82, 57, 84,
+			133, 20, 9, 198, 76, 179, 5, 72, 244, 197, 20, 9, 198, 76, 176, 66, 36, 244, 197, 20, 8, 197, 16, 144, 75, 60, 224, 20, 8, 197,
+			88, 148, 201, 60, 224, 20, 8, 197, 16, 147, 216, 36, 64, 20, 8, 197, 48, 21, 18, 36, 224, 20, 8, 197, 12, 149, 18, 36, 224, 20,
+			9, 198, 80, 83, 5, 24, 243, 137, 20, 8, 197, 65, 35, 198, 36, 192, 20, 8, 197, 88, 84, 130, 4, 192, 20, 0, 12, 201, 24, 147,
+			129, 57, 50, 69, 72, 147, 135, 20, 12, 201, 24, 147, 15, 76, 241, 133, 72, 147, 135, 20, 9, 198, 80, 21, 15, 88, 84, 128, 20, 9,
+			198, 76, 242, 71, 56, 84, 128, 20, 9, 198, 72, 85, 9, 72, 84, 128, 20, 9, 198, 20, 210, 71, 72, 84, 128, 20, 9, 198, 16, 81,
+			137, 48, 84, 128, 20, 9, 198, 16, 80, 149, 80, 84, 128, 20, 9, 198, 12, 128, 83, 76, 84, 128, 20, 9, 198, 8, 243, 137, 80, 84,
+			128, 20, 9, 198, 65, 35, 212, 60, 179, 204, 20, 12, 201, 36, 211, 85, 56, 243, 15, 28, 148, 203, 20, 12, 201, 32, 84, 143, 77, 68,
+			129, 80, 148, 203, 20, 12, 201, 20, 118, 80, 80, 243, 15, 28, 148, 203, 20, 9, 198, 76, 21, 5, 48, 194, 84, 20, 0, 10, 199, 72,
+			80, 197, 57, 50, 79, 56, 20, 10, 199, 36, 226, 204, 85, 50, 79, 56, 20, 10, 199, 44, 243, 150, 21, 36, 197, 72, 20, 10, 199, 44,
+			243, 147, 20, 180, 133, 72, 20, 10, 199, 12, 149, 137, 48, 148, 197, 72, 20, 10, 199, 77, 83, 77, 5, 34, 83, 44, 20, 10, 199, 76,
+			177, 77, 5, 66, 83, 44, 20, 10, 199, 32, 148, 212, 61, 34, 83, 44, 20, 10, 199, 20, 195, 9, 65, 66, 83, 44, 20, 10, 199, 52,
+			19, 12, 61, 32, 193, 56, 20, 0, 22, 72, 44, 243, 134, 37, 35, 65, 56, 64, 49, 114, 50, 83, 36, 34, 65, 6, 110, 50, 72, 0,
+			10, 200, 64, 19, 143, 65, 66, 75, 60, 224, 11, 200, 65, 35, 198, 21, 52, 201, 60, 224, 20, 11, 200, 44, 243, 139, 49, 84, 201, 60,
+			224, 20, 11, 200, 44, 243, 134, 21, 52, 201, 60, 224, 20, 11, 200, 20, 180, 208, 48, 244, 201, 60, 224, 20, 7, 196, 44, 20, 5, 72,
+			20, 7, 196, 48, 21, 9, 56, 20, 7, 196, 48, 21, 9, 56, 20, 9, 198, 77, 2, 82, 4, 229, 0, 20, 7, 196, 56, 245, 1, 8,
+			20, 11, 3, 95, 53, 15, 83, 109, 65, 47, 108, 0, 0, 9, 198, 9, 35, 195, 33, 84, 133, 20, 9, 198, 8, 83, 133, 24, 144, 197,
+			67, 8, 197, 44, 20, 212, 20, 192, 20, 8, 197, 44, 20, 148, 20, 192, 20, 8, 197, 44, 20, 212, 20, 192, 20, 8, 197, 44, 20, 148,
+			20, 192, 20, 12, 201, 72, 83, 1, 80, 149, 137, 76, 84, 128, 20, 12, 201, 21, 2, 71, 72, 17, 137, 44, 84, 128, 20, 9, 198, 20,
+			180, 197, 28, 84, 197, 20, 8, 197, 24, 195, 210, 36, 224, 20, 9, 198, 8, 83, 133, 24, 144, 197, 20, 8, 197, 76, 244, 18, 4, 224,
+			21, 0, 5, 194, 37, 64, 17, 13, 202, 77, 68, 143, 8, 244, 203, 61, 2, 83, 44, 20, 13, 202, 72, 81, 143, 72, 208, 84, 61, 34,
+			83, 44, 20, 13, 202, 21, 2, 71, 72, 19, 77, 5, 66, 83, 44, 20, 13, 202, 16, 82, 204, 4, 208, 84, 61, 34, 83, 44, 20, 9,
+			198, 80, 83, 196, 60, 194, 84, 20, 9, 198, 76, 178, 66, 60, 226, 84, 20, 15, 4, 95, 13, 3, 14, 65, 6, 35, 49, 34, 4, 115,
+			50, 0, 0, 10, 199, 44, 243, 132, 84, 181, 15, 72, 20, 10, 199, 28, 192, 68, 36, 21, 15, 72, 20, 10, 199, 21, 96, 76, 84, 21,
+			15, 72, 20, 12, 201, 48, 81, 201, 80, 147, 65, 80, 147, 206, 20, 10, 199, 21, 99, 204, 85, 66, 79, 56, 20, 10, 199, 20, 193, 86,
+			5, 66, 79, 56, 20, 10, 199, 72, 243, 65, 56, 148, 197, 72, 20, 10, 199, 72, 81, 18, 21, 52, 197, 72, 20, 10, 199, 64, 20, 129,
+			49, 148, 197, 72, 20, 10, 199, 52, 19, 149, 17, 80, 197, 72, 20, 10, 199, 4, 229, 9, 12, 148, 5, 72, 20, 10, 199, 77, 148, 212,
+			20, 210, 83, 44, 20, 10, 199, 64, 19, 132, 20, 210, 83, 44, 20, 10, 199, 28, 128, 78, 21, 50, 83, 44, 20, 10, 199, 28, 83, 204,
+			60, 114, 83, 44, 20, 10, 199, 72, 84, 201, 77, 65, 78, 80, 20, 13, 67, 56, 85, 192, 21, 0, 10, 81, 97, 103, 101, 32, 0, 11,
+			200, 72, 84, 18, 21, 52, 201, 60, 224, 20, 11, 200, 65, 35, 195, 21, 52, 201, 60, 224, 20, 11, 200, 64, 84, 141, 37, 52, 201, 60,
+			224, 20, 11, 200, 64, 84, 139, 85, 52, 201, 60, 224, 20, 11, 200, 44, 243, 131, 21, 52, 201, 60, 224, 20, 11, 200, 44, 243, 77, 37,
+			52, 201, 60, 224, 20, 11, 200, 64, 84, 141, 37, 52, 201, 60, 224, 20, 11, 200, 64, 83, 148, 4, 115, 206, 4, 192, 20, 11, 200, 32,
+			82, 211, 4, 115, 206, 4, 192, 20, 9, 198, 24, 244, 141, 36, 64, 66, 20, 0, 8, 197, 72, 80, 71, 21, 32, 20, 8, 197, 12, 131,
+			203, 21, 32, 20, 9, 198, 76, 210, 71, 72, 84, 137, 20, 9, 198, 76, 178, 68, 80, 84, 137, 20, 9, 198, 24, 163, 204, 48, 84, 137,
+			20, 8, 197, 8, 21, 88, 37, 64, 20, 8, 197, 16, 146, 212, 5, 64, 20, 0, 11, 67, 76, 52, 201, 89, 49, 114, 89, 37, 0, 9,
+			198, 21, 64, 77, 36, 225, 64, 20, 13, 202, 77, 80, 143, 72, 66, 78, 5, 66, 79, 56, 20, 9, 198, 88, 83, 79, 16, 145, 192, 20,
+			13, 202, 64, 83, 15, 64, 243, 142, 21, 50, 83, 44, 20, 9, 198, 33, 145, 18, 60, 98, 76, 20, 9, 198, 45, 35, 203, 4, 65, 64,
+			20, 0, 10, 199, 80, 19, 135, 21, 34, 78, 28, 20, 10, 199, 73, 82, 78, 21, 34, 78, 28, 20, 10, 199, 72, 19, 135, 21, 34, 78,
+			28, 20, 10, 199, 64, 192, 67, 21, 34, 78, 28, 20, 10, 199, 64, 21, 83, 21, 34, 78, 28, 20, 10, 199, 52, 20, 203, 21, 34, 78,
+			28, 20, 10, 199, 52, 20, 139, 21, 34, 78, 28, 20, 10, 199, 48, 243, 135, 21, 34, 78, 28, 20, 10, 199, 48, 147, 138, 21, 34, 78,
+			28, 20, 10, 199, 24, 244, 131, 21, 34, 78, 28, 20, 9, 198, 77, 83, 69, 72, 148, 203, 20, 9, 198, 52, 19, 1, 92, 148, 203, 20,
+			9, 198, 44, 19, 129, 72, 148, 203, 20, 9, 198, 16, 82, 75, 80, 148, 203, 20, 9, 198, 77, 147, 66, 60, 194, 75, 20, 10, 199, 72,
+			84, 201, 77, 65, 78, 76, 20, 0, 12, 201, 24, 20, 141, 4, 179, 199, 56, 244, 201, 20, 11, 200, 89, 83, 7, 5, 34, 83, 21, 32,
+			20, 11, 200, 77, 147, 148, 21, 66, 83, 21, 32, 20, 11, 200, 76, 82, 212, 61, 34, 83, 21, 32, 20, 11, 200, 72, 243, 65, 57, 66,
+			83, 21, 32, 20, 11, 200, 65, 83, 22, 21, 34, 83, 21, 32, 20, 11, 200, 65, 34, 86, 5, 66, 83, 21, 32, 20, 11, 200, 64, 84,
+			137, 60, 66, 83, 21, 32, 20, 11, 200, 64, 20, 211, 37, 98, 83, 21, 32, 20, 11, 200, 56, 85, 82, 61, 66, 83, 21, 32, 20, 11,
+			200, 48, 16, 137, 4, 194, 83, 21, 32, 20, 11, 200, 44, 19, 148, 60, 226, 83, 21, 32, 20, 11, 200, 36, 212, 18, 61, 98, 83, 21,
+			32, 20, 11, 200, 32, 84, 130, 5, 34, 83, 21, 32, 20, 11, 200, 28, 116, 149, 8, 194, 83, 21, 32, 20, 11, 200, 8, 20, 130, 5,
+			34, 83, 21, 32, 20, 9, 198, 52, 84, 203, 4, 194, 78, 20, 9, 198, 52, 19, 132, 60, 194, 78, 20, 9, 198, 32, 84, 141, 20, 194,
+			78, 20, 11, 200, 52, 81, 9, 44, 19, 69, 57, 64, 20, 11, 200, 36, 228, 212, 73, 83, 69, 57, 64, 20, 9, 198, 44, 20, 5, 48,
+			192, 78, 21, 21, 72, 56, 243, 131, 32, 19, 1, 57, 64, 50, 114, 50, 91, 13, 55, 6, 112, 68, 0, 20, 11, 3, 95, 54, 15, 89,
+			57, 109, 72, 108, 0, 0, 30, 69, 76, 80, 210, 21, 64, 89, 37, 81, 34, 36, 72, 15, 89, 6, 118, 84, 37, 89, 0, 81, 115, 101,
+			114, 118, 105, 99, 101, 32, 16, 70, 8, 17, 213, 21, 69, 5, 71, 2, 35, 6, 81, 36, 47, 0, 8, 197, 81, 84, 137, 77, 64, 20,
+			8, 197, 56, 22, 137, 77, 64, 20, 16, 205, 36, 228, 212, 37, 69, 84, 36, 243, 129, 48, 148, 197, 72, 20, 8, 197, 8, 195, 203, 21,
+			32, 20, 9, 198, 4, 195, 5, 28, 244, 137, 20, 12, 201, 45, 32, 77, 64, 80, 71, 80, 145, 192, 20, 8, 197, 104, 83, 204, 37, 64,
+			20, 16, 141, 7, 195, 165, 19, 5, 16, 15, 20, 5, 14, 20, 9, 12, 20, 8, 197, 64, 21, 5, 57, 64, 20, 12, 201, 45, 32, 77,
+			64, 80, 71, 80, 145, 192, 20, 8, 197, 60, 181, 1, 57, 64, 20, 8, 197, 4, 181, 1, 57, 64, 20, 10, 69, 80, 80, 83, 21, 32,
+			21, 0, 10, 0, 25, 70, 88, 148, 139, 20, 65, 64, 84, 6, 37, 34, 49, 36, 86, 13, 15, 89, 114, 0, 81, 115, 195, 165, 32, 13,
+			202, 88, 148, 213, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 88, 19, 132, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 80, 84, 146,
+			61, 34, 83, 21, 34, 78, 28, 20, 13, 202, 77, 147, 66, 60, 194, 83, 21, 34, 78, 28, 20, 13, 202, 76, 240, 201, 4, 194, 83, 21,
+			34, 78, 28, 20, 13, 202, 72, 149, 21, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 64, 21, 18, 60, 226, 83, 21, 34, 78, 28, 20,
+			13, 202, 56, 244, 141, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 53, 84, 197, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 36, 229,
+			5, 57, 50, 86, 21, 34, 78, 28, 20, 13, 202, 24, 244, 141, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 24, 84, 148, 36, 194, 83,
+			21, 34, 78, 28, 20, 13, 202, 16, 85, 18, 60, 226, 83, 21, 34, 78, 28, 20, 13, 202, 9, 37, 84, 4, 194, 83, 21, 34, 78, 28,
+			20, 13, 202, 4, 181, 21, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 4, 68, 212, 72, 147, 135, 21, 34, 78, 28, 20, 9, 198, 45,
+			34, 77, 36, 224, 76, 20, 9, 198, 29, 81, 5, 48, 145, 192, 20, 12, 201, 76, 21, 68, 36, 20, 129, 8, 148, 203, 20, 12, 201, 65,
+			35, 194, 48, 83, 65, 80, 148, 203, 20, 12, 201, 52, 147, 133, 72, 19, 15, 28, 148, 203, 20, 12, 201, 45, 33, 77, 48, 243, 15, 28,
+			148, 203, 20, 12, 201, 44, 148, 143, 65, 32, 75, 80, 148, 203, 20, 12, 201, 44, 20, 148, 60, 116, 129, 24, 148, 203, 20, 0, 10, 199,
+			77, 2, 82, 37, 66, 83, 80, 20, 10, 199, 76, 82, 212, 21, 34, 83, 80, 20, 10, 199, 65, 34, 86, 5, 66, 83, 80, 20, 10, 199,
+			53, 149, 20, 21, 34, 83, 80, 20, 10, 199, 52, 19, 137, 21, 34, 83, 80, 20, 10, 199, 44, 243, 131, 37, 2, 83, 80, 20, 14, 203,
+			48, 21, 144, 5, 53, 5, 85, 34, 83, 21, 32, 20, 14, 203, 9, 84, 133, 5, 82, 210, 5, 66, 83, 21, 32, 20, 13, 138, 16, 195,
+			165, 20, 1, 7, 5, 12, 9, 7, 20, 13, 138, 15, 13, 2, 195, 184, 10, 5, 12, 9, 7, 20, 9, 198, 76, 243, 65, 80, 148, 203,
+			20, 9, 198, 76, 84, 129, 24, 148, 203, 20, 9, 198, 16, 144, 84, 60, 226, 75, 20, 0, 11, 200, 76, 83, 73, 56, 20, 137, 77, 64,
+			20, 11, 200, 52, 243, 133, 80, 20, 137, 77, 64, 20, 11, 200, 80, 82, 206, 36, 98, 67, 21, 32, 20, 11, 200, 52, 85, 18, 61, 3,
+			204, 37, 64, 20, 11, 200, 44, 244, 205, 61, 3, 204, 37, 64, 20, 7, 196, 28, 245, 9, 44, 20, 11, 200, 44, 243, 148, 36, 225, 197,
+			57, 64, 20, 11, 200, 44, 243, 147, 37, 53, 5, 57, 64, 20, 9, 198, 24, 147, 20, 72, 21, 0, 20, 7, 196, 88, 20, 129, 56, 21,
+			11, 200, 65, 35, 212, 21, 53, 1, 57, 64, 20, 9, 68, 9, 35, 206, 96, 21, 0, 10, 0, 8, 197, 4, 224, 76, 60, 112, 20, 8,
+			197, 52, 20, 137, 56, 80, 20, 16, 205, 44, 243, 77, 21, 32, 201, 4, 194, 83, 21, 34, 78, 28, 20, 16, 205, 36, 225, 9, 88, 145,
+			21, 4, 194, 83, 21, 34, 78, 28, 20, 12, 201, 76, 176, 82, 65, 50, 78, 16, 145, 192, 20, 12, 201, 61, 97, 82, 76, 181, 69, 48,
+			145, 192, 20, 12, 201, 60, 213, 22, 37, 53, 5, 48, 145, 192, 20, 12, 201, 56, 81, 2, 73, 145, 5, 48, 145, 192, 20, 12, 201, 24,
+			244, 148, 73, 145, 5, 48, 145, 192, 20, 12, 201, 24, 244, 148, 60, 194, 197, 48, 145, 192, 20, 12, 201, 24, 244, 147, 45, 145, 5, 48,
+			145, 192, 20, 12, 201, 24, 244, 141, 5, 53, 5, 48, 145, 192, 20, 15, 140, 6, 15, 18, 4, 195, 166, 18, 22, 5, 12, 9, 7, 20,
+			15, 204, 45, 38, 83, 80, 19, 12, 60, 116, 129, 24, 148, 203, 20, 9, 198, 44, 243, 139, 100, 194, 69, 20, 9, 198, 44, 243, 147, 36,
+			194, 69, 20, 8, 197, 44, 194, 78, 36, 176, 20, 8, 197, 52, 83, 129, 28, 80, 20, 0, 6, 195, 20, 212, 0, 17, 6, 195, 72, 81,
+			201, 20, 9, 198, 72, 246, 65, 48, 148, 212, 20, 9, 198, 64, 244, 21, 48, 148, 212, 20, 9, 198, 48, 246, 65, 48, 148, 212, 20, 13,
+			202, 44, 243, 77, 84, 226, 84, 5, 34, 83, 80, 20, 9, 198, 8, 145, 193, 52, 148, 212, 20, 9, 198, 4, 224, 82, 44, 148, 212, 20,
+			16, 141, 195, 184, 10, 5, 2, 12, 9, 11, 11, 5, 12, 9, 7, 20, 12, 137, 195, 166, 18, 2, 195, 184, 4, 9, 7, 20, 16, 141,
+			8, 195, 165, 14, 4, 7, 18, 9, 2, 5, 12, 9, 7, 20, 12, 201, 77, 147, 148, 4, 115, 65, 80, 148, 203, 20, 12, 201, 77, 147,
+			80, 80, 243, 65, 80, 148, 203, 20, 12, 201, 64, 19, 139, 72, 243, 65, 80, 148, 203, 20, 12, 201, 45, 96, 68, 72, 241, 143, 56, 148,
+			203, 20, 12, 201, 44, 19, 12, 36, 116, 129, 24, 148, 203, 20, 12, 201, 36, 179, 206, 60, 116, 129, 24, 148, 203, 20, 12, 201, 25, 32,
+			83, 20, 243, 15, 28, 148, 203, 20, 12, 201, 16, 148, 203, 60, 116, 129, 24, 148, 203, 20, 9, 198, 5, 36, 197, 56, 146, 192, 20, 0,
+			10, 199, 4, 194, 214, 4, 229, 15, 72, 20, 9, 198, 48, 149, 147, 4, 194, 71, 20, 10, 199, 52, 21, 5, 52, 21, 9, 44, 20, 10,
+			199, 5, 34, 84, 52, 85, 9, 44, 20, 12, 201, 20, 50, 1, 84, 97, 133, 72, 85, 0, 20, 0, 28, 68, 88, 244, 133, 76, 84, 114,
+			12, 89, 15, 49, 84, 112, 6, 47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 9, 198, 72, 83, 5, 28, 147, 206, 20, 9,
+			198, 53, 85, 1, 80, 147, 206, 20, 11, 200, 24, 147, 20, 72, 84, 137, 56, 112, 20, 11, 200, 80, 83, 5, 24, 243, 133, 72, 80, 20,
+			11, 200, 52, 17, 193, 76, 147, 133, 72, 80, 20, 14, 139, 16, 195, 165, 16, 1, 19, 19, 5, 12, 9, 7, 20, 14, 139, 6, 15, 18,
+			14, 195, 184, 10, 5, 12, 9, 7, 20, 11, 200, 21, 2, 71, 72, 17, 137, 76, 176, 20, 11, 200, 64, 20, 148, 36, 50, 80, 36, 80,
+			20, 9, 198, 37, 51, 1, 52, 149, 0, 20, 9, 198, 12, 240, 203, 64, 149, 0, 20, 7, 196, 44, 149, 9, 56, 20, 9, 198, 52, 147,
+			12, 36, 32, 82, 20, 9, 198, 17, 35, 205, 20, 64, 82, 20, 13, 68, 32, 21, 132, 20, 107, 110, 12, 86, 13, 0, 76, 7, 196, 88,
+			244, 133, 76, 72, 11, 3, 95, 55, 15, 89, 116, 84, 50, 108, 0, 0, 8, 197, 56, 81, 197, 72, 80, 20, 15, 140, 7, 5, 2, 18,
+			195, 166, 11, 11, 5, 12, 9, 7, 20, 15, 140, 1, 6, 7, 18, 195, 166, 14, 19, 5, 12, 9, 7, 20, 8, 197, 64, 243, 9, 80,
+			144, 20, 0, 9, 198, 52, 82, 133, 72, 148, 212, 20, 9, 198, 33, 83, 65, 56, 148, 212, 20, 9, 198, 4, 196, 9, 56, 148, 212, 20,
+			9, 198, 45, 34, 77, 36, 225, 76, 20, 16, 141, 195, 166, 7, 20, 5, 19, 11, 1, 2, 5, 12, 9, 7, 20, 9, 198, 4, 225, 197,
+			48, 146, 192, 20, 9, 198, 44, 243, 147, 84, 192, 84, 20, 9, 198, 25, 32, 75, 80, 19, 0, 20, 0, 10, 199, 76, 84, 1, 72, 21,
+			15, 72, 20, 12, 201, 65, 35, 204, 60, 225, 193, 80, 147, 206, 20, 12, 201, 64, 84, 148, 85, 32, 129, 80, 147, 206, 20, 12, 201, 52,
+			20, 212, 85, 32, 129, 80, 147, 206, 20, 12, 201, 24, 84, 141, 20, 229, 1, 80, 147, 206, 20, 14, 203, 77, 68, 129, 80, 145, 137, 12,
+			84, 137, 56, 112, 20, 0, 9, 198, 72, 80, 75, 80, 147, 206, 20, 9, 198, 36, 229, 129, 76, 147, 206, 20, 11, 200, 81, 148, 9, 76,
+			84, 137, 56, 112, 20, 11, 200, 81, 37, 78, 44, 84, 137, 56, 112, 20, 11, 200, 81, 32, 75, 80, 84, 137, 56, 112, 20, 11, 200, 77,
+			64, 71, 56, 84, 137, 56, 112, 20, 11, 200, 65, 83, 139, 80, 84, 137, 56, 112, 20, 11, 200, 61, 33, 9, 56, 84, 137, 56, 112, 20,
+			11, 200, 60, 178, 213, 64, 84, 137, 56, 112, 20, 11, 200, 57, 80, 78, 12, 84, 137, 56, 112, 20, 11, 200, 45, 96, 68, 72, 84, 137,
+			56, 112, 20, 11, 200, 44, 20, 212, 72, 84, 137, 56, 112, 20, 11, 200, 36, 243, 137, 76, 84, 137, 56, 112, 20, 11, 200, 29, 83, 77,
+			36, 84, 137, 56, 112, 20, 11, 200, 29, 37, 78, 16, 84, 137, 56, 112, 20, 11, 200, 21, 64, 66, 48, 84, 137, 56, 112, 20, 11, 200,
+			20, 225, 193, 28, 84, 137, 56, 112, 20, 11, 200, 20, 213, 76, 28, 84, 137, 56, 112, 20, 11, 200, 16, 82, 213, 64, 84, 137, 56, 112,
+			20, 11, 200, 12, 130, 70, 72, 84, 137, 56, 112, 20, 11, 200, 5, 97, 82, 80, 84, 137, 56, 112, 20, 11, 200, 4, 227, 143, 80, 84,
+			137, 56, 112, 20, 11, 200, 72, 82, 210, 85, 69, 5, 72, 80, 20, 11, 200, 36, 229, 129, 48, 145, 5, 72, 80, 20, 11, 200, 52, 241,
+			2, 100, 65, 76, 36, 112, 20, 11, 200, 44, 20, 18, 36, 99, 204, 36, 80, 20, 11, 200, 44, 20, 18, 36, 99, 204, 36, 80, 20, 11,
+			200, 64, 243, 25, 80, 82, 206, 36, 176, 20, 7, 196, 64, 148, 129, 80, 20, 7, 196, 44, 20, 129, 80, 20, 9, 198, 24, 244, 141, 84,
+			192, 82, 20, 0, 0, 9, 198, 44, 243, 150, 60, 197, 84, 20, 13, 202, 72, 82, 207, 57, 96, 76, 21, 48, 197, 72, 20, 12, 201, 24,
+			244, 149, 17, 50, 71, 20, 194, 71, 20, 9, 198, 44, 243, 77, 84, 224, 76, 20, 0, 14, 203, 88, 149, 1, 52, 147, 137, 76, 84, 137,
+			56, 112, 20, 10, 199, 88, 21, 20, 21, 34, 78, 28, 20, 14, 203, 81, 32, 78, 77, 3, 210, 80, 84, 137, 56, 112, 20, 14, 203, 81,
+			32, 78, 76, 99, 210, 52, 84, 137, 56, 112, 20, 14, 203, 77, 147, 139, 72, 243, 137, 76, 84, 137, 56, 112, 20, 14, 203, 77, 65, 82,
+			20, 245, 25, 64, 84, 137, 56, 112, 20, 14, 203, 72, 82, 207, 57, 53, 18, 84, 84, 137, 56, 112, 20, 10, 199, 64, 244, 212, 21, 34,
+			78, 28, 20, 14, 203, 44, 243, 132, 37, 66, 79, 56, 84, 137, 56, 112, 20, 14, 203, 44, 192, 83, 76, 145, 137, 12, 84, 137, 56, 112,
+			20, 10, 199, 29, 32, 68, 21, 34, 78, 28, 20, 14, 203, 28, 192, 77, 61, 84, 137, 76, 84, 137, 56, 112, 20, 10, 199, 25, 34, 84,
+			21, 34, 78, 28, 20, 10, 199, 20, 195, 216, 21, 34, 78, 28, 20, 14, 203, 16, 84, 201, 56, 99, 210, 52, 84, 137, 56, 112, 20, 14,
+			203, 5, 85, 15, 56, 243, 73, 76, 84, 137, 56, 112, 20, 14, 203, 76, 19, 77, 20, 227, 9, 28, 225, 76, 36, 112, 20, 9, 198, 48,
+			149, 15, 80, 148, 203, 20, 9, 198, 44, 19, 143, 56, 148, 203, 20, 9, 198, 20, 225, 82, 28, 148, 203, 20, 9, 198, 4, 209, 137, 8,
+			148, 203, 20, 10, 199, 56, 84, 20, 84, 226, 85, 52, 20, 10, 199, 52, 20, 148, 101, 34, 85, 52, 20, 10, 199, 48, 83, 137, 56, 148,
+			205, 20, 20, 10, 199, 52, 84, 139, 4, 229, 9, 48, 20, 9, 198, 77, 1, 67, 36, 98, 75, 20, 10, 199, 5, 96, 78, 12, 84, 133,
+			80, 20, 10, 199, 44, 243, 134, 21, 33, 78, 76, 20, 10, 199, 64, 197, 84, 60, 180, 129, 80, 20, 0, 7, 196, 52, 245, 5, 48, 20,
+			9, 198, 44, 243, 132, 60, 193, 82, 20, 9, 198, 32, 20, 131, 20, 193, 82, 20, 9, 198, 12, 148, 139, 84, 193, 82, 20, 7, 196, 72,
+			20, 9, 16, 20, 7, 196, 64, 20, 9, 48, 20, 0, 9, 198, 45, 84, 148, 60, 148, 201, 20, 0, 25, 66, 20, 224, 36, 50, 15, 49,
+			110, 50, 39, 50, 6, 36, 34, 0, 81, 107, 97, 110, 111, 110, 101, 114, 32, 16, 66, 20, 224, 36, 50, 15, 89, 6, 114, 0, 81, 115,
+			195, 165, 32, 25, 66, 20, 224, 36, 50, 15, 55, 36, 81, 6, 109, 50, 72, 13, 0, 81, 108, 101, 103, 101, 110, 100, 101, 32, 23, 66,
+			20, 224, 112, 68, 15, 48, 110, 89, 6, 112, 68, 0, 81, 112, 97, 115, 115, 97, 110, 116, 32, 19, 66, 20, 224, 35, 68, 15, 6, 71,
+			55, 114, 49, 0, 81, 98, 108, 111, 99, 32, 18, 66, 20, 224, 35, 68, 15, 83, 6, 35, 89, 0, 81, 102, 97, 99, 101, 32, 9, 198,
+			44, 244, 147, 20, 193, 84, 20, 13, 202, 81, 34, 65, 56, 117, 76, 21, 34, 78, 28, 20, 13, 202, 77, 80, 147, 80, 149, 21, 21, 34,
+			78, 28, 20, 13, 202, 77, 68, 129, 56, 117, 76, 21, 34, 78, 28, 20, 13, 202, 72, 80, 201, 72, 181, 76, 21, 34, 78, 28, 20, 13,
+			202, 65, 35, 211, 64, 82, 212, 21, 34, 78, 28, 20, 13, 202, 64, 20, 148, 36, 50, 80, 21, 34, 78, 28, 20, 13, 202, 44, 243, 147,
+			80, 149, 21, 21, 34, 78, 28, 20, 13, 202, 44, 243, 80, 48, 85, 20, 21, 34, 78, 28, 20, 12, 201, 80, 84, 141, 60, 116, 129, 24,
+			148, 203, 20, 12, 201, 52, 85, 15, 16, 243, 15, 28, 148, 203, 20, 12, 201, 45, 34, 83, 80, 243, 15, 28, 148, 203, 20, 12, 201, 44,
+			244, 133, 60, 116, 129, 24, 148, 203, 20, 12, 201, 32, 82, 211, 4, 209, 84, 72, 148, 203, 20, 12, 201, 24, 20, 141, 4, 49, 85, 80,
+			148, 203, 20, 12, 201, 20, 229, 21, 76, 144, 83, 80, 148, 203, 20, 12, 201, 20, 229, 15, 52, 243, 15, 28, 148, 203, 20, 5, 194, 20,
+			224, 72, 0, 10, 199, 64, 146, 212, 60, 116, 129, 52, 20, 9, 198, 88, 83, 133, 72, 148, 203, 20, 9, 198, 76, 243, 65, 48, 148, 203,
+			20, 9, 198, 64, 83, 1, 28, 148, 203, 20, 9, 198, 57, 83, 69, 72, 148, 203, 20, 9, 198, 32, 19, 73, 80, 148, 203, 20, 9, 198,
+			4, 181, 83, 80, 148, 203, 20, 10, 199, 36, 225, 149, 76, 244, 137, 20, 20, 10, 199, 28, 84, 141, 4, 226, 85, 52, 20, 10, 199, 21,
+			2, 83, 44, 244, 1, 80, 20, 13, 3, 95, 51, 88, 47, 51, 6, 111, 86, 84, 13, 0, 0, 7, 196, 8, 20, 143, 56, 20, 9, 198,
+			72, 84, 207, 72, 33, 82, 20, 9, 198, 72, 19, 80, 60, 225, 82, 20, 9, 198, 61, 48, 201, 48, 193, 82, 20, 7, 196, 52, 245, 133,
+			72, 20, 9, 198, 44, 243, 80, 60, 225, 82, 20, 9, 198, 24, 244, 141, 84, 193, 82, 20, 9, 198, 5, 69, 1, 12, 129, 82, 20, 9,
+			198, 4, 227, 149, 48, 193, 82, 20, 11, 200, 44, 243, 148, 36, 225, 197, 57, 48, 20, 11, 200, 44, 243, 147, 37, 53, 5, 57, 48, 20,
+			14, 3, 95, 48, 67, 107, 6, 40, 50, 16, 13, 12, 86, 0, 0, 0, 12, 201, 80, 84, 141, 61, 53, 1, 80, 148, 203, 20, 12, 201,
+			77, 65, 78, 60, 116, 129, 24, 148, 203, 20, 12, 201, 25, 85, 21, 72, 243, 15, 28, 148, 203, 20, 12, 201, 21, 50, 201, 52, 243, 15,
+			28, 148, 203, 20, 12, 201, 16, 83, 132, 72, 243, 15, 28, 148, 203, 20, 0, 10, 199, 52, 20, 135, 5, 34, 78, 20, 20, 10, 199, 44,
+			243, 134, 85, 50, 79, 56, 20, 10, 199, 36, 211, 73, 77, 50, 79, 56, 20, 12, 201, 81, 32, 78, 77, 50, 210, 36, 33, 82, 20, 10,
+			199, 44, 243, 77, 20, 229, 5, 72, 20, 10, 199, 16, 148, 208, 21, 33, 197, 72, 20, 12, 201, 16, 83, 79, 57, 53, 18, 4, 229, 0,
+			20, 8, 67, 81, 34, 80, 21, 0, 10, 0, 11, 200, 72, 81, 140, 20, 180, 201, 60, 224, 20, 11, 200, 64, 84, 150, 21, 36, 201, 60,
+			224, 20, 11, 200, 44, 243, 150, 21, 36, 201, 60, 224, 20, 11, 200, 5, 37, 9, 24, 144, 201, 20, 192, 20, 7, 196, 88, 245, 5, 72,
+			20, 7, 196, 12, 149, 5, 72, 20, 9, 198, 16, 83, 79, 29, 32, 70, 20, 9, 198, 52, 244, 132, 20, 229, 0, 20, 7, 196, 80, 149,
+			1, 56, 21, 7, 196, 68, 21, 1, 72, 20, 7, 196, 44, 21, 1, 72, 20, 9, 198, 44, 243, 80, 5, 32, 66, 20, 11, 3, 95, 57,
+			15, 50, 37, 13, 50, 108, 0, 0, 15, 140, 16, 1, 12, 195, 166, 15, 14, 20, 15, 12, 15, 7, 20, 13, 138, 16, 18, 195, 166, 19,
+			20, 9, 14, 4, 5, 20, 0, 16, 141, 1, 14, 195, 166, 19, 20, 5, 19, 9, 15, 12, 15, 7, 20, 13, 202, 72, 85, 18, 60, 99,
+			5, 45, 50, 79, 56, 20, 0, 10, 199, 65, 35, 211, 20, 181, 15, 72, 20, 10, 199, 76, 82, 210, 21, 66, 79, 56, 20, 12, 201, 44,
+			243, 132, 20, 228, 193, 80, 147, 206, 20, 12, 201, 44, 243, 80, 20, 228, 193, 80, 147, 206, 20, 12, 201, 36, 195, 21, 77, 68, 129, 80,
+			147, 206, 20, 10, 199, 25, 83, 132, 5, 66, 79, 56, 20, 12, 201, 16, 148, 208, 20, 228, 193, 80, 147, 206, 20, 10, 199, 16, 147, 206,
+			101, 50, 83, 44, 20, 10, 199, 61, 37, 15, 16, 243, 148, 36, 20, 10, 199, 5, 36, 133, 77, 64, 78, 80, 20, 0, 12, 67, 77, 65,
+			71, 89, 72, 35, 57, 0, 14, 45, 11, 200, 65, 34, 78, 12, 148, 9, 20, 192, 20, 7, 196, 64, 148, 143, 48, 20, 12, 137, 22, 195,
+			166, 18, 20, 9, 14, 4, 5, 20, 9, 198, 24, 245, 15, 29, 32, 70, 20, 9, 198, 21, 67, 143, 29, 32, 70, 20, 11, 200, 52, 81,
+			9, 80, 84, 146, 4, 224, 21, 17, 3, 95, 49, 67, 36, 72, 15, 107, 6, 40, 50, 51, 13, 12, 86, 0, 0, 8, 197, 44, 243, 132,
+			61, 32, 20, 8, 197, 64, 192, 67, 21, 32, 20, 8, 197, 24, 244, 131, 21, 32, 20, 12, 137, 16, 195, 184, 14, 9, 20, 5, 14, 20,
+			20, 0, 9, 198, 29, 32, 86, 85, 33, 64, 20, 9, 198, 80, 19, 10, 21, 33, 64, 20, 9, 198, 24, 245, 82, 4, 113, 64, 20, 0,
+			10, 67, 81, 33, 64, 47, 34, 6, 36, 0, 10, 199, 64, 19, 9, 56, 68, 143, 52, 20, 10, 199, 16, 85, 137, 21, 34, 78, 28, 20,
+			10, 199, 64, 85, 9, 80, 84, 211, 20, 20, 0, 11, 200, 88, 148, 213, 4, 194, 83, 21, 32, 20, 11, 200, 88, 19, 132, 4, 194, 83,
+			21, 32, 20, 11, 200, 80, 84, 146, 61, 34, 83, 21, 32, 20, 11, 200, 77, 147, 66, 60, 194, 83, 21, 32, 20, 11, 200, 76, 240, 201,
+			4, 194, 83, 21, 32, 20, 11, 200, 72, 149, 21, 4, 194, 83, 21, 32, 20, 11, 200, 64, 21, 18, 60, 226, 83, 21, 32, 20, 11, 200,
+			56, 244, 141, 4, 194, 83, 21, 32, 20, 11, 200, 33, 145, 18, 60, 198, 83, 21, 32, 20, 11, 200, 24, 244, 141, 4, 194, 83, 21, 32,
+			20, 11, 200, 24, 84, 148, 36, 194, 83, 21, 32, 20, 11, 200, 16, 85, 18, 60, 226, 83, 21, 32, 20, 11, 200, 9, 37, 84, 4, 194,
+			83, 21, 32, 20, 11, 200, 4, 181, 21, 4, 194, 83, 21, 32, 20, 11, 200, 4, 178, 214, 36, 84, 195, 21, 32, 20, 9, 198, 49, 85,
+			8, 21, 32, 78, 20, 11, 200, 36, 224, 201, 80, 19, 69, 57, 64, 20, 0, 8, 197, 88, 84, 147, 21, 32, 20, 12, 201, 80, 83, 5,
+			29, 32, 70, 21, 33, 64, 20, 12, 201, 24, 245, 15, 29, 32, 70, 21, 33, 64, 20, 8, 197, 24, 20, 147, 21, 32, 20, 12, 201, 5,
+			85, 15, 29, 32, 70, 21, 33, 64, 20, 8, 197, 21, 33, 77, 37, 64, 20, 8, 197, 52, 17, 217, 5, 32, 20, 9, 198, 52, 20, 137,
+			56, 17, 5, 20, 0, 17, 70, 52, 150, 20, 85, 33, 64, 65, 36, 81, 89, 47, 57, 114, 0, 20, 9, 198, 25, 34, 84, 85, 33, 64,
+			20, 9, 198, 77, 69, 68, 21, 33, 64, 20, 9, 198, 29, 32, 68, 21, 33, 64, 20, 12, 137, 15, 16, 19, 195, 166, 20, 19, 9, 7,
+			20, 18, 143, 11, 1, 18, 18, 5, 2, 195, 166, 11, 19, 13, 9, 14, 4, 5, 20, 12, 3, 95, 49, 57, 50, 6, 36, 72, 14, 50,
+			0, 0, 10, 199, 76, 243, 4, 21, 34, 83, 80, 20, 10, 199, 32, 148, 212, 61, 34, 83, 80, 20, 10, 199, 24, 17, 207, 81, 66, 83,
+			80, 20, 14, 203, 44, 243, 77, 21, 32, 201, 4, 194, 83, 21, 32, 20, 14, 203, 36, 225, 9, 88, 145, 21, 4, 194, 83, 21, 32, 20,
+			16, 75, 84, 225, 5, 73, 53, 1, 80, 83, 69, 57, 64, 21, 0, 10, 11, 3, 95, 49, 56, 6, 110, 72, 14, 50, 0, 0, 10, 68,
+			28, 149, 133, 72, 81, 37, 34, 0, 11, 68, 20, 229, 5, 72, 36, 50, 47, 114, 0, 11, 200, 77, 1, 67, 36, 98, 67, 21, 32, 20,
+			11, 200, 73, 84, 211, 36, 98, 67, 21, 32, 20, 11, 200, 72, 83, 66, 61, 84, 147, 21, 32, 20, 11, 200, 44, 192, 82, 36, 98, 67,
+			21, 32, 20, 7, 196, 44, 21, 133, 72, 20, 11, 200, 36, 229, 5, 72, 84, 211, 21, 32, 20, 11, 200, 28, 195, 210, 36, 98, 67, 21,
+			32, 20, 7, 196, 28, 84, 133, 72, 20, 11, 200, 24, 19, 19, 36, 98, 67, 21, 32, 20, 11, 200, 16, 84, 201, 56, 98, 67, 21, 32,
+			20, 7, 196, 40, 21, 129, 56, 20, 9, 198, 61, 53, 9, 56, 21, 0, 20, 12, 201, 44, 243, 148, 4, 181, 6, 48, 17, 5, 20, 0,
+			8, 197, 45, 84, 201, 56, 80, 20, 12, 201, 80, 20, 5, 81, 49, 82, 36, 225, 192, 20, 12, 201, 72, 85, 133, 73, 49, 82, 36, 225,
+			192, 20, 12, 201, 72, 85, 129, 49, 81, 82, 36, 225, 192, 20, 12, 201, 72, 80, 76, 37, 49, 82, 36, 225, 192, 20, 12, 201, 24, 19,
+			148, 5, 49, 82, 36, 225, 192, 20, 12, 201, 21, 35, 212, 37, 49, 82, 36, 225, 192, 20, 12, 201, 20, 225, 15, 77, 49, 82, 36, 225,
+			192, 20, 12, 201, 16, 84, 12, 61, 145, 82, 36, 225, 192, 20, 12, 201, 4, 225, 204, 37, 49, 82, 36, 225, 192, 20, 12, 201, 4, 68,
+			133, 77, 49, 82, 36, 225, 192, 20, 9, 198, 45, 34, 84, 21, 34, 69, 20, 9, 198, 44, 243, 131, 36, 194, 69, 20, 0, 9, 198, 48,
+			147, 135, 88, 148, 212, 20, 9, 198, 76, 176, 66, 21, 34, 64, 20, 9, 198, 17, 34, 86, 21, 34, 64, 20, 9, 198, 52, 147, 143, 37,
+			50, 192, 20, 9, 198, 17, 37, 83, 37, 50, 192, 20, 9, 198, 81, 34, 86, 36, 19, 0, 20, 0, 10, 199, 72, 85, 15, 73, 50, 79,
+			56, 20, 10, 199, 16, 147, 69, 57, 50, 79, 56, 20, 10, 199, 72, 83, 66, 85, 36, 197, 72, 20, 10, 199, 72, 83, 1, 80, 149, 133,
+			72, 20, 10, 199, 20, 180, 212, 20, 225, 5, 72, 20, 10, 199, 16, 80, 197, 48, 84, 133, 72, 20, 9, 198, 61, 4, 137, 29, 66, 71,
+			20, 10, 199, 24, 244, 148, 72, 243, 9, 28, 20, 10, 199, 4, 100, 203, 100, 83, 9, 28, 20, 14, 203, 44, 20, 148, 4, 114, 78, 36,
+			83, 147, 21, 32, 20, 12, 201, 76, 82, 210, 21, 64, 82, 36, 21, 0, 20, 12, 201, 4, 229, 9, 45, 96, 82, 36, 21, 0, 20, 0,
+			21, 72, 72, 82, 137, 12, 84, 137, 56, 112, 34, 36, 57, 37, 89, 6, 36, 51, 37, 68, 0, 12, 201, 77, 1, 75, 81, 35, 211, 44,
+			244, 0, 20, 10, 135, 13, 1, 6, 9, 195, 184, 19, 20, 11, 200, 40, 84, 137, 44, 244, 143, 76, 80, 20, 11, 200, 25, 85, 21, 72,
+			243, 15, 28, 144, 20, 11, 200, 21, 50, 201, 52, 243, 15, 28, 144, 20, 11, 200, 16, 83, 132, 72, 243, 15, 28, 144, 20, 9, 198, 64,
+			19, 70, 48, 85, 0, 20, 11, 200, 8, 83, 133, 24, 144, 201, 84, 208, 67, 15, 204, 77, 148, 212, 20, 208, 84, 37, 49, 82, 36, 225,
+			192, 20, 11, 200, 77, 81, 134, 48, 84, 137, 56, 112, 20, 15, 204, 77, 64, 78, 16, 20, 132, 37, 49, 82, 36, 225, 192, 20, 11, 200,
+			76, 178, 84, 76, 84, 137, 56, 112, 20, 11, 200, 76, 84, 1, 72, 84, 137, 56, 112, 20, 15, 204, 76, 83, 147, 36, 34, 76, 37, 49,
+			82, 36, 225, 192, 20, 11, 200, 72, 82, 137, 12, 84, 137, 56, 112, 20, 11, 200, 64, 147, 15, 80, 84, 137, 56, 112, 20, 15, 204, 52,
+			21, 5, 72, 144, 76, 37, 49, 82, 36, 225, 192, 20, 11, 200, 52, 20, 137, 56, 84, 137, 56, 112, 20, 11, 200, 44, 243, 15, 72, 84,
+			137, 56, 112, 20, 11, 200, 44, 195, 193, 44, 84, 137, 56, 112, 20, 11, 200, 28, 20, 129, 28, 84, 137, 56, 112, 20, 11, 200, 24, 145,
+			213, 72, 84, 137, 56, 112, 20, 11, 200, 16, 19, 137, 76, 84, 137, 56, 112, 20, 15, 204, 8, 17, 193, 80, 83, 12, 37, 49, 82, 36,
+			225, 192, 20, 11, 200, 5, 52, 213, 72, 84, 137, 56, 112, 20, 7, 196, 16, 21, 5, 72, 20, 7, 196, 33, 99, 210, 36, 20, 11, 200,
+			64, 84, 148, 20, 229, 12, 36, 112, 20, 11, 200, 61, 3, 21, 44, 177, 76, 36, 112, 20, 11, 200, 60, 210, 25, 28, 113, 76, 36, 112,
+			20, 11, 200, 28, 83, 148, 4, 113, 76, 36, 112, 20, 11, 200, 24, 244, 148, 72, 147, 140, 36, 112, 20, 11, 200, 24, 244, 140, 36, 113,
+			76, 36, 112, 20, 11, 200, 81, 48, 82, 37, 53, 9, 76, 176, 20, 11, 200, 56, 244, 212, 4, 193, 201, 76, 176, 20, 11, 200, 37, 51,
+			205, 21, 68, 137, 76, 176, 20, 11, 200, 28, 83, 205, 21, 68, 137, 76, 176, 20, 11, 200, 8, 243, 66, 5, 53, 9, 76, 176, 20, 11,
+			200, 60, 229, 15, 28, 83, 133, 76, 80, 20, 11, 200, 8, 83, 133, 24, 144, 201, 84, 208, 20, 11, 200, 84, 226, 84, 5, 34, 83, 52,
+			80, 20, 11, 200, 64, 197, 82, 4, 194, 83, 52, 80, 20, 11, 200, 52, 17, 206, 21, 66, 83, 52, 80, 20, 11, 200, 33, 148, 14, 61,
+			66, 83, 52, 80, 20, 11, 200, 12, 19, 22, 36, 226, 83, 52, 80, 20, 0, 11, 136, 7, 12, 15, 18, 9, 195, 184, 19, 20, 12, 201,
+			76, 83, 147, 5, 66, 79, 56, 83, 0, 20, 12, 201, 80, 21, 84, 60, 195, 199, 37, 50, 192, 20, 12, 201, 76, 240, 201, 60, 195, 199,
+			37, 50, 192, 20, 12, 201, 76, 83, 73, 60, 195, 199, 37, 50, 192, 20, 12, 201, 65, 54, 75, 60, 195, 199, 37, 50, 192, 20, 12, 201,
+			64, 244, 148, 84, 114, 83, 37, 50, 192, 20, 12, 201, 33, 145, 18, 60, 195, 199, 37, 50, 192, 20, 12, 201, 28, 83, 133, 4, 195, 199,
+			37, 50, 192, 20, 12, 201, 25, 148, 201, 60, 195, 199, 37, 50, 192, 20, 12, 201, 21, 70, 77, 60, 195, 199, 37, 50, 192, 20, 0, 9,
+			198, 80, 83, 143, 72, 148, 212, 20, 9, 198, 28, 83, 210, 28, 148, 212, 20, 9, 198, 76, 243, 4, 21, 34, 64, 20, 9, 198, 65, 32,
+			76, 21, 34, 64, 20, 9, 198, 64, 147, 80, 21, 34, 64, 20, 9, 198, 64, 147, 12, 21, 34, 64, 20, 9, 198, 64, 19, 80, 21, 34,
+			64, 20, 9, 198, 52, 19, 20, 21, 34, 64, 20, 9, 198, 48, 245, 20, 21, 34, 64, 20, 9, 198, 33, 146, 204, 21, 34, 64, 20, 9,
+			198, 28, 19, 12, 21, 34, 64, 20, 9, 198, 9, 83, 20, 21, 34, 64, 20, 9, 198, 8, 21, 20, 21, 34, 64, 20, 9, 198, 5, 67,
+			205, 37, 50, 192, 20, 9, 198, 17, 147, 129, 52, 146, 192, 20, 9, 198, 16, 83, 79, 45, 32, 84, 20, 9, 198, 8, 148, 213, 48, 96,
+			84, 20, 9, 198, 8, 145, 78, 56, 19, 0, 20, 11, 3, 95, 49, 49, 6, 109, 55, 84, 13, 0, 0, 10, 199, 72, 81, 21, 45, 66,
+			79, 56, 20, 10, 199, 61, 1, 82, 5, 66, 79, 56, 20, 10, 199, 20, 208, 78, 5, 66, 79, 56, 20, 14, 203, 52, 18, 193, 16, 19,
+			73, 76, 84, 137, 56, 112, 20, 14, 203, 44, 195, 210, 60, 99, 210, 52, 84, 137, 56, 112, 20, 18, 207, 36, 229, 5, 48, 193, 75, 81,
+			80, 76, 37, 49, 82, 36, 225, 192, 20, 14, 203, 36, 225, 5, 45, 49, 82, 12, 84, 137, 56, 112, 20, 14, 203, 36, 212, 12, 20, 209,
+			78, 80, 84, 137, 56, 112, 20, 14, 203, 25, 32, 84, 21, 35, 137, 76, 84, 137, 56, 112, 20, 14, 203, 20, 180, 212, 72, 20, 15, 48,
+			84, 137, 56, 112, 20, 14, 203, 4, 194, 207, 32, 243, 9, 76, 84, 137, 56, 112, 20, 14, 203, 4, 67, 73, 56, 148, 212, 72, 84, 137,
+			56, 112, 20, 10, 199, 36, 229, 9, 52, 145, 5, 72, 20, 10, 199, 20, 180, 208, 48, 241, 5, 72, 20, 10, 199, 16, 83, 9, 44, 21,
+			5, 72, 20, 10, 199, 44, 243, 132, 37, 67, 210, 36, 20, 14, 203, 44, 20, 129, 45, 65, 82, 37, 53, 9, 76, 176, 20, 14, 203, 16,
+			83, 147, 37, 67, 205, 21, 68, 137, 76, 176, 20, 14, 203, 36, 225, 5, 80, 84, 141, 36, 226, 83, 52, 80, 20, 14, 203, 25, 83, 139,
+			80, 147, 206, 4, 194, 83, 52, 80, 20, 14, 203, 16, 242, 213, 52, 83, 148, 5, 34, 83, 52, 80, 20, 10, 199, 64, 19, 133, 29, 148,
+			137, 44, 20, 9, 3, 95, 49, 48, 47, 6, 37, 0, 0, 7, 196, 44, 19, 149, 80, 20, 11, 200, 36, 211, 85, 56, 243, 15, 28, 144,
+			20, 11, 200, 20, 118, 80, 80, 243, 15, 28, 144, 20, 11, 200, 60, 213, 18, 20, 229, 12, 36, 112, 20, 11, 200, 52, 241, 20, 4, 113,
+			76, 36, 112, 20, 11, 200, 40, 243, 70, 73, 81, 76, 36, 112, 20, 11, 200, 24, 244, 141, 20, 229, 12, 36, 112, 20, 11, 200, 24, 244,
+			129, 72, 113, 76, 36, 112, 20, 16, 141, 16, 1, 12, 195, 166, 15, 12, 9, 20, 9, 11, 21, 13, 20, 11, 200, 13, 144, 78, 44, 19,
+			9, 84, 208, 20, 7, 196, 48, 85, 137, 80, 20, 22, 72, 12, 19, 142, 20, 195, 15, 56, 144, 49, 110, 50, 13, 55, 6, 39, 12, 50,
+			37, 0, 20, 11, 200, 44, 244, 144, 84, 193, 78, 12, 80, 20, 7, 196, 76, 148, 129, 80, 20, 9, 68, 48, 85, 133, 48, 21, 0, 10,
+			13, 3, 95, 49, 51, 47, 51, 6, 111, 72, 14, 50, 0, 0, 12, 201, 76, 176, 78, 16, 147, 129, 88, 148, 212, 20, 12, 201, 28, 83,
+			146, 20, 208, 76, 21, 34, 64, 20, 12, 201, 4, 180, 207, 56, 243, 69, 81, 34, 64, 20, 12, 201, 80, 18, 211, 60, 227, 205, 37, 50,
+			192, 20, 12, 201, 65, 54, 75, 60, 177, 77, 37, 50, 192, 20, 12, 201, 64, 243, 25, 73, 149, 13, 37, 50, 192, 20, 12, 201, 29, 32,
+			70, 60, 227, 205, 37, 50, 192, 20, 12, 201, 16, 149, 25, 72, 19, 66, 37, 50, 192, 20, 12, 201, 5, 3, 204, 60, 113, 84, 37, 50,
+			192, 20, 12, 201, 8, 20, 137, 84, 212, 213, 48, 96, 84, 20, 10, 3, 95, 49, 50, 47, 6, 114, 55, 0, 0, 13, 202, 72, 85, 18,
+			61, 52, 5, 45, 66, 79, 56, 20, 13, 202, 64, 84, 147, 21, 97, 82, 5, 66, 79, 56, 20, 13, 202, 16, 85, 5, 72, 210, 78, 5,
+			66, 79, 56, 20, 17, 206, 61, 1, 82, 5, 66, 79, 56, 19, 9, 76, 84, 137, 56, 112, 20, 9, 198, 24, 19, 12, 21, 33, 84, 20,
+			9, 198, 20, 195, 216, 21, 33, 84, 20, 9, 198, 61, 34, 71, 36, 224, 76, 20, 9, 198, 12, 84, 133, 9, 32, 76, 20, 13, 3, 95,
+			49, 53, 83, 6, 36, 65, 47, 14, 50, 0, 0, 12, 137, 11, 1, 13, 195, 166, 12, 5, 15, 14, 20, 10, 199, 80, 149, 18, 21, 34,
+			78, 28, 20, 10, 199, 48, 149, 18, 21, 34, 78, 28, 20, 10, 199, 25, 34, 83, 21, 34, 78, 28, 20, 10, 199, 17, 32, 71, 21, 34,
+			78, 28, 20, 14, 203, 88, 81, 5, 73, 53, 25, 28, 113, 76, 36, 112, 20, 9, 198, 76, 144, 137, 72, 148, 203, 20, 9, 198, 28, 83,
+			210, 28, 148, 203, 20, 9, 198, 28, 83, 133, 72, 148, 203, 20, 9, 198, 20, 118, 80, 80, 148, 203, 20, 10, 199, 56, 18, 211, 44, 245,
+			137, 80, 20, 10, 199, 80, 82, 206, 60, 180, 129, 80, 20, 10, 199, 77, 3, 206, 76, 244, 129, 80, 20, 14, 3, 95, 49, 52, 83, 57,
+			6, 39, 34, 72, 14, 50, 0, 0, 9, 198, 5, 67, 205, 37, 53, 0, 20, 7, 196, 32, 245, 5, 48, 20, 9, 198, 52, 147, 135, 20,
+			193, 82, 20, 9, 198, 44, 244, 146, 60, 65, 82, 20, 9, 198, 24, 245, 82, 4, 113, 82, 20, 9, 198, 16, 148, 211, 36, 65, 82, 20,
+			9, 198, 5, 69, 18, 4, 129, 82, 20, 6, 195, 21, 2, 75, 20, 7, 196, 88, 149, 1, 48, 20, 7, 196, 80, 245, 1, 48, 20, 10,
+			3, 95, 52, 15, 83, 57, 36, 114, 0, 12, 3, 95, 49, 55, 89, 6, 118, 72, 14, 50, 0, 0, 14, 139, 1, 18, 2, 9, 20, 18,
+			1, 7, 195, 184, 18, 20, 9, 198, 56, 243, 79, 29, 32, 77, 20, 9, 198, 24, 245, 15, 29, 32, 77, 20, 14, 3, 95, 49, 54, 89,
+			6, 35, 57, 89, 72, 14, 50, 0, 0, 13, 202, 81, 148, 15, 29, 32, 70, 21, 34, 78, 28, 20, 13, 202, 77, 147, 148, 21, 66, 83,
+			21, 34, 78, 28, 20, 13, 202, 77, 68, 149, 45, 69, 82, 21, 34, 78, 28, 20, 13, 202, 72, 243, 65, 57, 66, 83, 21, 34, 78, 28,
+			20, 13, 202, 65, 83, 22, 21, 34, 83, 21, 34, 78, 28, 20, 13, 202, 65, 34, 86, 5, 66, 83, 21, 34, 78, 28, 20, 13, 202, 64,
+			84, 137, 60, 66, 83, 21, 34, 78, 28, 20, 13, 202, 64, 20, 211, 37, 98, 83, 21, 34, 78, 28, 20, 13, 202, 48, 149, 15, 29, 32,
+			70, 21, 34, 78, 28, 20, 13, 202, 48, 16, 137, 4, 194, 83, 21, 34, 78, 28, 20, 13, 202, 44, 19, 148, 60, 226, 83, 21, 34, 78,
+			28, 20, 13, 202, 36, 226, 210, 36, 210, 78, 21, 34, 78, 28, 20, 13, 202, 36, 212, 18, 61, 98, 83, 21, 34, 78, 28, 20, 13, 202,
+			16, 85, 5, 72, 210, 78, 21, 34, 78, 28, 20, 13, 202, 8, 20, 130, 5, 34, 83, 21, 34, 78, 28, 20, 12, 201, 76, 176, 78, 16,
+			147, 129, 88, 148, 203, 20, 12, 201, 76, 49, 78, 60, 116, 129, 24, 148, 203, 20, 12, 201, 72, 84, 18, 60, 116, 129, 24, 148, 203, 20,
+			12, 201, 72, 81, 143, 72, 210, 83, 80, 148, 203, 20, 12, 201, 64, 244, 142, 60, 116, 129, 24, 148, 203, 20, 12, 201, 64, 243, 25, 80,
+			82, 83, 80, 148, 203, 20, 12, 201, 44, 20, 132, 36, 243, 15, 28, 148, 203, 20, 12, 201, 33, 145, 18, 60, 116, 129, 24, 148, 203, 20,
+			14, 139, 11, 22, 195, 166, 18, 21, 12, 1, 14, 3, 5, 20, 0, 10, 199, 52, 146, 210, 61, 50, 207, 64, 20, 12, 201, 16, 85, 5,
+			72, 210, 78, 37, 53, 0, 20, 10, 199, 88, 149, 129, 12, 149, 5, 80, 20, 10, 199, 64, 243, 1, 72, 149, 5, 80, 20, 10, 199, 52,
+			147, 143, 72, 149, 5, 80, 20, 10, 199, 48, 21, 9, 56, 149, 5, 80, 20, 10, 199, 45, 96, 78, 80, 149, 5, 80, 20, 10, 199, 44,
+			243, 137, 12, 149, 5, 80, 20, 10, 199, 44, 20, 1, 12, 149, 5, 80, 20, 10, 199, 36, 65, 78, 80, 149, 5, 80, 20, 10, 199, 25,
+			85, 9, 48, 149, 5, 80, 20, 10, 199, 21, 67, 137, 12, 149, 5, 80, 20, 9, 198, 92, 19, 9, 76, 148, 203, 20, 9, 198, 80, 83,
+			65, 80, 148, 203, 20, 9, 198, 48, 144, 133, 72, 148, 203, 20, 9, 198, 4, 116, 129, 72, 148, 203, 20, 10, 199, 76, 83, 73, 56, 20,
+			137, 20, 20, 10, 199, 76, 19, 129, 80, 244, 137, 20, 20, 9, 198, 16, 241, 205, 5, 66, 75, 20, 15, 3, 95, 55, 88, 107, 110, 55,
+			83, 57, 6, 110, 34, 89, 0, 0, 9, 198, 65, 35, 195, 20, 65, 82, 20, 11, 136, 19, 195, 166, 2, 25, 14, 9, 20, 20, 9, 198,
+			80, 19, 66, 85, 34, 78, 20, 9, 198, 64, 21, 9, 20, 229, 0, 20, 9, 198, 64, 20, 211, 4, 229, 0, 20, 0, 12, 201, 72, 80,
+			201, 65, 35, 195, 37, 65, 84, 20, 16, 205, 9, 84, 133, 5, 82, 210, 5, 66, 83, 21, 34, 78, 28, 20, 15, 204, 65, 54, 75, 60,
+			194, 78, 29, 98, 83, 80, 148, 203, 20, 8, 197, 9, 35, 205, 36, 64, 20, 9, 198, 48, 20, 135, 21, 52, 197, 20, 8, 197, 81, 34,
+			75, 36, 224, 20, 8, 197, 80, 18, 87, 4, 224, 20, 8, 197, 80, 18, 87, 4, 224, 21, 8, 197, 64, 20, 195, 4, 192, 20, 0, 13,
+			202, 77, 81, 199, 21, 53, 9, 88, 149, 5, 80, 20, 13, 202, 65, 35, 196, 84, 181, 9, 88, 149, 5, 80, 20, 13, 202, 44, 243, 132,
+			84, 181, 9, 88, 149, 5, 80, 20, 13, 202, 16, 84, 18, 21, 52, 201, 88, 149, 5, 80, 20, 12, 201, 80, 84, 141, 60, 209, 84, 72,
+			148, 203, 20, 12, 201, 77, 65, 82, 20, 241, 143, 56, 148, 203, 20, 12, 201, 52, 246, 129, 52, 34, 81, 84, 148, 203, 20, 12, 201, 52,
+			240, 193, 52, 34, 81, 84, 148, 203, 20, 13, 202, 20, 180, 193, 52, 147, 129, 80, 244, 137, 20, 20, 0, 10, 199, 36, 211, 85, 56, 243,
+			15, 28, 20, 10, 199, 77, 84, 208, 20, 225, 5, 72, 20, 11, 136, 10, 195, 184, 4, 9, 14, 4, 5, 20, 10, 199, 5, 85, 15, 52,
+			21, 9, 44, 20, 10, 199, 52, 19, 12, 61, 32, 201, 56, 20, 10, 199, 44, 243, 77, 20, 229, 1, 72, 20, 10, 199, 36, 228, 201, 57,
+			80, 78, 80, 20, 0, 9, 198, 64, 85, 9, 80, 147, 206, 20, 9, 198, 5, 81, 9, 80, 147, 206, 20, 11, 200, 76, 82, 214, 20, 229,
+			9, 20, 192, 20, 11, 200, 44, 243, 77, 21, 32, 201, 20, 192, 20, 7, 196, 72, 245, 5, 72, 20, 7, 196, 16, 245, 5, 72, 20, 11,
+			200, 36, 225, 15, 56, 84, 201, 20, 224, 20, 9, 198, 97, 147, 15, 29, 32, 70, 20, 9, 198, 48, 149, 15, 29, 32, 70, 20, 9, 198,
+			44, 83, 73, 29, 32, 70, 20, 7, 196, 60, 181, 1, 56, 21, 7, 196, 56, 245, 1, 72, 20, 7, 196, 12, 149, 1, 72, 20, 9, 198,
+			9, 34, 83, 4, 229, 0, 20, 9, 198, 89, 83, 14, 21, 32, 66, 20, 0, 12, 201, 4, 32, 146, 21, 98, 65, 81, 84, 128, 20, 8,
+			197, 80, 19, 80, 60, 224, 20, 9, 198, 5, 53, 18, 60, 227, 205, 20, 8, 197, 76, 84, 137, 20, 192, 20, 9, 198, 80, 83, 203, 72,
+			21, 9, 20, 8, 197, 80, 243, 147, 36, 192, 20, 8, 197, 89, 83, 11, 4, 224, 21, 8, 197, 88, 84, 147, 4, 192, 20, 0, 0, 10,
+			199, 4, 113, 210, 21, 52, 207, 72, 20, 10, 199, 65, 34, 79, 72, 149, 5, 72, 20, 10, 199, 88, 19, 139, 84, 225, 9, 28, 20, 10,
+			199, 52, 83, 147, 40, 85, 137, 44, 20, 10, 199, 76, 19, 65, 72, 149, 1, 56, 20, 12, 201, 32, 148, 212, 61, 34, 79, 29, 32, 70,
+			20, 10, 199, 76, 19, 65, 72, 149, 1, 56, 21, 10, 199, 36, 211, 73, 29, 32, 78, 80, 20, 10, 199, 12, 83, 5, 9, 32, 78, 80,
+			20, 0, 11, 200, 12, 244, 212, 5, 34, 67, 4, 224, 20, 9, 198, 80, 244, 15, 29, 32, 70, 20, 9, 198, 80, 83, 5, 29, 32, 70,
+			20, 9, 198, 32, 243, 79, 29, 32, 70, 20, 9, 198, 5, 85, 15, 29, 32, 70, 20, 0, 8, 197, 72, 245, 76, 21, 32, 20, 8, 197,
+			36, 210, 84, 21, 32, 20, 8, 197, 25, 34, 84, 21, 32, 20, 12, 137, 13, 5, 4, 9, 195, 166, 22, 1, 12, 20, 0, 13, 202, 88,
+			84, 147, 36, 98, 75, 5, 66, 79, 56, 20, 13, 202, 77, 65, 82, 36, 194, 83, 5, 66, 79, 56, 20, 13, 202, 77, 1, 67, 36, 98,
+			75, 5, 66, 79, 56, 20, 13, 202, 76, 240, 201, 4, 194, 83, 5, 66, 79, 56, 20, 13, 202, 53, 148, 212, 36, 98, 75, 5, 66, 79,
+			56, 20, 13, 202, 36, 229, 5, 73, 35, 199, 5, 66, 79, 56, 20, 13, 202, 29, 32, 84, 36, 98, 75, 5, 66, 79, 56, 20, 9, 198,
+			29, 32, 86, 21, 33, 64, 20, 9, 198, 9, 37, 78, 21, 33, 64, 20, 8, 67, 76, 86, 25, 21, 0, 10, 0, 9, 198, 44, 144, 83,
+			80, 148, 203, 20, 9, 198, 32, 84, 141, 21, 66, 75, 20, 12, 201, 44, 147, 133, 52, 21, 15, 29, 32, 70, 20, 10, 199, 52, 243, 147,
+			81, 32, 78, 76, 20, 0, 12, 201, 20, 224, 197, 24, 19, 15, 29, 32, 77, 20, 11, 200, 81, 34, 65, 56, 117, 76, 21, 32, 20, 11,
+			200, 77, 68, 129, 56, 117, 76, 21, 32, 20, 11, 200, 72, 80, 201, 72, 181, 76, 21, 32, 20, 11, 200, 65, 35, 211, 64, 82, 212, 21,
+			32, 20, 11, 200, 64, 20, 148, 36, 50, 80, 21, 32, 20, 0, 9, 198, 44, 147, 15, 29, 32, 77, 20, 9, 198, 32, 243, 15, 29, 32,
+			77, 20, 12, 201, 77, 68, 149, 45, 69, 82, 21, 33, 64, 20, 12, 201, 76, 181, 76, 65, 69, 82, 21, 33, 64, 20, 8, 197, 17, 32,
+			80, 21, 32, 20, 8, 197, 40, 84, 213, 37, 64, 20, 0, 9, 198, 80, 84, 212, 21, 33, 64, 20, 9, 198, 72, 84, 212, 21, 33, 64,
+			20, 9, 198, 64, 244, 212, 21, 33, 64, 20, 9, 198, 16, 243, 12, 21, 33, 64, 20, 0, 11, 4, 9, 4, 195, 169, 37, 72, 6, 36,
+			0, 9, 198, 56, 243, 65, 16, 148, 203, 20, 9, 198, 17, 147, 129, 52, 148, 203, 20, 9, 198, 4, 194, 193, 48, 148, 203, 20, 0, 11,
+			200, 44, 20, 129, 52, 35, 204, 21, 32, 20, 11, 200, 28, 84, 212, 36, 181, 76, 21, 32, 20, 11, 200, 60, 209, 143, 72, 213, 76, 21,
+			32, 20, 7, 196, 12, 148, 133, 72, 20, 9, 198, 16, 81, 137, 12, 149, 0, 20, 7, 196, 24, 20, 137, 56, 20, 7, 196, 4, 196, 9,
+			56, 20, 9, 198, 4, 225, 15, 73, 32, 78, 20, 9, 198, 44, 19, 9, 24, 21, 0, 20, 7, 196, 4, 197, 1, 56, 21, 0, 8, 197,
+			16, 148, 12, 60, 208, 20, 12, 201, 44, 243, 148, 72, 243, 12, 21, 33, 64, 20, 9, 198, 76, 49, 78, 5, 34, 69, 20, 9, 198, 76,
+			49, 78, 5, 34, 69, 20, 9, 198, 53, 148, 212, 21, 34, 69, 20, 9, 198, 16, 85, 84, 21, 34, 69, 20, 8, 197, 36, 225, 82, 80,
+			144, 20, 8, 197, 45, 34, 84, 36, 176, 20, 9, 198, 72, 85, 129, 56, 50, 5, 20, 0, 9, 198, 45, 83, 20, 85, 33, 76, 20, 9,
+			198, 77, 98, 78, 21, 34, 64, 20, 9, 198, 76, 49, 78, 21, 34, 64, 20, 9, 198, 17, 33, 74, 21, 34, 64, 20, 9, 198, 65, 35,
+			214, 77, 66, 64, 20, 0, 10, 199, 64, 243, 9, 80, 243, 15, 28, 20, 10, 199, 32, 85, 5, 72, 243, 15, 28, 20, 10, 199, 44, 244,
+			146, 61, 50, 79, 56, 20, 10, 199, 20, 180, 208, 4, 225, 5, 72, 20, 10, 199, 16, 145, 134, 84, 225, 5, 72, 20, 10, 199, 17, 34,
+			76, 4, 117, 9, 28, 20, 10, 199, 24, 243, 129, 77, 65, 78, 36, 20, 10, 199, 17, 34, 76, 4, 117, 9, 28, 20, 0, 23, 72, 4,
+			98, 67, 36, 243, 129, 16, 240, 35, 83, 37, 89, 57, 39, 6, 50, 35, 12, 72, 39, 0, 10, 135, 11, 15, 16, 9, 195, 184, 19, 20,
+			10, 135, 4, 21, 2, 9, 195, 184, 19, 20, 9, 134, 8, 21, 13, 195, 184, 18, 20, 7, 196, 24, 85, 5, 72, 20, 11, 200, 4, 225,
+			210, 36, 33, 76, 36, 112, 20, 11, 200, 4, 195, 73, 56, 65, 76, 36, 112, 20, 11, 200, 48, 144, 129, 56, 84, 201, 76, 176, 20, 11,
+			200, 36, 225, 15, 56, 84, 201, 76, 176, 20, 11, 200, 28, 16, 143, 56, 84, 201, 76, 176, 20, 11, 200, 64, 244, 212, 49, 81, 9, 84,
+			208, 20, 9, 198, 64, 20, 129, 44, 149, 0, 20, 9, 198, 16, 243, 5, 72, 149, 0, 20, 7, 196, 17, 84, 201, 56, 20, 11, 200, 72,
+			81, 143, 72, 210, 83, 52, 80, 20, 11, 200, 64, 243, 25, 80, 82, 83, 52, 80, 20, 11, 200, 61, 53, 18, 4, 178, 83, 52, 80, 20,
+			11, 200, 56, 244, 150, 4, 114, 83, 52, 80, 20, 11, 200, 53, 148, 212, 36, 50, 83, 52, 80, 20, 11, 200, 28, 145, 193, 57, 66, 83,
+			52, 80, 20, 11, 200, 28, 84, 141, 4, 226, 83, 52, 80, 20, 11, 200, 4, 225, 204, 36, 50, 83, 52, 80, 20, 11, 200, 4, 176, 68,
+			20, 210, 83, 52, 80, 20, 9, 198, 65, 34, 79, 72, 21, 0, 20, 7, 196, 52, 85, 1, 56, 21, 7, 196, 80, 21, 1, 72, 20, 8,
+			67, 24, 246, 0, 21, 0, 10, 0, 8, 197, 81, 149, 133, 72, 144, 20, 8, 197, 72, 241, 5, 72, 144, 20, 12, 201, 45, 96, 75, 76,
+			19, 22, 21, 34, 64, 20, 8, 197, 44, 241, 197, 72, 144, 20, 8, 197, 40, 17, 197, 72, 144, 20, 8, 197, 8, 17, 197, 72, 144, 20,
+			12, 201, 44, 20, 143, 48, 147, 135, 37, 50, 192, 20, 9, 198, 8, 50, 75, 61, 34, 69, 20, 9, 198, 21, 2, 90, 60, 245, 9, 20,
+			9, 198, 16, 144, 84, 21, 35, 73, 20, 8, 197, 77, 64, 84, 36, 176, 20, 12, 201, 80, 84, 146, 37, 67, 210, 36, 19, 0, 20, 0,
+			12, 137, 15, 6, 6, 9, 3, 9, 195, 184, 19, 20, 9, 198, 48, 83, 137, 56, 148, 212, 20, 9, 198, 33, 83, 79, 72, 148, 212, 20,
+			9, 198, 80, 20, 16, 21, 34, 64, 20, 9, 198, 76, 182, 68, 21, 34, 64, 20, 9, 198, 76, 182, 68, 21, 34, 64, 20, 9, 198, 76,
+			19, 20, 21, 34, 64, 20, 9, 198, 72, 148, 212, 21, 34, 64, 20, 9, 198, 52, 244, 212, 21, 34, 64, 20, 9, 198, 48, 20, 16, 21,
+			34, 64, 20, 9, 198, 40, 20, 16, 21, 34, 64, 20, 9, 198, 33, 148, 212, 21, 34, 64, 20, 9, 198, 24, 81, 20, 21, 34, 64, 20,
+			9, 198, 17, 32, 80, 21, 34, 64, 20, 9, 198, 9, 38, 68, 21, 34, 64, 20, 9, 198, 8, 85, 12, 21, 34, 64, 20, 13, 202, 28,
+			83, 129, 57, 97, 78, 16, 83, 9, 28, 20, 9, 198, 5, 34, 193, 37, 50, 192, 20, 9, 198, 16, 84, 208, 61, 66, 64, 20, 9, 198,
+			64, 20, 203, 88, 147, 0, 20, 13, 138, 6, 195, 166, 14, 15, 13, 5, 14, 1, 12, 20, 9, 198, 24, 81, 5, 72, 19, 0, 20, 0,
+			13, 138, 11, 15, 14, 20, 1, 7, 9, 195, 184, 19, 20, 13, 138, 11, 1, 16, 18, 9, 3, 9, 195, 184, 19, 20, 13, 138, 9, 14,
+			3, 5, 19, 20, 21, 195, 184, 19, 20, 10, 199, 81, 32, 68, 37, 66, 79, 56, 20, 10, 199, 76, 83, 5, 45, 66, 79, 56, 20, 10,
+			199, 44, 243, 12, 5, 66, 79, 56, 20, 10, 199, 29, 32, 68, 5, 66, 79, 56, 20, 10, 199, 44, 243, 142, 20, 181, 5, 72, 20, 10,
+			199, 4, 48, 197, 57, 69, 69, 72, 20, 14, 203, 48, 245, 141, 20, 66, 15, 48, 65, 76, 36, 112, 20, 14, 203, 77, 68, 149, 45, 69,
+			82, 4, 194, 83, 52, 80, 20, 14, 203, 65, 35, 212, 21, 53, 1, 57, 66, 83, 52, 80, 20, 14, 203, 44, 244, 205, 61, 3, 204, 37,
+			66, 83, 52, 80, 20, 14, 203, 44, 244, 144, 61, 32, 84, 37, 98, 83, 52, 80, 20, 14, 203, 36, 225, 21, 77, 68, 137, 4, 194, 83,
+			52, 80, 20, 10, 199, 25, 148, 147, 80, 147, 132, 20, 20, 12, 201, 65, 35, 212, 60, 179, 204, 48, 21, 0, 20, 10, 69, 48, 20, 20,
+			61, 0, 21, 0, 10, 11, 3, 95, 50, 88, 47, 6, 116, 12, 58, 0, 0, 14, 139, 11, 15, 13, 16, 5, 14, 4, 9, 195, 184, 19,
+			20, 9, 134, 4, 21, 19, 195, 184, 18, 20, 9, 198, 44, 20, 213, 37, 53, 0, 20, 11, 200, 48, 145, 197, 52, 17, 197, 72, 144, 20,
+			11, 200, 61, 4, 137, 56, 65, 76, 36, 112, 20, 15, 204, 44, 20, 148, 4, 114, 78, 36, 83, 147, 37, 50, 192, 20, 12, 201, 16, 148,
+			12, 60, 208, 84, 5, 34, 69, 20, 11, 200, 48, 147, 135, 88, 148, 212, 36, 176, 20, 7, 196, 88, 149, 129, 80, 20, 7, 196, 72, 149,
+			129, 48, 20, 0, 12, 201, 45, 96, 78, 80, 85, 5, 61, 34, 64, 20, 12, 201, 44, 19, 77, 21, 32, 84, 21, 34, 64, 20, 12, 201,
+			76, 243, 129, 72, 20, 16, 5, 32, 84, 20, 12, 201, 44, 20, 132, 36, 224, 76, 80, 19, 0, 20, 0, 13, 202, 81, 34, 65, 56, 117,
+			76, 5, 66, 79, 56, 20, 13, 202, 81, 32, 78, 76, 195, 203, 5, 66, 79, 56, 20, 13, 202, 77, 68, 129, 56, 117, 76, 5, 66, 79,
+			56, 20, 13, 202, 44, 243, 148, 20, 212, 12, 5, 66, 79, 56, 20, 13, 202, 36, 229, 18, 61, 52, 5, 45, 66, 79, 56, 20, 13, 202,
+			36, 212, 18, 61, 98, 83, 5, 66, 79, 56, 20, 13, 202, 4, 178, 207, 52, 211, 196, 5, 66, 79, 56, 20, 0, 12, 201, 61, 4, 15,
+			73, 69, 78, 37, 53, 0, 20, 14, 203, 64, 192, 84, 80, 83, 147, 48, 17, 197, 72, 144, 20, 14, 203, 76, 19, 77, 20, 225, 143, 48,
+			65, 76, 36, 112, 20, 10, 199, 8, 144, 140, 36, 241, 137, 48, 20, 10, 199, 60, 36, 197, 73, 96, 78, 76, 20, 0, 9, 198, 80, 19,
+			66, 85, 33, 82, 20, 9, 198, 72, 83, 73, 81, 65, 82, 20, 9, 198, 72, 82, 213, 73, 33, 82, 20, 9, 198, 64, 148, 5, 81, 65,
+			82, 20, 9, 198, 44, 243, 142, 61, 65, 82, 20, 9, 198, 44, 243, 80, 5, 33, 82, 20, 9, 198, 45, 35, 205, 5, 66, 78, 20, 7,
+			196, 56, 245, 1, 80, 20, 7, 196, 8, 21, 1, 80, 20, 9, 198, 77, 80, 139, 85, 64, 78, 21, 7, 196, 52, 85, 1, 48, 20, 7,
+			196, 48, 85, 1, 48, 20, 7, 196, 24, 21, 1, 48, 20, 10, 3, 95, 56, 15, 114, 47, 50, 108, 0, 0, 13, 138, 1, 4, 8, 195,
+			166, 18, 5, 14, 3, 5, 20, 0, 9, 198, 16, 83, 147, 37, 65, 84, 20, 11, 136, 11, 15, 8, 195, 166, 18, 5, 18, 20, 11, 136,
+			1, 4, 8, 195, 166, 18, 5, 18, 20, 9, 198, 80, 19, 10, 21, 33, 84, 20, 14, 139, 18, 5, 14, 195, 166, 19, 19, 1, 14, 3,
+			5, 20, 0, 12, 201, 65, 34, 77, 37, 66, 86, 37, 53, 0, 20, 12, 201, 36, 195, 21, 76, 147, 206, 37, 53, 0, 20, 10, 199, 85,
+			32, 129, 56, 149, 5, 80, 20, 10, 199, 65, 34, 79, 72, 149, 5, 80, 20, 10, 199, 33, 83, 65, 56, 149, 5, 80, 20, 10, 199, 4,
+			181, 9, 88, 149, 5, 80, 20, 12, 201, 45, 96, 75, 76, 19, 22, 21, 33, 82, 20, 12, 201, 9, 35, 206, 44, 244, 203, 61, 1, 82,
+			20, 10, 199, 77, 66, 80, 20, 225, 9, 20, 20, 10, 199, 44, 243, 80, 20, 225, 9, 20, 20, 9, 198, 45, 35, 205, 5, 66, 75, 20,
+			0, 9, 198, 80, 83, 80, 21, 33, 82, 20, 9, 198, 77, 147, 139, 61, 1, 82, 20, 9, 198, 72, 84, 207, 49, 97, 82, 20, 9, 198,
+			36, 226, 214, 37, 33, 82, 20, 7, 196, 29, 86, 65, 56, 20, 11, 200, 44, 243, 150, 21, 33, 197, 57, 48, 20, 9, 198, 76, 147, 85,
+			49, 64, 78, 21, 9, 198, 24, 147, 9, 29, 32, 78, 21, 0, 8, 197, 56, 85, 82, 60, 224, 20, 9, 198, 52, 85, 18, 60, 227, 205,
+			20, 12, 201, 64, 84, 144, 48, 82, 211, 37, 65, 84, 20, 12, 201, 29, 32, 78, 16, 147, 211, 37, 65, 84, 20, 9, 198, 81, 32, 86,
+			21, 53, 9, 20, 8, 197, 32, 84, 143, 36, 224, 20, 8, 197, 17, 82, 212, 36, 192, 20, 8, 197, 12, 242, 84, 4, 192, 20, 0, 13,
+			202, 72, 81, 140, 20, 180, 201, 88, 149, 5, 80, 20, 13, 202, 44, 243, 12, 20, 181, 9, 88, 149, 5, 80, 20, 13, 202, 37, 36, 133,
+			29, 83, 1, 72, 149, 5, 80, 20, 13, 202, 20, 180, 203, 49, 84, 201, 88, 149, 5, 80, 20, 9, 198, 52, 85, 5, 61, 34, 84, 20,
+			11, 70, 24, 148, 133, 92, 19, 12, 21, 0, 10, 0, 10, 199, 60, 67, 206, 80, 243, 15, 28, 20, 10, 199, 60, 49, 65, 56, 243, 15,
+			28, 20, 12, 201, 60, 212, 212, 73, 82, 212, 85, 33, 82, 20, 12, 201, 72, 84, 212, 73, 82, 212, 85, 33, 82, 20, 10, 199, 72, 84,
+			197, 73, 97, 82, 20, 20, 10, 199, 72, 84, 15, 73, 65, 82, 20, 20, 10, 199, 64, 21, 5, 57, 65, 82, 20, 20, 10, 199, 16, 84,
+			197, 73, 65, 82, 20, 20, 10, 199, 5, 69, 5, 77, 65, 82, 20, 20, 0, 12, 137, 1, 14, 195, 166, 19, 20, 5, 19, 9, 20, 9,
+			198, 8, 245, 73, 48, 195, 206, 20, 12, 201, 48, 16, 143, 72, 21, 15, 72, 149, 77, 20, 11, 200, 64, 243, 25, 56, 84, 201, 20, 224,
+			20, 11, 200, 52, 83, 1, 56, 84, 201, 20, 224, 20, 9, 198, 5, 35, 69, 56, 145, 78, 20, 9, 198, 4, 208, 137, 20, 229, 0, 20,
+			9, 198, 81, 32, 70, 36, 176, 66, 20, 9, 68, 77, 21, 65, 92, 21, 0, 10, 12, 3, 95, 63, 63, 89, 116, 65, 71, 39, 55, 0,
+			0, 13, 138, 19, 25, 14, 195, 166, 19, 20, 5, 19, 9, 20, 13, 138, 11, 9, 14, 195, 166, 19, 20, 5, 19, 9, 20, 12, 201, 20,
+			180, 208, 60, 225, 78, 80, 145, 76, 20, 8, 197, 24, 195, 206, 20, 192, 20, 8, 197, 28, 198, 75, 60, 192, 20, 9, 198, 72, 81, 149,
+			28, 149, 77, 20, 9, 198, 36, 225, 9, 12, 149, 77, 20, 9, 198, 16, 83, 9, 72, 149, 77, 20, 8, 197, 72, 84, 20, 36, 192, 20,
+			8, 197, 64, 148, 212, 36, 192, 20, 8, 197, 9, 84, 139, 36, 224, 20, 12, 137, 11, 15, 8, 195, 166, 18, 5, 14, 20, 20, 0, 11,
+			66, 53, 32, 65, 36, 89, 47, 114, 0, 25, 19, 144, 11, 195, 184, 14, 19, 4, 9, 19, 11, 18, 9, 13, 9, 14, 5, 18, 20, 13,
+			202, 76, 83, 22, 8, 82, 1, 28, 83, 9, 28, 20, 9, 198, 64, 21, 9, 20, 228, 192, 20, 9, 198, 5, 81, 9, 20, 228, 192, 20,
+			0, 10, 199, 65, 35, 202, 20, 181, 15, 72, 20, 12, 137, 12, 9, 20, 20, 5, 18, 195, 166, 18, 20, 10, 199, 72, 85, 129, 56, 50,
+			5, 72, 20, 10, 199, 36, 225, 11, 61, 2, 69, 72, 20, 10, 199, 16, 148, 212, 72, 18, 5, 72, 20, 10, 199, 4, 68, 133, 77, 49,
+			82, 20, 20, 10, 199, 24, 244, 142, 84, 101, 9, 28, 20, 10, 199, 81, 32, 77, 64, 243, 9, 56, 20, 10, 199, 72, 84, 213, 49, 64,
+			78, 80, 20, 10, 199, 60, 36, 197, 73, 96, 78, 80, 20, 11, 3, 95, 52, 88, 83, 6, 118, 12, 114, 0, 0, 13, 138, 16, 5, 14,
+			19, 9, 15, 14, 195, 166, 18, 20, 12, 201, 76, 181, 70, 24, 81, 1, 72, 149, 77, 20, 12, 201, 44, 243, 77, 37, 52, 207, 72, 149,
+			77, 20, 0, 14, 139, 6, 21, 14, 11, 20, 9, 15, 14, 195, 166, 18, 20, 8, 197, 76, 177, 76, 21, 64, 20, 8, 197, 72, 245, 76,
+			21, 64, 20, 8, 197, 8, 147, 12, 21, 64, 20, 8, 197, 89, 84, 132, 21, 32, 20, 8, 197, 20, 66, 84, 21, 32, 20, 8, 197, 16,
+			146, 212, 21, 32, 20, 9, 198, 77, 147, 77, 21, 68, 137, 20, 8, 197, 45, 98, 86, 37, 64, 20, 8, 197, 20, 35, 206, 37, 64, 20,
+			6, 195, 60, 208, 78, 20, 8, 197, 72, 80, 197, 57, 64, 20, 8, 197, 65, 34, 86, 5, 64, 20, 8, 197, 45, 32, 66, 5, 64, 20,
+			10, 69, 77, 2, 82, 37, 64, 21, 0, 10, 0, 11, 136, 19, 5, 11, 21, 12, 195, 166, 18, 20, 11, 136, 18, 5, 7, 21, 12, 195,
+			166, 18, 20, 15, 140, 16, 18, 195, 166, 12, 9, 13, 9, 14, 195, 166, 18, 20, 15, 140, 9, 14, 6, 12, 1, 20, 9, 15, 14, 195,
+			166, 18, 20, 15, 140, 5, 22, 15, 12, 21, 20, 9, 15, 14, 195, 166, 18, 20, 10, 135, 6, 195, 184, 12, 5, 18, 9, 20, 9, 198,
+			76, 243, 1, 72, 145, 64, 20, 9, 198, 41, 81, 9, 12, 145, 64, 20, 12, 137, 11, 15, 8, 195, 166, 18, 5, 14, 19, 20, 12, 137,
+			1, 4, 8, 195, 166, 18, 5, 14, 19, 20, 9, 198, 72, 83, 143, 56, 49, 64, 20, 9, 198, 36, 212, 5, 72, 144, 76, 20, 0, 16,
+			141, 18, 5, 22, 15, 12, 21, 20, 9, 15, 14, 195, 166, 18, 20, 12, 137, 11, 15, 14, 19, 21, 12, 195, 166, 18, 20, 12, 137, 7,
+			18, 1, 14, 21, 12, 195, 166, 18, 20, 16, 141, 4, 9, 19, 11, 18, 5, 20, 9, 15, 14, 195, 166, 18, 20, 12, 137, 3, 9, 18,
+			11, 21, 12, 195, 166, 18, 20, 10, 199, 76, 244, 148, 21, 34, 78, 28, 20, 10, 199, 76, 21, 84, 21, 34, 78, 28, 20, 10, 199, 73,
+			83, 132, 21, 34, 78, 28, 20, 10, 199, 60, 181, 76, 21, 34, 78, 28, 20, 10, 199, 44, 243, 148, 21, 34, 78, 28, 20, 10, 199, 44,
+			20, 148, 21, 34, 78, 28, 20, 10, 199, 9, 35, 196, 21, 34, 78, 28, 20, 11, 136, 19, 13, 195, 184, 12, 5, 18, 9, 20, 9, 198,
+			44, 244, 205, 21, 66, 75, 20, 0, 13, 138, 13, 15, 12, 5, 11, 25, 12, 195, 166, 18, 20, 13, 138, 5, 12, 5, 13, 5, 14, 20,
+			195, 166, 18, 20, 11, 200, 89, 83, 7, 5, 34, 84, 21, 64, 20, 11, 200, 80, 242, 211, 36, 50, 84, 21, 64, 20, 11, 200, 77, 80,
+			148, 36, 194, 84, 21, 64, 20, 11, 200, 64, 20, 211, 37, 98, 84, 21, 64, 20, 11, 200, 52, 244, 148, 4, 194, 84, 21, 64, 20, 11,
+			200, 52, 83, 148, 4, 194, 84, 21, 64, 20, 11, 200, 52, 21, 5, 72, 226, 84, 21, 64, 20, 11, 200, 40, 245, 137, 4, 194, 84, 21,
+			64, 20, 11, 200, 36, 225, 5, 52, 226, 84, 21, 64, 20, 11, 200, 28, 83, 137, 4, 194, 84, 21, 64, 20, 11, 200, 4, 229, 9, 45,
+			98, 84, 21, 64, 20, 11, 200, 4, 35, 143, 72, 210, 84, 21, 64, 20, 11, 200, 9, 84, 133, 5, 82, 210, 5, 64, 20, 9, 198, 57,
+			147, 70, 60, 208, 78, 21, 0, 8, 197, 76, 83, 147, 61, 32, 20, 8, 197, 12, 83, 147, 61, 32, 20, 14, 139, 19, 5, 4, 9, 13,
+			5, 14, 20, 195, 166, 18, 20, 8, 197, 4, 213, 76, 21, 64, 20, 8, 197, 44, 244, 9, 77, 64, 20, 8, 197, 21, 99, 204, 21, 32,
+			20, 9, 198, 28, 84, 137, 5, 68, 137, 20, 11, 136, 9, 8, 195, 166, 18, 4, 9, 7, 20, 12, 201, 36, 229, 15, 48, 84, 129, 56,
+			49, 64, 20, 8, 197, 88, 17, 193, 57, 64, 20, 16, 141, 18, 5, 16, 18, 195, 166, 19, 5, 14, 20, 1, 14, 20, 20, 8, 197, 61,
+			5, 1, 57, 64, 20, 0, 10, 66, 52, 48, 65, 35, 49, 6, 0, 41, 15, 140, 16, 1, 18, 12, 1, 13, 5, 14, 20, 195, 166, 18,
+			20, 13, 202, 61, 35, 129, 52, 83, 148, 21, 34, 78, 28, 20, 13, 202, 52, 19, 137, 24, 84, 212, 21, 34, 78, 28, 20, 13, 202, 44,
+			243, 150, 60, 197, 84, 21, 34, 78, 28, 20, 13, 202, 44, 243, 134, 72, 243, 148, 21, 34, 78, 28, 20, 13, 202, 36, 229, 5, 73, 3,
+			204, 21, 34, 78, 28, 20, 13, 202, 36, 225, 11, 88, 20, 148, 21, 34, 78, 28, 20, 13, 202, 16, 242, 213, 52, 83, 148, 21, 34, 78,
+			28, 20, 13, 202, 5, 33, 213, 52, 83, 148, 21, 34, 78, 28, 20, 12, 137, 19, 5, 22, 195, 166, 18, 4, 9, 7, 20, 9, 198, 72,
+			240, 137, 56, 145, 64, 20, 9, 198, 64, 243, 15, 56, 145, 64, 20, 9, 198, 36, 212, 5, 72, 145, 64, 20, 9, 198, 81, 32, 70, 36,
+			176, 76, 20, 9, 198, 76, 194, 84, 4, 113, 64, 20, 0, 16, 141, 11, 15, 13, 16, 12, 5, 13, 5, 14, 20, 195, 166, 18, 20, 10,
+			199, 32, 85, 5, 72, 243, 143, 52, 20, 14, 203, 65, 35, 214, 36, 228, 201, 4, 194, 84, 21, 64, 20, 14, 203, 20, 115, 195, 20, 229,
+			18, 36, 50, 84, 21, 64, 20, 13, 138, 15, 22, 5, 18, 8, 195, 184, 18, 9, 7, 20, 13, 138, 1, 7, 20, 22, 195, 166, 18, 4,
+			9, 7, 20, 10, 199, 72, 81, 133, 72, 83, 131, 20, 20, 10, 199, 16, 147, 9, 28, 83, 131, 20, 20, 10, 199, 16, 82, 193, 16, 83,
+			131, 20, 20, 10, 199, 5, 52, 213, 72, 19, 131, 20, 20, 14, 3, 95, 53, 88, 107, 110, 55, 6, 47, 16, 109, 89, 0, 0, 17, 142,
+			16, 5, 18, 16, 5, 14, 4, 9, 11, 21, 12, 195, 166, 18, 20, 9, 198, 60, 36, 207, 48, 85, 0, 20, 11, 200, 72, 82, 78, 88,
+			84, 212, 21, 32, 20, 11, 200, 44, 243, 147, 60, 194, 68, 21, 32, 20, 11, 200, 44, 241, 75, 76, 148, 212, 21, 32, 20, 11, 200, 20,
+			101, 5, 72, 64, 84, 21, 32, 20, 14, 139, 12, 1, 19, 20, 22, 195, 166, 18, 4, 9, 7, 20, 9, 198, 81, 32, 78, 76, 149, 0,
+			20, 7, 196, 8, 21, 9, 44, 20, 11, 200, 44, 243, 150, 21, 33, 197, 57, 64, 20, 11, 200, 8, 146, 193, 72, 35, 206, 5, 64, 20,
+			9, 198, 88, 19, 5, 72, 144, 78, 21, 0, 15, 140, 195, 184, 14, 19, 11, 22, 195, 166, 18, 4, 9, 7, 20, 15, 140, 12, 195, 166,
+			19, 5, 22, 195, 166, 18, 4, 9, 7, 20, 15, 140, 6, 15, 18, 4, 195, 184, 13, 13, 5, 12, 9, 7, 20, 9, 198, 24, 18, 212,
+			61, 69, 77, 20, 9, 198, 80, 149, 1, 56, 149, 77, 20, 9, 198, 52, 243, 143, 28, 19, 73, 20, 8, 197, 76, 147, 79, 56, 144, 20,
+			0, 9, 198, 48, 149, 21, 72, 114, 64, 20, 9, 198, 81, 34, 86, 36, 83, 0, 20, 12, 137, 15, 16, 14, 195, 165, 5, 12, 9, 7,
+			20, 16, 141, 6, 15, 18, 11, 18, 195, 166, 14, 11, 5, 12, 9, 7, 20, 6, 195, 44, 83, 73, 20, 9, 198, 48, 149, 20, 21, 32,
+			84, 20, 9, 198, 16, 148, 12, 60, 208, 84, 20, 9, 198, 5, 85, 15, 45, 32, 84, 20, 9, 198, 4, 113, 210, 20, 112, 84, 20, 9,
+			198, 56, 85, 84, 72, 19, 0, 20, 0, 17, 142, 6, 15, 18, 19, 11, 18, 195, 166, 11, 11, 5, 12, 9, 7, 20, 10, 199, 77, 98,
+			78, 4, 117, 9, 28, 20, 0, 7, 196, 8, 85, 15, 56, 20, 9, 198, 33, 145, 18, 60, 99, 206, 20, 9, 198, 29, 32, 70, 60, 99,
+			206, 20, 16, 141, 11, 195, 184, 2, 5, 14, 8, 1, 22, 14, 5, 18, 9, 20, 14, 139, 16, 195, 165, 19, 20, 195, 165, 5, 12, 9,
+			7, 20, 14, 139, 15, 22, 5, 18, 6, 12, 195, 184, 4, 9, 7, 20, 14, 139, 6, 15, 18, 19, 20, 195, 165, 5, 12, 9, 7, 20,
+			14, 139, 4, 18, 9, 11, 6, 195, 166, 12, 4, 9, 7, 20, 11, 200, 60, 36, 212, 21, 68, 137, 76, 176, 20, 11, 200, 52, 85, 1,
+			24, 244, 137, 76, 176, 20, 11, 200, 13, 147, 9, 56, 68, 137, 76, 176, 20, 11, 200, 44, 193, 80, 80, 243, 65, 56, 144, 20, 11, 200,
+			76, 128, 77, 4, 226, 83, 52, 80, 20, 11, 200, 64, 83, 142, 4, 194, 83, 52, 80, 20, 11, 200, 44, 242, 193, 36, 226, 83, 52, 80,
+			20, 11, 200, 32, 83, 12, 20, 226, 83, 52, 80, 20, 0, 11, 136, 16, 18, 5, 3, 9, 195, 184, 19, 20, 13, 138, 13, 1, 14, 195,
+			184, 22, 18, 5, 18, 5, 20, 15, 140, 13, 195, 184, 10, 19, 15, 13, 13, 5, 12, 9, 7, 20, 12, 201, 72, 17, 9, 60, 195, 199,
+			37, 50, 192, 20, 12, 201, 45, 35, 206, 60, 195, 199, 37, 50, 192, 20, 12, 201, 32, 148, 16, 60, 195, 199, 37, 50, 192, 20, 12, 201,
+			25, 33, 78, 60, 195, 199, 37, 50, 192, 20, 12, 201, 24, 147, 13, 60, 195, 199, 37, 50, 192, 20, 8, 197, 61, 96, 82, 36, 80, 20,
+			8, 197, 61, 96, 82, 36, 80, 20, 8, 197, 21, 85, 15, 56, 144, 20, 8, 197, 5, 53, 5, 56, 144, 20, 8, 197, 73, 84, 212, 36,
+			176, 20, 12, 201, 65, 35, 198, 21, 52, 207, 72, 19, 0, 20, 12, 201, 44, 243, 138, 20, 181, 21, 72, 19, 0, 20, 10, 69, 77, 21,
+			65, 72, 80, 21, 0, 10, 0, 10, 135, 8, 195, 166, 18, 5, 19, 9, 20, 9, 198, 81, 34, 76, 60, 114, 64, 20, 9, 198, 25, 83,
+			135, 36, 50, 68, 20, 9, 198, 72, 84, 213, 49, 64, 84, 20, 0, 6, 195, 32, 35, 192, 17, 10, 199, 16, 85, 15, 56, 21, 15, 72,
+			20, 10, 199, 8, 80, 82, 8, 82, 132, 20, 67, 10, 199, 72, 85, 129, 48, 145, 5, 72, 20, 10, 199, 72, 85, 15, 84, 50, 5, 72,
+			20, 10, 199, 4, 36, 212, 72, 18, 5, 72, 20, 14, 203, 20, 208, 78, 12, 148, 1, 80, 244, 137, 76, 176, 20, 10, 199, 24, 83, 129,
+			12, 85, 9, 56, 20, 14, 203, 88, 81, 197, 80, 20, 137, 4, 226, 83, 52, 80, 20, 14, 203, 37, 36, 129, 80, 147, 206, 4, 194, 83,
+			52, 80, 20, 10, 199, 9, 83, 7, 5, 34, 69, 56, 20, 12, 201, 65, 35, 198, 21, 52, 207, 72, 21, 0, 20, 11, 3, 95, 54, 88,
+			47, 16, 6, 109, 89, 0, 0, 11, 200, 77, 84, 16, 61, 37, 5, 72, 80, 20, 12, 137, 16, 18, 195, 166, 19, 20, 5, 18, 5, 20,
+			11, 200, 8, 147, 199, 72, 17, 133, 72, 80, 20, 11, 200, 77, 64, 84, 84, 20, 137, 76, 176, 20, 11, 200, 49, 83, 132, 20, 228, 201,
+			76, 176, 20, 11, 200, 45, 83, 9, 56, 20, 137, 76, 176, 20, 11, 200, 29, 148, 129, 80, 244, 137, 76, 176, 20, 11, 200, 28, 84, 137,
+			5, 68, 137, 76, 176, 20, 11, 200, 64, 192, 78, 21, 64, 82, 36, 80, 20, 11, 200, 16, 83, 6, 36, 224, 82, 36, 80, 20, 11, 200,
+			77, 148, 212, 20, 208, 84, 36, 176, 20, 11, 200, 57, 83, 73, 76, 208, 84, 36, 176, 20, 11, 200, 20, 208, 140, 20, 208, 84, 36, 176,
+			20, 11, 200, 16, 148, 12, 60, 208, 84, 36, 176, 20, 0, 10, 135, 2, 1, 14, 11, 195, 184, 18, 20, 14, 4, 95, 50, 88, 15, 47,
+			6, 116, 84, 13, 50, 13, 0, 0, 10, 135, 11, 195, 166, 12, 5, 18, 9, 20, 9, 198, 20, 180, 212, 72, 83, 64, 20, 15, 204, 56,
+			21, 18, 37, 83, 75, 5, 32, 143, 56, 21, 0, 20, 9, 198, 25, 85, 20, 21, 32, 76, 20, 0, 12, 137, 11, 18, 15, 14, 9, 11,
+			195, 184, 18, 20, 9, 198, 80, 82, 206, 60, 195, 199, 20, 9, 198, 56, 85, 82, 60, 195, 199, 20, 9, 198, 56, 82, 210, 60, 195, 199,
+			20, 12, 201, 85, 66, 76, 37, 64, 82, 37, 53, 0, 20, 12, 201, 20, 181, 137, 48, 144, 146, 37, 53, 0, 20, 14, 203, 8, 144, 140,
+			36, 245, 5, 44, 20, 137, 76, 176, 20, 14, 203, 36, 228, 212, 73, 83, 69, 57, 64, 82, 36, 80, 20, 10, 199, 52, 20, 135, 84, 84,
+			137, 80, 20, 10, 199, 25, 32, 78, 44, 241, 137, 48, 20, 9, 198, 48, 149, 21, 72, 114, 75, 20, 0, 9, 198, 56, 18, 86, 37, 53,
+			0, 20, 9, 198, 72, 84, 213, 49, 65, 82, 20, 9, 198, 72, 84, 208, 37, 33, 82, 20, 9, 198, 64, 84, 141, 85, 65, 82, 20, 9,
+			198, 64, 20, 211, 37, 97, 82, 20, 9, 198, 60, 36, 212, 37, 1, 82, 20, 9, 198, 16, 147, 73, 81, 65, 82, 20, 7, 196, 12, 149,
+			1, 80, 20, 13, 70, 52, 243, 147, 36, 85, 82, 21, 102, 114, 0, 10, 0, 9, 198, 80, 83, 5, 29, 32, 77, 20, 13, 138, 11, 195,
+			166, 18, 5, 19, 20, 5, 18, 9, 20, 9, 198, 24, 243, 137, 5, 68, 137, 20, 0, 21, 66, 36, 192, 37, 55, 15, 72, 6, 40, 12,
+			76, 57, 13, 0, 81, 100, 117, 99, 101, 32, 13, 202, 44, 243, 148, 72, 245, 133, 73, 50, 69, 48, 20, 9, 198, 8, 243, 66, 21, 33,
+			84, 20, 0, 10, 199, 88, 148, 137, 48, 149, 5, 80, 20, 10, 199, 88, 19, 9, 16, 149, 5, 80, 20, 10, 199, 80, 243, 129, 48, 149,
+			5, 80, 20, 10, 199, 52, 244, 129, 48, 149, 5, 80, 20, 10, 199, 48, 16, 137, 48, 149, 5, 80, 20, 10, 199, 44, 19, 1, 52, 149,
+			5, 80, 20, 10, 199, 8, 19, 129, 48, 149, 5, 80, 20, 10, 199, 64, 245, 5, 57, 66, 69, 48, 20, 12, 201, 4, 229, 9, 12, 128,
+			77, 9, 33, 82, 20, 0, 22, 68, 32, 20, 16, 100, 107, 110, 48, 37, 15, 6, 112, 40, 114, 0, 81, 104, 111, 117, 114, 32, 9, 198,
+			8, 82, 203, 5, 50, 78, 67, 9, 198, 4, 100, 133, 4, 113, 82, 20, 9, 198, 36, 211, 73, 29, 33, 82, 20, 9, 198, 5, 69, 18,
+			5, 1, 82, 20, 9, 198, 4, 113, 210, 20, 113, 82, 20, 9, 198, 52, 242, 203, 5, 50, 78, 20, 9, 198, 8, 82, 203, 5, 50, 78,
+			20, 7, 196, 25, 148, 201, 44, 20, 7, 196, 8, 150, 129, 72, 20, 0, 12, 201, 77, 1, 67, 36, 98, 67, 37, 65, 84, 20, 12, 201,
+			64, 84, 137, 60, 66, 67, 37, 65, 84, 20, 12, 201, 77, 1, 75, 81, 35, 199, 72, 19, 64, 20, 14, 139, 16, 195, 165, 15, 11, 20,
+			18, 15, 10, 5, 18, 20, 9, 198, 64, 243, 15, 56, 149, 77, 20, 8, 197, 80, 18, 212, 36, 192, 20, 14, 139, 7, 18, 5, 14, 195,
+			165, 5, 14, 19, 5, 18, 20, 12, 201, 44, 243, 134, 20, 65, 82, 21, 33, 84, 20, 12, 201, 16, 148, 211, 20, 210, 78, 21, 33, 84,
+			20, 12, 201, 16, 85, 5, 72, 210, 78, 21, 33, 84, 20, 0, 13, 202, 88, 82, 147, 80, 16, 137, 48, 149, 5, 80, 20, 13, 202, 84,
+			226, 86, 21, 36, 193, 48, 149, 5, 80, 20, 13, 202, 37, 36, 137, 80, 16, 137, 48, 149, 5, 80, 20, 13, 202, 20, 211, 212, 36, 243,
+			129, 48, 149, 5, 80, 20, 12, 201, 44, 243, 148, 72, 18, 5, 72, 147, 135, 20, 9, 198, 56, 245, 1, 72, 145, 76, 20, 9, 198, 16,
+			84, 21, 80, 84, 128, 20, 9, 198, 4, 212, 21, 80, 84, 128, 20, 15, 140, 7, 18, 5, 14, 195, 165, 7, 5, 14, 19, 5, 18, 20,
+			9, 198, 72, 80, 71, 20, 228, 192, 20, 0, 19, 5, 4, 10, 39, 5, 14, 72, 37, 12, 6, 72, 57, 36, 12, 57, 108, 50, 0, 10,
+			199, 61, 85, 133, 73, 69, 82, 20, 20, 10, 199, 44, 243, 134, 37, 69, 82, 20, 20, 10, 199, 24, 147, 9, 65, 2, 78, 20, 20, 10,
+			199, 16, 241, 5, 44, 17, 143, 56, 20, 10, 199, 65, 35, 214, 37, 50, 79, 56, 20, 10, 199, 44, 243, 148, 85, 50, 79, 56, 20, 10,
+			199, 16, 147, 73, 77, 50, 79, 56, 20, 10, 199, 16, 83, 73, 77, 50, 79, 56, 20, 10, 199, 64, 192, 75, 5, 65, 82, 20, 20, 10,
+			199, 45, 85, 133, 73, 65, 82, 20, 20, 10, 199, 16, 242, 212, 61, 33, 82, 20, 20, 10, 199, 16, 80, 129, 81, 65, 82, 20, 20, 10,
+			199, 5, 4, 15, 73, 65, 82, 20, 20, 10, 135, 195, 166, 20, 1, 14, 15, 12, 20, 12, 201, 5, 3, 208, 48, 82, 212, 36, 177, 82,
+			20, 10, 199, 44, 193, 77, 20, 229, 9, 56, 20, 0, 14, 204, 44, 20, 129, 45, 65, 82, 37, 53, 9, 44, 243, 128, 11, 200, 80, 83,
+			5, 88, 148, 201, 60, 224, 20, 11, 200, 77, 80, 195, 21, 52, 201, 60, 224, 20, 11, 200, 20, 180, 203, 49, 84, 201, 60, 224, 20, 11,
+			200, 16, 148, 203, 85, 52, 201, 60, 224, 20, 11, 200, 16, 145, 210, 21, 52, 201, 60, 224, 20, 11, 200, 16, 81, 210, 21, 52, 201, 60,
+			224, 20, 11, 200, 36, 225, 21, 77, 68, 137, 20, 192, 20, 11, 200, 72, 83, 1, 80, 147, 206, 20, 192, 20, 11, 200, 64, 83, 137, 12,
+			147, 12, 36, 224, 20, 7, 196, 80, 86, 1, 56, 20, 11, 200, 65, 4, 137, 56, 50, 80, 4, 192, 20, 0, 10, 135, 20, 5, 18, 14,
+			195, 166, 18, 20, 16, 205, 44, 243, 77, 20, 228, 213, 72, 16, 137, 48, 149, 5, 80, 20, 12, 201, 20, 180, 201, 77, 65, 78, 80, 145,
+			76, 20, 12, 201, 16, 145, 134, 21, 33, 78, 80, 145, 76, 20, 9, 198, 52, 241, 21, 48, 84, 133, 20, 8, 197, 77, 80, 148, 36, 192,
+			20, 8, 197, 4, 97, 200, 4, 224, 20, 8, 197, 52, 83, 148, 4, 192, 20, 10, 69, 5, 84, 212, 36, 224, 21, 0, 10, 0, 11, 136,
+			11, 15, 14, 20, 18, 195, 166, 18, 20, 9, 198, 5, 37, 5, 72, 145, 76, 20, 15, 140, 16, 18, 195, 166, 4, 5, 19, 20, 9, 14,
+			5, 18, 20, 0, 10, 199, 48, 16, 143, 72, 21, 15, 72, 20, 10, 199, 16, 81, 140, 20, 181, 15, 72, 20, 12, 137, 12, 5, 7, 9,
+			15, 14, 195, 166, 18, 20, 12, 137, 12, 1, 20, 18, 9, 14, 195, 166, 18, 20, 12, 137, 1, 11, 20, 9, 15, 14, 195, 166, 18, 20,
+			21, 71, 48, 147, 79, 85, 50, 78, 20, 55, 37, 65, 113, 89, 6, 37, 12, 50, 13, 0, 20, 10, 199, 88, 144, 146, 5, 66, 79, 56,
+			20, 10, 199, 52, 145, 210, 5, 66, 79, 56, 20, 10, 199, 44, 241, 206, 37, 66, 79, 56, 20, 10, 199, 44, 20, 142, 5, 66, 79, 56,
+			20, 14, 203, 44, 243, 147, 80, 149, 21, 80, 147, 206, 20, 192, 20, 10, 199, 77, 80, 148, 72, 18, 5, 72, 20, 10, 199, 64, 245, 5,
+			57, 49, 82, 20, 20, 10, 199, 64, 20, 212, 36, 50, 5, 72, 20, 10, 199, 4, 32, 146, 21, 98, 69, 72, 20, 13, 138, 195, 184, 11,
+			15, 14, 15, 13, 9, 19, 11, 20, 10, 199, 88, 144, 212, 61, 34, 65, 56, 20, 10, 199, 5, 52, 201, 77, 65, 78, 80, 20, 11, 3,
+			95, 56, 88, 83, 6, 37, 34, 89, 0, 0, 11, 200, 4, 113, 210, 21, 52, 201, 60, 224, 20, 11, 200, 64, 244, 201, 80, 147, 206, 20,
+			192, 20, 0, 10, 135, 21, 22, 21, 12, 195, 166, 18, 20, 10, 135, 5, 12, 9, 20, 195, 166, 18, 20, 9, 198, 8, 147, 205, 21, 68,
+			137, 20, 8, 197, 77, 83, 142, 37, 64, 20, 8, 197, 28, 19, 1, 57, 64, 20, 0, 13, 202, 64, 244, 21, 48, 20, 137, 76, 21, 15,
+			72, 20, 11, 136, 19, 1, 14, 9, 20, 195, 166, 18, 20, 13, 202, 72, 83, 79, 57, 53, 18, 5, 66, 79, 56, 20, 13, 202, 44, 243,
+			131, 20, 229, 18, 5, 66, 79, 56, 20, 13, 202, 16, 83, 79, 57, 53, 18, 5, 66, 79, 56, 20, 16, 141, 7, 25, 14, 195, 166, 11,
+			15, 12, 15, 7, 9, 19, 11, 20, 9, 198, 36, 226, 149, 72, 145, 64, 20, 9, 198, 8, 85, 15, 56, 145, 64, 20, 9, 198, 5, 37,
+			5, 72, 145, 64, 20, 9, 198, 72, 81, 149, 28, 145, 64, 20, 9, 198, 36, 225, 9, 12, 145, 64, 20, 9, 198, 16, 83, 9, 72, 145,
+			64, 20, 9, 198, 44, 240, 75, 76, 144, 76, 20, 9, 198, 16, 147, 21, 88, 144, 76, 20, 9, 198, 64, 20, 211, 4, 113, 64, 20, 0,
+			12, 137, 1, 12, 22, 5, 15, 12, 195, 166, 18, 20, 10, 199, 88, 144, 146, 21, 34, 78, 28, 20, 10, 199, 76, 84, 150, 21, 34, 78,
+			28, 20, 10, 199, 45, 35, 203, 21, 34, 78, 28, 20, 10, 199, 44, 20, 211, 21, 34, 78, 28, 20, 10, 199, 28, 192, 83, 21, 34, 78,
+			28, 20, 10, 199, 16, 244, 211, 21, 34, 78, 28, 20, 11, 136, 11, 195, 166, 22, 12, 5, 18, 9, 20, 10, 199, 44, 21, 1, 45, 33,
+			83, 20, 20, 12, 201, 16, 145, 134, 21, 33, 78, 80, 144, 66, 20, 0, 13, 138, 20, 15, 20, 1, 12, 9, 20, 195, 166, 18, 20, 11,
+			200, 76, 240, 201, 4, 194, 84, 21, 64, 20, 11, 200, 64, 84, 134, 36, 66, 84, 21, 64, 20, 11, 200, 56, 244, 141, 4, 194, 84, 21,
+			64, 20, 11, 200, 52, 244, 130, 36, 66, 84, 21, 64, 20, 11, 200, 48, 146, 214, 36, 66, 84, 21, 64, 20, 11, 200, 29, 32, 86, 36,
+			66, 84, 21, 64, 20, 11, 200, 25, 34, 71, 36, 66, 84, 21, 64, 20, 11, 200, 24, 244, 141, 4, 194, 84, 21, 64, 20, 11, 200, 24,
+			84, 148, 36, 194, 84, 21, 64, 20, 11, 200, 17, 82, 212, 36, 194, 84, 21, 64, 20, 11, 200, 9, 37, 84, 4, 194, 84, 21, 64, 20,
+			11, 200, 4, 181, 21, 4, 194, 84, 21, 64, 20, 11, 200, 4, 36, 213, 72, 66, 84, 21, 64, 20, 11, 200, 65, 35, 199, 72, 81, 9,
+			21, 32, 20, 12, 201, 64, 192, 78, 28, 83, 205, 21, 68, 137, 20, 12, 137, 4, 10, 195, 166, 22, 12, 5, 18, 9, 20, 14, 139, 195,
+			166, 20, 9, 15, 12, 15, 7, 9, 19, 11, 20, 18, 143, 6, 195, 166, 14, 15, 13, 5, 14, 15, 12, 15, 7, 9, 19, 11, 20, 9,
+			198, 8, 19, 4, 4, 178, 78, 20, 9, 198, 72, 245, 1, 72, 144, 78, 20, 9, 198, 44, 244, 147, 36, 176, 78, 20, 13, 72, 52, 19,
+			129, 28, 83, 69, 57, 64, 21, 0, 10, 11, 70, 32, 243, 204, 36, 112, 78, 21, 0, 10, 0, 14, 139, 16, 18, 15, 16, 18, 9, 5,
+			20, 195, 166, 18, 20, 14, 139, 11, 15, 13, 13, 21, 14, 9, 20, 195, 166, 18, 20, 8, 197, 72, 17, 9, 21, 32, 20, 8, 197, 24,
+			243, 9, 21, 32, 20, 12, 201, 76, 181, 70, 24, 81, 1, 72, 145, 64, 20, 12, 201, 44, 243, 77, 37, 52, 207, 72, 145, 64, 20, 8,
+			197, 24, 84, 146, 37, 64, 20, 12, 201, 52, 84, 193, 48, 194, 65, 56, 49, 64, 20, 8, 197, 44, 241, 206, 5, 64, 20, 8, 197, 53,
+			85, 1, 57, 64, 20, 6, 195, 52, 81, 0, 76, 0, 13, 202, 88, 84, 147, 36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 72, 82, 212,
+			36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 64, 20, 129, 24, 98, 78, 21, 34, 78, 28, 20, 13, 202, 52, 244, 148, 36, 98, 67, 21,
+			34, 78, 28, 20, 13, 202, 45, 96, 76, 36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 44, 243, 131, 20, 229, 18, 21, 34, 78, 28, 20,
+			13, 202, 25, 32, 75, 80, 147, 206, 21, 34, 78, 28, 20, 13, 202, 12, 84, 148, 36, 98, 67, 21, 34, 78, 28, 20, 10, 135, 22, 195,
+			166, 22, 5, 18, 9, 20, 10, 135, 20, 195, 184, 10, 5, 18, 9, 20, 9, 198, 52, 21, 5, 72, 145, 64, 20, 9, 198, 52, 18, 15,
+			56, 145, 64, 20, 9, 198, 8, 81, 207, 56, 145, 64, 20, 9, 198, 80, 149, 1, 56, 145, 64, 20, 9, 198, 44, 20, 18, 36, 49, 64,
+			20, 9, 198, 24, 18, 129, 56, 49, 64, 20, 9, 198, 44, 243, 15, 56, 144, 76, 20, 9, 198, 45, 84, 148, 4, 113, 64, 20, 0, 14,
+			203, 52, 243, 149, 52, 83, 148, 4, 194, 84, 21, 64, 20, 14, 203, 36, 225, 9, 88, 145, 21, 4, 194, 84, 21, 64, 20, 13, 138, 16,
+			195, 165, 22, 9, 19, 5, 12, 9, 7, 20, 13, 138, 1, 14, 19, 20, 195, 166, 14, 4, 9, 7, 20, 13, 138, 1, 6, 12, 195, 165,
+			19, 5, 12, 9, 7, 20, 12, 201, 29, 37, 78, 17, 69, 137, 28, 144, 78, 20, 10, 199, 48, 85, 133, 72, 19, 131, 20, 20, 10, 199,
+			5, 36, 143, 28, 19, 131, 20, 20, 8, 67, 8, 246, 64, 21, 0, 10, 14, 3, 95, 57, 88, 107, 110, 55, 83, 6, 109, 65, 89, 0,
+			0, 9, 198, 33, 145, 18, 60, 99, 210, 20, 9, 198, 80, 244, 133, 4, 67, 210, 20, 11, 200, 65, 35, 203, 85, 32, 84, 61, 32, 20,
+			7, 196, 32, 245, 133, 72, 20, 16, 141, 11, 22, 195, 166, 18, 21, 12, 1, 14, 20, 5, 18, 9, 20, 14, 139, 9, 14, 4, 19, 20,
+			195, 166, 14, 4, 9, 7, 20, 11, 200, 77, 84, 16, 48, 146, 193, 57, 64, 20, 7, 196, 16, 85, 20, 20, 76, 0, 9, 198, 44, 243,
+			77, 84, 227, 205, 20, 15, 140, 13, 9, 19, 20, 195, 166, 14, 11, 5, 12, 9, 7, 20, 12, 201, 48, 16, 143, 72, 21, 15, 72, 145,
+			64, 20, 12, 201, 4, 208, 149, 48, 21, 15, 72, 145, 64, 20, 9, 198, 5, 85, 15, 56, 243, 73, 20, 8, 197, 80, 18, 212, 36, 176,
+			20, 8, 197, 52, 244, 134, 20, 208, 20, 12, 201, 36, 228, 208, 20, 181, 18, 36, 49, 64, 20, 0, 9, 198, 104, 243, 204, 60, 114, 64,
+			20, 17, 206, 20, 180, 212, 21, 36, 137, 80, 244, 137, 4, 194, 84, 21, 64, 20, 9, 198, 52, 21, 5, 72, 145, 76, 20, 14, 139, 20,
+			9, 12, 19, 11, 195, 166, 18, 5, 18, 9, 20, 14, 139, 15, 22, 5, 18, 12, 195, 184, 2, 5, 18, 9, 20, 9, 198, 9, 32, 75,
+			80, 80, 84, 20, 0, 10, 199, 25, 32, 78, 44, 241, 143, 56, 20, 10, 199, 80, 83, 5, 52, 85, 18, 36, 20, 10, 199, 76, 241, 137,
+			77, 65, 82, 36, 20, 10, 199, 72, 85, 8, 5, 97, 82, 36, 20, 10, 199, 64, 81, 1, 57, 65, 82, 36, 20, 10, 199, 36, 225, 129,
+			57, 65, 82, 36, 20, 13, 138, 12, 5, 13, 6, 195, 166, 12, 4, 9, 7, 20, 13, 138, 1, 6, 12, 195, 166, 19, 5, 12, 9, 7,
+			20, 10, 199, 80, 83, 5, 52, 21, 9, 44, 20, 10, 199, 64, 225, 85, 52, 21, 9, 44, 20, 10, 199, 29, 32, 77, 52, 21, 9, 44,
+			20, 10, 199, 20, 225, 82, 28, 85, 9, 44, 20, 10, 199, 4, 34, 200, 5, 50, 69, 56, 20, 10, 199, 24, 20, 200, 36, 243, 129, 8,
+			20, 0, 11, 200, 80, 84, 146, 5, 52, 197, 72, 80, 20, 14, 139, 16, 195, 165, 22, 9, 18, 11, 5, 12, 9, 7, 20, 14, 139, 6,
+			15, 18, 4, 195, 184, 10, 5, 12, 9, 7, 20, 11, 200, 64, 84, 137, 24, 84, 137, 76, 176, 20, 11, 200, 64, 83, 135, 20, 116, 137,
+			76, 176, 20, 11, 200, 4, 193, 65, 80, 244, 137, 76, 176, 20, 11, 200, 80, 84, 146, 37, 67, 210, 36, 80, 20, 11, 200, 60, 97, 133,
+			73, 67, 210, 36, 80, 20, 12, 201, 4, 208, 149, 48, 21, 15, 72, 149, 77, 20, 0, 12, 201, 44, 147, 133, 76, 147, 204, 60, 114, 64,
+			20, 12, 201, 80, 84, 146, 37, 67, 210, 36, 83, 0, 20, 8, 197, 64, 244, 197, 72, 80, 20, 8, 197, 4, 181, 5, 72, 80, 20, 9,
+			198, 64, 148, 212, 4, 50, 69, 20, 9, 198, 5, 84, 208, 36, 50, 69, 20, 8, 197, 36, 66, 79, 80, 144, 20, 8, 197, 52, 20, 212,
+			36, 176, 20, 8, 197, 8, 84, 212, 36, 176, 20, 12, 201, 44, 243, 77, 37, 52, 193, 72, 144, 84, 20, 0, 9, 198, 41, 81, 9, 12,
+			145, 76, 20, 10, 135, 12, 195, 166, 4, 5, 18, 5, 20, 16, 141, 19, 5, 12, 22, 6, 195, 184, 12, 7, 5, 12, 9, 7, 20, 9,
+			198, 64, 84, 212, 36, 50, 68, 20, 9, 198, 21, 84, 153, 80, 210, 64, 20, 9, 198, 25, 32, 75, 80, 147, 0, 20, 9, 198, 8, 84,
+			212, 40, 19, 0, 20, 13, 3, 95, 63, 65, 71, 39, 40, 89, 47, 35, 58, 0, 0, 16, 5, 3, 4, 39, 5, 14, 89, 36, 12, 72,
+			36, 12, 108, 50, 0, 10, 199, 61, 33, 9, 56, 21, 15, 72, 20, 10, 199, 72, 84, 1, 81, 34, 69, 72, 20, 11, 136, 13, 195, 184,
+			2, 12, 5, 18, 5, 20, 10, 199, 44, 243, 148, 72, 18, 5, 72, 20, 10, 199, 16, 83, 149, 57, 66, 69, 72, 20, 10, 199, 72, 245,
+			9, 77, 49, 82, 36, 20, 10, 199, 4, 193, 143, 57, 49, 82, 36, 20, 17, 142, 12, 5, 20, 16, 195, 165, 22, 9, 18, 11, 5, 12,
+			9, 7, 20, 14, 203, 61, 33, 193, 56, 148, 193, 80, 244, 137, 76, 176, 20, 14, 203, 44, 243, 134, 37, 50, 193, 80, 244, 137, 76, 176,
+			20, 12, 201, 64, 20, 211, 36, 243, 133, 72, 85, 0, 20, 0, 7, 196, 12, 84, 149, 80, 20, 9, 198, 104, 147, 206, 37, 53, 0, 20,
+			11, 200, 77, 64, 84, 84, 84, 137, 56, 112, 20, 11, 200, 76, 180, 129, 88, 84, 137, 56, 112, 20, 11, 200, 72, 81, 21, 12, 84, 137,
+			56, 112, 20, 11, 200, 64, 20, 129, 24, 84, 137, 56, 112, 20, 11, 200, 44, 19, 143, 56, 84, 137, 56, 112, 20, 11, 200, 36, 225, 137,
+			12, 84, 137, 56, 112, 20, 11, 200, 36, 115, 143, 72, 84, 137, 56, 112, 20, 11, 200, 28, 83, 133, 72, 84, 137, 56, 112, 20, 11, 200,
+			20, 228, 201, 48, 84, 137, 56, 112, 20, 11, 200, 17, 81, 76, 48, 84, 137, 56, 112, 20, 11, 200, 16, 84, 137, 88, 84, 137, 56, 112,
+			20, 11, 200, 4, 35, 206, 56, 84, 137, 56, 112, 20, 11, 200, 76, 177, 76, 21, 69, 5, 72, 80, 20, 11, 200, 72, 245, 76, 21, 69,
+			5, 72, 80, 20, 11, 200, 65, 35, 202, 20, 181, 5, 72, 80, 20, 11, 200, 8, 147, 12, 21, 69, 5, 72, 80, 20, 11, 200, 80, 17,
+			19, 40, 146, 201, 76, 176, 20, 11, 200, 40, 21, 129, 56, 84, 201, 76, 176, 20, 11, 200, 4, 195, 5, 28, 244, 137, 76, 176, 20, 11,
+			200, 9, 32, 86, 85, 32, 82, 36, 80, 20, 7, 196, 12, 149, 137, 48, 20, 11, 200, 16, 144, 71, 56, 244, 212, 36, 176, 20, 9, 198,
+			4, 192, 129, 56, 145, 78, 20, 0, 12, 201, 81, 32, 68, 37, 66, 79, 56, 83, 0, 20, 9, 198, 28, 83, 205, 21, 68, 137, 20, 0,
+			20, 3, 13, 195, 165, 65, 6, 113, 12, 15, 107, 110, 12, 0, 81, 104, 97, 118, 101, 32, 14, 70, 48, 145, 197, 76, 243, 64, 55, 37,
+			89, 114, 65, 0, 17, 70, 77, 98, 78, 28, 243, 64, 89, 84, 36, 68, 6, 114, 65, 0, 20, 9, 198, 5, 85, 15, 56, 243, 64, 20,
+			9, 198, 4, 224, 71, 72, 19, 64, 20, 10, 135, 8, 195, 166, 12, 5, 18, 9, 20, 13, 202, 24, 244, 134, 5, 69, 5, 72, 147, 132,
+			20, 20, 9, 198, 48, 82, 211, 36, 176, 76, 20, 6, 131, 13, 195, 165, 76, 0, 17, 5, 2, 8, 39, 5, 18, 71, 4, 36, 12, 107,
+			6, 113, 12, 114, 0, 15, 5, 3, 4, 39, 5, 18, 89, 36, 12, 72, 36, 12, 114, 0, 12, 201, 72, 85, 137, 76, 147, 206, 37, 53,
+			0, 20, 14, 203, 84, 66, 207, 56, 181, 82, 72, 84, 137, 56, 112, 20, 14, 203, 81, 32, 85, 52, 21, 9, 76, 84, 137, 56, 112, 20,
+			14, 203, 80, 84, 141, 60, 116, 129, 24, 84, 137, 56, 112, 20, 14, 203, 77, 1, 67, 36, 19, 9, 76, 84, 137, 56, 112, 20, 10, 199,
+			61, 134, 68, 21, 34, 78, 28, 20, 10, 199, 61, 130, 68, 21, 34, 78, 28, 20, 14, 203, 56, 243, 73, 56, 19, 9, 76, 84, 137, 56,
+			112, 20, 14, 203, 56, 85, 84, 72, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 56, 21, 21, 72, 19, 9, 76, 84, 137, 56, 112, 20,
+			10, 199, 52, 21, 20, 21, 34, 78, 28, 20, 14, 203, 48, 144, 133, 72, 19, 9, 76, 84, 137, 56, 112, 20, 10, 199, 45, 34, 68, 21,
+			34, 78, 28, 20, 14, 203, 44, 20, 9, 80, 19, 9, 76, 84, 137, 56, 112, 20, 10, 199, 41, 84, 212, 21, 34, 78, 28, 20, 10, 199,
+			37, 51, 204, 21, 34, 78, 28, 20, 10, 199, 16, 243, 12, 21, 34, 78, 28, 20, 14, 203, 16, 147, 69, 57, 50, 79, 56, 84, 137, 56,
+			112, 20, 14, 203, 16, 21, 1, 52, 21, 9, 76, 84, 137, 56, 112, 20, 14, 203, 4, 48, 197, 77, 50, 79, 56, 84, 137, 56, 112, 20,
+			15, 140, 16, 15, 18, 20, 18, 195, 166, 20, 20, 5, 18, 5, 20, 12, 201, 12, 83, 148, 72, 19, 1, 76, 145, 78, 20, 10, 199, 16,
+			145, 134, 21, 33, 78, 76, 20, 10, 199, 64, 84, 147, 21, 34, 193, 80, 20, 10, 199, 29, 147, 78, 5, 50, 65, 48, 20, 0, 9, 198,
+			17, 32, 71, 37, 53, 0, 20, 9, 198, 81, 32, 70, 36, 177, 82, 20, 9, 198, 77, 81, 134, 36, 113, 82, 20, 9, 198, 72, 84, 12,
+			36, 49, 82, 20, 9, 198, 72, 83, 143, 56, 49, 82, 20, 9, 198, 44, 243, 147, 84, 209, 82, 20, 9, 198, 36, 226, 149, 72, 145, 82,
+			20, 9, 198, 16, 84, 12, 4, 49, 82, 20, 12, 137, 19, 11, 195, 166, 20, 20, 5, 18, 9, 20, 12, 201, 16, 83, 147, 37, 67, 205,
+			21, 68, 137, 20, 9, 198, 56, 145, 197, 72, 144, 78, 20, 9, 198, 4, 225, 204, 60, 208, 78, 21, 0, 0, 9, 198, 21, 2, 71, 72,
+			19, 64, 20, 13, 202, 16, 148, 212, 72, 144, 149, 21, 34, 78, 28, 20, 11, 70, 92, 84, 212, 21, 35, 128, 21, 0, 10, 0, 9, 198,
+			32, 148, 212, 60, 195, 199, 20, 12, 201, 45, 33, 65, 80, 147, 206, 37, 53, 0, 20, 12, 201, 72, 17, 9, 60, 66, 82, 36, 113, 82,
+			20, 12, 201, 65, 35, 199, 56, 244, 212, 36, 49, 82, 20, 11, 136, 19, 13, 195, 184, 18, 5, 18, 9, 20, 10, 199, 72, 84, 208, 60,
+			228, 213, 52, 20, 10, 199, 29, 32, 80, 80, 243, 9, 80, 20, 10, 199, 65, 35, 202, 20, 181, 9, 48, 20, 12, 137, 11, 195, 184, 7,
+			5, 14, 19, 5, 18, 20, 10, 199, 64, 245, 5, 57, 66, 65, 48, 20, 0, 9, 198, 5, 36, 129, 56, 113, 82, 20, 16, 141, 195, 166,
+			18, 5, 19, 11, 195, 166, 14, 4, 5, 18, 9, 20, 18, 143, 16, 1, 12, 195, 166, 15, 14, 20, 15, 12, 15, 7, 9, 19, 11, 20,
+			13, 138, 8, 195, 166, 18, 5, 20, 9, 11, 5, 18, 20, 9, 198, 20, 193, 71, 36, 177, 82, 20, 18, 70, 52, 20, 143, 12, 18, 78,
+			65, 112, 34, 39, 6, 49, 109, 68, 0, 20, 11, 200, 44, 242, 78, 12, 145, 5, 57, 48, 20, 9, 198, 21, 35, 212, 60, 208, 78, 21,
+			11, 4, 95, 8, 15, 11, 107, 6, 40, 49, 0, 0, 19, 144, 1, 14, 195, 166, 19, 20, 5, 19, 9, 15, 12, 15, 7, 9, 19, 11,
+			20, 12, 137, 16, 18, 195, 166, 4, 9, 11, 1, 20, 20, 9, 198, 45, 34, 84, 37, 48, 66, 20, 0, 12, 137, 1, 18, 11, 195, 166,
+			15, 12, 15, 7, 20, 14, 139, 15, 18, 4, 11, 12, 195, 184, 22, 5, 18, 9, 20, 11, 136, 6, 195, 184, 14, 9, 11, 5, 18, 20,
+			13, 202, 44, 243, 15, 72, 21, 21, 72, 20, 137, 20, 20, 8, 197, 76, 20, 132, 36, 224, 20, 8, 197, 16, 147, 216, 36, 224, 20, 8,
+			197, 40, 244, 132, 4, 224, 20, 8, 197, 8, 192, 68, 4, 224, 21, 8, 197, 37, 36, 133, 4, 192, 20, 0, 9, 198, 16, 80, 201, 76,
+			244, 128, 20, 9, 198, 88, 81, 197, 80, 84, 128, 20, 9, 198, 88, 19, 21, 80, 84, 128, 20, 9, 198, 76, 19, 21, 80, 84, 128, 20,
+			9, 198, 72, 85, 137, 16, 84, 128, 20, 9, 198, 72, 84, 201, 16, 84, 128, 20, 9, 198, 72, 82, 217, 48, 84, 128, 20, 9, 198, 72,
+			81, 193, 48, 84, 128, 20, 9, 198, 72, 80, 201, 80, 84, 128, 20, 9, 198, 64, 242, 213, 48, 84, 128, 20, 9, 198, 61, 1, 1, 80,
+			84, 128, 20, 9, 198, 52, 81, 9, 80, 84, 128, 20, 9, 198, 48, 144, 201, 80, 84, 128, 20, 9, 198, 44, 194, 67, 32, 84, 128, 20,
+			9, 198, 16, 84, 9, 48, 84, 128, 20, 9, 198, 16, 80, 201, 16, 84, 128, 20, 9, 198, 12, 148, 197, 48, 84, 128, 20, 12, 201, 5,
+			85, 5, 57, 66, 70, 36, 49, 82, 20, 12, 201, 65, 35, 199, 56, 244, 212, 36, 177, 82, 20, 9, 198, 53, 144, 78, 52, 20, 128, 20,
+			9, 198, 16, 148, 212, 4, 229, 0, 20, 9, 198, 8, 20, 212, 4, 229, 0, 20, 9, 198, 80, 243, 5, 72, 16, 128, 20, 14, 70, 33,
+			99, 210, 24, 244, 128, 84, 114, 83, 6, 114, 0, 0, 10, 199, 52, 147, 137, 5, 69, 82, 20, 20, 10, 199, 52, 147, 137, 5, 69, 82,
+			20, 20, 16, 6, 11, 195, 184, 18, 15, 13, 49, 118, 51, 6, 114, 65, 0, 20, 10, 199, 16, 145, 134, 85, 50, 79, 56, 20, 9, 198,
+			57, 80, 78, 12, 84, 133, 20, 10, 199, 36, 228, 212, 4, 195, 5, 72, 20, 9, 198, 29, 83, 77, 36, 84, 133, 20, 10, 199, 16, 84,
+			212, 36, 195, 5, 72, 20, 9, 198, 16, 144, 75, 72, 243, 137, 20, 17, 142, 16, 1, 12, 195, 166, 19, 20, 9, 14, 5, 14, 19, 5,
+			18, 20, 17, 142, 14, 25, 11, 195, 184, 2, 9, 14, 7, 5, 14, 19, 5, 18, 20, 17, 142, 8, 10, 195, 184, 18, 18, 9, 14, 7,
+			5, 14, 19, 5, 18, 20, 10, 135, 195, 184, 4, 9, 16, 1, 12, 20, 15, 4, 95, 15, 7, 15, 6, 115, 81, 115, 50, 4, 109, 49,
+			0, 0, 18, 143, 18, 21, 4, 11, 195, 184, 2, 9, 14, 7, 5, 14, 19, 5, 18, 20, 0, 8, 197, 64, 84, 147, 60, 224, 20, 12,
+			201, 52, 243, 143, 25, 67, 206, 28, 84, 128, 20, 12, 201, 52, 146, 210, 61, 50, 207, 64, 84, 128, 20, 8, 197, 17, 83, 208, 60, 192,
+			20, 8, 197, 25, 34, 71, 36, 64, 20, 8, 197, 64, 192, 84, 36, 224, 20, 8, 197, 44, 19, 204, 36, 224, 20, 19, 144, 19, 195, 184,
+			14, 4, 5, 18, 2, 15, 18, 7, 5, 14, 19, 5, 18, 20, 19, 144, 19, 1, 11, 19, 11, 195, 184, 2, 9, 14, 7, 5, 14, 19,
+			5, 18, 20, 19, 144, 18, 9, 14, 7, 11, 195, 184, 2, 9, 14, 7, 5, 14, 19, 5, 18, 20, 12, 201, 32, 240, 146, 60, 113, 78,
+			76, 84, 128, 20, 8, 197, 64, 192, 84, 36, 224, 20, 8, 197, 44, 20, 211, 4, 32, 20, 0, 9, 198, 81, 37, 78, 44, 84, 128, 20,
+			9, 198, 81, 32, 75, 80, 84, 128, 20, 13, 202, 77, 80, 147, 80, 19, 148, 37, 97, 82, 20, 20, 9, 198, 64, 149, 143, 80, 84, 128,
+			20, 13, 202, 64, 84, 147, 64, 82, 212, 37, 97, 82, 20, 20, 9, 198, 44, 20, 212, 72, 84, 128, 20, 9, 198, 24, 147, 20, 72, 84,
+			128, 20, 9, 198, 21, 50, 193, 64, 84, 128, 20, 9, 198, 12, 130, 70, 72, 84, 128, 20, 9, 198, 4, 178, 207, 48, 84, 128, 20, 12,
+			137, 10, 21, 2, 9, 12, 195, 166, 21, 13, 20, 18, 143, 14, 195, 184, 18, 18, 5, 19, 21, 14, 4, 2, 25, 14, 9, 20, 20, 11,
+			136, 7, 18, 195, 165, 19, 20, 5, 14, 20, 9, 198, 77, 65, 76, 48, 20, 128, 20, 9, 198, 28, 195, 211, 76, 20, 128, 20, 9, 198,
+			72, 84, 1, 72, 16, 128, 20, 9, 198, 56, 21, 137, 28, 16, 128, 20, 0, 10, 199, 77, 69, 75, 44, 21, 21, 72, 20, 9, 198, 29,
+			32, 70, 60, 227, 205, 20, 10, 199, 72, 85, 5, 57, 66, 79, 56, 20, 10, 199, 60, 181, 76, 5, 66, 79, 56, 20, 10, 199, 24, 244,
+			141, 5, 66, 79, 56, 20, 10, 199, 16, 85, 5, 57, 66, 79, 56, 20, 10, 199, 16, 81, 140, 5, 66, 79, 56, 20, 9, 198, 56, 20,
+			193, 48, 84, 133, 20, 10, 199, 4, 224, 76, 101, 49, 82, 20, 20, 10, 199, 8, 147, 198, 101, 50, 83, 44, 20, 10, 199, 29, 35, 211,
+			29, 32, 73, 56, 20, 10, 199, 4, 193, 65, 80, 244, 137, 44, 20, 21, 146, 19, 20, 21, 2, 2, 5, 11, 195, 184, 2, 9, 14, 7,
+			5, 14, 19, 5, 18, 20, 10, 199, 44, 243, 208, 21, 32, 78, 80, 20, 0, 9, 198, 80, 18, 211, 5, 67, 210, 20, 11, 200, 20, 180,
+			203, 85, 36, 201, 60, 224, 20, 15, 204, 65, 34, 86, 5, 65, 137, 56, 19, 147, 36, 84, 128, 20, 11, 200, 72, 129, 85, 52, 21, 15,
+			36, 64, 20, 11, 200, 81, 80, 133, 72, 181, 76, 36, 224, 20, 11, 200, 88, 83, 133, 105, 81, 76, 4, 224, 20, 11, 200, 44, 20, 193,
+			44, 132, 212, 4, 224, 21, 7, 196, 36, 208, 71, 20, 20, 9, 68, 36, 208, 71, 20, 21, 0, 10, 0, 8, 197, 5, 162, 77, 85, 64,
+			20, 12, 201, 44, 243, 147, 64, 148, 129, 80, 244, 128, 20, 12, 201, 44, 243, 77, 20, 229, 1, 80, 244, 128, 20, 12, 201, 4, 48, 197,
+			48, 84, 129, 80, 244, 128, 20, 12, 201, 77, 65, 82, 20, 245, 25, 64, 84, 128, 20, 12, 201, 36, 225, 5, 45, 49, 82, 12, 84, 128,
+			20, 12, 201, 4, 67, 73, 56, 148, 212, 72, 84, 128, 20, 0, 15, 140, 16, 18, 15, 20, 15, 11, 15, 12, 12, 195, 166, 18, 20, 9,
+			198, 56, 82, 210, 61, 49, 64, 20, 9, 198, 36, 225, 15, 48, 241, 192, 20, 13, 202, 36, 229, 5, 73, 3, 204, 5, 66, 79, 56, 20,
+			9, 198, 4, 68, 133, 77, 49, 64, 20, 9, 198, 44, 19, 15, 72, 145, 64, 20, 9, 198, 28, 83, 199, 72, 17, 128, 20, 0, 10, 199,
+			56, 244, 141, 21, 34, 78, 28, 20, 10, 199, 4, 226, 77, 21, 34, 78, 28, 20, 0, 9, 198, 72, 243, 139, 20, 67, 210, 20, 15, 204,
+			20, 180, 208, 21, 34, 77, 20, 229, 1, 80, 244, 128, 20, 9, 198, 4, 226, 77, 5, 67, 210, 20, 11, 200, 44, 243, 132, 61, 69, 9,
+			21, 32, 20, 15, 204, 44, 19, 21, 56, 64, 143, 72, 113, 78, 76, 84, 128, 20, 0, 11, 136, 11, 195, 166, 20, 20, 5, 18, 9, 20,
+			11, 136, 8, 195, 166, 18, 4, 5, 18, 9, 20, 12, 201, 48, 82, 211, 36, 179, 199, 72, 17, 128, 20, 8, 197, 77, 6, 71, 5, 64,
+			20, 0, 9, 198, 48, 18, 212, 61, 49, 64, 20, 9, 198, 12, 148, 146, 61, 49, 64, 20, 13, 202, 16, 148, 211, 20, 229, 9, 21, 34,
+			78, 28, 20, 12, 137, 19, 13, 195, 165, 20, 20, 5, 18, 9, 20, 9, 198, 8, 147, 199, 72, 17, 128, 20, 9, 198, 60, 48, 201, 16,
+			83, 148, 20, 9, 198, 24, 192, 71, 72, 19, 148, 20, 0, 18, 207, 8, 83, 133, 16, 146, 212, 36, 225, 82, 44, 195, 211, 80, 84, 128,
+			68, 9, 198, 76, 192, 71, 80, 84, 137, 20, 13, 138, 6, 15, 18, 18, 195, 166, 4, 5, 18, 9, 20, 10, 199, 72, 84, 211, 61, 84,
+			131, 20, 20, 10, 199, 36, 115, 143, 72, 19, 131, 20, 20, 0, 11, 200, 77, 66, 77, 84, 192, 84, 61, 32, 20, 11, 200, 4, 224, 76,
+			101, 48, 84, 61, 32, 20, 11, 200, 16, 148, 211, 20, 229, 9, 21, 32, 20, 10, 135, 18, 195, 184, 22, 5, 18, 9, 20, 6, 195, 28,
+			83, 137, 20, 9, 198, 44, 20, 9, 80, 19, 0, 20, 0, 12, 201, 84, 225, 196, 60, 211, 69, 48, 145, 192, 20, 8, 197, 20, 198, 83,
+			36, 80, 20, 8, 197, 8, 82, 214, 20, 208, 20, 12, 201, 77, 1, 75, 81, 35, 199, 72, 17, 128, 20, 8, 197, 44, 20, 129, 16, 80,
+			20, 0, 11, 136, 20, 1, 20, 15, 22, 195, 184, 18, 20, 9, 198, 72, 20, 137, 80, 85, 0, 20, 18, 70, 8, 148, 203, 84, 149, 0,
+			71, 37, 89, 49, 84, 6, 37, 47, 0, 20, 9, 198, 88, 146, 193, 72, 144, 84, 20, 9, 198, 77, 84, 146, 60, 112, 84, 20, 0, 9,
+			198, 36, 225, 15, 48, 241, 201, 20, 9, 198, 52, 146, 210, 61, 67, 205, 20, 10, 199, 36, 226, 193, 52, 147, 133, 72, 20, 10, 199, 36,
+			195, 21, 52, 147, 133, 72, 20, 10, 199, 65, 54, 75, 36, 21, 18, 36, 20, 10, 199, 64, 20, 9, 77, 65, 82, 36, 20, 10, 199, 61,
+			5, 15, 52, 85, 18, 36, 20, 10, 199, 17, 148, 197, 57, 65, 82, 36, 20, 9, 198, 36, 212, 5, 72, 149, 77, 20, 28, 67, 48, 149,
+			0, 55, 37, 72, 108, 48, 110, 34, 6, 112, 72, 0, 20, 82, 100, 101, 32, 112, 97, 114, 97, 100, 101, 32, 0, 11, 200, 44, 243, 134,
+			20, 181, 21, 72, 80, 20, 12, 201, 80, 18, 201, 77, 67, 211, 44, 244, 0, 20, 12, 201, 20, 193, 75, 81, 35, 211, 44, 244, 0, 20,
+			11, 200, 52, 147, 133, 72, 19, 15, 28, 144, 20, 11, 200, 45, 33, 77, 48, 243, 15, 28, 144, 20, 11, 200, 84, 67, 5, 88, 84, 137,
+			56, 112, 20, 11, 200, 81, 32, 83, 76, 84, 137, 56, 112, 20, 11, 200, 80, 20, 137, 24, 84, 137, 56, 112, 20, 11, 200, 77, 84, 16,
+			48, 84, 137, 56, 112, 20, 11, 200, 64, 19, 143, 72, 84, 137, 56, 112, 20, 11, 200, 53, 83, 11, 80, 84, 137, 56, 112, 20, 12, 137,
+			12, 195, 166, 4, 5, 18, 9, 14, 7, 20, 11, 200, 29, 32, 68, 84, 84, 137, 56, 112, 20, 11, 200, 25, 35, 212, 80, 84, 137, 56,
+			112, 20, 11, 200, 21, 96, 76, 84, 84, 137, 56, 112, 20, 11, 200, 17, 33, 83, 76, 84, 137, 56, 112, 20, 11, 200, 16, 83, 79, 48,
+			84, 137, 56, 112, 20, 11, 200, 16, 81, 137, 56, 84, 137, 56, 112, 20, 11, 200, 5, 34, 201, 88, 84, 137, 56, 112, 20, 11, 200, 24,
+			19, 148, 5, 50, 82, 36, 112, 20, 9, 198, 4, 84, 143, 76, 243, 0, 20, 11, 200, 64, 84, 137, 60, 66, 75, 84, 208, 20, 11, 200,
+			21, 2, 67, 20, 229, 18, 84, 208, 20, 6, 195, 52, 19, 137, 20, 9, 198, 44, 241, 9, 12, 147, 0, 20, 9, 198, 12, 19, 69, 72,
+			245, 78, 20, 11, 200, 44, 243, 134, 21, 33, 78, 12, 80, 20, 9, 198, 25, 35, 206, 80, 19, 0, 20, 9, 198, 16, 80, 201, 52, 19,
+			0, 20, 0, 12, 201, 32, 85, 5, 72, 241, 15, 45, 50, 64, 20, 12, 201, 44, 243, 134, 36, 65, 78, 80, 145, 76, 20, 8, 197, 52,
+			82, 133, 72, 144, 20, 8, 197, 4, 225, 5, 72, 144, 20, 15, 204, 65, 54, 75, 61, 0, 84, 60, 195, 199, 37, 50, 192, 20, 12, 201,
+			65, 54, 75, 61, 0, 84, 37, 50, 192, 20, 10, 199, 65, 54, 75, 61, 0, 84, 36, 20, 8, 197, 73, 149, 13, 36, 176, 20, 9, 198,
+			65, 54, 75, 61, 0, 84, 20, 8, 197, 5, 34, 193, 16, 80, 20, 0, 10, 135, 16, 1, 19, 20, 195, 184, 19, 20, 11, 136, 19, 1,
+			2, 15, 20, 195, 184, 18, 20, 9, 198, 17, 148, 198, 5, 50, 64, 20, 9, 198, 76, 147, 9, 44, 21, 0, 20, 9, 198, 64, 192, 71,
+			36, 21, 0, 20, 9, 198, 44, 20, 197, 52, 21, 0, 20, 8, 66, 61, 48, 114, 89, 0, 76, 11, 4, 14, 195, 165, 18, 50, 114, 34,
+			0, 8, 0, 10, 199, 4, 69, 143, 44, 21, 21, 72, 20, 12, 137, 18, 5, 4, 1, 11, 20, 195, 184, 18, 20, 12, 137, 16, 18, 15,
+			3, 5, 4, 195, 184, 18, 20, 14, 203, 8, 84, 212, 36, 19, 9, 76, 84, 137, 56, 112, 69, 10, 199, 76, 149, 21, 5, 66, 79, 56,
+			20, 10, 199, 72, 81, 1, 45, 66, 79, 56, 20, 10, 199, 72, 17, 9, 5, 66, 79, 56, 20, 10, 199, 36, 226, 133, 45, 66, 79, 56,
+			20, 10, 199, 36, 225, 133, 45, 66, 79, 56, 20, 14, 203, 81, 34, 86, 36, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 77, 66, 71,
+			52, 21, 9, 76, 84, 137, 56, 112, 20, 14, 203, 76, 176, 78, 16, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 76, 82, 211, 84, 19,
+			9, 76, 84, 137, 56, 112, 20, 14, 203, 72, 17, 9, 44, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 53, 84, 201, 44, 19, 9, 76,
+			84, 137, 56, 112, 20, 14, 203, 40, 245, 82, 56, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 36, 211, 79, 8, 147, 9, 76, 84, 137,
+			56, 112, 20, 14, 203, 32, 243, 79, 48, 241, 201, 76, 84, 137, 56, 112, 20, 14, 203, 28, 83, 133, 72, 19, 9, 76, 84, 137, 56, 112,
+			20, 14, 203, 16, 83, 79, 72, 19, 9, 76, 84, 137, 56, 112, 20, 14, 203, 8, 84, 212, 36, 19, 9, 76, 84, 137, 56, 112, 20, 12,
+			201, 36, 229, 5, 57, 66, 79, 56, 83, 0, 20, 9, 198, 76, 243, 1, 72, 149, 77, 20, 9, 198, 41, 81, 9, 12, 149, 77, 20, 9,
+			198, 52, 85, 15, 57, 147, 73, 20, 9, 198, 64, 225, 85, 52, 243, 137, 20, 10, 199, 72, 149, 129, 48, 147, 132, 20, 20, 10, 67, 52,
+			147, 128, 65, 37, 50, 0, 72, 0, 7, 196, 32, 84, 149, 80, 20, 11, 200, 64, 243, 9, 80, 243, 15, 28, 144, 20, 11, 200, 21, 50,
+			193, 80, 243, 15, 28, 144, 20, 11, 200, 20, 208, 146, 100, 243, 15, 28, 144, 20, 11, 200, 65, 35, 212, 21, 53, 5, 72, 80, 20, 9,
+			198, 45, 34, 84, 37, 49, 82, 20, 9, 198, 44, 244, 146, 36, 113, 82, 20, 9, 198, 36, 212, 12, 36, 49, 82, 20, 9, 198, 32, 84,
+			143, 37, 49, 82, 20, 9, 198, 16, 148, 211, 20, 177, 82, 20, 11, 200, 80, 84, 212, 36, 211, 206, 36, 80, 20, 11, 200, 16, 145, 134,
+			21, 33, 78, 12, 80, 20, 17, 4, 95, 48, 77, 52, 71, 37, 55, 37, 57, 6, 39, 12, 50, 108, 0, 0, 14, 139, 13, 1, 14, 21,
+			4, 21, 11, 20, 195, 184, 18, 20, 12, 201, 64, 84, 150, 21, 36, 201, 80, 85, 0, 20, 9, 198, 88, 148, 197, 72, 147, 135, 20, 9,
+			198, 72, 20, 197, 72, 147, 135, 20, 9, 198, 65, 84, 133, 72, 147, 135, 20, 17, 142, 16, 15, 18, 20, 18, 195, 166, 20, 20, 5, 18,
+			9, 14, 7, 20, 9, 198, 64, 243, 5, 72, 147, 135, 20, 13, 138, 13, 195, 184, 2, 12, 5, 18, 9, 14, 7, 20, 9, 198, 48, 20,
+			197, 72, 147, 135, 20, 9, 198, 28, 83, 5, 72, 147, 135, 20, 9, 198, 8, 20, 197, 72, 147, 135, 20, 12, 137, 16, 18, 195, 166, 19,
+			5, 14, 9, 12, 20, 0, 15, 140, 4, 5, 19, 9, 14, 6, 5, 11, 20, 195, 184, 18, 20, 9, 198, 64, 21, 75, 37, 53, 0, 20,
+			9, 198, 16, 144, 75, 72, 243, 128, 20, 9, 198, 76, 82, 212, 36, 243, 128, 20, 9, 198, 72, 82, 212, 36, 243, 128, 20, 9, 198, 64,
+			244, 148, 36, 243, 128, 20, 9, 198, 48, 82, 212, 36, 243, 128, 20, 13, 202, 44, 243, 134, 36, 117, 82, 5, 66, 79, 56, 20, 13, 202,
+			44, 243, 134, 20, 65, 82, 5, 66, 79, 56, 20, 13, 202, 36, 225, 9, 88, 145, 21, 5, 66, 79, 56, 20, 9, 198, 24, 146, 212, 36,
+			243, 128, 20, 9, 198, 24, 18, 212, 36, 243, 128, 20, 9, 198, 20, 66, 84, 36, 243, 128, 20, 9, 198, 16, 146, 212, 36, 243, 128, 20,
+			13, 202, 4, 195, 9, 81, 65, 82, 5, 66, 79, 56, 20, 13, 202, 4, 113, 204, 85, 66, 78, 5, 66, 79, 56, 20, 9, 198, 52, 83,
+			1, 56, 147, 128, 20, 9, 198, 52, 22, 129, 72, 147, 128, 20, 17, 70, 12, 128, 71, 72, 147, 128, 91, 35, 81, 34, 6, 109, 68, 0,
+			20, 9, 198, 52, 86, 9, 12, 19, 128, 20, 9, 198, 44, 19, 148, 36, 19, 128, 20, 9, 198, 32, 18, 84, 36, 19, 128, 20, 9, 198,
+			29, 82, 78, 20, 19, 128, 20, 9, 198, 8, 245, 19, 92, 19, 128, 20, 17, 4, 95, 48, 77, 50, 65, 37, 55, 37, 57, 6, 39, 12,
+			50, 114, 0, 0, 18, 5, 4, 10, 39, 5, 18, 72, 37, 12, 6, 72, 57, 36, 12, 57, 114, 0, 16, 141, 16, 18, 195, 166, 19, 5,
+			14, 20, 1, 20, 9, 15, 14, 20, 10, 199, 56, 149, 18, 21, 34, 78, 28, 20, 10, 199, 44, 19, 11, 21, 34, 78, 28, 20, 10, 199,
+			32, 19, 22, 21, 34, 78, 28, 20, 10, 199, 29, 32, 86, 21, 34, 78, 28, 20, 10, 199, 28, 195, 211, 21, 34, 78, 28, 20, 10, 199,
+			60, 97, 137, 12, 147, 133, 48, 20, 12, 137, 16, 18, 195, 166, 12, 21, 4, 5, 18, 20, 12, 201, 45, 38, 80, 80, 241, 210, 4, 97,
+			82, 20, 10, 199, 64, 84, 134, 20, 181, 21, 52, 20, 10, 199, 64, 243, 25, 28, 243, 129, 48, 20, 10, 199, 61, 37, 15, 28, 243, 129,
+			48, 20, 10, 199, 72, 83, 21, 45, 64, 78, 76, 20, 17, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 6, 112, 12, 72, 108, 0, 0,
+			7, 196, 44, 20, 21, 80, 20, 12, 201, 85, 32, 129, 56, 148, 197, 72, 147, 135, 20, 12, 201, 84, 64, 129, 77, 83, 133, 72, 147, 135,
+			20, 12, 201, 81, 148, 9, 24, 144, 197, 72, 147, 135, 20, 12, 201, 80, 149, 143, 48, 148, 197, 72, 147, 135, 20, 12, 201, 80, 83, 65,
+			80, 148, 197, 72, 147, 135, 20, 12, 201, 80, 83, 5, 24, 243, 133, 72, 147, 135, 20, 12, 201, 76, 128, 77, 64, 243, 133, 72, 147, 135,
+			20, 12, 201, 76, 21, 9, 72, 148, 197, 72, 147, 135, 20, 12, 201, 72, 243, 65, 56, 148, 197, 72, 147, 135, 20, 12, 201, 72, 149, 129,
+			48, 148, 197, 72, 147, 135, 20, 12, 201, 72, 84, 212, 5, 84, 133, 72, 147, 135, 20, 12, 201, 72, 83, 80, 48, 16, 197, 72, 147, 135,
+			20, 12, 201, 72, 81, 84, 4, 35, 5, 72, 147, 135, 20, 12, 201, 72, 81, 18, 21, 52, 197, 72, 147, 135, 20, 12, 201, 72, 21, 9,
+			24, 144, 197, 72, 147, 135, 20, 12, 201, 64, 243, 65, 16, 148, 197, 72, 147, 135, 20, 12, 201, 64, 243, 5, 52, 148, 197, 72, 147, 135,
+			20, 12, 201, 64, 83, 147, 36, 243, 133, 72, 147, 135, 20, 12, 201, 64, 20, 129, 49, 148, 197, 72, 147, 135, 20, 12, 201, 61, 33, 193,
+			56, 148, 197, 72, 147, 135, 20, 12, 201, 53, 83, 73, 24, 144, 197, 72, 147, 135, 20, 12, 201, 52, 245, 15, 72, 148, 197, 72, 147, 135,
+			20, 12, 201, 52, 244, 129, 48, 148, 197, 72, 147, 135, 20, 12, 201, 52, 240, 137, 48, 148, 197, 72, 147, 135, 20, 12, 201, 52, 18, 143,
+			72, 148, 197, 72, 147, 135, 20, 12, 201, 52, 17, 193, 76, 147, 133, 72, 147, 135, 20, 12, 201, 44, 21, 5, 44, 148, 197, 72, 147, 135,
+			20, 12, 201, 44, 19, 143, 56, 148, 197, 72, 147, 135, 20, 12, 201, 44, 19, 129, 48, 148, 197, 72, 147, 135, 20, 12, 201, 36, 228, 212,
+			4, 195, 5, 72, 147, 135, 20, 12, 201, 36, 225, 16, 48, 16, 197, 72, 147, 135, 20, 12, 201, 36, 225, 11, 5, 52, 197, 72, 147, 135,
+			20, 12, 201, 36, 211, 85, 56, 148, 197, 72, 147, 135, 20, 12, 201, 33, 83, 65, 56, 148, 197, 72, 147, 135, 20, 12, 201, 24, 83, 73,
+			56, 148, 197, 72, 147, 135, 20, 12, 201, 24, 21, 143, 72, 148, 197, 72, 147, 135, 20, 12, 201, 24, 19, 129, 80, 148, 197, 72, 147, 135,
+			20, 12, 201, 20, 208, 78, 12, 148, 5, 72, 147, 135, 20, 12, 201, 16, 84, 212, 36, 195, 5, 72, 147, 135, 20, 12, 201, 16, 83, 129,
+			81, 84, 133, 72, 147, 135, 20, 12, 201, 8, 19, 129, 48, 148, 197, 72, 147, 135, 20, 12, 201, 4, 181, 9, 88, 148, 197, 72, 147, 135,
+			20, 9, 198, 88, 146, 193, 72, 145, 82, 20, 9, 198, 76, 81, 210, 20, 113, 82, 20, 9, 198, 72, 83, 1, 45, 49, 82, 20, 9, 198,
+			56, 81, 204, 36, 113, 82, 20, 9, 198, 44, 244, 146, 84, 113, 82, 20, 9, 198, 8, 243, 9, 88, 144, 78, 20, 11, 67, 52, 147, 133,
+			65, 6, 37, 50, 13, 0, 0, 9, 198, 28, 83, 133, 4, 195, 199, 20, 12, 201, 88, 149, 137, 76, 82, 212, 36, 243, 128, 20, 12, 201,
+			77, 80, 148, 72, 18, 212, 36, 243, 128, 20, 12, 201, 72, 84, 212, 72, 146, 212, 36, 243, 128, 20, 18, 143, 18, 5, 16, 18, 195, 166,
+			19, 5, 14, 20, 1, 20, 9, 15, 14, 20, 12, 201, 72, 82, 214, 37, 50, 84, 36, 243, 128, 20, 12, 201, 65, 83, 139, 80, 18, 212,
+			36, 243, 128, 20, 12, 201, 65, 35, 208, 61, 50, 84, 36, 243, 128, 20, 12, 201, 60, 36, 212, 73, 82, 212, 36, 243, 128, 20, 12, 201,
+			44, 243, 148, 72, 18, 212, 36, 243, 128, 20, 12, 201, 44, 243, 80, 61, 50, 84, 36, 243, 128, 20, 12, 201, 36, 228, 212, 73, 82, 212,
+			36, 243, 128, 20, 12, 201, 16, 148, 212, 72, 18, 212, 36, 243, 128, 20, 12, 201, 16, 145, 134, 72, 18, 212, 36, 243, 128, 20, 12, 201,
+			8, 83, 133, 16, 146, 212, 36, 243, 128, 20, 12, 201, 4, 178, 214, 37, 50, 84, 36, 243, 128, 20, 12, 201, 4, 36, 212, 72, 18, 212,
+			36, 243, 128, 20, 9, 198, 72, 242, 197, 72, 147, 135, 20, 9, 198, 24, 147, 5, 72, 147, 135, 20, 9, 198, 16, 244, 197, 72, 147, 135,
+			20, 9, 198, 5, 35, 69, 72, 147, 135, 20, 14, 139, 11, 195, 184, 14, 19, 11, 22, 15, 20, 5, 18, 20, 14, 4, 95, 48, 77, 49,
+			47, 6, 40, 12, 89, 14, 50, 0, 0, 9, 198, 56, 85, 84, 72, 243, 128, 20, 13, 138, 16, 15, 18, 195, 184, 19, 9, 20, 5, 20,
+			20, 13, 202, 77, 68, 129, 8, 17, 19, 21, 34, 78, 28, 20, 13, 202, 64, 20, 129, 25, 32, 83, 21, 34, 78, 28, 20, 13, 202, 33,
+			148, 15, 77, 64, 83, 21, 34, 78, 28, 20, 13, 202, 16, 243, 69, 77, 66, 67, 21, 34, 78, 28, 20, 15, 204, 36, 228, 212, 73, 83,
+			69, 57, 64, 76, 37, 49, 82, 20, 11, 66, 64, 32, 83, 37, 50, 35, 55, 0, 42, 9, 198, 44, 241, 134, 20, 147, 128, 20, 12, 201,
+			65, 34, 77, 37, 66, 86, 37, 51, 69, 20, 12, 201, 60, 34, 133, 45, 66, 86, 37, 51, 69, 20, 12, 201, 49, 85, 8, 21, 32, 78,
+			37, 51, 69, 20, 13, 4, 95, 2, 18, 22, 71, 34, 6, 37, 12, 84, 0, 0, 9, 198, 64, 83, 5, 72, 147, 133, 20, 9, 198, 44,
+			243, 5, 72, 147, 133, 20, 10, 199, 12, 16, 146, 36, 243, 5, 80, 20, 14, 139, 13, 15, 14, 4, 195, 166, 14, 9, 20, 5, 20, 20,
+			15, 204, 80, 82, 206, 60, 180, 129, 80, 148, 197, 72, 147, 135, 20, 15, 204, 76, 176, 78, 16, 147, 129, 88, 148, 197, 72, 147, 135, 20,
+			15, 204, 65, 35, 194, 48, 83, 65, 80, 148, 197, 72, 147, 135, 20, 15, 204, 52, 84, 139, 4, 229, 9, 48, 148, 197, 72, 147, 135, 20,
+			15, 204, 24, 146, 212, 36, 243, 129, 48, 148, 197, 72, 147, 135, 20, 15, 204, 16, 83, 73, 56, 84, 129, 48, 148, 197, 72, 147, 135, 20,
+			15, 204, 16, 80, 197, 57, 68, 129, 48, 148, 197, 72, 147, 135, 20, 15, 204, 12, 243, 148, 4, 147, 133, 72, 148, 197, 72, 147, 135, 20,
+			12, 201, 65, 34, 77, 37, 66, 86, 37, 49, 82, 20, 12, 201, 60, 34, 133, 45, 66, 86, 37, 49, 82, 20, 12, 201, 20, 193, 75, 81,
+			34, 70, 36, 49, 82, 20, 12, 201, 16, 145, 134, 21, 33, 78, 80, 145, 82, 20, 13, 138, 8, 15, 13, 195, 184, 15, 16, 1, 20, 9,
+			20, 9, 198, 32, 84, 143, 37, 51, 69, 20, 9, 198, 24, 20, 195, 37, 51, 69, 20, 0, 11, 136, 19, 20, 195, 184, 22, 12, 5, 20,
+			20, 12, 201, 88, 242, 193, 48, 148, 197, 72, 147, 135, 20, 12, 201, 88, 148, 137, 48, 148, 197, 72, 147, 135, 20, 12, 201, 80, 84, 146,
+			5, 52, 197, 72, 147, 135, 20, 12, 201, 76, 213, 75, 44, 84, 197, 72, 147, 135, 20, 12, 201, 64, 243, 9, 80, 148, 197, 72, 147, 135,
+			20, 12, 201, 48, 242, 193, 48, 148, 197, 72, 147, 135, 20, 12, 201, 48, 81, 193, 48, 148, 197, 72, 147, 135, 20, 12, 201, 44, 243, 134,
+			61, 35, 69, 72, 147, 135, 20, 12, 201, 44, 243, 134, 37, 35, 69, 72, 147, 135, 20, 12, 201, 37, 51, 1, 52, 148, 197, 72, 147, 135,
+			20, 12, 201, 36, 195, 21, 52, 147, 133, 72, 147, 135, 20, 12, 201, 36, 65, 65, 48, 148, 197, 72, 147, 135, 20, 12, 201, 29, 34, 77,
+			5, 52, 197, 72, 147, 135, 20, 12, 201, 24, 197, 73, 16, 148, 197, 72, 147, 135, 20, 12, 201, 24, 20, 200, 36, 243, 133, 72, 147, 135,
+			20, 12, 201, 16, 82, 204, 5, 52, 197, 72, 147, 135, 20, 12, 201, 16, 80, 200, 36, 100, 133, 72, 147, 135, 20, 13, 138, 195, 166, 19,
+			20, 5, 20, 9, 11, 5, 18, 20, 7, 196, 52, 20, 137, 56, 20, 7, 196, 52, 147, 73, 44, 20, 7, 196, 52, 20, 137, 56, 20, 6,
+			195, 88, 244, 133, 72, 0, 12, 201, 77, 84, 5, 73, 98, 83, 36, 243, 128, 20, 16, 141, 18, 5, 12, 9, 7, 9, 195, 184, 19, 9,
+			20, 5, 20, 20, 16, 141, 13, 15, 14, 19, 20, 18, 195, 184, 19, 9, 20, 5, 20, 20, 8, 197, 44, 21, 84, 20, 192, 20, 8, 197,
+			44, 21, 84, 20, 192, 20, 14, 139, 195, 184, 11, 21, 13, 5, 14, 9, 11, 5, 18, 20, 8, 197, 9, 33, 84, 60, 224, 20, 8, 197,
+			52, 81, 9, 4, 224, 21, 0, 18, 207, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 197, 72, 147, 135, 20, 18, 207, 36, 228, 212,
+			37, 69, 84, 36, 243, 129, 48, 148, 197, 72, 147, 135, 20, 9, 198, 88, 148, 201, 80, 84, 128, 20, 9, 198, 88, 19, 9, 16, 84, 128,
+			20, 9, 198, 81, 84, 195, 32, 84, 128, 20, 9, 198, 77, 64, 70, 24, 84, 128, 20, 9, 198, 77, 3, 206, 76, 84, 128, 20, 9, 198,
+			72, 84, 5, 80, 84, 128, 20, 9, 198, 72, 83, 1, 80, 84, 128, 20, 9, 198, 60, 225, 21, 48, 84, 128, 20, 9, 198, 52, 147, 137,
+			52, 84, 128, 20, 9, 198, 52, 18, 213, 48, 84, 128, 20, 9, 198, 41, 80, 137, 48, 84, 128, 20, 9, 198, 36, 229, 129, 16, 84, 128,
+			20, 9, 198, 28, 19, 15, 64, 84, 128, 20, 9, 198, 16, 82, 193, 80, 84, 128, 20, 12, 201, 64, 242, 78, 80, 147, 12, 37, 51, 69,
+			20, 9, 198, 24, 243, 9, 4, 229, 0, 20, 9, 198, 77, 1, 78, 16, 16, 128, 20, 0, 12, 201, 16, 148, 211, 60, 50, 65, 80, 147,
+			206, 20, 18, 143, 9, 18, 18, 5, 12, 9, 7, 9, 195, 184, 19, 9, 20, 5, 20, 20, 9, 198, 76, 178, 84, 76, 84, 133, 20, 10,
+			199, 76, 128, 77, 64, 243, 133, 72, 20, 9, 198, 65, 83, 139, 80, 84, 133, 20, 9, 198, 64, 147, 15, 80, 84, 133, 20, 10, 199, 44,
+			243, 147, 36, 115, 133, 72, 20, 10, 199, 48, 21, 129, 16, 83, 9, 28, 20, 10, 199, 28, 145, 193, 57, 66, 83, 44, 20, 10, 199, 25,
+			33, 78, 21, 66, 83, 44, 20, 9, 198, 77, 147, 143, 57, 147, 73, 20, 10, 199, 77, 66, 76, 37, 53, 9, 44, 20, 10, 199, 77, 64,
+			84, 37, 53, 9, 44, 20, 10, 199, 76, 179, 204, 5, 53, 9, 44, 20, 6, 195, 88, 244, 128, 72, 5, 195, 24, 244, 128, 0, 19, 70,
+			21, 53, 18, 4, 115, 206, 36, 89, 47, 51, 35, 81, 6, 114, 68, 0, 20, 7, 196, 48, 20, 9, 56, 20, 11, 200, 76, 192, 71, 20,
+			196, 197, 4, 224, 20, 0, 8, 197, 64, 243, 80, 60, 224, 20, 12, 201, 80, 18, 212, 72, 81, 213, 48, 84, 128, 20, 12, 201, 77, 65,
+			84, 61, 50, 207, 64, 84, 128, 20, 12, 201, 72, 82, 212, 61, 50, 207, 64, 84, 128, 20, 12, 201, 72, 82, 1, 8, 147, 9, 80, 84,
+			128, 20, 12, 201, 4, 100, 1, 81, 37, 76, 40, 84, 128, 20, 12, 201, 44, 243, 147, 81, 34, 78, 28, 84, 128, 20, 12, 201, 20, 180,
+			208, 48, 144, 201, 80, 84, 128, 20, 15, 204, 77, 84, 18, 4, 224, 84, 85, 32, 76, 37, 51, 69, 20, 8, 197, 64, 20, 21, 4, 224,
+			20, 12, 201, 81, 32, 78, 77, 3, 210, 80, 16, 128, 20, 0, 9, 198, 76, 83, 129, 80, 244, 128, 20, 9, 198, 16, 243, 129, 80, 244,
+			128, 20, 18, 207, 8, 83, 133, 24, 144, 197, 24, 244, 133, 77, 66, 76, 48, 147, 135, 67, 9, 198, 60, 178, 213, 64, 84, 128, 20, 9,
+			198, 45, 96, 68, 72, 84, 128, 20, 9, 198, 20, 213, 76, 28, 84, 128, 20, 9, 198, 16, 82, 213, 64, 84, 128, 20, 9, 198, 4, 227,
+			143, 80, 84, 128, 20, 13, 202, 33, 145, 18, 60, 70, 78, 4, 210, 83, 44, 20, 13, 202, 16, 84, 141, 5, 67, 204, 60, 114, 83, 44,
+			20, 13, 202, 9, 35, 205, 5, 67, 204, 60, 114, 83, 44, 20, 13, 202, 4, 229, 18, 61, 3, 204, 60, 114, 83, 44, 20, 9, 198, 72,
+			80, 71, 20, 229, 0, 20, 9, 198, 52, 148, 197, 72, 16, 128, 20, 0, 10, 199, 77, 80, 195, 21, 52, 207, 72, 20, 9, 198, 64, 243,
+			25, 45, 35, 205, 20, 10, 199, 76, 83, 147, 5, 66, 79, 56, 20, 10, 199, 44, 20, 211, 5, 66, 79, 56, 20, 10, 199, 44, 20, 18,
+			36, 243, 5, 72, 20, 9, 198, 24, 147, 5, 80, 84, 133, 20, 9, 198, 20, 180, 201, 48, 84, 133, 20, 10, 199, 8, 19, 19, 81, 148,
+			137, 28, 20, 10, 199, 80, 82, 212, 60, 226, 83, 44, 20, 10, 199, 21, 2, 83, 60, 66, 83, 44, 20, 9, 198, 45, 84, 137, 61, 53,
+			77, 20, 10, 199, 60, 36, 203, 85, 32, 78, 80, 20, 10, 199, 32, 244, 208, 37, 64, 78, 80, 20, 10, 199, 5, 69, 5, 77, 64, 78,
+			80, 20, 10, 199, 4, 48, 197, 65, 64, 78, 80, 20, 0, 11, 200, 44, 243, 147, 20, 228, 213, 4, 192, 20, 0, 12, 201, 72, 81, 197,
+			56, 84, 129, 80, 244, 128, 20, 12, 201, 44, 243, 210, 16, 147, 129, 80, 244, 128, 20, 12, 201, 36, 228, 197, 52, 147, 129, 80, 244, 128,
+			20, 12, 201, 20, 180, 193, 52, 147, 129, 80, 244, 128, 20, 12, 201, 20, 180, 212, 72, 20, 15, 48, 84, 128, 20, 12, 201, 57, 144, 143,
+			72, 113, 78, 76, 84, 128, 20, 9, 198, 80, 243, 5, 72, 19, 147, 20, 9, 198, 72, 83, 5, 88, 19, 147, 20, 0, 9, 198, 88, 148,
+			203, 61, 49, 64, 20, 13, 202, 81, 32, 78, 77, 3, 211, 37, 66, 79, 56, 20, 13, 202, 72, 82, 212, 36, 98, 75, 5, 66, 79, 56,
+			20, 9, 198, 77, 146, 207, 24, 19, 148, 20, 9, 198, 36, 212, 15, 76, 19, 148, 20, 9, 198, 9, 34, 76, 48, 19, 148, 20, 0, 12,
+			201, 88, 84, 147, 36, 98, 75, 5, 67, 210, 20, 12, 201, 77, 64, 66, 36, 194, 83, 5, 67, 210, 20, 9, 198, 17, 148, 204, 20, 180,
+			201, 20, 10, 199, 32, 148, 16, 60, 68, 143, 52, 20, 9, 198, 76, 19, 1, 80, 84, 137, 20, 10, 199, 72, 84, 201, 77, 64, 78, 76,
+			20, 0, 11, 200, 44, 243, 148, 4, 210, 78, 21, 32, 20, 12, 201, 36, 225, 137, 56, 149, 9, 88, 148, 203, 20, 9, 198, 81, 85, 129,
+			49, 80, 78, 20, 0, 12, 201, 64, 20, 143, 16, 243, 148, 61, 49, 64, 20, 8, 197, 85, 34, 78, 21, 32, 20, 8, 197, 56, 149, 18,
+			21, 32, 20, 12, 201, 4, 178, 213, 72, 21, 5, 77, 49, 64, 20, 9, 198, 24, 147, 9, 64, 83, 147, 20, 9, 198, 9, 34, 76, 48,
+			19, 147, 20, 12, 201, 36, 229, 5, 73, 1, 76, 48, 19, 148, 20, 0, 18, 70, 20, 180, 208, 61, 49, 64, 36, 81, 89, 48, 39, 89,
+			6, 36, 0, 20, 9, 198, 21, 2, 71, 72, 17, 128, 20, 9, 198, 73, 81, 9, 52, 83, 148, 20, 9, 198, 16, 82, 193, 16, 83, 148,
+			20, 9, 198, 72, 85, 133, 73, 48, 76, 20, 9, 198, 80, 243, 5, 72, 19, 148, 20, 9, 198, 72, 83, 5, 88, 19, 148, 20, 9, 198,
+			61, 33, 9, 56, 19, 148, 20, 9, 198, 25, 32, 80, 64, 19, 148, 20, 9, 198, 24, 145, 213, 72, 19, 148, 20, 0, 9, 198, 76, 181,
+			76, 44, 84, 137, 20, 10, 199, 20, 208, 129, 48, 192, 71, 20, 20, 0, 7, 196, 76, 145, 143, 56, 20, 9, 198, 21, 65, 82, 56, 83,
+			0, 20, 9, 198, 44, 244, 132, 36, 19, 0, 20, 9, 198, 4, 67, 73, 72, 19, 0, 20, 0, 9, 134, 22, 9, 14, 195, 184, 19, 20,
+			8, 197, 44, 243, 132, 60, 208, 20, 12, 201, 16, 83, 9, 44, 21, 5, 77, 49, 64, 20, 8, 197, 8, 146, 201, 56, 144, 20, 8, 197,
+			81, 32, 70, 36, 176, 20, 12, 201, 20, 180, 212, 72, 21, 129, 28, 19, 148, 20, 0, 10, 135, 14, 9, 20, 18, 195, 184, 19, 20, 11,
+			136, 5, 13, 1, 12, 10, 195, 184, 18, 20, 9, 198, 25, 33, 78, 21, 50, 64, 20, 9, 198, 44, 245, 5, 48, 85, 0, 20, 9, 198,
+			61, 33, 9, 56, 21, 0, 20, 9, 198, 4, 181, 15, 72, 21, 0, 20, 0, 26, 67, 52, 149, 0, 65, 37, 47, 15, 49, 84, 112, 6,
+			47, 36, 34, 0, 81, 107, 118, 97, 114, 116, 101, 114, 32, 10, 199, 32, 21, 130, 36, 243, 15, 28, 20, 10, 199, 52, 148, 211, 36, 243,
+			133, 72, 20, 10, 199, 21, 98, 78, 16, 83, 9, 28, 20, 10, 199, 4, 101, 1, 28, 83, 9, 28, 20, 10, 199, 81, 84, 137, 77, 66,
+			83, 44, 20, 10, 199, 77, 64, 84, 5, 34, 83, 44, 20, 10, 199, 72, 16, 201, 77, 66, 83, 44, 20, 10, 199, 65, 84, 137, 77, 66,
+			83, 44, 20, 10, 199, 64, 81, 1, 57, 66, 83, 44, 20, 10, 199, 61, 33, 193, 77, 66, 83, 44, 20, 10, 199, 56, 22, 137, 77, 66,
+			83, 44, 20, 10, 199, 48, 149, 21, 72, 114, 83, 44, 20, 10, 199, 45, 34, 71, 21, 34, 83, 44, 20, 10, 199, 44, 244, 205, 21, 66,
+			83, 44, 20, 10, 199, 20, 180, 212, 5, 66, 83, 44, 20, 10, 199, 4, 176, 68, 20, 210, 83, 44, 20, 10, 199, 81, 32, 86, 21, 37,
+			9, 56, 20, 9, 198, 32, 243, 79, 24, 243, 137, 20, 10, 199, 60, 198, 77, 64, 144, 68, 20, 20, 10, 67, 52, 149, 0, 65, 37, 47,
+			0, 72, 0, 7, 196, 56, 21, 21, 72, 20, 11, 200, 76, 83, 5, 56, 243, 15, 28, 144, 20, 9, 198, 8, 17, 193, 80, 83, 0, 20,
+			11, 200, 81, 32, 75, 5, 52, 197, 72, 144, 20, 11, 200, 52, 85, 1, 25, 148, 201, 76, 176, 20, 11, 200, 77, 81, 134, 37, 48, 78,
+			12, 80, 20, 9, 198, 52, 20, 147, 44, 19, 0, 20, 0, 13, 138, 1, 12, 2, 21, 13, 9, 14, 195, 184, 19, 20, 12, 201, 76, 147,
+			80, 48, 144, 201, 80, 85, 0, 20, 8, 197, 81, 34, 65, 16, 80, 20, 8, 197, 72, 242, 193, 16, 80, 20, 8, 197, 17, 38, 65, 16,
+			80, 20, 0, 10, 135, 16, 15, 13, 16, 195, 184, 19, 20, 11, 136, 19, 1, 14, 9, 20, 195, 184, 18, 20, 11, 136, 4, 5, 11, 1,
+			20, 195, 184, 18, 20, 13, 202, 20, 180, 212, 72, 245, 133, 73, 50, 79, 56, 20, 13, 202, 88, 145, 5, 57, 50, 193, 8, 83, 9, 28,
+			20, 13, 202, 48, 145, 5, 57, 50, 193, 8, 83, 9, 28, 20, 13, 202, 76, 83, 73, 56, 20, 137, 77, 66, 83, 44, 20, 13, 202, 72,
+			85, 77, 5, 67, 204, 60, 114, 83, 44, 20, 13, 202, 65, 35, 212, 21, 53, 1, 57, 66, 83, 44, 20, 13, 202, 52, 243, 133, 80, 20,
+			137, 77, 66, 83, 44, 20, 13, 202, 52, 85, 5, 61, 35, 204, 60, 114, 83, 44, 20, 13, 202, 45, 96, 75, 76, 19, 22, 21, 34, 83,
+			44, 20, 13, 202, 44, 244, 205, 61, 3, 204, 37, 66, 83, 44, 20, 13, 202, 44, 243, 148, 72, 17, 129, 45, 66, 83, 44, 20, 13, 202,
+			24, 243, 11, 48, 244, 137, 77, 66, 83, 44, 20, 13, 202, 16, 148, 12, 60, 208, 84, 5, 34, 83, 44, 20, 13, 202, 4, 195, 5, 72,
+			115, 204, 60, 114, 83, 44, 20, 9, 198, 28, 198, 75, 61, 50, 68, 20, 9, 198, 5, 4, 1, 72, 21, 0, 20, 9, 198, 4, 68, 133,
+			77, 48, 84, 20, 0, 10, 199, 80, 149, 21, 48, 21, 21, 72, 20, 10, 199, 44, 243, 138, 20, 181, 21, 72, 20, 10, 199, 44, 192, 86,
+			36, 21, 21, 72, 20, 10, 199, 44, 20, 137, 44, 21, 21, 72, 20, 12, 137, 9, 19, 15, 12, 1, 20, 195, 184, 18, 20, 12, 137, 4,
+			5, 2, 1, 20, 20, 195, 184, 18, 20, 10, 199, 65, 35, 198, 21, 52, 207, 72, 20, 10, 199, 80, 84, 212, 5, 66, 79, 56, 20, 10,
+			199, 77, 1, 68, 37, 66, 79, 56, 20, 10, 199, 44, 240, 76, 37, 66, 79, 56, 20, 10, 199, 77, 65, 78, 12, 147, 5, 72, 20, 10,
+			199, 45, 98, 78, 44, 83, 5, 72, 20, 10, 199, 44, 20, 148, 60, 227, 133, 72, 20, 10, 199, 44, 19, 148, 60, 227, 133, 72, 20, 10,
+			199, 88, 83, 2, 101, 33, 9, 28, 20, 10, 199, 81, 148, 129, 56, 226, 83, 44, 20, 10, 199, 76, 144, 77, 21, 50, 83, 44, 20, 10,
+			199, 44, 20, 193, 44, 130, 83, 44, 20, 10, 199, 28, 19, 22, 4, 226, 83, 44, 20, 10, 199, 64, 197, 86, 37, 84, 201, 56, 20, 12,
+			201, 48, 16, 137, 60, 65, 78, 80, 19, 0, 20, 10, 199, 21, 52, 12, 4, 224, 68, 20, 20, 10, 199, 12, 131, 203, 60, 192, 68, 20,
+			20, 0, 13, 138, 19, 20, 21, 11, 11, 1, 20, 195, 184, 18, 20, 13, 138, 18, 5, 16, 5, 20, 9, 20, 195, 184, 18, 20, 13, 138,
+			18, 5, 14, 15, 22, 1, 20, 195, 184, 18, 20, 13, 138, 9, 14, 14, 15, 22, 1, 20, 195, 184, 18, 20, 13, 138, 4, 5, 11, 15,
+			18, 1, 20, 195, 184, 18, 20, 13, 138, 2, 9, 12, 12, 5, 20, 20, 195, 184, 18, 20, 16, 141, 195, 166, 19, 20, 5, 20, 9, 19,
+			5, 18, 9, 14, 7, 20, 9, 198, 72, 85, 133, 73, 49, 82, 20, 11, 200, 88, 147, 132, 52, 17, 197, 72, 144, 20, 11, 200, 25, 34,
+			66, 101, 69, 5, 72, 144, 20, 11, 200, 8, 84, 141, 84, 64, 82, 36, 112, 20, 11, 200, 4, 193, 197, 9, 32, 73, 76, 176, 20, 0,
+			14, 139, 20, 18, 1, 14, 19, 12, 1, 20, 195, 184, 18, 20, 14, 139, 16, 18, 15, 22, 15, 11, 1, 20, 195, 184, 18, 20, 14, 139,
+			15, 2, 19, 5, 18, 22, 1, 20, 195, 184, 18, 20, 14, 139, 12, 5, 22, 5, 18, 1, 14, 4, 195, 184, 18, 20, 14, 139, 11, 15,
+			14, 20, 18, 15, 12, 12, 195, 184, 18, 20, 14, 139, 5, 11, 19, 16, 5, 4, 9, 20, 195, 184, 18, 20, 14, 139, 1, 19, 19, 21,
+			18, 1, 14, 4, 195, 184, 18, 20, 12, 201, 84, 226, 86, 21, 36, 201, 80, 85, 0, 20, 12, 201, 44, 192, 83, 76, 144, 201, 80, 85,
+			0, 20, 12, 201, 28, 83, 133, 72, 244, 201, 80, 85, 0, 20, 12, 201, 8, 148, 15, 48, 20, 137, 80, 85, 0, 20, 9, 198, 88, 245,
+			5, 72, 147, 135, 20, 9, 198, 72, 81, 197, 72, 147, 135, 20, 9, 198, 61, 5, 5, 72, 147, 135, 20, 9, 198, 60, 194, 69, 72, 147,
+			135, 20, 9, 198, 56, 245, 5, 72, 147, 135, 20, 9, 198, 56, 81, 197, 72, 147, 135, 20, 9, 198, 48, 81, 197, 72, 147, 135, 20, 9,
+			198, 48, 18, 197, 72, 147, 135, 20, 9, 198, 41, 81, 197, 72, 147, 135, 20, 9, 198, 16, 245, 5, 72, 147, 135, 20, 9, 198, 12, 149,
+			5, 72, 147, 135, 20, 9, 198, 5, 5, 5, 72, 147, 135, 20, 0, 15, 140, 18, 5, 11, 15, 13, 13, 1, 14, 4, 195, 184, 18, 20,
+			9, 198, 29, 32, 84, 37, 53, 0, 20, 9, 198, 13, 146, 204, 37, 53, 0, 20, 9, 198, 8, 20, 211, 37, 53, 0, 20, 9, 198, 8,
+			20, 20, 37, 53, 0, 20, 9, 198, 32, 243, 79, 24, 243, 128, 20, 13, 202, 52, 244, 148, 36, 98, 75, 5, 66, 79, 56, 20, 13, 202,
+			44, 243, 77, 84, 226, 75, 5, 66, 79, 56, 20, 13, 202, 28, 84, 212, 36, 181, 76, 5, 66, 79, 56, 20, 13, 202, 24, 244, 148, 36,
+			98, 75, 5, 66, 79, 56, 20, 9, 198, 20, 211, 212, 36, 243, 128, 20, 13, 202, 16, 148, 211, 36, 210, 76, 5, 66, 79, 56, 20, 9,
+			198, 8, 20, 212, 36, 243, 128, 20, 14, 139, 16, 18, 195, 166, 13, 9, 5, 18, 9, 14, 7, 20, 13, 202, 72, 244, 203, 36, 193, 5,
+			57, 50, 83, 44, 20, 9, 198, 65, 35, 212, 20, 147, 128, 20, 9, 198, 40, 18, 207, 8, 147, 128, 20, 0, 16, 141, 11, 15, 13, 13,
+			21, 14, 9, 11, 1, 20, 195, 184, 18, 20, 19, 144, 7, 18, 195, 184, 14, 12, 1, 14, 4, 9, 19, 5, 18, 9, 14, 7, 20, 10,
+			199, 20, 211, 212, 36, 243, 133, 48, 20, 12, 201, 76, 83, 147, 36, 34, 76, 37, 49, 82, 20, 12, 201, 8, 17, 193, 80, 83, 12, 37,
+			49, 82, 20, 9, 198, 28, 20, 148, 56, 84, 137, 20, 14, 203, 44, 19, 5, 40, 67, 211, 44, 244, 9, 76, 176, 20, 10, 199, 76, 49,
+			78, 5, 34, 85, 52, 20, 9, 198, 5, 64, 86, 37, 51, 69, 20, 9, 198, 4, 226, 77, 37, 51, 69, 20, 8, 67, 61, 85, 0, 21,
+			0, 10, 0, 9, 3, 14, 195, 165, 50, 114, 0, 15, 12, 201, 84, 67, 9, 12, 149, 5, 72, 147, 135, 20, 12, 201, 84, 65, 5, 48,
+			81, 197, 72, 147, 135, 20, 12, 201, 77, 80, 148, 72, 18, 5, 72, 147, 135, 20, 12, 201, 77, 80, 147, 36, 66, 69, 72, 147, 135, 20,
+			12, 201, 72, 82, 210, 85, 69, 5, 72, 147, 135, 20, 12, 201, 72, 20, 16, 61, 37, 5, 72, 147, 135, 20, 12, 201, 65, 34, 79, 72,
+			149, 5, 72, 147, 135, 20, 12, 201, 64, 84, 141, 37, 69, 5, 72, 147, 135, 20, 12, 201, 44, 244, 147, 21, 69, 5, 72, 147, 135, 20,
+			12, 201, 44, 243, 147, 81, 37, 69, 72, 147, 135, 20, 12, 201, 44, 243, 134, 37, 50, 197, 72, 147, 135, 20, 12, 201, 44, 243, 16, 61,
+			37, 5, 72, 147, 135, 20, 12, 201, 36, 229, 129, 48, 145, 5, 72, 147, 135, 20, 12, 201, 36, 228, 212, 37, 69, 69, 72, 147, 135, 20,
+			12, 201, 36, 225, 11, 61, 2, 69, 72, 147, 135, 20, 12, 201, 28, 20, 146, 61, 69, 5, 72, 147, 135, 20, 12, 201, 24, 197, 79, 72,
+			145, 5, 72, 147, 135, 20, 12, 201, 16, 148, 212, 72, 18, 5, 72, 147, 135, 20, 12, 201, 8, 243, 66, 5, 33, 5, 72, 147, 135, 20,
+			12, 201, 5, 53, 18, 36, 225, 197, 72, 147, 135, 20, 9, 198, 77, 67, 204, 81, 49, 82, 20, 9, 198, 24, 197, 75, 81, 81, 82, 20,
+			9, 68, 48, 84, 143, 100, 21, 0, 10, 9, 68, 12, 240, 67, 32, 21, 0, 10, 0, 12, 201, 44, 243, 80, 5, 32, 84, 37, 53, 0,
+			20, 12, 201, 80, 84, 212, 61, 53, 5, 72, 243, 128, 20, 12, 201, 88, 83, 148, 36, 192, 84, 36, 243, 128, 20, 12, 201, 88, 16, 195,
+			36, 224, 84, 36, 243, 128, 20, 12, 201, 77, 80, 147, 84, 212, 20, 36, 243, 128, 20, 12, 201, 77, 66, 80, 84, 192, 84, 36, 243, 128,
+			20, 12, 201, 77, 66, 77, 84, 192, 84, 36, 243, 128, 20, 12, 201, 77, 64, 71, 24, 192, 84, 36, 243, 128, 20, 12, 201, 72, 85, 1,
+			72, 64, 84, 36, 243, 128, 20, 12, 201, 72, 84, 201, 28, 224, 84, 36, 243, 128, 20, 12, 201, 61, 48, 201, 48, 192, 84, 36, 243, 128,
+			20, 12, 201, 60, 36, 212, 73, 80, 212, 36, 243, 128, 20, 12, 201, 48, 146, 214, 36, 64, 84, 36, 243, 128, 20, 12, 201, 44, 244, 146,
+			20, 192, 84, 36, 243, 128, 20, 12, 201, 44, 243, 132, 60, 192, 84, 36, 243, 128, 20, 12, 201, 44, 243, 80, 36, 192, 84, 36, 243, 128,
+			20, 12, 201, 44, 240, 71, 84, 192, 84, 36, 243, 128, 20, 12, 201, 36, 227, 203, 84, 192, 84, 36, 243, 128, 20, 12, 201, 36, 226, 204,
+			36, 224, 84, 36, 243, 128, 20, 12, 201, 36, 226, 193, 77, 48, 84, 36, 243, 128, 20, 12, 201, 29, 32, 78, 84, 192, 84, 36, 243, 128,
+			20, 12, 201, 24, 20, 195, 36, 224, 84, 36, 243, 128, 20, 12, 201, 20, 194, 77, 36, 224, 84, 36, 243, 128, 20, 12, 201, 20, 180, 212,
+			72, 18, 212, 36, 243, 128, 20, 12, 201, 20, 160, 75, 84, 192, 84, 36, 243, 128, 20, 12, 201, 16, 84, 201, 28, 224, 84, 36, 243, 128,
+			20, 12, 201, 12, 148, 139, 84, 192, 84, 36, 243, 128, 20, 12, 201, 4, 197, 5, 72, 224, 84, 36, 243, 128, 20, 12, 201, 4, 113, 210,
+			5, 96, 84, 36, 243, 128, 20, 12, 137, 7, 18, 195, 166, 3, 9, 20, 5, 20, 20, 9, 198, 72, 17, 5, 72, 147, 135, 20, 9, 198,
+			45, 33, 69, 72, 147, 135, 20, 9, 198, 28, 17, 197, 72, 147, 135, 20, 9, 198, 24, 85, 5, 72, 147, 135, 20, 9, 198, 16, 21, 5,
+			72, 147, 135, 20, 9, 198, 4, 181, 5, 72, 147, 135, 20, 12, 201, 65, 81, 82, 80, 244, 137, 12, 19, 128, 20, 0, 9, 198, 97, 147,
+			15, 24, 243, 128, 20, 9, 198, 76, 84, 211, 36, 243, 128, 20, 9, 198, 64, 20, 211, 36, 243, 128, 20, 9, 198, 52, 148, 211, 36, 243,
+			128, 20, 9, 198, 21, 96, 83, 36, 243, 128, 20, 9, 198, 77, 65, 65, 72, 147, 128, 20, 12, 201, 61, 4, 15, 73, 69, 78, 37, 51,
+			69, 20, 12, 201, 52, 48, 193, 73, 66, 25, 37, 51, 69, 20, 15, 204, 88, 244, 132, 36, 225, 194, 61, 33, 197, 57, 49, 82, 20, 9,
+			198, 37, 99, 210, 36, 19, 128, 20, 9, 198, 88, 85, 5, 72, 19, 128, 21, 9, 198, 44, 243, 15, 77, 48, 76, 20, 13, 202, 20, 225,
+			9, 52, 83, 147, 36, 243, 129, 48, 20, 13, 70, 13, 35, 213, 80, 243, 128, 21, 102, 114, 0, 10, 0, 10, 199, 77, 80, 147, 80, 149,
+			21, 80, 20, 14, 139, 19, 5, 18, 9, 195, 184, 19, 9, 20, 5, 20, 20, 14, 139, 16, 15, 13, 16, 195, 184, 19, 9, 20, 5, 20,
+			20, 14, 139, 14, 5, 18, 22, 195, 184, 19, 9, 20, 5, 20, 20, 12, 137, 15, 13, 13, 195, 184, 2, 12, 5, 18, 20, 9, 198, 77,
+			66, 75, 48, 84, 137, 20, 10, 199, 56, 84, 15, 80, 148, 205, 20, 20, 10, 199, 36, 66, 79, 80, 148, 205, 20, 20, 10, 199, 21, 50,
+			193, 64, 148, 205, 20, 20, 9, 198, 13, 146, 204, 37, 51, 69, 20, 9, 198, 8, 20, 20, 37, 51, 69, 20, 12, 201, 21, 48, 138, 21,
+			33, 197, 57, 49, 82, 20, 0, 15, 204, 36, 228, 213, 8, 244, 132, 36, 224, 84, 36, 243, 128, 20, 9, 198, 16, 149, 137, 76, 147, 206,
+			20, 15, 204, 4, 178, 204, 36, 208, 84, 37, 48, 84, 36, 243, 128, 20, 15, 140, 16, 18, 5, 20, 9, 195, 184, 19, 9, 20, 5, 20,
+			20, 15, 140, 16, 18, 5, 3, 9, 195, 184, 19, 9, 20, 5, 20, 20, 15, 140, 7, 5, 14, 5, 18, 195, 184, 19, 9, 20, 5, 20,
+			20, 12, 201, 88, 84, 137, 24, 144, 197, 72, 147, 135, 20, 12, 201, 88, 19, 15, 72, 148, 197, 72, 147, 135, 20, 12, 201, 81, 32, 78,
+			76, 149, 5, 72, 147, 135, 20, 12, 201, 80, 83, 5, 88, 148, 197, 72, 147, 135, 20, 12, 201, 80, 82, 211, 81, 84, 133, 72, 147, 135,
+			20, 12, 201, 76, 177, 76, 21, 69, 5, 72, 147, 135, 20, 12, 201, 72, 85, 129, 48, 145, 5, 72, 147, 135, 20, 12, 201, 72, 85, 15,
+			84, 50, 5, 72, 147, 135, 20, 12, 201, 72, 84, 212, 37, 69, 69, 72, 147, 135, 20, 12, 201, 72, 81, 140, 20, 181, 5, 72, 147, 135,
+			20, 12, 201, 72, 81, 86, 4, 197, 69, 72, 147, 135, 20, 12, 201, 65, 35, 202, 20, 181, 5, 72, 147, 135, 20, 12, 201, 64, 243, 1,
+			72, 148, 197, 72, 147, 135, 20, 12, 201, 64, 84, 150, 21, 37, 5, 72, 147, 135, 20, 12, 201, 64, 16, 201, 24, 144, 197, 72, 147, 135,
+			20, 12, 201, 56, 22, 137, 24, 144, 197, 72, 147, 135, 20, 12, 201, 52, 241, 9, 24, 144, 197, 72, 147, 135, 20, 12, 201, 52, 82, 193,
+			56, 148, 197, 72, 147, 135, 20, 12, 201, 48, 21, 9, 56, 148, 197, 72, 147, 135, 20, 12, 201, 44, 244, 146, 84, 212, 5, 72, 147, 135,
+			20, 12, 201, 44, 243, 150, 21, 37, 5, 72, 147, 135, 20, 12, 201, 44, 243, 147, 80, 21, 5, 72, 147, 135, 20, 12, 201, 44, 243, 77,
+			37, 69, 5, 72, 147, 135, 20, 12, 201, 44, 243, 15, 56, 148, 197, 72, 147, 135, 20, 12, 201, 44, 241, 9, 24, 144, 197, 72, 147, 135,
+			20, 12, 201, 36, 229, 9, 52, 145, 5, 72, 147, 135, 20, 12, 201, 36, 70, 76, 48, 148, 197, 72, 147, 135, 20, 12, 201, 29, 37, 66,
+			48, 148, 197, 72, 147, 135, 20, 12, 201, 21, 85, 18, 60, 98, 69, 72, 147, 135, 20, 12, 201, 21, 81, 143, 72, 148, 197, 72, 147, 135,
+			20, 12, 201, 21, 66, 75, 21, 69, 5, 72, 147, 135, 20, 12, 201, 20, 97, 133, 45, 69, 69, 72, 147, 135, 20, 12, 201, 9, 81, 7,
+			21, 69, 5, 72, 147, 135, 20, 12, 201, 9, 34, 75, 21, 69, 5, 72, 147, 135, 20, 12, 201, 8, 245, 1, 56, 148, 197, 72, 147, 135,
+			20, 12, 201, 8, 147, 12, 21, 69, 5, 72, 147, 135, 20, 12, 201, 8, 20, 212, 5, 33, 5, 72, 147, 135, 20, 12, 201, 4, 229, 9,
+			44, 148, 197, 72, 147, 135, 20, 12, 201, 4, 229, 5, 16, 21, 5, 72, 147, 135, 20, 12, 201, 4, 211, 210, 80, 148, 197, 72, 147, 135,
+			20, 12, 201, 4, 48, 197, 57, 69, 69, 72, 147, 135, 20, 12, 201, 4, 36, 212, 72, 18, 5, 72, 147, 135, 20, 0, 12, 201, 65, 35,
+			199, 21, 53, 5, 72, 243, 128, 20, 16, 141, 16, 18, 195, 166, 13, 1, 20, 21, 18, 9, 20, 5, 20, 20, 8, 197, 45, 33, 83, 60,
+			192, 20, 8, 197, 44, 20, 197, 36, 224, 20, 8, 197, 84, 180, 129, 36, 224, 20, 12, 201, 52, 243, 148, 20, 225, 71, 72, 147, 128, 20,
+			8, 197, 44, 244, 133, 4, 224, 20, 8, 197, 44, 83, 153, 4, 224, 20, 16, 205, 56, 21, 18, 37, 83, 66, 36, 176, 82, 8, 243, 129,
+			80, 20, 8, 197, 72, 83, 148, 4, 32, 20, 0, 9, 198, 64, 243, 9, 81, 84, 128, 20, 9, 198, 48, 145, 193, 81, 84, 128, 20, 9,
+			198, 45, 33, 65, 81, 84, 128, 20, 12, 201, 25, 84, 197, 57, 64, 83, 80, 84, 137, 20, 12, 201, 72, 81, 201, 60, 224, 76, 37, 51,
+			69, 20, 12, 201, 44, 243, 80, 5, 32, 84, 37, 51, 69, 20, 12, 201, 44, 193, 82, 36, 176, 76, 37, 51, 69, 20, 12, 201, 16, 83,
+			79, 45, 32, 84, 37, 51, 69, 20, 15, 204, 76, 176, 78, 16, 84, 130, 61, 33, 197, 57, 49, 82, 20, 0, 9, 198, 16, 144, 71, 56,
+			244, 197, 20, 12, 201, 36, 229, 5, 73, 97, 78, 80, 147, 206, 20, 15, 204, 44, 243, 12, 20, 181, 9, 88, 148, 197, 72, 147, 135, 20,
+			15, 204, 20, 180, 197, 53, 3, 9, 24, 144, 197, 72, 147, 135, 20, 15, 204, 16, 148, 203, 88, 19, 9, 24, 144, 197, 72, 147, 135, 20,
+			15, 204, 16, 83, 73, 48, 149, 1, 72, 148, 197, 72, 147, 135, 20, 10, 199, 76, 21, 9, 72, 148, 197, 72, 20, 10, 199, 53, 83, 73,
+			24, 144, 197, 72, 20, 10, 199, 52, 245, 15, 72, 148, 197, 72, 20, 10, 199, 52, 18, 143, 72, 148, 197, 72, 20, 10, 199, 44, 21, 5,
+			44, 148, 197, 72, 20, 10, 199, 36, 224, 85, 29, 84, 133, 72, 20, 10, 199, 24, 83, 73, 56, 148, 197, 72, 20, 10, 199, 85, 35, 204,
+			60, 114, 83, 44, 20, 10, 199, 76, 83, 147, 61, 34, 83, 44, 20, 10, 199, 64, 20, 9, 77, 66, 83, 44, 20, 10, 199, 48, 85, 129,
+			57, 66, 83, 44, 20, 10, 199, 44, 244, 137, 57, 66, 83, 44, 20, 9, 198, 52, 243, 143, 80, 243, 137, 20, 10, 199, 44, 20, 213, 37,
+			53, 9, 44, 20, 10, 199, 81, 84, 130, 84, 193, 78, 80, 20, 10, 199, 5, 48, 197, 56, 65, 78, 80, 20, 0, 13, 138, 13, 9, 19,
+			19, 9, 15, 14, 195, 166, 18, 20, 6, 195, 52, 17, 201, 20, 11, 200, 77, 84, 208, 20, 228, 201, 60, 224, 20, 9, 198, 76, 176, 78,
+			76, 147, 206, 20, 9, 198, 36, 225, 149, 76, 147, 206, 20, 9, 198, 21, 128, 201, 76, 147, 206, 20, 11, 200, 20, 180, 212, 20, 228, 201,
+			60, 224, 20, 11, 136, 16, 18, 195, 166, 19, 5, 14, 20, 20, 0, 8, 197, 64, 20, 212, 20, 192, 20, 8, 197, 44, 242, 193, 36, 224,
+			20, 8, 197, 64, 84, 149, 4, 224, 20, 12, 201, 36, 229, 5, 72, 84, 211, 20, 229, 0, 20, 12, 201, 36, 229, 5, 48, 194, 71, 20,
+			229, 0, 20, 8, 197, 76, 17, 137, 4, 224, 21, 12, 201, 12, 192, 73, 73, 99, 217, 4, 229, 0, 20, 0, 9, 198, 25, 32, 75, 81,
+			84, 128, 20, 13, 202, 80, 84, 141, 36, 227, 204, 60, 114, 83, 44, 20, 13, 202, 76, 83, 147, 60, 211, 212, 61, 34, 83, 44, 20, 13,
+			138, 16, 18, 195, 166, 4, 9, 11, 1, 14, 20, 20, 0, 17, 67, 52, 145, 192, 65, 35, 57, 15, 89, 114, 0, 81, 115, 195, 165, 32,
+			16, 141, 11, 15, 13, 13, 9, 19, 19, 9, 15, 14, 195, 166, 18, 20, 10, 199, 64, 144, 195, 60, 194, 78, 20, 20, 10, 199, 4, 68,
+			203, 36, 195, 9, 28, 20, 10, 199, 80, 19, 13, 84, 66, 83, 44, 20, 10, 199, 76, 20, 132, 60, 226, 83, 44, 20, 10, 199, 64, 193,
+			66, 20, 162, 83, 44, 20, 10, 199, 32, 84, 129, 48, 66, 83, 44, 20, 20, 71, 8, 243, 150, 37, 96, 78, 80, 71, 114, 68, 84, 37,
+			84, 6, 112, 68, 0, 20, 10, 67, 52, 145, 192, 65, 35, 57, 0, 72, 0, 7, 196, 36, 209, 78, 76, 20, 7, 196, 56, 145, 67, 20,
+			20, 0, 12, 69, 8, 194, 86, 21, 32, 71, 55, 37, 34, 0, 8, 197, 81, 84, 142, 21, 32, 20, 8, 197, 60, 224, 78, 21, 32, 20,
+			9, 198, 80, 21, 1, 72, 148, 203, 20, 9, 198, 44, 147, 133, 76, 148, 203, 20, 9, 198, 36, 70, 76, 48, 148, 203, 20, 16, 205, 24,
+			145, 5, 36, 179, 205, 52, 148, 211, 5, 34, 83, 44, 20, 9, 198, 8, 245, 1, 56, 148, 203, 20, 9, 198, 80, 82, 212, 60, 226, 75,
+			20, 8, 197, 16, 240, 197, 57, 64, 20, 9, 198, 72, 84, 201, 16, 83, 147, 20, 0, 9, 198, 80, 83, 5, 76, 179, 208, 20, 9, 198,
+			52, 243, 143, 48, 241, 192, 20, 9, 198, 84, 180, 129, 36, 225, 64, 20, 15, 140, 8, 9, 12, 12, 5, 18, 195, 184, 4, 9, 1, 14,
+			20, 9, 198, 52, 20, 135, 36, 224, 76, 20, 9, 198, 72, 245, 76, 4, 65, 64, 20, 9, 198, 8, 19, 12, 4, 65, 64, 20, 9, 198,
+			65, 35, 214, 36, 19, 148, 20, 9, 198, 5, 36, 143, 28, 19, 148, 20, 0, 10, 199, 12, 83, 12, 84, 195, 211, 20, 20, 10, 199, 44,
+			16, 130, 4, 194, 83, 80, 20, 10, 199, 64, 20, 148, 21, 34, 78, 28, 20, 10, 199, 21, 99, 204, 21, 34, 78, 28, 20, 14, 139, 195,
+			166, 11, 22, 1, 20, 15, 18, 9, 1, 12, 20, 0, 11, 200, 76, 84, 1, 72, 21, 9, 77, 64, 20, 11, 200, 24, 147, 1, 80, 83,
+			9, 77, 64, 20, 11, 200, 4, 32, 78, 16, 243, 142, 21, 32, 20, 12, 137, 20, 195, 165, 12, 13, 15, 4, 9, 7, 20, 12, 201, 60,
+			35, 9, 28, 21, 15, 72, 148, 203, 20, 12, 201, 36, 225, 9, 44, 21, 9, 88, 148, 203, 20, 12, 201, 33, 145, 18, 61, 65, 75, 56,
+			148, 203, 20, 12, 201, 5, 3, 203, 4, 198, 80, 80, 148, 203, 20, 0, 8, 197, 76, 17, 9, 77, 64, 20, 8, 197, 5, 85, 9, 77,
+			64, 20, 8, 197, 5, 65, 73, 77, 64, 20, 8, 197, 65, 35, 194, 21, 32, 20, 8, 197, 52, 145, 210, 21, 32, 20, 13, 138, 19, 195,
+			184, 18, 7, 13, 15, 4, 9, 7, 20, 12, 201, 44, 243, 148, 72, 18, 212, 48, 145, 192, 20, 13, 138, 6, 15, 18, 19, 195, 166, 20,
+			12, 9, 7, 20, 9, 198, 80, 149, 1, 56, 148, 203, 20, 9, 198, 76, 145, 5, 72, 148, 203, 20, 9, 198, 64, 20, 137, 76, 148, 203,
+			20, 9, 198, 52, 82, 193, 56, 148, 203, 20, 9, 198, 48, 18, 207, 56, 148, 203, 20, 9, 198, 41, 83, 143, 56, 148, 203, 20, 11, 136,
+			19, 195, 166, 12, 1, 18, 9, 5, 20, 8, 197, 72, 84, 208, 37, 64, 20, 12, 201, 32, 84, 147, 44, 84, 137, 56, 65, 64, 20, 12,
+			201, 25, 34, 83, 80, 84, 137, 56, 65, 64, 20, 12, 201, 8, 18, 203, 4, 229, 9, 56, 65, 64, 20, 0, 9, 198, 88, 16, 195, 36,
+			225, 64, 20, 27, 74, 8, 80, 200, 4, 209, 76, 76, 21, 67, 20, 71, 36, 91, 35, 65, 6, 36, 12, 60, 89, 6, 113, 12, 89, 0,
+			13, 202, 44, 243, 148, 72, 20, 212, 21, 34, 78, 28, 20, 13, 202, 44, 243, 147, 60, 194, 68, 21, 34, 78, 28, 20, 9, 198, 20, 193,
+			78, 16, 145, 192, 20, 9, 198, 56, 82, 210, 60, 98, 76, 20, 9, 198, 72, 84, 201, 16, 83, 148, 20, 9, 198, 52, 243, 149, 52, 83,
+			148, 20, 8, 66, 60, 112, 114, 0, 76, 8, 0, 15, 204, 44, 192, 83, 76, 145, 137, 44, 21, 15, 72, 148, 203, 20, 10, 199, 81, 84,
+			130, 84, 193, 78, 76, 20, 10, 199, 5, 48, 197, 56, 65, 78, 76, 20, 10, 199, 80, 18, 203, 20, 192, 71, 20, 20, 9, 198, 77, 2,
+			79, 56, 17, 197, 20, 6, 195, 88, 244, 148, 72, 0, 11, 200, 44, 243, 80, 72, 84, 211, 61, 32, 20, 11, 200, 76, 83, 147, 84, 19,
+			9, 77, 64, 20, 11, 200, 48, 81, 201, 80, 147, 73, 77, 64, 20, 11, 200, 20, 180, 212, 72, 83, 73, 77, 64, 20, 8, 198, 48, 82,
+			211, 36, 179, 206, 11, 200, 64, 20, 129, 24, 98, 78, 21, 32, 20, 11, 200, 44, 243, 131, 20, 229, 18, 21, 32, 20, 7, 196, 16, 240,
+			197, 72, 20, 12, 137, 14, 195, 184, 10, 1, 7, 20, 9, 7, 20, 12, 137, 12, 195, 184, 19, 1, 7, 20, 9, 7, 20, 12, 201, 48,
+			19, 135, 60, 32, 82, 16, 148, 203, 20, 12, 201, 44, 243, 147, 60, 224, 78, 80, 148, 203, 20, 12, 201, 36, 226, 9, 8, 149, 15, 72,
+			148, 203, 20, 12, 201, 16, 147, 5, 81, 64, 78, 80, 148, 203, 20, 12, 201, 4, 208, 149, 48, 21, 15, 72, 148, 203, 20, 7, 196, 44,
+			243, 73, 44, 20, 11, 200, 72, 84, 197, 73, 97, 82, 21, 64, 20, 11, 200, 45, 83, 20, 37, 97, 82, 21, 64, 20, 11, 200, 8, 19,
+			1, 56, 49, 82, 21, 64, 20, 12, 137, 14, 195, 184, 10, 1, 7, 20, 9, 7, 20, 12, 137, 12, 195, 184, 19, 1, 7, 20, 9, 7,
+			20, 7, 196, 12, 145, 193, 72, 20, 9, 198, 36, 226, 84, 36, 19, 0, 20, 0, 12, 201, 77, 64, 78, 16, 128, 70, 80, 145, 192, 20,
+			9, 198, 48, 80, 133, 56, 66, 71, 20, 12, 201, 33, 84, 205, 60, 65, 82, 48, 145, 192, 20, 9, 198, 25, 34, 77, 60, 66, 71, 20,
+			9, 198, 24, 145, 213, 72, 194, 71, 20, 12, 201, 8, 20, 141, 32, 161, 82, 80, 145, 192, 20, 12, 201, 72, 240, 137, 57, 51, 206, 4,
+			65, 64, 20, 0, 10, 135, 21, 18, 9, 14, 195, 184, 19, 20, 9, 198, 48, 17, 197, 72, 148, 212, 20, 14, 139, 4, 22, 195, 166, 18,
+			7, 1, 7, 20, 9, 7, 20, 9, 198, 77, 3, 5, 56, 66, 68, 20, 0, 11, 136, 12, 21, 13, 9, 14, 195, 184, 19, 20, 11, 136,
+			4, 5, 12, 9, 18, 195, 184, 19, 20, 12, 201, 81, 32, 78, 76, 210, 83, 76, 147, 206, 20, 10, 199, 88, 149, 1, 48, 148, 197, 72,
+			20, 10, 199, 72, 20, 16, 20, 195, 5, 72, 20, 10, 199, 64, 243, 9, 80, 148, 197, 72, 20, 10, 199, 64, 84, 147, 36, 99, 5, 72,
+			20, 10, 199, 48, 242, 193, 48, 148, 197, 72, 20, 10, 199, 48, 81, 193, 48, 148, 197, 72, 20, 10, 199, 36, 65, 65, 48, 148, 197, 72,
+			20, 15, 140, 11, 18, 1, 19, 2, 195, 184, 18, 19, 20, 9, 7, 20, 15, 140, 1, 13, 1, 20, 195, 184, 18, 1, 7, 20, 9, 7,
+			20, 10, 199, 80, 83, 204, 60, 114, 83, 44, 20, 10, 199, 76, 49, 78, 5, 34, 83, 44, 20, 10, 199, 72, 85, 77, 5, 66, 83, 44,
+			20, 10, 199, 52, 85, 5, 61, 34, 83, 44, 20, 10, 199, 45, 35, 205, 5, 66, 83, 44, 20, 10, 199, 44, 241, 206, 5, 66, 83, 44,
+			20, 10, 199, 40, 84, 213, 37, 66, 83, 44, 20, 10, 199, 33, 148, 212, 21, 34, 83, 44, 20, 10, 199, 21, 50, 201, 52, 242, 83, 44,
+			20, 10, 199, 21, 34, 84, 72, 82, 83, 44, 20, 10, 199, 8, 147, 204, 60, 114, 83, 44, 20, 10, 199, 5, 85, 5, 57, 66, 83, 44,
+			20, 12, 201, 76, 83, 148, 36, 209, 78, 80, 19, 0, 20, 10, 199, 40, 84, 133, 52, 144, 68, 20, 20, 0, 12, 137, 7, 12, 21, 20,
+			9, 14, 195, 184, 19, 20, 11, 200, 4, 229, 18, 61, 3, 204, 60, 112, 20, 11, 200, 8, 20, 139, 20, 229, 9, 56, 80, 20, 9, 198,
+			65, 33, 83, 76, 147, 206, 20, 9, 198, 20, 210, 83, 76, 147, 206, 20, 9, 198, 77, 3, 210, 80, 83, 0, 20, 11, 200, 77, 3, 206,
+			76, 244, 133, 72, 80, 20, 12, 201, 48, 19, 132, 76, 176, 66, 20, 194, 71, 20, 16, 141, 11, 18, 1, 4, 19, 2, 195, 184, 18, 19,
+			20, 9, 7, 20, 12, 201, 36, 225, 19, 45, 34, 86, 20, 194, 71, 20, 15, 204, 16, 148, 203, 60, 229, 9, 57, 81, 82, 48, 145, 192,
+			20, 11, 200, 77, 80, 148, 72, 244, 9, 76, 176, 20, 11, 200, 44, 21, 5, 28, 244, 137, 76, 176, 20, 15, 204, 76, 181, 69, 77, 2,
+			76, 48, 84, 137, 56, 65, 64, 20, 15, 204, 33, 84, 194, 21, 53, 25, 72, 84, 137, 56, 65, 64, 20, 11, 200, 20, 193, 75, 81, 35,
+			206, 36, 176, 20, 9, 68, 92, 130, 84, 20, 21, 0, 10, 0, 13, 138, 22, 15, 12, 21, 13, 9, 14, 195, 184, 19, 20, 13, 138, 11,
+			1, 4, 1, 22, 5, 18, 195, 184, 19, 20, 13, 138, 2, 9, 20, 21, 13, 9, 14, 195, 184, 19, 20, 14, 139, 19, 11, 22, 1, 4,
+			18, 15, 14, 195, 184, 18, 20, 10, 135, 13, 15, 14, 20, 195, 184, 18, 20, 8, 197, 61, 53, 5, 72, 144, 20, 9, 198, 52, 19, 133,
+			72, 194, 71, 20, 9, 198, 28, 241, 13, 60, 66, 71, 20, 8, 197, 37, 34, 68, 36, 80, 20, 8, 197, 45, 35, 206, 36, 176, 20, 0,
+			7, 66, 57, 144, 50, 116, 0, 9, 198, 84, 226, 79, 56, 148, 212, 20, 9, 198, 76, 21, 1, 56, 148, 212, 20, 9, 198, 64, 19, 148,
+			20, 148, 212, 20, 9, 198, 48, 240, 130, 100, 148, 212, 20, 9, 198, 44, 243, 15, 56, 148, 212, 20, 9, 198, 32, 81, 15, 56, 148, 212,
+			20, 9, 198, 29, 35, 211, 76, 148, 212, 20, 9, 198, 16, 83, 9, 72, 148, 212, 20, 13, 202, 76, 19, 147, 20, 211, 212, 61, 34, 83,
+			44, 20, 13, 202, 64, 20, 129, 80, 17, 205, 5, 66, 83, 44, 20, 13, 202, 52, 243, 143, 45, 35, 205, 5, 66, 83, 44, 20, 13, 202,
+			32, 81, 197, 52, 243, 137, 77, 66, 83, 44, 20, 9, 198, 100, 83, 69, 56, 149, 0, 20, 9, 198, 16, 83, 132, 72, 149, 0, 20, 9,
+			198, 21, 81, 197, 56, 146, 192, 20, 0, 6, 195, 56, 115, 192, 17, 12, 137, 4, 5, 19, 5, 18, 20, 195, 184, 18, 20, 10, 199, 64,
+			20, 132, 60, 227, 133, 72, 20, 10, 199, 16, 148, 208, 20, 228, 197, 72, 20, 10, 199, 5, 52, 201, 52, 147, 5, 72, 20, 10, 199, 80,
+			19, 148, 4, 194, 83, 44, 20, 10, 199, 77, 3, 210, 4, 66, 83, 44, 20, 10, 199, 49, 82, 213, 48, 194, 83, 44, 20, 10, 199, 37,
+			35, 203, 21, 50, 83, 44, 20, 10, 199, 16, 18, 212, 100, 194, 83, 44, 20, 9, 198, 64, 19, 12, 4, 66, 69, 20, 10, 199, 88, 82,
+			140, 20, 228, 197, 72, 20, 10, 199, 16, 148, 208, 20, 228, 197, 72, 20, 17, 4, 95, 52, 88, 15, 83, 118, 114, 6, 47, 116, 84, 13,
+			50, 13, 0, 0, 9, 198, 77, 66, 76, 37, 49, 82, 20, 9, 198, 72, 85, 149, 72, 65, 82, 20, 9, 198, 72, 81, 210, 20, 65, 82,
+			20, 11, 200, 12, 128, 82, 13, 85, 5, 72, 144, 20, 12, 201, 28, 83, 143, 64, 192, 68, 20, 194, 71, 20, 11, 200, 88, 82, 140, 20,
+			228, 201, 76, 176, 20, 11, 200, 88, 20, 132, 20, 228, 201, 76, 176, 20, 11, 200, 64, 19, 133, 29, 148, 137, 76, 176, 20, 11, 200, 8,
+			84, 135, 20, 228, 201, 76, 176, 20, 7, 196, 28, 17, 193, 80, 20, 9, 4, 4, 195, 169, 20, 72, 36, 0, 0, 13, 138, 19, 11, 18,
+			15, 6, 21, 12, 195, 184, 19, 20, 19, 70, 8, 83, 9, 104, 148, 203, 71, 36, 55, 37, 12, 89, 37, 89, 81, 0, 66, 9, 198, 76,
+			21, 1, 56, 148, 203, 20, 9, 198, 32, 80, 146, 4, 148, 203, 20, 9, 198, 16, 83, 9, 72, 148, 203, 20, 9, 198, 8, 83, 9, 104,
+			148, 203, 20, 11, 136, 12, 5, 21, 11, 195, 166, 13, 9, 20, 0, 27, 70, 24, 244, 147, 100, 225, 84, 83, 6, 114, 34, 89, 116, 50,
+			13, 72, 15, 107, 112, 34, 0, 81, 104, 97, 114, 32, 9, 198, 16, 148, 16, 20, 69, 84, 20, 20, 4, 95, 3, 9, 18, 89, 6, 108,
+			12, 49, 114, 65, 83, 55, 4, 109, 49, 89, 0, 0, 12, 201, 72, 81, 201, 60, 224, 76, 37, 49, 82, 20, 12, 201, 44, 20, 129, 52,
+			83, 12, 37, 49, 82, 20, 12, 201, 16, 83, 79, 45, 32, 84, 37, 49, 82, 20, 14, 203, 52, 19, 137, 65, 83, 1, 80, 244, 137, 76,
+			176, 20, 10, 199, 80, 84, 146, 5, 34, 85, 52, 20, 10, 199, 44, 243, 12, 20, 114, 85, 52, 20, 10, 199, 64, 83, 147, 36, 243, 129,
+			80, 20, 10, 199, 16, 84, 212, 36, 195, 1, 80, 20, 6, 195, 45, 83, 128, 72, 0, 7, 196, 80, 18, 211, 36, 20, 9, 198, 36, 226,
+			204, 84, 65, 82, 20, 12, 201, 81, 83, 85, 49, 69, 65, 72, 148, 203, 20, 12, 201, 77, 80, 138, 20, 181, 9, 88, 148, 203, 20, 12,
+			201, 72, 80, 201, 80, 21, 9, 88, 148, 203, 20, 7, 196, 48, 147, 73, 80, 20, 7, 196, 80, 19, 73, 48, 20, 0, 0, 9, 198, 4,
+			225, 204, 37, 53, 0, 20, 13, 202, 16, 148, 12, 60, 208, 84, 5, 34, 85, 52, 20, 0, 10, 199, 24, 245, 15, 80, 18, 211, 36, 20,
+			10, 199, 76, 130, 66, 8, 243, 5, 80, 20, 12, 201, 65, 35, 204, 21, 64, 82, 37, 49, 82, 20, 12, 201, 45, 38, 68, 77, 33, 86,
+			36, 65, 82, 20, 10, 199, 56, 20, 212, 85, 37, 9, 20, 20, 10, 199, 29, 147, 78, 5, 50, 85, 52, 20, 10, 199, 72, 246, 65, 48,
+			148, 205, 20, 20, 10, 199, 61, 5, 9, 52, 148, 205, 20, 20, 10, 199, 24, 21, 1, 48, 148, 205, 20, 20, 10, 199, 4, 224, 82, 44,
+			148, 205, 20, 20, 14, 203, 72, 82, 207, 57, 96, 76, 21, 48, 197, 57, 48, 20, 10, 199, 61, 34, 197, 77, 68, 129, 48, 20, 0, 6,
+			195, 44, 101, 77, 17, 7, 196, 24, 16, 207, 56, 20, 7, 196, 81, 145, 143, 56, 20, 12, 201, 64, 21, 18, 84, 194, 133, 72, 147, 135,
+			20, 12, 201, 52, 83, 147, 40, 85, 137, 44, 148, 203, 20, 12, 201, 48, 243, 135, 60, 32, 82, 16, 148, 203, 20, 7, 196, 13, 80, 129,
+			56, 20, 0, 8, 197, 76, 18, 210, 4, 192, 20, 0, 7, 195, 44, 101, 75, 17, 42, 9, 198, 64, 244, 201, 81, 84, 128, 20, 9, 198,
+			5, 35, 65, 81, 84, 128, 20, 9, 198, 72, 85, 137, 76, 244, 128, 20, 9, 198, 21, 50, 193, 48, 84, 128, 20, 9, 198, 17, 84, 16,
+			20, 66, 84, 20, 13, 202, 77, 2, 82, 37, 69, 65, 48, 148, 205, 20, 20, 13, 202, 76, 243, 78, 4, 208, 149, 48, 148, 205, 20, 20,
+			13, 202, 44, 243, 147, 21, 37, 129, 80, 148, 205, 20, 20, 13, 202, 16, 80, 197, 57, 68, 129, 48, 148, 205, 20, 20, 9, 198, 21, 98,
+			68, 20, 229, 0, 20, 9, 198, 4, 208, 82, 4, 229, 0, 20, 0, 9, 198, 53, 149, 15, 48, 241, 201, 20, 10, 199, 36, 229, 133, 73,
+			50, 79, 56, 20, 10, 199, 72, 149, 129, 48, 148, 197, 72, 20, 10, 199, 72, 84, 212, 5, 84, 133, 72, 20, 10, 199, 61, 33, 193, 56,
+			148, 197, 72, 20, 10, 199, 52, 240, 137, 48, 148, 197, 72, 20, 10, 199, 44, 19, 143, 56, 148, 197, 72, 20, 10, 199, 36, 211, 85, 56,
+			148, 197, 72, 20, 10, 199, 24, 21, 143, 72, 148, 197, 72, 20, 10, 199, 52, 17, 217, 5, 34, 83, 44, 20, 10, 199, 45, 85, 193, 37,
+			66, 83, 44, 20, 10, 199, 21, 33, 77, 37, 66, 83, 44, 20, 10, 199, 8, 19, 19, 4, 210, 83, 44, 20, 10, 199, 5, 53, 13, 5,
+			66, 83, 44, 20, 10, 199, 81, 34, 86, 4, 193, 78, 80, 20, 10, 199, 65, 35, 205, 36, 225, 78, 80, 20, 13, 138, 16, 18, 195, 166,
+			10, 21, 4, 9, 3, 5, 20, 0, 11, 200, 76, 84, 1, 72, 21, 9, 60, 224, 20, 11, 200, 60, 35, 9, 28, 21, 9, 60, 224, 20,
+			11, 200, 44, 243, 150, 84, 196, 201, 60, 224, 20, 11, 200, 44, 243, 147, 84, 213, 9, 60, 224, 20, 11, 200, 44, 243, 142, 20, 180, 201,
+			60, 224, 20, 11, 200, 44, 243, 12, 20, 181, 9, 60, 224, 20, 11, 200, 24, 145, 213, 72, 21, 9, 60, 224, 20, 7, 196, 85, 32, 129,
+			56, 21, 0, 8, 197, 76, 84, 150, 36, 192, 20, 8, 197, 24, 80, 146, 36, 192, 20, 12, 201, 5, 66, 5, 56, 145, 78, 76, 84, 128,
+			20, 10, 69, 61, 33, 71, 60, 224, 21, 0, 10, 0, 9, 198, 80, 82, 211, 81, 84, 128, 20, 9, 198, 76, 82, 211, 81, 84, 128, 20,
+			9, 198, 65, 83, 139, 81, 84, 128, 20, 9, 198, 52, 146, 211, 81, 84, 128, 20, 9, 198, 41, 83, 139, 81, 84, 128, 20, 12, 201, 21,
+			2, 68, 20, 210, 79, 48, 241, 201, 20, 21, 146, 18, 5, 16, 18, 195, 166, 19, 5, 14, 20, 1, 20, 9, 22, 9, 20, 5, 20, 20,
+			13, 202, 80, 82, 206, 60, 180, 129, 80, 148, 197, 72, 20, 13, 202, 52, 84, 139, 4, 229, 9, 48, 148, 197, 72, 20, 13, 202, 77, 84,
+			5, 72, 192, 84, 37, 98, 83, 44, 20, 13, 202, 65, 35, 199, 72, 19, 77, 5, 66, 83, 44, 20, 13, 202, 5, 4, 5, 48, 192, 84,
+			37, 98, 83, 44, 20, 9, 198, 61, 5, 76, 20, 229, 0, 20, 9, 198, 24, 19, 12, 20, 229, 0, 20, 9, 198, 17, 32, 66, 4, 229,
+			0, 20, 11, 70, 92, 20, 146, 36, 244, 128, 21, 0, 10, 0, 14, 203, 44, 192, 83, 76, 145, 137, 44, 21, 9, 60, 224, 20, 10, 199,
+			72, 81, 201, 77, 68, 133, 72, 20, 10, 199, 61, 34, 197, 77, 68, 133, 72, 20, 10, 199, 44, 243, 80, 20, 228, 197, 72, 20, 10, 199,
+			36, 225, 137, 49, 68, 133, 72, 20, 10, 199, 36, 195, 21, 77, 68, 133, 72, 20, 10, 199, 45, 148, 137, 48, 194, 83, 44, 20, 10, 199,
+			37, 50, 201, 4, 66, 83, 44, 20, 10, 199, 77, 65, 71, 20, 228, 197, 72, 20, 10, 199, 45, 33, 84, 20, 228, 197, 72, 20, 14, 4,
+			95, 19, 20, 11, 89, 47, 34, 6, 39, 40, 49, 0, 0, 31, 76, 44, 243, 134, 37, 35, 65, 56, 65, 82, 56, 84, 192, 49, 114, 50,
+			83, 36, 34, 65, 6, 110, 50, 72, 108, 20, 50, 13, 89, 0, 11, 200, 77, 64, 71, 56, 21, 9, 60, 224, 20, 11, 200, 61, 33, 9,
+			56, 21, 9, 60, 224, 20, 11, 200, 36, 243, 137, 76, 21, 9, 60, 224, 20, 11, 200, 16, 148, 211, 20, 181, 9, 60, 224, 20, 12, 4,
+			95, 3, 18, 12, 49, 6, 108, 12, 55, 0, 0, 8, 197, 76, 241, 137, 77, 64, 20, 16, 141, 16, 18, 195, 166, 19, 9, 4, 5, 14,
+			20, 9, 5, 12, 20, 8, 197, 81, 32, 67, 21, 32, 20, 8, 197, 85, 33, 71, 21, 32, 20, 16, 205, 36, 229, 5, 72, 224, 84, 36,
+			243, 129, 48, 148, 197, 72, 20, 9, 198, 88, 148, 149, 48, 83, 147, 20, 8, 197, 88, 19, 21, 5, 32, 20, 14, 4, 95, 1, 3, 21,
+			35, 49, 57, 6, 40, 12, 47, 0, 0, 9, 198, 76, 147, 143, 48, 241, 192, 20, 9, 198, 53, 149, 15, 48, 241, 192, 20, 9, 198, 81,
+			33, 69, 56, 145, 192, 20, 9, 198, 44, 19, 148, 60, 224, 76, 20, 9, 198, 33, 148, 212, 4, 65, 64, 20, 0, 10, 199, 80, 19, 13,
+			84, 66, 83, 80, 20, 10, 199, 77, 64, 76, 36, 226, 83, 80, 20, 14, 203, 81, 32, 78, 76, 99, 210, 52, 21, 9, 60, 224, 20, 14,
+			203, 77, 68, 129, 80, 145, 137, 44, 21, 9, 60, 224, 20, 10, 199, 44, 192, 82, 21, 34, 78, 28, 20, 10, 199, 24, 20, 147, 21, 34,
+			78, 28, 20, 0, 11, 200, 80, 83, 5, 24, 243, 137, 77, 64, 20, 7, 196, 80, 82, 83, 80, 20, 11, 200, 64, 20, 131, 20, 195, 9,
+			77, 64, 20, 11, 200, 48, 144, 146, 21, 69, 9, 77, 64, 20, 11, 200, 44, 244, 142, 21, 69, 9, 77, 64, 20, 11, 200, 4, 229, 1,
+			28, 243, 137, 77, 64, 20, 11, 200, 89, 83, 11, 4, 226, 83, 21, 32, 20, 11, 200, 77, 84, 5, 73, 98, 83, 21, 32, 20, 11, 200,
+			76, 177, 77, 5, 66, 83, 21, 32, 20, 11, 200, 52, 241, 5, 72, 226, 83, 21, 32, 20, 11, 200, 52, 84, 131, 21, 34, 83, 21, 32,
+			20, 11, 200, 44, 194, 77, 5, 66, 83, 21, 32, 20, 11, 200, 32, 148, 212, 61, 34, 83, 21, 32, 20, 11, 200, 28, 129, 84, 80, 242,
+			83, 21, 32, 20, 11, 200, 24, 147, 13, 5, 66, 83, 21, 32, 20, 11, 200, 17, 32, 77, 5, 66, 83, 21, 32, 20, 11, 200, 16, 241,
+			205, 5, 66, 83, 21, 32, 20, 11, 200, 16, 83, 196, 61, 34, 83, 21, 32, 20, 11, 200, 5, 35, 205, 5, 66, 83, 21, 32, 20, 11,
+			200, 80, 83, 210, 21, 66, 75, 21, 32, 20, 11, 200, 16, 144, 66, 21, 66, 75, 21, 32, 20, 11, 200, 44, 243, 139, 85, 36, 133, 57,
+			64, 20, 0, 8, 197, 20, 115, 201, 77, 64, 20, 8, 197, 12, 21, 83, 21, 32, 20, 13, 138, 19, 195, 166, 4, 22, 1, 14, 12, 9,
+			7, 20, 12, 201, 56, 244, 132, 88, 84, 212, 48, 145, 192, 20, 13, 138, 13, 5, 4, 7, 195, 184, 18, 12, 9, 7, 20, 9, 198, 52,
+			19, 1, 40, 148, 203, 20, 9, 198, 44, 131, 69, 72, 148, 203, 20, 9, 198, 21, 81, 143, 72, 148, 203, 20, 12, 201, 45, 33, 79, 48,
+			84, 137, 56, 65, 64, 20, 8, 197, 52, 19, 132, 5, 64, 20, 8, 197, 4, 181, 21, 5, 32, 20, 0, 9, 198, 29, 148, 143, 76, 179,
+			208, 20, 9, 198, 24, 20, 203, 36, 225, 64, 20, 13, 202, 65, 35, 212, 20, 181, 9, 60, 226, 83, 80, 20, 13, 202, 64, 84, 134, 20,
+			181, 9, 60, 226, 83, 80, 20, 13, 202, 16, 242, 213, 52, 83, 148, 4, 194, 83, 80, 20, 13, 202, 81, 32, 78, 77, 3, 206, 21, 34,
+			78, 28, 20, 13, 202, 77, 1, 67, 36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 73, 84, 211, 36, 98, 67, 21, 34, 78, 28, 20, 13,
+			202, 64, 244, 201, 80, 147, 206, 21, 34, 78, 28, 20, 13, 202, 44, 192, 82, 36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 28, 195, 210,
+			36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 24, 19, 19, 36, 98, 67, 21, 34, 78, 28, 20, 13, 202, 16, 84, 201, 56, 98, 67, 21,
+			34, 78, 28, 20, 13, 202, 16, 83, 79, 57, 53, 18, 21, 34, 78, 28, 20, 13, 202, 4, 96, 129, 48, 19, 131, 21, 34, 78, 28, 20,
+			14, 139, 195, 184, 13, 6, 9, 14, 4, 20, 12, 9, 7, 20, 9, 198, 88, 83, 137, 56, 65, 64, 20, 9, 198, 16, 84, 137, 56, 65,
+			64, 20, 9, 198, 88, 148, 149, 48, 83, 148, 20, 9, 198, 80, 84, 141, 36, 224, 76, 20, 9, 198, 21, 53, 18, 4, 65, 64, 20, 9,
+			198, 9, 32, 86, 4, 65, 64, 20, 0, 10, 199, 4, 69, 133, 57, 66, 83, 80, 20, 14, 203, 81, 32, 78, 76, 148, 212, 61, 34, 83,
+			21, 32, 20, 10, 199, 16, 82, 193, 56, 84, 211, 20, 20, 14, 203, 72, 82, 207, 57, 96, 76, 21, 48, 197, 57, 64, 20, 9, 198, 64,
+			192, 78, 80, 17, 197, 20, 0, 18, 70, 48, 81, 197, 56, 65, 78, 55, 36, 81, 6, 109, 50, 72, 13, 50, 0, 10, 68, 76, 145, 197,
+			72, 89, 37, 34, 0, 11, 200, 21, 96, 80, 61, 32, 84, 61, 32, 20, 11, 200, 5, 4, 12, 36, 176, 84, 61, 32, 20, 11, 200, 77,
+			3, 206, 80, 19, 137, 77, 64, 20, 11, 200, 44, 19, 131, 20, 195, 9, 77, 64, 20, 11, 200, 33, 148, 15, 77, 64, 83, 21, 32, 20,
+			12, 137, 1, 6, 13, 195, 166, 7, 20, 9, 7, 20, 12, 201, 32, 145, 82, 60, 115, 25, 24, 148, 203, 20, 11, 200, 77, 147, 70, 60,
+			226, 75, 21, 32, 20, 11, 200, 20, 193, 75, 81, 34, 75, 21, 32, 20, 11, 200, 4, 224, 76, 101, 66, 75, 21, 32, 20, 11, 200, 4,
+			195, 5, 72, 114, 75, 21, 32, 20, 11, 200, 4, 176, 68, 20, 210, 75, 21, 32, 20, 7, 196, 88, 81, 193, 56, 20, 11, 200, 44, 243,
+			148, 72, 18, 5, 57, 64, 20, 11, 200, 32, 20, 193, 72, 65, 82, 21, 64, 20, 11, 200, 16, 84, 18, 36, 209, 82, 21, 64, 20, 0,
+			12, 201, 88, 145, 21, 56, 65, 82, 48, 145, 192, 20, 12, 201, 88, 81, 5, 72, 129, 70, 80, 145, 192, 20, 13, 138, 20, 9, 12, 2,
+			195, 184, 18, 12, 9, 7, 20, 12, 201, 77, 2, 68, 76, 98, 78, 16, 145, 192, 20, 13, 138, 15, 22, 5, 18, 4, 195, 165, 4, 9,
+			7, 20, 13, 138, 12, 195, 184, 7, 14, 1, 7, 20, 9, 7, 20, 13, 138, 6, 195, 184, 12, 7, 1, 7, 20, 9, 7, 20, 12, 201,
+			24, 244, 149, 56, 65, 82, 48, 145, 192, 20, 12, 201, 24, 244, 129, 56, 65, 82, 48, 145, 192, 20, 9, 198, 24, 147, 149, 72, 194, 71,
+			20, 13, 138, 5, 14, 4, 18, 195, 166, 7, 20, 9, 7, 20, 9, 198, 4, 101, 5, 56, 194, 71, 20, 8, 197, 81, 32, 71, 36, 176,
+			20, 8, 197, 8, 147, 206, 36, 176, 20, 8, 197, 16, 144, 68, 20, 208, 20, 13, 138, 12, 195, 184, 7, 14, 1, 7, 20, 9, 7, 20,
+			13, 138, 6, 195, 184, 12, 7, 1, 7, 20, 9, 7, 20, 12, 201, 32, 20, 140, 20, 178, 78, 4, 65, 64, 20, 10, 69, 72, 240, 68,
+			36, 80, 21, 0, 10, 0, 9, 198, 81, 32, 80, 64, 148, 212, 20, 13, 202, 64, 20, 148, 36, 181, 76, 5, 34, 83, 80, 20, 14, 139,
+			19, 5, 14, 4, 18, 195, 166, 7, 20, 9, 7, 20, 14, 139, 19, 1, 13, 4, 18, 195, 166, 7, 20, 9, 7, 20, 9, 198, 77, 65,
+			82, 60, 145, 0, 20, 12, 137, 16, 18, 195, 166, 12, 21, 4, 9, 5, 20, 9, 198, 52, 81, 193, 48, 149, 0, 20, 9, 198, 80, 84,
+			141, 36, 226, 64, 20, 9, 198, 28, 198, 80, 80, 146, 192, 20, 9, 198, 8, 245, 1, 56, 146, 192, 20, 9, 198, 64, 146, 197, 72, 85,
+			0, 20, 9, 198, 81, 32, 75, 80, 21, 0, 20, 9, 198, 72, 83, 211, 80, 21, 0, 20, 9, 198, 29, 32, 78, 84, 192, 84, 20, 9,
+			198, 5, 85, 15, 52, 21, 0, 20, 0, 9, 198, 81, 148, 15, 48, 241, 201, 20, 9, 198, 76, 84, 143, 48, 241, 201, 20, 9, 198, 4,
+			229, 15, 48, 241, 201, 20, 10, 199, 52, 82, 193, 56, 148, 197, 72, 20, 10, 199, 45, 85, 20, 21, 36, 137, 28, 20, 15, 204, 16, 148,
+			203, 72, 147, 73, 56, 21, 15, 72, 148, 203, 20, 10, 199, 57, 147, 70, 60, 208, 78, 36, 20, 10, 199, 32, 85, 82, 37, 53, 9, 44,
+			20, 12, 201, 81, 32, 78, 77, 97, 82, 76, 19, 0, 20, 11, 4, 95, 18, 14, 7, 34, 37, 50, 81, 0, 0, 11, 200, 4, 195, 5,
+			72, 115, 204, 60, 112, 20, 9, 198, 76, 179, 210, 64, 147, 206, 20, 11, 200, 64, 193, 84, 80, 84, 137, 56, 112, 20, 11, 200, 64, 17,
+			201, 56, 84, 137, 56, 112, 20, 11, 200, 60, 33, 21, 12, 84, 137, 56, 112, 20, 11, 200, 56, 21, 137, 28, 84, 137, 56, 112, 20, 11,
+			200, 45, 82, 143, 56, 84, 137, 56, 112, 20, 11, 200, 44, 20, 21, 56, 84, 137, 56, 112, 20, 11, 200, 36, 229, 15, 56, 84, 137, 56,
+			112, 20, 11, 200, 36, 225, 9, 44, 84, 137, 56, 112, 20, 11, 200, 36, 225, 9, 12, 84, 137, 56, 112, 20, 11, 200, 29, 34, 76, 48,
+			84, 137, 56, 112, 20, 11, 200, 28, 195, 211, 76, 84, 137, 56, 112, 20, 11, 200, 24, 192, 77, 8, 84, 137, 56, 112, 20, 11, 200, 16,
+			148, 137, 28, 84, 137, 56, 112, 20, 11, 200, 16, 85, 15, 56, 84, 137, 56, 112, 20, 11, 200, 16, 84, 15, 56, 84, 137, 56, 112, 20,
+			11, 200, 16, 82, 207, 72, 84, 137, 56, 112, 20, 11, 200, 4, 195, 15, 44, 84, 137, 56, 112, 20, 11, 200, 4, 33, 9, 12, 84, 137,
+			56, 112, 20, 12, 201, 88, 147, 132, 76, 178, 66, 20, 194, 71, 20, 11, 200, 80, 147, 7, 37, 97, 76, 36, 112, 20, 11, 200, 61, 1,
+			129, 81, 65, 76, 36, 112, 20, 11, 200, 61, 1, 18, 37, 97, 76, 36, 112, 20, 11, 200, 60, 208, 153, 81, 65, 76, 36, 112, 20, 16,
+			141, 14, 5, 4, 5, 18, 4, 18, 195, 166, 7, 20, 9, 7, 20, 16, 141, 7, 5, 14, 14, 5, 13, 6, 195, 184, 18, 12, 9, 7,
+			20, 12, 201, 24, 244, 141, 60, 65, 78, 80, 194, 71, 20, 9, 198, 44, 20, 18, 36, 243, 0, 20, 11, 200, 52, 19, 1, 8, 20, 137,
+			76, 176, 20, 7, 196, 60, 224, 78, 36, 20, 11, 200, 88, 84, 212, 4, 194, 78, 16, 80, 20, 11, 200, 16, 145, 212, 21, 34, 78, 16,
+			80, 20, 11, 200, 16, 148, 133, 45, 68, 137, 12, 80, 20, 0, 12, 201, 32, 83, 12, 20, 32, 82, 16, 148, 212, 20, 8, 197, 76, 20,
+			139, 60, 208, 20, 8, 197, 60, 194, 69, 72, 80, 20, 9, 198, 4, 68, 212, 4, 66, 71, 20, 12, 201, 45, 38, 83, 80, 19, 12, 60,
+			145, 0, 20, 8, 197, 4, 194, 217, 52, 144, 20, 12, 201, 28, 145, 193, 57, 67, 205, 4, 226, 64, 20, 12, 201, 64, 84, 137, 77, 64,
+			76, 80, 146, 192, 20, 12, 201, 16, 148, 212, 72, 18, 5, 72, 85, 0, 20, 0, 9, 198, 72, 145, 207, 72, 148, 212, 20, 9, 198, 32,
+			147, 132, 84, 148, 212, 20, 9, 198, 16, 148, 137, 28, 148, 212, 20, 9, 198, 21, 65, 82, 56, 149, 0, 20, 9, 198, 9, 35, 206, 44,
+			149, 0, 20, 9, 198, 52, 82, 193, 56, 146, 192, 20, 9, 198, 76, 178, 86, 28, 21, 0, 20, 9, 198, 64, 244, 212, 84, 192, 84, 20,
+			9, 198, 45, 96, 68, 72, 21, 0, 20, 9, 198, 44, 20, 130, 60, 224, 84, 20, 0, 14, 203, 77, 80, 138, 20, 181, 9, 88, 84, 137,
+			56, 112, 20, 14, 203, 76, 243, 9, 16, 20, 137, 76, 84, 137, 56, 112, 20, 14, 203, 76, 82, 213, 48, 20, 137, 76, 84, 137, 56, 112,
+			20, 14, 203, 72, 146, 207, 12, 129, 84, 80, 84, 137, 56, 112, 20, 14, 203, 72, 82, 207, 28, 227, 211, 12, 84, 137, 56, 112, 20, 14,
+			203, 65, 35, 212, 60, 179, 204, 48, 84, 137, 56, 112, 20, 14, 203, 64, 243, 25, 52, 84, 137, 76, 84, 137, 56, 112, 20, 14, 203, 64,
+			192, 83, 80, 145, 137, 12, 84, 137, 56, 112, 20, 14, 203, 45, 96, 78, 80, 145, 137, 12, 84, 137, 56, 112, 20, 14, 203, 44, 243, 139,
+			72, 85, 9, 76, 84, 137, 56, 112, 20, 14, 203, 44, 243, 12, 5, 66, 79, 56, 84, 137, 56, 112, 20, 14, 203, 44, 21, 5, 28, 244,
+			137, 76, 84, 137, 56, 112, 20, 14, 203, 36, 229, 5, 73, 1, 76, 48, 84, 137, 56, 112, 20, 14, 203, 36, 65, 78, 80, 145, 137, 12,
+			84, 137, 56, 112, 20, 14, 203, 32, 145, 82, 5, 34, 201, 76, 84, 137, 56, 112, 20, 14, 203, 29, 82, 76, 48, 245, 9, 56, 84, 137,
+			56, 112, 20, 14, 203, 16, 148, 195, 37, 3, 9, 56, 84, 137, 56, 112, 20, 14, 203, 12, 83, 148, 72, 145, 149, 28, 84, 137, 56, 112,
+			20, 10, 199, 64, 84, 148, 85, 32, 133, 72, 20, 14, 203, 36, 225, 140, 4, 211, 65, 80, 244, 137, 76, 176, 20, 14, 203, 5, 37, 9,
+			45, 83, 1, 80, 244, 137, 76, 176, 20, 9, 198, 28, 84, 149, 56, 66, 69, 20, 9, 198, 4, 197, 77, 36, 226, 69, 20, 9, 198, 4,
+			69, 133, 72, 34, 69, 20, 10, 199, 53, 82, 1, 52, 81, 1, 56, 20, 0, 23, 72, 88, 194, 69, 76, 83, 9, 56, 80, 83, 55, 37,
+			89, 13, 55, 6, 37, 12, 50, 13, 0, 20, 9, 198, 77, 66, 80, 84, 193, 82, 20, 9, 198, 64, 244, 212, 84, 193, 82, 20, 9, 198,
+			44, 243, 12, 36, 65, 82, 20, 9, 198, 36, 229, 5, 56, 65, 82, 20, 9, 198, 20, 194, 77, 36, 225, 82, 20, 9, 198, 4, 36, 207,
+			72, 33, 82, 20, 12, 201, 44, 243, 148, 36, 229, 69, 72, 194, 71, 20, 12, 201, 36, 225, 19, 80, 147, 12, 20, 194, 71, 20, 11, 200,
+			28, 83, 147, 81, 34, 68, 36, 112, 20, 11, 200, 24, 244, 129, 29, 65, 76, 36, 112, 20, 11, 200, 17, 83, 68, 72, 148, 212, 36, 112,
+			20, 11, 200, 5, 4, 5, 80, 149, 12, 36, 112, 20, 11, 200, 56, 84, 1, 48, 84, 201, 76, 176, 20, 12, 137, 195, 184, 11, 21, 13,
+			5, 14, 9, 11, 20, 19, 70, 48, 19, 147, 20, 225, 82, 55, 110, 50, 89, 13, 50, 6, 36, 34, 0, 20, 0, 12, 201, 72, 80, 197,
+			65, 66, 79, 56, 148, 212, 20, 12, 201, 44, 192, 82, 36, 225, 84, 80, 148, 212, 20, 9, 198, 32, 147, 132, 84, 148, 203, 20, 12, 201,
+			20, 208, 78, 12, 148, 5, 72, 85, 0, 20, 0, 9, 198, 5, 69, 18, 36, 37, 84, 20, 9, 198, 88, 148, 135, 36, 224, 76, 20, 9,
+			198, 44, 19, 142, 36, 32, 76, 20, 0, 10, 199, 24, 243, 9, 21, 34, 78, 28, 20, 10, 199, 17, 32, 80, 21, 34, 78, 28, 20, 10,
+			199, 32, 244, 148, 20, 228, 201, 20, 20, 14, 203, 24, 244, 147, 80, 19, 132, 21, 34, 78, 16, 80, 20, 0, 17, 70, 48, 81, 197, 56,
+			65, 82, 55, 36, 81, 6, 109, 50, 72, 114, 0, 9, 198, 88, 16, 195, 36, 225, 82, 20, 9, 198, 81, 32, 78, 12, 129, 82, 20, 9,
+			198, 65, 35, 208, 60, 225, 82, 20, 9, 198, 65, 35, 205, 20, 225, 82, 20, 9, 198, 44, 243, 80, 36, 193, 82, 20, 9, 198, 29, 32,
+			78, 84, 193, 82, 20, 9, 198, 24, 20, 195, 36, 225, 82, 20, 9, 198, 4, 68, 207, 72, 33, 82, 20, 12, 201, 88, 145, 84, 56, 19,
+			69, 76, 148, 203, 20, 12, 201, 64, 84, 137, 77, 64, 76, 80, 148, 203, 20, 7, 196, 76, 83, 73, 80, 20, 10, 135, 12, 195, 166, 11,
+			1, 7, 5, 20, 0, 16, 141, 16, 18, 195, 166, 6, 5, 18, 5, 14, 20, 9, 5, 12, 20, 9, 198, 4, 196, 193, 12, 148, 203, 20,
+			0, 11, 5, 15, 7, 19, 195, 165, 114, 89, 13, 0, 9, 198, 76, 19, 13, 37, 53, 0, 20, 9, 198, 20, 194, 84, 37, 53, 0, 20,
+			13, 202, 65, 35, 199, 72, 19, 77, 21, 34, 78, 28, 20, 0, 10, 199, 16, 80, 197, 56, 226, 85, 52, 20, 10, 199, 77, 64, 76, 4,
+			115, 73, 80, 20, 10, 199, 61, 33, 193, 56, 148, 205, 20, 20, 10, 199, 52, 82, 193, 56, 148, 205, 20, 20, 10, 199, 48, 18, 207, 56,
+			148, 205, 20, 20, 10, 199, 24, 83, 73, 56, 148, 205, 20, 20, 10, 199, 4, 196, 9, 56, 148, 205, 20, 20, 10, 199, 16, 148, 208, 20,
+			228, 193, 80, 20, 10, 199, 52, 17, 201, 77, 68, 129, 48, 20, 0, 13, 68, 56, 241, 197, 56, 50, 6, 39, 12, 14, 50, 0, 9, 198,
+			36, 195, 21, 76, 147, 206, 20, 9, 198, 4, 195, 21, 76, 147, 206, 20, 7, 196, 72, 81, 197, 72, 20, 7, 196, 48, 81, 197, 72, 20,
+			12, 201, 76, 83, 133, 28, 19, 5, 76, 148, 203, 20, 12, 201, 20, 180, 197, 53, 3, 1, 72, 148, 203, 20, 12, 201, 4, 69, 143, 44,
+			21, 15, 72, 148, 203, 20, 9, 198, 64, 20, 129, 29, 32, 70, 20, 7, 196, 88, 81, 193, 72, 20, 0, 16, 69, 24, 192, 75, 60, 224,
+			83, 55, 110, 49, 6, 114, 68, 0, 20, 16, 205, 20, 226, 5, 17, 50, 207, 52, 208, 84, 21, 34, 78, 28, 20, 12, 137, 18, 195, 184,
+			4, 2, 25, 14, 9, 20, 20, 8, 197, 80, 19, 142, 36, 224, 20, 8, 197, 52, 244, 134, 36, 224, 20, 8, 197, 4, 211, 210, 36, 224,
+			20, 8, 197, 29, 32, 67, 36, 192, 20, 8, 197, 25, 32, 71, 36, 192, 20, 8, 197, 81, 35, 202, 4, 224, 20, 8, 197, 72, 16, 130,
+			36, 224, 20, 0, 13, 202, 80, 245, 1, 48, 149, 1, 72, 148, 205, 20, 20, 13, 202, 44, 243, 147, 60, 224, 78, 80, 148, 205, 20, 20,
+			13, 202, 44, 243, 134, 84, 50, 65, 56, 148, 205, 20, 20, 13, 202, 16, 147, 5, 81, 64, 78, 80, 148, 205, 20, 20, 13, 202, 5, 96,
+			78, 80, 112, 82, 16, 148, 205, 20, 20, 0, 21, 71, 5, 80, 133, 72, 114, 78, 20, 39, 71, 36, 34, 91, 6, 37, 12, 50, 13, 0,
+			20, 10, 199, 64, 84, 141, 37, 69, 5, 72, 20, 10, 199, 44, 243, 16, 61, 37, 5, 72, 20, 9, 198, 17, 80, 200, 21, 52, 197, 20,
+			0, 13, 68, 4, 193, 78, 20, 110, 55, 6, 36, 50, 13, 0, 11, 200, 4, 36, 207, 73, 5, 9, 60, 224, 20, 9, 198, 81, 148, 15,
+			29, 32, 70, 20, 9, 198, 8, 20, 143, 29, 32, 70, 20, 7, 196, 60, 49, 65, 56, 21, 11, 136, 6, 195, 184, 4, 5, 18, 1, 12,
+			20, 0, 8, 197, 52, 148, 211, 36, 192, 20, 0, 9, 198, 45, 38, 83, 60, 194, 84, 20, 0, 12, 201, 77, 80, 147, 45, 34, 80, 80,
+			147, 206, 20, 10, 199, 72, 82, 133, 45, 66, 79, 56, 20, 12, 201, 65, 35, 211, 45, 34, 80, 80, 147, 206, 20, 10, 199, 36, 229, 133,
+			57, 66, 79, 56, 20, 10, 199, 16, 145, 197, 77, 66, 79, 56, 20, 10, 199, 16, 85, 137, 5, 66, 79, 56, 20, 10, 199, 88, 147, 132,
+			36, 176, 78, 80, 20, 0, 11, 200, 8, 144, 140, 36, 244, 203, 61, 0, 20, 9, 198, 5, 52, 197, 77, 51, 210, 20, 11, 200, 44, 244,
+			146, 85, 5, 9, 60, 224, 20, 11, 200, 16, 148, 208, 21, 36, 201, 60, 224, 20, 11, 200, 4, 229, 9, 24, 80, 146, 36, 224, 20, 0,
+			8, 197, 72, 82, 212, 61, 32, 20, 8, 197, 24, 18, 212, 61, 32, 20, 8, 197, 80, 18, 211, 21, 32, 20, 8, 197, 48, 18, 211, 21,
+			32, 20, 0, 13, 202, 52, 19, 137, 24, 84, 212, 5, 66, 79, 56, 20, 9, 198, 64, 192, 78, 21, 33, 64, 20, 9, 198, 48, 147, 138,
+			21, 33, 64, 20, 9, 198, 28, 20, 142, 21, 33, 64, 20, 9, 198, 8, 20, 130, 21, 33, 64, 20, 18, 4, 95, 1, 3, 50, 72, 114,
+			13, 55, 35, 49, 57, 6, 40, 12, 47, 0, 0, 10, 199, 52, 244, 134, 36, 226, 83, 80, 20, 10, 199, 80, 16, 149, 21, 34, 78, 28,
+			20, 6, 195, 61, 96, 76, 20, 9, 198, 48, 147, 79, 56, 17, 5, 20, 0, 11, 200, 36, 226, 214, 37, 50, 84, 61, 32, 20, 11, 200,
+			52, 85, 1, 48, 194, 83, 21, 32, 20, 11, 200, 52, 20, 203, 36, 226, 83, 21, 32, 20, 11, 200, 32, 20, 141, 60, 226, 83, 21, 32,
+			20, 11, 200, 24, 197, 79, 72, 84, 195, 21, 32, 20, 11, 200, 8, 19, 11, 4, 226, 83, 21, 32, 20, 9, 198, 48, 144, 133, 73, 66,
+			78, 20, 0, 8, 197, 45, 35, 203, 21, 32, 20, 8, 197, 28, 192, 83, 21, 32, 20, 8, 197, 16, 244, 211, 21, 32, 20, 12, 201, 16,
+			149, 137, 76, 147, 206, 21, 33, 64, 20, 12, 201, 61, 97, 82, 76, 145, 212, 48, 145, 192, 20, 8, 197, 36, 228, 85, 37, 64, 20, 12,
+			201, 64, 21, 18, 36, 245, 9, 76, 209, 64, 20, 9, 198, 16, 145, 1, 45, 66, 75, 20, 0, 9, 198, 48, 82, 212, 85, 33, 64, 20,
+			9, 198, 80, 18, 212, 21, 33, 64, 20, 9, 198, 77, 3, 204, 21, 33, 64, 20, 9, 198, 76, 243, 132, 21, 33, 64, 20, 9, 198, 45,
+			99, 212, 21, 33, 64, 20, 9, 198, 28, 20, 132, 21, 33, 64, 20, 9, 198, 8, 20, 132, 21, 33, 64, 20, 9, 198, 44, 193, 82, 36,
+			176, 76, 20, 0, 10, 199, 64, 241, 1, 29, 34, 83, 80, 20, 10, 199, 52, 243, 143, 80, 82, 83, 80, 20, 10, 199, 45, 83, 20, 85,
+			34, 83, 80, 20, 10, 199, 44, 243, 148, 61, 34, 83, 80, 20, 10, 199, 21, 128, 197, 73, 2, 83, 80, 20, 10, 199, 16, 81, 129, 37,
+			66, 83, 80, 20, 10, 199, 8, 20, 143, 56, 84, 211, 20, 20, 14, 203, 77, 97, 78, 16, 35, 210, 28, 83, 147, 21, 32, 20, 14, 203,
+			76, 147, 11, 20, 35, 210, 28, 83, 147, 21, 32, 20, 14, 203, 52, 20, 137, 4, 113, 82, 28, 83, 147, 21, 32, 20, 0, 31, 68, 84,
+			226, 79, 56, 57, 40, 50, 57, 108, 50, 15, 89, 47, 36, 37, 89, 57, 13, 50, 0, 81, 115, 116, 97, 116, 105, 111, 110, 32, 11, 200,
+			88, 83, 148, 36, 192, 84, 61, 32, 20, 11, 200, 81, 32, 78, 76, 148, 212, 61, 32, 20, 11, 200, 61, 48, 201, 48, 192, 84, 61, 32,
+			20, 11, 200, 48, 146, 214, 36, 64, 84, 61, 32, 20, 11, 200, 36, 226, 193, 77, 48, 84, 61, 32, 20, 7, 196, 84, 226, 79, 56, 20,
+			11, 200, 72, 82, 212, 36, 98, 67, 21, 32, 20, 11, 200, 52, 244, 148, 36, 98, 67, 21, 32, 20, 7, 196, 48, 241, 197, 72, 20, 11,
+			200, 44, 243, 77, 84, 226, 67, 21, 32, 20, 11, 200, 24, 244, 148, 36, 98, 67, 21, 32, 20, 11, 200, 12, 84, 148, 36, 98, 67, 21,
+			32, 20, 7, 196, 73, 80, 137, 56, 20, 15, 204, 4, 229, 18, 61, 3, 205, 61, 33, 137, 76, 209, 64, 20, 9, 198, 52, 147, 133, 72,
+			19, 0, 20, 9, 198, 28, 83, 133, 72, 19, 0, 20, 0, 12, 201, 81, 34, 85, 52, 97, 82, 36, 225, 192, 20, 12, 201, 77, 66, 80,
+			84, 193, 82, 36, 225, 192, 20, 12, 201, 76, 82, 213, 56, 65, 82, 36, 225, 192, 20, 12, 201, 76, 80, 197, 72, 225, 82, 36, 225, 192,
+			20, 12, 201, 72, 85, 1, 8, 193, 82, 36, 225, 192, 20, 12, 201, 64, 83, 132, 84, 193, 82, 36, 225, 192, 20, 12, 201, 44, 240, 71,
+			84, 193, 82, 36, 225, 192, 20, 12, 201, 44, 20, 197, 72, 225, 82, 36, 225, 192, 20, 12, 201, 44, 19, 85, 24, 193, 82, 36, 225, 192,
+			20, 12, 201, 36, 227, 203, 84, 193, 82, 36, 225, 192, 20, 12, 201, 32, 20, 131, 20, 193, 82, 36, 225, 192, 20, 12, 201, 20, 194, 77,
+			36, 225, 82, 36, 225, 192, 20, 12, 201, 16, 85, 1, 12, 129, 82, 36, 225, 192, 20, 12, 201, 12, 148, 139, 84, 193, 82, 36, 225, 192,
+			20, 12, 201, 4, 36, 207, 72, 33, 82, 36, 225, 192, 20, 12, 201, 44, 21, 1, 65, 83, 20, 21, 33, 64, 20, 12, 201, 25, 32, 71,
+			52, 83, 148, 21, 33, 64, 20, 12, 201, 8, 19, 132, 21, 35, 204, 21, 33, 64, 20, 15, 140, 195, 166, 19, 20, 5, 20, 9, 3, 9,
+			19, 13, 5, 20, 8, 197, 45, 84, 129, 28, 80, 20, 0, 9, 198, 48, 21, 9, 56, 148, 212, 20, 9, 198, 44, 243, 15, 72, 148, 212,
+			20, 9, 198, 8, 18, 83, 76, 148, 212, 20, 9, 198, 73, 81, 134, 21, 34, 64, 20, 9, 198, 40, 240, 130, 21, 34, 64, 20, 9, 198,
+			28, 20, 150, 21, 34, 64, 20, 9, 198, 76, 18, 211, 37, 50, 192, 20, 9, 198, 37, 64, 76, 37, 50, 192, 20, 9, 198, 32, 84, 143,
+			37, 50, 192, 20, 9, 198, 33, 145, 18, 61, 130, 68, 20, 9, 198, 77, 147, 70, 60, 226, 64, 20, 9, 198, 16, 84, 137, 88, 21, 0,
+			20, 9, 198, 4, 69, 143, 44, 21, 0, 20, 5, 131, 239, 187, 191, 0, 6, 195, 53, 34, 64, 17, 11, 136, 19, 16, 1, 20, 9, 195,
+			184, 19, 20, 12, 137, 9, 14, 20, 5, 18, 9, 195, 184, 18, 20, 9, 198, 76, 147, 143, 48, 241, 201, 20, 9, 198, 24, 243, 143, 48,
+			241, 201, 20, 10, 199, 64, 16, 201, 24, 144, 197, 72, 20, 10, 199, 44, 243, 15, 56, 148, 197, 72, 20, 10, 199, 36, 70, 76, 48, 148,
+			197, 72, 20, 10, 199, 20, 180, 208, 61, 37, 5, 72, 20, 10, 199, 8, 245, 1, 56, 148, 197, 72, 20, 9, 198, 8, 18, 212, 21, 34,
+			69, 20, 9, 198, 32, 84, 130, 5, 34, 69, 20, 0, 12, 137, 1, 13, 2, 9, 20, 9, 195, 184, 19, 20, 11, 200, 25, 32, 83, 20,
+			243, 15, 28, 144, 20, 15, 204, 84, 67, 65, 81, 34, 75, 84, 193, 82, 36, 225, 192, 20, 15, 204, 77, 80, 150, 20, 229, 9, 60, 225,
+			82, 36, 225, 192, 20, 15, 204, 65, 35, 208, 61, 37, 9, 60, 225, 82, 36, 225, 192, 20, 11, 200, 45, 98, 84, 80, 84, 137, 56, 112,
+			20, 11, 200, 40, 243, 137, 76, 84, 137, 56, 112, 20, 9, 198, 64, 20, 148, 36, 83, 0, 20, 7, 196, 80, 83, 210, 36, 20, 11, 200,
+			32, 84, 148, 84, 113, 76, 36, 112, 20, 9, 198, 52, 85, 1, 56, 243, 0, 20, 11, 200, 45, 33, 84, 20, 228, 201, 76, 176, 20, 11,
+			200, 52, 83, 79, 72, 19, 132, 84, 208, 20, 11, 200, 45, 33, 83, 80, 243, 65, 80, 144, 20, 20, 68, 12, 129, 67, 44, 47, 57, 109,
+			49, 6, 37, 50, 0, 44, 20, 81, 105, 110, 32, 11, 200, 45, 96, 68, 72, 241, 143, 56, 144, 20, 11, 200, 89, 83, 7, 5, 34, 83,
+			52, 80, 20, 11, 200, 88, 246, 69, 85, 34, 83, 52, 80, 20, 11, 200, 77, 2, 82, 37, 66, 83, 52, 80, 20, 11, 200, 76, 84, 137,
+			4, 194, 83, 52, 80, 20, 11, 200, 76, 82, 212, 21, 34, 83, 52, 80, 20, 11, 200, 72, 243, 65, 57, 66, 83, 52, 80, 20, 11, 200,
+			65, 34, 86, 5, 66, 83, 52, 80, 20, 11, 200, 60, 178, 213, 49, 66, 83, 52, 80, 20, 11, 200, 52, 19, 137, 21, 34, 83, 52, 80,
+			20, 11, 200, 8, 20, 130, 5, 34, 83, 52, 80, 20, 11, 200, 77, 147, 132, 21, 34, 78, 16, 80, 20, 7, 196, 77, 81, 1, 56, 20,
+			7, 196, 77, 81, 1, 56, 21, 9, 198, 72, 17, 9, 44, 19, 0, 20, 0, 12, 201, 44, 244, 205, 21, 67, 204, 60, 114, 64, 20, 12,
+			201, 21, 99, 204, 85, 66, 79, 56, 148, 212, 20, 8, 197, 4, 180, 201, 60, 208, 20, 14, 139, 4, 5, 6, 195, 166, 11, 1, 20, 9,
+			15, 14, 20, 9, 198, 16, 83, 1, 29, 66, 71, 20, 12, 201, 77, 147, 80, 5, 65, 84, 37, 50, 192, 20, 12, 201, 65, 35, 212, 61,
+			70, 80, 37, 50, 192, 20, 12, 201, 56, 84, 15, 80, 148, 212, 37, 50, 192, 20, 12, 201, 52, 85, 15, 16, 148, 212, 37, 50, 192, 20,
+			12, 201, 52, 84, 143, 88, 147, 135, 37, 50, 192, 20, 12, 201, 45, 144, 133, 72, 225, 84, 37, 50, 192, 20, 12, 201, 32, 84, 146, 56,
+			133, 84, 37, 50, 192, 20, 12, 201, 12, 243, 135, 60, 193, 83, 37, 50, 192, 20, 12, 201, 12, 86, 76, 60, 225, 83, 37, 50, 192, 20,
+			12, 201, 5, 3, 208, 48, 82, 212, 37, 50, 192, 20, 12, 201, 4, 224, 75, 60, 197, 84, 37, 50, 192, 20, 8, 197, 80, 81, 5, 84,
+			208, 20, 6, 195, 85, 34, 78, 20, 8, 197, 8, 145, 193, 52, 144, 20, 12, 201, 65, 35, 204, 21, 64, 82, 36, 21, 0, 20, 9, 198,
+			16, 83, 1, 29, 66, 71, 20, 0, 9, 198, 64, 16, 201, 24, 148, 212, 20, 14, 139, 8, 195, 165, 14, 4, 20, 5, 18, 9, 14, 7,
+			20, 9, 198, 53, 149, 20, 21, 34, 64, 20, 9, 198, 53, 148, 132, 21, 34, 64, 20, 9, 198, 48, 81, 140, 21, 34, 64, 20, 9, 198,
+			44, 243, 9, 9, 34, 64, 20, 9, 198, 24, 145, 140, 21, 34, 64, 20, 9, 198, 8, 20, 130, 5, 34, 64, 20, 9, 198, 76, 20, 6,
+			37, 50, 192, 20, 9, 198, 52, 244, 193, 37, 50, 192, 20, 9, 198, 5, 32, 66, 37, 50, 192, 20, 9, 198, 45, 84, 5, 72, 85, 0,
+			20, 9, 198, 4, 180, 143, 8, 21, 0, 20, 0, 10, 199, 12, 83, 148, 85, 34, 79, 56, 20, 15, 140, 16, 18, 195, 166, 3, 9, 19,
+			5, 18, 9, 14, 7, 20, 14, 203, 12, 83, 148, 72, 19, 9, 76, 84, 137, 56, 112, 20, 10, 199, 44, 243, 139, 49, 81, 5, 72, 20,
+			10, 199, 5, 4, 12, 5, 81, 5, 72, 20, 14, 203, 33, 145, 18, 60, 83, 5, 45, 68, 137, 76, 176, 20, 9, 198, 56, 82, 212, 5,
+			34, 69, 20, 14, 203, 76, 17, 15, 52, 20, 207, 12, 130, 83, 52, 80, 20, 14, 203, 65, 35, 214, 36, 228, 201, 4, 194, 83, 52, 80,
+			20, 14, 203, 52, 19, 20, 33, 84, 201, 4, 226, 83, 52, 80, 20, 14, 203, 44, 243, 77, 84, 226, 84, 5, 34, 83, 52, 80, 20, 14,
+			203, 24, 192, 71, 20, 195, 1, 57, 66, 83, 52, 80, 20, 14, 203, 9, 84, 133, 5, 82, 210, 5, 66, 83, 52, 80, 20, 14, 203, 9,
+			32, 78, 16, 84, 201, 4, 226, 83, 52, 80, 20, 14, 203, 5, 34, 83, 80, 242, 210, 5, 66, 83, 52, 80, 20, 24, 4, 95, 53, 88,
+			15, 107, 110, 55, 47, 16, 6, 109, 89, 36, 50, 89, 47, 116, 84, 13, 50, 13, 0, 0, 9, 198, 80, 20, 212, 5, 69, 82, 20, 9,
+			198, 77, 68, 137, 45, 69, 82, 20, 13, 138, 16, 18, 15, 10, 5, 11, 20, 195, 184, 18, 20, 13, 138, 11, 15, 14, 4, 21, 11, 20,
+			195, 184, 18, 20, 11, 200, 60, 67, 206, 80, 243, 15, 28, 144, 20, 11, 200, 60, 49, 65, 56, 243, 15, 28, 144, 20, 11, 200, 24, 83,
+			73, 56, 243, 15, 28, 144, 20, 16, 141, 195, 166, 11, 22, 9, 22, 1, 12, 5, 18, 9, 14, 7, 20, 9, 198, 52, 20, 141, 61, 33,
+			82, 20, 9, 198, 29, 32, 84, 84, 193, 82, 20, 9, 198, 20, 180, 208, 60, 225, 82, 20, 9, 198, 20, 180, 201, 77, 65, 82, 20, 9,
+			198, 16, 148, 208, 60, 225, 82, 20, 11, 200, 77, 145, 22, 21, 53, 12, 36, 112, 20, 11, 200, 61, 4, 21, 77, 65, 76, 36, 112, 20,
+			18, 70, 9, 83, 12, 21, 66, 78, 71, 116, 55, 13, 47, 6, 109, 68, 0, 20, 11, 200, 45, 38, 80, 80, 241, 193, 52, 144, 20, 9,
+			198, 5, 81, 213, 77, 66, 78, 20, 7, 196, 72, 81, 193, 48, 20, 7, 196, 36, 65, 65, 48, 20, 0, 12, 201, 44, 243, 12, 20, 181,
+			9, 88, 148, 212, 20, 14, 139, 16, 18, 195, 166, 19, 20, 1, 20, 9, 15, 14, 20, 12, 201, 72, 17, 134, 36, 224, 68, 21, 34, 64,
+			20, 12, 201, 97, 147, 15, 29, 32, 70, 37, 50, 192, 20, 12, 201, 96, 84, 143, 29, 32, 70, 37, 50, 192, 20, 12, 201, 81, 148, 15,
+			29, 32, 70, 37, 50, 192, 20, 12, 201, 80, 244, 15, 29, 32, 70, 37, 50, 192, 20, 12, 201, 80, 243, 79, 29, 32, 70, 37, 50, 192,
+			20, 12, 201, 80, 83, 5, 29, 32, 70, 37, 50, 192, 20, 12, 201, 77, 84, 5, 73, 51, 206, 37, 50, 192, 20, 12, 201, 65, 148, 143,
+			80, 82, 206, 37, 50, 192, 20, 12, 201, 61, 37, 15, 29, 32, 70, 37, 50, 192, 20, 12, 201, 56, 243, 79, 29, 32, 70, 37, 50, 192,
+			20, 12, 201, 53, 83, 20, 36, 85, 14, 37, 50, 192, 20, 12, 201, 52, 243, 143, 29, 32, 70, 37, 50, 192, 20, 12, 201, 48, 149, 15,
+			29, 32, 70, 37, 50, 192, 20, 12, 201, 45, 38, 79, 80, 82, 206, 37, 50, 192, 20, 9, 198, 44, 243, 5, 72, 148, 203, 20, 12, 201,
+			44, 83, 73, 29, 32, 70, 37, 50, 192, 20, 12, 201, 36, 65, 79, 29, 32, 70, 37, 50, 192, 20, 12, 201, 32, 243, 15, 29, 32, 70,
+			37, 50, 192, 20, 12, 201, 24, 245, 15, 29, 32, 70, 37, 50, 192, 20, 12, 201, 24, 243, 143, 29, 32, 70, 37, 50, 192, 20, 12, 201,
+			21, 67, 143, 29, 32, 70, 37, 50, 192, 20, 12, 201, 16, 83, 79, 29, 32, 70, 37, 50, 192, 20, 12, 201, 8, 20, 143, 52, 85, 18,
+			37, 50, 192, 20, 12, 201, 5, 85, 15, 29, 32, 70, 37, 50, 192, 20, 12, 201, 9, 84, 133, 5, 82, 210, 5, 66, 64, 20, 9, 198,
+			77, 147, 70, 60, 226, 75, 20, 6, 195, 37, 32, 78, 20, 0, 9, 198, 80, 131, 205, 37, 53, 0, 20, 9, 198, 56, 18, 86, 37, 65,
+			84, 20, 12, 201, 16, 242, 213, 52, 83, 148, 5, 34, 69, 20, 9, 198, 56, 244, 141, 4, 227, 128, 20, 9, 198, 8, 18, 203, 4, 224,
+			76, 20, 0, 10, 199, 64, 20, 211, 21, 34, 78, 28, 20, 10, 199, 25, 32, 83, 21, 34, 78, 28, 20, 10, 199, 9, 37, 78, 21, 34,
+			78, 28, 20, 10, 199, 8, 195, 203, 21, 34, 78, 28, 20, 14, 203, 20, 101, 5, 73, 68, 153, 44, 177, 76, 36, 112, 20, 12, 201, 20,
+			115, 195, 20, 229, 18, 36, 177, 82, 20, 16, 141, 19, 11, 195, 166, 12, 19, 11, 195, 184, 18, 9, 1, 14, 20, 0, 9, 198, 81, 37,
+			66, 4, 69, 82, 20, 7, 196, 20, 193, 71, 36, 20, 9, 198, 77, 84, 16, 60, 225, 82, 20, 9, 198, 72, 82, 214, 37, 33, 82, 20,
+			9, 198, 72, 81, 149, 56, 65, 82, 20, 9, 198, 52, 243, 5, 77, 65, 82, 20, 9, 198, 12, 130, 75, 4, 225, 82, 20, 9, 198, 4,
+			227, 133, 45, 65, 82, 20, 9, 198, 4, 178, 214, 37, 33, 82, 20, 12, 201, 85, 53, 82, 64, 21, 15, 72, 148, 203, 20, 12, 201, 76,
+			82, 83, 52, 243, 15, 28, 148, 203, 20, 12, 201, 52, 243, 9, 56, 243, 15, 28, 148, 203, 20, 15, 204, 44, 147, 133, 52, 21, 15, 29,
+			32, 70, 37, 50, 192, 20, 15, 204, 32, 148, 212, 61, 34, 79, 29, 32, 70, 37, 50, 192, 20, 7, 196, 80, 147, 73, 16, 20, 9, 198,
+			64, 244, 212, 20, 194, 78, 20, 9, 198, 32, 20, 140, 20, 178, 78, 20, 9, 198, 20, 225, 15, 45, 34, 78, 20, 11, 70, 72, 80, 197,
+			37, 97, 82, 21, 0, 10, 0, 9, 198, 5, 53, 18, 60, 195, 199, 20, 12, 201, 76, 147, 85, 49, 64, 78, 37, 65, 84, 20, 12, 201,
+			72, 80, 197, 65, 66, 86, 37, 65, 84, 20, 12, 201, 65, 34, 77, 37, 66, 86, 37, 65, 84, 20, 12, 201, 60, 34, 133, 45, 66, 86,
+			37, 65, 84, 20, 12, 201, 20, 97, 133, 45, 66, 86, 37, 65, 84, 20, 9, 198, 36, 65, 78, 80, 148, 203, 20, 9, 198, 21, 81, 197,
+			56, 148, 203, 20, 9, 198, 76, 83, 73, 61, 66, 75, 20, 0, 9, 198, 20, 112, 76, 37, 65, 84, 20, 13, 202, 80, 82, 206, 36, 98,
+			67, 21, 34, 78, 28, 20, 18, 143, 6, 195, 184, 4, 5, 18, 1, 12, 9, 19, 5, 18, 9, 14, 7, 20, 13, 202, 5, 85, 15, 44,
+			192, 86, 21, 34, 78, 28, 20, 0, 9, 198, 52, 243, 143, 29, 32, 77, 20, 9, 198, 36, 65, 79, 29, 32, 77, 20, 12, 137, 18, 195,
+			166, 19, 15, 14, 14, 5, 18, 20, 10, 199, 80, 245, 5, 52, 148, 205, 20, 20, 10, 199, 64, 19, 148, 20, 148, 205, 20, 20, 10, 199,
+			32, 81, 15, 56, 148, 205, 20, 20, 10, 199, 4, 192, 137, 56, 148, 205, 20, 20, 10, 199, 52, 17, 201, 77, 68, 129, 80, 20, 0, 12,
+			201, 72, 81, 140, 20, 181, 15, 72, 148, 203, 20, 12, 201, 44, 243, 77, 37, 52, 193, 72, 148, 203, 20, 12, 201, 16, 149, 137, 56, 21,
+			15, 72, 148, 203, 20, 7, 196, 44, 19, 73, 44, 20, 9, 198, 24, 243, 143, 29, 32, 70, 20, 0, 8, 197, 12, 149, 18, 60, 224, 20,
+			12, 201, 36, 225, 129, 57, 66, 76, 37, 65, 84, 20, 8, 197, 76, 19, 79, 4, 224, 20, 12, 201, 16, 148, 212, 36, 225, 214, 21, 33,
+			84, 20, 0, 13, 202, 53, 82, 1, 52, 81, 1, 56, 148, 205, 20, 20, 13, 202, 52, 84, 139, 4, 229, 9, 48, 148, 205, 20, 20, 13,
+			202, 37, 51, 204, 5, 66, 79, 56, 148, 205, 20, 20, 0, 17, 70, 8, 84, 131, 21, 84, 197, 71, 109, 34, 89, 118, 12, 89, 0, 66,
+			10, 199, 72, 84, 208, 60, 225, 5, 72, 20, 10, 199, 64, 148, 149, 21, 69, 5, 72, 20, 10, 199, 16, 148, 12, 60, 208, 84, 36, 20,
+			10, 199, 5, 85, 15, 45, 32, 84, 36, 20, 12, 201, 24, 195, 206, 20, 195, 15, 29, 32, 70, 20, 10, 199, 76, 82, 213, 56, 64, 78,
+			80, 20, 10, 199, 72, 81, 21, 56, 64, 78, 80, 20, 0, 11, 200, 36, 229, 5, 72, 97, 82, 60, 224, 20, 9, 198, 81, 34, 76, 48,
+			147, 206, 20, 9, 198, 4, 64, 80, 80, 147, 206, 20, 15, 204, 65, 35, 208, 61, 37, 9, 60, 224, 76, 37, 65, 84, 20, 11, 200, 5,
+			84, 212, 72, 19, 9, 20, 224, 20, 9, 198, 76, 84, 137, 29, 32, 70, 20, 11, 200, 64, 20, 129, 16, 242, 211, 4, 192, 20, 0, 15,
+			140, 19, 20, 195, 184, 11, 9, 15, 13, 5, 20, 18, 9, 20, 8, 197, 64, 84, 19, 36, 224, 20, 16, 205, 36, 229, 5, 72, 224, 84,
+			36, 243, 129, 48, 148, 205, 20, 20, 8, 197, 24, 148, 211, 36, 192, 20, 12, 201, 36, 229, 5, 72, 97, 82, 20, 228, 192, 20, 10, 2,
+			195, 151, 81, 6, 35, 68, 36, 0, 0, 13, 202, 45, 34, 77, 36, 224, 76, 37, 53, 9, 44, 20, 0, 10, 199, 81, 32, 86, 21, 53,
+			5, 72, 20, 10, 199, 64, 84, 147, 37, 53, 5, 72, 20, 10, 199, 44, 242, 78, 12, 145, 5, 72, 20, 10, 199, 20, 180, 212, 73, 81,
+			5, 72, 20, 17, 4, 95, 19, 13, 3, 89, 65, 6, 113, 12, 55, 49, 4, 35, 48, 0, 5, 130, 196, 141, 43, 0, 11, 200, 80, 83,
+			132, 20, 229, 9, 20, 192, 20, 11, 200, 80, 19, 135, 20, 229, 9, 20, 192, 20, 0, 8, 197, 88, 243, 20, 21, 32, 20, 8, 197, 64,
+			19, 16, 21, 32, 20, 8, 197, 20, 213, 76, 21, 32, 20, 9, 198, 16, 243, 69, 77, 66, 75, 20, 8, 197, 72, 16, 137, 5, 64, 20,
+			0, 13, 202, 36, 225, 9, 77, 3, 211, 37, 66, 79, 56, 20, 9, 198, 73, 82, 78, 21, 33, 64, 20, 9, 198, 20, 193, 86, 21, 33,
+			64, 20, 0, 9, 198, 72, 85, 9, 72, 17, 5, 20, 9, 198, 48, 83, 79, 56, 17, 5, 20, 0, 19, 5, 6, 46, 5, 11, 19, 83,
+			114, 36, 81, 89, 36, 65, 48, 13, 55, 0, 25, 11, 200, 52, 21, 18, 36, 181, 76, 21, 32, 20, 11, 200, 8, 20, 146, 36, 176, 68,
+			21, 32, 20, 12, 201, 88, 20, 207, 52, 245, 15, 72, 148, 203, 20, 12, 201, 8, 243, 19, 40, 85, 137, 44, 148, 203, 20, 9, 198, 56,
+			82, 212, 5, 34, 78, 20, 9, 198, 48, 148, 9, 105, 160, 78, 20, 15, 140, 195, 166, 11, 22, 9, 4, 9, 19, 20, 1, 14, 20, 20,
+			0, 8, 197, 77, 64, 84, 85, 32, 20, 12, 201, 64, 244, 201, 80, 147, 206, 21, 33, 64, 20, 8, 197, 61, 134, 68, 21, 32, 20, 8,
+			197, 61, 130, 68, 21, 32, 20, 8, 197, 52, 21, 20, 21, 32, 20, 8, 197, 37, 51, 204, 21, 32, 20, 12, 201, 25, 83, 139, 80, 147,
+			206, 21, 33, 64, 20, 12, 201, 25, 32, 75, 80, 147, 206, 21, 33, 64, 20, 8, 197, 21, 2, 76, 21, 32, 20, 12, 201, 4, 208, 137,
+			80, 147, 206, 21, 33, 64, 20, 8, 197, 24, 244, 141, 5, 64, 20, 8, 197, 37, 51, 194, 5, 32, 20, 14, 2, 194, 167, 48, 35, 34,
+			35, 81, 34, 6, 35, 83, 0, 0, 15, 66, 76, 80, 89, 36, 15, 89, 114, 0, 81, 115, 195, 165, 32, 9, 198, 8, 244, 132, 85, 33,
+			64, 20, 9, 198, 76, 245, 80, 21, 33, 64, 20, 9, 198, 76, 244, 148, 21, 33, 64, 20, 9, 198, 64, 20, 148, 21, 33, 64, 20, 9,
+			198, 9, 35, 196, 21, 33, 64, 20, 9, 198, 84, 49, 78, 81, 32, 76, 20, 9, 198, 36, 229, 5, 29, 32, 76, 20, 11, 70, 88, 83,
+			148, 85, 33, 64, 21, 0, 10, 6, 194, 60, 208, 76, 28, 0, 9, 198, 56, 19, 143, 29, 32, 77, 20, 10, 199, 81, 34, 83, 80, 84,
+			211, 20, 20, 10, 199, 36, 229, 5, 72, 84, 211, 20, 20, 10, 199, 72, 81, 21, 56, 64, 78, 76, 20, 12, 137, 18, 195, 166, 19, 15,
+			14, 14, 1, 2, 20, 10, 2, 194, 165, 57, 6, 36, 50, 12, 0, 0, 11, 200, 80, 83, 80, 21, 32, 84, 85, 32, 20, 11, 200, 48,
+			149, 20, 21, 32, 84, 85, 32, 20, 12, 201, 40, 245, 82, 56, 19, 9, 77, 66, 75, 20, 10, 2, 194, 162, 89, 6, 36, 50, 47, 0,
+			0, 9, 134, 15, 4, 9, 195, 184, 19, 20, 10, 135, 8, 15, 14, 14, 195, 184, 18, 20, 10, 135, 6, 18, 9, 19, 195, 184, 18, 20,
+			12, 201, 88, 17, 193, 8, 243, 132, 21, 33, 64, 20, 12, 201, 44, 243, 150, 60, 197, 84, 21, 33, 64, 20, 12, 201, 44, 243, 148, 72,
+			20, 212, 21, 33, 64, 20, 12, 201, 16, 242, 213, 52, 83, 148, 21, 33, 64, 20, 12, 201, 5, 33, 213, 52, 83, 148, 21, 33, 64, 20,
+			8, 197, 21, 81, 143, 72, 144, 20, 8, 197, 53, 84, 197, 84, 208, 20, 8, 197, 80, 82, 83, 52, 80, 20, 8, 197, 16, 82, 83, 52,
+			80, 20, 8, 197, 85, 48, 78, 12, 80, 20, 9, 2, 194, 163, 48, 40, 50, 19, 0, 0, 10, 135, 22, 9, 19, 11, 195, 184, 19, 20,
+			10, 135, 19, 5, 18, 9, 195, 184, 19, 20, 9, 198, 80, 20, 129, 57, 65, 76, 20, 9, 198, 76, 194, 66, 21, 34, 64, 20, 9, 198,
+			76, 192, 86, 21, 34, 64, 20, 9, 198, 56, 20, 146, 21, 34, 64, 20, 9, 198, 44, 226, 66, 21, 34, 64, 20, 9, 198, 28, 224, 86,
+			21, 34, 64, 20, 9, 198, 24, 20, 150, 21, 34, 64, 20, 9, 198, 48, 20, 16, 37, 50, 192, 20, 9, 198, 20, 193, 71, 37, 50, 192,
+			20, 9, 198, 28, 20, 129, 57, 66, 64, 20, 9, 198, 72, 83, 133, 28, 21, 0, 20, 9, 198, 24, 245, 15, 77, 64, 84, 20, 9, 198,
+			12, 83, 147, 61, 32, 84, 20, 9, 198, 5, 69, 5, 57, 64, 84, 20, 9, 198, 4, 197, 77, 56, 21, 0, 20, 0, 12, 137, 11, 15,
+			8, 195, 166, 19, 9, 15, 14, 20, 10, 199, 36, 229, 5, 57, 50, 79, 56, 20, 10, 199, 16, 149, 133, 73, 50, 79, 56, 20, 10, 199,
+			52, 19, 137, 13, 84, 133, 72, 20, 10, 199, 44, 243, 148, 36, 229, 69, 72, 20, 10, 199, 44, 21, 15, 48, 144, 197, 72, 20, 10, 199,
+			5, 69, 18, 36, 37, 69, 72, 20, 12, 201, 77, 83, 6, 5, 66, 65, 104, 243, 0, 20, 9, 198, 80, 84, 146, 5, 34, 69, 20, 10,
+			199, 44, 20, 140, 40, 242, 1, 56, 21, 0, 11, 200, 8, 245, 82, 28, 83, 201, 76, 144, 20, 11, 200, 44, 20, 146, 61, 52, 197, 72,
+			144, 20, 11, 200, 80, 147, 12, 4, 65, 76, 36, 112, 20, 11, 200, 77, 3, 9, 16, 17, 212, 36, 112, 20, 11, 200, 52, 148, 213, 56,
+			65, 76, 36, 112, 20, 11, 200, 4, 229, 133, 56, 65, 76, 36, 112, 20, 11, 200, 77, 144, 129, 72, 149, 9, 76, 176, 20, 11, 200, 37,
+			51, 1, 52, 149, 9, 76, 176, 20, 11, 200, 33, 145, 201, 20, 163, 137, 76, 176, 20, 11, 200, 32, 19, 147, 20, 21, 9, 76, 176, 20,
+			11, 200, 5, 34, 201, 52, 81, 9, 76, 176, 20, 11, 200, 4, 229, 1, 72, 181, 9, 76, 176, 20, 11, 200, 4, 193, 129, 8, 85, 9,
+			76, 176, 20, 11, 200, 4, 180, 143, 52, 21, 9, 76, 176, 20, 11, 200, 76, 178, 90, 60, 100, 133, 56, 144, 20, 11, 200, 81, 35, 212,
+			76, 178, 83, 52, 80, 20, 11, 200, 77, 147, 12, 60, 114, 83, 52, 80, 20, 11, 200, 76, 130, 78, 80, 242, 83, 52, 80, 20, 11, 200,
+			56, 83, 204, 60, 114, 83, 52, 80, 20, 11, 200, 28, 19, 12, 36, 50, 83, 52, 80, 20, 11, 200, 20, 180, 207, 72, 50, 83, 52, 80,
+			20, 11, 200, 77, 3, 9, 16, 17, 212, 36, 112, 20, 28, 2, 194, 174, 34, 36, 81, 37, 89, 47, 34, 6, 109, 34, 13, 86, 15, 84,
+			6, 35, 34, 13, 65, 109, 34, 49, 108, 0, 0, 13, 138, 19, 16, 9, 18, 9, 20, 21, 195, 184, 19, 20, 14, 139, 7, 1, 12, 22,
+			1, 14, 9, 19, 195, 184, 18, 20, 8, 197, 25, 34, 69, 72, 144, 20, 12, 201, 76, 86, 67, 32, 83, 12, 37, 50, 192, 20, 12, 201,
+			65, 54, 75, 20, 65, 76, 37, 50, 192, 20, 12, 201, 65, 35, 199, 56, 244, 212, 37, 50, 192, 20, 12, 201, 64, 20, 133, 57, 65, 84,
+			37, 50, 192, 20, 12, 201, 64, 16, 201, 24, 148, 212, 37, 50, 192, 20, 12, 201, 52, 244, 129, 48, 148, 212, 37, 50, 192, 20, 12, 201,
+			52, 243, 133, 28, 20, 203, 37, 50, 192, 20, 12, 201, 52, 85, 1, 77, 64, 84, 37, 50, 192, 20, 12, 201, 48, 147, 135, 88, 148, 212,
+			37, 50, 192, 20, 12, 201, 48, 83, 137, 56, 148, 212, 37, 50, 192, 20, 12, 201, 44, 243, 15, 72, 148, 212, 37, 50, 192, 20, 12, 201,
+			44, 21, 1, 48, 84, 20, 37, 50, 192, 20, 12, 201, 33, 83, 79, 72, 148, 212, 37, 50, 192, 20, 12, 201, 28, 83, 210, 28, 148, 212,
+			37, 50, 192, 20, 12, 201, 25, 85, 21, 72, 148, 212, 37, 50, 192, 20, 12, 201, 21, 81, 133, 52, 148, 212, 37, 50, 192, 20, 12, 201,
+			16, 83, 79, 45, 32, 84, 37, 50, 192, 20, 12, 201, 9, 81, 4, 32, 148, 212, 37, 50, 192, 20, 12, 201, 4, 227, 129, 48, 148, 212,
+			37, 50, 192, 20, 12, 201, 12, 132, 137, 77, 66, 65, 56, 149, 0, 20, 10, 69, 76, 245, 82, 12, 80, 21, 0, 10, 5, 130, 195, 167,
+			43, 0, 9, 198, 76, 230, 68, 21, 34, 64, 20, 9, 198, 73, 149, 20, 21, 34, 64, 20, 9, 198, 64, 147, 132, 21, 34, 64, 20, 9,
+			198, 44, 241, 204, 21, 34, 64, 20, 9, 198, 44, 240, 140, 21, 34, 64, 20, 9, 198, 44, 20, 148, 21, 34, 64, 20, 9, 198, 28, 226,
+			68, 21, 34, 64, 20, 9, 198, 16, 145, 148, 21, 34, 64, 20, 9, 198, 9, 35, 196, 21, 34, 64, 20, 9, 198, 8, 147, 132, 21, 34,
+			64, 20, 9, 198, 64, 20, 129, 76, 149, 0, 20, 9, 198, 24, 81, 5, 77, 66, 64, 20, 9, 198, 12, 130, 65, 57, 66, 64, 20, 9,
+			198, 76, 83, 137, 61, 32, 84, 20, 9, 198, 72, 85, 19, 77, 64, 84, 20, 9, 198, 16, 148, 208, 5, 32, 84, 20, 5, 130, 195, 164,
+			43, 0, 12, 137, 13, 15, 4, 5, 12, 12, 195, 184, 18, 20, 10, 199, 61, 130, 68, 5, 66, 79, 56, 20, 10, 199, 61, 101, 76, 5,
+			66, 79, 56, 20, 10, 199, 37, 51, 204, 5, 66, 79, 56, 20, 10, 199, 36, 229, 5, 57, 66, 79, 56, 20, 10, 199, 36, 225, 140, 5,
+			66, 79, 56, 20, 10, 199, 44, 243, 80, 61, 53, 5, 72, 20, 9, 198, 52, 20, 148, 101, 34, 69, 20, 14, 203, 64, 21, 18, 36, 20,
+			139, 4, 194, 83, 52, 80, 20, 14, 203, 64, 20, 148, 36, 181, 76, 5, 34, 83, 52, 80, 20, 0, 13, 138, 11, 15, 13, 13, 1, 14,
+			4, 195, 184, 18, 20, 9, 198, 72, 148, 15, 77, 65, 82, 20, 9, 198, 45, 33, 68, 37, 65, 82, 20, 9, 198, 44, 20, 130, 85, 33,
+			82, 20, 9, 198, 44, 19, 9, 9, 33, 82, 20, 9, 198, 36, 229, 5, 29, 33, 82, 20, 9, 198, 36, 228, 208, 37, 33, 82, 20, 9,
+			198, 28, 20, 129, 57, 65, 82, 20, 9, 198, 16, 149, 133, 73, 65, 82, 20, 9, 198, 16, 145, 134, 21, 33, 82, 20, 9, 198, 5, 52,
+			201, 77, 65, 82, 20, 12, 201, 76, 198, 78, 28, 83, 1, 29, 66, 71, 20, 15, 204, 84, 226, 86, 21, 36, 193, 48, 148, 212, 37, 50,
+			192, 20, 11, 200, 80, 83, 5, 64, 21, 9, 76, 176, 20, 15, 204, 76, 176, 78, 16, 147, 129, 88, 148, 212, 37, 50, 192, 20, 15, 204,
+			65, 35, 208, 4, 112, 78, 16, 148, 212, 37, 50, 192, 20, 11, 200, 60, 229, 15, 48, 241, 201, 76, 176, 20, 15, 204, 44, 243, 12, 20,
+			181, 9, 88, 148, 212, 37, 50, 192, 20, 15, 204, 24, 20, 141, 4, 179, 199, 56, 244, 212, 37, 50, 192, 20, 15, 204, 21, 99, 204, 85,
+			66, 79, 56, 148, 212, 37, 50, 192, 20, 11, 200, 5, 85, 15, 52, 21, 9, 76, 176, 20, 11, 200, 5, 3, 211, 80, 243, 9, 76, 176,
+			20, 7, 196, 24, 16, 201, 48, 20, 11, 200, 72, 243, 65, 56, 148, 212, 36, 176, 20, 9, 198, 32, 243, 132, 85, 32, 78, 20, 15, 204,
+			24, 194, 80, 65, 35, 204, 21, 64, 82, 36, 21, 0, 20, 7, 196, 48, 81, 193, 48, 20, 20, 2, 194, 170, 83, 36, 65, 37, 50, 37,
+			50, 15, 118, 72, 37, 50, 6, 35, 55, 0, 0, 13, 138, 12, 21, 11, 19, 21, 18, 9, 195, 184, 19, 20, 12, 201, 72, 16, 149, 48,
+			148, 212, 21, 34, 64, 20, 12, 201, 56, 21, 20, 21, 35, 196, 21, 34, 64, 20, 12, 201, 81, 83, 85, 49, 64, 82, 37, 50, 192, 20,
+			12, 201, 80, 83, 5, 52, 85, 18, 37, 50, 192, 20, 12, 201, 72, 85, 8, 5, 97, 82, 37, 50, 192, 20, 12, 201, 65, 35, 204, 21,
+			64, 82, 37, 50, 192, 20, 12, 201, 64, 192, 78, 21, 64, 82, 37, 50, 192, 20, 12, 201, 4, 229, 9, 45, 96, 82, 37, 50, 192, 20,
+			12, 201, 4, 48, 197, 77, 51, 210, 37, 50, 192, 20, 0, 15, 140, 16, 15, 18, 20, 18, 195, 166, 20, 20, 195, 184, 18, 20, 15, 140,
+			13, 1, 14, 9, 16, 21, 12, 1, 20, 195, 184, 18, 20, 15, 140, 9, 14, 19, 20, 1, 12, 12, 1, 20, 195, 184, 18, 20, 15, 140,
+			4, 5, 19, 20, 9, 12, 12, 1, 20, 195, 184, 18, 20, 6, 195, 16, 85, 19, 72, 15, 4, 95, 18, 5, 22, 34, 37, 84, 6, 108,
+			12, 89, 72, 0, 6, 130, 195, 160, 43, 14, 0, 9, 198, 24, 243, 143, 29, 32, 77, 20, 9, 198, 4, 84, 143, 29, 32, 77, 20, 10,
+			199, 52, 146, 210, 60, 34, 69, 48, 20, 9, 198, 29, 147, 129, 56, 68, 137, 20, 14, 203, 8, 18, 212, 21, 34, 79, 48, 241, 201, 76,
+			176, 20, 10, 199, 44, 243, 139, 61, 33, 1, 80, 20, 13, 2, 194, 169, 49, 114, 48, 37, 34, 35, 57, 47, 0, 0, 9, 198, 64, 83,
+			12, 21, 65, 82, 20, 9, 198, 44, 243, 208, 21, 33, 82, 20, 9, 198, 36, 229, 133, 77, 65, 82, 20, 9, 198, 36, 228, 201, 77, 65,
+			82, 20, 9, 198, 24, 18, 212, 85, 33, 82, 20, 9, 198, 16, 85, 5, 45, 65, 82, 20, 9, 198, 5, 36, 133, 77, 65, 82, 20, 9,
+			198, 4, 36, 207, 49, 97, 82, 20, 15, 204, 24, 245, 15, 29, 32, 77, 52, 85, 18, 37, 50, 192, 20, 9, 198, 52, 19, 132, 5, 34,
+			78, 20, 9, 198, 44, 244, 147, 61, 32, 78, 20, 9, 3, 16, 195, 165, 48, 113, 0, 72, 0, 12, 201, 76, 83, 147, 37, 66, 86, 37,
+			65, 84, 20, 12, 201, 76, 83, 5, 45, 66, 86, 37, 65, 84, 20, 12, 201, 61, 4, 15, 73, 69, 78, 37, 65, 84, 20, 12, 201, 5,
+			52, 197, 73, 66, 86, 37, 65, 84, 20, 12, 137, 16, 18, 195, 166, 16, 1, 18, 1, 20, 20, 5, 130, 197, 159, 43, 5, 130, 195, 175,
+			43, 0, 9, 198, 81, 80, 129, 37, 53, 0, 20, 9, 198, 72, 80, 76, 37, 65, 84, 20, 9, 198, 57, 83, 12, 37, 65, 84, 20, 0,
+			20, 8, 23, 3, 39, 5, 18, 14, 5, 19, 84, 6, 36, 89, 36, 114, 50, 13, 89, 0, 9, 198, 8, 20, 143, 29, 32, 77, 20, 9,
+			198, 5, 69, 15, 29, 32, 77, 20, 12, 137, 7, 195, 166, 19, 20, 5, 18, 5, 18, 20, 10, 199, 12, 83, 12, 84, 195, 201, 16, 20,
+			10, 199, 44, 83, 143, 80, 17, 137, 20, 20, 7, 2, 194, 181, 65, 116, 0, 0, 7, 196, 64, 146, 197, 72, 20, 7, 196, 48, 18, 197,
+			72, 20, 7, 196, 80, 244, 20, 36, 20, 9, 198, 16, 19, 65, 76, 49, 78, 20, 7, 196, 88, 146, 193, 72, 20, 5, 130, 195, 170, 43,
+			0, 12, 201, 80, 83, 5, 29, 32, 70, 37, 53, 0, 20, 12, 201, 76, 83, 147, 36, 34, 76, 37, 65, 84, 20, 12, 201, 60, 97, 137,
+			12, 144, 76, 37, 65, 84, 20, 12, 201, 52, 21, 5, 72, 144, 76, 37, 65, 84, 20, 12, 201, 36, 211, 79, 73, 64, 76, 37, 65, 84,
+			20, 12, 201, 36, 195, 9, 45, 98, 68, 37, 65, 84, 20, 14, 139, 19, 11, 18, 195, 166, 4, 4, 5, 18, 5, 18, 20, 14, 139, 11,
+			195, 166, 18, 5, 19, 20, 5, 18, 5, 18, 20, 12, 201, 44, 243, 147, 80, 84, 142, 21, 33, 84, 20, 5, 130, 195, 171, 43, 0, 9,
+			198, 16, 148, 211, 20, 228, 192, 20, 17, 142, 19, 21, 12, 6, 1, 16, 18, 195, 166, 16, 1, 18, 1, 20, 20, 9, 198, 88, 20, 137,
+			4, 228, 192, 20, 0, 10, 199, 65, 35, 198, 21, 65, 82, 20, 20, 10, 199, 44, 244, 212, 84, 209, 82, 20, 20, 10, 199, 8, 19, 1,
+			56, 49, 82, 20, 20, 10, 199, 20, 212, 9, 72, 146, 197, 72, 20, 10, 199, 4, 181, 83, 80, 146, 197, 72, 20, 9, 198, 36, 225, 197,
+			56, 149, 77, 20, 10, 199, 80, 147, 79, 45, 32, 84, 36, 20, 5, 130, 195, 169, 43, 0, 13, 138, 19, 20, 1, 20, 9, 15, 14, 195,
+			166, 18, 20, 9, 134, 16, 15, 12, 195, 166, 18, 20, 9, 134, 13, 15, 12, 195, 166, 18, 20, 13, 138, 13, 9, 12, 12, 9, 15, 14,
+			195, 166, 18, 20, 7, 196, 64, 20, 148, 36, 20, 7, 196, 8, 81, 201, 44, 20, 14, 2, 194, 190, 47, 34, 109, 49, 84, 6, 35, 34,
+			47, 0, 5, 130, 195, 182, 43, 0, 10, 135, 19, 11, 1, 12, 195, 166, 18, 20, 8, 197, 29, 32, 86, 36, 64, 20, 8, 197, 8, 20,
+			211, 36, 224, 20, 8, 197, 64, 20, 212, 36, 192, 20, 8, 197, 56, 244, 208, 36, 192, 20, 12, 201, 45, 98, 78, 80, 84, 211, 20, 228,
+			192, 20, 12, 201, 36, 229, 5, 48, 194, 71, 20, 228, 192, 20, 12, 201, 36, 229, 5, 72, 84, 211, 4, 229, 0, 20, 19, 2, 195, 183,
+			72, 37, 84, 37, 72, 6, 36, 51, 36, 86, 15, 65, 36, 86, 0, 0, 13, 202, 56, 82, 210, 60, 208, 78, 80, 146, 197, 72, 20, 13,
+			202, 24, 147, 8, 5, 35, 79, 56, 146, 197, 72, 20, 12, 201, 44, 194, 77, 4, 181, 5, 72, 149, 77, 20, 13, 2, 194, 188, 36, 50,
+			15, 49, 84, 35, 34, 47, 0, 0, 12, 137, 16, 21, 2, 5, 18, 20, 195, 166, 18, 20, 12, 137, 3, 5, 12, 12, 21, 12, 195, 166,
+			18, 20, 10, 199, 65, 35, 198, 36, 193, 82, 20, 20, 10, 199, 76, 19, 86, 37, 69, 9, 28, 20, 10, 199, 76, 17, 212, 52, 241, 9,
+			28, 20, 10, 199, 17, 144, 147, 36, 225, 9, 28, 20, 14, 203, 20, 180, 202, 84, 115, 211, 48, 21, 137, 20, 224, 20, 10, 199, 85, 37,
+			71, 84, 22, 65, 56, 20, 9, 198, 4, 195, 9, 4, 224, 197, 20, 10, 199, 81, 32, 70, 36, 176, 78, 80, 20, 11, 2, 194, 189, 36,
+			50, 6, 107, 35, 55, 0, 0, 9, 198, 48, 85, 129, 57, 66, 78, 20, 9, 198, 5, 33, 197, 57, 66, 78, 20, 9, 198, 4, 225, 204,
+			36, 176, 78, 20, 9, 198, 17, 32, 71, 60, 208, 78, 21, 22, 2, 194, 186, 65, 6, 35, 89, 49, 40, 55, 37, 50, 15, 118, 72, 37,
+			50, 6, 35, 55, 0, 16, 4, 95, 18, 6, 24, 34, 47, 34, 39, 83, 55, 109, 49, 89, 0, 14, 4, 95, 3, 5, 4, 89, 13, 72,
+			6, 37, 55, 35, 0, 0, 14, 139, 18, 21, 4, 9, 13, 5, 14, 20, 195, 166, 18, 20, 8, 197, 64, 83, 12, 21, 64, 20, 8, 197,
+			8, 19, 12, 21, 64, 20, 8, 197, 60, 35, 201, 77, 64, 20, 8, 197, 52, 243, 148, 21, 32, 20, 15, 204, 44, 83, 79, 80, 84, 129,
+			64, 85, 84, 36, 181, 77, 20, 8, 197, 36, 226, 214, 37, 64, 20, 8, 197, 29, 32, 70, 37, 64, 20, 8, 197, 16, 80, 197, 57, 64,
+			20, 8, 197, 44, 195, 210, 5, 64, 20, 0, 9, 198, 48, 240, 133, 48, 145, 64, 20, 9, 198, 88, 19, 129, 16, 145, 64, 20, 9, 198,
+			56, 240, 133, 48, 145, 64, 20, 9, 198, 8, 19, 1, 56, 49, 64, 20, 0, 9, 67, 36, 177, 64, 35, 57, 49, 0, 10, 199, 76, 240,
+			201, 60, 227, 205, 36, 20, 14, 4, 95, 12, 9, 7, 55, 37, 81, 35, 47, 40, 34, 0, 5, 130, 195, 177, 43, 5, 130, 197, 161, 43,
+			0, 9, 198, 16, 81, 133, 57, 51, 210, 20, 11, 200, 76, 22, 15, 24, 243, 137, 77, 64, 20, 11, 200, 44, 243, 134, 61, 35, 73, 77,
+			64, 20, 11, 200, 44, 20, 9, 80, 19, 9, 77, 64, 20, 11, 200, 84, 211, 210, 4, 194, 84, 21, 64, 20, 11, 200, 64, 197, 82, 4,
+			194, 84, 21, 64, 20, 11, 200, 52, 20, 211, 37, 98, 84, 21, 64, 20, 11, 200, 48, 20, 195, 37, 98, 84, 21, 64, 20, 11, 200, 44,
+			243, 139, 5, 98, 84, 21, 64, 20, 11, 200, 36, 229, 5, 29, 34, 84, 21, 64, 20, 11, 200, 24, 18, 212, 36, 50, 84, 21, 64, 20,
+			11, 200, 16, 81, 143, 72, 210, 84, 21, 64, 20, 11, 200, 12, 83, 5, 9, 34, 84, 21, 64, 20, 11, 200, 4, 227, 206, 100, 210, 84,
+			21, 64, 20, 11, 200, 25, 33, 75, 88, 83, 148, 21, 32, 20, 11, 200, 4, 178, 210, 20, 66, 84, 21, 32, 20, 9, 198, 88, 83, 133,
+			80, 144, 78, 20, 11, 200, 72, 84, 212, 5, 84, 129, 57, 64, 20, 0, 8, 197, 80, 244, 148, 85, 32, 20, 8, 197, 73, 84, 20, 85,
+			32, 20, 8, 197, 44, 243, 148, 85, 32, 20, 8, 197, 77, 64, 84, 85, 64, 20, 8, 197, 41, 83, 137, 61, 32, 20, 8, 197, 77, 66,
+			76, 21, 64, 20, 8, 197, 57, 81, 9, 77, 64, 20, 12, 201, 76, 84, 150, 36, 49, 82, 36, 225, 192, 20, 12, 201, 64, 20, 134, 84,
+			209, 82, 36, 225, 192, 20, 12, 201, 16, 84, 193, 72, 209, 82, 36, 225, 192, 20, 12, 201, 5, 36, 129, 56, 113, 82, 36, 225, 192, 20,
+			8, 197, 76, 21, 84, 21, 32, 20, 8, 197, 20, 194, 68, 21, 32, 20, 8, 197, 16, 19, 132, 21, 32, 20, 11, 136, 13, 195, 184, 12,
+			12, 5, 18, 9, 20, 13, 138, 8, 195, 184, 10, 1, 4, 5, 12, 9, 7, 20, 12, 201, 88, 242, 193, 9, 83, 1, 72, 145, 64, 20,
+			8, 197, 21, 52, 18, 37, 64, 20, 12, 201, 56, 85, 84, 72, 19, 9, 76, 209, 64, 20, 12, 201, 56, 21, 21, 72, 19, 9, 76, 209,
+			64, 20, 12, 201, 44, 243, 134, 61, 35, 73, 76, 209, 64, 20, 12, 201, 44, 20, 9, 80, 19, 9, 76, 209, 64, 20, 8, 197, 44, 194,
+			69, 57, 64, 20, 12, 201, 56, 243, 131, 32, 19, 1, 56, 49, 64, 20, 8, 197, 77, 83, 6, 5, 64, 20, 8, 197, 56, 149, 18, 5,
+			64, 20, 12, 201, 44, 243, 147, 37, 53, 15, 72, 144, 76, 20, 8, 197, 64, 146, 193, 57, 64, 20, 0, 14, 139, 14, 15, 18, 4, 195,
+			184, 19, 20, 12, 9, 7, 20, 14, 139, 8, 195, 184, 10, 20, 9, 4, 5, 12, 9, 7, 20, 9, 198, 76, 19, 65, 72, 145, 64, 20,
+			9, 198, 4, 211, 79, 56, 145, 64, 20, 9, 198, 52, 21, 18, 36, 49, 64, 20, 9, 198, 4, 181, 18, 36, 49, 64, 20, 9, 198, 25,
+			35, 205, 4, 113, 64, 20, 7, 132, 2, 195, 184, 18, 76, 5, 130, 195, 188, 43, 0, 14, 203, 25, 83, 132, 4, 209, 78, 80, 19, 9,
+			77, 64, 20, 14, 203, 65, 35, 199, 72, 84, 211, 37, 98, 84, 21, 64, 20, 14, 203, 36, 225, 70, 24, 82, 212, 37, 98, 84, 21, 64,
+			20, 14, 203, 25, 83, 139, 80, 147, 206, 4, 194, 84, 21, 64, 20, 14, 203, 16, 148, 212, 36, 226, 212, 37, 98, 84, 21, 64, 20, 14,
+			203, 16, 84, 212, 73, 82, 212, 37, 98, 84, 21, 64, 20, 13, 138, 4, 195, 184, 4, 2, 9, 4, 5, 18, 9, 20, 10, 199, 53, 84,
+			203, 20, 67, 206, 56, 20, 0, 11, 200, 77, 84, 146, 20, 19, 9, 77, 64, 20, 11, 200, 48, 144, 133, 72, 19, 9, 77, 64, 20, 11,
+			136, 4, 9, 195, 166, 20, 9, 19, 20, 20, 11, 200, 8, 83, 12, 21, 68, 137, 77, 64, 20, 11, 200, 8, 80, 82, 8, 82, 132, 21,
+			32, 67, 9, 198, 76, 176, 66, 20, 195, 206, 20, 9, 198, 52, 146, 210, 60, 99, 206, 20, 15, 204, 5, 85, 5, 57, 66, 70, 36, 49,
+			82, 36, 225, 192, 20, 11, 200, 52, 19, 137, 24, 84, 212, 21, 32, 20, 12, 137, 195, 166, 18, 7, 5, 18, 18, 9, 7, 20, 16, 141,
+			6, 15, 18, 8, 195, 165, 2, 5, 14, 20, 12, 9, 7, 20, 15, 204, 81, 32, 78, 77, 97, 83, 80, 149, 9, 76, 209, 64, 20, 15,
+			204, 25, 83, 132, 4, 209, 78, 80, 19, 9, 76, 209, 64, 20, 9, 198, 81, 83, 133, 76, 145, 78, 20, 9, 198, 5, 52, 217, 72, 145,
+			78, 20, 11, 200, 20, 180, 208, 20, 66, 69, 57, 64, 20, 9, 198, 56, 243, 73, 56, 19, 0, 20, 0, 10, 135, 6, 12, 1, 14, 195,
+			184, 18, 20, 10, 135, 3, 1, 21, 19, 195, 184, 18, 20, 8, 197, 48, 21, 137, 56, 80, 20, 12, 201, 72, 82, 70, 36, 49, 82, 36,
+			225, 192, 20, 12, 201, 64, 20, 143, 16, 145, 82, 36, 225, 192, 20, 12, 201, 52, 18, 211, 36, 209, 82, 36, 225, 192, 20, 12, 201, 17,
+			84, 12, 36, 177, 82, 36, 225, 192, 20, 12, 201, 8, 19, 19, 4, 209, 82, 36, 225, 192, 20, 12, 201, 5, 68, 143, 24, 145, 82, 36,
+			225, 192, 20, 8, 197, 52, 147, 133, 72, 80, 20, 8, 197, 28, 83, 133, 72, 80, 20, 13, 138, 19, 25, 4, 195, 184, 19, 20, 12, 9,
+			7, 20, 12, 201, 77, 84, 208, 20, 228, 207, 72, 145, 64, 20, 12, 201, 44, 243, 147, 37, 53, 15, 72, 145, 64, 20, 8, 197, 76, 241,
+			15, 52, 144, 20, 12, 201, 77, 147, 139, 72, 85, 9, 76, 209, 64, 20, 12, 201, 76, 84, 1, 72, 21, 9, 76, 209, 64, 20, 12, 201,
+			52, 147, 137, 52, 19, 9, 76, 209, 64, 20, 12, 201, 44, 192, 83, 76, 144, 201, 76, 209, 64, 20, 8, 197, 29, 32, 70, 20, 208, 20,
+			0, 9, 198, 17, 80, 84, 48, 85, 0, 20, 9, 198, 44, 194, 69, 57, 65, 76, 20, 9, 198, 44, 194, 69, 57, 65, 76, 20, 14, 139,
+			20, 9, 12, 18, 195, 165, 4, 5, 12, 9, 7, 20, 9, 198, 32, 84, 130, 36, 50, 68, 20, 9, 198, 16, 243, 15, 52, 149, 0, 20,
+			9, 198, 64, 244, 212, 21, 64, 84, 20, 9, 198, 16, 84, 208, 21, 32, 84, 20, 6, 2, 195, 184, 118, 0, 0, 9, 198, 80, 82, 206,
+			60, 227, 205, 20, 9, 198, 44, 20, 131, 36, 227, 205, 20, 10, 199, 88, 149, 137, 76, 82, 197, 72, 20, 10, 199, 64, 84, 150, 21, 37,
+			5, 72, 20, 10, 199, 44, 19, 15, 72, 145, 133, 72, 20, 10, 199, 65, 35, 211, 4, 146, 197, 72, 20, 10, 199, 9, 83, 9, 52, 146,
+			197, 72, 20, 9, 198, 65, 35, 208, 72, 149, 77, 20, 10, 199, 4, 180, 143, 8, 21, 9, 44, 20, 10, 199, 65, 32, 75, 80, 148, 193,
+			8, 20, 0, 12, 137, 20, 18, 9, 11, 9, 14, 195, 184, 19, 20, 11, 200, 53, 150, 15, 52, 21, 15, 76, 80, 20, 11, 200, 77, 147,
+			139, 72, 243, 137, 76, 176, 20, 11, 200, 77, 66, 76, 37, 53, 9, 76, 176, 20, 11, 200, 77, 64, 84, 37, 53, 9, 76, 176, 20, 11,
+			200, 77, 2, 82, 4, 229, 9, 76, 176, 20, 11, 200, 76, 179, 204, 5, 53, 9, 76, 176, 20, 11, 200, 56, 85, 82, 4, 193, 201, 76,
+			176, 20, 11, 200, 44, 21, 1, 49, 149, 9, 76, 176, 20, 11, 200, 24, 20, 195, 37, 53, 9, 76, 176, 20, 11, 200, 16, 144, 83, 80,
+			243, 9, 76, 176, 20, 7, 196, 76, 21, 9, 56, 20, 7, 196, 44, 19, 73, 56, 20, 11, 200, 88, 19, 132, 4, 194, 83, 52, 80, 20,
+			11, 200, 80, 84, 146, 61, 34, 83, 52, 80, 20, 11, 200, 77, 147, 66, 60, 194, 83, 52, 80, 20, 11, 200, 77, 64, 76, 36, 226, 83,
+			52, 80, 20, 11, 200, 76, 240, 201, 4, 194, 83, 52, 80, 20, 11, 200, 64, 192, 84, 60, 226, 83, 52, 80, 20, 11, 200, 52, 243, 135,
+			60, 194, 83, 52, 80, 20, 11, 200, 45, 33, 84, 36, 226, 83, 52, 80, 20, 11, 200, 24, 244, 141, 4, 194, 83, 52, 80, 20, 11, 200,
+			24, 85, 68, 4, 194, 83, 52, 80, 20, 11, 200, 24, 85, 9, 12, 130, 83, 52, 80, 20, 11, 200, 16, 20, 151, 36, 226, 83, 52, 80,
+			20, 11, 200, 9, 37, 84, 4, 194, 83, 52, 80, 20, 11, 200, 4, 36, 213, 72, 66, 83, 52, 80, 20, 0, 12, 201, 16, 84, 141, 5,
+			67, 204, 60, 114, 64, 20, 12, 201, 9, 35, 205, 5, 67, 204, 60, 114, 64, 20, 12, 201, 4, 229, 18, 61, 3, 204, 60, 114, 64, 20,
+			8, 197, 73, 85, 9, 56, 80, 20, 8, 197, 53, 148, 212, 36, 176, 20, 8, 67, 76, 227, 194, 21, 0, 10, 0, 12, 137, 195, 166, 20,
+			9, 15, 12, 15, 7, 9, 20, 9, 198, 85, 35, 204, 60, 114, 64, 20, 13, 202, 32, 84, 141, 20, 225, 85, 80, 146, 197, 72, 20, 9,
+			198, 76, 241, 15, 52, 149, 0, 20, 9, 198, 52, 243, 143, 48, 149, 0, 20, 0, 17, 67, 44, 243, 64, 49, 114, 65, 15, 89, 114, 0,
+			81, 115, 195, 165, 32, 12, 137, 22, 15, 12, 15, 14, 20, 195, 184, 18, 20, 10, 199, 52, 18, 213, 48, 21, 15, 72, 20, 10, 199, 4,
+			195, 9, 28, 21, 15, 72, 20, 10, 199, 24, 147, 138, 85, 53, 5, 72, 20, 14, 203, 72, 81, 201, 60, 224, 76, 37, 53, 9, 76, 176,
+			20, 14, 203, 72, 21, 9, 60, 224, 76, 37, 53, 9, 76, 176, 20, 14, 203, 64, 242, 78, 80, 147, 12, 37, 53, 9, 76, 176, 20, 14,
+			203, 64, 21, 5, 72, 224, 76, 37, 53, 9, 76, 176, 20, 14, 203, 56, 21, 9, 60, 224, 76, 37, 53, 9, 76, 176, 20, 14, 203, 44,
+			19, 142, 36, 32, 76, 37, 53, 9, 76, 176, 20, 14, 203, 65, 35, 212, 20, 181, 9, 60, 226, 83, 52, 80, 20, 14, 203, 64, 84, 134,
+			20, 181, 9, 60, 226, 83, 52, 80, 20, 14, 203, 44, 243, 77, 21, 32, 201, 4, 194, 83, 52, 80, 20, 14, 203, 36, 225, 9, 88, 145,
+			21, 4, 194, 83, 52, 80, 20, 14, 203, 36, 212, 18, 21, 52, 201, 60, 226, 83, 52, 80, 20, 14, 203, 20, 180, 208, 4, 228, 201, 60,
+			226, 83, 52, 80, 20, 10, 199, 28, 83, 65, 48, 147, 132, 20, 20, 10, 67, 76, 243, 64, 89, 114, 65, 0, 72, 21, 4, 95, 54, 88,
+			15, 47, 34, 6, 109, 89, 36, 50, 89, 47, 116, 84, 13, 50, 13, 0, 0, 9, 198, 65, 83, 16, 37, 69, 82, 20, 9, 198, 16, 240,
+			197, 57, 69, 82, 20, 12, 137, 7, 18, 1, 14, 21, 12, 195, 184, 19, 20, 13, 138, 5, 11, 19, 16, 15, 18, 20, 195, 184, 18, 20,
+			13, 138, 4, 9, 19, 16, 1, 3, 8, 195, 184, 18, 20, 11, 200, 89, 83, 11, 4, 227, 204, 60, 112, 20, 11, 200, 28, 84, 143, 57,
+			67, 204, 60, 112, 20, 11, 200, 9, 34, 71, 4, 229, 9, 56, 80, 20, 9, 198, 88, 147, 132, 36, 49, 82, 20, 9, 198, 76, 83, 5,
+			45, 65, 82, 20, 9, 198, 72, 83, 1, 56, 49, 82, 20, 9, 198, 45, 84, 147, 37, 97, 82, 20, 9, 198, 44, 243, 134, 21, 33, 82,
+			20, 9, 198, 16, 82, 204, 5, 33, 82, 20, 9, 198, 12, 83, 5, 9, 33, 82, 20, 11, 200, 80, 16, 200, 37, 53, 9, 76, 176, 20,
+			11, 200, 77, 67, 203, 5, 53, 9, 76, 176, 20, 11, 200, 76, 178, 83, 52, 21, 9, 76, 176, 20, 11, 200, 64, 20, 129, 49, 149, 9,
+			76, 176, 20, 11, 200, 52, 20, 152, 37, 53, 9, 76, 176, 20, 11, 200, 45, 96, 68, 72, 21, 9, 76, 176, 20, 11, 200, 24, 19, 148,
+			5, 53, 9, 76, 176, 20, 12, 137, 4, 195, 166, 13, 15, 14, 9, 19, 11, 20, 11, 200, 16, 17, 1, 37, 53, 9, 76, 176, 20, 11,
+			200, 8, 20, 20, 37, 53, 9, 76, 176, 20, 11, 200, 5, 1, 82, 36, 241, 9, 76, 176, 20, 9, 198, 52, 85, 18, 36, 177, 82, 20,
+			7, 196, 24, 16, 201, 80, 20, 11, 200, 36, 225, 143, 72, 208, 84, 36, 176, 20, 7, 196, 4, 113, 78, 76, 20, 11, 200, 44, 243, 132,
+			60, 193, 78, 12, 80, 20, 7, 196, 48, 81, 193, 80, 20, 7, 196, 48, 242, 193, 48, 20, 0, 13, 138, 19, 11, 1, 14, 4, 1, 12,
+			195, 184, 19, 20, 13, 138, 13, 9, 18, 1, 11, 21, 12, 195, 184, 19, 20, 12, 201, 80, 84, 141, 36, 227, 204, 60, 114, 64, 20, 13,
+			138, 11, 195, 184, 7, 5, 14, 19, 9, 19, 11, 20, 8, 197, 48, 144, 197, 57, 48, 20, 8, 197, 21, 52, 197, 57, 48, 20, 14, 73,
+			8, 80, 67, 33, 99, 204, 48, 86, 64, 21, 0, 10, 0, 10, 67, 36, 177, 83, 35, 57, 49, 89, 0, 15, 140, 20, 18, 1, 14, 19,
+			16, 15, 18, 20, 195, 184, 18, 20, 9, 198, 29, 32, 86, 37, 65, 84, 20, 17, 206, 77, 84, 18, 4, 224, 84, 85, 32, 76, 37, 53,
+			9, 76, 176, 20, 14, 139, 1, 14, 1, 16, 195, 166, 19, 20, 9, 19, 11, 20, 9, 198, 64, 85, 9, 81, 83, 64, 20, 12, 4, 95,
+			2, 1, 18, 10, 71, 6, 112, 13, 0, 0, 19, 67, 16, 83, 64, 72, 6, 109, 65, 15, 72, 36, 34, 0, 81, 100, 101, 114, 32, 19,
+			67, 16, 83, 64, 72, 6, 109, 65, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 12, 201, 88, 20, 133, 16, 82, 204, 5, 33, 82, 20,
+			9, 198, 36, 67, 204, 5, 68, 137, 20, 14, 203, 65, 54, 75, 60, 19, 129, 49, 149, 9, 76, 176, 20, 14, 203, 52, 85, 1, 48, 195,
+			199, 72, 17, 137, 76, 176, 20, 14, 203, 45, 34, 77, 36, 224, 76, 37, 53, 9, 76, 176, 20, 12, 201, 64, 19, 148, 60, 210, 77, 36,
+			177, 82, 20, 10, 199, 64, 244, 212, 49, 81, 9, 20, 20, 6, 195, 16, 83, 64, 72, 0, 13, 138, 16, 18, 195, 166, 6, 5, 11, 20,
+			21, 18, 20, 7, 196, 4, 96, 83, 36, 20, 9, 198, 80, 244, 148, 85, 33, 82, 20, 9, 198, 65, 35, 202, 36, 49, 82, 20, 9, 198,
+			36, 229, 143, 49, 97, 82, 20, 9, 198, 29, 32, 86, 37, 65, 82, 20, 9, 198, 16, 82, 193, 57, 65, 82, 20, 9, 198, 16, 19, 65,
+			76, 49, 82, 20, 7, 196, 32, 19, 73, 80, 20, 9, 198, 4, 209, 82, 36, 176, 78, 20, 9, 198, 52, 84, 137, 16, 144, 78, 21, 5,
+			130, 197, 190, 43, 0, 9, 198, 76, 240, 201, 60, 195, 199, 20, 9, 198, 25, 148, 201, 60, 195, 199, 20, 12, 201, 88, 144, 146, 4, 99,
+			206, 37, 53, 0, 20, 12, 201, 24, 19, 73, 48, 144, 82, 37, 65, 84, 20, 0, 16, 141, 18, 195, 184, 14, 20, 7, 5, 14, 15, 12,
+			15, 7, 9, 20, 9, 198, 80, 244, 130, 37, 53, 0, 20, 9, 198, 32, 244, 142, 37, 53, 0, 20, 9, 198, 45, 96, 76, 37, 65, 84,
+			20, 9, 198, 4, 114, 76, 37, 65, 84, 20, 9, 198, 61, 85, 18, 21, 33, 84, 20, 0, 27, 67, 24, 18, 84, 83, 109, 47, 35, 49,
+			114, 65, 48, 55, 6, 37, 0, 81, 97, 99, 99, 111, 109, 112, 108, 105, 32, 12, 201, 44, 243, 77, 4, 225, 1, 57, 69, 82, 20, 12,
+			137, 16, 18, 195, 166, 16, 1, 18, 5, 18, 20, 10, 199, 88, 149, 1, 48, 148, 205, 20, 20, 10, 199, 36, 65, 65, 48, 148, 205, 20,
+			20, 21, 71, 33, 145, 18, 60, 99, 201, 48, 107, 116, 72, 34, 39, 83, 6, 114, 37, 55, 0, 20, 10, 199, 80, 84, 141, 61, 53, 1,
+			80, 20, 0, 9, 134, 2, 9, 14, 195, 166, 18, 20, 15, 204, 44, 243, 80, 48, 83, 69, 57, 64, 82, 37, 65, 84, 20, 9, 68, 12,
+			128, 82, 80, 21, 0, 10, 0, 8, 197, 17, 32, 71, 60, 224, 20, 12, 201, 84, 213, 83, 36, 176, 76, 37, 65, 84, 20, 12, 201, 61,
+			34, 71, 36, 224, 76, 37, 65, 84, 20, 14, 139, 16, 18, 195, 166, 14, 21, 13, 5, 18, 5, 18, 20, 14, 139, 5, 21, 18, 15, 16,
+			195, 166, 9, 19, 5, 18, 20, 11, 136, 19, 16, 195, 184, 7, 5, 18, 9, 20, 11, 136, 13, 195, 166, 12, 11, 5, 18, 9, 20, 8,
+			197, 64, 84, 134, 36, 64, 20, 8, 197, 52, 244, 130, 36, 64, 20, 8, 197, 48, 146, 214, 36, 64, 20, 8, 197, 44, 20, 130, 36, 64,
+			20, 8, 197, 13, 144, 78, 36, 64, 20, 8, 197, 80, 19, 148, 4, 192, 20, 8, 197, 16, 83, 148, 4, 192, 20, 0, 11, 136, 15, 18,
+			4, 9, 14, 195, 166, 18, 20, 9, 198, 4, 229, 18, 4, 50, 84, 20, 9, 198, 8, 85, 10, 20, 229, 0, 20, 9, 198, 44, 243, 147,
+			20, 228, 192, 20, 13, 138, 9, 14, 1, 4, 195, 166, 11, 22, 1, 20, 20, 9, 134, 6, 195, 166, 11, 1, 12, 20, 0, 10, 199, 28,
+			20, 142, 37, 69, 82, 20, 20, 12, 137, 22, 9, 19, 9, 15, 14, 195, 166, 18, 20, 12, 137, 9, 13, 1, 7, 9, 14, 195, 166, 18,
+			20, 12, 137, 1, 18, 2, 9, 20, 18, 195, 166, 18, 20, 10, 199, 44, 243, 148, 85, 33, 82, 20, 20, 10, 199, 28, 243, 132, 60, 194,
+			69, 72, 20, 10, 199, 76, 177, 80, 80, 146, 197, 72, 20, 10, 199, 64, 243, 5, 52, 146, 197, 72, 20, 10, 199, 28, 83, 133, 80, 146,
+			197, 72, 20, 10, 199, 24, 243, 133, 80, 146, 197, 72, 20, 10, 199, 24, 19, 129, 80, 146, 197, 72, 20, 9, 198, 4, 211, 79, 56, 149,
+			77, 20, 10, 199, 76, 20, 132, 36, 226, 69, 56, 20, 9, 198, 20, 193, 71, 4, 224, 197, 20, 0, 7, 196, 52, 245, 15, 72, 20, 13,
+			138, 22, 5, 20, 5, 18, 9, 14, 195, 166, 18, 20, 9, 134, 22, 5, 12, 195, 166, 18, 20, 9, 134, 19, 1, 12, 195, 166, 18, 20,
+			13, 138, 4, 15, 11, 20, 18, 9, 14, 195, 166, 18, 20, 11, 200, 88, 83, 133, 72, 21, 9, 60, 224, 20, 11, 200, 76, 147, 85, 48,
+			21, 9, 60, 224, 20, 11, 200, 72, 84, 21, 80, 21, 9, 60, 224, 20, 11, 200, 72, 83, 143, 88, 21, 9, 60, 224, 20, 11, 200, 72,
+			83, 5, 28, 21, 9, 60, 224, 20, 11, 200, 65, 35, 212, 20, 181, 9, 60, 224, 20, 11, 200, 65, 35, 196, 84, 181, 9, 60, 224, 20,
+			11, 200, 64, 244, 21, 48, 21, 9, 60, 224, 20, 11, 200, 61, 4, 15, 76, 149, 9, 60, 224, 20, 11, 200, 36, 229, 137, 80, 21, 9,
+			60, 224, 20, 11, 200, 36, 228, 208, 20, 181, 9, 60, 224, 20, 11, 200, 36, 226, 9, 8, 149, 9, 60, 224, 20, 11, 200, 36, 224, 201,
+			80, 21, 9, 60, 224, 20, 11, 200, 28, 192, 67, 36, 21, 9, 60, 224, 20, 11, 200, 20, 209, 78, 16, 21, 9, 60, 224, 20, 11, 200,
+			16, 83, 5, 28, 21, 9, 60, 224, 20, 11, 200, 4, 211, 85, 56, 149, 9, 60, 224, 20, 12, 137, 8, 5, 2, 18, 195, 166, 9, 19,
+			11, 20, 9, 198, 21, 84, 129, 76, 145, 78, 20, 7, 196, 4, 113, 78, 80, 20, 11, 200, 32, 244, 137, 76, 243, 148, 4, 192, 20, 7,
+			196, 4, 147, 65, 8, 20, 0, 15, 69, 76, 18, 71, 60, 224, 89, 35, 57, 81, 108, 20, 50, 0, 14, 139, 18, 5, 1, 11, 20, 9,
+			15, 14, 195, 166, 18, 20, 8, 197, 21, 2, 71, 60, 224, 20, 8, 197, 72, 21, 9, 60, 224, 20, 12, 201, 44, 194, 77, 4, 181, 5,
+			72, 145, 76, 20, 13, 138, 195, 184, 11, 15, 12, 15, 7, 9, 19, 11, 20, 8, 197, 33, 144, 146, 36, 64, 20, 16, 69, 29, 32, 84,
+			36, 224, 81, 34, 112, 47, 6, 109, 68, 0, 20, 8, 197, 24, 84, 148, 36, 192, 20, 12, 201, 72, 83, 73, 56, 148, 195, 20, 228, 192,
+			20, 12, 201, 49, 83, 73, 56, 84, 195, 20, 228, 192, 20, 12, 201, 24, 197, 79, 72, 84, 195, 20, 228, 192, 20, 8, 197, 85, 33, 84,
+			4, 224, 21, 8, 197, 88, 19, 132, 4, 192, 20, 8, 197, 76, 19, 132, 4, 192, 20, 0, 11, 136, 20, 9, 20, 21, 12, 195, 166, 18,
+			20, 11, 136, 16, 15, 16, 21, 12, 195, 166, 18, 20, 11, 136, 13, 15, 14, 5, 20, 195, 166, 18, 20, 11, 136, 13, 15, 4, 21, 12,
+			195, 166, 18, 20, 11, 136, 9, 14, 19, 21, 12, 195, 166, 18, 20, 14, 139, 11, 1, 14, 1, 1, 14, 195, 166, 9, 19, 11, 20, 14,
+			139, 11, 1, 14, 1, 1, 14, 195, 166, 9, 19, 11, 20, 13, 202, 44, 148, 143, 65, 32, 75, 80, 146, 197, 72, 20, 0, 25, 73, 77,
+			21, 65, 72, 81, 1, 56, 49, 78, 89, 49, 58, 6, 36, 13, 72, 35, 12, 50, 89, 14, 50, 0, 10, 199, 44, 19, 142, 20, 197, 82,
+			20, 20, 10, 199, 28, 83, 133, 72, 21, 15, 72, 20, 12, 137, 19, 5, 11, 18, 5, 20, 195, 166, 18, 20, 12, 137, 13, 21, 19, 11,
+			21, 12, 195, 166, 18, 20, 10, 199, 44, 243, 139, 84, 34, 78, 20, 20, 14, 203, 76, 147, 80, 48, 145, 137, 44, 21, 9, 60, 224, 20,
+			14, 203, 72, 82, 207, 53, 1, 78, 76, 21, 9, 60, 224, 20, 14, 203, 72, 82, 207, 52, 208, 78, 16, 21, 9, 60, 224, 20, 14, 203,
+			72, 82, 193, 64, 149, 21, 48, 21, 9, 60, 224, 20, 14, 203, 36, 229, 5, 73, 4, 133, 80, 21, 9, 60, 224, 20, 14, 203, 20, 180,
+			212, 72, 20, 15, 76, 149, 9, 60, 224, 20, 10, 199, 81, 83, 142, 20, 193, 82, 20, 20, 10, 199, 4, 178, 207, 72, 65, 82, 20, 20,
+			11, 136, 195, 166, 20, 5, 18, 9, 19, 11, 20, 15, 140, 16, 1, 12, 195, 166, 15, 12, 9, 20, 9, 19, 11, 20, 15, 140, 13, 1,
+			10, 5, 19, 20, 195, 166, 20, 9, 19, 11, 20, 9, 198, 88, 19, 129, 16, 149, 77, 20, 9, 198, 56, 240, 133, 48, 149, 77, 20, 10,
+			199, 4, 209, 133, 80, 19, 73, 56, 20, 9, 134, 1, 14, 195, 166, 13, 9, 20, 14, 203, 81, 32, 78, 76, 49, 78, 16, 83, 148, 4,
+			192, 20, 0, 13, 138, 16, 1, 18, 1, 19, 9, 20, 195, 166, 18, 20, 13, 138, 8, 21, 13, 1, 14, 9, 20, 195, 166, 18, 20, 13,
+			138, 8, 5, 18, 5, 4, 9, 20, 195, 166, 18, 20, 13, 138, 2, 9, 14, 15, 11, 21, 12, 195, 166, 18, 20, 13, 138, 1, 21, 20,
+			15, 18, 9, 20, 195, 166, 18, 20, 11, 200, 72, 82, 210, 20, 21, 9, 60, 224, 20, 11, 200, 52, 245, 9, 88, 21, 9, 60, 224, 20,
+			11, 200, 44, 244, 21, 48, 21, 9, 60, 224, 20, 11, 200, 36, 226, 84, 36, 21, 9, 60, 224, 20, 11, 200, 16, 83, 143, 80, 21, 9,
+			60, 224, 20, 11, 200, 16, 81, 137, 56, 149, 9, 60, 224, 20, 11, 200, 5, 4, 15, 76, 149, 9, 60, 224, 20, 11, 200, 4, 197, 5,
+			72, 21, 9, 60, 224, 20, 12, 137, 16, 18, 195, 184, 10, 19, 9, 19, 11, 20, 11, 200, 64, 243, 25, 85, 33, 84, 4, 224, 21, 0,
+			14, 139, 16, 1, 18, 20, 9, 11, 21, 12, 195, 166, 18, 20, 14, 139, 13, 9, 12, 12, 9, 1, 18, 4, 195, 166, 18, 20, 14, 139,
+			13, 1, 20, 18, 9, 11, 21, 12, 195, 166, 18, 20, 8, 197, 80, 16, 140, 21, 64, 20, 8, 197, 45, 80, 137, 77, 64, 20, 8, 197,
+			52, 81, 9, 21, 32, 20, 8, 197, 80, 17, 198, 5, 64, 20, 8, 197, 65, 83, 19, 5, 32, 20, 0, 15, 140, 21, 14, 9, 22, 5,
+			18, 19, 9, 20, 195, 166, 18, 20, 15, 140, 19, 16, 5, 11, 20, 1, 11, 21, 12, 195, 166, 18, 20, 12, 201, 88, 242, 193, 9, 83,
+			1, 72, 149, 77, 20, 9, 198, 64, 20, 9, 76, 209, 64, 20, 9, 198, 8, 147, 9, 76, 209, 64, 20, 12, 201, 12, 192, 73, 73, 99,
+			217, 4, 224, 197, 20, 9, 198, 12, 244, 147, 4, 113, 64, 20, 0, 13, 138, 16, 18, 195, 166, 19, 9, 4, 9, 21, 13, 20, 12, 71,
+			64, 83, 148, 32, 245, 83, 20, 21, 0, 10, 0, 11, 200, 52, 147, 9, 80, 20, 137, 77, 64, 20, 11, 200, 52, 19, 137, 13, 84, 137,
+			77, 64, 20, 11, 200, 88, 148, 203, 61, 50, 84, 21, 64, 20, 11, 200, 77, 69, 80, 36, 66, 84, 21, 64, 20, 11, 200, 77, 65, 82,
+			36, 194, 84, 21, 64, 20, 11, 200, 77, 64, 66, 36, 194, 84, 21, 64, 20, 11, 200, 76, 84, 150, 36, 194, 84, 21, 64, 20, 11, 200,
+			45, 84, 137, 61, 50, 84, 21, 64, 20, 11, 200, 36, 229, 5, 57, 50, 84, 21, 64, 20, 11, 200, 16, 149, 133, 73, 50, 84, 21, 64,
+			20, 11, 200, 5, 67, 206, 4, 194, 84, 21, 64, 20, 11, 200, 4, 211, 210, 4, 194, 84, 21, 64, 20, 9, 198, 80, 19, 9, 76, 208,
+			78, 21, 11, 200, 72, 81, 201, 77, 68, 129, 57, 64, 20, 0, 23, 73, 77, 21, 65, 72, 81, 1, 56, 49, 64, 89, 49, 58, 6, 36,
+			13, 72, 35, 12, 50, 89, 0, 16, 69, 16, 148, 208, 85, 64, 72, 37, 89, 71, 6, 116, 47, 0, 20, 8, 197, 61, 32, 84, 61, 32,
+			20, 8, 197, 88, 147, 204, 21, 64, 20, 12, 201, 4, 178, 207, 53, 0, 71, 56, 84, 128, 20, 12, 201, 84, 226, 70, 61, 35, 73, 76,
+			209, 64, 20, 12, 201, 77, 84, 146, 20, 19, 9, 76, 209, 64, 20, 12, 201, 72, 17, 9, 44, 19, 9, 76, 209, 64, 20, 12, 201, 65,
+			32, 71, 52, 21, 9, 76, 209, 64, 20, 12, 201, 48, 144, 133, 72, 19, 9, 76, 209, 64, 20, 8, 197, 65, 35, 194, 5, 64, 20, 0,
+			9, 198, 65, 35, 208, 72, 145, 64, 20, 9, 198, 36, 225, 197, 56, 145, 64, 20, 9, 198, 76, 17, 9, 76, 209, 64, 20, 9, 198, 32,
+			243, 9, 76, 209, 64, 20, 9, 198, 5, 65, 73, 76, 209, 64, 20, 9, 198, 88, 18, 193, 56, 49, 64, 20, 9, 198, 64, 21, 18, 36,
+			49, 64, 20, 9, 198, 44, 17, 5, 56, 49, 64, 20, 9, 198, 4, 227, 143, 56, 49, 64, 20, 0, 14, 139, 6, 12, 195, 184, 10, 20,
+			5, 14, 9, 19, 20, 20, 14, 203, 72, 85, 133, 73, 50, 66, 36, 194, 84, 21, 64, 20, 14, 203, 65, 35, 198, 37, 64, 66, 36, 194,
+			84, 21, 64, 20, 14, 203, 44, 243, 80, 5, 66, 66, 36, 194, 84, 21, 64, 20, 14, 203, 37, 36, 129, 80, 147, 206, 4, 194, 84, 21,
+			64, 20, 14, 203, 4, 48, 197, 65, 64, 66, 36, 194, 84, 21, 64, 20, 0, 11, 200, 64, 84, 134, 61, 32, 84, 61, 32, 20, 11, 200,
+			60, 36, 197, 73, 96, 84, 61, 32, 20, 11, 200, 44, 243, 77, 85, 64, 84, 61, 32, 20, 11, 200, 44, 19, 11, 84, 192, 84, 61, 32,
+			20, 11, 200, 36, 225, 143, 72, 208, 84, 61, 32, 20, 11, 200, 17, 84, 12, 36, 176, 84, 61, 32, 20, 11, 200, 16, 85, 1, 36, 195,
+			9, 77, 64, 20, 11, 200, 16, 148, 212, 72, 144, 149, 21, 32, 20, 12, 137, 13, 1, 14, 195, 169, 18, 12, 9, 7, 20, 15, 204, 76,
+			83, 148, 36, 209, 78, 80, 19, 9, 76, 209, 64, 20, 9, 198, 60, 49, 65, 56, 145, 78, 20, 13, 138, 11, 195, 184, 2, 5, 14, 8,
+			1, 22, 14, 20, 7, 196, 5, 66, 5, 56, 20, 11, 200, 77, 81, 134, 36, 50, 69, 57, 64, 20, 11, 200, 44, 243, 139, 84, 34, 78,
+			5, 64, 20, 11, 200, 44, 243, 131, 20, 229, 18, 5, 64, 20, 11, 200, 4, 113, 204, 60, 209, 82, 5, 64, 20, 7, 196, 16, 82, 193,
+			56, 21, 9, 198, 52, 147, 137, 52, 19, 0, 20, 9, 198, 16, 145, 201, 80, 19, 0, 20, 0, 8, 197, 80, 83, 204, 60, 112, 20, 8,
+			197, 8, 147, 204, 60, 112, 20, 8, 197, 24, 147, 5, 72, 80, 20, 8, 197, 16, 244, 197, 72, 80, 20, 8, 197, 28, 83, 133, 76, 80,
+			20, 12, 201, 44, 194, 77, 4, 181, 5, 72, 145, 64, 20, 12, 201, 76, 83, 147, 84, 19, 9, 76, 209, 64, 20, 12, 201, 52, 243, 143,
+			64, 243, 9, 76, 209, 64, 20, 12, 201, 24, 81, 5, 72, 19, 9, 76, 209, 64, 20, 12, 201, 44, 243, 12, 20, 181, 18, 36, 49, 64,
+			20, 0, 9, 198, 84, 99, 204, 60, 114, 64, 20, 9, 198, 61, 67, 204, 60, 114, 64, 20, 9, 198, 21, 67, 204, 60, 114, 64, 20, 9,
+			198, 5, 3, 204, 60, 114, 64, 20, 13, 138, 8, 195, 184, 14, 19, 5, 18, 9, 19, 20, 20, 17, 206, 16, 145, 134, 21, 33, 78, 80,
+			144, 66, 36, 194, 84, 21, 64, 20, 14, 139, 15, 16, 20, 195, 166, 14, 11, 5, 12, 9, 7, 20, 9, 198, 21, 2, 68, 20, 210, 64,
+			20, 9, 198, 17, 84, 12, 36, 176, 84, 20, 9, 198, 13, 146, 204, 4, 208, 84, 20, 0, 9, 198, 32, 244, 148, 60, 227, 205, 20, 10,
+			199, 8, 150, 129, 73, 33, 82, 36, 20, 11, 136, 1, 14, 195, 166, 13, 9, 19, 11, 20, 10, 199, 16, 148, 195, 37, 3, 9, 56, 20,
+			9, 198, 16, 146, 207, 80, 243, 73, 20, 10, 199, 29, 147, 78, 5, 53, 9, 44, 20, 11, 67, 76, 149, 0, 89, 6, 37, 47, 0, 72,
+			0, 11, 200, 20, 208, 143, 84, 50, 21, 72, 80, 20, 11, 200, 5, 52, 217, 72, 147, 204, 60, 112, 20, 9, 198, 76, 245, 83, 4, 99,
+			206, 20, 11, 200, 29, 34, 77, 5, 52, 197, 72, 80, 20, 11, 200, 88, 148, 143, 48, 241, 201, 76, 176, 20, 11, 200, 80, 83, 5, 24,
+			243, 137, 76, 176, 20, 11, 200, 73, 83, 143, 48, 241, 201, 76, 176, 20, 11, 200, 53, 146, 207, 48, 241, 201, 76, 176, 20, 11, 200, 44,
+			20, 22, 21, 33, 9, 76, 176, 20, 11, 200, 36, 65, 79, 48, 241, 201, 76, 176, 20, 11, 200, 24, 147, 15, 48, 241, 201, 76, 176, 20,
+			11, 200, 16, 83, 65, 28, 241, 201, 76, 176, 20, 12, 137, 3, 195, 166, 19, 1, 18, 9, 19, 11, 20, 12, 137, 1, 18, 1, 13, 195,
+			166, 9, 19, 11, 20, 11, 200, 28, 20, 212, 72, 243, 143, 52, 144, 20, 15, 204, 81, 32, 68, 37, 66, 79, 56, 19, 9, 76, 209, 64,
+			20, 15, 204, 32, 84, 141, 4, 100, 143, 16, 149, 9, 76, 209, 64, 20, 9, 198, 45, 35, 193, 80, 145, 78, 20, 7, 196, 72, 243, 65,
+			56, 21, 0, 12, 201, 45, 34, 77, 36, 227, 204, 60, 114, 64, 20, 12, 201, 44, 194, 77, 5, 67, 204, 60, 114, 64, 20, 12, 201, 32,
+			84, 144, 21, 67, 204, 60, 114, 64, 20, 8, 197, 72, 21, 137, 56, 80, 20, 17, 142, 16, 21, 4, 19, 5, 12, 195, 184, 10, 5, 18,
+			12, 9, 7, 20, 13, 138, 6, 15, 18, 6, 195, 184, 18, 9, 19, 11, 20, 12, 201, 32, 84, 141, 4, 100, 143, 16, 149, 0, 20, 8,
+			197, 28, 84, 212, 36, 176, 20, 12, 201, 72, 81, 140, 20, 181, 5, 72, 85, 0, 20, 0, 14, 139, 1, 14, 195, 166, 19, 20, 5, 20,
+			9, 19, 11, 20, 12, 201, 77, 84, 208, 20, 228, 207, 72, 149, 77, 20, 12, 201, 44, 243, 147, 37, 53, 15, 72, 149, 77, 20, 9, 198,
+			4, 224, 84, 60, 210, 64, 20, 0, 6, 195, 4, 181, 84, 20, 10, 199, 36, 212, 5, 72, 21, 15, 72, 20, 10, 199, 20, 213, 76, 28,
+			21, 15, 72, 20, 9, 198, 56, 244, 212, 4, 193, 201, 20, 10, 199, 64, 243, 25, 4, 225, 18, 36, 20, 15, 140, 19, 25, 14, 195, 166,
+			19, 20, 5, 20, 9, 19, 11, 20, 15, 140, 11, 9, 14, 195, 166, 19, 20, 5, 20, 9, 19, 11, 20, 14, 203, 33, 83, 65, 56, 34,
+			79, 48, 241, 201, 76, 176, 20, 10, 199, 44, 243, 12, 20, 114, 65, 56, 20, 0, 11, 200, 60, 101, 1, 48, 211, 204, 60, 112, 20, 9,
+			198, 64, 150, 154, 36, 177, 82, 20, 9, 198, 36, 228, 208, 36, 49, 82, 20, 9, 198, 20, 180, 197, 72, 49, 82, 20, 9, 198, 17, 84,
+			12, 36, 49, 82, 20, 11, 200, 8, 20, 212, 5, 33, 5, 72, 80, 20, 16, 141, 195, 166, 7, 25, 16, 20, 15, 12, 15, 7, 9, 19,
+			11, 20, 11, 200, 77, 68, 129, 80, 81, 201, 76, 176, 20, 11, 200, 28, 83, 137, 80, 149, 137, 76, 176, 20, 11, 200, 17, 148, 204, 20,
+			181, 9, 76, 176, 20, 11, 200, 32, 85, 5, 72, 243, 143, 52, 144, 20, 7, 196, 88, 242, 193, 48, 20, 7, 196, 64, 242, 193, 48, 20,
+			7, 196, 24, 242, 193, 48, 20, 11, 200, 64, 192, 84, 52, 83, 129, 28, 80, 20, 0, 15, 5, 23, 3, 39, 5, 20, 84, 6, 36, 89,
+			36, 13, 72, 0, 12, 201, 89, 83, 11, 4, 227, 204, 60, 114, 64, 20, 12, 201, 28, 84, 143, 57, 67, 204, 60, 114, 64, 20, 9, 198,
+			72, 17, 9, 60, 195, 199, 20, 9, 198, 24, 147, 13, 60, 195, 199, 20, 13, 138, 1, 20, 8, 5, 14, 195, 166, 9, 19, 11, 20, 12,
+			201, 24, 20, 200, 36, 243, 133, 72, 85, 0, 20, 0, 10, 135, 195, 184, 11, 15, 12, 15, 7, 20, 9, 198, 76, 192, 86, 37, 53, 0,
+			20, 9, 198, 16, 144, 71, 72, 19, 64, 20, 12, 137, 16, 18, 195, 166, 13, 9, 5, 18, 5, 20, 9, 198, 65, 35, 194, 48, 83, 64,
+			20, 9, 198, 52, 18, 211, 36, 208, 76, 20, 0, 14, 5, 23, 3, 39, 5, 18, 84, 6, 36, 89, 36, 114, 0, 24, 73, 77, 21, 65,
+			72, 81, 1, 56, 49, 82, 89, 49, 58, 6, 36, 13, 72, 35, 12, 50, 89, 114, 0, 10, 199, 80, 83, 5, 60, 195, 199, 36, 20, 10,
+			199, 80, 82, 206, 60, 195, 199, 36, 20, 10, 199, 56, 85, 82, 60, 195, 199, 36, 20, 10, 199, 52, 244, 134, 60, 195, 199, 36, 20, 10,
+			199, 52, 85, 18, 60, 195, 199, 36, 20, 10, 199, 32, 20, 12, 60, 195, 199, 36, 20, 15, 140, 1, 18, 11, 195, 166, 15, 12, 15, 7,
+			9, 19, 11, 20, 12, 201, 20, 193, 75, 81, 35, 206, 36, 177, 82, 20, 12, 201, 65, 33, 83, 9, 149, 5, 72, 144, 78, 20, 7, 2,
+			95, 5, 36, 12, 0, 0, 7, 196, 48, 19, 69, 48, 20, 9, 198, 72, 82, 70, 36, 49, 82, 20, 9, 198, 52, 18, 211, 36, 209, 82,
+			20, 9, 198, 17, 84, 12, 36, 177, 82, 20, 9, 198, 5, 68, 143, 24, 145, 82, 20, 9, 198, 21, 35, 212, 36, 177, 82, 20, 7, 196,
+			64, 85, 9, 80, 20, 7, 196, 5, 81, 9, 80, 20, 7, 196, 28, 83, 65, 48, 20, 0, 9, 198, 28, 83, 77, 60, 195, 199, 20, 11,
+			136, 19, 195, 166, 20, 20, 5, 18, 9, 20, 11, 136, 14, 195, 165, 4, 12, 5, 18, 9, 20, 0, 13, 202, 44, 20, 129, 45, 65, 82,
+			60, 195, 199, 36, 20, 12, 137, 19, 11, 195, 166, 14, 4, 5, 18, 9, 20, 12, 137, 2, 18, 195, 166, 14, 4, 5, 18, 9, 20, 7,
+			2, 95, 9, 37, 12, 0, 0, 12, 201, 77, 148, 212, 20, 208, 84, 36, 177, 82, 20, 12, 201, 57, 83, 73, 76, 208, 84, 36, 177, 82,
+			20, 12, 201, 44, 148, 143, 52, 19, 148, 36, 177, 82, 20, 12, 201, 44, 20, 137, 76, 208, 84, 36, 177, 82, 20, 12, 201, 5, 53, 9,
+			28, 208, 84, 36, 177, 82, 20, 10, 199, 77, 64, 76, 4, 181, 9, 80, 20, 10, 199, 44, 243, 12, 20, 114, 65, 48, 20, 0, 13, 138,
+			4, 195, 166, 13, 15, 14, 9, 19, 5, 18, 20, 11, 200, 77, 81, 134, 36, 50, 69, 57, 48, 20, 0, 14, 139, 195, 184, 11, 15, 14,
+			15, 13, 9, 19, 5, 18, 20, 7, 196, 4, 113, 82, 20, 20, 17, 70, 24, 243, 132, 4, 229, 0, 83, 114, 68, 72, 6, 112, 68, 0,
+			20, 9, 198, 72, 80, 76, 37, 48, 66, 20, 9, 68, 81, 83, 133, 72, 21, 0, 10, 0, 9, 198, 77, 64, 84, 84, 84, 133, 20, 9,
+			198, 44, 19, 143, 56, 84, 133, 20, 9, 198, 17, 81, 76, 48, 84, 133, 20, 8, 197, 76, 244, 132, 36, 224, 20, 8, 197, 64, 82, 212,
+			36, 224, 20, 13, 202, 24, 244, 130, 73, 81, 197, 72, 148, 205, 20, 20, 8, 197, 65, 35, 208, 4, 224, 21, 0, 9, 198, 80, 245, 67,
+			32, 84, 128, 20, 9, 198, 76, 147, 85, 48, 84, 128, 20, 9, 198, 72, 83, 5, 28, 84, 128, 20, 9, 198, 72, 81, 133, 72, 84, 128,
+			20, 9, 198, 72, 81, 9, 28, 84, 128, 20, 9, 198, 61, 5, 9, 52, 84, 128, 20, 9, 198, 36, 229, 137, 80, 84, 128, 20, 9, 198,
+			36, 224, 201, 80, 84, 128, 20, 9, 198, 32, 243, 143, 72, 84, 128, 20, 9, 198, 32, 21, 129, 72, 84, 128, 20, 9, 198, 29, 32, 83,
+			76, 84, 128, 20, 9, 198, 16, 85, 143, 88, 84, 128, 20, 9, 198, 16, 83, 5, 28, 84, 128, 20, 9, 198, 16, 80, 201, 52, 84, 128,
+			20, 9, 198, 12, 128, 82, 28, 84, 128, 20, 9, 198, 12, 128, 78, 28, 84, 128, 20, 9, 198, 9, 32, 73, 76, 84, 128, 20, 9, 198,
+			4, 197, 5, 72, 84, 128, 20, 9, 198, 4, 69, 137, 76, 84, 128, 20, 9, 198, 48, 19, 73, 56, 20, 128, 20, 0, 6, 195, 85, 48,
+			64, 17, 10, 199, 72, 85, 143, 49, 65, 82, 20, 20, 10, 199, 24, 244, 141, 5, 65, 82, 20, 20, 10, 199, 60, 36, 212, 21, 68, 137,
+			44, 20, 12, 201, 36, 225, 9, 24, 97, 82, 20, 229, 0, 20, 0, 11, 200, 77, 80, 150, 20, 229, 9, 60, 224, 20, 11, 200, 65, 35,
+			208, 61, 37, 9, 60, 224, 20, 7, 196, 88, 243, 69, 72, 20, 12, 201, 16, 147, 69, 57, 50, 79, 56, 84, 133, 20, 11, 200, 24, 20,
+			195, 37, 53, 15, 36, 64, 20, 11, 200, 8, 83, 133, 16, 146, 212, 36, 224, 20, 9, 198, 17, 80, 140, 4, 229, 0, 20, 0, 12, 201,
+			81, 32, 78, 76, 69, 75, 80, 244, 128, 20, 12, 201, 72, 85, 137, 80, 19, 9, 76, 84, 128, 20, 12, 201, 52, 243, 143, 64, 243, 9,
+			76, 84, 128, 20, 12, 201, 32, 82, 212, 60, 116, 129, 24, 84, 128, 20, 12, 201, 16, 83, 73, 77, 50, 79, 56, 84, 128, 20, 12, 201,
+			5, 85, 15, 52, 21, 9, 76, 84, 128, 20, 8, 197, 64, 148, 212, 60, 192, 20, 11, 136, 21, 18, 195, 166, 13, 9, 19, 11, 20, 8,
+			197, 88, 147, 204, 36, 224, 20, 8, 197, 8, 133, 84, 4, 224, 20, 8, 197, 8, 133, 84, 4, 224, 21, 8, 197, 72, 149, 21, 4, 192,
+			20, 0, 11, 200, 21, 2, 68, 36, 20, 203, 61, 0, 20, 9, 198, 52, 21, 1, 16, 244, 128, 20, 9, 198, 45, 84, 129, 80, 244, 128,
+			20, 9, 198, 81, 32, 83, 76, 84, 128, 20, 9, 198, 77, 84, 16, 48, 84, 128, 20, 9, 198, 72, 81, 21, 12, 84, 128, 20, 9, 198,
+			53, 83, 11, 80, 84, 128, 20, 9, 198, 36, 226, 137, 12, 84, 128, 20, 9, 198, 36, 226, 9, 8, 84, 128, 20, 9, 198, 36, 225, 140,
+			84, 84, 128, 20, 9, 198, 36, 225, 137, 12, 84, 128, 20, 9, 198, 36, 115, 143, 72, 84, 128, 20, 9, 198, 16, 84, 137, 88, 84, 128,
+			20, 9, 198, 16, 81, 137, 56, 84, 128, 20, 9, 198, 16, 81, 21, 12, 84, 128, 20, 9, 198, 16, 81, 9, 44, 84, 128, 20, 9, 198,
+			16, 81, 9, 12, 84, 128, 20, 9, 198, 4, 97, 137, 12, 84, 128, 20, 9, 198, 4, 69, 143, 44, 84, 128, 20, 9, 198, 8, 145, 137,
+			48, 20, 128, 20, 11, 70, 76, 48, 78, 56, 84, 128, 21, 0, 10, 0, 10, 199, 52, 18, 213, 48, 21, 21, 72, 20, 10, 199, 64, 192,
+			71, 36, 21, 15, 72, 20, 10, 199, 16, 84, 133, 29, 83, 5, 72, 20, 0, 11, 200, 72, 81, 146, 4, 181, 9, 60, 224, 20, 11, 200,
+			44, 243, 150, 20, 229, 9, 60, 224, 20, 11, 200, 36, 228, 197, 45, 66, 67, 36, 64, 20, 11, 200, 8, 18, 212, 21, 34, 67, 36, 64,
+			20, 11, 200, 29, 80, 84, 20, 208, 76, 4, 224, 20, 11, 200, 76, 82, 83, 52, 241, 210, 4, 96, 20, 11, 200, 60, 49, 65, 56, 241,
+			210, 4, 96, 20, 11, 200, 44, 20, 132, 36, 241, 210, 4, 96, 20, 11, 200, 8, 144, 140, 36, 241, 210, 4, 96, 20, 0, 8, 197, 76,
+			82, 212, 61, 32, 20, 12, 201, 80, 245, 1, 48, 148, 193, 80, 244, 128, 20, 12, 201, 72, 84, 212, 5, 84, 129, 80, 244, 128, 20, 12,
+			201, 44, 243, 15, 56, 148, 193, 80, 244, 128, 20, 12, 201, 44, 21, 1, 49, 148, 193, 80, 244, 128, 20, 12, 201, 81, 34, 86, 36, 19,
+			9, 76, 84, 128, 20, 12, 201, 81, 32, 85, 52, 21, 9, 76, 84, 128, 20, 12, 201, 77, 66, 71, 52, 21, 9, 76, 84, 128, 20, 12,
+			201, 76, 82, 211, 84, 19, 9, 76, 84, 128, 20, 12, 201, 56, 243, 73, 56, 19, 9, 76, 84, 128, 20, 12, 201, 53, 84, 201, 44, 19,
+			9, 76, 84, 128, 20, 12, 201, 48, 144, 133, 72, 19, 9, 76, 84, 128, 20, 12, 201, 40, 245, 82, 56, 19, 9, 76, 84, 128, 20, 12,
+			201, 36, 211, 79, 8, 147, 9, 76, 84, 128, 20, 12, 201, 32, 245, 141, 21, 53, 5, 72, 84, 128, 20, 12, 201, 32, 243, 79, 48, 241,
+			201, 76, 84, 128, 20, 12, 201, 8, 84, 212, 36, 19, 9, 76, 84, 128, 20, 8, 197, 4, 195, 9, 21, 32, 20, 12, 201, 8, 244, 148,
+			4, 67, 208, 80, 84, 128, 20, 9, 198, 44, 195, 214, 56, 84, 137, 20, 12, 201, 29, 32, 77, 52, 21, 9, 44, 84, 128, 20, 12, 201,
+			24, 193, 71, 52, 21, 9, 44, 84, 128, 20, 12, 201, 16, 21, 1, 52, 21, 9, 44, 84, 128, 20, 8, 197, 25, 33, 71, 5, 64, 20,
+			0, 9, 198, 33, 148, 14, 61, 49, 64, 20, 15, 140, 16, 18, 195, 166, 16, 1, 18, 1, 20, 9, 15, 14, 20, 9, 198, 24, 147, 133,
+			77, 49, 64, 20, 9, 198, 4, 35, 206, 56, 83, 148, 20, 9, 198, 17, 80, 140, 20, 19, 148, 20, 0, 10, 199, 24, 244, 141, 21, 34,
+			78, 28, 20, 6, 195, 80, 147, 0, 76, 6, 195, 88, 83, 0, 76, 0, 11, 136, 7, 18, 195, 166, 3, 9, 19, 20, 20, 17, 142, 16,
+			18, 195, 166, 14, 21, 13, 5, 18, 1, 20, 9, 15, 14, 20, 11, 200, 24, 19, 19, 36, 98, 75, 5, 64, 20, 0, 8, 197, 16, 85,
+			137, 21, 32, 20, 9, 198, 76, 225, 68, 44, 84, 137, 20, 12, 201, 4, 68, 203, 36, 195, 5, 48, 145, 192, 20, 12, 201, 76, 82, 211,
+			84, 19, 9, 76, 209, 64, 20, 9, 198, 29, 33, 86, 36, 225, 5, 20, 12, 201, 61, 48, 201, 48, 195, 199, 72, 17, 128, 20, 12, 201,
+			20, 229, 18, 21, 4, 133, 56, 19, 148, 20, 6, 195, 88, 81, 0, 76, 0, 10, 66, 92, 48, 84, 6, 36, 89, 36, 0, 9, 198, 56,
+			243, 73, 56, 83, 0, 20, 9, 198, 64, 20, 129, 76, 243, 0, 20, 9, 198, 72, 147, 69, 77, 49, 64, 20, 14, 139, 6, 1, 18, 9,
+			19, 195, 166, 9, 19, 13, 5, 20, 9, 198, 36, 224, 201, 16, 83, 148, 20, 9, 198, 29, 32, 68, 36, 83, 148, 20, 9, 198, 16, 242,
+			213, 52, 83, 148, 20, 9, 198, 48, 144, 133, 72, 19, 0, 20, 9, 198, 28, 192, 67, 36, 19, 0, 20, 0, 0, 11, 200, 44, 243, 80,
+			36, 192, 84, 61, 32, 20, 14, 70, 8, 82, 71, 56, 85, 0, 71, 36, 68, 36, 0, 66, 7, 196, 72, 242, 197, 72, 20, 11, 200, 44,
+			243, 148, 72, 144, 149, 21, 32, 20, 9, 198, 24, 18, 212, 60, 145, 0, 20, 9, 198, 24, 21, 143, 72, 149, 0, 20, 9, 198, 4, 181,
+			129, 88, 149, 0, 20, 16, 141, 195, 166, 11, 22, 9, 12, 9, 2, 18, 9, 19, 13, 5, 20, 15, 204, 76, 83, 147, 5, 66, 79, 56,
+			19, 9, 76, 209, 64, 20, 9, 198, 21, 68, 149, 72, 145, 78, 20, 9, 198, 29, 32, 83, 76, 21, 0, 20, 9, 198, 16, 83, 5, 28,
+			21, 0, 20, 0, 9, 198, 16, 144, 83, 44, 244, 0, 20, 8, 197, 5, 96, 78, 12, 80, 20, 8, 197, 76, 181, 76, 48, 80, 76, 0,
+			20, 67, 16, 82, 129, 72, 36, 91, 57, 35, 15, 6, 84, 116, 0, 44, 81, 118, 117, 32, 9, 198, 24, 19, 148, 5, 50, 64, 20, 14,
+			139, 13, 1, 12, 20, 7, 195, 184, 18, 5, 18, 9, 20, 9, 198, 52, 85, 18, 61, 3, 204, 20, 0, 12, 137, 22, 15, 12, 20, 9,
+			7, 195, 184, 18, 20, 10, 199, 72, 80, 133, 48, 194, 79, 56, 20, 12, 201, 77, 3, 206, 80, 19, 137, 80, 85, 0, 20, 10, 199, 72,
+			81, 210, 20, 66, 69, 72, 20, 10, 199, 64, 146, 193, 57, 65, 82, 36, 20, 10, 199, 24, 245, 15, 52, 85, 18, 36, 20, 10, 199, 24,
+			147, 9, 77, 65, 82, 36, 20, 10, 199, 8, 145, 207, 81, 65, 82, 36, 20, 10, 199, 5, 37, 9, 77, 65, 82, 36, 20, 10, 199, 44,
+			243, 5, 72, 146, 197, 72, 20, 10, 199, 56, 20, 139, 60, 208, 78, 36, 20, 10, 199, 61, 32, 78, 28, 80, 68, 20, 20, 0, 7, 196,
+			72, 85, 21, 72, 20, 11, 200, 44, 20, 132, 36, 243, 15, 28, 144, 20, 11, 200, 64, 83, 1, 72, 115, 206, 36, 80, 20, 20, 145, 1,
+			6, 22, 195, 166, 18, 7, 5, 13, 5, 11, 1, 14, 9, 19, 13, 5, 20, 11, 136, 16, 195, 166, 4, 15, 6, 9, 12, 20, 0, 30,
+			69, 69, 82, 67, 32, 80, 49, 37, 91, 15, 55, 39, 34, 6, 109, 12, 50, 12, 0, 81, 108, 111, 114, 114, 97, 105, 110, 101, 32, 10,
+			135, 12, 5, 11, 20, 195, 184, 18, 20, 15, 140, 13, 1, 14, 195, 184, 22, 18, 5, 18, 9, 14, 7, 20, 9, 198, 28, 84, 141, 4,
+			226, 69, 20, 9, 198, 12, 84, 133, 52, 243, 137, 20, 8, 197, 56, 245, 137, 12, 80, 20, 8, 197, 64, 19, 129, 16, 80, 20, 8, 197,
+			56, 18, 129, 16, 80, 20, 15, 2, 95, 33, 40, 72, 51, 114, 71, 89, 47, 36, 57, 50, 0, 0, 20, 67, 4, 195, 5, 110, 55, 108,
+			15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 16, 141, 16, 18, 195, 166, 19, 5, 18, 22, 5, 18, 9, 14, 7, 20, 16, 141,
+			4, 195, 166, 13, 15, 14, 9, 19, 5, 18, 9, 14, 7, 20, 13, 202, 80, 147, 6, 61, 35, 1, 16, 83, 9, 28, 20, 9, 198, 56,
+			245, 137, 12, 144, 84, 20, 9, 198, 24, 16, 146, 36, 176, 84, 20, 0, 13, 138, 9, 14, 6, 5, 11, 20, 9, 195, 184, 19, 20, 12,
+			201, 76, 243, 9, 16, 20, 137, 80, 85, 0, 20, 12, 201, 72, 81, 213, 48, 20, 137, 80, 85, 0, 20, 17, 142, 195, 184, 11, 15, 14,
+			15, 13, 9, 19, 5, 18, 9, 14, 7, 20, 13, 138, 20, 18, 195, 166, 14, 5, 18, 9, 14, 7, 20, 9, 198, 45, 84, 5, 72, 147,
+			135, 20, 10, 199, 44, 244, 212, 84, 210, 69, 72, 20, 10, 199, 60, 208, 146, 100, 65, 82, 36, 20, 10, 199, 52, 20, 203, 36, 225, 82,
+			36, 20, 10, 199, 45, 32, 75, 36, 193, 82, 36, 20, 12, 201, 81, 32, 78, 77, 97, 83, 80, 149, 0, 20, 12, 201, 52, 84, 207, 64,
+			245, 1, 52, 145, 78, 20, 10, 199, 80, 19, 80, 60, 224, 68, 20, 20, 10, 199, 44, 243, 15, 56, 224, 68, 20, 20, 0, 13, 138, 9,
+			14, 19, 16, 5, 11, 20, 195, 184, 18, 20, 11, 200, 52, 85, 15, 16, 243, 15, 28, 144, 20, 11, 200, 45, 34, 83, 80, 243, 15, 28,
+			144, 20, 11, 200, 20, 229, 15, 52, 243, 15, 28, 144, 20, 15, 204, 16, 83, 132, 72, 242, 210, 60, 227, 204, 60, 114, 64, 20, 9, 198,
+			36, 225, 12, 60, 113, 82, 20, 9, 198, 24, 16, 146, 36, 177, 82, 20, 9, 198, 20, 112, 76, 37, 49, 82, 20, 11, 200, 16, 145, 148,
+			60, 225, 197, 72, 80, 20, 9, 198, 16, 84, 18, 36, 209, 82, 20, 9, 198, 16, 81, 143, 72, 209, 82, 20, 9, 198, 4, 227, 196, 37,
+			49, 82, 20, 11, 200, 24, 244, 141, 100, 225, 5, 72, 144, 20, 9, 198, 37, 35, 206, 36, 177, 82, 20, 11, 200, 44, 243, 21, 52, 32,
+			82, 36, 80, 20, 11, 200, 44, 19, 5, 56, 64, 82, 36, 80, 20, 21, 72, 80, 244, 148, 20, 195, 9, 56, 144, 47, 114, 47, 13, 55,
+			6, 37, 50, 37, 0, 20, 7, 196, 88, 148, 137, 48, 20, 9, 198, 52, 20, 143, 44, 176, 78, 20, 8, 67, 76, 243, 135, 21, 0, 10,
+			0, 14, 139, 1, 11, 21, 16, 21, 14, 11, 20, 195, 184, 18, 20, 15, 140, 7, 18, 195, 166, 3, 9, 19, 5, 18, 9, 14, 7, 20,
+			9, 198, 44, 192, 77, 52, 84, 137, 20, 9, 198, 9, 38, 71, 28, 84, 137, 20, 9, 198, 56, 18, 86, 37, 51, 69, 20, 13, 70, 20,
+			228, 197, 52, 35, 5, 21, 102, 114, 0, 10, 0, 9, 198, 77, 147, 132, 72, 243, 64, 20, 12, 201, 72, 81, 201, 77, 68, 133, 72, 147,
+			135, 20, 12, 201, 61, 34, 197, 77, 68, 133, 72, 147, 135, 20, 12, 201, 44, 243, 80, 20, 228, 197, 72, 147, 135, 20, 12, 201, 36, 225,
+			137, 49, 68, 133, 72, 147, 135, 20, 12, 201, 36, 195, 21, 77, 68, 133, 72, 147, 135, 20, 12, 201, 4, 208, 76, 28, 19, 69, 72, 147,
+			135, 20, 9, 198, 88, 19, 129, 16, 147, 128, 20, 9, 198, 52, 83, 1, 52, 147, 128, 20, 9, 198, 37, 64, 76, 36, 83, 128, 20, 0,
+			19, 67, 16, 83, 128, 72, 6, 109, 50, 15, 107, 36, 34, 0, 81, 104, 101, 114, 32, 19, 67, 16, 83, 128, 72, 6, 109, 50, 15, 72,
+			36, 34, 0, 81, 100, 101, 114, 32, 16, 141, 3, 8, 5, 6, 18, 5, 4, 1, 11, 20, 195, 184, 18, 20, 10, 199, 80, 21, 84, 60,
+			195, 199, 36, 20, 10, 199, 76, 240, 201, 60, 195, 199, 36, 20, 10, 199, 76, 83, 73, 60, 195, 199, 36, 20, 10, 199, 65, 54, 75, 60,
+			195, 199, 36, 20, 10, 199, 33, 145, 18, 60, 195, 199, 36, 20, 10, 199, 25, 148, 201, 60, 195, 199, 36, 20, 10, 199, 21, 70, 77, 60,
+			195, 199, 36, 20, 12, 201, 45, 38, 83, 80, 19, 12, 37, 49, 82, 20, 12, 201, 32, 244, 208, 37, 64, 76, 37, 49, 82, 20, 10, 199,
+			84, 197, 9, 52, 21, 21, 52, 20, 10, 199, 5, 85, 15, 52, 240, 137, 48, 20, 10, 135, 13, 195, 166, 18, 11, 1, 20, 20, 11, 70,
+			72, 86, 78, 60, 193, 19, 21, 0, 10, 10, 67, 16, 83, 128, 72, 109, 50, 0, 72, 0, 9, 198, 72, 80, 197, 57, 49, 82, 20, 9,
+			198, 44, 243, 135, 73, 81, 82, 20, 12, 201, 77, 6, 84, 76, 194, 75, 44, 84, 137, 20, 12, 201, 32, 243, 204, 36, 112, 78, 37, 51,
+			69, 20, 12, 201, 25, 33, 85, 16, 144, 78, 37, 51, 69, 20, 12, 201, 8, 20, 148, 32, 144, 78, 37, 51, 69, 20, 12, 201, 4, 209,
+			82, 36, 176, 78, 37, 51, 69, 20, 7, 196, 61, 35, 129, 80, 20, 9, 198, 5, 53, 18, 4, 176, 78, 21, 20, 4, 95, 3, 1, 16,
+			89, 47, 39, 114, 47, 15, 71, 39, 40, 89, 47, 35, 58, 0, 0, 9, 198, 104, 144, 133, 48, 147, 133, 20, 9, 198, 76, 243, 129, 80,
+			147, 133, 20, 14, 139, 16, 18, 195, 166, 10, 21, 4, 9, 3, 5, 18, 20, 9, 198, 76, 213, 71, 48, 84, 137, 20, 12, 201, 44, 20,
+			130, 60, 194, 78, 21, 83, 64, 20, 9, 198, 85, 67, 208, 37, 51, 69, 20, 9, 198, 72, 80, 76, 37, 51, 69, 20, 9, 198, 56, 244,
+			132, 37, 51, 69, 20, 9, 198, 21, 35, 212, 37, 51, 69, 20, 9, 198, 17, 80, 76, 37, 51, 69, 20, 11, 70, 16, 80, 68, 48, 147,
+			133, 21, 0, 10, 0, 9, 198, 44, 21, 84, 36, 243, 128, 20, 12, 201, 84, 226, 70, 61, 35, 69, 72, 147, 135, 20, 12, 201, 77, 65,
+			78, 12, 147, 5, 72, 147, 135, 20, 12, 201, 52, 19, 137, 65, 83, 5, 72, 147, 135, 20, 12, 201, 48, 81, 201, 80, 147, 69, 72, 147,
+			135, 20, 12, 201, 44, 243, 132, 20, 228, 197, 72, 147, 135, 20, 12, 201, 44, 243, 80, 72, 147, 69, 72, 147, 135, 20, 12, 201, 44, 192,
+			85, 77, 83, 5, 72, 147, 135, 20, 12, 201, 44, 20, 148, 60, 227, 133, 72, 147, 135, 20, 12, 201, 44, 19, 148, 60, 227, 133, 72, 147,
+			135, 20, 12, 201, 16, 148, 208, 20, 228, 197, 72, 147, 135, 20, 12, 201, 13, 84, 20, 85, 35, 133, 72, 147, 135, 20, 12, 201, 5, 52,
+			201, 52, 147, 5, 72, 147, 135, 20, 12, 201, 4, 178, 213, 53, 83, 5, 72, 147, 135, 20, 9, 198, 5, 68, 129, 104, 147, 128, 20, 9,
+			198, 5, 32, 66, 36, 83, 128, 20, 9, 198, 80, 144, 133, 80, 19, 128, 20, 9, 198, 4, 33, 83, 76, 147, 128, 20, 9, 198, 52, 83,
+			79, 72, 144, 76, 20, 0, 12, 201, 44, 20, 129, 45, 65, 82, 37, 49, 82, 20, 12, 201, 20, 97, 133, 45, 66, 86, 37, 49, 82, 20,
+			12, 201, 12, 243, 80, 85, 65, 82, 37, 49, 82, 20, 12, 201, 4, 209, 82, 36, 176, 78, 37, 49, 82, 20, 10, 199, 5, 81, 9, 80,
+			244, 137, 20, 20, 10, 199, 84, 226, 79, 56, 148, 205, 20, 20, 10, 199, 76, 21, 1, 56, 148, 205, 20, 20, 10, 199, 48, 240, 130, 100,
+			148, 205, 20, 20, 15, 204, 29, 37, 78, 17, 69, 137, 28, 144, 78, 37, 51, 69, 20, 10, 199, 77, 66, 77, 84, 192, 78, 76, 20, 8,
+			67, 92, 244, 132, 21, 0, 10, 6, 195, 32, 84, 128, 72, 0, 17, 142, 16, 18, 195, 166, 11, 22, 1, 12, 9, 6, 9, 3, 5, 18,
+			20, 12, 201, 77, 147, 132, 36, 176, 76, 37, 51, 69, 20, 12, 201, 52, 21, 5, 72, 144, 76, 37, 51, 69, 20, 12, 201, 36, 225, 129,
+			57, 66, 76, 37, 51, 69, 20, 12, 201, 36, 212, 5, 72, 144, 76, 37, 51, 69, 20, 7, 196, 17, 84, 129, 8, 20, 11, 2, 95, 46,
+			48, 113, 68, 47, 113, 65, 0, 0, 9, 198, 28, 83, 133, 72, 84, 133, 20, 9, 198, 5, 34, 201, 88, 84, 133, 20, 8, 197, 4, 224,
+			66, 60, 192, 20, 8, 197, 81, 145, 143, 36, 64, 20, 8, 197, 64, 19, 13, 36, 224, 20, 15, 69, 76, 84, 129, 36, 192, 89, 36, 34,
+			6, 35, 57, 0, 20, 12, 201, 52, 21, 82, 21, 64, 78, 36, 83, 128, 20, 8, 197, 64, 84, 137, 4, 192, 20, 8, 197, 56, 244, 141,
+			4, 192, 20, 8, 197, 52, 19, 149, 4, 192, 20, 15, 2, 95, 45, 71, 37, 50, 50, 36, 89, 72, 34, 35, 37, 0, 0, 9, 198, 20,
+			161, 75, 80, 244, 128, 20, 9, 198, 80, 149, 21, 48, 84, 128, 20, 9, 198, 72, 83, 143, 88, 84, 128, 20, 9, 198, 64, 192, 71, 36,
+			84, 128, 20, 9, 198, 48, 147, 73, 80, 84, 128, 20, 9, 198, 20, 208, 76, 40, 84, 128, 20, 9, 198, 4, 99, 5, 88, 84, 128, 20,
+			13, 202, 77, 80, 138, 20, 181, 9, 88, 148, 205, 20, 20, 13, 202, 64, 20, 139, 36, 228, 207, 56, 148, 205, 20, 20, 9, 198, 80, 19,
+			135, 20, 228, 192, 20, 9, 198, 76, 19, 79, 88, 20, 128, 20, 9, 198, 72, 148, 201, 44, 16, 128, 20, 9, 198, 44, 243, 147, 80, 16,
+			128, 20, 11, 2, 95, 44, 49, 6, 39, 65, 35, 12, 0, 0, 12, 67, 53, 36, 192, 65, 36, 89, 36, 89, 0, 25, 10, 199, 28, 83,
+			194, 36, 243, 15, 28, 20, 10, 199, 80, 18, 206, 20, 211, 9, 28, 20, 10, 199, 16, 144, 76, 60, 114, 83, 44, 20, 15, 204, 36, 229,
+			5, 48, 193, 75, 81, 80, 76, 37, 51, 69, 20, 10, 199, 20, 180, 197, 53, 3, 1, 72, 20, 10, 67, 88, 20, 128, 84, 112, 34, 0,
+			76, 11, 67, 16, 84, 128, 72, 109, 34, 0, 76, 72, 9, 2, 95, 51, 47, 51, 6, 36, 0, 0, 11, 200, 32, 244, 147, 20, 228, 201,
+			4, 224, 20, 8, 2, 95, 50, 47, 6, 39, 0, 0, 9, 198, 25, 37, 75, 80, 244, 197, 20, 12, 201, 77, 147, 139, 72, 85, 9, 76,
+			84, 128, 20, 12, 201, 77, 65, 78, 60, 116, 129, 24, 84, 128, 20, 12, 201, 72, 82, 193, 64, 149, 21, 48, 84, 128, 20, 12, 201, 64,
+			19, 1, 80, 19, 9, 76, 84, 128, 20, 12, 201, 44, 19, 12, 36, 116, 129, 24, 84, 128, 20, 12, 201, 36, 229, 5, 73, 4, 133, 80,
+			84, 128, 20, 12, 201, 24, 244, 198, 61, 33, 83, 12, 84, 128, 20, 12, 201, 16, 145, 201, 80, 19, 9, 76, 84, 128, 20, 12, 201, 12,
+			128, 80, 80, 19, 9, 76, 84, 128, 20, 12, 201, 4, 193, 129, 8, 85, 9, 76, 84, 128, 20, 8, 197, 77, 147, 66, 60, 192, 20, 8,
+			197, 12, 128, 84, 60, 192, 20, 9, 198, 44, 21, 1, 80, 243, 137, 20, 8, 197, 76, 240, 201, 4, 192, 20, 8, 197, 24, 244, 141, 4,
+			192, 20, 9, 2, 95, 49, 6, 36, 12, 50, 0, 0, 9, 198, 64, 144, 193, 16, 244, 128, 20, 9, 198, 77, 3, 206, 76, 244, 128, 20,
+			9, 198, 80, 20, 137, 24, 84, 128, 20, 9, 198, 76, 180, 129, 88, 84, 128, 20, 9, 198, 64, 20, 129, 24, 84, 128, 20, 9, 198, 64,
+			19, 143, 72, 84, 128, 20, 9, 198, 53, 84, 201, 12, 84, 128, 20, 9, 198, 48, 16, 143, 72, 84, 128, 20, 9, 198, 37, 36, 137, 80,
+			84, 128, 20, 9, 198, 29, 32, 68, 84, 84, 128, 20, 9, 198, 25, 35, 212, 80, 84, 128, 20, 9, 198, 21, 96, 76, 84, 84, 128, 20,
+			9, 198, 20, 228, 201, 48, 84, 128, 20, 9, 198, 17, 81, 84, 80, 84, 128, 20, 9, 198, 17, 33, 83, 76, 84, 128, 20, 9, 198, 16,
+			83, 79, 48, 84, 128, 20, 9, 198, 4, 35, 206, 56, 84, 128, 20, 13, 202, 44, 194, 77, 5, 67, 204, 60, 114, 83, 44, 20, 9, 198,
+			45, 96, 82, 81, 50, 84, 20, 9, 198, 76, 83, 73, 56, 20, 128, 20, 9, 2, 95, 48, 6, 50, 113, 55, 0, 0, 10, 199, 45, 96,
+			68, 72, 21, 21, 72, 20, 10, 199, 44, 243, 15, 72, 21, 21, 72, 20, 10, 199, 5, 4, 1, 72, 21, 21, 72, 20, 11, 136, 7, 5,
+			15, 4, 195, 166, 19, 9, 20, 12, 201, 88, 84, 137, 24, 146, 193, 80, 147, 206, 20, 12, 201, 56, 245, 9, 24, 146, 193, 80, 147, 206,
+			20, 12, 201, 44, 243, 80, 48, 146, 193, 80, 147, 206, 20, 12, 201, 20, 180, 208, 48, 146, 193, 80, 147, 206, 20, 10, 199, 4, 208, 76,
+			28, 19, 69, 72, 20, 10, 199, 28, 241, 22, 36, 195, 9, 28, 20, 10, 199, 80, 85, 84, 60, 226, 83, 44, 20, 9, 198, 41, 84, 137,
+			16, 148, 203, 20, 10, 199, 21, 82, 204, 36, 66, 83, 44, 20, 10, 199, 44, 193, 80, 80, 243, 65, 56, 21, 9, 198, 64, 243, 69, 72,
+			19, 147, 20, 10, 199, 44, 243, 69, 16, 144, 78, 80, 20, 9, 2, 95, 55, 89, 6, 116, 58, 0, 0, 9, 198, 36, 210, 84, 5, 67,
+			210, 20, 9, 198, 4, 114, 84, 5, 67, 210, 20, 12, 201, 25, 83, 132, 4, 209, 78, 80, 84, 133, 20, 9, 198, 16, 19, 65, 77, 50,
+			78, 20, 11, 200, 72, 19, 132, 73, 84, 201, 4, 224, 20, 6, 195, 16, 83, 147, 76, 10, 2, 95, 54, 89, 6, 109, 81, 89, 0, 0,
+			12, 201, 61, 33, 193, 56, 148, 193, 80, 244, 128, 20, 12, 201, 16, 84, 212, 36, 195, 1, 80, 244, 128, 20, 12, 201, 80, 84, 141, 60,
+			116, 129, 24, 84, 128, 20, 12, 201, 80, 80, 84, 72, 19, 9, 76, 84, 128, 20, 12, 201, 77, 1, 67, 36, 19, 9, 76, 84, 128, 20,
+			12, 201, 76, 176, 78, 16, 19, 9, 76, 84, 128, 20, 12, 201, 76, 49, 78, 60, 116, 129, 24, 84, 128, 20, 12, 201, 72, 17, 9, 44,
+			19, 9, 76, 84, 128, 20, 12, 201, 56, 85, 84, 72, 19, 9, 76, 84, 128, 20, 12, 201, 56, 21, 21, 72, 19, 9, 76, 84, 128, 20,
+			12, 201, 44, 244, 133, 60, 116, 129, 24, 84, 128, 20, 8, 197, 44, 195, 210, 21, 32, 20, 12, 201, 44, 20, 9, 80, 19, 9, 76, 84,
+			128, 20, 12, 201, 28, 83, 137, 57, 97, 83, 80, 84, 128, 20, 12, 201, 36, 226, 84, 36, 19, 9, 76, 84, 128, 20, 12, 201, 28, 83,
+			133, 72, 19, 9, 76, 84, 128, 20, 12, 201, 24, 195, 210, 4, 116, 129, 24, 84, 128, 20, 12, 201, 16, 21, 1, 52, 21, 9, 76, 84,
+			128, 20, 9, 198, 76, 165, 83, 44, 84, 137, 20, 9, 198, 44, 226, 82, 44, 84, 137, 20, 12, 201, 65, 32, 71, 52, 21, 9, 44, 84,
+			128, 20, 12, 201, 52, 85, 1, 25, 148, 201, 44, 84, 128, 20, 12, 201, 52, 21, 5, 52, 21, 9, 44, 84, 128, 20, 12, 201, 5, 34,
+			84, 52, 85, 9, 44, 84, 128, 20, 12, 201, 4, 227, 210, 20, 181, 9, 44, 84, 128, 20, 9, 198, 32, 83, 20, 36, 225, 5, 20, 12,
+			201, 76, 145, 206, 36, 98, 75, 4, 228, 192, 20, 9, 2, 95, 53, 83, 6, 109, 65, 0, 0, 15, 204, 20, 180, 203, 60, 211, 85, 56,
+			146, 193, 80, 147, 206, 20, 15, 204, 20, 180, 197, 53, 3, 9, 24, 146, 193, 80, 147, 206, 20, 12, 201, 25, 147, 15, 28, 83, 133, 80,
+			148, 203, 20, 9, 198, 16, 149, 82, 21, 49, 64, 20, 9, 198, 81, 32, 83, 76, 83, 148, 20, 9, 198, 36, 212, 15, 80, 83, 148, 20,
+			12, 201, 24, 244, 198, 61, 33, 83, 12, 83, 147, 20, 9, 198, 24, 16, 149, 48, 19, 148, 20, 9, 198, 20, 210, 71, 72, 19, 148, 20,
+			9, 198, 16, 243, 73, 56, 19, 148, 20, 9, 198, 16, 80, 149, 80, 19, 148, 20, 9, 198, 4, 208, 149, 48, 19, 148, 20, 10, 2, 95,
+			52, 83, 6, 37, 12, 114, 0, 0, 9, 198, 36, 225, 140, 84, 83, 147, 20, 9, 198, 16, 243, 73, 56, 19, 147, 20, 17, 2, 95, 59,
+			89, 36, 12, 65, 37, 12, 49, 39, 12, 55, 114, 50, 0, 0, 9, 198, 61, 1, 82, 5, 67, 210, 20, 9, 198, 36, 226, 133, 45, 67,
+			210, 20, 15, 204, 76, 83, 148, 36, 209, 78, 80, 19, 9, 76, 84, 128, 20, 11, 200, 72, 85, 129, 12, 50, 78, 21, 32, 20, 11, 200,
+			44, 243, 12, 4, 35, 210, 21, 32, 20, 11, 200, 32, 19, 12, 84, 50, 78, 21, 32, 20, 18, 70, 52, 20, 143, 69, 82, 78, 65, 112,
+			34, 39, 6, 49, 109, 68, 0, 20, 12, 2, 95, 58, 49, 6, 39, 12, 55, 114, 50, 0, 0, 12, 201, 8, 147, 8, 5, 38, 137, 61,
+			49, 64, 20, 8, 197, 80, 149, 18, 21, 32, 20, 8, 197, 61, 1, 82, 21, 32, 20, 8, 197, 48, 149, 18, 21, 32, 20, 8, 197, 20,
+			208, 78, 21, 32, 20, 9, 198, 77, 66, 75, 44, 84, 137, 20, 9, 198, 17, 34, 75, 44, 84, 137, 20, 12, 201, 36, 229, 5, 73, 97,
+			78, 36, 83, 148, 20, 8, 2, 95, 57, 50, 6, 37, 0, 0, 9, 198, 44, 20, 129, 52, 83, 0, 20, 9, 198, 65, 35, 212, 21, 49,
+			64, 20, 9, 198, 16, 144, 84, 21, 49, 64, 20, 14, 139, 1, 13, 1, 20, 195, 184, 18, 9, 19, 13, 5, 20, 9, 198, 12, 128, 82,
+			52, 19, 148, 20, 10, 2, 95, 56, 6, 113, 12, 72, 13, 0, 0, 9, 134, 16, 15, 18, 195, 184, 19, 20, 15, 140, 6, 195, 184, 4,
+			5, 18, 1, 12, 9, 19, 13, 5, 20, 10, 199, 44, 19, 85, 24, 192, 71, 20, 20, 12, 71, 36, 229, 5, 72, 96, 67, 20, 21, 0,
+			10, 19, 2, 95, 63, 89, 48, 118, 34, 81, 89, 65, 114, 55, 89, 47, 35, 57, 50, 0, 0, 9, 134, 13, 9, 14, 195, 184, 18, 20,
+			9, 134, 12, 9, 11, 195, 184, 18, 20, 11, 200, 64, 84, 147, 21, 97, 82, 21, 32, 20, 11, 200, 44, 243, 134, 36, 117, 82, 21, 32,
+			20, 11, 200, 36, 226, 210, 36, 210, 78, 21, 32, 20, 11, 200, 16, 85, 5, 72, 210, 78, 21, 32, 20, 11, 200, 4, 195, 9, 81, 65,
+			82, 21, 32, 20, 11, 200, 5, 4, 5, 56, 66, 67, 37, 64, 20, 7, 196, 81, 148, 129, 56, 21, 0, 9, 198, 29, 147, 78, 5, 50,
+			69, 20, 8, 197, 4, 176, 67, 36, 80, 20, 9, 198, 29, 147, 78, 5, 50, 69, 20, 8, 197, 52, 244, 193, 36, 176, 20, 8, 197, 29,
+			32, 70, 36, 176, 20, 12, 201, 36, 228, 213, 24, 98, 67, 36, 83, 148, 20, 8, 197, 24, 16, 193, 16, 80, 20, 0, 11, 136, 19, 13,
+			9, 14, 11, 195, 184, 18, 20, 9, 198, 52, 243, 132, 36, 19, 0, 20, 9, 198, 45, 96, 82, 80, 19, 0, 20, 0, 12, 201, 84, 227,
+			210, 52, 19, 9, 80, 85, 0, 20, 12, 201, 48, 144, 133, 72, 19, 9, 80, 85, 0, 20, 10, 199, 65, 32, 75, 80, 148, 197, 72, 20,
+			10, 199, 25, 34, 80, 61, 53, 9, 28, 20, 10, 199, 44, 19, 13, 84, 178, 83, 44, 20, 10, 199, 4, 224, 76, 60, 114, 83, 44, 20,
+			10, 199, 4, 195, 5, 72, 114, 83, 44, 20, 10, 199, 52, 85, 15, 16, 146, 197, 72, 20, 0, 9, 134, 22, 1, 12, 195, 184, 18, 20,
+			11, 200, 76, 82, 83, 52, 243, 15, 28, 144, 20, 11, 200, 52, 243, 9, 56, 243, 15, 28, 144, 20, 7, 196, 61, 35, 133, 72, 20, 11,
+			200, 76, 19, 79, 40, 81, 9, 76, 176, 20, 11, 200, 64, 20, 137, 80, 85, 9, 76, 176, 20, 11, 200, 20, 180, 197, 28, 85, 9, 76,
+			176, 20, 11, 200, 4, 229, 9, 80, 85, 9, 76, 176, 20, 7, 196, 4, 115, 206, 36, 20, 7, 196, 45, 80, 137, 44, 20, 9, 198, 76,
+			84, 1, 72, 21, 0, 20, 0, 14, 139, 14, 1, 18, 11, 15, 20, 9, 19, 195, 184, 18, 20, 10, 135, 12, 25, 4, 8, 195, 184, 18,
+			20, 8, 197, 44, 245, 5, 72, 144, 20, 9, 198, 32, 243, 79, 57, 147, 73, 20, 8, 197, 16, 82, 193, 16, 80, 20, 8, 197, 12, 146,
+			193, 16, 80, 20, 0, 11, 136, 1, 21, 4, 9, 20, 195, 184, 18, 20, 9, 198, 72, 16, 149, 48, 148, 212, 20, 9, 198, 12, 149, 137,
+			48, 148, 212, 20, 15, 204, 64, 84, 134, 20, 181, 9, 8, 147, 9, 80, 85, 0, 20, 13, 202, 80, 242, 211, 36, 179, 204, 60, 114, 83,
+			44, 20, 0, 10, 199, 44, 243, 148, 4, 181, 21, 72, 20, 12, 137, 15, 16, 5, 18, 1, 20, 195, 184, 18, 20, 12, 201, 88, 148, 148,
+			84, 244, 201, 80, 85, 0, 20, 12, 201, 64, 192, 83, 80, 144, 201, 80, 85, 0, 20, 12, 201, 44, 244, 132, 36, 19, 9, 80, 85, 0,
+			20, 12, 201, 44, 243, 150, 20, 180, 201, 80, 85, 0, 20, 12, 201, 44, 243, 148, 36, 229, 73, 80, 85, 0, 20, 12, 201, 44, 243, 142,
+			20, 180, 201, 80, 85, 0, 20, 12, 201, 44, 243, 134, 61, 35, 73, 80, 85, 0, 20, 12, 201, 25, 35, 206, 80, 19, 9, 80, 85, 0,
+			20, 12, 201, 20, 192, 83, 80, 144, 201, 80, 85, 0, 20, 12, 201, 4, 67, 73, 72, 19, 9, 80, 85, 0, 20, 10, 199, 65, 81, 19,
+			21, 35, 9, 28, 20, 14, 203, 81, 32, 78, 77, 97, 83, 80, 149, 9, 76, 176, 20, 10, 199, 77, 147, 12, 4, 34, 83, 44, 20, 10,
+			199, 52, 243, 4, 61, 98, 83, 44, 20, 10, 199, 32, 84, 139, 84, 194, 83, 44, 20, 12, 201, 65, 35, 212, 20, 181, 15, 72, 21, 0,
+			20, 12, 201, 36, 228, 208, 20, 181, 15, 72, 21, 0, 20, 10, 199, 72, 83, 79, 84, 192, 68, 20, 20, 10, 199, 24, 20, 150, 20, 192,
+			68, 20, 20, 12, 71, 52, 19, 147, 24, 145, 76, 16, 21, 0, 10, 0, 13, 138, 18, 5, 16, 1, 18, 1, 20, 195, 184, 18, 20, 9,
+			198, 77, 70, 76, 37, 53, 0, 20, 9, 198, 77, 66, 76, 37, 53, 0, 20, 9, 198, 45, 84, 147, 37, 53, 0, 20, 9, 198, 72, 80,
+			76, 37, 49, 82, 20, 9, 198, 24, 19, 148, 5, 49, 82, 20, 9, 198, 21, 35, 212, 37, 49, 82, 20, 9, 198, 20, 225, 15, 77, 49,
+			82, 20, 9, 198, 16, 144, 76, 101, 49, 82, 20, 9, 198, 16, 84, 12, 61, 145, 82, 20, 9, 198, 4, 225, 204, 37, 49, 82, 20, 7,
+			196, 24, 197, 73, 16, 20, 9, 198, 72, 148, 5, 57, 49, 82, 20, 9, 198, 8, 241, 197, 57, 49, 82, 20, 0, 14, 139, 11, 15, 15,
+			16, 5, 18, 1, 20, 195, 184, 18, 20, 9, 198, 8, 195, 206, 16, 147, 133, 20, 9, 198, 76, 227, 194, 8, 84, 137, 20, 9, 198, 81,
+			48, 82, 37, 51, 69, 20, 9, 198, 24, 21, 86, 37, 51, 69, 20, 9, 198, 4, 99, 210, 37, 51, 69, 20, 0, 15, 140, 18, 5, 19,
+			20, 1, 21, 18, 1, 20, 195, 184, 18, 20, 12, 201, 8, 80, 82, 8, 82, 132, 56, 147, 135, 67, 13, 202, 28, 195, 210, 36, 98, 75,
+			5, 66, 79, 56, 20, 15, 204, 77, 81, 199, 21, 53, 9, 8, 147, 9, 80, 85, 0, 20, 15, 204, 44, 243, 150, 21, 37, 9, 8, 147,
+			9, 80, 85, 0, 20, 15, 204, 21, 67, 143, 12, 83, 148, 72, 144, 201, 80, 85, 0, 20, 12, 201, 81, 32, 86, 21, 53, 5, 72, 147,
+			135, 20, 12, 201, 36, 225, 19, 81, 81, 5, 72, 147, 135, 20, 12, 201, 21, 50, 193, 52, 245, 5, 72, 147, 135, 20, 12, 201, 20, 180,
+			203, 49, 81, 5, 72, 147, 135, 20, 12, 201, 16, 84, 18, 20, 50, 69, 72, 147, 135, 20, 12, 201, 8, 19, 12, 5, 53, 5, 72, 147,
+			135, 20, 13, 202, 76, 84, 130, 60, 180, 143, 5, 66, 83, 44, 20, 9, 198, 21, 36, 129, 81, 83, 64, 20, 9, 198, 37, 34, 68, 37,
+			83, 64, 20, 9, 198, 88, 149, 1, 52, 147, 128, 20, 9, 198, 72, 21, 133, 48, 147, 128, 20, 9, 198, 53, 81, 90, 104, 147, 128, 20,
+			9, 198, 52, 17, 193, 76, 147, 128, 20, 9, 198, 44, 84, 129, 80, 147, 128, 20, 9, 198, 36, 228, 213, 48, 147, 128, 20, 9, 198, 4,
+			192, 149, 52, 147, 128, 20, 9, 198, 61, 69, 15, 52, 19, 128, 21, 0, 12, 201, 72, 81, 201, 60, 224, 76, 37, 53, 0, 20, 9, 198,
+			17, 84, 5, 72, 147, 135, 20, 12, 201, 77, 148, 212, 20, 208, 84, 37, 49, 82, 20, 12, 201, 77, 64, 78, 16, 20, 132, 37, 49, 82,
+			20, 12, 137, 16, 18, 195, 166, 19, 9, 4, 5, 18, 20, 12, 201, 52, 21, 5, 72, 144, 76, 37, 49, 82, 20, 12, 201, 72, 244, 203,
+			36, 193, 5, 57, 49, 82, 20, 0, 9, 198, 24, 20, 195, 37, 53, 0, 20, 9, 198, 48, 144, 197, 57, 49, 82, 20, 9, 198, 44, 20,
+			133, 77, 49, 82, 20, 9, 198, 36, 225, 5, 45, 49, 82, 20, 12, 201, 85, 66, 76, 37, 64, 82, 37, 51, 69, 20, 12, 201, 20, 181,
+			137, 48, 144, 146, 37, 51, 69, 20, 7, 196, 25, 85, 9, 48, 20, 7, 196, 80, 243, 65, 80, 20, 9, 68, 52, 16, 200, 60, 21, 0,
+			10, 0, 9, 198, 44, 21, 129, 80, 147, 133, 20, 9, 198, 81, 35, 204, 16, 84, 137, 20, 12, 201, 65, 34, 86, 36, 193, 71, 37, 83,
+			64, 20, 9, 198, 81, 35, 208, 37, 51, 69, 20, 9, 198, 64, 145, 84, 37, 51, 69, 20, 12, 201, 76, 147, 135, 5, 3, 210, 20, 19,
+			128, 20, 0, 9, 198, 12, 130, 70, 24, 243, 128, 20, 9, 198, 80, 83, 147, 36, 243, 128, 20, 9, 198, 64, 83, 147, 36, 243, 128, 20,
+			9, 198, 21, 35, 211, 36, 243, 128, 20, 12, 201, 76, 82, 214, 20, 228, 197, 72, 147, 135, 20, 12, 201, 65, 35, 204, 60, 225, 197, 72,
+			147, 135, 20, 12, 201, 44, 243, 147, 21, 37, 133, 72, 147, 135, 20, 12, 201, 44, 243, 80, 61, 53, 5, 72, 147, 135, 20, 12, 201, 36,
+			225, 18, 4, 225, 197, 72, 147, 135, 20, 12, 201, 24, 84, 141, 20, 229, 5, 72, 147, 135, 20, 12, 201, 16, 148, 212, 4, 224, 197, 72,
+			147, 135, 20, 12, 201, 16, 145, 148, 60, 225, 197, 72, 147, 135, 20, 12, 201, 16, 84, 193, 88, 245, 69, 72, 147, 135, 20, 12, 201, 16,
+			80, 197, 57, 68, 133, 72, 147, 135, 20, 11, 136, 16, 195, 184, 14, 9, 20, 5, 18, 20, 15, 204, 36, 229, 5, 48, 193, 75, 81, 80,
+			76, 37, 49, 82, 20, 9, 198, 61, 96, 82, 37, 83, 64, 20, 9, 198, 48, 19, 143, 48, 147, 128, 20, 9, 198, 24, 83, 73, 56, 147,
+			128, 20, 9, 198, 81, 84, 139, 52, 83, 128, 20, 9, 198, 52, 18, 197, 16, 243, 128, 20, 9, 198, 24, 244, 149, 72, 83, 128, 20, 9,
+			198, 8, 18, 1, 52, 19, 128, 20, 9, 198, 72, 82, 142, 24, 19, 128, 21, 0, 6, 195, 16, 224, 64, 17, 10, 199, 61, 37, 15, 16,
+			242, 211, 36, 20, 14, 139, 15, 2, 19, 11, 195, 184, 14, 9, 20, 5, 20, 20, 10, 199, 52, 85, 1, 48, 195, 201, 16, 20, 10, 199,
+			44, 243, 147, 61, 37, 9, 20, 20, 10, 199, 64, 197, 84, 60, 226, 85, 52, 20, 10, 199, 32, 20, 141, 60, 226, 85, 52, 20, 10, 199,
+			8, 84, 153, 48, 194, 85, 52, 20, 10, 199, 52, 85, 15, 16, 148, 205, 20, 20, 15, 204, 52, 20, 139, 20, 68, 205, 20, 176, 78, 37,
+			51, 69, 20, 10, 199, 20, 180, 207, 80, 148, 205, 20, 20, 0, 15, 68, 32, 18, 84, 36, 107, 110, 6, 37, 12, 47, 37, 0, 20, 12,
+			201, 104, 83, 130, 84, 65, 8, 37, 51, 69, 20, 12, 201, 44, 244, 144, 61, 32, 84, 37, 51, 69, 20, 12, 201, 44, 243, 15, 56, 144,
+			76, 37, 51, 69, 20, 12, 201, 8, 243, 129, 64, 20, 148, 37, 51, 69, 20, 12, 201, 5, 53, 9, 28, 208, 84, 37, 51, 69, 20, 9,
+			198, 65, 35, 195, 20, 229, 0, 20, 7, 196, 8, 20, 193, 72, 20, 0, 9, 198, 64, 81, 9, 13, 84, 133, 20, 9, 198, 88, 148, 143,
+			48, 241, 201, 20, 9, 198, 73, 83, 143, 48, 241, 201, 20, 9, 198, 53, 146, 207, 48, 241, 201, 20, 9, 198, 36, 65, 79, 48, 241, 201,
+			20, 8, 197, 52, 18, 210, 60, 224, 20, 8, 197, 24, 195, 212, 20, 192, 20, 12, 201, 64, 192, 78, 21, 64, 82, 37, 83, 64, 20, 12,
+			201, 16, 83, 6, 36, 224, 82, 37, 83, 64, 20, 8, 197, 77, 64, 66, 36, 192, 20, 12, 201, 32, 83, 19, 36, 225, 207, 72, 19, 128,
+			20, 12, 201, 25, 33, 68, 21, 34, 67, 36, 19, 128, 20, 8, 197, 24, 146, 137, 4, 224, 20, 8, 197, 9, 84, 141, 4, 224, 20, 12,
+			137, 8, 15, 13, 195, 184, 15, 16, 1, 20, 20, 8, 197, 76, 128, 77, 4, 224, 21, 0, 0, 10, 199, 85, 32, 129, 56, 148, 197, 72,
+			20, 10, 199, 80, 149, 143, 48, 148, 197, 72, 20, 10, 199, 80, 83, 65, 80, 148, 197, 72, 20, 10, 199, 72, 83, 80, 48, 16, 197, 72,
+			20, 10, 199, 72, 21, 9, 24, 144, 197, 72, 20, 10, 199, 64, 243, 65, 16, 148, 197, 72, 20, 10, 199, 4, 181, 9, 88, 148, 197, 72,
+			20, 10, 199, 24, 244, 147, 60, 227, 9, 28, 20, 10, 199, 64, 21, 18, 36, 50, 83, 44, 20, 10, 199, 52, 84, 207, 104, 242, 83, 44,
+			20, 10, 199, 48, 85, 1, 72, 114, 83, 44, 20, 10, 199, 21, 68, 149, 76, 178, 83, 44, 20, 10, 199, 4, 224, 84, 60, 210, 83, 44,
+			20, 15, 204, 20, 180, 201, 77, 65, 78, 80, 144, 76, 37, 51, 69, 20, 10, 199, 65, 35, 208, 60, 225, 78, 80, 20, 10, 199, 44, 243,
+			70, 61, 37, 1, 8, 20, 0, 9, 198, 16, 243, 129, 80, 147, 206, 20, 9, 198, 5, 97, 82, 76, 147, 206, 20, 7, 196, 45, 84, 5,
+			72, 20, 15, 204, 36, 228, 212, 73, 83, 69, 57, 64, 82, 37, 83, 64, 20, 7, 196, 25, 149, 9, 56, 20, 7, 196, 61, 5, 9, 44,
+			20, 0, 12, 201, 72, 81, 201, 77, 68, 129, 81, 84, 128, 20, 9, 198, 81, 32, 75, 80, 244, 197, 20, 8, 197, 48, 81, 213, 4, 224,
+			21, 8, 197, 85, 34, 78, 4, 192, 20, 8, 197, 5, 53, 18, 4, 192, 20, 8, 197, 64, 244, 148, 4, 32, 20, 0, 13, 202, 28, 84,
+			143, 57, 67, 204, 60, 114, 83, 44, 20, 0, 6, 195, 20, 177, 192, 17, 10, 67, 36, 65, 64, 37, 72, 6, 36, 0, 10, 199, 29, 33,
+			78, 4, 66, 78, 20, 20, 12, 201, 44, 243, 132, 20, 211, 129, 80, 147, 206, 20, 12, 201, 36, 229, 18, 61, 97, 82, 76, 147, 206, 20,
+			12, 201, 36, 228, 197, 52, 147, 129, 80, 147, 206, 20, 12, 201, 20, 180, 193, 52, 147, 129, 80, 147, 206, 20, 10, 199, 52, 147, 137, 77,
+			68, 133, 72, 20, 10, 199, 44, 244, 144, 61, 35, 9, 28, 20, 10, 199, 72, 20, 19, 60, 66, 83, 44, 20, 10, 199, 64, 192, 84, 60,
+			226, 83, 44, 20, 9, 198, 44, 147, 133, 80, 148, 203, 20, 10, 199, 29, 33, 78, 4, 66, 83, 44, 20, 9, 198, 20, 209, 129, 80, 148,
+			203, 20, 9, 198, 5, 34, 193, 16, 148, 203, 20, 10, 199, 81, 32, 78, 76, 145, 78, 80, 20, 10, 199, 72, 80, 201, 64, 145, 78, 80,
+			20, 9, 198, 72, 85, 133, 72, 83, 147, 20, 9, 198, 44, 243, 147, 80, 19, 147, 20, 10, 199, 36, 225, 143, 72, 208, 78, 80, 20, 0,
+			9, 198, 80, 84, 212, 5, 67, 210, 20, 9, 198, 72, 243, 12, 5, 67, 210, 20, 9, 198, 37, 51, 204, 5, 67, 210, 20, 18, 4, 95,
+			4, 15, 20, 58, 37, 86, 72, 6, 115, 47, 35, 71, 114, 84, 0, 0, 8, 197, 76, 83, 137, 61, 32, 20, 18, 143, 16, 18, 195, 166,
+			19, 21, 16, 16, 15, 19, 9, 20, 9, 15, 14, 20, 12, 201, 65, 35, 198, 21, 52, 201, 60, 225, 76, 20, 12, 201, 44, 243, 134, 21,
+			52, 201, 60, 225, 76, 20, 8, 197, 45, 33, 68, 37, 64, 20, 8, 197, 45, 84, 129, 57, 64, 20, 0, 9, 198, 88, 148, 143, 48, 241,
+			192, 20, 9, 198, 73, 83, 143, 48, 241, 192, 20, 9, 198, 53, 146, 207, 48, 241, 192, 20, 9, 198, 36, 65, 79, 48, 241, 192, 20, 13,
+			202, 76, 82, 83, 52, 241, 210, 4, 98, 83, 44, 20, 12, 201, 64, 197, 84, 60, 180, 129, 80, 148, 203, 20, 13, 202, 60, 49, 65, 56,
+			241, 210, 4, 98, 83, 44, 20, 12, 201, 52, 84, 207, 64, 245, 1, 52, 148, 203, 20, 13, 202, 44, 20, 132, 36, 241, 210, 4, 98, 83,
+			44, 20, 13, 202, 8, 144, 140, 36, 241, 210, 4, 98, 83, 44, 20, 13, 202, 8, 19, 135, 48, 17, 5, 76, 130, 83, 44, 20, 9, 198,
+			81, 34, 66, 84, 224, 76, 20, 9, 198, 5, 52, 9, 72, 19, 148, 20, 9, 198, 4, 67, 208, 80, 19, 148, 20, 0, 20, 67, 88, 147,
+			0, 84, 36, 55, 15, 107, 6, 110, 12, 0, 81, 104, 97, 118, 101, 32, 10, 199, 44, 242, 193, 36, 226, 83, 80, 20, 10, 199, 32, 83,
+			12, 20, 226, 83, 80, 20, 9, 198, 76, 21, 9, 72, 148, 203, 20, 9, 198, 64, 20, 143, 16, 148, 203, 20, 9, 198, 61, 51, 79, 80,
+			148, 203, 20, 9, 198, 60, 49, 65, 56, 148, 203, 20, 9, 198, 4, 193, 197, 72, 148, 203, 20, 8, 67, 80, 80, 200, 21, 0, 10, 6,
+			195, 88, 147, 0, 76, 0, 31, 76, 77, 21, 65, 72, 81, 1, 56, 49, 82, 56, 84, 192, 89, 49, 58, 6, 36, 13, 72, 35, 12, 50,
+			89, 114, 20, 50, 13, 89, 0, 9, 198, 36, 229, 133, 77, 67, 210, 20, 9, 198, 16, 85, 5, 45, 67, 210, 20, 11, 200, 52, 147, 137,
+			52, 19, 9, 77, 64, 20, 11, 200, 4, 194, 207, 32, 243, 9, 77, 64, 20, 9, 198, 20, 225, 15, 72, 98, 78, 20, 11, 200, 16, 242,
+			213, 52, 83, 148, 5, 32, 20, 11, 200, 36, 229, 15, 48, 84, 129, 57, 64, 20, 0, 6, 195, 36, 179, 206, 20, 8, 197, 24, 192, 78,
+			21, 32, 20, 12, 201, 88, 83, 147, 44, 16, 133, 48, 145, 192, 20, 12, 201, 80, 18, 206, 20, 211, 69, 48, 145, 192, 20, 12, 201, 76,
+			83, 19, 44, 16, 133, 48, 145, 192, 20, 12, 201, 32, 84, 147, 44, 16, 133, 48, 145, 192, 20, 8, 197, 32, 149, 20, 37, 64, 20, 12,
+			201, 64, 144, 78, 37, 53, 9, 56, 65, 64, 20, 8, 197, 76, 243, 4, 5, 64, 20, 8, 197, 25, 64, 76, 5, 64, 20, 8, 197, 4,
+			49, 84, 5, 64, 20, 8, 197, 76, 82, 193, 57, 64, 20, 9, 198, 20, 181, 137, 64, 17, 197, 20, 0, 18, 66, 88, 144, 84, 37, 15,
+			89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 18, 67, 36, 178, 197, 36, 81, 36, 15, 107, 110, 0, 81, 104, 97, 118, 101, 32, 9,
+			198, 20, 225, 15, 76, 179, 208, 20, 9, 198, 77, 69, 68, 36, 225, 64, 20, 12, 201, 65, 80, 140, 36, 50, 83, 80, 148, 203, 20, 12,
+			201, 56, 85, 82, 5, 53, 5, 56, 148, 203, 20, 12, 201, 52, 81, 9, 84, 210, 83, 80, 148, 203, 20, 9, 198, 84, 197, 137, 56, 65,
+			64, 20, 9, 198, 29, 81, 9, 56, 65, 64, 20, 9, 198, 72, 81, 133, 72, 83, 148, 20, 9, 198, 44, 243, 147, 80, 19, 148, 20, 8,
+			66, 88, 144, 84, 37, 0, 72, 0, 10, 199, 72, 81, 143, 72, 210, 83, 80, 20, 10, 199, 64, 243, 25, 80, 82, 83, 80, 20, 10, 199,
+			64, 84, 147, 60, 224, 71, 20, 20, 14, 2, 95, 95, 71, 6, 113, 50, 89, 72, 34, 35, 37, 0, 0, 9, 134, 6, 1, 22, 195, 184,
+			18, 20, 11, 200, 52, 243, 143, 64, 243, 9, 77, 64, 20, 11, 200, 24, 81, 5, 72, 19, 9, 77, 64, 20, 12, 201, 8, 84, 212, 101,
+			33, 82, 36, 225, 5, 68, 11, 200, 77, 80, 143, 72, 66, 78, 21, 32, 20, 11, 200, 36, 229, 5, 72, 97, 82, 21, 32, 20, 11, 200,
+			5, 3, 211, 81, 35, 198, 21, 32, 20, 12, 137, 16, 18, 195, 166, 19, 9, 4, 9, 5, 20, 12, 201, 45, 83, 147, 80, 225, 82, 36,
+			225, 5, 20, 12, 201, 8, 84, 212, 101, 33, 82, 36, 225, 5, 20, 11, 200, 72, 83, 143, 52, 209, 82, 21, 64, 20, 11, 200, 52, 19,
+			137, 21, 33, 82, 21, 64, 20, 11, 200, 36, 225, 9, 28, 225, 82, 21, 64, 20, 11, 200, 24, 16, 197, 81, 65, 82, 21, 64, 20, 11,
+			200, 20, 180, 193, 49, 65, 82, 21, 64, 20, 11, 200, 16, 84, 129, 56, 113, 82, 21, 64, 20, 11, 200, 16, 84, 18, 37, 97, 82, 21,
+			64, 20, 11, 200, 5, 52, 207, 73, 65, 82, 21, 64, 20, 11, 200, 4, 229, 9, 45, 97, 82, 21, 64, 20, 11, 200, 4, 97, 133, 45,
+			65, 82, 21, 64, 20, 9, 198, 48, 19, 73, 56, 21, 0, 20, 7, 196, 45, 84, 129, 8, 20, 0, 8, 197, 84, 225, 9, 56, 80, 20,
+			12, 201, 28, 80, 143, 52, 209, 82, 48, 145, 192, 20, 13, 138, 16, 195, 166, 4, 5, 18, 1, 19, 20, 9, 20, 12, 201, 4, 67, 73,
+			72, 19, 9, 56, 65, 64, 20, 10, 69, 60, 227, 9, 56, 80, 21, 0, 10, 0, 9, 198, 64, 20, 143, 16, 148, 212, 20, 9, 198, 49,
+			85, 5, 56, 148, 212, 20, 9, 198, 21, 52, 193, 100, 148, 212, 20, 9, 198, 52, 243, 135, 60, 194, 68, 20, 9, 198, 81, 148, 129, 56,
+			226, 64, 20, 9, 198, 16, 144, 75, 60, 226, 64, 20, 9, 198, 64, 243, 5, 52, 146, 192, 20, 9, 198, 28, 83, 133, 80, 146, 192, 20,
+			9, 198, 24, 243, 133, 80, 146, 192, 20, 9, 198, 81, 34, 66, 84, 224, 84, 20, 9, 198, 40, 245, 82, 56, 19, 0, 20, 8, 67, 12,
+			242, 197, 21, 0, 10, 0, 14, 203, 81, 32, 68, 37, 66, 79, 56, 19, 9, 77, 64, 20, 12, 201, 20, 180, 212, 72, 83, 73, 80, 85,
+			0, 20, 10, 199, 88, 148, 137, 48, 148, 197, 72, 20, 10, 199, 37, 51, 1, 52, 148, 197, 72, 20, 10, 199, 24, 197, 73, 16, 148, 197,
+			72, 20, 9, 198, 32, 245, 141, 60, 66, 71, 20, 9, 198, 28, 83, 69, 56, 194, 71, 20, 6, 195, 88, 147, 204, 20, 6, 195, 24, 147,
+			204, 20, 10, 199, 52, 243, 129, 72, 178, 83, 44, 20, 10, 199, 44, 19, 13, 100, 178, 83, 44, 20, 10, 199, 21, 84, 212, 4, 178, 83,
+			44, 20, 10, 199, 72, 17, 9, 60, 99, 206, 36, 20, 10, 199, 16, 243, 73, 56, 144, 193, 56, 20, 10, 199, 44, 21, 129, 48, 176, 68,
+			20, 20, 10, 199, 8, 20, 146, 36, 176, 68, 20, 20, 10, 199, 65, 32, 75, 80, 146, 193, 8, 20, 10, 199, 4, 211, 210, 80, 148, 193,
+			8, 20, 8, 67, 12, 243, 204, 21, 0, 10, 0, 13, 138, 9, 14, 19, 5, 13, 9, 14, 195, 184, 18, 20, 11, 200, 16, 84, 141, 5,
+			67, 204, 60, 112, 20, 11, 200, 9, 35, 205, 5, 67, 204, 60, 112, 20, 11, 200, 76, 84, 144, 20, 229, 9, 56, 80, 20, 9, 198, 21,
+			37, 80, 80, 147, 206, 20, 9, 198, 4, 208, 137, 80, 147, 206, 20, 11, 200, 33, 148, 15, 44, 243, 132, 72, 144, 20, 11, 200, 28, 83,
+			132, 5, 35, 69, 72, 144, 20, 11, 200, 96, 83, 143, 24, 240, 137, 76, 176, 20, 11, 200, 88, 81, 197, 80, 20, 137, 76, 176, 20, 11,
+			200, 88, 19, 21, 80, 20, 137, 76, 176, 20, 11, 200, 76, 243, 9, 16, 20, 137, 76, 176, 20, 11, 200, 52, 85, 1, 8, 243, 9, 76,
+			176, 20, 11, 200, 48, 20, 9, 16, 20, 137, 76, 176, 20, 11, 200, 8, 19, 21, 77, 68, 129, 16, 80, 20, 11, 200, 24, 84, 142, 37,
+			52, 193, 28, 80, 20, 0, 8, 197, 84, 99, 204, 60, 112, 20, 8, 197, 64, 241, 210, 60, 208, 20, 8, 197, 61, 34, 197, 72, 80, 20,
+			8, 197, 5, 50, 197, 76, 80, 20, 9, 198, 21, 2, 84, 4, 98, 69, 20, 9, 198, 16, 80, 197, 56, 226, 69, 20, 8, 197, 24, 16,
+			146, 36, 176, 20, 12, 201, 76, 18, 210, 4, 209, 78, 80, 19, 0, 20, 11, 70, 25, 34, 69, 56, 67, 25, 21, 0, 10, 20, 4, 95,
+			56, 88, 15, 83, 37, 34, 89, 36, 50, 89, 47, 116, 84, 13, 50, 13, 0, 0, 11, 67, 81, 83, 133, 47, 40, 50, 108, 0, 41, 12,
+			137, 18, 5, 12, 9, 7, 9, 195, 184, 19, 20, 12, 137, 13, 1, 12, 9, 3, 9, 195, 184, 19, 20, 11, 136, 16, 12, 1, 14, 20,
+			195, 184, 18, 20, 13, 202, 60, 101, 1, 48, 211, 204, 60, 114, 83, 44, 20, 13, 202, 48, 20, 153, 56, 115, 204, 60, 114, 83, 44, 20,
+			13, 202, 24, 20, 141, 4, 179, 204, 60, 114, 83, 44, 20, 9, 198, 16, 144, 75, 60, 224, 84, 20, 13, 202, 36, 226, 207, 52, 209, 78,
+			77, 84, 129, 8, 20, 0, 20, 67, 33, 83, 128, 107, 113, 50, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 13, 138, 16, 5,
+			18, 14, 9, 3, 9, 195, 184, 19, 20, 12, 201, 44, 243, 210, 16, 147, 129, 80, 147, 206, 20, 12, 201, 44, 243, 147, 20, 180, 129, 80,
+			147, 206, 20, 12, 201, 24, 192, 71, 20, 195, 1, 80, 147, 206, 20, 12, 201, 36, 208, 133, 12, 147, 9, 80, 85, 0, 20, 12, 201, 4,
+			227, 210, 52, 19, 9, 80, 85, 0, 20, 10, 199, 65, 35, 203, 48, 19, 69, 72, 20, 10, 199, 44, 243, 139, 85, 36, 133, 72, 20, 10,
+			199, 44, 243, 132, 20, 228, 197, 72, 20, 10, 199, 44, 20, 9, 81, 83, 5, 72, 20, 10, 199, 4, 178, 213, 53, 83, 5, 72, 20, 10,
+			199, 64, 197, 84, 60, 226, 83, 44, 20, 14, 203, 56, 243, 69, 56, 179, 1, 80, 244, 137, 76, 176, 20, 10, 199, 52, 85, 1, 48, 194,
+			83, 44, 20, 9, 198, 48, 85, 137, 80, 148, 203, 20, 10, 199, 48, 84, 207, 80, 130, 83, 44, 20, 14, 203, 44, 243, 80, 20, 228, 193,
+			80, 244, 137, 76, 176, 20, 9, 198, 21, 84, 129, 76, 148, 203, 20, 10, 199, 16, 144, 84, 60, 226, 83, 44, 20, 10, 199, 8, 20, 130,
+			4, 66, 83, 44, 20, 9, 198, 5, 165, 5, 44, 148, 203, 20, 10, 199, 44, 244, 205, 60, 115, 206, 36, 20, 10, 199, 88, 20, 132, 20,
+			228, 197, 72, 20, 12, 201, 12, 149, 137, 48, 148, 197, 72, 85, 0, 20, 10, 199, 44, 20, 130, 60, 224, 68, 20, 20, 6, 195, 33, 83,
+			128, 72, 0, 14, 139, 16, 18, 5, 19, 20, 9, 7, 9, 195, 184, 19, 20, 11, 200, 44, 194, 77, 5, 67, 204, 60, 112, 20, 7, 196,
+			5, 67, 5, 80, 20, 9, 198, 64, 145, 84, 37, 53, 0, 20, 7, 196, 5, 4, 5, 48, 20, 9, 198, 64, 241, 84, 37, 49, 82, 20,
+			9, 198, 44, 19, 132, 37, 49, 82, 20, 9, 198, 36, 67, 204, 37, 49, 82, 20, 11, 200, 48, 19, 80, 37, 53, 5, 72, 144, 20, 11,
+			200, 24, 19, 148, 5, 53, 5, 72, 144, 20, 11, 200, 76, 20, 139, 5, 53, 9, 76, 176, 20, 11, 200, 32, 145, 82, 5, 34, 201, 76,
+			176, 20, 7, 196, 76, 130, 73, 80, 20, 9, 198, 64, 20, 129, 24, 98, 78, 20, 11, 200, 44, 243, 148, 20, 224, 78, 12, 80, 20, 7,
+			196, 73, 84, 129, 48, 20, 7, 196, 8, 20, 193, 48, 20, 0, 12, 201, 52, 84, 139, 4, 229, 9, 48, 148, 212, 20, 9, 198, 76, 181,
+			77, 48, 84, 137, 20, 9, 198, 45, 37, 75, 44, 84, 137, 20, 12, 201, 28, 84, 141, 4, 226, 83, 80, 146, 192, 20, 11, 67, 20, 192,
+			78, 36, 55, 35, 50, 0, 21, 8, 197, 45, 84, 129, 57, 48, 20, 0, 15, 204, 81, 32, 78, 76, 194, 84, 80, 84, 129, 80, 147, 206,
+			20, 15, 204, 36, 225, 140, 20, 180, 201, 8, 147, 9, 80, 85, 0, 20, 12, 201, 80, 82, 206, 60, 180, 129, 80, 148, 203, 20, 13, 202,
+			52, 81, 137, 77, 67, 198, 20, 194, 83, 44, 20, 12, 201, 33, 81, 213, 20, 227, 212, 80, 148, 203, 20, 0, 24, 73, 44, 243, 134, 37,
+			35, 65, 56, 65, 82, 49, 114, 50, 83, 36, 34, 65, 6, 110, 50, 72, 108, 0, 10, 67, 36, 65, 84, 37, 72, 6, 36, 0, 12, 201,
+			48, 82, 211, 36, 176, 76, 37, 49, 82, 20, 12, 201, 4, 178, 204, 36, 208, 84, 37, 49, 82, 20, 14, 203, 44, 243, 147, 64, 148, 129,
+			80, 244, 137, 76, 176, 20, 14, 203, 20, 180, 193, 52, 147, 129, 80, 244, 137, 76, 176, 20, 14, 203, 12, 149, 137, 48, 148, 193, 80, 244,
+			137, 76, 176, 20, 9, 198, 5, 53, 5, 56, 148, 203, 20, 10, 199, 5, 84, 208, 36, 50, 85, 52, 20, 0, 9, 198, 72, 80, 76, 37,
+			53, 0, 20, 9, 198, 17, 80, 76, 37, 53, 0, 20, 9, 198, 16, 83, 148, 37, 53, 0, 20, 9, 198, 12, 19, 80, 37, 53, 0, 20,
+			9, 198, 60, 181, 18, 60, 161, 82, 20, 9, 198, 37, 35, 206, 37, 49, 82, 20, 9, 198, 36, 226, 204, 36, 225, 82, 20, 9, 198, 36,
+			226, 193, 77, 49, 82, 20, 7, 196, 53, 83, 1, 80, 20, 0, 9, 198, 21, 85, 1, 56, 20, 201, 20, 9, 198, 64, 84, 137, 24, 84,
+			137, 20, 0, 15, 204, 20, 180, 201, 77, 65, 78, 80, 144, 76, 37, 53, 0, 20, 12, 201, 52, 225, 77, 61, 65, 75, 56, 148, 203, 20,
+			9, 198, 16, 148, 203, 60, 98, 76, 20, 9, 198, 16, 144, 75, 60, 224, 76, 20, 13, 4, 95, 7, 18, 22, 35, 49, 89, 6, 35, 68,
+			0, 0, 6, 195, 76, 244, 192, 17, 30, 75, 9, 33, 65, 44, 64, 78, 12, 84, 142, 21, 48, 71, 34, 109, 37, 81, 6, 72, 35, 12,
+			50, 89, 114, 20, 50, 13, 89, 0, 10, 199, 44, 83, 79, 80, 18, 211, 36, 20, 12, 201, 77, 147, 132, 36, 176, 76, 37, 53, 0, 20,
+			12, 201, 52, 21, 5, 72, 144, 76, 37, 53, 0, 20, 12, 201, 36, 212, 5, 72, 144, 76, 37, 53, 0, 20, 12, 201, 21, 52, 5, 72,
+			19, 148, 37, 53, 0, 20, 12, 201, 24, 19, 73, 48, 144, 82, 37, 49, 82, 20, 10, 199, 52, 243, 135, 60, 195, 201, 16, 20, 10, 135,
+			16, 18, 195, 166, 12, 1, 20, 20, 0, 9, 198, 72, 81, 149, 76, 147, 206, 20, 9, 198, 16, 85, 143, 80, 147, 206, 20, 7, 196, 65,
+			84, 133, 72, 20, 11, 200, 65, 35, 214, 20, 226, 69, 57, 48, 20, 11, 200, 44, 243, 150, 20, 226, 69, 57, 48, 20, 11, 200, 36, 225,
+			210, 20, 66, 69, 57, 48, 20, 0, 9, 198, 24, 147, 15, 48, 241, 201, 20, 8, 197, 44, 21, 9, 60, 224, 20, 8, 197, 44, 244, 132,
+			20, 192, 20, 8, 197, 8, 244, 132, 20, 192, 20, 12, 201, 65, 35, 198, 21, 52, 201, 60, 224, 76, 20, 0, 15, 204, 36, 229, 5, 48,
+			193, 75, 81, 80, 76, 37, 53, 0, 20, 9, 198, 44, 244, 21, 48, 84, 128, 20, 9, 198, 5, 81, 9, 80, 84, 128, 20, 9, 198, 44,
+			242, 203, 60, 194, 84, 20, 0, 10, 199, 81, 148, 9, 24, 144, 197, 72, 20, 10, 199, 64, 243, 5, 52, 148, 197, 72, 20, 10, 199, 56,
+			245, 9, 24, 144, 197, 72, 20, 10, 199, 52, 244, 129, 48, 148, 197, 72, 20, 10, 199, 44, 243, 80, 48, 144, 197, 72, 20, 10, 199, 44,
+			19, 129, 48, 148, 197, 72, 20, 10, 199, 33, 83, 65, 56, 148, 197, 72, 20, 10, 199, 24, 19, 129, 80, 148, 197, 72, 20, 10, 199, 16,
+			83, 129, 81, 84, 133, 72, 20, 10, 199, 8, 83, 133, 16, 144, 197, 72, 20, 10, 199, 8, 19, 129, 48, 148, 197, 72, 20, 10, 199, 44,
+			243, 80, 60, 225, 78, 80, 20, 10, 199, 20, 180, 208, 60, 225, 78, 80, 20, 10, 199, 16, 148, 208, 60, 225, 78, 80, 20, 0, 11, 200,
+			85, 53, 82, 64, 21, 9, 60, 224, 20, 11, 200, 72, 84, 5, 80, 149, 9, 60, 224, 20, 11, 200, 72, 84, 1, 72, 21, 9, 60, 224,
+			20, 11, 200, 40, 243, 137, 76, 21, 9, 60, 224, 20, 11, 200, 36, 229, 15, 56, 21, 9, 60, 224, 20, 11, 200, 36, 225, 9, 44, 21,
+			9, 60, 224, 20, 11, 200, 24, 81, 5, 72, 21, 9, 60, 224, 20, 11, 200, 5, 69, 18, 4, 181, 9, 60, 224, 20, 11, 200, 4, 195,
+			15, 44, 21, 9, 60, 224, 20, 9, 198, 4, 67, 208, 80, 147, 206, 20, 11, 200, 4, 67, 143, 80, 21, 9, 60, 224, 20, 11, 200, 4,
+			64, 80, 80, 21, 9, 60, 224, 20, 18, 207, 20, 180, 212, 72, 20, 1, 72, 192, 77, 20, 229, 1, 72, 148, 203, 20, 7, 196, 49, 148,
+			137, 44, 20, 13, 138, 11, 15, 18, 19, 195, 184, 18, 9, 1, 14, 20, 9, 198, 77, 69, 68, 20, 229, 0, 20, 7, 196, 53, 85, 1,
+			8, 20, 0, 12, 201, 56, 243, 69, 56, 179, 1, 81, 84, 128, 20, 12, 201, 24, 195, 211, 45, 83, 1, 81, 84, 128, 20, 9, 198, 16,
+			21, 1, 48, 241, 201, 20, 9, 198, 24, 192, 78, 44, 84, 133, 20, 9, 198, 33, 148, 15, 80, 84, 197, 20, 8, 197, 32, 83, 12, 20,
+			224, 20, 9, 198, 72, 83, 148, 72, 144, 197, 20, 9, 198, 52, 243, 148, 72, 144, 197, 20, 8, 197, 56, 85, 82, 4, 192, 20, 0, 28,
+			74, 9, 33, 65, 44, 64, 78, 12, 84, 142, 20, 71, 34, 109, 37, 81, 6, 72, 35, 12, 50, 89, 114, 20, 50, 13, 0, 11, 200, 44,
+			21, 15, 16, 244, 203, 61, 0, 20, 11, 200, 28, 20, 212, 72, 244, 203, 61, 0, 20, 13, 202, 76, 176, 78, 16, 147, 129, 88, 148, 197,
+			72, 20, 13, 202, 65, 35, 194, 48, 83, 65, 80, 148, 197, 72, 20, 13, 202, 24, 146, 212, 36, 243, 129, 48, 148, 197, 72, 20, 13, 202,
+			12, 243, 148, 4, 147, 133, 72, 148, 197, 72, 20, 13, 202, 80, 84, 141, 60, 70, 78, 4, 210, 83, 44, 20, 0, 10, 199, 80, 84, 141,
+			37, 53, 15, 72, 20, 14, 203, 36, 229, 5, 73, 1, 76, 48, 21, 9, 60, 224, 20, 14, 203, 36, 65, 78, 80, 145, 137, 44, 21, 9,
+			60, 224, 20, 14, 203, 20, 180, 212, 72, 20, 15, 48, 21, 9, 60, 224, 20, 14, 203, 12, 83, 148, 72, 19, 9, 76, 21, 9, 60, 224,
+			20, 12, 201, 5, 81, 205, 20, 229, 1, 80, 147, 206, 20, 14, 203, 4, 67, 73, 56, 148, 212, 72, 21, 9, 60, 224, 20, 10, 199, 80,
+			19, 154, 4, 226, 83, 44, 20, 9, 198, 80, 19, 65, 72, 148, 203, 20, 10, 199, 77, 148, 212, 60, 194, 83, 44, 20, 9, 198, 45, 35,
+			193, 80, 148, 203, 20, 10, 199, 32, 20, 141, 60, 226, 83, 44, 20, 9, 198, 25, 85, 21, 72, 148, 203, 20, 9, 198, 24, 243, 133, 80,
+			148, 203, 20, 9, 198, 4, 115, 129, 80, 148, 203, 20, 10, 199, 16, 149, 133, 72, 113, 78, 80, 20, 12, 201, 77, 80, 132, 60, 210, 78,
+			4, 229, 0, 20, 10, 199, 56, 81, 204, 36, 113, 65, 8, 20, 12, 71, 77, 64, 84, 20, 209, 78, 80, 21, 0, 10, 0, 11, 200, 72,
+			85, 143, 49, 85, 9, 60, 224, 20, 11, 200, 72, 84, 207, 49, 85, 9, 60, 224, 20, 11, 200, 60, 178, 213, 64, 21, 9, 60, 224, 20,
+			11, 200, 56, 21, 137, 28, 21, 9, 60, 224, 20, 11, 200, 52, 241, 5, 72, 21, 9, 60, 224, 20, 11, 200, 45, 96, 68, 72, 21, 9,
+			60, 224, 20, 11, 200, 44, 20, 212, 72, 21, 9, 60, 224, 20, 11, 200, 36, 227, 143, 88, 21, 9, 60, 224, 20, 11, 200, 16, 85, 15,
+			56, 21, 9, 60, 224, 20, 11, 200, 16, 82, 207, 72, 21, 9, 60, 224, 20, 11, 200, 5, 85, 15, 52, 21, 9, 60, 224, 20, 11, 200,
+			5, 4, 1, 72, 149, 9, 60, 224, 20, 11, 200, 4, 227, 143, 80, 21, 9, 60, 224, 20, 11, 200, 4, 33, 9, 44, 21, 9, 60, 224,
+			20, 0, 8, 197, 80, 19, 201, 77, 64, 20, 8, 197, 52, 243, 137, 77, 64, 20, 8, 197, 8, 147, 208, 5, 64, 20, 0, 9, 198, 24,
+			147, 15, 48, 241, 192, 20, 12, 201, 80, 83, 5, 44, 147, 133, 80, 148, 203, 20, 12, 201, 56, 81, 5, 73, 48, 75, 76, 148, 203, 20,
+			12, 201, 36, 225, 15, 44, 147, 133, 76, 148, 203, 20, 15, 140, 12, 195, 184, 7, 19, 20, 195, 184, 18, 9, 1, 14, 20, 9, 198, 72,
+			21, 9, 60, 224, 76, 20, 9, 198, 24, 244, 140, 4, 65, 64, 20, 0, 10, 199, 76, 18, 203, 5, 35, 211, 20, 20, 10, 199, 88, 147,
+			204, 36, 226, 83, 80, 20, 10, 199, 80, 84, 146, 61, 34, 83, 80, 20, 10, 199, 77, 147, 66, 60, 194, 83, 80, 20, 10, 199, 76, 240,
+			201, 4, 194, 83, 80, 20, 10, 199, 76, 163, 198, 20, 194, 83, 80, 20, 10, 199, 52, 245, 9, 60, 226, 83, 80, 20, 10, 199, 24, 244,
+			141, 4, 194, 83, 80, 20, 10, 199, 24, 85, 9, 12, 130, 83, 80, 20, 10, 199, 16, 20, 151, 36, 226, 83, 80, 20, 10, 199, 4, 181,
+			9, 60, 226, 83, 80, 20, 10, 199, 4, 36, 213, 72, 66, 83, 80, 20, 14, 203, 64, 243, 25, 52, 84, 137, 76, 21, 9, 60, 224, 20,
+			9, 198, 84, 112, 78, 16, 148, 203, 20, 9, 198, 81, 83, 133, 76, 148, 203, 20, 9, 198, 76, 21, 25, 72, 148, 203, 20, 9, 198, 52,
+			245, 9, 88, 148, 203, 20, 9, 198, 32, 243, 69, 72, 148, 203, 20, 9, 198, 20, 212, 9, 72, 148, 203, 20, 9, 198, 5, 52, 217, 72,
+			148, 203, 20, 9, 198, 4, 181, 9, 88, 148, 203, 20, 10, 199, 16, 149, 133, 72, 113, 78, 76, 20, 12, 71, 76, 178, 78, 32, 80, 68,
+			76, 21, 0, 10, 13, 4, 95, 4, 9, 1, 6, 39, 65, 55, 116, 72, 0, 0, 11, 200, 64, 83, 147, 36, 243, 137, 77, 64, 20, 11,
+			200, 44, 21, 84, 36, 243, 137, 77, 64, 20, 7, 196, 16, 82, 83, 80, 20, 14, 139, 8, 195, 165, 14, 4, 20, 5, 18, 12, 9, 7,
+			20, 11, 200, 76, 82, 212, 21, 34, 75, 21, 32, 20, 11, 200, 72, 243, 65, 57, 66, 75, 21, 32, 20, 11, 200, 56, 85, 82, 61, 66,
+			75, 21, 32, 20, 11, 200, 48, 241, 201, 77, 66, 75, 21, 32, 20, 11, 200, 20, 179, 5, 45, 66, 75, 21, 32, 20, 11, 200, 17, 148,
+			198, 5, 66, 75, 21, 32, 20, 11, 200, 16, 145, 1, 45, 66, 75, 21, 32, 20, 9, 198, 32, 244, 148, 84, 192, 78, 21, 0, 12, 201,
+			60, 212, 203, 72, 149, 133, 48, 145, 192, 20, 12, 201, 60, 212, 203, 36, 101, 5, 48, 145, 192, 20, 12, 201, 44, 19, 77, 21, 32, 84,
+			48, 145, 192, 20, 12, 201, 29, 32, 78, 28, 149, 133, 48, 145, 192, 20, 12, 201, 28, 83, 139, 20, 225, 5, 48, 145, 192, 20, 12, 201,
+			24, 244, 150, 20, 229, 5, 48, 145, 192, 20, 12, 201, 24, 244, 149, 17, 49, 69, 48, 145, 192, 20, 12, 201, 24, 244, 139, 5, 53, 5,
+			48, 145, 192, 20, 12, 201, 8, 241, 211, 80, 21, 133, 48, 145, 192, 20, 8, 197, 61, 34, 69, 57, 64, 20, 9, 198, 76, 16, 143, 80,
+			17, 197, 20, 0, 11, 136, 195, 166, 11, 22, 1, 20, 15, 18, 20, 9, 198, 44, 21, 1, 48, 241, 192, 20, 9, 198, 16, 21, 1, 48,
+			241, 192, 20, 13, 202, 36, 225, 9, 88, 145, 21, 4, 194, 83, 80, 20, 13, 202, 36, 212, 18, 21, 52, 201, 60, 226, 83, 80, 20, 9,
+			198, 16, 80, 201, 8, 83, 0, 20, 12, 201, 45, 35, 206, 60, 209, 84, 72, 148, 203, 20, 12, 201, 44, 244, 21, 48, 21, 15, 72, 148,
+			203, 20, 12, 201, 28, 84, 141, 4, 226, 83, 80, 148, 203, 20, 12, 201, 16, 81, 137, 56, 149, 15, 72, 148, 203, 20, 12, 201, 4, 225,
+			197, 49, 48, 75, 76, 148, 203, 20, 18, 70, 28, 83, 9, 56, 65, 64, 81, 36, 55, 6, 36, 50, 72, 13, 0, 20, 9, 198, 16, 144,
+			71, 60, 224, 76, 20, 9, 198, 64, 193, 74, 4, 65, 64, 20, 11, 70, 60, 97, 140, 36, 225, 64, 21, 0, 10, 0, 10, 199, 4, 229,
+			9, 8, 147, 211, 20, 20, 14, 203, 20, 180, 208, 72, 84, 211, 36, 243, 137, 77, 64, 20, 10, 199, 20, 180, 207, 72, 50, 83, 80, 20,
+			10, 199, 24, 192, 84, 84, 193, 78, 76, 20, 13, 138, 2, 12, 195, 184, 4, 1, 7, 20, 9, 7, 20, 0, 11, 200, 72, 84, 208, 37,
+			32, 84, 61, 32, 20, 11, 200, 45, 83, 20, 37, 96, 84, 61, 32, 20, 15, 204, 28, 84, 212, 4, 197, 16, 77, 146, 207, 48, 241, 192,
+			20, 11, 200, 4, 224, 66, 5, 5, 9, 77, 64, 20, 7, 196, 52, 84, 207, 56, 20, 9, 198, 72, 85, 137, 76, 147, 206, 20, 9, 198,
+			16, 80, 201, 76, 147, 206, 20, 7, 196, 45, 84, 133, 72, 20, 14, 139, 20, 22, 9, 22, 12, 18, 195, 165, 4, 9, 7, 20, 11, 200,
+			76, 83, 73, 61, 66, 75, 21, 32, 20, 11, 200, 76, 83, 65, 57, 66, 75, 21, 32, 20, 11, 200, 5, 67, 1, 57, 66, 75, 21, 32,
+			20, 11, 200, 4, 115, 143, 77, 66, 75, 21, 32, 20, 11, 200, 76, 244, 132, 36, 225, 82, 21, 64, 20, 11, 200, 72, 85, 1, 72, 65,
+			82, 21, 64, 20, 11, 200, 45, 33, 78, 20, 193, 82, 21, 64, 20, 11, 200, 24, 16, 207, 56, 225, 82, 21, 64, 20, 11, 200, 24, 192,
+			77, 8, 246, 65, 57, 64, 20, 0, 9, 198, 77, 68, 129, 80, 81, 201, 20, 12, 201, 77, 80, 147, 80, 19, 148, 36, 83, 0, 20, 8,
+			197, 72, 20, 197, 72, 80, 20, 8, 197, 33, 84, 197, 72, 80, 20, 8, 197, 8, 20, 197, 72, 80, 20, 15, 204, 77, 68, 149, 45, 69,
+			82, 4, 194, 83, 80, 148, 203, 20, 8, 197, 64, 20, 133, 76, 80, 20, 8, 197, 9, 83, 9, 52, 144, 20, 9, 198, 52, 148, 207, 29,
+			147, 137, 20, 8, 197, 28, 20, 129, 28, 80, 20, 0, 9, 198, 24, 83, 73, 56, 148, 212, 20, 9, 198, 20, 212, 9, 72, 148, 212, 20,
+			9, 198, 4, 197, 18, 84, 148, 212, 20, 9, 198, 4, 181, 9, 88, 148, 212, 20, 9, 198, 44, 147, 133, 80, 146, 192, 20, 9, 198, 77,
+			83, 20, 4, 224, 84, 20, 9, 198, 44, 244, 146, 20, 192, 84, 20, 9, 198, 52, 148, 212, 72, 19, 0, 20, 0, 10, 199, 88, 19, 15,
+			72, 148, 197, 72, 20, 10, 199, 80, 83, 5, 88, 148, 197, 72, 20, 10, 199, 72, 80, 83, 77, 84, 133, 72, 20, 10, 199, 64, 243, 1,
+			72, 148, 197, 72, 20, 10, 199, 52, 241, 9, 24, 144, 197, 72, 20, 10, 199, 48, 21, 9, 56, 148, 197, 72, 20, 10, 199, 44, 241, 9,
+			24, 144, 197, 72, 20, 10, 199, 21, 81, 143, 72, 148, 197, 72, 20, 10, 199, 4, 211, 210, 80, 148, 197, 72, 20, 9, 198, 44, 244, 148,
+			20, 194, 71, 20, 9, 198, 4, 197, 143, 72, 194, 71, 20, 9, 198, 4, 117, 5, 72, 194, 71, 20, 9, 198, 4, 100, 201, 56, 66, 71,
+			20, 14, 203, 44, 243, 135, 21, 53, 9, 60, 225, 82, 21, 64, 20, 0, 11, 200, 52, 85, 5, 61, 35, 204, 60, 112, 20, 11, 200, 8,
+			83, 133, 16, 144, 197, 72, 80, 68, 7, 196, 25, 85, 15, 56, 20, 9, 198, 56, 245, 129, 80, 147, 206, 20, 7, 196, 17, 84, 5, 72,
+			20, 11, 200, 64, 243, 25, 56, 84, 201, 76, 176, 20, 11, 200, 52, 147, 1, 56, 84, 201, 76, 176, 20, 11, 200, 52, 83, 1, 56, 84,
+			201, 76, 176, 20, 11, 200, 20, 180, 207, 80, 84, 137, 76, 176, 20, 11, 200, 8, 19, 19, 81, 148, 137, 76, 176, 20, 14, 68, 28, 19,
+			73, 56, 81, 110, 65, 6, 109, 68, 0, 20, 11, 200, 76, 19, 135, 21, 34, 78, 16, 80, 20, 11, 200, 64, 20, 212, 61, 34, 78, 16,
+			80, 20, 11, 200, 44, 82, 147, 21, 34, 78, 16, 80, 20, 15, 204, 44, 19, 77, 21, 34, 5, 73, 33, 73, 56, 65, 64, 20, 9, 68,
+			5, 4, 12, 20, 21, 0, 10, 0, 9, 198, 21, 2, 83, 44, 244, 0, 20, 12, 201, 60, 36, 203, 85, 32, 78, 80, 148, 212, 20, 12,
+			201, 5, 96, 78, 80, 112, 82, 16, 148, 212, 20, 12, 201, 61, 4, 15, 76, 149, 9, 60, 225, 76, 20, 14, 139, 8, 195, 166, 13, 15,
+			7, 12, 15, 2, 9, 14, 20, 11, 136, 195, 166, 19, 20, 5, 20, 9, 11, 20, 8, 197, 73, 80, 146, 36, 176, 20, 8, 197, 20, 208,
+			140, 20, 208, 20, 0, 9, 198, 64, 19, 133, 48, 148, 212, 20, 9, 198, 28, 21, 76, 48, 148, 212, 20, 9, 198, 24, 147, 129, 48, 148,
+			212, 20, 9, 198, 5, 33, 197, 48, 148, 212, 20, 12, 201, 8, 80, 82, 8, 82, 132, 20, 194, 71, 67, 14, 204, 60, 227, 205, 5, 67,
+			208, 60, 145, 84, 36, 179, 206, 6, 195, 33, 84, 137, 20, 12, 201, 45, 84, 134, 101, 36, 212, 20, 194, 71, 20, 12, 201, 24, 244, 150,
+			20, 180, 204, 20, 194, 71, 20, 12, 201, 8, 80, 82, 8, 82, 132, 20, 194, 71, 20, 9, 198, 72, 85, 15, 72, 146, 192, 20, 9, 198,
+			52, 245, 15, 72, 146, 192, 20, 0, 12, 201, 8, 83, 133, 24, 144, 197, 72, 85, 0, 68, 12, 201, 44, 243, 147, 84, 197, 1, 80, 147,
+			206, 20, 12, 201, 36, 225, 9, 76, 180, 133, 80, 147, 206, 20, 12, 201, 36, 212, 12, 4, 229, 1, 80, 147, 206, 20, 12, 201, 5, 84,
+			203, 84, 197, 1, 80, 147, 206, 20, 10, 199, 76, 82, 214, 20, 228, 197, 72, 20, 10, 199, 52, 20, 212, 85, 32, 133, 72, 20, 14, 203,
+			65, 54, 75, 60, 19, 129, 49, 148, 197, 72, 80, 20, 14, 203, 77, 84, 5, 72, 83, 12, 37, 5, 9, 76, 176, 20, 9, 198, 64, 243,
+			5, 52, 148, 203, 20, 9, 198, 56, 245, 15, 72, 148, 203, 20, 9, 198, 56, 19, 73, 8, 148, 203, 20, 9, 198, 5, 53, 5, 72, 148,
+			203, 20, 9, 198, 5, 37, 5, 76, 148, 203, 20, 10, 199, 44, 20, 5, 48, 192, 78, 36, 20, 14, 203, 44, 243, 134, 37, 35, 65, 56,
+			66, 78, 16, 80, 20, 12, 137, 18, 21, 13, 195, 166, 14, 9, 5, 14, 20, 12, 201, 44, 243, 80, 48, 144, 197, 72, 85, 0, 20, 12,
+			201, 8, 83, 133, 24, 144, 197, 72, 85, 0, 20, 0, 11, 200, 80, 242, 211, 36, 179, 204, 60, 112, 20, 9, 198, 76, 80, 197, 72, 225,
+			82, 20, 9, 198, 72, 85, 1, 8, 193, 82, 20, 9, 198, 44, 19, 85, 24, 193, 82, 20, 11, 200, 64, 243, 25, 12, 83, 148, 72, 144,
+			20, 11, 200, 25, 38, 71, 80, 17, 212, 36, 112, 20, 11, 200, 80, 241, 207, 48, 84, 201, 76, 176, 20, 11, 200, 4, 229, 5, 64, 83,
+			132, 36, 80, 20, 9, 198, 56, 17, 148, 4, 194, 78, 20, 11, 200, 80, 161, 78, 21, 34, 78, 16, 80, 20, 11, 200, 77, 98, 71, 21,
+			34, 78, 16, 80, 20, 11, 200, 36, 225, 129, 57, 66, 78, 16, 80, 20, 11, 200, 20, 196, 203, 21, 34, 78, 16, 80, 20, 11, 200, 16,
+			19, 147, 21, 34, 78, 16, 80, 20, 19, 70, 24, 19, 11, 60, 225, 82, 83, 110, 55, 49, 39, 50, 6, 36, 34, 0, 20, 11, 200, 76,
+			84, 150, 37, 68, 137, 12, 80, 20, 7, 196, 8, 84, 193, 80, 20, 11, 200, 25, 38, 71, 80, 17, 212, 36, 112, 20, 7, 196, 88, 20,
+			193, 48, 20, 7, 196, 56, 20, 193, 48, 20, 11, 200, 64, 84, 147, 36, 99, 1, 28, 80, 20, 0, 12, 201, 44, 243, 77, 4, 225, 9,
+			80, 148, 212, 20, 12, 201, 37, 51, 204, 5, 66, 79, 56, 148, 212, 20, 12, 201, 52, 225, 77, 61, 65, 75, 56, 146, 192, 20, 0, 19,
+			3, 19, 195, 165, 89, 114, 15, 89, 36, 50, 47, 0, 81, 115, 101, 110, 116, 32, 17, 3, 19, 195, 165, 89, 114, 15, 107, 35, 34, 0,
+			81, 104, 97, 114, 32, 27, 3, 19, 195, 165, 89, 6, 113, 15, 65, 6, 113, 89, 6, 37, 13, 0, 82, 109, 195, 165, 32, 115, 105, 103,
+			101, 32, 17, 3, 19, 195, 165, 89, 114, 15, 65, 6, 113, 0, 81, 109, 195, 165, 32, 20, 3, 19, 195, 165, 89, 114, 15, 84, 6, 109,
+			114, 0, 81, 118, 195, 166, 114, 101, 32, 22, 3, 19, 195, 165, 89, 114, 15, 55, 6, 109, 68, 108, 0, 81, 108, 195, 166, 110, 103, 101,
+			32, 18, 3, 19, 195, 165, 89, 114, 15, 84, 6, 112, 34, 0, 81, 118, 97, 114, 32, 21, 3, 19, 195, 165, 89, 114, 15, 107, 6, 114,
+			57, 47, 0, 81, 104, 195, 184, 106, 116, 32, 18, 3, 19, 195, 165, 89, 114, 15, 84, 6, 36, 55, 0, 81, 118, 105, 108, 32, 21, 3,
+			19, 195, 165, 89, 114, 15, 55, 6, 112, 68, 47, 0, 81, 108, 97, 110, 103, 116, 32, 19, 3, 19, 195, 165, 89, 114, 15, 81, 6, 118,
+			34, 0, 81, 103, 195, 184, 114, 32, 16, 3, 19, 195, 165, 89, 114, 15, 6, 109, 34, 0, 81, 101, 114, 32, 21, 3, 19, 195, 165, 89,
+			114, 15, 65, 6, 35, 68, 108, 0, 81, 109, 97, 110, 103, 101, 32, 23, 3, 19, 195, 165, 89, 114, 15, 65, 6, 35, 12, 57, 13, 86,
+			0, 81, 109, 101, 103, 101, 116, 32, 12, 201, 56, 21, 137, 28, 21, 15, 72, 148, 203, 20, 12, 201, 52, 85, 1, 48, 197, 82, 28, 148,
+			203, 20, 12, 201, 52, 20, 212, 60, 67, 206, 80, 148, 203, 20, 12, 201, 36, 212, 5, 72, 21, 9, 88, 148, 203, 20, 12, 201, 24, 244,
+			130, 73, 145, 5, 72, 148, 203, 20, 13, 202, 12, 148, 212, 21, 32, 201, 20, 228, 197, 72, 20, 15, 204, 16, 83, 73, 56, 84, 129, 48,
+			148, 197, 72, 85, 0, 20, 9, 198, 56, 21, 9, 60, 224, 76, 20, 0, 12, 201, 56, 21, 9, 60, 224, 76, 37, 53, 0, 20, 12, 201,
+			44, 244, 146, 21, 52, 15, 56, 65, 82, 20, 12, 201, 44, 243, 131, 21, 52, 201, 60, 225, 82, 20, 12, 201, 44, 243, 77, 37, 52, 201,
+			60, 225, 82, 20, 9, 198, 85, 48, 133, 44, 148, 203, 20, 9, 198, 72, 85, 15, 72, 148, 203, 20, 9, 198, 52, 245, 15, 72, 148, 203,
+			20, 9, 198, 44, 244, 193, 44, 148, 203, 20, 9, 198, 12, 243, 79, 72, 148, 203, 20, 10, 199, 44, 243, 150, 21, 37, 9, 80, 20, 9,
+			198, 65, 35, 211, 60, 66, 75, 20, 10, 199, 72, 85, 137, 76, 244, 129, 80, 20, 11, 136, 2, 18, 195, 166, 11, 1, 7, 5, 20, 0,
+			15, 204, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 148, 212, 20, 9, 198, 80, 244, 144, 20, 65, 82, 20, 9, 198, 72, 85, 1, 72,
+			65, 82, 20, 9, 198, 48, 146, 214, 36, 65, 82, 20, 9, 198, 44, 244, 146, 20, 193, 82, 20, 9, 198, 44, 19, 142, 20, 193, 82, 20,
+			9, 198, 20, 180, 208, 20, 65, 82, 20, 9, 198, 4, 197, 5, 72, 225, 82, 20, 7, 196, 5, 4, 137, 48, 20, 7, 196, 20, 180, 197,
+			52, 20, 9, 68, 12, 245, 67, 32, 21, 0, 10, 0, 13, 69, 12, 19, 1, 37, 48, 49, 35, 55, 6, 109, 0, 0, 9, 198, 80, 20,
+			148, 20, 193, 84, 20, 12, 201, 60, 36, 203, 85, 32, 78, 80, 148, 203, 20, 12, 201, 13, 149, 15, 64, 192, 83, 52, 148, 203, 20, 12,
+			201, 4, 178, 213, 76, 21, 9, 88, 148, 203, 20, 0, 12, 201, 72, 21, 9, 60, 224, 76, 37, 53, 0, 20, 12, 201, 64, 84, 134, 20,
+			181, 9, 60, 225, 82, 20, 12, 201, 44, 243, 134, 20, 181, 9, 60, 225, 82, 20, 10, 199, 64, 19, 12, 4, 66, 85, 52, 20, 10, 199,
+			28, 84, 149, 56, 66, 85, 52, 20, 10, 199, 21, 2, 84, 4, 98, 85, 52, 20, 10, 199, 4, 197, 77, 36, 226, 85, 52, 20, 10, 199,
+			20, 212, 9, 72, 148, 205, 20, 20, 10, 199, 4, 181, 9, 88, 148, 205, 20, 20, 10, 199, 16, 84, 21, 80, 84, 133, 80, 20, 10, 199,
+			44, 243, 132, 20, 228, 193, 80, 20, 0, 9, 198, 28, 20, 142, 37, 51, 206, 20, 9, 198, 76, 19, 139, 80, 147, 206, 20, 9, 198, 24,
+			193, 75, 76, 147, 206, 20, 7, 196, 61, 5, 5, 72, 20, 9, 198, 52, 145, 210, 4, 229, 0, 20, 0, 8, 197, 25, 34, 86, 60, 192,
+			20, 9, 198, 44, 243, 84, 21, 52, 197, 20, 8, 197, 25, 37, 71, 4, 192, 20, 8, 197, 88, 20, 137, 4, 32, 20, 0, 13, 202, 65,
+			54, 75, 60, 96, 82, 52, 18, 213, 52, 20, 9, 198, 20, 180, 208, 20, 66, 84, 20, 0, 17, 67, 33, 96, 68, 84, 110, 15, 89, 114,
+			0, 14, 81, 115, 195, 165, 32, 6, 195, 20, 64, 128, 17, 10, 199, 48, 243, 66, 5, 33, 5, 72, 20, 10, 199, 36, 229, 5, 72, 17,
+			197, 72, 20, 10, 199, 8, 243, 66, 5, 33, 5, 72, 20, 10, 199, 49, 85, 135, 21, 36, 137, 28, 20, 10, 199, 44, 243, 148, 36, 225,
+			78, 80, 20, 10, 199, 44, 243, 147, 84, 193, 78, 80, 20, 6, 195, 25, 32, 64, 76, 0, 11, 200, 4, 68, 207, 73, 5, 9, 60, 224,
+			20, 7, 196, 53, 85, 5, 72, 20, 9, 198, 65, 35, 198, 37, 64, 66, 20, 9, 198, 16, 83, 79, 57, 64, 66, 20, 0, 8, 197, 72,
+			81, 201, 60, 224, 20, 8, 197, 80, 84, 146, 36, 224, 20, 8, 197, 8, 83, 154, 36, 224, 20, 8, 197, 44, 21, 83, 4, 192, 20, 0,
+			11, 200, 9, 35, 206, 44, 244, 203, 61, 0, 20, 13, 202, 72, 85, 18, 4, 228, 205, 37, 69, 5, 72, 20, 13, 202, 64, 84, 147, 64,
+			82, 212, 37, 100, 137, 28, 20, 0, 12, 201, 44, 243, 150, 21, 36, 193, 80, 147, 206, 20, 12, 201, 44, 243, 147, 64, 148, 129, 80, 147,
+			206, 20, 12, 201, 20, 180, 211, 64, 148, 129, 80, 147, 206, 20, 12, 201, 20, 180, 208, 48, 244, 129, 80, 147, 206, 20, 12, 201, 12, 149,
+			137, 48, 148, 193, 80, 147, 206, 20, 12, 201, 5, 85, 15, 72, 148, 193, 80, 147, 206, 20, 12, 201, 4, 48, 197, 48, 84, 129, 80, 147,
+			206, 20, 10, 199, 21, 50, 193, 52, 245, 5, 72, 20, 10, 199, 20, 180, 203, 49, 81, 5, 72, 20, 9, 198, 72, 84, 21, 8, 194, 75,
+			20, 13, 138, 16, 195, 166, 4, 1, 7, 15, 7, 9, 11, 20, 9, 198, 53, 82, 203, 20, 34, 75, 20, 10, 199, 77, 68, 137, 56, 113,
+			78, 80, 20, 10, 199, 44, 243, 147, 84, 209, 78, 80, 20, 0, 11, 200, 77, 80, 147, 84, 213, 9, 60, 224, 20, 11, 200, 64, 84, 131,
+			21, 5, 9, 60, 224, 20, 11, 200, 44, 243, 131, 21, 5, 9, 60, 224, 20, 11, 200, 20, 180, 197, 45, 85, 9, 60, 224, 20, 11, 200,
+			84, 197, 18, 4, 208, 82, 36, 224, 20, 0, 13, 69, 77, 65, 71, 21, 64, 89, 47, 36, 13, 72, 0, 8, 197, 4, 224, 70, 61, 32,
+			20, 14, 139, 6, 195, 184, 4, 5, 18, 1, 20, 9, 15, 14, 20, 12, 201, 52, 81, 9, 44, 19, 69, 57, 65, 76, 20, 12, 201, 36,
+			228, 212, 73, 83, 69, 57, 65, 76, 20, 9, 198, 28, 19, 15, 64, 17, 5, 20, 0, 9, 198, 25, 34, 83, 85, 33, 64, 20, 9, 198,
+			88, 149, 18, 36, 225, 64, 20, 9, 198, 48, 145, 82, 36, 225, 192, 20, 9, 198, 65, 83, 19, 21, 33, 64, 20, 9, 198, 25, 34, 83,
+			21, 33, 64, 20, 9, 198, 21, 64, 71, 21, 33, 64, 20, 9, 198, 17, 32, 71, 21, 33, 64, 20, 9, 198, 88, 83, 133, 16, 145, 192,
+			20, 12, 4, 95, 35, 51, 50, 71, 55, 35, 50, 49, 0, 0, 33, 67, 76, 19, 20, 89, 6, 114, 55, 47, 15, 55, 109, 57, 49, 15,
+			89, 6, 37, 47, 37, 0, 82, 108, 97, 107, 101, 32, 99, 105, 116, 121, 32, 10, 199, 52, 20, 207, 12, 130, 83, 80, 20, 10, 199, 52,
+			20, 203, 36, 226, 83, 80, 20, 10, 199, 12, 243, 21, 52, 226, 83, 80, 20, 14, 203, 4, 229, 9, 44, 243, 131, 21, 5, 9, 60, 224,
+			20, 10, 199, 77, 68, 137, 56, 113, 78, 76, 20, 0, 11, 200, 36, 228, 212, 73, 82, 212, 61, 32, 20, 7, 196, 36, 66, 79, 52, 20,
+			7, 196, 28, 194, 79, 52, 20, 17, 142, 19, 20, 195, 166, 18, 15, 16, 5, 18, 1, 20, 9, 15, 14, 20, 17, 142, 11, 15, 14, 6,
+			195, 184, 4, 5, 18, 1, 20, 9, 15, 14, 20, 11, 200, 65, 34, 86, 36, 193, 71, 21, 32, 20, 11, 200, 64, 192, 84, 60, 226, 75,
+			21, 32, 20, 11, 200, 32, 84, 129, 48, 66, 75, 21, 32, 20, 9, 198, 16, 82, 211, 81, 34, 78, 20, 9, 198, 64, 18, 201, 77, 64,
+			78, 20, 9, 198, 80, 20, 140, 5, 64, 78, 21, 9, 198, 52, 243, 69, 57, 64, 78, 21, 0, 12, 201, 8, 18, 212, 21, 34, 79, 48,
+			241, 192, 20, 12, 201, 88, 243, 20, 36, 113, 82, 36, 225, 192, 20, 12, 201, 84, 68, 129, 56, 113, 82, 36, 225, 192, 20, 12, 201, 84,
+			68, 12, 4, 49, 82, 36, 225, 192, 20, 12, 201, 81, 32, 70, 36, 177, 82, 36, 225, 192, 20, 12, 201, 77, 80, 140, 36, 209, 82, 36,
+			225, 192, 20, 12, 201, 65, 80, 140, 36, 49, 82, 36, 225, 192, 20, 12, 201, 65, 35, 212, 20, 113, 82, 36, 225, 192, 20, 12, 201, 44,
+			243, 147, 84, 209, 82, 36, 225, 192, 20, 12, 201, 36, 228, 208, 36, 49, 82, 36, 225, 192, 20, 12, 201, 17, 84, 12, 36, 49, 82, 36,
+			225, 192, 20, 12, 201, 16, 84, 12, 4, 49, 82, 36, 225, 192, 20, 12, 201, 16, 83, 65, 76, 177, 82, 36, 225, 192, 20, 12, 201, 16,
+			83, 65, 72, 177, 82, 36, 225, 192, 20, 12, 201, 5, 52, 207, 12, 145, 82, 36, 225, 192, 20, 12, 201, 5, 4, 12, 36, 49, 82, 36,
+			225, 192, 20, 8, 197, 72, 19, 135, 21, 32, 20, 8, 197, 48, 243, 135, 21, 32, 20, 12, 201, 80, 147, 18, 20, 115, 133, 48, 145, 192,
+			20, 8, 197, 65, 34, 77, 5, 64, 20, 8, 197, 48, 147, 133, 5, 32, 20, 8, 197, 40, 17, 213, 5, 32, 20, 8, 197, 48, 147, 133,
+			5, 32, 20, 12, 201, 20, 180, 203, 72, 83, 69, 57, 64, 76, 20, 10, 69, 72, 19, 135, 21, 32, 21, 0, 10, 0, 9, 198, 64, 84,
+			137, 76, 179, 208, 20, 9, 198, 32, 244, 143, 76, 179, 208, 20, 9, 198, 44, 244, 9, 21, 33, 64, 20, 18, 70, 9, 37, 89, 21, 33,
+			64, 71, 34, 116, 57, 6, 109, 12, 34, 0, 20, 9, 198, 5, 36, 197, 56, 19, 0, 20, 8, 67, 49, 82, 197, 21, 0, 10, 0, 10,
+			199, 64, 84, 211, 36, 210, 83, 80, 20, 10, 199, 52, 243, 129, 72, 178, 83, 80, 20, 10, 199, 24, 19, 1, 56, 114, 83, 80, 20, 10,
+			199, 8, 19, 132, 4, 114, 83, 80, 20, 9, 198, 81, 149, 129, 29, 66, 71, 20, 9, 198, 56, 20, 129, 29, 66, 71, 20, 9, 198, 48,
+			149, 129, 29, 66, 71, 20, 6, 195, 21, 64, 84, 20, 9, 198, 81, 149, 129, 29, 66, 71, 20, 9, 198, 56, 20, 129, 29, 66, 71, 20,
+			9, 198, 48, 149, 129, 29, 66, 71, 20, 0, 11, 200, 81, 34, 85, 52, 96, 84, 61, 32, 20, 11, 200, 72, 81, 143, 72, 208, 84, 61,
+			32, 20, 11, 200, 16, 82, 204, 4, 208, 84, 61, 32, 20, 15, 204, 72, 17, 9, 60, 66, 82, 36, 113, 82, 36, 225, 192, 20, 15, 204,
+			65, 35, 199, 56, 244, 212, 36, 49, 82, 36, 225, 192, 20, 15, 204, 16, 144, 71, 56, 244, 212, 36, 49, 82, 36, 225, 192, 20, 11, 200,
+			72, 84, 212, 72, 147, 135, 21, 32, 20, 7, 196, 52, 148, 197, 72, 20, 11, 200, 4, 68, 212, 72, 147, 135, 21, 32, 20, 12, 137, 16,
+			195, 166, 4, 9, 1, 20, 18, 9, 20, 9, 198, 81, 32, 83, 76, 21, 0, 20, 0, 9, 198, 60, 229, 15, 48, 241, 201, 20, 12, 201,
+			24, 245, 15, 44, 244, 9, 21, 33, 64, 20, 24, 73, 8, 243, 130, 60, 227, 137, 21, 33, 64, 71, 114, 68, 71, 114, 68, 57, 6, 109,
+			12, 34, 0, 20, 8, 197, 48, 144, 133, 72, 144, 20, 9, 198, 72, 83, 9, 45, 98, 69, 20, 9, 198, 76, 147, 5, 57, 66, 69, 20,
+			9, 198, 28, 195, 211, 5, 34, 69, 20, 8, 197, 29, 84, 129, 52, 144, 20, 0, 9, 198, 9, 81, 4, 32, 148, 212, 20, 9, 198, 88,
+			19, 11, 21, 34, 64, 20, 9, 198, 29, 34, 83, 21, 34, 64, 20, 9, 198, 9, 145, 199, 21, 34, 64, 20, 9, 198, 44, 20, 146, 36,
+			243, 0, 20, 9, 198, 85, 67, 208, 37, 50, 192, 20, 9, 198, 32, 18, 84, 37, 50, 192, 20, 9, 198, 21, 35, 212, 37, 50, 192, 20,
+			9, 198, 77, 147, 80, 5, 66, 64, 20, 9, 198, 24, 20, 133, 77, 66, 64, 20, 9, 198, 17, 147, 129, 77, 66, 64, 20, 9, 198, 16,
+			83, 69, 57, 66, 64, 20, 0, 10, 199, 88, 84, 137, 24, 144, 197, 72, 20, 10, 199, 56, 22, 137, 24, 144, 197, 72, 20, 10, 199, 44,
+			243, 77, 37, 69, 5, 72, 20, 10, 199, 20, 180, 208, 48, 144, 197, 72, 20, 10, 199, 4, 229, 9, 44, 148, 197, 72, 20, 6, 195, 61,
+			130, 68, 20, 16, 141, 18, 195, 184, 14, 20, 7, 5, 14, 15, 7, 18, 1, 6, 20, 0, 10, 135, 2, 9, 12, 12, 195, 184, 19, 20,
+			9, 134, 1, 11, 20, 195, 184, 18, 20, 12, 201, 8, 18, 212, 21, 34, 79, 48, 241, 201, 20, 11, 200, 24, 244, 147, 88, 20, 140, 36,
+			112, 20, 11, 200, 24, 244, 139, 48, 20, 140, 36, 112, 20, 11, 200, 4, 195, 79, 16, 84, 140, 36, 112, 20, 9, 198, 36, 225, 9, 88,
+			145, 0, 20, 12, 201, 77, 84, 16, 61, 50, 84, 61, 34, 69, 20, 11, 200, 72, 81, 133, 72, 83, 132, 84, 208, 20, 11, 200, 77, 65,
+			82, 20, 241, 143, 56, 144, 20, 11, 200, 89, 83, 11, 4, 226, 83, 52, 80, 20, 11, 200, 52, 244, 141, 60, 226, 83, 52, 80, 20, 11,
+			200, 52, 241, 5, 72, 226, 83, 52, 80, 20, 11, 200, 44, 243, 77, 84, 226, 83, 52, 80, 20, 11, 200, 32, 148, 212, 61, 34, 83, 52,
+			80, 20, 11, 200, 16, 241, 205, 5, 66, 83, 52, 80, 20, 11, 200, 16, 84, 208, 61, 66, 83, 52, 80, 20, 11, 200, 41, 81, 76, 76,
+			210, 78, 16, 80, 20, 9, 198, 16, 83, 9, 44, 21, 0, 20, 0, 8, 197, 8, 147, 208, 76, 144, 20, 12, 201, 65, 35, 208, 4, 112,
+			78, 16, 148, 212, 20, 12, 201, 5, 4, 15, 76, 149, 9, 60, 225, 76, 20, 12, 201, 77, 147, 133, 72, 113, 84, 37, 50, 192, 20, 12,
+			201, 53, 84, 201, 44, 19, 148, 37, 50, 192, 20, 12, 201, 52, 244, 203, 61, 98, 84, 37, 50, 192, 20, 12, 201, 45, 38, 83, 80, 19,
+			12, 37, 50, 192, 20, 12, 201, 44, 244, 205, 60, 195, 199, 37, 50, 192, 20, 12, 201, 44, 148, 143, 52, 19, 148, 37, 50, 192, 20, 12,
+			201, 44, 21, 1, 65, 83, 20, 37, 50, 192, 20, 12, 201, 32, 148, 212, 60, 195, 199, 37, 50, 192, 20, 12, 201, 32, 83, 73, 13, 146,
+			204, 37, 50, 192, 20, 9, 198, 56, 84, 20, 84, 226, 69, 20, 9, 134, 21, 18, 195, 166, 13, 9, 20, 10, 69, 76, 147, 135, 48, 80,
+			21, 0, 10, 24, 4, 95, 57, 88, 15, 107, 110, 55, 83, 6, 109, 65, 89, 36, 50, 89, 47, 116, 84, 13, 50, 13, 0, 0, 25, 67,
+			32, 243, 5, 107, 6, 39, 40, 55, 37, 50, 58, 4, 115, 50, 0, 82, 105, 110, 32, 111, 110, 101, 32, 11, 136, 19, 21, 6, 6, 12,
+			195, 184, 18, 20, 9, 198, 56, 21, 21, 72, 148, 212, 20, 9, 198, 52, 244, 129, 48, 148, 212, 20, 9, 198, 25, 85, 21, 72, 148, 212,
+			20, 16, 141, 9, 13, 16, 18, 195, 166, 7, 14, 5, 18, 9, 14, 7, 20, 13, 202, 44, 243, 12, 20, 181, 9, 88, 148, 197, 72, 20,
+			13, 202, 20, 180, 203, 60, 211, 85, 56, 144, 197, 72, 20, 13, 202, 20, 180, 197, 53, 3, 9, 24, 144, 197, 72, 20, 12, 201, 61, 97,
+			82, 88, 147, 132, 20, 194, 71, 20, 12, 201, 28, 83, 142, 20, 212, 201, 29, 66, 71, 20, 9, 198, 104, 18, 82, 37, 50, 192, 20, 9,
+			198, 76, 244, 130, 37, 50, 192, 20, 9, 198, 76, 84, 130, 37, 50, 192, 20, 9, 198, 44, 243, 66, 36, 224, 84, 20, 9, 198, 44, 19,
+			132, 36, 64, 84, 20, 9, 198, 36, 229, 5, 72, 224, 84, 20, 0, 12, 137, 12, 195, 184, 7, 19, 20, 195, 184, 18, 20, 12, 137, 4,
+			9, 18, 5, 11, 20, 195, 184, 18, 20, 10, 199, 44, 243, 147, 21, 37, 133, 72, 20, 9, 198, 28, 83, 133, 80, 148, 203, 20, 9, 198,
+			24, 19, 129, 80, 148, 203, 20, 14, 203, 64, 84, 147, 64, 82, 212, 37, 98, 83, 52, 80, 20, 10, 199, 8, 84, 135, 20, 228, 197, 72,
+			20, 0, 9, 198, 5, 4, 18, 21, 69, 82, 20, 13, 138, 11, 15, 18, 18, 5, 11, 20, 195, 184, 18, 20, 13, 138, 11, 15, 12, 12,
+			5, 11, 20, 195, 184, 18, 20, 11, 200, 77, 65, 82, 20, 241, 210, 4, 208, 20, 11, 200, 76, 82, 83, 52, 241, 210, 4, 208, 20, 11,
+			200, 61, 33, 193, 56, 145, 210, 4, 208, 20, 11, 200, 44, 20, 132, 36, 241, 210, 4, 208, 20, 9, 198, 77, 80, 147, 84, 209, 82, 20,
+			9, 198, 48, 19, 69, 57, 65, 82, 20, 9, 198, 44, 243, 66, 36, 225, 82, 20, 9, 198, 44, 19, 132, 36, 65, 82, 20, 9, 198, 36,
+			229, 5, 72, 225, 82, 20, 9, 198, 16, 83, 69, 57, 65, 82, 20, 9, 198, 8, 192, 78, 12, 129, 82, 20, 11, 200, 81, 35, 211, 45,
+			147, 4, 36, 112, 20, 11, 200, 44, 243, 4, 76, 147, 132, 36, 112, 20, 11, 200, 16, 81, 137, 56, 84, 140, 36, 112, 20, 11, 200, 16,
+			241, 5, 44, 17, 143, 56, 144, 20, 11, 200, 44, 84, 148, 20, 210, 78, 16, 80, 20, 6, 195, 21, 66, 75, 20, 9, 198, 64, 243, 77,
+			21, 32, 78, 20, 0, 12, 201, 84, 226, 86, 21, 36, 193, 48, 148, 212, 20, 12, 201, 72, 17, 9, 60, 99, 206, 37, 50, 192, 20, 12,
+			201, 65, 54, 75, 36, 21, 18, 37, 50, 192, 20, 12, 201, 64, 19, 148, 60, 210, 77, 37, 50, 192, 20, 12, 201, 52, 85, 1, 52, 244,
+			134, 37, 50, 192, 20, 12, 201, 29, 32, 70, 60, 195, 199, 37, 50, 192, 20, 12, 201, 28, 83, 77, 60, 195, 199, 37, 50, 192, 20, 12,
+			201, 20, 193, 75, 81, 35, 206, 37, 50, 192, 20, 12, 201, 16, 85, 5, 45, 66, 86, 37, 50, 192, 20, 12, 201, 12, 19, 9, 24, 244,
+			142, 37, 50, 192, 20, 12, 201, 8, 81, 18, 4, 113, 82, 37, 50, 192, 20, 12, 201, 5, 81, 9, 60, 195, 199, 37, 50, 192, 20, 12,
+			201, 4, 114, 84, 5, 67, 210, 37, 50, 192, 20, 12, 201, 52, 84, 137, 80, 242, 210, 5, 66, 64, 20, 12, 201, 5, 34, 83, 80, 242,
+			210, 5, 66, 64, 20, 12, 201, 81, 32, 78, 77, 3, 1, 57, 64, 84, 20, 0, 9, 198, 76, 84, 150, 37, 69, 84, 20, 12, 201, 44,
+			243, 150, 84, 196, 201, 88, 148, 203, 20, 12, 201, 33, 148, 15, 44, 243, 132, 72, 148, 203, 20, 0, 17, 142, 21, 4, 13, 1, 14, 195,
+			184, 22, 18, 5, 18, 9, 14, 7, 20, 12, 201, 81, 32, 78, 77, 3, 1, 57, 65, 82, 20, 9, 198, 77, 68, 143, 24, 148, 203, 20,
+			9, 198, 5, 68, 143, 24, 148, 203, 20, 9, 198, 5, 32, 77, 4, 148, 203, 20, 10, 199, 77, 83, 132, 9, 147, 137, 80, 20, 9, 198,
+			76, 83, 65, 57, 66, 75, 20, 10, 199, 77, 147, 129, 28, 241, 193, 48, 20, 0, 9, 198, 45, 84, 150, 5, 69, 82, 20, 9, 198, 81,
+			33, 80, 4, 225, 82, 20, 9, 198, 65, 35, 198, 37, 65, 82, 20, 9, 198, 64, 84, 131, 37, 1, 82, 20, 9, 198, 52, 245, 9, 60,
+			225, 82, 20, 9, 198, 36, 212, 15, 73, 65, 82, 20, 9, 198, 29, 32, 84, 36, 225, 82, 20, 9, 198, 21, 50, 207, 73, 65, 82, 20,
+			9, 198, 16, 81, 210, 4, 65, 82, 20, 9, 198, 4, 36, 212, 36, 225, 82, 20, 15, 204, 88, 84, 147, 36, 98, 75, 5, 67, 210, 37,
+			50, 192, 20, 15, 204, 36, 212, 18, 61, 98, 83, 5, 67, 210, 37, 50, 192, 20, 7, 196, 65, 84, 9, 48, 20, 10, 67, 33, 98, 83,
+			84, 36, 89, 0, 76, 0, 9, 198, 4, 227, 210, 20, 180, 201, 20, 12, 201, 52, 20, 203, 84, 194, 78, 37, 65, 84, 20, 0, 12, 201,
+			81, 35, 212, 76, 178, 83, 80, 148, 203, 20, 12, 201, 24, 147, 8, 5, 35, 79, 56, 148, 203, 20, 12, 201, 21, 67, 143, 12, 83, 148,
+			72, 148, 203, 20, 13, 138, 11, 195, 166, 6, 5, 18, 5, 18, 5, 20, 20, 0, 12, 137, 16, 18, 195, 166, 6, 5, 18, 5, 18, 20,
+			10, 199, 56, 21, 21, 72, 148, 205, 20, 20, 10, 199, 25, 85, 21, 72, 148, 205, 20, 20, 10, 199, 16, 144, 76, 20, 181, 1, 48, 20,
+			0, 7, 196, 5, 5, 5, 72, 20, 0, 12, 201, 72, 83, 148, 4, 34, 76, 37, 65, 84, 20, 9, 198, 56, 240, 140, 21, 52, 197, 20,
+			8, 197, 5, 82, 211, 36, 224, 20, 16, 141, 11, 15, 14, 6, 195, 184, 4, 5, 18, 5, 18, 5, 20, 20, 12, 201, 36, 228, 212, 73,
+			83, 69, 57, 64, 76, 20, 0, 13, 202, 44, 243, 12, 20, 114, 65, 48, 149, 5, 80, 20, 14, 139, 195, 184, 11, 15, 14, 15, 13, 5,
+			20, 18, 9, 20, 13, 202, 4, 224, 76, 24, 16, 133, 80, 148, 205, 20, 20, 13, 202, 44, 19, 3, 37, 83, 78, 37, 68, 129, 80, 20,
+			13, 202, 12, 19, 3, 37, 83, 78, 37, 68, 129, 80, 20, 0, 10, 199, 77, 84, 18, 20, 208, 84, 36, 20, 0, 9, 198, 4, 65, 9,
+			80, 147, 206, 20, 15, 204, 65, 35, 198, 21, 52, 201, 60, 224, 76, 37, 65, 84, 20, 11, 200, 4, 225, 1, 49, 84, 201, 20, 224, 20,
+			11, 200, 72, 84, 21, 8, 194, 75, 4, 224, 20, 7, 196, 9, 85, 1, 56, 21, 9, 198, 16, 148, 208, 85, 64, 66, 20, 0, 14, 139,
+			16, 18, 195, 166, 4, 9, 11, 20, 9, 15, 14, 20, 8, 197, 52, 83, 148, 60, 192, 20, 8, 197, 24, 244, 211, 36, 192, 20, 8, 197,
+			76, 160, 75, 4, 192, 20, 8, 197, 24, 148, 203, 4, 192, 20, 8, 197, 61, 1, 82, 4, 32, 20, 0, 9, 198, 56, 243, 142, 21, 66,
+			84, 20, 0, 9, 198, 12, 19, 129, 16, 148, 203, 20, 9, 198, 5, 50, 65, 80, 148, 203, 20, 10, 199, 12, 128, 78, 28, 80, 78, 80,
+			20, 0, 27, 68, 36, 66, 79, 80, 37, 72, 37, 6, 39, 15, 89, 110, 84, 6, 112, 68, 0, 81, 115, 97, 118, 97, 110, 116, 32, 11,
+			200, 12, 84, 133, 52, 243, 137, 20, 192, 20, 0, 8, 197, 12, 19, 80, 21, 32, 20, 8, 197, 80, 84, 141, 37, 64, 20, 0, 18, 70,
+			40, 19, 66, 61, 33, 64, 72, 57, 35, 65, 71, 39, 51, 6, 109, 0, 9, 198, 64, 20, 211, 21, 33, 64, 20, 9, 198, 28, 195, 211,
+			21, 33, 64, 20, 9, 198, 25, 32, 83, 21, 33, 64, 20, 12, 201, 36, 212, 5, 72, 21, 15, 72, 148, 203, 20, 12, 201, 44, 243, 66,
+			36, 224, 84, 61, 34, 75, 20, 9, 198, 12, 85, 1, 57, 64, 76, 20, 13, 202, 12, 128, 84, 20, 21, 66, 72, 144, 78, 80, 20, 0,
+			9, 198, 72, 243, 65, 57, 66, 75, 20, 9, 198, 48, 241, 201, 77, 66, 75, 20, 0, 11, 200, 44, 243, 138, 84, 226, 212, 85, 32, 20,
+			11, 200, 36, 229, 133, 77, 66, 84, 85, 32, 20, 11, 200, 4, 181, 80, 84, 226, 212, 85, 32, 20, 9, 198, 16, 147, 73, 77, 51, 210,
+			20, 11, 200, 52, 19, 20, 72, 18, 212, 21, 32, 20, 11, 200, 24, 18, 211, 36, 210, 76, 21, 32, 20, 9, 198, 72, 244, 205, 5, 34,
+			78, 20, 7, 196, 16, 148, 211, 20, 76, 0, 8, 197, 88, 21, 20, 21, 32, 20, 12, 201, 77, 68, 129, 8, 17, 19, 21, 33, 64, 20,
+			8, 197, 76, 176, 76, 21, 32, 20, 12, 201, 64, 20, 129, 25, 32, 83, 21, 33, 64, 20, 12, 201, 52, 85, 1, 77, 64, 83, 21, 33,
+			64, 20, 8, 197, 45, 33, 80, 21, 32, 20, 8, 197, 28, 245, 84, 21, 32, 20, 12, 201, 60, 208, 68, 72, 84, 211, 21, 33, 64, 20,
+			8, 197, 52, 20, 141, 37, 64, 20, 13, 138, 3, 195, 166, 19, 1, 18, 9, 19, 13, 5, 20, 9, 198, 21, 50, 193, 64, 17, 5, 20,
+			0, 18, 70, 29, 37, 89, 21, 33, 64, 81, 34, 116, 57, 6, 109, 12, 34, 0, 20, 9, 198, 52, 243, 143, 64, 243, 0, 20, 0, 9,
+			134, 22, 5, 14, 195, 184, 19, 20, 9, 198, 64, 147, 129, 29, 66, 71, 20, 15, 140, 5, 16, 9, 11, 21, 18, 195, 166, 9, 19, 13,
+			5, 20, 9, 198, 64, 147, 129, 29, 66, 71, 20, 0, 11, 200, 16, 83, 79, 45, 32, 84, 85, 32, 20, 10, 135, 15, 13, 9, 14, 195,
+			184, 19, 20, 7, 196, 4, 226, 79, 56, 20, 11, 200, 48, 244, 135, 56, 85, 20, 21, 32, 20, 11, 200, 44, 243, 80, 48, 85, 20, 21,
+			32, 20, 11, 200, 16, 148, 211, 36, 210, 76, 21, 32, 20, 9, 198, 24, 197, 79, 72, 145, 0, 20, 13, 138, 16, 1, 12, 195, 166, 15,
+			7, 18, 1, 6, 20, 9, 198, 16, 82, 193, 56, 21, 0, 20, 9, 198, 36, 229, 133, 57, 64, 82, 20, 0, 9, 198, 45, 35, 205, 61,
+			51, 205, 20, 12, 201, 65, 35, 199, 72, 19, 77, 21, 33, 64, 20, 8, 197, 72, 20, 197, 72, 144, 20, 16, 69, 64, 243, 9, 76, 176,
+			48, 39, 55, 6, 37, 89, 49, 0, 20, 9, 198, 88, 19, 11, 101, 34, 69, 20, 9, 198, 61, 32, 84, 61, 34, 69, 20, 9, 198, 80,
+			83, 5, 64, 21, 9, 20, 8, 197, 72, 84, 12, 36, 176, 20, 8, 197, 76, 80, 78, 12, 80, 20, 0, 12, 137, 13, 15, 14, 19, 20,
+			18, 195, 184, 19, 20, 9, 198, 80, 244, 211, 21, 34, 64, 20, 9, 198, 72, 20, 19, 21, 34, 64, 20, 9, 198, 49, 84, 203, 21, 34,
+			64, 20, 9, 198, 48, 241, 19, 21, 34, 64, 20, 9, 198, 48, 20, 19, 21, 34, 64, 20, 9, 198, 25, 84, 203, 21, 34, 64, 20, 9,
+			198, 12, 21, 83, 21, 34, 64, 20, 9, 198, 44, 243, 148, 72, 243, 0, 20, 9, 198, 76, 21, 68, 37, 50, 192, 20, 9, 198, 64, 241,
+			84, 37, 50, 192, 20, 9, 198, 65, 35, 198, 21, 66, 64, 20, 9, 198, 45, 96, 82, 80, 147, 0, 20, 9, 198, 64, 245, 5, 57, 64,
+			84, 20, 9, 198, 88, 17, 201, 56, 19, 0, 20, 9, 198, 72, 85, 137, 88, 19, 0, 20, 9, 198, 36, 195, 5, 28, 19, 0, 20, 0,
+			13, 138, 12, 9, 2, 9, 4, 9, 14, 195, 184, 19, 20, 13, 138, 6, 9, 12, 9, 19, 20, 18, 195, 184, 19, 20, 8, 133, 15, 4,
+			195, 184, 18, 20, 12, 137, 3, 8, 1, 21, 6, 6, 195, 184, 18, 20, 9, 198, 44, 149, 129, 29, 66, 71, 20, 10, 199, 44, 20, 141,
+			60, 148, 201, 56, 20, 10, 199, 4, 229, 9, 65, 148, 137, 56, 20, 10, 199, 4, 224, 84, 60, 194, 69, 56, 20, 9, 198, 44, 149, 129,
+			29, 66, 71, 20, 0, 13, 68, 56, 241, 204, 20, 50, 6, 39, 12, 14, 50, 0, 13, 138, 18, 195, 166, 19, 15, 14, 14, 195, 184, 18,
+			20, 9, 134, 11, 21, 12, 195, 184, 18, 20, 11, 200, 21, 97, 78, 81, 148, 140, 36, 112, 20, 11, 200, 80, 83, 203, 72, 21, 9, 76,
+			176, 20, 11, 200, 77, 147, 148, 4, 181, 9, 76, 176, 20, 11, 200, 64, 20, 129, 8, 243, 9, 76, 176, 20, 11, 200, 8, 147, 210, 101,
+			67, 73, 76, 176, 20, 12, 201, 60, 36, 197, 73, 96, 84, 61, 34, 69, 20, 11, 200, 45, 84, 129, 80, 244, 137, 84, 208, 20, 11, 200,
+			28, 195, 211, 76, 20, 137, 84, 208, 20, 9, 198, 44, 243, 15, 72, 149, 0, 20, 11, 200, 76, 243, 9, 65, 50, 83, 52, 80, 20, 11,
+			200, 72, 85, 77, 5, 66, 83, 52, 80, 20, 11, 200, 64, 84, 211, 36, 210, 83, 52, 80, 20, 11, 200, 52, 243, 143, 80, 82, 83, 52,
+			80, 20, 11, 200, 52, 243, 129, 72, 178, 83, 52, 80, 20, 11, 200, 45, 83, 20, 85, 34, 83, 52, 80, 20, 11, 200, 40, 84, 213, 37,
+			66, 83, 52, 80, 20, 11, 200, 16, 81, 129, 37, 66, 83, 52, 80, 20, 9, 198, 80, 83, 203, 72, 21, 0, 20, 9, 198, 16, 145, 206,
+			37, 64, 82, 20, 9, 198, 65, 35, 204, 21, 64, 82, 20, 0, 15, 140, 19, 11, 1, 18, 12, 1, 20, 9, 14, 195, 184, 19, 20, 8,
+			197, 24, 144, 146, 60, 208, 20, 12, 201, 80, 147, 79, 45, 32, 84, 37, 50, 192, 20, 12, 201, 80, 84, 129, 64, 85, 84, 37, 50, 192,
+			20, 12, 201, 77, 148, 212, 20, 208, 84, 37, 50, 192, 20, 12, 201, 72, 16, 149, 48, 148, 212, 37, 50, 192, 20, 12, 201, 61, 37, 15,
+			16, 243, 148, 37, 50, 192, 20, 12, 201, 57, 83, 73, 76, 208, 84, 37, 50, 192, 20, 12, 201, 52, 244, 134, 20, 208, 84, 37, 50, 192,
+			20, 12, 201, 44, 20, 137, 76, 208, 84, 37, 50, 192, 20, 12, 201, 29, 32, 86, 37, 65, 84, 37, 50, 192, 20, 12, 201, 24, 144, 133,
+			72, 244, 20, 37, 50, 192, 20, 12, 201, 20, 208, 140, 20, 208, 84, 37, 50, 192, 20, 12, 201, 16, 148, 12, 60, 208, 84, 37, 50, 192,
+			20, 12, 201, 5, 85, 15, 45, 32, 84, 37, 50, 192, 20, 12, 201, 5, 53, 9, 28, 208, 84, 37, 50, 192, 20, 12, 201, 4, 229, 9,
+			76, 84, 20, 37, 50, 192, 20, 12, 201, 4, 180, 201, 60, 208, 84, 37, 50, 192, 20, 12, 201, 4, 84, 143, 56, 21, 84, 37, 50, 192,
+			20, 9, 198, 52, 243, 69, 57, 69, 77, 20, 12, 201, 12, 83, 148, 72, 145, 149, 28, 19, 0, 20, 0, 12, 137, 13, 21, 19, 11, 21,
+			12, 195, 184, 19, 20, 11, 136, 13, 1, 18, 15, 4, 195, 184, 18, 20, 11, 136, 11, 18, 5, 1, 20, 195, 184, 18, 20, 11, 136, 4,
+			5, 11, 21, 16, 195, 184, 18, 20, 9, 198, 72, 243, 65, 56, 148, 212, 20, 9, 198, 76, 49, 78, 37, 50, 192, 20, 9, 198, 72, 243,
+			66, 37, 50, 192, 20, 9, 198, 37, 35, 206, 37, 50, 192, 20, 9, 198, 36, 176, 82, 37, 50, 192, 20, 9, 198, 5, 85, 5, 57, 66,
+			64, 20, 9, 198, 4, 211, 133, 77, 66, 64, 20, 9, 198, 72, 84, 197, 73, 96, 84, 20, 0, 12, 137, 19, 11, 21, 12, 16, 20, 195,
+			184, 18, 20, 12, 137, 19, 9, 7, 14, 1, 12, 195, 184, 18, 20, 12, 137, 14, 9, 22, 5, 12, 12, 195, 184, 18, 20, 12, 137, 4,
+			5, 20, 1, 3, 8, 195, 184, 18, 20, 10, 199, 65, 35, 204, 60, 225, 197, 72, 20, 10, 199, 24, 84, 141, 20, 229, 5, 72, 20, 10,
+			199, 45, 33, 80, 21, 35, 9, 28, 20, 10, 199, 4, 228, 214, 5, 35, 9, 28, 20, 14, 203, 44, 243, 147, 21, 37, 129, 80, 244, 137,
+			84, 208, 20, 10, 199, 76, 18, 210, 37, 53, 1, 56, 21, 0, 9, 198, 64, 20, 148, 37, 69, 82, 20, 9, 198, 16, 146, 212, 5, 69,
+			82, 20, 14, 139, 20, 21, 2, 5, 18, 11, 21, 12, 195, 184, 19, 20, 9, 198, 77, 81, 199, 21, 33, 82, 20, 9, 198, 76, 181, 76,
+			65, 65, 82, 20, 9, 198, 45, 83, 20, 37, 97, 82, 20, 9, 198, 36, 229, 133, 57, 65, 82, 20, 9, 198, 36, 225, 4, 5, 65, 82,
+			20, 9, 198, 32, 244, 208, 37, 65, 82, 20, 9, 198, 16, 84, 15, 73, 65, 82, 20, 9, 198, 5, 4, 18, 21, 65, 82, 20, 9, 198,
+			4, 36, 197, 57, 65, 82, 20, 11, 200, 76, 181, 82, 44, 17, 212, 36, 112, 20, 11, 200, 61, 34, 193, 56, 17, 212, 36, 112, 20, 11,
+			200, 56, 21, 142, 45, 83, 132, 36, 112, 20, 11, 200, 45, 32, 77, 64, 17, 212, 36, 112, 20, 11, 200, 44, 193, 74, 56, 211, 196, 36,
+			112, 20, 15, 204, 60, 227, 205, 5, 67, 208, 60, 145, 84, 37, 50, 192, 20, 11, 200, 48, 243, 66, 5, 33, 9, 76, 176, 20, 11, 200,
+			24, 243, 133, 52, 21, 9, 76, 176, 20, 11, 200, 20, 230, 153, 52, 21, 9, 76, 176, 20, 11, 200, 76, 83, 73, 56, 20, 137, 84, 208,
+			20, 11, 200, 76, 19, 129, 80, 244, 137, 84, 208, 20, 11, 200, 52, 244, 129, 80, 244, 137, 84, 208, 20, 7, 196, 24, 197, 65, 80, 20,
+			11, 200, 76, 181, 82, 44, 17, 212, 36, 112, 20, 11, 200, 45, 32, 77, 64, 17, 212, 36, 112, 20, 0, 14, 139, 18, 5, 11, 22, 9,
+			19, 9, 20, 195, 184, 18, 20, 14, 139, 16, 5, 18, 6, 15, 18, 1, 20, 195, 184, 18, 20, 14, 139, 14, 21, 13, 13, 5, 18, 1,
+			20, 195, 184, 18, 20, 14, 139, 9, 14, 6, 15, 18, 13, 1, 20, 195, 184, 18, 20, 14, 139, 1, 11, 11, 22, 9, 19, 9, 20, 195,
+			184, 18, 20, 14, 139, 16, 18, 195, 166, 20, 5, 14, 20, 9, 15, 14, 20, 12, 201, 80, 84, 146, 21, 53, 18, 37, 50, 192, 20, 12,
+			201, 76, 83, 22, 37, 35, 206, 37, 50, 192, 20, 12, 201, 65, 35, 214, 37, 51, 210, 37, 50, 192, 20, 12, 201, 52, 146, 210, 60, 99,
+			206, 37, 50, 192, 20, 12, 201, 44, 243, 131, 20, 229, 18, 37, 50, 192, 20, 12, 201, 28, 83, 195, 20, 229, 18, 37, 50, 192, 20, 12,
+			201, 16, 146, 212, 5, 67, 210, 37, 50, 192, 20, 0, 11, 136, 11, 22, 195, 166, 19, 20, 21, 18, 20, 15, 140, 19, 20, 5, 18, 5,
+			15, 20, 25, 16, 195, 184, 18, 20, 9, 198, 64, 245, 5, 57, 66, 76, 20, 12, 201, 24, 243, 11, 48, 244, 137, 77, 66, 75, 20, 9,
+			198, 80, 83, 80, 61, 32, 76, 20, 9, 198, 36, 229, 5, 73, 96, 76, 20, 0, 16, 141, 11, 15, 12, 12, 1, 2, 15, 18, 1, 20,
+			195, 184, 18, 20, 16, 141, 4, 5, 13, 15, 14, 19, 20, 18, 1, 20, 195, 184, 18, 20, 12, 201, 36, 225, 129, 57, 65, 82, 37, 53,
+			0, 20, 12, 201, 44, 243, 148, 36, 225, 197, 57, 65, 82, 20, 14, 203, 32, 84, 141, 4, 100, 143, 16, 149, 9, 76, 176, 20, 14, 203,
+			20, 180, 193, 52, 147, 129, 80, 244, 137, 84, 208, 20, 9, 198, 65, 35, 212, 21, 66, 75, 20, 0, 9, 198, 77, 68, 149, 45, 69, 82,
+			20, 9, 198, 76, 145, 206, 5, 69, 82, 20, 17, 142, 1, 11, 11, 15, 13, 16, 1, 7, 14, 1, 20, 195, 184, 18, 20, 9, 198, 72,
+			83, 79, 57, 65, 82, 20, 9, 198, 36, 229, 133, 73, 65, 82, 20, 9, 198, 28, 19, 15, 65, 1, 82, 20, 9, 198, 21, 96, 80, 61,
+			33, 82, 20, 9, 198, 16, 84, 18, 5, 97, 82, 20, 15, 204, 44, 243, 148, 72, 17, 9, 45, 67, 210, 37, 50, 192, 20, 15, 204, 32,
+			19, 12, 84, 50, 78, 5, 67, 210, 37, 50, 192, 20, 15, 204, 5, 33, 213, 52, 83, 148, 5, 67, 210, 37, 50, 192, 20, 9, 198, 24,
+			147, 9, 65, 2, 78, 20, 7, 196, 72, 246, 65, 48, 20, 0, 12, 201, 60, 97, 133, 57, 50, 86, 37, 65, 84, 20, 12, 201, 36, 229,
+			5, 57, 50, 86, 37, 65, 84, 20, 12, 201, 36, 225, 133, 72, 147, 210, 37, 65, 84, 20, 12, 201, 36, 212, 21, 49, 50, 86, 37, 65,
+			84, 20, 12, 201, 12, 148, 139, 84, 192, 82, 37, 65, 84, 20, 0, 9, 198, 36, 228, 212, 37, 69, 84, 20, 9, 198, 17, 80, 76, 37,
+			65, 84, 20, 9, 198, 36, 225, 129, 57, 66, 76, 20, 9, 198, 32, 244, 208, 37, 64, 76, 20, 0, 18, 67, 64, 112, 64, 48, 113, 15,
+			81, 51, 6, 113, 19, 50, 15, 110, 0, 25, 10, 199, 76, 243, 143, 72, 149, 5, 80, 20, 12, 201, 81, 84, 139, 52, 83, 137, 77, 64,
+			78, 21, 12, 201, 80, 17, 19, 40, 146, 201, 77, 64, 78, 21, 10, 199, 64, 145, 68, 21, 53, 1, 48, 20, 10, 199, 44, 243, 147, 60,
+			224, 78, 76, 20, 8, 67, 8, 32, 192, 21, 0, 10, 0, 11, 136, 3, 195, 184, 12, 9, 2, 1, 20, 20, 11, 136, 1, 4, 195, 166,
+			11, 22, 1, 20, 20, 9, 198, 16, 148, 203, 4, 229, 0, 20, 9, 198, 8, 18, 203, 4, 229, 0, 20, 9, 198, 72, 83, 65, 72, 176,
+			66, 20, 0, 11, 67, 92, 145, 78, 84, 6, 37, 12, 50, 0, 9, 198, 44, 243, 132, 100, 195, 205, 20, 12, 201, 88, 20, 137, 4, 34,
+			76, 37, 65, 84, 20, 12, 201, 80, 82, 206, 36, 176, 76, 37, 65, 84, 20, 12, 201, 72, 21, 9, 60, 224, 76, 37, 65, 84, 20, 12,
+			201, 64, 20, 129, 48, 193, 76, 37, 65, 84, 20, 12, 201, 45, 34, 77, 36, 224, 76, 37, 65, 84, 20, 12, 201, 21, 97, 78, 81, 80,
+			76, 37, 65, 84, 20, 8, 197, 44, 195, 210, 36, 64, 20, 8, 197, 80, 242, 211, 36, 224, 20, 9, 198, 20, 210, 78, 20, 224, 197, 20,
+			8, 197, 24, 85, 68, 4, 192, 20, 0, 9, 198, 21, 98, 68, 20, 228, 192, 20, 0, 10, 199, 76, 21, 9, 72, 146, 197, 72, 20, 10,
+			199, 72, 85, 15, 72, 146, 197, 72, 20, 10, 199, 5, 53, 5, 56, 146, 197, 72, 20, 10, 199, 76, 192, 86, 37, 53, 9, 44, 20, 10,
+			199, 33, 145, 18, 5, 83, 9, 44, 20, 10, 199, 61, 53, 9, 56, 66, 69, 56, 20, 10, 199, 9, 32, 83, 36, 194, 69, 56, 20, 10,
+			199, 44, 243, 147, 60, 224, 78, 80, 20, 8, 67, 12, 144, 64, 21, 0, 10, 0, 15, 204, 37, 36, 133, 88, 84, 147, 36, 34, 76, 37,
+			65, 84, 20, 15, 204, 36, 229, 5, 48, 193, 75, 81, 80, 76, 37, 65, 84, 20, 11, 200, 4, 229, 9, 80, 242, 211, 36, 224, 20, 11,
+			200, 52, 18, 197, 16, 243, 137, 20, 224, 20, 9, 198, 21, 66, 79, 64, 145, 78, 20, 11, 200, 4, 33, 83, 76, 147, 137, 20, 224, 20,
+			9, 198, 20, 193, 77, 20, 229, 0, 20, 9, 198, 64, 20, 139, 4, 229, 0, 20, 9, 198, 56, 81, 207, 80, 144, 66, 20, 0, 7, 197,
+			64, 84, 146, 60, 224, 8, 197, 77, 83, 6, 36, 64, 20, 8, 197, 56, 19, 139, 36, 224, 20, 15, 69, 16, 84, 211, 36, 224, 72, 36,
+			89, 6, 109, 68, 0, 20, 9, 198, 4, 229, 9, 56, 243, 73, 20, 8, 197, 56, 21, 84, 36, 192, 20, 8, 197, 80, 243, 135, 4, 224,
+			20, 8, 197, 52, 19, 135, 4, 224, 21, 8, 197, 64, 244, 212, 4, 192, 20, 8, 197, 9, 37, 84, 4, 192, 20, 0, 26, 74, 77, 21,
+			65, 72, 81, 1, 56, 49, 82, 20, 89, 49, 58, 6, 36, 13, 72, 35, 12, 50, 89, 114, 108, 0, 15, 140, 16, 18, 195, 166, 16, 15,
+			19, 9, 20, 9, 15, 14, 20, 13, 202, 56, 85, 82, 5, 53, 5, 56, 146, 197, 72, 20, 0, 11, 136, 195, 184, 11, 15, 12, 15, 7,
+			9, 20, 10, 199, 28, 16, 129, 72, 66, 78, 20, 20, 10, 199, 76, 82, 213, 56, 65, 82, 20, 20, 10, 199, 72, 84, 18, 20, 210, 69,
+			72, 20, 10, 199, 64, 83, 132, 84, 193, 82, 20, 20, 10, 199, 44, 20, 197, 72, 225, 82, 20, 20, 10, 199, 21, 82, 193, 72, 148, 212,
+			36, 20, 14, 203, 81, 32, 78, 77, 54, 76, 88, 19, 137, 20, 224, 20, 14, 203, 81, 32, 78, 77, 50, 76, 88, 19, 137, 20, 224, 20,
+			10, 199, 65, 35, 196, 84, 49, 78, 80, 20, 12, 201, 44, 241, 70, 24, 144, 201, 20, 229, 0, 20, 12, 201, 29, 85, 133, 72, 225, 77,
+			20, 229, 0, 20, 10, 199, 60, 97, 137, 12, 144, 78, 80, 20, 10, 199, 36, 226, 149, 72, 144, 78, 80, 20, 0, 12, 201, 8, 80, 82,
+			8, 82, 132, 20, 196, 197, 67, 11, 200, 12, 21, 1, 48, 243, 137, 20, 224, 20, 0, 14, 139, 16, 18, 195, 166, 22, 5, 14, 20, 9,
+			15, 14, 20, 8, 197, 64, 20, 140, 21, 32, 20, 8, 197, 17, 80, 140, 21, 32, 20, 8, 197, 88, 148, 197, 57, 64, 20, 8, 197, 72,
+			81, 197, 57, 64, 20, 8, 197, 4, 48, 197, 57, 64, 20, 0, 13, 202, 61, 97, 82, 61, 33, 5, 57, 67, 9, 28, 20, 9, 198, 32,
+			244, 208, 36, 49, 64, 20, 9, 198, 4, 36, 197, 56, 49, 64, 20, 9, 198, 52, 17, 18, 36, 112, 76, 20, 9, 198, 44, 243, 12, 4,
+			113, 64, 20, 11, 70, 52, 84, 211, 4, 113, 64, 21, 0, 10, 0, 0, 11, 200, 52, 19, 149, 24, 18, 212, 85, 32, 20, 11, 200, 5,
+			34, 201, 80, 82, 212, 85, 32, 20, 11, 200, 4, 66, 149, 16, 19, 148, 85, 32, 20, 9, 198, 65, 35, 214, 37, 51, 210, 20, 11, 200,
+			72, 17, 9, 44, 19, 9, 77, 64, 20, 11, 200, 64, 243, 25, 28, 19, 73, 77, 64, 20, 11, 200, 64, 19, 70, 48, 85, 9, 77, 64,
+			20, 11, 200, 28, 83, 133, 72, 19, 9, 77, 64, 20, 11, 200, 21, 96, 78, 28, 83, 9, 77, 64, 20, 11, 200, 76, 81, 9, 52, 83,
+			148, 21, 32, 20, 11, 200, 65, 35, 214, 36, 19, 148, 21, 32, 20, 9, 198, 44, 195, 210, 4, 210, 78, 20, 9, 198, 76, 144, 201, 48,
+			144, 78, 20, 11, 200, 16, 81, 133, 57, 51, 210, 5, 64, 20, 11, 200, 12, 128, 77, 64, 147, 206, 5, 64, 20, 11, 200, 44, 243, 77,
+			4, 225, 1, 57, 64, 20, 0, 14, 69, 40, 19, 15, 85, 128, 89, 57, 110, 6, 55, 40, 0, 8, 197, 76, 243, 9, 77, 64, 20, 8,
+			197, 52, 241, 9, 77, 64, 20, 8, 197, 8, 21, 9, 77, 64, 20, 12, 201, 88, 83, 148, 36, 193, 82, 36, 225, 192, 20, 12, 201, 88,
+			16, 195, 36, 225, 82, 36, 225, 192, 20, 12, 201, 84, 68, 207, 73, 65, 82, 36, 225, 192, 20, 12, 201, 81, 33, 80, 4, 225, 82, 36,
+			225, 192, 20, 12, 201, 81, 32, 78, 12, 129, 82, 36, 225, 192, 20, 12, 201, 80, 244, 144, 20, 65, 82, 36, 225, 192, 20, 12, 201, 80,
+			83, 80, 21, 33, 82, 36, 225, 192, 20, 12, 201, 80, 19, 80, 60, 225, 82, 36, 225, 192, 20, 12, 201, 80, 16, 133, 48, 193, 82, 36,
+			225, 192, 20, 12, 201, 77, 147, 139, 61, 1, 82, 36, 225, 192, 20, 12, 201, 72, 85, 1, 72, 65, 82, 36, 225, 192, 20, 12, 201, 72,
+			82, 214, 37, 33, 82, 36, 225, 192, 20, 12, 201, 72, 81, 149, 56, 65, 82, 36, 225, 192, 20, 12, 201, 72, 21, 9, 60, 225, 82, 36,
+			225, 192, 20, 12, 201, 72, 19, 80, 60, 225, 82, 36, 225, 192, 20, 12, 201, 72, 17, 134, 36, 225, 82, 36, 225, 192, 20, 12, 201, 65,
+			35, 205, 61, 97, 82, 36, 225, 192, 20, 12, 201, 65, 35, 202, 36, 49, 82, 36, 225, 192, 20, 12, 201, 65, 35, 198, 4, 225, 82, 36,
+			225, 192, 20, 12, 201, 64, 83, 12, 21, 65, 82, 36, 225, 192, 20, 12, 201, 64, 19, 12, 21, 65, 82, 36, 225, 192, 20, 12, 201, 52,
+			245, 73, 48, 193, 82, 36, 225, 192, 20, 12, 201, 52, 245, 9, 60, 225, 82, 36, 225, 192, 20, 12, 201, 52, 243, 5, 77, 65, 82, 36,
+			225, 192, 20, 12, 201, 52, 241, 5, 48, 193, 82, 36, 225, 192, 20, 12, 201, 52, 20, 135, 36, 225, 82, 36, 225, 192, 20, 12, 201, 48,
+			146, 214, 36, 65, 82, 36, 225, 192, 20, 12, 201, 45, 85, 133, 73, 65, 82, 36, 225, 192, 20, 12, 201, 44, 243, 150, 60, 161, 82, 36,
+			225, 192, 20, 12, 201, 44, 243, 148, 85, 33, 82, 36, 225, 192, 20, 12, 201, 44, 243, 80, 60, 225, 82, 36, 225, 192, 20, 12, 201, 44,
+			243, 80, 36, 193, 82, 36, 225, 192, 20, 12, 201, 44, 243, 77, 5, 65, 82, 36, 225, 192, 20, 12, 201, 44, 242, 203, 21, 33, 82, 36,
+			225, 192, 20, 12, 201, 44, 19, 142, 20, 193, 82, 36, 225, 192, 20, 12, 201, 36, 229, 143, 49, 97, 82, 36, 225, 192, 20, 12, 201, 36,
+			229, 133, 77, 65, 82, 36, 225, 192, 20, 12, 201, 36, 229, 133, 73, 65, 82, 36, 225, 192, 20, 12, 201, 32, 20, 144, 84, 225, 82, 36,
+			225, 192, 20, 12, 201, 29, 32, 86, 37, 65, 82, 36, 225, 192, 20, 12, 201, 29, 32, 84, 36, 225, 82, 36, 225, 192, 20, 12, 201, 29,
+			32, 78, 84, 193, 82, 36, 225, 192, 20, 12, 201, 28, 19, 15, 65, 1, 82, 36, 225, 192, 20, 12, 201, 25, 37, 83, 81, 33, 82, 36,
+			225, 192, 20, 12, 201, 24, 244, 198, 5, 65, 82, 36, 225, 192, 20, 12, 201, 24, 244, 141, 84, 193, 82, 36, 225, 192, 20, 12, 201, 24,
+			244, 141, 5, 65, 82, 36, 225, 192, 20, 12, 201, 24, 18, 212, 85, 33, 82, 36, 225, 192, 20, 12, 201, 21, 128, 197, 73, 1, 82, 36,
+			225, 192, 20, 12, 201, 21, 96, 80, 61, 33, 82, 36, 225, 192, 20, 12, 201, 21, 50, 207, 73, 65, 82, 36, 225, 192, 20, 12, 201, 20,
+			208, 129, 48, 193, 82, 36, 225, 192, 20, 12, 201, 20, 180, 208, 20, 65, 82, 36, 225, 192, 20, 12, 201, 20, 180, 197, 45, 97, 82, 36,
+			225, 192, 20, 12, 201, 16, 85, 5, 45, 65, 82, 36, 225, 192, 20, 12, 201, 16, 85, 1, 48, 161, 82, 36, 225, 192, 20, 12, 201, 16,
+			84, 201, 28, 225, 82, 36, 225, 192, 20, 12, 201, 16, 84, 18, 5, 97, 82, 36, 225, 192, 20, 12, 201, 16, 83, 79, 57, 65, 82, 36,
+			225, 192, 20, 12, 201, 16, 82, 193, 57, 65, 82, 36, 225, 192, 20, 12, 201, 16, 81, 210, 4, 65, 82, 36, 225, 192, 20, 12, 201, 16,
+			81, 140, 61, 33, 82, 36, 225, 192, 20, 12, 201, 16, 19, 65, 76, 49, 82, 36, 225, 192, 20, 12, 201, 12, 83, 147, 85, 33, 82, 36,
+			225, 192, 20, 12, 201, 12, 83, 69, 57, 65, 82, 36, 225, 192, 20, 12, 201, 5, 69, 18, 5, 1, 82, 36, 225, 192, 20, 12, 201, 5,
+			69, 1, 12, 129, 82, 36, 225, 192, 20, 12, 201, 5, 52, 207, 73, 65, 82, 36, 225, 192, 20, 12, 201, 5, 4, 15, 73, 65, 82, 36,
+			225, 192, 20, 12, 201, 4, 227, 149, 48, 193, 82, 36, 225, 192, 20, 12, 201, 4, 227, 133, 45, 65, 82, 36, 225, 192, 20, 12, 201, 4,
+			197, 5, 72, 225, 82, 36, 225, 192, 20, 12, 201, 4, 181, 9, 60, 225, 82, 36, 225, 192, 20, 12, 201, 4, 113, 210, 20, 113, 82, 36,
+			225, 192, 20, 12, 201, 4, 68, 207, 72, 33, 82, 36, 225, 192, 20, 12, 201, 4, 48, 197, 65, 65, 82, 36, 225, 192, 20, 12, 201, 4,
+			36, 207, 49, 97, 82, 36, 225, 192, 20, 8, 197, 80, 245, 80, 21, 32, 20, 8, 197, 80, 83, 132, 21, 32, 20, 8, 197, 44, 16, 200,
+			21, 32, 20, 8, 197, 25, 83, 132, 21, 32, 20, 8, 197, 21, 35, 196, 21, 32, 20, 12, 201, 72, 84, 18, 21, 52, 193, 48, 145, 64,
+			20, 8, 197, 77, 83, 6, 37, 64, 20, 8, 197, 56, 149, 18, 37, 64, 20, 12, 201, 88, 81, 197, 80, 20, 137, 76, 209, 64, 20, 12,
+			201, 76, 82, 213, 48, 20, 137, 76, 209, 64, 20, 12, 201, 52, 147, 9, 80, 20, 137, 76, 209, 64, 20, 12, 201, 52, 85, 1, 8, 243,
+			9, 76, 209, 64, 20, 12, 201, 44, 243, 139, 72, 85, 9, 76, 209, 64, 20, 12, 201, 8, 243, 19, 40, 85, 137, 76, 209, 64, 20, 12,
+			201, 4, 36, 207, 49, 85, 9, 76, 209, 64, 20, 12, 201, 44, 243, 139, 85, 36, 133, 56, 49, 64, 20, 8, 197, 77, 2, 78, 5, 64,
+			20, 8, 197, 33, 145, 18, 5, 64, 20, 8, 197, 29, 32, 78, 5, 64, 20, 8, 197, 12, 149, 18, 5, 64, 20, 8, 197, 88, 18, 193,
+			57, 64, 20, 10, 69, 13, 84, 147, 61, 32, 21, 0, 10, 0, 16, 141, 22, 9, 4, 5, 2, 5, 7, 195, 166, 18, 12, 9, 7, 20,
+			9, 198, 76, 241, 137, 76, 209, 64, 20, 9, 198, 76, 86, 9, 76, 209, 64, 20, 9, 198, 53, 85, 9, 76, 209, 64, 20, 9, 198, 52,
+			243, 137, 76, 209, 64, 20, 9, 198, 16, 19, 137, 76, 209, 64, 20, 9, 198, 72, 83, 79, 56, 49, 64, 20, 9, 198, 45, 83, 1, 56,
+			49, 64, 20, 9, 198, 77, 1, 67, 36, 19, 0, 20, 9, 198, 9, 35, 206, 44, 144, 76, 20, 9, 198, 64, 192, 77, 4, 113, 64, 20,
+			0, 6, 195, 4, 210, 68, 20, 13, 138, 19, 11, 195, 166, 12, 1, 7, 20, 9, 7, 20, 0, 11, 200, 53, 84, 203, 84, 192, 84, 85,
+			32, 20, 10, 135, 14, 5, 18, 22, 195, 184, 19, 20, 11, 200, 81, 35, 205, 64, 85, 9, 77, 64, 20, 11, 200, 40, 245, 82, 56, 19,
+			9, 77, 64, 20, 15, 204, 81, 32, 78, 77, 50, 210, 36, 33, 82, 36, 225, 192, 20, 15, 204, 77, 80, 147, 80, 19, 148, 37, 97, 82,
+			36, 225, 192, 20, 15, 204, 72, 148, 201, 44, 245, 149, 72, 65, 82, 36, 225, 192, 20, 15, 204, 64, 84, 147, 64, 82, 212, 37, 97, 82,
+			36, 225, 192, 20, 15, 204, 64, 84, 134, 20, 181, 9, 60, 225, 82, 36, 225, 192, 20, 15, 204, 44, 243, 134, 20, 181, 9, 60, 225, 82,
+			36, 225, 192, 20, 15, 204, 36, 225, 18, 20, 114, 83, 81, 33, 82, 36, 225, 192, 20, 11, 200, 36, 225, 13, 5, 32, 200, 21, 32, 20,
+			12, 201, 8, 85, 78, 17, 33, 82, 36, 225, 5, 20, 7, 196, 9, 85, 9, 44, 20, 18, 70, 84, 225, 21, 48, 21, 0, 114, 50, 72,
+			40, 55, 6, 110, 47, 0, 20, 11, 200, 8, 20, 130, 37, 69, 82, 5, 64, 20, 9, 198, 52, 19, 132, 5, 64, 82, 20, 11, 200, 24,
+			192, 71, 20, 195, 1, 57, 64, 20, 0, 7, 195, 85, 52, 210, 17, 42, 11, 136, 7, 5, 14, 5, 18, 195, 184, 19, 20, 10, 135, 7,
+			18, 1, 22, 195, 184, 18, 20, 9, 198, 44, 243, 12, 20, 114, 69, 20, 12, 201, 77, 147, 139, 72, 243, 137, 76, 209, 64, 20, 12, 201,
+			72, 85, 129, 56, 50, 9, 76, 209, 64, 20, 12, 201, 56, 20, 131, 37, 52, 201, 76, 209, 64, 20, 12, 201, 48, 84, 194, 36, 19, 137,
+			76, 209, 64, 20, 12, 201, 37, 51, 205, 61, 33, 137, 76, 209, 64, 20, 12, 201, 4, 224, 75, 72, 243, 137, 76, 209, 64, 20, 12, 201,
+			4, 194, 207, 32, 243, 9, 76, 209, 64, 20, 8, 197, 21, 35, 212, 36, 176, 20, 8, 197, 17, 84, 12, 36, 176, 20, 0, 18, 7, 23,
+			3, 39, 5, 18, 14, 5, 84, 6, 36, 89, 36, 114, 50, 13, 0, 9, 198, 4, 224, 76, 60, 114, 64, 20, 9, 198, 4, 195, 5, 72,
+			114, 64, 20, 9, 198, 36, 211, 79, 73, 65, 76, 20, 9, 198, 36, 211, 79, 73, 65, 76, 20, 9, 198, 4, 176, 68, 20, 210, 64, 20,
+			9, 198, 44, 19, 77, 21, 32, 84, 20, 9, 198, 28, 83, 137, 80, 19, 0, 20, 9, 198, 24, 197, 86, 36, 19, 0, 20, 9, 198, 5,
+			51, 195, 36, 19, 0, 20, 11, 70, 52, 18, 15, 56, 86, 64, 21, 0, 10, 0, 10, 199, 44, 243, 150, 21, 37, 5, 72, 20, 10, 199,
+			24, 147, 147, 61, 37, 5, 72, 20, 6, 195, 36, 67, 204, 20, 10, 199, 64, 243, 9, 80, 146, 197, 72, 20, 10, 199, 44, 84, 129, 52,
+			146, 197, 72, 20, 10, 199, 32, 243, 73, 48, 85, 9, 44, 20, 10, 199, 16, 144, 76, 20, 181, 9, 44, 20, 10, 199, 76, 195, 214, 20,
+			226, 69, 56, 20, 10, 199, 12, 20, 212, 36, 194, 69, 56, 20, 10, 199, 16, 243, 73, 56, 146, 193, 56, 20, 10, 199, 12, 243, 15, 52,
+			34, 65, 56, 20, 0, 14, 139, 9, 14, 20, 18, 1, 22, 5, 14, 195, 184, 19, 20, 11, 200, 80, 84, 141, 36, 227, 204, 60, 112, 20,
+			11, 200, 77, 64, 84, 36, 243, 133, 72, 80, 20, 11, 200, 5, 82, 212, 36, 243, 133, 72, 80, 20, 11, 200, 104, 147, 206, 37, 53, 9,
+			76, 176, 20, 11, 200, 104, 147, 66, 4, 37, 201, 76, 176, 20, 11, 200, 52, 18, 197, 16, 243, 137, 76, 176, 20, 11, 200, 44, 20, 213,
+			37, 53, 9, 76, 176, 20, 11, 200, 37, 51, 212, 21, 35, 73, 76, 176, 20, 11, 200, 4, 194, 207, 32, 243, 9, 76, 176, 20, 11, 200,
+			5, 81, 9, 80, 244, 137, 84, 208, 20, 11, 200, 81, 32, 75, 20, 245, 15, 52, 144, 20, 11, 200, 24, 147, 8, 5, 35, 79, 56, 144,
+			20, 11, 200, 52, 244, 134, 36, 226, 83, 52, 80, 20, 11, 200, 52, 20, 207, 12, 130, 83, 52, 80, 20, 15, 204, 20, 180, 208, 72, 84,
+			211, 36, 243, 137, 76, 209, 64, 20, 7, 196, 48, 241, 201, 44, 20, 9, 198, 36, 228, 197, 72, 21, 0, 20, 0, 10, 135, 16, 15, 18,
+			20, 195, 184, 18, 20, 12, 201, 72, 85, 77, 5, 67, 204, 60, 114, 64, 20, 12, 201, 52, 85, 5, 61, 35, 204, 60, 114, 64, 20, 12,
+			201, 4, 195, 5, 72, 115, 204, 60, 114, 64, 20, 9, 198, 76, 240, 201, 60, 227, 205, 20, 8, 197, 4, 224, 84, 60, 208, 20, 9, 198,
+			53, 144, 197, 48, 149, 77, 20, 8, 197, 64, 241, 84, 36, 176, 20, 8, 197, 56, 21, 84, 36, 176, 20, 12, 201, 17, 32, 77, 5, 69,
+			82, 28, 144, 84, 20, 0, 11, 136, 10, 15, 14, 7, 12, 195, 184, 18, 20, 15, 140, 5, 14, 20, 18, 5, 16, 18, 5, 14, 195, 184,
+			18, 20, 9, 198, 80, 83, 204, 60, 114, 64, 20, 9, 198, 72, 83, 204, 60, 114, 64, 20, 9, 198, 8, 147, 204, 60, 114, 64, 20, 16,
+			141, 16, 1, 12, 195, 166, 15, 7, 18, 1, 6, 9, 19, 11, 20, 13, 202, 64, 84, 137, 64, 21, 5, 80, 146, 197, 72, 20, 9, 198,
+			64, 20, 129, 56, 242, 68, 20, 14, 139, 16, 18, 195, 166, 20, 5, 18, 9, 20, 21, 13, 20, 9, 198, 77, 80, 147, 81, 32, 84, 20,
+			9, 198, 64, 20, 212, 61, 32, 84, 20, 0, 7, 195, 92, 131, 192, 17, 42, 13, 138, 7, 12, 1, 14, 4, 21, 12, 195, 184, 19, 20,
+			10, 199, 32, 16, 137, 48, 149, 5, 72, 20, 10, 199, 64, 245, 16, 61, 84, 146, 36, 20, 14, 203, 81, 32, 78, 76, 21, 12, 4, 229,
+			9, 76, 176, 20, 14, 203, 72, 85, 137, 76, 147, 206, 37, 53, 9, 76, 176, 20, 14, 203, 61, 4, 15, 73, 69, 78, 37, 53, 9, 76,
+			176, 20, 14, 203, 45, 33, 65, 80, 147, 206, 37, 53, 9, 76, 176, 20, 14, 203, 36, 195, 21, 76, 147, 206, 37, 53, 9, 76, 176, 20,
+			14, 203, 44, 194, 84, 61, 34, 68, 20, 181, 15, 52, 144, 20, 10, 199, 21, 81, 1, 36, 211, 206, 36, 20, 14, 203, 52, 16, 200, 36,
+			21, 133, 48, 194, 83, 52, 80, 20, 14, 203, 44, 244, 146, 21, 52, 15, 56, 64, 78, 12, 80, 20, 0, 9, 198, 76, 181, 76, 65, 69,
+			82, 20, 13, 138, 18, 1, 16, 16, 15, 18, 20, 195, 184, 18, 20, 13, 138, 11, 15, 12, 16, 15, 18, 20, 195, 184, 18, 20, 15, 70,
+			64, 20, 148, 61, 85, 0, 48, 112, 47, 6, 40, 0, 20, 9, 198, 24, 21, 86, 37, 53, 0, 20, 11, 200, 88, 84, 147, 36, 243, 133,
+			72, 80, 20, 9, 198, 61, 34, 69, 57, 65, 82, 20, 11, 200, 64, 20, 129, 76, 149, 9, 76, 176, 20, 11, 200, 52, 18, 193, 72, 243,
+			137, 76, 176, 20, 11, 200, 33, 145, 18, 5, 83, 9, 76, 176, 20, 11, 200, 21, 33, 207, 56, 243, 73, 76, 176, 20, 11, 200, 20, 208,
+			146, 100, 243, 137, 76, 176, 20, 11, 200, 8, 192, 83, 24, 83, 73, 76, 176, 20, 11, 200, 5, 64, 86, 37, 53, 9, 76, 176, 20, 11,
+			200, 4, 226, 77, 37, 53, 9, 76, 176, 20, 7, 196, 72, 145, 201, 16, 20, 11, 200, 80, 84, 129, 64, 85, 84, 36, 176, 20, 0, 12,
+			201, 5, 52, 217, 72, 147, 204, 60, 114, 64, 20, 0, 9, 198, 77, 147, 80, 80, 243, 64, 20, 13, 202, 29, 81, 19, 40, 19, 77, 21,
+			35, 9, 28, 20, 17, 206, 4, 224, 82, 44, 244, 217, 56, 66, 75, 4, 194, 83, 52, 80, 20, 9, 198, 76, 149, 21, 21, 33, 84, 20,
+			0, 29, 75, 77, 21, 65, 72, 81, 1, 56, 49, 82, 56, 80, 89, 49, 58, 6, 36, 13, 72, 35, 12, 50, 89, 114, 20, 50, 13, 0,
+			9, 198, 65, 54, 75, 60, 195, 199, 20, 10, 199, 5, 85, 15, 72, 149, 5, 80, 20, 14, 203, 36, 66, 79, 77, 147, 139, 72, 21, 9,
+			76, 176, 20, 14, 203, 32, 148, 212, 61, 34, 67, 37, 53, 9, 76, 176, 20, 14, 203, 8, 82, 1, 88, 147, 210, 37, 53, 9, 76, 176,
+			20, 10, 199, 20, 180, 203, 88, 148, 201, 80, 20, 10, 199, 44, 19, 143, 56, 146, 193, 80, 20, 10, 199, 4, 69, 133, 72, 34, 65, 48,
+			20, 0, 9, 198, 64, 144, 78, 37, 53, 0, 20, 9, 198, 44, 243, 131, 37, 1, 82, 20, 9, 198, 16, 148, 208, 85, 65, 82, 20, 9,
+			198, 12, 83, 69, 57, 65, 82, 20, 9, 198, 4, 211, 133, 77, 65, 82, 20, 7, 196, 48, 246, 65, 48, 20, 11, 200, 16, 148, 203, 72,
+			84, 1, 57, 48, 20, 0, 25, 73, 9, 33, 65, 44, 64, 78, 12, 83, 128, 71, 34, 109, 37, 81, 6, 72, 35, 12, 50, 89, 14, 50,
+			0, 12, 201, 44, 20, 9, 48, 192, 82, 37, 65, 84, 20, 12, 201, 52, 146, 210, 60, 225, 83, 36, 83, 128, 20, 12, 201, 65, 35, 211,
+			80, 149, 21, 21, 33, 84, 20, 0, 13, 202, 64, 245, 5, 57, 66, 65, 48, 149, 5, 80, 20, 9, 198, 64, 20, 212, 61, 32, 76, 20,
+			0, 8, 133, 9, 19, 195, 166, 18, 20, 10, 199, 32, 16, 137, 48, 149, 5, 80, 20, 10, 199, 88, 17, 5, 52, 80, 213, 52, 20, 10,
+			199, 76, 227, 194, 8, 148, 205, 20, 20, 10, 199, 64, 244, 21, 48, 148, 205, 20, 20, 10, 199, 56, 146, 9, 48, 148, 205, 20, 20, 10,
+			199, 37, 51, 1, 52, 148, 205, 20, 20, 10, 199, 8, 245, 21, 48, 148, 205, 20, 20, 10, 199, 21, 128, 197, 48, 193, 78, 76, 20, 0,
+			9, 68, 48, 241, 201, 56, 21, 0, 10, 0, 9, 198, 56, 85, 82, 4, 193, 201, 20, 8, 197, 56, 21, 9, 60, 224, 20, 12, 201, 56,
+			21, 9, 60, 224, 76, 37, 65, 84, 20, 8, 197, 44, 244, 142, 20, 192, 20, 8, 197, 44, 244, 142, 20, 192, 20, 8, 197, 44, 243, 147,
+			60, 192, 20, 16, 69, 64, 244, 12, 36, 224, 48, 114, 48, 55, 6, 109, 68, 0, 20, 8, 197, 52, 244, 140, 36, 192, 20, 12, 201, 76,
+			241, 137, 77, 66, 75, 21, 33, 84, 20, 9, 198, 72, 84, 212, 4, 224, 197, 20, 0, 15, 140, 16, 195, 166, 4, 1, 7, 15, 7, 9,
+			19, 5, 18, 20, 12, 137, 15, 18, 11, 14, 195, 184, 9, 19, 11, 20, 13, 202, 29, 83, 77, 36, 20, 129, 8, 144, 213, 52, 20, 13,
+			202, 64, 243, 25, 12, 83, 148, 72, 148, 205, 20, 20, 0, 10, 199, 72, 81, 146, 4, 181, 15, 72, 20, 12, 137, 20, 5, 13, 16, 15,
+			18, 195, 166, 18, 20, 10, 199, 77, 80, 147, 36, 66, 69, 72, 20, 10, 199, 65, 35, 196, 84, 49, 82, 20, 20, 10, 199, 64, 20, 143,
+			16, 145, 82, 20, 20, 10, 199, 64, 20, 134, 84, 209, 82, 20, 20, 13, 138, 195, 184, 11, 21, 13, 5, 14, 9, 19, 11, 20, 10, 199,
+			28, 227, 211, 80, 146, 197, 72, 20, 10, 199, 9, 32, 83, 36, 194, 65, 56, 20, 10, 199, 72, 84, 5, 48, 193, 78, 80, 20, 10, 199,
+			64, 84, 141, 4, 225, 78, 80, 20, 12, 201, 36, 212, 5, 73, 66, 78, 20, 229, 0, 20, 10, 199, 21, 128, 197, 48, 193, 78, 80, 20,
+			0, 14, 68, 64, 128, 82, 52, 83, 112, 12, 34, 65, 19, 0, 25, 13, 138, 11, 22, 1, 20, 5, 18, 14, 195, 166, 18, 20, 9, 134,
+			7, 5, 22, 195, 166, 18, 20, 11, 200, 81, 32, 78, 76, 149, 9, 60, 224, 20, 11, 200, 64, 84, 134, 20, 181, 9, 60, 224, 20, 11,
+			200, 44, 243, 150, 20, 181, 9, 60, 224, 20, 11, 200, 44, 243, 135, 21, 53, 9, 60, 224, 20, 11, 200, 44, 243, 134, 20, 181, 9, 60,
+			224, 20, 11, 200, 44, 21, 137, 80, 21, 9, 60, 224, 20, 11, 200, 37, 36, 137, 80, 21, 9, 60, 224, 20, 11, 200, 36, 226, 213, 8,
+			21, 9, 60, 224, 20, 11, 200, 36, 226, 1, 48, 21, 9, 60, 224, 20, 11, 200, 29, 32, 68, 84, 21, 9, 60, 224, 20, 11, 200, 28,
+			83, 73, 56, 21, 9, 60, 224, 20, 11, 200, 20, 210, 71, 72, 21, 9, 60, 224, 20, 11, 200, 16, 149, 137, 56, 21, 9, 60, 224, 20,
+			11, 200, 16, 81, 9, 44, 21, 9, 60, 224, 20, 11, 200, 5, 52, 9, 72, 21, 9, 60, 224, 20, 14, 139, 16, 18, 195, 166, 19, 5,
+			14, 20, 9, 19, 11, 20, 7, 196, 64, 193, 84, 36, 20, 9, 198, 76, 243, 22, 20, 229, 0, 20, 9, 198, 20, 210, 78, 20, 229, 0,
+			20, 11, 200, 61, 35, 129, 52, 83, 148, 4, 192, 20, 11, 200, 60, 48, 201, 16, 83, 148, 4, 192, 20, 11, 200, 52, 243, 149, 52, 83,
+			148, 4, 192, 20, 9, 198, 5, 4, 12, 36, 176, 66, 20, 0, 24, 73, 9, 33, 65, 44, 64, 78, 12, 84, 128, 71, 34, 109, 37, 81,
+			6, 72, 35, 12, 50, 89, 114, 0, 8, 197, 52, 245, 9, 60, 224, 20, 8, 197, 4, 181, 9, 60, 224, 20, 15, 140, 6, 15, 18, 18,
+			195, 166, 4, 5, 18, 9, 19, 11, 20, 8, 197, 56, 81, 210, 36, 64, 20, 8, 197, 45, 33, 84, 36, 224, 20, 8, 197, 64, 244, 148,
+			4, 192, 20, 0, 11, 136, 19, 15, 12, 9, 20, 195, 166, 18, 20, 11, 136, 13, 9, 12, 9, 20, 195, 166, 18, 20, 12, 137, 20, 18,
+			15, 11, 195, 166, 9, 19, 11, 20, 16, 141, 16, 25, 20, 8, 1, 7, 15, 18, 195, 166, 9, 19, 11, 20, 12, 137, 5, 12, 25, 19,
+			195, 166, 9, 19, 11, 20, 13, 202, 44, 244, 146, 21, 52, 15, 56, 65, 78, 80, 20, 9, 198, 76, 243, 22, 20, 228, 192, 20, 0, 12,
+			137, 16, 5, 11, 21, 14, 9, 195, 166, 18, 20, 14, 203, 77, 66, 71, 52, 21, 9, 76, 21, 9, 60, 224, 20, 14, 203, 53, 83, 20,
+			37, 3, 9, 44, 21, 9, 60, 224, 20, 14, 203, 36, 211, 79, 8, 147, 9, 76, 21, 9, 60, 224, 20, 14, 203, 28, 83, 133, 72, 19,
+			9, 76, 21, 9, 60, 224, 20, 14, 203, 16, 148, 203, 72, 147, 73, 56, 21, 9, 60, 224, 20, 14, 203, 5, 4, 18, 60, 180, 201, 52,
+			21, 9, 60, 224, 20, 10, 199, 88, 83, 148, 36, 193, 82, 20, 20, 10, 199, 81, 34, 85, 52, 97, 82, 20, 20, 10, 199, 52, 20, 135,
+			36, 225, 82, 20, 20, 10, 199, 44, 243, 147, 84, 193, 82, 20, 20, 10, 199, 16, 148, 211, 60, 50, 69, 72, 20, 10, 199, 16, 84, 18,
+			20, 50, 69, 72, 20, 13, 138, 6, 1, 18, 9, 19, 195, 166, 9, 19, 11, 20, 13, 138, 4, 9, 195, 166, 20, 5, 20, 9, 19, 11,
+			20, 10, 199, 40, 19, 137, 81, 50, 1, 72, 20, 0, 25, 73, 9, 33, 65, 44, 64, 78, 12, 84, 133, 71, 34, 109, 37, 81, 6, 72,
+			35, 12, 50, 89, 114, 108, 0, 11, 200, 88, 145, 9, 52, 21, 9, 60, 224, 20, 11, 200, 65, 35, 202, 20, 181, 9, 60, 224, 20, 11,
+			200, 56, 243, 73, 56, 21, 9, 60, 224, 20, 11, 200, 45, 83, 85, 48, 21, 9, 60, 224, 20, 11, 200, 44, 243, 139, 72, 85, 9, 60,
+			224, 20, 11, 200, 28, 83, 133, 72, 21, 9, 60, 224, 20, 11, 200, 24, 16, 149, 48, 21, 9, 60, 224, 20, 11, 200, 16, 84, 137, 88,
+			21, 9, 60, 224, 20, 11, 200, 4, 36, 207, 49, 85, 9, 60, 224, 20, 0, 8, 197, 17, 80, 140, 21, 64, 20, 15, 140, 8, 15, 13,
+			195, 184, 15, 16, 1, 20, 9, 19, 11, 20, 8, 197, 28, 195, 211, 5, 32, 20, 0, 14, 139, 195, 166, 7, 25, 16, 20, 15, 12, 15,
+			7, 9, 20, 12, 137, 8, 195, 184, 10, 13, 15, 4, 9, 7, 20, 9, 198, 53, 144, 197, 48, 145, 64, 20, 9, 198, 57, 81, 9, 76,
+			209, 64, 20, 9, 198, 88, 84, 148, 36, 176, 76, 20, 9, 198, 52, 20, 211, 4, 113, 64, 20, 9, 198, 44, 244, 147, 4, 113, 64, 20,
+			9, 198, 25, 84, 212, 4, 113, 64, 20, 9, 198, 12, 243, 12, 4, 113, 64, 20, 11, 70, 76, 50, 69, 56, 49, 64, 21, 0, 10, 0,
+			14, 203, 81, 32, 78, 77, 50, 210, 37, 5, 9, 60, 224, 20, 14, 203, 56, 85, 84, 72, 19, 9, 76, 21, 9, 60, 224, 20, 14, 203,
+			56, 21, 21, 72, 19, 9, 76, 21, 9, 60, 224, 20, 14, 203, 20, 180, 208, 72, 244, 18, 36, 21, 9, 60, 224, 20, 14, 203, 16, 81,
+			137, 9, 34, 76, 48, 21, 9, 60, 224, 20, 13, 138, 22, 9, 12, 11, 195, 165, 18, 12, 9, 7, 20, 0, 11, 200, 81, 35, 205, 8,
+			243, 137, 77, 64, 20, 11, 200, 64, 244, 201, 80, 149, 137, 77, 64, 20, 11, 200, 56, 81, 193, 80, 149, 137, 77, 64, 20, 11, 200, 12,
+			128, 85, 88, 147, 137, 77, 64, 20, 11, 200, 20, 180, 208, 5, 68, 137, 21, 32, 20, 11, 200, 16, 148, 133, 45, 67, 210, 5, 64, 20,
+			11, 200, 52, 147, 137, 77, 68, 129, 57, 64, 20, 11, 200, 24, 195, 210, 37, 52, 193, 57, 64, 20, 0, 24, 69, 88, 19, 132, 21, 64,
+			84, 110, 50, 13, 86, 15, 89, 47, 6, 36, 0, 81, 115, 116, 101, 103, 32, 8, 197, 5, 37, 9, 77, 64, 20, 8, 197, 4, 229, 18,
+			37, 64, 20, 12, 201, 65, 84, 137, 80, 19, 137, 76, 209, 64, 20, 12, 201, 64, 244, 201, 80, 149, 137, 76, 209, 64, 20, 12, 201, 56,
+			81, 193, 80, 149, 137, 76, 209, 64, 20, 12, 201, 32, 81, 197, 52, 243, 137, 76, 209, 64, 20, 12, 201, 12, 83, 148, 72, 19, 9, 76,
+			209, 64, 20, 8, 197, 12, 83, 69, 57, 64, 20, 8, 197, 9, 82, 203, 5, 32, 20, 12, 201, 16, 82, 207, 48, 193, 84, 4, 113, 64,
+			20, 0, 10, 135, 18, 195, 184, 7, 5, 18, 9, 20, 12, 137, 1, 14, 4, 195, 166, 7, 20, 9, 7, 20, 12, 137, 1, 12, 13, 195,
+			166, 7, 20, 9, 7, 20, 9, 198, 81, 37, 73, 76, 209, 64, 20, 9, 198, 5, 85, 9, 76, 209, 64, 20, 9, 198, 80, 82, 211, 80,
+			147, 0, 20, 6, 195, 64, 241, 77, 20, 9, 198, 76, 84, 150, 36, 49, 64, 20, 9, 198, 72, 243, 65, 56, 49, 64, 20, 9, 198, 8,
+			192, 77, 4, 113, 64, 20, 0, 14, 203, 88, 149, 137, 76, 82, 212, 36, 243, 137, 77, 64, 20, 13, 138, 22, 9, 12, 4, 18, 195, 165,
+			4, 9, 7, 20, 13, 138, 6, 15, 18, 4, 195, 166, 7, 20, 9, 7, 20, 10, 199, 16, 84, 5, 56, 65, 78, 76, 20, 0, 27, 68,
+			32, 21, 84, 20, 2, 39, 12, 47, 49, 40, 6, 47, 116, 12, 34, 0, 81, 99, 111, 117, 116, 117, 114, 101, 32, 11, 200, 44, 20, 130,
+			85, 32, 84, 61, 32, 20, 11, 200, 36, 228, 208, 37, 32, 84, 61, 32, 20, 15, 140, 195, 166, 11, 22, 9, 12, 9, 2, 18, 9, 19,
+			20, 20, 11, 200, 72, 83, 1, 80, 149, 137, 77, 64, 20, 11, 200, 72, 80, 201, 16, 149, 137, 77, 64, 20, 11, 200, 77, 80, 147, 80,
+			149, 21, 21, 32, 20, 11, 200, 65, 35, 211, 80, 149, 21, 21, 32, 20, 11, 200, 44, 243, 147, 80, 149, 21, 21, 32, 20, 14, 139, 19,
+			20, 15, 18, 13, 195, 166, 7, 20, 9, 7, 20, 14, 139, 15, 22, 5, 18, 13, 195, 166, 7, 20, 9, 7, 20, 14, 139, 13, 9, 19,
+			20, 18, 195, 184, 19, 20, 9, 7, 20, 9, 198, 21, 53, 9, 52, 21, 0, 20, 9, 68, 56, 145, 200, 80, 21, 0, 10, 0, 8, 197,
+			61, 51, 79, 76, 80, 20, 8, 197, 52, 147, 79, 76, 80, 20, 8, 197, 45, 80, 133, 72, 80, 20, 8, 197, 28, 17, 197, 72, 80, 20,
+			11, 136, 195, 166, 7, 195, 166, 9, 19, 11, 20, 8, 197, 44, 147, 133, 76, 80, 20, 12, 201, 77, 3, 206, 80, 19, 137, 76, 209, 64,
+			20, 12, 201, 76, 83, 73, 56, 20, 137, 76, 209, 64, 20, 12, 201, 52, 243, 133, 80, 20, 137, 76, 209, 64, 20, 12, 201, 20, 180, 212,
+			72, 83, 73, 76, 209, 64, 20, 12, 201, 12, 83, 148, 72, 148, 5, 80, 19, 0, 20, 8, 197, 72, 21, 129, 28, 80, 20, 0, 14, 139,
+			6, 25, 18, 22, 195, 166, 18, 11, 5, 18, 9, 20, 12, 137, 195, 166, 19, 20, 5, 20, 9, 19, 11, 20, 13, 202, 44, 244, 146, 21,
+			52, 15, 56, 65, 78, 76, 20, 9, 198, 64, 20, 139, 60, 208, 84, 20, 9, 198, 36, 195, 15, 100, 19, 0, 20, 0, 14, 139, 6, 195,
+			184, 4, 5, 18, 1, 12, 9, 19, 20, 20, 14, 203, 20, 180, 200, 36, 34, 84, 36, 243, 137, 77, 64, 20, 10, 199, 44, 243, 132, 60,
+			209, 82, 36, 20, 13, 138, 16, 25, 18, 5, 14, 195, 166, 9, 19, 11, 20, 10, 199, 52, 82, 193, 56, 146, 197, 72, 20, 10, 199, 4,
+			225, 18, 60, 118, 78, 36, 20, 10, 199, 5, 32, 71, 60, 226, 69, 56, 20, 10, 199, 56, 85, 82, 85, 4, 9, 56, 20, 10, 199, 12,
+			20, 212, 36, 194, 65, 56, 20, 0, 11, 200, 76, 180, 143, 25, 83, 15, 76, 80, 20, 9, 198, 88, 145, 5, 60, 99, 206, 20, 11, 200,
+			84, 68, 193, 56, 84, 137, 56, 112, 20, 11, 200, 80, 16, 149, 48, 84, 137, 56, 112, 20, 11, 200, 72, 84, 213, 52, 84, 137, 56, 112,
+			20, 11, 200, 64, 195, 205, 8, 84, 137, 56, 112, 20, 11, 200, 52, 243, 137, 80, 84, 137, 56, 112, 20, 11, 200, 45, 38, 80, 80, 84,
+			137, 56, 112, 20, 11, 200, 36, 226, 1, 48, 84, 137, 56, 112, 20, 11, 200, 28, 83, 73, 56, 84, 137, 56, 112, 20, 11, 200, 24, 242,
+			213, 76, 84, 137, 56, 112, 20, 11, 200, 9, 35, 206, 104, 84, 137, 56, 112, 20, 11, 200, 4, 67, 208, 80, 84, 137, 56, 112, 20, 11,
+			200, 60, 209, 210, 85, 4, 5, 72, 80, 20, 14, 139, 19, 1, 4, 4, 21, 11, 195, 166, 9, 19, 11, 20, 11, 200, 44, 18, 207, 24,
+			243, 137, 76, 176, 20, 14, 139, 5, 16, 9, 11, 21, 18, 195, 166, 9, 19, 11, 20, 11, 200, 16, 21, 1, 48, 241, 201, 76, 176, 20,
+			15, 204, 64, 20, 140, 4, 209, 78, 80, 20, 137, 76, 209, 64, 20, 9, 198, 76, 144, 201, 48, 145, 78, 20, 0, 8, 197, 52, 149, 15,
+			76, 80, 20, 12, 201, 80, 242, 211, 36, 179, 204, 60, 114, 64, 20, 9, 198, 21, 33, 207, 56, 243, 73, 20, 9, 198, 8, 192, 83, 24,
+			83, 73, 20, 0, 9, 198, 44, 148, 149, 72, 114, 64, 20, 17, 142, 16, 18, 195, 166, 12, 9, 13, 9, 14, 1, 18, 9, 19, 20, 20,
+			12, 137, 8, 195, 166, 18, 5, 20, 9, 19, 11, 20, 13, 202, 44, 20, 129, 45, 65, 82, 37, 53, 9, 44, 20, 0, 14, 203, 81, 32,
+			78, 76, 210, 84, 80, 84, 137, 56, 112, 20, 14, 203, 53, 149, 15, 48, 241, 201, 76, 84, 137, 56, 112, 20, 14, 203, 32, 243, 79, 28,
+			83, 137, 76, 84, 137, 56, 112, 20, 14, 203, 16, 148, 203, 72, 147, 73, 56, 84, 137, 56, 112, 20, 14, 203, 8, 20, 212, 5, 33, 9,
+			76, 84, 137, 56, 112, 20, 10, 199, 20, 115, 195, 20, 229, 18, 36, 20, 13, 138, 7, 1, 12, 9, 12, 195, 166, 9, 19, 11, 20, 18,
+			207, 17, 32, 77, 4, 67, 203, 84, 209, 78, 80, 20, 137, 76, 209, 64, 20, 10, 199, 77, 34, 76, 4, 226, 193, 56, 20, 12, 201, 80,
+			82, 211, 81, 84, 133, 72, 85, 0, 20, 0, 7, 196, 52, 20, 213, 80, 20, 16, 141, 16, 1, 12, 195, 166, 15, 14, 20, 15, 12, 15,
+			7, 9, 20, 11, 200, 48, 20, 153, 56, 115, 204, 60, 112, 20, 9, 198, 48, 149, 146, 37, 53, 0, 20, 11, 200, 64, 20, 129, 16, 84,
+			137, 56, 112, 20, 11, 200, 64, 19, 133, 48, 84, 137, 56, 112, 20, 11, 200, 45, 83, 85, 48, 84, 137, 56, 112, 20, 11, 200, 44, 20,
+			137, 44, 84, 137, 56, 112, 20, 11, 200, 24, 16, 149, 48, 84, 137, 56, 112, 20, 11, 200, 16, 243, 73, 56, 84, 137, 56, 112, 20, 11,
+			200, 16, 80, 137, 80, 84, 137, 56, 112, 20, 11, 200, 9, 35, 195, 32, 84, 137, 56, 112, 20, 9, 198, 88, 243, 20, 36, 113, 82, 20,
+			9, 198, 65, 80, 140, 36, 49, 82, 20, 11, 200, 64, 21, 18, 84, 194, 133, 72, 80, 20, 9, 198, 16, 149, 133, 72, 113, 82, 20, 9,
+			198, 16, 83, 65, 72, 177, 82, 20, 9, 198, 5, 4, 12, 36, 49, 82, 20, 11, 200, 5, 3, 203, 73, 145, 137, 76, 176, 20, 11, 200,
+			64, 21, 15, 28, 83, 133, 76, 80, 20, 11, 200, 25, 147, 15, 28, 83, 133, 76, 80, 20, 12, 137, 19, 195, 166, 12, 1, 18, 9, 21,
+			13, 20, 11, 200, 25, 148, 201, 60, 115, 143, 52, 144, 20, 9, 134, 18, 21, 13, 195, 166, 14, 20, 11, 200, 16, 81, 133, 45, 68, 137,
+			12, 80, 20, 11, 200, 12, 19, 79, 84, 99, 1, 28, 80, 20, 0, 6, 20, 0, 0, 0, 252, 0, 0, 0, 121, 0, 0, 0, 246, 0,
+			0, 0, 248, 0, 0, 0, 228, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 99, 107, 0, 110, 107, 0, 110, 103, 0,
+			107, 0, 103, 0, 113, 0, 106, 0, 7, 6, 18, 67, 112, 0, 98, 0, 102, 0, 118, 0, 109, 0, 7, 6, 18, 68, 108, 0, 100, 0,
+			7, 6, 18, 69, 195, 184, 0, 117, 0, 121, 0, 105, 0, 111, 0, 7, 6, 18, 70, 195, 166, 0, 195, 165, 0, 97, 0, 7, 6, 18,
+			71, 112, 0, 98, 0, 7, 6, 18, 72, 116, 0, 107, 0, 118, 0, 7, 6, 18, 73, 115, 112, 0, 115, 116, 0, 115, 107, 0, 7, 6,
+			18, 74, 109, 0, 110, 0, 7, 6, 18, 75, 99, 0, 107, 0, 7, 6, 18, 76, 97, 0, 101, 0, 7, 6, 97, 102, 0, 1, 114, 103,
+			10, 2, 28, 33, 3, 6, 112, 83, 0, 4, 8, 112, 3, 35, 83, 0, 102, 1, 107, 2, 101, 0, 102, 1, 108, 2, 101, 0, 102, 1,
+			116, 2, 101, 0, 102, 1, 116, 115, 2, 101, 3, 110, 83, 0, 1, 114, 103, 10, 2, 105, 28, 33, 3, 112, 83, 6, 0, 7, 6, 97,
+			103, 0, 1, 108, 114, 111, 102, 3, 2, 110, 57, 0, 1, 98, 108, 105, 116, 2, 101, 3, 6, 110, 12, 0, 101, 1, 10, 2, 28, 33,
+			12, 12, 12, 3, 6, 110, 12, 91, 13, 0, 101, 1, 10, 2, 114, 28, 33, 12, 12, 3, 6, 110, 12, 91, 114, 0, 4, 110, 1, 115,
+			97, 108, 2, 101, 3, 6, 110, 50, 57, 0, 110, 1, 116, 101, 114, 98, 2, 101, 0, 101, 1, 114, 10, 2, 28, 33, 12, 12, 3, 6,
+			112, 12, 91, 13, 0, 1, 116, 2, 108, 105, 97, 116, 101, 108, 108, 101, 3, 21, 105, 116, 0, 4, 1, 102, 2, 21, 3, 35, 40, 0,
+			1, 108, 2, 17, 67, 0, 1, 108, 102, 2, 114, 101, 0, 1, 108, 115, 2, 17, 67, 21, 0, 1, 108, 115, 2, 115, 118, 195, 166, 114,
+			100, 0, 103, 1, 108, 115, 2, 101, 3, 35, 49, 0, 1, 116, 2, 17, 67, 3, 35, 58, 0, 4, 1, 17, 67, 2, 116, 12, 3, 35,
+			81, 0, 1, 102, 2, 116, 101, 114, 0, 1, 106, 2, 116, 0, 1, 106, 2, 117, 97, 114, 0, 1, 108, 115, 2, 116, 101, 12, 0, 1,
+			108, 115, 2, 116, 110, 12, 0, 1, 118, 115, 100, 101, 104, 114, 101, 107, 107, 105, 115, 2, 116, 0, 1, 118, 115, 101, 114, 166, 195, 2,
+			116, 0, 1, 118, 115, 103, 110, 105, 114, 101, 107, 114, 97, 112, 2, 116, 0, 1, 118, 115, 107, 105, 116, 117, 98, 2, 116, 0, 1, 118,
+			115, 108, 97, 116, 105, 112, 115, 111, 104, 2, 116, 0, 2, 116, 105, 103, 0, 8, 108, 115, 2, 115, 32, 0, 8, 108, 115, 2, 115, 101,
+			110, 0, 104, 1, 108, 108, 97, 103, 3, 108, 81, 0, 8, 98, 2, 101, 108, 12, 3, 109, 57, 81, 0, 4, 1, 100, 21, 2, 32, 12,
+			12, 3, 110, 0, 1, 100, 115, 2, 12, 0, 1, 116, 2, 102, 97, 116, 0, 4, 1, 98, 2, 102, 114, 3, 110, 4, 0, 1, 98, 2,
+			105, 0, 1, 98, 2, 112, 195, 165, 0, 1, 98, 2, 116, 105, 108, 0, 1, 116, 2, 115, 101, 108, 118, 3, 110, 6, 0, 4, 1, 98,
+			2, 111, 118, 101, 114, 3, 110, 9, 0, 1, 98, 2, 117, 100, 0, 1, 98, 2, 118, 101, 100, 0, 4, 1, 106, 2, 101, 12, 3, 110,
+			12, 0, 100, 1, 115, 2, 101, 12, 0, 100, 1, 108, 2, 101, 3, 110, 12, 57, 0, 101, 1, 17, 67, 2, 12, 3, 110, 12, 57, 13,
+			0, 101, 114, 1, 17, 67, 2, 12, 3, 110, 12, 57, 114, 0, 4, 101, 1, 100, 110, 97, 98, 3, 110, 12, 91, 13, 0, 101, 1, 103,
+			2, 32, 12, 0, 101, 1, 112, 2, 12, 12, 0, 101, 1, 115, 115, 97, 109, 101, 116, 114, 101, 106, 104, 0, 101, 1, 116, 117, 102, 102,
+			97, 0, 101, 1, 103, 97, 98, 3, 110, 12, 91, 108, 0, 110, 1, 116, 115, 97, 107, 2, 101, 116, 3, 110, 50, 57, 6, 0, 4, 1,
+			17, 67, 115, 2, 12, 3, 110, 57, 0, 1, 98, 2, 101, 102, 116, 101, 114, 0, 1, 98, 2, 101, 114, 105, 12, 0, 1, 98, 101, 109,
+			109, 101, 106, 104, 2, 32, 0, 1, 100, 2, 32, 0, 1, 100, 2, 101, 12, 0, 1, 100, 2, 115, 32, 0, 1, 108, 2, 32, 0, 1,
+			108, 2, 110, 0, 1, 108, 2, 114, 101, 0, 1, 108, 2, 114, 101, 12, 0, 1, 108, 112, 0, 1, 108, 115, 2, 110, 101, 0, 1, 108,
+			115, 2, 110, 105, 12, 0, 1, 108, 115, 109, 101, 110, 110, 101, 103, 2, 12, 0, 1, 108, 115, 112, 111, 0, 1, 115, 110, 97, 114, 2,
+			110, 0, 1, 116, 2, 32, 0, 1, 116, 2, 110, 101, 0, 1, 118, 115, 2, 116, 0, 1, 118, 115, 101, 110, 118, 101, 0, 1, 118, 115,
+			115, 100, 110, 165, 195, 0, 2, 110, 105, 110, 103, 0, 8, 18, 71, 2, 32, 0, 8, 106, 2, 32, 0, 8, 115, 2, 116, 101, 32, 0,
+			4, 101, 1, 108, 115, 115, 108, 101, 115, 100, 166, 195, 114, 2, 110, 3, 110, 57, 13, 0, 101, 1, 116, 2, 108, 115, 101, 0, 101, 1,
+			116, 101, 98, 0, 101, 1, 116, 101, 114, 97, 118, 0, 101, 1, 116, 101, 114, 111, 102, 0, 101, 8, 2, 32, 3, 110, 57, 108, 0, 4,
+			101, 110, 100, 1, 98, 2, 101, 32, 104, 101, 100, 3, 110, 57, 108, 50, 0, 101, 110, 100, 1, 98, 2, 101, 32, 115, 111, 108, 0, 101,
+			110, 100, 1, 98, 2, 101, 32, 118, 97, 114, 109, 0, 4, 101, 2, 114, 110, 3, 110, 57, 114, 0, 101, 114, 1, 116, 116, 103, 97, 105,
+			2, 32, 0, 101, 114, 2, 104, 195, 184, 110, 0, 101, 114, 8, 2, 32, 0, 110, 97, 110, 1, 116, 114, 97, 3, 110, 68, 112, 68, 0,
+			4, 1, 100, 2, 111, 103, 12, 3, 110, 81, 0, 1, 108, 112, 2, 105, 0, 1, 112, 115, 2, 97, 116, 0, 103, 1, 116, 2, 101, 0,
+			4, 1, 112, 115, 2, 101, 116, 116, 3, 110, 81, 6, 0, 104, 1, 112, 115, 2, 101, 116, 116, 0, 101, 1, 116, 117, 109, 2, 110, 3,
+			110, 81, 6, 36, 0, 101, 116, 101, 115, 1, 116, 3, 110, 81, 6, 36, 47, 108, 89, 0, 101, 8, 2, 110, 116, 12, 12, 3, 110, 81,
+			6, 109, 0, 101, 2, 110, 116, 12, 12, 3, 110, 81, 109, 0, 101, 114, 1, 103, 2, 101, 12, 3, 110, 91, 6, 36, 0, 101, 1, 10,
+			2, 114, 101, 28, 33, 12, 3, 110, 91, 6, 36, 13, 0, 4, 101, 1, 110, 111, 3, 110, 91, 13, 0, 101, 1, 115, 115, 97, 0, 101,
+			1, 116, 110, 97, 108, 112, 0, 101, 1, 116, 101, 3, 110, 91, 108, 0, 101, 114, 1, 116, 101, 3, 110, 91, 114, 0, 4, 101, 114, 1,
+			116, 101, 114, 111, 102, 3, 112, 34, 0, 101, 114, 8, 116, 2, 32, 0, 4, 1, 98, 2, 17, 65, 110, 3, 112, 40, 0, 1, 98, 2,
+			18, 66, 0, 1, 98, 2, 98, 0, 1, 98, 2, 100, 0, 1, 98, 2, 102, 0, 1, 98, 2, 104, 12, 0, 1, 98, 2, 107, 0, 1,
+			98, 2, 108, 0, 1, 98, 2, 109, 0, 1, 98, 2, 112, 0, 1, 98, 2, 114, 117, 100, 0, 1, 98, 2, 115, 0, 1, 98, 2, 116,
+			21, 0, 1, 98, 2, 117, 100, 103, 97, 110, 103, 0, 1, 98, 2, 118, 0, 1, 100, 2, 105, 110, 115, 116, 105, 0, 1, 100, 2, 108,
+			21, 12, 0, 1, 108, 115, 2, 115, 105, 100, 101, 0, 1, 108, 115, 2, 115, 109, 195, 165, 108, 0, 1, 108, 115, 2, 116, 105, 108, 102,
+			0, 1, 108, 115, 101, 2, 108, 17, 65, 0, 1, 112, 115, 2, 110, 117, 109, 0, 1, 114, 2, 101, 12, 0, 1, 115, 2, 110, 0, 1,
+			115, 2, 115, 195, 184, 0, 110, 1, 116, 115, 3, 112, 40, 68, 0, 101, 110, 100, 1, 98, 2, 101, 3, 112, 40, 109, 50, 0, 101, 114,
+			1, 108, 102, 2, 109, 117, 115, 3, 112, 40, 114, 0, 1, 107, 115, 2, 108, 101, 114, 3, 112, 58, 0, 101, 1, 114, 2, 12, 12, 3,
+			112, 58, 13, 0, 101, 114, 1, 114, 2, 12, 12, 3, 112, 58, 114, 0, 1, 98, 2, 116, 101, 3, 112, 81, 0, 101, 100, 105, 101, 1,
+			114, 116, 3, 112, 81, 6, 36, 86, 57, 13, 0, 101, 1, 114, 102, 102, 117, 115, 2, 116, 116, 101, 3, 112, 91, 6, 109, 0, 7, 6,
+			97, 108, 0, 4, 8, 98, 97, 107, 2, 101, 3, 6, 110, 12, 55, 0, 8, 98, 109, 105, 116, 2, 101, 0, 8, 100, 110, 97, 107, 115,
+			2, 101, 0, 8, 103, 101, 114, 2, 101, 0, 8, 104, 114, 111, 102, 2, 101, 0, 8, 105, 114, 101, 116, 97, 109, 2, 101, 0, 8, 105,
+			116, 97, 114, 103, 2, 101, 0, 8, 105, 116, 110, 101, 116, 111, 112, 2, 101, 0, 8, 107, 111, 108, 2, 101, 0, 8, 109, 114, 111, 102,
+			2, 101, 0, 8, 110, 105, 102, 2, 101, 0, 8, 110, 110, 101, 105, 98, 0, 8, 110, 110, 101, 105, 114, 116, 2, 101, 0, 8, 115, 115,
+			105, 109, 2, 101, 0, 8, 116, 114, 111, 102, 2, 101, 0, 8, 116, 114, 111, 109, 111, 116, 108, 97, 115, 2, 101, 0, 8, 117, 100, 97,
+			114, 103, 2, 101, 0, 8, 117, 110, 97, 109, 2, 101, 0, 4, 101, 8, 105, 99, 101, 112, 115, 2, 32, 3, 6, 110, 12, 55, 13, 0,
+			101, 8, 105, 116, 110, 101, 114, 101, 102, 102, 105, 100, 0, 4, 1, 100, 101, 112, 115, 2, 115, 107, 3, 6, 110, 55, 0, 1, 117, 115,
+			107, 101, 115, 0, 4, 8, 114, 101, 109, 117, 110, 2, 101, 3, 6, 112, 12, 55, 0, 8, 114, 111, 109, 2, 101, 0, 8, 114, 111, 116,
+			115, 97, 112, 2, 101, 0, 4, 8, 110, 105, 114, 117, 3, 7, 110, 12, 55, 0, 8, 110, 111, 105, 116, 97, 114, 2, 101, 0, 8, 110,
+			111, 115, 114, 101, 112, 2, 101, 0, 7, 6, 98, 101, 0, 97, 117, 8, 3, 2, 71, 39, 0, 8, 2, 21, 3, 71, 2, 36, 0, 8,
+			2, 106, 108, 101, 3, 71, 35, 0, 4, 103, 8, 2, 98, 108, 101, 110, 100, 101, 3, 71, 35, 57, 0, 103, 8, 2, 109, 97, 110, 100,
+			0, 103, 8, 2, 110, 105, 110, 103, 0, 4, 8, 2, 100, 100, 105, 110, 103, 3, 71, 36, 0, 8, 2, 100, 101, 0, 8, 2, 101, 116,
+			97, 32, 0, 8, 2, 110, 97, 114, 98, 101, 106, 100, 101, 0, 8, 2, 110, 98, 98, 117, 107, 0, 8, 2, 110, 98, 114, 117, 100, 0,
+			8, 2, 110, 101, 100, 100, 101, 114, 0, 8, 2, 110, 101, 116, 0, 8, 2, 110, 102, 101, 100, 116, 0, 8, 2, 110, 102, 105, 115, 107,
+			0, 8, 2, 110, 102, 114, 105, 0, 8, 2, 110, 107, 108, 0, 8, 2, 110, 109, 101, 108, 0, 8, 2, 110, 109, 101, 108, 0, 8, 2,
+			110, 112, 105, 98, 101, 0, 8, 2, 110, 112, 108, 97, 100, 115, 0, 8, 2, 110, 114, 97, 100, 0, 8, 2, 110, 115, 107, 105, 110, 110,
+			101, 0, 8, 2, 110, 115, 112, 195, 166, 110, 100, 0, 8, 2, 110, 116, 195, 184, 106, 0, 8, 2, 116, 97, 115, 116, 114, 195, 165, 108,
+			0, 8, 2, 116, 97, 116, 114, 111, 110, 0, 8, 2, 116, 97, 118, 101, 114, 115, 105, 111, 110, 0, 8, 2, 116, 101, 108, 0, 8, 2,
+			116, 108, 0, 101, 116, 104, 111, 118, 101, 110, 3, 71, 36, 47, 39, 84, 108, 50, 0, 101, 99, 104, 8, 3, 71, 37, 76, 0, 4, 8,
+			2, 100, 114, 101, 3, 71, 109, 0, 8, 2, 100, 114, 105, 110, 103, 0, 8, 2, 100, 115, 116, 101, 0, 8, 2, 103, 103, 101, 0, 8,
+			2, 106, 100, 115, 0, 8, 2, 108, 103, 105, 0, 8, 2, 108, 108, 97, 0, 8, 2, 110, 98, 114, 195, 166, 107, 0, 8, 2, 110, 99,
+			104, 109, 97, 114, 107, 0, 8, 2, 110, 101, 110, 100, 101, 0, 8, 2, 110, 103, 101, 108, 0, 8, 2, 110, 103, 110, 97, 0, 8, 2,
+			110, 104, 0, 8, 2, 110, 106, 97, 109, 105, 110, 0, 8, 2, 110, 108, 0, 8, 2, 110, 118, 0, 8, 2, 114, 98, 0, 8, 2, 114,
+			103, 101, 110, 32, 0, 105, 103, 101, 8, 3, 71, 109, 12, 91, 0, 114, 107, 101, 108, 101, 121, 3, 71, 118, 49, 59, 37, 0, 7, 6,
+			101, 100, 0, 4, 1, 112, 105, 99, 111, 108, 101, 118, 2, 101, 3, 6, 36, 86, 0, 1, 116, 115, 102, 97, 2, 107, 111, 109, 0, 1,
+			114, 100, 110, 117, 104, 2, 12, 3, 13, 12, 86, 0, 101, 1, 107, 121, 115, 112, 2, 108, 105, 115, 107, 3, 13, 72, 6, 36, 0, 1,
+			118, 111, 104, 3, 13, 86, 0, 101, 1, 21, 2, 32, 3, 13, 86, 13, 0, 4, 1, 110, 114, 101, 100, 2, 101, 3, 36, 86, 0, 1,
+			110, 114, 101, 104, 2, 101, 0, 4, 101, 1, 98, 108, 105, 116, 3, 36, 86, 13, 0, 101, 1, 98, 109, 101, 2, 32, 12, 0, 101, 1,
+			98, 109, 101, 2, 116, 32, 12, 0, 101, 1, 102, 2, 12, 12, 0, 101, 1, 104, 2, 12, 0, 101, 1, 107, 10, 2, 12, 0, 101, 1,
+			108, 100, 108, 105, 118, 2, 12, 0, 101, 1, 108, 100, 110, 105, 2, 12, 0, 101, 1, 108, 100, 117, 2, 12, 0, 101, 1, 108, 102, 97,
+			2, 12, 0, 101, 1, 108, 106, 101, 118, 2, 12, 0, 101, 1, 108, 110, 101, 104, 2, 12, 0, 101, 1, 108, 112, 111, 2, 12, 0, 101,
+			1, 108, 114, 111, 102, 2, 12, 0, 101, 1, 108, 115, 105, 109, 2, 12, 0, 101, 1, 108, 115, 118, 105, 108, 2, 12, 0, 101, 1, 108,
+			116, 101, 114, 2, 12, 0, 101, 1, 108, 116, 114, 111, 98, 2, 12, 0, 101, 1, 109, 115, 3, 36, 86, 108, 0, 4, 101, 114, 1, 98,
+			108, 105, 116, 3, 36, 86, 114, 0, 101, 114, 1, 102, 2, 32, 12, 0, 101, 114, 1, 104, 2, 12, 0, 101, 114, 1, 108, 100, 108, 105,
+			118, 2, 12, 0, 101, 114, 1, 108, 100, 110, 105, 2, 12, 0, 101, 114, 1, 108, 100, 117, 2, 12, 0, 101, 114, 1, 108, 102, 97, 2,
+			12, 0, 101, 114, 1, 108, 106, 101, 118, 2, 12, 0, 101, 114, 1, 108, 110, 101, 104, 2, 12, 0, 101, 114, 1, 108, 112, 111, 2, 12,
+			0, 101, 114, 1, 108, 114, 111, 102, 2, 12, 0, 101, 114, 1, 108, 115, 105, 109, 2, 12, 0, 101, 114, 1, 108, 115, 118, 105, 108, 2,
+			12, 0, 101, 114, 1, 108, 116, 101, 114, 2, 12, 0, 101, 114, 1, 108, 116, 114, 111, 98, 2, 12, 0, 101, 1, 114, 10, 2, 32, 3,
+			108, 86, 13, 0, 4, 101, 1, 108, 116, 114, 111, 98, 3, 109, 86, 13, 0, 101, 1, 114, 98, 108, 101, 104, 0, 101, 1, 114, 100, 108,
+			105, 118, 2, 32, 12, 0, 101, 1, 114, 101, 98, 2, 32, 12, 0, 101, 1, 114, 101, 108, 2, 32, 12, 0, 101, 1, 114, 101, 110, 114,
 			184, 195, 0, 101, 1, 114, 101, 115, 112, 101, 118, 104, 2, 32, 12, 0, 101, 1, 114, 101, 116, 116, 111, 114, 2, 32, 12, 0, 101, 1,
 			114, 112, 115, 2, 32, 12, 0, 101, 1, 114, 114, 101, 2, 12, 0, 101, 1, 114, 115, 118, 111, 107, 115, 108, 101, 0, 101, 1, 114, 118,
-			2, 32, 12, 0, 101, 8, 114, 98, 2, 32, 12, 0, 101, 8, 114, 102, 2, 32, 12, 0, 101, 1, 114, 101, 98, 2, 12, 3, 116, 86,
-			14, 0, 7, 6, 101, 108, 0, 105, 103, 1, 115, 10, 2, 28, 33, 3, 6, 14, 55, 111, 0, 4, 1, 100, 114, 166, 195, 115, 2, 101,
-			115, 3, 6, 36, 55, 0, 1, 117, 122, 101, 110, 101, 118, 2, 97, 0, 4, 1, 98, 111, 108, 2, 105, 97, 3, 6, 114, 55, 0, 1,
-			100, 97, 116, 105, 99, 0, 1, 100, 105, 102, 0, 1, 108, 108, 97, 104, 2, 117, 106, 97, 0, 1, 109, 97, 107, 0, 1, 115, 100, 110,
-			117, 2, 105, 103, 0, 1, 116, 114, 111, 112, 115, 0, 1, 118, 97, 106, 0, 1, 118, 117, 106, 0, 8, 105, 99, 105, 102, 102, 111, 2,
-			12, 0, 8, 110, 97, 112, 0, 4, 1, 98, 101, 114, 3, 6, 116, 55, 0, 1, 99, 114, 97, 109, 0, 1, 99, 114, 97, 112, 0, 1,
-			100, 97, 116, 114, 111, 109, 0, 1, 100, 101, 112, 2, 12, 0, 1, 100, 110, 111, 114, 0, 1, 100, 114, 97, 115, 0, 1, 101, 114, 0,
-			1, 105, 98, 114, 101, 118, 0, 1, 105, 114, 101, 116, 97, 109, 0, 1, 108, 108, 97, 114, 97, 112, 0, 1, 109, 109, 97, 114, 103, 111,
-			114, 112, 0, 1, 109, 114, 111, 102, 2, 108, 0, 1, 109, 114, 111, 102, 2, 116, 0, 1, 112, 97, 107, 0, 1, 112, 111, 114, 112, 0,
-			1, 114, 111, 102, 2, 115, 0, 1, 115, 114, 101, 118, 105, 110, 117, 0, 1, 116, 110, 97, 114, 97, 116, 0, 1, 116, 110, 101, 109, 97,
-			107, 105, 100, 101, 109, 0, 1, 116, 111, 109, 0, 1, 116, 115, 97, 112, 0, 1, 117, 2, 32, 12, 0, 1, 118, 114, 97, 102, 0, 1,
-			118, 117, 110, 0, 1, 118, 165, 195, 115, 0, 8, 98, 97, 116, 2, 32, 0, 8, 100, 97, 107, 105, 114, 102, 2, 108, 0, 8, 112, 108,
-			97, 107, 115, 0, 103, 1, 104, 101, 108, 108, 97, 2, 101, 110, 115, 3, 6, 116, 55, 57, 0, 4, 8, 114, 107, 97, 109, 2, 12, 3,
-			6, 120, 55, 0, 8, 114, 111, 102, 0, 1, 117, 2, 116, 32, 12, 12, 3, 7, 114, 55, 0, 1, 10, 2, 108, 28, 33, 12, 12, 12,
-			3, 7, 116, 0, 4, 1, 10, 2, 28, 33, 12, 12, 12, 3, 7, 116, 55, 0, 1, 10, 2, 116, 28, 33, 0, 1, 116, 97, 107, 115,
-			117, 109, 0, 1, 114, 10, 2, 108, 28, 33, 12, 12, 12, 3, 7, 120, 0, 1, 114, 10, 2, 28, 33, 12, 12, 3, 7, 120, 55, 0,
-			1, 117, 107, 115, 109, 101, 110, 110, 101, 103, 2, 105, 103, 3, 8, 14, 55, 0, 105, 103, 1, 10, 2, 28, 33, 3, 8, 14, 55, 111,
-			0, 101, 116, 1, 10, 2, 116, 28, 33, 3, 13, 55, 6, 116, 0, 101, 116, 1, 10, 2, 28, 33, 3, 13, 55, 6, 116, 47, 0, 4,
-			1, 17, 67, 2, 105, 103, 12, 3, 14, 55, 0, 1, 21, 2, 17, 65, 114, 0, 1, 21, 2, 32, 0, 1, 21, 2, 115, 0, 1, 21,
-			2, 115, 101, 0, 1, 21, 2, 116, 32, 0, 1, 21, 2, 195, 184, 115, 12, 12, 12, 0, 1, 98, 97, 116, 105, 114, 114, 105, 0, 1,
-			98, 97, 116, 107, 101, 112, 115, 101, 114, 0, 1, 98, 117, 106, 0, 1, 100, 101, 107, 2, 12, 0, 1, 100, 101, 108, 2, 115, 101, 0,
-			1, 100, 110, 97, 2, 115, 101, 0, 1, 100, 110, 97, 104, 0, 1, 100, 110, 105, 118, 107, 2, 17, 65, 0, 1, 102, 111, 106, 115, 0,
-			1, 105, 110, 97, 112, 115, 0, 1, 107, 115, 111, 108, 102, 0, 1, 107, 115, 114, 0, 1, 107, 115, 117, 109, 0, 1, 118, 166, 195, 106,
-			100, 0, 8, 114, 111, 102, 2, 105, 103, 0, 8, 114, 111, 102, 2, 195, 166, 103, 0, 101, 1, 100, 110, 105, 98, 2, 100, 3, 14, 55,
-			114, 0, 101, 103, 1, 108, 117, 106, 3, 14, 55, 136, 0, 4, 1, 100, 2, 101, 12, 3, 36, 55, 0, 1, 100, 2, 105, 110, 103, 0,
-			1, 100, 101, 107, 107, 105, 116, 115, 0, 1, 115, 2, 101, 12, 0, 1, 115, 2, 101, 32, 0, 1, 115, 2, 101, 114, 32, 0, 1, 115,
-			2, 101, 114, 115, 32, 0, 1, 116, 2, 101, 0, 4, 1, 97, 104, 99, 105, 3, 55, 0, 1, 97, 107, 105, 0, 1, 114, 100, 2, 12,
-			3, 108, 55, 0, 1, 114, 2, 115, 101, 3, 109, 55, 0, 97, 116, 105, 111, 110, 1, 114, 32, 99, 105, 108, 98, 117, 112, 3, 111, 55,
-			6, 116, 57, 91, 14, 50, 0, 4, 1, 10, 2, 101, 118, 3, 114, 55, 0, 1, 100, 2, 116, 12, 0, 1, 100, 100, 101, 109, 0, 1,
+			2, 32, 12, 0, 101, 8, 114, 98, 2, 32, 12, 0, 101, 8, 114, 102, 2, 32, 12, 0, 7, 6, 101, 108, 0, 4, 1, 98, 101, 114,
+			3, 6, 36, 55, 0, 1, 98, 111, 108, 2, 105, 97, 0, 1, 100, 97, 116, 105, 99, 0, 1, 100, 105, 102, 0, 1, 100, 110, 111, 114,
+			0, 1, 100, 114, 166, 195, 115, 2, 101, 115, 0, 1, 101, 114, 0, 1, 105, 98, 114, 101, 118, 0, 1, 108, 108, 97, 104, 2, 117, 106,
+			97, 0, 1, 109, 97, 107, 0, 1, 109, 109, 97, 114, 103, 111, 114, 112, 0, 1, 112, 111, 114, 112, 0, 1, 115, 100, 110, 117, 2, 105,
+			103, 0, 1, 115, 114, 101, 118, 105, 110, 117, 0, 1, 116, 110, 97, 114, 97, 116, 0, 1, 116, 114, 111, 112, 115, 0, 1, 117, 2, 32,
+			12, 0, 1, 117, 122, 101, 110, 101, 118, 2, 97, 0, 1, 118, 97, 106, 0, 1, 118, 117, 106, 0, 1, 118, 165, 195, 115, 0, 8, 98,
+			97, 116, 0, 8, 105, 99, 105, 102, 102, 111, 2, 12, 0, 8, 110, 97, 112, 0, 8, 112, 108, 97, 107, 115, 0, 105, 103, 1, 115, 10,
+			2, 28, 33, 3, 6, 36, 55, 37, 0, 4, 1, 99, 114, 97, 109, 3, 6, 109, 55, 0, 1, 99, 114, 97, 112, 0, 1, 100, 97, 116,
+			114, 111, 109, 0, 1, 100, 101, 112, 2, 12, 0, 1, 100, 114, 97, 115, 0, 1, 105, 114, 101, 116, 97, 109, 0, 1, 108, 108, 97, 114,
+			97, 112, 0, 1, 109, 114, 111, 102, 2, 108, 0, 1, 109, 114, 111, 102, 2, 116, 0, 1, 112, 97, 107, 0, 1, 114, 111, 102, 2, 115,
+			0, 1, 116, 110, 101, 109, 97, 107, 105, 100, 101, 109, 0, 1, 116, 111, 109, 0, 1, 116, 115, 97, 112, 0, 1, 118, 114, 97, 102, 0,
+			1, 118, 117, 110, 0, 8, 100, 97, 107, 105, 114, 102, 2, 108, 0, 103, 1, 104, 101, 108, 108, 97, 2, 101, 110, 115, 3, 6, 109, 55,
+			57, 0, 4, 8, 114, 107, 97, 109, 2, 12, 3, 6, 111, 55, 0, 8, 114, 111, 102, 0, 1, 117, 2, 116, 32, 12, 12, 3, 7, 36,
+			55, 0, 1, 10, 2, 108, 28, 33, 12, 12, 12, 3, 7, 109, 0, 4, 1, 10, 2, 28, 33, 12, 12, 12, 3, 7, 109, 55, 0, 1,
+			10, 2, 116, 28, 33, 0, 1, 116, 97, 107, 115, 117, 109, 0, 1, 114, 10, 2, 108, 28, 33, 12, 12, 12, 3, 7, 111, 0, 1, 114,
+			10, 2, 28, 33, 12, 12, 3, 7, 111, 55, 0, 105, 103, 1, 10, 2, 28, 33, 3, 8, 13, 55, 37, 0, 1, 117, 107, 115, 109, 101,
+			110, 110, 101, 103, 2, 105, 103, 3, 8, 36, 55, 0, 4, 1, 21, 2, 17, 65, 114, 3, 13, 55, 0, 1, 21, 2, 32, 0, 1, 21,
+			2, 115, 0, 1, 21, 2, 116, 32, 0, 1, 98, 97, 116, 107, 101, 112, 115, 101, 114, 0, 1, 100, 101, 107, 2, 12, 0, 1, 100, 101,
+			108, 2, 115, 101, 0, 1, 100, 110, 97, 2, 115, 101, 0, 1, 100, 110, 97, 104, 0, 1, 105, 110, 97, 112, 115, 0, 1, 107, 115, 111,
+			108, 102, 0, 1, 107, 115, 114, 0, 8, 114, 111, 102, 2, 105, 103, 0, 101, 116, 1, 10, 2, 28, 33, 3, 13, 55, 6, 109, 47, 0,
+			101, 103, 1, 108, 117, 106, 3, 13, 55, 35, 57, 0, 4, 1, 10, 2, 101, 118, 3, 36, 55, 0, 1, 21, 2, 195, 184, 115, 0, 1,
+			98, 97, 116, 0, 1, 100, 2, 101, 12, 0, 1, 100, 2, 105, 110, 103, 0, 1, 100, 2, 116, 12, 0, 1, 100, 100, 101, 109, 0, 1,
 			100, 100, 110, 97, 116, 115, 101, 98, 0, 1, 100, 100, 110, 117, 114, 0, 1, 100, 101, 2, 12, 0, 1, 100, 101, 100, 0, 1, 100, 101,
-			118, 114, 101, 115, 101, 114, 0, 1, 100, 103, 97, 98, 0, 1, 100, 107, 184, 195, 114, 98, 0, 1, 100, 110, 97, 0, 1, 100, 110, 101,
-			106, 101, 0, 1, 100, 110, 101, 118, 111, 0, 1, 100, 110, 111, 0, 1, 100, 114, 101, 100, 101, 110, 0, 1, 100, 114, 111, 102, 0, 1,
-			100, 115, 100, 110, 97, 108, 0, 1, 100, 115, 109, 101, 103, 101, 108, 0, 1, 100, 115, 110, 101, 100, 114, 101, 118, 0, 1, 100, 115, 184,
-			195, 108, 0, 1, 100, 116, 110, 101, 99, 111, 114, 112, 0, 1, 100, 118, 108, 97, 104, 0, 1, 100, 121, 98, 0, 1, 103, 110, 97, 118,
-			101, 0, 1, 109, 2, 111, 110, 0, 1, 109, 101, 100, 101, 118, 104, 0, 1, 109, 101, 116, 103, 105, 115, 0, 1, 109, 103, 117, 114, 0,
-			1, 109, 110, 101, 98, 0, 1, 109, 111, 103, 97, 115, 0, 1, 109, 115, 105, 114, 0, 1, 110, 97, 112, 0, 1, 110, 114, 111, 107, 2,
-			101, 118, 97, 116, 111, 114, 0, 1, 114, 2, 97, 116, 0, 1, 116, 2, 101, 102, 0, 2, 105, 107, 115, 105, 114, 0, 8, 104, 2, 116,
-			32, 0, 101, 114, 1, 100, 2, 12, 3, 114, 55, 109, 0, 118, 8, 115, 2, 111, 109, 32, 3, 115, 55, 0, 4, 1, 21, 2, 115, 107,
-			101, 12, 3, 116, 55, 0, 1, 98, 97, 115, 105, 0, 1, 98, 97, 116, 2, 32, 0, 1, 100, 97, 107, 105, 114, 102, 2, 108, 0, 1,
-			100, 111, 109, 0, 1, 102, 21, 2, 116, 0, 1, 104, 2, 105, 107, 111, 112, 116, 0, 1, 104, 2, 115, 116, 0, 1, 104, 2, 116, 21,
-			12, 0, 1, 104, 21, 2, 116, 0, 1, 105, 110, 97, 100, 0, 1, 105, 114, 98, 97, 103, 0, 1, 105, 116, 0, 1, 107, 115, 2, 32,
-			0, 1, 107, 115, 101, 115, 110, 166, 195, 114, 103, 0, 1, 107, 115, 107, 114, 97, 109, 0, 1, 107, 115, 114, 111, 0, 1, 109, 114, 111,
-			102, 117, 0, 1, 110, 105, 109, 105, 114, 107, 0, 1, 110, 111, 105, 116, 97, 114, 0, 1, 110, 111, 105, 116, 107, 110, 117, 102, 115, 121,
-			100, 0, 1, 110, 111, 115, 114, 101, 112, 0, 1, 112, 10, 2, 115, 32, 0, 1, 112, 100, 110, 105, 107, 115, 2, 115, 12, 0, 1, 112,
-			101, 118, 166, 195, 114, 2, 115, 12, 0, 1, 114, 2, 105, 103, 105, 12, 0, 1, 115, 2, 115, 107, 97, 0, 1, 116, 2, 116, 32, 0,
-			1, 116, 110, 101, 0, 1, 116, 111, 104, 21, 0, 1, 116, 115, 101, 108, 108, 105, 114, 98, 0, 1, 116, 115, 101, 115, 105, 112, 115, 0,
-			1, 116, 115, 101, 116, 110, 97, 118, 114, 101, 115, 0, 1, 116, 115, 114, 101, 100, 110, 117, 2, 12, 0, 1, 116, 115, 115, 103, 110, 105,
-			100, 110, 97, 108, 0, 1, 117, 116, 107, 101, 108, 108, 101, 116, 110, 105, 0, 8, 2, 17, 67, 0, 8, 112, 112, 97, 2, 115, 105, 110,
-			0, 8, 116, 115, 2, 32, 0, 8, 117, 109, 97, 115, 0, 8, 118, 0, 108, 8, 0, 118, 8, 115, 0, 108, 105, 111, 116, 3, 116, 55,
-			57, 109, 47, 0, 118, 101, 8, 115, 3, 116, 55, 84, 14, 0, 1, 114, 21, 2, 32, 12, 3, 119, 55, 0, 7, 6, 101, 110, 0, 4,
-			1, 99, 166, 195, 109, 3, 6, 114, 50, 0, 1, 108, 121, 116, 101, 109, 0, 1, 108, 121, 116, 166, 195, 0, 1, 109, 111, 110, 166, 195,
-			102, 0, 1, 114, 121, 115, 2, 101, 110, 32, 0, 1, 114, 121, 115, 2, 101, 114, 32, 0, 8, 108, 121, 116, 101, 99, 97, 0, 8, 109,
-			101, 103, 0, 8, 109, 114, 111, 102, 2, 101, 0, 8, 114, 121, 115, 32, 110, 101, 0, 4, 1, 112, 112, 97, 2, 100, 105, 107, 115, 3,
-			6, 115, 50, 0, 8, 100, 97, 2, 32, 0, 4, 1, 114, 102, 111, 122, 105, 107, 115, 3, 6, 116, 50, 0, 1, 116, 115, 105, 115, 107,
-			101, 2, 115, 0, 8, 100, 105, 115, 101, 114, 2, 115, 0, 8, 100, 105, 115, 166, 195, 114, 112, 2, 116, 0, 8, 103, 97, 2, 116, 0,
-			8, 108, 111, 112, 2, 116, 97, 0, 8, 117, 108, 102, 110, 105, 2, 122, 97, 0, 100, 1, 108, 105, 116, 2, 101, 98, 114, 0, 110, 8,
-			105, 115, 114, 101, 112, 0, 4, 116, 1, 10, 2, 32, 28, 33, 12, 12, 12, 3, 6, 116, 50, 47, 0, 116, 1, 10, 2, 101, 110, 28,
-			33, 12, 12, 0, 116, 1, 10, 2, 101, 114, 28, 33, 12, 12, 0, 4, 115, 1, 21, 2, 32, 28, 33, 12, 3, 6, 116, 50, 89, 0,
-			115, 1, 21, 2, 101, 28, 33, 12, 0, 4, 99, 101, 1, 108, 108, 101, 99, 120, 101, 2, 28, 33, 3, 6, 116, 50, 89, 20, 13, 0,
-			99, 101, 1, 110, 105, 109, 101, 2, 28, 33, 0, 100, 101, 114, 8, 108, 97, 107, 3, 6, 116, 50, 109, 0, 115, 1, 114, 21, 2, 28,
-			33, 12, 3, 6, 120, 50, 89, 0, 4, 8, 118, 101, 114, 2, 99, 104, 101, 3, 6, 122, 68, 0, 116, 1, 99, 99, 10, 2, 28, 33,
-			12, 12, 12, 0, 116, 1, 115, 101, 10, 2, 28, 33, 12, 0, 115, 101, 114, 1, 10, 2, 28, 33, 3, 7, 116, 50, 89, 109, 0, 116,
-			1, 114, 10, 2, 28, 33, 12, 12, 12, 3, 7, 120, 50, 47, 0, 99, 101, 1, 10, 2, 28, 33, 3, 7, 122, 68, 89, 20, 13, 0,
-			99, 101, 1, 10, 2, 114, 28, 33, 3, 7, 122, 68, 89, 109, 0, 4, 1, 10, 2, 32, 3, 14, 50, 0, 1, 10, 2, 116, 32, 0,
-			1, 98, 98, 105, 114, 103, 2, 101, 12, 0, 1, 98, 109, 111, 98, 2, 12, 0, 1, 98, 166, 195, 107, 2, 12, 12, 0, 1, 98, 166,
-			195, 108, 2, 12, 12, 0, 1, 100, 2, 116, 32, 0, 1, 100, 105, 115, 0, 1, 100, 114, 111, 0, 1, 102, 102, 97, 107, 115, 116, 101,
-			114, 0, 1, 107, 2, 101, 110, 0, 1, 114, 101, 105, 107, 2, 32, 24, 0, 1, 115, 100, 184, 195, 100, 2, 115, 0, 1, 116, 2, 195,
-			165, 0, 1, 116, 102, 97, 0, 1, 118, 111, 100, 2, 12, 12, 0, 100, 101, 1, 107, 107, 166, 195, 114, 116, 108, 105, 116, 2, 12, 3,
-			14, 50, 14, 0, 116, 8, 118, 101, 2, 17, 65, 12, 12, 3, 14, 50, 47, 0, 115, 1, 10, 2, 32, 12, 3, 14, 50, 89, 0, 100,
-			101, 114, 1, 21, 2, 32, 3, 14, 50, 109, 0, 1, 112, 115, 117, 115, 2, 115, 105, 111, 110, 3, 36, 50, 0, 115, 101, 1, 103, 10,
-			2, 28, 33, 3, 81, 7, 116, 50, 89, 109, 0, 1, 114, 2, 32, 3, 109, 50, 0, 115, 1, 114, 10, 2, 32, 12, 3, 109, 50, 89,
-			0, 4, 1, 98, 98, 105, 114, 2, 12, 12, 3, 114, 50, 0, 1, 98, 100, 114, 111, 98, 2, 12, 12, 0, 1, 98, 100, 184, 195, 107,
-			0, 1, 98, 100, 184, 195, 107, 2, 12, 12, 0, 1, 98, 100, 184, 195, 114, 2, 12, 12, 0, 1, 98, 101, 98, 166, 195, 107, 2, 12,
-			12, 0, 1, 98, 101, 100, 105, 115, 2, 12, 12, 0, 1, 98, 101, 103, 110, 97, 108, 2, 12, 12, 0, 1, 98, 101, 107, 115, 105, 102,
-			2, 12, 12, 0, 1, 98, 101, 107, 115, 110, 184, 195, 2, 12, 12, 0, 1, 98, 101, 108, 97, 104, 2, 12, 12, 0, 1, 98, 101, 108,
-			103, 184, 195, 0, 1, 98, 101, 108, 103, 184, 195, 110, 2, 12, 12, 0, 1, 98, 101, 108, 111, 116, 115, 2, 12, 12, 0, 1, 98, 101,
-			110, 97, 104, 2, 12, 12, 0, 1, 98, 101, 110, 110, 105, 107, 115, 0, 1, 98, 101, 114, 106, 184, 195, 104, 2, 12, 12, 0, 1, 98,
-			101, 114, 116, 115, 110, 101, 118, 2, 12, 12, 0, 1, 98, 101, 115, 107, 117, 98, 2, 12, 12, 0, 1, 98, 101, 115, 109, 97, 108, 2,
-			12, 12, 0, 1, 98, 101, 115, 115, 105, 2, 12, 12, 0, 1, 98, 101, 115, 166, 195, 110, 2, 12, 12, 0, 1, 98, 101, 116, 102, 111,
-			104, 2, 12, 12, 0, 1, 98, 101, 116, 116, 184, 195, 116, 115, 2, 12, 12, 0, 1, 98, 101, 117, 98, 108, 97, 2, 12, 12, 0, 1,
-			98, 101, 117, 108, 102, 2, 12, 12, 0, 1, 98, 103, 97, 98, 2, 12, 12, 0, 1, 98, 105, 115, 2, 12, 12, 0, 1, 98, 108, 97,
-			109, 115, 2, 12, 12, 0, 1, 98, 108, 101, 100, 108, 105, 115, 2, 12, 12, 0, 1, 98, 108, 101, 107, 110, 97, 116, 115, 0, 1, 98,
-			108, 101, 107, 110, 105, 118, 2, 12, 12, 0, 1, 98, 108, 166, 195, 104, 2, 12, 12, 0, 1, 98, 109, 97, 107, 115, 2, 12, 12, 0,
-			1, 98, 110, 101, 102, 108, 101, 2, 12, 0, 1, 98, 111, 107, 0, 1, 98, 111, 107, 2, 12, 12, 0, 1, 98, 114, 105, 102, 2, 12,
-			12, 0, 1, 98, 114, 111, 102, 2, 12, 12, 0, 1, 98, 114, 165, 195, 108, 2, 12, 12, 0, 1, 98, 115, 108, 101, 118, 101, 114, 2,
-			12, 12, 0, 1, 98, 115, 110, 114, 97, 98, 2, 12, 12, 0, 1, 98, 116, 115, 121, 114, 98, 2, 12, 12, 0, 1, 98, 118, 114, 97,
-			109, 2, 12, 12, 0, 1, 98, 165, 195, 103, 2, 12, 12, 0, 1, 98, 166, 195, 114, 116, 2, 12, 12, 0, 1, 116, 115, 2, 17, 65,
-			0, 1, 116, 115, 2, 103, 117, 108, 118, 0, 1, 116, 115, 97, 116, 117, 97, 98, 0, 1, 116, 115, 100, 110, 97, 115, 0, 1, 116, 115,
-			100, 110, 97, 116, 0, 1, 116, 115, 100, 110, 117, 114, 103, 0, 1, 116, 115, 101, 98, 105, 108, 115, 0, 1, 116, 115, 101, 100, 108, 97,
-			103, 0, 1, 116, 115, 101, 100, 110, 101, 114, 0, 1, 116, 115, 101, 100, 110, 105, 109, 0, 1, 116, 115, 101, 100, 166, 195, 114, 116, 0,
-			1, 116, 115, 101, 103, 103, 121, 98, 0, 1, 116, 115, 101, 106, 184, 195, 0, 1, 116, 115, 101, 107, 107, 111, 114, 0, 1, 116, 115, 101,
-			107, 107, 121, 109, 115, 0, 1, 116, 115, 101, 107, 110, 105, 104, 0, 1, 116, 115, 101, 107, 110, 117, 109, 0, 1, 116, 115, 101, 107, 115,
-			101, 118, 115, 0, 1, 116, 115, 101, 108, 103, 110, 97, 114, 0, 1, 116, 115, 101, 108, 108, 117, 114, 0, 1, 116, 115, 101, 108, 108, 184,
-			195, 109, 0, 1, 116, 115, 101, 110, 114, 184, 195, 106, 104, 2, 12, 0, 1, 116, 115, 101, 110, 117, 114, 0, 1, 116, 115, 101, 110, 165,
-			195, 109, 0, 1, 116, 115, 101, 112, 109, 97, 107, 0, 1, 116, 115, 101, 112, 112, 97, 114, 116, 0, 1, 116, 115, 101, 114, 121, 110, 0,
-			1, 116, 115, 101, 116, 110, 105, 108, 102, 0, 1, 116, 115, 101, 118, 184, 195, 114, 112, 0, 1, 116, 115, 102, 117, 116, 0, 1, 116, 115,
-			103, 97, 116, 0, 1, 116, 115, 103, 110, 117, 116, 0, 1, 116, 115, 107, 108, 97, 107, 0, 1, 116, 115, 107, 166, 195, 100, 0, 1, 116,
-			115, 108, 101, 100, 101, 107, 0, 1, 116, 115, 108, 101, 100, 166, 195, 0, 1, 116, 115, 108, 101, 100, 166, 195, 0, 1, 116, 115, 108, 103,
-			101, 116, 0, 1, 116, 115, 108, 111, 104, 0, 1, 116, 115, 109, 105, 108, 0, 1, 116, 115, 110, 105, 104, 114, 0, 1, 116, 115, 110, 105,
-			118, 0, 1, 116, 115, 110, 114, 166, 195, 118, 107, 0, 1, 116, 115, 111, 114, 98, 0, 1, 116, 115, 112, 109, 105, 112, 0, 1, 116, 115,
-			112, 121, 114, 100, 0, 1, 116, 115, 114, 101, 100, 97, 118, 107, 0, 1, 116, 115, 114, 101, 108, 111, 109, 0, 1, 116, 115, 114, 101, 116,
-			101, 109, 0, 1, 116, 115, 114, 111, 101, 116, 101, 109, 0, 1, 116, 115, 114, 111, 107, 115, 0, 1, 116, 115, 114, 111, 109, 114, 97, 109,
-			0, 1, 116, 115, 114, 117, 109, 0, 1, 116, 115, 116, 100, 101, 102, 0, 1, 116, 115, 116, 110, 97, 107, 0, 1, 116, 115, 116, 110, 105,
-			108, 102, 0, 1, 116, 115, 116, 117, 108, 115, 0, 1, 116, 115, 116, 117, 109, 115, 0, 1, 116, 115, 118, 97, 114, 103, 0, 1, 116, 115,
-			165, 195, 109, 115, 0, 1, 116, 115, 165, 195, 109, 115, 0, 1, 116, 115, 165, 195, 114, 103, 0, 8, 114, 117, 2, 32, 0, 116, 1, 10,
-			2, 117, 114, 28, 33, 12, 3, 114, 50, 47, 6, 0, 4, 1, 100, 105, 115, 101, 114, 2, 115, 3, 116, 50, 0, 1, 100, 105, 115, 166,
-			195, 114, 112, 2, 116, 0, 1, 103, 2, 115, 107, 0, 1, 103, 2, 115, 116, 0, 1, 103, 10, 2, 107, 101, 110, 100, 0, 1, 103, 10,
-			2, 115, 116, 0, 1, 103, 97, 2, 116, 0, 1, 106, 116, 2, 115, 116, 0, 1, 109, 2, 115, 12, 0, 1, 112, 101, 100, 0, 1, 112,
-			101, 108, 103, 117, 107, 0, 1, 112, 108, 97, 116, 101, 109, 0, 1, 112, 116, 108, 105, 102, 0, 1, 114, 103, 2, 12, 0, 1, 114, 103,
-			101, 105, 108, 111, 0, 1, 114, 103, 115, 116, 114, 111, 112, 115, 0, 1, 114, 115, 100, 108, 121, 107, 115, 0, 1, 116, 115, 105, 115, 115,
-			97, 21, 2, 116, 0, 1, 118, 2, 115, 107, 12, 0, 1, 118, 101, 107, 115, 101, 110, 110, 101, 109, 2, 12, 0, 1, 118, 101, 110, 110,
-			101, 112, 0, 1, 118, 101, 114, 121, 100, 0, 1, 118, 101, 115, 115, 184, 195, 98, 0, 1, 118, 115, 21, 2, 32, 0, 8, 114, 2, 32,
-			0, 100, 1, 107, 2, 12, 12, 12, 12, 0, 110, 1, 103, 10, 2, 101, 109, 0, 116, 1, 10, 2, 97, 108, 115, 107, 28, 33, 12, 3,
-			116, 50, 47, 6, 0, 100, 101, 114, 1, 116, 114, 97, 98, 3, 116, 50, 72, 109, 0, 115, 1, 118, 107, 3, 116, 50, 89, 0, 4, 115,
-			101, 114, 1, 10, 2, 101, 28, 33, 3, 116, 50, 89, 6, 114, 34, 0, 115, 101, 114, 1, 112, 10, 2, 32, 28, 33, 0, 116, 105, 1,
-			118, 2, 111, 110, 12, 3, 116, 50, 91, 57, 0, 100, 101, 114, 1, 115, 21, 2, 12, 3, 116, 50, 109, 0, 110, 1, 105, 99, 110, 97,
-			3, 116, 68, 0, 1, 114, 115, 98, 184, 195, 108, 102, 97, 2, 115, 3, 119, 50, 0, 100, 101, 114, 1, 114, 10, 2, 32, 3, 122, 50,
-			109, 0, 4, 1, 115, 2, 115, 105, 98, 3, 122, 68, 0, 1, 118, 101, 114, 2, 99, 104, 101, 0, 2, 32, 103, 114, 111, 115, 0, 2,
-			100, 111, 115, 0, 2, 116, 117, 115, 105, 97, 115, 0, 116, 1, 99, 99, 97, 2, 12, 0, 103, 114, 111, 115, 3, 122, 68, 81, 34, 6,
-			124, 0, 7, 6, 101, 114, 0, 101, 1, 107, 105, 114, 98, 97, 102, 2, 12, 12, 12, 12, 12, 12, 12, 39, 63, 101, 26, 3, 0, 105,
-			110, 103, 1, 17, 67, 21, 2, 12, 12, 3, 4, 114, 110, 114, 68, 0, 8, 98, 114, 97, 98, 2, 101, 12, 3, 6, 36, 34, 0, 105,
-			1, 116, 115, 2, 115, 107, 28, 33, 3, 6, 36, 34, 37, 0, 4, 116, 1, 115, 97, 108, 98, 3, 6, 36, 110, 47, 0, 116, 1, 116,
-			107, 101, 102, 102, 97, 0, 1, 105, 118, 97, 120, 3, 6, 114, 0, 4, 1, 99, 105, 102, 102, 111, 3, 6, 114, 34, 0, 1, 107, 114,
-			97, 112, 2, 32, 98, 105, 108, 0, 1, 108, 101, 118, 117, 106, 2, 101, 110, 0, 1, 109, 97, 2, 105, 107, 97, 32, 0, 1, 109, 97,
-			2, 105, 107, 97, 115, 32, 0, 1, 110, 97, 109, 2, 32, 0, 1, 115, 115, 97, 112, 2, 32, 103, 97, 100, 101, 110, 0, 1, 115, 115,
-			97, 112, 2, 115, 101, 100, 0, 1, 116, 101, 102, 97, 99, 2, 105, 0, 1, 116, 114, 111, 109, 0, 1, 116, 115, 105, 110, 21, 2, 105,
-			101, 0, 1, 116, 116, 97, 108, 102, 2, 101, 110, 100, 101, 0, 8, 98, 114, 97, 98, 2, 12, 0, 8, 102, 105, 114, 101, 112, 0, 8,
-			105, 118, 105, 114, 2, 97, 0, 8, 108, 97, 118, 97, 107, 0, 8, 108, 108, 97, 102, 2, 12, 0, 8, 110, 105, 102, 0, 8, 115, 115,
-			97, 107, 2, 101, 114, 0, 8, 116, 107, 97, 114, 97, 107, 0, 8, 116, 111, 110, 2, 32, 100, 101, 110, 0, 8, 116, 111, 110, 2, 32,
-			100, 101, 116, 0, 8, 116, 114, 97, 118, 107, 0, 8, 116, 115, 121, 109, 2, 105, 117, 0, 8, 118, 97, 108, 107, 2, 12, 12, 0, 116,
-			1, 110, 114, 111, 98, 3, 6, 114, 34, 47, 0, 4, 101, 8, 103, 97, 101, 114, 2, 32, 3, 6, 114, 109, 0, 101, 8, 105, 109, 101,
-			114, 112, 2, 21, 0, 101, 8, 115, 100, 97, 112, 115, 2, 21, 12, 0, 101, 114, 8, 110, 97, 109, 0, 101, 114, 8, 110, 97, 109, 0,
-			4, 116, 1, 107, 114, 111, 102, 3, 6, 114, 110, 47, 0, 116, 1, 110, 101, 103, 2, 12, 0, 116, 1, 110, 105, 0, 116, 1, 117, 110,
-			105, 116, 110, 111, 107, 0, 116, 1, 117, 110, 105, 116, 110, 111, 107, 115, 105, 100, 0, 116, 1, 118, 114, 101, 115, 101, 114, 0, 1, 98,
-			108, 97, 2, 116, 17, 65, 3, 6, 115, 34, 0, 110, 101, 8, 116, 117, 97, 115, 2, 12, 3, 6, 115, 34, 50, 0, 4, 110, 101, 8,
-			99, 117, 108, 2, 12, 3, 6, 115, 34, 50, 14, 0, 110, 101, 8, 100, 111, 109, 2, 12, 12, 0, 110, 101, 8, 115, 97, 107, 2, 12,
-			12, 12, 12, 12, 0, 110, 101, 8, 116, 110, 97, 108, 2, 12, 0, 110, 101, 8, 116, 115, 105, 99, 2, 12, 0, 110, 101, 8, 118, 97,
-			116, 2, 12, 0, 110, 101, 114, 8, 115, 97, 107, 2, 12, 12, 12, 12, 3, 6, 115, 34, 50, 108, 0, 4, 1, 102, 110, 105, 2, 110,
-			111, 3, 6, 116, 34, 0, 1, 116, 111, 115, 105, 2, 109, 0, 1, 118, 101, 114, 2, 115, 0, 1, 118, 104, 110, 101, 0, 1, 118, 114,
-			101, 112, 2, 115, 12, 0, 8, 108, 108, 97, 116, 2, 107, 0, 8, 115, 110, 111, 107, 2, 118, 97, 116, 105, 118, 0, 8, 115, 110, 111,
-			107, 2, 118, 101, 115, 0, 8, 115, 166, 195, 114, 112, 2, 118, 97, 116, 105, 118, 0, 8, 116, 110, 105, 2, 110, 32, 12, 12, 0, 8,
-			116, 110, 105, 2, 110, 32, 12, 12, 0, 8, 116, 110, 105, 2, 110, 101, 32, 12, 12, 12, 12, 12, 0, 8, 118, 105, 110, 117, 2, 115,
-			12, 0, 8, 118, 111, 114, 116, 110, 111, 107, 2, 115, 0, 4, 116, 1, 99, 110, 111, 107, 3, 6, 116, 34, 47, 0, 116, 1, 112, 115,
-			107, 101, 0, 116, 1, 115, 115, 101, 100, 0, 116, 1, 118, 104, 116, 101, 0, 116, 1, 118, 111, 114, 116, 110, 105, 0, 116, 1, 118, 117,
-			107, 2, 12, 12, 0, 1, 116, 108, 97, 2, 110, 97, 116, 105, 118, 3, 6, 116, 51, 0, 118, 105, 99, 101, 1, 115, 2, 101, 102, 116,
-			101, 114, 115, 121, 110, 12, 3, 6, 132, 84, 111, 89, 0, 101, 116, 1, 10, 2, 28, 33, 12, 12, 3, 7, 36, 34, 14, 86, 0, 101,
-			1, 21, 2, 114, 101, 110, 28, 33, 12, 12, 3, 7, 36, 108, 0, 4, 1, 21, 2, 101, 32, 28, 33, 12, 12, 12, 3, 7, 114, 0,
-			1, 21, 2, 101, 114, 28, 33, 12, 12, 12, 0, 1, 21, 2, 101, 116, 32, 28, 33, 12, 12, 12, 12, 0, 4, 1, 21, 2, 28, 33,
-			12, 12, 12, 3, 7, 114, 34, 0, 1, 21, 2, 32, 28, 33, 12, 12, 0, 1, 102, 97, 114, 103, 111, 116, 111, 102, 2, 32, 100, 101,
-			109, 32, 0, 1, 102, 97, 114, 103, 111, 116, 111, 102, 2, 32, 100, 101, 114, 101, 115, 32, 0, 1, 102, 97, 114, 103, 111, 116, 111, 102,
-			2, 32, 111, 115, 32, 0, 4, 101, 1, 21, 2, 32, 28, 33, 12, 12, 12, 3, 7, 114, 108, 0, 101, 1, 21, 2, 100, 101, 28, 33,
-			12, 12, 0, 101, 1, 21, 2, 114, 28, 33, 12, 12, 0, 101, 1, 21, 2, 114, 101, 28, 33, 12, 12, 12, 0, 101, 1, 21, 2, 115,
-			32, 28, 33, 12, 12, 0, 101, 1, 21, 2, 116, 28, 33, 12, 12, 0, 101, 114, 1, 108, 101, 118, 117, 106, 3, 7, 114, 109, 0, 116,
-			1, 109, 114, 111, 102, 101, 114, 3, 7, 114, 110, 47, 0, 105, 110, 103, 1, 10, 2, 28, 33, 12, 12, 3, 7, 114, 110, 114, 68, 0,
-			101, 1, 105, 21, 2, 110, 32, 28, 33, 12, 12, 3, 7, 116, 108, 0, 4, 1, 114, 21, 2, 101, 32, 28, 33, 12, 12, 12, 3, 7,
-			116, 110, 0, 1, 114, 21, 2, 101, 114, 32, 28, 33, 12, 12, 12, 0, 1, 100, 110, 97, 120, 101, 108, 97, 3, 8, 72, 109, 0, 4,
-			1, 107, 105, 10, 2, 32, 28, 33, 12, 12, 3, 8, 109, 0, 1, 107, 105, 10, 2, 115, 32, 28, 33, 12, 12, 0, 105, 1, 21, 2,
-			115, 107, 28, 33, 3, 8, 109, 34, 111, 0, 4, 1, 102, 110, 10, 2, 101, 114, 21, 3, 14, 34, 0, 1, 109, 109, 17, 65, 2, 97,
-			0, 1, 116, 114, 111, 112, 101, 114, 2, 101, 12, 0, 1, 116, 114, 111, 112, 101, 114, 2, 101, 110, 12, 0, 1, 118, 101, 108, 2, 101,
-			103, 12, 0, 1, 118, 121, 108, 102, 2, 117, 116, 101, 0, 101, 1, 110, 21, 2, 114, 101, 28, 33, 12, 12, 12, 3, 14, 34, 6, 36,
-			0, 4, 105, 1, 107, 115, 97, 118, 2, 28, 33, 3, 14, 34, 7, 111, 0, 105, 1, 116, 110, 97, 102, 110, 105, 2, 28, 33, 0, 101,
-			116, 1, 116, 108, 97, 3, 14, 34, 14, 86, 0, 105, 110, 103, 1, 108, 103, 184, 195, 110, 2, 12, 12, 12, 3, 14, 34, 115, 68, 0,
-			101, 100, 101, 8, 108, 108, 97, 2, 32, 3, 14, 34, 115, 86, 14, 0, 101, 116, 1, 116, 115, 101, 106, 184, 195, 104, 3, 14, 34, 119,
-			47, 0, 101, 110, 1, 102, 110, 10, 2, 99, 3, 14, 34, 121, 68, 0, 1, 115, 121, 108, 2, 195, 184, 100, 3, 14, 51, 0, 1, 116,
-			115, 97, 21, 2, 105, 3, 20, 13, 51, 6, 0, 101, 1, 109, 114, 101, 100, 121, 3, 36, 51, 109, 0, 1, 103, 2, 101, 12, 3, 36,
-			109, 0, 1, 118, 97, 17, 67, 2, 32, 12, 3, 108, 0, 101, 110, 1, 21, 2, 32, 3, 108, 12, 2, 108, 50, 0, 4, 110, 101, 1,
-			116, 110, 97, 108, 112, 2, 12, 12, 3, 108, 50, 14, 0, 110, 101, 1, 116, 115, 105, 99, 115, 97, 102, 2, 12, 0, 110, 101, 1, 118,
-			97, 116, 115, 2, 12, 0, 101, 1, 100, 105, 118, 3, 108, 108, 0, 4, 101, 1, 103, 110, 166, 195, 108, 3, 108, 109, 0, 101, 1, 108,
-			103, 117, 109, 115, 0, 4, 1, 17, 67, 2, 32, 3, 109, 0, 1, 18, 71, 18, 71, 0, 1, 18, 74, 2, 110, 101, 32, 0, 1, 21,
-			2, 115, 17, 67, 0, 1, 98, 111, 2, 115, 116, 0, 1, 99, 97, 114, 2, 21, 0, 1, 100, 2, 98, 121, 103, 0, 1, 100, 21, 2,
-			17, 67, 0, 1, 100, 100, 117, 0, 1, 100, 101, 108, 2, 21, 0, 1, 100, 106, 101, 112, 115, 0, 1, 100, 110, 117, 2, 12, 0, 1,
-			100, 111, 0, 1, 100, 121, 2, 21, 12, 0, 1, 100, 166, 195, 2, 21, 0, 1, 102, 102, 2, 17, 65, 116, 0, 1, 102, 102, 117, 107,
-			2, 116, 0, 1, 102, 166, 195, 104, 99, 115, 2, 21, 0, 1, 103, 2, 12, 0, 1, 103, 2, 32, 12, 12, 0, 1, 103, 114, 111, 98,
-			2, 101, 0, 1, 103, 117, 115, 2, 101, 0, 1, 106, 101, 108, 0, 1, 106, 108, 97, 100, 101, 109, 2, 12, 12, 12, 0, 1, 106, 108,
-			97, 116, 2, 25, 12, 12, 12, 12, 12, 0, 1, 106, 108, 117, 114, 116, 2, 110, 12, 12, 12, 0, 1, 106, 110, 105, 108, 2, 12, 12,
-			12, 0, 1, 107, 105, 17, 67, 2, 12, 0, 1, 107, 107, 2, 12, 0, 1, 107, 110, 117, 98, 0, 1, 107, 111, 112, 0, 1, 107, 115,
-			105, 102, 0, 1, 107, 115, 108, 101, 0, 1, 108, 103, 117, 109, 115, 0, 1, 108, 108, 105, 112, 0, 1, 108, 184, 195, 2, 12, 0, 1,
-			109, 21, 2, 115, 107, 0, 1, 109, 109, 17, 65, 2, 17, 67, 0, 1, 109, 109, 117, 0, 1, 109, 109, 117, 2, 101, 116, 0, 1, 109,
-			111, 114, 0, 1, 109, 184, 195, 114, 116, 115, 2, 21, 0, 1, 110, 97, 109, 32, 114, 101, 100, 2, 32, 0, 1, 110, 97, 109, 109, 101,
-			114, 102, 0, 1, 110, 97, 109, 111, 2, 12, 0, 1, 110, 97, 109, 114, 111, 2, 32, 0, 1, 110, 101, 105, 119, 0, 1, 110, 105, 102,
-			108, 101, 100, 0, 1, 110, 110, 117, 104, 0, 1, 110, 111, 105, 2, 32, 28, 33, 12, 12, 0, 1, 110, 116, 0, 1, 110, 166, 195, 114,
-			116, 0, 1, 112, 117, 2, 17, 67, 0, 1, 112, 121, 104, 2, 21, 0, 1, 114, 117, 109, 2, 17, 67, 0, 1, 115, 110, 97, 100, 0,
-			1, 115, 110, 97, 112, 0, 1, 115, 117, 114, 98, 0, 1, 115, 121, 103, 0, 1, 116, 2, 101, 116, 32, 0, 1, 116, 10, 2, 17, 67,
-			0, 1, 116, 101, 109, 2, 12, 0, 1, 116, 102, 101, 2, 21, 0, 1, 116, 103, 0, 1, 116, 108, 97, 0, 1, 116, 108, 111, 112, 2,
-			97, 98, 0, 1, 116, 110, 101, 100, 0, 1, 116, 110, 105, 2, 21, 0, 1, 116, 110, 105, 2, 110, 97, 116, 0, 1, 116, 112, 101, 99,
-			115, 0, 1, 116, 114, 111, 112, 101, 114, 2, 12, 0, 1, 116, 115, 105, 0, 1, 116, 115, 110, 184, 195, 2, 12, 0, 1, 116, 115, 121,
-			114, 107, 2, 21, 0, 1, 116, 116, 2, 17, 67, 12, 0, 1, 117, 97, 115, 2, 21, 0, 1, 118, 97, 114, 103, 100, 108, 117, 103, 2,
-			101, 0, 1, 118, 101, 108, 2, 17, 67, 12, 12, 0, 1, 118, 108, 97, 115, 2, 12, 12, 0, 1, 118, 108, 111, 118, 101, 114, 2, 12,
-			0, 1, 118, 111, 2, 12, 12, 12, 12, 0, 1, 118, 114, 97, 102, 2, 115, 12, 0, 1, 118, 121, 2, 12, 0, 1, 118, 166, 195, 110,
-			115, 2, 12, 12, 0, 1, 118, 184, 195, 2, 115, 116, 12, 12, 0, 8, 108, 108, 97, 0, 8, 112, 97, 107, 2, 115, 12, 12, 0, 95,
-			1, 104, 116, 0, 101, 1, 21, 2, 32, 12, 3, 109, 2, 109, 0, 101, 115, 1, 21, 2, 32, 3, 109, 2, 109, 89, 0, 101, 1, 118,
-			111, 2, 110, 115, 12, 12, 3, 109, 6, 114, 0, 1, 21, 2, 32, 24, 3, 109, 11, 0, 4, 1, 100, 111, 114, 98, 2, 101, 110, 3,
-			109, 34, 0, 1, 118, 101, 108, 2, 101, 110, 12, 0, 101, 110, 115, 1, 21, 2, 32, 3, 109, 34, 2, 109, 50, 89, 0, 105, 1, 21,
-			2, 28, 33, 12, 12, 3, 109, 34, 6, 111, 0, 101, 116, 1, 21, 2, 32, 3, 109, 34, 109, 86, 0, 105, 1, 118, 184, 195, 114, 21,
-			3, 109, 34, 111, 0, 110, 101, 1, 100, 21, 2, 12, 12, 3, 109, 42, 13, 0, 116, 1, 21, 2, 115, 32, 3, 109, 47, 0, 110, 101,
-			1, 21, 2, 32, 12, 12, 12, 12, 12, 3, 109, 50, 14, 0, 110, 101, 115, 1, 21, 2, 32, 3, 109, 50, 14, 89, 0, 4, 110, 101,
-			1, 103, 110, 105, 102, 2, 109, 3, 109, 50, 116, 0, 110, 101, 1, 116, 110, 105, 2, 116, 12, 0, 4, 1, 103, 110, 105, 102, 2, 101,
-			110, 3, 109, 51, 0, 1, 118, 121, 2, 105, 0, 105, 1, 17, 67, 2, 32, 12, 3, 109, 51, 6, 37, 0, 105, 1, 17, 67, 2, 101,
-			116, 32, 12, 3, 109, 51, 6, 111, 0, 4, 116, 1, 21, 2, 32, 3, 109, 72, 0, 116, 1, 98, 109, 97, 108, 115, 0, 115, 1, 21,
-			2, 32, 3, 109, 89, 0, 115, 116, 101, 1, 21, 2, 32, 3, 109, 89, 72, 14, 0, 101, 1, 114, 2, 32, 3, 109, 109, 0, 1, 100,
-			110, 117, 104, 3, 112, 34, 0, 1, 112, 115, 101, 100, 2, 97, 116, 3, 112, 51, 0, 4, 1, 100, 2, 102, 114, 97, 3, 114, 34, 0,
-			1, 100, 114, 117, 2, 101, 116, 0, 1, 102, 97, 114, 103, 111, 116, 111, 102, 110, 101, 103, 2, 101, 0, 1, 102, 105, 114, 101, 112, 0,
-			1, 103, 2, 97, 110, 105, 0, 1, 103, 2, 109, 97, 110, 115, 0, 1, 103, 2, 116, 0, 1, 103, 115, 121, 110, 2, 114, 105, 0, 1,
-			106, 102, 2, 32, 0, 1, 107, 114, 111, 102, 2, 116, 12, 0, 1, 108, 98, 2, 101, 0, 1, 108, 100, 184, 195, 114, 0, 1, 108, 108,
-			97, 2, 103, 0, 1, 109, 109, 111, 107, 2, 99, 105, 101, 108, 0, 1, 110, 105, 102, 0, 1, 112, 101, 116, 114, 111, 115, 0, 1, 112,
-			103, 105, 116, 103, 105, 118, 0, 1, 116, 2, 97, 112, 12, 0, 1, 116, 105, 99, 21, 2, 101, 0, 1, 116, 107, 97, 114, 97, 107, 0,
-			1, 116, 114, 97, 118, 107, 0, 1, 116, 115, 2, 101, 111, 0, 1, 116, 115, 2, 108, 105, 110, 103, 0, 1, 116, 115, 105, 110, 105, 109,
-			21, 2, 105, 0, 1, 116, 115, 121, 104, 2, 105, 0, 1, 118, 2, 97, 110, 100, 97, 12, 0, 1, 118, 2, 114, 32, 0, 1, 118, 97,
-			108, 107, 2, 12, 12, 0, 1, 118, 97, 114, 103, 21, 2, 101, 0, 1, 118, 105, 2, 101, 116, 0, 8, 104, 2, 32, 0, 8, 107, 115,
-			2, 32, 0, 8, 108, 2, 32, 12, 12, 0, 8, 110, 101, 103, 2, 116, 0, 8, 110, 115, 2, 32, 0, 8, 115, 2, 32, 0, 8, 115,
-			114, 101, 118, 111, 0, 8, 116, 2, 32, 0, 101, 116, 1, 116, 110, 101, 105, 114, 111, 3, 114, 34, 14, 86, 0, 101, 1, 116, 111, 110,
-			21, 3, 114, 108, 0, 4, 101, 1, 99, 3, 114, 109, 0, 101, 1, 99, 117, 100, 111, 114, 112, 21, 0, 101, 1, 100, 114, 117, 118, 2,
-			32, 0, 101, 1, 103, 97, 101, 114, 2, 32, 0, 101, 1, 110, 111, 105, 115, 110, 101, 112, 21, 0, 101, 1, 115, 97, 98, 21, 0, 101,
-			1, 115, 105, 116, 97, 109, 97, 114, 100, 21, 0, 101, 1, 116, 97, 108, 101, 114, 0, 101, 1, 116, 117, 107, 115, 105, 100, 0, 101, 1,
-			118, 101, 108, 102, 97, 0, 101, 114, 1, 110, 97, 109, 0, 4, 1, 103, 2, 110, 12, 12, 3, 115, 34, 0, 8, 112, 2, 32, 0, 4,
-			110, 1, 100, 111, 109, 2, 105, 12, 3, 115, 34, 50, 0, 110, 101, 1, 116, 117, 97, 115, 2, 12, 0, 4, 110, 101, 1, 99, 117, 108,
-			2, 12, 3, 115, 34, 50, 14, 0, 110, 101, 1, 100, 111, 109, 2, 12, 12, 0, 110, 101, 1, 115, 97, 107, 21, 2, 12, 12, 12, 12,
-			0, 110, 101, 1, 116, 110, 97, 108, 112, 111, 116, 2, 12, 12, 0, 110, 101, 1, 116, 115, 105, 99, 2, 12, 0, 110, 101, 1, 118, 97,
-			116, 2, 12, 0, 1, 116, 2, 114, 3, 116, 0, 4, 1, 21, 2, 102, 97, 114, 105, 3, 116, 34, 0, 1, 102, 2, 110, 105, 0, 1,
-			103, 2, 100, 97, 0, 1, 103, 2, 104, 97, 114, 25, 0, 1, 103, 2, 114, 105, 103, 0, 1, 104, 2, 108, 105, 12, 0, 1, 104, 2,
-			115, 12, 12, 0, 1, 104, 101, 98, 2, 115, 107, 0, 1, 106, 116, 115, 2, 116, 0, 1, 110, 2, 118, 12, 0, 1, 112, 21, 2, 115,
-			111, 110, 0, 1, 115, 2, 116, 12, 0, 1, 115, 2, 118, 12, 0, 1, 116, 2, 109, 105, 110, 0, 1, 116, 2, 109, 111, 0, 1, 116,
-			2, 110, 105, 12, 0, 1, 116, 2, 112, 0, 1, 116, 2, 114, 105, 101, 114, 0, 1, 116, 115, 2, 111, 108, 0, 1, 118, 2, 100, 21,
-			12, 12, 0, 1, 118, 2, 115, 105, 101, 108, 0, 1, 118, 104, 2, 12, 0, 1, 118, 105, 110, 117, 0, 1, 118, 115, 2, 105, 103, 101,
-			0, 8, 2, 103, 111, 0, 8, 18, 71, 0, 8, 103, 2, 110, 101, 32, 12, 0, 8, 103, 2, 116, 97, 12, 0, 8, 118, 2, 115, 32,
-			0, 114, 1, 103, 114, 166, 195, 0, 8, 2, 17, 67, 3, 116, 34, 6, 0, 4, 115, 1, 21, 2, 116, 97, 116, 3, 116, 34, 89, 0,
-			115, 1, 102, 2, 107, 0, 101, 1, 114, 101, 112, 111, 3, 116, 108, 0, 101, 1, 114, 116, 2, 12, 12, 3, 116, 109, 0, 4, 1, 106,
-			2, 103, 3, 116, 110, 0, 1, 106, 2, 110, 12, 12, 12, 12, 12, 12, 12, 0, 8, 2, 32, 3, 118, 34, 0, 114, 195, 166, 110, 1,
-			116, 3, 118, 34, 6, 118, 68, 0, 114, 111, 114, 1, 116, 3, 118, 110, 108, 0, 114, 111, 1, 116, 2, 114, 105, 115, 116, 3, 118, 110,
-			125, 0, 98, 121, 1, 100, 3, 121, 12, 71, 37, 0, 4, 1, 112, 2, 114, 111, 110, 3, 122, 0, 1, 116, 2, 114, 97, 115, 115, 0,
-			1, 115, 2, 118, 105, 99, 101, 110, 3, 132, 0, 110, 105, 101, 8, 3, 132, 12, 50, 37, 0, 103, 105, 101, 1, 102, 3, 132, 12, 81,
-			37, 0, 110, 111, 110, 1, 118, 2, 12, 12, 3, 132, 50, 14, 50, 0, 118, 105, 99, 101, 109, 105, 110, 100, 101, 116, 1, 115, 3, 132,
-			84, 37, 89, 65, 121, 57, 50, 72, 14, 86, 0, 4, 118, 105, 99, 101, 1, 115, 2, 102, 97, 103, 3, 132, 84, 111, 89, 0, 118, 105,
-			99, 101, 1, 115, 2, 109, 101, 100, 0, 118, 105, 99, 101, 1, 115, 2, 115, 101, 107, 116, 111, 114, 0, 118, 105, 99, 101, 1, 115, 2,
-			115, 116, 97, 116, 105, 111, 110, 0, 118, 105, 99, 101, 1, 115, 2, 121, 100, 101, 108, 115, 101, 0, 118, 105, 99, 101, 1, 115, 101, 100,
-			110, 117, 107, 0, 118, 105, 99, 101, 1, 115, 109, 111, 111, 114, 0, 109, 111, 110, 116, 1, 118, 3, 133, 12, 65, 6, 108, 50, 47, 0,
-			7, 6, 101, 116, 0, 8, 98, 101, 103, 2, 12, 3, 6, 36, 47, 0, 4, 1, 111, 112, 2, 12, 12, 3, 6, 114, 47, 0, 1, 114,
-			107, 101, 100, 2, 12, 0, 1, 116, 105, 2, 32, 12, 0, 1, 116, 105, 2, 115, 32, 12, 0, 8, 98, 97, 102, 108, 97, 0, 8, 98,
-			105, 116, 0, 8, 102, 111, 114, 112, 0, 8, 107, 115, 97, 0, 8, 110, 97, 108, 112, 0, 8, 112, 97, 116, 0, 8, 112, 109, 111, 114,
-			116, 0, 8, 116, 114, 101, 98, 117, 112, 0, 101, 114, 1, 109, 10, 3, 6, 114, 47, 109, 0, 4, 1, 107, 110, 97, 108, 98, 32, 110,
-			101, 3, 6, 115, 47, 0, 8, 114, 107, 101, 115, 2, 12, 0, 4, 1, 98, 114, 111, 115, 3, 6, 116, 0, 1, 108, 101, 104, 99, 105,
-			109, 0, 4, 1, 99, 97, 102, 2, 12, 3, 6, 116, 47, 0, 1, 99, 97, 109, 114, 101, 112, 115, 0, 1, 99, 110, 105, 112, 0, 1,
-			102, 97, 116, 115, 0, 1, 102, 102, 97, 116, 115, 0, 1, 108, 117, 109, 97, 0, 1, 110, 111, 105, 114, 97, 109, 0, 1, 110, 111, 115,
-			32, 110, 101, 0, 1, 114, 97, 107, 2, 12, 12, 0, 1, 114, 107, 110, 111, 107, 0, 1, 115, 111, 108, 107, 0, 1, 117, 100, 21, 2,
-			32, 0, 1, 117, 100, 32, 101, 103, 110, 121, 115, 2, 32, 0, 1, 117, 100, 32, 103, 110, 97, 115, 2, 32, 0, 1, 117, 100, 32, 110,
-			101, 2, 32, 0, 1, 117, 100, 32, 114, 101, 103, 110, 121, 115, 2, 32, 0, 1, 117, 100, 32, 116, 101, 103, 110, 117, 115, 2, 32, 0,
-			1, 117, 114, 105, 112, 0, 8, 100, 97, 107, 2, 12, 0, 8, 103, 100, 117, 98, 0, 8, 105, 118, 114, 101, 115, 0, 8, 107, 105, 114,
-			98, 0, 8, 107, 111, 107, 0, 8, 107, 114, 97, 112, 0, 8, 107, 115, 97, 107, 0, 8, 108, 105, 111, 116, 0, 8, 108, 105, 111, 116,
-			0, 8, 108, 108, 105, 98, 0, 8, 110, 105, 114, 97, 108, 107, 0, 8, 110, 111, 106, 97, 98, 0, 8, 115, 108, 97, 102, 0, 8, 115,
-			114, 111, 107, 32, 116, 101, 0, 8, 116, 110, 105, 118, 107, 0, 8, 116, 114, 97, 118, 107, 0, 116, 1, 110, 111, 105, 114, 97, 109, 0,
-			116, 1, 110, 111, 115, 2, 101, 0, 116, 1, 115, 111, 108, 107, 0, 116, 8, 105, 118, 114, 101, 115, 0, 116, 8, 107, 115, 97, 107, 0,
-			116, 8, 108, 108, 105, 98, 0, 116, 8, 110, 111, 106, 97, 98, 0, 116, 101, 8, 103, 114, 111, 101, 103, 0, 116, 101, 8, 117, 103, 97,
-			98, 0, 4, 116, 101, 8, 103, 97, 114, 102, 102, 117, 115, 3, 6, 116, 47, 14, 0, 116, 101, 8, 103, 114, 117, 111, 99, 0, 116, 101,
-			8, 107, 97, 108, 112, 0, 116, 101, 8, 107, 111, 107, 0, 116, 101, 8, 107, 115, 105, 100, 0, 116, 101, 8, 108, 105, 111, 116, 0, 116,
-			101, 8, 108, 108, 101, 118, 111, 110, 0, 116, 101, 8, 108, 111, 99, 105, 110, 0, 116, 101, 8, 108, 117, 111, 114, 0, 116, 101, 8, 108,
-			121, 0, 116, 101, 8, 109, 108, 97, 112, 0, 116, 101, 8, 110, 97, 105, 112, 0, 116, 101, 8, 110, 105, 101, 114, 0, 116, 101, 8, 110,
-			117, 114, 98, 0, 116, 101, 8, 112, 105, 112, 0, 116, 101, 8, 114, 111, 98, 109, 97, 106, 0, 116, 101, 8, 114, 117, 98, 0, 116, 101,
-			8, 115, 105, 109, 101, 104, 99, 0, 116, 101, 8, 115, 105, 117, 113, 114, 97, 109, 0, 116, 101, 8, 115, 117, 109, 0, 116, 101, 8, 117,
-			116, 97, 116, 115, 0, 116, 101, 8, 118, 117, 99, 0, 116, 101, 114, 8, 117, 116, 97, 116, 115, 3, 6, 116, 47, 108, 0, 4, 116, 101,
-			8, 114, 98, 117, 111, 115, 3, 6, 117, 47, 14, 0, 116, 101, 8, 114, 103, 105, 97, 110, 105, 118, 0, 1, 116, 105, 10, 2, 28, 33,
-			12, 3, 7, 114, 47, 0, 4, 8, 107, 105, 116, 101, 3, 7, 116, 47, 0, 8, 108, 111, 105, 118, 2, 12, 0, 116, 101, 8, 107, 105,
-			116, 101, 3, 7, 116, 47, 14, 0, 4, 1, 102, 111, 114, 112, 2, 105, 3, 14, 47, 0, 1, 105, 114, 114, 97, 104, 0, 1, 114, 2,
-			195, 184, 106, 12, 0, 1, 114, 107, 101, 115, 2, 195, 166, 114, 0, 4, 1, 21, 2, 32, 12, 3, 14, 86, 0, 1, 103, 97, 116, 0,
-			1, 108, 112, 109, 101, 116, 115, 0, 1, 116, 110, 105, 0, 1, 117, 100, 110, 105, 118, 2, 32, 0, 1, 118, 97, 2, 32, 12, 0, 115,
-			1, 21, 2, 32, 12, 3, 14, 86, 89, 0, 95, 1, 114, 111, 102, 3, 47, 0, 4, 1, 100, 114, 111, 2, 32, 3, 108, 86, 0, 1,
-			114, 21, 2, 32, 12, 0, 1, 114, 100, 110, 166, 195, 2, 12, 3, 109, 86, 0, 4, 1, 98, 97, 102, 108, 97, 3, 114, 47, 0, 1,
-			98, 105, 116, 0, 1, 102, 111, 114, 112, 0, 1, 112, 97, 116, 0, 1, 112, 109, 111, 114, 116, 0, 1, 115, 108, 105, 116, 0, 1, 115,
-			109, 101, 110, 110, 101, 103, 0, 1, 115, 114, 101, 118, 111, 0, 8, 107, 115, 0, 8, 115, 2, 32, 12, 0, 8, 115, 100, 110, 105, 2,
-			32, 0, 8, 115, 101, 100, 108, 105, 0, 8, 115, 117, 2, 32, 0, 4, 1, 105, 118, 114, 101, 115, 3, 116, 47, 0, 1, 107, 105, 114,
-			98, 0, 1, 107, 114, 97, 112, 101, 0, 1, 107, 115, 97, 107, 21, 0, 1, 108, 98, 97, 116, 0, 1, 108, 101, 109, 111, 0, 1, 108,
-			101, 114, 166, 195, 112, 2, 12, 0, 1, 108, 105, 111, 116, 0, 1, 108, 108, 97, 98, 122, 122, 97, 106, 0, 1, 108, 108, 105, 98, 0,
-			1, 108, 111, 105, 118, 0, 1, 108, 112, 2, 12, 0, 1, 108, 112, 17, 65, 2, 12, 0, 1, 108, 112, 100, 108, 117, 103, 0, 1, 108,
-			112, 109, 97, 107, 115, 0, 1, 108, 112, 114, 101, 118, 101, 108, 0, 1, 108, 112, 115, 2, 12, 0, 1, 108, 112, 116, 115, 117, 114, 0,
-			1, 108, 112, 118, 108, 184, 195, 115, 0, 1, 108, 114, 97, 116, 115, 0, 1, 110, 97, 116, 97, 100, 0, 1, 110, 101, 103, 97, 108, 102,
-			117, 109, 97, 107, 0, 1, 110, 101, 107, 115, 105, 102, 0, 1, 110, 101, 108, 103, 117, 0, 1, 110, 105, 114, 97, 108, 107, 0, 1, 110,
-			108, 101, 2, 12, 0, 1, 110, 111, 106, 97, 98, 0, 1, 110, 114, 165, 195, 104, 0, 1, 114, 107, 101, 115, 21, 0, 1, 116, 110, 105,
-			118, 107, 0, 1, 116, 114, 97, 118, 107, 0, 8, 115, 115, 97, 98, 0, 116, 1, 107, 115, 97, 107, 21, 0, 116, 1, 108, 98, 97, 116,
-			0, 116, 1, 108, 105, 111, 116, 0, 116, 1, 108, 108, 105, 98, 0, 116, 1, 108, 112, 2, 12, 0, 116, 1, 110, 101, 103, 97, 108, 102,
-			117, 109, 97, 107, 0, 43, 8, 114, 3, 120, 47, 0, 7, 6, 103, 101, 0, 4, 8, 101, 110, 97, 109, 3, 8, 91, 14, 0, 8, 101,
-			116, 114, 111, 107, 0, 4, 1, 111, 108, 111, 107, 121, 2, 110, 3, 14, 0, 1, 111, 108, 111, 116, 107, 111, 114, 112, 2, 110, 0, 1,
-			108, 184, 195, 102, 3, 57, 14, 0, 114, 1, 108, 184, 195, 102, 3, 57, 109, 0, 4, 1, 111, 108, 97, 104, 2, 110, 3, 81, 6, 114,
-			0, 8, 97, 2, 114, 101, 0, 4, 2, 110, 105, 97, 108, 3, 81, 114, 0, 2, 110, 105, 116, 97, 108, 0, 2, 110, 105, 116, 105, 118,
-			0, 8, 2, 110, 101, 114, 101, 114, 101, 32, 0, 4, 2, 98, 101, 116, 3, 81, 114, 6, 0, 2, 98, 105, 115, 0, 2, 98, 111, 109,
-			109, 101, 114, 108, 105, 103, 0, 2, 98, 114, 111, 107, 107, 101, 110, 0, 2, 98, 114, 195, 166, 107, 107, 101, 108, 105, 103, 0, 2, 98,
-			121, 114, 0, 2, 98, 195, 166, 114, 100, 101, 0, 2, 100, 105, 103, 101, 110, 0, 2, 100, 117, 108, 103, 116, 0, 2, 104, 97, 108, 116,
-			0, 2, 104, 101, 106, 109, 101, 114, 195, 165, 100, 0, 2, 104, 101, 110, 110, 97, 0, 2, 104, 195, 166, 110, 103, 0, 2, 104, 195, 184,
-			114, 0, 2, 108, 97, 115, 115, 101, 110, 0, 2, 108, 101, 100, 0, 2, 108, 101, 106, 100, 101, 0, 2, 108, 105, 110, 100, 101, 0, 2,
-			108, 195, 166, 110, 100, 101, 114, 0, 2, 109, 97, 107, 0, 2, 109, 97, 108, 0, 2, 109, 101, 110, 0, 2, 109, 121, 115, 101, 0, 2,
-			109, 121, 116, 0, 2, 109, 121, 116, 108, 105, 103, 0, 2, 110, 111, 109, 0, 2, 110, 116, 105, 108, 0, 2, 110, 117, 105, 110, 0, 2,
-			114, 97, 110, 105, 101, 0, 2, 114, 97, 110, 105, 117, 109, 0, 2, 114, 195, 165, 100, 101, 0, 2, 115, 97, 110, 100, 116, 0, 2, 115,
-			105, 109, 115, 0, 2, 115, 107, 195, 166, 102, 116, 105, 103, 0, 2, 115, 112, 101, 110, 115, 116, 0, 2, 115, 116, 97, 103, 101, 110, 0,
-			2, 115, 116, 97, 108, 116, 0, 2, 115, 116, 105, 107, 0, 2, 115, 118, 101, 106, 115, 110, 105, 110, 103, 0, 2, 115, 118, 105, 110, 100,
-			116, 0, 2, 118, 97, 108, 100, 105, 103, 0, 2, 118, 97, 108, 116, 0, 2, 118, 97, 110, 100, 116, 0, 2, 118, 105, 110, 100, 0, 2,
-			118, 105, 114, 0, 2, 118, 195, 166, 107, 115, 116, 0, 2, 118, 195, 166, 114, 0, 8, 2, 112, 97, 114, 100, 0, 8, 2, 115, 106, 195,
-			166, 102, 116, 0, 8, 2, 118, 105, 110, 115, 116, 0, 110, 101, 114, 101, 108, 8, 3, 81, 114, 50, 14, 34, 6, 120, 55, 0, 2, 110,
-			105, 110, 118, 101, 115, 116, 3, 81, 116, 0, 114, 2, 110, 105, 110, 103, 3, 81, 116, 34, 0, 110, 105, 2, 110, 100, 3, 81, 116, 50,
-			36, 0, 114, 109, 97, 105, 110, 3, 90, 115, 34, 65, 6, 118, 68, 0, 4, 1, 97, 100, 110, 97, 98, 2, 114, 101, 3, 91, 6, 114,
-			0, 1, 97, 103, 2, 114, 101, 0, 1, 97, 103, 110, 101, 2, 114, 101, 0, 1, 97, 110, 101, 109, 2, 114, 101, 0, 1, 97, 114, 97,
-			103, 2, 114, 101, 0, 1, 97, 114, 117, 111, 102, 2, 114, 101, 0, 1, 101, 116, 111, 114, 112, 2, 114, 101, 0, 1, 105, 108, 103, 101,
-			110, 2, 114, 101, 0, 1, 110, 97, 104, 99, 2, 114, 101, 0, 1, 110, 97, 114, 2, 114, 101, 0, 1, 110, 97, 114, 100, 110, 105, 2,
-			114, 101, 0, 1, 110, 97, 114, 100, 117, 2, 114, 101, 0, 1, 110, 97, 114, 114, 97, 2, 114, 101, 0, 1, 111, 108, 2, 114, 101, 0,
-			1, 111, 108, 100, 110, 105, 2, 114, 101, 0, 1, 114, 97, 104, 99, 2, 114, 101, 0, 1, 114, 117, 2, 114, 101, 0, 1, 117, 106, 2,
-			114, 101, 0, 1, 100, 117, 98, 2, 116, 3, 91, 6, 116, 0, 4, 1, 101, 110, 97, 109, 3, 91, 14, 0, 1, 111, 108, 2, 98, 114,
-			111, 0, 1, 111, 108, 2, 109, 195, 184, 0, 1, 111, 108, 2, 110, 0, 1, 111, 108, 21, 0, 1, 111, 108, 114, 101, 114, 117, 109, 105,
-			114, 102, 0, 8, 111, 108, 2, 32, 0, 8, 2, 110, 101, 32, 3, 91, 36, 0, 114, 8, 111, 108, 2, 32, 3, 91, 108, 0, 1, 101,
-			116, 114, 111, 107, 3, 91, 112, 0, 4, 2, 110, 101, 114, 116, 3, 91, 114, 0, 2, 110, 101, 114, 195, 184, 115, 0, 2, 110, 105, 0,
-			8, 2, 110, 101, 114, 101, 0, 8, 2, 110, 101, 118, 101, 114, 0, 110, 101, 114, 2, 32, 109, 105, 103, 3, 91, 114, 50, 6, 114, 34,
-			0, 110, 101, 114, 101, 2, 32, 109, 105, 103, 3, 91, 114, 50, 6, 114, 108, 0, 7, 6, 105, 103, 0, 101, 2, 12, 12, 3, 4, 37,
-			14, 0, 1, 114, 116, 110, 105, 2, 12, 3, 6, 37, 0, 101, 1, 116, 108, 111, 118, 3, 6, 37, 12, 91, 0, 1, 100, 114, 166, 195,
-			118, 2, 101, 110, 115, 116, 97, 110, 100, 3, 6, 37, 81, 0, 1, 10, 2, 28, 33, 12, 12, 3, 8, 37, 0, 4, 1, 100, 101, 110,
-			115, 3, 37, 0, 1, 100, 105, 115, 110, 101, 103, 0, 1, 100, 108, 0, 1, 100, 110, 166, 195, 104, 101, 98, 0, 1, 100, 121, 0, 101,
-			114, 8, 115, 2, 32, 3, 37, 12, 34, 0, 4, 101, 1, 110, 115, 2, 12, 3, 37, 14, 0, 101, 1, 115, 2, 12, 12, 0, 101, 1,
-			116, 115, 2, 12, 0, 4, 101, 110, 1, 102, 3, 37, 14, 50, 0, 101, 110, 1, 112, 2, 12, 0, 101, 116, 2, 12, 3, 37, 14, 86,
-			0, 4, 1, 108, 2, 97, 12, 12, 3, 37, 81, 0, 1, 114, 105, 100, 2, 101, 110, 116, 0, 4, 101, 1, 108, 105, 118, 105, 114, 112,
-			3, 37, 81, 6, 36, 0, 101, 1, 114, 101, 2, 114, 101, 0, 101, 114, 105, 97, 1, 110, 3, 37, 81, 6, 36, 51, 37, 117, 0, 4,
-			101, 1, 100, 101, 114, 2, 114, 3, 37, 81, 6, 114, 0, 101, 1, 114, 105, 100, 2, 114, 0, 101, 1, 114, 114, 2, 114, 0, 101, 1,
-			118, 97, 110, 2, 114, 0, 4, 101, 1, 108, 108, 101, 116, 110, 105, 2, 110, 3, 37, 81, 6, 116, 0, 101, 2, 110, 110, 12, 0, 101,
-			1, 110, 2, 114, 105, 3, 37, 81, 36, 0, 101, 114, 8, 110, 2, 32, 3, 37, 81, 108, 0, 115, 1, 114, 107, 3, 37, 89, 0, 101,
-			110, 1, 108, 105, 100, 2, 99, 101, 3, 37, 91, 6, 121, 68, 0, 4, 101, 114, 1, 108, 111, 114, 3, 37, 108, 0, 101, 114, 2, 12,
-			12, 0, 101, 114, 2, 32, 12, 12, 0, 4, 1, 100, 97, 116, 115, 3, 111, 0, 1, 108, 21, 2, 17, 67, 0, 1, 108, 108, 101, 107,
-			115, 114, 111, 102, 0, 1, 108, 111, 98, 2, 12, 0, 1, 108, 114, 117, 116, 97, 110, 0, 1, 115, 100, 105, 104, 0, 1, 115, 100, 111,
-			114, 116, 0, 1, 115, 100, 117, 109, 115, 0, 1, 115, 100, 117, 112, 0, 1, 115, 100, 117, 112, 2, 116, 0, 1, 116, 115, 2, 98, 0,
-			1, 116, 116, 97, 102, 0, 2, 32, 0, 2, 104, 101, 100, 12, 0, 2, 115, 0, 4, 1, 108, 2, 101, 110, 101, 3, 111, 14, 0, 101,
-			1, 100, 2, 110, 100, 101, 0, 101, 1, 114, 107, 2, 110, 0, 101, 1, 118, 2, 110, 0, 116, 1, 21, 2, 32, 3, 111, 47, 0, 1,
-			112, 2, 32, 3, 111, 49, 0, 116, 1, 110, 101, 103, 184, 195, 100, 3, 111, 49, 47, 0, 1, 110, 115, 3, 111, 57, 0, 4, 1, 107,
-			100, 117, 3, 111, 81, 0, 1, 108, 2, 114, 97, 109, 0, 8, 107, 2, 32, 0, 101, 2, 110, 32, 12, 3, 111, 81, 6, 116, 0, 101,
-			97, 1, 114, 102, 2, 114, 3, 111, 81, 111, 0, 4, 8, 108, 2, 32, 103, 111, 100, 116, 3, 114, 49, 0, 8, 108, 2, 32, 110, 101,
-			100, 0, 8, 108, 2, 32, 111, 114, 100, 101, 110, 116, 108, 105, 103, 116, 0, 8, 108, 2, 32, 112, 195, 166, 110, 116, 0, 8, 108, 2,
-			32, 114, 111, 108, 105, 103, 116, 0, 8, 108, 2, 32, 115, 116, 105, 108, 108, 101, 0, 4, 1, 100, 2, 116, 101, 3, 114, 81, 0, 1,
-			100, 97, 100, 100, 101, 2, 116, 0, 1, 100, 97, 115, 111, 114, 112, 2, 116, 0, 1, 100, 101, 100, 166, 195, 109, 115, 2, 116, 0, 1,
-			100, 101, 116, 108, 101, 104, 2, 116, 0, 1, 100, 101, 116, 109, 166, 195, 107, 115, 2, 116, 0, 1, 100, 112, 111, 2, 116, 0, 1, 100,
-			117, 107, 105, 97, 104, 2, 116, 0, 1, 108, 112, 2, 116, 12, 0, 1, 115, 100, 2, 116, 12, 0, 1, 115, 110, 2, 116, 12, 0, 1,
-			115, 112, 111, 2, 116, 12, 0, 1, 118, 115, 2, 116, 12, 0, 8, 98, 2, 32, 0, 8, 100, 2, 116, 0, 103, 1, 108, 2, 101, 12,
-			12, 0, 103, 101, 114, 1, 110, 3, 114, 81, 109, 0, 104, 116, 1, 108, 3, 136, 47, 0, 104, 116, 121, 1, 109, 3, 136, 47, 37, 0,
-			7, 6, 105, 110, 0, 4, 1, 21, 2, 97, 28, 33, 12, 3, 6, 37, 50, 0, 1, 21, 2, 101, 28, 33, 12, 0, 4, 101, 1, 10,
-			2, 28, 33, 3, 6, 37, 50, 14, 0, 101, 1, 10, 2, 116, 114, 121, 107, 28, 33, 0, 101, 1, 10, 2, 114, 28, 33, 3, 6, 37,
-			50, 109, 0, 4, 1, 21, 2, 28, 33, 12, 12, 3, 6, 111, 50, 0, 1, 116, 97, 108, 10, 2, 28, 33, 0, 1, 116, 110, 97, 122,
-			121, 98, 0, 101, 1, 112, 112, 10, 2, 114, 101, 28, 33, 3, 6, 111, 50, 109, 0, 4, 1, 115, 115, 97, 10, 2, 28, 33, 3, 6,
-			116, 68, 0, 1, 116, 97, 10, 2, 28, 33, 0, 4, 1, 108, 101, 118, 2, 102, 111, 114, 109, 101, 114, 101, 116, 3, 36, 50, 0, 100,
-			2, 104, 111, 108, 100, 0, 1, 122, 110, 101, 98, 2, 12, 3, 111, 50, 0, 1, 10, 2, 97, 114, 28, 33, 3, 111, 50, 6, 0, 101,
-			1, 10, 2, 114, 101, 28, 33, 3, 111, 50, 6, 114, 0, 101, 1, 98, 97, 107, 2, 116, 3, 111, 50, 6, 116, 0, 7, 6, 105, 115,
-			0, 116, 1, 10, 2, 28, 33, 12, 12, 12, 3, 7, 37, 89, 47, 0, 116, 1, 10, 2, 105, 107, 28, 33, 3, 37, 89, 47, 6, 0,
-			116, 105, 107, 101, 1, 10, 2, 114, 101, 3, 37, 89, 47, 37, 49, 6, 36, 0, 7, 6, 105, 116, 0, 1, 10, 2, 116, 28, 33, 12,
-			12, 3, 6, 111, 0, 1, 10, 2, 28, 33, 12, 12, 3, 6, 111, 47, 0, 105, 111, 110, 1, 10, 2, 28, 33, 12, 12, 3, 37, 91,
-			6, 124, 50, 0, 1, 10, 2, 97, 110, 28, 33, 12, 12, 3, 111, 47, 6, 0, 7, 6, 105, 118, 0, 4, 8, 107, 114, 97, 3, 6,
-			37, 58, 0, 8, 116, 112, 97, 100, 97, 0, 4, 8, 97, 110, 3, 6, 111, 58, 0, 8, 99, 115, 97, 108, 0, 8, 100, 110, 117, 114,
-			101, 103, 0, 8, 115, 105, 99, 101, 100, 0, 8, 115, 114, 117, 107, 0, 8, 115, 115, 97, 109, 0, 8, 115, 166, 195, 104, 100, 97, 0,
-			8, 116, 97, 105, 116, 105, 110, 105, 0, 8, 116, 97, 108, 117, 103, 101, 114, 0, 8, 116, 97, 116, 115, 0, 8, 116, 107, 97, 114, 116,
-			110, 111, 107, 0, 8, 116, 107, 101, 112, 115, 114, 101, 112, 0, 8, 116, 107, 101, 114, 105, 100, 0, 8, 116, 107, 101, 116, 101, 100, 0,
-			8, 116, 111, 109, 0, 8, 116, 111, 109, 111, 107, 111, 108, 0, 8, 116, 112, 111, 100, 97, 0, 8, 116, 112, 117, 114, 101, 0, 8, 116,
-			114, 101, 115, 115, 97, 0, 8, 116, 114, 111, 98, 97, 0, 8, 116, 114, 111, 112, 115, 0, 8, 116, 115, 97, 114, 116, 110, 111, 107, 0,
-			8, 116, 115, 101, 103, 105, 100, 0, 8, 116, 117, 107, 101, 115, 107, 101, 0, 7, 6, 109, 101, 0, 116, 8, 114, 117, 111, 103, 3, 65,
-			6, 114, 0, 110, 116, 1, 10, 3, 65, 6, 116, 50, 47, 0, 4, 110, 116, 1, 101, 115, 115, 111, 100, 110, 101, 3, 65, 6, 122, 68,
-			0, 110, 116, 8, 97, 114, 101, 112, 109, 101, 116, 0, 110, 116, 8, 101, 98, 109, 97, 106, 110, 101, 0, 110, 116, 8, 101, 99, 97, 108,
-			112, 101, 100, 0, 110, 116, 8, 101, 99, 110, 97, 118, 97, 0, 110, 116, 8, 101, 100, 114, 97, 98, 109, 111, 98, 0, 110, 116, 8, 101,
-			103, 97, 103, 110, 101, 0, 110, 116, 8, 101, 103, 110, 97, 104, 99, 0, 110, 116, 8, 101, 103, 110, 97, 114, 114, 97, 0, 110, 116, 8,
-			101, 104, 99, 97, 116, 101, 100, 0, 110, 116, 8, 101, 108, 98, 184, 195, 109, 0, 110, 116, 8, 101, 108, 103, 101, 114, 0, 110, 116, 8,
-			101, 108, 108, 101, 118, 105, 110, 0, 110, 116, 8, 101, 108, 112, 112, 117, 115, 0, 110, 116, 8, 101, 110, 105, 102, 102, 97, 114, 0, 110,
-			116, 8, 101, 110, 110, 111, 98, 97, 0, 110, 116, 8, 101, 110, 110, 111, 116, 97, 107, 0, 110, 116, 8, 101, 110, 114, 101, 118, 117, 103,
-			0, 110, 116, 8, 101, 115, 115, 97, 108, 107, 0, 110, 116, 8, 101, 115, 115, 105, 108, 98, 97, 116, 101, 0, 110, 116, 8, 101, 115, 115,
-			105, 116, 114, 101, 118, 97, 0, 110, 116, 8, 101, 115, 115, 105, 116, 114, 101, 118, 105, 100, 0, 110, 116, 8, 101, 115, 115, 111, 110, 97,
-			107, 0, 110, 116, 8, 101, 115, 115, 111, 112, 0, 110, 116, 8, 101, 116, 107, 97, 114, 116, 0, 110, 116, 8, 101, 116, 114, 97, 112, 101,
-			100, 0, 110, 116, 8, 101, 118, 97, 108, 0, 110, 116, 8, 105, 108, 112, 109, 111, 107, 0, 110, 116, 8, 105, 116, 110, 101, 115, 115, 101,
-			114, 0, 110, 116, 8, 105, 116, 114, 111, 115, 0, 4, 110, 116, 8, 101, 108, 97, 110, 103, 105, 115, 3, 65, 7, 121, 68, 0, 110, 116,
-			8, 101, 110, 110, 111, 115, 166, 195, 114, 0, 116, 1, 114, 117, 111, 103, 3, 65, 36, 0, 110, 116, 101, 1, 101, 108, 103, 101, 114, 2,
-			114, 101, 116, 3, 65, 36, 50, 47, 6, 36, 0, 110, 116, 101, 108, 1, 117, 114, 116, 115, 110, 105, 3, 65, 36, 50, 47, 36, 55, 0,
-			110, 116, 101, 8, 101, 108, 103, 101, 114, 2, 114, 101, 3, 65, 114, 50, 47, 6, 114, 0, 110, 116, 101, 108, 8, 117, 114, 116, 115, 110,
-			105, 3, 65, 114, 50, 47, 6, 114, 55, 0, 4, 110, 2, 116, 117, 115, 105, 97, 115, 3, 65, 122, 68, 0, 110, 116, 1, 97, 114, 101,
-			112, 109, 101, 116, 0, 110, 116, 1, 101, 98, 109, 97, 106, 110, 101, 0, 110, 116, 1, 101, 99, 97, 108, 112, 101, 100, 0, 110, 116, 1,
-			101, 99, 110, 97, 118, 97, 0, 110, 116, 1, 101, 100, 114, 97, 98, 109, 111, 98, 0, 110, 116, 1, 101, 103, 97, 103, 110, 101, 0, 110,
-			116, 1, 101, 103, 110, 97, 104, 99, 0, 110, 116, 1, 101, 103, 110, 97, 114, 114, 97, 0, 110, 116, 1, 101, 104, 99, 97, 116, 101, 100,
-			0, 110, 116, 1, 101, 108, 97, 110, 103, 105, 115, 0, 110, 116, 1, 101, 108, 98, 184, 195, 109, 0, 110, 116, 1, 101, 108, 103, 101, 114,
-			0, 110, 116, 1, 101, 108, 108, 101, 118, 105, 110, 0, 110, 116, 1, 101, 108, 112, 112, 117, 115, 0, 110, 116, 1, 101, 110, 105, 102, 102,
-			97, 114, 0, 110, 116, 1, 101, 110, 110, 111, 98, 97, 0, 110, 116, 1, 101, 110, 110, 111, 115, 166, 195, 114, 0, 110, 116, 1, 101, 110,
-			110, 111, 116, 97, 107, 0, 110, 116, 1, 101, 110, 114, 101, 118, 117, 103, 0, 110, 116, 1, 101, 115, 115, 97, 108, 107, 0, 110, 116, 1,
-			101, 115, 115, 105, 108, 98, 97, 116, 101, 0, 110, 116, 1, 101, 115, 115, 105, 116, 114, 101, 118, 97, 0, 110, 116, 1, 101, 115, 115, 105,
-			116, 114, 101, 118, 105, 100, 0, 110, 116, 1, 101, 115, 115, 111, 110, 110, 111, 107, 0, 110, 116, 1, 101, 115, 115, 111, 112, 0, 110, 116,
-			1, 101, 116, 107, 97, 114, 116, 0, 110, 116, 1, 101, 116, 114, 97, 112, 101, 100, 0, 110, 116, 1, 101, 118, 97, 108, 0, 110, 116, 1,
-			105, 108, 112, 109, 111, 107, 0, 110, 116, 1, 105, 116, 110, 101, 115, 115, 101, 114, 0, 110, 116, 1, 105, 116, 114, 111, 115, 0, 7, 6,
-			110, 100, 0, 4, 1, 97, 101, 110, 2, 101, 114, 3, 8, 50, 72, 0, 1, 97, 109, 97, 2, 97, 0, 1, 97, 110, 114, 101, 102, 2,
-			111, 0, 1, 97, 115, 115, 105, 108, 103, 2, 111, 0, 1, 101, 107, 115, 105, 2, 101, 114, 117, 110, 0, 1, 117, 109, 97, 115, 111, 114,
-			2, 101, 0, 4, 1, 17, 65, 3, 50, 0, 1, 97, 98, 2, 101, 108, 0, 1, 97, 98, 32, 103, 101, 106, 2, 101, 114, 0, 1, 97,
-			98, 32, 117, 100, 2, 101, 114, 0, 1, 97, 98, 114, 111, 102, 2, 101, 114, 0, 1, 97, 104, 2, 101, 108, 0, 1, 97, 108, 0, 1,
-			97, 108, 2, 97, 114, 0, 1, 97, 112, 2, 101, 108, 111, 107, 0, 1, 97, 116, 115, 2, 12, 0, 1, 97, 118, 2, 97, 102, 0, 1,
-			101, 2, 101, 12, 0, 1, 101, 2, 101, 108, 105, 103, 0, 1, 101, 107, 2, 101, 108, 0, 1, 105, 2, 101, 114, 107, 114, 101, 100, 115,
-			12, 0, 1, 105, 2, 101, 114, 108, 12, 0, 1, 105, 2, 101, 114, 115, 116, 12, 0, 1, 105, 2, 105, 109, 101, 108, 108, 101, 109, 0,
-			1, 105, 98, 2, 101, 0, 1, 105, 98, 2, 105, 110, 12, 0, 1, 105, 102, 2, 12, 0, 1, 105, 102, 2, 101, 108, 195, 184, 110, 0,
-			1, 105, 109, 2, 101, 0, 1, 105, 116, 2, 105, 110, 0, 1, 105, 118, 2, 101, 0, 1, 105, 118, 2, 105, 110, 0, 1, 105, 118, 107,
-			0, 1, 105, 118, 115, 2, 101, 108, 0, 1, 117, 100, 2, 114, 101, 0, 1, 117, 104, 2, 12, 0, 1, 121, 2, 101, 108, 0, 1, 121,
-			108, 112, 2, 114, 0, 1, 165, 195, 2, 101, 108, 105, 0, 1, 165, 195, 104, 2, 97, 114, 0, 1, 166, 195, 2, 101, 114, 101, 12, 0,
-			2, 101, 108, 115, 101, 12, 0, 8, 97, 98, 32, 101, 100, 2, 101, 114, 0, 8, 97, 98, 32, 105, 2, 101, 114, 0, 8, 97, 98, 32,
-			105, 118, 2, 101, 114, 0, 8, 97, 98, 32, 110, 97, 109, 2, 101, 114, 0, 8, 105, 2, 12, 12, 0, 101, 1, 101, 118, 2, 108, 0,
-			101, 1, 105, 109, 2, 108, 105, 0, 101, 1, 117, 115, 105, 109, 2, 108, 105, 103, 0, 110, 1, 17, 65, 0, 4, 101, 1, 97, 115, 2,
-			108, 105, 103, 3, 50, 14, 0, 101, 1, 105, 118, 101, 2, 108, 105, 0, 101, 108, 1, 97, 109, 3, 50, 14, 55, 0, 1, 97, 98, 2,
-			101, 114, 3, 50, 19, 0, 4, 1, 17, 65, 2, 97, 116, 3, 50, 72, 0, 1, 17, 65, 2, 101, 114, 101, 114, 32, 0, 1, 17, 65,
-			2, 114, 101, 32, 12, 0, 1, 17, 65, 2, 114, 101, 115, 32, 12, 0, 1, 17, 65, 2, 114, 105, 110, 0, 1, 97, 2, 97, 108, 117,
-			115, 0, 1, 97, 2, 101, 108, 0, 1, 97, 2, 101, 114, 101, 0, 1, 97, 2, 101, 115, 98, 106, 0, 1, 97, 2, 114, 101, 0, 1,
-			97, 2, 121, 0, 1, 97, 98, 2, 97, 103, 101, 0, 1, 97, 98, 2, 101, 109, 101, 100, 108, 101, 109, 0, 1, 97, 98, 2, 101, 110,
-			115, 0, 1, 97, 98, 2, 101, 114, 110, 101, 0, 1, 97, 98, 2, 105, 116, 0, 1, 97, 103, 2, 97, 0, 1, 97, 103, 2, 101, 114,
-			101, 0, 1, 97, 104, 2, 105, 0, 1, 97, 107, 115, 2, 97, 0, 1, 97, 107, 115, 2, 105, 110, 97, 118, 0, 1, 97, 107, 115, 114,
-			97, 109, 0, 1, 97, 108, 114, 97, 2, 97, 0, 1, 97, 109, 2, 97, 103, 0, 1, 97, 109, 2, 97, 114, 105, 110, 0, 1, 97, 109,
-			97, 108, 97, 115, 0, 1, 97, 109, 109, 2, 101, 114, 0, 1, 97, 109, 109, 2, 111, 0, 1, 97, 109, 109, 111, 107, 0, 1, 97, 112,
+			107, 107, 105, 116, 115, 0, 1, 100, 101, 118, 114, 101, 115, 101, 114, 0, 1, 100, 103, 97, 98, 0, 1, 100, 107, 184, 195, 114, 98, 0,
+			1, 100, 110, 97, 0, 1, 100, 110, 101, 106, 101, 0, 1, 100, 110, 101, 118, 111, 0, 1, 100, 110, 111, 0, 1, 100, 111, 109, 0, 1,
+			100, 114, 101, 100, 101, 110, 0, 1, 100, 114, 111, 102, 0, 1, 100, 115, 109, 101, 103, 101, 108, 0, 1, 100, 115, 110, 101, 100, 114, 101,
+			118, 0, 1, 100, 115, 184, 195, 108, 0, 1, 100, 116, 110, 101, 99, 111, 114, 112, 0, 1, 100, 118, 108, 97, 104, 0, 1, 100, 121, 98,
+			0, 1, 103, 110, 97, 118, 101, 0, 1, 104, 2, 116, 12, 0, 1, 105, 110, 97, 100, 0, 1, 107, 115, 101, 115, 110, 166, 195, 114, 103,
+			0, 1, 107, 115, 107, 114, 97, 109, 0, 1, 107, 115, 114, 111, 0, 1, 109, 2, 111, 110, 0, 1, 109, 101, 100, 101, 118, 104, 0, 1,
+			109, 101, 116, 103, 105, 115, 0, 1, 109, 103, 117, 114, 0, 1, 109, 110, 101, 98, 0, 1, 109, 111, 103, 97, 115, 0, 1, 109, 114, 111,
+			102, 117, 0, 1, 109, 115, 105, 114, 0, 1, 110, 97, 112, 0, 1, 110, 114, 111, 107, 2, 101, 118, 97, 116, 111, 114, 0, 1, 114, 2,
+			97, 116, 0, 1, 115, 2, 101, 32, 0, 1, 115, 2, 101, 114, 32, 0, 1, 115, 2, 101, 114, 115, 32, 0, 1, 116, 2, 101, 0, 1,
+			116, 2, 101, 102, 0, 1, 116, 2, 116, 32, 0, 1, 116, 110, 0, 1, 116, 115, 101, 108, 108, 105, 114, 98, 0, 1, 116, 115, 101, 115,
+			105, 112, 115, 0, 1, 116, 115, 101, 116, 110, 97, 118, 114, 101, 115, 0, 1, 116, 115, 114, 101, 100, 110, 117, 2, 12, 0, 1, 116, 115,
+			115, 103, 110, 105, 100, 110, 97, 108, 0, 1, 117, 116, 107, 101, 108, 108, 101, 116, 110, 105, 0, 2, 105, 107, 115, 105, 114, 0, 2, 115,
+			107, 12, 0, 8, 116, 115, 2, 32, 0, 101, 114, 1, 100, 2, 12, 3, 36, 55, 114, 0, 4, 1, 97, 104, 99, 105, 3, 55, 0, 1,
+			97, 107, 105, 0, 1, 100, 100, 101, 115, 0, 4, 1, 100, 110, 105, 118, 107, 2, 17, 65, 3, 108, 55, 0, 8, 114, 111, 102, 2, 195,
+			166, 103, 0, 101, 1, 100, 110, 105, 98, 2, 100, 3, 108, 55, 36, 0, 4, 1, 98, 97, 115, 105, 3, 109, 55, 0, 1, 100, 97, 107,
+			105, 114, 102, 2, 108, 0, 1, 102, 21, 2, 116, 0, 1, 104, 2, 105, 107, 111, 112, 116, 0, 1, 104, 2, 115, 116, 0, 1, 105, 116,
+			0, 1, 107, 115, 2, 32, 0, 1, 110, 105, 109, 105, 114, 107, 0, 1, 110, 111, 105, 116, 97, 114, 0, 1, 110, 111, 115, 114, 101, 112,
+			0, 1, 112, 10, 2, 115, 32, 0, 1, 115, 2, 115, 0, 1, 116, 111, 104, 21, 0, 1, 118, 0, 8, 0, 8, 112, 112, 97, 2, 115,
+			105, 110, 0, 8, 117, 109, 97, 115, 0, 108, 8, 0, 108, 105, 111, 116, 3, 109, 55, 57, 114, 47, 0, 1, 114, 21, 2, 32, 12, 3,
+			111, 55, 0, 1, 114, 100, 2, 12, 3, 114, 55, 0, 7, 6, 101, 110, 0, 4, 1, 99, 166, 195, 109, 3, 6, 36, 50, 0, 1, 109,
+			111, 110, 166, 195, 102, 0, 1, 114, 121, 115, 2, 101, 110, 32, 0, 1, 114, 121, 115, 2, 101, 114, 32, 0, 1, 116, 115, 105, 115, 107,
+			101, 2, 115, 0, 8, 100, 97, 2, 32, 0, 8, 100, 105, 115, 101, 114, 2, 115, 0, 8, 100, 105, 115, 166, 195, 114, 112, 2, 116, 0,
+			8, 103, 97, 2, 116, 0, 8, 108, 121, 116, 101, 99, 97, 0, 8, 109, 101, 103, 0, 8, 109, 114, 111, 102, 2, 101, 0, 8, 114, 121,
+			115, 32, 110, 101, 0, 116, 1, 10, 2, 28, 33, 12, 12, 3, 6, 36, 50, 47, 0, 115, 1, 21, 2, 28, 33, 12, 3, 6, 36, 50,
+			89, 0, 4, 1, 112, 112, 97, 2, 100, 105, 107, 115, 3, 6, 109, 50, 0, 1, 114, 102, 111, 122, 105, 107, 115, 0, 8, 108, 111, 112,
+			2, 116, 97, 0, 8, 117, 108, 102, 110, 105, 2, 122, 97, 0, 100, 1, 108, 105, 116, 2, 101, 98, 114, 0, 110, 8, 105, 115, 114, 101,
+			112, 0, 4, 99, 101, 1, 108, 108, 101, 99, 120, 101, 2, 28, 33, 3, 6, 109, 50, 89, 13, 0, 99, 101, 1, 110, 105, 109, 101, 2,
+			28, 33, 0, 100, 101, 114, 8, 108, 97, 107, 3, 6, 109, 50, 114, 0, 115, 1, 114, 21, 2, 28, 33, 12, 3, 6, 111, 50, 89, 0,
+			8, 118, 101, 114, 2, 99, 104, 101, 3, 6, 112, 50, 0, 4, 116, 1, 99, 99, 10, 2, 28, 33, 12, 3, 6, 112, 68, 0, 116, 1,
+			115, 101, 10, 2, 28, 33, 12, 0, 115, 101, 114, 1, 10, 2, 28, 33, 3, 7, 109, 50, 89, 114, 0, 116, 1, 114, 10, 2, 28, 33,
+			12, 3, 7, 111, 50, 47, 0, 99, 101, 1, 10, 2, 28, 33, 3, 7, 112, 68, 89, 13, 0, 99, 101, 1, 10, 2, 114, 28, 33, 3,
+			7, 112, 68, 89, 114, 0, 4, 1, 10, 2, 32, 24, 3, 13, 50, 0, 1, 98, 97, 116, 115, 2, 12, 0, 1, 98, 98, 2, 32, 12,
+			12, 0, 1, 98, 98, 105, 114, 103, 2, 101, 12, 0, 1, 98, 109, 111, 98, 2, 12, 0, 1, 98, 165, 195, 118, 2, 12, 12, 0, 1,
+			100, 105, 115, 0, 1, 100, 114, 111, 0, 1, 102, 102, 97, 107, 115, 116, 101, 114, 0, 1, 114, 101, 105, 10, 2, 32, 24, 0, 1, 116,
+			2, 195, 165, 0, 1, 116, 102, 97, 0, 8, 98, 165, 195, 2, 32, 12, 0, 8, 98, 165, 195, 2, 116, 32, 12, 0, 1, 98, 97, 107,
+			115, 2, 12, 3, 14, 50, 0, 115, 1, 10, 2, 32, 12, 3, 14, 50, 89, 0, 100, 101, 114, 1, 114, 10, 2, 32, 3, 35, 50, 114,
+			0, 4, 1, 98, 10, 2, 32, 12, 3, 36, 50, 0, 1, 98, 98, 105, 114, 2, 12, 12, 0, 1, 98, 110, 101, 102, 108, 101, 2, 12,
+			0, 1, 100, 105, 115, 101, 114, 2, 115, 0, 1, 100, 105, 115, 166, 195, 114, 112, 2, 116, 0, 1, 103, 2, 115, 107, 0, 1, 103, 2,
+			115, 116, 0, 1, 103, 10, 2, 107, 101, 110, 100, 0, 1, 103, 10, 2, 115, 116, 0, 1, 103, 97, 2, 116, 0, 1, 112, 115, 117, 115,
+			2, 115, 105, 111, 110, 0, 1, 114, 115, 100, 108, 121, 107, 115, 0, 1, 116, 115, 2, 17, 65, 0, 1, 116, 115, 97, 116, 117, 97, 98,
+			0, 1, 116, 115, 100, 110, 97, 115, 0, 1, 116, 115, 100, 110, 97, 116, 0, 1, 116, 115, 100, 110, 117, 114, 103, 0, 1, 116, 115, 101,
+			98, 105, 108, 115, 0, 1, 116, 115, 101, 100, 108, 97, 103, 0, 1, 116, 115, 101, 100, 110, 101, 114, 0, 1, 116, 115, 101, 100, 110, 105,
+			109, 0, 1, 116, 115, 101, 100, 166, 195, 114, 116, 0, 1, 116, 115, 101, 103, 103, 121, 98, 0, 1, 116, 115, 101, 106, 184, 195, 0, 1,
+			116, 115, 101, 107, 107, 111, 114, 0, 1, 116, 115, 101, 107, 107, 121, 109, 115, 0, 1, 116, 115, 101, 107, 110, 105, 104, 0, 1, 116, 115,
+			101, 107, 110, 117, 109, 0, 1, 116, 115, 101, 107, 115, 101, 118, 115, 0, 1, 116, 115, 101, 108, 103, 110, 97, 114, 0, 1, 116, 115, 101,
+			108, 108, 117, 114, 0, 1, 116, 115, 101, 108, 108, 184, 195, 109, 0, 1, 116, 115, 101, 110, 114, 184, 195, 106, 104, 0, 1, 116, 115, 101,
+			110, 117, 114, 0, 1, 116, 115, 101, 110, 165, 195, 109, 0, 1, 116, 115, 101, 112, 109, 97, 107, 0, 1, 116, 115, 101, 112, 112, 97, 114,
+			116, 0, 1, 116, 115, 101, 114, 121, 110, 0, 1, 116, 115, 101, 116, 110, 105, 108, 102, 0, 1, 116, 115, 101, 118, 184, 195, 114, 112, 0,
+			1, 116, 115, 102, 117, 116, 0, 1, 116, 115, 103, 97, 116, 0, 1, 116, 115, 103, 110, 117, 116, 0, 1, 116, 115, 107, 108, 97, 107, 0,
+			1, 116, 115, 107, 166, 195, 100, 0, 1, 116, 115, 108, 101, 100, 101, 107, 0, 1, 116, 115, 108, 101, 100, 166, 195, 0, 1, 116, 115, 108,
+			101, 100, 166, 195, 0, 1, 116, 115, 108, 103, 101, 116, 0, 1, 116, 115, 108, 111, 104, 0, 1, 116, 115, 109, 105, 108, 0, 1, 116, 115,
+			110, 105, 104, 114, 0, 1, 116, 115, 110, 105, 118, 0, 1, 116, 115, 110, 114, 166, 195, 118, 107, 0, 1, 116, 115, 111, 114, 98, 0, 1,
+			116, 115, 112, 109, 105, 112, 0, 1, 116, 115, 112, 121, 114, 100, 0, 1, 116, 115, 114, 101, 100, 97, 118, 107, 0, 1, 116, 115, 114, 101,
+			108, 111, 109, 0, 1, 116, 115, 114, 111, 101, 116, 101, 109, 0, 1, 116, 115, 114, 111, 107, 115, 0, 1, 116, 115, 114, 111, 109, 114, 97,
+			109, 0, 1, 116, 115, 114, 117, 109, 0, 1, 116, 115, 116, 100, 101, 102, 0, 1, 116, 115, 116, 110, 97, 107, 0, 1, 116, 115, 116, 110,
+			105, 108, 102, 0, 1, 116, 115, 116, 117, 108, 115, 0, 1, 116, 115, 116, 117, 109, 115, 0, 1, 116, 115, 118, 97, 114, 103, 0, 1, 116,
+			115, 165, 195, 109, 115, 0, 1, 116, 115, 165, 195, 109, 115, 0, 1, 116, 115, 165, 195, 114, 103, 0, 1, 118, 2, 115, 107, 12, 0, 1,
+			118, 115, 21, 2, 32, 0, 8, 114, 117, 2, 32, 0, 110, 1, 103, 10, 2, 101, 109, 0, 116, 1, 118, 101, 2, 17, 65, 12, 3, 36,
+			50, 47, 0, 4, 116, 1, 10, 2, 97, 108, 115, 107, 28, 33, 12, 3, 36, 50, 47, 6, 0, 116, 1, 10, 2, 117, 114, 28, 33, 12,
+			0, 115, 1, 118, 107, 3, 36, 50, 89, 0, 116, 105, 1, 118, 2, 111, 110, 3, 36, 50, 91, 57, 0, 115, 101, 1, 103, 10, 2, 28,
+			33, 3, 81, 7, 109, 50, 89, 114, 0, 1, 114, 121, 115, 2, 101, 100, 115, 195, 166, 116, 116, 101, 110, 100, 101, 3, 108, 50, 0, 4,
+			1, 106, 116, 2, 115, 116, 3, 109, 50, 0, 1, 109, 2, 115, 12, 0, 1, 112, 101, 100, 0, 1, 112, 101, 108, 103, 117, 107, 0, 1,
+			112, 116, 108, 105, 102, 0, 1, 114, 103, 101, 105, 108, 111, 0, 1, 114, 103, 115, 116, 114, 111, 112, 115, 0, 1, 118, 101, 114, 121, 100,
+			0, 1, 118, 101, 115, 115, 184, 195, 98, 0, 100, 101, 114, 1, 116, 114, 97, 98, 3, 109, 50, 72, 114, 0, 4, 115, 101, 114, 1, 10,
+			2, 101, 28, 33, 3, 109, 50, 89, 6, 36, 34, 0, 115, 101, 114, 1, 112, 10, 2, 32, 28, 33, 0, 100, 101, 114, 1, 10, 2, 32,
+			3, 109, 50, 114, 0, 110, 1, 105, 99, 110, 97, 3, 109, 68, 0, 1, 114, 115, 98, 184, 195, 108, 102, 97, 2, 115, 3, 111, 50, 0,
+			1, 118, 101, 114, 2, 99, 104, 101, 3, 112, 50, 0, 4, 1, 115, 2, 115, 105, 98, 3, 112, 68, 0, 2, 32, 103, 114, 111, 115, 0,
+			2, 100, 111, 115, 0, 2, 116, 117, 115, 105, 97, 115, 0, 116, 1, 99, 99, 97, 2, 12, 0, 103, 114, 111, 115, 3, 112, 68, 81, 34,
+			6, 39, 0, 115, 1, 114, 10, 2, 32, 3, 114, 20, 50, 89, 0, 1, 114, 10, 2, 32, 24, 3, 114, 50, 0, 7, 6, 101, 114, 0,
+			105, 110, 103, 1, 17, 67, 21, 2, 12, 12, 3, 4, 36, 34, 36, 68, 0, 1, 105, 118, 97, 120, 3, 6, 36, 0, 4, 1, 99, 105,
+			102, 102, 111, 3, 6, 36, 34, 0, 1, 107, 114, 97, 112, 2, 32, 98, 105, 108, 0, 1, 108, 101, 118, 117, 106, 2, 101, 110, 0, 1,
+			109, 97, 2, 105, 107, 97, 32, 0, 1, 110, 97, 109, 2, 32, 0, 1, 115, 115, 97, 112, 2, 32, 103, 97, 100, 101, 110, 0, 1, 115,
+			115, 97, 112, 2, 115, 101, 100, 0, 1, 116, 101, 102, 97, 99, 2, 105, 0, 1, 116, 114, 111, 109, 0, 1, 116, 115, 21, 2, 105, 101,
+			0, 1, 116, 116, 97, 108, 102, 2, 101, 110, 100, 101, 0, 1, 118, 104, 110, 101, 0, 8, 98, 114, 97, 98, 2, 12, 0, 8, 102, 105,
+			114, 101, 112, 0, 8, 105, 118, 105, 114, 2, 97, 0, 8, 108, 97, 118, 97, 107, 0, 8, 108, 108, 97, 102, 2, 12, 0, 8, 110, 105,
+			102, 0, 8, 115, 115, 97, 107, 2, 101, 114, 0, 8, 116, 107, 97, 114, 97, 107, 0, 8, 116, 111, 110, 2, 32, 100, 101, 110, 0, 8,
+			116, 111, 110, 2, 32, 100, 101, 116, 0, 8, 116, 114, 97, 118, 107, 0, 8, 116, 115, 121, 109, 2, 105, 117, 0, 8, 118, 97, 108, 107,
+			2, 12, 12, 0, 105, 1, 116, 115, 2, 115, 107, 28, 33, 3, 6, 36, 34, 37, 0, 4, 116, 1, 107, 114, 111, 102, 3, 6, 36, 34,
+			47, 0, 116, 1, 109, 114, 111, 102, 101, 114, 0, 116, 1, 110, 101, 103, 0, 116, 1, 110, 105, 0, 116, 1, 110, 114, 111, 98, 0, 116,
+			1, 115, 97, 108, 98, 0, 116, 1, 116, 107, 101, 102, 102, 97, 0, 116, 1, 117, 110, 105, 116, 110, 111, 107, 0, 116, 1, 117, 110, 105,
+			116, 110, 111, 107, 115, 105, 100, 0, 116, 1, 118, 114, 101, 115, 101, 114, 0, 110, 101, 8, 116, 117, 97, 115, 2, 12, 3, 6, 36, 34,
+			50, 0, 4, 110, 101, 8, 99, 117, 108, 2, 12, 3, 6, 36, 34, 50, 13, 0, 110, 101, 8, 100, 111, 109, 2, 12, 12, 0, 110, 101,
+			8, 115, 97, 107, 2, 12, 0, 110, 101, 8, 116, 115, 105, 99, 2, 12, 0, 110, 101, 8, 118, 97, 116, 2, 12, 0, 110, 101, 114, 8,
+			115, 97, 107, 2, 12, 3, 6, 36, 34, 50, 114, 0, 101, 8, 103, 97, 101, 114, 2, 32, 3, 6, 36, 34, 108, 0, 4, 101, 114, 8,
+			110, 97, 109, 3, 6, 36, 114, 0, 101, 114, 8, 110, 97, 109, 0, 4, 1, 98, 108, 97, 2, 116, 17, 65, 3, 6, 109, 34, 0, 1,
+			102, 110, 105, 2, 110, 111, 0, 1, 116, 110, 105, 2, 110, 32, 12, 12, 0, 1, 116, 111, 115, 105, 2, 109, 0, 1, 118, 114, 101, 112,
+			2, 115, 12, 0, 8, 108, 108, 97, 116, 2, 107, 0, 8, 115, 110, 111, 107, 2, 118, 97, 116, 105, 118, 0, 8, 115, 110, 111, 107, 2,
+			118, 101, 115, 0, 8, 115, 166, 195, 114, 112, 2, 118, 97, 116, 105, 118, 0, 8, 116, 110, 105, 2, 110, 32, 12, 12, 0, 8, 116, 110,
+			105, 2, 110, 101, 32, 12, 12, 0, 8, 118, 105, 110, 117, 2, 115, 12, 0, 8, 118, 111, 114, 116, 110, 111, 107, 2, 115, 0, 4, 116,
+			1, 99, 110, 111, 107, 3, 6, 109, 34, 47, 0, 116, 1, 112, 115, 107, 101, 0, 116, 1, 115, 115, 101, 100, 0, 116, 1, 118, 104, 116,
+			101, 0, 116, 1, 118, 111, 114, 116, 110, 105, 0, 116, 1, 118, 117, 107, 2, 12, 12, 0, 110, 101, 8, 116, 110, 97, 108, 2, 12, 3,
+			6, 109, 34, 50, 13, 0, 1, 116, 108, 97, 2, 110, 97, 116, 105, 118, 3, 6, 109, 51, 0, 4, 101, 1, 21, 2, 32, 28, 33, 12,
+			12, 3, 7, 36, 12, 114, 0, 101, 1, 21, 2, 100, 101, 28, 33, 12, 12, 0, 101, 1, 21, 2, 114, 28, 33, 12, 12, 0, 101, 1,
+			21, 2, 114, 101, 28, 33, 12, 12, 12, 0, 101, 1, 21, 2, 114, 101, 110, 28, 33, 12, 12, 0, 101, 1, 21, 2, 115, 32, 28, 33,
+			12, 12, 0, 101, 1, 21, 2, 116, 28, 33, 12, 12, 0, 101, 1, 105, 21, 2, 110, 32, 28, 33, 12, 12, 0, 4, 1, 21, 2, 28,
+			33, 12, 12, 12, 3, 7, 36, 34, 0, 1, 21, 2, 32, 28, 33, 12, 12, 0, 1, 21, 2, 101, 32, 28, 33, 12, 12, 12, 0, 1,
+			21, 2, 101, 116, 28, 33, 12, 12, 12, 12, 0, 105, 110, 103, 1, 10, 2, 28, 33, 12, 12, 3, 7, 36, 34, 36, 68, 0, 101, 116,
+			1, 10, 2, 28, 33, 12, 12, 3, 7, 36, 34, 108, 86, 0, 101, 114, 1, 108, 101, 118, 117, 106, 3, 7, 36, 114, 0, 1, 100, 110,
+			97, 120, 101, 108, 97, 3, 8, 72, 114, 0, 4, 1, 107, 105, 10, 2, 32, 28, 33, 12, 12, 3, 8, 114, 0, 1, 107, 105, 10, 2,
+			115, 32, 28, 33, 12, 12, 0, 105, 1, 21, 2, 115, 107, 28, 33, 3, 8, 114, 34, 37, 0, 4, 1, 102, 110, 10, 2, 101, 114, 21,
+			3, 13, 34, 0, 1, 118, 101, 108, 2, 101, 103, 12, 0, 101, 100, 101, 8, 108, 108, 97, 2, 32, 3, 13, 34, 36, 86, 13, 0, 101,
+			116, 1, 116, 108, 97, 3, 13, 34, 108, 86, 0, 101, 110, 1, 102, 110, 10, 2, 99, 3, 13, 34, 112, 68, 0, 1, 116, 2, 114, 97,
+			115, 115, 3, 35, 0, 4, 1, 99, 2, 101, 12, 3, 36, 34, 0, 1, 100, 2, 102, 114, 97, 0, 1, 100, 114, 117, 2, 101, 116, 0,
+			1, 102, 97, 114, 103, 111, 116, 111, 102, 110, 101, 103, 2, 101, 0, 1, 102, 105, 114, 101, 112, 0, 1, 103, 2, 97, 110, 105, 0, 1,
+			103, 2, 101, 12, 0, 1, 103, 2, 109, 97, 110, 115, 0, 1, 103, 115, 121, 110, 2, 114, 105, 0, 1, 106, 102, 2, 32, 0, 1, 107,
+			114, 111, 102, 2, 116, 12, 0, 1, 108, 98, 2, 101, 0, 1, 108, 108, 97, 2, 103, 0, 1, 109, 109, 111, 107, 2, 99, 105, 101, 108,
+			0, 1, 110, 105, 102, 0, 1, 112, 101, 116, 114, 111, 115, 0, 1, 112, 103, 105, 116, 103, 105, 118, 0, 1, 116, 2, 97, 12, 0, 1,
+			116, 105, 99, 21, 2, 101, 0, 1, 116, 107, 97, 114, 97, 107, 0, 1, 116, 114, 97, 118, 107, 0, 1, 116, 115, 2, 101, 111, 0, 1,
+			116, 115, 2, 105, 0, 1, 116, 115, 2, 108, 105, 110, 103, 0, 1, 116, 115, 117, 104, 2, 105, 0, 1, 118, 2, 101, 116, 0, 1, 118,
+			2, 114, 32, 0, 1, 118, 97, 108, 107, 2, 12, 12, 0, 1, 118, 97, 114, 103, 21, 2, 101, 0, 1, 118, 104, 2, 12, 0, 8, 2,
+			103, 111, 0, 8, 103, 2, 116, 97, 12, 0, 8, 104, 2, 32, 0, 8, 107, 115, 2, 32, 0, 8, 108, 2, 32, 12, 12, 0, 8, 110,
+			115, 2, 32, 0, 8, 115, 2, 32, 0, 8, 115, 114, 101, 118, 111, 0, 8, 116, 2, 32, 0, 8, 2, 17, 67, 3, 36, 34, 6, 0,
+			110, 101, 1, 116, 117, 97, 115, 2, 12, 3, 36, 34, 50, 0, 4, 110, 101, 1, 99, 117, 108, 2, 12, 3, 36, 34, 50, 13, 0, 110,
+			101, 1, 100, 111, 109, 2, 12, 12, 0, 110, 101, 1, 115, 97, 107, 2, 12, 0, 110, 101, 1, 116, 115, 105, 99, 2, 12, 0, 110, 101,
+			1, 118, 97, 116, 2, 12, 0, 4, 101, 1, 100, 114, 117, 118, 2, 32, 3, 36, 34, 108, 0, 101, 1, 103, 97, 101, 114, 2, 32, 0,
+			101, 1, 109, 109, 117, 115, 112, 111, 0, 101, 1, 114, 101, 112, 111, 0, 101, 1, 114, 116, 2, 12, 0, 101, 1, 115, 105, 116, 97, 109,
+			97, 114, 100, 21, 0, 101, 1, 116, 97, 108, 101, 114, 0, 101, 1, 116, 117, 107, 115, 105, 100, 0, 101, 116, 1, 116, 110, 101, 105, 114,
+			111, 3, 36, 34, 108, 86, 0, 4, 101, 1, 115, 97, 98, 3, 36, 114, 0, 101, 114, 1, 110, 97, 109, 0, 4, 1, 100, 110, 117, 104,
+			3, 108, 34, 0, 1, 109, 109, 17, 65, 2, 97, 0, 1, 116, 114, 111, 112, 101, 114, 2, 101, 12, 0, 1, 116, 114, 111, 112, 101, 114,
+			2, 101, 110, 12, 0, 1, 118, 121, 108, 102, 2, 117, 116, 101, 0, 101, 1, 21, 2, 114, 101, 28, 33, 12, 12, 3, 108, 34, 6, 36,
+			0, 4, 105, 1, 107, 115, 97, 118, 2, 28, 33, 3, 108, 34, 7, 37, 0, 105, 1, 116, 110, 97, 102, 110, 105, 2, 28, 33, 0, 1,
+			112, 115, 101, 100, 2, 97, 116, 3, 108, 51, 0, 4, 101, 1, 21, 2, 32, 3, 108, 114, 0, 101, 1, 100, 105, 118, 0, 101, 1, 114,
+			2, 32, 0, 1, 116, 2, 114, 3, 109, 0, 4, 1, 102, 2, 110, 105, 3, 109, 34, 0, 1, 103, 2, 100, 97, 0, 1, 103, 2, 110,
+			12, 12, 0, 1, 103, 2, 114, 105, 103, 0, 1, 104, 2, 108, 105, 12, 0, 1, 104, 101, 98, 2, 115, 107, 0, 1, 106, 2, 103, 0,
+			1, 106, 2, 110, 12, 12, 12, 12, 12, 0, 1, 110, 2, 118, 0, 1, 115, 2, 116, 12, 0, 1, 115, 2, 118, 12, 0, 1, 116, 2,
+			109, 105, 110, 0, 1, 116, 2, 109, 111, 0, 1, 116, 2, 110, 105, 12, 0, 1, 116, 2, 112, 0, 1, 116, 2, 114, 105, 101, 114, 0,
+			1, 116, 115, 2, 111, 108, 0, 1, 118, 2, 17, 67, 12, 12, 12, 0, 1, 118, 105, 110, 117, 0, 1, 118, 115, 2, 105, 103, 101, 0,
+			2, 102, 97, 114, 105, 0, 8, 18, 71, 2, 32, 0, 8, 103, 2, 110, 101, 32, 12, 0, 8, 110, 101, 103, 2, 116, 0, 114, 1, 103,
+			114, 166, 195, 0, 110, 1, 100, 111, 109, 2, 105, 12, 3, 109, 34, 50, 0, 110, 101, 1, 116, 110, 97, 108, 112, 111, 116, 2, 12, 12,
+			3, 109, 34, 50, 13, 0, 4, 115, 1, 21, 2, 116, 97, 116, 3, 109, 34, 89, 0, 115, 1, 102, 2, 107, 0, 8, 2, 32, 3, 110,
+			34, 0, 114, 195, 166, 110, 1, 116, 3, 110, 34, 6, 111, 68, 0, 1, 116, 2, 114, 111, 114, 3, 111, 34, 0, 98, 121, 1, 100, 3,
+			112, 12, 71, 37, 0, 4, 1, 18, 71, 18, 71, 3, 114, 0, 1, 18, 74, 2, 110, 101, 32, 0, 1, 21, 2, 32, 24, 0, 1, 21,
+			2, 115, 17, 67, 0, 1, 98, 111, 2, 115, 116, 0, 1, 100, 2, 98, 121, 103, 0, 1, 100, 21, 2, 17, 67, 0, 1, 100, 100, 117,
+			0, 1, 100, 101, 108, 2, 21, 0, 1, 100, 110, 117, 0, 1, 102, 102, 2, 17, 65, 116, 0, 1, 102, 102, 117, 107, 2, 116, 0, 1,
+			103, 2, 12, 0, 1, 103, 2, 32, 12, 12, 0, 1, 103, 110, 166, 195, 108, 2, 101, 0, 1, 103, 114, 111, 98, 2, 101, 0, 1, 103,
+			117, 115, 2, 101, 0, 1, 106, 101, 108, 0, 1, 106, 108, 97, 116, 2, 25, 12, 12, 0, 1, 106, 110, 105, 108, 2, 12, 12, 12, 0,
+			1, 107, 105, 17, 67, 2, 12, 0, 1, 107, 107, 2, 12, 0, 1, 107, 110, 117, 98, 0, 1, 107, 111, 112, 0, 1, 107, 115, 0, 1,
+			108, 103, 117, 109, 115, 0, 1, 108, 108, 105, 112, 0, 1, 108, 184, 195, 0, 1, 109, 21, 2, 115, 107, 0, 1, 109, 109, 2, 101, 116,
+			0, 1, 109, 109, 17, 65, 2, 17, 67, 0, 1, 109, 109, 117, 0, 1, 109, 111, 114, 0, 1, 110, 2, 32, 12, 0, 1, 110, 97, 109,
+			32, 114, 101, 100, 2, 32, 0, 1, 110, 97, 109, 109, 101, 114, 102, 0, 1, 110, 97, 109, 111, 2, 12, 0, 1, 110, 97, 109, 114, 111,
+			2, 32, 0, 1, 110, 105, 102, 108, 101, 100, 0, 1, 110, 116, 0, 1, 112, 117, 2, 17, 67, 0, 1, 114, 2, 17, 67, 0, 1, 114,
+			2, 32, 0, 1, 115, 110, 97, 100, 0, 1, 115, 110, 97, 112, 0, 1, 115, 117, 114, 98, 0, 1, 115, 121, 0, 1, 116, 2, 32, 0,
+			1, 116, 2, 101, 116, 32, 0, 1, 116, 10, 2, 17, 67, 0, 1, 116, 101, 109, 2, 12, 0, 1, 116, 102, 101, 0, 1, 116, 103, 0,
+			1, 116, 108, 97, 0, 1, 116, 108, 111, 112, 2, 97, 98, 0, 1, 116, 110, 101, 100, 0, 1, 116, 110, 105, 2, 21, 0, 1, 116, 110,
+			105, 2, 110, 97, 116, 0, 1, 116, 112, 101, 99, 115, 0, 1, 116, 114, 111, 112, 101, 114, 2, 12, 0, 1, 116, 115, 105, 0, 1, 116,
+			115, 110, 184, 195, 2, 12, 0, 1, 116, 115, 121, 114, 107, 2, 21, 0, 1, 116, 116, 2, 17, 67, 0, 1, 118, 97, 17, 67, 2, 32,
+			12, 0, 1, 118, 97, 114, 103, 100, 108, 117, 103, 2, 101, 0, 1, 118, 101, 108, 2, 17, 67, 12, 12, 0, 1, 118, 108, 111, 118, 101,
+			114, 2, 12, 0, 1, 118, 111, 2, 12, 12, 12, 0, 1, 118, 114, 97, 102, 2, 115, 12, 0, 1, 118, 121, 2, 12, 0, 1, 118, 166,
+			195, 110, 115, 2, 12, 12, 0, 1, 118, 184, 195, 2, 115, 116, 12, 12, 0, 8, 108, 108, 97, 0, 8, 112, 97, 107, 2, 115, 12, 12,
+			0, 95, 1, 104, 116, 0, 101, 1, 118, 111, 2, 110, 115, 12, 3, 114, 6, 36, 0, 4, 1, 100, 105, 107, 115, 3, 114, 34, 0, 1,
+			100, 111, 114, 98, 2, 101, 110, 0, 1, 118, 101, 108, 2, 101, 110, 12, 0, 105, 1, 21, 2, 28, 33, 12, 12, 3, 114, 34, 6, 37,
+			0, 105, 1, 118, 184, 195, 114, 21, 3, 114, 34, 37, 0, 101, 110, 1, 21, 2, 32, 3, 114, 34, 108, 50, 0, 101, 110, 115, 1, 21,
+			2, 32, 3, 114, 34, 108, 50, 89, 0, 4, 116, 1, 21, 2, 32, 3, 114, 47, 0, 116, 1, 21, 2, 115, 32, 0, 116, 1, 98, 109,
+			97, 108, 115, 0, 4, 110, 101, 1, 21, 2, 32, 12, 12, 3, 114, 50, 13, 0, 110, 101, 1, 100, 21, 2, 12, 12, 0, 110, 101, 1,
+			116, 110, 97, 108, 112, 2, 12, 12, 0, 110, 101, 1, 116, 115, 105, 99, 115, 97, 102, 2, 12, 0, 110, 101, 1, 118, 97, 116, 115, 2,
+			12, 0, 110, 101, 115, 1, 21, 2, 32, 3, 114, 50, 13, 89, 0, 110, 101, 1, 103, 110, 105, 102, 2, 109, 3, 114, 50, 36, 0, 110,
+			101, 1, 116, 110, 105, 2, 116, 12, 3, 114, 50, 109, 0, 1, 103, 110, 105, 102, 2, 101, 110, 3, 114, 51, 0, 115, 1, 21, 2, 32,
+			3, 114, 89, 0, 115, 116, 101, 1, 21, 2, 32, 3, 114, 89, 47, 13, 0, 4, 1, 115, 2, 118, 105, 99, 101, 109, 101, 100, 3, 118,
+			0, 1, 115, 2, 118, 105, 99, 101, 110, 0, 1, 115, 2, 118, 105, 99, 101, 115, 116, 97, 116, 105, 111, 110, 0, 110, 105, 101, 8, 3,
+			118, 12, 50, 37, 0, 103, 105, 101, 1, 102, 3, 118, 12, 81, 37, 0, 110, 111, 110, 1, 118, 2, 12, 12, 3, 118, 50, 108, 50, 0,
+			4, 118, 105, 99, 101, 1, 115, 101, 100, 110, 117, 107, 3, 118, 84, 37, 89, 0, 118, 105, 99, 101, 1, 115, 109, 111, 111, 114, 0, 118,
+			105, 99, 101, 109, 105, 110, 100, 101, 116, 1, 115, 3, 118, 84, 37, 89, 65, 35, 57, 50, 72, 13, 86, 0, 7, 6, 101, 116, 0, 4,
+			1, 114, 107, 101, 100, 2, 12, 3, 6, 36, 47, 0, 1, 116, 105, 2, 32, 12, 0, 1, 116, 105, 2, 115, 32, 12, 0, 8, 98, 97,
+			102, 108, 97, 0, 8, 98, 101, 103, 2, 12, 0, 8, 98, 105, 116, 0, 8, 102, 111, 114, 112, 0, 8, 107, 115, 97, 0, 8, 107, 115,
+			97, 107, 0, 8, 110, 97, 108, 112, 0, 8, 112, 97, 116, 0, 8, 112, 109, 111, 114, 116, 0, 8, 116, 114, 101, 98, 117, 112, 0, 116,
+			8, 107, 115, 97, 107, 0, 101, 114, 1, 109, 10, 3, 6, 36, 47, 114, 0, 4, 1, 98, 114, 111, 115, 3, 6, 109, 0, 1, 108, 101,
+			104, 99, 105, 109, 0, 4, 1, 99, 110, 105, 112, 3, 6, 109, 47, 0, 1, 102, 97, 116, 115, 0, 1, 107, 110, 97, 108, 98, 32, 110,
+			101, 0, 1, 108, 117, 109, 97, 0, 1, 110, 111, 105, 114, 97, 109, 0, 1, 110, 111, 115, 32, 110, 101, 0, 1, 114, 97, 107, 2, 12,
+			12, 0, 1, 114, 107, 110, 111, 107, 0, 1, 117, 100, 21, 2, 32, 0, 1, 117, 100, 32, 101, 103, 110, 121, 115, 2, 32, 0, 1, 117,
+			100, 32, 103, 110, 97, 115, 2, 32, 0, 1, 117, 100, 32, 110, 101, 2, 32, 0, 1, 117, 100, 32, 114, 101, 103, 110, 121, 115, 2, 32,
+			0, 1, 117, 100, 32, 116, 101, 103, 110, 117, 115, 2, 32, 0, 1, 117, 114, 105, 112, 0, 8, 100, 97, 107, 2, 12, 0, 8, 103, 100,
+			117, 98, 0, 8, 105, 118, 114, 101, 115, 0, 8, 107, 105, 114, 98, 0, 8, 107, 111, 107, 0, 8, 107, 114, 97, 112, 0, 8, 108, 105,
+			111, 116, 0, 8, 108, 105, 111, 116, 0, 8, 108, 108, 105, 98, 0, 8, 110, 105, 114, 97, 108, 107, 0, 8, 110, 111, 106, 97, 98, 0,
+			8, 114, 107, 101, 115, 2, 12, 0, 8, 115, 108, 97, 102, 0, 8, 115, 114, 111, 107, 32, 116, 101, 0, 8, 116, 110, 105, 118, 107, 0,
+			8, 116, 114, 97, 118, 107, 0, 116, 1, 110, 111, 105, 114, 97, 109, 0, 116, 1, 110, 111, 115, 2, 101, 0, 116, 8, 105, 118, 114, 101,
+			115, 0, 116, 8, 108, 108, 105, 98, 0, 116, 8, 110, 111, 106, 97, 98, 0, 116, 101, 8, 103, 114, 111, 101, 103, 0, 116, 101, 8, 117,
+			103, 97, 98, 0, 4, 116, 101, 8, 103, 97, 114, 102, 102, 117, 115, 3, 6, 109, 47, 13, 0, 116, 101, 8, 103, 114, 117, 111, 99, 0,
+			116, 101, 8, 107, 97, 108, 112, 0, 116, 101, 8, 107, 111, 107, 0, 116, 101, 8, 107, 115, 105, 100, 0, 116, 101, 8, 108, 105, 111, 116,
+			0, 116, 101, 8, 108, 108, 101, 118, 111, 110, 0, 116, 101, 8, 108, 111, 18, 75, 105, 110, 0, 116, 101, 8, 108, 117, 111, 114, 0, 116,
+			101, 8, 108, 121, 0, 116, 101, 8, 109, 108, 97, 112, 0, 116, 101, 8, 110, 97, 105, 112, 0, 116, 101, 8, 110, 105, 101, 114, 0, 116,
+			101, 8, 110, 117, 114, 98, 0, 116, 101, 8, 112, 105, 112, 0, 116, 101, 8, 114, 111, 98, 109, 97, 106, 0, 116, 101, 8, 114, 117, 98,
+			0, 116, 101, 8, 115, 105, 109, 101, 104, 99, 0, 116, 101, 8, 115, 105, 117, 113, 114, 97, 109, 0, 116, 101, 8, 115, 117, 109, 0, 116,
+			101, 8, 117, 116, 97, 116, 115, 0, 116, 101, 8, 118, 117, 99, 0, 116, 101, 114, 8, 117, 116, 97, 116, 115, 3, 6, 109, 47, 114, 0,
+			4, 116, 101, 8, 114, 98, 117, 111, 115, 3, 6, 110, 47, 13, 0, 116, 101, 8, 114, 103, 105, 97, 110, 105, 118, 0, 8, 114, 117, 98,
+			97, 116, 2, 12, 3, 6, 111, 47, 0, 1, 116, 105, 10, 2, 28, 33, 12, 3, 7, 36, 47, 0, 4, 8, 107, 105, 116, 101, 3, 7,
+			109, 47, 0, 8, 108, 111, 105, 118, 2, 12, 0, 116, 101, 8, 107, 105, 116, 101, 3, 7, 109, 47, 13, 0, 1, 114, 2, 195, 184, 106,
+			12, 3, 13, 47, 0, 4, 1, 21, 2, 32, 12, 3, 13, 86, 0, 1, 103, 97, 116, 0, 1, 114, 117, 2, 32, 12, 12, 0, 1, 117,
+			100, 110, 105, 118, 2, 32, 0, 1, 118, 97, 2, 12, 0, 115, 1, 21, 2, 32, 12, 3, 13, 86, 89, 0, 4, 1, 98, 97, 102, 108,
+			97, 3, 36, 47, 0, 1, 98, 105, 116, 0, 1, 102, 111, 114, 112, 0, 1, 103, 101, 109, 2, 12, 0, 1, 105, 118, 114, 101, 115, 0,
+			1, 112, 97, 116, 0, 1, 112, 109, 111, 114, 116, 0, 1, 115, 108, 105, 116, 0, 1, 115, 109, 101, 110, 110, 101, 103, 0, 1, 115, 114,
+			101, 118, 111, 0, 8, 107, 115, 0, 8, 115, 2, 32, 12, 0, 8, 115, 100, 110, 105, 2, 32, 0, 8, 115, 101, 100, 108, 105, 0, 8,
+			115, 117, 2, 32, 0, 95, 1, 114, 111, 102, 3, 47, 0, 4, 1, 102, 111, 114, 112, 2, 105, 3, 108, 47, 0, 1, 105, 114, 114, 97,
+			104, 0, 1, 114, 107, 101, 115, 2, 195, 166, 114, 0, 1, 114, 21, 2, 32, 12, 3, 108, 86, 0, 4, 1, 107, 105, 114, 98, 3, 109,
+			47, 0, 1, 108, 98, 97, 116, 0, 1, 108, 101, 109, 111, 0, 1, 108, 101, 114, 166, 195, 112, 2, 12, 0, 1, 108, 105, 111, 116, 0,
+			1, 108, 108, 97, 98, 122, 122, 97, 106, 0, 1, 108, 108, 105, 98, 0, 1, 108, 111, 105, 118, 0, 1, 108, 112, 2, 12, 0, 1, 108,
+			112, 100, 108, 117, 103, 0, 1, 108, 112, 109, 97, 107, 115, 0, 1, 108, 112, 114, 101, 118, 101, 108, 0, 1, 108, 112, 115, 2, 12, 0,
+			1, 108, 112, 118, 108, 184, 195, 115, 0, 1, 110, 101, 103, 97, 108, 102, 117, 109, 97, 107, 0, 1, 110, 101, 107, 115, 105, 102, 0, 1,
+			110, 105, 114, 97, 108, 107, 0, 1, 110, 108, 101, 2, 12, 0, 1, 110, 111, 106, 97, 98, 0, 1, 110, 114, 165, 195, 104, 0, 1, 116,
+			110, 105, 118, 107, 0, 1, 116, 114, 97, 118, 107, 0, 8, 115, 115, 97, 98, 0, 116, 1, 108, 105, 111, 116, 0, 116, 1, 108, 108, 105,
+			98, 0, 116, 1, 108, 112, 2, 12, 0, 4, 1, 114, 97, 103, 114, 97, 109, 3, 111, 47, 0, 1, 114, 97, 122, 97, 110, 0, 1, 114,
+			100, 110, 105, 2, 12, 0, 1, 114, 101, 98, 184, 195, 107, 2, 12, 0, 1, 114, 101, 100, 121, 114, 103, 2, 12, 0, 1, 114, 101, 100,
+			165, 195, 114, 2, 12, 0, 1, 114, 101, 100, 184, 195, 109, 2, 12, 0, 1, 114, 101, 102, 102, 97, 114, 116, 115, 2, 12, 0, 1, 114,
+			101, 103, 97, 108, 107, 2, 12, 0, 1, 114, 101, 103, 103, 121, 98, 2, 12, 0, 1, 114, 101, 103, 105, 108, 2, 12, 0, 1, 114, 101,
+			103, 110, 101, 112, 103, 97, 100, 2, 12, 0, 1, 114, 101, 105, 108, 105, 109, 97, 102, 2, 12, 0, 1, 114, 101, 107, 115, 101, 110, 110,
+			101, 109, 2, 12, 0, 1, 114, 101, 107, 115, 105, 102, 2, 12, 0, 1, 114, 101, 108, 97, 116, 2, 12, 0, 1, 114, 101, 108, 97, 116,
+			165, 195, 112, 2, 12, 0, 1, 114, 101, 108, 111, 107, 115, 2, 12, 0, 1, 114, 101, 109, 109, 101, 116, 115, 2, 12, 0, 1, 114, 101,
+			110, 97, 118, 100, 166, 195, 115, 2, 12, 0, 1, 114, 101, 110, 101, 2, 12, 12, 0, 1, 114, 101, 116, 115, 101, 106, 184, 195, 104, 0,
+			1, 114, 101, 116, 115, 114, 184, 195, 102, 2, 12, 0, 1, 114, 101, 116, 116, 97, 107, 115, 2, 12, 0, 1, 114, 101, 116, 116, 121, 98,
+			2, 12, 0, 1, 114, 101, 117, 107, 115, 2, 12, 0, 1, 114, 101, 118, 114, 97, 2, 12, 0, 1, 114, 103, 105, 100, 114, 166, 195, 102,
+			2, 12, 0, 1, 114, 108, 101, 103, 101, 114, 2, 12, 0, 1, 114, 110, 101, 104, 2, 32, 0, 1, 114, 111, 116, 101, 118, 2, 12, 0,
+			1, 114, 114, 101, 100, 110, 117, 2, 12, 0, 1, 114, 114, 101, 103, 114, 111, 98, 0, 1, 114, 115, 2, 12, 12, 0, 1, 114, 117, 32,
+			101, 114, 184, 195, 103, 2, 12, 12, 0, 1, 114, 117, 32, 103, 105, 100, 2, 12, 12, 0, 1, 114, 117, 32, 103, 105, 100, 32, 101, 2,
+			12, 12, 0, 1, 114, 117, 32, 103, 105, 100, 32, 116, 2, 12, 12, 0, 1, 114, 117, 32, 103, 105, 109, 32, 101, 2, 12, 12, 0, 1,
+			114, 117, 32, 103, 105, 109, 32, 116, 2, 12, 12, 0, 1, 114, 117, 32, 103, 111, 32, 116, 101, 114, 2, 12, 0, 1, 114, 117, 32, 109,
+			101, 100, 32, 116, 2, 12, 12, 0, 1, 114, 117, 32, 110, 101, 2, 12, 12, 0, 1, 114, 117, 32, 114, 101, 106, 32, 116, 2, 12, 12,
+			0, 1, 114, 117, 32, 114, 184, 195, 103, 2, 12, 12, 0, 1, 114, 118, 105, 108, 2, 12, 0, 8, 114, 100, 114, 111, 2, 12, 0, 8,
+			114, 117, 2, 32, 109, 111, 100, 32, 12, 12, 0, 43, 8, 114, 0, 116, 1, 114, 2, 12, 12, 12, 12, 0, 1, 114, 100, 110, 166, 195,
+			2, 12, 3, 114, 86, 0, 7, 6, 103, 101, 0, 2, 110, 105, 117, 115, 3, 0, 4, 8, 101, 110, 97, 109, 3, 8, 91, 108, 0, 8,
+			101, 116, 114, 111, 107, 0, 1, 108, 184, 195, 102, 3, 57, 108, 0, 4, 1, 111, 108, 97, 104, 2, 110, 3, 81, 6, 36, 0, 8, 97,
+			2, 114, 101, 0, 4, 2, 110, 105, 97, 108, 3, 81, 36, 0, 2, 110, 105, 116, 97, 108, 0, 2, 110, 105, 116, 105, 118, 0, 8, 2,
+			110, 101, 114, 101, 114, 101, 32, 0, 4, 2, 98, 101, 116, 3, 81, 36, 6, 0, 2, 98, 105, 115, 0, 2, 98, 111, 109, 109, 101, 114,
+			108, 105, 103, 0, 2, 98, 114, 111, 107, 107, 101, 110, 0, 2, 98, 114, 195, 166, 107, 107, 101, 108, 105, 103, 0, 2, 98, 121, 114, 0,
+			2, 98, 195, 166, 114, 100, 101, 0, 2, 100, 105, 103, 101, 110, 0, 2, 100, 117, 108, 103, 116, 0, 2, 104, 97, 108, 116, 0, 2, 104,
+			101, 106, 109, 101, 114, 195, 165, 100, 0, 2, 104, 101, 110, 110, 97, 0, 2, 104, 195, 166, 110, 103, 0, 2, 104, 195, 184, 114, 0, 2,
+			108, 97, 115, 115, 101, 110, 0, 2, 108, 101, 100, 0, 2, 108, 101, 106, 100, 101, 0, 2, 108, 105, 110, 100, 101, 0, 2, 108, 195, 166,
+			110, 100, 101, 114, 0, 2, 109, 97, 107, 0, 2, 109, 97, 108, 0, 2, 109, 101, 110, 0, 2, 109, 121, 115, 101, 0, 2, 109, 121, 116,
+			0, 2, 109, 121, 116, 108, 105, 103, 0, 2, 110, 111, 109, 0, 2, 110, 116, 105, 108, 0, 2, 110, 117, 105, 110, 0, 2, 112, 97, 114,
+			100, 0, 2, 114, 97, 110, 105, 101, 0, 2, 114, 97, 110, 105, 117, 109, 0, 2, 114, 195, 165, 100, 101, 0, 2, 115, 97, 110, 100, 116,
+			0, 2, 115, 105, 109, 115, 0, 2, 115, 106, 195, 166, 102, 116, 0, 2, 115, 107, 195, 166, 102, 116, 105, 103, 0, 2, 115, 112, 101, 110,
+			115, 116, 0, 2, 115, 116, 97, 103, 101, 110, 0, 2, 115, 116, 97, 108, 116, 0, 2, 115, 116, 105, 107, 0, 2, 115, 118, 101, 106, 115,
+			110, 105, 110, 103, 0, 2, 115, 118, 105, 110, 100, 116, 0, 2, 118, 97, 108, 100, 105, 103, 0, 2, 118, 97, 108, 116, 0, 2, 118, 97,
+			110, 100, 116, 0, 2, 118, 105, 110, 100, 0, 2, 118, 105, 110, 115, 116, 0, 2, 118, 105, 114, 0, 2, 118, 195, 166, 107, 115, 116, 0,
+			2, 118, 195, 166, 114, 0, 110, 101, 114, 101, 108, 8, 3, 81, 36, 50, 13, 34, 6, 111, 55, 0, 110, 105, 2, 110, 100, 3, 81, 36,
+			50, 36, 0, 2, 110, 105, 110, 118, 101, 115, 116, 3, 81, 109, 0, 114, 2, 110, 105, 110, 103, 3, 81, 109, 34, 0, 114, 109, 97, 105,
+			110, 3, 90, 109, 34, 65, 6, 110, 68, 0, 4, 1, 97, 100, 110, 97, 98, 2, 114, 101, 3, 91, 6, 36, 0, 1, 97, 103, 2, 114,
+			101, 0, 1, 97, 103, 110, 101, 2, 114, 101, 0, 1, 97, 110, 101, 109, 2, 114, 101, 0, 1, 97, 114, 97, 103, 2, 114, 101, 0, 1,
+			97, 114, 117, 111, 102, 2, 114, 101, 0, 1, 101, 116, 111, 114, 112, 2, 114, 101, 0, 1, 105, 108, 103, 101, 110, 2, 114, 101, 0, 1,
+			110, 97, 104, 99, 2, 114, 101, 0, 1, 110, 97, 114, 2, 114, 101, 0, 1, 110, 97, 114, 100, 110, 105, 2, 114, 101, 0, 1, 110, 97,
+			114, 100, 117, 2, 114, 101, 0, 1, 110, 97, 114, 114, 97, 2, 114, 101, 0, 1, 111, 108, 2, 114, 101, 0, 1, 111, 108, 100, 110, 105,
+			2, 114, 101, 0, 1, 114, 97, 104, 99, 2, 114, 101, 0, 1, 114, 117, 2, 114, 101, 0, 1, 117, 106, 2, 114, 101, 0, 1, 100, 117,
+			98, 2, 116, 3, 91, 6, 109, 0, 4, 1, 111, 108, 2, 109, 195, 184, 3, 91, 36, 0, 2, 110, 101, 114, 116, 0, 2, 110, 101, 114,
+			195, 184, 115, 0, 2, 110, 105, 0, 8, 2, 110, 101, 32, 0, 8, 2, 110, 101, 114, 101, 0, 8, 2, 110, 101, 118, 101, 114, 0, 4,
+			110, 101, 114, 2, 32, 109, 105, 103, 3, 91, 36, 50, 6, 36, 34, 0, 110, 101, 114, 2, 101, 32, 109, 105, 103, 0, 4, 1, 101, 110,
+			97, 109, 3, 91, 108, 0, 1, 101, 116, 114, 111, 107, 0, 1, 111, 108, 2, 98, 114, 111, 0, 1, 111, 108, 2, 110, 0, 1, 111, 108,
+			114, 101, 114, 117, 109, 105, 114, 102, 0, 8, 111, 108, 2, 32, 0, 114, 8, 111, 108, 2, 32, 3, 91, 114, 0, 4, 1, 111, 108, 111,
+			107, 121, 2, 110, 3, 108, 0, 1, 111, 108, 111, 116, 107, 111, 114, 112, 2, 110, 0, 7, 6, 105, 103, 0, 1, 114, 116, 110, 105, 2,
+			12, 3, 6, 37, 0, 101, 1, 116, 108, 111, 118, 3, 6, 37, 12, 91, 0, 1, 100, 114, 166, 195, 118, 2, 101, 110, 115, 116, 97, 110,
+			100, 3, 6, 37, 81, 0, 1, 10, 2, 28, 33, 12, 12, 3, 8, 37, 0, 104, 116, 1, 108, 3, 35, 57, 47, 0, 104, 116, 121, 1,
+			109, 3, 35, 57, 47, 37, 0, 4, 8, 108, 2, 32, 103, 111, 100, 116, 3, 36, 49, 0, 8, 108, 2, 32, 111, 114, 100, 101, 110, 116,
+			108, 105, 103, 116, 0, 8, 108, 2, 32, 112, 195, 166, 110, 116, 0, 8, 108, 2, 32, 114, 111, 108, 105, 103, 116, 0, 8, 108, 2, 32,
+			115, 116, 105, 108, 108, 101, 0, 4, 1, 100, 97, 100, 100, 101, 2, 116, 3, 36, 81, 0, 1, 100, 97, 115, 111, 114, 112, 2, 116, 0,
+			1, 100, 101, 100, 166, 195, 109, 115, 2, 116, 0, 1, 100, 101, 116, 108, 101, 104, 2, 116, 0, 1, 100, 101, 116, 109, 166, 195, 107, 115,
+			2, 116, 0, 1, 100, 112, 111, 2, 116, 0, 1, 100, 117, 107, 105, 97, 104, 2, 116, 0, 1, 108, 112, 2, 116, 12, 0, 1, 115, 100,
+			2, 116, 12, 0, 1, 115, 110, 2, 116, 12, 0, 1, 115, 112, 111, 2, 116, 12, 0, 1, 118, 115, 2, 116, 12, 0, 8, 98, 2, 32,
+			0, 8, 100, 2, 116, 0, 103, 1, 108, 2, 101, 12, 12, 0, 103, 101, 114, 1, 110, 3, 36, 81, 114, 0, 4, 1, 100, 97, 116, 115,
+			3, 37, 0, 1, 100, 108, 0, 1, 100, 110, 166, 195, 104, 101, 98, 0, 1, 108, 111, 98, 2, 12, 0, 1, 115, 100, 105, 104, 0, 1,
+			115, 100, 111, 114, 116, 0, 1, 115, 100, 117, 109, 115, 0, 1, 115, 100, 117, 112, 0, 1, 115, 100, 117, 112, 2, 116, 0, 1, 116, 116,
+			97, 102, 0, 2, 32, 0, 2, 104, 101, 100, 12, 0, 2, 115, 0, 4, 101, 1, 114, 107, 2, 110, 3, 37, 12, 13, 0, 101, 1, 115,
+			2, 12, 12, 0, 101, 2, 12, 12, 0, 101, 110, 1, 112, 3, 37, 12, 108, 50, 0, 101, 114, 2, 12, 3, 37, 12, 114, 0, 116, 1,
+			21, 2, 32, 3, 37, 47, 0, 1, 112, 2, 32, 3, 37, 49, 0, 116, 1, 110, 101, 103, 184, 195, 100, 3, 37, 49, 47, 0, 4, 1,
+			100, 101, 110, 115, 3, 37, 57, 0, 1, 100, 105, 115, 110, 101, 103, 0, 1, 100, 121, 0, 1, 108, 2, 101, 110, 101, 0, 1, 110, 115,
+			0, 1, 116, 115, 2, 101, 12, 0, 101, 1, 100, 2, 110, 100, 101, 3, 37, 57, 13, 0, 4, 101, 1, 110, 115, 2, 12, 3, 37, 57,
+			108, 0, 101, 1, 118, 2, 110, 0, 4, 1, 107, 100, 117, 3, 37, 81, 0, 1, 108, 2, 97, 12, 12, 0, 1, 108, 2, 114, 97, 109,
+			0, 1, 114, 105, 100, 2, 101, 110, 116, 0, 8, 107, 2, 32, 0, 4, 101, 1, 100, 101, 114, 2, 114, 3, 37, 81, 6, 36, 0, 101,
+			1, 108, 105, 118, 105, 114, 112, 0, 101, 1, 108, 108, 101, 116, 110, 105, 2, 110, 0, 101, 1, 114, 101, 2, 114, 101, 0, 101, 1, 114,
+			105, 100, 2, 114, 0, 101, 1, 114, 114, 2, 114, 0, 101, 1, 118, 97, 110, 2, 114, 0, 101, 114, 105, 97, 1, 110, 3, 37, 81, 6,
+			36, 51, 37, 110, 0, 101, 2, 110, 12, 3, 37, 81, 6, 109, 0, 101, 1, 110, 2, 114, 105, 3, 37, 81, 36, 0, 101, 97, 1, 114,
+			102, 2, 114, 3, 37, 81, 37, 0, 101, 114, 8, 110, 2, 32, 3, 37, 81, 114, 0, 115, 1, 114, 107, 3, 37, 89, 0, 101, 110, 1,
+			108, 105, 100, 2, 99, 101, 3, 37, 91, 6, 112, 68, 0, 101, 1, 108, 111, 114, 3, 37, 109, 0, 7, 6, 105, 110, 0, 4, 1, 21,
+			2, 28, 33, 3, 6, 37, 50, 0, 1, 116, 97, 108, 10, 2, 28, 33, 0, 1, 116, 110, 97, 122, 121, 98, 0, 101, 1, 10, 2, 116,
+			114, 121, 107, 28, 33, 3, 6, 37, 50, 13, 0, 101, 1, 10, 2, 28, 33, 3, 6, 37, 50, 108, 0, 101, 1, 10, 2, 114, 28, 33,
+			3, 6, 37, 50, 114, 0, 4, 1, 115, 115, 97, 10, 2, 28, 33, 3, 6, 109, 68, 0, 1, 116, 97, 10, 2, 28, 33, 0, 4, 1,
+			108, 101, 118, 2, 102, 111, 114, 109, 101, 114, 101, 116, 3, 36, 50, 0, 100, 2, 104, 111, 108, 100, 0, 1, 10, 2, 97, 114, 28, 33,
+			3, 37, 50, 6, 0, 101, 1, 10, 2, 114, 101, 28, 33, 3, 37, 50, 6, 36, 0, 101, 1, 98, 97, 107, 2, 116, 3, 37, 50, 6,
+			109, 0, 7, 6, 105, 115, 0, 116, 1, 10, 2, 28, 33, 12, 12, 12, 3, 7, 37, 89, 47, 0, 116, 1, 10, 2, 105, 107, 28, 33,
+			3, 37, 89, 47, 6, 0, 116, 105, 107, 101, 1, 10, 2, 114, 101, 3, 37, 89, 47, 37, 49, 6, 36, 0, 7, 6, 105, 116, 0, 1,
+			10, 2, 116, 28, 33, 3, 6, 37, 0, 1, 10, 2, 28, 33, 3, 6, 37, 47, 0, 1, 10, 2, 97, 110, 28, 33, 3, 37, 47, 6,
+			0, 105, 111, 110, 1, 10, 2, 28, 33, 3, 37, 91, 6, 39, 50, 0, 7, 6, 105, 118, 0, 4, 8, 116, 97, 116, 115, 3, 6, 37,
+			58, 0, 8, 116, 107, 97, 114, 116, 110, 111, 107, 0, 4, 8, 97, 110, 3, 6, 37, 84, 0, 8, 99, 115, 97, 108, 0, 8, 100, 110,
+			117, 114, 101, 103, 0, 8, 107, 114, 97, 0, 8, 115, 105, 99, 101, 100, 0, 8, 115, 114, 117, 107, 0, 8, 115, 115, 97, 109, 0, 8,
+			115, 166, 195, 104, 100, 97, 0, 8, 116, 97, 105, 116, 105, 110, 105, 0, 8, 116, 97, 108, 117, 103, 101, 114, 0, 8, 116, 107, 101, 112,
+			115, 114, 101, 112, 0, 8, 116, 107, 101, 114, 105, 100, 0, 8, 116, 107, 101, 116, 101, 100, 0, 8, 116, 111, 109, 0, 8, 116, 111, 109,
+			111, 107, 111, 108, 0, 8, 116, 112, 97, 100, 97, 0, 8, 116, 112, 117, 114, 101, 0, 8, 116, 114, 101, 115, 115, 97, 0, 8, 116, 114,
+			111, 98, 97, 0, 8, 116, 114, 111, 112, 115, 0, 8, 116, 115, 97, 114, 116, 110, 111, 107, 0, 8, 116, 115, 101, 103, 105, 100, 0, 8,
+			116, 117, 107, 101, 115, 107, 101, 0, 7, 6, 109, 101, 0, 116, 8, 114, 117, 111, 103, 3, 65, 6, 36, 0, 110, 116, 1, 10, 3, 65,
+			6, 36, 50, 47, 0, 4, 110, 116, 1, 101, 115, 115, 111, 100, 110, 101, 3, 65, 6, 112, 68, 0, 110, 116, 8, 97, 114, 101, 112, 109,
+			101, 116, 0, 110, 116, 8, 101, 98, 109, 97, 106, 110, 101, 0, 110, 116, 8, 101, 99, 97, 108, 112, 101, 100, 0, 110, 116, 8, 101, 99,
+			110, 97, 118, 97, 0, 110, 116, 8, 101, 100, 114, 97, 98, 109, 111, 98, 0, 110, 116, 8, 101, 103, 97, 103, 110, 101, 0, 110, 116, 8,
+			101, 103, 110, 97, 104, 99, 0, 110, 116, 8, 101, 103, 110, 97, 114, 114, 97, 0, 110, 116, 8, 101, 104, 99, 97, 116, 101, 100, 0, 110,
+			116, 8, 101, 108, 98, 184, 195, 109, 0, 110, 116, 8, 101, 108, 103, 101, 114, 0, 110, 116, 8, 101, 108, 108, 101, 118, 105, 110, 0, 110,
+			116, 8, 101, 108, 112, 112, 117, 115, 0, 110, 116, 8, 101, 110, 105, 102, 102, 97, 114, 0, 110, 116, 8, 101, 110, 110, 111, 98, 97, 0,
+			110, 116, 8, 101, 110, 110, 111, 116, 97, 107, 0, 110, 116, 8, 101, 110, 114, 101, 118, 117, 103, 0, 110, 116, 8, 101, 115, 115, 97, 108,
+			107, 0, 110, 116, 8, 101, 115, 115, 105, 108, 98, 97, 116, 101, 0, 110, 116, 8, 101, 115, 115, 105, 116, 114, 101, 118, 97, 0, 110, 116,
+			8, 101, 115, 115, 105, 116, 114, 101, 118, 105, 100, 0, 110, 116, 8, 101, 115, 115, 111, 110, 97, 107, 0, 110, 116, 8, 101, 115, 115, 111,
+			112, 0, 110, 116, 8, 101, 116, 107, 97, 114, 116, 0, 110, 116, 8, 101, 116, 114, 97, 112, 101, 100, 0, 110, 116, 8, 101, 118, 97, 108,
+			0, 110, 116, 8, 105, 108, 112, 109, 111, 107, 0, 110, 116, 8, 105, 116, 110, 101, 115, 115, 101, 114, 0, 110, 116, 8, 105, 116, 114, 111,
+			115, 0, 4, 110, 116, 8, 101, 108, 97, 110, 103, 105, 115, 3, 65, 7, 112, 68, 0, 110, 116, 8, 101, 110, 110, 111, 115, 166, 195, 114,
+			0, 116, 1, 114, 117, 111, 103, 3, 65, 36, 0, 4, 110, 116, 101, 1, 101, 108, 103, 101, 114, 2, 114, 101, 116, 3, 65, 36, 50, 47,
+			6, 36, 0, 110, 116, 101, 8, 101, 108, 103, 101, 114, 2, 114, 101, 0, 110, 116, 101, 108, 8, 117, 114, 116, 115, 110, 105, 3, 65, 36,
+			50, 47, 6, 36, 55, 0, 110, 116, 101, 108, 1, 117, 114, 116, 115, 110, 105, 3, 65, 36, 50, 47, 36, 55, 0, 4, 110, 2, 116, 117,
+			115, 105, 97, 115, 3, 65, 112, 68, 0, 110, 116, 1, 97, 114, 101, 112, 109, 101, 116, 0, 110, 116, 1, 101, 98, 109, 97, 106, 110, 101,
+			0, 110, 116, 1, 101, 99, 97, 108, 112, 101, 100, 0, 110, 116, 1, 101, 99, 110, 97, 118, 97, 0, 110, 116, 1, 101, 100, 114, 97, 98,
+			109, 111, 98, 0, 110, 116, 1, 101, 103, 97, 103, 110, 101, 0, 110, 116, 1, 101, 103, 110, 97, 104, 99, 0, 110, 116, 1, 101, 103, 110,
+			97, 114, 114, 97, 0, 110, 116, 1, 101, 104, 99, 97, 116, 101, 100, 0, 110, 116, 1, 101, 108, 97, 110, 103, 105, 115, 0, 110, 116, 1,
+			101, 108, 98, 184, 195, 109, 0, 110, 116, 1, 101, 108, 103, 101, 114, 0, 110, 116, 1, 101, 108, 108, 101, 118, 105, 110, 0, 110, 116, 1,
+			101, 108, 112, 112, 117, 115, 0, 110, 116, 1, 101, 110, 105, 102, 102, 97, 114, 0, 110, 116, 1, 101, 110, 110, 111, 98, 97, 0, 110, 116,
+			1, 101, 110, 110, 111, 115, 166, 195, 114, 0, 110, 116, 1, 101, 110, 110, 111, 116, 97, 107, 0, 110, 116, 1, 101, 110, 114, 101, 118, 117,
+			103, 0, 110, 116, 1, 101, 115, 115, 97, 108, 107, 0, 110, 116, 1, 101, 115, 115, 105, 108, 98, 97, 116, 101, 0, 110, 116, 1, 101, 115,
+			115, 105, 116, 114, 101, 118, 97, 0, 110, 116, 1, 101, 115, 115, 105, 116, 114, 101, 118, 105, 100, 0, 110, 116, 1, 101, 115, 115, 111, 110,
+			110, 111, 107, 0, 110, 116, 1, 101, 115, 115, 111, 112, 0, 110, 116, 1, 101, 116, 107, 97, 114, 116, 0, 110, 116, 1, 101, 116, 114, 97,
+			112, 101, 100, 0, 110, 116, 1, 101, 118, 97, 108, 0, 110, 116, 1, 105, 108, 112, 109, 111, 107, 0, 110, 116, 1, 105, 116, 110, 101, 115,
+			115, 101, 114, 0, 110, 116, 1, 105, 116, 114, 111, 115, 0, 7, 6, 110, 100, 0, 4, 1, 97, 101, 110, 2, 101, 114, 3, 8, 50, 72,
+			0, 1, 97, 109, 97, 2, 97, 0, 1, 97, 110, 114, 101, 102, 2, 111, 0, 1, 97, 115, 115, 105, 108, 103, 2, 111, 0, 1, 101, 107,
+			115, 105, 2, 101, 114, 117, 110, 0, 4, 1, 17, 65, 3, 50, 0, 1, 97, 98, 2, 101, 108, 0, 1, 97, 98, 32, 103, 101, 106, 2,
+			101, 114, 0, 1, 97, 98, 32, 117, 100, 2, 101, 114, 0, 1, 97, 98, 114, 111, 102, 2, 101, 114, 0, 1, 97, 104, 2, 101, 108, 0,
+			1, 97, 108, 0, 1, 97, 108, 2, 97, 114, 0, 1, 97, 112, 2, 101, 108, 111, 107, 0, 1, 97, 116, 115, 2, 12, 0, 1, 97, 118,
+			2, 97, 102, 0, 1, 101, 2, 101, 12, 0, 1, 101, 2, 101, 108, 105, 103, 0, 1, 101, 107, 2, 101, 108, 0, 1, 105, 2, 101, 114,
+			107, 114, 101, 100, 115, 12, 0, 1, 105, 2, 101, 114, 108, 12, 0, 1, 105, 2, 101, 114, 115, 116, 12, 0, 1, 105, 2, 105, 109, 101,
+			108, 108, 101, 109, 0, 1, 105, 98, 2, 101, 0, 1, 105, 98, 2, 105, 110, 0, 1, 105, 102, 2, 12, 0, 1, 105, 102, 2, 101, 108,
+			195, 184, 110, 0, 1, 105, 109, 2, 101, 0, 1, 105, 116, 2, 105, 110, 0, 1, 105, 118, 2, 101, 0, 1, 105, 118, 2, 105, 110, 0,
+			1, 105, 118, 107, 0, 1, 105, 118, 115, 2, 101, 108, 0, 1, 117, 100, 2, 114, 101, 0, 1, 117, 104, 2, 12, 0, 1, 121, 2, 101,
+			108, 0, 1, 121, 108, 112, 2, 114, 0, 1, 165, 195, 2, 101, 108, 105, 0, 1, 165, 195, 104, 2, 97, 114, 0, 2, 101, 108, 115, 101,
+			0, 8, 97, 98, 32, 101, 100, 2, 101, 114, 0, 8, 97, 98, 32, 105, 2, 101, 114, 0, 8, 97, 98, 32, 105, 118, 2, 101, 114, 0,
+			8, 97, 98, 32, 110, 97, 109, 2, 101, 114, 0, 8, 105, 2, 114, 101, 116, 0, 101, 1, 101, 118, 2, 108, 0, 101, 1, 105, 109, 2,
+			108, 105, 0, 101, 1, 117, 115, 105, 109, 2, 108, 105, 103, 0, 110, 1, 17, 65, 0, 101, 1, 105, 118, 101, 2, 108, 105, 3, 50, 13,
+			0, 101, 108, 1, 97, 109, 3, 50, 13, 55, 0, 1, 97, 98, 2, 101, 114, 3, 50, 19, 0, 4, 1, 17, 65, 2, 97, 116, 3, 50,
+			72, 0, 1, 17, 65, 2, 114, 101, 0, 1, 17, 65, 2, 114, 105, 110, 0, 1, 97, 2, 97, 108, 117, 115, 0, 1, 97, 2, 101, 108,
+			0, 1, 97, 2, 101, 115, 98, 106, 0, 1, 97, 2, 114, 101, 0, 1, 97, 2, 121, 0, 1, 97, 98, 2, 97, 103, 101, 0, 1, 97,
+			98, 2, 101, 107, 114, 105, 0, 1, 97, 98, 2, 101, 109, 101, 100, 108, 101, 109, 0, 1, 97, 98, 2, 101, 110, 115, 0, 1, 97, 98,
+			2, 101, 114, 110, 101, 0, 1, 97, 98, 2, 101, 114, 111, 0, 1, 97, 98, 2, 101, 117, 118, 195, 166, 115, 101, 110, 0, 1, 97, 98,
+			2, 105, 116, 0, 1, 97, 103, 2, 97, 0, 1, 97, 103, 2, 101, 114, 101, 0, 1, 97, 104, 2, 105, 0, 1, 97, 107, 115, 2, 97,
+			0, 1, 97, 107, 115, 2, 105, 110, 97, 118, 0, 1, 97, 107, 115, 114, 97, 109, 0, 1, 97, 109, 2, 97, 103, 0, 1, 97, 109, 2,
+			97, 114, 105, 110, 0, 1, 97, 109, 109, 2, 101, 114, 0, 1, 97, 109, 109, 2, 111, 0, 1, 97, 109, 109, 111, 107, 0, 1, 97, 112,
 			2, 97, 0, 1, 97, 114, 101, 118, 2, 97, 0, 1, 97, 114, 105, 109, 2, 97, 0, 1, 97, 115, 2, 97, 108, 0, 1, 97, 116, 115,
 			2, 97, 114, 0, 1, 97, 118, 2, 97, 108, 0, 1, 97, 118, 2, 101, 114, 98, 105, 108, 116, 0, 1, 97, 118, 2, 114, 101, 0, 1,
 			101, 2, 111, 103, 101, 110, 0, 1, 101, 2, 111, 107, 114, 105, 0, 1, 101, 2, 111, 115, 0, 1, 101, 2, 111, 115, 107, 111, 112, 0,
@@ -9576,2852 +8988,2370 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			105, 118, 105, 100, 0, 1, 101, 102, 2, 101, 114, 0, 1, 101, 103, 2, 97, 110, 0, 1, 101, 103, 101, 108, 2, 97, 114, 105, 115, 107,
 			0, 1, 101, 103, 117, 106, 0, 1, 101, 104, 2, 101, 114, 115, 111, 110, 0, 1, 101, 104, 97, 114, 116, 98, 117, 115, 0, 1, 101, 106,
 			101, 2, 101, 108, 0, 1, 101, 107, 2, 105, 115, 0, 1, 101, 108, 98, 2, 101, 0, 1, 101, 108, 101, 2, 105, 103, 0, 1, 101, 112,
-			2, 101, 114, 103, 97, 115, 116, 0, 1, 101, 112, 2, 105, 0, 1, 101, 112, 2, 108, 101, 0, 1, 101, 112, 115, 2, 101, 114, 0, 1,
-			101, 114, 116, 2, 121, 0, 1, 101, 116, 2, 101, 110, 0, 1, 101, 116, 2, 101, 110, 115, 0, 1, 101, 116, 2, 101, 114, 101, 32, 0,
-			1, 101, 116, 110, 105, 2, 97, 110, 116, 0, 1, 101, 116, 115, 0, 1, 101, 116, 116, 105, 109, 105, 100, 0, 1, 101, 117, 110, 105, 109,
-			0, 1, 101, 118, 100, 184, 195, 110, 2, 105, 103, 0, 1, 101, 119, 2, 101, 108, 0, 1, 101, 119, 2, 121, 0, 1, 101, 119, 103, 2,
-			97, 0, 1, 105, 2, 101, 107, 115, 0, 1, 105, 2, 105, 12, 12, 0, 1, 105, 2, 105, 103, 12, 0, 1, 105, 2, 105, 118, 105, 100,
-			0, 1, 105, 2, 111, 101, 117, 0, 1, 105, 2, 111, 107, 105, 0, 1, 105, 2, 111, 107, 116, 114, 105, 110, 101, 114, 101, 0, 1, 105,
-			2, 111, 110, 101, 0, 1, 105, 2, 117, 12, 12, 0, 1, 105, 99, 2, 121, 0, 1, 105, 108, 2, 97, 0, 1, 105, 108, 2, 121, 0,
-			1, 105, 118, 2, 114, 105, 107, 0, 1, 105, 118, 2, 117, 0, 1, 111, 2, 105, 0, 1, 111, 98, 32, 115, 101, 109, 97, 106, 0, 1,
-			111, 107, 2, 101, 109, 110, 101, 114, 101, 0, 1, 111, 107, 2, 101, 110, 115, 0, 1, 111, 107, 2, 105, 0, 1, 111, 107, 2, 111, 108,
-			0, 1, 111, 107, 2, 111, 108, 101, 114, 101, 0, 1, 111, 114, 2, 101, 108, 0, 1, 117, 2, 110, 101, 0, 1, 117, 2, 114, 101, 0,
-			1, 117, 102, 2, 97, 0, 1, 117, 102, 2, 101, 114, 0, 1, 117, 104, 2, 106, 195, 166, 118, 101, 108, 0, 1, 117, 104, 2, 121, 114,
-			0, 1, 117, 107, 101, 115, 0, 1, 117, 109, 2, 101, 114, 105, 110, 103, 0, 1, 117, 114, 32, 101, 116, 115, 2, 101, 0, 1, 117, 114,
-			32, 110, 101, 2, 101, 0, 1, 117, 114, 115, 2, 101, 0, 1, 184, 195, 115, 2, 97, 103, 0, 2, 97, 103, 0, 2, 101, 110, 116, 0,
-			2, 105, 100, 97, 0, 2, 105, 103, 12, 12, 12, 0, 2, 111, 109, 0, 2, 121, 114, 0, 2, 195, 165, 115, 101, 0, 2, 195, 184, 100,
-			0, 2, 195, 184, 114, 0, 8, 105, 2, 101, 114, 32, 12, 0, 8, 105, 2, 121, 0, 8, 105, 102, 2, 101, 108, 0, 8, 105, 103, 97,
-			98, 0, 8, 111, 98, 2, 32, 0, 4, 1, 97, 109, 114, 111, 110, 2, 105, 3, 50, 72, 6, 0, 1, 97, 112, 2, 111, 114, 97, 0,
-			1, 101, 109, 2, 111, 122, 97, 0, 1, 101, 112, 2, 117, 108, 0, 101, 8, 97, 109, 2, 108, 97, 3, 50, 72, 6, 36, 0, 4, 101,
-			1, 97, 98, 2, 107, 114, 105, 3, 50, 72, 14, 0, 101, 1, 97, 98, 2, 108, 101, 100, 101, 114, 12, 0, 101, 1, 97, 98, 2, 109,
-			101, 100, 108, 101, 109, 0, 101, 1, 97, 98, 2, 111, 112, 103, 195, 184, 114, 0, 101, 1, 97, 98, 2, 117, 118, 195, 166, 115, 101, 110,
-			0, 101, 1, 97, 98, 2, 118, 111, 108, 100, 0, 101, 1, 97, 98, 32, 101, 108, 101, 104, 0, 101, 1, 97, 98, 32, 105, 2, 110, 0,
-			101, 1, 97, 98, 32, 110, 105, 100, 0, 101, 1, 97, 98, 32, 110, 105, 109, 0, 101, 1, 97, 98, 32, 115, 0, 101, 1, 97, 98, 32,
-			115, 101, 114, 0, 101, 1, 97, 98, 101, 110, 114, 184, 195, 106, 98, 0, 101, 1, 97, 98, 101, 118, 121, 116, 0, 101, 1, 97, 98, 114,
-			101, 118, 184, 195, 114, 0, 101, 8, 97, 98, 32, 110, 101, 0, 101, 8, 97, 98, 32, 110, 101, 100, 0, 4, 101, 1, 97, 98, 2, 114,
-			111, 3, 50, 72, 14, 6, 0, 101, 1, 105, 109, 2, 110, 97, 111, 0, 4, 105, 103, 1, 101, 118, 3, 50, 72, 37, 0, 105, 103, 1,
-			117, 114, 103, 0, 105, 103, 1, 121, 0, 105, 103, 1, 121, 109, 0, 97, 108, 101, 1, 101, 112, 112, 105, 104, 99, 3, 50, 72, 115, 57,
-			55, 0, 101, 120, 1, 97, 112, 115, 3, 50, 72, 115, 81, 89, 0, 7, 6, 110, 103, 0, 1, 105, 109, 97, 108, 102, 2, 111, 3, 8,
-			50, 81, 0, 1, 105, 102, 2, 114, 101, 3, 8, 68, 0, 1, 97, 114, 111, 2, 117, 3, 8, 68, 81, 0, 1, 97, 114, 111, 2, 101,
-			3, 8, 68, 89, 57, 0, 2, 117, 100, 3, 50, 72, 0, 1, 105, 114, 114, 101, 100, 2, 101, 114, 3, 50, 75, 0, 4, 1, 17, 65,
-			2, 111, 3, 50, 81, 0, 1, 97, 2, 105, 118, 0, 1, 97, 116, 2, 101, 110, 116, 0, 1, 97, 118, 101, 2, 101, 108, 0, 1, 101,
-			103, 2, 105, 118, 12, 0, 1, 101, 103, 114, 111, 109, 2, 114, 121, 0, 1, 101, 104, 2, 101, 109, 0, 1, 101, 104, 2, 105, 118, 0,
-			1, 101, 114, 2, 195, 184, 114, 0, 1, 105, 118, 2, 195, 165, 114, 100, 0, 1, 118, 97, 110, 2, 105, 118, 0, 1, 166, 195, 107, 2,
-			117, 114, 117, 0, 2, 97, 0, 2, 101, 118, 195, 166, 114, 0, 2, 108, 97, 115, 0, 2, 114, 97, 100, 0, 2, 117, 108, 118, 0, 2,
-			121, 109, 110, 97, 115, 116, 0, 2, 195, 166, 108, 100, 0, 2, 195, 166, 110, 103, 101, 114, 0, 8, 97, 2, 17, 65, 0, 8, 105, 102,
-			2, 101, 114, 101, 0, 1, 97, 112, 2, 195, 166, 97, 3, 50, 81, 6, 0, 117, 1, 97, 108, 2, 115, 116, 3, 50, 81, 6, 40, 0,
-			101, 114, 2, 114, 105, 103, 3, 50, 81, 115, 34, 0, 4, 3, 68, 0, 1, 97, 102, 2, 97, 114, 109, 0, 1, 105, 102, 2, 101, 114,
-			101, 110, 12, 0, 4, 1, 97, 2, 105, 111, 103, 114, 3, 68, 81, 0, 1, 105, 116, 2, 101, 110, 116, 0, 1, 117, 102, 2, 101, 114,
-			0, 4, 1, 97, 104, 99, 2, 101, 109, 101, 110, 116, 3, 68, 89, 57, 0, 8, 97, 114, 2, 101, 114, 0, 101, 97, 1, 97, 114, 111,
-			2, 100, 101, 3, 68, 89, 57, 6, 117, 0, 4, 1, 97, 114, 2, 101, 114, 101, 3, 68, 91, 0, 1, 97, 114, 114, 97, 0, 1, 111,
-			108, 108, 97, 2, 101, 0, 101, 114, 1, 105, 102, 3, 68, 108, 0, 7, 6, 111, 110, 0, 8, 108, 97, 115, 3, 6, 108, 68, 0, 110,
-			1, 108, 111, 107, 3, 6, 109, 50, 0, 4, 1, 98, 114, 97, 107, 3, 6, 109, 68, 0, 1, 99, 10, 2, 28, 33, 12, 12, 0, 1,
-			102, 102, 10, 2, 28, 33, 12, 12, 0, 1, 102, 105, 10, 2, 28, 33, 0, 1, 102, 108, 97, 2, 115, 0, 1, 106, 10, 2, 28, 33,
-			12, 12, 0, 1, 108, 10, 2, 28, 33, 12, 12, 0, 1, 112, 10, 2, 28, 33, 12, 12, 0, 1, 114, 114, 101, 112, 0, 1, 115, 166,
-			195, 10, 2, 28, 33, 12, 12, 0, 1, 116, 10, 2, 28, 33, 0, 1, 116, 101, 98, 2, 28, 33, 12, 12, 0, 1, 116, 114, 97, 107,
-			0, 8, 108, 108, 97, 98, 0, 8, 108, 108, 105, 118, 97, 112, 0, 8, 115, 166, 195, 115, 0, 1, 10, 2, 110, 28, 33, 3, 6, 124,
-			0, 4, 1, 21, 2, 28, 33, 12, 12, 12, 3, 6, 124, 50, 0, 1, 102, 101, 108, 10, 2, 28, 33, 0, 1, 102, 111, 10, 2, 28,
-			33, 0, 1, 108, 101, 10, 2, 28, 33, 12, 12, 0, 1, 116, 111, 102, 0, 1, 116, 111, 110, 111, 109, 0, 8, 100, 101, 107, 97, 109,
-			0, 4, 1, 108, 116, 97, 105, 114, 116, 3, 8, 109, 50, 0, 1, 108, 116, 97, 117, 100, 0, 1, 10, 2, 101, 108, 28, 33, 12, 12,
-			3, 39, 50, 0, 4, 1, 98, 98, 105, 103, 3, 109, 50, 0, 1, 98, 101, 100, 101, 114, 0, 1, 101, 110, 0, 1, 101, 114, 102, 0,
-			1, 103, 114, 97, 0, 1, 104, 2, 100, 0, 1, 105, 100, 97, 116, 115, 2, 12, 0, 1, 107, 105, 115, 107, 101, 108, 0, 1, 108, 97,
-			114, 100, 0, 1, 108, 102, 101, 116, 0, 1, 108, 108, 97, 103, 0, 1, 108, 111, 107, 2, 32, 0, 1, 108, 114, 101, 112, 0, 1, 108,
-			114, 111, 0, 1, 110, 97, 98, 105, 108, 0, 1, 112, 2, 116, 0, 1, 115, 2, 100, 0, 1, 115, 105, 98, 0, 1, 115, 105, 108, 97,
-			0, 1, 115, 110, 105, 98, 111, 114, 0, 1, 116, 2, 32, 0, 1, 116, 2, 105, 99, 0, 1, 116, 2, 115, 32, 0, 1, 116, 2, 115,
-			118, 0, 1, 116, 97, 103, 101, 109, 0, 1, 116, 97, 114, 97, 109, 0, 1, 116, 116, 103, 166, 195, 118, 100, 184, 195, 100, 0, 1, 121,
-			114, 98, 109, 101, 0, 2, 100, 18, 69, 0, 2, 116, 111, 108, 0, 8, 109, 2, 116, 101, 32, 0, 110, 1, 114, 100, 2, 105, 110, 103,
-			0, 116, 121, 1, 109, 3, 109, 50, 47, 111, 0, 100, 1, 102, 3, 109, 50, 72, 0, 100, 1, 112, 115, 3, 109, 50, 72, 6, 0, 4,
-			1, 98, 2, 32, 3, 109, 68, 0, 1, 98, 2, 101, 110, 32, 0, 1, 108, 97, 115, 0, 1, 108, 97, 116, 0, 1, 108, 108, 105, 118,
-			97, 112, 0, 1, 110, 103, 0, 1, 114, 98, 0, 1, 115, 166, 195, 115, 0, 103, 1, 107, 0, 98, 111, 110, 1, 98, 3, 109, 68, 71,
-			109, 50, 0, 106, 111, 117, 114, 1, 98, 3, 109, 68, 90, 6, 40, 34, 0, 1, 98, 114, 97, 107, 2, 97, 116, 3, 124, 50, 0, 1,
-			116, 111, 110, 111, 109, 2, 105, 3, 124, 50, 6, 0, 7, 6, 111, 114, 0, 8, 102, 2, 32, 118, 105, 108, 100, 32, 3, 2, 39, 34,
-			0, 8, 102, 2, 104, 111, 108, 100, 101, 3, 2, 108, 0, 101, 116, 97, 103, 8, 102, 2, 115, 111, 109, 3, 2, 108, 112, 6, 47, 117,
-			12, 0, 8, 102, 2, 21, 12, 12, 3, 2, 109, 0, 1, 102, 2, 104, 97, 108, 17, 65, 12, 12, 3, 2, 125, 0, 8, 102, 2, 115,
-			107, 101, 108, 108, 105, 12, 3, 2, 125, 12, 0, 1, 116, 111, 109, 2, 101, 114, 3, 6, 39, 0, 8, 102, 2, 101, 116, 32, 12, 3,
-			6, 39, 14, 0, 4, 1, 100, 2, 28, 33, 12, 3, 6, 39, 34, 0, 1, 100, 97, 101, 10, 2, 28, 33, 0, 1, 102, 10, 2, 28,
-			33, 0, 1, 110, 2, 28, 33, 12, 0, 1, 110, 101, 10, 2, 28, 33, 0, 1, 116, 10, 2, 105, 101, 28, 33, 0, 105, 117, 109, 1,
-			116, 10, 2, 28, 33, 12, 3, 6, 39, 34, 37, 125, 65, 0, 4, 1, 102, 103, 110, 105, 115, 108, 101, 104, 2, 115, 3, 6, 108, 0,
-			1, 112, 101, 114, 2, 116, 101, 114, 0, 8, 107, 115, 101, 2, 116, 101, 3, 6, 108, 12, 0, 100, 8, 107, 107, 97, 3, 6, 108, 12,
-			19, 72, 0, 1, 107, 101, 100, 2, 32, 3, 6, 108, 12, 34, 0, 100, 1, 99, 110, 111, 99, 2, 101, 3, 6, 108, 12, 72, 0, 100,
-			1, 118, 2, 105, 3, 6, 109, 34, 72, 0, 4, 1, 112, 109, 105, 2, 116, 32, 3, 6, 125, 0, 1, 112, 112, 97, 114, 2, 116, 0,
-			8, 102, 2, 104, 111, 108, 100, 12, 0, 8, 102, 2, 109, 101, 12, 12, 0, 4, 1, 102, 111, 114, 112, 2, 109, 97, 3, 6, 125, 12,
-			0, 1, 107, 97, 2, 100, 0, 1, 107, 101, 114, 2, 100, 0, 1, 112, 115, 107, 101, 2, 116, 0, 8, 98, 97, 2, 116, 0, 8, 102,
-			2, 97, 32, 12, 0, 8, 102, 2, 97, 110, 32, 12, 0, 8, 102, 2, 97, 110, 107, 195, 184, 114, 101, 110, 100, 101, 12, 0, 8, 102,
-			2, 97, 110, 110, 195, 166, 118, 110, 116, 12, 0, 8, 102, 2, 97, 110, 115, 97, 116, 12, 0, 8, 102, 2, 97, 110, 115, 116, 105, 108,
-			108, 101, 12, 0, 8, 102, 2, 97, 110, 115, 116, 195, 165, 101, 110, 100, 101, 12, 0, 8, 102, 2, 98, 101, 104, 97, 110, 100, 12, 0,
-			8, 102, 2, 98, 101, 104, 111, 12, 0, 8, 102, 2, 98, 101, 110, 32, 12, 0, 8, 102, 2, 98, 101, 110, 101, 110, 101, 12, 0, 8,
-			102, 2, 98, 101, 110, 101, 116, 12, 0, 8, 102, 2, 98, 101, 110, 115, 12, 0, 8, 102, 2, 98, 101, 114, 101, 100, 12, 0, 8, 102,
-			2, 98, 105, 108, 12, 0, 8, 102, 2, 98, 106, 101, 114, 103, 12, 0, 8, 102, 2, 98, 111, 103, 115, 116, 97, 118, 12, 0, 8, 102,
-			2, 98, 117, 100, 32, 12, 0, 8, 102, 2, 98, 117, 100, 115, 12, 0, 8, 102, 2, 98, 117, 110, 100, 12, 0, 8, 102, 2, 98, 195,
-			184, 110, 12, 0, 8, 102, 2, 99, 101, 110, 115, 117, 114, 12, 0, 8, 102, 2, 100, 97, 110, 115, 101, 114, 12, 0, 8, 102, 2, 100,
-			101, 108, 32, 12, 0, 8, 102, 2, 100, 101, 108, 101, 110, 32, 12, 0, 8, 102, 2, 100, 101, 108, 101, 110, 101, 32, 12, 0, 8, 102,
-			2, 100, 111, 109, 12, 0, 8, 102, 2, 100, 114, 105, 110, 103, 12, 0, 8, 102, 2, 100, 195, 166, 107, 32, 12, 0, 8, 102, 2, 100,
-			195, 166, 107, 107, 101, 110, 101, 12, 0, 8, 102, 2, 100, 195, 166, 107, 115, 12, 0, 8, 102, 2, 102, 97, 100, 101, 114, 12, 0, 8,
-			102, 2, 102, 97, 114, 12, 0, 8, 102, 2, 102, 114, 97, 12, 0, 8, 102, 2, 102, 195, 166, 100, 114, 12, 0, 8, 102, 2, 103, 97,
-			110, 103, 12, 0, 8, 102, 2, 103, 101, 109, 97, 107, 12, 0, 8, 102, 2, 103, 114, 117, 110, 100, 12, 0, 8, 102, 2, 103, 195, 165,
-			114, 100, 12, 0, 8, 102, 2, 103, 195, 166, 110, 103, 101, 114, 12, 0, 8, 102, 2, 103, 195, 166, 114, 101, 12, 0, 8, 102, 2, 104,
-			97, 108, 12, 0, 8, 102, 2, 104, 97, 109, 12, 0, 8, 102, 2, 104, 97, 118, 101, 12, 0, 8, 102, 2, 104, 101, 110, 12, 0, 8,
-			102, 2, 104, 105, 115, 116, 111, 12, 0, 8, 102, 2, 104, 106, 117, 108, 12, 0, 8, 102, 2, 104, 111, 108, 100, 101, 116, 12, 0, 8,
-			102, 2, 104, 117, 100, 12, 0, 8, 102, 2, 104, 117, 115, 12, 0, 8, 102, 2, 104, 195, 165, 110, 100, 12, 0, 8, 102, 2, 104, 195,
-			165, 110, 100, 115, 12, 0, 8, 102, 2, 104, 195, 166, 110, 103, 12, 0, 8, 102, 2, 107, 97, 109, 109, 101, 114, 0, 8, 102, 2, 107,
-			97, 114, 108, 12, 0, 8, 102, 2, 107, 108, 111, 103, 12, 0, 8, 102, 2, 107, 108, 195, 166, 100, 101, 116, 12, 0, 8, 102, 2, 107,
-			111, 110, 116, 111, 114, 12, 0, 8, 102, 2, 107, 114, 111, 112, 12, 0, 8, 102, 2, 107, 118, 105, 110, 100, 101, 12, 0, 8, 102, 2,
-			107, 195, 166, 109, 112, 101, 114, 12, 0, 8, 102, 2, 107, 195, 166, 114, 108, 105, 103, 104, 101, 100, 0, 8, 102, 2, 107, 195, 184, 98,
-			12, 0, 8, 102, 2, 108, 97, 103, 12, 0, 8, 102, 2, 108, 97, 103, 115, 12, 0, 8, 102, 2, 108, 97, 110, 100, 12, 0, 8, 102,
-			2, 108, 101, 109, 12, 0, 8, 102, 2, 108, 121, 100, 12, 0, 8, 102, 2, 108, 121, 115, 12, 0, 8, 102, 2, 108, 195, 166, 98, 101,
-			12, 0, 8, 102, 2, 108, 195, 166, 103, 103, 101, 114, 12, 0, 8, 102, 2, 108, 195, 166, 110, 115, 12, 0, 8, 102, 2, 108, 195, 166,
-			115, 101, 12, 0, 8, 102, 2, 109, 97, 108, 100, 101, 104, 121, 100, 12, 0, 8, 102, 2, 109, 97, 110, 100, 12, 0, 8, 102, 2, 109,
-			98, 97, 114, 12, 0, 8, 102, 2, 109, 98, 114, 195, 184, 100, 12, 0, 8, 102, 2, 109, 101, 108, 105, 103, 12, 0, 8, 102, 2, 109,
-			108, 101, 12, 0, 8, 102, 2, 109, 115, 12, 0, 8, 102, 2, 109, 116, 195, 184, 12, 0, 8, 102, 2, 109, 117, 101, 12, 0, 8, 102,
-			2, 109, 121, 110, 100, 101, 114, 12, 0, 8, 102, 2, 109, 195, 165, 108, 12, 0, 8, 102, 2, 109, 195, 166, 110, 100, 12, 0, 8, 102,
-			2, 110, 97, 118, 110, 12, 0, 8, 102, 2, 110, 101, 109, 32, 12, 0, 8, 102, 2, 110, 101, 109, 116, 32, 12, 0, 8, 102, 2, 111,
-			109, 116, 97, 108, 101, 12, 0, 8, 102, 2, 111, 114, 100, 12, 0, 8, 102, 2, 111, 118, 101, 114, 12, 0, 8, 102, 2, 112, 97, 110,
-			116, 104, 97, 118, 101, 114, 12, 0, 8, 102, 2, 112, 97, 114, 116, 105, 12, 0, 8, 102, 2, 112, 111, 115, 116, 12, 0, 8, 102, 2,
-			112, 114, 97, 107, 116, 105, 107, 12, 0, 8, 102, 2, 112, 114, 101, 109, 105, 101, 114, 101, 12, 0, 8, 102, 2, 112, 114, 111, 103, 114,
-			97, 109, 109, 101, 114, 101, 12, 0, 8, 102, 2, 112, 114, 195, 184, 118, 101, 12, 0, 8, 102, 2, 112, 195, 165, 12, 0, 8, 102, 2,
-			114, 97, 110, 103, 12, 0, 8, 102, 2, 114, 101, 115, 116, 12, 0, 8, 102, 2, 114, 101, 116, 12, 0, 8, 102, 2, 114, 105, 100, 101,
-			114, 12, 0, 8, 102, 2, 114, 105, 103, 101, 12, 0, 8, 102, 2, 114, 117, 100, 101, 12, 0, 8, 102, 2, 114, 195, 165, 100, 32, 12,
-			0, 8, 102, 2, 115, 97, 110, 103, 101, 114, 12, 0, 8, 102, 2, 115, 97, 116, 115, 12, 0, 8, 102, 2, 115, 105, 100, 101, 12, 0,
-			8, 102, 2, 115, 107, 101, 12, 0, 8, 102, 2, 115, 107, 101, 108, 32, 12, 0, 8, 102, 2, 115, 107, 101, 108, 115, 98, 101, 104, 97,
-			110, 100, 108, 12, 0, 8, 102, 2, 115, 107, 101, 108, 115, 108, 195, 184, 115, 12, 0, 8, 102, 2, 115, 107, 101, 114, 12, 0, 8, 102,
-			2, 115, 107, 110, 12, 0, 8, 102, 2, 115, 107, 111, 108, 12, 0, 8, 102, 2, 115, 107, 114, 105, 102, 116, 12, 0, 8, 102, 2, 115,
-			107, 117, 100, 12, 0, 8, 102, 2, 115, 107, 121, 108, 12, 0, 8, 102, 2, 115, 107, 195, 166, 114, 101, 12, 0, 8, 102, 2, 115, 107,
-			195, 166, 114, 109, 12, 0, 8, 102, 2, 115, 108, 97, 103, 12, 0, 8, 102, 2, 115, 108, 97, 103, 32, 12, 0, 8, 102, 2, 115, 108,
-			97, 103, 115, 12, 0, 8, 102, 2, 115, 109, 97, 103, 12, 0, 8, 102, 2, 115, 111, 109, 109, 101, 114, 12, 0, 8, 102, 2, 115, 111,
-			114, 103, 12, 0, 8, 102, 2, 115, 112, 97, 110, 100, 12, 0, 8, 102, 2, 115, 112, 105, 108, 32, 12, 0, 8, 102, 2, 115, 112, 105,
-			108, 108, 101, 110, 101, 12, 0, 8, 102, 2, 115, 112, 105, 108, 108, 101, 116, 12, 0, 8, 102, 2, 115, 112, 105, 114, 12, 0, 8, 102,
-			2, 115, 112, 114, 105, 110, 103, 12, 0, 8, 102, 2, 115, 112, 195, 166, 110, 100, 116, 12, 0, 8, 102, 2, 115, 116, 97, 100, 12, 0,
-			8, 102, 2, 115, 116, 97, 110, 100, 101, 114, 12, 0, 8, 102, 2, 115, 116, 97, 118, 101, 108, 115, 101, 12, 0, 8, 102, 2, 115, 116,
-			97, 118, 110, 12, 0, 8, 102, 2, 115, 116, 98, 111, 116, 97, 110, 105, 107, 12, 0, 8, 102, 2, 115, 116, 107, 97, 110, 100, 105, 100,
-			97, 116, 12, 0, 8, 102, 2, 115, 116, 108, 105, 103, 12, 0, 8, 102, 2, 115, 116, 109, 97, 110, 100, 12, 0, 8, 102, 2, 115, 116,
-			109, 195, 166, 115, 115, 105, 103, 12, 0, 8, 102, 2, 115, 116, 117, 100, 105, 101, 12, 0, 8, 102, 2, 115, 116, 117, 100, 105, 117, 109,
-			12, 0, 8, 102, 2, 115, 116, 117, 101, 12, 0, 8, 102, 2, 115, 116, 118, 195, 166, 115, 101, 110, 12, 0, 8, 102, 2, 115, 116, 122,
-			111, 111, 108, 111, 103, 105, 12, 0, 8, 102, 2, 115, 116, 195, 166, 100, 101, 114, 12, 0, 8, 102, 2, 115, 116, 195, 166, 118, 110, 12,
-			0, 8, 102, 2, 115, 118, 97, 114, 32, 12, 0, 8, 102, 2, 115, 118, 97, 114, 115, 12, 0, 8, 102, 2, 115, 195, 165, 32, 12, 0,
-			8, 102, 2, 115, 195, 166, 100, 101, 12, 0, 8, 102, 2, 115, 195, 166, 116, 12, 0, 8, 102, 2, 116, 97, 110, 100, 12, 0, 8, 102,
-			2, 116, 97, 110, 100, 115, 12, 0, 8, 102, 2, 116, 101, 103, 110, 32, 12, 0, 8, 102, 2, 116, 101, 103, 110, 105, 110, 103, 115, 114,
-			101, 116, 12, 0, 8, 102, 2, 116, 101, 107, 115, 116, 12, 0, 8, 102, 2, 116, 101, 108, 116, 12, 0, 8, 102, 2, 116, 102, 97, 114,
-			101, 110, 100, 101, 12, 0, 8, 102, 2, 116, 105, 100, 12, 0, 8, 102, 2, 116, 105, 108, 12, 0, 8, 102, 2, 116, 108, 195, 184, 98,
-			101, 110, 100, 101, 12, 0, 8, 102, 2, 116, 111, 103, 12, 0, 8, 102, 2, 116, 111, 118, 12, 0, 8, 102, 2, 116, 114, 97, 112, 112,
-			101, 12, 0, 8, 102, 2, 116, 114, 105, 110, 32, 12, 0, 8, 102, 2, 116, 114, 105, 110, 115, 12, 0, 8, 102, 2, 116, 114, 111, 112,
-			12, 0, 8, 102, 2, 116, 114, 121, 107, 12, 0, 8, 102, 2, 116, 117, 110, 103, 101, 12, 0, 8, 102, 2, 116, 195, 166, 110, 100, 101,
-			114, 12, 0, 8, 102, 2, 116, 195, 166, 112, 112, 101, 12, 0, 8, 102, 2, 117, 100, 12, 12, 0, 8, 102, 2, 117, 100, 101, 32, 12,
-			0, 8, 102, 2, 118, 97, 108, 103, 12, 0, 8, 102, 2, 118, 97, 114, 109, 12, 0, 8, 102, 2, 118, 97, 114, 115, 12, 0, 8, 102,
-			2, 118, 97, 115, 107, 32, 12, 0, 8, 102, 2, 118, 101, 106, 101, 110, 12, 0, 8, 102, 2, 118, 195, 166, 114, 101, 108, 115, 101, 12,
-			0, 8, 102, 2, 195, 165, 100, 12, 0, 8, 102, 2, 195, 165, 114, 12, 12, 0, 8, 102, 32, 110, 101, 2, 115, 118, 97, 114, 101, 114,
-			12, 0, 8, 102, 109, 111, 107, 2, 116, 0, 8, 112, 115, 110, 97, 114, 116, 2, 116, 0, 101, 110, 100, 8, 102, 2, 101, 12, 3, 6,
-			125, 12, 4, 36, 50, 0, 4, 8, 102, 2, 102, 117, 108, 100, 101, 110, 100, 116, 12, 3, 6, 125, 12, 12, 0, 8, 102, 2, 109, 102,
-			97, 115, 116, 12, 0, 8, 102, 2, 109, 102, 114, 105, 12, 0, 8, 102, 2, 109, 103, 105, 118, 12, 0, 8, 102, 2, 109, 105, 100, 100,
-			97, 103, 12, 0, 8, 102, 2, 109, 107, 97, 103, 101, 12, 0, 8, 102, 2, 109, 108, 195, 166, 114, 101, 12, 0, 8, 102, 2, 109, 108,
-			195, 184, 115, 12, 0, 8, 102, 2, 109, 110, 105, 110, 103, 12, 0, 8, 102, 2, 109, 111, 114, 12, 0, 8, 102, 2, 109, 112, 114, 101,
-			115, 115, 101, 12, 0, 8, 102, 2, 109, 195, 184, 100, 114, 101, 12, 0, 109, 101, 114, 8, 102, 2, 32, 12, 3, 6, 125, 12, 12, 65,
-			108, 11, 0, 116, 97, 108, 101, 114, 8, 102, 2, 12, 3, 6, 125, 12, 47, 118, 55, 109, 0, 109, 115, 115, 97, 103, 8, 102, 2, 12,
-			3, 6, 125, 12, 65, 89, 4, 89, 117, 0, 4, 100, 2, 101, 110, 116, 108, 105, 103, 12, 3, 6, 125, 12, 72, 0, 100, 2, 110, 105,
-			110, 0, 8, 102, 2, 100, 195, 184, 114, 12, 3, 6, 125, 51, 0, 116, 8, 102, 2, 115, 195, 166, 116, 116, 101, 12, 3, 6, 125, 72,
-			0, 8, 102, 2, 109, 101, 108, 12, 12, 3, 6, 126, 0, 4, 8, 102, 2, 108, 111, 118, 101, 114, 12, 3, 6, 126, 12, 0, 8, 102,
-			2, 108, 121, 103, 116, 101, 12, 0, 101, 8, 102, 2, 17, 67, 114, 12, 12, 3, 6, 127, 12, 14, 0, 1, 10, 2, 105, 115, 107, 28,
-			33, 3, 7, 39, 0, 1, 10, 2, 101, 114, 28, 33, 3, 7, 39, 12, 0, 1, 10, 2, 28, 33, 12, 3, 8, 8, 108, 0, 100, 1,
-			109, 2, 101, 116, 3, 8, 39, 51, 0, 100, 101, 2, 32, 3, 39, 12, 108, 0, 4, 1, 115, 2, 116, 3, 39, 34, 0, 1, 115, 2,
-			116, 101, 0, 1, 116, 115, 2, 116, 0, 1, 118, 2, 18, 76, 12, 0, 1, 118, 115, 2, 101, 12, 0, 8, 2, 97, 0, 8, 102, 2,
-			101, 108, 32, 12, 0, 8, 110, 2, 100, 0, 100, 8, 2, 114, 101, 116, 12, 0, 101, 110, 115, 105, 115, 8, 102, 2, 107, 3, 39, 34,
-			6, 119, 50, 89, 37, 89, 0, 4, 101, 8, 102, 2, 108, 32, 12, 3, 39, 34, 6, 119, 55, 0, 101, 8, 102, 2, 108, 108, 101, 12,
-			0, 101, 108, 1, 109, 0, 109, 3, 39, 34, 65, 0, 100, 1, 107, 2, 114, 101, 110, 103, 3, 39, 34, 72, 0, 100, 114, 117, 112, 3,
-			39, 34, 72, 34, 127, 71, 0, 2, 97, 108, 3, 39, 51, 0, 101, 114, 1, 98, 3, 39, 108, 0, 101, 1, 98, 3, 39, 108, 11, 0,
-			4, 1, 102, 2, 32, 3, 108, 0, 1, 102, 2, 109, 101, 114, 101, 0, 1, 102, 114, 101, 100, 0, 1, 108, 121, 97, 116, 0, 1, 109,
-			117, 104, 0, 1, 116, 107, 101, 114, 0, 1, 116, 107, 101, 115, 0, 8, 102, 2, 102, 111, 114, 121, 115, 101, 114, 117, 109, 12, 0, 8,
-			102, 2, 109, 101, 110, 101, 12, 12, 0, 8, 102, 2, 109, 101, 110, 116, 101, 12, 12, 0, 8, 102, 2, 109, 101, 114, 101, 12, 12, 0,
-			8, 102, 2, 109, 101, 114, 105, 12, 12, 0, 8, 102, 2, 114, 101, 116, 110, 105, 12, 0, 4, 1, 10, 2, 105, 28, 33, 12, 3, 108,
-			6, 0, 8, 102, 2, 101, 108, 115, 107, 12, 12, 0, 8, 102, 2, 114, 101, 116, 116, 101, 12, 0, 101, 8, 102, 2, 110, 12, 12, 3,
-			108, 6, 36, 12, 0, 101, 118, 8, 102, 2, 105, 103, 101, 3, 108, 6, 36, 12, 84, 0, 4, 101, 110, 107, 108, 8, 102, 2, 101, 12,
-			3, 108, 6, 36, 50, 49, 55, 0, 101, 110, 107, 108, 8, 102, 2, 105, 110, 103, 0, 108, 101, 97, 110, 115, 8, 3, 108, 12, 55, 36,
-			50, 89, 0, 4, 100, 1, 102, 2, 12, 3, 108, 12, 72, 0, 100, 1, 103, 2, 111, 110, 0, 100, 8, 108, 2, 32, 0, 100, 8, 108,
-			2, 101, 114, 32, 0, 116, 104, 1, 110, 3, 108, 12, 87, 0, 4, 100, 1, 107, 2, 101, 108, 3, 108, 34, 72, 0, 100, 1, 118, 2,
-			101, 0, 100, 2, 105, 110, 12, 0, 100, 1, 98, 2, 101, 108, 3, 108, 34, 72, 6, 0, 100, 111, 110, 110, 97, 110, 115, 3, 108, 34,
-			72, 39, 50, 6, 117, 50, 89, 0, 101, 1, 102, 110, 101, 103, 2, 110, 12, 3, 108, 36, 12, 0, 108, 121, 115, 116, 8, 102, 3, 108,
-			55, 6, 132, 89, 72, 0, 100, 2, 114, 117, 107, 3, 108, 72, 6, 0, 1, 102, 115, 105, 109, 2, 115, 116, 195, 165, 3, 109, 0, 1,
-			102, 2, 107, 195, 184, 108, 3, 109, 4, 0, 100, 1, 118, 104, 2, 97, 110, 3, 109, 72, 0, 4, 100, 1, 102, 2, 195, 166, 3, 109,
-			72, 6, 0, 100, 1, 102, 2, 195, 184, 0, 100, 2, 12, 12, 3, 124, 34, 0, 4, 100, 1, 109, 2, 101, 114, 3, 124, 34, 72, 0,
-			100, 1, 116, 2, 101, 110, 101, 110, 12, 0, 100, 8, 116, 2, 12, 12, 0, 100, 105, 115, 107, 1, 110, 3, 124, 34, 72, 111, 89, 81,
-			0, 100, 101, 1, 98, 2, 110, 100, 101, 3, 124, 34, 116, 0, 4, 100, 1, 106, 2, 97, 110, 3, 124, 51, 72, 0, 100, 1, 106, 2,
-			105, 0, 100, 101, 2, 110, 101, 32, 12, 3, 124, 108, 0, 100, 101, 1, 106, 2, 110, 3, 124, 109, 0, 4, 1, 98, 2, 116, 101, 3,
-			125, 0, 1, 102, 2, 101, 110, 0, 1, 102, 2, 116, 101, 114, 12, 0, 1, 110, 2, 109, 0, 1, 112, 2, 116, 114, 195, 166, 116, 0,
-			1, 115, 2, 116, 17, 65, 0, 1, 116, 115, 2, 109, 0, 1, 118, 2, 32, 0, 1, 118, 108, 97, 0, 8, 2, 105, 0, 8, 102, 2,
-			102, 97, 110, 103, 12, 0, 8, 102, 2, 102, 101, 108, 116, 12, 0, 8, 102, 2, 102, 105, 108, 109, 12, 0, 8, 102, 2, 102, 106, 111,
-			114, 12, 0, 8, 102, 2, 102, 111, 114, 100, 12, 0, 8, 102, 2, 102, 111, 114, 102, 111, 100, 12, 0, 8, 102, 2, 102, 111, 114, 115,
-			116, 195, 166, 114, 107, 12, 0, 8, 102, 2, 102, 111, 114, 115, 195, 184, 103, 12, 0, 8, 102, 2, 102, 195, 184, 100, 100, 101, 114, 12,
-			0, 8, 102, 2, 103, 97, 115, 116, 12, 0, 8, 102, 2, 107, 195, 184, 114, 115, 101, 108, 115, 114, 101, 116, 12, 0, 8, 102, 2, 111,
-			114, 100, 110, 0, 8, 102, 2, 115, 107, 121, 108, 100, 116, 12, 3, 125, 6, 0, 8, 102, 2, 107, 97, 110, 116, 12, 3, 125, 6, 12,
-			0, 4, 1, 98, 2, 17, 67, 32, 3, 125, 12, 0, 1, 98, 2, 116, 17, 67, 0, 1, 102, 2, 98, 117, 110, 100, 0, 1, 102, 2,
-			104, 195, 166, 110, 103, 12, 0, 1, 102, 2, 109, 17, 67, 0, 1, 102, 2, 109, 32, 0, 1, 102, 2, 109, 101, 0, 1, 102, 2, 116,
-			32, 0, 1, 102, 100, 117, 2, 115, 107, 101, 0, 1, 109, 2, 102, 0, 1, 109, 2, 109, 0, 1, 109, 2, 115, 101, 0, 1, 110, 2,
-			115, 107, 0, 1, 112, 109, 105, 2, 116, 101, 0, 1, 112, 115, 2, 116, 0, 1, 112, 115, 107, 101, 2, 116, 101, 114, 101, 0, 1, 116,
-			2, 18, 71, 0, 1, 118, 2, 101, 12, 0, 1, 118, 2, 116, 0, 2, 116, 111, 0, 8, 102, 2, 103, 195, 165, 114, 115, 12, 0, 8,
-			102, 2, 107, 108, 195, 166, 100, 101, 12, 0, 8, 102, 2, 114, 105, 110, 103, 32, 0, 8, 102, 2, 114, 105, 110, 103, 101, 110, 0, 4,
-			8, 102, 2, 108, 121, 100, 101, 110, 100, 101, 12, 3, 125, 12, 6, 0, 8, 102, 2, 108, 121, 100, 101, 114, 12, 0, 117, 100, 101, 110,
-			8, 102, 2, 32, 12, 3, 125, 12, 6, 40, 86, 14, 50, 0, 4, 100, 1, 104, 2, 101, 3, 125, 12, 72, 0, 100, 2, 110, 101, 12,
-			0, 116, 1, 102, 2, 115, 195, 166, 116, 0, 100, 114, 101, 2, 12, 3, 125, 12, 72, 34, 108, 0, 101, 1, 102, 2, 115, 17, 67, 12,
-			3, 125, 12, 125, 0, 1, 112, 2, 116, 3, 125, 34, 0, 100, 2, 114, 101, 116, 105, 108, 12, 3, 125, 34, 72, 0, 1, 109, 117, 104,
-			2, 105, 3, 125, 51, 0, 100, 101, 97, 117, 120, 1, 98, 3, 125, 51, 72, 6, 124, 0, 105, 101, 110, 2, 116, 101, 114, 3, 125, 57,
-			13, 50, 0, 109, 111, 110, 8, 104, 3, 125, 65, 6, 39, 50, 0, 101, 8, 102, 2, 21, 12, 12, 3, 125, 126, 0, 103, 101, 1, 109,
-			3, 125, 126, 14, 0, 1, 118, 104, 3, 126, 0, 4, 1, 107, 2, 116, 3, 126, 12, 0, 1, 107, 2, 116, 17, 65, 0, 4, 100, 2,
-			101, 110, 12, 3, 126, 72, 0, 100, 2, 101, 110, 101, 110, 12, 0, 100, 101, 110, 1, 110, 3, 126, 109, 50, 0, 7, 6, 112, 104, 0,
-			2, 105, 108, 3, 83, 0, 111, 101, 3, 83, 37, 0, 105, 108, 108, 105, 112, 112, 101, 3, 83, 37, 55, 6, 37, 12, 48, 0, 105, 108,
-			97, 100, 101, 108, 112, 104, 105, 97, 3, 83, 37, 55, 117, 72, 6, 115, 55, 83, 37, 117, 0, 7, 6, 116, 105, 0, 4, 1, 105, 99,
-			105, 100, 110, 101, 112, 112, 97, 2, 115, 3, 8, 47, 37, 0, 1, 105, 103, 110, 105, 110, 101, 109, 2, 115, 0, 1, 105, 103, 110, 121,
-			114, 97, 108, 2, 115, 0, 1, 105, 107, 97, 114, 2, 115, 0, 1, 105, 107, 110, 111, 114, 98, 2, 115, 0, 1, 105, 108, 117, 108, 108,
-			101, 99, 2, 115, 0, 1, 105, 114, 101, 116, 102, 105, 100, 2, 115, 0, 1, 105, 114, 116, 115, 97, 103, 2, 115, 0, 1, 105, 116, 97,
-			112, 101, 104, 2, 115, 0, 1, 110, 97, 114, 101, 2, 115, 0, 115, 1, 115, 97, 112, 3, 47, 6, 37, 89, 0, 108, 1, 114, 2, 32,
-			3, 47, 36, 55, 0, 4, 108, 2, 98, 97, 103, 101, 3, 47, 36, 55, 6, 0, 108, 2, 102, 111, 114, 110, 0, 108, 2, 102, 114, 101,
-			100, 115, 0, 108, 2, 102, 195, 166, 108, 100, 105, 103, 0, 108, 2, 102, 195, 166, 108, 108, 101, 115, 0, 108, 2, 103, 111, 100, 101, 104,
-			97, 118, 101, 110, 100, 101, 0, 108, 2, 103, 111, 100, 101, 115, 101, 0, 108, 2, 103, 111, 100, 101, 115, 101, 100, 100, 101, 108, 0, 108,
-			2, 103, 111, 100, 101, 115, 107, 114, 105, 118, 101, 0, 108, 2, 103, 114, 117, 110, 100, 108, 105, 103, 103, 101, 110, 100, 101, 0, 108, 2,
-			103, 195, 166, 110, 103, 101, 108, 105, 103, 0, 108, 2, 105, 110, 116, 101, 116, 103, 195, 184, 114, 101, 0, 108, 2, 105, 110, 116, 101, 116,
-			103, 195, 184, 114, 101, 108, 115, 101, 0, 108, 2, 107, 101, 110, 100, 101, 103, 105, 118, 101, 0, 108, 2, 107, 101, 110, 100, 101, 103, 105,
-			118, 101, 108, 115, 101, 0, 108, 2, 108, 97, 100, 101, 108, 105, 103, 0, 108, 2, 108, 105, 103, 101, 0, 108, 2, 108, 105, 103, 101, 109,
-			101, 100, 0, 108, 2, 108, 121, 107, 107, 101, 0, 108, 2, 111, 118, 101, 114, 115, 0, 108, 2, 112, 97, 115, 32, 0, 108, 2, 114, 101,
-			116, 116, 101, 108, 195, 166, 103, 103, 101, 0, 108, 2, 114, 101, 116, 116, 101, 118, 105, 115, 101, 0, 108, 2, 114, 101, 116, 116, 101, 118,
-			105, 115, 110, 105, 110, 103, 0, 108, 2, 115, 97, 109, 109, 101, 110, 0, 108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 109, 101, 110, 0,
-			108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 109, 101, 116, 0, 108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 115, 116, 0, 108, 2, 115,
-			116, 101, 100, 101, 107, 111, 109, 115, 116, 0, 108, 2, 115, 116, 101, 100, 101, 108, 105, 103, 0, 108, 2, 115, 116, 101, 100, 101, 118, 195,
-			166, 114, 0, 108, 2, 115, 116, 101, 100, 101, 118, 195, 166, 114, 101, 108, 115, 101, 0, 108, 2, 115, 116, 101, 100, 101, 118, 195, 166, 114,
-			101, 110, 100, 101, 0, 108, 2, 115, 116, 114, 195, 166, 107, 107, 101, 108, 105, 103, 0, 108, 2, 115, 121, 110, 101, 107, 111, 109, 115, 116,
-			0, 108, 2, 115, 121, 110, 101, 108, 97, 100, 101, 110, 100, 101, 0, 1, 115, 97, 98, 2, 111, 110, 3, 72, 57, 0, 4, 1, 10, 2,
-			111, 110, 12, 3, 91, 0, 1, 97, 112, 2, 101, 110, 116, 0, 1, 107, 97, 2, 101, 0, 1, 107, 101, 108, 2, 101, 0, 1, 111, 118,
-			107, 2, 101, 110, 0, 2, 195, 184, 115, 12, 0, 7, 6, 195, 165, 0, 1, 115, 97, 106, 2, 32, 3, 6, 108, 0, 4, 1, 116, 115,
-			100, 111, 109, 105, 117, 2, 101, 108, 105, 103, 3, 6, 125, 0, 114, 1, 110, 114, 111, 118, 104, 0, 4, 1, 112, 110, 101, 118, 111, 2,
-			32, 3, 6, 126, 0, 1, 112, 165, 195, 103, 2, 109, 111, 100, 0, 101, 1, 103, 100, 110, 117, 2, 108, 105, 103, 0, 101, 1, 110, 112,
-			111, 2, 108, 105, 103, 0, 101, 1, 116, 115, 100, 111, 109, 105, 117, 2, 108, 105, 103, 0, 101, 1, 116, 115, 114, 111, 102, 2, 108, 105,
-			103, 0, 101, 1, 116, 115, 165, 195, 112, 2, 108, 105, 103, 0, 4, 1, 108, 98, 2, 21, 3, 108, 0, 1, 112, 115, 2, 100, 111, 109,
-			0, 1, 112, 115, 2, 107, 111, 110, 101, 0, 1, 112, 115, 2, 107, 118, 105, 110, 100, 101, 0, 1, 112, 115, 2, 109, 97, 110, 100, 0,
-			1, 112, 115, 2, 109, 195, 166, 110, 100, 0, 1, 114, 2, 100, 100, 12, 0, 1, 114, 2, 100, 102, 12, 0, 1, 114, 2, 100, 103, 12,
-			0, 1, 114, 2, 100, 104, 12, 0, 1, 114, 2, 100, 108, 195, 184, 115, 0, 1, 114, 2, 100, 109, 97, 110, 100, 0, 1, 114, 2, 100,
-			110, 12, 0, 1, 114, 2, 100, 115, 108, 0, 1, 114, 2, 100, 115, 110, 97, 114, 0, 1, 114, 2, 100, 115, 112, 0, 1, 114, 2, 100,
-			118, 105, 108, 100, 0, 1, 114, 2, 100, 121, 114, 0, 1, 114, 2, 115, 101, 106, 108, 0, 1, 114, 116, 2, 100, 116, 12, 0, 1, 115,
-			2, 32, 102, 195, 165, 0, 1, 115, 2, 32, 115, 110, 97, 114, 116, 0, 1, 115, 2, 107, 97, 108, 100, 0, 1, 115, 2, 109, 195, 166,
-			110, 100, 0, 1, 115, 2, 118, 101, 108, 0, 1, 115, 116, 108, 97, 0, 8, 115, 32, 114, 97, 118, 2, 32, 0, 100, 2, 115, 3, 108,
-			86, 0, 4, 1, 100, 2, 100, 121, 114, 3, 109, 0, 1, 106, 116, 115, 0, 1, 108, 115, 2, 98, 114, 111, 107, 0, 1, 108, 115, 2,
-			115, 0, 1, 109, 2, 108, 108, 195, 184, 115, 12, 0, 1, 109, 2, 108, 116, 105, 100, 12, 0, 1, 109, 2, 116, 0, 1, 109, 115, 2,
-			17, 67, 21, 12, 0, 1, 112, 2, 115, 116, 0, 1, 114, 2, 98, 116, 0, 1, 114, 2, 108, 97, 109, 0, 1, 114, 2, 109, 97, 116,
-			101, 114, 105, 97, 108, 0, 1, 114, 2, 116, 0, 1, 114, 18, 73, 2, 116, 0, 1, 114, 103, 2, 21, 0, 1, 114, 107, 115, 2, 112,
-			0, 1, 114, 116, 115, 2, 100, 195, 184, 100, 0, 1, 114, 116, 115, 2, 102, 111, 114, 107, 111, 114, 116, 0, 1, 114, 116, 115, 2, 104,
-			97, 116, 0, 1, 114, 116, 115, 2, 109, 97, 110, 100, 0, 1, 114, 116, 115, 2, 109, 195, 166, 110, 100, 0, 1, 115, 2, 100, 0, 1,
-			115, 2, 116, 0, 1, 116, 2, 108, 109, 111, 0, 1, 116, 2, 110, 101, 103, 108, 0, 1, 116, 2, 115, 112, 105, 100, 115, 0, 1, 118,
-			2, 100, 116, 0, 2, 108, 116, 105, 0, 2, 110, 100, 0, 2, 116, 0, 8, 112, 0, 108, 101, 100, 101, 115, 1, 115, 3, 109, 55, 36,
-			86, 14, 89, 0, 115, 101, 8, 112, 3, 109, 89, 36, 0, 4, 1, 108, 115, 2, 115, 32, 105, 104, 106, 101, 108, 3, 125, 0, 1, 109,
-			2, 100, 101, 12, 12, 0, 1, 109, 2, 108, 105, 110, 103, 12, 12, 0, 1, 112, 2, 115, 107, 101, 0, 1, 114, 2, 100, 12, 0, 1,
-			114, 103, 2, 100, 0, 1, 114, 103, 2, 110, 101, 0, 1, 114, 116, 2, 100, 12, 0, 1, 115, 0, 2, 17, 67, 101, 0, 2, 101, 116,
-			32, 0, 114, 1, 104, 0, 114, 1, 108, 115, 110, 97, 0, 114, 8, 2, 32, 0, 114, 101, 3, 125, 2, 125, 0, 4, 1, 115, 2, 104,
-			32, 3, 125, 12, 0, 2, 108, 101, 0, 114, 1, 104, 2, 100, 116, 0, 114, 2, 21, 0, 114, 2, 115, 0, 114, 100, 1, 103, 0, 114,
-			100, 101, 115, 116, 1, 104, 3, 125, 12, 14, 89, 47, 0, 114, 100, 101, 110, 3, 125, 12, 108, 50, 0, 114, 100, 101, 1, 103, 3, 125,
-			12, 109, 0, 100, 1, 98, 2, 101, 12, 3, 125, 86, 0, 100, 110, 101, 1, 114, 116, 2, 116, 3, 125, 86, 50, 115, 0, 114, 100, 101,
-			1, 104, 3, 125, 125, 0, 114, 101, 114, 3, 125, 125, 20, 0, 114, 101, 116, 3, 125, 126, 86, 0, 4, 3, 126, 0, 1, 98, 2, 100,
-			0, 1, 103, 2, 116, 117, 114, 0, 1, 108, 115, 102, 97, 2, 115, 0, 1, 108, 115, 103, 110, 105, 100, 110, 166, 195, 116, 2, 115, 0,
-			1, 108, 115, 110, 97, 0, 1, 109, 115, 103, 97, 108, 115, 2, 108, 0, 1, 109, 115, 103, 114, 184, 195, 112, 115, 2, 108, 0, 1, 109,
-			115, 114, 101, 100, 111, 109, 2, 108, 0, 1, 110, 2, 101, 116, 0, 1, 110, 21, 2, 101, 116, 0, 2, 115, 0, 114, 1, 17, 67, 2,
-			32, 0, 114, 1, 108, 0, 114, 1, 116, 115, 2, 32, 0, 4, 114, 1, 21, 2, 32, 3, 126, 12, 0, 114, 1, 115, 2, 17, 67, 0,
-			100, 1, 98, 2, 101, 110, 12, 3, 126, 86, 0, 4, 1, 118, 2, 98, 101, 110, 3, 128, 0, 1, 118, 2, 103, 110, 0, 7, 6, 195,
-			166, 0, 4, 1, 100, 101, 108, 166, 195, 107, 2, 103, 103, 101, 3, 6, 115, 0, 1, 108, 105, 108, 97, 103, 0, 8, 100, 97, 102, 2,
-			115, 101, 0, 8, 108, 105, 98, 117, 106, 0, 8, 109, 111, 100, 2, 110, 101, 0, 8, 114, 103, 105, 109, 2, 110, 101, 0, 8, 114, 111,
-			109, 2, 110, 101, 12, 0, 8, 116, 110, 97, 114, 97, 107, 2, 110, 101, 0, 8, 116, 110, 111, 102, 2, 110, 101, 0, 1, 102, 2, 114,
-			101, 3, 6, 115, 12, 0, 114, 114, 101, 1, 118, 115, 101, 100, 3, 6, 115, 110, 108, 0, 4, 1, 102, 111, 114, 116, 3, 6, 116, 0,
-			1, 104, 102, 97, 2, 110, 103, 105, 103, 0, 1, 112, 111, 116, 114, 111, 2, 100, 0, 1, 114, 101, 118, 117, 115, 2, 110, 0, 1, 116,
-			115, 101, 106, 97, 109, 2, 116, 0, 8, 108, 97, 112, 0, 8, 108, 101, 99, 114, 111, 112, 2, 110, 0, 8, 108, 105, 108, 97, 103, 2,
-			101, 114, 0, 8, 108, 121, 112, 111, 114, 112, 2, 101, 114, 0, 8, 109, 97, 114, 97, 2, 101, 114, 0, 8, 109, 103, 121, 112, 0, 8,
-			110, 97, 97, 110, 97, 107, 2, 101, 114, 0, 8, 110, 101, 104, 116, 97, 2, 101, 114, 0, 8, 112, 111, 114, 117, 101, 2, 101, 114, 0,
-			8, 114, 97, 122, 97, 110, 2, 101, 114, 0, 8, 114, 98, 101, 104, 2, 101, 114, 0, 8, 114, 105, 115, 97, 110, 2, 101, 114, 0, 8,
-			114, 111, 103, 97, 104, 116, 121, 112, 2, 101, 114, 0, 8, 114, 117, 107, 105, 112, 101, 2, 101, 114, 0, 8, 115, 105, 114, 97, 102, 2,
-			101, 114, 0, 8, 118, 105, 2, 114, 107, 115, 195, 166, 116, 0, 4, 114, 1, 118, 101, 103, 3, 6, 116, 110, 0, 114, 1, 118, 115, 101,
-			98, 2, 32, 0, 110, 1, 114, 102, 101, 114, 3, 6, 117, 68, 0, 8, 114, 116, 114, 111, 112, 2, 116, 3, 6, 120, 0, 8, 116, 115,
-			109, 111, 2, 110, 100, 3, 7, 116, 0, 114, 1, 10, 2, 28, 33, 3, 7, 116, 34, 0, 4, 1, 106, 115, 2, 108, 101, 3, 115, 0,
-			1, 114, 2, 17, 67, 17, 65, 0, 1, 114, 2, 17, 67, 18, 69, 0, 1, 114, 2, 18, 67, 12, 0, 1, 114, 2, 18, 67, 101, 12,
-			0, 1, 114, 2, 115, 0, 1, 114, 100, 2, 98, 101, 114, 0, 1, 114, 100, 2, 110, 12, 0, 1, 114, 112, 2, 107, 0, 1, 114, 116,
-			2, 17, 67, 101, 12, 12, 12, 0, 1, 114, 116, 2, 110, 12, 12, 12, 0, 1, 114, 116, 101, 114, 2, 116, 101, 12, 0, 2, 17, 67,
-			101, 0, 2, 98, 108, 101, 0, 2, 98, 110, 101, 0, 8, 114, 111, 102, 2, 100, 101, 12, 12, 0, 2, 103, 121, 112, 116, 3, 115, 6,
-			0, 4, 1, 21, 2, 98, 108, 101, 3, 115, 12, 0, 1, 107, 2, 108, 110, 101, 0, 1, 112, 115, 2, 110, 101, 0, 8, 108, 32, 101,
-			100, 2, 115, 116, 101, 0, 8, 108, 32, 105, 118, 2, 115, 116, 101, 0, 8, 108, 32, 110, 97, 104, 2, 115, 116, 101, 0, 8, 108, 32,
-			110, 117, 104, 2, 115, 116, 101, 0, 118, 108, 3, 115, 40, 55, 0, 4, 103, 1, 17, 67, 2, 101, 3, 115, 57, 0, 103, 1, 114, 116,
-			2, 32, 0, 103, 1, 114, 116, 2, 101, 32, 0, 103, 1, 114, 116, 2, 104, 101, 100, 0, 100, 105, 1, 114, 112, 3, 115, 86, 0, 114,
-			103, 1, 17, 67, 2, 101, 3, 115, 110, 123, 0, 4, 3, 116, 0, 1, 106, 115, 2, 108, 0, 1, 106, 115, 2, 108, 101, 110, 0, 1,
-			108, 2, 100, 101, 114, 0, 1, 114, 107, 2, 32, 0, 1, 114, 111, 102, 2, 100, 108, 101, 0, 1, 114, 112, 2, 17, 67, 12, 0, 1,
-			114, 112, 2, 103, 110, 0, 1, 114, 112, 2, 115, 116, 97, 0, 1, 114, 112, 2, 115, 116, 101, 114, 101, 0, 1, 114, 116, 2, 12, 0,
-			1, 114, 116, 2, 101, 0, 2, 17, 67, 11, 12, 0, 2, 108, 100, 12, 0, 2, 108, 112, 101, 12, 0, 2, 110, 100, 0, 108, 100, 1,
-			107, 2, 114, 3, 116, 55, 0, 108, 100, 2, 114, 12, 3, 116, 55, 72, 0, 4, 118, 1, 114, 2, 12, 3, 116, 58, 0, 118, 2, 100,
-			101, 0, 100, 105, 1, 114, 112, 2, 107, 97, 110, 116, 3, 116, 72, 37, 0, 103, 1, 114, 184, 195, 114, 3, 116, 81, 0, 101, 114, 1,
-			116, 3, 116, 110, 0, 114, 114, 101, 64, 3, 116, 110, 108, 0, 114, 105, 110, 100, 101, 3, 118, 110, 50, 14, 0, 114, 105, 110, 100, 101,
-			114, 3, 118, 110, 50, 109, 0, 1, 114, 2, 100, 101, 12, 12, 3, 119, 0, 4, 1, 114, 2, 12, 3, 120, 0, 1, 114, 2, 17, 67,
-			11, 101, 12, 0, 1, 114, 2, 17, 67, 17, 67, 0, 1, 114, 2, 18, 67, 11, 0, 1, 114, 2, 18, 67, 116, 12, 0, 1, 114, 2,
-			100, 12, 0, 1, 114, 2, 109, 0, 1, 114, 2, 116, 12, 0, 1, 114, 18, 73, 2, 17, 67, 0, 1, 114, 103, 2, 115, 0, 1, 114,
-			112, 2, 115, 116, 32, 0, 1, 114, 112, 2, 115, 116, 101, 110, 0, 1, 114, 112, 2, 115, 116, 101, 114, 0, 1, 114, 112, 2, 115, 116,
-			101, 114, 110, 101, 0, 1, 114, 112, 2, 115, 116, 105, 110, 0, 1, 114, 112, 115, 2, 17, 67, 12, 0, 1, 114, 112, 115, 2, 107, 107,
-			0, 1, 114, 114, 2, 17, 67, 101, 114, 12, 0, 1, 114, 116, 2, 17, 67, 12, 12, 12, 0, 1, 114, 116, 2, 45, 0, 1, 114, 116,
-			2, 110, 103, 12, 12, 12, 0, 8, 114, 116, 2, 98, 101, 110, 12, 12, 0, 7, 6, 195, 169, 0, 3, 6, 114, 0, 7, 6, 195, 179,
-			0, 114, 3, 124, 34, 0, 7, 6, 195, 184, 0, 4, 1, 103, 114, 117, 98, 2, 106, 115, 3, 6, 109, 0, 1, 108, 116, 115, 114, 101,
-			98, 111, 2, 106, 116, 110, 97, 110, 116, 0, 8, 108, 108, 97, 104, 2, 106, 0, 4, 8, 109, 97, 2, 98, 101, 3, 6, 132, 0, 8,
-			110, 2, 100, 21, 0, 4, 1, 107, 115, 98, 111, 2, 110, 3, 6, 132, 12, 0, 1, 109, 105, 2, 100, 101, 107, 111, 109, 0, 114, 101,
-			1, 105, 2, 102, 97, 108, 100, 101, 110, 100, 101, 3, 6, 132, 108, 0, 4, 1, 100, 114, 111, 110, 2, 115, 116, 3, 6, 133, 0, 1,
-			100, 121, 115, 2, 115, 116, 0, 8, 102, 102, 117, 97, 104, 99, 2, 114, 0, 8, 106, 108, 105, 109, 0, 8, 110, 97, 109, 2, 118, 114,
-			101, 0, 8, 118, 101, 110, 0, 114, 101, 1, 103, 108, 101, 118, 2, 110, 104, 101, 100, 3, 6, 133, 109, 0, 2, 106, 101, 12, 3, 108,
-			0, 106, 43, 3, 108, 12, 57, 0, 103, 1, 100, 2, 110, 3, 108, 57, 0, 106, 101, 114, 3, 108, 57, 109, 0, 4, 1, 17, 67, 2,
-			106, 3, 109, 0, 1, 104, 2, 106, 0, 2, 106, 110, 0, 4, 103, 1, 18, 74, 2, 12, 3, 109, 57, 0, 103, 1, 103, 2, 108, 0,
-			103, 1, 108, 0, 103, 1, 112, 115, 2, 32, 0, 103, 1, 112, 115, 2, 101, 110, 0, 103, 2, 108, 101, 0, 4, 1, 18, 73, 2, 103,
-			101, 3, 132, 0, 1, 100, 2, 100, 101, 0, 1, 107, 115, 2, 100, 101, 0, 1, 114, 2, 18, 74, 101, 0, 1, 114, 2, 100, 101, 12,
-			0, 1, 114, 2, 103, 101, 108, 115, 101, 0, 1, 114, 2, 118, 101, 0, 1, 114, 2, 118, 101, 114, 105, 0, 1, 114, 100, 2, 110, 101,
-			0, 1, 114, 100, 2, 118, 101, 116, 0, 1, 114, 100, 101, 98, 2, 118, 0, 1, 114, 101, 98, 2, 118, 101, 0, 1, 114, 111, 102, 2,
-			103, 0, 1, 114, 112, 2, 118, 17, 65, 0, 2, 17, 67, 101, 0, 2, 17, 67, 105, 0, 2, 100, 101, 0, 2, 100, 105, 115, 107, 0,
-			4, 1, 108, 107, 2, 101, 32, 3, 132, 12, 0, 1, 114, 2, 118, 101, 114, 0, 104, 1, 98, 0, 114, 1, 112, 115, 2, 103, 115, 3,
-			132, 34, 0, 114, 101, 1, 115, 2, 100, 110, 105, 3, 132, 34, 115, 0, 4, 103, 1, 109, 115, 2, 32, 115, 105, 103, 3, 132, 57, 0,
-			103, 1, 115, 2, 101, 0, 4, 114, 101, 3, 132, 109, 0, 114, 101, 114, 2, 32, 0, 114, 101, 114, 2, 110, 0, 114, 103, 101, 114, 1,
-			112, 115, 2, 32, 3, 132, 110, 0, 114, 103, 101, 1, 112, 115, 3, 132, 110, 108, 0, 4, 3, 133, 0, 1, 98, 2, 110, 0, 1, 100,
-			2, 100, 0, 1, 100, 2, 100, 101, 110, 0, 1, 108, 2, 115, 0, 1, 114, 2, 100, 12, 0, 1, 114, 2, 103, 116, 101, 0, 1, 114,
-			2, 109, 101, 114, 0, 1, 114, 100, 2, 110, 0, 1, 114, 102, 2, 12, 0, 1, 114, 112, 2, 118, 0, 1, 115, 2, 103, 116, 12, 12,
-			0, 2, 17, 67, 11, 12, 12, 0, 2, 100, 115, 0, 2, 100, 116, 0, 2, 110, 115, 0, 2, 114, 110, 101, 110, 101, 0, 103, 1, 114,
-			111, 102, 2, 32, 0, 114, 103, 1, 112, 115, 3, 133, 34, 0, 4, 103, 1, 98, 3, 133, 57, 0, 103, 1, 104, 0, 103, 1, 115, 2,
-			32, 0, 103, 1, 115, 114, 111, 102, 0, 103, 8, 2, 32, 0, 4, 103, 1, 108, 107, 2, 116, 3, 133, 81, 0, 103, 1, 110, 2, 116,
-			101, 114, 110, 0, 103, 103, 1, 108, 103, 0, 4, 100, 1, 107, 3, 133, 86, 0, 100, 116, 8, 110, 2, 32, 0, 1, 114, 2, 118, 3,
-			134, 0, 4, 1, 114, 2, 18, 74, 3, 135, 0, 1, 114, 2, 18, 74, 11, 12, 0, 1, 114, 101, 100, 110, 111, 98, 2, 118, 0, 1,
-			114, 101, 103, 110, 166, 195, 104, 2, 118, 0, 1, 114, 114, 97, 110, 2, 118, 0, 8, 114, 2, 118, 101, 110, 0, 103, 1, 114, 3, 135,
-			57, 0, 115, 1, 10, 2, 28, 33, 3, 6, 133, 89, 0, 114, 1, 103, 10, 2, 28, 33, 3, 7, 132, 12, 110, 0, 114, 1, 10, 2,
-			101, 110, 28, 33, 3, 7, 133, 0, 4, 114, 1, 10, 2, 28, 33, 3, 7, 133, 110, 0, 114, 1, 10, 2, 101, 114, 28, 33, 0, 7,
-			6, 39, 0, 101, 114, 2, 32, 14, 128, 128, 131, 3, 2, 108, 0, 101, 114, 110, 101, 2, 32, 14, 128, 128, 133, 3, 2, 108, 50, 14,
-			0, 101, 114, 110, 101, 115, 2, 32, 14, 128, 128, 134, 3, 2, 108, 50, 14, 89, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 14, 50,
-			0, 101, 116, 2, 32, 14, 128, 128, 131, 3, 14, 86, 0, 115, 2, 32, 14, 128, 128, 130, 3, 89, 0, 101, 114, 101, 2, 32, 14, 128,
-			128, 132, 3, 108, 34, 108, 0, 7, 6, 97, 0, 4, 117, 2, 32, 112, 97, 105, 114, 3, 2, 39, 0, 117, 2, 32, 114, 101, 118, 111,
-			105, 114, 0, 1, 108, 2, 107, 114, 3, 2, 117, 0, 103, 2, 110, 111, 115, 3, 2, 121, 81, 0, 2, 109, 112, 3, 2, 122, 0, 102,
-			8, 114, 101, 100, 2, 32, 3, 4, 117, 0, 110, 103, 101, 108, 111, 1, 108, 101, 104, 99, 105, 109, 3, 6, 19, 35, 50, 72, 19, 90,
-			112, 55, 124, 0, 8, 116, 112, 97, 107, 2, 106, 110, 3, 6, 35, 0, 117, 120, 1, 103, 3, 6, 39, 0, 105, 1, 110, 105, 118, 2,
-			103, 114, 101, 3, 6, 115, 0, 105, 115, 101, 1, 110, 3, 6, 115, 12, 89, 14, 0, 105, 99, 104, 101, 1, 114, 102, 3, 6, 115, 91,
-			0, 105, 1, 116, 110, 111, 99, 2, 110, 3, 6, 116, 57, 0, 4, 1, 98, 97, 108, 97, 2, 109, 3, 6, 117, 0, 1, 98, 101, 108,
-			97, 116, 2, 110, 0, 1, 98, 109, 117, 108, 2, 103, 111, 0, 1, 99, 97, 100, 2, 112, 111, 0, 1, 100, 117, 97, 108, 2, 110, 117,
-			109, 0, 1, 103, 114, 111, 2, 115, 0, 1, 104, 97, 98, 2, 109, 97, 0, 1, 106, 121, 112, 2, 109, 97, 0, 1, 107, 115, 108, 105,
-			116, 2, 100, 101, 0, 1, 108, 97, 2, 115, 107, 0, 1, 108, 97, 112, 2, 118, 101, 114, 12, 0, 1, 108, 105, 112, 2, 116, 117, 115,
-			0, 1, 108, 111, 122, 0, 1, 108, 115, 111, 103, 117, 106, 2, 118, 0, 1, 109, 103, 105, 116, 115, 2, 116, 97, 0, 1, 109, 109, 111,
-			107, 2, 110, 100, 0, 1, 110, 105, 100, 110, 97, 107, 115, 2, 118, 0, 1, 116, 111, 103, 111, 98, 0, 1, 116, 115, 97, 107, 2, 110,
-			106, 101, 0, 1, 116, 115, 97, 116, 101, 109, 2, 115, 101, 0, 1, 116, 115, 107, 101, 2, 115, 0, 1, 116, 115, 110, 97, 114, 111, 102,
-			2, 108, 116, 0, 1, 116, 115, 112, 111, 2, 110, 100, 101, 108, 115, 101, 0, 1, 116, 115, 114, 101, 2, 116, 110, 105, 110, 103, 0, 1,
-			116, 117, 112, 115, 105, 100, 2, 116, 115, 0, 1, 118, 2, 110, 108, 105, 103, 0, 2, 115, 109, 101, 0, 8, 100, 101, 109, 2, 108, 106,
-			101, 0, 8, 105, 100, 110, 105, 2, 110, 97, 0, 8, 105, 115, 117, 116, 110, 101, 2, 115, 0, 8, 107, 97, 107, 2, 111, 0, 8, 107,
-			105, 104, 99, 2, 110, 101, 0, 8, 107, 105, 116, 97, 118, 2, 110, 0, 8, 107, 108, 97, 2, 108, 105, 0, 8, 108, 107, 110, 101, 2,
-			118, 101, 12, 0, 8, 108, 115, 105, 116, 97, 114, 98, 2, 118, 0, 8, 109, 105, 114, 112, 2, 108, 0, 8, 110, 97, 99, 2, 100, 105,
-			101, 114, 0, 8, 110, 109, 121, 103, 2, 115, 116, 0, 8, 110, 121, 100, 2, 109, 111, 0, 8, 111, 2, 115, 101, 0, 8, 112, 109, 105,
-			104, 99, 2, 110, 0, 8, 115, 107, 101, 2, 109, 12, 0, 8, 116, 101, 100, 2, 108, 106, 101, 0, 8, 118, 97, 114, 97, 107, 2, 110,
-			101, 0, 100, 1, 107, 115, 117, 98, 2, 115, 0, 100, 1, 108, 97, 112, 2, 115, 0, 4, 1, 103, 101, 114, 111, 2, 110, 111, 3, 6,
-			117, 12, 0, 1, 108, 105, 109, 2, 110, 111, 0, 1, 116, 114, 97, 107, 2, 103, 111, 0, 8, 112, 109, 105, 2, 108, 97, 0, 4, 100,
-			1, 107, 105, 109, 2, 111, 3, 6, 117, 12, 72, 0, 100, 1, 109, 114, 97, 2, 97, 0, 100, 101, 1, 10, 2, 28, 33, 3, 6, 117,
-			12, 86, 14, 0, 100, 101, 1, 10, 2, 114, 28, 33, 3, 6, 117, 12, 86, 109, 0, 4, 103, 110, 101, 1, 112, 109, 97, 104, 99, 3,
-			6, 117, 50, 57, 14, 0, 103, 110, 101, 8, 112, 109, 97, 107, 0, 100, 1, 118, 101, 110, 2, 97, 3, 6, 117, 72, 0, 100, 111, 1,
-			110, 114, 111, 116, 3, 6, 117, 72, 124, 0, 118, 101, 114, 8, 108, 107, 110, 101, 3, 6, 117, 84, 109, 0, 118, 101, 114, 97, 108, 1,
-			110, 97, 99, 3, 6, 117, 84, 112, 34, 112, 55, 0, 4, 1, 98, 101, 115, 2, 115, 116, 105, 97, 110, 3, 6, 118, 0, 1, 99, 105,
-			112, 2, 115, 115, 111, 0, 1, 100, 101, 112, 112, 117, 115, 2, 115, 0, 1, 100, 114, 101, 100, 110, 117, 2, 110, 105, 103, 0, 1, 100,
-			114, 111, 118, 104, 2, 110, 0, 1, 102, 110, 105, 2, 109, 0, 1, 108, 116, 97, 2, 110, 116, 105, 115, 0, 1, 109, 97, 108, 97, 115,
-			2, 110, 100, 101, 114, 0, 1, 109, 101, 116, 97, 117, 103, 2, 108, 0, 1, 109, 105, 114, 103, 2, 115, 115, 101, 0, 1, 110, 97, 98,
-			2, 110, 0, 1, 110, 105, 104, 2, 110, 0, 1, 112, 111, 116, 2, 115, 0, 1, 114, 101, 118, 111, 2, 108, 116, 0, 1, 115, 101, 109,
-			114, 97, 112, 2, 110, 0, 1, 115, 108, 97, 98, 2, 109, 105, 0, 1, 118, 97, 104, 2, 110, 97, 0, 1, 118, 97, 104, 2, 110, 110,
-			97, 0, 1, 122, 121, 98, 2, 110, 115, 32, 0, 8, 100, 100, 110, 101, 2, 32, 0, 8, 101, 116, 2, 116, 101, 114, 0, 8, 103, 97,
-			112, 111, 114, 112, 2, 110, 100, 0, 8, 107, 97, 109, 2, 98, 0, 8, 107, 97, 116, 115, 2, 116, 101, 114, 0, 8, 107, 110, 111, 107,
-			2, 118, 0, 8, 108, 107, 101, 114, 2, 109, 101, 0, 8, 109, 105, 2, 109, 0, 8, 110, 101, 112, 2, 108, 104, 117, 115, 0, 8, 110,
-			105, 109, 111, 100, 2, 110, 0, 8, 112, 97, 2, 99, 104, 0, 8, 115, 97, 102, 2, 110, 0, 8, 116, 97, 98, 2, 108, 106, 101, 0,
-			8, 116, 107, 111, 2, 118, 0, 8, 118, 97, 115, 2, 110, 110, 101, 0, 8, 118, 105, 114, 112, 2, 116, 0, 100, 8, 108, 106, 101, 115,
-			2, 115, 0, 103, 1, 115, 101, 107, 107, 97, 110, 115, 2, 108, 105, 103, 0, 110, 1, 10, 2, 28, 34, 12, 3, 6, 118, 50, 0, 110,
-			100, 8, 109, 105, 114, 112, 101, 114, 2, 101, 3, 6, 118, 50, 72, 0, 110, 100, 101, 1, 98, 97, 114, 116, 110, 111, 107, 3, 6, 118,
-			50, 72, 14, 0, 110, 115, 1, 10, 2, 28, 33, 3, 6, 118, 50, 89, 0, 108, 1, 10, 2, 28, 33, 12, 3, 6, 118, 55, 0, 4,
-			116, 1, 10, 2, 28, 33, 3, 6, 118, 72, 0, 116, 1, 10, 2, 101, 28, 33, 0, 4, 1, 98, 21, 2, 114, 108, 105, 103, 3, 6,
-			121, 0, 1, 98, 110, 101, 98, 165, 195, 2, 114, 105, 110, 103, 0, 1, 100, 114, 101, 116, 115, 109, 97, 2, 109, 0, 1, 102, 97, 115,
-			2, 114, 105, 0, 1, 102, 114, 101, 2, 114, 0, 1, 103, 110, 101, 2, 110, 103, 0, 1, 112, 115, 101, 98, 2, 114, 105, 110, 103, 0,
-			1, 114, 98, 105, 118, 2, 116, 111, 0, 1, 114, 105, 109, 2, 107, 0, 1, 114, 108, 165, 195, 107, 2, 98, 105, 0, 1, 114, 116, 115,
-			97, 112, 2, 109, 105, 0, 1, 118, 97, 104, 2, 114, 116, 105, 0, 1, 118, 114, 111, 102, 2, 114, 105, 110, 103, 0, 8, 98, 101, 108,
-			108, 101, 104, 2, 114, 100, 0, 8, 98, 109, 111, 108, 2, 114, 100, 0, 8, 98, 111, 103, 110, 111, 108, 2, 114, 100, 0, 8, 103, 105,
-			2, 110, 103, 21, 0, 8, 103, 108, 117, 98, 2, 114, 0, 8, 104, 97, 115, 2, 114, 97, 0, 8, 108, 97, 2, 114, 109, 0, 8, 108,
-			97, 109, 2, 114, 105, 97, 0, 8, 108, 117, 111, 102, 2, 114, 100, 0, 8, 108, 117, 111, 112, 2, 114, 100, 0, 8, 110, 111, 109, 2,
-			114, 107, 0, 8, 111, 105, 100, 97, 114, 2, 107, 116, 105, 0, 8, 114, 97, 2, 98, 101, 114, 0, 8, 114, 97, 98, 2, 107, 0, 8,
-			114, 100, 97, 109, 2, 115, 0, 8, 114, 114, 117, 104, 0, 8, 115, 97, 104, 2, 114, 100, 0, 8, 115, 101, 114, 112, 109, 105, 2, 114,
-			105, 111, 0, 8, 115, 110, 97, 109, 2, 114, 100, 0, 8, 116, 115, 97, 98, 2, 114, 100, 0, 4, 1, 105, 116, 2, 114, 97, 3, 6,
-			121, 12, 0, 1, 108, 115, 105, 2, 109, 0, 8, 111, 108, 107, 2, 107, 12, 0, 103, 104, 1, 109, 114, 97, 0, 117, 8, 115, 115, 105,
-			98, 3, 6, 121, 12, 58, 0, 100, 101, 1, 114, 10, 2, 28, 33, 3, 6, 121, 12, 86, 14, 0, 100, 101, 1, 114, 10, 2, 114, 28,
-			33, 3, 6, 121, 12, 86, 109, 0, 114, 1, 110, 97, 107, 2, 105, 101, 3, 6, 121, 34, 0, 108, 1, 114, 10, 2, 101, 32, 28, 33,
-			12, 3, 6, 121, 55, 0, 4, 117, 1, 110, 111, 114, 116, 115, 97, 2, 116, 3, 6, 121, 58, 0, 118, 1, 104, 110, 101, 98, 184, 195,
-			107, 2, 110, 0, 109, 1, 114, 103, 10, 2, 28, 33, 12, 3, 6, 121, 65, 0, 114, 98, 101, 114, 8, 98, 97, 114, 3, 6, 121, 71,
-			108, 0, 100, 111, 1, 114, 111, 108, 111, 99, 3, 6, 121, 72, 39, 0, 103, 116, 105, 103, 1, 10, 2, 28, 33, 12, 3, 6, 121, 81,
-			47, 37, 0, 117, 114, 101, 114, 8, 115, 111, 110, 105, 100, 3, 6, 121, 123, 34, 108, 0, 117, 114, 8, 115, 111, 110, 105, 100, 3, 6,
-			121, 123, 108, 0, 4, 1, 102, 108, 105, 116, 2, 110, 103, 101, 3, 6, 122, 0, 1, 103, 110, 101, 2, 110, 103, 0, 1, 110, 105, 116,
-			115, 97, 112, 2, 107, 0, 1, 114, 101, 109, 111, 111, 98, 2, 110, 103, 0, 1, 114, 105, 103, 2, 102, 0, 1, 114, 107, 115, 110, 101,
-			112, 112, 97, 114, 2, 108, 100, 101, 0, 1, 114, 116, 97, 101, 116, 2, 108, 0, 1, 116, 115, 101, 103, 2, 112, 111, 0, 1, 118, 97,
-			107, 115, 2, 110, 107, 0, 8, 108, 97, 103, 2, 107, 115, 101, 0, 8, 108, 111, 112, 2, 107, 0, 8, 112, 109, 111, 107, 2, 107, 116,
-			0, 8, 114, 97, 116, 97, 107, 2, 107, 116, 0, 8, 114, 116, 110, 111, 107, 2, 107, 116, 0, 8, 114, 116, 115, 98, 97, 2, 107, 116,
-			0, 8, 114, 116, 115, 107, 101, 2, 107, 116, 0, 8, 115, 107, 101, 2, 107, 116, 0, 8, 115, 111, 107, 2, 107, 0, 8, 115, 115, 97,
-			109, 2, 107, 114, 101, 0, 8, 116, 101, 2, 112, 101, 0, 8, 116, 110, 105, 2, 107, 116, 0, 8, 116, 110, 111, 107, 2, 107, 116, 0,
-			109, 1, 114, 103, 10, 2, 109, 28, 33, 12, 0, 110, 1, 114, 10, 2, 110, 101, 28, 34, 12, 0, 114, 8, 105, 108, 108, 105, 109, 0,
-			114, 8, 105, 108, 108, 105, 114, 116, 0, 116, 1, 114, 10, 2, 28, 33, 3, 6, 122, 47, 0, 110, 1, 114, 10, 2, 28, 34, 12, 3,
-			6, 122, 50, 0, 110, 116, 1, 114, 10, 2, 28, 33, 3, 6, 122, 50, 47, 0, 110, 115, 1, 114, 10, 2, 28, 33, 3, 6, 122, 50,
-			89, 0, 108, 1, 114, 2, 28, 33, 12, 12, 3, 6, 122, 55, 0, 118, 1, 100, 97, 107, 2, 101, 114, 3, 6, 122, 58, 0, 110, 116,
-			1, 114, 117, 97, 116, 115, 101, 114, 3, 6, 122, 68, 0, 4, 110, 99, 101, 1, 10, 2, 28, 33, 3, 6, 122, 68, 89, 13, 0, 110,
-			99, 104, 101, 1, 10, 2, 28, 33, 0, 110, 99, 101, 1, 10, 2, 114, 28, 33, 3, 6, 122, 68, 89, 108, 0, 102, 1, 114, 103, 10,
-			2, 28, 33, 3, 6, 122, 83, 0, 4, 105, 1, 116, 101, 100, 2, 108, 3, 6, 136, 0, 106, 1, 115, 101, 2, 97, 115, 0, 8, 105,
-			107, 121, 115, 112, 2, 116, 3, 7, 117, 0, 98, 1, 10, 2, 108, 101, 28, 33, 3, 7, 117, 71, 0, 116, 1, 10, 2, 116, 28, 33,
-			3, 7, 118, 0, 110, 116, 1, 10, 2, 28, 33, 3, 7, 118, 50, 47, 0, 108, 1, 10, 2, 101, 32, 28, 33, 12, 3, 7, 118, 55,
-			0, 98, 1, 10, 2, 101, 108, 28, 33, 3, 7, 118, 71, 0, 4, 114, 1, 10, 2, 28, 33, 12, 12, 12, 3, 7, 121, 0, 114, 1,
-			10, 2, 105, 97, 116, 28, 33, 0, 110, 99, 101, 1, 121, 111, 118, 2, 28, 33, 3, 7, 121, 68, 89, 0, 1, 108, 114, 111, 102, 2,
-			103, 116, 32, 3, 7, 122, 0, 98, 1, 114, 10, 2, 101, 108, 28, 33, 3, 7, 122, 71, 0, 102, 1, 114, 111, 118, 104, 3, 8, 4,
-			117, 0, 4, 8, 110, 97, 98, 101, 107, 105, 3, 8, 117, 0, 8, 110, 97, 100, 110, 97, 98, 0, 8, 110, 97, 103, 114, 111, 109, 97,
-			116, 97, 102, 0, 8, 110, 97, 107, 114, 97, 0, 8, 110, 97, 117, 104, 105, 114, 97, 109, 0, 8, 110, 97, 118, 114, 105, 110, 0, 8,
-			110, 97, 119, 115, 116, 111, 17, 66, 0, 8, 110, 97, 121, 117, 103, 0, 8, 110, 101, 114, 97, 0, 8, 110, 101, 122, 105, 97, 109, 0,
-			8, 110, 105, 103, 110, 97, 0, 8, 110, 105, 108, 117, 107, 115, 97, 109, 0, 8, 110, 105, 110, 105, 109, 101, 102, 0, 8, 110, 105, 114,
-			97, 107, 111, 0, 8, 110, 105, 114, 97, 109, 0, 8, 110, 105, 114, 97, 115, 116, 0, 8, 110, 105, 114, 97, 122, 0, 8, 110, 105, 114,
-			101, 108, 108, 97, 98, 0, 8, 110, 105, 115, 116, 101, 114, 0, 8, 110, 105, 116, 110, 101, 103, 114, 97, 0, 8, 110, 105, 116, 114, 101,
-			99, 110, 111, 107, 0, 8, 110, 105, 116, 115, 166, 195, 108, 97, 112, 0, 8, 110, 105, 118, 111, 103, 101, 99, 114, 101, 104, 0, 8, 110,
-			110, 97, 105, 115, 111, 104, 0, 8, 110, 110, 111, 100, 97, 109, 0, 8, 110, 110, 111, 100, 97, 109, 105, 114, 112, 0, 8, 110, 111, 109,
-			111, 112, 120, 111, 99, 0, 8, 110, 111, 114, 111, 107, 0, 108, 1, 110, 97, 2, 102, 97, 98, 101, 116, 3, 8, 117, 55, 0, 114, 101,
-			116, 1, 103, 114, 97, 109, 3, 14, 51, 119, 47, 0, 1, 102, 101, 98, 2, 114, 105, 110, 103, 3, 16, 121, 0, 118, 1, 103, 2, 116,
-			121, 118, 3, 19, 35, 123, 0, 4, 110, 97, 103, 101, 1, 119, 115, 3, 21, 0, 118, 101, 8, 100, 0, 118, 111, 110, 100, 97, 108, 101,
-			0, 4, 1, 104, 2, 99, 105, 101, 110, 100, 97, 12, 12, 3, 21, 101, 115, 0, 108, 101, 106, 97, 110, 100, 114, 111, 0, 2, 114, 114,
-			101, 115, 116, 3, 35, 0, 114, 111, 107, 107, 111, 1, 109, 3, 35, 34, 6, 108, 49, 39, 0, 116, 116, 101, 110, 116, 105, 111, 110, 3,
-			35, 47, 6, 115, 50, 91, 13, 50, 0, 98, 101, 114, 110, 97, 107, 1, 116, 3, 35, 71, 108, 50, 6, 35, 49, 0, 103, 103, 105, 111,
-			114, 101, 1, 109, 3, 35, 75, 6, 39, 12, 53, 36, 0, 103, 97, 115, 97, 107, 105, 1, 110, 3, 35, 81, 117, 89, 6, 35, 49, 37,
-			0, 4, 117, 1, 104, 99, 2, 102, 3, 39, 0, 117, 1, 115, 2, 116, 101, 114, 110, 101, 0, 117, 1, 116, 115, 101, 114, 2, 114, 0,
-			117, 2, 32, 110, 97, 116, 117, 114, 101, 108, 0, 117, 120, 8, 102, 0, 117, 98, 101, 114, 103, 105, 110, 3, 39, 71, 36, 34, 91, 6,
-			37, 12, 50, 0, 117, 103, 117, 105, 110, 1, 103, 3, 39, 81, 6, 117, 68, 0, 119, 1, 114, 99, 3, 108, 0, 108, 1, 119, 2, 107,
-			3, 108, 12, 0, 108, 108, 1, 119, 3, 108, 12, 55, 0, 105, 1, 116, 110, 117, 111, 109, 2, 110, 3, 114, 0, 1, 108, 98, 2, 122,
-			101, 114, 3, 115, 0, 1, 114, 2, 99, 101, 114, 45, 12, 3, 115, 12, 0, 105, 114, 101, 1, 108, 99, 3, 115, 12, 34, 0, 105, 114,
-			99, 111, 110, 100, 105, 116, 105, 111, 110, 3, 115, 12, 34, 49, 108, 50, 72, 37, 12, 91, 13, 50, 0, 105, 114, 3, 115, 12, 110, 0,
-			4, 1, 102, 114, 101, 116, 110, 105, 2, 99, 101, 3, 115, 37, 0, 1, 109, 101, 99, 97, 112, 2, 107, 0, 99, 101, 1, 112, 3, 115,
-			37, 89, 0, 4, 1, 108, 2, 115, 101, 114, 101, 110, 3, 115, 57, 0, 1, 108, 2, 115, 101, 114, 110, 101, 115, 0, 1, 108, 2, 115,
-			101, 114, 112, 114, 0, 1, 108, 2, 115, 101, 114, 115, 116, 0, 1, 108, 32, 110, 101, 2, 115, 101, 114, 0, 1, 109, 107, 111, 111, 98,
-			2, 107, 101, 114, 0, 1, 114, 2, 116, 105, 110, 103, 0, 105, 1, 114, 116, 2, 108, 101, 114, 0, 121, 8, 98, 2, 32, 0, 4, 116,
-			101, 1, 109, 121, 97, 108, 112, 3, 115, 57, 47, 0, 116, 101, 8, 116, 0, 116, 105, 101, 1, 107, 3, 115, 57, 47, 37, 0, 116, 101,
-			115, 1, 98, 2, 32, 3, 115, 57, 47, 89, 0, 99, 111, 8, 119, 3, 115, 57, 49, 39, 58, 0, 99, 111, 110, 1, 98, 2, 12, 3,
-			115, 57, 49, 108, 50, 0, 121, 110, 101, 1, 112, 3, 115, 57, 50, 0, 108, 101, 1, 32, 114, 101, 103, 110, 105, 103, 3, 115, 57, 55,
-			0, 109, 121, 8, 3, 115, 57, 65, 37, 0, 100, 101, 1, 119, 3, 115, 57, 72, 0, 100, 121, 1, 114, 98, 3, 115, 57, 72, 37, 0,
-			103, 101, 110, 99, 121, 3, 115, 57, 75, 13, 50, 89, 37, 0, 103, 97, 115, 8, 118, 3, 115, 57, 81, 13, 89, 0, 118, 101, 114, 121,
-			3, 115, 57, 84, 34, 37, 0, 121, 101, 115, 1, 17, 67, 3, 115, 57, 89, 0, 116, 105, 111, 110, 1, 116, 115, 2, 99, 97, 114, 3,
-			115, 57, 91, 14, 50, 0, 104, 97, 98, 8, 3, 115, 57, 107, 118, 71, 0, 4, 1, 114, 2, 99, 101, 114, 98, 97, 110, 101, 12, 3,
-			116, 0, 1, 114, 2, 99, 101, 114, 98, 105, 108, 12, 0, 1, 114, 2, 99, 101, 114, 99, 121, 107, 12, 0, 1, 114, 2, 99, 101, 114,
-			107, 195, 184, 114, 12, 0, 1, 114, 2, 99, 101, 114, 118, 111, 103, 110, 12, 0, 101, 2, 114, 111, 0, 105, 1, 114, 98, 2, 115, 101,
-			114, 0, 105, 2, 109, 97, 98, 101, 108, 0, 105, 100, 115, 3, 116, 37, 72, 89, 0, 4, 1, 104, 2, 115, 116, 105, 110, 103, 3, 116,
-			57, 0, 1, 104, 115, 2, 118, 101, 114, 0, 121, 1, 100, 0, 121, 1, 108, 2, 111, 117, 116, 0, 121, 1, 108, 112, 0, 121, 1, 115,
-			0, 121, 1, 119, 0, 98, 101, 8, 98, 2, 32, 3, 116, 57, 48, 0, 112, 105, 101, 114, 1, 110, 3, 116, 57, 48, 111, 109, 0, 105,
-			108, 1, 116, 107, 99, 111, 99, 3, 116, 57, 55, 0, 98, 121, 1, 98, 2, 12, 3, 116, 57, 71, 111, 0, 107, 101, 115, 1, 108, 102,
-			110, 114, 111, 99, 3, 116, 57, 81, 89, 0, 99, 101, 1, 102, 2, 98, 111, 111, 107, 3, 116, 57, 89, 0, 112, 101, 1, 114, 103, 3,
-			116, 71, 0, 4, 1, 17, 67, 2, 110, 101, 3, 117, 0, 1, 17, 67, 2, 110, 101, 110, 0, 1, 17, 67, 2, 110, 101, 114, 0, 1,
-			18, 67, 2, 98, 108, 101, 0, 1, 18, 73, 2, 18, 75, 18, 69, 0, 1, 18, 74, 2, 18, 67, 101, 12, 0, 1, 18, 75, 2, 109,
-			101, 12, 0, 1, 98, 114, 105, 97, 2, 103, 12, 0, 1, 100, 2, 109, 18, 76, 12, 0, 1, 100, 2, 118, 105, 100, 0, 1, 101, 2,
-			114, 18, 69, 12, 0, 1, 102, 2, 18, 74, 0, 1, 103, 2, 118, 101, 0, 1, 104, 116, 2, 110, 107, 115, 0, 1, 107, 2, 12, 0,
-			1, 107, 2, 112, 18, 76, 12, 0, 1, 108, 2, 98, 101, 0, 1, 108, 2, 118, 101, 110, 100, 101, 108, 0, 1, 108, 98, 2, 100, 101,
-			0, 1, 108, 115, 2, 118, 0, 1, 109, 114, 105, 102, 0, 1, 109, 114, 111, 102, 2, 110, 101, 0, 1, 109, 115, 2, 99, 107, 0, 1,
-			110, 2, 112, 97, 108, 109, 0, 1, 110, 103, 2, 118, 110, 101, 0, 1, 112, 2, 118, 12, 12, 0, 1, 112, 115, 2, 100, 101, 0, 1,
-			114, 2, 110, 99, 104, 12, 0, 1, 114, 2, 110, 115, 105, 103, 116, 0, 1, 114, 99, 2, 99, 107, 12, 0, 1, 114, 101, 116, 102, 101,
-			2, 98, 0, 1, 114, 111, 102, 2, 110, 0, 1, 115, 2, 109, 101, 12, 0, 1, 115, 107, 101, 10, 2, 109, 0, 1, 116, 2, 108, 17,
-			65, 0, 1, 116, 115, 2, 99, 99, 97, 116, 111, 0, 1, 116, 115, 97, 112, 0, 1, 116, 115, 101, 116, 2, 109, 0, 1, 118, 115, 2,
-			98, 0, 2, 17, 67, 101, 0, 2, 100, 101, 12, 0, 2, 100, 101, 110, 0, 2, 100, 114, 101, 115, 115, 12, 12, 0, 2, 100, 118, 97,
-			114, 0, 2, 110, 108, 195, 166, 103, 12, 0, 2, 110, 115, 116, 0, 2, 110, 115, 116, 114, 101, 110, 103, 12, 12, 0, 2, 110, 116, 97,
-			108, 12, 0, 2, 110, 118, 101, 110, 100, 12, 0, 2, 116, 116, 97, 99, 104, 12, 0, 8, 2, 101, 32, 0, 8, 110, 109, 121, 103, 2,
-			115, 116, 105, 0, 100, 101, 8, 108, 2, 32, 100, 105, 103, 32, 0, 100, 101, 8, 108, 2, 32, 115, 105, 103, 32, 0, 100, 101, 8, 108,
-			2, 32, 118, 195, 166, 114, 101, 32, 0, 114, 1, 107, 2, 108, 101, 110, 101, 0, 114, 1, 107, 21, 2, 108, 101, 12, 0, 114, 1, 108,
-			110, 101, 118, 111, 100, 2, 115, 0, 116, 8, 2, 32, 0, 118, 1, 104, 2, 32, 0, 4, 1, 18, 73, 2, 98, 18, 76, 3, 117, 12,
-			0, 1, 100, 2, 116, 97, 0, 1, 100, 2, 116, 111, 0, 1, 106, 116, 2, 32, 0, 1, 107, 2, 112, 114, 101, 12, 0, 1, 107, 2,
-			112, 114, 105, 110, 103, 0, 1, 110, 2, 98, 111, 0, 1, 112, 115, 2, 109, 0, 1, 112, 115, 2, 110, 107, 105, 110, 103, 0, 1, 115,
-			2, 103, 111, 12, 12, 0, 2, 116, 117, 115, 0, 4, 110, 1, 100, 2, 100, 121, 3, 117, 12, 50, 0, 110, 1, 114, 98, 2, 100, 121,
-			0, 110, 110, 101, 115, 8, 99, 3, 117, 12, 50, 12, 0, 103, 1, 115, 2, 97, 12, 3, 117, 12, 81, 0, 114, 97, 112, 97, 104, 111,
-			101, 3, 117, 34, 6, 117, 48, 117, 107, 125, 58, 0, 114, 121, 1, 109, 3, 117, 34, 37, 0, 114, 114, 121, 1, 98, 3, 117, 34, 113,
-			0, 116, 104, 101, 110, 3, 117, 47, 6, 36, 50, 0, 116, 116, 114, 105, 98, 117, 116, 105, 111, 110, 8, 3, 117, 47, 51, 37, 71, 40,
-			91, 6, 39, 50, 0, 116, 116, 114, 105, 98, 117, 116, 105, 111, 110, 3, 117, 47, 51, 37, 71, 40, 91, 39, 50, 0, 4, 112, 101, 1,
-			110, 97, 107, 3, 117, 48, 6, 36, 0, 112, 195, 169, 1, 110, 97, 107, 0, 112, 112, 101, 97, 108, 3, 117, 48, 6, 37, 55, 0, 107,
-			107, 111, 114, 100, 101, 111, 110, 3, 117, 49, 6, 108, 12, 72, 36, 108, 50, 0, 107, 117, 108, 116, 101, 116, 8, 102, 3, 117, 49, 40,
-			55, 47, 6, 36, 47, 0, 107, 117, 108, 116, 101, 116, 1, 102, 3, 117, 49, 40, 55, 47, 36, 47, 0, 99, 116, 105, 111, 110, 3, 117,
-			49, 91, 57, 13, 50, 0, 103, 110, 1, 109, 2, 111, 110, 3, 117, 50, 57, 0, 110, 100, 114, 101, 119, 115, 3, 117, 50, 72, 51, 40,
-			12, 89, 0, 110, 100, 111, 108, 112, 104, 1, 114, 3, 117, 50, 72, 108, 55, 83, 0, 110, 100, 97, 8, 114, 2, 108, 3, 117, 50, 72,
-			125, 0, 110, 100, 111, 8, 114, 98, 3, 117, 50, 72, 125, 58, 0, 110, 103, 105, 101, 8, 3, 117, 50, 75, 111, 0, 110, 103, 101, 108,
-			101, 115, 3, 117, 50, 75, 112, 55, 115, 89, 0, 110, 104, 97, 116, 116, 97, 110, 1, 109, 3, 117, 50, 107, 6, 117, 47, 13, 50, 0,
-			114, 114, 111, 119, 3, 117, 51, 39, 40, 0, 108, 1, 10, 2, 105, 115, 116, 28, 33, 12, 3, 117, 55, 0, 108, 1, 10, 2, 105, 115,
-			109, 28, 33, 12, 3, 117, 55, 6, 0, 108, 97, 106, 1, 109, 3, 117, 55, 6, 136, 0, 108, 97, 107, 108, 97, 118, 1, 98, 2, 97,
-			3, 117, 55, 117, 49, 55, 6, 117, 12, 84, 0, 4, 103, 1, 109, 2, 114, 101, 3, 117, 57, 0, 103, 8, 118, 2, 101, 32, 0, 109,
-			98, 114, 111, 115, 101, 3, 117, 65, 71, 51, 127, 40, 89, 0, 103, 110, 97, 1, 109, 114, 97, 2, 99, 3, 117, 68, 6, 121, 0, 98,
-			98, 121, 8, 3, 117, 71, 37, 0, 98, 105, 108, 101, 110, 101, 3, 117, 71, 37, 55, 37, 12, 50, 0, 100, 98, 117, 114, 121, 1, 114,
-			98, 3, 117, 72, 71, 14, 34, 36, 0, 4, 103, 1, 109, 2, 105, 12, 3, 117, 81, 0, 103, 1, 110, 97, 108, 102, 2, 97, 110, 0,
-			103, 1, 110, 121, 115, 2, 111, 103, 101, 0, 103, 2, 110, 101, 119, 0, 103, 103, 105, 101, 3, 117, 81, 37, 0, 103, 97, 122, 105, 110,
-			101, 1, 109, 3, 117, 81, 117, 89, 6, 37, 12, 50, 0, 4, 118, 1, 108, 2, 97, 17, 67, 3, 117, 84, 0, 118, 1, 108, 2, 97,
-			32, 0, 118, 1, 108, 2, 97, 101, 0, 118, 1, 108, 2, 101, 100, 0, 118, 1, 108, 2, 101, 114, 0, 118, 1, 108, 2, 101, 115, 0,
-			118, 1, 108, 2, 101, 116, 0, 118, 1, 108, 2, 105, 110, 101, 0, 118, 1, 108, 2, 110, 105, 0, 118, 1, 108, 2, 116, 32, 0, 118,
-			8, 108, 2, 32, 0, 4, 118, 101, 1, 108, 2, 32, 3, 117, 84, 14, 0, 118, 101, 1, 108, 115, 0, 118, 101, 114, 1, 108, 2, 32,
-			3, 117, 84, 108, 0, 118, 101, 114, 1, 108, 115, 3, 117, 84, 109, 0, 118, 101, 114, 105, 1, 108, 115, 3, 117, 84, 109, 34, 6, 37,
-			0, 118, 97, 110, 116, 103, 97, 114, 100, 101, 3, 117, 84, 121, 68, 81, 6, 121, 72, 14, 0, 115, 101, 114, 98, 97, 106, 100, 115, 106,
-			97, 110, 3, 117, 89, 108, 71, 117, 91, 6, 117, 50, 0, 1, 116, 2, 98, 108, 101, 116, 3, 117, 117, 0, 110, 103, 111, 111, 110, 1,
-			114, 3, 117, 117, 50, 81, 6, 40, 12, 50, 0, 4, 3, 118, 0, 1, 17, 67, 2, 18, 75, 18, 69, 0, 1, 17, 67, 2, 109, 105,
-			12, 0, 1, 17, 67, 2, 109, 195, 166, 12, 0, 1, 17, 67, 2, 109, 195, 184, 12, 0, 1, 17, 67, 2, 110, 100, 0, 1, 18, 67,
-			2, 98, 101, 12, 0, 1, 18, 71, 2, 110, 0, 1, 18, 71, 2, 110, 100, 0, 1, 18, 73, 2, 17, 67, 0, 1, 18, 74, 2, 108,
-			100, 0, 1, 18, 75, 2, 112, 18, 69, 12, 0, 1, 21, 2, 98, 101, 12, 0, 1, 21, 2, 107, 114, 18, 69, 12, 0, 1, 98, 2,
-			103, 97, 103, 101, 12, 12, 0, 1, 98, 2, 106, 111, 110, 101, 116, 0, 1, 98, 2, 118, 105, 97, 110, 12, 0, 1, 98, 32, 103, 105,
-			98, 2, 110, 103, 0, 1, 99, 2, 109, 112, 12, 0, 1, 100, 100, 2, 103, 12, 0, 1, 100, 108, 2, 107, 0, 1, 100, 108, 101, 109,
-			109, 97, 103, 2, 103, 115, 0, 1, 101, 0, 1, 101, 114, 2, 103, 12, 0, 1, 102, 2, 98, 114, 18, 69, 12, 0, 1, 102, 2, 99,
-			18, 69, 12, 12, 0, 1, 102, 2, 99, 18, 76, 0, 1, 102, 2, 110, 100, 0, 1, 102, 2, 110, 107, 108, 117, 98, 12, 0, 1, 102,
-			2, 118, 111, 12, 0, 1, 102, 101, 98, 2, 108, 0, 1, 102, 111, 115, 2, 12, 0, 1, 103, 2, 110, 103, 115, 116, 101, 114, 12, 0,
-			1, 103, 2, 118, 0, 1, 103, 105, 108, 0, 1, 104, 2, 99, 107, 12, 0, 1, 104, 2, 109, 98, 117, 114, 103, 101, 114, 0, 1, 104,
-			2, 110, 0, 1, 104, 2, 110, 100, 108, 0, 1, 104, 2, 110, 107, 97, 110, 105, 110, 0, 1, 104, 2, 110, 107, 97, 116, 0, 1, 104,
-			2, 110, 107, 195, 184, 110, 12, 12, 0, 1, 104, 2, 112, 112, 17, 65, 0, 1, 104, 2, 118, 101, 116, 0, 1, 104, 101, 98, 2, 103,
-			0, 1, 104, 115, 2, 109, 18, 76, 0, 1, 105, 100, 2, 18, 66, 12, 0, 1, 106, 2, 109, 101, 110, 0, 1, 107, 2, 17, 67, 17,
-			67, 0, 1, 107, 2, 107, 97, 111, 12, 12, 0, 1, 107, 2, 115, 0, 1, 107, 2, 118, 105, 97, 114, 0, 1, 107, 100, 111, 118, 0,
-			1, 107, 105, 114, 102, 97, 2, 12, 0, 1, 107, 105, 116, 111, 107, 114, 97, 110, 0, 1, 107, 115, 2, 18, 71, 12, 0, 1, 108, 2,
-			103, 117, 110, 101, 0, 1, 108, 2, 109, 17, 65, 12, 0, 1, 108, 2, 110, 100, 0, 1, 108, 2, 112, 18, 69, 12, 0, 1, 108, 97,
-			109, 2, 18, 66, 97, 0, 1, 108, 98, 2, 99, 107, 0, 1, 108, 98, 2, 100, 0, 1, 108, 102, 2, 98, 32, 12, 0, 1, 108, 111,
-			99, 0, 1, 108, 112, 2, 99, 101, 0, 1, 108, 112, 2, 107, 97, 0, 1, 108, 112, 2, 110, 0, 1, 108, 112, 2, 110, 101, 110, 0,
-			1, 108, 112, 2, 110, 101, 114, 0, 1, 108, 115, 2, 110, 103, 12, 0, 1, 108, 115, 105, 2, 109, 105, 0, 1, 109, 2, 106, 111, 12,
-			0, 1, 109, 2, 107, 97, 0, 1, 109, 105, 108, 107, 0, 1, 109, 105, 114, 112, 0, 1, 109, 114, 101, 112, 115, 0, 1, 109, 114, 105,
-			102, 2, 12, 0, 1, 110, 97, 112, 2, 109, 97, 0, 1, 110, 105, 103, 97, 118, 0, 1, 110, 115, 2, 99, 107, 0, 1, 112, 2, 103,
-			18, 76, 12, 0, 1, 112, 2, 103, 110, 12, 12, 0, 1, 112, 2, 112, 105, 12, 0, 1, 112, 97, 107, 2, 99, 105, 116, 0, 1, 115,
-			2, 98, 98, 97, 116, 0, 1, 115, 2, 98, 108, 101, 0, 1, 115, 2, 102, 114, 97, 110, 0, 1, 115, 2, 103, 12, 12, 0, 1, 115,
-			2, 109, 18, 69, 12, 0, 1, 115, 2, 109, 97, 110, 116, 0, 1, 115, 2, 109, 101, 114, 12, 0, 1, 116, 2, 110, 100, 0, 1, 116,
-			2, 112, 18, 76, 0, 1, 116, 2, 112, 105, 0, 1, 116, 101, 109, 2, 12, 0, 1, 116, 105, 99, 110, 105, 0, 1, 116, 115, 2, 102,
-			102, 97, 103, 101, 0, 1, 116, 115, 2, 107, 97, 0, 1, 118, 2, 110, 100, 114, 195, 184, 114, 0, 1, 118, 108, 101, 115, 2, 110, 103,
-			105, 118, 0, 1, 120, 97, 116, 0, 1, 122, 122, 105, 112, 0, 2, 17, 67, 11, 12, 0, 2, 98, 98, 0, 2, 98, 114, 97, 0, 2,
-			98, 114, 117, 0, 2, 100, 115, 0, 2, 100, 116, 12, 0, 2, 102, 102, 117, 116, 97, 103, 101, 0, 2, 102, 102, 195, 166, 114, 101, 12,
-			0, 2, 102, 115, 116, 101, 100, 12, 0, 2, 103, 103, 114, 101, 115, 12, 12, 0, 2, 103, 111, 12, 12, 12, 0, 2, 107, 11, 111, 12,
-			0, 2, 107, 97, 17, 67, 12, 12, 0, 2, 107, 117, 116, 12, 12, 0, 2, 107, 118, 97, 12, 12, 0, 2, 108, 100, 12, 0, 2, 108,
-			100, 101, 0, 2, 108, 103, 0, 2, 108, 115, 0, 2, 108, 116, 0, 2, 110, 100, 12, 0, 2, 110, 100, 115, 107, 0, 2, 110, 103, 97,
-			118, 12, 12, 0, 2, 110, 103, 195, 165, 12, 12, 0, 2, 110, 104, 111, 12, 12, 0, 2, 110, 107, 108, 97, 103, 12, 12, 0, 2, 110,
-			115, 107, 0, 8, 2, 18, 66, 18, 69, 12, 12, 12, 0, 8, 2, 102, 102, 101, 107, 116, 12, 0, 8, 2, 103, 17, 65, 12, 12, 12,
-			0, 8, 2, 110, 100, 101, 110, 0, 8, 2, 110, 100, 101, 116, 0, 8, 112, 2, 109, 32, 12, 0, 100, 1, 108, 106, 101, 115, 2, 115,
-			0, 102, 1, 116, 115, 2, 102, 0, 103, 1, 100, 101, 114, 102, 2, 115, 0, 103, 1, 100, 110, 97, 109, 2, 115, 0, 103, 1, 100, 110,
-			184, 195, 115, 2, 115, 0, 103, 1, 100, 114, 101, 118, 104, 0, 103, 1, 100, 114, 184, 195, 108, 2, 115, 0, 103, 1, 100, 115, 110, 111,
-			2, 115, 0, 103, 1, 100, 115, 114, 105, 116, 2, 115, 0, 103, 1, 100, 115, 114, 111, 116, 2, 115, 0, 103, 2, 103, 114, 101, 103, 97,
-			116, 12, 0, 104, 1, 104, 115, 0, 114, 1, 107, 21, 2, 108, 12, 0, 114, 1, 107, 32, 110, 101, 2, 108, 0, 118, 101, 8, 104, 2,
-			32, 100, 101, 109, 32, 0, 118, 101, 8, 104, 2, 32, 100, 101, 110, 32, 0, 118, 101, 8, 104, 2, 32, 100, 101, 116, 32, 0, 118, 101,
-			8, 104, 2, 32, 101, 110, 32, 0, 118, 101, 8, 104, 2, 32, 101, 116, 32, 0, 118, 101, 8, 104, 2, 32, 103, 111, 100, 116, 32, 0,
-			118, 101, 8, 104, 2, 32, 116, 195, 166, 110, 107, 116, 32, 0, 118, 101, 8, 104, 32, 100, 105, 116, 108, 97, 2, 32, 0, 118, 101, 8,
-			104, 32, 101, 100, 2, 32, 0, 118, 101, 8, 104, 32, 101, 100, 114, 117, 98, 2, 32, 0, 118, 101, 8, 104, 32, 101, 107, 107, 105, 2,
-			32, 0, 118, 101, 8, 104, 32, 101, 110, 110, 117, 107, 2, 32, 0, 118, 101, 8, 104, 32, 101, 114, 97, 98, 2, 32, 0, 118, 101, 8,
-			104, 32, 103, 101, 106, 2, 32, 0, 118, 101, 8, 104, 32, 103, 105, 100, 97, 116, 115, 2, 32, 0, 118, 101, 8, 104, 32, 103, 105, 100,
-			184, 195, 110, 2, 32, 0, 118, 101, 8, 104, 32, 105, 32, 108, 105, 118, 2, 32, 0, 118, 101, 8, 104, 32, 105, 118, 2, 32, 0, 118,
-			101, 8, 104, 32, 107, 111, 110, 2, 32, 0, 118, 101, 8, 104, 32, 108, 105, 118, 2, 32, 0, 118, 101, 8, 104, 32, 110, 97, 104, 2,
-			32, 0, 118, 101, 8, 104, 32, 110, 97, 107, 2, 32, 0, 118, 101, 8, 104, 32, 110, 117, 104, 2, 32, 0, 118, 101, 8, 104, 32, 110,
-			117, 107, 2, 32, 0, 118, 101, 8, 104, 32, 111, 106, 2, 32, 0, 118, 101, 8, 104, 32, 114, 184, 195, 98, 2, 32, 0, 118, 101, 8,
-			104, 32, 115, 107, 97, 114, 116, 115, 2, 32, 0, 118, 101, 8, 104, 32, 116, 100, 111, 103, 2, 32, 0, 118, 101, 8, 104, 32, 117, 100,
-			2, 32, 0, 118, 101, 8, 104, 32, 165, 195, 109, 2, 32, 0, 118, 101, 8, 104, 32, 165, 195, 115, 103, 111, 2, 32, 0, 4, 1, 107,
-			2, 106, 97, 107, 3, 118, 6, 0, 1, 116, 97, 107, 2, 112, 117, 108, 116, 0, 105, 1, 107, 2, 110, 3, 118, 6, 37, 12, 0, 104,
-			101, 110, 1, 104, 115, 3, 118, 14, 50, 0, 114, 121, 1, 109, 32, 121, 100, 111, 111, 108, 98, 3, 118, 34, 37, 0, 116, 97, 107, 111,
-			109, 98, 1, 107, 3, 118, 47, 118, 49, 6, 124, 65, 71, 0, 112, 111, 108, 101, 111, 110, 1, 110, 3, 118, 48, 6, 39, 55, 57, 108,
-			50, 0, 107, 111, 110, 100, 97, 1, 110, 97, 3, 118, 49, 6, 109, 50, 72, 118, 0, 99, 114, 111, 115, 115, 101, 1, 108, 3, 118, 49,
-			34, 6, 109, 89, 0, 107, 114, 121, 108, 3, 118, 49, 34, 6, 130, 55, 0, 107, 97, 2, 100, 101, 109, 12, 12, 3, 118, 49, 118, 0,
-			110, 100, 1, 118, 2, 114, 101, 116, 116, 101, 3, 118, 50, 0, 110, 1, 10, 2, 105, 28, 34, 12, 3, 118, 50, 6, 0, 110, 100, 114,
-			101, 97, 8, 3, 118, 50, 72, 34, 6, 36, 117, 0, 110, 100, 114, 101, 119, 3, 118, 50, 72, 34, 40, 0, 110, 100, 101, 114, 115, 111,
-			110, 8, 3, 118, 50, 72, 109, 89, 109, 50, 0, 110, 103, 101, 108, 97, 8, 3, 118, 50, 75, 13, 55, 118, 0, 4, 110, 103, 2, 114,
-			101, 98, 3, 118, 50, 81, 0, 110, 103, 2, 114, 105, 12, 0, 108, 1, 110, 97, 2, 121, 12, 3, 118, 55, 6, 0, 4, 108, 108, 105,
-			101, 8, 2, 32, 3, 118, 55, 37, 0, 108, 108, 121, 1, 115, 0, 108, 100, 101, 116, 104, 97, 3, 118, 55, 72, 6, 37, 87, 117, 0,
-			108, 100, 101, 104, 121, 100, 1, 109, 114, 111, 102, 3, 118, 55, 72, 14, 107, 6, 129, 86, 0, 108, 102, 105, 101, 3, 118, 55, 83, 111,
-			0, 108, 97, 99, 101, 8, 112, 3, 118, 55, 118, 89, 0, 4, 1, 108, 21, 2, 103, 3, 118, 57, 0, 103, 1, 100, 101, 109, 109, 111,
-			100, 0, 103, 1, 102, 2, 32, 12, 0, 103, 1, 115, 2, 115, 32, 12, 0, 103, 1, 115, 2, 115, 97, 110, 12, 12, 0, 103, 1, 115,
-			2, 115, 98, 101, 104, 97, 110, 100, 108, 12, 12, 0, 103, 1, 115, 2, 115, 109, 97, 12, 12, 0, 103, 1, 115, 2, 115, 111, 109, 12,
-			12, 0, 103, 1, 118, 32, 116, 100, 105, 108, 2, 116, 0, 103, 8, 109, 2, 32, 12, 0, 103, 8, 118, 2, 32, 0, 108, 98, 117, 113,
-			117, 101, 114, 113, 117, 101, 3, 118, 59, 71, 112, 49, 132, 49, 37, 0, 109, 97, 114, 111, 1, 99, 3, 118, 65, 6, 116, 34, 124, 0,
-			109, 97, 1, 103, 2, 99, 104, 3, 118, 65, 6, 118, 0, 109, 117, 114, 97, 105, 1, 115, 3, 118, 65, 123, 34, 6, 136, 0, 98, 101,
-			116, 101, 115, 1, 105, 100, 3, 118, 71, 6, 36, 47, 14, 89, 0, 98, 108, 97, 110, 1, 115, 97, 99, 2, 99, 97, 3, 118, 71, 55,
-			6, 122, 68, 0, 100, 101, 114, 1, 10, 2, 101, 28, 33, 3, 118, 72, 6, 36, 34, 0, 100, 101, 110, 116, 1, 10, 2, 28, 33, 3,
-			118, 72, 6, 114, 50, 47, 0, 103, 1, 105, 2, 110, 111, 115, 101, 3, 118, 81, 0, 4, 102, 2, 97, 115, 105, 3, 118, 83, 0, 102,
-			2, 97, 116, 105, 115, 107, 0, 102, 2, 111, 108, 107, 0, 102, 2, 111, 114, 0, 4, 102, 101, 1, 99, 3, 118, 83, 6, 114, 0, 102,
-			195, 169, 1, 99, 0, 102, 111, 110, 1, 116, 107, 105, 100, 3, 118, 83, 6, 124, 50, 0, 4, 118, 1, 116, 115, 2, 110, 105, 110, 3,
-			118, 84, 0, 118, 1, 116, 115, 103, 111, 98, 0, 118, 101, 114, 1, 108, 107, 2, 32, 3, 118, 84, 6, 114, 34, 0, 118, 101, 116, 1,
-			108, 110, 111, 110, 97, 107, 3, 118, 84, 116, 72, 0, 116, 104, 121, 1, 107, 3, 118, 87, 36, 0, 115, 116, 97, 105, 114, 101, 3, 118,
-			89, 72, 6, 115, 12, 34, 0, 99, 104, 101, 1, 116, 116, 97, 3, 118, 91, 6, 114, 0, 4, 116, 105, 111, 1, 103, 105, 108, 98, 111,
-			2, 110, 3, 118, 91, 6, 124, 0, 116, 105, 111, 8, 103, 105, 108, 98, 111, 2, 110, 0, 116, 105, 111, 110, 1, 10, 2, 28, 33, 3,
-			118, 91, 7, 124, 50, 0, 116, 105, 111, 1, 110, 114, 101, 116, 110, 105, 2, 110, 97, 108, 3, 118, 91, 124, 0, 4, 1, 17, 67, 2,
-			18, 75, 101, 3, 121, 0, 1, 18, 75, 2, 112, 12, 0, 1, 100, 97, 2, 109, 0, 1, 102, 2, 109, 108, 101, 12, 0, 1, 106, 109,
-			2, 118, 0, 1, 110, 2, 112, 0, 1, 114, 2, 17, 67, 17, 65, 12, 0, 1, 114, 2, 17, 67, 18, 69, 0, 1, 114, 2, 18, 71,
-			0, 1, 114, 2, 32, 0, 1, 114, 2, 100, 0, 1, 114, 2, 100, 105, 111, 12, 12, 0, 1, 114, 2, 101, 110, 0, 1, 114, 2, 108,
-			0, 1, 114, 2, 108, 101, 12, 0, 1, 114, 2, 110, 0, 1, 114, 2, 110, 101, 0, 1, 114, 17, 67, 2, 110, 0, 1, 114, 18, 66,
-			0, 1, 114, 98, 2, 17, 67, 0, 1, 114, 101, 109, 97, 107, 0, 1, 114, 102, 0, 1, 114, 111, 102, 2, 110, 100, 0, 1, 114, 111,
-			102, 2, 110, 107, 0, 1, 114, 116, 0, 1, 114, 117, 97, 108, 0, 1, 114, 118, 2, 108, 116, 0, 2, 18, 66, 116, 12, 0, 2, 102,
-			102, 97, 108, 100, 12, 0, 2, 109, 116, 0, 2, 120, 0, 8, 2, 109, 98, 0, 100, 101, 114, 8, 108, 2, 32, 118, 195, 166, 114, 101,
-			32, 0, 104, 1, 114, 97, 115, 0, 108, 1, 104, 2, 102, 98, 97, 99, 107, 0, 114, 1, 21, 2, 32, 12, 12, 0, 114, 2, 17, 67,
-			12, 0, 114, 2, 17, 67, 17, 65, 12, 12, 0, 114, 2, 17, 67, 105, 12, 12, 0, 114, 2, 32, 12, 12, 0, 114, 2, 110, 12, 0,
-			114, 2, 110, 101, 12, 0, 4, 1, 114, 2, 111, 117, 108, 3, 121, 6, 0, 8, 110, 111, 109, 2, 114, 107, 105, 0, 4, 97, 1, 107,
-			105, 114, 102, 97, 2, 110, 3, 121, 12, 0, 114, 2, 17, 67, 17, 67, 0, 114, 2, 107, 12, 0, 114, 8, 2, 105, 12, 0, 114, 101,
-			1, 107, 2, 110, 12, 0, 110, 99, 101, 1, 108, 101, 101, 114, 102, 3, 121, 12, 68, 89, 0, 114, 101, 114, 1, 102, 2, 12, 12, 3,
-			121, 12, 108, 0, 114, 101, 114, 101, 1, 102, 2, 12, 12, 3, 121, 12, 108, 51, 14, 0, 114, 114, 2, 105, 12, 12, 3, 121, 20, 0,
-			4, 114, 1, 17, 67, 2, 17, 65, 12, 3, 121, 34, 0, 114, 2, 12, 0, 114, 8, 107, 2, 108, 32, 0, 114, 8, 107, 2, 108, 32,
-			115, 109, 97, 114, 116, 0, 114, 101, 8, 98, 2, 116, 3, 121, 34, 6, 119, 0, 114, 97, 103, 100, 1, 109, 115, 3, 121, 34, 6, 121,
-			58, 72, 0, 97, 114, 111, 110, 3, 121, 34, 108, 50, 0, 4, 118, 1, 103, 2, 109, 105, 3, 121, 40, 0, 118, 8, 2, 32, 0, 103,
-			110, 101, 1, 109, 2, 116, 3, 121, 40, 50, 6, 36, 0, 114, 107, 97, 110, 115, 97, 115, 3, 121, 49, 13, 50, 89, 125, 12, 0, 110,
-			99, 104, 101, 1, 108, 98, 3, 121, 50, 76, 0, 4, 114, 1, 109, 2, 105, 110, 3, 121, 51, 0, 114, 1, 112, 2, 101, 12, 0, 114,
-			1, 116, 2, 18, 69, 12, 0, 114, 2, 97, 12, 0, 114, 2, 101, 118, 111, 108, 117, 116, 105, 111, 110, 12, 0, 105, 1, 104, 103, 110,
-			97, 104, 115, 3, 121, 57, 0, 4, 102, 2, 115, 3, 121, 58, 0, 103, 1, 108, 115, 101, 98, 2, 108, 12, 0, 117, 1, 112, 2, 108,
-			117, 115, 0, 117, 2, 12, 12, 0, 118, 1, 110, 103, 2, 112, 111, 116, 0, 118, 1, 115, 2, 17, 67, 0, 118, 1, 116, 2, 115, 0,
-			118, 2, 108, 12, 12, 0, 118, 8, 108, 0, 118, 8, 108, 2, 118, 0, 118, 8, 116, 2, 32, 0, 118, 101, 1, 108, 2, 109, 101, 110,
-			116, 0, 119, 2, 25, 0, 109, 97, 103, 101, 114, 8, 3, 121, 65, 121, 34, 0, 4, 110, 1, 114, 98, 2, 99, 104, 3, 121, 68, 0,
-			110, 2, 99, 105, 101, 110, 0, 110, 100, 1, 100, 2, 101, 114, 101, 3, 121, 68, 72, 0, 110, 99, 104, 101, 1, 109, 2, 116, 3, 121,
-			68, 91, 6, 115, 0, 98, 97, 100, 115, 1, 114, 116, 115, 3, 121, 71, 6, 117, 89, 0, 98, 115, 111, 108, 117, 116, 105, 111, 110, 8,
-			3, 121, 71, 89, 39, 55, 40, 91, 6, 39, 50, 0, 98, 115, 111, 108, 117, 116, 105, 111, 110, 3, 121, 71, 89, 39, 55, 40, 91, 39,
-			50, 0, 98, 97, 114, 101, 116, 1, 107, 3, 121, 71, 121, 34, 6, 115, 0, 122, 122, 105, 97, 1, 114, 2, 12, 3, 121, 72, 91, 117,
-			0, 100, 97, 114, 1, 114, 3, 121, 72, 121, 34, 0, 114, 103, 101, 1, 108, 3, 121, 75, 0, 4, 103, 1, 109, 2, 97, 115, 105, 3,
-			121, 81, 0, 103, 1, 109, 2, 116, 12, 0, 102, 97, 101, 1, 114, 3, 121, 83, 117, 6, 36, 0, 99, 104, 1, 98, 3, 121, 101, 0,
-			101, 114, 1, 114, 2, 32, 3, 121, 108, 0, 114, 1, 102, 2, 101, 116, 12, 12, 3, 121, 110, 0, 4, 114, 97, 1, 17, 67, 2, 107,
-			3, 121, 121, 0, 114, 97, 1, 112, 2, 100, 105, 12, 0, 114, 101, 1, 18, 73, 2, 12, 12, 0, 114, 101, 1, 102, 2, 12, 12, 0,
-			114, 101, 114, 1, 108, 107, 2, 32, 0, 4, 114, 101, 1, 17, 67, 2, 12, 3, 121, 121, 11, 0, 114, 101, 1, 109, 2, 114, 0, 114,
-			101, 1, 17, 67, 2, 100, 101, 12, 3, 121, 122, 0, 114, 101, 116, 2, 12, 3, 121, 122, 14, 86, 0, 114, 101, 114, 110, 101, 1, 17,
-			67, 3, 121, 122, 50, 14, 0, 4, 103, 1, 104, 2, 108, 3, 121, 123, 0, 103, 1, 114, 2, 110, 97, 12, 0, 103, 2, 110, 12, 0,
-			118, 1, 18, 73, 2, 17, 67, 0, 118, 1, 98, 2, 12, 12, 0, 118, 1, 104, 2, 17, 67, 0, 118, 1, 104, 2, 97, 98, 111, 114,
-			114, 0, 118, 1, 104, 2, 105, 115, 0, 118, 1, 104, 2, 111, 118, 101, 114, 0, 118, 1, 104, 2, 117, 100, 0, 118, 1, 104, 21, 2,
-			32, 0, 118, 1, 104, 32, 101, 100, 184, 195, 0, 118, 1, 104, 32, 101, 107, 115, 105, 2, 32, 0, 118, 1, 104, 32, 101, 110, 98, 165,
-			195, 0, 118, 1, 104, 32, 103, 111, 32, 108, 101, 109, 109, 105, 104, 0, 118, 1, 104, 32, 116, 110, 101, 98, 165, 195, 0, 118, 95, 1,
-			104, 21, 0, 118, 101, 114, 116, 1, 106, 3, 121, 123, 108, 72, 0, 4, 1, 17, 67, 2, 18, 71, 11, 3, 122, 0, 1, 17, 67, 2,
-			18, 75, 0, 1, 17, 67, 2, 99, 107, 0, 1, 17, 67, 2, 102, 116, 0, 1, 17, 67, 2, 107, 18, 69, 12, 12, 0, 1, 17, 67,
-			2, 109, 12, 0, 1, 17, 67, 2, 120, 12, 12, 0, 1, 18, 66, 2, 18, 71, 116, 12, 0, 1, 18, 67, 2, 18, 67, 12, 0, 1,
-			18, 67, 2, 18, 67, 115, 101, 114, 0, 1, 18, 71, 2, 110, 107, 0, 1, 18, 75, 2, 112, 112, 12, 0, 1, 98, 2, 106, 101, 114,
-			0, 1, 100, 2, 109, 112, 0, 1, 104, 2, 18, 66, 0, 1, 104, 2, 112, 0, 1, 104, 99, 2, 110, 0, 1, 105, 108, 108, 105, 119,
-			2, 109, 0, 1, 105, 114, 2, 109, 0, 1, 106, 2, 18, 75, 111, 12, 0, 1, 106, 2, 112, 112, 0, 1, 106, 2, 112, 115, 0, 1,
-			107, 2, 102, 12, 0, 1, 107, 2, 103, 0, 1, 107, 2, 107, 97, 12, 12, 0, 1, 107, 115, 2, 107, 0, 1, 108, 2, 98, 32, 12,
-			0, 1, 108, 2, 98, 98, 0, 1, 108, 2, 103, 116, 12, 0, 1, 108, 2, 112, 12, 0, 1, 108, 115, 2, 18, 71, 0, 1, 108, 115,
-			2, 110, 103, 101, 12, 0, 1, 108, 115, 118, 105, 108, 2, 110, 103, 12, 0, 1, 109, 105, 108, 107, 2, 107, 115, 0, 1, 110, 115, 2,
-			118, 115, 0, 1, 112, 2, 112, 114, 105, 12, 0, 1, 112, 115, 2, 110, 107, 117, 108, 101, 114, 0, 1, 114, 2, 17, 67, 11, 12, 12,
-			0, 1, 114, 2, 17, 67, 25, 12, 0, 1, 114, 2, 17, 67, 105, 12, 0, 1, 114, 2, 18, 66, 12, 12, 0, 1, 114, 2, 18, 67,
-			18, 69, 12, 0, 1, 114, 2, 108, 21, 21, 12, 0, 1, 114, 2, 108, 101, 110, 12, 0, 1, 114, 2, 110, 100, 12, 0, 1, 114, 98,
-			0, 1, 114, 107, 115, 2, 108, 0, 1, 114, 116, 2, 18, 67, 0, 1, 116, 2, 98, 116, 0, 1, 116, 2, 110, 107, 0, 1, 116, 2,
-			112, 0, 1, 118, 2, 99, 99, 0, 1, 118, 2, 106, 0, 1, 118, 2, 110, 100, 114, 0, 2, 18, 66, 11, 12, 12, 0, 2, 18, 66,
-			12, 12, 12, 0, 2, 98, 99, 0, 2, 98, 110, 111, 114, 109, 0, 2, 99, 99, 12, 0, 2, 102, 17, 67, 12, 0, 2, 102, 98, 114,
-			121, 100, 0, 2, 102, 118, 105, 0, 2, 103, 116, 0, 2, 107, 11, 117, 12, 0, 2, 109, 101, 114, 105, 107, 97, 110, 0, 2, 109, 102,
-			0, 2, 109, 109, 12, 12, 0, 2, 109, 110, 0, 2, 109, 115, 0, 2, 109, 117, 108, 101, 116, 0, 2, 110, 100, 114, 101, 12, 0, 2,
-			112, 111, 116, 101, 0, 2, 112, 112, 97, 114, 12, 0, 2, 112, 112, 101, 108, 115, 105, 110, 12, 0, 2, 114, 114, 12, 12, 0, 2, 118,
-			110, 12, 0, 8, 2, 98, 17, 67, 0, 8, 2, 98, 115, 0, 8, 2, 108, 100, 114, 105, 103, 12, 0, 8, 2, 109, 101, 110, 32, 0,
-			8, 2, 110, 100, 101, 114, 108, 101, 100, 12, 0, 4, 103, 1, 18, 74, 2, 12, 3, 122, 40, 0, 103, 1, 115, 2, 17, 67, 12, 0,
-			103, 1, 115, 2, 115, 195, 184, 0, 116, 1, 114, 10, 2, 105, 28, 33, 3, 122, 47, 0, 116, 1, 114, 10, 2, 117, 114, 28, 33, 3,
-			122, 47, 6, 0, 99, 99, 97, 114, 97, 116, 1, 98, 3, 122, 49, 122, 34, 6, 122, 0, 110, 1, 114, 10, 2, 105, 28, 34, 12, 3,
-			122, 50, 6, 0, 4, 110, 103, 2, 105, 110, 97, 3, 122, 50, 81, 0, 110, 103, 2, 105, 111, 103, 114, 0, 110, 103, 2, 117, 108, 12,
-			12, 0, 110, 103, 8, 2, 111, 108, 0, 121, 2, 25, 3, 122, 57, 0, 4, 102, 2, 17, 65, 3, 122, 58, 0, 102, 2, 116, 97, 108,
-			0, 103, 1, 114, 112, 115, 2, 108, 101, 116, 0, 118, 102, 108, 97, 98, 1, 103, 3, 122, 58, 83, 55, 118, 71, 0, 109, 101, 108, 117,
-			1, 109, 2, 107, 3, 122, 65, 14, 55, 6, 123, 0, 4, 110, 1, 108, 2, 99, 101, 114, 3, 122, 68, 0, 110, 1, 108, 112, 2, 99,
-			104, 0, 110, 103, 2, 114, 101, 0, 110, 103, 8, 2, 101, 17, 67, 0, 110, 99, 101, 1, 10, 2, 114, 101, 28, 33, 3, 122, 68, 89,
-			6, 36, 0, 110, 99, 101, 1, 10, 2, 12, 3, 122, 68, 89, 13, 0, 110, 99, 101, 1, 10, 2, 114, 101, 12, 3, 122, 68, 89, 36,
-			0, 98, 101, 108, 1, 114, 105, 109, 3, 122, 71, 6, 116, 55, 0, 112, 112, 101, 2, 116, 105, 116, 12, 3, 122, 71, 14, 0, 112, 101,
-			103, 195, 184, 106, 101, 1, 112, 3, 122, 71, 14, 81, 6, 109, 57, 14, 0, 98, 100, 111, 2, 109, 3, 122, 71, 72, 6, 124, 0, 100,
-			101, 114, 1, 114, 10, 2, 101, 28, 33, 3, 122, 72, 6, 114, 34, 0, 103, 103, 101, 114, 1, 100, 2, 116, 3, 122, 81, 109, 0, 102,
-			102, 1, 107, 2, 101, 12, 3, 122, 83, 0, 102, 1, 114, 103, 10, 2, 105, 28, 33, 3, 122, 83, 6, 0, 102, 116, 101, 114, 115, 104,
-			97, 118, 101, 3, 122, 83, 47, 109, 91, 116, 57, 84, 0, 116, 105, 111, 110, 1, 114, 10, 2, 28, 33, 3, 122, 91, 6, 124, 50, 0,
-			104, 97, 8, 2, 32, 3, 122, 107, 6, 122, 0, 114, 101, 114, 1, 17, 67, 3, 122, 109, 0, 118, 1, 104, 2, 101, 110, 103, 3, 122,
-			123, 0, 117, 1, 104, 99, 2, 118, 105, 110, 3, 124, 0, 4, 1, 119, 2, 108, 116, 3, 125, 0, 1, 119, 2, 116, 101, 114, 0, 8,
-			116, 115, 2, 108, 108, 0, 117, 1, 115, 2, 116, 101, 114, 101, 0, 117, 8, 112, 2, 108, 0, 119, 1, 114, 2, 12, 0, 117, 1, 115,
-			2, 99, 101, 3, 125, 12, 0, 108, 108, 1, 98, 121, 101, 108, 108, 111, 118, 3, 125, 12, 55, 0, 117, 98, 114, 101, 121, 3, 125, 12,
-			71, 34, 37, 0, 117, 100, 114, 101, 121, 3, 125, 12, 72, 51, 37, 0, 117, 103, 103, 105, 101, 3, 125, 12, 81, 113, 0, 97, 103, 101,
-			8, 3, 125, 12, 123, 14, 0, 117, 114, 105, 101, 1, 108, 3, 125, 34, 37, 0, 108, 107, 1, 116, 2, 115, 104, 111, 119, 3, 125, 49,
-			0, 117, 114, 101, 101, 110, 1, 109, 3, 125, 51, 6, 37, 12, 50, 0, 108, 108, 2, 32, 114, 105, 103, 104, 116, 3, 125, 55, 0, 108,
-			100, 105, 110, 103, 1, 112, 115, 3, 125, 55, 72, 4, 36, 68, 0, 117, 114, 101, 110, 99, 101, 1, 108, 3, 128, 16, 14, 50, 89, 0,
-			119, 114, 101, 110, 99, 101, 1, 108, 3, 128, 34, 13, 50, 89, 0, 4, 105, 1, 99, 2, 114, 111, 3, 136, 0, 105, 8, 107, 2, 110,
-			0, 105, 8, 110, 105, 115, 0, 121, 1, 109, 2, 97, 0, 121, 1, 117, 103, 0, 105, 1, 110, 2, 114, 111, 98, 105, 3, 136, 6, 0,
-			105, 114, 111, 8, 107, 3, 136, 34, 39, 0, 121, 114, 101, 117, 116, 104, 1, 98, 3, 136, 51, 6, 108, 57, 47, 0, 121, 101, 114, 1,
-			98, 3, 136, 109, 0, 121, 97, 116, 111, 108, 108, 97, 104, 3, 136, 117, 47, 6, 108, 55, 117, 0, 7, 6, 98, 0, 4, 1, 184, 195,
-			107, 2, 109, 97, 3, 0, 1, 184, 195, 107, 2, 109, 195, 166, 3, 0, 4, 114, 111, 119, 110, 3, 21, 0, 121, 114, 111, 110, 0, 111,
-			110, 115, 111, 105, 114, 3, 21, 102, 114, 0, 4, 1, 101, 112, 2, 101, 114, 3, 58, 0, 1, 101, 112, 2, 114, 101, 0, 98, 1, 111,
-			107, 2, 101, 114, 0, 4, 3, 71, 0, 98, 0, 101, 97, 116, 8, 3, 71, 6, 37, 12, 47, 0, 111, 110, 107, 97, 109, 109, 101, 114,
-			97, 116, 3, 71, 6, 108, 68, 49, 35, 65, 13, 34, 121, 47, 0, 114, 105, 110, 116, 105, 111, 110, 3, 71, 34, 36, 50, 72, 57, 39,
-			12, 50, 0, 114, 111, 97, 100, 3, 71, 34, 125, 72, 0, 114, 97, 105, 108, 108, 101, 3, 71, 34, 136, 12, 0, 97, 114, 121, 116, 111,
-			110, 3, 71, 35, 37, 47, 108, 50, 0, 117, 105, 2, 108, 100, 105, 110, 103, 3, 71, 36, 0, 105, 110, 103, 104, 97, 109, 3, 71, 36,
-			68, 112, 65, 0, 117, 115, 105, 110, 101, 115, 115, 3, 71, 36, 89, 50, 115, 89, 0, 101, 97, 2, 116, 114, 105, 3, 71, 36, 117, 6,
-			0, 101, 101, 1, 115, 105, 114, 102, 3, 71, 37, 0, 101, 98, 111, 112, 3, 71, 37, 12, 71, 108, 48, 0, 101, 97, 99, 104, 3, 71,
-			37, 12, 76, 0, 101, 97, 103, 108, 101, 3, 71, 37, 12, 81, 13, 55, 0, 105, 108, 108, 105, 101, 3, 71, 37, 59, 37, 0, 111, 118,
-			97, 114, 121, 3, 71, 39, 84, 35, 34, 6, 111, 0, 101, 97, 117, 106, 111, 108, 97, 105, 115, 3, 71, 39, 91, 57, 39, 55, 6, 115,
-			0, 111, 117, 114, 103, 111, 103, 110, 101, 3, 71, 40, 34, 81, 6, 108, 50, 57, 13, 0, 111, 117, 105, 108, 108, 2, 111, 110, 3, 71,
-			40, 55, 57, 0, 111, 117, 105, 108, 108, 97, 98, 97, 105, 115, 115, 101, 3, 71, 40, 57, 35, 71, 6, 115, 89, 0, 111, 117, 100, 111,
-			105, 114, 3, 71, 40, 72, 58, 6, 121, 12, 0, 114, 117, 99, 101, 8, 3, 71, 51, 40, 12, 89, 0, 114, 101, 97, 107, 100, 97, 110,
-			99, 101, 2, 32, 3, 71, 51, 116, 57, 81, 72, 118, 50, 89, 0, 114, 101, 97, 107, 100, 97, 110, 99, 101, 2, 110, 3, 71, 51, 116,
-			57, 81, 72, 118, 50, 89, 14, 0, 114, 101, 97, 107, 100, 97, 110, 99, 101, 114, 3, 71, 51, 116, 57, 81, 72, 118, 50, 89, 109, 0,
-			114, 111, 119, 115, 101, 114, 3, 71, 51, 121, 58, 89, 108, 0, 108, 111, 111, 100, 121, 3, 71, 55, 108, 72, 37, 0, 108, 97, 107, 101,
-			8, 3, 71, 55, 115, 57, 49, 0, 108, 105, 103, 104, 8, 3, 71, 55, 136, 12, 0, 117, 116, 116, 101, 8, 2, 32, 3, 71, 57, 40,
-			12, 47, 0, 117, 105, 99, 8, 3, 71, 57, 40, 37, 49, 0, 111, 114, 111, 117, 103, 104, 3, 71, 108, 34, 108, 0, 111, 100, 121, 103,
-			117, 97, 114, 100, 3, 71, 108, 72, 37, 81, 121, 12, 72, 0, 111, 100, 121, 115, 116, 111, 99, 107, 105, 110, 103, 3, 71, 108, 72, 37,
-			89, 47, 108, 49, 36, 68, 0, 117, 103, 115, 121, 3, 71, 108, 81, 89, 37, 0, 117, 102, 102, 97, 108, 111, 3, 71, 108, 83, 112, 55,
-			125, 58, 0, 117, 116, 116, 101, 114, 102, 108, 121, 3, 71, 109, 47, 109, 83, 55, 136, 0, 101, 108, 108, 101, 118, 117, 101, 3, 71, 115,
-			55, 13, 84, 6, 129, 0, 101, 105, 106, 105, 110, 103, 3, 71, 115, 57, 75, 6, 36, 68, 0, 101, 118, 101, 114, 108, 121, 3, 71, 115,
-			84, 108, 55, 37, 0, 97, 115, 101, 98, 97, 108, 108, 3, 71, 116, 57, 89, 82, 125, 12, 59, 0, 97, 99, 107, 117, 112, 8, 3, 71,
-			117, 49, 6, 108, 71, 0, 97, 98, 121, 108, 111, 110, 2, 101, 114, 3, 71, 117, 71, 129, 55, 6, 39, 50, 0, 97, 98, 121, 108, 111,
-			110, 2, 105, 115, 107, 3, 71, 117, 71, 129, 55, 39, 50, 0, 97, 98, 121, 108, 111, 110, 3, 71, 117, 71, 129, 55, 108, 50, 0, 97,
-			99, 107, 103, 97, 109, 109, 111, 110, 3, 71, 117, 81, 6, 117, 65, 112, 50, 0, 97, 115, 115, 105, 110, 1, 21, 3, 71, 117, 89, 116,
-			68, 0, 97, 108, 107, 111, 110, 8, 3, 71, 118, 55, 49, 6, 109, 68, 0, 97, 108, 107, 111, 110, 3, 71, 118, 55, 49, 109, 68, 0,
-			97, 114, 98, 105, 101, 3, 71, 121, 34, 71, 37, 0, 97, 115, 107, 101, 116, 98, 97, 108, 108, 3, 71, 121, 89, 81, 116, 47, 71, 125,
-			12, 55, 0, 111, 97, 114, 100, 3, 71, 125, 12, 72, 0, 97, 108, 116, 105, 109, 111, 114, 101, 3, 71, 125, 55, 47, 37, 65, 108, 12,
-			0, 111, 110, 101, 1, 32, 116, 3, 71, 125, 58, 50, 0, 4, 117, 102, 102, 101, 116, 1, 21, 3, 71, 129, 83, 6, 36, 0, 117, 102,
-			102, 101, 116, 8, 0, 117, 114, 103, 104, 3, 71, 132, 12, 81, 0, 117, 114, 116, 111, 110, 3, 71, 132, 47, 108, 50, 0, 101, 114, 110,
-			105, 101, 3, 71, 132, 50, 37, 0, 105, 114, 109, 105, 110, 103, 104, 97, 109, 3, 71, 132, 65, 37, 68, 13, 65, 0, 117, 114, 103, 101,
-			115, 115, 3, 71, 132, 75, 36, 89, 0, 101, 105, 2, 114, 117, 116, 3, 71, 136, 0, 105, 107, 101, 3, 71, 136, 49, 0, 7, 6, 99,
-			0, 4, 1, 115, 2, 104, 97, 3, 0, 2, 107, 3, 0, 99, 97, 1, 101, 98, 3, 2, 49, 118, 0, 99, 1, 101, 98, 101, 114, 2,
-			97, 3, 8, 49, 0, 101, 114, 1, 105, 100, 101, 100, 2, 28, 33, 3, 8, 49, 7, 36, 34, 0, 1, 105, 114, 101, 100, 101, 114, 102,
-			2, 105, 97, 3, 8, 49, 89, 0, 4, 101, 114, 1, 10, 2, 101, 28, 33, 3, 8, 89, 7, 36, 0, 101, 114, 1, 10, 2, 101, 100,
-			101, 115, 28, 33, 0, 101, 114, 1, 10, 2, 101, 114, 28, 33, 0, 101, 114, 1, 10, 2, 28, 33, 3, 8, 89, 7, 36, 34, 0, 101,
-			114, 101, 1, 10, 2, 28, 33, 3, 8, 89, 7, 36, 108, 0, 4, 101, 1, 10, 2, 32, 28, 33, 3, 8, 89, 14, 0, 101, 1, 10,
-			2, 110, 28, 33, 0, 101, 1, 10, 2, 114, 28, 33, 3, 8, 89, 108, 0, 101, 114, 101, 110, 1, 117, 100, 111, 114, 112, 3, 8, 89,
-			108, 108, 50, 0, 101, 110, 101, 1, 115, 3, 36, 50, 14, 0, 101, 110, 101, 114, 1, 115, 3, 36, 50, 108, 0, 104, 97, 2, 116, 3,
-			47, 57, 118, 0, 4, 3, 49, 0, 1, 97, 108, 108, 105, 100, 97, 99, 0, 1, 105, 116, 115, 97, 108, 112, 0, 99, 1, 105, 112, 2,
-			111, 0, 99, 1, 111, 114, 2, 111, 0, 99, 1, 111, 115, 2, 101, 114, 0, 99, 1, 117, 121, 2, 97, 0, 104, 1, 101, 116, 2, 110,
-			111, 0, 104, 1, 105, 109, 2, 97, 0, 104, 1, 105, 110, 2, 111, 108, 0, 104, 1, 111, 115, 97, 109, 2, 105, 115, 0, 104, 2, 108,
-			111, 101, 0, 104, 2, 114, 0, 104, 8, 97, 109, 2, 32, 0, 115, 1, 110, 97, 114, 102, 0, 99, 1, 97, 116, 115, 2, 97, 116, 111,
-			3, 49, 6, 0, 114, 101, 101, 107, 3, 49, 34, 37, 12, 49, 0, 114, 101, 109, 101, 3, 49, 34, 116, 65, 0, 114, 101, 109, 101, 2,
-			110, 3, 49, 34, 116, 65, 13, 0, 114, 111, 105, 115, 115, 97, 110, 116, 3, 49, 34, 124, 19, 35, 89, 6, 121, 68, 0, 111, 119, 98,
-			111, 121, 3, 49, 35, 40, 71, 125, 57, 0, 114, 97, 122, 121, 3, 49, 51, 115, 57, 89, 37, 0, 108, 97, 105, 114, 2, 118, 111, 121,
-			3, 49, 55, 116, 34, 0, 108, 97, 114, 101, 110, 99, 101, 8, 3, 49, 55, 117, 51, 14, 50, 89, 0, 108, 97, 117, 100, 101, 3, 49,
-			55, 125, 12, 72, 0, 108, 97, 117, 100, 101, 116, 116, 101, 3, 49, 55, 126, 72, 6, 36, 47, 0, 104, 105, 97, 110, 116, 105, 3, 49,
-			57, 6, 118, 50, 47, 111, 0, 99, 3, 49, 89, 0, 111, 114, 110, 2, 102, 3, 49, 108, 12, 50, 0, 111, 114, 110, 105, 99, 104, 111,
-			110, 3, 49, 108, 34, 50, 37, 91, 6, 108, 68, 0, 111, 116, 116, 97, 103, 101, 3, 49, 108, 47, 37, 75, 0, 97, 108, 108, 103, 105,
-			114, 108, 3, 49, 108, 55, 81, 132, 12, 55, 0, 111, 109, 112, 117, 116, 101, 114, 3, 49, 108, 65, 48, 57, 6, 40, 47, 108, 0, 111,
-			114, 100, 101, 108, 105, 97, 3, 49, 108, 72, 6, 37, 55, 37, 20, 117, 0, 111, 2, 110, 114, 97, 100, 3, 49, 109, 0, 111, 117, 110,
-			116, 114, 121, 3, 49, 109, 50, 47, 34, 111, 0, 117, 115, 116, 101, 114, 8, 3, 49, 109, 89, 47, 109, 0, 97, 106, 117, 110, 3, 49,
-			115, 75, 112, 50, 0, 97, 116, 101, 114, 105, 110, 103, 3, 49, 116, 37, 47, 13, 34, 111, 68, 0, 97, 112, 111, 110, 101, 8, 3, 49,
-			117, 48, 6, 125, 58, 50, 0, 97, 114, 111, 108, 105, 110, 97, 1, 32, 104, 116, 114, 111, 110, 3, 49, 118, 34, 39, 55, 6, 136, 50,
-			117, 0, 97, 109, 101, 109, 98, 101, 114, 116, 3, 49, 122, 65, 122, 68, 71, 6, 115, 34, 0, 111, 108, 97, 100, 97, 3, 49, 124, 55,
-			6, 121, 86, 117, 0, 121, 112, 101, 114, 3, 49, 129, 48, 108, 0, 117, 114, 108, 101, 114, 3, 49, 132, 55, 108, 0, 4, 2, 101, 109,
-			98, 97, 108, 111, 3, 76, 0, 104, 1, 105, 119, 0, 104, 2, 101, 101, 115, 101, 0, 104, 2, 105, 108, 105, 0, 4, 1, 114, 111, 99,
-			115, 2, 101, 115, 101, 3, 76, 6, 0, 8, 97, 112, 2, 105, 110, 111, 0, 104, 2, 105, 112, 3, 76, 57, 0, 99, 1, 117, 112, 112,
-			97, 99, 2, 105, 110, 111, 3, 76, 57, 6, 0, 105, 97, 111, 8, 2, 32, 3, 76, 57, 122, 58, 0, 104, 101, 108, 115, 101, 97, 3,
-			76, 116, 55, 89, 111, 0, 104, 97, 112, 108, 105, 110, 3, 76, 118, 48, 55, 111, 50, 0, 104, 97, 108, 108, 101, 110, 103, 101, 3, 76,
-			118, 55, 116, 50, 75, 0, 104, 97, 114, 108, 101, 115, 3, 76, 121, 12, 55, 89, 0, 104, 97, 114, 108, 105, 101, 3, 76, 121, 55, 37,
-			0, 104, 97, 117, 99, 101, 114, 3, 76, 125, 12, 89, 109, 0, 104, 117, 114, 99, 104, 3, 76, 132, 12, 76, 0, 104, 105, 108, 100, 3,
-			76, 136, 55, 72, 0, 4, 1, 17, 65, 2, 101, 3, 89, 0, 1, 97, 102, 2, 97, 100, 0, 1, 97, 102, 2, 111, 110, 0, 2, 101,
-			0, 2, 101, 108, 108, 111, 102, 97, 110, 0, 2, 105, 0, 2, 121, 0, 2, 195, 166, 115, 97, 114, 0, 2, 195, 184, 108, 105, 98, 97,
-			116, 0, 101, 8, 105, 108, 97, 0, 101, 8, 105, 102, 102, 111, 2, 114, 3, 89, 6, 36, 0, 195, 169, 114, 1, 10, 2, 32, 3, 89,
-			6, 36, 34, 0, 101, 2, 114, 116, 3, 89, 6, 115, 0, 195, 184, 114, 1, 10, 2, 32, 3, 89, 6, 132, 34, 0, 101, 1, 105, 102,
-			102, 111, 2, 114, 3, 89, 36, 0, 101, 114, 1, 105, 102, 105, 108, 97, 118, 107, 115, 105, 100, 3, 89, 36, 34, 0, 121, 110, 116, 104,
-			105, 97, 3, 89, 36, 50, 87, 37, 117, 0, 105, 101, 117, 120, 3, 89, 57, 6, 132, 0, 4, 105, 103, 97, 114, 101, 116, 3, 89, 111,
-			81, 14, 34, 6, 119, 47, 0, 105, 103, 97, 114, 101, 116, 116, 0, 105, 114, 99, 117, 115, 1, 32, 121, 108, 108, 105, 100, 97, 99, 99,
-			105, 112, 3, 89, 132, 49, 13, 89, 0, 101, 121, 108, 111, 110, 3, 89, 136, 59, 108, 50, 0, 4, 2, 104, 97, 3, 91, 0, 104, 1,
-			114, 0, 104, 2, 12, 0, 104, 2, 97, 116, 101, 97, 117, 0, 99, 105, 110, 105, 1, 117, 112, 3, 91, 6, 37, 50, 111, 0, 2, 101,
-			108, 108, 111, 3, 91, 57, 0, 104, 105, 99, 97, 103, 111, 3, 91, 111, 49, 6, 121, 81, 125, 58, 0, 104, 111, 112, 105, 110, 3, 91,
-			124, 48, 115, 68, 0, 104, 111, 107, 101, 114, 101, 110, 2, 32, 3, 91, 125, 58, 49, 108, 34, 13, 50, 0, 104, 101, 121, 101, 110, 110,
-			101, 3, 91, 136, 6, 116, 50, 0, 104, 101, 121, 101, 110, 110, 101, 114, 3, 91, 136, 6, 116, 50, 109, 0, 7, 6, 100, 0, 4, 1,
-			17, 65, 2, 116, 32, 12, 12, 3, 0, 4, 1, 17, 65, 2, 116, 101, 12, 12, 3, 0, 4, 1, 17, 65, 2, 116, 101, 32, 12, 12,
-			3, 0, 4, 1, 17, 65, 2, 116, 101, 114, 32, 12, 12, 3, 0, 4, 1, 97, 118, 104, 3, 0, 4, 1, 101, 114, 107, 2, 115, 3,
-			0, 4, 1, 105, 2, 116, 3, 0, 4, 1, 105, 98, 2, 115, 107, 3, 0, 4, 1, 105, 116, 2, 115, 101, 108, 3, 0, 4, 1, 108,
-			3, 0, 4, 1, 108, 101, 109, 2, 105, 110, 103, 3, 0, 4, 1, 108, 117, 3, 0, 4, 1, 108, 117, 103, 3, 0, 4, 1, 110, 97,
-			2, 101, 3, 0, 4, 1, 110, 105, 2, 17, 67, 3, 0, 4, 1, 111, 108, 2, 115, 3, 0, 4, 1, 114, 111, 2, 101, 3, 0, 4,
-			1, 114, 111, 107, 105, 116, 115, 3, 0, 4, 1, 114, 165, 195, 104, 3, 0, 4, 1, 114, 166, 195, 2, 32, 3, 0, 4, 1, 114, 166,
-			195, 102, 3, 0, 4, 1, 114, 166, 195, 118, 2, 115, 3, 0, 4, 1, 114, 166, 195, 118, 115, 3, 0, 4, 1, 114, 166, 195, 118, 115,
-			2, 101, 116, 3, 0, 4, 1, 117, 98, 2, 103, 101, 116, 3, 0, 4, 1, 184, 195, 2, 115, 101, 108, 12, 12, 3, 0, 4, 1, 184,
-			195, 2, 116, 3, 0, 4, 1, 184, 195, 102, 2, 115, 12, 12, 3, 0, 4, 2, 115, 116, 12, 12, 3, 0, 4, 8, 97, 109, 2, 115,
-			101, 110, 3, 0, 4, 8, 114, 117, 116, 2, 101, 3, 0, 101, 8, 110, 97, 102, 2, 109, 101, 3, 0, 4, 1, 105, 100, 110, 97, 107,
-			2, 97, 116, 3, 6, 72, 0, 1, 111, 109, 2, 97, 108, 0, 1, 108, 101, 109, 105, 2, 97, 3, 8, 72, 0, 4, 111, 114, 111, 116,
-			104, 121, 3, 21, 0, 114, 105, 115, 99, 111, 0, 4, 97, 117, 109, 105, 101, 114, 3, 21, 102, 114, 0, 101, 103, 97, 115, 8, 0, 105,
-			1, 114, 101, 106, 102, 2, 110, 103, 3, 36, 0, 4, 1, 111, 111, 119, 3, 47, 0, 116, 1, 101, 102, 2, 21, 0, 116, 1, 101, 114,
-			112, 115, 0, 116, 1, 105, 107, 115, 0, 116, 1, 117, 2, 12, 0, 101, 1, 108, 97, 98, 3, 55, 14, 0, 4, 3, 72, 0, 1, 17,
-			67, 2, 101, 116, 17, 65, 0, 1, 21, 2, 101, 108, 116, 0, 1, 21, 2, 101, 111, 0, 1, 21, 2, 117, 101, 0, 1, 21, 2, 121,
-			114, 0, 1, 97, 2, 97, 109, 0, 1, 97, 2, 111, 112, 116, 101, 114, 0, 1, 97, 109, 2, 114, 97, 115, 0, 1, 101, 2, 103, 97,
-			114, 0, 1, 101, 98, 2, 102, 111, 114, 100, 0, 1, 101, 109, 2, 97, 108, 106, 0, 1, 101, 109, 111, 114, 100, 2, 97, 114, 0, 1,
-			101, 110, 101, 118, 2, 105, 103, 0, 1, 101, 112, 2, 114, 111, 0, 1, 101, 114, 2, 97, 0, 1, 105, 2, 111, 108, 0, 1, 105, 99,
-			97, 2, 111, 115, 101, 0, 1, 105, 102, 2, 117, 115, 0, 1, 105, 115, 2, 101, 110, 116, 0, 1, 105, 118, 101, 2, 101, 110, 0, 1,
-			108, 2, 97, 107, 105, 110, 0, 1, 108, 2, 105, 103, 0, 1, 108, 2, 117, 103, 0, 1, 108, 97, 2, 114, 105, 103, 0, 1, 108, 97,
-			105, 100, 97, 114, 2, 195, 166, 107, 0, 1, 108, 97, 109, 114, 111, 102, 2, 101, 0, 1, 108, 97, 114, 101, 109, 115, 101, 2, 97, 0,
-			1, 108, 97, 115, 2, 111, 0, 1, 108, 101, 104, 2, 105, 0, 1, 108, 101, 116, 114, 117, 116, 2, 117, 101, 0, 1, 108, 101, 118, 2,
-			114, 101, 106, 0, 1, 108, 105, 2, 114, 105, 110, 103, 0, 1, 108, 105, 98, 2, 195, 166, 107, 0, 1, 108, 105, 100, 2, 111, 0, 1,
-			108, 105, 107, 2, 114, 101, 0, 1, 108, 108, 117, 98, 2, 111, 0, 1, 108, 111, 2, 105, 110, 103, 0, 1, 108, 111, 98, 0, 1, 108,
-			111, 115, 2, 195, 166, 107, 0, 1, 110, 17, 65, 2, 114, 17, 65, 0, 1, 110, 17, 65, 2, 114, 101, 0, 1, 110, 105, 2, 117, 0,
-			1, 110, 105, 2, 117, 17, 67, 0, 1, 110, 111, 104, 2, 117, 114, 97, 0, 1, 111, 98, 2, 101, 103, 97, 0, 1, 111, 108, 101, 109,
-			2, 105, 0, 1, 111, 109, 2, 101, 108, 0, 1, 111, 109, 2, 101, 109, 0, 1, 111, 109, 2, 101, 114, 110, 0, 1, 111, 111, 118, 2,
-			111, 111, 0, 1, 114, 105, 2, 32, 0, 1, 114, 111, 2, 101, 108, 0, 1, 114, 111, 2, 101, 110, 0, 1, 114, 111, 2, 101, 114, 0,
-			1, 114, 111, 106, 104, 0, 1, 114, 111, 107, 97, 0, 1, 114, 111, 107, 101, 114, 0, 1, 114, 166, 195, 102, 2, 101, 17, 67, 0, 1,
-			114, 166, 195, 108, 2, 32, 0, 1, 114, 166, 195, 118, 2, 105, 0, 1, 117, 98, 2, 97, 112, 101, 115, 116, 0, 1, 117, 106, 2, 97,
-			115, 0, 1, 117, 108, 107, 2, 101, 114, 101, 0, 1, 117, 109, 114, 101, 98, 2, 97, 0, 1, 121, 111, 108, 102, 0, 1, 165, 195, 2,
-			97, 110, 0, 1, 166, 195, 2, 114, 117, 0, 1, 166, 195, 112, 2, 97, 0, 1, 184, 195, 2, 101, 109, 32, 0, 1, 184, 195, 2, 101,
-			109, 101, 114, 32, 0, 1, 184, 195, 2, 101, 109, 101, 116, 32, 0, 2, 97, 103, 12, 0, 2, 97, 109, 112, 0, 2, 97, 110, 115, 0,
-			2, 101, 108, 101, 0, 2, 101, 109, 101, 110, 115, 0, 2, 105, 0, 2, 105, 111, 120, 0, 2, 111, 98, 108, 0, 2, 111, 107, 0, 2,
-			111, 108, 108, 0, 2, 111, 109, 0, 2, 111, 110, 110, 97, 0, 2, 114, 97, 98, 0, 2, 114, 97, 109, 97, 0, 2, 114, 101, 118, 0,
-			2, 114, 111, 110, 110, 105, 110, 103, 0, 2, 114, 121, 115, 0, 2, 117, 102, 116, 101, 0, 2, 117, 107, 107, 101, 0, 2, 117, 115, 0,
-			2, 195, 165, 100, 12, 0, 2, 195, 165, 115, 101, 0, 2, 195, 184, 109, 12, 0, 2, 195, 184, 114, 0, 8, 97, 2, 114, 0, 8, 105,
-			2, 101, 0, 8, 105, 2, 195, 169, 0, 8, 108, 105, 104, 2, 97, 0, 39, 0, 100, 1, 105, 109, 2, 97, 0, 100, 104, 1, 117, 98,
-			0, 100, 104, 1, 117, 98, 2, 105, 115, 116, 0, 4, 1, 110, 101, 112, 2, 117, 108, 3, 72, 6, 0, 1, 111, 109, 2, 117, 108, 0,
-			101, 110, 100, 114, 111, 110, 3, 72, 6, 36, 50, 72, 34, 108, 50, 0, 105, 1, 117, 111, 104, 2, 110, 105, 3, 72, 6, 111, 0, 101,
-			1, 105, 107, 114, 111, 3, 72, 6, 114, 0, 101, 1, 97, 116, 114, 111, 109, 2, 108, 3, 72, 6, 115, 0, 195, 166, 1, 117, 106, 2,
-			97, 3, 72, 6, 115, 12, 0, 111, 115, 1, 101, 110, 114, 117, 111, 116, 3, 72, 6, 124, 0, 117, 1, 97, 105, 118, 2, 107, 116, 3,
-			72, 6, 125, 0, 111, 114, 1, 97, 118, 108, 97, 115, 3, 72, 6, 125, 12, 0, 117, 8, 111, 114, 112, 2, 107, 116, 3, 72, 6, 126,
-			0, 101, 110, 1, 114, 101, 118, 3, 72, 14, 50, 0, 114, 101, 100, 8, 108, 105, 109, 3, 72, 34, 115, 72, 0, 114, 101, 121, 102, 117,
-			115, 3, 72, 34, 116, 83, 6, 130, 89, 0, 104, 111, 119, 3, 72, 35, 58, 0, 101, 116, 101, 110, 116, 101, 3, 72, 36, 47, 6, 121,
-			12, 68, 47, 0, 101, 116, 114, 111, 105, 116, 3, 72, 36, 47, 34, 6, 108, 57, 47, 0, 4, 105, 99, 107, 105, 101, 3, 72, 36, 49,
-			37, 0, 105, 99, 107, 121, 0, 105, 103, 1, 114, 166, 195, 102, 3, 72, 37, 0, 101, 97, 110, 8, 3, 72, 37, 12, 50, 0, 111, 114,
-			97, 100, 111, 1, 108, 101, 3, 72, 39, 34, 6, 121, 72, 39, 0, 111, 117, 103, 104, 110, 117, 116, 3, 72, 39, 58, 50, 108, 72, 0,
-			114, 105, 118, 101, 8, 2, 45, 3, 72, 51, 121, 113, 84, 0, 114, 121, 115, 100, 97, 108, 101, 8, 3, 72, 51, 136, 89, 72, 115, 57,
-			55, 0, 105, 1, 97, 114, 2, 111, 3, 72, 57, 0, 4, 117, 99, 101, 114, 1, 111, 114, 112, 2, 32, 3, 72, 57, 6, 40, 89, 108,
-			0, 117, 99, 101, 114, 1, 111, 114, 112, 2, 97, 115, 115, 105, 115, 116, 101, 110, 116, 0, 101, 119, 101, 121, 3, 72, 57, 40, 37, 0,
-			119, 105, 103, 104, 116, 3, 72, 58, 136, 47, 0, 100, 115, 1, 111, 3, 72, 89, 0, 115, 116, 111, 110, 101, 1, 97, 108, 103, 3, 72,
-			89, 47, 127, 58, 50, 0, 97, 119, 115, 111, 110, 3, 72, 108, 12, 89, 109, 50, 0, 111, 99, 8, 2, 32, 3, 72, 108, 49, 0, 111,
-			117, 98, 108, 101, 3, 72, 108, 71, 13, 55, 0, 111, 117, 98, 108, 101, 116, 111, 110, 3, 72, 108, 71, 13, 55, 47, 108, 50, 0, 111,
-			100, 103, 101, 3, 72, 108, 75, 0, 117, 116, 99, 104, 3, 72, 108, 76, 0, 101, 1, 121, 98, 2, 108, 3, 72, 114, 0, 101, 98, 98,
-			105, 101, 3, 72, 116, 71, 37, 0, 97, 114, 121, 108, 3, 72, 117, 34, 112, 59, 0, 97, 105, 113, 117, 105, 114, 105, 3, 72, 117, 49,
-			13, 34, 37, 0, 97, 114, 108, 101, 110, 101, 3, 72, 121, 55, 6, 37, 50, 0, 97, 118, 8, 2, 32, 3, 72, 121, 58, 0, 111, 119,
-			110, 3, 72, 121, 58, 50, 0, 111, 119, 110, 108, 111, 97, 100, 3, 72, 121, 58, 50, 55, 39, 58, 72, 0, 111, 117, 98, 116, 102, 105,
-			114, 101, 3, 72, 121, 58, 72, 83, 136, 108, 0, 97, 118, 115, 8, 2, 32, 3, 72, 121, 58, 89, 0, 117, 8, 111, 114, 112, 2, 107,
-			116, 105, 118, 3, 72, 123, 0, 111, 114, 115, 101, 116, 8, 3, 72, 125, 12, 89, 115, 47, 0, 117, 110, 100, 1, 101, 114, 2, 97, 110,
-			116, 3, 72, 126, 50, 72, 0, 111, 114, 101, 101, 110, 8, 3, 72, 127, 34, 6, 37, 50, 0, 117, 98, 111, 105, 115, 3, 72, 129, 71,
-			58, 6, 121, 0, 117, 107, 101, 8, 3, 75, 40, 12, 49, 0, 101, 117, 99, 101, 3, 75, 40, 12, 89, 0, 4, 1, 17, 65, 2, 17,
-			65, 3, 86, 0, 1, 17, 65, 2, 17, 67, 0, 1, 17, 65, 2, 32, 0, 1, 17, 65, 2, 101, 115, 0, 1, 17, 65, 2, 105, 103,
-			0, 1, 17, 65, 18, 74, 2, 116, 97, 0, 1, 97, 98, 2, 101, 0, 1, 97, 114, 103, 2, 12, 0, 1, 100, 101, 110, 2, 115, 0,
-			1, 101, 110, 2, 115, 116, 0, 1, 101, 114, 102, 2, 115, 0, 1, 101, 116, 115, 0, 1, 105, 2, 116, 105, 12, 0, 1, 105, 98, 2,
-			101, 0, 1, 105, 112, 115, 2, 115, 116, 101, 103, 0, 1, 105, 114, 116, 115, 2, 115, 0, 1, 105, 116, 2, 101, 0, 1, 105, 116, 2,
-			115, 12, 0, 1, 105, 118, 2, 101, 114, 0, 1, 111, 102, 2, 17, 67, 12, 12, 0, 1, 111, 109, 2, 115, 116, 12, 0, 1, 117, 2,
-			105, 0, 1, 117, 2, 115, 116, 121, 114, 12, 0, 1, 117, 98, 2, 115, 12, 12, 0, 1, 121, 2, 115, 116, 97, 116, 12, 0, 1, 121,
-			98, 2, 101, 108, 105, 103, 0, 1, 121, 108, 0, 1, 166, 195, 114, 2, 115, 101, 108, 0, 1, 184, 195, 2, 115, 12, 12, 0, 1, 184,
-			195, 100, 2, 12, 0, 8, 117, 2, 12, 12, 0, 100, 1, 17, 65, 0, 100, 1, 17, 65, 2, 17, 65, 12, 0, 4, 100, 101, 1, 166,
-			195, 118, 2, 21, 12, 3, 86, 14, 0, 100, 101, 1, 184, 195, 110, 2, 12, 0, 101, 1, 97, 2, 108, 0, 101, 1, 97, 98, 2, 21,
-			0, 101, 1, 97, 103, 2, 21, 0, 101, 1, 97, 104, 2, 21, 0, 101, 1, 101, 102, 2, 21, 0, 101, 1, 101, 103, 2, 21, 0, 101,
-			1, 101, 114, 2, 21, 0, 101, 1, 105, 107, 115, 2, 21, 0, 101, 1, 105, 114, 2, 21, 0, 101, 1, 105, 116, 2, 21, 0, 101, 1,
-			121, 98, 100, 110, 105, 0, 101, 1, 121, 114, 103, 2, 114, 101, 116, 0, 101, 1, 166, 195, 2, 108, 12, 0, 101, 1, 17, 65, 2, 32,
-			3, 86, 14, 11, 0, 105, 1, 17, 65, 2, 115, 107, 3, 86, 37, 0, 4, 100, 1, 101, 109, 2, 101, 108, 3, 86, 72, 0, 100, 1,
-			117, 2, 97, 110, 110, 0, 100, 1, 117, 2, 195, 184, 12, 0, 100, 1, 117, 103, 2, 12, 12, 0, 100, 1, 117, 107, 115, 2, 117, 12,
-			0, 100, 1, 117, 108, 2, 111, 118, 0, 100, 1, 121, 108, 2, 195, 166, 109, 112, 0, 100, 1, 184, 195, 108, 98, 2, 121, 114, 0, 115,
-			1, 17, 65, 2, 195, 166, 116, 3, 86, 89, 0, 4, 100, 101, 114, 1, 184, 195, 110, 2, 12, 3, 86, 108, 0, 101, 114, 1, 105, 114,
-			0, 101, 114, 1, 105, 116, 0, 4, 101, 114, 1, 97, 2, 21, 3, 86, 109, 0, 101, 114, 1, 97, 103, 0, 101, 114, 1, 101, 102, 0,
-			101, 114, 1, 105, 107, 115, 2, 21, 0, 101, 114, 1, 121, 2, 32, 3, 86, 109, 11, 0, 101, 114, 1, 105, 107, 115, 2, 105, 107, 3,
-			86, 109, 51, 0, 101, 1, 121, 115, 2, 110, 103, 3, 86, 116, 0, 4, 115, 1, 17, 65, 2, 101, 108, 3, 89, 0, 115, 1, 17, 65,
-			2, 108, 101, 12, 0, 115, 1, 97, 108, 112, 0, 115, 1, 97, 112, 115, 2, 101, 114, 0, 115, 1, 97, 114, 107, 0, 115, 1, 97, 116,
-			115, 2, 32, 0, 115, 1, 101, 114, 102, 108, 0, 115, 1, 105, 104, 0, 115, 1, 105, 104, 2, 101, 0, 115, 1, 105, 112, 0, 115, 1,
-			105, 114, 0, 115, 1, 117, 109, 115, 0, 115, 1, 117, 112, 0, 115, 1, 117, 114, 116, 115, 0, 115, 1, 117, 116, 2, 101, 0, 115, 1,
-			117, 116, 115, 0, 115, 1, 121, 0, 115, 1, 105, 116, 2, 110, 111, 107, 3, 89, 6, 0, 115, 101, 108, 1, 117, 108, 112, 3, 89, 14,
-			59, 0, 101, 1, 114, 166, 195, 103, 3, 108, 0, 101, 110, 1, 114, 166, 195, 102, 100, 97, 3, 109, 50, 0, 7, 6, 101, 0, 4, 1,
-			98, 98, 111, 100, 2, 108, 3, 0, 4, 1, 99, 97, 102, 114, 101, 116, 110, 105, 3, 0, 4, 1, 99, 97, 112, 2, 109, 97, 107, 101,
-			114, 3, 0, 4, 1, 99, 97, 112, 114, 111, 116, 111, 109, 3, 0, 4, 1, 99, 101, 101, 108, 102, 3, 0, 4, 1, 99, 105, 112, 115,
-			111, 104, 2, 32, 3, 0, 4, 1, 99, 105, 116, 102, 111, 115, 3, 0, 4, 1, 99, 105, 117, 106, 3, 0, 4, 1, 99, 110, 97, 108,
-			101, 101, 114, 102, 3, 0, 4, 1, 99, 110, 101, 112, 2, 12, 3, 0, 4, 1, 99, 110, 101, 118, 111, 114, 112, 3, 0, 4, 1, 99,
-			117, 97, 115, 3, 0, 4, 1, 99, 121, 111, 106, 3, 0, 4, 1, 105, 112, 117, 111, 114, 103, 3, 0, 4, 1, 105, 114, 98, 2, 102,
-			3, 0, 4, 1, 105, 116, 114, 97, 2, 12, 3, 0, 4, 1, 108, 108, 2, 100, 101, 12, 3, 0, 4, 1, 115, 17, 65, 17, 67, 2,
-			110, 101, 114, 3, 0, 4, 8, 99, 105, 102, 102, 111, 2, 32, 3, 0, 4, 8, 105, 110, 3, 0, 4, 8, 105, 110, 97, 106, 3, 0,
-			8, 105, 116, 114, 97, 3, 0, 1, 114, 2, 116, 114, 195, 166, 3, 2, 116, 0, 1, 110, 114, 2, 100, 12, 3, 4, 114, 0, 4, 1,
-			99, 114, 101, 109, 2, 100, 101, 115, 3, 6, 36, 0, 1, 108, 108, 97, 2, 103, 114, 111, 0, 1, 109, 105, 107, 114, 97, 2, 100, 101,
-			115, 0, 1, 112, 117, 111, 116, 0, 1, 114, 116, 115, 107, 101, 2, 109, 0, 8, 98, 100, 184, 195, 114, 2, 100, 101, 0, 8, 112, 114,
-			111, 116, 2, 100, 111, 0, 8, 115, 121, 102, 109, 101, 2, 109, 0, 4, 110, 101, 1, 108, 114, 97, 109, 3, 6, 36, 50, 14, 0, 110,
-			101, 1, 109, 114, 111, 102, 32, 116, 97, 0, 110, 101, 1, 114, 117, 2, 32, 116, 97, 110, 107, 101, 114, 0, 110, 101, 8, 108, 101, 104,
-			0, 100, 101, 110, 1, 110, 114, 111, 102, 3, 6, 36, 86, 14, 50, 0, 115, 101, 1, 10, 2, 28, 33, 3, 6, 36, 89, 14, 0, 115,
-			101, 1, 10, 2, 114, 28, 33, 3, 6, 36, 89, 108, 0, 101, 1, 108, 104, 116, 97, 107, 2, 110, 3, 6, 37, 12, 0, 110, 101, 1,
-			108, 114, 97, 104, 99, 3, 6, 37, 12, 50, 0, 101, 102, 101, 1, 107, 3, 6, 37, 12, 83, 0, 4, 1, 100, 111, 98, 2, 103, 97,
-			3, 6, 114, 0, 1, 100, 117, 116, 115, 2, 114, 101, 0, 1, 107, 105, 110, 117, 109, 109, 111, 107, 2, 32, 0, 1, 107, 105, 110, 117,
-			109, 109, 111, 107, 2, 101, 114, 32, 0, 1, 107, 105, 110, 117, 109, 109, 111, 107, 2, 101, 116, 32, 0, 1, 107, 115, 111, 109, 0, 1,
-			107, 115, 165, 195, 109, 2, 32, 0, 1, 108, 97, 100, 103, 97, 109, 2, 110, 0, 1, 109, 97, 110, 116, 101, 105, 118, 2, 115, 101, 114,
-			0, 1, 109, 114, 117, 111, 103, 0, 1, 110, 97, 100, 117, 115, 2, 115, 101, 114, 0, 1, 110, 97, 118, 105, 100, 2, 115, 101, 114, 0,
-			1, 110, 101, 118, 2, 100, 105, 103, 0, 1, 110, 105, 107, 2, 115, 12, 12, 0, 1, 110, 110, 97, 118, 97, 104, 2, 115, 101, 114, 0,
-			1, 110, 114, 117, 116, 0, 1, 112, 117, 107, 2, 12, 0, 1, 114, 107, 115, 105, 100, 2, 116, 12, 0, 1, 114, 117, 114, 111, 102, 2,
-			110, 101, 0, 1, 114, 121, 116, 115, 2, 110, 0, 1, 115, 115, 97, 104, 99, 0, 1, 116, 101, 105, 114, 97, 118, 0, 1, 116, 105, 109,
-			111, 107, 0, 1, 116, 111, 114, 112, 2, 115, 101, 0, 8, 100, 105, 0, 8, 100, 105, 118, 105, 100, 2, 110, 116, 101, 0, 8, 108, 101,
-			2, 118, 0, 8, 108, 101, 99, 2, 98, 101, 114, 0, 8, 108, 108, 111, 107, 2, 103, 97, 0, 8, 109, 97, 114, 107, 97, 115, 2, 110,
-			116, 101, 0, 8, 109, 97, 116, 115, 101, 116, 2, 110, 116, 101, 0, 8, 109, 105, 2, 110, 115, 12, 0, 8, 109, 105, 103, 101, 114, 2,
-			110, 116, 101, 0, 8, 110, 103, 97, 109, 2, 116, 0, 8, 114, 111, 107, 2, 97, 0, 8, 116, 97, 107, 2, 100, 101, 114, 0, 8, 116,
-			97, 107, 2, 116, 101, 114, 0, 8, 116, 108, 97, 109, 2, 115, 0, 8, 116, 110, 101, 114, 97, 112, 2, 115, 0, 103, 1, 116, 115, 101,
-			98, 2, 32, 0, 103, 1, 116, 115, 101, 98, 2, 101, 116, 32, 0, 115, 1, 99, 99, 117, 0, 2, 110, 100, 110, 117, 3, 6, 114, 6,
-			0, 1, 17, 67, 2, 101, 110, 3, 6, 114, 12, 0, 101, 1, 116, 105, 109, 111, 107, 2, 110, 3, 6, 114, 14, 0, 114, 1, 98, 105,
-			2, 105, 97, 12, 3, 6, 114, 34, 0, 110, 101, 1, 108, 114, 111, 102, 3, 6, 114, 50, 14, 0, 4, 103, 1, 116, 97, 114, 116, 115,
-			2, 32, 3, 6, 114, 57, 0, 103, 8, 108, 108, 111, 107, 2, 101, 0, 4, 109, 1, 10, 2, 32, 28, 33, 12, 3, 6, 114, 65, 0,
+			2, 101, 114, 103, 97, 115, 116, 0, 1, 101, 112, 2, 105, 0, 1, 101, 112, 115, 2, 101, 114, 0, 1, 101, 116, 2, 101, 110, 0, 1,
+			101, 116, 2, 101, 110, 115, 0, 1, 101, 116, 115, 0, 1, 101, 116, 116, 105, 109, 105, 100, 0, 1, 101, 117, 110, 105, 109, 0, 1, 101,
+			118, 100, 184, 195, 110, 2, 105, 103, 0, 1, 101, 119, 2, 101, 108, 0, 1, 101, 119, 2, 121, 0, 1, 101, 119, 103, 2, 97, 0, 1,
+			105, 2, 101, 107, 115, 0, 1, 105, 2, 101, 117, 0, 1, 105, 2, 105, 0, 1, 105, 2, 105, 103, 12, 0, 1, 105, 2, 111, 107, 105,
+			0, 1, 105, 2, 111, 110, 101, 0, 1, 105, 2, 117, 0, 1, 105, 99, 2, 121, 0, 1, 105, 102, 2, 101, 108, 0, 1, 105, 108, 2,
+			97, 0, 1, 105, 108, 2, 121, 0, 1, 105, 118, 2, 114, 105, 107, 0, 1, 105, 118, 2, 117, 0, 1, 111, 2, 105, 0, 1, 111, 98,
+			32, 115, 101, 109, 97, 106, 0, 1, 111, 107, 2, 101, 109, 110, 101, 114, 101, 0, 1, 111, 107, 2, 101, 110, 115, 0, 1, 111, 107, 2,
+			105, 0, 1, 111, 107, 2, 111, 108, 0, 1, 111, 107, 2, 111, 108, 101, 114, 101, 0, 1, 111, 114, 2, 101, 108, 0, 1, 117, 2, 110,
+			101, 0, 1, 117, 2, 114, 101, 0, 1, 117, 102, 2, 97, 0, 1, 117, 102, 2, 101, 114, 0, 1, 117, 104, 2, 106, 195, 166, 118, 101,
+			108, 0, 1, 117, 104, 2, 121, 114, 0, 1, 117, 107, 101, 115, 0, 1, 117, 109, 2, 101, 114, 105, 110, 103, 0, 1, 117, 114, 32, 110,
+			101, 2, 101, 0, 1, 117, 114, 115, 2, 101, 0, 1, 184, 195, 115, 2, 97, 103, 0, 2, 97, 103, 0, 2, 101, 110, 116, 0, 2, 105,
+			100, 97, 0, 2, 105, 103, 0, 2, 111, 109, 0, 2, 121, 114, 0, 2, 195, 165, 115, 101, 0, 2, 195, 184, 100, 0, 2, 195, 184, 114,
+			0, 8, 97, 98, 32, 110, 101, 2, 101, 0, 8, 97, 98, 32, 110, 101, 100, 2, 101, 0, 8, 105, 2, 101, 114, 32, 12, 0, 8, 105,
+			2, 121, 0, 8, 105, 103, 97, 98, 0, 8, 111, 98, 2, 32, 0, 4, 1, 97, 109, 114, 111, 110, 2, 105, 3, 50, 72, 6, 0, 1,
+			97, 112, 2, 111, 114, 97, 0, 1, 101, 109, 2, 111, 122, 97, 0, 1, 101, 112, 2, 117, 108, 0, 101, 8, 97, 109, 2, 108, 97, 3,
+			50, 72, 6, 36, 0, 4, 105, 103, 1, 101, 118, 3, 50, 72, 37, 0, 105, 103, 1, 117, 114, 103, 0, 105, 103, 1, 121, 0, 105, 103,
+			1, 121, 109, 0, 4, 101, 1, 97, 98, 2, 108, 101, 100, 101, 114, 12, 3, 50, 72, 108, 0, 101, 1, 97, 98, 2, 109, 101, 100, 108,
+			101, 109, 0, 101, 1, 97, 98, 2, 111, 112, 103, 195, 184, 114, 0, 101, 1, 97, 98, 32, 101, 108, 101, 104, 0, 101, 1, 97, 98, 32,
+			110, 105, 100, 0, 101, 1, 97, 98, 32, 110, 105, 109, 0, 101, 1, 97, 98, 32, 115, 101, 114, 0, 101, 1, 97, 98, 101, 110, 114, 184,
+			195, 106, 98, 0, 101, 1, 97, 98, 101, 118, 121, 116, 0, 101, 1, 97, 98, 114, 101, 118, 184, 195, 114, 0, 97, 108, 101, 1, 101, 112,
+			112, 105, 104, 99, 3, 50, 72, 109, 57, 55, 0, 101, 1, 97, 115, 2, 108, 105, 103, 3, 50, 108, 0, 7, 6, 110, 103, 0, 1, 105,
+			109, 97, 108, 102, 2, 111, 3, 8, 50, 81, 0, 1, 105, 102, 2, 114, 101, 3, 8, 68, 0, 1, 97, 114, 111, 2, 101, 3, 8, 68,
+			89, 57, 0, 2, 117, 100, 3, 50, 72, 0, 1, 105, 114, 114, 101, 100, 2, 101, 114, 3, 50, 75, 0, 4, 1, 17, 65, 2, 111, 3,
+			50, 81, 0, 1, 97, 2, 105, 118, 0, 1, 97, 116, 2, 101, 110, 116, 0, 1, 97, 118, 101, 2, 101, 108, 0, 1, 101, 103, 2, 105,
+			118, 12, 0, 1, 101, 103, 114, 111, 109, 2, 114, 121, 0, 1, 101, 104, 2, 101, 109, 0, 1, 101, 104, 2, 105, 118, 0, 1, 101, 114,
+			2, 195, 184, 114, 0, 1, 105, 118, 2, 195, 165, 114, 100, 0, 1, 118, 97, 110, 2, 105, 118, 0, 1, 166, 195, 107, 2, 117, 114, 117,
+			0, 2, 97, 0, 2, 101, 118, 195, 166, 114, 0, 2, 108, 97, 115, 0, 2, 114, 97, 100, 0, 2, 117, 108, 118, 0, 2, 121, 109, 110,
+			97, 115, 116, 0, 2, 195, 166, 108, 100, 0, 8, 97, 2, 17, 65, 0, 8, 105, 102, 2, 101, 114, 101, 0, 1, 97, 112, 2, 195, 166,
+			97, 3, 50, 81, 6, 0, 117, 1, 97, 108, 2, 115, 116, 3, 50, 81, 6, 40, 0, 101, 114, 2, 114, 105, 103, 3, 50, 81, 109, 34,
+			0, 101, 110, 105, 1, 105, 2, 195, 184, 3, 50, 91, 37, 50, 0, 4, 3, 68, 0, 1, 97, 102, 2, 97, 114, 109, 0, 1, 105, 102,
+			2, 101, 114, 101, 110, 12, 0, 4, 1, 105, 116, 2, 101, 110, 116, 3, 68, 81, 0, 1, 117, 102, 2, 101, 114, 0, 4, 1, 97, 104,
+			99, 2, 101, 109, 101, 110, 116, 3, 68, 89, 57, 0, 8, 97, 114, 2, 101, 114, 0, 101, 97, 1, 97, 114, 111, 2, 100, 101, 3, 68,
+			89, 57, 6, 110, 0, 4, 1, 97, 114, 2, 101, 114, 101, 3, 68, 91, 0, 1, 97, 114, 114, 97, 0, 1, 111, 108, 108, 97, 2, 101,
+			0, 101, 114, 1, 105, 102, 3, 68, 114, 0, 7, 6, 111, 110, 0, 1, 10, 2, 110, 28, 33, 3, 6, 39, 0, 4, 1, 21, 2, 28,
+			33, 12, 3, 6, 39, 50, 0, 1, 102, 101, 108, 10, 2, 28, 33, 0, 1, 102, 111, 10, 2, 28, 33, 0, 1, 108, 101, 10, 2, 28,
+			33, 0, 1, 116, 111, 102, 0, 1, 116, 111, 110, 111, 109, 0, 8, 100, 101, 107, 97, 109, 0, 110, 1, 108, 111, 107, 3, 6, 114, 50,
+			0, 4, 1, 98, 114, 97, 107, 3, 6, 114, 68, 0, 1, 99, 10, 2, 28, 33, 0, 1, 102, 105, 10, 2, 28, 33, 0, 1, 102, 108,
+			97, 2, 115, 0, 1, 106, 10, 2, 28, 33, 0, 1, 108, 10, 2, 28, 33, 0, 1, 112, 10, 2, 28, 33, 0, 1, 114, 114, 101, 112,
+			0, 1, 115, 166, 195, 10, 2, 28, 33, 0, 1, 116, 10, 2, 28, 33, 0, 1, 116, 114, 97, 107, 0, 8, 108, 97, 115, 0, 8, 108,
+			108, 97, 98, 0, 8, 108, 108, 105, 118, 97, 112, 0, 8, 115, 166, 195, 115, 0, 4, 1, 108, 116, 97, 105, 114, 116, 3, 8, 114, 50,
+			0, 1, 108, 116, 97, 117, 100, 0, 1, 10, 2, 101, 108, 28, 33, 3, 39, 50, 0, 1, 116, 111, 110, 111, 109, 2, 105, 3, 39, 50,
+			6, 0, 4, 1, 98, 98, 105, 103, 3, 114, 50, 0, 1, 98, 101, 100, 101, 114, 0, 1, 101, 110, 0, 1, 101, 114, 102, 0, 1, 103,
+			114, 97, 0, 1, 104, 2, 100, 0, 1, 105, 100, 97, 116, 115, 0, 1, 107, 105, 115, 107, 101, 108, 0, 1, 108, 97, 114, 100, 0, 1,
+			108, 102, 101, 116, 0, 1, 108, 108, 97, 103, 0, 1, 108, 111, 107, 2, 32, 0, 1, 108, 114, 101, 112, 0, 1, 108, 114, 111, 0, 1,
+			110, 97, 98, 105, 108, 0, 1, 112, 2, 116, 0, 1, 115, 2, 100, 0, 1, 115, 105, 98, 0, 1, 115, 105, 108, 97, 0, 1, 115, 110,
+			105, 98, 111, 114, 0, 1, 116, 2, 32, 0, 1, 116, 2, 105, 99, 0, 1, 116, 2, 115, 32, 0, 1, 116, 2, 115, 118, 0, 1, 116,
+			97, 103, 101, 109, 0, 1, 116, 97, 114, 97, 109, 0, 1, 116, 116, 103, 166, 195, 118, 100, 184, 195, 100, 0, 1, 121, 114, 98, 109, 101,
+			0, 2, 100, 18, 69, 0, 2, 116, 111, 108, 0, 8, 109, 2, 116, 101, 32, 0, 110, 1, 114, 100, 2, 105, 110, 103, 0, 116, 121, 1,
+			109, 3, 114, 50, 47, 37, 0, 100, 1, 102, 3, 114, 50, 72, 0, 100, 1, 112, 115, 3, 114, 50, 72, 6, 0, 4, 1, 98, 2, 32,
+			3, 114, 68, 0, 1, 98, 2, 101, 110, 32, 0, 1, 108, 97, 115, 0, 1, 108, 97, 116, 0, 1, 108, 108, 105, 118, 97, 112, 0, 1,
+			110, 103, 0, 1, 114, 98, 0, 1, 115, 166, 195, 115, 0, 103, 1, 107, 0, 98, 111, 110, 1, 98, 3, 114, 68, 71, 114, 50, 0, 106,
+			111, 117, 114, 1, 98, 3, 114, 68, 90, 6, 40, 34, 0, 7, 6, 111, 114, 0, 8, 102, 2, 32, 118, 105, 108, 100, 3, 2, 39, 34,
+			0, 4, 1, 102, 2, 104, 97, 108, 17, 65, 12, 12, 3, 2, 114, 0, 8, 102, 2, 21, 12, 12, 0, 8, 102, 2, 104, 111, 108, 100,
+			101, 0, 8, 102, 2, 115, 107, 101, 108, 108, 105, 12, 3, 2, 114, 34, 0, 101, 116, 97, 103, 8, 102, 2, 115, 111, 109, 3, 2, 114,
+			108, 6, 47, 110, 12, 0, 1, 116, 111, 109, 2, 101, 114, 3, 6, 39, 0, 4, 1, 100, 2, 28, 33, 12, 3, 6, 39, 34, 0, 1,
+			100, 97, 101, 10, 2, 28, 33, 0, 1, 102, 10, 2, 28, 33, 0, 1, 110, 101, 10, 2, 28, 33, 0, 1, 116, 10, 2, 105, 101, 28,
+			33, 0, 105, 117, 109, 1, 116, 10, 2, 28, 33, 12, 3, 6, 39, 34, 37, 113, 65, 0, 8, 102, 2, 101, 116, 32, 12, 3, 6, 39,
+			108, 0, 8, 102, 2, 116, 105, 100, 12, 3, 6, 113, 12, 0, 8, 102, 2, 100, 195, 184, 114, 12, 3, 6, 113, 51, 0, 4, 1, 102,
+			103, 110, 105, 115, 108, 101, 104, 2, 115, 3, 6, 114, 0, 1, 112, 101, 114, 2, 116, 101, 114, 0, 8, 102, 2, 97, 32, 12, 0, 8,
+			102, 2, 97, 110, 32, 12, 0, 8, 102, 2, 97, 110, 107, 195, 184, 114, 101, 110, 100, 101, 12, 0, 8, 102, 2, 97, 110, 110, 195, 166,
+			118, 110, 116, 12, 0, 8, 102, 2, 97, 110, 115, 97, 116, 12, 0, 8, 102, 2, 97, 110, 115, 116, 105, 108, 108, 101, 12, 0, 8, 102,
+			2, 97, 110, 115, 116, 195, 165, 101, 110, 100, 101, 12, 0, 8, 102, 2, 98, 101, 104, 97, 110, 100, 12, 0, 8, 102, 2, 98, 101, 104,
+			111, 12, 0, 8, 102, 2, 98, 101, 110, 32, 12, 0, 8, 102, 2, 98, 101, 110, 101, 110, 101, 12, 0, 8, 102, 2, 98, 101, 110, 115,
+			12, 0, 8, 102, 2, 98, 101, 114, 101, 100, 12, 0, 8, 102, 2, 98, 105, 108, 12, 0, 8, 102, 2, 98, 106, 101, 114, 103, 12, 0,
+			8, 102, 2, 98, 111, 103, 115, 116, 97, 118, 12, 0, 8, 102, 2, 98, 117, 100, 32, 12, 0, 8, 102, 2, 98, 117, 100, 115, 12, 0,
+			8, 102, 2, 98, 117, 110, 100, 12, 0, 8, 102, 2, 98, 195, 184, 110, 12, 0, 8, 102, 2, 99, 101, 110, 115, 117, 114, 12, 0, 8,
+			102, 2, 100, 97, 110, 115, 101, 114, 12, 0, 8, 102, 2, 100, 101, 108, 32, 12, 0, 8, 102, 2, 100, 111, 109, 12, 0, 8, 102, 2,
+			100, 114, 105, 110, 103, 12, 0, 8, 102, 2, 100, 195, 166, 107, 32, 12, 0, 8, 102, 2, 100, 195, 166, 107, 107, 101, 110, 101, 12, 0,
+			8, 102, 2, 100, 195, 166, 107, 115, 12, 0, 8, 102, 2, 102, 97, 100, 101, 114, 12, 0, 8, 102, 2, 102, 97, 114, 12, 0, 8, 102,
+			2, 102, 114, 97, 12, 0, 8, 102, 2, 102, 195, 166, 100, 114, 12, 0, 8, 102, 2, 103, 97, 110, 103, 12, 0, 8, 102, 2, 103, 101,
+			109, 97, 107, 12, 0, 8, 102, 2, 103, 114, 117, 110, 100, 12, 0, 8, 102, 2, 103, 195, 165, 114, 100, 12, 0, 8, 102, 2, 103, 195,
+			166, 110, 103, 101, 114, 12, 0, 8, 102, 2, 103, 195, 166, 114, 101, 12, 0, 8, 102, 2, 104, 97, 108, 12, 0, 8, 102, 2, 104, 97,
+			109, 12, 0, 8, 102, 2, 104, 97, 118, 101, 12, 0, 8, 102, 2, 104, 101, 110, 12, 0, 8, 102, 2, 104, 105, 115, 116, 111, 12, 0,
+			8, 102, 2, 104, 106, 117, 108, 12, 0, 8, 102, 2, 104, 111, 108, 100, 0, 8, 102, 2, 104, 111, 108, 100, 101, 116, 12, 0, 8, 102,
+			2, 104, 117, 100, 12, 0, 8, 102, 2, 104, 117, 115, 12, 0, 8, 102, 2, 104, 195, 165, 110, 100, 12, 0, 8, 102, 2, 104, 195, 165,
+			110, 100, 115, 12, 0, 8, 102, 2, 104, 195, 166, 110, 103, 12, 0, 8, 102, 2, 107, 97, 109, 109, 101, 114, 0, 8, 102, 2, 107, 97,
+			114, 108, 12, 0, 8, 102, 2, 107, 108, 111, 103, 12, 0, 8, 102, 2, 107, 111, 110, 116, 111, 114, 12, 0, 8, 102, 2, 107, 114, 111,
+			112, 12, 0, 8, 102, 2, 107, 118, 105, 110, 100, 101, 12, 0, 8, 102, 2, 107, 195, 166, 109, 112, 101, 114, 12, 0, 8, 102, 2, 107,
+			195, 166, 114, 108, 105, 103, 104, 101, 100, 0, 8, 102, 2, 107, 195, 184, 98, 12, 0, 8, 102, 2, 108, 97, 103, 12, 0, 8, 102, 2,
+			108, 97, 103, 115, 12, 0, 8, 102, 2, 108, 97, 110, 100, 12, 0, 8, 102, 2, 108, 101, 109, 12, 0, 8, 102, 2, 108, 111, 118, 101,
+			114, 12, 0, 8, 102, 2, 108, 121, 100, 12, 0, 8, 102, 2, 108, 121, 115, 12, 0, 8, 102, 2, 108, 195, 166, 103, 103, 101, 114, 0,
+			8, 102, 2, 108, 195, 166, 110, 115, 12, 0, 8, 102, 2, 108, 195, 166, 115, 101, 12, 0, 8, 102, 2, 109, 97, 108, 100, 101, 104, 121,
+			100, 12, 0, 8, 102, 2, 109, 97, 110, 100, 12, 0, 8, 102, 2, 109, 98, 97, 114, 12, 0, 8, 102, 2, 109, 98, 114, 195, 184, 100,
+			12, 0, 8, 102, 2, 109, 101, 12, 12, 0, 8, 102, 2, 109, 101, 108, 105, 103, 12, 0, 8, 102, 2, 109, 108, 101, 12, 0, 8, 102,
+			2, 109, 195, 166, 110, 100, 12, 0, 8, 102, 2, 117, 100, 101, 32, 12, 0, 101, 110, 100, 8, 102, 2, 101, 12, 3, 6, 114, 4, 36,
+			50, 0, 4, 1, 107, 97, 2, 100, 3, 6, 114, 12, 0, 1, 107, 101, 114, 2, 100, 0, 1, 112, 112, 97, 114, 2, 116, 0, 1, 112,
+			115, 107, 101, 2, 116, 0, 8, 107, 115, 101, 2, 116, 101, 0, 8, 112, 115, 110, 97, 114, 116, 2, 116, 0, 8, 102, 109, 111, 107, 2,
+			116, 3, 6, 114, 12, 19, 0, 100, 8, 107, 107, 97, 3, 6, 114, 12, 19, 72, 0, 1, 107, 101, 100, 2, 32, 3, 6, 114, 12, 34,
+			0, 100, 1, 99, 110, 111, 99, 2, 101, 3, 6, 114, 12, 72, 0, 4, 1, 102, 111, 114, 112, 2, 109, 97, 3, 6, 114, 34, 0, 8,
+			98, 97, 2, 116, 0, 8, 102, 2, 102, 117, 108, 100, 101, 110, 100, 116, 12, 0, 8, 102, 2, 108, 121, 103, 116, 101, 12, 0, 8, 102,
+			2, 108, 195, 166, 98, 101, 12, 0, 8, 102, 2, 109, 102, 97, 115, 116, 12, 0, 8, 102, 2, 109, 102, 114, 105, 12, 0, 8, 102, 2,
+			109, 103, 105, 118, 12, 0, 8, 102, 2, 109, 105, 100, 100, 97, 103, 12, 0, 8, 102, 2, 109, 107, 97, 103, 101, 12, 0, 8, 102, 2,
+			109, 108, 195, 166, 114, 101, 12, 0, 8, 102, 2, 109, 108, 195, 184, 115, 12, 0, 8, 102, 2, 109, 110, 105, 110, 103, 12, 0, 8, 102,
+			2, 109, 111, 114, 12, 0, 8, 102, 2, 109, 112, 114, 101, 115, 115, 101, 12, 0, 8, 102, 2, 109, 115, 12, 0, 8, 102, 2, 109, 116,
+			12, 0, 8, 102, 2, 109, 117, 101, 12, 0, 8, 102, 2, 109, 121, 110, 100, 101, 114, 12, 0, 8, 102, 2, 109, 195, 165, 108, 12, 0,
+			8, 102, 2, 109, 195, 184, 100, 114, 101, 12, 0, 8, 102, 2, 110, 97, 118, 110, 12, 0, 8, 102, 2, 110, 101, 109, 32, 12, 0, 8,
+			102, 2, 111, 109, 116, 97, 108, 101, 12, 0, 8, 102, 2, 111, 114, 100, 12, 0, 8, 102, 2, 111, 118, 101, 114, 12, 0, 8, 102, 2,
+			112, 97, 110, 116, 104, 97, 118, 101, 114, 12, 0, 8, 102, 2, 112, 97, 114, 116, 105, 12, 0, 8, 102, 2, 112, 111, 115, 116, 12, 0,
+			8, 102, 2, 112, 114, 97, 107, 116, 105, 107, 12, 0, 8, 102, 2, 112, 114, 101, 109, 105, 101, 114, 101, 12, 0, 8, 102, 2, 112, 114,
+			111, 103, 114, 97, 109, 109, 101, 114, 101, 12, 0, 8, 102, 2, 112, 114, 195, 184, 118, 101, 12, 0, 8, 102, 2, 112, 195, 165, 12, 0,
+			8, 102, 2, 114, 97, 110, 103, 12, 0, 8, 102, 2, 114, 101, 115, 116, 12, 0, 8, 102, 2, 114, 101, 116, 12, 0, 8, 102, 2, 114,
+			105, 100, 101, 114, 12, 0, 8, 102, 2, 114, 105, 103, 101, 12, 0, 8, 102, 2, 114, 117, 100, 101, 12, 0, 8, 102, 2, 114, 195, 165,
+			100, 32, 12, 0, 8, 102, 2, 115, 97, 110, 103, 101, 114, 12, 0, 8, 102, 2, 115, 97, 116, 115, 12, 0, 8, 102, 2, 115, 105, 100,
+			101, 12, 0, 8, 102, 2, 115, 107, 101, 12, 0, 8, 102, 2, 115, 107, 101, 108, 32, 12, 0, 8, 102, 2, 115, 107, 101, 108, 115, 98,
+			101, 104, 97, 110, 100, 108, 12, 0, 8, 102, 2, 115, 107, 101, 108, 115, 108, 195, 184, 115, 12, 0, 8, 102, 2, 115, 107, 101, 114, 12,
+			0, 8, 102, 2, 115, 107, 110, 12, 0, 8, 102, 2, 115, 107, 111, 108, 12, 0, 8, 102, 2, 115, 107, 114, 105, 102, 116, 12, 0, 8,
+			102, 2, 115, 107, 117, 100, 12, 0, 8, 102, 2, 115, 107, 121, 108, 12, 0, 8, 102, 2, 115, 107, 195, 166, 114, 101, 12, 0, 8, 102,
+			2, 115, 107, 195, 166, 114, 109, 12, 0, 8, 102, 2, 115, 108, 97, 103, 12, 0, 8, 102, 2, 115, 108, 97, 103, 32, 12, 0, 8, 102,
+			2, 115, 108, 97, 103, 115, 12, 0, 8, 102, 2, 115, 109, 97, 103, 12, 0, 8, 102, 2, 115, 111, 109, 109, 101, 114, 12, 0, 8, 102,
+			2, 115, 111, 114, 103, 12, 0, 8, 102, 2, 115, 112, 97, 110, 100, 12, 0, 8, 102, 2, 115, 112, 105, 108, 32, 12, 0, 8, 102, 2,
+			115, 112, 105, 108, 108, 101, 110, 101, 12, 0, 8, 102, 2, 115, 112, 105, 108, 108, 101, 116, 12, 0, 8, 102, 2, 115, 112, 105, 114, 12,
+			0, 8, 102, 2, 115, 112, 114, 105, 110, 103, 12, 0, 8, 102, 2, 115, 112, 195, 166, 110, 100, 116, 12, 0, 8, 102, 2, 115, 116, 97,
+			100, 12, 0, 8, 102, 2, 115, 116, 97, 110, 100, 101, 114, 12, 0, 8, 102, 2, 115, 116, 97, 118, 101, 108, 115, 101, 12, 0, 8, 102,
+			2, 115, 116, 97, 118, 110, 12, 0, 8, 102, 2, 115, 116, 98, 111, 116, 97, 110, 105, 107, 12, 0, 8, 102, 2, 115, 116, 107, 97, 110,
+			100, 105, 100, 97, 116, 12, 0, 8, 102, 2, 115, 116, 108, 105, 103, 12, 0, 8, 102, 2, 115, 116, 109, 97, 110, 100, 12, 0, 8, 102,
+			2, 115, 116, 109, 195, 166, 115, 115, 105, 103, 12, 0, 8, 102, 2, 115, 116, 117, 100, 105, 101, 12, 0, 8, 102, 2, 115, 116, 117, 100,
+			105, 117, 109, 12, 0, 8, 102, 2, 115, 116, 117, 101, 12, 0, 8, 102, 2, 115, 116, 118, 195, 166, 115, 101, 110, 12, 0, 8, 102, 2,
+			115, 116, 122, 111, 111, 108, 111, 103, 105, 12, 0, 8, 102, 2, 115, 116, 195, 166, 100, 101, 114, 12, 0, 8, 102, 2, 115, 116, 195, 166,
+			118, 110, 12, 0, 8, 102, 2, 115, 118, 97, 114, 32, 12, 0, 8, 102, 2, 115, 118, 97, 114, 101, 114, 12, 0, 8, 102, 2, 115, 118,
+			97, 114, 115, 12, 0, 8, 102, 2, 115, 195, 165, 32, 12, 0, 8, 102, 2, 115, 195, 166, 100, 101, 12, 0, 8, 102, 2, 115, 195, 166,
+			116, 12, 0, 8, 102, 2, 116, 97, 110, 100, 12, 0, 8, 102, 2, 116, 97, 110, 100, 115, 12, 0, 8, 102, 2, 116, 101, 103, 110, 32,
+			12, 0, 8, 102, 2, 116, 101, 103, 110, 105, 110, 103, 115, 114, 101, 116, 12, 0, 8, 102, 2, 116, 101, 107, 115, 116, 12, 0, 8, 102,
+			2, 116, 101, 108, 116, 12, 0, 8, 102, 2, 116, 102, 97, 114, 101, 110, 100, 101, 12, 0, 8, 102, 2, 116, 105, 108, 12, 0, 8, 102,
+			2, 116, 108, 195, 184, 98, 101, 110, 100, 101, 12, 0, 8, 102, 2, 116, 111, 103, 12, 0, 8, 102, 2, 116, 111, 118, 12, 0, 8, 102,
+			2, 116, 114, 97, 112, 112, 101, 12, 0, 8, 102, 2, 116, 114, 105, 110, 32, 12, 0, 8, 102, 2, 116, 114, 105, 110, 115, 12, 0, 8,
+			102, 2, 116, 114, 111, 112, 12, 0, 8, 102, 2, 116, 114, 121, 107, 12, 0, 8, 102, 2, 116, 115, 195, 166, 116, 116, 101, 12, 0, 8,
+			102, 2, 116, 117, 110, 103, 101, 12, 0, 8, 102, 2, 116, 195, 166, 110, 100, 101, 114, 12, 0, 8, 102, 2, 116, 195, 166, 112, 112, 101,
+			12, 0, 8, 102, 2, 117, 100, 12, 0, 8, 102, 2, 118, 97, 108, 103, 12, 0, 8, 102, 2, 118, 97, 114, 109, 12, 0, 8, 102, 2,
+			118, 97, 114, 115, 12, 0, 8, 102, 2, 118, 97, 115, 107, 32, 12, 0, 8, 102, 2, 118, 101, 106, 101, 110, 12, 0, 8, 102, 2, 118,
+			195, 166, 114, 101, 108, 115, 101, 12, 0, 8, 102, 2, 195, 165, 100, 12, 0, 8, 102, 2, 195, 165, 114, 12, 0, 116, 97, 108, 101, 114,
+			43, 8, 102, 3, 6, 114, 34, 47, 110, 55, 114, 0, 109, 115, 115, 97, 103, 43, 8, 102, 2, 25, 3, 6, 114, 34, 65, 19, 89, 4,
+			89, 35, 0, 109, 101, 114, 8, 102, 2, 32, 12, 3, 6, 114, 34, 65, 114, 0, 4, 100, 1, 118, 2, 105, 3, 6, 114, 34, 72, 0,
+			100, 2, 101, 110, 116, 108, 105, 103, 12, 0, 100, 2, 110, 105, 110, 0, 101, 8, 102, 2, 12, 12, 3, 6, 115, 12, 108, 0, 1, 10,
+			2, 105, 115, 107, 28, 33, 3, 7, 39, 0, 1, 10, 2, 101, 114, 28, 33, 3, 7, 39, 12, 0, 1, 21, 2, 28, 33, 12, 3, 8,
+			8, 114, 0, 101, 1, 17, 67, 2, 32, 3, 39, 12, 114, 0, 4, 1, 115, 2, 116, 3, 39, 34, 0, 1, 115, 2, 116, 101, 0, 1,
+			116, 115, 2, 116, 0, 1, 118, 2, 18, 76, 12, 0, 1, 118, 115, 2, 101, 12, 0, 8, 2, 97, 0, 8, 102, 2, 101, 108, 32, 12,
+			0, 8, 102, 2, 111, 114, 100, 110, 0, 8, 110, 2, 100, 0, 100, 8, 2, 114, 101, 116, 12, 0, 117, 100, 101, 110, 8, 102, 2, 32,
+			12, 3, 39, 34, 6, 40, 86, 20, 50, 0, 101, 110, 115, 105, 115, 8, 102, 2, 107, 3, 39, 34, 6, 111, 50, 89, 37, 89, 0, 4,
+			101, 8, 102, 2, 108, 32, 12, 3, 39, 34, 6, 111, 55, 0, 101, 8, 102, 2, 108, 108, 101, 12, 0, 101, 108, 1, 109, 0, 109, 3,
+			39, 34, 65, 0, 4, 100, 1, 107, 2, 114, 101, 110, 103, 3, 39, 34, 72, 0, 100, 1, 109, 2, 101, 114, 0, 100, 1, 116, 2, 101,
+			110, 101, 110, 12, 0, 100, 8, 116, 2, 12, 12, 0, 100, 114, 117, 112, 3, 39, 34, 72, 34, 115, 71, 0, 100, 101, 1, 98, 2, 110,
+			100, 101, 3, 39, 34, 109, 0, 4, 2, 97, 108, 3, 39, 51, 0, 100, 1, 109, 2, 101, 116, 0, 100, 2, 12, 12, 0, 100, 2, 101,
+			110, 101, 12, 0, 4, 100, 1, 106, 2, 97, 110, 3, 39, 51, 72, 0, 100, 1, 106, 2, 105, 0, 100, 101, 97, 117, 120, 1, 98, 3,
+			39, 51, 72, 6, 39, 0, 100, 105, 1, 110, 2, 115, 107, 3, 39, 51, 72, 37, 0, 100, 1, 106, 2, 101, 110, 3, 39, 114, 0, 4,
+			1, 98, 2, 116, 3, 113, 0, 1, 115, 2, 116, 17, 65, 0, 1, 118, 2, 116, 0, 4, 1, 107, 2, 116, 3, 113, 12, 0, 1, 107,
+			2, 116, 17, 65, 0, 1, 116, 115, 2, 109, 0, 100, 1, 104, 2, 101, 3, 113, 12, 72, 0, 2, 100, 101, 110, 3, 113, 34, 0, 4,
+			1, 102, 3, 114, 0, 1, 102, 2, 101, 110, 0, 1, 102, 2, 116, 101, 114, 12, 0, 1, 109, 117, 104, 0, 1, 116, 107, 101, 114, 0,
+			1, 116, 107, 101, 115, 0, 1, 118, 108, 97, 0, 8, 2, 105, 0, 8, 102, 2, 102, 97, 110, 103, 12, 0, 8, 102, 2, 102, 101, 108,
+			116, 12, 0, 8, 102, 2, 102, 105, 108, 109, 12, 0, 8, 102, 2, 102, 106, 111, 114, 12, 0, 8, 102, 2, 102, 111, 114, 100, 12, 0,
+			8, 102, 2, 102, 111, 114, 102, 111, 100, 12, 0, 8, 102, 2, 102, 111, 114, 115, 116, 195, 166, 114, 107, 12, 0, 8, 102, 2, 102, 111,
+			114, 115, 195, 184, 103, 12, 0, 8, 102, 2, 102, 111, 114, 121, 115, 101, 114, 117, 109, 12, 0, 8, 102, 2, 102, 195, 184, 100, 100, 101,
+			114, 12, 0, 8, 102, 2, 103, 97, 115, 116, 12, 0, 8, 102, 2, 107, 97, 110, 116, 0, 8, 102, 2, 107, 195, 184, 114, 115, 101, 108,
+			115, 114, 101, 116, 0, 1, 102, 2, 21, 3, 114, 4, 0, 4, 1, 10, 2, 105, 28, 33, 12, 3, 114, 6, 0, 8, 102, 2, 101, 108,
+			115, 107, 12, 0, 8, 102, 2, 108, 121, 100, 101, 110, 100, 101, 12, 0, 101, 8, 102, 2, 110, 12, 3, 114, 6, 36, 12, 0, 101, 118,
+			8, 102, 2, 105, 103, 101, 3, 114, 6, 36, 12, 84, 0, 4, 101, 110, 107, 108, 8, 102, 2, 101, 12, 3, 114, 6, 36, 50, 49, 55,
+			0, 101, 110, 107, 108, 8, 102, 2, 105, 110, 103, 0, 4, 1, 109, 2, 102, 3, 114, 12, 0, 1, 109, 2, 109, 0, 1, 109, 2, 115,
+			101, 0, 1, 112, 115, 2, 116, 0, 1, 118, 2, 101, 12, 0, 8, 102, 2, 114, 105, 110, 103, 32, 0, 8, 102, 2, 114, 105, 110, 103,
+			101, 110, 0, 1, 102, 2, 116, 3, 114, 12, 19, 0, 108, 101, 97, 110, 115, 8, 3, 114, 12, 55, 36, 50, 89, 0, 4, 100, 1, 102,
+			2, 12, 3, 114, 12, 72, 0, 100, 1, 103, 2, 111, 110, 0, 100, 8, 108, 2, 32, 0, 116, 104, 1, 110, 3, 114, 12, 87, 0, 103,
+			101, 1, 109, 3, 114, 12, 108, 0, 4, 1, 110, 2, 109, 3, 114, 34, 0, 1, 110, 2, 115, 107, 0, 2, 100, 114, 101, 12, 0, 2,
+			105, 101, 110, 116, 0, 2, 116, 111, 0, 8, 102, 2, 103, 195, 165, 114, 115, 12, 0, 8, 102, 2, 114, 101, 116, 110, 105, 12, 0, 109,
+			111, 110, 8, 104, 3, 114, 34, 65, 6, 39, 50, 0, 4, 100, 1, 107, 2, 101, 108, 3, 114, 34, 72, 0, 100, 1, 118, 2, 101, 0,
+			100, 1, 118, 104, 2, 97, 110, 0, 100, 2, 101, 110, 12, 0, 100, 2, 101, 110, 101, 110, 12, 0, 100, 2, 105, 110, 12, 0, 100, 2,
+			110, 101, 12, 0, 100, 2, 114, 101, 116, 105, 108, 12, 0, 100, 8, 108, 2, 101, 114, 32, 0, 4, 100, 1, 98, 2, 101, 108, 3, 114,
+			34, 72, 6, 0, 100, 2, 114, 117, 107, 0, 100, 111, 110, 110, 97, 110, 115, 3, 114, 34, 72, 39, 50, 6, 110, 50, 89, 0, 101, 1,
+			102, 110, 101, 103, 2, 110, 12, 3, 114, 36, 12, 0, 108, 121, 115, 116, 8, 102, 3, 114, 55, 6, 118, 89, 72, 0, 4, 100, 1, 102,
+			2, 195, 166, 3, 114, 72, 6, 0, 100, 1, 102, 2, 195, 184, 0, 101, 1, 102, 2, 115, 17, 67, 3, 115, 12, 108, 0, 7, 6, 112,
+			104, 0, 2, 105, 108, 3, 83, 0, 111, 101, 3, 83, 37, 0, 105, 108, 108, 105, 112, 112, 101, 3, 83, 37, 55, 6, 37, 12, 48, 0,
+			105, 108, 97, 100, 101, 108, 112, 104, 105, 97, 3, 83, 37, 55, 110, 72, 6, 109, 55, 83, 37, 110, 0, 7, 6, 116, 105, 0, 4, 1,
+			105, 99, 105, 100, 110, 101, 112, 112, 97, 2, 115, 3, 8, 47, 37, 0, 1, 105, 103, 110, 105, 110, 101, 109, 2, 115, 0, 1, 105, 103,
+			110, 121, 114, 97, 108, 2, 115, 0, 1, 105, 107, 97, 114, 2, 115, 0, 1, 105, 107, 110, 111, 114, 98, 2, 115, 0, 1, 105, 108, 117,
+			108, 108, 101, 99, 2, 115, 0, 1, 105, 114, 101, 116, 102, 105, 100, 2, 115, 0, 1, 105, 114, 116, 115, 97, 103, 2, 115, 0, 1, 105,
+			116, 97, 112, 101, 104, 2, 115, 0, 1, 110, 97, 114, 101, 2, 115, 0, 115, 1, 115, 97, 112, 3, 47, 6, 37, 89, 0, 108, 1, 114,
+			2, 32, 3, 47, 36, 55, 0, 4, 108, 2, 98, 97, 103, 101, 3, 47, 36, 55, 6, 0, 108, 2, 102, 111, 114, 110, 0, 108, 2, 102,
+			114, 101, 100, 115, 0, 108, 2, 102, 195, 166, 108, 100, 105, 103, 0, 108, 2, 102, 195, 166, 108, 108, 101, 115, 0, 108, 2, 103, 111, 100,
+			101, 104, 97, 118, 101, 110, 100, 101, 0, 108, 2, 103, 111, 100, 101, 115, 101, 0, 108, 2, 103, 111, 100, 101, 115, 101, 100, 100, 101, 108,
+			0, 108, 2, 103, 111, 100, 101, 115, 107, 114, 105, 118, 101, 0, 108, 2, 103, 114, 117, 110, 100, 108, 105, 103, 103, 101, 110, 100, 101, 0,
+			108, 2, 103, 195, 166, 110, 103, 101, 108, 105, 103, 0, 108, 2, 105, 110, 116, 101, 116, 103, 195, 184, 114, 101, 0, 108, 2, 105, 110, 116,
+			101, 116, 103, 195, 184, 114, 101, 108, 115, 101, 0, 108, 2, 107, 101, 110, 100, 101, 103, 105, 118, 101, 0, 108, 2, 107, 101, 110, 100, 101,
+			103, 105, 118, 101, 108, 115, 101, 0, 108, 2, 108, 97, 100, 101, 108, 105, 103, 0, 108, 2, 108, 105, 103, 101, 0, 108, 2, 108, 105, 103,
+			101, 109, 101, 100, 0, 108, 2, 108, 121, 107, 107, 101, 0, 108, 2, 111, 118, 101, 114, 115, 0, 108, 2, 112, 97, 115, 0, 108, 2, 114,
+			101, 116, 116, 101, 108, 195, 166, 103, 103, 101, 0, 108, 2, 114, 101, 116, 116, 101, 118, 105, 115, 101, 0, 108, 2, 114, 101, 116, 116, 101,
+			118, 105, 115, 110, 105, 110, 103, 0, 108, 2, 115, 97, 109, 109, 101, 110, 0, 108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 109, 101, 110,
+			0, 108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 109, 101, 116, 0, 108, 2, 115, 107, 97, 100, 101, 107, 111, 109, 115, 116, 0, 108, 2,
+			115, 116, 101, 100, 101, 107, 111, 109, 115, 116, 0, 108, 2, 115, 116, 101, 100, 101, 108, 105, 103, 0, 108, 2, 115, 116, 101, 100, 101, 118,
+			195, 166, 114, 0, 108, 2, 115, 116, 101, 100, 101, 118, 195, 166, 114, 101, 108, 115, 101, 0, 108, 2, 115, 116, 101, 100, 101, 118, 195, 166,
+			114, 101, 110, 100, 101, 0, 108, 2, 115, 116, 114, 195, 166, 107, 107, 101, 108, 105, 103, 0, 108, 2, 115, 121, 110, 101, 107, 111, 109, 115,
+			116, 0, 108, 2, 115, 121, 110, 101, 108, 97, 100, 101, 110, 100, 101, 0, 1, 115, 97, 98, 2, 111, 110, 3, 47, 37, 0, 4, 1, 10,
+			2, 111, 110, 12, 3, 91, 0, 1, 97, 112, 2, 101, 110, 116, 0, 1, 107, 97, 2, 101, 0, 1, 107, 101, 108, 2, 101, 0, 1, 111,
+			118, 107, 2, 101, 110, 0, 2, 195, 184, 115, 12, 0, 7, 6, 195, 165, 0, 4, 1, 112, 110, 101, 118, 111, 2, 32, 3, 6, 113, 0,
+			1, 112, 165, 195, 103, 2, 109, 111, 100, 0, 1, 116, 115, 100, 111, 109, 105, 117, 2, 101, 108, 105, 103, 0, 114, 1, 110, 114, 111, 118,
+			104, 3, 6, 113, 19, 0, 98, 101, 110, 116, 108, 105, 103, 1, 104, 114, 111, 102, 3, 6, 113, 71, 109, 50, 47, 55, 37, 0, 1, 115,
+			97, 106, 2, 32, 3, 6, 114, 0, 4, 3, 113, 0, 1, 103, 2, 116, 117, 114, 0, 1, 108, 115, 103, 110, 105, 100, 110, 166, 195, 116,
+			2, 115, 0, 1, 108, 115, 110, 97, 0, 1, 109, 2, 100, 101, 12, 12, 0, 1, 109, 2, 108, 105, 110, 103, 12, 12, 0, 1, 109, 115,
+			103, 97, 108, 115, 2, 108, 0, 1, 109, 115, 103, 114, 184, 195, 112, 115, 2, 108, 0, 1, 109, 115, 114, 101, 100, 111, 109, 2, 108, 0,
+			1, 112, 2, 115, 107, 101, 0, 1, 114, 2, 100, 12, 0, 1, 114, 103, 2, 100, 0, 1, 114, 103, 2, 110, 101, 0, 1, 115, 0, 114,
+			100, 1, 103, 3, 113, 12, 0, 114, 100, 101, 1, 103, 3, 113, 12, 20, 108, 0, 100, 1, 98, 2, 12, 3, 113, 86, 0, 100, 110, 101,
+			1, 114, 116, 2, 116, 3, 113, 86, 50, 109, 0, 114, 100, 101, 110, 3, 113, 114, 50, 0, 4, 1, 100, 2, 100, 121, 114, 3, 114, 0,
+			1, 106, 116, 115, 0, 1, 108, 2, 114, 0, 1, 108, 98, 2, 21, 0, 1, 108, 115, 2, 98, 114, 111, 107, 0, 1, 108, 115, 2, 115,
+			0, 1, 109, 2, 108, 108, 195, 184, 115, 12, 0, 1, 109, 2, 108, 116, 105, 100, 12, 0, 1, 109, 2, 116, 0, 1, 109, 115, 2, 17,
+			67, 21, 12, 0, 1, 112, 2, 115, 0, 1, 112, 115, 2, 100, 111, 109, 0, 1, 112, 115, 2, 107, 111, 110, 101, 0, 1, 112, 115, 2,
+			107, 118, 105, 110, 100, 101, 0, 1, 112, 115, 2, 109, 97, 110, 100, 0, 1, 112, 115, 2, 109, 195, 166, 110, 100, 0, 1, 114, 2, 98,
+			116, 0, 1, 114, 2, 100, 100, 12, 0, 1, 114, 2, 100, 102, 12, 0, 1, 114, 2, 100, 103, 12, 0, 1, 114, 2, 100, 104, 12, 0,
+			1, 114, 2, 100, 108, 195, 184, 115, 0, 1, 114, 2, 100, 109, 97, 110, 100, 0, 1, 114, 2, 100, 110, 12, 0, 1, 114, 2, 100, 115,
+			108, 0, 1, 114, 2, 100, 115, 110, 97, 114, 0, 1, 114, 2, 100, 115, 112, 0, 1, 114, 2, 100, 118, 105, 108, 100, 0, 1, 114, 2,
+			108, 97, 109, 0, 1, 114, 2, 109, 97, 116, 101, 114, 105, 97, 108, 0, 1, 114, 2, 115, 101, 106, 108, 0, 1, 114, 2, 116, 0, 1,
+			114, 18, 73, 2, 116, 0, 1, 114, 103, 2, 21, 0, 1, 114, 107, 115, 2, 112, 0, 1, 114, 116, 2, 100, 116, 0, 1, 114, 116, 115,
+			2, 100, 195, 184, 100, 0, 1, 114, 116, 115, 2, 102, 111, 114, 107, 111, 114, 116, 0, 1, 114, 116, 115, 2, 104, 97, 116, 0, 1, 114,
+			116, 115, 2, 109, 97, 110, 100, 0, 1, 114, 116, 115, 2, 109, 195, 166, 110, 100, 0, 1, 115, 2, 32, 102, 195, 165, 0, 1, 115, 2,
+			32, 115, 110, 97, 114, 116, 0, 1, 115, 2, 100, 0, 1, 115, 2, 107, 97, 108, 100, 0, 1, 115, 2, 109, 195, 166, 110, 100, 0, 1,
+			115, 2, 116, 0, 1, 115, 2, 118, 101, 108, 0, 1, 115, 116, 108, 97, 0, 1, 116, 2, 108, 109, 111, 0, 1, 118, 2, 100, 116, 0,
+			2, 108, 116, 105, 0, 2, 110, 100, 0, 2, 116, 0, 8, 112, 0, 8, 115, 32, 114, 97, 118, 2, 32, 0, 114, 3, 114, 12, 0, 114,
+			1, 104, 3, 114, 12, 19, 0, 114, 100, 101, 1, 104, 3, 114, 12, 20, 108, 0, 114, 100, 101, 115, 116, 1, 104, 3, 114, 12, 34, 13,
+			89, 47, 0, 114, 101, 3, 114, 12, 108, 0, 114, 101, 114, 3, 114, 12, 114, 20, 0, 100, 2, 115, 3, 114, 86, 0, 115, 101, 8, 112,
+			3, 114, 89, 36, 0, 7, 6, 195, 166, 0, 4, 1, 100, 101, 108, 166, 195, 107, 2, 103, 103, 101, 3, 6, 109, 0, 1, 102, 111, 114,
+			116, 0, 1, 116, 115, 101, 106, 97, 109, 2, 116, 0, 1, 118, 101, 103, 2, 114, 0, 1, 118, 115, 101, 98, 2, 114, 32, 0, 8, 100,
+			97, 102, 2, 115, 101, 0, 8, 108, 97, 112, 0, 8, 108, 101, 99, 114, 111, 112, 2, 110, 0, 8, 108, 105, 98, 117, 106, 0, 8, 108,
+			105, 108, 97, 103, 2, 101, 114, 0, 8, 108, 121, 112, 111, 114, 112, 2, 101, 114, 0, 8, 109, 97, 114, 97, 2, 101, 114, 0, 8, 109,
+			103, 121, 112, 0, 8, 109, 111, 100, 2, 110, 101, 0, 8, 110, 97, 97, 110, 97, 107, 2, 101, 114, 0, 8, 110, 97, 97, 110, 97, 107,
+			2, 101, 114, 0, 8, 110, 101, 104, 116, 97, 2, 101, 114, 0, 8, 112, 111, 114, 117, 101, 2, 101, 114, 0, 8, 114, 97, 122, 97, 110,
+			2, 101, 114, 0, 8, 114, 98, 101, 104, 2, 101, 114, 0, 8, 114, 103, 105, 109, 2, 110, 101, 0, 8, 114, 105, 115, 97, 110, 2, 101,
+			114, 0, 8, 114, 111, 103, 97, 104, 116, 121, 112, 2, 101, 114, 0, 8, 114, 111, 109, 2, 110, 101, 12, 0, 8, 114, 117, 107, 105, 112,
+			101, 2, 101, 114, 0, 8, 115, 105, 114, 97, 102, 2, 101, 114, 0, 8, 116, 110, 97, 114, 97, 107, 2, 110, 101, 0, 8, 116, 110, 111,
+			102, 2, 110, 101, 0, 4, 1, 102, 2, 114, 101, 3, 6, 109, 12, 0, 1, 104, 102, 97, 2, 110, 103, 105, 103, 0, 114, 114, 101, 1,
+			118, 115, 101, 100, 3, 6, 110, 34, 108, 0, 110, 1, 114, 102, 101, 114, 3, 6, 110, 68, 0, 8, 114, 116, 114, 111, 112, 2, 116, 3,
+			6, 111, 0, 8, 116, 115, 109, 111, 2, 110, 100, 3, 7, 109, 0, 114, 1, 10, 2, 28, 33, 3, 7, 109, 34, 0, 4, 3, 109, 0,
+			1, 114, 2, 17, 67, 18, 69, 0, 1, 114, 2, 18, 67, 0, 1, 114, 2, 115, 0, 1, 114, 100, 2, 98, 101, 114, 0, 1, 114, 100,
+			2, 110, 12, 0, 1, 114, 107, 2, 32, 0, 1, 114, 111, 102, 2, 100, 108, 101, 0, 1, 114, 112, 2, 103, 110, 0, 1, 114, 112, 2,
+			107, 0, 1, 114, 112, 2, 115, 116, 97, 0, 1, 114, 112, 2, 115, 116, 101, 114, 101, 0, 1, 114, 116, 0, 1, 114, 116, 2, 110, 12,
+			0, 2, 17, 67, 11, 17, 65, 0, 2, 108, 12, 0, 101, 1, 116, 2, 114, 0, 2, 103, 121, 112, 116, 3, 109, 6, 0, 4, 1, 112,
+			115, 2, 110, 101, 3, 109, 12, 0, 1, 114, 2, 17, 67, 17, 65, 0, 1, 114, 116, 2, 17, 67, 101, 12, 12, 0, 2, 17, 67, 17,
+			65, 0, 114, 103, 101, 1, 17, 67, 3, 109, 12, 34, 40, 13, 0, 114, 103, 101, 114, 1, 118, 3, 109, 12, 34, 40, 114, 0, 103, 101,
+			1, 116, 3, 109, 12, 57, 13, 0, 118, 108, 3, 109, 40, 55, 0, 114, 105, 110, 100, 101, 3, 109, 51, 50, 13, 0, 108, 100, 1, 107,
+			2, 114, 3, 109, 55, 0, 108, 100, 2, 114, 12, 3, 109, 55, 72, 0, 103, 1, 114, 116, 2, 104, 101, 100, 3, 109, 57, 0, 100, 105,
+			1, 114, 112, 2, 107, 97, 110, 116, 3, 109, 72, 37, 0, 103, 1, 114, 184, 195, 114, 3, 109, 81, 0, 100, 105, 1, 114, 112, 3, 109,
+			86, 0, 114, 114, 101, 3, 110, 34, 108, 0, 4, 1, 114, 3, 111, 0, 1, 114, 2, 17, 67, 11, 17, 65, 0, 1, 114, 2, 18, 67,
+			11, 0, 1, 114, 2, 18, 67, 116, 0, 1, 114, 2, 100, 101, 12, 12, 0, 1, 114, 2, 109, 0, 1, 114, 2, 116, 12, 0, 1, 114,
+			18, 73, 2, 17, 67, 0, 1, 114, 103, 2, 115, 0, 1, 114, 112, 2, 115, 116, 0, 1, 114, 112, 115, 2, 107, 107, 0, 1, 114, 114,
+			2, 17, 67, 101, 114, 12, 0, 1, 114, 116, 2, 17, 67, 0, 1, 114, 116, 2, 110, 103, 12, 0, 8, 114, 116, 2, 98, 101, 110, 12,
+			12, 0, 7, 6, 195, 169, 0, 3, 6, 36, 0, 7, 6, 195, 184, 0, 103, 1, 108, 3, 6, 114, 57, 0, 4, 1, 100, 114, 111, 110,
+			2, 115, 116, 3, 6, 118, 0, 1, 100, 121, 115, 2, 115, 116, 0, 1, 103, 108, 101, 118, 2, 114, 101, 110, 104, 101, 100, 0, 8, 102,
+			102, 117, 97, 104, 99, 2, 114, 0, 8, 106, 108, 105, 109, 0, 8, 109, 97, 2, 98, 101, 0, 8, 110, 97, 109, 2, 118, 114, 101, 0,
+			8, 118, 101, 110, 0, 4, 1, 107, 115, 98, 111, 2, 110, 3, 6, 118, 12, 0, 1, 109, 105, 2, 100, 101, 107, 111, 109, 0, 8, 110,
+			2, 100, 21, 0, 114, 101, 1, 105, 2, 102, 97, 108, 100, 101, 110, 100, 101, 3, 6, 118, 12, 114, 0, 4, 1, 103, 114, 117, 98, 2,
+			106, 115, 3, 6, 119, 0, 1, 108, 116, 115, 114, 101, 98, 111, 2, 106, 116, 110, 97, 110, 116, 0, 8, 108, 108, 97, 104, 2, 106, 0,
+			4, 1, 18, 74, 2, 103, 3, 114, 0, 1, 104, 2, 106, 0, 2, 106, 101, 0, 106, 43, 3, 114, 12, 57, 0, 4, 103, 1, 100, 2,
+			110, 3, 114, 57, 0, 103, 1, 103, 2, 108, 0, 103, 1, 112, 115, 2, 32, 0, 103, 1, 112, 115, 2, 101, 110, 0, 4, 3, 118, 0,
+			1, 18, 73, 2, 103, 0, 1, 108, 2, 115, 0, 1, 114, 2, 12, 0, 1, 114, 2, 18, 74, 101, 0, 1, 114, 2, 103, 101, 108, 115,
+			101, 0, 1, 114, 2, 103, 116, 101, 0, 1, 114, 2, 118, 101, 114, 0, 1, 114, 100, 2, 110, 0, 1, 114, 100, 2, 118, 101, 116, 0,
+			1, 114, 100, 101, 98, 2, 118, 0, 1, 114, 101, 98, 2, 118, 101, 0, 1, 114, 111, 102, 2, 103, 0, 1, 114, 112, 2, 118, 0, 1,
+			115, 2, 103, 0, 2, 100, 100, 0, 4, 1, 114, 2, 109, 101, 114, 3, 118, 12, 0, 2, 100, 101, 0, 95, 1, 115, 0, 103, 1, 114,
+			111, 102, 2, 32, 3, 118, 12, 19, 0, 114, 1, 112, 115, 2, 103, 3, 118, 12, 34, 0, 4, 114, 101, 3, 118, 12, 114, 0, 114, 101,
+			95, 0, 4, 114, 1, 112, 115, 2, 103, 115, 3, 118, 34, 0, 114, 103, 101, 114, 1, 112, 115, 2, 32, 0, 114, 101, 2, 106, 115, 101,
+			3, 118, 34, 35, 0, 114, 101, 1, 115, 2, 100, 110, 105, 3, 118, 34, 109, 0, 4, 103, 1, 109, 115, 2, 32, 115, 105, 103, 3, 118,
+			57, 0, 103, 8, 2, 32, 0, 100, 116, 8, 110, 2, 32, 3, 118, 72, 0, 4, 103, 1, 108, 107, 2, 116, 3, 118, 81, 0, 103, 1,
+			110, 2, 116, 101, 114, 110, 0, 103, 103, 1, 108, 103, 0, 100, 1, 107, 3, 118, 86, 0, 4, 1, 17, 67, 2, 106, 12, 3, 119, 0,
+			1, 114, 2, 18, 74, 0, 1, 114, 2, 103, 0, 1, 114, 2, 118, 0, 1, 114, 101, 100, 110, 111, 98, 2, 118, 0, 1, 114, 114, 97,
+			110, 2, 118, 0, 2, 106, 110, 0, 8, 114, 2, 118, 101, 110, 0, 106, 101, 114, 3, 119, 57, 114, 0, 115, 1, 10, 2, 28, 33, 3,
+			6, 118, 12, 89, 0, 114, 1, 10, 2, 28, 33, 3, 7, 118, 34, 0, 7, 6, 39, 0, 101, 114, 2, 32, 14, 128, 128, 131, 3, 2,
+			114, 0, 101, 114, 110, 101, 2, 32, 14, 128, 128, 133, 3, 2, 114, 50, 13, 0, 101, 114, 110, 101, 115, 2, 32, 14, 128, 128, 134, 3,
+			2, 114, 50, 13, 89, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 13, 50, 0, 101, 116, 2, 32, 14, 128, 128, 131, 3, 13, 86, 0,
+			115, 2, 32, 14, 128, 128, 130, 3, 89, 0, 101, 114, 101, 2, 32, 14, 128, 128, 132, 3, 114, 34, 114, 0, 7, 6, 97, 0, 103, 2,
+			110, 111, 115, 3, 2, 35, 81, 0, 4, 117, 2, 32, 112, 97, 105, 114, 3, 2, 39, 0, 117, 2, 32, 114, 101, 118, 111, 105, 114, 0,
+			1, 108, 2, 107, 114, 3, 2, 110, 0, 2, 109, 112, 3, 2, 112, 0, 102, 8, 114, 101, 100, 2, 32, 3, 4, 110, 0, 4, 1, 100,
+			114, 101, 116, 115, 109, 97, 2, 109, 3, 6, 35, 0, 1, 102, 108, 105, 116, 2, 110, 103, 101, 0, 1, 103, 110, 101, 2, 110, 103, 0,
+			1, 103, 110, 101, 2, 110, 103, 0, 1, 114, 107, 115, 110, 101, 112, 112, 97, 114, 2, 108, 100, 101, 0, 1, 116, 115, 101, 103, 2, 112,
+			111, 0, 8, 108, 97, 103, 2, 107, 115, 101, 0, 8, 108, 111, 112, 2, 107, 0, 8, 112, 109, 111, 107, 2, 107, 116, 0, 8, 114, 97,
+			116, 97, 107, 2, 107, 116, 0, 8, 114, 116, 110, 111, 107, 2, 107, 116, 0, 8, 114, 116, 115, 98, 97, 2, 107, 116, 0, 8, 114, 116,
+			115, 107, 101, 2, 107, 116, 0, 8, 115, 107, 101, 2, 107, 116, 0, 8, 115, 111, 107, 2, 107, 0, 8, 115, 115, 97, 109, 2, 107, 114,
+			101, 0, 8, 116, 101, 2, 112, 101, 0, 8, 116, 110, 105, 2, 107, 116, 0, 8, 116, 110, 111, 107, 2, 107, 116, 0, 8, 116, 112, 97,
+			107, 2, 106, 110, 0, 109, 1, 114, 103, 10, 2, 109, 28, 33, 12, 0, 1, 108, 115, 105, 2, 109, 3, 6, 35, 12, 0, 117, 8, 115,
+			115, 105, 98, 3, 6, 35, 12, 58, 0, 117, 114, 101, 114, 8, 115, 111, 110, 105, 100, 3, 6, 35, 40, 34, 114, 0, 117, 114, 8, 115,
+			111, 110, 105, 100, 3, 6, 35, 40, 114, 0, 110, 103, 101, 108, 111, 1, 108, 101, 104, 99, 105, 109, 3, 6, 35, 50, 75, 108, 55, 39,
+			0, 105, 1, 116, 101, 100, 2, 108, 3, 6, 35, 57, 0, 117, 1, 110, 111, 114, 116, 115, 97, 2, 116, 3, 6, 35, 58, 0, 109, 1,
+			114, 103, 10, 2, 28, 33, 12, 3, 6, 35, 65, 0, 103, 116, 105, 103, 1, 10, 2, 28, 33, 12, 3, 6, 35, 81, 47, 37, 0, 117,
+			120, 1, 103, 3, 6, 39, 0, 105, 115, 101, 3, 6, 109, 12, 89, 13, 0, 105, 1, 116, 110, 111, 99, 2, 110, 3, 6, 109, 57, 0,
+			105, 99, 104, 101, 1, 114, 102, 3, 6, 109, 91, 0, 4, 1, 98, 97, 108, 97, 2, 109, 3, 6, 110, 0, 1, 98, 101, 108, 97, 116,
+			2, 110, 0, 1, 98, 101, 115, 2, 115, 116, 105, 97, 110, 0, 1, 98, 109, 117, 108, 2, 103, 111, 0, 1, 99, 97, 100, 2, 112, 111,
+			0, 1, 99, 105, 112, 2, 115, 115, 111, 0, 1, 100, 97, 107, 2, 118, 101, 114, 0, 1, 100, 101, 112, 112, 117, 115, 2, 115, 0, 1,
+			100, 114, 101, 100, 110, 117, 2, 110, 105, 103, 0, 1, 100, 114, 111, 118, 104, 2, 110, 0, 1, 100, 117, 97, 108, 2, 110, 117, 109, 0,
+			1, 102, 110, 105, 2, 109, 0, 1, 103, 114, 111, 2, 115, 0, 1, 104, 97, 98, 2, 109, 97, 0, 1, 106, 121, 112, 2, 109, 97, 0,
+			1, 107, 115, 108, 105, 116, 2, 100, 101, 0, 1, 108, 97, 2, 115, 107, 0, 1, 108, 97, 112, 2, 118, 101, 114, 12, 0, 1, 108, 105,
+			112, 2, 116, 117, 115, 0, 1, 108, 111, 122, 0, 1, 108, 115, 111, 103, 117, 106, 2, 118, 0, 1, 108, 116, 97, 2, 110, 116, 105, 115,
+			0, 1, 109, 97, 108, 97, 115, 2, 110, 100, 101, 114, 0, 1, 109, 101, 116, 97, 117, 103, 2, 108, 0, 1, 109, 105, 114, 103, 2, 115,
+			115, 101, 0, 1, 109, 109, 111, 107, 2, 110, 100, 0, 1, 110, 97, 98, 2, 110, 0, 1, 110, 105, 100, 110, 97, 107, 115, 2, 118, 0,
+			1, 110, 105, 104, 2, 110, 0, 1, 112, 111, 116, 2, 115, 0, 1, 114, 101, 118, 111, 2, 108, 116, 0, 1, 115, 101, 109, 114, 97, 112,
+			2, 110, 0, 1, 115, 108, 97, 98, 2, 109, 105, 0, 1, 116, 111, 103, 111, 98, 0, 1, 116, 115, 97, 107, 2, 110, 106, 101, 0, 1,
+			116, 115, 97, 116, 101, 109, 2, 115, 101, 0, 1, 116, 115, 107, 101, 2, 115, 0, 1, 116, 115, 110, 97, 114, 111, 102, 2, 108, 116, 0,
+			1, 116, 115, 112, 111, 2, 110, 100, 101, 108, 115, 101, 0, 1, 116, 115, 114, 101, 2, 116, 110, 105, 110, 103, 0, 1, 116, 117, 112, 115,
+			105, 100, 2, 116, 115, 0, 1, 118, 2, 110, 108, 105, 103, 0, 1, 118, 97, 104, 2, 110, 97, 0, 1, 118, 97, 104, 2, 110, 110, 97,
+			0, 1, 122, 121, 98, 2, 110, 115, 32, 0, 2, 115, 109, 101, 0, 8, 100, 100, 110, 101, 2, 32, 0, 8, 100, 101, 109, 2, 108, 106,
+			101, 0, 8, 101, 116, 2, 116, 101, 114, 0, 8, 103, 97, 112, 111, 114, 112, 2, 110, 100, 0, 8, 105, 100, 110, 105, 2, 110, 97, 0,
+			8, 105, 115, 117, 116, 110, 101, 2, 115, 0, 8, 107, 97, 107, 2, 111, 0, 8, 107, 97, 109, 2, 98, 0, 8, 107, 105, 104, 99, 2,
+			110, 101, 0, 8, 107, 105, 116, 97, 118, 2, 110, 0, 8, 107, 108, 97, 2, 108, 105, 0, 8, 107, 110, 111, 107, 2, 118, 0, 8, 108,
+			107, 101, 114, 2, 109, 101, 0, 8, 108, 107, 110, 101, 2, 118, 101, 12, 0, 8, 108, 115, 105, 116, 97, 114, 98, 2, 118, 0, 8, 109,
+			105, 2, 109, 0, 8, 109, 105, 114, 112, 2, 108, 0, 8, 110, 97, 99, 2, 100, 105, 101, 114, 0, 8, 110, 105, 109, 111, 100, 2, 110,
+			0, 8, 110, 121, 100, 2, 109, 111, 0, 8, 111, 2, 115, 101, 0, 8, 112, 97, 2, 99, 104, 0, 8, 112, 109, 105, 104, 99, 2, 110,
+			0, 8, 115, 97, 102, 2, 110, 0, 8, 115, 107, 101, 2, 109, 12, 0, 8, 116, 97, 98, 2, 108, 106, 101, 0, 8, 116, 101, 100, 2,
+			108, 106, 101, 0, 8, 116, 107, 111, 2, 118, 0, 8, 118, 97, 114, 97, 107, 2, 110, 101, 0, 100, 1, 107, 115, 117, 98, 2, 115, 0,
+			100, 1, 108, 97, 112, 2, 115, 0, 100, 8, 108, 106, 101, 115, 2, 115, 0, 103, 1, 115, 101, 107, 107, 97, 110, 115, 2, 108, 105, 103,
+			0, 4, 1, 103, 101, 114, 111, 2, 110, 111, 3, 6, 110, 12, 0, 1, 108, 105, 109, 2, 110, 111, 0, 1, 116, 114, 97, 107, 2, 103,
+			111, 0, 100, 101, 1, 10, 2, 28, 33, 3, 6, 110, 12, 86, 13, 0, 100, 101, 1, 10, 2, 114, 28, 33, 3, 6, 110, 12, 86, 114,
+			0, 116, 1, 10, 2, 28, 33, 3, 6, 110, 47, 0, 103, 110, 101, 1, 112, 109, 97, 104, 99, 3, 6, 110, 50, 57, 13, 0, 110, 100,
+			101, 1, 98, 97, 114, 116, 110, 111, 107, 3, 6, 110, 50, 72, 108, 0, 110, 115, 1, 10, 2, 28, 33, 3, 6, 110, 50, 89, 0, 4,
+			98, 1, 10, 2, 101, 108, 28, 33, 3, 6, 110, 71, 0, 98, 1, 10, 2, 108, 101, 28, 33, 0, 4, 100, 1, 110, 114, 111, 116, 2,
+			111, 3, 6, 110, 72, 0, 100, 1, 118, 101, 110, 2, 97, 0, 118, 101, 114, 97, 108, 1, 110, 97, 99, 3, 6, 110, 84, 108, 34, 108,
+			55, 0, 118, 101, 114, 8, 108, 107, 110, 101, 3, 6, 110, 84, 114, 0, 4, 1, 98, 110, 101, 98, 165, 195, 2, 114, 105, 110, 103, 3,
+			6, 112, 0, 1, 102, 97, 115, 2, 114, 105, 0, 1, 102, 114, 101, 2, 114, 0, 1, 112, 115, 101, 98, 2, 114, 105, 110, 103, 0, 1,
+			114, 98, 105, 118, 2, 116, 111, 0, 1, 114, 101, 109, 111, 111, 98, 2, 110, 103, 0, 1, 114, 105, 103, 2, 102, 0, 1, 114, 105, 109,
+			2, 107, 0, 1, 114, 108, 165, 195, 107, 2, 98, 105, 0, 1, 114, 116, 115, 97, 112, 2, 109, 105, 0, 1, 118, 97, 104, 2, 114, 116,
+			105, 0, 1, 118, 97, 107, 115, 2, 110, 107, 0, 1, 118, 114, 111, 102, 2, 114, 105, 110, 103, 0, 8, 98, 101, 108, 108, 101, 104, 2,
+			114, 100, 0, 8, 98, 109, 111, 108, 2, 114, 100, 0, 8, 98, 111, 103, 110, 111, 108, 2, 114, 100, 0, 8, 103, 108, 117, 98, 2, 114,
+			0, 8, 104, 97, 115, 2, 114, 97, 0, 8, 105, 108, 108, 105, 109, 2, 114, 0, 8, 105, 108, 108, 105, 114, 116, 2, 114, 0, 8, 108,
+			97, 2, 114, 109, 0, 8, 108, 97, 109, 2, 114, 105, 97, 0, 8, 108, 117, 111, 102, 2, 114, 100, 0, 8, 108, 117, 111, 112, 2, 114,
+			100, 0, 8, 110, 111, 109, 2, 114, 107, 0, 8, 111, 105, 100, 97, 114, 2, 107, 116, 105, 0, 8, 114, 97, 2, 98, 101, 114, 0, 8,
+			114, 97, 98, 2, 107, 0, 8, 114, 100, 97, 109, 2, 115, 0, 8, 114, 114, 117, 104, 0, 8, 115, 97, 104, 2, 114, 100, 0, 8, 115,
+			101, 114, 112, 109, 105, 2, 114, 105, 111, 0, 8, 115, 110, 97, 109, 2, 114, 100, 0, 8, 116, 115, 97, 98, 2, 114, 100, 0, 110, 1,
+			114, 10, 2, 110, 101, 28, 34, 12, 0, 8, 111, 108, 107, 2, 107, 12, 3, 6, 112, 12, 0, 100, 101, 1, 114, 10, 2, 28, 33, 3,
+			6, 112, 12, 86, 13, 0, 100, 101, 1, 114, 10, 2, 114, 28, 33, 3, 6, 112, 12, 86, 114, 0, 116, 1, 114, 10, 2, 28, 33, 3,
+			6, 112, 47, 0, 110, 1, 114, 10, 2, 28, 34, 12, 3, 6, 112, 50, 0, 110, 116, 1, 114, 10, 2, 28, 33, 3, 6, 112, 50, 47,
+			0, 110, 115, 1, 114, 10, 2, 28, 33, 3, 6, 112, 50, 89, 0, 4, 108, 1, 114, 2, 28, 33, 12, 12, 3, 6, 112, 55, 0, 108,
+			1, 114, 10, 2, 101, 32, 28, 33, 12, 0, 118, 1, 104, 110, 101, 98, 184, 195, 107, 2, 110, 3, 6, 112, 58, 0, 110, 116, 1, 114,
+			117, 97, 116, 115, 101, 114, 3, 6, 112, 68, 0, 4, 110, 99, 101, 1, 10, 2, 28, 33, 3, 6, 112, 68, 89, 13, 0, 110, 99, 104,
+			101, 1, 10, 2, 28, 33, 0, 110, 99, 101, 1, 10, 2, 114, 28, 33, 3, 6, 112, 68, 89, 114, 0, 98, 1, 114, 10, 2, 101, 108,
+			28, 33, 3, 6, 112, 71, 0, 114, 98, 101, 114, 8, 98, 97, 114, 3, 6, 112, 71, 114, 0, 100, 111, 1, 114, 111, 108, 111, 99, 3,
+			6, 112, 72, 39, 0, 4, 8, 105, 107, 121, 115, 112, 2, 116, 3, 7, 110, 0, 116, 1, 10, 2, 116, 28, 33, 0, 110, 1, 10, 2,
+			28, 34, 12, 3, 7, 110, 50, 0, 110, 116, 1, 10, 2, 28, 33, 3, 7, 110, 50, 47, 0, 4, 108, 1, 10, 2, 28, 33, 12, 3,
+			7, 110, 55, 0, 108, 1, 10, 2, 101, 32, 28, 33, 12, 0, 1, 108, 114, 111, 102, 2, 103, 116, 32, 3, 7, 112, 0, 114, 1, 10,
+			2, 28, 33, 3, 7, 112, 34, 0, 110, 99, 101, 1, 121, 111, 118, 2, 28, 33, 3, 7, 112, 68, 89, 0, 102, 1, 114, 111, 118, 104,
+			3, 8, 4, 110, 0, 4, 8, 110, 97, 98, 101, 107, 105, 3, 8, 110, 0, 8, 110, 97, 100, 110, 97, 98, 0, 8, 110, 97, 103, 114,
+			111, 109, 97, 116, 97, 102, 0, 8, 110, 97, 107, 114, 97, 0, 8, 110, 97, 117, 104, 105, 114, 97, 109, 0, 8, 110, 97, 118, 114, 105,
+			110, 0, 8, 110, 97, 119, 115, 116, 111, 17, 66, 0, 8, 110, 97, 121, 117, 103, 0, 8, 110, 101, 114, 97, 0, 8, 110, 101, 122, 105,
+			97, 109, 0, 8, 110, 105, 103, 110, 97, 0, 8, 110, 105, 108, 117, 107, 115, 97, 109, 0, 8, 110, 105, 110, 105, 109, 101, 102, 0, 8,
+			110, 105, 114, 97, 107, 111, 0, 8, 110, 105, 114, 97, 109, 0, 8, 110, 105, 114, 97, 115, 116, 0, 8, 110, 105, 114, 97, 122, 0, 8,
+			110, 105, 114, 101, 108, 108, 97, 98, 0, 8, 110, 105, 115, 116, 101, 114, 0, 8, 110, 105, 116, 110, 101, 103, 114, 97, 0, 8, 110, 105,
+			116, 114, 101, 99, 110, 111, 107, 0, 8, 110, 105, 116, 115, 166, 195, 108, 97, 112, 0, 8, 110, 105, 118, 111, 103, 101, 99, 114, 101, 104,
+			0, 8, 110, 110, 97, 105, 115, 111, 104, 0, 8, 110, 110, 111, 100, 97, 109, 0, 8, 110, 110, 111, 100, 97, 109, 105, 114, 112, 0, 8,
+			110, 111, 109, 111, 112, 120, 111, 99, 0, 8, 110, 111, 114, 111, 107, 0, 108, 1, 110, 97, 2, 102, 97, 98, 101, 116, 3, 8, 110, 55,
+			0, 1, 102, 101, 98, 2, 114, 105, 110, 103, 3, 16, 112, 0, 118, 101, 8, 100, 3, 21, 0, 4, 1, 104, 2, 99, 105, 101, 110, 100,
+			97, 3, 21, 101, 115, 0, 108, 101, 106, 97, 110, 100, 114, 111, 0, 4, 1, 17, 67, 2, 18, 71, 11, 3, 35, 0, 1, 17, 67, 2,
+			18, 75, 0, 1, 17, 67, 2, 18, 75, 18, 69, 12, 12, 0, 1, 17, 67, 2, 18, 75, 101, 0, 1, 17, 67, 2, 99, 107, 0, 1,
+			17, 67, 2, 109, 12, 0, 1, 17, 67, 2, 110, 18, 75, 18, 69, 12, 12, 0, 1, 17, 67, 2, 114, 18, 76, 0, 1, 17, 67, 2,
+			114, 114, 0, 1, 17, 67, 2, 120, 12, 0, 1, 18, 73, 2, 109, 0, 1, 18, 74, 2, 106, 0, 1, 18, 75, 2, 112, 12, 0, 1,
+			98, 2, 106, 101, 114, 0, 1, 100, 2, 102, 110, 0, 1, 100, 2, 103, 21, 12, 0, 1, 100, 2, 103, 115, 21, 0, 1, 102, 2, 118,
+			111, 12, 0, 1, 104, 2, 18, 66, 0, 1, 104, 2, 106, 0, 1, 104, 2, 106, 12, 12, 0, 1, 104, 2, 112, 0, 1, 104, 99, 2,
+			110, 0, 1, 105, 108, 108, 105, 119, 2, 109, 0, 1, 106, 2, 112, 112, 0, 1, 106, 2, 112, 115, 0, 1, 107, 2, 106, 0, 1, 107,
+			2, 109, 0, 1, 107, 2, 109, 117, 102, 108, 12, 0, 1, 107, 2, 112, 115, 0, 1, 107, 115, 2, 102, 12, 0, 1, 108, 2, 98, 32,
+			12, 0, 1, 108, 2, 98, 98, 0, 1, 108, 2, 112, 12, 0, 1, 108, 107, 2, 18, 71, 0, 1, 108, 115, 2, 18, 71, 0, 1, 108,
+			115, 2, 110, 103, 101, 12, 0, 1, 108, 115, 118, 105, 108, 2, 110, 103, 12, 0, 1, 109, 105, 108, 107, 2, 107, 115, 0, 1, 112, 2,
+			112, 114, 105, 12, 0, 1, 112, 115, 2, 110, 107, 117, 108, 101, 114, 0, 1, 114, 2, 18, 73, 0, 1, 114, 2, 115, 101, 0, 1, 114,
+			2, 116, 0, 1, 114, 2, 118, 0, 1, 114, 107, 115, 2, 108, 0, 1, 115, 2, 110, 103, 12, 0, 1, 115, 2, 120, 0, 1, 116, 2,
+			98, 116, 0, 1, 116, 2, 112, 0, 1, 118, 2, 99, 99, 0, 1, 118, 2, 102, 12, 12, 0, 1, 118, 2, 106, 0, 2, 18, 66, 12,
+			12, 0, 2, 18, 66, 101, 12, 12, 0, 2, 98, 17, 67, 105, 0, 2, 98, 110, 111, 114, 109, 0, 2, 102, 17, 67, 12, 0, 2, 109,
+			101, 114, 105, 107, 97, 110, 0, 2, 109, 109, 12, 0, 2, 109, 115, 0, 2, 109, 117, 108, 101, 116, 0, 2, 112, 111, 116, 101, 0, 2,
+			112, 112, 97, 114, 0, 2, 112, 112, 101, 108, 115, 105, 110, 0, 2, 112, 112, 101, 116, 105, 116, 0, 2, 114, 114, 101, 115, 116, 0, 8,
+			2, 108, 100, 114, 105, 103, 0, 8, 2, 110, 100, 101, 114, 0, 8, 100, 2, 109, 32, 0, 8, 100, 2, 109, 109, 0, 114, 101, 8, 98,
+			2, 116, 3, 35, 34, 6, 111, 0, 114, 97, 103, 100, 1, 109, 115, 3, 35, 34, 6, 112, 58, 72, 0, 4, 118, 1, 103, 2, 116, 121,
+			118, 3, 35, 40, 0, 118, 1, 104, 32, 101, 100, 184, 195, 0, 118, 101, 114, 116, 1, 106, 3, 35, 40, 34, 47, 0, 116, 116, 101, 110,
+			116, 105, 111, 110, 3, 35, 47, 6, 109, 50, 91, 13, 50, 0, 112, 101, 103, 195, 184, 106, 101, 1, 112, 3, 35, 48, 13, 81, 6, 114,
+			57, 108, 0, 103, 1, 18, 74, 2, 116, 3, 35, 49, 0, 99, 99, 97, 114, 97, 116, 1, 98, 3, 35, 49, 35, 34, 6, 35, 0, 110,
+			100, 97, 1, 114, 2, 108, 3, 35, 50, 72, 20, 115, 0, 4, 110, 103, 1, 109, 2, 111, 3, 35, 50, 81, 0, 110, 103, 2, 117, 108,
+			12, 12, 0, 110, 103, 8, 2, 111, 108, 0, 4, 105, 1, 99, 2, 114, 111, 3, 35, 57, 0, 105, 8, 110, 105, 115, 0, 121, 1, 109,
+			2, 97, 0, 121, 1, 117, 103, 0, 105, 1, 110, 2, 114, 111, 98, 105, 3, 35, 57, 6, 0, 105, 114, 111, 8, 107, 3, 35, 57, 34,
+			39, 0, 121, 114, 101, 117, 116, 104, 1, 98, 3, 35, 57, 51, 6, 114, 57, 47, 0, 121, 97, 116, 111, 108, 108, 97, 104, 3, 35, 57,
+			110, 47, 6, 114, 55, 110, 0, 121, 101, 114, 1, 98, 3, 35, 57, 114, 0, 4, 117, 2, 12, 12, 3, 35, 58, 0, 119, 2, 25, 0,
+			118, 102, 108, 97, 98, 1, 103, 3, 35, 58, 83, 55, 110, 71, 0, 4, 110, 2, 99, 105, 101, 110, 3, 35, 68, 0, 110, 103, 2, 114,
+			101, 0, 110, 103, 8, 2, 101, 17, 67, 0, 98, 97, 114, 101, 116, 1, 107, 3, 35, 71, 35, 34, 6, 109, 0, 98, 101, 114, 110, 97,
+			107, 1, 116, 3, 35, 71, 114, 50, 6, 35, 49, 0, 103, 103, 105, 111, 114, 101, 1, 109, 3, 35, 75, 6, 39, 12, 53, 36, 0, 103,
+			1, 109, 2, 97, 115, 105, 3, 35, 81, 0, 103, 97, 115, 97, 107, 105, 1, 110, 3, 35, 81, 110, 89, 6, 35, 49, 37, 0, 102, 116,
+			101, 114, 115, 104, 97, 118, 101, 3, 35, 83, 47, 114, 91, 109, 57, 84, 0, 122, 122, 105, 1, 114, 3, 35, 91, 57, 0, 99, 104, 1,
+			98, 3, 35, 101, 0, 104, 97, 8, 2, 32, 3, 35, 107, 6, 35, 0, 105, 1, 116, 110, 117, 111, 109, 2, 110, 3, 36, 0, 4, 1,
+			102, 114, 101, 116, 110, 105, 2, 99, 101, 3, 36, 37, 0, 1, 109, 101, 99, 97, 112, 2, 107, 0, 98, 121, 1, 98, 2, 12, 3, 36,
+			37, 71, 37, 0, 99, 101, 1, 112, 3, 36, 37, 89, 0, 4, 117, 1, 104, 99, 2, 102, 3, 39, 0, 117, 1, 104, 99, 2, 118, 105,
+			110, 0, 117, 1, 115, 2, 116, 101, 114, 110, 101, 0, 117, 1, 116, 115, 101, 114, 2, 114, 0, 117, 2, 32, 110, 97, 116, 117, 114, 101,
+			108, 0, 117, 120, 8, 102, 0, 117, 103, 117, 105, 110, 1, 103, 3, 39, 81, 6, 110, 68, 0, 4, 1, 114, 2, 99, 101, 114, 98, 97,
+			110, 101, 3, 109, 0, 1, 114, 2, 99, 101, 114, 98, 105, 108, 0, 1, 114, 2, 99, 101, 114, 99, 121, 107, 0, 1, 114, 2, 99, 101,
+			114, 107, 195, 184, 114, 0, 1, 114, 2, 99, 101, 114, 118, 111, 103, 110, 0, 101, 2, 114, 111, 0, 105, 2, 109, 97, 98, 101, 108, 0,
+			105, 114, 101, 1, 108, 99, 3, 109, 12, 34, 0, 105, 114, 99, 111, 110, 100, 105, 116, 105, 111, 110, 3, 109, 12, 34, 49, 114, 50, 72,
+			37, 12, 91, 13, 50, 0, 105, 114, 3, 109, 34, 0, 105, 100, 115, 3, 109, 37, 72, 89, 0, 4, 1, 104, 2, 115, 116, 105, 110, 103,
+			3, 109, 57, 0, 1, 108, 2, 115, 101, 114, 101, 110, 0, 1, 108, 2, 115, 101, 114, 110, 101, 115, 0, 1, 108, 2, 115, 101, 114, 112,
+			114, 0, 1, 108, 2, 115, 101, 114, 115, 116, 0, 1, 108, 32, 110, 101, 2, 115, 101, 114, 0, 1, 109, 107, 111, 111, 98, 2, 107, 101,
+			114, 0, 1, 114, 2, 116, 105, 110, 103, 0, 121, 1, 100, 0, 121, 2, 25, 0, 121, 8, 98, 2, 32, 0, 116, 101, 1, 109, 121, 97,
+			108, 112, 3, 109, 57, 47, 0, 116, 105, 101, 1, 107, 3, 109, 57, 47, 37, 0, 98, 101, 8, 98, 2, 32, 3, 109, 57, 48, 0, 99,
+			111, 8, 119, 3, 109, 57, 49, 39, 58, 0, 99, 111, 110, 1, 98, 2, 12, 3, 109, 57, 49, 114, 50, 0, 121, 110, 101, 1, 112, 3,
+			109, 57, 50, 0, 4, 105, 108, 1, 116, 107, 99, 111, 99, 3, 109, 57, 55, 0, 108, 101, 1, 32, 114, 101, 103, 110, 105, 103, 0, 109,
+			121, 8, 3, 109, 57, 65, 37, 0, 103, 101, 110, 99, 121, 3, 109, 57, 75, 13, 50, 89, 37, 0, 103, 97, 115, 8, 118, 3, 109, 57,
+			81, 13, 89, 0, 107, 101, 115, 1, 108, 102, 110, 114, 111, 99, 3, 109, 57, 81, 89, 0, 118, 101, 114, 121, 3, 109, 57, 84, 34, 37,
+			0, 121, 101, 115, 1, 17, 67, 3, 109, 57, 89, 0, 116, 105, 111, 110, 1, 116, 115, 2, 99, 97, 114, 3, 109, 57, 91, 108, 50, 0,
+			104, 97, 98, 8, 3, 109, 57, 107, 110, 71, 0, 112, 101, 1, 114, 103, 3, 109, 71, 0, 4, 3, 110, 0, 1, 17, 67, 2, 17, 67,
+			11, 0, 1, 17, 67, 2, 18, 75, 18, 69, 0, 1, 17, 67, 2, 109, 105, 12, 0, 1, 17, 67, 2, 109, 195, 166, 12, 0, 1, 18,
+			67, 2, 18, 67, 101, 0, 1, 18, 67, 2, 18, 67, 108, 101, 0, 1, 18, 71, 2, 110, 0, 1, 18, 73, 2, 18, 75, 18, 69, 0,
+			1, 18, 73, 2, 118, 0, 1, 18, 74, 2, 108, 100, 0, 1, 18, 75, 2, 109, 101, 12, 0, 1, 18, 75, 2, 112, 18, 69, 12, 0,
+			1, 21, 2, 107, 114, 18, 69, 12, 0, 1, 98, 2, 103, 97, 103, 101, 12, 12, 0, 1, 98, 2, 118, 105, 97, 110, 12, 0, 1, 98,
+			32, 103, 105, 98, 2, 110, 103, 0, 1, 98, 114, 105, 97, 2, 103, 0, 1, 99, 2, 109, 112, 12, 0, 1, 100, 2, 109, 18, 76, 12,
+			0, 1, 100, 100, 2, 103, 12, 0, 1, 100, 108, 2, 107, 0, 1, 100, 108, 101, 109, 109, 97, 103, 2, 103, 115, 0, 1, 101, 0, 1,
+			101, 2, 114, 18, 69, 12, 0, 1, 101, 114, 2, 103, 12, 0, 1, 102, 2, 18, 67, 114, 18, 69, 0, 1, 102, 2, 18, 74, 0, 1,
+			102, 2, 99, 18, 76, 0, 1, 102, 2, 110, 107, 108, 117, 98, 12, 0, 1, 102, 111, 115, 0, 1, 103, 2, 98, 114, 105, 101, 108, 0,
+			1, 103, 2, 110, 103, 115, 116, 101, 114, 12, 0, 1, 103, 105, 108, 0, 1, 104, 2, 99, 107, 12, 0, 1, 104, 2, 109, 98, 117, 114,
+			103, 101, 114, 0, 1, 104, 2, 110, 0, 1, 104, 2, 110, 107, 97, 116, 0, 1, 104, 2, 110, 107, 195, 184, 110, 12, 12, 0, 1, 104,
+			2, 112, 112, 17, 65, 0, 1, 104, 101, 98, 2, 103, 0, 1, 104, 115, 2, 109, 18, 76, 0, 1, 104, 116, 2, 110, 107, 115, 0, 1,
+			105, 100, 2, 18, 66, 12, 0, 1, 106, 2, 109, 101, 110, 0, 1, 107, 2, 12, 0, 1, 107, 2, 112, 18, 76, 12, 0, 1, 107, 2,
+			112, 114, 101, 12, 0, 1, 107, 2, 112, 114, 105, 110, 103, 0, 1, 107, 105, 116, 111, 107, 114, 97, 110, 0, 1, 107, 115, 2, 18, 71,
+			12, 0, 1, 108, 2, 98, 101, 0, 1, 108, 2, 109, 17, 65, 12, 0, 1, 108, 2, 110, 0, 1, 108, 2, 118, 101, 110, 100, 101, 108,
+			0, 1, 108, 97, 109, 2, 18, 66, 97, 0, 1, 108, 98, 2, 99, 107, 0, 1, 108, 98, 2, 100, 0, 1, 108, 102, 2, 98, 32, 12,
+			0, 1, 108, 111, 99, 0, 1, 108, 112, 2, 99, 101, 0, 1, 108, 112, 2, 107, 97, 0, 1, 108, 115, 2, 110, 103, 12, 0, 1, 108,
+			115, 105, 2, 109, 105, 0, 1, 109, 2, 106, 111, 12, 0, 1, 109, 2, 107, 97, 0, 1, 109, 105, 108, 107, 0, 1, 109, 105, 114, 112,
+			0, 1, 109, 114, 105, 102, 0, 1, 109, 114, 105, 102, 2, 12, 0, 1, 109, 115, 2, 99, 107, 0, 1, 110, 2, 112, 97, 108, 109, 0,
+			1, 110, 97, 112, 2, 109, 97, 0, 1, 110, 103, 2, 118, 110, 101, 0, 1, 110, 105, 103, 97, 118, 0, 1, 110, 115, 2, 99, 107, 0,
+			1, 112, 2, 103, 18, 76, 12, 0, 1, 112, 2, 103, 110, 12, 0, 1, 112, 2, 112, 105, 0, 1, 112, 2, 118, 12, 0, 1, 114, 2,
+			110, 99, 104, 0, 1, 114, 2, 110, 115, 105, 103, 116, 0, 1, 114, 99, 2, 99, 107, 12, 0, 1, 114, 101, 116, 102, 101, 2, 98, 0,
+			1, 114, 111, 102, 2, 110, 0, 1, 115, 2, 98, 98, 97, 116, 0, 1, 115, 2, 103, 12, 0, 1, 115, 2, 103, 115, 97, 110, 12, 12,
+			0, 1, 115, 2, 103, 115, 98, 101, 104, 97, 110, 100, 108, 12, 12, 0, 1, 115, 2, 103, 115, 109, 97, 12, 12, 0, 1, 115, 2, 103,
+			115, 111, 109, 12, 12, 0, 1, 115, 2, 109, 97, 110, 116, 0, 1, 115, 2, 109, 117, 101, 108, 0, 1, 115, 107, 101, 10, 2, 109, 0,
+			1, 116, 2, 110, 100, 0, 1, 116, 2, 112, 18, 76, 0, 1, 116, 2, 112, 105, 0, 1, 116, 115, 2, 99, 99, 97, 116, 111, 0, 1,
+			116, 115, 2, 102, 102, 97, 103, 101, 0, 1, 116, 115, 2, 107, 97, 0, 1, 116, 115, 101, 116, 2, 109, 0, 1, 118, 2, 110, 100, 114,
+			195, 184, 114, 0, 1, 118, 108, 101, 115, 2, 110, 103, 105, 118, 0, 1, 118, 115, 2, 98, 0, 1, 120, 97, 116, 0, 1, 122, 122, 105,
+			112, 0, 2, 18, 66, 18, 69, 12, 12, 0, 2, 98, 98, 0, 2, 100, 114, 101, 115, 115, 12, 0, 2, 100, 118, 97, 114, 0, 2, 102,
+			102, 117, 116, 97, 103, 101, 0, 2, 102, 102, 195, 166, 114, 101, 12, 0, 2, 102, 115, 116, 101, 100, 12, 0, 2, 103, 103, 114, 101, 115,
+			12, 12, 0, 2, 107, 11, 18, 69, 12, 0, 2, 107, 97, 12, 12, 0, 2, 107, 97, 100, 101, 109, 12, 12, 0, 2, 107, 118, 17, 65,
+			12, 0, 2, 108, 100, 101, 0, 2, 108, 116, 0, 2, 110, 103, 97, 118, 12, 12, 0, 2, 110, 103, 195, 165, 12, 12, 0, 2, 110, 104,
+			111, 12, 12, 0, 2, 110, 107, 108, 97, 103, 12, 12, 0, 2, 110, 108, 195, 166, 103, 12, 0, 2, 110, 115, 116, 0, 2, 110, 115, 116,
+			114, 101, 110, 103, 12, 0, 2, 110, 116, 97, 108, 12, 0, 2, 110, 118, 101, 110, 100, 12, 0, 2, 116, 116, 97, 99, 104, 12, 0, 8,
+			2, 18, 66, 18, 69, 12, 12, 0, 8, 2, 102, 102, 101, 107, 116, 12, 0, 8, 2, 110, 100, 101, 110, 0, 8, 2, 110, 100, 101, 116,
+			0, 100, 1, 108, 106, 101, 115, 2, 115, 0, 103, 1, 100, 101, 114, 102, 2, 115, 0, 103, 1, 100, 110, 97, 109, 2, 115, 0, 103, 1,
+			100, 110, 184, 195, 115, 2, 115, 0, 103, 1, 100, 114, 101, 118, 104, 0, 103, 1, 100, 114, 184, 195, 108, 2, 115, 0, 103, 1, 100, 115,
+			110, 111, 2, 115, 0, 103, 1, 100, 115, 114, 105, 116, 2, 115, 0, 103, 1, 100, 115, 114, 111, 116, 2, 115, 0, 103, 2, 103, 114, 101,
+			103, 97, 116, 0, 104, 1, 104, 115, 0, 114, 1, 107, 2, 108, 101, 110, 101, 0, 114, 1, 107, 21, 2, 108, 0, 114, 1, 108, 110, 101,
+			118, 111, 100, 2, 115, 0, 118, 1, 104, 2, 32, 0, 4, 1, 107, 2, 106, 97, 107, 3, 110, 6, 0, 1, 116, 97, 107, 2, 112, 117,
+			108, 116, 0, 105, 1, 107, 2, 110, 3, 110, 6, 37, 12, 0, 4, 1, 17, 67, 2, 17, 67, 101, 3, 110, 12, 0, 1, 17, 67, 2,
+			110, 101, 0, 1, 18, 73, 2, 98, 18, 76, 0, 1, 18, 73, 2, 100, 0, 1, 18, 74, 2, 18, 67, 101, 0, 1, 18, 74, 2, 108,
+			0, 1, 103, 2, 118, 0, 1, 106, 116, 2, 32, 0, 1, 108, 115, 2, 118, 0, 1, 112, 115, 2, 109, 0, 1, 112, 115, 2, 110, 107,
+			105, 110, 103, 0, 1, 116, 2, 108, 17, 65, 0, 8, 2, 101, 32, 0, 110, 110, 101, 115, 8, 99, 3, 110, 12, 50, 12, 0, 118, 1,
+			108, 2, 101, 116, 3, 110, 12, 84, 0, 118, 101, 1, 108, 2, 109, 101, 110, 116, 3, 110, 13, 0, 114, 97, 112, 97, 104, 111, 101, 3,
+			110, 34, 6, 110, 48, 110, 107, 113, 58, 0, 4, 114, 114, 121, 1, 98, 3, 110, 34, 37, 0, 114, 121, 1, 109, 32, 121, 100, 111, 111,
+			108, 98, 0, 116, 104, 101, 110, 3, 110, 47, 6, 36, 50, 0, 116, 116, 114, 105, 98, 117, 116, 105, 111, 110, 8, 3, 110, 47, 51, 37,
+			71, 40, 91, 6, 39, 50, 0, 116, 116, 114, 105, 98, 117, 116, 105, 111, 110, 3, 110, 47, 51, 37, 71, 40, 91, 39, 50, 0, 116, 97,
+			107, 111, 109, 98, 1, 107, 3, 110, 47, 110, 49, 6, 39, 65, 71, 0, 4, 112, 101, 1, 110, 97, 107, 3, 110, 48, 6, 36, 0, 112,
+			195, 169, 1, 110, 97, 107, 0, 112, 112, 101, 97, 108, 3, 110, 48, 6, 37, 55, 0, 112, 111, 108, 101, 111, 110, 1, 110, 3, 110, 48,
+			6, 39, 55, 57, 114, 50, 0, 107, 107, 111, 114, 100, 101, 111, 110, 3, 110, 49, 6, 114, 12, 72, 36, 114, 50, 0, 107, 114, 121, 108,
+			3, 110, 49, 34, 6, 116, 55, 0, 107, 117, 108, 116, 101, 116, 8, 102, 3, 110, 49, 40, 55, 47, 6, 36, 47, 0, 99, 116, 105, 111,
+			110, 3, 110, 49, 91, 57, 13, 50, 0, 110, 100, 114, 101, 97, 8, 3, 110, 50, 72, 34, 6, 36, 110, 0, 110, 100, 114, 101, 119, 3,
+			110, 50, 72, 34, 40, 0, 110, 100, 114, 101, 119, 115, 3, 110, 50, 72, 51, 40, 12, 89, 0, 110, 100, 111, 8, 114, 98, 3, 110, 50,
+			72, 113, 58, 0, 110, 100, 111, 108, 112, 104, 1, 114, 3, 110, 50, 72, 114, 55, 83, 0, 110, 100, 101, 114, 115, 111, 110, 8, 3, 110,
+			50, 72, 114, 89, 114, 50, 0, 110, 103, 101, 108, 97, 8, 3, 110, 50, 75, 13, 55, 110, 0, 110, 103, 105, 101, 8, 3, 110, 50, 75,
+			37, 0, 110, 103, 101, 108, 101, 115, 3, 110, 50, 75, 108, 55, 109, 89, 0, 4, 110, 103, 2, 114, 101, 98, 3, 110, 50, 81, 0, 110,
+			103, 2, 114, 105, 12, 0, 110, 103, 111, 111, 110, 1, 114, 3, 110, 50, 81, 6, 40, 12, 50, 0, 110, 104, 97, 116, 116, 97, 110, 1,
+			109, 3, 110, 50, 107, 6, 110, 47, 13, 50, 0, 114, 114, 111, 119, 3, 110, 51, 39, 40, 0, 108, 1, 10, 2, 105, 115, 116, 28, 33,
+			12, 3, 110, 55, 0, 4, 108, 1, 10, 2, 105, 115, 109, 28, 33, 12, 3, 110, 55, 6, 0, 108, 1, 110, 97, 2, 121, 12, 0, 108,
+			97, 106, 1, 109, 3, 110, 55, 6, 35, 57, 0, 4, 108, 108, 105, 101, 8, 2, 32, 3, 110, 55, 37, 0, 108, 108, 121, 1, 115, 0,
+			108, 100, 101, 116, 104, 97, 3, 110, 55, 72, 6, 37, 87, 110, 0, 108, 100, 101, 104, 121, 100, 1, 109, 114, 111, 102, 3, 110, 55, 72,
+			108, 107, 6, 116, 86, 0, 108, 97, 107, 108, 97, 118, 1, 98, 2, 97, 3, 110, 55, 110, 49, 55, 6, 110, 12, 84, 0, 108, 97, 99,
+			101, 8, 112, 3, 110, 55, 110, 89, 0, 4, 1, 108, 21, 2, 103, 3, 110, 57, 0, 103, 1, 100, 101, 109, 109, 111, 100, 0, 103, 1,
+			102, 2, 32, 0, 103, 1, 109, 2, 114, 101, 0, 103, 1, 115, 2, 115, 32, 12, 0, 103, 1, 118, 32, 116, 100, 105, 108, 2, 116, 0,
+			103, 8, 109, 2, 32, 12, 0, 103, 8, 118, 2, 32, 0, 103, 8, 118, 2, 101, 32, 0, 108, 98, 117, 113, 117, 101, 114, 113, 117, 101,
+			3, 110, 59, 71, 108, 49, 118, 49, 37, 0, 109, 97, 114, 111, 1, 99, 3, 110, 65, 6, 109, 34, 39, 0, 109, 97, 1, 103, 2, 99,
+			104, 3, 110, 65, 6, 110, 0, 109, 117, 114, 97, 105, 1, 115, 3, 110, 65, 40, 34, 6, 35, 57, 0, 109, 98, 114, 111, 115, 101, 3,
+			110, 65, 71, 51, 115, 40, 89, 0, 103, 110, 97, 1, 109, 114, 97, 2, 99, 3, 110, 68, 6, 112, 0, 98, 98, 121, 8, 3, 110, 71,
+			37, 0, 98, 105, 108, 101, 110, 101, 3, 110, 71, 37, 55, 37, 12, 50, 0, 98, 108, 97, 110, 1, 115, 97, 99, 2, 99, 97, 3, 110,
+			71, 55, 6, 112, 68, 0, 100, 101, 114, 1, 10, 2, 101, 28, 33, 3, 110, 72, 6, 36, 34, 0, 100, 101, 110, 116, 1, 10, 2, 28,
+			33, 3, 110, 72, 6, 36, 50, 47, 0, 100, 98, 117, 114, 121, 1, 114, 98, 3, 110, 72, 71, 14, 34, 36, 0, 4, 103, 1, 109, 2,
+			105, 12, 3, 110, 81, 0, 103, 1, 110, 97, 108, 102, 2, 97, 110, 0, 103, 1, 110, 121, 115, 2, 111, 103, 101, 0, 103, 2, 110, 101,
+			119, 0, 103, 103, 105, 101, 3, 110, 81, 37, 0, 103, 97, 122, 105, 110, 101, 1, 109, 3, 110, 81, 110, 89, 6, 37, 12, 50, 0, 4,
+			118, 1, 108, 2, 97, 17, 67, 3, 110, 84, 0, 118, 1, 108, 2, 97, 32, 0, 118, 1, 108, 2, 97, 101, 0, 118, 1, 108, 2, 101,
+			100, 0, 118, 1, 108, 2, 101, 114, 0, 118, 1, 108, 2, 101, 115, 0, 118, 1, 108, 2, 105, 110, 101, 0, 118, 1, 108, 2, 110, 105,
+			0, 118, 1, 108, 2, 116, 32, 0, 118, 1, 116, 115, 2, 110, 105, 110, 0, 118, 1, 116, 115, 103, 111, 98, 0, 118, 8, 108, 2, 32,
+			0, 118, 101, 114, 1, 108, 107, 2, 32, 3, 110, 84, 6, 36, 34, 0, 118, 101, 1, 108, 2, 32, 3, 110, 84, 13, 0, 118, 101, 116,
+			1, 108, 110, 111, 110, 97, 107, 3, 110, 84, 36, 47, 0, 118, 97, 110, 116, 103, 97, 114, 100, 101, 3, 110, 84, 112, 68, 81, 6, 35,
+			34, 72, 108, 0, 118, 101, 114, 1, 108, 2, 32, 3, 110, 84, 114, 0, 115, 116, 97, 105, 114, 101, 3, 110, 89, 72, 6, 109, 12, 34,
+			0, 115, 101, 114, 98, 97, 106, 100, 115, 106, 97, 110, 3, 110, 89, 114, 71, 110, 91, 6, 110, 50, 0, 99, 104, 101, 1, 116, 116, 97,
+			3, 110, 91, 6, 36, 0, 4, 116, 105, 111, 1, 103, 105, 108, 98, 111, 2, 110, 3, 110, 91, 6, 39, 0, 116, 105, 111, 8, 103, 105,
+			108, 98, 111, 2, 110, 0, 116, 105, 111, 110, 1, 10, 2, 28, 33, 3, 110, 91, 7, 39, 50, 0, 116, 105, 111, 1, 110, 114, 101, 116,
+			110, 105, 2, 110, 97, 108, 3, 110, 91, 39, 0, 104, 101, 110, 1, 104, 115, 3, 110, 108, 50, 0, 1, 114, 114, 101, 116, 2, 115, 3,
+			111, 0, 4, 1, 17, 67, 2, 102, 116, 3, 112, 0, 1, 17, 67, 2, 114, 18, 69, 0, 1, 18, 66, 2, 18, 71, 116, 12, 0, 1,
+			18, 67, 2, 18, 67, 0, 1, 18, 67, 2, 18, 67, 115, 101, 114, 0, 1, 18, 71, 2, 110, 107, 0, 1, 100, 2, 109, 112, 0, 1,
+			100, 97, 2, 109, 0, 1, 102, 2, 109, 108, 101, 12, 0, 1, 105, 114, 2, 109, 0, 1, 106, 2, 18, 75, 111, 12, 0, 1, 106, 109,
+			2, 118, 0, 1, 107, 2, 103, 0, 1, 107, 115, 2, 107, 0, 1, 108, 2, 103, 116, 12, 0, 1, 110, 2, 112, 0, 1, 110, 115, 2,
+			118, 115, 0, 1, 114, 2, 17, 67, 12, 0, 1, 114, 2, 17, 67, 18, 69, 0, 1, 114, 2, 18, 66, 12, 12, 0, 1, 114, 2, 18,
+			67, 18, 69, 12, 0, 1, 114, 2, 18, 71, 0, 1, 114, 2, 32, 0, 1, 114, 2, 100, 0, 1, 114, 2, 101, 110, 0, 1, 114, 2,
+			108, 0, 1, 114, 2, 108, 21, 21, 12, 0, 1, 114, 2, 110, 0, 1, 114, 2, 110, 101, 0, 1, 114, 17, 67, 2, 110, 0, 1, 114,
+			18, 66, 0, 1, 114, 98, 2, 17, 67, 0, 1, 114, 101, 109, 97, 107, 0, 1, 114, 102, 0, 1, 114, 111, 102, 2, 110, 100, 0, 1,
+			114, 111, 102, 2, 110, 107, 0, 1, 114, 116, 0, 1, 114, 116, 2, 17, 67, 0, 1, 114, 116, 115, 0, 1, 114, 117, 97, 108, 0, 1,
+			114, 118, 2, 108, 116, 0, 1, 116, 2, 110, 107, 0, 1, 118, 2, 110, 100, 114, 0, 2, 18, 66, 116, 12, 0, 2, 98, 17, 67, 0,
+			2, 98, 99, 0, 2, 99, 99, 0, 2, 102, 98, 114, 121, 100, 0, 2, 102, 118, 105, 0, 2, 103, 116, 0, 2, 107, 116, 0, 2, 109,
+			102, 0, 2, 109, 116, 0, 2, 110, 100, 114, 101, 0, 2, 114, 12, 0, 2, 118, 108, 0, 2, 118, 110, 12, 0, 8, 2, 98, 115, 0,
+			8, 2, 109, 98, 0, 8, 2, 109, 101, 110, 32, 0, 104, 1, 114, 97, 115, 0, 4, 1, 114, 2, 111, 117, 108, 3, 112, 6, 0, 8,
+			110, 111, 109, 2, 114, 107, 105, 0, 97, 1, 107, 105, 114, 102, 97, 2, 110, 3, 112, 12, 0, 110, 99, 101, 1, 108, 101, 101, 114, 102,
+			3, 112, 12, 68, 89, 0, 114, 1, 10, 2, 105, 97, 116, 28, 33, 3, 112, 34, 0, 97, 114, 111, 110, 3, 112, 34, 114, 50, 0, 4,
+			103, 1, 18, 74, 2, 12, 3, 112, 40, 0, 103, 1, 104, 2, 108, 0, 103, 1, 114, 2, 110, 97, 12, 0, 103, 1, 115, 2, 17, 67,
+			12, 0, 103, 1, 115, 2, 115, 195, 184, 0, 103, 2, 110, 12, 0, 118, 1, 18, 73, 2, 17, 67, 0, 118, 1, 98, 2, 12, 12, 0,
+			118, 1, 103, 2, 109, 105, 0, 118, 1, 104, 2, 17, 67, 0, 118, 1, 104, 2, 97, 98, 111, 114, 114, 0, 118, 1, 104, 2, 105, 115,
+			0, 118, 1, 104, 2, 111, 118, 101, 114, 0, 118, 1, 104, 2, 117, 100, 0, 118, 1, 104, 21, 2, 32, 0, 118, 1, 104, 32, 101, 107,
+			115, 0, 118, 1, 104, 32, 103, 111, 32, 108, 101, 109, 109, 105, 104, 0, 118, 1, 115, 2, 17, 67, 0, 118, 8, 2, 32, 0, 118, 95,
+			1, 104, 21, 0, 103, 110, 101, 1, 109, 2, 116, 3, 112, 40, 50, 6, 36, 0, 116, 1, 114, 10, 2, 105, 28, 33, 3, 112, 47, 0,
+			116, 1, 114, 10, 2, 117, 114, 28, 33, 3, 112, 47, 6, 0, 114, 107, 97, 110, 115, 97, 115, 3, 112, 49, 13, 50, 89, 113, 12, 0,
+			4, 102, 2, 115, 3, 112, 58, 0, 102, 2, 116, 97, 108, 0, 103, 1, 114, 112, 115, 2, 108, 101, 116, 0, 118, 1, 110, 103, 2, 112,
+			111, 116, 0, 118, 1, 116, 2, 115, 0, 118, 2, 108, 12, 0, 118, 8, 108, 0, 118, 8, 108, 2, 118, 0, 118, 8, 116, 2, 32, 0,
+			109, 101, 108, 117, 1, 109, 2, 107, 3, 112, 65, 108, 55, 6, 40, 0, 109, 97, 103, 101, 114, 8, 3, 112, 65, 112, 34, 0, 4, 110,
+			1, 108, 2, 99, 101, 3, 112, 68, 0, 110, 1, 108, 112, 2, 99, 104, 0, 110, 1, 114, 98, 2, 99, 104, 0, 110, 100, 1, 100, 2,
+			101, 114, 101, 3, 112, 68, 72, 0, 110, 99, 101, 1, 10, 2, 114, 101, 28, 33, 3, 112, 68, 89, 6, 36, 0, 110, 99, 101, 1, 10,
+			2, 12, 3, 112, 68, 89, 13, 0, 110, 99, 101, 1, 10, 2, 114, 101, 12, 3, 112, 68, 89, 36, 0, 110, 99, 104, 101, 116, 1, 109,
+			3, 112, 68, 91, 6, 109, 72, 0, 98, 101, 108, 1, 114, 105, 109, 3, 112, 71, 6, 109, 55, 0, 98, 97, 100, 115, 1, 114, 116, 115,
+			3, 112, 71, 6, 110, 89, 0, 98, 100, 111, 2, 109, 3, 112, 71, 72, 6, 39, 0, 98, 115, 111, 108, 117, 116, 105, 111, 110, 8, 3,
+			112, 71, 89, 39, 55, 40, 91, 6, 39, 50, 0, 98, 115, 111, 108, 117, 116, 105, 111, 110, 3, 112, 71, 89, 39, 55, 40, 91, 39, 50,
+			0, 100, 101, 114, 1, 114, 10, 2, 101, 28, 33, 3, 112, 72, 6, 36, 34, 0, 100, 97, 114, 1, 114, 3, 112, 72, 112, 34, 0, 114,
+			103, 101, 1, 108, 3, 112, 75, 0, 103, 103, 101, 114, 1, 100, 2, 116, 3, 112, 81, 114, 0, 102, 97, 101, 1, 114, 3, 112, 83, 110,
+			6, 36, 0, 116, 105, 111, 110, 1, 114, 10, 2, 28, 33, 3, 112, 91, 6, 39, 50, 0, 101, 114, 1, 114, 2, 32, 3, 112, 114, 0,
+			4, 1, 119, 2, 116, 101, 114, 3, 113, 0, 8, 116, 115, 2, 108, 108, 0, 117, 1, 115, 2, 116, 101, 114, 101, 0, 117, 8, 112, 2,
+			108, 0, 119, 1, 114, 0, 117, 1, 115, 2, 99, 101, 3, 113, 12, 0, 108, 108, 1, 98, 121, 101, 108, 108, 111, 118, 3, 113, 12, 55,
+			0, 117, 98, 114, 101, 121, 3, 113, 12, 71, 34, 37, 0, 117, 100, 114, 101, 121, 3, 113, 12, 72, 51, 37, 0, 117, 114, 105, 101, 1,
+			108, 3, 113, 34, 37, 0, 97, 103, 101, 8, 3, 113, 40, 108, 0, 108, 107, 1, 116, 2, 115, 104, 111, 119, 3, 113, 49, 0, 117, 114,
+			101, 101, 110, 1, 109, 3, 113, 51, 6, 37, 12, 50, 0, 108, 108, 2, 32, 114, 105, 103, 104, 116, 3, 113, 55, 0, 108, 100, 105, 110,
+			103, 1, 112, 115, 3, 113, 55, 72, 4, 36, 68, 0, 119, 1, 114, 99, 3, 114, 0, 108, 1, 119, 2, 107, 3, 114, 12, 0, 108, 108,
+			1, 119, 3, 114, 12, 55, 0, 119, 114, 101, 110, 99, 101, 1, 108, 3, 115, 34, 13, 50, 89, 0, 7, 6, 98, 0, 4, 1, 184, 195,
+			107, 2, 109, 97, 3, 0, 1, 184, 195, 107, 2, 109, 195, 166, 3, 0, 4, 114, 111, 119, 110, 3, 21, 0, 121, 114, 111, 110, 0, 2,
+			32, 3, 48, 0, 4, 1, 101, 112, 2, 101, 114, 3, 58, 0, 1, 101, 112, 2, 114, 101, 0, 98, 1, 111, 107, 2, 101, 114, 0, 4,
+			3, 71, 0, 98, 0, 101, 97, 116, 8, 3, 71, 6, 37, 12, 47, 0, 111, 110, 107, 97, 109, 109, 101, 114, 97, 116, 3, 71, 6, 114,
+			68, 49, 35, 65, 13, 34, 112, 47, 0, 114, 97, 105, 108, 108, 101, 3, 71, 34, 35, 57, 12, 0, 114, 105, 110, 116, 105, 111, 110, 3,
+			71, 34, 36, 50, 72, 57, 39, 12, 50, 0, 114, 111, 97, 100, 3, 71, 34, 113, 72, 0, 97, 114, 121, 116, 111, 110, 3, 71, 35, 37,
+			47, 114, 50, 0, 101, 105, 2, 114, 117, 116, 3, 71, 35, 57, 0, 105, 107, 101, 3, 71, 35, 57, 49, 0, 117, 105, 2, 108, 100, 105,
+			110, 103, 3, 71, 36, 0, 97, 115, 101, 98, 97, 108, 108, 3, 71, 36, 57, 89, 82, 113, 12, 59, 0, 105, 110, 103, 104, 97, 109, 3,
+			71, 36, 68, 108, 65, 0, 117, 115, 105, 110, 101, 115, 115, 3, 71, 36, 89, 50, 109, 89, 0, 101, 97, 2, 116, 114, 105, 3, 71, 36,
+			110, 6, 0, 101, 101, 1, 115, 105, 114, 102, 3, 71, 37, 0, 101, 98, 111, 112, 3, 71, 37, 12, 71, 114, 48, 0, 101, 97, 99, 104,
+			3, 71, 37, 12, 76, 0, 101, 97, 103, 108, 101, 3, 71, 37, 12, 81, 13, 55, 0, 105, 108, 108, 105, 101, 3, 71, 37, 59, 37, 0,
+			101, 97, 117, 106, 111, 108, 97, 105, 115, 3, 71, 39, 91, 57, 39, 55, 6, 109, 0, 111, 117, 114, 103, 111, 103, 110, 101, 3, 71, 40,
+			34, 81, 6, 114, 50, 57, 13, 0, 111, 117, 105, 108, 108, 2, 111, 110, 3, 71, 40, 55, 57, 0, 111, 117, 105, 108, 108, 97, 98, 97,
+			105, 115, 115, 101, 3, 71, 40, 57, 35, 71, 6, 109, 89, 0, 111, 117, 100, 111, 105, 114, 3, 71, 40, 72, 58, 6, 112, 12, 0, 114,
+			117, 99, 101, 8, 3, 71, 51, 40, 12, 89, 0, 114, 111, 119, 115, 101, 114, 3, 71, 51, 112, 58, 89, 114, 0, 108, 97, 107, 101, 8,
+			3, 71, 55, 109, 57, 49, 0, 108, 105, 103, 104, 8, 3, 71, 55, 112, 57, 0, 108, 111, 111, 100, 121, 3, 71, 55, 114, 72, 37, 0,
+			117, 116, 116, 101, 8, 2, 32, 3, 71, 57, 40, 12, 47, 0, 117, 105, 99, 8, 3, 71, 57, 40, 37, 49, 0, 101, 108, 108, 101, 118,
+			117, 101, 3, 71, 109, 55, 13, 84, 6, 116, 0, 101, 105, 106, 105, 110, 103, 3, 71, 109, 57, 75, 6, 36, 68, 0, 101, 118, 101, 114,
+			108, 121, 3, 71, 109, 84, 114, 55, 37, 0, 97, 99, 107, 117, 112, 8, 3, 71, 110, 49, 6, 114, 71, 0, 97, 108, 107, 111, 110, 8,
+			3, 71, 110, 55, 49, 6, 114, 68, 0, 97, 108, 107, 111, 110, 3, 71, 110, 55, 49, 114, 68, 0, 97, 98, 121, 108, 111, 110, 2, 101,
+			114, 3, 71, 110, 71, 116, 55, 6, 39, 50, 0, 97, 98, 121, 108, 111, 110, 2, 105, 115, 107, 3, 71, 110, 71, 116, 55, 39, 50, 0,
+			97, 98, 121, 108, 111, 110, 3, 71, 110, 71, 116, 55, 114, 50, 0, 97, 99, 107, 103, 97, 109, 109, 111, 110, 3, 71, 110, 81, 6, 110,
+			65, 108, 50, 0, 97, 115, 115, 105, 110, 1, 10, 3, 71, 110, 89, 6, 109, 68, 0, 97, 114, 98, 105, 101, 3, 71, 112, 34, 71, 37,
+			0, 97, 115, 107, 101, 116, 98, 97, 108, 108, 3, 71, 112, 89, 81, 36, 47, 71, 113, 12, 55, 0, 111, 97, 114, 100, 3, 71, 113, 12,
+			72, 0, 97, 108, 116, 105, 109, 111, 114, 101, 3, 71, 113, 55, 47, 37, 65, 114, 12, 0, 111, 110, 101, 1, 32, 116, 3, 71, 113, 58,
+			50, 0, 111, 114, 111, 117, 103, 104, 3, 71, 114, 34, 114, 0, 117, 116, 116, 101, 114, 102, 108, 121, 3, 71, 114, 47, 114, 83, 55, 35,
+			57, 0, 111, 100, 121, 103, 117, 97, 114, 100, 3, 71, 114, 72, 37, 81, 112, 12, 72, 0, 111, 100, 121, 115, 116, 111, 99, 107, 105, 110,
+			103, 3, 71, 114, 72, 37, 89, 47, 114, 49, 36, 68, 0, 117, 103, 115, 121, 3, 71, 114, 81, 89, 37, 0, 117, 102, 102, 97, 108, 111,
+			3, 71, 114, 83, 108, 55, 113, 58, 0, 4, 117, 102, 102, 101, 116, 1, 21, 3, 71, 116, 83, 6, 36, 0, 117, 102, 102, 101, 116, 8,
+			0, 117, 114, 103, 104, 3, 71, 118, 12, 81, 0, 117, 114, 116, 111, 110, 3, 71, 118, 47, 114, 50, 0, 101, 114, 110, 105, 101, 3, 71,
+			118, 50, 37, 0, 105, 114, 109, 105, 110, 103, 104, 97, 109, 3, 71, 118, 65, 37, 68, 13, 65, 0, 117, 114, 103, 101, 115, 115, 3, 71,
+			118, 75, 36, 89, 0, 7, 6, 99, 0, 4, 1, 115, 2, 104, 97, 3, 0, 2, 107, 3, 0, 99, 1, 101, 98, 101, 114, 2, 97, 3,
+			8, 49, 0, 101, 114, 1, 105, 100, 101, 100, 2, 28, 33, 3, 8, 49, 7, 36, 34, 0, 1, 105, 114, 101, 100, 101, 114, 102, 2, 105,
+			97, 3, 8, 49, 89, 0, 101, 114, 1, 10, 2, 28, 33, 3, 8, 89, 7, 36, 34, 0, 101, 114, 101, 1, 10, 2, 28, 33, 3, 8,
+			89, 7, 36, 34, 108, 0, 4, 101, 1, 10, 2, 32, 28, 33, 3, 8, 89, 13, 0, 101, 1, 10, 2, 110, 28, 33, 0, 101, 1, 10,
+			2, 114, 28, 33, 3, 8, 89, 114, 0, 101, 114, 101, 110, 1, 117, 100, 111, 114, 112, 3, 8, 89, 114, 108, 50, 0, 101, 110, 101, 1,
+			115, 3, 36, 50, 108, 0, 101, 110, 101, 114, 1, 115, 3, 36, 50, 114, 0, 104, 105, 110, 97, 3, 47, 57, 35, 57, 50, 110, 0, 104,
+			97, 2, 116, 3, 47, 57, 110, 0, 4, 3, 49, 0, 1, 97, 108, 108, 105, 100, 97, 99, 0, 99, 1, 105, 112, 2, 111, 0, 99, 1,
+			111, 114, 2, 111, 0, 99, 1, 111, 115, 2, 101, 114, 0, 104, 1, 101, 116, 2, 110, 111, 0, 104, 1, 105, 109, 2, 97, 0, 104, 1,
+			105, 110, 2, 111, 108, 0, 104, 1, 111, 115, 97, 109, 2, 105, 115, 0, 104, 2, 108, 111, 101, 0, 104, 2, 114, 0, 104, 8, 97, 109,
+			2, 32, 0, 115, 1, 110, 97, 114, 102, 0, 99, 1, 97, 116, 115, 2, 97, 116, 111, 3, 49, 6, 0, 114, 101, 101, 107, 3, 49, 34,
+			37, 12, 49, 0, 114, 101, 97, 115, 121, 3, 49, 34, 37, 89, 37, 0, 114, 111, 105, 115, 115, 97, 110, 116, 3, 49, 34, 39, 35, 89,
+			6, 112, 68, 0, 114, 101, 109, 101, 3, 49, 34, 109, 12, 65, 0, 97, 114, 116, 105, 101, 114, 8, 3, 49, 35, 34, 47, 57, 6, 36,
+			0, 111, 119, 98, 111, 121, 3, 49, 35, 40, 71, 113, 57, 0, 97, 109, 101, 109, 98, 101, 114, 116, 3, 49, 35, 65, 112, 68, 71, 6,
+			109, 34, 0, 97, 109, 98, 114, 105, 100, 103, 101, 3, 49, 36, 57, 65, 71, 51, 37, 75, 0, 111, 108, 97, 100, 97, 3, 49, 39, 55,
+			6, 112, 86, 110, 0, 114, 97, 122, 121, 3, 49, 51, 109, 57, 89, 37, 0, 108, 101, 118, 101, 108, 97, 110, 100, 3, 49, 55, 37, 12,
+			84, 55, 110, 50, 0, 108, 97, 105, 114, 2, 118, 111, 121, 3, 49, 55, 109, 34, 0, 108, 97, 114, 101, 110, 99, 101, 8, 3, 49, 55,
+			110, 51, 13, 50, 89, 0, 108, 101, 114, 107, 3, 49, 55, 112, 12, 49, 0, 108, 97, 117, 100, 101, 3, 49, 55, 113, 12, 72, 0, 108,
+			97, 117, 100, 101, 116, 116, 101, 3, 49, 55, 113, 72, 6, 36, 47, 0, 104, 105, 97, 110, 116, 105, 3, 49, 57, 6, 110, 50, 47, 37,
+			0, 99, 3, 49, 89, 0, 97, 116, 101, 114, 105, 110, 103, 3, 49, 109, 37, 47, 13, 34, 37, 68, 0, 97, 112, 101, 8, 2, 32, 116,
+			111, 119, 110, 3, 49, 109, 57, 48, 0, 97, 106, 117, 110, 3, 49, 109, 75, 108, 50, 0, 97, 114, 111, 108, 105, 110, 97, 1, 32, 104,
+			116, 114, 111, 110, 3, 49, 110, 34, 39, 55, 6, 35, 57, 50, 110, 0, 97, 112, 111, 110, 101, 8, 3, 49, 110, 48, 6, 113, 58, 50,
+			0, 97, 110, 116, 101, 114, 98, 117, 114, 121, 3, 49, 110, 50, 47, 114, 71, 34, 37, 0, 97, 103, 110, 101, 121, 8, 3, 49, 110, 81,
+			50, 37, 0, 97, 116, 104, 121, 8, 3, 49, 110, 87, 37, 0, 97, 114, 109, 105, 110, 101, 3, 49, 112, 12, 65, 35, 57, 50, 0, 97,
+			114, 100, 105, 110, 8, 3, 49, 112, 34, 72, 6, 110, 68, 0, 97, 114, 108, 105, 115, 108, 101, 3, 49, 112, 55, 35, 57, 55, 0, 111,
+			117, 114, 116, 110, 101, 121, 3, 49, 113, 12, 47, 50, 37, 0, 111, 104, 101, 110, 3, 49, 113, 40, 13, 50, 0, 111, 108, 101, 114, 105,
+			100, 103, 101, 3, 49, 113, 58, 55, 34, 37, 75, 0, 111, 2, 110, 114, 97, 100, 3, 49, 114, 0, 111, 114, 110, 2, 102, 3, 49, 114,
+			12, 50, 0, 111, 114, 110, 105, 99, 104, 111, 110, 3, 49, 114, 34, 50, 37, 91, 6, 114, 68, 0, 111, 116, 116, 97, 103, 101, 3, 49,
+			114, 47, 37, 75, 0, 117, 116, 108, 101, 114, 3, 49, 114, 47, 55, 114, 0, 111, 99, 107, 110, 101, 121, 3, 49, 114, 49, 50, 37, 0,
+			111, 110, 110, 101, 99, 116, 105, 99, 117, 116, 3, 49, 114, 50, 6, 36, 47, 37, 49, 114, 72, 0, 111, 110, 110, 105, 101, 3, 49, 114,
+			50, 37, 0, 111, 117, 110, 116, 114, 121, 3, 49, 114, 50, 47, 34, 37, 0, 111, 110, 110, 111, 114, 3, 49, 114, 50, 114, 0, 97, 108,
+			108, 103, 105, 114, 108, 3, 49, 114, 55, 81, 118, 12, 55, 0, 111, 109, 112, 117, 116, 101, 114, 3, 49, 114, 65, 48, 57, 6, 40, 12,
+			47, 114, 0, 111, 114, 100, 101, 108, 105, 97, 3, 49, 114, 72, 6, 37, 55, 37, 20, 110, 0, 117, 115, 116, 101, 114, 8, 3, 49, 114,
+			89, 47, 114, 0, 121, 112, 101, 114, 3, 49, 116, 48, 114, 0, 117, 114, 108, 101, 114, 3, 49, 118, 55, 114, 0, 4, 104, 1, 105, 119,
+			3, 76, 0, 104, 2, 101, 101, 115, 101, 0, 104, 2, 105, 0, 4, 1, 114, 111, 99, 115, 2, 101, 115, 101, 3, 76, 6, 0, 8, 97,
+			112, 2, 105, 110, 111, 0, 104, 105, 108, 100, 3, 76, 35, 57, 55, 72, 0, 104, 105, 104, 117, 97, 104, 117, 97, 3, 76, 37, 58, 6,
+			35, 58, 35, 0, 104, 2, 105, 112, 3, 76, 57, 0, 99, 1, 117, 112, 112, 97, 99, 2, 105, 110, 111, 3, 76, 57, 6, 0, 105, 97,
+			111, 8, 2, 32, 3, 76, 57, 112, 58, 0, 104, 101, 108, 115, 101, 97, 3, 76, 109, 55, 89, 37, 0, 104, 97, 112, 108, 105, 110, 3,
+			76, 110, 48, 55, 37, 50, 0, 104, 97, 108, 108, 101, 110, 103, 101, 3, 76, 110, 55, 36, 50, 75, 0, 104, 97, 114, 108, 101, 115, 3,
+			76, 112, 12, 55, 89, 0, 104, 97, 114, 108, 105, 101, 3, 76, 112, 55, 37, 0, 104, 97, 117, 99, 101, 114, 3, 76, 113, 12, 89, 114,
+			0, 104, 117, 99, 107, 8, 3, 76, 114, 49, 0, 104, 117, 114, 99, 104, 105, 108, 108, 3, 76, 118, 12, 91, 37, 55, 0, 4, 1, 17,
+			65, 2, 101, 3, 89, 0, 1, 97, 102, 2, 97, 100, 0, 1, 97, 102, 2, 111, 110, 0, 2, 101, 0, 2, 101, 108, 108, 111, 102, 97,
+			110, 0, 2, 105, 0, 2, 121, 0, 2, 195, 166, 115, 97, 114, 0, 2, 195, 184, 108, 105, 98, 97, 116, 0, 101, 8, 105, 108, 97, 0,
+			101, 8, 105, 102, 102, 111, 2, 114, 3, 89, 6, 36, 0, 195, 169, 114, 1, 10, 2, 32, 3, 89, 6, 36, 34, 0, 101, 2, 114, 116,
+			3, 89, 6, 109, 0, 195, 184, 114, 1, 10, 2, 32, 3, 89, 6, 118, 34, 0, 101, 121, 108, 111, 110, 3, 89, 35, 57, 59, 114, 50,
+			0, 101, 1, 105, 102, 102, 111, 2, 114, 3, 89, 36, 0, 101, 114, 1, 105, 102, 105, 108, 97, 118, 107, 115, 105, 100, 3, 89, 36, 34,
+			0, 121, 110, 116, 104, 105, 97, 3, 89, 36, 50, 87, 37, 110, 0, 105, 110, 99, 105, 110, 110, 97, 116, 105, 3, 89, 36, 50, 89, 37,
+			50, 6, 110, 47, 37, 0, 195, 169, 122, 97, 110, 110, 101, 3, 89, 36, 89, 6, 110, 50, 0, 195, 169, 122, 97, 110, 110, 101, 110, 3,
+			89, 36, 89, 6, 110, 50, 108, 50, 0, 4, 105, 103, 97, 114, 101, 116, 3, 89, 37, 81, 108, 34, 6, 111, 47, 0, 105, 103, 97, 114,
+			101, 116, 116, 0, 105, 101, 117, 120, 3, 89, 57, 6, 118, 0, 105, 114, 99, 117, 115, 1, 32, 121, 108, 108, 105, 100, 97, 99, 99, 105,
+			112, 3, 89, 118, 49, 13, 89, 0, 4, 2, 104, 97, 3, 91, 0, 104, 1, 114, 0, 104, 2, 12, 0, 104, 2, 97, 116, 101, 97, 117,
+			0, 99, 105, 110, 105, 1, 117, 112, 3, 91, 6, 37, 50, 37, 0, 104, 101, 121, 101, 110, 110, 101, 3, 91, 35, 57, 6, 109, 50, 0,
+			104, 105, 99, 97, 103, 111, 3, 91, 37, 49, 6, 112, 81, 113, 58, 0, 104, 111, 112, 105, 110, 3, 91, 39, 48, 109, 68, 0, 2, 101,
+			108, 108, 111, 3, 91, 57, 0, 104, 101, 114, 121, 108, 3, 91, 109, 34, 36, 59, 0, 104, 97, 98, 108, 105, 115, 3, 91, 110, 71, 55,
+			6, 37, 0, 104, 97, 103, 97, 108, 108, 3, 91, 110, 81, 6, 110, 55, 0, 104, 111, 107, 101, 114, 101, 110, 2, 32, 3, 91, 113, 58,
+			49, 114, 34, 13, 50, 0, 7, 6, 100, 0, 4, 1, 17, 65, 2, 116, 32, 12, 12, 3, 0, 4, 1, 17, 65, 2, 116, 101, 32, 12,
+			12, 3, 0, 4, 1, 17, 65, 2, 116, 101, 114, 32, 12, 12, 3, 0, 4, 1, 97, 118, 104, 3, 0, 4, 1, 101, 114, 107, 2, 115,
+			3, 0, 4, 1, 105, 2, 116, 3, 0, 4, 1, 105, 98, 2, 115, 107, 3, 0, 4, 1, 105, 103, 2, 115, 12, 3, 0, 4, 1, 105,
+			116, 2, 115, 101, 108, 3, 0, 4, 1, 108, 3, 0, 4, 1, 108, 101, 109, 2, 105, 110, 103, 3, 0, 4, 1, 108, 117, 103, 3, 0,
+			4, 1, 110, 97, 2, 101, 3, 0, 4, 1, 110, 105, 2, 17, 67, 3, 0, 4, 1, 114, 101, 106, 102, 2, 101, 3, 0, 4, 1, 114,
+			111, 2, 101, 3, 0, 4, 1, 114, 111, 107, 105, 116, 115, 3, 0, 4, 1, 114, 165, 195, 104, 3, 0, 4, 1, 114, 166, 195, 2, 32,
+			3, 0, 4, 1, 114, 166, 195, 102, 3, 0, 4, 1, 114, 166, 195, 118, 2, 115, 3, 0, 4, 1, 114, 166, 195, 118, 115, 3, 0, 4,
+			1, 114, 166, 195, 118, 115, 2, 101, 116, 3, 0, 4, 1, 117, 98, 2, 103, 101, 116, 3, 0, 4, 1, 184, 195, 2, 115, 101, 108, 12,
+			12, 3, 0, 4, 1, 184, 195, 2, 116, 3, 0, 4, 1, 184, 195, 102, 2, 115, 12, 12, 3, 0, 4, 2, 115, 116, 12, 12, 3, 0,
+			4, 8, 97, 109, 2, 115, 101, 110, 3, 0, 4, 8, 114, 117, 116, 2, 101, 3, 0, 101, 8, 110, 97, 102, 2, 109, 101, 3, 0, 4,
+			1, 105, 100, 110, 97, 107, 2, 97, 116, 3, 6, 72, 0, 1, 111, 109, 2, 97, 108, 0, 1, 108, 101, 109, 105, 2, 97, 3, 8, 72,
+			0, 4, 111, 114, 111, 116, 104, 121, 3, 21, 0, 114, 105, 115, 99, 111, 0, 4, 97, 117, 109, 105, 101, 114, 3, 21, 102, 114, 0, 101,
+			103, 97, 115, 8, 0, 105, 1, 114, 101, 106, 102, 2, 110, 103, 3, 36, 0, 4, 1, 111, 111, 119, 3, 47, 0, 116, 1, 101, 102, 2,
+			21, 0, 116, 1, 101, 114, 112, 115, 0, 116, 1, 105, 107, 115, 0, 116, 1, 117, 2, 12, 0, 101, 1, 108, 97, 98, 3, 55, 108, 0,
+			4, 3, 72, 0, 1, 17, 67, 2, 101, 116, 17, 65, 0, 1, 21, 2, 101, 108, 116, 0, 1, 21, 2, 121, 114, 0, 1, 97, 2, 97,
+			109, 0, 1, 97, 2, 111, 112, 116, 101, 114, 0, 1, 97, 109, 2, 114, 97, 115, 0, 1, 101, 2, 103, 97, 114, 0, 1, 101, 109, 2,
+			97, 108, 106, 0, 1, 101, 109, 111, 114, 100, 2, 97, 114, 0, 1, 101, 110, 101, 118, 2, 105, 103, 0, 1, 101, 112, 2, 114, 111, 0,
+			1, 101, 114, 2, 97, 0, 1, 105, 2, 111, 108, 0, 1, 105, 99, 97, 2, 111, 115, 101, 0, 1, 105, 115, 2, 101, 110, 116, 0, 1,
+			105, 118, 101, 2, 101, 110, 0, 1, 108, 2, 97, 107, 105, 110, 0, 1, 108, 2, 105, 103, 0, 1, 108, 2, 117, 103, 0, 1, 108, 97,
+			2, 114, 105, 103, 0, 1, 108, 97, 109, 114, 111, 102, 2, 101, 0, 1, 108, 97, 115, 2, 111, 0, 1, 108, 101, 104, 2, 105, 0, 1,
+			108, 101, 116, 114, 117, 116, 2, 117, 101, 0, 1, 108, 101, 118, 2, 114, 101, 106, 0, 1, 108, 105, 2, 114, 105, 110, 103, 0, 1, 108,
+			105, 98, 2, 195, 166, 107, 0, 1, 108, 105, 100, 2, 111, 0, 1, 108, 105, 107, 2, 114, 101, 0, 1, 108, 108, 117, 98, 2, 111, 0,
+			1, 108, 111, 2, 105, 110, 103, 0, 1, 108, 111, 98, 0, 1, 108, 111, 115, 2, 195, 166, 107, 0, 1, 110, 17, 65, 2, 114, 17, 65,
+			0, 1, 110, 17, 65, 2, 114, 101, 0, 1, 110, 105, 2, 117, 0, 1, 110, 105, 2, 117, 17, 67, 0, 1, 110, 111, 104, 2, 117, 114,
+			97, 0, 1, 111, 98, 2, 101, 103, 97, 0, 1, 111, 109, 2, 101, 108, 0, 1, 111, 109, 2, 101, 109, 0, 1, 111, 109, 2, 101, 114,
+			110, 0, 1, 114, 101, 118, 2, 101, 110, 0, 1, 114, 105, 2, 32, 0, 1, 114, 111, 2, 101, 108, 0, 1, 114, 111, 2, 101, 110, 0,
+			1, 114, 111, 2, 101, 114, 0, 1, 114, 111, 106, 104, 0, 1, 114, 111, 107, 97, 0, 1, 114, 111, 107, 101, 114, 0, 1, 114, 166, 195,
+			102, 2, 101, 17, 67, 0, 1, 114, 166, 195, 108, 2, 32, 0, 1, 114, 166, 195, 118, 2, 105, 0, 1, 117, 98, 2, 97, 112, 101, 115,
+			116, 0, 1, 117, 108, 107, 2, 101, 114, 101, 0, 1, 117, 109, 114, 101, 98, 2, 97, 0, 1, 121, 111, 108, 102, 0, 1, 165, 195, 2,
+			97, 110, 0, 1, 166, 195, 2, 114, 117, 0, 1, 166, 195, 112, 2, 97, 0, 2, 97, 103, 0, 2, 101, 108, 101, 0, 2, 101, 109, 101,
+			110, 115, 0, 2, 105, 0, 2, 111, 98, 108, 0, 2, 111, 107, 0, 2, 111, 108, 108, 0, 2, 111, 109, 0, 2, 111, 110, 110, 97, 0,
+			2, 114, 97, 109, 97, 0, 2, 114, 101, 118, 0, 2, 114, 121, 115, 0, 2, 117, 102, 116, 101, 0, 2, 117, 115, 0, 2, 195, 165, 115,
+			101, 0, 2, 195, 184, 109, 0, 2, 195, 184, 114, 0, 8, 97, 2, 114, 0, 8, 105, 2, 101, 0, 8, 105, 2, 195, 169, 0, 8, 108,
+			105, 104, 2, 97, 0, 39, 0, 100, 1, 105, 109, 2, 97, 0, 100, 104, 1, 117, 98, 0, 100, 104, 1, 117, 98, 2, 105, 115, 116, 0,
+			4, 1, 110, 101, 112, 2, 117, 108, 3, 72, 6, 0, 1, 111, 109, 2, 117, 108, 0, 101, 1, 105, 107, 114, 111, 3, 72, 6, 36, 0,
+			101, 110, 100, 114, 111, 110, 3, 72, 6, 36, 50, 72, 34, 114, 50, 0, 105, 1, 117, 111, 104, 2, 110, 105, 3, 72, 6, 37, 0, 111,
+			115, 1, 101, 110, 114, 117, 111, 116, 3, 72, 6, 39, 0, 4, 117, 1, 97, 105, 118, 2, 107, 116, 3, 72, 6, 113, 0, 117, 8, 111,
+			114, 112, 2, 107, 116, 0, 111, 114, 1, 97, 118, 108, 97, 115, 3, 72, 6, 113, 12, 0, 114, 101, 100, 8, 108, 105, 109, 3, 72, 34,
+			109, 72, 0, 111, 119, 110, 3, 72, 35, 58, 50, 0, 111, 119, 110, 108, 111, 97, 100, 3, 72, 35, 58, 50, 55, 39, 58, 72, 0, 111,
+			117, 98, 116, 102, 105, 114, 101, 3, 72, 35, 58, 72, 83, 35, 57, 114, 0, 4, 101, 1, 105, 117, 103, 2, 110, 3, 72, 36, 0, 101,
+			1, 121, 98, 2, 108, 0, 101, 116, 101, 110, 116, 101, 3, 72, 36, 47, 6, 112, 12, 68, 47, 0, 101, 116, 114, 111, 105, 116, 3, 72,
+			36, 47, 34, 6, 114, 57, 47, 0, 4, 105, 99, 107, 105, 101, 3, 72, 36, 49, 37, 0, 105, 99, 107, 121, 0, 105, 103, 1, 114, 166,
+			195, 102, 3, 72, 37, 0, 101, 97, 110, 8, 3, 72, 37, 12, 50, 0, 111, 114, 97, 100, 111, 1, 108, 101, 3, 72, 39, 34, 6, 112,
+			72, 39, 0, 111, 117, 103, 104, 110, 117, 116, 3, 72, 39, 58, 50, 114, 72, 0, 117, 8, 111, 114, 112, 2, 107, 116, 105, 118, 3, 72,
+			40, 0, 114, 105, 118, 101, 8, 2, 45, 3, 72, 51, 112, 57, 84, 0, 4, 117, 99, 101, 114, 1, 111, 114, 112, 2, 32, 3, 72, 57,
+			6, 40, 89, 114, 0, 117, 99, 101, 114, 1, 111, 114, 112, 2, 97, 115, 115, 105, 115, 116, 101, 110, 116, 0, 101, 119, 101, 121, 3, 72,
+			57, 40, 37, 0, 119, 105, 103, 104, 116, 3, 72, 58, 35, 57, 47, 0, 100, 115, 1, 111, 3, 72, 89, 0, 115, 116, 111, 110, 101, 1,
+			97, 108, 103, 3, 72, 89, 47, 115, 58, 50, 0, 101, 98, 98, 105, 101, 3, 72, 109, 71, 37, 0, 97, 114, 121, 108, 3, 72, 110, 34,
+			108, 59, 0, 97, 105, 113, 117, 105, 114, 105, 3, 72, 110, 49, 13, 34, 37, 0, 97, 114, 108, 101, 110, 101, 3, 72, 112, 55, 6, 37,
+			50, 0, 97, 118, 8, 2, 32, 3, 72, 112, 58, 0, 97, 118, 115, 8, 2, 32, 3, 72, 112, 58, 89, 0, 117, 110, 100, 1, 101, 114,
+			2, 97, 110, 116, 3, 72, 113, 50, 72, 0, 101, 114, 1, 105, 117, 103, 3, 72, 114, 0, 97, 119, 115, 111, 110, 3, 72, 114, 12, 89,
+			108, 50, 0, 111, 99, 8, 2, 32, 3, 72, 114, 49, 0, 111, 117, 98, 108, 101, 3, 72, 114, 71, 13, 55, 0, 111, 117, 98, 108, 101,
+			116, 111, 110, 3, 72, 114, 71, 13, 55, 47, 114, 50, 0, 111, 100, 103, 101, 3, 72, 114, 75, 0, 117, 116, 99, 104, 3, 72, 114, 76,
+			0, 111, 114, 101, 101, 110, 8, 3, 72, 115, 34, 6, 37, 50, 0, 117, 98, 111, 105, 115, 3, 72, 116, 71, 58, 6, 112, 0, 117, 107,
+			101, 8, 3, 75, 40, 12, 49, 0, 101, 117, 99, 101, 3, 75, 40, 12, 89, 0, 4, 1, 17, 65, 3, 86, 0, 1, 17, 65, 2, 17,
+			67, 0, 1, 17, 65, 2, 101, 115, 0, 1, 17, 65, 2, 105, 103, 0, 1, 17, 65, 18, 74, 2, 116, 97, 0, 1, 97, 98, 2, 101,
+			0, 1, 100, 101, 110, 2, 115, 0, 1, 101, 110, 2, 115, 116, 0, 1, 101, 114, 102, 2, 115, 0, 1, 105, 2, 116, 105, 12, 0, 1,
+			105, 98, 2, 101, 0, 1, 105, 112, 115, 2, 115, 116, 101, 103, 0, 1, 105, 114, 2, 101, 0, 1, 105, 114, 116, 115, 2, 115, 0, 1,
+			105, 116, 2, 101, 0, 1, 105, 116, 2, 115, 12, 0, 1, 105, 118, 2, 101, 114, 0, 1, 111, 102, 2, 17, 67, 12, 12, 0, 1, 111,
+			109, 2, 115, 116, 12, 0, 1, 117, 2, 105, 0, 1, 117, 2, 115, 116, 121, 114, 12, 0, 1, 117, 98, 2, 115, 12, 12, 0, 1, 121,
+			2, 115, 116, 97, 116, 12, 0, 1, 121, 98, 2, 101, 108, 105, 103, 0, 1, 121, 108, 0, 1, 166, 195, 114, 2, 115, 101, 108, 0, 1,
+			184, 195, 2, 115, 12, 12, 0, 1, 184, 195, 100, 2, 12, 0, 8, 117, 2, 12, 12, 0, 100, 1, 17, 65, 0, 100, 1, 17, 65, 2,
+			17, 65, 12, 0, 101, 1, 97, 2, 108, 3, 86, 13, 0, 105, 1, 17, 65, 2, 115, 107, 3, 86, 37, 0, 4, 100, 1, 101, 109, 2,
+			101, 108, 3, 86, 72, 0, 100, 1, 117, 2, 97, 110, 110, 0, 100, 1, 117, 2, 195, 184, 12, 0, 100, 1, 117, 103, 2, 12, 12, 0,
+			100, 1, 117, 107, 115, 2, 117, 12, 0, 100, 1, 117, 108, 2, 111, 118, 0, 100, 1, 121, 108, 2, 195, 166, 109, 112, 0, 115, 1, 17,
+			65, 2, 195, 166, 116, 3, 86, 89, 0, 4, 101, 1, 17, 65, 2, 32, 3, 86, 108, 0, 101, 1, 97, 2, 17, 67, 114, 0, 101, 1,
+			121, 0, 101, 1, 121, 98, 100, 110, 105, 0, 101, 1, 166, 195, 2, 108, 12, 0, 101, 1, 121, 115, 2, 110, 103, 3, 86, 109, 0, 101,
+			114, 1, 121, 2, 32, 3, 86, 114, 0, 4, 115, 1, 17, 65, 2, 101, 108, 3, 89, 0, 115, 1, 97, 108, 112, 0, 115, 1, 97, 112,
+			115, 2, 101, 114, 0, 115, 1, 97, 114, 107, 0, 115, 1, 97, 116, 115, 0, 115, 1, 101, 114, 102, 108, 0, 115, 1, 105, 104, 0, 115,
+			1, 105, 104, 2, 101, 0, 115, 1, 105, 112, 0, 115, 1, 105, 114, 0, 115, 1, 117, 109, 115, 0, 115, 1, 117, 112, 0, 115, 1, 117,
+			114, 116, 115, 0, 115, 1, 117, 116, 2, 101, 0, 115, 1, 117, 116, 115, 0, 115, 1, 121, 0, 115, 1, 105, 116, 2, 110, 111, 107, 3,
+			89, 6, 0, 115, 101, 108, 1, 117, 108, 112, 3, 89, 59, 0, 101, 1, 114, 166, 195, 103, 3, 114, 0, 7, 6, 101, 0, 4, 1, 99,
+			97, 102, 114, 101, 116, 110, 105, 3, 0, 4, 1, 99, 97, 112, 2, 109, 97, 107, 101, 114, 3, 0, 4, 1, 99, 97, 112, 114, 111, 116,
+			111, 109, 3, 0, 4, 1, 99, 101, 101, 108, 102, 3, 0, 4, 1, 99, 105, 112, 115, 111, 104, 2, 32, 3, 0, 4, 1, 99, 105, 116,
+			102, 111, 115, 3, 0, 4, 1, 99, 105, 117, 106, 3, 0, 4, 1, 99, 105, 118, 114, 101, 115, 2, 102, 97, 103, 3, 0, 4, 1, 99,
+			105, 118, 114, 101, 115, 2, 109, 101, 100, 3, 0, 4, 1, 99, 105, 118, 114, 101, 115, 2, 115, 101, 107, 116, 111, 114, 3, 0, 4, 1,
+			99, 105, 118, 114, 101, 115, 2, 115, 116, 97, 116, 105, 111, 110, 3, 0, 4, 1, 99, 105, 118, 114, 101, 115, 2, 121, 100, 101, 108, 115,
+			101, 3, 0, 4, 1, 99, 110, 97, 108, 101, 101, 114, 102, 3, 0, 4, 1, 99, 110, 101, 112, 3, 0, 4, 1, 99, 110, 101, 118, 111,
+			114, 112, 3, 0, 4, 1, 99, 117, 97, 115, 3, 0, 4, 1, 99, 121, 111, 106, 3, 0, 4, 1, 105, 112, 117, 111, 114, 103, 3, 0,
+			4, 1, 105, 114, 98, 2, 102, 3, 0, 4, 1, 108, 108, 2, 100, 101, 3, 0, 4, 1, 116, 115, 97, 116, 117, 97, 98, 2, 110, 3,
+			0, 4, 8, 99, 105, 102, 102, 111, 2, 32, 3, 0, 4, 8, 105, 110, 3, 0, 4, 8, 105, 110, 97, 106, 3, 0, 8, 105, 116, 114,
+			97, 3, 0, 1, 110, 114, 2, 100, 12, 3, 4, 36, 0, 1, 115, 2, 114, 118, 105, 99, 101, 101, 102, 116, 101, 114, 115, 121, 110, 3,
+			6, 13, 0, 8, 114, 114, 97, 2, 115, 116, 3, 6, 35, 0, 4, 106, 1, 105, 103, 121, 104, 2, 110, 101, 3, 6, 35, 57, 0, 106,
+			1, 108, 97, 103, 0, 106, 8, 98, 101, 108, 112, 2, 101, 114, 0, 4, 1, 99, 101, 100, 2, 109, 98, 101, 114, 3, 6, 36, 0, 1,
+			99, 114, 101, 109, 2, 100, 101, 115, 0, 1, 100, 111, 98, 2, 103, 97, 0, 1, 100, 117, 116, 115, 2, 114, 101, 0, 1, 107, 115, 111,
+			109, 0, 1, 107, 115, 165, 195, 109, 2, 32, 0, 1, 108, 97, 100, 103, 97, 109, 2, 110, 0, 1, 108, 108, 97, 2, 103, 114, 111, 0,
+			1, 109, 97, 110, 116, 101, 105, 118, 2, 115, 101, 114, 0, 1, 109, 103, 114, 111, 98, 2, 115, 116, 101, 114, 0, 1, 109, 105, 107, 114,
+			97, 2, 100, 101, 115, 0, 1, 109, 114, 117, 111, 103, 0, 1, 110, 97, 118, 105, 100, 2, 115, 101, 114, 0, 1, 110, 101, 118, 2, 100,
+			105, 103, 0, 1, 110, 105, 107, 2, 115, 0, 1, 110, 110, 97, 118, 97, 104, 2, 115, 101, 114, 0, 1, 110, 114, 117, 116, 0, 1, 112,
+			117, 107, 2, 12, 0, 1, 112, 117, 111, 116, 0, 1, 114, 97, 108, 2, 100, 111, 0, 1, 114, 107, 115, 105, 100, 2, 116, 12, 0, 1,
+			114, 116, 115, 107, 101, 2, 109, 0, 1, 114, 117, 114, 111, 102, 2, 110, 101, 0, 1, 114, 121, 116, 115, 2, 110, 0, 1, 115, 101, 114,
+			2, 114, 118, 101, 0, 1, 116, 101, 105, 114, 97, 118, 0, 1, 116, 105, 109, 111, 107, 0, 1, 116, 111, 114, 112, 2, 115, 101, 0, 1,
+			116, 112, 101, 115, 2, 109, 98, 101, 114, 0, 1, 116, 115, 107, 101, 2, 114, 110, 0, 1, 118, 111, 110, 2, 109, 98, 101, 114, 0, 8,
+			98, 100, 184, 195, 114, 2, 100, 101, 0, 8, 98, 115, 97, 2, 115, 116, 0, 8, 100, 105, 0, 8, 100, 105, 118, 105, 100, 2, 110, 116,
+			101, 0, 8, 100, 111, 114, 2, 111, 0, 8, 102, 105, 110, 97, 109, 2, 115, 116, 0, 8, 103, 101, 114, 2, 115, 116, 0, 8, 108, 101,
+			2, 118, 0, 8, 108, 101, 99, 2, 98, 101, 114, 0, 8, 108, 108, 111, 107, 2, 103, 97, 0, 8, 108, 111, 109, 2, 115, 116, 0, 8,
+			109, 97, 114, 107, 97, 115, 2, 110, 116, 101, 0, 8, 109, 97, 116, 115, 101, 116, 2, 110, 116, 101, 0, 8, 109, 105, 2, 110, 115, 12,
+			0, 8, 109, 105, 103, 101, 114, 2, 110, 116, 101, 0, 8, 110, 103, 97, 109, 2, 116, 0, 8, 112, 114, 111, 116, 2, 100, 111, 0, 8,
+			114, 105, 2, 110, 101, 0, 8, 115, 121, 102, 109, 101, 2, 109, 0, 8, 116, 97, 107, 2, 100, 101, 114, 0, 8, 116, 110, 101, 114, 97,
+			112, 2, 115, 0, 8, 116, 111, 114, 112, 2, 115, 116, 0, 8, 116, 116, 97, 2, 115, 116, 0, 103, 1, 116, 115, 101, 98, 2, 32, 0,
+			103, 1, 116, 115, 101, 98, 2, 101, 116, 32, 0, 115, 1, 99, 99, 117, 0, 101, 2, 114, 3, 6, 36, 12, 0, 101, 1, 116, 105, 109,
+			111, 107, 2, 110, 3, 6, 36, 13, 0, 114, 1, 98, 105, 2, 105, 97, 12, 3, 6, 36, 34, 0, 4, 110, 101, 1, 108, 114, 111, 102,
+			3, 6, 36, 50, 13, 0, 110, 101, 1, 114, 117, 2, 32, 116, 97, 110, 107, 101, 114, 0, 4, 110, 101, 1, 108, 114, 97, 109, 3, 6,
+			36, 50, 108, 0, 110, 101, 1, 109, 114, 111, 102, 32, 116, 97, 0, 110, 101, 8, 108, 101, 104, 0, 4, 103, 1, 116, 97, 114, 116, 115,
+			2, 32, 3, 6, 36, 57, 0, 103, 8, 108, 108, 111, 107, 2, 101, 0, 4, 109, 1, 10, 2, 32, 28, 33, 12, 3, 6, 36, 65, 0,
 			109, 1, 10, 2, 101, 114, 28, 33, 12, 0, 109, 1, 10, 2, 101, 116, 28, 33, 12, 0, 109, 1, 10, 2, 115, 28, 33, 12, 0, 100,
-			1, 108, 111, 116, 2, 111, 3, 6, 114, 72, 0, 100, 105, 101, 1, 109, 3, 6, 114, 72, 57, 14, 0, 100, 105, 101, 114, 1, 109, 3,
-			6, 114, 72, 57, 109, 0, 101, 114, 2, 12, 3, 6, 114, 109, 0, 111, 8, 100, 111, 114, 3, 6, 114, 124, 0, 4, 1, 98, 111, 114,
-			2, 114, 116, 111, 3, 6, 115, 0, 1, 108, 97, 112, 2, 114, 109, 111, 0, 8, 102, 118, 108, 97, 104, 2, 109, 115, 0, 8, 108, 105,
-			100, 2, 109, 109, 97, 0, 8, 114, 105, 2, 110, 101, 12, 12, 0, 8, 105, 110, 2, 99, 101, 3, 6, 115, 12, 0, 114, 1, 98, 111,
-			114, 2, 116, 97, 3, 6, 115, 34, 0, 116, 116, 101, 1, 100, 111, 3, 6, 115, 47, 0, 110, 100, 8, 107, 114, 101, 2, 101, 32, 12,
-			12, 3, 6, 115, 50, 0, 110, 100, 101, 1, 118, 97, 108, 2, 108, 3, 6, 115, 50, 14, 0, 105, 108, 108, 1, 118, 101, 114, 2, 101,
-			3, 6, 115, 55, 57, 0, 108, 112, 104, 105, 1, 100, 97, 108, 105, 104, 112, 2, 97, 3, 6, 115, 55, 83, 57, 0, 115, 101, 1, 114,
-			10, 2, 28, 33, 3, 6, 115, 89, 14, 0, 115, 101, 1, 114, 10, 2, 114, 28, 33, 3, 6, 115, 89, 108, 0, 4, 1, 98, 97, 98,
-			2, 116, 116, 101, 3, 6, 116, 0, 1, 98, 101, 108, 2, 110, 100, 105, 103, 0, 1, 98, 101, 114, 2, 107, 107, 97, 0, 1, 99, 98,
-			97, 2, 115, 0, 1, 99, 101, 100, 2, 109, 98, 101, 114, 0, 1, 99, 101, 114, 2, 115, 0, 1, 99, 111, 114, 112, 2, 115, 0, 1,
-			99, 120, 101, 2, 115, 0, 1, 100, 114, 97, 2, 110, 110, 101, 114, 0, 1, 107, 115, 117, 109, 2, 116, 12, 0, 1, 108, 97, 107, 2,
-			99, 104, 101, 0, 1, 108, 97, 118, 2, 110, 99, 105, 97, 0, 1, 109, 103, 114, 111, 98, 2, 115, 116, 101, 114, 0, 1, 110, 97, 118,
-			2, 115, 115, 97, 0, 1, 112, 97, 100, 117, 98, 2, 115, 116, 0, 1, 114, 97, 108, 2, 100, 111, 0, 1, 115, 115, 97, 107, 2, 116,
+			1, 108, 111, 116, 2, 111, 3, 6, 36, 72, 0, 100, 105, 101, 1, 109, 3, 6, 36, 72, 57, 108, 0, 100, 105, 101, 114, 1, 109, 3,
+			6, 36, 72, 57, 114, 0, 100, 101, 110, 1, 110, 114, 111, 102, 3, 6, 36, 86, 108, 50, 0, 115, 116, 101, 114, 1, 107, 114, 111, 3,
+			6, 36, 89, 47, 114, 0, 115, 101, 1, 10, 2, 28, 33, 3, 6, 36, 89, 108, 0, 115, 101, 1, 10, 2, 114, 28, 33, 3, 6, 36,
+			89, 114, 0, 115, 115, 105, 111, 110, 101, 108, 1, 102, 111, 114, 112, 3, 6, 36, 91, 39, 50, 36, 55, 0, 101, 1, 108, 104, 116, 97,
+			107, 2, 110, 3, 6, 37, 12, 0, 101, 102, 101, 1, 107, 3, 6, 37, 12, 83, 0, 97, 117, 3, 6, 39, 0, 4, 1, 98, 101, 108,
+			2, 110, 100, 105, 103, 3, 6, 109, 0, 1, 98, 101, 114, 2, 107, 107, 97, 0, 1, 98, 111, 114, 2, 114, 116, 111, 0, 1, 99, 98,
+			97, 2, 115, 0, 1, 99, 101, 114, 2, 115, 0, 1, 99, 111, 114, 112, 2, 115, 0, 1, 99, 120, 101, 2, 115, 0, 1, 100, 114, 97,
+			2, 110, 110, 101, 114, 0, 1, 107, 115, 117, 109, 2, 116, 12, 0, 1, 108, 97, 112, 2, 114, 109, 111, 0, 1, 108, 97, 118, 2, 110,
+			99, 105, 97, 0, 1, 110, 97, 118, 2, 115, 115, 97, 0, 1, 112, 97, 100, 117, 98, 2, 115, 116, 0, 1, 115, 115, 97, 107, 2, 116,
 			116, 101, 0, 1, 115, 117, 109, 2, 101, 116, 0, 1, 115, 117, 109, 2, 117, 109, 0, 1, 116, 107, 110, 97, 115, 2, 108, 109, 115, 105,
-			108, 100, 0, 1, 116, 110, 105, 2, 114, 110, 12, 0, 1, 116, 112, 101, 115, 2, 109, 98, 101, 114, 0, 1, 116, 115, 107, 101, 2, 114,
-			110, 0, 1, 118, 100, 114, 111, 110, 2, 115, 116, 0, 1, 118, 100, 121, 115, 2, 115, 116, 0, 1, 118, 105, 100, 2, 114, 115, 101, 0,
-			1, 118, 108, 121, 115, 2, 115, 116, 101, 114, 0, 1, 118, 111, 110, 2, 109, 98, 101, 114, 0, 1, 122, 97, 103, 2, 108, 108, 101, 0,
-			8, 98, 115, 97, 2, 115, 116, 0, 8, 99, 99, 97, 2, 112, 116, 0, 8, 99, 101, 114, 2, 112, 116, 0, 8, 99, 110, 105, 2, 115,
-			116, 0, 8, 99, 110, 111, 107, 2, 112, 116, 0, 8, 99, 110, 111, 107, 2, 114, 110, 0, 8, 102, 105, 110, 97, 109, 2, 115, 116, 0,
-			8, 102, 110, 111, 107, 2, 116, 116, 105, 0, 8, 103, 101, 114, 2, 115, 116, 0, 8, 107, 97, 114, 2, 116, 12, 0, 8, 107, 97, 114,
-			2, 116, 116, 12, 0, 8, 107, 114, 111, 2, 115, 116, 0, 8, 108, 102, 101, 114, 2, 107, 115, 0, 8, 108, 108, 97, 98, 2, 116, 21,
-			0, 8, 108, 108, 97, 98, 32, 101, 100, 101, 115, 110, 97, 100, 2, 116, 0, 8, 108, 108, 97, 98, 32, 101, 115, 110, 97, 100, 2, 116,
-			0, 8, 108, 108, 97, 98, 32, 110, 101, 2, 116, 0, 8, 108, 108, 97, 98, 32, 114, 101, 115, 110, 97, 100, 2, 116, 0, 8, 108, 108,
-			97, 98, 32, 114, 111, 118, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 101, 100, 110, 101, 104, 2, 116, 0, 8, 108, 108, 97, 98, 32,
-			115, 101, 114, 101, 100, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 101, 114, 101, 106, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 101,
-			114, 111, 118, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 110, 97, 104, 2, 116, 0, 8, 108, 111, 109, 2, 115, 116, 0, 8, 108, 112,
-			109, 111, 107, 2, 107, 115, 0, 8, 109, 101, 115, 2, 115, 116, 101, 114, 0, 8, 109, 103, 114, 111, 98, 2, 115, 116, 0, 8, 115, 101,
-			114, 112, 2, 110, 110, 105, 110, 103, 0, 8, 115, 107, 101, 2, 109, 112, 101, 108, 0, 8, 116, 110, 97, 2, 110, 110, 101, 0, 8, 116,
-			111, 114, 103, 2, 115, 0, 8, 116, 111, 114, 112, 2, 115, 116, 0, 8, 116, 116, 97, 2, 115, 116, 0, 114, 1, 112, 117, 115, 2, 108,
-			97, 116, 105, 118, 3, 6, 116, 34, 0, 122, 1, 112, 97, 114, 116, 3, 6, 116, 47, 89, 0, 110, 101, 1, 114, 105, 115, 2, 12, 3,
-			6, 116, 50, 14, 0, 110, 100, 101, 1, 100, 105, 118, 105, 100, 3, 6, 116, 50, 72, 14, 0, 110, 105, 117, 109, 1, 108, 108, 105, 109,
-			3, 6, 116, 50, 111, 126, 65, 0, 4, 107, 2, 116, 32, 12, 3, 6, 116, 81, 0, 107, 2, 116, 101, 32, 12, 0, 107, 2, 116, 101,
-			110, 32, 12, 0, 107, 2, 116, 101, 110, 115, 32, 12, 0, 107, 2, 116, 101, 114, 32, 12, 0, 107, 8, 102, 101, 100, 2, 116, 0, 107,
-			8, 102, 102, 97, 2, 116, 0, 107, 8, 102, 102, 101, 2, 116, 32, 0, 107, 8, 102, 110, 111, 107, 2, 116, 0, 107, 8, 102, 114, 101,
-			112, 2, 116, 0, 107, 8, 102, 166, 195, 114, 112, 2, 116, 0, 107, 8, 106, 98, 111, 2, 116, 0, 107, 8, 106, 98, 117, 115, 2, 116,
-			0, 107, 8, 106, 111, 114, 112, 2, 116, 0, 107, 8, 108, 97, 105, 100, 2, 116, 0, 107, 8, 108, 108, 101, 116, 110, 105, 2, 116, 0,
-			107, 8, 108, 108, 111, 107, 2, 116, 32, 0, 107, 8, 108, 108, 111, 107, 2, 116, 101, 0, 107, 8, 108, 111, 105, 99, 111, 115, 2, 116,
-			0, 107, 8, 108, 111, 105, 100, 105, 2, 116, 0, 107, 8, 112, 115, 97, 2, 116, 0, 107, 8, 112, 115, 101, 100, 2, 116, 0, 107, 8,
-			112, 115, 101, 114, 2, 116, 0, 107, 8, 112, 115, 111, 114, 112, 2, 116, 0, 107, 8, 112, 115, 117, 115, 2, 116, 0, 107, 8, 115, 110,
-			105, 2, 116, 0, 107, 8, 116, 105, 107, 114, 97, 2, 116, 0, 115, 116, 101, 114, 1, 107, 114, 111, 3, 6, 116, 89, 47, 108, 0, 115,
-			104, 1, 100, 97, 108, 103, 110, 97, 98, 3, 6, 116, 91, 0, 115, 115, 105, 111, 110, 101, 108, 1, 102, 111, 114, 112, 3, 6, 116, 91,
-			124, 50, 116, 55, 0, 4, 1, 106, 102, 118, 108, 97, 104, 2, 114, 100, 115, 3, 6, 118, 0, 1, 115, 101, 114, 2, 114, 118, 101, 0,
-			4, 1, 114, 112, 121, 99, 2, 115, 3, 6, 119, 0, 8, 114, 114, 97, 2, 115, 116, 0, 107, 8, 114, 114, 111, 107, 2, 116, 3, 6,
-			119, 81, 0, 115, 115, 101, 1, 114, 10, 2, 28, 33, 3, 6, 119, 89, 14, 0, 115, 115, 101, 1, 114, 10, 2, 114, 28, 33, 3, 6,
-			119, 89, 108, 0, 4, 1, 114, 97, 109, 2, 110, 103, 3, 6, 120, 0, 1, 114, 105, 107, 105, 116, 115, 2, 110, 100, 100, 114, 101, 110,
-			103, 0, 1, 114, 114, 111, 102, 2, 116, 110, 105, 110, 103, 12, 0, 8, 114, 103, 101, 114, 2, 115, 0, 8, 114, 103, 110, 111, 107, 2,
-			115, 0, 8, 114, 112, 115, 107, 101, 2, 115, 0, 107, 1, 114, 2, 116, 12, 3, 6, 120, 81, 0, 1, 118, 111, 114, 112, 2, 110, 99,
-			101, 3, 6, 121, 12, 0, 97, 117, 2, 12, 3, 6, 124, 0, 117, 114, 1, 116, 3, 6, 132, 12, 34, 0, 117, 116, 8, 112, 97, 114,
-			101, 116, 3, 6, 132, 58, 72, 0, 4, 106, 1, 105, 103, 121, 104, 2, 110, 101, 3, 6, 136, 0, 106, 1, 108, 97, 103, 0, 106, 8,
-			98, 101, 108, 112, 2, 101, 114, 0, 4, 1, 110, 105, 108, 112, 105, 99, 115, 105, 100, 21, 2, 114, 101, 3, 7, 114, 0, 8, 116, 115,
-			121, 115, 2, 109, 21, 0, 115, 115, 101, 1, 104, 99, 10, 2, 28, 33, 3, 7, 115, 89, 0, 115, 115, 101, 1, 10, 2, 28, 33, 3,
-			7, 116, 89, 14, 0, 115, 115, 101, 1, 10, 2, 114, 28, 33, 3, 7, 116, 89, 108, 0, 8, 108, 108, 105, 116, 115, 2, 98, 101, 110,
-			3, 8, 6, 36, 0, 8, 108, 108, 105, 108, 3, 13, 11, 0, 4, 97, 117, 2, 107, 116, 105, 3, 13, 121, 40, 0, 97, 117, 2, 116,
-			111, 0, 4, 1, 18, 73, 2, 32, 3, 14, 0, 1, 21, 2, 109, 101, 110, 116, 0, 1, 21, 2, 115, 32, 0, 1, 21, 2, 115, 116,
-			32, 12, 0, 1, 21, 2, 115, 116, 101, 32, 12, 0, 1, 98, 97, 2, 21, 0, 1, 98, 97, 118, 104, 2, 104, 97, 114, 32, 0, 1,
-			98, 98, 2, 21, 0, 1, 98, 98, 111, 110, 115, 0, 1, 98, 105, 98, 2, 108, 0, 1, 98, 109, 111, 98, 2, 21, 0, 1, 98, 109,
-			111, 98, 2, 114, 21, 0, 1, 98, 111, 2, 21, 0, 1, 98, 111, 114, 2, 21, 0, 1, 98, 117, 114, 2, 21, 0, 1, 98, 165, 195,
-			2, 110, 0, 1, 98, 166, 195, 108, 2, 21, 12, 0, 1, 98, 184, 195, 2, 21, 0, 1, 99, 2, 32, 0, 1, 99, 2, 114, 105, 110,
-			0, 1, 99, 97, 112, 114, 111, 116, 111, 109, 2, 110, 0, 1, 99, 105, 118, 2, 21, 0, 1, 99, 114, 97, 102, 2, 21, 0, 1, 99,
-			121, 111, 106, 2, 115, 0, 1, 100, 2, 115, 32, 0, 1, 100, 97, 107, 115, 2, 21, 0, 1, 100, 97, 108, 102, 2, 21, 0, 1, 100,
-			100, 101, 107, 2, 108, 0, 1, 100, 100, 105, 109, 2, 108, 0, 1, 100, 100, 111, 2, 21, 0, 1, 100, 101, 2, 45, 0, 1, 100, 101,
-			98, 0, 1, 100, 101, 118, 2, 21, 0, 1, 100, 105, 98, 2, 21, 0, 1, 100, 105, 108, 2, 21, 0, 1, 100, 105, 109, 2, 21, 12,
-			0, 1, 100, 105, 115, 2, 21, 12, 0, 1, 100, 106, 184, 195, 2, 21, 0, 1, 100, 108, 97, 114, 107, 115, 2, 21, 0, 1, 100, 108,
-			105, 2, 21, 0, 1, 100, 108, 111, 2, 21, 0, 1, 100, 108, 121, 2, 21, 0, 1, 100, 108, 121, 104, 2, 115, 0, 1, 100, 108, 166,
-			195, 106, 115, 2, 110, 0, 1, 100, 110, 2, 21, 0, 1, 100, 110, 111, 2, 21, 0, 1, 100, 110, 117, 2, 21, 12, 0, 1, 100, 111,
-			2, 21, 0, 1, 100, 114, 97, 103, 2, 114, 111, 98, 101, 0, 1, 100, 117, 2, 21, 12, 0, 1, 100, 121, 2, 21, 0, 1, 100, 121,
-			2, 21, 12, 12, 0, 1, 100, 165, 195, 2, 21, 12, 12, 0, 1, 100, 166, 195, 2, 21, 0, 1, 100, 184, 195, 2, 21, 12, 12, 0,
-			1, 102, 101, 114, 2, 114, 101, 110, 0, 1, 102, 102, 97, 2, 21, 0, 1, 102, 102, 105, 100, 2, 114, 101, 110, 0, 1, 102, 102, 111,
-			2, 110, 0, 1, 102, 102, 184, 195, 98, 2, 108, 21, 0, 1, 102, 108, 101, 2, 110, 98, 101, 110, 0, 1, 102, 111, 106, 115, 2, 108,
-			0, 1, 103, 97, 100, 0, 1, 103, 101, 108, 0, 1, 103, 103, 121, 2, 21, 12, 0, 1, 103, 108, 184, 195, 2, 21, 0, 1, 103, 110,
-			97, 2, 21, 0, 1, 103, 110, 101, 2, 21, 12, 0, 1, 103, 110, 111, 2, 21, 0, 1, 103, 110, 117, 2, 21, 0, 1, 103, 111, 108,
-			107, 0, 1, 103, 116, 110, 184, 195, 114, 2, 110, 12, 0, 1, 103, 117, 2, 21, 0, 1, 103, 121, 115, 2, 12, 12, 0, 1, 103, 166,
-			195, 2, 21, 0, 1, 103, 184, 195, 2, 21, 0, 1, 104, 99, 2, 110, 32, 12, 12, 0, 1, 104, 99, 97, 112, 97, 2, 21, 0, 1,
-			105, 100, 117, 116, 115, 2, 21, 0, 1, 105, 114, 97, 110, 97, 107, 2, 21, 0, 1, 105, 114, 166, 195, 2, 21, 0, 1, 105, 118, 2,
-			21, 0, 1, 106, 101, 2, 21, 0, 1, 106, 101, 108, 2, 21, 0, 1, 106, 108, 17, 65, 2, 21, 0, 1, 106, 115, 116, 117, 2, 21,
-			0, 1, 106, 184, 195, 2, 21, 0, 1, 107, 107, 2, 21, 0, 1, 107, 107, 97, 106, 2, 21, 12, 0, 1, 107, 107, 105, 116, 2, 21,
-			12, 12, 12, 12, 12, 0, 1, 107, 107, 117, 0, 1, 107, 107, 166, 195, 2, 110, 101, 116, 32, 0, 1, 107, 108, 97, 2, 21, 12, 0,
-			1, 107, 108, 105, 2, 21, 0, 1, 107, 108, 111, 2, 21, 0, 1, 107, 108, 166, 195, 109, 0, 1, 107, 110, 97, 2, 21, 0, 1, 107,
-			114, 105, 2, 21, 0, 1, 107, 114, 121, 2, 21, 0, 1, 107, 114, 166, 195, 2, 21, 0, 1, 107, 114, 184, 195, 2, 21, 0, 1, 107,
-			114, 184, 195, 2, 110, 0, 1, 107, 115, 97, 0, 1, 107, 115, 100, 110, 97, 104, 2, 21, 0, 1, 107, 115, 101, 110, 110, 101, 109, 2,
-			21, 0, 1, 107, 115, 105, 102, 2, 21, 0, 1, 107, 115, 165, 195, 112, 2, 21, 0, 1, 107, 121, 99, 2, 108, 0, 1, 107, 121, 99,
-			2, 108, 108, 195, 184, 98, 0, 1, 107, 166, 195, 114, 103, 2, 110, 0, 1, 108, 97, 2, 21, 0, 1, 108, 97, 110, 2, 21, 0, 1,
-			108, 97, 118, 2, 114, 105, 12, 12, 0, 1, 108, 98, 111, 98, 0, 1, 108, 98, 166, 195, 2, 21, 0, 1, 108, 98, 166, 195, 2, 103,
-			114, 195, 184, 100, 0, 1, 108, 101, 2, 102, 97, 110, 116, 0, 1, 108, 101, 2, 118, 97, 116, 0, 1, 108, 101, 115, 2, 21, 0, 1,
-			108, 101, 116, 2, 12, 12, 0, 1, 108, 103, 110, 101, 2, 21, 0, 1, 108, 103, 111, 110, 107, 2, 21, 0, 1, 108, 103, 117, 2, 21,
-			0, 1, 108, 103, 184, 195, 2, 21, 0, 1, 108, 105, 97, 109, 0, 1, 108, 105, 112, 2, 21, 0, 1, 108, 105, 118, 104, 2, 21, 0,
-			1, 108, 106, 184, 195, 2, 21, 0, 1, 108, 106, 184, 195, 116, 2, 115, 0, 1, 108, 107, 105, 118, 2, 21, 0, 1, 108, 108, 2, 100,
-			101, 116, 12, 0, 1, 108, 108, 101, 0, 1, 108, 108, 101, 109, 2, 109, 0, 1, 108, 108, 105, 2, 21, 0, 1, 108, 108, 105, 112, 115,
-			2, 21, 12, 0, 1, 108, 108, 117, 2, 21, 0, 1, 108, 108, 121, 2, 21, 0, 1, 108, 108, 166, 195, 2, 21, 0, 1, 108, 108, 184,
-			195, 2, 21, 0, 1, 108, 109, 97, 0, 1, 108, 109, 117, 2, 21, 0, 1, 108, 111, 0, 1, 108, 111, 107, 115, 2, 21, 0, 1, 108,
-			111, 109, 2, 115, 116, 101, 114, 101, 0, 1, 108, 114, 101, 112, 0, 1, 108, 115, 117, 2, 21, 12, 0, 1, 108, 118, 97, 2, 21, 0,
-			1, 108, 118, 166, 195, 106, 2, 21, 0, 1, 108, 165, 195, 2, 17, 67, 0, 1, 108, 166, 195, 2, 21, 0, 1, 108, 184, 195, 2, 21,
-			12, 12, 0, 1, 109, 97, 2, 21, 0, 1, 109, 97, 107, 2, 114, 97, 0, 1, 109, 100, 184, 195, 2, 21, 0, 1, 109, 105, 116, 2,
-			21, 0, 1, 109, 108, 97, 2, 21, 0, 1, 109, 109, 97, 115, 2, 110, 21, 0, 1, 109, 109, 101, 2, 21, 0, 1, 109, 109, 111, 2,
-			21, 0, 1, 109, 109, 117, 2, 21, 12, 0, 1, 109, 109, 184, 195, 2, 21, 0, 1, 109, 114, 97, 2, 21, 0, 1, 109, 114, 166, 195,
-			110, 0, 1, 110, 2, 117, 110, 103, 101, 0, 1, 110, 21, 2, 100, 0, 1, 110, 97, 98, 2, 21, 0, 1, 110, 97, 118, 2, 21, 0,
-			1, 110, 98, 17, 65, 2, 21, 0, 1, 110, 100, 105, 118, 0, 1, 110, 101, 103, 2, 114, 97, 21, 0, 1, 110, 101, 103, 2, 114, 97,
-			108, 0, 1, 110, 101, 115, 2, 115, 116, 0, 1, 110, 103, 101, 2, 21, 0, 1, 110, 105, 2, 21, 12, 12, 0, 1, 110, 105, 109, 2,
-			21, 0, 1, 110, 106, 184, 195, 2, 21, 0, 1, 110, 110, 101, 103, 2, 109, 0, 1, 110, 110, 101, 109, 0, 1, 110, 110, 184, 195, 2,
-			115, 116, 0, 1, 110, 111, 116, 2, 21, 0, 1, 110, 114, 2, 115, 116, 101, 0, 1, 110, 114, 97, 2, 21, 0, 1, 110, 114, 101, 2,
-			21, 0, 1, 110, 114, 101, 106, 104, 2, 21, 0, 1, 110, 114, 166, 195, 2, 21, 0, 1, 110, 114, 184, 195, 2, 21, 0, 1, 110, 115,
-			17, 65, 108, 2, 12, 0, 1, 110, 115, 105, 103, 2, 12, 0, 1, 110, 115, 105, 118, 2, 12, 0, 1, 110, 115, 107, 111, 118, 0, 1,
-			110, 115, 111, 114, 102, 0, 1, 110, 118, 17, 65, 2, 21, 0, 1, 110, 165, 195, 2, 17, 67, 0, 1, 110, 165, 195, 2, 21, 12, 0,
-			1, 110, 165, 195, 109, 2, 100, 0, 1, 111, 114, 2, 21, 0, 1, 112, 2, 100, 101, 114, 101, 0, 1, 112, 109, 97, 2, 21, 0, 1,
-			112, 109, 97, 108, 2, 21, 0, 1, 112, 109, 97, 114, 2, 21, 0, 1, 112, 109, 101, 116, 2, 114, 97, 116, 117, 114, 0, 1, 112, 109,
-			105, 115, 2, 108, 0, 1, 112, 109, 117, 17, 67, 2, 21, 0, 1, 112, 109, 117, 108, 2, 110, 0, 1, 112, 109, 166, 195, 107, 2, 21,
-			0, 1, 112, 109, 184, 195, 114, 2, 21, 0, 1, 112, 111, 2, 114, 0, 1, 112, 112, 101, 104, 2, 21, 0, 1, 112, 112, 105, 108, 2,
-			21, 0, 1, 112, 112, 111, 17, 67, 2, 21, 0, 1, 112, 112, 117, 114, 2, 21, 0, 1, 112, 112, 166, 195, 2, 21, 0, 1, 112, 115,
-			105, 98, 2, 21, 0, 1, 114, 2, 104, 0, 1, 114, 97, 118, 0, 1, 114, 100, 114, 111, 0, 1, 114, 114, 184, 195, 2, 21, 0, 1,
-			114, 117, 2, 110, 101, 0, 1, 114, 165, 195, 2, 21, 12, 0, 1, 115, 2, 32, 0, 1, 115, 97, 17, 67, 2, 21, 0, 1, 115, 100,
-			105, 2, 108, 21, 0, 1, 115, 105, 2, 21, 12, 12, 0, 1, 115, 107, 101, 118, 2, 108, 0, 1, 115, 107, 111, 2, 21, 0, 1, 115,
-			108, 101, 2, 21, 0, 1, 115, 108, 101, 2, 115, 21, 0, 1, 115, 108, 184, 195, 2, 21, 0, 1, 115, 110, 97, 100, 2, 21, 0, 1,
-			115, 110, 97, 115, 2, 21, 0, 1, 115, 110, 111, 107, 2, 107, 118, 0, 1, 115, 110, 166, 195, 2, 21, 0, 1, 115, 110, 184, 195, 104,
-			0, 1, 115, 111, 2, 21, 0, 1, 115, 111, 2, 110, 0, 1, 115, 115, 17, 65, 2, 21, 0, 1, 115, 117, 108, 2, 12, 12, 0, 1,
-			115, 117, 114, 2, 21, 0, 1, 115, 118, 184, 195, 98, 0, 1, 115, 121, 2, 21, 0, 1, 115, 165, 195, 0, 1, 115, 166, 195, 2, 21,
-			0, 1, 115, 166, 195, 110, 2, 21, 0, 1, 115, 166, 195, 118, 2, 110, 0, 1, 115, 184, 195, 2, 21, 0, 1, 116, 2, 32, 0, 1,
-			116, 97, 114, 2, 21, 0, 1, 116, 101, 118, 2, 114, 97, 110, 0, 1, 116, 102, 17, 65, 2, 21, 12, 0, 1, 116, 102, 105, 2, 21,
-			0, 1, 116, 102, 166, 195, 2, 21, 0, 1, 116, 103, 166, 195, 2, 21, 12, 0, 1, 116, 106, 184, 195, 2, 21, 0, 1, 116, 108, 101,
-			109, 2, 21, 0, 1, 116, 108, 121, 2, 21, 0, 1, 116, 110, 97, 2, 21, 0, 1, 116, 110, 101, 118, 2, 21, 0, 1, 116, 110, 105,
-			108, 102, 2, 21, 0, 1, 116, 111, 110, 2, 21, 0, 1, 116, 114, 17, 65, 2, 108, 21, 0, 1, 116, 114, 101, 106, 2, 21, 0, 1,
-			116, 114, 101, 109, 115, 2, 21, 0, 1, 116, 114, 111, 107, 0, 1, 116, 114, 111, 108, 0, 1, 116, 114, 121, 109, 2, 21, 0, 1, 116,
-			115, 97, 2, 21, 0, 1, 116, 115, 100, 101, 98, 2, 21, 0, 1, 116, 115, 100, 110, 105, 109, 2, 21, 0, 1, 116, 115, 101, 104, 2,
-			21, 0, 1, 116, 115, 101, 104, 2, 110, 12, 0, 1, 116, 115, 114, 97, 99, 2, 110, 0, 1, 116, 115, 114, 97, 107, 2, 110, 0, 1,
-			116, 115, 166, 195, 2, 21, 0, 1, 116, 116, 97, 17, 67, 2, 21, 0, 1, 116, 116, 97, 104, 2, 21, 12, 0, 1, 116, 116, 111, 2,
-			21, 0, 1, 116, 116, 111, 108, 102, 2, 115, 116, 0, 1, 116, 116, 121, 2, 21, 0, 1, 116, 116, 166, 195, 2, 21, 12, 0, 1, 117,
-			107, 115, 2, 21, 0, 1, 118, 97, 104, 0, 1, 118, 97, 112, 2, 21, 0, 1, 118, 97, 114, 2, 21, 0, 1, 118, 105, 2, 21, 0,
-			1, 118, 105, 103, 2, 110, 0, 1, 118, 108, 2, 100, 101, 0, 1, 118, 108, 97, 0, 1, 118, 108, 117, 2, 21, 0, 1, 118, 111, 2,
-			21, 0, 1, 118, 111, 2, 110, 0, 1, 118, 114, 97, 2, 21, 0, 1, 118, 114, 101, 110, 2, 21, 0, 1, 118, 114, 101, 115, 0, 1,
-			118, 114, 105, 118, 104, 2, 108, 0, 1, 118, 114, 184, 195, 2, 21, 0, 1, 118, 121, 2, 21, 0, 1, 118, 166, 195, 2, 21, 0, 1,
-			118, 184, 195, 2, 21, 0, 1, 122, 110, 111, 114, 98, 2, 21, 0, 2, 106, 117, 108, 12, 0, 8, 110, 101, 0, 8, 110, 115, 105, 2,
-			12, 0, 8, 116, 111, 114, 112, 2, 115, 116, 101, 114, 0, 8, 118, 101, 108, 2, 21, 12, 12, 0, 4, 1, 21, 2, 32, 12, 12, 3,
-			14, 11, 0, 1, 108, 117, 2, 21, 0, 1, 115, 2, 32, 12, 0, 2, 106, 111, 98, 12, 12, 0, 2, 106, 111, 114, 100, 12, 12, 0,
-			2, 106, 195, 166, 103, 101, 114, 12, 12, 0, 4, 110, 1, 100, 17, 65, 2, 21, 3, 14, 50, 0, 110, 100, 1, 107, 115, 184, 195, 115,
-			2, 101, 12, 12, 0, 110, 97, 100, 101, 8, 109, 111, 114, 112, 3, 14, 50, 6, 117, 86, 14, 0, 110, 97, 100, 101, 114, 8, 109, 111,
-			114, 112, 3, 14, 50, 6, 117, 86, 109, 0, 4, 110, 100, 101, 1, 10, 2, 32, 12, 12, 12, 3, 14, 50, 14, 0, 110, 101, 1, 21,
-			2, 32, 0, 110, 101, 1, 103, 103, 21, 2, 32, 14, 128, 128, 132, 0, 110, 101, 115, 1, 21, 2, 32, 3, 14, 50, 14, 89, 0, 108,
-			111, 116, 1, 122, 111, 3, 14, 55, 6, 109, 47, 0, 108, 108, 101, 1, 116, 110, 105, 2, 107, 116, 117, 12, 3, 14, 55, 116, 0, 106,
-			2, 97, 103, 116, 12, 12, 3, 14, 57, 0, 4, 106, 101, 114, 110, 1, 109, 3, 14, 57, 115, 34, 50, 0, 106, 101, 114, 110, 1, 118,
-			0, 100, 1, 114, 114, 2, 17, 65, 3, 14, 72, 0, 4, 106, 1, 100, 110, 2, 111, 98, 3, 14, 75, 0, 106, 1, 109, 2, 111, 98,
-			0, 4, 103, 1, 107, 115, 105, 102, 3, 14, 81, 0, 103, 1, 107, 115, 114, 111, 116, 0, 103, 1, 108, 2, 97, 110, 12, 12, 0, 103,
-			1, 108, 101, 100, 2, 17, 65, 0, 103, 1, 108, 101, 114, 2, 105, 111, 110, 0, 103, 1, 108, 101, 116, 2, 114, 0, 103, 1, 116, 115,
-			2, 195, 165, 0, 103, 2, 97, 102, 102, 101, 108, 0, 103, 2, 97, 110, 103, 115, 0, 103, 2, 101, 118, 105, 110, 115, 116, 12, 0, 103,
-			2, 114, 117, 110, 100, 0, 103, 2, 195, 165, 12, 0, 118, 101, 1, 108, 102, 97, 2, 114, 3, 14, 84, 36, 0, 4, 100, 1, 114, 114,
-			3, 14, 86, 0, 116, 1, 99, 105, 112, 115, 111, 104, 0, 116, 1, 108, 115, 114, 97, 118, 0, 116, 2, 104, 101, 100, 0, 114, 101, 116,
-			1, 100, 165, 195, 114, 3, 14, 120, 47, 0, 101, 2, 106, 101, 114, 3, 14, 121, 0, 1, 104, 99, 97, 109, 112, 97, 112, 3, 19, 6,
-			36, 0, 120, 99, 104, 97, 110, 103, 101, 3, 21, 0, 115, 8, 108, 114, 97, 3, 21, 102, 114, 0, 4, 110, 2, 116, 114, 195, 169, 3,
-			35, 68, 0, 110, 8, 2, 116, 114, 101, 0, 110, 103, 97, 103, 2, 101, 3, 35, 68, 81, 117, 91, 0, 4, 1, 17, 67, 2, 18, 67,
-			97, 3, 36, 0, 1, 18, 74, 2, 100, 101, 0, 1, 108, 2, 118, 101, 0, 2, 17, 67, 101, 21, 0, 2, 17, 67, 105, 103, 12, 12,
-			0, 2, 110, 101, 32, 0, 2, 110, 101, 114, 32, 0, 103, 1, 116, 115, 2, 101, 116, 0, 101, 1, 100, 105, 2, 108, 3, 36, 6, 116,
-			0, 4, 1, 107, 2, 109, 111, 3, 36, 12, 0, 2, 100, 105, 116, 104, 0, 8, 107, 115, 2, 101, 114, 0, 4, 103, 101, 8, 2, 32,
-			3, 36, 12, 57, 14, 0, 103, 101, 8, 2, 98, 108, 97, 100, 0, 103, 101, 8, 2, 108, 195, 184, 118, 0, 103, 101, 8, 2, 112, 97,
-			114, 107, 101, 116, 0, 103, 101, 8, 2, 116, 114, 195, 166, 0, 4, 103, 1, 108, 114, 101, 100, 110, 117, 3, 36, 57, 0, 106, 2, 97,
-			107, 117, 0, 4, 103, 1, 108, 2, 101, 110, 100, 97, 3, 36, 81, 0, 103, 1, 108, 2, 105, 116, 105, 0, 103, 1, 109, 2, 97, 0,
-			103, 1, 112, 2, 97, 115, 117, 115, 0, 103, 101, 110, 100, 101, 8, 108, 2, 32, 3, 36, 81, 6, 115, 50, 72, 14, 0, 100, 101, 1,
-			118, 104, 3, 36, 86, 14, 0, 4, 8, 2, 32, 115, 112, 101, 97, 107, 3, 37, 0, 97, 1, 108, 2, 115, 101, 0, 97, 1, 108, 2,
-			115, 105, 110, 103, 0, 121, 1, 108, 108, 0, 4, 97, 1, 104, 2, 108, 3, 37, 12, 0, 97, 1, 107, 2, 116, 111, 110, 0, 97, 1,
-			112, 2, 99, 111, 0, 97, 1, 114, 100, 2, 109, 0, 97, 1, 116, 2, 109, 0, 97, 8, 112, 2, 107, 32, 0, 101, 1, 103, 2, 107,
-			0, 101, 1, 104, 115, 2, 108, 97, 0, 101, 1, 107, 2, 112, 101, 114, 0, 101, 1, 114, 102, 0, 101, 1, 114, 102, 2, 108, 97, 110,
-			0, 101, 1, 114, 103, 2, 110, 0, 101, 1, 114, 116, 115, 2, 116, 0, 101, 1, 119, 2, 12, 0, 101, 1, 119, 2, 107, 0, 101, 8,
-			100, 2, 112, 0, 101, 8, 108, 102, 2, 99, 101, 12, 0, 105, 8, 100, 2, 100, 114, 101, 0, 97, 108, 8, 110, 3, 37, 12, 59, 0,
-			4, 97, 100, 8, 109, 2, 32, 3, 37, 12, 72, 0, 101, 100, 1, 112, 115, 0, 101, 100, 1, 119, 116, 0, 101, 100, 8, 100, 0, 101,
-			100, 8, 114, 2, 25, 0, 97, 99, 104, 8, 112, 3, 37, 12, 76, 0, 97, 103, 117, 101, 1, 108, 3, 37, 12, 81, 0, 97, 103, 108,
-			101, 3, 37, 12, 81, 14, 55, 0, 4, 97, 115, 101, 1, 116, 112, 105, 114, 116, 115, 3, 37, 12, 89, 0, 101, 115, 101, 1, 104, 99,
-			0, 97, 115, 116, 8, 3, 37, 12, 89, 72, 0, 103, 1, 108, 2, 101, 114, 101, 3, 37, 20, 81, 0, 116, 111, 110, 8, 3, 37, 47,
-			14, 50, 0, 97, 98, 111, 100, 121, 1, 112, 3, 37, 71, 109, 72, 37, 0, 98, 97, 121, 3, 37, 71, 115, 57, 0, 100, 105, 101, 8,
-			2, 32, 3, 37, 72, 111, 0, 103, 101, 1, 108, 108, 111, 99, 3, 37, 75, 0, 118, 105, 101, 8, 116, 115, 3, 37, 84, 37, 0, 115,
-			112, 101, 97, 107, 3, 37, 89, 48, 37, 12, 49, 0, 97, 115, 121, 3, 37, 89, 111, 0, 119, 1, 108, 2, 105, 115, 3, 40, 12, 0,
-			119, 1, 116, 115, 3, 57, 40, 0, 117, 103, 101, 110, 101, 3, 57, 40, 75, 6, 37, 12, 50, 0, 4, 117, 109, 1, 108, 111, 110, 105,
-			108, 3, 57, 126, 65, 0, 117, 109, 1, 108, 111, 114, 116, 101, 112, 0, 116, 1, 103, 111, 110, 2, 32, 3, 86, 0, 4, 1, 107, 107,
-			105, 116, 2, 114, 21, 12, 12, 12, 12, 12, 3, 108, 0, 114, 1, 108, 108, 105, 112, 115, 2, 101, 0, 114, 1, 116, 110, 105, 108, 112,
-			115, 0, 110, 101, 1, 114, 103, 110, 105, 102, 3, 108, 50, 14, 0, 117, 1, 102, 101, 3, 108, 57, 0, 103, 1, 114, 116, 115, 109, 105,
-			104, 2, 105, 109, 115, 3, 108, 81, 0, 114, 101, 1, 103, 114, 117, 2, 32, 12, 12, 3, 108, 108, 0, 4, 1, 99, 110, 97, 108, 101,
-			101, 114, 102, 2, 114, 3, 109, 0, 1, 108, 97, 109, 2, 114, 105, 0, 1, 114, 21, 2, 32, 12, 12, 0, 1, 114, 100, 2, 100, 101,
-			115, 32, 0, 1, 114, 100, 110, 2, 17, 65, 0, 1, 114, 100, 110, 97, 0, 1, 114, 100, 117, 108, 115, 2, 21, 0, 1, 114, 101, 107,
-			105, 21, 2, 32, 24, 0, 1, 114, 109, 105, 2, 21, 0, 1, 114, 111, 10, 2, 112, 108, 0, 1, 114, 111, 116, 115, 0, 1, 114, 114,
-			184, 195, 116, 2, 115, 116, 0, 1, 114, 116, 97, 108, 107, 0, 1, 114, 116, 110, 101, 2, 112, 114, 0, 1, 114, 116, 110, 101, 108, 115,
-			0, 1, 114, 116, 115, 110, 101, 118, 0, 1, 114, 117, 112, 2, 115, 116, 12, 0, 1, 114, 118, 184, 195, 110, 2, 21, 0, 1, 114, 121,
-			110, 2, 21, 12, 0, 114, 1, 98, 17, 65, 10, 0, 114, 1, 100, 101, 0, 114, 1, 100, 110, 105, 0, 114, 1, 100, 165, 195, 2, 12,
-			12, 0, 114, 1, 102, 102, 2, 115, 111, 110, 0, 114, 1, 105, 100, 117, 116, 115, 0, 114, 1, 108, 97, 109, 0, 114, 1, 108, 100, 105,
-			109, 0, 114, 1, 108, 108, 101, 0, 114, 1, 108, 165, 195, 109, 0, 114, 1, 109, 109, 111, 2, 21, 12, 12, 0, 114, 1, 110, 97, 2,
-			21, 0, 114, 1, 110, 115, 17, 65, 108, 2, 12, 0, 114, 1, 110, 115, 105, 118, 2, 12, 0, 114, 1, 110, 165, 195, 2, 21, 0, 114,
-			1, 112, 21, 2, 17, 67, 21, 0, 114, 1, 112, 117, 115, 0, 114, 1, 115, 100, 117, 112, 2, 12, 0, 114, 1, 115, 117, 108, 2, 12,
-			0, 114, 1, 118, 117, 103, 2, 110, 195, 184, 114, 0, 114, 1, 100, 110, 101, 3, 109, 11, 0, 4, 110, 100, 101, 1, 114, 21, 2, 32,
-			12, 12, 3, 109, 50, 14, 0, 110, 101, 1, 114, 21, 2, 32, 0, 110, 101, 115, 1, 114, 21, 2, 32, 14, 128, 128, 132, 3, 109, 50,
-			14, 89, 0, 4, 116, 1, 114, 100, 110, 111, 115, 3, 109, 86, 0, 116, 1, 114, 101, 107, 105, 21, 2, 32, 0, 115, 1, 114, 21, 2,
-			32, 3, 109, 89, 0, 4, 1, 115, 115, 101, 106, 3, 111, 0, 8, 2, 32, 109, 97, 105, 108, 0, 121, 1, 17, 67, 2, 32, 0, 121,
-			1, 107, 0, 121, 1, 110, 115, 105, 100, 0, 121, 1, 115, 100, 110, 105, 108, 0, 121, 1, 118, 114, 97, 104, 0, 121, 8, 110, 114, 97,
-			98, 0, 8, 100, 2, 32, 3, 111, 11, 0, 4, 3, 114, 0, 1, 18, 68, 2, 18, 67, 105, 0, 1, 18, 73, 2, 103, 116, 0, 1,
-			18, 74, 2, 116, 97, 0, 1, 98, 2, 110, 0, 1, 98, 2, 114, 101, 116, 12, 0, 1, 98, 2, 114, 105, 103, 0, 1, 98, 114, 111,
-			102, 0, 1, 100, 2, 109, 101, 110, 116, 0, 1, 100, 2, 112, 114, 0, 1, 100, 2, 116, 111, 110, 97, 116, 111, 114, 0, 1, 104, 2,
-			98, 101, 114, 97, 114, 101, 110, 0, 1, 104, 2, 100, 100, 0, 1, 104, 2, 108, 100, 97, 103, 115, 0, 1, 104, 2, 108, 102, 108, 117,
-			103, 116, 0, 1, 104, 2, 108, 102, 111, 114, 101, 116, 0, 1, 104, 2, 108, 103, 97, 114, 100, 0, 1, 104, 2, 108, 104, 101, 100, 0,
-			1, 104, 2, 108, 104, 106, 101, 114, 116, 101, 116, 0, 1, 104, 2, 108, 107, 111, 110, 115, 101, 114, 118, 101, 115, 0, 1, 104, 2, 108,
-			115, 107, 105, 110, 100, 101, 116, 0, 1, 104, 2, 108, 115, 116, 101, 103, 116, 0, 1, 104, 2, 108, 115, 116, 195, 184, 98, 116, 0, 1,
-			104, 2, 110, 100, 101, 12, 0, 1, 107, 115, 2, 100, 0, 1, 107, 115, 100, 184, 195, 114, 103, 0, 1, 107, 115, 101, 98, 184, 195, 116,
-			115, 0, 1, 107, 115, 101, 100, 121, 114, 103, 0, 1, 107, 115, 101, 103, 97, 116, 111, 112, 0, 1, 107, 115, 101, 103, 117, 102, 0, 1,
-			107, 115, 101, 108, 165, 195, 109, 0, 1, 107, 115, 101, 112, 112, 117, 115, 0, 1, 107, 115, 101, 115, 105, 112, 115, 0, 1, 107, 115, 101,
-			116, 0, 1, 107, 115, 108, 117, 104, 0, 1, 107, 115, 114, 117, 109, 0, 1, 107, 115, 116, 114, 101, 115, 115, 101, 100, 0, 1, 107, 115,
-			116, 114, 101, 115, 115, 101, 100, 0, 1, 107, 115, 118, 108, 184, 195, 115, 0, 1, 107, 115, 184, 195, 114, 116, 115, 0, 1, 107, 115, 184,
-			195, 114, 116, 115, 0, 1, 108, 2, 100, 101, 114, 0, 1, 108, 2, 118, 101, 114, 97, 110, 0, 1, 108, 2, 118, 101, 114, 105, 110, 103,
-			0, 1, 108, 101, 2, 118, 12, 0, 1, 108, 102, 2, 115, 116, 12, 0, 1, 108, 108, 105, 2, 103, 97, 108, 0, 1, 108, 111, 112, 2,
-			114, 101, 12, 0, 1, 108, 115, 2, 115, 107, 0, 1, 108, 117, 109, 114, 111, 102, 21, 2, 114, 101, 0, 1, 109, 2, 17, 67, 18, 69,
-			0, 1, 109, 2, 100, 97, 0, 1, 109, 2, 100, 97, 108, 106, 101, 0, 1, 109, 2, 100, 105, 12, 0, 1, 109, 114, 101, 108, 108, 97,
-			2, 115, 116, 0, 1, 110, 2, 100, 103, 97, 110, 103, 0, 1, 110, 2, 100, 115, 108, 97, 103, 0, 1, 110, 2, 100, 115, 116, 105, 103,
-			0, 1, 110, 2, 100, 115, 195, 166, 116, 0, 1, 110, 101, 109, 2, 100, 0, 1, 110, 107, 2, 98, 0, 1, 110, 115, 2, 25, 12, 0,
-			1, 112, 2, 98, 101, 114, 0, 1, 112, 2, 116, 101, 114, 0, 1, 114, 107, 115, 2, 118, 0, 1, 115, 2, 114, 105, 101, 12, 0, 1,
-			115, 100, 110, 105, 2, 12, 0, 1, 115, 100, 110, 105, 2, 114, 32, 0, 1, 115, 100, 117, 114, 111, 102, 0, 1, 115, 101, 100, 111, 103,
-			0, 1, 115, 102, 97, 2, 32, 12, 12, 0, 1, 115, 102, 97, 2, 116, 32, 12, 0, 1, 115, 108, 105, 116, 0, 1, 115, 110, 97, 108,
-			101, 118, 2, 116, 0, 1, 115, 114, 101, 116, 102, 101, 0, 1, 115, 114, 101, 118, 111, 2, 32, 0, 1, 115, 114, 101, 118, 111, 2, 115,
-			32, 0, 1, 115, 116, 114, 111, 98, 2, 12, 0, 1, 116, 101, 108, 108, 105, 109, 97, 107, 0, 1, 116, 101, 116, 114, 117, 0, 1, 116,
-			110, 101, 103, 114, 111, 109, 0, 1, 116, 110, 105, 2, 108, 108, 105, 103, 101, 110, 116, 0, 1, 116, 115, 2, 110, 98, 114, 117, 100, 0,
-			1, 116, 115, 2, 110, 114, 105, 103, 0, 1, 116, 115, 103, 97, 100, 100, 105, 109, 0, 1, 118, 109, 101, 106, 104, 0, 2, 17, 67, 11,
-			0, 2, 100, 116, 0, 2, 108, 101, 103, 105, 12, 12, 0, 2, 110, 101, 114, 103, 105, 12, 12, 12, 12, 0, 2, 110, 104, 101, 100, 0,
-			2, 110, 115, 0, 2, 112, 105, 115, 111, 100, 101, 12, 12, 0, 8, 2, 110, 32, 0, 8, 2, 110, 101, 0, 8, 100, 2, 108, 0, 8,
-			100, 2, 115, 32, 0, 8, 107, 115, 2, 32, 0, 8, 107, 115, 110, 97, 107, 2, 32, 0, 8, 108, 2, 110, 32, 0, 8, 109, 2, 108,
-			32, 0, 8, 109, 2, 110, 116, 0, 8, 109, 2, 115, 116, 12, 12, 0, 8, 109, 108, 97, 2, 110, 0, 8, 110, 115, 2, 114, 32, 0,
-			8, 112, 115, 2, 32, 0, 8, 114, 2, 110, 100, 121, 114, 12, 0, 8, 115, 2, 32, 12, 12, 0, 8, 115, 2, 110, 32, 0, 8, 115,
-			2, 110, 116, 32, 0, 8, 115, 100, 117, 2, 32, 12, 0, 8, 115, 100, 117, 2, 114, 32, 12, 0, 8, 115, 110, 97, 2, 12, 12, 0,
-			8, 116, 2, 32, 0, 8, 116, 115, 2, 110, 32, 0, 8, 116, 115, 105, 0, 100, 1, 116, 115, 2, 98, 114, 0, 100, 1, 116, 115, 2,
-			100, 97, 0, 100, 1, 116, 115, 2, 102, 97, 0, 100, 1, 116, 115, 2, 109, 111, 0, 100, 1, 116, 115, 2, 115, 195, 184, 0, 103, 8,
-			116, 115, 2, 32, 0, 1, 98, 10, 2, 115, 116, 97, 3, 114, 4, 0, 101, 8, 110, 115, 2, 100, 101, 32, 3, 114, 14, 0, 101, 1,
-			114, 2, 108, 3, 114, 19, 115, 0, 110, 100, 101, 1, 106, 102, 3, 114, 20, 50, 14, 0, 110, 100, 101, 114, 1, 106, 102, 3, 114, 20,
-			50, 109, 0, 114, 114, 105, 101, 114, 8, 112, 3, 114, 34, 111, 6, 114, 0, 101, 1, 98, 2, 100, 3, 114, 36, 0, 116, 97, 103, 101,
-			114, 101, 3, 114, 47, 118, 91, 6, 115, 12, 51, 0, 100, 107, 101, 114, 1, 110, 115, 3, 114, 49, 109, 0, 4, 103, 1, 116, 115, 114,
-			101, 118, 111, 3, 114, 57, 0, 103, 8, 118, 2, 32, 0, 103, 8, 118, 2, 101, 116, 32, 0, 103, 101, 110, 8, 2, 21, 3, 114, 57,
-			14, 50, 0, 103, 8, 107, 115, 2, 97, 102, 102, 101, 108, 3, 114, 81, 0, 4, 1, 114, 2, 17, 67, 101, 3, 115, 0, 1, 114, 2,
-			100, 0, 1, 114, 2, 114, 101, 32, 0, 1, 114, 98, 2, 100, 0, 1, 116, 114, 111, 107, 2, 103, 101, 0, 1, 116, 116, 97, 21, 2,
-			115, 116, 0, 2, 114, 17, 67, 101, 0, 8, 114, 101, 108, 108, 97, 2, 100, 101, 32, 0, 8, 114, 116, 2, 100, 0, 114, 103, 195, 169,
-			1, 98, 97, 102, 3, 115, 34, 91, 6, 36, 0, 4, 110, 1, 99, 2, 116, 3, 115, 50, 0, 110, 1, 99, 2, 116, 17, 65, 0, 4,
-			110, 101, 1, 106, 116, 2, 12, 12, 3, 115, 50, 14, 0, 110, 101, 1, 114, 103, 2, 12, 0, 4, 110, 116, 114, 101, 2, 104, 97, 103,
-			3, 115, 50, 47, 34, 108, 0, 110, 116, 114, 101, 8, 32, 116, 97, 2, 32, 0, 110, 101, 114, 1, 106, 116, 2, 12, 3, 115, 50, 108,
-			0, 103, 1, 108, 114, 101, 118, 111, 3, 115, 57, 0, 103, 101, 1, 108, 2, 109, 101, 3, 115, 57, 14, 0, 109, 112, 105, 114, 101, 2,
-			32, 115, 116, 97, 116, 101, 3, 115, 65, 48, 136, 112, 0, 4, 97, 100, 1, 104, 3, 115, 72, 0, 100, 100, 1, 114, 98, 0, 100, 100,
-			105, 101, 8, 3, 115, 72, 37, 0, 4, 107, 1, 112, 115, 101, 114, 2, 116, 97, 98, 101, 108, 3, 115, 81, 0, 107, 8, 106, 111, 114,
-			112, 2, 116, 105, 108, 0, 103, 103, 121, 1, 112, 3, 115, 81, 37, 0, 103, 109, 97, 116, 105, 116, 1, 112, 3, 115, 81, 65, 117, 47,
-			6, 37, 47, 0, 118, 101, 1, 114, 98, 3, 115, 84, 14, 0, 99, 115, 116, 97, 99, 121, 3, 115, 89, 47, 117, 89, 37, 0, 114, 8,
-			100, 2, 21, 12, 3, 115, 110, 0, 4, 1, 17, 67, 2, 18, 73, 12, 12, 3, 116, 0, 1, 17, 67, 2, 108, 108, 11, 0, 1, 17,
-			67, 2, 110, 100, 0, 1, 18, 71, 2, 114, 108, 0, 1, 18, 74, 2, 108, 0, 1, 21, 2, 110, 103, 12, 0, 1, 98, 2, 114, 103,
-			12, 0, 1, 102, 2, 109, 0, 1, 102, 21, 2, 115, 116, 12, 0, 1, 103, 101, 108, 2, 110, 100, 0, 1, 104, 2, 110, 12, 12, 0,
-			1, 104, 21, 2, 115, 116, 12, 0, 1, 104, 99, 2, 17, 67, 0, 1, 107, 97, 114, 2, 116, 12, 0, 1, 108, 2, 18, 72, 11, 0,
-			1, 108, 2, 102, 108, 0, 1, 108, 2, 107, 116, 0, 1, 108, 2, 116, 0, 1, 108, 101, 2, 110, 100, 105, 103, 0, 1, 108, 101, 116,
-			2, 120, 0, 1, 108, 111, 107, 2, 115, 116, 0, 1, 108, 115, 100, 117, 2, 116, 12, 12, 0, 1, 108, 117, 2, 109, 112, 0, 1, 108,
-			117, 115, 110, 111, 107, 2, 110, 116, 0, 1, 109, 2, 115, 116, 101, 114, 0, 1, 110, 2, 18, 72, 11, 0, 1, 110, 101, 2, 109, 0,
-			1, 110, 101, 2, 114, 103, 105, 12, 0, 1, 110, 115, 2, 114, 112, 0, 1, 112, 2, 110, 103, 0, 1, 112, 115, 2, 114, 0, 1, 114,
-			2, 12, 0, 1, 114, 2, 17, 67, 11, 0, 1, 114, 2, 100, 17, 67, 0, 1, 114, 2, 100, 115, 0, 1, 114, 2, 104, 97, 98, 105,
-			108, 0, 1, 114, 2, 109, 18, 69, 0, 1, 114, 2, 110, 103, 195, 184, 12, 0, 1, 114, 2, 110, 115, 107, 114, 0, 1, 114, 2, 110,
-			115, 107, 117, 0, 1, 114, 2, 114, 101, 0, 1, 114, 2, 115, 116, 97, 117, 12, 12, 0, 1, 114, 2, 115, 116, 97, 117, 114, 97, 110,
-			116, 0, 1, 114, 2, 115, 116, 101, 114, 101, 12, 12, 0, 1, 114, 2, 116, 97, 98, 0, 1, 114, 2, 116, 97, 114, 100, 0, 1, 114,
-			2, 116, 101, 110, 116, 105, 111, 110, 0, 1, 114, 2, 116, 105, 12, 0, 1, 114, 2, 116, 111, 114, 0, 1, 114, 2, 116, 111, 117, 0,
-			1, 114, 2, 116, 114, 97, 110, 0, 1, 114, 2, 116, 114, 111, 0, 1, 114, 2, 116, 115, 105, 110, 97, 0, 1, 114, 2, 116, 117, 114,
-			0, 1, 114, 2, 118, 0, 1, 114, 100, 2, 118, 110, 0, 1, 114, 101, 100, 101, 108, 2, 118, 110, 101, 0, 1, 114, 102, 2, 100, 12,
-			0, 1, 114, 102, 2, 100, 101, 32, 0, 1, 114, 103, 2, 116, 0, 1, 114, 107, 2, 116, 97, 0, 1, 114, 111, 101, 116, 2, 116, 0,
-			1, 114, 112, 2, 109, 0, 1, 114, 112, 101, 100, 2, 115, 115, 0, 1, 114, 112, 111, 2, 118, 0, 1, 114, 112, 115, 2, 100, 0, 1,
-			114, 116, 2, 109, 105, 108, 101, 0, 1, 115, 2, 100, 100, 0, 1, 115, 2, 107, 115, 117, 101, 108, 12, 0, 1, 115, 121, 100, 2, 110,
-			116, 101, 114, 105, 0, 1, 116, 115, 2, 100, 0, 1, 116, 115, 97, 107, 21, 2, 108, 0, 2, 102, 116, 101, 114, 0, 2, 107, 115, 0,
-			2, 108, 17, 67, 0, 2, 108, 108, 12, 0, 2, 109, 0, 2, 109, 11, 12, 0, 2, 110, 25, 0, 2, 110, 110, 0, 2, 118, 101, 110,
-			116, 121, 0, 2, 120, 0, 8, 100, 2, 109, 32, 0, 8, 109, 2, 100, 0, 8, 114, 116, 2, 12, 0, 8, 114, 116, 2, 115, 0, 8,
-			114, 116, 2, 116, 0, 97, 1, 119, 115, 2, 116, 114, 101, 0, 106, 1, 118, 2, 114, 32, 12, 0, 106, 1, 118, 2, 114, 101, 116, 32,
-			12, 0, 106, 8, 118, 2, 114, 17, 67, 12, 0, 106, 8, 118, 2, 114, 117, 100, 12, 0, 4, 1, 114, 112, 2, 115, 115, 101, 114, 101,
-			110, 100, 101, 3, 116, 6, 0, 1, 114, 116, 2, 109, 97, 0, 4, 110, 100, 1, 107, 110, 101, 103, 2, 101, 32, 12, 12, 12, 3, 116,
-			20, 50, 0, 110, 100, 1, 107, 114, 101, 110, 97, 2, 101, 32, 12, 12, 12, 0, 110, 100, 1, 118, 109, 111, 2, 101, 12, 12, 0, 110,
-			100, 1, 118, 110, 101, 104, 2, 101, 12, 12, 0, 110, 100, 8, 107, 2, 101, 32, 12, 12, 12, 0, 110, 100, 101, 114, 1, 107, 2, 32,
-			3, 116, 20, 50, 108, 0, 4, 114, 1, 98, 2, 108, 12, 12, 12, 3, 116, 34, 0, 114, 1, 106, 104, 2, 116, 12, 0, 114, 1, 115,
-			2, 103, 101, 110, 116, 0, 114, 1, 115, 107, 101, 2, 99, 0, 114, 118, 101, 114, 1, 115, 101, 114, 2, 32, 101, 110, 3, 116, 34, 84,
-			6, 114, 34, 0, 98, 1, 110, 107, 2, 114, 101, 3, 116, 40, 0, 116, 97, 108, 1, 109, 32, 121, 118, 97, 101, 104, 3, 116, 47, 14,
-			55, 0, 97, 116, 101, 114, 1, 119, 115, 3, 116, 47, 109, 0, 99, 104, 1, 116, 3, 116, 49, 0, 4, 110, 1, 100, 17, 65, 2, 116,
-			105, 3, 116, 50, 0, 110, 100, 1, 100, 108, 117, 102, 2, 101, 12, 0, 110, 100, 1, 115, 100, 117, 2, 12, 12, 0, 110, 100, 1, 115,
-			112, 111, 2, 12, 12, 0, 110, 100, 1, 118, 110, 97, 2, 101, 12, 0, 110, 100, 101, 1, 118, 115, 2, 12, 12, 3, 116, 50, 14, 0,
-			110, 100, 101, 1, 118, 2, 116, 116, 97, 3, 116, 50, 72, 6, 116, 0, 110, 100, 97, 1, 114, 98, 3, 116, 50, 72, 118, 0, 110, 103,
-			101, 1, 104, 101, 110, 111, 116, 115, 3, 116, 50, 75, 0, 108, 108, 101, 118, 101, 3, 116, 55, 84, 14, 0, 108, 108, 101, 118, 101, 114,
-			3, 116, 55, 84, 108, 0, 4, 97, 1, 114, 98, 2, 107, 3, 116, 57, 0, 97, 1, 114, 103, 2, 116, 0, 121, 1, 114, 0, 4, 103,
-			101, 108, 1, 114, 3, 116, 57, 55, 0, 103, 108, 1, 114, 0, 118, 1, 114, 98, 2, 12, 3, 116, 58, 0, 105, 110, 116, 1, 116, 3,
-			116, 68, 0, 116, 111, 112, 1, 110, 3, 116, 72, 4, 109, 71, 0, 4, 100, 100, 105, 101, 1, 114, 102, 3, 116, 72, 37, 0, 100, 100,
-			121, 1, 114, 102, 0, 100, 100, 105, 107, 101, 3, 116, 72, 49, 14, 0, 100, 97, 103, 1, 114, 102, 3, 116, 72, 118, 0, 4, 103, 1,
-			114, 2, 101, 114, 3, 116, 81, 0, 103, 1, 114, 97, 117, 116, 0, 107, 1, 106, 98, 111, 2, 116, 105, 118, 0, 107, 1, 118, 2, 115,
-			0, 118, 101, 116, 1, 114, 17, 67, 3, 116, 84, 14, 86, 11, 0, 100, 101, 116, 1, 116, 115, 2, 32, 3, 116, 86, 14, 47, 0, 115,
-			116, 105, 103, 101, 1, 114, 112, 2, 32, 3, 116, 89, 47, 6, 37, 91, 0, 115, 116, 97, 110, 116, 101, 1, 114, 3, 116, 89, 47, 6,
-			122, 68, 72, 14, 0, 99, 115, 116, 97, 115, 121, 3, 116, 89, 47, 118, 89, 111, 0, 4, 114, 1, 98, 117, 116, 2, 107, 117, 3, 116,
-			110, 0, 114, 114, 1, 104, 115, 2, 121, 0, 114, 114, 121, 1, 98, 3, 118, 16, 113, 0, 114, 1, 116, 2, 109, 12, 12, 3, 118, 34,
-			0, 114, 114, 101, 1, 104, 3, 118, 110, 109, 0, 4, 1, 114, 2, 110, 115, 110, 105, 110, 103, 3, 119, 0, 1, 114, 103, 110, 111, 107,
-			2, 115, 0, 8, 114, 103, 101, 114, 2, 115, 115, 105, 118, 0, 115, 115, 101, 1, 114, 21, 2, 114, 101, 28, 33, 3, 119, 89, 6, 36,
-			0, 4, 1, 110, 115, 2, 114, 114, 101, 3, 120, 0, 1, 114, 2, 18, 67, 115, 0, 1, 114, 2, 18, 74, 115, 0, 1, 114, 2, 107,
-			116, 111, 0, 1, 114, 2, 109, 0, 1, 114, 2, 110, 100, 32, 0, 1, 114, 2, 110, 100, 101, 0, 1, 114, 2, 110, 103, 12, 0, 1,
-			114, 2, 110, 115, 101, 0, 1, 114, 2, 110, 116, 101, 0, 1, 114, 2, 115, 116, 12, 12, 0, 1, 114, 2, 116, 12, 0, 1, 114, 2,
-			118, 108, 0, 1, 114, 2, 118, 110, 0, 1, 114, 18, 67, 2, 17, 67, 11, 0, 1, 114, 18, 72, 2, 109, 109, 0, 1, 114, 98, 2,
-			18, 74, 0, 1, 114, 100, 97, 2, 115, 115, 101, 0, 1, 114, 101, 98, 2, 116, 12, 12, 0, 1, 114, 102, 2, 108, 115, 12, 0, 1,
-			114, 102, 2, 109, 0, 1, 114, 102, 2, 109, 111, 118, 0, 1, 114, 103, 2, 108, 0, 1, 114, 103, 103, 97, 2, 115, 115, 111, 114, 0,
-			1, 114, 105, 100, 2, 107, 116, 0, 1, 114, 108, 97, 110, 105, 109, 105, 114, 107, 2, 116, 0, 1, 114, 112, 2, 17, 67, 11, 12, 0,
-			1, 114, 112, 2, 115, 12, 0, 1, 114, 112, 111, 2, 116, 12, 12, 0, 1, 114, 114, 111, 102, 2, 116, 12, 12, 0, 1, 114, 121, 114,
-			114, 97, 107, 2, 116, 12, 0, 8, 114, 2, 115, 116, 101, 110, 32, 12, 0, 100, 105, 118, 101, 116, 101, 1, 114, 116, 3, 120, 86, 83,
-			47, 14, 0, 100, 105, 118, 101, 1, 114, 116, 3, 120, 86, 84, 14, 0, 100, 105, 118, 101, 114, 1, 114, 116, 3, 120, 86, 84, 108, 0,
-			97, 114, 116, 1, 104, 3, 121, 12, 72, 0, 103, 1, 115, 2, 108, 3, 121, 57, 0, 105, 110, 115, 116, 101, 105, 110, 3, 121, 57, 50,
-			89, 47, 121, 57, 50, 0, 105, 110, 100, 104, 111, 118, 101, 110, 3, 121, 57, 50, 107, 6, 39, 12, 83, 14, 50, 0, 121, 101, 108, 105,
-			110, 101, 114, 3, 121, 57, 55, 121, 57, 50, 108, 0, 4, 110, 1, 112, 2, 115, 105, 111, 110, 12, 3, 121, 68, 0, 110, 1, 114, 2,
-			99, 101, 0, 110, 116, 101, 110, 116, 101, 3, 121, 68, 47, 6, 121, 68, 47, 0, 4, 1, 114, 2, 110, 100, 116, 3, 122, 0, 1, 114,
-			101, 102, 102, 105, 100, 2, 110, 0, 2, 109, 98, 97, 108, 108, 0, 110, 100, 101, 1, 114, 118, 184, 195, 114, 2, 32, 12, 3, 122, 20,
-			50, 14, 0, 110, 100, 101, 114, 1, 114, 118, 184, 195, 114, 2, 32, 3, 122, 20, 50, 109, 0, 4, 103, 1, 18, 73, 3, 122, 57, 0,
-			103, 1, 104, 2, 108, 101, 0, 103, 1, 107, 2, 108, 101, 0, 103, 1, 114, 107, 115, 0, 103, 2, 101, 110, 107, 97, 112, 105, 116, 97,
-			108, 12, 0, 103, 2, 110, 0, 106, 2, 12, 12, 12, 0, 106, 101, 2, 110, 12, 12, 3, 122, 57, 14, 0, 103, 101, 116, 8, 2, 32,
-			3, 122, 57, 14, 86, 0, 106, 114, 101, 1, 108, 2, 12, 3, 122, 57, 34, 109, 0, 103, 108, 1, 110, 3, 122, 57, 55, 0, 4, 106,
-			114, 1, 108, 2, 12, 12, 3, 122, 57, 109, 0, 106, 114, 1, 115, 2, 12, 12, 0, 4, 110, 1, 115, 115, 101, 114, 2, 116, 105, 109,
-			101, 110, 116, 3, 122, 68, 0, 110, 1, 116, 101, 112, 109, 111, 2, 99, 101, 0, 97, 117, 1, 114, 3, 124, 0, 97, 117, 120, 1, 114,
-			3, 126, 0, 97, 114, 108, 8, 3, 132, 12, 59, 0, 97, 114, 112, 8, 3, 132, 12, 71, 0, 117, 115, 101, 1, 109, 3, 132, 12, 88,
-			0, 117, 116, 1, 112, 97, 114, 101, 116, 3, 132, 58, 72, 0, 117, 115, 3, 132, 58, 89, 0, 117, 1, 110, 3, 132, 123, 0, 4, 8,
-			100, 2, 32, 103, 97, 117, 108, 108, 101, 3, 133, 0, 8, 100, 2, 32, 108, 97, 32, 0, 114, 1, 102, 2, 103, 117, 115, 111, 110, 0,
-			117, 8, 2, 17, 67, 3, 133, 58, 0, 4, 1, 103, 2, 106, 115, 3, 136, 0, 103, 1, 18, 71, 2, 101, 0, 103, 1, 101, 108, 101,
-			2, 12, 0, 103, 1, 106, 114, 101, 118, 111, 0, 103, 1, 106, 115, 0, 103, 1, 108, 2, 101, 12, 0, 103, 1, 108, 98, 0, 103, 1,
-			108, 115, 98, 97, 107, 115, 108, 101, 115, 0, 103, 1, 110, 115, 2, 108, 0, 103, 1, 112, 0, 103, 1, 114, 116, 2, 101, 32, 0, 103,
-			1, 114, 116, 2, 101, 100, 101, 32, 0, 103, 1, 114, 116, 2, 101, 110, 32, 0, 103, 1, 114, 116, 2, 101, 114, 32, 0, 103, 1, 114,
-			116, 2, 101, 115, 32, 0, 103, 1, 114, 116, 115, 0, 103, 1, 116, 2, 108, 0, 103, 2, 97, 110, 115, 105, 103, 116, 0, 103, 2, 101,
-			110, 98, 101, 115, 107, 121, 100, 12, 0, 103, 2, 102, 105, 0, 103, 2, 114, 195, 184, 100, 0, 103, 2, 115, 111, 116, 0, 103, 8, 98,
-			2, 32, 0, 105, 1, 104, 2, 100, 101, 108, 0, 105, 1, 115, 2, 115, 0, 105, 1, 115, 2, 115, 109, 111, 108, 0, 105, 1, 116, 115,
-			2, 110, 25, 0, 105, 8, 104, 2, 100, 105, 0, 105, 8, 104, 2, 108, 32, 0, 106, 1, 114, 2, 115, 0, 106, 1, 114, 100, 2, 12,
-			0, 106, 1, 118, 109, 101, 106, 104, 0, 107, 1, 115, 2, 115, 116, 101, 110, 0, 121, 1, 109, 2, 101, 114, 0, 103, 101, 109, 1, 108,
-			98, 2, 105, 100, 3, 136, 13, 65, 0, 4, 103, 101, 110, 100, 101, 1, 108, 2, 32, 98, 195, 184, 114, 110, 3, 136, 14, 50, 14, 0,
-			103, 101, 110, 100, 101, 1, 108, 2, 32, 108, 101, 116, 0, 4, 106, 114, 1, 118, 2, 101, 32, 3, 136, 51, 0, 106, 114, 1, 118, 2,
-			101, 114, 32, 0, 105, 108, 101, 101, 110, 3, 136, 55, 6, 37, 12, 50, 0, 105, 103, 101, 114, 3, 136, 81, 108, 0, 105, 102, 102, 101,
-			108, 3, 136, 83, 14, 55, 0, 105, 115, 101, 110, 104, 111, 119, 101, 114, 3, 136, 89, 13, 50, 107, 121, 40, 108, 0, 105, 115, 101, 110,
-			98, 101, 114, 103, 8, 104, 3, 136, 89, 14, 50, 71, 116, 34, 81, 0, 106, 101, 114, 2, 17, 67, 3, 136, 108, 0, 7, 6, 102, 0,
-			1, 97, 2, 115, 116, 101, 100, 3, 0, 111, 114, 1, 105, 108, 97, 99, 3, 6, 83, 125, 12, 0, 105, 99, 116, 105, 111, 110, 3, 21,
-			0, 4, 1, 97, 2, 17, 67, 3, 58, 0, 1, 97, 2, 108, 121, 116, 116, 101, 0, 1, 97, 2, 116, 114, 121, 107, 0, 4, 3, 83,
-			0, 1, 21, 2, 108, 97, 115, 107, 101, 0, 1, 97, 2, 105, 116, 0, 1, 97, 2, 111, 110, 0, 1, 97, 2, 114, 105, 107, 0, 1,
-			97, 2, 114, 111, 0, 1, 97, 2, 116, 101, 110, 0, 1, 97, 2, 116, 101, 115, 32, 0, 1, 97, 17, 67, 2, 17, 65, 0, 1, 97,
-			17, 67, 2, 116, 0, 1, 97, 100, 2, 110, 0, 1, 97, 103, 2, 108, 0, 1, 97, 107, 2, 107, 97, 0, 1, 97, 107, 115, 0, 1,
-			97, 108, 98, 2, 114, 101, 0, 1, 97, 114, 2, 102, 111, 114, 0, 1, 97, 114, 2, 102, 114, 0, 1, 97, 114, 2, 105, 107, 0, 1,
-			97, 114, 2, 108, 101, 0, 1, 97, 114, 103, 2, 17, 65, 0, 1, 97, 114, 105, 103, 0, 1, 97, 114, 116, 115, 0, 1, 97, 115, 2,
-			97, 114, 0, 1, 97, 115, 2, 114, 97, 110, 0, 1, 97, 116, 115, 2, 101, 0, 1, 97, 118, 2, 108, 0, 2, 106, 101, 100, 101, 114,
-			0, 2, 108, 121, 116, 116, 101, 0, 102, 0, 102, 1, 97, 2, 97, 98, 101, 108, 0, 102, 1, 97, 2, 97, 103, 101, 0, 102, 1, 97,
-			2, 101, 107, 116, 0, 102, 1, 97, 2, 101, 108, 0, 102, 1, 97, 2, 105, 99, 101, 114, 101, 0, 102, 1, 97, 2, 105, 110, 101, 0,
-			102, 1, 97, 2, 105, 110, 105, 116, 101, 116, 0, 102, 1, 97, 2, 105, 114, 109, 0, 102, 1, 97, 2, 117, 116, 97, 103, 101, 0, 102,
-			1, 97, 2, 195, 166, 114, 101, 0, 102, 1, 97, 106, 2, 97, 0, 102, 1, 97, 108, 17, 67, 2, 101, 0, 102, 1, 97, 114, 2, 101,
-			0, 111, 114, 8, 2, 117, 109, 3, 83, 6, 39, 34, 0, 4, 111, 114, 101, 8, 2, 32, 3, 83, 6, 39, 108, 0, 111, 114, 101, 8,
-			2, 100, 101, 32, 0, 111, 114, 101, 114, 8, 2, 32, 0, 195, 166, 114, 100, 105, 103, 1, 21, 3, 83, 6, 115, 34, 72, 37, 0, 114,
-			105, 116, 101, 115, 1, 32, 115, 101, 3, 83, 34, 37, 47, 0, 114, 101, 117, 100, 3, 83, 34, 108, 57, 47, 0, 114, 97, 110, 107, 105,
-			101, 3, 83, 34, 117, 50, 49, 37, 0, 114, 97, 110, 195, 167, 111, 105, 115, 3, 83, 34, 121, 68, 89, 6, 58, 35, 0, 101, 8, 2,
-			32, 3, 83, 36, 0, 101, 116, 116, 117, 99, 99, 105, 110, 101, 3, 83, 36, 47, 40, 87, 91, 6, 37, 12, 50, 13, 0, 105, 110, 108,
-			97, 121, 3, 83, 36, 50, 55, 37, 0, 105, 101, 108, 100, 3, 83, 37, 12, 59, 72, 0, 105, 114, 101, 111, 103, 3, 83, 37, 12, 108,
-			0, 105, 114, 101, 110, 122, 101, 3, 83, 37, 51, 6, 117, 50, 89, 13, 0, 105, 114, 101, 3, 83, 37, 108, 0, 111, 98, 105, 1, 21,
-			3, 83, 39, 71, 6, 37, 0, 111, 117, 113, 117, 101, 116, 3, 83, 40, 49, 6, 36, 0, 114, 97, 110, 99, 101, 115, 99, 97, 3, 83,
-			51, 121, 50, 91, 6, 115, 89, 49, 117, 0, 108, 117, 115, 104, 3, 83, 55, 108, 91, 0, 111, 114, 1, 21, 2, 17, 67, 21, 3, 83,
-			108, 12, 0, 195, 166, 114, 100, 105, 103, 1, 21, 21, 3, 83, 115, 34, 72, 37, 0, 97, 114, 97, 111, 3, 83, 121, 34, 121, 39, 0,
-			111, 117, 114, 8, 2, 32, 3, 83, 125, 12, 0, 111, 110, 116, 97, 105, 110, 101, 3, 83, 125, 68, 47, 6, 115, 12, 50, 0, 98, 105,
-			8, 3, 115, 83, 71, 37, 6, 121, 57, 0, 7, 6, 103, 0, 4, 1, 105, 100, 184, 195, 2, 116, 32, 3, 0, 4, 1, 105, 107, 2,
-			104, 111, 115, 116, 3, 0, 4, 1, 105, 116, 103, 2, 101, 114, 101, 3, 0, 4, 1, 108, 2, 17, 67, 3, 0, 4, 1, 108, 2, 115,
-			3, 0, 4, 1, 108, 2, 116, 101, 32, 3, 0, 4, 1, 108, 97, 118, 3, 0, 4, 1, 108, 97, 118, 2, 116, 3, 0, 4, 1, 111,
-			2, 101, 114, 110, 17, 65, 3, 0, 4, 1, 111, 103, 2, 105, 107, 117, 109, 3, 0, 4, 1, 114, 117, 103, 2, 108, 101, 3, 0, 4,
-			1, 114, 184, 195, 2, 115, 3, 0, 4, 1, 117, 2, 108, 3, 0, 4, 1, 117, 98, 2, 21, 3, 0, 4, 1, 117, 100, 32, 110, 101,
-			3, 0, 4, 1, 117, 100, 101, 100, 101, 118, 115, 3, 0, 4, 1, 117, 100, 101, 115, 121, 108, 3, 0, 4, 1, 117, 100, 103, 97, 108,
-			102, 3, 0, 4, 1, 117, 100, 107, 115, 97, 109, 97, 100, 3, 0, 4, 1, 117, 100, 108, 106, 101, 115, 3, 0, 4, 1, 117, 100, 114,
-			101, 109, 108, 111, 3, 0, 4, 1, 117, 100, 114, 101, 109, 109, 97, 107, 3, 0, 4, 1, 117, 100, 115, 107, 111, 118, 3, 0, 4, 1,
-			117, 100, 116, 108, 101, 116, 3, 0, 4, 1, 117, 114, 3, 0, 4, 1, 117, 115, 3, 0, 4, 1, 117, 116, 114, 101, 104, 3, 0, 4,
-			1, 121, 2, 101, 3, 0, 4, 1, 121, 115, 3, 0, 4, 8, 111, 116, 32, 105, 3, 0, 4, 8, 111, 116, 32, 105, 118, 3, 0, 4,
-			8, 111, 116, 32, 110, 97, 104, 3, 0, 8, 111, 116, 32, 110, 117, 104, 3, 0, 4, 1, 97, 2, 97, 118, 101, 3, 6, 81, 0, 8,
-			97, 2, 97, 114, 0, 101, 110, 116, 1, 114, 101, 115, 3, 6, 89, 57, 117, 50, 47, 0, 4, 1, 111, 103, 3, 8, 0, 1, 111, 108,
-			0, 1, 114, 117, 114, 105, 107, 3, 8, 58, 0, 4, 1, 111, 108, 2, 111, 3, 8, 81, 0, 1, 111, 108, 98, 2, 115, 0, 105, 1,
-			10, 2, 115, 107, 28, 33, 3, 8, 81, 111, 0, 101, 115, 1, 114, 97, 112, 115, 97, 3, 8, 89, 0, 4, 101, 110, 1, 114, 2, 32,
-			3, 8, 112, 50, 0, 101, 110, 1, 114, 2, 115, 32, 0, 4, 1, 97, 114, 2, 101, 3, 12, 0, 1, 97, 115, 2, 115, 0, 101, 8,
-			117, 3, 12, 14, 0, 1, 97, 100, 100, 2, 115, 3, 12, 19, 0, 101, 1, 184, 195, 109, 2, 108, 101, 110, 3, 12, 57, 36, 0, 4,
-			1, 97, 98, 2, 101, 3, 14, 0, 1, 97, 107, 2, 101, 0, 1, 97, 98, 2, 105, 3, 15, 0, 4, 101, 111, 114, 103, 101, 3, 21,
-			0, 101, 111, 114, 103, 105, 101, 0, 114, 97, 99, 101, 0, 114, 97, 104, 97, 109, 2, 32, 0, 114, 97, 104, 97, 109, 115, 2, 32, 0,
-			111, 110, 122, 97, 108, 101, 115, 3, 21, 101, 115, 0, 4, 97, 99, 104, 101, 116, 3, 21, 102, 114, 0, 117, 105, 108, 108, 97, 117, 109,
-			105, 110, 0, 4, 1, 97, 98, 2, 116, 97, 108, 3, 40, 0, 1, 97, 104, 2, 108, 0, 1, 114, 2, 101, 114, 32, 0, 1, 114, 184,
-			195, 0, 1, 165, 195, 0, 1, 165, 195, 118, 2, 110, 0, 116, 101, 1, 114, 117, 112, 115, 3, 47, 14, 0, 4, 1, 105, 107, 3, 49,
-			0, 1, 111, 98, 2, 115, 116, 0, 110, 1, 97, 112, 2, 105, 3, 50, 6, 0, 4, 110, 1, 105, 2, 111, 3, 50, 57, 0, 110, 1,
-			105, 115, 2, 17, 65, 0, 110, 1, 166, 195, 114, 112, 109, 105, 2, 101, 0, 4, 1, 17, 65, 2, 110, 3, 57, 0, 1, 97, 100, 2,
-			115, 32, 0, 1, 97, 104, 101, 98, 0, 1, 97, 108, 2, 110, 0, 1, 97, 115, 0, 1, 101, 2, 101, 110, 115, 107, 97, 98, 0, 1,
-			101, 2, 101, 110, 116, 108, 0, 1, 101, 18, 73, 0, 1, 101, 108, 98, 2, 97, 110, 115, 105, 103, 116, 0, 1, 101, 108, 98, 2, 102,
-			105, 0, 1, 101, 108, 98, 2, 115, 111, 116, 0, 1, 101, 110, 2, 32, 0, 1, 101, 110, 115, 0, 1, 101, 118, 2, 101, 110, 0, 1,
-			105, 109, 115, 0, 1, 108, 2, 32, 0, 1, 108, 2, 101, 110, 32, 0, 1, 108, 2, 101, 116, 32, 0, 1, 108, 97, 2, 101, 0, 1,
-			108, 97, 118, 2, 195, 165, 114, 0, 1, 108, 101, 2, 101, 32, 0, 1, 108, 101, 2, 101, 110, 101, 32, 0, 1, 108, 101, 2, 101, 110,
-			101, 115, 32, 0, 1, 108, 166, 195, 2, 101, 0, 1, 108, 184, 195, 2, 101, 0, 1, 166, 195, 2, 101, 0, 1, 166, 195, 2, 101, 114,
-			110, 17, 65, 0, 1, 166, 195, 108, 2, 100, 111, 109, 0, 1, 166, 195, 108, 2, 102, 111, 108, 107, 0, 1, 166, 195, 108, 2, 109, 0,
-			1, 166, 195, 108, 2, 115, 195, 184, 115, 0, 1, 166, 195, 114, 112, 0, 1, 166, 195, 118, 107, 0, 1, 184, 195, 2, 17, 67, 0, 1,
-			184, 195, 2, 110, 0, 2, 108, 101, 0, 8, 101, 2, 32, 0, 1, 184, 195, 2, 17, 65, 3, 57, 11, 0, 101, 1, 184, 195, 2, 12,
-			12, 12, 3, 57, 14, 0, 110, 1, 105, 115, 108, 101, 118, 3, 57, 50, 0, 114, 1, 97, 108, 2, 101, 3, 57, 51, 0, 4, 101, 1,
-			101, 2, 114, 3, 57, 108, 0, 101, 114, 1, 184, 195, 2, 12, 12, 0, 4, 1, 97, 98, 2, 105, 110, 3, 58, 0, 1, 97, 100, 2,
-			17, 67, 0, 1, 97, 114, 98, 0, 1, 97, 114, 100, 0, 1, 97, 114, 100, 2, 101, 110, 0, 1, 97, 114, 118, 0, 1, 97, 118, 2,
-			110, 0, 1, 111, 17, 67, 0, 1, 111, 108, 114, 111, 0, 1, 114, 2, 32, 0, 1, 114, 2, 101, 116, 32, 0, 1, 114, 101, 106, 2,
-			17, 65, 0, 1, 114, 101, 106, 2, 17, 67, 0, 1, 114, 166, 195, 106, 2, 101, 0, 1, 114, 166, 195, 118, 100, 0, 1, 165, 195, 2,
-			101, 0, 8, 97, 114, 112, 0, 101, 1, 114, 184, 195, 2, 12, 3, 58, 14, 0, 101, 110, 1, 114, 97, 109, 3, 58, 14, 50, 0, 101,
-			114, 110, 101, 1, 114, 2, 32, 3, 58, 108, 50, 14, 0, 101, 114, 110, 101, 115, 1, 114, 2, 32, 3, 58, 108, 50, 14, 89, 0, 101,
-			114, 1, 114, 184, 195, 3, 58, 109, 0, 4, 110, 1, 97, 112, 2, 101, 114, 3, 68, 57, 0, 110, 1, 97, 112, 2, 111, 110, 0, 110,
-			1, 97, 112, 109, 97, 107, 0, 116, 1, 114, 117, 112, 115, 3, 72, 0, 4, 2, 105, 103, 111, 108, 111, 3, 75, 0, 101, 8, 114, 97,
-			109, 0, 101, 114, 97, 108, 100, 1, 122, 116, 105, 102, 3, 75, 6, 116, 34, 112, 59, 0, 105, 8, 2, 110, 3, 75, 36, 0, 4, 103,
-			105, 101, 1, 101, 114, 3, 75, 37, 0, 105, 8, 2, 110, 18, 69, 0, 105, 8, 2, 110, 97, 0, 101, 111, 114, 103, 105, 97, 3, 75,
-			108, 12, 75, 57, 117, 0, 105, 117, 115, 101, 112, 112, 101, 3, 75, 111, 89, 6, 116, 48, 13, 0, 101, 114, 111, 110, 105, 109, 111, 3,
-			75, 114, 34, 6, 109, 50, 111, 65, 125, 12, 40, 0, 105, 110, 103, 101, 114, 8, 3, 75, 114, 50, 75, 109, 0, 101, 114, 114, 121, 3,
-			75, 115, 34, 37, 0, 101, 110, 116, 108, 101, 109, 101, 110, 3, 75, 115, 50, 47, 14, 55, 65, 116, 50, 0, 101, 110, 116, 108, 101, 109,
-			97, 110, 3, 75, 115, 50, 47, 14, 55, 65, 117, 50, 0, 101, 114, 97, 108, 100, 3, 75, 116, 34, 112, 59, 0, 101, 114, 97, 108, 100,
-			105, 110, 101, 3, 75, 116, 34, 112, 59, 72, 37, 12, 50, 0, 101, 111, 102, 102, 3, 75, 116, 83, 0, 105, 97, 110, 116, 115, 8, 3,
-			75, 136, 118, 50, 47, 89, 0, 4, 3, 81, 0, 1, 17, 65, 2, 116, 32, 0, 1, 17, 65, 108, 2, 97, 0, 1, 97, 2, 110, 111,
-			115, 0, 1, 97, 100, 110, 97, 2, 116, 0, 1, 97, 108, 2, 116, 0, 1, 97, 114, 98, 2, 116, 0, 1, 97, 114, 100, 2, 111, 110,
-			0, 1, 97, 114, 100, 2, 116, 0, 1, 97, 114, 112, 2, 116, 0, 1, 97, 115, 2, 111, 0, 1, 101, 18, 73, 2, 116, 0, 1, 101,
-			114, 2, 105, 17, 65, 0, 1, 101, 114, 2, 105, 109, 101, 110, 116, 0, 1, 101, 116, 2, 111, 114, 105, 0, 1, 105, 2, 105, 0, 1,
-			108, 105, 112, 2, 114, 105, 109, 0, 1, 111, 2, 114, 97, 102, 0, 1, 111, 2, 114, 97, 109, 0, 1, 111, 98, 2, 111, 116, 97, 0,
-			1, 111, 103, 2, 105, 107, 0, 1, 111, 108, 2, 97, 0, 1, 111, 108, 2, 102, 105, 108, 0, 1, 111, 114, 2, 97, 110, 0, 1, 111,
-			114, 2, 101, 115, 0, 1, 111, 114, 112, 2, 114, 0, 1, 111, 114, 114, 117, 115, 2, 97, 116, 0, 1, 111, 116, 2, 97, 0, 1, 111,
-			116, 2, 111, 0, 1, 111, 116, 2, 116, 0, 1, 111, 118, 2, 116, 0, 1, 111, 118, 2, 116, 101, 0, 1, 117, 2, 101, 110, 18, 66,
-			0, 1, 117, 2, 101, 110, 110, 0, 1, 117, 104, 2, 110, 105, 110, 103, 0, 1, 117, 109, 2, 110, 0, 1, 117, 114, 102, 2, 116, 0,
-			1, 117, 114, 117, 2, 117, 97, 121, 0, 1, 121, 98, 2, 110, 0, 1, 121, 107, 115, 2, 110, 105, 0, 1, 121, 116, 2, 110, 105, 110,
-			103, 0, 1, 166, 195, 2, 110, 12, 0, 1, 166, 195, 114, 112, 2, 110, 97, 0, 1, 166, 195, 114, 112, 2, 116, 105, 103, 0, 1, 184,
-			195, 114, 2, 116, 101, 114, 0, 1, 184, 195, 115, 2, 97, 110, 103, 0, 2, 101, 110, 115, 116, 97, 110, 100, 12, 0, 2, 105, 118, 12,
-			0, 2, 108, 97, 115, 0, 2, 108, 101, 109, 0, 2, 108, 121, 99, 101, 114, 105, 110, 0, 2, 114, 97, 110, 0, 2, 114, 105, 98, 0,
-			2, 114, 111, 115, 115, 0, 2, 114, 117, 18, 71, 0, 2, 114, 117, 110, 100, 108, 97, 103, 0, 2, 114, 195, 184, 110, 0, 2, 116, 101,
-			32, 0, 2, 117, 105, 116, 97, 114, 0, 2, 121, 114, 111, 0, 2, 195, 165, 114, 100, 12, 12, 0, 8, 2, 108, 101, 100, 0, 8, 111,
-			98, 2, 97, 114, 116, 0, 8, 111, 98, 2, 101, 121, 0, 8, 111, 108, 2, 32, 0, 8, 111, 108, 2, 103, 0, 103, 1, 97, 2, 114,
-			101, 115, 0, 103, 1, 105, 0, 103, 1, 111, 0, 103, 1, 111, 108, 2, 101, 0, 103, 2, 101, 0, 104, 1, 102, 97, 2, 97, 0, 104,
-			2, 97, 110, 97, 0, 104, 2, 101, 116, 116, 111, 0, 4, 1, 97, 2, 117, 114, 107, 3, 81, 6, 0, 1, 111, 108, 2, 105, 0, 8,
-			101, 114, 2, 105, 115, 116, 0, 101, 114, 1, 21, 2, 28, 33, 3, 81, 6, 36, 34, 0, 4, 101, 110, 1, 111, 107, 121, 115, 112, 3,
-			81, 6, 36, 50, 0, 101, 110, 1, 111, 114, 101, 0, 101, 110, 1, 111, 114, 116, 105, 110, 0, 101, 110, 1, 111, 114, 116, 115, 184, 195,
-			0, 97, 1, 111, 110, 111, 109, 2, 109, 3, 81, 6, 117, 0, 4, 105, 1, 17, 67, 21, 2, 28, 33, 3, 81, 7, 111, 0, 105, 1,
-			21, 2, 28, 33, 0, 108, 101, 1, 111, 111, 103, 3, 81, 20, 14, 55, 0, 114, 97, 110, 100, 101, 8, 2, 32, 3, 81, 34, 35, 50,
-			72, 14, 0, 114, 117, 110, 103, 101, 8, 2, 32, 3, 81, 34, 108, 50, 75, 0, 114, 97, 100, 121, 3, 81, 34, 115, 57, 72, 37, 0,
-			114, 97, 102, 102, 105, 116, 105, 3, 81, 34, 121, 83, 6, 111, 47, 111, 0, 114, 97, 110, 100, 112, 114, 105, 120, 3, 81, 34, 122, 68,
-			48, 34, 6, 111, 0, 114, 111, 115, 1, 32, 110, 101, 3, 81, 34, 124, 0, 114, 195, 184, 100, 1, 101, 108, 98, 166, 195, 3, 81, 34,
-			132, 86, 0, 117, 105, 2, 110, 110, 101, 115, 3, 81, 36, 0, 101, 111, 114, 103, 105, 101, 110, 3, 81, 36, 6, 125, 12, 81, 37, 14,
-			50, 0, 101, 97, 114, 3, 81, 37, 34, 0, 117, 105, 114, 108, 97, 110, 100, 3, 81, 37, 34, 55, 6, 117, 50, 72, 0, 117, 105, 110,
-			101, 97, 3, 81, 37, 50, 6, 36, 117, 0, 117, 105, 108, 108, 111, 116, 105, 110, 101, 3, 81, 37, 57, 40, 47, 6, 37, 12, 50, 14,
-			0, 111, 100, 97, 102, 116, 101, 110, 3, 81, 39, 6, 121, 83, 47, 50, 0, 117, 100, 115, 107, 101, 108, 111, 118, 8, 2, 32, 3, 81,
-			40, 89, 81, 14, 55, 108, 40, 0, 4, 114, 117, 102, 102, 117, 100, 100, 3, 81, 51, 114, 83, 114, 87, 0, 114, 117, 102, 102, 121, 100,
-			100, 0, 108, 111, 117, 99, 101, 115, 116, 101, 114, 3, 81, 55, 109, 89, 47, 109, 0, 106, 111, 114, 100, 101, 3, 81, 57, 39, 108, 0,
-			117, 105, 114, 101, 3, 81, 58, 6, 136, 109, 0, 109, 97, 116, 97, 1, 105, 116, 115, 3, 81, 65, 6, 117, 12, 47, 117, 0, 111, 116,
-			116, 102, 114, 105, 101, 100, 3, 81, 108, 47, 83, 34, 6, 37, 47, 0, 195, 184, 103, 101, 109, 195, 184, 103, 3, 81, 108, 57, 14, 65,
-			109, 57, 0, 117, 116, 104, 114, 105, 101, 3, 81, 108, 87, 51, 37, 0, 117, 108, 102, 115, 116, 114, 101, 97, 109, 3, 81, 109, 55, 83,
-			89, 47, 34, 37, 12, 65, 0, 4, 105, 1, 101, 114, 2, 109, 101, 110, 28, 33, 12, 3, 81, 111, 0, 105, 1, 101, 114, 2, 111, 110,
-			12, 0, 105, 1, 101, 114, 2, 115, 28, 33, 12, 0, 105, 110, 115, 98, 101, 114, 103, 3, 81, 114, 50, 89, 71, 132, 12, 81, 0, 195,
-			166, 1, 110, 3, 81, 115, 0, 97, 116, 101, 115, 8, 2, 32, 3, 81, 115, 57, 47, 89, 0, 97, 98, 108, 101, 8, 3, 81, 115, 57,
-			71, 14, 55, 0, 97, 114, 121, 8, 3, 81, 118, 34, 111, 0, 4, 117, 121, 8, 2, 32, 3, 81, 121, 12, 57, 0, 117, 121, 8, 2,
-			115, 32, 0, 117, 97, 114, 100, 3, 81, 121, 12, 72, 0, 111, 117, 100, 97, 3, 81, 121, 58, 72, 117, 0, 111, 100, 110, 97, 116, 3,
-			81, 124, 50, 6, 118, 47, 0, 111, 100, 109, 111, 114, 103, 101, 110, 3, 81, 124, 65, 6, 108, 12, 50, 0, 111, 98, 101, 108, 105, 110,
-			3, 81, 124, 71, 14, 55, 6, 116, 68, 0, 111, 100, 100, 97, 103, 3, 81, 124, 72, 6, 118, 0, 97, 117, 108, 108, 101, 3, 81, 125,
-			12, 55, 0, 111, 103, 111, 3, 81, 125, 58, 81, 6, 125, 58, 0, 117, 115, 116, 97, 118, 3, 81, 125, 89, 47, 19, 35, 58, 0, 117,
-			101, 114, 110, 115, 101, 121, 3, 81, 132, 12, 50, 89, 37, 0, 101, 114, 116, 105, 101, 3, 81, 132, 47, 37, 0, 4, 101, 108, 101, 3,
-			89, 57, 114, 55, 6, 114, 0, 101, 108, 195, 169, 0, 101, 111, 105, 115, 1, 114, 117, 111, 98, 3, 90, 58, 6, 122, 0, 101, 111, 105,
-			115, 105, 1, 114, 117, 111, 98, 3, 90, 58, 122, 89, 6, 111, 0, 4, 1, 101, 114, 2, 105, 109, 101, 3, 91, 0, 1, 117, 2, 101,
-			110, 101, 0, 2, 105, 114, 111, 0, 105, 101, 114, 1, 108, 97, 3, 91, 6, 37, 34, 0, 4, 105, 1, 101, 114, 2, 28, 33, 12, 3,
-			91, 6, 111, 0, 105, 8, 111, 108, 2, 32, 0, 105, 8, 111, 108, 2, 101, 0, 101, 1, 110, 105, 2, 110, 105, 195, 184, 114, 3, 91,
-			36, 0, 4, 101, 110, 101, 114, 2, 32, 100, 101, 109, 3, 91, 36, 50, 6, 36, 34, 0, 101, 110, 101, 114, 2, 32, 100, 101, 114, 101,
-			115, 0, 101, 110, 101, 114, 2, 32, 104, 97, 109, 0, 101, 110, 101, 114, 2, 32, 104, 101, 110, 100, 101, 0, 4, 101, 110, 101, 118, 101,
-			3, 91, 36, 50, 6, 115, 12, 84, 0, 101, 110, 195, 168, 118, 101, 0, 101, 114, 97, 114, 100, 8, 3, 91, 36, 51, 6, 121, 12, 0,
-			105, 98, 114, 97, 108, 116, 97, 114, 3, 91, 37, 71, 51, 121, 55, 47, 6, 121, 0, 101, 114, 105, 115, 107, 1, 108, 97, 3, 91, 57,
-			6, 37, 12, 34, 89, 81, 0, 101, 114, 105, 101, 114, 1, 108, 97, 3, 91, 57, 6, 37, 108, 0, 101, 114, 105, 101, 116, 1, 108, 97,
-			3, 91, 57, 14, 34, 6, 37, 14, 72, 0, 105, 1, 111, 108, 116, 97, 110, 3, 91, 111, 0, 101, 110, 100, 97, 114, 109, 3, 91, 121,
-			50, 72, 6, 121, 12, 65, 0, 4, 101, 114, 1, 101, 110, 2, 12, 12, 3, 109, 0, 114, 101, 1, 101, 110, 0, 7, 6, 104, 0, 4,
-			1, 17, 65, 2, 25, 3, 0, 4, 1, 119, 2, 105, 115, 107, 121, 3, 0, 4, 1, 119, 2, 105, 116, 3, 0, 4, 2, 106, 3, 0,
-			8, 114, 2, 17, 65, 3, 0, 4, 101, 109, 1, 111, 98, 2, 101, 3, 6, 115, 12, 65, 0, 101, 109, 101, 1, 111, 98, 2, 32, 0,
-			101, 105, 100, 1, 116, 114, 97, 112, 97, 3, 8, 107, 121, 57, 72, 0, 111, 1, 103, 2, 115, 116, 3, 39, 58, 0, 117, 101, 1, 108,
-			105, 115, 2, 116, 3, 40, 6, 115, 0, 118, 3, 84, 0, 4, 3, 107, 0, 1, 116, 2, 101, 110, 0, 111, 119, 97, 114, 100, 3, 107,
-			35, 58, 108, 72, 0, 101, 97, 116, 3, 107, 37, 12, 47, 0, 105, 101, 114, 111, 103, 108, 121, 2, 102, 3, 107, 37, 34, 39, 83, 55,
-			6, 129, 0, 105, 112, 111, 107, 114, 97, 116, 101, 115, 3, 107, 37, 48, 6, 39, 49, 34, 35, 47, 115, 89, 0, 111, 109, 101, 114, 3,
-			107, 39, 65, 6, 36, 34, 0, 4, 117, 103, 104, 3, 107, 57, 40, 12, 0, 117, 119, 0, 117, 103, 101, 115, 8, 2, 32, 3, 107, 57,
-			40, 12, 89, 0, 111, 117, 115, 116, 111, 110, 3, 107, 57, 40, 12, 89, 72, 109, 50, 0, 97, 119, 107, 3, 107, 108, 12, 49, 0, 111,
-			116, 108, 105, 110, 101, 3, 107, 108, 47, 55, 35, 12, 57, 50, 0, 117, 99, 107, 108, 101, 98, 101, 114, 114, 121, 3, 107, 108, 49, 13,
-			55, 71, 115, 34, 37, 0, 111, 110, 101, 121, 3, 107, 108, 50, 37, 0, 117, 110, 116, 8, 2, 32, 3, 107, 108, 50, 47, 0, 117, 109,
-			118, 101, 101, 3, 107, 108, 65, 84, 37, 12, 0, 117, 109, 118, 101, 101, 114, 3, 107, 108, 65, 84, 37, 12, 108, 0, 117, 100, 115, 111,
-			110, 3, 107, 108, 72, 89, 108, 50, 0, 111, 108, 108, 121, 3, 107, 109, 55, 37, 0, 105, 108, 108, 97, 114, 121, 3, 107, 113, 55, 13,
-			16, 36, 0, 101, 114, 101, 102, 111, 114, 100, 3, 107, 115, 12, 34, 83, 125, 12, 72, 0, 97, 105, 103, 8, 3, 107, 115, 57, 81, 0,
-			101, 97, 118, 121, 3, 107, 115, 84, 37, 0, 101, 97, 116, 104, 101, 114, 3, 107, 116, 86, 109, 0, 97, 97, 103, 8, 2, 32, 3, 107,
-			117, 57, 0, 97, 119, 97, 105, 105, 3, 107, 117, 58, 6, 35, 12, 57, 37, 0, 105, 103, 104, 104, 97, 116, 3, 107, 121, 12, 57, 107,
-			117, 72, 0, 111, 117, 115, 101, 99, 111, 97, 116, 3, 107, 121, 40, 89, 49, 39, 58, 72, 0, 97, 119, 116, 104, 111, 114, 110, 101, 3,
-			107, 125, 12, 87, 39, 50, 0, 111, 109, 101, 3, 107, 125, 58, 65, 0, 101, 114, 98, 8, 2, 32, 3, 107, 132, 12, 71, 0, 101, 97,
-			114, 115, 116, 8, 3, 107, 132, 89, 47, 0, 105, 116, 101, 99, 104, 3, 107, 136, 47, 36, 49, 0, 101, 105, 109, 3, 107, 136, 65, 0,
-			121, 100, 101, 8, 3, 107, 136, 72, 0, 101, 114, 99, 117, 108, 101, 8, 3, 115, 34, 49, 6, 129, 55, 0, 97, 114, 105, 110, 101, 1,
-			116, 97, 107, 3, 117, 34, 6, 37, 50, 14, 0, 7, 6, 105, 0, 4, 1, 110, 101, 103, 110, 105, 2, 195, 184, 114, 3, 0, 4, 1,
-			116, 2, 195, 184, 115, 3, 0, 4, 1, 117, 106, 2, 99, 101, 3, 0, 1, 118, 2, 110, 100, 114, 105, 107, 12, 3, 0, 107, 1, 21,
-			2, 101, 114, 28, 33, 12, 12, 3, 2, 111, 49, 0, 4, 103, 1, 116, 2, 32, 12, 12, 3, 4, 111, 0, 103, 1, 116, 2, 101, 32,
-			12, 0, 108, 1, 116, 115, 97, 112, 10, 2, 28, 33, 12, 12, 12, 12, 3, 6, 36, 55, 0, 4, 1, 99, 114, 97, 103, 2, 97, 3,
-			6, 37, 0, 1, 100, 111, 115, 111, 114, 112, 0, 1, 100, 114, 166, 195, 118, 0, 1, 100, 117, 111, 104, 2, 110, 105, 0, 1, 102, 108,
-			121, 115, 2, 100, 101, 0, 1, 104, 97, 119, 115, 2, 108, 105, 0, 1, 107, 2, 101, 116, 12, 0, 1, 108, 111, 98, 2, 118, 105, 97,
-			0, 1, 108, 111, 115, 115, 117, 109, 2, 110, 105, 0, 1, 108, 115, 117, 109, 2, 110, 32, 0, 1, 109, 97, 2, 103, 111, 0, 1, 110,
-			97, 112, 109, 97, 107, 2, 108, 101, 0, 1, 114, 110, 101, 104, 2, 118, 101, 110, 100, 101, 0, 1, 115, 108, 105, 116, 2, 100, 101, 0,
-			1, 115, 115, 105, 115, 115, 105, 109, 2, 112, 112, 105, 0, 8, 98, 108, 97, 2, 110, 111, 0, 8, 100, 101, 98, 98, 97, 0, 8, 100,
-			105, 102, 114, 101, 112, 0, 8, 100, 111, 108, 101, 109, 0, 8, 100, 111, 114, 97, 112, 0, 8, 100, 111, 115, 112, 97, 114, 0, 8, 100,
-			166, 195, 112, 111, 116, 114, 111, 0, 8, 107, 114, 97, 109, 2, 115, 101, 0, 8, 108, 97, 107, 2, 98, 101, 114, 0, 8, 108, 105, 109,
-			2, 116, 115, 0, 8, 109, 97, 114, 121, 112, 2, 100, 0, 8, 111, 114, 101, 116, 115, 97, 2, 100, 101, 0, 8, 114, 111, 109, 166, 195,
-			104, 2, 100, 0, 8, 114, 112, 101, 114, 2, 115, 101, 0, 8, 114, 112, 101, 114, 116, 110, 101, 2, 115, 101, 0, 8, 116, 114, 97, 109,
-			2, 110, 105, 0, 8, 116, 115, 101, 116, 2, 107, 101, 108, 0, 4, 1, 115, 97, 107, 2, 110, 111, 3, 6, 37, 12, 0, 101, 8, 118,
-			108, 97, 115, 0, 103, 101, 8, 108, 100, 101, 118, 3, 6, 37, 14, 0, 103, 101, 118, 101, 108, 1, 108, 108, 97, 3, 6, 37, 14, 84,
-			115, 55, 0, 108, 1, 10, 2, 28, 33, 12, 12, 12, 12, 3, 6, 37, 55, 0, 108, 108, 101, 1, 116, 115, 97, 98, 3, 6, 37, 55,
-			57, 112, 0, 108, 100, 1, 104, 116, 97, 109, 3, 6, 37, 55, 72, 0, 115, 1, 117, 111, 108, 2, 101, 3, 6, 37, 89, 0, 111, 110,
-			1, 114, 111, 3, 6, 37, 108, 50, 0, 4, 1, 98, 111, 116, 2, 97, 115, 3, 6, 111, 0, 1, 99, 115, 105, 100, 2, 112, 0, 1,
-			103, 105, 115, 107, 101, 2, 98, 101, 108, 0, 1, 103, 110, 117, 102, 2, 98, 101, 108, 0, 1, 103, 114, 105, 107, 2, 115, 0, 1, 103,
-			117, 116, 114, 111, 112, 2, 115, 0, 1, 104, 97, 116, 2, 116, 105, 0, 1, 107, 10, 2, 28, 33, 0, 1, 108, 97, 119, 2, 115, 0,
-			1, 108, 101, 2, 97, 115, 0, 1, 108, 101, 98, 111, 2, 115, 107, 0, 1, 108, 105, 102, 2, 115, 116, 0, 1, 108, 108, 105, 99, 105,
-			112, 109, 97, 2, 110, 0, 1, 109, 10, 2, 32, 28, 33, 0, 1, 109, 10, 2, 101, 110, 28, 33, 0, 1, 109, 10, 2, 101, 114, 28,
-			33, 0, 1, 109, 97, 18, 75, 2, 108, 108, 97, 0, 1, 109, 97, 107, 2, 108, 108, 101, 0, 1, 109, 105, 2, 100, 108, 101, 114, 116,
-			105, 100, 0, 1, 110, 101, 112, 2, 98, 101, 108, 0, 1, 110, 111, 112, 115, 105, 100, 2, 98, 101, 108, 0, 1, 112, 115, 97, 2, 99,
-			0, 1, 114, 10, 2, 101, 116, 28, 33, 0, 1, 114, 97, 109, 2, 97, 0, 1, 114, 97, 112, 2, 115, 0, 1, 114, 97, 116, 2, 102,
-			0, 1, 114, 100, 97, 109, 2, 100, 0, 1, 114, 100, 101, 122, 110, 101, 98, 2, 110, 0, 1, 114, 101, 104, 115, 2, 102, 0, 1, 114,
-			101, 118, 111, 116, 110, 105, 114, 98, 2, 108, 116, 101, 0, 1, 114, 105, 112, 115, 97, 2, 110, 0, 1, 114, 114, 111, 104, 2, 98, 101,
-			108, 0, 1, 115, 10, 2, 28, 33, 0, 1, 115, 97, 103, 97, 109, 0, 1, 115, 105, 118, 2, 98, 101, 108, 0, 1, 115, 107, 101, 108,
-			102, 2, 98, 101, 108, 0, 1, 115, 110, 101, 115, 2, 98, 101, 108, 0, 1, 115, 111, 114, 2, 116, 97, 0, 1, 115, 114, 101, 118, 101,
-			114, 2, 98, 101, 108, 0, 1, 115, 114, 101, 118, 101, 114, 114, 105, 2, 98, 101, 108, 0, 1, 115, 117, 97, 108, 112, 2, 98, 101, 108,
-			0, 1, 116, 10, 2, 28, 33, 12, 0, 1, 116, 97, 112, 109, 111, 107, 2, 98, 101, 108, 0, 1, 116, 105, 108, 111, 112, 2, 101, 116,
-			0, 1, 116, 107, 101, 102, 114, 101, 112, 2, 98, 101, 108, 0, 1, 116, 114, 101, 118, 110, 111, 107, 2, 98, 101, 108, 0, 1, 116, 114,
-			111, 115, 2, 101, 0, 1, 116, 115, 101, 103, 103, 117, 115, 2, 98, 101, 108, 0, 1, 116, 120, 105, 115, 2, 110, 115, 107, 0, 1, 118,
-			101, 114, 114, 105, 112, 115, 2, 112, 0, 8, 98, 105, 108, 97, 0, 8, 98, 111, 102, 0, 8, 99, 110, 97, 114, 102, 2, 115, 99, 111,
-			0, 8, 99, 110, 105, 114, 112, 2, 112, 0, 8, 99, 110, 111, 107, 2, 115, 0, 8, 99, 114, 101, 115, 107, 101, 2, 116, 115, 0, 8,
-			99, 166, 195, 114, 112, 2, 115, 0, 8, 100, 97, 114, 2, 115, 101, 0, 8, 100, 101, 102, 102, 117, 109, 2, 115, 101, 0, 8, 100, 110,
-			97, 98, 2, 116, 0, 8, 100, 110, 97, 107, 115, 114, 97, 109, 2, 115, 0, 8, 100, 111, 107, 111, 114, 107, 2, 108, 108, 0, 8, 102,
-			105, 99, 117, 114, 107, 2, 107, 115, 0, 8, 103, 97, 109, 2, 32, 0, 8, 103, 97, 109, 2, 101, 110, 32, 0, 8, 103, 97, 109, 2,
-			115, 116, 101, 114, 0, 8, 103, 101, 114, 2, 115, 116, 101, 114, 0, 8, 107, 115, 97, 109, 2, 110, 12, 0, 8, 108, 97, 103, 101, 109,
-			111, 114, 107, 97, 0, 8, 108, 97, 109, 111, 110, 97, 0, 8, 108, 100, 101, 109, 2, 100, 101, 110, 104, 101, 100, 0, 8, 108, 101, 102,
-			102, 97, 116, 115, 0, 8, 108, 101, 116, 97, 108, 105, 102, 0, 8, 108, 102, 102, 117, 115, 0, 8, 108, 102, 110, 111, 107, 2, 107, 116,
-			0, 8, 108, 105, 102, 111, 100, 166, 195, 112, 0, 8, 108, 105, 102, 111, 105, 108, 98, 105, 98, 0, 8, 108, 105, 102, 111, 109, 111, 104,
-			0, 8, 108, 105, 102, 111, 111, 122, 0, 8, 108, 105, 102, 111, 114, 101, 116, 101, 104, 0, 8, 108, 105, 102, 111, 114, 107, 101, 110, 0,
-			8, 108, 108, 101, 99, 110, 97, 107, 0, 8, 108, 111, 2, 118, 101, 110, 0, 8, 108, 111, 2, 118, 105, 97, 0, 8, 108, 111, 107, 110,
-			97, 108, 101, 109, 0, 8, 108, 111, 115, 2, 100, 0, 8, 108, 115, 117, 109, 2, 109, 0, 8, 108, 117, 107, 2, 115, 115, 0, 8, 109,
-			101, 114, 2, 115, 0, 8, 110, 105, 109, 2, 115, 116, 101, 114, 0, 8, 112, 97, 107, 2, 116, 101, 108, 0, 8, 112, 97, 107, 2, 116,
-			108, 0, 8, 112, 97, 112, 2, 114, 0, 8, 112, 97, 114, 101, 116, 0, 8, 112, 97, 116, 2, 114, 0, 8, 112, 101, 107, 115, 97, 109,
-			0, 8, 112, 111, 107, 2, 12, 0, 8, 112, 111, 107, 115, 101, 108, 101, 116, 0, 8, 112, 111, 107, 115, 111, 107, 110, 111, 114, 98, 0,
-			8, 112, 111, 107, 115, 111, 108, 121, 116, 107, 97, 100, 0, 8, 112, 111, 107, 115, 111, 114, 116, 115, 97, 103, 0, 8, 112, 111, 107, 115,
-			111, 116, 101, 116, 115, 0, 8, 112, 111, 107, 115, 111, 116, 107, 101, 114, 0, 8, 112, 111, 107, 115, 111, 116, 111, 0, 8, 112, 111, 114,
-			116, 110, 97, 108, 105, 102, 0, 8, 112, 111, 114, 116, 110, 97, 115, 105, 109, 0, 8, 112, 111, 114, 116, 110, 101, 0, 8, 112, 111, 116,
-			111, 115, 105, 0, 8, 112, 111, 116, 117, 0, 8, 112, 111, 116, 117, 0, 8, 112, 121, 116, 111, 101, 114, 101, 116, 115, 0, 8, 112, 121,
-			116, 111, 101, 114, 114, 101, 117, 103, 97, 100, 0, 8, 112, 121, 116, 111, 110, 97, 118, 108, 97, 103, 0, 8, 112, 121, 116, 111, 110, 111,
-			109, 0, 8, 112, 121, 116, 111, 116, 105, 108, 0, 8, 112, 121, 116, 111, 116, 117, 97, 0, 8, 114, 101, 118, 121, 116, 0, 8, 114, 111,
-			103, 101, 116, 97, 107, 0, 8, 114, 111, 103, 108, 97, 2, 116, 109, 101, 0, 8, 114, 116, 110, 101, 118, 2, 107, 0, 8, 115, 108, 101,
-			118, 2, 103, 110, 0, 8, 115, 115, 101, 109, 2, 97, 115, 0, 8, 116, 105, 103, 101, 108, 2, 109, 0, 8, 116, 110, 105, 2, 109, 0,
-			8, 116, 114, 97, 2, 107, 12, 0, 8, 116, 114, 97, 112, 2, 115, 107, 0, 8, 116, 115, 101, 102, 2, 118, 105, 116, 97, 115, 0, 8,
-			116, 115, 101, 116, 2, 107, 108, 0, 8, 116, 115, 117, 106, 2, 116, 115, 0, 8, 118, 97, 2, 115, 12, 0, 8, 118, 97, 114, 103, 2,
-			100, 0, 8, 118, 101, 108, 111, 109, 2, 116, 0, 8, 118, 105, 99, 2, 108, 0, 101, 1, 116, 114, 111, 115, 2, 32, 0, 115, 1, 109,
-			101, 114, 2, 32, 0, 101, 8, 114, 97, 109, 3, 6, 111, 14, 0, 4, 108, 108, 101, 1, 114, 100, 97, 107, 115, 101, 3, 6, 111, 55,
-			57, 14, 0, 108, 108, 101, 1, 114, 100, 97, 112, 115, 101, 0, 108, 108, 101, 1, 114, 100, 97, 118, 107, 0, 103, 111, 110, 101, 1, 116,
-			110, 97, 3, 6, 111, 81, 124, 50, 14, 0, 115, 1, 117, 111, 108, 2, 97, 3, 6, 111, 89, 0, 115, 109, 101, 1, 10, 2, 114, 28,
-			33, 3, 6, 111, 89, 65, 109, 0, 4, 1, 103, 101, 114, 116, 115, 109, 105, 104, 2, 109, 115, 3, 6, 114, 0, 1, 107, 121, 114, 2,
-			110, 100, 0, 1, 114, 121, 98, 97, 108, 2, 110, 116, 0, 1, 115, 116, 101, 108, 2, 110, 100, 105, 103, 0, 8, 108, 121, 99, 2, 110,
-			100, 0, 8, 114, 116, 115, 105, 100, 2, 107, 116, 0, 8, 115, 98, 97, 2, 110, 116, 0, 8, 116, 115, 101, 118, 2, 110, 100, 105, 0,
-			8, 116, 115, 110, 105, 2, 110, 107, 116, 0, 110, 100, 101, 1, 10, 2, 28, 33, 12, 12, 3, 6, 114, 50, 14, 0, 110, 103, 1, 109,
-			111, 100, 2, 111, 3, 6, 114, 50, 81, 0, 110, 100, 101, 1, 10, 2, 114, 28, 33, 12, 12, 3, 6, 114, 50, 109, 0, 1, 114, 107,
-			115, 117, 110, 2, 112, 116, 3, 6, 116, 0, 114, 116, 117, 97, 108, 1, 118, 2, 32, 114, 101, 97, 108, 105, 116, 121, 3, 6, 132, 76,
-			123, 20, 14, 59, 0, 4, 1, 116, 110, 101, 108, 97, 118, 2, 110, 111, 3, 7, 37, 0, 8, 108, 101, 2, 116, 101, 0, 8, 116, 114,
-			101, 112, 115, 107, 101, 2, 115, 101, 0, 4, 107, 1, 10, 2, 107, 28, 33, 12, 3, 7, 111, 0, 107, 1, 21, 2, 107, 28, 33, 12,
-			12, 12, 0, 107, 1, 116, 115, 97, 21, 2, 107, 28, 33, 12, 12, 12, 0, 4, 107, 1, 21, 2, 28, 33, 12, 12, 12, 3, 7, 111,
-			49, 0, 107, 1, 114, 111, 10, 2, 28, 33, 12, 12, 0, 100, 1, 10, 2, 28, 33, 12, 3, 7, 111, 86, 0, 115, 109, 101, 1, 10,
-			2, 28, 33, 3, 7, 111, 89, 65, 14, 0, 4, 8, 114, 107, 109, 111, 2, 110, 103, 12, 12, 3, 7, 114, 0, 107, 1, 114, 10, 2,
-			107, 28, 33, 0, 107, 1, 114, 21, 2, 107, 28, 33, 12, 12, 12, 12, 0, 107, 1, 116, 115, 101, 21, 2, 107, 28, 33, 12, 12, 12,
-			0, 107, 1, 114, 10, 2, 28, 33, 12, 12, 3, 7, 114, 49, 0, 1, 114, 10, 2, 117, 109, 28, 33, 3, 8, 8, 111, 0, 4, 107,
-			101, 114, 1, 10, 2, 101, 116, 28, 33, 12, 12, 3, 8, 37, 49, 7, 36, 0, 107, 101, 114, 1, 114, 98, 10, 2, 101, 28, 33, 12,
-			12, 0, 4, 107, 101, 114, 1, 10, 2, 28, 33, 12, 12, 3, 8, 37, 49, 108, 0, 107, 101, 114, 1, 109, 10, 2, 101, 28, 33, 12,
-			12, 0, 107, 101, 114, 1, 114, 116, 10, 2, 101, 28, 33, 12, 0, 107, 101, 114, 1, 116, 10, 2, 101, 28, 33, 12, 0, 4, 101, 1,
-			10, 2, 28, 33, 12, 12, 12, 12, 3, 8, 57, 14, 0, 101, 1, 10, 2, 108, 105, 118, 28, 33, 0, 101, 1, 115, 10, 2, 28, 33,
-			0, 101, 110, 1, 10, 2, 28, 33, 3, 8, 57, 14, 50, 0, 4, 101, 1, 10, 2, 114, 28, 33, 12, 12, 12, 3, 8, 57, 109, 0,
-			101, 114, 1, 98, 105, 109, 97, 110, 0, 101, 114, 1, 108, 97, 114, 116, 115, 117, 97, 0, 4, 1, 109, 10, 2, 115, 107, 28, 33, 3,
-			8, 111, 0, 1, 114, 111, 108, 97, 107, 2, 117, 115, 0, 101, 1, 10, 2, 114, 101, 28, 33, 3, 8, 111, 7, 114, 0, 116, 117, 109,
-			1, 21, 2, 109, 28, 33, 3, 8, 111, 47, 126, 0, 116, 117, 109, 1, 21, 2, 28, 33, 3, 8, 111, 47, 126, 65, 0, 4, 107, 101,
-			114, 1, 21, 2, 101, 110, 28, 33, 12, 12, 3, 8, 111, 49, 109, 0, 107, 101, 114, 1, 110, 97, 107, 21, 2, 101, 32, 28, 33, 12,
-			12, 12, 0, 4, 115, 107, 1, 10, 2, 32, 28, 33, 12, 3, 8, 111, 89, 81, 0, 115, 107, 1, 10, 2, 101, 28, 33, 12, 0, 115,
-			107, 1, 10, 2, 116, 28, 33, 12, 0, 117, 109, 1, 10, 2, 109, 28, 33, 3, 8, 111, 126, 0, 117, 109, 1, 10, 2, 28, 33, 3,
-			8, 111, 126, 65, 0, 103, 1, 109, 101, 112, 108, 166, 195, 106, 104, 100, 117, 103, 3, 8, 121, 57, 0, 110, 100, 1, 115, 117, 116, 2,
-			12, 12, 3, 14, 50, 0, 4, 108, 101, 1, 100, 111, 3, 21, 102, 114, 0, 109, 112, 114, 111, 109, 112, 116, 117, 0, 116, 104, 101, 1,
-			108, 98, 3, 35, 12, 57, 86, 0, 8, 116, 2, 103, 32, 12, 3, 36, 0, 107, 115, 101, 116, 1, 107, 2, 32, 3, 36, 81, 89, 14,
-			86, 0, 115, 105, 107, 1, 114, 2, 101, 3, 36, 89, 37, 49, 0, 4, 1, 17, 67, 2, 17, 67, 101, 12, 3, 37, 0, 1, 18, 67,
-			2, 18, 71, 101, 0, 1, 18, 67, 2, 18, 71, 114, 101, 0, 1, 18, 68, 2, 107, 101, 0, 1, 18, 73, 2, 108, 101, 12, 12, 0,
-			1, 102, 2, 110, 107, 195, 166, 109, 0, 1, 107, 2, 17, 67, 101, 12, 12, 0, 1, 107, 2, 18, 74, 18, 76, 12, 12, 0, 1, 107,
-			2, 109, 110, 105, 110, 103, 12, 0, 1, 109, 2, 115, 116, 97, 110, 107, 101, 0, 1, 109, 115, 2, 108, 101, 0, 1, 114, 2, 99, 101,
-			0, 1, 114, 101, 116, 110, 97, 102, 110, 105, 0, 1, 116, 2, 100, 101, 21, 0, 1, 116, 2, 110, 18, 76, 0, 1, 116, 115, 2, 108,
-			97, 114, 116, 0, 1, 118, 2, 110, 107, 111, 114, 116, 0, 1, 118, 2, 115, 116, 101, 12, 0, 1, 118, 32, 101, 100, 118, 97, 104, 2,
-			115, 116, 32, 109, 105, 103, 0, 1, 118, 32, 101, 118, 97, 104, 2, 115, 116, 32, 109, 105, 103, 0, 1, 118, 32, 114, 97, 104, 2, 115,
-			116, 32, 109, 105, 103, 0, 1, 118, 104, 2, 108, 12, 0, 8, 118, 2, 115, 116, 32, 100, 101, 110, 32, 116, 105, 108, 0, 8, 118, 2,
-			115, 116, 32, 115, 105, 103, 0, 101, 1, 100, 2, 116, 114, 105, 99, 104, 0, 101, 1, 108, 115, 101, 108, 0, 101, 1, 110, 110, 111, 114,
-			0, 101, 1, 117, 111, 108, 0, 101, 8, 98, 98, 111, 114, 0, 101, 8, 110, 97, 108, 101, 109, 0, 101, 8, 110, 110, 97, 0, 101, 8,
-			115, 117, 115, 0, 101, 8, 122, 117, 115, 0, 103, 1, 100, 114, 166, 195, 118, 0, 103, 1, 108, 2, 110, 101, 0, 118, 8, 108, 98, 2,
-			101, 32, 0, 4, 1, 107, 2, 115, 116, 101, 12, 3, 37, 12, 0, 1, 114, 103, 2, 109, 18, 76, 0, 100, 101, 108, 8, 2, 32, 3,
-			37, 12, 86, 14, 55, 0, 101, 1, 114, 102, 3, 37, 14, 0, 4, 101, 116, 1, 114, 101, 3, 37, 14, 86, 0, 118, 101, 116, 1, 103,
-			2, 32, 0, 114, 111, 115, 104, 105, 1, 104, 2, 109, 97, 3, 37, 34, 39, 91, 6, 37, 0, 107, 101, 114, 1, 10, 2, 101, 114, 28,
-			33, 12, 3, 37, 49, 6, 36, 0, 4, 107, 101, 114, 1, 110, 10, 2, 101, 32, 28, 33, 12, 3, 37, 49, 6, 36, 34, 0, 107, 101,
-			114, 1, 110, 10, 2, 101, 116, 32, 28, 33, 12, 0, 107, 101, 114, 1, 110, 117, 10, 2, 28, 33, 12, 0, 107, 101, 114, 1, 114, 97,
-			107, 10, 2, 101, 28, 33, 12, 0, 103, 110, 1, 115, 2, 97, 108, 3, 37, 50, 0, 108, 108, 111, 116, 1, 112, 97, 112, 2, 12, 3,
-			37, 55, 6, 108, 47, 0, 108, 108, 97, 100, 115, 1, 116, 115, 3, 37, 55, 6, 118, 89, 0, 4, 108, 108, 1, 114, 98, 2, 101, 114,
-			101, 3, 37, 55, 57, 0, 108, 108, 1, 118, 97, 112, 2, 111, 0, 4, 108, 100, 1, 98, 2, 195, 184, 114, 3, 37, 55, 72, 0, 108,
-			100, 1, 118, 2, 105, 103, 0, 4, 98, 101, 1, 112, 2, 116, 195, 184, 106, 3, 37, 58, 0, 112, 1, 110, 107, 2, 116, 97, 110, 103,
-			0, 103, 1, 116, 115, 2, 109, 97, 3, 37, 81, 0, 115, 114, 97, 101, 108, 8, 100, 2, 105, 3, 37, 89, 34, 121, 6, 36, 55, 0,
-			110, 103, 101, 1, 108, 2, 114, 105, 3, 55, 117, 68, 91, 36, 0, 4, 1, 17, 67, 2, 101, 32, 3, 57, 0, 1, 99, 2, 97, 0,
-			1, 99, 2, 101, 110, 110, 105, 0, 1, 100, 117, 2, 101, 0, 1, 108, 111, 2, 101, 0, 1, 110, 117, 106, 2, 111, 114, 0, 1, 115,
-			2, 111, 110, 0, 1, 115, 97, 2, 101, 0, 2, 101, 114, 32, 0, 2, 101, 116, 32, 0, 2, 117, 109, 32, 0, 1, 115, 2, 97, 114,
-			3, 57, 6, 0, 111, 1, 110, 101, 115, 2, 114, 101, 114, 3, 57, 6, 39, 0, 101, 119, 3, 57, 6, 40, 0, 4, 101, 114, 1, 99,
-			110, 97, 108, 3, 57, 6, 114, 0, 101, 114, 1, 99, 110, 97, 110, 105, 102, 0, 101, 114, 1, 99, 110, 101, 114, 101, 102, 110, 111, 107,
-			0, 101, 114, 1, 100, 97, 98, 114, 97, 98, 0, 101, 114, 1, 100, 97, 110, 101, 114, 103, 0, 101, 114, 1, 107, 110, 97, 98, 0, 101,
-			114, 1, 108, 97, 112, 115, 0, 101, 114, 1, 108, 97, 112, 115, 101, 0, 101, 114, 1, 108, 101, 116, 97, 0, 101, 114, 1, 108, 108, 111,
-			99, 0, 101, 114, 1, 108, 117, 99, 105, 116, 114, 97, 112, 0, 101, 114, 1, 109, 117, 116, 115, 111, 107, 0, 101, 114, 1, 110, 101, 100,
-			0, 101, 114, 1, 112, 117, 111, 114, 99, 0, 101, 114, 1, 115, 110, 97, 110, 105, 102, 0, 101, 114, 1, 115, 115, 111, 100, 0, 101, 114,
-			1, 116, 101, 109, 0, 101, 114, 1, 116, 110, 97, 103, 101, 108, 101, 0, 101, 114, 1, 116, 110, 101, 114, 0, 101, 114, 1, 116, 114, 111,
-			112, 0, 101, 114, 101, 116, 1, 115, 115, 111, 100, 3, 57, 6, 114, 14, 86, 0, 4, 101, 110, 1, 10, 2, 101, 114, 28, 33, 3, 57,
-			6, 116, 50, 0, 101, 110, 1, 10, 2, 115, 107, 28, 33, 0, 4, 101, 1, 108, 105, 109, 97, 102, 21, 3, 57, 14, 0, 101, 1, 114,
-			101, 0, 101, 1, 114, 111, 116, 115, 105, 104, 21, 0, 101, 1, 114, 166, 195, 114, 112, 0, 97, 118, 1, 109, 3, 57, 35, 58, 0, 111,
-			1, 107, 2, 115, 107, 3, 57, 108, 0, 4, 101, 114, 1, 114, 101, 3, 57, 109, 0, 111, 114, 1, 110, 101, 115, 0, 4, 101, 1, 118,
-			2, 116, 32, 99, 111, 110, 103, 3, 57, 116, 0, 101, 1, 118, 2, 116, 110, 97, 109, 0, 118, 101, 114, 1, 103, 112, 111, 2, 32, 3,
-			81, 111, 34, 0, 4, 3, 111, 0, 1, 17, 67, 2, 17, 67, 0, 1, 18, 68, 2, 18, 75, 97, 0, 1, 18, 68, 2, 107, 18, 69,
-			12, 0, 1, 18, 71, 2, 107, 97, 110, 116, 12, 0, 1, 18, 71, 2, 107, 101, 0, 1, 98, 2, 17, 67, 12, 12, 12, 0, 1, 98,
-			2, 98, 101, 108, 0, 1, 98, 2, 101, 114, 32, 0, 1, 98, 2, 107, 105, 110, 105, 0, 1, 98, 2, 107, 117, 98, 101, 0, 1, 98,
-			2, 108, 12, 0, 1, 98, 2, 108, 108, 101, 32, 12, 12, 12, 0, 1, 98, 2, 108, 108, 101, 110, 12, 12, 12, 0, 1, 98, 2, 108,
-			108, 101, 110, 32, 12, 0, 1, 98, 2, 108, 108, 101, 114, 32, 12, 0, 1, 98, 2, 108, 108, 101, 116, 12, 12, 12, 0, 1, 98, 2,
-			112, 12, 0, 1, 98, 2, 115, 111, 110, 0, 1, 99, 2, 110, 110, 0, 1, 99, 105, 100, 101, 109, 2, 110, 0, 1, 100, 2, 107, 116,
-			12, 0, 1, 100, 2, 115, 18, 75, 97, 0, 1, 100, 2, 115, 107, 101, 116, 116, 0, 1, 100, 2, 115, 107, 111, 0, 1, 100, 2, 115,
-			107, 114, 101, 112, 97, 110, 115, 0, 1, 100, 2, 115, 107, 114, 101, 116, 0, 1, 100, 2, 115, 107, 114, 105, 109, 105, 0, 1, 100, 2,
-			115, 107, 117, 0, 1, 100, 2, 115, 107, 118, 97, 0, 1, 100, 110, 97, 104, 2, 18, 75, 0, 1, 100, 110, 105, 2, 115, 107, 0, 1,
-			100, 114, 111, 106, 2, 115, 107, 0, 1, 102, 2, 107, 17, 67, 18, 69, 0, 1, 102, 2, 108, 12, 0, 1, 102, 2, 110, 107, 117, 108,
-			0, 1, 102, 2, 110, 115, 107, 121, 0, 1, 102, 97, 114, 103, 2, 115, 107, 0, 1, 102, 97, 114, 116, 2, 107, 0, 1, 102, 110, 111,
-			107, 2, 115, 107, 101, 114, 0, 1, 102, 110, 111, 107, 2, 115, 107, 101, 114, 101, 0, 1, 104, 2, 108, 115, 0, 1, 104, 2, 110, 0,
-			1, 104, 99, 2, 107, 12, 0, 1, 107, 2, 18, 74, 18, 69, 12, 12, 0, 1, 107, 2, 100, 101, 114, 105, 107, 12, 12, 0, 1, 107,
-			2, 107, 12, 12, 0, 1, 107, 105, 98, 2, 110, 105, 0, 1, 107, 114, 111, 2, 100, 101, 12, 0, 1, 107, 115, 2, 17, 67, 116, 0,
-			1, 107, 115, 2, 98, 101, 116, 12, 12, 0, 1, 107, 115, 2, 107, 12, 12, 0, 1, 107, 115, 2, 108, 105, 102, 116, 12, 0, 1, 107,
-			115, 2, 108, 195, 184, 98, 12, 12, 0, 1, 107, 115, 2, 109, 111, 12, 0, 1, 107, 115, 21, 2, 108, 100, 12, 12, 0, 1, 108, 2,
-			107, 118, 12, 0, 1, 108, 2, 109, 110, 105, 12, 0, 1, 108, 2, 115, 107, 0, 1, 108, 2, 116, 101, 114, 0, 1, 108, 97, 105, 99,
-			101, 112, 115, 2, 115, 116, 0, 1, 108, 97, 110, 114, 117, 111, 106, 21, 0, 1, 108, 98, 117, 112, 0, 1, 108, 102, 110, 111, 107, 21,
-			2, 107, 116, 0, 1, 108, 105, 98, 2, 115, 0, 1, 108, 107, 2, 115, 116, 114, 0, 1, 108, 107, 121, 99, 21, 2, 115, 116, 0, 1,
-			108, 108, 97, 98, 2, 115, 116, 105, 107, 0, 1, 108, 112, 2, 18, 66, 18, 76, 12, 0, 1, 108, 112, 2, 107, 12, 0, 1, 108, 114,
-			111, 102, 2, 115, 0, 1, 108, 115, 2, 109, 0, 1, 109, 2, 107, 115, 116, 117, 114, 0, 1, 109, 97, 110, 121, 100, 2, 107, 12, 0,
-			1, 110, 2, 99, 104, 101, 0, 1, 110, 2, 107, 18, 69, 0, 1, 110, 100, 108, 105, 118, 2, 115, 0, 1, 110, 101, 108, 2, 110, 0,
-			1, 110, 101, 112, 2, 115, 0, 1, 110, 105, 108, 107, 2, 107, 0, 1, 110, 107, 2, 118, 0, 1, 110, 107, 101, 116, 2, 107, 0, 1,
-			112, 2, 110, 115, 101, 108, 0, 1, 112, 2, 110, 115, 108, 101, 114, 0, 1, 112, 2, 112, 12, 0, 1, 112, 114, 97, 104, 2, 107, 115,
-			0, 1, 112, 115, 2, 108, 100, 0, 1, 114, 2, 18, 73, 18, 69, 12, 12, 0, 1, 114, 2, 18, 75, 17, 67, 18, 69, 0, 1, 114,
-			2, 18, 75, 18, 69, 0, 1, 114, 2, 18, 75, 18, 76, 0, 1, 114, 2, 115, 107, 97, 103, 101, 12, 0, 1, 114, 2, 115, 116, 105,
-			107, 12, 0, 1, 114, 10, 2, 115, 107, 0, 1, 114, 18, 66, 2, 108, 108, 0, 1, 114, 98, 2, 116, 101, 0, 1, 114, 98, 2, 116,
-			105, 115, 0, 1, 114, 102, 0, 1, 114, 102, 2, 101, 114, 0, 1, 114, 102, 2, 101, 116, 0, 1, 114, 102, 2, 102, 12, 0, 1, 114,
-			102, 2, 103, 0, 1, 114, 102, 2, 107, 101, 110, 0, 1, 114, 102, 2, 107, 118, 97, 114, 116, 101, 114, 0, 1, 114, 102, 2, 115, 112,
-			97, 114, 107, 0, 1, 114, 102, 2, 115, 116, 97, 100, 0, 1, 114, 102, 2, 115, 116, 101, 100, 0, 1, 114, 103, 2, 115, 12, 12, 0,
-			1, 114, 105, 2, 115, 107, 12, 0, 1, 114, 107, 115, 2, 100, 101, 114, 0, 1, 114, 107, 115, 2, 118, 101, 114, 0, 1, 114, 111, 114,
-			114, 101, 116, 21, 2, 115, 0, 1, 114, 112, 2, 109, 12, 0, 1, 114, 112, 2, 115, 12, 12, 0, 1, 114, 116, 2, 18, 73, 12, 12,
-			0, 1, 114, 116, 2, 108, 108, 0, 1, 115, 2, 100, 101, 110, 32, 12, 0, 1, 115, 101, 98, 2, 100, 100, 101, 0, 1, 115, 117, 109,
-			2, 107, 0, 1, 116, 2, 100, 12, 12, 0, 1, 116, 2, 101, 116, 32, 0, 1, 116, 2, 107, 97, 12, 0, 1, 116, 2, 110, 110, 105,
-			116, 117, 115, 0, 1, 116, 2, 116, 0, 1, 116, 2, 116, 12, 0, 1, 116, 2, 116, 12, 12, 0, 1, 116, 10, 2, 115, 195, 184, 114,
-			28, 33, 12, 0, 1, 116, 21, 2, 107, 32, 12, 12, 0, 1, 116, 105, 108, 111, 112, 2, 107, 0, 1, 116, 107, 101, 106, 111, 114, 112,
-			2, 108, 0, 1, 116, 110, 97, 2, 12, 0, 1, 116, 110, 101, 118, 2, 108, 0, 1, 116, 114, 97, 2, 107, 0, 1, 116, 114, 97, 112,
-			0, 1, 116, 115, 2, 103, 12, 12, 0, 1, 116, 115, 2, 108, 32, 111, 118, 101, 114, 0, 1, 116, 115, 2, 108, 102, 117, 108, 100, 0,
-			1, 116, 115, 17, 65, 2, 108, 32, 0, 1, 116, 115, 32, 101, 100, 118, 97, 104, 2, 108, 32, 0, 1, 116, 115, 32, 101, 114, 101, 109,
-			2, 108, 32, 111, 118, 101, 114, 32, 0, 1, 116, 115, 32, 107, 115, 108, 101, 103, 110, 101, 2, 108, 12, 0, 1, 116, 115, 32, 107, 115,
-			110, 97, 100, 2, 108, 12, 0, 1, 116, 115, 32, 110, 101, 100, 111, 109, 2, 108, 32, 0, 1, 116, 115, 32, 110, 101, 100, 111, 109, 117,
-			2, 108, 32, 0, 1, 116, 115, 32, 110, 101, 103, 101, 2, 108, 32, 0, 1, 116, 115, 32, 114, 97, 104, 2, 108, 32, 0, 1, 116, 115,
-			32, 114, 97, 118, 2, 108, 32, 111, 118, 101, 114, 32, 0, 1, 116, 115, 32, 114, 101, 2, 108, 32, 111, 118, 101, 114, 32, 0, 1, 116,
-			115, 32, 114, 111, 116, 115, 2, 108, 32, 0, 1, 116, 115, 97, 108, 112, 2, 18, 75, 0, 1, 116, 115, 105, 116, 97, 116, 115, 21, 2,
-			107, 0, 1, 116, 115, 115, 118, 105, 108, 2, 108, 0, 1, 116, 117, 98, 2, 107, 0, 1, 118, 2, 18, 66, 97, 0, 1, 118, 2, 18,
-			75, 105, 0, 1, 118, 2, 98, 12, 0, 1, 118, 2, 99, 107, 0, 1, 118, 2, 100, 101, 114, 101, 0, 1, 118, 2, 101, 116, 0, 1,
-			118, 2, 107, 116, 18, 69, 12, 12, 0, 1, 118, 2, 110, 103, 108, 97, 115, 12, 12, 12, 0, 1, 118, 2, 110, 103, 195, 165, 114, 100,
-			12, 0, 1, 118, 2, 110, 107, 195, 166, 108, 100, 12, 0, 1, 118, 2, 110, 115, 97, 109, 108, 105, 110, 103, 0, 1, 118, 2, 115, 115,
-			101, 108, 117, 108, 108, 101, 0, 1, 118, 107, 2, 18, 72, 12, 12, 0, 1, 118, 115, 2, 110, 115, 0, 1, 118, 116, 114, 111, 98, 2,
-			115, 0, 1, 118, 184, 195, 104, 2, 115, 107, 0, 2, 17, 67, 11, 0, 2, 100, 115, 0, 2, 100, 116, 0, 2, 103, 103, 106, 111, 12,
-			12, 0, 2, 103, 103, 195, 184, 114, 12, 12, 0, 2, 110, 117, 0, 8, 2, 110, 105, 0, 8, 108, 2, 100, 116, 32, 110, 101, 100, 101,
-			114, 108, 97, 103, 0, 8, 108, 2, 100, 116, 32, 111, 118, 101, 114, 108, 97, 115, 116, 0, 8, 108, 2, 100, 116, 32, 115, 107, 97, 100,
-			101, 0, 8, 108, 2, 100, 116, 32, 117, 110, 100, 101, 114, 0, 8, 108, 107, 2, 115, 116, 101, 114, 0, 8, 116, 2, 101, 114, 32, 0,
-			8, 116, 115, 2, 108, 32, 111, 118, 101, 114, 32, 100, 101, 17, 67, 0, 8, 116, 115, 2, 108, 32, 111, 118, 101, 114, 32, 104, 97, 109,
-			0, 8, 116, 115, 2, 108, 32, 111, 118, 101, 114, 32, 104, 101, 110, 100, 101, 0, 8, 116, 115, 32, 100, 101, 109, 2, 108, 32, 0, 8,
-			116, 115, 32, 101, 100, 118, 97, 104, 2, 108, 32, 0, 8, 116, 115, 32, 101, 116, 102, 105, 107, 115, 2, 108, 32, 0, 8, 116, 115, 32,
-			101, 118, 97, 104, 2, 108, 32, 0, 8, 116, 115, 32, 107, 115, 110, 97, 100, 2, 108, 32, 0, 8, 116, 115, 32, 110, 101, 2, 108, 32,
-			0, 8, 116, 115, 32, 110, 105, 100, 2, 108, 32, 0, 8, 116, 115, 32, 110, 105, 109, 2, 108, 32, 0, 8, 116, 115, 32, 110, 105, 115,
-			2, 108, 32, 0, 8, 116, 115, 32, 114, 97, 104, 2, 108, 32, 0, 8, 116, 115, 32, 114, 101, 116, 102, 105, 107, 115, 2, 108, 32, 0,
-			8, 116, 115, 32, 115, 101, 100, 110, 101, 104, 2, 108, 32, 0, 8, 116, 115, 32, 115, 101, 114, 101, 100, 2, 108, 32, 0, 8, 116, 115,
-			32, 115, 101, 114, 101, 106, 2, 108, 32, 0, 8, 116, 115, 32, 115, 110, 97, 104, 2, 108, 32, 0, 8, 116, 115, 32, 116, 102, 105, 107,
-			115, 2, 108, 32, 0, 8, 116, 115, 32, 121, 110, 2, 108, 32, 0, 100, 101, 1, 108, 2, 32, 97, 110, 100, 114, 101, 0, 100, 101, 1,
-			108, 2, 32, 100, 101, 109, 0, 100, 101, 1, 108, 2, 32, 100, 101, 110, 0, 100, 101, 1, 108, 2, 32, 100, 101, 114, 101, 115, 0, 100,
-			101, 1, 108, 2, 32, 100, 101, 116, 0, 100, 101, 1, 108, 2, 32, 100, 105, 103, 0, 100, 101, 1, 108, 2, 32, 104, 97, 109, 0, 100,
-			101, 1, 108, 2, 32, 104, 101, 110, 100, 101, 0, 100, 101, 1, 108, 2, 32, 106, 101, 114, 0, 100, 101, 1, 108, 2, 32, 106, 101, 114,
-			101, 115, 0, 100, 101, 1, 108, 2, 32, 109, 105, 103, 0, 100, 101, 1, 108, 2, 32, 111, 115, 0, 100, 101, 1, 108, 2, 32, 118, 111,
-			114, 101, 115, 0, 100, 101, 8, 108, 32, 101, 107, 107, 105, 0, 100, 101, 8, 108, 32, 101, 110, 110, 117, 107, 0, 100, 101, 8, 108, 32,
-			103, 101, 106, 32, 110, 97, 107, 0, 100, 101, 8, 108, 32, 105, 0, 100, 101, 8, 108, 32, 105, 32, 110, 97, 107, 0, 100, 101, 8, 108,
-			32, 105, 118, 0, 100, 101, 8, 108, 32, 105, 118, 32, 110, 97, 107, 0, 100, 101, 8, 108, 32, 110, 97, 107, 0, 100, 101, 8, 108, 32,
-			116, 100, 111, 103, 0, 100, 101, 8, 108, 32, 116, 101, 110, 110, 117, 107, 0, 100, 101, 8, 108, 32, 116, 115, 100, 101, 98, 0, 100, 101,
-			8, 108, 32, 117, 100, 0, 100, 101, 8, 108, 32, 117, 100, 32, 110, 97, 107, 0, 101, 1, 100, 2, 115, 101, 108, 0, 101, 1, 112, 2,
-			100, 101, 115, 116, 97, 108, 0, 101, 1, 112, 112, 105, 104, 0, 103, 1, 100, 101, 108, 2, 12, 12, 0, 103, 1, 108, 116, 110, 101, 102,
-			102, 111, 0, 103, 1, 114, 2, 17, 67, 0, 115, 1, 117, 111, 108, 0, 118, 1, 103, 2, 32, 0, 118, 101, 1, 103, 2, 32, 0, 4,
-			1, 102, 2, 107, 115, 101, 114, 98, 97, 100, 3, 111, 6, 0, 1, 102, 2, 107, 115, 101, 114, 98, 105, 108, 108, 101, 100, 0, 1, 102,
-			2, 107, 115, 101, 114, 101, 0, 1, 102, 2, 107, 115, 101, 114, 105, 110, 103, 0, 1, 102, 2, 107, 115, 101, 114, 118, 195, 166, 115, 107,
-			101, 0, 1, 114, 18, 75, 2, 115, 116, 105, 110, 12, 0, 101, 1, 114, 114, 2, 114, 101, 3, 111, 6, 115, 12, 0, 101, 114, 101, 114,
-			1, 114, 114, 3, 111, 6, 115, 12, 109, 0, 4, 101, 1, 114, 10, 2, 108, 28, 33, 12, 12, 3, 111, 6, 116, 0, 101, 1, 114, 111,
-			2, 110, 116, 32, 0, 101, 1, 114, 111, 2, 110, 116, 101, 110, 32, 0, 101, 1, 114, 111, 2, 110, 116, 101, 110, 115, 32, 0, 118, 101,
-			114, 1, 103, 2, 32, 3, 111, 34, 0, 116, 101, 115, 8, 114, 102, 2, 32, 3, 111, 47, 0, 4, 107, 1, 17, 67, 2, 97, 110, 101,
-			114, 12, 12, 3, 111, 49, 0, 107, 1, 17, 67, 2, 101, 114, 12, 0, 107, 1, 21, 2, 97, 116, 28, 33, 12, 12, 0, 107, 1, 21,
-			2, 101, 116, 28, 33, 12, 12, 12, 0, 4, 107, 1, 10, 2, 97, 108, 115, 107, 28, 33, 12, 3, 111, 49, 6, 0, 107, 1, 21, 2,
-			97, 110, 116, 28, 33, 12, 0, 110, 107, 1, 118, 2, 101, 110, 100, 101, 114, 3, 111, 50, 49, 0, 4, 110, 100, 1, 102, 2, 101, 108,
-			3, 111, 50, 72, 0, 110, 100, 1, 102, 2, 121, 114, 107, 0, 110, 100, 1, 118, 2, 114, 117, 101, 0, 110, 103, 1, 118, 2, 117, 109,
-			109, 105, 12, 3, 111, 50, 81, 0, 108, 100, 3, 111, 55, 0, 108, 111, 112, 1, 112, 115, 3, 111, 55, 6, 109, 48, 0, 108, 108, 101,
-			1, 116, 114, 97, 2, 114, 105, 3, 111, 55, 14, 0, 108, 100, 1, 100, 2, 111, 3, 111, 55, 72, 0, 4, 103, 1, 108, 108, 101, 104,
-			3, 111, 57, 0, 103, 8, 108, 2, 17, 67, 0, 118, 1, 108, 2, 25, 12, 12, 3, 111, 58, 0, 109, 97, 103, 101, 3, 111, 65, 111,
-			75, 0, 100, 103, 101, 1, 114, 3, 111, 75, 0, 4, 103, 1, 108, 105, 102, 2, 114, 97, 110, 3, 111, 81, 0, 103, 1, 114, 102, 2,
-			106, 111, 0, 103, 2, 114, 117, 112, 112, 101, 0, 103, 105, 1, 108, 3, 111, 81, 57, 0, 118, 1, 108, 2, 101, 116, 32, 3, 111, 84,
-			0, 118, 101, 114, 1, 103, 100, 165, 195, 114, 3, 111, 84, 109, 0, 115, 1, 18, 73, 2, 12, 3, 111, 89, 0, 115, 114, 97, 101, 108,
-			115, 107, 3, 111, 89, 34, 121, 6, 114, 55, 89, 49, 0, 115, 114, 97, 101, 108, 101, 114, 3, 111, 89, 34, 121, 6, 114, 55, 108, 0,
-			115, 114, 97, 101, 108, 3, 111, 89, 34, 121, 12, 55, 0, 115, 116, 101, 108, 116, 101, 110, 1, 109, 3, 111, 89, 47, 115, 55, 47, 36,
-			50, 0, 115, 105, 97, 110, 97, 1, 117, 111, 108, 3, 111, 89, 57, 6, 118, 50, 118, 0, 115, 107, 1, 118, 17, 65, 2, 32, 3, 111,
-			89, 81, 0, 115, 105, 107, 111, 1, 114, 3, 111, 89, 111, 49, 124, 0, 101, 1, 114, 101, 116, 2, 108, 3, 111, 116, 0, 1, 108, 99,
-			2, 102, 3, 113, 0, 100, 103, 101, 116, 1, 114, 98, 3, 113, 75, 37, 47, 0, 4, 1, 17, 67, 2, 109, 17, 67, 12, 3, 114, 0,
-			1, 17, 67, 2, 109, 18, 71, 0, 1, 17, 67, 2, 110, 103, 12, 12, 12, 0, 1, 17, 67, 2, 110, 107, 101, 0, 1, 18, 67, 2,
-			112, 0, 1, 18, 67, 2, 112, 112, 0, 1, 18, 68, 2, 18, 66, 11, 12, 0, 1, 18, 68, 2, 107, 12, 0, 1, 18, 71, 2, 107,
-			12, 0, 1, 18, 71, 2, 108, 108, 101, 12, 12, 0, 1, 18, 72, 2, 102, 116, 101, 0, 1, 18, 73, 2, 18, 66, 12, 12, 0, 1,
-			18, 73, 2, 108, 108, 12, 12, 0, 1, 18, 74, 2, 18, 68, 11, 97, 12, 0, 1, 18, 74, 2, 107, 115, 0, 1, 18, 74, 2, 112,
-			112, 0, 1, 18, 74, 2, 120, 0, 1, 98, 2, 109, 115, 12, 12, 12, 0, 1, 98, 2, 116, 114, 101, 12, 12, 0, 1, 98, 2, 116,
-			116, 101, 114, 12, 12, 0, 1, 100, 2, 110, 103, 111, 0, 1, 100, 2, 115, 107, 0, 1, 102, 2, 18, 73, 12, 0, 1, 102, 2, 107,
-			115, 0, 1, 102, 2, 110, 108, 97, 110, 100, 0, 1, 102, 2, 110, 116, 101, 0, 1, 102, 2, 120, 0, 1, 104, 2, 109, 12, 0, 1,
-			104, 2, 110, 100, 0, 1, 107, 2, 18, 74, 12, 12, 0, 1, 107, 2, 109, 115, 101, 0, 1, 107, 111, 109, 115, 2, 110, 103, 0, 1,
-			107, 115, 2, 108, 12, 12, 0, 1, 107, 115, 2, 110, 12, 0, 1, 108, 2, 18, 73, 12, 0, 1, 108, 2, 108, 108, 97, 0, 1, 108,
-			2, 110, 107, 0, 1, 108, 2, 110, 110, 101, 100, 0, 1, 108, 2, 110, 115, 0, 1, 108, 2, 110, 116, 0, 1, 108, 17, 67, 2, 112,
-			0, 1, 108, 17, 67, 2, 112, 112, 0, 1, 108, 18, 73, 2, 18, 72, 0, 1, 108, 103, 2, 109, 0, 1, 108, 107, 2, 107, 32, 0,
-			1, 108, 112, 2, 103, 116, 12, 0, 1, 108, 115, 2, 107, 0, 1, 109, 2, 107, 108, 101, 114, 0, 1, 110, 2, 112, 0, 1, 110, 2,
-			115, 115, 101, 0, 1, 110, 2, 116, 116, 101, 110, 0, 1, 110, 107, 2, 112, 0, 1, 112, 2, 108, 114, 0, 1, 112, 2, 110, 107, 0,
-			1, 112, 2, 110, 107, 111, 100, 101, 0, 1, 112, 2, 115, 115, 101, 0, 1, 112, 115, 2, 100, 115, 0, 1, 112, 115, 2, 108, 0, 1,
-			114, 2, 18, 66, 11, 0, 1, 114, 2, 18, 73, 12, 12, 0, 1, 114, 2, 18, 75, 0, 1, 114, 2, 102, 0, 1, 114, 2, 103, 116,
-			105, 0, 1, 114, 17, 67, 2, 108, 108, 0, 1, 114, 18, 71, 2, 110, 116, 0, 1, 114, 100, 2, 110, 107, 0, 1, 114, 100, 2, 115,
-			116, 105, 103, 12, 0, 1, 114, 101, 2, 110, 100, 114, 0, 1, 114, 102, 2, 115, 116, 101, 100, 101, 32, 0, 1, 114, 102, 2, 115, 116,
-			101, 100, 101, 115, 32, 0, 1, 114, 103, 2, 109, 0, 1, 114, 107, 2, 99, 107, 101, 116, 0, 1, 114, 107, 2, 115, 116, 105, 32, 0,
-			1, 114, 107, 2, 115, 116, 117, 115, 12, 0, 1, 114, 111, 107, 2, 110, 116, 0, 1, 114, 112, 2, 110, 0, 1, 114, 116, 115, 2, 110,
-			116, 0, 1, 114, 118, 2, 115, 115, 0, 1, 115, 2, 18, 66, 18, 72, 0, 1, 115, 2, 100, 32, 0, 1, 115, 2, 100, 100, 101, 0,
-			1, 115, 2, 100, 110, 105, 110, 103, 0, 1, 115, 2, 107, 17, 67, 0, 1, 115, 2, 108, 107, 0, 1, 115, 2, 110, 107, 12, 12, 0,
-			1, 115, 2, 112, 112, 0, 1, 116, 2, 103, 103, 12, 0, 1, 116, 2, 108, 12, 12, 0, 1, 116, 115, 2, 108, 32, 104, 97, 109, 0,
-			1, 116, 115, 2, 108, 32, 111, 112, 32, 0, 1, 116, 115, 2, 108, 108, 105, 110, 103, 12, 12, 0, 1, 116, 115, 100, 110, 105, 2, 108,
-			0, 1, 116, 115, 100, 110, 166, 195, 116, 2, 107, 12, 0, 1, 116, 115, 101, 98, 2, 107, 12, 12, 0, 1, 116, 115, 101, 98, 2, 108,
-			0, 1, 116, 115, 101, 98, 166, 195, 108, 2, 102, 116, 0, 1, 116, 115, 101, 100, 97, 112, 115, 2, 107, 0, 1, 116, 115, 101, 103, 103,
-			121, 109, 2, 107, 0, 1, 116, 115, 101, 108, 165, 195, 110, 2, 107, 12, 0, 1, 116, 115, 101, 110, 103, 101, 116, 2, 102, 116, 0, 1,
-			116, 115, 101, 114, 111, 102, 2, 108, 0, 1, 116, 115, 103, 97, 108, 115, 2, 102, 116, 0, 1, 116, 115, 105, 98, 2, 107, 12, 12, 0,
-			1, 116, 115, 107, 166, 195, 108, 98, 2, 102, 116, 0, 1, 116, 115, 108, 111, 115, 2, 107, 12, 12, 0, 1, 116, 115, 109, 105, 108, 2,
-			102, 116, 0, 1, 116, 115, 115, 116, 110, 97, 121, 108, 98, 2, 102, 116, 0, 1, 116, 115, 116, 110, 97, 121, 108, 98, 2, 102, 116, 0,
-			1, 116, 115, 118, 105, 110, 107, 2, 107, 0, 1, 118, 2, 18, 66, 17, 67, 12, 12, 0, 1, 118, 2, 108, 32, 12, 0, 1, 118, 2,
-			110, 107, 0, 1, 118, 2, 110, 115, 116, 111, 107, 0, 1, 118, 2, 110, 116, 101, 114, 0, 1, 118, 2, 110, 116, 114, 101, 0, 1, 118,
-			2, 115, 32, 103, 114, 97, 100, 0, 1, 118, 2, 115, 104, 0, 1, 118, 2, 115, 107, 12, 0, 1, 118, 2, 115, 110, 101, 0, 1, 118,
-			2, 115, 115, 0, 1, 118, 2, 115, 116, 32, 105, 107, 107, 101, 0, 1, 118, 2, 115, 116, 110, 111, 107, 0, 1, 118, 18, 72, 2, 115,
-			116, 12, 0, 1, 118, 32, 101, 107, 115, 110, 97, 103, 2, 115, 116, 32, 0, 1, 118, 97, 106, 2, 115, 116, 0, 1, 118, 101, 103, 2,
-			110, 115, 116, 0, 1, 118, 104, 2, 108, 107, 12, 0, 1, 118, 111, 106, 2, 115, 116, 0, 1, 118, 115, 2, 18, 74, 17, 67, 0, 1,
-			118, 117, 2, 115, 0, 1, 119, 116, 2, 115, 116, 0, 2, 107, 107, 101, 12, 0, 2, 109, 112, 0, 2, 109, 112, 111, 0, 2, 110, 99,
-			12, 0, 2, 110, 100, 12, 12, 12, 12, 0, 2, 110, 100, 101, 12, 0, 2, 110, 102, 0, 2, 110, 102, 97, 110, 116, 0, 2, 110, 110,
-			0, 2, 110, 110, 101, 12, 12, 12, 0, 2, 110, 115, 12, 0, 2, 110, 116, 101, 114, 0, 2, 110, 116, 111, 108, 101, 114, 97, 110, 116,
-			0, 2, 110, 118, 105, 0, 8, 2, 110, 12, 0, 8, 102, 2, 107, 32, 0, 8, 108, 2, 100, 116, 32, 12, 0, 8, 109, 2, 115, 116,
-			32, 0, 8, 109, 2, 115, 116, 101, 32, 0, 8, 109, 2, 115, 116, 101, 100, 101, 32, 0, 8, 109, 2, 115, 116, 101, 100, 101, 115, 32,
-			0, 8, 109, 2, 115, 116, 101, 114, 32, 0, 8, 109, 2, 115, 116, 101, 116, 32, 0, 8, 110, 2, 18, 75, 0, 8, 114, 100, 2, 108,
-			0, 8, 116, 2, 110, 0, 8, 116, 2, 115, 107, 101, 32, 0, 8, 116, 115, 2, 108, 32, 100, 101, 109, 0, 8, 116, 115, 2, 108, 32,
-			100, 101, 110, 0, 8, 116, 115, 2, 108, 32, 106, 101, 114, 0, 8, 116, 115, 2, 108, 32, 109, 105, 103, 0, 8, 116, 115, 2, 108, 32,
-			111, 115, 0, 8, 116, 115, 2, 108, 32, 118, 111, 114, 101, 115, 0, 8, 118, 2, 102, 116, 32, 0, 8, 118, 2, 115, 116, 32, 0, 100,
-			1, 118, 2, 115, 116, 0, 100, 8, 109, 2, 116, 0, 107, 97, 100, 101, 108, 108, 101, 1, 114, 102, 3, 114, 49, 118, 72, 6, 116, 55,
-			14, 0, 107, 97, 100, 101, 108, 108, 101, 114, 1, 114, 102, 3, 114, 49, 118, 72, 6, 116, 55, 108, 0, 4, 110, 100, 1, 102, 2, 101,
-			108, 195, 184, 110, 3, 114, 50, 0, 110, 100, 2, 101, 108, 115, 101, 12, 0, 110, 117, 112, 1, 112, 3, 114, 50, 6, 109, 48, 0, 110,
-			116, 101, 114, 110, 97, 116, 105, 111, 110, 97, 108, 1, 32, 121, 116, 115, 101, 110, 109, 97, 3, 114, 50, 47, 109, 50, 6, 118, 91, 124,
-			50, 14, 55, 0, 110, 103, 111, 1, 98, 3, 114, 50, 81, 39, 0, 110, 115, 116, 105, 116, 117, 116, 105, 111, 110, 8, 3, 114, 50, 89,
-			47, 111, 47, 123, 91, 6, 124, 50, 0, 110, 115, 116, 105, 116, 117, 116, 105, 111, 110, 3, 114, 50, 89, 47, 111, 47, 123, 91, 124, 50,
-			0, 110, 115, 105, 100, 101, 8, 2, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 3, 114, 50, 89, 136, 72, 0, 110, 115, 105, 100,
-			101, 114, 8, 3, 114, 50, 89, 136, 72, 108, 0, 110, 103, 101, 110, 105, 2, 195, 184, 3, 114, 50, 91, 14, 50, 57, 0, 108, 108, 101,
-			1, 118, 104, 115, 97, 110, 3, 114, 59, 0, 109, 112, 111, 116, 101, 110, 3, 114, 65, 48, 124, 47, 116, 50, 0, 109, 97, 108, 97, 121,
-			97, 1, 104, 3, 114, 65, 117, 55, 6, 136, 117, 0, 4, 103, 1, 114, 2, 110, 105, 110, 103, 3, 114, 81, 0, 103, 103, 1, 114, 0,
-			115, 1, 112, 2, 32, 3, 114, 89, 0, 4, 1, 114, 17, 67, 2, 109, 17, 67, 3, 116, 0, 1, 114, 17, 67, 2, 109, 109, 0, 110,
-			1, 108, 101, 104, 99, 105, 109, 3, 116, 68, 0, 101, 8, 112, 2, 32, 3, 121, 57, 0, 103, 110, 1, 115, 101, 100, 3, 122, 37, 50,
-			0, 114, 1, 108, 102, 2, 116, 3, 132, 12, 0, 114, 118, 105, 110, 103, 3, 132, 84, 36, 68, 0, 4, 1, 108, 115, 117, 115, 107, 117,
-			108, 2, 110, 101, 114, 3, 136, 0, 1, 114, 2, 108, 101, 121, 0, 1, 114, 98, 2, 101, 110, 0, 1, 116, 2, 109, 105, 110, 103, 0,
-			1, 116, 102, 111, 115, 2, 99, 101, 0, 2, 111, 119, 97, 0, 103, 104, 1, 104, 0, 103, 104, 1, 108, 2, 116, 101, 114, 0, 106, 1,
-			110, 2, 109, 101, 103, 101, 110, 0, 103, 104, 116, 8, 116, 3, 136, 47, 0, 107, 101, 8, 112, 115, 3, 136, 49, 0, 115, 108, 97, 110,
-			100, 1, 32, 103, 110, 111, 108, 3, 136, 55, 13, 50, 72, 0, 109, 101, 1, 116, 2, 111, 117, 116, 3, 136, 65, 0, 4, 109, 101, 115,
-			1, 114, 103, 3, 136, 65, 89, 0, 109, 101, 115, 1, 116, 32, 107, 114, 111, 121, 32, 119, 101, 110, 0, 100, 97, 104, 111, 3, 136, 72,
-			118, 107, 6, 39, 58, 0, 118, 101, 1, 108, 99, 3, 136, 84, 0, 118, 97, 110, 104, 111, 101, 3, 136, 84, 13, 50, 107, 6, 39, 58,
-			0, 114, 101, 1, 119, 3, 136, 108, 0, 114, 111, 110, 8, 2, 32, 3, 136, 108, 50, 0, 7, 6, 106, 0, 101, 97, 110, 110, 101, 2,
-			32, 100, 39, 3, 2, 91, 117, 12, 50, 0, 1, 104, 114, 101, 100, 2, 101, 109, 109, 101, 3, 6, 57, 0, 4, 3, 57, 0, 1, 184,
-			195, 2, 101, 116, 0, 2, 117, 110, 107, 116, 0, 1, 97, 109, 2, 111, 114, 3, 57, 6, 0, 101, 104, 111, 118, 97, 3, 57, 36, 107,
-			6, 39, 84, 117, 0, 101, 114, 8, 2, 32, 3, 57, 115, 34, 0, 101, 114, 115, 101, 121, 2, 107, 3, 57, 115, 34, 89, 37, 0, 101,
-			114, 101, 115, 8, 2, 32, 3, 57, 115, 108, 89, 0, 97, 107, 101, 108, 8, 3, 57, 118, 49, 13, 55, 0, 97, 109, 115, 101, 115, 115,
-			105, 111, 110, 3, 72, 57, 117, 12, 65, 89, 6, 36, 91, 57, 13, 50, 0, 4, 1, 105, 102, 2, 105, 3, 75, 0, 1, 110, 105, 110,
-			2, 97, 0, 2, 97, 119, 0, 2, 97, 122, 122, 0, 2, 101, 110, 107, 105, 110, 115, 0, 2, 101, 110, 110, 105, 102, 101, 114, 0, 2,
-			111, 98, 0, 2, 117, 105, 99, 101, 0, 2, 117, 110, 103, 108, 0, 2, 117, 110, 107, 0, 8, 2, 101, 102, 102, 0, 4, 101, 97, 110,
-			3, 75, 37, 12, 50, 0, 101, 97, 110, 110, 101, 0, 101, 101, 112, 3, 75, 37, 71, 0, 117, 107, 101, 2, 98, 111, 107, 115, 3, 75,
-			40, 12, 49, 0, 4, 101, 119, 101, 108, 3, 75, 40, 12, 55, 0, 111, 117, 108, 101, 0, 111, 104, 110, 3, 75, 108, 50, 0, 117, 110,
-			99, 116, 105, 111, 110, 3, 75, 108, 50, 49, 91, 13, 50, 0, 111, 121, 3, 75, 108, 57, 0, 111, 105, 110, 116, 3, 75, 108, 57, 50,
-			47, 0, 111, 2, 99, 107, 101, 121, 3, 75, 109, 0, 111, 104, 110, 110, 121, 3, 75, 109, 50, 37, 0, 117, 110, 107, 105, 101, 3, 75,
-			109, 50, 49, 37, 0, 111, 115, 104, 8, 3, 75, 109, 91, 0, 105, 116, 116, 101, 114, 98, 117, 103, 3, 75, 111, 72, 109, 71, 109, 81,
-			0, 105, 104, 97, 100, 3, 75, 111, 107, 6, 118, 47, 0, 4, 105, 8, 2, 109, 32, 3, 75, 113, 0, 105, 8, 2, 109, 115, 32, 0,
-			105, 108, 108, 8, 3, 75, 113, 55, 0, 4, 105, 109, 109, 105, 101, 3, 75, 113, 65, 37, 0, 105, 109, 109, 121, 0, 101, 114, 114, 121,
-			3, 75, 114, 34, 37, 0, 105, 110, 103, 108, 101, 3, 75, 114, 50, 81, 112, 55, 0, 4, 101, 1, 97, 109, 114, 105, 102, 2, 116, 3,
-			75, 115, 0, 101, 1, 111, 98, 109, 117, 106, 2, 116, 0, 101, 8, 2, 116, 0, 97, 121, 3, 75, 115, 57, 0, 97, 107, 101, 8, 3,
-			75, 115, 57, 49, 0, 97, 110, 101, 121, 3, 75, 115, 57, 50, 37, 0, 97, 109, 101, 115, 111, 110, 8, 3, 75, 115, 57, 65, 14, 89,
-			112, 50, 0, 97, 109, 105, 101, 3, 75, 115, 57, 65, 37, 0, 97, 109, 101, 115, 8, 3, 75, 115, 57, 65, 89, 0, 101, 107, 121, 108,
-			108, 3, 75, 116, 49, 14, 55, 0, 4, 101, 110, 110, 105, 101, 3, 75, 116, 50, 37, 0, 101, 110, 110, 121, 0, 101, 115, 115, 3, 75,
-			116, 89, 0, 4, 101, 115, 115, 101, 3, 75, 116, 89, 111, 0, 101, 115, 115, 105, 101, 0, 97, 2, 99, 107, 3, 75, 117, 0, 97, 2,
-			109, 97, 108, 3, 75, 118, 0, 97, 99, 107, 105, 101, 3, 75, 118, 49, 37, 0, 97, 114, 118, 105, 115, 8, 3, 75, 121, 12, 84, 36,
-			89, 0, 97, 109, 98, 97, 108, 97, 121, 97, 3, 75, 122, 65, 71, 118, 55, 6, 136, 117, 0, 4, 111, 97, 111, 8, 3, 75, 122, 124,
-			0, 111, 195, 163, 111, 8, 0, 111, 108, 101, 110, 101, 8, 3, 75, 125, 58, 55, 6, 37, 12, 50, 0, 111, 101, 3, 75, 127, 58, 0,
-			111, 110, 101, 115, 3, 75, 127, 58, 50, 89, 0, 4, 101, 114, 115, 101, 121, 8, 2, 32, 3, 75, 132, 12, 89, 37, 0, 101, 114, 115,
-			101, 121, 8, 2, 115, 32, 0, 111, 107, 101, 3, 75, 132, 58, 49, 0, 101, 1, 114, 101, 112, 2, 116, 3, 89, 90, 115, 0, 97, 99,
-			113, 117, 101, 115, 3, 90, 35, 49, 0, 4, 1, 110, 101, 2, 97, 109, 98, 101, 3, 91, 0, 1, 111, 114, 2, 101, 107, 116, 0, 2,
-			97, 115, 109, 105, 110, 0, 2, 111, 110, 103, 108, 0, 2, 111, 117, 114, 110, 97, 108, 0, 1, 97, 2, 111, 117, 3, 91, 6, 0, 101,
-			114, 111, 109, 101, 3, 91, 36, 34, 6, 39, 65, 0, 97, 110, 101, 105, 114, 111, 3, 91, 36, 50, 6, 115, 34, 39, 0, 97, 117, 98,
-			101, 114, 116, 3, 91, 39, 71, 6, 115, 34, 0, 117, 97, 110, 8, 3, 91, 40, 6, 122, 68, 0, 101, 116, 111, 110, 3, 91, 57, 36,
-			47, 6, 108, 68, 0, 97, 114, 100, 105, 110, 105, 101, 114, 101, 3, 91, 57, 121, 34, 72, 37, 50, 57, 6, 115, 12, 34, 0, 97, 114,
-			103, 111, 110, 3, 91, 57, 121, 34, 81, 6, 108, 68, 0, 101, 97, 2, 110, 101, 116, 116, 101, 3, 91, 117, 6, 0, 101, 97, 110, 111,
-			116, 3, 91, 117, 50, 6, 39, 0, 97, 108, 111, 117, 115, 105, 8, 3, 91, 117, 55, 40, 89, 6, 37, 0, 97, 108, 111, 117, 115, 105,
-			1, 21, 3, 91, 117, 55, 40, 89, 37, 0, 97, 109, 97, 105, 99, 97, 3, 91, 117, 65, 6, 136, 49, 117, 0, 117, 103, 101, 114, 101,
-			3, 91, 129, 91, 6, 36, 108, 0, 1, 97, 118, 97, 110, 2, 111, 3, 107, 0, 7, 6, 107, 0, 4, 1, 101, 112, 115, 2, 116, 97,
-			107, 107, 3, 0, 1, 101, 112, 115, 2, 116, 97, 107, 108, 3, 0, 4, 8, 101, 112, 115, 2, 116, 97, 107, 107, 3, 6, 0, 8, 101,
-			112, 115, 2, 116, 97, 107, 108, 0, 4, 3, 49, 0, 1, 10, 0, 2, 114, 105, 103, 0, 2, 114, 195, 166, 110, 107, 12, 0, 107, 0,
-			4, 114, 121, 115, 97, 110, 116, 101, 109, 117, 109, 3, 49, 34, 131, 89, 6, 117, 50, 47, 14, 65, 125, 65, 0, 114, 121, 115, 97, 110,
-			116, 101, 109, 117, 109, 109, 0, 97, 107, 101, 114, 108, 97, 2, 107, 3, 49, 35, 49, 14, 55, 6, 35, 0, 97, 110, 116, 101, 114, 101,
-			108, 3, 49, 35, 50, 47, 14, 34, 6, 119, 55, 0, 105, 100, 1, 32, 101, 104, 116, 3, 49, 36, 72, 0, 101, 105, 116, 104, 3, 49,
-			37, 12, 87, 0, 105, 108, 105, 109, 97, 110, 106, 97, 114, 111, 3, 49, 37, 55, 37, 65, 117, 50, 75, 6, 121, 34, 39, 0, 108, 111,
-			115, 2, 32, 104, 111, 108, 100, 3, 49, 55, 108, 89, 0, 118, 97, 114, 116, 101, 114, 1, 10, 3, 49, 84, 35, 34, 47, 36, 34, 0,
-			111, 110, 116, 105, 110, 117, 117, 109, 3, 49, 108, 50, 47, 6, 37, 50, 40, 125, 65, 0, 117, 109, 113, 117, 97, 116, 3, 49, 108, 65,
-			49, 58, 108, 72, 0, 4, 97, 116, 101, 8, 2, 32, 3, 49, 115, 57, 47, 0, 97, 116, 101, 8, 2, 115, 32, 0, 97, 114, 97, 111,
-			107, 101, 3, 49, 117, 34, 117, 6, 39, 40, 49, 37, 0, 101, 114, 109, 105, 116, 8, 3, 49, 132, 12, 65, 36, 47, 0, 110, 111, 99,
-			107, 3, 50, 108, 49, 0, 110, 111, 120, 3, 50, 108, 81, 89, 0, 110, 105, 103, 104, 116, 3, 50, 121, 57, 47, 0, 1, 115, 2, 114,
-			3, 81, 0, 7, 6, 108, 0, 4, 101, 1, 102, 102, 105, 107, 115, 3, 14, 55, 0, 101, 8, 112, 114, 97, 109, 0, 4, 3, 55, 0,
-			100, 1, 10, 2, 101, 114, 0, 100, 1, 111, 98, 2, 103, 97, 100, 101, 0, 108, 0, 118, 1, 111, 116, 0, 118, 1, 184, 195, 115, 0,
-			118, 8, 101, 115, 0, 101, 111, 100, 1, 32, 99, 97, 109, 3, 55, 6, 35, 58, 72, 0, 101, 101, 1, 114, 97, 109, 2, 110, 3, 55,
-			6, 37, 12, 0, 4, 111, 103, 1, 10, 2, 28, 33, 3, 55, 6, 39, 0, 111, 103, 1, 10, 2, 105, 115, 107, 28, 33, 0, 4, 101,
-			116, 1, 10, 2, 116, 28, 33, 3, 55, 6, 116, 0, 101, 116, 1, 111, 105, 114, 98, 97, 99, 0, 4, 101, 116, 1, 10, 2, 28, 33,
-			3, 55, 6, 116, 47, 0, 101, 116, 116, 1, 10, 2, 28, 33, 0, 101, 103, 2, 117, 109, 109, 105, 3, 55, 14, 81, 0, 4, 101, 116,
-			8, 105, 116, 115, 32, 101, 100, 118, 97, 104, 2, 32, 3, 55, 14, 86, 0, 101, 116, 8, 105, 116, 115, 32, 114, 97, 104, 2, 32, 0,
-			101, 116, 8, 105, 116, 115, 32, 114, 97, 118, 2, 32, 0, 101, 116, 8, 105, 116, 115, 32, 114, 101, 2, 32, 0, 111, 117, 110, 103, 101,
-			3, 55, 35, 58, 50, 75, 0, 105, 110, 99, 111, 108, 110, 3, 55, 36, 50, 49, 108, 59, 50, 0, 105, 116, 116, 108, 101, 3, 55, 36,
-			72, 14, 55, 0, 105, 118, 105, 110, 103, 115, 116, 111, 110, 101, 3, 55, 36, 84, 36, 68, 89, 47, 4, 112, 12, 58, 50, 0, 101, 121,
-			3, 55, 37, 0, 4, 101, 101, 8, 2, 32, 3, 55, 37, 12, 0, 101, 101, 8, 2, 115, 32, 0, 101, 101, 100, 8, 2, 115, 3, 55,
-			37, 12, 72, 0, 108, 97, 114, 100, 1, 105, 98, 3, 55, 37, 35, 34, 72, 0, 105, 109, 111, 103, 101, 115, 3, 55, 37, 65, 6, 39,
-			12, 90, 0, 97, 117, 116, 114, 101, 99, 3, 55, 39, 47, 34, 6, 115, 49, 0, 111, 103, 1, 10, 2, 105, 28, 33, 3, 55, 39, 81,
-			6, 0, 4, 103, 1, 101, 104, 2, 101, 3, 55, 57, 0, 108, 105, 1, 97, 2, 101, 114, 0, 108, 101, 110, 100, 101, 8, 97, 3, 55,
-			57, 6, 115, 50, 72, 14, 0, 4, 100, 1, 111, 98, 3, 55, 72, 0, 100, 1, 111, 115, 2, 97, 116, 0, 118, 101, 1, 101, 115, 3,
-			55, 84, 14, 0, 117, 99, 107, 121, 3, 55, 108, 49, 37, 0, 108, 111, 121, 100, 3, 55, 108, 57, 72, 0, 111, 110, 103, 2, 32, 105,
-			115, 108, 97, 110, 100, 3, 55, 108, 68, 0, 117, 100, 108, 111, 119, 3, 55, 108, 72, 55, 39, 58, 0, 105, 122, 122, 105, 101, 3, 55,
-			111, 89, 111, 0, 4, 101, 116, 1, 105, 102, 101, 98, 98, 117, 114, 107, 115, 3, 55, 114, 0, 101, 116, 1, 105, 102, 101, 103, 110, 105,
-			108, 108, 121, 107, 0, 101, 116, 1, 105, 102, 101, 103, 110, 117, 116, 184, 195, 115, 0, 101, 116, 1, 105, 102, 101, 107, 115, 105, 102, 0,
-			101, 116, 1, 105, 102, 101, 109, 109, 97, 108, 0, 101, 116, 1, 105, 102, 101, 110, 105, 118, 115, 0, 101, 116, 1, 105, 102, 101, 114, 121,
-			100, 0, 101, 116, 1, 105, 102, 101, 115, 107, 111, 0, 101, 116, 1, 105, 102, 101, 116, 114, 111, 106, 104, 0, 101, 116, 1, 105, 102, 101,
-			116, 115, 101, 104, 0, 101, 116, 1, 105, 102, 101, 116, 116, 166, 195, 112, 115, 0, 101, 116, 1, 105, 102, 115, 103, 101, 116, 115, 0, 101,
-			103, 101, 2, 114, 105, 110, 103, 3, 55, 114, 81, 6, 114, 0, 4, 195, 166, 103, 1, 107, 3, 55, 115, 57, 0, 195, 166, 103, 2, 112,
-			114, 195, 166, 100, 0, 101, 103, 101, 109, 2, 17, 67, 3, 55, 115, 57, 14, 65, 0, 97, 107, 101, 8, 2, 32, 3, 55, 115, 57, 49,
-			0, 97, 98, 111, 117, 114, 3, 55, 115, 57, 71, 108, 0, 4, 97, 100, 121, 1, 110, 114, 101, 106, 3, 55, 115, 57, 72, 37, 0, 97,
-			100, 121, 8, 0, 4, 101, 103, 8, 111, 3, 55, 115, 81, 0, 195, 166, 103, 2, 110, 105, 110, 103, 0, 101, 105, 99, 101, 115, 116, 101,
-			114, 3, 55, 115, 89, 47, 108, 0, 195, 166, 103, 103, 2, 101, 3, 55, 116, 81, 0, 101, 97, 118, 101, 110, 119, 111, 114, 116, 104, 3,
-			55, 116, 84, 14, 50, 58, 132, 12, 87, 0, 97, 100, 121, 115, 1, 103, 3, 55, 117, 72, 37, 89, 0, 97, 114, 114, 121, 3, 55, 118,
-			16, 37, 0, 101, 103, 1, 98, 2, 21, 3, 55, 122, 57, 0, 111, 114, 114, 97, 105, 110, 101, 3, 55, 124, 51, 115, 12, 50, 0, 111,
-			116, 105, 111, 110, 3, 55, 128, 58, 91, 57, 14, 50, 0, 101, 103, 2, 32, 3, 55, 136, 0, 105, 111, 110, 101, 108, 8, 3, 55, 136,
-			14, 50, 115, 55, 0, 101, 103, 101, 114, 2, 32, 3, 55, 136, 108, 0, 7, 6, 109, 0, 97, 105, 108, 1, 32, 101, 3, 2, 65, 115,
-			57, 55, 0, 97, 110, 100, 1, 114, 117, 111, 103, 3, 2, 65, 121, 68, 0, 4, 97, 100, 101, 114, 111, 3, 21, 101, 115, 0, 105, 103,
-			117, 101, 108, 0, 111, 110, 116, 112, 101, 108, 108, 105, 101, 114, 3, 21, 102, 114, 0, 4, 3, 65, 0, 109, 0, 97, 110, 100, 8, 114,
-			117, 111, 103, 3, 65, 7, 121, 68, 0, 109, 1, 111, 2, 195, 184, 98, 108, 101, 3, 65, 15, 65, 0, 109, 105, 103, 101, 106, 1, 101,
-			108, 103, 114, 111, 102, 3, 65, 15, 65, 121, 57, 11, 121, 57, 0, 97, 107, 97, 114, 111, 110, 105, 3, 65, 19, 35, 49, 14, 34, 6,
-			109, 50, 111, 0, 97, 114, 115, 101, 105, 108, 108, 101, 3, 65, 35, 51, 89, 6, 115, 12, 57, 0, 111, 117, 115, 101, 8, 3, 65, 35,
-			58, 89, 0, 101, 114, 101, 8, 2, 32, 3, 65, 36, 34, 0, 105, 108, 107, 115, 104, 97, 107, 101, 3, 65, 36, 55, 49, 91, 115, 57,
-			49, 0, 101, 100, 101, 97, 8, 3, 65, 36, 72, 6, 115, 12, 117, 0, 105, 99, 104, 101, 108, 108, 101, 3, 65, 37, 91, 6, 115, 55,
-			0, 97, 117, 114, 105, 99, 101, 3, 65, 39, 34, 6, 37, 89, 0, 97, 117, 112, 97, 115, 115, 97, 110, 116, 3, 65, 39, 48, 117, 89,
-			6, 121, 68, 0, 117, 115, 107, 101, 116, 101, 114, 3, 65, 40, 89, 81, 36, 47, 6, 36, 34, 0, 117, 115, 105, 99, 97, 108, 3, 65,
-			57, 40, 12, 89, 37, 49, 112, 55, 0, 4, 109, 1, 101, 108, 108, 101, 109, 3, 65, 65, 0, 109, 2, 97, 115, 115, 97, 103, 101, 0,
-			112, 115, 111, 110, 3, 65, 89, 108, 50, 0, 117, 114, 114, 97, 121, 3, 65, 108, 34, 37, 0, 111, 110, 114, 111, 101, 3, 65, 108, 50,
-			34, 6, 125, 58, 0, 111, 110, 101, 121, 3, 65, 108, 50, 37, 0, 111, 110, 116, 103, 111, 109, 101, 114, 121, 3, 65, 108, 50, 72, 81,
-			6, 108, 65, 34, 37, 0, 111, 108, 121, 110, 101, 117, 120, 3, 65, 108, 55, 37, 50, 57, 40, 12, 0, 117, 112, 112, 101, 116, 8, 3,
-			65, 109, 48, 114, 47, 0, 111, 116, 104, 101, 114, 3, 65, 109, 86, 109, 0, 105, 108, 119, 97, 117, 107, 101, 101, 3, 65, 113, 55, 58,
-			6, 125, 49, 37, 0, 105, 100, 110, 105, 103, 104, 116, 3, 65, 114, 72, 50, 136, 47, 0, 97, 107, 101, 117, 2, 112, 3, 65, 115, 57,
-			49, 6, 108, 0, 97, 105, 110, 101, 8, 3, 65, 115, 57, 50, 0, 97, 105, 108, 3, 65, 115, 57, 55, 0, 97, 121, 100, 97, 121, 3,
-			65, 115, 57, 72, 115, 12, 57, 0, 101, 108, 98, 111, 117, 114, 110, 101, 3, 65, 115, 59, 71, 132, 50, 0, 97, 114, 105, 108, 121, 110,
-			3, 65, 117, 34, 37, 55, 36, 50, 0, 97, 116, 105, 108, 100, 8, 3, 65, 117, 47, 6, 37, 55, 72, 0, 97, 116, 105, 110, 101, 3,
-			65, 117, 47, 37, 50, 6, 36, 0, 99, 8, 2, 17, 67, 21, 3, 65, 117, 49, 0, 97, 110, 110, 101, 113, 117, 105, 110, 8, 3, 65,
-			117, 50, 14, 49, 6, 115, 68, 0, 97, 110, 110, 101, 113, 117, 105, 110, 3, 65, 117, 50, 14, 49, 115, 68, 0, 97, 100, 97, 103, 97,
-			115, 107, 97, 114, 3, 65, 117, 72, 117, 81, 6, 117, 89, 49, 117, 0, 97, 116, 116, 104, 101, 119, 3, 65, 117, 87, 57, 40, 0, 97,
-			99, 104, 101, 116, 101, 3, 65, 117, 91, 6, 115, 72, 0, 97, 110, 97, 103, 101, 114, 3, 65, 118, 50, 114, 75, 109, 0, 97, 115, 115,
-			97, 99, 104, 117, 115, 101, 116, 116, 115, 3, 65, 118, 89, 118, 47, 57, 6, 40, 89, 116, 47, 89, 0, 97, 104, 111, 103, 110, 105, 3,
-			65, 118, 107, 6, 39, 50, 37, 0, 101, 103, 101, 116, 8, 2, 32, 3, 65, 121, 12, 14, 86, 0, 101, 103, 101, 110, 8, 2, 32, 3,
-			65, 121, 57, 14, 50, 0, 97, 114, 106, 111, 114, 105, 101, 3, 65, 121, 75, 125, 34, 37, 0, 111, 117, 108, 105, 110, 3, 65, 123, 55,
-			6, 118, 68, 0, 111, 110, 116, 114, 101, 3, 65, 125, 12, 50, 47, 34, 108, 0, 97, 108, 116, 1, 32, 101, 108, 103, 110, 105, 115, 3,
-			65, 125, 55, 47, 0, 117, 114, 100, 111, 99, 104, 3, 65, 132, 72, 108, 49, 0, 117, 114, 112, 104, 3, 65, 132, 83, 0, 4, 117, 114,
-			112, 104, 101, 121, 3, 65, 132, 83, 37, 0, 117, 114, 112, 104, 121, 0, 105, 97, 109, 105, 3, 65, 136, 6, 117, 65, 37, 0, 4, 105,
-			107, 101, 8, 2, 32, 3, 65, 136, 49, 0, 105, 107, 101, 8, 2, 115, 32, 0, 7, 6, 110, 0, 95, 1, 97, 107, 3, 0, 105, 1,
-			10, 2, 28, 33, 12, 12, 12, 3, 6, 50, 111, 0, 105, 1, 110, 10, 2, 28, 33, 12, 12, 3, 6, 111, 0, 4, 1, 10, 2, 101,
-			114, 28, 33, 12, 3, 8, 50, 0, 1, 10, 2, 105, 115, 116, 97, 110, 28, 33, 0, 1, 10, 2, 115, 107, 28, 33, 0, 105, 101, 110,
-			1, 21, 3, 8, 50, 57, 14, 50, 0, 105, 101, 114, 1, 21, 3, 8, 50, 57, 108, 0, 4, 105, 1, 10, 2, 115, 107, 28, 33, 12,
-			3, 8, 50, 111, 0, 105, 1, 97, 109, 2, 111, 12, 0, 105, 1, 105, 107, 105, 98, 2, 12, 12, 0, 105, 107, 97, 8, 111, 109, 114,
-			97, 104, 3, 8, 50, 111, 49, 118, 0, 105, 103, 104, 116, 105, 110, 103, 97, 108, 101, 3, 21, 0, 4, 3, 50, 0, 1, 97, 2, 107,
-			108, 97, 103, 101, 0, 1, 97, 2, 107, 111, 109, 0, 1, 97, 114, 103, 0, 1, 101, 103, 2, 107, 0, 1, 101, 103, 114, 111, 109, 0,
-			1, 166, 195, 114, 107, 2, 107, 101, 0, 110, 1, 17, 65, 0, 110, 1, 111, 115, 166, 195, 114, 0, 101, 103, 108, 105, 103, 101, 3, 50,
-			36, 81, 55, 37, 91, 6, 36, 0, 101, 105, 108, 3, 50, 37, 12, 55, 0, 105, 101, 110, 1, 111, 109, 21, 3, 50, 37, 14, 50, 0,
-			105, 99, 111, 108, 101, 8, 3, 50, 37, 49, 6, 108, 55, 0, 105, 99, 111, 108, 8, 2, 101, 116, 116, 101, 3, 50, 37, 49, 39, 55,
-			0, 111, 117, 103, 97, 116, 3, 50, 40, 81, 117, 0, 107, 2, 116, 105, 111, 3, 50, 49, 0, 107, 97, 116, 104, 97, 1, 105, 3, 50,
-			49, 6, 118, 47, 118, 0, 110, 2, 101, 100, 103, 97, 110, 103, 3, 50, 50, 0, 101, 119, 116, 111, 110, 3, 50, 57, 6, 40, 12, 47,
-			14, 50, 0, 101, 119, 3, 50, 57, 40, 0, 101, 119, 122, 101, 97, 108, 97, 110, 100, 3, 50, 57, 40, 89, 6, 36, 55, 117, 50, 0,
-			111, 114, 119, 105, 99, 104, 8, 3, 50, 108, 34, 37, 76, 0, 111, 115, 116, 114, 97, 100, 97, 109, 117, 115, 3, 50, 108, 89, 47, 34,
-			121, 72, 6, 117, 65, 40, 89, 0, 101, 108, 108, 105, 101, 8, 3, 50, 115, 55, 37, 0, 101, 118, 105, 108, 108, 101, 8, 3, 50, 115,
-			84, 36, 59, 0, 97, 103, 8, 2, 32, 3, 50, 117, 12, 57, 0, 97, 105, 118, 1, 21, 3, 50, 117, 37, 84, 0, 97, 105, 118, 8,
-			3, 50, 118, 6, 111, 58, 0, 121, 108, 111, 110, 3, 50, 121, 57, 55, 108, 50, 0, 111, 114, 101, 101, 110, 8, 3, 50, 125, 58, 34,
-			6, 37, 12, 50, 0, 105, 97, 103, 97, 114, 97, 8, 3, 50, 136, 6, 117, 81, 112, 34, 35, 0, 105, 103, 104, 116, 101, 110, 103, 97,
-			108, 101, 8, 3, 50, 136, 47, 14, 50, 81, 115, 57, 55, 0, 105, 103, 101, 108, 8, 3, 50, 136, 75, 112, 55, 0, 4, 1, 111, 107,
-			2, 107, 3, 68, 0, 107, 2, 116, 0, 7, 6, 111, 0, 1, 108, 32, 107, 97, 114, 116, 2, 100, 3, 0, 4, 109, 109, 101, 8, 112,
-			2, 32, 3, 2, 109, 65, 0, 109, 109, 101, 115, 8, 112, 2, 32, 0, 4, 1, 112, 2, 115, 116, 101, 106, 12, 3, 2, 124, 0, 2,
-			107, 116, 111, 98, 0, 1, 114, 116, 110, 111, 107, 2, 108, 108, 101, 114, 3, 2, 126, 0, 4, 1, 98, 109, 97, 99, 2, 100, 106, 3,
-			6, 39, 0, 1, 103, 110, 97, 2, 108, 97, 0, 1, 105, 100, 2, 100, 101, 0, 1, 105, 118, 97, 114, 2, 108, 105, 0, 1, 107, 97,
-			108, 2, 116, 97, 0, 1, 108, 97, 104, 115, 2, 109, 0, 1, 109, 97, 115, 2, 97, 0, 1, 109, 109, 111, 107, 2, 100, 101, 0, 1,
-			112, 101, 2, 107, 101, 0, 1, 114, 116, 115, 105, 98, 0, 1, 121, 107, 2, 116, 111, 0, 8, 100, 107, 101, 110, 97, 2, 116, 0, 8,
-			103, 97, 112, 2, 100, 101, 0, 8, 105, 114, 101, 112, 2, 100, 101, 0, 8, 106, 117, 107, 2, 110, 0, 8, 107, 105, 108, 105, 115, 2,
-			110, 101, 0, 8, 108, 105, 116, 110, 97, 2, 112, 101, 0, 8, 109, 97, 114, 2, 110, 97, 0, 8, 109, 101, 110, 97, 2, 110, 101, 0,
-			8, 110, 103, 105, 115, 2, 114, 0, 8, 114, 101, 99, 105, 99, 2, 110, 101, 0, 8, 114, 101, 112, 97, 104, 99, 2, 110, 101, 0, 8,
-			114, 116, 97, 109, 2, 110, 101, 0, 8, 114, 116, 107, 101, 108, 101, 2, 100, 101, 0, 8, 114, 117, 101, 2, 112, 97, 0, 8, 115, 105,
-			112, 101, 2, 100, 101, 0, 8, 116, 97, 107, 2, 100, 101, 0, 8, 116, 101, 99, 97, 2, 110, 101, 0, 8, 116, 101, 109, 2, 100, 101,
-			0, 8, 116, 115, 117, 107, 2, 100, 101, 0, 8, 122, 97, 109, 97, 2, 110, 101, 0, 8, 122, 108, 97, 99, 2, 110, 101, 0, 116, 1,
-			100, 114, 97, 98, 0, 116, 1, 107, 105, 114, 116, 0, 4, 1, 114, 101, 112, 112, 101, 112, 2, 110, 105, 3, 6, 39, 12, 0, 1, 116,
-			105, 108, 2, 116, 101, 0, 1, 122, 105, 114, 97, 2, 110, 97, 0, 114, 101, 1, 114, 117, 102, 3, 6, 39, 12, 108, 0, 110, 100, 1,
-			107, 101, 115, 2, 108, 195, 184, 106, 116, 110, 97, 110, 116, 3, 6, 39, 50, 72, 0, 4, 108, 1, 104, 10, 2, 105, 28, 33, 12, 3,
-			6, 39, 55, 0, 108, 1, 114, 116, 10, 2, 101, 28, 33, 0, 108, 1, 115, 10, 2, 18, 69, 28, 33, 12, 0, 102, 101, 1, 114, 116,
-			115, 97, 116, 97, 107, 3, 6, 39, 83, 14, 0, 102, 101, 114, 1, 114, 116, 115, 97, 116, 97, 107, 3, 6, 39, 83, 108, 0, 115, 101,
-			1, 10, 2, 28, 33, 12, 3, 6, 39, 89, 14, 0, 115, 101, 43, 1, 10, 2, 114, 28, 33, 3, 6, 39, 89, 108, 0, 4, 111, 1,
-			122, 97, 107, 3, 6, 40, 0, 117, 1, 108, 101, 118, 2, 114, 0, 117, 116, 1, 103, 97, 114, 0, 4, 111, 1, 122, 97, 98, 3, 6,
-			40, 12, 0, 117, 1, 115, 115, 105, 109, 2, 114, 105, 0, 117, 105, 108, 108, 101, 1, 116, 97, 116, 97, 114, 3, 6, 40, 12, 57, 0,
-			117, 110, 1, 104, 108, 97, 99, 3, 6, 40, 50, 0, 105, 114, 101, 1, 116, 114, 101, 112, 101, 114, 3, 6, 58, 121, 12, 0, 4, 1,
-			103, 110, 111, 103, 2, 110, 103, 3, 6, 108, 0, 1, 107, 111, 114, 2, 107, 111, 0, 1, 112, 109, 111, 107, 2, 115, 116, 0, 1, 114,
-			111, 116, 2, 110, 116, 111, 0, 108, 100, 101, 1, 115, 105, 3, 6, 108, 55, 72, 14, 0, 121, 2, 12, 3, 6, 108, 57, 0, 4, 1,
-			98, 111, 114, 2, 116, 12, 12, 3, 6, 109, 0, 1, 100, 97, 114, 97, 112, 2, 107, 115, 0, 1, 100, 97, 114, 98, 97, 108, 2, 114,
-			0, 1, 100, 111, 116, 114, 111, 2, 107, 115, 0, 1, 103, 97, 102, 2, 116, 0, 1, 104, 99, 97, 107, 2, 116, 0, 1, 104, 110, 114,
-			111, 98, 2, 108, 109, 0, 1, 107, 115, 105, 116, 114, 97, 2, 107, 0, 1, 108, 97, 103, 2, 17, 67, 0, 1, 108, 97, 107, 2, 116,
-			0, 1, 108, 117, 2, 118, 0, 1, 109, 97, 2, 107, 0, 1, 110, 111, 109, 2, 107, 0, 1, 112, 97, 2, 108, 108, 111, 12, 12, 0,
-			1, 114, 116, 115, 101, 114, 101, 112, 2, 106, 107, 97, 0, 1, 115, 105, 114, 2, 116, 116, 111, 0, 1, 115, 111, 108, 105, 102, 2, 102,
-			32, 0, 8, 107, 115, 97, 109, 2, 116, 0, 8, 107, 117, 104, 2, 109, 109, 101, 0, 8, 108, 101, 107, 115, 97, 107, 2, 116, 0, 8,
-			108, 111, 107, 2, 115, 0, 8, 108, 112, 109, 111, 107, 2, 116, 0, 8, 112, 115, 101, 114, 2, 110, 115, 0, 8, 115, 105, 114, 111, 104,
-			2, 110, 0, 8, 116, 114, 97, 107, 2, 102, 0, 8, 118, 101, 114, 2, 108, 118, 0, 108, 1, 114, 116, 10, 2, 108, 101, 110, 28, 33,
-			0, 112, 116, 101, 114, 1, 107, 105, 108, 101, 104, 3, 6, 109, 48, 47, 108, 0, 103, 1, 107, 110, 105, 2, 110, 105, 116, 111, 3, 6,
-			109, 49, 0, 99, 99, 104, 105, 111, 1, 110, 105, 112, 3, 6, 109, 49, 57, 124, 0, 110, 100, 1, 107, 111, 112, 121, 104, 2, 101, 114,
-			3, 6, 109, 50, 72, 0, 4, 108, 1, 104, 10, 2, 28, 33, 12, 3, 6, 109, 55, 0, 108, 1, 107, 111, 10, 2, 28, 33, 12, 0,
-			108, 1, 114, 116, 10, 2, 28, 33, 12, 0, 108, 1, 115, 10, 2, 28, 33, 12, 0, 108, 1, 116, 10, 2, 28, 33, 12, 0, 106, 1,
-			118, 110, 111, 107, 3, 6, 109, 57, 0, 105, 97, 8, 110, 97, 114, 97, 112, 3, 6, 109, 57, 117, 0, 4, 103, 110, 101, 1, 99, 115,
-			97, 103, 3, 6, 109, 68, 57, 14, 0, 103, 110, 101, 1, 116, 115, 97, 98, 0, 4, 117, 116, 8, 101, 109, 105, 116, 3, 6, 121, 58,
-			72, 0, 117, 116, 8, 107, 99, 97, 108, 98, 0, 117, 116, 8, 107, 99, 111, 108, 0, 117, 116, 8, 107, 99, 111, 110, 107, 0, 117, 116,
-			8, 107, 114, 111, 119, 0, 117, 116, 8, 121, 97, 108, 0, 4, 1, 21, 2, 108, 115, 107, 3, 6, 124, 0, 1, 99, 101, 100, 32, 116,
-			114, 97, 0, 1, 100, 97, 116, 97, 109, 2, 114, 0, 1, 100, 105, 114, 114, 111, 107, 2, 114, 0, 1, 101, 108, 99, 2, 112, 97, 116,
-			114, 97, 0, 1, 101, 116, 101, 109, 2, 114, 0, 1, 105, 98, 105, 116, 110, 97, 2, 116, 105, 107, 0, 1, 106, 97, 103, 2, 108, 0,
-			1, 107, 110, 97, 108, 101, 109, 2, 108, 115, 107, 0, 1, 108, 97, 2, 104, 97, 0, 1, 108, 101, 122, 2, 116, 0, 1, 108, 107, 121,
-			99, 2, 110, 0, 1, 108, 107, 121, 107, 2, 112, 0, 1, 108, 108, 97, 104, 0, 1, 109, 101, 109, 2, 114, 105, 97, 109, 0, 1, 112,
-			101, 100, 2, 116, 0, 1, 114, 97, 2, 109, 97, 0, 1, 114, 101, 2, 98, 0, 1, 116, 101, 98, 2, 110, 105, 110, 103, 0, 1, 116,
-			101, 114, 112, 2, 114, 105, 97, 0, 1, 116, 110, 111, 107, 2, 114, 0, 8, 100, 97, 116, 101, 109, 2, 110, 0, 8, 105, 100, 105, 2,
-			116, 0, 8, 105, 114, 112, 121, 99, 2, 116, 0, 8, 105, 114, 116, 97, 112, 2, 116, 0, 8, 106, 108, 97, 116, 97, 98, 2, 110, 0,
-			8, 106, 115, 110, 97, 2, 115, 0, 8, 107, 105, 114, 98, 97, 2, 115, 0, 8, 108, 105, 112, 2, 116, 0, 8, 109, 105, 2, 100, 0,
-			8, 109, 105, 107, 115, 101, 0, 8, 109, 114, 111, 109, 2, 110, 0, 8, 109, 166, 195, 100, 2, 110, 0, 8, 110, 97, 107, 2, 110, 0,
-			8, 110, 111, 107, 184, 195, 2, 109, 32, 0, 8, 112, 101, 100, 2, 116, 0, 8, 114, 101, 2, 116, 0, 8, 114, 116, 97, 109, 2, 115,
-			0, 8, 115, 111, 108, 105, 102, 2, 102, 105, 115, 107, 0, 8, 116, 97, 109, 166, 195, 104, 2, 109, 0, 8, 116, 111, 105, 98, 2, 112,
-			0, 8, 116, 111, 115, 105, 2, 112, 0, 108, 1, 114, 116, 10, 2, 108, 108, 101, 28, 33, 0, 116, 1, 108, 114, 101, 109, 0, 116, 105,
-			1, 107, 114, 97, 110, 2, 107, 3, 6, 124, 47, 111, 0, 4, 112, 1, 107, 115, 10, 2, 28, 33, 12, 12, 3, 6, 124, 48, 0, 112,
-			1, 114, 116, 10, 2, 28, 33, 12, 12, 0, 4, 108, 1, 10, 2, 28, 33, 12, 12, 3, 6, 124, 55, 0, 108, 1, 116, 110, 10, 2,
-			28, 33, 12, 0, 108, 1, 116, 115, 10, 2, 12, 28, 33, 0, 109, 1, 21, 2, 28, 33, 12, 12, 12, 3, 6, 124, 65, 0, 4, 114,
-			1, 102, 111, 114, 111, 108, 107, 2, 109, 3, 6, 125, 12, 0, 114, 1, 110, 98, 97, 2, 109, 0, 114, 1, 110, 101, 2, 109, 12, 0,
-			114, 8, 102, 101, 100, 2, 109, 0, 114, 8, 102, 101, 114, 2, 109, 0, 114, 8, 102, 105, 110, 117, 2, 109, 0, 114, 8, 102, 110, 111,
-			107, 2, 109, 0, 110, 100, 1, 98, 97, 103, 97, 118, 3, 6, 125, 50, 72, 0, 119, 1, 108, 98, 3, 6, 126, 58, 0, 114, 101, 114,
-			1, 115, 3, 7, 39, 12, 108, 0, 8, 2, 109, 17, 67, 3, 7, 109, 0, 103, 110, 1, 108, 117, 111, 98, 2, 101, 3, 7, 109, 68,
-			57, 0, 114, 1, 115, 3, 8, 109, 0, 1, 114, 116, 107, 101, 108, 101, 3, 8, 124, 0, 1, 107, 115, 2, 115, 118, 195, 166, 114, 116,
-			101, 3, 19, 124, 0, 115, 119, 97, 108, 100, 3, 21, 0, 98, 108, 105, 103, 101, 1, 32, 101, 115, 115, 101, 108, 98, 111, 110, 3, 21,
-			102, 114, 0, 4, 1, 18, 73, 2, 108, 12, 3, 39, 0, 1, 18, 75, 2, 18, 71, 114, 18, 76, 0, 1, 97, 109, 2, 12, 0, 1,
-			102, 2, 98, 0, 1, 103, 2, 100, 12, 0, 1, 104, 2, 115, 116, 101, 12, 12, 0, 1, 106, 115, 2, 102, 0, 1, 107, 2, 17, 67,
-			11, 18, 69, 12, 12, 0, 1, 107, 2, 100, 101, 12, 12, 0, 1, 107, 2, 109, 97, 0, 1, 107, 114, 97, 110, 0, 1, 108, 102, 2,
-			100, 101, 114, 0, 1, 109, 2, 100, 101, 12, 0, 1, 109, 114, 111, 102, 2, 100, 101, 0, 1, 114, 2, 115, 116, 12, 12, 0, 1, 114,
-			18, 73, 2, 116, 18, 69, 0, 1, 114, 98, 2, 100, 101, 114, 0, 2, 17, 67, 101, 12, 12, 0, 2, 17, 67, 105, 0, 2, 115, 18,
-			76, 0, 2, 115, 107, 111, 12, 0, 2, 116, 18, 76, 12, 12, 0, 8, 107, 2, 100, 12, 0, 101, 1, 17, 67, 2, 100, 101, 0, 105,
-			114, 101, 1, 109, 101, 109, 3, 39, 6, 121, 12, 0, 4, 1, 108, 2, 116, 117, 115, 3, 39, 12, 0, 1, 109, 115, 2, 107, 105, 110,
-			103, 0, 1, 115, 2, 102, 97, 0, 2, 116, 105, 115, 107, 0, 111, 1, 122, 0, 103, 101, 100, 1, 102, 3, 39, 12, 14, 86, 0, 100,
-			101, 114, 1, 109, 2, 21, 3, 39, 12, 86, 108, 0, 4, 101, 1, 107, 115, 2, 100, 101, 3, 39, 14, 0, 101, 1, 114, 116, 101, 98,
-			2, 100, 101, 0, 103, 101, 1, 110, 2, 110, 0, 118, 101, 100, 1, 104, 3, 39, 14, 86, 0, 114, 1, 107, 2, 107, 195, 165, 98, 101,
-			3, 39, 34, 0, 114, 111, 1, 108, 107, 2, 102, 111, 114, 109, 3, 39, 39, 0, 108, 108, 8, 114, 2, 105, 110, 103, 32, 115, 116, 111,
-			110, 101, 3, 39, 40, 55, 0, 4, 97, 109, 101, 115, 1, 115, 3, 39, 40, 65, 89, 0, 108, 109, 101, 115, 8, 104, 2, 32, 0, 104,
-			105, 111, 3, 39, 40, 107, 6, 136, 39, 0, 107, 111, 1, 103, 110, 105, 110, 101, 109, 2, 107, 3, 39, 49, 6, 109, 0, 107, 111, 110,
-			1, 107, 3, 39, 49, 6, 109, 68, 0, 108, 1, 100, 105, 21, 3, 39, 55, 0, 108, 105, 101, 116, 1, 103, 110, 111, 109, 3, 39, 55,
-			6, 37, 14, 86, 0, 4, 103, 1, 114, 112, 115, 3, 39, 58, 0, 103, 1, 116, 2, 116, 117, 114, 0, 103, 101, 114, 101, 1, 108, 107,
-			3, 39, 58, 108, 108, 0, 109, 109, 101, 114, 115, 1, 107, 2, 32, 3, 39, 65, 6, 116, 34, 89, 0, 4, 118, 1, 108, 2, 101, 12,
-			3, 39, 84, 0, 118, 1, 110, 2, 97, 12, 12, 0, 100, 101, 114, 1, 109, 110, 97, 3, 39, 86, 108, 0, 4, 115, 1, 114, 116, 2,
-			115, 97, 103, 12, 3, 39, 89, 0, 115, 1, 114, 116, 2, 115, 107, 114, 105, 102, 116, 12, 0, 4, 103, 1, 100, 2, 101, 3, 39, 91,
-			0, 115, 104, 1, 107, 2, 101, 114, 12, 0, 111, 103, 1, 17, 67, 3, 39, 108, 0, 111, 118, 110, 1, 114, 107, 105, 109, 3, 39, 109,
-			58, 50, 0, 105, 1, 116, 2, 108, 3, 39, 117, 0, 111, 114, 1, 107, 2, 100, 3, 39, 125, 12, 0, 4, 111, 1, 119, 3, 40, 0,
-			117, 1, 108, 0, 4, 111, 3, 40, 12, 0, 111, 1, 122, 2, 109, 0, 4, 111, 100, 1, 102, 3, 40, 12, 72, 0, 111, 100, 1, 104,
-			0, 111, 100, 111, 111, 1, 118, 3, 40, 12, 72, 123, 0, 111, 103, 101, 1, 114, 99, 115, 3, 40, 12, 75, 0, 117, 99, 104, 101, 1,
-			100, 3, 40, 12, 91, 0, 111, 107, 101, 1, 114, 98, 3, 40, 49, 0, 111, 110, 101, 1, 98, 3, 40, 50, 0, 111, 110, 97, 103, 104,
-			3, 40, 50, 117, 0, 111, 103, 108, 101, 1, 103, 3, 40, 81, 14, 55, 0, 4, 111, 103, 105, 101, 1, 98, 3, 40, 81, 37, 0, 111,
-			103, 105, 101, 1, 119, 0, 103, 110, 1, 108, 111, 99, 2, 101, 3, 55, 6, 109, 68, 57, 0, 105, 120, 1, 114, 99, 3, 58, 6, 35,
-			0, 105, 115, 1, 110, 97, 100, 3, 58, 6, 121, 0, 105, 110, 116, 1, 112, 2, 32, 3, 58, 115, 68, 0, 105, 110, 116, 101, 110, 101,
-			1, 112, 3, 58, 115, 68, 13, 50, 14, 0, 105, 110, 116, 101, 1, 112, 3, 58, 115, 68, 47, 14, 0, 105, 110, 116, 101, 114, 1, 112,
-			3, 58, 115, 68, 47, 108, 0, 121, 101, 114, 8, 102, 3, 58, 121, 57, 6, 36, 0, 121, 101, 114, 101, 110, 8, 102, 3, 58, 121, 57,
-			6, 36, 14, 50, 0, 121, 101, 114, 1, 102, 3, 58, 121, 57, 36, 0, 4, 1, 104, 2, 99, 107, 12, 3, 108, 0, 1, 116, 2, 103,
-			116, 12, 0, 8, 98, 2, 110, 110, 32, 0, 114, 1, 110, 111, 100, 0, 114, 1, 116, 2, 101, 110, 0, 114, 1, 116, 2, 110, 121, 0,
-			114, 1, 116, 111, 109, 0, 4, 111, 114, 1, 108, 102, 3, 108, 12, 0, 111, 114, 101, 1, 109, 0, 105, 108, 8, 2, 32, 3, 108, 12,
-			37, 59, 0, 105, 115, 1, 110, 105, 108, 108, 105, 3, 108, 12, 57, 0, 103, 1, 100, 108, 108, 117, 98, 3, 108, 12, 81, 0, 114, 1,
-			98, 2, 110, 104, 111, 108, 109, 3, 108, 34, 0, 114, 101, 103, 111, 110, 112, 105, 110, 101, 3, 108, 34, 36, 81, 108, 50, 15, 48, 136,
-			50, 0, 116, 101, 108, 101, 1, 107, 2, 116, 3, 108, 47, 14, 55, 6, 115, 0, 110, 110, 121, 1, 115, 3, 108, 50, 37, 0, 110, 116,
-			97, 110, 97, 1, 109, 3, 108, 50, 47, 6, 117, 50, 117, 0, 105, 1, 110, 97, 104, 3, 108, 57, 0, 105, 110, 116, 1, 112, 2, 101,
-			114, 101, 3, 108, 57, 50, 47, 0, 121, 99, 101, 1, 114, 3, 108, 57, 89, 0, 121, 101, 117, 114, 1, 118, 3, 108, 57, 132, 12, 34,
-			0, 110, 1, 110, 110, 97, 2, 99, 17, 65, 3, 108, 68, 0, 4, 111, 100, 1, 108, 98, 3, 108, 72, 0, 111, 100, 1, 108, 102, 0,
-			100, 121, 98, 117, 105, 108, 100, 101, 114, 1, 98, 3, 108, 72, 37, 71, 37, 55, 72, 108, 0, 100, 102, 97, 116, 104, 101, 114, 1, 103,
-			3, 108, 72, 83, 121, 86, 108, 0, 117, 103, 1, 100, 3, 108, 81, 0, 120, 102, 111, 114, 100, 3, 108, 81, 89, 83, 108, 12, 72, 0,
-			117, 103, 104, 3, 108, 83, 0, 100, 114, 101, 116, 1, 108, 2, 12, 3, 108, 86, 34, 119, 47, 0, 115, 107, 118, 97, 1, 109, 3, 108,
-			89, 49, 84, 6, 117, 0, 4, 1, 17, 67, 2, 17, 67, 11, 101, 116, 32, 12, 12, 3, 109, 0, 1, 17, 67, 2, 18, 66, 11, 12,
-			0, 1, 17, 67, 2, 18, 66, 12, 0, 1, 17, 67, 2, 18, 66, 116, 0, 1, 17, 67, 2, 18, 68, 11, 12, 0, 1, 17, 67, 2,
-			18, 74, 110, 0, 1, 17, 67, 2, 98, 98, 101, 114, 32, 12, 12, 0, 1, 17, 67, 2, 103, 103, 12, 0, 1, 17, 67, 2, 109, 0,
-			1, 17, 67, 2, 109, 18, 69, 0, 1, 17, 67, 2, 115, 17, 67, 18, 76, 12, 12, 0, 1, 17, 67, 102, 2, 116, 0, 1, 18, 66,
-			2, 109, 0, 1, 18, 67, 2, 18, 71, 11, 101, 12, 12, 0, 1, 18, 67, 2, 18, 71, 108, 101, 12, 0, 1, 18, 68, 2, 18, 74,
-			0, 1, 18, 71, 2, 116, 0, 1, 18, 73, 2, 102, 12, 12, 0, 1, 18, 73, 2, 108, 17, 67, 12, 0, 1, 18, 73, 2, 116, 116,
-			0, 1, 18, 75, 2, 110, 17, 67, 0, 1, 97, 17, 67, 2, 115, 0, 1, 98, 2, 18, 66, 18, 69, 0, 1, 98, 2, 115, 115, 0,
-			1, 99, 2, 99, 107, 0, 1, 100, 2, 103, 32, 12, 0, 1, 100, 2, 110, 97, 108, 100, 0, 1, 102, 2, 110, 116, 0, 1, 103, 2,
-			100, 116, 12, 0, 1, 103, 2, 116, 116, 101, 0, 1, 104, 2, 102, 0, 1, 104, 2, 108, 108, 97, 12, 0, 1, 104, 2, 110, 103, 0,
-			1, 104, 2, 115, 112, 105, 99, 101, 0, 1, 104, 99, 2, 107, 12, 0, 1, 104, 116, 2, 109, 97, 115, 32, 0, 1, 106, 2, 18, 66,
-			11, 18, 76, 0, 1, 106, 2, 98, 21, 0, 1, 106, 2, 114, 116, 0, 1, 107, 2, 98, 108, 105, 110, 103, 0, 1, 107, 2, 103, 116,
-			12, 0, 1, 107, 2, 110, 17, 67, 0, 1, 107, 2, 112, 97, 114, 0, 1, 107, 2, 115, 116, 32, 111, 103, 32, 108, 111, 103, 105, 0,
-			1, 107, 2, 115, 116, 98, 97, 114, 0, 1, 107, 2, 115, 116, 112, 108, 97, 110, 0, 1, 107, 2, 115, 116, 112, 114, 105, 115, 0, 1,
-			107, 2, 115, 116, 114, 195, 165, 100, 0, 1, 107, 2, 115, 116, 115, 107, 111, 108, 101, 0, 1, 107, 2, 115, 116, 116, 105, 108, 115, 107,
-			117, 100, 0, 1, 107, 2, 115, 116, 118, 97, 110, 101, 0, 1, 107, 32, 112, 97, 114, 107, 115, 2, 115, 116, 0, 1, 107, 101, 98, 2,
-			115, 116, 0, 1, 107, 101, 115, 108, 101, 104, 2, 115, 116, 0, 1, 107, 111, 114, 102, 2, 115, 116, 0, 1, 107, 115, 2, 100, 12, 0,
-			1, 107, 115, 2, 108, 108, 12, 12, 0, 1, 107, 115, 2, 116, 0, 1, 107, 115, 100, 101, 104, 100, 110, 117, 115, 2, 115, 116, 0, 1,
-			107, 115, 103, 97, 100, 114, 101, 118, 104, 2, 115, 116, 0, 1, 107, 121, 111, 98, 2, 116, 0, 1, 108, 2, 18, 66, 11, 18, 76, 0,
-			1, 108, 2, 100, 116, 114, 195, 166, 107, 0, 1, 108, 2, 103, 98, 111, 103, 0, 1, 108, 2, 103, 102, 105, 108, 0, 1, 108, 2, 110,
-			110, 17, 65, 0, 1, 108, 2, 116, 0, 1, 108, 18, 71, 2, 18, 74, 0, 1, 108, 32, 101, 107, 107, 166, 195, 114, 116, 2, 100, 0,
-			1, 108, 32, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 114, 101, 107, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 115, 101,
-			107, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 116, 101, 107, 107, 117, 114, 116, 2, 100, 0, 1, 108, 98, 2, 107, 12, 0, 1,
-			108, 100, 114, 111, 106, 2, 100, 0, 1, 108, 102, 2, 115, 0, 1, 108, 107, 2, 115, 116, 114, 101, 0, 1, 108, 108, 97, 102, 2, 115,
-			0, 1, 108, 114, 111, 102, 2, 100, 115, 0, 1, 109, 2, 110, 105, 116, 111, 114, 0, 1, 109, 2, 110, 115, 116, 101, 0, 1, 109, 115,
-			111, 107, 2, 115, 0, 1, 110, 2, 110, 17, 67, 0, 1, 110, 2, 115, 32, 0, 1, 110, 107, 2, 116, 110, 0, 1, 110, 107, 2, 116,
-			116, 0, 1, 110, 115, 2, 116, 12, 0, 1, 112, 2, 108, 116, 0, 1, 112, 2, 110, 0, 1, 112, 2, 112, 105, 100, 111, 108, 12, 12,
-			0, 1, 112, 101, 2, 115, 0, 1, 112, 107, 99, 97, 106, 2, 116, 0, 1, 112, 115, 2, 110, 115, 111, 114, 0, 1, 114, 2, 17, 67,
-			11, 12, 12, 0, 1, 114, 2, 99, 104, 101, 0, 1, 114, 2, 99, 107, 0, 1, 114, 2, 109, 107, 97, 103, 101, 0, 1, 114, 18, 73,
-			2, 18, 66, 0, 1, 114, 18, 73, 2, 116, 0, 1, 114, 98, 2, 100, 12, 0, 1, 114, 100, 2, 115, 99, 104, 101, 0, 1, 114, 100,
-			32, 116, 101, 2, 103, 0, 1, 114, 102, 2, 109, 0, 1, 114, 102, 2, 110, 116, 0, 1, 114, 102, 2, 115, 116, 12, 12, 0, 1, 114,
-			107, 2, 107, 101, 116, 17, 67, 0, 1, 114, 108, 97, 118, 104, 2, 115, 0, 1, 114, 112, 2, 102, 32, 0, 1, 114, 112, 2, 115, 116,
-			97, 116, 97, 0, 1, 114, 116, 2, 106, 12, 0, 1, 114, 116, 2, 107, 108, 0, 1, 114, 116, 2, 108, 100, 0, 1, 114, 116, 2, 116,
-			115, 0, 1, 114, 116, 97, 98, 108, 97, 2, 115, 0, 1, 114, 116, 110, 111, 107, 2, 108, 0, 1, 114, 116, 120, 111, 102, 2, 116, 0,
-			1, 115, 2, 106, 97, 12, 0, 1, 115, 2, 108, 118, 101, 110, 116, 12, 0, 1, 115, 21, 2, 110, 32, 0, 1, 115, 21, 2, 110, 115,
-			32, 0, 1, 116, 2, 108, 107, 0, 1, 116, 2, 109, 97, 115, 32, 0, 1, 116, 2, 116, 0, 1, 116, 115, 2, 112, 12, 12, 0, 1,
-			118, 2, 103, 116, 0, 1, 118, 2, 103, 116, 12, 0, 1, 118, 108, 101, 115, 2, 112, 0, 2, 18, 68, 25, 12, 0, 2, 18, 71, 11,
-			12, 0, 2, 18, 71, 12, 0, 2, 98, 98, 17, 65, 12, 12, 12, 0, 2, 102, 17, 67, 0, 2, 107, 0, 2, 108, 100, 12, 12, 0,
-			2, 109, 32, 0, 2, 109, 97, 100, 114, 101, 115, 115, 101, 0, 2, 109, 101, 103, 110, 0, 2, 109, 107, 0, 2, 109, 109, 12, 0, 2,
-			109, 114, 195, 165, 100, 0, 2, 109, 115, 0, 2, 109, 116, 97, 108, 101, 0, 2, 112, 97, 100, 12, 0, 2, 112, 97, 114, 98, 101, 106,
-			100, 101, 12, 0, 2, 112, 101, 102, 116, 101, 114, 12, 0, 2, 112, 105, 108, 100, 110, 101, 12, 0, 2, 112, 111, 102, 114, 101, 0, 2,
-			112, 111, 102, 114, 101, 12, 0, 2, 115, 17, 67, 18, 69, 0, 2, 116, 116, 97, 119, 97, 0, 2, 116, 116, 101, 110, 100, 101, 0, 2,
-			116, 116, 111, 0, 2, 120, 12, 12, 12, 0, 8, 2, 108, 105, 118, 101, 114, 0, 8, 2, 109, 97, 114, 0, 8, 98, 2, 110, 100, 32,
-			0, 8, 100, 2, 110, 32, 0, 8, 104, 2, 108, 105, 100, 97, 121, 0, 8, 104, 2, 116, 32, 0, 8, 108, 2, 103, 32, 0, 8, 108,
-			2, 115, 0, 8, 109, 2, 114, 116, 0, 8, 112, 2, 116, 32, 0, 8, 114, 2, 98, 105, 110, 12, 12, 0, 8, 114, 32, 116, 101, 103,
-			111, 110, 2, 115, 32, 0, 100, 1, 108, 107, 2, 115, 0, 100, 1, 114, 116, 2, 115, 0, 103, 1, 107, 101, 114, 2, 110, 111, 115, 99,
-			101, 114, 101, 0, 103, 2, 102, 105, 114, 115, 0, 103, 2, 116, 114, 101, 100, 105, 118, 101, 0, 103, 2, 116, 121, 118, 101, 0, 114, 1,
-			102, 2, 97, 110, 0, 114, 1, 102, 21, 2, 17, 65, 0, 114, 1, 116, 2, 32, 0, 114, 1, 116, 2, 115, 32, 0, 114, 1, 116, 115,
-			97, 112, 0, 117, 114, 1, 98, 114, 97, 104, 0, 1, 112, 2, 115, 116, 121, 114, 12, 3, 109, 6, 0, 116, 100, 111, 103, 1, 104, 3,
-			109, 47, 72, 109, 81, 0, 4, 99, 99, 1, 114, 98, 2, 111, 108, 105, 3, 109, 49, 0, 103, 104, 1, 103, 32, 110, 97, 118, 0, 107,
-			101, 116, 8, 114, 107, 2, 32, 3, 109, 49, 14, 47, 0, 110, 100, 1, 108, 98, 2, 101, 3, 109, 50, 0, 110, 111, 1, 100, 2, 118,
-			97, 110, 3, 109, 50, 14, 0, 110, 116, 101, 118, 105, 100, 101, 111, 1, 109, 3, 109, 50, 47, 14, 84, 111, 72, 6, 114, 124, 0, 4,
-			110, 100, 1, 108, 98, 3, 109, 50, 72, 0, 110, 100, 1, 108, 98, 2, 101, 110, 32, 0, 110, 100, 1, 108, 98, 2, 101, 114, 0, 110,
-			100, 8, 108, 98, 32, 110, 101, 2, 101, 32, 0, 110, 100, 111, 110, 1, 108, 3, 109, 50, 72, 109, 50, 0, 110, 103, 1, 107, 2, 114,
-			101, 115, 3, 109, 50, 81, 0, 108, 105, 115, 104, 1, 112, 3, 109, 55, 37, 91, 0, 108, 103, 116, 1, 115, 3, 109, 55, 47, 0, 108,
-			108, 97, 114, 1, 100, 3, 109, 55, 109, 0, 105, 110, 116, 1, 112, 32, 116, 115, 101, 119, 3, 109, 57, 50, 47, 0, 103, 1, 100, 2,
-			12, 3, 109, 58, 0, 103, 114, 101, 1, 108, 3, 109, 58, 34, 109, 0, 103, 110, 1, 17, 67, 3, 109, 58, 50, 0, 118, 106, 101, 116,
-			1, 115, 3, 109, 58, 57, 6, 116, 47, 0, 109, 107, 111, 2, 115, 116, 3, 109, 65, 49, 109, 0, 109, 98, 97, 121, 1, 98, 3, 109,
-			65, 71, 4, 115, 57, 0, 109, 101, 98, 97, 99, 107, 1, 99, 3, 109, 65, 71, 6, 118, 49, 0, 4, 110, 1, 108, 108, 97, 98, 3,
-			109, 68, 0, 110, 1, 112, 109, 97, 116, 0, 110, 1, 112, 109, 111, 112, 0, 110, 1, 112, 117, 107, 0, 110, 1, 116, 101, 98, 0, 103,
-			110, 97, 99, 1, 99, 3, 109, 68, 121, 49, 0, 98, 121, 8, 114, 2, 110, 12, 12, 3, 109, 71, 36, 0, 100, 1, 118, 2, 107, 97,
-			3, 109, 72, 0, 100, 121, 1, 98, 3, 109, 72, 37, 0, 100, 108, 101, 1, 106, 3, 109, 72, 55, 14, 0, 4, 103, 1, 107, 2, 110,
-			105, 116, 3, 109, 81, 0, 103, 1, 108, 98, 0, 103, 1, 109, 115, 2, 32, 0, 103, 1, 114, 103, 0, 103, 103, 1, 114, 103, 0, 103,
-			103, 121, 1, 114, 103, 3, 109, 81, 111, 0, 102, 102, 115, 105, 100, 101, 3, 109, 83, 89, 6, 136, 72, 0, 116, 104, 1, 114, 98, 2,
-			101, 114, 3, 109, 86, 0, 115, 99, 97, 114, 3, 109, 89, 49, 121, 0, 115, 99, 111, 101, 1, 114, 3, 109, 89, 49, 126, 58, 0, 115,
-			98, 111, 114, 110, 101, 3, 109, 89, 71, 4, 125, 50, 0, 115, 116, 1, 18, 67, 3, 109, 89, 72, 0, 117, 1, 114, 103, 2, 99, 104,
-			111, 3, 121, 58, 0, 117, 116, 108, 97, 119, 3, 121, 58, 47, 55, 125, 12, 0, 117, 110, 3, 121, 58, 50, 0, 4, 117, 116, 8, 100,
-			110, 97, 104, 3, 121, 58, 72, 0, 117, 116, 8, 110, 111, 114, 116, 115, 97, 0, 117, 116, 8, 112, 111, 114, 100, 0, 117, 116, 115, 105,
-			100, 101, 114, 3, 121, 58, 72, 89, 136, 72, 108, 0, 117, 115, 101, 1, 104, 3, 121, 58, 89, 0, 119, 101, 114, 112, 111, 119, 101, 114,
-			1, 108, 102, 3, 121, 58, 108, 48, 121, 58, 108, 0, 1, 100, 2, 119, 110, 105, 110, 103, 3, 122, 0, 119, 1, 116, 2, 101, 114, 3,
-			122, 40, 0, 119, 105, 101, 1, 104, 3, 122, 58, 37, 0, 117, 116, 104, 1, 115, 3, 122, 123, 87, 0, 117, 3, 123, 0, 4, 3, 124,
-			0, 1, 17, 67, 2, 18, 71, 18, 69, 12, 12, 0, 1, 17, 67, 2, 107, 18, 69, 12, 0, 1, 17, 67, 2, 107, 18, 70, 12, 0,
-			1, 17, 67, 2, 109, 18, 76, 0, 1, 17, 67, 102, 2, 116, 18, 69, 0, 1, 18, 66, 2, 109, 18, 69, 0, 1, 18, 66, 2, 109,
-			101, 0, 1, 18, 66, 2, 109, 109, 97, 110, 12, 0, 1, 18, 68, 2, 18, 66, 97, 12, 0, 1, 18, 68, 2, 18, 74, 18, 69, 0,
-			1, 18, 68, 2, 18, 74, 18, 76, 0, 1, 18, 71, 2, 116, 18, 69, 0, 1, 18, 73, 2, 116, 18, 69, 0, 1, 18, 74, 2, 100,
-			12, 0, 1, 98, 2, 100, 12, 0, 1, 98, 2, 103, 111, 114, 109, 0, 1, 98, 2, 109, 0, 1, 98, 2, 109, 109, 12, 12, 0, 1,
-			98, 2, 112, 195, 166, 108, 0, 1, 98, 97, 110, 2, 12, 12, 0, 1, 98, 97, 115, 2, 116, 0, 1, 98, 109, 117, 106, 0, 1, 98,
-			109, 121, 115, 2, 108, 0, 1, 100, 2, 18, 66, 114, 18, 69, 0, 1, 100, 2, 109, 195, 166, 110, 101, 0, 1, 100, 2, 110, 107, 114,
-			97, 102, 116, 0, 1, 100, 2, 115, 115, 105, 101, 114, 0, 1, 100, 101, 112, 114, 111, 116, 0, 1, 100, 110, 97, 109, 109, 111, 107, 0,
-			1, 102, 2, 100, 12, 0, 1, 102, 2, 114, 18, 69, 12, 0, 1, 103, 2, 115, 108, 97, 118, 12, 0, 1, 103, 97, 100, 2, 103, 0,
-			1, 104, 2, 18, 74, 18, 69, 12, 0, 1, 104, 2, 98, 12, 0, 1, 104, 2, 115, 112, 105, 116, 0, 1, 104, 2, 115, 116, 12, 12,
-			0, 1, 104, 2, 118, 101, 114, 101, 0, 1, 104, 99, 2, 107, 111, 12, 0, 1, 105, 100, 97, 114, 0, 1, 106, 2, 100, 12, 0, 1,
-			106, 102, 2, 114, 116, 0, 1, 106, 103, 2, 114, 116, 0, 1, 106, 107, 2, 114, 116, 0, 1, 107, 2, 100, 12, 0, 1, 107, 2, 107,
-			97, 0, 1, 107, 2, 108, 108, 101, 103, 12, 12, 12, 0, 1, 107, 2, 108, 108, 101, 107, 116, 32, 0, 1, 107, 2, 109, 109, 101, 110,
-			116, 17, 65, 12, 12, 12, 0, 1, 107, 2, 109, 109, 101, 114, 99, 105, 101, 108, 12, 12, 0, 1, 107, 2, 109, 112, 97, 103, 0, 1,
-			107, 2, 110, 116, 111, 114, 0, 1, 107, 2, 115, 107, 111, 0, 1, 107, 2, 115, 116, 18, 69, 0, 1, 107, 2, 115, 116, 32, 0, 1,
-			107, 2, 115, 116, 101, 115, 107, 97, 98, 0, 1, 107, 2, 115, 116, 101, 115, 107, 97, 102, 116, 0, 1, 107, 107, 101, 106, 116, 2, 115,
-			108, 111, 118, 0, 1, 107, 110, 97, 98, 2, 115, 112, 0, 1, 107, 111, 107, 2, 115, 0, 1, 107, 114, 97, 110, 2, 17, 67, 0, 1,
-			107, 115, 2, 102, 97, 98, 0, 1, 107, 115, 2, 116, 195, 184, 106, 0, 1, 107, 115, 97, 107, 0, 1, 107, 115, 105, 100, 0, 1, 107,
-			121, 115, 112, 2, 12, 0, 1, 108, 2, 18, 68, 12, 0, 1, 108, 2, 18, 74, 17, 67, 18, 69, 0, 1, 108, 2, 107, 17, 65, 0,
-			1, 108, 2, 107, 117, 109, 0, 1, 108, 97, 103, 2, 112, 112, 101, 114, 101, 0, 1, 108, 101, 109, 21, 2, 110, 0, 1, 108, 102, 2,
-			100, 101, 110, 0, 1, 108, 105, 107, 2, 12, 0, 1, 108, 105, 112, 2, 116, 0, 1, 108, 107, 2, 110, 0, 1, 108, 111, 107, 2, 115,
-			115, 97, 0, 1, 108, 111, 107, 2, 115, 116, 0, 1, 108, 112, 2, 109, 12, 0, 1, 108, 115, 2, 103, 12, 0, 1, 109, 2, 115, 107,
-			101, 12, 0, 1, 109, 101, 2, 12, 0, 1, 109, 114, 101, 116, 2, 115, 116, 97, 0, 1, 110, 2, 109, 105, 0, 1, 110, 2, 112, 114,
-			101, 0, 1, 110, 2, 116, 101, 114, 101, 12, 0, 1, 110, 17, 67, 2, 18, 71, 12, 12, 0, 1, 110, 97, 107, 2, 110, 0, 1, 110,
-			103, 2, 109, 0, 1, 110, 103, 111, 107, 101, 114, 2, 115, 99, 101, 114, 101, 0, 1, 110, 107, 2, 106, 0, 1, 110, 111, 2, 109, 0,
-			1, 110, 111, 103, 2, 114, 114, 0, 1, 110, 114, 111, 112, 2, 12, 12, 0, 1, 112, 2, 107, 101, 114, 12, 12, 0, 1, 112, 2, 108,
-			12, 0, 1, 112, 2, 108, 32, 0, 1, 112, 2, 108, 115, 107, 0, 1, 112, 2, 115, 116, 116, 114, 97, 117, 0, 1, 112, 101, 100, 2,
-			115, 105, 116, 117, 109, 0, 1, 114, 2, 18, 68, 11, 97, 12, 12, 0, 1, 114, 2, 18, 71, 18, 70, 12, 0, 1, 114, 2, 100, 12,
-			0, 1, 114, 2, 107, 18, 76, 12, 0, 1, 114, 2, 109, 17, 67, 18, 70, 0, 1, 114, 2, 109, 117, 108, 117, 115, 0, 1, 114, 17,
-			67, 2, 109, 18, 69, 0, 1, 114, 17, 67, 2, 115, 107, 12, 12, 0, 1, 114, 18, 71, 2, 106, 0, 1, 114, 18, 73, 2, 18, 66,
-			101, 110, 0, 1, 114, 98, 2, 115, 116, 101, 110, 0, 1, 114, 100, 110, 121, 115, 2, 109, 0, 1, 114, 100, 121, 104, 0, 1, 114, 101,
-			116, 101, 104, 0, 1, 114, 102, 2, 109, 97, 0, 1, 114, 102, 2, 115, 110, 101, 0, 1, 114, 102, 2, 115, 115, 12, 12, 0, 1, 114,
-			103, 2, 115, 115, 105, 12, 0, 1, 114, 107, 2, 109, 0, 1, 114, 107, 2, 115, 0, 1, 114, 107, 2, 115, 110, 97, 107, 0, 1, 114,
-			107, 2, 118, 195, 166, 0, 1, 114, 107, 105, 109, 0, 1, 114, 112, 2, 98, 108, 101, 0, 1, 114, 112, 2, 115, 112, 12, 0, 1, 114,
-			112, 2, 115, 116, 105, 0, 1, 114, 112, 2, 118, 17, 65, 12, 0, 1, 114, 116, 2, 17, 67, 18, 69, 0, 1, 114, 116, 2, 106, 97,
-			110, 0, 1, 114, 116, 2, 109, 0, 1, 114, 116, 2, 109, 109, 101, 12, 0, 1, 114, 116, 2, 115, 98, 101, 107, 101, 110, 100, 0, 1,
-			114, 116, 2, 115, 114, 101, 116, 110, 105, 110, 103, 0, 1, 114, 116, 2, 115, 115, 195, 166, 116, 110, 105, 110, 103, 0, 1, 114, 116, 2,
-			118, 12, 0, 1, 114, 116, 101, 109, 2, 12, 12, 0, 1, 114, 116, 110, 111, 107, 2, 108, 108, 195, 184, 114, 0, 1, 114, 116, 114, 111,
-			102, 2, 108, 105, 103, 0, 1, 114, 117, 101, 2, 12, 12, 12, 0, 1, 115, 2, 100, 12, 0, 1, 115, 2, 108, 12, 12, 0, 1, 115,
-			2, 108, 108, 121, 115, 12, 12, 0, 1, 115, 2, 112, 114, 97, 0, 1, 115, 114, 101, 112, 17, 67, 2, 110, 0, 1, 116, 2, 108, 101,
-			114, 97, 110, 116, 12, 0, 1, 116, 2, 116, 17, 65, 0, 1, 116, 97, 2, 109, 0, 1, 116, 101, 98, 2, 110, 101, 116, 0, 1, 116,
-			108, 97, 115, 2, 109, 111, 114, 0, 1, 116, 110, 111, 107, 0, 1, 116, 111, 102, 2, 12, 0, 1, 116, 115, 2, 100, 32, 0, 1, 116,
-			115, 2, 109, 18, 69, 0, 1, 116, 115, 101, 116, 2, 115, 116, 101, 114, 111, 110, 0, 1, 116, 115, 105, 114, 97, 2, 107, 0, 1, 116,
-			117, 97, 2, 12, 0, 1, 118, 2, 107, 18, 76, 12, 0, 1, 122, 105, 107, 115, 2, 102, 114, 101, 110, 0, 2, 18, 66, 18, 69, 0,
-			2, 18, 71, 18, 69, 12, 0, 2, 18, 71, 18, 76, 12, 0, 2, 98, 108, 18, 69, 0, 2, 98, 108, 97, 12, 0, 2, 107, 97, 17,
-			67, 0, 2, 108, 115, 101, 110, 12, 0, 2, 110, 100, 0, 2, 112, 112, 111, 115, 105, 116, 0, 2, 115, 116, 105, 110, 100, 105, 0, 2,
-			118, 101, 106, 12, 0, 2, 118, 105, 12, 0, 8, 17, 67, 2, 32, 0, 8, 116, 115, 2, 114, 32, 0, 103, 1, 114, 100, 0, 111, 1,
-			112, 109, 97, 104, 115, 0, 4, 1, 101, 108, 2, 112, 97, 114, 3, 124, 6, 0, 1, 115, 2, 109, 97, 108, 0, 8, 107, 2, 109, 112,
-			97, 115, 0, 8, 114, 107, 2, 107, 101, 116, 116, 0, 8, 115, 111, 108, 105, 102, 2, 102, 105, 32, 0, 8, 116, 2, 98, 97, 107, 0,
-			1, 101, 100, 105, 118, 2, 21, 3, 124, 11, 0, 4, 100, 101, 114, 1, 109, 3, 124, 34, 0, 114, 1, 107, 2, 112, 105, 103, 0, 114,
-			1, 107, 2, 112, 114, 195, 184, 118, 101, 0, 39, 8, 3, 124, 40, 6, 0, 116, 116, 101, 1, 114, 102, 2, 12, 12, 3, 124, 47, 6,
-			36, 0, 116, 111, 110, 1, 108, 101, 112, 3, 124, 47, 6, 109, 68, 0, 112, 1, 107, 115, 10, 2, 105, 28, 33, 3, 124, 48, 6, 0,
-			112, 111, 115, 1, 114, 112, 97, 3, 124, 48, 6, 124, 0, 107, 114, 97, 116, 101, 115, 1, 115, 3, 124, 49, 34, 122, 47, 116, 89, 0,
-			107, 108, 97, 104, 111, 109, 97, 3, 124, 49, 55, 118, 107, 6, 39, 65, 118, 0, 114, 1, 114, 2, 103, 3, 124, 51, 0, 4, 103, 8,
-			118, 2, 32, 3, 124, 58, 0, 118, 1, 108, 2, 32, 109, 105, 103, 32, 0, 103, 1, 104, 2, 97, 110, 3, 124, 58, 81, 0, 109, 1,
-			107, 114, 97, 115, 3, 124, 65, 0, 4, 109, 109, 101, 1, 110, 101, 114, 2, 12, 3, 124, 65, 6, 36, 0, 109, 109, 195, 169, 1, 110,
-			101, 114, 2, 12, 0, 109, 101, 116, 1, 107, 3, 124, 65, 6, 114, 47, 0, 109, 97, 110, 8, 3, 124, 65, 6, 117, 50, 0, 103, 110,
-			101, 115, 101, 1, 108, 111, 98, 3, 124, 68, 6, 115, 89, 14, 0, 98, 111, 8, 2, 12, 3, 124, 71, 6, 124, 0, 4, 100, 101, 114,
-			8, 109, 2, 110, 101, 3, 124, 72, 6, 116, 34, 0, 100, 101, 114, 8, 109, 2, 110, 105, 0, 100, 101, 114, 1, 109, 114, 101, 112, 121,
-			104, 2, 110, 101, 3, 124, 72, 116, 34, 0, 114, 103, 1, 101, 103, 2, 105, 110, 101, 3, 124, 81, 0, 103, 101, 1, 116, 111, 102, 2,
-			110, 3, 124, 81, 6, 114, 0, 103, 110, 1, 114, 112, 2, 111, 3, 124, 81, 50, 0, 112, 104, 105, 97, 1, 115, 3, 124, 83, 6, 37,
-			117, 0, 4, 118, 1, 107, 2, 101, 110, 100, 3, 124, 84, 0, 118, 1, 107, 117, 118, 2, 97, 114, 0, 118, 1, 110, 2, 101, 108, 108,
-			0, 118, 1, 110, 2, 101, 109, 12, 0, 118, 1, 110, 2, 105, 99, 17, 65, 0, 118, 1, 110, 101, 114, 2, 101, 114, 0, 118, 1, 114,
-			116, 110, 111, 107, 2, 101, 114, 115, 0, 118, 1, 116, 2, 195, 184, 114, 0, 118, 1, 116, 97, 2, 101, 114, 12, 0, 118, 2, 195, 166,
-			114, 110, 12, 0, 4, 118, 1, 106, 2, 105, 115, 116, 3, 124, 84, 6, 0, 118, 1, 108, 115, 2, 97, 107, 0, 118, 105, 8, 114, 112,
-			2, 110, 115, 3, 124, 84, 6, 114, 0, 4, 100, 1, 103, 2, 116, 17, 65, 103, 3, 124, 86, 0, 100, 1, 103, 2, 116, 114, 0, 100,
-			1, 108, 98, 2, 12, 0, 100, 1, 108, 102, 2, 12, 0, 115, 1, 114, 116, 2, 115, 97, 109, 102, 117, 110, 100, 3, 124, 89, 0, 115,
-			115, 101, 117, 109, 1, 108, 111, 99, 3, 124, 89, 6, 115, 126, 65, 0, 115, 104, 1, 104, 115, 2, 111, 110, 101, 3, 124, 91, 6, 0,
-			106, 97, 118, 101, 1, 109, 3, 124, 107, 6, 121, 84, 114, 0, 4, 114, 1, 107, 2, 115, 116, 111, 108, 3, 124, 110, 0, 114, 1, 116,
-			115, 2, 12, 0, 100, 101, 114, 101, 110, 1, 109, 3, 124, 110, 108, 50, 0, 4, 1, 17, 67, 2, 103, 101, 12, 3, 125, 0, 1, 99,
-			2, 114, 115, 0, 1, 118, 115, 2, 103, 101, 114, 0, 114, 2, 107, 101, 115, 116, 101, 114, 12, 0, 4, 97, 114, 1, 98, 2, 100, 105,
-			110, 103, 3, 125, 12, 0, 114, 1, 17, 67, 2, 18, 72, 18, 70, 0, 114, 1, 107, 2, 112, 115, 0, 114, 1, 112, 2, 110, 0, 114,
-			1, 116, 2, 115, 0, 114, 1, 116, 2, 116, 0, 114, 2, 107, 12, 12, 0, 114, 2, 108, 0, 114, 8, 2, 110, 0, 117, 114, 110, 101,
-			1, 98, 3, 125, 12, 50, 0, 114, 103, 2, 12, 3, 125, 12, 58, 0, 114, 103, 2, 105, 3, 125, 12, 81, 0, 117, 114, 116, 104, 1,
-			102, 3, 125, 12, 87, 0, 114, 114, 101, 107, 1, 107, 2, 116, 117, 114, 3, 125, 14, 81, 0, 114, 108, 121, 8, 2, 32, 3, 125, 16,
-			55, 6, 37, 0, 1, 104, 2, 108, 100, 105, 110, 103, 3, 125, 40, 0, 108, 100, 101, 110, 8, 103, 2, 32, 3, 125, 40, 55, 72, 20,
-			13, 50, 0, 108, 100, 105, 101, 8, 103, 3, 125, 40, 55, 72, 37, 0, 118, 2, 101, 114, 104, 101, 97, 100, 3, 125, 40, 84, 0, 97,
-			115, 116, 98, 101, 101, 102, 1, 114, 3, 125, 40, 89, 72, 71, 37, 83, 0, 116, 105, 111, 110, 1, 109, 119, 111, 108, 115, 3, 125, 40,
-			91, 20, 14, 50, 0, 4, 103, 1, 108, 107, 2, 12, 3, 125, 58, 0, 114, 103, 2, 101, 108, 0, 114, 103, 2, 101, 114, 0, 117, 1,
-			115, 2, 108, 0, 118, 2, 101, 114, 115, 12, 12, 0, 118, 101, 1, 115, 2, 21, 3, 125, 58, 14, 0, 97, 116, 101, 115, 3, 125, 58,
-			47, 89, 0, 112, 114, 97, 104, 3, 125, 58, 48, 34, 121, 0, 4, 108, 101, 1, 112, 109, 105, 119, 3, 125, 58, 55, 0, 108, 108, 8,
-			114, 2, 32, 12, 0, 108, 108, 115, 8, 114, 2, 32, 3, 125, 58, 55, 89, 0, 97, 100, 105, 101, 1, 114, 3, 125, 58, 72, 113, 0,
-			97, 100, 105, 101, 114, 1, 114, 3, 125, 58, 72, 113, 109, 0, 99, 104, 105, 115, 101, 1, 99, 3, 125, 58, 91, 6, 37, 12, 89, 0,
-			4, 118, 1, 108, 2, 101, 110, 12, 12, 3, 125, 84, 0, 118, 1, 118, 2, 101, 0, 4, 114, 115, 101, 116, 1, 107, 32, 116, 101, 3,
-			125, 89, 6, 115, 47, 0, 114, 115, 101, 116, 116, 1, 107, 0, 114, 99, 101, 1, 112, 3, 125, 89, 14, 0, 4, 1, 17, 67, 2, 103,
-			12, 3, 126, 0, 1, 107, 2, 98, 98, 101, 114, 12, 12, 12, 0, 1, 107, 2, 103, 108, 12, 0, 1, 109, 2, 115, 115, 101, 12, 12,
-			12, 0, 1, 112, 2, 115, 116, 109, 111, 100, 0, 100, 1, 103, 2, 115, 0, 114, 1, 107, 115, 2, 112, 0, 114, 1, 116, 2, 110, 97,
-			0, 114, 2, 17, 67, 0, 114, 2, 103, 97, 12, 0, 114, 115, 1, 107, 3, 126, 12, 89, 0, 118, 2, 114, 101, 3, 126, 40, 0, 4,
-			1, 103, 2, 107, 97, 114, 116, 12, 3, 126, 58, 0, 103, 1, 110, 107, 0, 118, 1, 17, 67, 2, 101, 110, 12, 0, 118, 1, 115, 2,
-			101, 0, 118, 2, 101, 12, 12, 0, 118, 2, 101, 114, 12, 12, 0, 118, 2, 110, 0, 118, 101, 114, 2, 104, 111, 118, 101, 100, 12, 3,
-			126, 58, 109, 0, 114, 103, 2, 105, 101, 3, 126, 81, 0, 114, 114, 1, 17, 67, 3, 126, 110, 0, 8, 114, 98, 2, 100, 121, 3, 127,
-			58, 0, 1, 114, 17, 67, 2, 18, 66, 18, 69, 12, 3, 128, 0, 4, 118, 1, 17, 67, 2, 12, 3, 128, 58, 0, 118, 1, 17, 67,
-			2, 18, 73, 0, 117, 114, 98, 111, 110, 1, 98, 3, 132, 12, 71, 14, 50, 0, 101, 116, 104, 101, 1, 103, 3, 132, 47, 14, 0, 97,
-			107, 108, 97, 110, 100, 3, 132, 58, 49, 55, 14, 50, 72, 0, 101, 98, 98, 101, 108, 115, 1, 103, 3, 132, 71, 14, 55, 89, 0, 7,
-			6, 112, 0, 4, 1, 109, 121, 115, 2, 116, 111, 109, 3, 0, 2, 115, 121, 107, 3, 0, 4, 3, 48, 0, 1, 10, 2, 32, 0, 112,
-			0, 195, 165, 8, 2, 14, 128, 132, 130, 3, 48, 6, 109, 0, 195, 165, 8, 2, 115, 107, 101, 3, 48, 6, 125, 12, 0, 117, 114, 118,
-			105, 115, 8, 3, 48, 6, 132, 12, 84, 113, 89, 0, 4, 114, 111, 116, 101, 103, 101, 3, 48, 34, 39, 72, 13, 91, 6, 36, 0, 114,
-			111, 116, 101, 103, 195, 169, 0, 114, 101, 115, 98, 121, 116, 101, 114, 105, 97, 110, 3, 48, 34, 115, 89, 71, 129, 47, 115, 34, 37, 6,
-			117, 50, 0, 105, 110, 99, 101, 110, 101, 122, 3, 48, 35, 12, 68, 89, 50, 6, 36, 0, 195, 169, 116, 97, 105, 110, 8, 3, 48, 36,
-			47, 6, 117, 68, 0, 101, 110, 101, 108, 111, 112, 101, 3, 48, 36, 50, 6, 115, 55, 39, 48, 37, 0, 105, 116, 99, 104, 112, 105, 110,
-			101, 3, 48, 36, 87, 91, 48, 121, 12, 57, 50, 0, 101, 116, 101, 8, 2, 32, 3, 48, 37, 12, 47, 0, 101, 116, 101, 121, 8, 3,
-			48, 37, 12, 47, 37, 0, 101, 97, 110, 117, 116, 3, 48, 37, 12, 50, 108, 72, 0, 101, 97, 99, 101, 3, 48, 37, 12, 89, 0, 105,
-			103, 103, 121, 8, 3, 48, 37, 81, 37, 0, 112, 1, 111, 116, 2, 111, 115, 116, 3, 48, 48, 0, 114, 97, 108, 105, 110, 101, 3, 48,
-			51, 121, 55, 37, 50, 6, 36, 0, 105, 101, 114, 114, 101, 3, 48, 57, 115, 12, 34, 0, 105, 97, 102, 8, 3, 48, 57, 121, 83, 0,
-			111, 105, 114, 111, 116, 8, 3, 48, 58, 121, 34, 6, 39, 0, 111, 105, 116, 105, 101, 114, 8, 3, 48, 58, 121, 47, 57, 6, 36, 0,
-			111, 110, 121, 3, 48, 108, 50, 37, 0, 117, 110, 99, 104, 108, 105, 110, 101, 3, 48, 108, 50, 91, 55, 136, 50, 0, 4, 195, 165, 2,
-			102, 117, 110, 100, 3, 48, 109, 0, 195, 165, 2, 108, 195, 166, 103, 0, 195, 165, 2, 118, 105, 114, 107, 0, 195, 165, 8, 2, 108, 105,
-			100, 101, 0, 195, 165, 8, 2, 118, 105, 115, 0, 105, 99, 107, 117, 2, 112, 3, 48, 111, 49, 6, 109, 0, 101, 114, 117, 3, 48, 114,
-			34, 6, 123, 0, 105, 115, 115, 111, 105, 114, 3, 48, 114, 89, 58, 6, 121, 12, 0, 97, 105, 103, 101, 3, 48, 115, 12, 57, 75, 0,
-			101, 105, 103, 110, 111, 105, 114, 3, 48, 116, 50, 57, 58, 6, 121, 12, 0, 97, 105, 110, 116, 98, 97, 108, 108, 3, 48, 116, 57, 50,
-			47, 71, 125, 12, 55, 0, 97, 105, 108, 108, 101, 2, 116, 3, 48, 117, 57, 6, 116, 0, 97, 115, 115, 97, 103, 101, 114, 8, 3, 48,
-			117, 89, 117, 89, 57, 6, 36, 34, 0, 97, 115, 97, 100, 101, 110, 97, 3, 48, 118, 89, 118, 72, 6, 37, 50, 118, 0, 97, 108, 109,
-			2, 32, 98, 101, 97, 99, 104, 3, 48, 121, 12, 65, 0, 97, 114, 102, 97, 105, 116, 3, 48, 121, 83, 6, 115, 0, 111, 115, 116, 104,
-			117, 109, 3, 48, 125, 89, 47, 107, 6, 40, 65, 0, 101, 97, 114, 108, 8, 2, 32, 3, 48, 132, 12, 55, 0, 101, 114, 116, 104, 3,
-			48, 132, 12, 87, 0, 101, 114, 107, 105, 110, 115, 3, 48, 132, 49, 36, 50, 89, 0, 101, 114, 99, 121, 3, 48, 132, 89, 37, 0, 101,
-			117, 103, 101, 111, 116, 3, 48, 132, 91, 6, 39, 0, 105, 112, 101, 108, 105, 110, 101, 3, 48, 136, 48, 55, 136, 50, 0, 98, 1, 109,
-			97, 99, 2, 101, 108, 3, 71, 0, 4, 104, 1, 101, 115, 111, 106, 3, 83, 0, 104, 1, 108, 97, 114, 0, 104, 1, 109, 101, 109, 2,
-			105, 115, 0, 104, 97, 101, 108, 1, 97, 114, 3, 83, 117, 6, 115, 55, 0, 115, 101, 117, 3, 89, 132, 58, 0, 7, 6, 113, 0, 117,
-			1, 101, 116, 2, 105, 108, 97, 3, 6, 49, 0, 117, 101, 1, 21, 3, 8, 49, 0, 3, 49, 0, 117, 101, 116, 1, 117, 111, 98, 3,
-			49, 7, 36, 0, 117, 105, 99, 104, 101, 3, 49, 37, 91, 0, 4, 117, 105, 106, 111, 116, 101, 3, 49, 37, 91, 6, 108, 47, 0, 117,
-			105, 120, 111, 116, 101, 0, 117, 101, 101, 110, 3, 49, 58, 37, 12, 50, 0, 117, 97, 114, 116, 101, 114, 3, 49, 58, 125, 47, 108, 0,
-			117, 2, 105, 115, 108, 105, 110, 103, 3, 49, 84, 0, 117, 105, 2, 122, 3, 49, 84, 37, 0, 117, 101, 98, 101, 99, 3, 49, 84, 37,
-			71, 6, 115, 49, 0, 117, 101, 122, 3, 49, 115, 12, 89, 0, 7, 6, 114, 0, 4, 1, 101, 2, 101, 32, 24, 3, 0, 4, 1, 166,
-			195, 2, 101, 114, 32, 24, 3, 0, 100, 1, 165, 195, 104, 3, 0, 4, 101, 116, 8, 117, 98, 97, 116, 2, 12, 12, 3, 6, 34, 120,
-			47, 0, 101, 116, 116, 8, 117, 98, 97, 116, 2, 12, 12, 0, 101, 116, 8, 97, 122, 97, 108, 2, 12, 12, 3, 6, 119, 47, 0, 101,
-			114, 1, 21, 2, 101, 32, 28, 33, 12, 12, 12, 3, 7, 34, 115, 0, 101, 114, 1, 21, 2, 32, 28, 33, 12, 12, 12, 3, 7, 34,
-			115, 34, 0, 105, 1, 10, 2, 115, 107, 28, 33, 3, 8, 51, 37, 0, 100, 1, 165, 195, 104, 2, 101, 3, 12, 0, 104, 121, 115, 3,
-			16, 37, 12, 89, 0, 97, 109, 105, 114, 101, 122, 3, 21, 101, 115, 0, 4, 3, 34, 0, 1, 101, 104, 2, 32, 0, 1, 101, 115, 2,
-			32, 0, 1, 101, 118, 104, 0, 114, 0, 4, 101, 1, 97, 105, 100, 3, 34, 6, 36, 0, 101, 1, 114, 97, 105, 100, 0, 4, 101, 116,
-			1, 107, 101, 100, 2, 12, 3, 34, 6, 115, 47, 0, 101, 116, 1, 107, 101, 115, 2, 32, 12, 0, 101, 116, 1, 107, 101, 115, 2, 101,
-			114, 12, 0, 101, 116, 1, 107, 101, 115, 2, 101, 116, 12, 0, 101, 116, 1, 107, 110, 111, 107, 2, 12, 0, 101, 116, 1, 107, 115, 105,
-			100, 2, 12, 0, 101, 110, 101, 1, 117, 114, 111, 102, 3, 34, 6, 116, 50, 14, 0, 101, 114, 1, 21, 2, 101, 115, 32, 28, 33, 12,
-			12, 12, 3, 34, 7, 115, 0, 101, 110, 111, 105, 114, 3, 34, 13, 50, 58, 6, 121, 12, 0, 101, 118, 111, 105, 114, 1, 32, 117, 97,
-			3, 34, 13, 58, 6, 35, 12, 34, 0, 105, 99, 107, 115, 104, 97, 119, 3, 34, 36, 49, 91, 108, 12, 0, 105, 99, 107, 115, 104, 97,
-			119, 101, 114, 3, 34, 36, 49, 91, 108, 12, 108, 0, 101, 115, 101, 114, 118, 111, 105, 114, 8, 3, 34, 36, 89, 115, 34, 84, 39, 6,
-			35, 12, 0, 101, 115, 101, 114, 118, 111, 105, 114, 3, 34, 36, 89, 115, 34, 84, 39, 35, 12, 0, 105, 111, 106, 97, 3, 34, 37, 6,
-			108, 49, 117, 0, 4, 101, 97, 108, 105, 116, 121, 3, 34, 37, 6, 117, 55, 37, 47, 37, 0, 101, 97, 108, 105, 116, 121, 1, 32, 108,
-			97, 117, 116, 114, 105, 118, 0, 101, 101, 99, 101, 3, 34, 37, 12, 89, 0, 101, 99, 117, 116, 3, 34, 37, 49, 108, 72, 0, 101, 115,
-			101, 97, 114, 99, 104, 3, 34, 37, 89, 6, 132, 12, 76, 0, 105, 99, 104, 101, 108, 105, 101, 117, 3, 34, 37, 91, 55, 57, 6, 132,
-			0, 111, 117, 103, 101, 3, 34, 40, 12, 91, 0, 4, 100, 1, 97, 115, 2, 101, 108, 3, 34, 72, 0, 100, 1, 111, 2, 101, 108, 12,
-			12, 0, 100, 1, 111, 2, 101, 110, 12, 12, 0, 100, 1, 117, 98, 2, 101, 25, 0, 100, 1, 121, 2, 101, 32, 0, 100, 101, 1, 97,
-			103, 3, 34, 72, 14, 0, 101, 1, 118, 97, 104, 3, 34, 108, 0, 111, 113, 117, 101, 102, 111, 114, 116, 3, 34, 108, 49, 83, 6, 108,
-			12, 0, 111, 98, 105, 101, 8, 3, 34, 108, 71, 37, 0, 111, 100, 110, 101, 121, 3, 34, 108, 72, 50, 37, 0, 111, 103, 101, 114, 3,
-			34, 108, 75, 108, 0, 101, 116, 1, 109, 121, 107, 101, 98, 3, 34, 108, 86, 0, 117, 115, 115, 101, 108, 108, 3, 34, 108, 89, 14, 55,
-			0, 117, 115, 104, 109, 111, 114, 101, 3, 34, 108, 91, 65, 125, 12, 0, 4, 101, 1, 100, 97, 108, 115, 2, 21, 3, 34, 109, 0, 101,
-			1, 106, 184, 195, 104, 2, 21, 0, 101, 114, 1, 17, 67, 2, 32, 12, 12, 0, 4, 101, 116, 1, 17, 67, 2, 32, 12, 12, 3, 34,
-			109, 86, 0, 101, 116, 1, 115, 110, 97, 112, 2, 12, 0, 105, 118, 101, 114, 115, 105, 100, 101, 3, 34, 113, 84, 108, 89, 136, 72, 0,
-			101, 116, 1, 101, 116, 116, 97, 107, 115, 2, 12, 12, 3, 34, 119, 0, 4, 101, 116, 1, 100, 184, 195, 107, 2, 12, 12, 3, 34, 119,
-			47, 0, 101, 116, 1, 101, 98, 184, 195, 107, 2, 12, 12, 0, 101, 116, 1, 101, 100, 121, 114, 103, 2, 12, 12, 0, 101, 116, 1, 101,
-			100, 165, 195, 114, 2, 12, 12, 0, 101, 116, 1, 101, 100, 184, 195, 109, 2, 12, 12, 0, 101, 116, 1, 101, 102, 102, 97, 114, 116, 115,
-			2, 12, 12, 0, 101, 116, 1, 101, 103, 97, 108, 107, 2, 12, 12, 0, 101, 116, 1, 101, 103, 103, 121, 98, 2, 12, 12, 0, 101, 116,
-			1, 101, 103, 105, 108, 2, 12, 12, 0, 101, 116, 1, 101, 103, 110, 101, 112, 103, 97, 100, 2, 12, 12, 0, 101, 116, 1, 101, 105, 108,
-			105, 109, 97, 102, 2, 12, 12, 0, 101, 116, 1, 101, 107, 115, 101, 110, 110, 101, 109, 2, 12, 12, 0, 101, 116, 1, 101, 107, 115, 105,
-			102, 2, 12, 12, 0, 101, 116, 1, 101, 108, 97, 116, 2, 12, 12, 0, 101, 116, 1, 101, 108, 97, 116, 165, 195, 112, 2, 12, 12, 0,
-			101, 116, 1, 101, 108, 111, 107, 115, 2, 12, 12, 0, 101, 116, 1, 101, 109, 109, 101, 116, 115, 2, 12, 12, 0, 101, 116, 1, 101, 110,
-			97, 118, 100, 166, 195, 115, 2, 12, 12, 0, 101, 116, 1, 101, 110, 101, 2, 12, 12, 0, 101, 116, 1, 101, 116, 115, 114, 184, 195, 102,
-			2, 12, 12, 0, 101, 116, 1, 101, 116, 116, 121, 98, 2, 12, 12, 0, 101, 116, 1, 101, 117, 107, 115, 2, 12, 12, 0, 101, 116, 1,
-			101, 118, 114, 97, 2, 12, 12, 0, 101, 116, 1, 103, 105, 100, 114, 166, 195, 102, 2, 12, 12, 0, 101, 116, 1, 108, 101, 103, 101, 114,
-			2, 12, 12, 0, 101, 116, 1, 110, 101, 104, 2, 32, 0, 101, 116, 1, 111, 116, 101, 118, 2, 12, 12, 0, 101, 116, 1, 114, 101, 100,
-			110, 117, 2, 12, 12, 0, 101, 116, 1, 114, 101, 103, 114, 111, 98, 0, 101, 116, 1, 114, 111, 102, 2, 12, 12, 0, 101, 116, 1, 115,
-			2, 12, 12, 12, 0, 101, 116, 1, 115, 100, 110, 97, 108, 2, 12, 12, 0, 101, 116, 1, 117, 32, 101, 114, 184, 195, 103, 2, 12, 12,
-			0, 101, 116, 1, 117, 32, 101, 114, 184, 195, 103, 2, 12, 12, 0, 101, 116, 1, 117, 32, 101, 118, 97, 104, 2, 12, 12, 0, 101, 116,
-			1, 117, 32, 103, 105, 100, 2, 12, 12, 0, 101, 116, 1, 117, 32, 103, 105, 100, 32, 101, 2, 12, 12, 0, 101, 116, 1, 117, 32, 103,
-			105, 100, 32, 116, 2, 12, 12, 0, 101, 116, 1, 117, 32, 103, 105, 109, 32, 101, 2, 12, 12, 0, 101, 116, 1, 117, 32, 103, 105, 109,
-			32, 116, 2, 12, 12, 0, 101, 116, 1, 117, 32, 103, 111, 32, 116, 101, 114, 2, 12, 0, 101, 116, 1, 117, 32, 109, 101, 100, 32, 101,
-			2, 12, 12, 0, 101, 116, 1, 117, 32, 109, 101, 100, 32, 116, 2, 12, 12, 0, 101, 116, 1, 117, 32, 110, 101, 2, 12, 12, 0, 101,
-			116, 1, 117, 32, 114, 97, 104, 2, 12, 12, 0, 101, 116, 1, 117, 32, 114, 101, 106, 32, 116, 2, 12, 12, 0, 101, 116, 1, 117, 32,
-			114, 184, 195, 103, 2, 12, 12, 0, 101, 116, 1, 117, 32, 115, 111, 32, 101, 2, 12, 12, 0, 101, 116, 1, 117, 32, 115, 111, 32, 116,
-			2, 12, 12, 0, 101, 116, 1, 117, 32, 116, 114, 111, 106, 103, 2, 12, 12, 0, 101, 116, 1, 118, 105, 108, 2, 12, 12, 0, 101, 116,
-			1, 121, 98, 2, 12, 12, 0, 101, 116, 8, 2, 32, 12, 12, 0, 101, 116, 8, 100, 97, 109, 2, 12, 12, 0, 101, 116, 8, 100, 110,
-			105, 2, 12, 12, 0, 101, 116, 8, 100, 114, 111, 2, 12, 12, 0, 101, 116, 8, 112, 111, 2, 12, 12, 0, 101, 116, 8, 117, 2, 32,
-			109, 111, 100, 32, 12, 12, 0, 101, 116, 8, 117, 32, 114, 101, 108, 108, 101, 32, 116, 101, 114, 2, 32, 12, 12, 0, 101, 116, 116, 2,
-			12, 12, 12, 12, 12, 12, 12, 3, 34, 120, 47, 0, 97, 106, 97, 104, 3, 34, 121, 75, 117, 0, 111, 97, 100, 8, 2, 32, 3, 34,
-			132, 58, 72, 0, 4, 101, 8, 116, 110, 101, 2, 32, 3, 51, 6, 115, 0, 101, 8, 116, 110, 101, 2, 101, 110, 32, 0, 101, 8, 116,
-			110, 101, 2, 101, 114, 32, 0, 101, 8, 116, 110, 101, 2, 101, 114, 110, 101, 32, 0, 101, 8, 116, 110, 101, 2, 101, 114, 110, 101, 115,
-			32, 0, 101, 8, 116, 110, 101, 2, 101, 114, 115, 32, 0, 101, 110, 101, 1, 105, 115, 2, 12, 3, 51, 6, 115, 50, 14, 0, 105, 103,
-			104, 116, 3, 51, 6, 136, 47, 0, 105, 1, 10, 2, 28, 33, 3, 51, 7, 37, 0, 101, 2, 116, 105, 111, 110, 12, 12, 12, 12, 3,
-			51, 14, 0, 104, 111, 100, 101, 2, 115, 105, 3, 51, 39, 72, 114, 0, 117, 110, 1, 32, 101, 109, 111, 104, 3, 51, 108, 50, 0, 104,
-			101, 117, 2, 109, 97, 3, 51, 108, 57, 0, 117, 103, 98, 121, 3, 51, 108, 81, 71, 37, 0, 4, 101, 1, 17, 67, 2, 32, 3, 51,
-			109, 0, 101, 1, 17, 67, 2, 115, 116, 32, 0, 101, 1, 17, 67, 2, 115, 116, 101, 32, 0, 101, 1, 100, 108, 166, 195, 0, 101, 1,
-			100, 110, 105, 109, 2, 21, 0, 101, 1, 121, 100, 0, 105, 99, 104, 105, 101, 3, 51, 111, 76, 37, 0, 101, 103, 103, 97, 101, 3, 51,
-			115, 81, 115, 57, 0, 101, 97, 103, 97, 110, 3, 51, 115, 81, 117, 50, 0, 101, 115, 111, 108, 117, 116, 105, 111, 110, 3, 51, 115, 89,
-			39, 55, 40, 91, 6, 39, 50, 0, 101, 1, 101, 117, 116, 115, 2, 110, 3, 51, 116, 0, 104, 111, 100, 101, 115, 105, 97, 3, 51, 124,
-			72, 6, 114, 89, 57, 118, 0, 104, 111, 100, 101, 8, 3, 51, 132, 58, 72, 0, 100, 1, 111, 2, 114, 105, 110, 3, 72, 0, 4, 100,
-			101, 1, 101, 106, 102, 3, 108, 0, 101, 1, 101, 100, 2, 115, 0, 101, 1, 101, 106, 2, 115, 0, 101, 1, 111, 104, 0, 101, 1, 166,
-			195, 2, 12, 0, 101, 1, 166, 195, 2, 32, 24, 0, 101, 1, 166, 195, 108, 0, 101, 1, 184, 195, 107, 0, 101, 1, 184, 195, 109, 115,
-			0, 101, 114, 1, 17, 65, 2, 32, 12, 12, 0, 101, 116, 1, 117, 2, 32, 12, 12, 3, 108, 20, 86, 0, 4, 101, 1, 100, 108, 121,
-			109, 2, 21, 3, 109, 0, 101, 1, 105, 108, 2, 21, 0, 101, 1, 111, 99, 115, 2, 21, 0, 101, 1, 121, 2, 21, 12, 0, 101, 1,
-			121, 115, 2, 110, 101, 100, 115, 195, 166, 116, 116, 101, 110, 100, 101, 0, 101, 1, 17, 65, 2, 32, 12, 12, 3, 109, 11, 0, 4, 101,
-			110, 101, 1, 17, 65, 2, 32, 3, 109, 50, 14, 0, 101, 110, 101, 1, 17, 65, 2, 115, 32, 0, 101, 114, 110, 101, 1, 17, 65, 2,
-			32, 12, 12, 0, 101, 114, 110, 101, 1, 17, 65, 2, 115, 32, 12, 12, 0, 101, 116, 1, 166, 195, 2, 32, 12, 12, 12, 3, 109, 86,
-			0, 101, 115, 1, 17, 65, 2, 32, 3, 109, 89, 0, 4, 1, 98, 3, 110, 0, 2, 25, 0, 4, 101, 103, 1, 166, 195, 115, 2, 101,
-			110, 3, 110, 36, 57, 0, 101, 103, 1, 166, 195, 115, 2, 110, 101, 0, 103, 114, 101, 1, 166, 195, 3, 110, 58, 51, 108, 0, 103, 101,
-			114, 1, 166, 195, 3, 110, 58, 108, 0, 4, 101, 1, 17, 65, 2, 110, 32, 3, 110, 109, 0, 101, 1, 17, 65, 2, 110, 115, 32, 0,
-			114, 101, 2, 32, 0, 114, 101, 114, 2, 32, 0, 114, 101, 114, 2, 110, 101, 32, 0, 101, 116, 1, 17, 65, 2, 32, 12, 12, 3, 110,
-			109, 86, 0, 4, 101, 116, 1, 97, 103, 114, 97, 109, 2, 12, 12, 3, 119, 47, 0, 101, 116, 1, 97, 122, 97, 110, 2, 12, 12, 0,
-			101, 116, 1, 101, 116, 115, 101, 106, 184, 195, 104, 2, 12, 12, 0, 7, 6, 115, 0, 1, 105, 109, 109, 111, 107, 2, 101, 3, 0, 4,
-			1, 101, 99, 99, 117, 115, 3, 6, 0, 1, 105, 109, 111, 114, 112, 109, 111, 107, 0, 97, 99, 101, 1, 108, 97, 3, 6, 89, 118, 89,
-			0, 1, 105, 109, 109, 111, 107, 2, 32, 3, 8, 0, 4, 99, 1, 97, 98, 97, 116, 2, 111, 3, 8, 89, 49, 0, 99, 1, 105, 115,
-			110, 97, 114, 102, 2, 111, 0, 4, 111, 109, 1, 21, 21, 3, 8, 89, 109, 65, 0, 111, 109, 109, 1, 21, 21, 2, 101, 0, 105, 101,
-			103, 102, 114, 105, 101, 100, 3, 21, 100, 101, 0, 97, 105, 110, 116, 101, 3, 21, 102, 114, 0, 105, 103, 110, 111, 114, 101, 3, 21, 105,
-			116, 0, 4, 3, 89, 0, 1, 10, 2, 32, 28, 33, 14, 128, 128, 129, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 1, 101, 99, 98,
-			97, 0, 1, 101, 99, 101, 114, 0, 1, 101, 99, 120, 101, 0, 1, 101, 100, 101, 108, 114, 101, 100, 110, 97, 0, 1, 103, 108, 97, 115,
-			0, 1, 110, 101, 100, 105, 115, 101, 114, 0, 1, 110, 101, 114, 101, 102, 114, 101, 116, 110, 105, 0, 1, 110, 101, 116, 115, 105, 115, 107,
-			101, 0, 1, 121, 107, 0, 2, 17, 65, 0, 2, 99, 105, 103, 97, 114, 0, 2, 105, 101, 0, 2, 106, 0, 2, 111, 109, 107, 111, 115,
-			116, 12, 0, 2, 115, 104, 0, 99, 1, 97, 102, 0, 99, 2, 101, 0, 115, 0, 99, 1, 105, 100, 2, 105, 112, 3, 89, 6, 0, 99,
-			101, 110, 101, 1, 105, 2, 115, 3, 89, 6, 36, 50, 13, 0, 115, 105, 115, 1, 97, 104, 99, 3, 89, 6, 111, 0, 97, 105, 110, 116,
-			3, 89, 6, 115, 57, 50, 72, 0, 117, 114, 1, 97, 108, 3, 89, 6, 123, 34, 0, 111, 109, 1, 111, 109, 111, 114, 107, 3, 89, 6,
-			124, 65, 0, 99, 101, 110, 101, 3, 89, 36, 50, 14, 0, 99, 101, 110, 101, 114, 3, 89, 36, 50, 109, 0, 4, 105, 103, 1, 32, 101,
-			114, 97, 98, 2, 32, 3, 89, 37, 0, 105, 103, 1, 32, 101, 114, 97, 98, 2, 32, 116, 105, 108, 0, 105, 103, 2, 32, 100, 101, 116,
-			0, 105, 103, 2, 32, 117, 110, 100, 115, 107, 121, 108, 100, 12, 0, 105, 103, 8, 2, 32, 109, 105, 103, 0, 101, 97, 116, 116, 108, 101,
-			3, 89, 37, 6, 117, 47, 13, 55, 0, 101, 121, 109, 111, 117, 114, 8, 3, 89, 37, 12, 65, 125, 12, 0, 105, 111, 110, 8, 3, 89,
-			37, 12, 109, 50, 0, 105, 100, 110, 101, 121, 3, 89, 37, 72, 50, 37, 0, 101, 97, 115, 111, 110, 8, 3, 89, 37, 89, 13, 50, 0,
-			111, 105, 103, 110, 3, 89, 39, 117, 68, 0, 105, 111, 117, 120, 3, 89, 40, 12, 0, 116, 101, 112, 104, 101, 110, 3, 89, 47, 37, 84,
-			13, 50, 0, 116, 114, 105, 107, 101, 3, 89, 47, 51, 136, 49, 0, 116, 101, 97, 108, 116, 104, 3, 89, 47, 115, 55, 87, 0, 116, 97,
-			116, 101, 1, 32, 101, 114, 105, 112, 109, 101, 2, 32, 3, 89, 47, 115, 57, 47, 0, 116, 101, 97, 107, 3, 89, 47, 115, 57, 49, 0,
-			116, 97, 99, 121, 8, 3, 89, 47, 115, 57, 89, 37, 0, 112, 101, 97, 107, 3, 89, 48, 37, 12, 49, 0, 112, 101, 99, 105, 97, 108,
-			2, 32, 98, 114, 97, 110, 99, 104, 3, 89, 48, 115, 89, 57, 112, 55, 0, 4, 99, 1, 101, 2, 111, 98, 97, 114, 3, 89, 49, 0,
-			99, 1, 101, 109, 2, 97, 108, 0, 99, 1, 105, 99, 110, 97, 114, 102, 2, 111, 0, 99, 2, 111, 111, 0, 99, 2, 111, 114, 0, 99,
-			2, 114, 97, 112, 0, 99, 104, 2, 111, 111, 108, 0, 4, 99, 1, 97, 109, 2, 97, 114, 97, 3, 89, 49, 6, 0, 99, 1, 105, 100,
-			2, 111, 117, 110, 116, 0, 99, 111, 114, 116, 1, 101, 3, 89, 49, 6, 108, 12, 47, 0, 99, 114, 101, 119, 100, 114, 105, 118, 101, 114,
-			3, 89, 49, 51, 40, 72, 34, 136, 84, 108, 0, 99, 111, 2, 116, 3, 89, 49, 108, 0, 99, 111, 110, 101, 3, 89, 49, 108, 50, 0,
-			107, 97, 116, 101, 98, 111, 97, 114, 100, 3, 89, 49, 115, 57, 47, 71, 125, 12, 72, 0, 107, 121, 108, 105, 110, 101, 3, 89, 49, 136,
-			55, 136, 50, 0, 108, 105, 109, 108, 105, 110, 101, 3, 89, 55, 113, 65, 55, 136, 50, 0, 104, 105, 110, 101, 3, 89, 57, 136, 50, 13,
-			0, 119, 101, 101, 116, 3, 89, 58, 37, 12, 47, 0, 109, 105, 116, 104, 3, 89, 65, 36, 47, 0, 109, 121, 116, 104, 101, 3, 89, 65,
-			121, 12, 57, 86, 0, 109, 105, 108, 101, 121, 3, 89, 65, 136, 55, 37, 0, 116, 114, 97, 105, 103, 104, 116, 3, 89, 72, 34, 115, 12,
-			57, 47, 0, 113, 117, 97, 115, 104, 3, 89, 81, 58, 108, 91, 0, 4, 195, 165, 1, 32, 100, 101, 109, 2, 32, 3, 89, 108, 0, 195,
-			165, 1, 32, 100, 108, 111, 104, 2, 32, 0, 195, 165, 1, 32, 101, 100, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32, 101, 114, 2,
-			32, 0, 195, 165, 1, 32, 101, 118, 105, 108, 98, 2, 32, 0, 195, 165, 1, 32, 103, 111, 2, 32, 118, 105, 100, 101, 114, 101, 0, 195,
-			165, 1, 32, 105, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32, 114, 2, 32, 98, 97,
-			110, 103, 101, 0, 195, 165, 1, 32, 114, 101, 2, 32, 0, 195, 165, 1, 32, 115, 101, 2, 32, 0, 195, 165, 1, 32, 117, 100, 32, 108,
-			105, 118, 2, 32, 0, 195, 165, 1, 32, 118, 101, 108, 98, 2, 32, 0, 195, 165, 8, 2, 32, 98, 101, 115, 118, 195, 166, 114, 108, 105,
-			103, 0, 195, 165, 8, 2, 32, 98, 108, 101, 118, 32, 0, 195, 165, 8, 2, 32, 98, 108, 105, 118, 101, 114, 32, 0, 195, 165, 8, 2,
-			32, 100, 101, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 100, 101, 110, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 102, 105, 107, 32,
-			0, 195, 165, 8, 2, 32, 103, 105, 107, 32, 0, 195, 165, 8, 2, 32, 103, 195, 165, 32, 0, 195, 165, 8, 2, 32, 103, 195, 165, 114,
-			32, 0, 195, 165, 8, 2, 32, 103, 195, 184, 114, 101, 32, 0, 195, 165, 8, 2, 32, 104, 17, 65, 110, 32, 109, 195, 165, 0, 195, 165,
-			8, 2, 32, 104, 97, 118, 100, 101, 32, 0, 195, 165, 8, 2, 32, 104, 97, 118, 101, 32, 0, 195, 165, 8, 2, 32, 104, 101, 114, 32,
-			0, 195, 165, 8, 2, 32, 104, 111, 108, 100, 32, 0, 195, 165, 8, 2, 32, 105, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 107, 97,
-			110, 32, 0, 195, 165, 8, 2, 32, 107, 111, 109, 32, 0, 195, 165, 8, 2, 32, 107, 111, 109, 109, 101, 114, 32, 0, 195, 165, 8, 2,
-			32, 108, 97, 100, 32, 0, 195, 165, 8, 2, 32, 108, 97, 110, 103, 32, 0, 195, 165, 8, 2, 32, 110, 195, 166, 114, 32, 0, 195, 165,
-			8, 2, 32, 115, 105, 107, 107, 101, 114, 32, 0, 195, 165, 8, 2, 32, 115, 107, 97, 108, 32, 0, 195, 165, 8, 2, 32, 115, 107, 101,
-			116, 101, 32, 0, 195, 165, 8, 2, 32, 116, 97, 103, 101, 114, 32, 0, 195, 165, 8, 2, 32, 118, 101, 100, 32, 0, 195, 165, 8, 2,
-			32, 118, 105, 32, 107, 97, 110, 32, 0, 195, 165, 8, 2, 32, 118, 105, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 118, 105, 108, 108,
-			101, 32, 0, 195, 165, 8, 32, 101, 100, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 101, 100, 32, 108, 105, 118, 2, 32,
-			0, 195, 165, 8, 32, 103, 105, 100, 2, 32, 0, 195, 165, 8, 32, 105, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 105,
-			32, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 110, 97, 104, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 110, 97, 104,
-			32, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 110, 97, 104, 32, 114, 184, 195, 103, 2, 32, 0, 195, 165, 8, 32, 110, 117, 104, 32,
-			101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 110, 117, 104, 32, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 114, 111, 102, 0,
-			195, 165, 8, 32, 117, 100, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 117, 100, 32, 101, 108, 108, 105, 118, 2, 32, 0,
-			195, 165, 8, 32, 117, 100, 32, 114, 101, 2, 32, 0, 117, 110, 100, 97, 121, 3, 89, 108, 50, 72, 37, 0, 117, 110, 115, 101, 116, 8,
-			3, 89, 108, 50, 89, 115, 47, 0, 117, 108, 108, 105, 118, 97, 110, 3, 89, 108, 55, 37, 84, 112, 50, 0, 117, 116, 104, 101, 114, 3,
-			89, 108, 86, 108, 0, 105, 99, 105, 108, 105, 101, 110, 3, 89, 111, 89, 6, 111, 55, 57, 14, 50, 0, 101, 105, 110, 101, 3, 89, 115,
-			50, 112, 0, 97, 105, 100, 1, 32, 116, 114, 111, 112, 3, 89, 117, 6, 37, 72, 0, 97, 118, 111, 105, 114, 3, 89, 117, 84, 39, 35,
-			12, 0, 97, 108, 111, 111, 110, 3, 89, 118, 55, 6, 40, 12, 50, 0, 105, 103, 1, 32, 114, 101, 2, 32, 116, 105, 108, 3, 89, 121,
-			57, 0, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 8, 3, 89, 123, 71, 89, 47, 111, 47, 123, 91, 6, 124, 50, 0, 117, 98,
-			115, 116, 105, 116, 117, 116, 105, 111, 110, 3, 89, 123, 71, 89, 47, 111, 47, 123, 91, 124, 50, 0, 195, 165, 8, 2, 32, 104, 97, 109,
-			12, 3, 89, 125, 0, 117, 112, 112, 111, 114, 116, 3, 89, 125, 48, 6, 108, 34, 72, 0, 105, 114, 8, 2, 32, 3, 89, 132, 12, 0,
-			4, 117, 114, 102, 3, 89, 132, 12, 83, 0, 117, 114, 102, 2, 101, 0, 4, 105, 103, 1, 32, 97, 114, 102, 2, 32, 3, 89, 136, 0,
-			105, 103, 1, 32, 100, 101, 114, 2, 32, 0, 105, 103, 1, 32, 100, 111, 108, 2, 32, 0, 105, 103, 1, 32, 100, 184, 195, 98, 2, 32,
-			0, 105, 103, 1, 32, 100, 184, 195, 107, 115, 2, 32, 0, 105, 103, 1, 32, 100, 184, 195, 114, 98, 2, 32, 0, 105, 103, 1, 32, 101,
-			2, 32, 12, 0, 105, 103, 1, 32, 101, 2, 32, 109, 105, 103, 0, 105, 103, 1, 32, 101, 2, 32, 116, 105, 108, 0, 105, 103, 1, 32,
-			101, 100, 2, 32, 0, 105, 103, 1, 32, 101, 100, 110, 101, 118, 2, 32, 0, 105, 103, 1, 32, 101, 103, 103, 121, 104, 2, 32, 0, 105,
-			103, 1, 32, 101, 108, 184, 195, 102, 2, 32, 0, 105, 103, 1, 32, 101, 114, 166, 195, 108, 107, 114, 101, 2, 32, 0, 105, 103, 1, 32,
-			101, 114, 184, 195, 103, 2, 32, 100, 101, 116, 0, 105, 103, 1, 32, 103, 101, 110, 115, 2, 32, 0, 105, 103, 1, 32, 103, 110, 97, 118,
-			116, 2, 32, 0, 105, 103, 1, 32, 103, 111, 108, 115, 2, 32, 0, 105, 103, 1, 32, 103, 111, 116, 2, 32, 0, 105, 103, 1, 32, 107,
-			97, 2, 32, 0, 105, 103, 1, 32, 107, 105, 103, 2, 32, 0, 105, 103, 1, 32, 107, 108, 111, 102, 32, 114, 101, 2, 32, 0, 105, 103,
-			1, 32, 108, 105, 116, 2, 32, 0, 105, 103, 1, 32, 109, 111, 107, 2, 32, 0, 105, 103, 1, 32, 110, 17, 65, 2, 32, 116, 105, 108,
-			0, 105, 103, 1, 32, 110, 97, 104, 2, 32, 0, 105, 103, 1, 32, 110, 97, 109, 2, 32, 0, 105, 103, 1, 32, 110, 101, 100, 2, 32,
-			0, 105, 103, 1, 32, 110, 117, 104, 2, 32, 0, 105, 103, 1, 32, 111, 114, 116, 101, 98, 2, 32, 0, 105, 103, 1, 32, 114, 101, 2,
-			32, 0, 105, 103, 1, 32, 114, 101, 115, 2, 32, 111, 109, 0, 105, 103, 1, 32, 114, 111, 102, 2, 32, 0, 105, 103, 1, 32, 114, 111,
-			110, 115, 2, 32, 0, 105, 103, 1, 32, 114, 111, 114, 116, 101, 98, 2, 32, 0, 105, 103, 1, 32, 114, 165, 195, 2, 32, 0, 105, 103,
-			1, 32, 114, 165, 195, 108, 115, 2, 32, 0, 105, 103, 1, 32, 114, 184, 195, 2, 32, 0, 105, 103, 1, 32, 116, 2, 32, 0, 105, 103,
-			1, 32, 116, 97, 115, 2, 32, 0, 105, 103, 1, 32, 116, 101, 2, 32, 0, 105, 103, 1, 32, 116, 101, 2, 32, 116, 105, 108, 0, 105,
-			103, 1, 32, 118, 97, 103, 2, 32, 0, 105, 103, 1, 32, 118, 97, 103, 2, 32, 116, 105, 108, 0, 105, 103, 1, 32, 165, 195, 102, 2,
-			32, 0, 105, 103, 1, 32, 165, 195, 103, 2, 32, 0, 105, 103, 1, 32, 165, 195, 108, 115, 2, 32, 0, 105, 103, 1, 32, 165, 195, 112,
-			2, 32, 0, 105, 103, 1, 32, 165, 195, 115, 2, 32, 111, 109, 0, 105, 103, 1, 32, 165, 195, 116, 115, 2, 32, 0, 105, 103, 8, 2,
-			32, 97, 102, 32, 0, 105, 103, 8, 2, 32, 97, 108, 101, 110, 101, 0, 105, 103, 8, 2, 32, 102, 111, 114, 0, 105, 103, 8, 2, 32,
-			105, 32, 100, 101, 17, 67, 0, 105, 103, 8, 2, 32, 105, 110, 100, 32, 0, 105, 103, 8, 2, 32, 109, 101, 100, 0, 105, 103, 8, 2,
-			32, 111, 109, 0, 105, 103, 8, 2, 32, 111, 118, 101, 114, 0, 105, 103, 8, 2, 32, 112, 195, 165, 32, 0, 105, 103, 8, 2, 32, 115,
-			101, 108, 118, 0, 105, 103, 8, 2, 32, 117, 100, 32, 0, 105, 103, 8, 32, 100, 101, 109, 2, 32, 0, 105, 103, 8, 32, 101, 100, 2,
-			32, 116, 105, 108, 0, 105, 103, 8, 32, 102, 97, 2, 32, 0, 105, 103, 8, 32, 105, 2, 32, 0, 105, 103, 8, 32, 110, 97, 104, 2,
-			32, 0, 105, 103, 8, 32, 184, 195, 108, 107, 2, 32, 0, 105, 103, 104, 116, 115, 101, 101, 105, 110, 103, 3, 89, 136, 47, 89, 37, 12,
-			36, 68, 0, 4, 99, 104, 3, 91, 0, 104, 1, 97, 104, 0, 104, 1, 97, 109, 115, 0, 104, 1, 97, 110, 0, 104, 1, 97, 112, 2,
-			97, 0, 104, 1, 105, 98, 2, 111, 112, 0, 104, 1, 105, 102, 2, 101, 114, 0, 104, 1, 105, 114, 116, 0, 104, 1, 111, 109, 2, 101,
-			0, 104, 1, 114, 97, 109, 0, 104, 1, 117, 112, 0, 104, 1, 117, 115, 2, 105, 0, 104, 2, 101, 114, 105, 102, 0, 104, 8, 0, 105,
-			2, 111, 110, 0, 115, 105, 2, 111, 0, 104, 105, 114, 101, 3, 91, 13, 0, 104, 111, 119, 3, 91, 39, 40, 0, 106, 2, 111, 3, 91,
-			57, 0, 104, 111, 116, 3, 91, 108, 47, 0, 104, 101, 112, 104, 101, 114, 100, 3, 91, 115, 48, 20, 108, 72, 0, 104, 101, 105, 107, 3,
-			91, 121, 113, 49, 0, 117, 103, 97, 114, 8, 2, 32, 3, 91, 123, 81, 108, 0, 104, 111, 114, 2, 116, 3, 91, 125, 0, 101, 97, 110,
-			8, 2, 32, 3, 91, 125, 12, 50, 0, 101, 97, 110, 115, 8, 2, 32, 3, 91, 125, 12, 50, 89, 0, 104, 101, 114, 2, 119, 111, 111,
-			100, 3, 91, 132, 12, 0, 104, 101, 114, 109, 97, 110, 3, 91, 132, 12, 65, 118, 50, 0, 104, 105, 114, 116, 3, 91, 132, 47, 0, 104,
-			105, 114, 116, 101, 110, 3, 91, 132, 47, 13, 50, 0, 104, 101, 114, 108, 111, 99, 107, 3, 91, 132, 55, 108, 49, 0, 7, 6, 116, 0,
-			8, 114, 97, 2, 32, 100, 101, 99, 111, 3, 0, 104, 1, 110, 97, 109, 97, 115, 2, 97, 3, 8, 87, 0, 101, 1, 116, 2, 32, 3,
-			14, 11, 0, 97, 110, 103, 117, 121, 8, 3, 21, 102, 114, 0, 4, 3, 47, 0, 1, 114, 111, 116, 2, 101, 114, 101, 0, 104, 1, 117,
-			108, 2, 101, 114, 0, 104, 1, 117, 114, 0, 104, 8, 2, 101, 111, 0, 116, 0, 116, 1, 106, 184, 195, 104, 2, 97, 108, 101, 114, 0,
-			4, 101, 107, 8, 97, 105, 100, 101, 109, 3, 47, 6, 36, 49, 0, 101, 107, 8, 101, 103, 101, 108, 0, 101, 107, 8, 111, 101, 100, 105,
-			118, 0, 101, 107, 8, 111, 105, 108, 98, 105, 98, 0, 101, 107, 8, 111, 107, 97, 110, 105, 112, 0, 101, 107, 8, 111, 107, 115, 105, 100,
-			0, 101, 107, 8, 111, 110, 111, 102, 0, 101, 107, 8, 111, 112, 97, 0, 101, 107, 8, 111, 112, 121, 104, 0, 101, 107, 8, 111, 116, 111,
-			102, 0, 101, 107, 8, 111, 116, 112, 121, 108, 103, 0, 101, 107, 8, 111, 116, 114, 97, 107, 0, 101, 107, 8, 114, 97, 104, 99, 0, 4,
-			8, 2, 32, 98, 111, 110, 101, 3, 47, 6, 37, 12, 2, 0, 8, 2, 32, 115, 104, 105, 114, 116, 0, 101, 1, 103, 121, 108, 2, 21,
-			3, 47, 14, 0, 101, 102, 195, 184, 1, 114, 111, 112, 2, 108, 106, 101, 3, 47, 14, 83, 6, 133, 0, 114, 101, 118, 111, 114, 8, 3,
-			47, 16, 115, 84, 108, 0, 114, 101, 110, 99, 104, 99, 111, 97, 116, 3, 47, 34, 6, 115, 50, 91, 49, 4, 39, 40, 72, 0, 101, 114,
-			101, 115, 115, 2, 97, 110, 116, 3, 47, 34, 112, 89, 0, 4, 101, 114, 101, 115, 115, 101, 114, 101, 1, 110, 105, 3, 47, 34, 112, 89,
-			6, 36, 108, 0, 101, 114, 101, 115, 115, 101, 114, 101, 114, 1, 110, 105, 0, 101, 114, 101, 115, 115, 101, 114, 101, 116, 1, 110, 105, 3,
-			47, 34, 112, 89, 6, 36, 108, 86, 0, 114, 195, 168, 115, 8, 2, 32, 3, 47, 34, 115, 0, 114, 97, 100, 101, 1, 32, 100, 108, 114,
-			111, 119, 3, 47, 34, 115, 57, 72, 0, 4, 114, 97, 99, 101, 121, 8, 3, 47, 34, 115, 57, 89, 37, 0, 114, 97, 99, 121, 8, 0,
-			4, 114, 101, 100, 105, 118, 116, 101, 100, 101, 108, 3, 47, 34, 117, 83, 72, 13, 72, 36, 55, 0, 114, 101, 100, 118, 116, 101, 100, 101,
-			108, 0, 4, 101, 8, 2, 32, 3, 47, 36, 0, 101, 8, 115, 105, 2, 32, 0, 8, 2, 32, 3, 47, 36, 12, 0, 101, 97, 107, 8,
-			3, 47, 37, 12, 49, 0, 101, 101, 110, 97, 103, 101, 3, 47, 37, 12, 50, 115, 75, 0, 101, 101, 110, 97, 103, 101, 114, 3, 47, 37,
-			12, 50, 115, 75, 108, 0, 101, 97, 99, 104, 8, 3, 47, 37, 12, 76, 0, 111, 109, 98, 115, 3, 47, 40, 12, 65, 89, 0, 111, 109,
-			98, 115, 116, 111, 110, 101, 3, 47, 40, 12, 65, 89, 72, 39, 40, 50, 0, 119, 111, 115, 116, 101, 112, 3, 47, 40, 12, 89, 47, 115,
-			48, 0, 117, 99, 115, 111, 110, 8, 3, 47, 40, 12, 89, 108, 50, 0, 4, 116, 1, 101, 2, 97, 108, 3, 47, 47, 0, 116, 1, 101,
-			2, 105, 100, 0, 116, 2, 195, 184, 106, 0, 116, 1, 97, 110, 2, 195, 184, 106, 3, 47, 47, 4, 0, 117, 100, 111, 114, 3, 47, 57,
-			40, 72, 108, 0, 111, 107, 121, 111, 3, 47, 108, 49, 57, 39, 0, 101, 114, 101, 115, 115, 101, 8, 110, 105, 3, 47, 108, 51, 6, 120,
-			89, 14, 0, 101, 114, 101, 115, 115, 101, 114, 1, 110, 105, 3, 47, 108, 51, 6, 120, 89, 108, 0, 111, 117, 99, 104, 100, 111, 119, 110,
-			3, 47, 108, 76, 72, 35, 58, 50, 0, 105, 109, 111, 116, 104, 121, 3, 47, 113, 65, 127, 87, 37, 0, 101, 1, 105, 109, 111, 107, 21,
-			3, 47, 114, 0, 101, 110, 110, 101, 115, 115, 101, 101, 3, 47, 115, 50, 13, 89, 37, 0, 97, 112, 101, 8, 2, 32, 3, 47, 115, 57,
-			48, 0, 97, 112, 101, 8, 2, 110, 32, 3, 47, 115, 57, 48, 112, 0, 101, 114, 114, 121, 8, 3, 47, 116, 16, 37, 0, 97, 106, 8,
-			2, 32, 109, 97, 104, 97, 108, 3, 47, 117, 91, 0, 111, 119, 110, 3, 47, 121, 58, 50, 0, 111, 114, 113, 117, 97, 121, 3, 47, 125,
-			12, 49, 37, 0, 111, 97, 115, 116, 3, 47, 125, 58, 89, 47, 0, 111, 97, 115, 116, 109, 97, 115, 116, 101, 114, 3, 47, 125, 58, 89,
-			47, 65, 4, 121, 12, 89, 47, 108, 0, 121, 118, 101, 3, 47, 129, 12, 58, 0, 104, 97, 105, 3, 47, 136, 0, 105, 116, 97, 110, 105,
-			99, 3, 47, 136, 47, 6, 118, 50, 111, 49, 0, 105, 109, 101, 115, 1, 32, 101, 104, 116, 3, 47, 136, 65, 89, 0, 105, 109, 101, 115,
-			104, 97, 114, 101, 3, 47, 136, 65, 91, 115, 12, 34, 0, 4, 2, 101, 110, 32, 3, 72, 0, 116, 2, 101, 110, 0, 4, 101, 1, 108,
-			101, 104, 2, 21, 3, 72, 14, 0, 101, 1, 114, 111, 115, 2, 112, 21, 0, 101, 1, 115, 101, 110, 101, 2, 21, 0, 101, 2, 32, 3,
-			72, 14, 11, 0, 4, 101, 114, 1, 103, 121, 108, 3, 72, 109, 0, 101, 114, 1, 115, 101, 110, 101, 2, 21, 0, 106, 8, 3, 76, 0,
-			104, 1, 114, 97, 109, 2, 97, 3, 87, 0, 104, 114, 111, 97, 116, 3, 87, 34, 13, 58, 47, 0, 104, 101, 114, 105, 110, 101, 1, 97,
-			99, 3, 87, 34, 36, 50, 0, 104, 117, 110, 100, 101, 114, 3, 87, 108, 50, 72, 108, 0, 104, 97, 99, 107, 101, 114, 121, 3, 87, 118,
-			49, 14, 34, 113, 0, 104, 105, 114, 100, 3, 87, 132, 12, 72, 0, 115, 104, 1, 105, 110, 97, 106, 2, 97, 114, 3, 91, 0, 7, 6,
-			117, 0, 1, 115, 2, 98, 108, 105, 3, 2, 123, 0, 4, 1, 100, 101, 115, 117, 114, 107, 2, 108, 108, 101, 3, 6, 40, 0, 1, 102,
-			105, 114, 116, 110, 101, 99, 2, 103, 0, 1, 107, 111, 114, 112, 2, 114, 97, 0, 1, 108, 97, 100, 110, 97, 2, 115, 0, 1, 108, 97,
-			104, 99, 2, 112, 0, 1, 112, 97, 99, 97, 2, 108, 99, 111, 0, 1, 114, 101, 106, 2, 115, 97, 108, 101, 109, 0, 1, 116, 107, 97,
-			102, 2, 114, 97, 0, 1, 116, 115, 111, 103, 110, 97, 2, 114, 97, 0, 2, 108, 106, 101, 0, 8, 98, 111, 114, 2, 115, 116, 0, 8,
-			100, 105, 102, 2, 115, 0, 8, 102, 110, 111, 107, 2, 115, 0, 8, 103, 105, 102, 2, 114, 0, 8, 104, 114, 165, 195, 2, 110, 100, 114,
-			101, 100, 101, 0, 8, 107, 108, 97, 107, 2, 110, 0, 8, 107, 110, 111, 107, 2, 114, 115, 0, 8, 108, 111, 118, 2, 109, 101, 0, 8,
-			108, 111, 118, 110, 111, 107, 2, 116, 0, 8, 112, 114, 97, 104, 2, 110, 0, 8, 115, 97, 98, 2, 110, 0, 8, 115, 97, 108, 103, 2,
-			114, 0, 8, 115, 98, 97, 2, 114, 100, 0, 8, 115, 117, 97, 108, 107, 2, 108, 0, 1, 103, 110, 166, 195, 107, 2, 114, 117, 3, 6,
-			40, 10, 0, 4, 1, 100, 110, 111, 104, 2, 114, 97, 3, 6, 40, 12, 0, 8, 17, 67, 97, 108, 2, 110, 101, 0, 8, 109, 109, 111,
-			107, 2, 110, 101, 0, 98, 101, 8, 2, 12, 3, 6, 40, 71, 36, 0, 4, 100, 8, 2, 114, 195, 184, 106, 12, 14, 128, 132, 130, 3,
-			6, 40, 72, 0, 100, 8, 2, 195, 184, 98, 116, 12, 14, 128, 132, 130, 0, 116, 97, 104, 3, 6, 57, 40, 12, 47, 121, 0, 1, 99,
-			108, 97, 99, 2, 116, 116, 97, 3, 6, 108, 0, 99, 107, 121, 1, 116, 110, 101, 107, 3, 6, 108, 49, 37, 0, 4, 1, 107, 109, 111,
-			2, 108, 100, 3, 6, 123, 0, 1, 108, 97, 118, 2, 116, 97, 0, 1, 108, 101, 115, 105, 118, 2, 108, 108, 101, 0, 1, 111, 115, 115,
-			101, 114, 2, 114, 115, 0, 1, 112, 108, 97, 118, 2, 114, 103, 105, 115, 0, 1, 112, 109, 105, 2, 108, 115, 0, 1, 114, 98, 97, 2,
-			112, 116, 0, 1, 115, 101, 114, 2, 114, 115, 0, 8, 2, 108, 195, 166, 107, 107, 101, 114, 0, 8, 98, 98, 105, 107, 2, 116, 122, 0,
-			8, 114, 101, 100, 2, 100, 0, 8, 114, 116, 115, 110, 105, 2, 107, 115, 0, 116, 1, 10, 2, 116, 28, 33, 0, 117, 100, 8, 3, 6,
-			123, 6, 123, 86, 0, 4, 114, 1, 115, 97, 108, 3, 6, 123, 34, 0, 114, 1, 115, 97, 108, 103, 0, 114, 1, 115, 97, 114, 0, 114,
-			1, 115, 110, 101, 99, 0, 114, 1, 115, 110, 101, 109, 0, 114, 1, 115, 110, 111, 116, 0, 114, 1, 115, 115, 101, 114, 100, 0, 114, 1,
-			115, 115, 105, 102, 0, 114, 1, 115, 166, 195, 99, 0, 114, 8, 102, 109, 111, 107, 0, 116, 1, 10, 2, 28, 33, 3, 6, 123, 47, 0,
-			4, 100, 8, 2, 97, 116, 12, 14, 128, 132, 130, 3, 6, 123, 72, 0, 100, 8, 2, 101, 108, 116, 12, 14, 128, 132, 130, 0, 100, 8,
-			2, 121, 12, 14, 128, 132, 130, 0, 100, 8, 2, 195, 165, 100, 12, 14, 128, 132, 130, 0, 102, 111, 114, 8, 3, 6, 123, 83, 108, 12,
-			4, 0, 4, 1, 108, 111, 99, 2, 109, 98, 3, 6, 125, 0, 8, 107, 101, 115, 2, 110, 100, 0, 4, 1, 103, 117, 97, 2, 115, 116,
-			3, 6, 126, 0, 1, 108, 97, 104, 2, 110, 107, 0, 110, 100, 1, 98, 97, 114, 2, 117, 115, 3, 6, 126, 50, 72, 0, 4, 1, 98,
-			105, 116, 115, 101, 118, 2, 108, 3, 6, 129, 0, 1, 100, 101, 99, 111, 114, 112, 2, 114, 101, 0, 1, 102, 114, 97, 112, 2, 109, 101,
-			0, 1, 116, 101, 2, 100, 101, 12, 0, 8, 98, 105, 114, 116, 2, 110, 101, 0, 101, 1, 100, 110, 111, 102, 0, 101, 1, 110, 101, 118,
-			97, 0, 116, 8, 98, 101, 100, 0, 114, 101, 1, 116, 117, 111, 10, 2, 28, 33, 3, 6, 129, 12, 34, 0, 109, 101, 8, 116, 115, 111,
-			107, 3, 6, 129, 65, 14, 0, 4, 1, 110, 101, 118, 111, 114, 112, 3, 6, 130, 0, 8, 110, 101, 109, 0, 100, 101, 8, 2, 21, 21,
-			12, 14, 128, 132, 131, 3, 7, 40, 86, 14, 0, 103, 101, 2, 110, 101, 114, 116, 12, 3, 7, 40, 91, 36, 0, 4, 114, 1, 100, 10,
-			2, 28, 33, 12, 3, 7, 123, 34, 0, 114, 1, 116, 10, 2, 28, 33, 12, 0, 100, 8, 2, 21, 21, 12, 14, 128, 132, 130, 3, 7,
-			123, 86, 0, 114, 101, 1, 10, 2, 12, 12, 12, 28, 33, 3, 7, 129, 12, 108, 0, 101, 122, 1, 103, 3, 8, 36, 89, 0, 1, 112,
-			109, 105, 2, 108, 115, 105, 118, 3, 8, 40, 0, 109, 1, 10, 2, 28, 33, 3, 8, 125, 65, 0, 105, 100, 101, 1, 103, 3, 35, 12,
-			57, 72, 0, 114, 2, 103, 116, 3, 39, 110, 0, 4, 1, 17, 67, 2, 107, 116, 18, 69, 3, 40, 0, 1, 18, 74, 115, 2, 17, 67,
-			18, 76, 0, 1, 104, 2, 106, 101, 12, 0, 1, 104, 2, 108, 18, 76, 0, 1, 104, 2, 108, 101, 0, 1, 104, 2, 108, 116, 0, 1,
-			107, 2, 17, 67, 101, 0, 1, 107, 2, 108, 18, 69, 0, 1, 107, 2, 108, 18, 70, 0, 1, 107, 2, 108, 100, 0, 1, 107, 100, 101,
-			118, 111, 104, 2, 108, 115, 0, 1, 107, 115, 2, 108, 112, 0, 1, 108, 2, 107, 97, 115, 0, 1, 108, 2, 110, 32, 0, 1, 108, 2,
-			110, 101, 0, 1, 108, 98, 2, 102, 195, 166, 0, 1, 108, 115, 2, 103, 116, 0, 1, 109, 2, 108, 105, 103, 0, 1, 109, 115, 2, 18,
-			68, 12, 0, 1, 109, 115, 2, 103, 108, 0, 1, 114, 2, 18, 71, 18, 69, 0, 1, 114, 98, 2, 103, 0, 1, 114, 102, 2, 115, 0,
-			1, 114, 116, 2, 18, 71, 0, 1, 114, 116, 2, 109, 97, 110, 0, 1, 115, 2, 103, 0, 2, 17, 67, 101, 0, 2, 103, 108, 101, 12,
-			0, 2, 115, 101, 0, 8, 114, 112, 2, 115, 116, 0, 101, 1, 100, 110, 105, 118, 0, 103, 1, 98, 2, 116, 97, 0, 103, 2, 101, 12,
-			12, 0, 2, 101, 110, 105, 103, 12, 3, 40, 6, 0, 101, 8, 108, 102, 110, 105, 2, 110, 122, 97, 3, 40, 6, 115, 0, 8, 2, 21,
-			21, 12, 14, 128, 132, 129, 3, 40, 11, 0, 4, 1, 106, 2, 105, 99, 101, 3, 40, 12, 0, 2, 104, 121, 114, 101, 12, 0, 8, 2,
-			114, 101, 116, 102, 195, 166, 12, 12, 14, 128, 132, 129, 0, 101, 1, 98, 108, 97, 0, 101, 1, 100, 2, 115, 0, 101, 1, 104, 0, 101,
-			1, 114, 107, 115, 2, 17, 67, 0, 101, 2, 32, 0, 103, 1, 98, 2, 103, 106, 111, 114, 100, 0, 103, 1, 108, 2, 101, 0, 103, 1,
-			109, 2, 101, 32, 117, 100, 0, 101, 1, 116, 115, 3, 40, 12, 14, 0, 115, 97, 8, 2, 32, 3, 40, 12, 36, 89, 6, 117, 0, 115,
-			97, 39, 115, 8, 2, 32, 3, 40, 12, 36, 89, 6, 117, 89, 0, 114, 100, 101, 1, 116, 3, 40, 12, 108, 0, 4, 101, 1, 100, 2,
-			108, 105, 103, 3, 40, 14, 0, 101, 1, 116, 115, 2, 32, 0, 101, 1, 116, 115, 2, 110, 32, 0, 101, 116, 1, 100, 110, 105, 118, 3,
-			40, 14, 86, 0, 114, 101, 1, 115, 10, 2, 114, 101, 12, 12, 12, 3, 40, 34, 7, 36, 0, 107, 101, 116, 8, 98, 3, 40, 49, 6,
-			115, 47, 0, 108, 114, 101, 116, 1, 107, 3, 40, 55, 51, 108, 86, 0, 98, 101, 115, 101, 116, 8, 2, 32, 3, 40, 71, 114, 89, 114,
-			72, 0, 102, 111, 114, 109, 101, 108, 3, 40, 83, 125, 65, 6, 116, 55, 0, 4, 101, 114, 1, 100, 110, 105, 118, 3, 40, 108, 0, 103,
-			101, 114, 2, 12, 0, 4, 101, 114, 2, 32, 3, 40, 109, 0, 114, 101, 2, 32, 0, 114, 101, 114, 2, 32, 0, 103, 101, 1, 115, 2,
-			114, 195, 184, 114, 3, 40, 112, 0, 103, 97, 102, 1, 108, 3, 55, 126, 81, 6, 118, 0, 4, 1, 100, 111, 114, 112, 2, 99, 101, 114,
-			101, 110, 3, 57, 40, 0, 1, 112, 109, 111, 99, 2, 116, 101, 114, 0, 1, 116, 2, 110, 101, 32, 0, 1, 116, 2, 110, 101, 114, 32,
-			0, 1, 116, 2, 110, 101, 115, 32, 0, 1, 116, 2, 110, 105, 110, 103, 12, 0, 1, 116, 2, 116, 111, 114, 0, 8, 116, 115, 2, 97,
-			114, 116, 0, 114, 101, 1, 116, 120, 105, 109, 3, 57, 108, 0, 110, 105, 116, 101, 100, 3, 57, 123, 50, 6, 136, 47, 36, 72, 0, 105,
-			1, 115, 2, 116, 101, 3, 58, 37, 0, 97, 119, 1, 113, 115, 3, 58, 125, 12, 0, 4, 1, 32, 100, 110, 97, 116, 115, 2, 112, 3,
-			108, 0, 1, 100, 2, 98, 108, 105, 110, 0, 1, 100, 2, 110, 99, 97, 110, 0, 1, 102, 2, 99, 107, 12, 12, 0, 1, 104, 99, 116,
-			101, 107, 2, 112, 0, 1, 108, 99, 2, 98, 0, 1, 110, 2, 109, 108, 111, 99, 107, 0, 1, 114, 116, 2, 115, 116, 0, 1, 116, 115,
-			2, 110, 116, 0, 112, 112, 101, 114, 99, 117, 116, 3, 108, 48, 108, 49, 108, 47, 0, 110, 99, 104, 1, 114, 98, 3, 108, 50, 91, 0,
-			109, 112, 104, 114, 101, 121, 1, 104, 3, 108, 65, 83, 34, 37, 0, 115, 116, 121, 1, 114, 3, 108, 89, 47, 37, 0, 4, 1, 98, 2,
-			99, 107, 3, 109, 0, 1, 98, 2, 102, 102, 101, 114, 0, 1, 98, 2, 116, 108, 101, 114, 0, 1, 100, 2, 98, 98, 101, 0, 1, 100,
-			2, 98, 98, 105, 110, 103, 0, 1, 100, 2, 100, 108, 101, 121, 0, 1, 104, 2, 110, 116, 101, 114, 0, 1, 104, 100, 97, 101, 104, 2,
-			110, 116, 0, 1, 106, 2, 110, 107, 0, 1, 108, 2, 98, 98, 111, 99, 107, 0, 1, 108, 108, 2, 112, 0, 1, 109, 2, 112, 112, 101,
-			114, 110, 101, 0, 1, 112, 2, 98, 98, 0, 1, 112, 2, 98, 108, 105, 99, 0, 1, 114, 116, 2, 99, 107, 0, 1, 115, 32, 110, 97,
-			105, 100, 110, 105, 2, 109, 109, 101, 114, 0, 8, 100, 2, 115, 116, 105, 110, 0, 8, 102, 2, 110, 107, 0, 8, 109, 2, 108, 108, 105,
-			110, 0, 8, 112, 2, 98, 32, 0, 8, 112, 2, 110, 107, 0, 116, 116, 111, 110, 1, 104, 3, 109, 47, 13, 50, 0, 99, 107, 101, 114,
-			1, 116, 3, 109, 49, 109, 0, 110, 110, 121, 1, 98, 3, 109, 50, 37, 0, 110, 110, 105, 110, 103, 104, 97, 109, 1, 99, 3, 109, 50,
-			113, 68, 107, 14, 65, 0, 108, 115, 116, 101, 114, 3, 109, 55, 89, 47, 109, 0, 100, 100, 1, 98, 2, 121, 3, 109, 72, 0, 102, 102,
-			105, 110, 1, 109, 3, 109, 83, 113, 50, 0, 105, 1, 103, 2, 116, 97, 114, 3, 111, 0, 101, 114, 105, 108, 108, 1, 103, 2, 97, 3,
-			114, 51, 6, 111, 55, 57, 0, 4, 3, 123, 0, 1, 17, 67, 2, 18, 66, 18, 76, 0, 1, 18, 74, 115, 2, 116, 0, 1, 18, 74,
-			115, 2, 116, 116, 0, 1, 98, 2, 103, 115, 101, 0, 1, 98, 2, 116, 105, 107, 12, 0, 1, 100, 2, 107, 116, 105, 0, 1, 103, 2,
-			100, 101, 110, 12, 0, 1, 104, 2, 100, 25, 0, 1, 104, 2, 100, 101, 17, 67, 0, 1, 104, 2, 103, 111, 32, 0, 1, 104, 2, 108,
-			17, 67, 0, 1, 104, 2, 110, 12, 0, 1, 106, 2, 18, 66, 18, 69, 0, 1, 107, 2, 107, 0, 1, 107, 2, 107, 107, 12, 0, 1,
-			107, 2, 108, 100, 101, 0, 1, 107, 2, 108, 108, 101, 114, 0, 1, 107, 2, 108, 109, 105, 110, 101, 114, 101, 0, 1, 107, 2, 108, 116,
-			0, 1, 107, 115, 2, 108, 107, 0, 1, 107, 115, 2, 108, 108, 0, 1, 107, 115, 2, 116, 101, 0, 1, 108, 2, 100, 101, 114, 0, 1,
-			108, 2, 107, 114, 18, 76, 0, 1, 108, 2, 107, 114, 101, 114, 101, 0, 1, 108, 103, 2, 103, 0, 1, 108, 117, 122, 0, 1, 109, 2,
-			102, 116, 0, 1, 109, 2, 115, 105, 107, 0, 1, 109, 97, 107, 2, 102, 108, 97, 103, 101, 0, 1, 109, 115, 97, 114, 2, 115, 0, 1,
-			110, 2, 108, 101, 118, 101, 110, 100, 101, 0, 1, 110, 102, 2, 103, 0, 1, 110, 115, 2, 98, 108, 101, 0, 1, 112, 2, 99, 107, 12,
-			0, 1, 112, 2, 110, 100, 0, 1, 114, 2, 103, 0, 1, 114, 2, 109, 101, 0, 1, 114, 103, 2, 18, 71, 0, 1, 114, 103, 2, 112,
-			112, 0, 1, 114, 107, 115, 2, 112, 101, 108, 0, 1, 114, 107, 115, 2, 112, 108, 101, 0, 1, 115, 2, 98, 115, 0, 1, 115, 2, 112,
-			101, 114, 0, 1, 115, 2, 112, 112, 108, 101, 0, 1, 115, 2, 112, 114, 97, 0, 1, 116, 2, 100, 25, 0, 1, 116, 2, 100, 101, 110,
-			0, 1, 116, 2, 110, 100, 195, 165, 0, 1, 116, 115, 2, 98, 12, 0, 1, 116, 115, 2, 100, 25, 0, 1, 116, 115, 2, 100, 101, 110,
-			0, 1, 118, 115, 2, 108, 115, 116, 12, 0, 2, 17, 67, 11, 12, 0, 2, 17, 67, 101, 110, 32, 0, 2, 100, 101, 102, 114, 97, 12,
-			0, 2, 100, 103, 114, 117, 110, 100, 101, 108, 105, 103, 12, 0, 2, 103, 108, 12, 0, 2, 105, 109, 111, 100, 115, 116, 195, 165, 101, 108,
-			105, 103, 0, 2, 108, 100, 12, 0, 2, 108, 116, 105, 109, 97, 0, 2, 108, 116, 114, 97, 0, 2, 108, 118, 101, 12, 0, 2, 109, 105,
-			100, 100, 101, 108, 0, 2, 110, 105, 12, 12, 0, 2, 115, 101, 116, 0, 2, 115, 117, 114, 112, 0, 2, 116, 111, 112, 105, 0, 8, 2,
-			100, 115, 12, 0, 8, 2, 114, 12, 12, 0, 8, 107, 2, 108, 108, 101, 100, 101, 0, 103, 1, 108, 115, 0, 103, 1, 109, 2, 32, 117,
-			100, 0, 101, 116, 1, 110, 101, 109, 3, 123, 6, 116, 47, 0, 114, 1, 98, 109, 97, 116, 3, 123, 34, 0, 114, 1, 116, 10, 2, 101,
-			108, 28, 33, 12, 3, 123, 34, 6, 0, 99, 99, 101, 115, 115, 111, 114, 1, 115, 3, 123, 49, 89, 6, 116, 89, 109, 0, 99, 99, 101,
-			115, 115, 111, 114, 101, 114, 1, 115, 3, 123, 49, 89, 116, 89, 6, 39, 109, 0, 107, 117, 108, 101, 108, 101, 3, 123, 49, 123, 55, 6,
-			36, 55, 14, 0, 4, 110, 1, 104, 2, 103, 101, 100, 3, 123, 50, 0, 110, 1, 104, 2, 103, 101, 112, 97, 114, 100, 12, 12, 0, 114,
-			101, 114, 8, 107, 3, 123, 51, 6, 116, 34, 0, 103, 1, 109, 115, 3, 123, 58, 0, 4, 100, 8, 2, 114, 105, 107, 107, 101, 108, 105,
-			103, 12, 14, 128, 132, 130, 3, 123, 72, 0, 100, 8, 2, 117, 101, 108, 105, 103, 12, 0, 100, 8, 2, 195, 184, 100, 12, 14, 128, 132,
-			130, 0, 4, 100, 8, 2, 101, 110, 12, 3, 123, 86, 0, 100, 8, 2, 107, 105, 103, 0, 115, 107, 121, 108, 100, 105, 103, 3, 123, 89,
-			81, 6, 129, 55, 72, 37, 0, 1, 110, 107, 2, 114, 3, 124, 0, 4, 1, 107, 101, 115, 2, 110, 100, 195, 166, 3, 125, 0, 1, 112,
-			2, 110, 99, 104, 0, 1, 114, 2, 115, 116, 0, 2, 110, 18, 73, 12, 0, 109, 98, 117, 103, 1, 104, 3, 125, 65, 71, 125, 81, 0,
-			4, 1, 17, 67, 2, 18, 66, 101, 12, 3, 126, 0, 1, 17, 67, 2, 18, 66, 116, 0, 1, 17, 67, 2, 107, 107, 12, 0, 1, 18,
-			68, 2, 102, 0, 1, 18, 68, 2, 102, 102, 12, 0, 1, 18, 71, 2, 110, 107, 116, 0, 1, 18, 73, 2, 102, 0, 1, 18, 74, 2,
-			102, 0, 1, 18, 74, 2, 102, 102, 0, 1, 18, 74, 2, 114, 114, 101, 0, 1, 98, 2, 107, 0, 1, 98, 2, 110, 116, 0, 1, 100,
-			2, 107, 0, 1, 102, 2, 18, 71, 11, 0, 1, 103, 2, 102, 0, 1, 104, 2, 103, 0, 1, 104, 2, 108, 0, 1, 104, 2, 108, 98,
-			195, 165, 110, 100, 0, 1, 104, 2, 108, 106, 101, 114, 110, 0, 1, 104, 2, 108, 107, 111, 114, 116, 0, 1, 104, 2, 108, 108, 101, 0,
-			1, 104, 2, 108, 115, 107, 101, 0, 1, 104, 2, 108, 115, 195, 184, 109, 0, 1, 104, 2, 108, 116, 97, 110, 103, 0, 1, 104, 2, 114,
-			116, 105, 103, 0, 1, 104, 112, 97, 110, 107, 2, 108, 0, 1, 104, 114, 101, 100, 100, 117, 109, 2, 108, 0, 1, 104, 116, 117, 109, 115,
-			2, 108, 0, 1, 106, 2, 110, 107, 116, 117, 114, 12, 12, 0, 1, 106, 104, 2, 108, 112, 0, 1, 107, 2, 102, 102, 101, 114, 116, 0,
-			1, 107, 2, 108, 0, 1, 107, 2, 108, 100, 105, 111, 0, 1, 107, 2, 108, 105, 108, 116, 0, 1, 107, 2, 108, 108, 101, 116, 0, 1,
-			107, 115, 2, 98, 0, 1, 108, 2, 107, 0, 1, 108, 103, 184, 195, 114, 2, 103, 116, 0, 1, 108, 115, 2, 98, 0, 1, 108, 115, 2,
-			112, 0, 1, 109, 115, 2, 17, 67, 0, 1, 110, 18, 66, 2, 18, 71, 0, 1, 112, 2, 102, 0, 1, 112, 2, 107, 107, 101, 0, 1,
-			112, 2, 107, 108, 0, 1, 112, 115, 2, 110, 100, 101, 0, 1, 114, 2, 18, 71, 0, 1, 114, 2, 18, 71, 11, 0, 1, 114, 2, 102,
-			0, 1, 114, 2, 109, 0, 1, 114, 17, 67, 2, 18, 71, 0, 1, 114, 17, 67, 2, 107, 0, 1, 114, 98, 2, 103, 116, 0, 1, 114,
-			116, 2, 102, 102, 0, 1, 118, 2, 103, 103, 0, 1, 118, 115, 2, 112, 112, 0, 2, 109, 25, 12, 0, 2, 110, 100, 12, 0, 2, 110,
-			103, 12, 12, 0, 2, 110, 107, 0, 8, 2, 110, 100, 12, 0, 8, 2, 110, 103, 12, 0, 8, 110, 2, 108, 0, 8, 114, 2, 98, 32,
-			0, 8, 114, 2, 98, 98, 101, 0, 108, 118, 1, 103, 3, 126, 55, 0, 108, 118, 1, 103, 2, 101, 3, 126, 55, 84, 0, 107, 97, 102,
-			1, 108, 3, 126, 81, 6, 117, 0, 4, 1, 106, 2, 110, 116, 3, 127, 0, 1, 108, 2, 110, 116, 101, 0, 4, 1, 17, 67, 2, 103,
-			103, 3, 128, 0, 1, 18, 68, 2, 110, 115, 0, 1, 98, 2, 110, 107, 101, 114, 0, 1, 102, 2, 18, 71, 0, 1, 107, 115, 2, 18,
-			67, 11, 0, 1, 108, 107, 2, 110, 115, 0, 1, 109, 2, 18, 66, 0, 1, 109, 2, 110, 116, 0, 1, 110, 115, 2, 18, 71, 0, 1,
-			112, 2, 108, 118, 12, 0, 1, 115, 2, 18, 71, 11, 0, 1, 115, 2, 107, 0, 1, 116, 2, 110, 110, 0, 2, 107, 115, 0, 8, 107,
-			2, 110, 32, 0, 110, 107, 1, 102, 2, 116, 105, 111, 110, 3, 128, 68, 0, 4, 1, 98, 101, 100, 2, 116, 101, 114, 101, 3, 129, 0,
-			1, 98, 105, 114, 116, 2, 110, 101, 0, 116, 1, 98, 101, 100, 0, 114, 101, 1, 116, 117, 111, 99, 3, 129, 12, 34, 0, 4, 114, 101,
-			1, 99, 101, 110, 105, 115, 3, 129, 12, 108, 0, 114, 101, 1, 99, 105, 100, 101, 112, 0, 114, 101, 1, 99, 105, 110, 97, 109, 0, 114,
-			101, 1, 100, 101, 99, 111, 114, 112, 0, 114, 101, 1, 100, 114, 111, 98, 0, 114, 101, 1, 104, 99, 111, 114, 98, 0, 114, 101, 1, 104,
-			99, 117, 111, 98, 109, 101, 0, 114, 101, 1, 108, 101, 110, 110, 97, 107, 0, 114, 101, 1, 110, 114, 117, 111, 116, 0, 114, 101, 1, 115,
-			105, 114, 102, 0, 114, 101, 1, 116, 97, 105, 110, 105, 109, 0, 114, 101, 1, 116, 97, 105, 110, 105, 109, 0, 114, 101, 1, 116, 105, 102,
-			110, 111, 107, 0, 114, 101, 1, 116, 105, 110, 114, 97, 103, 0, 114, 101, 1, 116, 105, 114, 102, 0, 114, 101, 1, 116, 107, 101, 102, 110,
-			111, 107, 0, 114, 101, 1, 116, 107, 101, 108, 0, 114, 101, 1, 116, 114, 101, 118, 117, 111, 0, 114, 101, 1, 118, 97, 114, 103, 0, 114,
-			101, 1, 10, 2, 114, 101, 28, 33, 12, 12, 12, 3, 129, 34, 7, 36, 0, 116, 101, 1, 108, 102, 3, 129, 47, 0, 109, 101, 1, 116,
-			115, 111, 107, 3, 129, 65, 14, 0, 4, 1, 98, 2, 100, 103, 101, 116, 3, 130, 0, 1, 100, 2, 99, 104, 101, 115, 115, 101, 0, 1,
-			102, 101, 114, 2, 115, 101, 114, 0, 1, 108, 103, 2, 107, 111, 115, 101, 0, 1, 110, 2, 97, 110, 99, 101, 0, 1, 110, 101, 109, 0,
-			1, 112, 2, 114, 195, 169, 0, 1, 115, 2, 99, 99, 0, 1, 115, 2, 114, 114, 101, 97, 0, 8, 98, 2, 115, 116, 101, 32, 0, 8,
-			112, 2, 114, 101, 114, 101, 0, 8, 116, 97, 110, 2, 114, 101, 108, 32, 12, 3, 130, 6, 0, 4, 114, 101, 1, 112, 116, 97, 109, 111,
-			116, 3, 130, 34, 36, 0, 114, 195, 169, 1, 112, 116, 97, 109, 111, 116, 0, 114, 101, 97, 117, 1, 98, 3, 130, 51, 6, 124, 0, 4,
-			109, 101, 1, 115, 101, 114, 3, 130, 65, 6, 114, 0, 109, 195, 169, 1, 115, 101, 114, 0, 120, 101, 108, 108, 101, 115, 1, 114, 98, 3,
-			130, 89, 6, 115, 55, 0, 99, 105, 101, 110, 110, 101, 1, 108, 3, 130, 89, 57, 6, 115, 50, 0, 1, 115, 2, 114, 114, 101, 108, 3,
-			131, 131, 0, 114, 1, 98, 2, 109, 101, 115, 3, 132, 0, 4, 114, 1, 98, 2, 109, 97, 3, 132, 12, 0, 114, 1, 112, 2, 115, 101,
-			114, 0, 114, 1, 115, 2, 102, 98, 0, 114, 8, 98, 2, 116, 0, 114, 110, 1, 98, 121, 97, 114, 3, 132, 12, 50, 0, 114, 110, 115,
-			8, 98, 3, 132, 12, 50, 89, 0, 114, 112, 108, 101, 1, 112, 3, 132, 48, 20, 14, 55, 0, 114, 107, 101, 121, 1, 116, 3, 132, 49,
-			37, 0, 114, 100, 108, 101, 1, 104, 3, 132, 72, 14, 55, 0, 114, 100, 108, 101, 110, 1, 104, 3, 132, 72, 55, 14, 50, 0, 114, 103,
-			105, 115, 8, 116, 115, 3, 132, 75, 113, 89, 0, 114, 103, 1, 98, 2, 101, 114, 3, 132, 81, 0, 4, 105, 100, 1, 103, 32, 108, 105,
-			118, 2, 101, 3, 136, 72, 0, 105, 100, 1, 103, 32, 116, 97, 2, 101, 0, 105, 100, 8, 103, 2, 101, 116, 0, 105, 100, 101, 110, 1,
-			103, 3, 136, 72, 14, 50, 0, 105, 100, 101, 114, 1, 103, 3, 136, 72, 108, 0, 7, 6, 118, 0, 4, 1, 101, 108, 98, 2, 25, 3,
-			0, 4, 1, 101, 108, 98, 2, 101, 116, 3, 0, 4, 1, 108, 97, 104, 3, 0, 1, 108, 101, 2, 17, 67, 3, 0, 1, 97, 108, 2,
-			101, 109, 101, 110, 116, 3, 14, 0, 4, 1, 97, 104, 2, 17, 67, 3, 40, 0, 1, 97, 104, 2, 111, 118, 101, 114, 102, 0, 4, 1,
-			17, 65, 2, 32, 3, 58, 0, 1, 17, 65, 2, 115, 0, 1, 97, 2, 110, 0, 1, 97, 114, 2, 17, 67, 0, 1, 101, 108, 2, 32,
-			0, 1, 101, 108, 98, 101, 100, 117, 0, 1, 105, 2, 32, 0, 1, 105, 2, 116, 32, 0, 1, 105, 114, 100, 2, 17, 67, 0, 1, 105,
-			118, 116, 2, 108, 0, 1, 166, 195, 110, 115, 2, 12, 0, 1, 184, 195, 2, 101, 110, 0, 1, 184, 195, 100, 0, 1, 184, 195, 104, 2,
-			108, 0, 1, 184, 195, 108, 2, 17, 67, 0, 2, 110, 0, 1, 184, 195, 109, 2, 101, 12, 3, 58, 11, 0, 118, 1, 105, 108, 3, 58,
-			84, 0, 2, 97, 110, 32, 103, 111, 103, 104, 3, 83, 0, 111, 110, 8, 2, 32, 3, 83, 108, 50, 0, 4, 3, 84, 0, 1, 17, 65,
-			10, 2, 32, 17, 65, 0, 1, 97, 108, 115, 2, 12, 0, 1, 105, 116, 2, 17, 65, 0, 1, 108, 97, 2, 101, 0, 1, 108, 105, 2,
-			17, 65, 0, 1, 111, 18, 74, 2, 17, 65, 0, 1, 111, 114, 112, 2, 101, 110, 99, 101, 0, 1, 114, 10, 0, 1, 114, 117, 0, 1,
-			184, 195, 108, 2, 101, 0, 118, 0, 105, 114, 103, 105, 110, 105, 97, 3, 84, 13, 75, 6, 37, 68, 57, 117, 0, 101, 2, 108, 115, 101,
-			3, 84, 14, 0, 105, 110, 99, 101, 3, 84, 36, 50, 89, 0, 105, 108, 108, 97, 103, 101, 3, 84, 36, 55, 36, 75, 0, 111, 105, 108,
-			97, 3, 84, 58, 35, 55, 6, 35, 0, 111, 108, 105, 101, 114, 101, 3, 84, 108, 55, 37, 6, 115, 12, 34, 0, 101, 114, 100, 117, 110,
-			3, 84, 115, 34, 72, 6, 112, 68, 0, 97, 117, 103, 104, 110, 3, 84, 125, 12, 50, 0, 105, 115, 99, 111, 117, 110, 116, 3, 84, 136,
-			49, 121, 58, 50, 47, 0, 108, 101, 103, 1, 108, 97, 104, 3, 136, 0, 7, 6, 119, 0, 114, 105, 103, 104, 116, 3, 21, 0, 3, 58,
-			0, 104, 105, 116, 101, 99, 104, 97, 112, 101, 108, 3, 58, 35, 37, 47, 76, 117, 48, 13, 59, 0, 105, 110, 110, 105, 112, 101, 103, 3,
-			58, 36, 50, 37, 48, 115, 81, 0, 105, 115, 99, 111, 110, 115, 105, 110, 3, 58, 36, 89, 49, 6, 108, 50, 89, 36, 50, 0, 104, 101,
-			101, 108, 3, 58, 37, 12, 55, 0, 101, 101, 107, 101, 110, 100, 3, 58, 37, 12, 81, 115, 50, 72, 0, 101, 97, 118, 101, 114, 3, 58,
-			37, 12, 84, 108, 0, 4, 105, 108, 108, 105, 101, 3, 58, 37, 55, 37, 0, 105, 108, 108, 121, 0, 97, 116, 115, 111, 110, 3, 58, 108,
-			47, 89, 14, 50, 0, 111, 110, 100, 101, 114, 8, 3, 58, 108, 50, 72, 108, 0, 97, 110, 100, 97, 3, 58, 108, 50, 72, 117, 0, 97,
-			110, 115, 101, 97, 1, 115, 3, 58, 108, 50, 89, 4, 37, 0, 97, 108, 108, 97, 99, 101, 3, 58, 108, 55, 36, 89, 0, 97, 115, 104,
-			105, 110, 103, 116, 111, 110, 3, 58, 108, 91, 36, 68, 47, 108, 50, 0, 97, 121, 110, 101, 3, 58, 115, 57, 50, 0, 97, 108, 101, 115,
-			3, 58, 115, 57, 55, 89, 0, 101, 97, 116, 104, 101, 114, 3, 58, 115, 86, 108, 0, 97, 114, 101, 3, 58, 117, 12, 34, 0, 105, 108,
-			100, 8, 3, 58, 121, 113, 55, 72, 0, 97, 116, 101, 114, 103, 97, 116, 101, 3, 58, 125, 47, 108, 81, 115, 57, 47, 0, 97, 108, 100,
-			111, 114, 102, 8, 3, 58, 125, 72, 108, 83, 0, 111, 114, 107, 3, 58, 132, 12, 49, 0, 111, 114, 116, 104, 3, 58, 132, 12, 87, 0,
-			111, 114, 108, 100, 8, 3, 58, 132, 55, 72, 0, 111, 114, 100, 3, 58, 132, 72, 0, 121, 111, 109, 105, 110, 103, 3, 58, 136, 6, 125,
-			58, 65, 36, 68, 0, 105, 100, 101, 115, 99, 114, 101, 101, 110, 3, 58, 136, 72, 89, 49, 34, 37, 12, 50, 0, 4, 1, 116, 110, 97,
-			2, 101, 114, 112, 101, 110, 3, 84, 0, 2, 97, 100, 101, 114, 115, 0, 2, 97, 100, 105, 0, 2, 97, 108, 105, 115, 0, 2, 97, 115,
-			115, 101, 114, 109, 97, 110, 110, 112, 114, 195, 184, 118, 101, 0, 2, 97, 116, 116, 0, 2, 101, 108, 116, 101, 114, 118, 195, 166, 103, 116,
-			0, 2, 101, 108, 116, 115, 99, 104, 109, 101, 114, 122, 0, 2, 101, 114, 110, 101, 114, 0, 2, 101, 115, 115, 101, 108, 0, 2, 104, 105,
-			115, 116, 0, 2, 105, 101, 110, 101, 114, 115, 99, 104, 110, 105, 116, 122, 101, 108, 0, 2, 111, 108, 102, 103, 97, 110, 103, 0, 2, 111,
-			108, 102, 114, 97, 109, 0, 97, 105, 1, 117, 107, 2, 116, 3, 84, 6, 136, 0, 97, 108, 100, 3, 84, 35, 55, 72, 0, 97, 102, 102,
-			101, 3, 84, 35, 83, 14, 0, 105, 101, 2, 110, 3, 84, 37, 0, 105, 101, 115, 101, 110, 116, 104, 97, 108, 3, 84, 37, 89, 13, 50,
-			47, 121, 55, 0, 97, 114, 115, 122, 97, 119, 97, 3, 84, 121, 34, 91, 6, 117, 12, 84, 117, 0, 7, 6, 120, 0, 4, 3, 81, 89,
+			108, 100, 0, 1, 118, 100, 114, 111, 110, 2, 115, 116, 0, 1, 118, 100, 121, 115, 2, 115, 116, 0, 1, 118, 108, 121, 115, 2, 115, 116,
+			101, 114, 0, 1, 122, 97, 103, 2, 108, 108, 101, 0, 8, 99, 99, 97, 2, 112, 116, 0, 8, 99, 101, 114, 2, 112, 116, 0, 8, 99,
+			110, 105, 2, 115, 116, 0, 8, 99, 110, 111, 107, 2, 112, 116, 0, 8, 99, 110, 111, 107, 2, 114, 110, 0, 8, 102, 101, 100, 2, 107,
+			116, 0, 8, 102, 102, 97, 2, 107, 116, 0, 8, 102, 102, 101, 2, 107, 116, 32, 0, 8, 102, 110, 111, 107, 2, 107, 116, 0, 8, 102,
+			110, 111, 107, 2, 116, 116, 105, 0, 8, 102, 114, 101, 112, 2, 107, 116, 0, 8, 102, 118, 108, 97, 104, 2, 109, 115, 0, 8, 102, 166,
+			195, 114, 112, 2, 107, 116, 0, 8, 106, 98, 111, 2, 107, 116, 0, 8, 106, 98, 117, 115, 2, 107, 116, 0, 8, 106, 111, 114, 112, 2,
+			107, 116, 0, 8, 107, 97, 114, 2, 116, 12, 0, 8, 108, 97, 105, 100, 2, 107, 116, 0, 8, 108, 102, 101, 114, 2, 107, 115, 0, 8,
+			108, 105, 100, 2, 109, 109, 97, 0, 8, 108, 108, 97, 98, 2, 116, 21, 0, 8, 108, 108, 97, 98, 32, 110, 101, 2, 116, 0, 8, 108,
+			108, 97, 98, 32, 114, 111, 118, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 101, 100, 110, 101, 104, 2, 116, 0, 8, 108, 108, 97, 98,
+			32, 115, 101, 114, 101, 100, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 101, 114, 101, 106, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115,
+			101, 114, 111, 118, 2, 116, 0, 8, 108, 108, 97, 98, 32, 115, 110, 97, 104, 2, 116, 0, 8, 108, 108, 101, 116, 110, 105, 2, 107, 116,
+			0, 8, 108, 108, 111, 107, 2, 107, 116, 32, 0, 8, 108, 108, 111, 107, 2, 107, 116, 101, 0, 8, 108, 111, 105, 99, 111, 115, 2, 107,
+			116, 0, 8, 108, 111, 105, 100, 105, 2, 107, 116, 0, 8, 108, 112, 109, 111, 107, 2, 107, 115, 0, 8, 109, 101, 115, 2, 115, 116, 101,
+			114, 0, 8, 109, 103, 114, 111, 98, 2, 115, 116, 0, 8, 112, 115, 97, 2, 107, 116, 0, 8, 112, 115, 101, 100, 2, 107, 116, 0, 8,
+			112, 115, 101, 114, 2, 107, 116, 0, 8, 112, 115, 111, 114, 112, 2, 107, 116, 0, 8, 112, 115, 117, 115, 2, 107, 116, 0, 8, 114, 105,
+			2, 110, 101, 12, 0, 8, 115, 101, 114, 112, 2, 110, 110, 105, 110, 103, 0, 8, 115, 107, 101, 2, 109, 112, 101, 108, 0, 8, 115, 110,
+			105, 2, 107, 116, 0, 8, 116, 105, 107, 114, 97, 2, 107, 116, 0, 8, 116, 110, 97, 2, 110, 110, 101, 0, 8, 116, 111, 114, 103, 2,
+			115, 0, 8, 105, 110, 2, 99, 101, 3, 6, 109, 12, 0, 4, 114, 1, 98, 111, 114, 2, 116, 97, 3, 6, 109, 34, 0, 114, 1, 112,
+			117, 115, 2, 108, 97, 116, 105, 118, 0, 122, 1, 112, 97, 114, 116, 3, 6, 109, 47, 89, 0, 110, 100, 1, 107, 114, 101, 2, 101, 32,
+			3, 6, 109, 50, 0, 110, 101, 1, 114, 105, 115, 2, 12, 3, 6, 109, 50, 13, 0, 110, 100, 101, 1, 118, 97, 108, 2, 108, 3, 6,
+			109, 50, 108, 0, 105, 108, 108, 1, 118, 101, 114, 2, 101, 3, 6, 109, 55, 57, 0, 108, 112, 104, 105, 1, 100, 97, 108, 105, 104, 112,
+			2, 97, 3, 6, 109, 55, 83, 57, 0, 115, 101, 1, 114, 10, 2, 28, 33, 3, 6, 109, 89, 108, 0, 115, 101, 1, 114, 10, 2, 114,
+			28, 33, 3, 6, 109, 89, 114, 0, 115, 104, 1, 100, 97, 108, 103, 110, 97, 98, 3, 6, 109, 91, 0, 1, 106, 102, 118, 108, 97, 104,
+			2, 114, 100, 115, 3, 6, 110, 0, 4, 1, 114, 97, 109, 2, 110, 103, 3, 6, 111, 0, 1, 114, 105, 107, 105, 116, 115, 2, 110, 100,
+			100, 114, 101, 110, 103, 0, 1, 114, 112, 121, 99, 2, 115, 0, 1, 114, 114, 111, 102, 2, 116, 110, 105, 110, 103, 12, 0, 8, 114, 103,
+			101, 114, 2, 115, 0, 8, 114, 103, 110, 111, 107, 2, 115, 0, 8, 114, 114, 111, 107, 2, 107, 116, 0, 115, 115, 101, 1, 114, 10, 2,
+			28, 33, 3, 6, 111, 89, 108, 0, 115, 115, 101, 1, 114, 10, 2, 114, 28, 33, 3, 6, 111, 89, 114, 0, 1, 118, 111, 114, 112, 2,
+			110, 99, 101, 3, 6, 112, 12, 0, 117, 116, 8, 112, 97, 114, 101, 116, 3, 6, 118, 58, 72, 0, 115, 115, 101, 1, 104, 99, 10, 2,
+			28, 33, 3, 7, 109, 89, 0, 115, 115, 101, 1, 10, 2, 28, 33, 3, 7, 109, 89, 108, 0, 115, 115, 101, 1, 10, 2, 114, 28, 33,
+			3, 7, 109, 89, 114, 0, 8, 108, 108, 105, 116, 115, 2, 98, 101, 110, 3, 8, 6, 36, 0, 4, 1, 18, 73, 2, 32, 3, 13, 0,
+			1, 98, 98, 111, 100, 2, 108, 0, 1, 99, 2, 32, 0, 1, 99, 97, 112, 114, 111, 116, 111, 109, 2, 110, 0, 1, 100, 2, 115, 32,
+			0, 1, 100, 101, 2, 45, 0, 1, 100, 101, 2, 114, 0, 1, 100, 111, 103, 0, 1, 100, 111, 107, 0, 1, 103, 121, 115, 2, 12, 0,
+			1, 108, 97, 118, 2, 114, 105, 12, 12, 0, 1, 108, 109, 97, 0, 1, 108, 111, 107, 2, 17, 67, 0, 1, 108, 114, 101, 112, 0, 1,
+			110, 97, 2, 114, 0, 1, 114, 2, 115, 32, 0, 1, 114, 117, 2, 110, 101, 0, 1, 114, 121, 2, 12, 0, 1, 115, 2, 32, 0, 1,
+			115, 110, 111, 107, 2, 107, 118, 0, 1, 115, 117, 108, 2, 12, 12, 0, 1, 116, 2, 32, 0, 1, 116, 114, 111, 108, 0, 1, 116, 115,
+			101, 104, 2, 110, 12, 0, 1, 116, 115, 114, 97, 99, 2, 110, 0, 1, 116, 115, 114, 97, 107, 2, 110, 0, 1, 118, 114, 101, 115, 0,
+			2, 106, 117, 108, 12, 0, 8, 110, 101, 0, 101, 2, 106, 101, 114, 3, 13, 35, 0, 4, 97, 117, 2, 107, 116, 105, 3, 13, 35, 40,
+			0, 97, 117, 2, 116, 111, 0, 4, 110, 100, 101, 1, 10, 2, 32, 3, 13, 50, 13, 0, 110, 101, 1, 21, 2, 32, 0, 110, 101, 1,
+			103, 103, 21, 2, 32, 14, 128, 128, 132, 0, 110, 101, 115, 1, 21, 2, 32, 3, 13, 50, 13, 89, 0, 106, 2, 97, 103, 116, 3, 13,
+			57, 0, 100, 1, 114, 114, 2, 17, 65, 3, 13, 72, 0, 4, 103, 1, 108, 2, 97, 110, 12, 12, 3, 13, 81, 0, 103, 1, 108, 101,
+			100, 2, 17, 65, 0, 103, 1, 116, 115, 2, 195, 165, 0, 103, 2, 97, 102, 102, 101, 108, 0, 103, 2, 114, 117, 110, 100, 0, 100, 1,
+			114, 114, 3, 13, 86, 0, 100, 101, 116, 1, 118, 111, 2, 32, 3, 13, 86, 108, 72, 0, 110, 1, 100, 17, 65, 2, 21, 3, 14, 50,
+			0, 103, 1, 108, 101, 114, 2, 105, 111, 110, 3, 20, 13, 81, 0, 120, 99, 104, 97, 110, 103, 101, 3, 21, 0, 115, 8, 108, 114, 97,
+			3, 21, 102, 114, 0, 4, 1, 114, 2, 110, 100, 116, 3, 35, 0, 2, 103, 102, 105, 0, 2, 103, 115, 111, 116, 0, 8, 114, 116, 2,
+			116, 116, 101, 110, 0, 103, 101, 116, 8, 2, 32, 3, 35, 12, 57, 13, 86, 0, 110, 100, 101, 1, 114, 118, 184, 195, 114, 2, 32, 3,
+			35, 20, 50, 13, 0, 110, 100, 101, 114, 1, 114, 118, 184, 195, 114, 2, 32, 3, 35, 20, 50, 114, 0, 4, 1, 103, 2, 106, 115, 3,
+			35, 57, 0, 103, 1, 18, 71, 2, 101, 0, 103, 1, 18, 73, 0, 103, 1, 101, 108, 101, 2, 12, 0, 103, 1, 104, 2, 108, 101, 0,
+			103, 1, 107, 2, 108, 101, 0, 103, 1, 108, 2, 101, 12, 0, 103, 1, 108, 98, 0, 103, 1, 108, 115, 98, 97, 107, 115, 108, 101, 115,
+			0, 103, 1, 110, 115, 2, 108, 0, 103, 1, 112, 0, 103, 1, 114, 107, 115, 0, 103, 1, 114, 116, 2, 101, 32, 0, 103, 1, 114, 116,
+			2, 101, 100, 101, 32, 0, 103, 1, 114, 116, 2, 101, 110, 32, 0, 103, 1, 114, 116, 2, 101, 114, 32, 0, 103, 1, 114, 116, 2, 101,
+			115, 32, 0, 103, 1, 114, 116, 115, 0, 103, 1, 115, 2, 108, 0, 103, 1, 116, 2, 108, 0, 103, 2, 110, 0, 103, 2, 114, 195, 184,
+			100, 0, 103, 8, 98, 2, 32, 0, 105, 1, 104, 2, 100, 101, 108, 0, 105, 1, 115, 2, 115, 0, 105, 1, 115, 2, 115, 109, 111, 108,
+			0, 105, 1, 116, 115, 2, 110, 25, 0, 105, 8, 104, 2, 100, 105, 0, 105, 8, 104, 2, 108, 32, 0, 106, 1, 114, 2, 115, 0, 106,
+			1, 114, 100, 2, 12, 0, 106, 1, 118, 109, 101, 106, 104, 0, 106, 2, 12, 12, 0, 107, 1, 115, 2, 115, 116, 101, 110, 0, 121, 1,
+			109, 2, 101, 114, 0, 4, 103, 101, 110, 100, 101, 1, 108, 2, 32, 98, 195, 184, 114, 110, 3, 35, 57, 13, 50, 13, 0, 103, 101, 110,
+			100, 101, 1, 108, 2, 32, 108, 101, 116, 0, 103, 101, 109, 1, 108, 98, 2, 105, 100, 3, 35, 57, 13, 65, 0, 105, 110, 115, 116, 101,
+			105, 110, 3, 35, 57, 50, 89, 47, 35, 57, 50, 0, 105, 110, 100, 104, 111, 118, 101, 110, 3, 35, 57, 50, 107, 6, 39, 12, 83, 13,
+			50, 0, 4, 106, 114, 1, 118, 2, 101, 32, 3, 35, 57, 51, 0, 106, 114, 1, 118, 2, 101, 114, 32, 0, 103, 108, 1, 110, 3, 35,
+			57, 55, 0, 105, 108, 101, 101, 110, 3, 35, 57, 55, 6, 37, 12, 50, 0, 121, 101, 108, 105, 110, 101, 114, 3, 35, 57, 55, 35, 57,
+			50, 114, 0, 105, 103, 101, 114, 3, 35, 57, 81, 114, 0, 105, 102, 102, 101, 108, 3, 35, 57, 83, 108, 55, 0, 105, 115, 101, 110, 104,
+			111, 119, 101, 114, 3, 35, 57, 89, 13, 50, 107, 112, 40, 114, 0, 106, 101, 114, 2, 17, 67, 3, 35, 57, 114, 0, 4, 110, 1, 112,
+			2, 115, 105, 111, 110, 3, 35, 68, 0, 110, 1, 115, 115, 101, 114, 2, 116, 105, 109, 101, 110, 116, 0, 110, 1, 116, 101, 112, 109, 111,
+			2, 99, 101, 0, 110, 2, 116, 114, 195, 169, 0, 110, 8, 2, 116, 114, 101, 0, 110, 103, 97, 103, 2, 101, 3, 35, 68, 81, 110, 91,
+			0, 4, 3, 36, 0, 1, 17, 67, 2, 18, 67, 18, 76, 0, 1, 17, 67, 2, 100, 17, 65, 0, 1, 18, 68, 2, 18, 67, 18, 69,
+			0, 1, 18, 73, 2, 103, 116, 0, 1, 18, 74, 2, 100, 101, 0, 1, 18, 74, 2, 116, 0, 1, 98, 2, 114, 101, 116, 12, 0, 1,
+			98, 2, 114, 105, 103, 0, 1, 98, 114, 111, 102, 0, 1, 100, 2, 112, 0, 1, 104, 2, 100, 100, 0, 1, 104, 2, 110, 32, 12, 0,
+			1, 104, 99, 97, 109, 112, 97, 112, 0, 1, 107, 115, 100, 184, 195, 114, 103, 0, 1, 107, 115, 101, 98, 184, 195, 116, 115, 0, 1, 107,
+			115, 101, 100, 121, 114, 103, 0, 1, 107, 115, 101, 103, 117, 102, 0, 1, 107, 115, 101, 108, 165, 195, 109, 0, 1, 107, 115, 101, 115, 105,
+			112, 115, 0, 1, 107, 115, 101, 116, 0, 1, 107, 115, 108, 117, 104, 0, 1, 107, 115, 110, 97, 107, 0, 1, 107, 115, 114, 117, 109, 0,
+			1, 107, 115, 116, 114, 101, 115, 115, 101, 100, 0, 1, 107, 115, 184, 195, 114, 116, 115, 0, 1, 108, 2, 118, 101, 0, 1, 108, 101, 2,
+			118, 0, 1, 108, 102, 2, 100, 101, 12, 0, 1, 108, 111, 112, 2, 114, 101, 12, 0, 1, 108, 117, 115, 110, 111, 107, 2, 110, 116, 0,
+			1, 109, 2, 100, 105, 12, 0, 1, 110, 2, 100, 103, 97, 110, 103, 0, 1, 110, 2, 100, 115, 108, 97, 103, 0, 1, 110, 2, 100, 115,
+			116, 105, 103, 0, 1, 110, 2, 100, 115, 195, 166, 116, 0, 1, 110, 101, 109, 2, 100, 0, 1, 110, 107, 2, 98, 0, 1, 110, 115, 2,
+			25, 12, 0, 1, 114, 2, 104, 97, 98, 105, 108, 0, 1, 114, 2, 109, 18, 69, 0, 1, 114, 2, 115, 116, 18, 76, 0, 1, 114, 2,
+			116, 97, 98, 0, 1, 114, 2, 116, 97, 114, 100, 0, 1, 114, 2, 116, 101, 110, 116, 105, 111, 110, 0, 1, 114, 2, 116, 105, 0, 1,
+			114, 2, 116, 111, 114, 0, 1, 114, 2, 116, 111, 117, 0, 1, 114, 2, 116, 114, 97, 110, 0, 1, 114, 2, 116, 114, 111, 0, 1, 114,
+			2, 116, 114, 195, 166, 0, 1, 114, 2, 116, 115, 105, 110, 97, 0, 1, 114, 2, 116, 117, 114, 0, 1, 114, 107, 115, 2, 118, 0, 1,
+			114, 111, 101, 116, 2, 116, 0, 1, 114, 116, 2, 109, 105, 108, 101, 0, 1, 115, 100, 110, 105, 0, 1, 115, 100, 110, 105, 2, 114, 32,
+			0, 1, 115, 100, 117, 114, 111, 102, 0, 1, 115, 101, 100, 111, 103, 0, 1, 115, 102, 97, 2, 32, 0, 1, 115, 102, 97, 2, 116, 32,
+			12, 0, 1, 115, 108, 105, 116, 0, 1, 115, 110, 97, 108, 101, 118, 2, 116, 0, 1, 115, 114, 101, 116, 102, 101, 0, 1, 115, 114, 101,
+			118, 111, 2, 32, 0, 1, 115, 116, 114, 111, 98, 2, 12, 0, 1, 116, 101, 108, 108, 105, 109, 97, 107, 0, 1, 116, 101, 116, 114, 117,
+			0, 1, 116, 110, 101, 103, 114, 111, 109, 0, 1, 116, 115, 101, 106, 184, 195, 2, 110, 12, 0, 1, 116, 115, 103, 97, 100, 100, 105, 109,
+			0, 1, 116, 115, 114, 101, 116, 101, 109, 2, 110, 0, 1, 116, 115, 114, 111, 107, 115, 2, 110, 0, 1, 116, 115, 114, 117, 109, 2, 110,
+			0, 1, 118, 109, 101, 106, 104, 0, 2, 100, 116, 0, 2, 108, 101, 103, 105, 0, 8, 100, 2, 115, 32, 0, 8, 107, 115, 2, 32, 0,
+			8, 107, 115, 2, 101, 114, 0, 8, 109, 2, 108, 32, 0, 8, 110, 115, 2, 114, 32, 0, 8, 112, 115, 2, 32, 0, 8, 114, 2, 110,
+			100, 121, 114, 12, 0, 8, 114, 116, 2, 12, 0, 8, 114, 116, 2, 116, 0, 8, 115, 100, 117, 2, 32, 12, 0, 8, 115, 100, 117, 2,
+			114, 32, 12, 0, 8, 115, 110, 97, 2, 12, 12, 0, 8, 116, 2, 32, 0, 8, 116, 115, 105, 0, 100, 1, 116, 115, 2, 100, 97, 0,
+			100, 1, 116, 115, 2, 102, 97, 0, 100, 1, 116, 115, 2, 109, 111, 0, 100, 1, 116, 115, 2, 115, 195, 184, 0, 103, 8, 116, 115, 2,
+			32, 0, 1, 98, 10, 2, 115, 21, 3, 36, 4, 0, 101, 1, 100, 105, 2, 108, 3, 36, 6, 109, 0, 4, 103, 101, 8, 2, 32, 3,
+			36, 12, 57, 13, 0, 103, 101, 8, 2, 98, 108, 97, 100, 0, 103, 101, 8, 2, 108, 195, 184, 118, 0, 103, 101, 8, 2, 116, 114, 195,
+			166, 0, 101, 8, 110, 115, 2, 100, 101, 32, 3, 36, 13, 0, 8, 115, 2, 32, 3, 36, 19, 0, 110, 100, 101, 1, 106, 102, 3, 36,
+			20, 50, 13, 0, 110, 100, 101, 114, 1, 106, 102, 3, 36, 20, 50, 114, 0, 114, 114, 105, 101, 114, 8, 112, 3, 36, 34, 37, 6, 36,
+			0, 101, 1, 98, 2, 100, 3, 36, 36, 0, 116, 97, 103, 101, 114, 101, 3, 36, 47, 110, 91, 6, 109, 12, 51, 0, 100, 107, 101, 114,
+			1, 110, 115, 3, 36, 49, 114, 0, 4, 110, 1, 99, 2, 116, 17, 67, 3, 36, 50, 0, 110, 1, 100, 17, 65, 2, 116, 0, 108, 108,
+			101, 118, 101, 3, 36, 55, 84, 13, 0, 4, 103, 1, 108, 114, 101, 100, 110, 117, 3, 36, 57, 0, 103, 1, 116, 115, 114, 101, 118, 111,
+			0, 103, 8, 118, 2, 32, 0, 103, 8, 118, 2, 101, 116, 32, 0, 106, 2, 97, 107, 117, 0, 103, 101, 110, 8, 2, 21, 3, 36, 57,
+			13, 50, 0, 4, 103, 1, 108, 2, 101, 110, 100, 97, 3, 36, 81, 0, 103, 1, 108, 2, 101, 114, 0, 103, 1, 108, 2, 101, 114, 101,
+			0, 103, 1, 108, 2, 105, 116, 105, 0, 103, 1, 109, 2, 97, 0, 103, 1, 112, 2, 97, 115, 117, 115, 0, 103, 2, 101, 118, 105, 110,
+			115, 116, 12, 0, 103, 8, 107, 115, 2, 97, 102, 102, 101, 108, 0, 103, 101, 110, 100, 101, 8, 108, 2, 32, 3, 36, 81, 6, 109, 50,
+			72, 108, 0, 100, 101, 116, 1, 108, 2, 12, 3, 36, 86, 13, 47, 0, 101, 1, 114, 2, 108, 3, 36, 109, 0, 4, 1, 115, 115, 101,
+			106, 3, 37, 0, 8, 2, 32, 109, 97, 105, 108, 0, 8, 2, 32, 115, 112, 101, 97, 107, 0, 8, 100, 2, 32, 0, 97, 1, 108, 2,
+			115, 101, 0, 97, 1, 108, 2, 115, 105, 110, 103, 0, 121, 1, 17, 67, 2, 32, 0, 121, 1, 107, 0, 121, 1, 108, 108, 0, 121, 1,
+			110, 115, 105, 100, 0, 121, 1, 115, 100, 110, 105, 108, 0, 121, 1, 118, 114, 97, 104, 0, 121, 8, 110, 114, 97, 98, 0, 4, 97, 1,
+			104, 2, 108, 3, 37, 12, 0, 97, 1, 107, 2, 116, 111, 110, 0, 97, 1, 112, 2, 99, 111, 0, 97, 1, 116, 2, 109, 0, 97, 8,
+			112, 2, 107, 32, 0, 101, 1, 104, 115, 2, 108, 97, 0, 101, 1, 107, 2, 112, 101, 114, 0, 101, 1, 114, 102, 0, 101, 1, 114, 102,
+			2, 108, 97, 110, 0, 101, 1, 114, 103, 2, 110, 0, 101, 1, 119, 0, 101, 1, 119, 2, 107, 0, 101, 8, 108, 102, 2, 99, 101, 12,
+			0, 105, 8, 100, 2, 100, 114, 101, 0, 116, 111, 110, 8, 3, 37, 12, 47, 13, 50, 0, 97, 108, 8, 110, 3, 37, 12, 59, 0, 4,
+			101, 100, 1, 112, 115, 3, 37, 12, 72, 0, 101, 100, 1, 119, 116, 0, 101, 100, 8, 114, 2, 25, 0, 97, 99, 104, 8, 112, 3, 37,
+			12, 76, 0, 97, 103, 108, 101, 3, 37, 12, 81, 13, 55, 0, 4, 97, 115, 101, 1, 116, 112, 105, 114, 116, 115, 3, 37, 12, 89, 0,
+			101, 115, 101, 1, 104, 99, 0, 97, 115, 116, 8, 3, 37, 12, 89, 72, 0, 98, 97, 121, 3, 37, 71, 109, 57, 0, 97, 98, 111, 100,
+			121, 1, 112, 3, 37, 71, 114, 72, 37, 0, 100, 105, 101, 8, 2, 32, 3, 37, 72, 37, 0, 103, 101, 1, 108, 108, 111, 99, 3, 37,
+			75, 0, 118, 105, 101, 8, 116, 115, 3, 37, 84, 37, 0, 97, 115, 121, 3, 37, 89, 37, 0, 115, 112, 101, 97, 107, 3, 37, 89, 48,
+			37, 12, 49, 0, 97, 117, 1, 114, 3, 39, 0, 119, 1, 108, 2, 105, 115, 3, 40, 12, 0, 119, 1, 116, 115, 3, 57, 40, 0, 117,
+			103, 101, 110, 101, 3, 57, 40, 75, 6, 37, 12, 50, 0, 116, 1, 103, 111, 110, 2, 32, 3, 86, 0, 4, 1, 21, 2, 32, 12, 3,
+			108, 0, 1, 98, 97, 118, 104, 2, 104, 97, 114, 32, 0, 1, 98, 109, 111, 98, 2, 114, 21, 0, 1, 99, 121, 111, 106, 2, 115, 0,
+			1, 100, 101, 98, 0, 1, 100, 117, 0, 1, 100, 184, 195, 0, 1, 105, 114, 0, 1, 107, 107, 121, 2, 17, 67, 0, 1, 107, 108, 166,
+			195, 109, 0, 1, 108, 98, 111, 98, 0, 1, 108, 98, 166, 195, 2, 103, 114, 195, 184, 100, 0, 1, 108, 98, 184, 195, 2, 109, 0, 1,
+			108, 101, 2, 118, 97, 116, 0, 1, 108, 101, 116, 0, 1, 108, 102, 97, 2, 118, 0, 1, 108, 112, 2, 109, 101, 110, 0, 1, 108, 117,
+			0, 1, 110, 2, 117, 110, 103, 101, 0, 1, 110, 21, 2, 100, 0, 1, 110, 115, 17, 65, 108, 2, 12, 0, 1, 110, 115, 105, 103, 2,
+			12, 0, 1, 110, 115, 105, 118, 2, 12, 0, 1, 110, 115, 107, 111, 118, 0, 1, 114, 2, 104, 0, 1, 114, 2, 114, 101, 0, 1, 114,
+			97, 112, 115, 0, 1, 114, 97, 118, 0, 1, 114, 100, 108, 166, 195, 2, 12, 0, 1, 114, 100, 114, 111, 0, 1, 114, 116, 110, 101, 2,
+			112, 114, 0, 1, 114, 166, 195, 2, 12, 0, 1, 116, 114, 184, 195, 107, 115, 2, 17, 67, 0, 1, 118, 97, 104, 0, 2, 106, 111, 98,
+			12, 0, 2, 106, 111, 117, 114, 12, 0, 2, 106, 195, 166, 103, 101, 114, 12, 0, 8, 97, 2, 32, 0, 8, 100, 2, 32, 103, 97, 117,
+			108, 108, 101, 0, 8, 100, 2, 32, 108, 97, 32, 0, 8, 110, 115, 105, 2, 12, 0, 1, 114, 17, 65, 2, 115, 32, 3, 108, 9, 0,
+			4, 106, 101, 114, 110, 1, 109, 3, 108, 57, 109, 34, 50, 0, 106, 101, 114, 110, 1, 118, 0, 4, 106, 1, 100, 110, 2, 111, 98, 3,
+			108, 75, 0, 106, 1, 109, 2, 111, 98, 0, 4, 103, 1, 107, 115, 105, 102, 3, 108, 81, 0, 103, 1, 108, 101, 116, 2, 114, 0, 103,
+			2, 97, 110, 103, 115, 0, 116, 1, 99, 105, 112, 115, 111, 104, 3, 108, 86, 0, 115, 1, 21, 2, 32, 24, 3, 108, 89, 0, 4, 1,
+			17, 67, 2, 17, 67, 11, 3, 109, 0, 1, 17, 67, 2, 18, 67, 0, 1, 18, 71, 2, 114, 0, 1, 18, 74, 2, 108, 0, 1, 98,
+			2, 114, 103, 12, 0, 1, 98, 117, 116, 2, 114, 107, 117, 0, 1, 106, 98, 111, 2, 107, 116, 105, 118, 0, 1, 107, 97, 114, 2, 116,
+			12, 0, 1, 108, 2, 18, 72, 0, 1, 108, 101, 2, 110, 100, 105, 103, 0, 1, 108, 101, 116, 2, 120, 0, 1, 108, 111, 107, 2, 115,
+			116, 0, 1, 108, 115, 2, 116, 12, 12, 0, 1, 110, 101, 2, 109, 0, 1, 110, 101, 2, 114, 103, 105, 0, 1, 110, 115, 2, 114, 112,
+			0, 1, 112, 115, 101, 114, 2, 107, 116, 97, 98, 101, 108, 0, 1, 114, 2, 17, 67, 11, 0, 1, 114, 2, 110, 103, 195, 184, 0, 1,
+			114, 2, 110, 115, 107, 114, 0, 1, 114, 2, 110, 115, 107, 117, 0, 1, 114, 2, 115, 116, 97, 117, 114, 97, 110, 116, 0, 1, 114, 17,
+			67, 2, 100, 0, 1, 114, 98, 2, 118, 0, 1, 114, 100, 2, 118, 110, 0, 1, 114, 101, 100, 101, 108, 2, 118, 110, 101, 0, 1, 114,
+			103, 2, 116, 0, 1, 114, 112, 2, 109, 0, 1, 114, 112, 101, 100, 2, 115, 115, 0, 1, 114, 112, 111, 2, 118, 0, 1, 114, 112, 115,
+			2, 100, 0, 1, 115, 2, 100, 100, 0, 1, 116, 2, 100, 0, 8, 106, 111, 114, 112, 2, 107, 116, 105, 108, 0, 8, 114, 101, 108, 108,
+			97, 2, 100, 101, 32, 0, 8, 114, 116, 2, 100, 0, 8, 114, 116, 2, 115, 0, 97, 1, 119, 115, 2, 116, 101, 114, 0, 97, 1, 119,
+			115, 2, 116, 114, 101, 0, 106, 1, 118, 2, 114, 0, 4, 1, 114, 112, 2, 115, 115, 101, 114, 101, 110, 100, 101, 3, 109, 6, 0, 1,
+			114, 116, 2, 109, 97, 0, 110, 100, 101, 1, 115, 112, 111, 3, 109, 10, 50, 13, 0, 4, 1, 114, 2, 100, 17, 65, 3, 109, 12, 0,
+			2, 118, 101, 110, 0, 110, 100, 1, 107, 2, 101, 32, 12, 3, 109, 20, 50, 0, 4, 110, 100, 101, 1, 118, 2, 12, 3, 109, 20, 50,
+			13, 0, 110, 100, 101, 1, 118, 110, 97, 2, 32, 0, 110, 100, 101, 1, 118, 110, 101, 104, 2, 32, 0, 110, 100, 101, 1, 118, 115, 2,
+			32, 0, 110, 100, 101, 1, 100, 108, 117, 102, 3, 109, 20, 50, 108, 0, 4, 110, 100, 101, 114, 1, 107, 2, 32, 3, 109, 20, 50, 114,
+			0, 110, 100, 101, 114, 1, 118, 2, 12, 0, 110, 100, 101, 114, 1, 118, 110, 97, 2, 32, 0, 110, 100, 101, 114, 1, 118, 110, 101, 104,
+			2, 32, 0, 114, 118, 101, 114, 1, 115, 101, 114, 2, 32, 101, 110, 3, 109, 34, 84, 6, 36, 34, 0, 116, 97, 108, 1, 109, 32, 121,
+			118, 97, 101, 104, 3, 109, 47, 108, 55, 0, 99, 104, 1, 116, 3, 109, 49, 0, 4, 110, 1, 99, 2, 116, 3, 109, 50, 0, 110, 1,
+			99, 2, 116, 17, 65, 0, 4, 110, 101, 1, 106, 116, 2, 12, 12, 3, 109, 50, 13, 0, 110, 101, 1, 114, 103, 2, 12, 0, 110, 100,
+			101, 1, 118, 2, 116, 116, 97, 3, 109, 50, 72, 6, 109, 0, 110, 100, 97, 1, 114, 98, 3, 109, 50, 72, 110, 0, 110, 103, 101, 1,
+			104, 101, 110, 111, 116, 115, 3, 109, 50, 75, 0, 110, 101, 114, 1, 106, 116, 2, 12, 3, 109, 50, 114, 0, 4, 97, 1, 114, 98, 2,
+			107, 3, 109, 57, 0, 97, 1, 114, 103, 2, 116, 0, 103, 1, 108, 114, 101, 118, 111, 0, 121, 1, 114, 0, 103, 101, 1, 108, 2, 109,
+			101, 3, 109, 57, 20, 13, 0, 4, 103, 101, 108, 1, 114, 3, 109, 57, 55, 0, 103, 108, 1, 114, 0, 109, 112, 105, 114, 101, 2, 32,
+			115, 116, 97, 116, 101, 3, 109, 65, 48, 35, 57, 108, 0, 105, 110, 116, 1, 116, 3, 109, 68, 0, 4, 97, 100, 1, 104, 3, 109, 72,
+			0, 100, 100, 1, 114, 98, 0, 4, 100, 100, 105, 101, 1, 114, 102, 3, 109, 72, 37, 0, 100, 100, 105, 101, 8, 0, 100, 100, 121, 1,
+			114, 102, 0, 100, 100, 105, 107, 101, 3, 109, 72, 49, 108, 0, 100, 97, 103, 1, 114, 102, 3, 109, 72, 110, 0, 4, 103, 1, 114, 2,
+			101, 114, 3, 109, 81, 0, 103, 1, 114, 97, 117, 116, 0, 103, 103, 121, 1, 112, 3, 109, 81, 37, 0, 103, 109, 97, 116, 105, 116, 1,
+			112, 3, 109, 81, 65, 110, 47, 6, 37, 47, 0, 100, 101, 116, 1, 116, 115, 2, 32, 3, 109, 86, 108, 47, 0, 100, 101, 116, 1, 114,
+			2, 32, 3, 109, 86, 108, 72, 0, 115, 116, 105, 103, 101, 1, 114, 112, 2, 32, 3, 109, 89, 47, 6, 37, 91, 0, 4, 99, 115, 116,
+			97, 99, 121, 3, 109, 89, 47, 110, 89, 37, 0, 99, 115, 116, 97, 115, 121, 0, 4, 1, 110, 115, 2, 114, 114, 101, 3, 111, 0, 1,
+			114, 2, 18, 67, 115, 0, 1, 114, 2, 18, 74, 115, 0, 1, 114, 2, 107, 116, 111, 0, 1, 114, 2, 109, 0, 1, 114, 2, 110, 100,
+			32, 0, 1, 114, 2, 110, 100, 101, 0, 1, 114, 2, 110, 103, 0, 1, 114, 2, 110, 115, 101, 0, 1, 114, 2, 110, 115, 110, 105, 110,
+			103, 0, 1, 114, 2, 110, 116, 101, 0, 1, 114, 2, 115, 116, 0, 1, 114, 2, 115, 116, 101, 0, 1, 114, 2, 116, 0, 1, 114, 2,
+			118, 108, 0, 1, 114, 2, 118, 110, 0, 1, 114, 18, 67, 2, 17, 67, 11, 0, 1, 114, 18, 72, 2, 109, 0, 1, 114, 98, 2, 18,
+			74, 0, 1, 114, 101, 98, 2, 116, 12, 12, 0, 1, 114, 102, 2, 108, 0, 1, 114, 102, 2, 109, 0, 1, 114, 102, 2, 109, 111, 118,
+			0, 1, 114, 103, 2, 108, 0, 1, 114, 103, 103, 97, 2, 115, 115, 111, 114, 0, 1, 114, 103, 110, 111, 107, 2, 115, 0, 1, 114, 105,
+			100, 2, 107, 116, 0, 1, 114, 112, 2, 17, 67, 11, 12, 0, 1, 114, 112, 2, 115, 12, 0, 1, 114, 112, 111, 2, 116, 12, 12, 0,
+			1, 114, 114, 111, 102, 2, 116, 12, 12, 0, 1, 114, 121, 114, 114, 97, 107, 2, 116, 12, 0, 2, 103, 97, 110, 115, 105, 103, 116, 0,
+			8, 114, 103, 101, 114, 2, 115, 115, 105, 118, 0, 100, 105, 118, 101, 1, 114, 116, 3, 111, 86, 84, 13, 0, 115, 115, 101, 1, 114, 21,
+			2, 114, 101, 28, 33, 3, 111, 89, 6, 36, 0, 2, 109, 98, 97, 108, 108, 3, 112, 0, 97, 114, 116, 1, 104, 3, 112, 12, 72, 0,
+			110, 1, 114, 2, 99, 101, 3, 112, 68, 0, 110, 116, 101, 110, 116, 101, 3, 112, 68, 47, 6, 112, 68, 47, 0, 97, 117, 120, 1, 114,
+			3, 113, 0, 4, 1, 99, 110, 97, 108, 101, 101, 114, 102, 2, 114, 3, 114, 0, 1, 108, 97, 109, 2, 114, 105, 0, 1, 114, 100, 2,
+			100, 101, 115, 32, 0, 1, 114, 100, 110, 2, 17, 65, 0, 1, 114, 100, 110, 97, 0, 1, 114, 111, 10, 2, 112, 108, 0, 1, 114, 111,
+			104, 0, 1, 114, 111, 116, 115, 0, 1, 114, 116, 97, 108, 107, 0, 1, 114, 116, 115, 110, 101, 118, 0, 1, 114, 121, 110, 2, 12, 0,
+			114, 1, 98, 17, 65, 10, 0, 114, 1, 100, 110, 101, 0, 114, 1, 108, 97, 109, 0, 114, 1, 108, 100, 105, 109, 0, 114, 1, 108, 108,
+			101, 0, 114, 1, 108, 165, 195, 109, 0, 114, 1, 110, 115, 17, 65, 108, 2, 12, 0, 114, 1, 110, 115, 105, 103, 2, 12, 0, 114, 1,
+			110, 115, 105, 118, 2, 12, 0, 114, 1, 112, 117, 115, 0, 114, 1, 115, 100, 117, 112, 2, 12, 0, 114, 1, 115, 117, 108, 2, 12, 0,
+			114, 8, 110, 115, 105, 2, 12, 0, 4, 110, 101, 1, 114, 21, 2, 32, 3, 114, 50, 13, 0, 110, 101, 1, 114, 103, 110, 105, 102, 0,
+			110, 101, 115, 1, 114, 21, 2, 32, 14, 128, 128, 132, 3, 114, 50, 13, 89, 0, 117, 1, 102, 101, 3, 114, 57, 0, 97, 114, 108, 8,
+			3, 118, 12, 59, 0, 97, 114, 112, 8, 3, 118, 12, 71, 0, 117, 1, 110, 3, 118, 40, 0, 117, 2, 114, 111, 3, 118, 58, 0, 117,
+			116, 1, 112, 97, 114, 101, 116, 3, 118, 58, 72, 0, 117, 115, 3, 118, 58, 89, 0, 7, 6, 102, 0, 1, 97, 2, 115, 116, 101, 100,
+			3, 0, 4, 1, 97, 2, 17, 65, 3, 58, 0, 1, 97, 2, 17, 67, 0, 4, 3, 83, 0, 1, 21, 2, 108, 97, 115, 107, 101, 0,
+			1, 97, 2, 97, 115, 105, 0, 1, 97, 2, 97, 116, 105, 115, 107, 0, 1, 97, 2, 105, 116, 0, 1, 97, 2, 111, 110, 0, 1, 97,
+			2, 111, 114, 0, 1, 97, 2, 114, 105, 107, 0, 1, 97, 2, 114, 111, 0, 1, 97, 2, 116, 101, 110, 0, 1, 97, 2, 116, 101, 115,
+			32, 0, 1, 97, 17, 67, 2, 17, 65, 0, 1, 97, 17, 67, 2, 116, 0, 1, 97, 100, 2, 110, 0, 1, 97, 103, 2, 108, 0, 1,
+			97, 107, 115, 0, 1, 97, 108, 2, 114, 101, 0, 1, 97, 114, 2, 102, 111, 114, 0, 1, 97, 114, 2, 102, 114, 0, 1, 97, 114, 2,
+			105, 107, 0, 1, 97, 114, 2, 108, 101, 0, 1, 97, 114, 103, 2, 17, 65, 0, 1, 97, 114, 105, 103, 0, 1, 97, 114, 116, 115, 0,
+			1, 97, 115, 2, 97, 114, 0, 1, 97, 116, 115, 2, 101, 0, 1, 97, 118, 2, 108, 0, 2, 106, 101, 100, 101, 114, 0, 2, 111, 108,
+			107, 0, 102, 0, 102, 1, 97, 2, 97, 98, 101, 108, 0, 102, 1, 97, 2, 97, 103, 101, 0, 102, 1, 97, 2, 101, 107, 116, 0, 102,
+			1, 97, 2, 101, 108, 0, 102, 1, 97, 2, 105, 99, 101, 114, 101, 0, 102, 1, 97, 2, 105, 110, 101, 0, 102, 1, 97, 2, 105, 110,
+			105, 116, 101, 116, 0, 102, 1, 97, 2, 105, 114, 109, 0, 102, 1, 97, 2, 117, 116, 97, 103, 101, 0, 102, 1, 97, 2, 195, 166, 114,
+			101, 0, 102, 1, 97, 106, 2, 97, 0, 102, 1, 97, 114, 2, 101, 0, 111, 114, 101, 8, 2, 100, 101, 32, 3, 83, 2, 6, 39, 34,
+			114, 0, 111, 114, 8, 2, 101, 32, 3, 83, 2, 39, 0, 4, 101, 1, 97, 99, 3, 83, 6, 36, 0, 195, 169, 1, 97, 99, 0, 111,
+			114, 8, 2, 117, 109, 3, 83, 6, 39, 34, 0, 195, 166, 114, 100, 105, 103, 1, 21, 3, 83, 6, 109, 34, 72, 37, 0, 114, 105, 116,
+			101, 115, 1, 32, 115, 101, 3, 83, 34, 37, 47, 0, 114, 97, 110, 107, 105, 101, 3, 83, 34, 110, 50, 49, 37, 0, 114, 97, 110, 195,
+			167, 111, 105, 115, 3, 83, 34, 112, 68, 89, 6, 58, 35, 0, 114, 101, 117, 100, 3, 83, 34, 114, 57, 47, 0, 101, 8, 2, 32, 3,
+			83, 36, 0, 101, 116, 116, 117, 99, 99, 105, 110, 101, 3, 83, 36, 47, 40, 87, 91, 6, 37, 12, 50, 13, 0, 105, 110, 108, 97, 121,
+			3, 83, 36, 50, 55, 37, 0, 105, 101, 108, 100, 3, 83, 37, 12, 59, 72, 0, 4, 105, 114, 101, 3, 83, 37, 12, 114, 0, 105, 114,
+			101, 111, 103, 0, 105, 114, 101, 110, 122, 101, 3, 83, 37, 51, 6, 110, 50, 89, 13, 0, 111, 98, 105, 1, 21, 3, 83, 39, 71, 6,
+			37, 0, 111, 117, 113, 117, 101, 116, 3, 83, 40, 49, 6, 36, 0, 114, 97, 110, 99, 101, 115, 99, 97, 3, 83, 51, 35, 50, 91, 6,
+			109, 89, 49, 110, 0, 108, 117, 115, 104, 3, 83, 55, 114, 91, 0, 195, 166, 114, 100, 105, 103, 1, 21, 21, 3, 83, 109, 34, 72, 37,
+			0, 97, 114, 97, 111, 3, 83, 112, 34, 112, 39, 0, 111, 117, 114, 8, 2, 32, 3, 83, 113, 12, 0, 111, 110, 116, 97, 105, 110, 101,
+			3, 83, 113, 68, 47, 6, 109, 12, 50, 0, 98, 105, 8, 3, 109, 83, 71, 37, 6, 35, 57, 0, 7, 6, 103, 0, 4, 1, 105, 100,
+			184, 195, 2, 116, 32, 3, 0, 4, 1, 105, 107, 2, 104, 111, 115, 116, 3, 0, 4, 1, 105, 116, 103, 2, 101, 114, 101, 3, 0, 4,
+			1, 108, 2, 17, 67, 3, 0, 4, 1, 108, 2, 116, 101, 32, 3, 0, 4, 1, 108, 97, 118, 2, 116, 3, 0, 4, 1, 111, 2, 101,
+			114, 110, 17, 65, 3, 0, 4, 1, 114, 117, 103, 2, 108, 101, 3, 0, 4, 1, 114, 184, 195, 2, 115, 3, 0, 4, 1, 117, 2, 108,
+			3, 0, 4, 1, 117, 100, 32, 110, 101, 3, 0, 4, 1, 117, 100, 101, 100, 101, 118, 115, 3, 0, 4, 1, 117, 100, 101, 115, 121, 108,
+			3, 0, 4, 1, 117, 100, 103, 97, 108, 102, 3, 0, 4, 1, 117, 100, 107, 115, 97, 109, 97, 100, 3, 0, 4, 1, 117, 100, 108, 106,
+			101, 115, 3, 0, 4, 1, 117, 100, 114, 101, 109, 108, 111, 3, 0, 4, 1, 117, 100, 114, 101, 109, 109, 97, 107, 3, 0, 4, 1, 117,
+			100, 115, 107, 111, 118, 3, 0, 4, 1, 117, 100, 116, 108, 101, 116, 3, 0, 4, 1, 117, 114, 3, 0, 4, 1, 117, 116, 114, 101, 104,
+			3, 0, 1, 121, 115, 3, 0, 4, 1, 97, 2, 97, 118, 101, 3, 6, 81, 0, 8, 97, 2, 97, 114, 0, 101, 110, 116, 1, 114, 101,
+			115, 3, 6, 89, 57, 110, 50, 47, 0, 4, 1, 111, 103, 3, 8, 0, 1, 111, 108, 0, 4, 1, 111, 108, 2, 111, 3, 8, 81, 0,
+			1, 111, 108, 98, 2, 115, 0, 105, 1, 10, 2, 115, 107, 28, 33, 3, 8, 81, 37, 0, 101, 115, 1, 114, 97, 112, 115, 97, 3, 8,
+			89, 0, 4, 1, 97, 114, 2, 101, 3, 12, 0, 1, 97, 115, 2, 115, 0, 1, 117, 2, 101, 0, 1, 117, 115, 0, 1, 97, 100, 100,
+			2, 115, 3, 12, 19, 0, 101, 1, 184, 195, 2, 12, 12, 12, 3, 12, 57, 13, 0, 101, 1, 184, 195, 109, 2, 108, 101, 110, 3, 12,
+			57, 36, 0, 4, 1, 97, 98, 2, 101, 3, 13, 0, 1, 97, 107, 2, 101, 0, 4, 101, 110, 1, 114, 2, 32, 3, 13, 50, 0, 101,
+			110, 1, 114, 2, 115, 32, 0, 1, 97, 98, 2, 105, 3, 15, 0, 4, 101, 111, 114, 103, 101, 3, 21, 0, 101, 111, 114, 103, 105, 101,
+			0, 114, 97, 99, 101, 0, 114, 97, 104, 97, 109, 2, 32, 0, 114, 97, 104, 97, 109, 115, 2, 32, 0, 111, 110, 122, 97, 108, 101, 115,
+			3, 21, 101, 115, 0, 4, 97, 99, 104, 101, 116, 3, 21, 102, 114, 0, 117, 105, 108, 108, 97, 117, 109, 105, 110, 0, 4, 1, 97, 98,
+			2, 116, 97, 108, 3, 40, 0, 1, 97, 104, 2, 108, 0, 1, 114, 2, 101, 114, 32, 0, 1, 114, 184, 195, 0, 1, 165, 195, 0, 1,
+			165, 195, 2, 101, 0, 1, 165, 195, 118, 2, 110, 0, 101, 1, 114, 184, 195, 2, 108, 12, 3, 40, 108, 0, 116, 1, 114, 117, 112, 115,
+			3, 47, 0, 116, 101, 1, 114, 117, 112, 115, 3, 47, 13, 0, 4, 1, 105, 107, 3, 49, 0, 1, 111, 98, 2, 115, 116, 0, 110, 1,
+			97, 112, 2, 105, 3, 50, 6, 0, 4, 110, 1, 105, 2, 111, 3, 50, 57, 0, 110, 1, 166, 195, 114, 112, 109, 105, 2, 101, 0, 4,
+			1, 17, 65, 2, 110, 3, 57, 0, 1, 97, 100, 2, 115, 32, 0, 1, 97, 104, 101, 98, 0, 1, 97, 108, 2, 110, 0, 1, 97, 115,
+			0, 1, 101, 2, 101, 110, 115, 107, 97, 98, 0, 1, 101, 2, 101, 110, 116, 108, 0, 1, 101, 18, 73, 0, 1, 101, 108, 98, 2, 97,
+			110, 115, 105, 103, 116, 0, 1, 101, 108, 98, 2, 102, 105, 0, 1, 101, 108, 98, 2, 115, 111, 116, 0, 1, 101, 110, 2, 32, 0, 1,
+			101, 110, 115, 0, 1, 101, 118, 2, 101, 110, 0, 1, 105, 109, 115, 0, 1, 108, 2, 32, 0, 1, 108, 2, 101, 110, 32, 0, 1, 108,
+			2, 101, 116, 32, 0, 1, 108, 2, 115, 0, 1, 108, 97, 2, 101, 0, 1, 108, 97, 118, 0, 1, 108, 97, 118, 2, 195, 165, 114, 0,
+			1, 108, 101, 2, 101, 32, 0, 1, 108, 101, 2, 101, 110, 101, 32, 0, 1, 108, 101, 2, 101, 110, 101, 115, 32, 0, 1, 108, 166, 195,
+			2, 101, 0, 1, 108, 184, 195, 2, 101, 0, 1, 121, 2, 101, 0, 1, 166, 195, 2, 101, 0, 1, 166, 195, 2, 101, 114, 110, 17, 65,
+			0, 1, 166, 195, 108, 2, 100, 111, 109, 0, 1, 166, 195, 108, 2, 102, 111, 108, 107, 0, 1, 166, 195, 108, 2, 109, 0, 1, 166, 195,
+			108, 2, 115, 195, 184, 115, 0, 1, 166, 195, 114, 112, 0, 1, 166, 195, 118, 107, 0, 1, 184, 195, 0, 1, 184, 195, 2, 110, 0, 2,
+			108, 101, 0, 8, 101, 2, 32, 0, 110, 1, 105, 115, 108, 101, 118, 3, 57, 50, 0, 114, 1, 97, 108, 2, 101, 3, 57, 51, 0, 101,
+			1, 101, 2, 114, 3, 57, 114, 0, 4, 1, 97, 98, 2, 105, 110, 3, 58, 0, 1, 97, 100, 2, 17, 67, 0, 1, 97, 114, 98, 0,
+			1, 97, 114, 100, 0, 1, 97, 114, 100, 2, 101, 110, 0, 1, 97, 114, 118, 0, 1, 97, 118, 2, 110, 0, 1, 111, 17, 67, 0, 1,
+			111, 108, 114, 111, 0, 1, 114, 2, 32, 0, 1, 114, 2, 101, 116, 32, 0, 1, 114, 101, 106, 2, 17, 65, 0, 1, 114, 101, 106, 2,
+			17, 67, 0, 1, 114, 166, 195, 106, 2, 101, 0, 8, 97, 114, 112, 0, 101, 114, 1, 114, 166, 195, 2, 108, 105, 103, 3, 58, 13, 0,
+			101, 110, 1, 114, 97, 109, 3, 58, 13, 50, 0, 101, 114, 110, 101, 1, 114, 2, 32, 3, 58, 114, 50, 108, 0, 101, 114, 110, 101, 115,
+			1, 114, 2, 32, 3, 58, 114, 50, 108, 89, 0, 110, 1, 105, 115, 2, 101, 114, 3, 68, 0, 4, 110, 1, 97, 112, 2, 101, 114, 3,
+			68, 57, 0, 110, 1, 97, 112, 2, 111, 110, 0, 101, 110, 116, 108, 101, 109, 101, 110, 3, 72, 57, 109, 50, 47, 13, 55, 65, 109, 50,
+			0, 101, 110, 116, 108, 101, 109, 97, 110, 3, 72, 57, 109, 50, 47, 13, 55, 65, 110, 50, 0, 2, 105, 103, 111, 108, 111, 3, 75, 0,
+			101, 114, 97, 108, 100, 1, 122, 116, 105, 102, 3, 75, 6, 109, 34, 108, 59, 0, 105, 97, 110, 116, 115, 8, 3, 75, 35, 57, 110, 50,
+			47, 89, 0, 105, 8, 2, 110, 3, 75, 36, 0, 101, 114, 111, 110, 105, 109, 111, 3, 75, 36, 34, 6, 114, 50, 37, 65, 113, 12, 40,
+			0, 105, 110, 103, 101, 114, 8, 3, 75, 36, 50, 75, 114, 0, 4, 105, 8, 2, 110, 18, 69, 3, 75, 37, 0, 105, 8, 2, 110, 97,
+			0, 105, 117, 115, 101, 112, 112, 101, 3, 75, 37, 89, 6, 109, 48, 13, 0, 101, 114, 114, 121, 3, 75, 109, 34, 37, 0, 101, 114, 97,
+			108, 100, 3, 75, 109, 34, 108, 59, 0, 101, 114, 97, 108, 100, 105, 110, 101, 3, 75, 109, 34, 108, 59, 72, 37, 12, 50, 0, 101, 111,
+			102, 102, 3, 75, 109, 83, 0, 101, 111, 114, 103, 105, 97, 3, 75, 114, 12, 75, 57, 110, 0, 4, 3, 81, 0, 1, 17, 65, 2, 116,
+			32, 0, 1, 17, 65, 108, 2, 97, 0, 1, 97, 2, 110, 111, 115, 0, 1, 97, 100, 110, 97, 2, 116, 0, 1, 97, 108, 2, 116, 0,
+			1, 97, 114, 98, 2, 116, 0, 1, 97, 114, 100, 2, 111, 110, 0, 1, 97, 114, 100, 2, 116, 0, 1, 97, 114, 112, 2, 116, 0, 1,
+			97, 115, 2, 111, 0, 1, 101, 18, 73, 2, 116, 0, 1, 101, 114, 2, 105, 17, 65, 0, 1, 101, 114, 2, 105, 109, 101, 110, 116, 0,
+			1, 101, 116, 2, 111, 114, 105, 0, 1, 105, 2, 105, 0, 1, 108, 105, 112, 2, 114, 105, 109, 0, 1, 111, 2, 114, 97, 102, 0, 1,
+			111, 2, 114, 97, 109, 0, 1, 111, 98, 2, 111, 116, 97, 0, 1, 111, 108, 2, 97, 0, 1, 111, 108, 2, 102, 105, 108, 0, 1, 111,
+			114, 2, 97, 110, 0, 1, 111, 114, 2, 101, 115, 0, 1, 111, 114, 112, 2, 114, 0, 1, 111, 114, 114, 117, 115, 2, 97, 116, 0, 1,
+			111, 116, 2, 97, 0, 1, 111, 116, 2, 111, 0, 1, 111, 116, 2, 116, 0, 1, 111, 118, 2, 116, 0, 1, 111, 118, 2, 116, 101, 0,
+			1, 117, 2, 101, 110, 18, 66, 0, 1, 117, 2, 101, 110, 110, 0, 1, 117, 104, 2, 110, 105, 110, 103, 0, 1, 117, 109, 2, 110, 0,
+			1, 117, 114, 102, 2, 116, 0, 1, 117, 114, 117, 2, 117, 97, 121, 0, 1, 121, 98, 2, 110, 0, 1, 121, 107, 115, 2, 110, 105, 0,
+			1, 121, 116, 2, 110, 105, 110, 103, 0, 1, 166, 195, 2, 110, 12, 0, 1, 166, 195, 114, 112, 2, 110, 97, 0, 1, 166, 195, 114, 112,
+			2, 116, 105, 103, 0, 1, 184, 195, 114, 2, 116, 101, 114, 0, 1, 184, 195, 115, 2, 97, 110, 103, 0, 2, 101, 110, 115, 116, 97, 110,
+			100, 12, 0, 2, 105, 118, 12, 0, 2, 108, 97, 115, 0, 2, 108, 101, 109, 0, 2, 114, 97, 110, 0, 2, 114, 111, 115, 115, 0, 2,
+			114, 117, 18, 71, 0, 2, 114, 195, 184, 110, 0, 2, 116, 101, 32, 0, 2, 121, 114, 111, 0, 2, 195, 165, 114, 100, 12, 12, 0, 8,
+			2, 108, 101, 100, 0, 8, 111, 98, 2, 97, 114, 116, 0, 8, 111, 98, 2, 101, 121, 0, 8, 111, 108, 2, 32, 0, 8, 111, 108, 2,
+			103, 0, 103, 1, 97, 2, 114, 101, 115, 0, 103, 1, 105, 0, 103, 1, 111, 0, 103, 1, 111, 108, 2, 101, 0, 103, 2, 101, 0, 104,
+			1, 102, 97, 2, 97, 0, 104, 2, 97, 110, 97, 0, 104, 2, 101, 116, 116, 111, 0, 4, 1, 97, 2, 117, 114, 107, 3, 81, 6, 0,
+			1, 111, 108, 2, 105, 0, 8, 101, 114, 2, 105, 115, 116, 0, 101, 114, 1, 21, 2, 28, 33, 3, 81, 6, 36, 34, 0, 4, 101, 110,
+			1, 111, 114, 101, 3, 81, 6, 36, 50, 0, 101, 110, 1, 111, 114, 116, 105, 110, 0, 101, 110, 1, 111, 114, 116, 115, 184, 195, 0, 105,
+			1, 101, 114, 2, 115, 116, 101, 114, 3, 81, 6, 37, 0, 97, 1, 111, 110, 111, 109, 2, 109, 3, 81, 6, 110, 0, 4, 105, 1, 17,
+			67, 21, 2, 28, 33, 3, 81, 7, 37, 0, 105, 1, 21, 2, 28, 33, 0, 108, 101, 1, 111, 111, 103, 3, 81, 20, 13, 55, 0, 114,
+			97, 110, 100, 101, 8, 2, 32, 3, 81, 34, 35, 50, 72, 108, 0, 114, 111, 115, 1, 32, 110, 101, 3, 81, 34, 39, 0, 114, 97, 100,
+			121, 3, 81, 34, 109, 57, 72, 37, 0, 114, 97, 110, 100, 112, 114, 105, 120, 3, 81, 34, 112, 68, 48, 34, 6, 37, 0, 114, 97, 102,
+			102, 105, 116, 105, 3, 81, 34, 112, 83, 6, 37, 47, 37, 0, 114, 117, 110, 103, 101, 8, 2, 32, 3, 81, 34, 114, 50, 75, 0, 114,
+			195, 184, 100, 1, 101, 108, 98, 166, 195, 3, 81, 34, 118, 86, 0, 4, 117, 121, 8, 2, 32, 3, 81, 35, 12, 57, 0, 117, 121, 8,
+			2, 115, 32, 0, 117, 105, 2, 110, 110, 101, 115, 3, 81, 36, 0, 101, 111, 114, 103, 105, 101, 110, 3, 81, 36, 6, 113, 12, 81, 37,
+			108, 50, 0, 105, 110, 115, 98, 101, 114, 103, 3, 81, 36, 50, 89, 71, 118, 12, 81, 0, 4, 105, 1, 101, 114, 2, 109, 101, 110, 28,
+			33, 12, 3, 81, 37, 0, 105, 1, 101, 114, 2, 111, 110, 12, 0, 105, 1, 101, 114, 2, 115, 116, 114, 101, 28, 33, 12, 0, 101, 97,
+			114, 3, 81, 37, 34, 0, 117, 105, 114, 108, 97, 110, 100, 3, 81, 37, 34, 55, 6, 110, 50, 72, 0, 117, 105, 110, 101, 97, 3, 81,
+			37, 50, 6, 36, 110, 0, 117, 105, 108, 108, 111, 116, 105, 110, 101, 3, 81, 37, 57, 40, 47, 6, 37, 12, 50, 13, 0, 111, 100, 97,
+			102, 116, 101, 110, 3, 81, 39, 6, 35, 83, 47, 50, 0, 111, 100, 110, 97, 116, 3, 81, 39, 50, 6, 110, 47, 0, 111, 100, 109, 111,
+			114, 103, 101, 110, 3, 81, 39, 65, 6, 114, 12, 50, 0, 111, 98, 101, 108, 105, 110, 3, 81, 39, 71, 13, 55, 6, 109, 68, 0, 111,
+			100, 100, 97, 103, 3, 81, 39, 72, 6, 110, 0, 117, 100, 115, 107, 101, 108, 111, 118, 8, 2, 32, 3, 81, 40, 89, 81, 13, 55, 114,
+			40, 0, 108, 111, 117, 99, 101, 115, 116, 101, 114, 3, 81, 55, 114, 89, 47, 114, 0, 106, 111, 114, 100, 101, 3, 81, 57, 39, 12, 114,
+			0, 117, 105, 114, 101, 3, 81, 58, 6, 120, 114, 0, 109, 97, 116, 97, 1, 105, 116, 115, 3, 81, 65, 6, 110, 12, 47, 110, 0, 195,
+			166, 1, 110, 3, 81, 109, 0, 97, 116, 101, 115, 8, 2, 32, 3, 81, 109, 57, 47, 89, 0, 97, 98, 108, 101, 8, 3, 81, 109, 57,
+			71, 13, 55, 0, 97, 114, 121, 8, 3, 81, 110, 34, 37, 0, 117, 97, 114, 100, 3, 81, 112, 12, 72, 0, 111, 117, 100, 97, 3, 81,
+			112, 58, 72, 110, 0, 97, 117, 108, 108, 101, 3, 81, 113, 12, 55, 0, 111, 103, 111, 3, 81, 113, 58, 81, 6, 113, 58, 0, 117, 115,
+			116, 97, 118, 3, 81, 113, 89, 47, 35, 58, 0, 117, 108, 102, 115, 116, 114, 101, 97, 109, 3, 81, 114, 55, 83, 89, 47, 34, 37, 12,
+			65, 0, 117, 116, 104, 114, 105, 101, 3, 81, 114, 87, 51, 37, 0, 117, 101, 114, 110, 115, 101, 121, 3, 81, 118, 12, 50, 89, 37, 0,
+			101, 114, 116, 105, 101, 3, 81, 118, 47, 37, 0, 4, 101, 108, 101, 3, 89, 57, 36, 55, 6, 36, 0, 101, 108, 195, 169, 0, 101, 111,
+			105, 115, 1, 114, 117, 111, 98, 3, 90, 58, 6, 112, 0, 101, 111, 105, 115, 105, 1, 114, 117, 111, 98, 3, 90, 58, 112, 89, 6, 37,
+			0, 4, 1, 101, 114, 2, 105, 109, 101, 3, 91, 0, 1, 117, 2, 101, 110, 101, 0, 2, 105, 114, 111, 0, 4, 105, 1, 101, 114, 2,
+			28, 33, 12, 3, 91, 6, 37, 0, 105, 8, 111, 108, 2, 32, 0, 105, 8, 111, 108, 2, 101, 0, 105, 101, 114, 1, 108, 97, 3, 91,
+			6, 37, 34, 0, 101, 1, 110, 105, 2, 110, 105, 195, 184, 114, 3, 91, 36, 0, 4, 101, 110, 101, 114, 2, 32, 100, 101, 109, 3, 91,
+			36, 50, 6, 36, 34, 0, 101, 110, 101, 114, 2, 32, 100, 101, 114, 101, 115, 0, 101, 110, 101, 114, 2, 32, 104, 97, 109, 0, 101, 110,
+			101, 114, 2, 32, 104, 101, 110, 100, 101, 0, 4, 101, 110, 101, 118, 101, 3, 91, 36, 50, 6, 109, 12, 84, 0, 101, 110, 195, 168, 118,
+			101, 0, 101, 114, 97, 114, 100, 8, 3, 91, 36, 51, 6, 112, 12, 0, 105, 1, 111, 108, 116, 97, 110, 3, 91, 37, 0, 105, 98, 114,
+			97, 108, 116, 97, 114, 3, 91, 37, 71, 51, 35, 55, 47, 6, 112, 0, 101, 114, 105, 115, 107, 1, 108, 97, 3, 91, 57, 6, 37, 12,
+			34, 89, 81, 0, 101, 114, 105, 101, 114, 1, 108, 97, 3, 91, 57, 6, 37, 114, 0, 101, 114, 105, 101, 116, 1, 108, 97, 3, 91, 57,
+			108, 34, 6, 37, 13, 72, 0, 101, 110, 100, 97, 114, 109, 3, 91, 110, 50, 72, 6, 35, 34, 65, 0, 4, 101, 114, 1, 101, 110, 2,
+			12, 12, 3, 114, 0, 114, 101, 1, 101, 110, 0, 7, 6, 104, 0, 4, 1, 17, 65, 2, 25, 3, 0, 4, 1, 119, 2, 105, 115, 107,
+			121, 3, 0, 4, 1, 119, 2, 105, 116, 3, 0, 4, 2, 106, 3, 0, 8, 114, 2, 105, 110, 3, 0, 4, 101, 109, 1, 111, 98, 2,
+			101, 3, 6, 109, 12, 65, 0, 101, 109, 101, 1, 111, 98, 2, 32, 0, 111, 1, 103, 2, 115, 116, 3, 39, 58, 0, 117, 101, 1, 108,
+			105, 115, 2, 116, 3, 40, 6, 109, 0, 118, 3, 84, 0, 4, 3, 107, 0, 1, 116, 2, 101, 110, 0, 105, 116, 101, 99, 104, 3, 107,
+			35, 57, 47, 36, 49, 0, 121, 100, 101, 8, 3, 107, 35, 57, 72, 0, 111, 119, 97, 114, 100, 3, 107, 35, 58, 114, 72, 0, 105, 108,
+			108, 97, 114, 121, 3, 107, 36, 55, 13, 16, 36, 0, 101, 97, 116, 3, 107, 37, 12, 47, 0, 105, 101, 114, 111, 103, 108, 121, 2, 102,
+			3, 107, 37, 34, 39, 83, 55, 6, 116, 0, 105, 112, 111, 107, 114, 97, 116, 101, 115, 3, 107, 37, 48, 6, 39, 49, 34, 35, 47, 109,
+			89, 0, 111, 109, 101, 114, 3, 107, 39, 65, 6, 36, 34, 0, 117, 103, 104, 3, 107, 57, 40, 12, 0, 117, 103, 101, 115, 8, 2, 32,
+			3, 107, 57, 40, 12, 89, 0, 111, 117, 115, 116, 111, 110, 3, 107, 57, 40, 12, 89, 72, 114, 50, 0, 97, 105, 103, 8, 3, 107, 109,
+			57, 81, 0, 101, 97, 118, 121, 3, 107, 109, 84, 37, 0, 101, 97, 116, 104, 101, 114, 3, 107, 109, 86, 114, 0, 97, 97, 103, 8, 2,
+			32, 3, 107, 110, 57, 0, 97, 119, 97, 105, 105, 3, 107, 110, 58, 6, 35, 12, 57, 37, 0, 105, 103, 104, 104, 97, 116, 3, 107, 112,
+			12, 57, 107, 110, 72, 0, 111, 117, 115, 101, 99, 111, 97, 116, 3, 107, 112, 40, 89, 49, 39, 58, 72, 0, 97, 119, 116, 104, 111, 114,
+			110, 101, 3, 107, 113, 12, 87, 39, 50, 0, 111, 109, 101, 3, 107, 113, 58, 65, 0, 97, 119, 107, 3, 107, 114, 12, 49, 0, 111, 116,
+			108, 105, 110, 101, 3, 107, 114, 47, 55, 35, 12, 57, 50, 0, 117, 99, 107, 108, 101, 98, 101, 114, 114, 121, 3, 107, 114, 49, 13, 55,
+			71, 109, 34, 37, 0, 111, 110, 101, 121, 3, 107, 114, 50, 37, 0, 117, 110, 116, 8, 2, 32, 3, 107, 114, 50, 47, 0, 111, 108, 108,
+			121, 3, 107, 114, 55, 37, 0, 117, 109, 118, 101, 101, 3, 107, 114, 65, 84, 37, 12, 0, 117, 109, 118, 101, 101, 114, 3, 107, 114, 65,
+			84, 37, 12, 114, 0, 117, 100, 115, 111, 110, 3, 107, 114, 72, 89, 114, 50, 0, 101, 114, 98, 8, 2, 32, 3, 107, 118, 12, 71, 0,
+			101, 97, 114, 115, 116, 8, 3, 107, 118, 89, 47, 0, 101, 105, 109, 3, 107, 120, 65, 0, 101, 114, 99, 117, 108, 101, 8, 3, 109, 34,
+			49, 6, 116, 55, 0, 7, 6, 105, 0, 4, 1, 110, 101, 103, 110, 105, 2, 195, 184, 114, 3, 0, 4, 1, 116, 2, 195, 184, 115, 3,
+			0, 4, 1, 117, 106, 2, 99, 101, 3, 0, 1, 118, 2, 110, 100, 114, 105, 107, 12, 3, 0, 107, 1, 21, 2, 101, 114, 28, 33, 12,
+			12, 3, 2, 37, 49, 0, 4, 1, 103, 101, 114, 116, 115, 109, 105, 104, 2, 109, 115, 3, 6, 36, 0, 1, 107, 121, 114, 2, 110, 100,
+			0, 1, 114, 101, 2, 110, 100, 114, 0, 1, 114, 121, 98, 97, 108, 2, 110, 116, 0, 1, 115, 116, 101, 108, 2, 110, 100, 105, 103, 0,
+			8, 108, 121, 99, 2, 110, 100, 0, 8, 114, 116, 115, 105, 100, 2, 107, 116, 0, 8, 115, 98, 97, 2, 110, 116, 0, 8, 116, 115, 101,
+			118, 2, 110, 100, 105, 0, 8, 116, 115, 110, 105, 2, 110, 107, 116, 0, 110, 100, 101, 1, 10, 2, 28, 33, 3, 6, 36, 50, 13, 0,
+			110, 103, 1, 109, 111, 100, 2, 111, 3, 6, 36, 50, 81, 0, 110, 100, 101, 1, 10, 2, 114, 28, 33, 3, 6, 36, 50, 114, 0, 108,
+			1, 116, 115, 97, 112, 10, 2, 28, 33, 12, 12, 12, 12, 3, 6, 36, 55, 0, 4, 1, 100, 111, 115, 111, 114, 112, 3, 6, 37, 0,
+			1, 100, 114, 166, 195, 118, 0, 1, 100, 117, 111, 104, 2, 110, 105, 0, 1, 102, 108, 121, 115, 2, 100, 101, 0, 1, 103, 105, 115, 107,
+			101, 2, 98, 101, 108, 0, 1, 103, 110, 117, 102, 2, 98, 101, 108, 0, 1, 104, 97, 116, 2, 116, 105, 0, 1, 104, 97, 119, 115, 2,
+			108, 105, 0, 1, 107, 2, 101, 116, 12, 0, 1, 108, 101, 98, 111, 2, 115, 107, 0, 1, 108, 105, 102, 2, 115, 116, 0, 1, 108, 108,
+			105, 99, 105, 112, 109, 97, 2, 110, 0, 1, 108, 111, 98, 2, 118, 105, 97, 0, 1, 108, 111, 115, 115, 117, 109, 2, 110, 105, 0, 1,
+			109, 10, 2, 28, 33, 0, 1, 109, 97, 2, 103, 111, 0, 1, 109, 97, 18, 75, 2, 108, 108, 97, 0, 1, 109, 97, 107, 2, 108, 108,
+			101, 0, 1, 109, 105, 2, 100, 108, 101, 114, 116, 105, 100, 0, 1, 110, 97, 112, 109, 97, 107, 2, 108, 101, 0, 1, 110, 101, 112, 2,
+			98, 101, 108, 0, 1, 110, 111, 112, 115, 105, 100, 2, 98, 101, 108, 0, 1, 112, 115, 97, 2, 99, 0, 1, 114, 10, 2, 101, 116, 28,
+			33, 0, 1, 114, 97, 109, 2, 97, 0, 1, 114, 97, 112, 2, 115, 0, 1, 114, 97, 116, 2, 102, 0, 1, 114, 100, 97, 109, 2, 100,
+			0, 1, 114, 100, 101, 122, 110, 101, 98, 2, 110, 0, 1, 114, 101, 104, 115, 2, 102, 0, 1, 114, 101, 118, 111, 116, 110, 105, 114, 98,
+			2, 108, 116, 101, 0, 1, 114, 105, 112, 115, 97, 2, 110, 0, 1, 114, 110, 101, 104, 2, 118, 101, 110, 100, 101, 0, 1, 114, 114, 111,
+			104, 2, 98, 101, 108, 0, 1, 115, 10, 2, 28, 33, 0, 1, 115, 97, 103, 97, 109, 0, 1, 115, 97, 107, 2, 110, 111, 0, 1, 115,
+			105, 118, 2, 98, 101, 108, 0, 1, 115, 107, 101, 108, 102, 2, 98, 101, 108, 0, 1, 115, 108, 105, 116, 2, 100, 101, 0, 1, 115, 110,
+			101, 115, 2, 98, 101, 108, 0, 1, 115, 114, 101, 118, 101, 114, 2, 98, 101, 108, 0, 1, 115, 114, 101, 118, 101, 114, 114, 105, 2, 98,
+			101, 108, 0, 1, 115, 115, 105, 115, 115, 105, 109, 2, 112, 112, 105, 0, 1, 115, 117, 97, 108, 112, 2, 98, 101, 108, 0, 1, 116, 97,
+			112, 109, 111, 107, 2, 98, 101, 108, 0, 1, 116, 107, 101, 102, 114, 101, 112, 2, 98, 101, 108, 0, 1, 116, 114, 101, 118, 110, 111, 107,
+			2, 98, 101, 108, 0, 1, 116, 114, 111, 115, 2, 101, 0, 1, 116, 115, 101, 103, 103, 117, 115, 2, 98, 101, 108, 0, 1, 116, 120, 105,
+			115, 2, 110, 115, 107, 0, 1, 118, 101, 114, 114, 105, 112, 115, 2, 112, 0, 8, 98, 105, 108, 97, 0, 8, 98, 108, 97, 2, 110, 111,
+			0, 8, 98, 111, 102, 0, 8, 99, 110, 97, 114, 102, 2, 115, 99, 111, 0, 8, 99, 110, 105, 114, 112, 2, 112, 0, 8, 99, 110, 111,
+			107, 2, 115, 0, 8, 99, 114, 101, 115, 107, 101, 2, 116, 115, 0, 8, 99, 166, 195, 114, 112, 2, 115, 0, 8, 100, 97, 114, 2, 115,
+			101, 0, 8, 100, 101, 98, 98, 97, 0, 8, 100, 101, 102, 102, 117, 109, 2, 115, 101, 0, 8, 100, 105, 102, 114, 101, 112, 0, 8, 100,
+			110, 97, 98, 2, 116, 0, 8, 100, 110, 97, 107, 115, 114, 97, 109, 2, 115, 0, 8, 100, 111, 107, 111, 114, 107, 2, 108, 108, 0, 8,
+			100, 111, 108, 101, 109, 0, 8, 100, 111, 114, 97, 112, 0, 8, 100, 111, 115, 112, 97, 114, 0, 8, 100, 166, 195, 112, 111, 116, 114, 111,
+			0, 8, 101, 114, 2, 115, 116, 101, 114, 0, 8, 102, 105, 99, 117, 114, 107, 2, 107, 115, 0, 8, 103, 97, 109, 2, 32, 0, 8, 103,
+			97, 109, 2, 101, 110, 32, 0, 8, 103, 97, 109, 2, 115, 116, 101, 114, 0, 8, 107, 114, 97, 109, 2, 115, 101, 0, 8, 107, 115, 97,
+			109, 2, 110, 0, 8, 108, 97, 103, 101, 109, 111, 114, 107, 97, 0, 8, 108, 97, 107, 2, 98, 101, 114, 0, 8, 108, 97, 109, 111, 110,
+			97, 0, 8, 108, 100, 101, 109, 2, 100, 101, 110, 104, 101, 100, 0, 8, 108, 101, 102, 102, 97, 116, 115, 0, 8, 108, 101, 116, 97, 108,
+			105, 102, 0, 8, 108, 102, 102, 117, 115, 0, 8, 108, 102, 110, 111, 107, 2, 107, 116, 0, 8, 108, 105, 102, 111, 100, 166, 195, 112, 0,
+			8, 108, 105, 102, 111, 105, 108, 98, 105, 98, 0, 8, 108, 105, 102, 111, 109, 111, 104, 0, 8, 108, 105, 102, 111, 111, 122, 0, 8, 108,
+			105, 102, 111, 114, 101, 116, 101, 104, 0, 8, 108, 105, 102, 111, 114, 107, 101, 110, 0, 8, 108, 105, 109, 2, 116, 115, 0, 8, 108, 108,
+			101, 99, 110, 97, 107, 0, 8, 108, 111, 2, 118, 101, 110, 0, 8, 108, 111, 2, 118, 105, 97, 0, 8, 108, 111, 107, 110, 97, 108, 101,
+			109, 0, 8, 108, 111, 115, 2, 100, 0, 8, 108, 115, 117, 109, 2, 109, 0, 8, 108, 117, 107, 2, 115, 115, 0, 8, 109, 97, 114, 121,
+			112, 2, 100, 0, 8, 109, 101, 114, 2, 115, 0, 8, 110, 105, 109, 2, 115, 116, 101, 114, 0, 8, 111, 114, 101, 116, 115, 97, 2, 100,
+			101, 0, 8, 112, 97, 107, 2, 116, 101, 108, 0, 8, 112, 97, 107, 2, 116, 108, 0, 8, 112, 97, 112, 2, 114, 0, 8, 112, 97, 114,
+			101, 116, 0, 8, 112, 97, 116, 2, 114, 0, 8, 112, 101, 107, 115, 97, 109, 0, 8, 112, 111, 107, 0, 8, 112, 111, 107, 115, 101, 108,
+			101, 116, 0, 8, 112, 111, 107, 115, 111, 107, 110, 111, 114, 98, 0, 8, 112, 111, 107, 115, 111, 108, 121, 116, 107, 97, 100, 0, 8, 112,
+			111, 107, 115, 111, 114, 116, 115, 97, 103, 0, 8, 112, 111, 107, 115, 111, 116, 101, 116, 115, 0, 8, 112, 111, 107, 115, 111, 116, 107, 101,
+			114, 0, 8, 112, 111, 107, 115, 111, 116, 111, 0, 8, 112, 111, 114, 116, 110, 97, 108, 105, 102, 0, 8, 112, 111, 114, 116, 110, 97, 115,
+			105, 109, 0, 8, 112, 111, 114, 116, 110, 101, 0, 8, 112, 111, 116, 111, 115, 105, 0, 8, 112, 111, 116, 117, 0, 8, 112, 111, 116, 117,
+			0, 8, 112, 121, 116, 111, 101, 114, 101, 116, 115, 0, 8, 112, 121, 116, 111, 101, 114, 114, 101, 117, 103, 97, 100, 0, 8, 112, 121, 116,
+			111, 110, 97, 118, 108, 97, 103, 0, 8, 112, 121, 116, 111, 110, 111, 109, 0, 8, 112, 121, 116, 111, 116, 105, 108, 0, 8, 112, 121, 116,
+			111, 116, 117, 97, 0, 8, 114, 101, 118, 121, 116, 0, 8, 114, 111, 103, 101, 116, 97, 107, 0, 8, 114, 111, 103, 108, 97, 2, 116, 109,
+			101, 0, 8, 114, 111, 109, 166, 195, 104, 2, 100, 0, 8, 114, 112, 101, 114, 2, 115, 101, 0, 8, 114, 112, 101, 114, 116, 110, 101, 2,
+			115, 101, 0, 8, 114, 116, 110, 101, 118, 2, 107, 0, 8, 115, 108, 101, 118, 2, 103, 110, 0, 8, 115, 115, 101, 109, 2, 97, 115, 0,
+			8, 116, 105, 103, 101, 108, 2, 109, 0, 8, 116, 105, 108, 111, 112, 0, 8, 116, 105, 108, 111, 112, 0, 8, 116, 110, 105, 2, 109, 0,
+			8, 116, 114, 97, 2, 107, 0, 8, 116, 114, 97, 109, 2, 110, 105, 0, 8, 116, 114, 97, 112, 2, 115, 107, 0, 8, 116, 115, 101, 116,
+			2, 107, 101, 108, 0, 8, 116, 115, 101, 116, 2, 107, 108, 0, 8, 116, 115, 117, 106, 2, 116, 115, 0, 8, 118, 97, 2, 115, 0, 8,
+			118, 97, 114, 103, 2, 100, 0, 8, 118, 101, 108, 111, 109, 2, 116, 0, 8, 118, 105, 99, 2, 108, 0, 101, 1, 116, 114, 111, 115, 2,
+			32, 0, 115, 1, 109, 101, 114, 2, 32, 0, 101, 8, 118, 108, 97, 115, 3, 6, 37, 12, 0, 103, 101, 8, 108, 100, 101, 118, 3, 6,
+			37, 13, 0, 103, 101, 118, 101, 108, 1, 108, 108, 97, 3, 6, 37, 13, 84, 109, 55, 0, 108, 1, 10, 2, 28, 33, 12, 12, 12, 12,
+			3, 6, 37, 55, 0, 4, 108, 108, 101, 1, 114, 100, 97, 107, 115, 101, 3, 6, 37, 55, 57, 108, 0, 108, 108, 101, 1, 114, 100, 97,
+			112, 115, 101, 0, 108, 108, 101, 1, 114, 100, 97, 118, 107, 0, 108, 108, 101, 1, 116, 115, 97, 98, 0, 103, 111, 110, 101, 1, 116, 110,
+			97, 3, 6, 37, 81, 39, 50, 13, 0, 115, 1, 117, 111, 108, 2, 101, 3, 6, 37, 89, 0, 115, 109, 101, 1, 10, 2, 114, 28, 33,
+			3, 6, 37, 89, 65, 114, 0, 111, 110, 1, 114, 111, 3, 6, 37, 114, 50, 0, 114, 116, 117, 97, 108, 1, 118, 2, 32, 114, 101, 97,
+			108, 105, 116, 121, 3, 6, 108, 76, 40, 20, 13, 59, 0, 1, 114, 107, 115, 10, 2, 112, 116, 3, 6, 109, 0, 4, 8, 114, 107, 109,
+			111, 2, 110, 103, 3, 7, 36, 0, 107, 1, 114, 10, 2, 107, 28, 33, 0, 107, 1, 114, 21, 2, 107, 28, 33, 12, 12, 12, 12, 0,
+			107, 1, 116, 115, 101, 21, 2, 107, 28, 33, 12, 12, 12, 0, 107, 1, 114, 10, 2, 28, 33, 12, 12, 3, 7, 36, 49, 0, 4, 1,
+			116, 10, 2, 28, 33, 12, 3, 7, 37, 0, 1, 116, 110, 101, 108, 97, 118, 2, 110, 111, 0, 8, 108, 101, 2, 116, 101, 0, 8, 116,
+			114, 101, 112, 115, 107, 101, 2, 115, 101, 0, 107, 1, 10, 2, 107, 28, 33, 12, 0, 107, 1, 21, 2, 107, 28, 33, 12, 12, 12, 0,
+			107, 1, 116, 115, 97, 21, 2, 107, 28, 33, 12, 12, 12, 0, 4, 107, 1, 21, 2, 28, 33, 12, 12, 12, 3, 7, 37, 49, 0, 107,
+			1, 114, 111, 10, 2, 28, 33, 12, 12, 0, 100, 1, 10, 2, 28, 33, 3, 7, 37, 86, 0, 115, 109, 101, 1, 10, 2, 28, 33, 3,
+			7, 37, 89, 65, 13, 0, 1, 114, 10, 2, 117, 109, 28, 33, 3, 8, 8, 37, 0, 103, 1, 109, 101, 112, 108, 166, 195, 106, 104, 100,
+			117, 103, 3, 8, 35, 57, 0, 4, 1, 109, 10, 2, 115, 107, 28, 33, 3, 8, 37, 0, 1, 114, 111, 108, 97, 107, 2, 117, 115, 0,
+			101, 1, 10, 2, 114, 101, 28, 33, 3, 8, 37, 7, 36, 0, 101, 1, 10, 2, 108, 105, 118, 28, 33, 3, 8, 37, 13, 0, 101, 110,
+			1, 10, 2, 28, 33, 3, 8, 37, 13, 50, 0, 116, 117, 109, 1, 21, 2, 109, 28, 33, 3, 8, 37, 47, 113, 0, 116, 117, 109, 1,
+			21, 2, 28, 33, 3, 8, 37, 47, 113, 65, 0, 107, 1, 21, 2, 101, 114, 101, 110, 28, 33, 12, 12, 3, 8, 37, 49, 0, 4, 107,
+			101, 114, 1, 10, 2, 28, 33, 12, 3, 8, 37, 49, 114, 0, 107, 101, 114, 1, 109, 10, 2, 101, 28, 33, 12, 12, 0, 107, 101, 114,
+			1, 110, 97, 107, 21, 2, 101, 32, 28, 33, 12, 12, 12, 0, 107, 101, 114, 1, 114, 116, 10, 2, 101, 28, 33, 12, 0, 107, 101, 114,
+			1, 116, 10, 2, 101, 28, 33, 12, 0, 4, 115, 107, 1, 10, 2, 32, 28, 33, 3, 8, 37, 89, 81, 0, 115, 107, 1, 10, 2, 101,
+			28, 33, 0, 115, 107, 1, 10, 2, 116, 28, 33, 0, 101, 1, 10, 2, 28, 33, 3, 8, 37, 108, 0, 117, 109, 1, 10, 2, 109, 28,
+			33, 3, 8, 37, 113, 0, 117, 109, 1, 10, 2, 28, 33, 3, 8, 37, 113, 65, 0, 101, 1, 115, 10, 2, 28, 33, 3, 8, 57, 108,
+			0, 4, 101, 1, 10, 2, 114, 28, 33, 3, 8, 57, 114, 0, 101, 114, 1, 108, 97, 114, 116, 115, 117, 97, 0, 109, 112, 114, 111, 109,
+			112, 116, 117, 3, 21, 102, 114, 0, 116, 104, 101, 1, 108, 98, 3, 35, 12, 57, 86, 0, 103, 110, 1, 115, 101, 100, 3, 35, 37, 50,
+			0, 4, 1, 108, 115, 117, 115, 107, 117, 108, 2, 110, 101, 114, 3, 35, 57, 0, 1, 114, 2, 108, 101, 121, 0, 1, 116, 2, 109, 105,
+			110, 103, 0, 1, 116, 102, 111, 115, 2, 99, 101, 0, 2, 111, 119, 97, 0, 103, 104, 1, 104, 0, 103, 104, 1, 108, 2, 116, 101, 114,
+			0, 106, 1, 110, 2, 109, 101, 103, 101, 110, 0, 107, 101, 8, 112, 115, 3, 35, 57, 49, 0, 115, 108, 97, 110, 100, 1, 32, 103, 110,
+			111, 108, 3, 35, 57, 55, 13, 50, 72, 0, 109, 101, 1, 116, 2, 111, 117, 116, 3, 35, 57, 65, 0, 4, 109, 101, 115, 1, 114, 103,
+			3, 35, 57, 65, 89, 0, 109, 101, 115, 1, 116, 32, 107, 114, 111, 121, 32, 119, 101, 110, 0, 100, 97, 104, 111, 3, 35, 57, 72, 110,
+			107, 6, 39, 58, 0, 118, 101, 1, 108, 99, 3, 35, 57, 84, 0, 118, 97, 110, 104, 111, 101, 3, 35, 57, 84, 13, 50, 107, 6, 39,
+			58, 0, 114, 101, 1, 119, 3, 35, 57, 114, 0, 114, 111, 110, 8, 2, 32, 3, 35, 57, 114, 50, 0, 4, 1, 17, 67, 2, 109, 17,
+			67, 3, 36, 0, 1, 17, 67, 2, 109, 18, 71, 0, 1, 17, 67, 2, 110, 103, 12, 0, 1, 17, 67, 2, 110, 107, 0, 1, 18, 67,
+			2, 112, 0, 1, 18, 67, 2, 112, 112, 0, 1, 18, 68, 2, 18, 66, 11, 12, 0, 1, 18, 68, 2, 107, 0, 1, 18, 71, 2, 107,
+			0, 1, 18, 71, 2, 108, 108, 101, 0, 1, 18, 72, 2, 102, 116, 101, 0, 1, 18, 73, 2, 108, 108, 0, 1, 18, 74, 2, 18, 68,
+			11, 97, 12, 0, 1, 18, 74, 2, 107, 115, 0, 1, 18, 74, 2, 112, 112, 0, 1, 18, 74, 2, 120, 0, 1, 98, 2, 116, 114, 101,
+			0, 1, 98, 2, 116, 116, 101, 114, 0, 1, 100, 2, 110, 103, 111, 0, 1, 100, 2, 115, 107, 0, 1, 102, 2, 18, 73, 12, 0, 1,
+			102, 2, 107, 115, 0, 1, 102, 2, 110, 108, 97, 110, 100, 0, 1, 102, 2, 110, 116, 101, 32, 0, 1, 102, 2, 120, 0, 1, 104, 2,
+			109, 12, 0, 1, 104, 2, 110, 100, 0, 1, 107, 2, 18, 74, 12, 12, 0, 1, 107, 2, 109, 115, 101, 0, 1, 107, 111, 109, 115, 2,
+			110, 103, 0, 1, 107, 115, 2, 108, 12, 12, 0, 1, 107, 115, 2, 110, 0, 1, 108, 2, 18, 66, 0, 1, 108, 2, 18, 73, 0, 1,
+			108, 2, 108, 108, 97, 0, 1, 108, 2, 110, 110, 101, 100, 0, 1, 108, 2, 110, 115, 0, 1, 108, 2, 110, 116, 0, 1, 108, 17, 67,
+			2, 112, 0, 1, 108, 18, 73, 2, 18, 72, 0, 1, 108, 103, 2, 109, 0, 1, 108, 107, 2, 107, 32, 0, 1, 108, 112, 2, 103, 116,
+			12, 0, 1, 108, 115, 2, 107, 0, 1, 109, 2, 107, 108, 101, 114, 0, 1, 109, 2, 115, 116, 101, 0, 1, 110, 2, 112, 0, 1, 110,
+			2, 115, 115, 101, 0, 1, 110, 2, 116, 116, 101, 110, 0, 1, 110, 107, 2, 112, 0, 1, 112, 2, 108, 114, 0, 1, 112, 2, 115, 115,
+			101, 0, 1, 112, 115, 2, 100, 115, 0, 1, 112, 115, 2, 108, 0, 1, 114, 2, 18, 66, 11, 0, 1, 114, 2, 18, 73, 12, 0, 1,
+			114, 2, 18, 75, 0, 1, 114, 2, 102, 0, 1, 114, 2, 103, 116, 105, 0, 1, 114, 17, 67, 2, 108, 108, 0, 1, 114, 17, 67, 2,
+			109, 17, 67, 0, 1, 114, 18, 71, 2, 110, 116, 0, 1, 114, 100, 2, 115, 116, 105, 103, 0, 1, 114, 102, 2, 115, 116, 101, 100, 101,
+			32, 0, 1, 114, 102, 2, 115, 116, 101, 100, 101, 115, 32, 0, 1, 114, 103, 2, 109, 0, 1, 114, 107, 2, 99, 107, 101, 116, 0, 1,
+			114, 107, 2, 115, 116, 105, 32, 0, 1, 114, 107, 2, 115, 116, 117, 115, 0, 1, 114, 112, 2, 110, 0, 1, 114, 118, 2, 115, 115, 0,
+			1, 115, 2, 18, 66, 18, 72, 0, 1, 115, 2, 100, 32, 0, 1, 115, 2, 100, 100, 101, 0, 1, 115, 2, 100, 110, 105, 110, 103, 0,
+			1, 115, 2, 107, 17, 67, 0, 1, 115, 2, 108, 107, 0, 1, 115, 2, 110, 107, 12, 12, 0, 1, 115, 2, 112, 112, 0, 1, 116, 2,
+			18, 66, 12, 0, 1, 116, 2, 103, 103, 12, 0, 1, 116, 2, 108, 0, 1, 116, 115, 2, 108, 32, 104, 97, 109, 0, 1, 116, 115, 2,
+			108, 32, 111, 112, 32, 0, 1, 116, 115, 2, 108, 108, 105, 110, 103, 12, 12, 0, 1, 116, 115, 100, 110, 166, 195, 116, 2, 107, 12, 0,
+			1, 116, 115, 101, 98, 2, 107, 12, 12, 0, 1, 116, 115, 101, 98, 2, 108, 0, 1, 116, 115, 101, 98, 166, 195, 108, 2, 102, 116, 0,
+			1, 116, 115, 101, 100, 97, 112, 115, 2, 107, 0, 1, 116, 115, 101, 103, 103, 121, 109, 2, 107, 0, 1, 116, 115, 101, 108, 165, 195, 110,
+			2, 107, 12, 0, 1, 116, 115, 101, 110, 103, 101, 116, 2, 102, 116, 0, 1, 116, 115, 101, 114, 111, 102, 2, 108, 0, 1, 116, 115, 103,
+			97, 108, 115, 2, 102, 116, 0, 1, 116, 115, 105, 98, 2, 107, 12, 12, 0, 1, 116, 115, 107, 166, 195, 108, 98, 2, 102, 116, 0, 1,
+			116, 115, 109, 105, 108, 2, 102, 116, 0, 1, 116, 115, 115, 116, 110, 97, 121, 108, 98, 2, 102, 116, 0, 1, 116, 115, 116, 110, 97, 121,
+			108, 98, 2, 102, 116, 0, 1, 116, 115, 118, 105, 110, 107, 2, 107, 0, 1, 118, 2, 18, 66, 0, 1, 118, 2, 18, 66, 17, 67, 12,
+			12, 0, 1, 118, 2, 108, 32, 12, 0, 1, 118, 2, 110, 116, 101, 114, 0, 1, 118, 2, 110, 116, 114, 101, 0, 1, 118, 2, 115, 32,
+			103, 114, 97, 100, 0, 1, 118, 2, 115, 104, 0, 1, 118, 2, 115, 107, 12, 0, 1, 118, 2, 115, 110, 101, 0, 1, 118, 2, 115, 115,
+			0, 1, 118, 2, 115, 116, 32, 105, 107, 107, 101, 0, 1, 118, 18, 72, 2, 115, 116, 12, 0, 1, 118, 32, 101, 107, 115, 110, 97, 103,
+			2, 115, 116, 32, 0, 1, 118, 97, 106, 2, 115, 116, 0, 1, 118, 101, 103, 2, 110, 115, 116, 0, 1, 118, 104, 2, 108, 107, 12, 0,
+			1, 118, 111, 106, 2, 115, 116, 0, 1, 118, 115, 2, 18, 74, 17, 67, 0, 1, 119, 116, 2, 115, 116, 0, 2, 107, 107, 101, 0, 2,
+			109, 112, 0, 2, 109, 112, 111, 0, 2, 110, 99, 0, 2, 110, 100, 0, 2, 110, 102, 97, 110, 116, 0, 2, 110, 110, 0, 2, 110, 110,
+			101, 0, 2, 110, 115, 0, 8, 2, 110, 12, 0, 8, 102, 2, 107, 32, 0, 8, 108, 2, 100, 116, 32, 0, 8, 109, 2, 115, 116, 32,
+			0, 8, 110, 2, 18, 75, 0, 8, 114, 100, 2, 108, 0, 8, 116, 2, 103, 32, 12, 0, 8, 116, 2, 110, 0, 8, 116, 2, 115, 107,
+			101, 32, 0, 8, 118, 2, 102, 116, 32, 0, 8, 118, 2, 115, 116, 32, 0, 100, 1, 118, 2, 115, 116, 0, 100, 8, 109, 2, 116, 0,
+			1, 118, 2, 115, 116, 110, 111, 107, 3, 36, 4, 0, 107, 97, 100, 101, 108, 108, 101, 1, 114, 102, 3, 36, 49, 110, 72, 6, 109, 55,
+			108, 0, 107, 97, 100, 101, 108, 108, 101, 114, 1, 114, 102, 3, 36, 49, 110, 72, 6, 109, 55, 114, 0, 4, 110, 100, 1, 102, 2, 101,
+			108, 195, 184, 110, 3, 36, 50, 0, 110, 100, 2, 101, 108, 115, 101, 12, 0, 110, 117, 112, 1, 112, 3, 36, 50, 6, 114, 48, 0, 110,
+			103, 111, 1, 98, 3, 36, 50, 81, 39, 0, 110, 115, 105, 100, 101, 8, 2, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 3, 36,
+			50, 89, 35, 57, 72, 0, 110, 115, 105, 100, 101, 114, 8, 3, 36, 50, 89, 35, 57, 72, 114, 0, 110, 115, 116, 105, 116, 117, 116, 105,
+			111, 110, 8, 3, 36, 50, 89, 47, 37, 47, 40, 91, 6, 39, 50, 0, 110, 115, 116, 105, 116, 117, 116, 105, 111, 110, 3, 36, 50, 89,
+			47, 37, 47, 40, 91, 39, 50, 0, 109, 112, 111, 116, 101, 110, 3, 36, 65, 48, 39, 47, 109, 50, 0, 109, 97, 108, 97, 121, 97, 1,
+			104, 3, 36, 65, 110, 55, 6, 35, 57, 110, 0, 103, 1, 114, 2, 110, 105, 110, 103, 3, 36, 81, 0, 107, 115, 101, 116, 1, 107, 2,
+			32, 3, 36, 81, 89, 13, 86, 0, 115, 1, 112, 2, 32, 3, 36, 89, 0, 115, 105, 107, 1, 114, 2, 101, 3, 36, 89, 37, 49, 0,
+			4, 3, 37, 0, 1, 18, 67, 2, 18, 71, 101, 0, 1, 18, 67, 2, 18, 71, 114, 101, 0, 1, 18, 68, 2, 18, 75, 97, 0, 1,
+			18, 68, 2, 107, 18, 69, 0, 1, 18, 68, 2, 107, 101, 0, 1, 18, 71, 2, 107, 101, 0, 1, 98, 2, 107, 105, 110, 105, 0, 1,
+			98, 2, 107, 117, 98, 101, 0, 1, 98, 2, 108, 108, 101, 32, 12, 0, 1, 98, 2, 108, 108, 101, 110, 32, 12, 0, 1, 98, 2, 108,
+			108, 101, 114, 32, 12, 0, 1, 98, 2, 108, 108, 101, 116, 12, 0, 1, 98, 2, 112, 12, 0, 1, 99, 2, 110, 110, 0, 1, 100, 2,
+			107, 116, 0, 1, 100, 2, 115, 18, 75, 97, 0, 1, 100, 2, 115, 107, 101, 116, 116, 0, 1, 100, 2, 115, 107, 111, 0, 1, 100, 2,
+			115, 107, 114, 101, 112, 97, 110, 115, 0, 1, 100, 2, 115, 107, 114, 101, 116, 0, 1, 100, 2, 115, 107, 114, 105, 109, 105, 0, 1, 100,
+			2, 115, 107, 117, 0, 1, 100, 2, 115, 107, 118, 97, 0, 1, 100, 110, 105, 2, 115, 107, 0, 1, 100, 114, 111, 106, 2, 115, 107, 0,
+			1, 102, 2, 107, 17, 67, 18, 69, 0, 1, 102, 2, 110, 107, 117, 108, 0, 1, 102, 2, 110, 107, 195, 166, 109, 0, 1, 102, 2, 110,
+			115, 107, 121, 0, 1, 102, 97, 114, 103, 2, 115, 107, 0, 1, 102, 97, 114, 116, 2, 107, 0, 1, 102, 110, 111, 107, 2, 115, 107, 101,
+			114, 0, 1, 102, 110, 111, 107, 2, 115, 107, 101, 114, 101, 0, 1, 104, 2, 110, 0, 1, 104, 99, 2, 107, 12, 0, 1, 107, 2, 12,
+			12, 0, 1, 107, 2, 18, 74, 18, 76, 12, 12, 0, 1, 107, 2, 109, 110, 105, 110, 103, 12, 0, 1, 107, 2, 115, 116, 101, 12, 0,
+			1, 107, 105, 98, 2, 110, 105, 0, 1, 107, 115, 2, 17, 67, 116, 0, 1, 107, 115, 2, 107, 12, 0, 1, 107, 115, 2, 108, 105, 102,
+			116, 12, 0, 1, 107, 115, 2, 108, 195, 184, 98, 12, 12, 0, 1, 107, 115, 2, 109, 111, 12, 0, 1, 107, 115, 21, 2, 108, 100, 12,
+			12, 0, 1, 108, 2, 107, 118, 12, 0, 1, 108, 2, 109, 110, 105, 12, 0, 1, 108, 2, 115, 107, 0, 1, 108, 97, 105, 99, 101, 112,
+			115, 2, 115, 116, 0, 1, 108, 98, 117, 112, 0, 1, 108, 105, 98, 2, 115, 0, 1, 108, 107, 2, 115, 116, 114, 0, 1, 108, 107, 121,
+			99, 21, 2, 115, 116, 0, 1, 108, 112, 2, 18, 66, 18, 76, 12, 0, 1, 108, 112, 2, 107, 0, 1, 108, 114, 111, 102, 2, 115, 0,
+			1, 108, 115, 2, 109, 0, 1, 109, 2, 107, 115, 116, 117, 114, 0, 1, 109, 2, 115, 116, 97, 110, 107, 101, 0, 1, 110, 2, 99, 104,
+			101, 0, 1, 110, 2, 107, 18, 69, 0, 1, 110, 100, 108, 105, 118, 2, 115, 0, 1, 110, 101, 108, 2, 110, 0, 1, 110, 101, 112, 2,
+			115, 0, 1, 110, 105, 108, 107, 2, 107, 0, 1, 110, 107, 2, 118, 0, 1, 110, 107, 101, 116, 2, 107, 0, 1, 112, 2, 110, 115, 101,
+			108, 0, 1, 112, 2, 110, 115, 108, 101, 114, 0, 1, 112, 2, 112, 12, 0, 1, 112, 114, 97, 104, 2, 107, 115, 0, 1, 112, 115, 2,
+			108, 100, 0, 1, 114, 2, 18, 73, 18, 69, 12, 0, 1, 114, 2, 18, 75, 17, 67, 18, 69, 0, 1, 114, 2, 18, 75, 18, 69, 0,
+			1, 114, 2, 18, 75, 18, 76, 0, 1, 114, 2, 99, 101, 0, 1, 114, 2, 115, 116, 105, 107, 12, 0, 1, 114, 10, 2, 115, 107, 0,
+			1, 114, 18, 66, 2, 108, 108, 0, 1, 114, 101, 116, 110, 97, 102, 110, 105, 0, 1, 114, 102, 2, 102, 12, 0, 1, 114, 102, 2, 103,
+			0, 1, 114, 102, 2, 107, 101, 110, 0, 1, 114, 102, 2, 107, 118, 97, 114, 116, 101, 114, 0, 1, 114, 102, 2, 115, 116, 97, 100, 0,
+			1, 114, 102, 2, 115, 116, 101, 100, 0, 1, 114, 103, 2, 18, 73, 12, 0, 1, 114, 112, 2, 109, 12, 0, 1, 114, 112, 2, 115, 0,
+			1, 114, 116, 2, 18, 73, 12, 0, 1, 114, 116, 2, 108, 108, 0, 1, 115, 101, 98, 2, 100, 100, 101, 0, 1, 115, 117, 109, 2, 107,
+			0, 1, 116, 2, 100, 12, 0, 1, 116, 2, 107, 97, 12, 0, 1, 116, 2, 110, 18, 76, 0, 1, 116, 2, 110, 110, 105, 116, 117, 115,
+			0, 1, 116, 21, 2, 107, 32, 12, 12, 0, 1, 116, 105, 108, 111, 112, 2, 107, 0, 1, 116, 107, 101, 106, 111, 114, 112, 2, 108, 0,
+			1, 116, 110, 97, 0, 1, 116, 110, 101, 118, 2, 108, 0, 1, 116, 114, 97, 2, 107, 0, 1, 116, 114, 97, 112, 0, 1, 116, 115, 2,
+			108, 32, 111, 118, 101, 114, 0, 1, 116, 115, 2, 108, 97, 114, 116, 0, 1, 116, 115, 2, 108, 102, 117, 108, 100, 0, 1, 116, 115, 17,
+			65, 2, 108, 32, 0, 1, 116, 115, 32, 101, 100, 118, 97, 104, 2, 108, 32, 0, 1, 116, 115, 32, 101, 114, 101, 109, 2, 108, 32, 111,
+			118, 101, 114, 32, 0, 1, 116, 115, 32, 110, 101, 2, 108, 32, 0, 1, 116, 115, 32, 114, 97, 104, 2, 108, 32, 0, 1, 116, 115, 32,
+			114, 97, 118, 2, 108, 32, 111, 118, 101, 114, 32, 0, 1, 116, 115, 32, 114, 101, 2, 108, 32, 111, 118, 101, 114, 32, 0, 1, 116, 115,
+			97, 108, 112, 2, 18, 75, 0, 1, 116, 115, 115, 118, 105, 108, 2, 108, 0, 1, 116, 117, 98, 2, 107, 0, 1, 118, 2, 18, 66, 97,
+			0, 1, 118, 2, 18, 75, 105, 0, 1, 118, 2, 98, 12, 0, 1, 118, 2, 99, 107, 0, 1, 118, 2, 107, 116, 18, 69, 12, 12, 0,
+			1, 118, 2, 110, 103, 108, 97, 115, 12, 12, 0, 1, 118, 2, 110, 103, 195, 165, 114, 100, 12, 0, 1, 118, 2, 110, 107, 111, 114, 116,
+			0, 1, 118, 2, 110, 107, 195, 166, 108, 100, 12, 0, 1, 118, 2, 115, 116, 101, 12, 0, 1, 118, 101, 98, 2, 115, 0, 1, 118, 104,
+			2, 108, 12, 0, 1, 118, 107, 2, 18, 72, 12, 12, 0, 1, 118, 115, 2, 110, 115, 0, 1, 118, 116, 114, 111, 98, 2, 115, 0, 1,
+			118, 184, 195, 104, 2, 115, 107, 0, 2, 17, 67, 11, 0, 2, 17, 67, 18, 76, 0, 2, 17, 67, 116, 0, 2, 18, 68, 0, 2, 18,
+			74, 0, 2, 99, 104, 0, 2, 99, 107, 0, 2, 103, 103, 106, 111, 12, 12, 0, 2, 103, 103, 195, 184, 114, 12, 12, 0, 2, 103, 110,
+			0, 2, 107, 0, 2, 110, 117, 0, 2, 112, 0, 2, 114, 17, 67, 0, 2, 114, 115, 0, 2, 115, 0, 2, 116, 0, 2, 118, 0, 8,
+			2, 110, 105, 0, 8, 108, 2, 100, 116, 32, 110, 101, 100, 101, 114, 108, 97, 103, 0, 8, 108, 2, 100, 116, 32, 111, 118, 101, 114, 108,
+			97, 115, 116, 0, 8, 108, 2, 100, 116, 32, 115, 107, 97, 100, 101, 0, 8, 108, 2, 100, 116, 32, 117, 110, 100, 101, 114, 0, 8, 108,
+			107, 2, 115, 116, 101, 114, 0, 8, 116, 115, 2, 108, 32, 111, 118, 101, 114, 32, 100, 101, 17, 67, 0, 8, 116, 115, 2, 108, 32, 111,
+			118, 101, 114, 32, 104, 97, 109, 0, 8, 116, 115, 2, 108, 32, 111, 118, 101, 114, 32, 104, 101, 110, 100, 101, 0, 8, 116, 115, 32, 100,
+			101, 109, 2, 108, 32, 0, 8, 116, 115, 32, 110, 105, 100, 2, 108, 32, 0, 8, 116, 115, 32, 110, 105, 109, 2, 108, 32, 0, 8, 116,
+			115, 32, 110, 105, 115, 2, 108, 32, 0, 8, 116, 115, 32, 115, 101, 100, 110, 101, 104, 2, 108, 32, 0, 8, 116, 115, 32, 115, 101, 114,
+			101, 100, 2, 108, 32, 0, 8, 116, 115, 32, 115, 101, 114, 101, 106, 2, 108, 32, 0, 8, 116, 115, 32, 115, 110, 97, 104, 2, 108, 32,
+			0, 8, 116, 115, 32, 121, 110, 2, 108, 32, 0, 8, 118, 2, 115, 116, 32, 115, 105, 103, 0, 101, 1, 100, 2, 115, 101, 108, 0, 101,
+			1, 100, 2, 116, 114, 105, 99, 104, 0, 101, 1, 108, 115, 101, 108, 0, 101, 1, 110, 110, 111, 114, 0, 101, 1, 112, 2, 100, 101, 115,
+			116, 97, 108, 0, 101, 1, 112, 112, 105, 104, 0, 101, 1, 117, 111, 108, 0, 101, 8, 98, 98, 111, 114, 0, 101, 8, 110, 97, 108, 101,
+			109, 0, 101, 8, 110, 110, 97, 0, 101, 8, 115, 117, 115, 0, 101, 8, 122, 117, 115, 0, 103, 1, 100, 114, 166, 195, 118, 0, 103, 1,
+			108, 116, 110, 101, 102, 102, 111, 0, 103, 1, 114, 2, 17, 67, 0, 103, 1, 116, 2, 12, 0, 115, 1, 117, 111, 108, 0, 4, 1, 102,
+			2, 107, 115, 101, 114, 98, 97, 100, 3, 37, 6, 0, 1, 102, 2, 107, 115, 101, 114, 98, 105, 108, 108, 101, 100, 0, 1, 102, 2, 107,
+			115, 101, 114, 101, 0, 1, 102, 2, 107, 115, 101, 114, 105, 110, 103, 0, 1, 102, 2, 107, 115, 101, 114, 118, 195, 166, 115, 107, 101, 0,
+			1, 114, 18, 75, 2, 115, 116, 105, 110, 0, 101, 1, 114, 10, 2, 108, 28, 33, 3, 37, 6, 109, 0, 4, 101, 110, 1, 10, 2, 101,
+			114, 28, 33, 3, 37, 6, 109, 50, 0, 101, 110, 1, 10, 2, 115, 107, 28, 33, 0, 4, 1, 18, 73, 2, 108, 101, 12, 12, 3, 37,
+			12, 0, 1, 114, 103, 2, 109, 18, 76, 0, 1, 116, 115, 2, 108, 101, 0, 100, 101, 108, 8, 2, 32, 3, 37, 12, 86, 13, 55, 0,
+			2, 17, 67, 3, 37, 19, 0, 114, 111, 115, 104, 105, 1, 104, 2, 109, 97, 3, 37, 34, 39, 91, 6, 37, 0, 116, 101, 115, 8, 114,
+			102, 2, 32, 3, 37, 47, 0, 4, 107, 1, 17, 67, 2, 97, 110, 101, 114, 12, 12, 3, 37, 49, 0, 107, 1, 17, 67, 2, 101, 114,
+			12, 0, 107, 1, 21, 2, 97, 116, 28, 33, 12, 12, 0, 107, 1, 21, 2, 101, 116, 28, 33, 12, 12, 12, 0, 4, 107, 1, 10, 2,
+			97, 108, 115, 107, 28, 33, 12, 3, 37, 49, 6, 0, 107, 1, 21, 2, 97, 110, 116, 28, 33, 12, 0, 107, 101, 114, 1, 10, 2, 101,
+			114, 28, 33, 12, 3, 37, 49, 6, 36, 0, 4, 107, 101, 114, 1, 110, 10, 2, 101, 32, 28, 33, 12, 3, 37, 49, 6, 36, 34, 0,
+			107, 101, 114, 1, 110, 10, 2, 101, 116, 32, 28, 33, 12, 0, 107, 101, 114, 1, 110, 117, 10, 2, 28, 33, 12, 0, 107, 101, 114, 1,
+			114, 97, 107, 10, 2, 101, 28, 33, 12, 0, 103, 110, 1, 115, 2, 97, 108, 3, 37, 50, 0, 110, 116, 101, 114, 110, 97, 116, 105, 111,
+			110, 97, 108, 1, 32, 121, 116, 115, 101, 110, 109, 97, 3, 37, 50, 47, 114, 50, 6, 110, 91, 39, 50, 110, 55, 0, 4, 110, 100, 1,
+			102, 2, 101, 108, 3, 37, 50, 72, 0, 110, 100, 1, 102, 2, 121, 114, 107, 0, 110, 100, 1, 118, 2, 114, 117, 101, 0, 110, 103, 1,
+			118, 2, 117, 109, 109, 105, 3, 37, 50, 81, 0, 108, 108, 97, 100, 115, 1, 116, 115, 3, 37, 55, 6, 110, 89, 0, 108, 111, 112, 1,
+			112, 115, 3, 37, 55, 6, 114, 48, 0, 108, 108, 101, 1, 116, 114, 97, 2, 114, 105, 3, 37, 55, 13, 0, 108, 108, 1, 118, 97, 112,
+			2, 111, 3, 37, 55, 57, 0, 4, 103, 1, 108, 2, 17, 67, 3, 37, 57, 0, 103, 1, 108, 108, 101, 104, 0, 4, 98, 101, 1, 112,
+			2, 116, 195, 184, 106, 3, 37, 58, 0, 112, 1, 110, 107, 2, 116, 97, 110, 103, 0, 109, 97, 103, 101, 3, 37, 65, 37, 75, 0, 100,
+			103, 101, 1, 114, 3, 37, 75, 0, 100, 103, 101, 116, 1, 114, 98, 3, 37, 75, 37, 47, 0, 4, 103, 1, 108, 2, 105, 3, 37, 81,
+			0, 103, 1, 108, 105, 102, 2, 114, 97, 110, 0, 103, 1, 114, 102, 2, 106, 111, 0, 103, 1, 116, 115, 2, 109, 97, 0, 103, 2, 114,
+			117, 112, 112, 101, 0, 115, 1, 18, 73, 2, 12, 3, 37, 89, 0, 115, 114, 97, 101, 108, 8, 100, 2, 105, 3, 37, 89, 34, 112, 6,
+			36, 55, 0, 115, 114, 97, 101, 108, 115, 107, 3, 37, 89, 34, 112, 6, 36, 55, 89, 49, 0, 115, 114, 97, 101, 108, 101, 114, 3, 37,
+			89, 34, 112, 6, 36, 55, 114, 0, 115, 114, 97, 101, 108, 3, 37, 89, 34, 112, 12, 55, 0, 115, 105, 107, 111, 1, 114, 3, 37, 89,
+			37, 49, 39, 0, 115, 116, 101, 108, 116, 101, 110, 1, 109, 3, 37, 89, 47, 109, 55, 47, 36, 50, 0, 115, 105, 97, 110, 97, 1, 117,
+			111, 108, 3, 37, 89, 57, 6, 110, 50, 110, 0, 110, 103, 101, 1, 108, 2, 114, 105, 3, 55, 110, 68, 91, 36, 0, 4, 1, 99, 2,
+			97, 3, 57, 0, 1, 108, 2, 101, 0, 1, 110, 117, 106, 2, 111, 114, 0, 1, 115, 2, 111, 110, 0, 1, 115, 97, 2, 101, 0, 1,
+			115, 2, 97, 114, 3, 57, 6, 0, 4, 101, 114, 1, 99, 110, 97, 108, 3, 57, 6, 36, 0, 101, 114, 1, 99, 110, 97, 110, 105, 102,
+			0, 101, 114, 1, 99, 110, 101, 114, 101, 102, 110, 111, 107, 0, 101, 114, 1, 100, 97, 98, 114, 97, 98, 0, 101, 114, 1, 100, 97, 110,
+			101, 114, 103, 0, 101, 114, 1, 107, 110, 97, 98, 0, 101, 114, 1, 108, 97, 112, 115, 0, 101, 114, 1, 108, 97, 112, 115, 101, 0, 101,
+			114, 1, 108, 101, 116, 97, 0, 101, 114, 1, 108, 108, 111, 99, 0, 101, 114, 1, 108, 117, 99, 105, 116, 114, 97, 112, 0, 101, 114, 1,
+			109, 117, 116, 115, 111, 107, 0, 101, 114, 1, 110, 101, 100, 0, 101, 114, 1, 112, 117, 111, 114, 99, 0, 101, 114, 1, 115, 110, 97, 110,
+			105, 102, 0, 101, 114, 1, 115, 115, 111, 100, 0, 101, 114, 1, 116, 101, 109, 0, 101, 114, 1, 116, 110, 97, 103, 101, 108, 101, 0, 101,
+			114, 1, 116, 110, 101, 114, 0, 101, 114, 1, 116, 114, 111, 112, 0, 101, 119, 3, 57, 6, 40, 0, 97, 118, 1, 109, 3, 57, 35, 58,
+			0, 4, 101, 1, 118, 2, 116, 32, 99, 111, 110, 103, 3, 57, 109, 0, 101, 1, 118, 2, 116, 110, 97, 109, 0, 4, 111, 1, 107, 2,
+			115, 107, 3, 57, 114, 0, 111, 114, 1, 110, 101, 115, 0, 110, 1, 108, 101, 104, 99, 105, 109, 3, 109, 68, 0, 114, 1, 108, 102, 2,
+			116, 3, 118, 12, 0, 114, 118, 105, 110, 103, 3, 118, 84, 36, 68, 0, 7, 6, 106, 0, 101, 97, 110, 110, 101, 2, 32, 100, 39, 3,
+			2, 91, 110, 12, 50, 0, 1, 104, 114, 101, 100, 2, 101, 109, 109, 101, 3, 6, 57, 0, 4, 3, 57, 0, 1, 184, 195, 2, 101, 116,
+			0, 2, 117, 110, 107, 116, 0, 1, 97, 109, 2, 111, 114, 3, 57, 6, 0, 101, 104, 111, 118, 97, 3, 57, 36, 107, 6, 39, 84, 110,
+			0, 101, 114, 8, 2, 32, 3, 57, 109, 34, 0, 101, 114, 115, 101, 121, 2, 107, 3, 57, 109, 34, 89, 37, 0, 97, 107, 101, 108, 8,
+			3, 57, 110, 49, 20, 13, 55, 0, 97, 109, 115, 101, 115, 115, 105, 111, 110, 3, 72, 57, 110, 12, 65, 89, 6, 36, 91, 57, 13, 50,
+			0, 4, 1, 105, 102, 2, 105, 3, 75, 0, 1, 110, 105, 110, 2, 97, 0, 2, 97, 119, 0, 2, 97, 122, 122, 0, 2, 101, 110, 110,
+			105, 102, 101, 114, 0, 2, 111, 98, 0, 2, 117, 105, 99, 101, 0, 2, 117, 110, 103, 108, 0, 2, 117, 110, 107, 0, 8, 2, 101, 102,
+			102, 0, 8, 2, 105, 109, 32, 0, 101, 114, 114, 121, 3, 75, 36, 34, 37, 0, 101, 107, 121, 108, 108, 3, 75, 36, 49, 14, 55, 0,
+			105, 110, 103, 108, 101, 3, 75, 36, 50, 81, 108, 55, 0, 4, 105, 109, 109, 105, 101, 3, 75, 36, 65, 37, 0, 105, 109, 109, 121, 0,
+			4, 101, 97, 110, 3, 75, 37, 12, 50, 0, 101, 97, 110, 110, 101, 0, 101, 101, 112, 3, 75, 37, 12, 71, 0, 105, 108, 108, 8, 3,
+			75, 37, 55, 0, 105, 116, 116, 101, 114, 98, 117, 103, 3, 75, 37, 72, 114, 71, 114, 81, 0, 105, 104, 97, 100, 3, 75, 37, 107, 6,
+			110, 47, 0, 117, 107, 101, 2, 98, 111, 107, 115, 3, 75, 40, 12, 49, 0, 4, 101, 119, 101, 108, 3, 75, 40, 12, 55, 0, 111, 117,
+			108, 101, 0, 4, 101, 1, 97, 109, 114, 105, 102, 2, 116, 3, 75, 109, 0, 101, 1, 111, 98, 109, 117, 106, 2, 116, 0, 101, 8, 2,
+			116, 0, 4, 101, 110, 110, 105, 101, 3, 75, 109, 50, 37, 0, 101, 110, 110, 121, 0, 97, 121, 3, 75, 109, 57, 0, 97, 107, 101, 8,
+			3, 75, 109, 57, 49, 0, 97, 110, 101, 121, 3, 75, 109, 57, 50, 37, 0, 97, 109, 105, 101, 3, 75, 109, 57, 65, 37, 0, 97, 109,
+			101, 115, 8, 3, 75, 109, 57, 65, 89, 0, 101, 115, 115, 3, 75, 109, 89, 0, 101, 115, 115, 105, 101, 3, 75, 109, 89, 37, 0, 4,
+			97, 2, 99, 107, 3, 75, 110, 0, 97, 2, 109, 97, 108, 0, 97, 99, 107, 105, 101, 3, 75, 110, 49, 37, 0, 97, 114, 118, 105, 115,
+			8, 3, 75, 112, 12, 84, 36, 89, 0, 97, 109, 98, 97, 108, 97, 121, 97, 3, 75, 112, 65, 71, 110, 55, 6, 35, 57, 110, 0, 111,
+			108, 101, 110, 101, 8, 3, 75, 113, 58, 55, 6, 37, 12, 50, 0, 111, 2, 99, 107, 101, 121, 3, 75, 114, 0, 111, 104, 110, 3, 75,
+			114, 50, 0, 111, 104, 110, 110, 121, 3, 75, 114, 50, 37, 0, 117, 110, 107, 105, 101, 3, 75, 114, 50, 49, 37, 0, 117, 110, 99, 116,
+			105, 111, 110, 3, 75, 114, 50, 49, 91, 13, 50, 0, 111, 121, 3, 75, 114, 57, 0, 111, 105, 110, 116, 3, 75, 114, 57, 50, 47, 0,
+			111, 115, 104, 8, 3, 75, 114, 91, 0, 111, 101, 3, 75, 115, 58, 0, 111, 110, 101, 115, 3, 75, 115, 58, 50, 89, 0, 4, 101, 114,
+			115, 101, 121, 8, 2, 32, 3, 75, 118, 12, 89, 37, 0, 101, 114, 115, 101, 121, 8, 2, 115, 32, 0, 111, 107, 101, 3, 75, 118, 58,
+			49, 0, 97, 99, 113, 117, 101, 115, 3, 90, 35, 49, 0, 4, 1, 110, 101, 2, 97, 109, 98, 101, 3, 91, 0, 1, 111, 114, 2, 101,
+			107, 116, 0, 2, 97, 115, 109, 105, 110, 0, 2, 111, 110, 103, 108, 0, 2, 111, 117, 114, 110, 97, 108, 0, 1, 97, 2, 111, 117, 3,
+			91, 6, 0, 101, 114, 111, 109, 101, 3, 91, 36, 34, 6, 39, 65, 0, 97, 110, 101, 105, 114, 111, 3, 91, 36, 50, 6, 109, 34, 39,
+			0, 97, 117, 98, 101, 114, 116, 3, 91, 39, 71, 6, 109, 34, 0, 117, 97, 110, 8, 3, 91, 40, 6, 112, 68, 0, 101, 116, 111, 110,
+			3, 91, 57, 36, 47, 6, 114, 68, 0, 97, 114, 100, 105, 110, 105, 101, 114, 101, 3, 91, 57, 112, 34, 72, 37, 50, 57, 6, 109, 12,
+			34, 0, 97, 114, 103, 111, 110, 3, 91, 57, 112, 34, 81, 6, 114, 68, 0, 101, 97, 2, 110, 101, 116, 116, 101, 3, 91, 110, 6, 0,
+			101, 97, 110, 111, 116, 3, 91, 110, 50, 6, 39, 0, 97, 108, 111, 117, 115, 105, 8, 3, 91, 110, 55, 40, 89, 6, 37, 0, 97, 108,
+			111, 117, 115, 105, 1, 21, 3, 91, 110, 55, 40, 89, 37, 0, 97, 109, 97, 105, 99, 97, 3, 91, 110, 65, 6, 35, 57, 49, 110, 0,
+			117, 103, 101, 114, 101, 3, 91, 116, 91, 6, 36, 114, 0, 1, 97, 118, 97, 110, 2, 111, 3, 107, 0, 7, 6, 107, 0, 4, 1, 101,
+			112, 115, 2, 116, 97, 107, 107, 3, 0, 1, 101, 112, 115, 2, 116, 97, 107, 108, 3, 0, 4, 8, 101, 112, 115, 2, 116, 97, 107, 107,
+			3, 6, 0, 8, 101, 112, 115, 2, 116, 97, 107, 108, 0, 4, 3, 49, 0, 1, 10, 0, 107, 0, 4, 114, 121, 115, 97, 110, 116, 101,
+			109, 117, 109, 3, 49, 34, 117, 89, 6, 110, 50, 47, 13, 65, 113, 65, 0, 114, 121, 115, 97, 110, 116, 101, 109, 117, 109, 109, 0, 97,
+			107, 101, 114, 108, 97, 2, 107, 3, 49, 35, 49, 13, 55, 6, 35, 0, 97, 110, 116, 101, 114, 101, 108, 3, 49, 35, 50, 47, 13, 34,
+			6, 111, 55, 0, 105, 100, 1, 32, 101, 104, 116, 3, 49, 36, 72, 0, 101, 105, 116, 104, 3, 49, 37, 12, 87, 0, 105, 108, 105, 109,
+			97, 110, 106, 97, 114, 111, 3, 49, 37, 55, 37, 65, 110, 50, 75, 6, 112, 34, 39, 0, 108, 111, 115, 2, 32, 104, 111, 108, 100, 3,
+			49, 55, 114, 89, 0, 118, 97, 114, 116, 101, 114, 1, 10, 3, 49, 84, 35, 34, 47, 36, 34, 0, 97, 116, 101, 8, 2, 32, 3, 49,
+			109, 57, 47, 0, 97, 114, 97, 111, 107, 101, 3, 49, 110, 34, 110, 6, 39, 40, 49, 37, 0, 111, 110, 116, 105, 110, 117, 117, 109, 3,
+			49, 114, 50, 47, 6, 37, 50, 40, 113, 65, 0, 117, 109, 113, 117, 97, 116, 3, 49, 114, 65, 49, 58, 114, 72, 0, 101, 114, 109, 105,
+			116, 8, 3, 49, 118, 12, 65, 36, 47, 0, 110, 105, 103, 104, 116, 3, 50, 112, 57, 47, 0, 110, 111, 99, 107, 3, 50, 114, 49, 0,
+			110, 111, 120, 3, 50, 114, 81, 89, 0, 7, 6, 108, 0, 4, 101, 1, 102, 102, 105, 107, 115, 3, 13, 55, 0, 101, 8, 112, 114, 97,
+			109, 0, 4, 3, 55, 0, 100, 1, 10, 2, 101, 114, 0, 108, 0, 118, 1, 101, 115, 0, 118, 1, 111, 116, 0, 118, 1, 184, 195, 115,
+			0, 101, 111, 100, 1, 32, 99, 97, 109, 3, 55, 6, 35, 58, 72, 0, 111, 103, 1, 10, 2, 28, 33, 3, 55, 6, 39, 0, 4, 101,
+			116, 1, 10, 2, 116, 28, 33, 3, 55, 6, 109, 0, 101, 116, 1, 111, 105, 114, 98, 97, 99, 0, 101, 116, 1, 10, 2, 28, 33, 3,
+			55, 6, 109, 47, 0, 105, 111, 110, 101, 108, 8, 3, 55, 35, 36, 108, 50, 109, 55, 0, 101, 103, 2, 32, 3, 55, 35, 57, 0, 101,
+			103, 101, 114, 2, 32, 3, 55, 35, 57, 114, 0, 111, 117, 110, 103, 101, 3, 55, 35, 58, 50, 75, 0, 4, 101, 116, 1, 105, 102, 101,
+			98, 98, 117, 114, 107, 115, 3, 55, 36, 0, 101, 116, 1, 105, 102, 101, 103, 110, 117, 116, 184, 195, 115, 0, 101, 116, 1, 105, 102, 101,
+			107, 115, 105, 102, 0, 101, 116, 1, 105, 102, 101, 109, 109, 97, 108, 0, 101, 116, 1, 105, 102, 101, 110, 105, 118, 115, 0, 101, 116, 1,
+			105, 102, 101, 114, 121, 100, 0, 101, 116, 1, 105, 102, 101, 115, 107, 111, 0, 101, 116, 1, 105, 102, 101, 116, 114, 111, 106, 104, 0, 101,
+			116, 1, 105, 102, 101, 116, 115, 101, 104, 0, 101, 116, 1, 105, 102, 101, 116, 116, 166, 195, 112, 115, 0, 101, 116, 1, 105, 102, 115, 103,
+			101, 116, 115, 0, 105, 110, 99, 111, 108, 110, 3, 55, 36, 50, 49, 114, 59, 50, 0, 105, 116, 116, 108, 101, 3, 55, 36, 72, 13, 55,
+			0, 101, 103, 101, 2, 114, 105, 110, 103, 3, 55, 36, 81, 6, 36, 0, 105, 118, 105, 110, 103, 115, 116, 111, 110, 101, 3, 55, 36, 84,
+			36, 68, 89, 47, 4, 108, 12, 58, 50, 0, 101, 118, 101, 114, 101, 1, 21, 3, 55, 36, 84, 36, 114, 0, 101, 121, 3, 55, 37, 0,
+			101, 101, 8, 2, 32, 3, 55, 37, 12, 0, 101, 101, 100, 8, 2, 115, 3, 55, 37, 12, 72, 0, 108, 97, 114, 100, 1, 105, 98, 3,
+			55, 37, 35, 72, 0, 105, 109, 111, 103, 101, 115, 3, 55, 37, 65, 6, 39, 12, 90, 0, 105, 122, 122, 105, 101, 3, 55, 37, 89, 37,
+			0, 97, 117, 116, 114, 101, 99, 3, 55, 39, 47, 34, 6, 109, 49, 0, 111, 114, 114, 97, 105, 110, 101, 3, 55, 39, 51, 109, 12, 50,
+			0, 111, 103, 1, 10, 2, 105, 28, 33, 3, 55, 39, 81, 6, 0, 103, 1, 101, 104, 2, 101, 3, 55, 57, 0, 108, 101, 110, 100, 101,
+			8, 97, 3, 55, 57, 6, 109, 50, 72, 108, 0, 4, 100, 1, 111, 98, 3, 55, 72, 0, 100, 1, 111, 115, 2, 97, 116, 0, 118, 101,
+			1, 101, 115, 3, 55, 84, 108, 0, 111, 116, 105, 111, 110, 3, 55, 108, 40, 91, 57, 50, 0, 101, 103, 101, 109, 2, 17, 67, 3, 55,
+			109, 57, 13, 65, 0, 97, 107, 101, 8, 2, 32, 3, 55, 109, 57, 49, 0, 97, 98, 111, 117, 114, 3, 55, 109, 57, 71, 114, 0, 4,
+			97, 100, 121, 1, 110, 114, 101, 106, 3, 55, 109, 57, 72, 37, 0, 97, 100, 121, 8, 0, 101, 97, 118, 101, 110, 119, 111, 114, 116, 104,
+			3, 55, 109, 84, 13, 50, 58, 118, 12, 108, 87, 0, 101, 105, 99, 101, 115, 116, 101, 114, 3, 55, 109, 89, 47, 114, 0, 97, 100, 121,
+			115, 1, 103, 3, 55, 110, 72, 37, 89, 0, 117, 99, 107, 121, 3, 55, 114, 49, 37, 0, 108, 111, 121, 100, 3, 55, 114, 57, 72, 0,
+			111, 110, 103, 2, 32, 105, 115, 108, 97, 110, 100, 3, 55, 114, 68, 0, 117, 100, 108, 111, 119, 3, 55, 114, 72, 55, 39, 58, 0, 4,
+			1, 98, 3, 59, 0, 1, 102, 0, 1, 115, 0, 97, 114, 114, 121, 3, 59, 110, 16, 37, 0, 7, 6, 109, 0, 97, 105, 108, 1, 32,
+			101, 3, 2, 65, 109, 57, 55, 0, 97, 110, 100, 1, 114, 117, 111, 103, 3, 2, 65, 112, 68, 0, 4, 97, 100, 101, 114, 111, 3, 21,
+			101, 115, 0, 105, 103, 117, 101, 108, 0, 111, 110, 116, 112, 101, 108, 108, 105, 101, 114, 3, 21, 102, 114, 0, 4, 3, 65, 0, 109, 0,
+			97, 110, 100, 8, 114, 117, 111, 103, 3, 65, 7, 112, 68, 0, 109, 1, 111, 2, 195, 184, 98, 108, 101, 3, 65, 15, 65, 0, 101, 103,
+			101, 110, 8, 2, 32, 3, 65, 35, 12, 57, 13, 50, 0, 101, 103, 101, 116, 8, 2, 32, 3, 65, 35, 12, 57, 13, 86, 0, 97, 107,
+			97, 114, 111, 110, 105, 3, 65, 35, 49, 108, 34, 6, 114, 50, 37, 0, 97, 114, 115, 101, 105, 108, 108, 101, 3, 65, 35, 51, 89, 6,
+			109, 12, 57, 0, 4, 105, 107, 101, 8, 2, 32, 3, 65, 35, 57, 49, 0, 105, 107, 101, 8, 2, 115, 32, 0, 111, 117, 115, 101, 8,
+			3, 65, 35, 58, 89, 0, 101, 114, 101, 8, 2, 32, 3, 65, 36, 34, 0, 105, 108, 107, 115, 104, 97, 107, 101, 3, 65, 36, 55, 49,
+			91, 109, 57, 49, 0, 105, 108, 119, 97, 117, 107, 101, 101, 3, 65, 36, 55, 58, 6, 113, 49, 37, 0, 101, 100, 101, 97, 8, 3, 65,
+			36, 72, 6, 109, 12, 110, 0, 105, 100, 110, 105, 103, 104, 116, 3, 65, 36, 72, 50, 35, 57, 47, 0, 105, 99, 104, 101, 108, 108, 101,
+			3, 65, 37, 91, 6, 109, 55, 0, 97, 117, 114, 105, 99, 101, 3, 65, 39, 34, 6, 37, 89, 0, 97, 117, 112, 97, 115, 115, 97, 110,
+			116, 3, 65, 39, 48, 110, 89, 6, 112, 68, 0, 111, 117, 108, 105, 110, 3, 65, 40, 55, 6, 110, 68, 0, 117, 115, 107, 101, 116, 101,
+			114, 3, 65, 40, 89, 81, 36, 47, 6, 36, 34, 0, 117, 115, 105, 99, 97, 108, 3, 65, 57, 40, 12, 89, 37, 49, 108, 55, 0, 4,
+			109, 1, 101, 108, 108, 101, 109, 3, 65, 65, 0, 109, 2, 97, 115, 115, 97, 103, 101, 0, 112, 115, 111, 110, 3, 65, 89, 114, 50, 0,
+			97, 107, 101, 117, 2, 112, 3, 65, 109, 57, 49, 6, 114, 0, 97, 105, 110, 101, 8, 3, 65, 109, 57, 50, 0, 97, 105, 108, 3, 65,
+			109, 57, 55, 0, 97, 121, 100, 97, 121, 3, 65, 109, 57, 72, 109, 12, 57, 0, 101, 108, 98, 111, 117, 114, 110, 101, 3, 65, 109, 59,
+			71, 118, 50, 0, 97, 114, 105, 108, 121, 110, 3, 65, 110, 34, 37, 55, 36, 50, 0, 97, 116, 105, 108, 100, 8, 3, 65, 110, 47, 6,
+			37, 55, 72, 0, 97, 116, 105, 110, 101, 3, 65, 110, 47, 37, 50, 6, 36, 0, 99, 8, 2, 17, 67, 21, 3, 65, 110, 49, 0, 97,
+			110, 110, 101, 113, 117, 105, 110, 8, 3, 65, 110, 50, 13, 49, 6, 109, 68, 0, 97, 110, 110, 101, 113, 117, 105, 110, 3, 65, 110, 50,
+			13, 49, 109, 68, 0, 97, 110, 97, 103, 101, 114, 3, 65, 110, 50, 36, 75, 114, 0, 105, 97, 109, 105, 3, 65, 110, 57, 6, 110, 12,
+			65, 37, 0, 97, 100, 97, 103, 97, 115, 107, 97, 114, 3, 65, 110, 72, 110, 81, 6, 110, 89, 49, 110, 0, 97, 116, 116, 104, 101, 119,
+			3, 65, 110, 87, 57, 40, 0, 97, 115, 115, 97, 99, 104, 117, 115, 101, 116, 116, 115, 3, 65, 110, 89, 110, 47, 57, 6, 40, 89, 109,
+			47, 89, 0, 97, 99, 104, 101, 116, 101, 3, 65, 110, 91, 6, 109, 72, 0, 97, 104, 111, 103, 110, 105, 3, 65, 110, 107, 6, 39, 50,
+			37, 0, 97, 114, 101, 114, 105, 100, 116, 3, 65, 112, 12, 13, 34, 37, 47, 0, 97, 114, 106, 111, 114, 105, 101, 3, 65, 112, 75, 113,
+			34, 37, 0, 111, 110, 116, 114, 101, 3, 65, 113, 12, 50, 47, 34, 114, 0, 97, 108, 116, 1, 32, 101, 108, 103, 110, 105, 115, 3, 65,
+			113, 55, 47, 0, 117, 114, 114, 97, 121, 3, 65, 114, 34, 37, 0, 117, 112, 112, 101, 116, 8, 3, 65, 114, 48, 36, 47, 0, 111, 110,
+			114, 111, 101, 3, 65, 114, 50, 34, 6, 113, 58, 0, 111, 110, 101, 121, 3, 65, 114, 50, 37, 0, 111, 110, 116, 103, 111, 109, 101, 114,
+			121, 3, 65, 114, 50, 72, 81, 6, 114, 65, 34, 37, 0, 111, 108, 121, 110, 101, 117, 120, 3, 65, 114, 55, 37, 50, 57, 40, 12, 0,
+			111, 116, 104, 101, 114, 3, 65, 114, 86, 114, 0, 117, 114, 100, 111, 99, 104, 3, 65, 118, 72, 114, 49, 0, 117, 114, 112, 104, 3, 65,
+			118, 83, 0, 4, 117, 114, 112, 104, 101, 121, 3, 65, 118, 83, 37, 0, 117, 114, 112, 104, 121, 0, 7, 6, 110, 0, 95, 1, 97, 107,
+			3, 0, 105, 1, 10, 2, 28, 33, 12, 3, 6, 50, 37, 0, 105, 1, 110, 10, 2, 28, 33, 12, 3, 7, 37, 0, 4, 1, 10, 2,
+			101, 114, 28, 33, 12, 3, 8, 50, 0, 1, 10, 2, 105, 115, 116, 97, 110, 28, 33, 0, 1, 10, 2, 115, 107, 28, 33, 0, 4, 105,
+			1, 10, 2, 115, 107, 28, 33, 12, 3, 8, 50, 37, 0, 105, 1, 97, 109, 2, 111, 12, 0, 105, 1, 105, 107, 105, 98, 0, 105, 107,
+			97, 8, 111, 109, 114, 97, 104, 3, 8, 50, 37, 49, 110, 0, 105, 101, 110, 1, 21, 3, 8, 50, 37, 108, 20, 50, 0, 105, 101, 114,
+			1, 21, 3, 8, 50, 37, 114, 0, 105, 103, 104, 116, 105, 110, 103, 97, 108, 101, 3, 21, 0, 4, 3, 50, 0, 110, 1, 17, 65, 0,
+			110, 1, 111, 115, 166, 195, 114, 0, 105, 97, 103, 97, 114, 97, 8, 3, 50, 35, 57, 6, 110, 81, 108, 34, 35, 0, 105, 103, 104, 116,
+			101, 110, 103, 97, 108, 101, 8, 3, 50, 35, 57, 47, 14, 50, 81, 109, 57, 55, 0, 121, 108, 111, 110, 3, 50, 35, 57, 55, 114, 50,
+			0, 105, 103, 101, 108, 8, 3, 50, 35, 57, 75, 108, 55, 0, 101, 103, 108, 105, 103, 101, 3, 50, 36, 81, 55, 37, 91, 6, 36, 0,
+			101, 105, 108, 3, 50, 37, 12, 55, 0, 105, 99, 111, 108, 101, 8, 3, 50, 37, 49, 6, 114, 55, 0, 105, 99, 111, 108, 8, 2, 101,
+			116, 116, 101, 3, 50, 37, 49, 39, 55, 0, 111, 117, 103, 97, 116, 3, 50, 40, 81, 6, 110, 0, 101, 119, 116, 111, 110, 3, 50, 57,
+			6, 40, 12, 47, 13, 50, 0, 101, 119, 3, 50, 57, 40, 0, 101, 119, 122, 101, 97, 108, 97, 110, 100, 3, 50, 57, 40, 89, 6, 36,
+			55, 110, 50, 0, 101, 108, 108, 105, 101, 8, 3, 50, 109, 55, 37, 0, 101, 118, 105, 108, 108, 101, 8, 3, 50, 109, 84, 36, 59, 0,
+			97, 105, 118, 8, 3, 50, 110, 6, 37, 84, 0, 97, 103, 8, 2, 32, 3, 50, 110, 12, 57, 0, 97, 105, 118, 1, 21, 3, 50, 110,
+			37, 84, 0, 111, 114, 101, 101, 110, 8, 3, 50, 113, 58, 34, 6, 37, 12, 50, 0, 111, 114, 119, 105, 99, 104, 8, 3, 50, 114, 34,
+			37, 76, 0, 111, 115, 116, 114, 97, 100, 97, 109, 117, 115, 3, 50, 114, 89, 47, 34, 112, 72, 6, 110, 65, 40, 89, 0, 107, 2, 116,
+			3, 68, 0, 7, 6, 111, 0, 1, 108, 32, 107, 97, 114, 116, 2, 100, 3, 0, 4, 1, 112, 2, 115, 116, 101, 106, 3, 2, 39, 0,
+			2, 107, 116, 111, 98, 0, 1, 114, 116, 110, 111, 107, 2, 108, 108, 101, 114, 3, 2, 113, 0, 4, 109, 109, 101, 8, 112, 2, 32, 3,
+			2, 114, 65, 0, 109, 109, 101, 115, 8, 112, 2, 32, 0, 119, 1, 108, 98, 3, 6, 13, 58, 0, 4, 117, 116, 8, 101, 109, 105, 116,
+			3, 6, 35, 58, 72, 0, 117, 116, 8, 107, 99, 97, 108, 98, 0, 117, 116, 8, 107, 99, 111, 108, 0, 117, 116, 8, 107, 99, 111, 110,
+			107, 0, 117, 116, 8, 107, 114, 111, 119, 0, 117, 116, 8, 121, 97, 108, 0, 4, 1, 21, 2, 108, 115, 107, 3, 6, 39, 0, 1, 98,
+			109, 97, 99, 2, 100, 106, 0, 1, 99, 101, 100, 32, 116, 114, 97, 0, 1, 100, 97, 116, 97, 109, 2, 114, 0, 1, 100, 105, 114, 114,
+			111, 107, 2, 114, 0, 1, 101, 108, 99, 2, 112, 97, 116, 114, 97, 0, 1, 101, 116, 101, 109, 2, 114, 0, 1, 103, 97, 112, 2, 100,
+			101, 0, 1, 103, 110, 97, 2, 108, 97, 0, 1, 105, 98, 105, 116, 110, 97, 2, 116, 105, 107, 0, 1, 105, 100, 2, 100, 101, 0, 1,
+			105, 114, 101, 112, 2, 100, 101, 0, 1, 105, 118, 97, 114, 2, 108, 105, 0, 1, 106, 97, 103, 2, 108, 0, 1, 107, 97, 108, 2, 116,
+			97, 0, 1, 107, 110, 97, 108, 101, 109, 2, 108, 115, 107, 0, 1, 108, 97, 2, 104, 97, 0, 1, 108, 97, 104, 115, 2, 109, 0, 1,
+			108, 107, 121, 99, 2, 110, 0, 1, 108, 107, 121, 107, 2, 112, 0, 1, 108, 108, 97, 104, 0, 1, 109, 97, 115, 2, 97, 0, 1, 109,
+			101, 109, 2, 114, 105, 97, 109, 0, 1, 109, 109, 111, 107, 2, 100, 101, 0, 1, 112, 101, 2, 107, 101, 0, 1, 114, 97, 2, 109, 97,
+			0, 1, 114, 101, 2, 98, 0, 1, 114, 101, 112, 112, 101, 112, 2, 110, 105, 0, 1, 114, 116, 107, 101, 108, 101, 2, 100, 101, 0, 1,
+			114, 116, 115, 105, 98, 0, 1, 115, 105, 112, 101, 2, 100, 101, 0, 1, 116, 97, 107, 2, 100, 101, 0, 1, 116, 97, 109, 166, 195, 104,
+			2, 109, 0, 1, 116, 101, 98, 2, 110, 105, 110, 103, 0, 1, 116, 101, 109, 2, 100, 101, 0, 1, 116, 110, 111, 107, 2, 114, 0, 1,
+			116, 115, 117, 107, 2, 100, 101, 0, 1, 121, 107, 2, 116, 111, 0, 8, 100, 97, 116, 101, 109, 2, 110, 0, 8, 100, 107, 101, 110, 97,
+			2, 116, 0, 8, 105, 100, 105, 2, 116, 0, 8, 105, 114, 112, 121, 99, 2, 116, 0, 8, 105, 114, 116, 97, 112, 2, 116, 0, 8, 106,
+			108, 97, 116, 97, 98, 2, 110, 0, 8, 106, 115, 110, 97, 2, 115, 0, 8, 106, 117, 107, 2, 110, 0, 8, 107, 105, 108, 105, 115, 2,
+			110, 101, 0, 8, 107, 105, 114, 98, 97, 2, 115, 0, 8, 108, 105, 112, 2, 116, 0, 8, 108, 105, 116, 110, 97, 2, 112, 101, 0, 8,
+			109, 97, 114, 2, 110, 97, 0, 8, 109, 101, 110, 97, 2, 110, 101, 0, 8, 109, 105, 2, 100, 0, 8, 109, 105, 107, 115, 101, 0, 8,
+			109, 114, 111, 109, 2, 110, 0, 8, 109, 166, 195, 100, 2, 110, 0, 8, 110, 97, 107, 2, 110, 0, 8, 110, 103, 105, 115, 2, 114, 0,
+			8, 110, 111, 107, 184, 195, 2, 109, 32, 0, 8, 112, 101, 100, 2, 116, 0, 8, 114, 101, 2, 116, 0, 8, 114, 101, 99, 105, 99, 2,
+			110, 101, 0, 8, 114, 101, 112, 97, 104, 99, 2, 110, 101, 0, 8, 114, 116, 97, 109, 2, 110, 101, 0, 8, 114, 116, 97, 109, 2, 115,
+			0, 8, 114, 117, 101, 2, 112, 97, 0, 8, 115, 111, 108, 105, 102, 2, 102, 105, 115, 107, 0, 8, 116, 101, 99, 97, 2, 110, 101, 0,
+			8, 116, 111, 105, 98, 2, 112, 0, 8, 116, 111, 115, 105, 2, 112, 0, 8, 122, 97, 109, 97, 2, 110, 101, 0, 8, 122, 108, 97, 99,
+			2, 110, 101, 0, 108, 1, 114, 116, 10, 2, 108, 108, 101, 28, 33, 0, 116, 1, 100, 114, 97, 98, 0, 116, 1, 107, 105, 114, 116, 0,
+			116, 1, 108, 114, 101, 109, 0, 1, 116, 105, 108, 2, 116, 101, 3, 6, 39, 12, 0, 102, 101, 1, 114, 116, 115, 97, 116, 97, 107, 3,
+			6, 39, 12, 83, 108, 0, 115, 101, 1, 10, 2, 28, 33, 12, 3, 6, 39, 12, 89, 13, 0, 115, 101, 43, 1, 10, 2, 114, 28, 33,
+			3, 6, 39, 12, 89, 114, 0, 116, 105, 1, 107, 114, 97, 110, 2, 107, 3, 6, 39, 47, 37, 0, 112, 1, 107, 115, 10, 2, 28, 33,
+			12, 12, 3, 6, 39, 48, 0, 110, 100, 1, 107, 101, 115, 2, 108, 195, 184, 106, 116, 110, 97, 110, 116, 3, 6, 39, 50, 72, 0, 4,
+			108, 1, 10, 2, 28, 33, 12, 12, 3, 6, 39, 55, 0, 108, 1, 104, 10, 2, 105, 28, 33, 12, 0, 108, 1, 114, 116, 10, 2, 101,
+			28, 33, 0, 108, 1, 115, 10, 2, 18, 69, 28, 33, 12, 0, 108, 1, 116, 110, 10, 2, 28, 33, 12, 0, 108, 1, 116, 115, 10, 2,
+			12, 28, 33, 0, 109, 1, 21, 2, 28, 33, 12, 12, 12, 3, 6, 39, 65, 0, 4, 111, 1, 122, 97, 107, 3, 6, 40, 0, 117, 1,
+			108, 101, 118, 2, 114, 0, 117, 116, 1, 103, 97, 114, 0, 4, 111, 1, 122, 97, 98, 3, 6, 40, 12, 0, 117, 1, 115, 115, 105, 109,
+			2, 114, 105, 0, 117, 105, 108, 108, 101, 1, 116, 97, 116, 97, 114, 3, 6, 40, 12, 57, 0, 117, 110, 1, 104, 108, 97, 99, 3, 6,
+			40, 50, 0, 105, 114, 101, 1, 116, 114, 101, 112, 101, 114, 3, 6, 58, 112, 12, 0, 110, 100, 1, 98, 97, 103, 97, 118, 3, 6, 113,
+			50, 72, 0, 4, 1, 98, 111, 114, 2, 116, 12, 12, 3, 6, 114, 0, 1, 100, 97, 114, 97, 112, 2, 107, 115, 0, 1, 100, 97, 114,
+			98, 97, 108, 2, 114, 0, 1, 100, 111, 116, 114, 111, 2, 107, 115, 0, 1, 102, 101, 100, 2, 114, 109, 0, 1, 102, 101, 114, 2, 114,
+			109, 0, 1, 102, 105, 110, 117, 2, 114, 109, 0, 1, 102, 110, 111, 107, 2, 114, 109, 0, 1, 102, 111, 114, 111, 108, 107, 2, 114, 109,
+			0, 1, 104, 99, 97, 107, 2, 116, 0, 1, 104, 110, 114, 111, 98, 2, 108, 109, 0, 1, 107, 115, 105, 116, 114, 97, 2, 107, 0, 1,
+			108, 97, 103, 2, 17, 67, 0, 1, 108, 97, 107, 2, 116, 0, 1, 108, 117, 2, 118, 0, 1, 109, 97, 2, 107, 0, 1, 110, 98, 97,
+			2, 114, 109, 0, 1, 110, 101, 2, 114, 109, 12, 0, 1, 110, 111, 109, 2, 107, 0, 1, 112, 97, 2, 108, 108, 111, 12, 12, 0, 1,
+			112, 109, 111, 107, 2, 115, 116, 0, 1, 114, 111, 116, 2, 110, 116, 111, 0, 1, 114, 116, 115, 101, 114, 101, 112, 2, 106, 107, 97, 0,
+			1, 115, 111, 108, 105, 102, 2, 102, 32, 0, 8, 107, 115, 97, 109, 2, 116, 0, 8, 107, 117, 104, 2, 109, 109, 101, 0, 8, 108, 111,
+			107, 2, 115, 0, 8, 112, 115, 101, 114, 2, 110, 115, 0, 8, 115, 105, 114, 111, 104, 2, 110, 0, 8, 116, 114, 97, 107, 2, 102, 0,
+			8, 118, 101, 114, 2, 108, 118, 0, 108, 1, 114, 116, 10, 2, 108, 101, 110, 28, 33, 0, 112, 116, 101, 114, 1, 107, 105, 108, 101, 104,
+			3, 6, 114, 48, 47, 114, 0, 103, 1, 107, 110, 105, 2, 110, 105, 116, 111, 3, 6, 114, 49, 0, 110, 100, 1, 107, 111, 112, 121, 104,
+			2, 101, 114, 3, 6, 114, 50, 72, 0, 4, 108, 1, 104, 10, 2, 28, 33, 12, 3, 6, 114, 55, 0, 108, 1, 107, 111, 10, 2, 28,
+			33, 12, 0, 108, 1, 114, 116, 10, 2, 28, 33, 12, 0, 108, 1, 115, 10, 2, 28, 33, 12, 0, 108, 1, 116, 10, 2, 28, 33, 12,
+			0, 108, 100, 101, 1, 115, 105, 3, 6, 114, 55, 72, 108, 0, 4, 106, 1, 118, 110, 111, 107, 3, 6, 114, 57, 0, 121, 2, 12, 0,
+			105, 97, 8, 110, 97, 114, 97, 112, 3, 6, 114, 57, 110, 0, 4, 103, 110, 101, 1, 99, 115, 97, 103, 3, 6, 114, 68, 57, 108, 0,
+			103, 110, 101, 1, 116, 115, 97, 98, 0, 114, 101, 114, 1, 115, 3, 7, 39, 12, 114, 0, 8, 2, 109, 17, 67, 3, 7, 114, 0, 103,
+			110, 1, 108, 117, 111, 98, 2, 101, 3, 7, 114, 68, 57, 0, 1, 114, 116, 107, 101, 108, 101, 3, 8, 39, 0, 114, 1, 115, 3, 8,
+			114, 0, 98, 108, 105, 103, 101, 1, 32, 101, 115, 115, 101, 108, 98, 111, 110, 3, 21, 102, 114, 0, 1, 100, 2, 119, 110, 105, 110, 103,
+			3, 35, 0, 117, 110, 3, 35, 40, 50, 0, 117, 116, 104, 1, 115, 3, 35, 40, 87, 0, 117, 116, 108, 97, 119, 3, 35, 58, 47, 55,
+			113, 12, 0, 4, 117, 116, 8, 100, 110, 97, 104, 3, 35, 58, 72, 0, 117, 116, 8, 110, 111, 114, 116, 115, 97, 0, 117, 116, 8, 112,
+			111, 114, 100, 0, 117, 116, 115, 105, 100, 101, 114, 3, 35, 58, 72, 89, 35, 57, 72, 114, 0, 4, 3, 39, 0, 1, 17, 67, 2, 18,
+			66, 97, 12, 0, 1, 17, 67, 2, 18, 68, 11, 97, 0, 1, 17, 67, 2, 18, 71, 18, 69, 12, 12, 0, 1, 17, 67, 2, 103, 12,
+			0, 1, 17, 67, 2, 107, 18, 69, 12, 0, 1, 17, 67, 2, 109, 18, 76, 0, 1, 17, 67, 102, 2, 116, 18, 69, 0, 1, 18, 66,
+			2, 109, 18, 69, 0, 1, 18, 66, 2, 109, 101, 0, 1, 18, 66, 2, 109, 109, 97, 110, 12, 0, 1, 18, 68, 2, 18, 74, 18, 69,
+			0, 1, 18, 68, 2, 18, 74, 18, 76, 0, 1, 18, 71, 2, 116, 18, 76, 0, 1, 18, 73, 2, 108, 12, 0, 1, 18, 73, 2, 116,
+			18, 69, 0, 1, 18, 74, 2, 100, 12, 0, 1, 18, 75, 2, 18, 71, 114, 18, 76, 0, 1, 97, 109, 2, 12, 0, 1, 98, 2, 100,
+			0, 1, 98, 2, 103, 111, 114, 109, 0, 1, 98, 2, 109, 0, 1, 98, 2, 109, 109, 12, 12, 0, 1, 98, 2, 112, 195, 166, 108, 0,
+			1, 98, 97, 110, 2, 12, 0, 1, 98, 109, 117, 106, 0, 1, 98, 109, 121, 115, 2, 108, 0, 1, 100, 2, 18, 66, 114, 18, 69, 0,
+			1, 100, 101, 112, 114, 111, 116, 0, 1, 101, 100, 105, 118, 0, 1, 102, 2, 98, 0, 1, 102, 2, 100, 12, 0, 1, 102, 2, 114, 18,
+			69, 12, 0, 1, 103, 2, 100, 12, 0, 1, 103, 2, 115, 108, 97, 118, 0, 1, 103, 97, 100, 2, 103, 0, 1, 104, 2, 18, 74, 18,
+			69, 12, 0, 1, 104, 2, 98, 12, 0, 1, 104, 2, 115, 112, 105, 116, 0, 1, 104, 2, 115, 116, 12, 0, 1, 104, 2, 118, 101, 114,
+			101, 0, 1, 104, 99, 2, 107, 111, 12, 0, 1, 105, 100, 97, 114, 0, 1, 106, 2, 100, 12, 0, 1, 106, 103, 2, 114, 116, 0, 1,
+			106, 107, 2, 114, 116, 0, 1, 106, 115, 2, 102, 0, 1, 107, 2, 17, 67, 11, 18, 69, 12, 12, 0, 1, 107, 2, 100, 12, 0, 1,
+			107, 2, 100, 101, 12, 0, 1, 107, 2, 107, 97, 0, 1, 107, 2, 108, 108, 101, 103, 12, 12, 12, 0, 1, 107, 2, 108, 108, 101, 107,
+			116, 32, 0, 1, 107, 2, 109, 109, 101, 110, 116, 17, 65, 12, 12, 12, 0, 1, 107, 2, 109, 109, 101, 114, 99, 105, 101, 108, 12, 12,
+			0, 1, 107, 2, 109, 112, 97, 103, 0, 1, 107, 2, 110, 116, 111, 114, 0, 1, 107, 2, 115, 107, 111, 0, 1, 107, 2, 115, 116, 18,
+			69, 0, 1, 107, 2, 115, 116, 32, 0, 1, 107, 2, 115, 116, 101, 115, 107, 97, 98, 0, 1, 107, 2, 115, 116, 101, 115, 107, 97, 102,
+			116, 0, 1, 107, 110, 97, 98, 2, 115, 112, 0, 1, 107, 111, 107, 2, 115, 0, 1, 107, 114, 97, 110, 0, 1, 107, 114, 97, 110, 2,
+			17, 67, 0, 1, 107, 115, 2, 115, 118, 195, 166, 114, 116, 101, 0, 1, 107, 115, 97, 107, 0, 1, 107, 115, 105, 100, 0, 1, 107, 115,
+			111, 114, 107, 105, 109, 2, 112, 0, 1, 108, 2, 18, 68, 12, 0, 1, 108, 2, 18, 74, 17, 67, 18, 69, 0, 1, 108, 2, 107, 17,
+			65, 0, 1, 108, 2, 107, 117, 109, 0, 1, 108, 97, 103, 2, 112, 112, 101, 114, 101, 0, 1, 108, 101, 109, 21, 2, 110, 0, 1, 108,
+			105, 107, 0, 1, 108, 105, 112, 2, 116, 0, 1, 108, 107, 2, 110, 0, 1, 108, 111, 107, 2, 115, 115, 97, 0, 1, 108, 111, 107, 2,
+			115, 116, 0, 1, 108, 112, 2, 109, 12, 0, 1, 108, 115, 2, 103, 0, 1, 109, 2, 115, 107, 101, 0, 1, 109, 2, 115, 115, 101, 116,
+			12, 12, 0, 1, 109, 101, 2, 12, 0, 1, 109, 114, 101, 116, 0, 1, 110, 2, 109, 105, 0, 1, 110, 17, 67, 2, 18, 71, 12, 12,
+			0, 1, 110, 97, 107, 2, 110, 0, 1, 110, 103, 2, 109, 0, 1, 110, 103, 111, 107, 101, 114, 2, 115, 99, 101, 114, 101, 0, 1, 110,
+			107, 2, 106, 0, 1, 110, 111, 2, 109, 0, 1, 112, 2, 107, 101, 114, 12, 12, 0, 1, 112, 2, 108, 0, 1, 112, 2, 108, 32, 0,
+			1, 112, 2, 108, 115, 107, 0, 1, 112, 2, 115, 116, 116, 114, 97, 117, 0, 1, 112, 101, 100, 2, 116, 0, 1, 114, 2, 18, 71, 18,
+			70, 12, 0, 1, 114, 2, 100, 12, 0, 1, 114, 2, 107, 18, 76, 12, 0, 1, 114, 2, 109, 17, 67, 18, 70, 0, 1, 114, 2, 115,
+			116, 12, 0, 1, 114, 17, 67, 2, 109, 18, 69, 0, 1, 114, 17, 67, 2, 115, 107, 0, 1, 114, 18, 71, 2, 106, 0, 1, 114, 18,
+			73, 2, 18, 66, 101, 110, 0, 1, 114, 18, 73, 2, 116, 18, 69, 0, 1, 114, 98, 2, 100, 101, 114, 0, 1, 114, 98, 2, 115, 116,
+			101, 110, 0, 1, 114, 100, 110, 121, 115, 2, 109, 0, 1, 114, 100, 121, 104, 0, 1, 114, 101, 116, 101, 104, 0, 1, 114, 102, 2, 109,
+			97, 0, 1, 114, 102, 2, 115, 115, 12, 12, 0, 1, 114, 103, 2, 115, 115, 105, 12, 0, 1, 114, 107, 2, 109, 0, 1, 114, 107, 2,
+			115, 0, 1, 114, 107, 2, 118, 195, 166, 0, 1, 114, 107, 105, 109, 0, 1, 114, 112, 2, 98, 108, 101, 0, 1, 114, 112, 2, 115, 12,
+			0, 1, 114, 112, 2, 115, 116, 105, 0, 1, 114, 112, 2, 118, 17, 65, 12, 0, 1, 114, 116, 2, 17, 67, 18, 69, 0, 1, 114, 116,
+			2, 106, 97, 110, 0, 1, 114, 116, 2, 109, 0, 1, 114, 116, 2, 109, 109, 101, 12, 0, 1, 114, 116, 2, 115, 98, 101, 107, 101, 110,
+			100, 0, 1, 114, 116, 2, 115, 114, 101, 116, 110, 105, 110, 103, 0, 1, 114, 116, 2, 115, 115, 97, 103, 0, 1, 114, 116, 2, 115, 115,
+			107, 105, 102, 116, 12, 0, 1, 114, 116, 2, 118, 12, 0, 1, 114, 116, 101, 109, 0, 1, 114, 116, 110, 111, 107, 2, 108, 108, 195, 184,
+			114, 0, 1, 115, 2, 108, 12, 0, 1, 115, 2, 108, 108, 121, 115, 12, 12, 0, 1, 115, 2, 112, 114, 97, 0, 1, 116, 2, 116, 17,
+			65, 0, 1, 116, 97, 2, 109, 0, 1, 116, 101, 98, 2, 110, 101, 116, 0, 1, 116, 110, 111, 107, 0, 1, 116, 115, 2, 100, 32, 0,
+			1, 116, 115, 2, 109, 18, 69, 0, 1, 116, 115, 101, 116, 2, 115, 116, 101, 114, 111, 110, 0, 1, 116, 115, 105, 114, 97, 2, 107, 0,
+			1, 116, 117, 97, 2, 12, 0, 1, 118, 2, 107, 18, 76, 12, 0, 1, 122, 105, 107, 115, 2, 102, 114, 101, 110, 0, 2, 18, 66, 18,
+			69, 0, 2, 18, 71, 18, 69, 12, 0, 2, 18, 71, 18, 76, 12, 0, 2, 98, 108, 18, 69, 0, 2, 98, 108, 97, 12, 0, 2, 107,
+			97, 17, 67, 0, 2, 108, 115, 101, 110, 0, 2, 112, 112, 111, 115, 105, 116, 0, 2, 115, 107, 111, 12, 0, 2, 115, 116, 105, 110, 100,
+			105, 0, 2, 118, 101, 106, 12, 0, 2, 118, 105, 12, 0, 8, 17, 67, 2, 32, 0, 8, 107, 2, 100, 12, 0, 8, 116, 115, 2, 114,
+			32, 0, 100, 1, 103, 2, 115, 0, 111, 1, 112, 109, 97, 104, 115, 0, 4, 1, 101, 108, 2, 112, 97, 114, 3, 39, 6, 0, 1, 115,
+			2, 109, 97, 108, 0, 8, 107, 2, 109, 112, 97, 115, 0, 8, 114, 107, 2, 107, 101, 116, 116, 0, 8, 115, 111, 108, 105, 102, 2, 102,
+			105, 32, 0, 8, 116, 2, 98, 97, 107, 0, 105, 114, 101, 1, 109, 101, 109, 3, 39, 6, 112, 12, 0, 4, 1, 107, 2, 109, 97, 3,
+			39, 12, 0, 1, 108, 2, 116, 117, 115, 0, 1, 109, 115, 2, 107, 105, 110, 103, 0, 2, 115, 18, 76, 0, 101, 1, 17, 67, 2, 100,
+			101, 0, 111, 1, 122, 0, 4, 103, 101, 100, 1, 102, 3, 39, 12, 13, 86, 0, 118, 101, 100, 1, 104, 0, 4, 101, 1, 107, 115, 2,
+			100, 101, 3, 39, 13, 0, 101, 1, 114, 116, 101, 98, 2, 100, 101, 0, 4, 114, 1, 107, 2, 107, 195, 165, 98, 101, 3, 39, 34, 0,
+			114, 1, 107, 2, 112, 105, 0, 114, 1, 107, 2, 112, 114, 195, 184, 118, 101, 0, 114, 1, 116, 115, 2, 12, 0, 118, 1, 108, 2, 101,
+			12, 3, 39, 40, 0, 39, 8, 3, 39, 40, 6, 0, 108, 108, 8, 114, 2, 105, 110, 103, 32, 115, 116, 111, 110, 101, 3, 39, 40, 55,
+			0, 4, 97, 109, 101, 115, 1, 115, 3, 39, 40, 65, 89, 0, 108, 109, 101, 115, 8, 104, 2, 32, 0, 104, 105, 111, 3, 39, 40, 107,
+			6, 35, 57, 39, 0, 116, 116, 101, 1, 114, 102, 2, 12, 12, 3, 39, 47, 6, 36, 0, 112, 1, 107, 115, 10, 2, 105, 28, 33, 3,
+			39, 48, 6, 0, 112, 111, 115, 1, 114, 112, 97, 3, 39, 48, 6, 39, 0, 107, 111, 1, 103, 110, 105, 110, 101, 109, 2, 107, 3, 39,
+			49, 6, 114, 0, 107, 111, 110, 1, 107, 3, 39, 49, 6, 114, 68, 0, 107, 108, 97, 104, 111, 109, 97, 3, 39, 49, 55, 110, 107, 6,
+			39, 65, 110, 0, 114, 1, 114, 2, 103, 3, 39, 51, 0, 108, 1, 100, 105, 21, 3, 39, 55, 0, 108, 105, 101, 116, 1, 103, 110, 111,
+			109, 3, 39, 55, 6, 37, 13, 86, 0, 4, 103, 1, 108, 107, 3, 39, 58, 0, 103, 1, 114, 112, 115, 0, 103, 1, 116, 2, 116, 117,
+			114, 0, 103, 8, 118, 2, 32, 0, 118, 1, 108, 2, 32, 109, 105, 103, 32, 0, 103, 101, 1, 108, 107, 3, 39, 58, 4, 13, 0, 103,
+			1, 104, 2, 97, 110, 3, 39, 58, 81, 0, 109, 1, 107, 114, 97, 115, 3, 39, 65, 0, 4, 109, 109, 101, 1, 110, 101, 114, 2, 12,
+			3, 39, 65, 6, 36, 0, 109, 109, 195, 169, 1, 110, 101, 114, 2, 12, 0, 109, 101, 116, 1, 107, 3, 39, 65, 6, 36, 47, 0, 109,
+			109, 101, 114, 115, 1, 107, 2, 32, 3, 39, 65, 6, 109, 34, 89, 0, 109, 97, 110, 8, 3, 39, 65, 6, 110, 50, 0, 103, 110, 101,
+			115, 101, 1, 108, 111, 98, 3, 39, 68, 6, 109, 89, 108, 0, 98, 111, 8, 3, 39, 71, 6, 39, 0, 114, 103, 1, 101, 103, 2, 105,
+			110, 101, 3, 39, 81, 0, 103, 101, 1, 116, 111, 102, 2, 110, 3, 39, 81, 6, 36, 0, 103, 110, 1, 114, 112, 2, 111, 3, 39, 81,
+			50, 0, 112, 104, 105, 97, 1, 115, 3, 39, 83, 6, 37, 110, 0, 4, 118, 1, 107, 2, 101, 110, 100, 3, 39, 84, 0, 118, 1, 107,
+			117, 118, 2, 97, 114, 0, 118, 1, 110, 2, 97, 12, 12, 0, 118, 1, 110, 2, 101, 108, 108, 0, 118, 1, 110, 2, 101, 109, 12, 0,
+			118, 1, 110, 2, 105, 99, 17, 65, 0, 118, 1, 110, 101, 114, 2, 101, 114, 0, 118, 1, 114, 116, 110, 111, 107, 2, 101, 114, 115, 0,
+			118, 1, 116, 2, 195, 184, 114, 0, 118, 1, 116, 97, 2, 101, 114, 0, 118, 2, 195, 166, 114, 110, 12, 0, 118, 1, 108, 115, 2, 97,
+			107, 3, 39, 84, 6, 0, 118, 105, 8, 114, 112, 2, 110, 115, 3, 39, 84, 6, 36, 0, 4, 100, 1, 103, 2, 116, 17, 65, 103, 3,
+			39, 86, 0, 100, 1, 103, 2, 116, 114, 0, 100, 1, 108, 98, 0, 115, 1, 114, 116, 2, 115, 97, 109, 102, 117, 110, 100, 3, 39, 89,
+			0, 115, 104, 1, 107, 2, 101, 114, 12, 3, 39, 91, 0, 115, 104, 1, 104, 115, 2, 111, 110, 101, 3, 39, 91, 6, 0, 105, 1, 116,
+			2, 108, 3, 39, 110, 0, 111, 114, 1, 107, 2, 100, 3, 39, 114, 12, 19, 0, 111, 118, 110, 1, 114, 107, 105, 109, 3, 39, 114, 58,
+			50, 0, 4, 111, 1, 119, 3, 40, 0, 117, 0, 117, 1, 108, 0, 4, 111, 3, 40, 12, 0, 111, 1, 122, 2, 109, 0, 4, 111, 100,
+			1, 102, 3, 40, 12, 72, 0, 111, 100, 1, 104, 0, 117, 99, 104, 101, 1, 100, 3, 40, 12, 91, 0, 111, 107, 101, 1, 114, 98, 3,
+			40, 49, 0, 111, 110, 97, 103, 104, 3, 40, 50, 110, 0, 4, 111, 103, 105, 101, 1, 98, 3, 40, 81, 37, 0, 111, 103, 105, 101, 1,
+			119, 0, 103, 110, 1, 108, 111, 99, 2, 101, 3, 55, 6, 114, 68, 57, 0, 105, 120, 1, 114, 99, 3, 58, 6, 35, 0, 105, 115, 1,
+			110, 97, 100, 3, 58, 6, 112, 0, 105, 110, 116, 1, 112, 2, 32, 3, 58, 109, 68, 0, 105, 110, 116, 101, 110, 101, 1, 112, 3, 58,
+			109, 68, 13, 50, 108, 0, 105, 110, 116, 101, 1, 112, 3, 58, 109, 68, 47, 13, 0, 105, 110, 116, 101, 114, 1, 112, 3, 58, 109, 68,
+			47, 114, 0, 119, 1, 116, 2, 101, 114, 3, 112, 40, 0, 117, 1, 114, 103, 2, 99, 104, 111, 3, 112, 58, 0, 117, 115, 101, 1, 104,
+			3, 112, 58, 89, 0, 4, 1, 107, 2, 98, 98, 101, 114, 3, 113, 0, 1, 112, 2, 114, 0, 1, 112, 2, 115, 116, 109, 111, 100, 0,
+			1, 114, 17, 67, 2, 18, 66, 18, 69, 0, 1, 118, 115, 2, 103, 101, 114, 0, 4, 97, 114, 1, 98, 2, 100, 105, 110, 103, 3, 113,
+			12, 0, 114, 2, 108, 0, 117, 114, 110, 101, 1, 98, 3, 113, 12, 50, 0, 114, 103, 2, 101, 108, 3, 113, 12, 58, 0, 121, 101, 114,
+			8, 102, 3, 113, 13, 57, 6, 36, 0, 121, 101, 114, 101, 110, 8, 102, 3, 113, 13, 57, 6, 36, 108, 50, 0, 121, 101, 114, 1, 102,
+			3, 113, 13, 57, 36, 0, 114, 108, 121, 8, 2, 32, 3, 113, 16, 55, 6, 37, 0, 1, 104, 2, 108, 100, 105, 110, 103, 3, 113, 40,
+			0, 118, 2, 101, 114, 104, 101, 97, 100, 3, 113, 40, 84, 0, 97, 115, 116, 98, 101, 101, 102, 1, 114, 3, 113, 40, 89, 72, 71, 37,
+			83, 0, 116, 105, 111, 110, 1, 109, 119, 111, 108, 115, 3, 113, 40, 91, 20, 13, 50, 0, 4, 1, 103, 2, 107, 97, 114, 116, 12, 3,
+			113, 58, 0, 117, 1, 115, 2, 108, 0, 112, 114, 97, 104, 3, 113, 58, 48, 34, 35, 0, 4, 108, 101, 1, 112, 109, 105, 119, 3, 113,
+			58, 55, 0, 108, 108, 8, 114, 2, 32, 12, 0, 108, 108, 115, 8, 114, 2, 32, 3, 113, 58, 55, 89, 0, 4, 118, 1, 108, 2, 101,
+			110, 12, 12, 3, 113, 84, 0, 118, 1, 118, 2, 101, 0, 4, 1, 17, 67, 2, 17, 67, 11, 101, 116, 32, 12, 12, 3, 114, 0, 1,
+			17, 67, 2, 18, 66, 12, 0, 1, 17, 67, 2, 18, 66, 116, 0, 1, 17, 67, 2, 18, 68, 11, 0, 1, 17, 67, 2, 18, 74, 110,
+			0, 1, 17, 67, 2, 98, 98, 101, 114, 32, 12, 12, 0, 1, 17, 67, 2, 103, 103, 12, 0, 1, 17, 67, 2, 109, 0, 1, 17, 67,
+			2, 109, 18, 69, 0, 1, 17, 67, 2, 114, 114, 0, 1, 17, 67, 2, 115, 17, 67, 18, 76, 12, 0, 1, 17, 67, 102, 2, 116, 0,
+			1, 18, 66, 2, 108, 100, 0, 1, 18, 66, 2, 109, 0, 1, 18, 67, 2, 18, 71, 11, 101, 12, 12, 0, 1, 18, 67, 2, 18, 71,
+			108, 101, 12, 0, 1, 18, 67, 2, 115, 116, 0, 1, 18, 68, 2, 18, 74, 0, 1, 18, 71, 2, 116, 0, 1, 18, 73, 2, 102, 0,
+			1, 18, 73, 2, 108, 17, 67, 12, 0, 1, 18, 73, 2, 116, 0, 1, 18, 73, 2, 116, 116, 0, 1, 18, 75, 2, 110, 17, 67, 0,
+			1, 97, 17, 67, 2, 115, 0, 1, 98, 2, 18, 66, 18, 69, 0, 1, 98, 2, 115, 115, 0, 1, 99, 2, 99, 107, 0, 1, 99, 2,
+			114, 115, 0, 1, 100, 2, 103, 32, 12, 0, 1, 100, 2, 110, 97, 108, 100, 0, 1, 102, 2, 110, 116, 0, 1, 103, 2, 100, 116, 12,
+			0, 1, 104, 2, 99, 107, 12, 0, 1, 104, 2, 102, 0, 1, 104, 2, 108, 108, 12, 0, 1, 104, 2, 110, 103, 0, 1, 104, 2, 115,
+			112, 105, 99, 101, 0, 1, 104, 99, 2, 107, 12, 0, 1, 104, 116, 2, 109, 97, 115, 32, 0, 1, 106, 2, 18, 66, 11, 18, 76, 0,
+			1, 106, 2, 98, 21, 0, 1, 106, 2, 114, 116, 0, 1, 107, 2, 98, 108, 105, 110, 103, 0, 1, 107, 2, 103, 108, 12, 0, 1, 107,
+			2, 103, 116, 12, 0, 1, 107, 2, 110, 17, 67, 0, 1, 107, 2, 112, 97, 114, 0, 1, 107, 2, 115, 116, 32, 111, 103, 32, 108, 111,
+			103, 105, 0, 1, 107, 2, 115, 116, 98, 97, 114, 0, 1, 107, 2, 115, 116, 112, 108, 97, 110, 0, 1, 107, 2, 115, 116, 112, 114, 105,
+			115, 0, 1, 107, 2, 115, 116, 114, 195, 165, 100, 0, 1, 107, 2, 115, 116, 115, 107, 111, 108, 101, 0, 1, 107, 2, 115, 116, 116, 105,
+			108, 115, 107, 117, 100, 0, 1, 107, 2, 115, 116, 118, 97, 110, 101, 0, 1, 107, 32, 112, 97, 114, 107, 115, 2, 115, 116, 0, 1, 107,
+			101, 98, 2, 115, 116, 0, 1, 107, 101, 115, 108, 101, 104, 2, 115, 116, 0, 1, 107, 111, 114, 102, 2, 115, 116, 0, 1, 107, 115, 2,
+			100, 0, 1, 107, 115, 100, 101, 104, 100, 110, 117, 115, 2, 115, 116, 0, 1, 107, 115, 103, 97, 100, 114, 101, 118, 104, 2, 115, 116, 0,
+			1, 107, 121, 111, 98, 2, 116, 0, 1, 108, 2, 18, 66, 11, 18, 76, 0, 1, 108, 2, 100, 116, 114, 195, 166, 107, 0, 1, 108, 2,
+			103, 102, 105, 108, 0, 1, 108, 2, 116, 0, 1, 108, 18, 71, 2, 18, 74, 0, 1, 108, 32, 101, 107, 107, 166, 195, 114, 116, 2, 100,
+			0, 1, 108, 32, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 114, 101, 107, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 115,
+			101, 107, 107, 166, 195, 114, 116, 2, 100, 0, 1, 108, 32, 116, 101, 107, 107, 117, 114, 116, 2, 100, 0, 1, 108, 98, 2, 107, 12, 0,
+			1, 108, 100, 114, 111, 106, 2, 100, 0, 1, 108, 102, 2, 115, 0, 1, 108, 107, 2, 115, 116, 114, 101, 0, 1, 108, 108, 97, 102, 2,
+			115, 0, 1, 108, 114, 111, 102, 2, 100, 115, 0, 1, 109, 2, 110, 105, 116, 111, 114, 0, 1, 110, 2, 110, 17, 67, 0, 1, 110, 2,
+			115, 32, 0, 1, 110, 107, 2, 116, 110, 0, 1, 110, 107, 2, 116, 116, 0, 1, 110, 115, 2, 116, 0, 1, 112, 2, 108, 116, 0, 1,
+			112, 2, 112, 105, 100, 111, 108, 12, 12, 0, 1, 112, 107, 99, 97, 106, 2, 116, 0, 1, 112, 115, 2, 110, 115, 111, 114, 0, 1, 114,
+			2, 17, 67, 11, 12, 12, 0, 1, 114, 2, 99, 107, 0, 1, 114, 2, 109, 107, 97, 103, 101, 0, 1, 114, 18, 73, 2, 18, 66, 0,
+			1, 114, 18, 73, 2, 116, 0, 1, 114, 98, 2, 100, 12, 0, 1, 114, 100, 2, 115, 99, 104, 101, 0, 1, 114, 100, 32, 116, 101, 2,
+			103, 0, 1, 114, 102, 2, 109, 0, 1, 114, 102, 2, 110, 116, 0, 1, 114, 102, 2, 115, 116, 12, 0, 1, 114, 107, 2, 107, 101, 116,
+			17, 67, 0, 1, 114, 108, 97, 118, 104, 2, 115, 0, 1, 114, 112, 2, 102, 32, 0, 1, 114, 116, 2, 106, 12, 0, 1, 114, 116, 2,
+			107, 108, 0, 1, 114, 116, 2, 108, 100, 0, 1, 114, 116, 2, 116, 115, 0, 1, 114, 116, 110, 111, 107, 2, 108, 0, 1, 114, 116, 120,
+			111, 102, 2, 116, 0, 1, 115, 2, 106, 97, 12, 0, 1, 115, 21, 2, 110, 32, 0, 1, 115, 21, 2, 110, 115, 32, 0, 1, 116, 2,
+			103, 116, 12, 0, 1, 116, 2, 108, 107, 0, 1, 116, 2, 109, 97, 115, 32, 0, 1, 116, 2, 116, 0, 1, 116, 115, 2, 112, 12, 12,
+			0, 1, 118, 2, 103, 0, 1, 118, 2, 103, 116, 12, 0, 1, 118, 108, 101, 115, 2, 112, 0, 2, 18, 68, 25, 12, 0, 2, 18, 71,
+			12, 0, 2, 98, 98, 17, 65, 12, 12, 12, 0, 2, 99, 104, 101, 0, 2, 102, 17, 67, 0, 2, 107, 0, 2, 108, 100, 32, 0, 2,
+			108, 100, 101, 0, 2, 108, 100, 101, 32, 0, 2, 109, 32, 0, 2, 109, 97, 100, 114, 101, 115, 115, 101, 0, 2, 109, 101, 103, 110, 0,
+			2, 109, 107, 0, 2, 109, 114, 195, 165, 100, 0, 2, 109, 115, 0, 2, 109, 116, 97, 108, 101, 0, 2, 112, 97, 100, 12, 0, 2, 112,
+			101, 102, 116, 101, 114, 12, 0, 2, 112, 105, 108, 100, 110, 101, 12, 0, 2, 112, 111, 102, 114, 101, 0, 2, 112, 111, 102, 114, 101, 12,
+			0, 2, 114, 103, 97, 12, 0, 2, 115, 17, 67, 18, 69, 0, 2, 116, 116, 97, 119, 97, 0, 2, 116, 116, 101, 110, 100, 101, 0, 2,
+			116, 116, 111, 0, 2, 120, 0, 8, 2, 108, 105, 118, 101, 114, 0, 8, 2, 109, 97, 114, 0, 8, 98, 2, 110, 100, 32, 0, 8, 98,
+			2, 110, 110, 32, 0, 8, 100, 2, 110, 32, 0, 8, 104, 2, 108, 105, 100, 97, 121, 0, 8, 104, 2, 116, 32, 0, 8, 108, 2, 103,
+			32, 0, 8, 108, 2, 115, 0, 8, 109, 2, 114, 116, 0, 8, 112, 2, 116, 32, 0, 8, 114, 2, 98, 105, 110, 12, 12, 0, 100, 1,
+			108, 107, 2, 115, 0, 100, 1, 114, 116, 2, 115, 0, 103, 1, 107, 101, 114, 2, 110, 111, 115, 99, 101, 114, 101, 0, 103, 2, 102, 105,
+			114, 115, 0, 103, 2, 116, 114, 101, 100, 105, 118, 101, 0, 114, 1, 110, 111, 100, 0, 114, 1, 112, 2, 99, 0, 114, 1, 116, 2, 32,
+			0, 114, 1, 116, 2, 101, 110, 0, 114, 1, 116, 2, 110, 121, 0, 114, 1, 116, 2, 115, 0, 114, 1, 116, 111, 109, 0, 114, 1, 116,
+			115, 97, 112, 0, 117, 114, 1, 98, 114, 97, 104, 0, 1, 112, 2, 115, 116, 121, 114, 12, 3, 114, 6, 0, 4, 111, 114, 1, 108, 102,
+			3, 114, 12, 0, 111, 114, 101, 1, 109, 0, 114, 1, 107, 2, 112, 0, 114, 1, 116, 2, 116, 3, 114, 12, 19, 0, 105, 108, 8, 2,
+			32, 3, 114, 12, 37, 59, 0, 105, 115, 1, 110, 105, 108, 108, 105, 3, 114, 12, 57, 0, 114, 103, 2, 12, 3, 114, 12, 58, 0, 4,
+			103, 1, 100, 108, 108, 117, 98, 3, 114, 12, 81, 0, 114, 103, 2, 105, 0, 114, 115, 1, 107, 3, 114, 12, 89, 0, 4, 114, 1, 114,
+			114, 101, 116, 3, 114, 34, 0, 114, 2, 107, 12, 12, 0, 114, 101, 103, 111, 110, 112, 105, 110, 101, 3, 114, 34, 36, 81, 114, 50, 15,
+			48, 35, 57, 50, 0, 4, 103, 1, 110, 107, 3, 114, 40, 0, 118, 2, 101, 12, 0, 118, 2, 114, 101, 0, 116, 101, 108, 101, 1, 107,
+			2, 116, 3, 114, 47, 13, 55, 6, 109, 0, 116, 100, 111, 103, 1, 104, 3, 114, 47, 72, 114, 81, 0, 4, 99, 99, 1, 114, 98, 2,
+			111, 108, 105, 3, 114, 49, 0, 103, 104, 1, 103, 32, 110, 97, 118, 0, 110, 110, 121, 1, 115, 3, 114, 50, 37, 0, 110, 116, 97, 110,
+			97, 1, 109, 3, 114, 50, 47, 6, 110, 50, 110, 0, 110, 100, 1, 108, 98, 3, 114, 50, 72, 0, 110, 100, 111, 110, 1, 108, 3, 114,
+			50, 72, 114, 50, 0, 110, 103, 1, 107, 2, 114, 101, 115, 3, 114, 50, 81, 0, 110, 111, 1, 100, 2, 118, 97, 110, 3, 114, 50, 108,
+			0, 108, 105, 115, 104, 1, 112, 3, 114, 55, 37, 91, 0, 108, 103, 116, 1, 115, 3, 114, 55, 47, 0, 108, 108, 97, 114, 1, 100, 3,
+			114, 55, 114, 0, 105, 1, 110, 97, 104, 3, 114, 57, 0, 4, 105, 110, 116, 1, 112, 2, 101, 114, 101, 3, 114, 57, 50, 47, 0, 105,
+			110, 116, 1, 112, 32, 116, 115, 101, 119, 0, 121, 99, 101, 1, 114, 3, 114, 57, 89, 0, 121, 101, 117, 114, 1, 118, 3, 114, 57, 118,
+			12, 34, 0, 4, 118, 1, 17, 67, 2, 12, 3, 114, 58, 0, 118, 1, 108, 112, 2, 12, 12, 0, 118, 2, 101, 114, 115, 12, 12, 0,
+			118, 2, 110, 0, 103, 114, 101, 1, 108, 3, 114, 58, 34, 114, 0, 103, 110, 1, 17, 67, 3, 114, 58, 50, 0, 118, 106, 101, 116, 1,
+			115, 3, 114, 58, 57, 6, 109, 47, 0, 109, 107, 111, 2, 115, 116, 3, 114, 65, 49, 114, 0, 109, 98, 97, 121, 1, 98, 3, 114, 65,
+			71, 4, 109, 57, 0, 109, 101, 98, 97, 99, 107, 1, 99, 3, 114, 65, 71, 6, 110, 49, 0, 4, 110, 1, 108, 108, 97, 98, 3, 114,
+			68, 0, 110, 1, 110, 110, 97, 2, 99, 17, 65, 0, 110, 1, 112, 109, 97, 116, 0, 110, 1, 112, 109, 111, 112, 0, 110, 1, 112, 117,
+			107, 0, 110, 1, 116, 101, 98, 0, 103, 110, 97, 99, 1, 99, 3, 114, 68, 35, 49, 0, 98, 121, 8, 114, 2, 110, 12, 12, 3, 114,
+			71, 36, 0, 4, 100, 1, 118, 2, 107, 97, 3, 114, 72, 0, 111, 100, 1, 108, 98, 0, 111, 100, 1, 108, 102, 0, 100, 121, 1, 98,
+			3, 114, 72, 37, 0, 100, 121, 98, 117, 105, 108, 100, 101, 114, 1, 98, 3, 114, 72, 37, 71, 37, 55, 72, 114, 0, 100, 108, 101, 1,
+			106, 3, 114, 72, 55, 108, 0, 100, 102, 97, 116, 104, 101, 114, 1, 103, 3, 114, 72, 83, 112, 86, 114, 0, 4, 1, 108, 2, 103, 98,
+			111, 103, 3, 114, 81, 0, 103, 1, 107, 2, 110, 105, 116, 0, 103, 1, 108, 98, 0, 103, 1, 109, 115, 2, 32, 0, 103, 1, 114, 103,
+			0, 103, 103, 1, 114, 103, 0, 114, 103, 2, 105, 101, 0, 117, 103, 1, 100, 0, 103, 103, 121, 1, 114, 103, 3, 114, 81, 37, 0, 120,
+			102, 111, 114, 100, 3, 114, 81, 89, 83, 114, 12, 72, 0, 117, 103, 104, 3, 114, 83, 0, 102, 102, 115, 105, 100, 101, 3, 114, 83, 89,
+			6, 35, 57, 72, 0, 116, 104, 1, 114, 98, 2, 101, 114, 3, 114, 86, 0, 100, 114, 101, 116, 1, 108, 2, 12, 3, 114, 86, 34, 111,
+			47, 0, 4, 114, 115, 101, 116, 1, 107, 32, 116, 101, 3, 114, 89, 6, 109, 47, 0, 114, 115, 101, 116, 116, 1, 107, 0, 115, 107, 118,
+			97, 1, 109, 3, 114, 89, 49, 84, 6, 110, 0, 115, 99, 97, 114, 3, 114, 89, 49, 112, 0, 115, 99, 111, 101, 1, 114, 3, 114, 89,
+			49, 113, 58, 0, 115, 98, 111, 114, 110, 101, 3, 114, 89, 71, 4, 113, 50, 0, 8, 114, 98, 2, 100, 121, 3, 115, 58, 0, 117, 114,
+			98, 111, 110, 1, 98, 3, 118, 12, 71, 13, 50, 0, 97, 107, 108, 97, 110, 100, 3, 118, 58, 49, 55, 13, 50, 72, 0, 101, 98, 98,
+			101, 108, 115, 1, 103, 3, 118, 71, 13, 55, 89, 0, 7, 6, 112, 0, 4, 1, 109, 121, 115, 2, 116, 111, 109, 3, 0, 2, 115, 121,
+			107, 3, 0, 4, 3, 48, 0, 1, 10, 2, 32, 0, 112, 0, 117, 114, 118, 105, 115, 8, 3, 48, 6, 108, 12, 84, 36, 89, 0, 195,
+			165, 8, 2, 115, 107, 101, 3, 48, 6, 113, 0, 195, 165, 8, 2, 14, 128, 132, 130, 3, 48, 6, 114, 0, 4, 114, 111, 116, 101, 103,
+			101, 3, 48, 34, 39, 72, 13, 91, 6, 36, 0, 114, 111, 116, 101, 103, 195, 169, 0, 114, 101, 115, 98, 121, 116, 101, 114, 105, 97, 110,
+			3, 48, 34, 109, 89, 71, 116, 47, 109, 34, 37, 6, 110, 50, 0, 105, 110, 99, 101, 110, 101, 122, 3, 48, 35, 12, 68, 89, 50, 6,
+			36, 0, 105, 112, 101, 108, 105, 110, 101, 3, 48, 35, 57, 48, 55, 35, 57, 50, 0, 195, 169, 116, 97, 105, 110, 8, 3, 48, 36, 47,
+			6, 110, 68, 0, 101, 110, 101, 108, 111, 112, 101, 3, 48, 36, 50, 6, 109, 55, 39, 48, 37, 0, 105, 116, 99, 104, 112, 105, 110, 101,
+			3, 48, 36, 87, 91, 48, 35, 12, 57, 50, 0, 105, 115, 115, 111, 105, 114, 3, 48, 36, 89, 58, 6, 112, 12, 0, 101, 116, 101, 8,
+			2, 32, 3, 48, 37, 12, 47, 0, 101, 116, 101, 121, 8, 3, 48, 37, 12, 47, 37, 0, 101, 97, 110, 117, 116, 3, 48, 37, 12, 50,
+			114, 72, 0, 101, 97, 99, 101, 3, 48, 37, 12, 89, 0, 105, 99, 107, 117, 2, 112, 3, 48, 37, 49, 6, 114, 0, 105, 103, 103, 121,
+			8, 3, 48, 37, 81, 37, 0, 112, 1, 111, 116, 2, 111, 115, 116, 3, 48, 48, 0, 114, 97, 108, 105, 110, 101, 3, 48, 51, 112, 55,
+			37, 50, 6, 36, 0, 105, 101, 114, 114, 101, 3, 48, 57, 109, 12, 34, 0, 105, 97, 102, 8, 3, 48, 57, 112, 83, 0, 111, 105, 114,
+			111, 116, 8, 3, 48, 58, 112, 34, 6, 39, 0, 111, 105, 116, 105, 101, 114, 8, 3, 48, 58, 112, 47, 57, 6, 36, 0, 97, 105, 103,
+			101, 3, 48, 109, 12, 57, 75, 0, 101, 105, 103, 110, 111, 105, 114, 3, 48, 109, 50, 57, 58, 6, 112, 12, 0, 97, 105, 110, 116, 98,
+			97, 108, 108, 3, 48, 109, 57, 50, 47, 71, 113, 12, 55, 0, 97, 105, 108, 108, 101, 2, 116, 3, 48, 110, 57, 6, 109, 0, 97, 115,
+			97, 100, 101, 110, 97, 3, 48, 110, 89, 110, 72, 6, 37, 50, 110, 0, 97, 115, 115, 97, 103, 101, 114, 8, 3, 48, 110, 89, 110, 89,
+			57, 6, 36, 34, 0, 97, 108, 109, 2, 32, 98, 101, 97, 99, 104, 3, 48, 112, 12, 65, 0, 97, 114, 102, 97, 105, 116, 3, 48, 112,
+			83, 6, 109, 0, 111, 115, 116, 104, 117, 109, 3, 48, 113, 89, 47, 107, 6, 40, 65, 0, 4, 195, 165, 2, 102, 117, 110, 100, 3, 48,
+			114, 0, 195, 165, 2, 108, 195, 166, 103, 0, 195, 165, 2, 118, 105, 114, 107, 0, 195, 165, 8, 2, 108, 105, 100, 101, 0, 195, 165, 8,
+			2, 118, 105, 115, 0, 111, 110, 121, 3, 48, 114, 50, 37, 0, 117, 110, 99, 104, 108, 105, 110, 101, 3, 48, 114, 50, 91, 55, 35, 57,
+			50, 0, 101, 97, 114, 108, 8, 2, 32, 3, 48, 118, 12, 55, 0, 101, 114, 116, 104, 3, 48, 118, 12, 87, 0, 101, 114, 107, 105, 110,
+			115, 3, 48, 118, 49, 36, 50, 89, 0, 101, 114, 99, 121, 3, 48, 118, 89, 37, 0, 101, 117, 103, 101, 111, 116, 3, 48, 118, 91, 6,
+			39, 0, 98, 1, 109, 97, 99, 2, 101, 108, 3, 71, 0, 4, 104, 1, 101, 115, 111, 106, 3, 83, 0, 104, 1, 108, 97, 114, 0, 104,
+			97, 101, 108, 1, 97, 114, 3, 83, 110, 6, 109, 55, 0, 115, 101, 117, 3, 89, 118, 58, 0, 7, 6, 113, 0, 117, 1, 101, 116, 2,
+			105, 108, 97, 3, 6, 49, 0, 117, 101, 1, 21, 3, 8, 49, 0, 3, 49, 0, 117, 101, 116, 1, 117, 111, 98, 3, 49, 7, 36, 0,
+			117, 105, 99, 104, 101, 3, 49, 37, 91, 0, 4, 117, 105, 106, 111, 116, 101, 3, 49, 37, 91, 6, 114, 47, 0, 117, 105, 120, 111, 116,
+			101, 0, 117, 101, 101, 110, 3, 49, 58, 37, 12, 50, 0, 117, 97, 114, 116, 101, 114, 3, 49, 58, 113, 47, 114, 0, 117, 2, 105, 115,
+			108, 105, 110, 103, 3, 49, 84, 0, 117, 105, 2, 122, 3, 49, 84, 37, 0, 117, 101, 98, 101, 99, 3, 49, 84, 37, 71, 6, 109, 49,
+			0, 117, 101, 122, 3, 49, 109, 12, 89, 0, 7, 6, 114, 0, 4, 1, 101, 2, 101, 32, 24, 3, 0, 4, 1, 111, 112, 115, 110, 97,
+			114, 116, 2, 116, 3, 0, 4, 1, 166, 195, 2, 101, 114, 32, 24, 3, 0, 100, 1, 165, 195, 104, 3, 0, 105, 1, 10, 2, 115, 107,
+			28, 33, 3, 8, 51, 37, 0, 100, 1, 165, 195, 104, 2, 101, 3, 12, 0, 97, 109, 105, 114, 101, 122, 3, 21, 101, 115, 0, 4, 1,
+			98, 3, 34, 0, 1, 101, 104, 2, 32, 0, 1, 101, 115, 2, 32, 0, 1, 101, 118, 104, 0, 2, 25, 0, 4, 101, 1, 97, 105, 100,
+			3, 34, 6, 36, 0, 101, 1, 114, 97, 105, 100, 0, 101, 110, 111, 105, 114, 3, 34, 13, 50, 58, 6, 112, 12, 0, 101, 118, 111, 105,
+			114, 1, 32, 117, 97, 3, 34, 13, 58, 6, 35, 12, 34, 0, 105, 99, 107, 115, 104, 97, 119, 3, 34, 36, 49, 91, 114, 12, 0, 105,
+			99, 107, 115, 104, 97, 119, 101, 114, 3, 34, 36, 49, 91, 114, 12, 114, 0, 101, 103, 1, 166, 195, 115, 2, 101, 110, 3, 34, 36, 57,
+			0, 101, 115, 101, 114, 118, 111, 105, 114, 8, 3, 34, 36, 89, 109, 34, 84, 39, 6, 35, 12, 0, 101, 115, 101, 114, 118, 111, 105, 114,
+			3, 34, 36, 89, 109, 34, 84, 39, 35, 12, 0, 4, 101, 97, 108, 105, 116, 121, 3, 34, 37, 6, 110, 55, 37, 47, 37, 0, 101, 97,
+			108, 105, 116, 121, 1, 32, 108, 97, 117, 116, 114, 105, 118, 0, 105, 111, 106, 97, 3, 34, 37, 6, 114, 49, 110, 0, 101, 101, 99, 101,
+			3, 34, 37, 12, 89, 0, 101, 99, 117, 116, 3, 34, 37, 49, 114, 72, 0, 101, 115, 101, 97, 114, 99, 104, 3, 34, 37, 89, 6, 118,
+			12, 76, 0, 105, 99, 104, 101, 108, 105, 101, 117, 3, 34, 37, 91, 55, 57, 6, 118, 0, 111, 117, 103, 101, 3, 34, 40, 12, 91, 0,
+			4, 100, 1, 97, 103, 2, 101, 3, 34, 72, 0, 100, 1, 97, 115, 2, 101, 108, 0, 100, 1, 101, 118, 2, 101, 25, 25, 0, 100, 1,
+			111, 2, 101, 108, 12, 12, 0, 100, 1, 111, 2, 101, 110, 12, 12, 0, 100, 1, 117, 98, 2, 101, 25, 0, 100, 1, 121, 2, 101, 32,
+			0, 97, 106, 97, 104, 3, 34, 112, 75, 110, 0, 4, 101, 1, 21, 2, 32, 3, 34, 114, 0, 101, 1, 103, 2, 32, 0, 101, 1, 118,
+			97, 104, 0, 111, 113, 117, 101, 102, 111, 114, 116, 3, 34, 114, 49, 83, 6, 114, 12, 0, 111, 98, 105, 101, 8, 3, 34, 114, 71, 37,
+			0, 111, 100, 110, 101, 121, 3, 34, 114, 72, 50, 37, 0, 111, 103, 101, 114, 3, 34, 114, 75, 114, 0, 117, 115, 115, 101, 108, 108, 3,
+			34, 114, 89, 14, 55, 0, 117, 115, 104, 109, 111, 114, 101, 3, 34, 114, 91, 65, 113, 12, 0, 111, 97, 100, 8, 2, 32, 3, 34, 118,
+			58, 72, 0, 4, 3, 51, 0, 114, 0, 105, 103, 104, 116, 3, 51, 6, 35, 57, 47, 0, 101, 8, 116, 110, 101, 2, 32, 3, 51, 6,
+			36, 0, 105, 1, 10, 2, 28, 33, 3, 51, 7, 37, 0, 105, 99, 104, 105, 101, 3, 51, 37, 76, 37, 0, 101, 103, 103, 97, 101, 3,
+			51, 109, 81, 109, 57, 0, 101, 97, 103, 97, 110, 3, 51, 109, 81, 110, 50, 0, 101, 115, 111, 108, 117, 116, 105, 111, 110, 3, 51, 109,
+			89, 39, 55, 40, 91, 6, 39, 50, 0, 117, 110, 1, 32, 101, 109, 111, 104, 3, 51, 114, 50, 0, 104, 101, 117, 2, 109, 97, 3, 51,
+			114, 57, 0, 117, 103, 98, 121, 3, 51, 114, 81, 71, 37, 0, 104, 111, 100, 101, 8, 3, 51, 118, 58, 72, 0, 100, 1, 111, 2, 114,
+			105, 110, 3, 72, 0, 4, 101, 1, 101, 100, 2, 115, 3, 114, 0, 101, 1, 101, 106, 2, 115, 0, 101, 1, 166, 195, 2, 32, 24, 0,
+			101, 1, 166, 195, 108, 0, 7, 6, 115, 0, 1, 105, 109, 109, 111, 107, 2, 101, 3, 0, 4, 1, 101, 99, 99, 117, 115, 3, 6, 0,
+			1, 105, 109, 111, 114, 112, 109, 111, 107, 0, 97, 99, 101, 1, 108, 97, 3, 6, 89, 110, 89, 0, 1, 105, 109, 109, 111, 107, 2, 32,
+			3, 8, 0, 4, 99, 1, 97, 98, 97, 116, 2, 111, 3, 8, 89, 49, 0, 99, 1, 105, 115, 110, 97, 114, 102, 2, 111, 0, 111, 109,
+			1, 21, 21, 3, 8, 89, 114, 65, 0, 105, 101, 103, 102, 114, 105, 101, 100, 3, 21, 100, 101, 0, 97, 105, 110, 116, 101, 3, 21, 102,
+			114, 0, 105, 103, 110, 111, 114, 101, 3, 21, 105, 116, 0, 4, 3, 89, 0, 1, 10, 2, 32, 28, 33, 14, 128, 128, 129, 0, 1, 101,
+			99, 98, 97, 0, 1, 101, 99, 101, 114, 0, 1, 101, 99, 120, 101, 0, 1, 101, 100, 101, 108, 114, 101, 100, 110, 97, 0, 1, 110, 101,
+			100, 105, 115, 101, 114, 0, 1, 110, 101, 114, 101, 102, 114, 101, 116, 110, 105, 0, 1, 110, 101, 116, 115, 105, 115, 107, 101, 0, 1, 121,
+			107, 0, 2, 17, 65, 0, 2, 99, 105, 103, 97, 114, 0, 2, 105, 101, 0, 2, 106, 0, 2, 111, 109, 107, 111, 115, 116, 12, 0, 2,
+			115, 104, 0, 99, 2, 101, 0, 115, 0, 99, 1, 105, 100, 2, 105, 112, 3, 89, 6, 0, 99, 101, 110, 101, 1, 105, 2, 115, 3, 89,
+			6, 36, 50, 13, 0, 111, 109, 1, 111, 109, 111, 114, 107, 3, 89, 6, 39, 65, 0, 97, 105, 110, 116, 3, 89, 6, 109, 57, 50, 72,
+			0, 4, 105, 103, 1, 32, 97, 114, 102, 2, 32, 3, 89, 35, 57, 0, 105, 103, 1, 32, 100, 101, 114, 2, 32, 0, 105, 103, 1, 32,
+			100, 111, 108, 2, 32, 0, 105, 103, 1, 32, 100, 184, 195, 98, 2, 32, 0, 105, 103, 1, 32, 100, 184, 195, 107, 115, 2, 32, 0, 105,
+			103, 1, 32, 100, 184, 195, 114, 98, 2, 32, 0, 105, 103, 1, 32, 101, 2, 32, 12, 0, 105, 103, 1, 32, 101, 2, 32, 116, 105, 108,
+			0, 105, 103, 1, 32, 101, 100, 2, 32, 0, 105, 103, 1, 32, 101, 100, 110, 101, 118, 2, 32, 0, 105, 103, 1, 32, 101, 103, 103, 121,
+			104, 2, 32, 0, 105, 103, 1, 32, 101, 108, 184, 195, 102, 2, 32, 0, 105, 103, 1, 32, 101, 114, 166, 195, 108, 107, 114, 101, 2, 32,
+			0, 105, 103, 1, 32, 101, 114, 184, 195, 103, 2, 32, 100, 101, 116, 0, 105, 103, 1, 32, 103, 101, 110, 115, 2, 32, 0, 105, 103, 1,
+			32, 103, 110, 97, 118, 116, 2, 32, 0, 105, 103, 1, 32, 103, 111, 108, 115, 2, 32, 0, 105, 103, 1, 32, 103, 111, 116, 2, 32, 0,
+			105, 103, 1, 32, 107, 97, 2, 32, 0, 105, 103, 1, 32, 107, 105, 103, 2, 32, 0, 105, 103, 1, 32, 107, 108, 111, 102, 32, 114, 101,
+			2, 32, 0, 105, 103, 1, 32, 108, 105, 116, 2, 32, 0, 105, 103, 1, 32, 109, 111, 107, 2, 32, 0, 105, 103, 1, 32, 110, 17, 65,
+			2, 32, 116, 105, 108, 0, 105, 103, 1, 32, 110, 97, 104, 2, 32, 0, 105, 103, 1, 32, 110, 97, 109, 2, 32, 0, 105, 103, 1, 32,
+			110, 101, 100, 2, 32, 0, 105, 103, 1, 32, 110, 117, 104, 2, 32, 0, 105, 103, 1, 32, 111, 114, 116, 101, 98, 2, 32, 0, 105, 103,
+			1, 32, 114, 101, 2, 32, 0, 105, 103, 1, 32, 114, 101, 2, 32, 116, 105, 108, 0, 105, 103, 1, 32, 114, 101, 115, 2, 32, 111, 109,
+			0, 105, 103, 1, 32, 114, 111, 102, 2, 32, 0, 105, 103, 1, 32, 114, 111, 114, 116, 101, 98, 2, 32, 0, 105, 103, 1, 32, 114, 165,
+			195, 2, 32, 0, 105, 103, 1, 32, 114, 165, 195, 108, 115, 2, 32, 0, 105, 103, 1, 32, 114, 184, 195, 2, 32, 0, 105, 103, 1, 32,
+			116, 2, 32, 0, 105, 103, 1, 32, 116, 97, 115, 2, 32, 0, 105, 103, 1, 32, 116, 101, 2, 32, 0, 105, 103, 1, 32, 116, 101, 2,
+			32, 116, 105, 108, 0, 105, 103, 1, 32, 118, 97, 103, 2, 32, 0, 105, 103, 1, 32, 118, 97, 103, 2, 32, 116, 105, 108, 0, 105, 103,
+			1, 32, 165, 195, 108, 115, 2, 32, 0, 105, 103, 1, 32, 165, 195, 112, 2, 32, 0, 105, 103, 1, 32, 165, 195, 115, 2, 32, 111, 109,
+			0, 105, 103, 1, 32, 165, 195, 116, 115, 2, 32, 0, 105, 103, 8, 2, 32, 97, 102, 32, 0, 105, 103, 8, 2, 32, 97, 108, 101, 110,
+			101, 0, 105, 103, 8, 2, 32, 102, 111, 114, 0, 105, 103, 8, 2, 32, 105, 32, 100, 101, 17, 67, 0, 105, 103, 8, 2, 32, 105, 110,
+			100, 32, 0, 105, 103, 8, 2, 32, 109, 101, 100, 0, 105, 103, 8, 2, 32, 111, 109, 0, 105, 103, 8, 2, 32, 111, 118, 101, 114, 0,
+			105, 103, 8, 2, 32, 112, 195, 165, 32, 0, 105, 103, 8, 2, 32, 115, 101, 108, 118, 0, 105, 103, 8, 2, 32, 117, 100, 32, 0, 105,
+			103, 8, 32, 101, 100, 2, 32, 116, 105, 108, 0, 105, 103, 8, 32, 102, 97, 2, 32, 0, 105, 103, 8, 32, 105, 2, 32, 0, 105, 103,
+			8, 32, 110, 97, 104, 2, 32, 0, 105, 103, 104, 116, 115, 101, 101, 105, 110, 103, 3, 89, 35, 57, 47, 89, 37, 12, 36, 68, 0, 99,
+			101, 110, 101, 3, 89, 36, 50, 108, 0, 99, 101, 110, 101, 114, 3, 89, 36, 50, 114, 0, 4, 105, 103, 1, 32, 101, 114, 97, 98, 2,
+			32, 3, 89, 37, 0, 105, 103, 1, 32, 101, 114, 97, 98, 2, 32, 116, 105, 108, 0, 105, 103, 2, 32, 100, 101, 116, 0, 105, 103, 2,
+			32, 117, 110, 100, 115, 107, 121, 108, 100, 12, 0, 101, 97, 116, 116, 108, 101, 3, 89, 37, 6, 110, 47, 13, 55, 0, 101, 121, 109, 111,
+			117, 114, 8, 3, 89, 37, 12, 65, 113, 12, 0, 105, 111, 110, 8, 3, 89, 37, 12, 114, 50, 0, 4, 105, 100, 110, 101, 121, 3, 89,
+			37, 72, 50, 37, 0, 121, 100, 110, 101, 121, 0, 105, 99, 105, 108, 105, 101, 110, 3, 89, 37, 89, 6, 37, 55, 37, 13, 50, 0, 101,
+			97, 115, 111, 110, 8, 3, 89, 37, 89, 13, 50, 0, 111, 105, 103, 110, 3, 89, 39, 110, 68, 0, 105, 111, 117, 120, 3, 89, 40, 12,
+			0, 117, 114, 1, 97, 108, 3, 89, 40, 34, 0, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 8, 3, 89, 40, 71, 89, 47, 37,
+			47, 40, 91, 6, 39, 50, 0, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 3, 89, 40, 71, 89, 47, 37, 47, 40, 91, 39, 50,
+			0, 116, 101, 118, 101, 8, 3, 89, 47, 37, 12, 84, 0, 116, 101, 118, 101, 110, 8, 3, 89, 47, 37, 12, 84, 13, 50, 0, 116, 101,
+			112, 104, 101, 110, 3, 89, 47, 37, 84, 13, 50, 0, 116, 114, 105, 107, 101, 3, 89, 47, 51, 35, 57, 49, 0, 116, 101, 97, 108, 116,
+			104, 3, 89, 47, 109, 55, 87, 0, 116, 97, 116, 101, 1, 32, 101, 114, 105, 112, 109, 101, 2, 32, 3, 89, 47, 109, 57, 47, 0, 116,
+			101, 97, 107, 3, 89, 47, 109, 57, 49, 0, 116, 97, 99, 121, 8, 3, 89, 47, 109, 57, 89, 37, 0, 112, 105, 116, 102, 105, 114, 101,
+			3, 89, 48, 36, 47, 83, 35, 57, 114, 0, 112, 101, 97, 107, 3, 89, 48, 37, 12, 49, 0, 112, 105, 101, 108, 98, 101, 114, 103, 3,
+			89, 48, 37, 55, 71, 118, 12, 81, 0, 112, 101, 99, 105, 97, 108, 2, 32, 98, 114, 97, 110, 99, 104, 3, 89, 48, 109, 89, 57, 108,
+			55, 0, 4, 99, 1, 101, 2, 111, 98, 97, 114, 3, 89, 49, 0, 99, 1, 101, 109, 2, 97, 108, 0, 99, 1, 105, 99, 110, 97, 114,
+			102, 2, 111, 0, 99, 2, 111, 111, 0, 99, 2, 111, 114, 0, 99, 2, 114, 97, 112, 0, 99, 104, 2, 111, 111, 108, 0, 4, 99, 1,
+			97, 109, 2, 97, 114, 97, 3, 89, 49, 6, 0, 99, 1, 105, 100, 2, 111, 117, 110, 116, 0, 99, 111, 114, 116, 1, 101, 3, 89, 49,
+			6, 114, 12, 47, 0, 107, 121, 108, 105, 110, 101, 3, 89, 49, 35, 57, 55, 35, 57, 50, 0, 99, 114, 101, 119, 100, 114, 105, 118, 101,
+			114, 3, 89, 49, 51, 40, 72, 34, 35, 57, 84, 114, 0, 107, 97, 116, 101, 98, 111, 97, 114, 100, 3, 89, 49, 109, 57, 47, 71, 113,
+			12, 72, 0, 99, 111, 2, 116, 3, 89, 49, 114, 0, 99, 111, 110, 101, 3, 89, 49, 114, 50, 0, 108, 105, 109, 108, 105, 110, 101, 3,
+			89, 55, 36, 65, 55, 35, 57, 50, 0, 108, 111, 118, 97, 107, 105, 101, 116, 3, 89, 55, 39, 84, 110, 49, 6, 37, 13, 86, 0, 108,
+			111, 97, 110, 101, 3, 89, 55, 113, 58, 50, 0, 104, 105, 110, 101, 3, 89, 57, 35, 57, 50, 13, 0, 119, 101, 101, 116, 3, 89, 58,
+			37, 12, 47, 0, 119, 97, 110, 101, 101, 3, 89, 58, 114, 50, 37, 0, 109, 105, 108, 101, 121, 3, 89, 65, 35, 57, 55, 37, 0, 109,
+			105, 116, 104, 3, 89, 65, 36, 47, 0, 109, 121, 116, 104, 101, 3, 89, 65, 112, 12, 57, 86, 0, 116, 114, 97, 105, 103, 104, 116, 3,
+			89, 72, 34, 109, 12, 57, 47, 0, 116, 111, 110, 101, 8, 3, 89, 72, 39, 40, 50, 0, 113, 117, 97, 115, 104, 3, 89, 81, 58, 114,
+			91, 0, 99, 104, 119, 101, 105, 122, 3, 89, 84, 35, 57, 47, 89, 0, 101, 105, 110, 101, 3, 89, 109, 50, 108, 0, 97, 105, 100, 1,
+			32, 116, 114, 111, 112, 3, 89, 110, 6, 37, 72, 0, 97, 108, 111, 111, 110, 3, 89, 110, 55, 6, 40, 12, 50, 0, 97, 118, 111, 105,
+			114, 3, 89, 110, 84, 39, 35, 12, 0, 111, 112, 104, 105, 101, 3, 89, 113, 40, 83, 37, 0, 117, 112, 112, 111, 114, 116, 3, 89, 113,
+			48, 6, 114, 34, 72, 0, 4, 195, 165, 1, 32, 100, 101, 109, 2, 32, 3, 89, 114, 0, 195, 165, 1, 32, 100, 108, 111, 104, 2, 32,
+			0, 195, 165, 1, 32, 101, 100, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32, 101, 114, 2, 32, 0, 195, 165, 1, 32, 101, 118, 105,
+			108, 98, 2, 32, 0, 195, 165, 1, 32, 103, 111, 2, 32, 118, 105, 100, 101, 114, 101, 0, 195, 165, 1, 32, 105, 32, 108, 105, 118, 2,
+			32, 0, 195, 165, 1, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32, 114, 2, 32, 98, 97, 110, 103, 101, 0, 195, 165, 1, 32, 114,
+			101, 2, 32, 0, 195, 165, 1, 32, 115, 101, 2, 32, 0, 195, 165, 1, 32, 117, 100, 32, 108, 105, 118, 2, 32, 0, 195, 165, 1, 32,
+			118, 101, 108, 98, 2, 32, 0, 195, 165, 8, 2, 32, 17, 67, 17, 65, 17, 67, 101, 114, 32, 0, 195, 165, 8, 2, 32, 98, 101, 115,
+			118, 195, 166, 114, 108, 105, 103, 0, 195, 165, 8, 2, 32, 98, 108, 101, 118, 32, 0, 195, 165, 8, 2, 32, 98, 108, 105, 118, 101, 114,
+			32, 0, 195, 165, 8, 2, 32, 100, 101, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 100, 101, 110, 32, 109, 195, 165, 0, 195, 165, 8,
+			2, 32, 102, 105, 107, 32, 0, 195, 165, 8, 2, 32, 103, 105, 107, 32, 0, 195, 165, 8, 2, 32, 103, 111, 100, 32, 0, 195, 165, 8,
+			2, 32, 103, 195, 165, 32, 0, 195, 165, 8, 2, 32, 103, 195, 165, 114, 32, 0, 195, 165, 8, 2, 32, 103, 195, 184, 114, 101, 32, 0,
+			195, 165, 8, 2, 32, 104, 17, 65, 110, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 104, 97, 118, 100, 101, 32, 0, 195, 165, 8, 2,
+			32, 104, 97, 118, 101, 32, 0, 195, 165, 8, 2, 32, 104, 101, 114, 32, 0, 195, 165, 8, 2, 32, 104, 111, 108, 100, 32, 0, 195, 165,
+			8, 2, 32, 105, 32, 109, 195, 165, 0, 195, 165, 8, 2, 32, 107, 97, 110, 32, 0, 195, 165, 8, 2, 32, 107, 111, 109, 32, 0, 195,
+			165, 8, 2, 32, 107, 111, 109, 109, 101, 114, 32, 0, 195, 165, 8, 2, 32, 108, 97, 100, 32, 0, 195, 165, 8, 2, 32, 110, 195, 166,
+			114, 32, 0, 195, 165, 8, 2, 32, 115, 105, 107, 107, 101, 114, 32, 0, 195, 165, 8, 2, 32, 115, 107, 97, 108, 32, 0, 195, 165, 8,
+			2, 32, 115, 107, 101, 116, 101, 32, 0, 195, 165, 8, 2, 32, 116, 97, 103, 101, 114, 32, 0, 195, 165, 8, 2, 32, 118, 101, 100, 32,
+			0, 195, 165, 8, 2, 32, 118, 105, 32, 107, 97, 110, 32, 0, 195, 165, 8, 2, 32, 118, 105, 32, 109, 195, 165, 0, 195, 165, 8, 2,
+			32, 118, 105, 108, 108, 101, 32, 0, 195, 165, 8, 32, 101, 100, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 101, 100, 32,
+			108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 105, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 105, 32, 108, 105, 118, 2,
+			32, 0, 195, 165, 8, 32, 110, 97, 104, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 110, 97, 104, 32, 108, 105, 118, 2,
+			32, 0, 195, 165, 8, 32, 110, 97, 104, 32, 114, 184, 195, 103, 2, 32, 0, 195, 165, 8, 32, 110, 117, 104, 32, 101, 108, 108, 105, 118,
+			2, 32, 0, 195, 165, 8, 32, 110, 117, 104, 32, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 117, 100, 32, 101, 108, 108, 105, 118, 2,
+			32, 0, 195, 165, 8, 32, 117, 100, 32, 101, 108, 108, 105, 118, 2, 32, 0, 195, 165, 8, 32, 117, 100, 32, 114, 101, 2, 32, 0, 111,
+			110, 121, 97, 3, 89, 114, 50, 57, 110, 0, 117, 110, 100, 97, 121, 3, 89, 114, 50, 72, 37, 0, 117, 110, 115, 101, 116, 8, 3, 89,
+			114, 50, 89, 109, 47, 0, 117, 108, 108, 121, 3, 89, 114, 55, 37, 0, 117, 108, 108, 105, 118, 97, 110, 3, 89, 114, 55, 37, 84, 108,
+			50, 0, 111, 108, 115, 106, 101, 110, 105, 116, 115, 121, 110, 3, 89, 114, 55, 89, 57, 13, 50, 6, 37, 47, 89, 37, 50, 0, 117, 102,
+			102, 111, 108, 107, 3, 89, 114, 83, 114, 49, 0, 111, 116, 104, 101, 98, 121, 3, 89, 114, 86, 108, 71, 37, 0, 117, 116, 104, 101, 114,
+			3, 89, 114, 86, 114, 0, 117, 115, 115, 101, 120, 3, 89, 114, 89, 109, 81, 89, 0, 105, 114, 8, 2, 32, 3, 89, 118, 12, 0, 117,
+			114, 102, 3, 89, 118, 83, 0, 4, 99, 104, 3, 91, 0, 104, 1, 97, 104, 0, 104, 1, 97, 110, 0, 104, 1, 97, 112, 2, 97, 0,
+			104, 1, 105, 98, 2, 111, 112, 0, 104, 1, 105, 102, 2, 101, 114, 0, 104, 1, 105, 114, 116, 0, 104, 1, 111, 109, 2, 101, 0, 104,
+			1, 114, 97, 109, 0, 104, 1, 117, 112, 0, 104, 1, 117, 115, 2, 105, 0, 104, 2, 101, 114, 105, 102, 0, 104, 8, 0, 105, 2, 111,
+			110, 0, 104, 105, 114, 101, 3, 91, 13, 0, 104, 101, 105, 107, 3, 91, 35, 57, 49, 0, 104, 101, 105, 108, 97, 3, 91, 37, 12, 55,
+			110, 0, 104, 111, 119, 3, 91, 39, 40, 0, 117, 103, 97, 114, 8, 2, 32, 3, 91, 40, 81, 114, 0, 104, 105, 114, 116, 3, 91, 108,
+			12, 47, 0, 104, 97, 107, 101, 115, 112, 101, 97, 114, 101, 3, 91, 109, 37, 49, 89, 71, 37, 12, 34, 0, 101, 97, 109, 117, 115, 3,
+			91, 109, 37, 65, 13, 89, 0, 104, 101, 112, 104, 101, 114, 100, 3, 91, 109, 48, 20, 114, 72, 0, 104, 97, 119, 3, 91, 113, 12, 0,
+			101, 97, 110, 8, 2, 32, 3, 91, 113, 12, 50, 0, 101, 97, 110, 115, 8, 2, 32, 3, 91, 113, 12, 50, 89, 0, 104, 97, 117, 103,
+			104, 110, 101, 115, 115, 121, 3, 91, 113, 50, 109, 89, 37, 0, 104, 111, 114, 2, 116, 3, 91, 114, 0, 104, 111, 116, 3, 91, 114, 47,
+			0, 104, 101, 114, 2, 119, 111, 111, 100, 3, 91, 118, 0, 104, 101, 114, 109, 97, 110, 3, 91, 118, 12, 65, 110, 50, 0, 104, 105, 114,
+			108, 101, 121, 8, 3, 91, 118, 55, 37, 0, 104, 101, 114, 108, 111, 99, 107, 3, 91, 118, 55, 114, 49, 0, 7, 6, 116, 0, 8, 114,
+			97, 2, 32, 100, 101, 99, 111, 3, 0, 104, 1, 110, 97, 109, 97, 115, 2, 97, 3, 8, 87, 0, 97, 110, 103, 117, 121, 8, 3, 21,
+			102, 114, 0, 4, 3, 47, 0, 104, 1, 117, 108, 2, 101, 114, 0, 104, 8, 2, 101, 111, 0, 116, 0, 4, 101, 107, 8, 97, 105, 100,
+			101, 109, 3, 47, 6, 36, 49, 0, 101, 107, 8, 101, 103, 101, 108, 0, 101, 107, 8, 111, 101, 100, 105, 118, 0, 101, 107, 8, 111, 105,
+			108, 98, 105, 98, 0, 101, 107, 8, 111, 107, 97, 110, 105, 112, 0, 101, 107, 8, 111, 107, 115, 105, 100, 0, 101, 107, 8, 111, 110, 111,
+			102, 0, 101, 107, 8, 111, 112, 97, 0, 101, 107, 8, 111, 112, 121, 104, 0, 101, 107, 8, 111, 116, 111, 102, 0, 101, 107, 8, 111, 116,
+			112, 121, 108, 103, 0, 101, 107, 8, 111, 116, 114, 97, 107, 0, 101, 107, 8, 114, 97, 104, 99, 0, 4, 8, 2, 32, 98, 111, 110, 101,
+			3, 47, 6, 37, 12, 2, 0, 8, 2, 32, 115, 104, 105, 114, 116, 0, 114, 101, 118, 111, 114, 8, 3, 47, 16, 109, 84, 114, 0, 114,
+			101, 110, 99, 104, 99, 111, 97, 116, 3, 47, 34, 6, 109, 50, 91, 49, 4, 39, 40, 72, 0, 101, 114, 101, 115, 115, 2, 97, 110, 116,
+			3, 47, 34, 108, 89, 0, 101, 114, 101, 115, 115, 101, 114, 101, 116, 1, 110, 105, 3, 47, 34, 108, 89, 6, 36, 34, 108, 86, 0, 4,
+			101, 114, 101, 115, 115, 101, 114, 101, 1, 110, 105, 3, 47, 34, 108, 89, 6, 36, 34, 114, 0, 101, 114, 101, 115, 115, 101, 114, 101, 114,
+			1, 110, 105, 0, 114, 195, 168, 115, 8, 2, 32, 3, 47, 34, 109, 0, 114, 97, 100, 101, 1, 32, 100, 108, 114, 111, 119, 3, 47, 34,
+			109, 57, 72, 0, 4, 114, 97, 99, 101, 121, 8, 3, 47, 34, 109, 57, 89, 37, 0, 114, 97, 99, 121, 8, 0, 4, 114, 101, 100, 105,
+			118, 116, 101, 100, 101, 108, 3, 47, 34, 110, 83, 72, 13, 72, 36, 55, 0, 114, 101, 100, 118, 116, 101, 100, 101, 108, 0, 104, 97, 105,
+			3, 47, 35, 57, 0, 105, 116, 97, 110, 105, 99, 3, 47, 35, 57, 47, 6, 110, 50, 37, 49, 0, 105, 109, 101, 115, 1, 32, 101, 104,
+			116, 3, 47, 35, 57, 65, 89, 0, 105, 109, 101, 115, 104, 97, 114, 101, 3, 47, 35, 57, 65, 91, 109, 12, 34, 0, 8, 2, 32, 3,
+			47, 36, 12, 0, 101, 114, 114, 121, 3, 47, 36, 34, 37, 0, 105, 109, 111, 116, 104, 121, 3, 47, 36, 65, 115, 87, 37, 0, 101, 97,
+			107, 3, 47, 37, 12, 49, 0, 101, 101, 110, 97, 103, 101, 3, 47, 37, 12, 50, 109, 75, 0, 101, 101, 110, 97, 103, 101, 114, 3, 47,
+			37, 12, 50, 109, 75, 114, 0, 101, 97, 99, 104, 8, 3, 47, 37, 12, 76, 0, 111, 109, 98, 115, 3, 47, 40, 12, 65, 89, 0, 111,
+			109, 98, 115, 116, 111, 110, 101, 3, 47, 40, 12, 65, 89, 72, 39, 40, 50, 0, 117, 99, 115, 111, 110, 8, 3, 47, 40, 12, 89, 114,
+			50, 0, 4, 116, 1, 101, 2, 97, 108, 3, 47, 47, 0, 116, 1, 101, 2, 105, 100, 0, 116, 2, 195, 184, 106, 0, 116, 1, 97, 110,
+			2, 195, 184, 106, 3, 47, 47, 4, 0, 104, 3, 47, 107, 0, 101, 114, 101, 115, 115, 101, 1, 110, 105, 3, 47, 108, 34, 6, 35, 89,
+			13, 0, 101, 114, 101, 115, 115, 101, 114, 1, 110, 105, 3, 47, 108, 34, 6, 35, 89, 114, 0, 101, 110, 110, 101, 115, 115, 101, 101, 3,
+			47, 109, 50, 13, 89, 37, 0, 97, 112, 101, 8, 2, 32, 3, 47, 109, 57, 48, 0, 97, 112, 101, 8, 2, 110, 32, 3, 47, 109, 57,
+			48, 108, 0, 97, 106, 8, 2, 32, 109, 97, 104, 97, 108, 3, 47, 110, 91, 0, 111, 119, 110, 3, 47, 112, 58, 50, 0, 111, 114, 113,
+			117, 97, 121, 3, 47, 113, 12, 49, 37, 0, 111, 97, 115, 116, 3, 47, 113, 58, 89, 47, 0, 111, 97, 115, 116, 109, 97, 115, 116, 101,
+			114, 3, 47, 113, 58, 89, 47, 65, 4, 112, 12, 89, 47, 114, 0, 111, 107, 121, 111, 3, 47, 114, 49, 57, 39, 0, 111, 117, 99, 104,
+			100, 111, 119, 110, 3, 47, 114, 76, 72, 35, 58, 50, 0, 106, 8, 3, 76, 0, 104, 1, 114, 97, 109, 2, 97, 3, 87, 0, 104, 101,
+			114, 105, 110, 101, 1, 97, 99, 3, 87, 34, 36, 50, 0, 104, 97, 99, 107, 101, 114, 121, 3, 87, 110, 49, 108, 34, 37, 0, 104, 117,
+			110, 100, 101, 114, 3, 87, 114, 50, 72, 114, 0, 104, 105, 114, 100, 3, 87, 118, 12, 72, 0, 115, 104, 1, 105, 110, 97, 106, 2, 97,
+			114, 3, 91, 0, 7, 6, 117, 0, 1, 115, 2, 98, 108, 105, 3, 2, 40, 0, 4, 1, 100, 101, 115, 117, 114, 107, 2, 108, 108, 101,
+			3, 6, 40, 0, 1, 102, 105, 114, 116, 110, 101, 99, 2, 103, 0, 1, 107, 109, 111, 2, 108, 100, 0, 1, 107, 111, 114, 112, 2, 114,
+			97, 0, 1, 108, 97, 100, 110, 97, 2, 115, 0, 1, 108, 97, 104, 99, 2, 112, 0, 1, 108, 97, 118, 2, 116, 97, 0, 1, 111, 115,
+			115, 101, 114, 2, 114, 115, 0, 1, 112, 97, 99, 97, 2, 108, 99, 111, 0, 1, 112, 108, 97, 118, 2, 114, 103, 105, 115, 0, 1, 112,
+			109, 105, 2, 108, 115, 0, 1, 114, 101, 106, 2, 115, 97, 108, 101, 109, 0, 1, 115, 101, 114, 2, 114, 115, 0, 1, 116, 107, 97, 102,
+			2, 114, 97, 0, 1, 116, 115, 111, 103, 110, 97, 2, 114, 97, 0, 2, 108, 106, 101, 0, 8, 2, 102, 111, 114, 0, 8, 98, 98, 105,
+			107, 2, 116, 122, 0, 8, 98, 111, 114, 2, 115, 116, 0, 8, 100, 105, 102, 2, 115, 0, 8, 102, 110, 111, 107, 2, 115, 0, 8, 103,
+			105, 102, 2, 114, 0, 8, 104, 114, 165, 195, 2, 110, 100, 114, 101, 100, 101, 0, 8, 107, 108, 97, 107, 2, 110, 0, 8, 107, 110, 111,
+			107, 2, 114, 115, 0, 8, 108, 111, 118, 110, 111, 107, 2, 116, 0, 8, 112, 114, 97, 104, 2, 110, 0, 8, 114, 101, 100, 2, 100, 0,
+			8, 114, 116, 115, 110, 105, 2, 107, 115, 0, 8, 115, 97, 98, 2, 110, 0, 8, 115, 97, 108, 103, 2, 114, 0, 8, 115, 98, 97, 2,
+			114, 100, 0, 8, 115, 117, 97, 108, 107, 2, 108, 0, 116, 1, 10, 2, 116, 28, 33, 0, 1, 103, 110, 166, 195, 107, 2, 114, 117, 3,
+			6, 40, 10, 0, 4, 1, 100, 110, 111, 104, 2, 114, 97, 3, 6, 40, 12, 0, 1, 109, 117, 2, 108, 105, 103, 0, 8, 17, 67, 97,
+			108, 2, 110, 101, 0, 8, 109, 109, 111, 107, 2, 110, 101, 0, 4, 114, 1, 115, 97, 108, 3, 6, 40, 34, 0, 114, 1, 115, 97, 108,
+			103, 0, 114, 1, 115, 97, 114, 0, 114, 1, 115, 110, 101, 99, 0, 114, 1, 115, 110, 101, 109, 0, 114, 1, 115, 110, 111, 116, 0, 114,
+			1, 115, 115, 101, 114, 100, 0, 114, 1, 115, 115, 105, 102, 0, 114, 1, 115, 166, 195, 99, 0, 114, 8, 102, 109, 111, 107, 0, 116, 1,
+			10, 2, 28, 33, 3, 6, 40, 47, 0, 4, 100, 8, 2, 97, 116, 12, 14, 128, 132, 130, 3, 6, 40, 72, 0, 100, 8, 2, 101, 108,
+			116, 12, 14, 128, 132, 130, 0, 100, 8, 2, 114, 195, 184, 106, 12, 14, 128, 132, 130, 0, 100, 8, 2, 121, 12, 14, 128, 132, 130, 0,
+			100, 8, 2, 195, 165, 100, 12, 14, 128, 132, 130, 0, 100, 8, 2, 195, 184, 98, 116, 12, 14, 128, 132, 130, 0, 116, 97, 104, 3, 6,
+			57, 40, 12, 47, 112, 0, 114, 102, 101, 114, 1, 115, 3, 6, 108, 12, 83, 114, 0, 4, 1, 103, 117, 97, 2, 115, 116, 3, 6, 113,
+			0, 1, 108, 97, 104, 2, 110, 107, 0, 1, 108, 111, 99, 2, 109, 98, 0, 8, 107, 101, 115, 2, 110, 100, 0, 110, 100, 1, 98, 97,
+			114, 2, 117, 115, 3, 6, 113, 50, 72, 0, 1, 99, 108, 97, 99, 2, 116, 116, 97, 3, 6, 114, 0, 99, 107, 121, 1, 116, 110, 101,
+			107, 3, 6, 114, 49, 37, 0, 4, 1, 98, 105, 116, 115, 101, 118, 2, 108, 3, 6, 116, 0, 1, 100, 101, 99, 111, 114, 112, 2, 114,
+			101, 0, 1, 102, 114, 97, 112, 2, 109, 101, 0, 1, 110, 101, 118, 111, 114, 112, 0, 1, 116, 101, 2, 100, 101, 12, 0, 8, 98, 105,
+			114, 116, 2, 110, 101, 0, 8, 110, 101, 109, 0, 8, 116, 115, 111, 107, 2, 109, 101, 0, 101, 1, 100, 110, 111, 102, 0, 101, 1, 110,
+			101, 118, 97, 0, 116, 8, 98, 101, 100, 0, 114, 101, 1, 116, 117, 111, 10, 2, 28, 33, 3, 6, 116, 12, 34, 0, 4, 114, 1, 100,
+			10, 2, 28, 33, 3, 7, 40, 34, 0, 114, 1, 116, 10, 2, 28, 33, 0, 100, 8, 2, 21, 21, 12, 14, 128, 132, 130, 3, 7, 40,
+			86, 0, 100, 101, 8, 2, 21, 21, 12, 14, 128, 132, 131, 3, 7, 40, 86, 13, 0, 114, 101, 1, 10, 2, 12, 12, 12, 28, 33, 3,
+			7, 116, 12, 114, 0, 101, 122, 1, 103, 3, 8, 36, 89, 0, 1, 112, 109, 105, 2, 108, 115, 105, 118, 3, 8, 40, 0, 109, 1, 10,
+			2, 28, 33, 3, 8, 113, 65, 0, 4, 105, 100, 1, 103, 32, 108, 105, 118, 2, 101, 3, 35, 57, 72, 0, 105, 100, 1, 103, 32, 116,
+			97, 2, 101, 0, 105, 100, 8, 103, 2, 101, 116, 0, 105, 100, 101, 1, 103, 0, 105, 100, 101, 114, 1, 103, 3, 35, 57, 72, 114, 0,
+			105, 1, 103, 2, 116, 97, 114, 3, 37, 0, 4, 3, 40, 0, 1, 17, 67, 2, 18, 66, 18, 76, 0, 1, 18, 74, 115, 2, 17, 67,
+			18, 76, 0, 1, 18, 74, 115, 2, 116, 0, 1, 98, 2, 103, 115, 101, 0, 1, 100, 2, 107, 116, 105, 0, 1, 104, 2, 106, 101, 12,
+			0, 1, 104, 2, 108, 17, 67, 0, 1, 104, 2, 108, 18, 76, 0, 1, 104, 2, 108, 116, 0, 1, 104, 2, 110, 0, 1, 106, 2, 18,
+			66, 18, 69, 0, 1, 107, 2, 107, 0, 1, 107, 2, 108, 18, 69, 0, 1, 107, 2, 108, 18, 70, 0, 1, 107, 2, 108, 100, 0, 1,
+			107, 2, 108, 100, 101, 0, 1, 107, 2, 108, 108, 101, 114, 0, 1, 107, 2, 108, 116, 0, 1, 107, 100, 101, 118, 111, 104, 2, 108, 115,
+			0, 1, 107, 115, 2, 108, 107, 0, 1, 107, 115, 2, 108, 108, 0, 1, 107, 115, 2, 108, 112, 0, 1, 107, 115, 2, 116, 101, 0, 1,
+			108, 2, 107, 97, 115, 0, 1, 108, 2, 107, 114, 18, 76, 0, 1, 108, 2, 107, 114, 101, 114, 101, 0, 1, 108, 2, 110, 32, 0, 1,
+			108, 2, 110, 101, 0, 1, 108, 98, 2, 102, 195, 166, 0, 1, 108, 103, 2, 103, 0, 1, 108, 115, 2, 103, 116, 0, 1, 109, 2, 102,
+			116, 0, 1, 109, 2, 115, 105, 107, 0, 1, 109, 97, 107, 2, 102, 108, 97, 103, 101, 0, 1, 109, 115, 2, 18, 68, 12, 0, 1, 109,
+			115, 2, 103, 108, 0, 1, 110, 102, 2, 103, 0, 1, 110, 115, 2, 98, 108, 101, 0, 1, 112, 2, 99, 107, 12, 0, 1, 112, 2, 110,
+			100, 0, 1, 114, 2, 18, 71, 18, 69, 0, 1, 114, 2, 103, 0, 1, 114, 2, 109, 101, 0, 1, 114, 98, 2, 103, 0, 1, 114, 102,
+			2, 115, 0, 1, 114, 103, 2, 18, 71, 0, 1, 114, 103, 2, 112, 0, 1, 114, 107, 115, 2, 112, 108, 101, 0, 1, 114, 116, 2, 18,
+			71, 0, 1, 114, 116, 2, 107, 116, 18, 69, 0, 1, 114, 116, 2, 109, 97, 110, 0, 1, 115, 2, 98, 115, 0, 1, 115, 2, 103, 0,
+			1, 115, 2, 112, 112, 108, 101, 0, 1, 115, 2, 112, 114, 97, 0, 1, 116, 2, 110, 100, 195, 165, 0, 1, 116, 115, 2, 98, 12, 0,
+			2, 100, 101, 12, 12, 0, 2, 100, 101, 110, 0, 2, 100, 101, 110, 102, 111, 114, 12, 0, 2, 100, 103, 114, 117, 110, 100, 101, 108, 105,
+			103, 12, 0, 2, 103, 101, 12, 12, 0, 2, 103, 108, 12, 0, 2, 103, 108, 101, 12, 0, 2, 104, 121, 114, 101, 12, 0, 2, 105, 109,
+			111, 100, 115, 116, 195, 165, 101, 108, 105, 103, 0, 2, 108, 116, 105, 109, 97, 0, 2, 108, 116, 114, 97, 0, 2, 110, 105, 12, 12, 0,
+			2, 115, 117, 114, 112, 0, 2, 116, 111, 112, 105, 0, 8, 2, 21, 21, 12, 14, 128, 132, 129, 0, 8, 2, 100, 115, 12, 0, 8, 2,
+			114, 12, 12, 0, 8, 2, 114, 101, 116, 102, 195, 166, 12, 12, 14, 128, 132, 129, 0, 8, 107, 2, 108, 108, 101, 100, 101, 0, 8, 114,
+			112, 2, 115, 116, 0, 103, 1, 98, 2, 116, 97, 0, 103, 1, 108, 115, 0, 103, 1, 109, 2, 32, 117, 100, 0, 103, 1, 109, 2, 101,
+			32, 117, 100, 0, 2, 101, 110, 105, 103, 12, 3, 40, 6, 0, 101, 1, 108, 102, 110, 105, 2, 110, 122, 97, 3, 40, 6, 109, 0, 101,
+			116, 1, 110, 101, 109, 3, 40, 6, 109, 47, 0, 4, 1, 104, 2, 108, 101, 3, 40, 12, 0, 1, 106, 2, 105, 99, 101, 0, 1, 107,
+			2, 17, 67, 101, 0, 101, 1, 98, 108, 97, 0, 101, 1, 100, 2, 115, 0, 101, 1, 116, 115, 0, 101, 2, 32, 0, 103, 1, 108, 2,
+			101, 0, 115, 97, 8, 2, 32, 3, 40, 12, 36, 89, 6, 110, 0, 115, 97, 39, 115, 8, 2, 32, 3, 40, 12, 36, 89, 6, 110, 89,
+			0, 4, 101, 1, 116, 115, 2, 32, 3, 40, 13, 0, 101, 1, 116, 115, 2, 110, 32, 0, 114, 1, 98, 109, 97, 116, 3, 40, 34, 0,
+			114, 1, 116, 10, 2, 101, 108, 28, 33, 3, 40, 34, 6, 0, 114, 101, 1, 115, 10, 2, 114, 101, 12, 12, 12, 3, 40, 34, 7, 36,
+			0, 107, 101, 116, 8, 98, 3, 40, 49, 6, 109, 47, 0, 107, 117, 108, 101, 108, 101, 3, 40, 49, 40, 55, 6, 36, 55, 108, 0, 99,
+			99, 101, 115, 115, 111, 114, 1, 115, 3, 40, 49, 89, 6, 109, 89, 114, 0, 99, 99, 101, 115, 115, 111, 114, 101, 114, 1, 115, 3, 40,
+			49, 89, 109, 89, 6, 39, 114, 0, 108, 114, 101, 116, 1, 107, 3, 40, 55, 51, 114, 86, 0, 103, 1, 109, 115, 3, 40, 58, 0, 4,
+			100, 8, 2, 114, 105, 107, 107, 101, 108, 105, 103, 12, 14, 128, 132, 130, 3, 40, 72, 0, 100, 8, 2, 117, 101, 108, 105, 103, 12, 0,
+			100, 8, 2, 195, 184, 100, 12, 14, 128, 132, 130, 0, 102, 111, 114, 109, 101, 108, 3, 40, 83, 114, 65, 6, 36, 55, 0, 4, 100, 8,
+			2, 101, 110, 12, 3, 40, 86, 0, 100, 8, 2, 107, 105, 103, 0, 115, 107, 121, 108, 100, 105, 103, 3, 40, 89, 81, 6, 116, 55, 72,
+			37, 0, 103, 97, 102, 1, 108, 3, 55, 113, 81, 6, 110, 0, 4, 1, 112, 109, 111, 99, 2, 116, 101, 114, 3, 57, 40, 0, 1, 116,
+			2, 110, 101, 0, 1, 116, 2, 110, 105, 110, 103, 12, 0, 1, 116, 2, 116, 111, 114, 0, 8, 116, 115, 2, 97, 114, 116, 0, 110, 105,
+			116, 101, 100, 3, 57, 40, 50, 6, 35, 57, 47, 36, 72, 0, 114, 101, 1, 116, 120, 105, 109, 3, 57, 114, 0, 105, 1, 115, 2, 116,
+			101, 3, 58, 37, 0, 4, 114, 1, 115, 2, 102, 98, 3, 108, 12, 0, 114, 1, 115, 2, 102, 101, 0, 101, 114, 105, 1, 103, 2, 108,
+			108, 97, 3, 109, 51, 6, 37, 0, 4, 1, 17, 67, 2, 18, 66, 101, 12, 3, 113, 0, 1, 17, 67, 2, 18, 66, 116, 0, 1, 18,
+			68, 2, 102, 0, 1, 18, 71, 2, 110, 107, 116, 0, 1, 18, 73, 2, 102, 0, 1, 18, 74, 2, 102, 0, 1, 18, 74, 2, 114, 114,
+			101, 0, 1, 98, 2, 107, 0, 1, 98, 2, 110, 116, 0, 1, 100, 2, 107, 0, 1, 103, 2, 102, 0, 1, 104, 2, 103, 0, 1, 104,
+			2, 108, 0, 1, 104, 2, 108, 98, 195, 165, 110, 100, 0, 1, 104, 2, 108, 106, 101, 114, 110, 0, 1, 104, 2, 108, 108, 101, 0, 1,
+			104, 2, 108, 115, 107, 101, 0, 1, 104, 2, 108, 115, 195, 184, 109, 0, 1, 104, 2, 108, 116, 97, 110, 103, 0, 1, 104, 2, 114, 116,
+			105, 103, 0, 1, 104, 112, 97, 110, 107, 2, 108, 0, 1, 104, 114, 101, 100, 100, 117, 109, 2, 108, 0, 1, 104, 116, 117, 109, 115, 2,
+			108, 0, 1, 106, 2, 110, 107, 116, 117, 114, 12, 12, 0, 1, 106, 104, 2, 108, 112, 0, 1, 107, 2, 102, 102, 101, 114, 116, 0, 1,
+			107, 2, 108, 0, 1, 107, 2, 108, 100, 105, 111, 0, 1, 107, 2, 108, 105, 108, 116, 0, 1, 107, 101, 115, 2, 110, 100, 195, 166, 0,
+			1, 107, 115, 2, 98, 0, 1, 108, 2, 107, 0, 1, 108, 103, 184, 195, 114, 2, 103, 116, 0, 1, 108, 115, 2, 98, 0, 1, 108, 115,
+			2, 112, 0, 1, 109, 115, 2, 17, 67, 0, 1, 110, 18, 66, 2, 18, 71, 0, 1, 112, 2, 102, 0, 1, 112, 2, 107, 107, 101, 0,
+			1, 112, 2, 107, 108, 0, 1, 112, 2, 110, 99, 104, 0, 1, 112, 115, 2, 110, 100, 101, 0, 1, 114, 2, 18, 71, 0, 1, 114, 2,
+			102, 0, 1, 114, 2, 109, 0, 1, 114, 2, 115, 116, 0, 1, 114, 17, 67, 2, 18, 71, 0, 1, 114, 17, 67, 2, 107, 0, 1, 114,
+			98, 2, 103, 116, 0, 1, 114, 116, 2, 102, 102, 0, 1, 116, 115, 2, 107, 107, 101, 116, 0, 1, 118, 115, 2, 112, 0, 2, 107, 115,
+			0, 2, 109, 25, 0, 2, 110, 18, 73, 0, 2, 110, 100, 0, 2, 110, 103, 12, 0, 2, 110, 107, 0, 8, 2, 110, 100, 12, 0, 8,
+			2, 110, 103, 12, 0, 8, 114, 2, 98, 32, 0, 8, 114, 2, 98, 98, 101, 0, 108, 118, 1, 103, 3, 113, 55, 0, 108, 118, 1, 103,
+			2, 101, 3, 113, 55, 84, 0, 109, 98, 117, 103, 1, 104, 3, 113, 65, 71, 113, 81, 0, 107, 97, 102, 1, 108, 3, 113, 81, 6, 110,
+			0, 4, 1, 32, 100, 110, 97, 116, 115, 2, 112, 3, 114, 0, 1, 98, 2, 99, 107, 0, 1, 98, 2, 102, 102, 101, 114, 0, 1, 98,
+			2, 116, 108, 101, 114, 0, 1, 100, 2, 98, 98, 101, 0, 1, 100, 2, 98, 98, 105, 110, 103, 0, 1, 100, 2, 98, 108, 105, 110, 0,
+			1, 100, 2, 100, 108, 101, 121, 0, 1, 100, 2, 110, 99, 97, 110, 0, 1, 102, 2, 99, 107, 12, 12, 0, 1, 104, 2, 110, 116, 101,
+			114, 0, 1, 104, 99, 116, 101, 107, 2, 112, 0, 1, 104, 100, 97, 101, 104, 2, 110, 116, 0, 1, 106, 2, 110, 107, 0, 1, 108, 2,
+			98, 98, 111, 99, 107, 0, 1, 108, 99, 2, 98, 0, 1, 108, 108, 2, 112, 0, 1, 109, 2, 112, 112, 101, 114, 110, 101, 0, 1, 112,
+			2, 98, 98, 0, 1, 114, 116, 2, 99, 107, 0, 1, 116, 115, 2, 110, 116, 0, 8, 100, 2, 115, 116, 105, 110, 0, 8, 102, 2, 110,
+			107, 0, 8, 109, 2, 108, 108, 105, 110, 0, 8, 112, 2, 98, 32, 0, 8, 112, 2, 110, 107, 0, 112, 112, 101, 114, 99, 117, 116, 3,
+			114, 48, 114, 49, 114, 47, 0, 99, 107, 101, 114, 1, 116, 3, 114, 49, 114, 0, 110, 99, 104, 1, 114, 98, 3, 114, 50, 91, 0, 109,
+			112, 104, 114, 101, 121, 1, 104, 3, 114, 65, 83, 34, 37, 0, 100, 100, 1, 98, 2, 121, 3, 114, 72, 0, 102, 102, 105, 110, 1, 109,
+			3, 114, 83, 36, 50, 0, 115, 116, 121, 1, 114, 3, 114, 89, 47, 37, 0, 4, 1, 18, 68, 2, 110, 115, 3, 115, 0, 1, 98, 2,
+			110, 107, 101, 114, 0, 1, 102, 2, 18, 71, 0, 1, 102, 2, 110, 12, 0, 1, 106, 2, 110, 116, 0, 1, 108, 2, 110, 116, 101, 0,
+			1, 108, 107, 2, 110, 115, 0, 1, 109, 2, 18, 66, 0, 1, 109, 2, 110, 116, 0, 1, 110, 115, 2, 18, 71, 0, 1, 112, 2, 108,
+			118, 0, 1, 115, 2, 18, 71, 11, 0, 1, 115, 2, 107, 0, 1, 116, 2, 110, 110, 0, 1, 118, 2, 103, 0, 8, 107, 2, 110, 32,
+			0, 8, 110, 2, 108, 0, 4, 1, 98, 2, 100, 103, 101, 116, 3, 116, 0, 1, 98, 105, 114, 116, 2, 110, 101, 0, 1, 100, 2, 99,
+			104, 101, 115, 115, 101, 0, 1, 102, 101, 114, 2, 115, 101, 114, 0, 1, 108, 103, 2, 107, 111, 115, 101, 0, 1, 110, 2, 97, 110, 99,
+			101, 0, 1, 110, 101, 109, 0, 1, 112, 2, 114, 195, 169, 0, 1, 115, 2, 99, 99, 0, 1, 115, 2, 114, 114, 101, 97, 0, 1, 116,
+			115, 111, 107, 2, 109, 101, 0, 8, 98, 2, 115, 116, 101, 32, 0, 8, 112, 2, 114, 101, 114, 101, 0, 116, 1, 98, 101, 100, 0, 8,
+			116, 97, 110, 2, 114, 101, 108, 32, 12, 3, 116, 6, 0, 114, 101, 1, 116, 117, 111, 99, 3, 116, 12, 34, 0, 4, 114, 101, 1, 99,
+			101, 110, 105, 115, 3, 116, 12, 114, 0, 114, 101, 1, 99, 105, 100, 101, 112, 0, 114, 101, 1, 99, 105, 110, 97, 109, 0, 114, 101, 1,
+			100, 101, 99, 111, 114, 112, 0, 114, 101, 1, 100, 114, 111, 98, 0, 114, 101, 1, 104, 99, 111, 114, 98, 0, 114, 101, 1, 104, 99, 117,
+			111, 98, 109, 101, 0, 114, 101, 1, 108, 101, 110, 110, 97, 107, 0, 114, 101, 1, 110, 114, 117, 111, 116, 0, 114, 101, 1, 115, 105, 114,
+			102, 0, 114, 101, 1, 116, 97, 105, 110, 105, 109, 0, 114, 101, 1, 116, 97, 105, 110, 105, 109, 0, 114, 101, 1, 116, 105, 102, 110, 111,
+			107, 0, 114, 101, 1, 116, 105, 110, 114, 97, 103, 0, 114, 101, 1, 116, 105, 114, 102, 0, 114, 101, 1, 116, 107, 101, 102, 110, 111, 107,
+			0, 114, 101, 1, 116, 107, 101, 108, 0, 114, 101, 1, 116, 114, 101, 118, 117, 111, 0, 114, 101, 1, 118, 97, 114, 103, 0, 114, 101, 1,
+			10, 2, 114, 101, 28, 33, 12, 12, 12, 3, 116, 34, 7, 36, 0, 4, 114, 101, 1, 112, 116, 97, 109, 111, 116, 3, 116, 34, 36, 0,
+			114, 195, 169, 1, 112, 116, 97, 109, 111, 116, 0, 116, 101, 1, 108, 102, 3, 116, 47, 0, 114, 101, 97, 117, 1, 98, 3, 116, 51, 6,
+			39, 0, 4, 109, 101, 1, 115, 101, 114, 3, 116, 65, 6, 36, 0, 109, 195, 169, 1, 115, 101, 114, 0, 120, 101, 108, 108, 101, 115, 1,
+			114, 98, 3, 116, 89, 6, 109, 55, 0, 1, 115, 2, 114, 114, 101, 108, 3, 117, 0, 114, 1, 98, 2, 109, 101, 115, 3, 118, 0, 4,
+			114, 1, 98, 2, 109, 97, 3, 118, 12, 0, 114, 1, 112, 2, 115, 101, 114, 0, 114, 8, 98, 2, 116, 0, 114, 112, 108, 101, 1, 112,
+			3, 118, 12, 48, 20, 13, 55, 0, 114, 110, 1, 98, 121, 97, 114, 3, 118, 12, 50, 0, 114, 100, 108, 101, 1, 104, 3, 118, 72, 13,
+			55, 0, 114, 100, 108, 101, 110, 1, 104, 3, 118, 72, 55, 108, 50, 0, 114, 103, 105, 115, 8, 116, 115, 3, 118, 75, 37, 89, 0, 114,
+			103, 1, 98, 2, 101, 114, 3, 118, 81, 0, 7, 6, 118, 0, 4, 1, 101, 108, 98, 3, 0, 4, 1, 108, 97, 104, 3, 0, 1, 108,
+			101, 2, 17, 67, 3, 0, 1, 97, 108, 2, 101, 109, 101, 110, 116, 3, 13, 0, 108, 101, 103, 1, 108, 97, 104, 3, 35, 57, 0, 4,
+			1, 97, 104, 2, 17, 67, 3, 40, 0, 1, 97, 104, 2, 111, 118, 101, 114, 102, 0, 4, 1, 97, 2, 110, 3, 58, 0, 1, 101, 108,
+			98, 101, 100, 117, 0, 1, 184, 195, 2, 101, 110, 0, 2, 110, 0, 118, 1, 105, 108, 3, 58, 84, 0, 2, 97, 110, 32, 103, 111, 103,
+			104, 3, 83, 0, 111, 110, 8, 2, 32, 3, 83, 114, 50, 0, 4, 3, 84, 0, 1, 17, 65, 10, 2, 17, 65, 0, 1, 17, 65, 10,
+			2, 32, 17, 65, 0, 1, 97, 108, 115, 2, 12, 0, 1, 108, 97, 2, 101, 0, 1, 108, 105, 2, 17, 65, 0, 1, 111, 18, 74, 2,
+			17, 65, 0, 1, 111, 114, 112, 2, 101, 110, 99, 101, 0, 1, 114, 10, 0, 1, 114, 117, 0, 118, 0, 105, 114, 103, 105, 110, 105, 97,
+			3, 84, 13, 75, 6, 37, 68, 57, 110, 0, 105, 110, 99, 101, 3, 84, 36, 50, 89, 0, 105, 108, 108, 97, 103, 101, 3, 84, 36, 55,
+			36, 75, 0, 111, 105, 108, 97, 3, 84, 58, 35, 55, 6, 35, 0, 101, 2, 108, 115, 101, 3, 84, 108, 0, 101, 114, 100, 117, 110, 3,
+			84, 109, 34, 72, 6, 108, 68, 0, 97, 117, 103, 104, 110, 3, 84, 113, 12, 50, 0, 111, 108, 105, 101, 114, 101, 3, 84, 114, 55, 37,
+			6, 109, 12, 34, 0, 7, 6, 119, 0, 114, 105, 103, 104, 116, 3, 21, 0, 3, 58, 0, 121, 111, 109, 105, 110, 103, 3, 58, 35, 57,
+			6, 113, 58, 65, 36, 68, 0, 105, 100, 101, 115, 99, 114, 101, 101, 110, 3, 58, 35, 57, 72, 89, 49, 34, 37, 12, 50, 0, 105, 110,
+			110, 105, 112, 101, 103, 3, 58, 36, 50, 37, 48, 109, 81, 0, 105, 115, 99, 111, 110, 115, 105, 110, 3, 58, 36, 89, 49, 6, 114, 50,
+			89, 36, 50, 0, 101, 101, 107, 101, 110, 100, 3, 58, 37, 12, 81, 109, 50, 72, 0, 101, 97, 118, 101, 114, 3, 58, 37, 12, 84, 114,
+			0, 104, 101, 101, 108, 3, 58, 37, 55, 0, 4, 105, 108, 108, 105, 101, 3, 58, 37, 55, 37, 0, 105, 108, 108, 121, 0, 97, 121, 110,
+			101, 3, 58, 109, 57, 50, 0, 97, 108, 101, 115, 3, 58, 109, 57, 55, 89, 0, 101, 97, 116, 104, 101, 114, 3, 58, 109, 86, 114, 0,
+			97, 114, 101, 3, 58, 110, 12, 34, 0, 105, 108, 100, 8, 3, 58, 112, 57, 55, 72, 0, 97, 116, 101, 114, 103, 97, 116, 101, 3, 58,
+			113, 47, 114, 81, 109, 57, 47, 0, 97, 108, 100, 111, 114, 102, 8, 3, 58, 113, 72, 114, 83, 0, 97, 116, 115, 111, 110, 3, 58, 114,
+			47, 89, 14, 50, 0, 97, 110, 100, 97, 3, 58, 114, 50, 72, 110, 0, 111, 110, 100, 101, 114, 8, 3, 58, 114, 50, 72, 114, 0, 97,
+			110, 115, 101, 97, 1, 115, 3, 58, 114, 50, 89, 4, 37, 0, 97, 108, 108, 97, 99, 101, 3, 58, 114, 55, 36, 89, 0, 97, 115, 104,
+			105, 110, 103, 116, 111, 110, 3, 58, 114, 91, 36, 68, 47, 114, 50, 0, 111, 114, 107, 3, 58, 118, 12, 49, 0, 111, 114, 116, 104, 3,
+			58, 118, 12, 87, 0, 111, 114, 108, 100, 8, 3, 58, 118, 55, 72, 0, 111, 114, 100, 3, 58, 118, 72, 0, 4, 1, 116, 110, 97, 2,
+			101, 114, 112, 101, 110, 3, 84, 0, 2, 97, 100, 101, 114, 115, 0, 2, 97, 100, 105, 0, 2, 97, 108, 105, 115, 0, 2, 97, 115, 115,
+			101, 114, 109, 97, 110, 110, 112, 114, 195, 184, 118, 101, 0, 2, 97, 116, 116, 0, 2, 101, 108, 116, 101, 114, 118, 195, 166, 103, 116, 0,
+			2, 101, 108, 116, 115, 99, 104, 109, 101, 114, 122, 0, 2, 101, 114, 110, 101, 114, 0, 2, 101, 115, 115, 101, 108, 0, 2, 104, 105, 115,
+			116, 0, 2, 105, 101, 110, 101, 114, 115, 99, 104, 110, 105, 116, 122, 101, 108, 0, 2, 111, 108, 102, 103, 97, 110, 103, 0, 2, 111, 108,
+			102, 114, 97, 109, 0, 97, 105, 1, 117, 107, 2, 116, 3, 84, 6, 35, 57, 0, 97, 114, 115, 122, 97, 119, 97, 3, 84, 35, 34, 91,
+			6, 110, 12, 84, 110, 0, 97, 108, 100, 3, 84, 35, 55, 72, 0, 97, 102, 102, 101, 3, 84, 35, 83, 108, 0, 105, 101, 110, 3, 84,
+			37, 50, 0, 105, 101, 115, 101, 110, 116, 104, 97, 108, 3, 84, 37, 89, 13, 50, 47, 112, 55, 0, 7, 6, 120, 0, 4, 3, 81, 89,
 			0, 99, 0, 4, 105, 100, 8, 111, 2, 32, 3, 81, 89, 6, 37, 86, 0, 121, 100, 8, 111, 2, 32, 0, 97, 108, 1, 111, 3, 81,
-			89, 6, 117, 55, 0, 4, 105, 100, 101, 8, 111, 2, 114, 101, 3, 81, 89, 37, 72, 6, 36, 0, 105, 100, 101, 8, 111, 2, 114, 105,
+			89, 6, 110, 55, 0, 4, 105, 100, 101, 8, 111, 2, 114, 101, 3, 81, 89, 37, 72, 6, 36, 0, 105, 100, 101, 8, 111, 2, 114, 105,
 			0, 121, 100, 101, 8, 111, 2, 114, 101, 0, 121, 100, 101, 8, 111, 2, 114, 105, 0, 121, 103, 101, 110, 1, 111, 3, 81, 89, 37, 81,
-			6, 36, 50, 0, 99, 104, 3, 81, 89, 91, 0, 111, 110, 3, 81, 89, 108, 50, 0, 4, 1, 110, 3, 89, 0, 8, 0, 7, 6, 121,
-			0, 4, 1, 103, 101, 2, 112, 116, 3, 6, 129, 0, 1, 112, 97, 108, 111, 118, 0, 8, 107, 101, 108, 111, 109, 2, 108, 101, 0, 8,
-			107, 101, 114, 2, 108, 0, 8, 115, 97, 2, 108, 0, 8, 116, 97, 108, 2, 114, 117, 115, 0, 8, 116, 111, 101, 114, 101, 116, 115, 2,
-			112, 0, 114, 8, 112, 109, 97, 118, 3, 6, 129, 110, 0, 4, 1, 110, 111, 100, 117, 101, 115, 112, 2, 109, 3, 6, 130, 0, 8, 98,
-			97, 107, 2, 115, 0, 8, 102, 111, 114, 111, 108, 107, 2, 108, 0, 8, 104, 97, 107, 2, 116, 0, 8, 108, 112, 97, 114, 97, 112, 0,
-			8, 110, 105, 118, 2, 108, 0, 8, 118, 101, 114, 0, 8, 122, 110, 101, 2, 109, 0, 1, 110, 97, 107, 2, 108, 101, 3, 6, 131, 0,
-			1, 109, 2, 110, 116, 101, 3, 6, 132, 0, 8, 114, 97, 112, 2, 107, 3, 6, 133, 0, 1, 98, 100, 110, 97, 116, 115, 3, 6, 136,
-			0, 111, 114, 107, 115, 104, 105, 114, 101, 3, 10, 57, 125, 12, 49, 91, 13, 0, 4, 1, 110, 110, 111, 108, 3, 36, 0, 1, 116, 116,
-			111, 99, 115, 0, 110, 100, 111, 110, 8, 108, 3, 36, 50, 72, 108, 50, 0, 110, 116, 104, 101, 115, 105, 122, 101, 114, 1, 115, 3, 36,
-			50, 87, 36, 89, 136, 89, 108, 0, 108, 118, 97, 110, 105, 97, 1, 115, 110, 110, 101, 112, 3, 36, 55, 84, 6, 115, 57, 50, 57, 117,
-			0, 4, 1, 98, 98, 111, 3, 37, 0, 1, 99, 110, 97, 110, 0, 1, 99, 117, 108, 0, 1, 100, 2, 32, 0, 1, 100, 2, 108, 97,
-			110, 0, 1, 100, 2, 115, 32, 0, 1, 107, 99, 97, 106, 0, 1, 107, 99, 101, 98, 0, 1, 107, 99, 105, 0, 1, 107, 115, 105, 104,
-			119, 0, 1, 108, 105, 109, 101, 0, 1, 108, 107, 111, 111, 114, 98, 2, 110, 0, 1, 108, 108, 101, 104, 115, 0, 1, 108, 108, 101, 107,
-			0, 1, 108, 108, 105, 98, 0, 1, 108, 108, 105, 108, 0, 1, 108, 111, 114, 97, 99, 2, 110, 0, 1, 110, 110, 101, 112, 0, 1, 110,
-			110, 111, 100, 0, 1, 110, 110, 111, 114, 0, 1, 114, 97, 109, 2, 115, 0, 1, 114, 111, 103, 101, 114, 103, 0, 1, 114, 114, 101, 104,
-			115, 0, 1, 116, 102, 105, 102, 0, 1, 116, 105, 99, 0, 1, 116, 105, 110, 105, 114, 116, 0, 1, 116, 110, 117, 111, 99, 0, 1, 116,
-			115, 101, 110, 109, 97, 0, 1, 116, 116, 101, 98, 0, 1, 116, 116, 105, 107, 0, 1, 118, 108, 101, 109, 2, 110, 0, 8, 98, 97, 110,
-			114, 97, 98, 0, 8, 114, 114, 97, 104, 0, 1, 108, 111, 112, 2, 101, 115, 116, 3, 37, 6, 0, 111, 110, 8, 108, 3, 37, 6, 108,
-			68, 0, 112, 114, 101, 115, 8, 3, 37, 12, 48, 51, 14, 0, 118, 101, 115, 8, 3, 37, 12, 84, 0, 114, 97, 99, 117, 115, 101, 1,
-			115, 3, 37, 34, 108, 49, 57, 40, 89, 0, 102, 108, 111, 115, 115, 1, 100, 110, 97, 99, 3, 37, 83, 55, 108, 89, 0, 4, 1, 110,
-			2, 97, 3, 57, 0, 2, 97, 109, 115, 0, 2, 101, 109, 101, 110, 0, 2, 111, 103, 97, 0, 2, 111, 110, 110, 0, 2, 117, 0, 101,
-			110, 110, 101, 1, 97, 99, 3, 57, 6, 115, 50, 14, 0, 97, 99, 104, 116, 3, 57, 35, 81, 72, 0, 111, 101, 108, 3, 57, 39, 6,
-			115, 55, 0, 111, 107, 111, 104, 97, 109, 97, 3, 57, 39, 49, 39, 107, 6, 117, 65, 117, 0, 111, 121, 111, 3, 57, 39, 57, 6, 39,
-			0, 117, 112, 112, 105, 101, 3, 57, 40, 48, 37, 0, 97, 114, 100, 3, 57, 51, 34, 72, 0, 111, 117, 110, 103, 3, 57, 108, 68, 0,
-			111, 110, 1, 110, 97, 99, 3, 57, 112, 50, 0, 101, 2, 108, 108, 111, 119, 3, 57, 115, 0, 101, 110, 8, 3, 57, 115, 50, 0, 97,
-			116, 101, 115, 8, 3, 57, 115, 57, 47, 89, 0, 97, 108, 101, 3, 57, 115, 57, 59, 0, 101, 97, 103, 101, 114, 3, 57, 115, 81, 108,
-			0, 97, 116, 122, 121, 3, 57, 117, 47, 89, 37, 0, 97, 110, 107, 101, 101, 3, 57, 117, 50, 49, 37, 0, 111, 114, 107, 3, 79, 108,
-			12, 49, 0, 2, 97, 115, 109, 105, 110, 3, 91, 0, 4, 1, 98, 105, 108, 3, 111, 0, 1, 109, 109, 17, 65, 0, 1, 110, 97, 102,
-			102, 105, 116, 0, 1, 112, 112, 97, 104, 0, 1, 114, 114, 97, 107, 2, 12, 0, 1, 116, 114, 97, 112, 0, 98, 97, 103, 1, 103, 103,
-			111, 100, 3, 111, 71, 118, 81, 0, 4, 1, 108, 108, 97, 2, 115, 111, 110, 3, 113, 0, 1, 119, 2, 110, 0, 1, 108, 102, 2, 110,
-			110, 3, 114, 0, 4, 1, 17, 67, 2, 17, 67, 101, 3, 129, 0, 1, 17, 67, 2, 17, 67, 105, 0, 1, 17, 67, 2, 101, 0, 1,
-			17, 67, 2, 115, 101, 12, 0, 1, 107, 2, 115, 101, 12, 0, 1, 107, 2, 115, 107, 12, 0, 1, 107, 115, 2, 115, 12, 0, 1, 107,
-			115, 2, 116, 101, 114, 0, 1, 107, 115, 2, 116, 105, 0, 1, 108, 102, 97, 2, 116, 0, 1, 110, 2, 116, 0, 1, 114, 2, 17, 67,
-			101, 12, 12, 0, 1, 114, 2, 18, 71, 17, 65, 12, 0, 1, 114, 2, 100, 101, 12, 12, 0, 103, 1, 114, 2, 32, 101, 110, 0, 103,
-			1, 114, 112, 2, 108, 0, 103, 1, 114, 116, 2, 108, 101, 0, 103, 1, 114, 2, 110, 105, 110, 103, 3, 129, 12, 0, 103, 101, 1, 114,
-			116, 115, 3, 129, 14, 0, 103, 1, 114, 116, 115, 3, 129, 57, 0, 118, 1, 115, 3, 129, 58, 0, 103, 101, 108, 107, 110, 97, 98, 101,
-			1, 114, 112, 3, 129, 81, 116, 55, 49, 50, 121, 71, 14, 0, 103, 101, 114, 1, 114, 116, 115, 3, 129, 108, 0, 4, 3, 130, 0, 1,
-			17, 67, 2, 17, 67, 101, 114, 0, 1, 17, 67, 2, 18, 73, 12, 0, 1, 17, 67, 2, 108, 108, 0, 1, 18, 73, 2, 114, 114, 0,
-			1, 98, 2, 17, 65, 0, 1, 99, 2, 107, 101, 108, 0, 1, 100, 2, 115, 115, 101, 0, 1, 104, 2, 108, 100, 0, 1, 104, 2, 112,
-			0, 1, 107, 2, 108, 108, 105, 110, 103, 12, 0, 1, 108, 2, 100, 101, 110, 0, 1, 108, 2, 100, 101, 110, 101, 114, 103, 105, 0, 1,
-			108, 2, 110, 32, 0, 1, 108, 2, 115, 101, 17, 67, 12, 0, 1, 108, 102, 0, 1, 108, 102, 97, 2, 116, 116, 0, 1, 108, 112, 2,
-			115, 115, 0, 1, 110, 107, 2, 116, 0, 1, 110, 107, 2, 116, 116, 0, 1, 114, 2, 18, 71, 12, 0, 1, 114, 2, 100, 17, 67, 12,
-			12, 0, 1, 114, 2, 100, 32, 12, 12, 0, 1, 114, 2, 108, 108, 101, 12, 12, 0, 1, 114, 2, 115, 107, 12, 0, 1, 114, 2, 116,
-			12, 0, 1, 114, 98, 2, 110, 0, 1, 114, 98, 114, 111, 102, 2, 100, 12, 12, 0, 1, 114, 102, 2, 115, 12, 0, 1, 114, 103, 2,
-			110, 0, 1, 114, 107, 2, 98, 98, 12, 0, 1, 114, 107, 2, 115, 12, 0, 1, 114, 116, 2, 100, 101, 0, 1, 114, 116, 2, 108, 12,
-			12, 0, 1, 114, 116, 115, 2, 17, 67, 0, 1, 115, 2, 110, 101, 115, 0, 1, 115, 2, 110, 107, 114, 0, 1, 115, 2, 110, 116, 0,
-			1, 115, 112, 2, 107, 0, 1, 116, 2, 107, 107, 101, 12, 12, 0, 1, 116, 101, 98, 2, 100, 0, 2, 103, 103, 101, 12, 12, 0, 2,
-			116, 116, 12, 12, 0, 8, 108, 2, 110, 12, 0, 8, 114, 2, 32, 0, 8, 114, 2, 101, 116, 32, 0, 103, 1, 109, 100, 121, 0, 110,
-			100, 1, 115, 2, 114, 111, 109, 3, 130, 50, 72, 0, 110, 103, 1, 108, 2, 108, 105, 109, 116, 3, 130, 50, 81, 0, 4, 114, 114, 101,
-			1, 102, 2, 107, 3, 131, 108, 0, 114, 114, 101, 1, 102, 2, 116, 114, 0, 4, 1, 107, 2, 115, 12, 3, 132, 0, 1, 107, 115, 2,
-			108, 110, 105, 0, 1, 108, 2, 115, 116, 32, 116, 105, 108, 32, 0, 1, 108, 2, 115, 116, 98, 0, 1, 108, 2, 115, 116, 101, 108, 105,
-			103, 0, 1, 108, 2, 115, 116, 101, 110, 0, 1, 108, 2, 115, 116, 101, 114, 0, 1, 108, 2, 115, 116, 102, 105, 115, 107, 0, 1, 108,
-			2, 115, 116, 104, 117, 115, 0, 1, 108, 2, 115, 116, 105, 103, 0, 1, 108, 2, 115, 116, 108, 195, 184, 103, 110, 0, 1, 108, 2, 115,
-			116, 109, 111, 114, 100, 0, 1, 108, 2, 115, 116, 110, 101, 0, 1, 108, 2, 115, 116, 115, 101, 106, 108, 0, 1, 108, 2, 115, 116, 115,
-			112, 105, 108, 0, 1, 108, 2, 115, 116, 121, 97, 99, 104, 116, 0, 1, 108, 32, 101, 107, 107, 105, 2, 115, 116, 0, 1, 108, 32, 114,
-			97, 104, 2, 115, 116, 0, 1, 108, 32, 114, 111, 116, 115, 2, 115, 116, 0, 1, 108, 32, 114, 165, 195, 102, 2, 115, 116, 0, 1, 108,
-			100, 97, 109, 2, 115, 116, 0, 1, 108, 101, 100, 105, 118, 2, 115, 116, 0, 1, 108, 101, 100, 166, 195, 2, 115, 116, 0, 1, 108, 101,
-			103, 114, 184, 195, 112, 115, 2, 115, 116, 0, 1, 108, 101, 107, 114, 105, 118, 2, 115, 116, 0, 1, 108, 101, 112, 112, 97, 107, 2, 115,
-			116, 0, 1, 108, 101, 114, 100, 110, 97, 118, 2, 115, 116, 0, 1, 108, 101, 114, 166, 195, 108, 2, 115, 116, 0, 1, 108, 101, 118, 105,
-			114, 107, 115, 2, 115, 116, 0, 1, 108, 102, 2, 116, 32, 0, 1, 108, 102, 2, 116, 98, 97, 114, 0, 1, 108, 102, 2, 116, 110, 0,
-			1, 108, 108, 101, 118, 2, 115, 116, 0, 1, 108, 110, 101, 106, 184, 195, 2, 115, 116, 0, 1, 108, 110, 118, 166, 195, 104, 2, 115, 116,
-			0, 1, 108, 115, 110, 101, 106, 184, 195, 2, 115, 116, 0, 1, 108, 115, 110, 101, 114, 184, 195, 2, 115, 116, 0, 1, 108, 115, 118, 105,
-			108, 2, 115, 116, 0, 1, 108, 117, 2, 115, 116, 0, 1, 110, 2, 107, 32, 0, 1, 114, 100, 2, 112, 0, 1, 115, 2, 110, 107, 114,
-			111, 99, 0, 4, 103, 1, 114, 2, 32, 3, 132, 81, 0, 103, 1, 114, 2, 32, 101, 110, 100, 32, 0, 4, 1, 18, 73, 2, 116, 12,
-			12, 3, 133, 0, 1, 100, 2, 18, 66, 116, 0, 1, 100, 2, 107, 0, 1, 100, 2, 112, 0, 1, 107, 2, 109, 25, 0, 1, 107, 115,
-			2, 108, 32, 0, 1, 107, 115, 2, 108, 108, 0, 1, 107, 115, 2, 116, 12, 0, 1, 108, 2, 103, 116, 0, 1, 108, 2, 107, 107, 12,
-			12, 0, 1, 108, 2, 107, 115, 97, 108, 105, 103, 0, 1, 108, 2, 107, 195, 184, 0, 1, 108, 2, 109, 17, 67, 0, 1, 108, 2, 110,
-			99, 104, 0, 1, 108, 2, 115, 116, 103, 195, 165, 114, 100, 0, 1, 108, 102, 2, 116, 116, 101, 0, 1, 108, 102, 97, 114, 102, 2, 116,
-			0, 1, 109, 2, 107, 107, 12, 12, 0, 1, 109, 115, 2, 107, 110, 0, 1, 110, 2, 107, 107, 101, 114, 0, 1, 110, 2, 109, 102, 0,
-			1, 110, 2, 110, 110, 101, 0, 1, 110, 2, 116, 116, 12, 0, 1, 110, 100, 117, 2, 116, 0, 1, 110, 101, 98, 2, 116, 0, 1, 112,
-			2, 110, 116, 0, 1, 114, 2, 17, 67, 12, 0, 1, 114, 2, 18, 66, 11, 12, 12, 0, 1, 114, 103, 2, 110, 116, 0, 1, 115, 2,
-			116, 116, 101, 110, 12, 0, 1, 116, 115, 2, 107, 12, 0, 1, 116, 115, 2, 107, 107, 12, 12, 0, 1, 116, 115, 2, 109, 112, 101, 114,
-			0, 2, 110, 100, 12, 0, 2, 110, 107, 12, 0, 8, 110, 2, 110, 32, 0, 114, 114, 101, 1, 102, 3, 133, 12, 23, 108, 0, 110, 100,
-			105, 1, 115, 2, 107, 3, 133, 50, 72, 37, 0, 110, 103, 2, 97, 3, 133, 50, 81, 0, 4, 110, 103, 3, 133, 68, 0, 110, 103, 1,
-			108, 0, 115, 115, 1, 107, 3, 133, 89, 0, 4, 1, 99, 2, 98, 101, 114, 3, 136, 0, 1, 107, 115, 2, 108, 105, 103, 104, 116, 0,
-			1, 116, 115, 2, 108, 105, 115, 116, 0, 114, 111, 110, 101, 1, 116, 3, 136, 34, 6, 125, 58, 50, 0, 116, 101, 1, 98, 3, 136, 47,
-			0, 112, 97, 115, 115, 1, 98, 3, 136, 48, 35, 12, 89, 0, 4, 108, 101, 1, 108, 114, 97, 99, 3, 136, 55, 0, 108, 101, 8, 108,
-			0, 100, 101, 1, 108, 99, 3, 136, 72, 0, 100, 101, 108, 108, 1, 114, 3, 136, 72, 6, 115, 59, 0, 107, 101, 115, 8, 115, 3, 136,
-			81, 89, 0, 97, 8, 119, 2, 116, 116, 3, 136, 112, 0, 7, 6, 122, 0, 1, 101, 104, 99, 2, 32, 3, 0, 122, 1, 105, 112, 2,
-			97, 3, 47, 89, 0, 4, 3, 89, 0, 122, 0, 101, 97, 2, 108, 97, 110, 3, 89, 36, 0, 4, 111, 109, 98, 105, 3, 89, 108, 65,
-			71, 37, 0, 111, 109, 98, 105, 101, 0, 7, 6, 0, 195, 177, 3, 21, 101, 115, 0, 195, 175, 3, 37, 12, 0, 36, 3, 72, 108, 55,
-			108, 0, 195, 167, 3, 89, 0, 195, 171, 3, 115, 0, 195, 160, 3, 117, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts11 = FileInMemory_createWithData (208489, reinterpret_cast<const char *> (&espeakdata_dicts11_data), 
-			U"espeak-1.48.04-source/espeak-data/da_dict", 
+			6, 36, 50, 0, 111, 110, 3, 81, 89, 114, 50, 0, 4, 1, 110, 3, 89, 0, 8, 0, 7, 6, 121, 0, 1, 98, 100, 110, 97, 116,
+			115, 3, 6, 35, 57, 0, 4, 1, 110, 111, 100, 117, 101, 115, 112, 2, 109, 3, 6, 116, 0, 8, 107, 101, 108, 111, 109, 2, 108, 101,
+			0, 8, 108, 112, 97, 114, 97, 112, 0, 8, 110, 105, 118, 2, 108, 0, 8, 115, 97, 2, 108, 0, 8, 116, 97, 108, 2, 114, 117, 115,
+			0, 8, 116, 111, 101, 114, 101, 116, 115, 2, 112, 0, 8, 118, 101, 114, 0, 8, 122, 110, 101, 2, 109, 0, 4, 1, 110, 97, 107, 2,
+			108, 101, 3, 6, 117, 0, 8, 98, 97, 107, 2, 115, 0, 8, 104, 97, 107, 2, 116, 0, 4, 1, 109, 2, 110, 116, 101, 3, 6, 118,
+			0, 8, 114, 97, 112, 2, 107, 0, 111, 114, 107, 115, 104, 105, 114, 101, 3, 10, 57, 113, 49, 91, 13, 0, 103, 1, 114, 2, 32, 3,
+			13, 49, 0, 4, 1, 99, 2, 98, 101, 114, 3, 35, 57, 0, 1, 107, 115, 2, 108, 105, 103, 104, 116, 0, 1, 116, 115, 2, 108, 105,
+			115, 116, 0, 116, 101, 1, 98, 3, 35, 57, 47, 0, 112, 97, 115, 115, 1, 98, 3, 35, 57, 48, 35, 12, 89, 0, 4, 108, 101, 1,
+			108, 114, 97, 99, 3, 35, 57, 55, 0, 108, 101, 8, 108, 0, 100, 101, 1, 108, 99, 3, 35, 57, 72, 0, 100, 101, 108, 108, 1, 114,
+			3, 35, 57, 72, 6, 109, 59, 0, 107, 101, 115, 8, 115, 3, 35, 57, 81, 89, 0, 97, 8, 119, 2, 116, 116, 3, 35, 57, 108, 0,
+			110, 100, 111, 110, 8, 108, 3, 36, 50, 72, 114, 50, 0, 110, 116, 104, 101, 115, 105, 122, 101, 114, 1, 115, 3, 36, 50, 87, 36, 89,
+			35, 57, 89, 114, 0, 108, 118, 97, 110, 105, 97, 1, 115, 110, 110, 101, 112, 3, 36, 55, 84, 6, 109, 57, 50, 57, 110, 0, 4, 1,
+			98, 98, 111, 3, 37, 0, 1, 98, 105, 108, 0, 1, 99, 110, 97, 110, 0, 1, 99, 117, 108, 0, 1, 100, 2, 32, 0, 1, 100, 2,
+			108, 97, 110, 0, 1, 100, 2, 115, 32, 0, 1, 107, 99, 97, 106, 0, 1, 107, 99, 101, 98, 0, 1, 107, 115, 105, 104, 119, 0, 1,
+			108, 105, 109, 101, 0, 1, 108, 107, 111, 111, 114, 98, 2, 110, 0, 1, 108, 108, 101, 104, 115, 0, 1, 108, 108, 101, 107, 0, 1, 108,
+			108, 105, 98, 0, 1, 108, 108, 105, 108, 0, 1, 108, 111, 114, 97, 99, 2, 110, 0, 1, 110, 110, 101, 112, 0, 1, 110, 110, 111, 100,
+			0, 1, 110, 110, 111, 114, 0, 1, 112, 112, 97, 104, 0, 1, 114, 97, 109, 2, 115, 0, 1, 114, 111, 103, 101, 114, 103, 0, 1, 114,
+			114, 97, 107, 2, 12, 0, 1, 114, 114, 101, 104, 115, 0, 1, 116, 102, 105, 102, 0, 1, 116, 105, 99, 0, 1, 116, 105, 110, 105, 114,
+			116, 0, 1, 116, 110, 117, 111, 99, 0, 1, 116, 114, 97, 112, 0, 1, 116, 115, 101, 110, 109, 97, 0, 1, 116, 116, 101, 98, 0, 1,
+			116, 116, 105, 107, 0, 1, 118, 108, 101, 109, 2, 110, 0, 8, 98, 97, 110, 114, 97, 98, 0, 8, 114, 114, 97, 104, 0, 1, 108, 111,
+			112, 2, 101, 115, 116, 3, 37, 6, 0, 112, 114, 101, 115, 8, 3, 37, 12, 48, 51, 20, 108, 0, 118, 101, 115, 8, 3, 37, 12, 84,
+			0, 102, 108, 111, 115, 115, 1, 100, 110, 97, 99, 3, 37, 83, 55, 114, 89, 0, 4, 1, 110, 2, 97, 3, 57, 0, 2, 97, 109, 115,
+			0, 2, 101, 109, 101, 110, 0, 2, 111, 103, 97, 0, 2, 111, 110, 110, 0, 101, 110, 110, 101, 1, 97, 99, 3, 57, 6, 109, 50, 108,
+			0, 97, 114, 100, 3, 57, 35, 34, 72, 0, 97, 99, 104, 116, 3, 57, 35, 81, 72, 0, 111, 107, 111, 104, 97, 109, 97, 3, 57, 39,
+			49, 39, 107, 6, 110, 65, 110, 0, 111, 121, 111, 3, 57, 39, 57, 6, 39, 0, 117, 112, 112, 105, 101, 3, 57, 40, 48, 37, 0, 111,
+			110, 1, 110, 97, 99, 3, 57, 108, 50, 0, 101, 110, 8, 3, 57, 109, 50, 0, 97, 116, 101, 115, 8, 3, 57, 109, 57, 47, 89, 0,
+			97, 108, 101, 3, 57, 109, 57, 59, 0, 101, 97, 103, 101, 114, 3, 57, 109, 81, 114, 0, 97, 116, 122, 121, 3, 57, 110, 47, 89, 37,
+			0, 97, 110, 107, 101, 101, 3, 57, 110, 50, 49, 37, 0, 111, 117, 110, 103, 3, 57, 114, 68, 0, 111, 114, 107, 3, 79, 114, 12, 49,
+			0, 2, 97, 115, 109, 105, 110, 3, 91, 0, 4, 3, 116, 0, 1, 17, 67, 2, 18, 73, 12, 0, 1, 98, 2, 17, 65, 0, 1, 107,
+			2, 108, 108, 105, 110, 103, 12, 0, 1, 107, 2, 115, 107, 12, 0, 1, 107, 115, 2, 115, 12, 0, 1, 107, 115, 2, 116, 101, 114, 0,
+			1, 107, 115, 2, 116, 105, 0, 1, 108, 2, 110, 32, 0, 1, 108, 102, 97, 2, 116, 0, 1, 108, 102, 97, 2, 116, 116, 0, 1, 110,
+			107, 2, 116, 0, 1, 114, 2, 17, 67, 17, 65, 12, 0, 1, 114, 2, 18, 71, 12, 0, 1, 114, 2, 100, 12, 0, 1, 114, 2, 103,
+			101, 12, 0, 1, 114, 2, 108, 108, 101, 0, 1, 114, 2, 115, 107, 12, 0, 1, 114, 2, 116, 12, 0, 1, 114, 98, 2, 110, 0, 1,
+			114, 102, 2, 115, 12, 0, 1, 114, 103, 2, 110, 0, 1, 114, 107, 2, 98, 98, 12, 0, 1, 114, 107, 2, 115, 12, 0, 1, 114, 116,
+			115, 2, 17, 67, 0, 1, 115, 2, 110, 100, 114, 111, 109, 0, 1, 115, 2, 110, 107, 114, 0, 1, 115, 2, 110, 116, 0, 1, 116, 2,
+			18, 66, 11, 101, 0, 8, 108, 2, 110, 0, 103, 1, 114, 2, 32, 101, 110, 0, 103, 1, 114, 2, 110, 105, 110, 103, 0, 103, 1, 114,
+			112, 2, 108, 0, 103, 1, 114, 116, 2, 108, 101, 0, 1, 107, 2, 115, 101, 12, 3, 116, 12, 0, 103, 101, 1, 114, 116, 115, 3, 116,
+			12, 13, 0, 110, 103, 1, 108, 2, 108, 105, 109, 116, 3, 116, 50, 81, 0, 4, 103, 1, 109, 100, 121, 3, 116, 57, 0, 103, 1, 114,
+			116, 115, 0, 118, 1, 115, 3, 116, 58, 0, 103, 101, 108, 107, 110, 97, 98, 101, 1, 114, 112, 3, 116, 81, 109, 55, 49, 50, 112, 71,
+			108, 0, 4, 1, 110, 2, 116, 3, 117, 0, 1, 114, 17, 67, 2, 18, 73, 0, 4, 114, 114, 101, 1, 102, 2, 107, 3, 117, 12, 114,
+			0, 114, 114, 101, 1, 102, 2, 116, 114, 0, 4, 1, 18, 73, 2, 116, 3, 118, 0, 1, 100, 2, 18, 66, 116, 0, 1, 100, 2, 107,
+			0, 1, 100, 2, 112, 0, 1, 107, 2, 109, 25, 0, 1, 107, 2, 115, 12, 0, 1, 107, 115, 2, 108, 32, 0, 1, 107, 115, 2, 108,
+			108, 0, 1, 107, 115, 2, 108, 110, 105, 0, 1, 108, 2, 103, 116, 0, 1, 108, 2, 107, 115, 97, 108, 105, 103, 0, 1, 108, 2, 107,
+			195, 184, 0, 1, 108, 2, 109, 17, 67, 0, 1, 108, 2, 110, 99, 104, 0, 1, 108, 2, 115, 116, 32, 116, 105, 108, 32, 0, 1, 108,
+			2, 115, 116, 98, 0, 1, 108, 2, 115, 116, 101, 108, 105, 103, 0, 1, 108, 2, 115, 116, 101, 110, 0, 1, 108, 2, 115, 116, 101, 114,
+			0, 1, 108, 2, 115, 116, 102, 105, 115, 107, 0, 1, 108, 2, 115, 116, 103, 195, 165, 114, 100, 0, 1, 108, 2, 115, 116, 104, 117, 115,
+			0, 1, 108, 2, 115, 116, 105, 103, 0, 1, 108, 2, 115, 116, 108, 195, 184, 103, 110, 0, 1, 108, 2, 115, 116, 109, 111, 114, 100, 0,
+			1, 108, 2, 115, 116, 110, 101, 0, 1, 108, 2, 115, 116, 115, 101, 106, 108, 0, 1, 108, 2, 115, 116, 115, 112, 105, 108, 0, 1, 108,
+			2, 115, 116, 121, 97, 99, 104, 116, 0, 1, 108, 32, 101, 107, 107, 105, 2, 115, 116, 0, 1, 108, 32, 114, 97, 104, 2, 115, 116, 0,
+			1, 108, 32, 114, 111, 116, 115, 2, 115, 116, 0, 1, 108, 32, 114, 165, 195, 102, 2, 115, 116, 0, 1, 108, 100, 97, 109, 2, 115, 116,
+			0, 1, 108, 101, 100, 105, 118, 2, 115, 116, 0, 1, 108, 101, 100, 166, 195, 2, 115, 116, 0, 1, 108, 101, 103, 114, 184, 195, 112, 115,
+			2, 115, 116, 0, 1, 108, 101, 107, 114, 105, 118, 2, 115, 116, 0, 1, 108, 101, 112, 112, 97, 107, 2, 115, 116, 0, 1, 108, 101, 114,
+			100, 110, 97, 118, 2, 115, 116, 0, 1, 108, 101, 114, 166, 195, 108, 2, 115, 116, 0, 1, 108, 101, 118, 105, 114, 107, 115, 2, 115, 116,
+			0, 1, 108, 102, 2, 116, 32, 0, 1, 108, 102, 2, 116, 98, 97, 114, 0, 1, 108, 102, 2, 116, 110, 0, 1, 108, 102, 2, 116, 116,
+			0, 1, 108, 108, 101, 118, 2, 115, 116, 0, 1, 108, 110, 101, 106, 184, 195, 2, 115, 116, 0, 1, 108, 110, 118, 166, 195, 104, 2, 115,
+			116, 0, 1, 108, 115, 110, 101, 106, 184, 195, 2, 115, 116, 0, 1, 108, 115, 110, 101, 114, 184, 195, 2, 115, 116, 0, 1, 108, 115, 118,
+			105, 108, 2, 115, 116, 0, 1, 108, 117, 2, 115, 116, 0, 1, 109, 115, 2, 107, 110, 0, 1, 110, 2, 107, 32, 0, 1, 110, 2, 107,
+			101, 114, 0, 1, 110, 2, 109, 102, 0, 1, 110, 2, 110, 110, 101, 0, 1, 110, 2, 116, 116, 0, 1, 110, 100, 117, 2, 116, 0, 1,
+			110, 101, 98, 2, 116, 0, 1, 112, 2, 110, 116, 0, 1, 114, 2, 17, 67, 12, 0, 1, 114, 100, 2, 112, 0, 1, 114, 103, 2, 110,
+			116, 0, 1, 114, 107, 2, 18, 66, 11, 12, 0, 1, 115, 2, 110, 107, 114, 111, 99, 0, 1, 115, 2, 116, 116, 101, 110, 0, 1, 116,
+			115, 2, 107, 12, 0, 1, 116, 115, 2, 109, 112, 101, 114, 0, 2, 107, 107, 12, 0, 2, 110, 100, 12, 0, 2, 110, 107, 0, 8, 110,
+			2, 110, 32, 0, 1, 110, 107, 2, 116, 116, 3, 118, 12, 0, 114, 114, 101, 1, 102, 3, 118, 12, 114, 0, 110, 100, 105, 1, 115, 2,
+			107, 3, 118, 50, 72, 37, 0, 110, 103, 2, 97, 3, 118, 50, 81, 0, 4, 110, 103, 3, 118, 68, 0, 110, 103, 1, 108, 0, 115, 115,
+			1, 107, 3, 118, 89, 0, 114, 111, 110, 101, 1, 116, 3, 120, 34, 6, 113, 58, 50, 0, 7, 6, 122, 0, 1, 101, 104, 99, 2, 32,
+			3, 0, 122, 1, 105, 112, 2, 97, 3, 47, 89, 0, 4, 3, 89, 0, 122, 0, 101, 97, 2, 108, 97, 110, 3, 89, 36, 0, 4, 111,
+			109, 98, 105, 3, 89, 114, 65, 71, 37, 0, 111, 109, 98, 105, 101, 0, 7, 6, 0, 195, 177, 3, 21, 101, 115, 0, 195, 175, 3, 37,
+			12, 0, 36, 3, 72, 114, 55, 114, 0, 195, 167, 3, 89, 0, 195, 160, 3, 110, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts10 = FileInMemory_createWithData (193791, reinterpret_cast<const char *> (&espeakdata_dicts10_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/da_dict", 
 			U"da");
-		my addItem_move (espeakdata_dicts11.move());
+		Collection_addItem (me.peek(), espeakdata_dicts10.transfer());
 
-		static unsigned char espeakdata_dicts12_data[21817] = {
-			0, 4, 0, 0, 44, 34, 0, 0, 0, 0, 13, 68, 92, 244, 129, 56, 84, 127, 34, 6, 35, 50, 0, 0, 19, 71, 28, 81, 197, 58,
-			176, 133, 72, 81, 126, 81, 13, 50, 6, 128, 71, 108, 0, 0, 0, 21, 65, 4, 116, 15, 116, 15, 10, 127, 0, 85, 46, 32, 97, 32,
-			46, 32, 111, 32, 46, 32, 0, 9, 68, 5, 4, 12, 20, 21, 0, 47, 0, 14, 69, 20, 147, 137, 28, 80, 122, 50, 111, 81, 13, 0,
-			76, 0, 17, 70, 81, 53, 78, 4, 210, 64, 132, 120, 50, 6, 35, 12, 65, 118, 0, 0, 0, 17, 70, 36, 225, 5, 77, 49, 78, 111,
-			50, 72, 6, 109, 89, 13, 50, 0, 0, 8, 196, 36, 131, 133, 56, 76, 46, 0, 0, 8, 197, 20, 33, 78, 76, 240, 65, 0, 0, 15,
-			69, 92, 82, 84, 84, 208, 84, 122, 47, 23, 6, 114, 65, 0, 0, 0, 0, 0, 8, 197, 28, 195, 210, 36, 80, 15, 0, 12, 67, 32,
-			20, 212, 2, 107, 35, 89, 47, 0, 46, 11, 67, 8, 148, 212, 71, 111, 89, 47, 0, 72, 12, 4, 95, 100, 112, 116, 10, 49, 113, 65,
-			35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 32, 148, 212, 61, 34, 69, 15, 0, 0, 13, 68, 92, 242, 5, 72, 84, 127,
-			107, 6, 126, 34, 0, 8, 67, 28, 147, 128, 21, 0, 47, 0, 0, 12, 68, 92, 243, 12, 80, 2, 84, 113, 55, 47, 0, 0, 0, 17,
-			67, 9, 165, 192, 71, 13, 132, 118, 114, 68, 89, 84, 122, 88, 13, 0, 0, 9, 1, 35, 50, 114, 65, 108, 0, 27, 0, 0, 7, 196,
-			73, 84, 9, 20, 15, 9, 68, 25, 32, 77, 20, 21, 0, 47, 13, 1, 37, 48, 34, 127, 132, 6, 109, 50, 47, 0, 27, 0, 11, 67,
-			92, 148, 128, 84, 118, 34, 0, 72, 46, 7, 1, 38, 114, 50, 47, 0, 0, 0, 0, 0, 11, 67, 92, 20, 128, 2, 84, 116, 34, 0,
-			46, 22, 67, 28, 20, 128, 81, 4, 116, 34, 50, 6, 111, 99, 47, 0, 81, 110, 105, 99, 104, 116, 32, 10, 1, 42, 91, 47, 109, 34,
-			50, 0, 27, 0, 9, 1, 43, 48, 55, 114, 89, 0, 27, 0, 0, 13, 68, 105, 81, 5, 52, 132, 120, 6, 72, 126, 65, 0, 12, 68,
-			52, 241, 5, 52, 65, 127, 72, 109, 65, 0, 0, 0, 11, 70, 24, 148, 133, 92, 19, 12, 21, 0, 47, 15, 69, 32, 21, 20, 20, 224,
-			107, 4, 35, 47, 13, 50, 0, 46, 0, 13, 4, 95, 100, 105, 97, 6, 114, 65, 55, 121, 47, 0, 0, 0, 10, 67, 16, 20, 211, 72,
-			35, 89, 0, 76, 0, 10, 67, 76, 17, 212, 88, 116, 81, 47, 0, 0, 0, 9, 68, 76, 244, 146, 100, 21, 0, 47, 0, 0, 0, 0,
-			0, 0, 0, 0, 21, 73, 77, 2, 78, 61, 160, 73, 76, 50, 0, 89, 48, 118, 50, 6, 127, 132, 122, 91, 0, 9, 1, 61, 81, 55,
-			122, 99, 0, 27, 0, 0, 0, 15, 1, 64, 49, 55, 6, 35, 65, 108, 10, 4, 35, 83, 13, 0, 0, 9, 66, 4, 32, 35, 48, 0,
-			76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 60, 65, 82, 127, 72, 108, 0, 76, 8, 0, 8, 67, 80, 129, 64, 86, 13, 0,
-			0, 13, 4, 95, 100, 111, 116, 48, 6, 114, 50, 49, 47, 0, 0, 15, 70, 28, 84, 212, 21, 35, 128, 81, 109, 89, 47, 108, 50, 0,
-			19, 71, 25, 34, 69, 17, 99, 204, 48, 83, 34, 6, 118, 47, 83, 4, 113, 55, 0, 0, 16, 70, 77, 0, 82, 76, 19, 64, 91, 48,
-			116, 34, 88, 116, 65, 0, 8, 67, 77, 0, 77, 21, 0, 47, 0, 9, 67, 5, 37, 0, 116, 34, 47, 0, 10, 67, 5, 81, 128, 121,
-			83, 0, 76, 28, 11, 67, 8, 65, 64, 71, 109, 50, 72, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 83, 121,
-			0, 0, 0, 16, 67, 4, 227, 64, 6, 35, 50, 65, 4, 109, 34, 49, 114, 68, 0, 0, 10, 199, 56, 85, 77, 21, 130, 75, 60, 66,
-			8, 67, 12, 245, 80, 49, 120, 0, 0, 10, 69, 4, 48, 197, 77, 48, 21, 0, 47, 11, 1, 92, 71, 35, 49, 89, 55, 35, 91, 0,
-			0, 0, 0, 8, 67, 84, 226, 88, 21, 0, 47, 0, 7, 65, 96, 111, 49, 89, 0, 0, 20, 4, 95, 49, 77, 50, 10, 6, 122, 50,
-			13, 15, 65, 111, 55, 111, 6, 127, 50, 0, 0, 22, 4, 95, 49, 77, 51, 10, 6, 122, 50, 13, 15, 65, 111, 55, 111, 6, 35, 34,
-			72, 13, 0, 0, 0, 0, 0, 0, 0, 21, 65, 104, 132, 114, 65, 71, 6, 122, 91, 48, 118, 55, 0, 83, 46, 32, 98, 32, 46, 32,
-			0, 11, 68, 8, 81, 82, 20, 71, 126, 34, 13, 0, 0, 9, 67, 92, 20, 192, 84, 35, 89, 0, 0, 0, 0, 0, 0, 7, 195, 21,
-			80, 200, 76, 46, 0, 0, 0, 0, 9, 68, 25, 33, 65, 44, 21, 0, 47, 0, 9, 198, 9, 35, 206, 12, 130, 69, 15, 13, 68, 16,
-			19, 73, 80, 72, 116, 65, 6, 111, 47, 0, 0, 0, 16, 4, 95, 48, 67, 111, 6, 107, 114, 50, 72, 108, 132, 47, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 12, 68, 84, 229, 5, 56, 114, 50, 47, 13, 50, 0, 20, 71, 20, 33, 78, 16, 18, 9, 56, 126, 71, 13,
-			50, 72, 35, 107, 6, 111, 50, 0, 9, 68, 76, 85, 133, 56, 21, 0, 47, 9, 1, 126, 47, 111, 55, 72, 13, 0, 0, 13, 69, 52,
-			16, 200, 20, 224, 65, 35, 101, 13, 50, 0, 13, 4, 95, 116, 108, 100, 47, 6, 111, 55, 72, 13, 0, 0, 8, 197, 76, 19, 15, 65,
-			0, 66, 9, 68, 12, 245, 67, 32, 21, 0, 47, 0, 9, 66, 8, 64, 71, 35, 50, 72, 0, 0, 0, 4, 193, 124, 43, 0, 0, 0,
-			0, 0, 0, 13, 138, 112, 114, 195, 164, 115, 105, 100, 101, 110, 116, 67, 0, 0, 12, 68, 88, 244, 137, 28, 83, 127, 34, 111, 134, 0,
-			0, 9, 198, 16, 84, 200, 4, 192, 128, 66, 17, 7, 104, 195, 164, 116, 116, 101, 110, 107, 4, 109, 47, 13, 50, 0, 46, 0, 0, 9,
-			67, 5, 97, 64, 116, 84, 109, 0, 0, 14, 69, 21, 36, 212, 20, 224, 126, 34, 89, 47, 13, 50, 0, 11, 70, 16, 245, 206, 48, 240,
-			68, 21, 0, 47, 0, 12, 67, 32, 16, 133, 2, 107, 116, 71, 13, 0, 46, 0, 5, 194, 16, 16, 76, 0, 0, 0, 9, 68, 21, 97,
-			78, 80, 21, 0, 47, 0, 0, 10, 67, 77, 34, 64, 89, 34, 4, 118, 0, 11, 68, 44, 131, 69, 72, 49, 65, 126, 34, 0, 9, 68,
-			81, 83, 133, 72, 21, 0, 47, 0, 8, 67, 81, 34, 80, 21, 0, 47, 0, 15, 70, 80, 129, 65, 80, 84, 128, 47, 126, 6, 116, 47,
-			108, 0, 11, 70, 9, 35, 215, 76, 84, 128, 21, 0, 47, 16, 69, 46, 131, 142, 20, 224, 4, 49, 131, 50, 13, 50, 0, 46, 10, 0,
-			0, 7, 196, 76, 241, 193, 72, 66, 0, 0, 0, 8, 197, 76, 245, 207, 32, 192, 66, 0, 12, 68, 8, 85, 5, 56, 71, 126, 47, 13,
-			50, 0, 0, 15, 69, 93, 84, 132, 20, 224, 84, 4, 114, 34, 72, 13, 50, 0, 16, 69, 92, 84, 132, 20, 224, 84, 4, 109, 34, 72,
-			13, 50, 0, 10, 0, 0, 13, 69, 16, 85, 1, 36, 192, 72, 126, 47, 6, 122, 0, 0, 19, 71, 8, 19, 132, 4, 114, 69, 72, 71,
-			35, 50, 72, 35, 90, 6, 118, 13, 0, 17, 7, 104, 195, 164, 116, 116, 101, 116, 107, 4, 109, 47, 13, 47, 0, 46, 0, 0, 4, 193,
-			128, 43, 0, 0, 20, 71, 20, 33, 78, 16, 18, 5, 72, 126, 71, 13, 50, 72, 35, 107, 6, 126, 34, 0, 18, 71, 5, 36, 129, 56,
-			114, 69, 72, 35, 34, 35, 68, 90, 6, 118, 13, 0, 18, 71, 5, 36, 5, 28, 114, 69, 72, 35, 34, 48, 109, 75, 6, 118, 34, 0,
-			19, 71, 4, 36, 197, 57, 66, 69, 72, 35, 48, 88, 109, 50, 47, 6, 118, 34, 0, 11, 67, 5, 84, 192, 4, 121, 89, 0, 28, 9,
-			0, 0, 12, 201, 52, 149, 5, 36, 224, 78, 16, 84, 128, 65, 10, 199, 4, 36, 212, 36, 225, 78, 80, 67, 0, 12, 66, 17, 32, 72,
-			113, 49, 47, 6, 127, 34, 0, 0, 20, 71, 5, 97, 78, 81, 84, 137, 56, 35, 84, 109, 50, 47, 120, 34, 6, 118, 50, 0, 8, 67,
-			80, 19, 11, 21, 0, 47, 0, 0, 0, 16, 70, 32, 84, 130, 21, 33, 192, 107, 109, 34, 71, 109, 34, 81, 0, 0, 0, 0, 9, 68,
-			76, 208, 76, 48, 21, 0, 47, 0, 0, 17, 70, 36, 229, 5, 72, 84, 211, 111, 50, 47, 13, 34, 6, 109, 89, 0, 8, 67, 4, 145,
-			0, 21, 0, 47, 0, 9, 4, 95, 111, 114, 100, 47, 13, 0, 0, 9, 67, 104, 243, 205, 88, 120, 65, 0, 11, 68, 16, 145, 78, 80,
-			72, 118, 50, 47, 0, 13, 68, 4, 35, 210, 80, 35, 71, 6, 113, 34, 47, 0, 12, 68, 20, 147, 147, 80, 6, 122, 50, 89, 47, 0,
-			0, 14, 4, 95, 109, 99, 110, 65, 6, 116, 49, 34, 113, 50, 0, 0, 0, 0, 11, 70, 76, 48, 78, 56, 84, 128, 21, 0, 47, 13,
-			68, 40, 85, 26, 80, 57, 4, 109, 132, 47, 0, 10, 0, 15, 69, 92, 147, 12, 77, 64, 2, 84, 111, 55, 89, 47, 0, 46, 0, 0,
-			0, 0, 9, 197, 60, 37, 207, 32, 192, 66, 8, 0, 0, 0, 0, 0, 0, 7, 196, 72, 148, 201, 44, 65, 0, 0, 11, 67, 160, 65,
-			77, 130, 72, 6, 126, 65, 0, 0, 13, 72, 20, 229, 5, 73, 4, 137, 76, 80, 21, 0, 47, 0, 0, 0, 10, 66, 21, 32, 109, 34,
-			0, 72, 28, 46, 0, 9, 67, 16, 145, 64, 2, 72, 118, 0, 0, 0, 0, 0, 0, 9, 67, 5, 80, 200, 4, 121, 101, 0, 0, 0,
-			0, 0, 0, 0, 14, 69, 76, 83, 2, 77, 64, 88, 109, 55, 48, 89, 47, 0, 8, 197, 32, 82, 77, 5, 64, 65, 0, 16, 70, 16,
-			17, 21, 72, 50, 0, 72, 116, 72, 6, 114, 34, 99, 0, 11, 67, 8, 82, 64, 71, 122, 0, 76, 28, 46, 0, 0, 13, 68, 92, 148,
-			147, 80, 84, 4, 111, 34, 89, 47, 0, 0, 17, 66, 21, 48, 2, 109, 89, 2, 111, 89, 47, 0, 81, 105, 115, 116, 32, 9, 66, 21,
-			48, 109, 89, 0, 72, 46, 6, 194, 17, 80, 72, 46, 0, 10, 67, 80, 147, 64, 47, 111, 65, 0, 46, 0, 14, 69, 40, 19, 149, 5,
-			32, 57, 35, 50, 120, 116, 34, 0, 0, 0, 20, 9, 97, 117, 195, 159, 101, 114, 100, 101, 109, 6, 121, 89, 108, 72, 4, 126, 65, 0,
-			0, 18, 71, 28, 81, 204, 36, 50, 5, 56, 81, 13, 81, 55, 111, 99, 13, 50, 0, 0, 0, 0, 0, 11, 67, 36, 228, 192, 111, 50,
-			89, 0, 76, 28, 0, 17, 3, 95, 35, 57, 47, 4, 35, 71, 120, 55, 6, 116, 47, 127, 108, 0, 0, 0, 0, 15, 69, 73, 112, 78,
-			16, 16, 34, 114, 6, 35, 50, 72, 116, 0, 7, 195, 84, 228, 192, 76, 46, 0, 0, 14, 69, 52, 243, 148, 4, 112, 65, 127, 50, 47,
-			116, 49, 0, 0, 8, 66, 25, 32, 83, 34, 121, 0, 0, 14, 69, 84, 228, 197, 72, 80, 114, 50, 88, 34, 13, 0, 72, 0, 0, 12,
-			67, 25, 35, 0, 83, 34, 124, 55, 122, 50, 0, 0, 8, 67, 69, 82, 90, 21, 0, 47, 0, 4, 193, 136, 43, 0, 10, 135, 112, 114,
-			195, 164, 109, 105, 101, 15, 0, 0, 9, 66, 4, 208, 35, 65, 0, 76, 28, 0, 0, 0, 16, 70, 76, 243, 12, 80, 83, 128, 4, 88,
-			113, 55, 47, 13, 50, 0, 0, 14, 69, 76, 243, 12, 77, 64, 4, 88, 113, 55, 89, 47, 0, 0, 0, 14, 69, 48, 241, 201, 21, 32,
-			55, 127, 90, 6, 118, 34, 0, 0, 0, 0, 15, 68, 84, 229, 5, 72, 4, 114, 50, 47, 108, 0, 8, 9, 46, 0, 0, 0, 0, 0,
-			0, 0, 11, 67, 44, 19, 142, 4, 49, 35, 50, 0, 46, 0, 9, 66, 4, 224, 35, 50, 0, 76, 28, 0, 0, 0, 8, 197, 32, 244,
-			212, 36, 80, 15, 14, 69, 8, 84, 212, 36, 80, 71, 109, 89, 47, 111, 13, 0, 10, 69, 76, 147, 135, 48, 80, 21, 0, 47, 0, 0,
-			0, 11, 67, 76, 147, 132, 88, 111, 50, 47, 0, 72, 0, 15, 6, 104, 195, 164, 116, 116, 101, 107, 4, 109, 47, 13, 0, 46, 0, 0,
-			6, 195, 5, 34, 69, 15, 0, 10, 67, 76, 243, 12, 4, 88, 113, 55, 0, 0, 0, 0, 11, 68, 81, 32, 73, 56, 47, 34, 126, 50,
-			0, 13, 68, 84, 210, 9, 56, 114, 65, 107, 6, 111, 50, 0, 0, 0, 0, 0, 9, 198, 48, 20, 16, 4, 194, 69, 15, 9, 198, 44,
-			20, 212, 4, 226, 69, 15, 9, 198, 4, 227, 205, 4, 194, 69, 66, 0, 0, 11, 67, 32, 21, 0, 2, 107, 35, 47, 0, 46, 0, 0,
-			0, 0, 0, 0, 0, 0, 14, 69, 84, 228, 197, 72, 208, 114, 50, 89, 108, 65, 0, 72, 0, 0, 11, 67, 105, 83, 64, 132, 114, 65,
-			0, 76, 8, 9, 67, 32, 147, 128, 107, 111, 50, 0, 0, 0, 0, 7, 66, 16, 160, 21, 0, 47, 12, 67, 92, 83, 142, 4, 84, 109,
-			50, 0, 8, 9, 0, 12, 68, 76, 50, 15, 56, 91, 4, 127, 50, 0, 10, 7, 195, 16, 148, 128, 76, 46, 0, 0, 0, 0, 0, 7,
-			196, 48, 147, 9, 20, 15, 7, 196, 45, 84, 137, 20, 15, 0, 0, 8, 66, 33, 32, 107, 109, 34, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 16, 70, 16, 162, 66, 61, 85, 9, 75, 37, 71, 6, 120, 47, 118, 0, 0, 0, 15, 70, 25, 84, 131, 32, 83, 128, 83, 114,
-			34, 99, 13, 50, 0, 0, 0, 0, 10, 67, 28, 80, 148, 81, 126, 71, 47, 0, 0, 0, 0, 0, 11, 67, 92, 147, 12, 2, 84, 111,
-			55, 0, 46, 0, 9, 68, 48, 85, 133, 48, 21, 0, 47, 0, 0, 0, 0, 14, 67, 4, 195, 7, 6, 35, 55, 81, 13, 65, 122, 50,
-			0, 0, 0, 9, 67, 80, 160, 64, 47, 57, 116, 0, 0, 13, 68, 76, 84, 137, 20, 89, 126, 34, 111, 38, 13, 0, 7, 196, 61, 33,
-			201, 20, 15, 11, 70, 8, 20, 197, 8, 19, 12, 21, 0, 47, 0, 9, 198, 16, 17, 197, 28, 83, 128, 66, 0, 12, 67, 25, 81, 82,
-			83, 128, 34, 0, 76, 8, 46, 0, 0, 0, 0, 0, 9, 3, 226, 130, 172, 124, 34, 127, 0, 0, 13, 68, 36, 225, 5, 52, 111, 50,
-			72, 6, 126, 65, 0, 0, 0, 0, 9, 67, 80, 17, 192, 47, 116, 81, 0, 10, 67, 20, 147, 133, 122, 50, 13, 0, 72, 0, 19, 8,
-			104, 195, 164, 116, 116, 101, 115, 116, 107, 4, 109, 47, 109, 89, 47, 0, 46, 0, 0, 0, 0, 7, 195, 36, 50, 0, 72, 46, 0, 11,
-			200, 52, 20, 135, 36, 224, 76, 36, 80, 15, 15, 4, 95, 111, 103, 111, 6, 127, 81, 113, 50, 4, 109, 49, 0, 0, 0, 15, 70, 20,
-			225, 12, 36, 50, 0, 109, 50, 47, 55, 111, 99, 0, 8, 197, 92, 244, 129, 85, 48, 66, 0, 0, 0, 0, 0, 11, 136, 119, 195, 164,
-			104, 114, 101, 110, 100, 72, 11, 136, 119, 195, 164, 104, 114, 101, 110, 100, 8, 0, 10, 67, 37, 53, 0, 111, 89, 47, 0, 72, 0, 0,
-			8, 67, 73, 83, 128, 21, 0, 47, 7, 195, 36, 131, 64, 76, 46, 0, 0, 8, 67, 76, 243, 135, 21, 0, 47, 0, 0, 6, 195, 57,
-			84, 128, 28, 0, 0, 0, 0, 11, 67, 105, 84, 128, 132, 120, 34, 0, 76, 8, 10, 67, 16, 20, 192, 2, 72, 35, 89, 0, 0, 8,
-			67, 92, 244, 132, 21, 0, 47, 11, 67, 92, 148, 132, 84, 4, 111, 34, 72, 0, 0, 0, 14, 4, 95, 98, 114, 118, 71, 14, 16, 6,
-			125, 84, 13, 0, 0, 6, 195, 21, 69, 193, 72, 10, 67, 36, 132, 133, 118, 34, 13, 0, 72, 0, 0, 19, 71, 36, 195, 9, 8, 84,
-			129, 48, 111, 55, 118, 71, 13, 34, 6, 116, 55, 0, 9, 198, 16, 83, 147, 20, 192, 128, 66, 9, 198, 16, 83, 83, 20, 192, 128, 66,
-			17, 70, 16, 20, 211, 20, 192, 128, 72, 35, 89, 88, 6, 109, 55, 71, 0, 17, 70, 16, 84, 211, 20, 192, 128, 72, 109, 89, 88, 6,
-			109, 55, 71, 0, 9, 198, 16, 84, 147, 20, 192, 128, 66, 0, 18, 4, 95, 97, 99, 50, 72, 6, 113, 48, 13, 55, 35, 49, 4, 120,
-			47, 0, 0, 13, 68, 36, 225, 5, 56, 111, 50, 72, 6, 126, 50, 0, 14, 68, 28, 81, 197, 56, 81, 126, 81, 13, 50, 0, 76, 8,
-			0, 0, 0, 10, 69, 5, 4, 5, 4, 192, 21, 0, 47, 11, 67, 16, 83, 142, 72, 109, 50, 0, 76, 8, 0, 0, 0, 0, 0, 0,
-			0, 16, 70, 17, 32, 71, 36, 84, 128, 72, 34, 35, 90, 6, 118, 34, 0, 0, 0, 0, 8, 197, 105, 84, 171, 12, 176, 66, 10, 198,
-			60, 33, 204, 20, 144, 200, 66, 8, 0, 0, 0, 13, 68, 92, 20, 133, 56, 2, 84, 116, 34, 13, 50, 0, 0, 13, 68, 92, 20, 149,
-			52, 84, 116, 34, 6, 114, 65, 0, 8, 197, 8, 19, 11, 4, 224, 65, 0, 9, 68, 20, 208, 73, 48, 21, 0, 47, 0, 0, 12, 68,
-			20, 147, 133, 56, 122, 50, 13, 50, 0, 72, 13, 3, 95, 51, 88, 6, 72, 34, 122, 89, 111, 99, 0, 0, 13, 69, 28, 83, 69, 36,
-			224, 81, 13, 65, 122, 50, 0, 13, 3, 95, 48, 67, 6, 107, 114, 50, 72, 108, 47, 0, 0, 17, 70, 105, 81, 197, 28, 83, 128, 132,
-			120, 81, 6, 126, 81, 13, 50, 0, 17, 70, 105, 81, 197, 28, 83, 128, 132, 120, 81, 6, 126, 81, 13, 50, 0, 0, 12, 68, 20, 147,
-			137, 28, 122, 50, 111, 99, 0, 46, 0, 0, 0, 0, 0, 18, 70, 20, 228, 197, 52, 35, 5, 113, 50, 89, 6, 113, 65, 71, 13, 55,
-			0, 0, 0, 0, 14, 69, 52, 241, 5, 48, 192, 65, 127, 72, 6, 109, 55, 0, 0, 0, 10, 69, 64, 145, 7, 36, 224, 21, 0, 47,
-			0, 0, 7, 66, 32, 144, 107, 122, 0, 5, 194, 40, 80, 72, 6, 195, 16, 19, 142, 72, 13, 3, 95, 49, 57, 6, 50, 124, 50, 132,
-			126, 50, 0, 0, 13, 3, 95, 49, 56, 6, 10, 35, 101, 132, 126, 50, 0, 0, 0, 8, 67, 40, 85, 0, 21, 0, 47, 0, 8, 67,
-			32, 148, 0, 21, 0, 47, 0, 0, 16, 70, 49, 81, 84, 37, 48, 200, 55, 120, 6, 126, 47, 111, 91, 0, 0, 16, 70, 92, 82, 84,
-			32, 84, 128, 84, 122, 47, 107, 6, 109, 34, 0, 15, 70, 64, 240, 200, 36, 84, 128, 48, 113, 91, 6, 118, 34, 0, 0, 12, 67, 26,
-			180, 128, 83, 128, 34, 0, 76, 8, 46, 11, 3, 95, 49, 49, 6, 10, 109, 55, 83, 0, 0, 10, 3, 95, 49, 48, 6, 132, 126, 50,
-			0, 0, 13, 3, 95, 49, 51, 6, 72, 34, 122, 132, 126, 50, 0, 0, 12, 3, 95, 49, 50, 6, 132, 84, 131, 55, 83, 0, 0, 14,
-			3, 95, 49, 53, 6, 83, 129, 50, 83, 132, 126, 50, 0, 15, 4, 95, 99, 121, 114, 49, 128, 51, 6, 111, 55, 111, 91, 0, 0, 7,
-			195, 36, 131, 128, 76, 46, 13, 3, 95, 49, 52, 6, 83, 111, 34, 132, 126, 50, 0, 0, 13, 3, 95, 49, 55, 6, 88, 118, 48, 132,
-			126, 50, 0, 0, 16, 67, 33, 36, 199, 107, 109, 34, 6, 121, 89, 81, 126, 71, 108, 0, 13, 3, 95, 49, 54, 6, 88, 109, 99, 132,
-			126, 50, 0, 0, 8, 197, 44, 243, 147, 84, 192, 65, 15, 69, 28, 83, 137, 4, 192, 81, 126, 50, 111, 6, 35, 55, 0, 0, 13, 3,
-			95, 55, 88, 6, 88, 118, 48, 132, 111, 99, 0, 0, 0, 0, 9, 198, 16, 80, 129, 81, 65, 64, 66, 11, 70, 92, 80, 147, 37, 65,
-			64, 21, 0, 47, 0, 9, 67, 36, 132, 128, 118, 34, 0, 72, 0, 13, 3, 95, 49, 111, 10, 6, 126, 34, 89, 47, 13, 0, 0, 0,
-			10, 3, 95, 49, 97, 10, 6, 122, 50, 0, 0, 0, 0, 0, 0, 12, 4, 95, 97, 99, 117, 35, 49, 6, 120, 47, 0, 0, 9, 198,
-			81, 32, 71, 160, 66, 69, 15, 0, 16, 69, 21, 133, 18, 20, 208, 109, 49, 89, 47, 34, 6, 126, 65, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 3, 95, 51, 111, 72, 34, 6, 111, 47, 13, 0, 0, 0, 10, 199, 20, 33, 78, 24, 19, 12, 76, 8, 0, 10, 69, 48, 20,
-			20, 61, 0, 21, 0, 47, 14, 3, 95, 50, 88, 6, 132, 84, 35, 50, 132, 111, 99, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 16,
-			19, 129, 12, 128, 66, 0, 0, 12, 68, 44, 19, 143, 20, 49, 35, 50, 6, 120, 0, 0, 0, 11, 70, 88, 83, 148, 85, 33, 64, 21,
-			0, 47, 0, 0, 13, 3, 95, 63, 63, 88, 129, 65, 71, 6, 127, 55, 0, 0, 0, 0, 13, 3, 95, 52, 88, 6, 83, 111, 34, 132,
-			111, 99, 0, 0, 0, 0, 0, 9, 198, 44, 243, 104, 16, 145, 64, 15, 0, 0, 0, 8, 66, 52, 48, 65, 14, 49, 0, 8, 66, 32,
-			208, 107, 13, 65, 0, 23, 4, 95, 115, 117, 98, 6, 114, 50, 47, 13, 51, 108, 11, 4, 111, 50, 72, 109, 49, 89, 15, 0, 0, 14,
-			3, 95, 53, 88, 6, 83, 129, 50, 83, 132, 111, 99, 0, 0, 0, 15, 4, 95, 114, 110, 103, 49, 34, 6, 127, 58, 90, 109, 49, 0,
-			0, 8, 197, 76, 245, 197, 37, 64, 66, 0, 8, 67, 76, 86, 25, 21, 0, 47, 0, 12, 3, 95, 55, 111, 88, 6, 118, 71, 47, 13,
-			0, 0, 14, 68, 92, 20, 147, 80, 2, 84, 116, 34, 89, 47, 0, 46, 0, 12, 69, 76, 50, 21, 49, 64, 91, 120, 55, 47, 0, 0,
-			13, 3, 95, 54, 88, 6, 88, 109, 99, 132, 111, 99, 0, 0, 0, 0, 17, 71, 92, 20, 211, 21, 37, 78, 28, 84, 35, 89, 13, 34,
-			114, 68, 0, 0, 11, 70, 32, 243, 69, 64, 17, 197, 21, 0, 47, 11, 67, 88, 243, 64, 83, 113, 65, 0, 76, 28, 0, 0, 0, 0,
-			0, 0, 0, 12, 5, 107, 119, 97, 195, 159, 49, 84, 35, 89, 0, 0, 0, 14, 203, 65, 35, 194, 48, 83, 65, 80, 148, 201, 21, 32,
-			67, 0, 0, 9, 66, 57, 32, 50, 114, 65, 108, 0, 12, 6, 95, 111, 114, 100, 50, 48, 89, 47, 13, 0, 0, 13, 3, 95, 56, 88,
-			6, 10, 35, 101, 132, 111, 99, 0, 0, 0, 0, 0, 0, 0, 9, 67, 44, 145, 0, 49, 111, 72, 0, 0, 9, 66, 36, 208, 111, 65,
-			0, 76, 28, 0, 12, 68, 8, 80, 133, 56, 71, 126, 71, 13, 50, 0, 13, 3, 95, 57, 88, 6, 50, 124, 50, 132, 111, 99, 0, 0,
-			0, 0, 0, 0, 8, 197, 8, 150, 129, 73, 32, 66, 0, 12, 68, 17, 81, 84, 80, 72, 120, 6, 109, 47, 0, 0, 15, 69, 44, 19,
-			142, 77, 64, 4, 49, 35, 50, 89, 47, 0, 46, 15, 3, 95, 63, 65, 71, 6, 120, 101, 89, 47, 116, 71, 13, 0, 0, 11, 68, 36,
-			225, 5, 72, 111, 50, 72, 108, 0, 0, 10, 69, 64, 244, 212, 21, 32, 21, 0, 47, 0, 0, 19, 71, 21, 38, 135, 20, 34, 82, 28,
-			126, 34, 132, 81, 13, 71, 111, 34, 81, 0, 0, 0, 22, 4, 95, 115, 117, 112, 6, 127, 71, 13, 51, 108, 11, 4, 111, 50, 72, 109,
-			49, 89, 15, 0, 0, 17, 4, 95, 115, 116, 107, 91, 34, 6, 126, 81, 89, 47, 34, 111, 99, 0, 0, 9, 198, 16, 86, 133, 52, 33,
-			82, 66, 0, 12, 67, 105, 112, 82, 132, 84, 4, 35, 12, 34, 0, 11, 66, 60, 32, 4, 113, 71, 0, 8, 9, 46, 9, 66, 36, 224,
-			111, 50, 0, 76, 28, 0, 8, 67, 40, 240, 128, 21, 0, 47, 0, 0, 0, 11, 70, 32, 243, 204, 36, 112, 78, 21, 0, 47, 0, 10,
-			69, 76, 245, 82, 12, 80, 21, 0, 47, 0, 0, 0, 13, 72, 77, 113, 65, 81, 50, 9, 73, 64, 21, 0, 47, 9, 68, 77, 82, 84,
-			20, 21, 0, 47, 0, 10, 69, 85, 1, 1, 80, 80, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 68, 56, 144, 200,
-			80, 50, 6, 111, 99, 47, 15, 50, 6, 120, 34, 0, 8, 81, 110, 117, 114, 32, 24, 68, 56, 144, 200, 80, 50, 4, 111, 99, 47, 15,
-			65, 6, 126, 34, 0, 49, 81, 109, 101, 104, 114, 32, 23, 68, 56, 144, 200, 80, 50, 6, 111, 99, 47, 15, 4, 65, 126, 34, 0, 81,
-			109, 101, 104, 114, 32, 0, 0, 0, 13, 68, 36, 225, 5, 76, 111, 50, 72, 6, 109, 89, 0, 10, 67, 21, 36, 212, 126, 34, 89, 47,
-			0, 0, 0, 19, 4, 95, 99, 105, 114, 132, 6, 111, 34, 49, 114, 65, 83, 55, 109, 49, 89, 0, 0, 7, 196, 81, 84, 137, 56, 66,
-			9, 67, 20, 147, 128, 122, 50, 0, 76, 11, 67, 65, 35, 192, 4, 48, 34, 127, 0, 8, 0, 13, 68, 4, 229, 9, 44, 35, 50, 47,
-			6, 118, 49, 0, 14, 4, 95, 48, 77, 52, 71, 111, 55, 111, 6, 127, 50, 0, 0, 0, 11, 70, 16, 80, 149, 28, 113, 82, 21, 0,
-			47, 12, 3, 95, 56, 111, 10, 6, 35, 101, 47, 13, 0, 17, 4, 95, 48, 77, 50, 15, 65, 111, 55, 111, 6, 127, 50, 13, 50, 0,
-			0, 14, 69, 32, 244, 147, 4, 208, 107, 113, 108, 88, 116, 65, 0, 11, 67, 52, 19, 128, 65, 35, 50, 0, 72, 46, 13, 68, 92, 244,
-			137, 56, 84, 127, 34, 6, 111, 50, 0, 11, 67, 88, 243, 128, 83, 113, 50, 0, 76, 28, 18, 4, 95, 48, 77, 51, 15, 65, 111, 55,
-			111, 6, 35, 34, 72, 13, 50, 0, 0, 0, 14, 4, 95, 48, 77, 49, 6, 47, 121, 88, 13, 50, 47, 0, 0, 9, 66, 60, 64, 127,
-			72, 108, 0, 46, 0, 7, 195, 52, 148, 128, 76, 46, 0, 0, 0, 0, 11, 67, 88, 244, 128, 4, 83, 113, 34, 0, 9, 0, 0, 21,
-			71, 21, 132, 5, 16, 145, 78, 80, 109, 49, 89, 48, 126, 72, 111, 6, 109, 50, 47, 0, 0, 0, 16, 4, 95, 108, 105, 103, 55, 6,
-			118, 81, 35, 47, 4, 120, 108, 0, 0, 0, 0, 0, 19, 72, 52, 146, 210, 60, 98, 67, 32, 80, 65, 118, 49, 34, 127, 83, 118, 91,
-			0, 0, 0, 9, 198, 52, 243, 143, 80, 243, 128, 67, 0, 13, 66, 44, 208, 49, 118, 55, 127, 65, 126, 47, 108, 0, 0, 0, 0, 0,
-			0, 11, 67, 52, 149, 0, 65, 111, 47, 0, 76, 8, 0, 0, 0, 7, 66, 53, 144, 21, 0, 47, 0, 11, 70, 40, 246, 83, 80, 144,
-			203, 21, 0, 47, 0, 0, 0, 16, 70, 20, 147, 129, 56, 65, 82, 122, 50, 6, 35, 50, 72, 108, 0, 0, 8, 67, 61, 85, 0, 21,
-			0, 47, 0, 0, 0, 12, 68, 36, 132, 133, 52, 118, 34, 13, 65, 0, 72, 0, 0, 0, 0, 11, 70, 4, 48, 207, 84, 229, 0, 21,
-			0, 47, 0, 0, 0, 0, 7, 196, 64, 147, 137, 20, 15, 12, 67, 28, 19, 154, 81, 4, 35, 50, 132, 0, 46, 8, 196, 76, 245, 201,
-			20, 66, 8, 0, 0, 0, 17, 70, 16, 160, 75, 5, 37, 1, 75, 35, 49, 6, 35, 34, 47, 116, 0, 9, 68, 12, 240, 67, 32, 21,
-			0, 47, 14, 73, 5, 52, 207, 12, 144, 84, 36, 243, 128, 21, 0, 47, 0, 0, 0, 13, 4, 95, 99, 101, 100, 89, 126, 72, 6, 118,
-			57, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36, 211, 79, 8, 147, 9, 20, 15, 0, 11, 200, 64, 85, 5, 73, 50, 76, 36, 80, 15,
-			0, 0, 0, 0, 0, 17, 71, 92, 82, 84, 21, 37, 78, 28, 84, 122, 47, 13, 34, 114, 68, 0, 12, 4, 95, 99, 97, 112, 81, 34,
-			6, 127, 89, 0, 0, 10, 68, 56, 148, 195, 32, 50, 118, 91, 0, 0, 0, 9, 198, 64, 20, 129, 16, 145, 83, 67, 0, 0, 17, 70,
-			80, 83, 5, 28, 83, 128, 47, 126, 55, 126, 81, 6, 126, 50, 0, 0, 12, 68, 20, 147, 133, 52, 122, 50, 13, 65, 0, 72, 0, 0,
-			0, 0, 7, 196, 16, 82, 78, 20, 76, 0, 0, 11, 70, 80, 84, 141, 36, 224, 76, 21, 0, 47, 0, 9, 198, 16, 145, 83, 20, 192,
-			128, 66, 0, 7, 196, 52, 82, 78, 20, 76, 0, 4, 193, 188, 43, 0, 11, 67, 76, 144, 200, 88, 111, 99, 0, 72, 46, 0, 20, 71,
-			21, 2, 83, 44, 244, 1, 48, 126, 48, 111, 89, 49, 127, 48, 6, 116, 55, 0, 0, 21, 3, 95, 194, 171, 6, 35, 50, 83, 128, 51,
-			114, 68, 89, 132, 4, 122, 99, 13, 50, 0, 0, 0, 0, 0, 0, 0, 8, 67, 76, 194, 80, 21, 0, 47, 11, 67, 76, 82, 84, 88,
-			122, 47, 0, 72, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 203, 88, 145, 76, 8, 84, 208, 72, 240, 200, 20, 224,
-			67, 9, 68, 52, 16, 200, 60, 21, 0, 47, 0, 0, 12, 71, 36, 229, 5, 72, 96, 67, 20, 21, 0, 47, 0, 16, 67, 4, 32, 128,
-			6, 35, 71, 71, 4, 111, 55, 72, 114, 68, 0, 0, 17, 70, 36, 229, 5, 72, 225, 84, 111, 50, 47, 13, 34, 50, 109, 47, 0, 0,
-			0, 8, 67, 64, 18, 82, 21, 0, 47, 13, 68, 84, 228, 210, 20, 114, 50, 88, 34, 13, 0, 72, 0, 0, 15, 70, 36, 226, 193, 37,
-			48, 200, 111, 68, 49, 116, 111, 91, 0, 8, 197, 92, 244, 129, 84, 96, 66, 0, 0, 0, 0, 11, 70, 72, 84, 197, 5, 32, 200, 21,
-			0, 47, 0, 0, 0, 0, 0, 0, 9, 66, 60, 176, 127, 49, 6, 126, 0, 0, 9, 68, 48, 20, 197, 72, 21, 0, 47, 11, 68, 36,
-			132, 133, 72, 118, 34, 108, 0, 72, 0, 9, 68, 77, 21, 65, 92, 21, 0, 47, 0, 0, 16, 70, 20, 147, 137, 28, 84, 192, 122, 50,
-			111, 81, 13, 89, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 25, 3, 95, 194, 187, 6, 35, 50, 83, 128, 51, 114, 68, 89, 132, 4,
-			122, 99, 13, 50, 15, 132, 6, 120, 0, 0, 0, 14, 69, 88, 84, 133, 36, 224, 83, 109, 34, 6, 122, 50, 0, 13, 69, 28, 84, 211,
-			20, 224, 81, 109, 89, 13, 50, 0, 0, 0, 12, 68, 104, 195, 212, 100, 89, 55, 113, 47, 118, 0, 10, 199, 44, 20, 148, 60, 224, 71,
-			20, 15, 0, 8, 67, 48, 243, 203, 21, 0, 47, 0, 0, 0, 14, 4, 95, 103, 114, 118, 81, 34, 6, 116, 84, 111, 89, 0, 0, 0,
-			11, 70, 52, 84, 211, 4, 113, 64, 21, 0, 47, 0, 0, 10, 66, 77, 64, 6, 109, 89, 47, 126, 0, 0, 8, 67, 76, 131, 215, 21,
-			0, 47, 0, 7, 195, 52, 144, 200, 72, 46, 0, 12, 201, 21, 133, 18, 5, 96, 71, 4, 229, 0, 65, 0, 12, 68, 32, 19, 132, 100,
-			107, 109, 50, 72, 118, 0, 0, 0, 8, 197, 4, 195, 5, 36, 224, 66, 0, 6, 195, 56, 17, 197, 15, 10, 67, 21, 33, 5, 126, 34,
-			72, 13, 0, 9, 198, 5, 67, 205, 54, 179, 12, 65, 0, 0, 8, 67, 12, 144, 79, 76, 121, 0, 0, 8, 67, 76, 86, 0, 21, 0,
-			47, 0, 9, 2, 194, 163, 48, 121, 50, 72, 0, 0, 9, 198, 56, 80, 149, 48, 244, 192, 67, 10, 69, 77, 2, 82, 37, 64, 21, 0,
-			47, 0, 9, 68, 24, 246, 69, 72, 21, 0, 47, 0, 17, 70, 21, 36, 212, 52, 19, 0, 126, 34, 89, 47, 65, 35, 12, 55, 0, 0,
-			9, 68, 40, 242, 78, 80, 21, 0, 47, 0, 11, 200, 88, 145, 76, 48, 82, 67, 33, 64, 66, 0, 0, 0, 0, 0, 0, 8, 197, 52,
-			243, 147, 84, 224, 66, 0, 0, 0, 0, 0, 0, 9, 2, 194, 176, 81, 34, 116, 47, 0, 0, 17, 2, 194, 177, 48, 55, 6, 114, 89,
-			15, 65, 6, 118, 50, 114, 89, 0, 0, 13, 68, 28, 83, 210, 28, 81, 126, 113, 34, 49, 0, 46, 9, 198, 44, 19, 69, 48, 145, 64,
-			15, 17, 70, 28, 84, 129, 56, 145, 64, 81, 126, 34, 6, 116, 50, 111, 13, 0, 0, 0, 9, 198, 5, 52, 8, 4, 197, 0, 66, 0,
-			0, 24, 67, 56, 240, 200, 50, 6, 113, 101, 15, 50, 6, 111, 99, 47, 0, 28, 81, 110, 105, 99, 104, 116, 32, 6, 195, 56, 240, 200,
-			8, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 76, 84, 150, 21, 32, 21, 0, 47, 8, 67, 64, 195, 212, 21, 0, 47, 0, 0, 8,
-			197, 76, 241, 143, 73, 64, 66, 0, 0, 14, 69, 20, 147, 136, 21, 32, 122, 50, 107, 6, 126, 34, 0, 0, 0, 0, 0, 6, 195, 92,
-			82, 76, 8, 0, 0, 17, 70, 20, 225, 193, 28, 145, 82, 35, 68, 81, 35, 90, 6, 118, 34, 0, 0, 10, 67, 16, 83, 64, 2, 72,
-			126, 65, 0, 0, 0, 9, 198, 77, 2, 79, 56, 17, 197, 15, 0, 0, 0, 0, 20, 71, 77, 64, 76, 4, 115, 73, 80, 89, 47, 35,
-			55, 35, 81, 65, 6, 111, 47, 0, 0, 0, 13, 69, 28, 83, 210, 28, 80, 75, 113, 12, 34, 75, 0, 8, 197, 29, 32, 90, 36, 80,
-			15, 0, 0, 0, 0, 13, 69, 12, 194, 81, 84, 80, 49, 55, 111, 49, 13, 0, 10, 69, 60, 227, 9, 56, 80, 21, 0, 47, 0, 0,
-			0, 0, 15, 68, 32, 16, 133, 56, 107, 4, 116, 71, 13, 50, 0, 46, 10, 8, 196, 56, 80, 133, 56, 76, 28, 0, 0, 10, 67, 36,
-			226, 193, 111, 68, 49, 116, 0, 0, 0, 9, 198, 64, 84, 144, 48, 86, 0, 66, 11, 68, 20, 147, 133, 72, 122, 50, 108, 0, 72, 0,
-			11, 68, 64, 240, 200, 76, 48, 113, 101, 89, 0, 9, 67, 8, 80, 84, 21, 0, 46, 47, 0, 0, 0, 14, 68, 8, 85, 143, 72, 71,
-			13, 83, 127, 34, 0, 66, 8, 0, 10, 69, 13, 84, 147, 61, 32, 21, 0, 47, 0, 10, 69, 92, 147, 132, 61, 112, 21, 0, 47, 0,
-			0, 12, 67, 172, 33, 82, 4, 129, 71, 108, 0, 8, 9, 0, 8, 67, 80, 80, 200, 21, 0, 47, 0, 0, 11, 70, 72, 80, 197, 37,
-			97, 82, 21, 0, 47, 0, 14, 68, 16, 84, 133, 56, 72, 126, 34, 13, 50, 0, 76, 28, 0, 12, 68, 4, 50, 19, 60, 35, 101, 88,
-			6, 127, 0, 0, 0, 17, 70, 93, 84, 132, 21, 53, 0, 84, 4, 114, 34, 72, 109, 89, 47, 0, 0, 0, 0, 12, 68, 28, 84, 212,
-			20, 81, 126, 89, 47, 13, 0, 0, 0, 0, 0, 13, 68, 93, 84, 132, 20, 84, 4, 114, 34, 72, 13, 0, 13, 68, 92, 84, 132, 20,
-			84, 4, 109, 34, 72, 13, 0, 0, 8, 197, 16, 18, 12, 36, 80, 15, 10, 69, 41, 83, 139, 36, 80, 21, 0, 47, 10, 69, 12, 128,
-			78, 28, 80, 21, 0, 47, 0, 0, 0, 16, 70, 5, 32, 200, 4, 146, 192, 35, 34, 99, 6, 116, 111, 49, 0, 0, 0, 0, 8, 67,
-			40, 242, 197, 21, 0, 47, 8, 67, 12, 242, 197, 21, 0, 47, 0, 0, 11, 4, 100, 97, 195, 159, 72, 35, 89, 0, 76, 0, 12, 68,
-			20, 147, 133, 76, 122, 50, 13, 89, 0, 72, 0, 0, 0, 0, 0, 0, 8, 67, 12, 128, 84, 21, 0, 47, 11, 2, 95, 34, 132, 118,
-			47, 6, 116, 47, 0, 0, 20, 2, 95, 33, 6, 121, 89, 23, 34, 4, 120, 83, 13, 132, 4, 122, 99, 13, 50, 0, 0, 0, 15, 2,
-			95, 39, 4, 35, 48, 127, 89, 47, 34, 6, 113, 83, 0, 0, 0, 0, 11, 70, 12, 243, 80, 85, 65, 82, 21, 0, 47, 0, 10, 67,
-			8, 147, 128, 71, 111, 50, 0, 72, 10, 67, 16, 83, 128, 2, 72, 126, 50, 0, 0, 12, 71, 64, 83, 148, 32, 245, 83, 20, 21, 0,
-			47, 0, 15, 2, 95, 41, 49, 55, 6, 35, 65, 108, 15, 132, 6, 120, 0, 0, 11, 67, 4, 33, 82, 116, 71, 108, 0, 76, 8, 16,
-			2, 95, 40, 49, 55, 6, 35, 65, 108, 15, 23, 6, 121, 83, 0, 0, 11, 67, 64, 84, 128, 48, 109, 34, 0, 76, 28, 15, 2, 95,
-			47, 91, 34, 6, 126, 81, 91, 47, 34, 111, 99, 0, 0, 10, 2, 95, 46, 48, 114, 50, 49, 47, 0, 0, 17, 2, 95, 45, 71, 6,
-			111, 50, 72, 13, 89, 47, 34, 4, 111, 99, 0, 0, 9, 2, 95, 44, 49, 113, 65, 35, 0, 0, 10, 67, 16, 84, 128, 2, 72, 109,
-			34, 0, 9, 2, 95, 51, 6, 72, 34, 122, 0, 0, 9, 2, 95, 50, 6, 132, 84, 122, 0, 0, 10, 67, 52, 244, 147, 65, 113, 34,
-			89, 0, 10, 2, 95, 49, 10, 6, 122, 50, 89, 0, 0, 11, 200, 36, 226, 207, 57, 53, 1, 57, 64, 65, 9, 2, 95, 48, 6, 50,
-			114, 55, 0, 0, 11, 2, 95, 55, 6, 88, 118, 71, 13, 50, 0, 0, 10, 2, 95, 54, 6, 88, 109, 49, 89, 0, 0, 10, 2, 95,
-			53, 6, 83, 129, 50, 83, 0, 0, 17, 70, 84, 228, 197, 72, 83, 64, 114, 50, 89, 13, 34, 13, 65, 0, 72, 9, 2, 95, 52, 6,
-			83, 118, 34, 0, 0, 15, 67, 88, 115, 0, 83, 109, 34, 81, 55, 6, 122, 99, 13, 0, 16, 2, 95, 59, 91, 47, 34, 6, 111, 99,
-			48, 114, 68, 49, 47, 0, 0, 17, 2, 95, 58, 72, 6, 113, 48, 13, 55, 48, 4, 114, 68, 49, 47, 0, 0, 9, 2, 95, 57, 6,
-			50, 124, 50, 0, 0, 10, 2, 95, 56, 6, 10, 35, 101, 47, 0, 0, 12, 68, 84, 228, 197, 72, 114, 50, 88, 108, 0, 72, 11, 67,
-			8, 82, 77, 71, 122, 65, 0, 76, 28, 17, 2, 95, 63, 83, 34, 6, 117, 81, 13, 132, 4, 122, 99, 13, 50, 0, 0, 10, 2, 95,
-			62, 81, 34, 130, 89, 108, 0, 0, 7, 196, 52, 147, 149, 80, 66, 0, 8, 67, 76, 227, 194, 21, 0, 47, 10, 2, 95, 60, 49, 55,
-			122, 50, 108, 0, 0, 0, 0, 0, 8, 67, 40, 80, 78, 21, 0, 47, 6, 195, 16, 82, 78, 76, 0, 12, 201, 36, 228, 194, 21, 51,
-			206, 16, 84, 133, 67, 0, 7, 195, 16, 144, 200, 76, 46, 0, 0, 0, 0, 8, 67, 12, 243, 204, 21, 0, 47, 0, 12, 201, 44, 243,
-			147, 21, 37, 129, 80, 149, 128, 65, 0, 0, 0, 7, 196, 25, 84, 137, 20, 15, 0, 4, 193, 212, 43, 0, 0, 16, 70, 52, 83, 149,
-			21, 69, 5, 65, 109, 50, 120, 6, 109, 47, 0, 0, 7, 196, 53, 83, 73, 20, 15, 0, 0, 6, 195, 76, 82, 78, 72, 0, 11, 67,
-			60, 35, 197, 127, 71, 6, 127, 13, 0, 8, 67, 80, 147, 69, 21, 0, 47, 0, 10, 67, 16, 240, 200, 72, 113, 101, 0, 76, 16, 67,
-			36, 226, 204, 111, 50, 49, 55, 120, 88, 6, 118, 84, 13, 0, 0, 9, 68, 53, 148, 209, 48, 21, 0, 47, 10, 67, 16, 145, 83, 72,
-			118, 88, 0, 72, 9, 198, 76, 243, 132, 21, 35, 128, 8, 0, 30, 4, 95, 226, 128, 158, 55, 6, 111, 68, 49, 13, 89, 11, 4, 35,
-			50, 83, 128, 51, 114, 68, 89, 132, 4, 122, 99, 13, 50, 0, 0, 17, 67, 85, 49, 128, 2, 114, 50, 47, 88, 127, 83, 6, 113, 34,
-			47, 0, 31, 4, 95, 226, 128, 157, 14, 34, 6, 109, 99, 47, 13, 89, 11, 4, 35, 50, 83, 128, 51, 114, 68, 89, 132, 4, 122, 99,
-			13, 50, 0, 22, 2, 95, 91, 6, 109, 49, 111, 81, 13, 49, 55, 6, 35, 65, 108, 15, 23, 6, 121, 83, 0, 0, 9, 198, 24, 85,
-			69, 73, 35, 212, 67, 0, 0, 8, 66, 76, 240, 88, 127, 0, 76, 0, 16, 2, 95, 95, 4, 114, 50, 47, 108, 91, 47, 34, 6, 111,
-			99, 0, 0, 16, 2, 95, 94, 132, 111, 34, 49, 114, 65, 83, 55, 109, 49, 89, 0, 0, 21, 2, 95, 93, 6, 109, 49, 111, 81, 13,
-			49, 55, 6, 35, 65, 108, 15, 132, 6, 120, 0, 0, 0, 0, 12, 67, 92, 20, 148, 2, 84, 116, 34, 47, 0, 46, 22, 4, 95, 226,
-			128, 148, 81, 13, 72, 6, 35, 68, 49, 13, 50, 91, 47, 34, 4, 111, 99, 0, 0, 13, 3, 95, 97, 114, 35, 51, 6, 117, 71, 111,
-			91, 0, 0, 9, 2, 95, 96, 81, 34, 116, 84, 0, 0, 0, 18, 70, 16, 149, 137, 16, 83, 132, 72, 118, 84, 118, 72, 6, 109, 50,
-			47, 0, 0, 8, 196, 17, 84, 131, 32, 76, 8, 0, 16, 70, 12, 128, 78, 28, 145, 82, 91, 35, 68, 90, 6, 118, 34, 0, 0, 0,
-			0, 0, 0, 0, 7, 196, 76, 82, 78, 20, 76, 0, 0, 14, 3, 95, 104, 101, 107, 109, 71, 34, 6, 125, 111, 91, 0, 0, 11, 67,
-			8, 148, 192, 71, 111, 89, 0, 76, 8, 10, 67, 16, 84, 192, 2, 72, 109, 89, 0, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35,
-			76, 109, 49, 0, 0, 0, 0, 16, 69, 76, 241, 66, 20, 224, 88, 127, 10, 6, 126, 71, 13, 50, 0, 0, 0, 0, 9, 198, 72, 83,
-			9, 69, 82, 69, 15, 12, 68, 28, 80, 133, 56, 81, 126, 71, 13, 50, 0, 25, 2, 95, 123, 81, 13, 91, 84, 6, 122, 83, 47, 13,
-			49, 55, 6, 35, 65, 108, 15, 23, 6, 121, 83, 0, 0, 0, 0, 9, 66, 84, 208, 114, 65, 0, 76, 28, 0, 0, 0, 24, 2, 95,
-			125, 81, 13, 91, 84, 6, 122, 83, 47, 13, 49, 55, 6, 35, 65, 108, 15, 132, 6, 120, 0, 0, 8, 2, 95, 124, 48, 122, 48, 0,
-			0, 0, 0, 15, 70, 32, 21, 83, 36, 84, 128, 107, 121, 88, 6, 118, 34, 0, 13, 68, 44, 243, 142, 80, 4, 49, 113, 50, 47, 0,
-			46, 13, 5, 95, 48, 97, 110, 100, 15, 23, 114, 50, 47, 0, 0, 0, 0, 19, 71, 36, 195, 5, 28, 149, 9, 52, 111, 55, 126, 81,
-			118, 47, 6, 118, 65, 0, 8, 67, 24, 245, 76, 21, 0, 47, 11, 67, 56, 16, 200, 50, 116, 101, 0, 76, 28, 0, 0, 16, 70, 56,
-			16, 200, 16, 83, 64, 50, 35, 101, 72, 6, 126, 65, 0, 0, 12, 71, 12, 19, 67, 61, 33, 5, 72, 21, 0, 47, 0, 0, 11, 67,
-			84, 225, 0, 114, 50, 47, 0, 76, 8, 0, 12, 67, 33, 34, 18, 107, 35, 34, 107, 35, 34, 0, 0, 0, 12, 68, 4, 225, 18, 20,
-			35, 50, 72, 34, 13, 0, 0, 0, 7, 196, 84, 213, 197, 28, 65, 0, 18, 9, 104, 195, 164, 117, 115, 99, 104, 101, 110, 107, 124, 89,
-			99, 13, 50, 0, 8, 67, 76, 197, 77, 21, 0, 47, 0, 0, 0, 0, 0, 0, 18, 70, 88, 244, 136, 21, 34, 71, 83, 127, 34, 107,
-			6, 126, 34, 111, 134, 0, 0, 17, 4, 95, 35, 51, 50, 55, 6, 126, 34, 132, 6, 122, 99, 13, 50, 0, 0, 0, 15, 69, 36, 229,
-			5, 72, 224, 111, 50, 47, 6, 109, 34, 50, 0, 15, 69, 92, 243, 12, 20, 224, 2, 84, 113, 55, 13, 50, 0, 46, 15, 67, 21, 101,
-			12, 126, 84, 109, 50, 47, 120, 6, 109, 55, 0, 0, 0, 0, 12, 71, 72, 240, 83, 80, 33, 69, 24, 21, 0, 47, 0, 0, 9, 68,
-			12, 128, 82, 80, 21, 0, 47, 0, 0, 13, 68, 84, 210, 5, 72, 114, 65, 107, 6, 109, 34, 0, 0, 0, 9, 68, 76, 130, 82, 80,
-			21, 0, 47, 0, 9, 66, 105, 80, 132, 120, 0, 76, 28, 0, 9, 68, 48, 241, 201, 56, 21, 0, 47, 0, 0, 0, 0, 0, 8, 197,
-			8, 19, 11, 60, 224, 66, 0, 12, 201, 65, 34, 86, 5, 66, 83, 36, 84, 128, 68, 0, 0, 0, 12, 68, 16, 145, 83, 20, 72, 118,
-			88, 13, 0, 72, 0, 0, 9, 198, 80, 243, 142, 4, 113, 64, 15, 16, 70, 64, 20, 211, 4, 113, 64, 48, 35, 89, 6, 35, 90, 13,
-			0, 9, 198, 36, 226, 149, 72, 145, 64, 15, 9, 198, 5, 37, 5, 72, 145, 64, 15, 11, 70, 76, 50, 69, 56, 49, 64, 21, 0, 47,
-			0, 14, 67, 12, 132, 128, 49, 13, 34, 111, 89, 47, 114, 89, 0, 0, 0, 0, 13, 68, 46, 131, 142, 80, 4, 49, 131, 50, 47, 0,
-			46, 6, 195, 52, 82, 78, 76, 0, 8, 67, 9, 149, 5, 21, 0, 47, 0, 0, 20, 71, 56, 81, 204, 36, 113, 78, 80, 50, 126, 81,
-			55, 118, 75, 6, 109, 50, 47, 0, 0, 0, 18, 67, 85, 53, 192, 2, 114, 50, 47, 88, 127, 84, 6, 122, 47, 108, 0, 8, 0, 0,
-			6, 195, 4, 196, 207, 8, 0, 8, 197, 105, 147, 66, 4, 192, 65, 0, 0, 0, 0, 13, 69, 76, 16, 130, 5, 64, 88, 35, 71, 35,
-			47, 0, 0, 0, 0, 0, 0, 0, 8, 67, 52, 18, 76, 21, 0, 47, 0, 0, 11, 200, 56, 85, 83, 20, 83, 1, 56, 64, 66, 0,
-			0, 14, 69, 76, 243, 12, 20, 224, 4, 88, 113, 55, 13, 50, 0, 0, 0, 0, 8, 67, 8, 32, 192, 21, 0, 47, 0, 0, 0, 15,
-			70, 76, 84, 150, 36, 49, 64, 89, 109, 34, 84, 111, 89, 0, 9, 198, 52, 21, 5, 72, 145, 64, 15, 9, 198, 20, 225, 9, 88, 145,
-			64, 15, 9, 198, 8, 192, 77, 4, 113, 64, 15, 11, 70, 29, 35, 213, 64, 145, 64, 21, 0, 47, 0, 0, 0, 0, 11, 70, 60, 97,
-			140, 36, 225, 64, 21, 0, 47, 0, 7, 195, 92, 145, 64, 72, 8, 0, 0, 0, 0, 10, 67, 76, 145, 64, 88, 118, 0, 72, 46, 0,
-			0, 0, 8, 66, 92, 240, 84, 4, 127, 0, 0, 0, 10, 69, 80, 80, 83, 21, 32, 21, 0, 47, 0, 0, 14, 69, 49, 80, 197, 57,
-			64, 55, 120, 89, 109, 50, 47, 0, 15, 69, 93, 84, 132, 21, 64, 84, 4, 114, 34, 72, 13, 47, 0, 15, 69, 92, 84, 132, 21, 64,
-			84, 4, 109, 34, 72, 13, 47, 0, 0, 20, 73, 5, 84, 199, 21, 48, 200, 4, 213, 0, 121, 89, 81, 13, 91, 116, 65, 47, 0, 0,
-			4, 193, 228, 43, 0, 0, 15, 69, 64, 192, 78, 21, 64, 48, 55, 35, 50, 6, 126, 47, 0, 16, 69, 32, 16, 133, 77, 64, 107, 116,
-			71, 109, 89, 47, 0, 46, 72, 0, 10, 67, 80, 243, 64, 47, 113, 65, 0, 46, 10, 67, 44, 19, 64, 4, 49, 116, 65, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 68, 32, 21, 20, 20, 107, 4, 35, 47, 13, 0, 46, 0, 13, 69, 17, 34, 84, 80, 80, 72, 34,
-			111, 47, 13, 0, 8, 197, 4, 176, 90, 36, 80, 15, 10, 69, 72, 83, 65, 44, 80, 21, 0, 47, 14, 69, 76, 243, 12, 80, 80, 4,
-			88, 113, 55, 47, 13, 0, 0, 0, 11, 67, 4, 196, 192, 35, 55, 89, 0, 76, 28, 0, 0, 10, 69, 72, 240, 68, 36, 80, 21, 0,
-			47, 0, 0, 14, 3, 95, 122, 104, 99, 118, 50, 6, 126, 88, 111, 91, 0, 0, 0, 0, 0, 0, 0, 15, 69, 16, 144, 68, 20, 208,
-			72, 118, 35, 72, 6, 126, 65, 0, 0, 0, 0, 0, 0, 16, 70, 36, 195, 15, 100, 19, 0, 111, 55, 113, 35, 57, 116, 55, 0, 0,
-			15, 70, 20, 147, 133, 72, 193, 73, 122, 50, 13, 34, 55, 122, 0, 0, 9, 198, 77, 80, 138, 20, 181, 0, 65, 10, 67, 8, 84, 212,
-			71, 109, 89, 47, 0, 0, 0, 0, 8, 197, 57, 83, 69, 72, 240, 65, 0, 0, 6, 18, 66, 108, 0, 114, 0, 7, 6, 18, 67, 99,
-			0, 102, 0, 104, 0, 107, 0, 112, 0, 113, 0, 115, 0, 116, 0, 122, 0, 7, 6, 18, 68, 195, 164, 0, 97, 0, 7, 6, 18, 69,
-			195, 182, 0, 111, 0, 7, 6, 99, 104, 0, 4, 1, 117, 102, 2, 115, 3, 49, 0, 2, 111, 114, 32, 0, 2, 111, 114, 100, 0, 2,
-			195, 182, 114, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 111, 0, 97, 114, 97, 2, 107, 116, 3, 49, 2, 35, 34, 35, 0, 114, 111,
-			3, 49, 34, 127, 0, 115, 3, 49, 89, 0, 115, 116, 117, 1, 97, 119, 2, 109, 3, 49, 89, 47, 120, 0, 105, 112, 2, 32, 3, 76,
-			111, 48, 0, 4, 8, 2, 97, 3, 91, 0, 8, 2, 105, 99, 0, 8, 2, 105, 102, 0, 8, 2, 105, 108, 0, 97, 110, 99, 101, 3,
-			91, 137, 89, 13, 0, 4, 3, 99, 0, 1, 117, 101, 0, 1, 117, 164, 195, 0, 8, 2, 17, 65, 0, 4, 101, 110, 1, 17, 67, 2,
-			32, 14, 128, 128, 132, 3, 99, 13, 50, 0, 101, 110, 1, 101, 2, 32, 0, 101, 110, 1, 164, 195, 2, 32, 0, 101, 110, 1, 188, 195,
-			2, 32, 0, 115, 1, 164, 195, 110, 2, 116, 3, 99, 89, 0, 4, 1, 97, 3, 101, 0, 1, 101, 114, 98, 2, 101, 110, 0, 1, 111,
-			0, 1, 117, 0, 7, 6, 103, 101, 0, 8, 2, 111, 114, 103, 3, 81, 2, 126, 0, 111, 8, 3, 81, 4, 126, 127, 0, 4, 1, 115,
-			103, 110, 117, 2, 17, 67, 21, 3, 81, 13, 0, 2, 109, 97, 99, 104, 0, 2, 109, 97, 108, 0, 2, 114, 195, 164, 116, 0, 2, 116,
-			114, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 105, 109, 112, 0, 8, 2, 111, 114, 14, 128, 132, 130, 0, 98, 105, 114, 103, 101,
-			2, 32, 14, 128, 128, 135, 3, 81, 13, 71, 111, 34, 81, 13, 0, 4, 2, 114, 109, 97, 110, 3, 81, 109, 0, 2, 115, 116, 114, 105,
-			103, 0, 8, 2, 18, 66, 25, 0, 8, 2, 109, 25, 0, 8, 2, 110, 25, 0, 8, 2, 110, 101, 114, 0, 105, 2, 12, 3, 81, 122,
-			0, 4, 8, 2, 98, 101, 29, 3, 81, 126, 0, 104, 8, 2, 101, 29, 0, 104, 101, 110, 3, 81, 126, 13, 50, 0, 110, 101, 114, 97,
-			108, 2, 105, 115, 3, 81, 126, 50, 13, 34, 35, 55, 0, 110, 101, 114, 97, 108, 3, 81, 126, 50, 109, 34, 6, 35, 55, 0, 98, 101,
-			110, 3, 81, 126, 71, 13, 50, 0, 4, 103, 101, 110, 3, 81, 126, 81, 13, 50, 0, 103, 101, 110, 8, 2, 21, 14, 128, 132, 133, 0,
-			103, 110, 3, 81, 126, 81, 50, 0, 7, 6, 105, 101, 0, 4, 1, 10, 2, 114, 32, 3, 6, 118, 0, 1, 10, 2, 114, 108, 105, 99,
-			104, 0, 1, 21, 2, 32, 0, 1, 21, 2, 114, 101, 29, 0, 2, 114, 115, 21, 0, 4, 110, 1, 103, 21, 2, 32, 3, 6, 118, 13,
-			50, 0, 110, 1, 104, 112, 2, 32, 0, 110, 1, 109, 21, 2, 32, 0, 110, 1, 112, 21, 2, 32, 0, 110, 1, 114, 101, 115, 2, 32,
-			0, 110, 1, 114, 101, 116, 116, 2, 32, 0, 110, 1, 114, 111, 101, 2, 32, 0, 110, 1, 114, 111, 103, 2, 32, 0, 110, 1, 114, 116,
-			101, 2, 32, 0, 110, 1, 114, 116, 115, 117, 100, 2, 32, 0, 110, 1, 115, 21, 2, 32, 0, 110, 1, 116, 21, 2, 32, 0, 114, 117,
-			110, 103, 3, 6, 118, 34, 114, 68, 0, 114, 117, 110, 103, 115, 3, 6, 118, 34, 114, 68, 89, 0, 4, 1, 21, 2, 32, 28, 17, 3,
-			8, 111, 13, 0, 1, 100, 117, 116, 115, 2, 32, 0, 1, 108, 97, 109, 114, 111, 102, 0, 1, 108, 105, 109, 97, 102, 0, 1, 108, 111,
-			102, 2, 32, 0, 1, 114, 101, 102, 2, 110, 0, 1, 114, 101, 116, 107, 97, 98, 0, 110, 1, 10, 2, 32, 3, 8, 111, 13, 50, 0,
-			110, 115, 1, 10, 2, 32, 3, 8, 111, 38, 13, 50, 89, 0, 4, 110, 1, 98, 10, 2, 32, 3, 8, 118, 13, 50, 0, 110, 1, 114,
-			10, 2, 32, 0, 1, 117, 2, 114, 32, 3, 23, 6, 118, 0, 1, 10, 2, 108, 108, 32, 3, 111, 6, 109, 0, 110, 116, 2, 32, 3,
-			111, 6, 109, 50, 47, 0, 110, 122, 1, 10, 2, 32, 3, 111, 6, 109, 50, 132, 0, 4, 1, 99, 110, 97, 110, 105, 102, 2, 114, 3,
-			111, 6, 126, 0, 1, 103, 121, 104, 2, 110, 0, 1, 107, 110, 97, 98, 2, 114, 0, 1, 108, 97, 116, 105, 2, 110, 0, 1, 108, 101,
-			116, 111, 104, 2, 114, 0, 1, 109, 101, 114, 112, 2, 114, 0, 1, 114, 114, 97, 2, 114, 0, 1, 114, 114, 97, 98, 2, 114, 0, 1,
-			110, 105, 2, 32, 3, 111, 13, 0, 110, 1, 110, 10, 2, 32, 3, 111, 13, 50, 0, 110, 1, 114, 2, 21, 3, 111, 109, 50, 0, 4,
-			3, 118, 0, 1, 104, 99, 115, 2, 110, 0, 104, 0, 110, 116, 1, 100, 2, 32, 3, 118, 50, 47, 0, 110, 115, 116, 1, 100, 3, 118,
-			50, 89, 47, 0, 7, 6, 195, 159, 0, 3, 89, 0, 8, 2, 32, 3, 109, 89, 132, 109, 47, 0, 7, 6, 195, 164, 0, 2, 117, 109,
-			32, 24, 3, 6, 125, 0, 116, 1, 116, 2, 32, 3, 6, 125, 47, 0, 4, 2, 17, 67, 11, 3, 109, 0, 2, 17, 67, 17, 67, 0,
-			2, 115, 99, 104, 0, 117, 3, 124, 0, 4, 3, 125, 0, 104, 2, 12, 0, 98, 2, 116, 32, 3, 125, 48, 0, 103, 2, 116, 32, 3,
-			125, 49, 0, 7, 6, 195, 182, 0, 2, 32, 3, 6, 130, 0, 4, 3, 130, 0, 104, 2, 12, 0, 4, 2, 17, 67, 11, 3, 131, 0,
-			2, 17, 67, 17, 67, 0, 2, 115, 99, 104, 0, 7, 6, 195, 188, 0, 98, 101, 114, 8, 2, 98, 101, 21, 14, 128, 132, 132, 3, 11,
-			6, 128, 71, 108, 0, 98, 101, 114, 8, 2, 21, 14, 128, 132, 132, 3, 23, 4, 128, 71, 108, 0, 4, 3, 128, 0, 104, 2, 12, 0,
-			98, 2, 116, 32, 3, 128, 48, 0, 103, 2, 116, 32, 3, 128, 49, 0, 98, 101, 114, 8, 2, 103, 97, 110, 103, 115, 3, 128, 71, 108,
-			0, 4, 2, 17, 67, 11, 3, 129, 0, 2, 17, 67, 17, 67, 0, 2, 115, 99, 104, 0, 2, 120, 0, 7, 6, 97, 0, 114, 99, 104,
-			97, 8, 2, 105, 3, 2, 35, 34, 99, 117, 0, 116, 111, 8, 2, 109, 3, 2, 35, 47, 127, 0, 4, 98, 8, 2, 110, 111, 114, 3,
-			2, 35, 48, 0, 98, 8, 2, 115, 111, 0, 98, 8, 2, 115, 111, 114, 0, 98, 8, 2, 115, 116, 114, 0, 98, 8, 2, 115, 117, 114,
-			0, 107, 113, 117, 3, 2, 35, 49, 84, 0, 110, 8, 2, 97, 3, 2, 35, 50, 0, 110, 105, 8, 2, 115, 3, 2, 35, 50, 118, 0,
-			98, 98, 8, 2, 97, 3, 2, 35, 71, 0, 117, 115, 116, 114, 97, 2, 108, 3, 2, 121, 89, 47, 34, 117, 0, 112, 112, 101, 8, 2,
-			108, 108, 21, 3, 4, 35, 48, 109, 0, 110, 116, 104, 114, 111, 112, 111, 8, 3, 4, 35, 50, 47, 34, 127, 48, 2, 127, 0, 110, 116,
-			105, 8, 2, 21, 14, 128, 132, 132, 3, 4, 35, 50, 47, 111, 0, 110, 116, 105, 8, 2, 21, 14, 128, 132, 132, 3, 4, 35, 50, 47,
-			118, 0, 110, 105, 109, 8, 3, 4, 35, 50, 118, 65, 0, 110, 105, 109, 97, 108, 8, 3, 4, 35, 50, 118, 65, 116, 55, 0, 110, 103,
-			108, 111, 8, 2, 21, 3, 4, 35, 68, 81, 55, 127, 0, 4, 108, 1, 110, 97, 107, 10, 2, 32, 3, 4, 116, 55, 0, 108, 1, 110,
-			103, 105, 115, 10, 2, 32, 0, 1, 114, 103, 2, 109, 109, 32, 3, 6, 35, 0, 98, 8, 2, 101, 114, 21, 14, 128, 132, 130, 3, 6,
-			35, 48, 0, 98, 122, 117, 8, 2, 21, 14, 128, 132, 132, 3, 6, 35, 48, 132, 120, 0, 4, 99, 104, 115, 8, 2, 21, 14, 128, 132,
-			132, 3, 6, 35, 49, 89, 0, 99, 104, 115, 8, 2, 101, 108, 0, 4, 110, 1, 110, 105, 101, 2, 100, 101, 114, 3, 6, 35, 50, 0,
-			110, 8, 2, 21, 14, 128, 132, 130, 0, 110, 8, 2, 110, 18, 68, 104, 14, 128, 132, 130, 0, 110, 8, 2, 110, 97, 100, 14, 128, 132,
-			130, 0, 110, 116, 1, 21, 2, 32, 3, 6, 35, 50, 47, 0, 108, 108, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 6, 35, 55, 13,
-			34, 0, 4, 1, 21, 2, 98, 101, 108, 32, 3, 6, 116, 0, 1, 21, 2, 98, 108, 32, 0, 2, 17, 67, 111, 32, 0, 2, 114, 99,
-			104, 32, 0, 8, 2, 110, 97, 116, 105, 111, 14, 128, 132, 129, 0, 4, 114, 1, 108, 21, 2, 32, 3, 6, 116, 34, 0, 114, 1, 116,
-			21, 2, 32, 0, 114, 105, 101, 114, 2, 32, 24, 3, 6, 116, 34, 118, 108, 0, 116, 1, 21, 2, 32, 3, 6, 116, 47, 0, 116, 105,
-			115, 99, 104, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 116, 47, 111, 91, 0, 110, 1, 21, 2, 32, 3, 6, 116, 50, 0, 110, 105,
-			101, 114, 2, 32, 24, 3, 6, 116, 50, 118, 108, 0, 4, 108, 1, 17, 65, 21, 2, 32, 3, 6, 116, 55, 0, 108, 1, 98, 2, 32,
-			0, 108, 1, 103, 2, 32, 0, 108, 1, 107, 2, 32, 0, 108, 1, 110, 2, 32, 0, 108, 1, 114, 2, 32, 0, 108, 1, 116, 2, 32,
-			0, 109, 1, 114, 101, 107, 2, 105, 107, 3, 6, 116, 65, 0, 4, 103, 101, 2, 32, 28, 17, 3, 6, 116, 90, 13, 0, 103, 101, 2,
-			110, 32, 28, 33, 0, 110, 99, 101, 1, 115, 2, 32, 3, 6, 137, 89, 0, 110, 99, 101, 1, 114, 102, 2, 32, 3, 6, 137, 89, 13,
-			0, 110, 99, 101, 110, 1, 115, 2, 32, 3, 6, 137, 89, 13, 50, 0, 1, 17, 67, 17, 67, 10, 2, 32, 3, 8, 116, 0, 4, 98,
-			8, 2, 17, 67, 21, 14, 128, 132, 130, 3, 11, 6, 35, 48, 0, 98, 8, 2, 17, 67, 21, 14, 128, 132, 130, 0, 98, 8, 2, 195,
-			164, 14, 128, 132, 130, 0, 117, 102, 8, 2, 21, 14, 128, 132, 131, 3, 11, 6, 121, 83, 0, 117, 115, 8, 2, 21, 14, 128, 132, 131,
-			3, 11, 6, 121, 89, 0, 105, 114, 8, 3, 21, 0, 4, 2, 17, 67, 11, 3, 35, 0, 2, 17, 67, 17, 67, 0, 2, 105, 115, 105,
-			101, 114, 0, 2, 115, 99, 104, 0, 2, 116, 105, 111, 110, 0, 2, 120, 0, 100, 8, 2, 106, 117, 3, 35, 47, 0, 4, 98, 8, 2,
-			105, 3, 35, 48, 0, 98, 8, 2, 106, 0, 98, 8, 2, 115, 101, 0, 98, 8, 2, 115, 122, 0, 98, 8, 2, 111, 114, 3, 35, 48,
-			23, 0, 98, 100, 8, 2, 12, 3, 35, 48, 72, 0, 4, 110, 8, 2, 100, 101, 114, 3, 35, 50, 0, 110, 8, 2, 116, 101, 110, 0,
-			110, 8, 2, 116, 104, 0, 110, 8, 2, 116, 119, 0, 110, 110, 8, 0, 110, 97, 116, 104, 8, 3, 35, 50, 35, 47, 0, 110, 104, 101,
-			105, 109, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 35, 50, 107, 6, 122, 65, 0, 110, 103, 108, 105, 8, 2, 17, 67, 3, 35, 68,
-			81, 55, 118, 0, 98, 98, 8, 2, 114, 101, 118, 3, 35, 71, 0, 98, 101, 114, 114, 8, 3, 35, 71, 23, 109, 34, 0, 99, 8, 2,
-			101, 116, 3, 35, 132, 0, 101, 2, 17, 67, 17, 67, 3, 109, 0, 105, 110, 1, 114, 116, 3, 109, 50, 0, 4, 1, 108, 21, 2, 103,
-			3, 116, 0, 1, 108, 99, 115, 2, 103, 0, 1, 114, 112, 115, 2, 99, 104, 0, 1, 115, 2, 103, 0, 1, 115, 2, 109, 32, 0, 1,
-			115, 2, 109, 107, 101, 105, 116, 0, 2, 17, 67, 32, 0, 2, 32, 0, 2, 112, 104, 0, 8, 2, 32, 0, 97, 0, 104, 2, 12, 0,
-			116, 105, 115, 105, 101, 114, 101, 110, 1, 21, 2, 32, 14, 128, 128, 137, 3, 116, 47, 111, 89, 6, 118, 34, 13, 50, 0, 98, 2, 116,
-			32, 3, 116, 48, 0, 4, 103, 1, 106, 2, 100, 3, 116, 49, 0, 103, 1, 108, 104, 99, 115, 2, 103, 101, 0, 103, 2, 116, 32, 0,
-			1, 109, 2, 108, 116, 32, 3, 116, 55, 0, 98, 101, 110, 8, 2, 100, 3, 116, 71, 13, 50, 0, 101, 108, 3, 116, 109, 55, 0, 105,
-			2, 115, 99, 104, 3, 116, 111, 0, 3, 117, 0, 4, 117, 3, 121, 0, 117, 8, 2, 17, 67, 101, 105, 110, 97, 110, 100, 0, 117, 104,
-			2, 32, 0, 117, 116, 104, 101, 110, 8, 3, 121, 47, 109, 50, 0, 117, 102, 101, 110, 116, 8, 3, 121, 83, 13, 50, 47, 0, 117, 115,
-			8, 2, 107, 117, 3, 121, 89, 0, 4, 105, 3, 122, 0, 121, 0, 4, 105, 114, 1, 109, 2, 32, 3, 122, 108, 0, 121, 114, 1, 109,
-			2, 32, 0, 4, 121, 1, 112, 3, 123, 0, 121, 2, 32, 24, 0, 101, 3, 125, 0, 105, 114, 2, 32, 3, 125, 34, 0, 7, 6, 98,
-			0, 1, 98, 3, 0, 4, 97, 98, 121, 3, 21, 0, 105, 107, 101, 8, 0, 108, 117, 101, 8, 0, 111, 97, 114, 100, 0, 111, 111, 109,
-			8, 0, 4, 2, 18, 67, 3, 48, 0, 2, 32, 24, 0, 8, 111, 2, 17, 67, 0, 116, 2, 32, 24, 3, 48, 47, 0, 4, 3, 71,
-			0, 2, 115, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 101, 17, 68, 17, 67, 0, 8, 2, 101, 98, 17, 67, 0, 8, 2,
-			101, 99, 17, 67, 0, 8, 2, 101, 101, 116, 0, 8, 2, 101, 110, 122, 105, 110, 0, 8, 2, 101, 114, 17, 67, 0, 8, 2, 101, 115,
-			101, 110, 0, 8, 2, 101, 115, 115, 0, 8, 2, 101, 115, 116, 101, 110, 0, 8, 2, 101, 117, 103, 0, 8, 2, 101, 117, 108, 0, 8,
-			2, 101, 117, 116, 0, 8, 2, 106, 17, 65, 0, 4, 97, 8, 2, 108, 17, 65, 3, 71, 2, 35, 0, 97, 8, 2, 108, 108, 21, 0,
-			105, 115, 8, 2, 104, 14, 128, 132, 131, 3, 71, 2, 111, 89, 0, 101, 111, 8, 2, 98, 3, 71, 4, 13, 127, 0, 117, 110, 100, 101,
-			115, 8, 3, 71, 6, 114, 50, 72, 13, 89, 0, 101, 105, 8, 3, 71, 6, 122, 0, 4, 101, 1, 110, 101, 17, 67, 10, 2, 17, 67,
-			21, 3, 71, 13, 0, 101, 1, 115, 103, 110, 117, 2, 17, 67, 21, 0, 101, 2, 114, 101, 105, 99, 104, 0, 101, 8, 2, 21, 14, 128,
-			132, 130, 0, 101, 8, 2, 105, 110, 104, 14, 128, 132, 130, 0, 101, 8, 2, 17, 67, 11, 3, 71, 109, 0, 101, 115, 116, 105, 97, 3,
-			71, 109, 89, 47, 118, 6, 116, 0, 97, 114, 1, 10, 2, 32, 14, 128, 128, 131, 3, 71, 116, 34, 0, 97, 114, 101, 1, 10, 2, 32,
-			14, 128, 128, 132, 3, 71, 116, 34, 13, 0, 97, 114, 101, 110, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71, 116, 34, 13, 50, 0, 97,
-			114, 101, 109, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71, 116, 34, 13, 65, 0, 97, 114, 101, 115, 1, 10, 2, 32, 14, 128, 128, 133,
-			3, 71, 116, 34, 13, 89, 0, 97, 114, 101, 114, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71, 116, 34, 108, 0, 101, 105, 103, 101, 8,
-			2, 21, 3, 71, 122, 81, 13, 0, 8, 2, 32, 3, 71, 126, 0, 101, 116, 101, 110, 3, 71, 126, 47, 13, 50, 0, 101, 105, 103, 101,
-			8, 2, 32, 3, 71, 126, 91, 0, 111, 2, 115, 104, 3, 71, 127, 0, 7, 6, 99, 0, 1, 99, 3, 0, 4, 111, 97, 116, 2, 32,
-			3, 21, 0, 111, 119, 8, 0, 114, 101, 119, 0, 117, 112, 0, 4, 3, 49, 0, 8, 2, 18, 66, 17, 65, 0, 107, 0, 111, 109, 112,
-			117, 116, 101, 114, 8, 2, 21, 14, 128, 132, 128, 3, 49, 113, 65, 48, 57, 6, 120, 47, 108, 0, 111, 100, 101, 8, 3, 49, 127, 47,
-			0, 4, 2, 105, 101, 3, 89, 0, 2, 121, 0, 121, 98, 101, 114, 8, 3, 89, 122, 71, 108, 0, 8, 2, 32, 3, 89, 126, 0, 104,
-			101, 102, 2, 32, 3, 91, 109, 83, 0, 4, 1, 97, 102, 2, 101, 116, 3, 132, 0, 1, 97, 108, 112, 2, 105, 101, 0, 8, 2, 101,
-			108, 0, 8, 2, 101, 110, 116, 0, 101, 121, 8, 3, 132, 122, 0, 7, 6, 100, 0, 1, 100, 3, 0, 4, 101, 97, 108, 8, 3, 21,
-			0, 103, 101, 2, 32, 0, 114, 105, 118, 101, 0, 114, 117, 103, 8, 0, 4, 2, 18, 67, 3, 47, 0, 2, 32, 24, 0, 100, 116, 0,
-			116, 0, 4, 3, 72, 0, 1, 110, 117, 111, 115, 0, 2, 115, 17, 65, 0, 8, 2, 114, 17, 65, 0, 8, 2, 115, 99, 104, 17, 65,
-			0, 8, 2, 115, 104, 17, 65, 0, 101, 115, 105, 103, 110, 2, 32, 3, 72, 2, 111, 88, 122, 50, 0, 4, 117, 114, 99, 104, 8, 2,
+		static unsigned char espeakdata_dicts11_data[21637] = {
+			0, 4, 0, 0, 140, 33, 0, 0, 0, 0, 0, 0, 0, 21, 65, 4, 116, 15, 116, 15, 10, 127, 0, 85, 46, 32, 97, 32, 46, 32,
+			111, 32, 46, 32, 0, 0, 0, 0, 0, 12, 201, 36, 228, 194, 21, 51, 206, 16, 84, 133, 67, 11, 70, 9, 35, 215, 76, 84, 128, 21,
+			0, 10, 0, 0, 9, 68, 76, 208, 76, 48, 21, 0, 10, 0, 0, 10, 135, 26, 21, 18, 195, 188, 3, 11, 66, 0, 13, 4, 95, 8,
+			1, 3, 107, 6, 35, 76, 109, 49, 0, 0, 0, 8, 67, 69, 82, 90, 21, 0, 10, 0, 0, 0, 0, 11, 67, 44, 19, 142, 4, 49,
+			35, 50, 0, 9, 0, 16, 70, 76, 243, 12, 80, 83, 128, 4, 88, 113, 55, 47, 13, 50, 0, 0, 11, 67, 76, 147, 132, 88, 111, 50,
+			47, 0, 72, 16, 4, 95, 48, 67, 15, 6, 107, 114, 50, 72, 108, 132, 47, 13, 0, 0, 0, 17, 7, 8, 195, 164, 20, 20, 5, 14,
+			107, 4, 109, 47, 13, 50, 0, 9, 0, 0, 0, 7, 196, 48, 147, 9, 20, 20, 7, 196, 45, 84, 137, 20, 20, 0, 0, 0, 8, 67,
+			28, 147, 128, 21, 0, 10, 17, 7, 8, 195, 164, 20, 20, 5, 20, 107, 4, 109, 47, 13, 47, 0, 9, 0, 0, 0, 0, 11, 67, 92,
+			148, 132, 84, 4, 111, 34, 72, 0, 17, 67, 9, 165, 192, 71, 13, 132, 118, 114, 68, 89, 84, 122, 88, 13, 0, 0, 6, 195, 21, 69,
+			193, 72, 9, 1, 35, 50, 114, 65, 108, 0, 27, 0, 0, 13, 1, 37, 48, 34, 127, 132, 6, 109, 50, 47, 0, 27, 0, 11, 67, 92,
+			148, 128, 84, 118, 34, 0, 72, 9, 7, 1, 38, 114, 50, 47, 0, 0, 0, 0, 0, 20, 71, 5, 97, 78, 81, 84, 137, 56, 35, 84,
+			109, 50, 47, 120, 34, 6, 118, 50, 0, 11, 67, 92, 20, 128, 2, 84, 116, 34, 0, 9, 22, 67, 28, 20, 128, 81, 4, 116, 34, 50,
+			6, 111, 99, 47, 0, 81, 110, 105, 99, 104, 116, 32, 10, 1, 42, 91, 47, 109, 34, 50, 0, 27, 0, 9, 1, 43, 48, 55, 114, 89,
+			0, 27, 0, 12, 201, 52, 149, 5, 36, 224, 78, 16, 84, 128, 65, 16, 69, 21, 133, 18, 20, 208, 109, 49, 89, 47, 34, 6, 126, 65,
+			0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 8, 80, 133, 56, 71, 126, 71, 13, 50, 0, 0, 0, 0, 0, 9, 68, 77, 82, 84, 20,
+			21, 0, 10, 0, 13, 5, 95, 48, 1, 14, 4, 15, 23, 114, 50, 47, 0, 0, 20, 9, 1, 21, 195, 159, 5, 18, 4, 5, 13, 6,
+			121, 89, 108, 72, 4, 126, 65, 0, 0, 0, 0, 12, 67, 28, 19, 154, 81, 4, 35, 50, 132, 0, 9, 0, 21, 73, 77, 2, 78, 61,
+			160, 73, 76, 50, 0, 89, 48, 118, 50, 6, 127, 132, 122, 91, 0, 9, 1, 61, 81, 55, 122, 99, 0, 27, 0, 19, 71, 21, 38, 135,
+			20, 34, 82, 28, 126, 34, 132, 81, 13, 71, 111, 34, 81, 0, 0, 7, 196, 64, 147, 137, 20, 20, 0, 15, 1, 64, 49, 55, 6, 35,
+			65, 108, 10, 4, 35, 83, 13, 0, 0, 9, 66, 4, 32, 35, 48, 0, 76, 28, 0, 11, 67, 76, 144, 200, 88, 111, 99, 0, 72, 9,
+			0, 0, 0, 0, 0, 0, 0, 16, 70, 20, 147, 137, 28, 84, 192, 122, 50, 111, 81, 13, 89, 0, 76, 8, 67, 48, 243, 203, 21, 0,
+			10, 0, 8, 67, 80, 129, 64, 86, 13, 0, 0, 0, 8, 197, 4, 195, 5, 36, 224, 66, 0, 16, 70, 77, 0, 82, 76, 19, 64, 91,
+			48, 116, 34, 88, 116, 65, 0, 8, 67, 77, 0, 77, 21, 0, 10, 0, 17, 70, 16, 160, 75, 5, 37, 1, 75, 35, 49, 6, 35, 34,
+			47, 116, 0, 9, 67, 5, 37, 0, 116, 34, 47, 0, 10, 67, 5, 81, 128, 121, 83, 0, 76, 28, 11, 67, 8, 65, 64, 71, 109, 50,
+			72, 13, 0, 0, 0, 10, 69, 76, 84, 150, 21, 32, 21, 0, 10, 0, 12, 137, 20, 18, 1, 7, 195, 182, 4, 9, 5, 20, 0, 0,
+			15, 68, 32, 16, 133, 56, 107, 4, 116, 71, 13, 50, 0, 9, 12, 8, 196, 56, 80, 133, 56, 76, 28, 0, 10, 69, 92, 147, 132, 61,
+			112, 21, 0, 10, 0, 13, 5, 195, 182, 4, 5, 13, 130, 72, 6, 126, 65, 0, 0, 0, 0, 10, 69, 12, 128, 78, 28, 80, 21, 0,
+			10, 6, 65, 88, 83, 121, 0, 0, 0, 16, 67, 4, 227, 64, 6, 35, 50, 65, 4, 109, 34, 49, 114, 68, 0, 0, 0, 11, 1, 92,
+			71, 35, 49, 89, 55, 35, 91, 0, 0, 0, 17, 71, 92, 20, 211, 21, 37, 78, 28, 84, 35, 89, 13, 34, 114, 68, 0, 19, 71, 36,
+			195, 9, 8, 84, 129, 48, 111, 55, 118, 71, 13, 34, 6, 116, 55, 0, 12, 67, 92, 20, 148, 2, 84, 116, 34, 47, 0, 9, 10, 67,
+			16, 240, 200, 72, 113, 101, 0, 76, 0, 7, 196, 53, 83, 73, 20, 20, 0, 7, 65, 96, 111, 49, 89, 0, 0, 20, 4, 95, 49, 77,
+			50, 10, 6, 122, 50, 13, 15, 65, 111, 55, 111, 6, 127, 50, 0, 0, 22, 4, 95, 49, 77, 51, 10, 6, 122, 50, 13, 15, 65, 111,
+			55, 111, 6, 35, 34, 72, 13, 0, 0, 12, 68, 28, 80, 133, 56, 81, 126, 71, 13, 50, 0, 13, 68, 44, 243, 142, 80, 4, 49, 113,
+			50, 47, 0, 9, 0, 0, 0, 15, 67, 21, 101, 12, 126, 84, 109, 50, 47, 120, 6, 109, 55, 0, 0, 0, 21, 65, 104, 132, 114, 65,
+			71, 6, 122, 91, 48, 118, 55, 0, 83, 46, 32, 98, 32, 46, 32, 0, 0, 9, 67, 92, 20, 192, 84, 35, 89, 0, 0, 0, 8, 197,
+			105, 147, 66, 4, 192, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 69, 92, 82, 84, 84, 208, 84, 122, 47, 23, 6,
+			114, 65, 0, 0, 0, 10, 67, 76, 17, 212, 88, 116, 81, 47, 0, 9, 198, 44, 20, 212, 4, 226, 69, 20, 9, 198, 4, 227, 205, 4,
+			194, 69, 66, 0, 12, 68, 52, 241, 5, 52, 65, 127, 72, 109, 65, 0, 9, 68, 25, 32, 77, 20, 21, 0, 10, 0, 15, 69, 32, 21,
+			20, 20, 224, 107, 4, 35, 47, 13, 50, 0, 9, 0, 0, 8, 67, 84, 226, 88, 21, 0, 10, 9, 1, 126, 47, 111, 55, 72, 13, 0,
+			0, 0, 8, 197, 76, 19, 15, 65, 0, 66, 0, 9, 66, 8, 64, 71, 35, 50, 72, 0, 0, 7, 195, 21, 80, 200, 76, 9, 0, 9,
+			68, 25, 33, 65, 44, 21, 0, 10, 0, 0, 0, 15, 6, 8, 195, 164, 20, 20, 5, 107, 4, 109, 47, 13, 0, 9, 0, 9, 68, 21,
+			97, 78, 80, 21, 0, 10, 0, 0, 8, 67, 80, 19, 11, 21, 0, 10, 0, 0, 0, 0, 0, 9, 67, 5, 97, 64, 116, 84, 109, 0,
+			9, 67, 5, 80, 200, 4, 121, 101, 0, 0, 0, 0, 5, 194, 16, 16, 76, 0, 0, 0, 0, 0, 10, 67, 77, 34, 64, 89, 34, 4,
+			118, 0, 0, 11, 68, 81, 32, 73, 56, 47, 34, 126, 50, 0, 13, 68, 84, 210, 9, 56, 114, 65, 107, 6, 111, 50, 0, 0, 8, 197,
+			32, 244, 212, 36, 80, 20, 0, 0, 0, 0, 0, 0, 0, 13, 68, 36, 225, 5, 52, 111, 50, 72, 6, 126, 65, 0, 9, 198, 16, 86,
+			133, 52, 33, 82, 66, 0, 0, 0, 0, 13, 68, 36, 225, 5, 56, 111, 50, 72, 6, 126, 50, 0, 0, 0, 9, 198, 16, 83, 83, 20,
+			192, 128, 66, 0, 11, 67, 5, 84, 192, 4, 121, 89, 0, 28, 11, 0, 12, 68, 20, 147, 137, 28, 122, 50, 111, 99, 0, 9, 0, 14,
+			69, 52, 241, 5, 48, 192, 65, 127, 72, 6, 109, 55, 0, 10, 69, 64, 145, 7, 36, 224, 21, 0, 10, 0, 12, 66, 17, 32, 72, 113,
+			49, 47, 6, 127, 34, 0, 0, 0, 0, 0, 13, 138, 16, 18, 195, 164, 19, 9, 4, 5, 14, 20, 67, 9, 198, 16, 80, 129, 81, 65,
+			64, 66, 0, 0, 12, 68, 44, 19, 143, 20, 49, 35, 50, 6, 120, 0, 0, 8, 197, 76, 245, 197, 37, 64, 66, 0, 0, 8, 67, 4,
+			145, 0, 21, 0, 10, 0, 11, 68, 36, 225, 5, 72, 111, 50, 72, 108, 0, 0, 0, 0, 9, 198, 32, 148, 212, 61, 34, 69, 20, 0,
+			13, 68, 36, 225, 5, 76, 111, 50, 72, 6, 109, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 10, 7, 5, 7,
+			5, 14, 195, 188, 2, 5, 18, 81, 126, 81, 13, 50, 6, 128, 71, 108, 0, 0, 8, 67, 64, 18, 82, 21, 0, 10, 0, 9, 198, 16,
+			145, 83, 20, 192, 128, 66, 0, 20, 71, 56, 81, 204, 36, 113, 78, 80, 50, 126, 81, 55, 118, 75, 6, 109, 50, 47, 0, 0, 12, 68,
+			104, 195, 212, 100, 89, 55, 113, 47, 118, 0, 13, 68, 84, 228, 210, 20, 114, 50, 88, 34, 13, 0, 72, 0, 0, 10, 66, 21, 32, 109,
+			34, 0, 72, 28, 9, 0, 10, 199, 4, 36, 212, 36, 225, 78, 80, 67, 9, 67, 16, 145, 64, 2, 72, 118, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 198, 44, 19, 69, 48, 145, 64, 20, 17, 70, 28, 84, 129, 56, 145, 64, 81, 126, 34, 6, 116, 50, 111, 13, 0, 0, 9,
+			67, 8, 80, 84, 21, 0, 9, 10, 0, 10, 67, 36, 226, 193, 111, 68, 49, 116, 0, 0, 0, 0, 16, 70, 16, 17, 21, 72, 50, 0,
+			72, 116, 72, 6, 114, 34, 99, 0, 11, 67, 8, 82, 64, 71, 122, 0, 76, 28, 9, 0, 12, 4, 95, 4, 16, 20, 10, 49, 113, 65,
+			35, 0, 0, 0, 17, 66, 21, 48, 2, 109, 89, 2, 111, 89, 47, 0, 81, 105, 115, 116, 32, 9, 66, 21, 48, 109, 89, 0, 72, 9,
+			6, 194, 17, 80, 72, 9, 0, 9, 67, 80, 147, 64, 47, 111, 65, 0, 0, 7, 196, 52, 147, 149, 80, 66, 11, 67, 8, 82, 77, 71,
+			122, 65, 0, 76, 28, 0, 8, 67, 40, 80, 78, 21, 0, 10, 0, 10, 67, 16, 145, 83, 72, 118, 88, 0, 72, 17, 70, 84, 228, 197,
+			72, 83, 64, 114, 50, 89, 13, 34, 13, 65, 0, 72, 0, 16, 67, 36, 226, 204, 111, 50, 49, 55, 120, 88, 6, 118, 84, 13, 0, 0,
+			11, 67, 60, 35, 197, 127, 71, 6, 127, 13, 0, 0, 0, 0, 11, 67, 36, 228, 192, 111, 50, 89, 0, 76, 28, 0, 13, 4, 95, 20,
+			12, 4, 47, 6, 111, 55, 72, 13, 0, 17, 3, 95, 35, 57, 47, 4, 35, 71, 120, 55, 6, 116, 47, 127, 108, 0, 0, 0, 15, 70,
+			32, 21, 83, 36, 84, 128, 107, 121, 88, 6, 118, 34, 0, 0, 7, 195, 84, 228, 192, 76, 9, 0, 11, 200, 56, 85, 83, 20, 83, 1,
+			56, 64, 66, 12, 68, 4, 225, 18, 20, 35, 50, 72, 34, 13, 0, 13, 68, 84, 210, 5, 72, 114, 65, 107, 6, 109, 34, 0, 0, 0,
+			8, 66, 25, 32, 83, 34, 121, 0, 0, 19, 71, 4, 36, 197, 57, 66, 69, 72, 35, 48, 88, 109, 50, 47, 6, 118, 34, 0, 0, 0,
+			12, 67, 25, 35, 0, 83, 34, 124, 55, 122, 50, 0, 0, 9, 198, 80, 243, 142, 4, 113, 64, 20, 0, 0, 0, 0, 9, 198, 20, 225,
+			9, 88, 145, 64, 20, 9, 66, 4, 208, 35, 65, 0, 76, 28, 0, 0, 0, 8, 197, 4, 176, 90, 36, 80, 20, 10, 69, 72, 83, 65,
+			44, 80, 21, 0, 10, 14, 69, 76, 243, 12, 80, 80, 4, 88, 113, 55, 47, 13, 0, 0, 0, 0, 13, 68, 92, 242, 5, 72, 84, 127,
+			107, 6, 126, 34, 0, 12, 68, 92, 243, 12, 80, 2, 84, 113, 55, 47, 0, 8, 196, 36, 131, 133, 56, 76, 9, 0, 8, 197, 28, 195,
+			210, 36, 80, 20, 0, 17, 70, 81, 53, 78, 4, 210, 64, 132, 120, 50, 6, 35, 12, 65, 118, 0, 0, 18, 71, 28, 81, 204, 36, 50,
+			5, 56, 81, 13, 81, 55, 111, 99, 13, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 4, 224, 35, 50, 0, 76, 28, 0, 16,
+			70, 12, 128, 78, 28, 145, 82, 91, 35, 68, 90, 6, 118, 34, 0, 0, 0, 0, 12, 67, 32, 16, 133, 2, 107, 116, 71, 13, 0, 9,
+			0, 0, 0, 13, 69, 16, 85, 1, 36, 192, 72, 126, 47, 6, 122, 0, 0, 0, 0, 0, 15, 69, 92, 147, 12, 77, 64, 2, 84, 111,
+			55, 89, 47, 0, 9, 0, 0, 0, 13, 72, 77, 113, 65, 81, 50, 9, 73, 64, 21, 0, 10, 0, 0, 11, 70, 72, 84, 197, 5, 32,
+			200, 21, 0, 10, 0, 0, 19, 8, 8, 195, 164, 20, 20, 5, 19, 20, 107, 4, 109, 47, 109, 89, 47, 0, 9, 0, 9, 198, 72, 83,
+			9, 69, 82, 69, 20, 12, 201, 44, 243, 147, 21, 37, 129, 80, 149, 128, 65, 11, 67, 32, 21, 0, 2, 107, 35, 47, 0, 9, 0, 12,
+			5, 11, 23, 1, 195, 159, 49, 84, 35, 89, 0, 0, 0, 11, 136, 23, 195, 164, 8, 18, 5, 14, 4, 72, 12, 68, 76, 50, 15, 56,
+			91, 4, 127, 50, 0, 12, 11, 136, 23, 195, 164, 8, 18, 5, 14, 4, 8, 0, 0, 0, 0, 0, 12, 67, 25, 81, 82, 83, 128, 34,
+			0, 76, 8, 9, 0, 9, 198, 16, 17, 197, 28, 83, 128, 66, 0, 11, 67, 105, 83, 64, 132, 114, 65, 0, 76, 8, 9, 67, 32, 147,
+			128, 107, 111, 50, 0, 0, 11, 70, 16, 80, 149, 28, 113, 82, 21, 0, 10, 0, 8, 197, 92, 244, 129, 85, 48, 66, 0, 18, 70, 16,
+			149, 137, 16, 83, 132, 72, 118, 84, 118, 72, 6, 109, 50, 47, 0, 7, 66, 16, 160, 21, 0, 10, 0, 7, 195, 16, 148, 128, 76, 9,
+			0, 12, 68, 20, 147, 133, 56, 122, 50, 13, 50, 0, 72, 0, 13, 69, 28, 83, 69, 36, 224, 81, 13, 65, 122, 50, 0, 6, 195, 16,
+			19, 142, 72, 0, 16, 70, 17, 32, 71, 36, 84, 128, 72, 34, 35, 90, 6, 118, 34, 0, 0, 0, 0, 23, 73, 65, 34, 86, 5, 66,
+			83, 36, 84, 128, 48, 34, 118, 84, 35, 47, 118, 88, 6, 118, 34, 0, 8, 197, 44, 243, 147, 84, 192, 65, 15, 69, 28, 83, 137, 4,
+			192, 81, 126, 50, 111, 6, 35, 55, 0, 0, 16, 70, 92, 82, 84, 32, 84, 128, 84, 122, 47, 107, 6, 109, 34, 0, 15, 70, 64, 240,
+			200, 36, 84, 128, 48, 113, 91, 6, 118, 34, 0, 8, 66, 33, 32, 107, 109, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+			68, 17, 81, 84, 80, 72, 120, 6, 109, 47, 0, 0, 0, 0, 0, 13, 68, 4, 229, 9, 44, 35, 50, 47, 6, 118, 49, 0, 0, 0,
+			0, 0, 12, 68, 36, 132, 133, 52, 118, 34, 13, 65, 0, 72, 0, 0, 0, 17, 71, 92, 82, 84, 21, 37, 78, 28, 84, 122, 47, 13,
+			34, 114, 68, 0, 0, 12, 68, 20, 147, 133, 52, 122, 50, 13, 65, 0, 72, 0, 14, 73, 5, 52, 207, 12, 144, 84, 36, 243, 128, 21,
+			0, 10, 0, 0, 9, 67, 80, 160, 64, 47, 57, 116, 0, 8, 67, 76, 194, 80, 21, 0, 10, 0, 0, 0, 0, 0, 12, 68, 32, 19,
+			132, 100, 107, 109, 50, 72, 118, 0, 11, 68, 36, 132, 133, 72, 118, 34, 108, 0, 72, 13, 3, 95, 49, 15, 10, 6, 126, 34, 89, 47,
+			13, 0, 0, 13, 69, 28, 84, 211, 20, 224, 81, 109, 89, 13, 50, 0, 8, 197, 92, 244, 129, 84, 96, 66, 0, 10, 3, 95, 49, 1,
+			10, 6, 122, 50, 0, 0, 9, 3, 226, 130, 172, 124, 34, 127, 0, 0, 0, 11, 70, 32, 243, 69, 64, 17, 197, 21, 0, 10, 0, 0,
+			9, 67, 80, 17, 192, 47, 116, 81, 0, 0, 0, 16, 70, 52, 83, 149, 21, 69, 5, 65, 109, 50, 120, 6, 109, 47, 0, 0, 0, 0,
+			12, 68, 4, 50, 19, 60, 35, 101, 88, 6, 127, 0, 11, 68, 20, 147, 133, 72, 122, 50, 108, 0, 72, 7, 195, 36, 50, 0, 72, 9,
+			14, 68, 16, 84, 133, 56, 72, 126, 34, 13, 50, 0, 76, 28, 0, 0, 0, 15, 70, 20, 225, 12, 36, 50, 0, 109, 50, 47, 55, 111,
+			99, 0, 0, 10, 67, 52, 244, 147, 65, 113, 34, 89, 0, 13, 68, 92, 84, 132, 20, 84, 4, 109, 34, 72, 13, 0, 12, 68, 20, 147,
+			133, 76, 122, 50, 13, 89, 0, 72, 12, 3, 95, 51, 15, 72, 34, 6, 111, 47, 13, 0, 9, 4, 95, 15, 18, 4, 47, 13, 0, 0,
+			0, 0, 7, 195, 16, 144, 200, 76, 9, 0, 0, 10, 67, 37, 53, 0, 111, 89, 47, 0, 72, 0, 0, 8, 67, 73, 83, 128, 21, 0,
+			10, 7, 195, 36, 131, 64, 76, 9, 0, 0, 0, 0, 20, 71, 21, 2, 83, 44, 244, 1, 48, 126, 48, 111, 89, 49, 127, 48, 6, 116,
+			55, 0, 6, 195, 57, 84, 128, 28, 0, 0, 12, 67, 33, 34, 18, 107, 35, 34, 107, 35, 34, 0, 0, 8, 67, 76, 197, 77, 21, 0,
+			10, 0, 11, 67, 105, 84, 128, 132, 120, 34, 0, 76, 8, 10, 67, 16, 20, 192, 2, 72, 35, 89, 0, 0, 0, 0, 14, 4, 95, 13,
+			3, 14, 65, 6, 116, 49, 34, 113, 50, 0, 0, 0, 0, 0, 0, 11, 70, 40, 246, 83, 80, 144, 203, 21, 0, 10, 0, 0, 10, 69,
+			80, 80, 83, 21, 32, 21, 0, 10, 0, 0, 10, 67, 8, 84, 212, 71, 109, 89, 47, 0, 0, 13, 68, 92, 244, 129, 56, 84, 127, 34,
+			6, 35, 50, 0, 0, 0, 0, 19, 71, 25, 34, 69, 17, 99, 204, 48, 83, 34, 6, 118, 47, 83, 4, 113, 55, 0, 12, 67, 32, 20,
+			212, 2, 107, 35, 89, 47, 0, 9, 0, 10, 67, 16, 20, 211, 72, 35, 89, 0, 76, 12, 3, 95, 55, 15, 88, 6, 118, 71, 47, 13,
+			0, 0, 14, 69, 20, 147, 137, 28, 80, 122, 50, 111, 81, 13, 0, 76, 0, 0, 0, 0, 11, 67, 60, 65, 82, 127, 72, 108, 0, 76,
+			8, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 88, 6, 72, 34, 122, 89, 111, 99, 0, 0, 12, 68, 84, 229, 5, 56, 114, 50, 47,
+			13, 50, 0, 9, 68, 76, 85, 133, 56, 21, 0, 10, 13, 3, 95, 48, 67, 6, 107, 114, 50, 72, 108, 47, 0, 0, 13, 69, 52, 16,
+			200, 20, 224, 65, 35, 101, 13, 50, 0, 0, 0, 8, 67, 81, 34, 80, 21, 0, 10, 0, 12, 68, 8, 85, 5, 56, 71, 126, 47, 13,
+			50, 0, 0, 0, 0, 14, 203, 88, 145, 76, 8, 84, 208, 72, 240, 200, 20, 224, 67, 0, 12, 68, 20, 147, 147, 80, 6, 122, 50, 89,
+			47, 0, 0, 0, 0, 0, 0, 0, 7, 66, 32, 144, 107, 122, 0, 5, 194, 40, 80, 72, 13, 3, 95, 49, 57, 6, 50, 124, 50, 132,
+			126, 50, 0, 0, 13, 3, 95, 49, 56, 6, 10, 35, 101, 132, 126, 50, 0, 0, 15, 68, 84, 229, 5, 72, 4, 114, 50, 47, 108, 0,
+			8, 11, 9, 0, 8, 67, 40, 85, 0, 21, 0, 10, 0, 8, 67, 32, 148, 0, 21, 0, 10, 0, 0, 0, 14, 69, 8, 84, 212, 36,
+			80, 71, 109, 89, 47, 111, 13, 0, 0, 11, 70, 8, 20, 197, 8, 19, 12, 21, 0, 10, 11, 3, 95, 49, 49, 6, 10, 109, 55, 83,
+			0, 0, 10, 3, 95, 49, 48, 6, 132, 126, 50, 0, 0, 9, 68, 48, 85, 133, 48, 21, 0, 10, 13, 3, 95, 49, 51, 6, 72, 34,
+			122, 132, 126, 50, 0, 0, 12, 3, 95, 49, 50, 6, 132, 84, 131, 55, 83, 0, 0, 14, 3, 95, 49, 53, 6, 83, 129, 50, 83, 132,
+			126, 50, 0, 0, 7, 195, 36, 131, 128, 76, 9, 14, 5, 195, 188, 2, 5, 18, 4, 129, 71, 108, 0, 8, 11, 13, 3, 95, 49, 52,
+			6, 83, 111, 34, 132, 126, 50, 0, 0, 13, 68, 76, 84, 137, 20, 89, 126, 34, 111, 38, 13, 0, 7, 196, 61, 33, 201, 20, 20, 13,
+			3, 95, 49, 55, 6, 88, 118, 48, 132, 126, 50, 0, 0, 13, 3, 95, 49, 54, 6, 88, 109, 99, 132, 126, 50, 0, 0, 10, 67, 36,
+			132, 133, 118, 34, 13, 0, 72, 0, 13, 3, 95, 55, 88, 6, 88, 118, 48, 132, 111, 99, 0, 0, 13, 68, 92, 20, 133, 56, 2, 84,
+			116, 34, 13, 50, 0, 0, 8, 197, 8, 19, 11, 4, 224, 65, 0, 9, 198, 16, 83, 147, 20, 192, 128, 66, 17, 70, 16, 20, 211, 20,
+			192, 128, 72, 35, 89, 88, 6, 109, 55, 71, 0, 17, 70, 16, 84, 211, 20, 192, 128, 72, 109, 89, 88, 6, 109, 55, 71, 0, 9, 198,
+			16, 84, 147, 20, 192, 128, 66, 0, 9, 67, 36, 132, 128, 118, 34, 0, 72, 0, 0, 0, 0, 0, 0, 0, 11, 70, 92, 80, 147, 37,
+			65, 64, 21, 0, 10, 8, 67, 76, 86, 25, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 48, 20,
+			20, 61, 0, 21, 0, 10, 14, 3, 95, 50, 88, 6, 132, 84, 35, 50, 132, 111, 99, 0, 0, 0, 0, 0, 10, 199, 36, 211, 79, 8,
+			147, 9, 20, 20, 0, 12, 3, 95, 56, 15, 10, 6, 35, 101, 47, 13, 0, 0, 0, 15, 70, 36, 226, 193, 37, 48, 200, 111, 68, 49,
+			116, 111, 91, 0, 0, 11, 67, 76, 82, 84, 88, 122, 47, 0, 72, 9, 0, 0, 0, 11, 70, 24, 148, 133, 92, 19, 12, 21, 0, 10,
+			0, 0, 9, 68, 77, 21, 65, 92, 21, 0, 10, 13, 3, 95, 63, 63, 88, 129, 65, 71, 6, 127, 55, 0, 0, 0, 0, 13, 3, 95,
+			52, 88, 6, 83, 111, 34, 132, 111, 99, 0, 0, 0, 10, 69, 77, 2, 82, 37, 64, 21, 0, 10, 0, 0, 11, 136, 11, 15, 13, 195,
+			182, 4, 9, 5, 20, 6, 195, 92, 82, 76, 8, 0, 0, 14, 69, 20, 147, 136, 21, 32, 122, 50, 107, 6, 126, 34, 0, 0, 8, 66,
+			52, 48, 65, 14, 49, 0, 8, 66, 32, 208, 107, 13, 65, 0, 0, 14, 3, 95, 53, 88, 6, 83, 129, 50, 83, 132, 111, 99, 0, 0,
+			14, 68, 8, 85, 143, 72, 71, 13, 83, 127, 34, 0, 66, 8, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 6, 88, 109, 99,
+			132, 111, 99, 0, 0, 0, 6, 195, 76, 82, 78, 72, 0, 0, 11, 67, 88, 243, 64, 83, 113, 65, 0, 76, 28, 0, 0, 0, 0, 8,
+			67, 24, 245, 76, 21, 0, 10, 0, 0, 0, 0, 10, 199, 56, 85, 77, 21, 130, 75, 60, 66, 0, 0, 0, 9, 66, 57, 32, 50, 114,
+			65, 108, 0, 0, 20, 71, 20, 33, 78, 16, 18, 5, 72, 126, 71, 13, 50, 72, 35, 107, 6, 126, 34, 0, 8, 67, 52, 18, 76, 21,
+			0, 10, 13, 3, 95, 56, 88, 6, 10, 35, 101, 132, 111, 99, 0, 0, 0, 13, 69, 76, 16, 130, 5, 64, 88, 35, 71, 35, 47, 0,
+			0, 16, 70, 64, 20, 211, 4, 113, 64, 48, 35, 89, 6, 35, 90, 13, 0, 9, 198, 36, 226, 149, 72, 145, 64, 20, 9, 198, 5, 37,
+			5, 72, 145, 64, 20, 0, 0, 11, 70, 32, 243, 204, 36, 112, 78, 21, 0, 10, 0, 9, 67, 44, 145, 0, 49, 111, 72, 0, 12, 137,
+			1, 20, 15, 13, 13, 195, 188, 12, 12, 65, 0, 9, 198, 52, 21, 5, 72, 145, 64, 20, 9, 66, 36, 208, 111, 65, 0, 76, 28, 0,
+			13, 3, 95, 57, 88, 6, 50, 124, 50, 132, 111, 99, 0, 0, 11, 200, 36, 226, 207, 57, 53, 1, 57, 64, 65, 13, 68, 32, 21, 20,
+			20, 107, 4, 35, 47, 13, 0, 9, 0, 8, 197, 57, 83, 69, 72, 240, 65, 0, 0, 0, 0, 0, 15, 3, 95, 63, 65, 71, 6, 120,
+			101, 89, 47, 116, 71, 13, 0, 0, 20, 71, 20, 33, 78, 16, 18, 9, 56, 126, 71, 13, 50, 72, 35, 107, 6, 111, 50, 0, 0, 13,
+			72, 20, 229, 5, 73, 4, 137, 76, 80, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 66, 60, 32, 4, 113, 71, 0, 8, 11, 9,
+			9, 66, 36, 224, 111, 50, 0, 76, 28, 0, 17, 70, 20, 225, 193, 28, 145, 82, 35, 68, 81, 35, 90, 6, 118, 34, 0, 8, 67, 40,
+			240, 128, 21, 0, 10, 0, 0, 0, 15, 70, 80, 129, 65, 80, 84, 128, 47, 126, 6, 116, 47, 108, 0, 0, 15, 4, 95, 15, 7, 15,
+			6, 127, 81, 113, 50, 4, 109, 49, 0, 0, 13, 68, 40, 85, 26, 80, 57, 4, 109, 132, 47, 0, 12, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 14, 69, 48, 241, 201, 21, 32, 55, 127, 90, 6, 118, 34, 0, 0, 0, 0, 0, 15, 69, 73, 112, 78, 16, 16, 34, 114, 6,
+			35, 50, 72, 116, 0, 12, 67, 92, 83, 142, 4, 84, 109, 50, 0, 8, 11, 0, 0, 10, 67, 28, 80, 148, 81, 126, 71, 47, 0, 0,
+			0, 0, 0, 9, 67, 20, 147, 128, 122, 50, 0, 76, 11, 67, 65, 35, 192, 4, 48, 34, 127, 0, 8, 0, 14, 4, 95, 48, 77, 52,
+			71, 111, 55, 111, 6, 127, 50, 0, 0, 0, 15, 70, 25, 84, 131, 32, 83, 128, 83, 114, 34, 99, 13, 50, 0, 17, 4, 95, 48, 77,
+			50, 15, 65, 111, 55, 111, 6, 127, 50, 13, 50, 0, 0, 11, 67, 52, 19, 128, 65, 35, 50, 0, 72, 9, 11, 67, 88, 243, 128, 83,
+			113, 50, 0, 76, 28, 18, 4, 95, 48, 77, 51, 15, 65, 111, 55, 111, 6, 35, 34, 72, 13, 50, 0, 0, 10, 67, 20, 147, 133, 122,
+			50, 13, 0, 72, 0, 14, 4, 95, 48, 77, 49, 6, 47, 121, 88, 13, 50, 47, 0, 0, 9, 66, 60, 64, 127, 72, 108, 0, 9, 14,
+			4, 95, 2, 18, 22, 71, 14, 16, 6, 125, 84, 13, 0, 0, 7, 195, 52, 148, 128, 76, 9, 0, 0, 10, 69, 5, 4, 5, 4, 192,
+			21, 0, 10, 0, 16, 67, 33, 36, 199, 107, 109, 34, 6, 121, 89, 81, 126, 71, 108, 0, 0, 11, 67, 88, 244, 128, 4, 83, 113, 34,
+			0, 11, 0, 0, 0, 0, 0, 0, 12, 69, 76, 50, 21, 49, 64, 91, 120, 55, 47, 0, 0, 0, 0, 0, 0, 13, 66, 44, 208, 49,
+			118, 55, 127, 65, 126, 47, 108, 0, 0, 0, 11, 200, 88, 145, 76, 48, 82, 67, 33, 64, 66, 0, 12, 67, 105, 112, 82, 132, 84, 4,
+			35, 12, 34, 0, 0, 0, 11, 67, 52, 149, 0, 65, 111, 47, 0, 76, 8, 0, 0, 0, 7, 66, 53, 144, 21, 0, 10, 0, 18, 9,
+			8, 195, 164, 21, 19, 3, 8, 5, 14, 107, 124, 89, 99, 13, 50, 0, 0, 0, 0, 9, 198, 52, 243, 143, 80, 243, 128, 67, 0, 8,
+			67, 61, 85, 0, 21, 0, 10, 0, 9, 68, 12, 240, 67, 32, 21, 0, 10, 0, 0, 0, 0, 0, 0, 11, 70, 4, 48, 207, 84, 229,
+			0, 21, 0, 10, 0, 15, 70, 20, 147, 133, 72, 193, 73, 122, 50, 13, 34, 55, 122, 0, 0, 0, 0, 9, 198, 56, 80, 149, 48, 244,
+			192, 67, 0, 7, 195, 52, 144, 200, 72, 9, 0, 10, 67, 21, 33, 5, 126, 34, 72, 13, 0, 0, 0, 0, 24, 67, 56, 240, 200, 50,
+			6, 113, 101, 15, 50, 6, 111, 99, 47, 0, 28, 81, 110, 105, 99, 104, 116, 32, 6, 195, 56, 240, 200, 8, 0, 11, 68, 64, 240, 200,
+			76, 48, 113, 101, 89, 0, 0, 0, 0, 9, 198, 77, 2, 79, 56, 17, 197, 20, 0, 0, 0, 0, 0, 8, 67, 40, 242, 197, 21, 0,
+			10, 0, 11, 67, 4, 33, 82, 116, 71, 108, 0, 76, 8, 0, 16, 70, 5, 32, 200, 4, 146, 192, 35, 34, 99, 6, 116, 111, 49, 0,
+			0, 0, 16, 70, 20, 147, 129, 56, 65, 82, 122, 50, 6, 35, 50, 72, 108, 0, 0, 0, 19, 4, 95, 3, 9, 18, 132, 6, 111, 34,
+			49, 114, 65, 83, 55, 109, 49, 89, 0, 0, 0, 0, 0, 0, 0, 9, 68, 76, 130, 82, 80, 21, 0, 10, 0, 0, 0, 0, 0, 15,
+			69, 36, 229, 5, 72, 224, 111, 50, 47, 6, 109, 34, 50, 0, 15, 69, 92, 243, 12, 20, 224, 2, 84, 113, 55, 13, 50, 0, 9, 0,
+			0, 17, 4, 95, 19, 20, 11, 91, 34, 6, 126, 81, 89, 47, 34, 111, 99, 0, 0, 0, 15, 69, 64, 192, 78, 21, 64, 48, 55, 35,
+			50, 6, 126, 47, 0, 12, 4, 95, 1, 3, 21, 35, 49, 6, 120, 47, 0, 0, 10, 198, 60, 33, 204, 20, 144, 200, 66, 8, 21, 3,
+			95, 194, 171, 6, 35, 50, 83, 128, 51, 114, 68, 89, 132, 4, 122, 99, 13, 50, 0, 0, 0, 0, 0, 11, 70, 80, 84, 141, 36, 224,
+			76, 21, 0, 10, 0, 0, 0, 15, 69, 16, 144, 68, 20, 208, 72, 118, 35, 72, 6, 126, 65, 0, 10, 69, 72, 240, 68, 36, 80, 21,
+			0, 10, 0, 0, 9, 198, 48, 20, 16, 4, 194, 69, 20, 15, 4, 95, 18, 14, 7, 49, 34, 6, 127, 58, 90, 109, 49, 0, 0, 0,
+			0, 0, 0, 13, 68, 105, 81, 5, 52, 132, 120, 6, 72, 126, 65, 0, 0, 0, 0, 0, 0, 0, 0, 20, 71, 77, 64, 76, 4, 115,
+			73, 80, 89, 47, 35, 55, 35, 81, 65, 6, 111, 47, 0, 16, 67, 4, 32, 128, 6, 35, 71, 71, 4, 111, 55, 72, 114, 68, 0, 0,
+			7, 196, 76, 241, 193, 72, 66, 0, 0, 0, 0, 9, 67, 104, 243, 205, 88, 120, 65, 0, 11, 68, 16, 145, 78, 80, 72, 118, 50, 47,
+			0, 0, 14, 69, 21, 36, 212, 20, 224, 126, 34, 89, 47, 13, 50, 0, 0, 0, 0, 0, 14, 69, 76, 83, 2, 77, 64, 88, 109, 55,
+			48, 89, 47, 0, 0, 18, 4, 95, 1, 3, 50, 72, 6, 113, 48, 13, 55, 35, 49, 4, 120, 47, 0, 0, 0, 0, 0, 9, 66, 60,
+			176, 127, 49, 6, 126, 0, 0, 0, 0, 18, 70, 88, 244, 136, 21, 34, 71, 83, 127, 34, 107, 6, 126, 34, 111, 134, 0, 14, 69, 52,
+			243, 148, 4, 112, 65, 127, 50, 47, 116, 49, 0, 0, 0, 10, 67, 76, 243, 12, 4, 88, 113, 55, 0, 0, 6, 195, 5, 34, 69, 20,
+			0, 0, 0, 0, 0, 0, 25, 3, 95, 194, 187, 6, 35, 50, 83, 128, 51, 114, 68, 89, 132, 4, 122, 99, 13, 50, 15, 132, 6, 120,
+			0, 0, 10, 199, 20, 33, 78, 24, 19, 12, 76, 8, 0, 11, 70, 72, 80, 197, 37, 97, 82, 21, 0, 10, 0, 0, 0, 0, 14, 68,
+			28, 81, 197, 56, 81, 126, 81, 13, 50, 0, 76, 8, 0, 0, 0, 0, 0, 0, 10, 66, 77, 64, 6, 109, 89, 47, 126, 0, 12, 6,
+			95, 15, 18, 4, 50, 48, 89, 47, 13, 0, 0, 5, 130, 196, 141, 43, 0, 0, 12, 201, 21, 133, 18, 5, 96, 71, 4, 229, 0, 65,
+			0, 0, 0, 0, 0, 11, 70, 88, 83, 148, 85, 33, 64, 21, 0, 10, 0, 0, 8, 67, 76, 86, 0, 21, 0, 10, 23, 68, 56, 144,
+			200, 80, 50, 6, 111, 99, 47, 15, 50, 6, 120, 34, 0, 8, 81, 110, 117, 114, 32, 24, 68, 56, 144, 200, 80, 50, 4, 111, 99, 47,
+			15, 65, 6, 126, 34, 0, 14, 81, 109, 101, 104, 114, 32, 23, 68, 56, 144, 200, 80, 50, 6, 111, 99, 47, 15, 4, 65, 126, 34, 0,
+			81, 109, 101, 104, 114, 32, 0, 9, 2, 194, 163, 48, 121, 50, 72, 0, 0, 0, 0, 17, 70, 21, 36, 212, 52, 19, 0, 126, 34, 89,
+			47, 65, 35, 12, 55, 0, 5, 130, 195, 166, 43, 0, 10, 69, 76, 245, 82, 12, 80, 21, 0, 10, 5, 130, 195, 167, 43, 0, 0, 0,
+			0, 0, 0, 0, 11, 70, 12, 243, 80, 85, 65, 82, 21, 0, 10, 0, 0, 0, 0, 7, 196, 16, 82, 78, 20, 76, 0, 0, 9, 2,
+			194, 176, 81, 34, 116, 47, 0, 0, 16, 70, 16, 162, 66, 61, 85, 9, 75, 37, 71, 6, 120, 47, 118, 0, 5, 130, 195, 169, 43, 17,
+			2, 194, 177, 48, 55, 6, 114, 89, 15, 65, 6, 118, 50, 114, 89, 0, 0, 0, 0, 9, 198, 5, 52, 8, 4, 197, 0, 66, 0, 18,
+			71, 5, 36, 129, 56, 114, 69, 72, 35, 34, 35, 68, 90, 6, 118, 13, 0, 18, 71, 5, 36, 5, 28, 114, 69, 72, 35, 34, 48, 109,
+			75, 6, 118, 34, 0, 8, 67, 64, 195, 212, 21, 0, 10, 0, 13, 4, 95, 3, 5, 4, 89, 126, 72, 6, 118, 57, 0, 0, 0, 0,
+			5, 130, 197, 161, 43, 16, 4, 95, 12, 9, 7, 55, 6, 118, 81, 35, 47, 4, 120, 108, 0, 0, 0, 0, 0, 0, 0, 13, 69, 28,
+			83, 210, 28, 80, 75, 113, 12, 34, 75, 0, 18, 7, 11, 195, 182, 14, 14, 5, 14, 4, 49, 131, 50, 13, 50, 0, 9, 12, 0, 0,
+			0, 0, 8, 67, 76, 227, 194, 21, 0, 10, 6, 195, 16, 82, 78, 76, 0, 0, 0, 0, 9, 198, 64, 20, 129, 16, 145, 83, 67, 0,
+			0, 10, 67, 16, 83, 64, 2, 72, 126, 65, 0, 0, 9, 68, 53, 148, 209, 48, 21, 0, 10, 5, 130, 197, 190, 43, 0, 0, 9, 198,
+			76, 243, 132, 21, 35, 128, 8, 0, 11, 4, 4, 1, 195, 159, 72, 35, 89, 0, 76, 0, 9, 68, 12, 128, 82, 80, 21, 0, 10, 7,
+			196, 76, 82, 78, 20, 76, 0, 16, 69, 76, 241, 66, 20, 224, 88, 127, 10, 6, 126, 71, 13, 50, 0, 0, 0, 0, 0, 0, 15, 6,
+			11, 195, 182, 14, 14, 20, 4, 49, 131, 50, 47, 0, 9, 0, 0, 8, 67, 9, 149, 5, 21, 0, 10, 12, 68, 16, 145, 83, 20, 72,
+			118, 88, 13, 0, 72, 0, 14, 69, 49, 80, 197, 57, 64, 55, 120, 89, 109, 50, 47, 0, 15, 69, 93, 84, 132, 21, 64, 84, 4, 114,
+			34, 72, 13, 47, 0, 15, 69, 92, 84, 132, 21, 64, 84, 4, 109, 34, 72, 13, 47, 0, 0, 0, 12, 71, 64, 83, 148, 32, 245, 83,
+			20, 21, 0, 10, 0, 0, 0, 11, 70, 29, 35, 213, 64, 145, 64, 21, 0, 10, 13, 4, 6, 195, 188, 18, 83, 128, 34, 0, 76, 8,
+			9, 0, 9, 198, 64, 84, 144, 48, 86, 0, 66, 0, 0, 13, 69, 17, 34, 84, 80, 80, 72, 34, 111, 47, 13, 0, 0, 0, 0, 9,
+			68, 76, 244, 146, 100, 21, 0, 10, 0, 0, 0, 8, 67, 12, 245, 80, 49, 120, 0, 0, 0, 0, 0, 0, 0, 0, 15, 70, 28, 84,
+			212, 21, 35, 128, 81, 109, 89, 47, 108, 50, 0, 17, 70, 93, 84, 132, 21, 53, 0, 84, 4, 114, 34, 72, 109, 89, 47, 0, 0, 0,
+			0, 11, 68, 44, 131, 69, 72, 49, 65, 126, 34, 0, 11, 68, 8, 81, 82, 20, 71, 126, 34, 13, 0, 9, 68, 81, 83, 133, 72, 21,
+			0, 10, 0, 0, 0, 0, 12, 68, 88, 244, 137, 28, 83, 127, 34, 111, 134, 0, 0, 0, 11, 70, 76, 48, 78, 56, 84, 128, 21, 0,
+			10, 0, 0, 13, 68, 92, 148, 147, 80, 84, 4, 111, 34, 89, 47, 0, 0, 0, 10, 135, 16, 18, 195, 164, 13, 9, 5, 20, 16, 70,
+			32, 84, 130, 21, 33, 192, 107, 109, 34, 71, 109, 34, 81, 0, 0, 0, 0, 0, 0, 29, 75, 65, 35, 194, 48, 83, 65, 80, 148, 201,
+			21, 32, 48, 34, 127, 71, 55, 126, 65, 6, 35, 12, 47, 111, 88, 118, 34, 0, 10, 199, 44, 20, 148, 60, 224, 71, 20, 20, 0, 0,
+			14, 69, 84, 228, 197, 72, 80, 114, 50, 88, 34, 13, 0, 72, 0, 0, 0, 14, 67, 4, 195, 7, 6, 35, 55, 81, 13, 65, 122, 50,
+			0, 11, 2, 95, 34, 132, 118, 47, 6, 116, 47, 0, 0, 20, 2, 95, 33, 6, 121, 89, 23, 34, 4, 120, 83, 13, 132, 4, 122, 99,
+			13, 50, 0, 0, 0, 15, 2, 95, 39, 4, 35, 48, 127, 89, 47, 34, 6, 113, 83, 0, 0, 8, 67, 76, 243, 135, 21, 0, 10, 0,
+			18, 70, 20, 228, 197, 52, 35, 5, 113, 50, 89, 6, 113, 65, 71, 13, 55, 0, 0, 0, 10, 67, 8, 147, 128, 71, 111, 50, 0, 72,
+			10, 67, 16, 83, 128, 2, 72, 126, 50, 0, 0, 13, 68, 92, 20, 149, 52, 84, 116, 34, 6, 114, 65, 0, 9, 68, 20, 208, 73, 48,
+			21, 0, 10, 12, 4, 95, 3, 1, 16, 81, 34, 6, 127, 89, 0, 0, 11, 67, 16, 83, 142, 72, 109, 50, 0, 76, 8, 15, 2, 95,
+			41, 49, 55, 6, 35, 65, 108, 15, 132, 6, 120, 0, 0, 17, 70, 105, 81, 197, 28, 83, 128, 132, 120, 81, 6, 126, 81, 13, 50, 0,
+			17, 70, 105, 81, 197, 28, 83, 128, 132, 120, 81, 6, 126, 81, 13, 50, 0, 16, 2, 95, 40, 49, 55, 6, 35, 65, 108, 15, 23, 6,
+			121, 83, 0, 0, 8, 67, 92, 244, 132, 21, 0, 10, 11, 67, 64, 84, 128, 48, 109, 34, 0, 76, 28, 15, 2, 95, 47, 91, 34, 6,
+			126, 81, 91, 47, 34, 111, 99, 0, 0, 17, 70, 36, 225, 5, 77, 49, 78, 111, 50, 72, 6, 109, 89, 13, 50, 0, 10, 2, 95, 46,
+			48, 114, 50, 49, 47, 0, 0, 17, 2, 95, 45, 71, 6, 111, 50, 72, 13, 89, 47, 34, 4, 111, 99, 0, 0, 9, 2, 95, 44, 49,
+			113, 65, 35, 0, 0, 10, 67, 16, 84, 128, 2, 72, 109, 34, 0, 9, 2, 95, 51, 6, 72, 34, 122, 0, 0, 9, 2, 95, 50, 6,
+			132, 84, 122, 0, 0, 10, 2, 95, 49, 10, 6, 122, 50, 89, 0, 0, 9, 2, 95, 48, 6, 50, 114, 55, 0, 0, 11, 2, 95, 55,
+			6, 88, 118, 71, 13, 50, 0, 0, 14, 68, 92, 20, 147, 80, 2, 84, 116, 34, 89, 47, 0, 9, 10, 2, 95, 54, 6, 88, 109, 49,
+			89, 0, 0, 10, 2, 95, 53, 6, 83, 129, 50, 83, 0, 0, 9, 2, 95, 52, 6, 83, 118, 34, 0, 0, 15, 67, 88, 115, 0, 83,
+			109, 34, 81, 55, 6, 122, 99, 13, 0, 16, 2, 95, 59, 91, 47, 34, 6, 111, 99, 48, 114, 68, 49, 47, 0, 0, 17, 2, 95, 58,
+			72, 6, 113, 48, 13, 55, 48, 4, 114, 68, 49, 47, 0, 0, 8, 197, 8, 150, 129, 73, 32, 66, 15, 69, 44, 19, 142, 77, 64, 4,
+			49, 35, 50, 89, 47, 0, 9, 9, 2, 95, 57, 6, 50, 124, 50, 0, 0, 10, 2, 95, 56, 6, 10, 35, 101, 47, 0, 0, 10, 67,
+			21, 36, 212, 126, 34, 89, 47, 0, 12, 71, 36, 229, 5, 72, 96, 67, 20, 21, 0, 10, 17, 2, 95, 63, 83, 34, 6, 117, 81, 13,
+			132, 4, 122, 99, 13, 50, 0, 0, 13, 68, 92, 244, 137, 56, 84, 127, 34, 6, 111, 50, 0, 10, 2, 95, 62, 81, 34, 130, 89, 108,
+			0, 0, 0, 10, 2, 95, 60, 49, 55, 122, 50, 108, 0, 0, 0, 0, 0, 0, 0, 10, 68, 56, 148, 195, 32, 50, 118, 91, 0, 19,
+			72, 52, 146, 210, 60, 98, 67, 32, 80, 65, 118, 49, 34, 127, 83, 118, 91, 0, 0, 0, 17, 70, 80, 83, 5, 28, 83, 128, 47, 126,
+			55, 126, 81, 6, 126, 50, 0, 0, 0, 9, 68, 52, 16, 200, 60, 21, 0, 10, 8, 196, 76, 245, 201, 20, 66, 8, 0, 0, 0, 0,
+			9, 68, 48, 20, 197, 72, 21, 0, 10, 7, 196, 52, 82, 78, 20, 76, 0, 14, 69, 88, 84, 133, 36, 224, 83, 109, 34, 6, 122, 50,
+			0, 0, 0, 0, 9, 68, 40, 242, 78, 80, 21, 0, 10, 0, 8, 197, 52, 243, 147, 84, 224, 66, 0, 6, 195, 56, 17, 197, 20, 0,
+			0, 13, 4, 95, 4, 15, 20, 48, 6, 114, 50, 49, 47, 0, 0, 0, 9, 198, 24, 85, 69, 73, 35, 212, 67, 0, 8, 67, 80, 80,
+			200, 21, 0, 10, 17, 67, 85, 49, 128, 2, 114, 50, 47, 88, 127, 83, 6, 113, 34, 47, 0, 22, 2, 95, 91, 6, 109, 49, 111, 81,
+			13, 49, 55, 6, 35, 65, 108, 15, 23, 6, 121, 83, 0, 0, 13, 68, 28, 83, 210, 28, 81, 126, 113, 34, 49, 0, 9, 0, 0, 8,
+			66, 76, 240, 88, 127, 0, 76, 0, 8, 67, 12, 128, 84, 21, 0, 10, 16, 2, 95, 95, 4, 114, 50, 47, 108, 91, 47, 34, 6, 111,
+			99, 0, 0, 16, 2, 95, 94, 132, 111, 34, 49, 114, 65, 83, 55, 109, 49, 89, 0, 0, 13, 69, 12, 194, 81, 84, 80, 49, 55, 111,
+			49, 13, 0, 10, 69, 60, 227, 9, 56, 80, 21, 0, 10, 21, 2, 95, 93, 6, 109, 49, 111, 81, 13, 49, 55, 6, 35, 65, 108, 15,
+			132, 6, 120, 0, 0, 8, 67, 12, 242, 197, 21, 0, 10, 0, 17, 70, 36, 229, 5, 72, 84, 211, 111, 50, 47, 13, 34, 6, 109, 89,
+			0, 8, 67, 12, 243, 204, 21, 0, 10, 0, 13, 68, 93, 84, 132, 20, 84, 4, 114, 34, 72, 13, 0, 12, 68, 84, 228, 197, 72, 114,
+			50, 88, 108, 0, 72, 22, 4, 95, 226, 128, 148, 81, 13, 72, 6, 35, 68, 49, 13, 50, 91, 47, 34, 4, 111, 99, 0, 0, 8, 197,
+			16, 18, 12, 36, 80, 20, 9, 198, 9, 35, 206, 12, 130, 69, 20, 10, 69, 41, 83, 139, 36, 80, 21, 0, 10, 0, 9, 2, 95, 96,
+			81, 34, 116, 84, 0, 0, 0, 8, 196, 17, 84, 131, 32, 76, 8, 0, 0, 0, 11, 67, 56, 16, 200, 50, 116, 101, 0, 76, 28, 0,
+			0, 0, 14, 4, 95, 7, 18, 22, 81, 34, 6, 116, 84, 111, 89, 0, 0, 0, 0, 8, 197, 8, 19, 11, 60, 224, 66, 0, 0, 12,
+			71, 72, 240, 83, 80, 33, 69, 24, 21, 0, 10, 11, 67, 8, 148, 192, 71, 111, 89, 0, 76, 8, 10, 67, 16, 84, 192, 2, 72, 109,
+			89, 0, 0, 7, 196, 84, 213, 197, 28, 65, 0, 14, 69, 76, 243, 12, 20, 224, 4, 88, 113, 55, 13, 50, 0, 0, 0, 0, 0, 16,
+			69, 32, 16, 133, 77, 64, 107, 116, 71, 109, 89, 47, 0, 9, 72, 0, 0, 13, 4, 95, 4, 9, 1, 6, 114, 65, 55, 121, 47, 0,
+			25, 2, 95, 123, 81, 13, 91, 84, 6, 122, 83, 47, 13, 49, 55, 6, 35, 65, 108, 15, 23, 6, 121, 83, 0, 0, 0, 0, 11, 70,
+			60, 97, 140, 36, 225, 64, 21, 0, 10, 9, 66, 84, 208, 114, 65, 0, 76, 28, 0, 11, 67, 8, 148, 212, 71, 111, 89, 47, 0, 72,
+			0, 0, 24, 2, 95, 125, 81, 13, 91, 84, 6, 122, 83, 47, 13, 49, 55, 6, 35, 65, 108, 15, 132, 6, 120, 0, 0, 8, 2, 95,
+			124, 48, 122, 48, 0, 0, 0, 9, 68, 5, 4, 12, 20, 21, 0, 10, 0, 0, 0, 0, 7, 196, 73, 84, 9, 20, 20, 11, 200, 64,
+			85, 5, 73, 50, 76, 36, 80, 20, 0, 10, 69, 4, 48, 197, 77, 48, 21, 0, 10, 0, 0, 0, 9, 68, 12, 245, 67, 32, 21, 0,
+			10, 13, 68, 16, 19, 73, 80, 72, 116, 65, 6, 111, 47, 0, 0, 11, 67, 84, 225, 0, 114, 50, 47, 0, 76, 8, 0, 0, 0, 0,
+			8, 197, 76, 245, 207, 32, 192, 66, 15, 69, 93, 84, 132, 20, 224, 84, 4, 114, 34, 72, 13, 50, 0, 16, 69, 92, 84, 132, 20, 224,
+			84, 4, 109, 34, 72, 13, 50, 0, 12, 0, 0, 0, 7, 196, 72, 148, 201, 44, 65, 13, 68, 4, 35, 210, 80, 35, 71, 6, 113, 34,
+			47, 0, 0, 9, 197, 60, 37, 207, 32, 192, 66, 8, 0, 9, 198, 16, 84, 200, 4, 192, 128, 66, 0, 0, 0, 14, 69, 40, 19, 149,
+			5, 32, 57, 35, 50, 120, 116, 34, 0, 8, 197, 32, 82, 77, 5, 64, 65, 0, 17, 4, 95, 35, 51, 50, 55, 6, 126, 34, 132, 6,
+			122, 99, 13, 50, 0, 0, 0, 0, 14, 69, 76, 243, 12, 77, 64, 4, 88, 113, 55, 89, 47, 0, 0, 0, 0, 0, 14, 69, 84, 228,
+			197, 72, 208, 114, 50, 89, 108, 65, 0, 72, 0, 0, 11, 67, 92, 147, 12, 2, 84, 111, 55, 0, 9, 0, 11, 200, 52, 20, 135, 36,
+			224, 76, 36, 80, 20, 0, 10, 69, 76, 147, 135, 48, 80, 21, 0, 10, 0, 9, 66, 105, 80, 132, 120, 0, 76, 28, 0, 0, 0, 0,
+			0, 0, 0, 0, 17, 70, 36, 229, 5, 72, 225, 84, 111, 50, 47, 13, 34, 50, 109, 47, 0, 0, 0, 0, 0, 0, 12, 71, 12, 19,
+			67, 61, 33, 5, 72, 21, 0, 10, 14, 67, 12, 132, 128, 49, 13, 34, 111, 89, 47, 114, 89, 0, 0, 0, 8, 197, 16, 19, 129, 12,
+			128, 66, 0, 0, 0, 0, 0, 0, 18, 67, 85, 53, 192, 2, 114, 50, 47, 88, 127, 84, 6, 122, 47, 108, 0, 8, 0, 0, 10, 69,
+			64, 244, 212, 21, 32, 21, 0, 10, 0, 0, 0, 7, 196, 81, 84, 137, 56, 66, 0, 14, 69, 32, 244, 147, 4, 208, 107, 113, 108, 88,
+			116, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 71, 36, 195, 5, 28, 149, 9, 52, 111, 55, 126, 81, 118, 47, 6, 118,
+			65, 0, 0, 0, 0, 0, 8, 67, 8, 32, 192, 21, 0, 10, 0, 0, 0, 0, 0, 8, 67, 12, 144, 79, 76, 121, 0, 8, 67, 76,
+			131, 215, 21, 0, 10, 9, 68, 24, 246, 69, 72, 21, 0, 10, 0, 0, 0, 7, 195, 92, 145, 64, 72, 8, 0, 0, 8, 197, 76, 241,
+			143, 73, 64, 66, 0, 11, 70, 52, 84, 211, 4, 113, 64, 21, 0, 10, 0, 10, 67, 76, 145, 64, 88, 118, 0, 72, 9, 0, 0, 10,
+			69, 13, 84, 147, 61, 32, 21, 0, 10, 0, 8, 66, 92, 240, 84, 4, 127, 0, 0, 0, 0, 8, 197, 29, 32, 90, 36, 80, 20, 0,
+			0, 20, 73, 5, 84, 199, 21, 48, 200, 4, 213, 0, 121, 89, 81, 13, 91, 116, 65, 47, 0, 0, 12, 68, 28, 84, 212, 20, 81, 126,
+			89, 47, 13, 0, 0, 0, 0, 9, 67, 80, 243, 64, 47, 113, 65, 0, 19, 71, 8, 19, 132, 4, 114, 69, 72, 71, 35, 50, 72, 35,
+			90, 6, 118, 13, 0, 10, 67, 44, 19, 64, 4, 49, 116, 65, 0, 0, 0, 0, 16, 70, 49, 81, 84, 37, 48, 200, 55, 120, 6, 126,
+			47, 111, 91, 0, 0, 0, 7, 196, 25, 84, 137, 20, 20, 0, 0, 16, 70, 56, 16, 200, 16, 83, 64, 50, 35, 101, 72, 6, 126, 65,
+			0, 0, 0, 9, 68, 48, 241, 201, 56, 21, 0, 10, 0, 0, 0, 11, 67, 4, 196, 192, 35, 55, 89, 0, 76, 28, 0, 6, 195, 4,
+			196, 207, 8, 0, 6, 195, 52, 82, 78, 76, 0, 0, 0, 0, 0, 11, 70, 76, 50, 69, 56, 49, 64, 21, 0, 10, 0, 0, 0, 0,
+			15, 70, 76, 84, 150, 36, 49, 64, 89, 109, 34, 84, 111, 89, 0, 9, 198, 8, 192, 77, 4, 113, 64, 20, 0, 0, 0, 0, 16, 70,
+			36, 195, 15, 100, 19, 0, 111, 55, 113, 35, 57, 116, 55, 0, 0, 0, 9, 198, 77, 80, 138, 20, 181, 0, 65, 0, 8, 197, 20, 33,
+			78, 76, 240, 65, 0, 0, 0, 0, 6, 18, 66, 108, 0, 114, 0, 7, 6, 18, 67, 99, 0, 102, 0, 104, 0, 107, 0, 112, 0, 113,
+			0, 115, 0, 116, 0, 122, 0, 7, 6, 18, 68, 195, 164, 0, 97, 0, 7, 6, 18, 69, 195, 182, 0, 111, 0, 7, 6, 99, 104, 0,
+			4, 1, 117, 102, 2, 115, 3, 49, 0, 2, 111, 114, 32, 0, 2, 111, 114, 100, 0, 2, 195, 182, 114, 0, 8, 2, 18, 66, 17, 65,
+			0, 8, 2, 111, 0, 97, 114, 97, 2, 107, 116, 3, 49, 2, 35, 34, 35, 0, 114, 111, 3, 49, 34, 127, 0, 115, 3, 49, 89, 0,
+			115, 116, 117, 1, 97, 119, 2, 109, 3, 49, 89, 47, 120, 0, 105, 112, 2, 32, 3, 76, 111, 48, 0, 4, 8, 2, 97, 3, 91, 0,
+			8, 2, 105, 99, 0, 8, 2, 105, 102, 0, 8, 2, 105, 108, 0, 97, 110, 99, 101, 3, 91, 138, 89, 13, 0, 4, 3, 99, 0, 1,
+			117, 101, 0, 1, 117, 164, 195, 0, 8, 2, 17, 65, 0, 4, 101, 110, 1, 17, 67, 2, 32, 14, 128, 128, 132, 3, 99, 13, 50, 0,
+			101, 110, 1, 101, 2, 32, 0, 101, 110, 1, 164, 195, 2, 32, 0, 101, 110, 1, 188, 195, 2, 32, 0, 115, 1, 164, 195, 110, 2, 116,
+			3, 99, 89, 0, 4, 1, 97, 3, 101, 0, 1, 101, 114, 98, 2, 101, 110, 0, 1, 111, 0, 1, 117, 0, 7, 6, 103, 101, 0, 8,
+			2, 111, 114, 103, 3, 81, 2, 126, 0, 111, 8, 3, 81, 4, 126, 127, 0, 4, 1, 115, 103, 110, 117, 2, 17, 67, 21, 3, 81, 13,
+			0, 2, 109, 97, 99, 104, 0, 2, 109, 97, 108, 0, 2, 114, 195, 164, 116, 0, 2, 116, 114, 0, 8, 2, 21, 14, 128, 132, 130, 0,
+			8, 2, 105, 109, 112, 0, 8, 2, 111, 114, 14, 128, 132, 130, 0, 98, 105, 114, 103, 101, 2, 32, 14, 128, 128, 135, 3, 81, 13, 71,
+			111, 34, 81, 13, 0, 4, 2, 114, 109, 97, 110, 3, 81, 109, 0, 2, 115, 116, 114, 105, 103, 0, 8, 2, 18, 66, 25, 0, 8, 2,
+			109, 25, 0, 8, 2, 110, 25, 0, 8, 2, 110, 101, 114, 0, 105, 2, 12, 3, 81, 122, 0, 4, 8, 2, 98, 101, 29, 3, 81, 126,
+			0, 104, 8, 2, 101, 29, 0, 104, 101, 110, 3, 81, 126, 13, 50, 0, 110, 101, 114, 97, 108, 2, 105, 115, 3, 81, 126, 50, 13, 34,
+			35, 55, 0, 110, 101, 114, 97, 108, 3, 81, 126, 50, 109, 34, 6, 35, 55, 0, 98, 101, 110, 3, 81, 126, 71, 13, 50, 0, 4, 103,
+			101, 110, 3, 81, 126, 81, 13, 50, 0, 103, 101, 110, 8, 2, 21, 14, 128, 132, 133, 0, 103, 110, 3, 81, 126, 81, 50, 0, 7, 6,
+			105, 101, 0, 4, 1, 10, 2, 114, 32, 3, 6, 118, 0, 1, 10, 2, 114, 108, 105, 99, 104, 0, 1, 21, 2, 32, 0, 1, 21, 2,
+			114, 101, 29, 0, 2, 114, 115, 21, 0, 4, 110, 1, 103, 21, 2, 32, 3, 6, 118, 13, 50, 0, 110, 1, 104, 112, 2, 32, 0, 110,
+			1, 109, 21, 2, 32, 0, 110, 1, 112, 21, 2, 32, 0, 110, 1, 114, 101, 115, 2, 32, 0, 110, 1, 114, 101, 116, 116, 2, 32, 0,
+			110, 1, 114, 111, 101, 2, 32, 0, 110, 1, 114, 111, 103, 2, 32, 0, 110, 1, 114, 116, 101, 2, 32, 0, 110, 1, 114, 116, 115, 117,
+			100, 2, 32, 0, 110, 1, 115, 21, 2, 32, 0, 110, 1, 116, 21, 2, 32, 0, 114, 117, 110, 103, 3, 6, 118, 34, 114, 68, 0, 114,
+			117, 110, 103, 115, 3, 6, 118, 34, 114, 68, 89, 0, 4, 1, 21, 2, 32, 28, 17, 3, 8, 111, 13, 0, 1, 100, 117, 116, 115, 2,
+			32, 0, 1, 108, 97, 109, 114, 111, 102, 0, 1, 108, 105, 109, 97, 102, 0, 1, 108, 111, 102, 2, 32, 0, 1, 114, 101, 102, 2, 110,
+			0, 1, 114, 101, 116, 107, 97, 98, 0, 110, 1, 10, 2, 32, 3, 8, 111, 13, 50, 0, 110, 115, 1, 10, 2, 32, 3, 8, 111, 38,
+			13, 50, 89, 0, 4, 110, 1, 98, 10, 2, 32, 3, 8, 118, 13, 50, 0, 110, 1, 114, 10, 2, 32, 0, 1, 117, 2, 114, 32, 3,
+			23, 6, 118, 0, 1, 10, 2, 108, 108, 32, 3, 111, 6, 109, 0, 110, 116, 2, 32, 3, 111, 6, 109, 50, 47, 0, 110, 122, 1, 10,
+			2, 32, 3, 111, 6, 109, 50, 132, 0, 4, 1, 99, 110, 97, 110, 105, 102, 2, 114, 3, 111, 6, 126, 0, 1, 103, 121, 104, 2, 110,
+			0, 1, 107, 110, 97, 98, 2, 114, 0, 1, 108, 97, 116, 105, 2, 110, 0, 1, 108, 101, 116, 111, 104, 2, 114, 0, 1, 109, 101, 114,
+			112, 2, 114, 0, 1, 114, 114, 97, 2, 114, 0, 1, 114, 114, 97, 98, 2, 114, 0, 1, 110, 105, 2, 32, 3, 111, 13, 0, 110, 1,
+			110, 10, 2, 32, 3, 111, 13, 50, 0, 110, 1, 114, 2, 21, 3, 111, 109, 50, 0, 4, 3, 118, 0, 1, 104, 99, 115, 2, 110, 0,
+			104, 0, 110, 115, 116, 1, 100, 3, 118, 50, 89, 47, 0, 7, 6, 195, 159, 0, 3, 89, 0, 8, 2, 32, 3, 109, 89, 132, 109, 47,
+			0, 7, 6, 195, 164, 0, 2, 117, 109, 32, 24, 3, 6, 125, 0, 116, 1, 116, 2, 32, 3, 6, 125, 47, 0, 4, 2, 17, 67, 11,
+			3, 109, 0, 2, 17, 67, 17, 67, 0, 2, 115, 99, 104, 0, 117, 3, 124, 0, 4, 3, 125, 0, 104, 2, 12, 0, 98, 2, 116, 32,
+			3, 125, 48, 0, 103, 2, 116, 32, 3, 125, 49, 0, 7, 6, 195, 182, 0, 2, 32, 3, 6, 130, 0, 4, 3, 130, 0, 104, 2, 12,
+			0, 4, 2, 17, 67, 11, 3, 131, 0, 2, 17, 67, 17, 67, 0, 2, 115, 99, 104, 0, 7, 6, 195, 188, 0, 98, 101, 114, 8, 2,
+			98, 101, 21, 14, 128, 132, 132, 3, 11, 6, 128, 71, 108, 0, 98, 101, 114, 8, 2, 21, 14, 128, 132, 132, 3, 23, 4, 128, 71, 108,
+			0, 4, 3, 128, 0, 104, 2, 12, 0, 98, 2, 116, 32, 3, 128, 48, 0, 103, 2, 116, 32, 3, 128, 49, 0, 98, 101, 114, 8, 2,
+			103, 97, 110, 103, 115, 3, 128, 71, 108, 0, 4, 2, 17, 67, 11, 3, 129, 0, 2, 17, 67, 17, 67, 0, 2, 115, 99, 104, 0, 2,
+			120, 0, 7, 6, 97, 0, 114, 99, 104, 97, 8, 2, 105, 3, 2, 35, 34, 99, 117, 0, 116, 111, 8, 2, 109, 3, 2, 35, 47, 127,
+			0, 4, 98, 8, 2, 110, 111, 114, 3, 2, 35, 48, 0, 98, 8, 2, 115, 111, 0, 98, 8, 2, 115, 111, 114, 0, 98, 8, 2, 115,
+			116, 114, 0, 98, 8, 2, 115, 117, 114, 0, 107, 113, 117, 3, 2, 35, 49, 84, 0, 110, 8, 2, 97, 3, 2, 35, 50, 0, 110, 105,
+			8, 2, 115, 3, 2, 35, 50, 118, 0, 98, 98, 8, 2, 97, 3, 2, 35, 71, 0, 117, 115, 116, 114, 97, 2, 108, 3, 2, 121, 89,
+			47, 34, 117, 0, 112, 112, 101, 8, 2, 108, 108, 21, 3, 4, 35, 48, 109, 0, 110, 116, 104, 114, 111, 112, 111, 8, 3, 4, 35, 50,
+			47, 34, 127, 48, 2, 127, 0, 110, 116, 105, 8, 2, 21, 14, 128, 132, 132, 3, 4, 35, 50, 47, 111, 0, 110, 116, 105, 8, 2, 21,
+			14, 128, 132, 132, 3, 4, 35, 50, 47, 118, 0, 110, 105, 109, 8, 3, 4, 35, 50, 118, 65, 0, 110, 105, 109, 97, 108, 8, 3, 4,
+			35, 50, 118, 65, 116, 55, 0, 110, 103, 108, 111, 8, 2, 21, 3, 4, 35, 68, 81, 55, 127, 0, 4, 108, 1, 110, 97, 107, 10, 2,
+			32, 3, 4, 116, 55, 0, 108, 1, 110, 103, 105, 115, 10, 2, 32, 0, 1, 114, 103, 2, 109, 109, 32, 3, 6, 35, 0, 98, 8, 2,
+			101, 114, 21, 14, 128, 132, 130, 3, 6, 35, 48, 0, 98, 122, 117, 8, 2, 21, 14, 128, 132, 132, 3, 6, 35, 48, 132, 120, 0, 4,
+			99, 104, 115, 8, 2, 21, 14, 128, 132, 132, 3, 6, 35, 49, 89, 0, 99, 104, 115, 8, 2, 101, 108, 0, 4, 110, 1, 110, 105, 101,
+			2, 100, 101, 114, 3, 6, 35, 50, 0, 110, 8, 2, 21, 14, 128, 132, 130, 0, 110, 8, 2, 110, 18, 68, 104, 14, 128, 132, 130, 0,
+			110, 8, 2, 110, 97, 100, 14, 128, 132, 130, 0, 110, 116, 1, 21, 2, 32, 3, 6, 35, 50, 47, 0, 108, 108, 101, 114, 8, 2, 21,
+			14, 128, 132, 133, 3, 6, 35, 55, 13, 34, 0, 4, 1, 21, 2, 98, 101, 108, 32, 3, 6, 116, 0, 1, 21, 2, 98, 108, 32, 0,
+			2, 17, 67, 111, 32, 0, 2, 114, 99, 104, 32, 0, 8, 2, 110, 97, 116, 105, 111, 14, 128, 132, 129, 0, 4, 114, 1, 108, 21, 2,
+			32, 3, 6, 116, 34, 0, 114, 1, 116, 21, 2, 32, 0, 114, 105, 101, 114, 2, 32, 24, 3, 6, 116, 34, 118, 108, 0, 116, 1, 21,
+			2, 32, 3, 6, 116, 47, 0, 116, 105, 115, 99, 104, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 116, 47, 111, 91, 0, 110, 1, 21,
+			2, 32, 3, 6, 116, 50, 0, 110, 105, 101, 114, 2, 32, 24, 3, 6, 116, 50, 118, 108, 0, 4, 108, 1, 17, 65, 21, 2, 32, 3,
+			6, 116, 55, 0, 108, 1, 98, 2, 32, 0, 108, 1, 103, 2, 32, 0, 108, 1, 107, 2, 32, 0, 108, 1, 110, 2, 32, 0, 108, 1,
+			114, 2, 32, 0, 108, 1, 116, 2, 32, 0, 109, 1, 114, 101, 107, 2, 105, 107, 3, 6, 116, 65, 0, 4, 103, 101, 2, 32, 28, 17,
+			3, 6, 116, 90, 13, 0, 103, 101, 2, 110, 32, 28, 33, 0, 110, 99, 101, 1, 115, 2, 32, 3, 6, 138, 89, 0, 110, 99, 101, 1,
+			114, 102, 2, 32, 3, 6, 138, 89, 13, 0, 110, 99, 101, 110, 1, 115, 2, 32, 3, 6, 138, 89, 13, 50, 0, 1, 17, 67, 17, 67,
+			10, 2, 32, 3, 8, 116, 0, 4, 98, 8, 2, 17, 67, 21, 14, 128, 132, 130, 3, 11, 6, 35, 48, 0, 98, 8, 2, 17, 67, 21,
+			14, 128, 132, 130, 0, 98, 8, 2, 195, 164, 14, 128, 132, 130, 0, 117, 102, 8, 2, 21, 14, 128, 132, 131, 3, 11, 6, 121, 83, 0,
+			117, 115, 8, 2, 21, 14, 128, 132, 131, 3, 11, 6, 121, 89, 0, 105, 114, 8, 3, 21, 0, 4, 2, 17, 67, 11, 3, 35, 0, 2,
+			17, 67, 17, 67, 0, 2, 105, 115, 105, 101, 114, 0, 2, 115, 99, 104, 0, 2, 116, 105, 111, 110, 0, 2, 120, 0, 100, 8, 2, 106,
+			117, 3, 35, 47, 0, 4, 98, 8, 2, 105, 3, 35, 48, 0, 98, 8, 2, 106, 0, 98, 8, 2, 115, 101, 0, 98, 8, 2, 115, 122,
+			0, 98, 8, 2, 111, 114, 3, 35, 48, 23, 0, 98, 100, 8, 2, 12, 3, 35, 48, 72, 0, 4, 110, 8, 2, 100, 101, 114, 3, 35,
+			50, 0, 110, 8, 2, 116, 101, 110, 0, 110, 8, 2, 116, 104, 0, 110, 8, 2, 116, 119, 0, 110, 110, 8, 0, 110, 97, 116, 104, 8,
+			3, 35, 50, 35, 47, 0, 110, 104, 101, 105, 109, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 35, 50, 107, 6, 122, 65, 0, 110, 103,
+			108, 105, 8, 2, 17, 67, 3, 35, 68, 81, 55, 118, 0, 98, 98, 8, 2, 114, 101, 118, 3, 35, 71, 0, 98, 101, 114, 114, 8, 3,
+			35, 71, 23, 109, 34, 0, 99, 8, 2, 101, 116, 3, 35, 132, 0, 101, 2, 17, 67, 17, 67, 3, 109, 0, 105, 110, 1, 114, 116, 3,
+			109, 50, 0, 4, 1, 108, 21, 2, 103, 3, 116, 0, 1, 108, 99, 115, 2, 103, 0, 1, 114, 112, 115, 2, 99, 104, 0, 1, 115, 2,
+			103, 0, 1, 115, 2, 109, 32, 0, 1, 115, 2, 109, 107, 101, 105, 116, 0, 2, 17, 67, 32, 0, 2, 32, 0, 2, 112, 104, 0, 8,
+			2, 32, 0, 97, 0, 104, 2, 12, 0, 116, 105, 115, 105, 101, 114, 101, 110, 1, 21, 2, 32, 14, 128, 128, 137, 3, 116, 47, 111, 89,
+			6, 118, 34, 13, 50, 0, 98, 2, 116, 32, 3, 116, 48, 0, 4, 103, 1, 106, 2, 100, 3, 116, 49, 0, 103, 1, 108, 104, 99, 115,
+			2, 103, 101, 0, 103, 2, 116, 32, 0, 1, 109, 2, 108, 116, 32, 3, 116, 55, 0, 98, 101, 110, 8, 2, 100, 3, 116, 71, 13, 50,
+			0, 101, 108, 3, 116, 109, 55, 0, 105, 2, 115, 99, 104, 3, 116, 111, 0, 3, 117, 0, 4, 117, 3, 121, 0, 117, 8, 2, 17, 67,
+			101, 105, 110, 97, 110, 100, 0, 117, 104, 2, 32, 0, 117, 116, 104, 101, 110, 8, 3, 121, 47, 109, 50, 0, 117, 102, 101, 110, 116, 8,
+			3, 121, 83, 13, 50, 47, 0, 117, 115, 8, 2, 107, 117, 3, 121, 89, 0, 4, 105, 3, 122, 0, 121, 0, 4, 105, 114, 1, 109, 2,
+			32, 3, 122, 108, 0, 121, 114, 1, 109, 2, 32, 0, 4, 121, 1, 112, 3, 123, 0, 121, 2, 32, 24, 0, 101, 3, 125, 0, 105, 114,
+			2, 32, 3, 125, 34, 0, 7, 6, 98, 0, 1, 98, 3, 0, 4, 97, 98, 121, 3, 21, 0, 105, 107, 101, 8, 0, 108, 117, 101, 8,
+			0, 111, 97, 114, 100, 0, 111, 111, 109, 8, 0, 4, 2, 18, 67, 3, 48, 0, 2, 32, 24, 0, 8, 111, 2, 17, 67, 0, 116, 2,
+			32, 24, 3, 48, 47, 0, 4, 3, 71, 0, 2, 115, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 101, 17, 68, 17, 67, 0,
+			8, 2, 101, 98, 17, 67, 0, 8, 2, 101, 99, 17, 67, 0, 8, 2, 101, 101, 116, 0, 8, 2, 101, 110, 122, 105, 110, 0, 8, 2,
+			101, 114, 17, 67, 0, 8, 2, 101, 115, 101, 110, 0, 8, 2, 101, 115, 115, 0, 8, 2, 101, 115, 116, 101, 110, 0, 8, 2, 101, 117,
+			103, 0, 8, 2, 101, 117, 108, 0, 8, 2, 101, 117, 116, 0, 8, 2, 106, 17, 65, 0, 4, 97, 8, 2, 108, 17, 65, 3, 71, 2,
+			35, 0, 97, 8, 2, 108, 108, 21, 0, 105, 115, 8, 2, 104, 14, 128, 132, 131, 3, 71, 2, 111, 89, 0, 101, 111, 8, 2, 98, 3,
+			71, 4, 13, 127, 0, 117, 110, 100, 101, 115, 8, 3, 71, 6, 114, 50, 72, 13, 89, 0, 101, 105, 8, 3, 71, 6, 122, 0, 4, 101,
+			1, 110, 101, 17, 67, 10, 2, 17, 67, 21, 3, 71, 13, 0, 101, 1, 115, 103, 110, 117, 2, 17, 67, 21, 0, 101, 2, 114, 101, 105,
+			99, 104, 0, 101, 8, 2, 21, 14, 128, 132, 130, 0, 101, 8, 2, 105, 110, 104, 14, 128, 132, 130, 0, 101, 8, 2, 17, 67, 11, 3,
+			71, 109, 0, 101, 115, 116, 105, 97, 3, 71, 109, 89, 47, 118, 6, 116, 0, 97, 114, 1, 10, 2, 32, 14, 128, 128, 131, 3, 71, 116,
+			34, 0, 97, 114, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 71, 116, 34, 13, 0, 97, 114, 101, 110, 1, 10, 2, 32, 14, 128, 128,
+			133, 3, 71, 116, 34, 13, 50, 0, 97, 114, 101, 109, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71, 116, 34, 13, 65, 0, 97, 114, 101,
+			115, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71, 116, 34, 13, 89, 0, 97, 114, 101, 114, 1, 10, 2, 32, 14, 128, 128, 133, 3, 71,
+			116, 34, 108, 0, 101, 105, 103, 101, 8, 2, 21, 3, 71, 122, 81, 13, 0, 8, 2, 32, 3, 71, 126, 0, 101, 116, 101, 110, 3, 71,
+			126, 47, 13, 50, 0, 101, 105, 103, 101, 8, 2, 32, 3, 71, 126, 91, 0, 111, 2, 115, 104, 3, 71, 127, 0, 7, 6, 99, 0, 1,
+			99, 3, 0, 4, 111, 97, 116, 2, 32, 3, 21, 0, 111, 119, 8, 0, 114, 101, 119, 0, 117, 112, 0, 4, 3, 49, 0, 8, 2, 18,
+			66, 17, 65, 0, 107, 0, 111, 109, 112, 117, 116, 101, 114, 8, 2, 21, 14, 128, 132, 128, 3, 49, 113, 65, 48, 57, 6, 120, 47, 108,
+			0, 111, 100, 101, 8, 3, 49, 127, 47, 0, 4, 2, 105, 101, 3, 89, 0, 2, 121, 0, 121, 98, 101, 114, 8, 3, 89, 122, 71, 108,
+			0, 8, 2, 32, 3, 89, 126, 0, 104, 101, 102, 2, 32, 3, 91, 109, 83, 0, 4, 1, 97, 102, 2, 101, 116, 3, 132, 0, 1, 97,
+			108, 112, 2, 105, 101, 0, 8, 2, 101, 108, 0, 8, 2, 101, 110, 116, 0, 101, 121, 8, 3, 132, 122, 0, 7, 6, 100, 0, 1, 100,
+			3, 0, 4, 101, 97, 108, 8, 3, 21, 0, 101, 115, 105, 103, 110, 0, 103, 101, 2, 32, 0, 114, 105, 118, 101, 0, 114, 117, 103, 8,
+			0, 4, 2, 18, 67, 3, 47, 0, 2, 32, 24, 0, 100, 116, 0, 116, 0, 4, 3, 72, 0, 1, 110, 117, 111, 115, 0, 2, 115, 17,
+			65, 0, 8, 2, 114, 17, 65, 0, 8, 2, 115, 99, 104, 17, 65, 0, 8, 2, 115, 104, 17, 65, 0, 4, 117, 114, 99, 104, 8, 2,
 			98, 3, 72, 2, 114, 34, 99, 0, 117, 114, 99, 104, 8, 2, 102, 0, 117, 114, 99, 104, 8, 2, 107, 114, 0, 117, 114, 99, 104, 8,
 			2, 108, 97, 0, 117, 114, 99, 104, 8, 2, 115, 99, 104, 97, 117, 0, 117, 114, 99, 104, 8, 2, 115, 116, 0, 117, 114, 99, 104, 8,
 			2, 115, 117, 0, 117, 114, 99, 104, 8, 2, 116, 114, 101, 0, 117, 114, 99, 104, 8, 2, 119, 0, 117, 114, 99, 104, 113, 117, 101, 8,
@@ -12562,19 +11492,19 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			47, 0, 101, 104, 114, 8, 2, 17, 67, 21, 14, 128, 132, 132, 3, 55, 6, 126, 34, 0, 111, 1, 21, 2, 103, 105, 115, 99, 104, 3,
 			55, 6, 127, 0, 101, 120, 105, 8, 2, 21, 3, 55, 109, 49, 89, 118, 0, 101, 98, 8, 2, 17, 67, 3, 55, 126, 48, 0, 101, 98,
 			101, 110, 8, 2, 100, 105, 103, 3, 55, 126, 71, 6, 109, 50, 0, 8, 2, 32, 3, 109, 55, 0, 105, 99, 104, 1, 10, 2, 32, 14,
-			128, 128, 132, 3, 138, 111, 99, 0, 105, 99, 104, 117, 110, 103, 1, 10, 2, 32, 14, 128, 128, 135, 3, 138, 111, 99, 2, 114, 68, 0,
-			105, 99, 104, 101, 1, 10, 2, 32, 14, 128, 128, 133, 3, 138, 111, 99, 13, 0, 105, 99, 104, 101, 114, 101, 1, 10, 2, 32, 14, 128,
-			128, 135, 3, 138, 111, 99, 13, 34, 13, 0, 105, 99, 104, 101, 114, 101, 110, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 13,
-			34, 13, 50, 0, 105, 99, 104, 101, 114, 101, 109, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 13, 34, 13, 65, 0, 105, 99,
-			104, 101, 114, 101, 115, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 13, 34, 13, 89, 0, 105, 99, 104, 101, 114, 101, 114, 1,
-			10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 13, 34, 13, 108, 0, 105, 99, 104, 101, 110, 1, 10, 2, 32, 14, 128, 128, 134, 3,
-			138, 111, 99, 13, 50, 0, 105, 99, 104, 101, 109, 1, 10, 2, 32, 14, 128, 128, 134, 3, 138, 111, 99, 13, 65, 0, 105, 99, 104, 101,
-			115, 1, 10, 2, 32, 14, 128, 128, 134, 3, 138, 111, 99, 13, 89, 0, 105, 99, 104, 107, 101, 105, 116, 1, 10, 2, 32, 14, 128, 128,
-			136, 3, 138, 111, 99, 49, 122, 47, 0, 105, 99, 104, 115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 138, 111, 99, 89, 47, 13,
-			0, 105, 99, 104, 115, 116, 101, 114, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 89, 47, 13, 34, 0, 105, 99, 104, 115, 116,
-			101, 110, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138, 111, 99, 89, 47, 13, 50, 0, 105, 99, 104, 115, 116, 101, 109, 1, 10, 2, 32,
-			14, 128, 128, 136, 3, 138, 111, 99, 89, 47, 13, 65, 0, 105, 99, 104, 115, 116, 101, 115, 1, 10, 2, 32, 14, 128, 128, 136, 3, 138,
-			111, 99, 89, 47, 13, 89, 0, 105, 99, 104, 101, 114, 1, 10, 2, 32, 14, 128, 128, 134, 3, 138, 111, 99, 108, 0, 7, 6, 109, 0,
+			128, 128, 132, 3, 139, 111, 99, 0, 105, 99, 104, 117, 110, 103, 1, 10, 2, 32, 14, 128, 128, 135, 3, 139, 111, 99, 2, 114, 68, 0,
+			105, 99, 104, 101, 1, 10, 2, 32, 14, 128, 128, 133, 3, 139, 111, 99, 13, 0, 105, 99, 104, 101, 114, 101, 1, 10, 2, 32, 14, 128,
+			128, 135, 3, 139, 111, 99, 13, 34, 13, 0, 105, 99, 104, 101, 114, 101, 110, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 13,
+			34, 13, 50, 0, 105, 99, 104, 101, 114, 101, 109, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 13, 34, 13, 65, 0, 105, 99,
+			104, 101, 114, 101, 115, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 13, 34, 13, 89, 0, 105, 99, 104, 101, 114, 101, 114, 1,
+			10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 13, 34, 13, 108, 0, 105, 99, 104, 101, 110, 1, 10, 2, 32, 14, 128, 128, 134, 3,
+			139, 111, 99, 13, 50, 0, 105, 99, 104, 101, 109, 1, 10, 2, 32, 14, 128, 128, 134, 3, 139, 111, 99, 13, 65, 0, 105, 99, 104, 101,
+			115, 1, 10, 2, 32, 14, 128, 128, 134, 3, 139, 111, 99, 13, 89, 0, 105, 99, 104, 107, 101, 105, 116, 1, 10, 2, 32, 14, 128, 128,
+			136, 3, 139, 111, 99, 49, 122, 47, 0, 105, 99, 104, 115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 139, 111, 99, 89, 47, 13,
+			0, 105, 99, 104, 115, 116, 101, 114, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 89, 47, 13, 34, 0, 105, 99, 104, 115, 116,
+			101, 110, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139, 111, 99, 89, 47, 13, 50, 0, 105, 99, 104, 115, 116, 101, 109, 1, 10, 2, 32,
+			14, 128, 128, 136, 3, 139, 111, 99, 89, 47, 13, 65, 0, 105, 99, 104, 115, 116, 101, 115, 1, 10, 2, 32, 14, 128, 128, 136, 3, 139,
+			111, 99, 89, 47, 13, 89, 0, 105, 99, 104, 101, 114, 1, 10, 2, 32, 14, 128, 128, 134, 3, 139, 111, 99, 108, 0, 7, 6, 109, 0,
 			1, 109, 3, 0, 4, 105, 99, 114, 111, 8, 3, 21, 0, 115, 8, 0, 4, 3, 65, 0, 8, 2, 110, 101, 109, 0, 111, 8, 2, 114,
 			98, 3, 65, 2, 113, 0, 117, 115, 105, 107, 3, 65, 2, 120, 88, 118, 49, 0, 4, 101, 116, 8, 2, 97, 108, 108, 3, 65, 2, 126,
 			47, 0, 101, 116, 104, 8, 0, 101, 110, 97, 103, 8, 3, 65, 2, 126, 50, 116, 90, 0, 105, 107, 114, 111, 8, 2, 21, 14, 128, 132,
@@ -12754,149 +11684,276 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			3, 65, 118, 50, 114, 89, 0, 36, 3, 72, 113, 55, 6, 116, 0, 196, 141, 3, 76, 0, 195, 167, 3, 89, 0, 197, 190, 3, 90, 0,
 			197, 161, 3, 91, 0, 45, 1, 32, 15, 2, 32, 15, 3, 91, 47, 34, 111, 99, 0, 195, 166, 3, 109, 0, 195, 169, 3, 126, 0, 195,
 			184, 3, 131, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts12 = FileInMemory_createWithData (21816, reinterpret_cast<const char *> (&espeakdata_dicts12_data), 
-			U"espeak-1.48.04-source/espeak-data/de_dict", 
+		autoFileInMemory espeakdata_dicts11 = FileInMemory_createWithData (21636, reinterpret_cast<const char *> (&espeakdata_dicts11_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/de_dict", 
 			U"de");
-		my addItem_move (espeakdata_dicts12.move());
+		Collection_addItem (me.peek(), espeakdata_dicts11.transfer());
+
+		static unsigned char espeakdata_dicts12_data[3607] = {
+			0, 4, 0, 0, 154, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 14, 3, 95, 51, 57, 122, 50, 47, 118, 55, 6, 113, 89, 0, 12, 3, 95, 50, 49, 113, 49, 12, 6, 113, 89, 0, 0,
+			12, 3, 95, 51, 56, 35, 34, 47, 6, 113, 89, 0, 10, 3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11, 3, 95, 50, 51, 47, 6,
+			114, 113, 89, 0, 0, 11, 3, 95, 50, 50, 71, 6, 118, 113, 89, 0, 0, 13, 3, 95, 50, 53, 48, 13, 80, 12, 6, 113, 89, 0,
+			0, 12, 3, 95, 50, 52, 80, 6, 120, 71, 113, 89, 0, 0, 14, 3, 95, 50, 55, 89, 13, 47, 12, 6, 118, 113, 89, 0, 0, 14,
+			3, 95, 50, 54, 144, 13, 71, 71, 6, 112, 34, 89, 0, 0, 14, 3, 95, 51, 49, 113, 49, 13, 47, 12, 6, 113, 89, 0, 0, 10,
+			3, 95, 51, 48, 47, 6, 112, 89, 0, 0, 12, 3, 95, 51, 51, 47, 127, 47, 6, 113, 89, 0, 0, 13, 3, 95, 51, 50, 71, 35,
+			47, 12, 6, 113, 89, 0, 0, 12, 3, 95, 51, 53, 48, 127, 47, 6, 113, 89, 0, 0, 12, 3, 95, 51, 52, 80, 130, 47, 6, 113,
+			89, 0, 0, 12, 3, 95, 51, 55, 89, 127, 47, 6, 113, 89, 0, 0, 13, 3, 95, 51, 54, 144, 35, 87, 6, 47, 113, 89, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 55, 57, 4, 122, 67, 113, 118, 89, 6, 112, 0,
+			12, 3, 95, 54, 49, 6, 113, 49, 89, 13, 142, 0, 0, 16, 3, 95, 55, 56, 35, 138, 107, 35, 47, 12, 6, 109, 34, 12, 0, 10,
+			3, 95, 54, 48, 89, 6, 118, 142, 0, 0, 14, 3, 95, 48, 67, 89, 35, 6, 138, 36, 113, 49, 35, 0, 13, 3, 95, 54, 51, 47,
+			6, 113, 34, 89, 13, 142, 0, 0, 12, 3, 95, 54, 50, 71, 6, 118, 89, 13, 142, 0, 0, 12, 3, 95, 54, 53, 48, 134, 50, 89,
+			13, 142, 0, 0, 12, 3, 95, 54, 52, 80, 6, 130, 89, 13, 142, 0, 0, 13, 3, 95, 54, 55, 89, 6, 109, 34, 89, 13, 142, 0,
+			0, 14, 3, 95, 54, 54, 144, 6, 113, 57, 118, 89, 13, 142, 0, 0, 15, 3, 95, 55, 49, 113, 146, 35, 47, 12, 6, 109, 34, 12,
+			0, 0, 14, 3, 95, 55, 48, 89, 35, 47, 12, 6, 109, 34, 12, 0, 0, 16, 3, 95, 55, 51, 47, 113, 107, 35, 47, 12, 6, 109,
+			34, 12, 0, 0, 16, 3, 95, 55, 50, 71, 13, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 17, 3, 95, 55, 53, 48, 35, 144, 4,
+			35, 47, 12, 6, 109, 34, 12, 0, 0, 16, 3, 95, 55, 52, 80, 120, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 18, 3, 95, 55,
+			55, 89, 13, 47, 13, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 16, 3, 95, 55, 54, 144, 113, 107, 35, 47, 12, 6, 109, 34, 12,
+			0, 0, 12, 3, 95, 49, 57, 122, 50, 50, 6, 113, 89, 0, 0, 13, 3, 95, 49, 56, 109, 142, 12, 6, 118, 34, 111, 0, 0, 0,
+			0, 0, 0, 0, 0, 12, 3, 95, 50, 57, 122, 50, 47, 6, 113, 89, 0, 15, 3, 95, 49, 49, 36, 6, 81, 57, 6, 118, 34, 13,
+			17, 0, 0, 13, 3, 95, 50, 56, 35, 138, 12, 6, 118, 113, 89, 0, 13, 3, 95, 49, 48, 72, 6, 37, 107, 35, 36, 113, 0, 0,
+			11, 3, 95, 49, 51, 47, 6, 115, 34, 111, 0, 0, 11, 3, 95, 49, 50, 71, 6, 35, 34, 111, 0, 0, 13, 3, 95, 49, 53, 48,
+			6, 109, 50, 72, 34, 111, 0, 0, 11, 3, 95, 49, 52, 144, 6, 120, 72, 111, 0, 0, 13, 3, 95, 49, 55, 89, 6, 109, 47, 12,
+			34, 111, 0, 0, 11, 3, 95, 49, 54, 89, 6, 119, 55, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 57, 6,
+			122, 67, 80, 118, 89, 0, 0, 14, 3, 95, 52, 56, 35, 34, 47, 118, 55, 6, 113, 89, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3,
+			95, 53, 57, 122, 50, 89, 6, 109, 138, 0, 14, 3, 95, 52, 49, 113, 49, 47, 118, 55, 6, 113, 89, 0, 0, 14, 3, 95, 53, 56,
+			35, 138, 12, 6, 118, 58, 13, 50, 0, 12, 3, 95, 52, 48, 80, 118, 55, 6, 113, 89, 0, 0, 14, 3, 95, 52, 51, 47, 127, 47,
+			118, 55, 6, 113, 89, 0, 0, 13, 3, 95, 52, 50, 71, 134, 118, 55, 6, 113, 89, 0, 0, 16, 3, 95, 52, 53, 48, 134, 6, 50,
+			47, 118, 55, 6, 113, 89, 0, 0, 14, 3, 95, 52, 52, 80, 120, 58, 118, 55, 6, 113, 89, 0, 0, 14, 3, 95, 52, 55, 89, 127,
+			47, 118, 55, 6, 113, 89, 0, 0, 15, 3, 95, 52, 54, 144, 107, 113, 57, 118, 55, 6, 113, 89, 0, 0, 18, 3, 95, 54, 57, 122,
+			50, 13, 107, 4, 35, 47, 12, 6, 109, 34, 12, 0, 14, 3, 95, 53, 49, 113, 49, 57, 6, 118, 58, 109, 50, 0, 0, 11, 3, 95,
+			54, 56, 35, 34, 89, 13, 142, 0, 12, 3, 95, 53, 48, 48, 13, 80, 6, 118, 89, 0, 0, 13, 3, 95, 53, 51, 47, 6, 113, 34,
+			48, 109, 50, 0, 0, 12, 3, 95, 53, 50, 71, 6, 118, 58, 109, 50, 0, 0, 13, 3, 95, 53, 53, 48, 6, 35, 144, 48, 109, 50,
+			0, 0, 13, 3, 95, 53, 52, 80, 6, 121, 123, 58, 109, 50, 0, 0, 15, 3, 95, 53, 55, 89, 109, 47, 12, 6, 118, 58, 13, 50,
+			0, 0, 14, 3, 95, 53, 54, 144, 107, 13, 48, 12, 6, 109, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 57,
+			50, 109, 58, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 56, 35, 138, 12, 118, 89, 6, 112, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+			3, 95, 57, 57, 50, 113, 67, 57, 6, 118, 50, 13, 58, 114, 0, 13, 3, 95, 56, 49, 113, 49, 57, 118, 89, 6, 112, 0, 0, 15,
+			3, 95, 57, 56, 35, 138, 12, 6, 118, 50, 13, 58, 114, 0, 12, 3, 95, 56, 48, 4, 109, 89, 89, 6, 112, 0, 0, 13, 3, 95,
+			56, 51, 47, 113, 34, 118, 89, 6, 112, 0, 0, 12, 3, 95, 56, 50, 71, 134, 118, 89, 6, 112, 0, 0, 14, 3, 95, 56, 53, 48,
+			113, 6, 80, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 52, 80, 120, 34, 118, 89, 6, 112, 0, 0, 14, 3, 95, 56, 55, 89, 109,
+			47, 12, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 54, 144, 113, 57, 118, 89, 6, 112, 0, 0, 15, 3, 95, 57, 49, 113, 49, 57,
+			6, 118, 50, 13, 58, 114, 0, 0, 12, 3, 95, 57, 48, 50, 109, 71, 12, 6, 114, 0, 0, 15, 3, 95, 57, 51, 47, 113, 34, 6,
+			118, 50, 13, 58, 114, 0, 0, 13, 3, 95, 57, 50, 71, 6, 118, 50, 13, 58, 114, 0, 0, 15, 3, 95, 57, 53, 48, 13, 80, 6,
+			118, 50, 13, 58, 114, 0, 0, 15, 3, 95, 57, 52, 80, 120, 34, 6, 118, 65, 13, 58, 114, 0, 0, 16, 3, 95, 57, 55, 89, 13,
+			47, 12, 6, 118, 50, 13, 58, 114, 0, 0, 15, 3, 95, 57, 54, 144, 113, 57, 6, 118, 50, 13, 58, 114, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95,
+			48, 77, 50, 55, 6, 118, 146, 0, 0, 13, 4, 95, 48, 77, 51, 80, 34, 6, 39, 34, 36, 0, 0, 0, 13, 4, 95, 48, 77, 49,
+			107, 13, 88, 6, 118, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 5, 131, 239, 187, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 2, 95, 51, 47, 37, 50, 36, 113, 0, 0, 9, 2, 95, 50, 72, 6, 36, 113, 0, 0, 10, 2, 95, 49,
+			36, 6, 49, 36, 113, 0, 0, 11, 2, 95, 48, 89, 6, 40, 65, 36, 113, 0, 0, 11, 2, 95, 55, 107, 35, 6, 138, 36, 113, 0,
+			0, 10, 2, 95, 54, 107, 35, 6, 36, 113, 0, 0, 11, 2, 95, 53, 83, 35, 6, 107, 36, 113, 0, 0, 14, 2, 95, 52, 107, 35,
+			6, 138, 35, 6, 34, 36, 113, 0, 0, 0, 0, 11, 2, 95, 57, 50, 6, 40, 35, 36, 113, 0, 0, 10, 2, 95, 56, 35, 6, 91,
+			36, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 11, 2, 222, 135, 6, 35, 55, 37, 83, 40, 0, 0, 10, 2, 222, 134, 49, 6, 118, 83, 40, 0, 0, 15, 2, 222,
+			133, 62, 6, 35, 84, 4, 37, 57, 35, 50, 37, 0, 0, 8, 2, 222, 132, 71, 6, 118, 0, 0, 8, 2, 222, 131, 51, 6, 118, 0,
+			0, 10, 2, 222, 130, 50, 6, 123, 50, 40, 0, 0, 14, 2, 222, 129, 93, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 8, 2, 222,
+			128, 107, 6, 118, 0, 0, 14, 2, 222, 143, 67, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 10, 2, 222, 142, 81, 6, 118, 83, 40,
+			0, 0, 10, 2, 222, 141, 55, 6, 118, 65, 40, 0, 0, 8, 2, 222, 140, 47, 6, 118, 0, 0, 10, 2, 222, 139, 72, 6, 118, 55,
+			40, 0, 0, 10, 2, 222, 138, 83, 6, 118, 83, 40, 0, 0, 10, 2, 222, 137, 65, 6, 112, 65, 40, 0, 0, 10, 2, 222, 136, 84,
+			6, 118, 84, 40, 0, 0, 14, 2, 222, 151, 76, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 14, 2, 222, 150, 75, 6, 35, 84, 37,
+			57, 35, 50, 37, 0, 0, 14, 2, 222, 149, 48, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 8, 2, 222, 148, 57, 6, 118, 0, 0,
+			14, 2, 222, 147, 140, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 14, 2, 222, 146, 88, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0,
+			14, 2, 222, 145, 141, 6, 35, 84, 37, 57, 35, 50, 37, 0, 0, 10, 2, 222, 144, 89, 6, 112, 50, 40, 0, 0, 10, 2, 222, 159,
+			72, 6, 118, 72, 40, 0, 0, 10, 2, 222, 158, 89, 6, 118, 72, 40, 0, 0, 10, 2, 222, 157, 91, 6, 112, 50, 40, 0, 0, 8,
+			2, 222, 156, 88, 6, 118, 0, 0, 10, 2, 222, 155, 86, 6, 118, 55, 40, 0, 0, 8, 2, 222, 154, 101, 6, 118, 0, 0, 9, 2,
+			222, 153, 107, 107, 6, 118, 0, 0, 8, 2, 222, 152, 87, 6, 118, 0, 0, 15, 2, 222, 167, 6, 118, 71, 118, 15, 83, 4, 37, 55,
+			37, 0, 0, 15, 2, 222, 166, 6, 35, 71, 35, 15, 83, 4, 37, 55, 37, 0, 0, 10, 2, 222, 165, 58, 6, 118, 84, 40, 0, 0,
+			10, 2, 222, 164, 104, 6, 118, 83, 40, 0, 0, 11, 2, 222, 163, 100, 35, 6, 37, 50, 40, 0, 0, 10, 2, 222, 162, 35, 6, 37,
+			50, 40, 0, 0, 8, 2, 222, 161, 88, 6, 39, 0, 0, 8, 2, 222, 160, 47, 6, 39, 0, 0, 15, 2, 222, 175, 6, 119, 71, 119,
+			15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 174, 6, 39, 71, 39, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 173, 6, 114,
+			71, 114, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 172, 6, 36, 71, 36, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 171,
+			6, 123, 71, 123, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 170, 6, 40, 71, 40, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2,
+			222, 169, 6, 112, 71, 112, 15, 83, 4, 37, 55, 37, 0, 0, 15, 2, 222, 168, 6, 37, 71, 37, 15, 83, 4, 37, 55, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 15, 2, 222, 177, 50, 6, 35, 15, 84, 37, 57, 35, 50, 37, 0, 0, 11, 2, 222, 176, 89, 6, 40, 49,
+			40, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 1, 1, 0, 3, 107, 0, 7, 6, 1, 2, 0, 3, 93, 0, 7, 6, 1, 3, 0, 3, 50, 0, 222, 176, 2, 222, 130, 3, 50,
+			50, 0, 222, 176, 2, 222, 137, 3, 65, 65, 0, 222, 176, 2, 222, 143, 3, 67, 67, 0, 7, 6, 1, 4, 0, 3, 51, 0, 7, 6,
+			1, 5, 0, 3, 71, 0, 7, 6, 1, 6, 0, 3, 62, 0, 7, 6, 1, 7, 0, 3, 49, 0, 7, 6, 1, 8, 0, 3, 0, 222,
+			176, 2, 32, 3, 36, 107, 0, 222, 176, 2, 222, 140, 3, 47, 0, 222, 176, 2, 222, 149, 3, 48, 0, 222, 176, 2, 222, 134, 3, 49,
+			0, 222, 176, 2, 222, 130, 3, 50, 0, 222, 176, 2, 222, 131, 3, 51, 0, 222, 176, 2, 222, 141, 3, 55, 0, 222, 176, 2, 222, 148,
+			3, 57, 0, 222, 176, 2, 222, 133, 3, 62, 0, 222, 176, 2, 222, 137, 3, 65, 0, 222, 176, 2, 222, 143, 3, 68, 0, 222, 176, 2,
+			222, 132, 3, 71, 0, 222, 176, 2, 222, 139, 3, 72, 0, 222, 176, 2, 222, 150, 3, 75, 0, 222, 176, 2, 222, 151, 3, 76, 0, 222,
+			176, 2, 222, 142, 3, 81, 0, 222, 176, 2, 222, 134, 3, 84, 0, 222, 176, 2, 222, 146, 3, 88, 0, 222, 176, 2, 222, 144, 3, 89,
+			0, 222, 176, 2, 222, 156, 3, 90, 0, 222, 176, 2, 222, 128, 3, 93, 0, 4, 222, 176, 2, 222, 128, 3, 107, 0, 222, 176, 2, 222,
+			129, 0, 222, 176, 2, 222, 147, 3, 140, 0, 222, 176, 2, 222, 145, 3, 141, 0, 7, 6, 1, 9, 0, 3, 84, 0, 7, 6, 1, 10,
+			0, 3, 65, 0, 7, 6, 1, 11, 0, 3, 83, 0, 7, 6, 1, 12, 0, 3, 72, 0, 7, 6, 1, 13, 0, 3, 47, 0, 7, 6,
+			1, 14, 0, 3, 55, 0, 7, 6, 1, 15, 0, 3, 81, 0, 7, 6, 1, 16, 0, 3, 67, 0, 7, 6, 1, 17, 0, 3, 89, 0,
+			7, 6, 1, 18, 0, 3, 141, 0, 7, 6, 1, 19, 0, 3, 88, 0, 7, 6, 1, 20, 0, 3, 140, 0, 7, 6, 1, 21, 0, 3,
+			57, 0, 7, 6, 1, 22, 0, 3, 48, 0, 7, 6, 1, 23, 0, 3, 75, 0, 7, 6, 1, 24, 0, 3, 76, 0, 7, 6, 1, 25,
+			0, 3, 87, 0, 7, 6, 1, 26, 0, 3, 107, 0, 7, 6, 1, 27, 0, 3, 101, 0, 7, 6, 1, 28, 0, 3, 86, 0, 7, 6,
+			1, 29, 0, 3, 90, 0, 7, 6, 1, 30, 0, 3, 91, 0, 7, 6, 1, 31, 0, 3, 89, 0, 7, 6, 1, 32, 0, 3, 72, 0,
+			7, 6, 1, 33, 0, 3, 47, 0, 7, 6, 1, 34, 0, 3, 88, 0, 7, 6, 1, 35, 0, 3, 19, 0, 7, 6, 1, 36, 0, 3,
+			100, 0, 7, 6, 1, 37, 0, 3, 104, 0, 7, 6, 1, 38, 0, 3, 58, 0, 7, 6, 1, 39, 0, 3, 35, 0, 7, 6, 1, 40,
+			0, 3, 118, 0, 7, 6, 1, 41, 0, 3, 37, 0, 7, 6, 1, 42, 0, 3, 112, 0, 7, 6, 1, 43, 0, 3, 40, 0, 7, 6,
+			1, 44, 0, 3, 123, 0, 7, 6, 1, 45, 0, 3, 36, 0, 7, 6, 1, 46, 0, 3, 114, 0, 7, 6, 1, 47, 0, 3, 39, 0,
+			7, 6, 1, 48, 0, 3, 119, 0, 7, 6, 1, 49, 0, 3, 0, 7, 6, 1, 50, 0, 3, 66, 0, 7, 6, 0, 36, 3, 72, 39,
+			55, 35, 51, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts12 = FileInMemory_createWithData (3606, reinterpret_cast<const char *> (&espeakdata_dicts12_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/dv_dict", 
+			U"dv");
+		Collection_addItem (me.peek(), espeakdata_dicts12.transfer());
 
 		static unsigned char espeakdata_dicts13_data[5352] = {
 			0, 4, 0, 0, 19, 16, 0, 0, 0, 0, 0, 0, 13, 138, 206, 181, 206, 175, 207, 135, 206, 177, 206, 189, 72, 0, 0, 0, 0, 17,
 			142, 206, 174, 207, 131, 206, 177, 207, 131, 207, 132, 206, 177, 206, 189, 72, 17, 142, 206, 174, 206, 188, 206, 177, 207, 131, 207, 132, 206, 177,
 			206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 140, 207, 132, 206, 185, 8, 10, 134, 207, 140, 207, 132, 206,
-			185, 72, 8, 0, 13, 4, 95, 100, 112, 116, 10, 49, 6, 39, 65, 35, 0, 0, 0, 0, 0, 9, 134, 206, 188, 206, 177, 207, 130, 72,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 36, 86, 39, 55, 6, 35, 34, 37, 35, 0, 0, 14, 1, 37, 47,
-			37, 89, 36, 49, 35, 47, 6, 39, 0, 27, 0, 0, 0, 0, 0, 9, 134, 207, 132, 207, 137, 206, 189, 72, 9, 1, 42, 36, 48, 37,
-			0, 72, 27, 0, 9, 1, 43, 89, 37, 50, 0, 72, 27, 0, 11, 136, 207, 131, 207, 132, 207, 137, 206, 189, 72, 0, 9, 1, 45, 65,
-			6, 37, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 206, 188, 206, 185, 206, 177, 207, 130, 72, 0, 0,
-			0, 0, 9, 1, 61, 37, 89, 39, 50, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 206, 181, 206, 175,
-			206, 188, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 206, 185, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 49, 77, 49, 99, 6, 37, 61, 35, 0, 0, 22,
-			4, 95, 49, 77, 50, 6, 36, 50, 35, 36, 49, 35, 47, 39, 65, 6, 37, 34, 37, 39, 0, 0, 25, 4, 95, 49, 77, 51, 6, 36,
-			50, 35, 86, 37, 89, 36, 49, 35, 47, 39, 65, 6, 37, 34, 37, 39, 0, 0, 0, 0, 0, 12, 6, 206, 186, 206, 177, 206, 185, 49,
-			36, 0, 72, 0, 0, 0, 0, 0, 0, 11, 136, 206, 174, 207, 132, 206, 177, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 51, 88, 111, 47, 34, 37, 35, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 67, 48, 36, 49, 35, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			9, 4, 95, 111, 114, 100, 39, 89, 0, 0, 0, 0, 15, 4, 95, 49, 67, 111, 36, 49, 35, 47, 39, 89, 47, 6, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 138, 206, 184, 206, 177, 206, 173, 207, 135, 207, 137, 72, 0, 0, 0, 15, 140, 206, 181, 207, 128, 206, 181, 206,
-			185, 206, 180, 206, 174, 8, 0, 9, 134, 207, 131, 206, 191, 207, 133, 72, 0, 0, 7, 132, 206, 189, 206, 177, 72, 7, 132, 206, 189, 206,
-			177, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 132, 207, 132, 206, 183, 72, 0, 0, 9, 134, 207, 131, 207, 132, 206, 183, 72, 7, 132, 207, 132, 206, 177,
-			72, 0, 0, 9, 134, 207, 131, 207, 132, 206, 177, 72, 13, 138, 206, 181, 206, 175, 207, 131, 207, 132, 206, 181, 72, 0, 0, 15, 140, 206,
-			181, 206, 175, 207, 135, 206, 177, 206, 188, 206, 181, 72, 15, 140, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206, 181, 72, 0, 0, 17,
-			142, 206, 189, 206, 177, 206, 181, 206, 175, 207, 131, 207, 132, 206, 181, 72, 7, 132, 207, 132, 206, 191, 72, 0, 0, 9, 134, 207, 131, 207,
-			132, 206, 191, 72, 19, 144, 206, 189, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206, 181, 72, 0, 0, 10, 134, 206, 181, 206,
-			172, 206, 189, 72, 8, 0, 0, 0, 0, 17, 4, 95, 50, 67, 111, 86, 38, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 138, 206, 186, 206, 191, 206, 189, 207, 132, 206, 172, 28, 0, 9, 134, 207, 128, 206, 191, 207, 133, 72,
-			0, 0, 0, 0, 0, 0, 0, 13, 138, 206, 173, 207, 135, 206, 181, 207, 132, 206, 181, 72, 0, 0, 0, 0, 17, 142, 206, 189, 206, 177,
-			206, 173, 207, 135, 206, 181, 207, 132, 206, 181, 72, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 207, 131, 207, 132, 206, 181, 72, 0, 0,
-			0, 0, 21, 146, 206, 184, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 207, 131, 207, 132, 206, 181, 72, 0, 0, 0, 0, 13, 138, 206,
-			180, 206, 185, 207, 140, 207, 132, 206, 185, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 207, 128, 207, 129, 206,
-			191, 207, 130, 28, 0, 0, 11, 6, 95, 35, 206, 191, 207, 130, 39, 89, 0, 0, 15, 4, 95, 49, 49, 111, 36, 50, 86, 6, 36, 49,
-			35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 207,
-			131, 206, 177, 206, 185, 72, 18, 4, 95, 51, 67, 111, 47, 34, 38, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 4, 95, 49, 48, 111, 86, 6, 36, 49, 35, 47, 0, 0, 0, 0, 9, 134, 207, 131, 206, 177, 207, 130, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 206, 191, 206, 185, 72, 11, 3, 226, 130, 172, 36, 84, 34, 6, 39, 0, 0, 0, 15, 4,
-			95, 49, 50, 111, 86, 39, 86, 6, 36, 49, 35, 47, 0, 0, 0, 0, 0, 13, 138, 206, 181, 206, 175, 207, 131, 206, 177, 206, 185, 72,
-			0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206, 181, 206, 175, 207, 131, 206, 177, 206, 185, 72, 0, 18, 5, 95, 50, 77, 49, 111, 86,
-			37, 89, 99, 37, 61, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 207, 128, 206,
-			177, 207, 129, 207, 140, 206, 187, 206, 191, 8, 8, 4, 95, 35, 206, 183, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 19, 144, 206, 184, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206, 181, 72, 0, 0, 19, 4, 95, 52, 67, 111, 47,
-			36, 47, 34, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 15, 5, 95, 48, 77, 49, 111, 99, 37, 61, 39, 89, 47,
-			6, 0, 0, 0, 0, 18, 4, 95, 55, 88, 111, 36, 84, 86, 39, 65, 37, 49, 39, 89, 47, 6, 0, 8, 4, 95, 35, 206, 191, 39,
-			0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 51, 88, 47, 34, 37, 6, 35, 50, 72, 35, 0, 0, 14, 3, 95, 48, 67, 36, 49, 35,
-			47, 6, 39, 50, 10, 0, 0, 0, 0, 0, 0, 9, 134, 206, 173, 207, 135, 207, 137, 72, 0, 0, 0, 14, 3, 95, 49, 67, 36, 49,
-			35, 47, 6, 39, 50, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 50, 67, 86, 38, 35, 49, 6, 39, 95, 35, 10, 0,
-			0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 49, 6, 36, 50, 86, 36, 49, 35, 0, 0, 0, 16, 3, 95, 51, 67, 47, 34, 37, 35,
-			49, 6, 39, 95, 35, 10, 0, 0, 13, 3, 95, 49, 50, 86, 6, 39, 86, 36, 49, 35, 0, 0, 0, 0, 0, 9, 134, 206, 188, 206,
-			191, 207, 133, 72, 0, 0, 16, 3, 95, 55, 88, 36, 71, 72, 39, 65, 6, 37, 50, 72, 35, 0, 0, 17, 3, 95, 52, 67, 47, 36,
-			47, 34, 35, 49, 6, 39, 95, 35, 10, 0, 0, 13, 6, 207, 129, 206, 185, 206, 177, 34, 100, 38, 35, 0, 0, 0, 0, 11, 3, 95,
-			49, 111, 48, 34, 6, 39, 47, 0, 0, 9, 134, 206, 173, 206, 189, 206, 177, 72, 0, 0, 0, 17, 3, 95, 53, 67, 48, 36, 50, 72,
-			35, 49, 6, 39, 95, 35, 10, 0, 0, 0, 0, 0, 13, 3, 95, 50, 111, 86, 6, 36, 83, 47, 36, 34, 0, 0, 0, 0, 11, 3,
-			95, 49, 88, 86, 6, 36, 49, 35, 0, 0, 16, 3, 95, 54, 67, 36, 49, 89, 35, 49, 6, 39, 95, 35, 10, 0, 0, 17, 142, 206,
-			184, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 189, 72, 18, 4, 95, 53, 67, 111, 48, 36, 72, 35, 49, 39, 95, 39, 89, 47,
-			6, 0, 0, 0, 0, 11, 3, 95, 51, 111, 47, 34, 6, 37, 47, 0, 0, 0, 0, 12, 3, 95, 50, 88, 6, 37, 49, 39, 89, 37,
-			0, 0, 16, 3, 95, 55, 67, 36, 48, 47, 35, 49, 6, 39, 95, 35, 10, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 102, 47, 34,
-			6, 37, 89, 0, 0, 0, 0, 16, 3, 95, 56, 67, 39, 49, 47, 35, 49, 6, 39, 95, 35, 10, 0, 0, 0, 0, 0, 12, 3, 95,
-			53, 111, 48, 6, 36, 65, 48, 47, 0, 0, 9, 134, 206, 188, 206, 175, 206, 177, 72, 14, 3, 95, 52, 102, 47, 6, 36, 89, 36, 34,
-			37, 89, 0, 0, 0, 14, 3, 95, 52, 88, 89, 35, 34, 6, 35, 50, 72, 35, 0, 0, 17, 142, 206, 184, 206, 177, 206, 173, 207, 135,
-			206, 181, 206, 185, 207, 130, 72, 15, 3, 95, 57, 67, 36, 67, 35, 49, 6, 39, 95, 35, 10, 0, 0, 0, 0, 0, 12, 136, 207, 128,
-			206, 177, 207, 129, 206, 172, 72, 28, 10, 3, 95, 54, 111, 6, 36, 49, 47, 0, 0, 13, 138, 206, 174, 207, 131, 206, 191, 207, 133, 206,
-			189, 72, 0, 0, 14, 3, 95, 53, 88, 48, 36, 50, 6, 37, 50, 72, 35, 0, 0, 0, 13, 138, 206, 188, 206, 173, 207, 135, 207, 129,
-			206, 185, 28, 0, 0, 0, 12, 3, 95, 55, 111, 6, 36, 84, 86, 39, 65, 0, 0, 0, 0, 14, 3, 95, 54, 88, 36, 49, 89, 6,
-			37, 50, 72, 35, 0, 0, 0, 0, 0, 0, 14, 3, 95, 48, 111, 65, 37, 86, 36, 50, 37, 49, 6, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 11, 3, 95, 57, 111, 6, 36, 50, 35, 47, 0, 0, 0, 0, 14, 3, 95, 56, 88, 39, 81, 72, 6, 39, 50, 72, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 57, 88, 36, 50, 36, 50, 6, 37, 50, 72, 35, 0, 0, 0, 18, 4, 95, 54, 67,
-			111, 36, 49, 89, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 88, 111, 86, 6, 36,
-			49, 35, 47, 0, 0, 0, 9, 134, 206, 181, 207, 128, 206, 175, 72, 0, 13, 3, 95, 52, 111, 47, 6, 36, 47, 35, 34, 47, 0, 0,
-			9, 134, 207, 132, 206, 191, 207, 133, 72, 13, 138, 206, 173, 207, 135, 206, 191, 207, 133, 206, 189, 72, 13, 138, 206, 174, 206, 188, 206, 191,
-			207, 133, 206, 189, 72, 9, 134, 207, 132, 206, 191, 207, 133, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 191, 207, 133, 72, 0, 0, 17,
-			142, 206, 189, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 56, 111, 6, 39, 100, 86, 39, 0, 18, 4, 95, 48, 77, 50, 36,
-			49, 35, 47, 39, 65, 6, 37, 34, 37, 35, 0, 0, 21, 4, 95, 48, 77, 51, 86, 37, 89, 36, 49, 35, 47, 39, 65, 6, 37, 34,
-			37, 35, 0, 0, 0, 15, 4, 95, 48, 77, 49, 99, 37, 61, 6, 35, 86, 36, 89, 0, 0, 0, 0, 0, 7, 132, 207, 131, 206, 181,
-			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 191, 206, 189, 72, 18, 4, 95, 55, 67, 111,
-			36, 48, 47, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 11, 136, 207, 131, 207, 132, 206, 191, 206, 189, 72, 0, 0, 0, 0, 0,
-			0, 13, 4, 95, 50, 88, 111, 37, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 206, 188,
-			206, 185, 206, 177, 65, 67, 35, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 136, 206, 177, 206, 187, 206, 187, 206, 172, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
-			136, 206, 188, 206, 173, 207, 131, 206, 177, 72, 28, 15, 140, 206, 181, 206, 175, 207, 135, 206, 177, 207, 132, 206, 181, 72, 0, 0, 0, 0,
-			0, 0, 18, 4, 95, 56, 67, 111, 39, 49, 47, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
-			134, 207, 132, 206, 185, 207, 130, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 185, 207, 130, 72, 0, 0, 0, 13, 138, 206, 179, 206, 185,
-			206, 177, 207, 132, 206, 175, 8, 0, 11, 136, 207, 132, 206, 191, 207, 133, 207, 130, 72, 11, 136, 207, 132, 206, 191, 207, 133, 207, 130, 72,
-			0, 0, 13, 138, 207, 131, 207, 132, 206, 191, 207, 133, 207, 130, 72, 0, 0, 0, 0, 0, 8, 132, 206, 188, 206, 181, 72, 28, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 136, 206, 188, 206, 177, 206, 182, 206, 175, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 173, 207, 135, 206, 181,
-			207, 132, 206, 181, 72, 0, 0, 0, 0, 18, 4, 95, 57, 67, 111, 36, 50, 36, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0,
-			0, 13, 138, 206, 181, 206, 175, 206, 189, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206, 181, 206, 175, 206, 189,
-			206, 177, 206, 185, 72, 19, 4, 95, 52, 88, 111, 47, 36, 89, 89, 35, 34, 35, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
-			0, 10, 3, 95, 206, 183, 6, 37, 47, 35, 0, 0, 0, 13, 138, 206, 181, 206, 175, 207, 135, 206, 181, 207, 130, 72, 0, 0, 0, 0,
-			0, 16, 3, 95, 206, 174, 4, 37, 47, 35, 47, 6, 39, 50, 39, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 206, 181, 206, 189, 207, 140, 207, 130, 72, 0, 0, 32, 10, 206, 181, 206,
-			186, 207, 132, 207, 140, 207, 130, 36, 49, 47, 6, 39, 89, 36, 4, 35, 50, 0, 8, 81, 206, 181, 206, 172, 206, 189, 32, 0, 11, 136,
-			206, 173, 207, 135, 206, 181, 206, 185, 72, 0, 22, 12, 206, 188, 206, 185, 206, 181, 207, 129, 207, 140, 207, 130, 65, 37, 36, 34, 6, 39,
-			89, 0, 0, 0, 0, 15, 140, 206, 189, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 2, 207, 134, 83, 37, 0, 0, 7, 2, 207, 135, 99, 37, 0, 0, 8, 2, 207, 132, 47, 35, 83, 0, 14,
-			3, 95, 206, 191, 6, 39, 65, 37, 49, 34, 39, 50, 0, 0, 13, 2, 207, 133, 6, 37, 48, 89, 37, 55, 39, 50, 0, 16, 4, 95,
-			53, 88, 111, 48, 36, 72, 37, 49, 39, 89, 47, 6, 0, 0, 11, 2, 207, 130, 89, 6, 37, 100, 65, 35, 0, 0, 11, 2, 207, 131,
-			89, 6, 37, 100, 65, 35, 0, 0, 7, 2, 207, 128, 48, 37, 0, 7, 132, 206, 181, 206, 186, 72, 0, 7, 2, 207, 129, 51, 39, 0,
-			0, 0, 17, 2, 207, 142, 39, 65, 4, 36, 100, 35, 47, 6, 39, 50, 39, 89, 0, 0, 19, 2, 207, 141, 4, 37, 48, 89, 37, 55,
-			39, 50, 47, 6, 39, 50, 39, 89, 0, 0, 19, 2, 207, 140, 4, 39, 65, 37, 49, 34, 39, 50, 47, 6, 39, 50, 39, 89, 0, 0,
-			13, 2, 207, 139, 6, 37, 48, 89, 37, 55, 39, 50, 0, 0, 10, 2, 207, 138, 37, 6, 39, 47, 35, 0, 0, 11, 2, 207, 137, 39,
-			65, 6, 36, 100, 35, 0, 0, 8, 2, 207, 136, 48, 89, 37, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 206,
-			189, 206, 177, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 206, 175, 37, 4, 39, 47, 35, 47, 6,
-			39, 50, 39, 89, 0, 0, 16, 2, 206, 174, 4, 37, 47, 35, 47, 6, 39, 50, 39, 89, 0, 49, 6, 130, 206, 174, 72, 8, 0, 19,
-			2, 206, 173, 4, 36, 48, 89, 37, 55, 39, 50, 47, 6, 39, 50, 39, 89, 0, 0, 16, 2, 206, 172, 4, 35, 55, 83, 35, 47, 6,
-			39, 50, 39, 89, 0, 0, 0, 0, 0, 0, 10, 2, 206, 183, 6, 37, 47, 35, 0, 49, 7, 2, 206, 183, 37, 0, 72, 0, 9, 2,
-			206, 182, 88, 37, 47, 35, 0, 0, 13, 2, 206, 181, 6, 36, 48, 89, 37, 55, 39, 50, 0, 0, 10, 2, 206, 180, 86, 36, 55, 47,
-			35, 0, 0, 9, 2, 206, 179, 100, 35, 65, 35, 0, 0, 11, 2, 95, 46, 47, 36, 55, 6, 37, 35, 0, 9, 2, 206, 178, 84, 37,
-			47, 35, 0, 13, 138, 206, 173, 207, 135, 206, 181, 206, 185, 207, 130, 72, 11, 2, 95, 46, 47, 36, 55, 6, 37, 35, 0, 0, 9, 2,
-			206, 177, 35, 55, 83, 35, 0, 0, 10, 2, 95, 44, 49, 6, 39, 65, 35, 0, 19, 2, 206, 176, 4, 37, 48, 89, 37, 55, 39, 50,
-			47, 6, 39, 50, 39, 89, 0, 0, 14, 2, 206, 191, 6, 39, 65, 37, 49, 34, 39, 50, 0, 49, 11, 136, 206, 181, 206, 175, 207, 135,
-			206, 181, 72, 7, 2, 206, 191, 39, 0, 72, 10, 2, 95, 51, 47, 34, 6, 37, 35, 0, 0, 8, 2, 206, 190, 49, 89, 37, 0, 17,
-			142, 206, 189, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 207, 130, 72, 9, 2, 95, 50, 86, 6, 37, 39, 0, 0, 7, 2, 206, 189,
-			50, 37, 0, 9, 2, 95, 49, 6, 36, 50, 35, 0, 0, 7, 2, 206, 188, 65, 37, 0, 11, 2, 95, 48, 65, 37, 86, 6, 36, 50,
-			0, 0, 10, 2, 206, 187, 55, 35, 65, 86, 35, 0, 11, 136, 206, 181, 206, 175, 207, 135, 206, 177, 72, 10, 2, 95, 55, 36, 48, 47,
-			6, 35, 0, 0, 9, 2, 206, 186, 49, 35, 48, 35, 0, 10, 2, 95, 54, 6, 36, 49, 89, 37, 0, 0, 10, 2, 206, 185, 37, 6,
-			39, 47, 35, 0, 11, 2, 95, 53, 48, 6, 36, 50, 47, 36, 0, 0, 9, 2, 206, 184, 87, 37, 47, 35, 0, 12, 2, 95, 52, 47,
-			6, 36, 89, 36, 34, 35, 0, 0, 0, 0, 10, 2, 95, 57, 36, 50, 6, 36, 35, 0, 0, 10, 2, 95, 56, 39, 49, 47, 6, 39,
-			0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 54, 88, 111, 36, 49, 89, 37, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 9, 134, 206, 177, 207, 128, 207, 140, 72, 0, 0, 0, 21, 6, 206, 179, 206, 185, 206, 177, 57, 35, 50,
-			6, 35, 0, 72, 81, 206, 189, 206, 177, 32, 9, 134, 206, 179, 206, 185, 206, 177, 8, 0, 0, 0, 0, 11, 136, 207, 128, 206, 181, 207,
-			129, 206, 175, 28, 0, 10, 134, 206, 180, 206, 185, 206, 172, 72, 28, 0, 0, 0, 0, 19, 5, 95, 51, 77, 49, 111, 47, 34, 37, 89,
-			99, 37, 61, 39, 89, 47, 6, 0, 0, 0, 0, 0, 15, 5, 95, 49, 77, 49, 111, 99, 37, 61, 39, 89, 47, 6, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 206, 184, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 72, 0,
-			0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 181, 206, 175, 206, 188,
-			206, 177, 207, 131, 207, 132, 206, 181, 72, 0, 0, 0, 0, 21, 146, 206, 189, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 207, 131, 207,
-			132, 206, 181, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 206, 181, 206, 185, 207, 130, 72, 28, 0,
-			0, 0, 7, 132, 206, 184, 206, 177, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 183, 207, 130, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 183, 207, 130, 72,
-			11, 136, 206, 188, 206, 175, 206, 177, 207, 130, 72, 11, 136, 206, 173, 206, 189, 206, 177, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 56, 88, 111, 39, 100, 86, 120, 49, 39, 89, 47, 6,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 183, 206, 189, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 183, 206, 189, 72, 11,
-			136, 206, 173, 206, 189, 206, 177, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 17, 4, 95, 57, 88, 111, 36, 50, 36, 50, 37, 49, 39, 89, 47, 6, 0, 0, 0, 8, 132, 206, 177, 206,
+			185, 72, 8, 0, 0, 0, 0, 0, 9, 134, 206, 188, 206, 177, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 51, 88, 15,
+			47, 34, 37, 35, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 12, 1, 36, 86, 39, 55, 6, 35, 34, 37, 35, 0, 0, 14,
+			1, 37, 47, 37, 89, 36, 49, 35, 47, 6, 39, 0, 27, 0, 0, 0, 0, 0, 9, 134, 207, 132, 207, 137, 206, 189, 72, 9, 1, 42,
+			36, 48, 37, 0, 72, 27, 0, 9, 1, 43, 89, 37, 50, 0, 72, 27, 0, 11, 136, 207, 131, 207, 132, 207, 137, 206, 189, 72, 0, 9,
+			1, 45, 65, 6, 37, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 206, 188, 206, 185, 206, 177, 207, 130,
+			72, 0, 0, 0, 0, 9, 1, 61, 37, 89, 39, 50, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 206,
+			181, 206, 175, 206, 188, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 206, 185,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 67, 15, 36, 49, 35, 47, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 4, 95, 49, 77, 49, 99, 6, 37, 61, 35, 0, 0, 22, 4, 95, 49, 77, 50, 6, 36, 50, 35, 36, 49, 35,
+			47, 39, 65, 6, 37, 34, 37, 39, 0, 0, 25, 4, 95, 49, 77, 51, 6, 36, 50, 35, 86, 37, 89, 36, 49, 35, 47, 39, 65, 6,
+			37, 34, 37, 39, 0, 0, 0, 0, 0, 12, 6, 206, 186, 206, 177, 206, 185, 49, 36, 0, 72, 0, 0, 0, 0, 0, 0, 11, 136, 206,
+			174, 207, 132, 206, 177, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 67, 48, 36, 49, 35, 47, 6, 39, 0, 0, 0, 0, 0,
+			0, 0, 0, 17, 4, 95, 50, 67, 15, 86, 38, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			13, 138, 206, 184, 206, 177, 206, 173, 207, 135, 207, 137, 72, 0, 0, 0, 15, 140, 206, 181, 207, 128, 206, 181, 206, 185, 206, 180, 206, 174,
+			8, 0, 9, 134, 207, 131, 206, 191, 207, 133, 72, 0, 0, 7, 132, 206, 189, 206, 177, 72, 7, 132, 206, 189, 206, 177, 72, 0, 0, 15,
+			4, 95, 49, 49, 15, 36, 50, 86, 6, 36, 49, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			18, 4, 95, 51, 67, 15, 47, 34, 38, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 13, 4, 95, 4, 16, 20, 10, 49, 6, 39, 65,
+			35, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 48, 15, 86, 6, 36, 49, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 132, 207, 132, 206, 183, 72, 0, 0, 9, 134, 207, 131, 207, 132, 206, 183, 72, 7, 132, 207, 132, 206, 177, 72, 0, 0, 9, 134, 207,
+			131, 207, 132, 206, 177, 72, 13, 138, 206, 181, 206, 175, 207, 131, 207, 132, 206, 181, 72, 0, 0, 15, 140, 206, 181, 206, 175, 207, 135, 206,
+			177, 206, 188, 206, 181, 72, 15, 140, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206, 181, 72, 0, 0, 17, 142, 206, 189, 206, 177, 206,
+			181, 206, 175, 207, 131, 207, 132, 206, 181, 72, 7, 132, 207, 132, 206, 191, 72, 15, 4, 95, 49, 50, 15, 86, 39, 86, 6, 36, 49, 35,
+			47, 0, 0, 0, 9, 134, 207, 131, 207, 132, 206, 191, 72, 19, 144, 206, 189, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206,
+			181, 72, 0, 0, 10, 134, 206, 181, 206, 172, 206, 189, 72, 8, 0, 0, 0, 0, 0, 18, 5, 95, 50, 77, 49, 15, 86, 37, 89, 99,
+			37, 61, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 206, 186, 206, 191, 206, 189, 207, 132, 206, 172, 28,
+			0, 9, 134, 207, 128, 206, 191, 207, 133, 72, 0, 0, 0, 0, 0, 0, 0, 13, 138, 206, 173, 207, 135, 206, 181, 207, 132, 206, 181, 72,
+			0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206, 173, 207, 135, 206, 181, 207, 132, 206, 181, 72, 17, 142, 206, 184, 206, 177, 206, 181, 206,
+			175, 207, 131, 207, 132, 206, 181, 72, 0, 0, 0, 0, 21, 146, 206, 184, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 207, 131, 207, 132,
+			206, 181, 72, 0, 0, 0, 0, 13, 138, 206, 180, 206, 185, 207, 140, 207, 132, 206, 185, 8, 19, 4, 95, 52, 67, 15, 47, 36, 47, 34,
+			35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 15, 5, 95, 48, 77, 49, 15, 99, 37, 61, 39, 89, 47, 6, 0, 0,
+			0, 0, 18, 4, 95, 55, 88, 15, 36, 84, 86, 39, 65, 37, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 11, 136, 207, 128, 207,
+			129, 206, 191, 207, 130, 28, 0, 0, 11, 6, 95, 35, 206, 191, 207, 130, 39, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 207, 131, 206, 177, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 9, 134, 207, 131, 206, 177, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 15, 48, 34, 6, 39,
+			47, 0, 0, 0, 0, 7, 132, 206, 191, 206, 185, 72, 11, 3, 226, 130, 172, 36, 84, 34, 6, 39, 0, 0, 0, 0, 0, 0, 13, 3,
+			95, 50, 15, 86, 6, 36, 83, 47, 36, 34, 0, 0, 13, 138, 206, 181, 206, 175, 207, 131, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17,
+			142, 206, 189, 206, 177, 206, 181, 206, 175, 207, 131, 206, 177, 206, 185, 72, 18, 4, 95, 53, 67, 15, 48, 36, 72, 35, 49, 39, 95, 39,
+			89, 47, 6, 0, 0, 0, 0, 11, 3, 95, 51, 15, 47, 34, 6, 37, 47, 0, 9, 4, 95, 15, 18, 4, 39, 89, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 6, 47, 34, 6, 37, 89, 0, 0, 0, 0, 0, 15, 140, 207, 128, 206, 177, 207, 129, 207,
+			140, 206, 187, 206, 191, 8, 8, 4, 95, 35, 206, 183, 37, 0, 0, 0, 0, 12, 3, 95, 53, 15, 48, 6, 36, 65, 48, 47, 0, 0,
+			14, 3, 95, 52, 6, 47, 6, 36, 89, 36, 34, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 54, 15, 6, 36, 49, 47,
+			0, 0, 0, 0, 19, 144, 206, 184, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 188, 206, 181, 72, 0, 0, 0, 0, 0, 12, 3,
+			95, 55, 15, 6, 36, 84, 86, 39, 65, 0, 0, 0, 0, 0, 0, 8, 4, 95, 35, 206, 191, 39, 0, 0, 0, 0, 14, 3, 95, 48,
+			15, 65, 37, 86, 36, 50, 37, 49, 6, 0, 0, 0, 0, 14, 3, 95, 51, 88, 47, 34, 37, 6, 35, 50, 72, 35, 0, 0, 14, 3,
+			95, 48, 67, 36, 49, 35, 47, 6, 39, 50, 10, 0, 0, 0, 0, 0, 11, 3, 95, 57, 15, 6, 36, 50, 35, 47, 0, 0, 9, 134,
+			206, 173, 207, 135, 207, 137, 72, 0, 0, 0, 14, 3, 95, 49, 67, 36, 49, 35, 47, 6, 39, 50, 10, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 15, 3, 95, 50, 67, 86, 38, 35, 49, 6, 39, 95, 35, 10, 0, 0, 18, 4, 95, 54, 67, 15, 36, 49, 89, 35, 49, 39,
+			95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 49, 6, 36, 50, 86, 36, 49, 35, 0, 0, 0, 16, 3, 95, 51,
+			67, 47, 34, 37, 35, 49, 6, 39, 95, 35, 10, 0, 0, 13, 4, 95, 49, 88, 15, 86, 6, 36, 49, 35, 47, 0, 13, 3, 95, 49,
+			50, 86, 6, 39, 86, 36, 49, 35, 0, 0, 0, 0, 13, 3, 95, 52, 15, 47, 6, 36, 47, 35, 34, 47, 0, 0, 9, 134, 206, 188,
+			206, 191, 207, 133, 72, 0, 0, 16, 3, 95, 55, 88, 36, 71, 72, 39, 65, 6, 37, 50, 72, 35, 0, 0, 17, 3, 95, 52, 67, 47,
+			36, 47, 34, 35, 49, 6, 39, 95, 35, 10, 0, 0, 13, 6, 207, 129, 206, 185, 206, 177, 34, 100, 38, 35, 0, 0, 0, 0, 0, 9,
+			134, 206, 173, 206, 189, 206, 177, 72, 0, 0, 0, 17, 3, 95, 53, 67, 48, 36, 50, 72, 35, 49, 6, 39, 95, 35, 10, 0, 0, 0,
+			0, 0, 0, 0, 0, 11, 3, 95, 49, 88, 86, 6, 36, 49, 35, 0, 0, 16, 3, 95, 54, 67, 36, 49, 89, 35, 49, 6, 39, 95,
+			35, 10, 0, 0, 17, 142, 206, 184, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 189, 72, 0, 0, 0, 0, 0, 0, 12, 3, 95,
+			50, 88, 6, 37, 49, 39, 89, 37, 0, 0, 16, 3, 95, 55, 67, 36, 48, 47, 35, 49, 6, 39, 95, 35, 10, 0, 0, 0, 0, 0,
+			11, 3, 95, 56, 15, 6, 39, 100, 86, 39, 0, 0, 0, 0, 0, 16, 3, 95, 56, 67, 39, 49, 47, 35, 49, 6, 39, 95, 35, 10,
+			0, 0, 0, 0, 0, 0, 9, 134, 206, 188, 206, 175, 206, 177, 72, 0, 0, 14, 3, 95, 52, 88, 89, 35, 34, 6, 35, 50, 72, 35,
+			0, 0, 17, 142, 206, 184, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 207, 130, 72, 15, 3, 95, 57, 67, 36, 67, 35, 49, 6, 39,
+			95, 35, 10, 0, 0, 0, 0, 0, 12, 136, 207, 128, 206, 177, 207, 129, 206, 172, 72, 28, 0, 13, 138, 206, 174, 207, 131, 206, 191, 207,
+			133, 206, 189, 72, 0, 0, 14, 3, 95, 53, 88, 48, 36, 50, 6, 37, 50, 72, 35, 0, 0, 0, 13, 138, 206, 188, 206, 173, 207, 135,
+			207, 129, 206, 185, 28, 18, 4, 95, 55, 67, 15, 36, 48, 47, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 14,
+			3, 95, 54, 88, 36, 49, 89, 6, 37, 50, 72, 35, 0, 0, 0, 13, 4, 95, 50, 88, 15, 37, 49, 39, 89, 47, 6, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 56, 88, 39, 81, 72, 6, 39, 50, 72, 35, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 3, 95, 57, 88, 36, 50, 36, 50, 6, 37, 50, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 9, 134, 206, 181, 207, 128, 206, 175, 72, 0, 0, 9, 134, 207, 132, 206, 191, 207, 133, 72, 13, 138, 206, 173, 207, 135, 206, 191, 207,
+			133, 206, 189, 72, 13, 138, 206, 174, 206, 188, 206, 191, 207, 133, 206, 189, 72, 9, 134, 207, 132, 206, 191, 207, 133, 72, 0, 0, 11, 136,
+			207, 131, 207, 132, 206, 191, 207, 133, 72, 0, 0, 17, 142, 206, 189, 206, 177, 206, 173, 207, 135, 206, 191, 207, 133, 206, 189, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 56, 67, 15, 39, 49, 47, 35, 49, 39, 95, 39, 89, 47, 6,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 48, 77, 50, 36, 49, 35, 47, 39, 65, 6, 37, 34, 37, 35, 0,
+			0, 21, 4, 95, 48, 77, 51, 86, 37, 89, 36, 49, 35, 47, 39, 65, 6, 37, 34, 37, 35, 0, 0, 0, 15, 4, 95, 48, 77, 49,
+			99, 37, 61, 6, 35, 86, 36, 89, 0, 0, 0, 0, 0, 7, 132, 207, 131, 206, 181, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 9, 134, 207, 132, 206, 191, 206, 189, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 191, 206, 189, 72, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 206, 188, 206, 185, 206, 177, 65, 67, 35, 0, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 57, 67, 15, 36, 50, 36, 35, 49, 39, 95, 39, 89, 47, 6, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 19, 4, 95, 52, 88, 15, 47, 36, 89, 89, 35, 34, 35, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 136, 206, 177, 206, 187, 206, 187, 206, 172, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 136, 206, 188, 206, 173,
+			207, 131, 206, 177, 72, 28, 15, 140, 206, 181, 206, 175, 207, 135, 206, 177, 207, 132, 206, 181, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 185, 207, 130, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 185, 207, 130, 72, 0, 0,
+			0, 13, 138, 206, 179, 206, 185, 206, 177, 207, 132, 206, 175, 8, 0, 11, 136, 207, 132, 206, 191, 207, 133, 207, 130, 72, 11, 136, 207, 132,
+			206, 191, 207, 133, 207, 130, 72, 0, 0, 13, 138, 207, 131, 207, 132, 206, 191, 207, 133, 207, 130, 72, 0, 0, 0, 0, 0, 8, 132, 206,
+			188, 206, 181, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 136, 206, 188, 206, 177, 206, 182, 206, 175, 72, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 4, 95, 53, 88, 15, 48, 36, 72, 37, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 173, 207, 135, 206, 181, 207, 132, 206, 181, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 138, 206, 181, 206, 175, 206, 189, 206, 177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 189, 206, 177, 206,
+			181, 206, 175, 206, 189, 206, 177, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 206, 183, 6, 37, 47, 35, 0, 0, 0, 13,
+			138, 206, 181, 206, 175, 207, 135, 206, 181, 207, 130, 72, 0, 0, 0, 0, 0, 16, 3, 95, 206, 174, 4, 37, 47, 35, 47, 6, 39, 50,
+			39, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 54, 88, 15, 36, 49, 89,
+			37, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 206, 181, 206, 189, 207, 140, 207, 130, 72, 0, 0, 32, 10, 206,
+			181, 206, 186, 207, 132, 207, 140, 207, 130, 36, 49, 47, 6, 39, 89, 36, 4, 35, 50, 0, 8, 81, 206, 181, 206, 172, 206, 189, 32, 0,
+			11, 136, 206, 173, 207, 135, 206, 181, 206, 185, 72, 0, 22, 12, 206, 188, 206, 185, 206, 181, 207, 129, 207, 140, 207, 130, 65, 37, 36, 34,
+			6, 39, 89, 0, 0, 0, 0, 15, 140, 206, 189, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 19, 5, 95, 51, 77, 49, 15, 47, 34, 37, 89, 99, 37, 61, 39, 89, 47, 6, 0, 0, 0, 0, 0, 7, 2, 207, 134,
+			83, 37, 0, 15, 5, 95, 49, 77, 49, 15, 99, 37, 61, 39, 89, 47, 6, 0, 0, 7, 2, 207, 135, 99, 37, 0, 0, 8, 2, 207,
+			132, 47, 35, 83, 0, 14, 3, 95, 206, 191, 6, 39, 65, 37, 49, 34, 39, 50, 0, 0, 13, 2, 207, 133, 6, 37, 48, 89, 37, 55,
+			39, 50, 0, 0, 11, 2, 207, 130, 89, 6, 37, 100, 65, 35, 0, 0, 11, 2, 207, 131, 89, 6, 37, 100, 65, 35, 0, 0, 7, 2,
+			207, 128, 48, 37, 0, 7, 132, 206, 181, 206, 186, 72, 0, 7, 2, 207, 129, 51, 39, 0, 0, 0, 17, 2, 207, 142, 39, 65, 4, 36,
+			100, 35, 47, 6, 39, 50, 39, 89, 0, 0, 19, 2, 207, 141, 4, 37, 48, 89, 37, 55, 39, 50, 47, 6, 39, 50, 39, 89, 0, 0,
+			19, 2, 207, 140, 4, 39, 65, 37, 49, 34, 39, 50, 47, 6, 39, 50, 39, 89, 0, 0, 13, 2, 207, 139, 6, 37, 48, 89, 37, 55,
+			39, 50, 0, 0, 10, 2, 207, 138, 37, 6, 39, 47, 35, 0, 0, 11, 2, 207, 137, 39, 65, 6, 36, 100, 35, 0, 0, 8, 2, 207,
+			136, 48, 89, 37, 0, 0, 0, 0, 0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 206, 189, 206, 177, 206, 185, 72, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 206, 175, 37, 4, 39, 47, 35, 47, 6, 39, 50, 39, 89, 0, 0, 16, 2, 206, 174,
+			4, 37, 47, 35, 47, 6, 39, 50, 39, 89, 0, 14, 6, 130, 206, 174, 72, 8, 0, 19, 2, 206, 173, 4, 36, 48, 89, 37, 55, 39,
+			50, 47, 6, 39, 50, 39, 89, 0, 0, 16, 2, 206, 172, 4, 35, 55, 83, 35, 47, 6, 39, 50, 39, 89, 0, 0, 0, 0, 0, 0,
+			10, 2, 206, 183, 6, 37, 47, 35, 0, 14, 7, 2, 206, 183, 37, 0, 72, 0, 9, 2, 206, 182, 88, 37, 47, 35, 0, 0, 13, 2,
+			206, 181, 6, 36, 48, 89, 37, 55, 39, 50, 0, 0, 10, 2, 206, 180, 86, 36, 55, 47, 35, 0, 0, 9, 2, 206, 179, 100, 35, 65,
+			35, 0, 0, 11, 2, 95, 46, 47, 36, 55, 6, 37, 35, 0, 9, 2, 206, 178, 84, 37, 47, 35, 0, 13, 138, 206, 173, 207, 135, 206,
+			181, 206, 185, 207, 130, 72, 11, 2, 95, 46, 47, 36, 55, 6, 37, 35, 0, 0, 9, 2, 206, 177, 35, 55, 83, 35, 0, 0, 10, 2,
+			95, 44, 49, 6, 39, 65, 35, 0, 19, 2, 206, 176, 4, 37, 48, 89, 37, 55, 39, 50, 47, 6, 39, 50, 39, 89, 0, 0, 14, 2,
+			206, 191, 6, 39, 65, 37, 49, 34, 39, 50, 0, 14, 11, 136, 206, 181, 206, 175, 207, 135, 206, 181, 72, 7, 2, 206, 191, 39, 0, 72,
+			10, 2, 95, 51, 47, 34, 6, 37, 35, 0, 0, 8, 2, 206, 190, 49, 89, 37, 0, 17, 142, 206, 189, 206, 177, 206, 173, 207, 135, 206,
+			181, 206, 185, 207, 130, 72, 9, 2, 95, 50, 86, 6, 37, 39, 0, 0, 7, 2, 206, 189, 50, 37, 0, 9, 2, 95, 49, 6, 36, 50,
+			35, 0, 0, 7, 2, 206, 188, 65, 37, 0, 11, 2, 95, 48, 65, 37, 86, 6, 36, 50, 0, 0, 10, 2, 206, 187, 55, 35, 65, 86,
+			35, 0, 11, 136, 206, 181, 206, 175, 207, 135, 206, 177, 72, 10, 2, 95, 55, 36, 48, 47, 6, 35, 0, 0, 9, 2, 206, 186, 49, 35,
+			48, 35, 0, 10, 2, 95, 54, 6, 36, 49, 89, 37, 0, 0, 10, 2, 206, 185, 37, 6, 39, 47, 35, 0, 11, 2, 95, 53, 48, 6,
+			36, 50, 47, 36, 0, 0, 9, 2, 206, 184, 87, 37, 47, 35, 0, 12, 2, 95, 52, 47, 6, 36, 89, 36, 34, 35, 0, 0, 0, 0,
+			10, 2, 95, 57, 36, 50, 6, 36, 35, 0, 0, 10, 2, 95, 56, 39, 49, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 206, 177, 207, 128, 207, 140, 72, 0, 0, 0, 21, 6, 206, 179, 206, 185, 206,
+			177, 57, 35, 50, 6, 35, 0, 72, 81, 206, 189, 206, 177, 32, 9, 134, 206, 179, 206, 185, 206, 177, 8, 0, 0, 0, 0, 11, 136, 207,
+			128, 206, 181, 207, 129, 206, 175, 28, 0, 10, 134, 206, 180, 206, 185, 206, 172, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			16, 4, 95, 56, 88, 15, 39, 100, 86, 120, 49, 39, 89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			15, 140, 206, 184, 206, 177, 206, 173, 207, 135, 206, 181, 206, 185, 72, 0, 0, 17, 142, 206, 184, 206, 177, 206, 181, 206, 175, 206, 188, 206,
+			177, 206, 185, 72, 0, 0, 0, 0, 17, 142, 206, 181, 206, 175, 206, 188, 206, 177, 207, 131, 207, 132, 206, 181, 72, 0, 0, 0, 0, 21,
+			146, 206, 189, 206, 177, 206, 181, 206, 175, 206, 188, 206, 177, 207, 131, 207, 132, 206, 181, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 134, 206, 181, 206, 185, 207, 130, 72, 28, 0, 0, 0, 7, 132, 206, 184, 206, 177, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 57, 88, 15, 36, 50, 36, 50, 37, 49, 39,
+			89, 47, 6, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 183, 207, 130, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 183,
+			207, 130, 72, 11, 136, 206, 188, 206, 175, 206, 177, 207, 130, 72, 11, 136, 206, 173, 206, 189, 206, 177, 207, 130, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 207, 132, 206, 183,
+			206, 189, 72, 0, 0, 11, 136, 207, 131, 207, 132, 206, 183, 206, 189, 72, 11, 136, 206, 173, 206, 189, 206, 177, 206, 189, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 132, 206, 177, 206,
 			189, 72, 8, 0, 0, 6, 18, 66, 206, 177, 206, 185, 0, 206, 191, 206, 185, 0, 206, 181, 206, 185, 0, 206, 177, 206, 175, 0, 206, 191,
 			206, 175, 0, 206, 181, 206, 175, 0, 206, 181, 0, 206, 185, 0, 206, 183, 0, 207, 133, 0, 206, 173, 0, 206, 175, 0, 206, 174, 0, 207,
 			141, 0, 7, 6, 1, 61, 0, 3, 71, 0, 7, 6, 1, 50, 0, 207, 141, 2, 17, 66, 3, 6, 35, 83, 0, 207, 141, 3, 6, 35,
@@ -12940,4014 +11997,3289 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			3, 37, 0, 207, 139, 0, 46, 3, 47, 36, 55, 6, 37, 35, 0, 44, 2, 15, 3, 49, 6, 39, 65, 35, 0, 33, 3, 87, 35, 84,
 			65, 35, 89, 47, 37, 49, 6, 39, 0, 7, 0, 0};
 		autoFileInMemory espeakdata_dicts13 = FileInMemory_createWithData (5351, reinterpret_cast<const char *> (&espeakdata_dicts13_data), 
-			U"espeak-1.48.04-source/espeak-data/el_dict", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/el_dict", 
 			U"el");
-		my addItem_move (espeakdata_dicts13.move());
+		Collection_addItem (me.peek(), espeakdata_dicts13.transfer());
 
-		static unsigned char espeakdata_dicts14_data[116292] = {
-			0, 4, 0, 0, 193, 251, 0, 0, 14, 69, 92, 131, 193, 52, 144, 107, 137, 119, 65, 6, 140, 0, 16, 70, 77, 66, 76, 21, 69, 15,
-			89, 47, 113, 55, 122, 47, 139, 0, 14, 69, 64, 20, 212, 73, 144, 48, 141, 89, 47, 34, 37, 0, 8, 197, 40, 19, 15, 65, 144, 17,
-			0, 12, 68, 52, 21, 5, 60, 65, 119, 47, 141, 139, 0, 10, 199, 56, 81, 129, 72, 147, 213, 76, 17, 10, 199, 52, 19, 9, 12, 147,
-			213, 76, 17, 18, 71, 12, 132, 153, 76, 19, 9, 76, 49, 34, 124, 89, 13, 55, 124, 89, 0, 15, 70, 5, 85, 15, 65, 54, 64, 133,
-			108, 126, 48, 89, 37, 0, 0, 12, 68, 4, 229, 15, 56, 35, 50, 47, 126, 50, 0, 12, 68, 16, 149, 129, 56, 72, 113, 84, 35, 50,
-			0, 20, 72, 16, 144, 80, 32, 19, 143, 85, 48, 72, 140, 6, 35, 83, 13, 50, 13, 89, 0, 0, 18, 71, 80, 18, 87, 4, 225, 83,
-			20, 47, 140, 58, 13, 50, 6, 132, 88, 0, 14, 70, 77, 81, 134, 60, 194, 192, 89, 129, 83, 13, 49, 0, 13, 68, 72, 82, 197, 100,
-			34, 4, 132, 49, 6, 132, 0, 10, 199, 12, 83, 5, 9, 34, 84, 100, 17, 17, 71, 5, 85, 8, 61, 34, 84, 100, 119, 87, 126, 34,
-			113, 47, 37, 0, 0, 24, 73, 32, 85, 5, 72, 241, 197, 56, 245, 83, 107, 122, 47, 114, 6, 126, 75, 13, 50, 13, 89, 0, 103, 23,
-			73, 32, 85, 5, 72, 241, 197, 56, 245, 83, 107, 122, 47, 34, 139, 75, 6, 132, 50, 13, 89, 0, 11, 200, 12, 128, 76, 12, 81, 15,
-			57, 144, 66, 0, 11, 65, 4, 35, 55, 35, 0, 81, 108, 97, 32, 16, 65, 4, 119, 15, 58, 140, 55, 0, 81, 119, 104, 105, 108, 101,
-			32, 17, 70, 60, 33, 83, 37, 70, 64, 139, 71, 6, 132, 89, 13, 47, 37, 0, 9, 67, 32, 150, 65, 107, 140, 119, 0, 17, 71, 24,
-			16, 197, 80, 147, 213, 76, 83, 119, 89, 132, 91, 13, 89, 0, 11, 65, 4, 141, 119, 50, 72, 0, 81, 38, 32, 19, 65, 4, 35, 49,
-			119, 11, 0, 85, 46, 32, 107, 32, 46, 32, 97, 32, 46, 32, 6, 65, 4, 141, 0, 49, 4, 193, 4, 34, 0, 11, 68, 77, 81, 68,
-			20, 89, 58, 141, 72, 0, 14, 70, 61, 85, 23, 5, 33, 0, 138, 47, 58, 114, 72, 0, 7, 196, 20, 98, 76, 20, 20, 16, 70, 12,
-			243, 150, 20, 229, 0, 49, 126, 50, 84, 13, 50, 47, 0, 11, 68, 8, 144, 140, 20, 71, 140, 71, 118, 0, 13, 69, 5, 0, 67, 32,
-			80, 119, 48, 35, 76, 37, 0, 9, 68, 4, 148, 204, 20, 147, 55, 0, 6, 65, 108, 2, 35, 0, 12, 4, 95, 116, 117, 114, 47, 6,
-			131, 50, 72, 0, 5, 193, 108, 43, 49, 0, 8, 197, 52, 19, 15, 56, 80, 17, 13, 69, 12, 20, 15, 56, 80, 49, 119, 48, 139, 50,
-			0, 12, 69, 76, 244, 8, 36, 80, 89, 139, 83, 37, 0, 8, 197, 48, 18, 15, 72, 80, 17, 12, 67, 96, 208, 83, 122, 49, 89, 65,
-			119, 89, 0, 13, 69, 60, 53, 1, 88, 80, 126, 49, 47, 124, 84, 0, 8, 197, 37, 2, 15, 56, 80, 20, 13, 69, 24, 83, 9, 56,
-			80, 83, 132, 55, 140, 50, 0, 12, 69, 5, 35, 213, 76, 80, 119, 34, 138, 88, 0, 0, 12, 201, 76, 147, 85, 49, 64, 78, 20, 245,
-			83, 67, 0, 7, 196, 77, 66, 76, 48, 32, 10, 67, 80, 129, 89, 86, 141, 0, 72, 32, 8, 197, 61, 85, 9, 56, 112, 65, 17, 70,
-			24, 193, 88, 36, 35, 5, 83, 55, 122, 49, 89, 124, 71, 118, 0, 24, 73, 20, 193, 67, 81, 34, 67, 37, 70, 64, 113, 55, 122, 49,
-			47, 34, 6, 124, 89, 113, 47, 37, 0, 22, 73, 12, 243, 77, 60, 228, 197, 57, 49, 64, 49, 126, 65, 13, 50, 89, 6, 122, 50, 89,
-			0, 6, 65, 8, 71, 132, 0, 0, 17, 71, 76, 19, 9, 76, 37, 82, 100, 89, 133, 55, 89, 71, 34, 37, 0, 15, 70, 88, 17, 213,
-			21, 53, 0, 84, 141, 81, 13, 89, 47, 0, 18, 71, 76, 80, 210, 21, 64, 82, 100, 89, 122, 49, 34, 13, 47, 34, 124, 0, 20, 71,
-			52, 243, 69, 57, 64, 82, 100, 65, 139, 65, 13, 50, 108, 143, 34, 37, 0, 103, 19, 71, 52, 243, 69, 57, 64, 82, 100, 65, 139, 65,
-			13, 50, 47, 13, 34, 37, 0, 0, 14, 69, 56, 144, 207, 48, 16, 50, 124, 49, 13, 55, 13, 0, 11, 68, 9, 34, 69, 56, 71, 34,
-			147, 50, 0, 7, 196, 52, 147, 1, 56, 66, 24, 68, 8, 21, 15, 56, 71, 35, 47, 13, 50, 15, 34, 6, 137, 90, 0, 81, 114, 111,
-			117, 103, 101, 32, 21, 72, 81, 32, 74, 20, 53, 15, 73, 144, 47, 34, 13, 75, 122, 49, 47, 13, 34, 124, 0, 12, 68, 76, 83, 69,
-			56, 89, 132, 65, 13, 50, 0, 7, 196, 72, 21, 15, 56, 17, 15, 69, 52, 144, 83, 52, 16, 65, 140, 6, 35, 88, 65, 13, 0, 7,
-			196, 24, 83, 15, 56, 16, 12, 68, 12, 243, 15, 56, 49, 139, 55, 13, 50, 0, 8, 196, 8, 21, 15, 56, 103, 17, 14, 69, 5, 85,
-			9, 76, 208, 133, 108, 124, 88, 13, 65, 0, 15, 70, 4, 195, 5, 72, 114, 67, 119, 55, 131, 75, 124, 49, 0, 6, 195, 85, 64, 192,
-			13, 14, 67, 21, 64, 192, 122, 47, 6, 89, 122, 47, 34, 13, 0, 0, 0, 15, 70, 12, 20, 142, 20, 114, 69, 49, 130, 50, 13, 81,
-			37, 0, 13, 69, 5, 21, 73, 56, 240, 119, 49, 132, 50, 139, 0, 9, 198, 88, 19, 8, 4, 195, 1, 66, 14, 69, 56, 21, 129, 40,
-			240, 50, 121, 84, 13, 107, 139, 0, 18, 70, 48, 147, 135, 21, 34, 69, 55, 126, 50, 90, 13, 34, 6, 141, 0, 103, 16, 70, 48, 147,
-			135, 21, 34, 69, 55, 126, 50, 90, 13, 34, 37, 0, 9, 67, 4, 131, 217, 119, 107, 142, 0, 14, 202, 4, 69, 133, 73, 66, 83, 20,
-			209, 78, 80, 103, 67, 24, 74, 4, 69, 133, 73, 66, 83, 20, 209, 78, 80, 119, 72, 84, 131, 47, 124, 89, 65, 13, 50, 47, 0, 6,
-			65, 12, 89, 132, 0, 0, 15, 6, 100, 105, 100, 110, 39, 116, 72, 124, 72, 50, 47, 0, 32, 10, 67, 56, 80, 82, 4, 50, 145, 0,
-			10, 17, 70, 52, 20, 148, 36, 225, 90, 65, 130, 47, 6, 132, 50, 122, 88, 0, 18, 67, 80, 80, 82, 47, 6, 143, 15, 6, 126, 83,
-			0, 81, 111, 102, 102, 32, 21, 67, 80, 80, 82, 47, 4, 143, 15, 119, 48, 130, 47, 0, 81, 97, 112, 97, 114, 116, 32, 9, 67, 80,
-			80, 82, 47, 143, 0, 36, 9, 67, 80, 80, 82, 47, 145, 0, 47, 14, 70, 16, 85, 137, 48, 81, 0, 72, 122, 84, 118, 72, 0, 0,
-			12, 68, 72, 19, 79, 56, 34, 119, 65, 139, 50, 0, 14, 69, 12, 147, 133, 52, 16, 89, 124, 50, 13, 65, 13, 0, 0, 13, 68, 52,
-			83, 149, 76, 65, 122, 50, 57, 137, 88, 0, 0, 14, 69, 74, 36, 213, 54, 32, 34, 122, 88, 137, 65, 141, 0, 12, 69, 13, 80, 203,
-			60, 240, 49, 117, 49, 137, 0, 6, 65, 16, 72, 132, 0, 0, 19, 73, 16, 84, 204, 5, 84, 137, 21, 36, 192, 72, 113, 55, 136, 34,
-			124, 141, 0, 11, 68, 12, 130, 76, 20, 76, 124, 55, 37, 0, 11, 68, 16, 147, 196, 20, 72, 140, 139, 72, 0, 0, 8, 197, 32, 244,
-			129, 12, 80, 16, 12, 69, 12, 243, 142, 36, 80, 49, 126, 50, 37, 0, 14, 69, 8, 83, 9, 104, 80, 71, 122, 55, 6, 132, 88, 0,
-			13, 69, 85, 49, 65, 28, 80, 57, 137, 89, 113, 75, 0, 8, 197, 76, 85, 20, 20, 80, 66, 14, 69, 72, 81, 15, 56, 80, 34, 132,
-			72, 6, 129, 50, 0, 13, 69, 72, 21, 137, 56, 80, 34, 13, 84, 132, 50, 0, 14, 69, 52, 244, 143, 76, 80, 65, 13, 34, 6, 139,
-			89, 0, 13, 69, 12, 84, 137, 76, 80, 89, 13, 34, 132, 88, 0, 0, 26, 67, 80, 128, 84, 86, 119, 47, 107, 119, 88, 71, 124, 50,
-			0, 76, 82, 104, 97, 115, 32, 98, 101, 101, 110, 32, 17, 67, 80, 128, 84, 2, 86, 35, 47, 86, 115, 0, 81, 116, 104, 101, 32, 19,
-			67, 80, 128, 84, 86, 6, 35, 47, 58, 4, 128, 50, 0, 81, 111, 110, 101, 32, 19, 67, 80, 128, 84, 86, 119, 47, 15, 58, 128, 88,
-			0, 49, 81, 119, 97, 115, 32, 17, 67, 80, 128, 84, 4, 86, 119, 47, 124, 47, 0, 33, 81, 105, 116, 32, 17, 67, 80, 128, 84, 4,
-			86, 35, 47, 13, 50, 0, 34, 81, 97, 110, 32, 15, 67, 80, 128, 84, 4, 86, 35, 47, 13, 0, 34, 81, 97, 32, 13, 67, 80, 128,
-			84, 86, 35, 47, 0, 72, 34, 10, 33, 13, 70, 85, 36, 85, 32, 20, 148, 131, 49, 130, 47, 0, 14, 70, 28, 128, 78, 16, 130, 64,
-			81, 35, 50, 72, 37, 0, 15, 70, 52, 19, 1, 12, 130, 64, 65, 35, 55, 13, 49, 140, 0, 17, 70, 9, 84, 149, 56, 66, 64, 71,
-			117, 34, 6, 117, 50, 72, 37, 0, 15, 70, 92, 244, 139, 76, 134, 64, 58, 151, 49, 91, 140, 0, 105, 14, 70, 92, 244, 139, 76, 134,
-			64, 58, 131, 49, 91, 140, 0, 16, 70, 81, 148, 129, 56, 230, 64, 47, 145, 34, 13, 50, 37, 0, 103, 15, 70, 81, 148, 129, 56, 230,
-			64, 47, 124, 34, 13, 50, 37, 0, 10, 3, 105, 46, 101, 140, 132, 11, 0, 8, 11, 4, 95, 100, 112, 116, 48, 142, 50, 47, 0, 0,
-			8, 67, 52, 22, 65, 65, 147, 0, 13, 69, 8, 84, 137, 56, 112, 71, 143, 34, 124, 68, 0, 21, 65, 20, 83, 135, 122, 81, 88, 6,
-			120, 65, 48, 118, 0, 83, 46, 32, 103, 32, 46, 32, 5, 65, 20, 132, 0, 0, 17, 71, 52, 18, 143, 72, 85, 20, 20, 65, 141, 75,
-			114, 6, 122, 47, 0, 17, 71, 24, 21, 143, 85, 34, 84, 20, 83, 141, 84, 14, 34, 113, 47, 0, 16, 70, 21, 0, 85, 48, 85, 0,
-			122, 48, 13, 55, 6, 122, 47, 0, 15, 70, 8, 148, 195, 84, 149, 0, 71, 124, 89, 49, 124, 47, 0, 0, 21, 72, 48, 16, 143, 72,
-			21, 15, 73, 144, 55, 35, 71, 34, 13, 47, 133, 34, 37, 0, 103, 21, 72, 48, 16, 143, 72, 21, 15, 73, 144, 55, 119, 71, 6, 126,
-			34, 13, 47, 34, 124, 0, 11, 200, 12, 243, 147, 84, 211, 65, 80, 80, 65, 0, 14, 70, 48, 147, 132, 76, 86, 64, 55, 124, 50, 88,
-			37, 0, 14, 70, 48, 147, 132, 76, 22, 64, 55, 124, 50, 88, 37, 0, 9, 198, 16, 18, 15, 52, 86, 64, 17, 15, 70, 8, 19, 15,
-			56, 86, 64, 71, 13, 55, 139, 50, 37, 0, 0, 15, 70, 81, 37, 80, 32, 243, 133, 47, 34, 137, 83, 139, 50, 0, 16, 71, 77, 64,
-			82, 8, 240, 82, 16, 89, 47, 130, 71, 114, 72, 0, 11, 67, 65, 83, 153, 48, 57, 137, 50, 37, 0, 16, 70, 52, 243, 143, 80, 243,
-			133, 65, 126, 50, 13, 47, 139, 50, 0, 9, 198, 52, 17, 193, 104, 147, 133, 67, 19, 72, 4, 195, 8, 4, 195, 15, 93, 48, 133, 55,
-			107, 6, 35, 55, 139, 88, 0, 6, 65, 24, 122, 83, 0, 0, 19, 71, 65, 35, 193, 13, 66, 86, 20, 48, 34, 139, 6, 35, 49, 47,
-			124, 84, 0, 17, 70, 65, 33, 84, 21, 133, 0, 48, 34, 132, 108, 122, 49, 89, 47, 0, 10, 67, 48, 145, 78, 55, 132, 13, 50, 0,
-			16, 70, 32, 82, 78, 20, 177, 78, 107, 140, 50, 13, 49, 13, 50, 0, 20, 71, 21, 132, 12, 21, 66, 86, 20, 122, 49, 89, 48, 55,
-			125, 47, 124, 84, 0, 103, 20, 71, 21, 132, 12, 21, 66, 86, 20, 122, 49, 89, 48, 55, 6, 132, 47, 124, 84, 0, 19, 71, 12, 243,
-			66, 5, 66, 86, 20, 49, 13, 65, 71, 35, 47, 124, 84, 0, 103, 0, 17, 71, 29, 35, 211, 88, 83, 143, 72, 81, 34, 139, 84, 13,
-			50, 114, 0, 0, 15, 70, 16, 85, 133, 72, 21, 88, 72, 122, 84, 114, 34, 139, 0, 11, 68, 4, 148, 133, 76, 140, 34, 124, 88, 0,
-			12, 68, 76, 147, 149, 76, 89, 140, 50, 13, 89, 0, 12, 68, 12, 84, 133, 76, 89, 144, 34, 132, 88, 0, 0, 19, 71, 9, 80, 200,
-			5, 33, 83, 80, 71, 137, 49, 119, 34, 6, 122, 89, 47, 0, 14, 70, 52, 84, 137, 56, 117, 69, 65, 13, 34, 35, 68, 0, 15, 70,
-			4, 224, 76, 60, 117, 69, 35, 50, 13, 55, 126, 81, 0, 6, 65, 28, 75, 132, 0, 0, 27, 67, 92, 80, 82, 58, 6, 143, 15, 119,
-			50, 72, 15, 47, 6, 143, 0, 82, 97, 110, 100, 32, 116, 101, 97, 114, 32, 10, 199, 12, 243, 131, 61, 84, 147, 20, 65, 0, 13, 67,
-			12, 19, 128, 2, 49, 35, 50, 0, 32, 46, 10, 14, 69, 56, 245, 77, 20, 16, 50, 137, 65, 6, 141, 13, 0, 10, 67, 80, 243, 128,
-			47, 129, 50, 0, 47, 11, 67, 76, 19, 128, 4, 89, 35, 50, 0, 46, 8, 197, 64, 18, 129, 52, 16, 17, 12, 68, 52, 84, 207, 56,
-			65, 132, 88, 126, 50, 0, 13, 69, 52, 22, 72, 20, 208, 65, 141, 107, 122, 65, 0, 14, 69, 12, 20, 9, 80, 16, 49, 35, 48, 124,
-			47, 13, 0, 0, 12, 68, 72, 242, 129, 76, 34, 139, 107, 121, 89, 0, 10, 68, 48, 245, 73, 76, 55, 137, 37, 0, 11, 68, 76, 178,
-			69, 76, 89, 49, 140, 88, 0, 11, 68, 4, 208, 83, 76, 119, 65, 35, 89, 0, 0, 12, 201, 12, 148, 131, 84, 212, 212, 4, 224, 197,
-			15, 6, 65, 32, 141, 76, 0, 0, 11, 68, 48, 80, 70, 100, 55, 132, 83, 37, 0, 17, 70, 36, 226, 5, 72, 149, 0, 124, 50, 107,
-			6, 122, 34, 124, 47, 0, 0, 14, 69, 4, 230, 79, 56, 80, 122, 50, 124, 58, 128, 50, 0, 8, 197, 28, 240, 84, 20, 80, 66, 12,
-			68, 136, 194, 84, 20, 124, 55, 6, 132, 47, 0, 12, 69, 8, 195, 213, 76, 80, 71, 55, 138, 88, 0, 0, 18, 70, 4, 196, 133, 4,
-			70, 64, 133, 55, 34, 122, 72, 37, 0, 74, 32, 10, 15, 70, 72, 150, 154, 60, 194, 64, 34, 113, 88, 139, 55, 37, 0, 13, 70, 44,
-			82, 71, 32, 194, 64, 49, 141, 55, 37, 0, 16, 70, 77, 64, 78, 16, 38, 64, 89, 47, 35, 50, 72, 71, 140, 0, 8, 1, 35, 107,
-			35, 91, 0, 27, 0, 16, 65, 36, 140, 15, 107, 6, 35, 72, 0, 49, 81, 104, 97, 100, 32, 18, 65, 36, 140, 91, 6, 35, 55, 0,
-			49, 42, 81, 115, 104, 97, 108, 108, 32, 18, 65, 36, 2, 140, 91, 4, 119, 55, 0, 42, 81, 115, 104, 97, 108, 108, 32, 14, 65, 36,
-			2, 140, 35, 65, 0, 49, 42, 81, 97, 109, 32, 13, 65, 36, 2, 140, 119, 65, 0, 42, 81, 97, 109, 32, 9, 65, 36, 140, 0, 76,
-			32, 46, 42, 11, 68, 4, 129, 65, 16, 119, 107, 122, 72, 0, 13, 68, 17, 145, 133, 16, 72, 6, 129, 84, 124, 72, 0, 12, 68, 72,
-			16, 137, 16, 34, 141, 71, 124, 72, 0, 11, 68, 48, 149, 133, 16, 55, 124, 84, 72, 0, 16, 70, 8, 18, 197, 48, 149, 5, 71, 141,
-			49, 13, 55, 140, 47, 0, 5, 65, 36, 140, 0, 0, 17, 70, 37, 0, 78, 20, 208, 64, 124, 48, 119, 50, 6, 132, 65, 13, 0, 20,
-			71, 88, 145, 5, 61, 64, 80, 20, 84, 6, 124, 72, 132, 139, 108, 4, 141, 48, 0, 17, 70, 60, 193, 20, 36, 209, 82, 139, 55, 72,
-			47, 6, 140, 65, 114, 0, 16, 70, 60, 48, 213, 64, 145, 82, 126, 49, 57, 137, 48, 140, 114, 0, 6, 195, 37, 0, 68, 20, 21, 72,
-			21, 128, 67, 80, 83, 69, 57, 64, 122, 81, 88, 35, 49, 47, 13, 65, 6, 153, 0, 18, 72, 16, 83, 143, 84, 83, 69, 57, 64, 72,
-			141, 50, 6, 137, 65, 154, 0, 6, 195, 37, 0, 195, 13, 6, 195, 37, 0, 64, 13, 13, 1, 37, 48, 151, 89, 6, 122, 50, 47, 0,
-			105, 27, 12, 1, 37, 48, 114, 89, 6, 122, 50, 47, 0, 27, 0, 11, 67, 37, 68, 192, 124, 47, 89, 0, 72, 34, 9, 67, 100, 84,
-			128, 57, 114, 0, 76, 16, 70, 12, 245, 133, 80, 245, 83, 49, 129, 84, 13, 47, 13, 89, 0, 18, 70, 8, 244, 133, 4, 194, 83, 71,
-			136, 34, 124, 6, 35, 55, 124, 89, 0, 9, 1, 38, 10, 35, 50, 72, 0, 76, 5, 193, 112, 43, 49, 0, 18, 73, 8, 245, 84, 60,
-			227, 137, 21, 33, 64, 71, 137, 19, 50, 6, 145, 0, 19, 71, 5, 52, 1, 72, 17, 213, 76, 119, 89, 48, 35, 34, 13, 81, 13, 89,
-			0, 0, 18, 70, 60, 34, 84, 84, 20, 153, 139, 71, 6, 124, 76, 137, 143, 37, 0, 103, 16, 70, 60, 34, 84, 84, 20, 153, 126, 71,
-			6, 124, 76, 146, 37, 0, 9, 198, 48, 147, 143, 48, 85, 77, 66, 18, 70, 16, 147, 1, 80, 244, 153, 72, 124, 55, 35, 47, 152, 34,
-			124, 0, 103, 17, 70, 16, 147, 1, 80, 244, 153, 72, 124, 55, 13, 47, 13, 34, 124, 0, 6, 65, 40, 75, 141, 0, 0, 11, 68, 96,
-			131, 211, 4, 49, 133, 89, 13, 0, 16, 70, 84, 229, 207, 84, 225, 0, 129, 50, 58, 6, 138, 50, 72, 0, 0, 11, 67, 76, 148, 128,
-			89, 4, 151, 0, 105, 46, 10, 67, 76, 148, 128, 89, 4, 131, 0, 46, 13, 1, 42, 35, 89, 47, 13, 34, 124, 89, 49, 0, 27, 0,
-			16, 70, 92, 147, 12, 36, 19, 64, 58, 124, 55, 57, 13, 65, 0, 103, 15, 69, 8, 244, 212, 60, 224, 71, 134, 89, 47, 13, 50, 0,
-			103, 9, 67, 72, 134, 76, 34, 124, 55, 0, 14, 70, 12, 128, 84, 32, 19, 64, 76, 35, 47, 13, 65, 0, 12, 201, 77, 80, 131, 5,
-			65, 71, 61, 38, 64, 66, 9, 198, 36, 229, 5, 72, 147, 64, 65, 11, 68, 32, 83, 12, 60, 107, 13, 55, 139, 0, 22, 73, 4, 227,
-			137, 88, 84, 147, 5, 38, 64, 35, 50, 124, 84, 6, 131, 89, 13, 34, 37, 0, 6, 195, 5, 2, 0, 13, 8, 1, 43, 48, 55, 129,
-			89, 0, 0, 8, 197, 17, 147, 129, 52, 240, 65, 11, 5, 99, 39, 101, 115, 116, 89, 141, 0, 72, 6, 65, 44, 49, 141, 0, 0, 16,
-			70, 20, 69, 65, 72, 67, 192, 122, 72, 58, 6, 130, 72, 139, 0, 13, 68, 52, 241, 5, 52, 65, 139, 72, 13, 65, 0, 103, 12, 68,
-			52, 241, 5, 52, 65, 139, 72, 122, 65, 0, 14, 70, 16, 145, 72, 5, 33, 0, 72, 140, 107, 130, 72, 0, 17, 70, 4, 193, 146, 20,
-			67, 192, 35, 55, 83, 34, 6, 141, 72, 139, 0, 0, 21, 72, 88, 145, 84, 56, 19, 69, 76, 80, 84, 132, 122, 47, 50, 13, 65, 6,
-			132, 88, 0, 8, 67, 76, 129, 87, 91, 139, 0, 14, 203, 36, 225, 9, 76, 52, 137, 52, 147, 129, 80, 80, 16, 0, 9, 198, 20, 229,
-			18, 4, 147, 0, 65, 6, 195, 20, 68, 212, 13, 9, 1, 47, 89, 55, 35, 91, 0, 27, 0, 28, 68, 52, 145, 200, 80, 4, 65, 140,
-			47, 107, 6, 35, 84, 47, 116, 0, 32, 49, 82, 104, 97, 118, 101, 32, 116, 111, 32, 21, 68, 52, 145, 200, 80, 65, 140, 47, 107, 119,
-			84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 14, 68, 52, 145, 200, 80, 4, 65, 140, 47, 0, 32, 10, 46, 14, 69, 80, 82, 129, 56,
-			240, 47, 125, 107, 121, 50, 139, 0, 12, 68, 72, 81, 137, 80, 34, 132, 83, 124, 47, 0, 10, 67, 52, 84, 193, 65, 141, 89, 13, 0,
-			13, 4, 95, 100, 105, 97, 6, 117, 65, 55, 138, 47, 0, 6, 65, 48, 122, 55, 0, 0, 17, 70, 72, 244, 193, 72, 147, 192, 34, 139,
-			88, 6, 130, 34, 124, 139, 0, 12, 68, 52, 83, 5, 20, 65, 141, 55, 141, 0, 103, 11, 68, 52, 83, 5, 20, 65, 122, 55, 141, 0,
-			17, 70, 28, 19, 9, 48, 83, 192, 81, 35, 55, 113, 55, 6, 141, 139, 0, 0, 19, 72, 69, 81, 83, 4, 66, 76, 48, 16, 49, 141,
-			89, 13, 6, 72, 132, 13, 0, 9, 67, 5, 85, 15, 133, 47, 139, 0, 0, 13, 67, 92, 128, 84, 4, 58, 129, 47, 0, 103, 10, 47,
-			12, 67, 92, 128, 84, 4, 58, 126, 47, 0, 50, 47, 12, 67, 92, 128, 84, 58, 2, 126, 47, 0, 10, 47, 15, 70, 80, 147, 79, 80,
-			134, 64, 47, 124, 65, 13, 87, 37, 0, 15, 70, 16, 243, 129, 28, 134, 64, 72, 126, 50, 6, 107, 132, 0, 16, 70, 61, 97, 82, 80,
-			198, 64, 139, 84, 6, 131, 47, 55, 124, 0, 0, 8, 196, 85, 4, 197, 80, 65, 37, 17, 70, 72, 81, 137, 56, 84, 153, 34, 113, 83,
-			140, 50, 13, 34, 124, 0, 12, 68, 20, 116, 133, 80, 132, 81, 34, 13, 47, 0, 9, 198, 12, 243, 148, 72, 149, 5, 66, 18, 70, 12,
-			243, 148, 72, 20, 153, 49, 126, 50, 47, 34, 143, 34, 37, 0, 103, 17, 70, 12, 243, 148, 72, 20, 153, 49, 126, 50, 47, 34, 13, 34,
-			124, 0, 6, 65, 52, 122, 65, 0, 0, 16, 71, 76, 86, 67, 32, 83, 12, 20, 89, 141, 91, 6, 122, 55, 0, 6, 195, 53, 0, 65,
-			13, 0, 13, 69, 8, 85, 19, 21, 144, 71, 122, 47, 89, 37, 0, 11, 200, 64, 84, 137, 92, 147, 139, 48, 80, 65, 0, 15, 70, 65,
-			33, 83, 48, 86, 64, 48, 34, 122, 89, 55, 37, 0, 15, 70, 81, 84, 142, 44, 86, 64, 47, 151, 50, 49, 132, 0, 105, 14, 70, 81,
-			84, 142, 44, 86, 64, 47, 131, 50, 49, 132, 0, 16, 70, 81, 34, 76, 60, 118, 64, 47, 34, 124, 55, 13, 75, 37, 0, 17, 70, 65,
-			34, 86, 4, 54, 64, 48, 34, 140, 84, 13, 89, 37, 0, 103, 17, 71, 52, 243, 129, 72, 50, 9, 12, 65, 13, 50, 130, 49, 124, 49,
-			0, 0, 16, 70, 52, 148, 211, 61, 84, 137, 65, 124, 88, 6, 146, 34, 37, 0, 13, 70, 12, 129, 83, 32, 148, 133, 76, 122, 91, 114,
-			0, 15, 70, 65, 33, 77, 36, 84, 133, 48, 34, 13, 65, 145, 0, 103, 9, 198, 61, 97, 82, 81, 84, 133, 65, 10, 67, 44, 149, 201,
-			49, 132, 58, 132, 0, 6, 65, 56, 122, 50, 0, 0, 17, 71, 64, 130, 76, 37, 2, 78, 20, 83, 124, 55, 113, 48, 132, 50, 0, 18,
-			71, 52, 20, 135, 5, 34, 78, 20, 65, 130, 75, 114, 34, 13, 50, 0, 103, 17, 71, 52, 20, 135, 5, 34, 78, 20, 65, 130, 75, 114,
-			34, 132, 50, 0, 18, 71, 12, 243, 15, 77, 49, 85, 52, 49, 126, 55, 13, 89, 6, 144, 65, 0, 0, 26, 74, 16, 80, 207, 53, 2,
-			76, 5, 66, 79, 56, 72, 132, 49, 126, 65, 48, 113, 55, 6, 141, 91, 13, 50, 0, 0, 33, 8, 99, 111, 117, 108, 100, 110, 39, 116,
-			6, 49, 117, 72, 14, 50, 47, 35, 84, 47, 116, 0, 32, 10, 82, 104, 97, 118, 101, 32, 116, 111, 32, 27, 8, 99, 111, 117, 108, 100,
-			110, 39, 116, 49, 117, 72, 14, 50, 47, 13, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 20, 8, 99, 111, 117, 108, 100, 110, 39, 116,
-			4, 49, 117, 72, 14, 50, 47, 0, 32, 10, 16, 71, 48, 145, 200, 80, 226, 78, 28, 55, 140, 47, 50, 124, 68, 0, 9, 198, 12, 243,
-			137, 12, 19, 0, 65, 24, 73, 12, 243, 15, 56, 244, 195, 61, 6, 64, 49, 139, 55, 13, 50, 6, 126, 89, 49, 13, 48, 37, 0, 0,
-			34, 9, 115, 104, 111, 117, 108, 100, 110, 39, 116, 6, 91, 117, 72, 14, 50, 47, 35, 84, 47, 116, 0, 32, 10, 82, 104, 97, 118, 101,
-			32, 116, 111, 32, 29, 9, 115, 104, 111, 117, 108, 100, 110, 39, 116, 91, 117, 72, 14, 50, 47, 107, 13, 84, 0, 35, 77, 81, 104, 97,
-			118, 101, 32, 22, 9, 115, 104, 111, 117, 108, 100, 110, 39, 116, 4, 91, 117, 72, 14, 50, 47, 0, 32, 10, 46, 13, 70, 76, 86, 77,
-			61, 84, 128, 89, 132, 65, 136, 0, 18, 70, 77, 83, 1, 92, 84, 201, 89, 137, 55, 119, 58, 6, 141, 89, 37, 0, 5, 65, 60, 139,
-			0, 0, 9, 67, 60, 208, 82, 139, 65, 130, 0, 15, 70, 16, 243, 15, 72, 84, 192, 72, 13, 55, 136, 125, 89, 0, 12, 68, 64, 192,
-			90, 4, 48, 55, 121, 88, 13, 0, 13, 69, 61, 0, 81, 84, 80, 139, 48, 6, 141, 49, 0, 12, 1, 61, 9, 132, 49, 58, 118, 88,
-			9, 0, 27, 0, 9, 67, 104, 249, 0, 88, 139, 37, 0, 12, 69, 76, 129, 73, 48, 16, 91, 132, 55, 13, 0, 14, 69, 64, 19, 129,
-			52, 16, 48, 35, 50, 13, 65, 121, 0, 12, 68, 25, 85, 15, 56, 83, 137, 47, 126, 50, 0, 8, 197, 64, 51, 67, 36, 16, 13, 0,
-			11, 67, 52, 241, 84, 65, 139, 6, 122, 47, 0, 11, 68, 4, 81, 201, 76, 132, 75, 124, 89, 0, 0, 15, 70, 81, 33, 65, 80, 148,
-			197, 47, 34, 132, 47, 124, 88, 0, 14, 68, 16, 80, 149, 80, 72, 141, 71, 6, 57, 137, 0, 103, 12, 68, 16, 80, 149, 80, 72, 141,
-			71, 57, 137, 0, 9, 1, 64, 10, 35, 47, 10, 0, 76, 6, 65, 64, 48, 132, 0, 0, 9, 198, 65, 33, 83, 20, 229, 0, 36, 17,
-			70, 65, 33, 83, 20, 229, 0, 48, 34, 122, 88, 13, 50, 47, 0, 46, 0, 14, 69, 48, 245, 73, 76, 80, 55, 137, 58, 6, 132, 88,
-			0, 12, 69, 80, 245, 80, 20, 80, 47, 137, 48, 141, 0, 12, 69, 53, 148, 148, 48, 80, 65, 131, 47, 118, 0, 6, 195, 36, 211, 192,
-			13, 0, 15, 70, 16, 244, 143, 80, 134, 64, 72, 126, 34, 13, 87, 37, 0, 16, 70, 4, 229, 8, 60, 230, 64, 35, 50, 47, 13, 50,
-			37, 0, 135, 17, 70, 77, 112, 72, 36, 194, 64, 89, 58, 121, 107, 6, 132, 55, 37, 0, 0, 13, 69, 76, 145, 206, 85, 0, 89, 140,
-			50, 129, 48, 0, 11, 68, 61, 85, 5, 16, 138, 47, 125, 72, 0, 17, 70, 21, 132, 5, 16, 149, 5, 122, 49, 89, 48, 13, 72, 140,
-			47, 0, 16, 70, 16, 84, 207, 48, 21, 5, 72, 122, 89, 13, 55, 13, 47, 0, 7, 65, 68, 49, 57, 137, 0, 0, 12, 68, 88, 83,
-			149, 20, 84, 122, 50, 57, 137, 0, 10, 68, 80, 134, 77, 20, 47, 140, 65, 0, 18, 71, 64, 84, 134, 20, 53, 12, 100, 48, 131, 83,
-			122, 49, 47, 55, 124, 0, 15, 70, 64, 17, 197, 4, 229, 0, 48, 35, 75, 13, 50, 47, 0, 15, 70, 8, 20, 146, 4, 50, 192, 71,
-			122, 34, 13, 49, 0, 103, 14, 70, 8, 20, 146, 4, 50, 192, 71, 35, 34, 13, 49, 0, 12, 68, 4, 226, 77, 20, 35, 50, 124, 65,
-			141, 0, 16, 70, 4, 64, 77, 4, 229, 0, 35, 72, 13, 65, 13, 50, 47, 0, 0, 16, 70, 25, 32, 78, 12, 242, 83, 83, 34, 35,
-			50, 89, 58, 121, 0, 10, 67, 16, 85, 83, 72, 141, 117, 89, 0, 6, 195, 60, 144, 192, 13, 0, 11, 68, 12, 128, 78, 28, 76, 35,
-			68, 0, 47, 11, 68, 12, 128, 78, 28, 76, 141, 50, 75, 0, 0, 17, 70, 64, 83, 133, 48, 244, 5, 48, 13, 50, 122, 55, 13, 48,
-			37, 0, 13, 68, 76, 18, 5, 48, 89, 121, 107, 6, 122, 55, 0, 17, 70, 36, 225, 21, 77, 68, 153, 124, 50, 72, 129, 89, 47, 34,
-			124, 0, 5, 65, 72, 130, 0, 0, 17, 70, 20, 193, 67, 81, 35, 206, 113, 55, 122, 49, 47, 34, 126, 50, 0, 0, 19, 67, 80, 129,
-			64, 86, 115, 15, 58, 140, 55, 0, 81, 119, 104, 105, 108, 101, 32, 10, 67, 80, 129, 64, 86, 115, 0, 46, 34, 18, 70, 72, 80, 204,
-			85, 49, 83, 34, 122, 49, 55, 137, 89, 125, 88, 0, 103, 17, 70, 72, 80, 204, 85, 49, 83, 34, 113, 49, 55, 137, 89, 125, 88, 0,
-			0, 12, 68, 29, 82, 68, 60, 81, 58, 132, 72, 139, 0, 16, 70, 72, 84, 85, 36, 83, 64, 34, 122, 49, 58, 113, 122, 65, 0, 18,
-			4, 95, 100, 111, 116, 58, 124, 86, 72, 6, 126, 47, 119, 71, 129, 84, 0, 0, 11, 68, 80, 145, 1, 48, 47, 140, 72, 118, 0, 15,
-			70, 76, 242, 143, 85, 35, 128, 89, 139, 75, 151, 50, 0, 105, 14, 70, 76, 242, 143, 85, 35, 128, 89, 139, 75, 131, 50, 0, 0, 15,
-			70, 40, 84, 137, 12, 131, 192, 75, 122, 34, 124, 49, 139, 0, 9, 198, 85, 4, 212, 5, 37, 0, 65, 16, 70, 80, 244, 142, 4, 67,
-			192, 47, 135, 50, 6, 141, 72, 139, 0, 17, 71, 77, 0, 71, 32, 85, 20, 36, 89, 48, 119, 81, 122, 47, 37, 0, 17, 70, 61, 33,
-			71, 4, 227, 192, 126, 34, 124, 81, 6, 121, 50, 139, 0, 8, 67, 48, 145, 82, 55, 148, 0, 11, 68, 12, 240, 207, 4, 49, 139, 49,
-			139, 0, 0, 15, 70, 48, 19, 66, 21, 66, 0, 55, 35, 65, 71, 13, 87, 0, 9, 67, 92, 129, 87, 83, 57, 137, 0, 9, 67, 28,
-			145, 192, 81, 124, 81, 0, 0, 10, 68, 12, 244, 144, 76, 49, 135, 0, 46, 12, 68, 8, 192, 78, 12, 71, 55, 153, 50, 49, 0, 0,
-			16, 70, 52, 17, 5, 49, 147, 128, 65, 35, 72, 13, 55, 113, 50, 0, 12, 68, 76, 19, 1, 16, 89, 35, 55, 13, 72, 0, 14, 69,
-			33, 80, 146, 37, 48, 107, 137, 71, 34, 124, 89, 0, 6, 65, 80, 47, 132, 0, 0, 5, 194, 4, 48, 13, 0, 12, 67, 60, 225, 83,
-			58, 128, 50, 88, 0, 46, 11, 13, 70, 12, 21, 1, 73, 34, 0, 49, 13, 47, 130, 0, 14, 69, 8, 197, 82, 73, 144, 71, 55, 151,
-			34, 124, 0, 105, 13, 69, 8, 197, 82, 73, 144, 71, 55, 131, 34, 124, 0, 10, 67, 4, 229, 83, 141, 50, 129, 89, 0, 10, 67, 4,
-			211, 192, 35, 65, 139, 0, 103, 6, 195, 12, 147, 192, 13, 0, 12, 68, 85, 50, 78, 28, 57, 137, 88, 124, 68, 0, 17, 70, 36, 229,
-			5, 73, 3, 204, 124, 50, 47, 114, 48, 139, 55, 0, 103, 9, 198, 36, 229, 5, 73, 3, 204, 65, 16, 70, 29, 33, 68, 36, 83, 148,
-			81, 34, 132, 72, 144, 50, 47, 0, 0, 9, 198, 76, 85, 133, 72, 149, 25, 17, 14, 69, 52, 147, 4, 21, 112, 65, 124, 55, 72, 57,
-			137, 0, 12, 68, 24, 16, 197, 80, 83, 35, 89, 122, 47, 0, 6, 65, 84, 57, 137, 0, 0, 9, 66, 85, 0, 4, 129, 48, 0, 10,
-			16, 70, 64, 85, 71, 20, 245, 0, 48, 57, 137, 90, 6, 139, 0, 103, 11, 200, 81, 34, 85, 53, 2, 1, 57, 64, 66, 9, 198, 32,
-			19, 1, 80, 147, 206, 17, 16, 70, 16, 83, 9, 52, 149, 0, 72, 113, 55, 124, 65, 124, 47, 0, 0, 14, 69, 64, 145, 211, 81, 144,
-			48, 124, 81, 89, 47, 140, 0, 15, 69, 28, 19, 1, 97, 144, 81, 35, 55, 119, 49, 89, 37, 0, 6, 195, 21, 132, 15, 65, 0, 16,
-			70, 76, 245, 84, 32, 83, 132, 89, 121, 83, 6, 122, 50, 72, 0, 18, 71, 65, 54, 67, 32, 245, 9, 12, 89, 140, 49, 6, 126, 47,
-			124, 49, 0, 19, 70, 25, 35, 206, 80, 83, 132, 83, 34, 6, 129, 50, 47, 4, 122, 50, 72, 0, 21, 67, 33, 69, 16, 141, 76, 108,
-			132, 108, 132, 6, 48, 132, 10, 0, 81, 58, 47, 47, 32, 0, 17, 70, 81, 32, 86, 21, 53, 25, 47, 34, 35, 84, 13, 89, 47, 37,
-			0, 10, 67, 73, 80, 153, 34, 137, 71, 37, 0, 9, 67, 5, 116, 153, 119, 34, 140, 0, 6, 65, 88, 84, 132, 0, 0, 21, 66, 5,
-			48, 4, 35, 88, 124, 47, 4, 124, 88, 0, 76, 82, 105, 116, 32, 105, 115, 32, 16, 66, 5, 48, 4, 35, 88, 4, 124, 88, 0, 8,
-			81, 105, 115, 32, 9, 66, 5, 48, 2, 35, 88, 0, 46, 17, 70, 48, 198, 87, 20, 198, 78, 55, 117, 58, 6, 122, 55, 124, 50, 0,
-			16, 71, 44, 21, 8, 21, 34, 78, 20, 49, 35, 87, 34, 113, 50, 0, 18, 71, 64, 19, 5, 77, 66, 78, 20, 48, 35, 55, 13, 89,
-			47, 140, 50, 0, 19, 71, 80, 19, 135, 21, 34, 78, 20, 47, 35, 50, 75, 13, 34, 6, 132, 50, 0, 9, 198, 65, 35, 202, 20, 53,
-			0, 36, 17, 70, 65, 35, 202, 20, 53, 0, 48, 34, 126, 75, 122, 49, 47, 0, 47, 9, 198, 64, 21, 137, 48, 147, 206, 17, 11, 199,
-			9, 150, 129, 57, 66, 78, 20, 103, 65, 0, 0, 17, 70, 12, 246, 149, 52, 83, 0, 49, 126, 88, 13, 65, 6, 122, 55, 0, 26, 67,
-			12, 245, 80, 49, 137, 72, 13, 15, 81, 34, 6, 121, 0, 82, 100, 101, 32, 103, 114, 195, 162, 99, 101, 32, 25, 67, 12, 245, 80, 49,
-			137, 72, 13, 15, 81, 34, 6, 121, 0, 82, 100, 101, 32, 103, 114, 97, 99, 101, 32, 0, 14, 69, 28, 192, 68, 101, 48, 81, 55, 35,
-			72, 124, 89, 0, 14, 69, 13, 84, 148, 37, 48, 49, 151, 47, 125, 89, 0, 105, 13, 69, 13, 84, 148, 37, 48, 49, 131, 47, 125, 89,
-			0, 11, 68, 8, 20, 197, 48, 71, 121, 88, 118, 0, 14, 69, 76, 224, 70, 85, 48, 89, 50, 35, 83, 137, 88, 0, 13, 69, 72, 80,
-			197, 77, 48, 34, 132, 89, 122, 89, 0, 16, 70, 64, 193, 84, 32, 244, 129, 48, 55, 122, 87, 114, 34, 13, 0, 22, 73, 56, 243, 69,
-			56, 51, 1, 81, 84, 133, 50, 13, 65, 122, 68, 49, 55, 13, 76, 114, 0, 13, 68, 52, 245, 5, 48, 65, 139, 47, 6, 122, 55, 0,
-			13, 69, 52, 148, 211, 21, 48, 65, 124, 89, 113, 88, 0, 8, 197, 17, 84, 133, 77, 48, 66, 14, 69, 13, 34, 83, 21, 48, 49, 34,
-			140, 89, 132, 88, 0, 16, 70, 8, 20, 130, 21, 21, 69, 71, 130, 71, 13, 49, 57, 137, 0, 14, 69, 4, 48, 197, 77, 48, 35, 49,
-			89, 122, 89, 0, 36, 14, 69, 4, 48, 197, 77, 48, 35, 49, 89, 122, 89, 0, 47, 15, 69, 72, 148, 195, 61, 48, 34, 124, 89, 49,
-			139, 122, 89, 0, 12, 1, 92, 71, 35, 49, 89, 55, 35, 91, 0, 27, 11, 65, 92, 72, 6, 129, 71, 118, 57, 137, 0, 0, 17, 67,
-			80, 128, 78, 4, 86, 35, 50, 13, 50, 0, 34, 81, 97, 110, 32, 15, 67, 80, 128, 78, 4, 86, 35, 50, 13, 0, 34, 81, 97, 32,
-			11, 67, 80, 128, 78, 86, 119, 50, 0, 72, 46, 14, 70, 32, 145, 5, 61, 85, 0, 107, 140, 72, 138, 47, 0, 18, 70, 5, 1, 82,
-			37, 66, 70, 119, 48, 122, 34, 13, 47, 6, 132, 83, 0, 0, 19, 67, 80, 243, 192, 47, 6, 137, 15, 65, 129, 76, 0, 81, 109, 117,
-			99, 104, 32, 20, 67, 80, 243, 192, 47, 6, 137, 15, 65, 122, 50, 37, 0, 81, 109, 97, 110, 121, 32, 18, 67, 80, 243, 192, 47, 6,
-			137, 15, 83, 57, 137, 0, 81, 102, 101, 119, 32, 8, 67, 100, 83, 192, 57, 139, 0, 0, 18, 70, 36, 66, 84, 5, 35, 196, 140, 72,
-			6, 124, 47, 13, 34, 126, 72, 0, 0, 17, 70, 65, 33, 84, 20, 228, 197, 48, 34, 132, 47, 122, 50, 89, 0, 103, 14, 69, 13, 34,
-			83, 37, 48, 49, 34, 140, 89, 124, 89, 0, 7, 65, 96, 122, 49, 89, 0, 0, 9, 198, 76, 128, 77, 64, 243, 192, 66, 16, 70, 48,
-			243, 135, 4, 115, 192, 55, 126, 68, 81, 13, 81, 139, 0, 0, 13, 69, 77, 80, 129, 73, 80, 89, 137, 71, 114, 137, 0, 14, 69, 76,
-			144, 201, 49, 144, 89, 124, 89, 113, 55, 37, 0, 8, 197, 12, 243, 151, 5, 144, 65, 14, 69, 81, 37, 69, 49, 144, 47, 34, 137, 55,
-			124, 0, 32, 13, 69, 77, 84, 133, 81, 144, 91, 146, 13, 47, 37, 0, 8, 67, 4, 65, 0, 35, 72, 0, 0, 20, 71, 17, 80, 146,
-			61, 99, 137, 44, 72, 137, 71, 34, 6, 126, 84, 50, 124, 49, 0, 0, 17, 70, 80, 20, 5, 77, 68, 153, 47, 35, 48, 13, 89, 47,
-			34, 124, 0, 12, 69, 21, 48, 200, 21, 112, 113, 89, 76, 137, 0, 9, 198, 12, 243, 131, 48, 21, 133, 65, 0, 13, 69, 32, 20, 143,
-			48, 64, 107, 35, 34, 118, 72, 0, 13, 69, 92, 144, 203, 20, 64, 58, 124, 49, 125, 72, 0, 15, 69, 84, 228, 133, 4, 64, 129, 50,
-			34, 6, 122, 72, 0, 46, 16, 70, 76, 245, 86, 20, 226, 82, 89, 137, 84, 13, 50, 6, 145, 0, 13, 69, 73, 81, 199, 20, 64, 34,
-			129, 81, 125, 72, 0, 7, 196, 20, 35, 204, 4, 20, 15, 70, 16, 147, 143, 76, 21, 82, 72, 140, 50, 13, 89, 135, 0, 13, 69, 16,
-			83, 79, 20, 64, 72, 122, 65, 139, 72, 0, 6, 195, 37, 5, 22, 13, 0, 9, 67, 72, 81, 83, 34, 132, 89, 0, 11, 67, 48, 244,
-			192, 4, 55, 126, 89, 0, 46, 19, 72, 5, 85, 15, 52, 240, 137, 48, 80, 133, 47, 13, 65, 13, 71, 144, 55, 0, 0, 9, 198, 88,
-			19, 133, 77, 48, 64, 17, 19, 71, 64, 20, 129, 49, 148, 201, 76, 48, 13, 34, 35, 55, 13, 89, 124, 89, 0, 0, 16, 70, 76, 19,
-			65, 57, 66, 1, 89, 119, 65, 35, 50, 87, 13, 0, 11, 68, 52, 241, 213, 48, 65, 139, 81, 118, 0, 7, 65, 104, 88, 132, 0, 103,
-			7, 65, 104, 88, 122, 72, 0, 0, 16, 69, 8, 86, 79, 56, 64, 71, 124, 57, 126, 50, 72, 0, 74, 10, 19, 66, 5, 64, 6, 141,
-			108, 132, 13, 50, 47, 6, 132, 0, 82, 38, 32, 116, 32, 18, 66, 5, 64, 119, 47, 10, 58, 6, 124, 55, 0, 81, 119, 105, 108, 108,
-			32, 18, 66, 5, 64, 119, 47, 10, 58, 128, 50, 89, 0, 81, 111, 110, 99, 101, 32, 14, 66, 5, 64, 35, 47, 113, 47, 0, 49, 81,
-			105, 116, 32, 13, 66, 5, 64, 2, 35, 47, 13, 0, 34, 81, 97, 32, 10, 66, 5, 64, 35, 47, 0, 34, 46, 72, 13, 69, 40, 84,
-			129, 48, 64, 75, 143, 34, 118, 72, 0, 11, 68, 104, 18, 82, 20, 88, 140, 6, 145, 0, 23, 73, 52, 147, 142, 20, 20, 15, 48, 148,
-			192, 65, 124, 50, 132, 6, 35, 48, 13, 55, 113, 89, 0, 10, 68, 76, 131, 206, 20, 91, 126, 50, 0, 16, 70, 64, 244, 197, 36, 67,
-			206, 48, 13, 89, 140, 72, 13, 50, 0, 15, 70, 52, 85, 1, 64, 131, 210, 65, 122, 47, 13, 83, 135, 0, 0, 17, 67, 92, 20, 192,
-			58, 2, 129, 88, 86, 115, 0, 81, 116, 104, 101, 32, 14, 67, 92, 20, 192, 58, 2, 129, 88, 119, 0, 81, 97, 32, 13, 67, 92, 20,
-			192, 2, 58, 129, 88, 0, 103, 35, 46, 12, 67, 92, 20, 192, 2, 58, 126, 88, 0, 35, 46, 16, 70, 56, 144, 200, 60, 192, 83, 50,
-			124, 49, 13, 55, 13, 89, 0, 12, 201, 40, 242, 1, 56, 225, 83, 9, 84, 135, 66, 9, 67, 80, 133, 64, 87, 150, 0, 105, 8, 67,
-			80, 133, 64, 87, 131, 0, 9, 67, 21, 84, 128, 57, 146, 0, 46, 0, 17, 70, 45, 147, 195, 21, 32, 64, 49, 140, 13, 89, 6, 144,
-			34, 13, 0, 15, 70, 72, 146, 1, 56, 224, 64, 34, 124, 6, 121, 50, 13, 0, 15, 70, 92, 144, 200, 37, 64, 64, 58, 124, 76, 113,
-			47, 130, 0, 20, 72, 5, 161, 82, 8, 18, 74, 4, 224, 35, 88, 114, 71, 140, 75, 6, 121, 50, 0, 15, 70, 80, 17, 134, 21, 64,
-			64, 47, 35, 83, 125, 47, 13, 0, 14, 70, 56, 21, 83, 20, 19, 64, 50, 133, 88, 144, 65, 0, 9, 198, 12, 17, 1, 9, 32, 64,
-			17, 16, 70, 4, 193, 197, 9, 32, 64, 35, 55, 75, 113, 71, 34, 13, 0, 18, 73, 4, 48, 207, 84, 50, 5, 52, 83, 148, 119, 49,
-			137, 91, 65, 154, 0, 6, 195, 61, 67, 200, 13, 0, 18, 70, 80, 148, 129, 52, 148, 213, 47, 124, 34, 35, 65, 124, 6, 89, 137, 0,
-			10, 67, 60, 176, 89, 139, 49, 6, 141, 0, 16, 70, 56, 84, 5, 57, 66, 5, 50, 113, 48, 122, 50, 87, 37, 0, 10, 4, 100, 39,
-			121, 101, 72, 57, 13, 0, 0, 14, 69, 72, 84, 197, 48, 192, 34, 132, 89, 6, 122, 55, 0, 8, 67, 64, 145, 82, 48, 145, 0, 10,
-			199, 36, 229, 5, 72, 197, 68, 20, 65, 20, 72, 32, 19, 12, 20, 197, 74, 4, 128, 107, 35, 55, 113, 6, 55, 137, 57, 13, 0, 18,
-			71, 20, 193, 67, 81, 35, 196, 20, 113, 55, 122, 49, 47, 34, 139, 72, 0, 17, 70, 5, 50, 65, 80, 144, 192, 141, 91, 124, 6, 35,
-			47, 124, 49, 0, 17, 71, 4, 195, 5, 52, 19, 132, 20, 35, 55, 13, 65, 35, 50, 72, 0, 0, 19, 4, 105, 116, 39, 115, 124, 47,
-			89, 107, 35, 72, 0, 78, 81, 104, 97, 100, 32, 8, 67, 16, 245, 192, 72, 138, 0, 0, 14, 70, 44, 83, 132, 20, 195, 0, 49, 122,
-			50, 72, 118, 0, 0, 10, 68, 76, 243, 212, 32, 89, 137, 86, 0, 13, 69, 65, 33, 67, 37, 48, 48, 34, 141, 89, 132, 0, 6, 195,
-			25, 64, 65, 13, 0, 15, 70, 92, 128, 84, 56, 245, 0, 58, 128, 47, 50, 126, 47, 0, 18, 72, 72, 144, 207, 12, 129, 84, 20, 64,
-			34, 124, 49, 13, 91, 141, 72, 0, 5, 194, 4, 80, 13, 0, 11, 67, 32, 245, 192, 4, 107, 138, 0, 10, 47, 12, 67, 4, 230, 64,
-			4, 122, 50, 37, 0, 34, 46, 9, 67, 80, 134, 64, 4, 86, 140, 0, 14, 69, 56, 144, 197, 81, 144, 50, 140, 89, 13, 47, 37, 0,
-			15, 69, 9, 84, 201, 49, 144, 71, 124, 88, 113, 55, 124, 0, 32, 0, 0, 16, 70, 88, 144, 207, 16, 147, 128, 84, 140, 49, 13, 72,
-			125, 50, 0, 16, 70, 64, 242, 197, 52, 243, 128, 48, 139, 49, 141, 65, 126, 50, 0, 10, 67, 80, 147, 153, 47, 140, 50, 37, 0, 14,
-			68, 72, 83, 73, 80, 34, 132, 65, 6, 124, 47, 0, 36, 12, 68, 72, 83, 73, 80, 34, 132, 65, 124, 47, 0, 9, 198, 64, 192, 84,
-			60, 243, 128, 17, 16, 70, 32, 20, 132, 12, 244, 25, 107, 130, 72, 49, 126, 48, 37, 0, 0, 7, 196, 76, 21, 143, 100, 17, 18, 71,
-			80, 83, 5, 64, 21, 8, 100, 47, 13, 55, 122, 48, 13, 87, 37, 0, 16, 70, 76, 243, 21, 80, 147, 206, 89, 13, 55, 137, 91, 13,
-			50, 0, 16, 70, 56, 81, 193, 80, 147, 206, 50, 113, 81, 141, 91, 13, 50, 0, 17, 70, 12, 149, 1, 80, 147, 206, 89, 140, 47, 6,
-			141, 91, 13, 50, 0, 0, 11, 68, 76, 243, 129, 72, 89, 139, 50, 130, 0, 10, 67, 76, 147, 15, 89, 140, 55, 139, 0, 14, 69, 64,
-			19, 20, 73, 144, 48, 133, 55, 47, 34, 124, 0, 11, 200, 12, 130, 77, 64, 19, 154, 20, 80, 67, 7, 196, 84, 226, 3, 72, 13, 0,
-			12, 69, 12, 243, 142, 61, 32, 49, 126, 50, 114, 0, 13, 70, 12, 18, 83, 20, 19, 0, 49, 35, 91, 118, 0, 12, 68, 80, 17, 213,
-			76, 47, 141, 81, 13, 89, 0, 0, 15, 70, 64, 84, 146, 36, 84, 128, 48, 122, 34, 124, 6, 141, 0, 14, 70, 49, 84, 211, 36, 84,
-			128, 55, 129, 89, 124, 141, 0, 13, 69, 80, 129, 83, 37, 48, 87, 132, 89, 124, 89, 0, 0, 16, 70, 12, 244, 143, 56, 85, 0, 49,
-			126, 34, 13, 50, 122, 47, 0, 14, 70, 8, 245, 81, 84, 85, 0, 71, 137, 49, 6, 141, 0, 7, 66, 5, 80, 4, 139, 0, 10, 67,
-			5, 32, 66, 35, 34, 13, 71, 0, 6, 195, 85, 48, 70, 13, 0, 10, 67, 72, 83, 143, 34, 132, 50, 139, 0, 20, 71, 76, 84, 143,
-			80, 243, 137, 56, 89, 122, 34, 13, 47, 6, 139, 50, 124, 50, 0, 11, 68, 72, 85, 133, 72, 34, 113, 84, 145, 0, 0, 15, 70, 4,
-			197, 8, 61, 81, 200, 126, 55, 86, 6, 139, 0, 8, 21, 72, 45, 148, 135, 101, 164, 212, 4, 224, 49, 131, 34, 81, 124, 89, 47, 6,
-			121, 50, 0, 22, 72, 29, 80, 84, 20, 208, 76, 4, 224, 81, 58, 121, 47, 124, 65, 6, 121, 55, 13, 50, 0, 0, 0, 14, 69, 52,
-			145, 213, 20, 192, 65, 132, 100, 6, 122, 55, 0, 12, 68, 32, 20, 212, 100, 107, 141, 89, 47, 124, 0, 0, 14, 4, 95, 54, 48, 111,
-			89, 6, 124, 49, 89, 47, 144, 0, 10, 1, 126, 47, 124, 55, 72, 13, 0, 27, 0, 12, 4, 105, 116, 39, 100, 2, 124, 47, 13, 72,
-			0, 8, 197, 12, 86, 76, 60, 224, 66, 8, 197, 52, 20, 143, 60, 224, 17, 13, 69, 12, 245, 80, 60, 224, 49, 137, 48, 126, 50, 0,
-			15, 4, 95, 101, 116, 104, 132, 87, 124, 6, 126, 48, 124, 49, 0, 13, 4, 95, 116, 108, 100, 47, 6, 124, 55, 72, 13, 0, 0, 9,
-			198, 12, 243, 142, 60, 195, 25, 65, 14, 69, 77, 64, 83, 37, 48, 89, 47, 141, 89, 125, 89, 0, 11, 68, 64, 85, 9, 80, 48, 13,
-			47, 132, 0, 14, 69, 4, 194, 66, 37, 48, 35, 55, 13, 71, 140, 88, 0, 0, 11, 67, 85, 3, 206, 13, 48, 126, 50, 0, 74, 11,
-			68, 77, 84, 200, 36, 89, 137, 91, 37, 0, 12, 68, 76, 81, 213, 20, 89, 122, 81, 58, 141, 0, 10, 68, 21, 148, 137, 20, 144, 34,
-			37, 0, 16, 70, 12, 240, 207, 57, 85, 0, 49, 139, 49, 13, 50, 129, 47, 0, 0, 9, 67, 21, 96, 64, 132, 84, 13, 0, 22, 72,
-			32, 148, 208, 4, 226, 79, 48, 16, 107, 124, 89, 48, 13, 50, 57, 6, 139, 55, 13, 0, 11, 200, 4, 229, 1, 72, 53, 9, 12, 16,
-			66, 19, 71, 44, 147, 15, 52, 85, 5, 72, 49, 124, 55, 6, 126, 65, 113, 47, 114, 0, 0, 12, 69, 65, 85, 20, 36, 224, 48, 117,
-			19, 50, 0, 13, 69, 12, 240, 207, 60, 224, 49, 13, 49, 137, 50, 0, 19, 71, 4, 208, 82, 100, 195, 9, 76, 35, 65, 13, 34, 6,
-			124, 55, 124, 89, 0, 0, 15, 70, 88, 145, 206, 21, 69, 5, 84, 113, 50, 57, 122, 47, 0, 0, 11, 68, 80, 130, 78, 20, 4, 86,
-			140, 50, 0, 12, 68, 48, 83, 206, 20, 55, 132, 6, 139, 50, 0, 11, 68, 77, 80, 86, 20, 89, 58, 121, 84, 0, 12, 69, 52, 148,
-			211, 20, 64, 65, 124, 89, 47, 0, 15, 69, 28, 147, 5, 4, 64, 81, 6, 124, 55, 124, 35, 72, 0, 13, 202, 24, 244, 133, 44, 227,
-			215, 48, 81, 7, 20, 66, 12, 69, 8, 144, 83, 20, 64, 71, 147, 89, 47, 0, 0, 12, 200, 72, 245, 78, 17, 64, 66, 48, 80, 15,
-			66, 18, 71, 64, 84, 137, 52, 85, 5, 72, 48, 13, 34, 124, 65, 113, 47, 114, 0, 17, 71, 64, 20, 211, 20, 225, 197, 72, 48, 35,
-			89, 113, 50, 75, 114, 0, 18, 71, 64, 20, 129, 52, 85, 5, 72, 48, 13, 34, 35, 65, 113, 47, 114, 0, 11, 200, 52, 85, 1, 77,
-			64, 66, 48, 80, 15, 21, 72, 32, 244, 208, 37, 64, 66, 48, 80, 107, 126, 89, 48, 6, 124, 47, 13, 71, 118, 0, 18, 71, 8, 20,
-			143, 52, 85, 5, 72, 71, 13, 34, 126, 65, 113, 47, 114, 0, 18, 72, 4, 195, 5, 28, 144, 78, 12, 80, 119, 55, 132, 75, 13, 50,
-			89, 0, 0, 9, 198, 44, 21, 18, 36, 224, 64, 17, 11, 68, 37, 48, 65, 12, 140, 89, 13, 49, 0, 16, 70, 4, 229, 9, 29, 80,
-			64, 35, 50, 47, 6, 132, 81, 13, 0, 13, 69, 13, 85, 15, 24, 96, 49, 129, 47, 126, 83, 0, 0, 27, 68, 29, 32, 78, 16, 81,
-			34, 6, 35, 50, 72, 89, 13, 55, 6, 132, 50, 0, 81, 115, 97, 108, 105, 110, 101, 32, 20, 68, 92, 245, 78, 16, 58, 4, 138, 50,
-			72, 15, 6, 129, 48, 0, 81, 117, 112, 32, 23, 68, 92, 245, 78, 16, 58, 4, 138, 50, 72, 15, 6, 72, 138, 50, 0, 81, 100, 111,
-			119, 110, 32, 13, 68, 92, 245, 78, 16, 58, 138, 50, 72, 0, 38, 46, 11, 68, 92, 245, 78, 16, 58, 137, 50, 72, 0, 0, 12, 68,
-			56, 243, 206, 20, 50, 139, 58, 128, 50, 0, 14, 69, 52, 244, 211, 4, 64, 65, 139, 89, 6, 121, 72, 0, 10, 68, 72, 81, 83, 20,
-			34, 132, 89, 0, 13, 68, 48, 83, 204, 4, 55, 132, 6, 139, 55, 13, 0, 16, 70, 85, 68, 133, 12, 133, 0, 57, 137, 47, 34, 122,
-			99, 47, 0, 0, 11, 67, 84, 225, 15, 129, 50, 72, 6, 137, 0, 16, 70, 52, 16, 200, 37, 51, 79, 65, 119, 76, 124, 88, 65, 139,
-			0, 6, 195, 20, 97, 128, 13, 0, 9, 198, 64, 19, 132, 61, 32, 64, 66, 15, 70, 52, 147, 133, 73, 96, 64, 65, 113, 50, 131, 84,
-			13, 0, 13, 70, 16, 245, 71, 4, 195, 0, 72, 137, 81, 118, 0, 15, 70, 8, 20, 130, 5, 32, 64, 71, 130, 71, 13, 34, 13, 0,
-			16, 70, 56, 144, 71, 5, 32, 64, 50, 140, 6, 35, 81, 34, 13, 0, 9, 198, 5, 81, 213, 77, 64, 64, 66, 15, 70, 92, 19, 19,
-			4, 195, 0, 58, 133, 55, 89, 133, 55, 0, 16, 70, 77, 67, 205, 5, 64, 64, 89, 47, 139, 65, 13, 47, 13, 0, 9, 198, 72, 240,
-			149, 77, 64, 64, 66, 15, 70, 32, 83, 12, 85, 96, 64, 107, 122, 55, 13, 84, 13, 0, 15, 70, 12, 131, 204, 21, 32, 64, 49, 126,
-			55, 13, 34, 13, 0, 17, 70, 12, 19, 4, 21, 32, 64, 49, 126, 55, 72, 6, 143, 34, 13, 0, 22, 73, 9, 84, 133, 5, 80, 210,
-			4, 54, 64, 71, 57, 146, 6, 126, 49, 34, 13, 89, 37, 0, 0, 16, 70, 12, 243, 65, 56, 50, 5, 49, 13, 65, 35, 50, 76, 37,
-			0, 15, 70, 4, 36, 201, 57, 66, 5, 35, 71, 89, 124, 50, 87, 0, 6, 195, 53, 48, 65, 13, 0, 13, 69, 8, 244, 133, 48, 192,
-			71, 13, 34, 122, 55, 0, 13, 69, 76, 195, 213, 28, 128, 89, 55, 129, 83, 0, 36, 19, 71, 72, 84, 21, 80, 16, 140, 20, 34, 122,
-			48, 57, 137, 47, 13, 71, 118, 0, 13, 69, 72, 83, 9, 76, 128, 34, 122, 55, 113, 91, 0, 19, 71, 65, 35, 205, 20, 224, 68, 20,
-			48, 34, 126, 65, 13, 50, 6, 121, 72, 0, 16, 70, 64, 244, 148, 20, 225, 0, 48, 136, 47, 6, 122, 50, 72, 0, 20, 72, 32, 19,
-			12, 20, 197, 73, 4, 128, 107, 35, 55, 113, 6, 55, 137, 57, 13, 0, 0, 13, 69, 76, 147, 162, 4, 64, 91, 113, 50, 141, 72, 0,
-			0, 7, 196, 80, 16, 143, 60, 66, 13, 69, 24, 20, 212, 20, 224, 83, 120, 89, 13, 50, 0, 0, 9, 198, 28, 19, 12, 21, 34, 65,
-			15, 9, 198, 4, 229, 9, 52, 243, 153, 66, 0, 11, 69, 80, 131, 213, 28, 128, 4, 86, 139, 0, 10, 66, 8, 80, 71, 132, 0, 35,
-			46, 76, 19, 66, 16, 16, 72, 119, 84, 124, 50, 76, 37, 0, 81, 118, 105, 110, 99, 105, 32, 13, 69, 72, 81, 9, 4, 192, 34, 132,
-			72, 147, 55, 0, 13, 69, 12, 20, 9, 76, 128, 49, 119, 48, 132, 91, 0, 13, 68, 9, 86, 15, 52, 71, 129, 49, 89, 13, 65, 0,
-			0, 12, 68, 64, 84, 133, 104, 48, 114, 34, 122, 88, 0, 10, 67, 61, 66, 83, 139, 47, 124, 89, 0, 9, 67, 81, 115, 211, 47, 137,
-			88, 0, 16, 70, 80, 84, 146, 36, 98, 67, 47, 114, 34, 124, 83, 124, 49, 0, 9, 198, 64, 21, 8, 21, 66, 67, 17, 15, 70, 12,
-			21, 8, 60, 194, 67, 49, 35, 87, 55, 124, 49, 0, 0, 7, 196, 21, 113, 69, 44, 20, 15, 69, 12, 243, 150, 20, 224, 49, 127, 50,
-			84, 6, 132, 50, 0, 17, 70, 5, 21, 69, 17, 80, 212, 35, 49, 58, 125, 72, 129, 49, 47, 0, 6, 195, 77, 50, 80, 13, 0, 10,
-			67, 92, 145, 137, 58, 140, 83, 140, 0, 0, 15, 70, 92, 245, 78, 16, 81, 0, 58, 137, 50, 72, 125, 72, 0, 0, 10, 67, 77, 34,
-			64, 89, 34, 4, 132, 0, 10, 68, 44, 131, 69, 72, 49, 65, 145, 0, 10, 67, 80, 241, 15, 47, 13, 72, 137, 0, 17, 70, 52, 244,
-			209, 84, 149, 15, 65, 13, 89, 49, 6, 132, 47, 139, 0, 0, 12, 68, 4, 115, 133, 76, 35, 81, 50, 13, 89, 0, 0, 13, 70, 32,
-			243, 211, 36, 84, 128, 107, 137, 90, 114, 0, 15, 70, 53, 144, 78, 52, 20, 128, 65, 57, 121, 50, 65, 130, 0, 15, 70, 80, 147, 73,
-			16, 84, 128, 47, 124, 65, 124, 72, 114, 0, 14, 70, 76, 227, 207, 44, 84, 128, 89, 50, 137, 49, 114, 0, 9, 67, 69, 83, 201, 49,
-			58, 121, 0, 15, 70, 65, 33, 77, 36, 84, 128, 48, 34, 13, 65, 145, 0, 103, 15, 70, 65, 33, 77, 36, 84, 128, 48, 34, 122, 65,
-			124, 114, 0, 16, 70, 64, 243, 9, 80, 84, 128, 48, 13, 55, 6, 140, 47, 114, 0, 15, 70, 61, 85, 12, 36, 84, 128, 6, 138, 47,
-			55, 4, 148, 0, 16, 70, 60, 53, 15, 8, 84, 128, 126, 49, 47, 6, 139, 71, 114, 0, 10, 67, 40, 81, 9, 75, 122, 72, 140, 0,
-			15, 70, 36, 51, 206, 8, 20, 128, 140, 49, 126, 50, 71, 130, 0, 14, 70, 16, 244, 211, 36, 84, 128, 72, 126, 89, 124, 141, 0, 15,
-			70, 12, 21, 5, 72, 84, 128, 49, 141, 47, 114, 34, 114, 0, 14, 70, 12, 20, 200, 36, 84, 128, 49, 35, 91, 6, 145, 0, 14, 70,
-			4, 227, 212, 32, 84, 128, 119, 50, 129, 86, 114, 0, 0, 0, 15, 70, 16, 80, 143, 72, 18, 0, 72, 122, 71, 13, 34, 13, 0, 11,
-			68, 68, 21, 1, 72, 49, 35, 47, 130, 0, 11, 68, 48, 17, 197, 72, 55, 121, 81, 114, 0, 7, 196, 44, 21, 1, 72, 17, 11, 68,
-			25, 33, 69, 72, 83, 34, 132, 114, 0, 0, 20, 67, 92, 19, 12, 58, 6, 133, 55, 89, 47, 34, 4, 132, 47, 0, 81, 115, 116, 32,
-			15, 70, 76, 48, 76, 64, 83, 0, 89, 49, 35, 55, 48, 118, 0, 9, 67, 64, 243, 12, 48, 139, 55, 0, 22, 72, 28, 20, 135, 4,
-			229, 21, 4, 224, 81, 130, 81, 6, 35, 50, 76, 137, 13, 50, 0, 103, 11, 200, 28, 20, 135, 4, 229, 21, 4, 224, 66, 0, 18, 71,
-			72, 243, 211, 21, 97, 76, 80, 34, 139, 88, 13, 84, 122, 55, 47, 0, 0, 13, 69, 5, 33, 217, 48, 192, 130, 81, 38, 140, 55, 0,
-			16, 70, 80, 85, 1, 57, 84, 192, 47, 122, 47, 13, 50, 13, 89, 0, 9, 197, 72, 80, 193, 48, 192, 66, 36, 13, 69, 72, 80, 193,
-			48, 192, 34, 132, 49, 133, 55, 0, 14, 70, 64, 149, 5, 61, 84, 192, 48, 124, 47, 144, 89, 0, 16, 70, 64, 81, 193, 77, 84, 192,
-			48, 122, 81, 13, 89, 13, 89, 0, 15, 70, 13, 148, 18, 21, 52, 192, 89, 140, 48, 34, 13, 89, 0, 14, 70, 4, 230, 9, 61, 84,
-			192, 35, 68, 91, 13, 89, 0, 0, 12, 67, 9, 85, 0, 4, 71, 129, 47, 0, 8, 46, 18, 72, 64, 130, 76, 37, 4, 9, 56, 80,
-			83, 124, 55, 113, 48, 132, 50, 0, 20, 71, 12, 243, 15, 72, 17, 1, 56, 49, 126, 55, 114, 34, 6, 121, 72, 13, 50, 0, 20, 72,
-			77, 68, 153, 12, 131, 137, 56, 80, 89, 47, 34, 6, 124, 49, 50, 132, 50, 0, 17, 71, 12, 128, 82, 48, 21, 1, 56, 91, 130, 55,
-			13, 47, 13, 50, 0, 0, 16, 70, 88, 149, 18, 36, 243, 0, 84, 124, 47, 34, 132, 13, 55, 0, 13, 69, 48, 144, 200, 20, 224, 55,
-			140, 49, 13, 50, 0, 14, 69, 9, 83, 137, 60, 224, 71, 129, 50, 113, 13, 50, 0, 0, 9, 198, 4, 225, 197, 48, 146, 193, 66, 17,
-			70, 56, 80, 146, 5, 50, 193, 50, 13, 71, 34, 35, 89, 49, 13, 0, 0, 15, 69, 64, 243, 9, 76, 128, 48, 139, 55, 124, 91, 0,
-			41, 46, 11, 68, 76, 21, 68, 36, 89, 138, 72, 37, 0, 9, 197, 16, 85, 1, 36, 192, 103, 66, 11, 67, 13, 144, 78, 89, 140, 6,
-			35, 50, 0, 0, 17, 71, 24, 244, 146, 21, 53, 5, 72, 83, 126, 34, 125, 89, 47, 114, 0, 16, 70, 88, 244, 148, 36, 49, 83, 84,
-			135, 47, 124, 89, 132, 88, 0, 10, 199, 76, 84, 85, 21, 53, 5, 72, 66, 12, 68, 56, 146, 207, 56, 50, 140, 49, 126, 50, 0, 0,
-			14, 69, 16, 80, 204, 4, 224, 72, 122, 49, 55, 119, 50, 0, 14, 69, 4, 194, 83, 60, 224, 35, 55, 124, 89, 13, 50, 0, 12, 68,
-			12, 243, 135, 60, 49, 126, 68, 81, 139, 0, 14, 69, 77, 83, 148, 4, 224, 89, 129, 50, 47, 35, 50, 0, 12, 69, 61, 36, 8, 4,
-			224, 135, 83, 13, 50, 0, 11, 67, 61, 1, 68, 126, 48, 6, 122, 72, 0, 8, 197, 48, 17, 207, 60, 224, 17, 0, 21, 67, 93, 114,
-			73, 72, 129, 71, 118, 57, 137, 72, 129, 71, 118, 57, 137, 47, 6, 137, 0, 7, 196, 57, 148, 19, 16, 13, 4, 193, 128, 43, 0, 0,
-			16, 71, 28, 19, 12, 4, 114, 5, 72, 81, 35, 55, 13, 81, 114, 0, 18, 70, 5, 67, 1, 57, 66, 83, 35, 47, 55, 6, 35, 50,
-			47, 124, 89, 0, 21, 72, 77, 67, 206, 20, 129, 78, 28, 80, 89, 47, 4, 139, 50, 107, 6, 122, 50, 75, 0, 16, 70, 77, 148, 8,
-			36, 194, 83, 89, 124, 83, 13, 55, 125, 89, 0, 18, 72, 8, 192, 78, 12, 208, 78, 28, 80, 71, 55, 13, 65, 126, 50, 90, 0, 19,
-			71, 4, 198, 136, 20, 147, 69, 72, 121, 55, 47, 89, 107, 140, 65, 114, 0, 103, 17, 71, 4, 198, 136, 20, 147, 69, 72, 35, 55, 47,
-			89, 140, 65, 114, 0, 0, 14, 70, 8, 192, 78, 12, 129, 64, 71, 55, 121, 50, 91, 0, 14, 70, 76, 145, 206, 4, 113, 64, 89, 140,
-			50, 113, 75, 0, 15, 70, 64, 148, 5, 81, 65, 64, 48, 124, 48, 6, 122, 47, 0, 17, 70, 56, 18, 86, 21, 65, 64, 50, 140, 6,
-			132, 84, 13, 47, 141, 0, 14, 70, 48, 82, 83, 85, 33, 64, 55, 132, 90, 114, 0, 103, 13, 70, 48, 82, 83, 85, 33, 64, 55, 122,
-			90, 114, 0, 14, 70, 12, 245, 84, 85, 33, 64, 49, 137, 47, 6, 146, 0, 15, 70, 9, 34, 79, 12, 129, 64, 71, 34, 132, 6, 139,
-			91, 0, 0, 19, 71, 52, 144, 210, 61, 51, 198, 80, 65, 140, 49, 34, 13, 89, 126, 83, 47, 0, 12, 201, 53, 83, 20, 37, 3, 5,
-			96, 84, 128, 65, 0, 16, 70, 24, 84, 135, 85, 51, 206, 83, 131, 81, 13, 89, 13, 50, 0, 11, 68, 5, 34, 83, 20, 119, 34, 140,
-			88, 0, 6, 194, 17, 32, 13, 42, 11, 66, 17, 32, 72, 126, 49, 47, 114, 0, 24, 0, 0, 11, 67, 85, 32, 76, 57, 137, 13, 34,
-			118, 0, 18, 72, 12, 128, 82, 48, 84, 212, 60, 224, 76, 130, 55, 89, 47, 13, 50, 0, 14, 70, 24, 147, 133, 77, 49, 64, 83, 113,
-			50, 122, 89, 0, 18, 67, 24, 21, 88, 83, 4, 139, 15, 48, 6, 121, 0, 81, 112, 97, 115, 32, 8, 67, 24, 21, 88, 83, 139, 0,
-			0, 11, 67, 52, 17, 5, 65, 4, 141, 72, 0, 10, 13, 67, 52, 17, 5, 65, 4, 141, 72, 0, 10, 46, 76, 9, 67, 8, 81, 5,
-			71, 132, 72, 0, 10, 67, 76, 241, 129, 89, 139, 83, 13, 0, 6, 195, 21, 97, 193, 13, 0, 10, 199, 92, 244, 139, 80, 16, 140, 20,
-			15, 15, 70, 92, 147, 132, 36, 225, 192, 58, 140, 50, 72, 124, 68, 0, 11, 67, 85, 64, 78, 137, 47, 6, 35, 50, 0, 17, 71, 80,
-			147, 69, 80, 16, 140, 20, 47, 140, 65, 47, 141, 71, 118, 0, 17, 71, 64, 147, 133, 5, 4, 12, 20, 48, 6, 140, 50, 35, 48, 118,
-			0, 21, 71, 64, 83, 137, 57, 53, 76, 4, 48, 13, 50, 6, 124, 50, 89, 57, 117, 55, 13, 0, 20, 71, 29, 80, 67, 4, 211, 204,
-			20, 81, 58, 121, 49, 119, 65, 6, 139, 55, 132, 0, 18, 71, 4, 67, 73, 72, 16, 140, 20, 35, 72, 65, 13, 34, 13, 71, 118, 0,
-			0, 10, 67, 65, 35, 211, 48, 34, 139, 88, 0, 13, 69, 24, 21, 8, 60, 208, 83, 35, 86, 13, 65, 0, 17, 71, 5, 48, 197, 73,
-			64, 73, 56, 35, 89, 114, 47, 6, 141, 50, 0, 6, 195, 21, 5, 0, 13, 0, 14, 69, 28, 144, 147, 60, 224, 81, 124, 71, 89, 13,
-			50, 0, 15, 70, 12, 19, 80, 8, 83, 12, 49, 35, 65, 71, 13, 55, 0, 13, 68, 64, 144, 78, 60, 48, 124, 6, 35, 50, 139, 0,
-			15, 70, 24, 244, 133, 80, 83, 12, 83, 136, 47, 6, 122, 55, 0, 0, 10, 67, 12, 17, 133, 49, 35, 83, 141, 0, 0, 13, 68, 52,
-			144, 77, 36, 65, 140, 6, 35, 65, 37, 0, 17, 70, 65, 35, 212, 136, 120, 128, 112, 114, 111, 116, 101, 103, 101, 0, 29, 12, 69, 16,
-			145, 83, 20, 192, 72, 132, 88, 118, 0, 5, 194, 4, 144, 13, 0, 15, 70, 21, 97, 78, 36, 225, 211, 132, 84, 50, 124, 68, 88, 0,
-			0, 8, 4, 95, 111, 114, 100, 87, 0, 0, 0, 23, 73, 12, 243, 145, 84, 148, 212, 4, 67, 210, 49, 126, 50, 49, 6, 132, 89, 47,
-			13, 72, 136, 0, 15, 69, 4, 192, 133, 37, 64, 133, 55, 71, 6, 132, 124, 47, 0, 15, 4, 95, 109, 99, 110, 65, 6, 35, 49, 34,
-			4, 126, 50, 0, 0, 10, 68, 21, 83, 5, 72, 142, 55, 114, 0, 11, 68, 80, 147, 79, 72, 47, 132, 65, 136, 0, 13, 70, 72, 19,
-			5, 36, 114, 0, 34, 121, 55, 37, 0, 17, 70, 12, 243, 131, 21, 37, 15, 49, 13, 50, 76, 6, 143, 47, 139, 0, 19, 72, 12, 132,
-			143, 52, 244, 207, 52, 80, 49, 34, 139, 65, 13, 89, 139, 65, 0, 6, 195, 12, 85, 0, 13, 0, 15, 70, 72, 85, 18, 36, 19, 0,
-			34, 132, 47, 34, 147, 55, 0, 10, 67, 64, 147, 148, 48, 140, 50, 47, 0, 8, 197, 12, 20, 133, 21, 32, 17, 12, 68, 5, 67, 1,
-			76, 35, 47, 55, 13, 89, 0, 0, 12, 68, 61, 97, 82, 80, 139, 84, 6, 131, 47, 0, 11, 68, 52, 80, 78, 80, 65, 122, 50, 47,
-			0, 11, 68, 48, 80, 78, 80, 55, 122, 50, 47, 0, 15, 70, 32, 243, 19, 80, 84, 128, 107, 139, 55, 89, 47, 114, 0, 0, 20, 71,
-			48, 245, 73, 76, 144, 78, 4, 55, 137, 4, 132, 88, 132, 6, 35, 50, 13, 0, 9, 198, 4, 193, 201, 21, 36, 192, 66, 9, 198, 64,
-			85, 9, 80, 147, 206, 17, 17, 71, 52, 147, 5, 77, 67, 206, 20, 65, 140, 55, 89, 47, 139, 50, 0, 18, 70, 29, 32, 78, 17, 51,
-			206, 81, 34, 6, 35, 50, 72, 89, 129, 50, 0, 13, 70, 28, 245, 82, 52, 85, 0, 81, 146, 65, 141, 0, 9, 198, 24, 148, 200, 56,
-			85, 0, 15, 25, 74, 5, 4, 18, 61, 130, 77, 5, 65, 76, 100, 119, 48, 34, 126, 49, 89, 124, 65, 13, 47, 55, 37, 0, 0, 24,
-			6, 110, 195, 180, 116, 114, 101, 50, 139, 47, 34, 13, 6, 72, 121, 65, 0, 81, 100, 97, 109, 101, 32, 0, 12, 68, 88, 81, 193, 76,
-			84, 141, 81, 13, 89, 0, 20, 72, 5, 35, 65, 28, 81, 4, 60, 224, 130, 65, 119, 81, 6, 122, 72, 13, 50, 0, 17, 70, 81, 34,
-			83, 69, 81, 76, 47, 34, 124, 89, 49, 6, 122, 55, 0, 20, 72, 76, 129, 78, 4, 226, 71, 4, 224, 91, 125, 50, 35, 50, 124, 81,
-			13, 50, 0, 10, 68, 64, 147, 213, 76, 48, 147, 89, 0, 13, 69, 28, 86, 83, 21, 32, 81, 140, 88, 114, 0, 103, 12, 69, 28, 86,
-			83, 21, 32, 81, 132, 88, 114, 0, 12, 68, 8, 20, 201, 76, 71, 141, 89, 124, 89, 0, 0, 11, 68, 12, 20, 143, 48, 49, 35, 34,
-			118, 0, 17, 70, 52, 243, 148, 21, 33, 89, 65, 126, 50, 47, 13, 34, 6, 141, 0, 0, 17, 70, 4, 211, 206, 29, 53, 0, 119, 65,
-			129, 68, 89, 47, 0, 74, 10, 13, 69, 32, 19, 73, 76, 128, 107, 141, 65, 124, 91, 0, 15, 70, 56, 149, 18, 61, 84, 192, 50, 140,
-			47, 34, 13, 89, 0, 13, 69, 33, 86, 154, 4, 128, 107, 13, 88, 6, 121, 0, 0, 19, 71, 29, 85, 9, 21, 36, 133, 104, 81, 137,
-			47, 57, 6, 122, 34, 122, 88, 0, 18, 72, 24, 243, 11, 21, 53, 15, 56, 80, 83, 139, 49, 89, 47, 139, 50, 0, 19, 71, 12, 83,
-			148, 85, 34, 79, 56, 89, 122, 50, 76, 6, 146, 34, 144, 50, 0, 15, 4, 95, 55, 48, 111, 89, 6, 122, 84, 13, 50, 47, 144, 0,
-			0, 13, 69, 72, 81, 201, 60, 224, 34, 132, 75, 13, 50, 0, 19, 71, 52, 18, 143, 72, 67, 205, 60, 65, 141, 75, 114, 72, 6, 139,
-			65, 139, 0, 0, 18, 70, 72, 80, 68, 60, 227, 25, 4, 34, 132, 72, 6, 139, 50, 55, 124, 0, 18, 72, 24, 193, 68, 28, 83, 9,
-			56, 112, 83, 55, 122, 75, 55, 124, 68, 0, 12, 68, 12, 240, 143, 48, 49, 139, 71, 126, 55, 0, 12, 68, 12, 195, 212, 32, 49, 55,
-			139, 86, 0, 36, 9, 198, 4, 195, 19, 64, 144, 197, 65, 0, 14, 69, 105, 84, 137, 12, 128, 88, 57, 117, 34, 124, 49, 0, 12, 69,
-			5, 35, 65, 28, 128, 130, 65, 6, 121, 0, 18, 71, 64, 20, 211, 21, 36, 194, 100, 48, 35, 89, 114, 88, 71, 6, 140, 0, 10, 68,
-			4, 32, 133, 100, 35, 71, 37, 0, 6, 194, 4, 160, 13, 41, 0, 12, 68, 17, 147, 1, 56, 72, 124, 55, 13, 50, 0, 10, 199, 81,
-			32, 70, 4, 193, 193, 72, 17, 9, 198, 77, 64, 67, 12, 21, 15, 17, 0, 14, 69, 8, 133, 84, 4, 224, 71, 137, 47, 6, 35, 50,
-			0, 8, 197, 88, 147, 204, 36, 224, 66, 0, 15, 70, 12, 243, 142, 20, 195, 25, 49, 126, 50, 13, 55, 37, 0, 21, 73, 18, 32, 207,
-			48, 193, 84, 4, 113, 64, 72, 141, 49, 126, 55, 47, 6, 121, 90, 0, 0, 0, 18, 72, 12, 129, 83, 5, 1, 65, 44, 80, 76, 122,
-			89, 13, 48, 132, 49, 0, 19, 72, 5, 4, 18, 20, 229, 9, 12, 80, 119, 48, 34, 122, 50, 108, 124, 89, 0, 0, 13, 68, 4, 211,
-			206, 28, 119, 65, 129, 68, 0, 74, 10, 16, 70, 69, 82, 74, 61, 65, 64, 49, 132, 6, 107, 139, 47, 141, 0, 14, 70, 76, 85, 137,
-			48, 193, 64, 89, 13, 84, 124, 55, 0, 14, 70, 76, 49, 80, 81, 33, 64, 89, 122, 48, 47, 114, 0, 15, 70, 52, 16, 200, 21, 65,
-			64, 65, 119, 91, 122, 47, 37, 0, 16, 70, 52, 16, 193, 9, 33, 64, 65, 13, 49, 121, 71, 34, 13, 0, 14, 70, 28, 20, 146, 61,
-			65, 64, 81, 119, 34, 126, 47, 0, 15, 70, 20, 228, 143, 85, 65, 64, 126, 50, 34, 6, 137, 47, 0, 14, 70, 8, 150, 154, 5, 33,
-			64, 71, 125, 88, 6, 130, 0, 0, 15, 70, 76, 145, 206, 60, 97, 128, 89, 6, 140, 50, 126, 83, 0, 15, 70, 76, 129, 82, 36, 97,
-			128, 91, 6, 122, 34, 113, 83, 0, 18, 71, 52, 148, 195, 72, 80, 78, 80, 65, 124, 89, 49, 34, 144, 50, 47, 0, 0, 12, 68, 76,
-			243, 137, 4, 89, 126, 50, 57, 13, 0, 11, 68, 20, 194, 83, 20, 113, 55, 132, 88, 0, 11, 68, 12, 131, 15, 20, 49, 55, 139, 37,
-			0, 16, 70, 93, 148, 201, 93, 145, 192, 58, 124, 88, 132, 58, 124, 81, 0, 12, 68, 85, 48, 71, 20, 57, 137, 89, 113, 75, 0, 13,
-			68, 72, 85, 83, 20, 34, 132, 6, 57, 137, 88, 0, 9, 198, 8, 197, 68, 28, 83, 206, 16, 0, 10, 67, 100, 245, 64, 57, 137, 0,
-			72, 32, 20, 71, 92, 148, 195, 60, 228, 201, 56, 58, 113, 89, 49, 6, 126, 50, 89, 113, 50, 0, 18, 71, 76, 80, 210, 21, 66, 79,
-			56, 89, 113, 49, 34, 132, 91, 13, 50, 0, 0, 9, 198, 65, 81, 82, 36, 193, 64, 16, 13, 70, 76, 19, 201, 73, 49, 64, 89, 144,
-			91, 13, 0, 16, 70, 20, 228, 137, 69, 81, 64, 122, 50, 34, 6, 132, 49, 141, 0, 17, 70, 36, 224, 197, 57, 49, 64, 124, 50, 89,
-			6, 122, 50, 89, 0, 36, 15, 70, 16, 148, 197, 5, 49, 64, 72, 124, 88, 6, 132, 88, 0, 14, 70, 12, 193, 65, 57, 49, 64, 49,
-			55, 122, 50, 88, 0, 15, 70, 4, 229, 9, 69, 81, 64, 35, 50, 47, 6, 132, 49, 0, 0, 17, 71, 5, 32, 200, 36, 32, 76, 16,
-			130, 76, 124, 71, 133, 55, 72, 0, 0, 14, 70, 92, 20, 146, 36, 225, 192, 58, 135, 34, 124, 68, 0, 15, 71, 76, 128, 82, 20, 16,
-			140, 20, 91, 143, 13, 71, 118, 0, 14, 70, 72, 82, 78, 36, 225, 192, 34, 141, 50, 124, 68, 0, 17, 71, 52, 245, 83, 80, 16, 200,
-			20, 65, 13, 89, 47, 6, 120, 91, 0, 16, 70, 21, 21, 65, 80, 147, 206, 113, 49, 58, 141, 90, 13, 50, 0, 17, 71, 12, 128, 77,
-			60, 210, 76, 20, 49, 35, 65, 13, 65, 140, 55, 0, 11, 199, 5, 69, 18, 36, 37, 84, 20, 17, 36, 18, 71, 5, 69, 18, 36, 37,
-			84, 20, 35, 47, 34, 124, 71, 57, 137, 47, 0, 0, 10, 67, 76, 83, 147, 89, 122, 50, 89, 0, 20, 71, 76, 83, 73, 12, 243, 15,
-			56, 89, 122, 65, 124, 49, 6, 139, 55, 13, 50, 0, 0, 18, 67, 77, 80, 200, 89, 129, 76, 15, 10, 119, 88, 0, 8, 81, 97, 115,
-			32, 9, 67, 65, 34, 88, 48, 34, 132, 0, 0, 0, 14, 70, 48, 83, 206, 5, 33, 0, 55, 122, 50, 114, 72, 0, 18, 66, 16, 80,
-			72, 141, 75, 6, 146, 34, 37, 0, 81, 106, 117, 114, 101, 32, 8, 66, 16, 80, 72, 13, 0, 46, 0, 9, 67, 76, 178, 64, 89, 49,
-			132, 0, 0, 16, 70, 76, 243, 5, 56, 242, 68, 89, 139, 55, 13, 50, 142, 72, 0, 0, 12, 68, 81, 38, 83, 80, 47, 34, 124, 89,
-			47, 0, 12, 68, 16, 84, 15, 80, 72, 132, 48, 139, 0, 103, 11, 68, 16, 84, 15, 80, 72, 122, 48, 139, 0, 0, 14, 70, 48, 16,
-			143, 72, 81, 0, 55, 141, 71, 13, 72, 0, 10, 198, 12, 243, 150, 36, 53, 0, 66, 36, 9, 198, 12, 243, 150, 36, 53, 0, 65, 14,
-			69, 12, 195, 211, 21, 64, 49, 55, 126, 88, 113, 47, 0, 0, 16, 67, 80, 18, 64, 47, 140, 6, 76, 132, 0, 81, 99, 104, 105, 32,
-			8, 67, 76, 50, 64, 89, 140, 0, 9, 67, 52, 242, 64, 65, 58, 121, 0, 6, 195, 4, 98, 192, 13, 0, 21, 68, 92, 147, 132, 76,
-			58, 6, 140, 50, 72, 88, 15, 6, 129, 48, 0, 81, 117, 112, 32, 24, 68, 92, 147, 132, 76, 58, 6, 140, 50, 72, 88, 15, 72, 6,
-			138, 50, 0, 81, 100, 111, 119, 110, 32, 13, 69, 53, 84, 141, 85, 32, 65, 151, 65, 114, 0, 105, 12, 69, 53, 84, 141, 85, 32, 65,
-			131, 65, 114, 0, 12, 69, 16, 83, 137, 21, 32, 72, 113, 50, 148, 0, 0, 15, 70, 4, 225, 204, 21, 49, 89, 35, 68, 81, 118, 89,
-			37, 0, 7, 196, 5, 96, 83, 80, 17, 0, 8, 66, 9, 144, 71, 140, 0, 76, 19, 71, 65, 33, 68, 20, 98, 78, 20, 48, 34, 132,
-			72, 113, 83, 6, 140, 50, 0, 10, 199, 64, 243, 25, 80, 129, 78, 20, 65, 14, 69, 17, 33, 65, 53, 64, 72, 34, 122, 65, 48, 47,
-			0, 11, 68, 8, 146, 143, 84, 71, 132, 90, 137, 0, 13, 69, 8, 19, 12, 61, 64, 71, 35, 55, 13, 47, 0, 0, 9, 67, 80, 131,
-			192, 86, 139, 0, 46, 15, 70, 64, 131, 197, 56, 150, 0, 83, 132, 50, 124, 49, 89, 0, 14, 6, 110, 97, 195, 175, 118, 101, 50, 140,
-			6, 132, 84, 0, 6, 195, 84, 99, 192, 13, 0, 12, 69, 76, 128, 75, 85, 32, 91, 119, 49, 146, 0, 14, 69, 5, 50, 77, 61, 96,
-			35, 88, 125, 65, 126, 83, 0, 12, 69, 48, 243, 211, 21, 32, 55, 137, 88, 114, 0, 8, 197, 12, 243, 139, 21, 32, 65, 13, 69, 12,
-			21, 137, 5, 32, 49, 35, 84, 124, 130, 0, 8, 197, 8, 22, 129, 5, 32, 17, 8, 67, 5, 32, 200, 130, 76, 0, 0, 0, 9, 198,
-			65, 35, 212, 21, 53, 0, 36, 17, 70, 65, 35, 212, 21, 53, 0, 48, 34, 139, 108, 122, 89, 47, 0, 47, 17, 70, 25, 37, 73, 80,
-			147, 206, 83, 34, 137, 6, 124, 91, 13, 50, 0, 9, 198, 12, 243, 148, 21, 53, 0, 36, 17, 70, 12, 243, 148, 21, 53, 0, 49, 126,
-			50, 108, 122, 89, 47, 0, 47, 0, 11, 67, 32, 147, 64, 4, 107, 124, 65, 0, 46, 9, 67, 84, 227, 192, 137, 50, 139, 0, 19, 72,
-			36, 227, 143, 88, 21, 9, 88, 80, 124, 50, 13, 84, 141, 47, 124, 84, 0, 11, 200, 36, 225, 9, 12, 21, 9, 88, 80, 66, 6, 195,
-			21, 53, 0, 13, 6, 195, 4, 115, 64, 13, 0, 0, 15, 70, 48, 21, 82, 20, 224, 197, 55, 126, 34, 13, 50, 89, 0, 16, 70, 65,
-			35, 214, 20, 224, 197, 48, 34, 126, 84, 6, 153, 89, 0, 18, 72, 93, 35, 206, 28, 67, 201, 56, 112, 34, 126, 68, 72, 137, 124, 68,
-			0, 11, 67, 88, 83, 149, 84, 122, 50, 57, 137, 0, 16, 70, 37, 52, 213, 4, 224, 197, 124, 91, 137, 13, 50, 89, 0, 103, 17, 70,
-			25, 84, 197, 48, 17, 197, 83, 57, 137, 88, 13, 55, 121, 90, 0, 0, 13, 68, 88, 242, 76, 108, 84, 58, 121, 55, 6, 121, 0, 0,
-			6, 195, 36, 145, 3, 13, 0, 22, 73, 64, 131, 212, 60, 116, 129, 64, 134, 64, 83, 13, 47, 6, 126, 81, 34, 13, 83, 37, 0, 9,
-			3, 95, 35, 57, 47, 35, 71, 0, 0, 17, 70, 76, 50, 65, 80, 144, 193, 89, 140, 6, 35, 47, 124, 49, 13, 0, 17, 71, 24, 244,
-			133, 77, 64, 76, 48, 83, 136, 89, 47, 6, 133, 55, 0, 9, 67, 4, 195, 0, 133, 55, 0, 42, 0, 14, 70, 72, 86, 78, 60, 193,
-			0, 34, 122, 50, 118, 72, 0, 11, 68, 64, 21, 8, 20, 48, 35, 87, 141, 0, 19, 71, 4, 67, 73, 72, 16, 140, 100, 35, 72, 65,
-			13, 34, 13, 71, 55, 37, 0, 0, 8, 197, 52, 81, 21, 76, 16, 17, 14, 69, 64, 19, 69, 48, 16, 48, 35, 65, 13, 55, 13, 0,
-			15, 69, 80, 244, 5, 44, 16, 47, 139, 48, 6, 132, 49, 13, 0, 15, 69, 37, 64, 76, 36, 16, 124, 47, 6, 35, 55, 113, 13, 0,
-			14, 69, 28, 83, 133, 88, 16, 75, 13, 50, 132, 84, 13, 0, 14, 69, 20, 198, 83, 20, 80, 141, 55, 6, 132, 88, 141, 0, 13, 69,
-			24, 19, 73, 56, 80, 83, 35, 65, 124, 50, 0, 13, 69, 20, 229, 18, 20, 80, 126, 50, 47, 34, 141, 0, 8, 197, 20, 212, 9, 72,
-			80, 65, 8, 197, 20, 208, 143, 48, 80, 65, 13, 69, 16, 244, 193, 28, 80, 72, 139, 89, 113, 75, 0, 13, 69, 16, 240, 66, 48, 80,
-			72, 137, 13, 71, 118, 0, 14, 69, 12, 19, 129, 64, 80, 49, 35, 50, 13, 48, 141, 0, 8, 197, 12, 18, 143, 48, 80, 17, 9, 67,
-			4, 197, 0, 126, 55, 47, 0, 6, 195, 20, 69, 0, 13, 0, 6, 195, 77, 50, 68, 13, 0, 12, 69, 4, 50, 9, 56, 112, 141, 49,
-			124, 68, 0, 0, 11, 68, 25, 147, 4, 20, 83, 140, 55, 72, 0, 12, 68, 49, 144, 210, 4, 55, 140, 49, 34, 13, 0, 11, 200, 36,
-			228, 201, 28, 133, 6, 84, 192, 66, 0, 13, 69, 48, 19, 65, 104, 80, 55, 119, 65, 121, 88, 0, 13, 69, 29, 32, 69, 52, 80, 81,
-			34, 141, 13, 65, 0, 13, 69, 12, 129, 82, 36, 80, 91, 143, 34, 6, 132, 0, 13, 69, 4, 198, 83, 76, 16, 119, 55, 124, 89, 13,
-			0, 14, 69, 88, 145, 78, 56, 16, 84, 124, 6, 122, 50, 13, 0, 14, 69, 32, 21, 129, 56, 16, 107, 119, 84, 35, 50, 13, 0, 8,
-			197, 5, 32, 66, 36, 16, 17, 13, 69, 5, 33, 217, 48, 80, 130, 81, 6, 140, 55, 0, 14, 69, 80, 148, 129, 16, 80, 47, 140, 34,
-			6, 141, 72, 0, 14, 69, 80, 145, 82, 72, 16, 47, 124, 6, 143, 34, 13, 0, 14, 69, 76, 145, 82, 72, 16, 89, 132, 6, 143, 34,
-			13, 0, 13, 69, 72, 148, 209, 84, 80, 34, 113, 89, 49, 141, 0, 15, 69, 72, 144, 133, 56, 16, 34, 140, 71, 6, 132, 50, 13, 0,
-			13, 69, 60, 85, 86, 72, 80, 151, 84, 34, 13, 0, 105, 12, 69, 60, 85, 86, 72, 80, 131, 84, 34, 13, 0, 9, 197, 56, 85, 193,
-			28, 80, 15, 66, 13, 69, 52, 244, 129, 48, 80, 65, 13, 34, 35, 55, 0, 10, 199, 52, 81, 1, 48, 194, 79, 56, 17, 14, 69, 28,
-			19, 1, 28, 16, 81, 35, 55, 13, 81, 13, 0, 14, 69, 24, 147, 129, 48, 80, 83, 113, 50, 121, 55, 37, 0, 15, 69, 8, 19, 129,
-			56, 16, 71, 119, 50, 35, 50, 13, 0, 103, 8, 197, 8, 19, 129, 56, 16, 17, 8, 197, 5, 32, 193, 16, 80, 66, 12, 69, 4, 195,
-			5, 48, 80, 119, 55, 132, 55, 0, 0, 9, 198, 61, 85, 19, 44, 148, 148, 65, 0, 14, 68, 76, 128, 76, 48, 4, 91, 35, 55, 0,
-			32, 46, 10, 14, 69, 64, 82, 201, 56, 112, 48, 132, 49, 6, 124, 68, 0, 9, 67, 21, 34, 69, 144, 34, 37, 0, 10, 67, 8, 18,
-			129, 71, 121, 107, 121, 0, 0, 20, 71, 8, 83, 133, 88, 83, 148, 20, 71, 122, 50, 124, 84, 6, 122, 50, 47, 141, 0, 17, 71, 77,
-			84, 146, 60, 112, 84, 20, 89, 131, 13, 81, 13, 47, 0, 103, 17, 71, 77, 84, 146, 60, 112, 84, 20, 89, 129, 34, 13, 81, 141, 47,
-			0, 18, 71, 65, 33, 68, 36, 48, 84, 20, 48, 34, 122, 72, 113, 49, 141, 47, 0, 10, 199, 36, 224, 78, 36, 208, 84, 20, 16, 17,
-			71, 24, 244, 148, 84, 224, 84, 20, 83, 135, 76, 13, 50, 13, 47, 0, 10, 199, 21, 133, 18, 36, 48, 84, 20, 65, 10, 199, 16, 84,
-			208, 21, 32, 84, 20, 16, 17, 71, 12, 244, 146, 84, 112, 84, 20, 49, 126, 34, 13, 81, 141, 47, 0, 10, 199, 12, 244, 144, 61, 32,
-			84, 20, 16, 16, 70, 9, 33, 84, 33, 33, 78, 71, 34, 122, 86, 34, 13, 50, 0, 14, 69, 4, 97, 140, 85, 128, 119, 83, 55, 129,
-			49, 89, 0, 0, 8, 197, 52, 19, 1, 92, 144, 17, 6, 195, 73, 67, 211, 13, 4, 193, 136, 43, 0, 16, 70, 52, 84, 133, 16, 149,
-			8, 65, 122, 34, 13, 72, 124, 87, 0, 0, 11, 67, 32, 18, 1, 107, 121, 107, 6, 121, 0, 6, 195, 57, 66, 65, 13, 0, 16, 6,
-			104, 97, 100, 110, 39, 116, 107, 35, 72, 14, 50, 47, 0, 35, 15, 70, 92, 21, 6, 61, 33, 0, 58, 126, 47, 83, 13, 72, 0, 19,
-			71, 80, 83, 5, 52, 85, 18, 100, 47, 13, 55, 122, 65, 13, 47, 34, 37, 0, 0, 9, 198, 72, 81, 3, 72, 244, 211, 66, 16, 70,
-			16, 83, 79, 56, 84, 211, 72, 132, 65, 13, 50, 122, 89, 0, 6, 195, 16, 150, 64, 13, 6, 195, 4, 209, 0, 13, 0, 17, 67, 52,
-			244, 212, 65, 139, 89, 47, 15, 13, 84, 0, 81, 111, 102, 32, 18, 70, 9, 81, 1, 64, 84, 212, 71, 137, 72, 13, 48, 6, 122, 89,
-			47, 0, 17, 70, 76, 85, 133, 72, 84, 212, 89, 13, 84, 144, 34, 13, 89, 47, 0, 10, 67, 72, 84, 212, 34, 122, 89, 47, 0, 12,
-			201, 65, 84, 144, 61, 37, 5, 16, 198, 64, 66, 11, 67, 48, 244, 212, 55, 134, 89, 47, 0, 103, 0, 12, 68, 4, 114, 83, 80, 141,
-			75, 124, 89, 47, 0, 0, 14, 69, 65, 33, 83, 21, 64, 48, 34, 132, 89, 122, 47, 0, 9, 198, 52, 83, 69, 57, 67, 192, 17, 13,
-			69, 17, 81, 207, 85, 64, 72, 129, 81, 138, 47, 0, 13, 69, 13, 85, 15, 85, 64, 49, 129, 47, 138, 47, 0, 0, 11, 68, 48, 16,
-			143, 72, 55, 141, 71, 114, 0, 10, 67, 44, 147, 15, 49, 132, 55, 139, 0, 0, 13, 67, 92, 83, 148, 2, 58, 122, 50, 47, 0, 10,
-			46, 16, 70, 8, 145, 5, 24, 244, 132, 71, 124, 72, 124, 83, 13, 72, 0, 12, 68, 29, 84, 149, 76, 81, 137, 34, 137, 88, 0, 13,
-			69, 9, 84, 147, 5, 32, 71, 151, 89, 114, 0, 105, 12, 69, 9, 84, 147, 5, 32, 71, 131, 89, 114, 0, 11, 68, 5, 34, 69, 76,
-			143, 34, 132, 88, 0, 0, 13, 69, 76, 85, 77, 85, 48, 91, 137, 65, 13, 89, 0, 0, 15, 69, 41, 83, 9, 21, 64, 75, 137, 55,
-			124, 6, 122, 47, 0, 17, 71, 29, 82, 78, 21, 97, 82, 20, 81, 58, 124, 50, 125, 84, 145, 0, 14, 69, 60, 49, 76, 61, 64, 126,
-			89, 13, 55, 126, 47, 0, 8, 197, 60, 48, 213, 49, 64, 17, 9, 197, 36, 228, 213, 49, 64, 65, 47, 8, 197, 36, 228, 213, 49, 64,
-			66, 5, 194, 21, 80, 13, 0, 14, 68, 84, 225, 5, 72, 129, 50, 72, 114, 0, 72, 10, 46, 11, 68, 16, 245, 133, 72, 72, 139, 84,
-			114, 0, 11, 68, 44, 81, 137, 72, 49, 132, 83, 114, 0, 0, 13, 69, 45, 35, 199, 21, 32, 49, 34, 139, 81, 114, 0, 13, 69, 52,
-			19, 135, 21, 32, 65, 141, 50, 75, 114, 0, 10, 67, 52, 19, 12, 65, 133, 55, 0, 103, 9, 67, 52, 19, 12, 65, 35, 55, 0, 13,
-			69, 40, 17, 213, 5, 32, 75, 35, 81, 58, 130, 0, 13, 69, 33, 83, 135, 21, 32, 107, 129, 68, 81, 114, 0, 13, 69, 12, 243, 135,
-			21, 32, 49, 126, 68, 81, 114, 0, 12, 69, 8, 243, 199, 21, 32, 71, 117, 81, 114, 0, 12, 68, 5, 50, 197, 92, 119, 89, 49, 57,
-			137, 0, 0, 0, 11, 67, 73, 82, 90, 34, 137, 6, 132, 88, 0, 9, 67, 76, 85, 206, 89, 139, 50, 0, 12, 68, 24, 198, 66, 100,
-			83, 55, 140, 71, 140, 0, 16, 70, 8, 84, 212, 21, 53, 0, 71, 122, 89, 47, 13, 89, 47, 0, 0, 12, 68, 48, 85, 133, 56, 55,
-			132, 84, 13, 50, 0, 20, 72, 64, 82, 143, 72, 21, 9, 88, 80, 48, 13, 75, 126, 34, 13, 47, 124, 84, 0, 17, 72, 32, 84, 133,
-			80, 241, 143, 72, 80, 107, 145, 108, 117, 83, 136, 0, 13, 69, 8, 243, 199, 21, 144, 71, 117, 81, 37, 0, 103, 0, 11, 67, 85, 64,
-			72, 57, 137, 108, 134, 0, 103, 10, 67, 85, 64, 72, 57, 137, 108, 121, 0, 12, 68, 12, 193, 82, 44, 49, 55, 130, 49, 0, 135, 0,
-			0, 12, 67, 4, 225, 0, 35, 50, 72, 0, 72, 8, 46, 24, 73, 81, 34, 67, 21, 32, 84, 61, 4, 192, 47, 34, 140, 89, 6, 122,
-			34, 13, 47, 126, 48, 89, 0, 12, 68, 65, 34, 86, 100, 48, 34, 124, 84, 37, 0, 0, 9, 66, 4, 224, 119, 50, 0, 34, 46, 12,
-			68, 12, 243, 129, 56, 49, 139, 50, 13, 50, 0, 11, 68, 4, 195, 5, 56, 35, 55, 13, 50, 0, 21, 72, 12, 147, 131, 36, 227, 129,
-			80, 144, 89, 124, 50, 89, 124, 50, 6, 35, 47, 37, 0, 12, 68, 48, 147, 133, 56, 55, 124, 50, 113, 50, 0, 14, 69, 32, 243, 73,
-			49, 144, 107, 126, 65, 13, 55, 37, 0, 0, 7, 196, 36, 64, 72, 60, 65, 18, 71, 65, 54, 67, 32, 244, 201, 76, 89, 140, 49, 6,
-			139, 89, 124, 89, 0, 7, 196, 36, 229, 18, 60, 65, 20, 71, 36, 115, 143, 72, 19, 85, 76, 124, 81, 50, 136, 34, 6, 141, 65, 13,
-			89, 0, 15, 70, 24, 16, 213, 49, 70, 64, 83, 35, 49, 118, 108, 37, 0, 0, 13, 68, 92, 130, 76, 20, 58, 4, 140, 55, 0, 28,
-			9, 12, 68, 4, 32, 66, 4, 35, 71, 119, 71, 13, 0, 12, 68, 56, 147, 138, 4, 50, 124, 50, 75, 13, 0, 0, 14, 69, 72, 149,
-			133, 72, 16, 34, 113, 84, 143, 34, 13, 0, 8, 197, 76, 16, 137, 56, 16, 17, 14, 69, 4, 225, 197, 48, 16, 35, 50, 75, 13, 55,
-			13, 0, 13, 69, 4, 194, 67, 36, 16, 119, 55, 132, 91, 13, 0, 12, 69, 65, 32, 71, 84, 80, 48, 34, 121, 81, 0, 12, 69, 64,
-			84, 147, 36, 16, 48, 131, 90, 13, 0, 13, 69, 77, 83, 132, 4, 80, 89, 129, 50, 72, 141, 0, 14, 69, 76, 145, 78, 56, 16, 89,
-			132, 6, 122, 50, 13, 0, 14, 69, 72, 81, 5, 100, 80, 34, 6, 122, 72, 4, 140, 0, 14, 69, 65, 146, 129, 52, 16, 48, 13, 75,
-			121, 65, 13, 0, 8, 197, 64, 20, 143, 48, 80, 17, 13, 69, 61, 32, 78, 28, 80, 126, 34, 113, 50, 75, 0, 8, 197, 52, 18, 143,
-			72, 16, 17, 18, 72, 32, 83, 131, 20, 99, 210, 80, 128, 107, 122, 50, 89, 83, 136, 87, 0, 13, 69, 28, 20, 143, 80, 80, 81, 119,
-			34, 126, 47, 0, 13, 69, 21, 36, 129, 80, 16, 113, 34, 121, 47, 13, 0, 15, 69, 16, 148, 213, 76, 80, 72, 124, 89, 6, 57, 137,
-			89, 0, 13, 69, 16, 18, 12, 36, 16, 72, 141, 55, 132, 13, 0, 14, 69, 12, 246, 79, 80, 80, 49, 140, 6, 139, 47, 37, 0, 11,
-			69, 12, 128, 73, 76, 80, 91, 141, 88, 0, 12, 69, 12, 20, 143, 48, 80, 49, 35, 34, 118, 0, 20, 71, 4, 227, 206, 100, 210, 84,
-			100, 35, 50, 13, 50, 6, 124, 65, 113, 47, 37, 0, 14, 69, 4, 69, 193, 72, 80, 6, 35, 72, 58, 4, 143, 0, 0, 0, 14, 69,
-			81, 80, 82, 20, 112, 47, 58, 130, 34, 122, 81, 0, 10, 67, 52, 19, 9, 65, 121, 55, 37, 0, 17, 71, 72, 83, 132, 21, 99, 213,
-			76, 34, 126, 50, 72, 113, 84, 137, 0, 13, 69, 48, 244, 201, 56, 112, 55, 137, 88, 124, 68, 0, 16, 70, 29, 32, 78, 17, 0, 64,
-			81, 34, 35, 50, 72, 48, 121, 0, 6, 195, 5, 96, 192, 13, 0, 11, 68, 4, 48, 210, 4, 35, 49, 34, 119, 0, 13, 68, 48, 83,
-			206, 4, 55, 132, 6, 139, 50, 13, 0, 12, 68, 28, 243, 142, 4, 81, 4, 13, 50, 13, 0, 11, 68, 28, 83, 196, 20, 75, 132, 139,
-			72, 0, 12, 68, 12, 240, 146, 4, 49, 139, 71, 34, 13, 0, 6, 195, 4, 66, 4, 13, 0, 8, 197, 52, 240, 137, 48, 80, 16, 15,
-			69, 100, 19, 65, 32, 16, 57, 121, 65, 13, 107, 121, 0, 103, 14, 69, 100, 19, 65, 32, 16, 57, 35, 65, 13, 107, 121, 0, 8, 197,
-			101, 99, 206, 56, 80, 66, 12, 69, 64, 131, 197, 8, 80, 83, 132, 71, 132, 0, 15, 69, 52, 22, 9, 56, 80, 65, 35, 49, 89, 6,
-			132, 50, 0, 10, 67, 92, 147, 143, 58, 140, 50, 139, 0, 22, 73, 77, 84, 5, 72, 99, 21, 61, 84, 192, 89, 137, 48, 6, 131, 83,
-			55, 137, 13, 89, 0, 13, 69, 72, 80, 129, 80, 80, 34, 132, 71, 141, 47, 0, 12, 68, 72, 80, 68, 16, 34, 132, 6, 35, 72, 0,
-			11, 69, 69, 82, 67, 32, 80, 49, 132, 91, 0, 12, 69, 65, 54, 67, 32, 80, 89, 140, 49, 132, 0, 13, 69, 64, 148, 129, 80, 80,
-			48, 140, 34, 13, 47, 0, 20, 73, 52, 148, 195, 32, 145, 86, 61, 84, 192, 65, 124, 89, 76, 113, 84, 13, 89, 0, 14, 69, 52, 147,
-			149, 80, 80, 65, 124, 50, 124, 47, 0, 47, 13, 69, 52, 17, 1, 52, 80, 65, 35, 72, 13, 65, 0, 14, 69, 44, 20, 129, 80, 80,
-			49, 13, 34, 121, 47, 37, 0, 13, 69, 21, 98, 78, 12, 80, 113, 84, 124, 50, 89, 0, 12, 69, 5, 84, 211, 36, 80, 126, 89, 37,
-			0, 103, 11, 69, 5, 84, 211, 36, 80, 126, 88, 37, 0, 13, 69, 4, 84, 129, 80, 80, 143, 34, 6, 141, 47, 0, 0, 0, 11, 67,
-			32, 82, 5, 107, 132, 107, 6, 132, 0, 8, 67, 21, 113, 64, 57, 137, 0, 11, 67, 16, 82, 129, 72, 141, 90, 121, 0, 46, 9, 67,
-			9, 34, 69, 71, 34, 132, 0, 8, 197, 52, 211, 210, 64, 112, 13, 0, 20, 71, 88, 145, 201, 48, 19, 148, 20, 84, 124, 75, 113, 55,
-			6, 35, 50, 47, 37, 0, 0, 15, 69, 16, 210, 84, 72, 144, 72, 13, 65, 132, 47, 34, 37, 0, 14, 69, 32, 21, 193, 36, 144, 107,
-			13, 58, 6, 140, 132, 0, 11, 200, 81, 34, 80, 48, 144, 193, 80, 80, 16, 8, 197, 76, 17, 129, 72, 144, 17, 11, 200, 52, 243, 25,
-			8, 65, 78, 84, 208, 66, 11, 200, 36, 195, 9, 80, 84, 129, 80, 80, 16, 11, 200, 16, 83, 9, 8, 84, 129, 80, 80, 16, 21, 72,
-			12, 243, 210, 16, 147, 129, 80, 80, 49, 139, 6, 135, 72, 113, 50, 141, 47, 0, 36, 20, 72, 12, 19, 148, 4, 195, 213, 64, 80, 49,
-			35, 50, 47, 13, 55, 139, 48, 0, 103, 0, 21, 72, 8, 19, 135, 48, 81, 5, 76, 128, 71, 35, 68, 81, 55, 13, 72, 6, 122, 91,
-			0, 12, 68, 4, 192, 77, 60, 35, 55, 13, 65, 139, 0, 0, 32, 7, 109, 117, 115, 116, 110, 39, 116, 65, 6, 129, 89, 14, 50, 47,
-			107, 35, 84, 47, 116, 0, 35, 82, 104, 97, 118, 101, 32, 116, 111, 32, 27, 7, 109, 117, 115, 116, 110, 39, 116, 65, 129, 89, 14, 50,
-			47, 107, 119, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 17, 7, 109, 117, 115, 116, 110, 39, 116, 65, 129, 89, 14, 50, 47, 0, 32,
-			16, 70, 28, 147, 214, 4, 227, 137, 75, 13, 84, 6, 121, 50, 37, 0, 13, 68, 77, 81, 1, 56, 89, 137, 72, 6, 35, 50, 0, 12,
-			68, 76, 81, 1, 56, 89, 113, 72, 35, 50, 0, 9, 198, 64, 150, 154, 21, 34, 65, 15, 13, 69, 21, 98, 76, 16, 240, 132, 84, 118,
-			72, 137, 0, 16, 70, 21, 2, 80, 32, 19, 153, 113, 48, 124, 83, 13, 50, 124, 0, 16, 69, 4, 192, 137, 56, 240, 35, 55, 71, 6,
-			140, 50, 139, 0, 103, 0, 33, 8, 119, 111, 117, 108, 100, 110, 39, 116, 4, 58, 117, 72, 14, 50, 47, 35, 84, 47, 116, 0, 32, 10,
-			82, 104, 97, 118, 101, 32, 116, 111, 32, 28, 8, 119, 111, 117, 108, 100, 110, 39, 116, 58, 117, 72, 14, 50, 47, 13, 84, 0, 73, 35,
-			10, 81, 104, 97, 118, 101, 32, 11, 68, 8, 128, 74, 36, 71, 121, 75, 37, 0, 4, 193, 140, 43, 0, 19, 67, 16, 145, 0, 72, 124,
-			72, 50, 126, 47, 0, 32, 78, 81, 110, 111, 116, 32, 10, 67, 16, 145, 0, 72, 124, 72, 0, 32, 20, 67, 32, 17, 0, 107, 4, 35,
-			72, 15, 89, 129, 65, 0, 81, 115, 111, 109, 101, 32, 19, 67, 32, 17, 0, 107, 4, 35, 72, 15, 122, 50, 37, 0, 81, 97, 110, 121,
-			32, 17, 67, 32, 17, 0, 107, 35, 72, 58, 129, 50, 0, 81, 111, 110, 101, 32, 19, 67, 32, 17, 0, 107, 4, 35, 72, 86, 122, 65,
-			0, 81, 116, 104, 101, 109, 32, 16, 67, 32, 17, 0, 107, 4, 35, 72, 113, 47, 0, 81, 105, 116, 32, 21, 67, 32, 17, 0, 2, 107,
-			119, 72, 2, 71, 124, 50, 0, 35, 81, 98, 101, 101, 110, 32, 16, 67, 32, 17, 0, 107, 35, 72, 47, 137, 0, 49, 81, 116, 111, 32,
-			16, 67, 32, 17, 0, 107, 2, 35, 72, 47, 116, 0, 81, 116, 111, 32, 11, 67, 32, 17, 0, 4, 107, 35, 72, 0, 49, 13, 67, 32,
-			17, 0, 2, 107, 119, 72, 0, 35, 10, 46, 16, 70, 72, 19, 73, 72, 86, 128, 34, 119, 65, 145, 34, 122, 88, 0, 13, 69, 28, 19,
-			132, 32, 144, 81, 35, 50, 72, 37, 0, 13, 69, 17, 84, 136, 4, 208, 72, 129, 34, 13, 65, 0, 9, 198, 76, 16, 130, 5, 66, 67,
-			17, 17, 70, 72, 129, 84, 61, 34, 67, 34, 122, 47, 13, 34, 124, 49, 0, 47, 18, 70, 16, 241, 205, 5, 66, 67, 72, 126, 81, 65,
-			6, 35, 47, 124, 49, 0, 0, 20, 66, 16, 144, 72, 125, 65, 121, 90, 124, 139, 0, 81, 109, 97, 103, 103, 105, 111, 32, 8, 66, 16,
-			144, 72, 140, 0, 41, 15, 70, 88, 20, 137, 21, 70, 64, 84, 13, 34, 147, 47, 37, 0, 8, 67, 37, 35, 206, 148, 50, 0, 17, 70,
-			36, 228, 85, 37, 38, 64, 124, 50, 49, 58, 13, 34, 37, 0, 103, 9, 66, 16, 144, 72, 4, 124, 0, 46, 16, 66, 20, 112, 83, 135,
-			122, 81, 88, 6, 120, 65, 48, 118, 0, 46, 0, 10, 67, 72, 243, 137, 34, 126, 50, 37, 0, 8, 197, 52, 86, 9, 12, 240, 65, 14,
-			69, 44, 244, 207, 88, 240, 49, 126, 89, 13, 84, 139, 0, 12, 68, 81, 38, 73, 56, 47, 34, 140, 124, 50, 0, 10, 67, 28, 83, 137,
-			75, 132, 50, 37, 0, 8, 197, 12, 20, 201, 56, 240, 17, 6, 195, 4, 243, 0, 13, 0, 6, 195, 5, 48, 80, 13, 0, 15, 70, 12,
-			16, 146, 36, 195, 15, 49, 119, 71, 34, 132, 139, 0, 18, 71, 20, 194, 83, 4, 33, 84, 32, 113, 55, 124, 88, 13, 71, 13, 87, 0,
-			17, 70, 52, 85, 8, 36, 226, 211, 65, 132, 87, 6, 124, 68, 49, 89, 0, 20, 72, 12, 243, 77, 84, 226, 81, 84, 80, 49, 13, 65,
-			57, 137, 50, 113, 49, 141, 0, 0, 11, 199, 65, 34, 69, 77, 65, 83, 76, 103, 16, 0, 9, 198, 76, 19, 135, 84, 147, 133, 16, 9,
-			198, 65, 34, 83, 80, 147, 133, 66, 16, 70, 41, 82, 197, 8, 246, 0, 75, 137, 49, 71, 126, 49, 89, 0, 0, 10, 199, 80, 129, 82,
-			20, 99, 210, 20, 65, 18, 71, 76, 80, 210, 21, 66, 86, 20, 89, 132, 49, 34, 13, 47, 124, 84, 0, 9, 198, 61, 97, 82, 48, 244,
-			132, 65, 17, 71, 56, 20, 146, 5, 66, 86, 20, 50, 35, 34, 13, 47, 124, 84, 0, 15, 70, 13, 35, 195, 32, 85, 0, 49, 34, 139,
-			91, 6, 141, 0, 17, 71, 4, 116, 133, 77, 50, 86, 20, 119, 81, 34, 122, 89, 124, 84, 0, 10, 199, 4, 66, 133, 13, 66, 86, 20,
-			65, 0, 19, 73, 92, 129, 82, 21, 114, 84, 32, 19, 0, 58, 143, 58, 124, 86, 133, 55, 0, 13, 68, 4, 69, 76, 80, 35, 72, 129,
-			55, 47, 0, 135, 0, 12, 68, 72, 83, 85, 76, 34, 132, 65, 13, 89, 0, 12, 68, 52, 21, 137, 76, 65, 141, 84, 124, 89, 0, 12,
-			68, 105, 83, 21, 76, 88, 137, 55, 137, 88, 0, 10, 68, 81, 35, 201, 76, 47, 58, 121, 0, 0, 12, 68, 12, 84, 193, 72, 89, 141,
-			88, 6, 130, 0, 9, 198, 76, 83, 73, 80, 243, 133, 65, 13, 69, 64, 147, 5, 85, 0, 48, 140, 55, 129, 48, 0, 16, 70, 16, 240,
-			212, 72, 147, 133, 72, 126, 49, 47, 34, 113, 50, 0, 13, 68, 16, 80, 207, 72, 72, 141, 49, 6, 135, 0, 103, 11, 68, 16, 80, 207,
-			72, 72, 141, 49, 135, 0, 10, 68, 5, 81, 197, 72, 133, 81, 114, 0, 0, 0, 22, 73, 56, 80, 78, 16, 84, 148, 32, 19, 0, 50,
-			132, 6, 35, 50, 72, 114, 87, 121, 55, 0, 11, 199, 36, 229, 5, 73, 37, 80, 80, 67, 36, 11, 199, 36, 229, 5, 73, 37, 80, 80,
-			65, 47, 0, 13, 202, 52, 20, 211, 4, 50, 21, 76, 85, 20, 76, 67, 0, 17, 70, 80, 21, 193, 44, 243, 137, 47, 119, 58, 121, 49,
-			13, 50, 37, 0, 21, 72, 49, 86, 5, 52, 35, 213, 72, 112, 55, 129, 49, 89, 13, 65, 71, 151, 81, 0, 105, 20, 72, 49, 86, 5,
-			52, 35, 213, 72, 112, 55, 129, 49, 89, 13, 65, 71, 131, 81, 0, 12, 68, 72, 84, 201, 56, 34, 122, 88, 124, 50, 0, 0, 19, 71,
-			80, 83, 80, 61, 32, 82, 100, 47, 122, 65, 48, 34, 13, 34, 124, 0, 135, 10, 199, 64, 149, 21, 37, 64, 82, 100, 66, 15, 70, 61,
-			85, 16, 61, 53, 0, 138, 47, 48, 139, 89, 47, 0, 0, 14, 69, 9, 37, 78, 20, 144, 71, 34, 137, 50, 6, 140, 0, 22, 73, 77,
-			67, 210, 101, 65, 76, 48, 147, 135, 89, 47, 133, 34, 124, 47, 122, 55, 124, 68, 0, 16, 70, 72, 21, 133, 56, 245, 83, 34, 35, 84,
-			13, 50, 13, 89, 0, 0, 15, 70, 40, 16, 213, 105, 162, 64, 75, 13, 49, 137, 88, 37, 0, 17, 71, 32, 22, 129, 72, 67, 213, 76,
-			107, 35, 88, 114, 72, 13, 89, 0, 6, 66, 20, 128, 141, 0, 11, 68, 4, 213, 67, 44, 119, 65, 129, 49, 0, 0, 15, 69, 24, 144,
-			83, 12, 240, 83, 132, 6, 35, 89, 49, 139, 0, 6, 195, 60, 52, 128, 13, 0, 6, 195, 9, 147, 196, 13, 6, 195, 9, 51, 196, 13,
-			0, 18, 71, 20, 194, 90, 4, 33, 84, 32, 113, 55, 124, 88, 13, 71, 13, 87, 0, 19, 72, 64, 244, 148, 84, 117, 69, 76, 80, 48,
-			136, 76, 13, 81, 6, 132, 88, 0, 17, 72, 8, 245, 82, 28, 83, 201, 76, 80, 71, 146, 90, 58, 121, 88, 0, 17, 71, 5, 85, 15,
-			29, 32, 80, 32, 133, 47, 13, 81, 34, 35, 83, 0, 0, 14, 68, 16, 242, 78, 28, 4, 72, 137, 124, 68, 0, 10, 46, 8, 67, 40,
-			245, 82, 90, 146, 0, 10, 68, 8, 242, 78, 28, 71, 142, 68, 0, 20, 71, 5, 4, 1, 72, 21, 21, 76, 35, 48, 13, 34, 6, 35,
-			47, 13, 89, 0, 103, 19, 71, 5, 4, 1, 72, 21, 21, 76, 35, 48, 13, 34, 6, 141, 47, 13, 89, 0, 0, 14, 70, 64, 130, 76,
-			37, 4, 5, 83, 113, 55, 132, 48, 0, 0, 19, 67, 92, 147, 132, 58, 6, 140, 50, 72, 15, 6, 129, 48, 0, 81, 117, 112, 32, 23,
-			67, 92, 147, 132, 58, 6, 124, 50, 72, 15, 48, 6, 138, 114, 0, 81, 112, 111, 119, 101, 114, 32, 11, 67, 92, 147, 132, 58, 140, 50,
-			72, 0, 36, 13, 70, 76, 193, 73, 28, 133, 0, 89, 55, 140, 47, 0, 0, 10, 199, 81, 32, 78, 77, 3, 210, 80, 36, 19, 71, 81,
-			32, 78, 77, 3, 210, 80, 47, 34, 35, 50, 89, 48, 136, 47, 0, 46, 13, 69, 24, 147, 137, 80, 80, 83, 140, 50, 140, 47, 0, 13,
-			68, 20, 208, 133, 16, 122, 65, 71, 6, 122, 72, 0, 13, 3, 226, 132, 162, 47, 34, 141, 72, 65, 130, 49, 0, 0, 0, 10, 67, 80,
-			147, 129, 47, 132, 50, 13, 0, 17, 71, 12, 128, 77, 20, 193, 79, 56, 49, 13, 65, 132, 55, 144, 50, 0, 19, 71, 5, 85, 15, 52,
-			21, 15, 56, 133, 47, 6, 126, 65, 13, 47, 13, 50, 0, 0, 10, 199, 81, 84, 142, 80, 16, 140, 20, 15, 11, 68, 76, 243, 142, 100,
-			89, 129, 50, 124, 0, 24, 74, 36, 224, 80, 65, 35, 208, 72, 144, 84, 20, 124, 50, 119, 48, 34, 6, 139, 48, 34, 144, 47, 0, 12,
-			68, 16, 80, 210, 100, 72, 113, 49, 34, 140, 0, 9, 198, 12, 243, 148, 21, 133, 0, 65, 0, 10, 68, 76, 83, 213, 48, 89, 139, 55,
-			0, 11, 68, 72, 81, 193, 48, 34, 132, 81, 118, 0, 13, 69, 32, 83, 9, 84, 208, 107, 132, 55, 144, 65, 0, 11, 200, 21, 129, 67,
-			85, 64, 66, 48, 80, 67, 0, 13, 69, 72, 17, 9, 76, 128, 34, 35, 72, 124, 91, 0, 17, 70, 52, 20, 129, 80, 131, 206, 65, 35,
-			34, 13, 87, 126, 50, 0, 103, 15, 70, 21, 48, 200, 20, 195, 206, 122, 91, 13, 55, 126, 50, 0, 0, 9, 67, 56, 243, 133, 50, 129,
-			50, 0, 9, 67, 16, 243, 133, 72, 129, 50, 0, 13, 67, 28, 243, 133, 2, 81, 134, 50, 0, 103, 10, 46, 12, 67, 28, 243, 133, 2,
-			81, 126, 50, 0, 10, 46, 9, 67, 80, 243, 133, 47, 139, 50, 0, 6, 195, 72, 85, 128, 24, 6, 195, 32, 149, 128, 13, 4, 193, 144,
-			43, 0, 9, 198, 16, 147, 12, 5, 33, 0, 16, 9, 198, 52, 149, 3, 32, 83, 12, 16, 0, 10, 67, 5, 33, 83, 143, 34, 132, 88,
-			0, 8, 67, 20, 145, 0, 132, 72, 0, 11, 68, 8, 84, 153, 48, 71, 122, 34, 118, 0, 0, 17, 70, 32, 84, 143, 37, 51, 64, 107,
-			122, 34, 139, 124, 88, 13, 65, 0, 14, 69, 16, 148, 205, 4, 192, 72, 124, 88, 65, 13, 55, 0, 0, 14, 69, 52, 243, 129, 12, 240,
-			65, 126, 50, 13, 49, 139, 0, 16, 70, 16, 162, 66, 61, 85, 9, 75, 124, 71, 6, 137, 47, 37, 0, 0, 10, 198, 12, 243, 148, 72,
-			20, 212, 66, 36, 14, 67, 80, 36, 208, 47, 141, 71, 118, 89, 48, 137, 50, 0, 0, 13, 67, 28, 85, 0, 2, 81, 122, 47, 0, 10,
-			35, 46, 16, 70, 32, 20, 137, 76, 243, 128, 107, 35, 34, 124, 89, 13, 50, 0, 10, 67, 81, 34, 79, 47, 34, 132, 139, 0, 15, 70,
-			20, 66, 84, 36, 243, 128, 113, 72, 124, 91, 13, 50, 0, 12, 68, 16, 243, 149, 80, 72, 139, 50, 129, 47, 0, 16, 70, 12, 128, 71,
-			72, 147, 128, 91, 119, 81, 34, 124, 50, 0, 103, 15, 70, 12, 128, 71, 72, 147, 128, 91, 35, 81, 34, 124, 50, 0, 17, 70, 8, 149,
-			21, 52, 83, 128, 71, 124, 76, 137, 65, 13, 50, 0, 135, 13, 3, 226, 132, 150, 50, 57, 137, 65, 13, 34, 139, 0, 0, 6, 195, 36,
-			227, 2, 13, 0, 13, 202, 92, 244, 132, 65, 35, 195, 21, 52, 207, 72, 66, 16, 70, 12, 240, 203, 77, 84, 133, 4, 49, 126, 49, 91,
-			6, 146, 0, 15, 70, 12, 20, 200, 52, 84, 133, 49, 35, 90, 65, 145, 0, 103, 14, 70, 12, 20, 200, 52, 84, 133, 49, 35, 91, 65,
-			145, 0, 17, 70, 9, 35, 195, 33, 84, 133, 71, 34, 139, 6, 91, 146, 34, 0, 103, 14, 70, 9, 35, 195, 33, 84, 133, 71, 34, 139,
-			91, 114, 0, 0, 20, 71, 65, 34, 77, 5, 97, 82, 4, 48, 34, 132, 65, 13, 84, 6, 143, 34, 13, 0, 12, 201, 92, 244, 132, 65,
-			35, 195, 21, 52, 192, 66, 17, 71, 48, 147, 79, 85, 50, 78, 20, 55, 124, 65, 13, 88, 132, 50, 0, 17, 71, 33, 84, 146, 36, 48,
-			78, 20, 107, 131, 13, 49, 141, 50, 0, 103, 17, 71, 33, 84, 146, 36, 48, 78, 20, 107, 129, 34, 113, 49, 141, 50, 0, 21, 73, 12,
-			193, 65, 56, 194, 78, 21, 52, 192, 49, 55, 122, 50, 55, 124, 50, 13, 89, 0, 23, 73, 12, 128, 82, 37, 51, 65, 80, 144, 192, 49,
-			35, 34, 124, 89, 65, 6, 35, 47, 124, 49, 0, 0, 12, 68, 52, 243, 133, 80, 65, 139, 50, 6, 141, 0, 14, 70, 64, 197, 77, 8,
-			84, 128, 48, 55, 129, 65, 114, 0, 15, 69, 52, 147, 9, 21, 80, 65, 132, 55, 6, 57, 137, 0, 103, 13, 69, 52, 147, 9, 21, 80,
-			65, 132, 55, 57, 131, 0, 11, 68, 48, 80, 80, 80, 55, 122, 48, 47, 0, 0, 16, 70, 12, 149, 1, 16, 83, 0, 89, 124, 47, 13,
-			72, 122, 55, 0, 0, 17, 70, 4, 117, 73, 48, 84, 129, 35, 81, 132, 55, 6, 143, 34, 13, 0, 13, 69, 12, 19, 143, 21, 48, 49,
-			13, 50, 137, 88, 0, 13, 3, 226, 133, 148, 47, 137, 87, 6, 131, 72, 88, 0, 0, 15, 67, 92, 147, 12, 58, 124, 55, 47, 116, 0,
-			81, 116, 111, 32, 9, 195, 92, 147, 12, 76, 46, 32, 10, 12, 68, 12, 129, 82, 36, 91, 143, 34, 6, 132, 0, 15, 70, 32, 244, 212,
-			21, 52, 192, 107, 139, 89, 47, 122, 89, 0, 0, 12, 68, 36, 229, 5, 48, 124, 50, 108, 122, 55, 0, 10, 199, 28, 243, 196, 56, 145,
-			200, 80, 66, 0, 0, 10, 199, 76, 80, 129, 77, 66, 65, 56, 17, 16, 70, 88, 145, 78, 56, 84, 197, 84, 132, 13, 50, 6, 132, 88,
-			0, 19, 71, 65, 34, 86, 5, 66, 79, 56, 48, 34, 140, 84, 6, 141, 91, 13, 50, 0, 18, 72, 21, 97, 82, 101, 66, 9, 56, 112,
-			122, 84, 34, 113, 87, 124, 68, 0, 9, 198, 16, 144, 71, 56, 244, 197, 67, 10, 199, 8, 21, 20, 4, 194, 79, 56, 17, 0, 12, 68,
-			81, 32, 67, 100, 47, 34, 141, 89, 37, 0, 11, 67, 72, 21, 76, 34, 138, 6, 137, 55, 0, 15, 70, 8, 19, 12, 5, 53, 0, 71,
-			35, 55, 13, 89, 47, 0, 13, 3, 226, 133, 147, 58, 126, 50, 87, 6, 131, 72, 0, 0, 13, 69, 16, 148, 206, 21, 144, 72, 124, 88,
-			50, 37, 0, 18, 70, 12, 243, 15, 72, 17, 15, 49, 126, 55, 114, 34, 6, 121, 72, 139, 0, 14, 203, 77, 84, 5, 73, 53, 18, 84,
-			53, 21, 72, 80, 65, 11, 68, 72, 83, 129, 48, 34, 132, 50, 118, 0, 11, 68, 64, 83, 129, 48, 48, 132, 50, 118, 0, 13, 69, 57,
-			83, 66, 49, 144, 50, 129, 65, 55, 37, 0, 14, 203, 36, 225, 146, 5, 53, 18, 84, 53, 21, 72, 80, 65, 12, 68, 12, 19, 129, 48,
-			49, 13, 50, 35, 55, 0, 11, 68, 8, 19, 129, 48, 71, 141, 50, 118, 0, 0, 17, 70, 20, 33, 78, 21, 160, 82, 122, 71, 13, 50,
-			6, 132, 88, 114, 0, 23, 73, 72, 84, 208, 37, 32, 84, 61, 38, 64, 34, 122, 89, 48, 34, 13, 47, 152, 34, 37, 0, 103, 23, 73,
-			72, 84, 208, 37, 32, 84, 61, 38, 64, 34, 113, 89, 48, 124, 34, 13, 47, 13, 34, 124, 0, 17, 70, 32, 243, 73, 56, 83, 64, 107,
-			126, 65, 13, 50, 13, 65, 0, 103, 16, 70, 32, 243, 73, 56, 83, 64, 107, 126, 65, 124, 50, 122, 65, 0, 15, 70, 24, 19, 73, 48,
-			144, 82, 83, 13, 65, 124, 55, 145, 0, 0, 6, 195, 76, 192, 64, 13, 0, 15, 70, 64, 148, 85, 4, 229, 0, 48, 132, 49, 13, 50,
-			47, 0, 9, 198, 61, 85, 12, 60, 242, 192, 65, 11, 68, 36, 225, 9, 20, 124, 50, 72, 37, 0, 9, 198, 24, 20, 133, 92, 83, 12,
-			66, 0, 17, 70, 100, 84, 133, 88, 19, 128, 57, 122, 34, 13, 84, 6, 35, 50, 0, 9, 198, 8, 18, 18, 4, 147, 128, 66, 12, 68,
-			12, 197, 217, 16, 49, 55, 137, 124, 72, 0, 17, 71, 48, 16, 153, 72, 147, 148, 32, 55, 35, 71, 114, 124, 50, 87, 0, 0, 0, 15,
-			70, 12, 19, 12, 36, 244, 5, 49, 119, 55, 147, 48, 37, 0, 9, 198, 20, 229, 133, 48, 244, 5, 36, 17, 70, 20, 229, 133, 48, 244,
-			5, 121, 50, 84, 13, 55, 139, 48, 0, 103, 17, 70, 20, 229, 133, 48, 244, 5, 122, 50, 84, 13, 55, 139, 48, 0, 46, 10, 67, 4,
-			128, 64, 121, 107, 6, 121, 0, 16, 8, 95, 98, 114, 97, 105, 108, 108, 101, 71, 34, 6, 141, 55, 0, 0, 11, 68, 52, 20, 137, 20,
-			65, 119, 34, 132, 0, 11, 68, 5, 33, 213, 20, 130, 81, 57, 137, 0, 0, 18, 70, 76, 19, 148, 36, 17, 207, 89, 35, 50, 47, 124,
-			6, 121, 81, 139, 0, 10, 68, 78, 81, 8, 20, 91, 132, 13, 0, 12, 68, 52, 244, 5, 16, 65, 139, 48, 122, 72, 0, 0, 0, 10,
-			67, 16, 19, 129, 72, 141, 50, 13, 0, 9, 67, 88, 81, 192, 84, 122, 75, 0, 13, 201, 84, 225, 5, 72, 116, 143, 84, 225, 0, 65,
-			37, 21, 73, 52, 17, 5, 52, 242, 83, 20, 195, 5, 65, 35, 72, 13, 65, 13, 88, 122, 55, 0, 8, 67, 20, 113, 192, 122, 81, 0,
-			18, 71, 16, 19, 132, 20, 194, 79, 56, 72, 35, 50, 72, 113, 55, 147, 50, 0, 11, 3, 226, 130, 172, 57, 146, 34, 139, 88, 0, 0,
-			18, 71, 12, 145, 193, 72, 85, 20, 20, 89, 124, 81, 13, 6, 34, 122, 47, 0, 0, 13, 69, 77, 64, 82, 73, 144, 89, 47, 121, 34,
-			124, 0, 0, 15, 70, 13, 34, 67, 33, 67, 206, 49, 34, 140, 47, 13, 50, 0, 9, 3, 226, 130, 169, 58, 126, 50, 0, 0, 17, 70,
-			52, 244, 137, 5, 37, 25, 65, 126, 34, 124, 6, 130, 47, 37, 0, 11, 68, 28, 198, 78, 56, 81, 55, 124, 50, 0, 9, 67, 72, 81,
-			192, 34, 122, 75, 0, 10, 67, 32, 243, 1, 21, 101, 115, 0, 47, 17, 70, 32, 84, 133, 16, 149, 25, 107, 114, 34, 122, 72, 113, 47,
-			37, 0, 11, 67, 28, 19, 1, 81, 141, 55, 13, 0, 103, 9, 67, 12, 243, 133, 49, 139, 50, 0, 15, 70, 8, 245, 84, 37, 21, 69,
-			71, 137, 47, 6, 132, 49, 0, 6, 195, 84, 51, 1, 13, 10, 3, 226, 130, 168, 34, 137, 48, 132, 0, 0, 15, 70, 64, 198, 77, 61,
-			85, 8, 48, 55, 124, 65, 13, 87, 0, 19, 71, 80, 83, 5, 64, 131, 206, 100, 47, 13, 55, 6, 122, 83, 13, 50, 37, 0, 0, 10,
-			67, 80, 133, 83, 86, 129, 89, 0, 8, 22, 72, 64, 19, 5, 77, 66, 78, 36, 16, 48, 35, 55, 13, 89, 47, 6, 124, 50, 132, 13,
-			0, 10, 67, 64, 197, 83, 48, 55, 129, 89, 0, 15, 69, 52, 145, 4, 5, 144, 65, 4, 124, 72, 72, 6, 141, 0, 11, 67, 21, 129,
-			83, 122, 49, 89, 125, 88, 0, 0, 18, 66, 32, 80, 107, 132, 15, 107, 6, 35, 72, 0, 49, 81, 104, 97, 100, 32, 9, 66, 32, 80,
-			107, 132, 0, 72, 33, 10, 67, 73, 82, 78, 34, 137, 113, 50, 0, 7, 66, 40, 16, 57, 121, 0, 8, 66, 24, 144, 83, 4, 140, 0,
-			0, 9, 198, 56, 21, 9, 88, 149, 25, 17, 17, 70, 52, 18, 143, 72, 149, 25, 65, 13, 75, 126, 34, 113, 47, 37, 0, 0, 14, 67,
-			92, 20, 212, 2, 58, 126, 89, 47, 0, 46, 35, 46, 10, 67, 92, 20, 212, 58, 141, 89, 47, 0, 17, 70, 88, 243, 3, 4, 227, 192,
-			84, 126, 55, 49, 6, 141, 50, 139, 0, 10, 67, 32, 82, 0, 107, 122, 107, 0, 46, 16, 70, 12, 16, 137, 56, 85, 0, 49, 35, 71,
-			125, 50, 13, 47, 0, 0, 16, 70, 32, 245, 83, 80, 243, 128, 107, 57, 137, 89, 47, 13, 50, 0, 9, 198, 4, 229, 9, 28, 83, 128,
-			65, 15, 4, 95, 111, 103, 111, 6, 126, 81, 126, 50, 4, 122, 49, 0, 0, 0, 13, 69, 76, 80, 77, 85, 48, 91, 141, 65, 13, 89,
-			0, 14, 69, 44, 19, 147, 5, 48, 49, 35, 50, 88, 13, 89, 0, 13, 69, 32, 80, 146, 21, 112, 107, 132, 71, 34, 137, 0, 13, 69,
-			84, 225, 9, 21, 48, 129, 50, 72, 37, 88, 0, 13, 69, 76, 84, 137, 21, 48, 89, 145, 34, 37, 88, 0, 8, 197, 61, 85, 12, 5,
-			112, 65, 14, 70, 32, 145, 200, 24, 149, 133, 107, 140, 83, 140, 84, 0, 19, 70, 21, 48, 193, 64, 148, 205, 122, 89, 49, 6, 141, 48,
-			113, 88, 13, 65, 0, 18, 70, 12, 243, 9, 76, 85, 77, 49, 126, 55, 13, 89, 6, 132, 13, 65, 0, 0, 17, 70, 65, 35, 212, 60,
-			51, 204, 48, 34, 139, 47, 13, 49, 126, 55, 0, 16, 70, 64, 84, 134, 20, 53, 0, 48, 114, 83, 122, 49, 47, 0, 36, 16, 70, 64,
-			84, 134, 20, 53, 0, 48, 131, 83, 122, 49, 47, 0, 47, 10, 67, 24, 150, 0, 83, 124, 49, 89, 0, 12, 67, 17, 81, 84, 72, 57,
-			137, 6, 122, 47, 0, 17, 71, 4, 69, 133, 73, 66, 90, 20, 35, 72, 84, 114, 47, 140, 88, 0, 0, 10, 67, 81, 148, 15, 47, 140,
-			48, 139, 0, 11, 4, 95, 104, 111, 107, 107, 6, 117, 49, 0, 0, 10, 66, 37, 48, 2, 124, 88, 0, 35, 46, 16, 70, 32, 19, 73,
-			49, 67, 206, 107, 35, 65, 118, 47, 13, 50, 0, 16, 70, 4, 192, 193, 80, 83, 0, 35, 55, 49, 119, 47, 122, 55, 0, 6, 195, 65,
-			35, 198, 24, 0, 13, 69, 80, 131, 205, 5, 48, 47, 126, 65, 13, 89, 0, 16, 70, 12, 19, 130, 21, 36, 129, 49, 35, 50, 71, 13,
-			34, 13, 0, 13, 69, 24, 17, 67, 21, 48, 83, 132, 89, 132, 88, 0, 0, 11, 68, 72, 82, 75, 36, 34, 141, 49, 132, 0, 0, 7,
-			196, 64, 21, 5, 48, 17, 11, 200, 88, 81, 197, 80, 21, 9, 88, 80, 15, 11, 68, 80, 245, 1, 48, 47, 139, 47, 118, 0, 19, 72,
-			64, 130, 76, 37, 53, 9, 56, 80, 83, 124, 55, 113, 89, 47, 140, 50, 0, 13, 69, 24, 82, 83, 81, 144, 83, 140, 89, 47, 37, 0,
-			14, 69, 12, 19, 129, 73, 144, 49, 13, 50, 143, 34, 37, 0, 12, 68, 8, 20, 201, 48, 71, 141, 88, 118, 0, 103, 0, 10, 67, 21,
-			96, 78, 122, 84, 13, 50, 0, 6, 195, 37, 52, 0, 13, 0, 15, 70, 80, 245, 76, 61, 84, 197, 47, 137, 55, 6, 137, 88, 0, 15,
-			70, 77, 83, 77, 60, 228, 197, 89, 129, 65, 13, 50, 88, 0, 9, 67, 72, 83, 192, 34, 132, 139, 0, 10, 199, 64, 244, 131, 20, 192,
-			73, 56, 16, 15, 70, 13, 33, 86, 5, 52, 197, 49, 34, 13, 84, 35, 89, 0, 0, 15, 70, 24, 18, 82, 21, 53, 0, 83, 143, 34,
-			13, 89, 47, 0, 15, 70, 5, 32, 200, 37, 51, 192, 130, 76, 6, 140, 89, 139, 0, 0, 15, 70, 5, 34, 193, 57, 48, 83, 130, 49,
-			13, 50, 89, 133, 0, 15, 69, 84, 225, 5, 57, 144, 129, 50, 72, 124, 50, 6, 140, 0, 13, 69, 81, 35, 208, 33, 144, 47, 34, 139,
-			83, 37, 0, 8, 197, 77, 84, 150, 21, 144, 36, 14, 69, 77, 84, 150, 21, 144, 89, 151, 84, 141, 0, 105, 47, 13, 69, 77, 84, 150,
-			21, 144, 89, 131, 84, 141, 0, 47, 13, 69, 72, 84, 12, 5, 144, 34, 132, 48, 55, 141, 0, 15, 69, 49, 86, 21, 73, 144, 55, 129,
-			49, 91, 114, 34, 37, 0, 13, 69, 12, 243, 69, 49, 144, 49, 129, 65, 55, 124, 0, 0, 9, 66, 20, 192, 4, 122, 55, 0, 46, 5,
-			194, 36, 64, 13, 0, 10, 67, 32, 20, 192, 107, 35, 88, 0, 42, 17, 67, 32, 20, 192, 107, 4, 35, 88, 113, 47, 0, 49, 81, 105,
-			116, 32, 19, 67, 32, 20, 192, 107, 119, 88, 50, 126, 47, 0, 35, 49, 81, 110, 111, 116, 32, 19, 67, 32, 20, 192, 107, 13, 88, 50,
-			2, 126, 47, 0, 35, 81, 110, 111, 116, 32, 16, 67, 32, 20, 192, 107, 35, 88, 47, 137, 0, 49, 81, 116, 111, 32, 21, 67, 32, 20,
-			192, 2, 107, 119, 88, 2, 71, 124, 50, 0, 35, 81, 98, 101, 101, 110, 32, 11, 67, 32, 20, 192, 107, 35, 88, 0, 46, 49, 12, 67,
-			32, 20, 192, 2, 107, 119, 88, 0, 35, 46, 9, 198, 52, 83, 12, 37, 52, 193, 17, 8, 67, 81, 148, 128, 47, 148, 0, 10, 67, 80,
-			148, 192, 47, 124, 88, 0, 46, 6, 195, 36, 244, 192, 13, 0, 15, 70, 40, 19, 133, 37, 35, 192, 90, 119, 50, 143, 34, 139, 0, 6,
-			195, 48, 20, 4, 13, 0, 15, 70, 77, 65, 80, 32, 83, 128, 89, 47, 132, 84, 13, 50, 0, 15, 70, 20, 209, 82, 76, 243, 128, 122,
-			65, 114, 89, 13, 50, 0, 17, 70, 4, 225, 207, 48, 19, 128, 35, 68, 81, 6, 139, 55, 13, 50, 0, 10, 67, 28, 245, 15, 81, 139,
-			47, 137, 0, 10, 67, 56, 21, 15, 50, 141, 47, 139, 0, 0, 9, 198, 52, 83, 9, 77, 48, 64, 17, 9, 198, 52, 83, 12, 37, 48,
-			64, 17, 13, 69, 72, 17, 199, 20, 64, 34, 35, 81, 125, 72, 0, 14, 69, 53, 148, 137, 4, 64, 65, 124, 34, 124, 35, 72, 0, 13,
-			69, 40, 17, 199, 20, 64, 75, 35, 81, 125, 72, 0, 12, 69, 32, 19, 135, 20, 64, 107, 35, 68, 72, 0, 13, 69, 16, 241, 199, 20,
-			64, 72, 126, 81, 125, 72, 0, 15, 71, 8, 245, 82, 28, 83, 201, 76, 71, 146, 90, 58, 121, 0, 0, 13, 67, 32, 148, 192, 107, 124,
-			88, 0, 72, 34, 46, 10, 17, 71, 44, 132, 149, 76, 50, 5, 88, 49, 34, 137, 89, 76, 122, 83, 0, 12, 67, 48, 20, 192, 4, 55,
-			121, 89, 0, 103, 46, 11, 67, 48, 20, 192, 4, 55, 35, 89, 0, 46, 0, 11, 68, 37, 33, 78, 20, 140, 34, 132, 50, 0, 15, 70,
-			29, 37, 70, 25, 145, 4, 81, 34, 124, 83, 124, 87, 0, 16, 70, 72, 84, 18, 37, 48, 76, 34, 113, 48, 34, 140, 88, 118, 0, 16,
-			70, 72, 83, 78, 4, 229, 0, 34, 122, 65, 50, 13, 50, 47, 0, 13, 68, 64, 20, 212, 4, 48, 121, 89, 47, 13, 0, 103, 10, 68,
-			60, 50, 18, 20, 139, 49, 114, 0, 0, 10, 199, 28, 19, 12, 37, 96, 78, 80, 15, 10, 67, 8, 19, 11, 71, 133, 49, 0, 103, 0,
-			6, 194, 37, 64, 42, 13, 19, 66, 37, 64, 2, 124, 47, 15, 58, 129, 88, 0, 103, 49, 81, 119, 97, 115, 32, 18, 66, 37, 64, 2,
-			124, 47, 15, 58, 126, 88, 0, 49, 81, 119, 97, 115, 32, 16, 66, 37, 64, 2, 124, 47, 15, 124, 88, 0, 49, 81, 105, 115, 32, 18,
-			66, 37, 64, 2, 124, 47, 15, 107, 35, 88, 0, 49, 81, 104, 97, 115, 32, 9, 66, 37, 64, 124, 47, 0, 72, 33, 15, 70, 32, 84,
-			146, 21, 32, 64, 107, 13, 34, 143, 34, 13, 0, 9, 198, 40, 18, 193, 73, 64, 64, 17, 16, 70, 72, 80, 204, 85, 49, 64, 34, 122,
-			49, 55, 137, 89, 0, 103, 12, 69, 4, 195, 9, 20, 64, 35, 55, 140, 72, 0, 12, 4, 95, 98, 114, 118, 71, 34, 6, 132, 84, 0,
-			0, 19, 67, 24, 85, 192, 83, 6, 57, 137, 65, 4, 136, 0, 81, 109, 111, 114, 101, 32, 16, 70, 81, 34, 67, 100, 51, 5, 47, 34,
-			140, 89, 124, 49, 118, 0, 10, 67, 77, 84, 197, 89, 137, 89, 13, 0, 0, 9, 198, 77, 84, 193, 56, 224, 72, 66, 19, 71, 52, 19,
-			1, 100, 19, 1, 52, 65, 35, 55, 141, 6, 121, 55, 13, 65, 0, 14, 69, 28, 149, 8, 84, 32, 81, 124, 47, 107, 129, 71, 0, 0,
-			10, 67, 104, 85, 83, 88, 137, 89, 0, 103, 10, 67, 104, 85, 83, 88, 57, 137, 89, 0, 10, 199, 56, 21, 8, 4, 226, 69, 48, 17,
-			12, 69, 12, 20, 211, 21, 144, 49, 141, 89, 37, 0, 16, 70, 16, 80, 146, 36, 81, 128, 72, 132, 71, 34, 6, 132, 83, 0, 0, 14,
-			69, 32, 244, 141, 20, 192, 107, 136, 65, 6, 122, 55, 0, 14, 69, 37, 52, 129, 20, 192, 124, 88, 34, 132, 118, 0, 103, 18, 4, 95,
-			97, 99, 50, 72, 129, 71, 13, 55, 119, 49, 57, 6, 137, 47, 0, 0, 11, 67, 64, 20, 1, 48, 121, 48, 13, 0, 103, 11, 67, 64,
-			20, 1, 48, 119, 48, 6, 121, 0, 10, 67, 4, 36, 129, 35, 71, 34, 13, 0, 0, 12, 67, 32, 21, 8, 2, 107, 35, 87, 0, 35,
-			46, 15, 69, 4, 208, 90, 60, 224, 35, 65, 119, 88, 126, 50, 0, 103, 13, 69, 76, 243, 5, 52, 224, 89, 126, 55, 13, 65, 0, 18,
-			70, 12, 243, 80, 21, 65, 68, 49, 13, 65, 48, 6, 132, 47, 124, 72, 0, 16, 70, 8, 84, 137, 56, 113, 68, 71, 113, 34, 124, 68,
-			81, 72, 0, 6, 195, 37, 70, 0, 13, 0, 14, 69, 72, 83, 69, 17, 144, 34, 122, 65, 13, 72, 37, 0, 9, 197, 56, 80, 82, 9,
-			144, 66, 49, 10, 67, 37, 34, 83, 140, 34, 124, 89, 0, 11, 67, 5, 129, 83, 35, 49, 89, 125, 88, 0, 0, 15, 66, 16, 240, 72,
-			137, 15, 89, 139, 0, 49, 81, 115, 111, 32, 17, 66, 16, 240, 72, 137, 50, 126, 47, 0, 32, 78, 81, 110, 111, 116, 32, 8, 66, 16,
-			240, 72, 137, 0, 32, 12, 68, 80, 242, 217, 60, 47, 139, 49, 124, 139, 0, 14, 69, 52, 20, 131, 20, 192, 65, 130, 89, 6, 122, 55,
-			0, 10, 67, 49, 146, 78, 55, 140, 124, 50, 0, 11, 200, 12, 245, 78, 80, 84, 129, 13, 64, 67, 12, 69, 12, 130, 83, 20, 192, 76,
-			124, 88, 118, 0, 23, 73, 4, 197, 5, 72, 224, 84, 20, 198, 64, 133, 55, 47, 6, 131, 50, 13, 47, 55, 124, 0, 32, 10, 66, 36,
-			80, 140, 132, 11, 0, 8, 46, 0, 11, 67, 4, 229, 9, 35, 50, 47, 140, 0, 103, 0, 10, 199, 52, 147, 23, 5, 82, 197, 20, 66,
-			15, 69, 76, 145, 206, 60, 224, 89, 4, 140, 50, 6, 126, 50, 0, 0, 17, 70, 52, 145, 5, 88, 83, 128, 65, 4, 124, 72, 6, 132,
-			84, 50, 0, 0, 12, 67, 32, 212, 6, 107, 6, 13, 65, 48, 83, 0, 9, 67, 32, 84, 130, 131, 71, 0, 103, 0, 14, 69, 9, 81,
-			78, 61, 48, 71, 58, 141, 50, 126, 89, 0, 16, 70, 77, 80, 144, 60, 83, 129, 89, 137, 48, 6, 132, 50, 13, 0, 13, 69, 64, 21,
-			8, 61, 48, 48, 141, 87, 126, 89, 0, 0, 9, 67, 72, 245, 84, 34, 138, 47, 0, 11, 68, 4, 66, 69, 84, 119, 72, 57, 137, 0,
-			0, 15, 70, 92, 131, 197, 88, 84, 128, 107, 137, 122, 84, 114, 0, 66, 14, 70, 76, 49, 80, 80, 84, 128, 89, 122, 48, 47, 114, 0,
-			22, 73, 65, 33, 68, 20, 49, 83, 76, 244, 128, 48, 34, 122, 72, 125, 89, 122, 89, 114, 0, 103, 7, 196, 44, 20, 21, 80, 17, 0,
-			11, 68, 12, 132, 137, 76, 49, 34, 124, 89, 0, 0, 7, 196, 56, 85, 133, 72, 32, 13, 69, 80, 240, 137, 5, 48, 47, 13, 71, 147,
-			89, 0, 10, 199, 52, 145, 4, 48, 83, 65, 56, 15, 13, 69, 4, 197, 193, 101, 48, 133, 55, 58, 141, 88, 0, 0, 15, 70, 4, 112,
-			73, 57, 53, 0, 119, 81, 122, 50, 89, 47, 0, 16, 70, 64, 20, 25, 73, 84, 192, 48, 119, 48, 140, 34, 13, 89, 0, 12, 68, 44,
-			128, 75, 36, 49, 35, 49, 37, 0, 103, 11, 68, 16, 148, 200, 100, 72, 124, 91, 37, 0, 15, 70, 12, 243, 131, 32, 84, 192, 49, 126,
-			50, 76, 125, 88, 0, 10, 67, 5, 115, 204, 141, 58, 126, 55, 0, 0, 14, 69, 77, 68, 137, 65, 144, 89, 47, 34, 140, 48, 124, 0,
-			0, 13, 69, 72, 20, 195, 4, 192, 34, 120, 89, 49, 118, 0, 0, 12, 68, 16, 85, 143, 56, 72, 122, 84, 13, 50, 0, 0, 13, 69,
-			72, 80, 71, 4, 224, 34, 141, 81, 13, 50, 0, 14, 69, 80, 18, 87, 4, 224, 47, 140, 6, 58, 121, 50, 0, 17, 71, 12, 19, 66,
-			72, 145, 7, 20, 49, 141, 65, 71, 34, 124, 75, 0, 0, 12, 68, 40, 19, 65, 48, 75, 119, 65, 126, 55, 0, 19, 70, 32, 243, 132,
-			85, 32, 83, 107, 126, 50, 72, 6, 57, 146, 34, 13, 89, 0, 15, 70, 48, 147, 131, 60, 195, 128, 55, 124, 50, 49, 13, 50, 0, 11,
-			68, 77, 112, 84, 32, 89, 58, 126, 87, 0, 16, 70, 64, 19, 131, 72, 80, 83, 48, 35, 50, 49, 34, 144, 89, 0, 0, 7, 194, 36,
-			96, 72, 8, 46, 19, 66, 20, 224, 126, 50, 15, 34, 6, 137, 47, 0, 81, 114, 111, 117, 116, 101, 32, 19, 66, 20, 224, 126, 50, 15,
-			65, 6, 35, 89, 0, 81, 109, 97, 115, 115, 101, 32, 12, 69, 9, 35, 207, 12, 128, 71, 34, 139, 76, 0, 11, 67, 5, 131, 206, 35,
-			49, 89, 126, 50, 0, 0, 10, 67, 36, 225, 25, 124, 50, 72, 37, 0, 12, 3, 95, 51, 88, 87, 6, 150, 47, 37, 0, 105, 11, 3,
-			95, 51, 88, 87, 6, 131, 47, 37, 0, 13, 3, 95, 46, 112, 48, 144, 34, 124, 13, 72, 0, 103, 0, 7, 196, 4, 226, 84, 4, 17,
-			16, 70, 80, 244, 143, 57, 67, 192, 47, 13, 34, 126, 50, 47, 139, 0, 10, 68, 80, 243, 142, 20, 47, 129, 50, 0, 9, 198, 12, 243,
-			148, 20, 229, 0, 38, 9, 198, 12, 243, 148, 20, 229, 0, 36, 10, 198, 12, 243, 148, 20, 229, 0, 65, 47, 18, 70, 12, 192, 82, 36,
-			225, 84, 49, 55, 35, 34, 13, 50, 6, 122, 47, 0, 14, 69, 5, 34, 83, 20, 224, 13, 34, 124, 88, 13, 50, 0, 14, 3, 95, 48,
-			67, 107, 6, 129, 50, 72, 34, 13, 72, 0, 0, 15, 70, 36, 195, 9, 56, 242, 83, 124, 55, 13, 50, 6, 142, 0, 17, 70, 4, 224,
-			76, 101, 50, 83, 119, 50, 35, 55, 13, 89, 124, 89, 0, 0, 15, 70, 80, 129, 82, 21, 48, 64, 47, 13, 34, 132, 88, 13, 0, 13,
-			69, 76, 147, 133, 4, 64, 91, 113, 50, 141, 72, 0, 14, 69, 52, 84, 131, 20, 64, 65, 131, 89, 6, 122, 72, 0, 12, 69, 92, 147,
-			135, 20, 64, 58, 124, 68, 72, 0, 12, 69, 64, 147, 135, 20, 64, 48, 124, 68, 72, 0, 14, 69, 24, 244, 141, 36, 64, 83, 135, 65,
-			6, 124, 72, 0, 13, 69, 8, 19, 135, 20, 64, 71, 35, 68, 81, 72, 0, 0, 16, 70, 52, 20, 131, 20, 195, 1, 65, 130, 89, 6,
-			122, 55, 13, 0, 0, 9, 198, 88, 84, 141, 60, 229, 0, 66, 21, 72, 52, 17, 1, 28, 20, 195, 5, 32, 65, 35, 72, 13, 81, 6,
-			35, 89, 49, 114, 0, 13, 68, 88, 147, 204, 4, 84, 140, 6, 139, 55, 13, 0, 16, 70, 64, 81, 5, 77, 64, 76, 48, 122, 72, 113,
-			89, 47, 118, 0, 14, 70, 12, 244, 144, 61, 32, 76, 49, 135, 48, 34, 118, 0, 0, 12, 67, 84, 229, 15, 4, 129, 50, 108, 117, 0,
-			103, 11, 67, 84, 229, 15, 4, 129, 50, 47, 117, 0, 19, 71, 20, 66, 78, 9, 84, 135, 32, 122, 72, 124, 50, 71, 2, 129, 34, 13,
-			0, 18, 72, 12, 128, 82, 16, 243, 142, 5, 144, 91, 130, 72, 13, 50, 6, 141, 0, 0, 28, 69, 76, 131, 213, 48, 64, 91, 117, 72,
-			107, 35, 84, 47, 116, 0, 74, 32, 10, 82, 104, 97, 118, 101, 32, 116, 111, 32, 26, 69, 76, 131, 213, 48, 64, 91, 117, 72, 107, 35,
-			84, 124, 47, 0, 78, 82, 104, 97, 118, 101, 32, 105, 116, 32, 21, 69, 76, 131, 213, 48, 64, 91, 117, 72, 13, 84, 0, 35, 77, 81,
-			104, 97, 118, 101, 32, 15, 69, 76, 131, 213, 48, 64, 4, 91, 117, 72, 0, 32, 46, 10, 16, 70, 72, 240, 133, 73, 64, 64, 34, 129,
-			71, 6, 131, 47, 13, 0, 16, 70, 88, 83, 148, 85, 32, 64, 84, 122, 50, 47, 6, 146, 13, 0, 13, 69, 52, 20, 129, 84, 64, 65,
-			13, 34, 133, 72, 0, 0, 10, 67, 64, 84, 5, 48, 122, 48, 141, 0, 9, 198, 12, 129, 86, 20, 195, 5, 17, 8, 67, 61, 84, 197,
-			137, 88, 0, 10, 67, 60, 180, 129, 139, 49, 34, 13, 0, 17, 70, 20, 228, 197, 52, 35, 5, 126, 50, 89, 6, 126, 65, 71, 118, 0,
-			16, 70, 16, 148, 195, 37, 3, 5, 72, 124, 89, 6, 140, 48, 118, 0, 16, 70, 12, 130, 80, 61, 67, 5, 76, 113, 48, 139, 47, 55,
-			141, 0, 6, 195, 60, 65, 128, 13, 6, 195, 57, 148, 197, 13, 6, 195, 21, 129, 64, 13, 0, 19, 71, 40, 84, 149, 76, 19, 5, 52,
-			75, 13, 34, 137, 89, 13, 55, 13, 65, 0, 0, 10, 67, 49, 82, 83, 55, 137, 124, 89, 0, 18, 71, 52, 81, 9, 4, 85, 129, 48,
-			65, 122, 72, 124, 6, 132, 84, 118, 0, 15, 3, 226, 136, 158, 124, 50, 83, 6, 124, 50, 113, 47, 37, 0, 0, 15, 69, 72, 17, 129,
-			20, 192, 34, 121, 83, 140, 6, 122, 55, 0, 15, 69, 52, 19, 149, 20, 192, 65, 35, 50, 58, 6, 122, 55, 0, 10, 67, 77, 81, 90,
-			89, 137, 113, 88, 0, 12, 68, 25, 81, 71, 60, 83, 58, 141, 81, 139, 0, 23, 73, 5, 81, 205, 20, 229, 1, 80, 147, 206, 133, 81,
-			65, 122, 50, 47, 6, 141, 91, 13, 50, 0, 0, 11, 67, 92, 84, 133, 2, 58, 131, 0, 35, 46, 28, 67, 32, 84, 133, 107, 6, 145,
-			15, 13, 50, 72, 15, 86, 6, 143, 0, 82, 97, 110, 100, 32, 116, 104, 101, 114, 101, 32, 12, 68, 21, 134, 15, 56, 122, 49, 89, 126,
-			50, 0, 9, 67, 20, 148, 133, 143, 34, 13, 0, 12, 68, 25, 33, 79, 56, 83, 34, 132, 126, 50, 0, 11, 68, 4, 112, 73, 56, 119,
-			81, 122, 50, 0, 16, 3, 226, 137, 160, 50, 126, 47, 6, 132, 49, 58, 118, 47, 117, 0, 0, 12, 68, 81, 37, 68, 100, 47, 34, 137,
-			72, 37, 0, 14, 70, 93, 33, 84, 12, 129, 68, 34, 122, 76, 125, 72, 0, 16, 70, 77, 3, 207, 56, 97, 68, 89, 48, 137, 50, 83,
-			122, 72, 0, 17, 70, 76, 80, 207, 56, 65, 68, 89, 13, 49, 126, 50, 72, 125, 72, 0, 12, 68, 72, 84, 12, 100, 34, 113, 48, 55,
-			140, 0, 15, 70, 72, 80, 193, 48, 193, 68, 34, 113, 49, 133, 55, 72, 0, 12, 68, 12, 16, 212, 36, 49, 35, 49, 47, 140, 0, 13,
-			68, 4, 212, 12, 100, 35, 65, 48, 55, 124, 0, 32, 0, 19, 71, 36, 212, 5, 72, 97, 67, 80, 124, 65, 48, 6, 131, 83, 122, 49,
-			47, 0, 17, 70, 17, 32, 77, 5, 66, 67, 72, 34, 13, 65, 35, 47, 124, 49, 0, 15, 3, 226, 136, 154, 89, 49, 58, 4, 143, 34,
-			6, 137, 47, 0, 0, 13, 68, 52, 20, 137, 60, 65, 130, 34, 124, 139, 0, 103, 17, 66, 48, 16, 55, 119, 107, 142, 13, 0, 81, 106,
-			111, 108, 108, 97, 32, 13, 69, 61, 33, 5, 4, 192, 135, 72, 6, 144, 55, 0, 16, 66, 48, 16, 55, 35, 15, 84, 6, 132, 0, 81,
-			118, 105, 101, 32, 6, 194, 48, 16, 13, 42, 9, 66, 48, 16, 4, 55, 35, 0, 46, 18, 66, 40, 80, 90, 13, 47, 122, 65, 0, 81,
-			116, 39, 97, 105, 109, 101, 32, 21, 66, 40, 80, 90, 13, 50, 13, 89, 6, 141, 0, 82, 110, 101, 32, 115, 97, 105, 115, 32, 13, 3,
-			95, 49, 57, 50, 6, 140, 50, 47, 132, 50, 0, 0, 9, 198, 28, 243, 9, 5, 66, 0, 17, 12, 68, 76, 147, 79, 56, 89, 140, 65,
-			13, 50, 0, 15, 70, 29, 84, 141, 84, 178, 9, 81, 146, 65, 117, 49, 37, 0, 19, 72, 84, 225, 5, 72, 194, 78, 29, 48, 129, 50,
-			72, 114, 55, 124, 68, 88, 0, 10, 67, 36, 67, 25, 140, 72, 55, 124, 0, 6, 195, 5, 2, 64, 13, 11, 3, 95, 49, 56, 6, 141,
-			47, 132, 50, 0, 0, 17, 71, 80, 83, 142, 21, 52, 197, 20, 47, 122, 50, 13, 89, 6, 132, 0, 8, 197, 76, 148, 8, 60, 224, 16,
-			11, 67, 21, 130, 84, 122, 81, 88, 124, 47, 0, 10, 67, 21, 98, 84, 122, 84, 113, 47, 0, 14, 69, 8, 21, 13, 4, 224, 71, 35,
-			47, 65, 35, 50, 0, 16, 3, 226, 151, 143, 71, 55, 4, 35, 49, 89, 6, 131, 49, 118, 0, 0, 18, 71, 77, 68, 133, 4, 208, 133,
-			16, 89, 47, 34, 132, 65, 71, 122, 72, 0, 16, 71, 12, 245, 78, 80, 84, 133, 16, 49, 138, 50, 47, 114, 72, 0, 0, 12, 68, 8,
-			85, 23, 76, 71, 122, 47, 117, 89, 0, 6, 195, 21, 36, 194, 13, 0, 16, 70, 28, 83, 210, 28, 147, 129, 75, 135, 6, 75, 132, 50,
-			13, 0, 9, 198, 32, 243, 143, 49, 83, 21, 67, 0, 13, 68, 44, 80, 78, 84, 49, 124, 6, 121, 50, 137, 0, 18, 70, 81, 34, 66,
-			84, 224, 76, 47, 34, 140, 71, 6, 57, 137, 50, 118, 0, 15, 70, 80, 81, 84, 61, 64, 76, 47, 132, 108, 139, 47, 118, 0, 15, 70,
-			64, 20, 133, 57, 64, 76, 48, 114, 122, 50, 47, 118, 0, 0, 13, 70, 48, 242, 78, 56, 148, 128, 55, 129, 50, 144, 0, 16, 71, 29,
-			33, 69, 57, 114, 67, 32, 81, 34, 122, 50, 124, 76, 0, 14, 70, 76, 243, 4, 36, 84, 128, 89, 139, 55, 75, 114, 0, 14, 70, 64,
-			147, 206, 20, 84, 128, 48, 147, 50, 6, 145, 0, 13, 70, 52, 19, 136, 61, 84, 128, 65, 35, 50, 149, 0, 16, 70, 36, 224, 207, 52,
-			147, 135, 124, 50, 49, 129, 65, 124, 68, 0, 9, 198, 32, 245, 197, 88, 84, 128, 66, 14, 70, 28, 192, 67, 36, 84, 128, 81, 55, 141,
-			91, 114, 0, 14, 70, 25, 35, 212, 32, 84, 128, 83, 34, 126, 87, 114, 0, 15, 70, 4, 195, 15, 88, 84, 128, 133, 55, 6, 139, 84,
-			114, 0, 11, 3, 226, 136, 146, 65, 140, 50, 13, 89, 0, 0, 11, 68, 32, 21, 133, 76, 107, 35, 84, 88, 0, 12, 68, 88, 83, 149,
-			76, 84, 132, 50, 13, 89, 0, 14, 70, 76, 85, 133, 72, 19, 0, 89, 122, 84, 34, 118, 0, 13, 3, 95, 49, 49, 124, 55, 6, 122,
-			84, 13, 50, 0, 0, 16, 70, 12, 20, 143, 48, 147, 133, 49, 35, 34, 13, 55, 140, 50, 0, 11, 67, 60, 18, 21, 139, 6, 121, 107,
-			137, 0, 17, 70, 52, 81, 9, 12, 147, 133, 65, 122, 72, 13, 89, 13, 50, 0, 103, 15, 70, 52, 81, 9, 12, 147, 133, 65, 122, 72,
-			89, 13, 50, 0, 16, 70, 44, 84, 143, 76, 83, 133, 49, 122, 34, 13, 89, 132, 50, 0, 9, 198, 36, 225, 5, 24, 147, 133, 67, 18,
-			71, 28, 83, 148, 48, 83, 69, 56, 75, 122, 50, 47, 118, 65, 13, 50, 0, 16, 70, 24, 83, 73, 56, 147, 133, 83, 122, 65, 13, 50,
-			124, 50, 0, 11, 68, 12, 81, 1, 72, 89, 132, 72, 114, 0, 10, 3, 95, 49, 48, 47, 6, 122, 50, 0, 0, 12, 70, 40, 16, 209,
-			84, 84, 192, 90, 35, 49, 0, 9, 198, 88, 148, 135, 36, 224, 76, 15, 14, 70, 32, 20, 142, 21, 52, 192, 107, 130, 50, 125, 89, 0,
-			14, 70, 12, 128, 83, 76, 148, 192, 76, 35, 89, 37, 0, 103, 13, 70, 12, 128, 83, 76, 148, 192, 91, 35, 89, 37, 0, 13, 3, 95,
-			49, 51, 87, 6, 150, 47, 132, 50, 0, 105, 12, 3, 95, 49, 51, 87, 6, 131, 47, 132, 50, 0, 0, 11, 68, 20, 66, 84, 32, 132,
-			72, 124, 87, 0, 18, 71, 21, 21, 73, 88, 240, 193, 48, 113, 49, 58, 124, 84, 13, 49, 118, 0, 10, 199, 12, 19, 143, 56, 144, 193,
-			48, 17, 15, 70, 4, 230, 84, 32, 147, 135, 122, 50, 113, 87, 124, 68, 0, 6, 195, 60, 196, 3, 13, 12, 3, 95, 49, 50, 47, 58,
-			6, 122, 55, 84, 0, 0, 13, 69, 20, 194, 74, 4, 128, 113, 55, 140, 75, 13, 0, 12, 68, 16, 84, 133, 44, 72, 122, 34, 124, 49,
-			0, 14, 69, 53, 83, 137, 12, 128, 65, 57, 137, 50, 124, 49, 0, 12, 69, 33, 84, 146, 4, 128, 107, 13, 34, 121, 0, 13, 69, 28,
-			20, 137, 76, 128, 81, 143, 34, 124, 91, 0, 7, 196, 20, 35, 207, 44, 20, 13, 69, 8, 197, 73, 76, 128, 71, 55, 137, 124, 91, 0,
-			12, 201, 4, 99, 210, 20, 209, 78, 80, 147, 206, 66, 13, 3, 95, 49, 53, 83, 6, 124, 83, 47, 132, 50, 0, 15, 4, 95, 99, 121,
-			114, 89, 113, 34, 6, 124, 55, 124, 49, 0, 0, 12, 3, 95, 49, 52, 83, 6, 136, 47, 132, 50, 0, 0, 10, 67, 16, 245, 8, 72,
-			129, 87, 0, 76, 18, 67, 92, 149, 8, 58, 2, 124, 86, 86, 115, 0, 34, 81, 116, 104, 101, 32, 10, 67, 92, 149, 8, 58, 124, 86,
-			0, 72, 14, 69, 56, 148, 211, 4, 224, 50, 124, 89, 121, 50, 0, 103, 16, 71, 21, 66, 5, 72, 145, 7, 20, 122, 87, 14, 34, 124,
-			75, 0, 14, 69, 80, 19, 80, 60, 224, 47, 35, 65, 48, 126, 50, 0, 12, 68, 76, 48, 76, 100, 89, 49, 141, 55, 124, 0, 18, 71,
-			65, 33, 67, 37, 2, 67, 20, 48, 34, 122, 89, 113, 48, 124, 89, 0, 13, 68, 56, 240, 140, 100, 50, 139, 71, 55, 124, 0, 32, 17,
-			71, 20, 229, 15, 85, 32, 71, 20, 126, 50, 108, 117, 34, 121, 90, 0, 16, 3, 95, 49, 55, 89, 6, 13, 84, 13, 50, 47, 132, 50,
-			0, 107, 15, 3, 95, 49, 55, 89, 6, 122, 84, 13, 50, 47, 132, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 124, 49, 89, 47, 132,
-			50, 0, 0, 12, 69, 56, 144, 200, 60, 192, 50, 124, 49, 118, 0, 13, 69, 16, 19, 137, 76, 128, 72, 141, 50, 124, 91, 0, 22, 73,
-			60, 211, 137, 76, 50, 69, 56, 49, 64, 126, 65, 50, 6, 124, 89, 124, 13, 50, 89, 0, 11, 68, 44, 22, 65, 44, 49, 140, 35, 49,
-			0, 21, 73, 12, 243, 69, 85, 4, 1, 56, 49, 64, 49, 129, 65, 6, 129, 48, 13, 50, 89, 0, 0, 16, 67, 52, 19, 153, 65, 122,
-			50, 124, 13, 84, 0, 81, 111, 102, 32, 11, 67, 52, 19, 153, 65, 122, 50, 37, 0, 34, 11, 200, 33, 148, 15, 13, 34, 84, 21, 48,
-			16, 19, 72, 24, 21, 143, 85, 34, 84, 21, 48, 83, 141, 84, 14, 34, 113, 47, 89, 0, 20, 72, 5, 32, 200, 36, 209, 68, 21, 48,
-			130, 49, 124, 65, 6, 132, 72, 132, 88, 0, 15, 3, 95, 55, 88, 89, 6, 13, 84, 13, 50, 47, 37, 0, 107, 14, 3, 95, 55, 88,
-			89, 6, 122, 84, 13, 50, 47, 37, 0, 0, 18, 72, 44, 132, 149, 76, 128, 200, 21, 96, 49, 34, 137, 89, 76, 122, 83, 0, 15, 69,
-			16, 21, 19, 84, 224, 72, 121, 47, 89, 13, 50, 0, 103, 12, 68, 56, 17, 9, 4, 50, 121, 72, 57, 13, 0, 11, 68, 16, 83, 9,
-			4, 72, 132, 55, 144, 0, 13, 69, 4, 68, 137, 4, 224, 141, 72, 34, 144, 50, 0, 12, 68, 21, 32, 83, 20, 113, 34, 141, 89, 0,
-			103, 11, 68, 21, 32, 83, 20, 113, 34, 141, 88, 0, 12, 68, 16, 82, 67, 20, 72, 132, 6, 140, 89, 0, 10, 68, 8, 82, 71, 20,
-			71, 141, 90, 0, 6, 195, 52, 245, 4, 13, 0, 20, 71, 76, 182, 82, 60, 50, 197, 80, 89, 49, 6, 140, 34, 4, 126, 49, 124, 47,
-			0, 17, 70, 12, 194, 84, 61, 34, 83, 49, 55, 124, 47, 114, 34, 125, 89, 0, 0, 9, 198, 16, 84, 208, 37, 65, 64, 8, 14, 70,
-			48, 17, 137, 81, 65, 64, 55, 119, 83, 132, 47, 0, 15, 70, 92, 80, 147, 37, 65, 64, 58, 122, 71, 89, 140, 47, 0, 15, 70, 84,
-			224, 87, 5, 33, 64, 129, 50, 13, 58, 6, 143, 0, 15, 70, 76, 80, 210, 21, 65, 64, 89, 113, 49, 34, 132, 47, 0, 15, 70, 72,
-			148, 15, 77, 65, 64, 34, 113, 48, 126, 89, 47, 0, 16, 70, 72, 84, 208, 37, 65, 64, 34, 122, 89, 48, 124, 47, 0, 103, 15, 70,
-			72, 84, 208, 37, 65, 64, 34, 122, 89, 48, 140, 47, 0, 15, 70, 72, 84, 212, 37, 97, 64, 34, 122, 89, 47, 124, 84, 0, 16, 70,
-			72, 84, 208, 37, 65, 64, 34, 122, 89, 48, 113, 47, 0, 103, 15, 70, 65, 33, 76, 5, 65, 64, 48, 34, 122, 55, 13, 47, 0, 9,
-			198, 64, 194, 67, 5, 65, 64, 66, 10, 198, 52, 19, 132, 5, 65, 64, 66, 36, 15, 70, 36, 228, 208, 37, 33, 64, 124, 50, 89, 48,
-			6, 148, 0, 9, 198, 25, 34, 71, 5, 65, 64, 16, 16, 70, 20, 229, 5, 57, 65, 64, 126, 50, 47, 6, 126, 50, 47, 0, 16, 70,
-			20, 224, 204, 5, 97, 64, 126, 50, 49, 55, 141, 84, 0, 103, 16, 70, 16, 85, 5, 57, 65, 64, 72, 141, 47, 6, 126, 50, 47, 0,
-			16, 70, 16, 85, 1, 57, 65, 64, 72, 141, 47, 6, 126, 50, 47, 0, 16, 70, 12, 243, 131, 5, 97, 64, 49, 126, 50, 49, 6, 141,
-			84, 0, 15, 70, 12, 243, 12, 5, 65, 64, 49, 139, 55, 141, 47, 0, 103, 17, 70, 12, 83, 5, 9, 33, 64, 89, 122, 55, 6, 122,
-			71, 34, 13, 0, 14, 70, 8, 150, 129, 73, 33, 64, 71, 125, 88, 6, 130, 0, 9, 198, 4, 230, 77, 61, 33, 64, 67, 0, 15, 70,
-			4, 65, 76, 4, 145, 5, 35, 72, 13, 55, 141, 72, 0, 9, 198, 77, 64, 77, 64, 81, 5, 66, 16, 70, 72, 83, 133, 28, 17, 5,
-			34, 122, 50, 13, 81, 141, 72, 0, 9, 198, 48, 83, 79, 56, 17, 5, 67, 9, 67, 9, 84, 192, 71, 129, 89, 0, 0, 15, 70, 72,
-			18, 77, 20, 229, 0, 34, 141, 65, 13, 50, 47, 0, 11, 200, 32, 19, 2, 21, 33, 9, 21, 32, 15, 20, 71, 16, 148, 12, 60, 208,
-			67, 100, 72, 124, 48, 55, 6, 139, 65, 13, 89, 37, 0, 19, 72, 12, 128, 78, 16, 83, 9, 21, 32, 91, 35, 50, 72, 13, 55, 6,
-			145, 0, 19, 71, 5, 85, 15, 13, 32, 67, 100, 133, 47, 6, 126, 49, 34, 13, 89, 37, 0, 10, 3, 95, 49, 111, 83, 6, 150, 0,
-			105, 9, 3, 95, 49, 111, 83, 6, 131, 0, 0, 16, 70, 8, 83, 215, 84, 193, 128, 71, 141, 13, 58, 117, 55, 83, 0, 0, 16, 70,
-			8, 80, 193, 85, 49, 64, 71, 124, 49, 129, 88, 0, 66, 8, 19, 72, 72, 84, 212, 5, 84, 129, 57, 64, 34, 122, 89, 47, 34, 126,
-			50, 47, 0, 9, 198, 24, 21, 9, 29, 81, 64, 17, 23, 72, 16, 81, 146, 4, 115, 69, 57, 64, 72, 132, 83, 34, 35, 81, 65, 6,
-			122, 50, 47, 0, 135, 13, 70, 12, 240, 203, 21, 145, 64, 49, 126, 49, 140, 0, 9, 198, 8, 20, 143, 69, 81, 64, 17, 9, 198, 4,
-			69, 133, 73, 49, 64, 66, 0, 9, 67, 81, 165, 64, 47, 89, 137, 0, 9, 198, 76, 128, 78, 28, 128, 73, 66, 9, 67, 76, 149, 5,
-			89, 140, 47, 0, 18, 70, 40, 84, 143, 8, 240, 77, 75, 122, 34, 13, 71, 6, 139, 13, 65, 0, 11, 3, 224, 165, 164, 72, 129, 50,
-			72, 119, 0, 0, 6, 195, 4, 116, 12, 13, 0, 11, 68, 52, 144, 193, 32, 65, 140, 49, 13, 0, 8, 197, 76, 128, 90, 4, 208, 17,
-			12, 68, 32, 243, 193, 32, 107, 6, 137, 6, 121, 0, 0, 13, 69, 64, 83, 131, 36, 192, 48, 122, 50, 89, 118, 0, 0, 16, 70, 72,
-			84, 1, 73, 65, 69, 34, 122, 48, 130, 47, 6, 141, 0, 16, 70, 56, 81, 204, 36, 113, 69, 50, 122, 81, 55, 124, 90, 141, 0, 10,
-			67, 16, 245, 133, 72, 139, 84, 0, 38, 10, 67, 16, 245, 133, 72, 139, 84, 0, 36, 13, 4, 95, 97, 99, 117, 119, 49, 57, 6, 137,
-			47, 0, 0, 7, 196, 44, 146, 5, 36, 66, 10, 68, 20, 20, 140, 100, 131, 55, 124, 0, 10, 3, 95, 50, 111, 89, 6, 122, 49, 0,
-			11, 4, 95, 99, 114, 108, 49, 6, 131, 55, 0, 0, 14, 70, 29, 82, 78, 56, 84, 211, 81, 124, 50, 124, 89, 0, 10, 67, 45, 34,
-			83, 49, 34, 124, 89, 0, 11, 68, 37, 50, 65, 32, 140, 88, 6, 147, 0, 11, 68, 72, 18, 129, 32, 34, 121, 75, 121, 0, 16, 69,
-			21, 133, 18, 20, 208, 122, 49, 89, 47, 34, 6, 132, 65, 0, 0, 0, 14, 67, 52, 134, 128, 65, 122, 81, 13, 107, 131, 47, 89, 0,
-			0, 10, 199, 64, 81, 5, 77, 68, 137, 4, 17, 19, 71, 52, 16, 193, 16, 19, 73, 4, 65, 35, 49, 13, 72, 6, 141, 65, 144, 0,
-			16, 70, 16, 81, 137, 12, 149, 0, 72, 122, 83, 113, 89, 124, 47, 0, 4, 193, 160, 43, 0, 12, 68, 64, 84, 143, 80, 48, 122, 34,
-			6, 139, 0, 9, 198, 61, 85, 3, 72, 244, 0, 65, 0, 8, 197, 28, 20, 146, 61, 64, 17, 15, 70, 12, 240, 85, 80, 131, 210, 49,
-			139, 6, 133, 87, 114, 0, 0, 12, 201, 84, 197, 18, 5, 98, 79, 48, 85, 0, 67, 10, 67, 16, 83, 9, 72, 122, 55, 124, 0, 16,
-			3, 226, 150, 160, 71, 55, 6, 35, 49, 89, 49, 58, 6, 143, 0, 0, 9, 198, 36, 228, 212, 20, 17, 0, 8, 16, 70, 8, 20, 133,
-			57, 68, 192, 71, 35, 34, 13, 50, 47, 89, 0, 12, 69, 76, 145, 206, 21, 32, 89, 140, 50, 114, 0, 17, 70, 65, 33, 84, 72, 144,
-			76, 48, 34, 132, 47, 34, 6, 140, 118, 0, 20, 71, 36, 225, 140, 84, 83, 154, 4, 124, 50, 83, 55, 137, 6, 122, 50, 88, 13, 0,
-			11, 67, 16, 243, 148, 72, 139, 50, 47, 0, 46, 10, 3, 95, 51, 111, 87, 6, 150, 0, 105, 9, 3, 95, 51, 111, 87, 6, 131, 0,
-			8, 4, 95, 35, 114, 100, 72, 0, 0, 15, 70, 76, 83, 129, 80, 244, 128, 89, 122, 50, 13, 47, 114, 0, 14, 70, 61, 4, 15, 76,
-			84, 128, 13, 48, 139, 88, 114, 0, 15, 70, 48, 16, 143, 72, 84, 128, 55, 141, 71, 13, 34, 114, 0, 9, 198, 37, 3, 1, 100, 84,
-			128, 20, 0, 0, 10, 68, 61, 85, 5, 72, 138, 47, 114, 0, 15, 70, 40, 82, 15, 88, 18, 0, 75, 13, 107, 139, 84, 13, 0, 13,
-			3, 95, 50, 88, 47, 58, 6, 122, 50, 108, 37, 0, 0, 12, 69, 92, 149, 8, 21, 32, 58, 124, 86, 114, 0, 13, 69, 76, 243, 4,
-			21, 32, 89, 121, 72, 114, 0, 103, 13, 69, 76, 243, 4, 21, 32, 89, 126, 55, 72, 114, 0, 9, 198, 60, 211, 137, 9, 84, 192, 65,
-			16, 70, 52, 147, 137, 9, 84, 192, 65, 124, 50, 124, 71, 129, 89, 0, 15, 70, 36, 229, 5, 73, 96, 76, 124, 50, 47, 114, 84, 118,
-			0, 10, 198, 28, 241, 4, 21, 52, 192, 103, 16, 20, 73, 8, 83, 12, 100, 16, 200, 36, 225, 192, 71, 122, 55, 124, 141, 49, 124, 68,
-			0, 0, 10, 199, 16, 240, 212, 72, 147, 129, 48, 15, 0, 16, 70, 52, 144, 200, 36, 112, 78, 65, 124, 91, 124, 81, 13, 50, 0, 15,
-			69, 8, 241, 207, 81, 192, 98, 111, 103, 111, 116, 97, 0, 29, 16, 69, 8, 83, 135, 4, 192, 71, 4, 122, 50, 81, 6, 133, 55, 0,
-			20, 72, 72, 80, 201, 65, 35, 195, 4, 192, 34, 113, 89, 124, 48, 34, 13, 49, 118, 0, 0, 12, 68, 5, 4, 143, 56, 141, 48, 34,
-			13, 50, 0, 0, 14, 69, 9, 33, 77, 20, 224, 71, 34, 122, 65, 13, 50, 0, 13, 69, 92, 83, 23, 100, 224, 58, 122, 55, 124, 50,
-			0, 14, 69, 89, 83, 3, 4, 224, 84, 129, 55, 49, 13, 50, 0, 11, 68, 80, 241, 1, 100, 47, 13, 72, 141, 0, 13, 3, 226, 136,
-			171, 124, 50, 47, 124, 81, 34, 118, 0, 0, 19, 8, 112, 105, 195, 177, 97, 116, 97, 115, 48, 132, 67, 6, 35, 47, 119, 88, 0, 12,
-			201, 24, 244, 133, 76, 131, 210, 80, 83, 128, 66, 0, 13, 69, 77, 147, 66, 60, 192, 89, 124, 65, 71, 118, 0, 15, 70, 72, 84, 212,
-			25, 83, 0, 34, 122, 89, 47, 83, 118, 0, 0, 21, 72, 65, 149, 8, 4, 115, 210, 5, 48, 48, 140, 87, 6, 35, 81, 13, 34, 13,
-			89, 0, 20, 71, 25, 35, 206, 81, 0, 71, 20, 83, 34, 6, 129, 50, 47, 48, 4, 141, 75, 0, 6, 195, 4, 16, 64, 13, 0, 12,
-			68, 76, 147, 131, 20, 89, 124, 50, 89, 0, 8, 11, 68, 4, 194, 67, 20, 35, 55, 124, 89, 0, 14, 68, 44, 244, 133, 4, 49, 114,
-			34, 6, 132, 13, 0, 103, 13, 68, 44, 244, 133, 4, 49, 134, 34, 6, 132, 13, 0, 11, 68, 13, 84, 147, 20, 49, 151, 89, 0, 105,
-			10, 68, 13, 84, 147, 20, 49, 131, 89, 0, 13, 68, 8, 192, 83, 20, 71, 55, 121, 88, 6, 141, 0, 12, 68, 5, 35, 205, 4, 119,
-			34, 139, 65, 13, 0, 0, 10, 67, 72, 84, 15, 34, 132, 48, 139, 0, 0, 14, 70, 92, 146, 77, 61, 65, 64, 58, 132, 65, 139, 47,
-			0, 14, 70, 52, 17, 213, 37, 33, 64, 65, 13, 81, 58, 148, 0, 16, 7, 104, 97, 119, 97, 105, 39, 105, 107, 13, 58, 6, 140, 132,
-			0, 15, 70, 61, 85, 12, 37, 97, 64, 138, 47, 55, 6, 124, 84, 0, 13, 70, 56, 245, 200, 21, 33, 64, 50, 139, 58, 143, 0, 9,
-			198, 28, 20, 143, 81, 65, 64, 17, 17, 70, 21, 129, 67, 85, 65, 64, 122, 49, 89, 113, 49, 57, 137, 47, 0, 16, 70, 13, 33, 77,
-			5, 65, 64, 49, 34, 132, 65, 141, 47, 0, 103, 14, 70, 12, 83, 147, 85, 33, 64, 89, 122, 50, 91, 114, 0, 14, 70, 12, 21, 137,
-			5, 33, 64, 49, 35, 84, 124, 130, 0, 10, 67, 12, 19, 22, 49, 35, 84, 0, 103, 9, 67, 12, 19, 22, 49, 121, 84, 0, 14, 70,
-			5, 84, 212, 21, 33, 64, 133, 89, 47, 6, 145, 0, 0, 9, 67, 4, 50, 25, 141, 49, 37, 0, 0, 11, 68, 40, 244, 135, 20, 107,
-			136, 107, 141, 0, 11, 68, 20, 147, 165, 56, 122, 50, 132, 50, 0, 11, 200, 52, 18, 78, 80, 18, 78, 21, 32, 66, 10, 68, 24, 244,
-			131, 20, 83, 136, 89, 0, 11, 68, 12, 19, 143, 20, 49, 13, 50, 137, 0, 11, 68, 4, 226, 83, 20, 35, 50, 124, 89, 0, 19, 72,
-			4, 69, 133, 73, 66, 83, 21, 32, 35, 72, 84, 114, 47, 140, 88, 114, 0, 10, 3, 95, 53, 111, 83, 6, 124, 83, 0, 11, 3, 95,
-			63, 63, 89, 124, 65, 71, 118, 0, 0, 13, 67, 49, 65, 0, 55, 124, 65, 113, 47, 113, 72, 0, 0, 14, 70, 80, 129, 82, 21, 49,
-			64, 47, 13, 34, 132, 88, 0, 16, 70, 20, 195, 213, 37, 49, 64, 122, 55, 137, 58, 6, 132, 88, 0, 9, 198, 77, 84, 18, 37, 49,
-			64, 66, 9, 198, 77, 81, 134, 85, 49, 64, 66, 21, 72, 76, 80, 207, 56, 67, 69, 57, 64, 89, 13, 49, 126, 50, 72, 65, 13, 50,
-			47, 0, 14, 70, 12, 129, 77, 37, 49, 64, 91, 13, 65, 132, 88, 0, 5, 194, 49, 64, 24, 11, 66, 53, 32, 65, 124, 89, 47, 114,
-			0, 24, 0, 10, 67, 64, 21, 5, 48, 35, 108, 141, 0, 10, 67, 48, 21, 129, 55, 121, 84, 13, 0, 9, 67, 24, 85, 5, 83, 141,
-			47, 0, 10, 67, 16, 85, 129, 72, 132, 84, 13, 0, 11, 3, 95, 52, 88, 83, 6, 136, 47, 37, 0, 0, 10, 68, 37, 51, 1, 100,
-			140, 55, 13, 0, 9, 198, 12, 240, 84, 80, 18, 76, 18, 0, 23, 67, 32, 244, 147, 135, 6, 72, 131, 84, 88, 0, 81, 100, 39, 111,
-			101, 117, 118, 114, 101, 115, 32, 10, 67, 21, 35, 211, 144, 34, 126, 89, 0, 0, 13, 68, 64, 16, 140, 60, 48, 121, 71, 55, 139, 0,
-			103, 0, 19, 67, 32, 21, 133, 107, 119, 84, 50, 126, 47, 0, 35, 49, 81, 110, 111, 116, 32, 19, 67, 32, 21, 133, 107, 119, 84, 50,
-			4, 126, 47, 0, 35, 81, 110, 111, 116, 32, 21, 67, 32, 21, 133, 2, 107, 119, 84, 2, 71, 124, 50, 0, 35, 81, 98, 101, 101, 110,
-			32, 13, 67, 32, 21, 133, 107, 35, 84, 0, 35, 46, 72, 10, 10, 67, 48, 149, 133, 55, 124, 84, 0, 36, 10, 67, 48, 149, 133, 55,
-			140, 84, 0, 47, 11, 67, 8, 85, 1, 71, 141, 47, 13, 0, 103, 10, 67, 8, 85, 1, 71, 132, 47, 13, 0, 10, 67, 4, 229, 5,
-			35, 50, 47, 132, 0, 0, 14, 70, 40, 84, 146, 5, 33, 0, 75, 114, 34, 130, 72, 0, 9, 198, 37, 48, 193, 72, 147, 212, 66, 13,
-			68, 56, 19, 205, 36, 50, 141, 6, 139, 65, 37, 0, 11, 68, 76, 147, 129, 36, 89, 140, 50, 140, 0, 9, 198, 32, 20, 150, 5, 33,
-			0, 16, 9, 4, 95, 35, 115, 116, 89, 47, 0, 0, 11, 68, 13, 40, 77, 20, 49, 34, 122, 65, 0, 0, 10, 66, 28, 240, 4, 81,
-			139, 0, 10, 46, 15, 66, 48, 80, 55, 132, 6, 35, 50, 0, 81, 97, 110, 110, 32, 15, 69, 77, 147, 148, 5, 128, 89, 124, 50, 108,
-			35, 49, 89, 0, 9, 66, 48, 80, 55, 13, 23, 0, 46, 16, 69, 12, 243, 150, 21, 128, 49, 126, 50, 84, 6, 122, 49, 89, 0, 18,
-			4, 95, 115, 117, 98, 89, 4, 129, 71, 89, 49, 34, 124, 48, 47, 15, 0, 0, 21, 72, 72, 130, 78, 60, 49, 82, 61, 48, 34, 140,
-			50, 6, 126, 89, 13, 34, 13, 89, 0, 14, 70, 52, 19, 77, 61, 66, 0, 65, 35, 65, 13, 87, 0, 12, 3, 95, 53, 88, 83, 6,
-			124, 83, 47, 37, 0, 0, 25, 67, 53, 84, 212, 65, 4, 129, 89, 47, 35, 84, 47, 116, 0, 35, 82, 104, 97, 118, 101, 32, 116, 111,
-			32, 21, 67, 53, 84, 212, 65, 129, 89, 47, 107, 35, 84, 0, 35, 49, 81, 104, 97, 118, 101, 32, 20, 67, 53, 84, 212, 65, 129, 89,
-			47, 119, 84, 0, 35, 65, 81, 104, 97, 118, 101, 32, 6, 195, 53, 84, 212, 32, 16, 71, 29, 82, 76, 48, 21, 77, 20, 81, 132, 57,
-			6, 139, 65, 0, 17, 71, 28, 147, 12, 21, 52, 9, 20, 81, 113, 55, 122, 89, 48, 37, 0, 11, 68, 32, 18, 75, 84, 107, 140, 49,
-			137, 0, 17, 71, 25, 34, 67, 5, 52, 197, 20, 83, 34, 124, 49, 119, 89, 141, 0, 10, 67, 5, 67, 208, 119, 47, 126, 48, 0, 0,
-			13, 67, 28, 245, 0, 2, 81, 126, 47, 0, 10, 35, 46, 12, 201, 16, 148, 212, 72, 144, 149, 80, 244, 128, 66, 12, 4, 95, 114, 110,
-			103, 34, 6, 124, 68, 81, 0, 0, 12, 197, 12, 19, 142, 61, 64, 103, 66, 32, 46, 10, 16, 70, 52, 148, 129, 8, 83, 0, 65, 124,
-			34, 13, 71, 122, 55, 0, 14, 69, 64, 84, 141, 37, 64, 48, 114, 65, 124, 47, 0, 36, 14, 69, 64, 84, 141, 37, 64, 48, 131, 65,
-			124, 47, 0, 47, 15, 70, 56, 21, 21, 72, 19, 0, 50, 35, 76, 13, 34, 118, 0, 15, 69, 12, 21, 133, 5, 64, 49, 35, 84, 124,
-			121, 47, 0, 103, 14, 69, 12, 21, 133, 5, 64, 49, 35, 84, 124, 35, 47, 0, 0, 24, 67, 25, 35, 205, 2, 83, 34, 129, 65, 15,
-			58, 6, 124, 76, 0, 8, 81, 119, 104, 105, 99, 104, 32, 23, 67, 25, 35, 205, 2, 83, 34, 129, 65, 15, 58, 6, 143, 0, 8, 81,
-			119, 104, 101, 114, 101, 32, 18, 67, 25, 35, 205, 2, 83, 34, 129, 65, 86, 115, 0, 81, 116, 104, 101, 32, 12, 67, 25, 35, 205, 83,
-			34, 129, 65, 0, 103, 72, 11, 67, 25, 35, 205, 83, 34, 126, 65, 0, 72, 17, 70, 80, 83, 133, 72, 145, 133, 47, 122, 50, 114, 34,
-			6, 132, 83, 0, 0, 11, 68, 56, 21, 82, 84, 50, 138, 34, 137, 0, 17, 70, 52, 147, 129, 72, 85, 0, 65, 124, 50, 13, 34, 6,
-			122, 47, 0, 12, 69, 32, 82, 70, 21, 32, 107, 122, 83, 114, 0, 12, 69, 28, 81, 90, 21, 32, 81, 132, 88, 114, 0, 9, 198, 21,
-			132, 12, 60, 149, 0, 36, 10, 198, 21, 132, 12, 60, 149, 0, 65, 47, 9, 198, 12, 20, 143, 80, 145, 0, 17, 13, 69, 5, 96, 84,
-			5, 32, 35, 84, 119, 47, 130, 0, 19, 72, 4, 208, 129, 77, 48, 68, 61, 32, 119, 65, 71, 35, 89, 13, 72, 114, 0, 0, 10, 67,
-			56, 148, 143, 50, 144, 34, 139, 0, 0, 14, 69, 8, 83, 143, 37, 64, 71, 122, 50, 58, 6, 121, 0, 10, 199, 84, 225, 5, 72, 194,
-			78, 28, 65, 15, 70, 77, 65, 78, 12, 147, 0, 89, 47, 122, 50, 89, 118, 0, 16, 69, 52, 147, 149, 21, 64, 65, 124, 50, 57, 137,
-			6, 122, 47, 0, 13, 69, 52, 84, 140, 61, 64, 65, 131, 55, 6, 139, 0, 6, 195, 21, 5, 66, 20, 19, 71, 12, 243, 80, 21, 66,
-			78, 28, 49, 13, 65, 48, 6, 132, 47, 124, 68, 0, 12, 201, 12, 192, 78, 16, 84, 212, 36, 225, 64, 66, 13, 69, 4, 35, 1, 85,
-			64, 35, 71, 55, 138, 47, 0, 6, 195, 4, 149, 2, 13, 0, 15, 70, 80, 133, 82, 76, 64, 89, 87, 151, 88, 72, 141, 0, 105, 14,
-			70, 80, 133, 82, 76, 64, 89, 87, 131, 88, 72, 141, 0, 6, 195, 60, 83, 64, 13, 13, 3, 95, 54, 88, 89, 6, 124, 49, 89, 47,
-			37, 0, 0, 13, 69, 72, 21, 8, 21, 32, 34, 121, 86, 114, 0, 135, 13, 69, 44, 147, 20, 21, 32, 49, 124, 55, 47, 114, 0, 15,
-			70, 28, 245, 82, 52, 19, 132, 81, 146, 65, 121, 50, 72, 0, 12, 69, 16, 144, 80, 21, 32, 72, 140, 48, 114, 0, 11, 69, 4, 85,
-			8, 21, 32, 132, 87, 13, 0, 8, 4, 95, 35, 116, 104, 87, 0, 0, 0, 17, 71, 72, 81, 133, 73, 34, 78, 28, 34, 113, 83, 131,
-			34, 124, 68, 0, 0, 14, 7, 116, 104, 101, 114, 101, 39, 100, 2, 86, 143, 72, 0, 15, 70, 32, 243, 69, 64, 17, 197, 107, 139, 65,
-			48, 141, 75, 0, 0, 0, 16, 70, 76, 144, 133, 48, 149, 83, 89, 113, 71, 141, 55, 144, 89, 0, 22, 72, 65, 33, 70, 21, 32, 66,
-			49, 144, 48, 34, 122, 83, 14, 34, 13, 71, 55, 124, 0, 32, 0, 0, 21, 73, 12, 243, 142, 20, 53, 9, 13, 85, 0, 49, 13, 50,
-			122, 47, 113, 49, 13, 47, 0, 23, 73, 80, 83, 5, 64, 131, 206, 37, 53, 0, 47, 13, 55, 6, 122, 83, 13, 50, 124, 89, 47, 0,
-			10, 67, 5, 4, 128, 35, 48, 34, 13, 0, 0, 12, 68, 56, 17, 10, 4, 50, 121, 72, 57, 13, 0, 11, 68, 52, 242, 82, 4, 65,
-			142, 34, 13, 0, 15, 69, 48, 244, 133, 57, 160, 55, 126, 34, 13, 50, 47, 89, 0, 13, 202, 36, 229, 5, 73, 35, 199, 5, 67, 210,
-			100, 67, 16, 70, 28, 84, 212, 4, 197, 0, 81, 13, 91, 47, 121, 55, 47, 0, 11, 68, 4, 112, 80, 20, 119, 81, 141, 48, 0, 0,
-			14, 69, 80, 84, 133, 76, 16, 47, 13, 34, 132, 89, 13, 0, 15, 69, 4, 197, 21, 72, 16, 133, 55, 47, 6, 146, 34, 13, 0, 13,
-			69, 76, 80, 78, 12, 80, 89, 141, 126, 50, 89, 0, 12, 69, 29, 82, 78, 20, 16, 81, 124, 50, 37, 0, 13, 69, 16, 83, 135, 84,
-			80, 72, 122, 50, 81, 37, 0, 0, 12, 68, 72, 83, 9, 12, 34, 122, 55, 124, 49, 0, 0, 11, 67, 80, 22, 25, 47, 35, 49, 89,
-			37, 0, 14, 69, 32, 84, 143, 36, 48, 107, 113, 34, 139, 124, 49, 0, 7, 195, 48, 36, 192, 13, 42, 11, 67, 48, 36, 192, 48, 138,
-			50, 72, 88, 0, 0, 17, 71, 88, 246, 69, 85, 34, 83, 52, 84, 142, 114, 124, 88, 13, 65, 0, 15, 70, 76, 84, 135, 20, 19, 148,
-			89, 130, 75, 13, 50, 47, 0, 16, 70, 61, 4, 15, 56, 83, 148, 13, 48, 139, 50, 13, 50, 47, 0, 12, 68, 5, 33, 78, 4, 119,
-			34, 132, 50, 13, 0, 0, 8, 197, 88, 148, 137, 48, 80, 16, 8, 197, 16, 240, 201, 48, 80, 16, 13, 69, 76, 51, 5, 72, 16, 89,
-			49, 55, 144, 34, 0, 8, 197, 76, 19, 9, 88, 16, 17, 13, 69, 72, 84, 193, 48, 80, 34, 132, 89, 141, 55, 0, 14, 69, 48, 240,
-			193, 48, 80, 55, 139, 49, 6, 120, 55, 0, 8, 197, 28, 19, 5, 56, 16, 17, 13, 69, 24, 16, 193, 16, 80, 83, 13, 89, 121, 72,
-			0, 13, 69, 16, 80, 193, 16, 80, 72, 122, 49, 141, 72, 0, 12, 69, 5, 3, 133, 60, 16, 35, 48, 50, 144, 0, 0, 14, 70, 12,
-			243, 142, 20, 195, 0, 49, 126, 50, 13, 55, 0, 15, 70, 65, 33, 67, 37, 49, 64, 48, 34, 113, 89, 140, 89, 0, 21, 73, 12, 84,
-			148, 36, 98, 67, 5, 65, 64, 89, 114, 47, 124, 83, 124, 49, 13, 47, 0, 0, 9, 67, 104, 241, 64, 88, 139, 37, 0, 8, 197, 5,
-			32, 66, 36, 48, 65, 10, 3, 95, 56, 88, 6, 141, 47, 37, 0, 0, 19, 72, 48, 84, 18, 20, 50, 1, 84, 224, 55, 122, 48, 34,
-			13, 49, 133, 50, 0, 19, 71, 12, 243, 150, 60, 197, 84, 20, 49, 126, 50, 84, 13, 55, 6, 137, 47, 0, 16, 71, 12, 131, 195, 60,
-			192, 84, 20, 76, 126, 49, 55, 13, 47, 0, 16, 71, 5, 4, 5, 48, 192, 84, 20, 119, 48, 122, 55, 13, 47, 0, 18, 71, 4, 197,
-			5, 72, 224, 84, 20, 133, 55, 47, 114, 50, 141, 47, 0, 36, 19, 71, 4, 197, 5, 72, 224, 84, 20, 133, 55, 47, 6, 131, 50, 13,
-			47, 0, 46, 0, 11, 67, 32, 84, 147, 107, 131, 88, 0, 72, 10, 13, 5, 100, 111, 110, 39, 116, 72, 139, 50, 47, 0, 32, 14, 69,
-			80, 18, 80, 20, 144, 47, 4, 140, 48, 6, 141, 0, 15, 69, 53, 84, 197, 84, 208, 65, 57, 137, 88, 6, 144, 65, 0, 15, 69, 8,
-			146, 201, 56, 144, 71, 124, 49, 6, 132, 50, 37, 0, 0, 15, 69, 72, 81, 140, 85, 128, 34, 132, 83, 55, 129, 49, 89, 0, 15, 69,
-			72, 81, 140, 21, 128, 34, 132, 83, 55, 122, 49, 89, 0, 0, 15, 69, 52, 242, 137, 80, 240, 65, 139, 107, 6, 132, 47, 139, 0, 8,
-			197, 21, 50, 201, 52, 240, 65, 0, 0, 0, 9, 66, 52, 80, 65, 132, 0, 50, 49, 9, 66, 52, 80, 4, 65, 132, 0, 46, 11, 200,
-			4, 229, 9, 12, 132, 137, 77, 64, 65, 0, 19, 72, 92, 147, 4, 21, 35, 133, 77, 48, 58, 124, 55, 72, 114, 50, 13, 89, 0, 12,
-			69, 32, 18, 82, 16, 240, 107, 143, 72, 137, 0, 12, 3, 95, 57, 88, 50, 6, 140, 50, 47, 37, 0, 0, 6, 195, 41, 84, 212, 32,
-			14, 70, 32, 20, 146, 36, 85, 0, 107, 35, 34, 144, 47, 0, 16, 70, 88, 144, 146, 5, 67, 192, 84, 113, 71, 34, 121, 47, 139, 0,
-			16, 70, 56, 81, 204, 20, 53, 0, 50, 113, 81, 55, 122, 49, 47, 0, 8, 67, 52, 82, 0, 65, 122, 0, 15, 70, 13, 35, 207, 44,
-			81, 0, 49, 34, 117, 49, 124, 72, 0, 0, 0, 12, 68, 13, 148, 149, 76, 89, 140, 34, 13, 89, 0, 8, 197, 61, 85, 19, 21, 64,
-			65, 13, 68, 60, 20, 197, 76, 139, 6, 141, 89, 132, 88, 0, 16, 70, 8, 148, 5, 16, 19, 0, 71, 140, 48, 6, 132, 72, 118, 0,
-			0, 26, 67, 52, 22, 64, 4, 65, 141, 107, 6, 35, 84, 47, 116, 0, 32, 49, 82, 104, 97, 118, 101, 32, 116, 111, 32, 19, 67, 52,
-			22, 64, 65, 141, 107, 119, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 10, 67, 52, 22, 64, 65, 141, 0, 32, 10, 11, 67, 92, 22,
-			25, 58, 35, 49, 89, 37, 0, 0, 13, 69, 21, 131, 79, 61, 32, 122, 49, 89, 65, 146, 0, 16, 70, 12, 244, 9, 48, 245, 0, 49,
-			139, 48, 140, 55, 13, 47, 0, 0, 0, 15, 69, 92, 130, 76, 77, 64, 58, 4, 140, 55, 89, 47, 0, 8, 11, 68, 76, 16, 200, 76,
-			89, 35, 49, 89, 0, 12, 68, 32, 17, 5, 76, 107, 141, 72, 132, 88, 0, 8, 197, 104, 80, 76, 61, 64, 16, 15, 70, 72, 80, 201,
-			80, 19, 0, 34, 113, 89, 140, 47, 118, 0, 13, 69, 64, 20, 146, 61, 64, 48, 35, 34, 13, 47, 0, 14, 69, 20, 194, 67, 37, 64,
-			113, 55, 124, 89, 113, 47, 0, 8, 197, 5, 34, 71, 33, 64, 17, 11, 3, 95, 63, 65, 55, 4, 122, 47, 114, 0, 0, 12, 68, 72,
-			18, 137, 88, 34, 121, 75, 132, 84, 0, 18, 71, 48, 193, 87, 20, 195, 25, 56, 55, 117, 58, 6, 122, 55, 124, 50, 0, 22, 68, 36,
-			229, 5, 72, 124, 50, 47, 114, 15, 6, 141, 55, 144, 0, 81, 97, 108, 105, 97, 32, 0, 12, 69, 21, 53, 8, 21, 32, 122, 89, 47,
-			114, 0, 14, 69, 21, 129, 84, 21, 32, 122, 49, 89, 124, 47, 114, 0, 13, 69, 52, 148, 212, 21, 32, 65, 124, 89, 47, 114, 0, 16,
-			70, 16, 83, 79, 48, 148, 200, 72, 113, 65, 126, 55, 124, 91, 0, 0, 20, 72, 16, 81, 137, 56, 149, 9, 88, 80, 72, 113, 83, 124,
-			50, 113, 47, 124, 84, 0, 13, 69, 5, 98, 65, 73, 144, 141, 84, 144, 34, 37, 0, 12, 4, 95, 52, 48, 111, 83, 6, 136, 47, 144,
-			0, 0, 14, 69, 88, 244, 148, 21, 128, 84, 135, 108, 122, 49, 89, 0, 8, 197, 88, 84, 148, 21, 128, 18, 0, 11, 68, 4, 20, 143,
-			56, 143, 34, 13, 50, 0, 10, 67, 80, 16, 149, 47, 35, 71, 137, 0, 0, 9, 198, 92, 245, 76, 17, 53, 0, 76, 9, 67, 81, 84,
-			200, 47, 117, 91, 0, 19, 71, 21, 132, 5, 73, 66, 83, 20, 122, 49, 89, 48, 114, 47, 6, 132, 88, 0, 12, 68, 12, 20, 18, 36,
-			49, 119, 48, 34, 132, 0, 19, 4, 95, 115, 117, 112, 89, 4, 137, 48, 114, 89, 49, 34, 124, 48, 47, 15, 0, 0, 13, 4, 95, 115,
-			116, 107, 89, 47, 34, 6, 139, 49, 0, 0, 17, 70, 80, 241, 197, 80, 129, 82, 47, 13, 81, 122, 86, 114, 0, 74, 10, 10, 198, 52,
-			18, 193, 77, 48, 82, 17, 16, 11, 200, 80, 132, 143, 84, 114, 15, 85, 64, 66, 11, 200, 80, 129, 82, 20, 16, 143, 85, 64, 67, 14,
-			70, 76, 131, 213, 48, 65, 82, 91, 139, 55, 72, 114, 0, 9, 198, 76, 83, 69, 77, 65, 82, 17, 15, 71, 72, 145, 200, 80, 83, 213,
-			76, 34, 140, 76, 13, 89, 0, 21, 72, 74, 36, 201, 77, 64, 78, 12, 80, 34, 141, 88, 124, 89, 47, 6, 153, 50, 89, 0, 15, 70,
-			52, 20, 129, 84, 65, 82, 65, 13, 34, 133, 72, 114, 0, 0, 19, 66, 36, 224, 124, 50, 119, 15, 34, 6, 139, 0, 82, 97, 32, 114,
-			111, 119, 32, 20, 66, 36, 224, 124, 50, 15, 58, 124, 76, 0, 74, 8, 81, 119, 104, 105, 99, 104, 32, 15, 66, 36, 224, 2, 124, 50,
-			86, 115, 0, 81, 116, 104, 101, 32, 11, 66, 36, 224, 2, 124, 50, 0, 9, 46, 34, 18, 72, 12, 130, 86, 4, 196, 143, 85, 48, 91,
-			124, 84, 118, 34, 13, 89, 0, 5, 194, 56, 64, 46, 9, 3, 226, 153, 175, 91, 130, 48, 0, 0, 10, 67, 72, 81, 15, 34, 132, 72,
-			137, 0, 10, 199, 4, 69, 133, 73, 50, 84, 100, 66, 6, 195, 65, 48, 64, 13, 6, 195, 53, 144, 64, 13, 0, 12, 68, 32, 21, 143,
-			12, 107, 35, 84, 13, 49, 0, 10, 3, 226, 153, 173, 83, 55, 35, 47, 0, 0, 19, 71, 16, 243, 129, 80, 83, 12, 60, 72, 126, 50,
-			13, 47, 6, 122, 55, 139, 0, 10, 67, 28, 20, 153, 81, 35, 34, 37, 0, 10, 199, 48, 16, 143, 72, 147, 213, 76, 17, 20, 71, 12,
-			243, 148, 72, 19, 20, 60, 49, 13, 50, 47, 34, 6, 35, 55, 47, 139, 0, 0, 9, 198, 85, 5, 9, 28, 133, 0, 66, 16, 70, 13,
-			84, 146, 20, 229, 0, 49, 6, 131, 13, 50, 47, 0, 103, 0, 11, 69, 100, 245, 78, 28, 80, 57, 129, 68, 0, 8, 197, 56, 144, 207,
-			48, 80, 66, 14, 69, 24, 83, 9, 64, 80, 83, 125, 55, 132, 48, 141, 0, 13, 69, 4, 225, 18, 20, 16, 35, 50, 72, 34, 144, 0,
-			15, 69, 76, 18, 1, 72, 16, 89, 119, 107, 35, 34, 13, 0, 103, 8, 197, 76, 18, 1, 72, 16, 17, 14, 69, 72, 80, 201, 64, 80,
-			34, 122, 89, 113, 48, 132, 0, 14, 69, 57, 80, 78, 12, 80, 50, 137, 126, 50, 89, 0, 103, 13, 69, 28, 83, 143, 52, 80, 75, 132,
-			50, 139, 65, 0, 15, 69, 24, 81, 15, 72, 16, 83, 113, 72, 6, 136, 34, 13, 0, 12, 69, 12, 243, 77, 36, 80, 49, 126, 65, 124,
-			0, 0, 0, 27, 68, 92, 245, 76, 16, 58, 117, 72, 107, 35, 84, 47, 116, 0, 74, 32, 10, 82, 104, 97, 118, 101, 32, 116, 111, 32,
-			21, 68, 92, 245, 76, 16, 58, 117, 72, 107, 35, 84, 0, 35, 49, 81, 104, 97, 118, 101, 32, 22, 68, 92, 245, 76, 16, 58, 2, 117,
-			72, 107, 2, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 10, 196, 92, 245, 76, 16, 76, 32, 46, 10, 10, 67, 80, 145, 25, 47, 140,
-			72, 37, 0, 10, 67, 48, 147, 25, 55, 124, 55, 37, 0, 0, 9, 66, 61, 32, 135, 0, 72, 8, 46, 18, 72, 76, 132, 133, 88, 84,
-			15, 73, 64, 91, 34, 132, 84, 48, 136, 47, 0, 13, 68, 104, 80, 146, 4, 88, 132, 71, 34, 13, 0, 103, 12, 68, 77, 82, 84, 20,
-			89, 58, 132, 47, 0, 47, 11, 67, 61, 129, 78, 126, 49, 89, 13, 50, 0, 12, 68, 20, 51, 204, 20, 124, 49, 6, 139, 55, 0, 0,
-			8, 197, 24, 16, 201, 48, 80, 16, 15, 69, 8, 84, 201, 16, 80, 71, 124, 89, 140, 72, 0, 74, 10, 8, 197, 76, 20, 137, 76, 16,
-			17, 14, 69, 32, 80, 193, 80, 80, 107, 122, 49, 13, 47, 141, 0, 13, 69, 16, 20, 8, 56, 80, 72, 35, 83, 50, 37, 0, 13, 69,
-			12, 80, 201, 48, 80, 89, 122, 89, 132, 55, 0, 14, 69, 88, 17, 201, 56, 16, 84, 13, 75, 140, 50, 13, 0, 8, 197, 85, 1, 1,
-			80, 80, 36, 9, 197, 85, 1, 1, 80, 80, 65, 47, 14, 69, 76, 243, 21, 80, 80, 89, 126, 55, 57, 137, 47, 0, 13, 69, 76, 81,
-			1, 80, 80, 89, 113, 72, 141, 47, 0, 8, 197, 72, 245, 1, 80, 80, 66, 15, 69, 72, 81, 201, 56, 16, 34, 125, 75, 132, 50, 13,
-			0, 103, 13, 69, 72, 81, 193, 48, 80, 34, 113, 81, 141, 55, 0, 13, 69, 56, 81, 193, 80, 80, 50, 113, 81, 141, 47, 0, 13, 69,
-			48, 145, 193, 80, 80, 55, 132, 81, 141, 47, 0, 14, 69, 13, 84, 129, 80, 80, 49, 57, 146, 34, 141, 47, 0, 15, 69, 12, 194, 67,
-			32, 80, 49, 55, 132, 91, 6, 141, 0, 103, 13, 69, 12, 194, 67, 32, 80, 49, 55, 132, 91, 141, 0, 0, 20, 70, 37, 53, 1, 56,
-			37, 76, 4, 124, 89, 47, 4, 35, 50, 71, 6, 117, 55, 0, 12, 201, 12, 243, 148, 72, 245, 133, 73, 54, 64, 65, 10, 67, 5, 149,
-			72, 119, 57, 6, 13, 0, 0, 13, 5, 104, 101, 39, 108, 108, 107, 132, 55, 0, 72, 32, 15, 70, 76, 19, 131, 32, 86, 128, 89, 35,
-			50, 76, 122, 88, 0, 9, 67, 4, 70, 133, 35, 72, 88, 0, 0, 16, 6, 104, 97, 115, 110, 39, 116, 107, 35, 88, 14, 50, 47, 0,
-			35, 16, 6, 115, 104, 97, 110, 39, 116, 4, 91, 121, 50, 47, 0, 32, 10, 13, 68, 16, 243, 2, 100, 72, 139, 55, 71, 37, 0, 103,
-			19, 71, 5, 2, 18, 60, 66, 84, 20, 35, 83, 34, 13, 72, 6, 140, 47, 37, 0, 11, 68, 16, 128, 66, 36, 72, 121, 71, 37, 0,
-			17, 71, 76, 245, 78, 16, 34, 84, 20, 89, 138, 50, 72, 71, 140, 47, 0, 11, 68, 72, 16, 130, 36, 34, 35, 71, 140, 0, 19, 71,
-			64, 85, 18, 60, 193, 85, 52, 48, 13, 47, 34, 139, 55, 132, 13, 65, 0, 11, 68, 24, 145, 82, 100, 83, 148, 34, 124, 0, 19, 71,
-			21, 133, 18, 4, 66, 84, 20, 122, 49, 89, 47, 34, 13, 72, 140, 47, 0, 11, 199, 12, 243, 80, 61, 50, 84, 20, 103, 66, 0, 15,
-			7, 116, 104, 101, 121, 39, 108, 108, 86, 141, 55, 0, 72, 32, 16, 4, 95, 115, 109, 99, 89, 65, 6, 133, 55, 49, 4, 35, 48, 0,
-			0, 0, 10, 68, 53, 148, 146, 32, 65, 151, 0, 105, 9, 68, 53, 148, 146, 32, 65, 131, 0, 0, 16, 70, 60, 33, 76, 37, 50, 192,
-			126, 71, 13, 55, 113, 89, 49, 0, 0, 8, 67, 61, 82, 64, 58, 132, 0, 10, 68, 36, 227, 133, 72, 124, 50, 114, 0, 10, 67, 29,
-			82, 64, 81, 137, 37, 0, 47, 0, 12, 68, 80, 149, 21, 76, 47, 140, 47, 13, 89, 0, 20, 73, 4, 192, 149, 69, 81, 82, 69, 81,
-			64, 35, 55, 71, 13, 49, 131, 49, 37, 0, 13, 68, 80, 22, 9, 76, 47, 35, 49, 89, 37, 88, 0, 9, 198, 61, 85, 2, 85, 36,
-			212, 65, 15, 70, 36, 208, 71, 21, 38, 64, 124, 65, 124, 75, 34, 37, 0, 12, 68, 24, 85, 21, 76, 83, 132, 47, 13, 89, 0, 9,
-			198, 24, 84, 146, 5, 34, 64, 17, 15, 70, 12, 130, 65, 57, 66, 64, 49, 57, 121, 50, 47, 37, 0, 16, 70, 4, 230, 9, 21, 70,
-			64, 35, 68, 88, 6, 147, 47, 37, 0, 16, 70, 4, 34, 76, 37, 70, 64, 119, 71, 124, 55, 13, 47, 37, 0, 15, 67, 16, 84, 20,
-			72, 113, 48, 130, 47, 65, 13, 50, 47, 0, 0, 14, 68, 76, 128, 76, 80, 4, 91, 35, 55, 47, 0, 32, 46, 10, 67, 52, 243, 153,
-			65, 129, 50, 124, 0, 0, 18, 70, 77, 83, 65, 81, 32, 78, 89, 137, 65, 6, 121, 47, 34, 13, 50, 0, 16, 70, 76, 243, 9, 12,
-			149, 0, 89, 13, 55, 124, 89, 113, 47, 0, 16, 70, 52, 83, 1, 52, 81, 0, 65, 122, 55, 13, 65, 122, 72, 0, 16, 71, 12, 130,
-			72, 84, 18, 21, 4, 76, 113, 58, 121, 58, 13, 0, 0, 11, 68, 80, 21, 1, 72, 47, 121, 47, 114, 0, 11, 68, 72, 17, 1, 72,
-			34, 141, 72, 130, 0, 11, 68, 48, 149, 5, 72, 55, 132, 47, 114, 0, 12, 68, 36, 225, 133, 72, 124, 50, 83, 6, 131, 0, 13, 5,
-			99, 39, 109, 111, 110, 49, 13, 65, 126, 50, 0, 0, 12, 68, 4, 225, 5, 76, 35, 50, 72, 132, 88, 0, 10, 4, 95, 35, 110, 100,
-			13, 50, 72, 0, 0, 14, 68, 21, 128, 76, 80, 122, 81, 88, 6, 126, 55, 47, 0, 0, 11, 68, 100, 17, 83, 84, 57, 141, 89, 137,
-			0, 18, 70, 9, 80, 200, 4, 224, 78, 71, 57, 137, 49, 6, 35, 50, 13, 50, 0, 12, 200, 81, 32, 78, 76, 52, 137, 65, 64, 65,
-			47, 13, 70, 65, 54, 67, 32, 81, 0, 89, 140, 49, 72, 0, 5, 194, 61, 48, 13, 11, 4, 95, 98, 97, 114, 10, 71, 6, 130, 0,
-			19, 4, 95, 99, 105, 114, 89, 6, 131, 49, 129, 65, 83, 55, 4, 122, 49, 89, 0, 4, 193, 172, 43, 0, 9, 67, 36, 19, 128, 132,
-			13, 50, 0, 23, 67, 8, 243, 128, 71, 126, 50, 15, 84, 142, 6, 121, 90, 0, 81, 118, 111, 121, 97, 103, 101, 32, 0, 6, 195, 61,
-			54, 0, 13, 0, 16, 70, 21, 97, 82, 100, 243, 133, 122, 84, 34, 124, 58, 128, 50, 0, 16, 70, 52, 17, 5, 48, 147, 133, 65, 35,
-			72, 13, 55, 113, 50, 0, 15, 69, 28, 64, 78, 76, 176, 81, 14, 72, 35, 50, 89, 49, 0, 15, 70, 5, 1, 78, 56, 147, 133, 35,
-			48, 13, 50, 140, 50, 0, 16, 70, 88, 20, 197, 48, 147, 133, 84, 35, 89, 13, 55, 132, 50, 0, 8, 197, 32, 148, 8, 61, 0, 18,
-			13, 69, 32, 84, 133, 80, 240, 107, 145, 6, 47, 137, 0, 0, 17, 70, 92, 128, 84, 21, 97, 82, 58, 128, 47, 122, 84, 114, 0, 66,
-			8, 14, 70, 77, 84, 16, 48, 145, 82, 89, 13, 48, 55, 148, 0, 9, 198, 52, 244, 133, 61, 97, 82, 66, 15, 70, 52, 19, 149, 21,
-			97, 82, 65, 13, 50, 137, 84, 114, 0, 15, 70, 52, 19, 133, 85, 97, 82, 65, 13, 50, 137, 84, 114, 0, 9, 198, 52, 19, 9, 56,
-			113, 82, 17, 13, 4, 95, 48, 77, 50, 65, 6, 124, 55, 144, 50, 0, 0, 17, 71, 64, 243, 80, 4, 67, 213, 72, 48, 126, 65, 48,
-			119, 72, 136, 0, 14, 69, 92, 20, 193, 8, 144, 58, 119, 89, 121, 71, 37, 0, 12, 68, 61, 34, 79, 56, 126, 34, 6, 147, 50, 0,
-			21, 72, 36, 212, 5, 72, 21, 9, 88, 80, 124, 65, 48, 6, 122, 34, 13, 47, 124, 84, 0, 11, 200, 16, 84, 143, 28, 21, 9, 88,
-			80, 66, 21, 67, 13, 83, 64, 49, 117, 65, 55, 6, 138, 72, 37, 0, 81, 108, 97, 117, 100, 101, 32, 13, 4, 95, 48, 77, 51, 71,
-			6, 124, 55, 144, 50, 0, 0, 18, 71, 20, 116, 133, 28, 147, 213, 76, 124, 81, 34, 6, 132, 75, 13, 89, 0, 12, 68, 12, 19, 69,
-			60, 49, 35, 65, 124, 139, 0, 24, 73, 4, 36, 129, 12, 17, 1, 9, 32, 64, 35, 71, 34, 13, 49, 13, 72, 6, 35, 71, 34, 13,
-			0, 0, 8, 197, 4, 208, 78, 16, 240, 17, 15, 69, 16, 144, 66, 48, 240, 72, 132, 6, 121, 71, 55, 139, 0, 14, 4, 95, 48, 77,
-			49, 87, 6, 138, 88, 13, 50, 72, 0, 0, 10, 199, 52, 19, 135, 4, 225, 83, 20, 65, 10, 199, 16, 148, 195, 61, 84, 147, 20, 65,
-			18, 71, 8, 243, 15, 28, 225, 83, 20, 71, 126, 55, 13, 50, 6, 141, 88, 0, 0, 15, 69, 80, 35, 9, 76, 144, 47, 14, 71, 55,
-			132, 89, 37, 0, 19, 72, 65, 54, 67, 32, 144, 84, 73, 144, 89, 140, 49, 6, 147, 47, 34, 124, 0, 8, 67, 52, 148, 128, 65, 145,
-			0, 0, 16, 70, 65, 35, 199, 20, 230, 64, 48, 34, 126, 75, 13, 50, 37, 0, 0, 11, 67, 60, 227, 25, 139, 50, 55, 37, 0, 40,
-			17, 70, 76, 85, 133, 72, 83, 25, 89, 113, 84, 6, 145, 55, 124, 0, 32, 12, 68, 56, 18, 197, 16, 50, 141, 49, 125, 72, 0, 17,
-			71, 52, 19, 135, 21, 67, 213, 80, 65, 126, 50, 90, 47, 6, 137, 0, 10, 199, 48, 245, 68, 52, 245, 84, 32, 15, 10, 199, 28, 240,
-			76, 52, 245, 84, 32, 15, 0, 12, 67, 61, 97, 82, 139, 84, 114, 0, 72, 10, 46, 11, 68, 40, 19, 73, 20, 75, 141, 65, 37, 0,
-			11, 67, 49, 99, 214, 55, 14, 84, 126, 84, 0, 9, 198, 92, 81, 75, 20, 225, 0, 66, 11, 68, 48, 83, 77, 20, 55, 122, 65, 37,
-			0, 10, 68, 32, 243, 13, 20, 107, 139, 65, 0, 0, 10, 67, 56, 244, 128, 50, 135, 0, 8, 46, 18, 67, 24, 244, 128, 83, 135, 58,
-			128, 50, 0, 66, 49, 81, 111, 110, 101, 32, 23, 67, 24, 244, 128, 83, 114, 13, 15, 58, 6, 140, 55, 0, 82, 97, 32, 119, 104, 105,
-			108, 101, 32, 16, 67, 24, 244, 128, 83, 114, 86, 115, 0, 34, 81, 116, 104, 101, 32, 15, 67, 24, 244, 128, 83, 114, 13, 50, 0, 34,
-			81, 97, 110, 32, 13, 67, 24, 244, 128, 83, 114, 13, 0, 34, 81, 97, 32, 9, 67, 24, 244, 128, 83, 135, 0, 72, 20, 72, 72, 80,
-			207, 53, 1, 78, 76, 80, 34, 122, 49, 13, 65, 48, 122, 50, 89, 0, 10, 67, 36, 225, 15, 124, 50, 72, 139, 0, 20, 72, 12, 243,
-			80, 72, 243, 73, 76, 80, 49, 126, 65, 48, 34, 13, 65, 140, 88, 0, 0, 15, 70, 8, 244, 215, 20, 195, 0, 71, 126, 88, 58, 122,
-			55, 0, 0, 18, 70, 100, 244, 197, 52, 149, 5, 57, 139, 89, 6, 122, 65, 13, 47, 37, 0, 10, 67, 72, 83, 25, 34, 113, 55, 140,
-			0, 16, 70, 64, 20, 129, 76, 149, 5, 48, 35, 34, 13, 89, 140, 47, 0, 9, 198, 60, 33, 21, 72, 21, 5, 16, 17, 70, 52, 241,
-			5, 72, 21, 5, 65, 126, 72, 13, 34, 141, 47, 0, 36, 9, 198, 48, 149, 5, 72, 21, 5, 16, 18, 70, 29, 32, 68, 84, 21, 5,
-			81, 34, 35, 72, 57, 137, 141, 47, 0, 36, 9, 198, 29, 32, 68, 84, 21, 5, 16, 9, 198, 16, 83, 9, 12, 21, 5, 16, 10, 67,
-			8, 83, 25, 71, 113, 55, 140, 0, 9, 198, 4, 229, 9, 16, 245, 5, 65, 0, 11, 68, 44, 21, 9, 20, 49, 141, 47, 37, 0, 11,
-			68, 80, 84, 5, 20, 47, 132, 48, 132, 0, 17, 70, 52, 20, 212, 60, 67, 206, 65, 35, 89, 47, 13, 72, 126, 50, 0, 24, 74, 12,
-			148, 131, 84, 209, 133, 72, 83, 131, 20, 89, 131, 49, 6, 129, 65, 83, 34, 13, 50, 89, 0, 0, 14, 69, 32, 82, 193, 80, 80, 107,
-			122, 49, 13, 47, 141, 0, 13, 69, 8, 160, 82, 56, 80, 71, 57, 130, 50, 13, 0, 20, 72, 21, 146, 129, 24, 160, 76, 48, 16, 141,
-			57, 119, 83, 57, 35, 47, 55, 119, 0, 16, 70, 48, 147, 69, 72, 144, 203, 55, 124, 65, 13, 34, 124, 49, 0, 10, 67, 5, 53, 83,
-			141, 89, 13, 89, 0, 6, 195, 65, 53, 64, 13, 14, 4, 95, 108, 105, 103, 55, 4, 124, 81, 119, 76, 13, 0, 0, 16, 70, 72, 82,
-			78, 32, 243, 4, 34, 140, 50, 107, 139, 55, 72, 0, 16, 70, 72, 81, 201, 56, 19, 4, 34, 122, 75, 124, 50, 118, 72, 0, 31, 76,
-			88, 145, 5, 60, 51, 206, 24, 84, 133, 56, 49, 64, 84, 6, 124, 72, 132, 139, 15, 49, 6, 126, 50, 83, 34, 13, 50, 89, 0, 0,
-			16, 5, 105, 115, 110, 39, 116, 4, 124, 88, 13, 50, 47, 0, 35, 10, 17, 70, 40, 147, 69, 56, 86, 128, 107, 124, 65, 6, 122, 50,
-			122, 88, 0, 11, 68, 56, 145, 197, 48, 50, 140, 75, 118, 0, 11, 68, 12, 80, 201, 48, 89, 122, 89, 118, 0, 12, 68, 80, 146, 193,
-			48, 47, 113, 49, 121, 55, 0, 11, 68, 80, 18, 197, 48, 47, 35, 49, 118, 0, 11, 68, 8, 17, 197, 48, 71, 141, 81, 118, 0, 0,
-			18, 71, 72, 21, 9, 60, 224, 76, 20, 34, 35, 91, 13, 50, 6, 35, 55, 0, 11, 68, 29, 80, 195, 36, 81, 137, 76, 37, 0, 0,
-			14, 69, 40, 16, 207, 8, 144, 75, 119, 49, 139, 71, 37, 0, 16, 70, 92, 147, 142, 37, 1, 71, 58, 124, 50, 113, 48, 122, 81, 0,
-			0, 0, 15, 68, 92, 130, 67, 32, 4, 58, 124, 76, 0, 8, 10, 46, 32, 30, 5, 99, 97, 110, 39, 116, 4, 49, 35, 50, 47, 6,
-			35, 84, 47, 116, 0, 103, 32, 49, 82, 104, 97, 118, 101, 32, 116, 111, 32, 22, 5, 99, 97, 110, 39, 116, 49, 35, 50, 47, 119, 84,
-			0, 103, 35, 81, 104, 97, 118, 101, 32, 16, 5, 99, 97, 110, 39, 116, 49, 35, 50, 47, 0, 103, 32, 46, 10, 29, 5, 99, 97, 110,
-			39, 116, 4, 49, 121, 50, 47, 6, 35, 84, 47, 116, 0, 32, 49, 82, 104, 97, 118, 101, 32, 116, 111, 32, 21, 5, 99, 97, 110, 39,
-			116, 49, 121, 50, 47, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 15, 5, 99, 97, 110, 39, 116, 49, 121, 50, 47, 0, 32, 46, 10,
-			17, 70, 52, 243, 148, 4, 117, 69, 65, 126, 50, 108, 13, 81, 57, 137, 0, 16, 70, 64, 21, 18, 36, 50, 65, 48, 119, 47, 34, 124,
-			91, 13, 0, 13, 68, 72, 80, 133, 48, 34, 113, 71, 122, 55, 0, 36, 10, 199, 28, 83, 204, 60, 114, 83, 80, 66, 17, 70, 16, 84,
-			137, 76, 244, 153, 72, 113, 34, 140, 88, 13, 34, 37, 0, 15, 70, 8, 20, 212, 36, 243, 128, 71, 35, 89, 47, 144, 50, 0, 21, 72,
-			5, 34, 84, 32, 209, 84, 36, 48, 119, 34, 124, 87, 65, 13, 47, 124, 49, 0, 47, 0, 16, 70, 12, 131, 210, 37, 163, 192, 76, 134,
-			34, 6, 132, 88, 139, 0, 18, 71, 8, 16, 203, 77, 67, 210, 100, 71, 35, 49, 89, 47, 136, 34, 37, 0, 24, 66, 44, 208, 89, 49,
-			58, 4, 143, 49, 124, 55, 6, 126, 65, 124, 47, 114, 88, 0, 81, 194, 178, 32, 0, 9, 198, 77, 147, 65, 57, 65, 67, 66, 0, 12,
-			68, 16, 244, 137, 76, 72, 126, 34, 124, 89, 0, 12, 68, 8, 244, 137, 76, 71, 126, 34, 124, 89, 0, 16, 70, 64, 192, 89, 80, 84,
-			212, 48, 55, 141, 47, 122, 89, 47, 0, 14, 70, 12, 244, 132, 36, 19, 0, 49, 135, 75, 118, 0, 103, 20, 72, 12, 20, 130, 85, 33,
-			84, 61, 32, 49, 130, 71, 13, 34, 141, 47, 114, 0, 103, 20, 72, 12, 20, 130, 85, 33, 84, 61, 32, 49, 130, 71, 13, 34, 6, 122,
-			47, 114, 0, 9, 198, 5, 4, 1, 72, 19, 0, 17, 13, 68, 4, 66, 79, 76, 35, 86, 57, 6, 152, 89, 0, 0, 13, 69, 16, 19,
-			12, 5, 48, 72, 35, 55, 13, 89, 0, 12, 69, 44, 245, 212, 61, 112, 49, 138, 108, 138, 0, 13, 69, 32, 84, 141, 21, 48, 107, 131,
-			65, 132, 88, 0, 10, 67, 16, 83, 153, 72, 113, 50, 140, 0, 13, 69, 4, 66, 69, 85, 48, 119, 72, 57, 137, 88, 0, 0, 16, 70,
-			52, 147, 4, 72, 81, 0, 65, 124, 55, 72, 34, 113, 72, 0, 16, 70, 52, 244, 143, 12, 48, 78, 65, 13, 34, 126, 49, 13, 50, 0,
-			21, 73, 56, 243, 133, 80, 129, 76, 21, 52, 192, 50, 129, 50, 86, 13, 55, 6, 122, 89, 0, 21, 71, 36, 225, 197, 57, 82, 84, 100,
-			124, 50, 75, 113, 50, 6, 57, 137, 113, 47, 37, 0, 19, 71, 12, 243, 77, 84, 226, 84, 100, 49, 13, 65, 57, 137, 50, 113, 47, 37,
-			0, 16, 70, 8, 19, 145, 84, 85, 0, 71, 35, 68, 49, 58, 113, 47, 0, 0, 14, 70, 56, 244, 151, 36, 50, 0, 50, 126, 34, 113,
-			76, 0, 7, 195, 52, 149, 0, 13, 42, 0, 12, 68, 28, 20, 197, 76, 81, 35, 89, 125, 88, 0, 11, 200, 21, 48, 213, 80, 50, 5,
-			60, 224, 66, 6, 195, 85, 80, 208, 13, 0, 9, 198, 80, 129, 79, 16, 244, 133, 65, 10, 67, 64, 243, 25, 48, 126, 55, 124, 0, 8,
-			197, 52, 243, 1, 77, 48, 17, 18, 70, 16, 144, 83, 64, 244, 129, 72, 140, 6, 35, 89, 48, 13, 34, 13, 0, 14, 70, 13, 33, 65,
-			81, 84, 133, 49, 34, 132, 76, 114, 0, 15, 69, 12, 244, 205, 61, 48, 49, 126, 88, 65, 139, 89, 0, 103, 14, 69, 12, 244, 205, 61,
-			48, 49, 126, 88, 65, 126, 89, 0, 0, 10, 66, 53, 144, 65, 140, 0, 72, 34, 10, 18, 71, 12, 20, 211, 4, 225, 18, 4, 49, 13,
-			89, 35, 50, 72, 34, 13, 0, 16, 71, 52, 83, 2, 61, 84, 142, 20, 65, 122, 55, 71, 114, 50, 0, 19, 71, 36, 225, 15, 12, 130,
-			78, 4, 124, 50, 72, 139, 76, 6, 140, 50, 13, 0, 16, 70, 77, 84, 144, 49, 84, 192, 89, 131, 48, 55, 129, 89, 0, 103, 16, 70,
-			77, 4, 129, 100, 48, 78, 89, 48, 34, 141, 49, 35, 50, 0, 17, 70, 64, 193, 66, 20, 144, 78, 48, 55, 13, 71, 6, 132, 13, 50,
-			0, 10, 199, 52, 148, 129, 56, 66, 90, 20, 66, 16, 70, 12, 194, 67, 32, 81, 0, 49, 55, 132, 91, 6, 141, 72, 0, 17, 71, 12,
-			128, 77, 64, 17, 206, 20, 91, 35, 65, 48, 6, 141, 50, 0, 18, 71, 4, 49, 84, 100, 193, 78, 20, 119, 89, 122, 47, 13, 55, 132,
-			50, 0, 14, 4, 95, 114, 101, 118, 34, 124, 84, 6, 131, 89, 72, 0, 0, 17, 70, 76, 49, 78, 5, 34, 79, 89, 13, 50, 35, 34,
-			37, 139, 0, 103, 16, 70, 76, 49, 78, 5, 34, 79, 89, 13, 50, 130, 34, 37, 139, 0, 17, 70, 24, 192, 77, 20, 224, 207, 83, 55,
-			119, 65, 122, 68, 49, 139, 0, 13, 4, 95, 53, 48, 111, 83, 6, 124, 83, 47, 144, 0, 0, 0, 14, 69, 29, 34, 71, 36, 240, 81,
-			34, 132, 90, 6, 139, 0, 16, 70, 76, 22, 79, 56, 20, 129, 89, 140, 13, 50, 6, 130, 13, 0, 11, 68, 21, 21, 65, 48, 132, 49,
-			58, 118, 0, 8, 197, 16, 243, 73, 56, 240, 65, 15, 69, 16, 80, 149, 56, 176, 72, 132, 71, 6, 129, 50, 49, 0, 0, 17, 70, 16,
-			144, 77, 21, 65, 82, 72, 140, 6, 35, 65, 113, 47, 114, 0, 15, 70, 8, 20, 211, 37, 53, 0, 71, 141, 89, 124, 89, 47, 0, 14,
-			70, 4, 148, 144, 61, 113, 82, 6, 143, 48, 4, 149, 0, 0, 15, 67, 61, 85, 0, 4, 138, 47, 13, 84, 0, 81, 111, 102, 32, 15,
-			69, 81, 34, 65, 56, 144, 47, 34, 132, 6, 35, 50, 37, 0, 7, 196, 100, 83, 69, 56, 16, 12, 68, 4, 211, 65, 56, 119, 65, 6,
-			121, 50, 0, 19, 72, 4, 197, 18, 36, 224, 200, 4, 208, 133, 55, 47, 34, 124, 68, 13, 65, 0, 17, 70, 32, 84, 131, 84, 193, 83,
-			107, 131, 49, 57, 117, 55, 132, 88, 0, 17, 70, 16, 144, 66, 21, 65, 83, 72, 147, 71, 6, 132, 47, 132, 88, 0, 0, 18, 4, 95,
-			114, 102, 120, 34, 6, 122, 47, 34, 13, 83, 55, 122, 49, 89, 0, 0, 15, 70, 28, 147, 12, 36, 19, 128, 75, 124, 55, 132, 13, 50,
-			0, 17, 70, 104, 147, 66, 4, 37, 197, 88, 113, 65, 71, 121, 71, 58, 37, 0, 17, 70, 56, 84, 1, 48, 84, 197, 50, 122, 48, 13,
-			55, 6, 132, 88, 0, 9, 198, 81, 32, 86, 21, 36, 197, 17, 10, 67, 80, 241, 149, 47, 139, 83, 137, 0, 14, 70, 76, 80, 76, 36,
-			243, 128, 89, 132, 55, 147, 50, 0, 16, 70, 64, 20, 129, 16, 148, 197, 48, 35, 34, 13, 72, 140, 89, 0, 17, 70, 48, 81, 193, 48,
-			84, 197, 55, 132, 81, 13, 55, 6, 132, 88, 0, 17, 70, 36, 224, 210, 20, 20, 197, 124, 50, 49, 34, 6, 132, 89, 0, 36, 9, 198,
-			12, 243, 150, 21, 36, 197, 36, 10, 198, 12, 243, 150, 21, 36, 197, 65, 46, 0, 16, 66, 60, 96, 3, 128, 84, 86, 115, 0, 34, 81,
-			116, 104, 101, 32, 19, 66, 60, 96, 128, 84, 58, 124, 76, 0, 66, 8, 81, 119, 104, 105, 99, 104, 32, 14, 66, 60, 96, 13, 84, 13,
-			50, 0, 34, 81, 97, 110, 32, 12, 66, 60, 96, 13, 84, 13, 0, 34, 81, 97, 32, 9, 66, 60, 96, 128, 84, 0, 72, 46, 12, 68,
-			64, 19, 19, 100, 48, 133, 55, 88, 37, 0, 20, 71, 36, 229, 133, 57, 67, 210, 100, 124, 50, 84, 13, 50, 47, 152, 34, 37, 0, 103,
-			18, 71, 36, 229, 133, 57, 67, 210, 100, 124, 50, 84, 13, 50, 47, 34, 37, 0, 13, 202, 12, 243, 148, 20, 212, 12, 5, 66, 86, 20,
-			66, 24, 74, 5, 85, 8, 61, 34, 84, 5, 66, 86, 20, 119, 87, 6, 135, 125, 108, 141, 47, 124, 84, 0, 103, 24, 74, 5, 85, 8,
-			61, 34, 84, 5, 66, 86, 20, 133, 87, 6, 126, 34, 113, 47, 13, 47, 124, 84, 0, 0, 9, 67, 52, 144, 192, 65, 140, 49, 0, 0,
-			0, 11, 68, 76, 178, 69, 16, 89, 49, 132, 72, 0, 15, 70, 49, 82, 197, 92, 20, 141, 55, 137, 49, 58, 135, 65, 0, 19, 71, 4,
-			97, 137, 16, 21, 137, 80, 35, 83, 124, 72, 6, 141, 84, 124, 47, 0, 0, 11, 68, 16, 21, 137, 20, 72, 141, 84, 37, 0, 10, 68,
-			4, 113, 201, 20, 35, 81, 37, 0, 0, 0, 0, 11, 68, 5, 52, 193, 16, 119, 89, 121, 72, 0, 6, 195, 36, 212, 9, 65, 10, 67,
-			32, 244, 9, 107, 139, 48, 132, 0, 9, 198, 12, 20, 211, 21, 69, 5, 17, 12, 68, 8, 148, 5, 16, 71, 140, 48, 122, 72, 0, 0,
-			15, 70, 28, 84, 129, 36, 229, 0, 81, 122, 34, 140, 50, 47, 0, 12, 68, 84, 229, 9, 20, 129, 50, 47, 6, 140, 0, 15, 70, 56,
-			20, 195, 20, 229, 0, 50, 141, 89, 13, 50, 47, 0, 11, 68, 8, 147, 205, 20, 71, 140, 139, 65, 0, 15, 70, 4, 116, 143, 84, 225,
-			0, 119, 81, 34, 138, 50, 72, 0, 0, 8, 67, 4, 33, 64, 141, 71, 0, 10, 67, 81, 112, 83, 47, 58, 126, 88, 0, 0, 0, 10,
-			68, 60, 208, 71, 32, 139, 65, 121, 0, 12, 201, 80, 129, 82, 52, 244, 212, 4, 35, 5, 15, 23, 73, 72, 84, 212, 61, 32, 84, 36,
-			243, 128, 34, 122, 89, 47, 13, 34, 6, 141, 91, 13, 50, 0, 23, 73, 72, 84, 208, 37, 32, 84, 36, 243, 128, 34, 122, 89, 48, 125,
-			34, 6, 141, 91, 13, 50, 0, 13, 201, 65, 35, 199, 72, 19, 77, 4, 35, 5, 103, 66, 23, 73, 65, 33, 80, 5, 32, 84, 36, 243,
-			128, 48, 34, 122, 48, 13, 34, 6, 141, 91, 13, 50, 0, 21, 73, 64, 131, 206, 20, 209, 84, 4, 35, 5, 83, 139, 50, 132, 65, 47,
-			141, 71, 118, 0, 12, 201, 16, 148, 210, 21, 5, 84, 4, 35, 5, 66, 21, 73, 4, 97, 137, 72, 208, 84, 36, 243, 128, 35, 83, 114,
-			65, 6, 141, 91, 13, 50, 0, 0, 9, 198, 48, 83, 212, 5, 33, 0, 18, 13, 202, 36, 225, 5, 80, 84, 141, 36, 224, 84, 20, 16,
-			0, 11, 200, 65, 35, 202, 20, 53, 9, 48, 80, 16, 12, 67, 60, 225, 64, 58, 128, 50, 0, 34, 47, 11, 6, 195, 60, 209, 192, 13,
-			0, 16, 70, 21, 48, 193, 72, 115, 212, 113, 89, 49, 6, 130, 81, 139, 0, 14, 4, 95, 99, 101, 100, 89, 13, 72, 6, 124, 55, 119,
-			0, 0, 14, 70, 76, 147, 194, 32, 19, 128, 91, 13, 84, 133, 50, 0, 16, 70, 48, 80, 129, 56, 243, 128, 55, 122, 71, 13, 50, 126,
-			50, 0, 16, 70, 32, 244, 137, 104, 243, 128, 107, 13, 34, 140, 88, 13, 50, 0, 15, 70, 25, 34, 83, 76, 243, 128, 83, 34, 132, 89,
-			6, 154, 0, 14, 70, 8, 19, 12, 60, 243, 128, 71, 13, 55, 137, 50, 0, 16, 70, 4, 33, 15, 52, 83, 128, 35, 71, 72, 13, 65,
-			13, 50, 0, 0, 13, 68, 49, 82, 71, 36, 55, 137, 6, 132, 75, 37, 0, 14, 70, 28, 84, 136, 5, 33, 0, 81, 143, 107, 130, 47,
-			0, 14, 70, 80, 129, 82, 21, 67, 192, 86, 143, 47, 6, 137, 0, 10, 199, 12, 244, 143, 48, 192, 82, 100, 66, 0, 14, 69, 64, 148,
-			129, 13, 144, 48, 148, 34, 13, 89, 37, 0, 14, 69, 12, 241, 9, 25, 144, 49, 139, 72, 113, 83, 140, 0, 15, 70, 4, 229, 9, 60,
-			50, 0, 35, 50, 108, 132, 126, 49, 0, 0, 17, 70, 72, 20, 8, 4, 83, 0, 34, 121, 83, 140, 6, 122, 55, 0, 103, 15, 70, 80,
-			83, 132, 72, 147, 0, 47, 122, 50, 72, 34, 118, 0, 19, 71, 77, 68, 129, 80, 81, 201, 12, 89, 47, 34, 13, 47, 132, 75, 124, 49,
-			0, 15, 70, 61, 3, 211, 77, 83, 64, 13, 48, 126, 89, 13, 65, 0, 23, 73, 12, 19, 65, 72, 17, 5, 72, 145, 64, 49, 35, 65,
-			13, 34, 6, 121, 72, 13, 34, 37, 0, 0, 14, 69, 21, 33, 66, 85, 48, 122, 34, 125, 71, 13, 89, 0, 13, 68, 69, 80, 137, 80,
-			49, 57, 137, 71, 124, 47, 0, 13, 69, 32, 17, 199, 37, 48, 107, 35, 81, 124, 89, 0, 11, 68, 17, 85, 133, 80, 72, 137, 84, 141,
-			0, 11, 68, 8, 145, 5, 80, 71, 132, 72, 141, 0, 12, 69, 5, 52, 197, 77, 48, 119, 89, 122, 89, 0, 0, 19, 71, 41, 83, 66,
-			4, 192, 89, 4, 75, 129, 65, 71, 13, 55, 6, 140, 13, 0, 0, 0, 10, 67, 77, 81, 84, 89, 137, 113, 47, 0, 21, 72, 4, 67,
-			79, 56, 149, 9, 60, 224, 35, 72, 65, 13, 50, 6, 124, 91, 13, 50, 0, 0, 13, 68, 88, 19, 5, 80, 84, 35, 55, 6, 141, 0,
-			103, 11, 68, 88, 19, 5, 80, 84, 35, 55, 141, 0, 14, 69, 80, 84, 212, 21, 48, 47, 122, 89, 47, 132, 88, 0, 16, 70, 72, 83,
-			1, 80, 149, 133, 34, 122, 55, 13, 47, 124, 84, 0, 19, 71, 72, 80, 207, 52, 209, 78, 16, 34, 4, 122, 49, 13, 65, 122, 50, 72,
-			0, 17, 70, 65, 83, 129, 80, 149, 133, 48, 57, 137, 50, 13, 47, 124, 84, 0, 13, 69, 64, 148, 195, 21, 48, 48, 140, 89, 132, 88,
-			0, 15, 70, 56, 244, 197, 16, 149, 133, 50, 139, 88, 72, 140, 84, 0, 18, 70, 20, 229, 5, 56, 68, 133, 126, 50, 47, 6, 126, 50,
-			72, 34, 14, 0, 15, 69, 16, 148, 195, 85, 48, 72, 124, 89, 49, 13, 89, 0, 46, 14, 69, 16, 81, 133, 57, 48, 72, 113, 83, 122,
-			50, 89, 0, 0, 20, 71, 48, 165, 66, 48, 160, 78, 4, 55, 57, 137, 71, 55, 57, 6, 121, 50, 13, 0, 17, 71, 52, 86, 154, 4,
-			226, 78, 20, 65, 122, 88, 13, 50, 132, 50, 0, 10, 199, 4, 229, 9, 12, 194, 78, 20, 65, 5, 194, 57, 144, 13, 0, 9, 67, 65,
-			81, 0, 48, 117, 72, 0, 9, 67, 28, 83, 192, 75, 132, 139, 0, 6, 195, 36, 35, 64, 13, 0, 14, 4, 95, 99, 97, 112, 49, 4,
-			35, 48, 14, 47, 118, 0, 0, 9, 198, 52, 243, 69, 57, 69, 77, 66, 0, 13, 202, 16, 83, 79, 57, 53, 18, 5, 66, 86, 20, 17,
-			15, 70, 12, 245, 207, 72, 177, 82, 49, 139, 58, 131, 49, 114, 0, 9, 198, 12, 21, 129, 48, 145, 82, 15, 0, 12, 67, 65, 85, 0,
-			4, 48, 117, 47, 0, 47, 10, 16, 70, 52, 19, 4, 37, 97, 83, 65, 133, 55, 72, 6, 132, 84, 0, 14, 69, 72, 244, 193, 73, 144,
-			34, 139, 88, 13, 34, 37, 0, 14, 69, 16, 84, 195, 73, 144, 72, 113, 89, 49, 34, 141, 0, 11, 200, 4, 229, 9, 25, 33, 69, 104,
-			80, 65, 6, 195, 57, 149, 0, 13, 6, 195, 12, 83, 192, 13, 0, 17, 70, 52, 145, 20, 21, 35, 64, 65, 6, 124, 72, 47, 4, 131,
-			65, 0, 0, 17, 70, 8, 85, 23, 20, 83, 128, 71, 124, 47, 58, 132, 50, 0, 74, 10, 16, 70, 32, 17, 18, 36, 19, 128, 107, 141,
-			72, 34, 132, 13, 50, 0, 13, 68, 56, 84, 1, 48, 50, 122, 48, 6, 133, 55, 0, 17, 70, 88, 149, 1, 52, 147, 128, 84, 140, 47,
-			13, 65, 125, 50, 0, 103, 16, 70, 88, 149, 1, 52, 147, 128, 84, 124, 47, 13, 65, 125, 50, 0, 14, 70, 80, 84, 146, 4, 147, 128,
-			47, 13, 34, 141, 50, 0, 12, 68, 72, 84, 5, 48, 34, 113, 48, 122, 55, 0, 11, 68, 64, 20, 1, 48, 48, 141, 48, 118, 0, 9,
-			198, 61, 85, 8, 61, 84, 197, 65, 15, 70, 61, 69, 15, 52, 19, 128, 126, 47, 13, 65, 13, 50, 0, 16, 70, 56, 243, 147, 20, 228,
-			197, 50, 126, 50, 89, 13, 50, 89, 0, 17, 70, 52, 242, 9, 12, 19, 128, 65, 139, 107, 6, 132, 49, 13, 50, 0, 16, 70, 48, 144,
-			73, 76, 243, 128, 55, 132, 6, 141, 88, 126, 50, 0, 7, 196, 48, 20, 5, 48, 17, 15, 70, 29, 34, 70, 24, 243, 128, 81, 34, 124,
-			83, 13, 50, 0, 9, 198, 29, 32, 70, 24, 149, 9, 17, 11, 68, 5, 4, 1, 48, 119, 48, 133, 55, 0, 0, 13, 3, 95, 194, 183,
-			65, 124, 72, 118, 72, 126, 47, 0, 0, 12, 67, 61, 84, 128, 138, 114, 0, 103, 72, 34, 46, 10, 67, 61, 84, 128, 149, 0, 72, 34,
-			46, 17, 3, 95, 194, 180, 119, 49, 57, 137, 47, 35, 49, 89, 122, 50, 47, 0, 0, 14, 69, 77, 84, 5, 72, 32, 89, 137, 48, 6,
-			131, 71, 0, 16, 70, 76, 52, 143, 81, 83, 64, 89, 49, 34, 139, 47, 13, 65, 0, 11, 67, 72, 80, 68, 34, 122, 72, 0, 38, 46,
-			9, 67, 72, 80, 68, 34, 132, 72, 0, 9, 67, 48, 80, 68, 55, 132, 72, 0, 0, 18, 70, 76, 148, 129, 13, 84, 193, 89, 145, 13,
-			49, 57, 6, 137, 89, 13, 0, 9, 198, 5, 32, 80, 4, 131, 197, 17, 0, 12, 68, 25, 33, 68, 4, 83, 34, 132, 72, 13, 0, 10,
-			68, 4, 242, 70, 20, 132, 83, 13, 0, 9, 198, 64, 16, 201, 24, 144, 192, 17, 14, 69, 52, 17, 18, 36, 64, 65, 13, 72, 34, 124,
-			72, 0, 13, 68, 88, 242, 76, 4, 84, 58, 121, 55, 6, 121, 0, 12, 68, 85, 34, 78, 20, 57, 146, 34, 124, 50, 0, 11, 68, 12,
-			17, 18, 20, 49, 121, 72, 114, 0, 12, 68, 4, 67, 194, 20, 119, 72, 139, 71, 37, 0, 0, 19, 72, 12, 19, 79, 84, 99, 1, 28,
-			80, 49, 35, 65, 13, 83, 55, 121, 90, 0, 6, 195, 36, 148, 192, 13, 0, 9, 198, 52, 21, 9, 48, 64, 64, 17, 16, 70, 80, 146,
-			149, 4, 224, 64, 47, 144, 58, 6, 121, 50, 13, 0, 17, 70, 52, 243, 148, 4, 224, 64, 65, 126, 50, 47, 6, 35, 50, 13, 0, 15,
-			70, 64, 148, 129, 56, 128, 64, 48, 13, 34, 121, 50, 13, 0, 9, 198, 52, 17, 15, 56, 224, 64, 17, 16, 70, 32, 244, 141, 60, 224,
-			76, 107, 136, 65, 6, 139, 50, 118, 0, 19, 70, 25, 32, 71, 52, 83, 148, 83, 34, 35, 81, 65, 6, 122, 50, 47, 0, 36, 15, 70,
-			12, 244, 143, 48, 192, 64, 49, 13, 34, 139, 55, 13, 0, 16, 70, 12, 130, 77, 21, 32, 64, 49, 140, 65, 6, 144, 34, 13, 0, 0,
-			10, 67, 52, 147, 73, 65, 132, 65, 37, 0, 17, 70, 64, 20, 129, 8, 243, 1, 48, 13, 34, 35, 71, 13, 55, 13, 0, 11, 68, 24,
-			147, 210, 16, 83, 132, 135, 72, 0, 0, 9, 68, 92, 131, 210, 20, 107, 136, 0, 14, 3, 33, 63, 51, 89, 36, 50, 47, 37, 36, 50,
-			47, 0, 13, 69, 76, 80, 66, 20, 64, 89, 132, 71, 122, 72, 0, 12, 68, 61, 2, 78, 20, 139, 48, 6, 140, 50, 0, 11, 68, 44,
-			244, 10, 20, 49, 126, 48, 37, 0, 13, 3, 33, 63, 51, 83, 39, 34, 47, 40, 50, 36, 0, 13, 69, 8, 19, 12, 4, 64, 71, 35,
-			55, 13, 72, 0, 0, 12, 68, 52, 81, 193, 56, 65, 122, 81, 13, 50, 0, 9, 67, 4, 37, 64, 35, 71, 137, 0, 9, 67, 72, 245,
-			192, 34, 138, 0, 37, 8, 67, 72, 245, 192, 34, 139, 0, 20, 67, 8, 245, 192, 71, 4, 138, 15, 72, 6, 138, 50, 0, 81, 100, 111,
-			119, 110, 32, 9, 67, 8, 245, 192, 71, 138, 0, 36, 8, 67, 8, 245, 192, 71, 139, 0, 11, 68, 5, 33, 207, 56, 130, 81, 126, 50,
-			0, 11, 68, 4, 65, 15, 56, 35, 72, 126, 50, 0, 4, 193, 188, 43, 0, 8, 197, 88, 84, 142, 60, 224, 16, 13, 69, 56, 117, 89,
-			20, 224, 50, 137, 57, 122, 50, 0, 16, 70, 20, 118, 80, 80, 144, 64, 124, 75, 6, 124, 48, 91, 13, 0, 12, 68, 64, 21, 9, 60,
-			48, 35, 47, 124, 139, 0, 15, 70, 52, 147, 9, 80, 144, 64, 65, 13, 55, 124, 91, 13, 0, 9, 198, 52, 83, 79, 72, 144, 76, 17,
-			17, 70, 33, 148, 15, 96, 144, 64, 107, 140, 48, 6, 126, 49, 89, 144, 0, 9, 198, 32, 16, 137, 81, 80, 76, 17, 14, 70, 25, 80,
-			200, 76, 144, 64, 83, 57, 137, 91, 13, 0, 17, 70, 9, 83, 9, 52, 144, 64, 71, 117, 55, 6, 124, 65, 144, 0, 103, 10, 67, 8,
-			193, 72, 71, 55, 122, 107, 0, 12, 3, 95, 194, 173, 65, 35, 49, 34, 126, 50, 0, 0, 16, 70, 88, 243, 1, 80, 147, 5, 84, 126,
-			55, 119, 47, 118, 0, 103, 6, 195, 60, 224, 197, 8, 10, 67, 52, 144, 193, 65, 140, 49, 13, 0, 6, 195, 16, 208, 193, 13, 0, 9,
-			198, 65, 84, 144, 61, 37, 0, 66, 13, 69, 64, 22, 80, 4, 192, 48, 141, 48, 35, 55, 0, 12, 68, 52, 19, 135, 100, 65, 141, 50,
-			75, 37, 0, 18, 3, 95, 194, 171, 55, 122, 83, 47, 6, 81, 124, 55, 13, 65, 122, 47, 0, 0, 10, 67, 56, 245, 192, 50, 138, 0,
-			32, 42, 6, 195, 56, 245, 192, 32, 8, 67, 101, 97, 83, 132, 84, 0, 10, 67, 48, 242, 83, 55, 139, 124, 89, 0, 13, 69, 5, 53,
-			12, 21, 144, 35, 89, 47, 55, 37, 0, 15, 69, 77, 80, 148, 49, 144, 89, 129, 47, 13, 55, 124, 0, 32, 14, 69, 52, 148, 197, 73,
-			144, 65, 124, 88, 13, 34, 124, 0, 9, 67, 16, 69, 64, 86, 124, 0, 46, 15, 3, 95, 194, 168, 72, 140, 119, 34, 6, 132, 89, 124,
-			89, 0, 0, 16, 70, 28, 241, 6, 72, 145, 68, 81, 126, 72, 83, 34, 132, 72, 0, 16, 69, 44, 244, 133, 4, 224, 49, 114, 34, 6,
-			132, 13, 50, 0, 103, 15, 69, 44, 244, 133, 4, 224, 49, 134, 34, 6, 132, 13, 50, 0, 16, 70, 77, 68, 137, 56, 113, 68, 89, 47,
-			34, 124, 68, 81, 72, 0, 0, 10, 67, 36, 224, 193, 124, 68, 49, 13, 0, 15, 3, 95, 194, 166, 71, 34, 139, 49, 13, 50, 71, 6,
-			130, 0, 0, 11, 68, 32, 82, 68, 36, 107, 140, 72, 37, 0, 11, 68, 88, 147, 12, 36, 84, 124, 55, 140, 0, 9, 198, 24, 244, 133,
-			92, 20, 142, 66, 0, 14, 69, 88, 17, 193, 73, 144, 84, 141, 81, 13, 34, 124, 0, 14, 69, 61, 97, 82, 49, 144, 139, 84, 114, 55,
-			124, 0, 46, 8, 197, 61, 85, 12, 5, 144, 65, 0, 14, 69, 20, 198, 83, 136, 80, 141, 55, 6, 132, 88, 141, 0, 12, 68, 73, 84,
-			197, 76, 34, 137, 88, 125, 88, 0, 12, 68, 9, 84, 197, 76, 71, 129, 89, 125, 88, 0, 10, 67, 5, 149, 80, 119, 57, 129, 48, 0,
-			0, 8, 197, 92, 147, 12, 37, 48, 15, 17, 71, 92, 21, 5, 73, 50, 5, 16, 58, 133, 47, 114, 91, 122, 72, 0, 13, 69, 52, 245,
-			137, 21, 48, 65, 137, 84, 124, 88, 0, 13, 69, 52, 245, 84, 33, 48, 65, 138, 86, 88, 0, 46, 8, 197, 29, 32, 84, 37, 48, 15,
-			0, 20, 71, 52, 83, 129, 28, 84, 137, 20, 65, 13, 50, 6, 35, 75, 57, 13, 34, 37, 0, 0, 10, 67, 48, 81, 207, 55, 122, 81,
-			139, 0, 13, 3, 95, 194, 160, 107, 130, 72, 89, 48, 141, 89, 0, 0, 27, 3, 95, 194, 161, 2, 124, 50, 84, 4, 131, 47, 113, 72,
-			122, 49, 89, 49, 55, 13, 65, 6, 141, 91, 13, 50, 0, 0, 13, 69, 56, 20, 12, 21, 48, 50, 141, 48, 118, 88, 0, 14, 69, 52,
-			17, 18, 5, 48, 65, 13, 72, 34, 120, 89, 0, 13, 69, 88, 84, 147, 85, 48, 84, 131, 89, 113, 88, 0, 15, 71, 80, 19, 201, 76,
-			80, 67, 32, 47, 132, 91, 13, 101, 0, 0, 9, 198, 17, 32, 71, 56, 85, 0, 15, 0, 12, 68, 92, 150, 133, 56, 58, 124, 88, 13,
-			50, 0, 14, 70, 92, 130, 84, 37, 50, 0, 58, 140, 47, 124, 91, 0, 0, 14, 69, 32, 84, 143, 36, 224, 107, 122, 34, 139, 124, 50,
-			0, 8, 197, 12, 20, 133, 20, 224, 17, 0, 0, 11, 68, 48, 84, 143, 100, 55, 132, 34, 142, 0, 11, 68, 16, 83, 8, 36, 72, 122,
-			55, 37, 0, 12, 69, 48, 85, 8, 4, 192, 55, 132, 87, 118, 0, 13, 69, 48, 21, 78, 12, 128, 55, 121, 50, 76, 0, 103, 0, 12,
-			68, 44, 20, 133, 56, 49, 35, 34, 13, 50, 0, 16, 70, 20, 212, 8, 5, 49, 83, 122, 65, 83, 13, 89, 132, 88, 0, 12, 68, 12,
-			18, 149, 56, 49, 141, 75, 13, 50, 0, 0, 16, 8, 116, 104, 101, 114, 101, 39, 108, 108, 86, 143, 55, 0, 72, 32, 20, 71, 65, 35,
-			199, 56, 244, 201, 76, 48, 34, 126, 81, 50, 6, 139, 89, 124, 89, 0, 16, 70, 64, 244, 148, 72, 18, 84, 48, 136, 47, 34, 141, 47,
-			0, 135, 14, 69, 8, 147, 141, 4, 224, 71, 124, 50, 65, 35, 50, 0, 11, 68, 4, 113, 210, 60, 35, 81, 34, 139, 0, 0, 9, 198,
-			12, 243, 12, 20, 83, 128, 66, 17, 70, 12, 130, 76, 20, 19, 128, 76, 124, 55, 6, 132, 13, 50, 0, 103, 9, 198, 44, 147, 12, 20,
-			83, 128, 66, 15, 70, 77, 70, 71, 36, 19, 128, 89, 47, 124, 75, 144, 50, 0, 16, 70, 32, 19, 15, 28, 83, 128, 107, 35, 55, 13,
-			75, 13, 50, 0, 15, 70, 20, 50, 5, 48, 243, 128, 122, 91, 13, 55, 126, 50, 0, 15, 70, 8, 81, 15, 84, 147, 128, 71, 122, 72,
-			137, 125, 50, 0, 0, 17, 71, 88, 83, 135, 20, 19, 131, 20, 84, 122, 50, 75, 13, 50, 89, 0, 19, 71, 80, 20, 203, 24, 244, 131,
-			20, 47, 6, 35, 89, 49, 83, 4, 136, 89, 0, 10, 199, 36, 229, 5, 72, 96, 67, 20, 65, 18, 71, 36, 225, 133, 72, 83, 131, 20,
-			124, 50, 83, 13, 34, 13, 50, 89, 0, 19, 71, 36, 212, 5, 16, 19, 131, 20, 124, 65, 48, 6, 132, 72, 13, 50, 89, 0, 18, 71,
-			20, 51, 205, 52, 84, 131, 20, 6, 132, 49, 4, 126, 65, 131, 89, 0, 11, 68, 16, 80, 207, 100, 72, 132, 49, 142, 0, 5, 194, 72,
-			64, 46, 0, 12, 69, 32, 20, 150, 21, 144, 107, 130, 84, 37, 0, 11, 200, 64, 144, 195, 4, 66, 76, 49, 144, 67, 13, 68, 52, 245,
-			9, 24, 65, 139, 47, 6, 132, 83, 0, 13, 69, 52, 243, 132, 5, 144, 65, 129, 50, 72, 141, 0, 0, 15, 70, 52, 20, 135, 5, 33,
-			84, 65, 130, 81, 34, 13, 47, 0, 15, 70, 72, 144, 207, 12, 129, 84, 34, 124, 49, 13, 91, 141, 0, 9, 198, 52, 20, 148, 36, 225,
-			84, 67, 16, 70, 36, 229, 5, 72, 225, 84, 124, 50, 47, 114, 50, 122, 47, 0, 21, 73, 16, 80, 207, 48, 193, 84, 4, 113, 64, 72,
-			141, 49, 126, 55, 47, 6, 121, 90, 0, 11, 200, 12, 240, 84, 32, 19, 135, 21, 32, 18, 16, 70, 12, 16, 133, 72, 225, 84, 49, 35,
-			71, 114, 50, 6, 141, 0, 11, 200, 4, 229, 9, 52, 21, 20, 21, 32, 65, 21, 72, 4, 225, 77, 60, 209, 84, 21, 32, 35, 50, 124,
-			65, 6, 126, 65, 113, 47, 114, 0, 20, 72, 4, 197, 15, 28, 85, 8, 21, 32, 4, 133, 55, 47, 13, 81, 122, 86, 114, 0, 0, 19,
-			70, 28, 83, 205, 21, 68, 153, 75, 37, 38, 6, 126, 65, 13, 47, 34, 37, 0, 0, 13, 68, 92, 129, 82, 20, 4, 58, 143, 0, 8,
-			10, 47, 13, 69, 5, 35, 213, 56, 64, 119, 34, 138, 50, 72, 0, 14, 69, 80, 245, 193, 72, 64, 47, 117, 58, 135, 72, 0, 66, 26,
-			68, 76, 19, 148, 4, 89, 6, 35, 50, 47, 13, 15, 49, 55, 6, 133, 88, 0, 81, 99, 108, 97, 117, 115, 32, 11, 68, 52, 148, 200,
-			4, 65, 132, 91, 13, 0, 8, 197, 36, 225, 210, 36, 64, 65, 9, 198, 20, 225, 137, 20, 193, 0, 65, 19, 71, 16, 243, 7, 20, 195,
-			1, 84, 72, 126, 55, 81, 6, 122, 99, 55, 140, 0, 12, 68, 88, 149, 146, 20, 84, 132, 84, 34, 14, 0, 11, 68, 76, 16, 146, 20,
-			89, 141, 71, 114, 0, 15, 69, 72, 81, 149, 56, 64, 34, 132, 83, 129, 50, 72, 0, 37, 8, 197, 72, 80, 207, 72, 64, 36, 15, 69,
-			72, 80, 207, 72, 64, 34, 122, 49, 114, 72, 0, 103, 47, 14, 69, 72, 80, 207, 72, 64, 34, 122, 49, 135, 72, 0, 47, 14, 69, 64,
-			20, 212, 20, 64, 48, 141, 89, 47, 125, 72, 0, 14, 69, 52, 148, 212, 20, 64, 65, 124, 89, 47, 125, 72, 0, 16, 70, 49, 83, 129,
-			80, 144, 192, 55, 137, 50, 13, 47, 124, 49, 0, 0, 16, 70, 16, 147, 65, 28, 114, 79, 72, 125, 65, 121, 90, 124, 139, 0, 0, 17,
-			70, 52, 147, 133, 60, 192, 64, 65, 124, 50, 132, 6, 139, 55, 13, 0, 15, 70, 72, 81, 133, 73, 32, 76, 34, 113, 83, 131, 34, 118,
-			0, 15, 70, 52, 246, 137, 48, 192, 64, 65, 13, 88, 124, 55, 13, 0, 17, 70, 48, 20, 193, 28, 224, 64, 55, 13, 88, 121, 50, 57,
-			13, 0, 103, 16, 70, 48, 20, 193, 28, 224, 64, 55, 13, 88, 35, 50, 57, 13, 0, 15, 70, 28, 244, 137, 48, 192, 64, 81, 114, 34,
-			124, 55, 13, 0, 6, 195, 60, 80, 196, 13, 0, 17, 70, 72, 17, 129, 20, 195, 1, 34, 121, 83, 140, 6, 122, 55, 13, 0, 9, 198,
-			84, 208, 146, 20, 195, 1, 66, 15, 70, 80, 244, 148, 36, 195, 1, 47, 135, 47, 6, 132, 119, 0, 11, 67, 76, 83, 73, 89, 122, 65,
-			140, 0, 103, 0, 11, 68, 17, 80, 78, 20, 72, 58, 141, 50, 0, 14, 69, 4, 193, 146, 20, 64, 35, 55, 83, 34, 113, 72, 0, 12,
-			68, 45, 80, 76, 4, 49, 58, 121, 55, 119, 0, 12, 69, 76, 48, 82, 20, 64, 89, 49, 143, 72, 0, 12, 69, 72, 82, 78, 20, 64,
-			34, 141, 50, 72, 0, 14, 69, 32, 21, 18, 20, 64, 107, 141, 47, 34, 125, 72, 0, 12, 68, 28, 83, 146, 20, 90, 126, 50, 34, 13,
-			0, 0, 20, 67, 80, 130, 83, 86, 6, 124, 89, 58, 4, 128, 50, 0, 33, 81, 111, 110, 101, 32, 12, 67, 80, 130, 83, 86, 124, 89,
-			0, 76, 34, 33, 10, 67, 5, 33, 64, 2, 130, 0, 35, 46, 0, 17, 70, 81, 83, 137, 76, 144, 64, 47, 137, 50, 6, 132, 90, 13,
-			0, 103, 17, 70, 48, 144, 133, 72, 144, 64, 55, 140, 71, 6, 144, 34, 132, 13, 0, 9, 198, 64, 85, 21, 56, 144, 64, 17, 16, 70,
-			29, 32, 78, 16, 208, 64, 81, 34, 35, 50, 72, 65, 121, 0, 17, 70, 16, 147, 5, 52, 208, 64, 72, 125, 55, 6, 122, 65, 13, 0,
-			103, 16, 70, 16, 147, 5, 52, 208, 64, 72, 140, 55, 6, 122, 65, 13, 0, 15, 70, 12, 240, 200, 48, 80, 64, 49, 126, 49, 55, 132,
-			13, 0, 14, 69, 12, 19, 148, 60, 224, 49, 35, 50, 47, 126, 50, 0, 15, 70, 8, 22, 143, 60, 176, 64, 71, 119, 88, 137, 49, 13,
-			0, 9, 198, 5, 32, 66, 36, 48, 64, 17, 0, 14, 70, 52, 144, 200, 20, 195, 5, 65, 113, 91, 122, 55, 0, 10, 68, 93, 34, 84,
-			32, 34, 140, 86, 0, 15, 70, 93, 34, 84, 4, 35, 5, 34, 140, 47, 13, 71, 118, 0, 19, 71, 65, 148, 129, 52, 145, 1, 48, 48,
-			113, 34, 6, 35, 65, 124, 72, 118, 0, 15, 70, 24, 19, 12, 36, 35, 5, 83, 35, 55, 13, 71, 118, 0, 0, 12, 67, 92, 129, 78,
-			4, 58, 122, 50, 0, 50, 47, 12, 67, 92, 129, 78, 58, 2, 122, 50, 0, 10, 47, 14, 6, 115, 104, 101, 39, 108, 108, 91, 132, 55,
-			0, 72, 32, 13, 69, 28, 20, 133, 80, 128, 81, 35, 34, 13, 87, 0, 10, 67, 64, 83, 206, 48, 132, 13, 50, 0, 9, 198, 12, 243,
-			131, 21, 37, 0, 36, 10, 198, 12, 243, 131, 21, 37, 0, 65, 47, 0, 8, 196, 76, 19, 15, 56, 103, 17, 10, 67, 64, 242, 83, 48,
-			58, 121, 0, 46, 8, 67, 21, 33, 64, 143, 0, 46, 0, 14, 69, 4, 198, 67, 20, 224, 35, 55, 124, 89, 13, 50, 0, 16, 70, 4,
-			48, 213, 73, 49, 68, 119, 49, 151, 89, 125, 72, 0, 105, 15, 70, 4, 48, 213, 73, 49, 68, 119, 49, 131, 89, 125, 72, 0, 0, 6,
-			195, 72, 144, 65, 13, 0, 12, 68, 20, 210, 76, 100, 122, 65, 113, 55, 37, 0, 10, 67, 4, 128, 66, 141, 107, 35, 71, 0, 9, 66,
-			72, 80, 34, 4, 132, 0, 46, 5, 194, 60, 176, 13, 0, 11, 68, 61, 48, 193, 72, 126, 89, 49, 114, 0, 11, 68, 88, 144, 193, 72,
-			84, 124, 49, 114, 0, 11, 68, 48, 20, 197, 72, 55, 141, 88, 114, 0, 0, 13, 70, 72, 16, 200, 4, 83, 0, 34, 141, 76, 118, 0,
-			12, 68, 64, 83, 137, 76, 48, 132, 50, 113, 89, 0, 11, 68, 52, 144, 79, 92, 65, 132, 6, 138, 0, 0, 8, 197, 104, 243, 20, 112,
-			224, 65, 14, 70, 48, 148, 85, 21, 84, 128, 55, 113, 49, 131, 0, 103, 14, 70, 48, 148, 85, 21, 84, 128, 55, 113, 49, 57, 146, 0,
-			0, 17, 70, 4, 225, 18, 20, 20, 192, 121, 50, 72, 34, 6, 141, 13, 89, 0, 17, 70, 4, 225, 197, 48, 84, 192, 35, 50, 75, 13,
-			55, 125, 89, 0, 103, 16, 70, 4, 225, 197, 48, 84, 192, 35, 50, 75, 13, 55, 132, 89, 0, 17, 70, 88, 149, 1, 48, 148, 192, 84,
-			140, 47, 6, 35, 55, 125, 89, 0, 14, 70, 80, 80, 82, 28, 20, 192, 47, 145, 81, 35, 89, 0, 17, 70, 65, 148, 137, 80, 84, 192,
-			48, 140, 34, 6, 140, 47, 132, 88, 0, 19, 71, 33, 145, 18, 4, 225, 197, 4, 107, 140, 72, 34, 6, 141, 50, 75, 13, 0, 10, 199,
-			29, 80, 82, 4, 229, 5, 20, 67, 16, 71, 12, 243, 77, 37, 69, 5, 20, 49, 13, 65, 124, 47, 37, 0, 16, 70, 12, 242, 143, 56,
-			84, 192, 49, 13, 107, 139, 50, 141, 89, 0, 9, 198, 12, 130, 76, 36, 84, 192, 19, 16, 70, 4, 48, 213, 76, 84, 192, 119, 49, 57,
-			137, 88, 125, 88, 0, 5, 131, 239, 187, 191, 0, 10, 68, 17, 34, 69, 72, 72, 34, 148, 0, 0, 9, 198, 76, 21, 129, 56, 224, 72,
-			17, 11, 68, 4, 65, 9, 76, 35, 72, 124, 89, 0, 12, 68, 92, 131, 201, 76, 107, 137, 6, 124, 88, 0, 17, 70, 65, 34, 77, 21,
-			96, 76, 48, 34, 140, 65, 6, 132, 84, 118, 0, 0, 11, 67, 80, 129, 77, 4, 86, 122, 65, 0, 46, 10, 67, 72, 83, 73, 34, 13,
-			65, 132, 0, 18, 70, 12, 20, 143, 48, 147, 129, 49, 35, 34, 13, 55, 6, 140, 50, 13, 0, 0, 23, 3, 95, 194, 191, 2, 124, 50,
-			84, 4, 131, 47, 113, 72, 49, 58, 6, 122, 89, 76, 13, 50, 0, 0, 12, 201, 29, 32, 77, 52, 21, 9, 12, 19, 0, 17, 0, 16,
-			70, 77, 84, 5, 72, 224, 76, 89, 137, 48, 6, 131, 50, 118, 0, 27, 75, 72, 80, 207, 52, 209, 78, 16, 21, 9, 60, 224, 34, 122,
-			49, 13, 65, 122, 50, 72, 6, 141, 91, 13, 50, 0, 0, 9, 198, 48, 244, 146, 4, 147, 133, 17, 18, 71, 64, 145, 67, 20, 209, 65,
-			48, 48, 6, 132, 89, 65, 4, 132, 55, 0, 23, 73, 20, 112, 76, 37, 64, 82, 36, 19, 128, 113, 81, 35, 55, 113, 47, 6, 143, 34,
-			144, 50, 0, 10, 199, 12, 21, 8, 20, 68, 129, 48, 17, 0, 10, 67, 80, 129, 78, 86, 122, 50, 0, 32, 15, 70, 64, 20, 129, 52,
-			245, 82, 48, 35, 34, 119, 65, 146, 0, 15, 70, 52, 243, 147, 36, 85, 82, 65, 13, 89, 57, 151, 0, 105, 14, 70, 52, 243, 147, 36,
-			85, 82, 65, 13, 89, 57, 131, 0, 13, 69, 9, 34, 68, 4, 192, 71, 34, 140, 72, 118, 0, 17, 3, 95, 194, 187, 34, 140, 47, 6,
-			81, 124, 55, 13, 65, 122, 47, 0, 0, 9, 198, 16, 19, 65, 76, 53, 83, 17, 12, 68, 40, 20, 1, 56, 75, 13, 48, 35, 50, 0,
-			15, 70, 12, 245, 83, 12, 245, 83, 49, 137, 89, 49, 137, 89, 0, 13, 3, 95, 194, 184, 89, 122, 72, 6, 124, 55, 13, 0, 0, 14,
-			69, 36, 211, 199, 20, 224, 124, 65, 13, 75, 13, 50, 0, 15, 69, 12, 19, 131, 84, 224, 49, 35, 50, 49, 6, 137, 50, 0, 8, 197,
-			4, 81, 197, 4, 224, 66, 8, 197, 32, 84, 133, 36, 224, 66, 18, 71, 13, 33, 83, 12, 83, 132, 60, 49, 34, 13, 91, 122, 50, 72,
-			139, 0, 0, 22, 72, 28, 193, 78, 72, 245, 8, 21, 48, 81, 55, 4, 122, 50, 34, 6, 126, 87, 125, 89, 0, 21, 72, 4, 229, 9,
-			80, 129, 83, 21, 48, 35, 50, 47, 6, 124, 87, 13, 89, 132, 88, 0, 0, 16, 70, 92, 149, 8, 61, 85, 0, 58, 124, 86, 138, 47,
-			0, 74, 10, 9, 198, 92, 149, 8, 61, 85, 0, 66, 19, 72, 80, 245, 82, 56, 148, 85, 21, 64, 47, 131, 50, 125, 49, 125, 47, 0,
-			103, 18, 71, 76, 16, 210, 36, 98, 67, 20, 89, 35, 49, 34, 113, 83, 140, 89, 0, 17, 71, 72, 81, 133, 72, 83, 131, 20, 34, 122,
-			83, 34, 13, 50, 89, 0, 18, 71, 65, 34, 86, 36, 193, 71, 20, 48, 34, 124, 84, 113, 55, 113, 75, 0, 17, 71, 56, 84, 195, 36,
-			83, 131, 20, 50, 122, 89, 124, 13, 50, 89, 0, 17, 71, 25, 33, 69, 48, 19, 131, 20, 83, 34, 132, 55, 120, 50, 89, 0, 18, 71,
-			21, 52, 9, 60, 224, 71, 20, 122, 89, 48, 124, 13, 50, 121, 90, 0, 18, 71, 12, 243, 131, 36, 84, 135, 20, 49, 126, 50, 89, 124,
-			6, 143, 90, 0, 0, 10, 67, 48, 147, 79, 55, 124, 65, 139, 0, 0, 21, 73, 72, 83, 129, 37, 52, 193, 56, 49, 64, 34, 122, 50,
-			13, 89, 126, 50, 89, 0, 103, 19, 72, 8, 243, 66, 5, 33, 9, 21, 32, 71, 126, 65, 71, 114, 72, 6, 145, 0, 9, 67, 4, 113,
-			68, 141, 75, 72, 0, 0, 11, 67, 76, 144, 77, 89, 140, 6, 35, 65, 0, 15, 70, 80, 129, 82, 20, 241, 128, 86, 143, 34, 6, 126,
-			84, 0, 19, 71, 12, 16, 146, 36, 243, 5, 80, 49, 35, 71, 34, 132, 13, 55, 6, 141, 0, 0, 14, 70, 65, 85, 20, 36, 225, 192,
-			48, 117, 47, 124, 68, 0, 15, 70, 24, 193, 77, 36, 225, 192, 83, 55, 122, 65, 124, 68, 0, 12, 68, 16, 243, 3, 20, 72, 126, 55,
-			76, 141, 0, 9, 198, 8, 82, 74, 36, 225, 192, 66, 14, 70, 80, 243, 137, 28, 133, 0, 47, 13, 50, 140, 47, 0, 14, 70, 21, 97,
-			78, 36, 225, 192, 132, 84, 50, 124, 68, 0, 12, 4, 95, 103, 114, 118, 81, 34, 6, 121, 84, 0, 0, 10, 67, 92, 16, 207, 58, 141,
-			49, 139, 0, 0, 14, 68, 28, 242, 78, 28, 4, 81, 139, 124, 68, 0, 10, 46, 14, 70, 24, 245, 83, 32, 81, 64, 83, 137, 91, 6,
-			141, 0, 14, 70, 92, 19, 12, 4, 49, 64, 58, 126, 55, 125, 89, 0, 15, 70, 72, 244, 193, 48, 145, 64, 34, 139, 88, 119, 55, 37,
-			0, 9, 198, 77, 84, 16, 61, 49, 64, 66, 10, 67, 60, 193, 68, 139, 55, 122, 72, 0, 14, 70, 52, 20, 145, 84, 81, 64, 65, 130,
-			49, 6, 132, 0, 9, 198, 28, 243, 196, 9, 145, 64, 66, 16, 70, 21, 2, 84, 60, 209, 64, 113, 48, 124, 47, 13, 65, 124, 0, 16,
-			70, 12, 243, 131, 37, 49, 64, 49, 127, 50, 89, 6, 140, 89, 0, 16, 70, 4, 48, 68, 20, 209, 64, 119, 49, 35, 72, 13, 65, 37,
-			0, 0, 9, 198, 44, 83, 148, 84, 50, 217, 66, 9, 198, 8, 83, 7, 72, 17, 5, 66, 9, 198, 76, 84, 133, 56, 17, 5, 67, 17,
-			70, 12, 242, 78, 12, 145, 5, 49, 139, 124, 50, 89, 6, 140, 72, 0, 16, 70, 8, 195, 195, 44, 17, 5, 71, 55, 126, 49, 6, 141,
-			72, 0, 9, 2, 195, 151, 47, 140, 65, 88, 0, 0, 13, 68, 92, 131, 211, 20, 4, 107, 137, 88, 0, 8, 46, 9, 198, 92, 20, 148,
-			32, 241, 192, 18, 10, 68, 28, 21, 71, 20, 81, 141, 75, 0, 22, 72, 4, 229, 5, 12, 81, 5, 57, 64, 35, 50, 47, 124, 89, 6,
-			132, 72, 13, 50, 47, 0, 5, 194, 77, 64, 24, 5, 194, 77, 64, 46, 9, 66, 77, 64, 89, 13, 50, 47, 0, 0, 0, 9, 198, 77,
-			65, 82, 36, 193, 64, 16, 16, 70, 56, 84, 195, 4, 97, 64, 50, 122, 89, 49, 35, 83, 141, 0, 15, 70, 36, 211, 199, 20, 225, 64,
-			124, 65, 13, 75, 13, 50, 0, 14, 69, 17, 83, 131, 4, 224, 72, 129, 50, 49, 13, 50, 0, 14, 70, 12, 244, 137, 56, 225, 64, 49,
-			13, 34, 132, 50, 0, 15, 69, 60, 130, 79, 4, 224, 139, 107, 6, 140, 139, 13, 50, 0, 13, 70, 88, 82, 9, 12, 193, 64, 84, 144,
-			49, 118, 0, 18, 70, 84, 181, 76, 20, 193, 64, 57, 137, 49, 13, 55, 6, 141, 55, 37, 0, 15, 70, 77, 65, 82, 36, 193, 64, 89,
-			47, 122, 34, 140, 55, 0, 7, 66, 78, 80, 91, 132, 0, 9, 198, 76, 20, 132, 36, 225, 64, 66, 9, 198, 72, 245, 84, 36, 225, 64,
-			66, 9, 198, 53, 83, 132, 4, 225, 64, 66, 14, 70, 52, 244, 129, 36, 225, 64, 65, 13, 34, 141, 50, 0, 9, 198, 48, 21, 18, 36,
-			225, 64, 17, 15, 70, 40, 20, 205, 36, 225, 64, 75, 35, 88, 65, 124, 50, 0, 14, 70, 28, 148, 129, 24, 97, 64, 75, 113, 34, 120,
-			83, 0, 16, 70, 24, 243, 212, 32, 243, 4, 83, 117, 47, 107, 139, 55, 72, 0, 15, 70, 12, 240, 193, 36, 225, 64, 49, 139, 49, 6,
-			141, 50, 0, 9, 198, 12, 20, 195, 4, 65, 64, 17, 0, 17, 70, 44, 21, 193, 76, 18, 201, 49, 138, 13, 89, 6, 121, 49, 37, 0,
-			9, 198, 8, 85, 8, 21, 49, 1, 17, 10, 67, 88, 81, 193, 84, 132, 81, 13, 0, 9, 198, 52, 83, 79, 72, 144, 77, 17, 0, 12,
-			68, 52, 147, 132, 100, 65, 124, 50, 72, 37, 0, 10, 67, 4, 192, 78, 35, 55, 13, 50, 0, 10, 67, 13, 37, 90, 49, 34, 137, 88,
-			0, 12, 5, 112, 105, 195, 177, 97, 48, 132, 67, 119, 0, 10, 67, 56, 83, 206, 50, 132, 126, 50, 0, 0, 16, 70, 8, 83, 133, 5,
-			66, 0, 71, 113, 50, 132, 87, 0, 74, 10, 0, 13, 69, 65, 149, 8, 60, 224, 48, 140, 87, 13, 50, 0, 14, 69, 8, 243, 130, 60,
-			224, 71, 126, 50, 71, 126, 50, 0, 0, 17, 70, 17, 83, 135, 5, 33, 69, 72, 129, 68, 81, 119, 34, 6, 132, 0, 10, 199, 12, 243,
-			147, 81, 37, 67, 80, 36, 11, 199, 12, 243, 147, 81, 37, 67, 80, 65, 47, 9, 198, 4, 36, 197, 57, 65, 69, 67, 12, 2, 195, 159,
-			91, 4, 130, 48, 6, 122, 89, 0, 11, 2, 194, 167, 89, 122, 49, 91, 13, 50, 0, 0, 17, 66, 56, 240, 50, 6, 139, 4, 65, 136,
-			0, 81, 109, 111, 114, 101, 32, 23, 66, 56, 240, 50, 4, 139, 15, 55, 6, 126, 68, 81, 114, 0, 81, 108, 111, 110, 103, 101, 114, 32,
-			17, 66, 56, 240, 6, 50, 139, 6, 58, 128, 50, 0, 81, 111, 110, 101, 32, 11, 68, 64, 131, 143, 52, 48, 50, 126, 65, 0, 8, 197,
-			9, 32, 90, 36, 192, 17, 21, 73, 80, 130, 78, 29, 83, 65, 40, 145, 192, 87, 124, 68, 13, 65, 13, 75, 124, 81, 0, 11, 68, 12,
-			243, 77, 36, 49, 126, 65, 124, 0, 9, 198, 8, 243, 66, 5, 33, 0, 66, 8, 66, 56, 240, 50, 139, 0, 42, 15, 2, 194, 164, 49,
-			129, 34, 13, 50, 89, 124, 89, 140, 50, 0, 0, 8, 67, 12, 144, 79, 76, 138, 0, 8, 2, 194, 165, 57, 122, 50, 0, 0, 12, 69,
-			76, 130, 86, 21, 32, 91, 124, 84, 114, 0, 10, 67, 76, 86, 0, 89, 122, 49, 89, 0, 13, 69, 69, 82, 86, 21, 32, 49, 58, 124,
-			84, 114, 0, 10, 2, 194, 162, 89, 122, 50, 47, 89, 0, 0, 26, 68, 24, 148, 147, 80, 83, 6, 150, 89, 47, 10, 48, 55, 4, 141,
-			89, 0, 105, 81, 112, 108, 97, 99, 101, 32, 25, 68, 24, 148, 147, 80, 83, 6, 131, 89, 47, 10, 48, 55, 4, 141, 89, 0, 81, 112,
-			108, 97, 99, 101, 32, 10, 67, 52, 17, 201, 65, 141, 75, 140, 0, 15, 70, 8, 243, 138, 61, 84, 128, 71, 133, 50, 90, 6, 146, 0,
-			8, 2, 197, 139, 122, 68, 81, 0, 9, 2, 194, 163, 48, 138, 50, 72, 0, 0, 16, 70, 5, 68, 143, 64, 244, 192, 35, 47, 34, 13,
-			48, 126, 89, 0, 15, 70, 52, 83, 80, 32, 148, 192, 65, 122, 65, 83, 113, 89, 0, 8, 197, 85, 3, 9, 25, 64, 66, 9, 198, 52,
-			18, 78, 80, 18, 78, 66, 8, 197, 36, 228, 197, 13, 64, 65, 16, 70, 36, 225, 9, 12, 84, 192, 124, 50, 72, 113, 89, 132, 88, 0,
-			13, 69, 5, 81, 213, 77, 64, 133, 81, 13, 89, 47, 0, 16, 70, 5, 4, 143, 64, 244, 192, 35, 48, 34, 13, 48, 6, 139, 0, 0,
-			11, 67, 56, 245, 0, 50, 126, 47, 0, 42, 40, 15, 67, 56, 245, 0, 4, 50, 126, 47, 13, 0, 34, 81, 97, 32, 26, 67, 56, 245,
-			0, 4, 50, 126, 47, 107, 35, 84, 47, 116, 0, 35, 9, 82, 104, 97, 118, 101, 32, 116, 111, 32, 20, 67, 56, 245, 0, 50, 126, 47,
-			107, 35, 84, 0, 35, 49, 81, 104, 97, 118, 101, 32, 19, 67, 56, 245, 0, 50, 126, 47, 119, 84, 0, 35, 73, 81, 104, 97, 118, 101,
-			32, 13, 67, 56, 245, 0, 4, 50, 126, 47, 0, 40, 46, 9, 12, 68, 81, 81, 15, 72, 47, 57, 137, 72, 114, 0, 13, 70, 64, 128,
-			82, 4, 242, 0, 83, 143, 34, 139, 0, 9, 67, 56, 245, 0, 50, 139, 47, 0, 10, 68, 24, 246, 69, 72, 83, 142, 141, 0, 10, 67,
-			16, 80, 207, 72, 122, 49, 139, 0, 0, 14, 7, 116, 104, 101, 121, 39, 114, 101, 2, 86, 141, 114, 0, 12, 68, 40, 84, 213, 76, 75,
-			132, 88, 13, 89, 0, 15, 70, 64, 244, 148, 84, 112, 76, 48, 136, 76, 13, 81, 118, 0, 12, 68, 40, 84, 213, 76, 75, 132, 88, 13,
-			89, 0, 13, 2, 194, 174, 34, 122, 75, 124, 89, 47, 114, 72, 0, 0, 15, 8, 116, 104, 101, 114, 101, 39, 118, 101, 86, 143, 84, 0,
-			72, 0, 13, 66, 77, 80, 89, 137, 89, 13, 0, 81, 115, 101, 32, 9, 198, 65, 35, 195, 20, 81, 0, 46, 9, 198, 65, 35, 195, 20,
-			81, 0, 36, 16, 70, 65, 35, 195, 20, 81, 0, 48, 34, 139, 89, 132, 72, 0, 47, 8, 197, 12, 18, 15, 61, 64, 17, 12, 2, 194,
-			172, 50, 126, 47, 23, 89, 140, 50, 0, 5, 130, 195, 164, 43, 0, 22, 73, 12, 131, 204, 21, 53, 5, 72, 243, 0, 49, 13, 55, 122,
-			89, 47, 13, 34, 126, 55, 0, 13, 68, 8, 192, 83, 136, 71, 55, 121, 88, 6, 141, 0, 0, 18, 70, 52, 243, 148, 72, 80, 76, 65,
-			126, 50, 47, 34, 124, 6, 133, 55, 0, 10, 198, 12, 243, 80, 61, 83, 132, 66, 36, 0, 11, 68, 76, 20, 129, 32, 89, 143, 34, 13,
-			0, 17, 70, 65, 35, 212, 20, 120, 128, 112, 114, 111, 116, 101, 103, 101, 0, 29, 12, 68, 60, 244, 129, 32, 6, 137, 34, 6, 121, 0,
-			16, 71, 21, 52, 197, 57, 66, 65, 48, 113, 89, 122, 50, 91, 118, 0, 0, 0, 9, 198, 76, 16, 129, 81, 69, 83, 17, 12, 2, 194,
-			169, 49, 126, 48, 124, 34, 140, 47, 0, 0, 12, 68, 44, 147, 211, 44, 49, 132, 126, 89, 49, 0, 13, 2, 194, 182, 48, 35, 34, 13,
-			81, 34, 35, 83, 0, 0, 9, 198, 21, 53, 18, 4, 225, 197, 66, 5, 130, 197, 159, 43, 5, 130, 195, 175, 43, 0, 15, 66, 60, 224,
-			2, 126, 50, 86, 115, 0, 81, 116, 104, 101, 32, 9, 66, 60, 224, 4, 126, 50, 0, 10, 22, 73, 8, 20, 148, 32, 243, 15, 52, 85,
-			192, 71, 130, 87, 6, 126, 55, 13, 65, 57, 137, 0, 22, 73, 64, 131, 212, 60, 116, 129, 64, 129, 82, 83, 13, 47, 6, 126, 81, 34,
-			13, 83, 114, 0, 0, 9, 198, 4, 229, 9, 32, 84, 143, 65, 6, 195, 4, 32, 192, 13, 10, 2, 194, 181, 65, 140, 49, 34, 139, 0,
-			0, 10, 67, 12, 241, 68, 49, 139, 122, 72, 0, 20, 72, 12, 19, 148, 36, 193, 86, 21, 32, 49, 35, 50, 47, 125, 55, 132, 84, 114,
-			0, 19, 72, 9, 81, 7, 21, 34, 71, 5, 32, 71, 129, 75, 13, 34, 124, 81, 130, 0, 8, 2, 194, 178, 47, 137, 0, 51, 0, 11,
-			67, 56, 22, 137, 50, 121, 47, 89, 124, 0, 18, 71, 12, 129, 86, 72, 243, 5, 80, 91, 122, 84, 34, 13, 55, 6, 141, 0, 9, 2,
-			194, 179, 87, 34, 132, 0, 51, 0, 18, 70, 28, 85, 20, 36, 225, 192, 4, 81, 122, 47, 124, 68, 0, 10, 35, 46, 11, 68, 40, 84,
-			211, 20, 75, 122, 89, 37, 0, 10, 68, 72, 245, 83, 20, 34, 138, 88, 0, 14, 70, 72, 80, 68, 36, 225, 192, 34, 132, 72, 124, 68,
-			0, 14, 70, 64, 19, 12, 36, 225, 192, 48, 35, 55, 124, 68, 0, 12, 2, 194, 176, 72, 124, 81, 34, 6, 132, 88, 0, 0, 9, 67,
-			4, 176, 64, 35, 49, 119, 0, 16, 2, 194, 177, 48, 55, 129, 89, 135, 65, 6, 140, 50, 13, 89, 0, 0, 14, 70, 52, 21, 82, 36,
-			49, 64, 65, 126, 34, 124, 89, 0, 14, 70, 77, 81, 134, 36, 49, 64, 89, 13, 83, 140, 89, 0, 18, 70, 65, 35, 196, 84, 49, 64,
-			48, 34, 126, 72, 57, 137, 89, 0, 37, 46, 15, 70, 65, 33, 70, 4, 49, 64, 48, 34, 122, 83, 13, 89, 0, 15, 70, 52, 21, 9,
-			56, 81, 64, 65, 35, 47, 13, 50, 141, 0, 17, 70, 44, 20, 129, 60, 177, 64, 49, 35, 34, 124, 6, 139, 49, 37, 0, 9, 198, 36,
-			65, 86, 36, 49, 64, 20, 15, 70, 32, 244, 212, 4, 113, 64, 107, 126, 89, 47, 113, 75, 0, 9, 198, 24, 147, 129, 56, 49, 64, 36,
-			16, 70, 24, 147, 129, 56, 49, 64, 83, 140, 50, 35, 50, 89, 0, 46, 15, 70, 16, 84, 129, 56, 113, 64, 72, 113, 34, 141, 50, 75,
-			0, 10, 67, 4, 33, 68, 119, 71, 122, 72, 0, 13, 2, 194, 190, 87, 34, 132, 49, 58, 135, 47, 114, 0, 0, 15, 70, 28, 149, 133,
-			5, 112, 89, 81, 124, 84, 119, 58, 141, 0, 10, 67, 4, 64, 77, 35, 72, 13, 65, 0, 6, 195, 85, 35, 0, 13, 13, 2, 195, 183,
-			72, 113, 84, 6, 140, 72, 71, 140, 0, 0, 9, 67, 76, 80, 78, 91, 133, 50, 0, 17, 70, 8, 83, 138, 4, 210, 78, 71, 122, 50,
-			75, 13, 65, 125, 50, 0, 11, 67, 60, 208, 78, 139, 65, 6, 35, 50, 0, 21, 72, 60, 211, 137, 76, 50, 69, 57, 64, 126, 65, 50,
-			6, 124, 91, 13, 50, 47, 0, 103, 16, 70, 16, 84, 195, 4, 229, 0, 72, 122, 89, 49, 35, 50, 47, 0, 9, 198, 4, 229, 9, 48,
-			241, 192, 65, 11, 2, 194, 188, 119, 49, 58, 135, 47, 114, 0, 0, 19, 4, 104, 101, 39, 115, 107, 132, 88, 107, 35, 72, 0, 78, 81,
-			104, 97, 100, 32, 12, 4, 104, 101, 39, 115, 107, 132, 88, 0, 72, 35, 8, 67, 72, 17, 64, 34, 141, 0, 8, 67, 20, 177, 64, 132,
-			49, 0, 9, 2, 194, 189, 119, 107, 121, 83, 0, 0, 9, 198, 25, 32, 71, 36, 193, 64, 16, 15, 70, 76, 243, 69, 60, 225, 64, 89,
-			129, 65, 58, 128, 50, 0, 20, 5, 115, 104, 101, 39, 115, 91, 132, 88, 107, 35, 72, 0, 78, 81, 104, 97, 100, 32, 13, 5, 115, 104,
-			101, 39, 115, 91, 132, 88, 0, 72, 35, 16, 67, 20, 16, 200, 132, 76, 15, 13, 84, 0, 8, 81, 111, 102, 32, 14, 70, 12, 19, 73,
-			48, 193, 64, 49, 119, 65, 132, 55, 0, 16, 70, 77, 3, 203, 4, 225, 64, 89, 48, 139, 49, 6, 35, 50, 0, 15, 70, 100, 245, 84,
-			84, 33, 64, 57, 137, 108, 137, 71, 0, 103, 15, 70, 92, 19, 142, 4, 33, 64, 58, 126, 50, 119, 71, 132, 0, 9, 198, 88, 16, 195,
-			36, 225, 64, 66, 9, 67, 48, 240, 200, 55, 126, 101, 0, 17, 70, 48, 20, 193, 28, 225, 64, 108, 97, 115, 97, 103, 110, 97, 0, 29,
-			20, 73, 37, 36, 133, 64, 20, 129, 8, 193, 64, 113, 34, 122, 48, 114, 13, 71, 118, 0, 15, 70, 36, 208, 71, 36, 225, 64, 113, 65,
-			35, 75, 113, 50, 0, 15, 70, 32, 84, 143, 36, 225, 64, 107, 122, 34, 139, 124, 50, 0, 15, 70, 29, 33, 78, 4, 65, 64, 81, 34,
-			13, 50, 141, 72, 0, 16, 70, 16, 80, 129, 12, 193, 64, 72, 141, 71, 6, 121, 49, 118, 0, 16, 70, 12, 243, 82, 4, 65, 64, 49,
-			126, 65, 34, 35, 72, 0, 103, 15, 70, 12, 19, 9, 12, 129, 64, 49, 119, 55, 132, 76, 37, 0, 9, 67, 12, 16, 200, 49, 35, 91,
-			0, 9, 198, 8, 148, 12, 4, 225, 64, 65, 16, 70, 5, 69, 1, 12, 129, 64, 35, 108, 35, 6, 91, 141, 0, 103, 16, 70, 5, 69,
-			1, 12, 129, 64, 35, 47, 6, 35, 91, 141, 0, 46, 14, 70, 4, 50, 9, 48, 193, 64, 119, 49, 124, 55, 132, 0, 0, 10, 67, 76,
-			81, 193, 89, 141, 81, 13, 0, 10, 67, 76, 17, 193, 89, 121, 81, 13, 0, 18, 70, 32, 16, 201, 20, 225, 1, 107, 121, 89, 124, 6,
-			122, 50, 72, 13, 0, 6, 195, 36, 81, 69, 13, 0, 16, 70, 8, 84, 142, 5, 33, 0, 71, 131, 50, 6, 130, 72, 0, 103, 14, 70,
-			8, 84, 142, 5, 33, 0, 71, 131, 50, 13, 72, 0, 15, 70, 100, 241, 200, 85, 37, 0, 57, 139, 81, 114, 47, 0, 103, 14, 70, 100,
-			241, 200, 85, 37, 0, 57, 126, 81, 114, 47, 0, 11, 68, 72, 83, 1, 100, 34, 132, 55, 141, 0, 7, 2, 195, 176, 122, 86, 0, 0,
-			5, 130, 195, 177, 43, 0, 8, 2, 195, 190, 87, 135, 50, 0, 0, 9, 67, 80, 129, 69, 4, 86, 132, 0, 6, 195, 36, 177, 65, 66,
-			22, 67, 80, 83, 0, 47, 4, 122, 55, 15, 119, 84, 6, 132, 84, 0, 81, 97, 118, 105, 118, 32, 16, 70, 36, 229, 5, 72, 225, 69,
-			124, 50, 47, 6, 131, 50, 132, 0, 6, 195, 85, 49, 1, 13, 0, 0, 14, 70, 80, 132, 143, 84, 114, 0, 87, 34, 137, 0, 72, 10,
-			15, 70, 56, 147, 133, 88, 82, 0, 50, 124, 50, 124, 84, 13, 0, 0, 0, 18, 4, 105, 39, 118, 101, 140, 84, 107, 35, 72, 0, 78,
-			81, 104, 97, 100, 32, 11, 4, 105, 39, 118, 101, 140, 84, 0, 72, 35, 10, 67, 48, 144, 77, 55, 132, 13, 65, 0, 16, 70, 64, 20,
-			211, 21, 32, 153, 48, 35, 89, 114, 71, 6, 140, 0, 12, 68, 8, 145, 207, 80, 71, 124, 81, 13, 47, 0, 7, 2, 202, 131, 122, 91,
-			0, 5, 130, 195, 187, 43, 0, 13, 69, 8, 241, 193, 73, 64, 71, 139, 81, 130, 47, 0, 14, 69, 48, 85, 129, 57, 64, 55, 13, 84,
-			35, 50, 47, 0, 9, 198, 77, 84, 208, 20, 53, 0, 36, 17, 70, 77, 84, 208, 20, 53, 0, 89, 129, 89, 48, 122, 49, 47, 0, 47,
-			8, 197, 61, 85, 6, 37, 64, 65, 13, 69, 60, 209, 76, 21, 64, 126, 65, 55, 13, 47, 0, 8, 197, 60, 34, 133, 13, 64, 36, 9,
-			197, 60, 34, 133, 13, 64, 65, 47, 11, 68, 52, 144, 79, 84, 65, 132, 6, 138, 0, 15, 70, 24, 192, 67, 12, 145, 0, 83, 55, 35,
-			89, 124, 72, 0, 14, 69, 16, 80, 197, 57, 64, 72, 132, 89, 13, 50, 47, 0, 14, 69, 8, 19, 12, 21, 64, 71, 35, 55, 6, 141,
-			0, 103, 12, 69, 8, 19, 12, 21, 64, 71, 35, 55, 141, 0, 0, 0, 22, 7, 116, 104, 101, 121, 39, 118, 101, 86, 141, 84, 107, 35,
-			72, 0, 78, 81, 104, 97, 100, 32, 15, 7, 116, 104, 101, 121, 39, 118, 101, 86, 141, 84, 0, 72, 35, 14, 70, 52, 146, 200, 4, 147,
-			0, 65, 124, 49, 140, 55, 0, 12, 69, 84, 145, 200, 85, 32, 58, 132, 81, 146, 0, 17, 70, 85, 65, 78, 76, 147, 0, 57, 137, 47,
-			6, 122, 50, 89, 118, 0, 12, 69, 44, 244, 200, 21, 32, 49, 139, 91, 114, 0, 12, 69, 12, 243, 208, 21, 32, 49, 137, 48, 114, 0,
-			15, 70, 12, 20, 9, 80, 243, 0, 49, 35, 48, 124, 47, 118, 0, 6, 195, 85, 3, 144, 13, 0, 9, 198, 52, 19, 132, 4, 192, 89,
-			67, 9, 198, 92, 148, 133, 80, 20, 0, 18, 0, 6, 194, 85, 48, 13, 42, 9, 66, 85, 48, 4, 129, 89, 0, 46, 14, 70, 52, 21,
-			20, 32, 85, 192, 65, 35, 87, 57, 137, 0, 14, 69, 8, 82, 82, 85, 64, 71, 141, 34, 6, 137, 47, 0, 15, 70, 28, 192, 83, 28,
-			245, 192, 81, 55, 120, 88, 81, 139, 0, 8, 197, 85, 4, 143, 61, 64, 66, 14, 69, 81, 37, 69, 77, 64, 47, 34, 137, 13, 89, 47,
-			0, 13, 70, 76, 128, 76, 48, 245, 192, 91, 35, 55, 139, 0, 14, 69, 76, 80, 193, 57, 64, 89, 132, 49, 13, 50, 47, 0, 15, 69,
-			76, 21, 129, 57, 64, 89, 119, 84, 121, 50, 47, 0, 103, 16, 69, 72, 84, 15, 77, 64, 34, 4, 132, 48, 6, 139, 89, 47, 0, 15,
-			70, 48, 80, 82, 56, 81, 0, 55, 131, 50, 125, 72, 0, 37, 10, 67, 44, 240, 78, 49, 139, 121, 50, 0, 9, 198, 32, 18, 82, 56,
-			85, 0, 15, 14, 69, 21, 132, 5, 73, 64, 122, 49, 89, 48, 131, 47, 0, 14, 69, 16, 84, 197, 73, 64, 72, 113, 88, 131, 47, 0,
-			36, 14, 69, 16, 84, 197, 73, 64, 72, 122, 89, 114, 47, 0, 46, 13, 69, 16, 84, 197, 73, 64, 72, 113, 88, 131, 47, 0, 14, 69,
-			12, 245, 133, 73, 64, 49, 139, 84, 6, 131, 47, 0, 9, 198, 12, 243, 132, 84, 53, 0, 36, 9, 198, 12, 243, 132, 84, 53, 0, 65,
-			14, 69, 12, 243, 80, 5, 64, 49, 13, 65, 48, 35, 47, 0, 13, 69, 4, 211, 213, 57, 64, 119, 65, 138, 50, 47, 0, 20, 71, 4,
-			35, 210, 36, 114, 78, 20, 35, 71, 13, 34, 6, 124, 75, 13, 50, 37, 0, 12, 2, 201, 148, 139, 48, 13, 50, 6, 133, 10, 0, 0,
-			10, 67, 4, 193, 67, 35, 55, 124, 49, 0, 0, 0, 8, 67, 80, 131, 213, 86, 138, 0, 0, 17, 71, 52, 17, 5, 48, 82, 78, 20,
-			65, 35, 72, 13, 55, 113, 50, 0, 19, 71, 52, 21, 83, 60, 193, 85, 52, 65, 133, 89, 13, 6, 55, 132, 13, 65, 0, 8, 2, 196,
-			184, 49, 34, 121, 0, 0, 17, 70, 16, 85, 18, 37, 69, 83, 72, 113, 47, 34, 140, 47, 13, 89, 0, 9, 67, 32, 211, 64, 107, 13,
-			65, 0, 0, 13, 69, 12, 128, 86, 21, 160, 76, 121, 84, 122, 88, 0, 9, 67, 56, 240, 72, 50, 139, 129, 0, 10, 2, 204, 134, 71,
-			34, 122, 84, 10, 0, 0, 16, 70, 76, 16, 143, 80, 17, 197, 89, 35, 71, 13, 47, 121, 90, 0, 17, 70, 65, 33, 83, 80, 145, 197,
-			48, 34, 122, 89, 47, 6, 132, 90, 0, 16, 70, 21, 21, 73, 64, 17, 197, 122, 49, 58, 124, 48, 124, 75, 0, 16, 70, 8, 85, 133,
-			72, 17, 197, 71, 122, 84, 13, 34, 113, 75, 0, 0, 12, 2, 204, 132, 65, 35, 49, 34, 126, 50, 10, 0, 20, 2, 203, 140, 89, 6,
-			122, 49, 13, 50, 72, 34, 124, 89, 47, 34, 4, 122, 89, 0, 15, 2, 202, 148, 81, 55, 6, 126, 19, 118, 89, 47, 126, 48, 0, 0,
-			13, 68, 44, 80, 129, 8, 49, 13, 71, 121, 71, 0, 103, 12, 68, 44, 80, 129, 8, 49, 13, 71, 35, 71, 0, 0, 9, 67, 72, 82,
-			68, 34, 132, 72, 0, 23, 74, 52, 148, 195, 20, 195, 1, 56, 83, 213, 76, 65, 124, 89, 13, 55, 6, 141, 50, 144, 89, 0, 16, 2,
-			204, 130, 89, 131, 49, 129, 65, 83, 55, 122, 49, 89, 10, 0, 7, 2, 202, 146, 122, 90, 0, 0, 11, 2, 204, 131, 47, 124, 55, 72,
-			13, 10, 0, 13, 2, 201, 155, 139, 48, 13, 50, 6, 122, 12, 10, 0, 0, 7, 196, 4, 114, 76, 20, 16, 11, 68, 84, 224, 204, 20,
-			129, 68, 49, 118, 0, 10, 68, 76, 145, 8, 20, 91, 132, 13, 0, 11, 68, 48, 21, 20, 20, 55, 121, 108, 141, 0, 12, 68, 37, 32,
-			84, 20, 140, 34, 6, 141, 47, 0, 10, 198, 36, 212, 12, 4, 229, 0, 66, 36, 10, 2, 204, 128, 81, 34, 121, 84, 10, 0, 10, 2,
-			203, 136, 89, 47, 34, 122, 89, 0, 0, 13, 67, 60, 229, 15, 4, 126, 50, 108, 117, 0, 103, 10, 12, 67, 60, 229, 15, 4, 126, 50,
-			47, 117, 0, 10, 13, 69, 48, 85, 137, 56, 80, 55, 13, 84, 132, 50, 0, 8, 197, 4, 208, 78, 16, 16, 17, 15, 69, 88, 144, 71,
-			72, 16, 84, 140, 6, 35, 81, 34, 13, 0, 14, 69, 64, 20, 1, 100, 16, 48, 119, 48, 140, 38, 13, 0, 12, 69, 61, 4, 15, 76,
-			80, 13, 48, 139, 88, 0, 12, 69, 49, 144, 200, 20, 80, 55, 132, 76, 132, 0, 8, 197, 33, 83, 65, 56, 80, 66, 8, 67, 21, 36,
-			128, 143, 0, 103, 7, 67, 21, 36, 128, 131, 0, 13, 69, 16, 245, 1, 28, 80, 72, 139, 47, 113, 75, 0, 13, 69, 16, 148, 15, 48,
-			80, 72, 140, 48, 139, 55, 0, 12, 68, 16, 80, 193, 24, 72, 132, 49, 35, 83, 0, 8, 197, 5, 32, 193, 56, 80, 66, 11, 2, 204,
-			129, 119, 49, 57, 137, 47, 10, 0, 8, 2, 201, 153, 91, 58, 121, 0, 0, 12, 68, 48, 147, 1, 12, 55, 140, 55, 13, 49, 0, 17,
-			70, 16, 80, 197, 16, 83, 148, 72, 125, 89, 132, 72, 13, 50, 47, 0, 0, 15, 69, 16, 144, 76, 60, 112, 72, 140, 13, 55, 133, 81,
-			0, 103, 9, 67, 5, 81, 9, 138, 72, 37, 0, 11, 67, 4, 129, 77, 13, 107, 6, 13, 65, 0, 0, 13, 68, 4, 53, 82, 4, 35,
-			49, 57, 117, 34, 13, 0, 12, 68, 81, 34, 78, 4, 47, 34, 132, 50, 13, 0, 13, 68, 17, 98, 78, 4, 72, 13, 84, 132, 50, 13,
-			0, 12, 68, 33, 86, 154, 4, 107, 13, 88, 6, 121, 0, 14, 67, 4, 209, 78, 4, 141, 65, 6, 122, 50, 0, 103, 47, 11, 67, 4,
-			209, 78, 119, 65, 122, 50, 0, 103, 13, 67, 4, 209, 78, 4, 121, 65, 6, 122, 50, 0, 47, 12, 2, 201, 164, 34, 35, 65, 89, 107,
-			135, 50, 0, 0, 8, 197, 25, 85, 9, 48, 80, 16, 15, 69, 8, 80, 193, 52, 80, 71, 124, 49, 141, 65, 0, 74, 10, 12, 69, 80,
-			129, 78, 12, 80, 86, 122, 50, 89, 0, 14, 69, 72, 19, 79, 56, 16, 34, 119, 65, 139, 50, 13, 0, 8, 197, 44, 20, 133, 56, 80,
-			17, 15, 69, 56, 85, 129, 16, 16, 50, 113, 84, 35, 72, 13, 0, 103, 14, 69, 56, 85, 129, 16, 16, 50, 113, 84, 121, 72, 13, 0,
-			14, 69, 32, 20, 129, 72, 80, 107, 119, 34, 121, 34, 37, 0, 15, 69, 28, 243, 69, 72, 16, 81, 139, 65, 6, 143, 34, 13, 0, 14,
-			69, 85, 48, 66, 48, 80, 57, 137, 88, 13, 71, 118, 0, 13, 69, 80, 147, 66, 72, 80, 47, 35, 65, 71, 114, 0, 13, 69, 76, 84,
-			133, 56, 80, 89, 13, 34, 132, 50, 0, 8, 197, 61, 35, 129, 80, 80, 66, 13, 69, 25, 84, 195, 36, 16, 83, 57, 137, 91, 13, 0,
-			14, 69, 24, 18, 137, 80, 16, 83, 119, 107, 132, 47, 13, 0, 13, 69, 12, 20, 129, 24, 80, 49, 119, 34, 35, 83, 0, 13, 69, 12,
-			19, 137, 56, 80, 49, 141, 50, 140, 50, 0, 14, 69, 8, 245, 212, 36, 80, 71, 4, 139, 47, 6, 140, 0, 13, 69, 8, 243, 199, 36,
-			80, 71, 117, 81, 37, 0, 103, 12, 69, 8, 243, 199, 36, 80, 71, 137, 81, 37, 0, 0, 8, 197, 12, 244, 148, 21, 160, 66, 9, 67,
-			76, 146, 200, 89, 132, 49, 0, 12, 201, 20, 193, 67, 81, 35, 195, 85, 65, 64, 66, 23, 73, 5, 4, 18, 61, 130, 77, 5, 65, 64,
-			119, 48, 34, 126, 49, 89, 124, 65, 141, 47, 0, 36, 23, 73, 5, 4, 18, 61, 130, 77, 5, 65, 64, 119, 48, 34, 126, 49, 89, 124,
-			65, 13, 47, 0, 46, 10, 2, 204, 138, 34, 124, 68, 81, 10, 0, 0, 23, 74, 12, 243, 135, 72, 84, 211, 36, 243, 129, 48, 49, 13,
-			50, 81, 34, 122, 91, 13, 50, 118, 0, 0, 15, 6, 97, 114, 101, 110, 39, 116, 4, 130, 50, 47, 0, 35, 10, 15, 70, 77, 65, 87,
-			5, 37, 0, 89, 47, 137, 114, 47, 0, 103, 15, 70, 77, 65, 87, 5, 37, 0, 89, 47, 57, 137, 114, 47, 0, 10, 67, 48, 83, 206,
-			55, 132, 126, 50, 0, 14, 70, 72, 20, 16, 61, 37, 0, 34, 35, 48, 6, 136, 0, 15, 70, 52, 148, 195, 32, 145, 70, 65, 124, 89,
-			76, 125, 83, 0, 10, 199, 24, 192, 71, 20, 195, 21, 52, 17, 10, 67, 20, 65, 78, 132, 72, 13, 50, 0, 10, 68, 4, 195, 1, 100,
-			119, 55, 141, 0, 12, 2, 204, 136, 72, 148, 34, 132, 89, 113, 89, 0, 13, 2, 203, 144, 55, 122, 68, 87, 13, 50, 72, 10, 0, 0,
-			9, 67, 93, 84, 211, 58, 117, 89, 0, 12, 68, 64, 80, 193, 56, 48, 125, 49, 121, 50, 0, 12, 68, 64, 80, 193, 56, 48, 132, 49,
-			13, 50, 0, 13, 69, 28, 241, 4, 4, 208, 81, 126, 72, 35, 65, 0, 0, 0, 11, 67, 52, 18, 197, 65, 4, 141, 49, 0, 10, 12,
-			67, 52, 18, 197, 65, 4, 141, 49, 0, 10, 46, 13, 69, 8, 20, 129, 12, 176, 71, 119, 34, 121, 49, 0, 18, 70, 60, 179, 1, 32,
-			243, 65, 139, 49, 55, 119, 107, 6, 139, 65, 13, 0, 21, 71, 21, 133, 18, 20, 210, 83, 80, 122, 49, 89, 47, 34, 6, 132, 65, 124,
-			89, 47, 0, 8, 2, 202, 167, 76, 122, 91, 0, 0, 22, 73, 92, 129, 69, 48, 32, 82, 72, 245, 192, 58, 6, 132, 55, 10, 71, 4,
-			35, 34, 139, 0, 7, 66, 76, 144, 89, 132, 0, 20, 71, 65, 33, 83, 20, 229, 12, 100, 48, 34, 122, 88, 13, 50, 47, 55, 124, 0,
-			32, 11, 68, 56, 245, 193, 100, 50, 139, 58, 141, 0, 11, 67, 56, 18, 70, 50, 140, 6, 132, 83, 0, 6, 195, 72, 226, 66, 13, 8,
-			2, 202, 164, 75, 122, 90, 0, 0, 17, 7, 104, 97, 118, 101, 110, 39, 116, 107, 35, 84, 14, 50, 47, 0, 35, 18, 70, 8, 20, 130,
-			4, 67, 211, 71, 130, 6, 71, 141, 72, 139, 89, 0, 103, 17, 70, 8, 20, 130, 4, 67, 211, 71, 130, 6, 71, 141, 72, 126, 89, 0,
-			10, 67, 52, 83, 79, 65, 122, 65, 139, 0, 11, 68, 20, 208, 133, 72, 122, 65, 71, 114, 0, 11, 68, 4, 35, 5, 72, 141, 71, 55,
-			114, 0, 0, 14, 69, 76, 192, 86, 21, 32, 89, 55, 35, 84, 114, 0, 36, 15, 70, 33, 149, 78, 16, 18, 64, 107, 129, 50, 72, 141,
-			0, 103, 17, 70, 21, 48, 193, 48, 195, 208, 122, 89, 49, 6, 121, 55, 13, 48, 0, 14, 69, 20, 194, 88, 37, 32, 113, 55, 124, 49,
-			89, 114, 0, 0, 9, 198, 61, 97, 82, 80, 147, 69, 65, 0, 13, 69, 24, 147, 12, 21, 64, 83, 113, 55, 141, 0, 103, 10, 198, 21,
-			133, 18, 4, 53, 0, 66, 36, 10, 198, 21, 133, 18, 4, 53, 0, 65, 46, 10, 198, 21, 133, 18, 4, 53, 0, 65, 47, 14, 69, 12,
-			243, 66, 5, 64, 49, 126, 65, 71, 35, 47, 0, 13, 69, 4, 114, 1, 77, 64, 119, 81, 120, 89, 47, 0, 0, 9, 198, 61, 85, 2,
-			72, 80, 75, 65, 21, 73, 36, 225, 143, 52, 84, 131, 36, 19, 0, 124, 50, 83, 139, 65, 6, 131, 91, 118, 0, 10, 67, 16, 81, 207,
-			72, 141, 81, 139, 0, 0, 12, 69, 72, 85, 84, 21, 32, 34, 142, 47, 114, 0, 10, 198, 64, 192, 84, 20, 21, 64, 103, 66, 9, 197,
-			36, 225, 15, 61, 32, 65, 46, 15, 70, 24, 195, 213, 72, 148, 200, 83, 55, 131, 113, 91, 0, 103, 15, 70, 24, 195, 213, 72, 148, 200,
-			83, 55, 129, 34, 113, 91, 0, 13, 70, 12, 128, 84, 20, 21, 64, 91, 35, 47, 139, 0, 18, 2, 204, 158, 119, 48, 34, 6, 126, 49,
-			89, 124, 65, 13, 50, 47, 10, 0, 0, 15, 70, 52, 16, 203, 20, 227, 129, 65, 13, 49, 122, 50, 13, 0, 11, 68, 32, 82, 83, 80,
-			107, 140, 89, 47, 0, 0, 13, 67, 8, 81, 78, 4, 71, 124, 50, 0, 103, 35, 46, 12, 67, 8, 81, 78, 4, 71, 132, 50, 0, 35,
-			46, 14, 69, 52, 246, 129, 73, 64, 65, 139, 47, 89, 130, 47, 0, 25, 73, 80, 245, 1, 48, 149, 1, 72, 144, 78, 47, 139, 47, 4,
-			35, 55, 113, 47, 6, 143, 34, 144, 50, 0, 8, 197, 80, 244, 8, 5, 64, 18, 17, 70, 36, 229, 5, 72, 210, 78, 124, 50, 47, 6,
-			131, 65, 124, 50, 0, 19, 71, 21, 84, 8, 20, 210, 83, 52, 57, 137, 83, 13, 65, 124, 88, 13, 65, 0, 14, 69, 17, 34, 69, 77,
-			64, 72, 34, 140, 13, 89, 47, 0, 8, 197, 12, 21, 143, 73, 64, 17, 14, 4, 95, 103, 117, 114, 81, 6, 146, 65, 117, 49, 37, 0,
-			0, 10, 67, 77, 147, 131, 89, 124, 68, 49, 0, 11, 4, 95, 56, 48, 111, 6, 141, 47, 144, 0, 0, 19, 70, 77, 80, 141, 20, 229,
-			64, 89, 6, 129, 71, 65, 4, 122, 50, 57, 137, 0, 12, 201, 36, 228, 212, 36, 224, 212, 37, 97, 64, 66, 14, 70, 13, 84, 2, 60,
-			20, 132, 49, 129, 71, 13, 72, 0, 22, 73, 4, 197, 5, 72, 224, 84, 37, 97, 64, 133, 55, 47, 6, 131, 50, 13, 47, 124, 84, 0,
-			7, 2, 201, 178, 67, 122, 0, 0, 15, 69, 17, 99, 210, 4, 176, 72, 14, 84, 136, 90, 35, 49, 0, 14, 70, 12, 129, 89, 20, 227,
-			133, 91, 140, 6, 35, 50, 0, 0, 17, 70, 92, 129, 78, 21, 97, 82, 58, 122, 50, 122, 84, 114, 0, 74, 8, 9, 198, 81, 32, 78,
-			76, 97, 82, 36, 10, 198, 81, 32, 78, 76, 97, 82, 65, 47, 16, 70, 60, 193, 65, 56, 65, 82, 139, 55, 124, 35, 50, 72, 114, 0,
-			16, 70, 48, 21, 133, 56, 65, 82, 55, 35, 84, 13, 50, 72, 114, 0, 9, 198, 33, 83, 135, 61, 97, 82, 66, 0, 9, 198, 12, 243,
-			21, 52, 37, 83, 17, 12, 68, 8, 83, 137, 56, 71, 122, 50, 124, 50, 0, 14, 69, 77, 66, 78, 29, 144, 89, 47, 124, 50, 75, 37,
-			0, 15, 70, 76, 192, 86, 37, 50, 0, 89, 55, 141, 84, 124, 91, 0, 8, 197, 76, 19, 1, 52, 144, 17, 7, 196, 64, 20, 133, 56,
-			17, 13, 68, 44, 244, 129, 56, 49, 135, 34, 6, 121, 50, 0, 14, 70, 44, 224, 86, 37, 50, 0, 50, 141, 84, 124, 91, 0, 12, 68,
-			12, 19, 143, 56, 49, 35, 50, 13, 50, 0, 0, 15, 70, 44, 20, 129, 12, 130, 64, 49, 119, 34, 130, 76, 37, 0, 16, 70, 12, 195,
-			211, 20, 198, 64, 49, 55, 139, 89, 55, 124, 0, 32, 16, 70, 4, 227, 205, 4, 198, 64, 119, 50, 126, 65, 13, 55, 37, 0, 0, 11,
-			200, 81, 33, 77, 20, 225, 15, 85, 48, 17, 11, 200, 72, 145, 9, 13, 83, 15, 85, 48, 66, 18, 72, 72, 83, 132, 21, 165, 143, 85,
-			48, 34, 126, 50, 72, 113, 84, 137, 0, 11, 200, 48, 20, 195, 37, 98, 79, 85, 48, 17, 20, 72, 4, 36, 212, 20, 210, 79, 85, 48,
-			119, 71, 89, 47, 6, 132, 65, 144, 89, 0, 11, 2, 201, 190, 10, 6, 130, 47, 35, 48, 0, 0, 14, 70, 56, 244, 134, 60, 194, 192,
-			50, 135, 83, 13, 49, 0, 19, 71, 36, 212, 18, 20, 50, 83, 20, 124, 65, 48, 34, 124, 89, 6, 140, 89, 0, 17, 71, 4, 69, 133,
-			73, 66, 83, 20, 35, 72, 84, 114, 47, 140, 88, 0, 10, 2, 204, 165, 34, 124, 68, 81, 10, 0, 0, 22, 72, 84, 226, 86, 21, 36,
-			201, 81, 144, 57, 137, 50, 124, 84, 6, 131, 89, 113, 47, 37, 0, 9, 67, 4, 160, 82, 119, 75, 130, 0, 5, 194, 80, 128, 46, 6,
-			66, 80, 128, 87, 0, 0, 14, 69, 69, 81, 66, 20, 48, 49, 58, 113, 71, 122, 49, 0, 8, 67, 5, 32, 192, 130, 49, 0, 6, 195,
-			37, 32, 192, 13, 0, 13, 68, 17, 80, 78, 4, 72, 58, 6, 121, 50, 13, 0, 12, 68, 4, 192, 78, 4, 119, 55, 35, 50, 13, 0,
-			16, 70, 76, 130, 73, 80, 18, 197, 91, 132, 47, 6, 121, 49, 155, 0, 11, 68, 76, 21, 84, 20, 89, 133, 47, 141, 0, 11, 68, 8,
-			20, 212, 20, 71, 141, 89, 47, 0, 12, 2, 202, 178, 65, 4, 126, 72, 75, 6, 141, 0, 0, 15, 69, 8, 80, 207, 52, 80, 71, 124,
-			49, 129, 65, 0, 74, 10, 14, 69, 8, 81, 143, 72, 80, 71, 124, 83, 136, 0, 74, 10, 13, 69, 77, 65, 86, 36, 80, 89, 47, 132,
-			84, 37, 0, 13, 69, 48, 83, 143, 72, 80, 55, 122, 50, 6, 136, 0, 13, 69, 48, 80, 78, 56, 80, 55, 132, 6, 35, 50, 0, 13,
-			69, 40, 19, 137, 56, 80, 75, 13, 50, 132, 50, 0, 13, 69, 24, 18, 78, 56, 80, 83, 35, 50, 38, 13, 0, 11, 69, 4, 242, 70,
-			24, 80, 132, 83, 13, 0, 13, 69, 4, 112, 84, 32, 16, 35, 81, 119, 87, 13, 0, 15, 69, 52, 242, 129, 88, 80, 65, 139, 107, 6,
-			121, 84, 37, 0, 13, 69, 37, 66, 1, 12, 16, 124, 87, 13, 49, 13, 0, 13, 69, 88, 19, 9, 76, 80, 84, 119, 55, 132, 89, 0,
-			13, 69, 81, 34, 65, 28, 80, 47, 34, 132, 121, 90, 0, 14, 69, 76, 145, 67, 48, 80, 89, 57, 122, 49, 55, 14, 0, 14, 69, 76,
-			85, 133, 72, 80, 89, 113, 84, 6, 145, 0, 46, 14, 69, 72, 85, 9, 56, 16, 34, 122, 47, 124, 50, 13, 0, 14, 69, 64, 21, 9,
-			56, 16, 48, 35, 47, 124, 50, 13, 0, 13, 69, 52, 19, 149, 72, 80, 65, 13, 50, 57, 146, 0, 13, 69, 8, 85, 1, 44, 80, 71,
-			113, 47, 141, 49, 0, 0, 13, 70, 73, 84, 211, 20, 195, 0, 34, 129, 89, 118, 0, 15, 70, 32, 21, 193, 36, 144, 78, 107, 13, 58,
-			6, 147, 50, 0, 18, 70, 16, 17, 197, 77, 64, 78, 72, 121, 81, 124, 89, 47, 6, 121, 50, 0, 15, 70, 76, 246, 65, 8, 80, 78,
-			89, 142, 13, 71, 132, 50, 0, 6, 195, 85, 52, 210, 13, 15, 2, 202, 176, 35, 89, 48, 113, 34, 141, 47, 113, 72, 10, 0, 0, 17,
-			70, 28, 241, 26, 36, 195, 1, 81, 126, 72, 88, 6, 124, 55, 13, 0, 13, 69, 76, 49, 78, 36, 48, 89, 132, 50, 124, 49, 0, 6,
-			195, 85, 48, 64, 13, 17, 2, 204, 175, 50, 4, 126, 50, 89, 113, 55, 6, 35, 71, 113, 49, 0, 8, 2, 209, 135, 76, 122, 12, 0,
-			0, 12, 68, 16, 19, 148, 20, 72, 121, 50, 108, 141, 0, 13, 68, 20, 194, 90, 4, 124, 55, 6, 140, 88, 13, 0, 12, 68, 52, 243,
-			148, 20, 65, 126, 50, 108, 37, 0, 11, 68, 61, 82, 74, 4, 58, 132, 75, 13, 0, 10, 67, 36, 34, 68, 124, 71, 125, 72, 0, 9,
-			2, 209, 134, 47, 89, 122, 12, 0, 0, 27, 68, 12, 245, 76, 16, 49, 117, 72, 107, 35, 84, 47, 116, 0, 74, 32, 10, 82, 104, 97,
-			118, 101, 32, 116, 111, 32, 21, 68, 12, 245, 76, 16, 49, 117, 72, 107, 35, 84, 0, 35, 49, 81, 104, 97, 118, 101, 32, 20, 68, 12,
-			245, 76, 16, 4, 49, 117, 72, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 14, 68, 12, 245, 76, 16, 2, 49, 117, 72, 0, 32, 10,
-			46, 13, 69, 81, 34, 67, 36, 16, 47, 34, 124, 91, 13, 0, 14, 69, 76, 16, 137, 56, 80, 89, 119, 71, 6, 132, 50, 0, 12, 69,
-			72, 81, 199, 36, 80, 34, 122, 75, 37, 0, 13, 69, 61, 69, 1, 92, 16, 126, 47, 119, 58, 13, 0, 8, 197, 52, 19, 137, 48, 16,
-			17, 14, 69, 12, 19, 129, 16, 16, 49, 35, 50, 13, 72, 13, 0, 8, 197, 4, 226, 193, 72, 16, 65, 8, 197, 104, 21, 129, 48, 16,
-			17, 12, 69, 88, 81, 199, 36, 80, 84, 122, 75, 124, 0, 13, 69, 84, 228, 213, 72, 80, 129, 50, 91, 6, 146, 0, 13, 69, 80, 245,
-			67, 32, 80, 47, 137, 91, 141, 0, 46, 14, 69, 76, 84, 193, 52, 80, 89, 122, 89, 119, 65, 37, 0, 12, 68, 76, 48, 76, 16, 89,
-			49, 126, 55, 72, 0, 13, 69, 72, 246, 65, 48, 80, 34, 142, 6, 35, 55, 0, 14, 69, 72, 81, 201, 52, 80, 34, 141, 90, 6, 132,
-			65, 0, 14, 69, 64, 17, 76, 48, 16, 48, 140, 6, 122, 55, 13, 0, 15, 69, 53, 85, 1, 80, 80, 65, 57, 137, 47, 6, 141, 47,
-			0, 11, 69, 28, 21, 67, 32, 80, 81, 139, 91, 0, 15, 69, 21, 84, 133, 44, 16, 57, 137, 6, 34, 132, 49, 119, 0, 11, 67, 4,
-			192, 83, 119, 55, 6, 35, 89, 0, 8, 2, 209, 133, 101, 35, 12, 0, 0, 9, 198, 77, 83, 12, 37, 96, 78, 16, 24, 75, 72, 80,
-			207, 56, 224, 73, 77, 48, 78, 12, 80, 34, 113, 49, 126, 50, 124, 89, 13, 50, 89, 0, 5, 194, 85, 96, 13, 13, 2, 202, 188, 113,
-			75, 122, 49, 47, 113, 84, 10, 0, 7, 2, 209, 132, 122, 83, 0, 0, 14, 69, 76, 195, 214, 4, 176, 89, 55, 139, 84, 35, 49, 0,
-			9, 67, 76, 130, 65, 91, 132, 13, 0, 10, 68, 72, 82, 71, 56, 34, 141, 50, 0, 9, 67, 40, 242, 69, 90, 58, 121, 0, 6, 195,
-			64, 50, 69, 13, 7, 2, 209, 131, 40, 12, 0, 0, 11, 68, 5, 97, 82, 100, 141, 84, 114, 37, 0, 12, 68, 72, 85, 18, 100, 34,
-			132, 47, 34, 140, 0, 6, 195, 96, 19, 76, 13, 11, 2, 204, 170, 72, 122, 50, 47, 118, 10, 0, 8, 2, 209, 130, 47, 122, 12, 0,
-			0, 13, 69, 29, 32, 72, 4, 208, 81, 34, 141, 13, 65, 0, 14, 69, 28, 83, 73, 56, 144, 75, 122, 65, 113, 50, 140, 0, 9, 67,
-			8, 144, 83, 71, 147, 89, 0, 7, 2, 209, 129, 122, 89, 0, 0, 6, 195, 76, 243, 206, 32, 10, 67, 96, 83, 206, 88, 132, 126, 50,
-			0, 17, 70, 65, 83, 138, 4, 34, 64, 48, 129, 50, 75, 6, 121, 71, 37, 0, 10, 67, 4, 65, 78, 141, 72, 13, 50, 0, 15, 70,
-			49, 83, 12, 4, 38, 64, 55, 129, 55, 13, 71, 140, 0, 10, 67, 36, 51, 206, 140, 49, 126, 50, 0, 7, 2, 209, 128, 122, 34, 0,
-			0, 10, 67, 48, 146, 197, 55, 140, 49, 0, 10, 17, 7, 100, 111, 101, 115, 110, 39, 116, 72, 129, 88, 13, 50, 47, 0, 32, 9, 67,
-			28, 18, 65, 81, 140, 13, 0, 10, 67, 85, 49, 64, 57, 137, 88, 0, 36, 9, 67, 85, 49, 64, 57, 137, 89, 0, 21, 72, 52, 19,
-			129, 28, 84, 133, 77, 48, 65, 35, 50, 113, 75, 13, 34, 6, 122, 89, 0, 8, 2, 209, 143, 57, 35, 12, 0, 0, 27, 74, 52, 144,
-			210, 60, 244, 135, 4, 226, 83, 52, 65, 140, 49, 34, 139, 6, 135, 81, 13, 50, 124, 88, 13, 65, 0, 12, 68, 4, 194, 66, 36, 35,
-			55, 13, 71, 140, 0, 8, 2, 209, 142, 57, 40, 12, 0, 0, 28, 5, 119, 111, 110, 39, 116, 58, 6, 139, 50, 47, 35, 84, 47, 116,
-			0, 32, 10, 82, 104, 97, 118, 101, 32, 116, 111, 32, 27, 5, 119, 111, 110, 39, 116, 58, 139, 50, 47, 107, 35, 84, 124, 47, 0, 78,
-			82, 104, 97, 118, 101, 32, 105, 116, 32, 23, 5, 119, 111, 110, 39, 116, 58, 139, 50, 47, 107, 35, 84, 0, 35, 49, 81, 104, 97, 118,
-			101, 32, 22, 5, 119, 111, 110, 39, 116, 58, 139, 50, 47, 119, 84, 0, 35, 73, 81, 104, 97, 118, 101, 32, 16, 5, 119, 111, 110, 39,
-			116, 58, 139, 50, 47, 0, 76, 32, 10, 46, 10, 199, 32, 80, 68, 24, 148, 147, 80, 66, 17, 71, 16, 20, 142, 20, 65, 83, 80, 72,
-			130, 50, 72, 13, 89, 47, 0, 18, 71, 9, 33, 65, 44, 96, 83, 80, 71, 34, 122, 49, 83, 13, 89, 47, 0, 7, 2, 209, 141, 122,
-			12, 0, 0, 22, 72, 84, 226, 78, 80, 84, 133, 77, 64, 129, 50, 6, 124, 50, 47, 13, 34, 13, 89, 47, 0, 16, 70, 76, 80, 210,
-			20, 54, 64, 89, 132, 49, 34, 13, 89, 37, 0, 22, 72, 72, 18, 78, 24, 244, 133, 77, 64, 34, 6, 141, 50, 83, 4, 126, 34, 113,
-			89, 47, 0, 9, 198, 5, 32, 200, 92, 22, 64, 65, 10, 2, 209, 140, 57, 6, 36, 34, 37, 0, 0, 12, 68, 80, 129, 73, 72, 86,
-			143, 0, 72, 34, 46, 10, 67, 32, 211, 77, 107, 6, 13, 65, 0, 11, 68, 12, 145, 193, 72, 89, 113, 81, 130, 0, 6, 195, 25, 146,
-			64, 13, 10, 2, 209, 139, 57, 6, 122, 34, 40, 0, 0, 10, 67, 88, 86, 0, 84, 122, 49, 89, 0, 8, 2, 209, 138, 57, 122, 34,
-			0, 0, 9, 2, 209, 137, 91, 76, 35, 12, 0, 0, 16, 70, 80, 240, 143, 28, 112, 78, 47, 13, 71, 126, 81, 13, 50, 0, 12, 68,
-			52, 147, 149, 76, 65, 140, 50, 13, 89, 0, 8, 2, 209, 136, 91, 35, 12, 0, 0, 14, 70, 32, 20, 151, 36, 50, 0, 107, 35, 34,
-			124, 75, 0, 10, 68, 60, 97, 133, 72, 126, 83, 114, 0, 11, 68, 56, 244, 201, 72, 50, 139, 89, 131, 0, 10, 68, 24, 194, 69, 72,
-			83, 55, 148, 0, 0, 18, 70, 52, 242, 1, 52, 81, 0, 109, 111, 104, 97, 109, 109, 97, 100, 0, 29, 10, 2, 95, 34, 49, 58, 139,
-			47, 89, 0, 0, 16, 70, 72, 21, 133, 56, 147, 135, 34, 35, 84, 13, 50, 113, 68, 0, 15, 70, 64, 192, 71, 84, 147, 135, 48, 55,
-			141, 81, 124, 68, 0, 16, 70, 25, 34, 78, 28, 147, 135, 83, 34, 124, 50, 75, 124, 68, 0, 9, 67, 12, 130, 67, 91, 132, 49, 0,
-			17, 2, 95, 33, 122, 49, 89, 49, 55, 13, 65, 6, 141, 91, 13, 50, 0, 0, 20, 73, 80, 83, 80, 21, 32, 84, 85, 33, 64, 47,
-			122, 65, 48, 34, 113, 76, 114, 0, 21, 73, 25, 84, 148, 32, 84, 141, 61, 33, 64, 83, 151, 86, 114, 65, 6, 136, 0, 105, 8, 20,
-			73, 25, 84, 148, 32, 84, 141, 61, 33, 64, 83, 131, 86, 114, 65, 6, 136, 0, 8, 10, 67, 4, 227, 206, 119, 50, 126, 50, 0, 0,
-			16, 70, 9, 34, 83, 8, 19, 133, 71, 34, 124, 89, 71, 13, 50, 0, 9, 67, 76, 243, 128, 89, 129, 50, 0, 14, 69, 64, 81, 1,
-			48, 240, 48, 122, 72, 13, 55, 139, 0, 13, 68, 48, 241, 207, 56, 55, 126, 81, 6, 126, 50, 0, 9, 67, 12, 243, 128, 49, 126, 50,
-			0, 10, 198, 12, 17, 134, 20, 147, 133, 103, 66, 9, 2, 95, 39, 49, 58, 139, 47, 0, 0, 9, 2, 209, 146, 72, 57, 122, 12, 0,
-			13, 2, 95, 38, 35, 65, 48, 13, 89, 35, 50, 72, 0, 0, 7, 2, 209, 145, 57, 152, 0, 13, 2, 95, 37, 48, 151, 89, 6, 122,
-			50, 47, 0, 105, 12, 2, 95, 37, 48, 114, 89, 6, 122, 50, 47, 0, 0, 16, 70, 92, 129, 82, 21, 97, 82, 58, 2, 143, 44, 122,
-			84, 114, 0, 15, 70, 12, 128, 82, 80, 145, 82, 91, 130, 47, 37, 6, 141, 0, 16, 70, 56, 18, 82, 60, 34, 64, 50, 140, 34, 6,
-			139, 71, 37, 0, 16, 70, 37, 52, 129, 20, 194, 64, 124, 88, 34, 6, 141, 55, 37, 0, 14, 70, 72, 82, 78, 16, 81, 82, 34, 141,
-			50, 72, 145, 0, 15, 70, 28, 244, 211, 4, 209, 82, 81, 126, 89, 13, 65, 114, 0, 17, 70, 25, 35, 206, 80, 145, 82, 83, 34, 129,
-			50, 47, 6, 145, 0, 103, 15, 70, 25, 35, 206, 80, 145, 82, 83, 34, 129, 50, 47, 145, 0, 17, 70, 13, 84, 212, 60, 209, 82, 49,
-			6, 129, 89, 47, 13, 65, 114, 0, 9, 2, 95, 36, 72, 126, 55, 114, 0, 0, 16, 67, 88, 19, 128, 84, 35, 50, 72, 131, 0, 81,
-			100, 101, 114, 32, 17, 67, 88, 19, 128, 84, 35, 50, 72, 122, 50, 0, 81, 100, 101, 110, 32, 9, 67, 80, 83, 128, 47, 122, 50, 0,
-			19, 72, 77, 83, 16, 33, 84, 143, 85, 48, 89, 129, 55, 83, 114, 34, 13, 89, 0, 12, 68, 72, 148, 197, 56, 34, 124, 88, 13, 50,
-			0, 0, 9, 198, 61, 85, 3, 5, 53, 0, 65, 13, 2, 95, 42, 35, 89, 47, 13, 34, 124, 89, 49, 0, 0, 22, 72, 52, 243, 148,
-			28, 243, 69, 73, 144, 65, 126, 50, 47, 81, 6, 126, 65, 13, 34, 37, 0, 20, 72, 69, 80, 84, 21, 35, 129, 73, 144, 49, 58, 13,
-			47, 131, 50, 13, 34, 124, 0, 13, 2, 95, 41, 34, 140, 47, 48, 119, 34, 122, 50, 0, 0, 10, 67, 44, 145, 86, 49, 132, 122, 83,
-			0, 16, 70, 36, 225, 129, 56, 54, 64, 124, 50, 83, 13, 50, 89, 37, 0, 9, 67, 4, 96, 82, 119, 83, 130, 0, 9, 2, 209, 156,
-			49, 57, 122, 12, 0, 14, 2, 95, 40, 55, 122, 83, 47, 48, 119, 34, 122, 50, 0, 0, 11, 67, 32, 84, 128, 107, 131, 0, 72, 34,
-			46, 17, 67, 64, 84, 128, 48, 4, 131, 15, 89, 6, 141, 0, 81, 115, 101, 32, 20, 67, 64, 84, 128, 48, 114, 15, 89, 6, 122, 50,
-			47, 0, 81, 99, 101, 110, 116, 32, 9, 67, 64, 84, 128, 48, 131, 0, 72, 11, 67, 84, 229, 25, 129, 50, 47, 6, 140, 0, 6, 195,
-			37, 36, 192, 13, 8, 2, 209, 155, 78, 122, 12, 0, 0, 11, 68, 4, 193, 137, 20, 35, 55, 83, 37, 0, 13, 68, 60, 209, 71, 4,
-			139, 65, 6, 141, 81, 13, 0, 15, 7, 111, 39, 99, 108, 111, 99, 107, 13, 49, 55, 126, 49, 0, 11, 68, 28, 147, 77, 20, 81, 124,
-			65, 37, 0, 8, 2, 95, 46, 72, 126, 47, 0, 0, 12, 67, 36, 229, 15, 4, 124, 50, 108, 117, 0, 103, 11, 67, 36, 229, 15, 4,
-			124, 50, 47, 117, 0, 23, 73, 52, 144, 200, 20, 192, 78, 28, 83, 15, 65, 140, 49, 118, 6, 35, 50, 75, 13, 55, 139, 0, 12, 68,
-			4, 131, 69, 16, 35, 101, 65, 122, 72, 0, 9, 2, 209, 153, 55, 57, 122, 12, 0, 9, 2, 95, 45, 72, 35, 91, 0, 103, 11, 2,
-			95, 45, 107, 4, 140, 83, 13, 50, 0, 0, 9, 67, 4, 112, 82, 141, 81, 130, 0, 9, 67, 4, 49, 82, 141, 89, 114, 0, 6, 195,
-			48, 245, 18, 13, 9, 2, 95, 44, 49, 126, 65, 13, 0, 0, 19, 67, 24, 20, 128, 83, 6, 130, 10, 65, 4, 136, 0, 81, 109, 111,
-			114, 101, 32, 10, 67, 41, 81, 25, 75, 137, 72, 37, 0, 10, 198, 80, 83, 80, 48, 21, 5, 103, 16, 9, 198, 77, 64, 71, 56, 21,
-			5, 66, 17, 70, 76, 84, 1, 72, 21, 5, 89, 122, 48, 114, 34, 141, 47, 0, 36, 16, 70, 76, 84, 1, 72, 21, 5, 89, 122, 48,
-			14, 34, 13, 47, 0, 16, 70, 60, 36, 207, 48, 85, 5, 126, 71, 89, 13, 55, 132, 47, 0, 17, 70, 21, 53, 9, 52, 21, 5, 122,
-			89, 47, 113, 65, 141, 47, 0, 36, 9, 198, 4, 48, 213, 72, 21, 5, 16, 12, 67, 53, 36, 192, 65, 124, 89, 113, 88, 0, 24, 9,
-			2, 95, 51, 87, 34, 6, 132, 0, 0, 16, 70, 81, 83, 129, 24, 148, 200, 47, 137, 50, 13, 83, 124, 91, 0, 13, 67, 9, 99, 4,
-			71, 117, 55, 13, 84, 130, 72, 0, 8, 2, 95, 50, 47, 6, 137, 0, 0, 12, 68, 40, 20, 133, 16, 75, 35, 34, 13, 72, 0, 13,
-			69, 64, 85, 9, 80, 80, 48, 13, 47, 132, 47, 0, 9, 2, 95, 49, 58, 6, 128, 50, 0, 0, 21, 72, 77, 80, 147, 21, 21, 69,
-			57, 64, 89, 129, 71, 89, 113, 49, 58, 13, 50, 47, 0, 17, 7, 112, 105, 195, 177, 97, 116, 97, 48, 132, 67, 6, 35, 47, 119, 0,
-			16, 70, 52, 240, 195, 5, 50, 78, 65, 126, 49, 13, 89, 125, 50, 0, 11, 200, 12, 243, 77, 4, 225, 1, 57, 64, 15, 12, 201, 12,
-			21, 1, 77, 68, 143, 64, 129, 64, 17, 10, 2, 95, 48, 88, 6, 144, 34, 139, 0, 0, 8, 197, 80, 21, 20, 60, 240, 66, 22, 73,
-			36, 229, 5, 72, 209, 68, 36, 21, 5, 124, 50, 47, 114, 65, 6, 132, 72, 144, 47, 0, 24, 73, 16, 148, 195, 60, 228, 207, 48, 21,
-			5, 72, 124, 89, 49, 6, 126, 50, 89, 13, 55, 13, 47, 0, 22, 73, 12, 243, 77, 20, 228, 213, 72, 21, 5, 49, 13, 65, 122, 50,
-			89, 114, 34, 13, 47, 0, 9, 67, 4, 195, 197, 35, 55, 139, 0, 12, 2, 95, 55, 89, 6, 13, 84, 13, 50, 0, 107, 11, 2, 95,
-			55, 89, 6, 122, 84, 13, 50, 0, 0, 15, 70, 76, 19, 5, 72, 227, 192, 89, 119, 55, 143, 50, 139, 0, 17, 70, 16, 144, 66, 60,
-			195, 192, 72, 140, 6, 35, 71, 13, 55, 139, 0, 10, 2, 95, 54, 89, 6, 124, 49, 89, 0, 0, 19, 67, 16, 241, 83, 72, 129, 88,
-			50, 126, 47, 0, 32, 78, 81, 110, 111, 116, 32, 10, 67, 16, 241, 83, 72, 129, 88, 0, 32, 15, 70, 4, 195, 25, 76, 243, 128, 35,
-			55, 124, 89, 13, 50, 0, 9, 2, 95, 53, 83, 6, 140, 84, 0, 14, 3, 95, 98, 110, 71, 122, 50, 81, 6, 121, 55, 37, 0, 0,
-			17, 6, 119, 97, 115, 110, 39, 116, 58, 129, 88, 50, 47, 0, 103, 35, 46, 17, 6, 119, 97, 115, 110, 39, 116, 58, 4, 126, 88, 50,
-			47, 0, 35, 46, 16, 70, 76, 132, 137, 48, 198, 64, 91, 34, 124, 55, 55, 124, 0, 32, 8, 2, 95, 52, 83, 6, 136, 0, 0, 17,
-			7, 119, 101, 114, 101, 110, 39, 116, 4, 58, 131, 50, 47, 0, 35, 10, 9, 67, 105, 83, 133, 88, 137, 50, 0, 9, 67, 37, 51, 1,
-			140, 55, 13, 0, 9, 67, 20, 211, 65, 122, 65, 13, 0, 10, 67, 48, 147, 65, 55, 132, 65, 119, 0, 8, 67, 92, 131, 193, 58, 139,
-			0, 10, 67, 33, 83, 1, 107, 137, 55, 13, 0, 18, 70, 8, 84, 137, 8, 84, 137, 71, 122, 34, 124, 71, 6, 122, 34, 37, 0, 8,
-			2, 208, 183, 88, 122, 12, 0, 15, 2, 95, 59, 89, 122, 65, 124, 49, 6, 139, 55, 13, 50, 0, 0, 15, 70, 104, 130, 86, 4, 115,
-			192, 90, 113, 84, 121, 81, 139, 0, 12, 68, 20, 211, 210, 100, 122, 65, 114, 34, 37, 0, 13, 69, 52, 20, 137, 4, 224, 65, 35, 34,
-			144, 50, 0, 8, 2, 208, 182, 90, 122, 12, 0, 10, 2, 95, 58, 49, 139, 55, 13, 50, 0, 0, 13, 68, 56, 240, 133, 48, 50, 139,
-			71, 6, 122, 55, 0, 15, 70, 5, 81, 21, 8, 243, 128, 133, 72, 13, 71, 126, 50, 0, 12, 68, 88, 147, 153, 48, 84, 140, 50, 125,
-			55, 0, 7, 196, 12, 16, 129, 48, 17, 9, 2, 95, 57, 50, 6, 140, 50, 0, 8, 2, 208, 181, 57, 122, 12, 0, 0, 19, 66, 92,
-			80, 58, 132, 91, 6, 35, 55, 0, 49, 81, 115, 104, 97, 108, 108, 32, 19, 66, 92, 80, 58, 2, 132, 91, 4, 119, 55, 0, 81, 115,
-			104, 97, 108, 108, 32, 10, 66, 92, 80, 58, 132, 0, 72, 32, 46, 12, 68, 48, 17, 207, 76, 55, 141, 81, 126, 89, 0, 8, 66, 100,
-			16, 57, 119, 0, 46, 13, 69, 76, 145, 206, 4, 192, 89, 124, 81, 50, 118, 0, 14, 70, 64, 131, 5, 28, 214, 64, 83, 55, 122, 65,
-			37, 0, 13, 68, 60, 20, 201, 76, 139, 6, 141, 89, 113, 89, 0, 13, 70, 32, 80, 82, 76, 22, 64, 107, 145, 89, 141, 0, 9, 198,
-			28, 243, 196, 16, 22, 64, 66, 16, 70, 24, 20, 129, 92, 22, 64, 83, 130, 34, 13, 58, 6, 141, 0, 15, 70, 13, 85, 1, 92, 22,
-			64, 49, 129, 47, 13, 58, 141, 0, 18, 70, 12, 240, 88, 36, 19, 0, 49, 139, 6, 35, 49, 89, 124, 13, 55, 0, 18, 70, 12, 20,
-			129, 52, 83, 0, 49, 35, 34, 13, 65, 122, 55, 0, 135, 47, 5, 194, 84, 144, 13, 8, 2, 95, 56, 6, 141, 47, 0, 8, 2, 208,
-			180, 72, 122, 12, 0, 0, 16, 70, 64, 84, 147, 64, 86, 0, 48, 131, 89, 48, 122, 49, 89, 0, 13, 69, 24, 147, 133, 77, 48, 83,
-			113, 50, 122, 89, 0, 11, 68, 12, 243, 69, 72, 49, 129, 65, 114, 0, 9, 68, 12, 241, 85, 72, 49, 131, 0, 8, 2, 208, 179, 81,
-			122, 12, 0, 12, 2, 95, 63, 49, 58, 122, 89, 76, 13, 50, 0, 0, 10, 67, 65, 52, 212, 48, 89, 89, 47, 0, 9, 67, 56, 245,
-			20, 50, 126, 47, 0, 10, 67, 24, 144, 84, 83, 132, 13, 47, 0, 8, 2, 208, 178, 84, 122, 12, 0, 13, 2, 95, 62, 81, 34, 141,
-			47, 13, 86, 35, 50, 0, 0, 12, 68, 52, 147, 149, 80, 65, 124, 50, 124, 47, 0, 23, 73, 21, 132, 15, 56, 83, 148, 36, 19, 0,
-			122, 49, 89, 48, 13, 50, 6, 122, 50, 91, 118, 0, 8, 2, 208, 177, 71, 122, 12, 0, 10, 2, 95, 61, 132, 49, 58, 118, 88, 0,
-			0, 17, 70, 16, 243, 133, 28, 19, 0, 72, 126, 50, 113, 81, 6, 133, 55, 0, 7, 2, 208, 176, 35, 12, 0, 11, 2, 95, 60, 55,
-			122, 89, 86, 35, 50, 0, 0, 13, 69, 17, 83, 12, 21, 48, 72, 129, 55, 13, 89, 0, 13, 69, 16, 83, 142, 37, 48, 72, 122, 50,
-			125, 89, 0, 14, 69, 84, 227, 5, 77, 48, 129, 50, 55, 6, 122, 89, 0, 21, 72, 81, 32, 78, 77, 3, 210, 81, 48, 47, 34, 35,
-			50, 89, 48, 136, 47, 89, 0, 34, 13, 69, 80, 83, 142, 37, 48, 47, 122, 50, 125, 89, 0, 13, 69, 72, 16, 130, 37, 48, 34, 35,
-			71, 140, 88, 0, 9, 198, 60, 211, 137, 88, 244, 133, 65, 14, 69, 32, 147, 132, 85, 48, 107, 124, 50, 72, 137, 88, 0, 8, 2, 208,
-			191, 48, 122, 12, 0, 0, 22, 73, 65, 54, 67, 32, 144, 84, 72, 148, 212, 89, 140, 49, 6, 147, 47, 34, 124, 89, 47, 0, 18, 71,
-			49, 83, 131, 33, 35, 207, 52, 55, 129, 50, 76, 15, 34, 137, 65, 0, 6, 2, 208, 190, 152, 0, 0, 11, 68, 52, 147, 133, 80, 65,
-			113, 50, 141, 0, 13, 4, 95, 57, 48, 111, 50, 6, 140, 50, 47, 144, 0, 7, 2, 208, 189, 122, 50, 0, 0, 17, 70, 20, 118, 80,
-			80, 144, 78, 124, 75, 6, 124, 48, 91, 13, 50, 0, 9, 67, 72, 82, 78, 34, 141, 50, 0, 9, 198, 52, 17, 201, 12, 144, 78, 17,
-			17, 67, 48, 80, 78, 55, 132, 50, 15, 47, 137, 0, 44, 81, 116, 111, 32, 10, 67, 4, 114, 78, 119, 81, 124, 50, 0, 7, 2, 208,
-			188, 122, 65, 0, 10, 2, 95, 64, 35, 47, 89, 140, 50, 0, 0, 14, 69, 76, 245, 197, 80, 240, 89, 13, 58, 122, 47, 139, 0, 10,
-			68, 52, 22, 65, 56, 65, 147, 50, 0, 8, 2, 208, 187, 122, 56, 17, 0, 0, 11, 4, 105, 39, 108, 108, 140, 55, 0, 72, 32, 9,
-			67, 92, 131, 204, 107, 139, 55, 0, 15, 70, 88, 19, 12, 20, 163, 192, 84, 119, 55, 141, 107, 139, 0, 9, 198, 61, 85, 2, 4, 50,
-			192, 65, 14, 70, 16, 145, 66, 4, 50, 192, 72, 140, 71, 35, 49, 0, 12, 2, 215, 130, 89, 124, 50, 72, 126, 47, 10, 0, 8, 2,
-			208, 186, 49, 35, 12, 0, 0, 17, 70, 32, 80, 146, 36, 65, 83, 107, 122, 71, 34, 13, 72, 132, 88, 0, 17, 70, 4, 229, 9, 48,
-			193, 83, 35, 50, 47, 6, 124, 55, 132, 88, 0, 15, 70, 52, 19, 22, 21, 35, 128, 65, 133, 55, 84, 114, 50, 0, 17, 70, 52, 84,
-			131, 20, 65, 83, 65, 131, 89, 6, 141, 72, 132, 88, 0, 15, 70, 5, 69, 1, 12, 129, 83, 119, 47, 35, 76, 125, 88, 0, 10, 67,
-			4, 115, 199, 119, 81, 126, 81, 0, 12, 2, 215, 129, 91, 124, 50, 72, 126, 47, 10, 0, 17, 2, 208, 185, 4, 124, 49, 14, 16, 6,
-			35, 47, 49, 134, 57, 37, 0, 0, 15, 70, 12, 132, 153, 76, 193, 82, 49, 34, 140, 89, 55, 114, 0, 15, 70, 12, 193, 65, 57, 49,
-			82, 49, 55, 122, 50, 88, 114, 0, 7, 2, 208, 184, 124, 12, 0, 0, 10, 67, 64, 84, 149, 48, 13, 34, 137, 0, 17, 70, 64, 82,
-			201, 56, 84, 197, 48, 132, 49, 125, 50, 6, 132, 88, 0, 15, 70, 32, 80, 68, 4, 50, 25, 107, 122, 72, 141, 49, 37, 0, 12, 68,
-			16, 83, 79, 56, 72, 132, 65, 13, 50, 0, 0, 12, 68, 5, 52, 193, 52, 35, 89, 6, 35, 65, 0, 0, 11, 68, 88, 148, 129, 48,
-			84, 148, 34, 118, 0, 16, 70, 72, 19, 65, 16, 19, 128, 34, 35, 65, 119, 72, 121, 50, 0, 11, 68, 69, 80, 83, 32, 49, 58, 126,
-			91, 0, 11, 68, 28, 21, 133, 48, 81, 35, 84, 118, 0, 11, 68, 12, 244, 129, 48, 49, 126, 34, 118, 0, 21, 72, 12, 243, 77, 20,
-			229, 1, 73, 144, 49, 126, 65, 13, 50, 47, 122, 34, 37, 0, 103, 19, 72, 12, 243, 77, 20, 229, 1, 73, 144, 49, 126, 65, 13, 50,
-			47, 34, 124, 0, 12, 4, 95, 226, 128, 163, 71, 117, 55, 113, 47, 0, 0, 8, 67, 12, 129, 82, 91, 143, 0, 9, 198, 4, 224, 84,
-			60, 214, 64, 17, 16, 4, 194, 182, 194, 182, 48, 35, 34, 13, 81, 34, 35, 83, 89, 0, 12, 4, 95, 226, 128, 162, 71, 117, 55, 113,
-			47, 0, 0, 10, 67, 4, 64, 64, 141, 72, 13, 0, 47, 16, 70, 65, 32, 67, 80, 148, 197, 48, 34, 35, 49, 47, 113, 89, 0, 15,
-			4, 95, 226, 128, 161, 72, 129, 71, 118, 72, 35, 81, 114, 0, 0, 18, 72, 81, 35, 213, 8, 17, 15, 85, 32, 47, 34, 137, 71, 13,
-			72, 136, 0, 11, 68, 80, 146, 203, 4, 47, 132, 49, 13, 0, 16, 70, 8, 16, 203, 20, 225, 0, 71, 35, 49, 6, 122, 50, 72, 0,
-			11, 4, 95, 226, 128, 160, 72, 35, 81, 114, 0, 0, 10, 68, 4, 50, 5, 16, 141, 49, 47, 0, 4, 193, 212, 43, 0, 12, 67, 100,
-			245, 82, 57, 146, 0, 106, 72, 34, 46, 11, 67, 100, 245, 82, 57, 135, 0, 72, 34, 46, 15, 4, 95, 226, 128, 166, 124, 55, 6, 124,
-			48, 89, 124, 89, 0, 0, 14, 70, 60, 209, 76, 21, 69, 5, 126, 65, 55, 13, 47, 0, 13, 70, 12, 82, 76, 36, 66, 0, 49, 141,
-			55, 37, 0, 6, 195, 85, 48, 128, 13, 9, 2, 215, 151, 101, 36, 47, 10, 0, 7, 2, 217, 135, 107, 35, 0, 11, 3, 95, 101, 108,
-			81, 34, 6, 132, 49, 0, 13, 4, 95, 226, 128, 165, 47, 137, 72, 126, 47, 89, 0, 0, 12, 68, 65, 84, 133, 20, 48, 57, 146, 34,
-			141, 0, 12, 2, 215, 150, 88, 6, 35, 57, 37, 50, 10, 0, 9, 2, 217, 134, 50, 40, 12, 50, 0, 10, 4, 95, 226, 128, 164, 72,
-			126, 47, 0, 0, 13, 68, 84, 229, 197, 16, 129, 50, 58, 6, 122, 72, 0, 13, 68, 84, 225, 133, 16, 129, 50, 83, 6, 122, 72, 0,
-			9, 2, 215, 149, 84, 35, 84, 10, 0, 8, 2, 217, 133, 65, 132, 65, 0, 15, 4, 95, 226, 128, 155, 55, 122, 83, 47, 49, 58, 139,
-			47, 0, 0, 20, 73, 72, 21, 1, 80, 245, 73, 48, 193, 64, 34, 35, 47, 13, 47, 6, 137, 124, 0, 21, 72, 12, 148, 131, 84, 213,
-			133, 57, 64, 89, 150, 49, 13, 65, 84, 122, 50, 47, 0, 105, 20, 72, 12, 148, 131, 84, 213, 133, 57, 64, 89, 131, 49, 13, 65, 84,
-			122, 50, 47, 0, 8, 2, 215, 148, 107, 36, 10, 0, 8, 2, 217, 132, 55, 35, 65, 0, 13, 4, 95, 226, 128, 154, 55, 139, 49, 58,
-			139, 47, 0, 0, 17, 67, 76, 243, 69, 89, 129, 65, 58, 128, 50, 0, 81, 111, 110, 101, 32, 13, 67, 76, 243, 69, 4, 89, 129, 65,
-			0, 34, 11, 46, 10, 67, 12, 195, 197, 49, 55, 139, 37, 0, 9, 198, 12, 19, 3, 85, 69, 1, 66, 11, 67, 81, 83, 129, 47, 137,
-			50, 13, 0, 103, 11, 67, 81, 83, 129, 47, 57, 137, 50, 13, 0, 15, 70, 76, 21, 67, 21, 0, 78, 89, 133, 89, 48, 13, 50, 0,
-			12, 2, 215, 147, 6, 72, 35, 55, 36, 47, 10, 0, 8, 2, 217, 131, 49, 35, 83, 0, 14, 4, 95, 226, 128, 153, 34, 140, 47, 49,
-			58, 139, 47, 0, 0, 16, 70, 80, 19, 12, 100, 131, 192, 47, 35, 55, 124, 6, 107, 139, 0, 9, 67, 52, 16, 200, 65, 121, 49, 0,
-			14, 70, 48, 83, 208, 5, 33, 0, 55, 122, 48, 114, 72, 0, 13, 202, 32, 84, 141, 5, 2, 18, 60, 66, 84, 20, 66, 12, 2, 215,
-			146, 6, 81, 37, 65, 36, 55, 10, 0, 9, 2, 217, 130, 104, 35, 12, 83, 0, 15, 4, 95, 226, 128, 152, 55, 122, 83, 47, 49, 58,
-			139, 47, 0, 0, 12, 67, 28, 241, 83, 2, 81, 139, 88, 0, 10, 46, 13, 69, 16, 147, 135, 33, 144, 72, 124, 68, 81, 37, 0, 9,
-			2, 215, 145, 71, 36, 47, 10, 0, 7, 2, 217, 129, 83, 35, 0, 16, 4, 95, 226, 128, 159, 55, 122, 83, 47, 49, 58, 139, 47, 89,
-			0, 0, 15, 70, 40, 240, 67, 32, 147, 64, 75, 139, 13, 49, 124, 65, 0, 6, 195, 37, 48, 142, 13, 11, 2, 215, 144, 6, 35, 55,
-			36, 83, 10, 0, 15, 3, 95, 103, 117, 81, 137, 75, 114, 34, 6, 121, 47, 37, 0, 14, 4, 95, 226, 128, 158, 55, 139, 49, 58, 139,
-			47, 89, 0, 0, 11, 200, 72, 81, 193, 72, 67, 5, 77, 48, 8, 11, 67, 76, 129, 64, 91, 132, 0, 72, 46, 33, 10, 67, 52, 19,
-			65, 65, 121, 65, 119, 0, 9, 2, 215, 159, 50, 40, 50, 10, 0, 6, 2, 217, 143, 40, 0, 15, 4, 95, 226, 128, 157, 34, 140, 47,
-			49, 58, 139, 47, 89, 0, 15, 2, 95, 91, 55, 122, 83, 47, 71, 34, 35, 49, 113, 47, 0, 0, 12, 68, 32, 19, 143, 36, 107, 35,
-			50, 6, 142, 0, 16, 70, 65, 33, 67, 21, 5, 0, 48, 34, 132, 89, 122, 48, 47, 0, 10, 198, 12, 243, 150, 21, 37, 0, 65, 37,
-			9, 198, 12, 243, 147, 61, 37, 0, 36, 9, 198, 12, 243, 147, 61, 37, 0, 65, 9, 67, 4, 224, 76, 141, 50, 118, 0, 9, 2, 215,
-			158, 65, 36, 65, 10, 0, 6, 2, 217, 142, 35, 0, 7, 2, 218, 134, 76, 35, 0, 16, 4, 95, 226, 128, 156, 55, 122, 83, 47, 49,
-			58, 139, 47, 89, 0, 0, 16, 70, 52, 20, 137, 49, 147, 128, 65, 35, 34, 13, 55, 113, 50, 0, 15, 70, 65, 35, 206, 61, 83, 128,
-			48, 34, 139, 50, 138, 50, 0, 13, 69, 32, 245, 11, 21, 144, 107, 126, 47, 49, 132, 0, 12, 200, 4, 36, 207, 49, 85, 5, 49, 144,
-			67, 32, 9, 2, 215, 157, 65, 36, 65, 10, 0, 10, 4, 95, 226, 128, 147, 72, 35, 91, 0, 0, 19, 66, 76, 240, 89, 6, 139, 15,
-			65, 4, 129, 76, 0, 81, 109, 117, 99, 104, 32, 20, 66, 76, 240, 89, 4, 139, 15, 65, 6, 122, 50, 37, 0, 81, 109, 97, 110, 121,
-			32, 18, 66, 76, 240, 89, 6, 139, 15, 83, 4, 130, 0, 10, 81, 102, 97, 114, 32, 9, 66, 76, 240, 4, 89, 139, 0, 10, 15, 70,
-			52, 19, 3, 60, 195, 64, 65, 35, 55, 49, 13, 65, 0, 15, 70, 65, 33, 84, 104, 83, 0, 48, 34, 122, 47, 89, 118, 0, 20, 73,
-			8, 245, 82, 28, 83, 201, 76, 145, 64, 71, 146, 90, 58, 121, 88, 6, 132, 0, 6, 194, 88, 144, 13, 42, 5, 194, 84, 176, 13, 12,
-			2, 215, 156, 55, 6, 35, 65, 36, 72, 10, 0, 10, 4, 95, 226, 128, 146, 72, 35, 91, 0, 0, 15, 69, 12, 144, 76, 37, 48, 89,
-			132, 6, 35, 55, 125, 89, 0, 13, 70, 4, 19, 9, 100, 18, 0, 13, 55, 132, 13, 0, 17, 70, 77, 84, 137, 56, 19, 69, 89, 146,
-			34, 124, 50, 6, 35, 65, 0, 14, 69, 52, 244, 129, 77, 48, 65, 126, 34, 6, 35, 89, 0, 12, 69, 52, 80, 68, 61, 112, 65, 122,
-			72, 139, 0, 12, 69, 4, 148, 130, 85, 48, 143, 71, 129, 89, 0, 9, 2, 215, 155, 49, 35, 83, 10, 0, 12, 4, 95, 226, 128, 145,
-			107, 140, 83, 13, 50, 0, 14, 2, 95, 95, 6, 129, 50, 72, 114, 89, 49, 4, 136, 0, 0, 19, 71, 4, 227, 129, 52, 20, 137, 4,
-			35, 50, 13, 65, 119, 34, 6, 132, 13, 0, 9, 2, 215, 154, 49, 35, 83, 10, 0, 8, 2, 217, 138, 57, 122, 19, 0, 11, 4, 95,
-			226, 130, 160, 57, 146, 34, 139, 0, 12, 4, 95, 226, 128, 144, 107, 140, 83, 13, 50, 0, 17, 2, 95, 94, 89, 150, 49, 129, 65, 83,
-			55, 4, 122, 49, 89, 0, 105, 16, 2, 95, 94, 89, 131, 49, 129, 65, 83, 55, 4, 122, 49, 89, 0, 0, 11, 67, 60, 130, 79, 139,
-			107, 6, 140, 139, 0, 17, 70, 52, 147, 132, 4, 224, 79, 65, 124, 50, 72, 13, 50, 6, 138, 0, 7, 196, 12, 17, 5, 80, 17, 9,
-			2, 215, 153, 57, 39, 72, 10, 0, 19, 2, 217, 137, 35, 55, 6, 37, 83, 10, 65, 35, 49, 89, 6, 40, 34, 35, 0, 14, 2, 95,
-			93, 34, 140, 47, 71, 34, 35, 49, 113, 47, 0, 0, 15, 70, 77, 83, 132, 36, 19, 0, 89, 129, 50, 72, 147, 55, 0, 13, 70, 40,
-			245, 82, 56, 19, 0, 75, 131, 50, 118, 0, 15, 70, 12, 130, 70, 25, 35, 206, 91, 124, 83, 34, 126, 50, 0, 9, 2, 215, 152, 47,
-			36, 47, 10, 0, 8, 2, 217, 136, 58, 35, 58, 0, 15, 4, 95, 226, 128, 150, 72, 4, 129, 71, 118, 71, 6, 130, 0, 0, 11, 69,
-			80, 129, 73, 73, 48, 86, 143, 88, 0, 15, 69, 4, 52, 143, 77, 48, 13, 49, 34, 126, 89, 0, 74, 10, 8, 197, 32, 20, 146, 37,
-			48, 15, 16, 70, 26, 84, 137, 56, 225, 64, 83, 132, 34, 124, 50, 38, 13, 0, 13, 69, 32, 84, 144, 21, 48, 107, 131, 48, 132, 88,
-			0, 15, 69, 21, 131, 196, 85, 48, 122, 49, 89, 13, 72, 13, 89, 0, 13, 69, 12, 20, 133, 77, 48, 49, 13, 34, 122, 89, 0, 14,
-			69, 12, 19, 150, 5, 48, 49, 35, 50, 84, 13, 89, 0, 14, 69, 12, 19, 80, 85, 48, 49, 35, 65, 48, 13, 89, 0, 12, 69, 5,
-			32, 200, 21, 48, 130, 76, 125, 88, 0, 9, 2, 215, 167, 49, 40, 83, 10, 0, 20, 4, 95, 226, 128, 149, 107, 126, 34, 113, 88, 4,
-			126, 50, 47, 118, 71, 6, 130, 0, 0, 12, 2, 215, 166, 47, 89, 6, 35, 72, 37, 10, 0, 12, 4, 95, 226, 128, 148, 122, 65, 72,
-			35, 91, 0, 0, 12, 68, 24, 147, 5, 80, 83, 113, 55, 141, 0, 103, 12, 2, 215, 165, 47, 89, 6, 35, 72, 37, 10, 0, 13, 3,
-			95, 97, 114, 6, 35, 34, 13, 71, 124, 49, 0, 6, 2, 95, 97, 141, 0, 0, 19, 71, 36, 212, 9, 56, 114, 78, 28, 124, 65, 48,
-			6, 124, 50, 75, 124, 68, 0, 8, 2, 215, 164, 48, 36, 10, 0, 12, 2, 95, 96, 71, 35, 49, 48, 34, 140, 65, 0, 0, 10, 67,
-			16, 145, 85, 21, 102, 114, 0, 47, 8, 2, 215, 163, 48, 36, 10, 0, 0, 12, 68, 8, 85, 19, 100, 71, 122, 47, 89, 37, 0, 9,
-			198, 61, 85, 13, 61, 53, 0, 65, 28, 74, 36, 229, 133, 77, 66, 71, 5, 66, 86, 20, 124, 50, 84, 4, 122, 89, 47, 113, 81, 6,
-			141, 47, 124, 84, 0, 103, 12, 2, 215, 162, 19, 6, 35, 57, 37, 50, 10, 0, 11, 2, 217, 146, 89, 40, 49, 6, 40, 50, 0, 0,
-			12, 68, 4, 69, 137, 48, 35, 72, 84, 124, 55, 0, 17, 70, 65, 148, 133, 56, 81, 83, 48, 124, 34, 13, 50, 6, 132, 88, 0, 17,
-			70, 17, 83, 70, 72, 145, 83, 72, 129, 65, 83, 34, 6, 132, 89, 0, 16, 70, 88, 84, 148, 36, 49, 83, 84, 131, 47, 124, 89, 132,
-			88, 0, 15, 69, 84, 229, 9, 17, 144, 129, 50, 47, 6, 140, 72, 37, 0, 13, 69, 72, 80, 76, 49, 144, 34, 144, 55, 124, 0, 32,
-			13, 69, 65, 33, 84, 81, 144, 48, 34, 124, 47, 37, 0, 12, 2, 215, 161, 89, 6, 35, 65, 36, 101, 10, 0, 10, 2, 217, 145, 91,
-			6, 35, 72, 119, 0, 0, 16, 70, 4, 36, 129, 32, 19, 64, 141, 71, 34, 13, 107, 35, 65, 0, 11, 68, 12, 18, 82, 60, 49, 140,
-			34, 139, 0, 9, 2, 215, 160, 50, 40, 50, 10, 0, 6, 2, 217, 144, 37, 0, 7, 2, 218, 136, 72, 36, 0, 0, 9, 67, 72, 147,
-			192, 34, 132, 139, 0, 16, 70, 76, 21, 129, 28, 84, 153, 89, 35, 84, 124, 75, 34, 37, 0, 21, 72, 64, 131, 212, 60, 198, 83, 37,
-			48, 83, 139, 47, 6, 126, 55, 13, 89, 124, 89, 0, 21, 72, 52, 85, 18, 61, 3, 204, 37, 48, 65, 13, 47, 34, 126, 48, 13, 55,
-			124, 89, 0, 9, 198, 16, 83, 9, 88, 84, 153, 16, 12, 201, 12, 131, 15, 72, 244, 12, 5, 53, 0, 65, 9, 67, 8, 147, 192, 71,
-			140, 139, 0, 8, 67, 4, 195, 64, 121, 65, 0, 6, 2, 214, 183, 35, 0, 10, 2, 216, 167, 35, 55, 6, 37, 83, 0, 0, 12, 68,
-			32, 148, 129, 52, 107, 140, 34, 13, 65, 0, 9, 198, 80, 16, 129, 76, 51, 192, 17, 13, 68, 32, 20, 133, 52, 107, 121, 34, 6, 132,
-			65, 0, 6, 2, 214, 182, 122, 0, 19, 2, 216, 166, 107, 6, 35, 65, 88, 35, 10, 19, 55, 35, 10, 57, 122, 19, 0, 0, 14, 70,
-			32, 84, 141, 4, 227, 128, 107, 131, 65, 13, 50, 0, 12, 69, 12, 129, 78, 21, 144, 76, 141, 50, 37, 0, 10, 67, 100, 246, 79, 57,
-			139, 57, 139, 0, 15, 69, 56, 240, 143, 17, 144, 6, 50, 139, 71, 126, 72, 37, 0, 10, 67, 16, 83, 79, 72, 122, 65, 139, 0, 11,
-			68, 8, 20, 193, 48, 71, 141, 89, 118, 0, 6, 2, 214, 181, 122, 0, 22, 2, 216, 165, 35, 55, 6, 37, 83, 10, 47, 35, 107, 47,
-			10, 107, 6, 35, 65, 88, 35, 0, 0, 19, 72, 24, 18, 18, 20, 226, 5, 37, 64, 83, 35, 34, 13, 50, 107, 140, 47, 0, 18, 67,
-			18, 34, 155, 72, 141, 90, 121, 15, 84, 6, 137, 0, 81, 118, 117, 32, 5, 194, 100, 64, 13, 6, 2, 214, 180, 132, 0, 14, 2, 219,
-			140, 83, 6, 130, 89, 37, 15, 57, 6, 36, 0, 19, 2, 216, 164, 107, 6, 35, 65, 88, 35, 10, 19, 55, 35, 10, 58, 35, 58, 0,
-			0, 20, 67, 88, 148, 192, 84, 132, 88, 119, 84, 6, 132, 0, 82, 97, 32, 118, 105, 115, 32, 21, 67, 88, 148, 192, 84, 132, 88, 119,
-			84, 6, 132, 0, 82, 195, 160, 32, 118, 105, 115, 32, 6, 195, 20, 32, 89, 20, 6, 2, 214, 179, 39, 0, 22, 2, 216, 163, 107, 6,
-			35, 65, 88, 35, 10, 47, 35, 107, 47, 10, 35, 55, 6, 37, 83, 0, 0, 10, 68, 52, 17, 86, 20, 65, 141, 84, 0, 16, 70, 16,
-			243, 73, 56, 144, 192, 72, 126, 65, 113, 50, 124, 49, 0, 12, 68, 60, 208, 72, 4, 139, 65, 119, 107, 121, 0, 13, 69, 80, 20, 137,
-			24, 96, 47, 35, 34, 124, 83, 0, 9, 198, 76, 21, 1, 56, 144, 192, 17, 11, 68, 68, 17, 68, 4, 49, 140, 72, 13, 0, 12, 68,
-			64, 17, 18, 20, 48, 121, 72, 34, 141, 0, 11, 68, 52, 149, 18, 20, 65, 140, 47, 114, 0, 13, 68, 44, 240, 76, 4, 49, 139, 6,
-			121, 55, 13, 0, 16, 70, 44, 147, 133, 80, 144, 192, 49, 125, 50, 122, 47, 124, 49, 0, 14, 70, 5, 36, 197, 56, 144, 192, 130, 89,
-			50, 124, 49, 0, 6, 2, 214, 178, 35, 0, 9, 2, 215, 170, 47, 35, 84, 10, 0, 19, 2, 216, 162, 35, 55, 6, 37, 83, 10, 65,
-			35, 65, 72, 6, 40, 72, 119, 0, 0, 15, 70, 72, 241, 5, 72, 144, 203, 34, 126, 72, 34, 124, 49, 0, 14, 70, 12, 130, 83, 92,
-			144, 203, 76, 124, 88, 124, 49, 0, 17, 71, 81, 33, 66, 84, 50, 5, 80, 47, 34, 122, 71, 117, 91, 141, 0, 6, 2, 214, 177, 122,
-			0, 9, 2, 215, 169, 91, 37, 50, 10, 0, 7, 2, 218, 145, 92, 36, 0, 11, 2, 216, 161, 107, 6, 35, 65, 88, 35, 0, 0, 18,
-			70, 80, 21, 9, 4, 224, 64, 47, 121, 47, 57, 6, 121, 50, 13, 0, 103, 17, 70, 80, 21, 9, 4, 224, 64, 47, 35, 47, 124, 6,
-			121, 50, 13, 0, 9, 198, 56, 21, 1, 76, 128, 64, 17, 8, 197, 12, 243, 146, 4, 64, 65, 16, 70, 5, 34, 65, 56, 224, 64, 35,
-			34, 124, 6, 121, 50, 13, 0, 15, 70, 80, 84, 85, 36, 192, 64, 47, 13, 49, 132, 55, 13, 0, 15, 69, 72, 245, 21, 56, 64, 34,
-			139, 47, 6, 129, 50, 72, 0, 16, 70, 64, 84, 147, 60, 224, 64, 48, 131, 89, 6, 139, 50, 13, 0, 12, 69, 36, 227, 129, 72, 64,
-			124, 50, 114, 72, 0, 13, 70, 8, 149, 5, 12, 128, 64, 71, 140, 76, 13, 0, 16, 70, 8, 83, 9, 76, 128, 64, 71, 13, 55, 6,
-			132, 91, 13, 0, 17, 70, 4, 193, 129, 48, 96, 64, 35, 55, 83, 6, 35, 55, 83, 13, 0, 17, 70, 4, 48, 80, 20, 192, 64, 35,
-			49, 119, 48, 6, 122, 55, 13, 0, 8, 2, 214, 176, 91, 84, 121, 0, 9, 2, 215, 168, 51, 36, 91, 10, 0, 12, 3, 95, 104, 101,
-			107, 6, 132, 71, 34, 137, 0, 0, 19, 67, 16, 84, 192, 72, 13, 65, 142, 50, 0, 81, 109, 111, 105, 110, 101, 115, 32, 31, 67, 48,
-			84, 192, 55, 141, 65, 124, 88, 122, 34, 6, 121, 71, 55, 14, 0, 81, 109, 105, 115, 195, 169, 114, 97, 98, 108, 101, 115, 32, 9, 2,
-			216, 175, 72, 35, 56, 17, 0, 7, 2, 95, 115, 122, 89, 0, 0, 13, 68, 4, 35, 214, 20, 13, 71, 129, 84, 0, 74, 10, 11, 67,
-			40, 244, 226, 107, 139, 89, 6, 141, 0, 19, 71, 64, 243, 25, 4, 210, 68, 20, 48, 126, 55, 124, 6, 141, 65, 140, 72, 0, 18, 70,
-			64, 85, 21, 48, 19, 148, 48, 122, 76, 13, 55, 13, 50, 47, 0, 103, 17, 70, 64, 83, 131, 32, 19, 148, 48, 122, 50, 91, 13, 50,
-			47, 0, 103, 15, 70, 64, 83, 131, 32, 19, 148, 48, 126, 50, 91, 126, 50, 0, 10, 199, 53, 83, 20, 37, 69, 68, 20, 65, 11, 68,
-			12, 19, 22, 20, 49, 35, 84, 0, 103, 10, 68, 12, 19, 22, 20, 49, 121, 84, 0, 8, 2, 216, 174, 101, 122, 19, 0, 0, 10, 199,
-			56, 240, 212, 85, 35, 129, 48, 66, 8, 2, 216, 173, 107, 122, 19, 0, 14, 4, 95, 104, 97, 99, 107, 6, 35, 76, 4, 122, 49, 0,
-			0, 16, 69, 8, 82, 9, 56, 64, 71, 124, 107, 140, 50, 72, 0, 74, 10, 9, 198, 56, 21, 129, 76, 48, 64, 17, 14, 69, 72, 20,
-			200, 36, 64, 34, 121, 91, 6, 132, 72, 0, 17, 70, 56, 144, 207, 76, 144, 64, 50, 124, 49, 13, 89, 6, 132, 13, 0, 15, 70, 12,
-			80, 201, 48, 144, 64, 89, 113, 89, 132, 55, 144, 0, 15, 69, 84, 229, 201, 56, 64, 129, 50, 58, 6, 140, 50, 72, 0, 17, 70, 64,
-			19, 129, 12, 80, 64, 48, 35, 50, 119, 89, 6, 132, 13, 0, 17, 69, 48, 149, 133, 12, 64, 55, 6, 140, 84, 89, 132, 72, 6, 132,
-			0, 13, 69, 21, 36, 129, 56, 64, 122, 34, 13, 50, 72, 0, 11, 2, 214, 188, 72, 6, 35, 81, 122, 91, 0, 8, 2, 216, 172, 75,
-			132, 65, 0, 0, 17, 71, 8, 81, 84, 32, 245, 133, 56, 71, 141, 108, 139, 84, 13, 50, 0, 10, 67, 49, 84, 5, 55, 137, 48, 141,
-			0, 10, 67, 88, 148, 193, 84, 132, 88, 13, 0, 10, 199, 32, 19, 12, 61, 113, 69, 56, 67, 11, 67, 17, 84, 5, 72, 57, 137, 48,
-			0, 135, 6, 2, 214, 187, 40, 0, 8, 2, 216, 171, 87, 122, 19, 0, 0, 21, 72, 104, 147, 66, 4, 37, 197, 4, 224, 88, 113, 65,
-			71, 121, 71, 58, 124, 13, 50, 0, 14, 69, 92, 21, 19, 60, 224, 58, 126, 47, 89, 13, 50, 0, 15, 70, 77, 21, 73, 73, 33, 76,
-			89, 49, 58, 131, 64, 0, 103, 15, 70, 77, 21, 73, 73, 33, 76, 89, 49, 58, 124, 34, 118, 0, 8, 197, 76, 19, 15, 60, 224, 17,
-			12, 68, 16, 147, 135, 100, 72, 124, 50, 75, 124, 0, 12, 2, 219, 146, 71, 35, 34, 37, 57, 6, 36, 0, 7, 2, 216, 170, 47, 35,
-			0, 0, 9, 67, 76, 22, 83, 89, 122, 88, 0, 13, 69, 76, 17, 133, 81, 144, 89, 141, 83, 47, 37, 0, 8, 197, 61, 85, 3, 73,
-			144, 65, 10, 67, 56, 245, 19, 50, 126, 47, 89, 0, 13, 69, 48, 149, 133, 49, 144, 55, 140, 84, 55, 124, 0, 13, 69, 36, 229, 18,
-			5, 144, 124, 50, 47, 34, 141, 0, 12, 69, 33, 84, 146, 5, 144, 107, 13, 34, 141, 0, 10, 67, 4, 225, 87, 119, 50, 137, 0, 103,
-			10, 67, 4, 225, 87, 119, 50, 57, 137, 0, 6, 2, 214, 185, 39, 0, 17, 2, 216, 169, 47, 6, 122, 19, 65, 35, 52, 71, 6, 40,
-			47, 119, 0, 0, 14, 6, 121, 111, 117, 39, 108, 108, 57, 137, 55, 0, 72, 32, 14, 69, 37, 48, 66, 20, 192, 124, 88, 13, 71, 122,
-			55, 0, 12, 68, 17, 32, 67, 60, 72, 34, 141, 49, 139, 0, 11, 67, 8, 17, 90, 71, 140, 6, 122, 88, 0, 18, 72, 80, 244, 146,
-			20, 229, 9, 4, 192, 47, 13, 34, 122, 50, 91, 118, 0, 23, 73, 36, 228, 212, 4, 195, 1, 80, 147, 206, 124, 50, 89, 47, 13, 55,
-			6, 141, 91, 13, 50, 0, 19, 72, 12, 243, 12, 61, 21, 73, 4, 192, 49, 13, 55, 139, 49, 58, 124, 118, 0, 13, 69, 12, 128, 78,
-			20, 192, 91, 119, 50, 122, 55, 0, 12, 69, 12, 83, 9, 16, 128, 49, 141, 55, 37, 0, 6, 2, 214, 184, 35, 0, 7, 2, 218, 152,
-			90, 35, 0, 7, 2, 216, 168, 71, 35, 0, 0, 11, 68, 32, 82, 78, 104, 107, 140, 50, 88, 0, 10, 67, 88, 20, 197, 84, 121, 88,
-			0, 135, 9, 67, 80, 20, 197, 47, 141, 88, 0, 9, 67, 16, 244, 197, 72, 139, 89, 0, 9, 2, 216, 183, 47, 107, 121, 19, 0, 13,
-			2, 95, 123, 55, 122, 83, 47, 71, 34, 141, 89, 0, 0, 14, 69, 80, 82, 18, 4, 224, 47, 143, 34, 6, 121, 50, 0, 13, 69, 48,
-			84, 201, 60, 224, 55, 132, 90, 13, 50, 0, 9, 198, 12, 243, 134, 48, 144, 212, 36, 10, 198, 12, 243, 134, 48, 144, 212, 65, 47, 10,
-			2, 216, 182, 72, 35, 12, 72, 14, 0, 20, 4, 95, 226, 128, 188, 122, 49, 89, 49, 55, 119, 65, 6, 141, 91, 13, 50, 88, 0, 0,
-			10, 199, 64, 83, 143, 9, 48, 207, 80, 17, 15, 69, 76, 147, 135, 49, 144, 89, 124, 68, 81, 55, 124, 0, 32, 12, 69, 64, 80, 82,
-			49, 144, 48, 131, 55, 37, 0, 17, 70, 24, 244, 133, 57, 50, 67, 83, 13, 34, 122, 50, 89, 124, 49, 0, 17, 71, 20, 21, 133, 76,
-			68, 143, 64, 132, 84, 88, 72, 34, 126, 48, 0, 10, 2, 216, 181, 89, 35, 12, 72, 14, 0, 15, 4, 95, 226, 128, 179, 72, 129, 71,
-			118, 48, 34, 140, 65, 0, 0, 9, 66, 80, 240, 47, 137, 0, 72, 42, 9, 66, 80, 240, 47, 137, 0, 72, 49, 23, 66, 80, 240, 47,
-			137, 13, 50, 72, 83, 34, 6, 139, 0, 82, 97, 110, 100, 32, 102, 114, 111, 32, 16, 66, 80, 240, 2, 47, 117, 10, 47, 116, 0, 32,
-			81, 116, 111, 32, 16, 66, 80, 240, 47, 13, 15, 6, 71, 132, 0, 49, 81, 98, 101, 32, 15, 66, 80, 240, 47, 13, 71, 2, 37, 0,
-			35, 81, 98, 101, 32, 8, 66, 80, 240, 47, 116, 0, 32, 12, 69, 76, 130, 76, 60, 128, 91, 140, 55, 139, 0, 8, 66, 100, 80, 57,
-			132, 0, 76, 12, 69, 64, 20, 137, 4, 128, 48, 13, 34, 147, 0, 15, 70, 16, 80, 201, 8, 83, 0, 72, 122, 89, 125, 71, 118, 0,
-			15, 70, 8, 16, 200, 20, 195, 210, 71, 35, 76, 13, 55, 114, 0, 8, 2, 216, 180, 91, 132, 50, 0, 14, 3, 95, 106, 97, 75, 6,
-			35, 48, 13, 50, 132, 88, 0, 11, 4, 95, 226, 128, 178, 48, 34, 140, 65, 0, 0, 11, 67, 92, 134, 64, 4, 58, 140, 0, 10, 47,
-			14, 69, 13, 148, 18, 85, 48, 89, 140, 48, 34, 13, 89, 0, 16, 70, 12, 243, 15, 52, 34, 65, 49, 13, 55, 129, 65, 71, 144, 0,
-			9, 67, 20, 198, 64, 132, 55, 37, 0, 17, 70, 4, 195, 5, 49, 82, 65, 35, 55, 113, 55, 6, 137, 57, 13, 0, 8, 2, 216, 179,
-			89, 132, 50, 0, 0, 17, 71, 52, 16, 203, 20, 230, 137, 20, 65, 13, 49, 122, 50, 88, 37, 0, 18, 70, 53, 82, 1, 52, 208, 68,
-			109, 111, 104, 97, 109, 109, 97, 100, 0, 29, 9, 2, 216, 178, 88, 122, 57, 50, 0, 13, 3, 95, 107, 111, 107, 6, 35, 50, 81, 40,
-			55, 0, 13, 4, 95, 226, 128, 176, 48, 131, 65, 6, 132, 55, 0, 0, 13, 68, 4, 35, 213, 80, 119, 71, 138, 47, 0, 74, 10, 15,
-			70, 25, 34, 78, 28, 84, 128, 83, 34, 124, 50, 75, 114, 0, 8, 2, 216, 177, 52, 121, 19, 0, 13, 3, 95, 107, 110, 49, 6, 121,
-			50, 119, 72, 13, 0, 11, 3, 95, 100, 118, 47, 6, 121, 50, 119, 0, 12, 2, 95, 125, 34, 140, 47, 71, 34, 141, 89, 0, 0, 11,
-			68, 80, 80, 200, 76, 47, 122, 49, 89, 0, 21, 73, 32, 81, 66, 36, 82, 133, 20, 38, 64, 107, 132, 71, 132, 75, 6, 132, 71, 37,
-			0, 11, 200, 16, 148, 195, 61, 83, 148, 20, 64, 66, 9, 2, 216, 176, 86, 35, 56, 17, 0, 10, 2, 95, 124, 84, 132, 71, 6, 130,
-			0, 0, 13, 69, 5, 66, 5, 57, 48, 35, 87, 113, 50, 88, 0, 12, 69, 60, 97, 133, 73, 48, 126, 83, 114, 88, 0, 15, 69, 32,
-			144, 84, 85, 48, 107, 140, 6, 141, 47, 13, 89, 0, 11, 68, 16, 243, 143, 72, 72, 139, 50, 114, 0, 14, 69, 16, 80, 146, 37, 48,
-			72, 13, 71, 34, 132, 0, 103, 13, 69, 16, 80, 146, 37, 48, 72, 122, 71, 34, 132, 0, 12, 68, 4, 66, 5, 72, 35, 72, 107, 6,
-			145, 0, 8, 197, 36, 35, 84, 81, 48, 13, 9, 2, 218, 175, 81, 35, 12, 83, 0, 0, 12, 68, 66, 36, 133, 104, 48, 122, 34, 122,
-			88, 0, 18, 70, 77, 80, 138, 20, 53, 0, 89, 129, 71, 75, 6, 122, 49, 47, 0, 36, 14, 70, 12, 243, 15, 72, 81, 0, 49, 129,
-			55, 114, 72, 0, 10, 67, 4, 33, 84, 119, 71, 122, 47, 0, 16, 4, 95, 226, 128, 180, 47, 34, 124, 48, 118, 48, 34, 140, 65, 0,
-			0, 10, 67, 16, 148, 195, 72, 124, 89, 49, 0, 12, 68, 12, 243, 69, 80, 49, 126, 65, 113, 47, 0, 11, 5, 95, 48, 97, 110, 100,
-			13, 50, 0, 135, 0, 12, 3, 95, 107, 97, 75, 6, 135, 75, 13, 50, 0, 0, 0, 16, 69, 92, 149, 8, 36, 224, 58, 124, 86, 124,
-			50, 0, 74, 10, 28, 11, 68, 92, 19, 12, 100, 58, 126, 55, 37, 0, 13, 69, 56, 21, 8, 4, 224, 50, 141, 87, 13, 50, 0, 16,
-			70, 48, 84, 207, 80, 131, 192, 55, 13, 89, 6, 137, 47, 137, 0, 11, 67, 4, 160, 88, 141, 75, 35, 49, 89, 0, 10, 2, 216, 186,
-			6, 103, 122, 37, 50, 0, 0, 15, 70, 16, 145, 201, 61, 35, 143, 72, 125, 90, 136, 50, 139, 0, 17, 70, 16, 19, 79, 12, 193, 83,
-			72, 35, 65, 13, 49, 55, 132, 88, 0, 14, 69, 72, 20, 137, 81, 144, 34, 143, 34, 13, 47, 37, 0, 17, 70, 20, 212, 8, 5, 50,
-			83, 122, 65, 83, 13, 89, 124, 89, 0, 46, 18, 70, 4, 224, 76, 101, 49, 83, 35, 50, 13, 55, 140, 88, 125, 88, 0, 36, 17, 70,
-			4, 224, 76, 101, 49, 83, 119, 50, 35, 55, 13, 89, 132, 88, 0, 11, 68, 4, 210, 83, 32, 121, 65, 124, 91, 0, 14, 4, 95, 50,
-			48, 111, 47, 58, 6, 122, 50, 47, 144, 0, 10, 2, 218, 169, 49, 6, 35, 12, 83, 0, 10, 2, 216, 185, 6, 19, 122, 37, 50, 0,
-			0, 12, 67, 16, 245, 206, 4, 72, 138, 50, 0, 46, 10, 19, 71, 72, 241, 18, 36, 117, 69, 76, 34, 126, 72, 34, 6, 132, 81, 122,
-			88, 0, 14, 69, 54, 35, 129, 28, 80, 65, 141, 50, 6, 121, 90, 0, 11, 68, 32, 245, 212, 60, 107, 138, 47, 137, 0, 8, 2, 216,
-			184, 86, 121, 19, 0, 0, 17, 71, 92, 129, 82, 20, 85, 133, 72, 58, 2, 143, 44, 122, 84, 114, 0, 0, 15, 70, 52, 244, 143, 12,
-			51, 192, 65, 13, 34, 126, 49, 139, 0, 11, 68, 88, 81, 199, 100, 84, 122, 75, 124, 0, 7, 2, 217, 190, 48, 35, 0, 0, 18, 72,
-			65, 33, 83, 12, 145, 78, 12, 80, 48, 34, 132, 89, 144, 50, 89, 0, 20, 72, 65, 33, 67, 20, 65, 78, 12, 80, 48, 34, 122, 89,
-			113, 72, 13, 50, 89, 0, 19, 72, 36, 229, 5, 73, 53, 9, 12, 80, 113, 50, 47, 131, 89, 47, 124, 89, 0, 0, 18, 71, 24, 84,
-			142, 4, 225, 5, 76, 83, 114, 50, 121, 50, 72, 122, 89, 0, 12, 69, 16, 20, 146, 100, 192, 72, 35, 34, 118, 0, 19, 71, 21, 84,
-			8, 72, 21, 5, 76, 57, 137, 83, 34, 6, 141, 47, 132, 88, 0, 17, 71, 12, 132, 137, 77, 67, 65, 76, 49, 34, 124, 89, 65, 13,
-			89, 0, 14, 69, 4, 211, 210, 4, 192, 141, 65, 6, 126, 34, 118, 0, 6, 194, 84, 224, 13, 42, 0, 10, 199, 88, 19, 131, 61, 85,
-			133, 72, 66, 10, 67, 60, 33, 89, 139, 71, 6, 141, 0, 10, 199, 13, 84, 8, 60, 193, 5, 72, 18, 0, 20, 68, 80, 129, 82, 20,
-			86, 2, 143, 4, 58, 131, 0, 9, 81, 119, 101, 114, 101, 32, 21, 68, 80, 129, 82, 20, 86, 2, 143, 58, 4, 129, 88, 0, 103, 9,
-			81, 119, 97, 115, 32, 20, 68, 80, 129, 82, 20, 86, 2, 143, 58, 4, 126, 88, 0, 9, 81, 119, 97, 115, 32, 16, 68, 80, 129, 82,
-			20, 86, 143, 71, 6, 132, 0, 81, 98, 101, 32, 17, 68, 80, 129, 82, 20, 86, 143, 6, 124, 88, 0, 49, 81, 105, 115, 32, 18, 68,
-			80, 129, 82, 20, 86, 2, 143, 4, 130, 0, 9, 81, 97, 114, 101, 32, 12, 68, 80, 129, 82, 20, 86, 143, 0, 72, 10, 46, 12, 68,
-			4, 225, 18, 20, 126, 50, 72, 34, 141, 0, 16, 70, 64, 245, 15, 52, 16, 192, 48, 13, 47, 139, 65, 13, 49, 0, 9, 198, 76, 21,
-			9, 72, 144, 192, 17, 17, 70, 64, 243, 9, 80, 144, 192, 48, 126, 55, 13, 47, 124, 49, 0, 47, 16, 70, 52, 81, 5, 88, 16, 192,
-			65, 122, 72, 124, 84, 35, 49, 0, 6, 195, 57, 148, 4, 13, 0, 7, 2, 217, 185, 47, 36, 0, 0, 9, 198, 52, 83, 9, 56, 64,
-			64, 17, 15, 70, 52, 18, 197, 56, 224, 64, 65, 13, 49, 122, 50, 13, 0, 13, 69, 40, 20, 146, 4, 64, 75, 35, 34, 13, 72, 0,
-			16, 70, 9, 34, 65, 56, 224, 64, 71, 34, 124, 6, 35, 50, 13, 0, 15, 70, 44, 19, 142, 4, 64, 64, 49, 121, 50, 13, 72, 13,
-			0, 17, 70, 8, 243, 15, 28, 224, 64, 71, 13, 55, 139, 50, 38, 13, 0, 41, 14, 69, 92, 147, 132, 20, 64, 58, 124, 50, 72, 125,
-			72, 0, 9, 198, 88, 19, 137, 48, 192, 64, 17, 15, 69, 52, 148, 204, 20, 64, 65, 124, 89, 55, 6, 122, 72, 0, 13, 69, 24, 24,
-			1, 16, 80, 83, 13, 89, 121, 72, 0, 15, 70, 8, 243, 15, 28, 224, 64, 71, 13, 55, 139, 50, 37, 0, 0, 9, 67, 52, 21, 73,
-			65, 138, 132, 0, 15, 3, 95, 109, 108, 65, 35, 55, 141, 6, 121, 55, 13, 65, 0, 0, 20, 71, 4, 225, 18, 60, 209, 68, 4, 35,
-			50, 72, 34, 6, 126, 65, 124, 72, 13, 0, 11, 68, 80, 129, 84, 4, 87, 132, 47, 13, 0, 8, 2, 218, 190, 107, 6, 13, 0, 0,
-			9, 67, 72, 134, 83, 34, 132, 89, 0, 10, 67, 4, 211, 211, 141, 65, 126, 89, 0, 12, 3, 95, 111, 114, 133, 34, 6, 37, 35, 12,
-			0, 0, 16, 70, 80, 149, 1, 56, 144, 64, 47, 124, 47, 6, 121, 50, 144, 0, 11, 69, 92, 20, 146, 20, 64, 58, 135, 72, 0, 14,
-			69, 76, 16, 210, 20, 64, 89, 141, 49, 34, 13, 72, 0, 16, 70, 24, 244, 141, 36, 48, 64, 83, 135, 65, 6, 140, 49, 13, 0, 13,
-			3, 95, 104, 121, 130, 65, 6, 132, 50, 144, 50, 0, 0, 11, 68, 12, 242, 5, 56, 49, 139, 13, 50, 0, 10, 67, 56, 20, 193, 50,
-			35, 89, 119, 0, 6, 195, 4, 65, 128, 13, 0, 14, 69, 76, 18, 71, 60, 224, 89, 140, 81, 6, 126, 50, 0, 20, 72, 52, 147, 142,
-			21, 51, 212, 4, 224, 65, 113, 50, 113, 89, 139, 47, 13, 50, 0, 12, 68, 48, 18, 84, 100, 55, 141, 13, 47, 37, 0, 13, 68, 16,
-			82, 84, 100, 72, 132, 13, 108, 37, 0, 103, 12, 68, 16, 82, 84, 100, 72, 141, 13, 47, 37, 0, 17, 70, 12, 20, 143, 85, 49, 76,
-			49, 35, 34, 13, 89, 6, 122, 55, 0, 6, 195, 97, 134, 0, 13, 0, 6, 195, 56, 50, 83, 13, 0, 13, 69, 85, 49, 70, 84, 192,
-			57, 137, 89, 83, 118, 0, 11, 200, 32, 244, 137, 104, 243, 148, 4, 192, 67, 14, 69, 9, 33, 65, 80, 128, 71, 34, 132, 86, 0, 36,
-			47, 13, 69, 9, 33, 65, 80, 128, 71, 34, 122, 87, 0, 47, 11, 4, 95, 35, 51, 50, 89, 48, 141, 89, 0, 0, 23, 6, 116, 104,
-			97, 116, 39, 115, 86, 119, 47, 89, 71, 124, 50, 0, 76, 81, 98, 101, 101, 110, 32, 20, 6, 116, 104, 97, 116, 39, 115, 86, 35, 47,
-			89, 6, 124, 47, 0, 81, 105, 116, 32, 11, 67, 40, 244, 197, 107, 139, 89, 6, 141, 0, 15, 70, 8, 243, 136, 60, 210, 69, 71, 126,
-			50, 13, 65, 132, 0, 0, 14, 69, 69, 88, 130, 20, 48, 49, 58, 113, 71, 122, 49, 0, 14, 69, 61, 33, 71, 60, 224, 126, 34, 113,
-			81, 13, 50, 0, 17, 70, 77, 80, 195, 36, 224, 212, 89, 13, 49, 89, 124, 68, 49, 47, 0, 13, 69, 76, 19, 13, 60, 224, 89, 35,
-			65, 13, 50, 0, 9, 197, 36, 229, 5, 72, 224, 65, 47, 14, 69, 36, 229, 5, 72, 224, 124, 50, 47, 131, 50, 0, 37, 0, 12, 68,
-			28, 241, 84, 32, 81, 139, 13, 87, 0, 76, 11, 67, 52, 249, 20, 65, 139, 6, 122, 47, 0, 9, 198, 76, 17, 9, 77, 66, 67, 17,
-			23, 74, 72, 20, 16, 72, 240, 200, 20, 209, 78, 80, 34, 35, 48, 34, 139, 91, 65, 6, 153, 0, 103, 9, 198, 32, 243, 9, 77, 66,
-			67, 17, 18, 70, 28, 145, 193, 57, 66, 67, 75, 140, 81, 6, 35, 50, 47, 124, 49, 0, 9, 198, 28, 19, 1, 13, 66, 67, 17, 0,
-			12, 69, 72, 16, 200, 20, 192, 34, 141, 76, 118, 0, 12, 69, 92, 148, 146, 4, 192, 58, 124, 34, 118, 0, 13, 68, 84, 225, 15, 76,
-			129, 50, 72, 6, 137, 88, 0, 13, 69, 12, 20, 144, 20, 192, 49, 130, 48, 13, 55, 0, 14, 70, 5, 36, 197, 56, 19, 0, 130, 89,
-			13, 50, 118, 0, 0, 18, 70, 4, 36, 197, 57, 66, 65, 35, 71, 89, 6, 122, 50, 108, 132, 13, 0, 6, 195, 5, 66, 64, 13, 0,
-			15, 70, 77, 69, 82, 28, 148, 192, 89, 47, 131, 75, 124, 89, 0, 15, 70, 28, 83, 135, 32, 148, 192, 75, 122, 68, 81, 124, 89, 0,
-			17, 70, 52, 242, 1, 52, 208, 68, 65, 139, 107, 6, 35, 65, 113, 72, 0, 16, 70, 56, 83, 69, 76, 148, 192, 50, 122, 65, 13, 89,
-			125, 89, 0, 15, 70, 52, 20, 145, 84, 148, 192, 65, 130, 34, 49, 6, 132, 0, 15, 70, 52, 17, 208, 36, 84, 192, 65, 35, 81, 48,
-			140, 88, 0, 0, 15, 70, 16, 18, 77, 48, 84, 128, 72, 140, 65, 55, 114, 0, 103, 0, 12, 68, 16, 21, 137, 76, 72, 141, 84, 124,
-			89, 0, 11, 200, 76, 83, 65, 64, 131, 210, 20, 64, 15, 0, 9, 67, 20, 211, 89, 122, 65, 37, 0, 10, 199, 52, 19, 136, 5, 69,
-			1, 56, 66, 18, 71, 12, 20, 137, 8, 33, 65, 56, 49, 35, 34, 13, 71, 6, 144, 50, 0, 12, 68, 52, 150, 5, 72, 65, 124, 49,
-			89, 114, 0, 17, 71, 12, 245, 82, 80, 84, 193, 56, 49, 136, 47, 125, 88, 13, 50, 0, 11, 68, 12, 243, 15, 72, 49, 129, 55, 114,
-			0, 0, 16, 70, 21, 53, 15, 65, 1, 76, 122, 89, 47, 6, 126, 48, 118, 0, 10, 67, 20, 66, 84, 122, 72, 124, 47, 0, 17, 70,
-			16, 148, 213, 76, 81, 0, 72, 124, 89, 6, 57, 137, 88, 72, 0, 12, 68, 13, 147, 82, 84, 49, 129, 65, 34, 37, 0, 6, 195, 4,
-			194, 84, 17, 0, 0, 5, 194, 97, 144, 13, 12, 3, 95, 104, 105, 107, 6, 124, 50, 72, 37, 0, 0, 12, 68, 48, 241, 201, 56, 55,
-			126, 81, 124, 50, 0, 22, 73, 48, 16, 153, 72, 147, 148, 32, 147, 133, 55, 35, 71, 114, 6, 124, 50, 87, 132, 50, 0, 12, 68, 8,
-			244, 213, 56, 71, 139, 89, 13, 50, 0, 6, 195, 5, 67, 64, 13, 0, 14, 69, 72, 17, 5, 60, 224, 34, 141, 72, 132, 126, 50, 0,
-			13, 69, 4, 97, 200, 4, 224, 35, 83, 81, 35, 50, 0, 15, 71, 52, 244, 133, 12, 19, 66, 20, 65, 136, 49, 13, 65, 0, 13, 68,
-			53, 83, 20, 36, 65, 129, 55, 47, 140, 0, 103, 0, 13, 5, 119, 101, 39, 108, 108, 58, 132, 55, 0, 72, 32, 0, 15, 6, 116, 104,
-			97, 116, 39, 100, 2, 86, 35, 47, 13, 72, 0, 18, 71, 76, 20, 211, 4, 100, 129, 76, 89, 35, 89, 119, 83, 34, 35, 89, 0, 17,
-			70, 76, 16, 143, 80, 85, 82, 89, 35, 71, 13, 47, 6, 151, 0, 105, 16, 70, 76, 16, 143, 80, 85, 82, 89, 35, 71, 13, 47, 6,
-			131, 0, 13, 68, 72, 80, 83, 44, 34, 132, 6, 120, 89, 49, 0, 15, 69, 36, 228, 212, 4, 192, 124, 50, 89, 47, 6, 133, 55, 0,
-			20, 72, 4, 229, 9, 64, 131, 206, 4, 192, 35, 50, 47, 6, 124, 83, 13, 50, 118, 0, 0, 13, 68, 53, 83, 143, 104, 65, 137, 50,
-			57, 139, 88, 0, 23, 74, 48, 145, 67, 33, 65, 78, 77, 65, 73, 56, 55, 124, 101, 47, 13, 50, 89, 47, 140, 50, 0, 10, 199, 28,
-			144, 146, 4, 197, 1, 72, 66, 7, 196, 12, 17, 9, 104, 17, 18, 71, 80, 81, 4, 100, 33, 65, 72, 47, 6, 122, 72, 124, 71, 4,
-			143, 0, 19, 71, 48, 19, 132, 61, 115, 133, 72, 55, 6, 35, 50, 72, 4, 139, 50, 114, 0, 16, 71, 32, 243, 69, 61, 115, 133, 72,
-			107, 139, 65, 139, 50, 114, 0, 12, 68, 8, 148, 207, 56, 71, 140, 89, 13, 50, 0, 0, 23, 73, 56, 85, 198, 61, 83, 132, 48, 19,
-			132, 50, 57, 137, 83, 13, 50, 72, 55, 119, 50, 72, 0, 29, 69, 72, 18, 83, 60, 224, 34, 141, 88, 126, 50, 15, 72, 6, 122, 47,
-			34, 14, 0, 81, 100, 39, 195, 170, 116, 114, 101, 32, 0, 16, 70, 28, 147, 210, 16, 147, 143, 75, 135, 72, 6, 132, 50, 139, 0, 18,
-			72, 12, 243, 147, 12, 145, 78, 12, 80, 49, 126, 50, 91, 13, 50, 89, 0, 12, 201, 8, 240, 82, 16, 209, 77, 8, 84, 128, 65, 0,
-			15, 68, 8, 82, 78, 28, 4, 71, 132, 124, 68, 0, 35, 46, 10, 12, 69, 12, 129, 82, 100, 192, 91, 122, 34, 118, 0, 19, 71, 37,
-			51, 211, 12, 83, 5, 76, 140, 89, 6, 126, 89, 13, 55, 132, 88, 0, 14, 69, 12, 244, 146, 4, 192, 49, 13, 34, 6, 35, 55, 0,
-			14, 69, 12, 20, 148, 20, 192, 49, 130, 47, 6, 122, 55, 0, 11, 68, 4, 114, 78, 28, 141, 75, 124, 68, 0, 0, 10, 199, 92, 130,
-			67, 32, 85, 133, 72, 66, 19, 71, 76, 243, 77, 20, 194, 69, 72, 89, 129, 65, 13, 55, 57, 6, 141, 0, 103, 17, 71, 76, 243, 77,
-			20, 194, 69, 72, 89, 126, 65, 6, 122, 55, 144, 0, 18, 71, 9, 34, 71, 4, 66, 69, 72, 71, 34, 124, 81, 119, 72, 6, 145, 0,
-			8, 67, 5, 52, 192, 35, 89, 0, 0, 16, 70, 93, 147, 205, 36, 225, 192, 58, 140, 6, 139, 65, 124, 68, 0, 11, 68, 80, 18, 15,
-			20, 47, 121, 107, 139, 0, 15, 70, 32, 20, 212, 36, 225, 192, 107, 141, 89, 47, 124, 68, 0, 14, 70, 80, 80, 82, 36, 225, 192, 47,
-			143, 44, 124, 68, 0, 7, 196, 76, 84, 9, 4, 20, 15, 70, 76, 48, 82, 36, 225, 192, 89, 49, 143, 34, 124, 68, 0, 11, 68, 64,
-			244, 211, 20, 48, 126, 89, 37, 0, 11, 68, 32, 245, 83, 20, 107, 138, 88, 0, 36, 10, 68, 28, 81, 83, 20, 81, 132, 89, 0, 15,
-			70, 12, 243, 77, 20, 229, 0, 49, 126, 65, 122, 50, 47, 0, 0, 12, 68, 32, 84, 143, 16, 107, 122, 34, 13, 72, 0, 0, 15, 70,
-			88, 84, 147, 4, 49, 64, 84, 114, 89, 121, 76, 37, 0, 15, 70, 56, 21, 1, 48, 145, 64, 50, 35, 47, 119, 55, 37, 0, 15, 70,
-			12, 19, 132, 4, 49, 64, 49, 35, 50, 72, 124, 89, 0, 15, 70, 92, 20, 212, 4, 113, 64, 58, 141, 89, 47, 113, 75, 0, 15, 70,
-			88, 84, 212, 36, 113, 64, 84, 122, 89, 47, 113, 75, 0, 9, 198, 77, 80, 140, 36, 209, 64, 66, 16, 70, 72, 81, 133, 72, 81, 64,
-			34, 122, 83, 13, 34, 6, 132, 0, 17, 70, 65, 35, 212, 20, 113, 64, 48, 34, 139, 47, 13, 90, 141, 0, 103, 16, 70, 65, 35, 212,
-			20, 113, 64, 48, 34, 126, 47, 13, 90, 141, 0, 15, 70, 65, 33, 83, 4, 113, 64, 48, 34, 122, 89, 124, 75, 0, 15, 70, 64, 244,
-			212, 4, 113, 64, 48, 139, 89, 47, 113, 75, 0, 9, 198, 61, 85, 18, 4, 113, 64, 65, 15, 70, 53, 148, 208, 4, 49, 64, 65, 140,
-			89, 48, 141, 89, 0, 15, 70, 52, 20, 211, 4, 113, 64, 65, 119, 89, 121, 90, 0, 103, 14, 70, 52, 20, 211, 4, 113, 64, 65, 35,
-			89, 121, 90, 0, 15, 70, 12, 244, 147, 4, 113, 64, 49, 135, 89, 6, 121, 90, 0, 15, 70, 12, 243, 12, 4, 113, 64, 49, 126, 55,
-			6, 121, 90, 0, 15, 70, 8, 20, 146, 4, 113, 64, 71, 114, 34, 121, 90, 0, 103, 14, 70, 8, 20, 146, 4, 113, 64, 71, 35, 34,
-			121, 90, 0, 0, 11, 67, 41, 83, 25, 75, 137, 55, 6, 140, 0, 0, 14, 68, 80, 131, 211, 20, 86, 139, 88, 0, 72, 34, 10, 46,
-			14, 71, 56, 145, 84, 105, 48, 200, 20, 50, 132, 76, 37, 0, 15, 70, 48, 82, 80, 104, 145, 192, 55, 140, 48, 89, 124, 81, 0, 20,
-			71, 80, 20, 129, 57, 69, 76, 4, 47, 13, 34, 35, 50, 47, 57, 117, 55, 13, 0, 12, 68, 65, 34, 77, 4, 48, 34, 132, 65, 13,
-			0, 17, 71, 61, 33, 193, 56, 83, 12, 20, 135, 81, 13, 50, 6, 122, 55, 0, 16, 70, 16, 81, 129, 80, 145, 192, 72, 113, 83, 35,
-			47, 124, 81, 0, 15, 70, 12, 243, 77, 20, 225, 0, 49, 13, 65, 122, 50, 72, 0, 12, 68, 12, 195, 211, 20, 49, 55, 139, 88, 0,
-			36, 12, 68, 12, 195, 211, 20, 49, 55, 139, 89, 0, 46, 10, 199, 12, 194, 69, 57, 65, 76, 20, 66, 0, 11, 200, 76, 83, 73, 12,
-			148, 131, 48, 80, 65, 21, 72, 36, 212, 12, 4, 48, 66, 48, 80, 124, 65, 48, 55, 6, 35, 49, 13, 71, 118, 0, 0, 9, 198, 77,
-			84, 193, 56, 225, 64, 66, 14, 70, 52, 144, 200, 20, 193, 64, 65, 113, 91, 122, 55, 0, 15, 70, 76, 80, 84, 80, 193, 64, 89, 132,
-			6, 35, 47, 118, 0, 14, 70, 12, 243, 15, 28, 225, 64, 49, 13, 55, 139, 50, 0, 15, 70, 77, 80, 147, 36, 65, 64, 89, 13, 71,
-			89, 140, 72, 0, 15, 70, 76, 245, 70, 24, 193, 64, 89, 137, 83, 55, 6, 141, 0, 19, 72, 76, 130, 76, 48, 83, 1, 28, 128, 91,
-			4, 113, 55, 6, 141, 55, 13, 0, 15, 70, 76, 84, 85, 36, 225, 64, 89, 132, 49, 58, 113, 50, 0, 9, 198, 61, 85, 12, 36, 225,
-			64, 65, 16, 70, 28, 83, 149, 36, 225, 64, 75, 122, 50, 57, 137, 125, 50, 0, 14, 70, 21, 2, 83, 80, 193, 64, 113, 48, 124, 89,
-			118, 0, 13, 70, 20, 20, 140, 60, 33, 64, 145, 55, 139, 71, 0, 12, 68, 12, 243, 66, 60, 49, 126, 65, 71, 139, 0, 9, 198, 9,
-			34, 71, 4, 65, 64, 66, 14, 70, 5, 3, 211, 80, 193, 64, 119, 48, 126, 89, 118, 0, 16, 70, 4, 225, 77, 60, 225, 64, 119, 50,
-			122, 65, 13, 50, 37, 0, 0, 9, 67, 33, 85, 192, 107, 57, 137, 0, 10, 67, 36, 245, 193, 140, 13, 58, 13, 0, 14, 69, 16, 148,
-			212, 72, 240, 72, 124, 89, 47, 34, 139, 0, 10, 67, 4, 117, 69, 141, 81, 57, 137, 0, 0, 11, 67, 4, 193, 88, 35, 55, 124, 49,
-			89, 0, 0, 18, 71, 36, 229, 5, 72, 209, 78, 80, 113, 50, 47, 131, 65, 13, 50, 47, 0, 10, 67, 16, 18, 83, 72, 141, 124, 89,
-			0, 0, 10, 199, 77, 64, 84, 37, 53, 9, 12, 17, 12, 201, 12, 245, 20, 60, 227, 79, 85, 66, 0, 15, 19, 71, 4, 84, 212, 32,
-			85, 9, 12, 122, 89, 87, 6, 122, 47, 124, 49, 0, 103, 0, 10, 67, 76, 181, 65, 89, 49, 137, 13, 0, 8, 197, 28, 22, 133, 8,
-			240, 17, 0, 13, 69, 44, 145, 82, 4, 224, 49, 144, 34, 13, 50, 0, 19, 70, 36, 225, 9, 72, 80, 212, 124, 50, 72, 114, 34, 6,
-			122, 49, 47, 0, 103, 9, 198, 36, 225, 9, 72, 80, 212, 67, 9, 198, 12, 243, 148, 72, 16, 212, 36, 10, 198, 12, 243, 148, 72, 16,
-			212, 65, 47, 19, 70, 4, 36, 212, 72, 16, 212, 119, 71, 89, 47, 34, 6, 35, 49, 47, 0, 36, 18, 70, 4, 36, 212, 72, 16, 212,
-			35, 71, 89, 47, 34, 35, 49, 47, 0, 46, 0, 11, 68, 40, 243, 129, 32, 75, 139, 50, 13, 0, 11, 68, 16, 147, 129, 32, 72, 140,
-			50, 13, 0, 18, 72, 44, 19, 7, 60, 244, 140, 36, 80, 49, 35, 55, 81, 146, 55, 37, 0, 9, 198, 65, 35, 199, 72, 84, 211, 36,
-			18, 70, 65, 35, 199, 72, 84, 211, 48, 34, 126, 81, 34, 122, 89, 0, 103, 46, 17, 70, 65, 35, 199, 72, 84, 211, 48, 34, 139, 81,
-			34, 122, 89, 0, 46, 19, 70, 40, 19, 1, 64, 83, 143, 107, 121, 55, 13, 48, 6, 141, 50, 38, 139, 0, 18, 70, 5, 48, 133, 77,
-			67, 211, 35, 89, 71, 6, 122, 89, 47, 13, 89, 0, 0, 19, 71, 76, 50, 5, 52, 21, 9, 12, 89, 49, 13, 65, 35, 47, 124, 49,
-			0, 103, 20, 71, 52, 85, 1, 8, 243, 9, 12, 65, 122, 47, 13, 71, 6, 126, 55, 124, 49, 0, 13, 3, 95, 109, 121, 65, 57, 6,
-			121, 50, 65, 130, 0, 14, 3, 95, 115, 105, 89, 6, 124, 68, 107, 13, 55, 13, 0, 0, 11, 200, 24, 244, 133, 76, 128, 68, 61, 112,
-			66, 14, 67, 28, 134, 128, 81, 124, 81, 13, 107, 131, 47, 89, 0, 0, 20, 5, 119, 101, 39, 118, 101, 58, 132, 84, 107, 35, 72, 0,
-			78, 81, 104, 97, 100, 32, 13, 5, 119, 101, 39, 118, 101, 58, 132, 84, 0, 72, 35, 16, 70, 72, 19, 69, 76, 84, 192, 34, 35, 65,
-			13, 89, 132, 88, 0, 14, 70, 80, 129, 82, 52, 244, 192, 87, 131, 65, 13, 89, 0, 19, 70, 21, 128, 213, 76, 84, 192, 122, 49, 89,
-			49, 57, 6, 137, 89, 125, 88, 0, 0, 21, 6, 121, 111, 117, 39, 118, 101, 57, 137, 84, 107, 35, 72, 0, 78, 81, 104, 97, 100, 32,
-			14, 6, 121, 111, 117, 39, 118, 101, 57, 137, 84, 0, 72, 35, 0, 9, 198, 80, 131, 210, 20, 21, 64, 17, 12, 68, 72, 81, 201, 76,
-			34, 132, 75, 113, 89, 0, 15, 69, 72, 240, 149, 77, 64, 34, 139, 71, 6, 129, 89, 47, 0, 12, 68, 64, 84, 149, 76, 48, 13, 34,
-			137, 88, 0, 8, 197, 61, 85, 16, 85, 64, 65, 14, 69, 52, 84, 133, 77, 64, 65, 144, 34, 13, 89, 47, 0, 13, 69, 52, 16, 200,
-			21, 64, 65, 35, 91, 6, 141, 0, 14, 69, 44, 147, 133, 13, 64, 49, 113, 50, 122, 49, 47, 0, 12, 68, 24, 144, 213, 76, 83, 140,
-			49, 13, 89, 0, 8, 197, 21, 132, 15, 73, 64, 36, 9, 197, 21, 132, 15, 73, 64, 65, 47, 11, 68, 4, 194, 65, 76, 141, 55, 144,
-			89, 0, 0, 15, 70, 77, 2, 78, 4, 50, 0, 89, 48, 124, 50, 113, 76, 0, 18, 71, 20, 69, 193, 72, 66, 65, 56, 122, 72, 58,
-			6, 135, 72, 144, 50, 0, 18, 72, 12, 128, 78, 28, 83, 9, 56, 112, 76, 141, 50, 75, 55, 124, 68, 0, 0, 12, 68, 76, 224, 70,
-			84, 89, 50, 35, 83, 137, 0, 0, 11, 68, 64, 147, 143, 80, 48, 132, 50, 139, 0, 0, 14, 70, 76, 147, 194, 33, 195, 128, 91, 13,
-			84, 133, 50, 0, 14, 69, 100, 241, 213, 73, 64, 57, 139, 81, 114, 47, 0, 103, 14, 69, 88, 145, 206, 21, 64, 84, 113, 50, 57, 122,
-			47, 0, 16, 70, 80, 83, 5, 64, 131, 206, 47, 122, 55, 113, 83, 139, 50, 0, 14, 69, 80, 19, 5, 57, 64, 47, 35, 55, 13, 50,
-			47, 0, 12, 69, 76, 244, 130, 21, 64, 89, 135, 71, 141, 0, 12, 68, 48, 20, 211, 60, 55, 35, 89, 139, 0, 103, 12, 68, 48, 20,
-			211, 60, 55, 35, 89, 6, 137, 0, 12, 67, 28, 242, 78, 4, 81, 139, 113, 50, 0, 46, 6, 195, 21, 52, 14, 13, 0, 0, 23, 72,
-			88, 243, 11, 77, 112, 71, 20, 224, 84, 6, 139, 55, 49, 89, 84, 4, 121, 81, 13, 50, 0, 22, 72, 12, 244, 5, 56, 128, 71, 20,
-			224, 49, 139, 48, 13, 50, 107, 6, 141, 81, 13, 50, 0, 22, 72, 72, 84, 21, 80, 21, 9, 60, 224, 34, 122, 48, 57, 137, 47, 6,
-			141, 91, 13, 50, 0, 14, 69, 13, 33, 84, 36, 224, 49, 34, 132, 19, 42, 0, 103, 16, 71, 5, 80, 133, 72, 114, 78, 20, 139, 71,
-			114, 90, 132, 50, 0, 21, 72, 4, 48, 213, 76, 21, 9, 60, 224, 35, 49, 57, 137, 88, 6, 141, 91, 13, 50, 0, 13, 67, 13, 68,
-			140, 49, 13, 50, 47, 34, 139, 55, 0, 9, 3, 95, 108, 111, 55, 6, 138, 0, 0, 9, 198, 4, 67, 204, 64, 133, 83, 17, 13, 4,
-			95, 51, 48, 111, 87, 6, 150, 47, 144, 0, 105, 12, 4, 95, 51, 48, 111, 87, 6, 131, 47, 144, 0, 0, 11, 200, 76, 80, 129, 77,
-			67, 208, 60, 192, 17, 0, 21, 72, 4, 229, 9, 80, 129, 83, 37, 48, 35, 50, 47, 6, 124, 87, 13, 89, 124, 89, 0, 0, 17, 71,
-			44, 148, 139, 12, 19, 4, 100, 49, 150, 49, 6, 126, 72, 37, 0, 0, 10, 67, 4, 211, 203, 119, 65, 126, 49, 0, 0, 13, 69, 28,
-			244, 208, 20, 192, 81, 126, 89, 48, 118, 0, 19, 71, 20, 229, 133, 48, 244, 5, 76, 121, 50, 84, 13, 55, 139, 48, 89, 0, 103, 18,
-			71, 20, 229, 133, 48, 244, 5, 76, 122, 50, 84, 13, 55, 139, 48, 89, 0, 12, 69, 12, 128, 80, 20, 192, 76, 35, 48, 118, 0, 5,
-			194, 96, 192, 13, 12, 3, 95, 116, 97, 47, 6, 35, 65, 113, 55, 0, 0, 16, 70, 65, 33, 78, 80, 144, 197, 48, 34, 122, 50, 108,
-			124, 89, 0, 8, 67, 100, 80, 64, 57, 141, 0, 15, 70, 56, 80, 203, 48, 16, 197, 50, 122, 49, 55, 13, 89, 0, 9, 198, 4, 229,
-			9, 8, 241, 25, 65, 11, 67, 76, 52, 201, 89, 49, 129, 88, 37, 0, 0, 14, 68, 80, 129, 83, 20, 86, 132, 88, 0, 72, 34, 10,
-			46, 10, 198, 80, 244, 141, 20, 229, 0, 66, 36, 9, 198, 80, 244, 141, 20, 229, 0, 65, 14, 70, 76, 129, 66, 4, 225, 192, 91, 125,
-			71, 35, 68, 0, 15, 70, 64, 20, 212, 36, 225, 192, 48, 141, 89, 47, 124, 68, 0, 14, 70, 56, 245, 8, 36, 225, 192, 50, 129, 87,
-			124, 68, 0, 13, 70, 52, 20, 147, 32, 19, 12, 65, 130, 91, 118, 0, 11, 68, 48, 192, 77, 4, 55, 121, 65, 13, 0, 11, 68, 32,
-			84, 143, 20, 107, 144, 34, 139, 0, 0, 0, 15, 70, 92, 80, 144, 4, 113, 64, 58, 122, 71, 48, 141, 75, 0, 14, 70, 76, 51, 213,
-			72, 113, 64, 89, 49, 151, 75, 0, 105, 13, 70, 76, 51, 213, 72, 113, 64, 89, 49, 131, 75, 0, 16, 70, 72, 243, 65, 56, 49, 64,
-			34, 139, 65, 6, 35, 50, 89, 0, 15, 70, 72, 85, 133, 72, 145, 64, 34, 122, 84, 13, 34, 37, 0, 9, 198, 64, 20, 148, 4, 177,
-			64, 66, 15, 70, 61, 97, 82, 4, 113, 64, 139, 84, 13, 44, 141, 75, 0, 9, 198, 61, 85, 3, 60, 209, 64, 65, 14, 70, 56, 80,
-			203, 80, 145, 64, 50, 122, 49, 47, 140, 0, 14, 70, 52, 147, 5, 4, 113, 64, 65, 140, 55, 113, 75, 0, 16, 70, 48, 147, 133, 4,
-			113, 64, 55, 124, 50, 124, 38, 125, 75, 0, 14, 70, 29, 35, 213, 64, 145, 64, 81, 34, 137, 48, 37, 0, 16, 70, 16, 85, 143, 80,
-			81, 64, 72, 122, 84, 139, 47, 6, 132, 0, 14, 70, 12, 243, 12, 20, 113, 64, 49, 126, 55, 113, 75, 0, 15, 70, 12, 20, 18, 36,
-			49, 64, 49, 119, 48, 34, 132, 89, 0, 15, 70, 5, 97, 82, 4, 113, 64, 35, 84, 14, 34, 113, 75, 0, 15, 70, 5, 50, 193, 56,
-			49, 64, 119, 89, 49, 120, 50, 89, 0, 13, 3, 95, 116, 101, 47, 6, 122, 55, 40, 81, 40, 0, 0, 9, 67, 44, 144, 64, 49, 132,
-			119, 0, 6, 195, 12, 144, 64, 13, 0, 12, 68, 52, 20, 137, 4, 65, 119, 34, 132, 13, 0, 11, 68, 12, 148, 131, 20, 89, 131, 89,
-			37, 0, 13, 202, 84, 225, 5, 72, 48, 82, 72, 144, 71, 20, 65, 18, 71, 76, 244, 1, 64, 147, 12, 4, 89, 139, 48, 13, 48, 6,
-			132, 13, 0, 9, 198, 52, 19, 139, 36, 225, 0, 66, 11, 68, 48, 83, 147, 20, 55, 122, 50, 88, 0, 18, 71, 36, 225, 129, 57, 66,
-			76, 20, 124, 50, 83, 13, 50, 47, 140, 55, 0, 19, 71, 33, 148, 5, 72, 35, 204, 20, 107, 140, 48, 6, 131, 71, 13, 55, 37, 0,
-			19, 71, 33, 148, 5, 72, 35, 204, 4, 107, 140, 48, 6, 131, 71, 13, 55, 13, 0, 12, 68, 20, 69, 67, 20, 113, 72, 57, 137, 89,
-			0, 17, 71, 5, 96, 76, 4, 224, 200, 20, 35, 84, 13, 55, 120, 50, 91, 0, 0, 18, 72, 56, 145, 200, 81, 64, 66, 48, 80, 50,
-			140, 19, 47, 141, 71, 118, 0, 0, 9, 198, 80, 83, 147, 36, 193, 64, 16, 14, 70, 52, 148, 211, 36, 193, 64, 65, 124, 89, 118, 0,
-			103, 9, 198, 32, 244, 212, 36, 193, 64, 16, 9, 198, 24, 84, 148, 36, 193, 64, 16, 9, 198, 17, 80, 212, 36, 193, 64, 16, 12, 70,
-			64, 244, 147, 12, 129, 64, 48, 136, 91, 0, 14, 70, 56, 85, 137, 48, 193, 64, 50, 122, 84, 124, 55, 0, 15, 70, 21, 66, 69, 56,
-			225, 64, 122, 47, 124, 6, 122, 50, 0, 13, 70, 12, 129, 65, 16, 193, 64, 76, 132, 72, 118, 0, 15, 70, 104, 84, 16, 60, 193, 64,
-			88, 122, 48, 13, 55, 37, 0, 9, 198, 85, 1, 210, 4, 65, 64, 36, 10, 198, 85, 1, 210, 4, 65, 64, 65, 47, 16, 70, 65, 33,
-			76, 84, 65, 64, 48, 34, 141, 55, 137, 72, 0, 103, 16, 70, 65, 33, 76, 84, 65, 64, 48, 34, 122, 55, 57, 137, 72, 0, 9, 198,
-			64, 19, 129, 12, 129, 64, 17, 20, 67, 52, 18, 78, 65, 6, 141, 50, 89, 47, 34, 4, 132, 47, 0, 81, 115, 116, 32, 10, 67, 16,
-			242, 78, 72, 137, 124, 50, 0, 15, 70, 12, 128, 82, 4, 65, 64, 91, 119, 34, 141, 72, 0, 103, 14, 70, 12, 128, 82, 4, 65, 64,
-			91, 119, 34, 121, 72, 0, 17, 70, 12, 19, 26, 60, 225, 64, 49, 35, 55, 88, 6, 139, 50, 37, 0, 9, 198, 5, 53, 18, 36, 65,
-			64, 17, 0, 12, 68, 48, 80, 78, 56, 55, 132, 6, 35, 50, 0, 6, 195, 76, 17, 64, 13, 0, 14, 69, 45, 148, 135, 101, 160, 49,
-			131, 34, 81, 124, 88, 0, 0, 19, 71, 65, 33, 67, 20, 65, 78, 80, 48, 34, 122, 89, 113, 72, 13, 50, 47, 0, 10, 199, 12, 243,
-			134, 36, 64, 78, 80, 15, 0, 11, 200, 84, 225, 5, 73, 115, 210, 48, 64, 65, 13, 69, 4, 66, 69, 85, 128, 119, 72, 57, 137, 88,
-			0, 0, 0, 0, 0, 0, 9, 67, 92, 146, 64, 58, 132, 12, 0, 21, 72, 16, 145, 76, 20, 53, 18, 36, 48, 72, 147, 55, 6, 122,
-			49, 47, 34, 124, 49, 0, 0, 11, 5, 119, 101, 39, 114, 101, 2, 58, 145, 0, 8, 197, 52, 145, 1, 37, 32, 66, 14, 69, 21, 32,
-			83, 21, 32, 113, 34, 141, 89, 114, 0, 103, 13, 69, 21, 32, 83, 21, 32, 113, 34, 141, 88, 114, 0, 11, 69, 17, 32, 87, 21, 32,
-			72, 34, 135, 0, 9, 67, 12, 243, 208, 49, 137, 48, 0, 13, 69, 12, 195, 211, 21, 32, 49, 55, 139, 89, 114, 0, 0, 13, 6, 121,
-			111, 117, 39, 114, 101, 2, 57, 146, 0, 106, 12, 6, 121, 111, 117, 39, 114, 101, 2, 57, 135, 0, 12, 68, 20, 66, 67, 80, 132, 72,
-			124, 49, 47, 0, 0, 14, 69, 80, 16, 140, 21, 64, 47, 35, 71, 55, 13, 47, 0, 14, 70, 80, 16, 140, 20, 21, 64, 47, 35, 71,
-			55, 139, 0, 13, 69, 77, 84, 133, 77, 64, 91, 146, 13, 89, 47, 0, 12, 69, 76, 16, 200, 21, 64, 89, 35, 91, 141, 0, 15, 69,
-			36, 228, 197, 73, 64, 124, 50, 89, 6, 131, 47, 0, 36, 14, 69, 36, 228, 197, 73, 64, 124, 50, 89, 131, 47, 0, 47, 14, 69, 36,
-			225, 9, 13, 64, 124, 50, 72, 6, 140, 47, 0, 15, 69, 21, 48, 207, 73, 64, 122, 89, 49, 6, 135, 47, 0, 36, 12, 69, 12, 128,
-			76, 21, 64, 91, 35, 55, 141, 0, 12, 69, 12, 16, 200, 21, 64, 49, 35, 91, 141, 0, 14, 69, 8, 197, 69, 77, 64, 71, 55, 137,
-			13, 89, 47, 0, 14, 69, 4, 195, 79, 77, 64, 133, 55, 65, 139, 89, 47, 0, 14, 69, 4, 35, 5, 77, 64, 141, 71, 55, 13, 89,
-			47, 0, 0, 15, 70, 5, 69, 15, 72, 225, 89, 119, 47, 151, 50, 37, 0, 105, 14, 70, 5, 69, 15, 72, 225, 89, 119, 47, 131, 50,
-			37, 0, 0, 12, 69, 72, 20, 9, 21, 32, 34, 141, 48, 145, 0, 13, 69, 33, 84, 211, 5, 32, 107, 129, 88, 6, 130, 0, 12, 69,
-			12, 245, 71, 5, 32, 49, 137, 81, 114, 0, 15, 70, 12, 16, 129, 72, 85, 0, 49, 35, 71, 13, 34, 141, 0, 4, 193, 228, 43, 0,
-			20, 72, 64, 84, 147, 21, 2, 15, 56, 80, 48, 114, 89, 6, 122, 83, 13, 50, 37, 0, 12, 68, 8, 16, 213, 64, 71, 141, 49, 13,
-			48, 0, 16, 71, 92, 82, 18, 52, 16, 200, 80, 84, 143, 65, 35, 101, 47, 0, 17, 72, 76, 16, 195, 32, 20, 137, 56, 80, 89, 35,
-			49, 114, 124, 50, 0, 22, 73, 72, 84, 197, 73, 96, 84, 36, 243, 128, 34, 122, 88, 114, 84, 6, 141, 91, 13, 50, 0, 12, 68, 64,
-			147, 15, 80, 48, 140, 55, 13, 47, 0, 23, 73, 16, 80, 204, 5, 32, 84, 36, 243, 128, 72, 122, 49, 55, 13, 6, 34, 141, 91, 13,
-			50, 0, 18, 72, 12, 243, 12, 5, 32, 143, 56, 80, 49, 126, 55, 114, 71, 139, 50, 0, 0, 15, 70, 13, 66, 21, 48, 133, 64, 49,
-			14, 87, 137, 105, 137, 0, 14, 69, 77, 69, 65, 73, 64, 89, 47, 137, 114, 47, 0, 103, 14, 69, 77, 69, 65, 73, 64, 89, 47, 57,
-			137, 114, 47, 0, 14, 69, 76, 80, 210, 21, 64, 89, 132, 49, 34, 13, 47, 0, 13, 69, 72, 21, 197, 77, 64, 34, 133, 13, 89, 47,
-			0, 14, 69, 65, 84, 137, 77, 64, 48, 57, 146, 124, 89, 47, 0, 14, 69, 64, 21, 5, 57, 64, 48, 35, 19, 42, 47, 0, 103, 15,
-			69, 16, 145, 197, 77, 64, 72, 140, 75, 122, 89, 47, 0, 37, 14, 69, 16, 81, 133, 13, 64, 72, 132, 83, 122, 49, 47, 0, 13, 69,
-			9, 81, 134, 21, 64, 71, 129, 83, 141, 0, 37, 21, 73, 4, 196, 8, 4, 33, 84, 37, 161, 64, 35, 55, 83, 13, 71, 13, 47, 140,
-			88, 0, 14, 69, 4, 69, 133, 73, 64, 119, 72, 84, 131, 47, 0, 36, 14, 69, 4, 65, 9, 13, 64, 35, 72, 124, 49, 47, 0, 47,
-			16, 69, 4, 36, 197, 57, 64, 35, 71, 89, 6, 122, 50, 47, 0, 36, 0, 13, 67, 92, 131, 192, 4, 107, 137, 0, 32, 8, 10, 47,
-			9, 67, 4, 67, 192, 119, 72, 137, 0, 0, 12, 4, 119, 101, 39, 100, 58, 132, 72, 0, 72, 35, 16, 70, 52, 18, 13, 61, 81, 0,
-			65, 35, 101, 65, 6, 137, 72, 0, 11, 199, 12, 132, 137, 77, 66, 78, 20, 103, 66, 16, 71, 12, 21, 8, 21, 34, 78, 20, 49, 35,
-			87, 34, 113, 50, 0, 15, 70, 81, 114, 76, 36, 114, 20, 47, 58, 140, 55, 140, 47, 0, 18, 71, 36, 229, 5, 77, 66, 78, 20, 113,
-			50, 47, 122, 89, 47, 125, 50, 0, 0, 22, 72, 92, 147, 8, 20, 195, 73, 56, 16, 58, 124, 55, 107, 13, 55, 65, 6, 132, 50, 13,
-			0, 18, 70, 76, 20, 129, 40, 85, 143, 89, 35, 34, 119, 57, 6, 141, 84, 139, 0, 24, 73, 92, 244, 139, 77, 64, 84, 36, 243, 128,
-			58, 6, 151, 49, 89, 47, 4, 141, 91, 13, 50, 0, 105, 23, 73, 92, 244, 139, 77, 64, 84, 36, 243, 128, 58, 6, 131, 49, 89, 47,
-			4, 141, 91, 13, 50, 0, 15, 70, 77, 1, 67, 36, 245, 83, 89, 48, 132, 91, 13, 89, 0, 24, 73, 16, 85, 5, 77, 64, 84, 36,
-			243, 128, 72, 124, 47, 4, 122, 89, 47, 6, 141, 91, 13, 50, 0, 23, 73, 12, 243, 148, 72, 20, 20, 36, 243, 128, 49, 13, 50, 47,
-			34, 6, 35, 48, 91, 13, 50, 0, 6, 195, 36, 149, 67, 13, 0, 10, 199, 16, 145, 201, 80, 19, 9, 76, 15, 0, 0, 0, 13, 68,
-			32, 83, 9, 96, 107, 132, 55, 124, 49, 89, 0, 0, 9, 67, 36, 115, 210, 132, 81, 136, 0, 7, 196, 36, 100, 143, 28, 20, 0, 17,
-			69, 32, 21, 137, 56, 112, 4, 107, 35, 84, 124, 68, 0, 10, 35, 46, 10, 67, 77, 86, 153, 89, 137, 88, 37, 0, 15, 70, 48, 21,
-			210, 20, 224, 197, 55, 126, 34, 13, 50, 89, 0, 10, 198, 64, 83, 154, 4, 224, 197, 15, 66, 17, 71, 72, 84, 197, 73, 99, 201, 72,
-			34, 122, 88, 114, 84, 58, 130, 0, 18, 70, 20, 229, 18, 4, 224, 197, 122, 50, 47, 34, 6, 120, 50, 89, 0, 36, 10, 198, 20, 229,
-			18, 4, 224, 197, 65, 47, 15, 70, 12, 243, 77, 20, 224, 197, 49, 13, 65, 122, 50, 89, 0, 0, 12, 68, 80, 147, 4, 20, 47, 124,
-			55, 72, 13, 0, 12, 68, 76, 53, 66, 4, 89, 49, 137, 71, 13, 0, 11, 68, 13, 33, 80, 20, 49, 34, 141, 48, 0, 0, 12, 69,
-			40, 243, 133, 76, 80, 75, 139, 50, 88, 0, 12, 69, 21, 97, 84, 80, 80, 113, 84, 122, 47, 0, 8, 197, 16, 18, 207, 80, 16, 17,
-			16, 69, 8, 241, 207, 80, 16, 71, 139, 81, 13, 47, 6, 121, 0, 103, 15, 69, 8, 241, 207, 80, 16, 71, 126, 81, 13, 47, 6, 121,
-			0, 8, 197, 84, 229, 201, 76, 80, 66, 14, 69, 76, 19, 9, 56, 80, 89, 141, 55, 132, 50, 0, 103, 13, 69, 76, 19, 9, 56, 80,
-			89, 141, 55, 140, 50, 0, 13, 69, 72, 80, 68, 52, 80, 34, 132, 72, 65, 132, 0, 12, 69, 61, 85, 1, 28, 80, 138, 47, 113, 75,
-			0, 13, 69, 36, 229, 1, 44, 80, 124, 50, 108, 141, 49, 0, 8, 197, 28, 19, 15, 72, 80, 17, 16, 69, 25, 84, 143, 72, 80, 83,
-			57, 137, 34, 6, 133, 34, 37, 0, 12, 201, 4, 208, 137, 16, 86, 20, 72, 245, 83, 67, 0, 17, 70, 77, 1, 67, 36, 209, 78, 89,
-			48, 122, 89, 113, 65, 13, 50, 0, 8, 67, 64, 80, 82, 48, 143, 0, 0, 12, 68, 40, 16, 207, 8, 75, 141, 49, 13, 71, 0, 13,
-			69, 52, 147, 137, 56, 112, 65, 140, 50, 124, 68, 0, 16, 70, 18, 37, 5, 57, 65, 64, 72, 141, 47, 6, 126, 50, 47, 0, 14, 69,
-			12, 241, 206, 4, 48, 49, 126, 50, 57, 35, 49, 0, 14, 69, 4, 224, 76, 60, 112, 35, 50, 13, 55, 126, 81, 0, 0, 15, 71, 12,
-			128, 82, 48, 245, 20, 20, 91, 130, 55, 13, 47, 0, 10, 199, 25, 37, 83, 81, 32, 84, 20, 66, 20, 71, 21, 131, 206, 21, 32, 84,
-			20, 122, 81, 88, 6, 126, 50, 13, 34, 141, 47, 0, 7, 196, 21, 130, 76, 20, 65, 17, 71, 21, 66, 81, 84, 85, 20, 20, 122, 47,
-			125, 49, 13, 47, 0, 103, 10, 199, 21, 66, 81, 84, 85, 20, 20, 65, 18, 71, 16, 148, 208, 5, 32, 84, 20, 72, 124, 89, 48, 13,
-			34, 13, 47, 0, 0, 13, 69, 80, 84, 133, 76, 80, 47, 13, 34, 141, 88, 0, 14, 69, 56, 17, 9, 56, 80, 50, 141, 72, 6, 132,
-			50, 0, 13, 69, 52, 20, 131, 36, 16, 65, 130, 91, 13, 0, 103, 13, 69, 16, 83, 137, 76, 80, 72, 13, 50, 132, 89, 0, 11, 69,
-			5, 32, 200, 36, 80, 130, 76, 37, 0, 14, 69, 84, 224, 66, 48, 80, 129, 50, 6, 141, 71, 118, 0, 13, 69, 80, 243, 129, 28, 80,
-			47, 129, 50, 124, 75, 0, 14, 69, 77, 81, 82, 80, 80, 89, 58, 143, 34, 47, 141, 0, 13, 69, 76, 242, 82, 20, 80, 89, 58, 121,
-			34, 141, 0, 14, 69, 52, 148, 129, 28, 80, 65, 114, 34, 121, 90, 0, 103, 13, 69, 52, 148, 129, 28, 80, 65, 124, 34, 121, 90, 0,
-			8, 197, 52, 20, 193, 48, 16, 17, 14, 69, 28, 20, 129, 28, 80, 81, 119, 34, 121, 90, 0, 103, 13, 69, 24, 244, 129, 28, 80, 83,
-			126, 34, 113, 75, 0, 15, 69, 21, 84, 143, 64, 16, 57, 146, 34, 6, 139, 48, 13, 0, 15, 69, 12, 144, 193, 16, 16, 89, 125, 49,
-			141, 72, 13, 0, 103, 9, 67, 8, 20, 211, 71, 141, 89, 0, 13, 69, 5, 32, 66, 48, 80, 35, 34, 119, 71, 118, 0, 0, 9, 67,
-			36, 18, 78, 132, 13, 50, 0, 12, 201, 77, 80, 143, 72, 66, 78, 5, 65, 64, 66, 17, 70, 36, 229, 5, 73, 97, 78, 124, 50, 47,
-			114, 84, 6, 132, 50, 0, 22, 73, 8, 20, 130, 37, 69, 82, 5, 65, 64, 71, 130, 71, 6, 124, 76, 146, 34, 13, 47, 0, 0, 15,
-			69, 80, 243, 65, 80, 240, 47, 13, 65, 141, 47, 139, 0, 103, 16, 70, 60, 36, 212, 4, 51, 5, 126, 71, 89, 47, 13, 49, 118, 0,
-			10, 67, 20, 213, 64, 132, 65, 57, 137, 0, 12, 3, 95, 122, 104, 76, 6, 140, 50, 132, 88, 0, 0, 0, 13, 202, 69, 80, 68, 72,
-			147, 1, 80, 84, 129, 48, 67, 15, 71, 13, 35, 201, 77, 48, 78, 80, 49, 58, 121, 89, 153, 0, 23, 73, 12, 243, 80, 21, 66, 84,
-			36, 243, 128, 49, 126, 65, 48, 13, 47, 6, 124, 91, 13, 50, 0, 13, 68, 12, 19, 9, 96, 49, 141, 55, 124, 49, 89, 0, 0, 16,
-			70, 81, 34, 80, 60, 194, 64, 47, 34, 124, 48, 13, 55, 37, 0, 18, 71, 36, 229, 133, 72, 225, 83, 76, 124, 50, 84, 114, 50, 6,
-			122, 89, 0, 15, 70, 80, 84, 141, 36, 226, 64, 47, 131, 65, 124, 50, 140, 0, 0, 13, 68, 28, 16, 143, 56, 81, 119, 71, 139, 50,
-			0, 103, 12, 68, 28, 16, 143, 56, 81, 35, 71, 126, 50, 0, 12, 68, 64, 17, 193, 56, 48, 141, 81, 13, 50, 0, 0, 18, 8, 115,
-			104, 97, 108, 108, 110, 39, 116, 4, 91, 121, 50, 47, 0, 32, 10, 12, 68, 8, 19, 66, 36, 71, 35, 65, 71, 132, 0, 19, 71, 4,
-			229, 9, 64, 21, 8, 100, 35, 50, 47, 6, 124, 48, 13, 87, 37, 0, 0, 17, 70, 77, 1, 67, 36, 98, 67, 89, 48, 13, 89, 124,
-			83, 124, 49, 0, 20, 71, 76, 147, 131, 21, 33, 83, 80, 89, 124, 50, 89, 6, 144, 34, 13, 89, 47, 0, 0, 20, 72, 5, 35, 83,
-			48, 83, 135, 80, 128, 4, 130, 65, 88, 55, 6, 122, 68, 87, 0, 15, 70, 4, 84, 143, 28, 83, 0, 143, 34, 139, 75, 122, 55, 0,
-			0, 16, 70, 9, 35, 195, 12, 243, 9, 71, 34, 126, 49, 13, 55, 37, 0, 0, 13, 69, 24, 243, 7, 21, 32, 83, 139, 55, 75, 114,
-			0, 12, 69, 16, 85, 15, 85, 32, 72, 132, 108, 146, 0, 15, 6, 95, 114, 111, 109, 97, 110, 34, 139, 65, 13, 50, 10, 0, 0, 13,
-			68, 81, 83, 9, 64, 47, 57, 137, 55, 124, 48, 0, 0, 13, 68, 8, 83, 15, 92, 71, 124, 55, 139, 0, 74, 10, 8, 197, 61, 85,
-			12, 21, 64, 65, 14, 70, 12, 243, 15, 56, 83, 0, 49, 151, 50, 118, 0, 105, 13, 70, 12, 243, 15, 56, 83, 0, 49, 131, 50, 118,
-			0, 13, 69, 12, 128, 82, 37, 64, 76, 35, 34, 124, 47, 0, 0, 11, 68, 12, 243, 143, 72, 49, 126, 50, 114, 0, 9, 67, 4, 214,
-			64, 141, 65, 37, 0, 0, 12, 69, 8, 21, 77, 21, 32, 71, 138, 65, 114, 0, 13, 69, 100, 84, 211, 37, 32, 57, 122, 89, 89, 131,
-			0, 11, 69, 65, 32, 89, 21, 32, 48, 34, 143, 0, 12, 69, 12, 244, 9, 21, 32, 49, 126, 48, 145, 0, 12, 69, 12, 17, 83, 5,
-			32, 89, 132, 88, 114, 0, 10, 67, 8, 84, 212, 71, 122, 89, 47, 0, 0, 20, 72, 48, 149, 5, 72, 21, 21, 72, 80, 55, 124, 47,
-			114, 34, 13, 76, 114, 0, 103, 18, 72, 48, 149, 5, 72, 21, 21, 72, 80, 55, 124, 47, 34, 125, 76, 114, 0, 22, 72, 16, 147, 73,
-			57, 85, 9, 88, 80, 72, 125, 65, 124, 50, 57, 137, 47, 124, 84, 0, 103, 0, 15, 69, 16, 241, 83, 57, 64, 72, 129, 88, 13, 50,
-			47, 0, 32, 14, 3, 95, 116, 105, 47, 113, 71, 6, 122, 47, 13, 50, 0, 0, 12, 68, 16, 85, 137, 56, 72, 122, 84, 124, 50, 0,
-			14, 70, 8, 84, 139, 20, 193, 89, 71, 131, 49, 55, 37, 0, 15, 70, 48, 85, 8, 5, 33, 217, 55, 122, 87, 114, 75, 37, 0, 9,
-			3, 95, 116, 104, 47, 6, 140, 0, 0, 14, 70, 8, 84, 151, 36, 50, 192, 71, 122, 34, 124, 49, 0, 15, 70, 88, 147, 133, 100, 20,
-			132, 84, 124, 50, 57, 114, 72, 0, 14, 70, 76, 129, 80, 32, 84, 132, 91, 122, 48, 114, 72, 0, 10, 199, 76, 83, 73, 9, 33, 86,
-			20, 65, 10, 199, 64, 19, 12, 4, 66, 85, 52, 17, 15, 204, 56, 245, 23, 37, 66, 19, 80, 19, 132, 36, 225, 192, 67, 15, 70, 32,
-			84, 133, 24, 244, 132, 107, 131, 83, 114, 72, 0, 103, 20, 71, 4, 197, 77, 36, 226, 85, 52, 35, 55, 57, 117, 65, 6, 124, 50, 144,
-			65, 0, 6, 195, 4, 68, 204, 13, 0, 6, 18, 66, 108, 0, 114, 0, 7, 6, 18, 67, 105, 0, 121, 0, 7, 6, 18, 68, 97, 0,
-			105, 0, 111, 0, 117, 0, 7, 6, 18, 70, 99, 0, 103, 0, 107, 0, 7, 6, 18, 71, 115, 0, 122, 0, 7, 6, 18, 72, 98, 69,
-			0, 100, 69, 0, 108, 69, 0, 110, 69, 0, 98, 0, 100, 0, 103, 0, 109, 0, 110, 0, 114, 0, 7, 6, 18, 73, 116, 0, 100, 0,
-			115, 0, 122, 0, 110, 0, 120, 0, 7, 6, 18, 75, 103, 114, 97, 112, 104, 0, 115, 99, 111, 112, 0, 108, 111, 103, 0, 109, 101, 116,
-			0, 7, 6, 20, 0, 251, 0, 0, 102, 0, 102, 0, 1, 251, 0, 0, 102, 0, 105, 0, 2, 251, 0, 0, 102, 0, 108, 0, 0, 0,
-			0, 0, 6, 97, 98, 0, 4, 2, 111, 108, 105, 116, 3, 4, 35, 71, 0, 8, 2, 111, 114, 105, 0, 115, 101, 8, 2, 110, 116, 17,
-			67, 3, 4, 35, 71, 89, 13, 0, 101, 114, 8, 2, 21, 3, 4, 35, 71, 114, 0, 2, 117, 108, 97, 114, 3, 6, 35, 71, 0, 4,
-			8, 110, 101, 2, 108, 3, 6, 141, 71, 0, 8, 110, 117, 2, 108, 101, 0, 8, 115, 105, 100, 2, 108, 101, 0, 108, 105, 110, 103, 3,
-			6, 141, 71, 55, 124, 68, 0, 108, 101, 1, 116, 99, 21, 2, 32, 3, 8, 13, 71, 118, 0, 97, 100, 1, 21, 2, 32, 3, 8, 119,
-			71, 35, 72, 0, 1, 17, 67, 2, 105, 108, 105, 116, 12, 3, 13, 71, 0, 105, 108, 105, 116, 121, 1, 10, 2, 14, 128, 139, 135, 3,
-			13, 71, 6, 124, 55, 113, 47, 2, 37, 0, 105, 108, 105, 116, 105, 101, 115, 1, 10, 2, 14, 128, 139, 137, 3, 13, 71, 6, 124, 55,
-			113, 47, 2, 37, 88, 0, 4, 108, 121, 1, 10, 2, 32, 14, 128, 171, 132, 3, 13, 71, 55, 2, 124, 0, 108, 121, 1, 99, 10, 2,
-			32, 14, 128, 168, 132, 0, 108, 121, 1, 110, 105, 109, 2, 32, 0, 4, 108, 101, 1, 10, 2, 32, 14, 128, 139, 132, 3, 13, 71, 118,
-			0, 108, 101, 1, 99, 10, 2, 32, 0, 108, 101, 1, 110, 105, 109, 2, 32, 0, 108, 101, 1, 116, 101, 2, 32, 14, 128, 128, 132, 0,
-			4, 1, 98, 2, 121, 108, 3, 35, 71, 0, 2, 97, 99, 17, 65, 0, 2, 97, 116, 116, 0, 2, 106, 101, 99, 116, 0, 2, 108, 97,
-			116, 105, 118, 0, 2, 110, 101, 103, 0, 2, 114, 111, 103, 0, 2, 114, 117, 99, 0, 2, 115, 99, 101, 0, 2, 115, 101, 105, 0, 2,
-			115, 111, 108, 117, 0, 2, 115, 116, 105, 0, 8, 2, 100, 0, 8, 2, 105, 0, 8, 2, 114, 97, 99, 0, 8, 2, 115, 101, 110, 0,
-			98, 8, 0, 98, 111, 8, 3, 35, 71, 13, 0, 101, 114, 1, 17, 67, 2, 21, 3, 35, 71, 114, 0, 4, 8, 2, 21, 3, 119, 71,
-			0, 8, 2, 100, 117, 99, 0, 8, 2, 105, 100, 101, 0, 8, 2, 114, 97, 0, 98, 8, 2, 114, 101, 118, 0, 111, 118, 101, 8, 2,
-			21, 14, 128, 132, 133, 3, 119, 71, 4, 129, 84, 0, 101, 114, 8, 2, 114, 97, 110, 3, 119, 71, 122, 0, 4, 1, 17, 67, 29, 2,
-			108, 101, 3, 141, 71, 0, 1, 98, 2, 121, 0, 1, 108, 2, 111, 117, 114, 0, 1, 116, 115, 2, 105, 108, 0, 8, 2, 114, 97, 109,
-			0, 8, 108, 2, 105, 0, 108, 121, 3, 141, 71, 55, 124, 0, 101, 114, 8, 115, 2, 21, 3, 141, 71, 114, 0, 4, 101, 108, 8, 3,
-			141, 71, 118, 0, 108, 101, 0, 108, 101, 1, 10, 2, 32, 28, 17, 0, 7, 6, 97, 99, 0, 2, 99, 101, 110, 116, 117, 3, 2, 35,
-			49, 0, 2, 113, 117, 105, 101, 3, 4, 35, 0, 4, 2, 97, 32, 3, 6, 35, 49, 0, 2, 116, 111, 114, 121, 0, 2, 116, 117, 114,
-			101, 0, 2, 117, 108, 97, 114, 0, 99, 105, 2, 32, 3, 6, 121, 76, 37, 0, 2, 114, 117, 109, 32, 3, 6, 141, 49, 0, 104, 105,
-			97, 3, 6, 141, 91, 13, 0, 101, 97, 110, 2, 32, 3, 6, 141, 91, 13, 50, 0, 105, 111, 117, 115, 3, 6, 141, 91, 13, 89, 0,
-			1, 114, 99, 2, 121, 32, 3, 8, 13, 89, 0, 1, 10, 2, 108, 101, 32, 3, 13, 49, 0, 114, 101, 1, 115, 115, 97, 109, 3, 13,
-			49, 114, 0, 4, 1, 10, 2, 121, 32, 3, 13, 89, 0, 1, 102, 2, 105, 108, 105, 116, 0, 1, 108, 112, 2, 101, 98, 0, 8, 108,
-			112, 2, 101, 110, 116, 0, 104, 105, 1, 109, 2, 110, 17, 65, 13, 3, 13, 91, 132, 0, 4, 2, 99, 101, 110, 116, 3, 35, 49, 0,
-			2, 99, 105, 100, 0, 2, 111, 110, 0, 2, 114, 111, 0, 2, 117, 109, 0, 2, 117, 112, 0, 8, 2, 111, 0, 8, 2, 114, 105, 0,
-			8, 2, 116, 0, 99, 2, 111, 108, 0, 104, 2, 114, 111, 109, 0, 107, 8, 0, 97, 2, 100, 101, 109, 3, 35, 49, 13, 0, 114, 111,
-			1, 109, 2, 21, 3, 35, 49, 34, 13, 0, 110, 101, 3, 35, 49, 50, 124, 0, 99, 117, 2, 114, 97, 3, 35, 49, 57, 117, 0, 109,
-			101, 3, 35, 49, 65, 124, 0, 116, 117, 2, 17, 65, 3, 35, 49, 76, 137, 0, 104, 105, 110, 97, 1, 109, 2, 116, 3, 35, 49, 113,
-			50, 141, 0, 4, 2, 101, 114, 98, 3, 35, 89, 0, 2, 105, 100, 32, 0, 4, 101, 8, 2, 116, 3, 35, 89, 124, 0, 101, 8, 109,
-			2, 100, 0, 4, 1, 108, 112, 2, 97, 116, 3, 119, 49, 0, 8, 2, 21, 0, 99, 8, 2, 21, 0, 104, 1, 114, 116, 2, 101, 0,
-			107, 8, 2, 110, 0, 97, 2, 100, 101, 109, 121, 3, 119, 49, 35, 0, 99, 117, 115, 2, 17, 65, 3, 119, 49, 57, 137, 88, 0, 113,
-			117, 8, 3, 119, 49, 58, 0, 99, 8, 2, 101, 3, 119, 49, 89, 0, 4, 99, 111, 117, 2, 116, 3, 119, 49, 137, 0, 111, 117, 2,
-			115, 116, 0, 104, 8, 3, 119, 76, 0, 4, 8, 2, 101, 3, 119, 89, 0, 8, 2, 101, 114, 98, 105, 0, 8, 2, 105, 0, 4, 101,
-			8, 2, 116, 105, 3, 119, 89, 132, 0, 101, 8, 114, 2, 109, 0, 101, 117, 1, 109, 114, 97, 104, 112, 3, 119, 89, 137, 0, 104, 8,
-			98, 3, 121, 49, 0, 4, 104, 101, 114, 1, 98, 2, 32, 3, 121, 49, 114, 0, 104, 101, 114, 1, 109, 2, 32, 0, 104, 1, 98, 2,
-			32, 3, 121, 101, 0, 4, 1, 102, 114, 117, 2, 101, 32, 3, 124, 89, 0, 1, 108, 97, 2, 101, 32, 0, 1, 108, 111, 115, 2, 101,
-			32, 0, 1, 109, 105, 2, 101, 32, 0, 1, 110, 21, 2, 101, 32, 0, 1, 114, 114, 2, 101, 32, 0, 101, 2, 32, 28, 18, 3, 125,
-			89, 0, 104, 1, 121, 2, 116, 3, 126, 0, 4, 1, 118, 2, 97, 3, 141, 49, 0, 2, 111, 114, 110, 0, 5, 3, 8, 108, 112, 2,
-			97, 116, 0, 8, 98, 2, 111, 0, 104, 101, 1, 100, 2, 32, 0, 104, 101, 1, 104, 2, 32, 0, 104, 101, 1, 107, 2, 32, 0, 104,
-			101, 1, 114, 2, 32, 0, 104, 101, 1, 116, 114, 2, 32, 0, 104, 101, 1, 121, 2, 32, 0, 104, 101, 8, 2, 12, 0, 4, 104, 101,
-			115, 1, 100, 2, 32, 3, 141, 49, 89, 0, 104, 101, 115, 1, 104, 2, 32, 0, 104, 101, 115, 1, 107, 2, 32, 0, 104, 101, 115, 1,
-			114, 2, 32, 0, 104, 101, 115, 1, 116, 114, 2, 32, 0, 114, 101, 8, 3, 141, 49, 114, 0, 4, 1, 112, 115, 2, 101, 13, 3, 141,
-			89, 0, 8, 114, 2, 105, 115, 0, 101, 2, 32, 0, 101, 8, 114, 0, 7, 6, 97, 100, 0, 111, 8, 115, 2, 109, 97, 3, 4, 141,
-			72, 139, 0, 1, 115, 117, 114, 99, 3, 6, 141, 72, 0, 1, 108, 97, 109, 2, 121, 3, 13, 72, 0, 105, 111, 8, 114, 2, 21, 14,
-			128, 132, 133, 3, 34, 4, 141, 72, 124, 2, 139, 0, 2, 106, 117, 116, 97, 110, 3, 35, 0, 4, 1, 108, 103, 2, 105, 3, 35, 72,
-			0, 1, 114, 2, 105, 99, 0, 1, 120, 101, 104, 2, 101, 0, 2, 97, 103, 0, 2, 97, 109, 0, 2, 101, 110, 0, 2, 101, 113, 0,
-			2, 106, 117, 110, 99, 116, 32, 0, 2, 109, 97, 110, 32, 0, 2, 109, 105, 110, 32, 0, 2, 109, 105, 114, 97, 0, 2, 111, 108, 0,
-			2, 111, 110, 0, 2, 117, 108, 97, 0, 2, 118, 101, 110, 116, 0, 2, 118, 101, 114, 0, 2, 118, 101, 114, 116, 32, 0, 8, 2, 105,
-			0, 8, 2, 108, 0, 8, 2, 111, 114, 97, 116, 0, 8, 2, 114, 105, 21, 0, 8, 2, 117, 109, 0, 100, 2, 101, 114, 0, 100, 2,
-			105, 116, 105, 118, 0, 100, 8, 0, 100, 8, 2, 108, 0, 101, 1, 108, 2, 115, 104, 3, 35, 72, 6, 122, 0, 111, 2, 108, 101, 115,
-			3, 35, 72, 13, 0, 118, 111, 8, 3, 35, 72, 84, 13, 0, 101, 113, 117, 97, 3, 35, 72, 124, 49, 58, 13, 0, 117, 5, 3, 2,
-			108, 97, 3, 35, 75, 13, 0, 106, 101, 99, 3, 35, 75, 122, 49, 0, 4, 2, 118, 101, 110, 116, 117, 3, 119, 72, 0, 2, 118, 101,
-			114, 116, 0, 8, 2, 21, 0, 8, 114, 116, 2, 105, 116, 0, 100, 8, 2, 101, 110, 100, 0, 100, 8, 2, 105, 99, 116, 0, 100, 8,
-			2, 105, 116, 105, 111, 0, 100, 8, 2, 114, 0, 100, 8, 2, 117, 0, 97, 1, 99, 2, 118, 101, 114, 3, 119, 72, 35, 0, 106, 8,
-			3, 119, 75, 0, 1, 117, 113, 3, 126, 72, 0, 4, 1, 98, 2, 111, 115, 32, 3, 141, 72, 0, 1, 99, 2, 101, 110, 99, 0, 1,
-			108, 2, 101, 110, 0, 1, 108, 2, 121, 0, 1, 110, 114, 111, 116, 0, 1, 114, 99, 2, 108, 0, 1, 115, 2, 105, 115, 0, 2, 105,
-			17, 65, 0, 2, 108, 101, 32, 0, 8, 108, 98, 2, 101, 13, 0, 8, 114, 2, 18, 68, 0, 105, 1, 114, 2, 111, 18, 75, 12, 3,
-			141, 72, 124, 0, 7, 6, 97, 102, 0, 1, 21, 2, 116, 101, 114, 3, 6, 120, 83, 0, 4, 2, 114, 105, 3, 35, 83, 0, 8, 2,
-			103, 0, 102, 2, 97, 98, 0, 102, 2, 101, 114, 0, 102, 2, 108, 117, 0, 114, 111, 8, 3, 35, 83, 34, 139, 0, 4, 2, 101, 97,
-			3, 119, 83, 0, 8, 2, 21, 0, 102, 8, 2, 21, 0, 111, 114, 101, 3, 119, 83, 136, 0, 102, 105, 97, 8, 3, 119, 83, 147, 0,
-			4, 2, 116, 12, 3, 120, 83, 0, 102, 1, 116, 115, 0, 102, 1, 119, 3, 126, 83, 0, 7, 6, 97, 103, 0, 8, 116, 110, 97, 3,
-			6, 35, 81, 0, 117, 97, 2, 32, 3, 6, 35, 81, 57, 137, 13, 0, 105, 111, 2, 32, 3, 6, 121, 75, 124, 139, 0, 2, 97, 32,
-			3, 6, 121, 81, 0, 117, 97, 5, 3, 2, 32, 3, 6, 121, 81, 58, 13, 0, 105, 2, 32, 3, 6, 121, 81, 124, 0, 4, 1, 103,
-			110, 2, 101, 32, 3, 6, 141, 75, 0, 1, 114, 110, 101, 2, 101, 32, 0, 101, 1, 103, 2, 109, 101, 110, 116, 0, 1, 109, 2, 101,
-			110, 116, 97, 3, 13, 75, 0, 1, 10, 2, 111, 110, 32, 3, 13, 81, 0, 4, 8, 108, 102, 2, 101, 108, 3, 35, 75, 0, 8, 114,
-			116, 0, 4, 103, 8, 2, 114, 97, 118, 3, 35, 81, 0, 103, 8, 2, 114, 101, 103, 0, 4, 101, 110, 8, 100, 3, 35, 81, 13, 50,
-			0, 111, 110, 1, 114, 100, 0, 111, 110, 1, 119, 2, 12, 0, 4, 101, 1, 21, 2, 32, 3, 113, 75, 0, 101, 1, 21, 2, 109, 101,
-			110, 116, 0, 101, 1, 112, 112, 2, 32, 0, 101, 114, 1, 21, 2, 32, 14, 128, 128, 129, 3, 114, 0, 101, 114, 115, 1, 21, 2, 32,
-			14, 128, 128, 130, 3, 114, 88, 0, 4, 2, 101, 110, 100, 3, 119, 75, 0, 8, 109, 2, 101, 108, 108, 0, 4, 2, 114, 101, 101, 3,
-			119, 81, 0, 8, 2, 108, 21, 0, 8, 2, 111, 32, 0, 8, 2, 114, 111, 110, 0, 103, 2, 114, 101, 115, 0, 103, 2, 114, 105, 101,
-			118, 0, 103, 8, 2, 21, 0, 104, 2, 32, 3, 121, 81, 0, 101, 110, 1, 104, 10, 2, 32, 3, 121, 81, 13, 50, 0, 4, 1, 116,
-			110, 111, 109, 2, 101, 32, 3, 121, 90, 0, 101, 1, 108, 102, 2, 32, 0, 4, 1, 110, 101, 101, 116, 2, 101, 3, 141, 75, 0, 1,
-			114, 101, 100, 2, 101, 32, 0, 1, 114, 116, 117, 111, 2, 101, 32, 0, 1, 116, 115, 2, 101, 0, 8, 2, 101, 0, 8, 2, 105, 115,
-			0, 101, 1, 21, 2, 32, 28, 17, 0, 101, 1, 99, 2, 32, 0, 101, 1, 99, 98, 0, 101, 1, 99, 100, 0, 101, 1, 112, 17, 67,
-			2, 32, 0, 101, 8, 2, 105, 0, 101, 8, 2, 108, 0, 105, 1, 116, 2, 111, 0, 105, 97, 8, 108, 112, 3, 141, 75, 13, 0, 4,
-			1, 108, 102, 2, 114, 97, 110, 3, 141, 81, 0, 1, 114, 102, 2, 114, 0, 1, 118, 2, 114, 97, 0, 2, 111, 32, 0, 117, 101, 0,
-			7, 6, 97, 105, 0, 4, 1, 21, 2, 17, 67, 97, 32, 3, 6, 141, 0, 1, 116, 110, 101, 2, 108, 0, 1, 116, 114, 117, 99, 2,
-			108, 0, 103, 2, 110, 0, 110, 1, 100, 2, 32, 3, 6, 141, 50, 0, 110, 101, 100, 1, 100, 2, 32, 3, 6, 141, 50, 72, 0, 115,
-			101, 2, 32, 3, 6, 141, 88, 0, 4, 99, 2, 32, 3, 6, 141, 124, 49, 0, 99, 2, 97, 108, 0, 4, 114, 101, 3, 6, 143, 0,
-			114, 101, 1, 21, 2, 32, 0, 4, 1, 108, 108, 105, 118, 3, 13, 0, 1, 116, 102, 0, 1, 116, 105, 114, 98, 0, 1, 116, 114, 117,
-			99, 0, 8, 116, 114, 101, 99, 0, 4, 115, 8, 2, 108, 105, 3, 35, 91, 0, 115, 8, 99, 2, 108, 0, 1, 115, 2, 100, 3, 122,
-			0, 4, 1, 10, 2, 110, 32, 28, 18, 3, 124, 0, 1, 103, 114, 97, 98, 0, 1, 108, 112, 97, 0, 1, 108, 114, 101, 98, 0, 1,
-			116, 110, 117, 111, 0, 1, 116, 112, 0, 1, 114, 116, 114, 111, 112, 2, 116, 3, 125, 0, 4, 2, 32, 3, 140, 0, 2, 105, 0, 8,
-			107, 0, 1, 110, 2, 118, 3, 140, 6, 132, 0, 4, 3, 141, 0, 1, 119, 2, 115, 17, 67, 32, 0, 8, 0, 115, 1, 108, 21, 2,
-			32, 0, 101, 3, 141, 13, 0, 2, 115, 17, 67, 32, 3, 141, 124, 0, 4, 114, 3, 143, 0, 114, 8, 0, 7, 6, 97, 108, 0, 1,
-			109, 2, 110, 111, 3, 2, 35, 55, 0, 108, 121, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 37, 0, 2, 109, 105, 103, 3, 2, 126,
-			55, 0, 8, 2, 114, 3, 2, 133, 55, 0, 2, 105, 116, 121, 3, 6, 35, 55, 0, 100, 101, 2, 104, 121, 3, 6, 35, 55, 72, 124,
-			0, 103, 105, 97, 1, 21, 2, 32, 3, 6, 35, 55, 75, 13, 0, 4, 1, 122, 110, 111, 103, 3, 6, 121, 55, 0, 2, 105, 32, 0,
-			97, 110, 100, 1, 21, 2, 32, 3, 8, 13, 55, 119, 50, 72, 0, 4, 1, 10, 2, 105, 17, 66, 97, 116, 105, 3, 13, 55, 0, 1,
-			10, 2, 105, 17, 66, 101, 0, 1, 10, 2, 105, 115, 17, 67, 105, 99, 0, 1, 10, 2, 111, 117, 115, 32, 0, 1, 115, 2, 117, 116,
-			0, 1, 117, 113, 101, 0, 1, 118, 17, 65, 2, 101, 110, 0, 8, 112, 111, 2, 101, 115, 0, 97, 121, 1, 109, 3, 13, 55, 6, 141,
-			0, 105, 1, 10, 2, 115, 17, 67, 32, 3, 13, 55, 124, 0, 111, 1, 10, 2, 32, 3, 13, 55, 139, 0, 101, 105, 1, 107, 2, 100,
-			3, 13, 55, 140, 0, 4, 5, 3, 1, 99, 2, 102, 3, 35, 0, 5, 3, 1, 104, 2, 102, 0, 5, 3, 1, 104, 2, 118, 0, 4,
-			1, 29, 2, 101, 100, 3, 35, 55, 0, 1, 112, 2, 101, 116, 0, 1, 115, 2, 117, 116, 97, 0, 1, 116, 101, 114, 2, 105, 97, 0,
-			1, 118, 2, 105, 97, 0, 2, 116, 111, 0, 2, 117, 109, 32, 0, 8, 2, 97, 115, 116, 0, 8, 2, 98, 0, 8, 2, 98, 97, 110,
-			105, 0, 8, 2, 99, 0, 8, 2, 103, 0, 8, 2, 105, 0, 8, 2, 107, 0, 8, 2, 112, 0, 8, 2, 115, 0, 8, 2, 118, 0,
-			8, 2, 121, 0, 8, 99, 2, 101, 0, 108, 1, 102, 2, 97, 0, 108, 1, 102, 2, 105, 98, 0, 108, 1, 116, 2, 17, 65, 0, 108,
-			2, 101, 108, 0, 108, 2, 101, 114, 0, 108, 2, 111, 116, 114, 0, 108, 8, 2, 97, 0, 108, 8, 2, 101, 103, 0, 108, 8, 2, 105,
-			0, 108, 8, 2, 111, 0, 108, 8, 17, 67, 2, 111, 119, 0, 108, 111, 8, 2, 99, 97, 3, 35, 55, 13, 0, 101, 110, 8, 118, 2,
-			116, 3, 35, 55, 13, 50, 0, 97, 98, 97, 8, 3, 35, 55, 13, 71, 6, 35, 0, 122, 3, 35, 55, 47, 89, 0, 116, 105, 8, 3,
-			35, 55, 47, 124, 0, 112, 2, 104, 111, 3, 35, 55, 48, 0, 99, 111, 2, 104, 3, 35, 55, 49, 13, 0, 107, 97, 108, 105, 3, 35,
-			55, 49, 13, 55, 140, 0, 98, 101, 114, 8, 2, 116, 17, 65, 3, 35, 55, 71, 6, 131, 0, 103, 111, 8, 2, 114, 3, 35, 55, 81,
-			13, 0, 4, 102, 97, 8, 3, 35, 55, 83, 13, 0, 112, 104, 97, 0, 101, 112, 104, 3, 35, 55, 122, 83, 0, 4, 108, 101, 121, 3,
-			35, 55, 124, 0, 108, 121, 1, 116, 0, 101, 120, 97, 110, 8, 3, 35, 55, 124, 81, 88, 6, 120, 50, 0, 108, 121, 8, 3, 35, 55,
-			140, 0, 4, 108, 121, 1, 99, 97, 2, 32, 3, 55, 2, 37, 0, 108, 121, 1, 99, 105, 21, 21, 2, 32, 14, 128, 128, 132, 0, 4,
-			1, 10, 2, 32, 3, 118, 0, 1, 10, 2, 99, 121, 32, 0, 1, 10, 2, 100, 32, 0, 1, 10, 2, 100, 114, 121, 32, 0, 1, 10,
-			2, 116, 121, 32, 0, 1, 99, 105, 21, 2, 32, 14, 128, 128, 130, 0, 114, 121, 1, 10, 2, 32, 3, 118, 34, 2, 124, 0, 4, 1,
-			104, 2, 117, 99, 105, 110, 3, 119, 55, 0, 2, 111, 110, 103, 0, 5, 3, 8, 116, 115, 2, 97, 17, 67, 17, 67, 105, 0, 5, 8,
-			1, 10, 2, 32, 0, 8, 2, 21, 0, 8, 2, 105, 103, 0, 8, 99, 2, 97, 109, 105, 116, 0, 108, 1, 104, 2, 117, 99, 0, 108,
-			2, 101, 103, 114, 0, 108, 8, 2, 21, 0, 108, 8, 2, 105, 97, 110, 0, 108, 8, 2, 105, 116, 101, 114, 0, 108, 8, 2, 111, 116,
-			0, 108, 8, 2, 111, 119, 0, 108, 101, 2, 103, 101, 3, 119, 55, 122, 0, 101, 110, 99, 8, 118, 2, 105, 3, 119, 55, 122, 50, 91,
-			0, 105, 8, 2, 17, 66, 101, 3, 119, 55, 140, 0, 4, 1, 98, 2, 109, 3, 121, 0, 1, 99, 2, 102, 0, 1, 99, 2, 109, 0,
-			1, 104, 2, 102, 0, 1, 104, 2, 118, 0, 1, 112, 2, 109, 0, 1, 115, 112, 2, 109, 0, 1, 117, 113, 2, 109, 0, 8, 2, 109,
-			115, 0, 4, 1, 116, 115, 2, 105, 110, 3, 121, 55, 0, 1, 116, 117, 98, 2, 32, 0, 4, 1, 102, 2, 107, 3, 126, 55, 0, 1,
+		static unsigned char espeakdata_dicts14_data[94548] = {
+			0, 4, 0, 0, 180, 191, 0, 0, 13, 69, 65, 33, 67, 37, 48, 48, 34, 138, 89, 129, 0, 0, 14, 70, 56, 21, 83, 20, 19, 64,
+			50, 130, 88, 141, 65, 0, 0, 17, 71, 52, 16, 203, 20, 230, 137, 20, 65, 13, 49, 121, 50, 88, 37, 0, 0, 12, 68, 76, 81, 213,
+			20, 89, 121, 81, 58, 138, 0, 11, 200, 24, 244, 133, 76, 128, 68, 61, 112, 66, 10, 68, 21, 148, 137, 20, 141, 34, 37, 0, 0, 14,
+			69, 52, 147, 4, 21, 112, 65, 122, 55, 72, 57, 134, 0, 12, 68, 32, 20, 212, 100, 107, 138, 89, 47, 122, 0, 0, 11, 65, 4, 35,
+			55, 35, 0, 81, 108, 97, 32, 16, 65, 4, 119, 15, 58, 137, 55, 0, 81, 119, 104, 105, 108, 101, 32, 12, 69, 12, 243, 142, 61, 32,
+			49, 124, 50, 114, 0, 16, 70, 80, 244, 142, 4, 67, 192, 47, 132, 50, 6, 138, 72, 136, 0, 13, 69, 80, 129, 83, 37, 48, 87, 129,
+			89, 122, 89, 0, 19, 65, 4, 35, 49, 119, 11, 0, 85, 46, 32, 107, 32, 46, 32, 97, 32, 46, 32, 6, 65, 4, 138, 0, 14, 4,
+			193, 4, 34, 0, 11, 67, 84, 225, 15, 125, 50, 72, 6, 134, 0, 14, 70, 61, 85, 23, 5, 33, 0, 135, 47, 58, 114, 72, 0, 19,
+			71, 52, 21, 83, 60, 193, 85, 52, 65, 130, 89, 13, 6, 55, 129, 13, 65, 0, 16, 70, 12, 243, 150, 20, 229, 0, 49, 124, 50, 84,
+			13, 50, 47, 0, 13, 69, 5, 0, 67, 32, 80, 119, 48, 35, 76, 37, 0, 0, 0, 10, 68, 72, 81, 83, 20, 34, 129, 89, 0, 11,
+			68, 37, 48, 65, 12, 137, 89, 13, 49, 0, 13, 68, 9, 86, 15, 52, 71, 125, 49, 89, 13, 65, 0, 21, 72, 4, 229, 9, 80, 129,
+			83, 37, 48, 35, 50, 47, 6, 122, 87, 13, 89, 122, 89, 0, 0, 14, 69, 8, 84, 140, 36, 224, 71, 128, 55, 6, 122, 50, 0, 13,
+			69, 72, 83, 9, 76, 128, 34, 121, 55, 113, 91, 0, 11, 67, 13, 144, 78, 89, 137, 6, 35, 50, 0, 15, 69, 12, 243, 150, 20, 224,
+			49, 124, 50, 84, 6, 129, 50, 0, 23, 73, 12, 243, 80, 21, 66, 84, 36, 243, 128, 49, 124, 65, 48, 13, 47, 6, 122, 91, 13, 50,
+			0, 6, 65, 8, 71, 129, 0, 0, 16, 70, 4, 229, 9, 29, 80, 64, 35, 50, 47, 6, 129, 81, 13, 0, 15, 70, 88, 17, 213, 21,
+			53, 0, 84, 138, 81, 13, 89, 47, 0, 14, 70, 76, 227, 207, 44, 84, 128, 89, 50, 134, 49, 114, 0, 15, 70, 61, 85, 12, 36, 84,
+			128, 6, 135, 47, 55, 4, 145, 0, 15, 70, 36, 51, 206, 8, 20, 128, 137, 49, 124, 50, 71, 127, 0, 15, 70, 12, 21, 5, 72, 84,
+			128, 49, 138, 47, 114, 34, 114, 0, 0, 6, 195, 85, 64, 192, 17, 14, 67, 21, 64, 192, 121, 47, 6, 89, 121, 47, 34, 13, 0, 0,
+			10, 67, 12, 17, 133, 49, 35, 83, 138, 0, 0, 12, 69, 16, 145, 83, 20, 192, 72, 129, 88, 118, 0, 17, 70, 4, 224, 76, 101, 50,
+			83, 119, 50, 35, 55, 13, 89, 122, 89, 0, 6, 65, 12, 89, 129, 0, 0, 9, 198, 4, 193, 201, 21, 36, 192, 66, 16, 70, 76, 83,
+			148, 36, 83, 148, 89, 121, 50, 47, 141, 50, 47, 0, 0, 19, 71, 21, 132, 5, 73, 66, 83, 20, 121, 49, 89, 48, 114, 47, 6, 129,
+			88, 0, 14, 4, 95, 8, 1, 3, 107, 6, 35, 76, 4, 121, 49, 0, 0, 12, 68, 85, 48, 71, 20, 57, 134, 89, 113, 75, 0, 0,
+			13, 69, 53, 84, 141, 85, 32, 65, 148, 65, 114, 0, 105, 12, 69, 53, 84, 141, 85, 32, 65, 128, 65, 114, 0, 13, 69, 8, 19, 12,
+			61, 64, 71, 35, 55, 13, 47, 0, 6, 65, 16, 72, 129, 0, 0, 15, 70, 65, 81, 82, 36, 193, 64, 48, 57, 143, 34, 118, 0, 103,
+			14, 70, 72, 82, 78, 36, 225, 192, 34, 138, 50, 122, 68, 0, 17, 70, 36, 224, 197, 57, 49, 64, 122, 50, 89, 6, 121, 50, 89, 0,
+			36, 0, 16, 70, 64, 20, 211, 21, 32, 153, 48, 35, 89, 114, 71, 6, 137, 0, 19, 71, 36, 212, 18, 20, 50, 83, 20, 122, 65, 48,
+			34, 122, 89, 6, 137, 89, 0, 20, 71, 4, 35, 210, 36, 114, 78, 20, 35, 71, 13, 34, 6, 122, 75, 13, 50, 37, 0, 0, 12, 68,
+			29, 84, 149, 76, 81, 134, 34, 134, 88, 0, 12, 68, 24, 198, 66, 100, 83, 55, 137, 71, 137, 0, 0, 8, 197, 52, 81, 21, 76, 16,
+			66, 15, 69, 37, 64, 76, 36, 16, 122, 47, 6, 35, 55, 113, 13, 0, 18, 70, 5, 48, 133, 77, 67, 211, 35, 89, 71, 6, 121, 89,
+			47, 13, 89, 0, 21, 65, 20, 83, 132, 121, 81, 88, 6, 120, 65, 48, 118, 0, 83, 46, 32, 103, 32, 46, 32, 5, 65, 20, 129, 0,
+			0, 14, 70, 52, 147, 12, 36, 243, 128, 65, 122, 55, 141, 50, 0, 15, 70, 8, 148, 195, 84, 149, 0, 71, 122, 89, 49, 122, 47, 0,
+			0, 17, 70, 36, 225, 21, 77, 68, 153, 122, 50, 72, 125, 89, 47, 34, 122, 0, 0, 12, 68, 56, 147, 138, 4, 50, 122, 50, 75, 13,
+			0, 15, 70, 52, 85, 1, 64, 131, 210, 65, 121, 47, 13, 83, 132, 0, 13, 68, 4, 69, 76, 80, 35, 72, 125, 55, 47, 0, 135, 0,
+			15, 69, 16, 210, 84, 72, 144, 72, 13, 65, 129, 47, 34, 37, 0, 8, 197, 52, 86, 9, 12, 240, 65, 14, 69, 32, 21, 193, 36, 144,
+			107, 13, 58, 6, 137, 129, 0, 13, 69, 17, 84, 136, 4, 208, 72, 125, 34, 13, 65, 0, 13, 69, 72, 80, 129, 80, 80, 34, 129, 71,
+			138, 47, 0, 13, 69, 64, 148, 129, 80, 80, 48, 137, 34, 13, 47, 0, 14, 69, 52, 18, 143, 72, 16, 65, 119, 75, 133, 34, 13, 0,
+			14, 69, 44, 20, 129, 80, 80, 49, 13, 34, 126, 47, 37, 0, 13, 69, 4, 84, 129, 80, 80, 140, 34, 6, 138, 47, 0, 6, 65, 24,
+			121, 83, 0, 0, 17, 70, 65, 33, 84, 21, 133, 0, 48, 34, 129, 108, 121, 49, 89, 47, 0, 0, 17, 71, 5, 32, 200, 36, 32, 76,
+			16, 127, 76, 122, 71, 130, 55, 72, 0, 19, 67, 92, 147, 132, 58, 6, 137, 50, 72, 15, 6, 125, 48, 0, 81, 117, 112, 32, 23, 67,
+			92, 147, 132, 58, 6, 122, 50, 72, 15, 48, 6, 135, 114, 0, 81, 112, 111, 119, 101, 114, 32, 11, 67, 92, 147, 132, 58, 137, 50, 72,
+			0, 36, 0, 9, 67, 16, 243, 133, 72, 125, 50, 0, 18, 72, 64, 130, 76, 48, 148, 9, 56, 80, 83, 122, 55, 113, 48, 129, 50, 0,
+			9, 67, 80, 243, 133, 47, 136, 50, 0, 13, 68, 20, 208, 133, 16, 121, 65, 71, 6, 121, 72, 0, 0, 14, 69, 52, 243, 129, 12, 240,
+			65, 124, 50, 13, 49, 136, 0, 13, 69, 72, 17, 9, 76, 128, 34, 35, 72, 122, 91, 0, 13, 69, 24, 147, 137, 80, 80, 83, 137, 50,
+			137, 47, 0, 14, 69, 16, 148, 205, 4, 192, 72, 122, 88, 65, 13, 55, 0, 6, 65, 28, 75, 129, 0, 0, 14, 70, 64, 197, 77, 8,
+			84, 128, 48, 55, 125, 65, 114, 0, 0, 17, 70, 21, 97, 82, 100, 243, 133, 121, 84, 34, 122, 58, 125, 50, 0, 106, 16, 70, 21, 97,
+			82, 100, 243, 133, 121, 84, 34, 122, 58, 124, 50, 0, 15, 7, 20, 8, 5, 25, 39, 12, 12, 86, 138, 55, 0, 72, 32, 13, 67, 12,
+			19, 128, 2, 49, 35, 50, 0, 32, 9, 12, 16, 70, 88, 20, 197, 48, 147, 133, 84, 35, 89, 13, 55, 129, 50, 0, 10, 67, 80, 243,
+			128, 47, 125, 50, 0, 10, 11, 67, 76, 19, 128, 4, 89, 35, 50, 0, 9, 14, 4, 95, 54, 48, 15, 89, 6, 122, 49, 89, 47, 141,
+			0, 0, 0, 14, 69, 44, 19, 147, 5, 48, 49, 35, 50, 88, 13, 89, 0, 13, 69, 24, 82, 83, 81, 144, 83, 137, 89, 47, 37, 0,
+			6, 65, 32, 138, 76, 0, 0, 16, 70, 32, 245, 83, 80, 243, 128, 107, 57, 134, 89, 47, 13, 50, 0, 17, 70, 36, 226, 5, 72, 149,
+			0, 122, 50, 107, 6, 121, 34, 122, 47, 0, 14, 70, 13, 84, 2, 60, 20, 132, 49, 125, 71, 13, 72, 0, 9, 198, 4, 229, 9, 28,
+			83, 128, 65, 0, 17, 71, 52, 17, 5, 48, 82, 78, 20, 65, 35, 72, 13, 55, 113, 50, 0, 20, 71, 65, 33, 83, 20, 229, 12, 100,
+			48, 34, 121, 88, 13, 50, 47, 55, 122, 0, 32, 0, 11, 67, 4, 229, 9, 35, 50, 47, 137, 0, 103, 11, 68, 37, 33, 78, 20, 137,
+			34, 129, 50, 0, 12, 68, 80, 242, 217, 60, 47, 136, 49, 122, 136, 0, 10, 68, 60, 50, 18, 20, 136, 49, 114, 0, 10, 67, 36, 225,
+			25, 122, 50, 72, 37, 0, 8, 1, 35, 107, 35, 91, 0, 27, 0, 14, 65, 36, 2, 137, 35, 65, 0, 14, 42, 81, 97, 109, 32, 13,
+			65, 36, 2, 137, 119, 65, 0, 42, 81, 97, 109, 32, 9, 65, 36, 137, 0, 76, 32, 9, 42, 16, 70, 88, 84, 148, 36, 49, 83, 84,
+			128, 47, 122, 89, 129, 88, 0, 5, 65, 36, 137, 0, 0, 12, 67, 84, 229, 15, 4, 125, 50, 108, 117, 0, 103, 11, 67, 84, 229, 15,
+			4, 125, 50, 47, 117, 0, 17, 70, 37, 0, 78, 20, 208, 64, 122, 48, 119, 50, 6, 129, 65, 13, 0, 15, 70, 88, 147, 133, 100, 20,
+			132, 84, 122, 50, 57, 114, 72, 0, 14, 70, 76, 129, 80, 32, 84, 132, 91, 121, 48, 13, 72, 0, 16, 70, 16, 80, 146, 36, 81, 128,
+			72, 129, 71, 34, 6, 129, 83, 0, 13, 1, 37, 48, 148, 89, 6, 121, 50, 47, 0, 105, 27, 12, 1, 37, 48, 114, 89, 6, 121, 50,
+			47, 0, 27, 0, 11, 67, 37, 68, 192, 122, 47, 89, 0, 72, 34, 13, 70, 12, 129, 83, 32, 148, 133, 76, 121, 91, 114, 0, 8, 67,
+			100, 84, 128, 57, 114, 0, 9, 1, 38, 10, 35, 50, 72, 0, 76, 0, 16, 70, 60, 48, 213, 64, 145, 82, 124, 49, 57, 134, 48, 137,
+			114, 0, 0, 24, 73, 92, 244, 139, 77, 64, 84, 36, 243, 128, 58, 6, 148, 49, 89, 47, 4, 138, 91, 13, 50, 0, 105, 23, 73, 92,
+			244, 139, 77, 64, 84, 36, 243, 128, 58, 6, 128, 49, 89, 47, 4, 138, 91, 13, 50, 0, 13, 69, 61, 33, 5, 4, 192, 132, 72, 6,
+			141, 55, 0, 16, 70, 52, 16, 200, 37, 51, 79, 65, 119, 76, 122, 88, 65, 136, 0, 18, 8, 4, 195, 169, 20, 5, 14, 20, 5, 72,
+			138, 47, 6, 124, 50, 47, 0, 23, 73, 12, 243, 148, 72, 20, 20, 36, 243, 128, 49, 13, 50, 47, 34, 6, 35, 48, 91, 13, 50, 0,
+			6, 65, 40, 75, 138, 0, 0, 15, 70, 80, 129, 82, 21, 48, 64, 47, 13, 34, 129, 88, 13, 0, 16, 70, 84, 229, 207, 84, 225, 0,
+			125, 50, 58, 6, 135, 50, 72, 0, 9, 198, 32, 245, 197, 88, 84, 128, 66, 0, 11, 67, 76, 148, 128, 89, 4, 148, 0, 105, 9, 10,
+			67, 76, 148, 128, 89, 4, 128, 0, 9, 11, 67, 16, 243, 148, 72, 136, 50, 47, 0, 9, 15, 70, 8, 245, 84, 37, 21, 69, 71, 134,
+			47, 6, 129, 49, 0, 17, 71, 4, 116, 133, 77, 50, 86, 20, 119, 81, 34, 121, 89, 122, 84, 0, 13, 1, 42, 35, 89, 47, 13, 34,
+			122, 89, 49, 0, 27, 0, 12, 68, 56, 17, 9, 4, 50, 126, 72, 57, 13, 0, 9, 1, 43, 48, 55, 125, 89, 0, 27, 0, 15, 70,
+			36, 195, 9, 56, 242, 83, 122, 55, 13, 50, 6, 139, 0, 12, 69, 76, 145, 206, 21, 32, 89, 137, 50, 114, 0, 16, 70, 36, 224, 207,
+			52, 147, 135, 122, 50, 49, 125, 65, 122, 68, 0, 16, 69, 21, 133, 18, 20, 208, 121, 49, 89, 47, 34, 6, 129, 65, 0, 6, 65, 44,
+			49, 138, 0, 0, 15, 70, 76, 84, 135, 20, 19, 148, 89, 127, 75, 13, 50, 47, 0, 16, 70, 61, 4, 15, 56, 83, 148, 13, 48, 136,
+			50, 13, 50, 47, 0, 14, 70, 16, 145, 72, 5, 33, 0, 72, 137, 107, 127, 72, 0, 0, 19, 4, 9, 20, 39, 19, 122, 47, 89, 107,
+			35, 72, 0, 78, 81, 104, 97, 100, 32, 16, 70, 72, 83, 1, 80, 149, 133, 34, 121, 55, 13, 47, 122, 84, 0, 17, 70, 65, 83, 129,
+			80, 149, 133, 48, 57, 134, 50, 13, 47, 122, 84, 0, 15, 70, 56, 244, 197, 16, 149, 133, 50, 136, 88, 72, 137, 84, 0, 17, 71, 20,
+			229, 15, 85, 32, 71, 20, 124, 50, 108, 117, 34, 126, 90, 0, 10, 67, 5, 67, 208, 119, 47, 124, 48, 0, 0, 24, 67, 25, 35, 205,
+			2, 83, 34, 125, 65, 15, 58, 6, 122, 76, 0, 8, 81, 119, 104, 105, 99, 104, 32, 23, 67, 25, 35, 205, 2, 83, 34, 125, 65, 15,
+			58, 6, 140, 0, 8, 81, 119, 104, 101, 114, 101, 32, 12, 67, 25, 35, 205, 83, 34, 125, 65, 0, 103, 72, 11, 67, 25, 35, 205, 83,
+			34, 124, 65, 0, 72, 11, 68, 56, 21, 82, 84, 50, 135, 34, 134, 0, 9, 198, 20, 229, 18, 4, 147, 0, 65, 10, 67, 4, 229, 5,
+			35, 50, 47, 129, 0, 9, 1, 47, 89, 55, 35, 91, 0, 27, 0, 6, 65, 48, 121, 55, 0, 0, 14, 70, 80, 129, 82, 21, 49, 64,
+			47, 13, 34, 129, 88, 0, 9, 198, 12, 130, 78, 21, 49, 64, 66, 9, 198, 77, 81, 134, 85, 49, 64, 66, 0, 19, 71, 80, 20, 203,
+			24, 244, 131, 20, 47, 6, 35, 89, 49, 83, 4, 133, 89, 0, 19, 71, 36, 212, 5, 16, 19, 131, 20, 122, 65, 48, 6, 129, 72, 13,
+			50, 89, 0, 0, 12, 68, 56, 17, 10, 4, 50, 126, 72, 57, 13, 0, 10, 67, 28, 20, 153, 81, 35, 34, 37, 0, 12, 68, 72, 83,
+			9, 12, 34, 121, 55, 122, 49, 0, 13, 68, 60, 20, 197, 76, 136, 6, 138, 89, 129, 88, 0, 15, 70, 12, 130, 70, 25, 35, 206, 91,
+			122, 83, 34, 124, 50, 0, 0, 22, 73, 92, 129, 69, 48, 32, 82, 72, 245, 192, 58, 6, 129, 55, 10, 71, 4, 35, 34, 136, 0, 13,
+			69, 5, 98, 65, 73, 144, 138, 84, 141, 34, 37, 0, 6, 65, 52, 121, 65, 0, 0, 15, 70, 65, 33, 67, 37, 49, 64, 48, 34, 113,
+			89, 137, 89, 0, 0, 10, 199, 56, 240, 212, 85, 35, 129, 48, 66, 0, 11, 68, 100, 17, 83, 84, 57, 138, 89, 134, 0, 21, 72, 81,
+			32, 74, 20, 53, 15, 73, 144, 47, 34, 13, 75, 121, 49, 47, 13, 34, 122, 0, 12, 68, 77, 82, 84, 20, 89, 58, 129, 47, 0, 10,
+			0, 15, 69, 8, 84, 201, 16, 80, 71, 122, 89, 137, 72, 0, 74, 12, 14, 69, 32, 80, 193, 80, 80, 107, 121, 49, 13, 47, 138, 0,
+			11, 67, 49, 99, 214, 55, 14, 84, 124, 84, 0, 22, 73, 72, 84, 197, 73, 96, 84, 36, 243, 128, 34, 121, 88, 114, 84, 6, 138, 91,
+			13, 50, 0, 15, 69, 24, 81, 15, 72, 16, 83, 113, 72, 6, 133, 34, 13, 0, 23, 73, 16, 80, 204, 5, 32, 84, 36, 243, 128, 72,
+			121, 49, 55, 13, 6, 34, 138, 91, 13, 50, 0, 11, 5, 95, 48, 1, 14, 4, 13, 50, 0, 135, 6, 65, 56, 121, 50, 0, 0, 10,
+			67, 36, 225, 15, 122, 50, 72, 136, 0, 0, 20, 71, 88, 145, 201, 48, 19, 148, 20, 84, 122, 75, 113, 55, 6, 35, 50, 47, 37, 0,
+			9, 198, 76, 83, 73, 80, 243, 133, 65, 19, 71, 52, 20, 137, 41, 80, 78, 4, 65, 35, 34, 113, 58, 6, 126, 50, 13, 0, 17, 71,
+			21, 98, 76, 16, 241, 82, 76, 129, 84, 118, 72, 134, 114, 88, 0, 16, 70, 16, 240, 212, 72, 147, 133, 72, 124, 49, 47, 34, 113, 50,
+			0, 0, 13, 68, 72, 80, 133, 48, 34, 113, 71, 121, 55, 0, 36, 18, 72, 8, 192, 78, 12, 208, 78, 28, 80, 71, 55, 13, 65, 124,
+			50, 90, 0, 18, 72, 4, 195, 5, 28, 144, 78, 12, 80, 119, 55, 129, 75, 13, 50, 89, 0, 0, 14, 69, 32, 82, 193, 80, 80, 107,
+			121, 49, 13, 47, 138, 0, 13, 69, 8, 160, 82, 56, 80, 71, 57, 127, 50, 13, 0, 13, 69, 16, 19, 12, 5, 48, 72, 35, 55, 13,
+			89, 0, 5, 65, 60, 136, 0, 0, 14, 6, 19, 8, 5, 39, 12, 12, 91, 129, 55, 0, 72, 32, 10, 67, 81, 112, 83, 47, 58, 124,
+			88, 0, 13, 69, 61, 0, 81, 84, 80, 136, 48, 6, 138, 49, 0, 12, 1, 61, 9, 129, 49, 58, 118, 88, 9, 0, 27, 0, 16, 70,
+			52, 17, 5, 48, 147, 133, 65, 35, 72, 13, 55, 113, 50, 0, 18, 70, 16, 144, 83, 64, 244, 129, 72, 137, 6, 35, 89, 48, 13, 34,
+			13, 0, 0, 12, 4, 9, 20, 39, 4, 2, 122, 47, 13, 72, 0, 0, 12, 201, 16, 148, 212, 72, 144, 149, 80, 244, 128, 66, 14, 69,
+			16, 84, 195, 73, 144, 72, 113, 89, 49, 34, 138, 0, 9, 1, 64, 10, 35, 47, 10, 0, 76, 6, 65, 64, 48, 129, 0, 0, 15, 6,
+			20, 8, 1, 20, 39, 4, 2, 86, 35, 47, 13, 72, 0, 15, 70, 80, 129, 82, 21, 67, 192, 4, 86, 140, 6, 47, 134, 0, 9, 198,
+			65, 33, 83, 20, 229, 0, 36, 17, 70, 65, 33, 83, 20, 229, 0, 48, 34, 121, 88, 13, 50, 47, 0, 9, 15, 70, 61, 3, 211, 77,
+			83, 64, 13, 48, 124, 89, 13, 65, 0, 23, 74, 12, 243, 135, 72, 84, 211, 36, 243, 129, 48, 49, 13, 50, 81, 34, 121, 91, 13, 50,
+			118, 0, 0, 10, 67, 8, 193, 72, 71, 55, 121, 107, 0, 0, 0, 13, 69, 76, 145, 206, 85, 0, 89, 137, 50, 125, 48, 0, 18, 70,
+			4, 224, 76, 101, 49, 83, 35, 50, 13, 55, 137, 88, 123, 88, 0, 36, 17, 70, 4, 224, 76, 101, 49, 83, 119, 50, 35, 55, 13, 89,
+			129, 88, 0, 7, 65, 68, 49, 57, 134, 0, 0, 21, 67, 80, 130, 83, 86, 6, 122, 89, 58, 4, 125, 50, 0, 103, 33, 81, 111, 110,
+			101, 32, 20, 67, 80, 130, 83, 86, 6, 122, 89, 58, 4, 124, 50, 0, 33, 81, 111, 110, 101, 32, 12, 67, 80, 130, 83, 86, 122, 89,
+			0, 76, 34, 33, 17, 70, 52, 243, 148, 4, 224, 64, 65, 124, 50, 47, 6, 35, 50, 13, 0, 15, 70, 64, 148, 129, 56, 128, 64, 48,
+			13, 34, 126, 50, 13, 0, 15, 70, 64, 17, 197, 4, 229, 0, 48, 35, 75, 13, 50, 47, 0, 16, 70, 12, 130, 77, 21, 32, 64, 49,
+			137, 65, 6, 141, 34, 13, 0, 16, 70, 4, 64, 77, 4, 229, 0, 35, 72, 13, 65, 13, 50, 47, 0, 0, 10, 67, 84, 224, 64, 57,
+			134, 50, 13, 0, 15, 70, 81, 33, 65, 80, 148, 197, 47, 34, 129, 47, 122, 88, 0, 0, 11, 67, 80, 129, 77, 4, 86, 121, 65, 0,
+			9, 26, 68, 76, 19, 148, 4, 89, 6, 35, 50, 47, 13, 15, 49, 55, 6, 130, 88, 0, 81, 99, 108, 97, 117, 115, 32, 11, 68, 61,
+			48, 193, 72, 124, 89, 49, 114, 0, 11, 68, 17, 80, 78, 20, 72, 58, 138, 50, 0, 10, 68, 93, 34, 84, 32, 34, 137, 86, 0, 13,
+			68, 76, 19, 15, 56, 89, 119, 55, 124, 50, 0, 103, 12, 68, 64, 83, 137, 76, 48, 129, 50, 113, 89, 0, 17, 70, 20, 193, 67, 81,
+			35, 206, 113, 55, 121, 49, 47, 34, 124, 50, 0, 0, 10, 67, 80, 129, 78, 86, 121, 50, 0, 32, 13, 69, 28, 144, 130, 60, 224, 81,
+			122, 71, 13, 50, 0, 5, 65, 72, 127, 0, 0, 14, 70, 80, 80, 82, 28, 20, 192, 47, 142, 81, 35, 89, 0, 15, 70, 52, 246, 137,
+			48, 192, 64, 65, 13, 88, 122, 55, 13, 0, 16, 70, 49, 83, 129, 80, 144, 192, 55, 134, 50, 13, 47, 122, 49, 0, 17, 70, 48, 20,
+			193, 28, 224, 64, 55, 13, 88, 126, 50, 57, 13, 0, 103, 16, 70, 48, 20, 193, 28, 224, 64, 55, 13, 88, 35, 50, 57, 13, 0, 0,
+			19, 67, 80, 129, 64, 86, 115, 15, 58, 137, 55, 0, 81, 119, 104, 105, 108, 101, 32, 10, 67, 80, 129, 64, 86, 115, 0, 9, 34, 17,
+			70, 25, 84, 197, 48, 17, 197, 83, 57, 134, 88, 13, 55, 126, 90, 0, 0, 0, 14, 69, 9, 32, 90, 36, 192, 71, 34, 119, 88, 122,
+			55, 0, 13, 69, 77, 2, 78, 4, 192, 89, 48, 137, 50, 118, 0, 12, 69, 76, 130, 86, 21, 32, 91, 122, 84, 114, 0, 13, 69, 65,
+			149, 8, 60, 224, 48, 137, 87, 13, 50, 0, 14, 69, 8, 243, 130, 60, 224, 71, 124, 50, 71, 124, 50, 0, 16, 8, 95, 2, 18, 1,
+			9, 12, 12, 5, 71, 34, 6, 138, 55, 0, 0, 9, 198, 85, 4, 212, 5, 37, 0, 65, 13, 68, 77, 0, 83, 52, 89, 48, 35, 89,
+			13, 65, 0, 17, 71, 77, 0, 71, 32, 85, 20, 36, 89, 48, 119, 81, 121, 47, 37, 0, 9, 198, 76, 20, 132, 36, 225, 64, 66, 9,
+			198, 72, 245, 84, 36, 225, 64, 66, 15, 70, 72, 80, 193, 48, 193, 68, 34, 113, 49, 130, 55, 72, 0, 9, 198, 53, 83, 132, 4, 225,
+			64, 66, 16, 70, 36, 225, 9, 12, 84, 192, 122, 50, 72, 113, 89, 129, 88, 0, 0, 9, 67, 48, 240, 200, 55, 124, 101, 0, 9, 67,
+			28, 145, 192, 81, 122, 81, 0, 19, 71, 12, 243, 80, 21, 66, 78, 28, 49, 13, 65, 48, 6, 129, 47, 122, 68, 0, 9, 67, 12, 16,
+			200, 49, 35, 91, 0, 0, 9, 67, 80, 129, 69, 4, 86, 129, 0, 10, 67, 76, 17, 193, 89, 126, 81, 13, 0, 11, 200, 4, 229, 9,
+			12, 132, 137, 77, 64, 65, 0, 14, 69, 8, 82, 82, 85, 64, 71, 138, 34, 6, 134, 47, 0, 8, 197, 85, 4, 143, 61, 64, 66, 14,
+			69, 81, 37, 69, 77, 64, 47, 34, 134, 13, 89, 47, 0, 6, 65, 80, 47, 129, 0, 0, 15, 70, 25, 32, 71, 36, 193, 64, 83, 34,
+			35, 75, 118, 0, 103, 14, 70, 52, 21, 20, 32, 85, 192, 65, 35, 87, 57, 134, 0, 17, 70, 48, 20, 193, 28, 225, 64, 108, 97, 115,
+			97, 103, 110, 97, 0, 29, 5, 194, 4, 48, 17, 0, 9, 67, 76, 146, 200, 89, 129, 49, 0, 13, 70, 12, 21, 1, 73, 34, 0, 49,
+			13, 47, 127, 0, 6, 195, 12, 147, 192, 17, 0, 16, 70, 69, 81, 83, 80, 147, 206, 49, 58, 121, 89, 76, 13, 50, 0, 13, 68, 44,
+			80, 129, 8, 49, 13, 71, 126, 71, 0, 103, 12, 68, 44, 80, 129, 8, 49, 13, 71, 35, 71, 0, 11, 68, 20, 208, 133, 72, 121, 65,
+			71, 114, 0, 0, 14, 69, 8, 245, 212, 36, 80, 71, 4, 136, 47, 6, 137, 0, 6, 65, 84, 57, 134, 0, 0, 9, 66, 85, 0, 4,
+			125, 48, 0, 12, 10, 67, 77, 147, 131, 89, 122, 68, 49, 0, 16, 70, 16, 83, 9, 52, 149, 0, 72, 113, 55, 122, 65, 122, 47, 0,
+			16, 70, 12, 195, 211, 20, 198, 64, 49, 55, 136, 89, 55, 122, 0, 32, 0, 10, 67, 84, 226, 64, 57, 134, 50, 37, 0, 28, 75, 77,
+			84, 5, 72, 147, 148, 20, 225, 5, 57, 64, 89, 134, 48, 114, 122, 50, 47, 6, 121, 50, 72, 13, 50, 47, 0, 0, 22, 7, 20, 8,
+			5, 25, 39, 22, 5, 86, 138, 84, 107, 35, 72, 0, 78, 81, 104, 97, 100, 32, 15, 7, 20, 8, 5, 25, 39, 22, 5, 86, 138, 84,
+			0, 72, 35, 13, 68, 17, 80, 78, 4, 72, 58, 6, 126, 50, 13, 0, 12, 68, 52, 243, 148, 20, 65, 124, 50, 108, 37, 0, 11, 67,
+			84, 229, 25, 125, 50, 47, 6, 137, 0, 0, 12, 69, 72, 81, 199, 36, 80, 34, 121, 75, 37, 0, 14, 69, 76, 195, 214, 4, 176, 89,
+			55, 136, 84, 35, 49, 0, 14, 69, 69, 81, 66, 20, 48, 49, 58, 113, 71, 121, 49, 0, 13, 69, 80, 245, 67, 32, 80, 47, 134, 91,
+			138, 0, 9, 14, 69, 76, 84, 193, 52, 80, 89, 121, 89, 119, 65, 37, 0, 9, 67, 4, 96, 82, 119, 83, 127, 0, 6, 65, 88, 84,
+			129, 0, 0, 21, 66, 5, 48, 4, 35, 88, 122, 47, 4, 122, 88, 0, 76, 82, 105, 116, 32, 105, 115, 32, 16, 66, 5, 48, 4, 35,
+			88, 4, 122, 88, 0, 8, 81, 105, 115, 32, 9, 66, 5, 48, 2, 35, 88, 0, 9, 12, 67, 36, 229, 15, 4, 122, 50, 108, 117, 0,
+			103, 11, 67, 36, 229, 15, 4, 122, 50, 47, 117, 0, 9, 198, 65, 35, 202, 20, 53, 0, 36, 17, 70, 65, 35, 202, 20, 53, 0, 48,
+			34, 124, 75, 121, 49, 47, 0, 10, 0, 23, 73, 36, 228, 212, 4, 195, 1, 80, 147, 206, 122, 50, 89, 47, 13, 55, 6, 138, 91, 13,
+			50, 0, 17, 71, 12, 128, 77, 60, 210, 76, 20, 49, 35, 65, 13, 65, 137, 55, 0, 0, 11, 4, 9, 39, 12, 12, 137, 55, 0, 72,
+			32, 12, 68, 88, 147, 153, 48, 84, 137, 50, 113, 55, 0, 12, 200, 77, 64, 76, 4, 115, 73, 80, 80, 103, 66, 20, 72, 12, 243, 77,
+			84, 226, 81, 84, 80, 49, 13, 65, 57, 134, 50, 113, 49, 138, 0, 13, 68, 12, 16, 129, 48, 49, 119, 71, 126, 55, 0, 103, 12, 68,
+			12, 16, 129, 48, 49, 119, 71, 35, 55, 0, 0, 13, 69, 52, 20, 137, 4, 224, 65, 35, 34, 141, 50, 0, 14, 69, 76, 145, 206, 4,
+			192, 89, 122, 81, 50, 13, 55, 0, 22, 73, 65, 84, 144, 61, 37, 5, 16, 198, 64, 48, 114, 48, 6, 133, 47, 113, 72, 55, 122, 0,
+			13, 69, 64, 85, 9, 80, 80, 48, 13, 47, 129, 47, 0, 12, 1, 92, 71, 35, 49, 89, 55, 35, 91, 0, 27, 11, 65, 92, 72, 6,
+			125, 71, 118, 57, 134, 0, 0, 14, 70, 32, 145, 5, 61, 85, 0, 107, 137, 72, 135, 47, 0, 0, 20, 67, 80, 243, 192, 47, 6, 134,
+			15, 65, 4, 125, 76, 0, 81, 109, 117, 99, 104, 32, 21, 67, 80, 243, 192, 47, 6, 134, 15, 65, 4, 121, 50, 37, 0, 81, 109, 97,
+			110, 121, 32, 19, 67, 80, 243, 192, 47, 6, 134, 15, 83, 4, 57, 134, 0, 81, 102, 101, 119, 32, 15, 70, 5, 1, 78, 56, 147, 133,
+			35, 48, 13, 50, 137, 50, 0, 9, 67, 4, 224, 76, 138, 50, 118, 0, 15, 4, 95, 55, 48, 15, 89, 6, 121, 84, 13, 50, 47, 141,
+			0, 0, 12, 4, 23, 5, 39, 4, 58, 129, 72, 0, 72, 35, 19, 72, 92, 147, 4, 21, 35, 133, 77, 48, 58, 122, 55, 72, 114, 50,
+			121, 89, 0, 13, 68, 84, 225, 133, 16, 125, 50, 83, 6, 121, 72, 0, 17, 70, 16, 144, 77, 21, 65, 82, 72, 137, 6, 35, 65, 113,
+			47, 114, 0, 0, 13, 69, 72, 80, 76, 49, 144, 34, 141, 55, 122, 0, 32, 7, 65, 96, 121, 49, 89, 0, 0, 16, 70, 52, 20, 137,
+			49, 147, 128, 65, 35, 34, 13, 55, 113, 50, 0, 10, 67, 4, 225, 87, 119, 50, 134, 0, 103, 10, 67, 4, 225, 87, 119, 50, 57, 134,
+			0, 0, 16, 70, 76, 130, 73, 80, 18, 197, 91, 129, 47, 6, 126, 49, 152, 0, 16, 70, 65, 32, 67, 80, 148, 197, 48, 34, 35, 49,
+			47, 113, 89, 0, 8, 67, 4, 65, 0, 35, 72, 0, 0, 11, 68, 92, 19, 12, 100, 58, 124, 55, 37, 0, 12, 68, 17, 32, 67, 60,
+			72, 34, 138, 49, 136, 0, 21, 72, 81, 32, 78, 77, 3, 210, 81, 48, 47, 34, 35, 50, 89, 48, 133, 47, 89, 0, 34, 10, 67, 60,
+			33, 89, 136, 71, 6, 138, 0, 9, 67, 16, 244, 197, 72, 136, 89, 0, 0, 12, 67, 16, 245, 206, 4, 72, 135, 50, 0, 9, 12, 0,
+			9, 198, 56, 21, 1, 76, 128, 64, 66, 10, 67, 4, 211, 211, 138, 65, 124, 89, 0, 16, 70, 64, 84, 147, 60, 224, 64, 48, 128, 89,
+			6, 136, 50, 13, 0, 16, 70, 8, 83, 9, 76, 128, 64, 71, 13, 55, 6, 129, 91, 13, 0, 0, 18, 70, 77, 83, 1, 92, 84, 201,
+			89, 134, 55, 119, 58, 6, 138, 89, 37, 0, 15, 70, 56, 80, 203, 48, 16, 197, 50, 121, 49, 55, 13, 89, 0, 11, 67, 48, 244, 192,
+			4, 55, 124, 89, 0, 9, 0, 13, 68, 84, 225, 15, 76, 125, 50, 72, 6, 134, 88, 0, 0, 12, 69, 72, 16, 200, 20, 192, 34, 138,
+			76, 118, 0, 13, 69, 76, 19, 13, 60, 224, 89, 35, 65, 13, 50, 0, 7, 65, 104, 88, 129, 0, 103, 7, 65, 104, 88, 121, 72, 0,
+			0, 18, 66, 5, 64, 119, 47, 10, 58, 6, 122, 55, 0, 81, 119, 105, 108, 108, 32, 19, 66, 5, 64, 119, 47, 10, 58, 125, 50, 89,
+			0, 106, 81, 111, 110, 99, 101, 32, 18, 66, 5, 64, 119, 47, 10, 58, 124, 50, 89, 0, 81, 111, 110, 99, 101, 32, 13, 66, 5, 64,
+			2, 35, 47, 13, 0, 34, 81, 97, 32, 10, 66, 5, 64, 35, 47, 0, 34, 9, 72, 16, 70, 9, 34, 65, 56, 224, 64, 71, 34, 122,
+			6, 35, 50, 13, 0, 16, 70, 64, 245, 15, 52, 16, 192, 48, 13, 47, 136, 65, 13, 49, 0, 17, 70, 64, 243, 9, 80, 144, 192, 48,
+			124, 55, 13, 47, 122, 49, 0, 10, 0, 17, 67, 92, 20, 192, 58, 2, 125, 88, 86, 115, 0, 81, 116, 104, 101, 32, 14, 67, 92, 20,
+			192, 58, 2, 125, 88, 119, 0, 81, 97, 32, 13, 67, 92, 20, 192, 2, 58, 125, 88, 0, 103, 35, 9, 12, 67, 92, 20, 192, 2, 58,
+			124, 88, 0, 35, 9, 9, 67, 80, 133, 64, 87, 147, 0, 105, 8, 67, 80, 133, 64, 87, 128, 0, 9, 67, 21, 84, 128, 57, 143, 0,
+			9, 0, 12, 201, 40, 242, 1, 56, 225, 83, 9, 84, 135, 66, 0, 13, 69, 44, 145, 82, 4, 224, 49, 141, 34, 13, 50, 0, 14, 69,
+			80, 19, 5, 57, 64, 47, 35, 55, 13, 50, 47, 0, 12, 69, 76, 244, 130, 21, 64, 89, 132, 71, 138, 0, 0, 16, 70, 72, 19, 69,
+			76, 84, 192, 34, 35, 65, 13, 89, 129, 88, 0, 14, 70, 80, 129, 82, 52, 244, 192, 87, 128, 65, 13, 89, 0, 9, 198, 61, 85, 12,
+			36, 225, 64, 65, 9, 198, 9, 34, 71, 4, 65, 64, 66, 14, 70, 5, 3, 211, 80, 193, 64, 119, 48, 124, 89, 118, 0, 16, 70, 4,
+			225, 77, 60, 225, 64, 119, 50, 121, 65, 13, 50, 37, 0, 10, 67, 4, 211, 203, 119, 65, 124, 49, 0, 0, 10, 199, 84, 225, 5, 72,
+			194, 78, 28, 65, 8, 67, 16, 245, 192, 72, 135, 0, 0, 12, 68, 64, 147, 15, 80, 48, 137, 55, 13, 47, 0, 19, 72, 4, 69, 133,
+			73, 66, 83, 21, 32, 35, 72, 84, 114, 47, 137, 88, 114, 0, 0, 15, 69, 65, 84, 137, 77, 64, 48, 57, 134, 44, 122, 89, 47, 0,
+			14, 69, 4, 65, 9, 13, 64, 35, 72, 122, 49, 47, 0, 10, 0, 14, 70, 52, 148, 211, 36, 193, 64, 65, 122, 89, 118, 0, 103, 14,
+			70, 56, 85, 137, 48, 193, 64, 50, 121, 84, 122, 55, 0, 15, 70, 21, 66, 69, 56, 225, 64, 121, 47, 122, 6, 121, 50, 0, 13, 70,
+			12, 129, 65, 16, 193, 64, 76, 129, 72, 118, 0, 0, 11, 67, 32, 245, 192, 4, 107, 135, 0, 12, 10, 12, 67, 4, 230, 64, 4, 121,
+			50, 37, 0, 34, 9, 9, 67, 80, 134, 64, 4, 86, 137, 0, 9, 198, 12, 19, 3, 85, 69, 1, 66, 16, 70, 16, 17, 197, 56, 128,
+			77, 72, 35, 81, 13, 50, 13, 65, 0, 0, 10, 67, 80, 129, 89, 86, 138, 0, 72, 32, 0, 18, 4, 9, 39, 22, 5, 137, 84, 107,
+			35, 72, 0, 78, 81, 104, 97, 100, 32, 11, 4, 9, 39, 22, 5, 137, 84, 0, 72, 35, 13, 69, 80, 243, 129, 28, 80, 47, 125, 50,
+			122, 75, 0, 13, 69, 76, 242, 82, 20, 80, 89, 58, 126, 34, 138, 0, 14, 69, 64, 20, 212, 73, 144, 48, 138, 89, 47, 34, 37, 0,
+			0, 16, 70, 81, 34, 80, 60, 194, 64, 47, 34, 122, 48, 13, 55, 37, 0, 15, 70, 5, 85, 15, 65, 54, 64, 130, 108, 124, 48, 89,
+			37, 0, 0, 17, 67, 80, 128, 84, 2, 86, 35, 47, 86, 115, 0, 81, 116, 104, 101, 32, 20, 67, 80, 128, 84, 86, 6, 35, 47, 58,
+			4, 125, 50, 0, 103, 81, 111, 110, 101, 32, 19, 67, 80, 128, 84, 86, 6, 35, 47, 58, 4, 124, 50, 0, 81, 111, 110, 101, 32, 17,
+			67, 80, 128, 84, 4, 86, 119, 47, 122, 47, 0, 33, 81, 105, 116, 32, 17, 67, 80, 128, 84, 4, 86, 35, 47, 13, 50, 0, 34, 81,
+			97, 110, 32, 15, 67, 80, 128, 84, 4, 86, 35, 47, 13, 0, 34, 81, 97, 32, 13, 67, 80, 128, 84, 86, 35, 47, 0, 72, 34, 12,
+			33, 17, 71, 72, 84, 197, 73, 99, 201, 72, 34, 121, 88, 114, 84, 58, 127, 0, 18, 71, 20, 229, 133, 48, 244, 5, 76, 121, 50, 84,
+			13, 55, 136, 48, 89, 0, 0, 14, 7, 20, 8, 5, 25, 39, 18, 5, 2, 86, 138, 114, 0, 20, 72, 64, 84, 147, 21, 2, 15, 56,
+			80, 48, 114, 89, 6, 121, 83, 13, 50, 37, 0, 13, 70, 12, 18, 83, 20, 19, 0, 49, 35, 91, 118, 0, 11, 68, 77, 81, 68, 20,
+			89, 58, 138, 72, 0, 16, 70, 76, 243, 21, 80, 147, 206, 89, 13, 55, 134, 91, 13, 50, 0, 12, 68, 76, 147, 149, 76, 89, 137, 50,
+			13, 89, 0, 20, 72, 48, 149, 5, 72, 21, 21, 72, 80, 55, 122, 47, 114, 34, 13, 76, 114, 0, 103, 18, 72, 48, 149, 5, 72, 21,
+			21, 72, 80, 55, 122, 47, 34, 123, 76, 114, 0, 11, 68, 8, 144, 140, 20, 71, 137, 71, 118, 0, 0, 14, 69, 56, 144, 207, 48, 16,
+			50, 122, 49, 13, 55, 13, 0, 17, 70, 12, 243, 131, 21, 37, 15, 49, 13, 50, 76, 6, 140, 47, 136, 0, 15, 70, 12, 21, 8, 60,
+			194, 67, 49, 35, 87, 55, 122, 49, 0, 0, 18, 70, 4, 196, 133, 4, 70, 64, 130, 55, 34, 121, 72, 37, 0, 74, 32, 12, 10, 67,
+			52, 83, 215, 65, 37, 6, 135, 0, 16, 70, 12, 244, 143, 56, 85, 0, 49, 124, 34, 13, 50, 121, 47, 0, 14, 70, 8, 245, 81, 84,
+			85, 0, 71, 134, 49, 6, 138, 0, 7, 66, 5, 80, 4, 136, 0, 0, 20, 71, 48, 245, 73, 76, 144, 78, 4, 55, 134, 4, 129, 88,
+			129, 6, 35, 50, 13, 0, 17, 71, 80, 147, 69, 80, 16, 140, 20, 47, 137, 65, 47, 138, 71, 118, 0, 20, 71, 76, 83, 73, 12, 243,
+			15, 56, 89, 121, 65, 122, 49, 6, 136, 55, 13, 50, 0, 17, 71, 12, 128, 82, 48, 21, 1, 56, 91, 127, 55, 13, 47, 13, 50, 0,
+			0, 12, 68, 72, 16, 137, 16, 34, 138, 71, 122, 72, 0, 20, 72, 64, 82, 143, 72, 21, 9, 88, 80, 48, 13, 75, 124, 34, 13, 47,
+			122, 84, 0, 13, 68, 52, 241, 5, 52, 65, 136, 72, 13, 65, 0, 103, 12, 68, 52, 241, 5, 52, 65, 136, 72, 121, 65, 0, 10, 67,
+			44, 149, 201, 49, 129, 58, 129, 0, 0, 0, 10, 67, 4, 229, 83, 138, 50, 125, 89, 0, 0, 10, 1, 126, 47, 122, 55, 72, 13, 0,
+			27, 0, 11, 68, 28, 144, 130, 76, 81, 122, 71, 88, 0, 11, 68, 80, 145, 1, 48, 47, 137, 72, 118, 0, 0, 17, 67, 80, 128, 78,
+			4, 86, 35, 50, 13, 50, 0, 34, 81, 97, 110, 32, 15, 67, 80, 128, 78, 4, 86, 35, 50, 13, 0, 34, 81, 97, 32, 11, 67, 80,
+			128, 78, 86, 119, 50, 0, 72, 9, 14, 69, 81, 37, 69, 49, 144, 47, 34, 134, 55, 122, 0, 32, 13, 69, 52, 148, 211, 21, 48, 65,
+			122, 89, 113, 88, 0, 0, 16, 70, 12, 240, 207, 57, 85, 0, 49, 136, 49, 13, 50, 125, 47, 0, 0, 9, 67, 21, 96, 64, 129, 84,
+			13, 0, 0, 0, 17, 70, 4, 229, 9, 48, 193, 83, 35, 50, 47, 6, 122, 55, 129, 88, 0, 13, 69, 92, 144, 203, 20, 64, 58, 122,
+			49, 123, 72, 0, 15, 69, 84, 228, 133, 4, 64, 125, 50, 34, 6, 121, 72, 0, 9, 0, 15, 70, 72, 146, 1, 56, 224, 64, 34, 122,
+			6, 126, 50, 13, 0, 9, 67, 81, 115, 211, 47, 134, 88, 0, 0, 17, 71, 92, 129, 82, 20, 85, 133, 72, 58, 2, 140, 44, 121, 84,
+			114, 0, 0, 7, 196, 80, 16, 143, 60, 66, 10, 67, 40, 81, 9, 75, 121, 72, 137, 0, 11, 68, 21, 113, 69, 44, 129, 58, 129, 49,
+			0, 16, 70, 12, 147, 142, 4, 211, 206, 89, 122, 50, 13, 65, 13, 50, 0, 0, 11, 69, 80, 131, 213, 28, 128, 4, 86, 136, 0, 12,
+			69, 52, 148, 211, 20, 64, 65, 122, 89, 47, 0, 0, 9, 198, 64, 19, 132, 61, 32, 64, 66, 16, 70, 85, 68, 133, 12, 133, 0, 57,
+			134, 47, 34, 121, 99, 47, 0, 0, 18, 71, 8, 20, 143, 52, 85, 5, 72, 71, 13, 34, 124, 65, 113, 47, 114, 0, 0, 9, 67, 8,
+			81, 5, 71, 129, 72, 0, 13, 70, 16, 245, 71, 4, 195, 0, 72, 134, 81, 118, 0, 15, 70, 92, 19, 19, 4, 195, 0, 58, 130, 55,
+			89, 130, 55, 0, 10, 68, 4, 32, 133, 100, 35, 71, 37, 0, 7, 196, 57, 148, 19, 16, 17, 0, 14, 69, 28, 144, 147, 60, 224, 81,
+			122, 71, 89, 13, 50, 0, 22, 73, 77, 84, 5, 72, 99, 21, 61, 84, 192, 89, 134, 48, 6, 128, 83, 55, 134, 13, 89, 0, 13, 69,
+			28, 86, 83, 21, 32, 81, 137, 88, 114, 0, 103, 12, 69, 28, 86, 83, 21, 32, 81, 129, 88, 114, 0, 13, 69, 24, 21, 8, 60, 208,
+			83, 35, 86, 13, 65, 0, 21, 73, 12, 193, 65, 56, 194, 78, 21, 52, 192, 49, 55, 121, 50, 55, 122, 50, 13, 89, 0, 0, 14, 70,
+			76, 145, 206, 4, 113, 64, 89, 137, 50, 113, 75, 0, 16, 70, 64, 244, 148, 20, 225, 0, 48, 133, 47, 6, 121, 50, 72, 0, 0, 17,
+			71, 12, 19, 66, 72, 145, 7, 20, 49, 138, 65, 71, 34, 122, 75, 0, 0, 12, 68, 76, 243, 137, 4, 89, 124, 50, 57, 13, 0, 11,
+			200, 80, 132, 143, 84, 114, 15, 85, 64, 66, 0, 21, 73, 56, 243, 133, 80, 129, 76, 21, 52, 192, 50, 125, 50, 86, 13, 55, 6, 121,
+			89, 0, 12, 69, 48, 243, 211, 21, 32, 55, 134, 88, 114, 0, 12, 69, 8, 22, 129, 5, 32, 71, 119, 88, 127, 0, 0, 10, 66, 8,
+			80, 71, 129, 0, 35, 9, 76, 14, 70, 76, 85, 137, 48, 193, 64, 89, 13, 84, 122, 55, 0, 15, 70, 20, 228, 143, 85, 65, 64, 124,
+			50, 34, 6, 134, 47, 0, 0, 11, 67, 48, 244, 212, 55, 131, 89, 47, 0, 103, 17, 70, 76, 84, 133, 56, 17, 5, 89, 121, 34, 113,
+			50, 6, 138, 72, 0, 16, 70, 24, 21, 143, 72, 149, 5, 83, 138, 84, 14, 34, 113, 47, 0, 10, 199, 12, 243, 147, 81, 37, 67, 80,
+			36, 20, 71, 12, 243, 147, 81, 37, 67, 80, 49, 124, 50, 89, 47, 34, 125, 49, 47, 0, 10, 0, 14, 68, 84, 225, 5, 72, 125, 50,
+			72, 114, 0, 72, 12, 9, 16, 70, 80, 240, 143, 28, 112, 78, 47, 13, 71, 124, 81, 13, 50, 0, 12, 68, 65, 34, 86, 100, 48, 34,
+			122, 84, 37, 0, 11, 68, 44, 81, 137, 72, 49, 129, 83, 114, 0, 11, 67, 32, 18, 1, 107, 126, 107, 6, 126, 0, 0, 15, 69, 8,
+			19, 129, 56, 16, 71, 119, 50, 35, 50, 13, 0, 103, 17, 70, 52, 147, 132, 4, 224, 79, 65, 122, 50, 72, 13, 50, 6, 135, 0, 14,
+			69, 20, 198, 83, 20, 80, 138, 55, 6, 129, 88, 138, 0, 14, 69, 76, 145, 82, 72, 16, 89, 129, 6, 140, 34, 13, 0, 13, 69, 20,
+			229, 18, 20, 80, 124, 50, 47, 34, 138, 0, 8, 197, 20, 212, 9, 72, 80, 65, 13, 69, 12, 18, 143, 48, 80, 49, 119, 75, 136, 55,
+			0, 14, 69, 8, 19, 129, 56, 16, 71, 13, 50, 126, 50, 13, 0, 23, 73, 5, 4, 18, 61, 130, 77, 5, 65, 64, 119, 48, 34, 124,
+			49, 89, 122, 65, 138, 47, 0, 36, 23, 73, 5, 4, 18, 61, 130, 77, 5, 65, 64, 119, 48, 34, 124, 49, 89, 122, 65, 13, 47, 0,
+			9, 12, 69, 4, 50, 9, 56, 112, 138, 49, 122, 68, 0, 0, 15, 70, 92, 245, 78, 16, 81, 0, 58, 134, 50, 72, 123, 72, 0, 0,
+			10, 67, 77, 34, 64, 89, 34, 4, 129, 0, 18, 70, 48, 147, 135, 21, 34, 69, 55, 124, 50, 90, 13, 34, 6, 138, 0, 103, 16, 70,
+			48, 147, 135, 21, 34, 69, 55, 124, 50, 90, 13, 34, 37, 0, 10, 199, 25, 37, 83, 81, 32, 84, 20, 66, 16, 70, 9, 35, 195, 12,
+			243, 9, 71, 34, 124, 49, 13, 55, 37, 0, 0, 12, 68, 76, 81, 1, 56, 89, 113, 72, 35, 50, 0, 12, 68, 28, 243, 142, 4, 81,
+			4, 13, 50, 13, 0, 12, 68, 12, 240, 146, 4, 49, 136, 71, 34, 13, 0, 10, 68, 5, 81, 197, 72, 130, 81, 114, 0, 0, 12, 69,
+			65, 32, 71, 84, 80, 48, 34, 126, 81, 0, 13, 69, 61, 32, 78, 28, 80, 124, 34, 113, 50, 75, 0, 24, 73, 20, 193, 67, 81, 34,
+			67, 37, 70, 64, 113, 55, 121, 49, 47, 34, 6, 122, 89, 113, 47, 37, 0, 22, 73, 4, 227, 137, 88, 84, 147, 5, 38, 64, 35, 50,
+			122, 84, 6, 128, 89, 13, 34, 37, 0, 14, 69, 4, 69, 193, 72, 80, 6, 35, 72, 58, 4, 140, 0, 0, 0, 16, 70, 28, 147, 214,
+			4, 227, 137, 75, 13, 84, 6, 126, 50, 37, 0, 18, 71, 64, 20, 211, 21, 36, 194, 100, 48, 35, 89, 114, 88, 71, 6, 137, 0, 19,
+			71, 44, 147, 15, 52, 85, 5, 72, 49, 122, 55, 6, 124, 65, 113, 47, 114, 0, 17, 71, 24, 244, 148, 84, 224, 84, 20, 83, 132, 76,
+			13, 50, 13, 47, 0, 18, 71, 4, 67, 73, 72, 16, 140, 20, 35, 72, 65, 13, 34, 13, 71, 118, 0, 0, 12, 68, 81, 32, 67, 100,
+			47, 34, 138, 89, 37, 0, 15, 70, 76, 48, 76, 64, 83, 0, 89, 49, 35, 55, 48, 118, 0, 0, 13, 69, 16, 148, 206, 21, 144, 72,
+			122, 88, 50, 37, 0, 13, 69, 32, 83, 9, 84, 208, 107, 129, 55, 141, 65, 0, 17, 70, 17, 32, 77, 5, 66, 67, 72, 34, 13, 65,
+			35, 47, 122, 49, 0, 14, 69, 4, 194, 193, 48, 144, 35, 55, 49, 13, 55, 137, 0, 0, 10, 67, 80, 133, 83, 86, 125, 89, 0, 8,
+			13, 202, 92, 244, 132, 65, 35, 195, 21, 52, 207, 72, 66, 15, 70, 32, 244, 212, 21, 52, 192, 107, 136, 89, 47, 121, 89, 0, 18, 70,
+			12, 192, 82, 36, 225, 84, 49, 55, 35, 34, 13, 50, 6, 121, 47, 0, 0, 12, 67, 9, 85, 0, 4, 71, 125, 47, 0, 8, 9, 14,
+			67, 92, 20, 212, 2, 58, 124, 89, 47, 0, 9, 35, 9, 10, 67, 92, 20, 212, 58, 138, 89, 47, 0, 0, 11, 68, 28, 198, 78, 56,
+			81, 55, 122, 50, 0, 21, 72, 72, 130, 78, 60, 49, 82, 61, 48, 34, 137, 50, 6, 124, 89, 13, 34, 13, 89, 0, 0, 10, 67, 21,
+			96, 78, 121, 84, 13, 50, 0, 13, 69, 32, 80, 146, 21, 112, 107, 129, 71, 34, 134, 0, 15, 69, 84, 225, 5, 57, 144, 125, 50, 72,
+			122, 50, 6, 137, 0, 13, 69, 81, 35, 208, 33, 144, 47, 34, 136, 83, 37, 0, 8, 197, 77, 84, 150, 21, 144, 36, 14, 69, 77, 84,
+			150, 21, 144, 89, 148, 84, 138, 0, 105, 10, 13, 69, 77, 84, 150, 21, 144, 89, 128, 84, 138, 0, 10, 0, 15, 70, 52, 20, 135, 5,
+			33, 84, 65, 127, 81, 34, 13, 47, 0, 9, 198, 52, 20, 148, 36, 225, 84, 67, 0, 12, 67, 32, 21, 8, 2, 107, 35, 87, 0, 35,
+			9, 19, 71, 65, 148, 129, 52, 145, 1, 48, 48, 113, 34, 6, 35, 65, 122, 72, 118, 0, 18, 71, 24, 192, 71, 20, 195, 21, 52, 83,
+			55, 119, 75, 121, 55, 13, 65, 0, 19, 71, 4, 225, 67, 16, 245, 1, 48, 35, 50, 122, 49, 72, 6, 136, 47, 118, 0, 0, 13, 68,
+			64, 20, 212, 4, 48, 126, 89, 47, 13, 0, 103, 17, 70, 92, 129, 78, 21, 97, 82, 58, 121, 50, 121, 84, 114, 0, 74, 8, 11, 67,
+			64, 20, 1, 48, 126, 48, 13, 0, 103, 11, 67, 64, 20, 1, 48, 119, 48, 6, 126, 0, 12, 68, 52, 19, 9, 12, 65, 35, 55, 122,
+			49, 0, 0, 12, 69, 32, 19, 135, 20, 64, 107, 35, 68, 72, 0, 0, 15, 70, 81, 114, 76, 36, 114, 20, 47, 58, 137, 55, 137, 47,
+			0, 0, 17, 70, 65, 33, 84, 20, 228, 197, 48, 34, 129, 47, 121, 50, 89, 0, 103, 10, 67, 21, 98, 84, 121, 84, 113, 47, 0, 10,
+			199, 4, 229, 9, 25, 33, 90, 20, 65, 0, 12, 68, 88, 83, 149, 76, 84, 129, 50, 13, 89, 0, 10, 68, 80, 243, 142, 20, 47, 125,
+			50, 0, 16, 70, 76, 245, 86, 20, 226, 82, 89, 134, 84, 13, 50, 6, 142, 0, 13, 68, 56, 240, 140, 100, 50, 136, 71, 55, 122, 0,
+			32, 12, 68, 52, 83, 15, 56, 65, 121, 55, 13, 50, 0, 11, 68, 12, 81, 1, 72, 89, 129, 72, 114, 0, 0, 0, 10, 67, 45, 34,
+			83, 49, 34, 122, 89, 0, 14, 70, 32, 20, 142, 21, 52, 192, 107, 127, 50, 123, 89, 0, 11, 66, 17, 32, 72, 124, 49, 47, 114, 0,
+			24, 0, 18, 71, 64, 84, 137, 52, 85, 5, 72, 48, 13, 34, 122, 65, 113, 47, 114, 0, 17, 71, 52, 147, 5, 77, 67, 206, 20, 65,
+			137, 55, 89, 47, 136, 50, 0, 17, 70, 52, 18, 143, 72, 149, 25, 65, 13, 75, 124, 34, 113, 47, 37, 0, 19, 70, 21, 48, 193, 64,
+			148, 205, 121, 89, 49, 6, 138, 48, 113, 88, 13, 65, 0, 0, 11, 68, 37, 50, 65, 32, 137, 88, 6, 144, 0, 11, 68, 80, 241, 1,
+			100, 47, 13, 72, 138, 0, 11, 68, 72, 18, 129, 32, 34, 126, 75, 126, 0, 12, 68, 21, 32, 83, 20, 113, 34, 138, 89, 0, 103, 11,
+			68, 21, 32, 83, 20, 113, 34, 138, 88, 0, 0, 13, 69, 76, 243, 4, 21, 32, 89, 126, 72, 114, 0, 103, 13, 69, 76, 243, 4, 21,
+			32, 89, 124, 55, 72, 114, 0, 20, 73, 52, 148, 195, 32, 145, 86, 61, 84, 192, 65, 122, 89, 76, 113, 84, 13, 89, 0, 0, 16, 6,
+			8, 1, 4, 14, 39, 20, 107, 35, 72, 13, 50, 47, 0, 35, 15, 70, 84, 224, 87, 5, 33, 64, 125, 50, 13, 58, 6, 140, 0, 10,
+			67, 72, 84, 15, 34, 129, 48, 136, 0, 15, 70, 25, 34, 71, 5, 65, 64, 83, 34, 122, 81, 13, 47, 0, 14, 70, 12, 244, 144, 61,
+			32, 76, 49, 132, 48, 34, 118, 0, 0, 25, 67, 53, 84, 212, 65, 4, 125, 89, 47, 35, 84, 47, 116, 0, 35, 82, 104, 97, 118, 101,
+			32, 116, 111, 32, 21, 67, 53, 84, 212, 65, 125, 89, 47, 107, 35, 84, 0, 35, 14, 81, 104, 97, 118, 101, 32, 20, 67, 53, 84, 212,
+			65, 125, 89, 47, 119, 84, 0, 35, 65, 81, 104, 97, 118, 101, 32, 6, 195, 53, 84, 212, 32, 18, 71, 65, 33, 67, 37, 2, 67, 20,
+			48, 34, 121, 89, 113, 48, 122, 89, 0, 18, 70, 29, 32, 68, 84, 21, 5, 81, 34, 35, 72, 57, 134, 138, 47, 0, 36, 17, 70, 29,
+			32, 68, 84, 21, 5, 81, 34, 35, 72, 57, 134, 13, 47, 0, 16, 70, 16, 83, 9, 12, 21, 5, 72, 121, 55, 113, 49, 13, 47, 0,
+			0, 11, 67, 8, 85, 1, 71, 138, 47, 13, 0, 103, 12, 68, 76, 147, 131, 20, 89, 122, 50, 89, 0, 8, 11, 67, 80, 22, 25, 47,
+			35, 49, 89, 37, 0, 10, 67, 64, 21, 5, 48, 35, 108, 138, 0, 9, 67, 24, 85, 5, 83, 138, 47, 0, 10, 67, 8, 85, 1, 71,
+			129, 47, 13, 0, 0, 14, 69, 64, 84, 141, 37, 64, 48, 114, 65, 122, 47, 0, 36, 14, 69, 64, 84, 141, 37, 64, 48, 128, 65, 122,
+			47, 0, 10, 12, 69, 16, 144, 80, 21, 32, 72, 137, 48, 114, 0, 0, 15, 6, 4, 9, 4, 14, 39, 20, 72, 122, 72, 50, 47, 0,
+			32, 15, 70, 61, 85, 12, 37, 97, 64, 135, 47, 55, 6, 122, 84, 0, 17, 70, 21, 129, 67, 85, 65, 64, 121, 49, 89, 113, 49, 57,
+			134, 47, 0, 16, 70, 13, 33, 77, 5, 65, 64, 49, 34, 129, 65, 138, 47, 0, 103, 14, 70, 12, 83, 147, 85, 33, 64, 89, 121, 50,
+			91, 114, 0, 14, 70, 12, 21, 137, 5, 33, 64, 49, 35, 84, 122, 127, 0, 5, 194, 4, 144, 17, 0, 17, 70, 17, 83, 135, 5, 33,
+			69, 72, 125, 68, 81, 119, 34, 6, 129, 0, 0, 33, 8, 3, 15, 21, 12, 4, 14, 39, 20, 6, 49, 117, 72, 13, 50, 47, 35, 84,
+			47, 116, 0, 32, 12, 82, 104, 97, 118, 101, 32, 116, 111, 32, 27, 8, 3, 15, 21, 12, 4, 14, 39, 20, 49, 117, 72, 13, 50, 47,
+			13, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 20, 8, 3, 15, 21, 12, 4, 14, 39, 20, 4, 49, 117, 72, 13, 50, 47, 0, 32,
+			12, 18, 8, 19, 8, 1, 12, 12, 14, 39, 20, 4, 91, 126, 50, 47, 0, 32, 12, 12, 68, 32, 17, 5, 76, 107, 138, 72, 129, 88,
+			0, 10, 67, 80, 145, 25, 47, 137, 72, 37, 0, 10, 67, 48, 147, 25, 55, 122, 55, 37, 0, 12, 68, 5, 33, 78, 4, 119, 34, 129,
+			50, 13, 0, 0, 13, 69, 76, 51, 5, 72, 16, 89, 49, 55, 141, 34, 0, 12, 201, 36, 228, 212, 36, 224, 212, 37, 97, 64, 66, 13,
+			69, 16, 83, 135, 84, 80, 72, 121, 50, 81, 37, 0, 12, 69, 5, 3, 133, 60, 16, 35, 48, 50, 141, 0, 22, 73, 4, 197, 5, 72,
+			224, 84, 37, 97, 64, 130, 55, 47, 6, 128, 50, 13, 47, 122, 84, 0, 0, 10, 67, 72, 81, 15, 34, 129, 72, 134, 0, 0, 13, 70,
+			72, 19, 5, 36, 114, 0, 34, 126, 55, 37, 0, 19, 71, 21, 84, 8, 72, 21, 5, 76, 57, 134, 83, 34, 6, 138, 47, 129, 88, 0,
+			18, 71, 24, 21, 143, 72, 149, 5, 76, 83, 138, 84, 14, 34, 113, 47, 89, 0, 0, 12, 68, 4, 225, 5, 76, 35, 50, 72, 129, 88,
+			0, 15, 70, 72, 85, 18, 36, 19, 0, 34, 129, 47, 34, 144, 55, 0, 10, 67, 72, 83, 25, 34, 113, 55, 137, 0, 11, 68, 72, 17,
+			1, 72, 34, 138, 72, 127, 0, 10, 68, 53, 148, 146, 32, 65, 148, 0, 105, 9, 68, 53, 148, 146, 32, 65, 128, 0, 12, 68, 36, 225,
+			133, 72, 122, 50, 83, 6, 128, 0, 10, 67, 8, 83, 25, 71, 113, 55, 137, 0, 0, 14, 69, 57, 80, 78, 12, 80, 50, 134, 124, 50,
+			89, 0, 103, 0, 16, 70, 60, 33, 76, 37, 50, 192, 124, 71, 13, 55, 113, 89, 49, 0, 13, 70, 28, 245, 82, 52, 85, 0, 81, 143,
+			65, 138, 0, 15, 70, 24, 148, 200, 56, 85, 0, 83, 122, 91, 50, 121, 47, 0, 0, 17, 71, 77, 84, 146, 60, 112, 84, 20, 89, 128,
+			13, 81, 13, 47, 0, 103, 17, 71, 77, 84, 146, 60, 112, 84, 20, 89, 125, 34, 13, 81, 138, 47, 0, 17, 71, 4, 195, 5, 52, 19,
+			132, 20, 35, 55, 13, 65, 35, 50, 72, 0, 0, 21, 72, 49, 86, 5, 52, 35, 213, 72, 112, 55, 125, 49, 89, 13, 65, 71, 148, 81,
+			0, 105, 20, 72, 49, 86, 5, 52, 35, 213, 72, 112, 55, 125, 49, 89, 13, 65, 71, 128, 81, 0, 10, 68, 32, 243, 13, 20, 107, 136,
+			65, 0, 0, 0, 17, 70, 4, 211, 206, 29, 53, 0, 119, 65, 125, 68, 89, 47, 0, 74, 12, 15, 70, 77, 84, 144, 49, 84, 192, 89,
+			128, 48, 55, 13, 89, 0, 0, 0, 13, 68, 49, 82, 71, 36, 55, 134, 6, 129, 75, 37, 0, 20, 72, 72, 80, 201, 65, 35, 195, 4,
+			192, 34, 113, 89, 122, 48, 34, 13, 49, 118, 0, 19, 72, 24, 21, 143, 85, 34, 84, 21, 48, 83, 138, 84, 14, 34, 113, 47, 89, 0,
+			11, 68, 8, 145, 5, 80, 71, 129, 72, 138, 0, 0, 14, 69, 16, 81, 133, 57, 48, 72, 113, 83, 121, 50, 89, 0, 0, 8, 67, 101,
+			97, 83, 129, 84, 0, 16, 70, 24, 243, 212, 32, 243, 4, 83, 117, 47, 107, 136, 55, 72, 0, 12, 4, 95, 20, 21, 18, 47, 6, 128,
+			50, 72, 0, 0, 11, 67, 72, 80, 68, 34, 121, 72, 0, 38, 9, 9, 67, 72, 80, 68, 34, 129, 72, 0, 0, 11, 68, 88, 147, 12,
+			36, 84, 122, 55, 137, 0, 12, 68, 85, 34, 78, 20, 57, 143, 34, 122, 50, 0, 11, 68, 12, 17, 18, 20, 49, 126, 72, 114, 0, 11,
+			68, 5, 33, 207, 56, 127, 81, 124, 50, 0, 11, 68, 4, 65, 15, 56, 35, 72, 124, 50, 0, 0, 14, 69, 52, 17, 18, 36, 64, 65,
+			13, 72, 34, 122, 72, 0, 13, 69, 64, 22, 80, 4, 192, 48, 138, 48, 35, 55, 0, 0, 17, 70, 33, 148, 15, 96, 144, 64, 107, 137,
+			48, 6, 124, 49, 89, 141, 0, 0, 0, 12, 68, 45, 80, 76, 4, 49, 58, 126, 55, 119, 0, 11, 68, 4, 65, 9, 76, 35, 72, 122,
+			89, 0, 10, 68, 17, 34, 69, 72, 72, 34, 145, 0, 20, 72, 5, 35, 83, 48, 83, 135, 80, 128, 4, 127, 65, 88, 55, 6, 121, 68,
+			87, 0, 0, 10, 67, 13, 37, 90, 49, 34, 134, 88, 0, 8, 197, 72, 80, 207, 72, 64, 36, 15, 69, 72, 80, 207, 72, 64, 34, 121,
+			49, 114, 72, 0, 103, 10, 14, 69, 72, 80, 207, 72, 64, 34, 121, 49, 132, 72, 0, 10, 14, 69, 12, 19, 148, 60, 224, 49, 35, 50,
+			47, 124, 50, 0, 0, 17, 70, 48, 144, 133, 72, 144, 64, 55, 137, 71, 6, 141, 34, 129, 13, 0, 10, 67, 48, 147, 79, 55, 122, 65,
+			136, 0, 15, 70, 24, 244, 133, 80, 83, 12, 83, 133, 47, 6, 121, 55, 0, 17, 70, 16, 147, 5, 52, 208, 64, 72, 123, 55, 6, 121,
+			65, 13, 0, 103, 16, 70, 16, 147, 5, 52, 208, 64, 72, 137, 55, 6, 121, 65, 13, 0, 0, 10, 67, 100, 245, 64, 57, 134, 0, 72,
+			32, 9, 67, 4, 113, 68, 138, 75, 72, 0, 0, 12, 68, 16, 243, 3, 20, 72, 124, 55, 76, 138, 0, 0, 14, 69, 17, 83, 131, 4,
+			224, 72, 125, 50, 49, 13, 50, 0, 14, 69, 48, 243, 132, 60, 224, 55, 125, 50, 72, 13, 50, 0, 0, 14, 70, 65, 85, 20, 36, 225,
+			192, 48, 117, 47, 122, 68, 0, 15, 70, 80, 129, 82, 20, 241, 128, 4, 86, 140, 6, 124, 84, 0, 9, 198, 77, 84, 16, 61, 49, 64,
+			66, 17, 70, 65, 33, 84, 72, 144, 76, 48, 34, 129, 47, 34, 6, 137, 118, 0, 16, 70, 21, 2, 84, 60, 209, 64, 113, 48, 122, 47,
+			13, 65, 122, 0, 16, 70, 12, 243, 131, 37, 49, 64, 49, 124, 50, 89, 6, 137, 89, 0, 0, 10, 199, 16, 148, 195, 61, 84, 147, 20,
+			65, 0, 8, 67, 80, 131, 213, 86, 135, 0, 10, 67, 48, 144, 77, 55, 129, 13, 65, 0, 10, 68, 72, 245, 83, 20, 34, 135, 88, 0,
+			0, 8, 197, 61, 85, 6, 37, 64, 65, 13, 69, 60, 209, 76, 21, 64, 124, 65, 55, 13, 47, 0, 0, 18, 66, 16, 80, 72, 138, 75,
+			6, 143, 34, 37, 0, 81, 106, 117, 114, 101, 32, 14, 70, 52, 21, 82, 36, 49, 64, 65, 124, 34, 122, 89, 0, 14, 70, 48, 83, 206,
+			5, 33, 0, 55, 121, 50, 13, 72, 0, 8, 66, 16, 80, 72, 13, 0, 9, 0, 9, 67, 72, 82, 68, 34, 129, 72, 0, 9, 67, 76,
+			178, 64, 89, 49, 129, 0, 17, 71, 56, 84, 195, 36, 83, 131, 20, 50, 121, 89, 122, 13, 50, 89, 0, 0, 12, 68, 81, 34, 78, 4,
+			47, 34, 129, 50, 13, 0, 13, 68, 17, 98, 78, 4, 72, 13, 84, 129, 50, 13, 0, 15, 204, 56, 245, 23, 37, 66, 19, 80, 19, 132,
+			36, 225, 192, 67, 12, 68, 48, 147, 1, 12, 55, 137, 55, 13, 49, 0, 12, 68, 37, 32, 84, 20, 137, 34, 6, 138, 47, 0, 12, 68,
+			33, 86, 154, 4, 107, 13, 88, 6, 126, 0, 0, 13, 67, 8, 81, 78, 4, 71, 122, 50, 0, 103, 35, 9, 12, 67, 8, 81, 78, 4,
+			71, 129, 50, 0, 35, 9, 13, 69, 8, 20, 129, 12, 176, 71, 119, 34, 126, 49, 0, 12, 69, 61, 4, 15, 76, 80, 13, 48, 136, 88,
+			0, 8, 197, 33, 83, 65, 56, 80, 66, 0, 14, 70, 48, 16, 143, 72, 81, 0, 55, 138, 71, 13, 72, 0, 9, 198, 12, 243, 150, 36,
+			53, 0, 36, 17, 70, 12, 243, 150, 36, 53, 0, 49, 124, 50, 84, 122, 49, 47, 0, 10, 0, 15, 70, 12, 20, 142, 20, 114, 69, 49,
+			127, 50, 13, 81, 37, 0, 10, 199, 92, 130, 67, 32, 85, 133, 72, 66, 0, 10, 67, 41, 81, 25, 75, 134, 72, 37, 0, 11, 68, 76,
+			21, 84, 20, 89, 130, 47, 138, 0, 10, 68, 60, 97, 133, 72, 124, 83, 114, 0, 12, 68, 52, 147, 149, 76, 65, 137, 50, 13, 89, 0,
+			21, 72, 16, 145, 76, 20, 53, 18, 36, 48, 72, 144, 55, 6, 121, 49, 47, 34, 122, 49, 0, 11, 4, 95, 4, 16, 20, 48, 139, 50,
+			47, 0, 0, 15, 69, 8, 80, 207, 52, 80, 71, 122, 49, 125, 65, 0, 74, 12, 13, 69, 61, 69, 1, 92, 16, 124, 47, 119, 58, 13,
+			0, 13, 69, 88, 19, 9, 76, 80, 84, 119, 55, 129, 89, 0, 14, 69, 76, 145, 67, 48, 80, 89, 57, 121, 49, 55, 14, 0, 15, 69,
+			21, 84, 133, 44, 16, 57, 134, 6, 34, 129, 49, 119, 0, 13, 69, 8, 85, 1, 44, 80, 71, 113, 47, 138, 49, 0, 10, 67, 4, 227,
+			206, 119, 50, 124, 50, 0, 9, 67, 4, 112, 82, 138, 81, 127, 0, 0, 8, 66, 9, 144, 71, 137, 0, 76, 0, 10, 199, 92, 244, 139,
+			80, 16, 140, 20, 20, 9, 67, 80, 131, 192, 86, 136, 0, 9, 15, 70, 64, 131, 197, 56, 150, 0, 83, 129, 50, 122, 49, 89, 0, 6,
+			195, 84, 99, 192, 17, 0, 11, 68, 4, 193, 137, 20, 35, 55, 83, 37, 0, 10, 67, 48, 147, 65, 55, 129, 65, 119, 0, 12, 68, 52,
+			147, 149, 80, 65, 122, 50, 122, 47, 0, 19, 72, 12, 132, 143, 52, 244, 207, 52, 80, 49, 34, 136, 65, 13, 89, 136, 65, 0, 0, 12,
+			67, 100, 245, 82, 57, 143, 0, 106, 72, 34, 9, 11, 67, 100, 245, 82, 57, 132, 0, 72, 34, 9, 18, 8, 6, 195, 173, 18, 9, 14,
+			14, 5, 83, 129, 34, 122, 50, 38, 13, 0, 14, 69, 84, 227, 5, 77, 48, 125, 50, 55, 6, 121, 89, 0, 8, 197, 80, 21, 20, 60,
+			240, 66, 9, 67, 72, 82, 78, 34, 138, 50, 0, 14, 69, 32, 147, 132, 85, 48, 107, 122, 50, 72, 134, 88, 0, 10, 67, 4, 114, 78,
+			119, 81, 122, 50, 0, 0, 15, 70, 4, 195, 25, 76, 243, 128, 35, 55, 122, 89, 13, 50, 0, 15, 70, 80, 129, 82, 20, 243, 128, 4,
+			86, 140, 6, 124, 50, 0, 9, 198, 65, 35, 212, 21, 53, 0, 36, 17, 70, 65, 35, 212, 21, 53, 0, 48, 34, 136, 47, 121, 89, 47,
+			0, 10, 9, 198, 12, 243, 148, 21, 53, 0, 36, 17, 70, 12, 243, 148, 21, 53, 0, 49, 124, 50, 108, 121, 89, 47, 0, 10, 0, 11,
+			67, 32, 147, 64, 4, 107, 122, 65, 0, 9, 6, 195, 21, 53, 0, 17, 6, 195, 4, 115, 64, 17, 0, 18, 70, 92, 128, 84, 21, 97,
+			82, 58, 125, 47, 121, 84, 114, 0, 103, 66, 8, 17, 70, 92, 128, 84, 21, 97, 82, 58, 124, 47, 121, 84, 114, 0, 66, 8, 12, 68,
+			32, 19, 143, 36, 107, 35, 50, 6, 139, 0, 12, 68, 12, 17, 5, 80, 49, 119, 72, 121, 47, 0, 0, 0, 10, 67, 100, 246, 79, 57,
+			136, 57, 136, 0, 16, 70, 80, 19, 12, 100, 131, 192, 47, 35, 55, 122, 6, 107, 136, 0, 0, 0, 16, 70, 92, 129, 82, 21, 97, 82,
+			58, 2, 140, 44, 121, 84, 114, 0, 17, 70, 76, 16, 143, 80, 85, 82, 89, 35, 71, 13, 47, 6, 148, 0, 105, 16, 70, 76, 16, 143,
+			80, 85, 82, 89, 35, 71, 13, 47, 6, 128, 0, 11, 68, 16, 243, 143, 72, 72, 136, 50, 114, 0, 12, 68, 4, 66, 5, 72, 35, 72,
+			107, 6, 142, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 13, 4, 95, 20, 12, 4, 47, 6, 122, 55, 72, 13, 0, 0, 14, 69, 37,
+			48, 66, 20, 192, 122, 88, 13, 71, 121, 55, 0, 12, 69, 76, 130, 76, 60, 128, 91, 137, 55, 136, 0, 14, 69, 92, 21, 19, 60, 224,
+			58, 124, 47, 89, 13, 50, 0, 12, 69, 36, 227, 129, 72, 64, 122, 50, 114, 72, 0, 9, 67, 4, 195, 0, 130, 55, 0, 42, 0, 14,
+			70, 72, 86, 78, 60, 193, 0, 34, 121, 50, 118, 72, 0, 17, 70, 52, 242, 1, 52, 208, 68, 65, 136, 107, 6, 35, 65, 113, 72, 0,
+			0, 18, 71, 88, 19, 5, 57, 66, 78, 20, 84, 35, 55, 13, 50, 47, 137, 50, 0, 12, 6, 19, 195, 173, 4, 8, 5, 91, 129, 13,
+			0, 10, 199, 76, 83, 73, 9, 33, 86, 20, 65, 6, 195, 20, 69, 0, 17, 0, 11, 68, 12, 242, 5, 56, 49, 136, 13, 50, 0, 12,
+			68, 4, 225, 18, 20, 124, 50, 72, 34, 138, 0, 7, 196, 12, 17, 9, 104, 66, 11, 67, 41, 83, 25, 75, 134, 55, 6, 137, 0, 11,
+			68, 12, 243, 15, 72, 49, 125, 55, 114, 0, 0, 13, 69, 85, 49, 70, 84, 192, 57, 134, 89, 83, 118, 0, 15, 69, 52, 148, 204, 20,
+			64, 65, 122, 89, 55, 6, 121, 72, 0, 0, 9, 198, 61, 97, 82, 48, 244, 132, 65, 16, 70, 24, 244, 141, 36, 48, 64, 83, 132, 65,
+			6, 137, 49, 13, 0, 10, 67, 16, 18, 83, 72, 138, 122, 89, 0, 0, 18, 71, 20, 194, 90, 4, 33, 84, 32, 113, 55, 122, 88, 13,
+			71, 13, 87, 0, 16, 70, 65, 35, 214, 20, 224, 197, 48, 34, 124, 84, 6, 150, 89, 0, 0, 11, 68, 40, 243, 129, 32, 75, 136, 50,
+			13, 0, 11, 68, 16, 147, 129, 32, 72, 137, 50, 13, 0, 10, 67, 76, 181, 65, 89, 49, 134, 13, 0, 11, 68, 64, 244, 211, 20, 48,
+			124, 89, 37, 0, 20, 72, 32, 19, 12, 20, 197, 73, 4, 128, 107, 35, 55, 113, 6, 55, 134, 57, 13, 0, 10, 67, 4, 117, 69, 138,
+			81, 57, 134, 0, 0, 15, 69, 72, 240, 149, 77, 64, 34, 136, 71, 6, 125, 89, 47, 0, 14, 69, 16, 148, 212, 72, 240, 72, 122, 89,
+			47, 34, 136, 0, 0, 15, 70, 32, 20, 212, 36, 225, 192, 107, 138, 89, 47, 122, 68, 0, 9, 198, 77, 80, 140, 36, 209, 64, 66, 17,
+			70, 65, 35, 212, 20, 113, 64, 48, 34, 136, 47, 13, 90, 138, 0, 103, 16, 70, 65, 35, 212, 20, 113, 64, 48, 34, 124, 47, 13, 90,
+			138, 0, 9, 198, 61, 85, 18, 4, 113, 64, 65, 15, 70, 8, 20, 146, 4, 113, 64, 71, 114, 34, 126, 90, 0, 103, 14, 70, 8, 20,
+			146, 4, 113, 64, 71, 35, 34, 126, 90, 0, 0, 17, 70, 52, 243, 148, 4, 117, 69, 65, 124, 50, 108, 13, 81, 57, 134, 0, 10, 199,
+			52, 19, 135, 4, 225, 83, 20, 65, 18, 71, 8, 243, 15, 28, 225, 83, 20, 71, 124, 55, 13, 50, 6, 138, 88, 0, 0, 13, 68, 32,
+			83, 9, 96, 107, 129, 55, 122, 49, 89, 0, 0, 14, 69, 36, 225, 9, 13, 64, 122, 50, 72, 6, 137, 47, 0, 13, 69, 33, 84, 211,
+			5, 32, 107, 125, 88, 6, 127, 0, 15, 69, 21, 48, 207, 73, 64, 121, 89, 49, 6, 132, 47, 0, 36, 0, 15, 70, 92, 21, 6, 61,
+			33, 0, 58, 124, 47, 83, 13, 72, 0, 15, 70, 92, 80, 144, 4, 113, 64, 58, 121, 71, 48, 138, 75, 0, 13, 70, 76, 51, 213, 72,
+			113, 64, 89, 49, 128, 75, 0, 15, 70, 72, 85, 133, 72, 145, 64, 34, 121, 84, 13, 34, 37, 0, 16, 70, 16, 85, 143, 80, 81, 64,
+			72, 121, 84, 136, 47, 6, 129, 0, 0, 13, 6, 3, 18, 195, 168, 13, 5, 49, 34, 121, 65, 0, 6, 195, 16, 150, 64, 17, 0, 15,
+			70, 32, 21, 193, 36, 144, 78, 107, 13, 58, 6, 144, 50, 0, 12, 68, 80, 147, 4, 20, 47, 122, 55, 72, 13, 0, 15, 70, 76, 246,
+			65, 8, 80, 78, 89, 139, 13, 71, 129, 50, 0, 11, 68, 13, 33, 80, 20, 49, 34, 138, 48, 0, 22, 72, 4, 229, 5, 12, 81, 5,
+			57, 64, 35, 50, 47, 122, 89, 6, 129, 72, 13, 50, 47, 0, 0, 10, 67, 56, 80, 82, 4, 50, 142, 0, 12, 0, 17, 70, 60, 33,
+			83, 37, 70, 64, 136, 71, 6, 129, 89, 13, 47, 37, 0, 0, 20, 71, 52, 243, 69, 57, 64, 82, 100, 65, 136, 65, 13, 50, 108, 140,
+			34, 37, 0, 103, 19, 71, 52, 243, 69, 57, 64, 82, 100, 65, 136, 65, 13, 50, 47, 13, 34, 37, 0, 17, 71, 21, 66, 81, 84, 85,
+			20, 20, 121, 47, 123, 49, 13, 47, 0, 103, 10, 199, 21, 66, 81, 84, 85, 20, 20, 65, 0, 7, 196, 77, 66, 76, 48, 32, 10, 68,
+			48, 245, 73, 76, 55, 134, 37, 0, 11, 68, 9, 34, 69, 56, 71, 34, 144, 50, 0, 7, 196, 52, 147, 1, 56, 66, 17, 70, 77, 1,
+			67, 36, 209, 78, 89, 48, 121, 89, 113, 65, 13, 50, 0, 19, 72, 76, 147, 8, 61, 81, 84, 80, 80, 89, 113, 55, 117, 58, 6, 121,
+			47, 0, 9, 67, 32, 150, 65, 107, 137, 119, 0, 12, 68, 12, 243, 15, 56, 49, 136, 55, 13, 50, 0, 0, 14, 69, 8, 83, 9, 104,
+			80, 71, 121, 55, 6, 129, 88, 0, 13, 69, 85, 49, 65, 28, 80, 57, 134, 89, 113, 75, 0, 14, 69, 52, 244, 143, 76, 80, 65, 13,
+			34, 6, 136, 89, 0, 10, 67, 48, 145, 78, 55, 129, 13, 50, 0, 0, 9, 198, 16, 18, 15, 52, 86, 64, 66, 5, 194, 21, 80, 17,
+			0, 11, 67, 52, 241, 84, 65, 136, 6, 121, 47, 0, 19, 71, 4, 208, 82, 100, 195, 9, 76, 35, 65, 13, 34, 6, 122, 55, 122, 89,
+			0, 0, 12, 68, 52, 83, 5, 20, 65, 138, 55, 138, 0, 103, 11, 68, 52, 83, 5, 20, 65, 121, 55, 138, 0, 11, 68, 32, 83, 12,
+			60, 107, 13, 55, 136, 0, 15, 70, 24, 19, 73, 48, 144, 82, 83, 13, 65, 122, 55, 142, 0, 14, 68, 16, 80, 149, 80, 72, 138, 71,
+			6, 57, 134, 0, 103, 12, 68, 16, 80, 149, 80, 72, 138, 71, 57, 134, 0, 19, 72, 5, 4, 18, 20, 229, 9, 12, 80, 119, 48, 34,
+			121, 50, 108, 122, 89, 0, 0, 13, 69, 8, 85, 19, 21, 144, 71, 121, 47, 89, 37, 0, 15, 69, 8, 244, 212, 60, 224, 71, 131, 89,
+			47, 13, 50, 0, 103, 8, 67, 48, 145, 82, 55, 145, 0, 8, 197, 17, 147, 129, 52, 240, 65, 0, 9, 198, 36, 229, 5, 72, 147, 64,
+			65, 16, 70, 8, 84, 212, 21, 53, 0, 71, 121, 89, 47, 13, 89, 47, 0, 0, 17, 71, 25, 34, 67, 5, 52, 197, 20, 83, 34, 122,
+			49, 119, 89, 138, 0, 0, 12, 68, 29, 82, 68, 60, 81, 58, 129, 72, 136, 0, 13, 68, 76, 18, 5, 48, 89, 126, 107, 6, 121, 55,
+			0, 12, 68, 85, 50, 78, 28, 57, 134, 88, 122, 68, 0, 16, 70, 77, 4, 129, 100, 48, 78, 89, 48, 34, 138, 49, 35, 50, 0, 12,
+			68, 76, 19, 1, 16, 89, 35, 55, 13, 72, 0, 10, 67, 60, 176, 89, 136, 49, 6, 138, 0, 0, 8, 67, 64, 145, 82, 48, 142, 0,
+			15, 70, 12, 245, 83, 12, 245, 83, 49, 134, 89, 49, 134, 89, 0, 0, 12, 67, 4, 225, 0, 35, 50, 72, 0, 72, 8, 9, 9, 67,
+			72, 81, 83, 34, 129, 89, 0, 18, 70, 52, 243, 148, 72, 80, 76, 65, 124, 50, 47, 34, 122, 6, 130, 55, 0, 14, 70, 76, 242, 143,
+			85, 35, 128, 89, 136, 75, 128, 50, 0, 0, 9, 66, 4, 224, 119, 50, 0, 34, 9, 10, 67, 80, 147, 153, 47, 137, 50, 37, 0, 16,
+			71, 21, 52, 197, 57, 66, 65, 48, 113, 89, 121, 50, 91, 118, 0, 0, 17, 70, 20, 118, 80, 80, 144, 78, 122, 75, 6, 122, 48, 91,
+			13, 50, 0, 16, 70, 77, 84, 5, 72, 208, 78, 89, 134, 48, 114, 65, 35, 50, 0, 12, 201, 76, 147, 85, 49, 64, 78, 20, 245, 83,
+			67, 0, 10, 67, 72, 83, 143, 34, 129, 50, 136, 0, 11, 68, 76, 243, 129, 72, 89, 136, 50, 127, 0, 7, 196, 84, 226, 3, 72, 17,
+			0, 16, 69, 8, 86, 79, 56, 64, 71, 122, 57, 124, 50, 72, 0, 74, 12, 13, 69, 12, 240, 207, 60, 224, 49, 13, 49, 134, 50, 0,
+			0, 0, 19, 71, 65, 35, 193, 13, 66, 86, 20, 48, 34, 136, 6, 35, 49, 47, 122, 84, 0, 0, 12, 68, 4, 115, 133, 76, 35, 81,
+			50, 13, 89, 0, 12, 68, 12, 243, 135, 60, 49, 124, 68, 81, 136, 0, 12, 68, 76, 147, 133, 92, 89, 122, 50, 57, 134, 0, 19, 72,
+			76, 130, 76, 48, 83, 1, 28, 128, 91, 4, 113, 55, 6, 138, 55, 13, 0, 0, 9, 197, 16, 85, 1, 36, 192, 103, 66, 15, 70, 12,
+			20, 200, 52, 84, 133, 49, 35, 90, 65, 142, 0, 103, 14, 70, 12, 20, 200, 52, 84, 133, 49, 35, 91, 65, 142, 0, 0, 16, 70, 8,
+			145, 5, 24, 244, 132, 71, 122, 72, 122, 83, 13, 72, 0, 15, 70, 65, 33, 77, 36, 84, 128, 48, 34, 13, 65, 142, 0, 103, 15, 70,
+			65, 33, 77, 36, 84, 128, 48, 34, 121, 65, 122, 114, 0, 9, 198, 60, 53, 15, 8, 84, 128, 66, 14, 70, 12, 20, 200, 36, 84, 128,
+			49, 35, 91, 6, 142, 0, 14, 70, 4, 227, 212, 32, 84, 128, 119, 50, 125, 86, 114, 0, 0, 10, 67, 64, 147, 148, 48, 137, 50, 47,
+			0, 8, 67, 21, 113, 64, 57, 134, 0, 0, 21, 72, 8, 19, 135, 48, 81, 5, 76, 128, 71, 35, 68, 81, 55, 13, 72, 6, 121, 91,
+			0, 12, 68, 12, 240, 143, 48, 49, 136, 71, 124, 55, 0, 11, 68, 5, 34, 83, 20, 119, 34, 137, 88, 0, 0, 17, 70, 80, 83, 133,
+			72, 145, 133, 47, 121, 50, 114, 34, 6, 129, 83, 0, 13, 69, 12, 20, 133, 21, 32, 49, 13, 34, 6, 142, 0, 0, 15, 70, 92, 147,
+			132, 36, 225, 192, 58, 137, 50, 72, 122, 68, 0, 0, 0, 11, 68, 12, 131, 15, 20, 49, 55, 136, 37, 0, 21, 68, 92, 147, 132, 76,
+			58, 6, 137, 50, 72, 88, 15, 6, 125, 48, 0, 81, 117, 112, 32, 24, 68, 92, 147, 132, 76, 58, 6, 137, 50, 72, 88, 15, 72, 6,
+			135, 50, 0, 81, 100, 111, 119, 110, 32, 13, 68, 72, 85, 83, 20, 34, 129, 6, 57, 134, 88, 0, 11, 68, 8, 146, 143, 84, 71, 129,
+			90, 134, 0, 0, 19, 67, 16, 145, 0, 72, 122, 72, 50, 124, 47, 0, 32, 78, 81, 110, 111, 116, 32, 10, 67, 16, 145, 0, 72, 122,
+			72, 0, 32, 19, 67, 32, 17, 0, 107, 4, 35, 72, 86, 121, 65, 0, 81, 116, 104, 101, 109, 32, 16, 67, 32, 17, 0, 107, 4, 35,
+			72, 113, 47, 0, 81, 105, 116, 32, 21, 67, 32, 17, 0, 2, 107, 119, 72, 2, 71, 122, 50, 0, 35, 81, 98, 101, 101, 110, 32, 16,
+			67, 32, 17, 0, 107, 35, 72, 47, 134, 0, 14, 81, 116, 111, 32, 16, 67, 32, 17, 0, 107, 2, 35, 72, 47, 116, 0, 81, 116, 111,
+			32, 11, 67, 32, 17, 0, 4, 107, 35, 72, 0, 14, 13, 67, 32, 17, 0, 2, 107, 119, 72, 0, 35, 12, 9, 20, 73, 4, 192, 149,
+			69, 81, 82, 69, 81, 64, 35, 55, 71, 13, 49, 128, 49, 37, 0, 14, 69, 17, 33, 65, 53, 64, 72, 34, 121, 65, 48, 47, 0, 0,
+			15, 70, 24, 244, 148, 84, 225, 64, 83, 132, 76, 13, 50, 0, 103, 8, 66, 16, 144, 72, 137, 0, 41, 14, 70, 92, 20, 146, 36, 225,
+			192, 58, 132, 34, 122, 68, 0, 18, 70, 25, 33, 81, 84, 83, 148, 83, 34, 113, 49, 58, 121, 50, 47, 0, 36, 14, 70, 24, 244, 148,
+			84, 225, 64, 83, 132, 76, 134, 50, 0, 9, 66, 16, 144, 72, 4, 122, 0, 9, 16, 66, 20, 112, 83, 132, 121, 81, 88, 6, 120, 65,
+			48, 118, 0, 9, 0, 17, 71, 88, 83, 135, 20, 19, 131, 20, 84, 121, 50, 75, 13, 50, 89, 0, 18, 71, 20, 51, 205, 52, 84, 131,
+			20, 6, 129, 49, 4, 124, 65, 128, 89, 0, 6, 195, 4, 243, 0, 17, 0, 11, 68, 4, 195, 5, 56, 35, 55, 13, 50, 0, 12, 68,
+			48, 147, 133, 56, 55, 122, 50, 113, 50, 0, 11, 68, 48, 16, 143, 72, 55, 138, 71, 114, 0, 12, 68, 5, 50, 197, 92, 119, 89, 49,
+			57, 134, 0, 11, 68, 5, 34, 69, 76, 140, 34, 129, 88, 0, 0, 14, 69, 64, 19, 69, 48, 16, 48, 35, 65, 13, 55, 13, 0, 13,
+			69, 12, 129, 82, 36, 80, 91, 140, 34, 6, 129, 0, 14, 69, 64, 82, 201, 56, 112, 48, 129, 49, 6, 122, 68, 0, 14, 69, 80, 148,
+			129, 16, 80, 47, 137, 34, 6, 138, 72, 0, 20, 73, 72, 21, 1, 80, 245, 73, 48, 193, 64, 34, 35, 47, 13, 47, 6, 134, 122, 0,
+			14, 69, 24, 147, 129, 48, 80, 83, 113, 50, 126, 55, 37, 0, 17, 70, 4, 195, 5, 49, 82, 65, 35, 55, 113, 55, 6, 134, 57, 13,
+			0, 12, 69, 4, 195, 5, 48, 80, 119, 55, 129, 55, 0, 0, 0, 16, 70, 41, 82, 197, 8, 246, 0, 75, 134, 49, 71, 124, 49, 89,
+			0, 17, 71, 24, 21, 143, 85, 34, 84, 20, 83, 138, 84, 14, 34, 113, 47, 0, 0, 11, 68, 76, 243, 142, 100, 89, 125, 50, 122, 0,
+			12, 68, 37, 35, 206, 100, 137, 34, 13, 50, 122, 0, 15, 70, 13, 35, 195, 32, 85, 0, 49, 34, 136, 91, 6, 138, 0, 0, 13, 69,
+			52, 240, 137, 48, 80, 65, 136, 71, 118, 0, 103, 14, 69, 76, 16, 137, 56, 16, 89, 119, 71, 129, 50, 13, 0, 15, 69, 24, 144, 83,
+			12, 240, 83, 129, 6, 35, 89, 49, 136, 0, 0, 10, 67, 80, 147, 129, 47, 129, 50, 13, 0, 0, 13, 69, 64, 147, 5, 85, 0, 48,
+			137, 55, 125, 48, 0, 0, 11, 200, 4, 229, 1, 72, 53, 9, 12, 16, 66, 11, 68, 72, 83, 129, 48, 34, 129, 50, 118, 0, 11, 68,
+			64, 83, 129, 48, 48, 129, 50, 118, 0, 20, 72, 16, 83, 9, 8, 84, 129, 80, 80, 72, 113, 55, 122, 71, 13, 34, 13, 47, 0, 12,
+			68, 12, 19, 129, 48, 49, 13, 50, 35, 55, 0, 11, 68, 8, 19, 129, 48, 71, 138, 50, 118, 0, 0, 13, 69, 77, 64, 82, 73, 144,
+			89, 47, 126, 34, 122, 0, 10, 67, 73, 82, 78, 34, 134, 113, 50, 0, 17, 70, 52, 81, 9, 12, 147, 133, 65, 121, 72, 13, 89, 13,
+			50, 0, 103, 15, 70, 52, 81, 9, 12, 147, 133, 65, 121, 72, 89, 13, 50, 0, 0, 10, 67, 16, 19, 129, 72, 138, 50, 13, 0, 9,
+			198, 8, 18, 18, 4, 147, 128, 66, 17, 70, 32, 243, 73, 56, 83, 64, 107, 124, 65, 13, 50, 13, 65, 0, 103, 16, 70, 32, 243, 73,
+			56, 83, 64, 107, 124, 65, 122, 50, 121, 65, 0, 0, 19, 71, 64, 85, 18, 60, 193, 85, 52, 48, 13, 47, 34, 136, 55, 129, 13, 65,
+			0, 16, 71, 12, 245, 78, 80, 84, 133, 16, 49, 135, 50, 47, 114, 72, 0, 19, 71, 4, 97, 137, 16, 21, 137, 80, 35, 83, 122, 72,
+			6, 138, 84, 122, 47, 0, 0, 10, 67, 104, 85, 83, 88, 57, 134, 89, 0, 10, 67, 81, 148, 15, 47, 137, 48, 136, 0, 14, 70, 77,
+			84, 16, 48, 145, 82, 89, 13, 48, 55, 145, 0, 15, 70, 61, 85, 16, 61, 53, 0, 135, 47, 48, 136, 89, 47, 0, 12, 68, 52, 244,
+			5, 16, 65, 136, 48, 121, 72, 0, 11, 68, 5, 33, 213, 20, 127, 81, 57, 134, 0, 0, 13, 69, 76, 80, 77, 85, 48, 91, 138, 65,
+			13, 89, 0, 15, 70, 93, 34, 84, 4, 35, 5, 34, 137, 47, 13, 71, 118, 0, 13, 69, 76, 84, 137, 21, 48, 89, 129, 34, 129, 88,
+			0, 15, 70, 24, 19, 12, 36, 35, 5, 83, 35, 55, 13, 71, 118, 0, 0, 15, 70, 77, 65, 80, 32, 83, 128, 89, 47, 129, 84, 13,
+			50, 0, 17, 70, 4, 225, 207, 48, 19, 128, 35, 68, 81, 6, 136, 55, 13, 50, 0, 9, 198, 32, 16, 137, 81, 80, 76, 66, 6, 66,
+			20, 128, 138, 0, 0, 15, 70, 64, 192, 71, 84, 147, 135, 48, 55, 138, 81, 122, 68, 0, 17, 71, 20, 21, 133, 76, 68, 143, 64, 129,
+			84, 88, 72, 34, 124, 48, 0, 0, 14, 70, 72, 82, 78, 16, 81, 82, 34, 138, 50, 72, 142, 0, 21, 73, 52, 17, 5, 52, 242, 83,
+			20, 195, 5, 65, 35, 72, 13, 65, 13, 88, 121, 55, 0, 17, 70, 13, 84, 212, 60, 209, 82, 49, 6, 125, 89, 47, 13, 65, 114, 0,
+			11, 68, 4, 34, 15, 72, 119, 71, 107, 133, 0, 0, 14, 69, 5, 34, 83, 20, 224, 13, 34, 122, 88, 13, 50, 0, 0, 15, 70, 92,
+			131, 197, 88, 84, 128, 107, 134, 121, 84, 114, 0, 66, 14, 70, 76, 49, 80, 80, 84, 128, 89, 121, 48, 47, 114, 0, 0, 0, 12, 68,
+			16, 84, 133, 44, 72, 121, 34, 122, 49, 0, 0, 28, 69, 76, 131, 213, 48, 64, 91, 117, 72, 107, 35, 84, 47, 116, 0, 74, 32, 12,
+			82, 104, 97, 118, 101, 32, 116, 111, 32, 21, 69, 76, 131, 213, 48, 64, 91, 117, 72, 13, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32,
+			15, 69, 76, 131, 213, 48, 64, 4, 91, 117, 72, 0, 32, 9, 12, 13, 69, 52, 20, 129, 84, 64, 65, 13, 34, 130, 72, 0, 13, 69,
+			33, 84, 146, 4, 128, 107, 125, 34, 6, 138, 0, 13, 69, 33, 84, 146, 4, 128, 107, 13, 34, 6, 126, 0, 13, 3, 226, 132, 162, 47,
+			34, 138, 72, 65, 127, 49, 0, 0, 13, 70, 48, 242, 78, 56, 148, 128, 55, 125, 50, 141, 0, 14, 70, 64, 147, 206, 20, 84, 128, 48,
+			144, 50, 6, 142, 0, 13, 202, 12, 243, 148, 20, 212, 12, 5, 66, 86, 20, 66, 25, 74, 5, 85, 8, 61, 34, 84, 5, 66, 86, 20,
+			119, 87, 6, 131, 34, 13, 108, 138, 108, 122, 84, 0, 103, 24, 74, 5, 85, 8, 61, 34, 84, 5, 66, 86, 20, 130, 87, 6, 124, 34,
+			113, 47, 13, 47, 122, 84, 0, 0, 0, 20, 72, 32, 19, 12, 20, 197, 74, 4, 128, 107, 35, 55, 113, 6, 55, 134, 57, 13, 0, 0,
+			0, 19, 67, 32, 21, 133, 107, 119, 84, 50, 124, 47, 0, 35, 14, 81, 110, 111, 116, 32, 19, 67, 32, 21, 133, 107, 119, 84, 50, 4,
+			124, 47, 0, 35, 81, 110, 111, 116, 32, 21, 67, 32, 21, 133, 2, 107, 119, 84, 2, 71, 122, 50, 0, 35, 81, 98, 101, 101, 110, 32,
+			13, 67, 32, 21, 133, 107, 35, 84, 0, 35, 9, 72, 12, 10, 67, 48, 149, 133, 55, 122, 84, 0, 36, 10, 67, 48, 149, 133, 55, 137,
+			84, 0, 10, 10, 67, 48, 21, 129, 55, 126, 84, 13, 0, 13, 70, 12, 240, 203, 21, 145, 64, 49, 124, 49, 137, 0, 0, 6, 195, 72,
+			85, 128, 24, 6, 195, 32, 149, 128, 17, 0, 14, 68, 44, 244, 133, 4, 49, 114, 34, 6, 129, 13, 0, 103, 13, 68, 44, 244, 133, 4,
+			49, 131, 34, 6, 129, 13, 0, 10, 68, 24, 244, 131, 20, 83, 133, 89, 0, 11, 68, 12, 19, 143, 20, 49, 13, 50, 134, 0, 12, 68,
+			5, 35, 205, 4, 119, 34, 136, 65, 13, 0, 0, 15, 69, 72, 81, 140, 21, 128, 34, 129, 83, 55, 121, 49, 89, 0, 16, 69, 52, 147,
+			149, 21, 64, 65, 122, 50, 57, 134, 6, 121, 47, 0, 12, 69, 32, 82, 70, 21, 32, 107, 121, 83, 114, 0, 8, 67, 20, 145, 0, 129,
+			72, 0, 0, 16, 70, 20, 195, 213, 37, 49, 64, 121, 55, 134, 58, 6, 129, 88, 0, 10, 67, 80, 16, 149, 47, 35, 71, 134, 0, 0,
+			18, 71, 36, 225, 133, 72, 83, 131, 20, 122, 50, 83, 13, 34, 13, 50, 89, 0, 0, 0, 13, 69, 88, 148, 137, 48, 80, 84, 122, 34,
+			118, 0, 103, 13, 69, 16, 240, 201, 48, 80, 72, 136, 89, 118, 0, 103, 13, 67, 28, 85, 0, 2, 81, 121, 47, 0, 12, 35, 9, 14,
+			69, 32, 84, 143, 36, 48, 107, 113, 34, 136, 122, 49, 0, 18, 73, 4, 48, 207, 84, 50, 5, 52, 83, 148, 119, 49, 134, 91, 65, 151,
+			0, 13, 3, 226, 132, 150, 50, 57, 134, 65, 13, 34, 136, 0, 0, 15, 70, 76, 19, 131, 32, 86, 128, 89, 35, 50, 76, 121, 88, 0,
+			10, 67, 52, 243, 153, 65, 125, 50, 122, 0, 0, 17, 71, 76, 19, 9, 76, 37, 82, 100, 89, 130, 55, 89, 71, 34, 37, 0, 19, 71,
+			37, 51, 211, 12, 83, 5, 76, 137, 89, 6, 124, 89, 13, 55, 129, 88, 0, 0, 12, 68, 61, 34, 79, 56, 124, 34, 6, 144, 50, 0,
+			10, 68, 36, 227, 133, 72, 122, 50, 114, 0, 12, 68, 32, 21, 143, 12, 107, 35, 84, 13, 49, 0, 14, 68, 21, 128, 76, 80, 121, 81,
+			88, 6, 124, 55, 47, 0, 19, 72, 5, 85, 15, 52, 240, 137, 48, 80, 130, 47, 13, 65, 13, 71, 141, 55, 0, 0, 13, 69, 16, 20,
+			8, 56, 80, 72, 35, 83, 50, 37, 0, 8, 197, 72, 245, 1, 80, 80, 66, 18, 70, 72, 80, 68, 60, 227, 25, 4, 34, 129, 72, 6,
+			136, 50, 55, 122, 0, 13, 69, 56, 81, 193, 80, 80, 50, 113, 81, 138, 47, 0, 13, 69, 48, 145, 193, 80, 80, 55, 129, 81, 138, 47,
+			0, 14, 69, 13, 84, 129, 80, 80, 49, 57, 143, 34, 138, 47, 0, 8, 197, 5, 84, 143, 72, 16, 66, 0, 16, 70, 12, 149, 1, 16,
+			83, 0, 89, 122, 47, 13, 72, 121, 55, 0, 0, 18, 71, 88, 81, 197, 80, 16, 140, 20, 84, 121, 75, 113, 47, 13, 71, 118, 0, 11,
+			199, 36, 229, 5, 73, 37, 80, 80, 67, 36, 11, 199, 36, 229, 5, 73, 37, 80, 80, 65, 10, 20, 71, 36, 225, 140, 84, 83, 154, 4,
+			122, 50, 83, 55, 134, 6, 121, 50, 88, 13, 0, 13, 3, 226, 133, 148, 47, 134, 87, 6, 128, 72, 88, 0, 0, 11, 68, 44, 21, 9,
+			20, 49, 138, 47, 37, 0, 0, 15, 70, 49, 82, 197, 92, 20, 141, 55, 134, 49, 58, 132, 65, 0, 13, 69, 32, 84, 141, 21, 48, 107,
+			128, 65, 129, 88, 0, 13, 69, 4, 66, 69, 85, 48, 119, 72, 57, 134, 88, 0, 0, 15, 70, 28, 147, 12, 36, 19, 128, 75, 122, 55,
+			129, 13, 50, 0, 14, 70, 76, 80, 76, 36, 243, 128, 89, 129, 55, 144, 50, 0, 16, 70, 12, 20, 129, 88, 19, 128, 49, 35, 34, 13,
+			84, 35, 50, 0, 0, 9, 198, 4, 229, 9, 32, 84, 143, 65, 0, 13, 68, 56, 84, 1, 48, 50, 121, 48, 6, 130, 55, 0, 13, 68,
+			88, 19, 5, 80, 84, 35, 55, 6, 138, 0, 103, 11, 68, 88, 19, 5, 80, 84, 35, 55, 138, 0, 12, 68, 84, 229, 9, 20, 125, 50,
+			47, 6, 137, 0, 12, 68, 72, 84, 5, 48, 34, 113, 48, 121, 55, 0, 11, 68, 64, 20, 1, 48, 48, 138, 48, 118, 0, 12, 68, 8,
+			148, 5, 16, 71, 137, 48, 121, 72, 0, 15, 70, 8, 19, 12, 5, 53, 0, 71, 35, 55, 13, 89, 47, 0, 13, 3, 226, 133, 147, 58,
+			124, 50, 87, 6, 128, 72, 0, 0, 23, 73, 72, 84, 212, 61, 32, 84, 36, 243, 128, 34, 121, 89, 47, 13, 34, 6, 138, 91, 13, 50,
+			0, 23, 73, 72, 84, 208, 37, 32, 84, 36, 243, 128, 34, 121, 89, 48, 113, 34, 6, 138, 91, 13, 50, 0, 23, 73, 65, 33, 80, 5,
+			32, 84, 36, 243, 128, 48, 34, 121, 48, 13, 34, 6, 138, 91, 13, 50, 0, 14, 69, 52, 148, 197, 73, 144, 65, 122, 88, 13, 34, 122,
+			0, 13, 69, 32, 17, 199, 37, 48, 107, 35, 81, 122, 89, 0, 21, 73, 4, 97, 137, 72, 208, 84, 36, 243, 128, 35, 83, 114, 65, 6,
+			138, 91, 13, 50, 0, 0, 17, 70, 8, 85, 23, 20, 83, 128, 71, 122, 47, 58, 129, 50, 0, 74, 12, 16, 70, 32, 17, 18, 36, 19,
+			128, 107, 138, 72, 34, 129, 13, 50, 0, 16, 70, 76, 52, 143, 81, 83, 64, 89, 49, 34, 136, 47, 13, 65, 0, 16, 70, 48, 144, 73,
+			76, 243, 128, 55, 129, 6, 138, 88, 124, 50, 0, 0, 0, 12, 68, 44, 20, 133, 56, 49, 35, 34, 13, 50, 0, 11, 68, 16, 83, 8,
+			36, 72, 121, 55, 37, 0, 15, 70, 64, 148, 85, 4, 229, 0, 48, 129, 49, 13, 50, 47, 0, 12, 68, 61, 2, 78, 20, 136, 48, 6,
+			137, 50, 0, 11, 68, 44, 244, 10, 20, 49, 124, 48, 37, 0, 12, 201, 16, 148, 210, 21, 5, 84, 4, 35, 5, 66, 12, 68, 12, 18,
+			149, 56, 49, 138, 75, 13, 50, 0, 12, 68, 9, 84, 197, 76, 71, 125, 89, 123, 88, 0, 0, 13, 69, 48, 21, 78, 12, 128, 55, 126,
+			50, 76, 0, 103, 14, 69, 8, 147, 141, 4, 224, 71, 122, 50, 65, 35, 50, 0, 13, 69, 8, 19, 12, 4, 64, 71, 35, 55, 13, 72,
+			0, 0, 16, 70, 52, 21, 9, 48, 64, 64, 65, 119, 47, 122, 55, 72, 13, 0, 0, 18, 71, 64, 19, 5, 77, 66, 78, 20, 48, 35,
+			55, 13, 89, 47, 137, 50, 0, 17, 71, 44, 148, 139, 12, 19, 4, 100, 49, 147, 49, 6, 124, 72, 37, 0, 18, 71, 36, 229, 133, 72,
+			225, 83, 76, 122, 50, 84, 114, 50, 6, 121, 89, 0, 9, 67, 4, 128, 64, 126, 107, 126, 0, 0, 12, 68, 52, 147, 132, 100, 65, 122,
+			50, 72, 37, 0, 10, 67, 12, 193, 79, 49, 55, 129, 136, 0, 12, 68, 40, 20, 1, 56, 75, 13, 48, 35, 50, 0, 12, 68, 28, 83,
+			146, 20, 90, 124, 50, 34, 13, 0, 20, 72, 4, 229, 9, 64, 131, 206, 4, 192, 35, 50, 47, 6, 122, 83, 13, 50, 118, 0, 9, 3,
+			95, 49, 15, 83, 6, 128, 0, 0, 10, 67, 4, 128, 66, 138, 107, 35, 71, 0, 10, 67, 56, 83, 206, 50, 129, 124, 50, 0, 0, 0,
+			9, 67, 88, 81, 192, 84, 121, 75, 0, 10, 67, 60, 193, 68, 136, 55, 121, 72, 0, 8, 67, 20, 113, 192, 121, 81, 0, 15, 71, 8,
+			245, 82, 28, 83, 201, 76, 71, 143, 90, 58, 126, 0, 11, 3, 226, 130, 172, 57, 143, 34, 136, 88, 0, 0, 11, 68, 76, 20, 129, 32,
+			89, 140, 34, 13, 0, 12, 5, 16, 9, 195, 177, 1, 48, 129, 67, 119, 0, 12, 68, 60, 244, 129, 32, 6, 134, 34, 6, 126, 0, 0,
+			13, 5, 13, 15, 195, 171, 20, 65, 136, 6, 121, 47, 0, 13, 69, 69, 82, 86, 21, 32, 49, 58, 122, 84, 114, 0, 15, 70, 32, 243,
+			69, 64, 17, 197, 107, 136, 65, 48, 138, 75, 0, 14, 70, 12, 20, 211, 21, 69, 5, 49, 119, 89, 121, 47, 0, 0, 15, 70, 40, 20,
+			205, 36, 225, 64, 75, 35, 88, 65, 122, 50, 0, 16, 70, 21, 48, 193, 72, 115, 212, 113, 89, 49, 6, 127, 81, 136, 0, 9, 198, 12,
+			20, 195, 4, 65, 64, 66, 9, 3, 226, 130, 169, 58, 124, 50, 0, 0, 9, 67, 72, 81, 192, 34, 121, 75, 0, 10, 3, 226, 130, 168,
+			34, 134, 48, 129, 0, 0, 10, 68, 4, 195, 1, 100, 119, 55, 138, 0, 10, 3, 95, 50, 15, 89, 6, 121, 49, 0, 0, 16, 69, 72,
+			84, 15, 77, 64, 34, 4, 129, 48, 6, 136, 89, 47, 0, 17, 70, 65, 33, 83, 80, 145, 197, 48, 34, 121, 89, 47, 6, 129, 90, 0,
+			14, 69, 12, 245, 133, 73, 64, 49, 136, 84, 6, 128, 47, 0, 0, 9, 66, 32, 80, 107, 129, 0, 72, 33, 13, 70, 76, 128, 76, 48,
+			245, 192, 91, 35, 55, 136, 0, 17, 70, 65, 34, 77, 21, 96, 76, 48, 34, 137, 65, 6, 129, 84, 118, 0, 7, 66, 40, 16, 57, 126,
+			0, 15, 70, 36, 208, 71, 36, 225, 64, 113, 65, 35, 75, 113, 50, 0, 8, 66, 24, 144, 83, 4, 137, 0, 16, 70, 5, 69, 1, 12,
+			129, 64, 35, 108, 35, 6, 91, 138, 0, 103, 16, 70, 5, 69, 1, 12, 129, 64, 35, 47, 6, 35, 91, 138, 0, 9, 11, 67, 4, 129,
+			77, 119, 107, 6, 121, 65, 0, 14, 70, 4, 50, 9, 48, 193, 64, 119, 49, 122, 55, 129, 0, 0, 0, 12, 68, 8, 83, 137, 56, 71,
+			121, 50, 122, 50, 0, 12, 68, 64, 20, 133, 56, 48, 119, 34, 121, 50, 0, 13, 68, 44, 244, 129, 56, 49, 132, 34, 6, 126, 50, 0,
+			10, 67, 32, 82, 0, 107, 121, 107, 0, 9, 21, 72, 12, 148, 131, 84, 213, 133, 57, 64, 89, 147, 49, 13, 65, 84, 121, 50, 47, 0,
+			105, 20, 72, 12, 148, 131, 84, 213, 133, 57, 64, 89, 128, 49, 13, 65, 84, 121, 50, 47, 0, 16, 70, 12, 16, 137, 56, 85, 0, 49,
+			35, 71, 123, 50, 13, 47, 0, 11, 68, 4, 35, 5, 72, 138, 71, 55, 114, 0, 0, 15, 69, 16, 144, 76, 60, 112, 72, 137, 13, 55,
+			130, 81, 0, 103, 15, 69, 17, 99, 210, 4, 176, 72, 14, 84, 133, 90, 35, 49, 0, 13, 69, 8, 243, 199, 36, 80, 71, 117, 81, 37,
+			0, 103, 12, 69, 8, 243, 199, 36, 80, 71, 134, 81, 37, 0, 0, 10, 67, 48, 146, 197, 55, 137, 49, 0, 12, 15, 70, 44, 20, 129,
+			12, 130, 64, 49, 119, 34, 127, 76, 37, 0, 15, 70, 49, 83, 12, 4, 38, 64, 55, 125, 55, 13, 71, 137, 0, 9, 198, 12, 243, 134,
+			48, 144, 212, 36, 18, 70, 12, 243, 134, 48, 144, 212, 49, 124, 50, 83, 55, 122, 49, 47, 0, 10, 0, 0, 12, 68, 16, 19, 148, 20,
+			72, 126, 50, 108, 138, 0, 20, 72, 65, 33, 67, 20, 65, 78, 12, 80, 48, 34, 121, 89, 113, 72, 13, 50, 89, 0, 16, 70, 64, 84,
+			134, 20, 53, 0, 48, 114, 83, 121, 49, 47, 0, 36, 16, 70, 64, 84, 134, 20, 53, 0, 48, 128, 83, 121, 49, 47, 0, 10, 17, 70,
+			25, 37, 73, 80, 147, 206, 83, 34, 134, 6, 122, 91, 13, 50, 0, 10, 67, 24, 150, 0, 83, 122, 49, 89, 0, 19, 72, 12, 243, 12,
+			20, 114, 65, 80, 80, 49, 13, 55, 129, 75, 122, 13, 47, 0, 9, 3, 95, 51, 15, 87, 6, 128, 0, 8, 4, 95, 15, 18, 4, 87,
+			0, 0, 14, 69, 76, 16, 137, 56, 80, 89, 119, 71, 6, 129, 50, 0, 13, 69, 52, 19, 9, 12, 80, 65, 35, 55, 113, 89, 0, 11,
+			69, 28, 21, 67, 32, 80, 81, 136, 91, 0, 0, 10, 66, 37, 48, 2, 122, 88, 0, 35, 9, 16, 70, 37, 52, 129, 20, 194, 64, 122,
+			88, 34, 6, 138, 55, 37, 0, 16, 70, 76, 132, 137, 48, 198, 64, 91, 34, 122, 55, 55, 122, 0, 32, 0, 14, 70, 29, 82, 78, 56,
+			84, 211, 81, 122, 50, 122, 89, 0, 13, 67, 9, 99, 4, 71, 117, 55, 13, 84, 127, 72, 0, 0, 12, 68, 40, 20, 133, 16, 75, 35,
+			34, 121, 72, 0, 11, 68, 88, 148, 129, 48, 84, 145, 34, 118, 0, 11, 68, 28, 21, 133, 48, 81, 35, 84, 118, 0, 11, 68, 12, 244,
+			129, 48, 49, 124, 34, 118, 0, 10, 67, 4, 115, 199, 119, 81, 124, 81, 0, 0, 13, 69, 24, 147, 133, 77, 48, 83, 113, 50, 121, 89,
+			0, 13, 69, 16, 147, 135, 33, 144, 72, 122, 68, 81, 37, 0, 0, 0, 17, 71, 80, 83, 142, 21, 52, 197, 20, 47, 121, 50, 13, 89,
+			6, 129, 0, 0, 19, 72, 65, 54, 67, 32, 144, 84, 73, 144, 89, 137, 49, 6, 144, 47, 34, 122, 0, 13, 68, 32, 20, 133, 52, 107,
+			126, 34, 6, 129, 65, 0, 15, 70, 24, 18, 82, 21, 53, 0, 83, 140, 34, 13, 89, 47, 0, 12, 68, 16, 147, 135, 100, 72, 122, 50,
+			75, 122, 0, 0, 13, 69, 76, 17, 133, 81, 144, 89, 138, 83, 47, 37, 0, 8, 197, 61, 85, 3, 73, 144, 65, 13, 69, 48, 149, 133,
+			49, 144, 55, 137, 84, 55, 122, 0, 0, 9, 66, 20, 192, 4, 121, 55, 0, 9, 5, 194, 36, 64, 17, 0, 10, 67, 32, 20, 192, 107,
+			35, 88, 0, 42, 17, 67, 32, 20, 192, 107, 4, 35, 88, 113, 47, 0, 14, 81, 105, 116, 32, 19, 67, 32, 20, 192, 107, 119, 88, 50,
+			124, 47, 0, 35, 14, 81, 110, 111, 116, 32, 19, 67, 32, 20, 192, 107, 13, 88, 50, 2, 124, 47, 0, 35, 81, 110, 111, 116, 32, 16,
+			67, 32, 20, 192, 107, 35, 88, 47, 134, 0, 14, 81, 116, 111, 32, 21, 67, 32, 20, 192, 2, 107, 119, 88, 2, 71, 122, 50, 0, 35,
+			81, 98, 101, 101, 110, 32, 11, 67, 32, 20, 192, 107, 35, 88, 0, 9, 14, 12, 67, 32, 20, 192, 2, 107, 119, 88, 0, 35, 9, 8,
+			67, 81, 148, 128, 47, 145, 0, 10, 67, 80, 148, 192, 47, 122, 88, 0, 9, 18, 71, 12, 129, 86, 72, 243, 5, 80, 91, 121, 84, 34,
+			13, 55, 6, 138, 0, 0, 10, 67, 16, 148, 195, 72, 122, 89, 49, 0, 11, 68, 12, 19, 22, 20, 49, 35, 84, 0, 103, 10, 68, 12,
+			19, 22, 20, 49, 126, 84, 0, 0, 16, 69, 8, 82, 9, 56, 64, 71, 122, 107, 137, 50, 72, 0, 74, 12, 12, 69, 16, 20, 146, 100,
+			192, 72, 35, 34, 118, 0, 9, 198, 61, 97, 82, 81, 84, 133, 65, 14, 69, 4, 211, 210, 4, 192, 138, 65, 6, 124, 34, 118, 0, 0,
+			15, 70, 80, 84, 85, 36, 192, 64, 47, 13, 49, 129, 55, 13, 0, 15, 70, 25, 34, 78, 28, 84, 128, 83, 34, 122, 50, 75, 114, 0,
+			14, 70, 5, 36, 197, 56, 144, 192, 127, 89, 50, 122, 49, 0, 0, 13, 67, 32, 148, 192, 107, 122, 88, 0, 72, 34, 9, 12, 16, 71,
+			44, 21, 8, 21, 34, 78, 20, 49, 35, 87, 34, 113, 50, 0, 19, 71, 80, 19, 135, 21, 34, 78, 20, 47, 35, 50, 75, 13, 34, 6,
+			129, 50, 0, 12, 67, 48, 20, 192, 4, 55, 126, 89, 0, 103, 9, 11, 67, 48, 20, 192, 4, 55, 35, 89, 0, 9, 0, 16, 70, 72,
+			83, 78, 4, 229, 0, 34, 121, 65, 50, 13, 50, 47, 0, 12, 68, 13, 147, 82, 84, 49, 125, 65, 34, 37, 0, 10, 3, 95, 53, 15,
+			83, 6, 122, 83, 0, 0, 23, 73, 52, 147, 142, 20, 20, 15, 48, 148, 192, 65, 122, 50, 129, 6, 35, 48, 13, 55, 113, 89, 0, 14,
+			69, 12, 244, 146, 4, 192, 49, 13, 34, 6, 35, 55, 0, 16, 70, 12, 240, 203, 77, 84, 133, 4, 49, 124, 49, 91, 6, 143, 0, 17,
+			70, 9, 35, 195, 33, 84, 133, 71, 34, 136, 6, 91, 143, 34, 0, 103, 14, 70, 9, 35, 195, 33, 84, 133, 71, 34, 136, 91, 114, 0,
+			0, 6, 194, 37, 64, 42, 17, 19, 66, 37, 64, 2, 122, 47, 15, 58, 125, 88, 0, 103, 14, 81, 119, 97, 115, 32, 18, 66, 37, 64,
+			2, 122, 47, 15, 58, 124, 88, 0, 14, 81, 119, 97, 115, 32, 16, 66, 37, 64, 2, 122, 47, 15, 122, 88, 0, 14, 81, 105, 115, 32,
+			18, 66, 37, 64, 2, 122, 47, 15, 107, 35, 88, 0, 14, 81, 104, 97, 115, 32, 9, 66, 37, 64, 122, 47, 0, 72, 33, 10, 67, 36,
+			245, 193, 137, 13, 58, 13, 0, 17, 70, 65, 35, 212, 60, 51, 204, 48, 34, 136, 47, 13, 49, 124, 55, 0, 15, 70, 52, 17, 208, 36,
+			84, 192, 65, 35, 81, 48, 137, 88, 0, 15, 4, 95, 13, 3, 14, 65, 6, 35, 49, 34, 4, 124, 50, 0, 0, 19, 67, 24, 85, 192,
+			83, 6, 57, 134, 65, 4, 133, 0, 81, 109, 111, 114, 101, 32, 0, 0, 13, 69, 4, 66, 69, 85, 128, 119, 72, 57, 134, 88, 0, 0,
+			15, 70, 48, 82, 80, 104, 145, 192, 55, 137, 48, 89, 122, 81, 0, 15, 70, 77, 80, 147, 36, 65, 64, 89, 13, 71, 89, 137, 72, 0,
+			15, 70, 76, 245, 70, 24, 193, 64, 89, 134, 83, 55, 6, 138, 0, 14, 70, 21, 2, 83, 80, 193, 64, 113, 48, 122, 89, 118, 0, 16,
+			70, 16, 83, 79, 48, 148, 200, 72, 113, 65, 124, 55, 122, 91, 0, 11, 67, 76, 52, 201, 89, 49, 125, 88, 37, 0, 0, 16, 71, 21,
+			66, 5, 72, 145, 7, 20, 121, 87, 14, 34, 122, 75, 0, 0, 11, 68, 12, 148, 131, 20, 89, 128, 89, 37, 0, 13, 68, 12, 19, 9,
+			96, 49, 138, 55, 122, 49, 89, 0, 0, 15, 69, 64, 21, 5, 57, 64, 48, 35, 47, 13, 50, 47, 0, 103, 14, 69, 77, 69, 65, 73,
+			64, 89, 47, 134, 114, 47, 0, 103, 14, 69, 77, 69, 65, 73, 64, 89, 47, 57, 134, 114, 47, 0, 9, 67, 36, 115, 210, 129, 81, 133,
+			0, 14, 69, 76, 80, 210, 21, 64, 89, 129, 49, 34, 13, 47, 0, 13, 69, 72, 21, 197, 77, 64, 34, 130, 13, 89, 47, 0, 14, 69,
+			21, 32, 83, 21, 32, 113, 34, 138, 89, 114, 0, 103, 13, 69, 21, 32, 83, 21, 32, 113, 34, 138, 88, 114, 0, 11, 69, 17, 32, 87,
+			21, 32, 72, 34, 132, 0, 15, 69, 16, 145, 197, 77, 64, 72, 137, 75, 121, 89, 47, 0, 37, 16, 70, 8, 85, 133, 72, 17, 197, 71,
+			121, 84, 13, 34, 113, 75, 0, 14, 69, 4, 69, 133, 73, 64, 119, 72, 84, 128, 47, 0, 36, 0, 15, 66, 16, 240, 72, 134, 15, 89,
+			136, 0, 14, 81, 115, 111, 32, 17, 66, 16, 240, 72, 134, 50, 124, 47, 0, 32, 78, 81, 110, 111, 116, 32, 8, 66, 16, 240, 72, 134,
+			0, 32, 9, 198, 64, 19, 129, 12, 129, 64, 66, 10, 66, 36, 80, 137, 129, 11, 0, 8, 9, 0, 21, 71, 21, 133, 18, 20, 210, 83,
+			80, 121, 49, 89, 47, 34, 6, 129, 65, 122, 89, 47, 0, 10, 67, 8, 84, 212, 71, 121, 89, 47, 0, 0, 13, 68, 8, 83, 15, 92,
+			71, 122, 55, 136, 0, 74, 12, 13, 5, 10, 15, 19, 195, 169, 107, 136, 89, 6, 138, 0, 12, 68, 4, 229, 15, 56, 35, 50, 47, 124,
+			50, 0, 7, 196, 21, 130, 76, 20, 65, 12, 68, 16, 149, 129, 56, 72, 113, 84, 35, 50, 0, 0, 14, 69, 16, 18, 207, 80, 16, 72,
+			119, 49, 136, 47, 13, 0, 14, 69, 52, 148, 129, 28, 80, 65, 114, 34, 126, 90, 0, 103, 13, 69, 52, 148, 129, 28, 80, 65, 122, 34,
+			126, 90, 0, 13, 69, 5, 32, 66, 48, 80, 35, 34, 119, 71, 118, 0, 14, 69, 4, 224, 76, 60, 112, 35, 50, 13, 55, 124, 81, 0,
+			0, 14, 70, 8, 84, 151, 36, 50, 192, 71, 121, 34, 122, 49, 0, 14, 70, 92, 244, 139, 76, 134, 64, 58, 128, 49, 91, 137, 0, 0,
+			16, 70, 56, 144, 200, 60, 192, 83, 50, 122, 49, 13, 55, 13, 89, 0, 17, 70, 77, 1, 67, 36, 98, 67, 89, 48, 13, 89, 122, 83,
+			122, 49, 0, 9, 198, 72, 81, 3, 72, 244, 211, 66, 0, 11, 68, 4, 148, 133, 76, 137, 34, 122, 88, 0, 11, 200, 52, 85, 1, 77,
+			64, 66, 48, 80, 20, 21, 72, 32, 244, 208, 37, 64, 66, 48, 80, 107, 124, 89, 48, 6, 122, 47, 13, 71, 118, 0, 12, 68, 12, 84,
+			133, 76, 89, 141, 34, 129, 88, 0, 0, 14, 6, 14, 1, 195, 175, 22, 5, 50, 137, 6, 129, 84, 0, 13, 69, 52, 22, 72, 20, 208,
+			65, 138, 107, 121, 65, 0, 12, 69, 5, 35, 213, 76, 80, 119, 34, 135, 88, 0, 0, 13, 70, 44, 82, 71, 32, 194, 64, 49, 138, 55,
+			37, 0, 15, 70, 16, 243, 129, 28, 134, 64, 72, 124, 50, 6, 107, 129, 0, 0, 17, 70, 52, 85, 1, 48, 194, 67, 65, 13, 47, 6,
+			35, 55, 122, 49, 0, 10, 199, 21, 133, 18, 36, 48, 84, 20, 65, 0, 15, 70, 4, 112, 73, 57, 53, 0, 119, 81, 121, 50, 89, 47,
+			0, 19, 72, 64, 244, 148, 84, 117, 69, 76, 80, 48, 133, 76, 13, 81, 6, 129, 88, 0, 14, 68, 85, 4, 197, 80, 125, 48, 89, 6,
+			121, 47, 0, 38, 8, 196, 85, 4, 197, 80, 65, 10, 11, 68, 48, 149, 133, 16, 55, 122, 84, 72, 0, 15, 6, 95, 18, 15, 13, 1,
+			14, 34, 136, 65, 13, 50, 10, 0, 0, 14, 69, 8, 197, 82, 73, 144, 71, 55, 148, 34, 122, 0, 105, 13, 69, 8, 197, 82, 73, 144,
+			71, 55, 128, 34, 122, 0, 0, 10, 67, 73, 80, 153, 34, 134, 71, 37, 0, 9, 67, 5, 116, 153, 119, 34, 137, 0, 0, 17, 70, 32,
+			84, 131, 84, 193, 83, 107, 128, 49, 57, 117, 55, 129, 88, 0, 0, 14, 70, 76, 131, 213, 48, 65, 82, 91, 136, 55, 72, 114, 0, 13,
+			68, 52, 245, 5, 48, 65, 136, 47, 6, 121, 55, 0, 15, 70, 52, 20, 129, 84, 65, 82, 65, 13, 34, 130, 72, 114, 0, 6, 195, 21,
+			132, 15, 65, 0, 14, 69, 56, 144, 197, 81, 144, 50, 137, 89, 13, 47, 37, 0, 15, 69, 9, 84, 201, 49, 144, 71, 122, 88, 113, 55,
+			122, 0, 32, 0, 7, 194, 36, 96, 72, 8, 9, 20, 66, 20, 224, 4, 124, 50, 15, 34, 6, 134, 47, 0, 81, 114, 111, 117, 116, 101,
+			32, 20, 66, 20, 224, 4, 124, 50, 15, 65, 6, 35, 89, 0, 81, 109, 97, 115, 115, 101, 32, 15, 70, 72, 144, 207, 12, 129, 84, 34,
+			122, 49, 13, 91, 138, 0, 0, 15, 70, 5, 69, 1, 12, 129, 83, 119, 47, 35, 76, 123, 88, 0, 12, 3, 95, 51, 88, 87, 6, 147,
+			47, 37, 0, 105, 11, 3, 95, 51, 88, 87, 6, 128, 47, 37, 0, 0, 17, 70, 48, 198, 87, 20, 198, 78, 105, 13, 58, 6, 121, 55,
+			122, 50, 0, 9, 198, 81, 32, 78, 76, 97, 82, 36, 10, 198, 81, 32, 78, 76, 97, 82, 65, 10, 11, 68, 72, 85, 133, 72, 34, 113,
+			84, 142, 0, 10, 198, 12, 243, 148, 20, 229, 0, 36, 38, 17, 70, 12, 243, 148, 20, 229, 0, 49, 124, 50, 47, 121, 50, 47, 0, 10,
+			14, 3, 95, 48, 67, 107, 6, 125, 50, 72, 34, 13, 72, 0, 0, 14, 69, 52, 145, 213, 20, 192, 65, 129, 100, 6, 121, 55, 0, 8,
+			197, 12, 86, 76, 60, 224, 66, 18, 70, 20, 229, 18, 4, 224, 197, 121, 50, 47, 34, 6, 120, 50, 89, 0, 36, 10, 198, 20, 229, 18,
+			4, 224, 197, 65, 10, 13, 69, 12, 245, 80, 60, 224, 49, 134, 48, 124, 50, 0, 0, 0, 17, 71, 64, 130, 76, 37, 2, 78, 20, 83,
+			122, 55, 113, 48, 129, 50, 0, 18, 71, 64, 84, 134, 20, 53, 12, 100, 48, 128, 83, 121, 49, 47, 55, 122, 0, 19, 71, 64, 20, 129,
+			49, 148, 201, 76, 48, 13, 34, 35, 55, 13, 89, 122, 89, 0, 18, 71, 52, 20, 135, 5, 34, 78, 20, 65, 127, 75, 114, 34, 13, 50,
+			0, 103, 17, 71, 52, 20, 135, 5, 34, 78, 20, 65, 127, 75, 114, 34, 129, 50, 0, 17, 71, 5, 85, 8, 61, 34, 84, 100, 119, 87,
+			124, 34, 113, 47, 37, 0, 0, 9, 198, 88, 84, 141, 60, 229, 0, 66, 11, 68, 68, 21, 1, 72, 49, 35, 47, 127, 0, 12, 68, 64,
+			20, 137, 76, 48, 35, 34, 122, 89, 0, 12, 68, 80, 149, 1, 56, 47, 137, 47, 13, 50, 0, 11, 68, 77, 80, 86, 20, 89, 58, 126,
+			84, 0, 0, 17, 70, 76, 50, 65, 80, 144, 193, 89, 137, 6, 35, 47, 122, 49, 13, 0, 13, 69, 13, 85, 15, 24, 96, 49, 125, 47,
+			124, 83, 0, 12, 69, 8, 144, 83, 20, 64, 71, 144, 89, 47, 0, 0, 11, 67, 52, 17, 5, 65, 4, 138, 72, 0, 12, 13, 67, 52,
+			17, 5, 65, 4, 138, 72, 0, 12, 9, 76, 16, 70, 77, 67, 205, 5, 64, 64, 89, 47, 136, 65, 13, 47, 13, 0, 15, 70, 12, 131,
+			204, 21, 32, 64, 49, 124, 55, 13, 34, 13, 0, 17, 70, 12, 19, 4, 21, 32, 64, 49, 124, 55, 72, 6, 140, 34, 13, 0, 14, 70,
+			4, 230, 9, 61, 84, 192, 35, 68, 91, 13, 89, 0, 0, 9, 67, 65, 34, 88, 48, 34, 129, 0, 0, 12, 68, 12, 20, 143, 48, 49,
+			35, 34, 13, 55, 0, 0, 12, 201, 92, 244, 132, 65, 35, 195, 21, 52, 192, 66, 17, 70, 52, 241, 5, 72, 21, 5, 65, 124, 72, 13,
+			34, 138, 47, 0, 36, 9, 198, 48, 149, 5, 72, 21, 5, 21, 15, 69, 4, 192, 133, 37, 64, 130, 55, 71, 6, 129, 122, 47, 0, 15,
+			3, 226, 136, 158, 122, 50, 83, 6, 122, 50, 113, 47, 113, 0, 0, 20, 5, 19, 8, 5, 39, 19, 91, 129, 88, 107, 35, 72, 0, 78,
+			81, 104, 97, 100, 32, 13, 5, 19, 8, 5, 39, 19, 91, 129, 88, 0, 72, 35, 17, 6, 23, 1, 19, 14, 39, 20, 58, 125, 88, 50,
+			47, 0, 103, 35, 9, 17, 6, 23, 1, 19, 14, 39, 20, 58, 4, 124, 88, 50, 47, 0, 35, 9, 15, 70, 64, 148, 5, 81, 65, 64,
+			48, 122, 48, 6, 121, 47, 0, 0, 17, 7, 4, 15, 5, 19, 14, 39, 20, 72, 125, 88, 13, 50, 47, 0, 32, 10, 199, 28, 83, 204,
+			60, 114, 83, 80, 66, 16, 3, 226, 137, 160, 50, 124, 47, 6, 129, 49, 58, 118, 47, 117, 0, 0, 12, 68, 16, 84, 15, 80, 72, 129,
+			48, 136, 0, 103, 12, 68, 81, 38, 83, 80, 47, 34, 122, 89, 47, 0, 12, 200, 81, 32, 78, 76, 52, 137, 65, 64, 65, 10, 11, 68,
+			16, 84, 15, 80, 72, 121, 48, 136, 0, 0, 9, 198, 8, 83, 7, 72, 17, 5, 66, 13, 69, 12, 21, 137, 5, 32, 49, 35, 84, 122,
+			127, 0, 9, 198, 8, 195, 195, 44, 17, 5, 66, 16, 70, 4, 48, 213, 72, 21, 5, 35, 49, 57, 117, 34, 13, 47, 0, 15, 3, 226,
+			136, 154, 89, 49, 58, 4, 140, 34, 6, 134, 47, 0, 0, 16, 70, 52, 16, 193, 9, 33, 64, 65, 13, 49, 126, 71, 34, 13, 0, 9,
+			66, 48, 16, 4, 55, 35, 0, 9, 13, 3, 95, 49, 57, 50, 6, 137, 50, 47, 129, 50, 0, 0, 17, 67, 52, 244, 212, 65, 136, 89,
+			47, 15, 13, 84, 0, 81, 111, 102, 32, 10, 67, 72, 84, 212, 34, 121, 89, 47, 0, 10, 67, 52, 19, 12, 65, 130, 55, 0, 103, 9,
+			67, 52, 19, 12, 65, 35, 55, 0, 6, 195, 5, 2, 64, 17, 11, 3, 95, 49, 56, 6, 138, 47, 129, 50, 0, 0, 12, 68, 48, 85,
+			133, 56, 55, 129, 84, 13, 50, 0, 11, 68, 16, 245, 133, 72, 72, 136, 84, 114, 0, 22, 73, 36, 229, 5, 72, 209, 68, 36, 21, 5,
+			122, 50, 47, 114, 65, 6, 129, 72, 141, 47, 0, 16, 3, 226, 151, 143, 71, 55, 4, 35, 49, 89, 6, 128, 49, 118, 0, 0, 12, 201,
+			20, 193, 67, 81, 35, 195, 85, 65, 64, 66, 13, 69, 16, 240, 66, 48, 80, 72, 134, 13, 71, 118, 0, 0, 10, 67, 52, 19, 9, 65,
+			126, 55, 37, 0, 15, 70, 88, 20, 137, 21, 70, 64, 84, 13, 34, 144, 47, 37, 0, 19, 70, 4, 36, 212, 72, 16, 212, 119, 71, 89,
+			47, 34, 6, 35, 49, 47, 0, 36, 18, 70, 4, 36, 212, 72, 16, 212, 35, 71, 89, 47, 34, 35, 49, 47, 0, 9, 0, 10, 199, 53,
+			83, 20, 37, 69, 68, 20, 65, 16, 70, 16, 83, 79, 56, 84, 211, 72, 129, 65, 13, 50, 121, 89, 0, 0, 12, 68, 52, 21, 137, 76,
+			65, 138, 84, 122, 89, 0, 12, 68, 76, 21, 1, 56, 89, 138, 47, 13, 50, 0, 0, 14, 69, 72, 81, 5, 100, 80, 34, 6, 121, 72,
+			4, 137, 0, 14, 69, 64, 20, 143, 48, 80, 48, 119, 34, 6, 136, 55, 0, 13, 69, 48, 244, 201, 56, 112, 55, 134, 88, 122, 68, 0,
+			14, 69, 12, 246, 79, 80, 80, 49, 137, 6, 136, 47, 37, 0, 11, 3, 226, 136, 146, 65, 137, 50, 13, 89, 0, 0, 14, 70, 76, 85,
+			133, 72, 19, 0, 89, 121, 84, 34, 118, 0, 13, 3, 95, 49, 49, 122, 55, 6, 121, 84, 13, 50, 0, 0, 17, 71, 81, 84, 142, 80,
+			16, 140, 20, 47, 128, 50, 108, 138, 71, 118, 0, 19, 71, 65, 34, 86, 5, 66, 79, 56, 48, 34, 137, 84, 6, 138, 91, 13, 50, 0,
+			10, 3, 95, 49, 48, 47, 6, 121, 50, 0, 0, 10, 67, 81, 34, 79, 47, 34, 129, 136, 0, 12, 68, 36, 229, 5, 48, 122, 50, 108,
+			121, 55, 0, 18, 72, 21, 97, 82, 101, 66, 9, 56, 112, 121, 84, 34, 113, 87, 122, 68, 0, 12, 68, 16, 243, 149, 80, 72, 136, 50,
+			125, 47, 0, 13, 3, 95, 49, 51, 87, 6, 147, 47, 129, 50, 0, 105, 12, 3, 95, 49, 51, 87, 6, 128, 47, 129, 50, 0, 0, 13,
+			69, 12, 19, 143, 21, 48, 49, 13, 50, 134, 88, 0, 12, 4, 95, 52, 48, 15, 83, 6, 133, 47, 141, 0, 12, 3, 95, 49, 50, 47,
+			58, 6, 121, 55, 84, 0, 0, 13, 3, 95, 49, 53, 83, 6, 122, 83, 47, 129, 50, 0, 0, 18, 71, 52, 81, 9, 4, 85, 129, 48,
+			65, 121, 72, 122, 6, 129, 84, 118, 0, 20, 71, 12, 243, 148, 72, 19, 20, 60, 49, 13, 50, 47, 34, 6, 35, 55, 47, 136, 0, 19,
+			71, 5, 85, 15, 13, 32, 67, 100, 130, 47, 6, 124, 49, 34, 13, 89, 37, 0, 12, 3, 95, 49, 52, 83, 6, 133, 47, 129, 50, 0,
+			0, 12, 68, 64, 21, 5, 48, 48, 119, 47, 121, 55, 0, 11, 68, 36, 225, 9, 20, 122, 50, 72, 37, 0, 13, 68, 32, 245, 5, 48,
+			107, 136, 47, 6, 121, 55, 0, 11, 67, 5, 129, 83, 35, 49, 89, 123, 88, 0, 16, 3, 95, 49, 55, 89, 6, 13, 84, 13, 50, 47,
+			129, 50, 0, 107, 15, 3, 95, 49, 55, 89, 6, 121, 84, 13, 50, 47, 129, 50, 0, 0, 13, 69, 80, 131, 205, 5, 48, 47, 124, 65,
+			13, 89, 0, 8, 197, 61, 85, 12, 5, 112, 65, 9, 197, 56, 80, 82, 9, 144, 66, 14, 14, 3, 95, 49, 54, 89, 6, 122, 49, 89,
+			47, 129, 50, 0, 0, 0, 17, 70, 52, 84, 131, 20, 65, 83, 65, 128, 89, 6, 138, 72, 129, 88, 0, 10, 67, 5, 115, 204, 138, 58,
+			124, 55, 0, 15, 3, 95, 55, 88, 89, 6, 13, 84, 13, 50, 47, 37, 0, 107, 14, 3, 95, 55, 88, 89, 6, 121, 84, 13, 50, 47,
+			37, 0, 0, 21, 72, 12, 243, 77, 20, 229, 1, 73, 144, 49, 124, 65, 13, 50, 47, 121, 34, 37, 0, 103, 7, 196, 56, 85, 133, 72,
+			32, 11, 68, 12, 132, 137, 76, 49, 34, 122, 89, 0, 13, 6, 2, 10, 195, 184, 18, 14, 71, 57, 128, 50, 0, 12, 68, 16, 85, 143,
+			56, 72, 121, 84, 13, 50, 0, 12, 68, 72, 84, 12, 100, 34, 113, 48, 55, 137, 0, 19, 72, 12, 243, 77, 20, 229, 1, 73, 144, 49,
+			124, 65, 13, 50, 47, 34, 122, 0, 13, 68, 4, 212, 12, 100, 35, 65, 48, 55, 122, 0, 32, 20, 72, 4, 36, 212, 20, 210, 79, 85,
+			48, 119, 71, 89, 47, 6, 129, 65, 141, 89, 0, 12, 200, 4, 36, 207, 49, 85, 5, 49, 144, 67, 32, 0, 13, 69, 72, 80, 71, 4,
+			224, 34, 138, 81, 13, 50, 0, 17, 70, 64, 83, 133, 48, 244, 5, 48, 13, 50, 121, 55, 13, 48, 37, 0, 14, 69, 80, 18, 87, 4,
+			224, 47, 137, 6, 58, 126, 50, 0, 13, 69, 72, 20, 195, 4, 192, 34, 120, 89, 49, 118, 0, 12, 69, 9, 35, 207, 12, 128, 71, 34,
+			136, 76, 0, 0, 15, 70, 77, 21, 73, 73, 33, 76, 89, 49, 58, 122, 34, 118, 0, 15, 70, 12, 243, 131, 32, 84, 192, 49, 124, 50,
+			76, 123, 88, 0, 0, 18, 71, 65, 54, 67, 32, 245, 9, 12, 89, 137, 49, 6, 124, 47, 122, 49, 0, 11, 67, 21, 130, 84, 121, 81,
+			88, 122, 47, 0, 9, 67, 9, 84, 192, 71, 125, 89, 0, 0, 11, 68, 32, 21, 133, 76, 107, 35, 84, 88, 0, 15, 70, 72, 18, 77,
+			20, 229, 0, 34, 138, 65, 13, 50, 47, 0, 12, 68, 48, 144, 146, 20, 55, 129, 71, 34, 13, 0, 10, 68, 20, 20, 140, 100, 128, 55,
+			122, 0, 0, 13, 69, 76, 147, 133, 4, 64, 91, 113, 50, 138, 72, 0, 14, 69, 80, 19, 80, 60, 224, 47, 35, 65, 48, 124, 50, 0,
+			9, 198, 56, 21, 9, 88, 149, 25, 66, 0, 0, 9, 67, 81, 165, 64, 47, 89, 134, 0, 17, 71, 72, 83, 132, 21, 99, 213, 76, 34,
+			124, 50, 72, 113, 84, 134, 0, 18, 71, 64, 20, 129, 52, 85, 5, 72, 48, 13, 34, 35, 65, 113, 47, 114, 0, 17, 71, 5, 85, 15,
+			29, 32, 80, 32, 130, 47, 13, 81, 34, 35, 83, 0, 11, 3, 224, 165, 164, 72, 125, 50, 72, 119, 0, 0, 18, 72, 32, 83, 131, 20,
+			99, 210, 80, 128, 107, 121, 50, 89, 83, 133, 87, 0, 0, 12, 69, 92, 149, 8, 21, 32, 58, 122, 86, 114, 0, 9, 198, 77, 64, 77,
+			64, 81, 5, 66, 16, 70, 72, 83, 133, 28, 17, 5, 34, 121, 50, 13, 81, 138, 72, 0, 16, 70, 64, 20, 129, 76, 149, 5, 48, 35,
+			34, 13, 89, 137, 47, 0, 9, 198, 4, 229, 9, 16, 245, 5, 65, 0, 15, 6, 1, 18, 5, 14, 39, 20, 4, 127, 50, 47, 0, 35,
+			12, 15, 70, 92, 80, 147, 37, 65, 64, 58, 121, 71, 89, 137, 47, 0, 9, 198, 64, 194, 67, 5, 65, 64, 66, 14, 70, 8, 150, 129,
+			73, 33, 64, 71, 122, 88, 6, 127, 0, 9, 198, 4, 230, 77, 61, 33, 64, 67, 0, 17, 7, 8, 1, 22, 5, 14, 39, 20, 107, 35,
+			84, 13, 50, 47, 0, 35, 16, 70, 92, 147, 142, 37, 1, 71, 58, 122, 50, 113, 48, 121, 81, 0, 0, 0, 28, 5, 23, 15, 14, 39,
+			20, 58, 6, 136, 50, 47, 35, 84, 47, 116, 0, 32, 12, 82, 104, 97, 118, 101, 32, 116, 111, 32, 23, 5, 23, 15, 14, 39, 20, 58,
+			136, 50, 47, 107, 35, 84, 0, 35, 14, 81, 104, 97, 118, 101, 32, 22, 5, 23, 15, 14, 39, 20, 58, 136, 50, 47, 119, 84, 0, 35,
+			73, 81, 104, 97, 118, 101, 32, 16, 5, 23, 15, 14, 39, 20, 58, 136, 50, 47, 0, 76, 32, 12, 9, 9, 198, 77, 64, 71, 56, 21,
+			5, 66, 17, 70, 76, 84, 1, 72, 21, 5, 89, 121, 48, 114, 34, 138, 47, 0, 36, 16, 70, 76, 84, 1, 72, 21, 5, 89, 121, 48,
+			14, 34, 13, 47, 0, 13, 69, 72, 21, 8, 21, 32, 34, 126, 86, 114, 0, 135, 10, 67, 21, 5, 66, 129, 48, 125, 71, 0, 21, 73,
+			12, 84, 148, 36, 98, 67, 5, 65, 64, 89, 114, 47, 122, 83, 122, 49, 13, 47, 0, 11, 69, 4, 85, 8, 21, 32, 129, 87, 13, 0,
+			0, 15, 70, 72, 81, 133, 73, 32, 76, 34, 113, 83, 128, 34, 118, 0, 13, 70, 56, 245, 200, 21, 33, 64, 50, 136, 58, 140, 0, 14,
+			70, 5, 84, 212, 21, 33, 64, 130, 89, 47, 6, 142, 0, 0, 6, 195, 41, 84, 212, 32, 17, 7, 23, 5, 18, 5, 14, 39, 20, 4,
+			58, 128, 50, 47, 0, 35, 12, 18, 71, 49, 83, 131, 33, 35, 207, 52, 55, 125, 50, 76, 15, 34, 134, 65, 0, 17, 71, 25, 33, 69,
+			48, 19, 131, 20, 83, 34, 129, 55, 120, 50, 89, 0, 0, 11, 68, 4, 20, 143, 56, 140, 34, 13, 50, 0, 19, 72, 24, 18, 18, 20,
+			226, 5, 37, 64, 83, 35, 34, 13, 50, 107, 137, 47, 0, 16, 70, 16, 81, 137, 12, 149, 0, 72, 121, 83, 113, 89, 122, 47, 0, 20,
+			72, 4, 197, 15, 28, 85, 8, 21, 32, 4, 130, 55, 47, 13, 81, 121, 86, 114, 0, 0, 20, 73, 80, 83, 80, 21, 32, 84, 85, 33,
+			64, 47, 121, 65, 48, 34, 113, 76, 114, 0, 9, 198, 61, 85, 3, 72, 244, 0, 65, 8, 197, 5, 32, 66, 36, 48, 65, 0, 16, 70,
+			4, 230, 9, 21, 70, 64, 35, 68, 88, 6, 144, 47, 37, 0, 0, 12, 201, 84, 197, 18, 5, 98, 79, 48, 85, 0, 67, 16, 3, 226,
+			150, 160, 71, 55, 6, 35, 49, 89, 49, 58, 6, 140, 0, 0, 13, 68, 104, 80, 146, 4, 88, 129, 71, 34, 13, 0, 103, 9, 198, 36,
+			228, 212, 20, 17, 0, 8, 11, 68, 80, 21, 1, 72, 47, 126, 47, 114, 0, 11, 68, 48, 149, 5, 72, 55, 129, 47, 114, 0, 0, 14,
+			69, 72, 80, 201, 64, 80, 34, 121, 89, 113, 48, 129, 0, 13, 69, 32, 84, 133, 80, 240, 107, 142, 6, 47, 134, 0, 0, 0, 15, 70,
+			40, 82, 15, 88, 18, 0, 75, 13, 107, 136, 84, 13, 0, 13, 3, 95, 50, 88, 47, 58, 6, 121, 50, 108, 37, 0, 0, 11, 68, 21,
+			21, 65, 48, 129, 49, 58, 118, 0, 0, 14, 69, 64, 148, 129, 13, 144, 48, 145, 34, 13, 89, 37, 0, 15, 69, 12, 244, 205, 61, 48,
+			49, 124, 88, 65, 136, 89, 0, 103, 14, 69, 12, 244, 205, 61, 48, 49, 124, 88, 65, 124, 89, 0, 14, 69, 12, 241, 9, 25, 144, 49,
+			136, 72, 113, 83, 137, 0, 0, 13, 202, 36, 229, 5, 73, 35, 199, 5, 67, 210, 100, 67, 0, 17, 70, 76, 49, 78, 5, 34, 79, 89,
+			13, 50, 35, 34, 37, 136, 0, 103, 16, 70, 76, 49, 78, 5, 34, 79, 89, 13, 50, 127, 34, 37, 136, 0, 17, 71, 52, 19, 135, 21,
+			67, 213, 80, 65, 124, 50, 90, 47, 6, 134, 0, 19, 71, 16, 240, 212, 72, 147, 129, 48, 72, 124, 49, 47, 34, 6, 137, 50, 118, 0,
+			0, 11, 68, 16, 21, 137, 20, 72, 138, 84, 37, 0, 0, 14, 69, 88, 17, 193, 73, 144, 84, 138, 81, 13, 34, 122, 0, 14, 69, 80,
+			84, 212, 21, 48, 47, 121, 89, 47, 129, 88, 0, 8, 197, 61, 85, 12, 5, 144, 65, 0, 15, 70, 72, 84, 212, 25, 83, 0, 34, 121,
+			89, 47, 83, 118, 0, 17, 70, 52, 145, 20, 21, 35, 64, 65, 6, 122, 72, 47, 4, 128, 65, 0, 0, 20, 71, 25, 35, 206, 81, 0,
+			71, 20, 83, 34, 6, 125, 50, 47, 48, 4, 138, 75, 0, 0, 22, 72, 28, 193, 78, 72, 245, 8, 21, 48, 81, 55, 4, 121, 50, 34,
+			6, 124, 87, 123, 89, 0, 0, 12, 69, 48, 85, 8, 4, 192, 55, 129, 87, 118, 0, 14, 69, 32, 84, 143, 36, 224, 107, 121, 34, 136,
+			122, 50, 0, 0, 11, 67, 76, 83, 73, 89, 121, 65, 137, 0, 103, 0, 0, 11, 68, 76, 16, 146, 20, 89, 138, 71, 114, 0, 11, 3,
+			95, 63, 63, 89, 122, 65, 71, 118, 0, 0, 13, 69, 5, 35, 213, 56, 64, 119, 34, 135, 50, 72, 0, 14, 69, 80, 245, 193, 72, 64,
+			47, 117, 58, 132, 72, 0, 66, 14, 69, 64, 20, 212, 20, 64, 48, 138, 89, 47, 123, 72, 0, 13, 69, 9, 34, 68, 4, 192, 71, 34,
+			137, 72, 118, 0, 13, 67, 49, 65, 0, 55, 122, 65, 113, 47, 113, 72, 0, 0, 5, 194, 49, 64, 24, 11, 66, 53, 32, 65, 122, 89,
+			47, 114, 0, 24, 0, 19, 71, 5, 85, 15, 52, 21, 15, 56, 130, 47, 6, 124, 65, 13, 47, 13, 50, 0, 11, 3, 95, 52, 88, 83,
+			6, 133, 47, 37, 0, 0, 26, 68, 24, 148, 147, 80, 83, 6, 147, 89, 47, 10, 48, 55, 4, 138, 89, 0, 105, 81, 112, 108, 97, 99,
+			101, 32, 25, 68, 24, 148, 147, 80, 83, 6, 128, 89, 47, 10, 48, 55, 4, 138, 89, 0, 81, 112, 108, 97, 99, 101, 32, 0, 9, 67,
+			76, 80, 78, 91, 130, 50, 0, 17, 70, 104, 147, 66, 4, 37, 197, 88, 113, 65, 71, 126, 71, 58, 37, 0, 11, 67, 60, 208, 78, 136,
+			65, 6, 35, 50, 0, 8, 197, 85, 3, 9, 25, 64, 66, 8, 197, 36, 228, 197, 13, 64, 65, 0, 0, 9, 67, 56, 240, 72, 50, 136,
+			125, 0, 0, 0, 13, 69, 8, 241, 193, 73, 64, 71, 136, 81, 127, 47, 0, 8, 197, 60, 34, 133, 13, 64, 36, 9, 197, 60, 34, 133,
+			13, 64, 65, 10, 0, 10, 66, 28, 240, 4, 81, 136, 0, 12, 9, 15, 66, 48, 80, 55, 129, 6, 35, 50, 0, 81, 97, 110, 110, 32,
+			15, 70, 64, 244, 148, 84, 112, 76, 48, 133, 76, 13, 81, 118, 0, 15, 70, 65, 33, 70, 4, 49, 64, 48, 34, 121, 83, 13, 89, 0,
+			9, 66, 48, 80, 55, 13, 23, 0, 9, 15, 70, 32, 244, 212, 4, 113, 64, 107, 124, 89, 47, 113, 75, 0, 9, 198, 24, 147, 129, 56,
+			49, 64, 36, 16, 70, 24, 147, 129, 56, 49, 64, 83, 137, 50, 35, 50, 89, 0, 9, 0, 17, 71, 72, 81, 133, 72, 83, 131, 20, 34,
+			121, 83, 34, 13, 50, 89, 0, 14, 70, 52, 19, 77, 61, 66, 0, 65, 35, 65, 13, 87, 0, 12, 3, 95, 53, 88, 83, 6, 122, 83,
+			47, 37, 0, 0, 10, 68, 76, 145, 8, 20, 91, 129, 13, 0, 11, 68, 48, 21, 20, 20, 55, 126, 108, 138, 0, 0, 13, 67, 28, 245,
+			0, 2, 81, 124, 47, 0, 12, 35, 9, 15, 69, 28, 243, 69, 72, 16, 81, 136, 65, 6, 140, 34, 13, 0, 17, 70, 81, 32, 86, 21,
+			53, 25, 47, 34, 35, 84, 13, 89, 47, 37, 0, 13, 69, 25, 84, 195, 36, 16, 83, 57, 134, 91, 13, 0, 13, 69, 16, 148, 15, 48,
+			80, 72, 137, 48, 136, 55, 0, 20, 73, 8, 245, 82, 28, 83, 201, 76, 145, 64, 71, 143, 90, 58, 126, 88, 6, 129, 0, 0, 16, 70,
+			52, 148, 129, 8, 83, 0, 65, 122, 34, 13, 71, 121, 55, 0, 14, 70, 56, 244, 134, 60, 194, 192, 50, 132, 83, 13, 49, 0, 15, 70,
+			56, 21, 21, 72, 19, 0, 50, 35, 76, 13, 34, 118, 0, 0, 16, 71, 76, 86, 67, 32, 83, 12, 20, 89, 138, 91, 6, 121, 55, 0,
+			20, 71, 21, 131, 206, 21, 32, 84, 20, 121, 81, 88, 6, 124, 50, 13, 34, 138, 47, 0, 18, 71, 16, 148, 208, 5, 32, 84, 20, 72,
+			122, 89, 48, 13, 34, 13, 47, 0, 0, 9, 198, 21, 132, 12, 60, 149, 0, 36, 10, 198, 21, 132, 12, 60, 149, 0, 65, 10, 0, 13,
+			69, 81, 34, 65, 28, 80, 47, 34, 129, 126, 90, 0, 14, 69, 76, 85, 133, 72, 80, 89, 113, 84, 6, 142, 0, 9, 13, 69, 76, 49,
+			78, 36, 48, 89, 129, 50, 122, 49, 0, 14, 69, 64, 81, 1, 48, 240, 48, 121, 72, 13, 55, 136, 0, 13, 69, 52, 19, 149, 72, 80,
+			65, 13, 50, 57, 143, 0, 0, 9, 198, 28, 243, 196, 16, 22, 64, 66, 15, 70, 13, 85, 1, 92, 22, 64, 49, 125, 47, 13, 58, 138,
+			0, 0, 9, 67, 56, 245, 20, 50, 124, 47, 0, 18, 71, 20, 193, 67, 81, 35, 196, 20, 113, 55, 121, 49, 47, 34, 136, 72, 0, 6,
+			195, 60, 83, 64, 17, 13, 3, 95, 54, 88, 89, 6, 122, 49, 89, 47, 37, 0, 0, 11, 68, 69, 80, 83, 32, 49, 58, 124, 91, 0,
+			0, 13, 69, 72, 16, 130, 37, 48, 34, 35, 71, 137, 88, 0, 13, 69, 32, 245, 11, 21, 144, 107, 124, 47, 49, 129, 0, 22, 73, 9,
+			84, 133, 5, 80, 210, 4, 54, 64, 71, 57, 143, 6, 124, 49, 34, 13, 89, 37, 0, 13, 4, 95, 53, 48, 15, 83, 6, 122, 83, 47,
+			141, 0, 0, 10, 67, 12, 195, 197, 49, 55, 136, 37, 0, 17, 7, 2, 15, 7, 15, 20, 195, 161, 98, 111, 103, 111, 116, 97, 0, 29,
+			15, 70, 52, 19, 22, 21, 35, 128, 65, 130, 55, 84, 114, 50, 0, 10, 67, 52, 19, 65, 65, 126, 65, 119, 0, 0, 16, 71, 29, 33,
+			69, 57, 114, 67, 32, 81, 34, 121, 50, 122, 76, 0, 0, 10, 67, 56, 245, 19, 50, 124, 47, 89, 0, 15, 70, 52, 243, 147, 36, 85,
+			82, 65, 13, 89, 57, 148, 0, 105, 14, 70, 52, 243, 147, 36, 85, 82, 65, 13, 89, 57, 128, 0, 0, 15, 69, 4, 52, 143, 77, 48,
+			13, 49, 34, 124, 89, 0, 74, 12, 13, 69, 32, 84, 144, 21, 48, 107, 128, 48, 129, 88, 0, 14, 69, 12, 19, 80, 85, 48, 49, 35,
+			65, 48, 13, 89, 0, 0, 0, 21, 73, 12, 243, 142, 20, 53, 9, 13, 85, 0, 49, 13, 50, 121, 47, 113, 49, 13, 47, 0, 16, 70,
+			36, 225, 129, 52, 245, 83, 122, 50, 83, 13, 65, 13, 89, 0, 0, 12, 68, 64, 17, 18, 20, 48, 126, 72, 34, 138, 0, 0, 16, 69,
+			92, 149, 8, 36, 224, 58, 122, 86, 122, 50, 0, 74, 12, 28, 13, 69, 56, 21, 8, 4, 224, 50, 138, 87, 13, 50, 0, 15, 70, 12,
+			243, 77, 20, 224, 197, 49, 13, 65, 121, 50, 89, 0, 0, 0, 7, 195, 48, 36, 192, 17, 42, 11, 67, 48, 36, 192, 48, 135, 50, 72,
+			88, 0, 0, 12, 68, 16, 21, 137, 76, 72, 138, 84, 122, 89, 0, 12, 68, 52, 150, 5, 72, 65, 122, 49, 89, 114, 0, 0, 13, 69,
+			4, 97, 200, 4, 224, 35, 83, 81, 35, 50, 0, 15, 69, 36, 228, 212, 4, 192, 122, 50, 89, 47, 6, 130, 55, 0, 0, 14, 70, 12,
+			243, 142, 20, 195, 0, 49, 124, 50, 13, 55, 0, 0, 9, 67, 104, 241, 64, 88, 136, 37, 0, 17, 71, 48, 147, 79, 85, 50, 78, 20,
+			55, 122, 65, 13, 88, 129, 50, 0, 13, 67, 13, 68, 140, 49, 13, 50, 47, 34, 136, 55, 0, 10, 3, 95, 56, 88, 6, 138, 47, 37,
+			0, 0, 11, 200, 36, 228, 201, 28, 133, 6, 84, 192, 66, 12, 68, 32, 84, 143, 16, 107, 121, 34, 13, 72, 0, 0, 8, 197, 61, 85,
+			16, 85, 64, 65, 16, 70, 56, 81, 204, 36, 113, 69, 50, 121, 81, 55, 122, 90, 138, 0, 14, 69, 52, 84, 133, 77, 64, 65, 141, 34,
+			13, 89, 47, 0, 20, 67, 52, 18, 78, 65, 6, 138, 50, 89, 47, 34, 4, 129, 47, 0, 81, 115, 116, 32, 8, 197, 21, 132, 15, 73,
+			64, 36, 9, 197, 21, 132, 15, 73, 64, 65, 10, 0, 16, 70, 93, 147, 205, 36, 225, 192, 58, 137, 6, 136, 65, 122, 68, 0, 15, 70,
+			65, 33, 83, 4, 113, 64, 48, 34, 121, 89, 122, 75, 0, 0, 0, 12, 68, 52, 20, 137, 4, 65, 119, 34, 129, 13, 0, 11, 68, 32,
+			84, 143, 20, 107, 141, 34, 136, 0, 19, 72, 12, 128, 78, 16, 83, 9, 21, 32, 91, 35, 50, 72, 13, 55, 6, 142, 0, 20, 72, 12,
+			20, 130, 85, 33, 84, 61, 32, 49, 127, 71, 13, 34, 138, 47, 114, 0, 103, 20, 72, 12, 20, 130, 85, 33, 84, 61, 32, 49, 127, 71,
+			13, 34, 6, 121, 47, 114, 0, 0, 9, 67, 36, 18, 78, 129, 13, 50, 0, 14, 69, 8, 197, 69, 77, 64, 71, 55, 134, 13, 89, 47,
+			0, 0, 9, 66, 52, 80, 65, 129, 0, 15, 14, 9, 66, 52, 80, 4, 65, 129, 0, 9, 14, 70, 80, 16, 140, 20, 21, 64, 47, 35,
+			71, 55, 136, 0, 14, 70, 52, 147, 5, 4, 113, 64, 65, 137, 55, 113, 75, 0, 16, 70, 12, 20, 18, 36, 49, 64, 49, 119, 48, 34,
+			6, 129, 89, 0, 0, 12, 3, 95, 57, 88, 50, 6, 137, 50, 47, 37, 0, 0, 14, 70, 32, 20, 146, 36, 85, 0, 107, 35, 34, 141,
+			47, 0, 16, 70, 56, 81, 204, 20, 53, 0, 50, 113, 81, 55, 121, 49, 47, 0, 15, 70, 13, 35, 207, 44, 81, 0, 49, 34, 117, 49,
+			122, 72, 0, 19, 72, 9, 81, 7, 21, 34, 71, 5, 32, 71, 125, 75, 13, 34, 122, 81, 127, 0, 0, 17, 69, 32, 21, 137, 56, 112,
+			4, 107, 35, 84, 122, 68, 0, 12, 35, 9, 13, 69, 72, 80, 68, 52, 80, 34, 129, 72, 65, 129, 0, 16, 69, 25, 84, 143, 72, 80,
+			83, 57, 134, 34, 6, 130, 34, 37, 0, 14, 69, 12, 241, 206, 4, 48, 49, 124, 50, 57, 35, 49, 0, 15, 70, 8, 243, 136, 60, 210,
+			69, 71, 124, 50, 13, 65, 129, 0, 0, 14, 70, 48, 147, 132, 76, 86, 64, 55, 122, 50, 88, 37, 0, 8, 67, 52, 22, 65, 65, 144,
+			0, 14, 70, 77, 81, 134, 60, 194, 192, 89, 125, 83, 13, 49, 0, 13, 202, 12, 148, 131, 84, 209, 133, 72, 83, 131, 20, 66, 16, 70,
+			8, 148, 5, 16, 19, 0, 71, 137, 48, 6, 129, 72, 118, 0, 9, 67, 4, 131, 217, 119, 107, 139, 0, 0, 26, 67, 52, 22, 64, 4,
+			65, 138, 107, 6, 35, 84, 47, 116, 0, 32, 14, 82, 104, 97, 118, 101, 32, 116, 111, 32, 19, 67, 52, 22, 64, 65, 138, 107, 119, 84,
+			0, 35, 77, 81, 104, 97, 118, 101, 32, 10, 67, 52, 22, 64, 65, 138, 0, 32, 12, 15, 71, 12, 128, 82, 48, 245, 20, 20, 91, 127,
+			55, 13, 47, 0, 18, 71, 76, 80, 210, 21, 64, 82, 100, 89, 121, 49, 34, 13, 47, 34, 122, 0, 20, 71, 37, 66, 78, 21, 32, 82,
+			100, 137, 47, 6, 122, 50, 13, 34, 13, 34, 122, 0, 17, 71, 29, 35, 211, 88, 83, 143, 72, 81, 34, 136, 84, 13, 50, 114, 0, 0,
+			13, 68, 52, 83, 149, 76, 65, 121, 50, 57, 134, 88, 0, 16, 70, 12, 244, 9, 48, 245, 0, 49, 136, 48, 137, 55, 13, 47, 0, 0,
+			15, 69, 4, 230, 79, 56, 80, 121, 50, 122, 58, 125, 50, 0, 106, 14, 69, 4, 230, 79, 56, 80, 121, 50, 122, 58, 124, 50, 0, 9,
+			67, 60, 208, 82, 136, 65, 127, 0, 14, 69, 56, 245, 77, 20, 16, 50, 134, 65, 6, 138, 13, 0, 14, 69, 12, 20, 9, 80, 16, 49,
+			35, 48, 122, 47, 13, 0, 12, 69, 8, 195, 213, 76, 80, 71, 55, 135, 88, 0, 0, 17, 70, 65, 34, 86, 4, 54, 64, 48, 34, 137,
+			84, 13, 89, 37, 0, 103, 16, 70, 81, 34, 76, 60, 118, 64, 47, 34, 122, 55, 13, 75, 37, 0, 15, 70, 72, 80, 201, 80, 19, 0,
+			34, 113, 89, 137, 47, 118, 0, 11, 3, 95, 63, 65, 55, 4, 121, 47, 114, 0, 0, 10, 199, 76, 80, 129, 77, 66, 65, 56, 66, 18,
+			71, 4, 69, 133, 73, 48, 82, 100, 35, 72, 84, 114, 89, 13, 34, 37, 0, 0, 20, 72, 77, 68, 153, 12, 131, 137, 56, 80, 89, 47,
+			34, 6, 122, 49, 50, 129, 50, 0, 12, 68, 72, 81, 137, 80, 34, 129, 83, 122, 47, 0, 0, 0, 0, 0, 9, 198, 92, 245, 76, 17,
+			53, 0, 76, 16, 70, 52, 144, 200, 36, 112, 78, 65, 122, 91, 122, 81, 13, 50, 0, 10, 68, 12, 244, 144, 76, 49, 132, 0, 9, 0,
+			17, 70, 77, 84, 137, 56, 19, 69, 89, 143, 34, 122, 50, 6, 35, 65, 0, 14, 69, 64, 19, 20, 73, 144, 48, 130, 55, 47, 34, 122,
+			0, 14, 69, 33, 80, 146, 37, 48, 107, 134, 71, 34, 122, 89, 0, 0, 11, 67, 85, 3, 206, 13, 48, 124, 50, 0, 74, 16, 70, 72,
+			84, 85, 36, 83, 64, 34, 121, 49, 58, 113, 121, 65, 0, 17, 70, 61, 33, 71, 4, 227, 192, 124, 34, 122, 81, 6, 126, 50, 136, 0,
+			0, 19, 66, 36, 224, 122, 50, 119, 15, 34, 6, 136, 0, 82, 97, 32, 114, 111, 119, 32, 20, 66, 36, 224, 122, 50, 15, 58, 122, 76,
+			0, 74, 8, 81, 119, 104, 105, 99, 104, 32, 15, 66, 36, 224, 2, 122, 50, 86, 115, 0, 81, 116, 104, 101, 32, 11, 66, 36, 224, 2,
+			122, 50, 0, 11, 9, 34, 20, 71, 52, 83, 129, 28, 84, 137, 20, 65, 13, 50, 6, 35, 75, 57, 13, 34, 37, 0, 5, 194, 56, 64,
+			9, 9, 3, 226, 153, 175, 91, 127, 48, 0, 0, 15, 70, 16, 147, 143, 76, 21, 82, 72, 137, 50, 13, 89, 132, 0, 6, 195, 61, 67,
+			200, 17, 6, 195, 53, 144, 64, 17, 11, 4, 95, 8, 15, 11, 107, 6, 117, 49, 0, 0, 11, 68, 104, 18, 82, 20, 88, 137, 6, 142,
+			0, 10, 68, 76, 131, 206, 20, 91, 124, 50, 0, 12, 68, 32, 84, 143, 56, 107, 121, 34, 13, 50, 0, 10, 3, 226, 153, 173, 83, 55,
+			35, 47, 0, 0, 0, 16, 70, 13, 84, 146, 20, 229, 0, 49, 6, 114, 13, 50, 47, 0, 103, 18, 70, 53, 82, 1, 52, 208, 68, 109,
+			111, 104, 97, 109, 109, 97, 100, 0, 29, 9, 198, 85, 5, 9, 28, 133, 0, 66, 16, 70, 64, 243, 9, 80, 84, 128, 48, 13, 55, 6,
+			137, 47, 114, 0, 0, 19, 71, 33, 148, 5, 72, 35, 204, 4, 107, 137, 48, 6, 128, 71, 13, 55, 13, 0, 15, 4, 95, 15, 7, 15,
+			6, 124, 81, 124, 50, 4, 121, 49, 0, 0, 13, 68, 56, 243, 206, 20, 50, 136, 58, 125, 50, 0, 106, 12, 68, 56, 243, 206, 20, 50,
+			136, 58, 124, 50, 0, 12, 68, 61, 97, 82, 80, 136, 84, 6, 128, 47, 0, 0, 13, 69, 72, 81, 9, 4, 192, 34, 129, 72, 144, 55,
+			0, 0, 9, 66, 61, 32, 132, 0, 72, 8, 9, 10, 67, 65, 35, 211, 48, 34, 136, 88, 0, 15, 70, 32, 243, 19, 80, 84, 128, 107,
+			136, 55, 89, 47, 114, 0, 13, 202, 16, 83, 79, 57, 53, 18, 5, 66, 86, 20, 66, 0, 0, 0, 0, 10, 67, 76, 83, 147, 89, 121,
+			50, 89, 0, 0, 13, 67, 92, 83, 148, 2, 58, 121, 50, 47, 0, 12, 9, 17, 71, 4, 69, 133, 73, 66, 83, 20, 35, 72, 84, 114,
+			47, 137, 88, 0, 0, 21, 72, 52, 17, 1, 28, 20, 195, 5, 32, 65, 35, 72, 13, 81, 6, 35, 89, 49, 114, 0, 0, 11, 69, 48,
+			21, 217, 21, 32, 55, 139, 114, 0, 12, 69, 9, 84, 147, 5, 32, 71, 128, 89, 114, 0, 0, 15, 70, 16, 148, 197, 5, 49, 64, 72,
+			122, 88, 6, 129, 88, 0, 17, 70, 12, 243, 134, 72, 243, 148, 49, 13, 50, 83, 34, 125, 50, 47, 0, 15, 70, 4, 229, 9, 69, 81,
+			64, 35, 50, 47, 6, 129, 49, 0, 0, 10, 67, 29, 82, 64, 81, 134, 37, 0, 10, 0, 16, 8, 20, 8, 5, 18, 5, 39, 12, 12,
+			86, 140, 55, 0, 72, 32, 10, 67, 72, 243, 137, 34, 124, 50, 37, 0, 13, 68, 80, 86, 1, 76, 47, 121, 49, 89, 13, 89, 0, 9,
+			198, 61, 134, 77, 61, 35, 206, 67, 10, 67, 28, 83, 137, 75, 129, 50, 37, 0, 0, 14, 69, 52, 19, 1, 92, 144, 65, 119, 55, 126,
+			58, 37, 0, 14, 69, 28, 83, 133, 88, 16, 75, 13, 50, 129, 84, 13, 0, 13, 69, 60, 85, 86, 72, 80, 148, 84, 34, 13, 0, 105,
+			12, 69, 60, 85, 86, 72, 80, 128, 84, 34, 13, 0, 17, 70, 24, 244, 133, 57, 50, 67, 83, 13, 34, 121, 50, 89, 122, 49, 0, 8,
+			197, 5, 32, 193, 16, 80, 66, 0, 16, 70, 76, 243, 9, 12, 149, 0, 89, 13, 55, 122, 89, 113, 47, 0, 0, 18, 71, 80, 83, 80,
+			61, 32, 82, 100, 47, 121, 65, 48, 34, 13, 34, 122, 0, 20, 71, 52, 85, 1, 8, 243, 9, 12, 65, 121, 47, 13, 71, 6, 124, 55,
+			122, 49, 0, 0, 12, 68, 4, 32, 66, 4, 35, 71, 119, 71, 13, 0, 12, 68, 72, 80, 68, 16, 34, 129, 6, 35, 72, 0, 0, 12,
+			69, 64, 84, 147, 36, 16, 48, 128, 90, 13, 0, 14, 69, 44, 244, 207, 88, 240, 49, 124, 89, 13, 84, 136, 0, 12, 69, 65, 54, 67,
+			32, 80, 89, 137, 49, 129, 0, 8, 67, 40, 245, 82, 90, 143, 0, 0, 13, 70, 65, 54, 67, 32, 81, 0, 89, 137, 49, 72, 0, 9,
+			198, 61, 85, 2, 85, 36, 212, 65, 5, 194, 61, 48, 17, 0, 9, 67, 36, 19, 128, 129, 13, 50, 0, 14, 203, 36, 225, 146, 5, 53,
+			18, 84, 53, 21, 72, 80, 65, 17, 71, 24, 244, 133, 77, 64, 76, 48, 83, 133, 89, 47, 6, 130, 55, 0, 16, 71, 5, 48, 197, 73,
+			64, 73, 56, 35, 89, 114, 47, 138, 50, 0, 0, 9, 67, 56, 243, 133, 50, 125, 50, 0, 11, 68, 8, 84, 153, 48, 71, 121, 34, 118,
+			0, 0, 13, 69, 84, 225, 9, 21, 48, 125, 50, 72, 37, 88, 0, 12, 201, 12, 243, 148, 72, 245, 133, 73, 54, 64, 65, 14, 69, 12,
+			19, 129, 73, 144, 49, 13, 50, 140, 34, 37, 0, 15, 70, 4, 230, 84, 32, 147, 135, 121, 50, 113, 87, 122, 68, 0, 6, 195, 65, 35,
+			198, 24, 0, 17, 70, 32, 84, 143, 37, 51, 64, 107, 121, 34, 136, 122, 88, 13, 65, 0, 15, 70, 20, 66, 84, 36, 243, 128, 113, 72,
+			122, 91, 13, 50, 0, 17, 70, 8, 149, 21, 52, 83, 128, 71, 122, 76, 134, 65, 13, 50, 0, 135, 13, 4, 95, 48, 77, 50, 65, 6,
+			122, 55, 141, 50, 0, 0, 10, 198, 12, 17, 134, 20, 147, 133, 103, 66, 19, 71, 40, 84, 149, 76, 19, 5, 52, 75, 13, 34, 134, 89,
+			13, 55, 13, 65, 0, 9, 67, 72, 245, 84, 34, 135, 47, 0, 17, 71, 72, 81, 133, 73, 34, 78, 28, 34, 113, 83, 128, 34, 122, 68,
+			0, 13, 4, 95, 48, 77, 51, 71, 6, 122, 55, 141, 50, 0, 0, 11, 68, 52, 20, 137, 20, 65, 119, 34, 129, 0, 12, 68, 44, 20,
+			21, 80, 49, 119, 48, 117, 47, 0, 0, 23, 73, 56, 85, 198, 61, 83, 132, 48, 19, 132, 50, 57, 134, 83, 13, 50, 72, 55, 119, 50,
+			72, 0, 14, 69, 77, 68, 137, 65, 144, 89, 47, 34, 137, 48, 122, 0, 13, 69, 64, 21, 8, 61, 48, 48, 138, 87, 124, 89, 0, 14,
+			4, 95, 48, 77, 49, 87, 6, 135, 88, 13, 50, 72, 0, 0, 17, 70, 88, 243, 3, 4, 227, 192, 84, 124, 55, 49, 6, 138, 50, 136,
+			0, 12, 4, 95, 2, 18, 22, 71, 34, 6, 129, 84, 0, 0, 0, 12, 68, 8, 85, 23, 76, 71, 121, 47, 117, 89, 0, 0, 10, 67,
+			77, 81, 90, 89, 134, 113, 88, 0, 12, 201, 77, 84, 5, 73, 98, 83, 36, 243, 128, 67, 14, 69, 52, 20, 131, 20, 192, 65, 127, 89,
+			6, 121, 55, 0, 17, 70, 20, 212, 8, 5, 50, 83, 121, 65, 83, 13, 89, 122, 89, 0, 9, 12, 69, 12, 130, 83, 20, 192, 76, 122,
+			88, 118, 0, 0, 15, 70, 52, 83, 9, 77, 48, 64, 65, 13, 55, 122, 89, 13, 0, 9, 198, 52, 83, 12, 37, 48, 64, 66, 9, 198,
+			92, 81, 75, 20, 225, 0, 66, 13, 70, 52, 19, 136, 61, 84, 128, 65, 35, 50, 146, 0, 0, 10, 67, 56, 244, 128, 50, 132, 0, 8,
+			9, 18, 67, 24, 244, 128, 83, 132, 58, 124, 50, 0, 66, 14, 81, 111, 110, 101, 32, 23, 67, 24, 244, 128, 83, 13, 13, 15, 58, 6,
+			137, 55, 0, 82, 97, 32, 119, 104, 105, 108, 101, 32, 16, 67, 24, 244, 128, 83, 114, 86, 115, 0, 34, 81, 116, 104, 101, 32, 15, 67,
+			24, 244, 128, 83, 13, 13, 50, 0, 34, 81, 97, 110, 32, 13, 67, 24, 244, 128, 83, 13, 13, 0, 34, 81, 97, 32, 9, 67, 24, 244,
+			128, 83, 132, 0, 72, 18, 71, 76, 80, 210, 21, 66, 86, 20, 89, 129, 49, 34, 13, 47, 122, 84, 0, 15, 71, 13, 35, 201, 77, 48,
+			78, 80, 49, 58, 126, 89, 150, 0, 0, 16, 67, 52, 19, 153, 65, 121, 50, 122, 13, 84, 0, 81, 111, 102, 32, 11, 67, 52, 19, 153,
+			65, 121, 50, 37, 0, 34, 11, 67, 92, 84, 133, 2, 58, 128, 0, 35, 9, 15, 70, 8, 244, 215, 20, 195, 0, 71, 124, 88, 58, 121,
+			55, 0, 12, 68, 76, 147, 79, 56, 89, 137, 65, 13, 50, 0, 9, 67, 20, 148, 133, 140, 34, 13, 0, 0, 14, 69, 8, 21, 13, 4,
+			224, 71, 35, 47, 65, 35, 50, 0, 0, 15, 70, 76, 83, 129, 80, 244, 128, 89, 121, 50, 13, 47, 114, 0, 0, 10, 199, 64, 243, 25,
+			80, 129, 78, 20, 65, 0, 12, 68, 32, 243, 193, 32, 107, 6, 134, 6, 126, 0, 0, 14, 69, 8, 83, 143, 37, 64, 71, 121, 50, 58,
+			6, 126, 0, 12, 201, 53, 83, 20, 37, 3, 5, 96, 84, 128, 65, 13, 69, 4, 35, 1, 85, 64, 35, 71, 55, 135, 47, 0, 0, 16,
+			70, 8, 80, 193, 85, 49, 64, 71, 122, 49, 125, 88, 0, 66, 8, 0, 0, 0, 13, 5, 23, 5, 39, 12, 12, 58, 129, 55, 0, 72,
+			32, 14, 69, 20, 194, 67, 37, 64, 113, 55, 122, 89, 113, 47, 0, 0, 14, 70, 12, 129, 77, 37, 49, 64, 91, 13, 65, 129, 88, 0,
+			24, 66, 44, 208, 89, 49, 58, 4, 140, 49, 122, 55, 6, 124, 65, 122, 47, 114, 88, 0, 81, 194, 178, 32, 0, 19, 71, 9, 80, 200,
+			5, 33, 83, 80, 71, 134, 49, 119, 34, 6, 121, 89, 47, 0, 16, 70, 8, 20, 130, 21, 21, 69, 71, 127, 71, 13, 49, 57, 134, 0,
+			0, 11, 68, 52, 242, 82, 4, 65, 139, 34, 13, 0, 13, 68, 80, 22, 9, 76, 47, 35, 49, 89, 37, 88, 0, 12, 68, 24, 85, 21,
+			76, 83, 129, 47, 13, 89, 0, 0, 14, 69, 80, 18, 80, 20, 144, 47, 4, 137, 48, 6, 138, 0, 15, 69, 8, 146, 201, 56, 144, 71,
+			122, 49, 6, 129, 50, 37, 0, 0, 16, 70, 52, 147, 4, 72, 81, 0, 65, 122, 55, 72, 34, 113, 72, 0, 9, 198, 61, 85, 19, 44,
+			148, 148, 65, 16, 70, 8, 19, 145, 84, 85, 0, 71, 35, 68, 49, 58, 113, 47, 0, 0, 14, 70, 56, 244, 151, 36, 50, 0, 50, 124,
+			34, 113, 76, 0, 19, 71, 80, 83, 5, 52, 85, 18, 100, 47, 13, 55, 121, 65, 13, 47, 34, 37, 0, 19, 71, 33, 148, 5, 72, 35,
+			204, 20, 107, 137, 48, 6, 128, 71, 13, 55, 37, 0, 16, 70, 21, 2, 80, 32, 19, 153, 113, 48, 122, 83, 13, 50, 122, 0, 17, 71,
+			12, 132, 137, 77, 67, 65, 76, 49, 34, 122, 89, 65, 13, 89, 0, 0, 11, 67, 60, 227, 25, 136, 50, 55, 37, 0, 40, 12, 68, 16,
+			244, 137, 76, 72, 124, 34, 122, 89, 0, 15, 70, 13, 34, 67, 33, 67, 206, 49, 34, 137, 47, 13, 50, 0, 12, 68, 8, 244, 137, 76,
+			71, 124, 34, 122, 89, 0, 11, 68, 16, 128, 66, 36, 72, 126, 71, 37, 0, 11, 68, 69, 81, 83, 60, 49, 138, 89, 136, 0, 18, 72,
+			65, 33, 83, 12, 145, 78, 12, 80, 48, 34, 129, 89, 141, 50, 89, 0, 0, 13, 69, 24, 16, 201, 48, 80, 83, 35, 89, 118, 0, 103,
+			13, 69, 12, 80, 201, 48, 80, 89, 121, 89, 129, 55, 0, 8, 197, 85, 1, 1, 80, 80, 36, 9, 197, 85, 1, 1, 80, 80, 65, 10,
+			13, 69, 76, 81, 1, 80, 80, 89, 113, 72, 138, 47, 0, 15, 69, 12, 194, 67, 32, 80, 49, 55, 129, 91, 6, 138, 0, 103, 13, 69,
+			12, 194, 67, 32, 80, 49, 55, 129, 91, 138, 0, 0, 10, 66, 53, 144, 65, 137, 0, 72, 34, 12, 0, 10, 67, 77, 81, 84, 89, 134,
+			113, 47, 0, 19, 71, 65, 35, 205, 20, 224, 68, 20, 48, 34, 124, 65, 13, 50, 6, 126, 72, 0, 28, 75, 36, 225, 9, 76, 52, 137,
+			52, 147, 129, 80, 80, 122, 50, 72, 113, 89, 49, 34, 6, 122, 65, 113, 50, 13, 47, 0, 0, 18, 72, 93, 35, 206, 28, 67, 201, 56,
+			112, 34, 124, 68, 72, 134, 122, 68, 0, 0, 0, 15, 70, 80, 131, 213, 76, 19, 132, 87, 135, 88, 13, 50, 72, 0, 13, 202, 32, 84,
+			141, 5, 2, 18, 60, 66, 84, 20, 66, 16, 70, 12, 131, 210, 37, 163, 192, 76, 131, 34, 6, 129, 88, 136, 0, 15, 70, 8, 20, 212,
+			36, 243, 128, 71, 35, 89, 47, 141, 50, 0, 0, 15, 67, 61, 85, 0, 4, 135, 47, 13, 84, 0, 81, 111, 102, 32, 19, 71, 20, 66,
+			78, 9, 84, 135, 32, 121, 72, 122, 50, 71, 2, 125, 34, 13, 0, 18, 71, 21, 21, 73, 88, 240, 193, 48, 113, 49, 58, 122, 84, 13,
+			49, 118, 0, 0, 11, 68, 48, 84, 143, 100, 55, 129, 34, 139, 0, 0, 13, 69, 52, 245, 137, 21, 48, 65, 134, 84, 122, 88, 0, 0,
+			20, 66, 60, 96, 125, 84, 58, 122, 76, 0, 106, 66, 8, 81, 119, 104, 105, 99, 104, 32, 17, 66, 60, 96, 2, 125, 84, 86, 115, 0,
+			106, 34, 81, 116, 104, 101, 32, 16, 66, 60, 96, 3, 124, 84, 86, 115, 0, 34, 81, 116, 104, 101, 32, 19, 66, 60, 96, 124, 84, 58,
+			122, 76, 0, 66, 8, 81, 119, 104, 105, 99, 104, 32, 14, 66, 60, 96, 13, 84, 13, 50, 0, 34, 81, 97, 110, 32, 12, 66, 60, 96,
+			13, 84, 13, 0, 34, 81, 97, 32, 10, 66, 60, 96, 125, 84, 0, 106, 72, 9, 9, 66, 60, 96, 124, 84, 0, 72, 9, 14, 70, 76,
+			147, 194, 32, 19, 128, 91, 13, 84, 130, 50, 0, 14, 70, 8, 19, 12, 60, 243, 128, 71, 13, 55, 134, 50, 0, 16, 70, 4, 33, 15,
+			52, 83, 128, 35, 71, 72, 13, 65, 13, 50, 0, 0, 16, 70, 52, 243, 143, 80, 243, 133, 65, 124, 50, 13, 47, 136, 50, 0, 9, 67,
+			52, 144, 192, 65, 137, 49, 0, 17, 70, 24, 193, 88, 36, 35, 5, 83, 55, 121, 49, 89, 122, 71, 118, 0, 0, 9, 68, 92, 131, 210,
+			20, 107, 133, 0, 13, 68, 88, 242, 76, 4, 84, 58, 35, 55, 6, 35, 0, 11, 68, 88, 144, 193, 72, 84, 122, 49, 114, 0, 10, 67,
+			52, 144, 193, 65, 137, 49, 13, 0, 0, 16, 69, 44, 244, 133, 4, 224, 49, 114, 34, 6, 129, 13, 50, 0, 103, 15, 69, 44, 244, 133,
+			4, 224, 49, 131, 34, 6, 129, 13, 50, 0, 14, 69, 77, 84, 5, 72, 32, 89, 134, 48, 6, 128, 71, 0, 13, 69, 76, 80, 66, 20,
+			64, 89, 129, 71, 121, 72, 0, 0, 16, 70, 64, 16, 201, 24, 144, 192, 48, 119, 89, 122, 83, 122, 49, 0, 12, 201, 80, 129, 82, 52,
+			244, 212, 4, 35, 5, 20, 17, 70, 65, 148, 137, 80, 84, 192, 48, 137, 34, 6, 137, 47, 129, 88, 0, 14, 70, 48, 148, 85, 21, 84,
+			128, 55, 113, 49, 128, 0, 103, 14, 70, 48, 148, 85, 21, 84, 128, 55, 113, 49, 57, 143, 0, 0, 0, 22, 72, 12, 244, 5, 56, 128,
+			71, 20, 224, 49, 136, 48, 13, 50, 107, 6, 138, 81, 13, 50, 0, 10, 67, 52, 17, 201, 65, 138, 75, 137, 0, 0, 14, 69, 4, 198,
+			67, 20, 224, 35, 55, 122, 89, 13, 50, 0, 18, 70, 76, 19, 148, 36, 17, 207, 89, 35, 50, 47, 122, 6, 126, 81, 136, 0, 12, 69,
+			76, 48, 82, 20, 64, 89, 49, 140, 72, 0, 0, 28, 74, 36, 229, 133, 77, 66, 71, 5, 66, 86, 20, 122, 50, 84, 4, 121, 89, 47,
+			113, 81, 6, 138, 47, 122, 84, 0, 103, 15, 70, 28, 84, 129, 36, 229, 0, 81, 121, 34, 137, 50, 47, 0, 15, 70, 56, 20, 195, 20,
+			229, 0, 50, 138, 89, 13, 50, 47, 0, 15, 70, 8, 243, 138, 61, 84, 128, 71, 130, 50, 90, 6, 143, 0, 15, 70, 4, 116, 143, 84,
+			225, 0, 119, 81, 34, 135, 50, 72, 0, 0, 8, 67, 4, 33, 64, 138, 71, 0, 19, 71, 65, 33, 68, 20, 98, 78, 20, 48, 34, 129,
+			72, 113, 83, 6, 137, 50, 0, 17, 70, 36, 224, 210, 20, 20, 197, 122, 50, 49, 34, 6, 129, 89, 0, 36, 14, 70, 13, 33, 65, 81,
+			84, 133, 49, 34, 129, 76, 114, 0, 0, 13, 68, 92, 131, 211, 20, 4, 107, 134, 88, 0, 8, 9, 16, 7, 8, 1, 23, 1, 9, 39,
+			9, 107, 13, 58, 6, 137, 129, 0, 0, 14, 69, 16, 84, 197, 73, 64, 72, 113, 88, 128, 47, 0, 36, 14, 69, 16, 84, 197, 73, 64,
+			72, 121, 89, 114, 47, 0, 9, 13, 69, 16, 84, 197, 73, 64, 72, 113, 88, 128, 47, 0, 14, 69, 12, 243, 80, 5, 64, 49, 13, 65,
+			48, 35, 47, 0, 0, 15, 70, 77, 65, 82, 36, 193, 64, 89, 47, 121, 34, 118, 0, 103, 15, 70, 36, 211, 199, 20, 225, 64, 122, 65,
+			13, 75, 13, 50, 0, 15, 70, 28, 192, 83, 28, 245, 192, 81, 55, 120, 88, 81, 136, 0, 13, 70, 88, 82, 9, 12, 193, 64, 84, 141,
+			49, 118, 0, 18, 70, 84, 181, 76, 20, 193, 64, 57, 134, 49, 13, 55, 6, 138, 55, 37, 0, 15, 70, 77, 65, 82, 36, 193, 64, 89,
+			47, 121, 34, 137, 55, 0, 14, 70, 52, 244, 129, 36, 225, 64, 65, 13, 34, 138, 50, 0, 15, 70, 12, 240, 193, 36, 225, 64, 49, 136,
+			49, 6, 138, 50, 0, 0, 13, 67, 60, 225, 64, 58, 125, 50, 0, 106, 34, 10, 13, 12, 67, 60, 225, 64, 58, 124, 50, 0, 34, 10,
+			13, 16, 67, 20, 16, 200, 129, 76, 15, 13, 84, 0, 8, 81, 111, 102, 32, 14, 70, 60, 209, 76, 21, 69, 5, 124, 65, 55, 13, 47,
+			0, 10, 67, 4, 33, 68, 119, 71, 121, 72, 0, 6, 195, 60, 209, 192, 17, 0, 0, 14, 69, 17, 34, 69, 77, 64, 72, 34, 137, 13,
+			89, 47, 0, 0, 16, 70, 12, 243, 82, 4, 65, 64, 49, 124, 65, 34, 35, 72, 0, 103, 13, 67, 60, 229, 15, 4, 124, 50, 108, 117,
+			0, 103, 12, 12, 67, 60, 229, 15, 4, 124, 50, 47, 117, 0, 12, 14, 70, 28, 84, 136, 5, 33, 0, 81, 140, 107, 127, 47, 0, 16,
+			70, 77, 3, 203, 4, 225, 64, 89, 48, 136, 49, 6, 35, 50, 0, 15, 70, 92, 19, 142, 4, 33, 64, 58, 124, 50, 119, 71, 129, 0,
+			15, 70, 32, 84, 143, 36, 225, 64, 107, 121, 34, 136, 122, 50, 0, 15, 70, 29, 33, 78, 4, 65, 64, 81, 34, 13, 50, 138, 72, 0,
+			9, 198, 4, 229, 9, 48, 241, 192, 65, 0, 20, 71, 76, 147, 131, 21, 33, 83, 80, 89, 122, 50, 89, 6, 141, 34, 13, 89, 47, 0,
+			15, 70, 4, 229, 9, 60, 50, 0, 35, 50, 108, 129, 124, 49, 0, 0, 12, 68, 80, 129, 73, 72, 86, 140, 0, 72, 34, 9, 11, 67,
+			52, 18, 197, 65, 4, 138, 49, 0, 12, 12, 67, 52, 18, 197, 65, 4, 138, 49, 0, 12, 9, 12, 68, 64, 80, 193, 56, 48, 129, 49,
+			13, 50, 0, 11, 68, 12, 145, 193, 72, 89, 113, 81, 127, 0, 8, 4, 95, 35, 18, 4, 72, 0, 0, 14, 69, 25, 85, 9, 48, 80,
+			83, 57, 134, 47, 118, 0, 103, 12, 69, 80, 129, 78, 12, 80, 86, 121, 50, 89, 0, 13, 69, 44, 20, 133, 56, 80, 49, 119, 34, 129,
+			50, 0, 8, 197, 4, 208, 78, 16, 16, 66, 14, 69, 32, 20, 129, 72, 80, 107, 119, 34, 126, 34, 37, 0, 14, 69, 85, 48, 66, 48,
+			80, 57, 134, 88, 13, 71, 118, 0, 13, 69, 76, 84, 133, 56, 80, 89, 13, 34, 129, 50, 0, 13, 69, 12, 20, 129, 24, 80, 49, 119,
+			34, 35, 83, 0, 9, 67, 4, 160, 82, 119, 75, 127, 0, 0, 0, 10, 67, 36, 34, 68, 122, 71, 123, 72, 0, 0, 12, 68, 4, 192,
+			78, 4, 119, 55, 35, 50, 13, 0, 12, 68, 48, 17, 207, 76, 55, 138, 81, 124, 89, 0, 12, 68, 76, 48, 76, 16, 89, 49, 124, 55,
+			72, 0, 0, 15, 70, 5, 34, 193, 57, 48, 83, 127, 49, 13, 50, 89, 130, 0, 13, 69, 84, 228, 213, 72, 80, 125, 50, 91, 6, 143,
+			0, 14, 69, 76, 81, 21, 12, 80, 89, 113, 72, 57, 134, 89, 0, 14, 69, 28, 83, 73, 56, 144, 75, 121, 65, 113, 50, 137, 0, 0,
+			11, 5, 23, 5, 39, 18, 5, 2, 58, 142, 0, 17, 70, 65, 83, 138, 4, 34, 64, 48, 125, 50, 75, 6, 126, 71, 37, 0, 20, 70,
+			37, 53, 1, 56, 37, 76, 4, 122, 89, 47, 4, 35, 50, 71, 6, 117, 55, 0, 17, 70, 76, 21, 1, 56, 148, 212, 89, 138, 47, 13,
+			50, 122, 89, 47, 0, 5, 194, 57, 144, 17, 0, 13, 6, 25, 15, 21, 39, 18, 5, 2, 57, 143, 0, 106, 12, 6, 25, 15, 21, 39,
+			18, 5, 2, 57, 132, 0, 9, 67, 65, 81, 0, 48, 117, 72, 0, 6, 195, 36, 35, 64, 17, 0, 12, 68, 8, 85, 19, 100, 71, 121,
+			47, 89, 37, 0, 21, 72, 77, 67, 206, 20, 129, 78, 28, 80, 89, 47, 4, 136, 50, 107, 6, 121, 50, 75, 0, 13, 68, 60, 209, 71,
+			4, 136, 65, 6, 138, 81, 13, 0, 14, 70, 4, 148, 144, 61, 113, 82, 6, 140, 48, 4, 146, 0, 0, 15, 69, 84, 229, 9, 17, 144,
+			125, 50, 47, 6, 137, 72, 37, 0, 13, 69, 65, 33, 84, 81, 144, 48, 34, 122, 47, 37, 0, 0, 15, 70, 104, 130, 86, 4, 115, 192,
+			90, 113, 84, 126, 81, 136, 0, 19, 4, 95, 3, 9, 18, 89, 6, 128, 49, 125, 65, 83, 55, 4, 121, 49, 89, 0, 0, 14, 7, 20,
+			8, 5, 18, 5, 39, 4, 2, 86, 140, 72, 0, 12, 67, 65, 85, 0, 4, 48, 117, 47, 0, 10, 12, 11, 67, 4, 160, 88, 138, 75,
+			35, 49, 89, 0, 10, 67, 4, 33, 84, 119, 71, 121, 47, 0, 6, 195, 57, 149, 0, 17, 6, 195, 12, 83, 192, 17, 0, 16, 70, 12,
+			132, 153, 76, 193, 82, 49, 34, 137, 89, 55, 114, 0, 103, 15, 70, 12, 132, 153, 76, 193, 82, 49, 34, 137, 88, 55, 114, 0, 11, 68,
+			80, 146, 203, 4, 47, 129, 49, 13, 0, 12, 68, 48, 147, 73, 80, 55, 122, 65, 113, 47, 0, 9, 198, 24, 244, 133, 92, 20, 142, 66,
+			9, 67, 20, 32, 89, 129, 71, 138, 0, 0, 14, 69, 72, 20, 137, 81, 144, 34, 140, 34, 13, 47, 37, 0, 0, 14, 6, 25, 15, 21,
+			39, 12, 12, 57, 134, 55, 0, 72, 32, 15, 70, 52, 19, 3, 60, 195, 64, 65, 35, 55, 49, 13, 65, 0, 15, 70, 65, 35, 206, 61,
+			83, 128, 48, 34, 136, 50, 135, 50, 0, 13, 3, 95, 194, 183, 65, 122, 72, 118, 72, 124, 47, 0, 0, 12, 67, 61, 84, 128, 135, 114,
+			0, 103, 72, 34, 9, 10, 67, 61, 84, 128, 146, 0, 72, 34, 9, 15, 71, 80, 19, 201, 76, 80, 67, 32, 47, 129, 91, 13, 101, 0,
+			9, 198, 52, 17, 193, 104, 147, 133, 67, 16, 71, 12, 243, 77, 37, 69, 5, 20, 49, 13, 65, 122, 47, 37, 0, 17, 3, 95, 194, 180,
+			119, 49, 57, 134, 47, 35, 49, 89, 121, 50, 47, 0, 0, 12, 68, 60, 208, 72, 4, 136, 65, 119, 107, 126, 0, 13, 68, 44, 240, 76,
+			4, 49, 136, 6, 126, 55, 13, 0, 19, 72, 4, 195, 8, 4, 195, 15, 93, 48, 130, 55, 107, 6, 35, 55, 136, 88, 0, 0, 14, 69,
+			80, 82, 18, 4, 224, 47, 140, 34, 6, 126, 50, 0, 13, 69, 48, 84, 201, 60, 224, 55, 129, 90, 13, 50, 0, 12, 69, 12, 83, 9,
+			16, 128, 49, 138, 55, 37, 0, 19, 3, 95, 194, 178, 89, 134, 48, 13, 89, 49, 34, 122, 48, 47, 47, 6, 134, 0, 0, 9, 67, 72,
+			134, 83, 34, 129, 89, 0, 17, 70, 4, 193, 129, 48, 96, 64, 35, 55, 83, 6, 35, 55, 83, 13, 0, 20, 3, 95, 194, 179, 89, 134,
+			48, 13, 89, 49, 34, 122, 48, 47, 87, 6, 34, 129, 0, 0, 20, 71, 4, 225, 18, 60, 209, 68, 4, 35, 50, 72, 34, 6, 124, 65,
+			122, 72, 13, 0, 16, 71, 12, 21, 8, 21, 34, 78, 20, 49, 35, 87, 34, 113, 50, 0, 19, 71, 65, 33, 67, 20, 65, 78, 80, 48,
+			34, 121, 89, 113, 72, 13, 50, 47, 0, 0, 11, 67, 40, 244, 197, 107, 136, 89, 6, 138, 0, 11, 200, 84, 225, 5, 73, 115, 210, 48,
+			64, 65, 0, 14, 69, 61, 33, 71, 60, 224, 124, 34, 113, 81, 13, 50, 0, 12, 69, 92, 148, 146, 4, 192, 58, 122, 34, 118, 0, 14,
+			69, 76, 16, 210, 20, 64, 89, 138, 49, 34, 13, 72, 0, 9, 197, 36, 229, 5, 72, 224, 65, 10, 14, 69, 36, 229, 5, 72, 224, 122,
+			50, 47, 128, 50, 0, 37, 13, 69, 12, 20, 144, 20, 192, 49, 127, 48, 13, 55, 0, 14, 69, 9, 33, 65, 80, 128, 71, 34, 129, 86,
+			0, 36, 10, 13, 69, 9, 33, 65, 80, 128, 71, 34, 121, 87, 0, 10, 0, 0, 19, 4, 8, 5, 39, 19, 107, 129, 88, 107, 35, 72,
+			0, 78, 81, 104, 97, 100, 32, 12, 4, 8, 5, 39, 19, 107, 129, 88, 0, 72, 35, 9, 67, 4, 37, 64, 35, 71, 134, 0, 9, 67,
+			72, 245, 192, 34, 135, 0, 37, 8, 67, 72, 245, 192, 34, 136, 0, 21, 71, 36, 225, 197, 57, 82, 84, 100, 122, 50, 75, 113, 50, 6,
+			57, 134, 113, 47, 37, 0, 9, 67, 8, 245, 192, 71, 135, 0, 36, 8, 67, 8, 245, 192, 71, 136, 0, 13, 4, 95, 19, 20, 11, 89,
+			47, 34, 6, 136, 49, 0, 0, 14, 68, 80, 131, 211, 20, 86, 136, 88, 0, 72, 34, 12, 9, 9, 4, 95, 35, 19, 20, 89, 47, 0,
+			12, 3, 95, 194, 173, 65, 35, 49, 34, 124, 50, 0, 11, 4, 95, 3, 18, 12, 49, 6, 128, 55, 0, 0, 14, 69, 16, 81, 133, 13,
+			64, 72, 129, 83, 121, 49, 47, 0, 19, 3, 95, 194, 170, 83, 121, 65, 113, 50, 122, 50, 6, 132, 72, 113, 50, 118, 0, 13, 4, 95,
+			1, 3, 21, 119, 49, 57, 6, 134, 47, 0, 0, 15, 70, 13, 66, 21, 48, 133, 64, 49, 14, 87, 134, 105, 134, 0, 14, 70, 93, 33,
+			84, 12, 129, 68, 34, 121, 76, 123, 72, 0, 15, 70, 76, 84, 85, 36, 225, 64, 89, 129, 49, 58, 113, 50, 0, 18, 70, 76, 80, 207,
+			56, 65, 68, 89, 121, 49, 6, 124, 50, 72, 123, 72, 0, 15, 70, 65, 84, 144, 61, 37, 0, 48, 128, 48, 6, 133, 47, 0, 16, 70,
+			28, 83, 149, 36, 225, 64, 75, 121, 50, 57, 134, 123, 50, 0, 18, 3, 95, 194, 171, 55, 121, 83, 47, 6, 81, 122, 55, 13, 65, 121,
+			47, 0, 0, 10, 67, 56, 245, 192, 50, 135, 0, 32, 42, 6, 195, 56, 245, 192, 32, 9, 67, 16, 69, 64, 86, 122, 0, 9, 15, 3,
+			95, 194, 168, 72, 137, 119, 34, 6, 129, 89, 122, 89, 0, 0, 10, 67, 77, 86, 153, 89, 134, 88, 37, 0, 13, 68, 81, 83, 9, 64,
+			47, 57, 134, 55, 122, 48, 0, 11, 68, 48, 192, 77, 4, 55, 126, 65, 13, 0, 8, 4, 95, 35, 20, 8, 87, 0, 0, 15, 3, 95,
+			194, 166, 71, 34, 136, 49, 13, 50, 71, 6, 127, 0, 0, 13, 202, 88, 83, 148, 72, 147, 15, 69, 82, 83, 80, 66, 16, 70, 65, 33,
+			76, 84, 65, 64, 48, 34, 138, 55, 134, 72, 0, 103, 16, 70, 65, 33, 76, 84, 65, 64, 48, 34, 121, 55, 57, 134, 72, 0, 0, 18,
+			71, 65, 34, 86, 36, 193, 71, 20, 48, 34, 122, 84, 113, 55, 113, 75, 0, 0, 12, 68, 64, 17, 193, 56, 48, 138, 81, 13, 50, 0,
+			11, 68, 48, 80, 70, 100, 55, 129, 83, 37, 0, 0, 16, 70, 77, 66, 76, 21, 69, 15, 89, 47, 113, 55, 121, 47, 136, 0, 13, 69,
+			52, 147, 137, 56, 112, 65, 137, 50, 122, 68, 0, 13, 69, 24, 244, 129, 28, 80, 83, 124, 34, 113, 75, 0, 0, 15, 70, 80, 84, 141,
+			36, 226, 64, 47, 128, 65, 122, 50, 137, 0, 16, 70, 77, 64, 78, 16, 38, 64, 89, 47, 35, 50, 72, 71, 137, 0, 0, 13, 3, 95,
+			194, 160, 107, 127, 72, 89, 48, 138, 89, 0, 12, 4, 95, 18, 14, 7, 34, 6, 122, 68, 81, 0, 0, 18, 72, 44, 19, 7, 60, 244,
+			140, 36, 80, 49, 35, 55, 81, 143, 55, 37, 0, 10, 68, 56, 144, 200, 20, 50, 129, 91, 0, 17, 72, 8, 245, 82, 28, 83, 201, 76,
+			80, 71, 143, 90, 58, 126, 88, 0, 27, 3, 95, 194, 161, 2, 122, 50, 84, 4, 128, 47, 113, 72, 121, 49, 89, 49, 55, 13, 65, 6,
+			138, 91, 13, 50, 0, 0, 19, 8, 16, 18, 15, 20, 5, 7, 195, 169, 112, 114, 111, 116, 101, 103, 101, 0, 29, 8, 197, 61, 85, 9,
+			56, 112, 65, 13, 69, 24, 83, 9, 56, 80, 83, 129, 55, 137, 50, 0, 12, 69, 13, 80, 203, 60, 240, 49, 117, 49, 134, 0, 0, 20,
+			5, 23, 5, 39, 22, 5, 58, 129, 84, 107, 35, 72, 0, 78, 81, 104, 97, 100, 32, 13, 5, 23, 5, 39, 22, 5, 58, 129, 84, 0,
+			72, 35, 15, 70, 16, 244, 143, 80, 134, 64, 72, 124, 34, 13, 87, 37, 0, 15, 70, 4, 229, 8, 60, 230, 64, 35, 50, 47, 13, 50,
+			37, 0, 17, 70, 9, 84, 149, 56, 66, 64, 71, 117, 34, 6, 117, 50, 72, 37, 0, 20, 9, 16, 18, 15, 20, 195, 169, 7, 195, 169,
+			112, 114, 111, 116, 101, 103, 101, 0, 29, 0, 21, 6, 25, 15, 21, 39, 22, 5, 57, 134, 84, 107, 35, 72, 0, 78, 81, 104, 97, 100,
+			32, 14, 6, 25, 15, 21, 39, 22, 5, 57, 134, 84, 0, 72, 35, 9, 67, 72, 134, 76, 34, 122, 55, 0, 14, 70, 92, 130, 84, 37,
+			50, 0, 58, 137, 47, 122, 91, 0, 17, 71, 52, 245, 83, 80, 16, 200, 20, 65, 13, 89, 47, 6, 120, 91, 0, 18, 71, 8, 16, 203,
+			77, 67, 210, 100, 71, 35, 49, 89, 47, 133, 34, 37, 0, 21, 67, 33, 69, 16, 138, 76, 108, 129, 108, 129, 6, 48, 129, 10, 0, 81,
+			58, 47, 47, 32, 0, 17, 70, 80, 241, 197, 80, 129, 82, 47, 13, 81, 121, 86, 114, 0, 74, 12, 11, 68, 4, 129, 65, 16, 119, 107,
+			121, 72, 0, 11, 68, 96, 131, 211, 4, 49, 130, 89, 13, 0, 13, 68, 17, 145, 133, 16, 72, 6, 125, 84, 122, 72, 0, 20, 72, 12,
+			243, 80, 72, 243, 73, 76, 80, 49, 124, 65, 48, 34, 13, 65, 137, 88, 0, 11, 200, 12, 130, 77, 64, 19, 154, 20, 80, 67, 0, 14,
+			69, 76, 144, 201, 49, 144, 89, 122, 89, 113, 55, 37, 0, 13, 69, 72, 80, 197, 77, 48, 34, 129, 89, 121, 89, 0, 22, 73, 64, 131,
+			212, 60, 116, 129, 64, 134, 64, 83, 13, 47, 6, 124, 81, 34, 13, 83, 37, 0, 14, 69, 13, 34, 83, 21, 48, 49, 34, 137, 89, 129,
+			88, 0, 15, 69, 72, 148, 195, 61, 48, 34, 122, 89, 49, 136, 121, 89, 0, 0, 13, 67, 60, 225, 83, 58, 125, 50, 88, 0, 106, 9,
+			13, 12, 67, 60, 225, 83, 58, 124, 50, 88, 0, 9, 13, 17, 70, 72, 244, 193, 72, 147, 192, 34, 136, 88, 6, 127, 34, 122, 136, 0,
+			17, 70, 28, 19, 9, 48, 83, 192, 81, 35, 55, 113, 55, 6, 138, 136, 0, 0, 0, 22, 72, 84, 226, 86, 21, 36, 201, 81, 144, 57,
+			134, 50, 122, 84, 6, 128, 89, 113, 47, 37, 0, 14, 68, 72, 83, 73, 80, 34, 129, 65, 6, 122, 47, 0, 36, 12, 68, 72, 83, 73,
+			80, 34, 129, 65, 122, 47, 0, 11, 68, 12, 128, 78, 28, 76, 35, 68, 0, 10, 11, 68, 12, 128, 78, 28, 76, 138, 50, 75, 0, 0,
+			15, 69, 84, 37, 78, 81, 80, 134, 71, 6, 134, 50, 108, 134, 0, 15, 70, 72, 241, 5, 72, 144, 203, 34, 124, 72, 34, 122, 49, 0,
+			10, 67, 5, 32, 66, 35, 34, 13, 71, 0, 0, 10, 198, 12, 243, 80, 61, 83, 132, 66, 36, 5, 194, 72, 64, 9, 0, 22, 73, 64,
+			131, 212, 60, 116, 129, 64, 129, 82, 83, 13, 47, 6, 124, 81, 34, 13, 83, 13, 0, 0, 10, 68, 76, 243, 212, 32, 89, 134, 86, 0,
+			11, 68, 48, 17, 197, 72, 55, 126, 81, 114, 0, 0, 14, 69, 81, 35, 202, 4, 224, 47, 34, 136, 75, 13, 50, 0, 0, 15, 70, 92,
+			144, 200, 37, 64, 64, 58, 122, 76, 113, 47, 127, 0, 9, 198, 20, 225, 137, 20, 193, 0, 65, 0, 17, 70, 20, 229, 133, 48, 244, 5,
+			126, 50, 84, 13, 55, 136, 48, 0, 103, 10, 199, 81, 32, 78, 77, 3, 210, 80, 36, 19, 71, 81, 32, 78, 77, 3, 210, 80, 47, 34,
+			35, 50, 89, 48, 133, 47, 0, 9, 20, 71, 80, 20, 129, 57, 69, 76, 4, 47, 13, 34, 35, 50, 47, 57, 117, 55, 13, 0, 9, 198,
+			20, 229, 133, 48, 244, 5, 36, 17, 70, 20, 229, 133, 48, 244, 5, 121, 50, 84, 13, 55, 136, 48, 0, 9, 15, 70, 13, 33, 86, 5,
+			52, 197, 49, 34, 13, 84, 35, 89, 0, 16, 71, 5, 80, 133, 72, 114, 78, 20, 136, 71, 114, 90, 129, 50, 0, 0, 11, 68, 80, 130,
+			78, 20, 4, 86, 137, 50, 0, 12, 68, 88, 81, 193, 76, 84, 138, 81, 13, 89, 0, 12, 68, 48, 83, 206, 20, 55, 129, 6, 136, 50,
+			0, 10, 68, 64, 147, 213, 76, 48, 144, 89, 0, 11, 68, 60, 49, 65, 56, 136, 91, 13, 50, 0, 0, 16, 70, 77, 148, 8, 36, 194,
+			83, 89, 122, 83, 13, 55, 123, 89, 0, 13, 69, 24, 20, 212, 20, 224, 83, 120, 89, 13, 50, 0, 0, 15, 70, 8, 20, 130, 5, 32,
+			64, 71, 127, 71, 13, 34, 13, 0, 0, 10, 67, 5, 33, 64, 2, 127, 0, 35, 9, 11, 67, 85, 32, 76, 57, 134, 13, 34, 118, 0,
+			21, 71, 64, 83, 137, 57, 53, 76, 4, 48, 13, 50, 6, 122, 50, 89, 57, 117, 55, 13, 0, 9, 198, 61, 85, 8, 61, 84, 197, 65,
+			0, 13, 68, 52, 144, 77, 36, 65, 137, 6, 35, 65, 37, 0, 13, 68, 64, 144, 78, 60, 48, 122, 6, 35, 50, 136, 0, 0, 30, 5,
+			3, 1, 14, 39, 20, 4, 49, 35, 50, 47, 6, 35, 84, 47, 116, 0, 103, 32, 14, 82, 104, 97, 118, 101, 32, 116, 111, 32, 22, 5,
+			3, 1, 14, 39, 20, 49, 35, 50, 47, 119, 84, 0, 103, 35, 81, 104, 97, 118, 101, 32, 16, 5, 3, 1, 14, 39, 20, 49, 35, 50,
+			47, 0, 103, 32, 9, 12, 29, 5, 3, 1, 14, 39, 20, 4, 49, 126, 50, 47, 6, 35, 84, 47, 116, 0, 32, 14, 82, 104, 97, 118,
+			101, 32, 116, 111, 32, 21, 5, 3, 1, 14, 39, 20, 49, 126, 50, 47, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 15, 5, 3, 1,
+			14, 39, 20, 49, 126, 50, 47, 0, 32, 9, 12, 24, 73, 4, 36, 129, 12, 17, 1, 9, 32, 64, 35, 71, 34, 13, 49, 13, 72, 6,
+			35, 71, 34, 13, 0, 0, 17, 70, 56, 18, 86, 21, 65, 64, 50, 137, 6, 129, 84, 13, 47, 138, 0, 9, 198, 12, 243, 131, 21, 37,
+			0, 36, 16, 70, 12, 243, 131, 21, 37, 0, 49, 124, 50, 89, 114, 47, 0, 10, 18, 70, 12, 243, 80, 21, 65, 68, 49, 13, 65, 48,
+			6, 129, 47, 122, 72, 0, 14, 202, 4, 69, 133, 73, 66, 83, 20, 209, 78, 80, 103, 67, 24, 74, 4, 69, 133, 73, 66, 83, 20, 209,
+			78, 80, 119, 72, 84, 128, 47, 122, 89, 65, 13, 50, 47, 0, 18, 4, 95, 1, 3, 50, 72, 125, 71, 13, 55, 119, 49, 57, 6, 134,
+			47, 0, 0, 17, 70, 80, 83, 80, 48, 21, 5, 47, 121, 65, 48, 55, 13, 47, 0, 103, 18, 67, 77, 80, 200, 89, 125, 76, 15, 10,
+			119, 88, 0, 8, 81, 97, 115, 32, 16, 70, 60, 36, 207, 48, 85, 5, 124, 71, 89, 13, 55, 129, 47, 0, 8, 67, 21, 33, 64, 140,
+			0, 9, 0, 19, 72, 4, 208, 129, 77, 48, 68, 61, 32, 119, 65, 71, 35, 89, 13, 72, 114, 0, 0, 16, 5, 9, 19, 14, 39, 20,
+			4, 122, 88, 13, 50, 47, 0, 35, 12, 13, 69, 52, 19, 135, 21, 32, 65, 138, 50, 75, 114, 0, 10, 4, 4, 39, 25, 5, 72, 57,
+			13, 0, 13, 69, 17, 81, 207, 85, 64, 72, 125, 81, 135, 47, 0, 0, 16, 6, 8, 1, 19, 14, 39, 20, 107, 35, 88, 13, 50, 47,
+			0, 35, 16, 70, 93, 148, 201, 93, 145, 192, 58, 122, 88, 129, 58, 122, 81, 0, 9, 66, 72, 80, 34, 4, 129, 0, 9, 14, 70, 8,
+			150, 154, 5, 33, 64, 71, 122, 88, 6, 127, 0, 5, 194, 60, 176, 17, 0, 17, 70, 12, 243, 148, 72, 149, 5, 49, 124, 50, 47, 34,
+			6, 137, 47, 0, 16, 70, 4, 225, 67, 16, 245, 5, 35, 50, 122, 49, 72, 136, 47, 0, 0, 14, 68, 76, 128, 76, 48, 4, 91, 35,
+			55, 0, 32, 9, 12, 12, 68, 72, 83, 85, 76, 34, 129, 65, 13, 89, 0, 13, 70, 72, 16, 200, 4, 83, 0, 34, 138, 76, 118, 0,
+			9, 67, 21, 34, 69, 141, 34, 37, 0, 12, 68, 105, 83, 21, 76, 88, 134, 55, 134, 88, 0, 17, 70, 64, 80, 213, 48, 144, 82, 48,
+			113, 49, 57, 134, 55, 122, 114, 0, 11, 68, 16, 80, 207, 72, 72, 138, 49, 132, 0, 0, 14, 69, 88, 145, 78, 56, 16, 84, 122, 6,
+			121, 50, 13, 0, 15, 69, 72, 144, 133, 56, 16, 34, 137, 71, 6, 129, 50, 13, 0, 13, 69, 16, 244, 193, 28, 80, 72, 136, 89, 113,
+			75, 0, 0, 0, 18, 71, 12, 20, 137, 8, 33, 65, 56, 49, 35, 34, 13, 71, 6, 141, 50, 0, 16, 71, 92, 82, 18, 52, 16, 200,
+			80, 84, 140, 65, 35, 101, 47, 0, 17, 71, 12, 244, 144, 61, 32, 84, 20, 49, 132, 48, 13, 34, 13, 47, 0, 17, 71, 5, 96, 76,
+			4, 224, 200, 20, 35, 84, 13, 55, 120, 50, 91, 0, 0, 13, 68, 92, 130, 76, 20, 58, 4, 137, 55, 0, 8, 11, 13, 6, 5, 9,
+			14, 195, 173, 14, 121, 50, 129, 50, 0, 13, 68, 77, 81, 1, 56, 89, 134, 72, 6, 35, 50, 0, 12, 68, 4, 192, 77, 60, 35, 55,
+			13, 65, 136, 0, 11, 68, 4, 48, 210, 4, 35, 49, 34, 119, 0, 11, 200, 76, 83, 73, 12, 148, 131, 48, 80, 65, 11, 67, 32, 82,
+			5, 107, 129, 107, 6, 129, 0, 16, 70, 9, 33, 84, 33, 33, 78, 71, 34, 121, 86, 34, 13, 50, 0, 0, 13, 69, 77, 83, 132, 4,
+			80, 89, 125, 50, 72, 138, 0, 0, 10, 67, 5, 33, 83, 140, 34, 129, 88, 0, 16, 70, 64, 192, 89, 80, 84, 212, 48, 55, 138, 47,
+			121, 89, 47, 0, 23, 3, 95, 194, 191, 2, 122, 50, 84, 4, 128, 47, 113, 72, 49, 58, 6, 121, 89, 76, 13, 50, 0, 0, 17, 71,
+			64, 147, 133, 5, 4, 12, 20, 48, 6, 137, 50, 35, 48, 118, 0, 11, 4, 95, 56, 48, 15, 6, 138, 47, 141, 0, 0, 10, 68, 76,
+			83, 213, 48, 89, 136, 55, 0, 18, 72, 24, 243, 11, 21, 53, 15, 56, 80, 83, 136, 49, 89, 47, 136, 50, 0, 11, 68, 72, 81, 193,
+			48, 34, 129, 81, 118, 0, 0, 13, 69, 72, 84, 12, 5, 144, 34, 129, 48, 55, 138, 0, 17, 70, 16, 144, 66, 21, 65, 83, 72, 144,
+			71, 6, 129, 47, 129, 88, 0, 13, 69, 12, 243, 69, 49, 144, 49, 125, 65, 55, 122, 0, 13, 3, 95, 194, 186, 72, 113, 81, 34, 6,
+			129, 88, 0, 0, 10, 67, 64, 197, 83, 48, 55, 125, 89, 0, 17, 3, 95, 194, 187, 34, 137, 47, 6, 81, 122, 55, 13, 65, 121, 47,
+			0, 0, 14, 70, 12, 129, 89, 20, 227, 133, 91, 137, 6, 35, 50, 0, 20, 71, 16, 148, 12, 60, 208, 67, 100, 72, 122, 48, 55, 6,
+			136, 65, 13, 89, 37, 0, 13, 3, 95, 194, 184, 89, 121, 72, 6, 122, 55, 13, 0, 0, 11, 200, 72, 145, 9, 13, 83, 15, 85, 48,
+			66, 11, 68, 4, 225, 197, 48, 138, 50, 75, 118, 0, 6, 195, 84, 51, 1, 17, 20, 3, 95, 194, 185, 89, 134, 48, 13, 89, 49, 34,
+			122, 48, 47, 58, 6, 124, 50, 0, 0, 12, 67, 32, 212, 6, 107, 6, 13, 65, 48, 83, 0, 13, 69, 4, 197, 193, 101, 48, 130, 55,
+			58, 138, 88, 0, 0, 16, 70, 92, 149, 8, 61, 85, 0, 58, 122, 86, 135, 47, 0, 74, 12, 9, 198, 92, 149, 8, 61, 85, 0, 66,
+			10, 67, 37, 34, 83, 137, 34, 122, 89, 0, 10, 67, 28, 245, 15, 81, 136, 47, 134, 0, 10, 67, 56, 21, 15, 50, 138, 47, 136, 0,
+			0, 16, 71, 76, 243, 69, 80, 130, 78, 28, 89, 125, 65, 87, 122, 68, 0, 0, 10, 67, 77, 84, 197, 89, 134, 89, 13, 0, 12, 68,
+			76, 48, 76, 100, 89, 49, 138, 55, 122, 0, 0, 13, 69, 76, 243, 5, 52, 224, 89, 124, 55, 13, 65, 0, 14, 69, 53, 148, 137, 4,
+			64, 65, 122, 34, 122, 35, 72, 0, 0, 9, 198, 40, 18, 193, 73, 64, 64, 66, 14, 70, 80, 243, 137, 28, 133, 0, 47, 13, 50, 137,
+			47, 0, 13, 70, 52, 20, 147, 32, 19, 12, 65, 127, 91, 118, 0, 0, 15, 70, 80, 245, 76, 61, 84, 197, 47, 134, 55, 6, 134, 88,
+			0, 0, 13, 68, 88, 147, 204, 4, 84, 137, 6, 136, 55, 13, 0, 10, 67, 16, 83, 9, 72, 121, 55, 122, 0, 12, 68, 12, 16, 212,
+			36, 49, 35, 49, 47, 137, 0, 11, 68, 4, 112, 73, 56, 119, 81, 121, 50, 0, 0, 18, 70, 5, 67, 1, 57, 66, 83, 35, 47, 55,
+			6, 35, 50, 47, 122, 89, 0, 9, 2, 195, 151, 47, 137, 65, 88, 0, 0, 15, 70, 4, 197, 8, 61, 81, 200, 131, 55, 86, 6, 136,
+			0, 8, 5, 194, 77, 64, 24, 5, 194, 77, 64, 9, 9, 66, 77, 64, 89, 13, 50, 47, 0, 0, 20, 71, 92, 148, 195, 60, 228, 201,
+			56, 58, 113, 89, 49, 6, 124, 50, 89, 113, 50, 0, 18, 71, 52, 148, 195, 72, 80, 78, 80, 65, 122, 89, 49, 34, 141, 50, 47, 0,
+			16, 4, 95, 19, 13, 3, 89, 65, 6, 130, 55, 49, 4, 35, 48, 0, 5, 130, 196, 141, 43, 0, 20, 72, 5, 35, 65, 28, 81, 4,
+			60, 224, 127, 65, 119, 81, 6, 121, 72, 13, 50, 0, 9, 67, 4, 50, 25, 138, 49, 37, 0, 0, 12, 197, 12, 19, 142, 61, 64, 103,
+			66, 32, 9, 12, 15, 69, 48, 244, 133, 57, 160, 55, 124, 34, 13, 50, 47, 89, 0, 15, 69, 12, 21, 133, 5, 64, 49, 35, 84, 122,
+			126, 47, 0, 103, 14, 69, 12, 21, 133, 5, 64, 49, 35, 84, 122, 35, 47, 0, 0, 16, 70, 72, 84, 208, 37, 65, 64, 34, 121, 89,
+			48, 113, 47, 0, 103, 15, 70, 72, 148, 15, 77, 65, 64, 34, 113, 48, 124, 89, 47, 0, 15, 70, 72, 84, 208, 37, 65, 64, 34, 121,
+			89, 48, 137, 47, 0, 15, 70, 36, 228, 208, 37, 33, 64, 122, 50, 89, 48, 6, 145, 0, 16, 70, 20, 229, 5, 57, 65, 64, 124, 50,
+			47, 6, 124, 50, 47, 0, 17, 70, 12, 83, 5, 9, 33, 64, 89, 121, 55, 6, 121, 71, 34, 13, 0, 0, 16, 70, 8, 83, 133, 5,
+			66, 0, 71, 113, 50, 129, 87, 0, 74, 12, 15, 70, 4, 65, 76, 4, 145, 5, 35, 72, 13, 55, 138, 72, 0, 9, 198, 48, 83, 79,
+			56, 17, 5, 67, 0, 11, 68, 4, 194, 67, 20, 35, 55, 122, 89, 0, 12, 68, 8, 192, 83, 20, 71, 55, 126, 88, 138, 0, 0, 13,
+			5, 4, 15, 14, 39, 20, 72, 136, 50, 47, 0, 32, 8, 197, 61, 85, 19, 21, 64, 65, 13, 69, 52, 148, 212, 21, 32, 65, 122, 89,
+			47, 114, 0, 21, 73, 25, 84, 148, 32, 84, 141, 61, 33, 64, 83, 148, 86, 114, 65, 6, 133, 0, 105, 8, 20, 73, 25, 84, 148, 32,
+			84, 141, 61, 33, 64, 83, 128, 86, 114, 65, 6, 133, 0, 8, 12, 2, 195, 159, 91, 4, 127, 48, 6, 121, 89, 0, 11, 2, 194, 167,
+			89, 121, 49, 91, 13, 50, 0, 0, 17, 66, 56, 240, 50, 6, 136, 4, 65, 133, 0, 81, 109, 111, 114, 101, 32, 23, 66, 56, 240, 50,
+			4, 136, 15, 55, 6, 124, 68, 81, 114, 0, 81, 108, 111, 110, 103, 101, 114, 32, 18, 66, 56, 240, 6, 50, 136, 6, 58, 125, 50, 0,
+			106, 81, 111, 110, 101, 32, 17, 66, 56, 240, 6, 50, 136, 6, 58, 124, 50, 0, 81, 111, 110, 101, 32, 9, 198, 8, 243, 66, 5, 33,
+			0, 66, 8, 66, 56, 240, 50, 136, 0, 42, 15, 2, 194, 164, 49, 125, 34, 13, 50, 89, 122, 89, 137, 50, 0, 0, 15, 67, 16, 84,
+			20, 72, 113, 48, 127, 47, 65, 13, 50, 47, 0, 8, 2, 194, 165, 57, 121, 50, 0, 0, 14, 68, 76, 128, 76, 80, 4, 91, 35, 55,
+			47, 0, 32, 9, 10, 67, 76, 86, 0, 89, 121, 49, 89, 0, 11, 68, 4, 112, 80, 20, 119, 81, 138, 48, 0, 10, 4, 95, 35, 14,
+			4, 13, 50, 72, 0, 10, 2, 194, 162, 89, 121, 50, 47, 89, 0, 0, 15, 69, 53, 84, 197, 84, 208, 65, 57, 134, 88, 6, 141, 65,
+			0, 15, 69, 52, 242, 137, 80, 240, 65, 136, 107, 6, 129, 47, 136, 0, 18, 70, 28, 145, 193, 57, 66, 67, 75, 137, 81, 6, 35, 50,
+			47, 122, 49, 0, 8, 2, 197, 139, 121, 68, 81, 0, 9, 2, 194, 163, 48, 135, 50, 72, 0, 0, 16, 70, 65, 35, 199, 20, 230, 64,
+			48, 34, 124, 75, 13, 50, 37, 0, 24, 73, 16, 148, 195, 60, 228, 207, 48, 21, 5, 72, 122, 89, 49, 6, 124, 50, 89, 13, 55, 13,
+			47, 0, 0, 11, 67, 56, 245, 0, 50, 124, 47, 0, 42, 40, 15, 67, 56, 245, 0, 4, 50, 124, 47, 13, 0, 34, 81, 97, 32, 26,
+			67, 56, 245, 0, 4, 50, 124, 47, 107, 35, 84, 47, 116, 0, 35, 11, 82, 104, 97, 118, 101, 32, 116, 111, 32, 20, 67, 56, 245, 0,
+			50, 124, 47, 107, 35, 84, 0, 35, 14, 81, 104, 97, 118, 101, 32, 19, 67, 56, 245, 0, 50, 124, 47, 119, 84, 0, 35, 73, 81, 104,
+			97, 118, 101, 32, 13, 67, 56, 245, 0, 4, 50, 124, 47, 0, 40, 9, 11, 10, 199, 52, 19, 136, 5, 69, 5, 56, 66, 17, 70, 64,
+			150, 154, 21, 34, 65, 48, 129, 47, 89, 13, 34, 6, 141, 0, 13, 70, 64, 128, 82, 4, 242, 0, 83, 140, 34, 136, 0, 9, 67, 56,
+			245, 0, 50, 136, 47, 0, 18, 71, 16, 84, 208, 21, 32, 84, 20, 72, 121, 89, 48, 13, 34, 13, 47, 0, 0, 18, 72, 12, 243, 147,
+			12, 145, 78, 12, 80, 49, 124, 50, 91, 13, 50, 89, 0, 13, 2, 194, 174, 34, 121, 75, 122, 89, 47, 114, 72, 0, 0, 12, 67, 61,
+			97, 82, 136, 84, 114, 0, 72, 12, 9, 11, 69, 100, 245, 78, 28, 80, 57, 125, 68, 0, 19, 70, 32, 243, 132, 85, 32, 83, 107, 124,
+			50, 72, 6, 57, 143, 34, 13, 89, 0, 13, 69, 28, 83, 143, 52, 80, 75, 129, 50, 136, 65, 0, 12, 69, 12, 243, 77, 36, 80, 49,
+			124, 65, 122, 0, 5, 130, 195, 167, 43, 0, 13, 66, 77, 80, 89, 134, 89, 13, 0, 81, 115, 101, 32, 9, 198, 65, 35, 195, 20, 81,
+			0, 9, 9, 198, 65, 35, 195, 20, 81, 0, 36, 16, 70, 65, 35, 195, 20, 81, 0, 48, 34, 136, 89, 129, 72, 0, 10, 12, 2, 194,
+			172, 50, 124, 47, 23, 89, 137, 50, 0, 5, 130, 195, 164, 43, 0, 10, 199, 76, 84, 85, 21, 53, 5, 72, 66, 20, 71, 29, 80, 67,
+			4, 211, 204, 20, 81, 58, 126, 49, 119, 65, 6, 136, 55, 129, 0, 22, 73, 12, 131, 204, 21, 53, 5, 72, 243, 0, 49, 13, 55, 121,
+			89, 47, 13, 34, 124, 55, 0, 16, 71, 12, 131, 195, 60, 192, 84, 20, 76, 124, 49, 55, 13, 47, 0, 0, 15, 68, 92, 130, 67, 32,
+			4, 58, 122, 76, 0, 8, 12, 9, 32, 23, 73, 52, 144, 200, 20, 192, 78, 28, 83, 15, 65, 137, 49, 118, 6, 35, 50, 75, 13, 55,
+			136, 0, 11, 68, 56, 145, 197, 48, 50, 137, 75, 118, 0, 11, 68, 40, 19, 73, 20, 75, 138, 65, 37, 0, 11, 68, 12, 80, 201, 48,
+			89, 121, 89, 118, 0, 13, 68, 69, 80, 137, 80, 49, 57, 134, 71, 122, 47, 0, 12, 68, 56, 18, 197, 16, 50, 138, 49, 123, 72, 0,
+			15, 70, 52, 19, 149, 21, 97, 82, 65, 13, 50, 134, 84, 114, 0, 15, 70, 52, 19, 133, 85, 97, 82, 65, 13, 50, 134, 84, 114, 0,
+			11, 68, 48, 83, 77, 20, 55, 121, 65, 37, 0, 11, 68, 8, 17, 197, 48, 71, 138, 81, 118, 0, 0, 13, 69, 64, 148, 195, 21, 48,
+			48, 137, 89, 129, 88, 0, 0, 14, 4, 95, 18, 5, 22, 34, 122, 84, 6, 128, 89, 72, 0, 6, 130, 195, 160, 43, 14, 0, 12, 2,
+			194, 169, 49, 124, 48, 122, 34, 137, 47, 0, 0, 10, 68, 4, 113, 201, 20, 35, 81, 37, 0, 11, 68, 76, 178, 69, 16, 89, 49, 129,
+			72, 0, 22, 72, 65, 33, 70, 21, 32, 66, 49, 144, 48, 34, 121, 83, 14, 34, 13, 71, 55, 122, 0, 32, 11, 68, 16, 80, 207, 100,
+			72, 129, 49, 139, 0, 13, 2, 194, 182, 48, 35, 34, 13, 81, 34, 35, 83, 0, 0, 13, 69, 52, 243, 132, 5, 144, 65, 125, 50, 72,
+			138, 0, 17, 70, 16, 85, 18, 37, 69, 83, 72, 113, 47, 34, 137, 47, 13, 89, 0, 5, 130, 197, 159, 43, 5, 130, 195, 175, 43, 0,
+			15, 66, 60, 224, 2, 124, 50, 86, 115, 0, 81, 116, 104, 101, 32, 9, 66, 60, 224, 4, 124, 50, 0, 12, 0, 16, 70, 60, 36, 212,
+			4, 51, 5, 124, 71, 89, 47, 13, 49, 118, 0, 9, 67, 48, 80, 68, 55, 129, 72, 0, 6, 195, 4, 32, 192, 17, 10, 2, 194, 181,
+			65, 137, 49, 34, 136, 0, 0, 6, 195, 60, 224, 197, 8, 12, 68, 52, 81, 193, 56, 65, 121, 81, 13, 50, 0, 11, 68, 32, 82, 68,
+			36, 107, 137, 72, 37, 0, 10, 68, 4, 242, 70, 20, 129, 83, 13, 0, 12, 68, 92, 131, 201, 76, 107, 134, 6, 122, 88, 0, 12, 68,
+			72, 21, 9, 60, 34, 138, 91, 122, 136, 0, 11, 68, 52, 144, 79, 92, 65, 129, 6, 135, 0, 21, 72, 4, 229, 9, 80, 129, 83, 21,
+			48, 35, 50, 47, 6, 122, 87, 13, 89, 129, 88, 0, 12, 68, 4, 67, 194, 20, 119, 72, 136, 71, 37, 0, 5, 130, 195, 170, 43, 0,
+			13, 69, 56, 117, 89, 20, 224, 50, 134, 57, 121, 50, 0, 5, 130, 195, 171, 43, 0, 14, 70, 25, 80, 200, 76, 144, 64, 83, 57, 134,
+			91, 13, 0, 12, 2, 194, 176, 72, 122, 81, 34, 6, 129, 88, 0, 0, 16, 70, 16, 162, 66, 61, 85, 9, 75, 122, 71, 6, 134, 47,
+			37, 0, 13, 5, 3, 39, 13, 15, 14, 49, 13, 65, 124, 50, 0, 9, 67, 4, 176, 64, 35, 49, 119, 0, 17, 71, 4, 69, 133, 73,
+			66, 90, 20, 35, 72, 84, 114, 47, 137, 88, 0, 16, 2, 194, 177, 48, 55, 125, 89, 132, 65, 6, 137, 50, 13, 89, 0, 5, 130, 195,
+			169, 43, 0, 11, 68, 80, 80, 200, 100, 47, 121, 49, 37, 0, 13, 68, 52, 245, 9, 24, 65, 136, 47, 6, 129, 83, 0, 13, 2, 194,
+			190, 87, 34, 129, 49, 58, 132, 47, 114, 0, 5, 130, 195, 182, 43, 0, 14, 69, 52, 148, 212, 20, 64, 65, 122, 89, 47, 123, 72, 0,
+			6, 195, 85, 35, 0, 17, 13, 2, 195, 183, 72, 113, 84, 6, 137, 72, 71, 137, 0, 0, 15, 70, 12, 19, 80, 8, 83, 12, 49, 35,
+			65, 71, 13, 55, 0, 17, 70, 81, 83, 137, 76, 144, 64, 47, 134, 50, 6, 129, 90, 13, 0, 103, 11, 2, 194, 188, 119, 49, 58, 132,
+			47, 114, 0, 0, 15, 70, 48, 21, 82, 20, 224, 197, 55, 124, 34, 13, 50, 89, 0, 17, 70, 76, 85, 133, 72, 83, 25, 89, 113, 84,
+			6, 142, 55, 122, 0, 32, 16, 70, 56, 243, 147, 20, 228, 197, 50, 124, 50, 89, 13, 50, 89, 0, 9, 2, 194, 189, 119, 107, 126, 83,
+			0, 0, 16, 70, 52, 244, 143, 12, 48, 78, 65, 13, 34, 124, 49, 13, 50, 0, 11, 68, 52, 144, 79, 84, 65, 129, 6, 135, 0, 18,
+			4, 95, 18, 6, 24, 34, 6, 121, 47, 34, 13, 83, 55, 121, 49, 89, 0, 14, 4, 95, 3, 5, 4, 89, 13, 72, 6, 122, 55, 119,
+			0, 0, 10, 67, 44, 240, 78, 49, 136, 126, 50, 0, 14, 69, 16, 80, 197, 57, 64, 72, 129, 89, 13, 50, 47, 0, 14, 69, 8, 19,
+			12, 21, 64, 71, 35, 55, 6, 138, 0, 103, 12, 69, 8, 19, 12, 21, 64, 71, 35, 55, 138, 0, 0, 15, 70, 100, 241, 200, 85, 37,
+			0, 57, 136, 81, 114, 47, 0, 103, 14, 70, 100, 241, 200, 85, 37, 0, 57, 124, 81, 114, 47, 0, 14, 70, 52, 20, 145, 84, 81, 64,
+			65, 127, 49, 6, 129, 0, 7, 2, 195, 176, 121, 86, 0, 0, 19, 71, 36, 212, 5, 72, 97, 67, 80, 122, 65, 48, 6, 128, 83, 121,
+			49, 47, 0, 10, 67, 12, 241, 68, 49, 136, 121, 72, 0, 14, 4, 95, 12, 9, 7, 55, 4, 122, 81, 119, 76, 13, 0, 5, 130, 195,
+			177, 43, 5, 130, 197, 161, 43, 0, 19, 72, 72, 84, 212, 5, 84, 129, 57, 64, 34, 121, 89, 47, 34, 124, 50, 47, 0, 8, 2, 195,
+			190, 87, 132, 50, 0, 0, 12, 69, 72, 85, 84, 21, 32, 34, 139, 47, 114, 0, 22, 67, 80, 83, 0, 47, 4, 121, 55, 15, 119, 84,
+			6, 129, 84, 0, 81, 97, 118, 105, 118, 32, 11, 67, 56, 18, 70, 50, 137, 6, 129, 83, 0, 14, 69, 12, 243, 66, 5, 64, 49, 124,
+			65, 71, 35, 47, 0, 0, 16, 6, 19, 8, 1, 14, 39, 20, 4, 91, 126, 50, 47, 0, 32, 12, 9, 67, 93, 84, 211, 58, 117, 89,
+			0, 17, 70, 65, 35, 196, 84, 49, 64, 48, 34, 124, 72, 57, 134, 89, 0, 37, 13, 70, 12, 128, 84, 20, 21, 64, 91, 35, 47, 136,
+			0, 5, 130, 195, 188, 43, 0, 14, 70, 80, 132, 143, 84, 114, 0, 87, 34, 134, 0, 72, 12, 0, 11, 68, 4, 114, 76, 20, 35, 75,
+			118, 0, 103, 10, 67, 32, 211, 77, 107, 6, 13, 65, 0, 10, 68, 24, 194, 69, 72, 83, 55, 145, 0, 0, 15, 69, 56, 85, 129, 16,
+			16, 50, 113, 84, 35, 72, 13, 0, 103, 14, 69, 56, 85, 129, 16, 16, 50, 113, 84, 126, 72, 13, 0, 21, 73, 72, 83, 129, 37, 52,
+			193, 56, 49, 64, 34, 121, 50, 13, 89, 124, 50, 89, 0, 103, 12, 69, 49, 144, 200, 20, 80, 55, 129, 76, 129, 0, 14, 69, 24, 18,
+			137, 80, 16, 83, 119, 107, 129, 47, 13, 0, 7, 2, 202, 131, 121, 91, 0, 0, 9, 198, 77, 84, 208, 20, 53, 0, 36, 17, 70, 77,
+			84, 208, 20, 53, 0, 89, 125, 89, 48, 121, 49, 47, 0, 10, 15, 70, 24, 192, 67, 12, 145, 0, 83, 55, 35, 89, 122, 72, 0, 9,
+			67, 8, 144, 83, 71, 144, 89, 0, 0, 10, 67, 65, 52, 212, 48, 89, 89, 47, 0, 10, 67, 24, 144, 84, 83, 129, 13, 47, 0, 0,
+			17, 70, 85, 65, 78, 76, 147, 0, 57, 134, 47, 6, 121, 50, 89, 118, 0, 10, 68, 72, 82, 71, 56, 34, 138, 50, 0, 15, 70, 12,
+			20, 9, 80, 243, 0, 49, 35, 48, 122, 47, 118, 0, 12, 68, 4, 194, 66, 36, 35, 55, 13, 71, 137, 0, 0, 14, 69, 8, 81, 143,
+			72, 80, 71, 122, 83, 133, 0, 74, 12, 13, 69, 81, 34, 67, 36, 16, 47, 34, 122, 91, 13, 0, 13, 69, 48, 83, 143, 72, 80, 55,
+			121, 50, 6, 133, 0, 13, 69, 29, 32, 72, 4, 208, 81, 34, 138, 13, 65, 0, 11, 69, 4, 242, 70, 24, 80, 129, 83, 13, 0, 8,
+			197, 4, 226, 193, 72, 16, 65, 16, 70, 64, 19, 131, 72, 80, 83, 48, 35, 50, 49, 34, 141, 89, 0, 14, 69, 64, 17, 76, 48, 16,
+			48, 137, 6, 121, 55, 13, 0, 6, 195, 4, 178, 78, 66, 9, 67, 4, 49, 82, 138, 89, 114, 0, 0, 6, 194, 85, 48, 17, 42, 9,
+			66, 85, 48, 4, 125, 89, 0, 9, 9, 198, 12, 243, 132, 84, 53, 0, 36, 16, 70, 12, 243, 132, 84, 53, 0, 49, 124, 50, 72, 125,
+			49, 47, 0, 12, 2, 201, 148, 136, 48, 13, 50, 6, 130, 10, 0, 0, 18, 71, 77, 67, 210, 101, 65, 76, 48, 89, 47, 130, 34, 122,
+			47, 121, 55, 0, 18, 71, 65, 54, 67, 32, 244, 201, 76, 89, 137, 49, 6, 136, 89, 122, 89, 0, 18, 71, 36, 229, 133, 57, 67, 210,
+			100, 122, 50, 84, 13, 50, 47, 34, 122, 0, 18, 71, 20, 116, 133, 28, 147, 213, 76, 122, 81, 34, 6, 129, 75, 13, 89, 0, 13, 4,
+			95, 57, 48, 15, 50, 6, 137, 50, 47, 141, 0, 0, 9, 67, 37, 51, 1, 137, 55, 13, 0, 12, 68, 4, 131, 69, 16, 35, 101, 65,
+			121, 72, 0, 11, 68, 28, 147, 77, 20, 81, 122, 65, 37, 0, 0, 11, 69, 80, 129, 73, 73, 48, 86, 140, 88, 0, 16, 70, 76, 144,
+			133, 48, 149, 83, 89, 113, 71, 138, 55, 141, 89, 0, 15, 69, 56, 240, 143, 17, 144, 6, 50, 136, 71, 124, 72, 37, 0, 12, 69, 52,
+			80, 68, 61, 112, 65, 121, 72, 136, 0, 15, 69, 21, 131, 196, 85, 48, 121, 49, 89, 13, 72, 13, 89, 0, 13, 69, 12, 20, 133, 77,
+			48, 49, 13, 34, 121, 89, 0, 14, 69, 12, 19, 150, 5, 48, 49, 35, 50, 84, 13, 89, 0, 0, 12, 67, 28, 241, 83, 2, 81, 136,
+			88, 0, 12, 9, 8, 2, 196, 184, 49, 34, 126, 0, 11, 4, 95, 2, 1, 18, 10, 71, 6, 127, 0, 0, 15, 70, 52, 16, 203, 20,
+			227, 129, 65, 13, 49, 121, 50, 13, 0, 18, 70, 60, 179, 1, 32, 243, 65, 136, 49, 55, 119, 107, 6, 136, 65, 13, 0, 9, 198, 61,
+			97, 82, 80, 147, 69, 65, 9, 67, 32, 211, 64, 107, 13, 65, 0, 0, 18, 67, 76, 243, 69, 89, 125, 65, 58, 124, 50, 0, 106, 81,
+			111, 110, 101, 32, 18, 67, 76, 243, 69, 89, 125, 65, 58, 125, 50, 0, 106, 81, 111, 110, 101, 32, 17, 67, 76, 243, 69, 89, 125, 65,
+			58, 124, 50, 0, 81, 111, 110, 101, 32, 13, 67, 76, 243, 69, 4, 89, 125, 65, 0, 34, 13, 9, 11, 68, 88, 81, 199, 100, 84, 121,
+			75, 122, 0, 10, 2, 204, 134, 71, 34, 121, 84, 10, 0, 5, 130, 197, 190, 43, 0, 11, 67, 8, 17, 90, 71, 137, 6, 121, 88, 0,
+			17, 70, 17, 83, 70, 72, 145, 83, 72, 125, 65, 83, 34, 6, 129, 89, 0, 12, 69, 60, 97, 133, 73, 48, 124, 83, 114, 88, 0, 15,
+			69, 32, 144, 84, 85, 48, 107, 137, 6, 138, 47, 13, 89, 0, 14, 69, 16, 80, 146, 37, 48, 72, 13, 71, 34, 129, 0, 103, 13, 69,
+			16, 80, 146, 37, 48, 72, 121, 71, 34, 129, 0, 0, 10, 67, 16, 83, 79, 72, 121, 65, 136, 0, 12, 2, 204, 132, 65, 35, 49, 34,
+			124, 50, 10, 0, 20, 2, 203, 140, 89, 6, 121, 49, 13, 50, 72, 34, 122, 89, 47, 34, 4, 121, 89, 0, 15, 2, 202, 148, 81, 55,
+			6, 124, 19, 118, 89, 47, 124, 48, 0, 0, 0, 10, 68, 52, 17, 86, 20, 65, 138, 84, 0, 10, 67, 49, 84, 5, 55, 134, 48, 138,
+			0, 11, 68, 52, 149, 18, 20, 65, 137, 47, 114, 0, 11, 67, 17, 84, 5, 72, 57, 134, 48, 0, 135, 16, 2, 204, 130, 89, 128, 49,
+			125, 65, 83, 55, 121, 49, 89, 10, 0, 7, 2, 202, 146, 121, 90, 0, 0, 8, 197, 12, 243, 146, 4, 64, 65, 13, 69, 76, 19, 15,
+			60, 224, 89, 119, 55, 134, 50, 0, 12, 69, 64, 20, 137, 4, 128, 48, 13, 34, 144, 0, 11, 2, 204, 131, 47, 122, 55, 72, 13, 10,
+			0, 13, 2, 201, 155, 136, 48, 13, 50, 6, 121, 12, 10, 0, 0, 16, 8, 19, 9, 15, 2, 8, 195, 161, 14, 91, 13, 84, 130, 50,
+			0, 17, 70, 56, 144, 207, 76, 144, 64, 50, 122, 49, 13, 89, 6, 129, 13, 0, 10, 2, 204, 128, 81, 34, 126, 84, 10, 0, 10, 2,
+			203, 136, 89, 47, 34, 121, 89, 0, 0, 8, 67, 21, 36, 128, 140, 0, 103, 16, 70, 12, 19, 130, 21, 36, 129, 49, 35, 50, 71, 13,
+			34, 13, 0, 15, 71, 52, 244, 133, 12, 19, 66, 20, 65, 133, 49, 13, 65, 0, 7, 67, 21, 36, 128, 128, 0, 19, 71, 4, 229, 9,
+			64, 21, 8, 100, 35, 50, 47, 6, 122, 48, 13, 87, 37, 0, 6, 195, 57, 148, 4, 17, 11, 2, 204, 129, 119, 49, 57, 134, 47, 10,
+			0, 8, 2, 201, 153, 91, 58, 126, 0, 0, 22, 72, 72, 84, 21, 80, 21, 9, 60, 224, 34, 121, 48, 57, 134, 47, 6, 138, 91, 13,
+			50, 0, 17, 7, 16, 9, 195, 177, 1, 20, 1, 48, 129, 67, 6, 35, 47, 119, 0, 12, 68, 64, 84, 149, 76, 48, 13, 34, 134, 88,
+			0, 11, 200, 32, 244, 137, 104, 243, 148, 4, 192, 67, 11, 200, 16, 148, 195, 61, 83, 148, 20, 64, 66, 11, 68, 4, 194, 65, 76, 138,
+			55, 141, 89, 0, 0, 14, 69, 76, 18, 71, 60, 224, 89, 137, 81, 6, 124, 50, 0, 14, 69, 92, 147, 132, 20, 64, 58, 122, 50, 72,
+			123, 72, 0, 12, 67, 28, 242, 78, 4, 81, 136, 113, 50, 0, 9, 0, 12, 2, 201, 164, 34, 35, 65, 89, 107, 132, 50, 0, 0, 27,
+			75, 72, 80, 207, 52, 209, 78, 16, 21, 9, 60, 224, 34, 121, 49, 13, 65, 121, 50, 72, 6, 138, 91, 13, 50, 0, 0, 15, 68, 8,
+			82, 78, 28, 4, 71, 129, 122, 68, 0, 35, 9, 12, 12, 68, 8, 16, 213, 64, 71, 138, 49, 13, 48, 0, 10, 68, 28, 81, 83, 20,
+			81, 129, 89, 0, 12, 68, 20, 66, 67, 80, 129, 72, 122, 49, 47, 0, 12, 68, 12, 243, 66, 60, 49, 124, 65, 71, 136, 0, 11, 68,
+			4, 114, 78, 28, 138, 75, 122, 68, 0, 10, 2, 204, 138, 34, 122, 68, 81, 10, 0, 0, 14, 69, 80, 16, 140, 21, 64, 47, 35, 71,
+			55, 13, 47, 0, 14, 69, 4, 195, 79, 77, 64, 130, 55, 65, 136, 89, 47, 0, 14, 69, 4, 35, 5, 77, 64, 138, 71, 55, 13, 89,
+			47, 0, 0, 15, 70, 77, 65, 87, 5, 37, 0, 89, 47, 134, 114, 47, 0, 103, 15, 70, 77, 65, 87, 5, 37, 0, 89, 47, 57, 134,
+			114, 47, 0, 15, 70, 12, 19, 132, 4, 49, 64, 49, 35, 50, 72, 122, 89, 0, 16, 70, 72, 81, 133, 72, 81, 64, 34, 121, 83, 13,
+			34, 6, 129, 0, 14, 70, 72, 20, 16, 61, 37, 0, 34, 35, 48, 6, 133, 0, 12, 2, 204, 136, 72, 145, 34, 129, 89, 113, 89, 0,
+			13, 2, 203, 144, 55, 121, 68, 87, 13, 50, 72, 10, 0, 0, 0, 12, 68, 48, 80, 78, 56, 55, 129, 6, 35, 50, 0, 22, 72, 84,
+			226, 78, 80, 84, 133, 77, 64, 125, 50, 6, 122, 50, 47, 13, 34, 13, 89, 47, 0, 13, 68, 72, 82, 197, 100, 34, 4, 129, 49, 6,
+			129, 0, 22, 72, 72, 18, 78, 24, 244, 133, 77, 64, 34, 6, 138, 50, 83, 4, 124, 34, 113, 89, 47, 0, 0, 13, 69, 100, 84, 211,
+			37, 32, 57, 121, 89, 89, 128, 0, 11, 69, 65, 32, 89, 21, 32, 48, 34, 140, 0, 8, 67, 64, 80, 82, 48, 140, 0, 8, 197, 61,
+			85, 12, 21, 64, 65, 13, 69, 12, 128, 82, 37, 64, 76, 35, 34, 122, 47, 0, 12, 69, 12, 17, 83, 5, 32, 89, 129, 88, 114, 0,
+			8, 2, 202, 167, 76, 121, 91, 0, 0, 7, 66, 76, 144, 89, 129, 0, 14, 70, 29, 35, 213, 64, 145, 64, 81, 34, 134, 48, 37, 0,
+			15, 70, 5, 50, 193, 56, 49, 64, 119, 89, 49, 120, 50, 89, 0, 8, 2, 202, 164, 75, 121, 90, 0, 0, 0, 12, 68, 40, 16, 207,
+			8, 75, 138, 49, 13, 71, 0, 12, 68, 8, 19, 66, 36, 71, 35, 65, 71, 129, 0, 11, 68, 76, 178, 69, 76, 89, 49, 137, 88, 0,
+			11, 68, 4, 208, 83, 76, 119, 65, 35, 89, 0, 0, 15, 69, 80, 243, 65, 80, 240, 47, 13, 65, 138, 47, 136, 0, 103, 18, 67, 80,
+			80, 82, 47, 6, 140, 15, 6, 124, 83, 0, 81, 111, 102, 102, 32, 21, 67, 80, 80, 82, 47, 4, 140, 15, 119, 48, 127, 47, 0, 81,
+			97, 112, 97, 114, 116, 32, 9, 67, 80, 80, 82, 47, 140, 0, 36, 9, 67, 80, 80, 82, 47, 142, 0, 10, 13, 69, 76, 19, 9, 56,
+			80, 89, 138, 55, 137, 50, 0, 12, 69, 61, 85, 1, 28, 80, 135, 47, 113, 75, 0, 12, 69, 28, 19, 15, 72, 80, 81, 119, 55, 133,
+			0, 0, 15, 70, 64, 198, 77, 61, 85, 8, 48, 55, 122, 65, 13, 87, 0, 12, 67, 96, 208, 83, 121, 49, 89, 65, 119, 89, 0, 10,
+			198, 21, 133, 18, 4, 53, 0, 66, 36, 10, 198, 21, 133, 18, 4, 53, 0, 65, 9, 10, 198, 21, 133, 18, 4, 53, 0, 65, 10, 0,
+			20, 71, 65, 34, 77, 5, 97, 82, 4, 48, 34, 129, 65, 13, 84, 6, 140, 34, 13, 0, 18, 71, 12, 145, 193, 72, 85, 20, 20, 89,
+			122, 81, 13, 6, 34, 121, 47, 0, 0, 11, 68, 12, 130, 76, 20, 76, 122, 55, 37, 0, 12, 68, 76, 83, 69, 56, 89, 129, 65, 13,
+			50, 0, 17, 70, 52, 20, 129, 80, 131, 206, 65, 35, 34, 13, 87, 124, 50, 0, 103, 11, 68, 16, 147, 196, 20, 72, 137, 136, 72, 0,
+			11, 68, 4, 81, 201, 76, 129, 75, 122, 89, 0, 18, 2, 204, 158, 119, 48, 34, 6, 124, 49, 89, 122, 65, 13, 50, 47, 10, 0, 0,
+			12, 69, 12, 243, 142, 36, 80, 49, 124, 50, 37, 0, 8, 197, 76, 85, 20, 20, 80, 66, 14, 69, 72, 81, 15, 56, 80, 34, 129, 72,
+			6, 125, 50, 0, 13, 69, 72, 21, 137, 56, 80, 34, 13, 84, 129, 50, 0, 17, 70, 52, 244, 209, 84, 149, 15, 65, 13, 89, 49, 6,
+			129, 47, 136, 0, 14, 69, 5, 85, 9, 76, 208, 130, 108, 122, 88, 13, 65, 0, 0, 15, 70, 81, 84, 142, 44, 86, 64, 47, 148, 50,
+			49, 129, 0, 105, 14, 70, 81, 84, 142, 44, 86, 64, 47, 128, 50, 49, 129, 0, 0, 16, 70, 64, 21, 18, 36, 50, 65, 48, 119, 47,
+			34, 122, 91, 13, 0, 18, 71, 12, 20, 211, 4, 225, 18, 4, 49, 13, 89, 35, 50, 72, 34, 13, 0, 19, 71, 72, 84, 21, 80, 16,
+			140, 20, 34, 121, 48, 57, 134, 47, 13, 71, 118, 0, 10, 199, 12, 244, 143, 48, 192, 82, 100, 66, 6, 2, 95, 1, 138, 0, 0, 15,
+			70, 12, 245, 207, 72, 177, 82, 49, 136, 58, 128, 49, 114, 0, 9, 198, 12, 21, 129, 48, 145, 82, 67, 7, 2, 201, 178, 67, 121, 0,
+			0, 14, 69, 64, 145, 211, 81, 144, 48, 122, 81, 89, 47, 137, 0, 15, 69, 28, 19, 1, 97, 144, 81, 35, 55, 119, 49, 89, 37, 0,
+			14, 69, 13, 34, 83, 37, 48, 49, 34, 137, 89, 122, 89, 0, 0, 10, 67, 16, 85, 83, 72, 138, 117, 89, 0, 0, 15, 70, 76, 192,
+			86, 37, 50, 0, 89, 55, 138, 84, 122, 91, 0, 14, 70, 44, 224, 86, 37, 50, 0, 50, 138, 84, 122, 91, 0, 0, 11, 200, 72, 81,
+			193, 72, 67, 5, 77, 48, 8, 11, 68, 76, 21, 143, 100, 89, 119, 84, 139, 0, 17, 70, 36, 229, 5, 72, 210, 78, 122, 50, 47, 6,
+			128, 65, 122, 50, 0, 11, 68, 12, 240, 207, 4, 49, 136, 49, 136, 0, 0, 17, 70, 16, 19, 65, 76, 53, 83, 72, 119, 65, 35, 89,
+			49, 13, 89, 0, 9, 198, 61, 85, 2, 72, 80, 75, 65, 13, 69, 16, 148, 200, 21, 48, 72, 122, 91, 123, 88, 0, 14, 69, 4, 194,
+			66, 37, 48, 35, 55, 13, 71, 137, 88, 0, 11, 2, 201, 190, 10, 6, 127, 47, 35, 48, 0, 0, 10, 2, 204, 165, 34, 122, 68, 81,
+			10, 0, 0, 5, 194, 80, 128, 9, 6, 66, 80, 128, 87, 0, 0, 8, 67, 5, 32, 192, 127, 49, 0, 6, 195, 37, 32, 192, 17, 0,
+			10, 68, 44, 131, 69, 72, 49, 65, 142, 0, 12, 2, 202, 178, 65, 4, 124, 72, 75, 6, 138, 0, 0, 14, 69, 16, 80, 204, 4, 224,
+			72, 121, 49, 55, 119, 50, 0, 14, 69, 4, 194, 83, 60, 224, 35, 55, 122, 89, 13, 50, 0, 17, 70, 4, 117, 73, 48, 84, 129, 35,
+			81, 129, 55, 6, 140, 34, 13, 0, 14, 69, 77, 83, 148, 4, 224, 89, 125, 50, 47, 35, 50, 0, 12, 69, 61, 36, 8, 4, 224, 132,
+			83, 13, 50, 0, 0, 15, 70, 88, 19, 133, 77, 48, 64, 84, 119, 50, 121, 89, 13, 0, 13, 70, 73, 84, 211, 20, 195, 0, 34, 125,
+			89, 118, 0, 15, 70, 80, 147, 73, 16, 84, 128, 47, 122, 65, 122, 72, 114, 0, 15, 2, 202, 176, 35, 89, 48, 113, 34, 138, 47, 113,
+			72, 10, 0, 0, 18, 71, 20, 194, 83, 4, 33, 84, 32, 113, 55, 122, 88, 13, 71, 13, 87, 0, 19, 71, 48, 19, 132, 61, 115, 133,
+			72, 55, 6, 35, 50, 72, 4, 136, 50, 114, 0, 18, 67, 24, 21, 88, 83, 6, 136, 15, 48, 6, 126, 0, 81, 112, 97, 115, 32, 6,
+			195, 85, 48, 64, 17, 17, 2, 204, 175, 50, 4, 124, 50, 89, 113, 55, 6, 35, 71, 113, 49, 0, 7, 2, 95, 19, 121, 89, 0, 0,
+			10, 68, 21, 83, 5, 72, 139, 55, 114, 0, 12, 68, 17, 147, 1, 56, 72, 122, 55, 13, 50, 0, 11, 68, 80, 147, 79, 72, 47, 129,
+			65, 133, 0, 20, 68, 92, 245, 78, 16, 58, 4, 135, 50, 72, 15, 6, 125, 48, 0, 81, 117, 112, 32, 23, 68, 92, 245, 78, 16, 58,
+			4, 135, 50, 72, 15, 6, 72, 135, 50, 0, 81, 100, 111, 119, 110, 32, 12, 68, 92, 245, 78, 16, 58, 135, 50, 72, 0, 38, 11, 68,
+			92, 245, 78, 16, 58, 134, 50, 72, 0, 11, 68, 52, 80, 78, 80, 65, 121, 50, 47, 0, 11, 68, 48, 80, 78, 80, 55, 121, 50, 47,
+			0, 12, 68, 5, 67, 1, 76, 35, 47, 55, 13, 89, 0, 0, 13, 69, 32, 19, 73, 76, 128, 107, 138, 65, 122, 91, 0, 14, 69, 8,
+			133, 84, 4, 224, 71, 134, 47, 6, 35, 50, 0, 8, 197, 88, 147, 204, 36, 224, 66, 13, 69, 33, 86, 154, 4, 128, 107, 13, 88, 6,
+			126, 0, 0, 10, 67, 76, 241, 129, 89, 136, 83, 13, 0, 21, 67, 93, 114, 73, 72, 125, 71, 118, 57, 134, 72, 125, 71, 118, 57, 134,
+			47, 6, 134, 0, 13, 2, 202, 188, 113, 75, 121, 49, 47, 113, 84, 10, 0, 0, 8, 67, 5, 32, 200, 127, 76, 0, 0, 11, 2, 204,
+			170, 72, 121, 50, 47, 118, 10, 0, 0, 12, 69, 16, 83, 137, 21, 32, 72, 113, 50, 145, 0, 0, 14, 70, 24, 147, 133, 77, 49, 64,
+			83, 113, 50, 121, 89, 0, 0, 10, 67, 85, 49, 64, 57, 134, 88, 0, 36, 9, 67, 85, 49, 64, 57, 134, 89, 0, 10, 199, 32, 80,
+			68, 24, 148, 147, 80, 66, 0, 11, 68, 20, 194, 83, 20, 113, 55, 129, 88, 0, 7, 196, 36, 64, 72, 60, 65, 9, 198, 52, 18, 78,
+			80, 18, 78, 66, 7, 196, 36, 229, 18, 60, 65, 12, 68, 12, 193, 82, 44, 49, 55, 127, 49, 0, 135, 0, 14, 69, 60, 49, 76, 61,
+			64, 124, 89, 13, 55, 124, 47, 0, 9, 197, 36, 228, 213, 49, 64, 65, 10, 8, 197, 36, 228, 213, 49, 64, 66, 23, 73, 36, 212, 18,
+			20, 115, 129, 8, 193, 64, 122, 65, 48, 34, 6, 121, 81, 50, 13, 71, 118, 0, 14, 69, 4, 97, 140, 85, 128, 119, 83, 55, 125, 49,
+			89, 0, 0, 13, 70, 76, 19, 201, 73, 49, 64, 89, 141, 91, 13, 0, 14, 70, 12, 193, 65, 57, 49, 64, 49, 55, 121, 50, 88, 0,
+			0, 18, 71, 21, 52, 9, 60, 224, 71, 20, 121, 89, 48, 122, 13, 50, 126, 90, 0, 6, 195, 5, 48, 80, 17, 0, 11, 68, 25, 147,
+			4, 20, 83, 137, 55, 72, 0, 10, 67, 88, 86, 0, 84, 121, 49, 89, 0, 0, 13, 69, 29, 32, 69, 52, 80, 81, 34, 138, 13, 65,
+			0, 13, 69, 5, 33, 217, 48, 80, 127, 81, 6, 137, 55, 0, 13, 69, 52, 244, 129, 48, 80, 65, 13, 34, 35, 55, 0, 8, 67, 37,
+			35, 206, 145, 50, 0, 0, 11, 67, 16, 82, 129, 72, 138, 90, 126, 0, 9, 0, 11, 67, 72, 21, 76, 34, 135, 6, 134, 55, 0, 14,
+			70, 32, 20, 151, 36, 50, 0, 107, 35, 34, 122, 75, 0, 10, 199, 64, 149, 21, 37, 64, 82, 100, 66, 10, 199, 28, 243, 196, 56, 145,
+			200, 80, 66, 0, 18, 70, 52, 242, 1, 52, 81, 0, 109, 111, 104, 97, 109, 109, 97, 100, 0, 29, 12, 68, 12, 129, 82, 36, 91, 140,
+			34, 6, 129, 0, 19, 72, 64, 130, 76, 37, 53, 9, 56, 80, 83, 122, 55, 113, 89, 47, 137, 50, 0, 11, 200, 52, 243, 25, 8, 65,
+			78, 84, 208, 66, 11, 68, 48, 80, 80, 80, 55, 121, 48, 47, 0, 11, 200, 36, 195, 9, 80, 84, 129, 80, 80, 21, 11, 68, 28, 83,
+			196, 20, 75, 129, 136, 72, 0, 12, 68, 16, 80, 210, 100, 72, 113, 49, 34, 137, 0, 21, 72, 12, 243, 210, 16, 147, 129, 80, 80, 49,
+			136, 6, 130, 72, 113, 50, 138, 47, 0, 36, 10, 2, 95, 34, 49, 58, 136, 47, 89, 0, 0, 8, 197, 101, 99, 206, 56, 80, 66, 12,
+			69, 64, 131, 197, 8, 80, 83, 129, 71, 129, 0, 15, 70, 4, 225, 204, 21, 49, 89, 35, 68, 81, 118, 89, 37, 0, 14, 69, 76, 145,
+			78, 56, 16, 89, 129, 6, 121, 50, 13, 0, 11, 69, 69, 82, 67, 32, 80, 49, 129, 91, 0, 14, 69, 65, 146, 129, 52, 16, 48, 13,
+			75, 126, 65, 13, 0, 14, 69, 52, 147, 149, 80, 80, 65, 122, 50, 122, 47, 0, 10, 13, 69, 16, 18, 12, 36, 16, 72, 138, 55, 129,
+			13, 0, 11, 69, 5, 84, 211, 36, 80, 124, 88, 37, 0, 17, 2, 95, 33, 121, 49, 89, 49, 55, 13, 65, 6, 138, 91, 13, 50, 0,
+			0, 13, 67, 28, 243, 133, 2, 81, 131, 50, 0, 103, 12, 9, 12, 67, 28, 243, 133, 2, 81, 124, 50, 0, 12, 9, 0, 9, 67, 76,
+			243, 128, 89, 125, 50, 0, 17, 70, 24, 192, 77, 20, 224, 207, 83, 55, 119, 65, 121, 68, 49, 136, 0, 12, 67, 17, 81, 84, 72, 57,
+			134, 6, 121, 47, 0, 9, 67, 12, 243, 128, 49, 124, 50, 0, 9, 2, 95, 39, 49, 58, 136, 47, 0, 0, 11, 68, 72, 82, 75, 36,
+			34, 138, 49, 129, 0, 21, 72, 36, 212, 5, 72, 21, 9, 88, 80, 122, 65, 48, 6, 121, 34, 13, 47, 122, 84, 0, 13, 2, 95, 38,
+			35, 65, 48, 13, 89, 35, 50, 72, 0, 0, 17, 70, 20, 228, 197, 52, 35, 5, 124, 50, 89, 6, 124, 65, 71, 118, 0, 14, 4, 95,
+			50, 48, 15, 47, 58, 6, 121, 50, 47, 141, 0, 13, 2, 95, 37, 48, 148, 89, 6, 121, 50, 47, 0, 105, 12, 2, 95, 37, 48, 114,
+			89, 6, 121, 50, 47, 0, 0, 9, 67, 12, 243, 133, 49, 136, 50, 0, 9, 2, 95, 36, 72, 124, 55, 114, 0, 0, 16, 67, 88, 19,
+			128, 84, 35, 50, 72, 128, 0, 81, 100, 101, 114, 32, 17, 67, 88, 19, 128, 84, 35, 50, 72, 121, 50, 0, 81, 100, 101, 110, 32, 9,
+			67, 80, 83, 128, 47, 121, 50, 0, 19, 71, 36, 212, 9, 56, 114, 78, 28, 122, 65, 48, 6, 122, 50, 75, 122, 68, 0, 0, 9, 198,
+			61, 85, 3, 5, 53, 0, 65, 11, 68, 4, 66, 69, 84, 119, 72, 57, 134, 0, 13, 2, 95, 42, 35, 89, 47, 13, 34, 122, 89, 49,
+			0, 14, 4, 95, 3, 1, 16, 49, 4, 35, 48, 14, 47, 118, 0, 0, 9, 67, 32, 84, 130, 128, 71, 0, 103, 12, 69, 12, 20, 211,
+			21, 144, 49, 138, 89, 37, 0, 14, 69, 9, 81, 78, 61, 48, 71, 58, 138, 50, 124, 89, 0, 17, 70, 80, 20, 5, 77, 68, 153, 47,
+			35, 48, 13, 89, 47, 34, 122, 0, 13, 2, 95, 41, 34, 137, 47, 48, 119, 34, 121, 50, 0, 0, 16, 70, 80, 244, 143, 57, 67, 192,
+			47, 13, 34, 124, 50, 47, 136, 0, 18, 70, 36, 66, 84, 5, 35, 196, 137, 72, 6, 122, 47, 13, 34, 124, 72, 0, 16, 70, 76, 245,
+			84, 32, 83, 132, 89, 126, 83, 6, 121, 50, 72, 0, 10, 67, 36, 67, 25, 137, 72, 55, 122, 0, 14, 2, 95, 40, 55, 121, 83, 47,
+			48, 119, 34, 121, 50, 0, 0, 11, 67, 32, 84, 128, 107, 128, 0, 72, 34, 9, 17, 67, 64, 84, 128, 48, 4, 128, 15, 89, 6, 138,
+			0, 81, 115, 101, 32, 20, 67, 64, 84, 128, 48, 114, 15, 89, 6, 121, 50, 47, 0, 81, 99, 101, 110, 116, 32, 9, 67, 64, 84, 128,
+			48, 128, 0, 72, 19, 71, 16, 243, 7, 20, 195, 1, 84, 72, 124, 55, 81, 6, 121, 99, 55, 137, 0, 6, 195, 37, 36, 192, 17, 0,
+			10, 67, 49, 82, 83, 55, 134, 122, 89, 0, 13, 68, 44, 80, 78, 84, 49, 122, 6, 126, 50, 134, 0, 11, 68, 20, 66, 84, 32, 129,
+			72, 122, 87, 0, 11, 68, 20, 35, 207, 44, 129, 71, 117, 49, 0, 8, 2, 95, 46, 72, 124, 47, 0, 0, 13, 69, 4, 68, 137, 4,
+			224, 138, 72, 34, 141, 50, 0, 14, 69, 53, 83, 137, 12, 128, 65, 57, 134, 50, 122, 49, 0, 15, 70, 5, 69, 15, 72, 225, 89, 119,
+			47, 148, 50, 37, 0, 105, 14, 70, 5, 69, 15, 72, 225, 89, 119, 47, 128, 50, 37, 0, 12, 69, 4, 195, 9, 20, 64, 35, 55, 137,
+			72, 0, 9, 2, 95, 45, 72, 35, 91, 0, 103, 11, 2, 95, 45, 107, 4, 137, 83, 13, 50, 0, 0, 28, 67, 32, 84, 133, 107, 6,
+			142, 15, 13, 50, 72, 15, 86, 6, 140, 0, 82, 97, 110, 100, 32, 116, 104, 101, 114, 101, 32, 14, 70, 76, 243, 4, 36, 84, 128, 89,
+			136, 55, 75, 114, 0, 9, 198, 24, 244, 133, 88, 84, 128, 66, 15, 70, 4, 195, 15, 88, 84, 128, 130, 55, 6, 136, 84, 114, 0, 9,
+			2, 95, 44, 49, 124, 65, 13, 0, 0, 19, 67, 24, 20, 128, 83, 6, 127, 10, 65, 4, 133, 0, 81, 109, 111, 114, 101, 32, 16, 71,
+			32, 243, 69, 61, 115, 133, 72, 107, 136, 65, 136, 50, 114, 0, 20, 71, 5, 4, 1, 72, 21, 21, 76, 35, 48, 13, 34, 6, 35, 47,
+			13, 89, 0, 103, 19, 71, 5, 4, 1, 72, 21, 21, 76, 35, 48, 13, 34, 6, 138, 47, 13, 89, 0, 12, 67, 53, 36, 192, 65, 122,
+			89, 113, 88, 0, 24, 9, 2, 95, 51, 87, 34, 6, 129, 0, 0, 12, 68, 4, 226, 84, 4, 119, 50, 129, 47, 13, 0, 21, 72, 104,
+			147, 66, 4, 37, 197, 4, 224, 88, 113, 65, 71, 126, 71, 58, 122, 13, 50, 0, 8, 2, 95, 50, 47, 6, 134, 0, 0, 13, 69, 77,
+			147, 66, 60, 192, 89, 122, 65, 71, 118, 0, 9, 198, 12, 243, 150, 21, 36, 197, 36, 10, 198, 12, 243, 150, 21, 36, 197, 65, 9, 10,
+			2, 95, 49, 58, 6, 125, 50, 0, 106, 9, 2, 95, 49, 58, 6, 124, 50, 0, 0, 16, 70, 8, 20, 133, 57, 68, 192, 71, 35, 34,
+			13, 50, 47, 89, 0, 14, 70, 61, 4, 15, 76, 84, 128, 13, 48, 136, 88, 114, 0, 15, 70, 48, 16, 143, 72, 84, 128, 55, 138, 71,
+			13, 34, 114, 0, 10, 2, 95, 48, 88, 6, 141, 34, 136, 0, 0, 19, 71, 72, 80, 207, 52, 209, 78, 16, 34, 4, 121, 49, 13, 65,
+			121, 50, 72, 0, 12, 2, 95, 55, 89, 6, 13, 84, 13, 50, 0, 107, 11, 2, 95, 55, 89, 6, 121, 84, 13, 50, 0, 0, 10, 67,
+			56, 148, 143, 50, 141, 34, 136, 0, 10, 67, 21, 35, 211, 141, 34, 124, 89, 0, 10, 2, 95, 54, 89, 6, 122, 49, 89, 0, 0, 9,
+			2, 95, 53, 83, 6, 137, 84, 0, 0, 16, 70, 72, 84, 18, 37, 48, 76, 34, 113, 48, 34, 137, 88, 118, 0, 17, 70, 64, 83, 131,
+			32, 19, 148, 48, 121, 50, 91, 13, 50, 47, 0, 103, 15, 70, 64, 83, 131, 32, 19, 148, 48, 124, 50, 91, 124, 50, 0, 14, 70, 24,
+			21, 9, 29, 81, 64, 83, 119, 47, 129, 81, 0, 8, 2, 95, 52, 83, 6, 133, 0, 0, 15, 2, 95, 59, 89, 121, 65, 122, 49, 6,
+			136, 55, 13, 50, 0, 0, 11, 67, 32, 84, 147, 107, 128, 88, 0, 72, 12, 11, 68, 4, 226, 83, 20, 35, 50, 122, 89, 0, 10, 2,
+			95, 58, 49, 136, 55, 13, 50, 0, 0, 15, 69, 92, 130, 76, 77, 64, 58, 4, 137, 55, 89, 47, 0, 8, 13, 5, 8, 5, 39, 12,
+			12, 107, 129, 55, 0, 72, 32, 13, 69, 21, 131, 79, 61, 32, 121, 49, 89, 65, 143, 0, 15, 69, 72, 81, 140, 85, 128, 34, 129, 83,
+			55, 125, 49, 89, 0, 9, 2, 95, 57, 50, 6, 137, 50, 0, 0, 10, 66, 92, 80, 58, 129, 0, 72, 32, 9, 13, 202, 52, 20, 211,
+			4, 50, 21, 76, 85, 20, 76, 67, 8, 66, 100, 16, 57, 119, 0, 9, 9, 198, 77, 84, 18, 37, 49, 64, 66, 18, 70, 12, 240, 88,
+			36, 19, 0, 49, 136, 6, 35, 49, 89, 122, 13, 55, 0, 16, 70, 12, 20, 129, 52, 83, 0, 49, 35, 34, 13, 65, 121, 55, 0, 16,
+			70, 4, 48, 213, 73, 49, 68, 119, 49, 148, 89, 123, 72, 0, 105, 15, 70, 4, 48, 213, 73, 49, 68, 119, 49, 128, 89, 123, 72, 0,
+			5, 194, 84, 144, 17, 8, 2, 95, 56, 6, 138, 47, 0, 0, 16, 70, 64, 84, 147, 64, 86, 0, 48, 128, 89, 48, 121, 49, 89, 0,
+			10, 199, 36, 229, 5, 72, 96, 67, 20, 65, 18, 71, 12, 243, 131, 36, 84, 135, 20, 49, 124, 50, 89, 122, 6, 140, 90, 0, 12, 2,
+			95, 63, 49, 58, 121, 89, 76, 13, 50, 0, 0, 11, 68, 24, 145, 82, 100, 83, 145, 34, 122, 0, 12, 68, 12, 19, 69, 60, 49, 35,
+			65, 122, 136, 0, 13, 2, 95, 62, 81, 34, 138, 47, 13, 86, 35, 50, 0, 0, 15, 69, 28, 64, 78, 76, 176, 81, 14, 72, 35, 50,
+			89, 49, 0, 14, 69, 48, 240, 193, 48, 80, 55, 136, 49, 6, 120, 55, 0, 12, 69, 29, 82, 78, 20, 16, 81, 122, 50, 37, 0, 13,
+			69, 24, 16, 193, 16, 80, 83, 13, 89, 126, 72, 0, 13, 69, 16, 80, 193, 16, 80, 72, 121, 49, 138, 72, 0, 10, 2, 95, 61, 129,
+			49, 58, 118, 88, 0, 0, 17, 70, 16, 243, 133, 28, 19, 0, 72, 124, 50, 113, 81, 6, 130, 55, 0, 10, 67, 16, 83, 153, 72, 113,
+			50, 137, 0, 11, 2, 95, 60, 55, 121, 89, 86, 35, 50, 0, 0, 0, 27, 68, 92, 245, 76, 16, 58, 117, 72, 107, 35, 84, 47, 116,
+			0, 74, 32, 12, 82, 104, 97, 118, 101, 32, 116, 111, 32, 21, 68, 92, 245, 76, 16, 58, 117, 72, 107, 35, 84, 0, 35, 14, 81, 104,
+			97, 118, 101, 32, 22, 68, 92, 245, 76, 16, 58, 2, 117, 72, 107, 2, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 10, 196, 92, 245,
+			76, 16, 76, 32, 9, 12, 12, 68, 4, 211, 65, 56, 119, 65, 6, 126, 50, 0, 10, 67, 5, 53, 83, 138, 89, 13, 89, 0, 13, 68,
+			4, 66, 79, 76, 35, 86, 57, 6, 149, 89, 0, 0, 15, 69, 81, 34, 65, 56, 144, 47, 34, 129, 6, 35, 50, 37, 0, 14, 69, 76,
+			243, 21, 80, 80, 89, 124, 55, 57, 134, 47, 0, 15, 69, 16, 80, 149, 56, 176, 72, 129, 71, 6, 125, 50, 49, 0, 9, 198, 4, 229,
+			9, 52, 243, 153, 66, 0, 10, 2, 95, 64, 35, 47, 89, 137, 50, 0, 0, 19, 71, 21, 133, 18, 4, 66, 84, 20, 121, 49, 89, 47,
+			34, 13, 72, 137, 47, 0, 0, 20, 72, 65, 35, 202, 20, 53, 9, 48, 80, 48, 34, 13, 75, 121, 49, 47, 118, 0, 103, 11, 68, 5,
+			4, 1, 48, 119, 48, 130, 55, 0, 0, 16, 70, 12, 20, 143, 48, 147, 133, 49, 35, 34, 13, 55, 137, 50, 0, 16, 70, 24, 83, 73,
+			56, 147, 133, 83, 121, 65, 13, 50, 122, 50, 0, 12, 69, 5, 52, 197, 77, 48, 119, 89, 121, 89, 0, 0, 17, 70, 88, 149, 1, 52,
+			147, 128, 84, 137, 47, 13, 65, 122, 50, 0, 103, 17, 70, 88, 149, 1, 52, 147, 128, 84, 137, 47, 13, 65, 123, 50, 0, 103, 16, 70,
+			88, 149, 1, 52, 147, 128, 84, 122, 47, 13, 65, 123, 50, 0, 14, 70, 80, 84, 146, 4, 147, 128, 47, 13, 34, 138, 50, 0, 15, 70,
+			29, 34, 70, 24, 243, 128, 81, 34, 122, 83, 13, 50, 0, 0, 24, 75, 72, 80, 207, 56, 224, 73, 77, 48, 78, 12, 80, 34, 113, 49,
+			124, 50, 122, 89, 13, 50, 89, 0, 0, 10, 67, 48, 81, 207, 55, 121, 81, 136, 0, 15, 70, 12, 193, 65, 57, 49, 82, 49, 55, 121,
+			50, 88, 114, 0, 11, 68, 4, 113, 210, 60, 35, 81, 34, 136, 0, 0, 14, 70, 52, 144, 200, 20, 195, 5, 65, 113, 91, 121, 55, 0,
+			13, 69, 5, 53, 12, 21, 144, 35, 89, 47, 55, 37, 0, 18, 70, 12, 20, 143, 48, 147, 129, 49, 35, 34, 13, 55, 6, 137, 50, 13,
+			0, 9, 198, 84, 208, 146, 20, 195, 1, 66, 15, 70, 80, 244, 148, 36, 195, 1, 47, 132, 47, 6, 129, 119, 0, 15, 69, 77, 80, 148,
+			49, 144, 89, 125, 47, 13, 55, 122, 0, 32, 17, 70, 72, 81, 137, 56, 84, 153, 34, 113, 83, 137, 50, 13, 34, 122, 0, 19, 8, 16,
+			9, 195, 177, 1, 20, 1, 19, 48, 129, 67, 6, 35, 47, 119, 88, 0, 13, 69, 52, 245, 84, 33, 48, 65, 135, 86, 88, 0, 9, 12,
+			201, 24, 244, 133, 76, 131, 210, 80, 83, 128, 66, 18, 70, 12, 243, 148, 72, 20, 153, 49, 124, 50, 47, 34, 140, 34, 37, 0, 103, 17,
+			70, 12, 243, 148, 72, 20, 153, 49, 124, 50, 47, 34, 13, 34, 122, 0, 12, 4, 95, 226, 128, 163, 71, 117, 55, 113, 47, 0, 0, 9,
+			198, 12, 243, 12, 20, 83, 128, 66, 19, 70, 25, 35, 206, 80, 83, 132, 83, 34, 6, 125, 50, 47, 4, 121, 50, 72, 0, 16, 4, 194,
+			182, 194, 182, 48, 35, 34, 13, 81, 34, 35, 83, 89, 0, 12, 4, 95, 226, 128, 162, 71, 117, 55, 113, 47, 0, 0, 10, 67, 4, 64,
+			64, 138, 72, 13, 0, 10, 18, 71, 12, 243, 15, 77, 49, 85, 52, 49, 124, 55, 13, 89, 6, 141, 65, 0, 15, 4, 95, 226, 128, 161,
+			72, 125, 71, 118, 72, 35, 81, 114, 0, 0, 11, 68, 48, 20, 197, 72, 55, 138, 88, 114, 0, 11, 68, 24, 147, 210, 16, 83, 129, 132,
+			72, 0, 16, 70, 8, 16, 203, 20, 225, 0, 71, 35, 49, 6, 121, 50, 72, 0, 11, 4, 95, 226, 128, 160, 72, 35, 81, 114, 0, 0,
+			12, 67, 92, 129, 78, 4, 58, 121, 50, 0, 15, 10, 12, 67, 92, 129, 78, 58, 2, 121, 50, 0, 12, 10, 16, 70, 65, 33, 78, 80,
+			144, 197, 48, 34, 121, 50, 108, 122, 89, 0, 14, 69, 36, 211, 199, 20, 224, 122, 65, 13, 75, 13, 50, 0, 8, 197, 4, 81, 197, 4,
+			224, 66, 0, 16, 70, 4, 225, 197, 48, 84, 192, 35, 50, 75, 13, 55, 129, 88, 0, 15, 7, 6, 1, 195, 167, 1, 4, 5, 83, 13,
+			89, 126, 72, 0, 15, 4, 95, 226, 128, 166, 122, 55, 6, 122, 48, 89, 122, 89, 0, 0, 13, 70, 12, 82, 76, 36, 66, 0, 49, 138,
+			55, 37, 0, 6, 195, 85, 48, 128, 17, 13, 4, 95, 226, 128, 165, 47, 134, 72, 124, 47, 89, 0, 0, 11, 68, 52, 148, 200, 4, 65,
+			129, 91, 13, 0, 10, 4, 95, 226, 128, 164, 72, 124, 47, 0, 0, 14, 69, 4, 193, 146, 20, 64, 35, 55, 83, 34, 113, 72, 0, 10,
+			67, 4, 192, 78, 35, 55, 13, 50, 0, 12, 69, 72, 82, 78, 20, 64, 34, 138, 50, 72, 0, 14, 69, 32, 21, 18, 20, 64, 107, 138,
+			47, 34, 123, 72, 0, 15, 4, 95, 226, 128, 155, 55, 121, 83, 47, 49, 58, 136, 47, 0, 0, 15, 70, 52, 83, 80, 32, 148, 192, 65,
+			121, 65, 83, 113, 89, 0, 13, 4, 95, 226, 128, 154, 55, 136, 49, 58, 136, 47, 0, 0, 15, 70, 76, 21, 67, 21, 0, 78, 89, 130,
+			89, 48, 13, 50, 0, 14, 4, 95, 226, 128, 153, 34, 137, 47, 49, 58, 136, 47, 0, 0, 14, 68, 28, 242, 78, 28, 4, 81, 136, 122,
+			68, 0, 12, 9, 10, 67, 4, 193, 67, 35, 55, 122, 49, 0, 14, 70, 48, 83, 208, 5, 33, 0, 55, 121, 48, 114, 72, 0, 10, 68,
+			28, 21, 71, 20, 81, 138, 75, 0, 15, 4, 95, 226, 128, 152, 55, 121, 83, 47, 49, 58, 136, 47, 0, 18, 4, 95, 4, 15, 20, 58,
+			122, 86, 72, 6, 124, 47, 119, 71, 125, 84, 0, 0, 14, 69, 76, 80, 193, 57, 64, 89, 129, 49, 13, 50, 47, 0, 14, 69, 21, 132,
+			5, 73, 64, 121, 49, 89, 48, 128, 47, 0, 13, 69, 4, 211, 213, 57, 64, 119, 65, 135, 50, 47, 0, 16, 4, 95, 226, 128, 159, 55,
+			121, 83, 47, 49, 58, 136, 47, 89, 0, 0, 18, 70, 81, 34, 66, 84, 224, 76, 47, 34, 137, 71, 6, 57, 134, 50, 118, 0, 16, 70,
+			77, 3, 207, 56, 97, 68, 89, 48, 134, 50, 83, 121, 72, 0, 11, 67, 56, 22, 137, 50, 126, 47, 89, 122, 0, 14, 70, 28, 148, 129,
+			24, 97, 64, 75, 113, 34, 120, 83, 0, 10, 67, 4, 64, 77, 35, 72, 13, 65, 0, 14, 4, 95, 226, 128, 158, 55, 136, 49, 58, 136,
+			47, 89, 0, 0, 11, 67, 76, 129, 64, 91, 129, 0, 72, 9, 33, 15, 4, 95, 226, 128, 157, 34, 137, 47, 49, 58, 136, 47, 89, 0,
+			15, 2, 95, 91, 55, 121, 83, 47, 71, 34, 35, 49, 113, 47, 0, 0, 16, 70, 65, 33, 67, 21, 5, 0, 48, 34, 129, 89, 121, 48,
+			47, 0, 11, 200, 52, 18, 78, 80, 18, 78, 21, 32, 66, 11, 68, 32, 82, 83, 80, 107, 137, 89, 47, 0, 16, 4, 95, 226, 128, 156,
+			55, 121, 83, 47, 49, 58, 136, 47, 89, 0, 0, 10, 67, 48, 83, 206, 55, 129, 124, 50, 0, 16, 70, 52, 148, 211, 61, 84, 137, 65,
+			122, 88, 6, 143, 34, 37, 0, 18, 70, 60, 34, 84, 84, 20, 153, 124, 71, 6, 122, 76, 117, 140, 37, 0, 103, 16, 70, 60, 34, 84,
+			84, 20, 153, 124, 71, 6, 122, 76, 143, 37, 0, 10, 67, 20, 65, 78, 129, 72, 13, 50, 0, 18, 70, 16, 147, 1, 80, 244, 153, 72,
+			122, 55, 35, 47, 149, 34, 122, 0, 103, 17, 70, 16, 147, 1, 80, 244, 153, 72, 122, 55, 13, 47, 13, 34, 122, 0, 14, 69, 12, 21,
+			143, 73, 64, 49, 119, 84, 6, 132, 47, 0, 10, 4, 95, 226, 128, 147, 72, 35, 91, 0, 0, 16, 70, 76, 243, 69, 60, 225, 64, 89,
+			125, 65, 58, 125, 50, 0, 106, 15, 70, 76, 243, 69, 60, 225, 64, 89, 125, 65, 58, 124, 50, 0, 19, 66, 76, 240, 89, 6, 136, 15,
+			65, 4, 125, 76, 0, 81, 109, 117, 99, 104, 32, 20, 66, 76, 240, 89, 4, 136, 15, 65, 6, 121, 50, 37, 0, 81, 109, 97, 110, 121,
+			32, 18, 66, 76, 240, 89, 6, 136, 15, 83, 4, 127, 0, 12, 81, 102, 97, 114, 32, 9, 66, 76, 240, 4, 89, 136, 0, 12, 15, 70,
+			65, 33, 84, 104, 83, 0, 48, 34, 121, 47, 89, 118, 0, 16, 70, 29, 33, 68, 36, 83, 148, 81, 34, 129, 72, 141, 50, 47, 0, 16,
+			70, 16, 80, 129, 12, 193, 64, 72, 138, 71, 6, 126, 49, 118, 0, 6, 194, 88, 144, 17, 42, 5, 194, 84, 176, 17, 10, 4, 95, 226,
+			128, 146, 72, 35, 91, 0, 0, 13, 70, 4, 19, 9, 100, 18, 0, 13, 55, 129, 13, 0, 12, 4, 95, 226, 128, 145, 107, 137, 83, 13,
+			50, 0, 14, 2, 95, 95, 6, 125, 50, 72, 114, 89, 49, 4, 133, 0, 0, 12, 68, 72, 148, 197, 56, 34, 122, 88, 13, 50, 0, 12,
+			68, 72, 85, 18, 100, 34, 129, 47, 34, 137, 0, 9, 67, 12, 130, 67, 91, 129, 49, 0, 11, 67, 4, 192, 83, 119, 55, 6, 35, 89,
+			0, 11, 4, 95, 226, 130, 160, 57, 143, 34, 136, 0, 12, 4, 95, 226, 128, 144, 107, 137, 83, 13, 50, 0, 17, 2, 95, 94, 89, 147,
+			49, 125, 65, 83, 55, 4, 121, 49, 89, 0, 105, 16, 2, 95, 94, 89, 128, 49, 125, 65, 83, 55, 4, 121, 49, 89, 0, 0, 6, 195,
+			76, 243, 206, 32, 15, 69, 8, 80, 193, 52, 80, 71, 122, 49, 138, 65, 0, 74, 12, 10, 67, 4, 65, 78, 138, 72, 13, 50, 0, 14,
+			69, 64, 20, 1, 100, 16, 48, 119, 48, 137, 38, 13, 0, 10, 67, 36, 51, 206, 137, 49, 124, 50, 0, 13, 69, 12, 19, 137, 56, 80,
+			49, 138, 50, 137, 50, 0, 14, 2, 95, 93, 34, 137, 47, 71, 34, 35, 49, 113, 47, 0, 0, 10, 67, 64, 84, 149, 48, 13, 34, 134,
+			0, 16, 70, 56, 18, 82, 60, 34, 64, 50, 137, 34, 6, 136, 71, 37, 0, 18, 70, 9, 81, 1, 64, 84, 212, 71, 134, 72, 13, 48,
+			6, 121, 89, 47, 0, 15, 70, 77, 83, 132, 36, 19, 0, 89, 125, 50, 72, 144, 55, 0, 9, 67, 76, 130, 65, 91, 129, 13, 0, 27,
+			74, 52, 144, 210, 60, 244, 135, 4, 226, 83, 52, 65, 137, 49, 34, 136, 6, 132, 81, 13, 50, 122, 88, 13, 65, 0, 15, 4, 95, 226,
+			128, 150, 72, 4, 125, 71, 118, 71, 6, 127, 0, 0, 20, 4, 95, 226, 128, 149, 107, 124, 34, 113, 88, 4, 124, 50, 47, 118, 71, 6,
+			127, 0, 0, 27, 68, 12, 245, 76, 16, 49, 117, 72, 107, 35, 84, 47, 116, 0, 74, 32, 12, 82, 104, 97, 118, 101, 32, 116, 111, 32,
+			21, 68, 12, 245, 76, 16, 49, 117, 72, 107, 35, 84, 0, 35, 14, 81, 104, 97, 118, 101, 32, 20, 68, 12, 245, 76, 16, 4, 49, 117,
+			72, 119, 84, 0, 35, 81, 104, 97, 118, 101, 32, 14, 68, 12, 245, 76, 16, 2, 49, 117, 72, 0, 32, 12, 9, 13, 68, 60, 20, 201,
+			76, 136, 6, 138, 89, 113, 89, 0, 12, 68, 16, 83, 79, 56, 72, 129, 65, 13, 50, 0, 11, 68, 12, 243, 69, 72, 49, 125, 65, 114,
+			0, 9, 68, 12, 241, 85, 72, 49, 128, 0, 12, 4, 95, 226, 128, 148, 121, 65, 72, 35, 91, 0, 0, 16, 70, 76, 19, 65, 57, 66,
+			1, 89, 13, 65, 35, 50, 87, 13, 0, 14, 69, 72, 85, 9, 56, 16, 34, 121, 47, 122, 50, 13, 0, 14, 69, 72, 81, 201, 52, 80,
+			34, 138, 90, 6, 129, 65, 0, 16, 70, 56, 84, 5, 57, 66, 5, 50, 113, 48, 121, 50, 87, 37, 0, 15, 69, 53, 85, 1, 80, 80,
+			65, 57, 134, 47, 6, 138, 47, 0, 23, 73, 4, 197, 5, 72, 224, 84, 20, 198, 64, 130, 55, 47, 6, 128, 50, 13, 47, 55, 122, 0,
+			32, 0, 9, 198, 61, 85, 2, 4, 50, 192, 65, 12, 2, 95, 96, 71, 35, 49, 48, 34, 137, 65, 0, 0, 20, 71, 48, 165, 66, 48,
+			160, 78, 4, 55, 57, 134, 71, 55, 57, 6, 126, 50, 13, 0, 17, 71, 76, 245, 78, 16, 34, 84, 20, 89, 135, 50, 72, 71, 137, 47,
+			0, 0, 11, 67, 60, 130, 79, 136, 107, 6, 137, 136, 0, 11, 68, 12, 18, 82, 60, 49, 137, 34, 136, 0, 9, 198, 61, 85, 13, 61,
+			53, 0, 65, 11, 68, 8, 20, 193, 48, 71, 138, 89, 118, 0, 20, 72, 5, 34, 84, 32, 209, 84, 36, 48, 119, 34, 122, 87, 65, 13,
+			47, 122, 49, 0, 0, 8, 67, 12, 129, 82, 91, 140, 0, 14, 69, 52, 244, 129, 77, 48, 65, 124, 34, 6, 35, 89, 0, 16, 70, 16,
+			148, 195, 37, 3, 5, 72, 122, 89, 6, 137, 48, 118, 0, 12, 69, 4, 148, 130, 85, 48, 140, 71, 125, 89, 0, 12, 4, 95, 51, 48,
+			15, 87, 6, 128, 47, 141, 0, 0, 11, 67, 81, 83, 129, 47, 57, 134, 50, 13, 0, 15, 70, 24, 195, 213, 72, 148, 200, 83, 55, 128,
+			113, 91, 0, 103, 15, 70, 24, 195, 213, 72, 148, 200, 83, 55, 125, 34, 113, 91, 0, 0, 9, 67, 72, 147, 192, 34, 129, 136, 0, 9,
+			198, 12, 243, 21, 52, 37, 83, 66, 9, 67, 48, 83, 192, 55, 129, 136, 0, 18, 71, 32, 84, 133, 80, 144, 193, 48, 107, 113, 34, 121,
+			47, 113, 49, 118, 0, 16, 70, 25, 34, 78, 28, 147, 135, 83, 34, 122, 50, 75, 122, 68, 0, 12, 201, 12, 131, 15, 72, 244, 12, 5,
+			53, 0, 65, 9, 67, 8, 147, 192, 71, 137, 136, 0, 8, 67, 4, 195, 64, 126, 65, 0, 0, 22, 72, 52, 243, 148, 28, 243, 69, 73,
+			144, 65, 124, 50, 47, 81, 6, 124, 65, 13, 34, 37, 0, 13, 68, 84, 229, 197, 16, 125, 50, 58, 6, 121, 72, 0, 20, 72, 69, 80,
+			84, 21, 35, 129, 73, 144, 49, 58, 13, 47, 128, 50, 13, 34, 122, 0, 11, 68, 32, 245, 212, 60, 107, 135, 47, 134, 0, 12, 68, 12,
+			243, 69, 80, 49, 124, 65, 113, 47, 0, 0, 14, 69, 13, 148, 18, 85, 48, 89, 137, 48, 34, 13, 89, 0, 13, 69, 36, 229, 18, 5,
+			144, 122, 50, 47, 34, 138, 0, 0, 15, 70, 52, 244, 143, 12, 51, 192, 65, 13, 34, 124, 49, 136, 0, 10, 67, 88, 148, 193, 84, 129,
+			88, 13, 0, 10, 67, 88, 20, 197, 84, 126, 88, 0, 135, 9, 198, 80, 240, 129, 12, 51, 192, 66, 5, 194, 100, 64, 17, 12, 4, 95,
+			7, 18, 22, 81, 34, 6, 126, 84, 0, 0, 10, 67, 20, 66, 84, 121, 72, 122, 47, 0, 0, 13, 68, 53, 83, 20, 36, 65, 125, 55,
+			47, 137, 0, 103, 13, 68, 4, 35, 214, 20, 13, 71, 125, 84, 0, 74, 12, 12, 68, 48, 18, 84, 100, 55, 138, 13, 47, 37, 0, 13,
+			68, 16, 82, 84, 100, 72, 129, 13, 108, 37, 0, 103, 12, 68, 16, 82, 84, 100, 72, 138, 13, 47, 37, 0, 12, 68, 8, 148, 207, 56,
+			71, 137, 89, 13, 50, 0, 0, 12, 69, 12, 129, 82, 100, 192, 91, 121, 34, 118, 0, 15, 69, 84, 229, 201, 56, 64, 125, 50, 58, 6,
+			137, 50, 72, 0, 17, 69, 48, 149, 133, 12, 64, 55, 6, 137, 84, 89, 129, 72, 6, 129, 0, 13, 69, 21, 36, 129, 56, 64, 121, 34,
+			13, 50, 72, 0, 0, 16, 70, 16, 243, 73, 56, 144, 192, 72, 124, 65, 113, 50, 122, 49, 0, 10, 67, 56, 20, 193, 50, 35, 89, 119,
+			0, 0, 11, 67, 4, 193, 88, 35, 55, 122, 49, 89, 0, 19, 67, 16, 84, 192, 72, 13, 65, 139, 50, 0, 81, 109, 111, 105, 110, 101,
+			115, 32, 12, 201, 4, 99, 210, 20, 209, 78, 80, 147, 206, 66, 0, 0, 13, 69, 28, 244, 208, 20, 192, 81, 124, 89, 48, 118, 0, 23,
+			73, 12, 128, 82, 37, 51, 65, 80, 144, 192, 49, 35, 34, 122, 89, 65, 6, 35, 47, 122, 49, 0, 12, 69, 12, 128, 80, 20, 192, 76,
+			35, 48, 118, 0, 9, 198, 4, 195, 19, 64, 144, 197, 65, 0, 15, 70, 52, 18, 197, 56, 224, 64, 65, 13, 49, 121, 50, 13, 0, 15,
+			70, 44, 19, 142, 4, 64, 64, 49, 126, 50, 13, 72, 13, 0, 16, 70, 8, 243, 15, 28, 224, 64, 71, 13, 55, 136, 50, 38, 13, 0,
+			17, 70, 60, 49, 65, 56, 144, 192, 136, 91, 122, 6, 35, 50, 122, 49, 0, 0, 9, 67, 12, 243, 208, 49, 134, 48, 0, 19, 71, 12,
+			243, 77, 84, 226, 84, 100, 49, 13, 65, 57, 134, 50, 113, 47, 37, 0, 23, 73, 5, 81, 205, 20, 229, 1, 80, 147, 206, 130, 81, 65,
+			121, 50, 47, 6, 138, 91, 13, 50, 0, 10, 199, 4, 229, 9, 12, 194, 78, 20, 65, 0, 22, 73, 56, 243, 69, 56, 51, 1, 81, 84,
+			133, 50, 13, 65, 121, 68, 49, 55, 13, 76, 114, 0, 12, 68, 12, 195, 211, 20, 49, 55, 136, 88, 0, 36, 12, 68, 12, 195, 211, 20,
+			49, 55, 136, 89, 0, 9, 21, 72, 4, 67, 79, 56, 149, 9, 60, 224, 35, 72, 65, 13, 50, 6, 122, 91, 13, 50, 0, 0, 9, 198,
+			76, 128, 78, 28, 128, 73, 66, 13, 69, 12, 195, 211, 21, 32, 49, 55, 136, 89, 114, 0, 12, 69, 9, 81, 134, 21, 64, 71, 125, 83,
+			138, 0, 16, 69, 4, 36, 197, 57, 64, 35, 71, 89, 6, 121, 50, 47, 0, 36, 15, 69, 4, 36, 197, 57, 64, 35, 71, 89, 13, 50,
+			47, 0, 10, 15, 69, 4, 36, 197, 57, 64, 35, 71, 89, 6, 121, 50, 47, 0, 0, 14, 70, 52, 144, 200, 20, 193, 64, 65, 113, 91,
+			121, 55, 0, 15, 70, 76, 80, 84, 80, 193, 64, 89, 129, 6, 35, 47, 118, 0, 14, 70, 12, 243, 15, 28, 225, 64, 49, 13, 55, 136,
+			50, 0, 0, 13, 2, 95, 123, 55, 121, 83, 47, 71, 34, 138, 89, 0, 13, 4, 95, 4, 9, 1, 6, 117, 65, 55, 135, 47, 0, 0,
+			18, 72, 81, 35, 213, 8, 17, 15, 85, 32, 47, 34, 134, 71, 13, 72, 133, 0, 12, 68, 20, 69, 67, 20, 113, 72, 57, 134, 89, 0,
+			9, 67, 8, 20, 211, 71, 138, 89, 0, 20, 4, 95, 226, 128, 188, 121, 49, 89, 49, 55, 119, 65, 6, 138, 91, 13, 50, 88, 0, 0,
+			15, 69, 16, 241, 83, 57, 64, 72, 125, 88, 13, 50, 47, 0, 32, 13, 69, 24, 243, 7, 21, 32, 83, 136, 55, 75, 114, 0, 16, 70,
+			88, 145, 206, 21, 69, 5, 84, 122, 50, 57, 6, 121, 47, 0, 16, 70, 76, 16, 143, 80, 17, 197, 89, 35, 71, 13, 47, 126, 90, 0,
+			16, 70, 36, 229, 5, 72, 225, 69, 122, 50, 47, 6, 128, 50, 129, 0, 23, 73, 12, 21, 1, 77, 68, 143, 64, 129, 64, 49, 119, 47,
+			35, 89, 47, 34, 13, 83, 2, 37, 0, 15, 4, 95, 226, 128, 179, 72, 125, 71, 118, 48, 34, 137, 65, 0, 0, 15, 70, 32, 244, 212,
+			36, 193, 64, 107, 124, 89, 47, 118, 0, 103, 14, 70, 24, 84, 148, 36, 193, 64, 83, 128, 47, 118, 0, 103, 9, 66, 80, 240, 47, 134,
+			0, 72, 42, 9, 66, 80, 240, 47, 134, 0, 72, 14, 23, 66, 80, 240, 47, 134, 13, 50, 72, 83, 34, 6, 136, 0, 82, 97, 110, 100,
+			32, 102, 114, 111, 32, 16, 66, 80, 240, 2, 47, 117, 10, 47, 116, 0, 32, 81, 116, 111, 32, 16, 66, 80, 240, 47, 13, 15, 6, 71,
+			129, 0, 14, 81, 98, 101, 32, 15, 66, 80, 240, 47, 13, 71, 2, 37, 0, 35, 81, 98, 101, 32, 8, 66, 80, 240, 47, 116, 0, 32,
+			7, 66, 100, 80, 57, 129, 0, 9, 198, 85, 1, 210, 4, 65, 64, 36, 10, 198, 85, 1, 210, 4, 65, 64, 65, 10, 11, 67, 65, 83,
+			153, 48, 57, 134, 50, 37, 0, 14, 70, 12, 128, 82, 4, 65, 64, 91, 119, 34, 126, 72, 0, 11, 4, 95, 226, 128, 178, 48, 34, 137,
+			65, 0, 0, 11, 67, 92, 134, 64, 4, 58, 137, 0, 12, 10, 9, 67, 20, 198, 64, 129, 55, 37, 0, 9, 198, 65, 35, 199, 72, 84,
+			211, 36, 18, 70, 65, 35, 199, 72, 84, 211, 48, 34, 124, 81, 34, 121, 89, 0, 103, 9, 17, 70, 65, 35, 199, 72, 84, 211, 48, 34,
+			136, 81, 34, 121, 89, 0, 9, 0, 13, 4, 95, 226, 128, 176, 48, 128, 65, 6, 129, 55, 0, 0, 14, 69, 28, 20, 129, 28, 80, 81,
+			119, 34, 126, 90, 0, 103, 13, 69, 16, 83, 137, 76, 80, 72, 13, 50, 129, 89, 0, 11, 69, 5, 32, 200, 36, 80, 127, 76, 37, 0,
+			16, 70, 12, 243, 15, 52, 34, 65, 49, 13, 55, 125, 65, 71, 141, 0, 16, 69, 8, 241, 207, 80, 16, 71, 136, 81, 13, 47, 6, 126,
+			0, 103, 15, 69, 8, 241, 207, 80, 16, 71, 124, 81, 13, 47, 6, 126, 0, 14, 69, 84, 224, 66, 48, 80, 125, 50, 6, 138, 71, 118,
+			0, 12, 2, 95, 125, 34, 137, 47, 71, 34, 138, 89, 0, 0, 8, 3, 19, 195, 173, 91, 129, 0, 19, 70, 12, 243, 148, 72, 20, 212,
+			49, 124, 50, 47, 34, 6, 35, 89, 47, 0, 36, 10, 2, 95, 124, 84, 129, 71, 6, 127, 0, 0, 13, 67, 92, 128, 84, 4, 58, 125,
+			47, 0, 103, 12, 10, 12, 67, 92, 128, 84, 4, 58, 124, 47, 0, 15, 10, 12, 67, 92, 128, 84, 58, 2, 124, 47, 0, 12, 10, 19,
+			71, 80, 83, 5, 64, 131, 206, 100, 47, 121, 55, 6, 121, 83, 13, 50, 37, 0, 0, 18, 70, 77, 80, 138, 20, 53, 0, 89, 125, 71,
+			75, 6, 121, 49, 47, 0, 36, 8, 67, 76, 129, 87, 91, 136, 0, 12, 68, 25, 85, 15, 56, 83, 134, 47, 124, 50, 0, 16, 70, 21,
+			21, 65, 80, 147, 206, 113, 49, 58, 138, 90, 13, 50, 0, 11, 68, 20, 98, 76, 20, 129, 83, 137, 55, 0, 14, 70, 12, 243, 15, 72,
+			81, 0, 49, 125, 55, 114, 72, 0, 9, 68, 4, 148, 204, 20, 144, 55, 0, 16, 4, 95, 226, 128, 180, 47, 34, 122, 48, 118, 48, 34,
+			137, 65, 0, 0, 12, 69, 76, 244, 8, 36, 80, 89, 136, 83, 37, 0, 15, 70, 4, 36, 201, 57, 66, 5, 35, 71, 89, 122, 50, 87,
+			0, 0, 16, 70, 61, 97, 82, 80, 198, 64, 136, 84, 6, 128, 47, 55, 122, 0, 0, 15, 71, 72, 145, 200, 80, 83, 213, 76, 34, 137,
+			76, 13, 89, 0, 18, 71, 72, 21, 9, 60, 224, 76, 20, 34, 35, 91, 13, 50, 6, 35, 55, 0, 0, 18, 70, 9, 80, 200, 4, 224,
+			78, 71, 57, 134, 49, 6, 35, 50, 13, 50, 0, 9, 67, 92, 129, 87, 83, 57, 134, 0, 0, 14, 69, 28, 192, 68, 101, 48, 81, 55,
+			35, 72, 122, 89, 0, 22, 73, 65, 54, 67, 32, 144, 84, 72, 148, 212, 89, 137, 49, 6, 144, 47, 34, 122, 89, 47, 0, 14, 69, 4,
+			48, 197, 77, 48, 35, 49, 89, 121, 89, 0, 36, 14, 69, 4, 48, 197, 77, 48, 35, 49, 89, 121, 89, 0, 10, 0, 9, 198, 76, 128,
+			77, 64, 243, 192, 66, 16, 70, 48, 243, 135, 4, 115, 192, 55, 124, 68, 81, 13, 81, 136, 0, 0, 17, 70, 32, 80, 146, 36, 65, 83,
+			107, 121, 71, 34, 13, 72, 129, 88, 0, 14, 70, 12, 130, 83, 92, 144, 203, 76, 122, 88, 122, 49, 0, 0, 10, 67, 76, 147, 15, 89,
+			137, 55, 136, 0, 11, 68, 61, 85, 5, 16, 135, 47, 123, 72, 0, 16, 70, 52, 145, 5, 5, 53, 0, 65, 122, 72, 6, 129, 89, 47,
+			0, 12, 68, 4, 226, 77, 20, 35, 50, 122, 65, 138, 0, 0, 0, 9, 198, 76, 21, 129, 56, 224, 72, 66, 16, 70, 12, 16, 133, 72,
+			225, 84, 49, 35, 71, 114, 50, 6, 138, 0, 6, 194, 84, 224, 17, 42, 0, 20, 67, 92, 19, 12, 58, 6, 130, 55, 89, 47, 34, 4,
+			129, 47, 0, 81, 115, 116, 32, 9, 67, 64, 243, 12, 48, 136, 55, 0, 18, 71, 64, 145, 67, 20, 209, 65, 48, 48, 6, 129, 89, 65,
+			4, 129, 55, 0, 20, 71, 4, 197, 77, 36, 226, 85, 52, 35, 55, 57, 117, 65, 6, 122, 50, 141, 65, 0, 0, 10, 67, 80, 241, 15,
+			47, 13, 72, 134, 0, 11, 68, 76, 21, 68, 36, 89, 135, 72, 37, 0, 0, 15, 69, 64, 243, 9, 76, 128, 48, 136, 55, 122, 91, 0,
+			41, 9, 13, 69, 5, 33, 217, 48, 192, 127, 81, 38, 137, 55, 0, 13, 69, 73, 81, 199, 20, 64, 34, 125, 81, 123, 72, 0, 9, 197,
+			72, 80, 193, 48, 192, 66, 36, 13, 69, 72, 80, 193, 48, 192, 34, 129, 49, 130, 55, 0, 13, 69, 48, 144, 200, 20, 224, 55, 137, 49,
+			13, 50, 0, 14, 69, 9, 83, 137, 60, 224, 71, 125, 50, 113, 13, 50, 0, 0, 14, 70, 64, 149, 5, 61, 84, 192, 48, 122, 47, 141,
+			89, 0, 17, 70, 5, 50, 65, 80, 144, 192, 138, 91, 122, 6, 35, 47, 122, 49, 0, 0, 18, 71, 80, 81, 4, 100, 33, 65, 72, 47,
+			6, 121, 72, 122, 71, 4, 140, 0, 18, 71, 16, 19, 132, 20, 194, 79, 56, 72, 35, 50, 72, 113, 55, 144, 50, 0, 0, 12, 68, 12,
+			195, 212, 32, 49, 55, 136, 86, 0, 36, 12, 68, 8, 20, 201, 76, 71, 138, 89, 122, 89, 0, 0, 14, 69, 105, 84, 137, 12, 128, 88,
+			57, 117, 34, 122, 49, 0, 11, 67, 85, 64, 78, 134, 47, 6, 35, 50, 0, 13, 69, 72, 81, 201, 60, 224, 34, 129, 75, 13, 50, 0,
+			15, 69, 28, 147, 5, 4, 64, 81, 6, 122, 55, 122, 35, 72, 0, 0, 15, 70, 52, 147, 133, 73, 96, 64, 65, 113, 50, 128, 84, 13,
+			0, 0, 16, 71, 52, 83, 2, 61, 84, 142, 20, 65, 121, 55, 71, 114, 50, 0, 11, 67, 61, 1, 68, 124, 48, 6, 121, 72, 0, 18,
+			71, 4, 49, 84, 100, 193, 78, 20, 119, 89, 121, 47, 13, 55, 129, 50, 0, 0, 6, 195, 97, 134, 0, 17, 0, 17, 70, 21, 53, 9,
+			52, 21, 5, 121, 89, 47, 113, 65, 138, 47, 0, 36, 14, 69, 12, 195, 211, 21, 64, 49, 55, 124, 88, 113, 47, 0, 0, 14, 70, 48,
+			82, 83, 85, 33, 64, 55, 129, 90, 114, 0, 103, 13, 70, 48, 82, 83, 85, 33, 64, 55, 121, 90, 114, 0, 11, 4, 95, 35, 51, 50,
+			89, 48, 138, 89, 0, 0, 11, 67, 85, 64, 72, 57, 134, 108, 131, 0, 103, 10, 67, 85, 64, 72, 57, 134, 108, 126, 0, 0, 13, 68,
+			4, 211, 206, 28, 119, 65, 125, 68, 0, 74, 12, 10, 67, 44, 147, 15, 49, 129, 55, 136, 0, 12, 68, 4, 114, 83, 80, 138, 75, 122,
+			89, 47, 0, 0, 14, 69, 65, 33, 83, 21, 64, 48, 34, 129, 89, 121, 47, 0, 13, 69, 33, 83, 135, 21, 32, 107, 125, 68, 81, 114,
+			0, 9, 198, 21, 53, 18, 4, 225, 197, 66, 13, 69, 13, 85, 15, 85, 64, 49, 125, 47, 135, 47, 0, 13, 69, 12, 243, 135, 21, 32,
+			49, 124, 68, 81, 114, 0, 12, 69, 8, 243, 199, 21, 32, 71, 117, 81, 114, 0, 0, 15, 70, 76, 129, 82, 36, 97, 128, 91, 6, 121,
+			34, 113, 83, 0, 14, 70, 76, 49, 80, 81, 33, 64, 89, 121, 48, 47, 114, 0, 15, 70, 52, 16, 200, 21, 65, 64, 65, 119, 91, 121,
+			47, 37, 0, 14, 70, 5, 36, 197, 56, 19, 0, 127, 89, 13, 50, 118, 0, 0, 0, 12, 68, 72, 84, 201, 56, 34, 121, 88, 122, 50,
+			0, 0, 13, 69, 24, 19, 73, 56, 80, 83, 35, 65, 122, 50, 0, 9, 198, 4, 229, 9, 8, 241, 25, 65, 18, 70, 4, 36, 197, 57,
+			66, 65, 35, 71, 89, 6, 121, 50, 108, 129, 13, 0, 0, 17, 70, 36, 228, 85, 37, 38, 64, 122, 50, 49, 58, 13, 34, 37, 0, 103,
+			19, 70, 36, 225, 9, 72, 80, 212, 122, 50, 72, 114, 34, 6, 121, 49, 47, 0, 103, 9, 198, 36, 225, 9, 72, 80, 212, 67, 9, 198,
+			24, 20, 133, 92, 83, 12, 66, 9, 198, 12, 243, 148, 72, 16, 212, 36, 10, 198, 12, 243, 148, 72, 16, 212, 65, 10, 9, 67, 9, 34,
+			69, 71, 34, 129, 0, 0, 15, 67, 92, 147, 12, 58, 122, 55, 47, 116, 0, 81, 116, 111, 32, 9, 195, 92, 147, 12, 76, 9, 32, 12,
+			10, 199, 88, 19, 131, 61, 85, 133, 72, 66, 17, 70, 72, 129, 84, 61, 34, 67, 34, 121, 47, 13, 34, 122, 49, 0, 10, 19, 71, 36,
+			224, 78, 36, 208, 84, 20, 122, 50, 6, 35, 50, 122, 65, 13, 47, 0, 20, 71, 36, 115, 143, 72, 19, 85, 76, 122, 81, 50, 133, 34,
+			6, 138, 65, 13, 89, 0, 0, 22, 72, 64, 19, 5, 77, 66, 78, 36, 16, 48, 35, 55, 13, 89, 47, 6, 122, 50, 129, 13, 0, 21,
+			72, 12, 147, 131, 36, 227, 129, 80, 144, 89, 122, 50, 89, 122, 50, 6, 35, 47, 37, 0, 17, 70, 16, 148, 213, 76, 81, 0, 72, 122,
+			89, 6, 57, 134, 88, 72, 0, 6, 195, 4, 65, 147, 17, 0, 15, 69, 100, 19, 65, 32, 16, 57, 126, 65, 13, 107, 126, 0, 103, 14,
+			69, 100, 19, 65, 32, 16, 57, 35, 65, 13, 107, 126, 0, 23, 73, 72, 85, 1, 48, 144, 84, 61, 38, 64, 34, 113, 47, 35, 55, 129,
+			13, 47, 13, 34, 122, 0, 23, 73, 72, 84, 208, 37, 32, 84, 61, 38, 64, 34, 121, 89, 48, 34, 13, 47, 149, 34, 37, 0, 103, 23,
+			73, 72, 84, 208, 37, 32, 84, 61, 38, 64, 34, 113, 89, 48, 122, 34, 13, 47, 13, 34, 122, 0, 13, 69, 64, 84, 149, 76, 80, 48,
+			13, 34, 134, 88, 0, 15, 69, 16, 148, 213, 76, 80, 72, 122, 89, 6, 57, 134, 89, 0, 0, 9, 198, 61, 85, 12, 60, 242, 192, 65,
+			5, 194, 97, 144, 17, 0, 18, 71, 4, 227, 206, 100, 211, 213, 76, 119, 50, 124, 50, 13, 65, 13, 89, 0, 6, 195, 5, 67, 64, 17,
+			0, 14, 68, 16, 242, 78, 28, 4, 72, 134, 122, 68, 0, 12, 9, 20, 72, 72, 80, 207, 53, 1, 78, 76, 80, 34, 121, 49, 13, 65,
+			48, 121, 50, 89, 0, 20, 72, 16, 81, 137, 56, 149, 9, 88, 80, 72, 113, 83, 122, 50, 113, 47, 122, 84, 0, 10, 68, 8, 242, 78,
+			28, 71, 139, 68, 0, 0, 15, 69, 52, 145, 4, 5, 144, 65, 4, 122, 72, 72, 6, 138, 0, 13, 69, 24, 17, 67, 21, 48, 83, 129,
+			89, 129, 88, 0, 0, 10, 67, 28, 19, 1, 81, 126, 55, 13, 0, 0, 0, 12, 68, 12, 197, 217, 16, 49, 55, 134, 122, 72, 0, 18,
+			72, 72, 83, 132, 21, 165, 143, 85, 48, 34, 124, 50, 72, 113, 84, 134, 0, 0, 16, 70, 88, 243, 1, 80, 147, 5, 84, 124, 55, 119,
+			47, 118, 0, 103, 9, 198, 44, 83, 148, 84, 50, 217, 66, 14, 69, 72, 83, 69, 17, 144, 34, 121, 65, 13, 72, 37, 0, 17, 70, 64,
+			20, 129, 8, 243, 1, 48, 13, 34, 35, 71, 13, 55, 13, 0, 0, 11, 67, 60, 18, 21, 136, 6, 126, 107, 134, 0, 15, 70, 48, 147,
+			131, 60, 195, 128, 55, 122, 50, 49, 13, 50, 0, 16, 70, 36, 229, 5, 72, 225, 84, 122, 50, 47, 114, 50, 121, 47, 0, 0, 18, 67,
+			92, 149, 8, 58, 2, 122, 86, 86, 115, 0, 34, 81, 116, 104, 101, 32, 10, 67, 92, 149, 8, 58, 122, 86, 0, 72, 8, 67, 5, 52,
+			192, 35, 89, 0, 0, 17, 70, 36, 229, 5, 73, 97, 78, 122, 50, 47, 114, 84, 6, 129, 50, 0, 15, 70, 12, 243, 77, 20, 229, 0,
+			49, 124, 65, 121, 50, 47, 0, 0, 15, 70, 12, 19, 12, 36, 244, 5, 49, 119, 55, 144, 48, 37, 0, 13, 69, 16, 19, 137, 76, 128,
+			72, 138, 50, 122, 91, 0, 13, 69, 72, 17, 199, 20, 64, 34, 35, 81, 123, 72, 0, 13, 69, 40, 17, 199, 20, 64, 75, 35, 81, 123,
+			72, 0, 13, 69, 16, 241, 199, 20, 64, 72, 124, 81, 123, 72, 0, 0, 12, 70, 40, 16, 209, 84, 84, 192, 90, 35, 49, 0, 14, 70,
+			12, 128, 83, 76, 148, 192, 76, 35, 89, 37, 0, 103, 13, 70, 12, 128, 83, 76, 148, 192, 91, 35, 89, 37, 0, 6, 195, 57, 148, 197,
+			17, 0, 17, 71, 8, 81, 84, 32, 245, 133, 56, 71, 138, 108, 136, 84, 13, 50, 0, 0, 10, 68, 61, 85, 5, 72, 135, 47, 114, 0,
+			15, 70, 12, 243, 77, 20, 225, 0, 49, 13, 65, 121, 50, 72, 0, 12, 68, 5, 4, 143, 56, 138, 48, 34, 13, 50, 0, 0, 14, 69,
+			52, 84, 131, 20, 64, 65, 128, 89, 6, 121, 72, 0, 16, 69, 8, 83, 135, 4, 192, 71, 4, 121, 50, 81, 6, 130, 55, 0, 13, 69,
+			92, 83, 23, 100, 224, 58, 121, 55, 122, 50, 0, 12, 69, 92, 147, 135, 20, 64, 58, 122, 68, 72, 0, 12, 69, 64, 147, 135, 20, 64,
+			48, 122, 68, 72, 0, 14, 69, 24, 244, 141, 36, 64, 83, 132, 65, 6, 122, 72, 0, 13, 69, 8, 19, 135, 20, 64, 71, 35, 68, 81,
+			72, 0, 0, 9, 67, 76, 149, 5, 89, 137, 47, 0, 9, 198, 60, 211, 137, 9, 84, 192, 65, 16, 70, 52, 147, 137, 9, 84, 192, 65,
+			122, 50, 122, 71, 125, 89, 0, 0, 9, 67, 33, 85, 192, 107, 57, 134, 0, 17, 71, 64, 20, 211, 20, 225, 197, 72, 48, 35, 89, 113,
+			50, 75, 114, 0, 17, 71, 12, 128, 77, 64, 17, 206, 20, 91, 35, 65, 48, 6, 138, 50, 0, 0, 0, 13, 69, 44, 147, 20, 21, 32,
+			49, 122, 55, 47, 114, 0, 10, 67, 12, 19, 22, 49, 35, 84, 0, 103, 9, 67, 12, 19, 22, 49, 126, 84, 0, 0, 9, 198, 16, 84,
+			208, 37, 65, 64, 8, 11, 67, 92, 22, 25, 58, 35, 49, 89, 37, 0, 15, 70, 72, 84, 212, 37, 97, 64, 34, 121, 89, 47, 122, 84,
+			0, 10, 198, 52, 19, 132, 5, 65, 64, 66, 36, 16, 70, 16, 85, 5, 57, 65, 64, 72, 138, 47, 6, 124, 50, 47, 0, 0, 31, 7,
+			13, 21, 19, 20, 14, 39, 20, 65, 6, 125, 89, 50, 47, 107, 35, 84, 47, 116, 0, 35, 82, 104, 97, 118, 101, 32, 116, 111, 32, 26,
+			7, 13, 21, 19, 20, 14, 39, 20, 65, 125, 89, 50, 47, 107, 119, 84, 0, 35, 77, 81, 104, 97, 118, 101, 32, 16, 7, 13, 21, 19,
+			20, 14, 39, 20, 65, 125, 89, 50, 47, 0, 32, 0, 32, 8, 23, 15, 21, 12, 4, 14, 39, 20, 4, 58, 117, 72, 50, 47, 35, 84,
+			47, 116, 0, 32, 12, 82, 104, 97, 118, 101, 32, 116, 111, 32, 27, 8, 23, 15, 21, 12, 4, 14, 39, 20, 58, 117, 72, 50, 47, 13,
+			84, 0, 73, 35, 12, 81, 104, 97, 118, 101, 32, 11, 68, 13, 84, 147, 20, 49, 148, 89, 0, 105, 10, 68, 13, 84, 147, 20, 49, 128,
+			89, 0, 0, 33, 9, 19, 8, 15, 21, 12, 4, 14, 39, 20, 6, 91, 117, 72, 50, 47, 35, 84, 47, 116, 0, 32, 12, 82, 104, 97,
+			118, 101, 32, 116, 111, 32, 28, 9, 19, 8, 15, 21, 12, 4, 14, 39, 20, 91, 117, 72, 50, 47, 107, 13, 84, 0, 35, 77, 81, 104,
+			97, 118, 101, 32, 21, 9, 19, 8, 15, 21, 12, 4, 14, 39, 20, 4, 91, 117, 72, 50, 47, 0, 32, 12, 9, 14, 69, 21, 129, 84,
+			21, 32, 121, 49, 89, 122, 47, 114, 0, 17, 70, 21, 132, 5, 16, 149, 5, 121, 49, 89, 48, 13, 72, 137, 47, 0, 16, 70, 16, 84,
+			207, 48, 21, 5, 72, 121, 89, 13, 55, 13, 47, 0, 17, 70, 12, 242, 78, 12, 145, 5, 49, 136, 122, 50, 89, 6, 137, 72, 0, 0,
+			14, 70, 56, 20, 146, 5, 65, 64, 50, 119, 34, 138, 47, 0, 0, 18, 71, 76, 16, 210, 36, 98, 67, 20, 89, 35, 49, 34, 113, 83,
+			137, 89, 0, 0, 11, 200, 4, 229, 9, 52, 21, 20, 21, 32, 65, 12, 68, 4, 226, 79, 56, 35, 50, 138, 13, 50, 0, 21, 72, 4,
+			225, 77, 60, 209, 84, 21, 32, 35, 50, 122, 65, 6, 124, 65, 113, 47, 114, 0, 0, 15, 69, 80, 35, 9, 76, 144, 47, 14, 71, 55,
+			129, 89, 37, 0, 12, 201, 77, 80, 143, 72, 66, 78, 5, 65, 64, 66, 13, 69, 76, 80, 78, 12, 80, 89, 138, 124, 50, 89, 0, 11,
+			67, 61, 129, 78, 124, 49, 89, 13, 50, 0, 0, 10, 67, 64, 243, 25, 48, 124, 55, 122, 0, 9, 67, 4, 70, 133, 35, 72, 88, 0,
+			16, 70, 4, 34, 76, 37, 70, 64, 119, 71, 122, 55, 13, 47, 37, 0, 10, 3, 9, 46, 5, 137, 129, 11, 0, 8, 0, 15, 70, 77,
+			2, 78, 4, 50, 0, 89, 48, 122, 50, 113, 76, 0, 18, 71, 65, 33, 68, 36, 48, 84, 20, 48, 34, 121, 72, 113, 49, 138, 47, 0,
+			19, 71, 64, 243, 25, 4, 210, 68, 20, 48, 124, 55, 122, 6, 138, 65, 137, 72, 0, 0, 12, 68, 28, 20, 197, 76, 81, 35, 89, 123,
+			88, 0, 0, 17, 70, 56, 80, 146, 5, 50, 193, 50, 13, 71, 34, 35, 89, 49, 13, 0, 14, 69, 88, 17, 201, 56, 16, 84, 13, 75,
+			137, 50, 13, 0, 9, 198, 52, 243, 69, 57, 69, 77, 66, 8, 197, 16, 243, 73, 56, 240, 65, 0, 24, 74, 36, 224, 80, 65, 35, 208,
+			72, 144, 84, 20, 4, 122, 50, 119, 48, 34, 136, 48, 34, 141, 47, 0, 0, 18, 71, 4, 197, 5, 72, 224, 84, 20, 130, 55, 47, 114,
+			50, 138, 47, 0, 36, 19, 71, 4, 197, 5, 72, 224, 84, 20, 130, 55, 47, 6, 128, 50, 13, 47, 0, 9, 0, 20, 72, 21, 146, 129,
+			24, 160, 76, 48, 16, 138, 57, 119, 83, 57, 35, 47, 55, 119, 0, 11, 68, 17, 85, 133, 80, 72, 134, 84, 138, 0, 0, 15, 69, 16,
+			148, 195, 85, 48, 72, 122, 89, 49, 13, 89, 0, 9, 0, 15, 70, 36, 229, 5, 73, 96, 76, 122, 50, 47, 114, 84, 118, 0, 6, 195,
+			36, 212, 9, 65, 10, 67, 32, 244, 9, 107, 136, 48, 129, 0, 0, 0, 10, 67, 48, 242, 83, 55, 136, 122, 89, 0, 11, 68, 8, 163,
+			210, 56, 71, 57, 132, 50, 0, 21, 72, 65, 149, 8, 4, 115, 210, 5, 48, 48, 137, 87, 6, 35, 81, 13, 34, 13, 89, 0, 0, 13,
+			69, 56, 20, 12, 21, 48, 50, 138, 48, 118, 88, 0, 14, 69, 52, 17, 18, 5, 48, 65, 13, 72, 34, 120, 89, 0, 13, 69, 88, 84,
+			147, 85, 48, 84, 128, 89, 113, 88, 0, 14, 69, 61, 97, 82, 49, 144, 136, 84, 114, 55, 122, 0, 9, 0, 0, 8, 67, 100, 80, 64,
+			57, 138, 0, 0, 21, 72, 48, 16, 143, 72, 21, 15, 73, 144, 55, 35, 71, 34, 13, 47, 130, 34, 37, 0, 103, 12, 68, 20, 210, 76,
+			100, 121, 65, 113, 55, 37, 0, 10, 198, 80, 244, 141, 20, 229, 0, 66, 36, 9, 198, 80, 244, 141, 20, 229, 0, 65, 21, 72, 48, 16,
+			143, 72, 21, 15, 73, 144, 55, 119, 71, 6, 124, 34, 13, 47, 34, 122, 0, 0, 15, 70, 48, 21, 210, 20, 224, 197, 55, 124, 34, 13,
+			50, 89, 0, 0, 15, 70, 52, 147, 9, 80, 144, 64, 65, 13, 55, 122, 91, 13, 0, 0, 17, 71, 33, 84, 146, 36, 48, 78, 20, 107,
+			128, 13, 49, 138, 50, 0, 103, 17, 71, 33, 84, 146, 36, 48, 78, 20, 107, 125, 34, 113, 49, 138, 50, 0, 17, 71, 12, 128, 77, 20,
+			193, 79, 56, 49, 13, 65, 129, 55, 141, 50, 0, 6, 195, 12, 144, 64, 17, 0, 13, 68, 92, 129, 82, 20, 4, 58, 140, 0, 8, 12,
+			10, 12, 68, 40, 84, 213, 76, 75, 129, 88, 13, 89, 0, 12, 68, 81, 81, 15, 72, 47, 57, 134, 72, 114, 0, 9, 198, 52, 19, 139,
+			36, 225, 0, 66, 12, 68, 44, 147, 211, 44, 49, 129, 124, 89, 49, 0, 12, 68, 40, 84, 213, 76, 75, 129, 88, 13, 89, 0, 10, 68,
+			24, 246, 69, 72, 83, 139, 138, 0, 8, 67, 12, 144, 79, 76, 135, 0, 0, 8, 197, 36, 225, 210, 36, 64, 65, 15, 69, 72, 81, 149,
+			56, 64, 34, 129, 83, 125, 50, 72, 0, 37, 14, 6, 195, 169, 12, 9, 20, 5, 122, 55, 6, 129, 47, 0, 0, 15, 70, 12, 240, 200,
+			48, 80, 64, 49, 124, 49, 55, 129, 13, 0, 0, 18, 71, 48, 193, 87, 20, 195, 25, 56, 105, 13, 58, 6, 121, 55, 122, 50, 0, 6,
+			195, 76, 17, 64, 17, 0, 0, 12, 69, 44, 244, 200, 21, 32, 49, 136, 91, 114, 0, 12, 69, 12, 243, 208, 21, 32, 49, 134, 48, 114,
+			0, 0, 9, 198, 8, 82, 74, 36, 225, 192, 66, 9, 198, 28, 243, 196, 9, 145, 64, 66, 14, 70, 21, 97, 78, 36, 225, 192, 129, 84,
+			50, 122, 68, 0, 16, 70, 4, 48, 68, 20, 209, 64, 119, 49, 35, 72, 13, 65, 37, 0, 15, 70, 4, 36, 197, 56, 49, 64, 35, 71,
+			89, 13, 50, 89, 0, 0, 18, 71, 9, 33, 65, 44, 96, 83, 80, 71, 34, 121, 49, 83, 13, 89, 47, 0, 0, 21, 72, 77, 80, 147,
+			21, 21, 69, 57, 64, 89, 125, 71, 89, 113, 49, 58, 13, 50, 47, 0, 11, 68, 56, 245, 193, 100, 50, 136, 58, 138, 0, 10, 67, 52,
+			83, 79, 65, 121, 65, 136, 0, 0, 13, 67, 4, 209, 78, 4, 138, 65, 6, 121, 50, 0, 103, 9, 197, 36, 225, 15, 61, 32, 65, 9,
+			13, 67, 4, 209, 78, 4, 126, 65, 6, 121, 50, 0, 10, 13, 69, 4, 114, 1, 77, 64, 119, 81, 120, 89, 47, 0, 0, 18, 70, 28,
+			85, 20, 36, 225, 192, 4, 81, 121, 47, 122, 68, 0, 12, 35, 9, 14, 70, 77, 81, 134, 36, 49, 64, 89, 13, 83, 137, 89, 0, 14,
+			70, 72, 80, 68, 36, 225, 192, 34, 129, 72, 122, 68, 0, 14, 70, 64, 19, 12, 36, 225, 192, 48, 35, 55, 122, 68, 0, 15, 70, 16,
+			84, 129, 56, 113, 64, 72, 113, 34, 138, 50, 75, 0, 0, 9, 67, 92, 146, 64, 58, 129, 12, 0, 15, 70, 4, 195, 5, 72, 114, 67,
+			119, 55, 128, 75, 122, 49, 0, 0, 11, 68, 84, 224, 204, 20, 125, 68, 49, 118, 0, 15, 7, 15, 39, 3, 12, 15, 3, 11, 13, 49,
+			55, 124, 49, 0, 11, 68, 56, 244, 201, 72, 50, 136, 89, 128, 0, 13, 68, 48, 241, 207, 56, 55, 124, 81, 6, 124, 50, 0, 0, 13,
+			69, 16, 245, 1, 28, 80, 72, 136, 47, 113, 75, 0, 6, 195, 85, 52, 210, 17, 0, 16, 70, 76, 80, 210, 20, 54, 64, 89, 129, 49,
+			34, 13, 89, 37, 0, 16, 70, 21, 53, 15, 65, 1, 76, 121, 89, 47, 6, 124, 48, 118, 0, 9, 198, 5, 32, 200, 92, 22, 64, 65,
+			0, 9, 67, 92, 131, 204, 107, 136, 55, 0, 17, 71, 32, 22, 129, 72, 67, 213, 76, 107, 35, 88, 114, 72, 13, 89, 0, 18, 71, 20,
+			69, 193, 72, 66, 65, 56, 121, 72, 58, 6, 132, 72, 141, 50, 0, 0, 19, 67, 16, 241, 83, 72, 125, 88, 50, 124, 47, 0, 32, 78,
+			81, 110, 111, 116, 32, 10, 67, 16, 241, 83, 72, 125, 88, 0, 32, 13, 68, 20, 194, 90, 4, 122, 55, 6, 137, 88, 13, 0, 10, 68,
+			52, 22, 65, 56, 65, 144, 50, 0, 15, 70, 12, 16, 129, 72, 85, 0, 49, 35, 71, 13, 34, 138, 0, 11, 68, 8, 20, 212, 20, 71,
+			138, 89, 47, 0, 0, 13, 69, 48, 80, 78, 56, 80, 55, 129, 6, 35, 50, 0, 13, 69, 24, 18, 78, 56, 80, 83, 35, 50, 38, 13,
+			0, 14, 69, 76, 245, 197, 80, 240, 89, 13, 58, 121, 47, 136, 0, 15, 69, 52, 242, 129, 88, 80, 65, 136, 107, 6, 126, 84, 37, 0,
+			14, 69, 52, 19, 137, 48, 16, 65, 119, 50, 122, 55, 13, 0, 10, 67, 44, 145, 86, 49, 129, 121, 83, 0, 14, 69, 12, 19, 129, 16,
+			16, 49, 35, 50, 13, 72, 13, 0, 16, 70, 29, 32, 70, 24, 149, 9, 81, 34, 119, 83, 129, 47, 37, 0, 9, 67, 16, 241, 82, 72,
+			134, 114, 0, 0, 9, 67, 20, 211, 65, 121, 65, 13, 0, 9, 67, 92, 131, 193, 107, 58, 136, 0, 0, 13, 67, 92, 131, 192, 4, 107,
+			134, 0, 32, 8, 12, 10, 16, 70, 52, 19, 4, 37, 97, 83, 65, 130, 55, 72, 6, 129, 84, 0, 19, 71, 36, 225, 15, 12, 130, 78,
+			4, 122, 50, 72, 136, 76, 6, 137, 50, 13, 0, 19, 71, 12, 243, 150, 60, 197, 84, 20, 49, 124, 50, 84, 13, 55, 6, 134, 47, 0,
+			9, 67, 4, 67, 192, 119, 72, 134, 0, 0, 16, 70, 52, 18, 13, 61, 81, 0, 65, 35, 101, 65, 6, 134, 72, 0, 0, 16, 70, 77,
+			80, 144, 60, 83, 129, 89, 134, 48, 6, 129, 50, 13, 0, 12, 69, 5, 32, 200, 21, 48, 127, 76, 123, 88, 0, 0, 16, 70, 4, 36,
+			129, 32, 19, 64, 138, 71, 34, 13, 107, 35, 65, 0, 25, 74, 36, 225, 5, 80, 84, 141, 36, 224, 84, 20, 122, 50, 72, 113, 47, 6,
+			128, 65, 113, 50, 13, 47, 0, 12, 201, 4, 208, 137, 16, 86, 20, 72, 245, 83, 67, 0, 17, 70, 65, 148, 133, 56, 81, 83, 48, 122,
+			34, 13, 50, 6, 129, 88, 0, 0, 13, 68, 4, 35, 213, 80, 119, 71, 135, 47, 0, 74, 12, 9, 67, 76, 22, 83, 89, 121, 88, 0,
+			20, 72, 5, 32, 200, 36, 209, 68, 21, 48, 127, 49, 122, 65, 6, 129, 72, 129, 88, 0, 0, 13, 69, 5, 66, 5, 57, 48, 35, 87,
+			113, 50, 88, 0, 15, 69, 76, 147, 135, 49, 144, 89, 122, 68, 81, 55, 122, 0, 32, 0, 9, 67, 20, 211, 89, 121, 65, 37, 0, 16,
+			70, 48, 84, 207, 80, 131, 192, 55, 13, 89, 6, 134, 47, 134, 0, 0, 17, 71, 92, 21, 5, 73, 50, 5, 16, 58, 130, 47, 114, 91,
+			121, 72, 0, 0, 16, 70, 80, 83, 5, 64, 131, 206, 47, 121, 55, 113, 83, 136, 50, 0, 13, 68, 72, 80, 83, 44, 34, 129, 6, 120,
+			89, 49, 0, 12, 68, 48, 241, 201, 56, 55, 124, 81, 122, 50, 0, 12, 68, 8, 244, 213, 56, 71, 136, 89, 13, 50, 0, 0, 13, 69,
+			80, 20, 137, 24, 96, 47, 35, 34, 122, 83, 0, 0, 17, 70, 64, 19, 129, 12, 80, 64, 48, 35, 50, 119, 89, 6, 129, 13, 0, 0,
+			0, 20, 68, 80, 129, 82, 20, 86, 2, 140, 4, 58, 128, 0, 11, 81, 119, 101, 114, 101, 32, 16, 68, 80, 129, 82, 20, 86, 140, 71,
+			6, 129, 0, 81, 98, 101, 32, 18, 68, 80, 129, 82, 20, 86, 2, 140, 4, 127, 0, 11, 81, 97, 114, 101, 32, 12, 68, 80, 129, 82,
+			20, 86, 140, 0, 72, 12, 9, 12, 68, 72, 81, 201, 76, 34, 129, 75, 113, 89, 0, 11, 68, 80, 129, 84, 4, 87, 129, 47, 13, 0,
+			12, 68, 48, 20, 211, 60, 55, 35, 89, 136, 0, 103, 12, 68, 48, 20, 211, 60, 55, 35, 89, 6, 134, 0, 0, 0, 0, 10, 67, 20,
+			213, 64, 129, 65, 57, 134, 0, 0, 18, 72, 72, 144, 207, 12, 129, 84, 20, 64, 34, 122, 49, 13, 91, 138, 72, 0, 11, 68, 32, 245,
+			83, 20, 107, 135, 88, 0, 36, 15, 70, 12, 240, 85, 80, 131, 210, 49, 136, 6, 130, 87, 114, 0, 0, 13, 69, 77, 84, 133, 77, 64,
+			91, 143, 13, 89, 47, 0, 12, 69, 76, 16, 200, 21, 64, 89, 35, 91, 138, 0, 12, 69, 72, 20, 9, 21, 32, 34, 138, 48, 142, 0,
+			15, 69, 36, 228, 197, 73, 64, 122, 50, 89, 6, 128, 47, 0, 36, 14, 69, 36, 228, 197, 73, 64, 122, 50, 89, 128, 47, 0, 10, 10,
+			67, 16, 242, 78, 72, 134, 122, 50, 0, 12, 69, 12, 245, 71, 5, 32, 49, 134, 81, 114, 0, 12, 69, 12, 128, 76, 21, 64, 91, 35,
+			55, 138, 0, 12, 69, 12, 16, 200, 21, 64, 49, 35, 91, 138, 0, 0, 15, 70, 56, 21, 1, 48, 145, 64, 50, 35, 47, 119, 55, 37,
+			0, 15, 70, 92, 20, 212, 4, 113, 64, 58, 138, 89, 47, 113, 75, 0, 15, 70, 88, 84, 212, 36, 113, 64, 84, 121, 89, 47, 113, 75,
+			0, 14, 70, 80, 80, 82, 36, 225, 192, 47, 140, 44, 122, 68, 0, 15, 70, 76, 48, 82, 36, 225, 192, 89, 49, 140, 34, 122, 68, 0,
+			15, 70, 64, 244, 212, 4, 113, 64, 48, 136, 89, 47, 113, 75, 0, 15, 70, 52, 20, 211, 4, 113, 64, 65, 119, 89, 126, 90, 0, 103,
+			14, 70, 52, 20, 211, 4, 113, 64, 65, 35, 89, 126, 90, 0, 0, 18, 70, 8, 20, 130, 4, 67, 211, 71, 127, 6, 71, 138, 72, 136,
+			89, 0, 103, 17, 70, 8, 20, 130, 4, 67, 211, 71, 127, 6, 71, 138, 72, 124, 89, 0, 0, 14, 68, 80, 129, 83, 20, 86, 129, 88,
+			0, 72, 34, 12, 9, 0, 22, 73, 60, 211, 137, 76, 50, 69, 56, 49, 64, 124, 65, 50, 6, 122, 89, 122, 13, 50, 89, 0, 14, 70,
+			52, 84, 137, 56, 117, 69, 65, 13, 34, 35, 68, 0, 12, 69, 12, 244, 9, 21, 32, 49, 124, 48, 142, 0, 16, 70, 8, 18, 197, 48,
+			149, 5, 71, 138, 49, 13, 55, 137, 47, 0, 15, 70, 4, 224, 76, 60, 117, 69, 35, 50, 13, 55, 124, 81, 0, 0, 16, 70, 72, 243,
+			65, 56, 49, 64, 34, 136, 65, 6, 35, 50, 89, 0, 15, 70, 64, 20, 212, 36, 225, 192, 48, 138, 89, 47, 122, 68, 0, 15, 70, 61,
+			97, 82, 4, 113, 64, 136, 84, 13, 44, 138, 75, 0, 9, 198, 61, 85, 3, 60, 209, 64, 65, 14, 70, 56, 245, 8, 36, 225, 192, 50,
+			125, 87, 122, 68, 0, 14, 70, 56, 80, 203, 80, 145, 64, 50, 121, 49, 47, 137, 0, 14, 70, 12, 243, 12, 20, 113, 64, 49, 124, 55,
+			113, 75, 0, 15, 70, 5, 97, 82, 4, 113, 64, 35, 84, 14, 34, 113, 75, 0, 0, 0, 28, 68, 52, 145, 200, 80, 4, 65, 137, 47,
+			107, 6, 35, 84, 47, 116, 0, 32, 14, 82, 104, 97, 118, 101, 32, 116, 111, 32, 21, 68, 52, 145, 200, 80, 65, 137, 47, 107, 119, 84,
+			0, 35, 77, 81, 104, 97, 118, 101, 32, 14, 68, 52, 145, 200, 80, 4, 65, 137, 47, 0, 32, 12, 9, 18, 72, 16, 83, 143, 84, 83,
+			69, 57, 64, 72, 138, 50, 6, 134, 65, 151, 0, 9, 67, 5, 85, 15, 130, 47, 136, 0, 0, 8, 197, 84, 229, 201, 76, 80, 66, 13,
+			69, 36, 229, 1, 44, 80, 122, 50, 108, 138, 49, 0, 15, 69, 21, 84, 143, 64, 16, 57, 143, 34, 6, 136, 48, 13, 0, 0, 14, 70,
+			12, 243, 15, 56, 83, 0, 49, 148, 50, 118, 0, 105, 13, 70, 12, 243, 15, 56, 83, 0, 49, 128, 50, 118, 0, 0, 9, 67, 4, 214,
+			64, 138, 65, 37, 0, 18, 71, 9, 34, 71, 4, 66, 69, 72, 71, 34, 122, 81, 119, 72, 6, 142, 0, 0, 0, 12, 69, 76, 129, 73,
+			48, 16, 91, 129, 55, 13, 0, 14, 69, 48, 245, 73, 76, 80, 55, 134, 58, 6, 129, 88, 0, 14, 69, 64, 19, 129, 52, 16, 48, 35,
+			50, 13, 65, 126, 0, 12, 69, 80, 245, 80, 20, 80, 47, 134, 48, 138, 0, 12, 69, 53, 148, 148, 48, 80, 65, 128, 47, 118, 0, 0,
+			14, 70, 48, 147, 132, 76, 22, 64, 55, 122, 50, 88, 37, 0, 15, 70, 8, 19, 15, 56, 86, 64, 71, 13, 55, 136, 50, 37, 0, 0,
+			16, 70, 88, 244, 148, 36, 49, 83, 84, 132, 47, 122, 89, 129, 88, 0, 16, 70, 72, 21, 133, 56, 245, 83, 34, 35, 84, 13, 50, 13,
+			89, 0, 15, 70, 21, 97, 78, 36, 225, 211, 129, 84, 50, 122, 68, 88, 0, 11, 199, 5, 69, 18, 36, 37, 84, 20, 66, 36, 18, 71,
+			5, 69, 18, 36, 37, 84, 20, 35, 47, 34, 122, 71, 57, 134, 47, 0, 0, 19, 72, 4, 197, 18, 36, 224, 200, 4, 208, 130, 55, 47,
+			34, 122, 68, 13, 65, 0, 19, 72, 36, 227, 143, 88, 21, 9, 88, 80, 122, 50, 13, 84, 138, 47, 122, 84, 0, 11, 200, 36, 225, 9,
+			12, 21, 9, 88, 80, 66, 19, 72, 16, 80, 207, 72, 21, 9, 88, 80, 72, 121, 49, 34, 13, 47, 122, 84, 0, 0, 6, 18, 66, 108,
+			0, 114, 0, 7, 6, 18, 67, 105, 0, 121, 0, 7, 6, 18, 68, 97, 0, 105, 0, 111, 0, 117, 0, 7, 6, 18, 70, 99, 0, 103,
+			0, 107, 0, 7, 6, 18, 71, 115, 0, 122, 0, 7, 6, 18, 75, 103, 114, 97, 112, 0, 115, 99, 111, 112, 0, 108, 111, 103, 0, 109,
+			101, 116, 0, 7, 6, 20, 0, 0, 0, 251, 0, 0, 102, 0, 102, 0, 1, 251, 0, 0, 102, 0, 105, 0, 2, 251, 0, 0, 102, 0,
+			108, 0, 0, 0, 0, 0, 6, 97, 98, 0, 4, 2, 111, 108, 105, 116, 3, 4, 35, 71, 0, 8, 2, 111, 114, 105, 0, 115, 101, 110,
+			2, 116, 3, 4, 35, 71, 89, 13, 50, 0, 101, 114, 8, 2, 21, 3, 4, 35, 71, 114, 0, 2, 117, 108, 97, 114, 3, 6, 35, 71,
+			0, 4, 8, 110, 101, 2, 108, 3, 6, 138, 71, 0, 8, 110, 117, 2, 108, 101, 0, 8, 115, 105, 100, 2, 108, 101, 0, 108, 105, 110,
+			103, 3, 6, 138, 71, 55, 122, 68, 0, 108, 101, 1, 116, 99, 21, 2, 32, 3, 8, 13, 71, 118, 0, 97, 100, 1, 21, 2, 32, 3,
+			8, 119, 71, 35, 72, 0, 1, 17, 67, 2, 105, 108, 105, 116, 12, 3, 13, 71, 0, 105, 108, 105, 116, 121, 1, 10, 2, 14, 128, 139,
+			135, 3, 13, 71, 6, 122, 55, 113, 47, 2, 37, 0, 105, 108, 105, 116, 105, 101, 115, 1, 10, 2, 14, 128, 139, 137, 3, 13, 71, 6,
+			122, 55, 113, 47, 2, 37, 88, 0, 4, 108, 121, 1, 10, 2, 32, 14, 128, 171, 132, 3, 13, 71, 55, 2, 122, 0, 108, 121, 1, 99,
+			10, 2, 32, 14, 128, 168, 132, 0, 4, 108, 101, 1, 10, 2, 32, 14, 128, 139, 132, 3, 13, 71, 118, 0, 108, 101, 1, 99, 10, 2,
+			32, 0, 4, 1, 98, 2, 121, 108, 3, 35, 71, 0, 2, 97, 99, 17, 65, 0, 2, 97, 116, 116, 0, 2, 106, 101, 99, 116, 0, 2,
+			108, 97, 116, 105, 118, 0, 2, 110, 101, 103, 0, 2, 114, 111, 103, 0, 2, 114, 117, 99, 0, 2, 115, 99, 101, 0, 2, 115, 101, 105,
+			0, 2, 115, 111, 108, 117, 0, 2, 115, 116, 105, 0, 8, 2, 100, 0, 8, 2, 105, 0, 8, 2, 114, 97, 99, 0, 98, 8, 0, 98,
+			111, 8, 3, 35, 71, 13, 0, 101, 114, 1, 17, 67, 2, 21, 3, 35, 71, 114, 0, 4, 8, 2, 21, 3, 119, 71, 0, 8, 2, 100,
+			117, 99, 0, 8, 2, 105, 100, 101, 0, 8, 2, 114, 97, 0, 98, 8, 2, 114, 101, 118, 0, 111, 118, 101, 8, 2, 21, 14, 128, 132,
+			133, 3, 119, 71, 4, 125, 84, 0, 101, 114, 8, 2, 114, 97, 110, 3, 119, 71, 121, 0, 4, 1, 17, 67, 29, 2, 108, 101, 3, 138,
+			71, 0, 1, 98, 2, 121, 0, 1, 108, 2, 111, 117, 114, 0, 1, 116, 115, 2, 105, 108, 0, 8, 2, 114, 97, 109, 0, 8, 108, 2,
+			105, 0, 108, 121, 3, 138, 71, 55, 122, 0, 101, 114, 8, 115, 2, 21, 3, 138, 71, 114, 0, 4, 101, 108, 8, 3, 138, 71, 118, 0,
+			108, 101, 0, 108, 101, 1, 10, 2, 32, 28, 17, 0, 7, 6, 97, 99, 0, 2, 99, 101, 110, 116, 117, 3, 2, 35, 49, 0, 2, 113,
+			117, 105, 101, 3, 4, 35, 0, 4, 2, 97, 32, 3, 6, 35, 49, 0, 2, 116, 111, 114, 121, 0, 2, 116, 117, 114, 101, 0, 2, 117,
+			108, 97, 114, 0, 104, 105, 97, 3, 6, 138, 91, 13, 0, 101, 97, 110, 2, 32, 3, 6, 138, 91, 13, 50, 0, 105, 111, 117, 115, 3,
+			6, 138, 91, 13, 89, 0, 1, 114, 99, 2, 121, 32, 3, 8, 13, 89, 0, 4, 1, 10, 2, 108, 101, 32, 3, 13, 49, 0, 104, 1,
+			114, 116, 2, 101, 0, 114, 101, 1, 115, 115, 97, 109, 3, 13, 49, 114, 0, 4, 1, 10, 2, 121, 32, 3, 13, 89, 0, 1, 102, 2,
+			105, 108, 105, 116, 0, 1, 108, 112, 2, 101, 98, 0, 8, 108, 112, 2, 101, 110, 116, 0, 104, 105, 1, 109, 2, 110, 17, 65, 13, 3,
+			13, 91, 129, 0, 4, 2, 99, 101, 110, 116, 3, 35, 49, 0, 2, 99, 105, 100, 0, 2, 111, 110, 0, 2, 114, 111, 0, 2, 117, 109,
+			0, 2, 117, 112, 0, 8, 2, 111, 0, 8, 2, 114, 105, 0, 8, 2, 116, 0, 99, 2, 111, 108, 0, 104, 2, 114, 111, 109, 0, 107,
+			8, 0, 97, 2, 100, 101, 109, 3, 35, 49, 13, 0, 114, 111, 1, 109, 2, 21, 3, 35, 49, 34, 13, 0, 110, 101, 3, 35, 49, 50,
+			122, 0, 99, 117, 2, 114, 97, 3, 35, 49, 57, 117, 0, 109, 101, 3, 35, 49, 65, 122, 0, 116, 117, 2, 17, 65, 3, 35, 49, 76,
+			134, 0, 4, 2, 101, 114, 98, 3, 35, 89, 0, 2, 105, 100, 32, 0, 4, 101, 8, 2, 116, 3, 35, 89, 122, 0, 101, 8, 109, 2,
+			100, 0, 104, 105, 110, 97, 1, 109, 2, 116, 3, 35, 91, 113, 50, 138, 0, 4, 1, 108, 112, 2, 97, 116, 3, 119, 49, 0, 8, 2,
+			21, 0, 99, 8, 2, 21, 0, 107, 8, 2, 110, 0, 97, 2, 100, 101, 109, 121, 3, 119, 49, 35, 0, 99, 117, 115, 2, 17, 65, 3,
+			119, 49, 57, 134, 88, 0, 113, 117, 8, 3, 119, 49, 58, 0, 99, 8, 2, 101, 3, 119, 49, 89, 0, 4, 99, 111, 117, 2, 116, 3,
+			119, 49, 134, 0, 111, 117, 2, 115, 116, 0, 104, 8, 3, 119, 76, 0, 4, 8, 2, 101, 3, 119, 89, 0, 8, 2, 101, 114, 98, 105,
+			0, 8, 2, 105, 0, 101, 8, 2, 116, 105, 3, 119, 89, 129, 0, 4, 1, 102, 114, 117, 2, 101, 32, 3, 122, 89, 0, 1, 108, 97,
+			2, 101, 32, 0, 1, 108, 111, 115, 2, 101, 32, 0, 1, 109, 105, 2, 101, 32, 0, 1, 110, 21, 2, 101, 32, 0, 1, 114, 114, 2,
+			101, 32, 0, 104, 1, 121, 2, 116, 3, 124, 0, 4, 1, 118, 2, 97, 3, 138, 49, 0, 2, 111, 114, 110, 0, 8, 98, 2, 111, 0,
+			104, 101, 1, 100, 2, 32, 0, 104, 101, 1, 104, 2, 32, 0, 104, 101, 1, 107, 2, 32, 0, 104, 101, 1, 114, 2, 32, 0, 104, 101,
+			1, 116, 114, 2, 32, 0, 104, 101, 1, 121, 2, 32, 0, 104, 101, 8, 2, 12, 0, 114, 101, 8, 3, 138, 49, 13, 0, 4, 104, 101,
+			115, 1, 100, 2, 32, 3, 138, 49, 89, 0, 104, 101, 115, 1, 104, 2, 32, 0, 104, 101, 115, 1, 114, 2, 32, 0, 104, 101, 115, 1,
+			116, 114, 2, 32, 0, 4, 1, 112, 115, 2, 101, 13, 3, 138, 89, 0, 8, 114, 2, 101, 0, 8, 114, 2, 105, 115, 0, 101, 2, 32,
+			0, 7, 6, 97, 100, 0, 1, 115, 117, 114, 99, 3, 6, 138, 72, 0, 1, 108, 97, 109, 2, 121, 3, 13, 72, 0, 105, 111, 8, 114,
+			2, 21, 14, 128, 132, 133, 3, 34, 4, 138, 72, 122, 2, 136, 0, 2, 106, 117, 116, 97, 110, 3, 35, 0, 4, 1, 108, 103, 2, 105,
+			3, 35, 72, 0, 1, 114, 2, 105, 99, 0, 1, 120, 101, 104, 2, 101, 0, 2, 97, 103, 0, 2, 97, 109, 0, 2, 101, 110, 0, 2,
+			101, 113, 0, 2, 106, 117, 110, 99, 116, 32, 0, 2, 109, 97, 110, 32, 0, 2, 109, 105, 110, 32, 0, 2, 109, 105, 114, 97, 0, 2,
+			111, 108, 0, 2, 111, 110, 0, 2, 117, 108, 97, 0, 2, 118, 101, 110, 116, 0, 2, 118, 101, 114, 0, 2, 118, 101, 114, 116, 32, 0,
+			2, 118, 111, 0, 8, 2, 105, 0, 8, 2, 114, 105, 21, 0, 8, 2, 117, 109, 0, 100, 2, 101, 114, 0, 100, 2, 105, 116, 105, 118,
+			0, 100, 8, 2, 108, 0, 101, 1, 108, 2, 115, 104, 3, 35, 72, 6, 121, 0, 111, 2, 108, 101, 115, 3, 35, 72, 13, 0, 118, 101,
+			114, 2, 115, 3, 35, 72, 84, 6, 128, 0, 101, 113, 117, 97, 3, 35, 72, 122, 49, 58, 13, 0, 106, 101, 99, 3, 35, 75, 121, 49,
+			0, 4, 2, 118, 101, 110, 116, 117, 3, 119, 72, 0, 2, 118, 101, 114, 115, 97, 0, 2, 118, 101, 114, 116, 0, 8, 2, 21, 0, 8,
+			114, 116, 2, 105, 116, 0, 100, 8, 2, 21, 0, 97, 1, 99, 2, 118, 101, 114, 3, 119, 72, 35, 0, 106, 8, 3, 119, 75, 0, 1,
+			117, 113, 3, 124, 72, 0, 4, 1, 98, 2, 111, 115, 32, 3, 138, 72, 0, 1, 99, 2, 101, 110, 99, 0, 1, 108, 2, 101, 110, 0,
+			1, 108, 2, 121, 0, 1, 110, 114, 111, 116, 0, 1, 114, 99, 0, 1, 115, 2, 105, 115, 0, 2, 105, 17, 65, 0, 2, 108, 101, 0,
+			8, 114, 2, 17, 65, 0, 105, 1, 114, 2, 111, 18, 75, 12, 3, 138, 72, 122, 0, 7, 6, 97, 102, 0, 1, 21, 2, 116, 101, 114,
+			3, 6, 120, 83, 0, 4, 2, 114, 105, 3, 35, 83, 0, 8, 2, 103, 0, 102, 2, 97, 98, 0, 102, 2, 101, 114, 0, 102, 2, 108,
+			117, 0, 114, 111, 8, 3, 35, 83, 34, 136, 0, 4, 2, 101, 97, 3, 119, 83, 0, 8, 2, 21, 0, 102, 8, 2, 21, 0, 111, 114,
+			101, 3, 119, 83, 133, 0, 102, 105, 97, 8, 3, 119, 83, 144, 0, 4, 2, 116, 12, 3, 120, 83, 0, 102, 1, 116, 115, 0, 102, 1,
+			119, 3, 124, 83, 0, 7, 6, 97, 103, 0, 8, 116, 110, 97, 3, 6, 35, 81, 0, 117, 97, 1, 21, 2, 32, 3, 6, 35, 81, 57,
+			134, 13, 0, 105, 111, 2, 32, 3, 6, 126, 75, 122, 136, 0, 2, 97, 32, 3, 6, 126, 81, 0, 105, 2, 32, 3, 6, 126, 81, 122,
+			0, 4, 1, 103, 110, 2, 101, 32, 3, 6, 138, 75, 0, 1, 114, 110, 101, 2, 101, 32, 0, 101, 1, 103, 2, 109, 101, 110, 116, 0,
+			104, 2, 32, 3, 13, 0, 1, 109, 2, 101, 110, 116, 97, 3, 13, 75, 0, 1, 10, 2, 111, 110, 32, 3, 13, 81, 0, 8, 114, 116,
+			3, 35, 75, 0, 4, 103, 8, 2, 114, 97, 118, 3, 35, 81, 0, 103, 8, 2, 114, 101, 103, 0, 4, 111, 110, 1, 114, 100, 3, 35,
+			81, 13, 50, 0, 111, 110, 1, 119, 2, 12, 0, 4, 101, 1, 21, 2, 32, 3, 113, 75, 0, 101, 1, 21, 2, 109, 101, 110, 116, 0,
+			101, 1, 112, 112, 2, 32, 0, 101, 114, 1, 21, 2, 32, 3, 113, 75, 114, 0, 2, 101, 110, 100, 3, 119, 75, 0, 4, 2, 114, 101,
+			101, 3, 119, 81, 0, 8, 2, 108, 21, 0, 8, 2, 111, 32, 0, 8, 2, 114, 111, 110, 0, 103, 2, 114, 101, 115, 0, 103, 2, 114,
+			105, 101, 118, 0, 103, 8, 2, 21, 0, 101, 110, 1, 104, 10, 2, 32, 3, 126, 81, 13, 50, 0, 4, 1, 116, 110, 111, 109, 2, 101,
+			32, 3, 126, 90, 0, 101, 1, 108, 102, 2, 32, 0, 4, 1, 110, 101, 101, 116, 2, 101, 3, 138, 75, 0, 1, 114, 101, 100, 2, 101,
+			32, 0, 1, 114, 116, 117, 111, 2, 101, 32, 0, 1, 116, 115, 2, 101, 0, 8, 2, 101, 0, 8, 2, 105, 115, 0, 101, 1, 99, 2,
+			32, 0, 101, 1, 99, 98, 0, 101, 1, 99, 100, 0, 101, 1, 112, 17, 67, 2, 32, 0, 101, 8, 2, 105, 0, 101, 8, 2, 108, 0,
+			105, 1, 116, 2, 111, 3, 138, 75, 57, 0, 4, 1, 108, 102, 2, 114, 97, 110, 3, 138, 81, 0, 1, 114, 102, 2, 114, 0, 1, 118,
+			2, 114, 97, 0, 2, 111, 32, 0, 117, 101, 0, 7, 6, 97, 105, 0, 4, 1, 21, 2, 17, 67, 97, 32, 3, 6, 138, 0, 1, 116,
+			110, 101, 2, 108, 0, 1, 116, 114, 117, 99, 2, 108, 0, 103, 2, 110, 0, 110, 1, 100, 2, 32, 3, 6, 138, 50, 0, 110, 101, 100,
+			1, 100, 2, 32, 3, 6, 138, 50, 72, 0, 115, 101, 2, 32, 3, 6, 138, 88, 0, 4, 99, 2, 32, 3, 6, 138, 122, 49, 0, 99,
+			2, 97, 108, 0, 114, 101, 3, 6, 140, 0, 4, 1, 108, 108, 105, 118, 3, 13, 0, 1, 116, 102, 0, 1, 116, 105, 114, 98, 0, 1,
+			116, 114, 101, 99, 0, 1, 116, 114, 117, 99, 0, 4, 115, 8, 2, 108, 105, 3, 35, 91, 0, 115, 8, 99, 2, 108, 0, 1, 115, 2,
+			100, 3, 121, 0, 4, 1, 103, 114, 97, 98, 3, 122, 0, 1, 108, 112, 97, 0, 1, 108, 114, 101, 98, 0, 1, 116, 110, 117, 111, 0,
+			1, 116, 112, 0, 4, 2, 32, 3, 137, 0, 2, 105, 0, 1, 110, 2, 118, 3, 137, 6, 129, 0, 4, 3, 138, 0, 8, 0, 115, 1,
+			108, 21, 2, 32, 0, 101, 3, 138, 13, 0, 4, 114, 3, 140, 0, 114, 8, 0, 114, 101, 2, 32, 0, 7, 6, 97, 108, 0, 1, 109,
+			2, 110, 111, 3, 2, 35, 55, 0, 2, 109, 105, 103, 3, 2, 124, 55, 0, 8, 2, 114, 3, 2, 130, 55, 0, 2, 105, 116, 121, 3,
+			6, 35, 55, 0, 100, 101, 2, 104, 121, 3, 6, 35, 55, 72, 122, 0, 103, 105, 97, 1, 21, 2, 32, 3, 6, 35, 55, 75, 13, 0,
+			4, 1, 103, 2, 105, 32, 3, 6, 126, 55, 0, 1, 122, 110, 111, 103, 0, 97, 110, 100, 1, 21, 2, 32, 3, 8, 13, 55, 119, 50,
+			72, 0, 4, 1, 10, 2, 105, 17, 66, 97, 116, 105, 3, 13, 55, 0, 1, 10, 2, 105, 17, 66, 101, 0, 1, 10, 2, 105, 115, 17,
+			67, 105, 99, 0, 1, 10, 2, 111, 117, 115, 32, 0, 1, 115, 2, 117, 116, 0, 1, 117, 113, 101, 0, 1, 118, 17, 65, 2, 101, 110,
+			0, 97, 121, 1, 109, 3, 13, 55, 6, 138, 0, 105, 1, 10, 2, 115, 17, 67, 32, 3, 13, 55, 122, 0, 111, 1, 10, 2, 32, 3,
+			13, 55, 136, 0, 101, 105, 1, 107, 2, 100, 3, 13, 55, 137, 0, 4, 5, 3, 1, 99, 2, 102, 3, 35, 0, 5, 3, 1, 104, 2,
+			102, 0, 5, 3, 1, 104, 2, 118, 0, 4, 1, 29, 2, 101, 100, 3, 35, 55, 0, 1, 112, 2, 101, 116, 0, 1, 115, 2, 117, 116,
+			97, 0, 1, 116, 101, 114, 2, 105, 97, 0, 1, 118, 2, 105, 97, 0, 2, 116, 111, 0, 2, 117, 109, 32, 0, 8, 2, 97, 115, 116,
+			0, 8, 2, 98, 0, 8, 2, 99, 0, 8, 2, 103, 0, 8, 2, 105, 0, 8, 2, 107, 0, 8, 2, 112, 0, 8, 2, 115, 0, 8,
+			2, 118, 0, 8, 2, 121, 0, 8, 99, 2, 101, 0, 108, 1, 102, 2, 97, 0, 108, 1, 102, 2, 105, 98, 0, 108, 1, 116, 2, 17,
+			65, 0, 108, 2, 101, 108, 0, 108, 2, 101, 114, 0, 108, 2, 111, 116, 114, 0, 108, 8, 2, 97, 0, 108, 8, 2, 101, 103, 0, 108,
+			8, 2, 105, 0, 108, 8, 2, 111, 0, 108, 8, 17, 67, 2, 111, 119, 0, 108, 111, 8, 2, 99, 97, 3, 35, 55, 13, 0, 97, 98,
+			97, 8, 3, 35, 55, 13, 71, 6, 35, 0, 122, 3, 35, 55, 47, 89, 0, 116, 105, 8, 3, 35, 55, 47, 122, 0, 112, 2, 104, 111,
+			3, 35, 55, 48, 0, 99, 111, 2, 104, 3, 35, 55, 49, 13, 0, 98, 101, 114, 8, 2, 116, 17, 65, 3, 35, 55, 71, 6, 128, 0,
+			4, 102, 97, 8, 3, 35, 55, 83, 13, 0, 112, 104, 97, 0, 101, 112, 104, 3, 35, 55, 121, 83, 0, 4, 108, 101, 121, 3, 35, 55,
+			122, 0, 108, 121, 1, 116, 0, 101, 120, 97, 110, 8, 3, 35, 55, 122, 81, 88, 6, 120, 50, 0, 108, 121, 8, 3, 35, 55, 137, 0,
+			4, 108, 121, 1, 21, 2, 32, 14, 128, 128, 130, 3, 55, 2, 37, 0, 108, 121, 1, 99, 21, 21, 2, 32, 14, 128, 128, 132, 0, 108,
+			121, 1, 99, 97, 2, 32, 0, 4, 1, 10, 2, 32, 3, 118, 0, 1, 10, 2, 100, 32, 0, 1, 10, 2, 116, 121, 32, 0, 114, 121,
+			1, 10, 2, 32, 3, 118, 34, 2, 122, 0, 4, 1, 104, 2, 117, 99, 105, 110, 3, 119, 55, 0, 2, 111, 110, 103, 0, 5, 8, 1,
+			10, 2, 32, 0, 8, 2, 21, 0, 8, 2, 105, 103, 0, 8, 99, 2, 97, 109, 105, 116, 0, 108, 2, 101, 103, 114, 0, 108, 8, 2,
+			21, 0, 108, 8, 2, 105, 97, 110, 0, 108, 8, 2, 105, 116, 101, 114, 0, 108, 8, 2, 111, 116, 0, 108, 8, 2, 111, 119, 0, 108,
+			101, 2, 103, 101, 3, 119, 55, 121, 0, 105, 8, 2, 17, 66, 101, 3, 119, 55, 137, 0, 4, 1, 102, 2, 107, 3, 124, 55, 0, 1,
 			102, 2, 115, 0, 1, 115, 2, 102, 0, 1, 115, 2, 116, 0, 1, 117, 113, 2, 21, 0, 1, 119, 2, 17, 67, 0, 2, 116, 17, 65,
-			114, 0, 2, 116, 32, 0, 8, 2, 109, 0, 8, 17, 67, 2, 116, 17, 65, 0, 8, 99, 2, 100, 0, 8, 104, 2, 116, 0, 108, 1,
-			119, 2, 17, 65, 12, 0, 108, 1, 119, 2, 97, 0, 115, 111, 3, 126, 55, 89, 139, 0, 4, 1, 104, 99, 2, 107, 3, 133, 0, 1,
-			116, 2, 107, 0, 1, 119, 2, 107, 0, 4, 1, 98, 2, 100, 12, 3, 133, 55, 0, 1, 98, 2, 107, 0, 1, 116, 115, 2, 119, 0,
-			1, 116, 115, 110, 105, 2, 32, 0, 8, 2, 98, 97, 110, 0, 8, 2, 100, 0, 8, 2, 116, 0, 8, 98, 2, 115, 97, 0, 108, 1,
-			98, 2, 25, 0, 108, 1, 98, 10, 2, 101, 114, 32, 0, 108, 1, 99, 2, 25, 0, 108, 1, 99, 2, 105, 110, 0, 108, 1, 102, 0,
-			108, 1, 104, 2, 17, 67, 0, 108, 1, 109, 115, 0, 108, 1, 114, 104, 116, 0, 108, 1, 116, 0, 108, 1, 116, 2, 101, 0, 108, 1,
-			116, 115, 0, 108, 1, 119, 0, 108, 2, 32, 0, 108, 8, 2, 17, 67, 21, 14, 128, 132, 131, 0, 108, 101, 1, 119, 0, 108, 101, 114,
-			2, 32, 3, 133, 55, 114, 0, 108, 101, 114, 115, 2, 32, 3, 133, 55, 114, 88, 0, 2, 116, 101, 114, 110, 97, 116, 111, 3, 134, 55,
-			0, 119, 8, 3, 134, 55, 58, 0, 4, 1, 29, 2, 105, 110, 3, 141, 55, 0, 2, 105, 97, 0, 2, 105, 101, 110, 0, 8, 99, 115,
-			2, 97, 0, 8, 104, 2, 111, 0, 101, 2, 32, 0, 101, 2, 104, 0, 7, 6, 97, 109, 0, 8, 2, 32, 3, 2, 35, 65, 0, 4,
-			1, 32, 15, 2, 32, 3, 4, 141, 6, 122, 65, 0, 1, 32, 32, 15, 2, 32, 0, 112, 116, 111, 110, 3, 6, 35, 65, 48, 47, 13,
-			50, 0, 4, 2, 105, 32, 3, 6, 121, 65, 0, 8, 108, 115, 105, 0, 101, 1, 115, 17, 65, 2, 32, 3, 6, 121, 65, 122, 0, 1,
-			10, 2, 111, 117, 115, 32, 3, 8, 119, 65, 0, 105, 110, 101, 1, 10, 2, 32, 3, 8, 119, 65, 132, 50, 0, 4, 1, 10, 2, 101,
-			110, 116, 3, 13, 65, 0, 1, 10, 2, 101, 110, 116, 0, 1, 10, 2, 111, 32, 0, 1, 100, 10, 2, 32, 0, 1, 100, 110, 117, 2,
-			101, 110, 0, 1, 114, 97, 99, 2, 101, 108, 0, 1, 115, 10, 2, 32, 0, 5, 35, 1, 104, 10, 2, 32, 24, 0, 101, 1, 10, 2,
-			110, 116, 97, 3, 13, 65, 6, 122, 0, 111, 110, 1, 10, 2, 32, 3, 13, 65, 13, 50, 0, 4, 1, 99, 2, 101, 108, 3, 35, 65,
-			0, 1, 99, 2, 101, 114, 111, 0, 1, 100, 114, 101, 21, 2, 32, 0, 1, 108, 2, 112, 108, 0, 97, 116, 101, 117, 114, 3, 35, 65,
-			13, 47, 114, 0, 97, 116, 101, 117, 114, 5, 3, 3, 35, 65, 13, 76, 114, 0, 97, 122, 2, 111, 3, 35, 65, 13, 88, 0, 98, 105,
-			118, 3, 35, 65, 71, 6, 124, 84, 0, 98, 105, 2, 100, 3, 35, 65, 71, 124, 0, 112, 104, 105, 98, 3, 35, 65, 83, 6, 124, 71,
-			0, 105, 108, 1, 102, 3, 35, 65, 124, 55, 0, 4, 2, 117, 115, 101, 3, 119, 65, 0, 8, 2, 97, 108, 0, 8, 2, 101, 110, 0,
-			8, 2, 105, 100, 0, 8, 2, 105, 110, 111, 0, 8, 2, 105, 115, 115, 0, 8, 2, 111, 114, 17, 67, 0, 8, 108, 2, 101, 110, 116,
-			0, 8, 115, 2, 97, 114, 105, 0, 109, 2, 101, 110, 100, 0, 101, 8, 2, 110, 116, 3, 119, 65, 122, 0, 101, 114, 2, 105, 99, 3,
-			119, 65, 122, 34, 0, 4, 101, 2, 110, 97, 98, 3, 119, 65, 132, 0, 101, 8, 2, 108, 0, 105, 2, 103, 0, 111, 101, 98, 3, 119,
-			65, 132, 71, 0, 97, 122, 3, 119, 65, 141, 88, 0, 4, 1, 17, 67, 2, 100, 3, 120, 65, 0, 1, 17, 67, 2, 112, 108, 0, 1,
-			110, 21, 2, 32, 3, 121, 65, 0, 4, 1, 102, 2, 111, 117, 115, 3, 141, 65, 0, 1, 104, 99, 2, 98, 0, 8, 100, 2, 105, 0,
-			101, 1, 108, 102, 0, 101, 8, 110, 0, 101, 8, 114, 102, 0, 7, 6, 97, 110, 0, 8, 114, 116, 2, 115, 3, 2, 35, 50, 0, 115,
-			102, 101, 114, 1, 114, 116, 3, 2, 35, 50, 89, 83, 131, 0, 116, 105, 8, 2, 21, 14, 128, 132, 132, 3, 4, 35, 50, 47, 124, 0,
-			100, 117, 1, 21, 2, 32, 3, 4, 35, 50, 72, 6, 137, 0, 4, 1, 21, 2, 17, 67, 97, 32, 3, 6, 35, 50, 0, 1, 103, 97,
-			112, 111, 114, 112, 2, 100, 0, 1, 110, 105, 102, 2, 99, 0, 2, 103, 117, 108, 0, 2, 116, 104, 114, 111, 112, 121, 0, 2, 122, 97,
-			0, 100, 111, 2, 32, 3, 6, 35, 50, 72, 139, 0, 97, 1, 21, 2, 32, 3, 6, 121, 50, 13, 0, 116, 101, 1, 10, 2, 32, 3,
-			6, 121, 50, 47, 141, 0, 105, 1, 10, 2, 32, 3, 6, 121, 50, 124, 0, 2, 105, 97, 3, 6, 141, 50, 0, 105, 97, 2, 99, 32,
-			3, 6, 141, 50, 124, 35, 0, 101, 97, 110, 2, 32, 3, 6, 141, 50, 144, 50, 0, 101, 111, 117, 115, 1, 21, 3, 6, 141, 50, 144,
-			89, 0, 1, 99, 115, 17, 65, 10, 2, 32, 3, 8, 13, 50, 0, 97, 108, 1, 10, 2, 32, 3, 8, 13, 50, 118, 0, 105, 1, 116,
-			115, 21, 2, 32, 14, 128, 128, 129, 3, 8, 37, 0, 4, 1, 10, 2, 32, 3, 13, 50, 0, 1, 10, 2, 32, 28, 18, 12, 0, 1,
-			10, 2, 99, 101, 32, 0, 1, 10, 2, 99, 121, 0, 1, 10, 2, 101, 115, 101, 0, 1, 10, 2, 105, 101, 32, 0, 1, 10, 2, 105,
-			101, 115, 32, 0, 1, 10, 2, 116, 32, 0, 1, 10, 2, 116, 121, 32, 0, 1, 10, 2, 121, 32, 0, 1, 98, 115, 117, 2, 100, 0,
-			1, 104, 112, 2, 97, 103, 101, 0, 1, 108, 10, 2, 100, 0, 1, 108, 17, 67, 10, 2, 32, 0, 1, 108, 101, 109, 2, 99, 104, 111,
-			108, 0, 1, 109, 10, 2, 32, 0, 1, 109, 114, 101, 112, 0, 1, 109, 117, 104, 2, 32, 0, 1, 114, 21, 21, 2, 32, 0, 1, 118,
-			108, 2, 32, 0, 110, 1, 10, 2, 105, 101, 32, 0, 105, 112, 117, 1, 109, 3, 13, 50, 124, 48, 57, 117, 0, 111, 101, 117, 1, 109,
-			2, 118, 3, 13, 50, 137, 0, 4, 1, 10, 2, 32, 28, 17, 12, 3, 35, 50, 0, 1, 10, 2, 99, 101, 32, 28, 17, 0, 1, 10,
-			2, 116, 32, 28, 17, 0, 1, 99, 2, 99, 0, 1, 99, 17, 67, 2, 32, 0, 1, 102, 2, 99, 0, 1, 108, 2, 32, 0, 1, 108,
-			10, 2, 100, 105, 0, 1, 108, 112, 2, 32, 12, 0, 1, 108, 112, 2, 116, 32, 0, 1, 108, 121, 2, 100, 0, 1, 109, 2, 32, 0,
-			1, 110, 2, 99, 0, 1, 112, 2, 32, 0, 1, 112, 2, 99, 0, 1, 112, 2, 101, 108, 0, 1, 112, 115, 2, 105, 97, 0, 1, 114,
-			116, 2, 32, 0, 1, 114, 116, 2, 115, 105, 0, 1, 114, 116, 2, 115, 111, 109, 0, 1, 116, 115, 21, 21, 2, 32, 0, 1, 118, 2,
-			32, 0, 1, 118, 100, 97, 2, 99, 0, 8, 108, 2, 105, 97, 0, 8, 119, 2, 103, 0, 8, 119, 2, 107, 0, 110, 97, 8, 3, 35,
-			50, 13, 0, 97, 101, 115, 116, 104, 8, 2, 101, 115, 105, 97, 3, 35, 50, 13, 89, 87, 0, 97, 101, 115, 116, 104, 101, 8, 2, 116,
-			105, 99, 3, 35, 50, 13, 89, 87, 6, 122, 0, 116, 8, 2, 105, 113, 12, 3, 35, 50, 47, 0, 116, 101, 2, 110, 110, 3, 35, 50,
-			47, 6, 122, 0, 116, 105, 8, 2, 99, 105, 3, 35, 50, 47, 6, 124, 0, 4, 103, 1, 108, 102, 2, 101, 3, 35, 50, 75, 0, 103,
-			2, 101, 108, 0, 103, 105, 110, 103, 1, 108, 102, 3, 35, 50, 75, 124, 68, 0, 115, 105, 115, 1, 114, 116, 3, 35, 50, 88, 6, 124,
-			89, 0, 4, 101, 8, 2, 115, 3, 35, 50, 124, 0, 105, 8, 0, 101, 99, 100, 111, 8, 3, 35, 50, 124, 49, 72, 139, 0, 105, 8,
-			2, 111, 110, 3, 35, 50, 140, 0, 103, 1, 104, 2, 101, 114, 3, 35, 68, 0, 103, 2, 101, 114, 3, 35, 68, 81, 0, 103, 101, 108,
-			1, 109, 3, 35, 68, 81, 118, 0, 4, 1, 105, 21, 2, 32, 14, 128, 128, 129, 3, 50, 0, 1, 117, 21, 2, 32, 14, 128, 128, 129,
-			0, 103, 101, 100, 1, 114, 2, 14, 128, 128, 129, 3, 72, 0, 4, 2, 97, 108, 111, 103, 3, 119, 50, 0, 2, 97, 116, 104, 0, 5,
-			8, 1, 10, 2, 32, 0, 5, 8, 1, 10, 2, 99, 101, 32, 0, 5, 8, 1, 10, 2, 116, 32, 0, 5, 8, 1, 109, 10, 2, 32,
-			0, 8, 2, 97, 101, 109, 0, 8, 2, 101, 109, 0, 8, 2, 111, 105, 0, 8, 99, 2, 97, 100, 105, 0, 8, 102, 2, 97, 116, 0,
-			110, 2, 101, 97, 108, 0, 110, 2, 105, 104, 0, 110, 2, 111, 117, 110, 0, 110, 2, 117, 105, 0, 110, 2, 117, 108, 0, 110, 2, 117,
-			110, 0, 110, 8, 2, 111, 121, 0, 105, 97, 1, 122, 3, 119, 50, 6, 144, 0, 97, 101, 115, 116, 104, 101, 5, 3, 8, 3, 119, 50,
-			122, 89, 87, 13, 0, 111, 110, 121, 8, 2, 109, 3, 119, 50, 126, 50, 13, 0, 111, 109, 8, 3, 119, 50, 126, 65, 0, 101, 8, 2,
-			109, 105, 3, 119, 50, 132, 0, 97, 101, 115, 116, 104, 101, 8, 3, 119, 50, 132, 89, 87, 13, 0, 105, 97, 2, 99, 3, 119, 50, 147,
-			0, 4, 1, 17, 67, 2, 99, 3, 120, 50, 0, 1, 17, 67, 2, 116, 0, 1, 104, 2, 99, 101, 32, 0, 1, 109, 21, 2, 100, 0,
-			8, 108, 115, 2, 100, 0, 115, 119, 2, 101, 114, 3, 120, 50, 89, 0, 5, 3, 1, 10, 2, 116, 32, 28, 17, 3, 121, 50, 0, 121,
-			8, 3, 122, 50, 113, 0, 4, 1, 119, 2, 116, 32, 3, 126, 50, 0, 8, 117, 113, 0, 8, 119, 2, 17, 67, 0, 8, 2, 99, 105,
-			101, 3, 141, 50, 0, 4, 103, 1, 100, 2, 101, 114, 3, 141, 50, 75, 0, 103, 1, 104, 99, 2, 101, 0, 103, 1, 114, 2, 101, 0,
-			103, 2, 101, 108, 32, 0, 103, 101, 1, 104, 99, 2, 21, 0, 103, 101, 108, 8, 2, 25, 3, 141, 50, 75, 118, 0, 4, 103, 105, 110,
-			103, 1, 104, 99, 3, 141, 50, 75, 124, 68, 0, 103, 105, 110, 103, 1, 114, 0, 7, 6, 97, 112, 0, 104, 1, 114, 103, 10, 2, 121,
-			3, 8, 13, 83, 0, 104, 101, 114, 1, 114, 103, 10, 3, 8, 13, 83, 114, 0, 4, 1, 10, 2, 121, 32, 3, 13, 48, 0, 1, 99,
-			2, 97, 99, 0, 101, 1, 114, 116, 2, 122, 3, 13, 48, 132, 0, 104, 8, 114, 101, 115, 3, 13, 83, 0, 4, 2, 97, 116, 104, 3,
-			35, 48, 0, 2, 101, 108, 32, 0, 2, 105, 99, 0, 2, 111, 103, 0, 2, 111, 108, 105, 0, 8, 2, 111, 112, 108, 0, 8, 2, 115,
-			0, 8, 2, 116, 0, 112, 2, 101, 116, 105, 0, 112, 2, 108, 101, 0, 112, 2, 108, 105, 99, 0, 112, 2, 114, 101, 104, 0, 112, 8,
-			2, 17, 67, 0, 4, 101, 114, 8, 2, 116, 3, 35, 48, 13, 0, 112, 97, 8, 2, 114, 0, 114, 101, 115, 3, 35, 48, 34, 141, 0,
-			101, 1, 114, 116, 2, 122, 111, 3, 35, 48, 124, 0, 104, 8, 2, 111, 3, 35, 83, 0, 104, 114, 111, 3, 35, 83, 34, 13, 0, 4,
-			8, 2, 21, 3, 119, 48, 0, 8, 99, 2, 105, 116, 117, 108, 0, 112, 2, 101, 97, 114, 0, 112, 8, 2, 17, 65, 0, 112, 8, 2,
-			18, 66, 0, 112, 114, 101, 99, 8, 2, 18, 67, 3, 119, 48, 34, 132, 91, 0, 112, 97, 8, 2, 114, 101, 110, 3, 119, 48, 35, 0,
-			112, 108, 105, 99, 97, 98, 3, 119, 48, 55, 124, 49, 13, 71, 0, 101, 114, 2, 105, 101, 3, 119, 48, 144, 34, 0, 104, 8, 2, 21,
-			3, 119, 83, 0, 97, 114, 97, 122, 122, 1, 112, 3, 121, 48, 114, 34, 6, 121, 47, 89, 0, 4, 1, 99, 2, 111, 110, 3, 141, 48,
-			0, 1, 109, 2, 108, 101, 0, 1, 112, 2, 101, 114, 0, 1, 116, 115, 2, 108, 0, 2, 105, 97, 0, 2, 105, 115, 0, 2, 114, 111,
-			0, 8, 2, 101, 0, 8, 2, 114, 105, 0, 8, 112, 2, 105, 115, 0, 8, 118, 2, 111, 0, 104, 8, 2, 105, 100, 3, 141, 83, 0,
-			7, 6, 97, 114, 0, 4, 8, 2, 116, 105, 99, 117, 3, 2, 130, 0, 8, 2, 116, 105, 108, 0, 98, 111, 1, 99, 2, 104, 3, 4,
-			130, 71, 139, 0, 99, 104, 8, 2, 21, 14, 128, 132, 132, 3, 4, 130, 76, 0, 5, 3, 1, 21, 2, 105, 111, 32, 3, 6, 35, 34,
-			0, 105, 108, 121, 1, 21, 2, 32, 3, 6, 122, 34, 13, 55, 2, 124, 0, 1, 116, 105, 117, 103, 3, 6, 130, 0, 4, 2, 97, 32,
-			3, 6, 130, 34, 0, 2, 105, 32, 0, 101, 1, 122, 2, 32, 3, 6, 130, 34, 141, 0, 4, 2, 105, 97, 17, 66, 32, 3, 6, 143,
-			0, 2, 105, 97, 32, 0, 2, 105, 117, 12, 3, 6, 143, 34, 0, 105, 108, 121, 5, 3, 1, 21, 2, 32, 3, 6, 143, 34, 13, 55,
-			2, 124, 0, 101, 97, 3, 6, 143, 34, 144, 0, 1, 110, 117, 108, 2, 32, 3, 8, 114, 0, 4, 1, 10, 2, 105, 18, 71, 97, 116,
-			105, 111, 110, 3, 13, 34, 0, 1, 10, 2, 105, 110, 32, 0, 1, 21, 2, 111, 108, 0, 1, 29, 2, 28, 19, 12, 12, 12, 12, 12,
-			0, 1, 99, 2, 101, 101, 114, 0, 1, 103, 111, 108, 2, 105, 0, 1, 104, 2, 97, 115, 115, 0, 1, 109, 2, 105, 0, 1, 109, 2,
-			105, 110, 0, 2, 101, 122, 32, 0, 8, 116, 97, 107, 2, 21, 0, 121, 1, 10, 2, 32, 3, 13, 34, 2, 37, 0, 97, 110, 1, 109,
-			10, 3, 13, 34, 35, 50, 0, 101, 1, 112, 2, 110, 116, 104, 101, 3, 13, 34, 122, 0, 4, 105, 115, 101, 1, 10, 2, 32, 3, 13,
-			34, 140, 88, 0, 105, 122, 101, 1, 10, 2, 32, 0, 97, 8, 112, 2, 100, 101, 3, 13, 34, 141, 0, 105, 110, 103, 1, 103, 3, 13,
-			44, 113, 68, 0, 2, 114, 3, 35, 0, 4, 1, 21, 2, 105, 116, 121, 3, 35, 34, 0, 1, 99, 2, 105, 0, 1, 104, 99, 2, 105,
-			116, 0, 1, 104, 112, 2, 105, 0, 1, 107, 2, 121, 0, 1, 108, 99, 2, 105, 0, 1, 109, 2, 105, 110, 101, 114, 0, 1, 109, 2,
-			105, 111, 0, 1, 109, 2, 105, 116, 0, 1, 112, 2, 105, 0, 1, 112, 112, 2, 101, 110, 17, 67, 0, 1, 112, 115, 110, 2, 101, 110,
-			17, 67, 0, 2, 97, 0, 2, 101, 110, 0, 2, 101, 116, 0, 2, 105, 99, 0, 2, 111, 0, 8, 2, 17, 65, 0, 8, 98, 2, 18,
-			67, 116, 0, 8, 108, 2, 121, 110, 0, 8, 109, 2, 105, 0, 8, 109, 2, 105, 110, 97, 17, 67, 0, 114, 8, 2, 97, 110, 116, 0,
-			114, 8, 2, 111, 0, 4, 97, 8, 112, 3, 35, 34, 13, 0, 114, 111, 8, 2, 103, 0, 4, 1, 10, 2, 32, 28, 18, 3, 114, 0,
-			1, 10, 2, 100, 32, 28, 18, 0, 1, 10, 2, 100, 105, 115, 0, 1, 10, 2, 100, 105, 122, 0, 1, 10, 2, 100, 121, 32, 0, 1,
-			17, 67, 11, 2, 100, 32, 0, 1, 100, 10, 2, 32, 0, 1, 100, 10, 2, 100, 32, 0, 1, 100, 110, 101, 108, 97, 99, 0, 1, 103,
-			10, 2, 32, 0, 1, 104, 10, 2, 100, 32, 0, 1, 104, 99, 10, 2, 100, 0, 1, 107, 10, 2, 100, 32, 0, 1, 108, 10, 2, 32,
-			0, 1, 108, 10, 2, 105, 115, 116, 0, 1, 109, 10, 2, 32, 0, 1, 110, 114, 101, 98, 2, 100, 0, 1, 112, 2, 116, 105, 99, 117,
-			0, 1, 112, 10, 2, 100, 32, 0, 1, 116, 10, 2, 32, 0, 1, 116, 115, 10, 2, 100, 32, 0, 1, 119, 2, 100, 0, 1, 119, 10,
-			2, 100, 32, 0, 1, 122, 10, 2, 100, 32, 0, 2, 100, 114, 121, 0, 101, 2, 17, 67, 11, 17, 65, 32, 3, 114, 6, 122, 0, 1,
-			112, 101, 115, 2, 97, 116, 3, 114, 34, 0, 1, 103, 114, 97, 109, 2, 17, 65, 116, 17, 65, 32, 3, 114, 34, 6, 0, 97, 8, 112,
-			101, 115, 2, 98, 3, 114, 34, 13, 0, 121, 101, 1, 10, 2, 32, 3, 114, 34, 37, 0, 105, 110, 103, 1, 17, 67, 11, 2, 32, 3,
+			114, 0, 2, 116, 32, 0, 8, 2, 109, 0, 8, 17, 67, 2, 116, 17, 65, 0, 8, 104, 2, 116, 0, 108, 1, 119, 2, 17, 65, 0,
+			108, 1, 119, 2, 97, 0, 108, 1, 119, 2, 101, 116, 0, 115, 111, 3, 124, 55, 89, 136, 0, 4, 1, 98, 2, 109, 3, 126, 0, 1,
+			99, 2, 102, 0, 1, 99, 2, 109, 0, 1, 104, 2, 102, 0, 1, 104, 2, 118, 0, 1, 112, 2, 109, 0, 1, 115, 112, 2, 109, 0,
+			1, 117, 113, 2, 109, 0, 8, 2, 109, 115, 0, 4, 1, 104, 99, 2, 107, 3, 130, 0, 1, 116, 2, 107, 0, 1, 119, 2, 107, 0,
+			4, 1, 98, 2, 100, 12, 3, 130, 55, 0, 1, 98, 2, 107, 0, 1, 116, 115, 2, 119, 0, 1, 116, 115, 110, 105, 2, 32, 0, 8,
+			2, 100, 0, 8, 2, 116, 0, 108, 1, 98, 2, 25, 0, 108, 1, 98, 10, 2, 101, 114, 32, 0, 108, 1, 99, 2, 25, 0, 108, 1,
+			99, 2, 105, 110, 0, 108, 1, 102, 0, 108, 1, 104, 2, 17, 67, 0, 108, 1, 109, 115, 0, 108, 1, 114, 104, 116, 0, 108, 1, 116,
+			0, 108, 1, 116, 2, 101, 0, 108, 1, 116, 115, 0, 108, 1, 119, 0, 108, 2, 32, 0, 108, 8, 2, 17, 67, 21, 14, 128, 132, 131,
+			0, 108, 101, 1, 119, 0, 108, 101, 114, 2, 32, 3, 130, 55, 114, 0, 108, 101, 114, 115, 2, 32, 3, 130, 55, 114, 88, 0, 2, 116,
+			101, 114, 110, 97, 116, 111, 3, 131, 55, 0, 119, 8, 3, 131, 55, 58, 0, 4, 1, 29, 2, 105, 110, 3, 138, 55, 0, 2, 105, 97,
+			0, 2, 105, 101, 110, 0, 8, 99, 115, 2, 17, 65, 0, 8, 104, 2, 111, 0, 101, 2, 32, 0, 101, 2, 104, 0, 7, 6, 97, 109,
+			0, 8, 2, 32, 3, 2, 35, 65, 0, 101, 8, 108, 2, 110, 116, 3, 2, 35, 65, 121, 0, 4, 1, 32, 15, 2, 32, 3, 4, 138,
+			6, 121, 65, 0, 1, 32, 32, 15, 2, 32, 0, 112, 116, 111, 110, 3, 6, 35, 65, 48, 47, 13, 50, 0, 4, 1, 114, 21, 2, 97,
+			32, 3, 6, 126, 65, 0, 2, 105, 32, 0, 101, 1, 115, 17, 65, 2, 32, 3, 6, 126, 65, 121, 0, 1, 103, 10, 2, 111, 117, 115,
+			3, 8, 119, 65, 0, 105, 110, 101, 1, 10, 2, 32, 3, 8, 119, 65, 129, 50, 0, 4, 1, 10, 2, 101, 110, 116, 3, 13, 65, 0,
+			1, 10, 2, 101, 110, 116, 0, 1, 10, 2, 111, 32, 0, 1, 100, 10, 2, 32, 0, 1, 100, 110, 117, 2, 101, 110, 0, 1, 115, 10,
+			2, 32, 0, 5, 35, 1, 104, 10, 2, 32, 24, 0, 101, 1, 10, 2, 110, 116, 97, 3, 13, 65, 6, 121, 0, 4, 1, 99, 2, 101,
+			108, 3, 35, 65, 0, 1, 100, 114, 101, 21, 2, 32, 0, 1, 108, 2, 112, 108, 0, 97, 116, 101, 117, 114, 3, 35, 65, 13, 47, 114,
+			0, 97, 122, 2, 111, 3, 35, 65, 13, 88, 0, 98, 105, 118, 3, 35, 65, 71, 6, 122, 84, 0, 98, 105, 2, 100, 3, 35, 65, 71,
+			122, 0, 112, 104, 105, 98, 3, 35, 65, 83, 6, 122, 71, 0, 105, 108, 1, 102, 3, 35, 65, 122, 55, 0, 4, 2, 117, 115, 101, 3,
+			119, 65, 0, 8, 2, 97, 108, 0, 8, 2, 101, 110, 0, 8, 2, 105, 100, 0, 8, 2, 105, 110, 111, 0, 8, 2, 105, 115, 115, 0,
+			8, 2, 111, 114, 17, 67, 0, 109, 2, 101, 110, 100, 0, 101, 8, 2, 110, 116, 3, 119, 65, 121, 0, 101, 114, 2, 105, 99, 3, 119,
+			65, 121, 34, 0, 4, 101, 2, 110, 97, 98, 3, 119, 65, 129, 0, 101, 8, 2, 108, 0, 105, 2, 103, 0, 111, 101, 98, 3, 119, 65,
+			129, 71, 0, 97, 122, 3, 119, 65, 138, 88, 0, 4, 1, 17, 67, 2, 100, 3, 120, 65, 0, 1, 17, 67, 2, 112, 108, 0, 4, 1,
+			102, 2, 111, 117, 115, 3, 138, 65, 0, 1, 104, 99, 2, 98, 0, 8, 100, 2, 105, 0, 101, 1, 108, 102, 0, 101, 8, 110, 0, 7,
+			6, 97, 110, 0, 8, 114, 116, 2, 115, 3, 2, 35, 50, 0, 115, 102, 101, 114, 1, 114, 116, 3, 2, 35, 50, 89, 83, 128, 0, 116,
+			105, 8, 2, 21, 14, 128, 132, 132, 3, 4, 35, 50, 47, 122, 0, 100, 117, 1, 21, 2, 32, 3, 4, 35, 50, 72, 6, 134, 0, 4,
+			1, 21, 2, 17, 67, 97, 32, 3, 6, 35, 50, 0, 1, 103, 97, 112, 111, 114, 112, 2, 100, 0, 1, 110, 105, 102, 2, 99, 0, 2,
+			103, 117, 108, 0, 2, 122, 97, 0, 100, 111, 2, 32, 3, 6, 35, 50, 72, 136, 0, 97, 1, 21, 2, 32, 3, 6, 126, 50, 13, 0,
+			105, 1, 10, 2, 32, 3, 6, 126, 50, 122, 0, 2, 105, 97, 3, 6, 138, 50, 0, 105, 97, 2, 99, 32, 3, 6, 138, 50, 122, 35,
+			0, 101, 97, 110, 2, 32, 3, 6, 138, 50, 141, 50, 0, 101, 111, 117, 115, 1, 21, 3, 6, 138, 50, 141, 89, 0, 4, 1, 10, 2,
+			32, 3, 13, 50, 0, 1, 10, 2, 99, 101, 32, 0, 1, 10, 2, 99, 121, 0, 1, 10, 2, 101, 115, 101, 0, 1, 10, 2, 105, 101,
+			32, 0, 1, 10, 2, 105, 101, 115, 32, 0, 1, 10, 2, 116, 32, 0, 1, 10, 2, 116, 121, 32, 0, 1, 10, 2, 121, 32, 0, 1,
+			98, 115, 117, 2, 100, 0, 1, 104, 112, 2, 97, 103, 101, 0, 1, 108, 10, 2, 100, 0, 1, 108, 101, 109, 2, 99, 104, 111, 108, 0,
+			1, 108, 108, 2, 32, 0, 1, 109, 10, 2, 32, 0, 1, 109, 114, 101, 112, 0, 1, 109, 117, 104, 2, 32, 0, 1, 114, 21, 21, 2,
+			32, 0, 110, 1, 10, 2, 105, 101, 32, 0, 105, 112, 117, 1, 109, 3, 13, 50, 122, 48, 57, 117, 0, 111, 101, 117, 1, 109, 2, 118,
+			3, 13, 50, 134, 0, 4, 1, 99, 2, 99, 3, 35, 50, 0, 1, 99, 17, 67, 2, 32, 0, 1, 102, 2, 99, 0, 1, 108, 2, 32,
+			0, 1, 108, 10, 2, 100, 105, 0, 1, 108, 112, 2, 116, 32, 0, 1, 108, 121, 2, 100, 0, 1, 109, 2, 32, 0, 1, 110, 2, 99,
+			0, 1, 112, 2, 32, 0, 1, 112, 2, 99, 0, 1, 112, 2, 101, 108, 0, 1, 112, 115, 2, 105, 97, 0, 1, 114, 116, 2, 32, 0,
+			1, 114, 116, 2, 115, 105, 0, 1, 114, 116, 2, 115, 111, 109, 0, 1, 116, 115, 2, 32, 0, 1, 118, 100, 97, 2, 99, 0, 8, 108,
+			2, 105, 97, 0, 8, 119, 2, 103, 0, 8, 119, 2, 107, 0, 110, 97, 8, 3, 35, 50, 13, 0, 116, 8, 2, 105, 113, 12, 3, 35,
+			50, 47, 0, 116, 101, 2, 110, 110, 3, 35, 50, 47, 6, 121, 0, 116, 105, 2, 99, 105, 3, 35, 50, 47, 6, 122, 0, 4, 103, 1,
+			108, 102, 2, 101, 3, 35, 50, 75, 0, 103, 2, 101, 108, 0, 103, 105, 110, 103, 1, 108, 102, 3, 35, 50, 75, 122, 68, 0, 115, 105,
+			115, 1, 114, 116, 3, 35, 50, 88, 6, 122, 89, 0, 101, 8, 2, 115, 3, 35, 50, 122, 0, 103, 1, 104, 2, 101, 114, 3, 35, 68,
+			0, 103, 2, 101, 114, 3, 35, 68, 81, 0, 103, 101, 108, 1, 109, 3, 35, 68, 81, 118, 0, 4, 1, 105, 21, 2, 32, 14, 128, 128,
+			129, 3, 50, 0, 1, 117, 21, 2, 32, 14, 128, 128, 129, 0, 103, 101, 100, 1, 114, 2, 14, 128, 128, 129, 3, 72, 0, 4, 2, 97,
+			108, 111, 103, 3, 119, 50, 0, 2, 97, 116, 104, 0, 5, 8, 1, 10, 2, 32, 0, 5, 8, 1, 10, 2, 99, 101, 32, 0, 5, 8,
+			1, 10, 2, 116, 32, 0, 5, 8, 1, 109, 10, 2, 32, 0, 8, 2, 101, 109, 0, 8, 2, 111, 105, 0, 8, 99, 2, 97, 100, 105,
+			0, 110, 2, 101, 97, 108, 0, 110, 2, 105, 104, 0, 110, 2, 111, 117, 110, 0, 110, 2, 117, 105, 0, 110, 2, 117, 108, 0, 110, 2,
+			117, 110, 0, 110, 8, 2, 111, 121, 0, 105, 97, 1, 122, 3, 119, 50, 6, 141, 0, 111, 109, 8, 3, 119, 50, 124, 65, 0, 101, 8,
+			2, 109, 105, 3, 119, 50, 129, 0, 105, 97, 2, 99, 3, 119, 50, 144, 0, 4, 1, 17, 67, 2, 99, 3, 120, 50, 0, 1, 17, 67,
+			2, 116, 0, 1, 104, 2, 99, 101, 32, 0, 1, 108, 115, 2, 100, 0, 1, 109, 21, 2, 100, 0, 1, 122, 2, 99, 101, 32, 0, 115,
+			119, 2, 101, 114, 3, 120, 50, 89, 0, 121, 8, 3, 121, 50, 113, 0, 4, 1, 119, 2, 116, 32, 3, 124, 50, 0, 8, 117, 113, 0,
+			8, 119, 2, 17, 67, 0, 8, 2, 99, 105, 101, 3, 138, 50, 0, 4, 103, 1, 100, 2, 101, 114, 3, 138, 50, 75, 0, 103, 1, 104,
+			99, 2, 101, 0, 103, 1, 114, 2, 101, 0, 103, 2, 101, 108, 32, 0, 103, 101, 1, 104, 99, 2, 21, 0, 4, 103, 105, 110, 103, 1,
+			104, 99, 3, 138, 50, 75, 122, 68, 0, 103, 105, 110, 103, 1, 114, 0, 7, 6, 97, 112, 0, 104, 1, 114, 103, 10, 2, 121, 3, 8,
+			13, 83, 0, 104, 101, 114, 1, 114, 103, 10, 3, 8, 13, 83, 114, 0, 1, 99, 2, 97, 99, 3, 13, 48, 0, 101, 1, 114, 116, 2,
+			122, 3, 13, 48, 129, 0, 4, 2, 97, 116, 104, 3, 35, 48, 0, 2, 101, 108, 32, 0, 2, 105, 99, 0, 2, 111, 103, 0, 2, 111,
+			108, 105, 0, 8, 2, 115, 0, 8, 2, 116, 0, 112, 2, 97, 114, 97, 0, 112, 2, 101, 116, 105, 0, 112, 2, 108, 101, 0, 112, 2,
+			108, 105, 99, 0, 112, 2, 114, 101, 104, 0, 101, 114, 8, 2, 116, 3, 35, 48, 13, 0, 114, 101, 115, 3, 35, 48, 34, 138, 0, 101,
+			1, 114, 116, 2, 122, 111, 3, 35, 48, 122, 0, 104, 8, 2, 111, 3, 35, 83, 0, 104, 114, 111, 3, 35, 83, 34, 13, 0, 4, 8,
+			2, 21, 3, 119, 48, 0, 112, 2, 101, 97, 114, 0, 112, 2, 108, 105, 99, 97, 98, 0, 112, 8, 2, 21, 0, 112, 114, 101, 99, 8,
+			2, 18, 67, 3, 119, 48, 34, 129, 91, 0, 101, 114, 105, 8, 2, 116, 3, 119, 48, 121, 34, 13, 0, 101, 114, 2, 105, 101, 3, 119,
+			48, 141, 34, 0, 104, 8, 2, 21, 3, 119, 83, 0, 4, 1, 99, 2, 111, 110, 3, 138, 48, 0, 1, 109, 2, 108, 101, 0, 1, 112,
+			2, 101, 114, 0, 1, 116, 115, 2, 108, 0, 2, 105, 97, 0, 2, 105, 115, 0, 2, 114, 111, 0, 8, 2, 101, 0, 8, 2, 114, 105,
+			0, 8, 112, 2, 105, 115, 0, 8, 118, 2, 111, 0, 104, 8, 2, 105, 100, 3, 138, 83, 0, 7, 6, 97, 114, 0, 8, 2, 116, 105,
+			108, 3, 2, 127, 0, 98, 111, 1, 99, 2, 104, 3, 4, 127, 71, 136, 0, 99, 104, 8, 2, 21, 14, 128, 132, 132, 3, 4, 127, 76,
+			0, 5, 3, 1, 21, 2, 105, 111, 32, 3, 6, 35, 34, 0, 105, 108, 121, 1, 21, 2, 32, 3, 6, 121, 34, 13, 55, 2, 122, 0,
+			4, 2, 97, 32, 3, 6, 126, 34, 0, 2, 105, 32, 0, 4, 2, 105, 97, 17, 67, 32, 3, 6, 140, 0, 2, 105, 97, 32, 0, 2,
+			105, 117, 12, 3, 6, 140, 34, 0, 4, 1, 10, 2, 105, 110, 32, 3, 13, 34, 0, 1, 103, 111, 108, 2, 105, 0, 1, 104, 2, 97,
+			115, 115, 0, 1, 109, 2, 105, 0, 1, 109, 2, 105, 110, 0, 8, 116, 97, 107, 0, 121, 1, 10, 2, 32, 3, 13, 34, 2, 37, 0,
+			97, 110, 1, 109, 10, 3, 13, 34, 35, 50, 0, 101, 1, 112, 2, 110, 116, 104, 101, 3, 13, 34, 121, 0, 105, 115, 101, 1, 10, 2,
+			32, 3, 13, 34, 137, 88, 0, 97, 8, 112, 2, 100, 101, 3, 13, 34, 138, 0, 105, 110, 103, 1, 103, 3, 13, 44, 113, 68, 0, 2,
+			114, 3, 35, 0, 4, 1, 21, 2, 105, 116, 121, 3, 35, 34, 0, 1, 99, 2, 101, 101, 114, 0, 1, 99, 2, 105, 0, 1, 104, 99,
+			2, 105, 116, 0, 1, 104, 112, 2, 105, 0, 1, 107, 2, 121, 0, 1, 108, 99, 2, 105, 0, 1, 109, 2, 105, 110, 101, 114, 0, 1,
+			109, 2, 105, 111, 0, 1, 109, 2, 105, 116, 0, 1, 112, 2, 105, 0, 1, 112, 112, 2, 101, 110, 17, 67, 0, 1, 112, 115, 2, 101,
+			110, 17, 67, 0, 2, 97, 0, 2, 101, 110, 0, 2, 105, 99, 0, 2, 111, 0, 8, 2, 17, 65, 0, 8, 98, 2, 18, 67, 116, 0,
+			8, 109, 2, 105, 0, 8, 109, 2, 105, 110, 97, 17, 67, 0, 114, 8, 2, 97, 110, 116, 0, 114, 8, 2, 111, 0, 4, 97, 8, 112,
+			3, 35, 34, 13, 0, 101, 2, 116, 0, 114, 111, 8, 2, 103, 0, 4, 1, 10, 2, 100, 105, 115, 3, 114, 0, 1, 10, 2, 100, 105,
+			122, 0, 1, 10, 2, 100, 121, 32, 0, 1, 100, 10, 2, 32, 0, 1, 100, 10, 2, 100, 32, 0, 1, 103, 10, 2, 32, 0, 1, 103,
+			103, 2, 100, 32, 0, 1, 104, 10, 2, 100, 32, 0, 1, 104, 99, 10, 2, 100, 0, 1, 107, 10, 2, 100, 32, 0, 1, 108, 10, 2,
+			32, 0, 1, 108, 10, 2, 105, 115, 116, 0, 1, 109, 10, 2, 32, 0, 1, 112, 2, 116, 105, 99, 117, 0, 1, 112, 10, 2, 100, 32,
+			0, 1, 116, 10, 2, 32, 0, 1, 116, 115, 10, 2, 100, 32, 0, 1, 119, 2, 100, 0, 1, 119, 10, 2, 100, 32, 0, 1, 122, 10,
+			2, 100, 32, 0, 2, 100, 114, 121, 0, 1, 112, 101, 115, 2, 97, 116, 3, 114, 34, 0, 105, 110, 103, 1, 17, 67, 11, 2, 32, 3,
 			114, 34, 113, 68, 0, 4, 99, 104, 1, 110, 97, 3, 114, 49, 0, 99, 104, 1, 110, 111, 109, 0, 101, 100, 1, 17, 67, 11, 2, 32,
-			3, 114, 72, 0, 4, 5, 3, 8, 2, 105, 115, 116, 111, 99, 114, 97, 116, 3, 119, 34, 0, 8, 2, 111, 115, 0, 8, 2, 111, 117,
-			0, 8, 104, 2, 97, 110, 103, 0, 114, 8, 2, 21, 0, 114, 8, 110, 2, 97, 116, 0, 97, 99, 104, 8, 3, 119, 34, 35, 49, 0,
-			111, 109, 2, 97, 116, 3, 119, 34, 139, 65, 0, 121, 5, 3, 1, 110, 111, 105, 2, 32, 3, 122, 34, 2, 37, 0, 4, 1, 117, 113,
-			2, 114, 3, 126, 0, 1, 119, 2, 114, 0, 1, 119, 2, 114, 0, 4, 1, 117, 113, 2, 97, 3, 126, 34, 0, 119, 1, 119, 2, 105,
-			0, 4, 3, 130, 0, 1, 104, 2, 100, 121, 32, 0, 1, 108, 108, 2, 100, 32, 0, 1, 116, 111, 101, 2, 100, 32, 0, 1, 116, 115,
-			2, 32, 0, 2, 32, 0, 8, 116, 2, 32, 0, 39, 2, 110, 116, 0, 114, 2, 32, 0, 114, 101, 2, 32, 0, 4, 99, 104, 1, 21,
-			2, 105, 3, 130, 49, 0, 99, 104, 1, 21, 2, 121, 0, 99, 104, 8, 2, 17, 65, 17, 65, 0, 99, 104, 8, 2, 101, 116, 0, 99,
-			104, 97, 105, 8, 3, 130, 49, 6, 141, 124, 0, 99, 104, 105, 8, 2, 21, 3, 130, 49, 124, 0, 99, 104, 105, 118, 8, 2, 12, 3,
-			130, 49, 140, 84, 0, 99, 104, 97, 8, 2, 105, 18, 71, 101, 3, 130, 49, 141, 0, 108, 105, 97, 8, 112, 3, 130, 55, 13, 0, 114,
-			101, 100, 2, 32, 3, 130, 72, 0, 99, 104, 8, 2, 101, 114, 3, 130, 76, 0, 114, 105, 110, 103, 2, 32, 3, 130, 113, 68, 0, 4,
-			1, 104, 119, 3, 135, 0, 1, 117, 113, 2, 116, 0, 1, 119, 0, 1, 119, 97, 2, 100, 0, 1, 119, 101, 114, 2, 100, 0, 1, 119,
-			104, 99, 2, 100, 0, 1, 119, 115, 2, 100, 0, 8, 119, 2, 100, 0, 1, 119, 111, 116, 2, 100, 3, 136, 0, 4, 1, 109, 116, 104,
-			3, 143, 0, 1, 112, 2, 105, 110, 0, 1, 119, 2, 105, 0, 1, 119, 2, 121, 0, 2, 105, 111, 117, 115, 0, 8, 109, 2, 121, 0,
-			101, 0, 101, 1, 99, 2, 17, 67, 21, 0, 101, 1, 119, 0, 4, 1, 117, 2, 105, 115, 104, 3, 143, 34, 0, 1, 118, 2, 105, 17,
-			65, 0, 121, 1, 17, 67, 29, 2, 32, 3, 143, 34, 2, 37, 0, 101, 110, 1, 112, 2, 116, 3, 143, 34, 13, 50, 0, 101, 115, 116,
-			2, 32, 3, 143, 34, 13, 89, 47, 0, 4, 121, 5, 3, 1, 17, 65, 21, 21, 2, 32, 3, 143, 34, 37, 0, 121, 5, 3, 1, 17,
-			67, 17, 65, 21, 21, 2, 32, 0, 121, 5, 3, 1, 114, 2, 32, 0, 105, 110, 103, 3, 143, 44, 113, 68, 0, 7, 6, 97, 115, 0,
-			2, 101, 120, 117, 3, 2, 141, 89, 0, 2, 105, 118, 101, 3, 6, 141, 89, 0, 4, 115, 1, 99, 10, 2, 32, 3, 13, 89, 0, 115,
-			1, 108, 116, 10, 2, 32, 0, 115, 1, 112, 109, 111, 2, 32, 0, 115, 1, 112, 115, 10, 2, 32, 0, 115, 1, 114, 114, 0, 115, 1,
-			118, 10, 2, 32, 0, 115, 1, 118, 10, 2, 32, 0, 4, 101, 121, 1, 10, 2, 32, 3, 13, 89, 2, 37, 0, 121, 1, 10, 2, 32,
-			0, 115, 2, 117, 3, 13, 91, 0, 115, 117, 114, 3, 13, 91, 57, 146, 0, 4, 1, 98, 2, 105, 108, 3, 35, 88, 0, 8, 2, 100,
-			0, 8, 2, 110, 0, 116, 104, 5, 3, 8, 2, 109, 0, 4, 1, 98, 2, 97, 108, 3, 35, 89, 0, 1, 109, 2, 111, 110, 105, 0,
-			1, 116, 110, 2, 116, 0, 2, 112, 104, 97, 0, 2, 112, 105, 0, 2, 116, 114, 97, 108, 0, 2, 116, 114, 111, 0, 2, 121, 109, 112,
-			0, 8, 2, 101, 0, 8, 2, 105, 110, 0, 8, 2, 112, 101, 0, 8, 2, 116, 114, 105, 0, 115, 1, 108, 99, 2, 105, 17, 67, 0,
-			115, 1, 112, 2, 111, 0, 115, 2, 97, 103, 0, 115, 2, 111, 110, 0, 115, 8, 2, 101, 116, 0, 115, 8, 2, 104, 0, 116, 104, 8,
-			2, 109, 0, 112, 105, 8, 2, 114, 97, 3, 35, 89, 48, 13, 0, 99, 105, 105, 2, 32, 3, 35, 89, 49, 124, 0, 104, 8, 3, 35,
-			91, 0, 115, 105, 111, 110, 1, 112, 3, 35, 91, 13, 50, 0, 99, 105, 1, 102, 2, 115, 3, 35, 91, 124, 0, 2, 115, 105, 115, 116,
-			3, 119, 0, 4, 1, 10, 2, 116, 121, 32, 3, 119, 89, 0, 2, 116, 101, 114, 110, 0, 8, 2, 21, 0, 8, 2, 112, 101, 114, 0,
-			8, 2, 112, 105, 114, 101, 0, 8, 2, 116, 114, 105, 110, 0, 8, 2, 116, 114, 111, 108, 111, 103, 0, 8, 2, 116, 114, 111, 110, 111,
-			0, 115, 2, 117, 109, 112, 0, 115, 8, 2, 21, 0, 4, 104, 8, 2, 97, 3, 119, 91, 0, 104, 8, 2, 111, 0, 4, 1, 17, 67,
-			2, 112, 3, 120, 89, 0, 1, 17, 67, 2, 112, 101, 0, 1, 17, 67, 2, 116, 0, 2, 107, 0, 2, 116, 101, 114, 0, 8, 2, 107,
-			0, 115, 1, 108, 17, 67, 0, 115, 1, 112, 0, 115, 1, 114, 17, 67, 0, 1, 104, 99, 114, 117, 112, 2, 101, 3, 124, 89, 0, 1,
-			119, 2, 112, 3, 126, 89, 0, 4, 2, 97, 108, 3, 141, 88, 0, 8, 17, 67, 2, 101, 114, 32, 0, 101, 1, 104, 112, 2, 32, 0,
-			101, 1, 114, 2, 32, 0, 4, 1, 98, 2, 105, 3, 141, 89, 0, 1, 104, 2, 116, 101, 0, 1, 106, 2, 111, 110, 0, 1, 109, 2,
-			111, 110, 0, 1, 112, 2, 116, 101, 32, 0, 1, 116, 2, 116, 0, 1, 116, 2, 116, 101, 13, 0, 8, 2, 111, 0, 8, 2, 121, 109,
-			0, 116, 1, 119, 2, 101, 13, 3, 141, 89, 47, 0, 105, 97, 5, 3, 8, 3, 141, 90, 13, 0, 99, 1, 102, 2, 105, 97, 3, 141,
-			91, 0, 105, 97, 8, 3, 141, 91, 13, 0, 7, 6, 97, 116, 0, 111, 8, 2, 110, 97, 3, 2, 141, 47, 139, 0, 4, 1, 21, 2,
-			114, 97, 32, 3, 6, 121, 47, 0, 2, 117, 109, 0, 105, 1, 21, 2, 32, 3, 6, 121, 47, 37, 0, 4, 1, 21, 2, 111, 114, 32,
-			3, 6, 141, 47, 0, 1, 100, 2, 117, 109, 32, 0, 1, 108, 117, 2, 111, 114, 121, 0, 1, 109, 2, 117, 109, 32, 0, 2, 105, 109,
-			32, 0, 114, 105, 99, 101, 115, 3, 6, 141, 47, 34, 113, 89, 132, 88, 0, 114, 105, 120, 3, 6, 141, 47, 34, 124, 49, 89, 0, 105,
-			2, 97, 29, 3, 6, 141, 91, 0, 114, 121, 1, 21, 2, 32, 3, 8, 13, 47, 34, 124, 0, 104, 1, 21, 2, 105, 115, 3, 8, 13,
-			87, 0, 104, 121, 1, 10, 2, 32, 3, 8, 13, 87, 113, 0, 101, 1, 116, 99, 2, 32, 3, 8, 141, 47, 0, 4, 1, 10, 2, 101,
-			101, 114, 32, 3, 13, 47, 0, 1, 10, 2, 105, 118, 101, 0, 1, 109, 2, 101, 114, 105, 0, 1, 109, 105, 108, 99, 2, 101, 0, 1,
-			110, 101, 115, 0, 1, 112, 2, 101, 114, 110, 0, 8, 115, 114, 101, 118, 0, 101, 1, 10, 2, 32, 28, 18, 0, 101, 1, 108, 97, 112,
-			2, 32, 0, 101, 1, 108, 117, 99, 97, 109, 2, 32, 0, 101, 1, 108, 117, 115, 110, 111, 99, 2, 32, 0, 101, 1, 109, 105, 116, 2,
-			32, 0, 101, 1, 110, 105, 100, 2, 32, 0, 101, 1, 110, 111, 105, 2, 32, 0, 101, 1, 114, 101, 100, 2, 32, 0, 101, 1, 114, 101,
-			112, 109, 2, 32, 0, 101, 8, 114, 97, 112, 101, 115, 32, 116, 105, 2, 32, 0, 111, 114, 121, 1, 10, 3, 13, 47, 114, 34, 37, 0,
-			105, 115, 109, 1, 10, 3, 13, 47, 124, 88, 13, 65, 0, 101, 114, 1, 109, 2, 110, 3, 13, 47, 131, 0, 111, 114, 121, 5, 3, 1,
-			10, 2, 32, 3, 13, 47, 152, 34, 37, 0, 117, 114, 101, 1, 108, 2, 32, 3, 13, 76, 114, 0, 4, 117, 114, 1, 99, 3, 13, 76,
-			146, 0, 117, 114, 1, 109, 0, 104, 1, 10, 2, 17, 65, 110, 32, 3, 13, 87, 0, 4, 1, 99, 2, 101, 17, 67, 3, 35, 47, 0,
-			1, 103, 2, 101, 97, 117, 0, 1, 108, 112, 2, 101, 97, 0, 1, 109, 2, 101, 114, 21, 0, 1, 114, 116, 115, 2, 101, 103, 0, 8,
-			2, 111, 109, 105, 122, 0, 8, 107, 2, 101, 114, 0, 116, 2, 105, 99, 0, 116, 2, 105, 116, 0, 101, 8, 115, 2, 108, 108, 3, 35,
-			47, 13, 0, 117, 115, 5, 3, 1, 116, 115, 3, 35, 47, 13, 89, 0, 101, 103, 111, 1, 99, 2, 114, 105, 99, 3, 35, 47, 124, 81,
-			6, 126, 0, 101, 103, 111, 1, 99, 3, 35, 47, 124, 81, 13, 0, 105, 8, 99, 2, 111, 110, 3, 35, 47, 140, 0, 104, 2, 108, 111,
-			110, 3, 35, 87, 0, 4, 1, 114, 102, 2, 101, 114, 110, 3, 119, 47, 0, 2, 111, 109, 105, 0, 8, 2, 108, 97, 110, 0, 8, 2,
-			114, 111, 99, 0, 116, 8, 2, 21, 0, 114, 111, 108, 1, 112, 3, 119, 47, 34, 139, 55, 0, 111, 8, 2, 110, 3, 119, 47, 139, 0,
-			4, 104, 1, 98, 3, 120, 87, 0, 104, 1, 112, 2, 25, 0, 104, 1, 102, 2, 101, 114, 3, 121, 86, 0, 1, 119, 2, 116, 3, 126,
-			47, 0, 4, 1, 10, 2, 105, 118, 101, 32, 28, 17, 3, 141, 47, 0, 1, 21, 21, 2, 111, 114, 32, 0, 1, 99, 2, 101, 114, 32,
-			0, 1, 102, 2, 97, 108, 0, 1, 108, 98, 2, 17, 65, 0, 2, 111, 114, 32, 0, 5, 3, 1, 112, 2, 114, 105, 17, 65, 0, 8,
-			2, 121, 0, 8, 110, 2, 105, 118, 101, 0, 101, 1, 110, 111, 105, 110, 2, 32, 0, 4, 97, 1, 100, 3, 141, 47, 13, 0, 97, 8,
-			115, 2, 110, 0, 117, 115, 1, 116, 115, 3, 141, 47, 13, 89, 0, 114, 111, 110, 1, 29, 2, 32, 3, 141, 47, 34, 13, 50, 0, 101,
-			115, 1, 114, 97, 112, 2, 32, 3, 141, 47, 89, 0, 111, 114, 8, 103, 3, 141, 47, 114, 0, 4, 105, 110, 103, 1, 21, 2, 12, 12,
-			32, 3, 141, 47, 124, 68, 0, 105, 110, 103, 1, 109, 105, 116, 2, 32, 0, 101, 100, 1, 21, 2, 12, 12, 32, 3, 141, 47, 124, 72,
-			0, 4, 101, 100, 1, 109, 105, 116, 2, 32, 3, 141, 47, 125, 72, 0, 101, 100, 1, 114, 101, 100, 2, 32, 0, 104, 1, 98, 2, 101,
-			3, 141, 86, 0, 104, 101, 100, 2, 32, 3, 141, 86, 72, 0, 104, 101, 105, 3, 141, 87, 113, 124, 0, 4, 2, 105, 97, 3, 141, 91,
-			0, 2, 105, 111, 32, 0, 7, 6, 97, 117, 0, 116, 111, 8, 2, 110, 3, 2, 133, 47, 126, 0, 103, 109, 101, 110, 116, 3, 2, 133,
-			81, 65, 122, 50, 47, 0, 116, 104, 101, 110, 3, 2, 133, 87, 122, 50, 0, 99, 104, 8, 3, 2, 133, 101, 0, 116, 111, 8, 2, 21,
-			14, 128, 132, 132, 3, 4, 133, 47, 139, 0, 4, 1, 21, 2, 114, 105, 3, 6, 133, 0, 1, 115, 2, 114, 117, 115, 32, 0, 100, 2,
-			32, 3, 6, 133, 72, 0, 8, 2, 114, 111, 114, 3, 119, 0, 8, 2, 110, 116, 3, 120, 0, 4, 103, 104, 1, 108, 3, 120, 83, 0,
-			103, 104, 1, 114, 100, 0, 4, 1, 99, 2, 108, 105, 3, 126, 0, 5, 35, 1, 115, 2, 115, 0, 5, 35, 2, 115, 116, 114, 0, 108,
-			2, 116, 3, 126, 55, 0, 4, 3, 133, 0, 1, 110, 2, 116, 32, 0, 1, 116, 2, 116, 32, 0, 103, 104, 0, 103, 104, 1, 108, 115,
-			0, 108, 2, 107, 0, 116, 111, 2, 109, 97, 3, 133, 47, 13, 0, 4, 100, 8, 2, 105, 111, 108, 111, 3, 133, 72, 0, 100, 8, 2,
-			105, 111, 109, 0, 100, 105, 111, 3, 133, 72, 113, 139, 0, 114, 2, 32, 3, 135, 0, 4, 1, 103, 2, 115, 3, 138, 0, 2, 32, 0,
-			2, 109, 32, 0, 2, 115, 99, 104, 0, 2, 116, 32, 0, 115, 1, 17, 67, 2, 32, 3, 138, 89, 0, 101, 114, 3, 138, 114, 0, 2,
-			118, 3, 139, 0, 7, 6, 97, 118, 0, 1, 108, 97, 2, 101, 114, 3, 6, 121, 84, 0, 4, 1, 99, 115, 2, 101, 110, 3, 35, 84,
-			0, 1, 106, 2, 101, 108, 0, 1, 108, 2, 105, 0, 1, 114, 2, 101, 108, 0, 8, 17, 66, 2, 101, 110, 0, 8, 114, 116, 0, 97,
-			114, 2, 105, 99, 3, 35, 84, 13, 34, 0, 4, 2, 97, 105, 108, 3, 119, 84, 0, 2, 101, 110, 103, 0, 2, 111, 17, 65, 0, 8,
-			2, 101, 114, 17, 67, 0, 111, 119, 3, 119, 84, 138, 0, 4, 1, 106, 2, 97, 3, 121, 84, 0, 1, 108, 115, 2, 105, 0, 4, 1,
-			100, 2, 105, 100, 3, 141, 84, 0, 1, 102, 2, 111, 0, 1, 108, 102, 2, 111, 0, 1, 115, 2, 105, 111, 0, 1, 115, 2, 111, 0,
-			8, 2, 111, 110, 0, 105, 8, 2, 17, 65, 3, 141, 84, 124, 0, 7, 6, 98, 101, 0, 114, 108, 105, 110, 8, 3, 2, 71, 131, 55,
-			124, 50, 0, 103, 8, 2, 17, 65, 110, 25, 3, 71, 2, 124, 81, 0, 8, 2, 97, 116, 105, 17, 67, 3, 71, 2, 132, 0, 116, 97,
-			8, 3, 71, 4, 132, 47, 13, 0, 116, 97, 5, 3, 8, 3, 71, 4, 141, 47, 13, 0, 8, 2, 28, 19, 12, 3, 71, 13, 0, 110,
-			101, 118, 111, 3, 71, 13, 50, 122, 84, 13, 0, 4, 2, 103, 17, 65, 3, 71, 113, 0, 2, 103, 114, 0, 2, 108, 97, 116, 0, 2,
-			108, 105, 101, 0, 2, 109, 117, 0, 2, 113, 117, 0, 2, 115, 101, 101, 0, 2, 115, 105, 101, 0, 2, 116, 114, 97, 121, 0, 8, 2,
-			17, 67, 17, 65, 0, 8, 2, 99, 108, 0, 8, 2, 100, 114, 97, 0, 8, 2, 102, 0, 8, 2, 107, 110, 0, 8, 2, 108, 108, 105,
-			103, 0, 8, 2, 115, 17, 67, 0, 8, 2, 115, 116, 111, 0, 8, 2, 116, 17, 67, 0, 8, 2, 119, 0, 104, 97, 2, 118, 3, 71,
-			113, 107, 141, 0, 114, 8, 2, 115, 3, 71, 114, 0, 4, 8, 2, 17, 67, 11, 3, 71, 122, 0, 8, 2, 99, 107, 0, 8, 2, 99,
-			113, 0, 8, 2, 100, 17, 67, 0, 8, 2, 103, 103, 0, 8, 2, 108, 17, 67, 0, 8, 2, 110, 97, 0, 8, 2, 115, 116, 105, 97,
-			0, 8, 2, 116, 17, 66, 0, 8, 2, 116, 104, 0, 8, 2, 118, 17, 65, 0, 8, 2, 122, 17, 65, 0, 110, 101, 8, 3, 71, 122,
-			50, 124, 0, 108, 97, 114, 117, 115, 8, 3, 71, 122, 55, 13, 34, 6, 137, 89, 0, 108, 108, 121, 3, 71, 122, 55, 113, 0, 4, 100,
-			1, 69, 2, 32, 3, 71, 122, 72, 0, 100, 1, 100, 2, 32, 0, 100, 1, 104, 2, 32, 0, 100, 1, 114, 101, 2, 32, 0, 100, 1,
-			116, 2, 32, 0, 115, 116, 115, 101, 8, 2, 108, 108, 3, 71, 122, 89, 47, 89, 6, 122, 0, 4, 1, 121, 97, 109, 2, 32, 3, 71,
-			132, 0, 8, 2, 98, 0, 97, 2, 110, 0, 8, 2, 111, 3, 71, 141, 0, 7, 6, 98, 105, 0, 8, 2, 17, 67, 21, 21, 3, 2,
-			71, 140, 0, 4, 2, 115, 101, 99, 3, 71, 2, 140, 0, 8, 2, 97, 110, 110, 117, 0, 8, 2, 101, 110, 0, 111, 8, 2, 21, 14,
-			128, 132, 131, 3, 71, 4, 140, 139, 0, 2, 110, 111, 99, 3, 71, 113, 0, 4, 2, 98, 108, 105, 3, 71, 124, 0, 2, 98, 117, 0,
-			2, 99, 107, 0, 2, 108, 105, 111, 0, 2, 108, 108, 105, 111, 0, 2, 110, 109, 0, 2, 111, 17, 67, 32, 0, 2, 111, 117, 115, 0,
-			2, 115, 99, 0, 2, 115, 109, 0, 2, 122, 12, 0, 8, 2, 17, 67, 11, 0, 8, 2, 103, 12, 0, 8, 2, 108, 17, 67, 0, 8,
-			2, 110, 103, 0, 8, 2, 115, 104, 0, 8, 2, 116, 17, 67, 0, 103, 104, 1, 110, 101, 0, 4, 114, 105, 8, 3, 71, 124, 34, 124,
-			0, 114, 121, 8, 0, 8, 2, 116, 117, 109, 101, 110, 3, 71, 125, 0, 114, 2, 17, 67, 3, 71, 131, 0, 4, 2, 115, 113, 3, 71,
-			132, 0, 2, 115, 116, 114, 0, 4, 1, 21, 2, 111, 115, 17, 65, 3, 71, 140, 0, 1, 111, 2, 116, 17, 65, 0, 2, 99, 121, 99,
-			0, 2, 107, 101, 114, 0, 2, 110, 97, 114, 121, 0, 2, 110, 100, 0, 2, 111, 108, 0, 2, 111, 116, 105, 99, 0, 8, 2, 32, 0,
-			8, 2, 111, 18, 75, 12, 0, 103, 104, 2, 116, 0, 4, 111, 2, 110, 105, 3, 71, 140, 6, 126, 0, 111, 2, 112, 115, 0, 114, 5,
-			5, 2, 17, 67, 3, 71, 150, 0, 7, 6, 99, 104, 0, 101, 109, 101, 110, 116, 2, 32, 3, 8, 91, 65, 154, 0, 4, 1, 21, 2,
-			105, 97, 3, 49, 0, 1, 97, 2, 105, 108, 0, 1, 97, 114, 98, 0, 1, 97, 114, 116, 0, 1, 97, 122, 0, 1, 101, 109, 2, 97,
-			0, 1, 101, 116, 2, 25, 0, 1, 105, 109, 2, 97, 0, 1, 110, 111, 114, 98, 0, 1, 111, 2, 32, 0, 1, 114, 97, 2, 105, 118,
-			101, 0, 1, 114, 97, 17, 67, 21, 21, 2, 32, 0, 1, 114, 111, 2, 105, 0, 2, 97, 101, 0, 2, 97, 115, 109, 0, 2, 101, 109,
-			0, 2, 105, 99, 32, 0, 2, 105, 111, 0, 2, 105, 115, 17, 67, 0, 2, 111, 108, 0, 2, 111, 110, 100, 0, 2, 111, 114, 17, 65,
-			0, 2, 111, 114, 100, 0, 2, 114, 0, 8, 2, 18, 66, 17, 71, 0, 8, 97, 116, 0, 8, 101, 2, 111, 0, 8, 101, 116, 0, 8,
-			114, 97, 2, 17, 65, 0, 8, 114, 97, 2, 97, 0, 8, 114, 111, 2, 101, 115, 0, 101, 109, 111, 8, 2, 21, 3, 49, 4, 132, 65,
-			139, 0, 4, 97, 2, 114, 105, 115, 3, 49, 13, 0, 97, 8, 2, 114, 121, 98, 0, 114, 121, 2, 115, 97, 3, 49, 34, 124, 0, 108,
-			111, 114, 111, 3, 49, 55, 4, 136, 34, 139, 0, 108, 111, 2, 114, 3, 49, 55, 136, 0, 111, 105, 114, 3, 49, 58, 148, 0, 105, 8,
-			2, 114, 111, 112, 17, 65, 3, 49, 113, 0, 111, 114, 1, 110, 97, 3, 49, 114, 0, 105, 8, 114, 97, 2, 21, 3, 49, 124, 0, 105,
-			2, 114, 17, 65, 3, 49, 140, 0, 97, 8, 2, 111, 3, 49, 141, 0, 97, 111, 115, 3, 49, 141, 126, 89, 0, 4, 3, 76, 0, 1,
-			97, 116, 0, 1, 111, 111, 2, 32, 0, 1, 114, 97, 2, 101, 114, 0, 2, 111, 114, 101, 32, 0, 8, 2, 17, 71, 0, 8, 2, 111,
-			108, 97, 0, 97, 114, 105, 111, 2, 116, 3, 76, 35, 34, 144, 0, 4, 1, 97, 17, 67, 2, 101, 3, 91, 0, 1, 97, 116, 115, 0,
+			3, 114, 72, 0, 4, 8, 2, 111, 115, 3, 119, 34, 0, 8, 2, 111, 117, 0, 114, 8, 2, 21, 0, 97, 99, 104, 8, 3, 119, 34,
+			35, 49, 0, 111, 109, 2, 97, 116, 3, 119, 34, 136, 65, 0, 121, 5, 3, 1, 110, 111, 105, 2, 32, 3, 121, 34, 2, 37, 0, 4,
+			1, 117, 113, 2, 114, 3, 124, 0, 1, 119, 2, 114, 0, 1, 119, 2, 114, 0, 4, 1, 117, 113, 2, 97, 3, 124, 34, 0, 119, 1,
+			119, 2, 105, 0, 2, 17, 65, 3, 126, 34, 0, 4, 3, 127, 0, 1, 104, 2, 100, 121, 32, 0, 1, 116, 105, 117, 103, 2, 32, 0,
+			1, 116, 111, 101, 2, 100, 32, 0, 1, 116, 115, 2, 32, 0, 2, 32, 0, 8, 116, 2, 32, 0, 39, 2, 110, 116, 0, 114, 2, 32,
+			0, 114, 101, 2, 32, 0, 4, 99, 104, 1, 21, 2, 105, 3, 127, 49, 0, 99, 104, 1, 21, 2, 121, 0, 99, 104, 8, 2, 17, 65,
+			17, 65, 0, 99, 104, 8, 2, 101, 116, 0, 99, 104, 97, 105, 8, 3, 127, 49, 6, 138, 122, 0, 99, 104, 105, 8, 2, 21, 3, 127,
+			49, 122, 0, 99, 104, 105, 118, 8, 2, 12, 3, 127, 49, 137, 84, 0, 108, 105, 97, 8, 112, 3, 127, 55, 13, 0, 114, 101, 100, 2,
+			32, 3, 127, 72, 0, 99, 104, 8, 2, 101, 114, 3, 127, 76, 0, 114, 105, 110, 103, 2, 32, 3, 127, 113, 68, 0, 4, 1, 104, 119,
+			3, 132, 0, 1, 117, 113, 2, 116, 0, 1, 119, 0, 1, 119, 97, 2, 100, 0, 1, 119, 101, 114, 2, 100, 0, 1, 119, 104, 99, 2,
+			100, 0, 1, 119, 115, 2, 100, 0, 8, 119, 2, 100, 0, 1, 119, 111, 116, 2, 100, 3, 133, 0, 4, 1, 109, 116, 104, 3, 140, 0,
+			1, 112, 2, 105, 110, 0, 1, 119, 2, 105, 0, 1, 119, 2, 121, 0, 2, 105, 111, 117, 115, 0, 8, 109, 2, 121, 0, 101, 0, 101,
+			1, 99, 2, 17, 67, 21, 0, 101, 1, 119, 0, 4, 1, 112, 2, 101, 110, 116, 3, 140, 34, 0, 1, 117, 2, 105, 115, 104, 0, 1,
+			118, 2, 105, 17, 65, 0, 121, 1, 17, 67, 29, 2, 32, 3, 140, 34, 2, 37, 0, 101, 115, 116, 2, 32, 3, 140, 34, 13, 89, 47,
+			0, 4, 121, 5, 3, 1, 17, 65, 21, 21, 2, 32, 3, 140, 34, 37, 0, 121, 5, 3, 1, 17, 67, 17, 65, 21, 21, 2, 32, 0,
+			101, 97, 3, 140, 34, 141, 0, 105, 110, 103, 3, 140, 44, 113, 68, 0, 7, 6, 97, 115, 0, 2, 101, 120, 117, 3, 2, 138, 89, 0,
+			2, 105, 118, 101, 3, 6, 138, 89, 0, 4, 115, 1, 99, 10, 2, 32, 3, 13, 89, 0, 115, 1, 108, 116, 10, 2, 32, 0, 115, 1,
+			112, 109, 111, 2, 32, 0, 115, 1, 112, 115, 10, 2, 32, 0, 115, 1, 114, 114, 0, 115, 1, 118, 10, 2, 32, 0, 115, 1, 118, 10,
+			2, 32, 0, 4, 101, 121, 1, 10, 2, 32, 3, 13, 89, 2, 37, 0, 121, 1, 10, 2, 32, 0, 115, 2, 117, 3, 13, 91, 0, 115,
+			117, 114, 3, 13, 91, 57, 143, 0, 1, 98, 2, 105, 108, 3, 35, 88, 0, 4, 1, 109, 2, 111, 110, 105, 3, 35, 89, 0, 1, 116,
+			110, 2, 116, 0, 2, 112, 104, 97, 0, 2, 112, 105, 0, 2, 116, 104, 109, 0, 2, 116, 114, 97, 108, 0, 2, 116, 114, 111, 0, 2,
+			121, 109, 112, 0, 8, 2, 101, 0, 8, 2, 105, 110, 0, 8, 2, 112, 101, 0, 115, 1, 108, 99, 2, 105, 17, 67, 0, 115, 1, 112,
+			2, 111, 0, 115, 2, 97, 103, 0, 115, 2, 101, 116, 0, 115, 2, 111, 110, 0, 115, 2, 121, 109, 0, 115, 8, 2, 104, 0, 99, 105,
+			105, 3, 35, 89, 49, 122, 0, 104, 8, 3, 35, 91, 0, 115, 105, 111, 110, 1, 112, 3, 35, 91, 13, 50, 0, 99, 105, 1, 102, 2,
+			115, 3, 35, 91, 122, 0, 2, 115, 105, 115, 116, 3, 119, 0, 4, 1, 10, 2, 116, 121, 32, 3, 119, 89, 0, 2, 116, 101, 114, 110,
+			0, 2, 116, 114, 111, 108, 111, 103, 0, 2, 116, 114, 111, 110, 111, 0, 8, 2, 21, 0, 8, 2, 112, 101, 114, 0, 8, 2, 112, 105,
+			114, 101, 0, 115, 2, 117, 109, 112, 0, 115, 8, 2, 21, 0, 4, 104, 8, 2, 97, 3, 119, 91, 0, 104, 8, 2, 111, 0, 4, 1,
+			17, 67, 2, 112, 3, 120, 89, 0, 1, 17, 67, 2, 112, 101, 0, 1, 17, 67, 2, 116, 0, 2, 107, 0, 2, 116, 101, 114, 0, 8,
+			2, 107, 0, 115, 1, 108, 17, 67, 0, 115, 1, 112, 0, 115, 1, 114, 17, 67, 0, 1, 104, 99, 114, 117, 112, 2, 101, 3, 122, 89,
+			0, 1, 119, 2, 112, 3, 124, 89, 0, 4, 101, 1, 104, 112, 2, 32, 3, 138, 88, 0, 101, 1, 114, 2, 32, 0, 4, 1, 98, 2,
+			105, 3, 138, 89, 0, 1, 104, 2, 116, 101, 0, 1, 106, 2, 111, 110, 0, 1, 109, 2, 111, 110, 0, 1, 112, 2, 116, 101, 32, 0,
+			1, 116, 2, 116, 0, 8, 2, 111, 0, 116, 1, 119, 2, 101, 13, 3, 138, 89, 47, 0, 105, 97, 5, 3, 8, 3, 138, 90, 13, 0,
+			99, 1, 102, 2, 105, 97, 3, 138, 91, 0, 105, 97, 8, 3, 138, 91, 13, 0, 7, 6, 97, 116, 0, 111, 8, 2, 110, 97, 3, 2,
+			138, 47, 136, 0, 4, 1, 21, 2, 114, 97, 32, 3, 6, 126, 47, 0, 2, 117, 109, 0, 105, 1, 21, 2, 32, 3, 6, 126, 47, 122,
+			0, 4, 1, 21, 2, 111, 114, 32, 3, 6, 138, 47, 0, 1, 100, 2, 117, 109, 32, 0, 1, 108, 117, 2, 111, 114, 121, 0, 1, 109,
+			2, 117, 109, 32, 0, 2, 105, 109, 32, 0, 114, 105, 99, 101, 115, 3, 6, 138, 47, 34, 113, 89, 129, 88, 0, 114, 105, 120, 3, 6,
+			138, 47, 34, 122, 49, 89, 0, 105, 2, 97, 29, 3, 6, 138, 91, 0, 114, 121, 1, 21, 2, 32, 3, 8, 13, 47, 34, 122, 0, 104,
+			1, 21, 2, 105, 115, 3, 8, 13, 87, 0, 104, 121, 1, 10, 3, 8, 13, 87, 113, 0, 4, 1, 10, 2, 101, 101, 114, 32, 3, 13,
+			47, 0, 1, 10, 2, 105, 118, 101, 0, 1, 109, 2, 101, 114, 105, 0, 1, 109, 105, 108, 99, 2, 101, 0, 1, 110, 101, 115, 0, 1,
+			112, 2, 101, 114, 110, 0, 1, 116, 115, 2, 105, 115, 116, 0, 8, 115, 114, 101, 118, 0, 101, 1, 10, 2, 32, 28, 18, 0, 101, 1,
+			108, 97, 112, 2, 32, 0, 101, 1, 108, 117, 99, 97, 109, 2, 32, 0, 101, 1, 108, 117, 115, 110, 111, 99, 2, 32, 0, 101, 1, 109,
+			105, 116, 2, 32, 0, 101, 1, 110, 105, 100, 2, 32, 0, 101, 1, 110, 111, 105, 2, 32, 0, 101, 1, 114, 101, 100, 2, 32, 0, 101,
+			1, 114, 101, 112, 109, 2, 32, 0, 101, 8, 114, 97, 112, 101, 115, 32, 116, 105, 2, 32, 0, 111, 114, 121, 1, 10, 3, 13, 47, 114,
+			34, 37, 0, 105, 115, 109, 1, 10, 3, 13, 47, 122, 88, 13, 65, 0, 101, 114, 1, 109, 2, 110, 3, 13, 47, 128, 0, 111, 114, 121,
+			5, 3, 1, 10, 3, 13, 47, 149, 34, 37, 0, 117, 114, 101, 1, 108, 2, 32, 3, 13, 76, 114, 0, 4, 117, 114, 1, 99, 3, 13,
+			76, 143, 0, 117, 114, 1, 109, 0, 4, 1, 99, 2, 101, 17, 67, 3, 35, 47, 0, 1, 103, 2, 101, 97, 117, 0, 1, 108, 112, 2,
+			101, 97, 0, 1, 109, 2, 101, 114, 0, 1, 114, 116, 115, 2, 101, 103, 0, 8, 107, 2, 101, 114, 0, 116, 2, 105, 99, 0, 116, 2,
+			105, 116, 0, 101, 8, 115, 2, 108, 108, 3, 35, 47, 13, 0, 117, 115, 5, 3, 1, 116, 115, 3, 35, 47, 13, 89, 0, 101, 103, 111,
+			1, 99, 2, 114, 105, 99, 3, 35, 47, 122, 81, 6, 124, 0, 101, 103, 111, 1, 99, 3, 35, 47, 122, 81, 13, 0, 105, 8, 99, 2,
+			111, 110, 3, 35, 47, 137, 0, 104, 2, 108, 111, 110, 3, 35, 87, 0, 4, 1, 114, 102, 2, 101, 114, 110, 3, 119, 47, 0, 2, 111,
+			109, 105, 0, 8, 2, 108, 97, 110, 0, 8, 2, 114, 111, 99, 0, 116, 8, 2, 21, 0, 114, 111, 108, 1, 112, 3, 119, 47, 34, 136,
+			55, 0, 111, 8, 2, 110, 3, 119, 47, 136, 0, 4, 104, 1, 98, 3, 120, 87, 0, 104, 1, 112, 0, 1, 119, 2, 116, 3, 124, 47,
+			0, 104, 1, 102, 2, 101, 114, 3, 126, 86, 0, 4, 1, 21, 21, 2, 111, 114, 32, 3, 138, 47, 0, 1, 99, 2, 101, 114, 32, 0,
+			1, 102, 2, 97, 108, 0, 1, 108, 98, 2, 17, 65, 0, 1, 110, 2, 105, 118, 101, 0, 2, 111, 114, 32, 0, 5, 3, 1, 112, 2,
+			114, 105, 17, 65, 0, 101, 1, 110, 111, 105, 110, 2, 32, 0, 97, 1, 100, 3, 138, 47, 13, 0, 117, 115, 1, 116, 115, 3, 138, 47,
+			13, 89, 0, 114, 111, 110, 2, 32, 3, 138, 47, 34, 13, 50, 0, 101, 115, 1, 114, 97, 112, 2, 32, 3, 138, 47, 89, 0, 101, 100,
+			1, 109, 105, 116, 2, 32, 3, 138, 47, 113, 72, 0, 111, 114, 8, 103, 3, 138, 47, 114, 0, 4, 105, 110, 103, 1, 21, 2, 12, 12,
+			32, 3, 138, 47, 122, 68, 0, 105, 110, 103, 1, 109, 105, 116, 2, 32, 0, 101, 100, 1, 21, 2, 12, 12, 32, 3, 138, 47, 122, 72,
+			0, 104, 1, 98, 2, 101, 3, 138, 86, 0, 104, 101, 100, 2, 32, 3, 138, 86, 72, 0, 104, 101, 105, 3, 138, 87, 113, 122, 0, 2,
+			105, 97, 3, 138, 91, 0, 7, 6, 97, 117, 0, 116, 111, 8, 2, 110, 3, 2, 130, 47, 124, 0, 103, 109, 101, 110, 116, 3, 2, 130,
+			81, 65, 121, 50, 47, 0, 116, 104, 101, 110, 3, 2, 130, 87, 121, 50, 0, 99, 104, 8, 3, 2, 130, 101, 0, 116, 111, 8, 2, 21,
+			14, 128, 132, 132, 3, 4, 130, 47, 136, 0, 4, 1, 21, 2, 114, 105, 3, 6, 130, 0, 1, 115, 2, 114, 117, 115, 32, 0, 100, 2,
+			32, 3, 6, 130, 72, 0, 8, 2, 110, 116, 3, 120, 0, 4, 103, 104, 1, 108, 3, 120, 83, 0, 103, 104, 1, 114, 100, 0, 4, 1,
+			99, 2, 108, 105, 3, 124, 0, 5, 35, 1, 115, 2, 115, 0, 5, 35, 2, 115, 116, 114, 0, 108, 2, 116, 3, 124, 55, 0, 4, 3,
+			130, 0, 1, 110, 2, 116, 32, 0, 103, 104, 0, 103, 104, 1, 108, 115, 0, 108, 2, 107, 0, 116, 111, 2, 109, 97, 3, 130, 47, 13,
+			0, 114, 2, 32, 3, 132, 0, 4, 1, 21, 2, 116, 32, 3, 135, 0, 1, 103, 2, 115, 0, 2, 32, 0, 115, 1, 17, 67, 2, 32,
+			3, 135, 89, 0, 2, 118, 3, 136, 0, 7, 6, 97, 118, 0, 1, 108, 97, 2, 101, 114, 3, 6, 126, 84, 0, 4, 1, 99, 115, 2,
+			101, 110, 3, 35, 84, 0, 1, 100, 2, 101, 110, 0, 1, 106, 2, 101, 108, 0, 1, 108, 2, 101, 110, 0, 1, 108, 2, 105, 0, 1,
+			114, 2, 101, 108, 0, 97, 114, 2, 105, 99, 3, 35, 84, 13, 34, 0, 4, 2, 97, 105, 108, 3, 119, 84, 0, 2, 101, 110, 103, 0,
+			2, 111, 17, 65, 0, 8, 2, 101, 114, 17, 67, 0, 111, 119, 3, 119, 84, 135, 0, 4, 1, 106, 2, 97, 3, 126, 84, 0, 1, 108,
+			115, 2, 105, 0, 4, 1, 100, 2, 105, 100, 3, 138, 84, 0, 1, 102, 2, 111, 0, 1, 108, 102, 2, 111, 0, 1, 115, 2, 105, 0,
+			1, 115, 2, 111, 0, 8, 2, 111, 110, 0, 105, 8, 2, 17, 65, 3, 138, 84, 122, 0, 7, 6, 98, 101, 0, 103, 8, 2, 17, 65,
+			110, 25, 3, 71, 2, 122, 81, 0, 116, 97, 8, 3, 71, 4, 129, 47, 13, 0, 116, 97, 5, 3, 8, 3, 71, 4, 138, 47, 13, 0,
+			110, 101, 118, 111, 3, 71, 13, 50, 121, 84, 13, 0, 4, 2, 103, 17, 65, 3, 71, 113, 0, 2, 103, 114, 0, 2, 108, 97, 116, 0,
+			2, 108, 105, 101, 0, 2, 109, 117, 0, 2, 113, 117, 0, 2, 115, 101, 101, 0, 2, 115, 105, 101, 0, 2, 116, 114, 97, 121, 0, 8,
+			2, 17, 67, 17, 65, 0, 8, 2, 99, 108, 0, 8, 2, 100, 114, 97, 0, 8, 2, 102, 0, 8, 2, 108, 108, 105, 0, 8, 2, 115,
+			17, 67, 0, 8, 2, 115, 116, 111, 0, 8, 2, 116, 17, 67, 0, 8, 2, 119, 0, 104, 97, 2, 118, 3, 71, 113, 107, 138, 0, 114,
+			8, 2, 115, 3, 71, 114, 0, 4, 8, 2, 17, 67, 11, 3, 71, 121, 0, 8, 2, 99, 107, 0, 8, 2, 99, 113, 0, 8, 2, 100,
+			17, 67, 0, 8, 2, 103, 103, 0, 8, 2, 108, 17, 67, 0, 8, 2, 115, 116, 105, 97, 0, 8, 2, 116, 104, 0, 8, 2, 118, 17,
+			65, 0, 110, 101, 8, 3, 71, 121, 50, 122, 0, 4, 100, 1, 104, 2, 32, 3, 71, 121, 72, 0, 100, 1, 114, 101, 2, 32, 0, 100,
+			1, 116, 2, 32, 0, 4, 1, 121, 97, 109, 2, 32, 3, 71, 129, 0, 8, 2, 98, 0, 7, 6, 98, 105, 0, 8, 2, 17, 67, 21,
+			21, 3, 2, 71, 137, 0, 4, 2, 115, 101, 99, 3, 71, 2, 137, 0, 8, 2, 101, 110, 0, 111, 8, 2, 21, 14, 128, 132, 131, 3,
+			71, 4, 137, 136, 0, 2, 110, 111, 99, 3, 71, 113, 0, 4, 2, 98, 108, 105, 3, 71, 122, 0, 2, 98, 117, 0, 2, 99, 107, 0,
+			2, 103, 12, 0, 2, 108, 105, 111, 0, 2, 110, 109, 0, 2, 111, 17, 67, 32, 0, 2, 111, 117, 115, 0, 2, 114, 105, 0, 2, 114,
+			121, 0, 2, 115, 99, 0, 2, 115, 104, 0, 2, 115, 109, 0, 2, 122, 12, 0, 8, 2, 17, 67, 11, 0, 8, 2, 108, 17, 67, 0,
+			8, 2, 110, 103, 0, 8, 2, 116, 17, 67, 0, 8, 2, 116, 117, 109, 101, 110, 3, 71, 123, 0, 114, 2, 17, 67, 3, 71, 128, 0,
+			4, 2, 115, 113, 3, 71, 129, 0, 2, 115, 116, 114, 0, 4, 1, 21, 2, 111, 115, 17, 65, 3, 71, 137, 0, 1, 111, 2, 116, 17,
+			65, 0, 2, 99, 121, 99, 0, 2, 107, 101, 114, 0, 2, 110, 97, 114, 121, 0, 2, 110, 100, 0, 2, 111, 116, 105, 99, 0, 8, 2,
+			32, 0, 8, 2, 111, 18, 75, 12, 0, 103, 104, 2, 116, 0, 4, 111, 2, 110, 105, 3, 71, 137, 6, 124, 0, 111, 2, 112, 115, 0,
+			114, 5, 5, 2, 17, 67, 3, 71, 147, 0, 7, 6, 99, 104, 0, 101, 109, 101, 110, 116, 2, 32, 3, 8, 91, 65, 151, 0, 4, 1,
+			21, 2, 105, 97, 3, 49, 0, 1, 97, 2, 105, 108, 0, 1, 97, 114, 98, 0, 1, 97, 114, 116, 0, 1, 101, 2, 111, 0, 1, 101,
+			109, 2, 97, 0, 1, 101, 116, 2, 25, 0, 1, 105, 109, 2, 97, 0, 1, 110, 111, 114, 98, 0, 1, 111, 2, 32, 0, 1, 114, 97,
+			2, 105, 118, 101, 0, 1, 114, 97, 17, 67, 21, 21, 2, 32, 0, 1, 114, 111, 2, 105, 0, 2, 97, 101, 0, 2, 97, 115, 109, 0,
+			2, 101, 109, 0, 2, 105, 99, 32, 0, 2, 105, 111, 0, 2, 105, 114, 17, 65, 0, 2, 105, 115, 17, 67, 0, 2, 111, 108, 0, 2,
+			111, 110, 100, 0, 2, 111, 114, 17, 65, 0, 2, 111, 114, 100, 0, 2, 114, 0, 8, 2, 18, 66, 17, 71, 0, 8, 97, 116, 0, 8,
+			114, 97, 2, 17, 65, 0, 8, 114, 97, 2, 97, 0, 8, 114, 111, 2, 101, 115, 0, 4, 97, 2, 114, 105, 115, 3, 49, 13, 0, 111,
+			114, 1, 110, 97, 0, 114, 121, 2, 115, 97, 3, 49, 34, 122, 0, 108, 111, 114, 111, 3, 49, 55, 4, 133, 34, 136, 0, 108, 111, 2,
+			114, 3, 49, 55, 133, 0, 111, 105, 114, 3, 49, 58, 145, 0, 105, 8, 114, 97, 2, 21, 3, 49, 122, 0, 97, 8, 2, 111, 3, 49,
+			138, 0, 97, 111, 115, 3, 49, 138, 124, 89, 0, 4, 3, 76, 0, 1, 97, 116, 0, 1, 111, 111, 2, 32, 0, 1, 114, 97, 2, 101,
+			114, 0, 2, 111, 114, 101, 32, 0, 8, 2, 17, 71, 0, 8, 2, 111, 108, 97, 0, 101, 1, 97, 98, 3, 76, 13, 0, 97, 114, 105,
+			111, 2, 116, 3, 76, 35, 34, 141, 0, 4, 1, 97, 17, 67, 2, 101, 3, 91, 0, 1, 97, 116, 115, 0, 1, 101, 2, 101, 108, 0,
 			1, 101, 114, 99, 0, 1, 105, 102, 0, 1, 105, 108, 99, 0, 1, 105, 110, 0, 1, 111, 99, 105, 0, 1, 111, 108, 99, 0, 2, 97,
 			115, 115, 0, 2, 97, 116, 101, 97, 0, 2, 101, 102, 0, 2, 101, 118, 0, 2, 105, 111, 32, 0, 2, 117, 114, 101, 0, 2, 117, 116,
-			101, 0, 2, 195, 169, 12, 0, 8, 2, 97, 110, 100, 17, 65, 0, 8, 2, 97, 114, 116, 114, 101, 0, 8, 111, 2, 101, 0, 105, 111,
-			110, 3, 91, 13, 50, 0, 97, 112, 101, 114, 111, 110, 3, 91, 35, 48, 114, 139, 50, 0, 105, 99, 97, 2, 103, 3, 91, 113, 49, 121,
-			0, 105, 99, 97, 2, 110, 3, 91, 113, 49, 141, 0, 4, 97, 117, 2, 102, 3, 91, 139, 0, 97, 117, 2, 118, 0, 101, 122, 3, 91,
-			141, 0, 7, 6, 99, 111, 0, 109, 112, 8, 2, 116, 114, 3, 49, 2, 126, 65, 0, 4, 8, 2, 109, 21, 3, 49, 2, 127, 0, 8,
-			2, 110, 102, 105, 100, 101, 0, 8, 2, 110, 115, 117, 108, 116, 0, 4, 110, 8, 2, 21, 3, 49, 2, 127, 50, 0, 110, 8, 2, 118,
-			105, 0, 110, 116, 114, 97, 99, 2, 116, 3, 49, 2, 127, 50, 47, 34, 35, 49, 0, 110, 116, 114, 97, 114, 3, 49, 2, 127, 50, 47,
-			34, 143, 0, 4, 2, 104, 97, 98, 3, 49, 2, 139, 0, 8, 2, 97, 103, 0, 97, 2, 108, 101, 115, 3, 49, 2, 139, 13, 0, 4,
-			2, 109, 112, 117, 116, 97, 3, 49, 4, 126, 0, 8, 2, 110, 116, 114, 111, 118, 0, 114, 114, 101, 115, 112, 111, 3, 49, 4, 126, 34,
-			124, 89, 48, 6, 126, 0, 110, 116, 114, 97, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 49, 4, 126, 50, 47, 34, 13, 0, 110, 100,
-			101, 8, 2, 115, 99, 3, 49, 4, 126, 50, 72, 113, 0, 4, 8, 2, 99, 111, 110, 3, 49, 4, 139, 0, 8, 2, 100, 101, 112, 101,
-			110, 14, 128, 132, 130, 0, 8, 2, 101, 17, 67, 14, 128, 132, 130, 0, 8, 2, 99, 104, 97, 105, 114, 3, 49, 4, 139, 6, 0, 117,
-			110, 116, 101, 114, 8, 2, 21, 14, 128, 132, 135, 3, 49, 6, 138, 50, 47, 114, 0, 112, 111, 108, 121, 8, 3, 49, 6, 139, 48, 4,
-			126, 55, 124, 0, 4, 2, 108, 108, 97, 98, 3, 49, 13, 0, 2, 108, 108, 97, 112, 0, 2, 108, 108, 97, 116, 0, 2, 108, 108, 101,
-			99, 0, 2, 108, 108, 105, 100, 0, 2, 108, 108, 105, 115, 0, 2, 108, 108, 117, 0, 2, 108, 111, 115, 115, 0, 2, 109, 109, 101, 110,
-			115, 0, 2, 110, 115, 101, 99, 117, 0, 2, 110, 116, 114, 111, 108, 12, 0, 2, 114, 114, 101, 99, 116, 0, 2, 114, 114, 111, 0, 2,
-			114, 114, 117, 112, 0, 8, 2, 109, 112, 108, 0, 8, 2, 110, 100, 111, 108, 0, 8, 2, 110, 100, 111, 110, 0, 8, 2, 110, 118, 101,
-			110, 17, 65, 0, 110, 115, 105, 100, 101, 114, 3, 49, 13, 50, 89, 124, 72, 114, 0, 110, 110, 105, 118, 3, 49, 13, 50, 140, 84, 0,
-			108, 108, 101, 2, 103, 105, 3, 49, 13, 55, 132, 0, 108, 108, 111, 2, 113, 117, 105, 17, 65, 3, 49, 13, 55, 139, 0, 4, 109, 109,
-			117, 110, 2, 97, 3, 49, 13, 65, 57, 137, 50, 0, 109, 109, 117, 110, 2, 105, 0, 109, 101, 2, 100, 105, 3, 49, 13, 65, 132, 0,
-			4, 2, 109, 98, 97, 3, 49, 126, 0, 2, 109, 98, 105, 110, 97, 0, 2, 109, 101, 100, 121, 0, 2, 109, 109, 97, 32, 0, 2, 109,
-			109, 97, 110, 100, 97, 0, 2, 109, 109, 101, 110, 0, 2, 109, 109, 101, 114, 99, 101, 0, 2, 109, 109, 111, 100, 111, 114, 0, 2, 109,
-			109, 117, 116, 97, 0, 2, 109, 112, 101, 110, 115, 0, 2, 109, 112, 101, 114, 0, 2, 109, 112, 105, 108, 97, 0, 2, 109, 112, 108, 101,
-			109, 0, 2, 109, 112, 108, 101, 120, 32, 0, 2, 109, 112, 108, 105, 99, 97, 0, 2, 109, 112, 108, 105, 109, 0, 2, 109, 112, 111, 115,
-			116, 0, 2, 109, 112, 111, 117, 0, 2, 109, 112, 114, 101, 104, 101, 110, 0, 2, 109, 112, 114, 111, 109, 0, 2, 110, 115, 101, 99, 0,
-			2, 110, 115, 111, 110, 0, 2, 110, 115, 116, 97, 110, 0, 2, 110, 116, 105, 110, 101, 0, 8, 2, 103, 0, 8, 2, 109, 99, 0, 8,
-			2, 109, 105, 0, 8, 2, 109, 114, 0, 8, 2, 110, 99, 101, 112, 116, 32, 0, 8, 2, 110, 99, 105, 111, 117, 115, 0, 8, 2, 110,
-			99, 114, 101, 116, 0, 8, 2, 110, 100, 105, 109, 0, 8, 2, 110, 100, 111, 0, 8, 2, 110, 100, 117, 105, 116, 0, 8, 2, 110, 102,
-			101, 114, 101, 110, 0, 8, 2, 110, 102, 105, 100, 0, 8, 2, 110, 102, 105, 115, 0, 8, 2, 110, 102, 108, 117, 0, 8, 2, 110, 103,
-			114, 101, 0, 8, 2, 110, 105, 0, 8, 2, 110, 106, 117, 103, 0, 8, 2, 110, 113, 117, 101, 0, 8, 2, 110, 115, 99, 0, 8, 2,
-			110, 115, 111, 108, 101, 0, 8, 2, 110, 115, 116, 97, 98, 108, 0, 8, 2, 110, 115, 116, 105, 112, 0, 8, 2, 110, 115, 116, 105, 116,
-			117, 116, 0, 8, 2, 110, 115, 117, 108, 0, 8, 2, 110, 116, 97, 99, 116, 0, 8, 2, 110, 116, 111, 117, 114, 0, 8, 2, 110, 118,
-			111, 121, 0, 8, 2, 110, 119, 0, 8, 2, 114, 114, 0, 8, 2, 115, 109, 0, 112, 121, 8, 3, 49, 126, 48, 124, 0, 110, 110, 111,
-			105, 8, 2, 115, 3, 49, 126, 50, 13, 0, 110, 103, 114, 101, 115, 115, 5, 3, 8, 3, 49, 126, 50, 81, 34, 13, 89, 0, 110, 103,
-			114, 117, 3, 49, 126, 50, 81, 34, 137, 0, 110, 102, 105, 8, 2, 100, 101, 110, 3, 49, 126, 50, 83, 124, 0, 110, 118, 97, 2, 108,
-			3, 49, 126, 50, 84, 13, 0, 110, 99, 101, 8, 2, 110, 116, 114, 97, 3, 49, 126, 50, 89, 13, 0, 110, 115, 101, 114, 2, 118, 97,
-			116, 105, 111, 3, 49, 126, 50, 89, 114, 0, 110, 115, 101, 8, 2, 113, 3, 49, 126, 50, 89, 124, 0, 109, 109, 111, 110, 3, 49, 126,
-			65, 13, 50, 0, 109, 112, 97, 114, 97, 98, 3, 49, 126, 65, 48, 13, 34, 13, 71, 0, 109, 112, 101, 2, 116, 17, 65, 110, 3, 49,
-			126, 65, 48, 124, 0, 109, 112, 111, 5, 3, 2, 115, 116, 3, 49, 126, 65, 48, 139, 0, 109, 109, 117, 110, 2, 105, 115, 3, 49, 126,
-			65, 57, 137, 50, 0, 103, 110, 111, 8, 3, 49, 126, 81, 50, 13, 0, 4, 2, 109, 112, 111, 115, 105, 116, 3, 49, 127, 0, 5, 35,
-			8, 2, 114, 18, 68, 0, 8, 2, 110, 116, 101, 109, 112, 108, 0, 8, 2, 110, 116, 114, 17, 65, 0, 8, 2, 110, 116, 114, 105, 98,
-			0, 114, 111, 2, 108, 108, 3, 49, 127, 34, 126, 0, 110, 8, 2, 107, 3, 49, 127, 50, 0, 110, 116, 114, 97, 115, 116, 8, 3, 49,
-			127, 50, 47, 34, 120, 89, 47, 0, 109, 109, 117, 110, 3, 49, 127, 65, 57, 137, 50, 0, 4, 2, 109, 101, 32, 3, 49, 129, 0, 2,
-			109, 112, 97, 110, 121, 0, 2, 109, 112, 97, 115, 115, 32, 0, 8, 2, 109, 102, 0, 8, 2, 110, 106, 117, 114, 0, 109, 101, 2, 98,
-			3, 49, 129, 65, 0, 109, 102, 111, 114, 116, 97, 98, 3, 49, 129, 65, 83, 47, 13, 71, 0, 109, 102, 111, 114, 2, 116, 3, 49, 129,
-			65, 83, 114, 0, 109, 105, 110, 103, 3, 49, 129, 65, 113, 68, 0, 4, 8, 2, 102, 111, 117, 110, 3, 49, 139, 0, 8, 2, 103, 101,
-			110, 0, 8, 2, 108, 111, 99, 0, 8, 2, 109, 97, 0, 8, 2, 112, 101, 114, 112, 14, 128, 132, 130, 0, 8, 2, 112, 114, 111, 99,
-			14, 128, 132, 130, 0, 97, 2, 108, 105, 116, 3, 49, 139, 13, 0, 115, 116, 97, 114, 8, 3, 49, 139, 89, 47, 130, 0, 101, 8, 2,
-			108, 3, 89, 132, 0, 7, 6, 100, 101, 0, 8, 2, 104, 121, 100, 3, 4, 72, 132, 0, 4, 2, 97, 114, 99, 3, 72, 2, 132, 0,
-			2, 102, 108, 97, 116, 0, 2, 112, 101, 114, 0, 2, 112, 111, 108, 0, 2, 112, 111, 112, 0, 2, 114, 101, 103, 0, 2, 116, 111, 120,
-			0, 2, 116, 114, 97, 105, 0, 2, 118, 97, 108, 0, 8, 2, 97, 99, 116, 0, 8, 2, 97, 110, 105, 109, 0, 8, 2, 97, 117, 116,
-			104, 0, 8, 2, 101, 109, 112, 0, 8, 2, 109, 105, 108, 105, 116, 0, 8, 2, 111, 0, 8, 2, 116, 104, 0, 99, 97, 102, 102, 101,
-			105, 8, 3, 72, 2, 132, 49, 35, 83, 124, 0, 110, 105, 2, 116, 114, 105, 3, 72, 2, 132, 50, 140, 0, 4, 115, 2, 101, 103, 3,
-			72, 2, 132, 89, 0, 115, 2, 101, 110, 0, 115, 2, 117, 108, 0, 115, 116, 97, 2, 98, 3, 72, 2, 132, 89, 47, 141, 0, 4, 8,
-			2, 99, 111, 109, 3, 72, 4, 132, 0, 8, 2, 99, 111, 110, 0, 8, 2, 102, 114, 97, 103, 14, 128, 132, 130, 0, 8, 2, 114, 101,
-			115, 116, 0, 115, 101, 2, 108, 3, 72, 4, 132, 89, 113, 0, 4, 1, 108, 2, 32, 3, 72, 13, 0, 2, 118, 105, 108, 108, 0, 4,
-			2, 99, 111, 114, 117, 3, 72, 113, 0, 2, 100, 117, 0, 2, 109, 97, 0, 2, 109, 101, 110, 0, 2, 109, 105, 115, 101, 0, 2, 109,
-			111, 99, 114, 97, 99, 0, 2, 109, 111, 99, 114, 97, 116, 105, 18, 71, 0, 2, 109, 111, 114, 0, 2, 109, 111, 116, 0, 2, 109, 117,
-			114, 0, 2, 114, 105, 17, 67, 0, 2, 114, 111, 103, 97, 116, 111, 0, 8, 2, 98, 97, 0, 8, 2, 102, 21, 0, 8, 2, 103, 21,
-			0, 8, 2, 106, 0, 8, 2, 108, 21, 0, 8, 2, 110, 111, 0, 8, 2, 110, 117, 0, 8, 2, 112, 21, 0, 8, 2, 114, 97, 105,
-			0, 8, 2, 116, 21, 0, 8, 2, 118, 17, 65, 0, 116, 101, 115, 116, 3, 72, 113, 47, 122, 89, 47, 0, 116, 101, 114, 3, 72, 113,
-			47, 131, 0, 116, 101, 114, 2, 105, 3, 72, 113, 47, 144, 34, 0, 110, 105, 8, 2, 97, 3, 72, 113, 50, 140, 0, 109, 101, 97, 3,
-			72, 113, 65, 6, 132, 0, 109, 111, 2, 98, 105, 3, 72, 113, 65, 139, 0, 4, 115, 8, 2, 101, 114, 3, 72, 113, 88, 0, 115, 8,
-			2, 105, 0, 115, 115, 8, 2, 101, 114, 0, 4, 115, 2, 105, 115, 3, 72, 113, 89, 0, 115, 8, 2, 21, 0, 4, 2, 99, 105, 98,
-			3, 72, 122, 0, 2, 99, 105, 108, 0, 2, 99, 105, 109, 0, 2, 99, 111, 114, 0, 2, 99, 114, 101, 109, 0, 2, 102, 101, 114, 101,
-			110, 0, 2, 102, 105, 110, 105, 116, 0, 2, 102, 116, 0, 2, 108, 97, 119, 0, 2, 108, 101, 103, 0, 2, 108, 105, 99, 97, 0, 2,
-			108, 118, 12, 0, 2, 109, 97, 103, 111, 103, 0, 2, 112, 114, 101, 99, 97, 0, 2, 112, 116, 0, 2, 112, 117, 116, 0, 2, 114, 17,
-			65, 17, 67, 97, 116, 105, 111, 0, 2, 114, 101, 108, 0, 2, 116, 111, 110, 0, 2, 116, 114, 105, 0, 2, 118, 105, 108, 0, 2, 118,
-			111, 110, 0, 8, 2, 99, 107, 0, 8, 2, 108, 17, 67, 0, 8, 2, 114, 17, 65, 29, 0, 8, 2, 116, 17, 66, 0, 112, 111, 2,
-			115, 105, 116, 105, 3, 72, 122, 48, 13, 0, 99, 97, 2, 100, 101, 110, 3, 72, 122, 49, 13, 0, 108, 117, 2, 103, 3, 72, 122, 55,
-			57, 137, 0, 118, 97, 115, 8, 3, 72, 122, 84, 13, 89, 0, 115, 2, 105, 103, 110, 97, 3, 72, 122, 88, 0, 4, 115, 2, 101, 99,
-			3, 72, 122, 89, 0, 115, 2, 105, 99, 0, 115, 2, 111, 108, 0, 115, 2, 112, 111, 116, 0, 115, 8, 2, 104, 0, 115, 8, 2, 107,
-			0, 115, 8, 2, 112, 101, 114, 97, 116, 0, 115, 116, 105, 3, 72, 122, 89, 47, 124, 0, 4, 8, 2, 98, 105, 108, 3, 72, 125, 0,
-			8, 2, 99, 21, 0, 4, 2, 99, 101, 110, 99, 3, 72, 132, 0, 2, 99, 114, 101, 97, 115, 0, 2, 116, 97, 105, 108, 0, 2, 116,
-			111, 117, 0, 2, 118, 105, 97, 0, 2, 118, 105, 111, 0, 109, 8, 2, 111, 110, 105, 3, 72, 132, 65, 0, 98, 117, 2, 103, 3, 72,
-			132, 71, 4, 129, 0, 8, 2, 105, 115, 116, 3, 72, 141, 0, 7, 6, 100, 105, 0, 4, 2, 115, 98, 101, 21, 3, 4, 72, 124, 0,
-			2, 115, 99, 111, 110, 0, 2, 115, 111, 98, 0, 2, 115, 112, 111, 115, 115, 0, 2, 115, 112, 114, 111, 112, 0, 8, 2, 115, 114, 101,
-			0, 4, 8, 2, 115, 101, 14, 128, 132, 131, 3, 4, 72, 124, 89, 0, 115, 8, 2, 97, 21, 14, 128, 132, 131, 0, 115, 8, 2, 105,
-			110, 14, 128, 132, 131, 0, 4, 2, 103, 114, 101, 115, 3, 72, 2, 140, 0, 2, 109, 101, 110, 115, 0, 2, 111, 120, 0, 2, 118, 101,
-			114, 17, 67, 0, 2, 118, 101, 115, 116, 0, 2, 118, 117, 108, 0, 8, 2, 104, 21, 0, 103, 101, 2, 115, 116, 3, 72, 2, 140, 75,
-			122, 0, 4, 2, 99, 116, 97, 116, 3, 72, 113, 0, 2, 102, 102, 114, 97, 99, 0, 2, 102, 102, 117, 115, 0, 2, 109, 105, 110, 0,
-			2, 115, 97, 115, 116, 0, 2, 115, 99, 111, 118, 0, 2, 115, 105, 110, 116, 0, 2, 118, 105, 100, 0, 2, 118, 105, 110, 0, 2, 118,
-			105, 115, 0, 2, 118, 111, 114, 99, 0, 5, 3, 2, 109, 101, 110, 115, 0, 8, 2, 115, 21, 0, 8, 2, 115, 104, 101, 118, 12, 0,
-			115, 8, 2, 104, 17, 65, 14, 128, 132, 131, 3, 72, 113, 89, 0, 4, 2, 115, 99, 32, 3, 72, 124, 0, 2, 115, 99, 111, 32, 0,
-			2, 115, 99, 111, 114, 100, 32, 0, 2, 115, 99, 111, 116, 0, 2, 115, 99, 111, 117, 110, 116, 0, 2, 115, 104, 17, 67, 0, 2, 115,
-			104, 32, 0, 2, 115, 107, 0, 2, 115, 111, 108, 0, 2, 115, 112, 111, 115, 105, 116, 0, 2, 115, 115, 105, 100, 0, 2, 115, 115, 105,
-			112, 0, 2, 115, 115, 111, 108, 117, 0, 2, 115, 115, 111, 110, 0, 2, 115, 116, 97, 110, 0, 2, 115, 116, 105, 108, 108, 97, 116, 101,
-			0, 2, 115, 116, 114, 105, 0, 108, 105, 2, 103, 3, 72, 124, 55, 124, 0, 118, 105, 2, 100, 101, 110, 3, 72, 124, 84, 124, 0, 115,
-			99, 105, 112, 108, 105, 3, 72, 124, 89, 124, 48, 55, 124, 0, 4, 2, 99, 104, 114, 111, 3, 72, 140, 0, 2, 115, 115, 101, 99, 116,
-			0, 2, 115, 117, 108, 0, 8, 2, 111, 110, 18, 67, 0, 97, 8, 2, 110, 3, 72, 140, 6, 35, 0, 97, 103, 111, 8, 3, 72, 140,
-			6, 35, 81, 13, 0, 97, 8, 3, 72, 140, 13, 0, 99, 104, 111, 2, 116, 3, 72, 140, 49, 6, 126, 0, 108, 117, 2, 116, 3, 72,
-			140, 55, 6, 137, 0, 97, 8, 2, 108, 3, 72, 147, 0, 97, 109, 111, 110, 100, 8, 3, 72, 147, 65, 13, 50, 72, 0, 7, 6, 101,
-			97, 0, 4, 1, 104, 2, 100, 109, 17, 65, 21, 3, 2, 122, 0, 1, 104, 2, 100, 113, 0, 1, 114, 2, 32, 3, 6, 144, 0, 110,
-			1, 112, 2, 32, 3, 6, 144, 50, 0, 1, 21, 2, 116, 105, 118, 101, 3, 8, 144, 0, 4, 1, 10, 2, 98, 105, 108, 105, 3, 13,
-			0, 1, 10, 2, 98, 108, 0, 98, 108, 121, 1, 10, 3, 13, 71, 55, 2, 124, 0, 117, 2, 116, 3, 57, 137, 0, 4, 1, 17, 67,
-			2, 108, 116, 3, 122, 0, 1, 17, 67, 2, 118, 101, 110, 0, 1, 100, 2, 102, 0, 1, 100, 2, 116, 104, 0, 1, 100, 110, 101, 2,
-			118, 0, 1, 102, 2, 116, 104, 0, 1, 104, 2, 116, 104, 101, 114, 0, 1, 106, 2, 108, 111, 117, 0, 1, 108, 2, 100, 101, 110, 0,
-			1, 114, 2, 100, 105, 101, 100, 0, 1, 114, 2, 100, 105, 108, 121, 0, 1, 114, 2, 100, 121, 0, 1, 114, 98, 2, 100, 0, 1, 114,
-			98, 2, 115, 0, 1, 114, 98, 2, 116, 104, 0, 1, 114, 104, 116, 2, 100, 0, 1, 114, 104, 116, 2, 116, 0, 1, 114, 112, 115, 2,
-			100, 0, 1, 114, 116, 2, 99, 104, 101, 114, 0, 1, 114, 116, 2, 100, 0, 1, 116, 115, 2, 100, 0, 1, 119, 115, 2, 116, 0, 1,
-			122, 2, 108, 111, 0, 8, 104, 2, 118, 105, 0, 8, 108, 2, 109, 105, 0, 8, 114, 100, 2, 100, 0, 112, 111, 1, 119, 3, 122, 48,
-			13, 0, 109, 2, 116, 32, 3, 122, 65, 48, 0, 4, 100, 1, 100, 3, 122, 72, 0, 100, 1, 104, 0, 100, 101, 100, 8, 108, 3, 122,
-			72, 113, 72, 0, 118, 121, 1, 104, 3, 122, 84, 37, 0, 4, 116, 104, 1, 108, 3, 122, 86, 0, 116, 104, 1, 119, 0, 4, 115, 2,
-			97, 110, 3, 122, 88, 0, 115, 2, 101, 110, 0, 115, 117, 114, 3, 122, 90, 114, 0, 4, 114, 1, 104, 2, 107, 3, 130, 0, 114, 1,
-			104, 2, 116, 0, 114, 1, 104, 2, 116, 104, 0, 4, 114, 1, 104, 2, 100, 3, 131, 0, 114, 1, 104, 2, 115, 0, 114, 1, 108, 2,
-			110, 0, 114, 1, 112, 2, 108, 0, 114, 1, 115, 2, 99, 104, 0, 114, 1, 121, 2, 110, 0, 114, 2, 116, 104, 0, 114, 8, 2, 108,
-			0, 114, 8, 2, 110, 0, 4, 3, 132, 0, 1, 17, 67, 29, 2, 110, 32, 0, 1, 102, 2, 108, 116, 0, 1, 104, 2, 118, 0, 1,
-			109, 2, 108, 116, 0, 1, 115, 17, 67, 2, 32, 0, 2, 110, 100, 101, 114, 3, 132, 6, 35, 0, 1, 114, 99, 2, 116, 3, 132, 6,
-			141, 0, 1, 104, 116, 2, 116, 114, 105, 3, 132, 35, 0, 100, 109, 101, 1, 114, 3, 132, 72, 65, 132, 0, 103, 101, 114, 3, 132, 81,
-			114, 0, 116, 104, 1, 114, 98, 2, 101, 3, 132, 86, 0, 115, 1, 102, 2, 97, 110, 3, 132, 88, 0, 115, 111, 2, 110, 3, 132, 88,
-			13, 0, 115, 101, 2, 21, 3, 132, 89, 0, 4, 117, 3, 139, 0, 117, 120, 0, 4, 1, 114, 98, 2, 107, 3, 141, 0, 1, 114, 103,
-			2, 116, 0, 1, 116, 115, 2, 107, 0, 4, 114, 1, 98, 3, 143, 0, 114, 1, 116, 2, 17, 65, 0, 114, 1, 119, 0, 114, 1, 119,
-			115, 0, 4, 1, 21, 2, 32, 3, 144, 0, 1, 104, 116, 2, 116, 0, 8, 98, 2, 116, 114, 105, 0, 110, 2, 32, 3, 144, 50, 0,
-			108, 1, 10, 2, 32, 3, 144, 55, 0, 4, 114, 3, 145, 0, 114, 1, 98, 2, 100, 0, 114, 1, 119, 2, 121, 0, 7, 6, 101, 100,
-			0, 4, 1, 21, 2, 105, 101, 110, 3, 6, 132, 72, 0, 1, 99, 2, 101, 32, 0, 1, 104, 2, 114, 97, 0, 1, 104, 2, 114, 97,
-			108, 0, 1, 104, 2, 114, 111, 110, 0, 1, 115, 114, 2, 101, 0, 117, 114, 1, 21, 3, 6, 132, 75, 114, 0, 4, 1, 10, 2, 121,
-			3, 13, 72, 0, 1, 21, 2, 116, 104, 32, 0, 4, 1, 99, 21, 2, 32, 14, 128, 155, 130, 3, 47, 0, 1, 102, 21, 2, 32, 14,
+			101, 0, 2, 195, 169, 12, 0, 8, 2, 97, 110, 100, 17, 65, 0, 8, 2, 97, 114, 116, 114, 101, 0, 8, 111, 2, 101, 0, 101, 1,
+			105, 2, 32, 24, 0, 105, 111, 110, 3, 91, 13, 50, 0, 97, 112, 2, 101, 114, 111, 3, 91, 35, 48, 0, 105, 99, 97, 2, 103, 3,
+			91, 113, 49, 126, 0, 105, 99, 97, 2, 110, 3, 91, 113, 49, 138, 0, 4, 97, 117, 2, 102, 3, 91, 136, 0, 97, 117, 2, 118, 0,
+			101, 122, 3, 91, 138, 0, 7, 6, 99, 111, 0, 4, 2, 110, 115, 116, 105, 116, 117, 17, 65, 3, 49, 2, 124, 0, 8, 2, 110, 102,
+			105, 100, 101, 0, 8, 2, 110, 115, 117, 108, 116, 0, 110, 8, 2, 21, 3, 49, 2, 124, 50, 0, 110, 116, 114, 97, 99, 2, 116, 3,
+			49, 2, 124, 50, 47, 34, 35, 49, 0, 110, 116, 114, 97, 114, 3, 49, 2, 124, 50, 47, 34, 140, 0, 110, 115, 101, 114, 2, 118, 3,
+			49, 2, 124, 50, 89, 128, 0, 109, 112, 8, 2, 116, 114, 3, 49, 2, 124, 65, 0, 4, 2, 104, 97, 98, 3, 49, 2, 136, 0, 8,
+			2, 97, 103, 0, 97, 2, 108, 101, 115, 3, 49, 2, 136, 13, 0, 4, 2, 109, 112, 117, 116, 97, 3, 49, 4, 124, 0, 8, 2, 110,
+			116, 114, 111, 118, 0, 114, 114, 101, 115, 112, 111, 3, 49, 4, 124, 34, 122, 89, 48, 6, 124, 0, 110, 116, 114, 97, 8, 2, 17, 67,
+			21, 14, 128, 132, 134, 3, 49, 4, 124, 50, 47, 34, 13, 0, 110, 100, 101, 8, 2, 115, 99, 3, 49, 4, 124, 50, 72, 113, 0, 8,
+			2, 101, 17, 67, 14, 128, 132, 130, 3, 49, 4, 136, 0, 117, 110, 116, 101, 114, 8, 2, 21, 14, 128, 132, 135, 3, 49, 6, 135, 50,
+			47, 13, 0, 112, 111, 108, 121, 8, 3, 49, 6, 136, 48, 4, 124, 55, 122, 0, 4, 2, 108, 108, 97, 98, 3, 49, 13, 0, 2, 108,
+			108, 97, 112, 0, 2, 108, 108, 97, 116, 0, 2, 108, 108, 101, 99, 0, 2, 108, 108, 105, 100, 0, 2, 108, 108, 105, 115, 0, 2, 108,
+			108, 117, 0, 2, 108, 111, 115, 115, 0, 2, 109, 109, 101, 110, 115, 0, 2, 110, 115, 101, 99, 117, 0, 2, 110, 116, 114, 111, 108, 12,
+			0, 2, 114, 114, 101, 99, 116, 0, 2, 114, 114, 111, 0, 2, 114, 114, 117, 112, 0, 8, 2, 109, 21, 0, 8, 2, 109, 112, 108, 0,
+			8, 2, 110, 99, 105, 0, 8, 2, 110, 102, 105, 103, 117, 0, 8, 2, 110, 110, 101, 99, 116, 0, 8, 2, 110, 110, 101, 120, 0, 8,
+			2, 110, 115, 105, 0, 8, 2, 110, 118, 101, 110, 17, 65, 0, 8, 2, 110, 118, 105, 0, 110, 115, 105, 100, 101, 114, 3, 49, 13, 50,
+			89, 122, 72, 114, 0, 110, 110, 105, 118, 3, 49, 13, 50, 137, 84, 0, 108, 108, 101, 2, 103, 105, 3, 49, 13, 55, 129, 0, 4, 109,
+			109, 117, 110, 2, 97, 3, 49, 13, 65, 57, 134, 50, 0, 109, 109, 117, 110, 2, 105, 99, 0, 109, 101, 2, 100, 105, 3, 49, 13, 65,
+			129, 0, 4, 2, 109, 98, 97, 3, 49, 124, 0, 2, 109, 98, 105, 110, 97, 0, 2, 109, 101, 100, 121, 0, 2, 109, 109, 97, 32, 0,
+			2, 109, 109, 97, 110, 100, 97, 0, 2, 109, 109, 101, 110, 0, 2, 109, 109, 101, 114, 99, 101, 0, 2, 109, 109, 111, 100, 111, 114, 0,
+			2, 109, 109, 117, 116, 97, 0, 2, 109, 112, 101, 110, 115, 0, 2, 109, 112, 101, 114, 0, 2, 109, 112, 105, 108, 97, 0, 2, 109, 112,
+			108, 101, 109, 0, 2, 109, 112, 108, 101, 120, 32, 0, 2, 109, 112, 108, 105, 99, 97, 0, 2, 109, 112, 108, 105, 109, 0, 2, 109, 112,
+			111, 115, 105, 116, 0, 2, 109, 112, 111, 115, 116, 0, 2, 109, 112, 111, 117, 0, 2, 109, 112, 114, 101, 104, 101, 110, 0, 2, 109, 112,
+			114, 111, 109, 0, 2, 110, 115, 101, 99, 0, 2, 110, 115, 111, 110, 0, 2, 110, 115, 116, 97, 110, 0, 2, 110, 115, 116, 105, 116, 0,
+			2, 110, 116, 105, 110, 101, 0, 8, 2, 109, 105, 0, 8, 2, 109, 114, 0, 8, 2, 110, 99, 101, 112, 116, 32, 0, 8, 2, 110, 99,
+			114, 101, 116, 0, 8, 2, 110, 100, 105, 109, 0, 8, 2, 110, 100, 111, 109, 0, 8, 2, 110, 100, 111, 114, 0, 8, 2, 110, 100, 117,
+			105, 116, 0, 8, 2, 110, 102, 101, 114, 101, 110, 0, 8, 2, 110, 102, 105, 100, 0, 8, 2, 110, 102, 105, 115, 0, 8, 2, 110, 102,
+			108, 117, 0, 8, 2, 110, 103, 114, 101, 0, 8, 2, 110, 105, 0, 8, 2, 110, 106, 117, 103, 0, 8, 2, 110, 113, 117, 101, 0, 8,
+			2, 110, 115, 99, 0, 8, 2, 110, 115, 111, 108, 101, 0, 8, 2, 110, 115, 116, 97, 98, 108, 0, 8, 2, 110, 115, 116, 105, 112, 0,
+			8, 2, 110, 115, 117, 108, 0, 8, 2, 110, 116, 97, 99, 116, 0, 8, 2, 110, 116, 101, 109, 112, 108, 0, 8, 2, 110, 116, 101, 120,
+			116, 0, 8, 2, 110, 116, 111, 117, 114, 0, 8, 2, 110, 116, 114, 17, 65, 0, 8, 2, 110, 116, 114, 105, 98, 0, 8, 2, 110, 118,
+			111, 121, 0, 8, 2, 110, 119, 0, 8, 2, 114, 114, 105, 0, 114, 111, 2, 108, 108, 3, 49, 124, 34, 124, 0, 112, 121, 8, 3, 49,
+			124, 48, 122, 0, 110, 110, 111, 105, 8, 2, 115, 3, 49, 124, 50, 13, 0, 110, 116, 114, 97, 115, 116, 8, 3, 49, 124, 50, 47, 34,
+			120, 89, 47, 0, 110, 103, 114, 101, 115, 115, 5, 3, 8, 3, 49, 124, 50, 81, 34, 13, 89, 0, 110, 103, 114, 117, 3, 49, 124, 50,
+			81, 34, 134, 0, 110, 102, 105, 8, 2, 100, 101, 110, 3, 49, 124, 50, 83, 122, 0, 110, 118, 97, 2, 108, 3, 49, 124, 50, 84, 13,
+			0, 4, 110, 99, 101, 8, 2, 110, 116, 114, 97, 3, 49, 124, 50, 89, 13, 0, 110, 115, 101, 114, 2, 118, 97, 116, 105, 111, 0, 110,
+			115, 101, 8, 2, 113, 3, 49, 124, 50, 89, 122, 0, 109, 109, 111, 110, 3, 49, 124, 65, 13, 50, 0, 109, 112, 97, 114, 97, 98, 3,
+			49, 124, 65, 48, 13, 34, 13, 71, 0, 109, 112, 101, 2, 116, 17, 65, 110, 3, 49, 124, 65, 48, 122, 0, 109, 109, 117, 110, 3, 49,
+			124, 65, 57, 134, 50, 0, 4, 2, 109, 101, 32, 3, 49, 125, 0, 2, 109, 112, 97, 110, 121, 0, 2, 109, 112, 97, 115, 115, 32, 0,
+			8, 2, 109, 102, 0, 8, 2, 110, 106, 117, 114, 0, 109, 101, 2, 98, 3, 49, 125, 65, 0, 109, 102, 111, 114, 116, 97, 98, 3, 49,
+			125, 65, 83, 47, 13, 71, 0, 109, 102, 111, 114, 2, 116, 3, 49, 125, 65, 83, 114, 0, 109, 105, 110, 103, 3, 49, 125, 65, 113, 68,
+			0, 8, 2, 109, 97, 3, 49, 136, 0, 97, 2, 108, 105, 116, 3, 49, 136, 13, 0, 115, 116, 97, 114, 8, 3, 49, 136, 89, 47, 127,
+			0, 101, 8, 2, 108, 3, 89, 129, 0, 7, 6, 100, 101, 0, 8, 2, 104, 121, 100, 3, 4, 72, 129, 0, 4, 2, 97, 99, 116, 3,
+			72, 2, 129, 0, 2, 97, 114, 99, 0, 2, 102, 108, 97, 116, 0, 2, 112, 101, 114, 0, 2, 112, 111, 108, 0, 2, 112, 111, 112, 0,
+			2, 114, 101, 103, 0, 2, 116, 111, 120, 0, 2, 116, 114, 97, 105, 0, 2, 118, 97, 108, 0, 8, 2, 101, 109, 112, 0, 8, 2, 111,
+			0, 8, 2, 116, 104, 0, 110, 105, 2, 116, 114, 105, 3, 72, 2, 129, 50, 137, 0, 4, 115, 2, 101, 103, 3, 72, 2, 129, 89, 0,
+			115, 2, 101, 110, 0, 115, 2, 117, 108, 0, 115, 116, 97, 2, 98, 3, 72, 2, 129, 89, 47, 138, 0, 115, 101, 2, 108, 3, 72, 4,
+			129, 89, 113, 0, 4, 2, 99, 111, 114, 117, 3, 72, 113, 0, 2, 100, 117, 0, 2, 109, 97, 0, 2, 109, 101, 110, 0, 2, 109, 105,
+			115, 101, 0, 2, 109, 111, 99, 114, 97, 99, 0, 2, 109, 111, 114, 0, 2, 109, 111, 116, 0, 2, 109, 117, 114, 0, 2, 114, 105, 17,
+			67, 0, 2, 114, 111, 103, 0, 8, 2, 98, 97, 0, 8, 2, 102, 21, 0, 8, 2, 103, 21, 0, 8, 2, 106, 0, 8, 2, 108, 21,
+			0, 8, 2, 110, 111, 0, 8, 2, 112, 21, 0, 8, 2, 114, 97, 105, 0, 8, 2, 116, 21, 0, 8, 2, 118, 17, 65, 0, 116, 101,
+			115, 116, 3, 72, 113, 47, 121, 89, 47, 0, 116, 101, 114, 3, 72, 113, 47, 128, 0, 116, 101, 114, 2, 105, 3, 72, 113, 47, 141, 34,
+			0, 110, 105, 8, 2, 97, 3, 72, 113, 50, 137, 0, 109, 101, 97, 3, 72, 113, 65, 6, 129, 0, 109, 111, 2, 98, 105, 3, 72, 113,
+			65, 136, 0, 4, 115, 8, 2, 101, 114, 3, 72, 113, 88, 0, 115, 8, 2, 105, 0, 115, 115, 8, 0, 4, 115, 2, 105, 115, 3, 72,
+			113, 89, 0, 115, 8, 2, 21, 0, 4, 2, 99, 105, 98, 3, 72, 121, 0, 2, 99, 105, 108, 0, 2, 99, 105, 109, 0, 2, 99, 107,
+			0, 2, 99, 111, 114, 0, 2, 99, 114, 101, 109, 0, 2, 102, 101, 114, 101, 110, 0, 2, 102, 105, 110, 105, 116, 0, 2, 102, 116, 0,
+			2, 108, 97, 119, 0, 2, 108, 101, 103, 0, 2, 108, 105, 99, 97, 0, 2, 108, 112, 104, 0, 2, 108, 118, 12, 0, 2, 109, 97, 103,
+			111, 103, 0, 2, 112, 114, 101, 99, 97, 0, 2, 112, 116, 0, 2, 112, 117, 116, 0, 2, 114, 17, 65, 17, 67, 97, 116, 105, 111, 0,
+			2, 114, 101, 108, 0, 2, 116, 111, 110, 0, 2, 116, 114, 105, 0, 2, 118, 105, 108, 0, 2, 118, 111, 110, 0, 8, 2, 108, 108, 0,
+			8, 2, 108, 116, 0, 115, 2, 99, 97, 0, 112, 111, 2, 115, 105, 116, 105, 3, 72, 121, 48, 13, 0, 99, 97, 2, 100, 101, 110, 3,
+			72, 121, 49, 13, 0, 108, 117, 2, 103, 3, 72, 121, 55, 57, 134, 0, 118, 97, 115, 8, 3, 72, 121, 84, 13, 89, 0, 115, 2, 105,
+			103, 110, 97, 3, 72, 121, 88, 0, 4, 115, 2, 101, 99, 3, 72, 121, 89, 0, 115, 2, 105, 99, 0, 115, 2, 111, 108, 0, 115, 2,
+			112, 111, 116, 0, 115, 8, 2, 104, 0, 115, 8, 2, 107, 0, 115, 116, 105, 3, 72, 121, 89, 47, 122, 0, 4, 8, 2, 98, 105, 108,
+			3, 72, 123, 0, 8, 2, 99, 21, 0, 4, 2, 99, 101, 110, 99, 3, 72, 129, 0, 2, 99, 111, 109, 0, 2, 99, 114, 101, 97, 115,
+			0, 2, 116, 97, 105, 108, 0, 2, 116, 111, 117, 0, 2, 118, 105, 97, 0, 2, 118, 105, 111, 0, 109, 8, 2, 111, 110, 105, 3, 72,
+			129, 65, 0, 98, 117, 2, 103, 3, 72, 129, 71, 4, 125, 0, 7, 6, 100, 105, 0, 4, 2, 115, 98, 101, 21, 3, 4, 72, 122, 0,
+			2, 115, 99, 111, 110, 0, 2, 115, 111, 98, 0, 2, 115, 112, 111, 115, 115, 0, 2, 115, 112, 114, 111, 112, 0, 8, 2, 115, 97, 21,
+			0, 8, 2, 115, 114, 101, 0, 4, 8, 2, 115, 101, 14, 128, 132, 131, 3, 4, 72, 122, 89, 0, 115, 8, 2, 105, 110, 14, 128, 132,
+			131, 0, 115, 97, 8, 2, 112, 3, 4, 72, 122, 89, 13, 0, 4, 2, 103, 114, 101, 115, 3, 72, 2, 137, 0, 2, 109, 101, 110, 115,
+			0, 2, 111, 120, 0, 2, 118, 101, 114, 17, 67, 0, 2, 118, 101, 115, 116, 0, 2, 118, 117, 108, 0, 8, 2, 104, 21, 0, 103, 101,
+			2, 115, 116, 3, 72, 2, 137, 75, 121, 0, 4, 2, 99, 116, 97, 116, 3, 72, 113, 0, 2, 102, 102, 114, 97, 99, 0, 2, 102, 102,
+			117, 115, 0, 2, 109, 105, 110, 0, 2, 115, 97, 115, 116, 0, 2, 115, 99, 111, 118, 0, 2, 115, 105, 110, 116, 0, 2, 118, 105, 100,
+			0, 2, 118, 105, 110, 0, 2, 118, 105, 115, 0, 2, 118, 111, 114, 99, 0, 8, 2, 115, 21, 0, 8, 2, 115, 104, 101, 118, 12, 0,
+			115, 8, 2, 104, 17, 65, 3, 72, 113, 89, 0, 4, 2, 115, 99, 32, 3, 72, 122, 0, 2, 115, 99, 111, 32, 0, 2, 115, 99, 111,
+			114, 100, 32, 0, 2, 115, 99, 111, 116, 0, 2, 115, 99, 111, 117, 110, 116, 0, 2, 115, 104, 17, 67, 0, 2, 115, 104, 32, 0, 2,
+			115, 107, 0, 2, 115, 111, 108, 0, 2, 115, 112, 111, 115, 105, 116, 0, 2, 115, 115, 105, 100, 0, 2, 115, 115, 105, 112, 0, 2, 115,
+			115, 111, 108, 117, 0, 2, 115, 115, 111, 110, 0, 2, 115, 116, 97, 110, 0, 2, 115, 116, 105, 108, 108, 97, 116, 101, 0, 2, 115, 116,
+			114, 105, 0, 108, 105, 2, 103, 3, 72, 122, 55, 122, 0, 118, 105, 2, 100, 101, 110, 3, 72, 122, 84, 122, 0, 115, 99, 105, 112, 108,
+			105, 3, 72, 122, 89, 122, 48, 55, 122, 0, 4, 2, 99, 104, 114, 111, 3, 72, 137, 0, 2, 115, 115, 101, 99, 116, 0, 2, 115, 117,
+			108, 0, 4, 97, 8, 2, 103, 111, 110, 3, 72, 137, 6, 35, 0, 97, 8, 2, 110, 0, 97, 8, 3, 72, 137, 13, 0, 99, 104, 111,
+			2, 116, 3, 72, 137, 49, 6, 124, 0, 108, 117, 2, 116, 3, 72, 137, 55, 6, 134, 0, 97, 8, 2, 108, 3, 72, 144, 0, 7, 6,
+			101, 97, 0, 4, 1, 104, 2, 100, 109, 17, 65, 21, 3, 2, 121, 0, 1, 104, 2, 100, 113, 0, 1, 114, 2, 32, 3, 6, 141, 0,
+			110, 1, 112, 2, 32, 3, 6, 141, 50, 0, 1, 21, 2, 116, 105, 118, 101, 3, 8, 141, 0, 4, 1, 10, 2, 98, 105, 108, 105, 3,
+			13, 0, 1, 10, 2, 98, 108, 0, 98, 108, 121, 1, 10, 3, 13, 71, 55, 2, 122, 0, 117, 2, 116, 3, 57, 134, 0, 4, 1, 17,
+			67, 2, 108, 116, 3, 121, 0, 1, 17, 67, 2, 118, 101, 110, 0, 1, 100, 2, 102, 0, 1, 100, 2, 116, 104, 0, 1, 100, 110, 101,
+			2, 118, 0, 1, 102, 2, 116, 104, 0, 1, 104, 2, 116, 104, 101, 114, 0, 1, 108, 2, 100, 101, 110, 0, 1, 114, 2, 100, 105, 101,
+			100, 0, 1, 114, 2, 100, 105, 108, 121, 0, 1, 114, 2, 100, 121, 0, 1, 114, 98, 2, 100, 0, 1, 114, 98, 2, 115, 0, 1, 114,
+			98, 2, 116, 104, 0, 1, 114, 104, 116, 2, 100, 0, 1, 114, 104, 116, 2, 116, 0, 1, 114, 112, 115, 2, 100, 0, 1, 114, 116, 2,
+			99, 104, 101, 114, 0, 1, 114, 116, 2, 100, 0, 1, 116, 115, 2, 100, 0, 1, 119, 115, 2, 116, 0, 1, 122, 2, 108, 111, 0, 8,
+			104, 2, 118, 105, 0, 8, 108, 2, 109, 105, 0, 8, 114, 100, 2, 100, 0, 112, 111, 1, 119, 3, 121, 48, 13, 0, 108, 111, 117, 1,
+			106, 3, 121, 55, 13, 0, 109, 2, 116, 32, 3, 121, 65, 48, 0, 4, 100, 1, 100, 3, 121, 72, 0, 100, 1, 104, 0, 100, 101, 100,
+			8, 108, 3, 121, 72, 113, 72, 0, 118, 121, 1, 104, 3, 121, 84, 37, 0, 4, 116, 104, 1, 108, 3, 121, 86, 0, 116, 104, 1, 119,
+			0, 4, 115, 2, 97, 110, 3, 121, 88, 0, 115, 2, 101, 110, 0, 115, 117, 114, 3, 121, 90, 114, 0, 4, 114, 1, 104, 2, 107, 3,
+			127, 0, 114, 1, 104, 2, 116, 0, 114, 1, 104, 2, 116, 104, 0, 4, 114, 1, 104, 2, 100, 3, 128, 0, 114, 1, 104, 2, 115, 101,
+			0, 114, 1, 104, 101, 114, 2, 115, 0, 114, 1, 108, 2, 110, 0, 114, 1, 112, 2, 108, 0, 114, 1, 115, 2, 99, 104, 0, 114, 1,
+			121, 2, 110, 0, 114, 2, 116, 104, 0, 114, 8, 2, 108, 0, 114, 8, 2, 110, 0, 4, 3, 129, 0, 1, 17, 67, 29, 2, 110, 32,
+			0, 1, 98, 2, 110, 0, 1, 102, 2, 108, 116, 0, 1, 104, 2, 118, 0, 1, 109, 2, 108, 116, 0, 1, 115, 17, 67, 2, 32, 0,
+			2, 110, 100, 101, 114, 3, 129, 6, 35, 0, 1, 114, 99, 2, 116, 3, 129, 6, 138, 0, 1, 104, 116, 2, 116, 114, 105, 3, 129, 35,
+			0, 100, 109, 101, 1, 114, 3, 129, 72, 65, 129, 0, 103, 101, 114, 3, 129, 81, 114, 0, 116, 104, 1, 114, 98, 2, 101, 3, 129, 86,
+			0, 115, 111, 2, 110, 3, 129, 88, 13, 0, 115, 101, 2, 21, 3, 129, 89, 0, 4, 117, 3, 136, 0, 117, 120, 0, 4, 1, 114, 98,
+			2, 107, 3, 138, 0, 1, 114, 103, 2, 116, 0, 1, 116, 115, 2, 107, 0, 4, 114, 1, 98, 3, 140, 0, 114, 1, 116, 2, 17, 65,
+			0, 114, 1, 119, 0, 114, 1, 119, 115, 0, 4, 1, 21, 2, 32, 3, 141, 0, 1, 104, 116, 2, 116, 0, 8, 98, 2, 116, 114, 105,
+			0, 110, 2, 32, 3, 141, 50, 0, 108, 1, 10, 2, 32, 3, 141, 55, 0, 4, 114, 3, 142, 0, 114, 1, 98, 2, 100, 0, 114, 1,
+			119, 2, 121, 0, 7, 6, 101, 100, 0, 4, 1, 21, 2, 105, 101, 110, 3, 6, 129, 72, 0, 1, 99, 2, 101, 32, 0, 1, 104, 2,
+			114, 97, 0, 1, 104, 2, 114, 97, 108, 0, 1, 104, 2, 114, 111, 110, 0, 1, 115, 114, 2, 101, 0, 117, 114, 1, 21, 3, 6, 129,
+			75, 114, 0, 1, 10, 2, 121, 3, 13, 72, 0, 4, 1, 99, 21, 2, 32, 14, 128, 155, 130, 3, 47, 0, 1, 102, 21, 2, 32, 14,
 			128, 155, 130, 0, 1, 104, 99, 10, 2, 32, 14, 128, 139, 130, 0, 1, 104, 115, 10, 2, 32, 14, 128, 139, 130, 0, 1, 107, 21, 2,
 			32, 14, 128, 155, 130, 0, 1, 112, 21, 2, 32, 14, 128, 155, 130, 0, 1, 115, 115, 21, 2, 32, 14, 128, 152, 130, 0, 1, 120, 21,
 			2, 32, 14, 128, 138, 130, 0, 4, 1, 17, 67, 21, 2, 32, 14, 128, 155, 130, 3, 72, 0, 1, 21, 21, 2, 32, 14, 128, 155, 130,
 			0, 1, 103, 21, 2, 32, 14, 128, 138, 129, 0, 1, 105, 17, 65, 2, 32, 14, 128, 153, 130, 0, 1, 108, 99, 2, 32, 14, 128, 136,
 			129, 0, 1, 108, 101, 2, 32, 14, 128, 152, 130, 0, 1, 110, 101, 10, 2, 32, 14, 128, 136, 130, 0, 1, 114, 101, 21, 21, 2, 32,
-			14, 128, 136, 130, 0, 1, 114, 117, 101, 2, 32, 14, 128, 136, 130, 0, 1, 116, 117, 98, 101, 100, 2, 32, 14, 128, 128, 130, 0, 1,
-			121, 2, 32, 14, 128, 136, 130, 0, 2, 32, 28, 21, 12, 12, 14, 128, 128, 130, 0, 4, 1, 104, 115, 17, 67, 21, 2, 32, 3, 122,
-			72, 0, 1, 119, 121, 2, 32, 0, 5, 8, 1, 100, 21, 2, 32, 14, 128, 155, 130, 0, 5, 8, 1, 116, 21, 2, 32, 14, 128, 155,
-			130, 0, 97, 108, 1, 112, 3, 122, 72, 118, 0, 105, 98, 1, 114, 99, 3, 122, 72, 124, 71, 0, 4, 1, 114, 100, 21, 2, 32, 3,
-			124, 72, 0, 1, 114, 102, 21, 2, 32, 14, 128, 136, 130, 0, 108, 121, 2, 32, 3, 124, 72, 55, 2, 124, 0, 4, 1, 100, 21, 2,
-			32, 14, 128, 155, 130, 3, 125, 72, 0, 1, 116, 21, 2, 32, 14, 128, 155, 130, 0, 4, 1, 109, 2, 105, 97, 3, 132, 72, 0, 1,
-			109, 2, 105, 111, 0, 1, 109, 2, 105, 117, 0, 1, 112, 2, 101, 32, 0, 1, 116, 2, 105, 0, 1, 119, 115, 0, 8, 109, 2, 105,
-			97, 116, 0, 8, 112, 2, 105, 97, 116, 0, 105, 97, 116, 101, 1, 109, 21, 3, 132, 72, 113, 13, 47, 0, 105, 97, 8, 109, 3, 132,
-			72, 132, 13, 0, 7, 6, 101, 105, 0, 110, 103, 2, 32, 14, 128, 128, 131, 3, 113, 68, 0, 4, 1, 108, 2, 115, 3, 122, 0, 99,
-			101, 1, 108, 2, 115, 116, 0, 4, 1, 102, 2, 116, 32, 3, 124, 0, 1, 102, 2, 116, 101, 0, 2, 110, 97, 116, 101, 0, 4, 1,
-			21, 2, 110, 32, 3, 132, 0, 1, 21, 2, 110, 101, 0, 1, 99, 0, 2, 116, 104, 0, 2, 118, 0, 2, 122, 0, 8, 110, 0, 103,
-			104, 1, 108, 0, 103, 104, 1, 107, 3, 132, 87, 0, 110, 103, 1, 98, 3, 132, 113, 68, 0, 1, 104, 116, 2, 115, 17, 67, 3, 132,
-			124, 0, 4, 1, 104, 2, 116, 32, 3, 140, 0, 1, 108, 17, 67, 2, 110, 32, 0, 2, 109, 0, 5, 35, 2, 116, 104, 101, 114, 0,
-			8, 0, 8, 119, 0, 103, 104, 1, 104, 2, 116, 0, 114, 8, 3, 140, 34, 0, 103, 2, 101, 114, 32, 3, 140, 81, 0, 4, 115, 2,
-			101, 3, 140, 88, 0, 115, 8, 115, 2, 109, 0, 115, 116, 101, 114, 3, 140, 89, 47, 114, 0, 99, 104, 3, 140, 101, 0, 101, 114, 2,
-			32, 3, 140, 114, 0, 4, 3, 141, 0, 103, 2, 110, 0, 103, 104, 0, 103, 104, 1, 108, 115, 0, 103, 104, 8, 119, 0, 103, 104, 116,
-			104, 3, 141, 47, 87, 0, 114, 3, 143, 0, 114, 1, 119, 3, 145, 0, 7, 6, 101, 108, 0, 101, 99, 116, 8, 2, 114, 111, 108, 3,
-			2, 122, 55, 122, 49, 47, 0, 4, 8, 2, 17, 65, 3, 2, 124, 55, 0, 108, 8, 2, 105, 112, 0, 101, 99, 116, 114, 111, 8, 3,
-			2, 124, 55, 4, 122, 49, 47, 34, 139, 0, 105, 116, 8, 3, 2, 124, 55, 132, 47, 0, 4, 1, 99, 120, 2, 32, 3, 6, 122, 55,
-			0, 1, 108, 108, 97, 2, 111, 0, 1, 110, 110, 111, 115, 2, 32, 0, 1, 112, 2, 32, 0, 2, 105, 103, 105, 0, 108, 1, 110, 2,
-			32, 0, 4, 97, 2, 32, 3, 6, 122, 55, 13, 0, 108, 97, 2, 32, 0, 111, 112, 1, 118, 3, 6, 122, 55, 13, 48, 0, 108, 105,
-			1, 21, 2, 32, 3, 6, 122, 55, 124, 0, 4, 1, 10, 2, 111, 117, 115, 32, 3, 13, 55, 0, 1, 100, 2, 105, 118, 0, 1, 118,
-			2, 111, 99, 0, 108, 1, 10, 2, 111, 117, 115, 0, 4, 105, 110, 103, 1, 10, 3, 13, 55, 113, 68, 0, 108, 105, 110, 103, 1, 10,
-			0, 4, 101, 114, 1, 17, 67, 10, 2, 32, 3, 13, 55, 114, 0, 108, 101, 114, 1, 17, 67, 10, 2, 32, 0, 1, 115, 2, 101, 99,
-			116, 3, 113, 55, 0, 101, 99, 116, 8, 2, 114, 111, 99, 117, 3, 113, 55, 122, 49, 47, 0, 4, 1, 10, 2, 32, 3, 118, 0, 1,
-			10, 2, 114, 121, 32, 0, 1, 10, 2, 115, 32, 0, 1, 10, 2, 116, 121, 32, 0, 1, 112, 112, 111, 100, 0, 1, 116, 2, 112, 0,
-			108, 1, 10, 2, 32, 28, 18, 0, 108, 1, 110, 110, 2, 32, 0, 108, 1, 114, 10, 2, 32, 0, 4, 1, 98, 105, 99, 2, 32, 3,
-			122, 55, 0, 1, 108, 108, 97, 0, 5, 8, 1, 10, 2, 32, 0, 5, 8, 1, 10, 2, 115, 32, 0, 8, 2, 101, 114, 0, 8, 2,
-			105, 111, 116, 0, 111, 2, 113, 3, 122, 55, 13, 0, 115, 101, 8, 3, 122, 55, 89, 0, 108, 101, 114, 1, 116, 2, 32, 12, 3, 122,
-			55, 114, 0, 101, 99, 116, 8, 2, 114, 111, 110, 3, 122, 55, 122, 49, 47, 0, 4, 101, 8, 2, 103, 3, 122, 55, 124, 0, 101, 8,
-			2, 112, 0, 101, 8, 2, 118, 97, 0, 108, 121, 1, 106, 0, 101, 109, 8, 3, 122, 55, 124, 65, 0, 101, 1, 107, 115, 2, 116, 3,
-			122, 55, 125, 0, 1, 102, 2, 105, 120, 3, 132, 55, 0, 7, 6, 101, 109, 0, 8, 3, 2, 122, 65, 0, 1, 21, 2, 98, 101, 114,
-			3, 6, 122, 65, 0, 1, 104, 112, 115, 2, 101, 3, 6, 132, 65, 0, 4, 1, 10, 2, 32, 3, 13, 65, 0, 1, 10, 2, 97, 32,
-			0, 1, 10, 2, 121, 32, 0, 1, 104, 112, 115, 0, 1, 116, 115, 121, 0, 97, 8, 115, 2, 110, 116, 105, 3, 13, 65, 35, 0, 4,
-			2, 105, 115, 115, 105, 3, 113, 65, 0, 2, 117, 108, 115, 0, 8, 2, 97, 0, 8, 2, 101, 0, 8, 2, 105, 116, 0, 8, 2, 111,
-			0, 109, 2, 97, 110, 0, 4, 1, 116, 115, 121, 2, 105, 3, 122, 65, 0, 2, 97, 110, 97, 0, 2, 98, 108, 101, 109, 0, 2, 98,
-			114, 121, 0, 2, 101, 114, 97, 108, 0, 2, 101, 114, 121, 0, 2, 105, 0, 2, 112, 97, 116, 104, 0, 2, 112, 101, 114, 0, 2, 112,
-			104, 97, 115, 0, 2, 112, 114, 101, 115, 0, 2, 112, 116, 105, 0, 2, 112, 116, 121, 0, 2, 117, 108, 0, 109, 2, 101, 0, 111, 114,
-			114, 104, 1, 104, 3, 122, 65, 13, 34, 0, 98, 97, 2, 115, 3, 122, 65, 71, 13, 0, 4, 1, 102, 2, 97, 108, 101, 3, 132, 65,
-			0, 1, 104, 2, 111, 0, 2, 97, 105, 108, 0, 8, 2, 97, 99, 0, 7, 6, 101, 110, 0, 4, 2, 100, 101, 97, 3, 2, 122, 50,
-			0, 2, 105, 103, 109, 97, 32, 0, 2, 109, 101, 115, 0, 8, 2, 21, 0, 8, 2, 100, 97, 0, 8, 2, 100, 117, 0, 8, 2, 116,
-			105, 0, 110, 8, 0, 114, 111, 108, 3, 2, 122, 50, 34, 139, 55, 0, 114, 97, 103, 101, 3, 2, 122, 50, 34, 141, 75, 0, 116, 105,
-			99, 101, 1, 10, 3, 2, 122, 50, 47, 140, 89, 0, 108, 105, 2, 118, 3, 2, 122, 50, 55, 140, 0, 100, 111, 114, 8, 3, 2, 122,
-			50, 72, 136, 0, 99, 104, 97, 8, 2, 110, 3, 2, 122, 50, 76, 120, 0, 118, 105, 114, 111, 3, 2, 122, 50, 84, 140, 34, 13, 0,
-			116, 104, 114, 97, 2, 108, 3, 2, 122, 50, 87, 34, 133, 0, 99, 121, 2, 99, 108, 105, 3, 2, 122, 50, 89, 124, 0, 115, 104, 114,
-			105, 110, 101, 3, 2, 122, 50, 91, 34, 140, 50, 0, 2, 116, 101, 114, 116, 3, 4, 122, 50, 0, 2, 116, 114, 101, 112, 3, 4, 126,
-			50, 0, 4, 1, 21, 2, 100, 111, 32, 3, 6, 122, 50, 0, 1, 21, 2, 116, 18, 68, 32, 0, 1, 21, 2, 116, 97, 108, 0, 1,
-			21, 2, 116, 111, 117, 115, 0, 1, 21, 2, 116, 117, 0, 1, 108, 108, 105, 109, 2, 105, 97, 0, 1, 115, 101, 114, 112, 101, 2, 116,
-			0, 1, 115, 115, 2, 116, 0, 1, 116, 115, 111, 2, 115, 0, 2, 100, 17, 65, 32, 0, 2, 116, 97, 116, 105, 118, 101, 0, 2, 116,
-			105, 97, 32, 12, 0, 2, 116, 105, 97, 108, 0, 110, 2, 105, 97, 0, 116, 97, 114, 121, 1, 109, 2, 32, 3, 6, 122, 50, 47, 13,
-			34, 2, 37, 0, 107, 111, 1, 10, 2, 32, 3, 6, 122, 50, 49, 139, 0, 100, 114, 111, 110, 2, 32, 3, 6, 122, 50, 72, 34, 13,
-			50, 0, 115, 107, 2, 32, 3, 6, 122, 50, 89, 49, 0, 103, 2, 32, 3, 6, 122, 68, 0, 4, 2, 97, 32, 3, 6, 132, 50, 0,
-			2, 97, 114, 121, 0, 2, 105, 97, 0, 111, 117, 115, 1, 21, 2, 32, 3, 8, 13, 50, 13, 89, 0, 101, 115, 1, 104, 116, 21, 21,
-			2, 32, 3, 8, 13, 50, 132, 88, 0, 4, 1, 10, 2, 17, 65, 110, 99, 101, 3, 13, 50, 0, 1, 10, 2, 32, 0, 1, 10, 2,
-			99, 101, 32, 0, 1, 10, 2, 101, 100, 32, 0, 1, 10, 2, 101, 114, 32, 0, 1, 10, 2, 109, 101, 110, 116, 0, 1, 10, 2, 116,
-			32, 0, 1, 10, 2, 116, 104, 32, 0, 1, 99, 114, 101, 109, 0, 1, 103, 101, 2, 100, 0, 1, 108, 97, 99, 2, 100, 101, 114, 0,
-			1, 112, 114, 97, 99, 0, 1, 118, 18, 66, 2, 116, 32, 0, 1, 118, 21, 21, 2, 116, 32, 0, 99, 121, 1, 10, 2, 32, 3, 13,
-			50, 89, 2, 37, 0, 101, 114, 1, 103, 2, 105, 3, 13, 50, 122, 34, 0, 105, 110, 101, 1, 10, 3, 13, 50, 132, 50, 0, 4, 8,
-			2, 111, 3, 113, 50, 0, 8, 2, 111, 117, 103, 104, 0, 8, 2, 117, 0, 97, 8, 2, 109, 3, 113, 50, 35, 0, 4, 1, 10, 2,
-			99, 104, 3, 122, 50, 0, 1, 17, 67, 17, 67, 11, 2, 32, 0, 1, 99, 114, 101, 112, 2, 116, 0, 1, 99, 115, 97, 2, 116, 0,
-			1, 102, 2, 99, 101, 32, 0, 1, 107, 2, 100, 32, 0, 1, 115, 2, 100, 32, 0, 1, 115, 110, 2, 116, 0, 1, 116, 2, 100, 32,
-			0, 1, 116, 110, 2, 116, 0, 1, 116, 120, 2, 116, 0, 1, 118, 2, 116, 32, 0, 2, 100, 101, 114, 0, 2, 100, 111, 117, 115, 0,
-			2, 105, 103, 0, 2, 115, 105, 97, 0, 2, 115, 105, 103, 0, 2, 116, 101, 114, 0, 2, 116, 105, 0, 2, 116, 105, 116, 121, 0, 2,
-			116, 114, 97, 110, 0, 2, 116, 114, 105, 0, 2, 116, 114, 111, 0, 2, 116, 115, 105, 0, 2, 118, 105, 17, 65, 0, 2, 118, 111, 121,
-			0, 2, 118, 121, 0, 2, 122, 121, 0, 5, 8, 1, 10, 2, 99, 101, 32, 0, 5, 8, 1, 10, 2, 116, 32, 0, 8, 2, 100, 0,
-			8, 2, 101, 0, 8, 2, 109, 0, 8, 2, 116, 114, 121, 0, 8, 99, 115, 101, 100, 2, 116, 0, 8, 115, 101, 114, 2, 116, 0, 101,
-			109, 1, 116, 3, 122, 50, 13, 65, 0, 116, 105, 8, 99, 3, 122, 50, 47, 124, 0, 99, 108, 97, 118, 3, 122, 50, 49, 55, 141, 84,
-			0, 117, 1, 109, 3, 122, 50, 57, 137, 0, 100, 111, 119, 3, 122, 50, 72, 6, 138, 0, 100, 111, 8, 3, 122, 50, 72, 139, 0, 103,
-			105, 110, 3, 122, 50, 75, 124, 50, 0, 103, 105, 110, 103, 3, 122, 50, 75, 124, 68, 0, 101, 114, 8, 3, 122, 50, 114, 0, 103, 2,
-			116, 104, 3, 122, 68, 0, 4, 1, 10, 2, 103, 101, 114, 3, 124, 50, 0, 1, 107, 99, 105, 104, 99, 0, 103, 2, 108, 17, 65, 3,
-			124, 68, 81, 0, 4, 2, 99, 111, 114, 101, 3, 126, 50, 0, 2, 116, 114, 101, 99, 0, 4, 1, 99, 115, 2, 101, 3, 132, 50, 0,
-			1, 103, 2, 105, 17, 65, 0, 2, 97, 108, 32, 0, 8, 115, 2, 105, 0, 101, 2, 32, 0, 4, 105, 1, 108, 2, 101, 3, 132, 50,
-			124, 0, 105, 1, 118, 2, 101, 0, 101, 97, 8, 103, 3, 132, 50, 124, 6, 35, 0, 7, 6, 101, 111, 0, 1, 104, 116, 2, 21, 3,
-			2, 132, 13, 0, 8, 103, 3, 4, 132, 2, 139, 0, 1, 21, 21, 2, 32, 3, 6, 141, 139, 0, 117, 115, 1, 10, 2, 32, 3, 8,
-			144, 89, 0, 4, 110, 1, 103, 3, 13, 50, 0, 110, 1, 104, 99, 0, 1, 103, 3, 113, 126, 0, 4, 101, 115, 2, 32, 3, 113, 139,
-			88, 0, 115, 2, 32, 0, 4, 1, 103, 2, 102, 102, 3, 122, 0, 1, 106, 2, 112, 0, 4, 1, 104, 116, 2, 99, 114, 97, 99, 121,
-			3, 124, 6, 126, 0, 1, 104, 116, 2, 108, 111, 103, 105, 115, 0, 1, 104, 116, 2, 108, 111, 103, 121, 0, 4, 8, 103, 2, 103, 114,
-			3, 124, 126, 0, 8, 103, 2, 108, 111, 103, 0, 4, 1, 102, 3, 132, 0, 1, 112, 2, 112, 108, 0, 115, 105, 115, 1, 21, 3, 132,
-			6, 139, 89, 124, 89, 0, 8, 3, 132, 126, 0, 1, 29, 2, 32, 12, 3, 132, 139, 0, 114, 8, 103, 3, 135, 0, 2, 100, 32, 3,
-			138, 0, 118, 101, 114, 3, 139, 84, 13, 0, 114, 8, 3, 141, 114, 0, 4, 1, 104, 116, 2, 114, 3, 144, 0, 8, 108, 0, 8, 112,
-			2, 110, 0, 97, 2, 32, 0, 7, 6, 101, 114, 0, 109, 101, 8, 102, 2, 110, 116, 3, 2, 131, 65, 122, 0, 121, 5, 3, 1, 17,
-			67, 17, 65, 21, 21, 2, 32, 3, 4, 143, 34, 37, 0, 4, 1, 21, 2, 105, 116, 121, 3, 6, 122, 34, 0, 2, 105, 99, 32, 0,
-			2, 105, 99, 97, 108, 0, 4, 1, 21, 2, 17, 67, 97, 108, 32, 3, 6, 131, 0, 1, 21, 2, 17, 67, 105, 99, 32, 0, 1, 109,
-			2, 103, 101, 0, 1, 118, 2, 103, 101, 0, 1, 118, 2, 115, 97, 108, 0, 2, 98, 105, 97, 108, 0, 2, 103, 105, 99, 32, 0, 2,
-			110, 97, 108, 32, 0, 2, 115, 105, 111, 110, 0, 114, 101, 114, 2, 32, 3, 6, 131, 34, 114, 0, 114, 101, 100, 2, 32, 3, 6, 131,
-			72, 0, 103, 105, 110, 103, 3, 6, 131, 75, 113, 68, 0, 115, 105, 1, 21, 2, 97, 108, 3, 6, 131, 91, 0, 1, 21, 2, 111, 32,
-			3, 6, 143, 34, 0, 105, 2, 17, 65, 3, 6, 144, 34, 2, 124, 0, 101, 97, 108, 3, 6, 144, 34, 113, 118, 0, 4, 1, 104, 100,
-			97, 2, 101, 3, 6, 145, 0, 1, 104, 111, 99, 2, 101, 0, 101, 1, 99, 2, 32, 0, 4, 1, 10, 2, 111, 17, 67, 101, 32, 3,
-			8, 13, 34, 0, 1, 10, 2, 111, 117, 115, 0, 4, 105, 115, 101, 1, 10, 2, 32, 3, 8, 13, 34, 140, 88, 0, 105, 122, 101, 1,
-			10, 2, 32, 0, 121, 2, 32, 3, 13, 34, 2, 37, 0, 97, 108, 1, 21, 2, 105, 116, 121, 3, 13, 34, 6, 35, 55, 0, 105, 97,
-			2, 32, 28, 17, 3, 13, 34, 6, 144, 0, 121, 5, 3, 2, 32, 12, 12, 28, 18, 3, 13, 34, 124, 0, 4, 105, 115, 1, 10, 2,
-			97, 3, 13, 34, 140, 88, 0, 105, 122, 1, 10, 2, 97, 0, 116, 111, 1, 104, 2, 32, 3, 13, 47, 137, 0, 97, 1, 109, 97, 99,
-			3, 14, 34, 13, 0, 4, 1, 21, 2, 101, 110, 99, 101, 32, 3, 34, 0, 2, 101, 110, 116, 32, 0, 97, 109, 1, 10, 2, 101, 110,
-			116, 3, 34, 13, 65, 0, 105, 101, 115, 2, 32, 14, 128, 130, 130, 3, 88, 0, 4, 1, 99, 2, 97, 109, 3, 113, 34, 0, 8, 2,
-			17, 65, 0, 8, 104, 2, 101, 100, 0, 101, 1, 104, 2, 100, 105, 3, 113, 34, 122, 0, 101, 116, 105, 99, 97, 108, 8, 104, 3, 113,
-			34, 122, 47, 124, 49, 118, 0, 101, 1, 105, 2, 32, 3, 113, 143, 0, 4, 1, 10, 3, 114, 0, 1, 10, 2, 32, 0, 1, 10, 2,
-			110, 32, 0, 1, 10, 2, 115, 32, 0, 1, 10, 2, 116, 32, 0, 1, 17, 67, 11, 2, 32, 14, 128, 128, 131, 0, 1, 21, 21, 21,
-			2, 32, 14, 128, 145, 130, 0, 1, 98, 109, 2, 32, 0, 1, 99, 110, 2, 32, 14, 128, 128, 129, 0, 1, 99, 115, 97, 2, 116, 0,
-			1, 108, 108, 2, 32, 14, 128, 128, 130, 0, 1, 108, 108, 97, 2, 32, 0, 1, 109, 109, 2, 32, 0, 1, 110, 105, 108, 2, 32, 14,
-			128, 128, 129, 0, 1, 110, 114, 2, 32, 14, 128, 128, 130, 0, 1, 112, 2, 99, 101, 110, 0, 1, 112, 2, 104, 97, 112, 0, 1, 114,
-			101, 2, 32, 14, 128, 128, 130, 0, 1, 115, 115, 2, 32, 14, 128, 128, 130, 0, 101, 1, 10, 2, 32, 0, 101, 1, 10, 2, 32, 0,
-			4, 1, 10, 2, 17, 65, 3, 114, 34, 0, 1, 10, 2, 105, 110, 103, 0, 2, 105, 101, 0, 2, 105, 101, 32, 0, 101, 8, 99, 2,
-			98, 114, 3, 114, 34, 132, 0, 121, 2, 17, 65, 3, 114, 57, 0, 4, 115, 1, 17, 67, 11, 2, 32, 14, 128, 128, 132, 3, 114, 88,
-			0, 115, 1, 108, 108, 2, 32, 14, 128, 128, 131, 0, 115, 1, 110, 105, 108, 2, 32, 14, 128, 128, 130, 0, 115, 1, 114, 101, 2, 32,
-			14, 128, 128, 131, 0, 115, 1, 115, 115, 2, 32, 14, 128, 128, 131, 0, 5, 8, 1, 10, 2, 32, 3, 119, 0, 115, 5, 8, 1, 17,
-			67, 11, 2, 32, 14, 128, 128, 132, 3, 119, 88, 0, 2, 114, 17, 65, 3, 122, 0, 4, 1, 103, 2, 105, 97, 116, 3, 122, 34, 0,
-			2, 105, 17, 67, 0, 8, 2, 117, 100, 0, 8, 103, 2, 111, 110, 0, 8, 115, 2, 101, 110, 0, 114, 1, 17, 67, 29, 0, 114, 8,
-			2, 17, 65, 0, 114, 121, 5, 3, 1, 98, 2, 32, 3, 122, 34, 2, 124, 0, 4, 101, 8, 104, 2, 115, 3, 122, 34, 13, 0, 101,
-			8, 104, 2, 116, 0, 4, 101, 1, 99, 2, 109, 111, 110, 3, 122, 34, 113, 0, 101, 1, 104, 2, 102, 0, 121, 8, 118, 0, 101, 111,
-			1, 116, 115, 3, 122, 34, 113, 139, 0, 97, 108, 1, 103, 2, 100, 3, 122, 34, 118, 0, 1, 29, 2, 17, 65, 3, 123, 34, 0, 4,
-			5, 35, 1, 104, 2, 116, 102, 3, 130, 0, 5, 35, 8, 100, 2, 98, 0, 4, 3, 131, 0, 1, 17, 67, 29, 0, 1, 21, 2, 115,
-			121, 0, 1, 99, 2, 110, 32, 0, 1, 99, 2, 116, 0, 1, 99, 110, 111, 99, 2, 116, 32, 0, 1, 104, 2, 116, 122, 0, 1, 109,
-			2, 99, 0, 1, 115, 2, 118, 97, 110, 0, 1, 118, 2, 116, 0, 1, 118, 21, 2, 116, 32, 0, 2, 17, 66, 32, 0, 2, 32, 0,
-			2, 115, 101, 0, 2, 115, 105, 98, 0, 2, 115, 105, 102, 0, 2, 115, 105, 118, 0, 2, 116, 105, 111, 110, 0, 2, 118, 101, 0, 8,
-			0, 8, 117, 113, 0, 101, 2, 32, 0, 2, 17, 65, 3, 131, 34, 0, 109, 101, 97, 1, 112, 2, 98, 3, 131, 65, 144, 0, 4, 101,
-			1, 112, 109, 2, 32, 3, 143, 0, 114, 2, 32, 24, 0, 4, 1, 104, 2, 101, 110, 3, 144, 34, 0, 8, 17, 67, 2, 111, 32, 0,
-			8, 120, 2, 111, 0, 8, 122, 2, 111, 12, 0, 97, 1, 29, 2, 32, 3, 144, 34, 13, 0, 105, 1, 112, 120, 101, 2, 101, 110, 3,
-			144, 34, 113, 0, 105, 111, 8, 112, 2, 100, 105, 99, 3, 144, 34, 113, 6, 126, 0, 105, 111, 8, 112, 2, 100, 3, 144, 34, 113, 13,
-			0, 121, 1, 117, 113, 3, 144, 34, 124, 0, 4, 101, 1, 17, 67, 29, 2, 32, 3, 145, 0, 101, 1, 100, 2, 32, 0, 101, 1, 104,
-			112, 115, 2, 32, 0, 101, 1, 109, 2, 32, 0, 101, 1, 118, 101, 2, 32, 0, 101, 8, 104, 0, 7, 6, 101, 115, 0, 4, 2, 99,
-			97, 112, 101, 3, 2, 122, 89, 0, 2, 99, 97, 112, 105, 0, 8, 2, 112, 21, 0, 4, 2, 116, 114, 97, 108, 32, 3, 6, 122, 89,
-			0, 99, 1, 21, 2, 101, 110, 99, 101, 32, 0, 99, 1, 21, 2, 101, 110, 116, 32, 0, 113, 117, 101, 3, 6, 122, 89, 49, 0, 4,
-			1, 21, 2, 105, 99, 3, 6, 132, 88, 0, 2, 105, 97, 110, 32, 0, 101, 1, 110, 21, 2, 32, 0, 2, 105, 118, 101, 3, 6, 132,
-			89, 0, 105, 115, 2, 32, 3, 6, 132, 89, 124, 89, 0, 105, 97, 5, 3, 2, 32, 3, 6, 132, 90, 13, 0, 4, 1, 10, 2, 116,
-			32, 3, 13, 89, 0, 1, 10, 2, 116, 121, 0, 1, 10, 2, 121, 32, 0, 1, 104, 116, 2, 105, 18, 71, 101, 32, 0, 115, 1, 114,
-			101, 2, 32, 0, 115, 1, 114, 116, 10, 2, 32, 0, 115, 2, 32, 28, 18, 0, 115, 97, 1, 99, 101, 110, 2, 114, 121, 3, 13, 89,
-			13, 0, 105, 115, 1, 104, 116, 2, 32, 3, 13, 89, 124, 89, 0, 101, 115, 1, 104, 116, 2, 32, 3, 13, 89, 132, 88, 0, 4, 1,
-			10, 2, 32, 14, 128, 130, 129, 3, 88, 0, 1, 17, 67, 10, 2, 32, 14, 128, 130, 129, 0, 1, 104, 112, 10, 2, 32, 14, 128, 128,
-			129, 0, 1, 104, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 105, 114, 101, 110, 2, 32, 14, 128, 130, 130, 0, 1, 114, 10, 2, 32,
-			14, 128, 128, 129, 0, 4, 1, 102, 10, 2, 32, 14, 128, 128, 129, 3, 89, 0, 1, 107, 10, 2, 32, 14, 128, 128, 129, 0, 1, 112,
-			10, 2, 32, 14, 128, 128, 129, 0, 1, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 117, 113, 10, 2, 32, 14, 128, 128, 129, 0, 4,
-			2, 99, 97, 114, 112, 3, 113, 89, 0, 2, 112, 101, 99, 105, 0, 2, 116, 97, 116, 101, 0, 8, 2, 116, 97, 98, 0, 1, 114, 112,
-			2, 101, 110, 116, 3, 122, 88, 0, 4, 1, 114, 17, 67, 2, 116, 3, 122, 89, 0, 1, 118, 2, 116, 12, 0, 8, 2, 112, 108, 0,
-			115, 1, 116, 115, 105, 100, 2, 32, 0, 116, 105, 2, 109, 3, 122, 89, 47, 125, 0, 1, 118, 114, 97, 104, 2, 116, 3, 124, 89, 0,
-			111, 112, 104, 97, 3, 124, 89, 6, 126, 83, 13, 0, 4, 1, 99, 10, 2, 32, 14, 128, 128, 129, 3, 125, 88, 0, 1, 103, 10, 2,
-			32, 14, 128, 128, 129, 0, 1, 104, 99, 10, 2, 32, 14, 128, 128, 129, 0, 1, 104, 115, 2, 32, 14, 128, 128, 130, 0, 1, 115, 10,
-			2, 32, 14, 128, 128, 129, 0, 1, 115, 115, 10, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 2, 32, 14, 128, 129, 130, 0, 1, 115,
-			117, 99, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 108, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 114, 10, 10, 2, 32, 14, 128,
-			128, 130, 0, 1, 115, 117, 116, 10, 10, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 120, 2, 32, 14, 128, 128, 130, 0, 1, 120, 10,
-			2, 32, 14, 128, 128, 130, 0, 1, 122, 10, 2, 32, 14, 128, 128, 130, 0, 4, 1, 115, 101, 10, 2, 32, 3, 132, 88, 0, 2, 105,
-			17, 65, 0, 8, 120, 97, 0, 101, 2, 32, 0, 8, 2, 112, 101, 97, 107, 3, 132, 89, 0, 7, 6, 101, 116, 0, 4, 1, 116, 2,
-			32, 3, 6, 122, 47, 0, 2, 105, 116, 111, 114, 0, 116, 101, 2, 32, 0, 116, 97, 2, 32, 3, 6, 122, 47, 13, 0, 105, 110, 103,
-			1, 108, 2, 32, 3, 6, 132, 47, 124, 68, 0, 4, 101, 100, 1, 108, 2, 32, 3, 6, 132, 47, 125, 72, 0, 101, 100, 1, 114, 99,
-			2, 32, 0, 114, 121, 1, 109, 2, 32, 3, 8, 13, 47, 34, 2, 124, 0, 4, 1, 108, 10, 2, 32, 3, 13, 47, 0, 1, 114, 17,
-			65, 10, 2, 32, 0, 116, 1, 108, 97, 112, 2, 101, 0, 104, 1, 17, 67, 21, 2, 32, 14, 128, 129, 131, 3, 13, 87, 0, 4, 1,
-			10, 2, 32, 3, 113, 47, 0, 1, 10, 2, 114, 121, 32, 0, 1, 10, 2, 121, 32, 0, 8, 2, 101, 114, 110, 0, 8, 2, 114, 0,
-			116, 1, 10, 2, 32, 0, 4, 1, 10, 2, 32, 28, 17, 3, 122, 47, 0, 1, 98, 97, 104, 112, 2, 32, 0, 1, 106, 2, 32, 0,
-			1, 110, 17, 65, 21, 21, 2, 32, 0, 1, 114, 103, 2, 12, 0, 1, 115, 2, 32, 0, 4, 104, 2, 105, 99, 3, 122, 87, 0, 104,
-			2, 121, 108, 101, 110, 0, 104, 8, 2, 97, 21, 0, 104, 8, 2, 101, 108, 0, 4, 1, 21, 2, 97, 116, 101, 3, 124, 47, 0, 1,
-			21, 2, 97, 116, 105, 111, 110, 0, 1, 107, 114, 0, 1, 108, 108, 2, 32, 0, 105, 110, 103, 1, 10, 2, 32, 3, 125, 47, 2, 124,
-			68, 0, 101, 100, 1, 10, 2, 32, 14, 128, 128, 130, 3, 125, 72, 0, 4, 1, 102, 2, 97, 3, 132, 47, 0, 8, 2, 111, 110, 0,
-			8, 109, 2, 101, 0, 8, 112, 2, 101, 0, 101, 2, 32, 0, 4, 101, 114, 1, 109, 2, 32, 3, 132, 47, 114, 0, 114, 101, 1, 109,
-			0, 4, 104, 2, 121, 108, 3, 132, 87, 0, 104, 5, 35, 2, 97, 110, 101, 0, 104, 8, 2, 17, 65, 0, 1, 114, 101, 98, 2, 32,
-			3, 141, 0, 7, 6, 101, 117, 0, 114, 2, 32, 3, 6, 131, 0, 115, 101, 1, 21, 2, 32, 3, 6, 131, 88, 0, 2, 109, 32, 3,
-			6, 132, 13, 0, 115, 101, 5, 3, 1, 21, 2, 32, 3, 6, 137, 88, 0, 1, 115, 2, 109, 32, 3, 6, 144, 0, 114, 5, 3, 2,
-			32, 3, 6, 146, 0, 114, 5, 5, 2, 32, 3, 6, 151, 0, 115, 1, 10, 2, 32, 3, 8, 113, 13, 89, 0, 3, 57, 137, 0, 114,
-			111, 8, 3, 57, 146, 34, 139, 0, 114, 111, 8, 2, 112, 101, 3, 57, 146, 44, 13, 0, 114, 1, 108, 3, 131, 0, 4, 1, 108, 3,
-			137, 0, 5, 3, 1, 110, 0, 4, 1, 100, 2, 116, 115, 3, 142, 0, 1, 114, 2, 100, 0, 5, 3, 1, 110, 2, 114, 21, 3, 146,
-			0, 114, 5, 5, 3, 151, 0, 7, 6, 101, 118, 0, 4, 101, 114, 2, 99, 3, 4, 122, 84, 114, 0, 101, 114, 2, 108, 0, 101, 114,
-			2, 109, 0, 4, 8, 3, 113, 84, 0, 8, 2, 105, 99, 116, 0, 8, 2, 105, 115, 0, 97, 110, 103, 8, 3, 113, 84, 35, 50, 75,
-			0, 101, 8, 2, 110, 116, 3, 113, 84, 122, 0, 101, 114, 8, 2, 115, 3, 113, 84, 131, 0, 4, 1, 108, 2, 101, 108, 3, 122, 84,
-			0, 5, 3, 8, 2, 111, 108, 117, 0, 8, 2, 25, 0, 8, 2, 105, 0, 97, 8, 2, 110, 101, 3, 122, 84, 13, 0, 101, 114, 121,
-			3, 122, 84, 34, 113, 0, 4, 101, 114, 1, 108, 99, 3, 122, 84, 114, 0, 101, 114, 2, 32, 0, 101, 114, 8, 0, 8, 114, 116, 2,
-			21, 21, 3, 125, 84, 0, 4, 1, 108, 108, 97, 3, 132, 84, 0, 1, 114, 98, 98, 97, 0, 1, 116, 115, 2, 101, 0, 101, 1, 108,
-			99, 2, 108, 0, 101, 8, 0, 101, 110, 8, 3, 132, 84, 13, 50, 0, 97, 110, 8, 2, 103, 101, 108, 105, 99, 3, 132, 84, 35, 50,
-			0, 4, 101, 114, 1, 102, 2, 12, 3, 132, 84, 114, 0, 101, 114, 5, 35, 8, 108, 0, 105, 108, 8, 2, 25, 3, 132, 84, 118, 0,
-			7, 6, 101, 120, 0, 4, 8, 2, 21, 3, 2, 122, 49, 89, 0, 8, 2, 104, 97, 108, 0, 99, 2, 105, 0, 99, 8, 2, 101, 0,
-			104, 8, 2, 105, 98, 105, 116, 105, 0, 116, 114, 97, 2, 111, 114, 3, 2, 122, 49, 89, 47, 34, 0, 116, 114, 97, 118, 97, 2, 103,
-			3, 2, 122, 49, 89, 47, 34, 35, 84, 13, 0, 112, 101, 114, 105, 109, 3, 2, 122, 49, 89, 48, 122, 34, 124, 65, 0, 4, 8, 2,
-			17, 65, 3, 2, 122, 81, 88, 0, 104, 8, 0, 104, 117, 5, 3, 8, 3, 2, 122, 81, 88, 137, 0, 1, 21, 2, 105, 97, 3, 6,
-			122, 49, 89, 0, 111, 8, 2, 115, 14, 128, 132, 131, 3, 6, 122, 49, 89, 139, 0, 4, 1, 17, 67, 2, 101, 3, 122, 49, 89, 0,
-			2, 101, 114, 99, 0, 2, 112, 101, 114, 116, 0, 8, 2, 99, 114, 101, 109, 0, 99, 101, 2, 108, 108, 101, 110, 3, 122, 49, 89, 13,
-			0, 116, 101, 114, 2, 17, 67, 3, 122, 49, 89, 47, 6, 131, 0, 116, 114, 97, 2, 112, 111, 108, 3, 122, 49, 89, 47, 34, 6, 35,
-			0, 4, 116, 114, 97, 3, 122, 49, 89, 47, 34, 13, 0, 116, 114, 111, 8, 0, 116, 114, 97, 2, 99, 116, 3, 122, 49, 89, 47, 34,
-			35, 0, 116, 114, 97, 2, 110, 21, 3, 122, 49, 89, 47, 34, 141, 0, 112, 101, 100, 2, 105, 116, 3, 122, 49, 89, 48, 13, 72, 0,
-			99, 97, 118, 3, 122, 49, 89, 49, 13, 84, 0, 111, 114, 2, 99, 3, 122, 49, 89, 114, 0, 101, 2, 99, 117, 116, 105, 111, 3, 122,
-			49, 89, 124, 0, 8, 2, 105, 116, 3, 122, 81, 88, 0, 1, 115, 115, 2, 32, 3, 124, 49, 89, 0, 7, 6, 101, 121, 0, 1, 10,
-			2, 32, 3, 2, 124, 0, 111, 114, 2, 32, 3, 6, 141, 114, 0, 101, 100, 2, 32, 14, 128, 128, 130, 3, 72, 0, 1, 21, 2, 17,
-			67, 21, 3, 124, 0, 8, 107, 2, 12, 3, 132, 0, 4, 3, 140, 0, 101, 1, 21, 2, 32, 14, 128, 128, 131, 0, 101, 8, 0, 4,
-			1, 17, 67, 29, 3, 141, 0, 1, 118, 17, 67, 2, 32, 0, 2, 97, 110, 0, 8, 98, 97, 0, 101, 0, 101, 114, 1, 109, 21, 2,
-			32, 3, 148, 0, 7, 6, 105, 97, 0, 4, 1, 102, 2, 110, 116, 3, 6, 147, 0, 1, 102, 101, 2, 110, 99, 101, 0, 1, 108, 2,
-			110, 99, 101, 0, 1, 108, 112, 2, 110, 116, 0, 104, 2, 32, 0, 116, 104, 3, 6, 147, 87, 0, 1, 10, 2, 32, 24, 3, 8, 37,
-			13, 0, 114, 121, 1, 10, 3, 8, 57, 13, 34, 2, 124, 0, 116, 101, 1, 21, 2, 32, 3, 8, 113, 141, 47, 0, 99, 1, 10, 2,
-			32, 3, 8, 124, 35, 49, 0, 101, 1, 21, 2, 32, 3, 8, 124, 132, 0, 4, 1, 10, 2, 32, 3, 8, 144, 0, 1, 21, 2, 116,
-			105, 118, 101, 0, 1, 21, 21, 2, 32, 0, 114, 121, 1, 108, 10, 3, 8, 144, 34, 2, 124, 0, 2, 110, 103, 32, 3, 57, 35, 0,
-			4, 1, 114, 2, 98, 3, 113, 13, 0, 1, 116, 2, 98, 0, 103, 101, 1, 10, 2, 32, 3, 113, 75, 0, 103, 101, 1, 108, 10, 2,
-			32, 3, 113, 113, 75, 0, 114, 100, 2, 32, 3, 113, 114, 72, 0, 114, 99, 104, 3, 113, 130, 49, 0, 105, 3, 113, 140, 0, 4, 1,
-			21, 2, 110, 100, 3, 124, 6, 35, 0, 1, 21, 2, 110, 105, 99, 0, 1, 21, 2, 110, 105, 116, 0, 114, 97, 2, 32, 3, 124, 6,
-			121, 34, 13, 0, 8, 102, 2, 110, 99, 3, 124, 6, 126, 0, 110, 99, 101, 8, 102, 3, 124, 6, 126, 50, 89, 141, 0, 4, 1, 108,
-			97, 2, 110, 116, 3, 124, 13, 0, 1, 108, 108, 105, 2, 110, 116, 0, 4, 116, 101, 1, 103, 2, 32, 3, 124, 13, 47, 0, 116, 101,
-			1, 114, 112, 111, 2, 32, 0, 110, 1, 21, 2, 99, 121, 3, 124, 13, 50, 0, 1, 112, 2, 110, 111, 3, 124, 35, 0, 114, 2, 105,
-			116, 121, 3, 124, 35, 34, 0, 105, 115, 1, 108, 3, 124, 141, 88, 0, 1, 21, 2, 110, 97, 32, 3, 132, 6, 35, 0, 1, 108, 10,
-			2, 110, 99, 101, 3, 132, 13, 0, 4, 1, 17, 67, 29, 3, 140, 13, 0, 1, 102, 2, 98, 0, 114, 5, 8, 1, 17, 67, 3, 140,
-			119, 0, 4, 1, 10, 2, 110, 3, 144, 0, 2, 109, 0, 8, 112, 2, 110, 17, 65, 0, 110, 8, 3, 144, 50, 0, 4, 114, 1, 108,
-			21, 2, 32, 3, 145, 0, 114, 2, 105, 17, 67, 0, 4, 114, 3, 148, 0, 114, 1, 17, 67, 0, 7, 6, 105, 101, 0, 1, 10, 2,
-			32, 3, 2, 37, 0, 117, 1, 108, 2, 116, 101, 3, 2, 122, 83, 0, 110, 101, 1, 100, 2, 32, 3, 6, 140, 132, 50, 0, 114, 2,
-			32, 28, 17, 3, 6, 145, 0, 116, 121, 1, 21, 3, 6, 147, 47, 2, 124, 0, 108, 1, 114, 10, 2, 32, 3, 8, 132, 118, 0, 1,
-			10, 2, 110, 32, 3, 8, 144, 0, 115, 116, 1, 10, 2, 32, 14, 128, 130, 131, 3, 13, 89, 47, 0, 121, 2, 32, 3, 37, 0, 2,
-			17, 67, 97, 32, 3, 37, 6, 122, 0, 114, 101, 2, 32, 3, 37, 6, 143, 0, 108, 1, 110, 10, 2, 32, 3, 57, 118, 0, 4, 117,
-			1, 108, 17, 65, 3, 57, 137, 0, 119, 0, 119, 2, 32, 0, 100, 2, 32, 14, 128, 130, 130, 3, 72, 0, 100, 115, 2, 32, 14, 128,
-			130, 131, 3, 72, 88, 0, 4, 115, 2, 32, 14, 128, 130, 130, 3, 88, 0, 115, 2, 32, 28, 21, 14, 128, 128, 129, 0, 4, 2, 108,
-			108, 17, 65, 3, 113, 6, 122, 0, 2, 110, 17, 67, 105, 17, 65, 0, 2, 116, 116, 0, 114, 1, 10, 2, 121, 3, 113, 13, 34, 0,
-			115, 99, 3, 113, 122, 89, 0, 1, 100, 101, 109, 2, 118, 97, 108, 3, 113, 132, 0, 114, 114, 101, 2, 32, 3, 113, 143, 0, 114, 1,
-			10, 2, 32, 24, 14, 128, 130, 130, 3, 114, 0, 1, 114, 102, 2, 110, 100, 3, 122, 0, 4, 3, 124, 0, 1, 112, 112, 2, 32, 0,
-			1, 115, 2, 118, 101, 0, 2, 110, 116, 97, 108, 3, 124, 6, 122, 0, 110, 110, 3, 124, 6, 122, 50, 0, 2, 103, 111, 3, 124, 6,
-			141, 0, 114, 2, 97, 3, 124, 6, 143, 34, 0, 100, 108, 121, 3, 124, 72, 55, 2, 124, 0, 4, 1, 29, 3, 132, 0, 1, 102, 2,
+			14, 128, 136, 130, 0, 1, 121, 2, 32, 14, 128, 136, 130, 0, 4, 1, 104, 115, 17, 67, 21, 2, 32, 3, 121, 72, 0, 1, 119, 121,
+			2, 32, 0, 5, 8, 1, 100, 21, 2, 32, 14, 128, 155, 130, 0, 5, 8, 1, 116, 21, 2, 32, 14, 128, 155, 130, 0, 97, 108, 1,
+			112, 3, 121, 72, 118, 0, 105, 98, 1, 114, 99, 3, 121, 72, 122, 71, 0, 103, 2, 101, 13, 3, 121, 75, 0, 4, 1, 114, 100, 21,
+			2, 32, 3, 122, 72, 0, 1, 114, 102, 21, 2, 32, 14, 128, 136, 130, 0, 108, 121, 2, 32, 3, 122, 72, 55, 2, 122, 0, 4, 1,
+			100, 21, 2, 32, 14, 128, 155, 130, 3, 123, 72, 0, 1, 116, 21, 2, 32, 14, 128, 155, 130, 0, 4, 1, 109, 2, 105, 97, 3, 129,
+			72, 0, 1, 109, 2, 105, 111, 0, 1, 109, 2, 105, 117, 0, 1, 112, 2, 101, 32, 0, 1, 116, 2, 105, 0, 1, 119, 115, 0, 105,
+			97, 116, 101, 1, 109, 21, 3, 129, 72, 113, 13, 47, 0, 7, 6, 101, 105, 0, 4, 1, 108, 2, 115, 3, 121, 0, 99, 101, 1, 108,
+			2, 115, 116, 0, 4, 1, 102, 2, 116, 32, 3, 122, 0, 1, 102, 2, 116, 101, 0, 2, 110, 97, 116, 101, 0, 4, 1, 21, 2, 110,
+			32, 3, 129, 0, 1, 21, 2, 110, 101, 0, 1, 99, 0, 2, 116, 104, 0, 2, 118, 0, 2, 122, 0, 103, 104, 1, 108, 0, 108, 1,
+			110, 3, 129, 55, 0, 103, 104, 1, 107, 3, 129, 87, 0, 4, 1, 98, 2, 110, 103, 3, 129, 122, 0, 1, 104, 116, 2, 115, 17, 67,
+			0, 4, 1, 104, 2, 116, 32, 3, 137, 0, 2, 115, 116, 101, 114, 0, 5, 35, 2, 116, 104, 101, 114, 0, 8, 0, 103, 104, 1, 104,
+			2, 116, 0, 114, 8, 3, 137, 34, 0, 4, 115, 2, 101, 3, 137, 88, 0, 115, 8, 115, 2, 109, 0, 99, 104, 3, 137, 101, 0, 4,
+			3, 138, 0, 103, 2, 110, 0, 103, 104, 0, 103, 104, 1, 108, 115, 0, 103, 104, 116, 104, 3, 138, 47, 87, 0, 114, 3, 140, 0, 114,
+			1, 119, 3, 142, 0, 7, 6, 101, 108, 0, 4, 8, 2, 17, 65, 3, 2, 122, 55, 0, 108, 8, 2, 105, 112, 0, 101, 8, 2, 99,
+			116, 114, 111, 3, 2, 122, 55, 4, 121, 0, 101, 8, 2, 99, 116, 114, 111, 108, 3, 2, 122, 55, 121, 0, 105, 116, 8, 3, 2, 122,
+			55, 129, 47, 0, 4, 1, 99, 120, 2, 32, 3, 6, 121, 55, 0, 1, 108, 108, 97, 2, 111, 0, 1, 110, 110, 111, 2, 32, 0, 1,
+			112, 2, 32, 0, 2, 105, 103, 105, 0, 108, 97, 1, 10, 2, 32, 3, 6, 121, 55, 13, 0, 111, 112, 1, 118, 3, 6, 121, 55, 13,
+			48, 0, 108, 105, 1, 21, 2, 32, 3, 6, 121, 55, 122, 0, 4, 1, 100, 2, 105, 118, 3, 13, 55, 0, 1, 118, 2, 111, 99, 0,
+			108, 1, 10, 2, 111, 117, 115, 0, 108, 101, 114, 1, 118, 10, 2, 32, 3, 13, 55, 13, 0, 108, 105, 110, 103, 1, 10, 3, 13, 55,
+			113, 68, 0, 1, 115, 2, 101, 99, 116, 3, 113, 55, 0, 4, 1, 10, 2, 32, 3, 118, 0, 1, 10, 2, 115, 32, 0, 1, 116, 2,
+			112, 0, 4, 1, 98, 105, 99, 2, 32, 3, 121, 55, 0, 1, 108, 108, 97, 0, 5, 8, 1, 10, 2, 32, 0, 5, 8, 1, 10, 2,
+			115, 32, 0, 111, 2, 113, 3, 121, 55, 13, 0, 115, 101, 8, 3, 121, 55, 89, 0, 101, 8, 2, 99, 116, 114, 111, 110, 3, 121, 55,
+			121, 0, 4, 101, 8, 2, 103, 3, 121, 55, 122, 0, 101, 8, 2, 112, 0, 101, 8, 2, 118, 97, 0, 101, 109, 8, 3, 121, 55, 122,
+			65, 0, 101, 1, 107, 115, 2, 116, 3, 121, 55, 123, 0, 1, 102, 2, 105, 120, 3, 129, 55, 0, 7, 6, 101, 109, 0, 8, 3, 2,
+			121, 65, 0, 1, 21, 2, 98, 101, 114, 3, 6, 121, 65, 0, 1, 104, 112, 115, 2, 101, 3, 6, 129, 65, 0, 4, 1, 10, 2, 32,
+			3, 13, 65, 0, 1, 10, 2, 121, 32, 0, 1, 104, 112, 115, 0, 4, 2, 105, 115, 115, 105, 3, 113, 65, 0, 2, 117, 108, 115, 0,
+			8, 2, 97, 0, 8, 2, 101, 0, 8, 2, 105, 116, 0, 8, 2, 111, 0, 109, 2, 97, 110, 0, 4, 2, 97, 110, 97, 3, 121, 65,
+			0, 2, 98, 108, 101, 109, 0, 2, 98, 114, 121, 0, 2, 101, 114, 97, 108, 0, 2, 101, 114, 121, 0, 2, 105, 0, 2, 112, 97, 116,
+			104, 0, 2, 112, 101, 114, 0, 2, 112, 104, 97, 115, 0, 2, 112, 114, 101, 115, 0, 2, 112, 116, 105, 0, 2, 112, 116, 121, 0, 2,
+			117, 108, 0, 109, 2, 101, 0, 111, 114, 114, 104, 1, 104, 3, 121, 65, 13, 34, 0, 98, 97, 2, 115, 3, 121, 65, 71, 13, 0, 4,
+			1, 102, 2, 97, 108, 101, 3, 129, 65, 0, 1, 104, 2, 111, 0, 2, 97, 105, 108, 0, 7, 6, 101, 110, 0, 4, 2, 100, 101, 97,
+			3, 2, 121, 50, 0, 2, 105, 103, 109, 97, 32, 0, 2, 109, 101, 115, 0, 8, 2, 21, 0, 8, 2, 100, 97, 0, 8, 2, 100, 117,
+			0, 8, 2, 116, 105, 0, 110, 8, 0, 114, 111, 108, 3, 2, 121, 50, 34, 136, 55, 0, 114, 97, 103, 101, 3, 2, 121, 50, 34, 138,
+			75, 0, 116, 105, 99, 101, 1, 10, 3, 2, 121, 50, 47, 137, 89, 0, 108, 105, 2, 118, 3, 2, 121, 50, 55, 137, 0, 100, 111, 114,
+			8, 3, 2, 121, 50, 72, 133, 0, 99, 104, 97, 8, 2, 110, 3, 2, 121, 50, 76, 120, 0, 118, 105, 114, 111, 3, 2, 121, 50, 84,
+			137, 34, 13, 0, 116, 104, 114, 97, 2, 108, 3, 2, 121, 50, 87, 34, 130, 0, 99, 121, 2, 99, 108, 105, 3, 2, 121, 50, 89, 122,
+			0, 115, 104, 114, 105, 110, 101, 3, 2, 121, 50, 91, 34, 137, 50, 0, 2, 116, 101, 114, 116, 3, 4, 121, 50, 0, 2, 116, 114, 101,
+			112, 3, 4, 124, 50, 0, 4, 1, 21, 2, 100, 111, 32, 3, 6, 121, 50, 0, 1, 21, 2, 116, 18, 68, 32, 0, 1, 21, 2, 116,
+			97, 108, 0, 1, 21, 2, 116, 111, 117, 115, 0, 1, 21, 2, 116, 117, 0, 1, 108, 108, 105, 109, 2, 105, 97, 0, 1, 115, 101, 114,
+			112, 101, 2, 116, 0, 1, 115, 115, 2, 116, 0, 1, 116, 115, 111, 2, 115, 0, 2, 100, 17, 65, 32, 0, 2, 116, 105, 97, 108, 0,
+			110, 2, 105, 97, 0, 116, 97, 114, 121, 1, 109, 2, 32, 3, 6, 121, 50, 47, 13, 34, 2, 37, 0, 107, 111, 1, 10, 2, 32, 3,
+			6, 121, 50, 49, 136, 0, 100, 114, 111, 110, 2, 32, 3, 6, 121, 50, 72, 34, 13, 50, 0, 115, 107, 2, 32, 3, 6, 121, 50, 89,
+			49, 0, 103, 2, 32, 3, 6, 121, 68, 0, 4, 2, 97, 32, 3, 6, 129, 50, 0, 2, 97, 114, 121, 0, 2, 105, 97, 0, 111, 117,
+			115, 1, 21, 2, 32, 3, 8, 13, 50, 13, 89, 0, 101, 115, 1, 104, 116, 21, 21, 2, 32, 3, 8, 13, 50, 129, 88, 0, 4, 1,
+			10, 2, 17, 65, 110, 99, 101, 3, 13, 50, 0, 1, 10, 2, 32, 0, 1, 10, 2, 99, 101, 32, 0, 1, 10, 2, 101, 100, 32, 0,
+			1, 10, 2, 101, 114, 32, 0, 1, 10, 2, 109, 101, 110, 116, 0, 1, 10, 2, 116, 32, 0, 1, 10, 2, 116, 104, 32, 0, 1, 99,
+			114, 101, 109, 0, 1, 103, 101, 2, 100, 0, 1, 112, 114, 97, 99, 0, 1, 118, 18, 66, 2, 116, 32, 0, 1, 118, 21, 21, 2, 116,
+			32, 0, 99, 121, 1, 10, 2, 32, 3, 13, 50, 89, 2, 37, 0, 105, 110, 101, 1, 10, 3, 13, 50, 129, 50, 0, 4, 8, 2, 111,
+			3, 113, 50, 0, 8, 2, 111, 117, 103, 104, 0, 8, 2, 117, 0, 97, 8, 2, 109, 3, 113, 50, 35, 0, 4, 1, 10, 2, 99, 104,
+			3, 121, 50, 0, 1, 99, 114, 101, 112, 2, 116, 0, 1, 99, 115, 97, 2, 116, 0, 1, 102, 2, 99, 101, 32, 0, 1, 107, 2, 100,
+			32, 0, 1, 115, 110, 2, 116, 0, 1, 116, 110, 2, 116, 0, 1, 116, 120, 2, 116, 0, 1, 118, 2, 116, 32, 0, 2, 100, 111, 117,
+			115, 0, 2, 105, 103, 0, 2, 115, 105, 103, 0, 2, 116, 101, 114, 0, 2, 116, 105, 0, 2, 116, 105, 116, 121, 0, 2, 116, 114, 97,
+			110, 0, 2, 116, 114, 105, 0, 2, 116, 114, 111, 0, 2, 118, 105, 17, 65, 0, 2, 118, 111, 121, 0, 2, 118, 121, 0, 2, 122, 121,
+			0, 5, 8, 1, 10, 2, 99, 101, 32, 0, 5, 8, 1, 10, 2, 116, 32, 0, 8, 2, 100, 0, 8, 2, 101, 0, 8, 2, 109, 0,
+			8, 2, 116, 114, 121, 0, 8, 99, 115, 101, 100, 2, 116, 0, 8, 115, 101, 114, 2, 116, 0, 101, 109, 1, 116, 3, 121, 50, 13, 65,
+			0, 116, 105, 8, 99, 3, 121, 50, 47, 122, 0, 99, 108, 97, 118, 3, 121, 50, 49, 55, 138, 84, 0, 100, 111, 119, 3, 121, 50, 72,
+			6, 135, 0, 100, 111, 8, 3, 121, 50, 72, 136, 0, 103, 105, 110, 3, 121, 50, 75, 122, 50, 0, 103, 105, 110, 103, 3, 121, 50, 75,
+			122, 68, 0, 101, 114, 8, 3, 121, 50, 114, 0, 103, 2, 116, 104, 3, 121, 68, 0, 4, 1, 10, 2, 103, 101, 114, 3, 122, 50, 0,
+			1, 107, 99, 105, 104, 99, 0, 103, 2, 108, 17, 65, 3, 122, 68, 81, 0, 4, 2, 99, 111, 114, 101, 3, 124, 50, 0, 2, 116, 114,
+			101, 99, 0, 4, 1, 99, 115, 2, 101, 3, 129, 50, 0, 1, 103, 2, 105, 17, 65, 0, 2, 97, 108, 32, 0, 8, 115, 2, 105, 0,
+			101, 2, 32, 0, 4, 105, 1, 108, 2, 101, 3, 129, 50, 122, 0, 105, 1, 118, 2, 101, 0, 101, 97, 8, 103, 3, 129, 50, 122, 6,
+			35, 0, 7, 6, 101, 111, 0, 8, 103, 3, 4, 122, 124, 0, 1, 21, 21, 2, 32, 3, 6, 138, 136, 0, 117, 115, 1, 10, 2, 32,
+			3, 8, 141, 89, 0, 4, 110, 1, 103, 3, 13, 50, 0, 110, 1, 104, 99, 0, 1, 104, 116, 2, 21, 3, 113, 13, 0, 1, 103, 3,
+			113, 124, 0, 4, 101, 115, 2, 32, 3, 113, 136, 88, 0, 115, 2, 32, 0, 4, 1, 103, 2, 102, 102, 3, 121, 0, 1, 106, 2, 112,
+			0, 4, 1, 104, 116, 2, 99, 114, 97, 99, 121, 3, 122, 6, 124, 0, 1, 104, 116, 2, 108, 111, 103, 105, 115, 0, 1, 104, 116, 2,
+			108, 111, 103, 121, 0, 4, 1, 102, 3, 129, 0, 1, 112, 2, 112, 108, 0, 115, 105, 115, 1, 21, 3, 129, 6, 136, 89, 122, 89, 0,
+			114, 8, 103, 3, 132, 0, 2, 100, 32, 3, 135, 0, 118, 101, 114, 3, 136, 84, 13, 0, 114, 8, 3, 138, 114, 0, 4, 1, 104, 116,
+			2, 114, 3, 141, 0, 8, 108, 0, 97, 2, 32, 0, 7, 6, 101, 114, 0, 109, 101, 8, 102, 2, 110, 116, 3, 2, 128, 65, 121, 0,
+			4, 1, 21, 2, 105, 116, 121, 3, 6, 121, 34, 0, 2, 105, 99, 32, 0, 2, 105, 99, 97, 108, 0, 4, 1, 21, 2, 17, 67, 97,
+			108, 32, 3, 6, 128, 0, 1, 21, 2, 17, 67, 105, 99, 32, 0, 1, 21, 2, 115, 105, 97, 108, 0, 1, 109, 2, 103, 101, 0, 1,
+			118, 2, 103, 101, 0, 1, 118, 2, 115, 97, 108, 0, 2, 98, 105, 97, 108, 0, 2, 103, 105, 99, 32, 0, 2, 110, 97, 108, 32, 0,
+			2, 115, 105, 111, 110, 0, 114, 101, 100, 2, 32, 3, 6, 128, 72, 0, 103, 105, 110, 103, 3, 6, 128, 75, 113, 68, 0, 1, 21, 2,
+			111, 32, 3, 6, 140, 34, 0, 105, 2, 17, 65, 3, 6, 141, 34, 2, 122, 0, 101, 97, 108, 3, 6, 141, 34, 113, 118, 0, 4, 1,
+			104, 100, 97, 2, 101, 3, 6, 142, 0, 1, 104, 111, 99, 2, 101, 0, 101, 1, 99, 2, 32, 0, 4, 1, 10, 2, 111, 17, 67, 101,
+			32, 3, 8, 13, 34, 0, 1, 10, 2, 111, 117, 115, 0, 4, 105, 115, 101, 1, 10, 2, 32, 3, 8, 13, 34, 137, 88, 0, 105, 122,
+			101, 1, 10, 2, 32, 0, 121, 2, 32, 3, 13, 34, 2, 37, 0, 97, 108, 1, 21, 2, 105, 116, 121, 3, 13, 34, 6, 35, 55, 0,
+			4, 105, 115, 1, 10, 2, 97, 3, 13, 34, 137, 88, 0, 105, 122, 1, 10, 2, 97, 0, 116, 111, 1, 104, 2, 32, 3, 13, 47, 134,
+			0, 97, 1, 109, 97, 99, 3, 14, 34, 13, 0, 4, 1, 21, 2, 101, 110, 99, 101, 32, 3, 34, 0, 2, 101, 110, 116, 32, 0, 97,
+			109, 1, 10, 2, 101, 110, 116, 3, 34, 13, 65, 0, 105, 101, 115, 2, 32, 14, 128, 130, 130, 3, 88, 0, 4, 1, 99, 2, 97, 109,
+			3, 113, 34, 0, 8, 2, 17, 65, 0, 8, 104, 2, 101, 100, 0, 101, 1, 104, 2, 100, 105, 3, 113, 34, 121, 0, 101, 1, 105, 2,
+			32, 3, 113, 140, 0, 4, 1, 10, 3, 114, 0, 1, 10, 2, 32, 0, 1, 10, 2, 110, 32, 0, 1, 10, 2, 115, 32, 0, 1, 10,
+			2, 116, 32, 0, 1, 17, 67, 11, 2, 32, 14, 128, 128, 131, 0, 1, 21, 21, 21, 2, 32, 14, 128, 145, 130, 0, 1, 98, 109, 2,
+			32, 0, 1, 99, 115, 97, 2, 116, 0, 1, 108, 108, 2, 32, 14, 128, 128, 130, 0, 1, 108, 108, 97, 2, 32, 0, 1, 110, 105, 108,
+			2, 32, 14, 128, 128, 129, 0, 1, 110, 114, 2, 32, 14, 128, 128, 130, 0, 1, 112, 2, 99, 101, 110, 0, 1, 112, 2, 104, 97, 112,
+			0, 1, 114, 101, 2, 32, 14, 128, 128, 130, 0, 1, 115, 115, 2, 32, 14, 128, 128, 130, 0, 101, 1, 10, 2, 32, 0, 101, 1, 10,
+			2, 32, 0, 4, 1, 10, 2, 17, 65, 3, 114, 34, 0, 1, 10, 2, 105, 110, 103, 0, 2, 105, 101, 0, 2, 105, 101, 32, 0, 121,
+			2, 17, 65, 3, 114, 57, 0, 4, 115, 1, 17, 67, 11, 2, 32, 14, 128, 128, 132, 3, 114, 88, 0, 115, 1, 108, 108, 2, 32, 14,
+			128, 128, 131, 0, 115, 1, 110, 105, 108, 2, 32, 14, 128, 128, 130, 0, 115, 1, 114, 101, 2, 32, 14, 128, 128, 131, 0, 115, 1, 115,
+			115, 2, 32, 14, 128, 128, 131, 0, 5, 8, 1, 10, 2, 32, 3, 119, 0, 115, 5, 8, 1, 17, 67, 11, 2, 32, 14, 128, 128, 132,
+			3, 119, 88, 0, 2, 114, 17, 65, 3, 121, 0, 4, 2, 105, 17, 67, 3, 121, 34, 0, 8, 2, 117, 100, 0, 8, 17, 67, 17, 67,
+			2, 17, 65, 0, 8, 104, 2, 17, 65, 0, 114, 1, 17, 67, 29, 0, 114, 8, 2, 17, 65, 0, 114, 121, 5, 3, 1, 98, 2, 32,
+			3, 121, 34, 2, 122, 0, 4, 101, 1, 104, 2, 115, 3, 121, 34, 13, 0, 101, 1, 104, 2, 116, 0, 4, 101, 1, 99, 2, 109, 111,
+			110, 3, 121, 34, 113, 0, 101, 1, 104, 2, 102, 0, 121, 8, 118, 0, 101, 111, 1, 116, 115, 3, 121, 34, 113, 136, 0, 97, 108, 1,
+			103, 2, 100, 3, 121, 34, 118, 0, 4, 5, 35, 1, 104, 2, 116, 102, 3, 127, 0, 5, 35, 8, 100, 2, 98, 0, 4, 3, 128, 0,
+			1, 17, 67, 29, 0, 1, 21, 2, 115, 121, 0, 1, 99, 2, 110, 32, 0, 1, 99, 2, 116, 0, 1, 99, 110, 111, 99, 2, 116, 32,
+			0, 1, 104, 2, 116, 122, 0, 1, 109, 2, 99, 0, 1, 115, 2, 118, 97, 110, 0, 1, 118, 2, 116, 0, 1, 118, 21, 2, 116, 32,
+			0, 2, 17, 66, 32, 0, 2, 32, 0, 2, 115, 101, 0, 2, 115, 105, 98, 0, 2, 115, 105, 102, 0, 2, 115, 105, 118, 0, 2, 116,
+			105, 111, 110, 0, 2, 118, 101, 0, 8, 0, 8, 117, 113, 0, 101, 2, 32, 0, 2, 17, 65, 3, 128, 34, 0, 109, 101, 97, 1, 112,
+			2, 98, 3, 128, 65, 141, 0, 4, 101, 1, 112, 109, 2, 32, 3, 140, 0, 114, 2, 32, 24, 0, 4, 1, 104, 2, 101, 110, 3, 141,
+			34, 0, 1, 122, 2, 111, 0, 8, 17, 67, 2, 111, 32, 0, 97, 1, 29, 2, 32, 3, 141, 34, 13, 0, 105, 1, 112, 120, 101, 2,
+			101, 110, 3, 141, 34, 113, 0, 105, 111, 8, 112, 2, 100, 105, 99, 3, 141, 34, 113, 6, 124, 0, 105, 111, 8, 112, 2, 100, 3, 141,
+			34, 113, 13, 0, 121, 1, 117, 113, 3, 141, 34, 122, 0, 4, 101, 1, 17, 67, 29, 2, 32, 3, 142, 0, 101, 1, 104, 112, 115, 2,
+			32, 0, 101, 1, 109, 2, 32, 0, 101, 1, 118, 101, 2, 32, 0, 101, 8, 104, 0, 7, 6, 101, 115, 0, 4, 2, 99, 97, 112, 101,
+			3, 2, 121, 89, 0, 2, 99, 97, 112, 105, 0, 8, 2, 112, 21, 0, 4, 2, 116, 114, 97, 108, 32, 3, 6, 121, 89, 0, 99, 1,
+			21, 2, 101, 110, 17, 67, 0, 113, 117, 101, 3, 6, 121, 89, 49, 0, 4, 2, 105, 97, 110, 32, 3, 6, 129, 88, 0, 2, 105, 99,
+			0, 101, 1, 110, 21, 2, 32, 0, 2, 105, 118, 101, 3, 6, 129, 89, 0, 105, 115, 2, 32, 3, 6, 129, 89, 122, 89, 0, 4, 1,
+			10, 2, 116, 32, 3, 13, 89, 0, 1, 10, 2, 121, 32, 0, 1, 104, 116, 2, 105, 18, 71, 101, 32, 0, 1, 118, 2, 116, 121, 0,
+			115, 1, 114, 101, 2, 32, 0, 115, 1, 114, 116, 10, 2, 32, 0, 115, 97, 1, 99, 101, 110, 2, 114, 121, 3, 13, 89, 13, 0, 105,
+			115, 1, 104, 116, 2, 32, 3, 13, 89, 122, 89, 0, 101, 115, 1, 104, 116, 2, 32, 3, 13, 89, 129, 88, 0, 4, 1, 10, 2, 32,
+			14, 128, 130, 129, 3, 88, 0, 1, 17, 67, 10, 2, 32, 14, 128, 130, 129, 0, 1, 104, 112, 10, 2, 32, 14, 128, 128, 129, 0, 1,
+			104, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 105, 114, 101, 110, 2, 32, 14, 128, 130, 130, 0, 1, 114, 10, 2, 32, 14, 128, 128,
+			129, 0, 4, 1, 102, 10, 2, 32, 14, 128, 128, 129, 3, 89, 0, 1, 107, 10, 2, 32, 14, 128, 128, 129, 0, 1, 112, 10, 2, 32,
+			14, 128, 128, 129, 0, 1, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 117, 113, 10, 2, 32, 14, 128, 128, 129, 0, 4, 2, 99, 97,
+			114, 112, 3, 113, 89, 0, 2, 112, 101, 99, 105, 0, 2, 116, 97, 116, 101, 0, 8, 2, 116, 97, 98, 0, 1, 114, 112, 2, 101, 110,
+			116, 3, 121, 88, 0, 4, 1, 114, 17, 67, 2, 116, 3, 121, 89, 0, 1, 118, 2, 116, 12, 0, 8, 2, 112, 108, 0, 115, 1, 116,
+			115, 105, 100, 2, 32, 0, 116, 105, 2, 109, 3, 121, 89, 47, 123, 0, 1, 118, 114, 97, 104, 2, 116, 3, 122, 89, 0, 111, 112, 104,
+			97, 3, 122, 89, 6, 124, 83, 13, 0, 4, 1, 99, 10, 2, 32, 14, 128, 128, 129, 3, 123, 88, 0, 1, 103, 10, 2, 32, 14, 128,
+			128, 129, 0, 1, 104, 99, 10, 2, 32, 14, 128, 128, 129, 0, 1, 104, 115, 2, 32, 14, 128, 128, 130, 0, 1, 115, 10, 2, 32, 14,
+			128, 128, 129, 0, 1, 115, 115, 10, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 10, 2, 32, 14, 128, 129, 130, 0, 1, 115, 117, 114,
+			10, 2, 32, 14, 128, 128, 130, 0, 1, 115, 117, 116, 10, 2, 32, 14, 128, 128, 130, 0, 1, 120, 10, 2, 32, 14, 128, 128, 130, 0,
+			1, 122, 10, 2, 32, 14, 128, 128, 130, 0, 4, 2, 105, 17, 65, 3, 129, 88, 0, 8, 120, 97, 0, 101, 2, 32, 0, 8, 2, 112,
+			101, 97, 107, 3, 129, 89, 0, 7, 6, 101, 116, 0, 4, 2, 105, 116, 111, 114, 3, 6, 121, 47, 0, 116, 101, 2, 32, 0, 116, 97,
+			2, 32, 3, 6, 121, 47, 13, 0, 105, 110, 103, 1, 108, 2, 32, 3, 6, 129, 47, 122, 68, 0, 4, 101, 100, 1, 108, 2, 32, 3,
+			6, 129, 47, 123, 72, 0, 101, 100, 1, 114, 99, 2, 32, 0, 114, 121, 1, 109, 2, 32, 3, 8, 13, 47, 34, 2, 122, 0, 4, 1,
+			108, 10, 2, 32, 3, 13, 47, 0, 8, 109, 2, 105, 99, 0, 116, 1, 108, 97, 112, 2, 101, 0, 104, 1, 17, 67, 21, 2, 32, 14,
+			128, 129, 131, 3, 13, 87, 0, 114, 121, 2, 32, 14, 128, 128, 130, 3, 34, 122, 0, 114, 105, 101, 115, 2, 32, 14, 128, 128, 132, 3,
+			34, 122, 88, 0, 4, 1, 21, 2, 32, 3, 113, 47, 0, 8, 2, 101, 114, 110, 0, 116, 1, 10, 2, 32, 0, 4, 1, 98, 97, 104,
+			112, 2, 32, 3, 121, 47, 0, 1, 106, 2, 32, 0, 1, 110, 17, 65, 21, 21, 2, 32, 0, 1, 114, 103, 2, 12, 0, 1, 115, 2,
+			32, 0, 1, 116, 2, 32, 0, 4, 104, 2, 105, 99, 3, 121, 87, 0, 104, 2, 121, 108, 101, 110, 0, 104, 8, 2, 97, 0, 104, 8,
+			2, 101, 108, 0, 4, 1, 21, 2, 97, 116, 101, 3, 122, 47, 0, 1, 21, 2, 97, 116, 105, 111, 110, 0, 1, 107, 114, 0, 1, 108,
+			108, 2, 32, 0, 105, 110, 103, 1, 10, 2, 32, 3, 123, 47, 2, 122, 68, 0, 101, 100, 1, 10, 2, 32, 14, 128, 128, 130, 3, 123,
+			72, 0, 4, 1, 102, 2, 97, 3, 129, 47, 0, 8, 2, 111, 110, 0, 8, 109, 2, 101, 0, 8, 112, 2, 101, 0, 101, 2, 32, 0,
+			4, 101, 114, 1, 109, 2, 32, 3, 129, 47, 114, 0, 114, 101, 1, 109, 0, 4, 104, 2, 121, 108, 3, 129, 87, 0, 104, 5, 35, 2,
+			97, 110, 101, 0, 104, 8, 2, 17, 65, 0, 1, 114, 101, 98, 2, 32, 3, 138, 0, 7, 6, 101, 118, 0, 4, 101, 114, 2, 99, 3,
+			4, 121, 84, 114, 0, 101, 114, 2, 108, 0, 101, 114, 2, 109, 0, 4, 8, 3, 113, 84, 0, 8, 2, 105, 99, 116, 0, 8, 2, 105,
+			115, 0, 101, 8, 2, 110, 116, 3, 113, 84, 121, 0, 101, 114, 8, 2, 115, 3, 113, 84, 128, 0, 4, 1, 108, 2, 101, 108, 3, 121,
+			84, 0, 5, 3, 8, 2, 111, 108, 117, 0, 8, 2, 105, 0, 97, 8, 2, 110, 101, 3, 121, 84, 13, 0, 101, 114, 121, 3, 121, 84,
+			34, 113, 0, 4, 101, 114, 1, 108, 99, 3, 121, 84, 114, 0, 101, 114, 2, 32, 0, 101, 114, 8, 0, 4, 1, 108, 108, 97, 3, 129,
+			84, 0, 1, 114, 98, 98, 97, 0, 1, 116, 115, 2, 101, 0, 2, 105, 108, 0, 101, 1, 108, 99, 2, 108, 0, 101, 8, 0, 101, 110,
+			8, 3, 129, 84, 13, 50, 0, 4, 101, 114, 1, 102, 2, 12, 3, 129, 84, 114, 0, 101, 114, 5, 35, 8, 108, 0, 7, 6, 101, 120,
+			0, 4, 8, 3, 2, 121, 49, 89, 0, 99, 2, 105, 0, 99, 8, 2, 101, 0, 116, 114, 97, 2, 111, 114, 3, 2, 121, 49, 89, 47,
+			34, 0, 116, 114, 97, 118, 97, 2, 103, 3, 2, 121, 49, 89, 47, 34, 35, 84, 13, 0, 112, 101, 114, 105, 109, 3, 2, 121, 49, 89,
+			48, 121, 34, 122, 65, 0, 4, 8, 2, 17, 65, 3, 2, 121, 81, 88, 0, 104, 8, 0, 1, 21, 2, 105, 97, 3, 6, 121, 49, 89,
+			0, 4, 1, 17, 67, 2, 101, 3, 121, 49, 89, 0, 2, 101, 114, 99, 0, 2, 112, 101, 114, 116, 0, 99, 101, 2, 108, 108, 101, 110,
+			3, 121, 49, 89, 13, 0, 116, 101, 114, 2, 17, 67, 3, 121, 49, 89, 47, 6, 128, 0, 116, 114, 97, 2, 112, 111, 108, 3, 121, 49,
+			89, 47, 34, 6, 35, 0, 4, 116, 114, 97, 3, 121, 49, 89, 47, 34, 13, 0, 116, 114, 111, 8, 0, 116, 114, 97, 2, 99, 116, 3,
+			121, 49, 89, 47, 34, 35, 0, 116, 114, 97, 2, 110, 21, 3, 121, 49, 89, 47, 34, 138, 0, 112, 101, 100, 2, 105, 116, 3, 121, 49,
+			89, 48, 13, 72, 0, 99, 97, 118, 3, 121, 49, 89, 49, 13, 84, 0, 111, 114, 2, 99, 3, 121, 49, 89, 114, 0, 101, 2, 99, 117,
+			116, 105, 111, 3, 121, 49, 89, 122, 0, 8, 2, 105, 116, 3, 121, 81, 88, 0, 1, 115, 115, 2, 32, 3, 122, 49, 89, 0, 7, 6,
+			101, 121, 0, 1, 10, 2, 32, 3, 2, 122, 0, 111, 114, 2, 32, 3, 6, 138, 114, 0, 101, 100, 2, 32, 14, 128, 128, 130, 3, 72,
+			0, 1, 21, 2, 17, 67, 21, 3, 122, 0, 8, 107, 2, 12, 3, 129, 0, 4, 3, 137, 0, 101, 1, 21, 2, 32, 14, 128, 128, 131,
+			0, 101, 8, 0, 4, 1, 17, 67, 29, 3, 138, 0, 1, 118, 17, 67, 2, 32, 0, 2, 97, 110, 0, 8, 98, 97, 0, 101, 0, 101,
+			114, 1, 109, 21, 2, 32, 3, 145, 0, 7, 6, 105, 97, 0, 4, 1, 102, 2, 110, 116, 3, 6, 144, 0, 1, 102, 101, 2, 110, 99,
+			101, 0, 1, 108, 2, 110, 99, 101, 0, 1, 108, 112, 2, 110, 116, 0, 104, 2, 32, 0, 116, 104, 3, 6, 144, 87, 0, 1, 21, 2,
+			32, 3, 8, 37, 13, 0, 114, 121, 1, 10, 3, 8, 57, 13, 34, 2, 122, 0, 116, 101, 1, 21, 2, 32, 3, 8, 113, 138, 47, 0,
+			99, 1, 10, 2, 32, 3, 8, 122, 35, 49, 0, 4, 1, 21, 2, 116, 105, 118, 101, 3, 8, 141, 0, 1, 21, 21, 2, 32, 0, 114,
+			121, 1, 108, 10, 3, 8, 141, 34, 2, 122, 0, 2, 110, 103, 32, 3, 57, 35, 0, 4, 1, 114, 2, 98, 3, 113, 13, 0, 1, 116,
+			2, 98, 0, 2, 109, 0, 103, 101, 1, 10, 2, 32, 3, 113, 75, 0, 114, 100, 2, 32, 3, 113, 114, 72, 0, 114, 99, 104, 3, 113,
+			127, 49, 0, 105, 3, 113, 137, 0, 4, 1, 21, 2, 110, 105, 99, 3, 122, 6, 35, 0, 1, 21, 2, 110, 105, 116, 0, 8, 102, 2,
+			110, 99, 3, 122, 6, 124, 0, 110, 99, 101, 8, 102, 3, 122, 6, 124, 50, 89, 138, 0, 114, 97, 2, 32, 3, 122, 6, 126, 34, 13,
+			0, 4, 1, 108, 97, 2, 110, 116, 3, 122, 13, 0, 1, 108, 108, 105, 2, 110, 116, 0, 4, 116, 101, 1, 103, 2, 32, 3, 122, 13,
+			47, 0, 116, 101, 1, 114, 112, 111, 2, 32, 0, 110, 1, 21, 2, 99, 121, 3, 122, 13, 50, 0, 1, 112, 2, 110, 111, 3, 122, 35,
+			0, 114, 2, 105, 116, 121, 3, 122, 35, 34, 0, 105, 115, 1, 108, 3, 122, 138, 88, 0, 1, 21, 2, 110, 97, 3, 129, 6, 35, 0,
+			1, 108, 10, 2, 110, 99, 101, 3, 129, 13, 0, 4, 1, 17, 67, 29, 3, 137, 13, 0, 1, 102, 2, 98, 0, 114, 5, 8, 1, 17,
+			67, 3, 137, 119, 0, 4, 1, 10, 2, 110, 3, 141, 0, 8, 112, 2, 110, 17, 65, 0, 110, 8, 3, 141, 50, 0, 4, 114, 1, 108,
+			21, 2, 32, 3, 142, 0, 114, 2, 105, 17, 67, 0, 4, 114, 3, 145, 0, 114, 1, 17, 67, 0, 7, 6, 105, 101, 0, 1, 10, 2,
+			32, 3, 2, 37, 0, 117, 1, 108, 2, 116, 101, 3, 2, 121, 83, 0, 8, 118, 2, 116, 3, 2, 141, 0, 110, 101, 1, 100, 2, 32,
+			3, 6, 137, 129, 50, 0, 116, 121, 1, 21, 3, 6, 144, 47, 2, 122, 0, 108, 1, 114, 10, 2, 32, 3, 8, 129, 118, 0, 115, 116,
+			1, 10, 2, 32, 14, 128, 130, 131, 3, 13, 89, 47, 0, 121, 2, 32, 3, 37, 0, 108, 1, 110, 10, 2, 32, 3, 57, 118, 0, 4,
+			119, 3, 57, 134, 0, 119, 2, 32, 0, 100, 2, 32, 14, 128, 130, 130, 3, 72, 0, 100, 115, 2, 32, 14, 128, 130, 131, 3, 72, 88,
+			0, 115, 2, 32, 14, 128, 130, 130, 3, 88, 0, 4, 2, 108, 108, 17, 65, 3, 113, 6, 121, 0, 2, 110, 17, 67, 105, 17, 65, 0,
+			2, 116, 116, 0, 114, 1, 10, 2, 121, 3, 113, 13, 34, 0, 115, 99, 3, 113, 121, 89, 0, 1, 100, 101, 109, 2, 118, 97, 108, 3,
+			113, 129, 0, 114, 114, 101, 2, 32, 3, 113, 140, 0, 114, 1, 10, 2, 32, 24, 14, 128, 130, 130, 3, 114, 0, 114, 39, 115, 1, 10,
+			2, 32, 24, 14, 128, 130, 132, 3, 114, 88, 0, 1, 114, 102, 2, 110, 100, 3, 121, 0, 4, 3, 122, 0, 1, 112, 112, 2, 32, 0,
+			1, 115, 2, 118, 101, 0, 2, 110, 116, 97, 108, 3, 122, 6, 121, 0, 110, 110, 3, 122, 6, 121, 50, 0, 2, 103, 111, 3, 122, 6,
+			138, 0, 114, 2, 97, 3, 122, 6, 140, 34, 0, 100, 108, 121, 3, 122, 72, 55, 2, 122, 0, 4, 1, 29, 3, 129, 0, 1, 102, 2,
 			110, 100, 0, 1, 103, 2, 110, 0, 1, 114, 112, 2, 115, 116, 0, 2, 99, 101, 0, 2, 102, 0, 2, 107, 0, 2, 108, 0, 2, 118,
-			0, 2, 118, 101, 0, 2, 122, 0, 8, 114, 0, 8, 122, 0, 104, 2, 17, 67, 0, 115, 115, 97, 3, 132, 6, 122, 89, 13, 0, 115,
-			116, 97, 3, 132, 6, 122, 89, 47, 13, 0, 106, 3, 132, 6, 141, 0, 8, 118, 2, 116, 3, 132, 13, 6, 0, 103, 2, 101, 13, 3,
-			132, 75, 0, 4, 115, 1, 99, 101, 112, 115, 2, 32, 3, 132, 88, 0, 115, 1, 114, 101, 115, 2, 32, 0, 105, 2, 32, 3, 132, 140,
-			0, 117, 1, 108, 3, 137, 0, 117, 116, 101, 5, 3, 1, 108, 3, 137, 47, 6, 122, 0, 4, 1, 112, 2, 32, 3, 140, 0, 2, 32,
-			0, 2, 99, 0, 8, 116, 2, 17, 66, 0, 8, 116, 103, 111, 104, 0, 5, 8, 8, 99, 115, 2, 110, 3, 140, 119, 0, 4, 1, 10,
-			2, 116, 32, 3, 144, 0, 1, 21, 2, 116, 104, 0, 2, 110, 0, 4, 114, 3, 145, 0, 114, 2, 99, 0, 4, 1, 99, 115, 2, 110,
-			99, 3, 147, 0, 1, 108, 99, 2, 110, 116, 0, 2, 110, 116, 105, 17, 67, 0, 2, 116, 0, 8, 99, 115, 2, 110, 0, 4, 8, 104,
-			2, 114, 3, 148, 0, 114, 1, 108, 112, 2, 32, 0, 114, 8, 114, 17, 67, 0, 7, 6, 105, 103, 0, 110, 1, 115, 2, 111, 3, 2,
-			124, 50, 57, 0, 4, 2, 110, 111, 3, 2, 124, 81, 0, 8, 2, 110, 105, 0, 8, 109, 2, 114, 97, 116, 3, 2, 140, 81, 0, 110,
-			101, 2, 32, 3, 6, 132, 50, 0, 4, 117, 2, 32, 3, 6, 132, 81, 0, 117, 2, 101, 0, 97, 110, 1, 110, 2, 32, 3, 8, 124,
-			81, 13, 50, 0, 110, 111, 110, 2, 32, 3, 37, 50, 57, 126, 50, 0, 101, 111, 3, 124, 75, 13, 0, 105, 98, 1, 10, 3, 124, 75,
-			13, 71, 0, 4, 1, 100, 2, 110, 17, 65, 3, 124, 81, 0, 2, 110, 97, 0, 2, 110, 111, 109, 0, 110, 111, 2, 114, 97, 110, 3,
-			124, 81, 50, 114, 0, 1, 109, 97, 2, 97, 32, 3, 132, 81, 0, 4, 1, 21, 2, 110, 32, 3, 140, 0, 1, 21, 2, 110, 101, 0,
-			104, 1, 104, 0, 104, 1, 110, 0, 104, 1, 115, 0, 104, 2, 116, 0, 4, 110, 2, 17, 67, 3, 140, 50, 0, 110, 2, 32, 0, 109,
-			2, 32, 3, 140, 65, 0, 4, 1, 116, 2, 101, 12, 3, 140, 81, 0, 8, 109, 2, 114, 97, 0, 8, 116, 2, 114, 0, 7, 6, 105,
-			108, 0, 8, 2, 108, 21, 3, 2, 124, 55, 0, 8, 100, 2, 97, 116, 3, 2, 140, 55, 0, 4, 97, 1, 21, 2, 32, 3, 6, 124,
-			55, 13, 0, 108, 97, 1, 21, 2, 32, 0, 111, 113, 117, 105, 3, 6, 124, 55, 13, 49, 58, 124, 0, 4, 2, 105, 115, 101, 3, 13,
-			55, 0, 2, 105, 122, 101, 0, 101, 1, 10, 2, 103, 101, 3, 13, 55, 124, 0, 121, 1, 10, 2, 32, 14, 128, 130, 130, 3, 55, 2,
-			124, 0, 4, 1, 99, 17, 67, 21, 2, 32, 3, 118, 0, 1, 112, 21, 2, 32, 0, 1, 114, 21, 2, 32, 0, 1, 115, 21, 2, 32,
-			0, 1, 116, 110, 2, 32, 0, 1, 118, 21, 2, 32, 0, 101, 5, 3, 1, 10, 2, 32, 28, 18, 0, 4, 1, 104, 99, 2, 100, 114,
-			3, 124, 55, 0, 1, 119, 2, 100, 101, 114, 17, 67, 0, 2, 101, 17, 65, 0, 8, 2, 108, 110, 0, 8, 2, 108, 117, 115, 116, 0,
-			101, 1, 114, 99, 97, 115, 3, 124, 55, 124, 0, 108, 97, 114, 100, 1, 10, 2, 32, 3, 132, 121, 0, 4, 1, 17, 67, 2, 101, 114,
-			3, 140, 55, 0, 1, 104, 99, 2, 100, 0, 1, 108, 2, 97, 104, 32, 0, 1, 115, 2, 101, 110, 0, 8, 17, 67, 2, 97, 103, 101,
-			0, 8, 17, 67, 2, 111, 0, 8, 109, 2, 100, 0, 8, 119, 2, 100, 0, 7, 6, 105, 109, 0, 4, 8, 2, 21, 3, 2, 124, 65,
-			0, 8, 2, 112, 101, 114, 17, 67, 21, 14, 128, 132, 130, 0, 8, 2, 112, 114, 101, 21, 14, 128, 132, 130, 0, 109, 8, 2, 21, 0,
-			4, 2, 112, 101, 99, 117, 3, 4, 124, 65, 0, 2, 112, 111, 114, 116, 117, 0, 2, 112, 114, 101, 115, 97, 0, 109, 2, 97, 116, 0,
-			109, 2, 101, 109, 0, 105, 108, 101, 1, 115, 3, 6, 124, 65, 113, 55, 124, 0, 1, 104, 115, 2, 97, 32, 3, 6, 132, 65, 0, 111,
-			117, 115, 1, 21, 2, 32, 3, 8, 124, 65, 13, 89, 0, 105, 110, 101, 1, 10, 2, 32, 3, 8, 124, 65, 132, 50, 0, 109, 117, 8,
-			2, 110, 111, 3, 113, 65, 57, 137, 0, 4, 1, 21, 2, 101, 116, 114, 3, 124, 65, 0, 2, 101, 110, 116, 12, 0, 2, 105, 116, 0,
-			2, 112, 97, 99, 0, 2, 112, 101, 116, 117, 115, 0, 2, 112, 108, 97, 110, 116, 32, 0, 2, 112, 108, 101, 0, 2, 112, 108, 105, 99,
-			97, 0, 2, 112, 114, 111, 118, 105, 115, 0, 2, 112, 117, 108, 115, 101, 32, 0, 2, 117, 109, 0, 109, 2, 105, 103, 0, 109, 2, 105,
-			110, 0, 109, 2, 117, 110, 105, 18, 71, 0, 101, 2, 110, 116, 111, 3, 124, 65, 6, 122, 0, 109, 111, 2, 98, 105, 3, 124, 65, 6,
-			139, 0, 112, 111, 2, 116, 101, 110, 3, 124, 65, 48, 13, 0, 112, 114, 101, 103, 5, 35, 2, 110, 97, 116, 3, 124, 65, 48, 34, 4,
-			122, 81, 0, 112, 114, 101, 103, 3, 124, 65, 48, 34, 6, 122, 81, 0, 97, 103, 2, 101, 13, 3, 124, 65, 113, 75, 0, 4, 101, 2,
-			116, 101, 114, 32, 3, 124, 65, 132, 0, 101, 2, 116, 114, 101, 0, 1, 10, 2, 32, 3, 125, 65, 0, 4, 1, 108, 99, 3, 140, 65,
-			0, 5, 3, 1, 115, 2, 117, 108, 116, 0, 8, 114, 112, 2, 97, 0, 98, 1, 108, 99, 0, 7, 6, 105, 110, 0, 8, 2, 110, 101,
-			114, 118, 12, 14, 128, 132, 130, 3, 2, 124, 0, 4, 8, 2, 21, 14, 128, 132, 130, 3, 2, 124, 50, 0, 8, 2, 99, 111, 114, 112,
-			0, 8, 2, 99, 114, 101, 100, 0, 8, 2, 115, 116, 105, 108, 0, 8, 2, 116, 101, 103, 114, 105, 0, 110, 8, 2, 117, 109, 0, 4,
-			116, 8, 2, 101, 114, 105, 111, 12, 3, 2, 124, 50, 47, 0, 116, 8, 2, 101, 114, 109, 105, 110, 12, 0, 116, 101, 114, 8, 2, 114,
-			111, 103, 3, 2, 124, 50, 47, 122, 0, 4, 116, 101, 114, 8, 2, 110, 25, 3, 2, 124, 50, 47, 131, 0, 116, 101, 114, 8, 2, 110,
-			97, 108, 0, 116, 101, 114, 8, 2, 112, 111, 108, 21, 0, 116, 101, 114, 8, 2, 112, 114, 0, 116, 101, 114, 112, 114, 101, 2, 116, 3,
-			2, 124, 50, 47, 131, 48, 34, 124, 0, 100, 8, 2, 101, 102, 105, 110, 3, 2, 124, 50, 72, 0, 102, 114, 97, 8, 2, 99, 3, 2,
-			124, 50, 83, 34, 35, 0, 102, 97, 8, 2, 108, 3, 2, 124, 50, 83, 35, 0, 4, 103, 1, 21, 2, 32, 12, 14, 128, 153, 131, 3,
-			2, 124, 68, 0, 103, 1, 108, 101, 2, 32, 12, 14, 128, 152, 131, 0, 103, 1, 109, 111, 21, 21, 2, 32, 14, 128, 152, 131, 0, 103,
-			1, 110, 101, 2, 32, 14, 128, 136, 131, 0, 103, 1, 114, 17, 66, 10, 2, 32, 0, 103, 1, 114, 101, 2, 32, 14, 128, 136, 131, 0,
-			103, 1, 114, 117, 101, 2, 32, 14, 128, 136, 131, 0, 103, 1, 117, 103, 111, 108, 2, 32, 14, 128, 136, 132, 0, 103, 1, 120, 10, 2,
-			32, 12, 14, 128, 136, 131, 0, 4, 103, 108, 121, 1, 21, 2, 32, 14, 128, 153, 133, 3, 2, 124, 68, 55, 2, 124, 0, 103, 108, 121,
-			1, 110, 101, 2, 32, 14, 128, 168, 133, 0, 103, 108, 121, 1, 114, 101, 2, 32, 14, 128, 168, 133, 0, 4, 103, 109, 101, 110, 116, 1,
-			21, 2, 32, 14, 128, 153, 135, 3, 2, 124, 68, 65, 13, 50, 47, 0, 103, 109, 101, 110, 116, 1, 114, 101, 2, 32, 14, 128, 136, 135,
-			0, 4, 103, 115, 1, 110, 101, 2, 32, 14, 128, 136, 132, 3, 2, 124, 68, 88, 0, 103, 115, 1, 114, 101, 2, 32, 14, 128, 136, 132,
-			0, 4, 8, 2, 100, 101, 14, 128, 132, 130, 3, 4, 124, 50, 0, 8, 2, 100, 105, 115, 14, 128, 132, 130, 0, 8, 2, 100, 105, 118,
-			14, 128, 132, 130, 0, 8, 2, 101, 120, 14, 128, 132, 130, 0, 8, 2, 115, 101, 99, 14, 128, 132, 130, 0, 8, 2, 115, 105, 103, 110,
-			105, 102, 14, 128, 132, 130, 0, 8, 2, 115, 105, 110, 99, 14, 128, 132, 130, 0, 116, 101, 114, 8, 2, 17, 65, 14, 128, 132, 133, 3,
-			4, 124, 50, 47, 13, 34, 0, 116, 114, 111, 8, 2, 21, 3, 4, 124, 50, 47, 34, 13, 0, 116, 101, 114, 8, 2, 21, 14, 128, 132,
-			133, 3, 4, 124, 50, 47, 114, 0, 102, 114, 97, 8, 2, 14, 128, 132, 133, 3, 4, 124, 50, 83, 34, 13, 0, 102, 111, 8, 2, 116,
-			3, 4, 124, 50, 83, 139, 0, 1, 21, 2, 99, 105, 97, 108, 3, 6, 124, 50, 0, 100, 97, 1, 21, 2, 32, 3, 6, 124, 50, 72,
-			13, 0, 2, 103, 97, 32, 3, 6, 124, 68, 0, 4, 1, 98, 2, 97, 32, 3, 6, 132, 50, 0, 1, 104, 112, 2, 97, 32, 0, 1,
-			107, 2, 97, 32, 0, 1, 108, 2, 97, 32, 0, 1, 114, 2, 97, 32, 0, 1, 116, 2, 97, 32, 0, 105, 1, 21, 2, 32, 3, 6,
-			132, 50, 124, 0, 111, 2, 32, 3, 6, 132, 50, 139, 0, 4, 1, 112, 115, 2, 97, 108, 32, 3, 6, 140, 50, 0, 2, 97, 108, 32,
-			28, 17, 0, 105, 110, 1, 10, 2, 32, 3, 8, 13, 50, 124, 50, 0, 1, 109, 10, 2, 97, 108, 32, 3, 8, 124, 50, 0, 111, 117,
-			115, 1, 21, 2, 32, 3, 8, 124, 50, 13, 89, 0, 1, 21, 2, 97, 116, 101, 3, 8, 125, 50, 0, 4, 1, 115, 97, 98, 2, 32,
-			3, 13, 50, 0, 5, 7, 1, 10, 2, 32, 0, 101, 115, 115, 1, 103, 2, 32, 14, 128, 130, 132, 3, 50, 13, 89, 0, 103, 115, 1,
-			21, 2, 32, 14, 136, 128, 129, 3, 88, 0, 4, 1, 109, 97, 120, 2, 101, 3, 113, 50, 0, 8, 2, 105, 109, 0, 101, 1, 109, 114,
-			101, 2, 32, 0, 4, 116, 114, 97, 8, 2, 99, 116, 3, 113, 50, 47, 34, 35, 0, 116, 114, 97, 8, 2, 110, 115, 0, 97, 8, 102,
-			2, 103, 108, 3, 113, 50, 141, 0, 4, 1, 10, 2, 101, 110, 17, 67, 3, 124, 50, 0, 1, 99, 2, 101, 0, 1, 99, 110, 105, 2,
-			101, 0, 1, 103, 2, 101, 0, 1, 107, 2, 100, 101, 114, 17, 67, 0, 1, 107, 2, 100, 108, 0, 1, 107, 2, 100, 114, 0, 1, 114,
-			116, 2, 105, 0, 2, 100, 101, 120, 0, 2, 100, 105, 97, 0, 2, 101, 97, 0, 2, 101, 101, 0, 2, 101, 115, 99, 0, 2, 102, 105,
-			110, 105, 116, 101, 0, 2, 115, 101, 99, 116, 0, 8, 2, 98, 0, 8, 2, 99, 97, 110, 0, 8, 2, 99, 101, 110, 115, 0, 8, 2,
-			99, 104, 0, 8, 2, 99, 111, 109, 17, 65, 0, 8, 2, 99, 114, 101, 0, 8, 2, 99, 117, 98, 0, 8, 2, 99, 117, 108, 0, 8,
-			2, 100, 105, 99, 0, 8, 2, 100, 105, 103, 111, 0, 8, 2, 100, 111, 108, 0, 8, 2, 102, 105, 100, 0, 8, 2, 102, 105, 108, 0,
-			8, 2, 102, 108, 111, 0, 8, 2, 102, 108, 117, 0, 8, 2, 102, 111, 32, 0, 8, 2, 106, 117, 114, 0, 8, 2, 108, 0, 8, 2,
-			109, 0, 8, 2, 111, 114, 103, 0, 8, 2, 112, 0, 8, 2, 113, 117, 101, 0, 8, 2, 113, 117, 105, 115, 0, 8, 2, 114, 0, 8,
-			2, 115, 101, 116, 0, 8, 2, 115, 104, 0, 8, 2, 115, 105, 103, 104, 0, 8, 2, 115, 111, 102, 0, 8, 2, 115, 111, 108, 97, 0,
-			8, 2, 115, 111, 108, 101, 0, 8, 2, 115, 111, 109, 117, 0, 8, 2, 115, 112, 105, 114, 0, 8, 2, 115, 116, 97, 103, 0, 8, 2,
-			115, 116, 97, 110, 0, 8, 2, 115, 116, 105, 0, 8, 2, 115, 116, 114, 117, 109, 0, 8, 2, 115, 117, 108, 0, 8, 2, 116, 101, 103,
-			0, 8, 2, 116, 105, 109, 97, 0, 8, 2, 116, 111, 110, 97, 0, 8, 2, 117, 110, 0, 8, 2, 118, 111, 105, 0, 8, 2, 119, 97,
-			0, 101, 1, 108, 97, 110, 2, 32, 0, 101, 1, 108, 117, 2, 32, 0, 101, 2, 32, 28, 18, 0, 110, 8, 2, 25, 0, 110, 8, 2,
-			101, 114, 0, 101, 120, 8, 2, 111, 114, 3, 124, 50, 6, 122, 49, 89, 0, 4, 105, 1, 102, 21, 2, 116, 101, 3, 124, 50, 13, 0,
-			110, 111, 8, 2, 99, 101, 0, 110, 111, 8, 2, 118, 0, 101, 114, 97, 1, 109, 2, 108, 3, 124, 50, 13, 34, 13, 0, 116, 101, 2,
-			108, 108, 101, 99, 3, 124, 50, 47, 13, 0, 116, 101, 114, 102, 101, 114, 3, 124, 50, 47, 13, 83, 6, 145, 0, 116, 101, 114, 8, 2,
-			101, 115, 116, 3, 124, 50, 47, 34, 0, 116, 114, 105, 103, 117, 3, 124, 50, 47, 34, 6, 132, 81, 0, 4, 116, 114, 97, 8, 3, 124,
-			50, 47, 34, 13, 0, 116, 114, 111, 8, 2, 118, 0, 116, 114, 105, 99, 97, 3, 124, 50, 47, 34, 124, 49, 13, 0, 116, 101, 114, 2,
-			118, 105, 101, 119, 3, 124, 50, 47, 114, 0, 99, 114, 101, 109, 3, 124, 50, 49, 34, 124, 65, 0, 101, 119, 8, 115, 3, 124, 50, 57,
-			137, 0, 100, 101, 108, 105, 8, 2, 98, 3, 124, 50, 72, 6, 122, 55, 13, 0, 100, 105, 8, 2, 103, 101, 110, 3, 124, 50, 72, 6,
-			124, 0, 100, 105, 103, 101, 8, 2, 115, 3, 124, 50, 72, 124, 75, 6, 122, 0, 103, 1, 114, 102, 110, 3, 124, 50, 75, 0, 4, 102,
-			97, 8, 2, 109, 3, 124, 50, 83, 13, 0, 102, 97, 8, 2, 110, 116, 25, 0, 102, 111, 114, 2, 109, 97, 116, 105, 111, 3, 124, 50,
-			83, 114, 0, 99, 105, 2, 100, 101, 3, 124, 50, 89, 124, 0, 115, 117, 98, 8, 3, 124, 50, 89, 129, 71, 0, 4, 105, 1, 109, 100,
-			97, 3, 124, 50, 124, 0, 105, 8, 109, 0, 117, 116, 101, 8, 109, 2, 109, 3, 124, 50, 124, 47, 0, 105, 97, 116, 117, 114, 1, 109,
-			3, 124, 50, 124, 76, 114, 0, 105, 115, 109, 2, 32, 3, 124, 50, 124, 88, 13, 65, 0, 101, 1, 118, 2, 103, 3, 124, 50, 125, 0,
-			4, 2, 103, 111, 116, 3, 124, 68, 0, 8, 2, 103, 114, 111, 0, 8, 2, 107, 0, 1, 21, 2, 97, 116, 105, 111, 110, 3, 125, 50,
-			0, 4, 101, 1, 99, 21, 2, 32, 3, 132, 50, 0, 101, 1, 100, 10, 2, 32, 0, 101, 1, 104, 99, 17, 65, 2, 32, 0, 101, 1,
-			104, 112, 2, 32, 0, 101, 1, 108, 105, 2, 32, 0, 101, 1, 108, 111, 2, 32, 0, 101, 1, 114, 21, 2, 32, 0, 101, 1, 116, 21,
-			2, 32, 0, 101, 1, 122, 2, 32, 0, 4, 1, 98, 2, 100, 3, 140, 50, 0, 1, 102, 2, 97, 0, 1, 102, 2, 100, 0, 1, 103,
-			21, 2, 97, 32, 0, 1, 104, 2, 100, 17, 66, 0, 1, 104, 2, 100, 32, 0, 1, 104, 99, 2, 97, 0, 1, 104, 101, 98, 2, 100,
-			0, 1, 104, 115, 2, 105, 0, 1, 107, 2, 100, 0, 1, 108, 98, 2, 100, 0, 1, 109, 2, 100, 0, 1, 114, 103, 2, 100, 0, 1,
-			119, 2, 100, 101, 114, 32, 0, 1, 119, 2, 100, 105, 110, 103, 0, 1, 119, 101, 114, 2, 100, 0, 1, 119, 110, 117, 2, 100, 0, 8,
-			114, 2, 100, 0, 101, 1, 112, 2, 32, 0, 101, 1, 114, 99, 2, 32, 0, 101, 1, 116, 110, 101, 21, 21, 2, 32, 0, 117, 8, 109,
-			2, 116, 101, 3, 140, 50, 6, 57, 137, 0, 7, 6, 105, 111, 0, 110, 101, 1, 21, 2, 32, 3, 6, 147, 50, 37, 0, 117, 115, 1,
-			103, 3, 8, 13, 89, 0, 117, 115, 1, 21, 3, 8, 113, 13, 89, 0, 1, 10, 2, 32, 3, 8, 113, 139, 0, 110, 5, 8, 1, 10,
-			2, 32, 3, 8, 124, 129, 50, 0, 5, 7, 1, 10, 2, 32, 3, 8, 132, 139, 0, 4, 110, 1, 10, 2, 32, 3, 8, 144, 50, 0,
-			110, 1, 108, 108, 2, 32, 0, 110, 1, 110, 0, 4, 1, 103, 2, 110, 12, 3, 13, 0, 1, 104, 115, 2, 110, 0, 117, 2, 114, 17,
-			65, 3, 57, 13, 0, 4, 114, 1, 10, 2, 32, 3, 57, 114, 0, 114, 1, 10, 2, 97, 108, 32, 0, 117, 114, 2, 25, 0, 2, 108,
-			105, 32, 3, 113, 6, 139, 0, 1, 109, 2, 110, 3, 113, 126, 0, 1, 100, 114, 97, 99, 3, 113, 139, 0, 114, 105, 116, 121, 3, 124,
-			6, 126, 34, 113, 47, 2, 124, 0, 2, 116, 29, 3, 124, 13, 0, 114, 1, 114, 2, 32, 3, 124, 114, 0, 2, 32, 3, 132, 139, 0,
-			117, 120, 3, 137, 0, 110, 101, 2, 32, 3, 140, 6, 139, 50, 37, 0, 4, 1, 98, 2, 108, 111, 103, 121, 3, 140, 126, 0, 1, 118,
-			0, 8, 2, 110, 0, 110, 1, 108, 108, 3, 144, 50, 0, 114, 1, 10, 2, 12, 3, 145, 0, 4, 1, 118, 2, 108, 3, 147, 0, 1,
-			122, 2, 110, 0, 8, 114, 2, 116, 0, 110, 8, 108, 3, 147, 50, 0, 7, 6, 105, 114, 0, 2, 101, 99, 116, 3, 2, 140, 34, 0,
-			4, 1, 21, 2, 111, 32, 3, 6, 144, 34, 0, 2, 97, 32, 0, 2, 105, 32, 0, 2, 97, 98, 108, 101, 3, 6, 148, 0, 1, 21,
-			2, 97, 116, 105, 111, 110, 3, 13, 34, 0, 1, 112, 115, 97, 2, 105, 3, 34, 0, 4, 8, 2, 114, 97, 116, 3, 113, 0, 8, 2,
-			114, 101, 21, 14, 128, 132, 130, 0, 8, 2, 97, 3, 113, 34, 0, 5, 3, 2, 101, 99, 116, 3, 114, 34, 0, 4, 2, 114, 111, 3,
-			124, 0, 2, 114, 117, 0, 8, 2, 114, 17, 65, 0, 4, 1, 109, 2, 97, 99, 3, 124, 34, 0, 1, 112, 115, 2, 18, 68, 0, 2,
-			105, 0, 2, 111, 0, 4, 97, 1, 112, 115, 110, 111, 99, 2, 116, 3, 124, 34, 13, 0, 117, 1, 118, 2, 108, 0, 4, 3, 131, 0,
-			1, 116, 115, 2, 32, 0, 4, 1, 103, 2, 111, 3, 140, 34, 0, 1, 118, 2, 117, 115, 0, 2, 101, 116, 121, 0, 8, 2, 105, 115,
-			104, 0, 8, 2, 111, 110, 18, 67, 12, 0, 8, 17, 67, 2, 111, 32, 0, 4, 101, 1, 99, 2, 110, 3, 140, 34, 13, 0, 111, 1,
-			118, 2, 110, 0, 101, 5, 8, 3, 140, 119, 0, 1, 17, 67, 21, 2, 32, 3, 145, 0, 4, 1, 115, 2, 101, 110, 3, 148, 0, 1,
-			115, 101, 100, 0, 2, 101, 101, 0, 97, 8, 112, 2, 99, 0, 101, 0, 101, 1, 112, 0, 111, 1, 25, 2, 110, 0, 101, 114, 2, 32,
-			3, 148, 34, 114, 0, 97, 108, 1, 112, 115, 3, 148, 34, 118, 0, 121, 2, 32, 3, 148, 34, 124, 0, 4, 5, 5, 3, 150, 0, 5,
-			5, 1, 116, 115, 2, 32, 0, 7, 6, 105, 115, 0, 4, 1, 21, 2, 99, 111, 32, 3, 6, 124, 89, 0, 1, 21, 2, 116, 105, 99,
-			32, 0, 99, 1, 21, 2, 101, 110, 17, 67, 0, 115, 2, 97, 32, 0, 115, 105, 109, 111, 2, 32, 3, 6, 124, 89, 124, 65, 139, 0,
-			116, 101, 1, 21, 2, 32, 3, 6, 132, 89, 47, 0, 104, 2, 17, 65, 32, 3, 6, 132, 91, 0, 1, 114, 2, 121, 32, 3, 8, 13,
-			89, 0, 1, 115, 17, 67, 21, 2, 32, 3, 8, 124, 89, 0, 116, 97, 110, 1, 21, 2, 32, 24, 3, 8, 124, 89, 47, 35, 50, 0,
-			116, 97, 110, 1, 21, 2, 32, 3, 8, 124, 89, 47, 121, 50, 0, 97, 5, 3, 2, 116, 105, 111, 110, 3, 13, 88, 141, 0, 1, 109,
-			97, 2, 32, 14, 128, 128, 129, 3, 88, 0, 8, 100, 2, 101, 3, 113, 89, 0, 104, 1, 10, 2, 32, 3, 113, 91, 0, 1, 118, 2,
-			105, 116, 3, 124, 88, 0, 4, 109, 1, 17, 66, 105, 21, 2, 32, 14, 128, 144, 131, 3, 124, 88, 13, 65, 0, 109, 1, 21, 2, 32,
-			14, 128, 145, 131, 0, 109, 1, 110, 97, 2, 32, 14, 128, 144, 131, 0, 109, 1, 116, 101, 2, 32, 14, 128, 128, 131, 0, 109, 1, 116,
-			111, 2, 32, 14, 128, 128, 131, 0, 4, 1, 98, 2, 32, 3, 124, 89, 0, 1, 99, 2, 32, 0, 1, 109, 17, 65, 114, 112, 0, 1,
-			109, 21, 21, 2, 32, 0, 1, 114, 2, 32, 0, 1, 118, 2, 32, 0, 4, 1, 118, 2, 99, 111, 117, 110, 3, 140, 0, 2, 108, 101,
-			32, 0, 8, 2, 108, 101, 0, 108, 97, 110, 100, 8, 3, 140, 55, 13, 50, 72, 0, 4, 1, 10, 2, 97, 98, 108, 3, 140, 88, 0,
-			1, 118, 100, 97, 0, 2, 101, 114, 12, 32, 0, 2, 111, 32, 0, 2, 111, 114, 32, 0, 101, 1, 108, 97, 105, 2, 32, 14, 128, 128,
-			131, 0, 101, 2, 32, 0, 101, 2, 100, 32, 0, 101, 114, 2, 32, 3, 140, 88, 114, 0, 97, 2, 116, 105, 111, 110, 3, 140, 88, 141,
-			0, 4, 1, 114, 104, 99, 2, 116, 32, 3, 140, 89, 0, 2, 105, 118, 101, 0, 7, 6, 105, 116, 0, 8, 2, 105, 110, 101, 114, 3,
-			2, 140, 47, 0, 114, 111, 8, 110, 2, 21, 3, 4, 140, 47, 34, 139, 0, 105, 117, 115, 2, 32, 3, 6, 124, 91, 13, 89, 0, 4,
-			1, 114, 101, 117, 103, 114, 3, 6, 132, 47, 0, 1, 116, 17, 65, 17, 67, 2, 32, 0, 2, 97, 32, 24, 0, 2, 105, 32, 0, 2,
-			111, 32, 0, 105, 115, 2, 32, 3, 6, 140, 47, 124, 89, 0, 1, 10, 2, 105, 118, 101, 32, 3, 8, 113, 47, 0, 4, 121, 1, 10,
-			2, 32, 3, 8, 113, 47, 2, 37, 0, 121, 1, 100, 10, 2, 32, 14, 128, 128, 131, 0, 121, 1, 100, 117, 29, 2, 32, 0, 1, 21,
-			21, 2, 97, 110, 32, 3, 8, 124, 47, 0, 111, 117, 115, 1, 10, 3, 8, 125, 47, 13, 89, 0, 97, 114, 121, 5, 3, 1, 10, 2,
-			32, 3, 13, 47, 122, 34, 2, 124, 0, 101, 115, 2, 32, 28, 18, 14, 128, 128, 129, 3, 89, 0, 4, 1, 10, 2, 101, 32, 3, 124,
-			47, 0, 1, 98, 114, 111, 0, 1, 100, 101, 114, 99, 0, 1, 108, 2, 101, 114, 0, 1, 110, 97, 114, 103, 2, 101, 0, 1, 110, 105,
-			102, 110, 2, 101, 0, 1, 114, 99, 2, 101, 32, 0, 1, 114, 117, 2, 101, 0, 1, 115, 105, 117, 113, 2, 101, 0, 1, 115, 111, 112,
-			2, 101, 0, 2, 101, 114, 97, 116, 0, 8, 100, 101, 0, 121, 8, 17, 67, 2, 32, 3, 124, 47, 37, 0, 101, 115, 1, 115, 111, 112,
-			2, 32, 3, 124, 47, 89, 0, 104, 1, 108, 2, 101, 114, 3, 124, 86, 0, 97, 1, 10, 2, 116, 105, 118, 101, 32, 3, 125, 47, 141,
-			0, 114, 101, 1, 108, 3, 132, 47, 114, 0, 4, 1, 10, 2, 101, 32, 24, 3, 140, 47, 0, 1, 99, 2, 101, 32, 0, 1, 99, 2,
-			101, 114, 32, 0, 1, 109, 97, 2, 101, 0, 1, 110, 2, 114, 17, 65, 0, 1, 110, 117, 2, 101, 0, 1, 116, 2, 108, 0, 1, 118,
-			2, 97, 108, 0, 1, 118, 2, 101, 114, 32, 0, 2, 101, 101, 32, 0, 2, 117, 109, 0, 8, 109, 2, 111, 0, 8, 112, 115, 2, 101,
-			0, 8, 115, 2, 101, 0, 8, 116, 2, 97, 110, 0, 101, 1, 114, 119, 0, 101, 1, 120, 2, 32, 0, 101, 8, 2, 109, 3, 140, 47,
-			13, 0, 114, 111, 1, 110, 2, 103, 101, 3, 140, 47, 34, 13, 0, 114, 111, 1, 110, 3, 140, 47, 34, 139, 0, 101, 115, 1, 10, 2,
-			32, 3, 140, 47, 89, 0, 4, 104, 8, 116, 3, 140, 86, 0, 104, 101, 1, 108, 0, 104, 101, 2, 32, 0, 7, 6, 105, 118, 0, 2,
-			111, 114, 111, 117, 115, 3, 6, 124, 84, 0, 4, 1, 114, 116, 110, 111, 99, 3, 6, 140, 84, 0, 1, 116, 99, 2, 97, 108, 0, 1,
-			118, 21, 2, 97, 108, 0, 97, 1, 108, 21, 2, 32, 3, 6, 140, 84, 13, 0, 4, 1, 17, 67, 17, 67, 29, 2, 101, 110, 3, 124,
-			84, 0, 1, 17, 67, 29, 2, 101, 108, 0, 1, 21, 2, 101, 0, 1, 104, 115, 2, 101, 114, 0, 1, 108, 2, 101, 114, 0, 1, 114,
-			2, 101, 108, 0, 1, 114, 2, 101, 110, 0, 1, 114, 2, 101, 114, 0, 1, 114, 2, 101, 116, 0, 8, 103, 2, 101, 0, 8, 114, 2,
-			101, 114, 32, 0, 101, 2, 110, 101, 115, 115, 0, 8, 116, 2, 111, 3, 132, 84, 0, 4, 1, 100, 121, 2, 101, 3, 140, 84, 0, 1,
-			104, 2, 101, 32, 0, 1, 108, 2, 101, 110, 0, 1, 110, 2, 101, 32, 0, 1, 114, 100, 2, 101, 32, 0, 1, 114, 100, 2, 101, 114,
-			0, 1, 114, 101, 100, 2, 101, 0, 1, 114, 112, 101, 100, 2, 101, 0, 1, 118, 2, 101, 0, 1, 119, 2, 101, 32, 0, 2, 101, 13,
-			0, 2, 111, 114, 32, 0, 8, 2, 97, 110, 0, 8, 108, 2, 101, 17, 66, 0, 8, 108, 97, 2, 101, 0, 8, 114, 114, 97, 2, 101,
-			0, 101, 8, 108, 2, 17, 66, 0, 97, 108, 1, 114, 3, 140, 84, 118, 0, 7, 6, 108, 101, 0, 1, 116, 116, 2, 21, 3, 14, 55,
-			0, 4, 1, 10, 2, 32, 3, 55, 0, 1, 114, 10, 2, 32, 0, 1, 17, 67, 11, 2, 17, 66, 105, 97, 3, 55, 6, 132, 0, 4,
-			1, 17, 67, 10, 2, 115, 115, 3, 55, 13, 0, 1, 98, 17, 65, 2, 17, 66, 32, 0, 115, 115, 1, 21, 2, 32, 14, 128, 130, 132,
-			3, 55, 13, 89, 0, 115, 115, 110, 101, 115, 115, 1, 21, 2, 32, 14, 128, 130, 136, 3, 55, 13, 89, 50, 13, 89, 0, 115, 115, 108,
-			121, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 13, 89, 55, 2, 124, 0, 4, 1, 116, 21, 2, 114, 121, 32, 3, 55, 114, 0, 114,
-			1, 98, 17, 65, 2, 32, 0, 114, 1, 98, 21, 2, 17, 67, 21, 0, 103, 103, 101, 100, 3, 55, 122, 81, 124, 72, 0, 115, 115, 5,
-			8, 1, 21, 2, 32, 14, 128, 130, 132, 3, 55, 122, 89, 0, 115, 115, 110, 101, 115, 115, 5, 8, 1, 21, 2, 32, 14, 128, 130, 136,
-			3, 55, 122, 89, 50, 122, 89, 0, 115, 115, 108, 121, 5, 8, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 122, 89, 55, 2, 124, 0,
-			109, 1, 112, 10, 2, 101, 110, 116, 3, 55, 124, 65, 0, 4, 1, 17, 67, 2, 116, 111, 110, 32, 3, 118, 0, 1, 17, 67, 10, 2,
-			32, 0, 1, 17, 67, 11, 2, 17, 66, 21, 0, 1, 98, 21, 2, 17, 67, 21, 0, 1, 100, 21, 2, 17, 67, 21, 0, 1, 103, 21,
-			2, 17, 67, 21, 0, 1, 116, 21, 2, 17, 67, 21, 0, 109, 1, 10, 2, 101, 110, 116, 3, 118, 65, 0, 100, 1, 98, 17, 65, 2,
-			32, 3, 118, 72, 0, 5, 8, 1, 17, 67, 10, 2, 32, 3, 122, 55, 0, 7, 6, 109, 105, 0, 4, 115, 8, 2, 116, 105, 109, 3,
-			65, 2, 124, 89, 0, 115, 8, 2, 116, 105, 116, 0, 100, 100, 108, 101, 8, 2, 101, 3, 65, 4, 124, 72, 118, 0, 115, 8, 2, 105,
-			110, 3, 65, 4, 124, 89, 0, 99, 114, 111, 8, 2, 21, 21, 21, 14, 128, 132, 133, 3, 65, 4, 140, 49, 34, 139, 0, 99, 114, 111,
-			8, 2, 21, 14, 128, 132, 133, 3, 65, 6, 140, 49, 34, 139, 0, 2, 115, 116, 97, 3, 65, 113, 0, 108, 108, 101, 110, 3, 65, 113,
-			55, 122, 50, 0, 4, 100, 8, 2, 101, 3, 65, 113, 72, 0, 100, 8, 2, 112, 114, 0, 4, 115, 8, 2, 21, 14, 128, 132, 131, 3,
-			65, 113, 89, 0, 115, 8, 2, 115, 17, 67, 14, 128, 132, 131, 0, 115, 99, 8, 2, 101, 0, 4, 8, 2, 110, 101, 114, 97, 3, 65,
-			124, 0, 8, 2, 115, 115, 105, 0, 108, 108, 8, 2, 105, 111, 110, 3, 65, 124, 55, 0, 108, 108, 105, 8, 3, 65, 124, 55, 124, 0,
-			115, 101, 114, 97, 98, 3, 65, 124, 88, 14, 34, 13, 71, 0, 4, 115, 2, 99, 104, 105, 101, 3, 65, 124, 89, 0, 115, 2, 100, 101,
-			109, 0, 115, 2, 102, 105, 0, 115, 2, 104, 97, 112, 0, 115, 2, 116, 114, 97, 108, 0, 115, 2, 116, 114, 101, 115, 0, 115, 2, 116,
-			121, 0, 115, 8, 2, 116, 105, 0, 115, 115, 8, 0, 115, 99, 105, 8, 2, 98, 3, 65, 124, 89, 13, 0, 115, 116, 108, 101, 3, 65,
-			124, 89, 118, 0, 115, 104, 2, 109, 97, 3, 65, 124, 91, 0, 8, 2, 110, 17, 65, 114, 3, 65, 140, 0, 99, 114, 2, 111, 3, 65,
-			140, 49, 34, 0, 4, 99, 114, 111, 2, 103, 114, 97, 112, 3, 65, 140, 49, 34, 13, 0, 99, 114, 111, 2, 115, 99, 111, 0, 99, 114,
-			111, 8, 2, 112, 104, 0, 99, 114, 111, 8, 2, 98, 3, 65, 140, 49, 34, 139, 0, 115, 2, 101, 114, 3, 65, 140, 88, 0, 7, 6,
-			110, 103, 0, 4, 1, 17, 65, 109, 2, 121, 3, 50, 75, 0, 1, 105, 98, 2, 101, 114, 0, 1, 105, 103, 2, 101, 114, 0, 1, 117,
-			2, 121, 0, 2, 101, 0, 2, 105, 101, 32, 0, 2, 105, 116, 105, 0, 8, 111, 108, 2, 105, 116, 0, 105, 2, 98, 3, 50, 75, 13,
-			0, 4, 101, 100, 3, 50, 75, 72, 0, 101, 100, 1, 111, 112, 115, 0, 4, 105, 110, 103, 1, 105, 104, 3, 50, 75, 113, 68, 0, 105,
-			110, 103, 1, 105, 114, 99, 0, 105, 110, 103, 1, 117, 2, 32, 0, 101, 1, 111, 99, 2, 115, 116, 3, 50, 75, 122, 0, 4, 3, 68,
-			0, 1, 105, 114, 2, 101, 114, 0, 1, 105, 115, 2, 101, 114, 0, 2, 121, 0, 117, 101, 0, 4, 101, 100, 1, 97, 3, 68, 72, 0,
-			101, 100, 1, 105, 108, 0, 101, 100, 1, 111, 0, 4, 1, 97, 98, 2, 101, 114, 3, 68, 81, 0, 1, 97, 108, 99, 2, 101, 114, 0,
-			1, 105, 2, 101, 114, 0, 1, 111, 2, 101, 114, 0, 1, 117, 111, 121, 2, 101, 114, 0, 2, 17, 65, 0, 2, 101, 115, 116, 0, 2,
-			108, 0, 2, 114, 0, 8, 97, 2, 101, 114, 0, 8, 105, 114, 2, 101, 0, 105, 110, 103, 2, 32, 3, 68, 113, 68, 0, 7, 6, 111,
-			108, 0, 4, 105, 1, 112, 2, 116, 101, 99, 3, 4, 126, 55, 124, 0, 121, 1, 112, 32, 24, 0, 111, 2, 103, 105, 3, 6, 126, 55,
-			13, 0, 4, 1, 21, 21, 2, 97, 114, 3, 6, 139, 55, 0, 1, 21, 21, 2, 117, 115, 0, 105, 115, 1, 112, 10, 3, 8, 13, 55,
-			124, 89, 0, 4, 1, 10, 2, 101, 110, 17, 67, 3, 13, 55, 0, 1, 10, 2, 111, 117, 115, 32, 0, 1, 109, 2, 101, 99, 0, 1,
-			112, 2, 105, 116, 101, 0, 1, 115, 2, 105, 99, 0, 1, 115, 2, 105, 100, 105, 0, 1, 115, 2, 105, 108, 0, 8, 2, 121, 109, 0,
-			108, 1, 112, 2, 117, 0, 108, 1, 114, 97, 99, 0, 111, 2, 103, 105, 99, 3, 13, 55, 6, 126, 0, 101, 1, 109, 2, 115, 116, 3,
-			13, 55, 122, 0, 105, 99, 101, 1, 112, 3, 13, 55, 132, 89, 0, 102, 1, 119, 3, 117, 55, 83, 0, 118, 1, 119, 3, 117, 55, 84,
-			0, 4, 1, 114, 116, 101, 112, 2, 32, 3, 118, 0, 1, 116, 115, 10, 2, 32, 0, 8, 100, 105, 0, 4, 1, 10, 2, 105, 32, 3,
-			126, 55, 0, 1, 21, 2, 111, 32, 0, 1, 104, 2, 97, 114, 0, 1, 109, 2, 101, 99, 117, 108, 101, 0, 1, 115, 2, 101, 109, 0,
-			1, 116, 2, 101, 114, 0, 1, 118, 2, 17, 67, 0, 8, 100, 105, 2, 97, 0, 108, 1, 114, 98, 0, 108, 1, 114, 116, 2, 17, 65,
-			0, 108, 1, 116, 97, 0, 1, 99, 2, 111, 117, 114, 3, 129, 55, 0, 111, 114, 1, 99, 3, 129, 55, 114, 0, 4, 1, 102, 2, 107,
-			3, 139, 0, 1, 121, 2, 107, 0, 4, 1, 114, 116, 110, 111, 99, 3, 139, 55, 0, 1, 116, 120, 101, 0, 2, 97, 110, 100, 32, 0,
-			2, 97, 114, 0, 8, 2, 97, 29, 0, 8, 98, 2, 115, 116, 0, 8, 99, 2, 98, 0, 108, 1, 110, 0, 108, 1, 114, 0, 108, 1,
-			116, 0, 108, 1, 119, 0, 4, 116, 3, 139, 55, 47, 0, 116, 1, 118, 0, 100, 3, 139, 55, 72, 0, 109, 2, 32, 3, 139, 65, 0,
-			7, 6, 111, 109, 0, 98, 111, 8, 114, 116, 2, 110, 3, 2, 126, 65, 71, 139, 0, 8, 2, 105, 17, 67, 3, 2, 139, 65, 0, 101,
-			1, 21, 2, 116, 114, 121, 3, 6, 126, 65, 13, 0, 4, 101, 1, 21, 2, 116, 114, 101, 3, 6, 126, 65, 124, 0, 101, 2, 116, 101,
-			114, 0, 105, 110, 2, 111, 3, 6, 126, 65, 124, 50, 0, 101, 1, 115, 2, 116, 104, 3, 6, 129, 65, 0, 101, 1, 110, 105, 21, 21,
-			2, 32, 3, 6, 139, 65, 141, 0, 4, 1, 10, 2, 105, 115, 101, 32, 3, 8, 13, 65, 0, 1, 10, 2, 105, 122, 101, 32, 0, 1,
-			21, 2, 105, 115, 116, 32, 0, 121, 1, 10, 2, 32, 3, 8, 13, 65, 2, 124, 0, 4, 1, 10, 2, 32, 3, 13, 65, 0, 1, 10,
-			2, 111, 117, 115, 32, 0, 1, 100, 2, 101, 115, 116, 0, 1, 100, 2, 105, 110, 105, 0, 8, 100, 2, 97, 0, 101, 114, 1, 10, 2,
-			32, 3, 13, 65, 114, 0, 97, 1, 116, 2, 116, 111, 3, 13, 65, 121, 0, 97, 1, 119, 2, 110, 3, 117, 65, 13, 0, 101, 1, 119,
-			2, 110, 3, 124, 65, 124, 0, 4, 1, 99, 2, 32, 3, 126, 65, 0, 1, 108, 103, 2, 101, 114, 0, 1, 114, 2, 32, 0, 8, 112,
-			2, 101, 0, 110, 105, 8, 2, 21, 3, 126, 65, 50, 6, 124, 0, 4, 1, 99, 2, 101, 3, 129, 65, 0, 1, 99, 2, 112, 97, 110,
-			0, 1, 115, 2, 101, 32, 0, 101, 8, 115, 0, 109, 1, 99, 2, 101, 0, 97, 99, 104, 1, 116, 115, 3, 129, 65, 13, 49, 0, 101,
-			114, 1, 99, 2, 32, 3, 129, 65, 114, 0, 4, 98, 1, 116, 2, 25, 3, 137, 65, 0, 98, 1, 119, 2, 32, 0, 98, 101, 1, 99,
-			2, 32, 0, 4, 1, 110, 2, 97, 100, 3, 139, 65, 0, 1, 114, 2, 97, 110, 0, 1, 114, 104, 99, 0, 98, 1, 99, 2, 32, 0,
-			101, 1, 114, 104, 99, 0, 97, 110, 1, 114, 2, 116, 105, 3, 139, 65, 6, 35, 50, 0, 7, 6, 111, 110, 0, 1, 100, 2, 97, 116,
-			3, 2, 139, 50, 0, 4, 1, 21, 2, 105, 99, 97, 3, 6, 126, 50, 0, 1, 115, 114, 101, 112, 2, 105, 0, 121, 109, 111, 117, 115,
-			3, 6, 126, 50, 124, 65, 13, 89, 0, 4, 1, 112, 116, 115, 111, 112, 3, 6, 139, 50, 0, 2, 105, 32, 0, 105, 115, 109, 1, 10,
-			2, 32, 3, 8, 13, 50, 124, 88, 13, 65, 0, 105, 115, 116, 1, 10, 2, 32, 3, 8, 13, 50, 124, 89, 47, 0, 4, 1, 10, 2,
-			97, 103, 101, 32, 3, 13, 50, 0, 1, 10, 2, 101, 114, 32, 0, 1, 17, 67, 11, 10, 2, 32, 0, 1, 21, 2, 32, 28, 18, 0,
-			1, 21, 21, 2, 32, 0, 1, 98, 10, 2, 32, 0, 1, 99, 10, 2, 32, 0, 1, 99, 101, 2, 100, 0, 1, 100, 17, 67, 2, 32,
-			0, 1, 103, 114, 2, 32, 0, 1, 104, 112, 2, 101, 116, 105, 0, 1, 107, 10, 2, 32, 0, 1, 108, 101, 2, 32, 0, 1, 108, 110,
-			2, 32, 0, 1, 109, 2, 100, 32, 0, 1, 109, 10, 2, 32, 0, 1, 114, 97, 2, 32, 0, 1, 114, 100, 2, 32, 0, 1, 115, 10,
-			2, 32, 0, 1, 115, 10, 2, 97, 110, 0, 1, 115, 114, 101, 112, 0, 1, 116, 10, 2, 32, 0, 1, 116, 111, 104, 112, 0, 1, 120,
-			10, 2, 32, 0, 121, 1, 10, 2, 32, 3, 13, 50, 2, 124, 0, 111, 117, 115, 1, 10, 3, 13, 50, 13, 89, 0, 101, 8, 3, 58,
-			128, 50, 0, 99, 101, 8, 2, 32, 3, 58, 128, 50, 89, 0, 101, 100, 1, 17, 67, 10, 2, 32, 14, 128, 136, 130, 3, 72, 0, 105,
-			110, 103, 1, 17, 67, 10, 2, 32, 14, 128, 136, 131, 3, 113, 68, 0, 4, 1, 103, 2, 101, 3, 126, 50, 0, 1, 110, 2, 101, 0,
-			1, 112, 2, 32, 12, 0, 1, 114, 99, 2, 32, 0, 1, 114, 111, 2, 32, 0, 1, 114, 116, 10, 2, 32, 0, 1, 119, 2, 107, 0,
-			1, 119, 2, 116, 0, 2, 97, 108, 100, 0, 5, 3, 1, 103, 97, 2, 32, 0, 5, 8, 1, 21, 2, 32, 12, 12, 0, 8, 112, 115,
-			0, 101, 1, 109, 2, 116, 105, 3, 126, 50, 113, 0, 101, 5, 3, 1, 109, 2, 116, 97, 3, 126, 50, 124, 0, 4, 1, 109, 2, 101,
-			121, 3, 129, 50, 0, 1, 109, 2, 107, 0, 1, 109, 2, 116, 104, 0, 1, 114, 102, 2, 116, 0, 1, 119, 0, 8, 2, 105, 111, 0,
-			8, 104, 2, 101, 121, 0, 8, 108, 2, 100, 111, 110, 0, 8, 112, 115, 2, 103, 0, 101, 1, 100, 110, 117, 2, 32, 0, 101, 1, 109,
-			2, 116, 97, 3, 129, 50, 124, 0, 103, 5, 35, 1, 109, 2, 101, 114, 3, 129, 68, 81, 0, 4, 2, 97, 110, 32, 3, 139, 50, 0,
-			8, 112, 2, 121, 0, 101, 8, 2, 114, 3, 139, 50, 13, 0, 117, 115, 3, 139, 50, 13, 89, 0, 7, 6, 111, 111, 0, 1, 10, 2,
-			110, 3, 6, 137, 0, 4, 1, 17, 67, 2, 107, 3, 117, 0, 1, 102, 2, 116, 0, 1, 103, 2, 100, 0, 1, 104, 2, 100, 0, 1,
-			104, 2, 100, 0, 1, 104, 2, 107, 0, 1, 115, 2, 116, 0, 1, 116, 115, 2, 100, 0, 1, 119, 2, 100, 0, 1, 119, 2, 108, 0,
-			4, 1, 108, 98, 2, 100, 3, 129, 0, 1, 108, 102, 2, 100, 0, 4, 114, 3, 136, 0, 114, 2, 32, 0, 4, 3, 137, 0, 1, 107,
-			2, 107, 0, 1, 109, 2, 110, 32, 0, 1, 112, 2, 107, 0, 1, 112, 115, 2, 110, 32, 0, 1, 115, 2, 116, 104, 0, 8, 2, 114,
-			0, 116, 2, 105, 99, 32, 3, 137, 6, 126, 47, 0, 115, 101, 1, 104, 99, 3, 137, 88, 0, 4, 115, 2, 101, 3, 137, 89, 0, 115,
-			101, 1, 103, 0, 8, 99, 2, 112, 3, 139, 6, 126, 0, 114, 1, 99, 2, 100, 3, 139, 6, 135, 0, 115, 1, 104, 99, 2, 101, 110,
-			3, 139, 88, 0, 4, 114, 1, 112, 3, 146, 0, 114, 8, 109, 0, 7, 6, 111, 114, 0, 8, 102, 2, 115, 21, 3, 2, 135, 0, 4,
-			101, 1, 102, 2, 99, 108, 111, 3, 2, 136, 0, 101, 1, 102, 2, 103, 111, 0, 101, 1, 102, 2, 115, 101, 0, 101, 1, 102, 2, 116,
-			111, 0, 121, 5, 3, 1, 116, 17, 65, 21, 21, 2, 32, 3, 4, 152, 34, 37, 0, 4, 1, 21, 2, 105, 99, 32, 3, 6, 126, 34,
-			0, 1, 21, 2, 105, 99, 97, 108, 0, 1, 21, 2, 99, 97, 32, 3, 6, 135, 0, 4, 2, 105, 32, 3, 6, 135, 34, 0, 2, 105,
-			120, 0, 2, 117, 109, 32, 3, 6, 136, 34, 0, 116, 101, 1, 102, 2, 32, 3, 6, 136, 47, 141, 0, 105, 108, 121, 1, 21, 2, 32,
-			3, 8, 114, 34, 13, 55, 37, 0, 4, 1, 10, 2, 97, 108, 32, 3, 13, 34, 0, 2, 105, 103, 105, 110, 97, 0, 97, 109, 97, 2,
-			32, 3, 13, 34, 6, 35, 65, 13, 0, 101, 115, 99, 3, 13, 34, 6, 122, 89, 0, 121, 1, 10, 2, 32, 3, 13, 34, 37, 0, 111,
-			1, 98, 2, 32, 3, 13, 34, 139, 0, 103, 8, 102, 2, 17, 65, 118, 3, 13, 81, 0, 1, 10, 2, 97, 116, 105, 118, 101, 3, 14,
-			34, 0, 101, 100, 1, 10, 2, 32, 28, 17, 14, 128, 128, 129, 3, 72, 0, 4, 1, 10, 2, 32, 3, 114, 0, 1, 10, 2, 101, 110,
-			101, 32, 0, 1, 98, 98, 2, 110, 0, 1, 100, 110, 101, 2, 32, 0, 1, 102, 2, 101, 118, 101, 114, 0, 1, 102, 2, 103, 17, 65,
-			116, 0, 1, 102, 10, 2, 100, 32, 0, 1, 102, 102, 101, 2, 116, 0, 1, 114, 114, 101, 116, 0, 1, 116, 110, 101, 118, 2, 32, 0,
-			8, 109, 101, 109, 2, 97, 0, 101, 1, 116, 21, 2, 32, 0, 4, 1, 10, 2, 97, 110, 116, 32, 3, 114, 34, 0, 1, 10, 2, 97,
-			116, 101, 0, 1, 10, 2, 97, 116, 105, 111, 110, 0, 1, 10, 2, 111, 117, 115, 0, 2, 97, 114, 18, 67, 0, 2, 105, 122, 17, 65,
-			0, 101, 100, 1, 10, 2, 32, 3, 114, 72, 0, 105, 116, 8, 118, 97, 102, 3, 114, 125, 47, 0, 99, 101, 1, 119, 2, 115, 116, 3,
-			117, 0, 2, 114, 3, 126, 0, 4, 1, 21, 2, 105, 116, 105, 3, 126, 34, 0, 1, 21, 2, 105, 116, 121, 0, 1, 108, 102, 2, 105,
-			0, 1, 109, 2, 97, 108, 0, 2, 101, 17, 66, 32, 0, 2, 101, 110, 17, 67, 0, 2, 105, 103, 0, 5, 35, 8, 104, 2, 111, 0,
-			8, 2, 105, 17, 67, 0, 114, 8, 109, 0, 4, 97, 2, 99, 108, 3, 126, 34, 13, 0, 97, 8, 2, 116, 111, 0, 101, 105, 103, 110,
-			1, 102, 3, 126, 34, 13, 50, 0, 4, 101, 1, 102, 2, 115, 116, 3, 126, 34, 124, 0, 105, 1, 104, 2, 122, 111, 110, 116, 0, 1,
-			119, 2, 114, 3, 129, 0, 111, 117, 103, 104, 3, 129, 34, 13, 0, 111, 117, 103, 104, 5, 3, 3, 129, 34, 139, 0, 4, 1, 119, 2,
-			25, 3, 131, 0, 1, 119, 2, 109, 0, 1, 119, 2, 115, 101, 0, 1, 119, 2, 116, 104, 0, 5, 3, 2, 114, 3, 133, 0, 4, 1,
-			99, 2, 107, 3, 135, 0, 1, 102, 2, 107, 0, 1, 104, 99, 2, 100, 0, 1, 108, 2, 100, 0, 1, 121, 2, 107, 0, 2, 99, 104,
-			32, 0, 2, 101, 115, 105, 115, 0, 2, 109, 32, 0, 2, 110, 32, 0, 2, 115, 101, 32, 0, 2, 116, 0, 8, 0, 8, 99, 2, 21,
-			0, 8, 102, 2, 21, 0, 8, 109, 0, 101, 8, 102, 2, 17, 65, 0, 101, 8, 102, 2, 17, 67, 0, 116, 1, 109, 101, 2, 32, 0,
-			101, 8, 102, 2, 107, 110, 3, 135, 4, 0, 103, 97, 110, 111, 8, 2, 21, 14, 128, 132, 134, 3, 135, 81, 4, 35, 50, 139, 0, 4,
-			3, 136, 0, 1, 99, 2, 101, 32, 0, 1, 100, 2, 32, 0, 1, 108, 112, 0, 1, 112, 2, 116, 0, 1, 116, 110, 2, 32, 0, 1,
-			116, 115, 2, 109, 0, 1, 119, 2, 101, 0, 1, 119, 2, 110, 0, 1, 119, 2, 116, 32, 0, 1, 119, 115, 2, 100, 0, 2, 32, 28,
-			17, 12, 12, 0, 5, 8, 1, 10, 2, 32, 0, 5, 8, 1, 21, 21, 2, 32, 14, 128, 144, 130, 0, 101, 0, 101, 1, 116, 115, 2,
-			32, 0, 101, 8, 109, 0, 114, 2, 32, 0, 4, 1, 108, 104, 99, 2, 105, 99, 3, 136, 34, 0, 1, 108, 104, 99, 2, 111, 117, 115,
-			0, 2, 17, 65, 0, 2, 101, 17, 65, 0, 2, 101, 116, 0, 2, 101, 120, 0, 105, 108, 121, 5, 3, 1, 21, 2, 32, 3, 136, 34,
-			13, 55, 37, 0, 121, 8, 116, 115, 3, 136, 34, 124, 0, 4, 5, 5, 1, 119, 2, 25, 3, 151, 0, 5, 5, 1, 119, 2, 109, 0,
-			5, 5, 1, 119, 2, 115, 101, 0, 5, 5, 1, 119, 2, 116, 104, 0, 7, 6, 111, 115, 0, 2, 105, 116, 121, 3, 6, 126, 89, 0,
-			111, 1, 21, 2, 112, 104, 3, 6, 126, 89, 13, 0, 2, 97, 108, 32, 3, 6, 139, 88, 0, 2, 105, 118, 101, 3, 6, 139, 89, 0,
-			105, 115, 2, 32, 3, 6, 139, 89, 124, 89, 0, 117, 114, 101, 3, 6, 139, 90, 114, 0, 1, 17, 67, 10, 2, 97, 117, 114, 32, 3,
-			8, 13, 89, 0, 105, 115, 1, 104, 112, 114, 2, 32, 3, 8, 13, 89, 124, 89, 0, 4, 1, 112, 2, 105, 116, 105, 111, 3, 13, 88,
-			0, 115, 1, 112, 2, 101, 115, 115, 0, 4, 1, 21, 2, 121, 32, 3, 13, 89, 0, 101, 1, 112, 114, 117, 112, 0, 111, 1, 21, 2,
-			112, 104, 105, 99, 3, 13, 89, 6, 126, 0, 101, 116, 1, 108, 99, 3, 126, 88, 125, 47, 0, 1, 112, 2, 116, 117, 3, 126, 89, 0,
-			99, 105, 108, 108, 111, 8, 3, 126, 89, 6, 124, 55, 126, 0, 4, 116, 1, 112, 2, 101, 114, 105, 3, 126, 89, 47, 0, 116, 1, 112,
-			97, 0, 116, 1, 112, 101, 114, 0, 116, 1, 112, 101, 114, 112, 0, 116, 1, 112, 109, 105, 0, 116, 1, 112, 109, 111, 99, 0, 116, 1,
-			112, 120, 101, 0, 116, 1, 112, 121, 104, 0, 4, 5, 3, 1, 99, 2, 116, 3, 134, 89, 0, 5, 3, 1, 114, 102, 2, 116, 0, 115,
-			5, 3, 1, 98, 0, 115, 5, 3, 1, 108, 0, 115, 5, 3, 1, 109, 0, 115, 5, 3, 1, 114, 0, 8, 108, 2, 101, 3, 137, 88,
-			0, 4, 1, 29, 2, 121, 3, 139, 88, 0, 8, 114, 2, 101, 13, 0, 101, 2, 32, 0, 4, 1, 99, 2, 101, 99, 3, 139, 89, 0,
-			1, 99, 2, 105, 110, 101, 32, 0, 101, 1, 99, 2, 32, 0, 115, 1, 114, 103, 0, 4, 116, 1, 104, 2, 32, 3, 139, 89, 47, 0,
-			116, 1, 104, 103, 0, 116, 1, 109, 0, 116, 1, 112, 0, 7, 6, 111, 116, 0, 101, 1, 104, 2, 108, 3, 2, 139, 47, 122, 0, 114,
-			111, 2, 112, 121, 3, 6, 126, 47, 34, 13, 0, 4, 1, 10, 2, 32, 28, 18, 3, 13, 47, 0, 1, 10, 2, 114, 121, 0, 1, 103,
-			10, 2, 32, 0, 1, 112, 2, 101, 110, 116, 105, 0, 1, 114, 114, 10, 2, 32, 0, 1, 118, 105, 112, 0, 121, 108, 101, 1, 99, 3,
-			126, 47, 124, 55, 6, 132, 0, 4, 104, 1, 98, 2, 101, 114, 3, 126, 86, 0, 104, 8, 114, 2, 101, 114, 0, 104, 2, 101, 114, 12,
-			3, 129, 86, 0, 104, 5, 3, 1, 108, 99, 3, 134, 87, 0, 4, 1, 99, 2, 97, 110, 3, 139, 47, 0, 1, 109, 2, 105, 118, 0,
-			1, 110, 2, 97, 0, 1, 110, 2, 111, 114, 0, 1, 114, 2, 97, 0, 1, 114, 2, 111, 0, 1, 116, 2, 97, 0, 2, 97, 116, 0,
-			105, 99, 101, 1, 110, 3, 139, 47, 113, 89, 0, 111, 114, 1, 109, 3, 139, 47, 114, 0, 111, 1, 114, 112, 2, 110, 3, 139, 47, 126,
-			0, 111, 1, 114, 112, 2, 17, 67, 3, 139, 47, 139, 0, 4, 104, 1, 108, 2, 105, 3, 139, 86, 0, 104, 1, 108, 2, 105, 97, 110,
-			0, 104, 1, 114, 116, 101, 98, 0, 104, 101, 1, 108, 99, 0, 104, 1, 98, 3, 139, 87, 0, 104, 101, 2, 114, 97, 112, 12, 3, 139,
-			87, 122, 0, 7, 6, 111, 117, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 2, 138, 47, 0, 1, 21, 2, 109, 32, 3, 6, 137, 0,
-			4, 115, 1, 17, 66, 10, 2, 32, 3, 8, 13, 89, 0, 115, 1, 114, 100, 10, 2, 32, 0, 4, 103, 104, 1, 114, 98, 2, 32, 3,
-			13, 0, 103, 104, 1, 114, 111, 0, 4, 115, 1, 10, 2, 32, 3, 13, 89, 0, 115, 1, 108, 10, 2, 32, 0, 115, 1, 109, 10, 2,
-			32, 0, 115, 1, 110, 10, 2, 32, 0, 115, 121, 1, 10, 2, 32, 3, 13, 89, 2, 37, 0, 1, 104, 2, 109, 3, 57, 137, 0, 97,
-			3, 58, 121, 0, 4, 114, 1, 10, 2, 32, 3, 114, 0, 114, 1, 112, 17, 65, 0, 114, 101, 100, 1, 10, 3, 114, 72, 0, 108, 2,
-			100, 3, 117, 0, 99, 101, 1, 108, 103, 2, 115, 3, 126, 0, 4, 103, 104, 1, 99, 3, 126, 83, 0, 103, 104, 1, 114, 116, 0, 4,
-			1, 99, 2, 110, 116, 114, 3, 129, 0, 1, 99, 2, 112, 108, 0, 1, 99, 2, 114, 97, 103, 0, 1, 99, 2, 115, 105, 0, 1, 100,
-			2, 98, 0, 1, 100, 2, 103, 0, 1, 110, 2, 114, 105, 0, 1, 114, 116, 2, 98, 108, 0, 1, 115, 2, 116, 104, 101, 114, 0, 1,
-			116, 2, 99, 104, 0, 1, 121, 2, 110, 103, 0, 4, 103, 104, 1, 108, 3, 129, 83, 0, 103, 104, 1, 110, 0, 103, 104, 1, 114, 0,
-			103, 104, 1, 116, 0, 4, 114, 3, 131, 0, 114, 1, 99, 2, 116, 101, 0, 114, 2, 110, 0, 114, 5, 3, 1, 99, 2, 97, 103, 0,
-			114, 5, 3, 1, 110, 2, 105, 0, 4, 103, 104, 1, 98, 2, 116, 3, 133, 0, 103, 104, 1, 104, 2, 116, 0, 103, 104, 1, 110, 2,
-			116, 0, 103, 104, 1, 114, 98, 2, 116, 0, 103, 104, 1, 114, 119, 0, 103, 104, 2, 116, 0, 103, 104, 8, 0, 4, 103, 104, 5, 3,
-			1, 99, 3, 134, 83, 0, 103, 104, 5, 3, 1, 114, 116, 0, 4, 114, 1, 98, 2, 110, 3, 136, 0, 114, 1, 99, 2, 115, 0, 114,
-			1, 99, 2, 116, 0, 114, 1, 99, 2, 116, 101, 115, 97, 0, 114, 1, 109, 2, 110, 0, 114, 1, 112, 0, 114, 1, 112, 110, 2, 32,
-			0, 114, 8, 102, 0, 114, 8, 121, 0, 114, 99, 101, 1, 115, 3, 136, 89, 0, 4, 1, 98, 2, 100, 3, 137, 0, 1, 98, 2, 108,
-			108, 0, 1, 99, 2, 116, 104, 0, 1, 104, 103, 2, 108, 0, 1, 107, 0, 1, 109, 2, 115, 115, 101, 0, 1, 110, 2, 103, 97, 0,
-			1, 114, 2, 98, 108, 0, 1, 114, 2, 116, 105, 110, 0, 1, 116, 2, 99, 97, 110, 0, 1, 119, 2, 110, 100, 17, 65, 0, 1, 119,
-			2, 110, 100, 17, 67, 0, 1, 121, 2, 116, 0, 2, 32, 0, 2, 102, 0, 2, 105, 0, 2, 108, 17, 65, 0, 2, 112, 0, 2, 118,
-			0, 2, 122, 0, 5, 35, 1, 114, 2, 116, 101, 0, 103, 104, 1, 114, 104, 116, 0, 120, 2, 32, 0, 103, 101, 1, 114, 3, 137, 90,
-			0, 99, 104, 1, 100, 3, 137, 91, 0, 4, 3, 138, 0, 1, 102, 2, 108, 101, 0, 1, 114, 17, 67, 2, 116, 0, 1, 121, 2, 116,
-			32, 0, 2, 116, 0, 98, 1, 100, 2, 116, 0, 103, 104, 1, 98, 0, 103, 104, 1, 100, 2, 116, 0, 103, 104, 1, 108, 112, 0, 103,
-			104, 1, 108, 115, 0, 103, 104, 1, 114, 100, 0, 4, 1, 98, 2, 108, 100, 3, 139, 0, 1, 104, 115, 2, 108, 100, 101, 114, 0, 1,
-			109, 2, 108, 17, 67, 0, 1, 115, 2, 108, 0, 2, 108, 116, 0, 103, 104, 0, 103, 104, 1, 100, 0, 103, 104, 1, 104, 0, 103, 104,
-			1, 108, 114, 0, 4, 114, 1, 98, 2, 115, 101, 3, 146, 0, 114, 1, 116, 0, 114, 1, 116, 2, 32, 0, 114, 1, 116, 2, 110, 0,
-			114, 5, 7, 8, 121, 0, 114, 8, 103, 2, 100, 0, 4, 114, 1, 99, 115, 3, 149, 0, 114, 1, 104, 0, 114, 1, 108, 102, 0, 114,
-			1, 115, 0, 114, 1, 116, 115, 0, 114, 1, 118, 101, 2, 101, 100, 0, 114, 1, 118, 101, 100, 0, 114, 8, 0, 114, 8, 100, 0, 4,
-			114, 5, 5, 3, 151, 0, 114, 5, 5, 1, 99, 2, 116, 101, 0, 114, 5, 5, 2, 110, 0, 7, 6, 111, 118, 0, 101, 114, 8, 2,
-			21, 14, 128, 132, 132, 3, 4, 139, 84, 114, 0, 2, 18, 67, 99, 104, 32, 3, 6, 139, 84, 0, 105, 116, 99, 104, 1, 21, 2, 32,
-			3, 8, 13, 84, 124, 76, 0, 4, 1, 99, 2, 101, 110, 17, 67, 3, 126, 84, 0, 1, 104, 2, 101, 108, 0, 1, 104, 2, 101, 114,
-			0, 1, 110, 2, 101, 108, 0, 1, 114, 103, 2, 101, 108, 0, 1, 114, 116, 2, 101, 114, 0, 8, 2, 117, 108, 0, 101, 114, 101, 105,
-			103, 110, 1, 115, 3, 126, 84, 13, 34, 124, 50, 0, 101, 114, 1, 112, 2, 21, 3, 126, 84, 114, 0, 1, 114, 112, 2, 101, 114, 3,
-			127, 84, 0, 4, 1, 99, 2, 101, 110, 3, 129, 84, 0, 1, 99, 2, 101, 116, 0, 1, 104, 115, 2, 12, 0, 1, 108, 0, 1, 108,
-			2, 101, 0, 5, 3, 1, 104, 2, 101, 114, 0, 8, 2, 101, 110, 0, 101, 1, 100, 0, 101, 8, 108, 2, 21, 0, 4, 101, 114, 1,
-			99, 3, 129, 84, 114, 0, 101, 114, 1, 99, 2, 32, 0, 101, 114, 110, 1, 103, 3, 129, 84, 114, 50, 0, 4, 1, 21, 2, 97, 108,
-			3, 137, 84, 0, 1, 109, 2, 17, 65, 12, 12, 12, 0, 1, 114, 112, 2, 101, 13, 0, 101, 114, 1, 114, 112, 2, 32, 3, 137, 84,
-			114, 0, 4, 1, 108, 99, 2, 101, 3, 139, 84, 0, 1, 108, 108, 117, 112, 0, 1, 108, 112, 0, 2, 101, 114, 0, 8, 2, 17, 65,
-			0, 8, 98, 2, 105, 0, 8, 108, 115, 2, 101, 110, 17, 65, 0, 4, 101, 114, 1, 10, 2, 32, 3, 139, 84, 114, 0, 101, 114, 2,
-			99, 111, 97, 0, 101, 114, 2, 100, 111, 115, 0, 101, 114, 2, 100, 114, 97, 0, 101, 114, 2, 100, 114, 105, 0, 101, 114, 2, 115, 105,
-			103, 0, 101, 114, 2, 116, 111, 110, 0, 101, 114, 2, 118, 105, 101, 0, 7, 6, 111, 119, 0, 2, 105, 116, 122, 32, 3, 8, 139, 84,
-			0, 2, 97, 121, 32, 3, 13, 58, 0, 108, 101, 1, 110, 107, 2, 100, 3, 126, 55, 124, 0, 4, 1, 97, 3, 138, 0, 1, 98, 2,
-			101, 108, 0, 1, 98, 2, 101, 114, 0, 1, 98, 2, 115, 17, 65, 0, 1, 98, 2, 115, 112, 0, 1, 99, 0, 1, 100, 2, 110, 0,
-			1, 100, 110, 101, 0, 1, 101, 109, 0, 1, 102, 0, 1, 103, 0, 1, 104, 0, 1, 104, 99, 0, 1, 104, 115, 2, 101, 114, 0, 1,
-			104, 119, 0, 1, 104, 121, 0, 1, 106, 0, 1, 107, 0, 1, 108, 99, 0, 1, 108, 103, 2, 101, 114, 0, 1, 108, 108, 97, 115, 105,
-			0, 1, 108, 112, 0, 1, 110, 2, 97, 100, 0, 1, 110, 101, 2, 110, 0, 1, 112, 0, 1, 114, 2, 100, 0, 1, 114, 98, 0, 1,
-			114, 99, 2, 110, 0, 1, 114, 100, 0, 1, 114, 102, 0, 1, 114, 103, 2, 108, 0, 1, 114, 112, 0, 1, 114, 116, 2, 101, 0, 1,
-			116, 2, 101, 108, 0, 1, 116, 2, 101, 114, 0, 1, 116, 2, 110, 0, 1, 118, 0, 1, 119, 0, 1, 121, 0, 8, 2, 108, 0, 8,
-			100, 0, 8, 108, 108, 97, 0, 8, 110, 2, 32, 0, 8, 110, 2, 116, 0, 101, 114, 1, 108, 102, 3, 138, 114, 0, 4, 3, 139, 0,
-			1, 99, 115, 111, 109, 0, 1, 104, 115, 0, 7, 6, 112, 101, 0, 8, 2, 110, 114, 3, 48, 2, 122, 0, 114, 8, 2, 105, 17, 67,
-			21, 21, 3, 48, 4, 122, 34, 0, 2, 110, 105, 110, 115, 117, 3, 48, 13, 0, 4, 8, 2, 114, 111, 103, 3, 48, 114, 0, 114, 2,
-			99, 101, 105, 0, 114, 2, 99, 101, 112, 0, 114, 2, 99, 117, 108, 105, 0, 114, 2, 99, 117, 115, 0, 114, 2, 102, 101, 99, 0, 114,
-			2, 102, 111, 114, 109, 0, 114, 2, 102, 117, 110, 0, 114, 2, 102, 117, 115, 0, 114, 2, 109, 105, 115, 115, 0, 114, 2, 109, 105, 116,
-			0, 114, 2, 112, 101, 116, 0, 114, 2, 112, 108, 101, 0, 114, 2, 115, 105, 115, 0, 114, 2, 115, 112, 0, 114, 2, 115, 117, 0, 114,
-			2, 115, 117, 0, 114, 2, 116, 97, 105, 0, 114, 2, 116, 117, 0, 114, 2, 118, 21, 0, 114, 8, 2, 105, 112, 104, 3, 48, 114, 34,
-			0, 114, 117, 115, 8, 3, 48, 114, 34, 137, 88, 0, 4, 114, 8, 2, 105, 115, 99, 3, 48, 122, 34, 0, 114, 8, 2, 105, 115, 104,
-			0, 114, 101, 103, 114, 105, 110, 8, 3, 48, 122, 34, 13, 81, 34, 124, 50, 0, 114, 105, 8, 2, 17, 66, 101, 3, 48, 122, 34, 113,
-			0, 114, 105, 110, 105, 8, 3, 48, 122, 34, 124, 50, 6, 132, 0, 8, 2, 99, 117, 108, 105, 3, 48, 124, 2, 0, 4, 114, 2, 112,
-			101, 116, 114, 3, 48, 131, 0, 114, 2, 118, 105, 0, 114, 109, 101, 2, 97, 3, 48, 131, 65, 124, 0, 114, 115, 101, 118, 101, 114, 3,
-			48, 131, 89, 124, 84, 6, 145, 0, 97, 99, 101, 3, 48, 132, 89, 0, 7, 6, 112, 114, 0, 8, 2, 17, 65, 17, 67, 17, 71, 32,
-			12, 3, 48, 34, 0, 4, 101, 8, 2, 17, 67, 21, 3, 48, 34, 2, 124, 0, 101, 8, 2, 99, 111, 99, 0, 101, 8, 2, 100, 105,
-			99, 0, 101, 8, 2, 115, 99, 114, 0, 101, 115, 8, 2, 101, 110, 116, 3, 48, 34, 2, 124, 88, 0, 111, 2, 118, 111, 99, 3, 48,
-			34, 2, 127, 0, 4, 101, 8, 2, 97, 100, 14, 128, 132, 131, 3, 48, 34, 2, 132, 0, 101, 8, 2, 97, 112, 112, 14, 128, 132, 131,
-			0, 101, 8, 2, 97, 115, 115, 14, 128, 132, 131, 0, 101, 8, 2, 100, 105, 14, 128, 132, 131, 0, 101, 8, 2, 101, 109, 0, 101, 8,
-			2, 109, 111, 108, 0, 101, 8, 2, 117, 0, 4, 111, 8, 2, 99, 111, 3, 48, 34, 2, 139, 0, 111, 8, 2, 99, 114, 117, 115, 0,
-			111, 8, 2, 115, 117, 109, 101, 114, 0, 4, 101, 8, 2, 99, 111, 14, 128, 132, 131, 3, 48, 34, 4, 132, 0, 101, 8, 2, 105, 110,
-			21, 14, 128, 132, 131, 0, 101, 8, 2, 114, 101, 14, 128, 132, 131, 0, 101, 8, 2, 115, 117, 112, 112, 14, 128, 132, 131, 0, 101, 100,
-			105, 8, 2, 108, 101, 99, 3, 48, 34, 4, 132, 72, 113, 0, 111, 2, 112, 97, 110, 3, 48, 34, 6, 139, 0, 111, 112, 121, 108, 5,
-			3, 3, 48, 34, 6, 139, 48, 118, 0, 111, 112, 121, 108, 3, 48, 34, 6, 139, 48, 140, 55, 0, 4, 111, 2, 99, 101, 100, 3, 48,
-			34, 13, 0, 111, 2, 99, 101, 101, 0, 111, 2, 99, 101, 115, 115, 105, 0, 111, 2, 99, 108, 97, 105, 0, 111, 2, 99, 117, 114, 0,
-			111, 2, 100, 117, 99, 0, 111, 2, 102, 97, 110, 0, 111, 2, 102, 101, 115, 0, 111, 2, 102, 105, 99, 0, 111, 2, 102, 111, 117, 0,
-			111, 2, 102, 117, 0, 111, 2, 103, 114, 101, 115, 0, 111, 2, 104, 105, 98, 0, 111, 2, 106, 101, 99, 0, 111, 2, 108, 105, 102, 0,
-			111, 2, 108, 111, 110, 0, 111, 2, 109, 111, 116, 0, 111, 2, 110, 111, 117, 110, 99, 0, 111, 2, 110, 117, 110, 0, 111, 2, 112, 101,
-			108, 0, 111, 2, 112, 101, 110, 115, 0, 111, 2, 112, 105, 116, 0, 111, 2, 112, 114, 105, 101, 0, 111, 2, 112, 117, 108, 0, 111, 2,
-			115, 112, 101, 99, 116, 17, 65, 0, 111, 2, 116, 101, 99, 0, 111, 2, 116, 101, 115, 116, 0, 111, 2, 116, 114, 97, 99, 0, 111, 2,
-			116, 114, 117, 0, 111, 2, 116, 117, 0, 111, 2, 118, 105, 100, 0, 111, 2, 118, 105, 115, 0, 111, 2, 118, 111, 107, 0, 111, 8, 2,
-			112, 17, 65, 0, 111, 8, 2, 115, 97, 0, 111, 8, 2, 115, 99, 0, 4, 101, 2, 99, 105, 111, 3, 48, 34, 122, 0, 101, 2, 106,
-			117, 100, 105, 0, 101, 8, 2, 17, 67, 11, 0, 101, 8, 2, 102, 101, 114, 101, 110, 0, 101, 8, 2, 103, 110, 0, 101, 8, 2, 109,
-			105, 0, 101, 8, 2, 110, 25, 0, 101, 8, 2, 112, 32, 0, 101, 8, 2, 112, 111, 115, 105, 0, 101, 8, 2, 115, 99, 111, 0, 101,
-			8, 2, 115, 116, 0, 4, 101, 100, 97, 2, 116, 111, 3, 48, 34, 122, 72, 13, 0, 101, 100, 105, 5, 3, 8, 2, 108, 101, 99, 0,
-			101, 118, 8, 2, 97, 108, 3, 48, 34, 122, 84, 0, 4, 101, 115, 2, 101, 110, 99, 3, 48, 34, 122, 88, 0, 101, 115, 8, 2, 101,
-			110, 116, 97, 0, 101, 115, 105, 2, 100, 101, 110, 3, 48, 34, 122, 88, 124, 0, 105, 110, 99, 2, 101, 13, 3, 48, 34, 124, 50, 89,
-			0, 4, 111, 2, 112, 101, 114, 3, 48, 34, 126, 0, 111, 2, 112, 104, 0, 111, 2, 112, 111, 115, 105, 116, 0, 111, 2, 115, 101, 99,
-			0, 111, 2, 118, 105, 100, 101, 110, 0, 111, 5, 3, 2, 99, 101, 115, 115, 0, 111, 8, 2, 112, 97, 103, 0, 111, 116, 101, 2, 115,
-			116, 97, 110, 3, 48, 34, 126, 47, 113, 0, 111, 98, 97, 98, 3, 48, 34, 126, 71, 13, 71, 0, 111, 115, 101, 8, 2, 108, 3, 48,
-			34, 126, 89, 0, 111, 2, 100, 117, 99, 116, 3, 48, 34, 127, 0, 4, 101, 2, 102, 105, 120, 3, 48, 34, 132, 0, 101, 2, 104, 105,
-			115, 116, 0, 101, 8, 2, 32, 0, 101, 8, 2, 97, 109, 0, 101, 8, 2, 99, 105, 110, 99, 0, 101, 8, 2, 102, 101, 99, 0, 101,
-			8, 2, 109, 105, 117, 0, 101, 8, 2, 113, 117, 0, 101, 8, 2, 115, 99, 0, 101, 8, 2, 118, 105, 101, 119, 0, 101, 8, 2, 118,
-			105, 111, 0, 101, 97, 8, 2, 99, 104, 0, 101, 100, 101, 2, 99, 101, 115, 3, 48, 34, 132, 72, 124, 0, 4, 111, 2, 102, 105, 108,
-			3, 48, 34, 139, 0, 111, 2, 103, 114, 97, 0, 111, 2, 108, 111, 103, 0, 111, 109, 101, 2, 116, 104, 3, 48, 34, 139, 65, 132, 0,
-			111, 103, 101, 8, 3, 48, 34, 139, 75, 6, 122, 0, 105, 8, 2, 111, 3, 48, 34, 140, 0, 105, 111, 2, 114, 105, 116, 3, 48, 34,
-			140, 6, 126, 0, 105, 118, 97, 116, 8, 3, 48, 34, 140, 84, 13, 47, 0, 7, 6, 114, 101, 0, 4, 2, 103, 101, 110, 101, 114, 3,
-			2, 34, 132, 0, 8, 2, 97, 114, 109, 0, 4, 8, 2, 97, 108, 105, 103, 3, 4, 34, 132, 0, 8, 2, 97, 108, 108, 0, 8, 2,
-			97, 117, 21, 14, 128, 132, 130, 0, 8, 2, 99, 111, 110, 14, 128, 132, 130, 0, 8, 2, 99, 114, 101, 97, 116, 0, 8, 2, 100, 101,
-			17, 67, 14, 128, 132, 130, 0, 8, 2, 100, 105, 114, 0, 8, 2, 100, 105, 115, 0, 97, 8, 2, 108, 108, 111, 14, 128, 132, 130, 0,
-			100, 101, 1, 110, 117, 2, 17, 67, 3, 4, 34, 132, 72, 113, 0, 1, 118, 117, 3, 13, 0, 100, 1, 116, 17, 67, 10, 2, 32, 3,
-			13, 72, 0, 4, 8, 2, 100, 114, 3, 34, 2, 132, 0, 8, 2, 101, 100, 117, 14, 128, 132, 130, 0, 8, 2, 101, 109, 14, 128, 132,
-			130, 0, 8, 2, 101, 110, 14, 128, 132, 130, 0, 8, 2, 101, 113, 14, 128, 132, 130, 0, 8, 2, 101, 115, 14, 128, 132, 130, 0, 8,
-			2, 101, 118, 97, 108, 14, 128, 132, 130, 0, 8, 2, 101, 120, 14, 128, 132, 130, 0, 8, 2, 105, 115, 115, 0, 116, 114, 111, 2, 14,
-			128, 132, 133, 3, 34, 4, 122, 47, 34, 139, 0, 4, 8, 2, 97, 17, 67, 11, 14, 128, 132, 130, 3, 34, 4, 132, 0, 8, 2, 97,
-			100, 106, 14, 128, 132, 130, 0, 8, 2, 99, 111, 109, 14, 128, 132, 130, 0, 8, 2, 105, 21, 14, 128, 132, 130, 0, 8, 2, 114, 101,
-			108, 14, 128, 132, 130, 0, 8, 2, 115, 99, 97, 110, 14, 128, 132, 130, 0, 8, 2, 115, 111, 108, 100, 14, 128, 132, 130, 0, 8, 2,
-			116, 105, 116, 14, 128, 132, 130, 0, 8, 2, 116, 114, 97, 110, 14, 128, 132, 130, 0, 8, 2, 117, 110, 14, 128, 132, 130, 0, 4, 1,
-			17, 65, 2, 32, 3, 34, 13, 0, 1, 114, 2, 32, 0, 2, 109, 101, 110, 116, 0, 114, 2, 32, 0, 100, 1, 17, 66, 10, 2, 32,
-			3, 34, 13, 72, 0, 4, 1, 110, 117, 2, 17, 67, 21, 3, 34, 113, 0, 2, 97, 99, 116, 0, 2, 100, 101, 109, 12, 0, 8, 2,
-			17, 67, 21, 0, 8, 2, 116, 105, 114, 0, 8, 99, 2, 100, 101, 110, 116, 0, 8, 99, 2, 100, 101, 110, 122, 0, 8, 99, 2, 109,
-			97, 116, 0, 97, 2, 108, 105, 116, 3, 34, 113, 35, 0, 112, 101, 2, 116, 105, 116, 105, 118, 3, 34, 113, 48, 122, 0, 108, 101, 2,
-			110, 116, 3, 34, 113, 55, 122, 0, 4, 108, 105, 1, 110, 117, 2, 97, 3, 34, 113, 55, 140, 0, 108, 105, 2, 97, 0, 4, 115, 2,
-			105, 103, 110, 3, 34, 113, 88, 0, 115, 2, 117, 108, 116, 0, 97, 2, 108, 116, 101, 3, 34, 113, 126, 0, 97, 2, 103, 101, 110, 3,
-			34, 113, 141, 0, 4, 2, 17, 67, 101, 108, 32, 3, 34, 122, 0, 2, 99, 107, 0, 2, 99, 116, 0, 2, 102, 117, 103, 0, 2, 103,
-			105, 115, 116, 0, 2, 110, 111, 118, 97, 0, 2, 112, 108, 105, 0, 2, 112, 114, 105, 109, 0, 2, 112, 116, 0, 2, 113, 117, 105, 115,
-			0, 2, 115, 105, 100, 117, 101, 0, 2, 115, 111, 108, 117, 0, 2, 115, 111, 110, 0, 2, 115, 116, 108, 0, 2, 115, 116, 114, 111, 0,
-			2, 116, 105, 0, 2, 116, 114, 105, 98, 0, 2, 118, 101, 114, 101, 110, 0, 2, 118, 111, 108, 117, 0, 8, 2, 17, 67, 17, 67, 32,
-			0, 8, 2, 17, 67, 32, 0, 8, 2, 99, 114, 101, 97, 116, 105, 0, 8, 2, 100, 17, 67, 0, 8, 2, 100, 17, 67, 0, 8, 2,
-			100, 111, 108, 101, 110, 0, 8, 2, 109, 111, 110, 115, 0, 8, 2, 110, 17, 67, 0, 8, 2, 115, 99, 117, 0, 8, 2, 118, 101, 108,
-			0, 97, 2, 108, 109, 0, 112, 101, 2, 116, 105, 116, 3, 34, 122, 48, 13, 0, 112, 114, 101, 115, 101, 110, 116, 3, 34, 122, 48, 34,
-			113, 88, 6, 122, 50, 47, 0, 112, 101, 114, 8, 2, 116, 3, 34, 122, 48, 114, 0, 99, 111, 2, 103, 3, 34, 122, 49, 13, 0, 99,
-			111, 110, 2, 99, 3, 34, 122, 49, 13, 50, 0, 99, 114, 101, 8, 2, 97, 110, 3, 34, 122, 49, 34, 132, 0, 108, 101, 8, 2, 103,
-			3, 34, 122, 55, 113, 0, 108, 101, 2, 118, 3, 34, 122, 55, 125, 0, 109, 105, 110, 105, 8, 3, 34, 122, 65, 125, 50, 6, 124, 0,
-			100, 1, 98, 17, 67, 2, 32, 12, 3, 34, 122, 72, 0, 103, 105, 109, 3, 34, 122, 75, 124, 65, 0, 103, 117, 2, 108, 3, 34, 122,
-			81, 57, 137, 0, 102, 101, 114, 101, 110, 100, 3, 34, 122, 83, 13, 34, 6, 122, 50, 72, 0, 118, 101, 2, 110, 17, 65, 3, 34, 122,
-			84, 13, 0, 115, 105, 2, 100, 101, 110, 3, 34, 122, 88, 113, 0, 109, 101, 110, 116, 3, 34, 124, 65, 13, 50, 47, 0, 104, 101, 110,
-			3, 34, 124, 107, 6, 122, 50, 0, 4, 2, 103, 101, 110, 3, 34, 132, 0, 2, 103, 105, 111, 110, 0, 8, 2, 97, 110, 0, 8, 2,
-			99, 101, 110, 116, 0, 97, 2, 109, 0, 97, 5, 3, 2, 108, 3, 34, 132, 14, 0, 115, 101, 2, 108, 3, 34, 132, 89, 122, 0, 116,
-			2, 97, 105, 108, 3, 34, 132, 108, 0, 4, 105, 8, 2, 99, 3, 34, 140, 0, 105, 8, 2, 108, 0, 105, 8, 2, 110, 104, 0, 105,
-			115, 8, 3, 34, 140, 88, 0, 105, 99, 104, 3, 34, 140, 101, 0, 97, 2, 108, 3, 34, 144, 0, 1, 10, 2, 32, 3, 114, 0, 7,
-			6, 115, 117, 0, 1, 101, 114, 2, 109, 17, 65, 3, 88, 57, 137, 0, 5, 3, 1, 101, 114, 2, 109, 17, 65, 3, 88, 137, 0, 4,
-			2, 98, 100, 117, 101, 3, 89, 2, 129, 0, 2, 98, 115, 101, 114, 0, 2, 98, 115, 105, 115, 0, 2, 98, 116, 114, 97, 0, 8, 2,
-			98, 111, 112, 0, 112, 101, 114, 2, 118, 105, 115, 105, 3, 89, 2, 137, 48, 114, 0, 112, 101, 114, 2, 105, 111, 3, 89, 2, 137, 48,
-			144, 34, 0, 8, 2, 98, 100, 105, 3, 89, 4, 129, 0, 112, 101, 114, 8, 2, 21, 21, 21, 14, 128, 132, 133, 3, 89, 4, 137, 48,
-			114, 0, 112, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 89, 6, 137, 48, 114, 0, 4, 2, 98, 109, 105, 3, 89, 13, 0, 2, 98,
-			115, 99, 114, 105, 98, 0, 2, 98, 117, 114, 98, 97, 0, 2, 98, 118, 0, 2, 99, 99, 17, 65, 0, 2, 102, 102, 105, 99, 0, 2,
-			112, 112, 108, 0, 2, 112, 112, 111, 114, 0, 2, 112, 112, 114, 101, 115, 0, 8, 2, 98, 109, 101, 114, 0, 98, 115, 116, 97, 2, 110,
-			116, 3, 89, 13, 71, 89, 47, 35, 0, 4, 115, 8, 2, 112, 3, 89, 13, 89, 0, 115, 8, 2, 116, 97, 105, 0, 115, 99, 8, 2,
-			101, 0, 1, 110, 2, 97, 108, 3, 89, 57, 137, 0, 4, 114, 1, 110, 117, 2, 112, 3, 89, 114, 0, 114, 2, 109, 0, 114, 2, 112,
-			97, 0, 114, 2, 112, 114, 0, 114, 2, 114, 0, 114, 2, 118, 0, 4, 2, 99, 99, 117, 108, 3, 89, 129, 0, 2, 112, 112, 108, 101,
-			0, 2, 112, 112, 108, 105, 99, 0, 8, 2, 98, 0, 114, 2, 114, 101, 121, 0, 4, 114, 3, 89, 131, 0, 114, 2, 103, 12, 0, 114,
-			8, 0, 112, 101, 114, 2, 108, 97, 3, 89, 137, 48, 6, 131, 0, 112, 101, 114, 3, 89, 137, 48, 114, 0, 115, 8, 2, 17, 65, 3,
-			89, 137, 88, 0, 4, 114, 5, 5, 3, 89, 151, 0, 114, 5, 5, 8, 0, 4, 114, 1, 97, 101, 3, 90, 114, 0, 114, 1, 111, 0,
-			114, 101, 1, 10, 2, 32, 0, 4, 2, 97, 108, 3, 90, 137, 0, 8, 97, 99, 0, 103, 97, 114, 3, 91, 117, 81, 114, 0, 5, 3,
-			1, 110, 2, 97, 108, 3, 91, 137, 0, 4, 114, 1, 110, 101, 3, 91, 146, 0, 114, 1, 110, 105, 2, 17, 65, 0, 114, 2, 97, 110,
-			99, 0, 114, 101, 8, 0, 7, 6, 116, 104, 0, 1, 10, 2, 18, 68, 32, 3, 8, 87, 0, 1, 32, 48, 15, 2, 32, 3, 13, 87,
-			0, 8, 2, 111, 109, 21, 3, 47, 0, 4, 1, 104, 103, 2, 17, 65, 3, 47, 107, 0, 2, 97, 110, 100, 0, 2, 101, 97, 100, 0,
-			2, 101, 97, 114, 116, 0, 2, 105, 108, 108, 0, 2, 111, 108, 100, 0, 2, 111, 108, 101, 0, 2, 111, 111, 100, 0, 2, 111, 117, 115,
-			101, 0, 101, 113, 117, 101, 3, 47, 122, 49, 0, 97, 109, 101, 115, 8, 3, 47, 122, 65, 88, 0, 97, 105, 3, 47, 140, 0, 4, 1,
-			97, 101, 2, 101, 114, 3, 86, 0, 1, 111, 111, 109, 115, 0, 1, 114, 2, 105, 101, 114, 0, 1, 114, 2, 121, 0, 1, 114, 111, 2,
-			105, 0, 2, 101, 110, 32, 0, 2, 101, 114, 17, 67, 0, 2, 101, 114, 110, 32, 0, 2, 101, 115, 116, 0, 2, 105, 116, 104, 0, 101,
-			2, 32, 0, 101, 109, 8, 3, 86, 2, 122, 65, 0, 101, 114, 101, 8, 2, 21, 3, 86, 2, 143, 0, 101, 108, 101, 115, 115, 3, 86,
-			13, 55, 6, 122, 89, 0, 101, 100, 1, 117, 111, 2, 32, 3, 86, 72, 0, 105, 110, 103, 1, 101, 101, 3, 86, 113, 68, 0, 4, 101,
-			114, 2, 32, 3, 86, 114, 0, 101, 114, 2, 101, 114, 0, 101, 114, 101, 2, 32, 0, 101, 114, 101, 8, 3, 86, 143, 0, 4, 3, 87,
-			0, 1, 32, 48, 48, 2, 32, 0, 1, 32, 48, 49, 2, 32, 0, 1, 97, 99, 2, 101, 114, 105, 0, 1, 103, 2, 101, 110, 32, 0,
-			1, 104, 112, 0, 1, 110, 2, 101, 114, 12, 0, 1, 114, 97, 101, 2, 121, 0, 1, 114, 111, 119, 2, 32, 0, 2, 101, 114, 109, 0,
-			8, 2, 17, 71, 0, 8, 2, 114, 17, 71, 0, 8, 2, 119, 17, 71, 0, 8, 101, 2, 101, 114, 0, 105, 111, 8, 3, 87, 4, 140,
-			139, 0, 101, 114, 97, 112, 3, 87, 122, 34, 13, 48, 0, 101, 8, 2, 109, 17, 65, 3, 87, 132, 0, 111, 117, 115, 97, 110, 100, 3,
-			87, 138, 88, 13, 50, 72, 0, 7, 6, 116, 105, 0, 118, 101, 1, 17, 67, 17, 65, 2, 32, 3, 8, 47, 124, 84, 0, 97, 110, 1,
-			10, 2, 32, 3, 8, 91, 13, 50, 0, 97, 110, 8, 3, 47, 57, 35, 50, 0, 97, 108, 1, 115, 3, 47, 57, 118, 0, 4, 1, 105,
-			112, 111, 114, 112, 2, 97, 3, 47, 124, 0, 1, 115, 2, 97, 108, 105, 0, 2, 97, 99, 0, 97, 1, 115, 10, 2, 32, 3, 76, 13,
-			0, 4, 97, 110, 1, 115, 10, 2, 32, 3, 76, 13, 50, 0, 111, 110, 1, 115, 10, 0, 111, 110, 5, 8, 1, 115, 10, 3, 76, 129,
-			50, 0, 111, 110, 1, 10, 3, 91, 8, 13, 50, 0, 111, 117, 115, 1, 10, 3, 91, 8, 13, 89, 0, 111, 110, 2, 97, 108, 32, 3,
-			91, 8, 14, 50, 0, 111, 110, 5, 8, 1, 10, 3, 91, 8, 129, 50, 0, 4, 97, 1, 10, 2, 32, 3, 91, 13, 0, 97, 1, 105,
-			2, 108, 105, 18, 71, 0, 4, 101, 110, 1, 10, 3, 91, 13, 50, 0, 111, 110, 2, 97, 108, 105, 116, 121, 0, 101, 110, 99, 101, 1,
-			10, 3, 91, 13, 50, 89, 0, 111, 110, 2, 97, 108, 3, 91, 14, 50, 0, 97, 108, 1, 10, 3, 91, 118, 0, 1, 10, 2, 97, 108,
-			105, 3, 91, 124, 0, 2, 109, 101, 32, 3, 108, 140, 0, 7, 6, 116, 117, 0, 1, 21, 2, 108, 97, 116, 3, 8, 76, 117, 0, 4,
-			1, 99, 2, 97, 108, 32, 3, 8, 76, 137, 0, 2, 111, 117, 115, 0, 114, 1, 21, 2, 97, 108, 32, 3, 76, 8, 13, 34, 0, 4,
-			5, 3, 2, 108, 97, 3, 76, 13, 0, 5, 3, 8, 97, 116, 115, 2, 116, 111, 0, 4, 114, 1, 10, 2, 121, 3, 76, 13, 34, 0,
-			114, 1, 21, 2, 17, 65, 0, 110, 101, 5, 3, 1, 114, 111, 102, 3, 76, 13, 50, 0, 4, 114, 1, 10, 2, 32, 3, 76, 114, 0,
-			114, 101, 1, 10, 2, 32, 0, 4, 1, 21, 2, 97, 108, 3, 76, 137, 0, 1, 21, 2, 97, 116, 0, 5, 3, 2, 17, 65, 110, 99,
-			121, 0, 5, 3, 2, 17, 65, 110, 116, 0, 8, 97, 116, 115, 0, 101, 1, 114, 2, 32, 0, 110, 101, 1, 114, 111, 102, 3, 76, 137,
-			50, 0, 7, 6, 117, 101, 0, 3, 57, 137, 0, 2, 110, 100, 3, 57, 137, 6, 122, 0, 4, 2, 110, 3, 57, 137, 13, 0, 2, 116,
-			0, 8, 17, 67, 2, 108, 0, 101, 3, 57, 137, 132, 0, 110, 101, 2, 32, 3, 57, 137, 132, 50, 0, 114, 2, 116, 3, 58, 143, 0,
-			4, 1, 108, 3, 137, 0, 1, 114, 0, 5, 3, 1, 18, 73, 0, 8, 115, 0, 1, 108, 2, 110, 116, 105, 3, 137, 6, 122, 0, 4,
-			1, 108, 2, 110, 3, 137, 13, 0, 5, 3, 8, 18, 73, 2, 108, 0, 8, 17, 67, 17, 67, 2, 108, 0, 7, 6, 117, 105, 0, 1,
-			21, 2, 116, 121, 3, 6, 57, 137, 124, 0, 1, 99, 114, 2, 116, 111, 117, 115, 3, 7, 57, 137, 124, 0, 1, 110, 2, 115, 3, 57,
-			137, 0, 1, 115, 101, 106, 2, 116, 3, 57, 137, 113, 0, 114, 2, 32, 3, 57, 146, 0, 114, 1, 99, 2, 97, 3, 58, 113, 34, 0,
-			115, 105, 110, 101, 1, 99, 3, 58, 113, 88, 132, 50, 0, 115, 1, 99, 3, 58, 124, 88, 0, 1, 103, 2, 116, 97, 3, 113, 0, 4,
-			1, 98, 2, 108, 3, 124, 0, 1, 99, 114, 2, 116, 0, 1, 103, 2, 108, 17, 67, 0, 8, 103, 2, 110, 0, 4, 1, 106, 2, 99,
-			3, 137, 0, 1, 108, 115, 0, 1, 114, 2, 116, 0, 1, 115, 2, 116, 0, 115, 1, 114, 2, 101, 3, 137, 88, 0, 1, 114, 103, 2,
-			116, 3, 137, 113, 0, 4, 1, 108, 102, 2, 100, 3, 137, 124, 0, 1, 114, 100, 2, 100, 0, 4, 1, 103, 2, 100, 17, 65, 13, 3,
-			140, 0, 1, 103, 2, 115, 101, 0, 1, 103, 101, 98, 2, 108, 0, 8, 103, 2, 108, 101, 0, 100, 101, 1, 103, 2, 108, 3, 140, 72,
-			0, 7, 6, 117, 110, 0, 4, 2, 97, 110, 105, 3, 2, 57, 137, 50, 0, 8, 2, 105, 113, 0, 4, 2, 114, 101, 103, 105, 3, 2,
-			129, 50, 0, 8, 2, 17, 65, 14, 128, 132, 130, 0, 8, 2, 21, 14, 128, 132, 130, 0, 8, 2, 103, 117, 97, 14, 128, 132, 130, 0,
-			8, 2, 105, 103, 110, 14, 128, 132, 130, 0, 110, 8, 3, 2, 129, 50, 50, 0, 4, 8, 114, 98, 2, 104, 105, 108, 3, 2, 137, 50,
-			0, 110, 8, 114, 98, 2, 104, 105, 108, 0, 105, 8, 2, 108, 3, 4, 57, 137, 50, 124, 0, 4, 8, 2, 100, 101, 14, 128, 132, 130,
-			3, 4, 129, 50, 0, 8, 2, 101, 110, 14, 128, 132, 130, 0, 8, 2, 101, 120, 14, 128, 132, 130, 0, 8, 2, 105, 100, 101, 0, 8,
-			2, 105, 109, 14, 128, 132, 130, 0, 8, 2, 105, 110, 14, 128, 132, 130, 0, 8, 2, 114, 101, 17, 67, 21, 14, 128, 132, 130, 0, 100,
-			101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 4, 129, 50, 72, 114, 0, 97, 8, 2, 98, 3, 4, 129, 50, 119, 0, 1, 21, 2, 97,
-			108, 3, 6, 57, 137, 50, 0, 2, 17, 65, 32, 3, 6, 137, 50, 0, 4, 1, 17, 67, 2, 101, 114, 3, 57, 137, 50, 0, 1, 116,
-			2, 101, 13, 0, 2, 105, 0, 8, 2, 17, 65, 32, 0, 8, 2, 105, 111, 0, 8, 2, 105, 120, 0, 101, 2, 32, 0, 105, 116, 2,
-			101, 3, 57, 137, 50, 6, 140, 47, 0, 105, 8, 3, 57, 137, 50, 124, 0, 4, 1, 112, 2, 105, 115, 104, 3, 129, 50, 0, 2, 17,
-			65, 0, 8, 2, 100, 117, 108, 97, 0, 8, 2, 103, 117, 0, 4, 1, 106, 2, 17, 65, 3, 137, 50, 0, 1, 114, 2, 105, 0, 5,
-			3, 1, 116, 2, 101, 13, 12, 0, 101, 1, 108, 2, 32, 0, 101, 1, 114, 2, 32, 0, 101, 5, 3, 1, 100, 2, 32, 0, 101, 5,
-			3, 1, 116, 2, 32, 0, 101, 8, 114, 0, 7, 6, 117, 112, 0, 4, 8, 2, 98, 3, 2, 129, 48, 0, 8, 2, 99, 0, 8, 2,
-			100, 0, 8, 2, 101, 0, 8, 2, 103, 0, 8, 2, 104, 0, 8, 2, 115, 101, 0, 8, 2, 115, 116, 0, 1, 115, 2, 114, 101, 3,
-			2, 137, 48, 0, 1, 108, 111, 118, 3, 6, 129, 48, 0, 1, 99, 99, 111, 3, 57, 117, 48, 0, 121, 1, 99, 99, 111, 3, 57, 117,
-			48, 140, 0, 104, 111, 2, 108, 115, 116, 3, 129, 48, 6, 139, 0, 111, 110, 3, 129, 48, 126, 50, 0, 4, 1, 17, 67, 2, 108, 101,
-			3, 137, 48, 0, 1, 17, 67, 2, 108, 105, 0, 2, 108, 32, 0, 7, 6, 117, 114, 0, 1, 17, 67, 2, 97, 32, 3, 6, 57, 146,
-			0, 1, 106, 2, 121, 3, 13, 34, 0, 1, 116, 2, 17, 65, 3, 57, 13, 34, 0, 101, 1, 115, 10, 2, 32, 3, 57, 13, 114, 0,
-			4, 101, 1, 110, 101, 2, 32, 3, 57, 114, 0, 101, 5, 3, 1, 103, 2, 32, 0, 4, 1, 17, 67, 2, 17, 65, 3, 57, 117, 34,
-			0, 1, 21, 2, 97, 116, 105, 111, 110, 0, 1, 21, 2, 121, 0, 97, 1, 21, 2, 116, 3, 57, 117, 34, 141, 0, 4, 2, 101, 100,
-			32, 3, 57, 146, 0, 8, 2, 17, 65, 0, 8, 102, 2, 17, 65, 0, 8, 102, 2, 121, 0, 101, 1, 116, 97, 99, 105, 2, 32, 0,
-			101, 2, 32, 0, 1, 98, 2, 101, 3, 57, 146, 34, 0, 4, 1, 103, 10, 2, 32, 3, 114, 0, 1, 104, 10, 2, 32, 0, 1, 109,
-			10, 2, 32, 0, 1, 116, 97, 115, 2, 100, 0, 101, 1, 103, 2, 32, 0, 101, 1, 106, 110, 2, 32, 0, 101, 1, 122, 105, 0, 101,
-			100, 1, 103, 2, 32, 3, 114, 72, 0, 4, 1, 98, 2, 105, 3, 122, 34, 0, 1, 98, 2, 121, 0, 114, 5, 35, 1, 98, 2, 111,
-			3, 129, 34, 0, 4, 1, 112, 115, 2, 32, 3, 131, 0, 2, 17, 66, 0, 2, 32, 0, 114, 1, 102, 2, 121, 0, 114, 2, 32, 0,
-			114, 5, 3, 0, 103, 1, 98, 2, 101, 114, 3, 131, 81, 0, 4, 101, 1, 108, 105, 2, 32, 3, 145, 0, 101, 1, 114, 2, 32, 0,
-			4, 1, 106, 2, 105, 3, 146, 0, 1, 108, 2, 17, 65, 12, 0, 1, 112, 10, 2, 32, 0, 8, 106, 2, 121, 0, 1, 114, 2, 17,
-			65, 12, 3, 146, 34, 0, 4, 5, 5, 1, 112, 115, 2, 32, 3, 151, 0, 5, 5, 2, 17, 66, 0, 5, 5, 2, 32, 0, 114, 5,
-			5, 1, 102, 2, 121, 0, 114, 5, 5, 2, 32, 0, 103, 5, 5, 1, 98, 2, 101, 114, 3, 151, 81, 0, 7, 6, 39, 0, 114, 101,
-			2, 32, 14, 128, 128, 131, 3, 13, 0, 118, 101, 2, 32, 14, 128, 128, 131, 3, 13, 84, 0, 100, 2, 32, 14, 128, 128, 130, 3, 72,
-			0, 4, 115, 1, 32, 54, 49, 2, 32, 3, 88, 0, 115, 2, 32, 14, 136, 128, 130, 0, 4, 115, 1, 102, 2, 32, 14, 136, 128, 130,
-			3, 89, 0, 115, 1, 104, 99, 111, 2, 32, 14, 136, 128, 130, 0, 115, 1, 107, 2, 32, 14, 136, 128, 130, 0, 115, 1, 112, 2, 32,
-			14, 136, 128, 130, 0, 115, 1, 116, 2, 32, 14, 136, 128, 130, 0, 4, 115, 1, 32, 54, 2, 32, 3, 113, 88, 0, 115, 1, 101, 99,
-			2, 32, 14, 136, 128, 130, 0, 115, 1, 101, 115, 2, 32, 14, 136, 128, 130, 0, 115, 1, 104, 99, 2, 32, 14, 136, 128, 130, 0, 115,
-			1, 104, 115, 2, 32, 14, 136, 128, 130, 0, 115, 1, 115, 2, 32, 14, 136, 128, 130, 0, 115, 1, 120, 2, 32, 14, 136, 128, 130, 0,
-			115, 1, 122, 2, 32, 14, 136, 128, 130, 0, 108, 108, 2, 32, 14, 128, 128, 131, 3, 118, 0, 7, 6, 69, 0, 3, 0, 4, 1, 21,
-			2, 109, 98, 101, 114, 3, 6, 122, 0, 2, 110, 116, 105, 0, 2, 110, 116, 111, 117, 115, 0, 2, 110, 116, 117, 0, 116, 116, 101, 2,
-			32, 3, 6, 122, 47, 0, 116, 116, 97, 2, 32, 3, 6, 122, 47, 13, 0, 99, 116, 111, 109, 121, 2, 32, 14, 128, 128, 134, 3, 6,
-			122, 49, 47, 13, 65, 124, 0, 110, 2, 100, 17, 65, 32, 3, 6, 122, 50, 0, 110, 115, 107, 2, 32, 3, 6, 122, 50, 89, 49, 0,
-			108, 108, 97, 2, 32, 3, 6, 122, 55, 13, 0, 115, 113, 117, 101, 3, 6, 122, 89, 49, 0, 4, 2, 17, 67, 105, 97, 3, 6, 132,
-			0, 2, 115, 105, 97, 0, 109, 2, 105, 99, 32, 3, 6, 132, 65, 0, 115, 101, 2, 32, 3, 6, 132, 88, 0, 97, 2, 110, 32, 3,
-			6, 144, 0, 114, 105, 2, 17, 65, 3, 6, 144, 34, 113, 0, 101, 114, 2, 32, 3, 6, 145, 0, 97, 2, 32, 3, 8, 144, 0, 111,
-			117, 115, 2, 32, 3, 8, 144, 89, 0, 110, 101, 114, 2, 32, 3, 10, 50, 13, 0, 110, 105, 110, 103, 2, 32, 3, 10, 50, 113, 68,
-			0, 4, 2, 17, 66, 17, 67, 32, 3, 13, 0, 2, 17, 66, 17, 67, 101, 32, 0, 2, 17, 66, 32, 0, 2, 110, 116, 0, 4, 114,
-			2, 105, 101, 32, 3, 13, 34, 0, 114, 2, 111, 117, 115, 32, 0, 114, 121, 2, 32, 3, 13, 34, 2, 124, 0, 4, 110, 2, 32, 3,
-			13, 50, 0, 110, 2, 97, 116, 17, 65, 0, 110, 2, 103, 0, 109, 2, 32, 3, 13, 65, 0, 115, 1, 114, 17, 67, 2, 32, 14, 128,
-			129, 130, 3, 13, 88, 0, 116, 114, 121, 2, 32, 14, 128, 128, 130, 3, 34, 124, 0, 4, 100, 1, 99, 10, 2, 32, 14, 128, 139, 130,
-			3, 47, 0, 100, 1, 104, 99, 10, 2, 32, 14, 128, 139, 130, 0, 100, 1, 107, 10, 2, 32, 14, 128, 139, 130, 0, 100, 1, 112, 10,
-			2, 32, 14, 128, 139, 130, 0, 100, 1, 120, 10, 2, 32, 14, 128, 136, 130, 0, 4, 100, 1, 21, 21, 2, 32, 14, 128, 139, 130, 3,
-			72, 0, 100, 1, 109, 111, 21, 21, 10, 2, 32, 14, 128, 136, 130, 0, 100, 1, 114, 117, 2, 32, 14, 128, 138, 129, 0, 100, 1, 121,
-			2, 32, 0, 110, 101, 100, 2, 32, 14, 128, 128, 130, 0, 115, 1, 10, 2, 32, 14, 128, 129, 130, 3, 88, 0, 100, 1, 17, 67, 10,
-			2, 32, 14, 128, 139, 130, 3, 109, 0, 4, 115, 1, 102, 2, 32, 14, 128, 129, 130, 3, 110, 0, 115, 1, 107, 2, 32, 14, 128, 129,
-			130, 0, 115, 1, 112, 2, 32, 14, 128, 129, 130, 0, 115, 1, 116, 2, 32, 14, 128, 129, 130, 0, 2, 111, 32, 3, 113, 0, 117, 115,
-			2, 32, 3, 113, 13, 89, 0, 4, 114, 1, 100, 97, 2, 32, 14, 128, 128, 129, 3, 114, 0, 114, 2, 17, 67, 0, 114, 2, 32, 0,
-			114, 115, 1, 100, 97, 2, 32, 14, 128, 128, 130, 3, 114, 88, 0, 4, 108, 2, 32, 3, 118, 0, 108, 101, 2, 32, 0, 108, 108, 2,
-			12, 0, 4, 1, 108, 2, 112, 115, 3, 122, 0, 1, 108, 2, 112, 116, 0, 2, 110, 100, 111, 117, 115, 0, 2, 110, 105, 110, 103, 0,
-			2, 115, 115, 0, 2, 116, 105, 99, 32, 0, 2, 116, 114, 105, 99, 0, 2, 120, 32, 0, 2, 122, 32, 0, 114, 2, 105, 99, 32, 3,
-			122, 34, 0, 110, 5, 8, 2, 32, 3, 122, 50, 0, 110, 105, 110, 103, 5, 8, 2, 32, 3, 122, 50, 113, 68, 0, 108, 5, 8, 2,
-			32, 3, 122, 55, 0, 115, 115, 2, 32, 3, 122, 89, 0, 1, 107, 97, 110, 2, 100, 3, 124, 0, 100, 108, 121, 2, 32, 14, 128, 129,
-			132, 3, 124, 72, 55, 2, 124, 0, 4, 100, 1, 100, 10, 2, 32, 14, 128, 139, 130, 3, 125, 72, 0, 100, 1, 116, 10, 2, 32, 14,
-			128, 139, 130, 0, 4, 39, 115, 1, 99, 2, 32, 14, 128, 129, 131, 3, 125, 88, 0, 39, 115, 1, 115, 2, 32, 14, 128, 129, 130, 0,
-			115, 1, 99, 2, 32, 14, 128, 129, 130, 0, 115, 1, 103, 2, 32, 14, 128, 129, 130, 0, 115, 1, 104, 99, 2, 32, 14, 128, 129, 130,
-			0, 115, 1, 104, 112, 2, 32, 14, 128, 129, 130, 0, 115, 1, 104, 115, 2, 32, 14, 128, 129, 130, 0, 115, 1, 115, 2, 32, 14, 128,
-			129, 130, 0, 115, 1, 120, 2, 32, 14, 128, 128, 130, 0, 4, 2, 100, 105, 97, 32, 3, 132, 0, 2, 100, 105, 99, 32, 0, 2, 116,
-			101, 32, 0, 69, 2, 32, 0, 101, 2, 32, 0, 101, 2, 100, 0, 105, 2, 110, 32, 0, 117, 109, 2, 32, 3, 132, 13, 65, 0, 110,
-			101, 2, 32, 3, 132, 50, 0, 109, 101, 2, 32, 3, 132, 65, 0, 119, 2, 32, 3, 137, 0, 105, 2, 32, 3, 140, 0, 121, 1, 98,
-			111, 2, 32, 3, 141, 0, 7, 6, 97, 0, 8, 2, 113, 117, 3, 2, 35, 0, 101, 114, 8, 99, 3, 2, 143, 0, 8, 2, 32, 15,
-			3, 4, 141, 0, 4, 1, 21, 2, 107, 105, 32, 3, 6, 35, 0, 1, 104, 2, 122, 97, 114, 0, 2, 122, 122, 32, 0, 4, 1, 21,
-			2, 122, 105, 32, 3, 6, 121, 0, 2, 17, 66, 111, 32, 0, 2, 17, 66, 117, 32, 0, 2, 17, 67, 97, 32, 0, 107, 117, 2, 32,
-			3, 6, 121, 49, 137, 0, 119, 105, 1, 21, 2, 32, 3, 6, 121, 58, 124, 0, 122, 101, 1, 107, 21, 2, 32, 3, 6, 121, 88, 124,
-			0, 4, 97, 114, 3, 6, 130, 0, 101, 114, 1, 114, 0, 101, 2, 118, 97, 108, 3, 6, 132, 0, 4, 1, 21, 2, 17, 66, 105, 97,
-			3, 6, 141, 0, 1, 21, 2, 17, 66, 105, 117, 0, 1, 21, 2, 116, 105, 111, 117, 115, 0, 2, 17, 67, 97, 98, 108, 101, 0, 2,
-			17, 67, 97, 98, 108, 121, 0, 2, 17, 67, 105, 98, 108, 101, 0, 2, 116, 105, 111, 110, 0, 2, 122, 105, 100, 101, 0, 8, 2, 45,
-			0, 101, 97, 3, 6, 144, 0, 4, 1, 98, 10, 2, 32, 3, 8, 13, 0, 1, 116, 108, 2, 32, 0, 111, 2, 32, 3, 8, 138, 0,
-			4, 1, 10, 2, 32, 3, 13, 0, 1, 10, 2, 116, 117, 114, 101, 32, 0, 1, 103, 2, 122, 101, 17, 67, 11, 0, 1, 109, 2, 104,
-			111, 103, 0, 1, 119, 111, 2, 100, 0, 2, 119, 97, 121, 32, 0, 101, 8, 110, 97, 2, 115, 0, 104, 1, 10, 2, 32, 0, 113, 117,
-			97, 2, 116, 3, 13, 49, 58, 35, 0, 4, 3, 35, 0, 1, 17, 67, 2, 120, 12, 0, 1, 109, 2, 106, 101, 115, 0, 1, 110, 2,
-			116, 117, 114, 97, 0, 1, 114, 98, 2, 122, 105, 108, 0, 1, 114, 114, 105, 2, 116, 105, 111, 0, 1, 119, 115, 2, 103, 0, 1, 119,
-			115, 2, 109, 32, 0, 1, 119, 115, 2, 110, 107, 0, 2, 17, 66, 101, 17, 67, 111, 32, 0, 2, 17, 66, 101, 114, 17, 65, 0, 2,
-			17, 66, 101, 114, 17, 67, 0, 2, 17, 66, 101, 116, 0, 2, 17, 66, 101, 117, 0, 2, 17, 67, 101, 101, 12, 0, 2, 119, 17, 65,
-			0, 8, 2, 118, 101, 0, 8, 2, 120, 12, 0, 8, 110, 2, 116, 105, 111, 110, 97, 108, 0, 8, 114, 2, 116, 105, 111, 110, 0, 4,
-			97, 1, 97, 97, 3, 35, 12, 0, 97, 2, 97, 0, 107, 1, 21, 2, 105, 97, 3, 35, 49, 0, 113, 117, 2, 97, 3, 35, 49, 58,
-			0, 113, 117, 105, 3, 35, 49, 58, 124, 0, 101, 100, 1, 21, 2, 32, 14, 128, 128, 130, 3, 72, 0, 4, 1, 29, 2, 28, 19, 12,
-			12, 12, 12, 12, 12, 3, 119, 0, 1, 45, 2, 45, 0, 1, 107, 2, 122, 111, 111, 0, 8, 2, 32, 0, 8, 2, 45, 104, 97, 108,
-			102, 0, 8, 2, 107, 105, 0, 8, 2, 119, 104, 21, 0, 8, 109, 2, 106, 111, 114, 21, 0, 113, 117, 2, 97, 114, 105, 17, 65, 3,
-			119, 49, 58, 0, 4, 119, 8, 2, 97, 12, 3, 119, 58, 0, 119, 8, 2, 111, 107, 0, 1, 108, 2, 116, 104, 3, 120, 0, 4, 1,
-			17, 67, 29, 2, 32, 3, 121, 0, 1, 119, 115, 2, 122, 0, 97, 0, 104, 2, 25, 0, 2, 17, 66, 105, 110, 103, 3, 122, 0, 101,
-			109, 111, 114, 114, 104, 1, 104, 3, 122, 65, 114, 34, 0, 1, 110, 103, 105, 115, 2, 116, 117, 114, 101, 3, 124, 0, 4, 1, 117, 113,
-			115, 2, 115, 104, 3, 126, 0, 1, 119, 2, 98, 0, 1, 119, 2, 100, 0, 1, 119, 2, 115, 0, 1, 119, 2, 116, 99, 0, 1, 119,
-			115, 2, 17, 66, 0, 104, 114, 2, 32, 24, 3, 130, 0, 4, 101, 3, 132, 0, 101, 1, 104, 2, 109, 0, 111, 105, 115, 2, 32, 3,
-			132, 91, 0, 111, 105, 115, 101, 2, 32, 3, 132, 91, 13, 0, 101, 111, 110, 2, 32, 3, 132, 126, 50, 0, 4, 1, 119, 2, 116, 101,
-			114, 3, 133, 0, 119, 0, 119, 8, 2, 102, 0, 119, 8, 2, 107, 0, 119, 101, 2, 17, 66, 0, 119, 101, 2, 32, 0, 119, 101, 8,
-			0, 119, 97, 108, 3, 133, 55, 0, 4, 111, 1, 109, 3, 138, 0, 111, 1, 109, 2, 114, 105, 0, 111, 1, 112, 0, 111, 1, 116, 0,
-			4, 101, 1, 109, 2, 115, 116, 3, 140, 0, 121, 8, 0, 4, 1, 17, 67, 29, 2, 17, 66, 121, 32, 3, 141, 0, 1, 32, 15, 2,
-			32, 0, 1, 104, 2, 122, 17, 65, 0, 1, 108, 25, 2, 122, 17, 71, 0, 1, 108, 98, 2, 122, 111, 110, 0, 1, 108, 103, 2, 99,
-			105, 0, 1, 109, 2, 106, 111, 114, 32, 0, 1, 110, 2, 17, 67, 97, 108, 0, 1, 110, 2, 116, 117, 114, 0, 1, 112, 2, 116, 105,
-			101, 110, 0, 1, 114, 2, 99, 105, 17, 65, 0, 1, 114, 2, 122, 105, 0, 1, 114, 101, 2, 115, 117, 114, 0, 1, 119, 2, 17, 66,
-			101, 13, 0, 1, 119, 115, 2, 116, 104, 0, 2, 17, 66, 101, 13, 0, 2, 17, 66, 101, 114, 111, 17, 65, 13, 0, 2, 17, 66, 101,
-			117, 112, 13, 0, 2, 17, 67, 97, 98, 105, 108, 105, 116, 121, 0, 2, 115, 105, 111, 110, 0, 2, 116, 104, 101, 32, 12, 0, 2, 122,
-			121, 0, 8, 2, 32, 45, 0, 8, 2, 118, 105, 97, 116, 0, 8, 2, 118, 111, 110, 0, 101, 2, 108, 0, 121, 0, 121, 1, 119, 0,
-			111, 114, 3, 141, 6, 136, 0, 111, 1, 103, 2, 108, 3, 141, 13, 0, 113, 117, 101, 2, 111, 3, 141, 49, 58, 124, 0, 101, 103, 2,
-			101, 114, 3, 141, 81, 0, 39, 115, 8, 2, 32, 3, 141, 88, 0, 122, 111, 114, 1, 114, 3, 141, 88, 114, 0, 121, 108, 101, 8, 3,
-			141, 118, 0, 111, 3, 141, 126, 0, 119, 121, 2, 101, 114, 32, 3, 142, 0, 4, 101, 114, 3, 143, 0, 101, 114, 8, 2, 111, 0, 121,
-			114, 8, 0, 4, 101, 114, 111, 2, 112, 108, 97, 110, 3, 143, 34, 13, 0, 101, 114, 111, 2, 115, 111, 108, 0, 101, 114, 111, 8, 3,
-			143, 34, 139, 0, 119, 114, 2, 32, 3, 149, 0, 7, 6, 98, 0, 4, 1, 109, 2, 32, 3, 0, 2, 98, 3, 0, 4, 116, 1, 101,
-			100, 3, 47, 0, 116, 1, 117, 115, 2, 108, 0, 4, 3, 71, 0, 8, 2, 18, 66, 17, 71, 0, 104, 8, 2, 21, 0, 97, 8, 2,
-			109, 98, 21, 3, 71, 2, 35, 0, 121, 8, 2, 122, 97, 110, 3, 71, 2, 124, 0, 4, 97, 108, 108, 105, 8, 2, 21, 3, 71, 4,
-			35, 55, 113, 0, 97, 108, 108, 121, 8, 2, 21, 0, 97, 116, 116, 108, 101, 8, 2, 21, 14, 128, 132, 134, 3, 71, 6, 35, 47, 118,
-			0, 111, 111, 107, 8, 2, 21, 21, 14, 128, 132, 132, 3, 71, 6, 117, 49, 0, 117, 114, 121, 1, 21, 2, 32, 14, 128, 130, 132, 3,
-			71, 34, 2, 124, 0, 114, 122, 8, 2, 101, 3, 71, 34, 88, 0, 108, 117, 101, 8, 2, 21, 14, 128, 132, 132, 3, 71, 55, 6, 137,
-			0, 106, 8, 2, 17, 65, 3, 71, 57, 0, 117, 103, 8, 2, 108, 101, 3, 71, 57, 137, 81, 0, 111, 8, 2, 115, 111, 109, 3, 71,
-			117, 0, 111, 111, 107, 1, 21, 2, 32, 14, 128, 128, 132, 3, 71, 117, 49, 0, 97, 108, 108, 105, 2, 115, 116, 3, 71, 119, 55, 6,
-			124, 0, 117, 114, 121, 5, 3, 1, 21, 2, 32, 14, 128, 130, 132, 3, 71, 122, 34, 2, 124, 0, 121, 116, 101, 8, 3, 71, 140, 47,
-			0, 121, 100, 101, 115, 105, 103, 110, 2, 32, 14, 128, 128, 136, 3, 71, 140, 72, 113, 88, 6, 140, 50, 0, 97, 121, 111, 117, 8, 3,
-			71, 140, 137, 0, 7, 6, 99, 0, 4, 1, 115, 2, 101, 3, 0, 2, 113, 3, 0, 122, 8, 2, 97, 114, 3, 47, 89, 0, 4, 3,
-			49, 0, 1, 97, 109, 2, 105, 110, 0, 2, 101, 108, 116, 0, 2, 105, 115, 104, 0, 8, 2, 18, 66, 17, 71, 0, 99, 0, 99, 1,
-			111, 99, 2, 105, 32, 0, 99, 1, 111, 115, 2, 101, 114, 0, 99, 104, 0, 107, 0, 114, 121, 112, 116, 8, 2, 97, 21, 14, 128, 132,
-			133, 3, 49, 34, 124, 48, 47, 0, 104, 97, 114, 97, 2, 99, 116, 3, 49, 35, 34, 113, 0, 117, 8, 2, 111, 3, 49, 58, 0, 117,
-			97, 1, 101, 3, 49, 58, 35, 0, 4, 99, 1, 97, 118, 2, 105, 110, 3, 49, 89, 0, 99, 2, 101, 0, 99, 2, 105, 0, 119, 109,
-			8, 3, 49, 117, 65, 0, 97, 99, 111, 2, 112, 104, 3, 49, 119, 49, 6, 126, 0, 105, 97, 8, 2, 114, 97, 3, 49, 144, 0, 4,
-			1, 110, 2, 101, 115, 99, 3, 76, 0, 99, 2, 105, 110, 17, 65, 32, 0, 122, 8, 2, 101, 0, 2, 101, 108, 108, 18, 68, 32, 3,
-			76, 6, 0, 122, 101, 99, 104, 3, 76, 122, 49, 0, 4, 2, 69, 3, 89, 0, 2, 97, 101, 115, 0, 2, 101, 0, 2, 105, 0, 2,
-			121, 0, 2, 195, 169, 0, 121, 98, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 89, 6, 140, 71, 114, 0, 101, 8, 2, 108, 101, 115,
-			116, 3, 89, 13, 0, 101, 109, 101, 110, 116, 8, 3, 89, 113, 65, 122, 50, 47, 0, 105, 115, 109, 2, 32, 3, 89, 124, 88, 13, 65,
-			0, 105, 112, 104, 2, 101, 114, 3, 89, 140, 83, 0, 4, 1, 101, 2, 105, 97, 3, 91, 0, 1, 105, 2, 105, 97, 0, 1, 117, 2,
-			105, 97, 0, 105, 97, 2, 114, 121, 3, 91, 8, 13, 0, 4, 101, 111, 117, 115, 3, 91, 8, 13, 89, 0, 105, 111, 117, 115, 0, 105,
-			97, 1, 10, 2, 29, 3, 91, 13, 0, 4, 105, 101, 110, 3, 91, 13, 50, 0, 105, 111, 110, 0, 105, 117, 115, 2, 32, 3, 91, 13,
-			89, 0, 105, 97, 108, 1, 10, 3, 91, 118, 0, 105, 97, 5, 8, 1, 10, 2, 29, 3, 91, 119, 0, 105, 101, 110, 5, 8, 3, 91,
-			122, 50, 0, 105, 97, 2, 108, 105, 116, 121, 3, 91, 124, 35, 0, 105, 97, 1, 10, 2, 98, 3, 91, 144, 0, 105, 97, 110, 1, 10,
-			3, 91, 144, 50, 0, 7, 6, 100, 0, 2, 100, 3, 0, 1, 109, 2, 32, 3, 4, 72, 132, 0, 117, 109, 1, 21, 2, 32, 3, 8,
-			72, 13, 65, 0, 116, 2, 32, 3, 47, 0, 110, 101, 1, 101, 119, 2, 115, 100, 3, 50, 0, 4, 3, 72, 0, 1, 101, 21, 21, 2,
-			32, 14, 128, 128, 129, 0, 8, 2, 104, 21, 21, 0, 8, 2, 110, 105, 101, 0, 8, 2, 114, 17, 71, 0, 8, 2, 119, 17, 71, 0,
-			39, 8, 2, 17, 65, 14, 128, 132, 130, 0, 100, 104, 0, 104, 2, 25, 0, 98, 2, 32, 3, 72, 4, 132, 71, 132, 0, 109, 105, 8,
-			2, 116, 114, 3, 72, 13, 65, 132, 0, 117, 5, 35, 2, 112, 108, 3, 72, 57, 137, 0, 4, 117, 114, 2, 17, 65, 3, 72, 57, 146,
-			0, 117, 114, 2, 32, 0, 4, 117, 5, 3, 8, 2, 111, 3, 72, 137, 0, 117, 8, 2, 112, 0, 121, 101, 8, 3, 72, 140, 0, 117,
-			114, 5, 3, 2, 17, 65, 3, 72, 146, 0, 105, 114, 8, 2, 32, 3, 72, 148, 0, 4, 103, 2, 17, 66, 3, 75, 0, 103, 2, 32,
-			0, 103, 2, 101, 0, 103, 2, 105, 0, 103, 2, 121, 0, 103, 101, 2, 21, 0, 106, 0, 106, 8, 2, 17, 71, 0, 103, 101, 116, 3,
-			75, 113, 47, 0, 4, 117, 114, 5, 3, 8, 98, 111, 3, 75, 114, 0, 117, 114, 101, 1, 101, 99, 0, 117, 114, 101, 5, 3, 1, 10,
-			2, 32, 0, 4, 117, 1, 21, 2, 97, 108, 32, 3, 75, 137, 0, 117, 1, 21, 2, 97, 108, 105, 115, 0, 117, 2, 99, 97, 116, 0,
-			117, 5, 3, 1, 10, 2, 17, 67, 17, 65, 0, 117, 5, 3, 2, 97, 116, 0, 7, 6, 101, 0, 4, 1, 10, 2, 32, 3, 0, 4,
-			1, 21, 21, 2, 109, 101, 110, 116, 32, 3, 0, 4, 2, 102, 117, 108, 3, 0, 2, 119, 111, 114, 107, 3, 0, 4, 1, 17, 66, 99,
-			97, 2, 32, 3, 2, 124, 0, 2, 102, 102, 101, 99, 0, 2, 102, 102, 105, 99, 0, 8, 2, 98, 117, 108, 108, 105, 0, 8, 2, 99,
-			108, 0, 8, 2, 102, 102, 97, 99, 0, 8, 2, 102, 102, 117, 0, 8, 2, 106, 17, 65, 0, 8, 2, 112, 104, 101, 109, 0, 8, 2,
-			113, 117, 97, 116, 0, 113, 117, 105, 8, 2, 112, 3, 2, 124, 49, 58, 124, 0, 113, 117, 105, 118, 2, 21, 3, 2, 124, 49, 58, 124,
-			84, 0, 113, 117, 105, 8, 2, 21, 3, 4, 132, 49, 58, 125, 0, 2, 17, 67, 105, 99, 97, 108, 3, 6, 122, 0, 4, 1, 21, 2,
-			17, 67, 105, 97, 32, 3, 6, 132, 0, 1, 21, 2, 103, 105, 99, 0, 1, 104, 2, 115, 105, 111, 110, 32, 0, 2, 17, 66, 111, 32,
-			0, 2, 17, 66, 111, 101, 32, 0, 101, 1, 116, 2, 110, 32, 0, 101, 2, 109, 0, 101, 114, 3, 6, 145, 0, 1, 10, 2, 109, 117,
-			109, 32, 3, 8, 13, 0, 122, 1, 21, 2, 32, 3, 8, 122, 88, 0, 4, 1, 10, 2, 110, 3, 13, 0, 1, 29, 2, 28, 19, 12,
-			12, 12, 0, 1, 108, 2, 103, 105, 116, 0, 1, 108, 101, 99, 2, 98, 114, 97, 0, 98, 108, 101, 1, 21, 21, 2, 32, 3, 13, 71,
-			118, 0, 103, 1, 10, 2, 121, 3, 13, 75, 0, 39, 115, 1, 114, 17, 67, 10, 2, 32, 3, 13, 88, 0, 99, 121, 1, 10, 2, 32,
-			3, 13, 89, 2, 37, 0, 4, 119, 3, 57, 137, 0, 119, 2, 32, 0, 119, 97, 121, 2, 32, 14, 128, 128, 131, 3, 58, 141, 0, 4,
-			39, 115, 1, 17, 67, 10, 2, 32, 14, 128, 130, 130, 3, 88, 0, 39, 115, 1, 104, 116, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115,
-			1, 114, 10, 2, 32, 14, 128, 130, 130, 0, 4, 39, 115, 1, 102, 10, 2, 32, 14, 128, 130, 130, 3, 89, 0, 39, 115, 1, 107, 10,
-			2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 112, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 116, 10, 2, 32, 14, 128, 130, 130,
-			0, 4, 1, 110, 2, 103, 111, 116, 3, 113, 0, 2, 111, 0, 4, 112, 2, 111, 120, 3, 113, 48, 0, 112, 8, 2, 105, 115, 17, 67,
-			0, 99, 99, 108, 101, 115, 8, 2, 105, 3, 113, 49, 55, 132, 88, 0, 102, 121, 1, 21, 21, 2, 32, 3, 113, 83, 140, 0, 102, 105,
-			101, 114, 2, 32, 3, 113, 83, 148, 0, 4, 3, 122, 0, 1, 104, 17, 65, 2, 110, 0, 1, 112, 115, 2, 99, 105, 97, 0, 1, 114,
-			10, 2, 110, 0, 1, 114, 99, 2, 112, 101, 12, 0, 1, 114, 99, 115, 105, 100, 2, 116, 105, 111, 110, 0, 2, 17, 67, 105, 99, 32,
-			0, 2, 102, 102, 105, 99, 97, 0, 112, 105, 8, 3, 122, 48, 124, 0, 112, 105, 100, 101, 114, 8, 3, 122, 48, 124, 72, 6, 131, 0,
-			99, 104, 1, 116, 2, 32, 3, 122, 49, 0, 4, 113, 117, 8, 2, 105, 110, 21, 3, 122, 49, 58, 0, 113, 117, 8, 2, 105, 116, 21,
-			0, 103, 105, 1, 108, 2, 98, 3, 122, 75, 13, 0, 103, 111, 8, 2, 116, 3, 122, 81, 13, 0, 4, 1, 108, 108, 2, 110, 103, 101,
-			3, 124, 0, 1, 109, 2, 99, 104, 97, 110, 105, 99, 0, 1, 116, 110, 105, 2, 103, 101, 0, 1, 116, 110, 105, 2, 103, 114, 97, 0,
-			1, 116, 114, 101, 118, 2, 98, 0, 8, 108, 101, 2, 109, 101, 110, 0, 101, 1, 102, 102, 111, 99, 0, 99, 111, 110, 111, 2, 109, 3,
-			124, 49, 6, 126, 50, 13, 0, 4, 39, 115, 1, 99, 10, 2, 32, 14, 128, 130, 130, 3, 124, 88, 0, 39, 115, 1, 103, 10, 2, 32,
-			14, 128, 130, 130, 0, 39, 115, 1, 104, 99, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 104, 112, 10, 2, 32, 14, 128, 130, 130,
-			0, 39, 115, 1, 104, 115, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 115, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 120,
-			10, 2, 32, 14, 128, 130, 130, 0, 4, 1, 17, 67, 29, 2, 17, 66, 101, 32, 3, 132, 0, 1, 17, 67, 29, 2, 32, 24, 0, 1,
-			21, 2, 116, 105, 111, 0, 1, 29, 2, 28, 22, 12, 12, 12, 0, 1, 29, 2, 103, 97, 110, 32, 0, 1, 100, 2, 102, 97, 117, 108,
-			116, 0, 1, 108, 2, 103, 97, 108, 0, 1, 110, 2, 103, 114, 111, 0, 1, 112, 115, 2, 99, 105, 101, 115, 0, 1, 114, 2, 103, 97,
-			108, 0, 1, 114, 102, 2, 113, 0, 2, 17, 67, 105, 117, 17, 66, 0, 2, 98, 114, 105, 97, 0, 2, 109, 101, 32, 0, 2, 109, 101,
-			111, 117, 0, 2, 113, 117, 97, 108, 0, 8, 2, 113, 117, 97, 0, 8, 17, 67, 2, 109, 117, 114, 0, 8, 115, 2, 113, 117, 101, 0,
-			101, 0, 99, 111, 110, 111, 2, 109, 105, 99, 3, 132, 49, 13, 50, 6, 126, 0, 99, 111, 8, 2, 115, 3, 132, 49, 139, 0, 103, 105,
-			111, 110, 1, 108, 3, 132, 75, 13, 50, 0, 103, 121, 2, 112, 116, 3, 132, 75, 124, 0, 103, 111, 8, 3, 132, 81, 139, 0, 4, 101,
-			115, 101, 1, 104, 99, 3, 132, 88, 0, 101, 122, 101, 2, 21, 0, 99, 1, 114, 112, 101, 100, 2, 18, 67, 3, 132, 91, 0, 4, 119,
-			1, 106, 2, 12, 3, 137, 0, 119, 1, 108, 2, 12, 0, 119, 1, 114, 2, 12, 0, 119, 5, 3, 1, 100, 0, 119, 5, 3, 1, 110,
-			0, 119, 5, 3, 1, 116, 0, 119, 8, 115, 0, 119, 101, 1, 106, 2, 108, 3, 137, 13, 0, 119, 8, 115, 2, 32, 3, 139, 0, 4,
-			104, 2, 25, 3, 141, 0, 106, 1, 118, 2, 32, 0, 39, 101, 114, 3, 143, 0, 7, 6, 102, 0, 2, 102, 3, 0, 4, 3, 83, 0,
-			8, 2, 18, 66, 17, 71, 0, 116, 2, 101, 110, 0, 111, 114, 2, 115, 101, 101, 3, 83, 2, 135, 0, 111, 114, 2, 119, 97, 114, 100,
-			3, 83, 6, 136, 0, 4, 97, 2, 109, 105, 108, 105, 97, 114, 3, 83, 13, 0, 111, 114, 2, 98, 97, 100, 0, 111, 114, 2, 98, 105,
-			100, 0, 105, 8, 2, 116, 122, 21, 3, 83, 113, 0, 117, 108, 1, 10, 2, 32, 14, 128, 130, 131, 3, 83, 118, 0, 101, 100, 1, 114,
-			101, 2, 32, 3, 83, 122, 72, 0, 106, 8, 2, 111, 114, 100, 3, 83, 124, 6, 0, 97, 2, 99, 105, 17, 65, 3, 83, 141, 0, 97,
-			99, 101, 8, 3, 83, 141, 89, 0, 7, 6, 103, 0, 8, 2, 110, 17, 71, 3, 0, 2, 121, 110, 111, 117, 115, 32, 3, 8, 75, 0,
-			4, 2, 114, 97, 32, 3, 8, 81, 0, 2, 114, 111, 32, 0, 111, 1, 10, 2, 110, 97, 108, 32, 3, 8, 81, 13, 0, 104, 116, 3,
-			47, 0, 110, 2, 32, 3, 50, 0, 110, 8, 105, 111, 112, 3, 50, 57, 0, 109, 2, 32, 3, 65, 0, 4, 1, 101, 118, 2, 101, 116,
-			3, 75, 0, 1, 111, 2, 101, 116, 0, 1, 114, 101, 2, 101, 116, 0, 2, 69, 0, 2, 101, 0, 2, 101, 116, 116, 101, 32, 0, 2,
-			105, 0, 2, 105, 98, 98, 101, 0, 2, 121, 0, 8, 2, 105, 97, 110, 116, 0, 8, 2, 105, 108, 108, 101, 0, 103, 1, 97, 120, 101,
-			2, 101, 114, 0, 101, 2, 110, 105, 99, 32, 3, 75, 6, 122, 0, 101, 110, 101, 115, 105, 115, 3, 75, 6, 122, 50, 113, 89, 124, 89,
-			0, 101, 111, 117, 115, 3, 75, 8, 13, 89, 0, 4, 105, 97, 1, 10, 2, 17, 67, 32, 3, 75, 13, 0, 105, 97, 1, 10, 2, 32,
-			0, 105, 117, 1, 10, 2, 109, 0, 4, 105, 110, 103, 1, 108, 3, 75, 113, 68, 0, 105, 110, 103, 1, 114, 0, 105, 97, 8, 2, 21,
-			21, 3, 75, 119, 0, 97, 111, 108, 8, 3, 75, 141, 55, 0, 4, 3, 81, 0, 1, 17, 65, 11, 2, 101, 114, 0, 1, 110, 117, 104,
-			0, 1, 111, 2, 121, 32, 0, 1, 111, 98, 2, 69, 121, 0, 1, 111, 103, 2, 105, 99, 32, 0, 1, 111, 111, 2, 101, 121, 0, 2,
-			101, 97, 114, 0, 2, 101, 101, 107, 0, 2, 101, 108, 100, 0, 2, 101, 116, 0, 2, 105, 98, 98, 0, 2, 105, 102, 116, 0, 2, 105,
-			103, 103, 0, 2, 105, 108, 17, 67, 0, 2, 105, 108, 116, 0, 2, 105, 114, 25, 0, 2, 105, 118, 101, 0, 8, 2, 18, 66, 17, 71,
-			0, 8, 2, 101, 99, 0, 8, 2, 101, 107, 0, 8, 2, 101, 114, 116, 0, 8, 2, 105, 100, 0, 8, 2, 105, 108, 25, 0, 8, 2,
-			105, 109, 0, 8, 2, 105, 116, 0, 8, 2, 105, 122, 0, 8, 2, 119, 17, 71, 0, 8, 2, 121, 110, 0, 103, 0, 104, 1, 17, 67,
-			2, 17, 65, 0, 104, 2, 17, 67, 0, 104, 2, 32, 0, 104, 2, 97, 110, 0, 104, 8, 2, 17, 71, 0, 117, 2, 101, 0, 117, 8,
-			2, 105, 0, 117, 101, 2, 32, 0, 105, 2, 32, 3, 81, 2, 124, 0, 101, 2, 100, 100, 3, 81, 6, 122, 0, 110, 117, 8, 3, 81,
-			13, 50, 137, 0, 117, 97, 121, 1, 21, 2, 32, 3, 81, 58, 140, 0, 101, 108, 1, 117, 108, 2, 25, 3, 81, 118, 0, 101, 1, 114,
-			111, 102, 2, 116, 3, 81, 122, 0, 105, 103, 97, 8, 3, 81, 124, 81, 13, 0, 4, 101, 105, 2, 115, 116, 32, 3, 81, 140, 0, 105,
-			1, 97, 2, 32, 0, 117, 105, 8, 2, 100, 17, 65, 0, 117, 105, 100, 101, 2, 21, 3, 81, 140, 72, 0, 7, 6, 104, 0, 4, 1,
-			17, 67, 2, 97, 109, 32, 3, 0, 4, 2, 32, 3, 0, 4, 2, 104, 3, 0, 4, 8, 2, 111, 110, 111, 114, 3, 0, 4, 8, 2,
-			111, 110, 111, 117, 3, 0, 8, 17, 66, 3, 0, 101, 39, 8, 3, 2, 107, 132, 0, 108, 1, 25, 3, 105, 0, 4, 3, 107, 0, 8,
-			2, 114, 111, 21, 0, 111, 109, 111, 8, 2, 115, 3, 107, 4, 139, 65, 139, 0, 4, 121, 112, 111, 2, 100, 101, 3, 107, 4, 140, 48,
-			13, 0, 121, 112, 111, 2, 116, 104, 101, 116, 0, 121, 112, 111, 8, 2, 21, 14, 128, 132, 132, 3, 107, 4, 140, 48, 139, 0, 97, 109,
-			109, 101, 100, 1, 21, 3, 107, 6, 35, 65, 124, 72, 0, 97, 110, 1, 101, 2, 32, 3, 107, 13, 50, 0, 97, 110, 1, 17, 65, 2,
-			32, 3, 107, 35, 50, 0, 111, 111, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 117, 72, 0, 111, 111, 100, 115, 1, 10, 2, 32,
-			14, 128, 128, 133, 3, 107, 117, 72, 88, 0, 101, 114, 111, 8, 2, 110, 3, 107, 122, 34, 13, 0, 101, 116, 101, 114, 111, 8, 3, 107,
-			122, 47, 34, 139, 0, 101, 97, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 122, 72, 0, 121, 112, 111, 8, 2, 99, 114, 3, 107,
-			124, 48, 126, 0, 111, 114, 114, 105, 8, 3, 107, 126, 34, 124, 0, 111, 114, 115, 101, 8, 3, 107, 135, 89, 0, 111, 117, 115, 101, 115,
-			2, 32, 14, 128, 128, 134, 3, 107, 138, 88, 113, 88, 0, 4, 111, 117, 115, 101, 2, 32, 14, 128, 128, 133, 3, 107, 138, 89, 0, 111,
-			117, 115, 101, 8, 2, 21, 0, 111, 108, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 139, 55, 72, 0, 111, 108, 109, 101, 3, 107,
-			139, 65, 0, 111, 109, 101, 8, 2, 111, 3, 107, 139, 65, 132, 0, 111, 109, 111, 101, 111, 8, 3, 107, 139, 65, 132, 139, 0, 4, 121,
-			112, 111, 2, 116, 101, 110, 117, 3, 107, 140, 48, 6, 126, 0, 121, 112, 111, 2, 116, 104, 101, 115, 0, 97, 2, 115, 116, 3, 107, 141,
-			0, 101, 114, 111, 3, 107, 144, 34, 139, 0, 111, 117, 101, 116, 116, 1, 108, 105, 115, 3, 117, 58, 6, 122, 47, 0, 111, 110, 101, 2,
-			115, 116, 3, 126, 50, 124, 0, 101, 105, 114, 3, 143, 0, 111, 117, 114, 3, 149, 0, 7, 6, 105, 0, 39, 8, 3, 2, 140, 0, 122,
-			105, 110, 103, 1, 108, 10, 2, 32, 14, 128, 128, 133, 3, 4, 140, 88, 124, 68, 0, 4, 1, 21, 2, 98, 117, 116, 105, 118, 101, 3,
-			6, 124, 0, 1, 21, 2, 98, 117, 116, 111, 114, 0, 1, 21, 2, 99, 105, 112, 0, 2, 17, 67, 17, 67, 105, 32, 0, 2, 99, 105,
-			97, 108, 0, 2, 103, 101, 110, 111, 117, 115, 0, 2, 116, 105, 111, 110, 0, 102, 2, 105, 99, 17, 65, 110, 17, 67, 3, 6, 124, 83,
-			0, 99, 105, 97, 110, 3, 6, 124, 91, 13, 50, 0, 4, 1, 21, 2, 100, 111, 32, 3, 6, 132, 0, 2, 98, 97, 32, 0, 2, 113,
-			117, 101, 32, 0, 2, 119, 111, 0, 99, 104, 101, 2, 32, 24, 3, 6, 132, 91, 0, 4, 1, 99, 2, 100, 97, 108, 3, 6, 140, 0,
-			2, 122, 111, 110, 32, 0, 97, 108, 1, 10, 2, 32, 3, 8, 113, 13, 55, 0, 117, 115, 1, 10, 3, 8, 113, 13, 89, 0, 99, 111,
-			1, 10, 2, 32, 3, 8, 113, 49, 139, 0, 102, 121, 1, 10, 2, 32, 3, 8, 113, 83, 140, 0, 4, 1, 10, 2, 99, 32, 3, 8,
-			124, 0, 1, 10, 2, 99, 97, 32, 0, 1, 10, 2, 99, 97, 108, 0, 1, 10, 2, 99, 105, 17, 67, 101, 32, 0, 1, 10, 2, 99,
-			105, 115, 109, 32, 0, 1, 10, 2, 99, 105, 115, 116, 32, 0, 1, 100, 2, 32, 0, 1, 104, 21, 21, 2, 32, 0, 1, 107, 115, 10,
-			2, 32, 0, 2, 99, 117, 115, 32, 0, 4, 1, 21, 2, 17, 67, 97, 116, 101, 32, 3, 8, 125, 0, 1, 21, 2, 17, 67, 97, 116,
-			111, 114, 32, 0, 1, 104, 2, 32, 3, 8, 140, 0, 117, 1, 10, 2, 109, 3, 8, 144, 0, 98, 108, 121, 1, 21, 2, 32, 14, 128,
-			169, 132, 3, 13, 71, 55, 2, 124, 0, 98, 108, 101, 1, 21, 2, 32, 14, 128, 137, 132, 3, 13, 71, 118, 0, 98, 108, 101, 115, 1,
-			21, 2, 32, 14, 128, 137, 133, 3, 13, 71, 118, 88, 0, 4, 1, 98, 98, 2, 32, 3, 37, 0, 1, 104, 115, 2, 32, 0, 2, 32,
-			0, 100, 104, 2, 32, 0, 4, 1, 21, 2, 99, 101, 32, 3, 113, 0, 1, 21, 2, 99, 101, 100, 32, 0, 1, 102, 2, 100, 101, 108,
-			0, 2, 111, 0, 4, 99, 101, 1, 102, 102, 111, 3, 113, 89, 0, 99, 101, 1, 118, 114, 101, 115, 0, 4, 3, 124, 0, 1, 10, 2,
-			17, 67, 101, 110, 99, 0, 1, 10, 2, 17, 67, 101, 110, 116, 0, 1, 10, 2, 122, 101, 110, 0, 1, 17, 67, 2, 120, 12, 12, 0,
-			1, 21, 2, 17, 67, 101, 114, 0, 1, 21, 2, 99, 101, 110, 99, 101, 0, 1, 21, 2, 108, 101, 115, 115, 0, 1, 21, 2, 110, 101,
-			115, 115, 0, 1, 99, 99, 97, 2, 100, 0, 1, 108, 2, 98, 101, 114, 0, 1, 108, 108, 101, 116, 110, 0, 1, 112, 117, 2, 100, 101,
-			0, 1, 114, 98, 2, 100, 103, 0, 1, 114, 105, 2, 100, 0, 1, 115, 115, 111, 103, 2, 112, 0, 2, 17, 66, 101, 101, 0, 2, 17,
-			66, 101, 108, 32, 0, 2, 17, 66, 101, 116, 32, 0, 2, 97, 110, 105, 32, 0, 2, 98, 105, 108, 105, 116, 0, 2, 100, 101, 111, 0,
-			8, 2, 100, 105, 0, 8, 103, 111, 108, 0, 8, 108, 2, 17, 67, 121, 32, 0, 8, 112, 2, 116, 121, 32, 0, 112, 101, 100, 101, 3,
-			124, 48, 132, 72, 0, 99, 104, 8, 3, 124, 49, 0, 98, 101, 1, 116, 2, 116, 3, 124, 71, 6, 122, 0, 102, 101, 1, 110, 97, 109,
-			2, 115, 3, 124, 83, 122, 0, 102, 105, 101, 114, 2, 32, 3, 124, 83, 148, 0, 4, 99, 104, 1, 108, 2, 32, 3, 124, 101, 0, 99,
-			104, 1, 108, 2, 101, 114, 32, 0, 105, 2, 32, 3, 124, 140, 0, 99, 101, 2, 108, 108, 105, 32, 3, 125, 76, 6, 122, 0, 4, 1,
-			17, 67, 29, 2, 17, 67, 97, 32, 3, 132, 0, 1, 17, 67, 29, 2, 17, 67, 111, 32, 0, 1, 102, 2, 106, 0, 2, 98, 111, 32,
-			0, 2, 113, 117, 32, 0, 5, 7, 2, 111, 0, 8, 108, 2, 98, 114, 101, 0, 122, 122, 8, 112, 3, 132, 47, 89, 0, 4, 1, 10,
-			2, 122, 97, 98, 108, 3, 140, 0, 1, 17, 67, 29, 2, 17, 67, 101, 114, 32, 0, 1, 17, 67, 29, 2, 17, 67, 121, 32, 0, 1,
-			17, 67, 29, 2, 32, 0, 1, 21, 2, 17, 67, 105, 110, 103, 0, 1, 29, 2, 28, 22, 12, 12, 12, 0, 1, 98, 2, 32, 0, 1,
-			98, 2, 98, 108, 101, 32, 0, 1, 99, 2, 32, 0, 1, 102, 2, 98, 114, 101, 0, 1, 104, 2, 106, 0, 1, 108, 2, 98, 101, 108,
-			0, 1, 114, 2, 102, 108, 0, 1, 114, 98, 2, 100, 108, 0, 1, 114, 99, 115, 2, 98, 101, 114, 0, 1, 114, 102, 2, 100, 97, 121,
-			0, 1, 114, 112, 2, 99, 101, 0, 1, 115, 2, 122, 17, 65, 0, 1, 116, 110, 101, 2, 99, 101, 0, 1, 116, 115, 2, 102, 108, 0,
-			1, 118, 2, 98, 114, 0, 1, 118, 100, 97, 2, 99, 101, 0, 1, 118, 101, 100, 2, 99, 101, 0, 2, 17, 66, 101, 13, 0, 2, 98,
-			101, 114, 32, 0, 2, 100, 101, 111, 108, 0, 2, 100, 101, 114, 12, 32, 0, 2, 100, 101, 114, 32, 12, 0, 8, 2, 17, 66, 111, 0,
-			8, 2, 17, 67, 121, 32, 0, 8, 2, 97, 0, 8, 2, 98, 0, 8, 2, 99, 0, 8, 2, 100, 0, 8, 2, 100, 108, 101, 0, 8,
-			2, 104, 0, 8, 2, 111, 0, 8, 108, 2, 98, 114, 0, 8, 114, 116, 115, 2, 97, 116, 0, 8, 115, 2, 100, 101, 114, 0, 8, 115,
-			2, 100, 108, 0, 8, 115, 2, 112, 104, 0, 104, 105, 1, 110, 3, 140, 13, 0, 99, 104, 97, 101, 108, 1, 109, 3, 140, 49, 118, 0,
-			98, 97, 98, 1, 21, 3, 140, 71, 13, 71, 0, 100, 101, 97, 8, 3, 140, 72, 6, 144, 0, 4, 122, 2, 101, 114, 32, 3, 140, 88,
-			0, 122, 101, 1, 108, 10, 2, 32, 14, 128, 128, 131, 0, 122, 101, 2, 32, 0, 122, 101, 2, 100, 32, 0, 122, 101, 100, 1, 108, 10,
-			2, 32, 14, 128, 128, 132, 3, 140, 88, 72, 0, 122, 101, 115, 1, 108, 10, 2, 32, 14, 128, 128, 132, 3, 140, 88, 125, 88, 0, 122,
-			97, 2, 116, 105, 111, 110, 3, 140, 88, 141, 0, 106, 2, 17, 67, 3, 141, 0, 7, 6, 106, 0, 2, 106, 3, 0, 4, 1, 110, 2,
-			97, 32, 3, 57, 0, 2, 195, 188, 0, 4, 111, 107, 117, 108, 108, 2, 32, 14, 128, 128, 134, 3, 57, 131, 49, 137, 47, 107, 0, 195,
-			182, 107, 117, 108, 108, 2, 32, 14, 128, 128, 134, 0, 97, 103, 101, 114, 3, 57, 141, 81, 114, 0, 117, 97, 110, 3, 58, 6, 121, 50,
-			0, 3, 75, 0, 105, 104, 97, 8, 2, 100, 3, 75, 113, 107, 121, 0, 97, 8, 2, 109, 97, 105, 3, 75, 119, 0, 101, 114, 101, 8,
-			2, 17, 67, 3, 75, 122, 34, 13, 0, 101, 115, 8, 2, 117, 105, 3, 75, 122, 88, 0, 117, 100, 101, 111, 8, 3, 75, 137, 6, 72,
-			141, 139, 0, 111, 97, 8, 2, 110, 21, 3, 75, 139, 6, 35, 0, 117, 97, 110, 8, 3, 107, 58, 121, 50, 0, 7, 6, 107, 0, 2,
-			107, 3, 0, 4, 3, 49, 0, 8, 2, 18, 66, 17, 71, 0, 8, 2, 104, 17, 71, 0, 8, 2, 119, 17, 71, 0, 104, 2, 17, 65,
-			32, 0, 104, 8, 2, 114, 21, 21, 0, 105, 110, 101, 115, 105, 115, 3, 49, 13, 50, 6, 132, 89, 125, 89, 0, 106, 8, 2, 101, 21,
-			3, 49, 57, 0, 117, 97, 110, 3, 49, 58, 35, 50, 0, 105, 8, 2, 108, 17, 67, 21, 3, 49, 113, 0, 104, 97, 8, 3, 49, 121,
-			0, 105, 8, 2, 108, 108, 21, 3, 49, 124, 0, 105, 108, 111, 8, 2, 21, 3, 49, 124, 55, 13, 0, 104, 97, 114, 3, 49, 130, 0,
-			117, 2, 99, 104, 3, 49, 137, 0, 117, 119, 97, 105, 116, 3, 49, 137, 58, 6, 141, 47, 0, 121, 111, 3, 49, 140, 139, 0, 4, 110,
-			2, 105, 102, 3, 50, 0, 110, 2, 105, 116, 0, 110, 2, 105, 118, 0, 110, 2, 111, 98, 0, 110, 2, 111, 119, 0, 110, 8, 2, 17,
-			71, 0, 7, 6, 108, 0, 4, 1, 108, 3, 0, 1, 108, 17, 65, 2, 32, 3, 0, 111, 1, 21, 2, 103, 111, 117, 115, 3, 8, 55,
-			13, 0, 105, 110, 103, 1, 116, 10, 2, 32, 3, 10, 55, 124, 68, 0, 105, 110, 103, 1, 103, 110, 2, 32, 3, 14, 55, 124, 68, 0,
-			121, 1, 108, 21, 2, 32, 14, 128, 128, 130, 3, 37, 0, 4, 3, 55, 0, 1, 17, 65, 2, 108, 121, 32, 0, 1, 114, 2, 32, 0,
-			1, 119, 2, 32, 0, 2, 17, 67, 0, 2, 32, 0, 2, 69, 0, 8, 2, 104, 17, 71, 0, 108, 1, 17, 65, 0, 108, 1, 17, 65,
-			2, 17, 65, 0, 108, 1, 39, 17, 65, 0, 108, 1, 121, 0, 108, 2, 17, 67, 0, 108, 8, 2, 17, 71, 0, 108, 101, 2, 32, 0,
-			4, 121, 1, 21, 2, 32, 14, 128, 130, 130, 3, 55, 2, 37, 0, 121, 1, 102, 101, 105, 2, 32, 14, 128, 128, 130, 0, 121, 1, 102,
-			102, 2, 32, 14, 128, 128, 130, 0, 121, 1, 102, 111, 2, 32, 14, 128, 128, 130, 0, 121, 1, 108, 117, 102, 10, 2, 32, 14, 136, 128,
-			130, 0, 121, 1, 111, 2, 32, 0, 121, 1, 112, 10, 2, 32, 14, 128, 128, 130, 0, 69, 115, 115, 1, 21, 2, 32, 14, 128, 130, 132,
-			3, 55, 13, 89, 0, 69, 115, 115, 108, 121, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 13, 89, 55, 2, 37, 0, 106, 117, 8, 3,
-			55, 57, 137, 0, 105, 98, 8, 2, 114, 101, 116, 116, 3, 55, 113, 71, 0, 121, 8, 2, 100, 3, 55, 124, 0, 105, 110, 117, 120, 3,
-			55, 124, 50, 129, 49, 89, 0, 105, 109, 1, 10, 2, 101, 110, 116, 3, 55, 124, 65, 0, 105, 110, 103, 1, 17, 66, 10, 2, 32, 3,
-			55, 124, 68, 0, 105, 110, 103, 115, 1, 17, 66, 10, 2, 32, 3, 55, 124, 68, 88, 0, 105, 115, 116, 101, 110, 3, 55, 124, 89, 13,
-			50, 0, 105, 98, 114, 101, 8, 2, 14, 128, 132, 133, 3, 55, 132, 71, 34, 13, 0, 111, 5, 3, 8, 2, 103, 25, 3, 55, 134, 0,
-			117, 2, 110, 97, 3, 55, 137, 0, 4, 121, 1, 102, 2, 32, 3, 55, 140, 0, 121, 1, 112, 2, 32, 0, 121, 1, 112, 105, 116, 108,
-			117, 109, 0, 105, 107, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 140, 49, 0, 4, 108, 101, 100, 1, 21, 21, 2, 32, 14, 128,
-			136, 131, 3, 72, 0, 108, 101, 100, 1, 111, 21, 21, 2, 32, 14, 128, 136, 131, 0, 108, 97, 110, 8, 3, 105, 2, 35, 50, 0, 1,
-			17, 66, 2, 32, 3, 118, 0, 105, 110, 103, 1, 108, 10, 2, 32, 14, 128, 152, 132, 3, 124, 68, 0, 7, 6, 109, 0, 4, 1, 17,
-			66, 2, 32, 3, 13, 65, 0, 1, 104, 2, 32, 0, 110, 8, 2, 101, 3, 50, 0, 4, 3, 65, 0, 1, 108, 2, 32, 0, 98, 1,
-			111, 2, 101, 0, 98, 2, 32, 0, 98, 8, 111, 98, 2, 25, 0, 98, 8, 117, 100, 0, 109, 0, 110, 2, 32, 0, 101, 116, 97, 8,
-			2, 108, 108, 117, 3, 65, 2, 122, 47, 35, 0, 101, 1, 17, 66, 10, 2, 32, 3, 65, 2, 124, 0, 4, 97, 108, 8, 2, 102, 14,
-			128, 132, 131, 3, 65, 4, 35, 55, 0, 97, 108, 8, 2, 110, 14, 128, 132, 131, 0, 97, 108, 8, 2, 112, 14, 128, 132, 131, 0, 97,
-			108, 8, 2, 116, 114, 14, 128, 132, 131, 0, 101, 116, 97, 8, 2, 21, 3, 65, 4, 122, 47, 13, 0, 117, 108, 116, 105, 8, 2, 21,
-			21, 14, 128, 132, 133, 3, 65, 4, 129, 55, 47, 124, 0, 101, 1, 114, 111, 116, 2, 110, 116, 12, 3, 65, 6, 122, 0, 69, 110, 116,
-			97, 114, 121, 2, 32, 3, 65, 6, 122, 50, 47, 13, 34, 2, 124, 0, 101, 110, 116, 101, 100, 1, 17, 67, 3, 65, 6, 122, 50, 47,
-			124, 72, 0, 4, 99, 8, 2, 18, 70, 21, 3, 65, 13, 0, 99, 8, 2, 32, 18, 70, 0, 111, 2, 110, 111, 116, 111, 0, 101, 116,
-			97, 98, 111, 3, 65, 13, 47, 6, 35, 71, 126, 0, 101, 116, 97, 108, 108, 8, 2, 105, 99, 3, 65, 13, 47, 35, 55, 0, 4, 97,
-			99, 8, 2, 97, 100, 14, 128, 132, 131, 3, 65, 13, 49, 0, 97, 99, 8, 2, 98, 14, 128, 132, 131, 0, 97, 99, 8, 2, 100, 14,
-			128, 132, 131, 0, 97, 99, 8, 2, 108, 14, 128, 132, 131, 0, 97, 99, 8, 2, 109, 14, 128, 132, 131, 0, 99, 8, 2, 17, 65, 0,
-			99, 8, 2, 17, 67, 21, 0, 99, 8, 2, 32, 17, 65, 0, 99, 8, 2, 32, 17, 67, 0, 4, 101, 110, 1, 21, 2, 32, 28, 18,
-			3, 65, 13, 50, 0, 111, 110, 2, 111, 112, 111, 108, 18, 67, 0, 111, 110, 111, 2, 103, 97, 3, 65, 13, 50, 6, 126, 0, 4, 69,
-			110, 116, 2, 32, 3, 65, 13, 50, 47, 0, 101, 110, 116, 1, 10, 2, 32, 14, 128, 128, 132, 0, 4, 101, 110, 116, 39, 115, 1, 10,
-			2, 32, 14, 128, 128, 134, 3, 65, 13, 50, 47, 89, 0, 101, 110, 116, 115, 1, 10, 2, 32, 14, 128, 128, 133, 0, 4, 97, 108, 8,
-			2, 101, 118, 3, 65, 13, 55, 0, 97, 108, 8, 2, 105, 103, 0, 111, 98, 105, 108, 101, 1, 10, 3, 65, 13, 71, 132, 55, 0, 111,
-			117, 116, 104, 1, 10, 2, 32, 3, 65, 13, 87, 0, 97, 8, 2, 109, 3, 65, 35, 0, 99, 8, 2, 105, 110, 3, 65, 35, 49, 0,
-			97, 99, 104, 105, 97, 8, 3, 65, 35, 49, 144, 0, 98, 108, 121, 3, 65, 71, 55, 2, 124, 0, 101, 116, 97, 108, 8, 2, 17, 67,
-			3, 65, 122, 47, 118, 0, 101, 110, 1, 21, 2, 32, 3, 65, 122, 50, 0, 101, 110, 116, 5, 8, 1, 10, 2, 32, 14, 128, 128, 132,
-			3, 65, 122, 50, 47, 0, 101, 110, 116, 115, 5, 8, 1, 10, 2, 32, 14, 128, 128, 133, 3, 65, 122, 50, 47, 89, 0, 101, 103, 97,
-			8, 3, 65, 122, 81, 13, 0, 111, 110, 111, 8, 3, 65, 126, 50, 139, 0, 111, 110, 2, 111, 120, 3, 65, 129, 50, 0, 117, 108, 116,
-			105, 8, 3, 65, 129, 55, 47, 124, 0, 111, 117, 116, 104, 1, 10, 2, 32, 28, 17, 3, 65, 138, 87, 0, 111, 99, 104, 97, 8, 3,
-			65, 139, 49, 13, 0, 111, 115, 116, 1, 21, 2, 32, 14, 128, 128, 132, 3, 65, 139, 89, 47, 0, 97, 121, 111, 114, 5, 35, 3, 65,
-			143, 0, 7, 6, 110, 0, 4, 1, 110, 3, 0, 4, 1, 110, 2, 32, 3, 0, 4, 100, 1, 32, 50, 2, 32, 3, 0, 101, 1, 110,
-			10, 2, 32, 3, 0, 2, 17, 67, 111, 32, 3, 8, 50, 0, 121, 97, 1, 10, 2, 32, 3, 8, 50, 57, 13, 0, 4, 1, 17, 66,
-			2, 32, 3, 13, 50, 0, 1, 69, 2, 32, 0, 39, 116, 3, 14, 50, 47, 0, 8, 2, 103, 17, 71, 12, 3, 14, 68, 0, 4, 3,
-			50, 0, 1, 21, 2, 99, 104, 0, 1, 97, 105, 10, 2, 32, 14, 128, 128, 129, 0, 1, 103, 2, 32, 0, 1, 103, 2, 105, 110, 103,
-			12, 0, 1, 108, 2, 32, 0, 2, 107, 110, 0, 101, 1, 17, 66, 10, 2, 32, 3, 50, 2, 124, 0, 97, 110, 111, 8, 2, 14, 128,
-			132, 132, 3, 50, 4, 35, 50, 139, 0, 111, 110, 8, 2, 21, 14, 128, 132, 131, 3, 50, 4, 126, 50, 0, 101, 119, 115, 8, 2, 14,
-			128, 132, 132, 3, 50, 6, 57, 137, 88, 0, 101, 119, 115, 5, 3, 8, 2, 14, 128, 132, 132, 3, 50, 6, 137, 88, 0, 101, 115, 115,
-			1, 10, 2, 32, 14, 136, 130, 132, 3, 50, 13, 89, 0, 101, 99, 101, 115, 115, 105, 116, 3, 50, 13, 89, 122, 89, 124, 47, 0, 97,
-			118, 105, 103, 8, 3, 50, 35, 84, 124, 81, 0, 39, 116, 1, 17, 65, 3, 50, 47, 0, 107, 5, 7, 3, 50, 49, 0, 115, 1, 97,
-			105, 10, 2, 32, 14, 128, 128, 130, 3, 50, 88, 0, 101, 115, 115, 5, 8, 1, 10, 2, 32, 14, 136, 130, 132, 3, 50, 122, 89, 0,
-			111, 110, 99, 104, 97, 108, 97, 5, 3, 2, 110, 3, 50, 126, 50, 91, 13, 55, 6, 121, 0, 111, 110, 99, 104, 97, 108, 97, 2, 110,
-			3, 50, 126, 50, 91, 13, 55, 13, 0, 117, 114, 115, 101, 8, 2, 17, 66, 3, 50, 131, 89, 0, 101, 111, 8, 3, 50, 132, 139, 0,
-			97, 117, 115, 101, 3, 50, 133, 89, 124, 0, 111, 97, 117, 116, 111, 8, 2, 14, 128, 132, 134, 3, 50, 139, 133, 47, 139, 0, 105, 110,
-			116, 104, 3, 50, 140, 50, 87, 0, 97, 109, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 50, 141, 65, 0, 4, 1, 21, 2, 99, 17,
-			67, 3, 68, 0, 2, 99, 32, 0, 2, 120, 0, 107, 3, 68, 49, 0, 7, 6, 111, 0, 4, 2, 98, 106, 101, 3, 2, 126, 0, 8,
-			2, 98, 115, 0, 8, 2, 98, 116, 0, 112, 112, 111, 114, 2, 116, 117, 3, 2, 126, 48, 114, 0, 98, 115, 8, 2, 101, 114, 3, 2,
-			126, 71, 88, 0, 4, 1, 29, 2, 28, 19, 12, 12, 12, 3, 2, 127, 0, 2, 98, 108, 105, 103, 97, 116, 111, 0, 5, 3, 8, 2,
-			98, 115, 0, 5, 3, 8, 2, 98, 116, 0, 8, 2, 98, 108, 0, 4, 1, 99, 2, 105, 110, 99, 105, 3, 2, 139, 0, 1, 100, 2,
-			100, 101, 99, 0, 1, 108, 2, 99, 97, 116, 0, 8, 2, 98, 101, 115, 0, 39, 8, 2, 14, 128, 132, 130, 0, 120, 121, 8, 2, 21,
-			21, 3, 4, 126, 49, 89, 113, 0, 1, 108, 2, 99, 111, 109, 3, 4, 139, 0, 101, 2, 118, 101, 3, 4, 139, 6, 122, 0, 4, 2,
-			17, 67, 105, 99, 32, 3, 6, 126, 0, 2, 17, 67, 105, 99, 97, 108, 0, 2, 103, 101, 110, 111, 117, 115, 0, 2, 103, 101, 110, 121,
-			0, 4, 112, 111, 108, 1, 21, 2, 18, 67, 3, 6, 126, 48, 13, 55, 0, 112, 111, 108, 1, 21, 2, 105, 18, 71, 0, 99, 114, 97,
-			116, 101, 115, 2, 32, 3, 6, 126, 49, 34, 119, 47, 132, 88, 0, 120, 2, 105, 100, 101, 3, 6, 126, 49, 89, 0, 109, 101, 116, 101,
-			114, 1, 21, 3, 6, 126, 65, 124, 47, 114, 0, 103, 114, 97, 112, 104, 101, 114, 1, 21, 3, 6, 126, 81, 34, 13, 83, 114, 0, 112,
-			104, 97, 1, 99, 114, 2, 103, 3, 6, 126, 83, 13, 0, 4, 1, 116, 115, 117, 99, 2, 100, 105, 3, 6, 139, 0, 2, 17, 66, 97,
-			32, 0, 2, 17, 66, 101, 111, 110, 0, 2, 17, 66, 105, 17, 65, 0, 2, 17, 67, 105, 32, 0, 2, 17, 67, 111, 32, 0, 2, 17,
-			67, 111, 105, 115, 116, 0, 2, 98, 105, 99, 32, 0, 2, 99, 114, 101, 32, 0, 97, 2, 32, 3, 6, 139, 13, 0, 4, 105, 2, 110,
-			97, 32, 3, 6, 142, 0, 121, 2, 17, 65, 32, 0, 101, 97, 2, 32, 3, 6, 144, 0, 4, 1, 10, 2, 112, 104, 101, 114, 3, 8,
-			13, 0, 2, 99, 121, 116, 101, 32, 0, 103, 1, 108, 21, 2, 121, 3, 8, 13, 75, 0, 103, 105, 115, 109, 1, 108, 3, 8, 13, 75,
-			124, 88, 13, 65, 0, 112, 104, 101, 1, 10, 2, 32, 3, 8, 13, 83, 2, 124, 0, 1, 17, 67, 21, 21, 2, 32, 3, 8, 139, 0,
-			4, 1, 10, 2, 100, 121, 32, 3, 13, 0, 1, 10, 2, 103, 101, 110, 32, 0, 1, 10, 2, 112, 32, 0, 1, 10, 2, 112, 104, 121,
-			0, 1, 102, 102, 2, 99, 17, 65, 0, 1, 104, 115, 105, 98, 2, 112, 0, 1, 104, 116, 101, 109, 2, 100, 32, 0, 1, 105, 114, 101,
-			112, 2, 100, 32, 0, 1, 109, 2, 120, 0, 1, 109, 109, 2, 100, 111, 114, 0, 1, 115, 2, 112, 104, 105, 115, 116, 105, 99, 0, 1,
-			116, 2, 98, 97, 99, 99, 0, 1, 116, 115, 117, 99, 2, 100, 0, 2, 102, 102, 105, 99, 105, 0, 2, 112, 105, 110, 105, 0, 8, 2,
-			99, 99, 97, 115, 105, 0, 8, 2, 99, 99, 108, 117, 0, 102, 2, 102, 101, 110, 0, 4, 112, 1, 10, 2, 121, 32, 3, 13, 48, 0,
-			112, 112, 2, 114, 101, 115, 0, 112, 111, 108, 105, 116, 97, 110, 3, 13, 48, 6, 126, 55, 124, 47, 13, 50, 0, 112, 101, 100, 1, 10,
-			2, 32, 3, 13, 48, 72, 0, 112, 105, 110, 103, 1, 10, 2, 32, 3, 13, 48, 124, 68, 0, 99, 107, 1, 17, 67, 11, 10, 2, 32,
-			3, 13, 49, 0, 4, 99, 99, 117, 114, 3, 13, 49, 131, 0, 99, 99, 117, 114, 114, 0, 4, 99, 99, 117, 114, 5, 5, 3, 13, 49,
-			151, 0, 99, 99, 117, 114, 114, 5, 5, 0, 103, 2, 101, 116, 105, 99, 3, 13, 75, 0, 4, 105, 115, 101, 1, 112, 114, 111, 3, 13,
-			89, 0, 105, 115, 101, 1, 116, 114, 0, 105, 120, 2, 32, 3, 58, 35, 0, 105, 115, 1, 21, 2, 32, 3, 58, 121, 0, 4, 105, 114,
-			3, 58, 130, 0, 105, 114, 101, 0, 101, 1, 10, 2, 115, 32, 14, 128, 128, 130, 3, 88, 0, 101, 115, 111, 112, 104, 97, 3, 113, 89,
-			126, 83, 13, 0, 4, 3, 126, 0, 1, 29, 2, 99, 116, 0, 1, 98, 2, 100, 121, 32, 0, 1, 104, 2, 112, 32, 0, 1, 108, 102,
-			2, 112, 32, 0, 1, 109, 2, 100, 101, 108, 0, 1, 109, 2, 100, 101, 114, 0, 1, 109, 2, 100, 101, 115, 116, 0, 1, 112, 2, 112,
-			32, 0, 1, 114, 2, 103, 101, 114, 0, 1, 114, 2, 112, 32, 0, 1, 114, 112, 2, 112, 101, 0, 1, 116, 2, 112, 32, 0, 2, 17,
-			66, 101, 17, 67, 111, 32, 0, 2, 17, 67, 101, 109, 105, 99, 0, 2, 17, 67, 101, 116, 32, 0, 2, 98, 108, 105, 103, 97, 0, 2,
-			98, 108, 111, 0, 2, 98, 115, 116, 105, 110, 0, 2, 102, 102, 105, 99, 0, 2, 120, 12, 12, 0, 8, 0, 8, 2, 17, 67, 121, 12,
-			0, 8, 2, 112, 101, 114, 0, 8, 98, 2, 100, 121, 0, 8, 114, 2, 98, 101, 114, 0, 104, 1, 106, 2, 110, 0, 112, 116, 111, 8,
-			3, 126, 48, 47, 139, 0, 99, 116, 111, 8, 2, 21, 3, 126, 49, 47, 13, 0, 4, 120, 121, 3, 126, 49, 89, 124, 0, 120, 121, 8,
-			2, 103, 0, 98, 115, 111, 2, 108, 3, 126, 71, 89, 13, 0, 4, 103, 101, 1, 108, 21, 2, 32, 3, 126, 81, 0, 103, 117, 101, 1,
-			21, 21, 0, 1, 29, 3, 127, 0, 4, 1, 100, 2, 122, 101, 110, 3, 129, 0, 1, 116, 2, 110, 103, 117, 0, 4, 101, 1, 102, 2,
-			116, 17, 65, 3, 132, 0, 101, 8, 2, 100, 0, 101, 8, 2, 115, 0, 97, 1, 114, 98, 2, 100, 3, 133, 0, 4, 5, 3, 1, 10,
-			2, 102, 102, 3, 134, 0, 5, 3, 1, 99, 2, 102, 102, 0, 5, 3, 1, 103, 2, 110, 103, 0, 5, 3, 1, 114, 2, 110, 103, 0,
-			5, 3, 1, 115, 2, 110, 103, 0, 5, 3, 2, 102, 116, 0, 5, 3, 8, 2, 102, 102, 0, 4, 39, 101, 114, 3, 136, 0, 97, 114,
-			0, 97, 114, 2, 32, 0, 4, 1, 100, 2, 105, 110, 103, 3, 137, 0, 101, 1, 104, 115, 2, 12, 0, 101, 114, 1, 100, 2, 32, 3,
-			137, 114, 0, 4, 1, 17, 67, 29, 2, 17, 66, 97, 108, 3, 139, 0, 1, 17, 67, 29, 2, 17, 66, 117, 115, 32, 0, 1, 21, 2,
-			105, 115, 116, 0, 1, 29, 2, 17, 66, 121, 32, 0, 1, 29, 2, 98, 97, 0, 1, 29, 2, 112, 104, 101, 114, 0, 1, 100, 2, 99,
-			105, 108, 0, 1, 102, 2, 99, 17, 65, 0, 1, 103, 105, 2, 32, 0, 1, 107, 2, 100, 17, 65, 0, 1, 110, 2, 98, 105, 108, 0,
-			1, 110, 2, 98, 108, 0, 1, 114, 99, 2, 97, 116, 0, 1, 114, 99, 2, 99, 117, 0, 1, 114, 112, 112, 97, 2, 112, 0, 1, 114,
-			116, 2, 106, 97, 110, 0, 2, 17, 66, 101, 13, 0, 2, 17, 66, 101, 110, 17, 67, 0, 2, 17, 66, 105, 110, 103, 0, 2, 17, 67,
-			97, 103, 104, 32, 0, 2, 32, 0, 2, 98, 101, 100, 0, 2, 98, 121, 32, 0, 2, 103, 97, 110, 32, 0, 2, 104, 17, 65, 0, 2,
-			105, 110, 103, 0, 2, 105, 115, 109, 0, 2, 107, 117, 0, 2, 107, 121, 32, 0, 2, 113, 117, 101, 32, 0, 2, 115, 104, 17, 65, 32,
-			0, 2, 116, 105, 111, 110, 0, 8, 2, 17, 66, 97, 108, 0, 8, 2, 100, 17, 65, 0, 8, 2, 122, 111, 0, 8, 17, 67, 2, 116,
-			105, 0, 8, 104, 2, 99, 117, 0, 8, 108, 2, 99, 17, 65, 0, 8, 109, 2, 98, 105, 108, 0, 8, 114, 2, 98, 111, 0, 8, 118,
-			2, 99, 17, 65, 0, 97, 0, 101, 0, 104, 0, 4, 112, 101, 1, 110, 117, 2, 110, 3, 139, 48, 13, 0, 112, 101, 8, 2, 110, 0,
-			112, 101, 100, 1, 99, 2, 32, 3, 139, 48, 72, 0, 112, 105, 110, 103, 1, 99, 2, 32, 3, 139, 48, 124, 68, 0, 99, 104, 1, 114,
-			116, 3, 139, 49, 0, 100, 111, 2, 114, 17, 65, 3, 139, 72, 13, 0, 4, 100, 111, 114, 3, 139, 72, 114, 0, 100, 111, 117, 114, 0,
-			103, 101, 110, 105, 2, 99, 3, 139, 75, 6, 122, 50, 124, 0, 4, 103, 8, 2, 114, 101, 3, 139, 81, 0, 103, 117, 101, 1, 114, 0,
-			103, 117, 101, 1, 118, 0, 99, 101, 97, 110, 3, 139, 91, 13, 50, 0, 99, 101, 97, 110, 2, 105, 99, 3, 139, 91, 124, 35, 50, 0,
-			105, 2, 99, 3, 139, 113, 0, 101, 114, 3, 139, 114, 0, 101, 1, 112, 2, 116, 105, 3, 139, 122, 0, 4, 101, 1, 112, 2, 109, 3,
-			139, 124, 0, 101, 1, 112, 2, 116, 0, 105, 2, 122, 17, 65, 3, 139, 140, 0, 4, 105, 3, 142, 0, 105, 2, 99, 101, 0, 105, 2,
-			99, 101, 13, 0, 105, 2, 99, 107, 0, 105, 115, 1, 117, 2, 32, 0, 121, 0, 105, 97, 3, 142, 13, 0, 7, 6, 112, 0, 4, 1,
-			115, 97, 114, 2, 98, 3, 0, 4, 2, 112, 3, 0, 2, 112, 104, 3, 0, 104, 111, 110, 121, 1, 10, 2, 32, 3, 8, 83, 13, 50,
-			124, 0, 104, 101, 108, 101, 115, 2, 32, 3, 8, 83, 13, 55, 132, 88, 0, 4, 116, 1, 105, 101, 3, 47, 0, 116, 8, 2, 17, 71,
-			0, 4, 3, 48, 0, 2, 104, 28, 20, 0, 2, 104, 97, 122, 97, 0, 2, 104, 111, 108, 101, 0, 8, 2, 18, 66, 17, 71, 0, 104,
-			2, 101, 114, 100, 0, 111, 114, 2, 116, 114, 97, 121, 3, 48, 2, 136, 0, 111, 108, 121, 2, 21, 21, 3, 48, 4, 126, 55, 124, 0,
-			121, 114, 111, 8, 2, 21, 21, 14, 128, 132, 132, 3, 48, 4, 140, 34, 139, 0, 97, 108, 101, 111, 8, 2, 21, 14, 128, 132, 133, 3,
-			48, 4, 141, 55, 132, 139, 0, 4, 97, 1, 109, 121, 115, 3, 48, 13, 0, 104, 97, 2, 109, 32, 0, 111, 116, 97, 2, 116, 3, 48,
-			13, 47, 141, 0, 121, 111, 110, 3, 48, 57, 126, 50, 0, 117, 8, 2, 116, 114, 3, 48, 57, 137, 0, 117, 114, 8, 2, 115, 117, 3,
-			48, 114, 0, 117, 116, 2, 32, 3, 48, 117, 47, 0, 111, 108, 121, 2, 21, 3, 48, 126, 55, 124, 0, 117, 116, 1, 115, 2, 32, 3,
-			48, 129, 47, 0, 105, 99, 111, 8, 3, 48, 132, 49, 139, 0, 107, 103, 3, 48, 132, 49, 141, 75, 6, 132, 0, 105, 101, 99, 101, 2,
-			32, 14, 128, 128, 133, 3, 48, 132, 89, 0, 121, 114, 111, 109, 2, 101, 3, 48, 140, 34, 6, 126, 65, 0, 110, 8, 2, 101, 117, 3,
-			50, 0, 110, 101, 117, 3, 50, 57, 137, 0, 4, 102, 8, 2, 17, 71, 3, 83, 0, 104, 0, 104, 8, 2, 17, 71, 0, 104, 8, 2,
-			18, 66, 17, 71, 0, 104, 101, 110, 121, 108, 3, 83, 4, 132, 50, 140, 55, 0, 104, 111, 116, 111, 8, 2, 21, 21, 14, 128, 132, 133,
-			3, 83, 4, 139, 47, 139, 0, 104, 121, 99, 111, 8, 3, 83, 4, 140, 49, 139, 0, 104, 116, 104, 8, 2, 17, 65, 3, 83, 87, 0,
-			104, 101, 110, 111, 109, 101, 2, 110, 3, 83, 113, 50, 126, 65, 124, 0, 104, 105, 108, 97, 8, 3, 83, 113, 55, 35, 0, 4, 104, 111,
-			116, 2, 111, 103, 114, 97, 112, 104, 12, 3, 83, 139, 47, 0, 104, 111, 116, 8, 2, 111, 18, 75, 12, 12, 0, 104, 111, 116, 111, 99,
-			111, 112, 3, 83, 139, 47, 13, 49, 126, 48, 0, 104, 111, 116, 111, 110, 3, 83, 139, 47, 126, 50, 0, 104, 111, 116, 111, 3, 83, 139,
-			47, 139, 0, 115, 8, 2, 17, 71, 3, 89, 0, 115, 121, 99, 104, 111, 2, 108, 111, 3, 89, 2, 140, 49, 126, 0, 115, 101, 117, 100,
-			111, 3, 89, 137, 72, 139, 0, 115, 121, 99, 104, 3, 89, 140, 49, 0, 115, 121, 99, 104, 111, 3, 89, 140, 49, 139, 0, 7, 6, 113,
-			0, 2, 113, 3, 0, 4, 3, 49, 0, 117, 1, 21, 2, 195, 169, 32, 0, 117, 1, 99, 97, 106, 0, 117, 2, 32, 0, 117, 2, 101,
-			114, 32, 0, 117, 101, 1, 21, 2, 32, 0, 117, 101, 1, 101, 104, 99, 0, 117, 101, 116, 116, 3, 49, 6, 122, 47, 0, 117, 105, 1,
-			115, 101, 109, 2, 116, 3, 49, 6, 132, 0, 117, 101, 117, 3, 49, 57, 137, 0, 117, 3, 49, 58, 0, 117, 2, 17, 67, 3, 49, 58,
-			13, 0, 117, 101, 8, 2, 32, 3, 49, 58, 122, 0, 117, 101, 115, 116, 3, 49, 58, 122, 89, 47, 0, 117, 101, 115, 116, 105, 111, 2,
-			110, 3, 49, 58, 122, 89, 76, 13, 0, 117, 121, 3, 49, 58, 124, 0, 4, 117, 97, 1, 115, 2, 17, 66, 3, 49, 58, 126, 0, 117,
-			97, 8, 2, 102, 0, 117, 97, 115, 2, 17, 65, 3, 49, 58, 141, 88, 0, 117, 97, 115, 105, 3, 49, 58, 141, 88, 140, 0, 117, 101,
-			116, 1, 97, 114, 3, 49, 113, 47, 0, 117, 111, 114, 1, 105, 108, 3, 49, 114, 0, 117, 97, 121, 3, 49, 132, 0, 117, 101, 116, 2,
-			32, 3, 49, 141, 0, 117, 101, 115, 8, 2, 17, 65, 3, 49, 141, 89, 0, 7, 6, 114, 0, 4, 1, 114, 2, 32, 3, 0, 100, 1,
-			32, 51, 2, 32, 3, 0, 109, 8, 2, 17, 65, 3, 4, 130, 122, 65, 0, 1, 21, 2, 17, 66, 3, 13, 0, 4, 3, 34, 0, 104,
-			1, 17, 67, 0, 104, 8, 2, 17, 71, 0, 114, 0, 119, 8, 2, 97, 3, 34, 2, 117, 0, 4, 114, 104, 101, 97, 3, 34, 6, 144,
-			0, 114, 104, 111, 101, 97, 0, 4, 121, 1, 110, 97, 10, 2, 32, 14, 128, 128, 130, 3, 34, 37, 0, 121, 1, 116, 110, 97, 10, 2,
-			32, 14, 128, 128, 130, 0, 105, 101, 115, 1, 116, 110, 97, 10, 2, 32, 14, 128, 128, 132, 3, 34, 37, 88, 0, 69, 114, 2, 32, 3,
-			34, 114, 0, 104, 121, 116, 104, 3, 34, 124, 86, 0, 4, 117, 110, 8, 2, 97, 3, 34, 129, 50, 0, 117, 110, 8, 2, 111, 0, 4,
-			104, 101, 117, 3, 34, 137, 0, 117, 8, 2, 98, 18, 66, 0, 117, 108, 101, 8, 2, 21, 3, 34, 137, 55, 0, 4, 104, 111, 8, 2,
-			100, 3, 34, 139, 0, 104, 111, 8, 2, 116, 0, 104, 111, 100, 111, 8, 2, 21, 3, 34, 139, 72, 13, 0, 4, 104, 105, 2, 110, 13,
-			3, 34, 140, 0, 104, 105, 2, 122, 0, 4, 1, 17, 67, 2, 32, 24, 3, 114, 0, 1, 101, 2, 32, 0, 7, 6, 115, 0, 4, 1,
-			10, 2, 99, 105, 111, 110, 3, 0, 4, 2, 99, 105, 111, 117, 115, 3, 0, 4, 2, 115, 3, 0, 116, 1, 32, 49, 2, 32, 3, 0,
-			104, 101, 39, 8, 3, 2, 91, 132, 0, 101, 108, 102, 2, 32, 3, 6, 89, 122, 55, 83, 0, 101, 108, 118, 101, 115, 2, 32, 3, 6,
-			89, 122, 55, 84, 88, 0, 105, 97, 2, 32, 3, 8, 88, 144, 0, 1, 10, 2, 117, 32, 3, 8, 89, 0, 99, 111, 112, 121, 1, 21,
-			2, 32, 3, 8, 89, 49, 13, 48, 2, 124, 0, 99, 105, 115, 2, 32, 3, 8, 89, 49, 124, 89, 0, 99, 105, 2, 32, 3, 8, 89,
-			49, 140, 0, 105, 97, 1, 17, 67, 2, 32, 3, 8, 89, 144, 0, 105, 97, 5, 3, 2, 32, 3, 8, 90, 13, 0, 104, 1, 17, 65,
-			2, 17, 65, 32, 3, 8, 91, 0, 115, 105, 111, 110, 3, 8, 91, 13, 50, 0, 115, 105, 111, 110, 5, 8, 2, 32, 3, 8, 91, 129,
-			50, 0, 105, 97, 110, 1, 21, 2, 32, 14, 128, 128, 129, 3, 50, 0, 4, 1, 10, 2, 105, 99, 32, 3, 88, 0, 1, 17, 65, 2,
-			105, 116, 105, 118, 0, 1, 18, 72, 2, 109, 17, 65, 110, 32, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 1, 32, 15, 2, 32, 0,
-			1, 32, 54, 49, 2, 32, 0, 1, 39, 32, 15, 2, 32, 0, 1, 97, 2, 101, 108, 32, 0, 1, 97, 2, 109, 0, 1, 97, 101, 2,
-			105, 101, 0, 1, 97, 101, 2, 105, 108, 0, 1, 97, 101, 2, 121, 0, 1, 97, 101, 108, 112, 2, 101, 0, 1, 97, 101, 112, 2, 101,
-			0, 1, 97, 101, 116, 2, 101, 0, 1, 97, 104, 112, 2, 101, 0, 1, 97, 108, 2, 101, 0, 1, 97, 109, 2, 101, 0, 1, 97, 112,
-			2, 101, 0, 1, 97, 114, 2, 101, 0, 1, 101, 2, 100, 0, 1, 103, 110, 2, 32, 14, 128, 128, 129, 0, 1, 105, 17, 65, 2, 121,
-			0, 1, 105, 97, 2, 101, 0, 1, 105, 111, 112, 2, 111, 110, 0, 1, 105, 114, 112, 2, 111, 0, 1, 109, 2, 105, 0, 1, 109, 2,
-			121, 0, 1, 110, 2, 32, 14, 128, 128, 129, 0, 1, 110, 2, 121, 32, 0, 1, 111, 2, 109, 0, 1, 111, 17, 67, 2, 69, 110, 0,
-			1, 111, 17, 67, 2, 69, 114, 0, 1, 117, 109, 2, 105, 99, 0, 2, 32, 0, 2, 109, 25, 0, 8, 97, 101, 2, 101, 0, 8, 97,
-			104, 2, 32, 0, 8, 101, 114, 2, 111, 0, 8, 105, 111, 17, 67, 2, 101, 0, 101, 1, 105, 117, 2, 32, 0, 101, 1, 111, 2, 32,
-			0, 101, 1, 111, 100, 2, 32, 0, 101, 1, 111, 111, 104, 99, 0, 101, 1, 111, 116, 2, 32, 0, 101, 1, 117, 97, 2, 32, 0, 101,
-			1, 117, 102, 2, 32, 0, 101, 1, 119, 0, 4, 105, 110, 1, 105, 97, 2, 32, 3, 88, 13, 50, 0, 105, 110, 1, 117, 2, 32, 0,
-			105, 98, 1, 17, 65, 3, 88, 13, 71, 0, 105, 1, 117, 2, 97, 3, 88, 124, 0, 4, 3, 89, 0, 1, 21, 2, 32, 28, 17, 14,
-			128, 128, 129, 0, 1, 21, 2, 104, 101, 97, 100, 32, 0, 1, 21, 2, 104, 105, 108, 108, 32, 0, 1, 21, 2, 104, 111, 117, 115, 0,
-			1, 97, 2, 101, 0, 1, 99, 2, 32, 0, 1, 99, 10, 2, 32, 14, 128, 128, 129, 0, 1, 101, 112, 10, 2, 32, 14, 128, 128, 129,
-			0, 1, 101, 116, 2, 32, 14, 128, 128, 129, 0, 1, 102, 2, 32, 0, 1, 102, 10, 2, 32, 14, 128, 128, 129, 0, 1, 104, 116, 2,
-			32, 0, 1, 104, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 107, 2, 32, 0, 1, 107, 10, 2, 32, 14, 128, 128, 129, 0, 1, 112,
-			2, 32, 0, 1, 112, 10, 2, 32, 14, 128, 128, 129, 0, 1, 116, 2, 32, 14, 128, 128, 129, 0, 1, 116, 10, 2, 32, 14, 128, 128,
-			129, 0, 2, 115, 104, 0, 5, 3, 1, 101, 114, 2, 111, 117, 114, 0, 8, 2, 99, 17, 71, 0, 8, 2, 99, 18, 66, 17, 71, 0,
-			8, 2, 107, 17, 71, 0, 8, 2, 107, 18, 66, 17, 71, 0, 8, 2, 108, 17, 71, 0, 8, 2, 109, 17, 71, 0, 8, 2, 110, 17,
-			71, 0, 8, 2, 112, 17, 71, 0, 8, 2, 112, 18, 66, 17, 71, 0, 8, 2, 112, 104, 17, 71, 0, 8, 2, 113, 117, 0, 8, 2,
-			114, 105, 0, 8, 2, 116, 17, 71, 0, 8, 2, 116, 114, 17, 71, 0, 8, 2, 117, 0, 8, 2, 118, 97, 0, 8, 2, 118, 101, 0,
-			8, 2, 119, 17, 71, 0, 8, 17, 65, 17, 66, 2, 32, 24, 0, 8, 105, 109, 2, 104, 0, 99, 1, 117, 109, 2, 108, 0, 99, 2,
-			18, 67, 0, 101, 1, 111, 111, 2, 32, 0, 115, 1, 111, 114, 99, 2, 104, 0, 115, 2, 32, 0, 115, 2, 105, 99, 0, 115, 101, 2,
-			32, 0, 101, 109, 105, 8, 2, 21, 21, 14, 128, 132, 132, 3, 89, 4, 122, 65, 113, 0, 99, 105, 2, 98, 3, 89, 13, 0, 116, 8,
-			2, 32, 3, 89, 13, 50, 47, 0, 111, 109, 97, 8, 2, 108, 105, 3, 89, 13, 65, 121, 0, 105, 98, 1, 10, 3, 89, 13, 71, 0,
-			111, 99, 105, 101, 8, 2, 116, 3, 89, 13, 89, 147, 0, 116, 101, 105, 110, 3, 89, 47, 140, 50, 0, 112, 101, 97, 107, 1, 10, 2,
-			32, 14, 128, 128, 133, 3, 89, 48, 132, 49, 0, 4, 99, 2, 101, 112, 116, 3, 89, 49, 0, 99, 104, 2, 111, 0, 99, 104, 5, 3,
-			2, 101, 100, 0, 99, 104, 8, 2, 105, 115, 109, 0, 99, 97, 114, 8, 2, 97, 3, 89, 49, 35, 34, 0, 99, 104, 105, 122, 8, 3,
-			89, 49, 124, 47, 89, 0, 99, 104, 101, 2, 109, 3, 89, 49, 132, 0, 99, 97, 114, 99, 3, 89, 49, 143, 89, 0, 4, 101, 8, 2,
-			99, 108, 117, 3, 89, 113, 0, 101, 8, 2, 100, 117, 99, 0, 101, 99, 117, 114, 3, 89, 113, 49, 57, 146, 0, 101, 109, 105, 110, 8,
-			3, 89, 122, 65, 124, 50, 0, 121, 2, 110, 101, 114, 103, 3, 89, 124, 0, 105, 110, 103, 1, 108, 2, 32, 3, 89, 124, 68, 0, 111,
-			109, 101, 1, 21, 2, 32, 14, 128, 128, 132, 3, 89, 129, 65, 0, 111, 109, 101, 1, 111, 21, 21, 2, 32, 14, 128, 128, 132, 3, 89,
-			139, 65, 0, 105, 122, 101, 8, 2, 17, 67, 21, 3, 89, 140, 88, 0, 4, 105, 111, 110, 1, 17, 65, 3, 90, 13, 50, 0, 105, 111,
-			110, 5, 3, 1, 114, 101, 0, 105, 111, 110, 5, 8, 1, 17, 65, 3, 90, 129, 50, 0, 4, 99, 104, 2, 17, 67, 3, 91, 0, 99,
-			104, 2, 32, 0, 99, 104, 2, 101, 114, 32, 0, 99, 104, 8, 0, 99, 104, 8, 2, 105, 108, 0, 99, 104, 8, 101, 0, 104, 0, 104,
-			8, 2, 17, 71, 0, 104, 8, 2, 18, 66, 17, 71, 0, 115, 117, 114, 101, 1, 97, 3, 91, 6, 146, 0, 115, 105, 97, 2, 32, 3,
-			91, 13, 0, 105, 111, 110, 1, 17, 67, 3, 91, 13, 50, 0, 122, 8, 2, 21, 21, 3, 91, 88, 0, 4, 104, 105, 114, 101, 1, 10,
-			2, 32, 14, 128, 128, 133, 3, 91, 114, 0, 115, 117, 114, 0, 4, 104, 105, 112, 1, 10, 2, 32, 14, 128, 128, 132, 3, 91, 124, 48,
-			0, 104, 105, 112, 101, 1, 10, 2, 32, 0, 104, 105, 112, 115, 1, 10, 2, 32, 14, 128, 128, 133, 3, 91, 124, 48, 89, 0, 105, 111,
-			110, 5, 8, 1, 17, 67, 3, 91, 129, 50, 0, 195, 173, 111, 8, 3, 91, 132, 0, 115, 117, 101, 3, 91, 137, 0, 115, 117, 114, 1,
-			97, 3, 91, 146, 0, 1, 32, 54, 2, 32, 3, 113, 88, 0, 8, 2, 32, 3, 122, 89, 0, 4, 1, 101, 99, 21, 2, 32, 14, 128,
-			128, 129, 3, 125, 88, 0, 1, 101, 115, 10, 2, 32, 14, 128, 128, 129, 0, 1, 101, 115, 115, 10, 2, 32, 14, 128, 128, 130, 0, 7,
-			6, 116, 0, 4, 1, 115, 2, 108, 3, 0, 1, 116, 3, 0, 116, 2, 105, 32, 3, 8, 47, 0, 4, 101, 110, 5, 3, 1, 10, 2,
-			32, 3, 19, 42, 0, 116, 97, 110, 5, 3, 1, 10, 2, 32, 0, 116, 101, 110, 5, 3, 1, 10, 2, 32, 0, 116, 111, 110, 5, 3,
-			1, 10, 0, 116, 105, 110, 1, 101, 29, 2, 32, 3, 19, 50, 0, 4, 3, 47, 0, 2, 104, 28, 20, 0, 8, 2, 114, 17, 71, 0,
-			8, 2, 115, 17, 71, 0, 8, 2, 119, 17, 71, 0, 8, 105, 112, 2, 105, 97, 0, 116, 2, 105, 97, 32, 0, 115, 107, 8, 3, 47,
-			6, 13, 89, 49, 0, 4, 111, 2, 109, 111, 114, 114, 3, 47, 13, 0, 116, 117, 2, 114, 0, 114, 97, 110, 115, 8, 2, 110, 14, 128,
-			132, 133, 3, 47, 34, 35, 50, 89, 0, 4, 114, 105, 8, 2, 98, 117, 3, 47, 34, 124, 0, 114, 105, 8, 2, 103, 0, 114, 105, 8,
-			2, 103, 111, 110, 17, 65, 0, 114, 105, 8, 2, 110, 105, 0, 114, 105, 8, 2, 118, 105, 0, 114, 105, 8, 2, 120, 17, 65, 0, 4,
-			114, 105, 8, 2, 17, 65, 3, 47, 34, 140, 0, 114, 105, 8, 2, 17, 67, 17, 65, 0, 114, 105, 8, 2, 17, 67, 121, 0, 114, 105,
-			101, 8, 0, 114, 105, 98, 101, 3, 47, 34, 140, 71, 0, 4, 122, 3, 47, 89, 0, 122, 8, 2, 97, 114, 0, 4, 115, 101, 2, 32,
-			3, 47, 89, 37, 0, 122, 101, 2, 32, 0, 115, 117, 8, 3, 47, 89, 137, 0, 101, 114, 97, 8, 3, 47, 122, 34, 13, 0, 101, 107,
-			1, 21, 2, 32, 14, 128, 128, 131, 3, 47, 122, 49, 0, 101, 108, 101, 8, 3, 47, 122, 55, 113, 0, 111, 8, 2, 110, 110, 3, 47,
-			129, 0, 118, 2, 32, 3, 47, 132, 84, 132, 0, 119, 111, 8, 3, 47, 137, 0, 111, 119, 110, 1, 21, 2, 32, 14, 128, 128, 132, 3,
-			47, 138, 50, 0, 4, 99, 104, 3, 76, 0, 115, 99, 104, 0, 103, 97, 1, 114, 2, 103, 3, 81, 124, 0, 1, 21, 2, 105, 97, 3,
-			91, 0, 4, 1, 101, 105, 2, 97, 114, 121, 32, 3, 108, 0, 2, 17, 65, 28, 20, 0, 2, 97, 112, 32, 0, 2, 111, 111, 116, 104,
-			0, 101, 2, 114, 114, 101, 115, 116, 3, 108, 13, 0, 121, 112, 101, 3, 108, 140, 48, 0, 7, 6, 117, 0, 8, 2, 107, 114, 97, 105,
-			110, 3, 2, 57, 137, 0, 108, 1, 102, 2, 102, 105, 108, 3, 2, 117, 55, 0, 108, 116, 114, 97, 8, 2, 21, 3, 4, 117, 55, 47,
-			34, 35, 0, 4, 1, 21, 2, 100, 97, 32, 3, 6, 57, 137, 0, 1, 102, 2, 103, 97, 108, 0, 2, 17, 67, 105, 17, 65, 0, 2,
-			115, 105, 111, 110, 0, 2, 116, 105, 111, 110, 0, 101, 110, 116, 101, 3, 6, 58, 122, 50, 47, 141, 0, 4, 1, 108, 2, 115, 105, 111,
-			110, 3, 6, 137, 0, 1, 114, 2, 17, 67, 105, 17, 65, 0, 1, 114, 2, 115, 105, 111, 110, 0, 1, 115, 2, 17, 67, 17, 65, 32,
-			0, 1, 122, 2, 108, 32, 0, 2, 103, 97, 32, 0, 2, 107, 105, 32, 0, 2, 109, 97, 32, 0, 2, 109, 111, 32, 0, 2, 122, 122,
-			105, 32, 0, 5, 3, 1, 18, 73, 21, 2, 100, 97, 32, 0, 5, 3, 1, 104, 116, 2, 17, 67, 105, 17, 65, 0, 121, 2, 17, 65,
-			32, 3, 6, 137, 57, 0, 109, 1, 108, 108, 10, 2, 32, 3, 8, 13, 65, 0, 4, 1, 10, 2, 108, 111, 117, 115, 32, 3, 8, 57,
-			117, 0, 1, 21, 2, 108, 97, 32, 0, 1, 21, 2, 108, 97, 114, 0, 1, 21, 2, 108, 97, 116, 101, 0, 1, 21, 2, 108, 117, 109,
-			0, 1, 21, 2, 108, 117, 115, 32, 0, 108, 105, 1, 21, 2, 32, 3, 8, 57, 117, 55, 140, 0, 2, 97, 32, 3, 8, 57, 137, 0,
-			111, 117, 115, 1, 21, 3, 8, 57, 137, 13, 89, 0, 1, 104, 2, 32, 3, 8, 137, 0, 111, 117, 115, 1, 18, 66, 21, 3, 8, 137,
-			13, 89, 0, 108, 108, 121, 1, 102, 10, 2, 32, 3, 13, 55, 2, 124, 0, 4, 109, 1, 10, 2, 32, 3, 13, 65, 0, 109, 1, 99,
-			114, 105, 99, 0, 109, 1, 114, 2, 101, 110, 116, 0, 103, 103, 101, 1, 115, 2, 115, 116, 3, 13, 75, 122, 0, 4, 115, 1, 10, 2,
-			32, 3, 13, 89, 0, 115, 1, 99, 111, 102, 0, 97, 1, 103, 2, 114, 17, 65, 3, 35, 0, 2, 108, 17, 65, 3, 57, 117, 0, 4,
-			1, 25, 2, 116, 114, 105, 3, 57, 137, 0, 1, 100, 2, 108, 121, 0, 1, 104, 2, 109, 97, 110, 0, 1, 108, 97, 118, 0, 1, 108,
-			108, 2, 108, 0, 1, 108, 111, 118, 2, 109, 101, 0, 1, 110, 2, 97, 108, 32, 0, 1, 110, 2, 97, 116, 0, 1, 110, 97, 109, 0,
-			1, 110, 105, 116, 110, 111, 99, 0, 1, 115, 2, 108, 101, 32, 0, 2, 17, 67, 17, 65, 0, 2, 17, 67, 101, 17, 67, 111, 32, 0,
-			2, 32, 0, 2, 97, 0, 2, 97, 108, 32, 0, 2, 101, 115, 113, 0, 2, 105, 0, 2, 108, 101, 32, 0, 2, 109, 101, 0, 2, 111,
-			0, 2, 116, 121, 0, 8, 2, 116, 105, 108, 0, 8, 108, 111, 115, 2, 17, 67, 0, 103, 1, 112, 109, 2, 110, 0, 103, 104, 1, 104,
-			0, 117, 1, 99, 97, 118, 0, 117, 2, 109, 3, 57, 137, 13, 0, 97, 114, 121, 2, 32, 3, 57, 137, 13, 34, 37, 0, 99, 108, 101,
-			1, 110, 3, 57, 137, 49, 55, 124, 0, 99, 108, 101, 97, 114, 1, 110, 3, 57, 137, 49, 55, 145, 0, 109, 2, 101, 110, 116, 3, 57,
-			137, 65, 0, 115, 8, 2, 17, 65, 3, 57, 137, 88, 0, 115, 117, 114, 112, 3, 57, 137, 88, 6, 131, 48, 0, 115, 117, 114, 112, 5,
-			5, 3, 57, 137, 88, 6, 151, 48, 0, 115, 117, 2, 97, 108, 3, 57, 137, 90, 137, 0, 97, 114, 121, 5, 3, 2, 32, 3, 57, 137,
-			143, 34, 37, 0, 4, 1, 103, 2, 97, 108, 32, 3, 58, 0, 1, 103, 2, 105, 0, 97, 8, 103, 3, 58, 121, 0, 97, 1, 103, 21,
-			2, 103, 101, 3, 58, 124, 0, 4, 97, 1, 115, 2, 100, 101, 3, 58, 141, 0, 97, 1, 115, 2, 115, 0, 97, 103, 1, 115, 3, 58,
-			141, 75, 0, 4, 1, 98, 2, 100, 100, 104, 3, 117, 0, 1, 98, 2, 115, 104, 0, 1, 98, 2, 116, 99, 104, 0, 1, 99, 2, 115,
-			104, 0, 1, 112, 2, 115, 104, 0, 1, 112, 2, 115, 115, 0, 8, 102, 2, 108, 17, 67, 0, 4, 108, 1, 98, 2, 114, 3, 117, 55,
-			0, 108, 1, 98, 2, 119, 0, 108, 108, 1, 98, 0, 108, 108, 1, 102, 0, 108, 108, 1, 112, 0, 108, 108, 121, 1, 98, 3, 117, 55,
-			124, 0, 4, 108, 1, 99, 105, 10, 2, 116, 32, 3, 118, 0, 108, 1, 102, 10, 2, 32, 0, 1, 116, 116, 101, 108, 2, 99, 101, 3,
-			124, 0, 4, 115, 1, 98, 2, 105, 17, 65, 3, 124, 88, 0, 115, 1, 98, 2, 121, 0, 115, 105, 110, 101, 115, 115, 1, 98, 3, 124,
-			88, 50, 13, 89, 0, 4, 3, 129, 0, 1, 102, 2, 108, 99, 114, 0, 1, 108, 2, 99, 107, 0, 2, 103, 117, 17, 67, 0, 2, 108,
-			117, 108, 0, 2, 115, 104, 0, 2, 120, 17, 65, 12, 12, 12, 0, 8, 104, 115, 2, 116, 17, 67, 0, 8, 104, 115, 2, 116, 111, 0,
-			99, 117, 108, 3, 129, 49, 57, 117, 55, 0, 108, 5, 8, 1, 102, 10, 2, 32, 3, 129, 55, 0, 108, 108, 121, 5, 8, 1, 102, 10,
-			2, 32, 3, 129, 55, 2, 124, 0, 103, 1, 108, 112, 2, 17, 65, 3, 129, 81, 0, 115, 8, 2, 32, 3, 129, 88, 0, 97, 114, 1,
-			103, 2, 100, 3, 130, 0, 4, 1, 18, 66, 2, 32, 3, 137, 0, 1, 102, 2, 106, 105, 0, 1, 104, 99, 2, 17, 67, 17, 65, 0,
-			1, 104, 114, 2, 17, 67, 17, 65, 0, 1, 106, 2, 17, 67, 17, 65, 0, 1, 106, 2, 108, 105, 0, 1, 106, 10, 2, 17, 67, 17,
-			65, 0, 1, 108, 2, 17, 67, 17, 65, 0, 1, 108, 2, 97, 0, 1, 108, 2, 98, 114, 105, 0, 1, 110, 2, 99, 108, 0, 1, 114,
-			2, 17, 67, 17, 65, 0, 1, 114, 2, 97, 17, 67, 12, 0, 1, 114, 2, 105, 0, 1, 114, 2, 116, 104, 0, 1, 115, 2, 17, 67,
-			17, 65, 0, 1, 115, 2, 105, 0, 1, 119, 2, 17, 67, 17, 65, 0, 1, 119, 2, 99, 104, 17, 65, 0, 2, 17, 67, 117, 32, 0,
-			2, 32, 24, 0, 2, 108, 121, 0, 5, 3, 1, 18, 73, 2, 97, 0, 5, 3, 1, 18, 73, 2, 105, 0, 5, 3, 1, 98, 2, 100,
-			100, 104, 0, 5, 3, 1, 100, 2, 17, 67, 17, 65, 0, 5, 3, 1, 100, 2, 116, 121, 0, 5, 3, 1, 110, 2, 17, 67, 17, 65,
-			0, 5, 3, 1, 116, 2, 17, 67, 17, 65, 12, 0, 8, 2, 108, 17, 65, 0, 8, 108, 2, 97, 0, 8, 108, 2, 99, 0, 8, 108,
-			2, 116, 104, 101, 114, 0, 104, 2, 17, 67, 0, 97, 114, 121, 1, 114, 2, 32, 3, 137, 34, 37, 0, 99, 108, 101, 5, 3, 1, 110,
-			3, 137, 49, 55, 124, 0, 99, 108, 101, 97, 114, 5, 3, 1, 110, 3, 137, 49, 55, 145, 0, 98, 117, 110, 116, 117, 3, 137, 71, 6,
-			137, 50, 108, 137, 0, 99, 99, 2, 105, 3, 137, 76, 0, 103, 2, 101, 114, 32, 3, 137, 81, 0, 97, 114, 121, 5, 3, 1, 114, 2,
-			32, 3, 137, 143, 34, 37, 0, 121, 3, 140, 0, 111, 121, 3, 142, 0, 111, 114, 1, 108, 102, 3, 146, 0, 7, 6, 118, 0, 2, 118,
-			3, 0, 4, 3, 84, 0, 8, 2, 108, 97, 0, 105, 98, 114, 97, 8, 2, 116, 3, 84, 2, 140, 71, 34, 141, 0, 105, 98, 114, 97,
-			5, 3, 8, 2, 116, 3, 84, 6, 140, 71, 34, 141, 0, 105, 100, 101, 2, 111, 103, 114, 3, 84, 124, 72, 113, 0, 105, 100, 101, 111,
-			3, 84, 124, 72, 113, 2, 139, 0, 105, 118, 105, 2, 21, 3, 84, 124, 84, 124, 0, 105, 118, 2, 32, 3, 84, 140, 84, 0, 97, 1,
-			21, 2, 108, 101, 110, 3, 84, 141, 0, 101, 104, 101, 109, 8, 3, 84, 144, 65, 0, 105, 108, 108, 101, 1, 115, 10, 2, 32, 14, 128,
-			128, 134, 3, 88, 84, 124, 55, 0, 7, 6, 119, 0, 4, 1, 109, 2, 105, 99, 104, 32, 3, 0, 4, 1, 115, 17, 65, 2, 105, 99,
-			107, 3, 0, 2, 119, 3, 0, 101, 1, 17, 67, 2, 32, 3, 8, 58, 124, 0, 4, 114, 3, 34, 0, 114, 8, 2, 17, 71, 0, 4,
-			3, 58, 0, 104, 0, 104, 8, 2, 17, 71, 0, 4, 105, 116, 104, 2, 17, 65, 3, 58, 2, 124, 86, 0, 105, 116, 104, 2, 17, 67,
-			0, 101, 115, 116, 1, 17, 67, 3, 58, 6, 122, 89, 47, 0, 105, 116, 104, 1, 101, 2, 32, 3, 58, 6, 124, 86, 0, 101, 114, 101,
-			8, 2, 14, 128, 132, 132, 3, 58, 6, 143, 23, 0, 1, 17, 67, 2, 32, 3, 58, 13, 0, 111, 111, 100, 1, 10, 2, 32, 14, 128,
-			128, 132, 3, 58, 117, 72, 0, 105, 107, 105, 3, 58, 124, 49, 37, 0, 4, 105, 110, 103, 1, 17, 66, 2, 32, 3, 58, 124, 68, 0,
-			105, 110, 103, 1, 17, 66, 2, 115, 32, 0, 104, 105, 99, 104, 3, 58, 124, 76, 0, 105, 116, 104, 2, 101, 3, 58, 124, 86, 0, 104,
-			97, 116, 3, 58, 128, 47, 0, 4, 111, 114, 1, 115, 115, 2, 100, 3, 58, 131, 0, 111, 114, 2, 116, 104, 32, 0, 111, 114, 107, 1,
-			10, 2, 32, 14, 128, 128, 132, 3, 58, 131, 49, 0, 101, 2, 119, 3, 58, 132, 0, 105, 115, 101, 1, 21, 2, 32, 14, 128, 128, 132,
-			3, 58, 140, 88, 0, 97, 121, 1, 69, 2, 32, 14, 128, 128, 131, 3, 58, 141, 0, 97, 121, 115, 1, 69, 2, 32, 14, 128, 128, 132,
-			3, 58, 141, 88, 0, 104, 101, 114, 101, 3, 58, 143, 0, 4, 111, 114, 5, 5, 1, 115, 115, 2, 100, 3, 58, 151, 0, 111, 114, 5,
-			5, 2, 116, 104, 32, 0, 104, 2, 111, 108, 3, 107, 0, 4, 104, 111, 2, 32, 3, 107, 137, 0, 104, 111, 2, 100, 0, 104, 111, 2,
-			109, 0, 104, 111, 2, 115, 0, 104, 111, 39, 0, 1, 17, 67, 2, 29, 3, 117, 0, 111, 114, 1, 115, 2, 100, 3, 136, 0, 7, 6,
-			120, 0, 1, 117, 101, 2, 32, 3, 0, 4, 97, 115, 2, 32, 3, 8, 49, 89, 13, 89, 0, 117, 115, 2, 32, 0, 105, 115, 2, 32,
-			3, 8, 49, 89, 124, 89, 0, 105, 111, 117, 115, 3, 8, 49, 91, 13, 89, 0, 117, 2, 97, 3, 8, 49, 91, 137, 0, 4, 3, 49,
-			89, 0, 120, 0, 117, 114, 101, 2, 32, 3, 49, 91, 2, 146, 0, 105, 111, 2, 110, 3, 49, 91, 13, 0, 1, 117, 108, 2, 117, 114,
-			3, 81, 90, 0, 117, 5, 3, 1, 117, 108, 2, 114, 3, 81, 90, 146, 0, 8, 2, 17, 71, 3, 88, 0, 121, 8, 3, 88, 140, 0,
-			4, 1, 99, 2, 32, 3, 122, 49, 89, 0, 1, 116, 2, 32, 0, 7, 6, 121, 0, 1, 10, 2, 32, 24, 3, 2, 37, 0, 111, 117,
-			39, 3, 2, 57, 137, 0, 4, 1, 10, 2, 32, 3, 2, 124, 0, 1, 17, 67, 0, 1, 102, 17, 65, 11, 2, 32, 0, 1, 102, 17,
-			67, 2, 32, 0, 1, 104, 2, 112, 111, 99, 114, 0, 4, 2, 17, 67, 105, 99, 32, 3, 6, 124, 0, 2, 17, 67, 105, 99, 97, 108,
-			0, 2, 17, 67, 105, 102, 121, 0, 2, 110, 97, 32, 3, 6, 132, 0, 4, 1, 21, 2, 114, 97, 32, 3, 6, 140, 0, 2, 112, 97,
-			108, 0, 115, 105, 115, 1, 10, 2, 32, 3, 8, 13, 89, 124, 89, 0, 1, 107, 115, 10, 2, 32, 3, 8, 37, 0, 4, 1, 17, 67,
-			10, 2, 97, 110, 32, 3, 8, 124, 0, 1, 17, 67, 10, 2, 101, 110, 32, 0, 1, 17, 67, 10, 2, 108, 101, 110, 101, 32, 0, 4,
-			1, 45, 2, 45, 3, 13, 0, 114, 2, 32, 0, 4, 1, 17, 66, 11, 2, 32, 24, 14, 128, 144, 129, 3, 37, 0, 1, 107, 17, 67,
-			10, 2, 32, 14, 128, 128, 129, 0, 4, 3, 57, 0, 2, 97, 114, 0, 2, 101, 97, 114, 0, 2, 105, 17, 67, 32, 0, 97, 110, 103,
-			3, 57, 6, 35, 68, 0, 39, 8, 2, 17, 67, 14, 128, 132, 130, 3, 57, 13, 0, 101, 115, 8, 3, 57, 122, 89, 0, 101, 97, 104,
-			3, 57, 122, 107, 0, 4, 101, 119, 3, 57, 137, 0, 117, 2, 21, 0, 101, 111, 2, 17, 67, 3, 57, 139, 0, 8, 2, 32, 3, 58,
-			140, 0, 1, 17, 67, 2, 97, 98, 108, 3, 113, 0, 114, 105, 110, 103, 1, 115, 3, 113, 34, 124, 50, 75, 0, 4, 1, 17, 66, 11,
-			2, 32, 14, 128, 144, 129, 3, 124, 0, 1, 17, 66, 111, 29, 2, 21, 12, 0, 1, 17, 67, 2, 105, 0, 1, 17, 67, 17, 67, 2,
-			110, 32, 0, 1, 17, 67, 21, 2, 103, 101, 110, 0, 1, 17, 67, 21, 2, 109, 17, 65, 110, 32, 0, 1, 99, 2, 108, 105, 110, 0,
-			1, 99, 2, 110, 105, 0, 1, 99, 2, 114, 0, 1, 99, 105, 98, 2, 99, 108, 0, 1, 102, 102, 2, 32, 0, 1, 108, 2, 114, 105,
-			0, 1, 108, 102, 2, 110, 0, 1, 108, 103, 2, 99, 101, 114, 0, 1, 108, 103, 2, 112, 104, 0, 1, 112, 2, 114, 97, 0, 1, 112,
-			2, 114, 105, 0, 1, 116, 2, 112, 105, 99, 0, 1, 116, 2, 114, 97, 110, 110, 0, 1, 119, 2, 110, 0, 2, 17, 67, 0, 2, 17,
-			67, 17, 67, 0, 2, 17, 67, 32, 0, 2, 115, 116, 0, 5, 35, 1, 100, 2, 110, 97, 115, 0, 8, 2, 17, 67, 21, 0, 8, 115,
-			0, 101, 105, 103, 104, 116, 1, 116, 2, 32, 3, 124, 6, 141, 47, 0, 116, 119, 111, 1, 116, 2, 32, 3, 124, 47, 6, 137, 0, 112,
-			111, 99, 114, 105, 1, 104, 2, 116, 3, 124, 48, 13, 49, 34, 124, 0, 120, 1, 17, 67, 2, 32, 3, 124, 49, 89, 0, 110, 99, 104,
-			1, 115, 3, 124, 50, 49, 0, 111, 110, 101, 1, 116, 2, 32, 3, 124, 58, 6, 128, 50, 0, 102, 111, 117, 114, 1, 116, 2, 32, 3,
-			124, 83, 6, 136, 0, 102, 105, 118, 101, 1, 116, 2, 32, 3, 124, 83, 6, 140, 84, 0, 115, 1, 104, 112, 2, 105, 3, 124, 88, 0,
-			115, 101, 118, 101, 110, 1, 116, 2, 32, 3, 124, 89, 6, 122, 84, 13, 50, 0, 115, 101, 1, 100, 2, 110, 3, 124, 89, 13, 0, 4,
-			8, 2, 110, 21, 3, 129, 0, 8, 2, 115, 21, 0, 4, 1, 17, 67, 21, 2, 17, 66, 101, 13, 3, 140, 0, 1, 17, 67, 29, 0,
-			1, 98, 101, 114, 101, 2, 32, 0, 1, 98, 114, 97, 101, 2, 32, 0, 1, 99, 2, 99, 108, 0, 1, 99, 2, 99, 108, 105, 99, 32,
-			0, 1, 102, 2, 32, 0, 1, 102, 115, 2, 32, 0, 1, 104, 2, 17, 67, 114, 0, 1, 104, 116, 2, 108, 32, 0, 1, 107, 2, 108,
-			32, 0, 1, 108, 101, 98, 2, 32, 0, 1, 108, 102, 0, 1, 110, 2, 108, 32, 0, 1, 110, 101, 100, 2, 32, 0, 1, 112, 2, 116,
-			104, 0, 1, 116, 2, 108, 32, 0, 1, 116, 2, 112, 32, 0, 1, 116, 2, 112, 105, 115, 116, 0, 1, 116, 115, 2, 114, 101, 0, 2,
-			17, 66, 101, 13, 0, 2, 32, 0, 2, 101, 114, 32, 0, 2, 108, 117, 109, 0, 2, 116, 104, 101, 32, 0, 8, 17, 67, 0, 8, 17,
-			67, 2, 17, 67, 101, 0, 8, 17, 67, 2, 112, 104, 0, 8, 17, 67, 115, 0, 8, 98, 2, 12, 0, 101, 2, 32, 0, 116, 101, 2,
-			32, 3, 140, 47, 0, 110, 97, 109, 1, 100, 3, 140, 50, 35, 65, 0, 4, 101, 115, 1, 17, 67, 2, 32, 3, 140, 88, 0, 115, 101,
-			2, 32, 12, 0, 4, 115, 101, 100, 2, 32, 3, 140, 88, 72, 0, 122, 101, 100, 2, 32, 0, 115, 105, 110, 103, 2, 32, 3, 140, 88,
-			113, 68, 0, 104, 114, 3, 144, 0, 114, 101, 2, 32, 3, 148, 0, 7, 6, 122, 0, 2, 122, 3, 0, 117, 2, 32, 3, 8, 88, 137,
-			0, 1, 110, 2, 32, 24, 3, 47, 89, 0, 4, 3, 88, 0, 8, 2, 108, 111, 116, 0, 8, 2, 119, 17, 71, 0, 115, 8, 2, 17,
-			71, 0, 97, 108, 101, 115, 1, 21, 2, 32, 3, 88, 6, 121, 55, 13, 89, 0, 117, 101, 3, 88, 58, 6, 141, 0, 101, 115, 2, 32,
-			3, 88, 113, 88, 0, 111, 2, 111, 108, 111, 3, 88, 137, 0, 101, 105, 3, 88, 140, 0, 4, 104, 3, 90, 0, 104, 8, 2, 17, 71,
-			0, 117, 114, 101, 3, 90, 114, 0, 7, 6, 206, 0, 4, 172, 3, 6, 35, 55, 83, 13, 10, 0, 177, 0, 4, 173, 3, 6, 122, 48,
-			89, 124, 55, 126, 50, 10, 0, 181, 0, 4, 174, 3, 6, 132, 47, 13, 10, 0, 183, 0, 191, 3, 6, 139, 65, 124, 49, 34, 126, 50,
-			10, 0, 186, 3, 49, 6, 35, 48, 13, 10, 0, 190, 3, 49, 89, 6, 140, 10, 0, 189, 3, 50, 6, 57, 137, 10, 0, 187, 3, 55,
-			6, 35, 65, 72, 13, 10, 0, 188, 3, 65, 6, 57, 137, 10, 0, 178, 3, 71, 6, 132, 47, 13, 10, 0, 178, 5, 3, 3, 71, 6,
-			141, 47, 13, 10, 0, 180, 3, 72, 6, 122, 55, 47, 13, 10, 0, 179, 3, 81, 6, 35, 65, 13, 10, 0, 184, 3, 87, 6, 132, 47,
-			13, 10, 0, 182, 3, 88, 6, 132, 47, 13, 10, 0, 4, 175, 3, 140, 6, 139, 47, 13, 10, 0, 185, 0, 7, 6, 207, 0, 4, 133,
-			3, 6, 117, 48, 89, 124, 55, 126, 50, 10, 0, 141, 0, 140, 3, 6, 139, 65, 124, 49, 34, 126, 50, 10, 0, 4, 137, 3, 6, 139,
-			65, 124, 81, 13, 10, 0, 142, 0, 129, 3, 34, 6, 139, 10, 0, 132, 3, 47, 6, 138, 10, 0, 128, 3, 48, 6, 140, 10, 0, 136,
-			3, 48, 89, 6, 140, 10, 0, 135, 3, 76, 6, 140, 10, 0, 134, 3, 83, 6, 140, 10, 0, 4, 130, 3, 89, 6, 124, 81, 65, 13,
-			10, 0, 131, 0, 137, 5, 3, 3, 139, 65, 6, 141, 81, 13, 10, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 4, 39, 3, 0, 4,
-			46, 1, 46, 3, 0, 58, 1, 32, 15, 2, 32, 15, 15, 32, 3, 0, 195, 169, 8, 3, 2, 124, 0, 195, 161, 2, 29, 3, 6, 121,
-			0, 195, 179, 2, 110, 3, 6, 126, 0, 4, 195, 169, 2, 17, 67, 17, 65, 32, 3, 6, 141, 0, 195, 169, 2, 29, 0, 46, 2, 46,
-			3, 9, 0, 33, 3, 9, 122, 49, 89, 49, 55, 13, 65, 141, 91, 13, 50, 9, 0, 45, 8, 2, 32, 15, 3, 10, 0, 202, 187, 8,
-			2, 17, 65, 3, 19, 0, 195, 177, 3, 21, 101, 115, 0, 195, 160, 3, 35, 0, 58, 3, 49, 139, 55, 13, 50, 0, 33, 61, 3, 50,
-			126, 47, 132, 49, 58, 118, 88, 0, 60, 61, 3, 55, 122, 89, 135, 132, 49, 58, 118, 0, 45, 8, 32, 2, 32, 15, 3, 65, 140, 50,
-			13, 89, 0, 45, 1, 32, 15, 2, 32, 15, 3, 72, 35, 91, 0, 46, 3, 72, 126, 47, 0, 36, 3, 72, 126, 55, 114, 0, 196, 141,
-			3, 76, 0, 62, 61, 3, 81, 34, 141, 47, 13, 135, 132, 49, 58, 118, 0, 195, 176, 3, 86, 0, 195, 190, 3, 87, 0, 4, 195, 159,
-			3, 89, 0, 195, 167, 0, 197, 190, 3, 90, 0, 4, 197, 159, 3, 91, 0, 197, 161, 0, 4, 195, 164, 3, 122, 0, 195, 171, 0, 195,
-			170, 3, 122, 12, 0, 4, 195, 182, 3, 131, 0, 195, 182, 114, 0, 4, 195, 169, 101, 3, 132, 0, 195, 175, 0, 4, 195, 187, 3, 137,
-			0, 195, 188, 0, 195, 169, 3, 141, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts14 = FileInMemory_createWithData (116291, reinterpret_cast<const char *> (&espeakdata_dicts14_data), 
-			U"espeak-1.48.04-source/espeak-data/en_dict", 
+			0, 2, 118, 101, 0, 2, 122, 0, 8, 114, 0, 8, 122, 0, 104, 2, 17, 67, 0, 115, 116, 97, 3, 129, 6, 121, 89, 47, 13, 0,
+			106, 3, 129, 6, 138, 0, 103, 2, 101, 13, 3, 129, 75, 0, 4, 115, 1, 99, 101, 112, 115, 2, 32, 3, 129, 88, 0, 115, 1, 114,
+			101, 115, 2, 32, 0, 105, 2, 32, 3, 129, 137, 0, 117, 1, 108, 3, 134, 0, 117, 116, 101, 5, 3, 1, 108, 3, 134, 47, 6, 121,
+			0, 4, 1, 112, 2, 32, 3, 137, 0, 2, 32, 0, 2, 99, 0, 8, 116, 2, 17, 66, 0, 8, 116, 103, 111, 104, 0, 5, 8, 8,
+			99, 115, 2, 110, 3, 137, 119, 0, 4, 1, 10, 2, 116, 32, 3, 141, 0, 1, 21, 2, 116, 104, 0, 2, 110, 0, 4, 114, 3, 142,
+			0, 114, 2, 99, 0, 4, 1, 99, 115, 2, 110, 99, 3, 144, 0, 1, 108, 99, 2, 110, 116, 0, 2, 110, 116, 105, 17, 67, 0, 2,
+			116, 0, 8, 99, 115, 2, 110, 0, 4, 8, 104, 2, 114, 3, 145, 0, 114, 1, 108, 112, 2, 32, 0, 114, 8, 114, 17, 67, 0, 7,
+			6, 105, 103, 0, 110, 1, 115, 2, 111, 3, 2, 122, 50, 57, 0, 4, 2, 110, 111, 3, 2, 122, 81, 0, 8, 2, 110, 105, 0, 8,
+			109, 2, 114, 97, 116, 3, 2, 137, 81, 0, 110, 101, 2, 32, 3, 6, 129, 50, 0, 4, 117, 2, 32, 3, 6, 129, 81, 0, 117, 2,
+			101, 0, 97, 110, 1, 110, 2, 32, 3, 8, 122, 81, 13, 50, 0, 110, 111, 110, 2, 32, 3, 37, 50, 57, 124, 50, 0, 101, 111, 3,
+			122, 75, 13, 0, 105, 98, 1, 10, 3, 122, 75, 13, 71, 0, 4, 1, 100, 2, 110, 17, 65, 3, 122, 81, 0, 2, 110, 97, 0, 2,
+			110, 111, 109, 0, 110, 111, 2, 114, 97, 110, 3, 122, 81, 50, 114, 0, 1, 109, 97, 2, 97, 32, 3, 129, 81, 0, 4, 1, 21, 2,
+			110, 32, 3, 137, 0, 1, 21, 2, 110, 101, 0, 104, 1, 104, 0, 104, 1, 110, 0, 104, 1, 115, 0, 104, 2, 116, 0, 4, 110, 2,
+			17, 67, 3, 137, 50, 0, 110, 2, 32, 0, 109, 2, 32, 3, 137, 65, 0, 4, 1, 116, 2, 101, 12, 3, 137, 81, 0, 8, 109, 2,
+			114, 97, 0, 8, 116, 2, 114, 0, 7, 6, 105, 109, 0, 4, 8, 2, 21, 3, 2, 122, 65, 0, 8, 2, 112, 101, 114, 17, 67, 21,
+			14, 128, 132, 130, 0, 8, 2, 112, 114, 101, 21, 14, 128, 132, 130, 0, 109, 8, 2, 21, 0, 4, 2, 112, 101, 99, 117, 3, 4, 122,
+			65, 0, 2, 112, 111, 114, 116, 117, 0, 2, 112, 114, 101, 103, 110, 97, 0, 2, 112, 114, 101, 115, 97, 0, 109, 2, 97, 116, 0, 109,
+			2, 101, 109, 0, 105, 108, 101, 1, 115, 3, 6, 122, 65, 113, 55, 122, 0, 1, 104, 115, 2, 97, 32, 3, 6, 129, 65, 0, 111, 117,
+			115, 1, 21, 2, 32, 3, 8, 122, 65, 13, 89, 0, 4, 1, 21, 2, 101, 116, 114, 3, 122, 65, 0, 1, 108, 0, 1, 108, 2, 101,
+			114, 0, 2, 97, 103, 101, 0, 2, 101, 110, 116, 12, 0, 2, 105, 116, 0, 2, 112, 97, 99, 0, 2, 112, 101, 116, 117, 115, 0, 2,
+			112, 108, 97, 110, 116, 32, 0, 2, 112, 108, 101, 0, 2, 112, 108, 105, 99, 97, 0, 2, 112, 114, 111, 118, 105, 115, 0, 2, 112, 117,
+			108, 115, 101, 32, 0, 2, 117, 109, 0, 109, 2, 105, 103, 0, 109, 2, 105, 110, 0, 109, 2, 117, 110, 105, 115, 0, 101, 2, 110, 116,
+			111, 3, 122, 65, 6, 121, 0, 109, 111, 2, 98, 105, 3, 122, 65, 6, 136, 0, 112, 111, 2, 116, 101, 110, 3, 122, 65, 48, 13, 0,
+			4, 101, 2, 116, 101, 114, 32, 3, 122, 65, 129, 0, 101, 2, 116, 114, 101, 0, 1, 10, 2, 32, 3, 123, 65, 0, 4, 1, 108, 99,
+			3, 137, 65, 0, 5, 3, 1, 115, 2, 117, 108, 116, 0, 8, 114, 112, 2, 97, 0, 98, 1, 108, 99, 0, 101, 1, 108, 0, 101, 1,
+			100, 2, 110, 115, 3, 137, 65, 121, 0, 7, 6, 105, 110, 0, 4, 8, 2, 21, 14, 128, 132, 130, 3, 2, 122, 50, 0, 8, 2, 99,
+			111, 114, 112, 0, 8, 2, 99, 114, 101, 100, 0, 8, 2, 115, 116, 105, 108, 0, 8, 2, 116, 101, 103, 114, 105, 0, 110, 8, 2, 117,
+			109, 0, 116, 8, 2, 101, 114, 105, 111, 12, 3, 2, 122, 50, 47, 0, 116, 101, 114, 8, 2, 114, 111, 103, 3, 2, 122, 50, 47, 121,
+			0, 4, 116, 101, 114, 8, 2, 110, 32, 3, 2, 122, 50, 47, 128, 0, 116, 101, 114, 8, 2, 110, 97, 108, 0, 116, 101, 114, 8, 2,
+			112, 111, 108, 21, 0, 116, 101, 114, 8, 2, 112, 114, 0, 116, 101, 114, 112, 114, 101, 2, 116, 3, 2, 122, 50, 47, 128, 48, 34, 122,
+			0, 100, 8, 2, 101, 102, 105, 110, 3, 2, 122, 50, 72, 0, 102, 114, 97, 8, 2, 99, 3, 2, 122, 50, 83, 34, 35, 0, 102, 97,
+			8, 2, 108, 3, 2, 122, 50, 83, 35, 0, 4, 103, 1, 21, 2, 32, 12, 14, 128, 153, 131, 3, 2, 122, 68, 0, 103, 1, 108, 101,
+			2, 32, 12, 14, 128, 152, 131, 0, 103, 1, 109, 111, 21, 21, 2, 32, 14, 128, 152, 131, 0, 103, 1, 110, 101, 2, 32, 14, 128, 136,
+			131, 0, 103, 1, 114, 17, 66, 10, 2, 32, 0, 103, 1, 114, 101, 2, 32, 14, 128, 136, 131, 0, 103, 1, 117, 103, 111, 108, 2, 32,
+			14, 128, 136, 132, 0, 103, 1, 120, 10, 2, 32, 12, 14, 128, 136, 131, 0, 4, 103, 108, 121, 1, 21, 2, 32, 14, 128, 153, 133, 3,
+			2, 122, 68, 55, 2, 122, 0, 103, 108, 121, 1, 110, 101, 2, 32, 14, 128, 168, 133, 0, 103, 108, 121, 1, 114, 101, 2, 32, 14, 128,
+			168, 133, 0, 4, 103, 109, 101, 110, 116, 1, 21, 2, 32, 14, 128, 153, 135, 3, 2, 122, 68, 65, 13, 50, 47, 0, 103, 109, 101, 110,
+			116, 1, 114, 101, 2, 32, 14, 128, 136, 135, 0, 4, 103, 115, 1, 21, 2, 32, 14, 128, 153, 132, 3, 2, 122, 68, 88, 0, 103, 115,
+			1, 110, 101, 2, 32, 14, 128, 136, 132, 0, 103, 115, 1, 114, 101, 2, 32, 14, 128, 136, 132, 0, 4, 8, 2, 100, 101, 14, 128, 132,
+			130, 3, 4, 122, 50, 0, 8, 2, 100, 105, 115, 14, 128, 132, 130, 0, 8, 2, 100, 105, 118, 14, 128, 132, 130, 0, 8, 2, 101, 120,
+			14, 128, 132, 130, 0, 8, 2, 115, 101, 99, 14, 128, 132, 130, 0, 8, 2, 115, 105, 103, 110, 105, 102, 14, 128, 132, 130, 0, 8, 2,
+			115, 105, 110, 99, 14, 128, 132, 130, 0, 116, 101, 114, 8, 2, 17, 65, 14, 128, 132, 133, 3, 4, 122, 50, 47, 13, 34, 0, 116, 114,
+			111, 8, 2, 21, 3, 4, 122, 50, 47, 34, 13, 0, 116, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 4, 122, 50, 47, 114, 0, 102,
+			114, 97, 8, 2, 14, 128, 132, 133, 3, 4, 122, 50, 83, 34, 13, 0, 1, 21, 2, 99, 105, 97, 108, 3, 6, 122, 50, 0, 100, 97,
+			1, 21, 2, 32, 3, 6, 122, 50, 72, 13, 0, 2, 103, 97, 32, 3, 6, 122, 68, 0, 4, 1, 98, 2, 97, 32, 3, 6, 129, 50,
+			0, 1, 107, 2, 97, 32, 0, 1, 108, 2, 97, 32, 0, 1, 114, 2, 97, 32, 0, 1, 116, 2, 97, 32, 0, 105, 1, 21, 2, 32,
+			3, 6, 129, 50, 122, 0, 111, 2, 32, 3, 6, 129, 50, 136, 0, 105, 110, 1, 10, 2, 32, 3, 8, 13, 50, 122, 50, 0, 1, 109,
+			10, 2, 97, 108, 32, 3, 8, 122, 50, 0, 111, 117, 115, 1, 21, 2, 32, 3, 8, 122, 50, 13, 89, 0, 1, 21, 2, 97, 116, 101,
+			3, 8, 123, 50, 0, 4, 1, 115, 97, 98, 2, 32, 3, 13, 50, 0, 5, 7, 1, 10, 2, 32, 0, 101, 115, 115, 1, 103, 2, 32,
+			14, 128, 130, 132, 3, 50, 13, 89, 0, 4, 1, 109, 97, 120, 2, 101, 3, 113, 50, 0, 101, 1, 109, 114, 101, 2, 32, 0, 4, 116,
+			114, 97, 8, 2, 99, 116, 3, 113, 50, 47, 34, 35, 0, 116, 114, 97, 8, 2, 110, 115, 0, 4, 1, 10, 2, 101, 110, 17, 67, 3,
+			122, 50, 0, 1, 99, 2, 101, 0, 1, 99, 110, 105, 2, 101, 0, 1, 103, 2, 101, 0, 1, 107, 2, 100, 101, 114, 103, 0, 1, 107,
+			2, 100, 108, 0, 1, 107, 2, 100, 114, 0, 1, 114, 116, 2, 105, 0, 2, 100, 101, 120, 0, 2, 100, 105, 97, 0, 2, 101, 97, 0,
+			2, 101, 101, 0, 2, 102, 105, 110, 105, 116, 101, 0, 2, 115, 101, 99, 116, 0, 8, 2, 98, 0, 8, 2, 99, 97, 110, 0, 8, 2,
+			99, 101, 110, 115, 0, 8, 2, 99, 104, 0, 8, 2, 99, 111, 109, 17, 65, 0, 8, 2, 99, 114, 101, 0, 8, 2, 99, 117, 98, 0,
+			8, 2, 99, 117, 108, 0, 8, 2, 100, 105, 99, 0, 8, 2, 100, 105, 103, 111, 0, 8, 2, 100, 111, 108, 0, 8, 2, 102, 97, 109,
+			0, 8, 2, 102, 105, 100, 0, 8, 2, 102, 105, 108, 0, 8, 2, 102, 108, 111, 0, 8, 2, 102, 108, 117, 0, 8, 2, 102, 111, 32,
+			0, 8, 2, 106, 117, 114, 0, 8, 2, 108, 0, 8, 2, 109, 0, 8, 2, 111, 102, 0, 8, 2, 111, 114, 103, 0, 8, 2, 112, 0,
+			8, 2, 113, 117, 101, 0, 8, 2, 113, 117, 105, 115, 0, 8, 2, 114, 0, 8, 2, 115, 101, 116, 0, 8, 2, 115, 104, 0, 8, 2,
+			115, 105, 103, 104, 0, 8, 2, 115, 111, 102, 0, 8, 2, 115, 111, 108, 97, 0, 8, 2, 115, 111, 108, 101, 0, 8, 2, 115, 111, 109,
+			117, 0, 8, 2, 115, 112, 105, 114, 0, 8, 2, 115, 116, 97, 110, 0, 8, 2, 115, 116, 105, 0, 8, 2, 115, 116, 114, 117, 109, 0,
+			8, 2, 115, 117, 98, 0, 8, 2, 115, 117, 108, 0, 8, 2, 116, 101, 103, 0, 8, 2, 116, 105, 109, 97, 0, 8, 2, 116, 111, 110,
+			97, 0, 8, 2, 117, 110, 0, 8, 2, 118, 111, 105, 0, 8, 2, 119, 97, 0, 101, 1, 108, 97, 110, 2, 32, 0, 101, 1, 108, 117,
+			2, 32, 0, 110, 8, 2, 25, 0, 101, 120, 8, 2, 111, 114, 3, 122, 50, 6, 121, 49, 89, 0, 4, 105, 1, 102, 21, 2, 116, 101,
+			3, 122, 50, 13, 0, 110, 111, 8, 2, 99, 101, 0, 110, 111, 8, 2, 118, 0, 101, 114, 97, 1, 109, 2, 108, 3, 122, 50, 13, 34,
+			13, 0, 116, 101, 2, 108, 108, 101, 99, 3, 122, 50, 47, 13, 0, 116, 101, 114, 102, 101, 114, 3, 122, 50, 47, 13, 83, 6, 142, 0,
+			116, 101, 114, 2, 101, 115, 116, 3, 122, 50, 47, 34, 0, 116, 114, 105, 103, 117, 3, 122, 50, 47, 34, 6, 129, 81, 0, 4, 116, 114,
+			97, 8, 3, 122, 50, 47, 34, 13, 0, 116, 114, 111, 8, 2, 118, 0, 116, 114, 105, 99, 97, 3, 122, 50, 47, 34, 122, 49, 13, 0,
+			116, 101, 114, 2, 118, 105, 101, 119, 3, 122, 50, 47, 114, 0, 99, 114, 101, 109, 3, 122, 50, 49, 34, 122, 65, 0, 100, 101, 108, 105,
+			8, 2, 98, 3, 122, 50, 72, 6, 121, 55, 13, 0, 100, 105, 8, 2, 103, 101, 110, 3, 122, 50, 72, 6, 122, 0, 100, 105, 103, 101,
+			8, 2, 115, 3, 122, 50, 72, 122, 75, 6, 121, 0, 103, 1, 114, 102, 110, 3, 122, 50, 75, 0, 102, 97, 110, 8, 3, 122, 50, 83,
+			13, 50, 0, 102, 111, 114, 2, 109, 97, 116, 105, 111, 3, 122, 50, 83, 114, 0, 115, 116, 97, 110, 116, 8, 3, 122, 50, 89, 47, 13,
+			50, 47, 0, 99, 105, 2, 100, 101, 3, 122, 50, 89, 122, 0, 4, 105, 1, 109, 100, 97, 3, 122, 50, 122, 0, 105, 8, 109, 0, 117,
+			116, 101, 8, 109, 2, 109, 3, 122, 50, 122, 47, 0, 105, 97, 116, 117, 114, 1, 109, 3, 122, 50, 122, 76, 114, 0, 105, 115, 109, 2,
+			32, 3, 122, 50, 122, 88, 13, 65, 0, 101, 1, 118, 2, 103, 3, 122, 50, 123, 0, 4, 2, 103, 111, 116, 3, 122, 68, 0, 8, 2,
+			103, 114, 111, 0, 8, 2, 107, 0, 1, 21, 2, 97, 116, 105, 111, 110, 3, 123, 50, 0, 4, 101, 1, 99, 21, 2, 32, 3, 129, 50,
+			0, 101, 1, 100, 10, 2, 32, 0, 101, 1, 104, 99, 17, 65, 2, 32, 0, 101, 1, 104, 112, 2, 32, 0, 101, 1, 108, 105, 2, 32,
+			0, 101, 1, 108, 111, 2, 32, 0, 101, 1, 114, 21, 2, 32, 0, 101, 1, 116, 21, 2, 32, 0, 101, 1, 122, 2, 32, 0, 4, 1,
+			98, 2, 100, 3, 137, 50, 0, 1, 102, 2, 97, 0, 1, 102, 2, 100, 0, 1, 103, 21, 2, 97, 32, 0, 1, 104, 2, 100, 17, 66,
+			0, 1, 104, 2, 100, 32, 0, 1, 104, 99, 2, 97, 0, 1, 104, 101, 98, 2, 100, 0, 1, 104, 115, 2, 105, 0, 1, 107, 2, 100,
+			0, 1, 108, 98, 2, 100, 0, 1, 109, 2, 100, 0, 1, 114, 103, 2, 100, 0, 1, 119, 2, 100, 101, 114, 32, 0, 1, 119, 2, 100,
+			105, 110, 103, 0, 1, 119, 101, 114, 2, 100, 0, 1, 119, 110, 117, 2, 100, 0, 8, 114, 2, 100, 0, 101, 1, 112, 2, 32, 0, 101,
+			1, 114, 99, 2, 32, 0, 101, 1, 116, 110, 101, 21, 21, 2, 32, 0, 117, 8, 109, 2, 116, 101, 3, 137, 50, 6, 57, 134, 0, 7,
+			6, 105, 111, 0, 110, 101, 2, 32, 3, 6, 144, 50, 37, 0, 117, 115, 1, 103, 2, 32, 3, 8, 13, 89, 0, 117, 115, 1, 21, 2,
+			32, 3, 8, 113, 13, 89, 0, 1, 10, 2, 32, 3, 8, 113, 136, 0, 110, 5, 8, 1, 10, 2, 32, 3, 8, 122, 125, 50, 0, 5,
+			7, 1, 10, 2, 32, 3, 8, 129, 136, 0, 4, 110, 1, 10, 2, 32, 3, 8, 141, 50, 0, 110, 1, 110, 0, 4, 1, 103, 2, 110,
+			12, 3, 13, 0, 1, 104, 115, 2, 110, 0, 117, 2, 114, 17, 65, 3, 57, 13, 0, 4, 114, 1, 10, 2, 32, 3, 57, 114, 0, 117,
+			114, 2, 25, 0, 2, 108, 105, 32, 3, 113, 6, 136, 0, 1, 109, 2, 110, 3, 113, 124, 0, 1, 100, 114, 97, 99, 3, 113, 136, 0,
+			114, 105, 116, 121, 3, 122, 6, 124, 34, 113, 47, 2, 122, 0, 2, 116, 32, 3, 122, 13, 0, 114, 1, 114, 2, 32, 3, 122, 114, 0,
+			2, 32, 3, 129, 136, 0, 117, 120, 3, 134, 0, 4, 1, 98, 2, 108, 111, 103, 121, 3, 137, 124, 0, 1, 118, 0, 8, 2, 110, 0,
+			114, 1, 10, 2, 12, 3, 142, 0, 4, 1, 118, 2, 108, 3, 144, 0, 1, 122, 2, 110, 0, 8, 114, 2, 116, 0, 110, 8, 108, 3,
+			144, 50, 0, 7, 6, 105, 114, 0, 4, 2, 97, 116, 3, 2, 137, 34, 0, 2, 101, 99, 116, 0, 4, 1, 21, 2, 111, 32, 3, 6,
+			141, 34, 0, 2, 97, 32, 0, 2, 105, 32, 0, 2, 97, 98, 108, 101, 3, 6, 145, 0, 2, 97, 116, 101, 3, 8, 141, 34, 0, 1,
+			112, 115, 97, 2, 105, 3, 34, 0, 8, 2, 114, 101, 21, 14, 128, 132, 130, 3, 113, 0, 4, 2, 111, 3, 113, 34, 0, 8, 2, 97,
+			0, 4, 2, 114, 111, 3, 122, 0, 2, 114, 117, 0, 8, 2, 114, 17, 65, 0, 4, 1, 21, 2, 97, 116, 105, 111, 110, 3, 122, 34,
+			0, 1, 109, 2, 97, 99, 0, 1, 112, 0, 2, 105, 0, 4, 3, 128, 0, 1, 116, 115, 2, 32, 0, 4, 1, 103, 2, 111, 3, 137,
+			34, 0, 1, 118, 2, 117, 115, 0, 2, 101, 116, 121, 0, 8, 2, 105, 115, 104, 0, 8, 17, 67, 2, 111, 32, 0, 111, 110, 2, 17,
+			65, 3, 137, 34, 6, 124, 50, 0, 4, 101, 1, 99, 2, 110, 3, 137, 34, 13, 0, 111, 1, 118, 2, 110, 0, 101, 5, 8, 3, 137,
+			119, 0, 1, 17, 67, 21, 2, 32, 3, 142, 0, 4, 1, 115, 2, 101, 110, 3, 145, 0, 1, 115, 101, 100, 0, 2, 101, 101, 0, 97,
+			8, 112, 2, 99, 0, 101, 0, 101, 1, 112, 0, 101, 114, 2, 32, 3, 145, 34, 114, 0, 97, 108, 1, 112, 115, 3, 145, 34, 118, 0,
+			121, 2, 32, 3, 145, 34, 122, 0, 111, 110, 8, 3, 145, 50, 0, 4, 5, 5, 3, 147, 0, 5, 5, 1, 116, 115, 2, 32, 0, 7,
+			6, 105, 115, 0, 4, 1, 21, 2, 99, 111, 32, 3, 6, 122, 89, 0, 1, 21, 2, 116, 105, 99, 0, 99, 1, 21, 2, 101, 110, 17,
+			67, 0, 115, 2, 97, 32, 0, 115, 105, 109, 111, 2, 32, 3, 6, 122, 89, 122, 65, 136, 0, 116, 101, 1, 21, 2, 32, 3, 6, 129,
+			89, 47, 0, 1, 114, 2, 121, 32, 3, 8, 13, 89, 0, 1, 115, 17, 67, 21, 2, 32, 3, 8, 122, 89, 0, 116, 97, 110, 1, 21,
+			2, 32, 3, 8, 122, 89, 47, 35, 50, 0, 97, 5, 3, 2, 116, 105, 111, 110, 3, 13, 88, 138, 0, 8, 100, 2, 101, 3, 113, 89,
+			0, 104, 1, 10, 2, 32, 3, 113, 91, 0, 1, 118, 2, 105, 116, 3, 122, 88, 0, 4, 109, 1, 17, 66, 105, 21, 2, 32, 14, 128,
+			144, 131, 3, 122, 88, 13, 65, 0, 109, 1, 21, 2, 32, 14, 128, 145, 131, 0, 109, 1, 110, 97, 2, 32, 14, 128, 144, 131, 0, 4,
+			1, 98, 2, 32, 3, 122, 89, 0, 1, 99, 2, 32, 0, 1, 109, 17, 65, 114, 112, 0, 116, 97, 110, 105, 1, 21, 2, 32, 3, 122,
+			89, 47, 6, 126, 50, 122, 0, 4, 1, 118, 2, 99, 111, 117, 110, 3, 137, 0, 2, 108, 101, 32, 0, 8, 2, 108, 101, 0, 108, 97,
+			110, 100, 8, 3, 137, 55, 13, 50, 72, 0, 4, 1, 10, 2, 97, 98, 108, 3, 137, 88, 0, 1, 118, 100, 97, 0, 2, 101, 114, 12,
+			32, 0, 2, 111, 32, 0, 2, 111, 114, 32, 0, 101, 2, 32, 0, 101, 2, 100, 32, 0, 101, 114, 2, 32, 3, 137, 88, 114, 0, 97,
+			2, 116, 105, 111, 110, 3, 137, 88, 138, 0, 4, 1, 114, 104, 99, 2, 116, 32, 3, 137, 89, 0, 2, 105, 118, 101, 0, 7, 6, 105,
+			116, 0, 105, 117, 115, 2, 32, 3, 6, 122, 91, 13, 89, 0, 4, 1, 116, 17, 65, 17, 67, 2, 32, 3, 6, 129, 47, 0, 2, 97,
+			32, 24, 0, 2, 105, 32, 0, 2, 111, 32, 0, 105, 115, 2, 32, 3, 6, 137, 47, 122, 89, 0, 1, 10, 2, 105, 118, 101, 32, 3,
+			8, 113, 47, 0, 4, 121, 1, 10, 2, 32, 3, 8, 113, 47, 2, 37, 0, 121, 1, 100, 10, 2, 32, 14, 128, 128, 131, 0, 121, 1,
+			100, 117, 29, 2, 32, 0, 1, 21, 21, 2, 97, 110, 32, 3, 8, 122, 47, 0, 111, 117, 115, 1, 10, 3, 8, 122, 47, 13, 89, 0,
+			97, 114, 121, 5, 3, 1, 10, 2, 32, 3, 13, 47, 121, 34, 2, 122, 0, 4, 1, 10, 2, 101, 32, 3, 122, 47, 0, 1, 98, 114,
+			111, 0, 1, 100, 101, 114, 99, 0, 1, 108, 2, 101, 114, 0, 1, 110, 97, 114, 103, 2, 101, 0, 1, 110, 105, 102, 110, 2, 101, 0,
+			1, 114, 99, 2, 101, 32, 0, 1, 114, 117, 2, 101, 0, 1, 115, 105, 117, 113, 2, 101, 0, 1, 115, 111, 112, 2, 101, 0, 2, 101,
+			114, 97, 116, 0, 8, 100, 101, 0, 121, 8, 17, 67, 2, 32, 3, 122, 47, 37, 0, 101, 115, 1, 115, 111, 112, 2, 32, 3, 122, 47,
+			89, 0, 104, 1, 108, 2, 101, 114, 3, 122, 86, 0, 114, 101, 1, 108, 3, 129, 47, 114, 0, 4, 1, 10, 2, 101, 32, 24, 3, 137,
+			47, 0, 1, 99, 2, 101, 32, 0, 1, 99, 2, 101, 114, 32, 0, 1, 109, 97, 2, 101, 0, 1, 110, 2, 114, 17, 65, 0, 1, 110,
+			117, 2, 101, 0, 1, 116, 2, 108, 0, 1, 118, 2, 97, 108, 0, 1, 118, 2, 101, 114, 32, 0, 2, 117, 109, 0, 8, 109, 2, 111,
+			0, 8, 112, 115, 2, 101, 0, 8, 115, 2, 101, 0, 101, 1, 114, 119, 0, 101, 1, 120, 2, 32, 0, 114, 111, 1, 110, 2, 103, 101,
+			3, 137, 47, 34, 13, 0, 114, 111, 1, 110, 3, 137, 47, 34, 136, 0, 101, 115, 1, 10, 2, 32, 3, 137, 47, 89, 0, 4, 104, 8,
+			116, 3, 137, 86, 0, 104, 101, 1, 108, 0, 104, 101, 2, 32, 0, 7, 6, 105, 118, 0, 4, 1, 114, 116, 110, 111, 99, 3, 6, 137,
+			84, 0, 1, 116, 99, 2, 97, 108, 0, 1, 118, 21, 2, 97, 108, 0, 97, 1, 108, 21, 2, 32, 3, 6, 137, 84, 13, 0, 4, 1,
+			17, 67, 17, 67, 29, 2, 101, 110, 3, 122, 84, 0, 1, 17, 67, 29, 2, 101, 108, 0, 1, 21, 2, 101, 0, 1, 104, 115, 2, 101,
+			114, 0, 1, 108, 2, 101, 114, 0, 1, 114, 2, 101, 108, 0, 1, 114, 2, 101, 110, 0, 1, 114, 2, 101, 114, 0, 1, 114, 2, 101,
+			116, 0, 8, 103, 2, 101, 0, 8, 108, 2, 101, 0, 8, 114, 2, 101, 114, 32, 0, 101, 2, 110, 101, 115, 115, 0, 4, 1, 100, 121,
+			2, 101, 3, 137, 84, 0, 1, 104, 2, 101, 32, 0, 1, 108, 2, 101, 110, 0, 1, 110, 2, 101, 32, 0, 1, 114, 100, 2, 101, 32,
+			0, 1, 114, 100, 2, 101, 114, 0, 1, 114, 101, 100, 2, 101, 0, 1, 114, 112, 101, 100, 2, 101, 0, 1, 118, 2, 101, 0, 1, 119,
+			2, 101, 32, 0, 2, 101, 13, 0, 2, 111, 114, 32, 0, 8, 2, 97, 110, 0, 8, 108, 2, 101, 17, 66, 0, 8, 108, 97, 2, 101,
+			0, 8, 114, 114, 97, 2, 101, 0, 101, 8, 108, 2, 17, 66, 0, 97, 108, 1, 114, 3, 137, 84, 118, 0, 7, 6, 108, 101, 0, 1,
+			116, 116, 2, 21, 3, 14, 55, 0, 4, 1, 10, 2, 32, 3, 55, 0, 1, 114, 10, 2, 32, 0, 1, 17, 67, 11, 2, 17, 66, 105,
+			97, 3, 55, 6, 129, 0, 4, 1, 17, 67, 10, 2, 115, 115, 3, 55, 13, 0, 1, 98, 17, 65, 2, 17, 67, 32, 0, 114, 1, 98,
+			17, 65, 2, 32, 0, 115, 115, 1, 21, 2, 32, 14, 128, 130, 132, 3, 55, 13, 89, 0, 115, 115, 110, 101, 115, 115, 1, 21, 2, 32,
+			14, 128, 130, 136, 3, 55, 13, 89, 50, 13, 89, 0, 115, 115, 108, 121, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 13, 89, 55, 2,
+			122, 0, 114, 1, 98, 21, 2, 17, 67, 21, 3, 55, 114, 0, 103, 103, 101, 100, 3, 55, 121, 81, 122, 72, 0, 115, 115, 5, 8, 1,
+			21, 2, 32, 14, 128, 130, 132, 3, 55, 121, 89, 0, 115, 115, 110, 101, 115, 115, 5, 8, 1, 21, 2, 32, 14, 128, 130, 136, 3, 55,
+			121, 89, 50, 121, 89, 0, 115, 115, 108, 121, 5, 8, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 121, 89, 55, 2, 122, 0, 109, 1,
+			112, 10, 2, 101, 110, 116, 3, 55, 122, 65, 0, 4, 1, 17, 67, 2, 116, 111, 110, 32, 3, 118, 0, 1, 17, 67, 10, 2, 32, 0,
+			1, 17, 67, 11, 2, 17, 66, 21, 0, 1, 98, 21, 2, 17, 67, 21, 0, 1, 100, 21, 2, 17, 66, 21, 0, 1, 116, 21, 2, 17,
+			67, 21, 0, 109, 1, 10, 2, 101, 110, 116, 3, 118, 65, 0, 100, 1, 98, 17, 65, 2, 32, 3, 118, 72, 0, 5, 8, 1, 17, 67,
+			10, 2, 32, 3, 121, 55, 0, 7, 6, 109, 105, 0, 4, 115, 8, 2, 116, 105, 109, 3, 65, 2, 122, 89, 0, 115, 8, 2, 116, 105,
+			116, 0, 115, 8, 2, 105, 110, 3, 65, 4, 122, 89, 0, 2, 115, 116, 97, 3, 65, 113, 0, 108, 108, 101, 110, 3, 65, 113, 55, 121,
+			50, 0, 115, 8, 2, 21, 14, 128, 132, 131, 3, 65, 113, 89, 0, 4, 2, 115, 115, 105, 3, 65, 122, 0, 8, 2, 110, 101, 114, 97,
+			0, 108, 108, 105, 8, 3, 65, 122, 55, 122, 0, 115, 101, 114, 97, 98, 3, 65, 122, 88, 14, 34, 13, 71, 0, 4, 115, 2, 99, 104,
+			105, 101, 3, 65, 122, 89, 0, 115, 2, 100, 101, 109, 0, 115, 2, 102, 105, 0, 115, 2, 104, 97, 112, 0, 115, 2, 116, 114, 97, 108,
+			0, 115, 2, 116, 114, 101, 115, 0, 115, 2, 116, 121, 0, 115, 8, 2, 116, 105, 0, 115, 115, 0, 115, 99, 105, 8, 2, 98, 3, 65,
+			122, 89, 13, 0, 115, 116, 108, 101, 3, 65, 122, 89, 118, 0, 115, 104, 2, 109, 97, 3, 65, 122, 91, 0, 8, 2, 110, 17, 65, 114,
+			3, 65, 137, 0, 99, 114, 2, 111, 3, 65, 137, 49, 34, 0, 99, 114, 111, 2, 17, 67, 17, 67, 21, 3, 65, 137, 49, 34, 124, 0,
+			99, 114, 111, 2, 17, 67, 17, 65, 21, 3, 65, 137, 49, 34, 136, 0, 115, 2, 101, 114, 3, 65, 137, 88, 0, 7, 6, 110, 103, 0,
+			4, 1, 17, 65, 109, 2, 121, 3, 50, 75, 0, 1, 105, 98, 2, 101, 114, 0, 1, 105, 103, 2, 101, 114, 0, 1, 117, 2, 121, 0,
+			2, 101, 0, 2, 105, 101, 32, 0, 2, 105, 116, 105, 0, 105, 2, 98, 3, 50, 75, 13, 0, 4, 101, 100, 3, 50, 75, 72, 0, 101,
+			100, 1, 111, 112, 115, 0, 4, 105, 110, 103, 1, 105, 104, 3, 50, 75, 113, 68, 0, 105, 110, 103, 1, 105, 114, 99, 0, 105, 110, 103,
+			1, 117, 2, 32, 0, 101, 1, 111, 99, 2, 115, 116, 3, 50, 75, 121, 0, 4, 1, 105, 114, 2, 101, 114, 3, 68, 0, 1, 105, 115,
+			2, 101, 114, 0, 2, 121, 0, 117, 101, 0, 4, 101, 100, 1, 97, 3, 68, 72, 0, 101, 100, 1, 111, 0, 4, 1, 97, 98, 2, 101,
+			114, 3, 68, 81, 0, 1, 97, 108, 99, 2, 101, 114, 0, 1, 105, 2, 101, 114, 0, 1, 111, 2, 101, 114, 0, 1, 117, 111, 121, 2,
+			101, 114, 0, 2, 17, 65, 0, 2, 101, 115, 116, 0, 2, 108, 0, 2, 114, 0, 8, 97, 2, 101, 114, 0, 8, 105, 114, 2, 101, 0,
+			105, 110, 103, 2, 32, 3, 68, 113, 68, 0, 7, 6, 111, 108, 0, 121, 1, 112, 32, 24, 3, 4, 124, 55, 122, 0, 111, 2, 103, 105,
+			3, 6, 124, 55, 13, 0, 4, 1, 21, 21, 2, 97, 114, 3, 6, 136, 55, 0, 1, 21, 21, 2, 117, 115, 0, 105, 115, 1, 112, 10,
+			3, 8, 13, 55, 122, 89, 0, 4, 1, 10, 2, 101, 110, 17, 67, 3, 13, 55, 0, 1, 10, 2, 111, 117, 115, 32, 0, 1, 109, 2,
+			101, 99, 0, 1, 112, 2, 105, 116, 101, 0, 1, 115, 2, 105, 99, 0, 1, 115, 2, 105, 100, 105, 0, 1, 115, 2, 105, 108, 0, 108,
+			1, 112, 2, 117, 0, 108, 1, 114, 97, 99, 0, 111, 2, 103, 105, 99, 3, 13, 55, 6, 124, 0, 101, 1, 109, 2, 115, 116, 3, 13,
+			55, 121, 0, 105, 99, 101, 1, 112, 3, 13, 55, 129, 89, 0, 102, 1, 119, 3, 117, 55, 83, 0, 118, 1, 119, 3, 117, 55, 84, 0,
+			4, 1, 114, 116, 101, 112, 2, 32, 3, 118, 0, 1, 116, 115, 10, 2, 32, 0, 8, 100, 105, 0, 4, 1, 10, 2, 105, 32, 3, 124,
+			55, 0, 1, 21, 2, 111, 32, 0, 1, 104, 2, 97, 114, 0, 1, 109, 2, 101, 99, 117, 108, 101, 0, 1, 115, 2, 101, 109, 0, 1,
+			116, 2, 101, 114, 0, 8, 100, 105, 2, 97, 0, 108, 1, 114, 98, 0, 108, 1, 114, 116, 2, 17, 65, 0, 108, 1, 116, 97, 0, 1,
+			99, 2, 111, 117, 114, 3, 125, 55, 0, 4, 1, 102, 2, 107, 3, 136, 0, 1, 121, 2, 107, 0, 4, 1, 114, 116, 110, 111, 99, 3,
+			136, 55, 0, 1, 116, 120, 101, 0, 2, 97, 110, 100, 32, 0, 2, 97, 114, 0, 8, 2, 97, 29, 0, 108, 1, 114, 0, 108, 1, 116,
+			0, 108, 1, 119, 0, 116, 3, 136, 55, 47, 0, 100, 3, 136, 55, 72, 0, 109, 2, 32, 3, 136, 65, 0, 7, 6, 111, 109, 0, 8,
+			2, 105, 17, 67, 3, 2, 136, 65, 0, 101, 1, 21, 2, 116, 114, 121, 3, 6, 124, 65, 13, 0, 4, 101, 1, 21, 2, 116, 114, 101,
+			3, 6, 124, 65, 122, 0, 101, 2, 116, 101, 114, 0, 105, 110, 2, 111, 3, 6, 124, 65, 122, 50, 0, 101, 1, 110, 105, 21, 21, 2,
+			32, 3, 6, 136, 65, 138, 0, 4, 1, 10, 2, 105, 115, 101, 32, 3, 8, 13, 65, 0, 1, 10, 2, 105, 122, 101, 32, 0, 1, 21,
+			2, 105, 115, 116, 32, 0, 121, 1, 10, 2, 32, 3, 8, 13, 65, 2, 122, 0, 4, 1, 10, 2, 32, 3, 13, 65, 0, 1, 100, 2,
+			101, 115, 116, 0, 1, 100, 2, 105, 110, 105, 0, 8, 100, 2, 97, 0, 97, 1, 116, 2, 116, 111, 3, 13, 65, 126, 0, 97, 1, 119,
+			2, 110, 3, 117, 65, 13, 0, 101, 1, 119, 2, 110, 3, 122, 65, 122, 0, 4, 1, 99, 2, 32, 3, 124, 65, 0, 1, 108, 103, 2,
+			101, 114, 0, 1, 114, 2, 32, 0, 8, 112, 2, 101, 0, 110, 105, 8, 2, 21, 3, 124, 65, 50, 6, 122, 0, 4, 1, 99, 2, 101,
+			3, 125, 65, 0, 1, 99, 2, 112, 97, 110, 0, 1, 115, 2, 101, 32, 0, 101, 8, 115, 0, 109, 1, 99, 2, 101, 0, 97, 99, 104,
+			1, 116, 115, 3, 125, 65, 13, 49, 0, 4, 98, 1, 116, 2, 25, 3, 134, 65, 0, 98, 1, 119, 2, 32, 0, 98, 101, 1, 99, 2,
+			32, 0, 4, 1, 110, 2, 97, 100, 3, 136, 65, 0, 1, 114, 2, 97, 110, 0, 1, 114, 104, 99, 0, 98, 1, 99, 2, 32, 0, 97,
+			110, 1, 114, 2, 116, 105, 3, 136, 65, 6, 35, 50, 0, 7, 6, 111, 110, 0, 1, 100, 2, 97, 116, 3, 2, 136, 50, 0, 4, 1,
+			21, 2, 105, 99, 97, 3, 6, 124, 50, 0, 1, 115, 114, 101, 112, 2, 105, 0, 121, 109, 111, 117, 115, 3, 6, 124, 50, 122, 65, 13,
+			89, 0, 4, 1, 112, 116, 115, 111, 112, 3, 6, 136, 50, 0, 2, 105, 32, 0, 105, 115, 109, 1, 10, 2, 32, 3, 8, 13, 50, 122,
+			88, 13, 65, 0, 105, 115, 116, 1, 10, 2, 32, 3, 8, 13, 50, 122, 89, 47, 0, 4, 1, 10, 2, 101, 114, 32, 3, 13, 50, 0,
+			1, 17, 67, 11, 2, 32, 0, 1, 21, 21, 2, 32, 0, 1, 98, 10, 2, 32, 0, 1, 99, 10, 2, 32, 0, 1, 99, 101, 2, 100,
+			0, 1, 100, 17, 67, 2, 32, 0, 1, 103, 114, 2, 32, 0, 1, 104, 112, 2, 101, 116, 105, 0, 1, 109, 2, 100, 32, 0, 1, 109,
+			10, 2, 32, 0, 1, 114, 97, 2, 32, 0, 1, 114, 100, 2, 32, 0, 1, 115, 10, 2, 32, 0, 1, 115, 114, 101, 112, 0, 1, 116,
+			10, 2, 32, 0, 1, 116, 111, 104, 112, 0, 121, 1, 10, 2, 32, 3, 13, 50, 2, 122, 0, 111, 117, 115, 1, 10, 3, 13, 50, 13,
+			89, 0, 101, 8, 3, 58, 124, 50, 0, 99, 101, 8, 2, 32, 3, 58, 124, 50, 89, 0, 101, 5, 6, 8, 3, 58, 125, 50, 0, 99,
+			101, 5, 6, 8, 2, 32, 3, 58, 125, 50, 89, 0, 101, 100, 1, 17, 67, 10, 2, 32, 14, 128, 136, 130, 3, 72, 0, 105, 110, 103,
+			1, 17, 67, 10, 2, 32, 14, 128, 136, 131, 3, 113, 68, 0, 4, 1, 103, 2, 101, 3, 124, 50, 0, 1, 108, 102, 2, 32, 0, 1,
+			108, 105, 2, 32, 0, 1, 108, 121, 2, 32, 0, 1, 110, 2, 101, 0, 1, 112, 2, 32, 12, 0, 1, 114, 99, 2, 32, 0, 1, 114,
+			111, 2, 32, 0, 1, 114, 116, 10, 2, 32, 0, 1, 119, 2, 107, 0, 1, 119, 2, 116, 0, 1, 120, 2, 32, 12, 0, 2, 97, 108,
+			100, 0, 5, 3, 1, 103, 97, 2, 32, 0, 5, 8, 1, 21, 2, 32, 12, 12, 0, 101, 1, 109, 2, 116, 105, 3, 124, 50, 113, 0,
+			4, 1, 109, 2, 101, 121, 3, 125, 50, 0, 1, 109, 2, 107, 0, 1, 109, 2, 116, 104, 0, 1, 114, 102, 2, 116, 0, 1, 115, 100,
+			2, 32, 0, 1, 119, 0, 8, 2, 105, 111, 0, 8, 104, 2, 101, 121, 0, 101, 1, 100, 110, 117, 2, 32, 0, 103, 8, 112, 115, 3,
+			125, 50, 75, 0, 101, 1, 109, 2, 116, 97, 3, 125, 50, 122, 0, 103, 5, 35, 1, 109, 2, 101, 114, 3, 125, 68, 81, 0, 4, 2,
+			97, 110, 32, 3, 136, 50, 0, 8, 112, 2, 121, 0, 101, 8, 2, 114, 3, 136, 50, 13, 0, 117, 115, 3, 136, 50, 13, 89, 0, 7,
+			6, 111, 111, 0, 1, 10, 2, 110, 3, 6, 134, 0, 4, 1, 17, 67, 2, 107, 3, 117, 0, 1, 102, 2, 116, 0, 1, 103, 2, 100,
+			0, 1, 104, 2, 100, 0, 1, 104, 2, 100, 0, 1, 104, 2, 107, 0, 1, 115, 2, 116, 0, 1, 116, 115, 2, 100, 0, 1, 119, 2,
+			100, 0, 1, 119, 2, 108, 0, 4, 1, 108, 98, 2, 100, 3, 125, 0, 1, 108, 102, 2, 100, 0, 4, 114, 3, 133, 0, 114, 2, 32,
+			0, 4, 3, 134, 0, 1, 107, 2, 107, 0, 1, 109, 2, 110, 32, 0, 1, 112, 2, 107, 0, 1, 112, 115, 2, 110, 32, 0, 1, 115,
+			2, 116, 104, 0, 8, 2, 114, 0, 116, 2, 105, 99, 32, 3, 134, 6, 124, 47, 0, 115, 101, 1, 104, 99, 3, 134, 88, 0, 4, 115,
+			2, 101, 3, 134, 89, 0, 115, 101, 1, 103, 0, 8, 99, 2, 112, 3, 136, 6, 124, 0, 114, 1, 99, 2, 100, 3, 136, 6, 132, 0,
+			115, 1, 104, 99, 2, 101, 110, 3, 136, 88, 0, 4, 114, 1, 112, 3, 143, 0, 114, 8, 109, 0, 7, 6, 111, 114, 0, 8, 102, 2,
+			115, 21, 3, 2, 132, 0, 4, 101, 1, 102, 2, 99, 108, 111, 3, 2, 133, 0, 101, 1, 102, 2, 103, 111, 0, 101, 1, 102, 2, 115,
+			101, 0, 101, 1, 102, 2, 116, 111, 0, 4, 1, 21, 2, 105, 99, 32, 3, 6, 124, 34, 0, 1, 21, 2, 105, 99, 97, 108, 0, 1,
+			21, 2, 99, 97, 32, 3, 6, 132, 0, 2, 105, 32, 3, 6, 132, 34, 0, 2, 117, 109, 32, 3, 6, 133, 34, 0, 116, 101, 1, 102,
+			2, 32, 3, 6, 133, 47, 138, 0, 105, 108, 121, 1, 21, 2, 32, 3, 8, 13, 34, 13, 55, 2, 122, 0, 4, 1, 10, 2, 97, 116,
+			105, 111, 110, 3, 13, 34, 0, 2, 105, 103, 105, 110, 97, 0, 121, 1, 10, 2, 32, 3, 13, 34, 2, 122, 0, 101, 115, 99, 3, 13,
+			34, 6, 121, 89, 0, 105, 1, 104, 2, 122, 3, 13, 34, 137, 0, 101, 100, 1, 10, 2, 32, 3, 13, 72, 0, 103, 8, 102, 2, 17,
+			65, 118, 3, 13, 81, 0, 101, 100, 1, 104, 2, 32, 14, 128, 128, 129, 3, 72, 0, 4, 1, 10, 2, 32, 3, 114, 0, 1, 98, 98,
+			2, 110, 0, 1, 100, 110, 2, 32, 0, 1, 102, 2, 103, 17, 65, 116, 0, 1, 102, 10, 2, 100, 32, 0, 1, 102, 102, 101, 2, 116,
+			0, 1, 114, 114, 101, 116, 0, 1, 116, 110, 101, 118, 2, 32, 0, 101, 1, 116, 21, 2, 32, 0, 4, 1, 10, 2, 97, 116, 101, 3,
+			114, 34, 0, 1, 10, 2, 111, 117, 115, 0, 99, 101, 1, 119, 2, 115, 116, 3, 117, 0, 2, 114, 3, 124, 0, 4, 1, 21, 2, 105,
+			116, 105, 3, 124, 34, 0, 1, 21, 2, 105, 116, 121, 0, 1, 108, 102, 2, 105, 0, 1, 109, 2, 97, 108, 0, 2, 101, 17, 66, 32,
+			0, 2, 101, 110, 17, 67, 0, 2, 105, 103, 0, 5, 35, 8, 104, 2, 111, 0, 8, 2, 105, 17, 67, 0, 114, 8, 109, 0, 4, 97,
+			2, 99, 108, 3, 124, 34, 13, 0, 97, 8, 2, 116, 111, 0, 101, 105, 103, 110, 1, 102, 3, 124, 34, 13, 50, 0, 4, 101, 1, 102,
+			2, 115, 116, 3, 124, 34, 122, 0, 105, 1, 104, 2, 122, 111, 110, 116, 0, 1, 119, 2, 114, 3, 125, 0, 111, 117, 103, 104, 3, 125,
+			34, 13, 0, 111, 117, 103, 104, 5, 3, 3, 125, 34, 136, 0, 4, 1, 119, 3, 128, 0, 1, 119, 2, 109, 0, 1, 119, 2, 115, 101,
+			0, 1, 119, 2, 116, 104, 0, 5, 3, 2, 114, 3, 130, 0, 4, 1, 99, 2, 107, 3, 132, 0, 1, 102, 2, 101, 118, 101, 114, 0,
+			1, 102, 2, 107, 0, 1, 104, 99, 2, 100, 0, 1, 108, 2, 100, 0, 1, 121, 2, 107, 0, 2, 99, 104, 32, 0, 2, 101, 115, 105,
+			115, 0, 2, 109, 32, 0, 2, 110, 32, 0, 2, 115, 101, 32, 0, 2, 116, 0, 8, 0, 8, 99, 2, 21, 0, 8, 102, 2, 21, 0,
+			8, 109, 0, 101, 8, 102, 2, 17, 65, 0, 101, 8, 102, 2, 17, 67, 0, 116, 1, 109, 101, 2, 32, 0, 4, 3, 133, 0, 1, 99,
+			2, 101, 32, 0, 1, 100, 2, 32, 0, 1, 108, 112, 0, 1, 112, 2, 116, 0, 1, 116, 110, 2, 32, 0, 1, 116, 115, 2, 109, 0,
+			1, 119, 2, 101, 0, 1, 119, 2, 110, 0, 1, 119, 2, 116, 32, 0, 1, 119, 115, 2, 100, 0, 5, 8, 1, 10, 2, 32, 0, 5,
+			8, 1, 21, 21, 2, 32, 14, 128, 144, 130, 0, 101, 0, 101, 1, 116, 115, 2, 32, 0, 101, 8, 109, 0, 114, 2, 32, 0, 4, 1,
+			108, 104, 99, 2, 105, 99, 3, 133, 34, 0, 1, 108, 104, 99, 2, 111, 117, 115, 0, 2, 17, 65, 0, 2, 101, 17, 65, 0, 2, 101,
+			116, 0, 2, 101, 120, 0, 121, 8, 116, 115, 3, 133, 34, 122, 0, 4, 5, 5, 1, 119, 3, 148, 0, 5, 5, 1, 119, 2, 109, 0,
+			5, 5, 1, 119, 2, 115, 101, 0, 5, 5, 1, 119, 2, 116, 104, 0, 121, 5, 3, 1, 116, 17, 65, 21, 21, 2, 32, 3, 149, 34,
+			37, 0, 7, 6, 111, 115, 0, 2, 105, 116, 121, 3, 6, 124, 89, 0, 111, 1, 21, 2, 112, 104, 3, 6, 124, 89, 13, 0, 2, 97,
+			108, 32, 3, 6, 136, 88, 0, 2, 105, 118, 101, 3, 6, 136, 89, 0, 105, 115, 2, 32, 3, 6, 136, 89, 122, 89, 0, 117, 114, 101,
+			3, 6, 136, 90, 114, 0, 4, 1, 112, 2, 105, 116, 105, 111, 3, 13, 88, 0, 115, 1, 112, 2, 101, 115, 115, 0, 101, 1, 112, 114,
+			117, 112, 3, 13, 89, 0, 111, 1, 21, 2, 112, 104, 105, 99, 3, 13, 89, 6, 124, 0, 4, 116, 1, 112, 2, 101, 114, 105, 3, 124,
+			89, 47, 0, 116, 1, 112, 2, 117, 0, 116, 1, 112, 97, 0, 116, 1, 112, 101, 114, 0, 116, 1, 112, 101, 114, 112, 0, 116, 1, 112,
+			109, 105, 0, 116, 1, 112, 109, 111, 99, 0, 116, 1, 112, 120, 101, 0, 116, 1, 112, 121, 104, 0, 4, 5, 3, 1, 99, 2, 116, 3,
+			131, 89, 0, 5, 3, 1, 114, 102, 2, 116, 0, 115, 5, 3, 1, 98, 0, 115, 5, 3, 1, 108, 0, 115, 5, 3, 1, 109, 0, 115,
+			5, 3, 1, 114, 0, 8, 108, 2, 101, 3, 134, 88, 0, 4, 1, 29, 2, 121, 3, 136, 88, 0, 8, 114, 2, 101, 13, 0, 101, 2,
+			32, 0, 4, 1, 99, 2, 101, 99, 3, 136, 89, 0, 1, 99, 2, 105, 110, 101, 32, 0, 115, 1, 114, 103, 0, 4, 116, 1, 104, 2,
+			32, 3, 136, 89, 47, 0, 116, 1, 104, 103, 0, 116, 1, 109, 0, 116, 1, 112, 0, 7, 6, 111, 117, 0, 116, 8, 2, 21, 14, 128,
+			132, 131, 3, 2, 135, 47, 0, 1, 21, 2, 109, 32, 3, 6, 134, 0, 4, 115, 1, 17, 66, 10, 2, 32, 3, 8, 13, 89, 0, 115,
+			1, 114, 100, 10, 2, 32, 0, 4, 103, 104, 1, 114, 98, 2, 32, 3, 13, 0, 103, 104, 1, 114, 111, 0, 114, 101, 100, 1, 10, 3,
+			13, 72, 0, 4, 115, 1, 10, 2, 32, 3, 13, 89, 0, 115, 1, 108, 10, 2, 32, 0, 115, 1, 109, 10, 2, 32, 0, 115, 1, 110,
+			10, 2, 32, 0, 115, 121, 1, 10, 2, 32, 3, 13, 89, 2, 37, 0, 1, 104, 2, 109, 3, 57, 134, 0, 97, 3, 58, 126, 0, 4,
+			114, 1, 10, 2, 32, 3, 114, 0, 114, 1, 112, 17, 65, 0, 108, 2, 100, 3, 117, 0, 99, 101, 1, 108, 103, 2, 115, 3, 124, 0,
+			4, 103, 104, 1, 99, 3, 124, 83, 0, 103, 104, 1, 114, 116, 0, 4, 1, 99, 2, 110, 116, 114, 3, 125, 0, 1, 99, 2, 112, 108,
+			0, 1, 99, 2, 114, 97, 103, 0, 1, 99, 2, 115, 105, 0, 1, 100, 2, 98, 0, 1, 100, 2, 103, 0, 1, 110, 2, 114, 105, 0,
+			1, 114, 116, 2, 98, 108, 0, 1, 115, 2, 116, 104, 101, 114, 0, 1, 116, 2, 99, 104, 0, 1, 121, 2, 110, 103, 0, 4, 103, 104,
+			1, 108, 3, 125, 83, 0, 103, 104, 1, 110, 0, 103, 104, 1, 114, 0, 103, 104, 1, 116, 0, 4, 114, 3, 128, 0, 114, 1, 99, 2,
+			116, 101, 0, 114, 2, 110, 0, 114, 5, 3, 1, 99, 2, 97, 103, 0, 114, 5, 3, 1, 110, 2, 105, 0, 4, 103, 104, 1, 98, 2,
+			116, 3, 130, 0, 103, 104, 1, 104, 2, 116, 0, 103, 104, 1, 110, 2, 116, 0, 103, 104, 1, 114, 98, 2, 116, 0, 103, 104, 1, 114,
+			119, 0, 103, 104, 2, 116, 0, 103, 104, 8, 0, 4, 103, 104, 5, 3, 1, 99, 3, 131, 83, 0, 103, 104, 5, 3, 1, 114, 116, 0,
+			4, 114, 1, 98, 2, 110, 3, 133, 0, 114, 1, 99, 2, 115, 0, 114, 1, 99, 2, 116, 0, 114, 1, 99, 2, 116, 101, 115, 97, 0,
+			114, 1, 109, 2, 110, 0, 114, 1, 112, 0, 114, 1, 112, 110, 2, 32, 0, 114, 8, 102, 0, 114, 8, 121, 0, 114, 99, 101, 1, 115,
+			3, 133, 89, 0, 4, 1, 98, 2, 100, 3, 134, 0, 1, 98, 2, 108, 108, 0, 1, 99, 2, 116, 104, 0, 1, 104, 103, 2, 108, 0,
+			1, 107, 0, 1, 109, 2, 115, 115, 101, 0, 1, 110, 2, 103, 97, 0, 1, 114, 2, 98, 108, 0, 1, 114, 2, 116, 105, 110, 0, 1,
+			116, 2, 99, 97, 110, 0, 1, 119, 2, 110, 100, 17, 65, 0, 1, 119, 2, 110, 100, 17, 67, 0, 1, 121, 2, 116, 0, 2, 32, 0,
+			2, 102, 0, 2, 105, 0, 2, 108, 17, 65, 0, 2, 112, 0, 2, 118, 0, 2, 122, 0, 5, 35, 1, 114, 2, 116, 101, 0, 103, 104,
+			1, 114, 104, 116, 0, 120, 2, 32, 0, 103, 101, 1, 114, 3, 134, 90, 0, 99, 104, 1, 100, 3, 134, 91, 0, 4, 3, 135, 0, 1,
+			102, 2, 108, 101, 0, 1, 114, 17, 67, 2, 116, 0, 1, 121, 2, 116, 32, 0, 2, 116, 0, 98, 1, 100, 2, 116, 0, 103, 104, 1,
+			98, 0, 103, 104, 1, 100, 2, 116, 0, 103, 104, 1, 108, 112, 0, 103, 104, 1, 108, 115, 0, 103, 104, 1, 114, 100, 0, 4, 1, 98,
+			2, 108, 100, 3, 136, 0, 1, 104, 115, 2, 108, 100, 101, 114, 0, 1, 109, 2, 108, 17, 67, 0, 1, 112, 2, 108, 116, 0, 1, 115,
+			2, 108, 0, 103, 104, 0, 103, 104, 1, 100, 0, 103, 104, 1, 104, 0, 103, 104, 1, 108, 114, 0, 4, 114, 1, 98, 2, 115, 101, 3,
+			143, 0, 114, 1, 116, 0, 114, 1, 116, 2, 32, 0, 114, 1, 116, 2, 110, 0, 114, 5, 7, 8, 121, 0, 114, 8, 103, 2, 100, 0,
+			4, 114, 1, 99, 115, 3, 146, 0, 114, 1, 104, 0, 114, 1, 108, 102, 0, 114, 1, 115, 0, 114, 1, 116, 115, 0, 114, 1, 118, 101,
+			2, 101, 100, 0, 114, 1, 118, 101, 100, 0, 114, 8, 0, 114, 8, 100, 0, 4, 114, 5, 5, 3, 148, 0, 114, 5, 5, 1, 99, 2,
+			116, 101, 0, 114, 5, 5, 2, 110, 0, 7, 6, 111, 118, 0, 101, 114, 8, 2, 21, 14, 128, 132, 132, 3, 4, 136, 84, 114, 0, 105,
+			116, 99, 104, 1, 21, 2, 32, 3, 8, 13, 84, 122, 76, 0, 4, 1, 99, 2, 101, 110, 17, 67, 3, 124, 84, 0, 1, 104, 2, 101,
+			108, 0, 1, 104, 2, 101, 114, 0, 1, 110, 2, 101, 108, 0, 1, 114, 103, 2, 101, 108, 0, 1, 114, 112, 2, 101, 114, 0, 1, 114,
+			116, 2, 101, 114, 0, 8, 2, 117, 108, 0, 101, 114, 1, 112, 2, 21, 3, 124, 84, 13, 0, 101, 114, 101, 105, 103, 110, 1, 115, 3,
+			124, 84, 13, 34, 122, 50, 0, 4, 1, 99, 2, 101, 110, 3, 125, 84, 0, 1, 99, 2, 101, 116, 0, 1, 104, 115, 2, 12, 0, 1,
+			108, 0, 1, 108, 2, 101, 0, 8, 2, 101, 110, 0, 101, 1, 100, 0, 101, 8, 108, 0, 4, 101, 114, 1, 99, 3, 125, 84, 114, 0,
+			101, 114, 1, 99, 2, 32, 0, 101, 114, 110, 1, 103, 3, 125, 84, 114, 50, 0, 4, 1, 21, 2, 97, 108, 3, 134, 84, 0, 1, 109,
+			2, 17, 65, 0, 1, 109, 2, 105, 0, 1, 114, 112, 2, 101, 13, 0, 101, 114, 1, 114, 112, 2, 32, 3, 134, 84, 114, 0, 4, 1,
+			108, 99, 2, 101, 3, 136, 84, 0, 1, 108, 108, 117, 112, 0, 1, 108, 112, 0, 2, 101, 114, 0, 8, 2, 17, 65, 0, 8, 108, 115,
+			2, 101, 110, 17, 65, 0, 4, 101, 114, 1, 10, 2, 32, 3, 136, 84, 114, 0, 101, 114, 2, 99, 111, 97, 0, 101, 114, 2, 100, 111,
+			115, 0, 101, 114, 2, 100, 114, 97, 0, 101, 114, 2, 100, 114, 105, 0, 101, 114, 2, 115, 105, 103, 0, 101, 114, 2, 116, 111, 110, 0,
+			101, 114, 2, 118, 105, 101, 0, 7, 6, 111, 119, 0, 2, 105, 116, 122, 32, 3, 8, 136, 84, 0, 2, 97, 121, 32, 3, 13, 58, 0,
+			108, 101, 1, 110, 107, 2, 100, 3, 124, 55, 122, 0, 4, 1, 97, 3, 135, 0, 1, 98, 2, 101, 108, 0, 1, 98, 2, 101, 114, 0,
+			1, 98, 2, 115, 17, 65, 0, 1, 98, 2, 115, 112, 0, 1, 99, 0, 1, 100, 2, 110, 0, 1, 100, 110, 101, 0, 1, 102, 0, 1,
+			103, 0, 1, 104, 0, 1, 104, 99, 0, 1, 104, 115, 2, 101, 114, 0, 1, 104, 119, 0, 1, 104, 121, 0, 1, 106, 0, 1, 107, 0,
+			1, 108, 99, 0, 1, 108, 102, 2, 101, 114, 0, 1, 108, 103, 2, 101, 114, 0, 1, 108, 108, 97, 115, 105, 0, 1, 108, 112, 0, 1,
+			110, 2, 97, 100, 0, 1, 110, 101, 2, 110, 0, 1, 112, 0, 1, 114, 2, 100, 0, 1, 114, 98, 0, 1, 114, 99, 2, 110, 0, 1,
+			114, 100, 0, 1, 114, 102, 0, 1, 114, 103, 2, 108, 0, 1, 114, 112, 0, 1, 114, 116, 2, 101, 0, 1, 116, 2, 101, 108, 0, 1,
+			116, 2, 101, 114, 0, 1, 116, 2, 110, 0, 1, 118, 0, 1, 119, 0, 1, 121, 0, 8, 2, 108, 0, 8, 100, 0, 8, 108, 108, 97,
+			0, 8, 110, 2, 32, 0, 8, 110, 2, 116, 0, 4, 3, 136, 0, 1, 99, 115, 111, 109, 0, 1, 104, 115, 0, 7, 6, 112, 101, 0,
+			8, 2, 110, 114, 3, 48, 2, 121, 0, 4, 2, 110, 105, 110, 115, 117, 3, 48, 13, 0, 114, 2, 115, 112, 0, 114, 2, 105, 112, 104,
+			3, 48, 13, 34, 0, 4, 8, 2, 114, 111, 103, 3, 48, 114, 0, 114, 2, 99, 101, 105, 0, 114, 2, 99, 101, 112, 0, 114, 2, 99,
+			117, 108, 105, 0, 114, 2, 99, 117, 115, 0, 114, 2, 102, 101, 99, 0, 114, 2, 102, 111, 114, 109, 0, 114, 2, 102, 117, 110, 0, 114,
+			2, 102, 117, 115, 0, 114, 2, 109, 105, 115, 115, 0, 114, 2, 109, 105, 116, 0, 114, 2, 112, 101, 116, 0, 114, 2, 112, 108, 101, 0,
+			114, 2, 115, 105, 115, 0, 114, 2, 115, 117, 0, 114, 2, 115, 117, 0, 114, 2, 116, 97, 105, 0, 114, 2, 116, 117, 0, 114, 2, 118,
+			21, 0, 114, 101, 103, 114, 105, 110, 8, 3, 48, 121, 34, 13, 81, 34, 122, 50, 0, 4, 114, 2, 112, 101, 116, 114, 3, 48, 128, 0,
+			114, 2, 118, 105, 0, 114, 109, 101, 2, 97, 3, 48, 128, 65, 122, 0, 114, 115, 112, 105, 2, 114, 97, 3, 48, 128, 89, 48, 13, 0,
+			114, 115, 101, 118, 101, 114, 3, 48, 128, 89, 122, 84, 6, 142, 0, 97, 99, 101, 3, 48, 129, 89, 0, 7, 6, 112, 114, 0, 101, 8,
+			2, 100, 105, 14, 128, 132, 131, 3, 48, 34, 2, 37, 0, 4, 101, 8, 2, 17, 67, 21, 3, 48, 34, 2, 122, 0, 101, 8, 2, 100,
+			105, 99, 0, 101, 8, 2, 115, 99, 114, 0, 101, 115, 8, 2, 101, 110, 116, 3, 48, 34, 2, 122, 88, 0, 4, 101, 8, 2, 101, 109,
+			3, 48, 34, 2, 129, 0, 101, 8, 2, 109, 111, 108, 0, 101, 8, 2, 117, 0, 101, 8, 2, 105, 110, 21, 14, 128, 132, 131, 3, 48,
+			34, 4, 129, 0, 111, 2, 112, 97, 110, 3, 48, 34, 6, 136, 0, 4, 111, 2, 99, 101, 100, 3, 48, 34, 13, 0, 111, 2, 99, 101,
+			101, 0, 111, 2, 99, 101, 115, 115, 105, 0, 111, 2, 99, 108, 97, 105, 0, 111, 2, 99, 117, 114, 0, 111, 2, 100, 117, 99, 0, 111,
+			2, 102, 97, 110, 0, 111, 2, 102, 101, 115, 0, 111, 2, 102, 105, 99, 0, 111, 2, 102, 111, 117, 0, 111, 2, 102, 117, 0, 111, 2,
+			103, 114, 101, 115, 0, 111, 2, 104, 105, 98, 0, 111, 2, 106, 101, 99, 0, 111, 2, 108, 105, 102, 0, 111, 2, 108, 111, 110, 0, 111,
+			2, 109, 111, 116, 0, 111, 2, 110, 111, 117, 110, 99, 0, 111, 2, 110, 117, 110, 0, 111, 2, 112, 101, 108, 0, 111, 2, 112, 101, 110,
+			115, 0, 111, 2, 112, 105, 116, 0, 111, 2, 112, 114, 105, 101, 0, 111, 2, 112, 117, 108, 0, 111, 2, 115, 112, 101, 99, 116, 17, 65,
+			0, 111, 2, 116, 101, 99, 0, 111, 2, 116, 101, 115, 116, 0, 111, 2, 116, 114, 97, 99, 0, 111, 2, 116, 114, 117, 0, 111, 2, 118,
+			105, 100, 0, 111, 2, 118, 105, 115, 0, 111, 2, 118, 111, 99, 0, 111, 2, 118, 111, 107, 0, 111, 8, 2, 112, 17, 65, 0, 111, 8,
+			2, 115, 97, 0, 111, 8, 2, 115, 99, 0, 4, 101, 2, 99, 105, 111, 3, 48, 34, 121, 0, 101, 2, 106, 117, 100, 105, 0, 101, 8,
+			2, 17, 67, 11, 0, 101, 8, 2, 102, 101, 114, 101, 110, 0, 101, 8, 2, 103, 110, 0, 101, 8, 2, 109, 105, 0, 101, 8, 2, 110,
+			25, 0, 101, 8, 2, 112, 32, 0, 101, 8, 2, 112, 111, 115, 105, 0, 101, 8, 2, 115, 99, 111, 0, 101, 8, 2, 115, 116, 0, 101,
+			100, 97, 2, 116, 111, 3, 48, 34, 121, 72, 13, 0, 101, 118, 8, 2, 97, 108, 3, 48, 34, 121, 84, 0, 4, 101, 115, 2, 101, 110,
+			99, 3, 48, 34, 121, 88, 0, 101, 115, 8, 2, 101, 110, 116, 97, 0, 101, 115, 105, 2, 100, 101, 110, 3, 48, 34, 121, 88, 122, 0,
+			105, 110, 99, 2, 101, 13, 3, 48, 34, 122, 50, 89, 0, 4, 111, 2, 100, 117, 99, 116, 3, 48, 34, 124, 0, 111, 2, 112, 101, 114,
+			0, 111, 2, 112, 104, 0, 111, 2, 112, 111, 115, 105, 116, 0, 111, 2, 115, 101, 99, 0, 111, 2, 116, 101, 115, 116, 97, 110, 0, 111,
+			2, 118, 105, 100, 101, 110, 0, 111, 5, 3, 2, 99, 101, 115, 115, 0, 111, 8, 2, 112, 97, 103, 0, 111, 98, 97, 98, 3, 48, 34,
+			124, 71, 13, 71, 0, 4, 101, 2, 102, 105, 120, 3, 48, 34, 129, 0, 101, 2, 104, 105, 115, 116, 0, 101, 8, 2, 32, 0, 101, 8,
+			2, 97, 109, 0, 101, 8, 2, 99, 105, 110, 99, 0, 101, 8, 2, 102, 101, 99, 0, 101, 8, 2, 109, 105, 117, 0, 101, 8, 2, 113,
+			117, 0, 101, 8, 2, 115, 99, 0, 101, 8, 2, 118, 105, 101, 119, 0, 101, 8, 2, 118, 105, 111, 0, 101, 97, 8, 2, 99, 104, 0,
+			101, 100, 101, 2, 99, 101, 115, 3, 48, 34, 129, 72, 122, 0, 4, 111, 2, 102, 105, 108, 3, 48, 34, 136, 0, 111, 2, 103, 114, 97,
+			0, 111, 2, 108, 111, 103, 0, 111, 109, 101, 2, 116, 104, 3, 48, 34, 136, 65, 129, 0, 105, 8, 2, 111, 3, 48, 34, 137, 0, 105,
+			111, 2, 114, 105, 116, 3, 48, 34, 137, 6, 124, 0, 105, 118, 97, 116, 8, 3, 48, 34, 137, 84, 13, 47, 0, 7, 6, 114, 101, 0,
+			4, 2, 103, 101, 110, 101, 114, 3, 2, 34, 129, 0, 8, 2, 97, 114, 109, 0, 4, 8, 2, 97, 108, 105, 103, 3, 4, 34, 129, 0,
+			8, 2, 97, 108, 108, 0, 8, 2, 97, 117, 21, 14, 128, 132, 130, 0, 8, 2, 99, 111, 110, 14, 128, 132, 130, 0, 8, 2, 99, 114,
+			101, 97, 116, 0, 8, 2, 100, 101, 17, 67, 14, 128, 132, 130, 0, 97, 8, 2, 108, 108, 111, 14, 128, 132, 130, 0, 100, 101, 1, 110,
+			117, 2, 17, 67, 3, 4, 34, 129, 72, 113, 0, 1, 118, 117, 3, 13, 0, 100, 1, 116, 17, 67, 10, 2, 32, 3, 13, 72, 0, 4,
+			8, 2, 100, 114, 3, 34, 2, 129, 0, 8, 2, 101, 100, 117, 14, 128, 132, 130, 0, 8, 2, 101, 109, 14, 128, 132, 130, 0, 8, 2,
+			101, 110, 14, 128, 132, 130, 0, 8, 2, 101, 113, 14, 128, 132, 130, 0, 8, 2, 101, 115, 14, 128, 132, 130, 0, 8, 2, 101, 120, 14,
+			128, 132, 130, 0, 116, 114, 111, 2, 14, 128, 132, 133, 3, 34, 4, 121, 47, 34, 136, 0, 4, 8, 2, 99, 111, 109, 14, 128, 132, 130,
+			3, 34, 4, 129, 0, 8, 2, 105, 21, 14, 128, 132, 130, 0, 8, 2, 117, 110, 14, 128, 132, 130, 0, 4, 97, 2, 17, 67, 11, 3,
+			34, 4, 129, 13, 0, 97, 8, 2, 100, 17, 67, 0, 4, 1, 17, 65, 2, 32, 3, 34, 13, 0, 1, 114, 2, 32, 0, 2, 109, 101,
+			110, 116, 0, 114, 2, 32, 0, 100, 1, 17, 66, 10, 2, 32, 3, 34, 13, 72, 0, 4, 1, 110, 117, 2, 17, 67, 21, 3, 34, 113,
+			0, 2, 97, 99, 116, 0, 2, 100, 101, 109, 12, 0, 8, 2, 17, 67, 21, 0, 8, 99, 2, 109, 97, 116, 0, 97, 2, 108, 105, 116,
+			3, 34, 113, 35, 0, 112, 101, 2, 116, 105, 116, 105, 118, 3, 34, 113, 48, 121, 0, 108, 101, 2, 110, 116, 3, 34, 113, 55, 121, 0,
+			4, 108, 105, 1, 110, 117, 2, 97, 3, 34, 113, 55, 137, 0, 108, 105, 2, 97, 0, 4, 115, 2, 105, 103, 110, 3, 34, 113, 88, 0,
+			115, 2, 117, 108, 116, 0, 97, 2, 108, 116, 101, 3, 34, 113, 124, 0, 97, 2, 103, 101, 110, 3, 34, 113, 138, 0, 4, 2, 17, 67,
+			101, 108, 32, 3, 34, 121, 0, 2, 99, 107, 0, 2, 99, 116, 0, 2, 100, 17, 67, 0, 2, 102, 117, 103, 0, 2, 103, 105, 115, 116,
+			0, 2, 112, 108, 105, 0, 2, 112, 114, 105, 109, 0, 2, 112, 116, 0, 2, 115, 105, 100, 117, 101, 0, 2, 115, 111, 108, 117, 0, 2,
+			115, 111, 110, 0, 2, 115, 116, 108, 0, 2, 116, 105, 99, 0, 2, 116, 105, 110, 97, 0, 2, 118, 101, 108, 0, 2, 118, 101, 114, 101,
+			110, 0, 2, 118, 111, 108, 117, 0, 8, 2, 17, 67, 17, 67, 32, 0, 8, 2, 17, 67, 32, 0, 8, 2, 99, 114, 101, 97, 116, 105,
+			0, 8, 2, 100, 17, 67, 0, 8, 2, 100, 111, 108, 101, 110, 0, 8, 2, 110, 17, 67, 0, 8, 2, 115, 99, 117, 0, 97, 2, 108,
+			109, 0, 112, 101, 2, 116, 105, 116, 3, 34, 121, 48, 13, 0, 112, 114, 101, 115, 101, 110, 116, 3, 34, 121, 48, 34, 113, 88, 6, 121,
+			50, 47, 0, 112, 101, 114, 8, 2, 116, 3, 34, 121, 48, 114, 0, 99, 111, 2, 103, 3, 34, 121, 49, 13, 0, 4, 99, 107, 111, 110,
+			3, 34, 121, 49, 13, 50, 0, 99, 111, 110, 2, 99, 0, 99, 114, 101, 8, 2, 97, 110, 3, 34, 121, 49, 34, 129, 0, 108, 101, 8,
+			2, 103, 3, 34, 121, 55, 113, 0, 108, 101, 2, 118, 3, 34, 121, 55, 123, 0, 100, 1, 98, 17, 67, 2, 32, 12, 3, 34, 121, 72,
+			0, 103, 105, 109, 3, 34, 121, 75, 122, 65, 0, 103, 117, 2, 108, 3, 34, 121, 81, 57, 134, 0, 102, 101, 114, 101, 110, 100, 3, 34,
+			121, 83, 13, 34, 6, 121, 50, 72, 0, 118, 101, 2, 110, 17, 65, 3, 34, 121, 84, 13, 0, 115, 105, 2, 100, 101, 110, 3, 34, 121,
+			88, 113, 0, 109, 101, 110, 116, 3, 34, 122, 65, 13, 50, 47, 0, 104, 101, 110, 3, 34, 122, 107, 6, 121, 50, 0, 4, 2, 103, 101,
+			110, 3, 34, 129, 0, 2, 103, 105, 111, 110, 0, 2, 116, 97, 105, 108, 0, 8, 2, 97, 110, 0, 8, 2, 99, 101, 110, 116, 0, 97,
+			2, 109, 0, 97, 5, 3, 2, 108, 3, 34, 129, 14, 0, 115, 101, 2, 108, 3, 34, 129, 89, 121, 0, 4, 105, 8, 2, 99, 3, 34,
+			137, 0, 105, 8, 2, 108, 0, 97, 2, 108, 3, 34, 141, 0, 1, 10, 2, 32, 3, 114, 0, 7, 6, 115, 117, 0, 1, 101, 114, 2,
+			109, 17, 65, 3, 88, 57, 134, 0, 109, 97, 98, 1, 101, 114, 3, 88, 57, 134, 65, 13, 71, 0, 5, 3, 1, 101, 114, 2, 109, 17,
+			65, 3, 88, 134, 0, 4, 2, 98, 100, 117, 101, 3, 89, 2, 125, 0, 2, 98, 115, 101, 114, 0, 2, 98, 115, 105, 115, 0, 2, 98,
+			116, 114, 97, 0, 4, 2, 98, 109, 105, 3, 89, 13, 0, 2, 98, 115, 99, 114, 105, 98, 0, 2, 98, 117, 114, 98, 97, 0, 2, 98,
+			118, 0, 2, 99, 99, 17, 65, 0, 2, 102, 102, 105, 99, 0, 2, 112, 112, 108, 0, 2, 112, 112, 111, 114, 0, 2, 112, 112, 114, 101,
+			115, 0, 8, 2, 98, 109, 101, 114, 0, 98, 115, 116, 97, 2, 110, 116, 3, 89, 13, 71, 89, 47, 35, 0, 4, 115, 8, 2, 112, 3,
+			89, 13, 89, 0, 115, 8, 2, 116, 97, 105, 0, 115, 99, 8, 2, 101, 0, 1, 110, 2, 97, 108, 3, 89, 57, 134, 0, 4, 114, 1,
+			110, 117, 2, 112, 3, 89, 114, 0, 114, 2, 109, 0, 114, 2, 112, 97, 0, 114, 2, 112, 114, 0, 114, 2, 114, 0, 114, 2, 118, 0,
+			4, 2, 99, 99, 117, 108, 3, 89, 125, 0, 2, 112, 112, 108, 101, 0, 2, 112, 112, 108, 105, 99, 0, 8, 2, 98, 0, 114, 2, 114,
+			101, 121, 0, 4, 114, 3, 89, 128, 0, 114, 8, 0, 115, 8, 2, 17, 65, 3, 89, 134, 88, 0, 4, 114, 5, 5, 3, 89, 148, 0,
+			114, 5, 5, 8, 0, 4, 114, 1, 97, 101, 3, 90, 114, 0, 114, 1, 111, 0, 114, 101, 1, 10, 2, 32, 0, 4, 2, 97, 108, 3,
+			90, 134, 0, 8, 97, 99, 0, 103, 97, 114, 3, 91, 117, 81, 114, 0, 4, 114, 1, 110, 101, 3, 91, 143, 0, 114, 1, 110, 105, 2,
+			17, 65, 0, 114, 2, 97, 110, 99, 0, 114, 101, 8, 0, 7, 6, 116, 104, 0, 1, 32, 48, 15, 2, 32, 3, 13, 87, 0, 8, 2,
+			111, 109, 21, 3, 47, 0, 4, 2, 97, 110, 100, 3, 47, 107, 0, 2, 101, 97, 100, 0, 2, 101, 97, 114, 116, 0, 2, 105, 108, 108,
+			0, 2, 111, 108, 101, 0, 2, 111, 111, 100, 0, 2, 111, 117, 115, 101, 0, 101, 113, 117, 101, 3, 47, 121, 49, 0, 97, 109, 101, 115,
+			8, 3, 47, 121, 65, 88, 0, 97, 105, 3, 47, 137, 0, 4, 1, 97, 101, 2, 101, 114, 3, 86, 0, 1, 111, 111, 109, 115, 0, 1,
+			114, 2, 105, 101, 114, 0, 1, 114, 2, 121, 0, 1, 114, 111, 2, 105, 0, 2, 101, 110, 32, 0, 2, 101, 114, 17, 67, 0, 2, 101,
+			114, 110, 32, 0, 2, 101, 115, 116, 0, 2, 105, 116, 104, 0, 101, 2, 32, 0, 101, 109, 8, 3, 86, 2, 121, 65, 0, 101, 108, 101,
+			115, 115, 3, 86, 13, 55, 6, 121, 89, 0, 101, 100, 1, 117, 111, 2, 32, 3, 86, 72, 0, 105, 110, 103, 1, 101, 101, 3, 86, 113,
+			68, 0, 4, 101, 114, 2, 32, 3, 86, 114, 0, 101, 114, 2, 101, 114, 0, 101, 114, 101, 2, 32, 0, 101, 114, 101, 8, 3, 86, 140,
+			0, 4, 3, 87, 0, 1, 32, 48, 48, 2, 32, 0, 1, 32, 48, 49, 2, 32, 0, 1, 97, 99, 2, 101, 114, 105, 0, 1, 103, 2,
+			101, 110, 32, 0, 1, 104, 112, 0, 1, 110, 2, 101, 114, 12, 0, 1, 114, 97, 101, 2, 121, 0, 1, 114, 111, 119, 2, 32, 0, 2,
+			101, 114, 109, 0, 8, 2, 17, 71, 0, 8, 2, 114, 17, 71, 0, 8, 2, 119, 17, 71, 0, 8, 101, 2, 101, 114, 0, 105, 111, 8,
+			3, 87, 4, 137, 136, 0, 101, 114, 97, 112, 3, 87, 121, 34, 13, 48, 0, 101, 8, 2, 109, 17, 65, 3, 87, 129, 0, 7, 6, 117,
+			101, 0, 3, 57, 134, 0, 2, 110, 100, 3, 57, 134, 6, 121, 0, 4, 2, 110, 3, 57, 134, 13, 0, 2, 116, 0, 8, 17, 67, 2,
+			108, 0, 101, 3, 57, 134, 129, 0, 110, 101, 2, 32, 3, 57, 134, 129, 50, 0, 114, 2, 116, 3, 58, 140, 0, 4, 1, 108, 3, 134,
+			0, 1, 114, 0, 8, 115, 0, 1, 108, 2, 110, 116, 105, 3, 134, 6, 121, 0, 4, 1, 108, 2, 110, 3, 134, 13, 0, 8, 17, 67,
+			17, 67, 2, 108, 0, 7, 6, 117, 105, 0, 1, 21, 2, 116, 121, 3, 6, 57, 134, 122, 0, 1, 99, 114, 2, 116, 111, 117, 115, 3,
+			7, 57, 134, 122, 0, 1, 110, 2, 115, 3, 57, 134, 0, 1, 115, 101, 106, 2, 116, 3, 57, 134, 113, 0, 114, 2, 32, 3, 57, 143,
+			0, 115, 1, 99, 3, 58, 122, 88, 0, 115, 105, 110, 101, 1, 99, 3, 58, 122, 88, 129, 50, 0, 1, 103, 2, 116, 97, 3, 113, 0,
+			4, 1, 98, 2, 108, 3, 122, 0, 1, 99, 114, 2, 116, 0, 1, 103, 2, 108, 17, 67, 0, 8, 103, 2, 110, 0, 4, 1, 106, 2,
+			99, 3, 134, 0, 1, 108, 115, 0, 1, 114, 2, 116, 0, 1, 115, 2, 116, 0, 115, 1, 114, 2, 101, 3, 134, 88, 0, 1, 114, 103,
+			2, 116, 3, 134, 113, 0, 4, 1, 108, 102, 2, 100, 3, 134, 122, 0, 1, 114, 100, 2, 100, 0, 4, 1, 103, 2, 100, 17, 65, 13,
+			3, 137, 0, 1, 103, 2, 115, 101, 0, 1, 103, 101, 98, 2, 108, 0, 8, 103, 2, 108, 101, 0, 100, 101, 1, 103, 2, 108, 3, 137,
+			72, 0, 7, 6, 117, 110, 0, 4, 2, 97, 110, 105, 3, 2, 57, 134, 50, 0, 8, 2, 105, 113, 0, 4, 2, 114, 101, 103, 105, 3,
+			2, 125, 50, 0, 8, 2, 17, 65, 14, 128, 132, 130, 0, 8, 2, 21, 14, 128, 132, 130, 0, 110, 8, 3, 2, 125, 50, 50, 0, 8,
+			2, 105, 108, 3, 4, 57, 134, 50, 0, 4, 8, 2, 100, 101, 14, 128, 132, 130, 3, 4, 125, 50, 0, 8, 2, 101, 110, 14, 128, 132,
+			130, 0, 8, 2, 101, 120, 14, 128, 132, 130, 0, 8, 2, 105, 100, 101, 0, 8, 2, 105, 109, 14, 128, 132, 130, 0, 8, 2, 105, 110,
+			14, 128, 132, 130, 0, 8, 2, 114, 101, 17, 67, 21, 14, 128, 132, 130, 0, 100, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 4, 125,
+			50, 72, 114, 0, 97, 8, 2, 98, 3, 4, 125, 50, 119, 0, 1, 21, 2, 97, 108, 3, 6, 57, 134, 50, 0, 4, 1, 17, 67, 2,
+			101, 114, 3, 57, 134, 50, 0, 1, 116, 2, 101, 0, 2, 105, 0, 8, 2, 105, 111, 0, 8, 2, 105, 120, 0, 101, 2, 32, 0, 105,
+			116, 2, 101, 3, 57, 134, 50, 6, 137, 47, 0, 105, 8, 3, 57, 134, 50, 122, 0, 4, 1, 112, 2, 105, 115, 104, 3, 125, 50, 0,
+			2, 17, 65, 0, 8, 2, 100, 117, 108, 97, 0, 8, 2, 103, 117, 0, 4, 1, 106, 2, 17, 65, 3, 134, 50, 0, 1, 114, 2, 105,
+			0, 5, 3, 1, 116, 2, 101, 0, 101, 1, 108, 2, 32, 0, 101, 1, 114, 2, 32, 0, 101, 5, 3, 1, 100, 2, 32, 0, 101, 5,
+			3, 1, 116, 2, 32, 0, 7, 6, 117, 112, 0, 4, 8, 2, 98, 3, 2, 125, 48, 0, 8, 2, 99, 0, 8, 2, 100, 0, 8, 2,
+			101, 0, 8, 2, 103, 0, 8, 2, 104, 0, 8, 2, 115, 101, 0, 8, 2, 115, 116, 0, 1, 115, 2, 114, 101, 3, 2, 134, 48, 0,
+			1, 99, 99, 111, 3, 57, 117, 48, 0, 121, 1, 99, 99, 111, 3, 57, 117, 48, 137, 0, 111, 110, 3, 125, 48, 124, 50, 0, 4, 1,
+			17, 67, 2, 108, 101, 3, 134, 48, 0, 1, 17, 67, 2, 108, 105, 0, 2, 108, 32, 0, 101, 114, 105, 1, 115, 2, 111, 3, 134, 48,
+			6, 141, 34, 122, 0, 101, 114, 1, 115, 3, 134, 48, 114, 0, 7, 6, 117, 114, 0, 1, 106, 2, 121, 3, 13, 34, 0, 101, 100, 1,
+			103, 2, 32, 3, 13, 72, 0, 1, 116, 2, 17, 65, 3, 57, 13, 34, 0, 101, 1, 115, 10, 2, 32, 3, 57, 13, 114, 0, 4, 101,
+			1, 110, 101, 2, 32, 3, 57, 114, 0, 101, 5, 3, 1, 103, 2, 32, 0, 4, 1, 17, 67, 2, 17, 65, 3, 57, 117, 34, 0, 1,
+			21, 2, 97, 116, 105, 111, 110, 0, 1, 21, 2, 121, 0, 97, 1, 21, 2, 116, 3, 57, 117, 34, 138, 0, 4, 2, 101, 100, 32, 3,
+			57, 143, 0, 8, 2, 17, 65, 0, 8, 102, 2, 17, 65, 0, 8, 102, 2, 121, 0, 101, 1, 116, 97, 99, 105, 2, 32, 0, 101, 2,
+			32, 0, 1, 98, 2, 101, 3, 57, 143, 34, 0, 4, 1, 103, 10, 2, 32, 3, 114, 0, 1, 104, 10, 2, 32, 0, 1, 109, 10, 2,
+			32, 0, 1, 116, 97, 115, 2, 100, 0, 101, 1, 103, 2, 32, 0, 101, 1, 106, 110, 2, 32, 0, 101, 1, 122, 105, 0, 4, 1, 98,
+			2, 105, 3, 121, 34, 0, 1, 98, 2, 121, 0, 114, 5, 35, 1, 98, 2, 111, 3, 125, 34, 0, 4, 1, 112, 115, 2, 32, 3, 128,
+			0, 2, 17, 66, 0, 2, 32, 0, 114, 1, 102, 2, 121, 0, 114, 2, 32, 0, 114, 5, 3, 0, 103, 1, 98, 2, 101, 114, 3, 128,
+			81, 0, 4, 101, 1, 108, 105, 2, 32, 3, 142, 0, 101, 1, 114, 2, 32, 0, 4, 1, 106, 2, 105, 3, 143, 0, 1, 108, 2, 17,
+			65, 12, 0, 1, 112, 10, 2, 32, 0, 8, 106, 2, 121, 0, 1, 114, 2, 17, 65, 12, 3, 143, 34, 0, 4, 5, 5, 1, 112, 115,
+			2, 32, 3, 148, 0, 5, 5, 2, 17, 66, 0, 5, 5, 2, 32, 0, 114, 5, 5, 1, 102, 2, 121, 0, 114, 5, 5, 2, 32, 0,
+			103, 5, 5, 1, 98, 2, 101, 114, 3, 148, 81, 0, 7, 6, 39, 0, 114, 101, 2, 32, 14, 128, 128, 131, 3, 13, 0, 118, 101, 2,
+			32, 14, 128, 128, 131, 3, 13, 84, 0, 100, 2, 32, 14, 128, 128, 130, 3, 72, 0, 4, 115, 1, 32, 54, 49, 2, 32, 3, 88, 0,
+			115, 2, 32, 14, 128, 128, 130, 0, 4, 115, 1, 102, 2, 32, 14, 128, 128, 130, 3, 89, 0, 115, 1, 104, 99, 111, 2, 32, 14, 128,
+			128, 130, 0, 115, 1, 107, 2, 32, 14, 128, 128, 130, 0, 115, 1, 112, 2, 32, 14, 128, 128, 130, 0, 115, 1, 116, 2, 32, 14, 128,
+			128, 130, 0, 4, 115, 1, 32, 54, 2, 32, 3, 113, 88, 0, 115, 1, 101, 99, 2, 32, 14, 128, 128, 130, 0, 115, 1, 101, 115, 2,
+			32, 14, 128, 128, 130, 0, 115, 1, 104, 99, 2, 32, 14, 128, 128, 130, 0, 115, 1, 104, 115, 2, 32, 14, 128, 128, 130, 0, 115, 1,
+			115, 2, 32, 14, 128, 128, 130, 0, 115, 1, 120, 2, 32, 14, 128, 128, 130, 0, 115, 1, 122, 2, 32, 14, 128, 128, 130, 0, 108, 108,
+			2, 32, 14, 128, 128, 131, 3, 118, 0, 7, 6, 69, 0, 3, 0, 4, 1, 21, 2, 109, 98, 101, 114, 3, 6, 121, 0, 2, 110, 116,
+			105, 0, 2, 110, 116, 111, 117, 115, 0, 2, 110, 116, 117, 0, 116, 116, 101, 2, 32, 3, 6, 121, 47, 0, 116, 116, 97, 2, 32, 3,
+			6, 121, 47, 13, 0, 99, 116, 111, 109, 121, 2, 32, 14, 128, 128, 134, 3, 6, 121, 49, 47, 13, 65, 122, 0, 110, 2, 100, 17, 65,
+			32, 3, 6, 121, 50, 0, 110, 115, 107, 2, 32, 3, 6, 121, 50, 89, 49, 0, 108, 108, 97, 2, 32, 3, 6, 121, 55, 13, 0, 115,
+			113, 117, 101, 3, 6, 121, 89, 49, 0, 4, 2, 17, 67, 105, 97, 3, 6, 129, 0, 2, 115, 105, 97, 0, 109, 2, 105, 99, 32, 3,
+			6, 129, 65, 0, 97, 2, 110, 32, 3, 6, 141, 0, 114, 105, 2, 17, 65, 3, 6, 141, 34, 113, 0, 101, 114, 2, 32, 3, 6, 142,
+			0, 111, 117, 115, 2, 32, 3, 8, 57, 13, 89, 0, 97, 2, 32, 3, 8, 141, 0, 110, 101, 114, 2, 32, 3, 10, 50, 13, 0, 110,
+			105, 110, 103, 2, 32, 3, 10, 50, 113, 68, 0, 4, 2, 17, 66, 17, 67, 32, 3, 13, 0, 2, 17, 66, 17, 67, 101, 32, 0, 2,
+			17, 66, 32, 0, 2, 110, 116, 32, 0, 114, 2, 105, 101, 32, 3, 13, 34, 0, 114, 121, 2, 32, 3, 13, 34, 2, 122, 0, 4, 110,
+			2, 32, 3, 13, 50, 0, 110, 2, 97, 116, 17, 65, 0, 110, 101, 100, 2, 32, 3, 13, 50, 72, 0, 109, 2, 32, 3, 13, 65, 0,
+			115, 1, 114, 17, 67, 2, 32, 14, 128, 129, 130, 3, 13, 88, 0, 116, 114, 121, 2, 32, 14, 128, 128, 130, 3, 34, 122, 0, 4, 100,
+			1, 99, 10, 2, 32, 14, 128, 139, 130, 3, 47, 0, 100, 1, 104, 99, 10, 2, 32, 14, 128, 139, 130, 0, 100, 1, 107, 10, 2, 32,
+			14, 128, 139, 130, 0, 100, 1, 112, 10, 2, 32, 14, 128, 139, 130, 0, 100, 1, 120, 10, 2, 32, 14, 128, 136, 130, 0, 4, 100, 1,
+			21, 21, 2, 32, 14, 128, 139, 130, 3, 72, 0, 100, 1, 109, 111, 21, 21, 10, 2, 32, 14, 128, 136, 130, 0, 100, 1, 114, 117, 2,
+			32, 14, 128, 138, 129, 0, 100, 1, 121, 2, 32, 0, 115, 1, 10, 2, 32, 14, 128, 129, 130, 3, 88, 0, 100, 1, 17, 67, 10, 2,
+			32, 14, 128, 139, 130, 3, 109, 0, 4, 115, 1, 102, 2, 32, 14, 128, 129, 130, 3, 110, 0, 115, 1, 107, 2, 32, 14, 128, 129, 130,
+			0, 115, 1, 112, 2, 32, 14, 128, 129, 130, 0, 115, 1, 116, 2, 32, 14, 128, 129, 130, 0, 2, 111, 32, 3, 113, 0, 117, 115, 2,
+			32, 3, 113, 13, 89, 0, 4, 114, 1, 100, 97, 2, 32, 14, 128, 128, 129, 3, 114, 0, 114, 2, 17, 67, 0, 114, 2, 32, 0, 114,
+			115, 1, 100, 97, 2, 32, 14, 128, 128, 130, 3, 114, 88, 0, 4, 108, 2, 32, 3, 118, 0, 108, 101, 2, 32, 0, 108, 108, 2, 12,
+			0, 4, 1, 108, 2, 112, 115, 3, 121, 0, 1, 108, 2, 112, 116, 0, 2, 110, 100, 111, 117, 115, 0, 2, 110, 105, 110, 103, 0, 2,
+			115, 115, 0, 2, 116, 105, 99, 32, 0, 2, 116, 114, 105, 99, 0, 2, 120, 32, 0, 114, 2, 105, 99, 32, 3, 121, 34, 0, 110, 5,
+			8, 2, 32, 3, 121, 50, 0, 110, 105, 110, 103, 5, 8, 2, 32, 3, 121, 50, 113, 68, 0, 108, 5, 8, 2, 32, 3, 121, 55, 0,
+			115, 115, 2, 32, 3, 121, 89, 0, 1, 107, 97, 110, 2, 100, 3, 122, 0, 100, 108, 121, 2, 32, 14, 128, 129, 132, 3, 122, 72, 55,
+			2, 122, 0, 4, 100, 1, 100, 10, 2, 32, 14, 128, 139, 130, 3, 123, 72, 0, 100, 1, 116, 10, 2, 32, 14, 128, 139, 130, 0, 4,
+			39, 115, 1, 99, 2, 32, 14, 128, 129, 131, 3, 123, 88, 0, 39, 115, 1, 115, 2, 32, 14, 128, 129, 130, 0, 115, 1, 99, 2, 32,
+			14, 128, 129, 130, 0, 115, 1, 103, 2, 32, 14, 128, 129, 130, 0, 115, 1, 104, 99, 2, 32, 14, 128, 129, 130, 0, 115, 1, 104, 112,
+			2, 32, 14, 128, 129, 130, 0, 115, 1, 104, 115, 2, 32, 14, 128, 129, 130, 0, 115, 1, 115, 2, 32, 14, 128, 129, 130, 0, 115, 1,
+			120, 2, 32, 14, 128, 128, 130, 0, 4, 2, 100, 105, 97, 32, 3, 129, 0, 2, 100, 105, 99, 32, 0, 2, 116, 101, 32, 0, 69, 2,
+			32, 0, 101, 2, 32, 0, 101, 2, 100, 0, 105, 2, 110, 32, 0, 110, 101, 2, 32, 3, 129, 50, 0, 109, 101, 2, 32, 3, 129, 65,
+			0, 115, 101, 2, 32, 3, 129, 88, 0, 119, 2, 32, 3, 134, 0, 105, 2, 32, 3, 137, 0, 121, 1, 98, 111, 2, 32, 3, 138, 0,
+			7, 6, 97, 0, 8, 2, 113, 117, 3, 2, 35, 0, 101, 114, 8, 99, 3, 2, 140, 0, 8, 2, 32, 15, 3, 4, 138, 0, 4, 1,
+			21, 2, 107, 105, 32, 3, 6, 35, 0, 1, 104, 2, 122, 97, 114, 0, 2, 122, 122, 32, 0, 4, 1, 21, 2, 122, 105, 32, 3, 6,
+			126, 0, 2, 17, 66, 111, 32, 0, 2, 17, 66, 117, 32, 0, 2, 17, 67, 97, 32, 0, 107, 117, 2, 32, 3, 6, 126, 49, 134, 0,
+			119, 105, 1, 21, 2, 32, 3, 6, 126, 58, 122, 0, 122, 101, 1, 107, 21, 2, 32, 3, 6, 126, 88, 122, 0, 4, 97, 114, 3, 6,
+			127, 0, 101, 114, 1, 114, 0, 101, 2, 118, 97, 108, 3, 6, 129, 0, 4, 1, 21, 2, 17, 66, 105, 97, 3, 6, 138, 0, 1, 21,
+			2, 17, 66, 105, 117, 0, 1, 21, 2, 116, 105, 111, 117, 115, 0, 2, 17, 67, 97, 98, 108, 101, 0, 2, 17, 67, 97, 98, 108, 121,
+			0, 2, 17, 67, 105, 98, 108, 101, 0, 2, 116, 105, 111, 110, 0, 2, 122, 105, 100, 101, 0, 8, 2, 45, 0, 101, 97, 3, 6, 141,
+			0, 1, 98, 10, 2, 32, 3, 8, 13, 0, 111, 2, 32, 3, 8, 135, 0, 4, 1, 10, 2, 32, 3, 13, 0, 1, 103, 2, 122, 101,
+			17, 67, 11, 0, 1, 109, 2, 104, 111, 103, 0, 1, 119, 111, 2, 100, 0, 2, 119, 97, 121, 32, 0, 104, 1, 10, 2, 32, 0, 113,
+			117, 97, 2, 116, 3, 13, 49, 58, 35, 0, 4, 3, 35, 0, 1, 17, 67, 2, 120, 12, 0, 1, 109, 2, 106, 101, 115, 0, 1, 110,
+			2, 116, 105, 111, 110, 97, 108, 0, 1, 110, 2, 116, 117, 114, 97, 0, 1, 114, 98, 2, 122, 105, 108, 0, 1, 114, 114, 105, 2, 116,
+			105, 111, 0, 1, 119, 115, 2, 103, 0, 1, 119, 115, 2, 109, 32, 0, 1, 119, 115, 2, 110, 107, 0, 2, 17, 66, 101, 17, 67, 111,
+			32, 0, 2, 17, 66, 101, 114, 17, 65, 0, 2, 17, 66, 101, 114, 17, 67, 0, 2, 17, 66, 101, 116, 0, 2, 17, 67, 101, 101, 12,
+			0, 2, 119, 17, 65, 0, 8, 2, 118, 101, 0, 8, 2, 120, 12, 0, 8, 114, 2, 116, 105, 111, 110, 0, 4, 97, 1, 97, 97, 3,
+			35, 12, 0, 97, 2, 97, 0, 107, 1, 21, 2, 105, 97, 3, 35, 49, 0, 113, 117, 2, 97, 3, 35, 49, 58, 0, 113, 117, 105, 3,
+			35, 49, 58, 122, 0, 101, 100, 1, 21, 2, 32, 14, 128, 128, 130, 3, 72, 0, 4, 1, 45, 2, 45, 3, 119, 0, 8, 2, 32, 0,
+			8, 2, 45, 104, 97, 108, 102, 0, 8, 2, 107, 21, 0, 8, 2, 119, 104, 21, 0, 113, 117, 2, 97, 114, 105, 17, 65, 3, 119, 49,
+			58, 0, 4, 119, 8, 2, 97, 12, 3, 119, 58, 0, 119, 8, 2, 111, 107, 0, 1, 108, 2, 116, 104, 3, 120, 0, 2, 17, 66, 105,
+			110, 103, 3, 121, 0, 101, 109, 111, 114, 114, 104, 1, 104, 3, 121, 65, 114, 34, 0, 1, 110, 103, 105, 115, 2, 116, 117, 114, 101, 3,
+			122, 0, 4, 1, 117, 113, 115, 2, 115, 104, 3, 124, 0, 1, 119, 2, 98, 0, 1, 119, 2, 100, 0, 1, 119, 2, 115, 0, 1, 119,
+			2, 116, 99, 0, 1, 119, 115, 2, 17, 66, 0, 4, 1, 17, 67, 29, 2, 32, 3, 126, 0, 1, 17, 67, 100, 110, 97, 114, 103, 2,
+			32, 0, 1, 119, 115, 2, 122, 0, 97, 0, 104, 2, 17, 67, 0, 104, 2, 32, 0, 4, 101, 3, 129, 0, 101, 1, 104, 2, 109, 0,
+			101, 8, 2, 111, 110, 0, 111, 105, 115, 2, 32, 3, 129, 91, 0, 111, 105, 115, 101, 2, 32, 3, 129, 91, 13, 0, 4, 1, 119, 2,
+			116, 101, 114, 3, 130, 0, 119, 0, 119, 8, 2, 102, 0, 119, 8, 2, 107, 0, 119, 101, 2, 17, 66, 0, 119, 101, 2, 32, 0, 119,
+			101, 8, 0, 119, 97, 108, 3, 130, 55, 0, 4, 111, 1, 109, 3, 135, 0, 111, 1, 109, 2, 114, 105, 0, 111, 1, 116, 0, 4, 101,
+			1, 109, 2, 115, 116, 3, 137, 0, 121, 8, 0, 4, 1, 17, 67, 29, 2, 17, 66, 121, 32, 3, 138, 0, 1, 32, 15, 2, 32, 0,
+			1, 104, 2, 122, 17, 65, 0, 1, 108, 2, 122, 17, 71, 0, 1, 108, 98, 2, 122, 111, 110, 0, 1, 108, 103, 2, 99, 105, 0, 1,
+			109, 2, 106, 111, 114, 32, 0, 1, 109, 2, 106, 111, 114, 101, 0, 1, 110, 2, 17, 67, 97, 108, 0, 1, 110, 2, 116, 117, 114, 0,
+			1, 112, 2, 116, 105, 101, 110, 0, 1, 114, 2, 99, 105, 17, 65, 0, 1, 114, 2, 122, 105, 0, 1, 114, 101, 2, 115, 117, 114, 0,
+			1, 119, 2, 17, 66, 101, 13, 0, 1, 119, 115, 2, 116, 104, 0, 2, 17, 66, 101, 13, 0, 2, 17, 67, 97, 98, 105, 108, 105, 116,
+			121, 0, 2, 115, 105, 111, 110, 0, 2, 116, 104, 101, 32, 12, 0, 2, 122, 121, 0, 8, 2, 32, 45, 0, 8, 2, 118, 105, 97, 116,
+			0, 8, 2, 118, 111, 110, 0, 101, 2, 108, 0, 121, 0, 121, 1, 119, 0, 111, 114, 3, 138, 6, 133, 0, 111, 1, 103, 2, 108, 3,
+			138, 13, 0, 113, 117, 101, 2, 111, 3, 138, 49, 58, 122, 0, 39, 115, 8, 2, 32, 3, 138, 88, 0, 122, 111, 114, 1, 114, 3, 138,
+			88, 114, 0, 121, 108, 101, 8, 3, 138, 118, 0, 111, 3, 138, 124, 0, 4, 101, 114, 3, 140, 0, 101, 114, 8, 2, 111, 0, 121, 114,
+			8, 0, 4, 101, 114, 111, 2, 112, 108, 97, 110, 3, 140, 34, 13, 0, 101, 114, 111, 2, 115, 111, 108, 0, 101, 114, 111, 8, 3, 140,
+			34, 136, 0, 119, 114, 2, 32, 3, 146, 0, 7, 6, 98, 0, 4, 1, 109, 2, 32, 3, 0, 2, 98, 3, 0, 4, 116, 1, 101, 100,
+			3, 47, 0, 116, 1, 117, 115, 2, 108, 0, 4, 3, 71, 0, 8, 2, 18, 66, 17, 71, 0, 104, 8, 0, 97, 8, 2, 109, 98, 21,
+			3, 71, 2, 35, 0, 4, 97, 108, 108, 105, 8, 2, 21, 3, 71, 4, 35, 55, 113, 0, 97, 108, 108, 121, 8, 2, 21, 0, 97, 116,
+			116, 108, 101, 8, 2, 21, 14, 128, 132, 134, 3, 71, 6, 35, 47, 118, 0, 111, 111, 107, 8, 2, 21, 21, 14, 128, 132, 132, 3, 71,
+			6, 117, 49, 0, 117, 114, 121, 1, 21, 2, 32, 14, 128, 130, 132, 3, 71, 34, 2, 122, 0, 114, 122, 8, 2, 101, 3, 71, 34, 88,
+			0, 117, 103, 8, 2, 108, 101, 3, 71, 57, 134, 81, 0, 111, 8, 2, 115, 111, 109, 3, 71, 117, 0, 97, 108, 108, 105, 2, 115, 116,
+			3, 71, 119, 55, 6, 122, 0, 117, 114, 121, 5, 3, 1, 21, 2, 32, 14, 128, 130, 132, 3, 71, 121, 34, 2, 122, 0, 121, 116, 101,
+			8, 3, 71, 137, 47, 0, 97, 121, 111, 117, 8, 3, 71, 137, 134, 0, 7, 6, 99, 0, 4, 1, 115, 2, 101, 3, 0, 2, 113, 3,
+			0, 122, 8, 2, 97, 114, 3, 47, 89, 0, 4, 3, 49, 0, 1, 97, 109, 2, 105, 110, 0, 2, 101, 108, 116, 0, 8, 2, 18, 66,
+			17, 71, 0, 99, 0, 99, 1, 111, 99, 2, 105, 32, 0, 99, 1, 111, 115, 2, 101, 114, 0, 99, 104, 0, 107, 0, 104, 97, 114, 97,
+			2, 99, 116, 3, 49, 35, 34, 113, 0, 117, 97, 1, 101, 3, 49, 58, 35, 0, 4, 99, 2, 101, 3, 49, 89, 0, 99, 2, 105, 0,
+			119, 109, 8, 3, 49, 117, 65, 0, 97, 99, 111, 2, 112, 104, 3, 49, 119, 49, 6, 124, 0, 105, 97, 8, 2, 114, 97, 3, 49, 141,
+			0, 4, 99, 2, 105, 110, 111, 3, 76, 0, 122, 8, 2, 101, 0, 2, 101, 108, 108, 18, 68, 32, 3, 76, 6, 0, 122, 101, 99, 104,
+			3, 76, 121, 49, 0, 4, 2, 69, 3, 89, 0, 2, 97, 101, 115, 0, 2, 101, 0, 2, 105, 0, 2, 121, 0, 2, 195, 169, 0, 101,
+			8, 2, 108, 101, 115, 116, 3, 89, 13, 0, 101, 109, 101, 110, 116, 8, 3, 89, 113, 65, 121, 50, 47, 0, 105, 115, 109, 2, 32, 3,
+			89, 122, 88, 13, 65, 0, 105, 112, 104, 2, 101, 114, 3, 89, 137, 83, 0, 105, 97, 2, 114, 121, 3, 91, 8, 13, 0, 4, 101, 111,
+			117, 115, 3, 91, 8, 13, 89, 0, 105, 111, 117, 115, 0, 4, 105, 97, 110, 2, 32, 3, 91, 13, 50, 0, 105, 101, 110, 0, 105, 111,
+			110, 0, 105, 97, 108, 3, 91, 13, 55, 0, 105, 97, 108, 2, 32, 3, 91, 118, 0, 105, 97, 108, 5, 8, 2, 32, 3, 91, 119, 55,
+			0, 105, 101, 110, 5, 8, 3, 91, 121, 50, 0, 105, 97, 2, 108, 105, 116, 121, 3, 91, 122, 35, 0, 105, 97, 2, 98, 3, 91, 141,
+			0, 105, 97, 110, 3, 91, 141, 50, 0, 7, 6, 100, 0, 2, 100, 3, 0, 117, 109, 1, 21, 2, 32, 3, 8, 72, 13, 65, 0, 116,
+			2, 32, 3, 47, 0, 110, 101, 1, 101, 119, 2, 115, 100, 3, 50, 0, 4, 3, 72, 0, 1, 101, 21, 21, 2, 32, 14, 128, 128, 129,
+			0, 8, 2, 18, 66, 17, 71, 0, 8, 2, 104, 21, 21, 0, 8, 2, 110, 105, 101, 0, 8, 2, 119, 17, 71, 0, 39, 8, 2, 17,
+			65, 14, 128, 132, 130, 0, 100, 104, 0, 104, 2, 25, 0, 98, 2, 32, 3, 72, 4, 129, 71, 129, 0, 109, 105, 8, 2, 116, 114, 3,
+			72, 13, 65, 129, 0, 117, 5, 35, 2, 112, 108, 3, 72, 57, 134, 0, 4, 117, 114, 2, 17, 65, 3, 72, 57, 143, 0, 117, 114, 2,
+			32, 0, 117, 8, 2, 112, 3, 72, 134, 0, 121, 101, 8, 3, 72, 137, 0, 105, 114, 8, 2, 32, 3, 72, 145, 0, 4, 103, 2, 17,
+			66, 3, 75, 0, 103, 2, 32, 0, 103, 2, 101, 0, 103, 2, 105, 0, 103, 2, 121, 0, 106, 0, 106, 8, 2, 17, 71, 0, 103, 101,
+			100, 2, 32, 3, 75, 72, 0, 117, 114, 101, 1, 101, 99, 3, 75, 114, 0, 4, 117, 2, 97, 108, 32, 3, 75, 134, 0, 117, 2, 99,
+			97, 116, 0, 117, 5, 3, 1, 10, 2, 17, 67, 17, 65, 0, 7, 6, 101, 0, 4, 1, 10, 2, 32, 3, 0, 4, 1, 21, 21, 2,
+			109, 101, 110, 116, 32, 3, 0, 4, 2, 102, 117, 108, 3, 0, 2, 119, 111, 114, 107, 3, 0, 4, 1, 17, 66, 99, 97, 2, 32, 3,
+			2, 122, 0, 2, 102, 102, 101, 99, 0, 2, 102, 102, 105, 99, 0, 2, 113, 117, 105, 112, 0, 8, 2, 99, 108, 0, 8, 2, 102, 102,
+			117, 0, 8, 2, 106, 17, 65, 0, 8, 2, 112, 104, 101, 109, 0, 8, 2, 113, 117, 97, 116, 0, 113, 117, 105, 118, 3, 2, 122, 49,
+			58, 122, 84, 0, 2, 17, 67, 105, 99, 97, 108, 3, 6, 121, 0, 117, 114, 2, 32, 3, 6, 128, 0, 117, 115, 101, 1, 21, 2, 32,
+			3, 6, 128, 88, 0, 4, 1, 21, 2, 17, 67, 105, 97, 32, 3, 6, 129, 0, 1, 21, 2, 103, 105, 99, 0, 1, 104, 2, 115, 105,
+			111, 110, 0, 2, 17, 66, 111, 32, 0, 2, 17, 66, 111, 101, 32, 0, 101, 1, 116, 2, 110, 32, 0, 101, 2, 109, 0, 117, 115, 101,
+			5, 3, 1, 21, 2, 32, 3, 6, 134, 88, 0, 117, 1, 115, 2, 109, 32, 3, 6, 141, 0, 101, 114, 3, 6, 142, 0, 117, 114, 5,
+			3, 2, 32, 3, 6, 143, 0, 117, 114, 5, 5, 2, 32, 3, 6, 148, 0, 117, 115, 1, 10, 2, 32, 3, 8, 113, 13, 89, 0, 122,
+			1, 21, 2, 32, 3, 8, 121, 88, 0, 4, 1, 10, 2, 110, 3, 13, 0, 1, 108, 2, 103, 105, 116, 0, 1, 108, 101, 99, 2, 98,
+			114, 97, 0, 98, 108, 101, 1, 21, 21, 2, 32, 3, 13, 71, 118, 0, 103, 1, 10, 2, 121, 3, 13, 75, 0, 39, 115, 1, 114, 17,
+			67, 10, 2, 32, 3, 13, 88, 0, 99, 121, 1, 10, 2, 32, 3, 13, 89, 2, 37, 0, 4, 117, 3, 57, 134, 0, 119, 0, 119, 2,
+			32, 0, 117, 114, 111, 8, 3, 57, 143, 34, 136, 0, 117, 114, 111, 8, 2, 112, 101, 3, 57, 143, 44, 13, 0, 119, 97, 121, 2, 32,
+			14, 128, 128, 131, 3, 58, 138, 0, 4, 39, 115, 1, 17, 67, 10, 2, 32, 14, 128, 130, 130, 3, 88, 0, 39, 115, 1, 104, 116, 10,
+			2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 114, 10, 2, 32, 14, 128, 130, 130, 0, 4, 39, 115, 1, 102, 10, 2, 32, 14, 128, 130,
+			130, 3, 89, 0, 39, 115, 1, 107, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 112, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115,
+			1, 116, 10, 2, 32, 14, 128, 130, 130, 0, 4, 1, 110, 2, 103, 111, 116, 3, 113, 0, 2, 111, 0, 4, 112, 2, 111, 120, 3, 113,
+			48, 0, 112, 8, 2, 105, 115, 17, 67, 0, 102, 121, 1, 21, 21, 2, 32, 3, 113, 83, 137, 0, 102, 105, 101, 114, 2, 32, 3, 113,
+			83, 145, 0, 4, 3, 121, 0, 1, 104, 17, 65, 2, 110, 0, 1, 112, 115, 2, 99, 105, 97, 0, 1, 114, 10, 2, 110, 0, 1, 114,
+			99, 2, 112, 101, 12, 0, 1, 114, 99, 115, 105, 100, 2, 116, 105, 111, 110, 0, 2, 17, 67, 105, 99, 32, 0, 112, 105, 8, 3, 121,
+			48, 122, 0, 112, 105, 100, 101, 114, 8, 3, 121, 48, 122, 72, 6, 128, 0, 99, 104, 1, 116, 2, 32, 3, 121, 49, 0, 103, 105, 1,
+			108, 2, 98, 3, 121, 75, 13, 0, 4, 1, 108, 108, 2, 110, 103, 101, 3, 122, 0, 1, 109, 2, 99, 104, 97, 110, 105, 99, 0, 1,
+			116, 110, 105, 2, 103, 101, 0, 1, 116, 110, 105, 2, 103, 114, 97, 0, 1, 116, 114, 101, 118, 2, 98, 0, 8, 108, 101, 2, 109, 101,
+			110, 0, 101, 1, 102, 102, 111, 99, 0, 99, 111, 110, 111, 2, 109, 3, 122, 49, 6, 124, 50, 13, 0, 4, 39, 115, 1, 99, 10, 2,
+			32, 14, 128, 130, 130, 3, 122, 88, 0, 39, 115, 1, 103, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 104, 99, 10, 2, 32, 14,
+			128, 130, 130, 0, 39, 115, 1, 104, 112, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 104, 115, 10, 2, 32, 14, 128, 130, 130, 0,
+			39, 115, 1, 115, 10, 2, 32, 14, 128, 130, 130, 0, 39, 115, 1, 120, 10, 2, 32, 14, 128, 130, 130, 0, 117, 114, 1, 108, 3, 128,
+			0, 4, 1, 17, 67, 29, 2, 17, 66, 101, 32, 3, 129, 0, 1, 17, 67, 29, 2, 32, 24, 0, 1, 21, 2, 116, 105, 111, 0, 1,
+			29, 2, 103, 97, 110, 32, 0, 1, 100, 2, 102, 97, 117, 108, 116, 0, 1, 108, 2, 103, 97, 108, 0, 1, 110, 2, 103, 114, 111, 0,
+			1, 112, 115, 2, 99, 105, 101, 115, 0, 1, 114, 2, 103, 97, 108, 0, 1, 114, 102, 2, 113, 0, 2, 17, 67, 105, 117, 17, 66, 0,
+			2, 98, 114, 105, 97, 0, 2, 109, 101, 32, 0, 2, 109, 101, 111, 117, 0, 2, 113, 117, 97, 108, 0, 8, 2, 113, 117, 97, 0, 8,
+			17, 67, 2, 109, 117, 114, 0, 8, 115, 2, 113, 117, 101, 0, 101, 0, 117, 2, 109, 32, 0, 99, 111, 110, 111, 2, 109, 105, 99, 3,
+			129, 49, 13, 50, 6, 124, 0, 99, 111, 8, 2, 115, 3, 129, 49, 136, 0, 103, 105, 111, 110, 1, 108, 3, 129, 75, 13, 50, 0, 103,
+			121, 2, 112, 116, 3, 129, 75, 122, 0, 4, 101, 115, 101, 1, 104, 99, 3, 129, 88, 0, 101, 122, 101, 2, 21, 0, 4, 119, 1, 106,
+			2, 12, 3, 134, 0, 119, 1, 108, 2, 12, 0, 119, 1, 114, 2, 12, 0, 119, 5, 3, 1, 100, 0, 119, 5, 3, 1, 110, 0, 119,
+			5, 3, 1, 116, 0, 119, 8, 115, 0, 119, 101, 1, 106, 2, 108, 3, 134, 13, 0, 119, 8, 115, 2, 32, 3, 136, 0, 4, 104, 2,
+			25, 3, 138, 0, 106, 1, 118, 2, 32, 0, 4, 117, 1, 100, 2, 116, 115, 3, 139, 0, 117, 1, 114, 2, 100, 0, 39, 101, 114, 3,
+			140, 0, 117, 114, 5, 5, 3, 148, 0, 7, 6, 102, 0, 2, 102, 3, 0, 4, 3, 83, 0, 8, 2, 18, 66, 17, 71, 0, 116, 2,
+			101, 110, 0, 111, 114, 2, 115, 101, 101, 3, 83, 2, 132, 0, 111, 114, 2, 119, 97, 114, 100, 3, 83, 6, 133, 0, 4, 97, 2, 109,
+			105, 108, 105, 97, 114, 3, 83, 13, 0, 111, 114, 2, 98, 97, 100, 0, 111, 114, 2, 98, 105, 100, 0, 105, 8, 2, 116, 122, 21, 3,
+			83, 113, 0, 101, 100, 1, 114, 101, 2, 32, 3, 83, 121, 72, 0, 106, 8, 2, 111, 114, 100, 3, 83, 122, 6, 0, 97, 2, 99, 105,
+			17, 65, 3, 83, 138, 0, 7, 6, 103, 0, 8, 2, 110, 17, 71, 3, 0, 2, 121, 110, 111, 117, 115, 32, 3, 8, 75, 0, 111, 2,
+			110, 97, 108, 32, 3, 8, 81, 124, 0, 104, 116, 3, 47, 0, 110, 2, 32, 3, 50, 0, 109, 2, 32, 3, 65, 0, 4, 1, 101, 118,
+			2, 101, 116, 3, 75, 0, 1, 111, 2, 101, 116, 0, 1, 114, 101, 2, 101, 116, 0, 2, 69, 0, 2, 101, 0, 2, 101, 116, 116, 101,
+			32, 0, 2, 105, 0, 2, 121, 0, 103, 1, 97, 120, 101, 2, 101, 114, 0, 101, 2, 110, 105, 99, 32, 3, 75, 6, 121, 0, 101, 110,
+			101, 115, 105, 115, 3, 75, 6, 121, 50, 113, 89, 122, 89, 0, 101, 111, 117, 115, 3, 75, 8, 13, 89, 0, 4, 105, 97, 1, 10, 2,
+			17, 67, 32, 3, 75, 13, 0, 105, 97, 1, 10, 2, 32, 0, 105, 117, 1, 10, 2, 109, 0, 4, 105, 110, 103, 1, 108, 3, 75, 113,
+			68, 0, 105, 110, 103, 1, 114, 0, 97, 111, 108, 8, 3, 75, 138, 55, 0, 4, 3, 81, 0, 1, 17, 65, 11, 2, 101, 114, 0, 1,
+			110, 117, 104, 0, 1, 111, 2, 121, 32, 0, 1, 111, 98, 2, 69, 121, 0, 1, 111, 103, 2, 105, 99, 32, 0, 2, 101, 97, 114, 0,
+			2, 101, 101, 107, 0, 2, 101, 116, 0, 2, 105, 102, 116, 0, 2, 105, 103, 103, 0, 2, 105, 108, 17, 67, 0, 2, 105, 108, 116, 0,
+			2, 105, 114, 25, 0, 2, 105, 118, 101, 0, 8, 2, 18, 66, 17, 71, 0, 8, 2, 101, 99, 0, 8, 2, 101, 107, 0, 8, 2, 101,
+			114, 116, 0, 8, 2, 105, 100, 0, 8, 2, 105, 108, 25, 0, 8, 2, 105, 109, 0, 8, 2, 105, 116, 0, 8, 2, 105, 122, 0, 8,
+			2, 119, 17, 71, 0, 8, 2, 121, 110, 0, 103, 0, 104, 1, 17, 67, 2, 17, 65, 0, 104, 2, 17, 67, 0, 104, 2, 32, 0, 104,
+			2, 97, 110, 0, 104, 8, 2, 17, 71, 0, 117, 101, 2, 32, 0, 105, 2, 32, 3, 81, 2, 122, 0, 101, 2, 100, 100, 3, 81, 6,
+			121, 0, 110, 117, 8, 3, 81, 13, 50, 134, 0, 117, 97, 121, 1, 21, 2, 32, 3, 81, 58, 137, 0, 4, 101, 1, 114, 111, 102, 2,
+			116, 3, 81, 121, 0, 117, 101, 8, 0, 105, 103, 97, 8, 3, 81, 122, 81, 13, 0, 117, 101, 114, 8, 2, 110, 3, 81, 128, 0, 105,
+			1, 97, 2, 32, 3, 81, 137, 0, 7, 6, 104, 0, 4, 2, 32, 3, 0, 4, 2, 104, 3, 0, 4, 8, 2, 111, 110, 111, 114, 3,
+			0, 4, 8, 2, 111, 110, 111, 117, 3, 0, 8, 17, 66, 3, 0, 101, 39, 8, 3, 2, 107, 129, 0, 108, 1, 25, 3, 105, 0, 3,
+			107, 0, 111, 109, 111, 8, 2, 115, 3, 107, 4, 136, 65, 136, 0, 4, 121, 112, 111, 2, 100, 101, 3, 107, 4, 137, 48, 13, 0, 121,
+			112, 111, 2, 116, 104, 101, 116, 0, 121, 112, 111, 8, 2, 21, 14, 128, 132, 132, 3, 107, 4, 137, 48, 136, 0, 97, 109, 109, 101, 100,
+			1, 21, 3, 107, 6, 35, 65, 122, 72, 0, 97, 110, 1, 101, 2, 32, 3, 107, 13, 50, 0, 97, 110, 1, 17, 65, 2, 32, 3, 107,
+			35, 50, 0, 111, 111, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 117, 72, 0, 111, 111, 100, 115, 1, 10, 2, 32, 14, 128, 128,
+			133, 3, 107, 117, 72, 88, 0, 101, 116, 101, 114, 111, 8, 3, 107, 121, 47, 34, 136, 0, 101, 97, 100, 1, 21, 2, 32, 14, 128, 128,
+			132, 3, 107, 121, 72, 0, 121, 112, 111, 8, 2, 99, 114, 3, 107, 122, 48, 124, 0, 111, 114, 114, 105, 8, 3, 107, 124, 34, 122, 0,
+			111, 114, 115, 101, 8, 3, 107, 132, 89, 0, 111, 117, 115, 101, 115, 2, 32, 14, 128, 128, 134, 3, 107, 135, 88, 113, 88, 0, 4, 111,
+			117, 115, 101, 2, 32, 14, 128, 128, 133, 3, 107, 135, 89, 0, 111, 117, 115, 101, 8, 2, 21, 0, 111, 108, 100, 1, 10, 2, 32, 14,
+			128, 128, 132, 3, 107, 136, 55, 72, 0, 111, 108, 109, 101, 3, 107, 136, 65, 0, 111, 109, 101, 8, 2, 111, 3, 107, 136, 65, 129, 0,
+			111, 109, 111, 101, 111, 8, 3, 107, 136, 65, 129, 136, 0, 4, 121, 112, 111, 2, 116, 101, 110, 117, 3, 107, 137, 48, 6, 124, 0, 121,
+			112, 111, 2, 116, 104, 101, 115, 0, 97, 2, 115, 116, 3, 107, 138, 0, 101, 114, 111, 3, 107, 141, 34, 136, 0, 111, 110, 101, 2, 115,
+			116, 3, 124, 50, 122, 0, 101, 105, 114, 3, 140, 0, 111, 117, 114, 3, 146, 0, 7, 6, 105, 0, 108, 8, 2, 108, 21, 3, 2, 122,
+			55, 0, 4, 8, 100, 2, 108, 97, 116, 3, 2, 137, 0, 39, 8, 0, 4, 1, 21, 2, 98, 117, 116, 105, 118, 101, 3, 6, 122, 0,
+			1, 21, 2, 98, 117, 116, 111, 114, 0, 1, 21, 2, 99, 105, 112, 0, 2, 17, 67, 17, 67, 105, 32, 0, 2, 99, 105, 97, 108, 0,
+			2, 103, 101, 110, 111, 117, 115, 0, 2, 116, 105, 111, 110, 0, 4, 108, 97, 1, 21, 2, 32, 3, 6, 122, 55, 13, 0, 108, 108, 97,
+			1, 21, 2, 32, 0, 102, 2, 105, 99, 17, 65, 110, 17, 67, 3, 6, 122, 83, 0, 99, 105, 97, 110, 3, 6, 122, 91, 13, 50, 0,
+			4, 1, 21, 2, 100, 111, 32, 3, 6, 129, 0, 2, 98, 97, 32, 0, 2, 113, 117, 101, 32, 0, 2, 119, 111, 0, 4, 1, 99, 2,
+			100, 97, 108, 3, 6, 137, 0, 2, 122, 111, 110, 32, 0, 99, 104, 97, 101, 108, 1, 109, 3, 6, 137, 49, 118, 0, 97, 108, 1, 10,
+			2, 32, 3, 8, 113, 13, 55, 0, 117, 115, 1, 10, 3, 8, 113, 13, 89, 0, 99, 111, 1, 10, 2, 32, 3, 8, 113, 49, 136, 0,
+			102, 121, 1, 10, 2, 32, 3, 8, 113, 83, 137, 0, 4, 1, 10, 2, 99, 32, 3, 8, 122, 0, 1, 10, 2, 99, 97, 32, 0, 1,
+			10, 2, 99, 97, 108, 0, 1, 10, 2, 99, 105, 17, 67, 101, 32, 0, 1, 10, 2, 99, 105, 115, 109, 32, 0, 1, 10, 2, 99, 105,
+			115, 116, 32, 0, 1, 100, 2, 32, 0, 1, 104, 21, 21, 2, 32, 0, 1, 107, 115, 10, 2, 32, 0, 2, 99, 117, 115, 32, 0, 1,
+			21, 2, 17, 67, 97, 116, 101, 32, 3, 8, 123, 0, 1, 104, 2, 32, 3, 8, 137, 0, 117, 1, 10, 2, 109, 3, 8, 141, 0, 4,
+			108, 2, 105, 115, 101, 3, 13, 55, 0, 108, 2, 105, 122, 101, 0, 108, 101, 1, 10, 2, 103, 101, 3, 13, 55, 122, 0, 98, 108, 121,
+			1, 21, 2, 32, 14, 128, 169, 132, 3, 13, 71, 55, 2, 122, 0, 98, 108, 101, 1, 21, 2, 32, 14, 128, 137, 132, 3, 13, 71, 118,
+			0, 122, 97, 5, 3, 2, 116, 105, 111, 110, 3, 13, 88, 138, 0, 4, 1, 98, 98, 2, 32, 3, 37, 0, 1, 104, 115, 2, 32, 0,
+			2, 32, 0, 100, 104, 2, 32, 0, 108, 121, 1, 10, 2, 32, 14, 128, 130, 130, 3, 55, 2, 122, 0, 4, 1, 21, 2, 99, 101, 32,
+			3, 113, 0, 1, 21, 2, 99, 101, 100, 32, 0, 1, 102, 2, 100, 101, 108, 0, 2, 111, 0, 2, 122, 101, 110, 0, 4, 99, 101, 1,
+			102, 102, 111, 3, 113, 89, 0, 99, 101, 1, 118, 114, 101, 115, 0, 4, 108, 1, 98, 21, 2, 32, 3, 118, 0, 108, 1, 99, 17, 67,
+			21, 2, 32, 0, 108, 1, 112, 21, 2, 32, 0, 108, 1, 114, 21, 2, 32, 0, 108, 1, 115, 21, 2, 32, 0, 108, 1, 116, 110, 2,
+			32, 0, 108, 1, 118, 21, 2, 32, 0, 4, 3, 122, 0, 1, 10, 2, 17, 67, 101, 110, 99, 0, 1, 10, 2, 17, 67, 101, 110, 116,
+			0, 1, 17, 67, 2, 120, 12, 12, 0, 1, 21, 2, 17, 67, 101, 114, 0, 1, 21, 2, 99, 101, 110, 99, 101, 0, 1, 21, 2, 108,
+			101, 115, 115, 0, 1, 21, 2, 110, 101, 115, 115, 0, 1, 99, 99, 97, 2, 100, 0, 1, 104, 99, 2, 108, 100, 114, 0, 1, 108, 2,
+			98, 101, 114, 0, 1, 108, 108, 101, 116, 110, 0, 1, 112, 117, 2, 100, 101, 0, 1, 114, 98, 2, 100, 103, 0, 1, 114, 105, 2, 100,
+			0, 1, 115, 115, 111, 103, 2, 112, 0, 1, 119, 2, 108, 100, 101, 114, 17, 67, 0, 2, 17, 66, 101, 101, 0, 2, 17, 66, 101, 108,
+			32, 0, 2, 17, 66, 101, 116, 32, 0, 2, 97, 110, 105, 32, 0, 2, 98, 105, 108, 105, 116, 0, 2, 100, 101, 111, 0, 2, 108, 101,
+			17, 65, 0, 8, 2, 100, 105, 0, 8, 108, 2, 17, 67, 121, 32, 0, 8, 112, 2, 116, 121, 32, 0, 112, 101, 100, 101, 3, 122, 48,
+			129, 72, 0, 99, 104, 8, 3, 122, 49, 0, 4, 108, 8, 2, 108, 110, 3, 122, 55, 0, 108, 8, 2, 108, 117, 115, 116, 0, 108, 101,
+			1, 114, 99, 97, 115, 3, 122, 55, 122, 0, 98, 101, 1, 116, 2, 116, 3, 122, 71, 6, 121, 0, 102, 101, 1, 110, 97, 109, 2, 115,
+			3, 122, 83, 121, 0, 102, 105, 101, 114, 2, 32, 3, 122, 83, 145, 0, 105, 2, 32, 3, 122, 137, 0, 4, 1, 17, 67, 29, 2, 17,
+			67, 97, 32, 3, 129, 0, 1, 17, 67, 29, 2, 17, 67, 111, 32, 0, 1, 102, 2, 106, 0, 2, 98, 111, 32, 0, 2, 113, 117, 32,
+			0, 5, 7, 2, 111, 0, 8, 108, 2, 98, 114, 101, 0, 122, 122, 8, 112, 3, 129, 47, 89, 0, 108, 108, 97, 114, 100, 1, 10, 2,
+			32, 3, 129, 126, 0, 4, 1, 10, 2, 122, 97, 98, 108, 3, 137, 0, 1, 17, 67, 2, 108, 101, 114, 0, 1, 17, 67, 29, 2, 17,
+			67, 101, 114, 32, 0, 1, 17, 67, 29, 2, 17, 67, 121, 32, 0, 1, 17, 67, 29, 2, 32, 0, 1, 21, 2, 17, 67, 105, 110, 103,
+			0, 1, 98, 2, 32, 0, 1, 98, 2, 98, 108, 101, 32, 0, 1, 99, 2, 32, 0, 1, 102, 2, 98, 114, 101, 0, 1, 104, 2, 106,
+			0, 1, 104, 99, 2, 108, 100, 0, 1, 108, 2, 98, 101, 108, 0, 1, 114, 2, 102, 108, 0, 1, 114, 98, 2, 100, 108, 0, 1, 114,
+			99, 115, 2, 98, 101, 114, 0, 1, 114, 102, 2, 100, 97, 121, 0, 1, 114, 112, 2, 99, 101, 0, 1, 115, 2, 108, 101, 110, 0, 1,
+			115, 2, 122, 17, 65, 0, 1, 116, 110, 101, 2, 99, 101, 0, 1, 116, 115, 2, 102, 108, 0, 1, 118, 2, 98, 114, 0, 1, 118, 100,
+			97, 2, 99, 101, 0, 1, 118, 101, 100, 2, 99, 101, 0, 2, 17, 66, 101, 13, 0, 2, 98, 101, 114, 32, 0, 2, 100, 101, 114, 12,
+			32, 0, 2, 100, 101, 114, 32, 12, 0, 8, 2, 17, 66, 111, 0, 8, 2, 17, 67, 121, 32, 0, 8, 2, 97, 0, 8, 2, 98, 0,
+			8, 2, 99, 0, 8, 2, 100, 0, 8, 2, 100, 108, 101, 0, 8, 2, 104, 0, 8, 2, 111, 0, 8, 17, 67, 2, 108, 97, 103, 101,
+			0, 8, 17, 67, 2, 108, 111, 0, 8, 108, 2, 98, 114, 0, 8, 109, 2, 108, 100, 0, 8, 115, 2, 100, 101, 114, 0, 8, 115, 2,
+			100, 108, 0, 8, 115, 2, 112, 104, 0, 8, 119, 2, 108, 100, 0, 104, 105, 1, 110, 3, 137, 13, 0, 108, 1, 108, 2, 97, 104, 32,
+			3, 137, 55, 0, 98, 97, 98, 1, 21, 3, 137, 71, 13, 71, 0, 100, 101, 97, 8, 3, 137, 72, 6, 141, 0, 4, 122, 2, 101, 114,
+			32, 3, 137, 88, 0, 122, 101, 2, 32, 0, 122, 101, 2, 100, 32, 0, 122, 97, 2, 116, 105, 111, 110, 3, 137, 88, 138, 0, 7, 6,
+			106, 0, 2, 106, 3, 0, 4, 1, 110, 2, 97, 32, 3, 57, 0, 2, 195, 188, 0, 4, 111, 107, 117, 108, 108, 2, 32, 14, 128, 128,
+			134, 3, 57, 128, 49, 134, 47, 107, 0, 195, 182, 107, 117, 108, 108, 2, 32, 14, 128, 128, 134, 0, 3, 75, 0, 97, 8, 2, 109, 97,
+			105, 3, 75, 119, 0, 101, 114, 101, 8, 2, 17, 67, 3, 75, 121, 34, 13, 0, 101, 115, 8, 2, 117, 105, 3, 75, 121, 88, 0, 111,
+			97, 8, 2, 110, 21, 3, 75, 136, 6, 35, 0, 117, 97, 110, 3, 107, 58, 126, 50, 0, 7, 6, 107, 0, 2, 107, 3, 0, 4, 3,
+			49, 0, 8, 2, 18, 66, 17, 71, 0, 8, 2, 104, 17, 71, 0, 8, 2, 119, 17, 71, 0, 105, 110, 101, 115, 105, 115, 3, 49, 13,
+			50, 6, 129, 89, 123, 89, 0, 106, 8, 2, 101, 21, 3, 49, 57, 0, 117, 97, 110, 3, 49, 58, 35, 50, 0, 105, 8, 2, 108, 17,
+			67, 21, 3, 49, 113, 0, 105, 8, 2, 108, 108, 21, 3, 49, 122, 0, 105, 108, 111, 8, 2, 21, 3, 49, 122, 55, 13, 0, 104, 97,
+			3, 49, 126, 0, 104, 97, 114, 3, 49, 127, 0, 117, 2, 99, 104, 3, 49, 134, 0, 117, 119, 97, 105, 116, 3, 49, 134, 58, 6, 138,
+			47, 0, 4, 110, 2, 105, 102, 3, 50, 0, 110, 2, 105, 116, 0, 110, 2, 105, 118, 0, 110, 2, 111, 98, 0, 110, 2, 111, 119, 0,
+			110, 8, 2, 17, 71, 0, 7, 6, 108, 0, 4, 1, 108, 3, 0, 1, 108, 17, 65, 2, 32, 3, 0, 111, 1, 21, 2, 103, 111, 117,
+			115, 3, 8, 55, 13, 0, 105, 110, 103, 1, 116, 10, 2, 32, 3, 10, 55, 122, 68, 0, 105, 110, 103, 1, 103, 110, 2, 32, 3, 14,
+			55, 122, 68, 0, 121, 1, 108, 21, 2, 32, 14, 128, 128, 130, 3, 37, 0, 4, 3, 55, 0, 1, 17, 65, 2, 108, 121, 32, 0, 1,
+			114, 2, 32, 0, 1, 119, 2, 32, 0, 2, 17, 67, 0, 2, 32, 0, 2, 69, 0, 8, 2, 104, 17, 71, 0, 108, 1, 17, 65, 0,
+			108, 1, 17, 65, 2, 17, 65, 0, 108, 1, 39, 17, 65, 0, 108, 1, 121, 0, 108, 2, 17, 67, 0, 108, 8, 2, 17, 71, 0, 108,
+			101, 2, 32, 0, 4, 121, 1, 21, 2, 32, 14, 128, 130, 130, 3, 55, 2, 37, 0, 121, 1, 102, 101, 105, 2, 32, 14, 128, 128, 130,
+			0, 121, 1, 102, 102, 2, 32, 14, 128, 128, 130, 0, 121, 1, 102, 111, 2, 32, 14, 128, 128, 130, 0, 121, 1, 111, 2, 32, 0, 121,
+			1, 112, 10, 2, 32, 14, 128, 128, 130, 0, 69, 115, 115, 1, 21, 2, 32, 14, 128, 130, 132, 3, 55, 13, 89, 0, 69, 115, 115, 108,
+			121, 1, 21, 2, 32, 14, 128, 130, 134, 3, 55, 13, 89, 55, 2, 37, 0, 106, 117, 8, 3, 55, 57, 134, 0, 121, 8, 2, 100, 3,
+			55, 122, 0, 105, 110, 117, 120, 3, 55, 122, 50, 125, 49, 89, 0, 105, 109, 1, 10, 2, 101, 110, 116, 3, 55, 122, 65, 0, 105, 110,
+			103, 1, 17, 66, 10, 2, 32, 3, 55, 122, 68, 0, 105, 110, 103, 115, 1, 17, 66, 10, 2, 32, 3, 55, 122, 68, 88, 0, 105, 115,
+			116, 101, 110, 3, 55, 122, 89, 13, 50, 0, 111, 5, 3, 8, 2, 103, 25, 3, 55, 131, 0, 117, 2, 110, 97, 3, 55, 134, 0, 4,
+			121, 1, 102, 2, 32, 3, 55, 137, 0, 121, 1, 112, 2, 32, 0, 121, 1, 112, 105, 116, 108, 117, 109, 0, 4, 108, 101, 100, 1, 21,
+			21, 2, 32, 14, 128, 136, 131, 3, 72, 0, 108, 101, 100, 1, 111, 21, 21, 2, 32, 14, 128, 136, 131, 0, 108, 97, 110, 8, 3, 105,
+			2, 35, 50, 0, 1, 17, 66, 2, 32, 3, 118, 0, 105, 110, 103, 1, 108, 10, 2, 32, 14, 128, 152, 132, 3, 122, 68, 0, 7, 6,
+			109, 0, 4, 1, 17, 66, 2, 32, 3, 13, 65, 0, 1, 104, 2, 32, 0, 110, 8, 2, 101, 3, 50, 0, 4, 3, 65, 0, 1, 108,
+			2, 32, 0, 98, 1, 111, 2, 101, 0, 98, 2, 32, 0, 98, 8, 111, 98, 2, 25, 0, 98, 8, 117, 100, 0, 109, 0, 110, 2, 32,
+			0, 101, 116, 97, 8, 2, 108, 108, 117, 3, 65, 2, 121, 47, 35, 0, 101, 1, 17, 66, 10, 2, 32, 3, 65, 2, 122, 0, 4, 97,
+			108, 8, 2, 102, 14, 128, 132, 131, 3, 65, 4, 35, 55, 0, 97, 108, 8, 2, 110, 14, 128, 132, 131, 0, 97, 108, 8, 2, 112, 14,
+			128, 132, 131, 0, 97, 108, 8, 2, 116, 114, 14, 128, 132, 131, 0, 101, 116, 97, 8, 2, 21, 3, 65, 4, 121, 47, 13, 0, 117, 108,
+			116, 105, 8, 2, 21, 21, 14, 128, 132, 133, 3, 65, 4, 125, 55, 47, 122, 0, 101, 1, 114, 111, 116, 2, 110, 116, 12, 3, 65, 6,
+			121, 0, 69, 110, 116, 97, 114, 121, 2, 32, 3, 65, 6, 121, 50, 47, 13, 34, 2, 122, 0, 101, 110, 116, 101, 100, 1, 17, 67, 3,
+			65, 6, 121, 50, 47, 122, 72, 0, 4, 99, 8, 2, 18, 70, 3, 65, 13, 0, 99, 8, 2, 32, 18, 70, 0, 111, 2, 110, 111, 116,
+			111, 0, 4, 97, 99, 8, 2, 97, 100, 14, 128, 132, 131, 3, 65, 13, 49, 0, 97, 99, 8, 2, 98, 14, 128, 132, 131, 0, 97, 99,
+			8, 2, 100, 14, 128, 132, 131, 0, 97, 99, 8, 2, 108, 14, 128, 132, 131, 0, 97, 99, 8, 2, 109, 14, 128, 132, 131, 0, 99, 8,
+			2, 17, 67, 0, 99, 8, 2, 32, 17, 67, 0, 111, 110, 2, 111, 112, 111, 108, 3, 65, 13, 50, 0, 111, 110, 111, 2, 103, 97, 3,
+			65, 13, 50, 6, 124, 0, 4, 69, 110, 116, 2, 32, 3, 65, 13, 50, 47, 0, 101, 110, 116, 1, 10, 2, 32, 14, 128, 128, 132, 0,
+			101, 110, 116, 1, 117, 2, 32, 0, 4, 101, 110, 116, 115, 1, 10, 2, 32, 14, 128, 128, 133, 3, 65, 13, 50, 47, 89, 0, 101, 110,
+			116, 115, 1, 117, 2, 32, 0, 4, 97, 108, 8, 2, 101, 118, 3, 65, 13, 55, 0, 97, 108, 8, 2, 105, 0, 111, 98, 105, 108, 101,
+			3, 65, 13, 71, 129, 55, 0, 111, 117, 116, 104, 1, 10, 2, 32, 3, 65, 13, 87, 0, 97, 8, 2, 109, 3, 65, 35, 0, 4, 99,
+			8, 2, 17, 65, 3, 65, 35, 49, 0, 99, 8, 2, 32, 17, 65, 0, 98, 108, 121, 3, 65, 71, 55, 2, 122, 0, 101, 116, 97, 98,
+			111, 3, 65, 121, 47, 6, 35, 71, 124, 0, 101, 116, 97, 108, 8, 2, 17, 67, 3, 65, 121, 47, 118, 0, 101, 110, 1, 21, 2, 32,
+			3, 65, 121, 50, 0, 101, 110, 116, 5, 8, 1, 10, 2, 32, 14, 128, 128, 132, 3, 65, 121, 50, 47, 0, 101, 110, 116, 115, 5, 8,
+			1, 10, 2, 32, 14, 128, 128, 133, 3, 65, 121, 50, 47, 89, 0, 101, 103, 97, 8, 3, 65, 121, 81, 13, 0, 111, 110, 2, 111, 120,
+			3, 65, 124, 50, 0, 111, 110, 111, 8, 3, 65, 124, 50, 136, 0, 117, 108, 116, 105, 8, 3, 65, 125, 55, 47, 122, 0, 111, 98, 105,
+			108, 101, 8, 3, 65, 136, 71, 137, 55, 0, 111, 115, 116, 1, 21, 2, 32, 14, 128, 128, 132, 3, 65, 136, 89, 47, 0, 97, 121, 111,
+			114, 5, 35, 3, 65, 140, 0, 7, 6, 110, 0, 4, 1, 110, 3, 0, 4, 1, 110, 2, 32, 3, 0, 4, 100, 1, 32, 50, 2, 32,
+			3, 0, 101, 1, 110, 10, 2, 32, 3, 0, 2, 17, 67, 111, 32, 3, 8, 50, 0, 4, 1, 17, 66, 2, 32, 3, 13, 50, 0, 1,
+			69, 2, 32, 0, 8, 2, 103, 17, 71, 12, 3, 14, 68, 0, 4, 3, 50, 0, 1, 21, 2, 99, 104, 0, 1, 97, 105, 10, 2, 32,
+			14, 128, 128, 129, 0, 1, 103, 2, 32, 0, 1, 103, 2, 105, 110, 103, 12, 0, 1, 108, 2, 32, 0, 2, 107, 110, 0, 101, 1, 17,
+			66, 10, 2, 32, 3, 50, 2, 122, 0, 97, 110, 111, 8, 2, 14, 128, 132, 132, 3, 50, 4, 35, 50, 136, 0, 111, 110, 8, 2, 21,
+			14, 128, 132, 131, 3, 50, 4, 124, 50, 0, 101, 119, 115, 8, 2, 14, 128, 132, 132, 3, 50, 6, 57, 134, 88, 0, 101, 119, 115, 5,
+			3, 8, 2, 14, 128, 132, 132, 3, 50, 6, 134, 88, 0, 101, 115, 115, 1, 10, 2, 32, 14, 128, 130, 132, 3, 50, 13, 89, 0, 101,
+			99, 101, 115, 115, 105, 116, 3, 50, 13, 89, 121, 89, 122, 47, 0, 39, 116, 3, 50, 47, 0, 107, 5, 7, 3, 50, 49, 0, 115, 1,
+			97, 105, 10, 2, 32, 14, 128, 128, 130, 3, 50, 88, 0, 101, 115, 115, 5, 8, 1, 10, 2, 32, 14, 128, 130, 132, 3, 50, 121, 89,
+			0, 111, 110, 99, 104, 97, 108, 97, 5, 3, 2, 110, 3, 50, 124, 50, 91, 13, 55, 6, 126, 0, 111, 110, 99, 104, 97, 108, 97, 2,
+			110, 3, 50, 124, 50, 91, 13, 55, 13, 0, 117, 114, 115, 101, 8, 2, 17, 66, 3, 50, 128, 89, 0, 101, 111, 8, 3, 50, 129, 136,
+			0, 97, 117, 115, 101, 3, 50, 130, 89, 122, 0, 105, 110, 116, 104, 3, 50, 137, 50, 87, 0, 97, 109, 101, 1, 10, 2, 32, 14, 128,
+			128, 132, 3, 50, 138, 65, 0, 4, 1, 21, 2, 99, 17, 67, 3, 68, 0, 2, 99, 32, 0, 2, 120, 0, 103, 0, 107, 3, 68, 49,
+			0, 7, 6, 111, 0, 4, 2, 98, 106, 101, 3, 2, 124, 0, 2, 98, 108, 105, 103, 97, 116, 111, 0, 8, 2, 98, 108, 0, 8, 2,
+			98, 115, 0, 8, 2, 98, 116, 0, 112, 112, 111, 114, 2, 116, 117, 3, 2, 124, 48, 114, 0, 98, 115, 8, 2, 101, 114, 3, 2, 124,
+			71, 88, 0, 4, 1, 99, 2, 105, 110, 99, 105, 3, 2, 136, 0, 1, 100, 2, 100, 101, 99, 0, 1, 108, 2, 99, 97, 116, 0, 8,
+			2, 98, 101, 115, 0, 39, 8, 2, 14, 128, 132, 130, 0, 1, 108, 2, 99, 111, 109, 3, 4, 136, 0, 101, 2, 118, 101, 3, 4, 136,
+			6, 121, 0, 4, 2, 17, 67, 105, 99, 32, 3, 6, 124, 0, 2, 17, 67, 105, 99, 97, 108, 0, 2, 103, 101, 110, 111, 117, 115, 0,
+			2, 103, 101, 110, 121, 0, 116, 114, 111, 2, 112, 121, 3, 6, 124, 47, 34, 13, 0, 112, 111, 108, 1, 21, 2, 18, 67, 3, 6, 124,
+			48, 13, 55, 0, 99, 114, 97, 116, 101, 115, 2, 32, 3, 6, 124, 49, 34, 119, 47, 129, 88, 0, 120, 2, 105, 100, 101, 3, 6, 124,
+			49, 89, 0, 109, 101, 116, 101, 114, 1, 21, 3, 6, 124, 65, 122, 47, 114, 0, 103, 114, 97, 112, 104, 101, 114, 1, 21, 3, 6, 124,
+			81, 34, 13, 83, 114, 0, 112, 104, 97, 1, 99, 114, 2, 103, 3, 6, 124, 83, 13, 0, 4, 1, 116, 115, 117, 99, 2, 100, 105, 3,
+			6, 136, 0, 2, 17, 66, 97, 32, 0, 2, 17, 66, 101, 111, 110, 0, 2, 17, 66, 105, 17, 65, 0, 2, 17, 67, 105, 32, 0, 2,
+			17, 67, 111, 32, 0, 2, 17, 67, 111, 105, 115, 116, 0, 2, 98, 105, 99, 32, 0, 2, 99, 114, 101, 32, 0, 97, 2, 32, 3, 6,
+			136, 13, 0, 4, 105, 2, 110, 97, 32, 3, 6, 139, 0, 121, 2, 17, 65, 32, 0, 101, 97, 2, 32, 3, 6, 141, 0, 4, 1, 10,
+			2, 112, 104, 101, 114, 3, 8, 13, 0, 2, 99, 121, 116, 101, 32, 0, 103, 1, 108, 21, 2, 121, 3, 8, 13, 75, 0, 103, 105, 115,
+			109, 1, 108, 3, 8, 13, 75, 122, 88, 13, 65, 0, 112, 104, 101, 1, 10, 2, 32, 3, 8, 13, 83, 2, 122, 0, 1, 17, 67, 21,
+			21, 2, 32, 3, 8, 136, 0, 4, 1, 10, 2, 103, 101, 110, 32, 3, 13, 0, 1, 10, 2, 112, 32, 0, 1, 102, 102, 2, 99, 17,
+			65, 0, 1, 104, 115, 105, 98, 2, 112, 0, 1, 104, 116, 101, 109, 2, 100, 32, 0, 1, 105, 114, 101, 112, 2, 100, 32, 0, 1, 109,
+			2, 120, 0, 1, 109, 109, 2, 100, 111, 114, 0, 1, 112, 2, 116, 101, 110, 116, 105, 0, 1, 115, 2, 112, 104, 105, 115, 116, 105, 99,
+			0, 1, 116, 2, 98, 97, 99, 99, 0, 1, 116, 115, 117, 99, 2, 100, 0, 1, 118, 105, 112, 2, 116, 0, 2, 99, 99, 97, 115, 105,
+			0, 2, 99, 99, 108, 117, 0, 2, 102, 102, 105, 99, 105, 0, 2, 112, 105, 110, 105, 0, 102, 2, 102, 101, 110, 0, 4, 116, 1, 103,
+			10, 2, 32, 3, 13, 47, 0, 116, 1, 114, 114, 2, 32, 0, 112, 112, 2, 114, 101, 115, 3, 13, 48, 0, 112, 111, 108, 105, 116, 97,
+			110, 3, 13, 48, 6, 124, 55, 122, 47, 13, 50, 0, 112, 101, 100, 1, 10, 2, 32, 3, 13, 48, 72, 0, 99, 107, 1, 17, 67, 11,
+			10, 2, 32, 3, 13, 49, 0, 4, 99, 99, 117, 114, 3, 13, 49, 128, 0, 99, 99, 117, 114, 114, 0, 4, 99, 99, 117, 114, 5, 5,
+			3, 13, 49, 148, 0, 99, 99, 117, 114, 114, 5, 5, 0, 105, 120, 2, 32, 3, 58, 35, 0, 105, 115, 1, 21, 2, 32, 3, 58, 126,
+			0, 4, 105, 114, 3, 58, 127, 0, 105, 114, 101, 0, 101, 1, 10, 2, 115, 32, 14, 128, 128, 130, 3, 88, 0, 101, 115, 111, 112, 104,
+			97, 3, 113, 89, 124, 83, 13, 0, 4, 3, 124, 0, 1, 98, 2, 116, 104, 101, 114, 0, 1, 104, 2, 112, 32, 0, 1, 108, 102, 2,
+			112, 32, 0, 1, 109, 2, 100, 101, 108, 0, 1, 109, 2, 100, 101, 114, 0, 1, 109, 2, 100, 101, 115, 116, 0, 1, 112, 2, 112, 32,
+			0, 1, 114, 2, 103, 101, 114, 0, 1, 114, 2, 112, 32, 0, 1, 114, 112, 2, 112, 101, 0, 1, 116, 2, 112, 32, 0, 2, 17, 66,
+			101, 17, 67, 111, 32, 0, 2, 17, 67, 101, 109, 105, 99, 0, 2, 17, 67, 101, 116, 32, 0, 2, 98, 108, 105, 103, 97, 0, 2, 98,
+			108, 111, 0, 2, 98, 115, 116, 105, 110, 0, 2, 102, 102, 105, 99, 0, 2, 120, 12, 12, 0, 8, 2, 17, 67, 121, 12, 0, 8, 2,
+			112, 101, 114, 0, 8, 98, 2, 100, 121, 0, 8, 114, 2, 98, 101, 114, 0, 8, 114, 2, 116, 104, 101, 114, 0, 104, 1, 106, 2, 110,
+			0, 116, 121, 108, 101, 1, 99, 3, 124, 47, 122, 55, 6, 129, 0, 120, 121, 3, 124, 49, 89, 122, 0, 98, 115, 111, 2, 108, 3, 124,
+			71, 89, 13, 0, 4, 103, 101, 1, 108, 21, 2, 32, 3, 124, 81, 0, 103, 117, 101, 1, 21, 21, 0, 4, 1, 100, 2, 122, 101, 110,
+			3, 125, 0, 1, 116, 2, 110, 103, 117, 0, 2, 116, 104, 101, 114, 12, 0, 4, 101, 1, 102, 2, 116, 17, 65, 3, 129, 0, 101, 8,
+			2, 100, 0, 101, 8, 2, 115, 0, 97, 1, 114, 98, 2, 100, 3, 130, 0, 4, 5, 3, 1, 10, 2, 102, 102, 3, 131, 0, 5, 3,
+			1, 99, 2, 102, 102, 0, 5, 3, 1, 103, 2, 110, 103, 0, 5, 3, 1, 108, 99, 2, 116, 104, 0, 5, 3, 1, 109, 2, 116, 104,
+			0, 5, 3, 1, 114, 2, 110, 103, 0, 5, 3, 1, 115, 2, 110, 103, 0, 5, 3, 2, 102, 116, 0, 5, 3, 8, 2, 102, 102, 0,
+			4, 39, 101, 114, 3, 133, 0, 97, 114, 0, 97, 114, 2, 32, 0, 4, 1, 100, 2, 105, 110, 103, 3, 134, 0, 101, 1, 104, 115, 2,
+			12, 0, 4, 1, 17, 67, 29, 2, 17, 66, 97, 108, 3, 136, 0, 1, 17, 67, 29, 2, 17, 66, 117, 115, 32, 0, 1, 21, 2, 105,
+			115, 116, 0, 1, 29, 2, 17, 66, 121, 32, 0, 1, 29, 2, 112, 104, 101, 114, 0, 1, 98, 2, 116, 104, 0, 1, 99, 2, 116, 97,
+			110, 0, 1, 100, 2, 99, 105, 108, 0, 1, 102, 2, 99, 17, 65, 0, 1, 103, 105, 2, 32, 0, 1, 107, 2, 100, 17, 65, 0, 1,
+			109, 2, 116, 105, 118, 0, 1, 110, 2, 98, 105, 108, 0, 1, 110, 2, 98, 108, 0, 1, 110, 2, 116, 97, 0, 1, 110, 2, 116, 111,
+			114, 0, 1, 114, 2, 116, 97, 0, 1, 114, 2, 116, 111, 0, 1, 114, 99, 2, 97, 116, 0, 1, 114, 99, 2, 99, 117, 0, 1, 114,
+			112, 112, 97, 2, 112, 0, 1, 116, 2, 116, 97, 0, 2, 17, 66, 101, 13, 0, 2, 17, 66, 101, 110, 17, 67, 0, 2, 17, 66, 105,
+			110, 103, 0, 2, 17, 67, 97, 103, 104, 32, 0, 2, 32, 0, 2, 98, 97, 0, 2, 98, 101, 100, 0, 2, 98, 121, 32, 0, 2, 100,
+			97, 32, 0, 2, 103, 97, 110, 32, 0, 2, 104, 17, 65, 0, 2, 105, 110, 103, 0, 2, 105, 115, 109, 0, 2, 107, 121, 32, 0, 2,
+			115, 104, 17, 65, 32, 0, 2, 116, 97, 116, 0, 2, 116, 105, 111, 110, 0, 8, 2, 17, 66, 97, 108, 0, 8, 2, 122, 111, 0, 8,
+			17, 67, 2, 116, 105, 0, 8, 104, 2, 99, 117, 0, 8, 108, 2, 99, 17, 65, 0, 8, 109, 2, 98, 105, 108, 0, 8, 114, 2, 98,
+			111, 0, 8, 118, 2, 99, 17, 65, 0, 97, 0, 101, 0, 104, 0, 101, 114, 3, 136, 13, 0, 116, 105, 99, 1, 110, 2, 17, 65, 3,
+			136, 47, 113, 89, 0, 116, 111, 114, 1, 109, 3, 136, 47, 114, 0, 116, 111, 1, 114, 112, 2, 110, 3, 136, 47, 124, 0, 116, 111, 1,
+			114, 112, 3, 136, 47, 136, 0, 4, 112, 101, 1, 110, 117, 2, 110, 3, 136, 48, 13, 0, 112, 101, 8, 2, 110, 0, 112, 101, 100, 1,
+			99, 2, 32, 3, 136, 48, 72, 0, 99, 104, 1, 114, 116, 3, 136, 49, 0, 100, 111, 2, 114, 17, 65, 3, 136, 72, 13, 0, 4, 100,
+			111, 114, 3, 136, 72, 114, 0, 100, 111, 117, 114, 0, 103, 101, 110, 105, 2, 99, 3, 136, 75, 6, 121, 50, 122, 0, 4, 103, 8, 2,
+			114, 101, 3, 136, 81, 0, 103, 117, 101, 1, 114, 0, 103, 117, 101, 1, 118, 0, 4, 116, 104, 1, 108, 2, 105, 3, 136, 86, 0, 116,
+			104, 1, 108, 2, 105, 97, 110, 0, 116, 104, 1, 114, 116, 101, 98, 0, 116, 104, 101, 1, 108, 99, 0, 116, 104, 101, 1, 114, 116, 0,
+			105, 2, 99, 3, 136, 113, 0, 101, 1, 112, 2, 116, 105, 3, 136, 121, 0, 4, 101, 1, 112, 2, 109, 3, 136, 122, 0, 101, 1, 112,
+			2, 116, 0, 4, 105, 3, 139, 0, 105, 2, 99, 101, 0, 105, 2, 99, 101, 13, 0, 105, 2, 99, 107, 0, 121, 0, 105, 97, 3, 139,
+			13, 0, 7, 6, 112, 0, 4, 1, 115, 97, 114, 2, 98, 3, 0, 2, 112, 3, 0, 104, 111, 110, 121, 1, 10, 2, 32, 3, 8, 83,
+			13, 50, 122, 0, 4, 116, 1, 105, 101, 3, 47, 0, 116, 8, 2, 17, 71, 0, 4, 3, 48, 0, 2, 104, 97, 122, 97, 0, 2, 104,
+			111, 108, 101, 0, 8, 2, 18, 66, 17, 71, 0, 104, 2, 97, 109, 32, 0, 104, 2, 101, 114, 100, 0, 111, 114, 2, 116, 114, 97, 121,
+			3, 48, 2, 133, 0, 111, 108, 121, 2, 21, 21, 3, 48, 4, 124, 55, 122, 0, 121, 114, 111, 8, 2, 21, 21, 14, 128, 132, 132, 3,
+			48, 4, 137, 34, 136, 0, 97, 108, 101, 111, 8, 2, 21, 14, 128, 132, 133, 3, 48, 4, 138, 55, 129, 136, 0, 97, 1, 109, 121, 115,
+			3, 48, 13, 0, 111, 116, 97, 2, 116, 3, 48, 13, 47, 138, 0, 121, 111, 110, 3, 48, 57, 124, 50, 0, 117, 114, 8, 2, 115, 117,
+			3, 48, 114, 0, 117, 116, 2, 32, 3, 48, 117, 47, 0, 111, 108, 121, 2, 21, 3, 48, 124, 55, 122, 0, 117, 116, 1, 115, 2, 32,
+			3, 48, 125, 47, 0, 105, 99, 111, 8, 3, 48, 129, 49, 136, 0, 105, 101, 99, 101, 2, 32, 14, 128, 128, 133, 3, 48, 129, 89, 0,
+			121, 114, 111, 109, 2, 101, 3, 48, 137, 34, 6, 124, 65, 0, 110, 8, 2, 101, 117, 3, 50, 0, 110, 101, 117, 3, 50, 57, 134, 0,
+			4, 102, 8, 2, 17, 71, 3, 83, 0, 104, 0, 104, 8, 2, 17, 71, 0, 104, 8, 2, 18, 66, 17, 71, 0, 104, 101, 110, 121, 108,
+			3, 83, 4, 129, 50, 137, 55, 0, 104, 111, 116, 111, 8, 2, 21, 21, 14, 128, 132, 133, 3, 83, 4, 136, 47, 136, 0, 104, 121, 99,
+			111, 8, 3, 83, 4, 137, 49, 136, 0, 104, 116, 104, 8, 2, 17, 65, 3, 83, 87, 0, 104, 101, 110, 111, 109, 101, 2, 110, 3, 83,
+			113, 50, 124, 65, 122, 0, 104, 105, 108, 97, 3, 83, 122, 55, 35, 0, 4, 104, 111, 116, 2, 111, 103, 114, 97, 112, 104, 12, 3, 83,
+			136, 47, 0, 104, 111, 116, 8, 2, 111, 18, 75, 12, 12, 0, 104, 111, 116, 111, 99, 111, 112, 3, 83, 136, 47, 13, 49, 124, 48, 0,
+			104, 111, 116, 111, 110, 3, 83, 136, 47, 124, 50, 0, 104, 111, 116, 111, 3, 83, 136, 47, 136, 0, 115, 8, 2, 17, 71, 3, 89, 0,
+			115, 121, 99, 104, 111, 2, 108, 111, 3, 89, 2, 137, 49, 124, 0, 115, 101, 117, 100, 111, 3, 89, 134, 72, 136, 0, 115, 121, 99, 104,
+			3, 89, 137, 49, 0, 115, 121, 99, 104, 111, 3, 89, 137, 49, 136, 0, 7, 6, 113, 0, 2, 113, 3, 0, 4, 3, 49, 0, 117, 1,
+			99, 97, 106, 0, 117, 2, 32, 0, 117, 2, 101, 114, 32, 0, 117, 101, 1, 21, 2, 32, 0, 117, 101, 1, 101, 104, 99, 0, 117, 101,
+			116, 116, 3, 49, 6, 121, 47, 0, 117, 105, 1, 115, 101, 109, 2, 116, 3, 49, 6, 129, 0, 117, 101, 117, 3, 49, 57, 134, 0, 117,
+			3, 49, 58, 0, 117, 2, 17, 67, 3, 49, 58, 13, 0, 117, 101, 8, 2, 32, 3, 49, 58, 121, 0, 117, 101, 115, 116, 3, 49, 58,
+			121, 89, 47, 0, 117, 121, 3, 49, 58, 122, 0, 117, 97, 1, 115, 2, 17, 66, 3, 49, 58, 124, 0, 117, 97, 115, 2, 17, 65, 3,
+			49, 58, 138, 88, 0, 117, 97, 115, 105, 3, 49, 58, 138, 88, 137, 0, 117, 101, 116, 1, 97, 114, 3, 49, 113, 47, 0, 117, 111, 114,
+			1, 105, 108, 3, 49, 114, 0, 117, 97, 121, 3, 49, 129, 0, 117, 101, 116, 2, 32, 3, 49, 138, 0, 7, 6, 114, 0, 4, 1, 114,
+			2, 32, 3, 0, 100, 1, 32, 51, 2, 32, 3, 0, 109, 8, 3, 4, 127, 121, 65, 0, 1, 21, 2, 17, 66, 3, 13, 0, 4, 3,
+			34, 0, 104, 1, 17, 67, 0, 104, 8, 2, 17, 71, 0, 114, 0, 119, 8, 2, 97, 3, 34, 2, 117, 0, 121, 1, 116, 110, 97, 10,
+			2, 32, 14, 128, 128, 130, 3, 34, 2, 122, 0, 4, 114, 104, 101, 97, 3, 34, 6, 141, 0, 114, 104, 111, 101, 97, 0, 1, 17, 67,
+			2, 32, 24, 3, 34, 13, 0, 69, 114, 2, 32, 3, 34, 114, 0, 104, 121, 116, 104, 3, 34, 122, 86, 0, 4, 117, 110, 8, 2, 97,
+			3, 34, 125, 50, 0, 117, 110, 8, 2, 111, 0, 4, 104, 101, 117, 3, 34, 134, 0, 117, 8, 2, 98, 18, 66, 0, 4, 104, 111, 8,
+			2, 100, 3, 34, 136, 0, 104, 111, 8, 2, 116, 0, 104, 111, 100, 111, 8, 2, 21, 3, 34, 136, 72, 13, 0, 4, 104, 105, 2, 110,
+			3, 34, 137, 0, 104, 105, 2, 122, 0, 1, 101, 2, 32, 3, 114, 0, 7, 6, 115, 0, 4, 2, 99, 105, 111, 117, 115, 3, 0, 4,
+			2, 115, 3, 0, 116, 1, 32, 49, 2, 32, 3, 0, 104, 101, 39, 8, 3, 2, 91, 129, 0, 101, 108, 102, 2, 32, 3, 6, 89, 121,
+			55, 83, 0, 101, 108, 118, 101, 115, 2, 32, 3, 6, 89, 121, 55, 84, 88, 0, 105, 97, 2, 32, 3, 8, 88, 141, 0, 99, 111, 112,
+			121, 1, 21, 2, 32, 3, 8, 89, 49, 13, 48, 2, 122, 0, 99, 105, 115, 2, 32, 3, 8, 89, 49, 122, 89, 0, 99, 105, 2, 32,
+			3, 8, 89, 49, 137, 0, 105, 97, 1, 17, 67, 2, 32, 3, 8, 89, 141, 0, 105, 97, 5, 3, 2, 32, 3, 8, 90, 13, 0, 115,
+			105, 111, 110, 3, 8, 91, 13, 50, 0, 115, 105, 111, 110, 5, 8, 2, 32, 3, 8, 91, 125, 50, 0, 105, 97, 110, 1, 21, 2, 32,
+			14, 128, 128, 129, 3, 50, 0, 4, 1, 10, 2, 105, 99, 32, 3, 88, 0, 1, 17, 65, 2, 105, 116, 105, 118, 0, 1, 21, 2, 32,
+			14, 128, 128, 129, 0, 1, 32, 15, 2, 32, 0, 1, 32, 54, 49, 2, 32, 0, 1, 39, 32, 15, 2, 32, 0, 1, 97, 2, 101, 108,
+			32, 0, 1, 97, 2, 109, 0, 1, 97, 101, 2, 105, 101, 0, 1, 97, 101, 2, 105, 108, 0, 1, 97, 101, 2, 121, 0, 1, 97, 101,
+			108, 112, 2, 101, 0, 1, 97, 101, 112, 2, 101, 0, 1, 97, 101, 116, 2, 101, 0, 1, 97, 104, 112, 2, 101, 0, 1, 97, 108, 2,
+			101, 0, 1, 97, 109, 2, 101, 0, 1, 97, 112, 2, 101, 0, 1, 97, 114, 2, 101, 0, 1, 103, 110, 2, 32, 14, 128, 128, 129, 0,
+			1, 105, 17, 65, 2, 121, 0, 1, 105, 97, 2, 101, 0, 1, 105, 114, 112, 2, 111, 0, 1, 109, 2, 105, 0, 1, 109, 2, 121, 0,
+			1, 110, 2, 32, 14, 128, 128, 129, 0, 1, 111, 2, 109, 0, 1, 111, 17, 67, 2, 69, 110, 0, 1, 111, 17, 67, 2, 69, 114, 0,
+			1, 114, 2, 100, 0, 1, 117, 109, 2, 105, 99, 0, 2, 32, 0, 8, 97, 101, 2, 101, 0, 8, 97, 104, 2, 32, 0, 8, 101, 114,
+			2, 111, 0, 8, 105, 111, 17, 67, 2, 101, 0, 101, 1, 105, 117, 2, 32, 0, 101, 1, 111, 2, 32, 0, 101, 1, 111, 100, 2, 32,
+			0, 101, 1, 111, 111, 104, 99, 0, 101, 1, 111, 116, 2, 32, 0, 101, 1, 117, 97, 2, 32, 0, 101, 1, 117, 102, 2, 32, 0, 101,
+			1, 119, 0, 4, 105, 110, 1, 105, 97, 2, 32, 3, 88, 13, 50, 0, 105, 110, 1, 117, 2, 32, 0, 105, 98, 1, 17, 65, 3, 88,
+			13, 71, 0, 4, 3, 89, 0, 1, 21, 2, 104, 101, 97, 100, 32, 0, 1, 21, 2, 104, 105, 108, 108, 32, 0, 1, 21, 2, 104, 111,
+			117, 115, 0, 1, 97, 2, 101, 0, 1, 99, 2, 32, 0, 1, 99, 10, 2, 32, 14, 128, 128, 129, 0, 1, 101, 112, 10, 2, 32, 14,
+			128, 128, 129, 0, 1, 101, 116, 2, 32, 14, 128, 128, 129, 0, 1, 102, 2, 32, 0, 1, 102, 10, 2, 32, 14, 128, 128, 129, 0, 1,
+			104, 116, 2, 32, 0, 1, 104, 116, 10, 2, 32, 14, 128, 128, 129, 0, 1, 105, 114, 2, 32, 14, 128, 128, 129, 0, 1, 107, 2, 32,
+			0, 1, 107, 10, 2, 32, 14, 128, 128, 129, 0, 1, 112, 2, 32, 0, 1, 112, 10, 2, 32, 14, 128, 128, 129, 0, 1, 116, 2, 32,
+			14, 128, 128, 129, 0, 1, 116, 10, 2, 32, 14, 128, 128, 129, 0, 2, 115, 104, 0, 5, 3, 1, 101, 114, 2, 111, 117, 114, 0, 8,
+			2, 99, 17, 71, 0, 8, 2, 99, 18, 66, 17, 71, 0, 8, 2, 107, 17, 71, 0, 8, 2, 107, 18, 66, 17, 71, 0, 8, 2, 108,
+			17, 71, 0, 8, 2, 109, 17, 71, 0, 8, 2, 110, 17, 71, 0, 8, 2, 112, 17, 71, 0, 8, 2, 112, 18, 66, 17, 71, 0, 8,
+			2, 112, 104, 17, 71, 0, 8, 2, 113, 117, 0, 8, 2, 114, 105, 0, 8, 2, 116, 17, 71, 0, 8, 2, 116, 114, 17, 71, 0, 8,
+			2, 117, 0, 8, 2, 118, 97, 0, 8, 2, 118, 101, 0, 8, 2, 119, 17, 71, 0, 8, 2, 122, 17, 71, 0, 8, 17, 65, 17, 66,
+			2, 32, 0, 8, 105, 109, 2, 104, 0, 99, 1, 117, 109, 2, 108, 0, 99, 2, 18, 67, 0, 101, 1, 111, 111, 2, 32, 0, 115, 1,
+			111, 114, 99, 2, 104, 0, 115, 2, 32, 0, 115, 101, 2, 32, 0, 101, 109, 105, 8, 2, 21, 21, 14, 128, 132, 132, 3, 89, 4, 121,
+			65, 113, 0, 99, 105, 2, 98, 3, 89, 13, 0, 105, 110, 1, 97, 2, 32, 3, 89, 13, 50, 0, 116, 8, 2, 32, 3, 89, 13, 50,
+			47, 0, 111, 109, 97, 8, 2, 108, 105, 3, 89, 13, 65, 126, 0, 105, 98, 1, 10, 3, 89, 13, 71, 0, 111, 99, 105, 101, 8, 2,
+			116, 3, 89, 13, 89, 144, 0, 116, 101, 105, 110, 3, 89, 47, 137, 50, 0, 116, 97, 116, 101, 8, 2, 21, 3, 89, 47, 138, 47, 0,
+			4, 99, 2, 101, 112, 116, 3, 89, 49, 0, 99, 104, 2, 111, 0, 99, 104, 5, 3, 2, 101, 100, 0, 99, 104, 8, 2, 105, 115, 109,
+			0, 99, 97, 114, 8, 2, 97, 3, 89, 49, 35, 34, 0, 99, 104, 105, 122, 8, 3, 89, 49, 122, 47, 89, 0, 99, 104, 101, 2, 109,
+			3, 89, 49, 129, 0, 99, 97, 114, 8, 2, 17, 65, 3, 89, 49, 140, 0, 99, 97, 114, 99, 3, 89, 49, 140, 89, 0, 101, 8, 2,
+			99, 108, 117, 3, 89, 113, 0, 101, 99, 117, 114, 3, 89, 113, 49, 57, 143, 0, 101, 109, 105, 110, 8, 3, 89, 121, 65, 122, 50, 0,
+			121, 2, 110, 101, 114, 103, 3, 89, 122, 0, 111, 109, 101, 1, 21, 2, 32, 14, 128, 128, 132, 3, 89, 125, 65, 0, 111, 109, 101, 1,
+			111, 21, 21, 2, 32, 14, 128, 128, 132, 3, 89, 136, 65, 0, 105, 122, 101, 8, 2, 17, 67, 21, 3, 89, 137, 88, 0, 4, 105, 111,
+			110, 1, 17, 65, 3, 90, 13, 50, 0, 105, 111, 110, 5, 3, 1, 114, 101, 0, 105, 111, 110, 5, 8, 1, 17, 65, 3, 90, 125, 50,
+			0, 4, 99, 104, 2, 17, 67, 3, 91, 0, 99, 104, 2, 32, 0, 99, 104, 8, 0, 99, 104, 8, 2, 105, 108, 0, 99, 104, 8, 101,
+			0, 104, 0, 104, 8, 2, 17, 71, 0, 104, 8, 2, 18, 66, 17, 71, 0, 115, 2, 117, 101, 0, 115, 117, 114, 101, 1, 97, 3, 91,
+			6, 143, 0, 4, 104, 105, 114, 101, 1, 10, 2, 32, 14, 128, 128, 133, 3, 91, 13, 0, 115, 105, 97, 2, 32, 0, 105, 111, 110, 1,
+			17, 67, 3, 91, 13, 50, 0, 115, 117, 114, 3, 91, 114, 0, 104, 105, 112, 1, 10, 2, 32, 14, 128, 128, 132, 3, 91, 122, 48, 0,
+			104, 105, 112, 115, 1, 10, 2, 32, 14, 128, 128, 133, 3, 91, 122, 48, 89, 0, 105, 111, 110, 5, 8, 1, 17, 67, 3, 91, 125, 50,
+			0, 195, 173, 111, 8, 3, 91, 129, 0, 115, 117, 101, 1, 105, 116, 3, 91, 134, 0, 104, 105, 114, 101, 5, 3, 1, 10, 2, 32, 14,
+			128, 128, 133, 3, 91, 141, 0, 115, 117, 114, 1, 97, 3, 91, 143, 0, 1, 32, 54, 2, 32, 3, 113, 88, 0, 8, 2, 32, 3, 121,
+			89, 0, 4, 1, 101, 99, 21, 2, 32, 14, 128, 128, 129, 3, 123, 88, 0, 1, 101, 115, 10, 2, 32, 14, 128, 128, 129, 0, 1, 101,
+			115, 115, 10, 2, 32, 14, 128, 128, 130, 0, 7, 6, 116, 0, 4, 1, 115, 2, 108, 3, 0, 1, 116, 3, 0, 105, 118, 101, 1, 17,
+			67, 17, 65, 2, 32, 3, 8, 47, 122, 84, 0, 117, 1, 21, 2, 108, 97, 116, 101, 3, 8, 76, 117, 0, 117, 1, 99, 2, 97, 108,
+			32, 3, 8, 76, 134, 0, 4, 3, 47, 0, 1, 105, 112, 2, 105, 97, 0, 1, 115, 105, 2, 105, 97, 110, 12, 0, 8, 2, 114, 17,
+			71, 0, 8, 2, 115, 17, 71, 0, 8, 2, 119, 17, 71, 0, 115, 107, 8, 3, 47, 6, 13, 89, 49, 0, 4, 111, 2, 109, 111, 114,
+			114, 3, 47, 13, 0, 116, 117, 2, 114, 0, 4, 114, 105, 8, 2, 98, 117, 3, 47, 34, 122, 0, 114, 105, 8, 2, 103, 0, 114, 105,
+			8, 2, 110, 105, 0, 114, 105, 8, 2, 118, 105, 0, 114, 105, 8, 2, 120, 17, 65, 0, 4, 114, 105, 8, 2, 17, 65, 3, 47, 34,
+			137, 0, 114, 105, 8, 2, 17, 67, 17, 65, 0, 114, 105, 8, 2, 17, 67, 121, 0, 114, 105, 101, 8, 0, 114, 105, 98, 101, 3, 47,
+			34, 137, 71, 0, 105, 97, 110, 8, 3, 47, 57, 35, 50, 0, 105, 97, 108, 1, 115, 10, 3, 47, 57, 118, 0, 4, 122, 3, 47, 89,
+			0, 122, 8, 2, 97, 114, 0, 4, 115, 101, 2, 32, 3, 47, 89, 37, 0, 122, 101, 2, 32, 0, 115, 117, 8, 3, 47, 89, 134, 0,
+			101, 114, 97, 8, 3, 47, 121, 34, 13, 0, 101, 108, 101, 8, 3, 47, 121, 55, 113, 0, 111, 8, 2, 110, 110, 3, 47, 125, 0, 119,
+			111, 8, 3, 47, 134, 0, 111, 119, 110, 1, 21, 2, 32, 14, 128, 128, 132, 3, 47, 135, 50, 0, 4, 99, 104, 3, 76, 0, 115, 99,
+			104, 0, 117, 114, 1, 21, 2, 97, 108, 32, 3, 76, 8, 13, 34, 0, 105, 97, 1, 115, 10, 2, 32, 3, 76, 13, 0, 4, 117, 114,
+			1, 21, 2, 17, 65, 3, 76, 13, 34, 0, 117, 114, 1, 21, 2, 121, 0, 105, 111, 110, 1, 115, 10, 3, 76, 13, 50, 0, 4, 117,
+			114, 1, 21, 2, 32, 3, 76, 114, 0, 117, 114, 101, 2, 32, 0, 105, 111, 110, 5, 8, 1, 115, 10, 3, 76, 125, 50, 0, 4, 117,
+			1, 21, 2, 97, 108, 3, 76, 134, 0, 117, 8, 97, 116, 115, 0, 103, 97, 1, 114, 2, 103, 3, 81, 122, 0, 1, 21, 2, 105, 97,
+			3, 91, 0, 105, 111, 110, 1, 10, 3, 91, 8, 13, 50, 0, 105, 111, 117, 115, 1, 10, 3, 91, 8, 13, 89, 0, 105, 111, 110, 2,
+			97, 108, 3, 91, 8, 14, 50, 0, 105, 111, 110, 5, 8, 1, 10, 3, 91, 8, 125, 50, 0, 4, 105, 97, 1, 10, 2, 32, 3, 91,
+			13, 0, 105, 97, 1, 105, 2, 108, 105, 18, 71, 0, 4, 105, 97, 110, 1, 10, 2, 32, 3, 91, 13, 50, 0, 105, 101, 110, 1, 10,
+			0, 105, 101, 110, 99, 101, 1, 10, 3, 91, 13, 50, 89, 0, 105, 97, 108, 1, 10, 3, 91, 118, 0, 105, 1, 10, 2, 97, 108, 105,
+			3, 91, 122, 0, 2, 105, 109, 101, 32, 3, 108, 0, 101, 2, 114, 114, 101, 115, 116, 3, 108, 13, 0, 7, 6, 117, 0, 8, 2, 107,
+			114, 97, 105, 110, 3, 2, 57, 134, 0, 108, 1, 102, 2, 102, 105, 108, 3, 2, 117, 55, 0, 108, 116, 114, 97, 8, 2, 21, 3, 4,
+			117, 55, 47, 34, 35, 0, 4, 1, 21, 2, 100, 97, 32, 3, 6, 57, 134, 0, 1, 102, 2, 103, 97, 108, 0, 2, 17, 67, 105, 17,
+			65, 0, 2, 115, 105, 111, 110, 0, 2, 116, 105, 111, 110, 0, 4, 1, 108, 2, 115, 105, 111, 110, 3, 6, 134, 0, 1, 114, 2, 17,
+			67, 105, 17, 65, 0, 1, 114, 2, 115, 105, 111, 110, 0, 1, 115, 2, 17, 67, 17, 65, 32, 0, 2, 103, 97, 32, 0, 2, 107, 105,
+			32, 0, 2, 109, 97, 32, 0, 2, 109, 111, 32, 0, 2, 122, 122, 105, 32, 0, 121, 2, 17, 65, 32, 3, 6, 134, 57, 0, 4, 1,
+			10, 2, 108, 111, 117, 115, 32, 3, 8, 57, 117, 0, 1, 21, 2, 108, 97, 32, 0, 1, 21, 2, 108, 97, 114, 0, 1, 21, 2, 108,
+			97, 116, 101, 0, 1, 21, 2, 108, 117, 109, 0, 108, 105, 1, 21, 2, 32, 3, 8, 57, 117, 55, 137, 0, 2, 97, 32, 3, 8, 57,
+			134, 0, 111, 117, 115, 1, 21, 3, 8, 57, 134, 13, 89, 0, 1, 104, 2, 32, 3, 8, 134, 0, 111, 117, 115, 1, 18, 66, 21, 3,
+			8, 134, 13, 89, 0, 108, 108, 121, 1, 102, 10, 2, 32, 3, 13, 55, 2, 122, 0, 109, 1, 114, 2, 101, 110, 116, 3, 13, 65, 0,
+			103, 103, 101, 1, 115, 2, 115, 116, 3, 13, 75, 121, 0, 4, 115, 1, 10, 2, 32, 3, 13, 89, 0, 115, 1, 99, 111, 102, 0, 97,
+			1, 103, 2, 114, 17, 65, 3, 35, 0, 2, 108, 17, 65, 3, 57, 117, 0, 4, 1, 25, 2, 116, 114, 105, 3, 57, 134, 0, 1, 100,
+			2, 108, 121, 0, 1, 104, 2, 109, 97, 110, 0, 1, 108, 97, 118, 0, 1, 108, 108, 2, 108, 0, 1, 108, 111, 118, 2, 109, 0, 1,
+			110, 97, 109, 0, 1, 110, 101, 109, 2, 32, 0, 1, 115, 2, 108, 101, 32, 0, 2, 17, 67, 17, 65, 0, 2, 17, 67, 101, 17, 67,
+			111, 32, 0, 2, 32, 0, 2, 97, 0, 2, 97, 108, 32, 0, 2, 101, 115, 113, 0, 2, 105, 0, 2, 108, 101, 32, 0, 2, 109, 101,
+			0, 2, 111, 0, 2, 116, 121, 0, 8, 2, 116, 105, 108, 0, 8, 108, 111, 115, 2, 17, 67, 0, 103, 1, 112, 109, 2, 110, 0, 103,
+			104, 1, 104, 0, 117, 1, 99, 97, 118, 0, 117, 2, 109, 3, 57, 134, 13, 0, 97, 114, 121, 2, 32, 3, 57, 134, 13, 34, 2, 122,
+			0, 99, 108, 101, 1, 110, 3, 57, 134, 49, 55, 122, 0, 99, 108, 101, 97, 114, 1, 110, 3, 57, 134, 49, 55, 142, 0, 115, 8, 2,
+			17, 65, 3, 57, 134, 88, 0, 115, 117, 114, 112, 3, 57, 134, 88, 6, 128, 48, 0, 115, 117, 114, 112, 5, 5, 3, 57, 134, 88, 6,
+			148, 48, 0, 115, 117, 2, 97, 108, 3, 57, 134, 90, 134, 0, 1, 103, 2, 105, 3, 58, 0, 97, 1, 103, 21, 2, 103, 101, 3, 58,
+			122, 0, 97, 8, 103, 3, 58, 126, 0, 4, 97, 1, 115, 2, 100, 101, 3, 58, 138, 0, 97, 1, 115, 2, 115, 0, 97, 103, 1, 115,
+			3, 58, 138, 75, 0, 4, 1, 98, 2, 100, 100, 104, 3, 117, 0, 1, 98, 2, 115, 104, 0, 1, 98, 2, 116, 99, 104, 0, 1, 99,
+			2, 115, 104, 0, 1, 112, 2, 115, 104, 0, 1, 112, 2, 115, 115, 0, 8, 102, 2, 108, 17, 67, 0, 4, 108, 1, 98, 2, 114, 3,
+			117, 55, 0, 108, 1, 98, 2, 119, 0, 108, 108, 1, 98, 0, 108, 108, 1, 102, 0, 108, 108, 1, 112, 0, 108, 108, 121, 1, 98, 3,
+			117, 55, 122, 0, 4, 108, 1, 99, 105, 10, 2, 116, 32, 3, 118, 0, 108, 1, 102, 10, 2, 32, 0, 1, 116, 116, 101, 108, 2, 99,
+			101, 3, 122, 0, 4, 115, 1, 98, 2, 105, 17, 65, 3, 122, 88, 0, 115, 1, 98, 2, 121, 0, 115, 105, 110, 101, 115, 115, 1, 98,
+			3, 122, 88, 50, 13, 89, 0, 4, 3, 125, 0, 1, 102, 2, 108, 99, 114, 0, 1, 108, 2, 99, 107, 0, 2, 103, 117, 17, 67, 0,
+			2, 108, 117, 108, 0, 2, 115, 104, 0, 2, 120, 17, 65, 12, 0, 99, 117, 108, 3, 125, 49, 57, 117, 55, 0, 108, 5, 8, 1, 102,
+			10, 2, 32, 3, 125, 55, 0, 108, 108, 121, 5, 8, 1, 102, 10, 2, 32, 3, 125, 55, 2, 122, 0, 103, 1, 108, 112, 2, 17, 65,
+			3, 125, 81, 0, 120, 117, 114, 1, 108, 3, 125, 81, 90, 134, 114, 0, 115, 8, 2, 32, 3, 125, 88, 0, 97, 114, 1, 103, 2, 100,
+			3, 127, 0, 4, 1, 18, 66, 2, 32, 3, 134, 0, 1, 104, 99, 2, 17, 67, 17, 65, 0, 1, 104, 114, 2, 17, 67, 17, 65, 0,
+			1, 106, 2, 17, 67, 17, 65, 0, 1, 106, 2, 108, 105, 0, 1, 106, 10, 2, 17, 67, 17, 65, 0, 1, 108, 2, 17, 67, 17, 65,
+			0, 1, 108, 2, 97, 0, 1, 108, 2, 98, 114, 105, 0, 1, 114, 2, 17, 67, 17, 65, 0, 1, 114, 2, 97, 17, 67, 12, 0, 1,
+			114, 2, 105, 0, 1, 114, 2, 116, 104, 0, 1, 115, 2, 17, 67, 17, 65, 0, 1, 115, 2, 105, 0, 1, 119, 2, 17, 67, 17, 65,
+			0, 1, 119, 2, 99, 104, 17, 65, 0, 2, 17, 67, 117, 32, 0, 2, 32, 24, 0, 2, 108, 121, 0, 5, 3, 1, 100, 2, 17, 67,
+			17, 65, 0, 5, 3, 1, 100, 2, 116, 121, 0, 5, 3, 1, 110, 2, 17, 67, 17, 65, 0, 5, 3, 1, 116, 2, 17, 67, 17, 65,
+			12, 0, 5, 3, 1, 116, 2, 105, 0, 8, 2, 108, 17, 65, 0, 8, 108, 2, 97, 0, 8, 108, 2, 99, 0, 104, 2, 17, 67, 0,
+			97, 114, 121, 1, 114, 2, 32, 3, 134, 34, 2, 122, 0, 99, 108, 101, 5, 3, 1, 110, 3, 134, 49, 55, 122, 0, 99, 108, 101, 97,
+			114, 5, 3, 1, 110, 3, 134, 49, 55, 142, 0, 103, 2, 101, 114, 32, 3, 134, 81, 0, 121, 3, 137, 0, 111, 121, 3, 139, 0, 111,
+			114, 1, 108, 102, 3, 143, 0, 7, 6, 118, 0, 2, 118, 3, 0, 4, 3, 84, 0, 8, 2, 108, 97, 0, 105, 98, 114, 97, 8, 2,
+			116, 3, 84, 2, 137, 71, 34, 138, 0, 105, 118, 105, 2, 21, 3, 84, 122, 84, 122, 0, 105, 118, 2, 32, 3, 84, 137, 84, 0, 97,
+			1, 21, 2, 108, 101, 110, 3, 84, 138, 0, 101, 104, 101, 109, 8, 3, 84, 141, 65, 0, 7, 6, 119, 0, 4, 1, 109, 2, 105, 99,
+			104, 32, 3, 0, 4, 1, 115, 17, 65, 2, 105, 99, 107, 3, 0, 2, 119, 3, 0, 101, 1, 17, 67, 2, 32, 3, 8, 58, 122, 0,
+			4, 114, 3, 34, 0, 114, 8, 2, 17, 71, 0, 4, 3, 58, 0, 104, 0, 104, 8, 2, 17, 71, 0, 4, 105, 116, 104, 2, 17, 65,
+			3, 58, 2, 122, 86, 0, 105, 116, 104, 2, 17, 67, 0, 101, 115, 116, 1, 17, 67, 3, 58, 6, 121, 89, 47, 0, 105, 116, 104, 1,
+			101, 2, 32, 3, 58, 6, 122, 86, 0, 101, 114, 101, 8, 2, 14, 128, 132, 132, 3, 58, 6, 140, 23, 0, 1, 17, 67, 2, 32, 3,
+			58, 13, 0, 111, 111, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 58, 117, 72, 0, 105, 107, 105, 3, 58, 122, 49, 37, 0, 4, 105,
+			110, 103, 1, 17, 66, 2, 32, 3, 58, 122, 68, 0, 105, 110, 103, 1, 17, 66, 2, 115, 32, 0, 104, 105, 99, 104, 3, 58, 122, 76,
+			0, 105, 116, 104, 2, 101, 3, 58, 122, 86, 0, 104, 97, 116, 3, 58, 124, 47, 0, 4, 111, 114, 1, 115, 115, 2, 100, 3, 58, 128,
+			0, 111, 114, 2, 116, 104, 32, 0, 101, 2, 119, 3, 58, 129, 0, 105, 115, 101, 1, 21, 2, 32, 14, 128, 128, 132, 3, 58, 137, 88,
+			0, 97, 121, 1, 69, 2, 32, 14, 128, 128, 131, 3, 58, 138, 0, 104, 101, 114, 101, 3, 58, 140, 0, 4, 111, 114, 5, 5, 1, 115,
+			115, 2, 100, 3, 58, 148, 0, 111, 114, 5, 5, 2, 116, 104, 32, 0, 104, 2, 111, 108, 3, 107, 0, 4, 104, 111, 2, 32, 3, 107,
+			134, 0, 104, 111, 2, 100, 0, 104, 111, 2, 109, 0, 104, 111, 2, 115, 0, 104, 111, 39, 0, 1, 17, 67, 2, 29, 3, 117, 0, 111,
+			114, 1, 115, 2, 100, 3, 133, 0, 7, 6, 120, 0, 1, 120, 2, 17, 65, 3, 0, 105, 115, 2, 32, 3, 8, 49, 89, 122, 89, 0,
+			105, 111, 117, 115, 3, 8, 49, 91, 13, 89, 0, 117, 2, 97, 3, 8, 49, 91, 134, 0, 3, 49, 89, 0, 117, 114, 101, 2, 32, 3,
+			49, 91, 2, 143, 0, 105, 111, 2, 110, 3, 49, 91, 13, 0, 8, 2, 17, 71, 3, 88, 0, 121, 8, 3, 88, 137, 0, 7, 6, 121,
+			0, 1, 10, 2, 32, 24, 3, 2, 37, 0, 111, 117, 39, 3, 2, 57, 134, 0, 4, 1, 10, 2, 32, 3, 2, 122, 0, 1, 17, 67,
+			0, 1, 102, 17, 65, 11, 2, 32, 0, 1, 102, 17, 67, 2, 32, 0, 1, 104, 2, 112, 111, 99, 114, 0, 4, 2, 17, 67, 105, 99,
+			32, 3, 6, 122, 0, 2, 17, 67, 105, 99, 97, 108, 0, 2, 17, 67, 105, 102, 121, 0, 2, 110, 97, 32, 3, 6, 129, 0, 4, 1,
+			21, 2, 114, 97, 32, 3, 6, 137, 0, 2, 112, 97, 108, 0, 115, 105, 115, 1, 10, 2, 32, 3, 8, 13, 89, 122, 89, 0, 1, 107,
+			115, 10, 2, 32, 3, 8, 37, 0, 1, 17, 67, 10, 2, 108, 101, 110, 101, 32, 3, 8, 122, 0, 4, 1, 45, 2, 45, 3, 13, 0,
+			114, 2, 32, 0, 1, 17, 66, 11, 2, 32, 24, 14, 128, 144, 129, 3, 37, 0, 4, 3, 57, 0, 2, 97, 114, 0, 2, 101, 97, 114,
+			0, 2, 105, 17, 67, 32, 0, 97, 110, 103, 3, 57, 6, 35, 68, 0, 39, 8, 2, 17, 67, 14, 128, 132, 130, 3, 57, 13, 0, 101,
+			115, 8, 3, 57, 121, 89, 0, 101, 97, 104, 3, 57, 121, 107, 0, 117, 2, 21, 3, 57, 134, 0, 101, 111, 2, 17, 67, 3, 57, 136,
+			0, 8, 2, 32, 3, 58, 137, 0, 1, 17, 67, 2, 97, 98, 108, 3, 113, 0, 114, 105, 110, 103, 1, 115, 3, 113, 34, 122, 50, 75,
+			0, 4, 1, 17, 66, 11, 2, 32, 14, 128, 144, 129, 3, 122, 0, 1, 17, 66, 111, 29, 2, 21, 12, 0, 1, 17, 67, 2, 105, 0,
+			1, 17, 67, 17, 67, 2, 110, 32, 0, 1, 17, 67, 21, 2, 103, 101, 110, 0, 1, 17, 67, 21, 2, 109, 17, 65, 110, 32, 0, 1,
+			99, 2, 108, 105, 110, 0, 1, 99, 2, 110, 105, 0, 1, 99, 2, 114, 0, 1, 99, 105, 98, 2, 99, 108, 0, 1, 102, 102, 2, 32,
+			0, 1, 108, 2, 114, 105, 0, 1, 108, 102, 2, 110, 0, 1, 108, 103, 2, 99, 101, 114, 0, 1, 108, 103, 2, 112, 104, 0, 1, 112,
+			2, 114, 97, 0, 1, 112, 2, 114, 105, 0, 1, 116, 2, 112, 105, 99, 0, 1, 116, 2, 114, 97, 110, 110, 0, 1, 119, 2, 110, 0,
+			2, 17, 67, 0, 2, 17, 67, 17, 67, 0, 2, 17, 67, 32, 0, 2, 115, 116, 0, 5, 35, 1, 100, 2, 110, 97, 115, 0, 8, 2,
+			17, 67, 21, 0, 8, 115, 0, 101, 105, 103, 104, 116, 1, 116, 2, 32, 3, 122, 6, 138, 47, 0, 116, 119, 111, 1, 116, 2, 32, 3,
+			122, 47, 6, 134, 0, 112, 111, 99, 114, 105, 1, 104, 2, 116, 3, 122, 48, 13, 49, 34, 122, 0, 120, 1, 17, 67, 2, 32, 3, 122,
+			49, 89, 0, 110, 99, 104, 1, 115, 3, 122, 50, 49, 0, 111, 110, 101, 1, 116, 2, 32, 3, 122, 58, 6, 124, 50, 0, 111, 110, 101,
+			5, 6, 1, 116, 2, 32, 3, 122, 58, 6, 125, 50, 0, 102, 111, 117, 114, 1, 116, 2, 32, 3, 122, 83, 6, 133, 0, 102, 105, 118,
+			101, 1, 116, 2, 32, 3, 122, 83, 6, 137, 84, 0, 115, 1, 104, 112, 2, 105, 3, 122, 88, 0, 115, 101, 118, 101, 110, 1, 116, 2,
+			32, 3, 122, 89, 6, 121, 84, 13, 50, 0, 115, 101, 1, 100, 2, 110, 3, 122, 89, 13, 0, 4, 8, 2, 110, 21, 3, 125, 0, 8,
+			2, 115, 21, 0, 4, 1, 17, 67, 21, 2, 17, 66, 101, 13, 3, 137, 0, 1, 17, 67, 29, 0, 1, 98, 101, 114, 101, 2, 32, 0,
+			1, 98, 114, 97, 101, 2, 32, 0, 1, 99, 2, 99, 108, 0, 1, 99, 2, 99, 108, 105, 99, 32, 0, 1, 102, 2, 32, 0, 1, 102,
+			115, 2, 32, 0, 1, 104, 2, 17, 67, 114, 0, 1, 104, 116, 2, 108, 32, 0, 1, 107, 2, 108, 32, 0, 1, 108, 101, 98, 2, 32,
+			0, 1, 108, 102, 0, 1, 110, 2, 108, 32, 0, 1, 110, 101, 100, 2, 32, 0, 1, 112, 2, 116, 104, 0, 1, 116, 2, 108, 32, 0,
+			1, 116, 2, 112, 32, 0, 1, 116, 2, 112, 105, 115, 116, 0, 1, 116, 115, 2, 114, 101, 0, 2, 17, 66, 101, 13, 0, 2, 32, 0,
+			2, 101, 114, 32, 0, 2, 108, 117, 109, 0, 2, 116, 104, 101, 32, 0, 8, 17, 67, 0, 8, 17, 67, 2, 17, 67, 101, 0, 8, 17,
+			67, 2, 112, 104, 0, 8, 17, 67, 115, 0, 8, 98, 2, 12, 0, 101, 2, 32, 0, 116, 101, 2, 32, 3, 137, 47, 0, 112, 101, 1,
+			116, 3, 137, 48, 0, 110, 97, 109, 1, 100, 3, 137, 50, 35, 65, 0, 4, 101, 115, 1, 17, 67, 2, 32, 3, 137, 88, 0, 115, 101,
+			2, 32, 12, 0, 4, 115, 101, 100, 2, 32, 3, 137, 88, 72, 0, 122, 101, 100, 2, 32, 0, 115, 105, 110, 103, 2, 32, 3, 137, 88,
+			113, 68, 0, 114, 101, 2, 32, 3, 145, 0, 7, 6, 122, 0, 2, 122, 3, 0, 117, 2, 32, 3, 8, 88, 134, 0, 4, 3, 88, 0,
+			8, 2, 108, 111, 116, 0, 8, 2, 119, 17, 71, 0, 115, 8, 2, 17, 71, 0, 97, 108, 101, 115, 1, 21, 2, 32, 3, 88, 6, 126,
+			55, 13, 89, 0, 117, 101, 3, 88, 58, 6, 138, 0, 101, 115, 2, 32, 3, 88, 113, 88, 0, 111, 2, 111, 108, 111, 3, 88, 134, 0,
+			4, 104, 3, 90, 0, 104, 8, 2, 17, 71, 0, 117, 114, 101, 3, 90, 114, 0, 7, 6, 206, 0, 4, 172, 3, 6, 35, 55, 83, 13,
+			10, 0, 177, 0, 4, 173, 3, 6, 121, 48, 89, 122, 55, 124, 50, 10, 0, 181, 0, 4, 174, 3, 6, 129, 47, 13, 10, 0, 183, 0,
+			191, 3, 6, 136, 65, 122, 49, 34, 124, 50, 10, 0, 186, 3, 49, 6, 35, 48, 13, 10, 0, 190, 3, 49, 89, 6, 137, 10, 0, 189,
+			3, 50, 6, 57, 134, 10, 0, 187, 3, 55, 6, 35, 65, 72, 13, 10, 0, 188, 3, 65, 6, 57, 134, 10, 0, 178, 3, 71, 6, 129,
+			47, 13, 10, 0, 178, 5, 3, 3, 71, 6, 138, 47, 13, 10, 0, 180, 3, 72, 6, 121, 55, 47, 13, 10, 0, 179, 3, 81, 6, 35,
+			65, 13, 10, 0, 184, 3, 87, 6, 129, 47, 13, 10, 0, 182, 3, 88, 6, 129, 47, 13, 10, 0, 4, 175, 3, 137, 6, 136, 47, 13,
+			10, 0, 185, 0, 7, 6, 207, 0, 4, 133, 3, 6, 117, 48, 89, 122, 55, 124, 50, 10, 0, 141, 0, 140, 3, 6, 136, 65, 122, 49,
+			34, 124, 50, 10, 0, 4, 137, 3, 6, 136, 65, 122, 81, 13, 10, 0, 142, 0, 129, 3, 34, 6, 136, 10, 0, 132, 3, 47, 6, 135,
+			10, 0, 128, 3, 48, 6, 137, 10, 0, 136, 3, 48, 89, 6, 137, 10, 0, 135, 3, 76, 6, 137, 10, 0, 134, 3, 83, 6, 137, 10,
+			0, 4, 130, 3, 89, 6, 122, 81, 65, 13, 10, 0, 131, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 4, 39, 3, 0, 4, 46, 1,
+			46, 3, 0, 58, 1, 32, 15, 2, 32, 15, 15, 32, 3, 0, 195, 169, 8, 3, 2, 122, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9,
+			121, 49, 89, 49, 55, 13, 65, 138, 91, 13, 50, 9, 0, 45, 8, 2, 32, 15, 3, 10, 0, 195, 177, 3, 21, 101, 115, 0, 195, 160,
+			3, 35, 0, 58, 3, 49, 136, 55, 13, 50, 0, 33, 61, 3, 50, 124, 47, 129, 49, 58, 118, 88, 0, 60, 61, 3, 55, 121, 89, 132,
+			129, 49, 58, 118, 0, 45, 8, 32, 2, 32, 15, 3, 65, 137, 50, 13, 89, 0, 45, 1, 32, 15, 2, 32, 15, 3, 72, 35, 91, 0,
+			46, 3, 72, 124, 47, 0, 36, 3, 72, 124, 55, 114, 0, 196, 141, 3, 76, 0, 62, 61, 3, 81, 34, 138, 47, 13, 132, 129, 49, 58,
+			118, 0, 195, 176, 3, 86, 0, 195, 190, 3, 87, 0, 4, 195, 159, 3, 89, 0, 195, 167, 0, 197, 190, 3, 90, 0, 4, 197, 159, 3,
+			91, 0, 197, 161, 0, 4, 195, 164, 3, 121, 0, 195, 171, 0, 195, 170, 3, 121, 12, 0, 195, 182, 3, 128, 0, 4, 195, 169, 101, 3,
+			129, 0, 195, 175, 0, 195, 188, 3, 134, 0, 195, 169, 3, 138, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts14 = FileInMemory_createWithData (94547, reinterpret_cast<const char *> (&espeakdata_dicts14_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/en_dict", 
 			U"en");
-		my addItem_move (espeakdata_dicts14.move());
+		Collection_addItem (me.peek(), espeakdata_dicts14.transfer());
 
-		static unsigned char espeakdata_dicts15_data[4678] = {
-			0, 4, 0, 0, 9, 14, 0, 0, 0, 0, 0, 12, 67, 57, 35, 192, 50, 40, 65, 36, 51, 39, 0, 12, 6, 95, 35, 45, 97, 106,
-			110, 2, 110, 50, 0, 0, 0, 9, 4, 95, 35, 45, 97, 2, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 13, 4, 95, 100, 112, 116, 10, 49, 39, 65, 39, 10, 0, 0, 0, 0, 7, 195, 44, 18, 128, 72, 8, 0, 10, 3, 105, 46, 97,
-			6, 37, 6, 35, 0, 0, 0, 0, 0, 7, 196, 32, 21, 143, 76, 76, 0, 0, 0, 0, 14, 67, 4, 228, 212, 35, 50, 89, 47, 35,
-			47, 108, 0, 24, 0, 0, 10, 67, 64, 193, 74, 48, 55, 4, 111, 0, 0, 0, 6, 131, 101, 196, 137, 28, 0, 0, 14, 1, 37, 48,
-			14, 16, 39, 114, 36, 50, 47, 39, 0, 27, 0, 7, 1, 38, 10, 49, 110, 0, 0, 0, 0, 0, 7, 195, 64, 244, 128, 76, 8, 14,
-			1, 42, 35, 89, 47, 36, 51, 37, 89, 49, 39, 0, 27, 0, 0, 0, 15, 66, 45, 0, 49, 4, 39, 65, 48, 6, 35, 34, 40, 0,
-			24, 0, 0, 11, 1, 47, 39, 71, 55, 37, 49, 84, 39, 0, 0, 15, 4, 95, 100, 105, 97, 72, 40, 48, 40, 50, 49, 47, 35, 0,
-			0, 0, 0, 0, 0, 6, 195, 88, 144, 74, 76, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 53, 9, 76, 0, 10, 1, 61, 36, 81,
-			35, 55, 35, 0, 27, 0, 0, 7, 196, 64, 245, 149, 76, 76, 0, 8, 1, 64, 10, 76, 36, 10, 0, 0, 0, 7, 195, 44, 147, 192,
-			76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 100, 111, 116, 48, 6, 40, 50, 49, 47, 35, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 39, 0, 0, 0, 0, 0, 11, 1, 92, 72, 36, 49, 55, 37, 84, 39, 0, 0,
-			0, 0, 0, 6, 195, 80, 144, 77, 28, 8, 65, 96, 37, 49, 89, 39, 0, 12, 4, 95, 49, 77, 49, 65, 6, 37, 55, 10, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 97, 197, 173, 103, 35, 40, 81, 40, 89, 47, 39,
-			2, 0, 0, 0, 0, 0, 10, 5, 95, 35, 45, 97, 106, 2, 110, 0, 0, 0, 0, 0, 11, 5, 95, 35, 45, 97, 110, 2, 35, 50,
-			0, 0, 0, 14, 1, 124, 72, 40, 49, 47, 39, 89, 37, 81, 50, 39, 0, 0, 0, 7, 196, 44, 149, 74, 56, 8, 9, 1, 126, 47,
-			37, 55, 72, 39, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
-			3, 107, 46, 115, 49, 110, 4, 89, 37, 6, 65, 37, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 16, 76, 0, 0,
-			0, 0, 0, 0, 7, 196, 52, 85, 21, 76, 76, 13, 3, 107, 46, 97, 49, 110, 35, 55, 6, 37, 110, 0, 0, 0, 15, 3, 107, 46,
-			99, 49, 110, 114, 36, 47, 6, 36, 51, 36, 0, 0, 0, 7, 196, 32, 21, 129, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 8, 133, 196, 157, 105, 97, 106, 76, 0, 0, 0, 14, 66, 9, 96, 71, 39, 50, 4, 84, 39, 55, 40, 2, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 109, 99, 110, 89, 47, 14, 16, 6, 37, 35, 0, 0, 0, 7, 196, 16, 85, 149, 76,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 80, 19, 69, 56, 8, 6, 195, 48, 144, 64, 76, 0, 0, 0, 0, 8,
-			133, 197, 157, 105, 97, 106, 76, 6, 195, 8, 80, 64, 13, 0, 0, 0, 0, 0, 0, 6, 195, 20, 177, 5, 8, 0, 0, 0, 0, 0,
-			15, 66, 16, 80, 72, 36, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 16, 80, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 66, 4, 192, 35, 55, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 4, 192, 76, 28, 0, 0,
-			11, 3, 95, 35, 57, 47, 6, 35, 71, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 12, 144, 72,
-			0, 6, 195, 37, 32, 83, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 67, 24, 80, 128, 83,
-			4, 36, 71, 14, 16, 40, 6, 35, 51, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 197, 157, 105, 97, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 20, 35, 5, 72, 0, 0, 0, 5, 194, 36, 16, 72, 0, 0, 0, 0, 7, 196, 64, 245, 137, 76, 76, 0, 0, 0,
-			0, 8, 3, 95, 35, 97, 2, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 195, 56, 82, 192, 72, 8, 0, 7, 195, 64, 244, 212, 76, 8, 0, 15, 4, 95, 111, 103, 111, 89, 40, 71, 107,
-			6, 39, 49, 35, 0, 0, 7, 196, 21, 53, 9, 76, 76, 0, 0, 0, 17, 3, 110, 46, 98, 50, 6, 39, 47, 40, 15, 71, 6, 39,
-			50, 36, 0, 0, 0, 6, 195, 80, 147, 192, 76, 0, 0, 0, 0, 12, 67, 41, 83, 128, 37, 40, 50, 6, 37, 39, 0, 0, 0, 0,
-			15, 66, 20, 192, 36, 55, 55, 35, 0, 72, 8, 81, 108, 97, 32, 6, 194, 20, 192, 76, 8, 0, 6, 195, 32, 21, 137, 76, 0, 0,
-			0, 0, 0, 0, 0, 12, 4, 95, 98, 114, 118, 107, 6, 39, 49, 35, 0, 0, 0, 0, 0, 19, 4, 95, 97, 99, 50, 72, 40, 39,
-			71, 55, 35, 49, 6, 39, 51, 50, 35, 0, 0, 21, 67, 24, 20, 133, 83, 35, 14, 16, 36, 2, 72, 6, 36, 0, 76, 28, 81, 100,
-			101, 32, 0, 0, 6, 195, 37, 34, 83, 76, 0, 5, 194, 16, 240, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 85, 1, 76,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 15, 66, 20, 224, 36, 50, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 20, 224, 76, 28,
-			0, 11, 5, 95, 35, 97, 106, 110, 2, 110, 50, 0, 14, 3, 95, 51, 88, 47, 14, 16, 6, 37, 72, 36, 49, 0, 0, 10, 3, 95,
-			48, 67, 114, 36, 50, 47, 0, 0, 0, 0, 7, 195, 81, 32, 64, 72, 8, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 114, 6, 36,
-			50, 47, 0, 0, 0, 0, 21, 67, 64, 84, 133, 48, 36, 14, 16, 36, 2, 72, 6, 36, 0, 76, 28, 81, 100, 101, 32, 0, 0, 0,
-			6, 194, 40, 80, 72, 28, 8, 66, 48, 16, 2, 55, 35, 0, 0, 7, 195, 65, 34, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 6,
-			194, 41, 80, 72, 28, 7, 196, 16, 85, 129, 76, 76, 0, 12, 67, 41, 83, 0, 37, 40, 55, 6, 37, 39, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 13, 3, 95, 55, 88, 89, 6, 36, 48, 72, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 37, 35,
-			211, 76, 0, 19, 67, 45, 68, 0, 49, 110, 47, 6, 37, 36, 55, 4, 48, 55, 4, 40, 10, 0, 0, 21, 4, 95, 97, 99, 117, 72,
-			36, 49, 89, 47, 14, 16, 35, 49, 6, 39, 51, 50, 35, 0, 0, 0, 0, 6, 194, 44, 80, 72, 8, 0, 10, 3, 95, 49, 88, 72,
-			6, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88, 72, 6, 40, 72, 36, 49, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 52, 144, 64, 76, 0, 7, 195, 5, 5, 68, 76, 8, 0, 21, 5, 107, 46, 116, 46, 112, 49, 110, 47, 6, 37, 36,
-			55, 4, 48, 55, 4, 40, 10, 0, 0, 0, 0, 20, 3, 112, 46, 115, 48, 4, 39, 89, 47, 35, 89, 49, 14, 16, 6, 37, 71, 39,
-			0, 13, 3, 95, 63, 63, 55, 37, 47, 4, 36, 51, 39, 0, 0, 0, 7, 131, 196, 137, 101, 76, 8, 0, 14, 3, 95, 52, 88, 49,
-			84, 6, 35, 51, 72, 36, 49, 0, 0, 0, 0, 0, 0, 20, 3, 112, 46, 107, 48, 4, 39, 89, 47, 49, 14, 16, 6, 37, 89, 47,
-			39, 0, 24, 0, 0, 17, 66, 44, 112, 49, 6, 37, 55, 39, 81, 14, 16, 6, 35, 65, 112, 0, 0, 14, 3, 95, 53, 88, 49, 84,
-			6, 37, 50, 72, 36, 49, 0, 0, 0, 13, 4, 95, 114, 110, 103, 51, 6, 37, 50, 81, 35, 0, 0, 0, 0, 0, 0, 0, 13, 3,
+		static unsigned char espeakdata_dicts15_data[4669] = {
+			0, 4, 0, 0, 9, 14, 0, 0, 0, 0, 0, 12, 67, 57, 35, 192, 50, 40, 65, 36, 51, 39, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 4, 95, 8, 1, 3, 107, 35, 76, 6, 36, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 44,
+			18, 128, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 53, 9, 76, 76, 0, 0, 0, 10, 134, 1, 14, 20, 1, 197,
+			173, 76, 8, 0, 0, 0, 14, 1, 37, 48, 14, 16, 39, 114, 36, 50, 47, 39, 0, 27, 0, 7, 1, 38, 10, 49, 110, 0, 0, 0,
+			0, 0, 7, 195, 64, 244, 128, 76, 8, 14, 1, 42, 35, 89, 47, 36, 51, 37, 89, 49, 39, 0, 27, 0, 0, 0, 15, 66, 45, 0,
+			49, 4, 39, 65, 48, 6, 35, 34, 40, 0, 24, 0, 0, 11, 1, 47, 39, 71, 55, 37, 49, 84, 39, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 3, 11, 46, 1, 49, 110, 35, 55, 6, 37, 110, 0, 0, 0, 15, 3, 11, 46, 3, 49, 110, 114, 36, 47, 6, 36, 51,
+			36, 0, 0, 0, 0, 0, 10, 1, 61, 36, 81, 35, 55, 35, 0, 27, 0, 0, 7, 196, 21, 53, 21, 76, 76, 0, 8, 1, 64, 10,
+			76, 36, 10, 0, 0, 0, 7, 195, 44, 147, 192, 76, 8, 0, 0, 0, 0, 0, 0, 0, 16, 3, 11, 46, 19, 49, 110, 4, 89, 37,
+			6, 65, 37, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 39, 0, 0, 0, 0,
+			0, 11, 1, 92, 72, 36, 49, 55, 37, 84, 39, 0, 0, 0, 0, 0, 8, 65, 96, 37, 49, 89, 39, 0, 12, 4, 95, 49, 77, 49,
+			65, 6, 37, 55, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 14, 1, 124, 72, 40, 49, 47, 39, 89, 37, 81, 50, 39, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 39, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 12, 39, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 16, 76,
+			0, 15, 4, 1, 197, 173, 7, 35, 40, 81, 40, 89, 47, 39, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195,
+			64, 244, 212, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 66, 9, 96, 71, 39, 50, 4, 84, 39, 55, 40, 2, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 144, 64,
+			76, 0, 0, 0, 0, 6, 195, 8, 80, 64, 17, 0, 0, 0, 0, 0, 0, 6, 195, 48, 144, 74, 76, 0, 0, 0, 0, 0, 15, 66,
+			16, 80, 72, 36, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 16, 80, 76, 28, 0, 0, 0, 0, 0, 0, 13, 4, 95, 4, 16,
+			20, 10, 49, 39, 65, 39, 10, 0, 0, 0, 0, 0, 8, 3, 95, 35, 1, 2, 35, 0, 0, 0, 0, 0, 0, 0, 15, 66, 4, 192,
+			35, 55, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 4, 192, 76, 28, 0, 0, 11, 3, 95, 35, 57, 47, 6, 35, 71, 39, 0,
+			13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 12,
+			144, 72, 0, 0, 0, 0, 0, 14, 67, 4, 228, 212, 35, 50, 89, 47, 35, 47, 108, 0, 24, 0, 0, 17, 3, 14, 46, 2, 50, 6,
+			39, 47, 40, 15, 71, 6, 39, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 80, 144, 77, 28, 0, 0, 0, 0, 17, 67, 24,
+			80, 128, 83, 4, 36, 71, 14, 16, 40, 6, 35, 51, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 21, 137, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 36, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 196, 32, 21, 137, 76, 76, 0, 0, 0, 8, 133, 197, 157, 9, 1, 10, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 195, 56, 82, 192, 72, 8, 0, 7, 196, 52, 85, 15, 76, 76, 0, 0, 0, 0, 7, 196, 64, 245, 129, 76, 76, 0, 0, 0, 6,
+			195, 80, 147, 192, 76, 0, 0, 0, 0, 12, 67, 41, 83, 128, 37, 40, 50, 6, 37, 39, 0, 0, 0, 0, 15, 66, 20, 192, 36, 55,
+			55, 35, 0, 72, 8, 81, 108, 97, 32, 6, 194, 20, 192, 76, 8, 0, 0, 7, 196, 52, 85, 9, 76, 76, 0, 21, 5, 11, 46, 20,
+			46, 16, 49, 110, 47, 6, 37, 36, 55, 4, 48, 55, 4, 40, 10, 0, 0, 0, 11, 5, 95, 35, 45, 1, 14, 2, 35, 50, 0, 0,
+			0, 0, 7, 131, 196, 137, 5, 76, 8, 14, 4, 95, 13, 3, 14, 89, 47, 14, 16, 6, 37, 35, 0, 0, 8, 133, 196, 157, 9, 1,
+			10, 76, 10, 5, 95, 35, 45, 1, 10, 2, 110, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 240, 8, 0, 0, 0, 0, 0, 0,
+			7, 196, 32, 21, 143, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 16, 46, 11, 48, 4, 39, 89, 47, 49, 14, 16, 6, 37,
+			89, 47, 39, 0, 24, 0, 0, 15, 66, 20, 224, 36, 50, 55, 35, 0, 72, 28, 81, 108, 97, 32, 6, 194, 20, 224, 76, 28, 0, 14,
+			3, 95, 51, 88, 47, 14, 16, 6, 37, 72, 36, 49, 0, 0, 10, 3, 95, 48, 67, 114, 36, 50, 47, 0, 0, 0, 0, 7, 195, 81,
+			32, 64, 72, 8, 0, 7, 196, 32, 21, 129, 76, 76, 20, 3, 16, 46, 19, 48, 4, 39, 89, 47, 35, 89, 49, 14, 16, 6, 37, 71,
+			39, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 114, 6, 36, 50, 47, 0, 0, 0, 0, 0, 0, 0, 6, 194, 40, 80, 72, 28, 8,
+			66, 48, 16, 2, 55, 35, 0, 0, 7, 195, 65, 34, 64, 76, 8, 0, 0, 0, 6, 131, 196, 137, 9, 72, 0, 0, 0, 0, 6, 194,
+			41, 80, 72, 28, 7, 131, 196, 137, 21, 72, 28, 0, 12, 67, 41, 83, 0, 37, 40, 55, 6, 37, 39, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 3, 95, 55, 88, 89, 6, 36, 48, 72, 36, 49, 0, 0, 7, 196, 52, 85, 1, 76, 76, 0, 0, 0, 0, 7, 196, 16,
+			85, 129, 76, 76, 0, 0, 0, 7, 132, 197, 157, 9, 1, 76, 0, 0, 0, 19, 67, 45, 68, 0, 49, 110, 47, 6, 37, 36, 55, 4,
+			48, 55, 4, 40, 10, 0, 0, 7, 195, 5, 5, 68, 76, 8, 0, 0, 0, 6, 194, 44, 80, 72, 8, 0, 10, 3, 95, 49, 88, 72,
+			6, 36, 49, 0, 0, 8, 196, 36, 229, 5, 72, 76, 8, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88, 72, 6, 40, 72, 36,
+			49, 0, 0, 20, 3, 1, 46, 11, 4, 35, 50, 47, 108, 49, 14, 16, 6, 37, 89, 47, 39, 0, 24, 0, 0, 0, 0, 0, 0, 0,
+			6, 195, 52, 144, 64, 76, 0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 55, 37, 47, 4, 36, 51, 39, 0, 0, 0, 0, 14, 3, 95,
+			52, 88, 49, 84, 6, 35, 51, 72, 36, 49, 0, 0, 0, 6, 195, 52, 144, 74, 76, 0, 0, 0, 0, 0, 17, 66, 44, 112, 49, 6,
+			37, 55, 39, 81, 14, 16, 6, 35, 65, 112, 0, 0, 17, 67, 76, 84, 20, 89, 36, 48, 4, 47, 36, 65, 71, 14, 16, 39, 0, 14,
+			3, 95, 53, 88, 49, 84, 6, 37, 50, 72, 36, 49, 0, 0, 0, 0, 0, 0, 7, 196, 16, 85, 143, 76, 76, 0, 0, 0, 13, 3,
 			95, 54, 88, 89, 6, 36, 89, 72, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 67, 5, 4, 128, 35, 48, 14, 16, 6, 37,
-			55, 39, 0, 0, 0, 0, 0, 14, 67, 77, 68, 128, 89, 47, 14, 16, 6, 35, 47, 39, 0, 0, 0, 0, 0, 12, 3, 95, 56, 88,
-			6, 39, 49, 72, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 57, 88, 50, 6, 108, 72, 36, 49, 0, 0, 0, 0,
-			6, 131, 196, 137, 105, 72, 0, 0, 0, 0, 7, 131, 196, 137, 117, 72, 28, 0, 8, 196, 36, 229, 5, 72, 76, 8, 0, 9, 197, 65,
-			33, 84, 21, 32, 76, 28, 0, 0, 0, 0, 0, 14, 4, 95, 115, 116, 107, 89, 47, 14, 16, 36, 49, 35, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 20, 3, 97, 46, 107, 4, 35, 50, 47, 108, 49, 14, 16, 6, 37, 89, 47, 39, 0, 24, 0, 0, 0, 0, 0,
-			0, 0, 0, 5, 194, 48, 144, 72, 5, 194, 56, 80, 76, 0, 0, 0, 0, 0, 11, 67, 52, 18, 128, 65, 6, 110, 39, 2, 0, 0,
-			0, 0, 20, 4, 95, 99, 105, 114, 114, 37, 51, 49, 40, 65, 83, 55, 6, 36, 49, 89, 35, 0, 0, 7, 195, 65, 35, 192, 76, 8,
-			0, 16, 4, 95, 48, 77, 52, 72, 40, 37, 55, 37, 6, 39, 50, 39, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6,
-			39, 50, 39, 0, 0, 7, 195, 76, 83, 128, 76, 8, 16, 4, 95, 48, 77, 51, 65, 37, 55, 37, 6, 35, 34, 72, 39, 0, 0, 0,
-			12, 4, 95, 48, 77, 49, 65, 4, 37, 55, 10, 0, 0, 9, 4, 95, 35, 97, 106, 2, 110, 0, 0, 0, 0, 0, 10, 4, 95, 35,
-			97, 110, 2, 35, 50, 0, 0, 13, 67, 52, 20, 128, 65, 6, 35, 14, 16, 47, 39, 0, 0, 0, 0, 0, 16, 4, 95, 108, 105, 103,
-			55, 37, 81, 35, 47, 6, 40, 51, 35, 0, 0, 0, 0, 0, 6, 195, 37, 37, 83, 76, 0, 0, 0, 5, 194, 52, 144, 72, 17, 66,
-			44, 208, 49, 6, 37, 55, 39, 65, 6, 36, 47, 20, 16, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 66, 65, 48, 48, 4, 39,
-			89, 47, 35, 89, 49, 14, 16, 6, 37, 71, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 80, 128,
-			76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 99, 101, 100, 114, 36, 72, 6, 37, 55, 35, 0, 0, 0, 5, 194, 56,
-			144, 72, 0, 0, 7, 196, 21, 53, 21, 76, 76, 0, 0, 0, 6, 195, 60, 226, 64, 72, 10, 67, 64, 194, 64, 48, 55, 4, 37, 0,
-			0, 6, 131, 196, 157, 105, 72, 0, 0, 0, 0, 15, 4, 95, 99, 97, 112, 65, 110, 4, 40, 89, 49, 55, 35, 0, 0, 0, 0, 7,
-			195, 45, 83, 128, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 84, 128, 76, 8, 0, 0, 0, 0, 0, 0, 0, 21, 3,
-			95, 194, 171, 72, 40, 6, 39, 71, 55, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 7, 196, 36, 194, 65, 40, 76, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 196, 32, 21, 137, 76, 76, 0, 0, 0, 15, 67, 60, 181, 0, 39, 49, 4, 47, 39, 71, 14, 16, 39, 0, 0,
-			7, 196, 21, 53, 15, 76, 76, 6, 131, 197, 157, 105, 72, 0, 0, 0, 0, 7, 195, 44, 145, 76, 76, 8, 0, 0, 27, 3, 95, 194,
-			187, 83, 6, 36, 51, 65, 35, 72, 40, 4, 39, 71, 55, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 11, 3, 112, 196, 157,
-			48, 35, 75, 39, 0, 24, 0, 0, 6, 194, 60, 192, 76, 28, 0, 0, 0, 0, 24, 4, 95, 103, 114, 118, 65, 35, 55, 72, 36, 49,
-			89, 47, 14, 16, 35, 49, 6, 39, 51, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 76, 80, 72, 8,
-			0, 7, 195, 76, 81, 0, 72, 8, 0, 7, 196, 64, 245, 143, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 144,
-			74, 76, 6, 195, 48, 144, 74, 76, 0, 13, 2, 194, 169, 49, 39, 48, 37, 51, 110, 47, 39, 0, 0, 0, 0, 0, 6, 195, 88, 144,
-			64, 76, 6, 195, 56, 144, 64, 76, 0, 0, 0, 10, 2, 194, 176, 81, 34, 35, 72, 112, 0, 0, 0, 0, 19, 3, 116, 46, 110, 47,
-			6, 37, 36, 55, 4, 50, 39, 65, 6, 35, 47, 35, 0, 0, 0, 0, 0, 0, 6, 195, 76, 144, 74, 76, 6, 195, 12, 144, 74, 76,
-			6, 195, 52, 144, 74, 76, 0, 0, 0, 0, 0, 0, 15, 3, 116, 46, 101, 47, 37, 39, 4, 36, 89, 47, 35, 89, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 8, 132, 196, 137, 97, 114, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 0, 0, 7, 196, 52, 85, 15, 76, 76, 17, 67, 76, 84, 20, 89, 36, 48, 4, 47, 36,
-			65, 71, 14, 16, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 131, 97, 197, 173, 72, 8, 0, 0,
-			0, 10, 134, 97, 110, 116, 97, 197, 173, 76, 8, 0, 0, 0, 0, 0, 0, 6, 195, 36, 194, 65, 76, 7, 132, 196, 157, 105, 97, 76,
-			0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 245, 129, 76, 76, 0, 8, 132, 108, 97, 197, 173, 76, 28, 0, 0, 0, 7, 196, 16, 85,
-			143, 76, 76, 7, 196, 21, 53, 1, 76, 76, 0, 0, 9, 2, 95, 34, 114, 37, 47, 39, 0, 0, 16, 2, 95, 33, 10, 49, 14, 16,
-			37, 89, 37, 81, 50, 39, 10, 0, 0, 0, 15, 67, 40, 19, 128, 37, 4, 35, 50, 40, 6, 35, 51, 39, 0, 16, 2, 95, 39, 35,
-			48, 39, 89, 47, 14, 16, 6, 39, 83, 39, 0, 0, 0, 0, 0, 7, 195, 17, 83, 64, 72, 8, 0, 0, 21, 2, 95, 41, 83, 6,
-			36, 51, 65, 35, 48, 35, 34, 36, 50, 47, 6, 36, 88, 39, 0, 0, 14, 2, 95, 40, 48, 35, 34, 36, 50, 47, 36, 88, 39, 0,
-			0, 7, 195, 44, 144, 77, 76, 8, 7, 195, 64, 84, 128, 76, 28, 0, 11, 2, 95, 46, 48, 40, 50, 49, 47, 39, 0, 0, 18, 2,
-			95, 45, 72, 37, 84, 37, 72, 39, 89, 47, 14, 16, 36, 49, 39, 0, 0, 9, 2, 95, 44, 49, 39, 65, 39, 0, 0, 10, 2, 95,
-			51, 47, 14, 34, 6, 37, 0, 0, 8, 2, 95, 50, 72, 6, 40, 0, 0, 9, 2, 95, 49, 6, 40, 50, 40, 0, 0, 8, 2, 95,
-			48, 50, 40, 55, 0, 0, 9, 2, 95, 55, 89, 6, 36, 48, 0, 0, 9, 2, 95, 54, 89, 6, 36, 89, 0, 0, 10, 2, 95, 53,
-			49, 84, 6, 37, 50, 0, 0, 10, 2, 95, 52, 49, 84, 6, 35, 51, 0, 0, 15, 2, 95, 59, 48, 40, 50, 49, 47, 39, 49, 39,
-			65, 39, 0, 0, 13, 2, 95, 58, 72, 40, 48, 40, 50, 49, 47, 39, 0, 0, 8, 2, 95, 57, 50, 6, 108, 0, 0, 8, 2, 95,
-			56, 6, 39, 49, 0, 0, 18, 67, 20, 182, 128, 36, 49, 88, 36, 65, 48, 55, 36, 0, 44, 81, 101, 32, 15, 67, 20, 182, 128, 36,
-			49, 88, 36, 65, 48, 55, 36, 0, 24, 17, 2, 95, 63, 72, 36, 65, 35, 50, 72, 39, 89, 37, 81, 50, 39, 0, 0, 24, 2, 95,
-			62, 83, 6, 36, 51, 65, 35, 35, 50, 81, 40, 55, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 18, 2, 95, 60, 35, 50, 81,
-			40, 55, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 8, 132, 196, 157, 105, 115, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 67, 16, 80, 192, 72, 36, 114, 36, 65, 71, 14, 16, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
-			2, 95, 91, 51, 6, 36, 49, 47, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 8, 66, 88, 144, 84, 37, 0, 72, 5,
-			194, 84, 176, 13, 0, 15, 2, 95, 95, 89, 40, 71, 89, 47, 14, 16, 36, 49, 39, 0, 0, 0, 24, 2, 95, 93, 83, 6, 36, 51,
-			65, 35, 51, 36, 49, 47, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 6, 195, 36, 194, 64, 72, 13, 67, 4, 178, 192, 35,
-			55, 37, 50, 39, 65, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 16, 84, 192, 72, 8,
-			0, 0, 14, 4, 95, 104, 97, 99, 107, 35, 76, 6, 36, 49, 35, 0, 0, 6, 195, 44, 149, 78, 8, 0, 0, 0, 0, 0, 19, 2,
-			95, 123, 49, 6, 40, 51, 71, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 7, 196, 52, 85, 9, 76, 76, 0, 0, 0,
-			24, 2, 95, 125, 83, 6, 36, 51, 65, 35, 49, 40, 51, 71, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 108, 39, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 44, 149,
-			74, 76, 8, 13, 4, 95, 35, 51, 50, 89, 48, 6, 35, 114, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 16, 85, 137, 76,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 44, 144, 64, 76, 8, 6, 195, 76,
-			144, 64, 76, 6, 195, 12, 144, 64, 76, 6, 195, 84, 80, 64, 13, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 44, 145, 64, 76, 8,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 195, 44, 149, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 99, 0, 120, 0,
+			55, 39, 0, 0, 0, 0, 0, 14, 67, 77, 68, 128, 89, 47, 14, 16, 6, 35, 47, 39, 0, 0, 7, 196, 16, 85, 137, 76, 76, 0,
+			0, 0, 12, 3, 95, 56, 88, 6, 39, 49, 72, 36, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 57, 88, 50, 6, 108,
+			72, 36, 49, 0, 0, 0, 0, 6, 131, 196, 157, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196,
+			52, 85, 21, 76, 76, 0, 0, 0, 15, 4, 95, 15, 7, 15, 89, 40, 71, 107, 6, 39, 49, 35, 0, 0, 7, 196, 16, 85, 149, 76,
+			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 144, 72, 5, 194, 56, 80, 76, 0, 0, 0, 0, 0, 11, 67, 52, 18,
+			128, 65, 6, 110, 39, 2, 0, 0, 0, 0, 0, 7, 195, 65, 35, 192, 76, 8, 0, 6, 195, 20, 35, 5, 72, 16, 4, 95, 48, 77,
+			52, 72, 40, 37, 55, 37, 6, 39, 50, 39, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6, 39, 50, 39, 0, 0, 7,
+			195, 76, 83, 128, 76, 8, 16, 4, 95, 48, 77, 51, 65, 37, 55, 37, 6, 35, 34, 72, 39, 0, 0, 0, 12, 4, 95, 48, 77, 49,
+			65, 4, 37, 55, 10, 0, 0, 12, 4, 95, 2, 18, 22, 107, 6, 39, 49, 35, 0, 0, 0, 0, 0, 0, 13, 67, 52, 20, 128, 65,
+			6, 35, 14, 16, 47, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 72, 17, 66, 44, 208, 49, 6, 37,
+			55, 39, 65, 6, 36, 47, 20, 16, 112, 0, 0, 0, 0, 0, 0, 0, 6, 131, 197, 157, 9, 72, 0, 0, 19, 66, 65, 48, 48, 4,
+			39, 89, 47, 35, 89, 49, 14, 16, 6, 37, 71, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 80,
+			128, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 56, 144, 72, 0, 0, 0, 0, 0, 6, 195, 60, 226, 64, 72,
+			10, 67, 64, 194, 64, 48, 55, 4, 37, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 3, 9, 18, 114, 37, 51, 49, 40, 65, 83,
+			55, 6, 36, 49, 89, 35, 0, 0, 7, 195, 45, 83, 128, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 84, 128, 76, 8,
+			0, 0, 0, 0, 14, 4, 95, 19, 20, 11, 89, 47, 14, 16, 36, 49, 35, 0, 0, 0, 21, 4, 95, 1, 3, 21, 72, 36, 49, 89,
+			47, 14, 16, 35, 49, 6, 39, 51, 50, 35, 0, 0, 21, 3, 95, 194, 171, 72, 40, 6, 39, 71, 55, 35, 49, 14, 16, 6, 35, 65,
+			48, 39, 0, 0, 0, 0, 0, 0, 0, 15, 3, 20, 46, 5, 47, 37, 39, 4, 36, 89, 47, 35, 89, 0, 0, 10, 67, 64, 193, 74,
+			48, 55, 4, 111, 0, 0, 0, 13, 4, 95, 18, 14, 7, 51, 6, 37, 50, 81, 35, 0, 0, 0, 19, 3, 20, 46, 14, 47, 6, 37,
+			36, 55, 4, 50, 39, 65, 6, 35, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 19, 4, 95, 1, 3, 50, 72, 40, 39, 71, 55, 35, 49, 6, 39, 51, 50, 35, 0, 0, 0, 6, 195, 20, 177, 5, 8, 0,
+			0, 6, 195, 37, 32, 83, 76, 0, 0, 0, 0, 0, 15, 67, 60, 181, 0, 39, 49, 4, 47, 39, 71, 14, 16, 39, 0, 0, 0, 0,
+			0, 0, 0, 0, 27, 3, 95, 194, 187, 83, 6, 36, 51, 65, 35, 72, 40, 4, 39, 71, 55, 35, 49, 14, 16, 6, 35, 65, 48, 39,
+			0, 0, 0, 0, 0, 6, 195, 37, 34, 83, 76, 6, 194, 60, 192, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 194, 76, 80, 72, 8, 0, 7, 195, 76, 81, 0, 72, 8, 0, 0, 0, 0, 0, 0, 0, 6, 195, 37, 37, 83, 76,
+			0, 11, 5, 95, 35, 1, 10, 14, 2, 110, 50, 0, 0, 0, 0, 0, 13, 2, 194, 169, 49, 39, 48, 37, 51, 110, 47, 39, 0, 0,
+			0, 0, 0, 6, 195, 88, 144, 64, 76, 6, 195, 56, 144, 64, 76, 0, 7, 196, 36, 194, 65, 40, 76, 0, 0, 10, 2, 194, 176, 81,
+			34, 35, 72, 112, 0, 0, 0, 0, 6, 195, 56, 144, 74, 76, 0, 0, 0, 14, 4, 95, 3, 5, 4, 114, 36, 72, 6, 37, 55, 35,
+			0, 0, 0, 0, 16, 4, 95, 12, 9, 7, 55, 37, 81, 35, 47, 6, 40, 51, 35, 0, 0, 11, 3, 16, 196, 157, 48, 35, 75, 39,
+			0, 24, 0, 0, 10, 4, 95, 35, 1, 14, 2, 35, 50, 0, 0, 0, 0, 0, 9, 4, 95, 35, 1, 10, 2, 110, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72,
+			0, 0, 0, 0, 0, 0, 7, 196, 64, 245, 149, 76, 76, 6, 195, 21, 53, 9, 76, 0, 6, 195, 88, 144, 74, 76, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 8, 132, 12, 1, 197, 173, 76, 28, 0, 0, 0, 0, 0, 7, 196, 80, 19, 69, 56, 8, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 7, 131, 1, 197, 173, 72, 8, 0, 0, 0, 0, 0, 0, 7, 196, 64, 245, 137, 76, 76, 9, 2, 95,
+			34, 114, 37, 47, 39, 0, 0, 16, 2, 95, 33, 10, 49, 14, 16, 37, 89, 37, 81, 50, 39, 10, 0, 0, 0, 15, 67, 40, 19, 128,
+			37, 4, 35, 50, 40, 6, 35, 51, 39, 0, 16, 2, 95, 39, 35, 48, 39, 89, 47, 14, 16, 6, 39, 83, 39, 0, 0, 0, 0, 0,
+			7, 195, 17, 83, 64, 72, 8, 0, 15, 4, 95, 3, 1, 16, 65, 110, 4, 40, 89, 49, 55, 35, 0, 0, 21, 2, 95, 41, 83, 6,
+			36, 51, 65, 35, 48, 35, 34, 36, 50, 47, 6, 36, 88, 39, 0, 0, 21, 67, 24, 20, 133, 83, 35, 14, 16, 36, 2, 72, 6, 36,
+			0, 76, 28, 81, 100, 101, 32, 14, 2, 95, 40, 48, 35, 34, 36, 50, 47, 36, 88, 39, 0, 0, 7, 195, 64, 84, 128, 76, 28, 0,
+			11, 2, 95, 46, 48, 40, 50, 49, 47, 39, 0, 0, 18, 2, 95, 45, 72, 37, 84, 37, 72, 39, 89, 47, 14, 16, 36, 49, 39, 0,
+			0, 21, 67, 64, 84, 133, 48, 36, 14, 16, 36, 2, 72, 6, 36, 0, 76, 28, 81, 100, 101, 32, 9, 2, 95, 44, 49, 39, 65, 39,
+			0, 0, 10, 2, 95, 51, 47, 14, 34, 6, 37, 0, 0, 6, 195, 37, 35, 211, 76, 8, 2, 95, 50, 72, 6, 40, 0, 0, 9, 2,
+			95, 49, 6, 40, 50, 40, 0, 0, 8, 2, 95, 48, 50, 40, 55, 0, 0, 9, 2, 95, 55, 89, 6, 36, 48, 0, 0, 9, 2, 95,
+			54, 89, 6, 36, 89, 0, 0, 10, 2, 95, 53, 49, 84, 6, 37, 50, 0, 0, 10, 2, 95, 52, 49, 84, 6, 35, 51, 0, 0, 15,
+			2, 95, 59, 48, 40, 50, 49, 47, 39, 49, 39, 65, 39, 0, 0, 13, 2, 95, 58, 72, 40, 48, 40, 50, 49, 47, 39, 0, 0, 8,
+			2, 95, 57, 50, 6, 108, 0, 0, 8, 2, 95, 56, 6, 39, 49, 0, 0, 18, 67, 20, 182, 128, 36, 49, 88, 36, 65, 48, 55, 36,
+			0, 44, 81, 101, 32, 15, 67, 20, 182, 128, 36, 49, 88, 36, 65, 48, 55, 36, 0, 24, 17, 2, 95, 63, 72, 36, 65, 35, 50, 72,
+			39, 89, 37, 81, 50, 39, 0, 0, 24, 2, 95, 62, 83, 6, 36, 51, 65, 35, 35, 50, 81, 40, 55, 49, 14, 16, 6, 35, 65, 48,
+			39, 0, 0, 0, 18, 2, 95, 60, 35, 50, 81, 40, 55, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 16, 80, 192, 72, 36, 114, 36, 65, 71, 14, 16, 39, 0, 0, 7, 196, 64, 245, 143,
+			76, 76, 0, 0, 0, 0, 14, 4, 95, 4, 15, 20, 48, 6, 40, 50, 49, 47, 35, 0, 0, 0, 0, 19, 2, 95, 91, 51, 6, 36,
+			49, 47, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 12, 6, 95, 35, 45, 1, 10, 14, 2, 110, 50, 0, 0, 0, 8, 66, 88,
+			144, 84, 37, 0, 72, 5, 194, 84, 176, 17, 0, 15, 2, 95, 95, 89, 40, 71, 89, 47, 14, 16, 36, 49, 39, 0, 0, 0, 24, 2,
+			95, 93, 83, 6, 36, 51, 65, 35, 51, 36, 49, 47, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 6, 195, 36, 194, 65, 76, 0,
+			6, 195, 36, 194, 64, 72, 13, 67, 4, 178, 192, 35, 55, 37, 50, 39, 65, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			24, 4, 95, 7, 18, 22, 65, 35, 55, 72, 36, 49, 89, 47, 14, 16, 35, 49, 6, 39, 51, 50, 35, 0, 0, 0, 0, 0, 0, 7,
+			195, 16, 84, 192, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 95, 123, 49, 6, 40, 51, 71, 35, 49, 14, 16, 6, 35, 65,
+			48, 39, 0, 15, 4, 95, 4, 9, 1, 72, 40, 48, 40, 50, 49, 47, 35, 0, 0, 0, 0, 0, 0, 0, 24, 2, 95, 125, 83, 6,
+			36, 51, 65, 35, 49, 40, 51, 71, 35, 49, 14, 16, 6, 35, 65, 48, 39, 0, 0, 0, 0, 0, 0, 8, 132, 196, 137, 1, 18, 72,
+			8, 0, 0, 0, 0, 0, 0, 7, 196, 44, 149, 74, 56, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4,
+			95, 35, 51, 50, 89, 48, 6, 35, 114, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 196, 157, 9, 1, 76, 9, 4, 95, 35, 45, 1, 2, 35, 0,
+			0, 0, 9, 197, 65, 33, 84, 21, 32, 76, 28, 0, 10, 3, 9, 46, 1, 6, 37, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 132, 196, 157, 9, 19, 76, 8, 0, 0, 0, 0, 0, 0, 7, 195, 44, 145, 76, 76, 8, 0, 7, 196, 21, 53, 15,
+			76, 76, 0, 0, 0, 7, 195, 44, 144, 64, 76, 8, 6, 195, 76, 144, 64, 76, 6, 195, 12, 144, 64, 76, 6, 195, 84, 80, 64, 17,
+			0, 0, 0, 0, 0, 0, 6, 195, 76, 144, 74, 76, 6, 195, 12, 144, 74, 76, 0, 0, 7, 195, 44, 145, 64, 76, 8, 0, 0, 0,
+			0, 0, 7, 196, 21, 53, 1, 76, 76, 0, 0, 0, 0, 0, 0, 7, 195, 44, 144, 77, 76, 8, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 44, 149, 78, 8, 0, 0, 0, 0, 7, 195, 44, 149, 74, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 5, 196, 137,
+			28, 0, 7, 195, 44, 149, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 99, 0, 120, 0,
 			9, 1, 0, 0, 103, 0, 120, 0, 29, 1, 0, 0, 104, 0, 120, 0, 37, 1, 0, 0, 106, 0, 120, 0, 53, 1, 0, 0, 115, 0,
 			120, 0, 93, 1, 0, 0, 117, 0, 120, 0, 109, 1, 0, 0, 0, 0, 0, 0, 6, 97, 0, 4, 3, 35, 0, 8, 2, 32, 0, 197,
 			173, 3, 108, 0, 106, 3, 110, 0, 7, 6, 98, 0, 3, 71, 0, 8, 2, 32, 3, 71, 39, 0, 7, 6, 99, 0, 4, 104, 1, 25,
@@ -16976,13184 +15308,5025 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			39, 0, 7, 6, 120, 0, 8, 2, 32, 3, 37, 49, 89, 39, 0, 3, 49, 89, 0, 8, 3, 88, 0, 7, 6, 121, 0, 1, 25, 2,
 			25, 3, 37, 0, 8, 2, 32, 3, 37, 48, 89, 37, 55, 39, 50, 39, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 8, 2, 32,
 			3, 88, 39, 0, 7, 6, 0, 4, 39, 3, 0, 4, 45, 1, 45, 45, 3, 0, 4, 45, 2, 32, 97, 3, 0, 46, 1, 46, 3, 0,
-			39, 1, 17, 67, 2, 32, 3, 8, 0, 46, 2, 46, 3, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32,
-			17, 67, 2, 32, 15, 0, 194, 163, 2, 32, 15, 3, 10, 48, 40, 50, 72, 112, 9, 0, 36, 2, 32, 15, 3, 10, 72, 39, 55, 35,
-			51, 112, 9, 0, 46, 3, 48, 40, 50, 49, 47, 39, 0, 194, 163, 3, 48, 40, 50, 72, 39, 0, 43, 3, 48, 55, 40, 89, 10, 0,
-			43, 43, 8, 2, 32, 3, 48, 55, 40, 89, 48, 55, 40, 89, 0, 197, 173, 3, 58, 0, 197, 173, 8, 2, 32, 3, 58, 39, 0, 4,
-			45, 3, 65, 37, 50, 40, 89, 10, 0, 45, 8, 32, 2, 32, 15, 0, 36, 3, 72, 39, 55, 35, 51, 39, 0, 196, 157, 3, 75, 0,
-			196, 157, 8, 2, 32, 3, 75, 39, 0, 196, 137, 3, 76, 0, 196, 137, 8, 2, 32, 3, 76, 39, 0, 45, 1, 32, 15, 2, 32, 15,
-			3, 89, 47, 14, 16, 36, 49, 6, 36, 47, 39, 10, 0, 196, 181, 3, 90, 0, 196, 181, 8, 2, 32, 3, 90, 39, 0, 197, 157, 3,
-			91, 0, 197, 157, 8, 2, 32, 3, 91, 39, 0, 196, 165, 3, 101, 0, 196, 165, 8, 2, 32, 3, 101, 39, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts15 = FileInMemory_createWithData (4677, reinterpret_cast<const char *> (&espeakdata_dicts15_data), 
-			U"espeak-1.48.04-source/espeak-data/eo_dict", 
+			46, 2, 46, 3, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 194, 163, 2,
+			32, 15, 3, 10, 48, 40, 50, 72, 112, 9, 0, 36, 2, 32, 15, 3, 10, 72, 39, 55, 35, 51, 112, 9, 0, 46, 3, 48, 40, 50,
+			49, 47, 39, 0, 194, 163, 3, 48, 40, 50, 72, 39, 0, 43, 3, 48, 55, 40, 89, 10, 0, 43, 43, 8, 2, 32, 3, 48, 55, 40,
+			89, 48, 55, 40, 89, 0, 197, 173, 3, 58, 0, 197, 173, 8, 2, 32, 3, 58, 39, 0, 4, 45, 3, 65, 37, 50, 40, 89, 10, 0,
+			45, 8, 32, 2, 32, 15, 0, 36, 3, 72, 39, 55, 35, 51, 39, 0, 196, 157, 3, 75, 0, 196, 157, 8, 2, 32, 3, 75, 39, 0,
+			196, 137, 3, 76, 0, 196, 137, 8, 2, 32, 3, 76, 39, 0, 45, 1, 32, 15, 2, 32, 15, 3, 89, 47, 14, 16, 36, 49, 6, 36,
+			47, 39, 10, 0, 196, 181, 3, 90, 0, 196, 181, 8, 2, 32, 3, 90, 39, 0, 197, 157, 3, 91, 0, 197, 157, 8, 2, 32, 3, 91,
+			39, 0, 196, 165, 3, 101, 0, 196, 165, 8, 2, 32, 3, 101, 39, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts15 = FileInMemory_createWithData (4668, reinterpret_cast<const char *> (&espeakdata_dicts15_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/eo_dict", 
 			U"eo");
-		my addItem_move (espeakdata_dicts15.move());
+		Collection_addItem (me.peek(), espeakdata_dicts15.transfer());
 
-		static unsigned char espeakdata_dicts16_data[6112] = {
-			0, 4, 0, 0, 212, 18, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 12, 68, 5, 4, 12, 20, 6, 35, 48, 13, 55, 0,
-			0, 13, 69, 37, 2, 15, 56, 80, 6, 117, 83, 39, 50, 0, 19, 67, 17, 5, 15, 100, 101, 112, 97, 114, 116, 97, 109, 101, 110, 116,
-			111, 0, 29, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12, 87, 36, 0, 8, 197, 13, 80, 78, 80, 240, 76, 0,
-			0, 6, 195, 69, 81, 64, 76, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 16, 70, 24, 16, 197, 8, 243, 203, 83, 6, 118, 89, 71,
-			40, 49, 0, 6, 195, 76, 147, 128, 76, 0, 11, 4, 95, 100, 112, 116, 49, 39, 65, 35, 0, 0, 18, 65, 20, 6, 37, 89, 48, 6,
-			37, 49, 0, 81, 115, 112, 101, 97, 107, 32, 5, 193, 20, 76, 46, 0, 0, 0, 0, 7, 65, 24, 109, 83, 36, 0, 0, 0, 13, 68,
-			64, 245, 197, 72, 48, 6, 35, 58, 36, 34, 0, 0, 0, 6, 65, 28, 101, 36, 0, 0, 0, 0, 0, 7, 65, 32, 35, 76, 36, 0,
-			0, 0, 0, 15, 1, 35, 35, 55, 65, 110, 35, 86, 6, 37, 98, 35, 0, 27, 0, 14, 65, 36, 6, 117, 48, 39, 72, 0, 81, 112,
-			111, 100, 32, 16, 65, 36, 6, 117, 83, 39, 50, 0, 81, 112, 104, 111, 110, 101, 32, 0, 15, 1, 37, 48, 110, 34, 87, 57, 6, 109,
-			50, 47, 39, 0, 27, 0, 17, 65, 112, 6, 35, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 14, 1, 38, 35, 65, 48, 109,
-			34, 89, 6, 35, 50, 47, 0, 0, 0, 8, 65, 40, 101, 110, 47, 35, 0, 0, 0, 6, 195, 64, 244, 128, 76, 15, 1, 42, 35, 89,
-			47, 109, 34, 6, 37, 89, 49, 39, 0, 27, 0, 9, 1, 43, 65, 6, 35, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 10,
-			1, 46, 48, 40, 50, 47, 39, 0, 27, 0, 9, 1, 47, 71, 35, 51, 52, 35, 0, 0, 7, 65, 48, 109, 55, 36, 0, 16, 4, 95,
-			100, 105, 97, 72, 57, 6, 109, 34, 36, 89, 37, 89, 0, 0, 0, 10, 67, 40, 21, 211, 75, 6, 39, 89, 0, 0, 0, 7, 65, 52,
-			109, 65, 36, 0, 0, 0, 0, 0, 17, 70, 32, 20, 132, 92, 20, 133, 107, 6, 35, 34, 72, 58, 36, 34, 0, 17, 70, 76, 241, 148,
-			92, 20, 133, 89, 6, 39, 83, 47, 58, 36, 34, 0, 7, 65, 56, 109, 50, 36, 0, 0, 0, 0, 0, 4, 193, 60, 76, 0, 11, 1,
-			61, 37, 100, 58, 6, 35, 55, 0, 27, 0, 0, 0, 6, 65, 64, 48, 36, 0, 11, 1, 64, 35, 51, 52, 6, 39, 82, 35, 0, 0,
-			0, 0, 0, 6, 65, 68, 49, 40, 0, 0, 0, 0, 0, 7, 65, 72, 109, 34, 36, 0, 0, 0, 0, 13, 4, 95, 100, 111, 116, 48,
-			6, 40, 50, 47, 39, 0, 0, 7, 65, 76, 109, 89, 36, 0, 0, 16, 70, 77, 0, 78, 37, 50, 0, 89, 48, 6, 35, 50, 37, 91,
-			0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 4, 193, 84, 76, 0, 0, 0, 0, 7, 65, 88, 40, 82, 36, 0, 0,
-			0, 9, 198, 89, 81, 83, 81, 32, 83, 76, 9, 198, 57, 81, 83, 81, 32, 83, 76, 0, 18, 4, 95, 49, 77, 52, 6, 40, 50, 71,
-			37, 57, 12, 6, 110, 50, 0, 102, 16, 4, 95, 49, 77, 52, 6, 40, 50, 71, 37, 98, 6, 110, 50, 0, 0, 14, 65, 92, 40, 82,
-			36, 15, 72, 6, 110, 82, 55, 36, 0, 0, 0, 16, 1, 94, 87, 37, 34, 49, 40, 65, 83, 55, 6, 36, 101, 39, 0, 0, 0, 8,
-			65, 96, 109, 49, 37, 89, 0, 0, 18, 4, 95, 49, 77, 50, 6, 40, 50, 65, 37, 57, 12, 6, 110, 50, 0, 102, 16, 4, 95, 49,
-			77, 50, 6, 40, 50, 65, 37, 98, 6, 110, 50, 0, 0, 0, 0, 6, 65, 100, 2, 37, 0, 0, 18, 68, 37, 164, 68, 4, 105, 122,
-			113, 117, 105, 101, 114, 100, 97, 0, 24, 29, 0, 6, 195, 48, 244, 192, 76, 0, 0, 8, 65, 104, 87, 109, 47, 35, 0, 0, 0, 0,
-			9, 198, 89, 81, 83, 81, 32, 64, 76, 9, 198, 57, 81, 83, 81, 32, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
-			4, 95, 48, 67, 111, 87, 109, 50, 47, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 24, 5, 101, 101, 46, 117, 117, 109,
-			89, 47, 6, 35, 86, 39, 89, 15, 40, 50, 6, 37, 86, 39, 89, 0, 0, 16, 4, 95, 51, 88, 111, 47, 34, 37, 101, 6, 109, 89,
-			37, 65, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 240, 146, 20, 76,
-			0, 16, 67, 77, 32, 64, 115, 101, 195, 177, 111, 114, 97, 0, 41, 24, 29, 0, 0, 0, 7, 196, 20, 229, 18, 20, 76, 0, 0, 0,
-			0, 0, 0, 12, 4, 95, 49, 67, 48, 87, 57, 6, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			69, 54, 38, 9, 12, 240, 65, 6, 109, 101, 37, 49, 39, 0, 0, 0, 0, 0, 13, 69, 77, 1, 69, 12, 128, 89, 48, 6, 37, 76,
-			0, 0, 19, 71, 52, 84, 211, 20, 225, 197, 72, 65, 6, 36, 89, 36, 50, 75, 36, 34, 0, 0, 0, 0, 0, 0, 0, 20, 71, 52,
-			144, 210, 61, 51, 198, 80, 65, 6, 117, 49, 34, 39, 89, 39, 83, 47, 0, 0, 14, 66, 17, 32, 100, 111, 99, 116, 111, 114, 0, 41,
-			24, 29, 0, 0, 0, 10, 67, 25, 33, 69, 83, 34, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 95, 111, 114, 100, 39, 0,
-			0, 0, 14, 4, 95, 109, 99, 110, 65, 35, 49, 34, 6, 110, 50, 0, 0, 16, 4, 95, 49, 67, 111, 87, 109, 50, 47, 6, 109, 89,
-			37, 65, 0, 0, 0, 16, 70, 81, 114, 84, 80, 84, 128, 47, 58, 6, 37, 47, 36, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 76, 0, 0, 0, 6, 195, 16, 83, 0, 76,
-			0, 0, 0, 11, 67, 81, 114, 84, 47, 58, 6, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 12, 128, 76, 36,
-			0, 5, 194, 4, 192, 76, 0, 0, 0, 0, 0, 14, 69, 12, 132, 143, 52, 80, 49, 34, 6, 39, 58, 65, 0, 19, 4, 95, 49, 57,
-			111, 86, 36, 87, 37, 65, 39, 50, 39, 82, 6, 36, 50, 0, 0, 0, 0, 12, 68, 76, 182, 80, 20, 89, 49, 6, 117, 48, 0, 0,
-			0, 0, 0, 0, 17, 65, 136, 6, 36, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70,
-			4, 225, 18, 60, 145, 0, 6, 35, 50, 72, 34, 120, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 49, 56, 111, 86,
-			36, 87, 37, 65, 110, 49, 47, 6, 35, 82, 0, 0, 0, 15, 69, 21, 52, 5, 4, 176, 6, 37, 89, 48, 6, 37, 49, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 15, 4, 95, 49, 49, 111, 40, 50, 72, 6, 109, 87, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67,
-			21, 145, 83, 6, 117, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 49, 51, 111, 86, 36, 87, 37, 65, 39, 47, 109, 34,
-			87, 6, 109, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 48, 111, 86, 6, 109, 87, 37, 65, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 18, 4, 95, 49, 53, 111, 86, 36, 87, 37, 65, 39, 49, 6, 37, 50, 47, 0, 0, 0, 0, 11, 67, 37, 3, 196,
-			6, 117, 48, 39, 72, 0, 0, 17, 65, 148, 6, 37, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 0, 9, 3, 226, 130,
-			172, 115, 34, 39, 0, 0, 0, 16, 4, 95, 49, 50, 111, 86, 58, 39, 86, 6, 109, 87, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-			9, 198, 89, 81, 83, 81, 35, 192, 76, 9, 198, 57, 81, 83, 81, 35, 192, 76, 0, 20, 4, 95, 49, 55, 111, 86, 36, 87, 37, 65,
-			39, 89, 6, 109, 48, 47, 37, 65, 0, 14, 4, 95, 111, 103, 111, 49, 39, 55, 6, 37, 47, 35, 0, 0, 0, 0, 0, 7, 195, 8,
-			18, 143, 76, 46, 0, 0, 0, 0, 19, 4, 95, 49, 52, 111, 86, 36, 87, 37, 65, 39, 49, 58, 6, 35, 34, 47, 0, 0, 0, 18,
-			70, 20, 225, 204, 37, 50, 0, 195, 173, 110, 103, 108, 105, 115, 104, 0, 29, 0, 0, 9, 198, 52, 145, 78, 81, 32, 83, 76, 0, 5,
-			194, 20, 192, 76, 0, 12, 3, 95, 50, 48, 71, 6, 118, 50, 47, 36, 0, 0, 0, 0, 0, 6, 195, 48, 20, 192, 76, 0, 0, 0,
-			13, 4, 95, 98, 114, 118, 71, 34, 6, 36, 82, 36, 0, 0, 6, 195, 64, 20, 129, 76, 0, 0, 19, 4, 95, 49, 54, 111, 86, 36,
-			87, 37, 65, 39, 89, 6, 109, 49, 89, 47, 0, 0, 20, 4, 95, 97, 99, 50, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86,
-			39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 95, 48, 77, 49, 111, 65, 37, 55, 6, 109, 89, 37, 65, 0,
-			0, 0, 0, 19, 4, 95, 55, 88, 111, 89, 109, 48, 47, 58, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0, 5, 194, 20,
-			224, 76, 0, 13, 3, 95, 51, 88, 47, 34, 6, 118, 50, 47, 35, 0, 0, 0, 0, 0, 16, 67, 17, 32, 64, 100, 111, 99, 116, 111,
-			114, 97, 0, 41, 24, 29, 0, 7, 196, 32, 20, 212, 4, 76, 0, 0, 0, 0, 13, 3, 95, 49, 67, 87, 57, 6, 36, 50, 47, 39,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 16, 76, 8, 4, 95, 35, 194, 170, 35, 0, 0, 0, 17, 3, 95, 50, 67, 72, 39, 89,
-			87, 57, 6, 36, 50, 47, 39, 89, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 110, 50, 87, 36, 0, 0, 0, 18, 3,
-			95, 51, 67, 47, 34, 36, 89, 87, 57, 6, 36, 50, 47, 39, 89, 0, 12, 3, 95, 49, 51, 47, 34, 6, 36, 87, 36, 0, 0, 11,
-			3, 95, 49, 50, 72, 6, 39, 87, 36, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37, 50, 87, 36, 0, 0, 14, 3, 95, 49, 52, 49,
-			35, 47, 6, 110, 34, 87, 36, 0, 0, 0, 0, 23, 68, 21, 128, 205, 60, 101, 120, 99, 101, 108, 101, 110, 116, 195, 173, 115, 105, 109,
-			111, 0, 24, 29, 8, 4, 95, 35, 194, 186, 39, 0, 0, 14, 3, 95, 55, 88, 89, 109, 47, 6, 109, 50, 47, 35, 0, 0, 20, 3,
-			95, 52, 67, 49, 58, 35, 47, 34, 39, 87, 57, 6, 36, 50, 47, 39, 89, 0, 0, 0, 0, 0, 13, 3, 95, 49, 111, 48, 34, 37,
-			65, 6, 109, 34, 0, 0, 0, 0, 0, 16, 3, 95, 53, 67, 49, 37, 50, 57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 13, 4,
-			95, 97, 99, 117, 35, 100, 6, 40, 86, 39, 0, 0, 13, 3, 95, 50, 111, 89, 36, 100, 6, 40, 50, 72, 0, 0, 0, 0, 11, 3,
-			95, 49, 88, 72, 57, 6, 109, 87, 0, 0, 17, 3, 95, 54, 67, 89, 118, 89, 87, 57, 6, 36, 50, 47, 39, 89, 0, 0, 0, 0,
-			0, 13, 3, 95, 51, 111, 47, 109, 34, 87, 6, 109, 34, 0, 0, 0, 0, 10, 3, 95, 50, 88, 71, 118, 50, 47, 0, 0, 19, 3,
-			95, 55, 67, 89, 4, 36, 47, 36, 87, 57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56, 67,
-			39, 76, 39, 87, 57, 6, 36, 50, 47, 39, 89, 0, 0, 0, 0, 0, 10, 3, 95, 53, 111, 49, 37, 50, 47, 0, 14, 3, 95, 63,
-			63, 89, 6, 37, 65, 71, 110, 55, 39, 0, 0, 0, 0, 15, 3, 95, 52, 88, 49, 58, 35, 34, 6, 109, 50, 47, 35, 0, 0, 19,
-			3, 95, 57, 67, 50, 4, 110, 82, 36, 87, 57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 10, 67, 48, 149, 133, 55, 6, 117, 82,
-			0, 13, 4, 100, 195, 177, 97, 100, 111, 195, 177, 97, 0, 29, 7, 195, 4, 229, 5, 76, 46, 0, 12, 3, 95, 54, 111, 89, 6, 109,
-			49, 89, 47, 0, 0, 0, 16, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 111, 0, 24, 29, 5, 194, 48, 80, 76, 0, 16, 3,
-			95, 53, 88, 87, 37, 50, 49, 58, 6, 109, 50, 47, 35, 0, 0, 0, 13, 4, 95, 114, 110, 103, 35, 50, 6, 37, 98, 39, 0, 0,
-			0, 0, 12, 3, 95, 55, 111, 89, 6, 109, 47, 37, 65, 0, 0, 6, 195, 64, 84, 143, 76, 0, 0, 14, 3, 95, 54, 88, 89, 109,
-			89, 6, 109, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 57, 111, 50, 39, 82, 6, 36,
-			50, 0, 0, 0, 0, 13, 3, 95, 56, 88, 110, 76, 6, 109, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 52, 80, 76,
-			46, 0, 14, 3, 95, 57, 88, 50, 110, 82, 6, 109, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
-			65, 168, 6, 40, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 12, 3, 95, 52, 111, 49, 58, 6, 35, 34, 47, 0, 0, 13,
-			4, 95, 115, 116, 107, 71, 6, 35, 51, 52, 35, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 28, 243, 199, 48, 80, 81, 6, 40, 81,
-			13, 55, 0, 0, 0, 0, 7, 196, 16, 84, 196, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3,
-			109, 194, 170, 109, 97, 114, 195, 173, 97, 0, 41, 24, 29, 0, 20, 65, 172, 6, 40, 15, 49, 39, 50, 15, 72, 57, 6, 109, 34, 109,
-			89, 37, 89, 0, 5, 194, 61, 48, 76, 19, 4, 95, 99, 105, 114, 87, 37, 34, 49, 40, 65, 83, 55, 6, 36, 101, 39, 0, 0, 0,
-			18, 4, 95, 48, 77, 52, 10, 71, 37, 57, 12, 6, 39, 50, 109, 89, 0, 102, 16, 4, 95, 48, 77, 52, 10, 71, 37, 98, 6, 39,
-			50, 109, 89, 0, 0, 0, 12, 3, 95, 56, 111, 110, 49, 47, 6, 35, 82, 0, 17, 4, 95, 48, 77, 50, 65, 37, 57, 12, 6, 39,
-			50, 36, 89, 0, 102, 15, 4, 95, 48, 77, 50, 65, 37, 98, 6, 39, 50, 36, 89, 0, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65,
-			6, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 108, 105, 103, 55, 37, 100, 35, 86, 6, 40, 34, 35, 0,
-			0, 0, 0, 0, 17, 67, 77, 32, 83, 115, 101, 195, 177, 111, 114, 97, 115, 0, 41, 24, 29, 6, 195, 81, 32, 83, 76, 0, 0, 0,
-			5, 194, 52, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 50, 88, 111, 82, 37, 101, 6, 109, 89, 37, 65, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 66, 48, 192, 6, 109, 61, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
-			4, 95, 99, 101, 100, 87, 36, 86, 6, 37, 98, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 99, 97,
-			112, 65, 6, 35, 98, 40, 89, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 148, 192, 76, 0, 0, 0, 0, 6, 195, 56, 244, 192,
-			76, 0, 0, 0, 0, 7, 196, 69, 82, 69, 56, 76, 20, 4, 95, 100, 97, 99, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86,
-			39, 0, 0, 0, 0, 19, 3, 95, 195, 179, 6, 39, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 25, 3, 95, 194, 171, 49,
-			39, 65, 6, 37, 98, 35, 89, 15, 37, 87, 49, 98, 6, 109, 34, 86, 35, 89, 0, 0, 17, 67, 77, 33, 83, 115, 101, 195, 177, 111,
-			114, 101, 115, 0, 41, 24, 29, 0, 0, 0, 5, 194, 48, 240, 76, 0, 0, 0, 0, 0, 0, 23, 3, 95, 194, 161, 35, 82, 34, 6,
-			37, 34, 35, 86, 65, 37, 34, 35, 87, 57, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			16, 70, 52, 246, 137, 48, 192, 64, 65, 39, 87, 6, 37, 55, 35, 0, 0, 0, 14, 66, 77, 32, 115, 101, 195, 177, 111, 114, 0, 41,
-			24, 29, 0, 19, 67, 65, 65, 64, 112, 114, 101, 115, 105, 100, 101, 110, 116, 101, 0, 41, 24, 29, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 9, 198, 69, 82, 69, 56, 84, 192, 76, 5, 131, 239, 187, 191, 0, 0, 0, 0, 27, 3, 95, 194, 191, 35, 82, 34, 6,
-			37, 34, 37, 50, 47, 109, 51, 52, 4, 39, 100, 35, 87, 57, 6, 110, 50, 0, 0, 0, 0, 0, 23, 3, 95, 194, 187, 49, 39, 65,
-			6, 37, 98, 35, 89, 15, 72, 109, 34, 6, 109, 76, 35, 89, 0, 0, 0, 0, 0, 19, 71, 20, 195, 209, 84, 83, 131, 20, 6, 36,
-			55, 39, 49, 58, 36, 50, 89, 0, 0, 0, 0, 0, 12, 68, 88, 242, 67, 20, 98, 111, 105, 115, 0, 29, 13, 4, 95, 103, 114, 118,
-			81, 34, 6, 35, 82, 36, 0, 0, 17, 67, 37, 164, 64, 105, 122, 113, 117, 105, 101, 114, 100, 97, 0, 24, 29, 6, 195, 77, 84, 192,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 89, 109, 49, 87, 57, 6, 110, 50, 0, 0, 5, 194, 76, 80, 76,
-			0, 0, 0, 11, 2, 194, 163, 55, 37, 82, 34, 35, 89, 0, 0, 0, 0, 0, 0, 5, 194, 77, 80, 76, 0, 19, 4, 95, 52, 88,
-			111, 49, 58, 35, 86, 34, 35, 101, 6, 109, 89, 37, 65, 0, 0, 6, 2, 194, 170, 35, 0, 0, 0, 0, 14, 2, 194, 169, 49, 39,
-			48, 37, 51, 52, 6, 117, 47, 0, 0, 13, 2, 194, 182, 48, 6, 35, 51, 52, 35, 83, 39, 0, 0, 7, 196, 48, 147, 149, 96, 65,
-			0, 0, 0, 0, 0, 11, 2, 194, 176, 81, 34, 35, 72, 39, 89, 0, 0, 0, 0, 0, 7, 196, 32, 16, 201, 4, 76, 0, 0, 6,
-			2, 194, 186, 39, 0, 0, 0, 0, 8, 2, 195, 177, 109, 67, 36, 0, 0, 0, 23, 73, 80, 133, 78, 16, 84, 130, 37, 33, 0, 47,
-			6, 35, 50, 72, 36, 34, 71, 37, 34, 72, 0, 18, 3, 194, 186, 102, 81, 34, 6, 35, 72, 39, 89, 15, 6, 109, 83, 36, 0, 0,
-			5, 194, 80, 80, 76, 0, 0, 0, 0, 17, 3, 194, 186, 99, 81, 34, 6, 35, 72, 39, 89, 15, 87, 6, 36, 0, 0, 0, 0, 0,
-			5, 194, 81, 80, 76, 0, 0, 0, 0, 17, 3, 194, 186, 107, 81, 34, 6, 35, 72, 39, 89, 15, 49, 6, 35, 0, 0, 0, 0, 0,
-			13, 66, 84, 64, 117, 115, 116, 101, 100, 0, 41, 24, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 64, 244, 145, 84, 80, 76,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 76, 0, 0, 0, 0, 0, 20, 67, 36, 195, 79, 105, 108, 117, 115, 116, 114, 195, 173,
-			115, 105, 109, 111, 0, 24, 29, 0, 0, 15, 69, 92, 147, 132, 61, 112, 58, 6, 37, 50, 72, 39, 58, 0, 0, 0, 19, 4, 95, 53,
-			88, 111, 49, 37, 50, 49, 58, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 243, 79, 76, 0, 0,
-			0, 7, 196, 16, 243, 132, 20, 76, 0, 13, 69, 60, 97, 137, 12, 80, 6, 39, 83, 37, 89, 0, 0, 0, 0, 0, 8, 197, 5, 83,
-			145, 84, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 49, 39, 65, 6, 37, 98, 35,
-			89, 0, 0, 23, 2, 95, 33, 87, 109, 51, 52, 6, 35, 34, 35, 86, 65, 37, 34, 35, 87, 57, 6, 110, 50, 0, 0, 0, 6, 195,
-			12, 243, 128, 76, 15, 2, 95, 39, 35, 48, 110, 89, 47, 34, 6, 39, 83, 39, 0, 0, 0, 0, 0, 19, 2, 95, 43, 89, 6, 37,
-			100, 50, 110, 72, 36, 89, 40, 65, 6, 35, 34, 0, 0, 0, 23, 2, 95, 41, 87, 57, 4, 109, 51, 52, 35, 48, 35, 34, 6, 109,
-			50, 47, 36, 89, 37, 89, 0, 0, 21, 2, 95, 40, 4, 35, 82, 34, 36, 48, 35, 34, 6, 109, 50, 47, 36, 89, 37, 89, 0, 0,
-			10, 2, 95, 47, 71, 35, 51, 52, 35, 0, 0, 10, 2, 95, 46, 48, 40, 50, 47, 39, 0, 0, 9, 2, 95, 45, 81, 98, 110, 50,
-			0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 10, 2, 95, 51, 47, 34, 6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 110,
-			89, 0, 0, 9, 2, 95, 49, 6, 40, 50, 39, 0, 0, 10, 2, 95, 48, 87, 6, 36, 34, 39, 0, 0, 11, 2, 95, 55, 89, 57,
-			6, 36, 47, 36, 0, 0, 9, 2, 95, 54, 89, 6, 118, 89, 0, 0, 11, 2, 95, 53, 87, 6, 37, 50, 49, 39, 0, 0, 12, 2,
-			95, 52, 49, 58, 6, 35, 47, 34, 39, 0, 0, 17, 2, 95, 59, 48, 4, 40, 50, 47, 39, 37, 49, 6, 39, 65, 35, 0, 0, 16,
-			2, 95, 58, 72, 4, 110, 89, 48, 6, 40, 50, 47, 110, 89, 0, 0, 11, 2, 95, 57, 50, 58, 6, 36, 82, 36, 0, 0, 9, 2,
-			95, 56, 6, 110, 76, 39, 0, 0, 27, 2, 95, 63, 87, 109, 51, 52, 6, 35, 34, 37, 50, 47, 109, 51, 52, 4, 39, 100, 35, 87,
-			57, 6, 110, 50, 0, 0, 13, 2, 95, 62, 65, 35, 98, 6, 110, 34, 49, 36, 0, 0, 0, 13, 2, 95, 60, 65, 36, 50, 6, 110,
-			34, 49, 36, 0, 0, 0, 0, 18, 4, 95, 54, 88, 111, 89, 36, 100, 89, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0,
-			18, 68, 37, 164, 68, 60, 105, 122, 113, 117, 105, 101, 114, 100, 111, 0, 24, 29, 0, 17, 70, 64, 192, 84, 24, 244, 141, 48, 55, 6,
-			35, 47, 83, 39, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 67, 36, 195, 65, 105, 108, 117, 115, 116, 114, 195,
-			173, 115, 105, 109, 97, 0, 24, 29, 0, 0, 0, 9, 198, 88, 145, 84, 56, 19, 64, 66, 0, 18, 2, 95, 91, 4, 35, 82, 34, 36,
-			49, 110, 34, 76, 6, 36, 47, 36, 0, 0, 0, 0, 7, 66, 88, 144, 71, 37, 0, 0, 7, 195, 16, 226, 64, 13, 42, 15, 2, 95,
-			95, 89, 40, 82, 34, 35, 98, 6, 35, 86, 39, 0, 0, 0, 20, 2, 95, 93, 87, 57, 4, 109, 51, 52, 35, 49, 110, 34, 76, 6,
-			36, 47, 36, 0, 0, 21, 2, 95, 92, 71, 6, 35, 51, 52, 35, 37, 65, 71, 109, 34, 47, 6, 37, 86, 35, 0, 0, 0, 0, 6,
-			2, 95, 97, 35, 0, 0, 10, 67, 40, 22, 154, 75, 6, 35, 89, 0, 18, 2, 95, 96, 35, 87, 6, 109, 50, 47, 110, 81, 34, 6,
-			35, 82, 36, 0, 0, 0, 0, 6, 2, 95, 101, 36, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 111, 39, 0, 0, 0, 0, 0, 6,
-			195, 48, 84, 192, 76, 0, 0, 13, 4, 95, 104, 97, 99, 49, 35, 34, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 15, 2, 95, 123,
-			4, 35, 82, 34, 36, 98, 6, 35, 82, 36, 0, 0, 0, 13, 2, 95, 121, 37, 81, 34, 37, 6, 36, 100, 35, 0, 0, 0, 0, 0,
-			17, 2, 95, 125, 87, 57, 4, 109, 51, 52, 35, 98, 6, 35, 82, 36, 0, 0, 0, 17, 70, 24, 148, 133, 24, 246, 0, 83, 6, 117,
-			34, 83, 39, 49, 89, 0, 0, 0, 9, 5, 95, 48, 97, 110, 100, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 35, 51, 50, 109, 89, 48, 6, 35, 87, 57, 39, 0, 0, 0, 0, 0, 0, 0, 17,
-			70, 92, 147, 132, 61, 116, 192, 58, 6, 37, 50, 72, 39, 58, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 195, 81, 84, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 89, 81, 83, 81, 35, 211, 76,
-			9, 198, 57, 81, 83, 81, 35, 211, 76, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 56, 88, 111, 110, 49, 47, 39, 101, 6, 109,
-			89, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 76, 84, 150, 36, 49, 64, 89, 6, 36, 34, 82,
-			37, 89, 0, 0, 0, 23, 68, 21, 128, 205, 4, 101, 120, 99, 101, 108, 101, 110, 116, 195, 173, 115, 105, 109, 97, 0, 24, 29, 0, 0,
-			0, 18, 67, 77, 37, 1, 115, 101, 195, 177, 111, 114, 105, 116, 97, 0, 41, 24, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 84, 68, 192, 117, 115, 116, 101, 100, 101, 115, 0,
-			41, 24, 29, 0, 0, 0, 0, 8, 197, 13, 80, 78, 16, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
-			4, 95, 57, 88, 111, 50, 39, 50, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 6, 18, 66, 108, 0, 114, 0, 121, 0, 7,
-			6, 18, 67, 98, 0, 100, 0, 103, 0, 110, 0, 109, 0, 7, 6, 18, 68, 102, 0, 104, 0, 106, 0, 114, 0, 115, 0, 121, 0, 122,
-			0, 7, 6, 18, 69, 98, 0, 118, 0, 102, 0, 112, 0, 7, 6, 18, 70, 103, 0, 107, 0, 7, 6, 18, 71, 106, 0, 119, 0, 108,
-			0, 114, 0, 98, 0, 100, 0, 103, 0, 110, 0, 109, 0, 112, 0, 116, 0, 107, 0, 99, 0, 7, 6, 97, 0, 117, 2, 32, 3, 6,
-			114, 0, 121, 2, 32, 3, 6, 117, 0, 3, 35, 0, 117, 3, 114, 0, 4, 105, 3, 117, 0, 121, 2, 25, 0, 7, 6, 98, 0, 4,
-			3, 71, 0, 1, 109, 0, 1, 110, 0, 2, 105, 17, 65, 0, 2, 117, 17, 65, 0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65,
-			0, 8, 2, 28, 1, 0, 4, 2, 17, 65, 3, 82, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 7, 6, 99, 0, 4, 3, 49, 0,
-			8, 2, 18, 66, 17, 65, 0, 107, 1, 17, 65, 0, 4, 104, 3, 76, 0, 104, 8, 0, 2, 17, 71, 3, 87, 0, 7, 6, 100, 0,
-			4, 3, 72, 0, 1, 108, 0, 1, 109, 0, 1, 110, 0, 1, 114, 0, 2, 32, 0, 8, 2, 17, 65, 0, 8, 2, 28, 1, 0, 8,
-			2, 114, 17, 65, 0, 4, 2, 17, 65, 3, 86, 0, 2, 18, 68, 0, 2, 32, 17, 65, 0, 2, 99, 17, 71, 0, 2, 118, 0, 7,
-			6, 101, 0, 117, 2, 32, 3, 6, 115, 0, 121, 2, 32, 3, 6, 118, 0, 4, 3, 36, 0, 2, 17, 67, 104, 0, 4, 1, 114, 17,
-			65, 3, 109, 0, 2, 110, 25, 0, 2, 114, 0, 117, 3, 115, 0, 4, 105, 3, 118, 0, 121, 2, 25, 0, 7, 6, 102, 0, 4, 3,
-			83, 0, 8, 2, 18, 66, 17, 65, 0, 7, 6, 103, 0, 1, 110, 2, 32, 3, 0, 110, 8, 2, 17, 65, 3, 50, 0, 4, 3, 81,
-			0, 1, 109, 0, 1, 110, 0, 2, 32, 0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 28, 1, 0, 104, 8, 2,
-			17, 65, 0, 4, 2, 17, 65, 3, 100, 0, 2, 18, 68, 0, 2, 32, 17, 65, 0, 2, 99, 17, 71, 0, 2, 17, 71, 12, 3, 101,
+		static unsigned char espeakdata_dicts16_data[6340] = {
+			0, 4, 0, 0, 218, 19, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 14, 4, 193, 4, 72, 0, 0, 17, 70, 32, 20, 132, 92, 20,
+			133, 107, 6, 35, 34, 72, 58, 36, 34, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12, 87, 36, 0, 0, 0,
+			11, 67, 81, 114, 84, 47, 58, 6, 37, 47, 0, 6, 195, 69, 81, 64, 14, 6, 195, 69, 81, 64, 72, 13, 4, 95, 8, 1, 3, 49,
+			35, 34, 6, 110, 50, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 6, 195, 76, 147, 128, 14, 6, 195, 76, 147, 128, 72, 0, 0,
+			17, 65, 20, 37, 89, 48, 6, 37, 49, 0, 81, 115, 112, 101, 97, 107, 32, 4, 193, 20, 14, 5, 193, 20, 72, 9, 0, 0, 16, 4,
+			95, 48, 67, 15, 87, 109, 50, 47, 6, 109, 89, 37, 65, 0, 0, 0, 8, 65, 24, 23, 109, 83, 36, 0, 0, 0, 0, 0, 6, 65,
+			28, 101, 36, 0, 0, 0, 16, 4, 95, 51, 88, 15, 47, 34, 37, 101, 6, 109, 89, 37, 65, 0, 0, 0, 7, 65, 32, 35, 76, 36,
+			0, 0, 9, 198, 89, 81, 83, 81, 35, 192, 14, 9, 198, 89, 81, 83, 81, 35, 192, 72, 9, 198, 57, 81, 83, 81, 35, 192, 14, 9,
+			198, 57, 81, 83, 81, 35, 192, 72, 0, 0, 15, 1, 35, 35, 55, 65, 110, 35, 86, 6, 37, 98, 35, 0, 27, 0, 14, 65, 36, 6,
+			117, 48, 39, 72, 0, 81, 112, 111, 100, 32, 16, 65, 36, 6, 117, 83, 39, 50, 0, 81, 112, 104, 111, 110, 101, 32, 0, 15, 1, 37,
+			48, 110, 34, 87, 57, 6, 109, 50, 47, 39, 0, 27, 0, 14, 1, 38, 35, 65, 48, 109, 34, 89, 6, 35, 50, 47, 0, 0, 0, 8,
+			65, 40, 101, 110, 47, 35, 0, 0, 0, 6, 195, 64, 244, 128, 14, 6, 195, 64, 244, 128, 72, 15, 1, 42, 35, 89, 47, 109, 34, 6,
+			37, 89, 49, 39, 0, 27, 0, 9, 1, 43, 65, 6, 35, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 10, 1, 46, 48, 40,
+			50, 47, 39, 0, 27, 0, 6, 195, 4, 229, 5, 14, 7, 195, 4, 229, 5, 72, 9, 9, 1, 47, 71, 35, 51, 52, 35, 0, 0, 8,
+			65, 48, 23, 109, 55, 36, 0, 0, 0, 0, 0, 8, 65, 52, 23, 109, 65, 36, 0, 9, 198, 89, 81, 83, 81, 35, 211, 14, 9, 198,
+			89, 81, 83, 81, 35, 211, 72, 9, 198, 57, 81, 83, 81, 35, 211, 14, 9, 198, 57, 81, 83, 81, 35, 211, 72, 0, 0, 0, 0, 8,
+			65, 56, 23, 109, 50, 36, 0, 9, 5, 95, 48, 1, 14, 4, 37, 0, 0, 0, 0, 0, 4, 193, 60, 14, 4, 193, 60, 72, 0, 11,
+			1, 61, 37, 100, 58, 6, 35, 55, 0, 27, 0, 0, 0, 6, 65, 64, 48, 36, 0, 11, 1, 64, 35, 51, 52, 6, 39, 82, 35, 0,
+			0, 0, 0, 0, 6, 65, 68, 49, 40, 0, 0, 0, 0, 0, 8, 65, 72, 23, 109, 34, 36, 0, 0, 16, 70, 52, 246, 137, 48, 192,
+			64, 65, 39, 87, 6, 37, 55, 35, 0, 0, 0, 0, 8, 65, 76, 23, 109, 89, 36, 0, 0, 16, 70, 77, 0, 78, 37, 50, 0, 89,
+			48, 6, 35, 50, 37, 91, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 15, 69, 92, 147, 132, 61, 112, 58, 6, 37,
+			50, 72, 39, 58, 0, 4, 193, 84, 14, 4, 193, 84, 72, 0, 0, 16, 4, 95, 49, 67, 15, 87, 109, 50, 47, 6, 109, 89, 37, 65,
+			0, 0, 0, 8, 65, 88, 23, 40, 82, 36, 0, 0, 0, 0, 18, 4, 95, 49, 77, 52, 6, 40, 50, 71, 37, 57, 12, 6, 110, 50,
+			0, 102, 16, 4, 95, 49, 77, 52, 6, 40, 50, 71, 37, 98, 6, 110, 50, 0, 0, 14, 65, 92, 40, 82, 36, 15, 72, 6, 110, 82,
+			55, 36, 0, 0, 0, 16, 1, 94, 87, 37, 34, 49, 40, 65, 83, 55, 6, 36, 101, 39, 0, 0, 0, 9, 65, 96, 23, 109, 49, 37,
+			89, 0, 0, 18, 4, 95, 49, 77, 50, 6, 40, 50, 65, 37, 57, 12, 6, 110, 50, 0, 102, 16, 4, 95, 49, 77, 50, 6, 40, 50,
+			65, 37, 98, 6, 110, 50, 0, 0, 0, 0, 13, 65, 100, 37, 81, 34, 37, 6, 36, 100, 35, 0, 14, 6, 65, 100, 2, 37, 0, 0,
+			0, 6, 195, 48, 244, 192, 14, 6, 195, 48, 244, 192, 72, 0, 0, 8, 65, 104, 87, 109, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0,
+			18, 67, 77, 37, 1, 115, 101, 195, 177, 111, 114, 105, 116, 97, 0, 41, 24, 29, 0, 0, 0, 0, 0, 0, 19, 67, 17, 5, 15, 100,
+			101, 112, 97, 114, 116, 97, 109, 101, 110, 116, 111, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			16, 67, 77, 32, 64, 115, 101, 195, 177, 111, 114, 97, 0, 41, 24, 29, 19, 4, 95, 49, 57, 15, 86, 36, 87, 37, 65, 39, 50, 39,
+			82, 6, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 49, 67, 48, 87, 57, 6, 36, 50, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 49, 56, 15, 86, 36, 87, 37, 65, 110, 49, 47, 6, 35, 82, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 66, 17, 32, 100, 111, 99, 116, 111, 114, 0, 41, 24, 29, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 67, 77, 32, 83, 115, 101, 195, 177, 111, 114, 97, 115, 0, 41, 24, 29, 0, 0, 0,
+			0, 0, 0, 0, 0, 17, 67, 77, 33, 83, 115, 101, 195, 177, 111, 114, 101, 115, 0, 41, 24, 29, 0, 0, 7, 196, 69, 82, 69, 56,
+			14, 7, 196, 69, 82, 69, 56, 72, 0, 0, 0, 15, 4, 95, 49, 49, 15, 40, 50, 72, 6, 109, 87, 37, 65, 0, 0, 0, 0, 0,
+			0, 7, 196, 48, 147, 149, 96, 65, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 14, 5, 194, 16, 80, 72, 0, 0, 0, 6, 195, 16,
+			83, 0, 14, 6, 195, 16, 83, 0, 72, 0, 0, 20, 4, 95, 49, 51, 15, 86, 36, 87, 37, 65, 39, 47, 109, 34, 87, 6, 109, 34,
+			0, 0, 7, 196, 16, 243, 132, 20, 14, 7, 196, 16, 243, 132, 20, 72, 11, 4, 95, 4, 16, 20, 49, 39, 65, 35, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 4, 95, 49, 48, 15, 86, 6, 109, 87, 37, 65, 0, 0, 0, 0, 7, 66, 12, 128, 76, 36, 0, 5, 194, 4,
+			192, 14, 5, 194, 4, 192, 72, 0, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 36, 0, 0, 0, 0, 18, 4, 95, 49, 53,
+			15, 86, 36, 87, 37, 65, 39, 49, 6, 37, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 50, 15, 86, 58, 39,
+			86, 6, 109, 87, 37, 65, 0, 0, 23, 68, 21, 128, 205, 4, 101, 120, 99, 101, 108, 101, 110, 116, 195, 173, 115, 105, 109, 97, 0, 24,
+			29, 0, 0, 0, 0, 0, 0, 16, 70, 4, 225, 18, 60, 145, 0, 6, 35, 50, 72, 34, 120, 72, 0, 0, 20, 4, 95, 49, 55, 15,
+			86, 36, 87, 37, 65, 39, 89, 6, 109, 48, 47, 37, 65, 0, 0, 0, 8, 197, 13, 80, 78, 80, 240, 14, 8, 197, 13, 80, 78, 80,
+			240, 72, 0, 0, 0, 0, 0, 0, 19, 4, 95, 49, 52, 15, 86, 36, 87, 37, 65, 39, 49, 58, 6, 35, 34, 47, 0, 0, 0, 0,
+			0, 0, 0, 18, 68, 37, 164, 68, 4, 105, 122, 113, 117, 105, 101, 114, 100, 97, 0, 24, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			19, 4, 95, 49, 54, 15, 86, 36, 87, 37, 65, 39, 89, 6, 109, 49, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 21,
+			52, 5, 4, 176, 37, 89, 48, 6, 37, 49, 0, 0, 0, 0, 0, 0, 16, 5, 95, 48, 77, 49, 15, 65, 37, 55, 6, 109, 89, 37,
+			65, 0, 0, 0, 0, 19, 4, 95, 55, 88, 15, 89, 109, 48, 47, 58, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0, 6,
+			195, 64, 20, 129, 14, 6, 195, 64, 20, 129, 72, 0, 0, 0, 17, 70, 76, 241, 148, 92, 20, 133, 89, 6, 39, 83, 47, 58, 36, 34,
+			0, 0, 0, 0, 23, 68, 21, 128, 205, 60, 101, 120, 99, 101, 108, 101, 110, 116, 195, 173, 115, 105, 109, 111, 0, 24, 29, 0, 0, 0,
+			0, 0, 0, 10, 67, 48, 149, 133, 55, 6, 117, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 15, 48, 34, 37, 65, 6, 109, 34, 0, 0, 0, 0, 9, 3, 226, 130, 172,
+			115, 34, 39, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 15, 89, 36, 100, 6, 40, 50, 72, 0, 0, 0, 0, 0, 0, 8, 197, 64,
+			244, 145, 84, 80, 14, 8, 197, 64, 244, 145, 84, 80, 72, 0, 0, 16, 70, 24, 16, 197, 8, 243, 203, 83, 6, 118, 89, 71, 40, 49,
+			0, 0, 13, 3, 95, 51, 15, 47, 109, 34, 87, 6, 109, 34, 0, 8, 4, 95, 15, 18, 4, 39, 0, 0, 0, 0, 0, 18, 68, 37,
+			164, 68, 60, 105, 122, 113, 117, 105, 101, 114, 100, 111, 0, 24, 29, 0, 0, 0, 18, 70, 20, 225, 204, 37, 50, 0, 195, 173, 110, 103,
+			108, 105, 115, 104, 0, 29, 0, 0, 0, 5, 194, 20, 192, 14, 5, 194, 20, 192, 72, 0, 12, 3, 95, 50, 48, 71, 6, 118, 50, 47,
+			36, 0, 0, 0, 0, 0, 6, 195, 48, 20, 192, 14, 6, 195, 48, 20, 192, 72, 0, 10, 3, 95, 53, 15, 49, 37, 50, 47, 0, 0,
+			0, 14, 4, 95, 13, 3, 14, 65, 35, 49, 34, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 54, 15, 89, 6, 109, 49,
+			89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 55, 15, 89, 6, 109, 47, 37, 65, 0, 0, 13, 69, 37, 2, 15, 56,
+			80, 6, 117, 83, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 224, 14, 5, 194, 20, 224, 72, 0, 13, 3, 95,
+			51, 88, 47, 34, 6, 118, 50, 47, 35, 0, 0, 14, 3, 95, 48, 67, 87, 57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 16, 67,
+			17, 32, 64, 100, 111, 99, 116, 111, 114, 97, 0, 41, 24, 29, 0, 7, 196, 76, 240, 146, 20, 14, 7, 196, 76, 240, 146, 20, 72, 12,
+			3, 95, 57, 15, 50, 39, 82, 6, 36, 50, 0, 0, 0, 0, 0, 13, 3, 95, 49, 67, 87, 57, 6, 36, 50, 47, 39, 0, 0, 0,
+			0, 0, 0, 0, 5, 194, 48, 16, 14, 5, 194, 48, 16, 72, 8, 4, 95, 35, 194, 170, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			11, 3, 95, 49, 49, 6, 110, 50, 87, 36, 0, 0, 0, 12, 3, 95, 49, 51, 47, 34, 6, 36, 87, 36, 0, 0, 11, 3, 95, 49,
+			50, 72, 6, 39, 87, 36, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37, 50, 87, 36, 0, 0, 14, 3, 95, 49, 52, 49, 35, 47, 6,
+			110, 34, 87, 36, 0, 0, 12, 3, 95, 52, 15, 49, 58, 6, 35, 34, 47, 0, 0, 0, 8, 4, 95, 35, 194, 186, 39, 0, 0, 14,
+			3, 95, 55, 88, 89, 109, 47, 6, 109, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 53, 67, 49, 37, 50,
+			57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 88, 72, 57, 6, 109, 87, 0, 0, 0, 0, 0,
+			0, 6, 195, 81, 32, 83, 14, 6, 195, 81, 32, 83, 72, 0, 0, 0, 11, 3, 95, 50, 88, 71, 6, 118, 50, 47, 0, 0, 19, 3,
+			95, 55, 67, 89, 4, 36, 47, 36, 87, 57, 6, 109, 50, 47, 110, 89, 0, 0, 0, 0, 0, 12, 3, 95, 56, 15, 110, 49, 47, 6,
+			35, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 63, 63, 89, 6, 37, 65, 71, 110, 55, 39, 0, 0, 0, 0, 15, 3,
+			95, 52, 88, 49, 58, 35, 34, 6, 109, 50, 47, 35, 0, 0, 19, 3, 95, 57, 67, 50, 4, 110, 82, 36, 87, 57, 6, 109, 50, 47,
+			110, 89, 0, 0, 0, 0, 0, 0, 0, 16, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 111, 0, 24, 29, 5, 194, 48, 80, 14,
+			5, 194, 48, 80, 72, 0, 19, 71, 20, 195, 209, 84, 83, 131, 20, 6, 36, 55, 39, 49, 58, 36, 50, 89, 0, 16, 3, 95, 53, 88,
+			87, 37, 50, 49, 58, 6, 109, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 13, 69, 60, 97, 137, 12, 80, 6, 39, 83, 37, 89, 0,
+			0, 0, 14, 3, 95, 54, 88, 89, 109, 89, 6, 109, 50, 47, 35, 0, 0, 0, 15, 4, 95, 50, 88, 15, 82, 37, 101, 6, 109, 89,
+			37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 110, 76, 6, 109, 50, 47, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80, 14, 6, 194, 52, 80, 72, 9, 0, 14, 3, 95, 57, 88, 50, 110, 82, 6, 109, 50,
+			47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 15, 7, 15,
+			49, 39, 55, 6, 37, 47, 35, 0, 0, 7, 196, 20, 229, 18, 20, 14, 7, 196, 20, 229, 18, 20, 72, 0, 15, 3, 13, 194, 170, 109,
+			97, 114, 195, 173, 97, 0, 41, 24, 29, 0, 0, 20, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 49, 34, 39, 89, 39, 83, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 70, 52, 86, 9, 12, 19, 143, 65, 109, 101, 37, 49, 35, 50,
+			39, 0, 0, 9, 67, 21, 145, 83, 6, 117, 89, 0, 5, 194, 61, 48, 14, 5, 194, 61, 48, 72, 0, 0, 18, 4, 95, 48, 77, 52,
+			10, 71, 37, 57, 12, 6, 39, 50, 109, 89, 0, 102, 16, 4, 95, 48, 77, 52, 10, 71, 37, 98, 6, 39, 50, 109, 89, 0, 0, 0,
+			24, 5, 5, 5, 46, 21, 21, 109, 89, 47, 6, 35, 86, 39, 89, 15, 40, 50, 6, 37, 86, 39, 89, 0, 17, 4, 95, 48, 77, 50,
+			65, 37, 57, 12, 6, 39, 50, 36, 89, 0, 102, 15, 4, 95, 48, 77, 50, 65, 37, 98, 6, 39, 50, 36, 89, 0, 0, 11, 67, 37,
+			3, 196, 6, 117, 48, 39, 72, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 13, 4, 95, 2, 18, 22, 71, 34,
+			6, 36, 82, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 14, 5, 194, 52, 144,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 48, 192, 6, 109, 61, 36, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 5, 83, 145, 84, 80, 14, 8, 197, 5,
+			83, 145, 84, 80, 72, 0, 0, 19, 4, 95, 52, 88, 15, 49, 58, 35, 86, 34, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 19,
+			4, 95, 3, 9, 18, 87, 37, 34, 49, 40, 65, 83, 55, 6, 36, 101, 39, 0, 0, 0, 0, 0, 0, 6, 195, 52, 148, 192, 14, 6,
+			195, 52, 148, 192, 72, 0, 0, 0, 0, 6, 195, 56, 244, 192, 14, 6, 195, 56, 244, 192, 72, 0, 0, 0, 0, 13, 4, 95, 19, 20,
+			11, 71, 6, 35, 51, 52, 35, 0, 0, 0, 13, 4, 95, 1, 3, 21, 35, 100, 6, 40, 86, 39, 0, 0, 19, 3, 95, 195, 179, 6,
+			39, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 25, 3, 95, 194, 171, 49, 39, 65, 6, 37, 98, 35, 89, 15, 37, 87, 49,
+			98, 6, 109, 34, 86, 35, 89, 0, 0, 0, 0, 13, 4, 4, 195, 177, 1, 100, 111, 195, 177, 97, 0, 29, 0, 5, 194, 48, 240, 14,
+			5, 194, 48, 240, 72, 0, 0, 0, 0, 0, 13, 4, 95, 18, 14, 7, 35, 50, 6, 37, 98, 39, 0, 0, 23, 3, 95, 194, 161, 35,
+			82, 34, 6, 37, 34, 35, 86, 65, 37, 34, 35, 87, 57, 6, 110, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 66, 77, 32, 115, 101, 195, 177, 111, 114, 0, 41, 24, 29, 0, 19, 67, 65, 65, 64, 112, 114, 101, 115, 105,
+			100, 101, 110, 116, 101, 0, 41, 24, 29, 0, 0, 0, 20, 4, 95, 1, 3, 50, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86,
+			39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 131, 239, 187, 191, 0, 0, 0, 0, 27, 3, 95, 194, 191, 35, 82, 34, 6, 37, 34,
+			37, 50, 47, 109, 51, 52, 4, 39, 100, 35, 87, 57, 6, 110, 50, 0, 0, 19, 4, 95, 53, 88, 15, 49, 37, 50, 49, 58, 35, 101,
+			6, 109, 89, 37, 65, 0, 0, 0, 0, 23, 3, 95, 194, 187, 49, 39, 65, 6, 37, 98, 35, 89, 15, 72, 109, 34, 6, 109, 76, 35,
+			89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 67, 37, 164, 64, 105, 122, 113, 117, 105, 101, 114, 100, 97, 0, 24, 29, 6, 195,
+			77, 84, 192, 14, 6, 195, 77, 84, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 89, 109, 49, 87, 57, 6,
+			110, 50, 0, 0, 5, 194, 76, 80, 14, 5, 194, 76, 80, 72, 0, 0, 0, 11, 2, 194, 163, 55, 37, 82, 34, 35, 89, 0, 0, 0,
+			0, 0, 0, 5, 194, 77, 80, 14, 5, 194, 77, 80, 72, 0, 0, 6, 2, 194, 170, 35, 0, 0, 0, 0, 18, 2, 195, 161, 6, 35,
+			15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 14, 2, 194, 169, 49, 39, 48, 37, 51, 52, 6, 117, 47, 0, 0, 13, 2, 194,
+			182, 48, 6, 35, 51, 52, 35, 83, 39, 0, 0, 0, 0, 18, 2, 195, 173, 6, 37, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35,
+			0, 0, 0, 0, 0, 18, 2, 195, 169, 6, 36, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 0, 0, 0, 0, 12, 68,
+			88, 242, 67, 20, 98, 111, 105, 115, 0, 29, 6, 2, 194, 186, 39, 0, 14, 4, 95, 3, 5, 4, 87, 36, 86, 6, 37, 98, 35, 0,
+			0, 0, 0, 9, 2, 195, 177, 23, 109, 67, 36, 0, 16, 4, 95, 12, 9, 7, 55, 37, 100, 35, 86, 6, 40, 34, 35, 0, 0, 7,
+			196, 32, 16, 201, 4, 14, 7, 196, 32, 16, 201, 4, 72, 0, 23, 73, 80, 133, 78, 16, 84, 130, 37, 33, 0, 47, 6, 35, 50, 72,
+			36, 34, 71, 37, 34, 72, 0, 0, 16, 2, 195, 188, 4, 40, 86, 57, 6, 109, 34, 109, 89, 37, 89, 0, 5, 194, 80, 80, 14, 5,
+			194, 80, 80, 72, 0, 0, 18, 2, 195, 186, 6, 40, 15, 35, 87, 109, 50, 47, 58, 6, 35, 86, 35, 0, 0, 0, 6, 195, 12, 243,
+			79, 14, 6, 195, 12, 243, 79, 72, 0, 0, 0, 0, 5, 194, 81, 80, 14, 5, 194, 81, 80, 72, 0, 18, 4, 95, 54, 88, 15, 89,
+			36, 100, 89, 35, 101, 6, 109, 89, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13, 66, 84, 64, 117, 115, 116, 101, 100, 0, 41, 24,
+			29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 14, 5, 194, 76, 144, 72, 0, 0, 0,
+			8, 197, 13, 80, 78, 16, 240, 14, 8, 197, 13, 80, 78, 16, 240, 72, 0, 0, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0,
+			0, 0, 6, 2, 95, 5, 36, 0, 0, 0, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 81, 114,
+			84, 80, 84, 128, 47, 58, 6, 37, 47, 36, 34, 0, 0, 0, 0, 17, 70, 64, 192, 84, 24, 244, 141, 48, 55, 6, 35, 47, 83, 39,
+			65, 0, 0, 0, 0, 0, 13, 2, 95, 25, 37, 81, 34, 37, 6, 36, 100, 35, 0, 0, 0, 0, 12, 68, 76, 182, 80, 20, 89, 49,
+			6, 117, 48, 0, 0, 0, 0, 0, 13, 2, 95, 34, 49, 39, 65, 6, 37, 98, 35, 89, 0, 0, 23, 2, 95, 33, 87, 109, 51, 52,
+			6, 35, 34, 35, 86, 65, 37, 34, 35, 87, 57, 6, 110, 50, 0, 0, 0, 6, 195, 12, 243, 128, 14, 6, 195, 12, 243, 128, 72, 15,
+			2, 95, 39, 35, 48, 110, 89, 47, 34, 6, 39, 83, 39, 0, 0, 6, 195, 8, 18, 143, 14, 6, 195, 8, 18, 143, 72, 0, 0, 0,
+			19, 2, 95, 43, 89, 6, 37, 100, 50, 110, 72, 36, 89, 40, 65, 6, 35, 34, 0, 0, 13, 4, 95, 3, 1, 16, 65, 6, 35, 98,
+			40, 89, 0, 0, 23, 2, 95, 41, 87, 57, 4, 109, 51, 52, 35, 48, 35, 34, 6, 109, 50, 47, 36, 89, 37, 89, 0, 0, 21, 2,
+			95, 40, 4, 35, 82, 34, 36, 48, 35, 34, 6, 109, 50, 47, 36, 89, 37, 89, 0, 0, 10, 2, 95, 47, 71, 35, 51, 52, 35, 0,
+			0, 10, 2, 95, 46, 48, 40, 50, 47, 39, 0, 0, 9, 2, 95, 45, 81, 98, 110, 50, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35,
+			0, 0, 10, 2, 95, 51, 47, 34, 6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 110, 89, 0, 0, 9, 2, 95, 49, 6, 40, 50,
+			39, 0, 0, 10, 2, 95, 48, 87, 6, 36, 34, 39, 0, 0, 11, 2, 95, 55, 89, 57, 6, 36, 47, 36, 0, 0, 6, 195, 64, 84,
+			143, 14, 6, 195, 64, 84, 143, 72, 9, 2, 95, 54, 89, 6, 118, 89, 0, 0, 11, 2, 95, 53, 87, 6, 37, 50, 49, 39, 0, 20,
+			4, 95, 4, 1, 3, 72, 6, 110, 71, 55, 36, 15, 35, 100, 6, 40, 86, 39, 0, 0, 12, 2, 95, 52, 49, 58, 6, 35, 47, 34,
+			39, 0, 0, 17, 2, 95, 59, 48, 4, 40, 50, 47, 39, 37, 49, 6, 39, 65, 35, 0, 0, 16, 2, 95, 58, 72, 4, 110, 89, 48,
+			6, 40, 50, 47, 110, 89, 0, 0, 11, 2, 95, 57, 50, 58, 6, 36, 82, 36, 0, 0, 9, 2, 95, 56, 6, 110, 76, 39, 0, 0,
+			27, 2, 95, 63, 87, 109, 51, 52, 6, 35, 34, 37, 50, 47, 109, 51, 52, 4, 39, 100, 35, 87, 57, 6, 110, 50, 0, 0, 13, 2,
+			95, 62, 65, 35, 98, 6, 110, 34, 49, 36, 0, 0, 0, 13, 2, 95, 60, 65, 36, 50, 6, 110, 34, 49, 36, 0, 0, 0, 7, 196,
+			16, 84, 196, 20, 14, 7, 196, 16, 84, 196, 20, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 69, 82,
+			69, 56, 84, 192, 14, 9, 198, 69, 82, 69, 56, 84, 192, 72, 0, 0, 0, 0, 0, 0, 13, 4, 95, 4, 15, 20, 48, 6, 40, 50,
+			47, 39, 0, 0, 0, 0, 18, 2, 95, 91, 4, 35, 82, 34, 36, 49, 110, 34, 76, 6, 36, 47, 36, 0, 0, 20, 67, 36, 195, 79,
+			105, 108, 117, 115, 116, 114, 195, 173, 115, 105, 109, 111, 0, 24, 29, 0, 0, 7, 66, 88, 144, 71, 37, 0, 0, 7, 195, 16, 226, 64,
+			17, 42, 15, 2, 95, 95, 89, 40, 82, 34, 35, 98, 6, 35, 86, 39, 0, 0, 0, 20, 2, 95, 93, 87, 57, 4, 109, 51, 52, 35,
+			49, 110, 34, 76, 6, 36, 47, 36, 0, 0, 21, 2, 95, 92, 71, 6, 35, 51, 52, 35, 37, 65, 71, 109, 34, 47, 6, 37, 86, 35,
+			0, 0, 0, 0, 10, 67, 40, 22, 154, 75, 6, 35, 89, 0, 17, 4, 95, 56, 88, 15, 110, 49, 47, 39, 101, 6, 109, 89, 37, 65,
+			0, 0, 18, 2, 95, 96, 35, 87, 6, 109, 50, 47, 110, 81, 34, 6, 35, 82, 36, 0, 0, 0, 0, 0, 20, 67, 36, 195, 65, 105,
+			108, 117, 115, 116, 114, 195, 173, 115, 105, 109, 97, 0, 24, 29, 0, 0, 0, 0, 13, 4, 95, 7, 18, 22, 81, 34, 6, 35, 82, 36,
+			0, 0, 0, 17, 7, 13, 195, 169, 24, 9, 3, 15, 65, 6, 109, 101, 37, 49, 39, 0, 0, 0, 17, 70, 92, 147, 132, 61, 116, 192,
+			58, 6, 37, 50, 72, 39, 58, 89, 0, 0, 6, 195, 48, 84, 192, 14, 6, 195, 48, 84, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+			15, 2, 95, 123, 4, 35, 82, 34, 36, 98, 6, 35, 82, 36, 0, 16, 4, 95, 4, 9, 1, 72, 57, 6, 109, 34, 36, 89, 37, 89,
+			0, 0, 0, 0, 0, 0, 13, 68, 64, 245, 197, 72, 48, 6, 35, 58, 36, 34, 0, 0, 17, 2, 95, 125, 87, 57, 4, 109, 51, 52,
+			35, 98, 6, 35, 82, 36, 0, 0, 0, 17, 70, 24, 148, 133, 24, 246, 0, 83, 6, 117, 34, 83, 39, 49, 89, 0, 0, 10, 67, 40,
+			21, 211, 75, 6, 39, 89, 0, 12, 68, 5, 4, 12, 20, 6, 35, 48, 13, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 69, 77, 1, 69, 12, 128, 89, 48, 6, 37, 76, 0, 0, 9, 198, 89, 81, 83, 81, 32, 64, 14, 9, 198, 89, 81, 83,
+			81, 32, 64, 72, 9, 198, 57, 81, 83, 81, 32, 64, 14, 9, 198, 57, 81, 83, 81, 32, 64, 72, 0, 0, 0, 0, 10, 67, 25, 33,
+			69, 83, 34, 6, 37, 0, 0, 0, 0, 0, 15, 4, 95, 35, 51, 50, 109, 89, 48, 6, 35, 87, 57, 39, 0, 0, 0, 0, 0, 0,
+			9, 198, 89, 81, 83, 81, 32, 83, 14, 9, 198, 89, 81, 83, 81, 32, 83, 72, 9, 198, 57, 81, 83, 81, 32, 83, 14, 9, 198, 57,
+			81, 83, 81, 32, 83, 72, 0, 0, 14, 69, 12, 132, 143, 52, 80, 49, 34, 6, 39, 58, 65, 0, 0, 0, 9, 198, 52, 145, 78, 81,
+			32, 83, 14, 9, 198, 52, 145, 78, 81, 32, 83, 72, 0, 0, 17, 4, 95, 57, 88, 15, 50, 39, 50, 35, 101, 6, 109, 89, 37, 65,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 81, 84, 192, 14, 6, 195, 81, 84, 192, 72, 0, 7, 196,
+			32, 20, 212, 4, 14, 7, 196, 32, 20, 212, 4, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+			69, 28, 243, 199, 48, 80, 81, 6, 40, 81, 13, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 71, 52, 84, 211, 20, 225, 197, 72, 65, 6, 36, 89,
+			36, 50, 75, 36, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 84, 68, 192, 117, 115, 116, 101, 100, 101, 115,
+			0, 41, 24, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 76, 84, 150, 36, 49, 64, 89, 6, 36, 34, 82, 37, 89,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 108, 0, 114, 0, 121, 0, 7, 6, 18, 67, 98, 0, 100, 0, 103,
+			0, 110, 0, 109, 0, 7, 6, 18, 68, 102, 0, 104, 0, 106, 0, 115, 0, 121, 0, 122, 0, 114, 0, 7, 6, 18, 69, 98, 0, 118,
+			0, 102, 0, 112, 0, 7, 6, 18, 70, 103, 0, 107, 0, 7, 6, 18, 71, 106, 0, 119, 0, 108, 0, 114, 0, 98, 0, 100, 0, 103,
+			0, 110, 0, 109, 0, 112, 0, 116, 0, 107, 0, 99, 0, 7, 6, 97, 0, 117, 2, 32, 3, 6, 114, 0, 121, 2, 32, 3, 6, 117,
+			0, 3, 35, 0, 117, 3, 114, 0, 4, 105, 3, 117, 0, 121, 2, 25, 0, 7, 6, 98, 0, 4, 3, 71, 0, 1, 109, 0, 1, 110,
+			0, 2, 105, 17, 65, 0, 2, 117, 17, 65, 0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 28, 1, 0, 4, 2,
+			17, 65, 3, 82, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 7, 6, 99, 0, 4, 3, 49, 0, 8, 2, 18, 66, 17, 65, 0, 107,
+			1, 17, 65, 0, 4, 104, 3, 76, 0, 104, 8, 2, 17, 65, 0, 2, 17, 71, 3, 87, 0, 7, 6, 100, 0, 4, 3, 72, 0, 1,
+			108, 0, 1, 109, 0, 1, 110, 0, 1, 114, 0, 8, 2, 17, 65, 0, 8, 2, 28, 1, 0, 8, 2, 114, 17, 65, 0, 4, 2, 17,
+			65, 3, 86, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 7, 6, 101, 0, 117, 2, 32, 3, 6, 115, 0, 121, 2, 32, 3, 6, 118,
+			0, 4, 3, 36, 0, 2, 17, 67, 104, 0, 4, 1, 114, 17, 65, 3, 109, 0, 2, 110, 25, 0, 2, 114, 0, 117, 3, 115, 0, 4,
+			105, 3, 118, 0, 121, 2, 25, 0, 7, 6, 102, 0, 4, 3, 83, 0, 8, 2, 18, 66, 17, 65, 0, 7, 6, 103, 0, 110, 8, 2,
+			17, 65, 3, 50, 0, 4, 3, 81, 0, 1, 109, 0, 1, 110, 0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 28,
+			1, 0, 104, 8, 2, 17, 65, 0, 4, 2, 17, 65, 3, 100, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 2, 17, 71, 12, 3, 101,
 			0, 7, 6, 104, 0, 3, 0, 105, 8, 2, 17, 65, 3, 57, 0, 7, 6, 105, 0, 4, 5, 35, 1, 108, 2, 17, 65, 3, 2, 37,
 			0, 5, 35, 1, 114, 2, 17, 65, 0, 3, 37, 0, 4, 1, 17, 67, 2, 17, 65, 3, 57, 0, 1, 117, 103, 2, 17, 65, 0, 2,
-			17, 65, 0, 5, 35, 1, 108, 17, 65, 2, 17, 65, 0, 5, 35, 1, 114, 17, 65, 2, 17, 65, 0, 7, 6, 106, 0, 3, 101, 0,
-			7, 6, 107, 0, 4, 3, 49, 0, 8, 2, 18, 66, 17, 65, 0, 7, 6, 108, 0, 3, 55, 0, 108, 5, 2, 3, 57, 12, 0, 4,
-			108, 3, 61, 0, 108, 2, 32, 0, 108, 8, 2, 17, 65, 0, 108, 5, 2, 1, 32, 110, 2, 17, 65, 3, 75, 0, 108, 5, 2, 8,
-			2, 17, 65, 3, 98, 0, 7, 6, 109, 0, 110, 8, 2, 101, 109, 3, 50, 0, 3, 65, 0, 98, 8, 2, 17, 65, 3, 65, 71, 0,
-			7, 6, 110, 0, 4, 3, 50, 0, 104, 8, 2, 17, 65, 0, 4, 2, 18, 69, 3, 65, 0, 2, 32, 18, 69, 0, 121, 2, 17, 65,
-			3, 67, 0, 4, 2, 18, 70, 3, 68, 0, 2, 32, 18, 70, 0, 2, 106, 0, 7, 6, 111, 0, 121, 2, 32, 3, 6, 120, 0, 4,
-			3, 39, 0, 2, 17, 67, 104, 0, 117, 3, 39, 58, 0, 4, 1, 114, 17, 65, 3, 110, 0, 2, 17, 67, 25, 0, 2, 114, 0, 4,
-			105, 3, 120, 0, 121, 2, 25, 0, 7, 6, 112, 0, 4, 116, 8, 2, 101, 114, 111, 3, 47, 0, 116, 8, 2, 111, 108, 0, 4, 3,
-			48, 0, 8, 2, 18, 66, 17, 65, 0, 2, 116, 3, 48, 12, 0, 4, 104, 2, 21, 3, 83, 0, 104, 2, 25, 0, 104, 8, 2, 17,
-			65, 0, 4, 115, 8, 2, 101, 117, 100, 111, 3, 89, 0, 115, 8, 2, 105, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 17, 71,
-			0, 119, 8, 2, 17, 65, 3, 49, 58, 0, 7, 6, 114, 0, 4, 3, 34, 0, 1, 17, 65, 2, 17, 65, 0, 1, 17, 67, 2, 17,
-			65, 0, 2, 32, 0, 2, 116, 0, 4, 1, 108, 2, 17, 65, 3, 52, 0, 1, 109, 2, 17, 65, 0, 1, 110, 2, 17, 65, 0, 1,
-			115, 2, 17, 65, 0, 8, 2, 17, 65, 0, 114, 0, 7, 6, 115, 0, 4, 3, 89, 0, 1, 10, 2, 32, 14, 128, 128, 129, 0, 8,
-			2, 25, 21, 0, 99, 5, 33, 2, 17, 71, 0, 115, 3, 89, 12, 0, 4, 104, 2, 25, 3, 91, 0, 104, 8, 2, 17, 65, 0, 104,
-			8, 2, 18, 66, 17, 65, 0, 7, 6, 116, 0, 4, 3, 47, 0, 8, 2, 18, 66, 17, 65, 0, 104, 2, 25, 0, 104, 8, 2, 21,
-			0, 4, 120, 3, 76, 0, 120, 8, 2, 17, 65, 0, 7, 6, 117, 0, 4, 1, 103, 2, 101, 3, 0, 4, 1, 103, 2, 105, 3, 0,
-			4, 1, 103, 2, 195, 169, 3, 0, 1, 103, 2, 195, 173, 3, 0, 4, 5, 35, 1, 108, 2, 17, 65, 3, 2, 40, 0, 5, 35, 1,
-			114, 2, 17, 65, 0, 4, 3, 40, 0, 2, 117, 0, 2, 17, 65, 3, 58, 0, 7, 6, 118, 0, 4, 3, 71, 0, 1, 109, 0, 1,
-			110, 0, 2, 105, 17, 65, 0, 2, 117, 17, 65, 0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 28, 1, 0, 4,
-			2, 17, 65, 3, 82, 0, 2, 18, 68, 0, 2, 99, 17, 71, 0, 7, 6, 119, 0, 4, 3, 58, 0, 104, 8, 2, 17, 65, 0, 7,
-			6, 120, 0, 4, 3, 49, 89, 0, 99, 5, 33, 2, 17, 71, 0, 8, 2, 28, 1, 3, 89, 0, 1, 101, 109, 2, 105, 99, 3, 101,
-			0, 7, 6, 121, 0, 4, 3, 37, 0, 2, 32, 0, 4, 8, 108, 2, 17, 65, 3, 57, 0, 8, 109, 2, 17, 65, 0, 4, 1, 117,
-			2, 25, 3, 57, 12, 0, 2, 17, 65, 0, 1, 32, 110, 2, 17, 65, 3, 75, 0, 8, 2, 28, 1, 3, 79, 0, 8, 2, 17, 65,
-			3, 98, 0, 7, 6, 122, 0, 3, 87, 0, 122, 3, 123, 0, 7, 6, 0, 195, 161, 3, 7, 35, 0, 195, 173, 3, 7, 37, 0, 195,
-			186, 3, 7, 40, 0, 195, 169, 3, 7, 109, 0, 195, 179, 3, 7, 110, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45,
-			1, 32, 17, 67, 2, 32, 15, 0, 195, 188, 3, 40, 0, 44, 2, 15, 3, 49, 110, 65, 35, 0, 45, 8, 2, 32, 15, 3, 65, 6,
-			109, 50, 110, 89, 0, 195, 177, 3, 67, 0, 36, 3, 72, 6, 110, 55, 35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts16 = FileInMemory_createWithData (6111, reinterpret_cast<const char *> (&espeakdata_dicts16_data), 
-			U"espeak-1.48.04-source/espeak-data/es_dict", 
+			17, 65, 0, 7, 6, 106, 0, 3, 101, 0, 7, 6, 107, 0, 4, 3, 49, 0, 8, 2, 18, 66, 17, 65, 0, 7, 6, 108, 0, 4,
+			3, 55, 0, 108, 2, 32, 0, 108, 5, 2, 3, 57, 12, 0, 4, 108, 3, 61, 0, 108, 8, 2, 17, 65, 0, 108, 5, 2, 1, 32,
+			110, 2, 17, 65, 3, 75, 0, 108, 5, 2, 8, 2, 17, 65, 3, 98, 0, 7, 6, 109, 0, 1, 21, 2, 32, 3, 8, 65, 0, 110,
+			8, 2, 101, 109, 3, 50, 0, 3, 65, 0, 98, 8, 2, 17, 65, 3, 65, 71, 0, 7, 6, 110, 0, 4, 3, 50, 0, 104, 8, 2,
+			17, 65, 0, 4, 2, 18, 69, 3, 65, 0, 2, 32, 18, 69, 0, 121, 2, 17, 65, 3, 67, 0, 4, 2, 18, 70, 3, 68, 0, 2,
+			32, 18, 70, 0, 2, 106, 0, 7, 6, 111, 0, 121, 2, 32, 3, 6, 120, 0, 4, 3, 39, 0, 2, 17, 67, 104, 0, 117, 3, 39,
+			58, 0, 4, 1, 114, 17, 65, 3, 110, 0, 2, 17, 67, 25, 0, 2, 114, 0, 4, 105, 3, 120, 0, 121, 2, 25, 0, 7, 6, 112,
+			0, 4, 116, 8, 2, 101, 114, 111, 3, 47, 0, 116, 8, 2, 111, 108, 0, 4, 3, 48, 0, 8, 2, 18, 66, 17, 65, 0, 2, 116,
+			3, 48, 12, 0, 4, 104, 2, 21, 3, 83, 0, 104, 2, 25, 0, 104, 8, 2, 17, 65, 0, 4, 115, 8, 2, 101, 117, 100, 111, 3,
+			89, 0, 115, 8, 2, 105, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 17, 71, 0, 119, 8, 2, 17, 65, 3, 49, 58, 0, 7,
+			6, 114, 0, 4, 3, 34, 0, 1, 17, 65, 2, 17, 65, 0, 1, 17, 67, 2, 17, 65, 0, 2, 32, 0, 2, 116, 0, 4, 1, 108,
+			2, 17, 65, 3, 51, 0, 1, 109, 2, 17, 65, 0, 1, 110, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 8, 2, 17, 65, 0, 114,
+			3, 51, 52, 0, 7, 6, 115, 0, 4, 3, 89, 0, 1, 10, 2, 32, 14, 128, 128, 129, 0, 8, 2, 25, 21, 0, 99, 5, 33, 2,
+			17, 71, 0, 115, 0, 4, 104, 2, 25, 3, 91, 0, 104, 8, 2, 17, 65, 0, 104, 8, 2, 18, 66, 17, 65, 0, 7, 6, 116, 0,
+			4, 3, 47, 0, 8, 2, 18, 66, 17, 65, 0, 104, 2, 25, 0, 104, 8, 2, 21, 0, 4, 120, 3, 76, 0, 120, 8, 2, 17, 65,
+			0, 7, 6, 117, 0, 4, 1, 103, 2, 101, 3, 0, 4, 1, 103, 2, 105, 3, 0, 4, 1, 103, 2, 195, 169, 3, 0, 1, 103, 2,
+			195, 173, 3, 0, 4, 5, 35, 1, 108, 2, 17, 65, 3, 2, 40, 0, 5, 35, 1, 114, 2, 17, 65, 0, 4, 3, 40, 0, 2, 117,
+			0, 2, 17, 65, 3, 58, 0, 7, 6, 118, 0, 4, 3, 71, 0, 1, 109, 0, 1, 110, 0, 2, 105, 17, 65, 0, 2, 117, 17, 65,
+			0, 8, 2, 17, 65, 0, 8, 2, 18, 66, 17, 65, 0, 8, 2, 28, 1, 0, 4, 2, 17, 65, 3, 82, 0, 2, 18, 68, 0, 2,
+			99, 17, 71, 0, 7, 6, 119, 0, 4, 3, 58, 0, 104, 8, 2, 17, 65, 0, 7, 6, 120, 0, 4, 3, 49, 89, 0, 99, 5, 33,
+			2, 17, 71, 0, 8, 2, 28, 1, 3, 89, 0, 7, 6, 121, 0, 4, 3, 37, 0, 2, 32, 0, 4, 8, 108, 2, 17, 65, 3, 57,
+			0, 8, 109, 2, 17, 65, 0, 4, 1, 117, 2, 25, 3, 57, 12, 0, 2, 17, 65, 0, 1, 32, 110, 2, 17, 65, 3, 75, 0, 8,
+			2, 28, 1, 3, 79, 0, 8, 2, 17, 65, 3, 98, 0, 7, 6, 122, 0, 3, 87, 0, 5, 2, 2, 18, 67, 3, 88, 0, 122, 3,
+			123, 0, 7, 6, 0, 195, 161, 3, 7, 35, 0, 195, 173, 3, 7, 37, 0, 195, 186, 3, 7, 40, 0, 195, 169, 3, 7, 109, 0, 195,
+			179, 3, 7, 110, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 188, 3, 40,
+			0, 44, 2, 15, 3, 49, 110, 65, 35, 0, 45, 8, 2, 32, 15, 3, 65, 6, 109, 50, 110, 89, 0, 195, 177, 3, 67, 0, 36, 3,
+			72, 6, 110, 55, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts16 = FileInMemory_createWithData (6339, reinterpret_cast<const char *> (&espeakdata_dicts16_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/es_dict", 
 			U"es");
-		my addItem_move (espeakdata_dicts16.move());
+		Collection_addItem (me.peek(), espeakdata_dicts16.transfer());
 
-		static unsigned char espeakdata_dicts17_data[6768] = {
-			0, 4, 0, 0, 45, 19, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 108, 0, 0, 7, 194, 5, 0, 13, 42, 42, 15, 65, 108,
-			6, 35, 108, 15, 55, 108, 0, 24, 81, 108, 97, 32, 0, 0, 0, 7, 65, 8, 71, 36, 110, 0, 0, 0, 17, 67, 21, 64, 192, 36,
-			47, 15, 47, 89, 36, 47, 36, 34, 35, 0, 24, 0, 0, 8, 65, 12, 47, 89, 36, 110, 0, 0, 6, 195, 60, 193, 78, 72, 0, 0,
-			0, 7, 65, 16, 72, 36, 110, 0, 0, 7, 196, 56, 83, 132, 20, 76, 0, 0, 14, 5, 109, 195, 164, 115, 115, 65, 6, 121, 89, 12,
-			89, 0, 11, 4, 95, 100, 112, 116, 49, 39, 65, 109, 0, 0, 42, 65, 20, 6, 36, 50, 50, 36, 15, 65, 4, 36, 37, 57, 36, 15,
-			4, 35, 57, 109, 15, 6, 35, 34, 12, 84, 35, 65, 37, 89, 47, 0, 24, 84, 46, 32, 109, 32, 46, 32, 97, 32, 25, 65, 20, 6,
-			36, 50, 50, 36, 15, 49, 34, 6, 37, 89, 12, 47, 40, 89, 47, 0, 24, 81, 107, 114, 32, 6, 65, 20, 36, 110, 0, 0, 0, 16,
-			67, 76, 18, 128, 89, 6, 35, 57, 109, 50, 72, 37, 55, 0, 24, 20, 67, 41, 34, 192, 57, 4, 121, 34, 57, 36, 15, 49, 6, 39,
-			34, 34, 72, 0, 24, 0, 0, 7, 65, 24, 36, 83, 83, 0, 0, 0, 0, 0, 7, 65, 28, 81, 36, 110, 0, 0, 0, 0, 0, 7,
-			65, 32, 107, 35, 108, 0, 0, 0, 0, 0, 13, 1, 36, 47, 39, 55, 12, 55, 35, 34, 37, 47, 0, 6, 65, 36, 37, 112, 0, 0,
-			16, 1, 37, 48, 34, 39, 47, 89, 6, 36, 50, 47, 12, 37, 0, 27, 0, 7, 1, 38, 10, 36, 47, 0, 0, 0, 13, 5, 112, 195,
-			181, 108, 108, 48, 6, 119, 55, 12, 0, 8, 65, 40, 57, 39, 47, 12, 0, 0, 0, 10, 1, 42, 47, 121, 51, 12, 50, 0, 27, 0,
-			11, 1, 43, 48, 55, 40, 89, 12, 89, 0, 27, 0, 7, 65, 44, 49, 35, 108, 0, 0, 14, 66, 45, 0, 49, 6, 117, 48, 6, 121,
-			36, 84, 0, 24, 0, 0, 15, 1, 47, 49, 35, 55, 12, 72, 15, 49, 34, 112, 48, 89, 0, 0, 12, 4, 95, 100, 105, 97, 47, 121,
-			48, 37, 72, 0, 7, 65, 48, 36, 55, 55, 0, 0, 18, 66, 49, 0, 55, 4, 40, 81, 118, 15, 48, 6, 110, 47, 40, 72, 0, 24,
-			0, 0, 0, 42, 65, 52, 65, 4, 36, 37, 57, 36, 15, 6, 35, 57, 109, 15, 6, 35, 34, 84, 35, 65, 4, 37, 89, 36, 15, 57,
-			6, 121, 34, 81, 37, 0, 84, 46, 32, 97, 32, 46, 32, 106, 32, 7, 65, 52, 36, 65, 65, 0, 0, 0, 0, 0, 7, 65, 56, 36,
-			50, 50, 0, 0, 0, 0, 0, 6, 65, 60, 39, 115, 0, 0, 18, 1, 61, 84, 119, 51, 12, 72, 40, 89, 15, 65, 121, 34, 49, 12,
-			0, 27, 0, 0, 0, 26, 65, 64, 48, 6, 121, 34, 109, 89, 47, 15, 49, 34, 6, 37, 89, 47, 40, 89, 47, 0, 24, 81, 107, 114,
-			32, 7, 1, 64, 10, 121, 47, 0, 7, 65, 64, 48, 36, 110, 0, 0, 0, 0, 0, 7, 65, 68, 49, 40, 117, 0, 0, 0, 0, 0,
-			7, 65, 72, 36, 51, 51, 0, 0, 0, 0, 0, 21, 65, 76, 89, 6, 36, 55, 15, 6, 108, 89, 47, 35, 55, 0, 24, 82, 46, 32,
-			97, 32, 7, 65, 76, 36, 89, 89, 0, 0, 0, 0, 0, 7, 65, 80, 47, 36, 110, 0, 0, 0, 0, 0, 5, 65, 84, 117, 0, 0,
-			0, 0, 0, 7, 65, 88, 84, 36, 110, 0, 0, 7, 194, 5, 48, 13, 42, 42, 0, 0, 13, 4, 95, 49, 77, 52, 71, 37, 61, 57,
-			39, 50, 0, 0, 14, 1, 92, 55, 121, 68, 81, 15, 49, 34, 112, 48, 89, 0, 14, 65, 92, 49, 6, 35, 49, 89, 37, 89, 84, 36,
-			110, 0, 0, 0, 0, 0, 12, 4, 95, 49, 77, 49, 47, 40, 107, 109, 47, 0, 8, 65, 96, 37, 49, 12, 89, 0, 0, 6, 194, 4,
-			64, 13, 24, 13, 4, 95, 49, 77, 50, 65, 37, 61, 57, 39, 50, 0, 0, 14, 4, 95, 49, 77, 51, 65, 37, 61, 57, 35, 34, 72,
-			0, 0, 0, 9, 65, 100, 37, 81, 34, 36, 49, 0, 0, 0, 0, 0, 9, 65, 104, 47, 89, 36, 47, 12, 0, 0, 0, 0, 0, 11,
-			67, 60, 176, 89, 39, 49, 6, 36, 112, 0, 0, 0, 0, 0, 0, 13, 66, 12, 16, 47, 89, 6, 37, 34, 49, 35, 0, 24, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 12, 4, 95, 116, 108, 100, 47, 37, 55,
-			72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 48, 147, 12, 55, 6, 37, 55, 12, 0, 0, 0, 0, 14,
-			67, 5, 81, 192, 6, 35, 117, 81, 40, 89, 47, 0, 24, 0, 0, 0, 11, 67, 44, 243, 142, 49, 6, 39, 50, 12, 0, 0, 0, 0,
-			0, 0, 18, 67, 41, 50, 192, 57, 4, 35, 39, 89, 49, 6, 39, 50, 50, 72, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 20, 66, 16, 32, 47, 4, 36, 114, 132, 89, 37, 15, 71, 6, 36, 55, 55, 37, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 14,
-			66, 17, 32, 47, 6, 39, 49, 12, 47, 39, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 145, 1, 76, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 20, 112, 64, 72, 8, 0, 0, 0, 0, 7, 195, 4, 112, 64,
-			72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 44, 81, 1, 76, 6, 195, 76, 81, 1, 76, 0, 0, 0, 0, 0, 0,
-			23, 67, 73, 66, 128, 34, 4, 35, 40, 72, 15, 47, 6, 36, 110, 15, 57, 6, 35, 108, 65, 0, 24, 0, 0, 0, 0, 0, 0, 0,
-			0, 15, 67, 77, 35, 128, 89, 6, 40, 34, 34, 50, 40, 72, 0, 24, 0, 0, 0, 0, 0, 15, 3, 95, 35, 57, 47, 35, 71, 40,
-			55, 108, 47, 39, 34, 0, 0, 10, 67, 4, 195, 0, 6, 35, 55, 12, 0, 0, 7, 196, 44, 83, 12, 20, 76, 0, 0, 0, 0, 7,
-			196, 76, 83, 12, 20, 76, 0, 0, 0, 6, 195, 76, 147, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			11, 67, 44, 83, 12, 49, 6, 36, 55, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 52, 240, 128, 65, 4,
-			39, 71, 6, 37, 112, 55, 0, 24, 0, 7, 196, 60, 194, 84, 20, 72, 0, 0, 0, 0, 11, 67, 88, 147, 12, 84, 6, 37, 55, 12,
-			0, 0, 0, 0, 0, 0, 0, 16, 66, 32, 16, 107, 6, 36, 49, 12, 47, 35, 34, 37, 47, 0, 24, 14, 66, 20, 112, 50, 6, 127,
-			47, 12, 36, 49, 89, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 67, 16, 148, 128, 72,
-			4, 37, 34, 6, 36, 49, 12, 47, 39, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 12, 66, 33, 32, 107, 6, 121, 51, 51, 35, 0,
-			24, 0, 19, 67, 33, 35, 0, 107, 6, 35, 34, 113, 55, 4, 37, 49, 40, 55, 47, 0, 24, 6, 195, 52, 147, 129, 72, 0, 0, 0,
-			0, 0, 0, 0, 20, 66, 12, 208, 89, 6, 36, 50, 47, 37, 15, 65, 4, 110, 47, 34, 37, 47, 0, 24, 5, 194, 20, 144, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 66, 37, 16, 6, 37, 112, 15, 49, 6, 40, 117, 0, 24, 42, 0, 0, 0, 0, 0, 0, 0, 0,
-			22, 66, 16, 192, 47, 4, 36, 114, 132, 89, 37, 15, 55, 6, 112, 47, 12, 34, 37, 47, 0, 24, 0, 8, 195, 72, 224, 64, 13, 42,
-			42, 0, 7, 196, 60, 193, 77, 20, 72, 0, 0, 0, 0, 0, 0, 0, 21, 67, 40, 225, 64, 57, 4, 108, 15, 50, 4, 112, 15, 6,
-			36, 72, 35, 89, 37, 0, 24, 6, 195, 60, 195, 1, 72, 11, 3, 226, 130, 172, 36, 40, 34, 39, 47, 0, 0, 0, 0, 0, 6, 195,
-			60, 193, 64, 72, 0, 0, 0, 21, 66, 16, 208, 47, 4, 36, 114, 132, 89, 37, 15, 65, 6, 110, 47, 34, 37, 47, 0, 24, 6, 194,
-			40, 16, 72, 8, 0, 0, 0, 0, 0, 8, 195, 20, 242, 192, 13, 42, 42, 6, 195, 60, 194, 64, 72, 0, 0, 0, 18, 67, 65, 35,
-			198, 48, 34, 4, 39, 83, 6, 36, 89, 130, 39, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 7, 195, 56, 147, 135, 72, 8, 0, 0,
-			24, 67, 40, 212, 192, 57, 4, 108, 15, 65, 6, 40, 117, 15, 89, 6, 36, 55, 55, 37, 50, 36, 0, 24, 0, 0, 0, 0, 29, 67,
-			88, 212, 192, 84, 4, 119, 37, 15, 65, 6, 40, 117, 15, 89, 6, 36, 110, 15, 89, 4, 40, 81, 40, 50, 36, 0, 24, 0, 0, 0,
-			13, 66, 41, 32, 57, 6, 117, 67, 37, 39, 34, 0, 24, 7, 194, 37, 64, 13, 42, 42, 10, 4, 95, 98, 114, 118, 49, 108, 34, 0,
-			0, 16, 67, 45, 3, 0, 49, 6, 35, 40, 48, 12, 55, 40, 89, 0, 24, 0, 0, 15, 67, 45, 5, 0, 49, 6, 35, 48, 12, 47,
-			36, 50, 0, 24, 0, 0, 0, 0, 0, 6, 194, 20, 208, 13, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 68, 88, 81, 66, 72,
-			84, 6, 110, 71, 34, 40, 35, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 7, 194, 20, 224, 13, 42, 42, 0, 20, 3, 95, 51, 88,
+		static unsigned char espeakdata_dicts17_data[6778] = {
+			0, 4, 0, 0, 55, 19, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 108, 0, 0, 7, 194, 5, 0, 17, 42, 42, 0, 0, 0,
+			7, 65, 8, 71, 36, 110, 0, 0, 0, 17, 67, 21, 64, 192, 36, 47, 15, 47, 89, 36, 47, 36, 34, 35, 0, 24, 0, 0, 8, 65,
+			12, 47, 89, 36, 110, 0, 0, 0, 0, 0, 7, 65, 16, 72, 36, 110, 0, 0, 0, 0, 7, 196, 76, 83, 12, 20, 76, 6, 195, 76,
+			147, 129, 72, 0, 42, 65, 20, 6, 36, 50, 50, 36, 15, 65, 4, 36, 37, 57, 36, 15, 4, 35, 57, 109, 15, 6, 35, 34, 12, 84,
+			35, 65, 37, 89, 47, 0, 24, 84, 46, 32, 109, 32, 46, 32, 97, 32, 25, 65, 20, 6, 36, 50, 50, 36, 15, 49, 34, 6, 37, 89,
+			12, 47, 40, 89, 47, 0, 24, 81, 107, 114, 32, 6, 65, 20, 36, 110, 0, 0, 0, 16, 67, 76, 18, 128, 89, 6, 35, 57, 109, 50,
+			72, 37, 55, 0, 24, 20, 67, 41, 34, 192, 57, 4, 121, 34, 57, 36, 15, 49, 6, 39, 34, 34, 72, 0, 24, 0, 0, 7, 65, 24,
+			36, 83, 83, 0, 0, 0, 0, 0, 7, 65, 28, 81, 36, 110, 0, 0, 0, 0, 0, 7, 65, 32, 107, 35, 108, 0, 0, 0, 0, 0,
+			13, 1, 36, 47, 39, 55, 12, 55, 35, 34, 37, 47, 0, 6, 65, 36, 37, 112, 0, 0, 16, 1, 37, 48, 34, 39, 47, 89, 6, 36,
+			50, 47, 12, 37, 0, 27, 0, 7, 1, 38, 10, 36, 47, 0, 0, 0, 8, 65, 40, 57, 39, 47, 12, 0, 0, 0, 10, 1, 42, 47,
+			121, 51, 12, 50, 0, 27, 0, 11, 1, 43, 48, 55, 40, 89, 12, 89, 0, 27, 0, 7, 65, 44, 49, 35, 108, 0, 0, 14, 66, 45,
+			0, 49, 6, 117, 48, 6, 121, 36, 84, 0, 24, 0, 0, 15, 1, 47, 49, 35, 55, 12, 72, 15, 49, 34, 112, 48, 89, 0, 0, 7,
+			65, 48, 36, 55, 55, 0, 0, 18, 66, 49, 0, 55, 4, 40, 81, 118, 15, 48, 6, 110, 47, 40, 72, 0, 24, 0, 0, 7, 196, 52,
+			147, 12, 20, 76, 0, 42, 65, 52, 65, 4, 36, 37, 57, 36, 15, 6, 35, 57, 109, 15, 6, 35, 34, 84, 35, 65, 4, 37, 89, 36,
+			15, 57, 6, 121, 34, 81, 37, 0, 84, 46, 32, 97, 32, 46, 32, 106, 32, 7, 65, 52, 36, 65, 65, 0, 0, 0, 0, 0, 7, 65,
+			56, 36, 50, 50, 0, 0, 0, 0, 0, 6, 65, 60, 39, 115, 0, 0, 18, 1, 61, 84, 119, 51, 12, 72, 40, 89, 15, 65, 121, 34,
+			49, 12, 0, 27, 0, 0, 0, 26, 65, 64, 48, 6, 121, 34, 109, 89, 47, 15, 49, 34, 6, 37, 89, 47, 40, 89, 47, 0, 24, 81,
+			107, 114, 32, 7, 1, 64, 10, 121, 47, 0, 7, 65, 64, 48, 36, 110, 0, 0, 0, 0, 0, 7, 65, 68, 49, 40, 117, 0, 0, 0,
+			0, 0, 7, 65, 72, 36, 51, 51, 0, 0, 0, 0, 0, 21, 65, 76, 89, 6, 36, 55, 15, 6, 108, 89, 47, 35, 55, 0, 24, 82,
+			46, 32, 97, 32, 7, 65, 76, 36, 89, 89, 0, 0, 0, 0, 0, 7, 65, 80, 47, 36, 110, 0, 0, 0, 0, 0, 5, 65, 84, 117,
+			0, 0, 0, 0, 0, 7, 65, 88, 84, 36, 110, 0, 0, 7, 194, 5, 48, 17, 42, 42, 0, 0, 13, 4, 95, 49, 77, 52, 71, 37,
+			61, 57, 39, 50, 0, 0, 14, 1, 92, 55, 121, 68, 81, 15, 49, 34, 112, 48, 89, 0, 14, 65, 92, 49, 6, 35, 49, 89, 37, 89,
+			84, 36, 110, 0, 0, 0, 0, 7, 196, 60, 195, 149, 16, 72, 0, 12, 4, 95, 49, 77, 49, 47, 40, 107, 109, 47, 0, 8, 65, 96,
+			37, 49, 12, 89, 0, 0, 6, 194, 4, 64, 17, 24, 13, 4, 95, 49, 77, 50, 65, 37, 61, 57, 39, 50, 0, 0, 14, 4, 95, 49,
+			77, 51, 65, 37, 61, 57, 35, 34, 72, 0, 0, 0, 9, 65, 100, 37, 81, 34, 36, 49, 0, 0, 0, 0, 0, 9, 65, 104, 47, 89,
+			36, 47, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 66, 12, 16, 47, 89, 6, 37, 34, 49, 35, 0, 24, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 48, 147,
+			12, 55, 6, 37, 55, 12, 0, 0, 0, 8, 132, 1, 195, 188, 5, 17, 42, 0, 0, 0, 0, 13, 5, 16, 195, 181, 12, 12, 48, 6,
+			119, 55, 12, 0, 0, 0, 14, 67, 5, 81, 192, 6, 35, 117, 81, 40, 89, 47, 0, 24, 0, 0, 0, 0, 0, 7, 196, 44, 83, 12,
+			20, 76, 0, 0, 0, 18, 67, 41, 50, 192, 57, 4, 35, 39, 89, 49, 6, 39, 50, 50, 72, 0, 24, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 20, 66, 16, 32, 47, 4, 36, 114, 132, 89, 37, 15, 71, 6, 36, 55, 55, 37, 0, 24, 0, 0, 0, 0, 20, 67,
+			72, 213, 11, 34, 6, 108, 65, 35, 47, 40, 15, 49, 6, 39, 81, 40, 0, 24, 0, 0, 0, 0, 14, 66, 17, 32, 47, 6, 39, 49,
+			12, 47, 39, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 195, 20, 112, 64, 72, 8, 0, 0, 0, 0, 7, 195, 4, 112, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56,
+			81, 68, 76, 0, 0, 0, 0, 0, 0, 0, 0, 23, 67, 73, 66, 128, 34, 4, 35, 40, 72, 15, 47, 6, 36, 110, 15, 57, 6, 35,
+			108, 65, 0, 24, 6, 195, 56, 82, 68, 76, 0, 11, 4, 95, 4, 16, 20, 49, 39, 65, 109, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+			67, 77, 35, 128, 89, 6, 40, 34, 34, 50, 40, 72, 0, 24, 6, 195, 56, 82, 76, 76, 0, 0, 0, 0, 0, 12, 4, 95, 20, 12,
+			4, 47, 37, 55, 72, 36, 0, 15, 3, 95, 35, 57, 47, 35, 71, 40, 55, 108, 47, 39, 34, 0, 0, 10, 67, 4, 195, 0, 6, 35,
+			55, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 56, 83, 132, 20, 76, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 67, 60, 176, 89, 39, 49, 6, 36, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 52, 240,
+			128, 65, 4, 39, 71, 6, 37, 112, 55, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 66, 32, 16, 107, 6, 36, 49,
+			12, 47, 35, 34, 37, 47, 0, 24, 14, 66, 20, 112, 50, 6, 127, 47, 12, 36, 49, 89, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 195, 60, 195, 1, 72, 0, 0, 0, 0, 0, 18, 67, 16, 148, 128, 72, 4, 37, 34, 6, 36, 49, 12, 47, 39,
+			34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 12, 66, 33, 32, 107, 6, 121, 51, 51, 35, 0, 24, 0, 19, 67, 33, 35, 0, 107, 6,
+			35, 34, 113, 55, 4, 37, 49, 40, 55, 47, 0, 24, 0, 0, 0, 0, 0, 0, 0, 20, 66, 12, 208, 89, 6, 36, 50, 47, 37, 15,
+			65, 4, 110, 47, 34, 37, 47, 0, 24, 5, 194, 20, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 15, 66, 37, 16, 6, 37, 112, 15,
+			49, 6, 40, 117, 0, 24, 42, 0, 0, 0, 0, 0, 0, 0, 0, 22, 66, 16, 192, 47, 4, 36, 114, 132, 89, 37, 15, 55, 6, 112,
+			47, 12, 34, 37, 47, 0, 24, 0, 8, 195, 72, 224, 64, 17, 42, 42, 0, 0, 0, 0, 0, 0, 11, 67, 57, 83, 142, 50, 6, 40,
+			50, 12, 0, 0, 0, 21, 67, 40, 225, 64, 57, 4, 108, 15, 50, 4, 112, 15, 6, 36, 72, 35, 89, 37, 0, 24, 6, 195, 60, 193,
+			68, 72, 11, 3, 226, 130, 172, 36, 40, 34, 39, 47, 0, 0, 0, 0, 0, 6, 195, 60, 193, 64, 72, 0, 0, 0, 21, 66, 16, 208,
+			47, 4, 36, 114, 132, 89, 37, 15, 65, 6, 110, 47, 34, 37, 47, 0, 24, 6, 194, 40, 16, 72, 8, 0, 6, 195, 60, 194, 68, 72,
+			0, 0, 0, 0, 8, 195, 20, 242, 192, 17, 42, 42, 6, 195, 60, 194, 64, 72, 0, 0, 0, 0, 0, 0, 6, 195, 60, 194, 78, 72,
+			0, 0, 0, 0, 0, 0, 24, 67, 40, 212, 192, 57, 4, 108, 15, 65, 6, 40, 117, 15, 89, 6, 36, 55, 55, 37, 50, 36, 0, 24,
+			0, 0, 0, 0, 29, 67, 88, 212, 192, 84, 4, 119, 37, 15, 65, 6, 40, 117, 15, 89, 6, 36, 110, 15, 89, 4, 40, 81, 40, 50,
+			36, 0, 24, 0, 0, 0, 13, 66, 41, 32, 57, 6, 117, 67, 37, 39, 34, 0, 24, 7, 194, 37, 64, 17, 42, 42, 0, 16, 67, 45,
+			3, 0, 49, 6, 35, 40, 48, 12, 55, 40, 89, 0, 24, 0, 0, 15, 67, 45, 5, 0, 49, 6, 35, 48, 12, 47, 36, 50, 0, 24,
+			14, 69, 100, 241, 213, 73, 64, 57, 39, 81, 40, 34, 47, 0, 0, 0, 0, 0, 0, 6, 194, 20, 208, 17, 24, 0, 0, 0, 6, 195,
+			60, 193, 78, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 194, 20, 224, 17, 42, 42, 0, 20, 3, 95, 51, 88,
 			49, 6, 39, 55, 65, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 11, 3, 95, 48, 67, 89, 35, 72, 109, 10, 0, 0, 0, 0,
-			0, 0, 20, 67, 72, 213, 11, 34, 6, 108, 65, 35, 47, 40, 15, 49, 6, 39, 81, 40, 0, 24, 0, 17, 66, 41, 64, 57, 4, 108,
-			15, 47, 6, 36, 37, 89, 36, 72, 0, 24, 0, 0, 10, 3, 95, 49, 67, 89, 35, 72, 109, 0, 0, 14, 67, 45, 37, 0, 49, 6,
-			39, 34, 47, 36, 34, 0, 24, 0, 0, 0, 0, 0, 18, 3, 95, 49, 57, 6, 125, 107, 36, 49, 89, 35, 47, 36, 37, 89, 47, 0,
-			0, 18, 67, 61, 50, 192, 6, 39, 89, 109, 15, 49, 6, 39, 50, 50, 72, 0, 24, 19, 3, 95, 49, 56, 49, 6, 35, 107, 36, 49,
-			89, 35, 47, 36, 37, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49, 125, 49, 89, 47, 36, 37, 89, 47, 0, 0,
-			12, 3, 95, 49, 48, 49, 6, 125, 65, 65, 36, 0, 0, 16, 3, 95, 49, 51, 49, 6, 39, 55, 65, 47, 36, 37, 89, 47, 0, 0,
-			16, 3, 95, 49, 50, 49, 6, 35, 49, 89, 47, 36, 37, 89, 47, 0, 0, 15, 3, 95, 49, 53, 84, 6, 112, 89, 47, 36, 37, 89,
-			47, 0, 0, 16, 3, 95, 49, 52, 50, 6, 36, 55, 37, 47, 36, 37, 89, 47, 0, 0, 18, 3, 95, 49, 55, 89, 6, 36, 37, 47,
-			89, 36, 47, 36, 37, 89, 47, 0, 0, 15, 3, 95, 49, 54, 49, 6, 117, 89, 47, 36, 37, 89, 47, 0, 0, 11, 66, 44, 64, 49,
-			6, 128, 72, 36, 0, 24, 0, 22, 3, 95, 55, 88, 89, 6, 36, 37, 47, 89, 36, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 12, 66, 41, 96, 57, 6, 121, 34, 34, 84, 0, 24, 6, 194, 45, 64, 13, 24, 0, 0, 0, 0, 0, 12,
-			4, 95, 97, 99, 117, 35, 49, 6, 117, 47, 0, 0, 0, 0, 7, 194, 52, 16, 13, 42, 42, 5, 194, 52, 16, 72, 0, 0, 6, 65,
-			160, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 50, 88, 49, 6, 35, 49, 89, 15, 49, 4, 125, 65, 65, 36, 50, 72,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 63, 63, 65, 6, 121, 34, 49, 0, 0, 0, 13, 66, 53,
-			32, 65, 6, 37, 89, 47, 36, 34, 0, 24, 0, 20, 3, 95, 52, 88, 50, 6, 36, 55, 113, 15, 49, 4, 125, 65, 65, 36, 50, 72,
-			0, 0, 0, 0, 0, 6, 195, 76, 81, 64, 76, 0, 0, 6, 195, 56, 17, 0, 72, 0, 17, 66, 44, 112, 49, 4, 37, 55, 116, 81,
-			34, 6, 35, 65, 65, 0, 24, 0, 7, 195, 20, 130, 192, 72, 8, 19, 3, 95, 53, 88, 84, 6, 112, 89, 15, 49, 4, 125, 65, 65,
-			36, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 62, 176, 13, 19, 3, 95, 54, 88, 49, 6, 117, 89, 15, 49, 4, 125,
-			65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 23, 66, 46, 176, 49, 6, 39, 34, 47, 36, 34, 37, 15, 6, 125, 107, 4, 37, 89, 47,
-			40, 0, 24, 0, 0, 0, 21, 66, 40, 160, 57, 4, 108, 15, 57, 6, 121, 34, 34, 81, 65, 37, 89, 36, 72, 0, 24, 0, 16, 67,
-			5, 4, 128, 4, 35, 48, 48, 34, 6, 37, 61, 61, 0, 24, 0, 0, 0, 0, 0, 7, 196, 52, 147, 12, 20, 76, 0, 0, 14, 66,
-			57, 32, 50, 6, 40, 65, 65, 71, 36, 34, 0, 24, 0, 23, 3, 95, 56, 88, 49, 6, 35, 107, 36, 49, 89, 35, 15, 49, 4, 125,
-			65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80, 72, 0, 22, 3, 95, 57, 88, 6, 125, 107, 36, 49, 89,
-			35, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 66, 57, 64, 50, 6, 127, 47, 36, 49, 89, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 20, 66, 52, 112,
-			65, 4, 37, 61, 61, 37, 15, 81, 34, 6, 35, 65, 65, 37, 0, 24, 15, 66, 40, 208, 57, 4, 108, 15, 65, 6, 40, 117, 72, 0,
-			24, 0, 18, 67, 65, 34, 192, 48, 6, 36, 34, 111, 15, 49, 6, 39, 50, 72, 0, 24, 0, 0, 0, 0, 24, 67, 40, 213, 0, 57,
-			4, 108, 15, 65, 6, 40, 117, 72, 15, 47, 6, 36, 37, 89, 36, 72, 0, 24, 29, 67, 76, 82, 128, 89, 6, 115, 57, 40, 89, 15,
-			36, 55, 6, 36, 49, 47, 34, 37, 15, 57, 6, 35, 108, 65, 0, 42, 42, 0, 0, 0, 12, 4, 95, 99, 105, 114, 49, 35, 47, 40,
-			89, 0, 6, 65, 172, 125, 126, 0, 0, 19, 67, 93, 67, 192, 84, 4, 110, 15, 47, 4, 110, 15, 6, 39, 115, 0, 42, 42, 0, 13,
-			4, 95, 48, 77, 52, 71, 37, 61, 57, 39, 50, 0, 0, 0, 13, 4, 95, 48, 77, 50, 65, 37, 61, 57, 39, 50, 0, 0, 14, 4,
-			95, 48, 77, 51, 65, 37, 61, 57, 35, 34, 72, 0, 0, 0, 12, 4, 95, 48, 77, 49, 47, 40, 107, 109, 47, 0, 0, 18, 66, 52,
-			128, 65, 6, 40, 117, 15, 107, 6, 40, 55, 81, 35, 89, 0, 24, 12, 66, 40, 224, 57, 6, 115, 67, 37, 89, 0, 24, 0, 0, 0,
-			0, 0, 0, 0, 14, 67, 65, 35, 0, 48, 34, 6, 36, 37, 55, 37, 0, 24, 0, 12, 66, 65, 32, 48, 34, 6, 39, 40, 35, 0,
-			24, 0, 0, 0, 0, 0, 18, 67, 56, 245, 128, 50, 4, 39, 84, 6, 36, 65, 65, 71, 36, 34, 0, 24, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 8, 197, 52, 147, 12, 21, 48, 76, 0, 0, 0, 0, 0, 0, 18, 67, 65, 53, 0, 48, 6, 40, 37, 57, 36, 89,
-			15, 47, 4, 110, 0, 24, 0, 0, 0, 0, 17, 67, 44, 225, 0, 49, 4, 35, 67, 72, 37, 72, 6, 108, 47, 0, 24, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 67, 16, 85, 19, 47, 4, 36, 47, 89, 6, 36, 65, 65, 71, 36, 34, 0, 24, 0, 11,
-			4, 95, 99, 101, 100, 89, 36, 72, 112, 0, 0, 0, 16, 66, 52, 176, 65, 6, 108, 15, 49, 6, 39, 50, 50, 72, 0, 24, 0, 15,
-			67, 44, 241, 0, 49, 6, 39, 72, 109, 50, 37, 49, 0, 24, 0, 0, 0, 0, 16, 67, 76, 82, 192, 89, 6, 36, 49, 118, 50, 72,
-			37, 47, 0, 24, 0, 0, 0, 0, 0, 10, 4, 95, 99, 97, 112, 89, 117, 34, 0, 0, 0, 0, 21, 67, 28, 211, 192, 81, 6, 36,
-			110, 15, 4, 36, 65, 65, 15, 6, 39, 115, 0, 24, 42, 0, 0, 13, 67, 72, 35, 0, 34, 6, 40, 71, 55, 35, 0, 24, 0, 20,
-			66, 52, 192, 65, 4, 37, 61, 61, 37, 15, 55, 6, 112, 47, 34, 37, 47, 0, 24, 0, 17, 67, 52, 193, 0, 65, 6, 37, 61, 57,
-			35, 34, 72, 37, 47, 0, 24, 6, 195, 52, 148, 192, 76, 0, 0, 0, 0, 6, 195, 44, 84, 192, 76, 0, 0, 26, 67, 77, 3, 0,
-			89, 6, 40, 48, 113, 15, 55, 4, 40, 89, 37, 49, 35, 15, 47, 6, 127, 47, 12, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			7, 196, 88, 82, 68, 36, 72, 8, 197, 52, 147, 12, 20, 192, 76, 5, 194, 76, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 72, 69, 0, 34, 4, 35, 40, 72, 15, 47, 6, 110, 0, 24, 16, 67, 52,
-			229, 0, 65, 6, 108, 50, 15, 47, 6, 36, 110, 0, 24, 0, 0, 0, 16, 3, 115, 46, 111, 89, 6, 36, 110, 15, 6, 39, 50, 50,
-			0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 10, 66, 60, 176, 39, 49, 6, 36, 112, 0, 5, 194, 80, 16, 72, 0, 0, 0, 0, 0,
-			16, 67, 60, 181, 0, 4, 39, 49, 47, 6, 115, 71, 36, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 66, 56,
-			224, 50, 6, 37, 112, 15, 50, 6, 37, 65, 36, 47, 4, 35, 47, 40, 72, 0, 24, 0, 13, 67, 52, 164, 128, 65, 6, 35, 57, 116,
-			34, 0, 24, 0, 0, 0, 13, 4, 95, 103, 114, 118, 81, 34, 108, 84, 37, 89, 0, 0, 0, 6, 195, 60, 193, 68, 72, 0, 0, 12,
-			66, 81, 32, 47, 34, 6, 125, 49, 12, 0, 24, 20, 66, 77, 64, 89, 6, 36, 110, 15, 47, 6, 121, 107, 36, 50, 72, 35, 71, 0,
-			24, 0, 0, 0, 0, 11, 67, 57, 83, 142, 50, 6, 40, 50, 12, 0, 0, 0, 18, 3, 195, 181, 97, 6, 119, 48, 12, 36, 15, 4,
-			108, 89, 47, 35, 0, 24, 0, 0, 12, 2, 194, 164, 84, 35, 55, 6, 117, 47, 35, 0, 0, 0, 0, 10, 2, 194, 163, 50, 35, 110,
-			55, 35, 0, 0, 0, 0, 0, 0, 7, 2, 195, 164, 121, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 60, 224, 72, 0, 6,
-			195, 4, 32, 192, 13, 0, 6, 195, 56, 81, 68, 76, 0, 0, 0, 0, 0, 7, 195, 6, 177, 64, 13, 42, 0, 0, 7, 2, 195, 181,
-			119, 120, 0, 0, 0, 0, 15, 70, 100, 241, 200, 85, 37, 0, 57, 39, 81, 40, 34, 47, 0, 0, 0, 0, 15, 67, 80, 83, 0, 47,
-			6, 36, 55, 111, 83, 39, 50, 0, 24, 0, 5, 194, 80, 80, 72, 0, 16, 67, 80, 194, 192, 47, 6, 119, 61, 49, 37, 50, 40, 72,
-			0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 195, 181, 112, 6, 119, 48, 111, 47, 4, 35, 57, 35, 0, 24,
-			0, 0, 0, 19, 66, 76, 128, 89, 6, 36, 35, 55, 15, 107, 4, 40, 55, 81, 35, 89, 0, 24, 0, 0, 0, 0, 0, 0, 6, 195,
-			60, 194, 68, 72, 0, 0, 0, 15, 67, 89, 33, 0, 84, 6, 119, 34, 34, 72, 55, 36, 0, 24, 0, 0, 6, 195, 80, 82, 69, 72,
-			6, 195, 52, 82, 69, 72, 0, 0, 0, 0, 0, 0, 0, 19, 67, 76, 84, 20, 89, 6, 36, 48, 47, 6, 36, 65, 65, 71, 36, 34,
-			0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 53, 74, 192, 13, 42, 0, 0, 0, 0, 0, 7, 196, 60, 193,
-			84, 20, 72, 6, 195, 56, 82, 68, 76, 0, 0, 0, 8, 195, 85, 48, 64, 13, 42, 42, 0, 0, 12, 4, 195, 164, 115, 115, 6, 121,
-			89, 12, 89, 0, 0, 12, 66, 89, 64, 84, 6, 35, 108, 47, 35, 0, 24, 7, 194, 85, 96, 13, 42, 42, 0, 6, 195, 37, 49, 64,
-			72, 0, 11, 67, 33, 83, 12, 107, 6, 40, 55, 12, 0, 0, 0, 0, 0, 0, 0, 16, 66, 92, 48, 84, 6, 36, 110, 15, 47, 89,
-			6, 36, 110, 0, 24, 0, 17, 67, 65, 66, 192, 48, 4, 36, 35, 15, 47, 6, 125, 49, 12, 0, 24, 0, 0, 0, 0, 12, 2, 95,
-			35, 47, 34, 36, 61, 61, 37, 72, 0, 0, 15, 2, 95, 34, 57, 40, 47, 118, 65, 4, 121, 34, 49, 12, 0, 0, 16, 2, 95, 33,
-			107, 129, 12, 57, 40, 65, 4, 121, 34, 49, 12, 0, 0, 0, 13, 2, 95, 39, 125, 55, 109, 15, 49, 39, 65, 35, 0, 0, 16, 2,
-			95, 38, 57, 6, 35, 108, 15, 65, 4, 121, 34, 49, 12, 0, 0, 15, 2, 95, 37, 48, 34, 39, 47, 89, 36, 50, 47, 12, 0, 66,
-			15, 2, 95, 37, 48, 34, 39, 47, 89, 6, 36, 50, 47, 12, 0, 0, 12, 2, 95, 36, 47, 39, 55, 12, 55, 35, 34, 0, 0, 0,
-			0, 18, 2, 95, 41, 55, 119, 48, 36, 47, 35, 84, 15, 89, 40, 55, 12, 81, 0, 0, 18, 2, 95, 40, 35, 55, 118, 89, 47, 35,
-			84, 15, 89, 40, 55, 12, 81, 0, 0, 0, 11, 2, 95, 46, 48, 40, 50, 49, 12, 47, 0, 0, 10, 2, 95, 45, 49, 34, 112, 48,
-			89, 0, 0, 9, 2, 95, 44, 49, 39, 65, 109, 0, 0, 14, 67, 53, 36, 192, 65, 6, 37, 131, 131, 37, 89, 0, 24, 11, 2, 95,
-			51, 49, 6, 39, 55, 12, 65, 0, 0, 11, 2, 95, 50, 49, 6, 35, 49, 12, 89, 0, 0, 10, 2, 95, 49, 6, 125, 49, 12, 89,
-			0, 0, 11, 2, 95, 48, 50, 6, 40, 55, 12, 55, 0, 0, 12, 2, 95, 55, 89, 6, 36, 37, 47, 89, 36, 0, 0, 10, 2, 95,
-			54, 49, 6, 40, 117, 89, 0, 0, 10, 2, 95, 53, 84, 6, 37, 112, 89, 0, 0, 10, 2, 95, 52, 50, 6, 36, 55, 113, 0, 0,
-			0, 10, 2, 95, 58, 49, 115, 55, 39, 50, 0, 0, 12, 2, 95, 57, 6, 125, 107, 36, 49, 89, 35, 0, 0, 12, 66, 80, 176, 47,
-			6, 125, 49, 12, 37, 0, 24, 13, 2, 95, 56, 49, 6, 35, 107, 36, 49, 89, 35, 0, 0, 15, 2, 95, 63, 49, 125, 131, 113, 65,
-			4, 121, 34, 49, 12, 0, 0, 10, 2, 95, 62, 89, 117, 34, 36, 65, 0, 0, 0, 12, 2, 95, 60, 84, 127, 49, 12, 89, 36, 65,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 67, 76, 225, 0, 89, 6, 125, 67, 67, 72, 37, 50, 40, 72, 0, 24, 0,
-			0, 8, 195, 16, 224, 64, 13, 42, 42, 0, 7, 196, 60, 194, 77, 20, 72, 0, 7, 65, 212, 91, 35, 108, 0, 0, 0, 0, 14, 4,
-			110, 195, 164, 100, 50, 6, 121, 72, 109, 55, 0, 24, 0, 7, 196, 60, 195, 149, 16, 72, 0, 0, 21, 67, 20, 177, 192, 6, 36, 110,
-			15, 49, 4, 35, 108, 15, 81, 6, 36, 110, 0, 24, 42, 0, 6, 195, 56, 82, 76, 76, 0, 0, 6, 195, 60, 194, 78, 72, 0, 6,
-			195, 80, 83, 65, 72, 31, 2, 95, 91, 6, 35, 55, 118, 89, 47, 35, 84, 15, 49, 6, 35, 50, 72, 37, 62, 37, 50, 36, 15, 89,
-			6, 40, 55, 12, 81, 0, 0, 11, 4, 95, 226, 130, 172, 36, 40, 34, 39, 0, 0, 0, 0, 14, 2, 95, 95, 35, 55, 12, 55, 49,
-			34, 112, 48, 89, 0, 0, 11, 67, 76, 149, 20, 89, 6, 37, 47, 12, 0, 0, 32, 2, 95, 93, 55, 6, 119, 48, 36, 47, 35, 84,
-			15, 49, 6, 35, 50, 72, 37, 55, 4, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198,
-			60, 193, 75, 76, 147, 128, 72, 0, 0, 0, 0, 0, 12, 66, 80, 224, 47, 6, 121, 50, 109, 84, 0, 24, 0, 0, 0, 0, 0, 17,
-			67, 64, 212, 192, 48, 6, 36, 35, 65, 37, 89, 36, 55, 47, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2, 95, 123, 35, 55,
-			118, 89, 47, 35, 84, 15, 55, 6, 115, 81, 36, 55, 4, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0, 0, 0, 0, 0, 0, 0,
-			30, 2, 95, 125, 55, 119, 48, 36, 47, 35, 84, 15, 55, 6, 115, 81, 36, 55, 4, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 68, 76, 80, 76, 32,
-			89, 6, 36, 35, 55, 15, 107, 4, 40, 55, 81, 35, 89, 0, 24, 0, 13, 4, 95, 35, 51, 50, 47, 6, 125, 107, 37, 49, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 52, 195, 128, 65, 6, 37, 61, 57, 39, 50, 37, 47, 0, 24, 8, 195,
-			5, 67, 64, 13, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			8, 132, 118, 195, 181, 105, 72, 8, 0, 0, 0, 0, 0, 0, 0, 14, 69, 100, 241, 213, 73, 64, 57, 39, 81, 40, 34, 47, 0, 0,
-			13, 66, 6, 176, 6, 35, 108, 15, 6, 125, 126, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 20, 67, 8, 32, 192, 71, 4, 112, 15,
-			71, 4, 112, 15, 89, 6, 37, 112, 0, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 18, 67, 44, 130, 192, 49, 4, 37, 107, 111, 55, 49, 6, 39, 50, 72, 0, 24, 0, 7, 65, 228, 90, 36, 110, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 56, 82, 76, 20, 76, 0, 0, 0, 0, 0, 0, 0, 8, 195, 5, 69, 128, 13, 42,
-			42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 105, 0, 106, 0, 7, 6, 18, 67,
-			98, 0, 100, 0, 102, 0, 103, 0, 104, 0, 106, 0, 108, 0, 109, 0, 110, 0, 114, 0, 115, 0, 118, 0, 7, 6, 18, 68, 108, 0,
-			109, 0, 110, 0, 114, 0, 7, 6, 18, 69, 195, 181, 0, 195, 164, 0, 195, 182, 0, 195, 188, 0, 97, 0, 98, 0, 99, 0, 100, 0,
-			101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 111, 0, 112, 0, 113, 0, 114, 0, 115, 0,
-			116, 0, 117, 0, 118, 0, 7, 6, 18, 70, 195, 181, 0, 195, 164, 0, 195, 182, 0, 195, 188, 0, 97, 0, 101, 0, 105, 0, 108, 0,
-			109, 0, 110, 0, 111, 0, 114, 0, 117, 0, 7, 6, 195, 164, 0, 101, 2, 32, 3, 6, 121, 110, 0, 111, 3, 6, 121, 115, 0, 117,
-			2, 32, 3, 6, 121, 117, 0, 4, 195, 164, 1, 29, 2, 18, 67, 32, 3, 6, 121, 122, 0, 195, 164, 1, 29, 2, 32, 0, 195, 164,
-			3, 6, 122, 0, 105, 2, 32, 3, 6, 127, 12, 0, 3, 121, 0, 105, 3, 127, 0, 7, 6, 195, 181, 0, 97, 3, 6, 119, 108, 0,
-			101, 2, 32, 3, 6, 119, 110, 0, 105, 2, 32, 3, 6, 119, 112, 0, 111, 3, 6, 119, 115, 0, 117, 2, 32, 3, 6, 119, 117, 0,
-			4, 195, 181, 1, 29, 2, 18, 67, 32, 3, 6, 119, 120, 0, 195, 181, 1, 29, 2, 32, 0, 195, 181, 3, 6, 120, 0, 3, 119, 0,
-			117, 3, 119, 40, 0, 7, 6, 195, 182, 0, 97, 3, 6, 123, 108, 0, 101, 3, 6, 123, 110, 0, 4, 195, 182, 1, 29, 2, 18, 67,
-			32, 3, 6, 123, 124, 0, 195, 182, 1, 29, 2, 32, 0, 195, 182, 3, 6, 124, 0, 3, 123, 0, 105, 3, 128, 0, 7, 6, 195, 188,
-			0, 4, 195, 188, 1, 29, 2, 18, 67, 32, 3, 6, 125, 126, 0, 195, 188, 1, 29, 2, 32, 0, 195, 188, 3, 6, 126, 0, 3, 125,
-			0, 109, 98, 114, 105, 3, 125, 65, 71, 34, 37, 0, 4, 105, 3, 129, 0, 195, 188, 2, 106, 97, 0, 195, 188, 2, 97, 3, 129, 57,
-			0, 7, 6, 97, 0, 4, 97, 1, 29, 2, 18, 67, 32, 3, 6, 35, 108, 0, 97, 1, 29, 2, 32, 0, 101, 2, 32, 3, 6, 35,
-			110, 0, 105, 2, 32, 3, 6, 35, 112, 0, 111, 3, 6, 35, 115, 0, 117, 2, 32, 3, 6, 35, 117, 0, 97, 3, 6, 108, 0, 3,
-			35, 0, 109, 98, 105, 3, 35, 65, 71, 37, 0, 1, 105, 17, 65, 3, 57, 35, 0, 4, 1, 117, 97, 3, 58, 35, 0, 1, 117, 117,
-			0, 1, 117, 181, 195, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 109, 0, 8, 18, 67, 17, 65, 17, 67, 2, 25, 0, 7, 6, 98,
-			0, 8, 3, 48, 0, 3, 71, 0, 7, 6, 99, 0, 4, 2, 101, 3, 47, 89, 0, 2, 105, 0, 3, 49, 0, 104, 8, 3, 76, 0,
-			8, 2, 101, 3, 89, 0, 105, 116, 121, 3, 89, 37, 47, 37, 0, 7, 6, 100, 0, 8, 3, 47, 0, 4, 3, 72, 0, 1, 21, 21,
-			2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 1, 10, 2, 18, 66, 3, 133, 0, 7, 6, 101, 0, 97, 2, 32, 3, 6, 36, 108, 0,
-			4, 101, 1, 29, 2, 18, 67, 32, 3, 6, 36, 110, 0, 101, 1, 29, 2, 32, 0, 105, 2, 32, 3, 6, 36, 112, 0, 111, 3, 6,
-			36, 115, 0, 101, 3, 6, 110, 0, 3, 36, 0, 1, 105, 17, 65, 3, 57, 36, 0, 4, 1, 117, 97, 3, 58, 36, 0, 1, 117, 117,
-			0, 1, 117, 181, 195, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 111, 0, 8, 18, 67, 17, 65, 17, 67, 2, 25, 0, 7, 6, 102,
-			0, 3, 83, 0, 7, 6, 103, 0, 8, 3, 49, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 1, 97, 108, 2, 116, 105, 3, 107,
-			107, 0, 7, 6, 105, 0, 4, 105, 1, 29, 2, 18, 67, 32, 3, 6, 37, 112, 0, 105, 1, 29, 2, 32, 0, 105, 3, 6, 112, 0,
-			3, 37, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 113, 0, 8, 18, 67, 17, 65, 17, 67, 2, 25, 0, 7, 6, 106, 0, 97, 122,
-			122, 3, 47, 90, 121, 89, 12, 0, 3, 57, 0, 106, 3, 57, 12, 0, 117, 109, 98, 117, 3, 57, 40, 65, 71, 40, 0, 7, 6, 107,
-			0, 3, 49, 0, 97, 117, 103, 101, 3, 49, 6, 35, 117, 81, 36, 0, 4, 1, 17, 65, 2, 18, 68, 3, 49, 12, 0, 1, 17, 65,
-			17, 65, 2, 18, 70, 0, 1, 18, 68, 17, 65, 2, 18, 70, 0, 107, 0, 97, 109, 98, 97, 3, 49, 35, 65, 71, 35, 0, 105, 109,
-			98, 97, 116, 117, 115, 3, 49, 37, 65, 71, 35, 47, 40, 89, 0, 105, 109, 98, 117, 3, 49, 37, 65, 71, 40, 0, 7, 6, 108, 0,
-			4, 3, 55, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 4, 108, 1, 21, 21, 2, 105, 3, 55, 12, 0, 108, 1,
-			25, 2, 105, 0, 4, 1, 10, 2, 18, 66, 3, 61, 0, 1, 10, 2, 100, 18, 66, 0, 1, 10, 2, 103, 18, 66, 0, 1, 10, 2,
-			107, 18, 66, 0, 1, 10, 2, 110, 105, 0, 1, 10, 2, 115, 11, 105, 0, 1, 10, 2, 115, 105, 0, 1, 10, 2, 116, 105, 0, 2,
-			115, 115, 32, 0, 108, 1, 10, 2, 105, 3, 61, 12, 0, 108, 1, 17, 65, 2, 32, 3, 114, 61, 12, 0, 7, 6, 109, 0, 4, 3,
-			65, 0, 1, 10, 2, 98, 17, 65, 11, 0, 1, 10, 2, 98, 3, 65, 65, 0, 7, 6, 110, 0, 4, 3, 50, 0, 1, 17, 65, 10,
-			2, 108, 18, 66, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 110, 1, 105, 2, 32, 3, 50, 12, 0, 4, 110, 1,
-			17, 65, 21, 2, 32, 3, 50, 50, 0, 110, 1, 21, 21, 2, 105, 0, 110, 1, 25, 2, 105, 0, 4, 1, 10, 2, 18, 66, 3, 67,
-			0, 1, 10, 2, 100, 18, 66, 0, 1, 10, 2, 115, 105, 0, 1, 10, 2, 116, 32, 0, 1, 10, 2, 116, 105, 0, 2, 115, 116, 32,
-			0, 110, 1, 10, 2, 105, 3, 67, 12, 0, 4, 2, 32, 103, 3, 68, 0, 2, 32, 107, 0, 2, 103, 0, 2, 107, 0, 110, 1, 17,
-			65, 2, 32, 3, 114, 67, 12, 0, 7, 6, 111, 0, 97, 3, 6, 39, 108, 0, 101, 2, 32, 3, 6, 39, 110, 0, 105, 2, 32, 3,
-			6, 39, 112, 0, 4, 111, 1, 29, 2, 18, 67, 32, 3, 6, 39, 115, 0, 111, 1, 29, 2, 32, 0, 111, 3, 6, 115, 0, 4, 3,
-			39, 0, 1, 105, 105, 0, 1, 105, 17, 65, 3, 57, 39, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 116, 0, 8, 18, 67, 17, 65,
-			17, 67, 2, 25, 0, 7, 6, 112, 0, 3, 48, 0, 4, 1, 17, 65, 17, 65, 2, 18, 70, 3, 48, 12, 0, 1, 18, 68, 17, 65,
-			2, 32, 0, 112, 0, 7, 6, 113, 0, 3, 49, 0, 113, 3, 49, 12, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 3, 34, 0, 4,
-			1, 101, 107, 2, 103, 101, 3, 51, 51, 0, 1, 181, 195, 107, 2, 103, 101, 0, 114, 0, 7, 6, 115, 0, 4, 3, 89, 0, 1, 10,
-			2, 108, 18, 66, 0, 1, 10, 2, 110, 18, 66, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 195, 188, 109, 98, 111,
-			108, 105, 115, 101, 101, 114, 3, 89, 4, 125, 65, 71, 39, 55, 37, 89, 6, 110, 34, 0, 111, 109, 98, 117, 3, 89, 39, 65, 71, 40,
-			0, 4, 115, 1, 21, 21, 2, 105, 3, 89, 89, 0, 115, 1, 25, 2, 105, 0, 115, 3, 89, 130, 0, 4, 99, 104, 1, 25, 3, 91,
-			0, 104, 1, 25, 0, 115, 1, 17, 65, 2, 32, 3, 114, 131, 12, 0, 4, 1, 10, 2, 18, 66, 3, 131, 0, 1, 10, 2, 100, 105,
-			0, 1, 17, 65, 2, 116, 105, 0, 115, 1, 10, 2, 105, 3, 131, 131, 0, 7, 6, 116, 0, 4, 3, 47, 0, 1, 21, 21, 2, 18,
-			66, 0, 1, 21, 21, 2, 115, 105, 0, 1, 25, 2, 18, 66, 0, 4, 1, 17, 65, 2, 18, 68, 3, 47, 12, 0, 1, 17, 65, 17,
-			65, 2, 18, 70, 0, 1, 97, 109, 10, 2, 97, 32, 0, 116, 0, 116, 1, 21, 21, 2, 105, 0, 116, 1, 25, 2, 105, 0, 97, 109,
-			98, 117, 3, 47, 35, 65, 71, 40, 0, 117, 109, 98, 97, 3, 47, 40, 65, 71, 35, 0, 1, 17, 65, 10, 2, 115, 105, 3, 114, 132,
-			0, 116, 1, 17, 65, 29, 2, 32, 3, 114, 132, 12, 0, 4, 1, 10, 2, 18, 66, 3, 132, 0, 1, 10, 2, 108, 18, 66, 0, 1,
-			10, 2, 110, 18, 66, 0, 116, 1, 10, 2, 105, 3, 132, 12, 0, 7, 6, 117, 0, 105, 2, 32, 3, 6, 40, 112, 0, 4, 117, 1,
-			29, 2, 18, 67, 32, 3, 6, 40, 117, 0, 117, 1, 29, 2, 32, 0, 117, 3, 6, 117, 0, 4, 3, 40, 0, 1, 105, 105, 0, 1,
-			105, 17, 65, 3, 57, 40, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 118, 0, 8, 18, 67, 17, 65, 17, 67, 2, 25, 0, 7, 6,
-			118, 0, 3, 84, 0, 97, 98, 97, 114, 105, 105, 3, 84, 6, 35, 71, 35, 34, 4, 37, 37, 0, 101, 109, 98, 117, 3, 84, 36, 65,
-			71, 40, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 120, 3, 49, 12, 89, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 37,
-			0, 105, 3, 57, 37, 0, 121, 3, 126, 0, 7, 6, 122, 0, 122, 3, 47, 89, 0, 3, 88, 0, 104, 1, 25, 3, 90, 0, 7, 6,
-			0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 45, 8, 32, 2, 32, 15, 3, 65,
-			112, 50, 40, 89, 0, 197, 190, 3, 90, 0, 197, 161, 3, 91, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts17 = FileInMemory_createWithData (6767, reinterpret_cast<const char *> (&espeakdata_dicts17_data), 
-			U"espeak-1.48.04-source/espeak-data/et_dict", 
+			24, 3, 11, 195, 188, 49, 6, 39, 34, 47, 36, 34, 37, 15, 6, 125, 107, 4, 37, 89, 47, 40, 0, 24, 0, 0, 0, 17, 66, 41,
+			64, 57, 4, 108, 15, 47, 6, 36, 37, 89, 36, 72, 0, 24, 6, 195, 52, 145, 1, 76, 0, 0, 10, 3, 95, 49, 67, 89, 35, 72,
+			109, 0, 0, 14, 67, 45, 37, 0, 49, 6, 39, 34, 47, 36, 34, 0, 24, 0, 6, 195, 44, 81, 1, 76, 6, 195, 76, 81, 1, 76,
+			0, 0, 0, 0, 18, 3, 95, 49, 57, 6, 125, 107, 36, 49, 89, 35, 47, 36, 37, 89, 47, 0, 0, 11, 67, 44, 83, 12, 49, 6,
+			36, 55, 12, 0, 18, 67, 61, 50, 192, 6, 39, 89, 109, 15, 49, 6, 39, 50, 50, 72, 0, 24, 19, 3, 95, 49, 56, 49, 6, 35,
+			107, 36, 49, 89, 35, 47, 36, 37, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49, 125, 49, 89, 47, 36, 37, 89,
+			47, 0, 0, 12, 3, 95, 49, 48, 49, 6, 125, 65, 65, 36, 0, 0, 16, 3, 95, 49, 51, 49, 6, 39, 55, 65, 47, 36, 37, 89,
+			47, 0, 0, 16, 3, 95, 49, 50, 49, 6, 35, 49, 89, 47, 36, 37, 89, 47, 0, 0, 15, 3, 95, 49, 53, 84, 6, 112, 89, 47,
+			36, 37, 89, 47, 0, 0, 16, 3, 95, 49, 52, 50, 6, 36, 55, 37, 47, 36, 37, 89, 47, 0, 0, 18, 3, 95, 49, 55, 89, 6,
+			36, 37, 47, 89, 36, 47, 36, 37, 89, 47, 0, 0, 15, 3, 95, 49, 54, 49, 6, 117, 89, 47, 36, 37, 89, 47, 0, 0, 11, 66,
+			44, 64, 49, 6, 128, 72, 36, 0, 24, 0, 22, 3, 95, 55, 88, 89, 6, 36, 37, 47, 89, 36, 15, 49, 4, 125, 65, 65, 36, 50,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 66, 41, 96, 57, 6, 121, 34, 34, 84, 0, 24, 6, 194, 45, 64, 17, 24, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 194, 52, 16, 17, 42, 42, 5, 194, 52, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 50,
+			88, 49, 6, 35, 49, 89, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 8, 197, 52, 147, 12, 21, 48, 76, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 63, 63, 65, 6, 121, 34, 49, 0, 0, 0, 13, 66, 53, 32, 65, 6, 37, 89, 47, 36,
+			34, 0, 24, 0, 20, 3, 95, 52, 88, 50, 6, 36, 55, 113, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 6, 195,
+			76, 81, 64, 76, 0, 0, 6, 195, 56, 17, 0, 72, 0, 17, 66, 44, 112, 49, 4, 37, 55, 116, 81, 34, 6, 35, 65, 65, 0, 24,
+			0, 19, 67, 76, 84, 20, 89, 6, 36, 48, 47, 6, 36, 65, 65, 71, 36, 34, 0, 24, 7, 195, 20, 130, 192, 72, 8, 19, 3, 95,
+			53, 88, 84, 6, 112, 89, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 54, 88, 49,
+			6, 117, 89, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 21, 66, 40, 160, 57, 4, 108, 15, 57, 6,
+			121, 34, 34, 81, 65, 37, 89, 36, 72, 0, 24, 0, 16, 67, 5, 4, 128, 4, 35, 48, 48, 34, 6, 37, 61, 61, 0, 24, 0, 0,
+			0, 0, 0, 14, 4, 14, 195, 164, 4, 50, 6, 121, 72, 109, 55, 0, 24, 0, 0, 14, 66, 57, 32, 50, 6, 40, 65, 65, 71, 36,
+			34, 0, 24, 0, 23, 3, 95, 56, 88, 49, 6, 35, 107, 36, 49, 89, 35, 15, 49, 4, 125, 65, 65, 36, 50, 72, 0, 0, 0, 0,
+			0, 0, 0, 0, 5, 194, 52, 80, 72, 0, 22, 3, 95, 57, 88, 6, 125, 107, 36, 49, 89, 35, 15, 49, 4, 125, 65, 65, 36, 50,
+			72, 0, 0, 8, 132, 13, 20, 195, 188, 17, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 66, 57, 64, 50, 6, 127, 47, 36, 49, 89, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 20, 66, 52, 112, 65,
+			4, 37, 61, 61, 37, 15, 81, 34, 6, 35, 65, 65, 37, 0, 24, 15, 66, 40, 208, 57, 4, 108, 15, 65, 6, 40, 117, 72, 0, 24,
+			0, 18, 67, 65, 34, 192, 48, 6, 36, 34, 111, 15, 49, 6, 39, 50, 72, 0, 24, 0, 0, 0, 0, 24, 67, 40, 213, 0, 57, 4,
+			108, 15, 65, 6, 40, 117, 72, 15, 47, 6, 36, 37, 89, 36, 72, 0, 24, 29, 67, 76, 82, 128, 89, 6, 115, 57, 40, 89, 15, 36,
+			55, 6, 36, 49, 47, 34, 37, 15, 57, 6, 35, 108, 65, 0, 42, 42, 0, 7, 196, 60, 194, 84, 20, 72, 0, 0, 0, 19, 67, 93,
+			67, 192, 84, 4, 110, 15, 47, 4, 110, 15, 6, 39, 115, 0, 42, 42, 0, 6, 195, 52, 147, 129, 72, 13, 4, 95, 48, 77, 52, 71,
+			37, 61, 57, 39, 50, 0, 0, 18, 67, 65, 35, 198, 48, 34, 4, 39, 83, 6, 36, 89, 130, 39, 34, 0, 24, 0, 13, 4, 95, 48,
+			77, 50, 65, 37, 61, 57, 39, 50, 0, 0, 14, 4, 95, 48, 77, 51, 65, 37, 61, 57, 35, 34, 72, 0, 0, 0, 12, 4, 95, 48,
+			77, 49, 47, 40, 107, 109, 47, 0, 0, 18, 66, 52, 128, 65, 6, 40, 117, 15, 107, 6, 40, 55, 81, 35, 89, 0, 24, 12, 66, 40,
+			224, 57, 6, 115, 67, 37, 89, 0, 24, 10, 4, 95, 2, 18, 22, 49, 108, 34, 0, 0, 0, 0, 0, 0, 0, 0, 14, 67, 65, 35,
+			0, 48, 34, 6, 36, 37, 55, 37, 0, 24, 0, 12, 66, 65, 32, 48, 34, 6, 39, 40, 35, 0, 24, 0, 0, 0, 0, 0, 18, 67,
+			56, 245, 128, 50, 4, 39, 84, 6, 36, 65, 65, 71, 36, 34, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 19,
+			46, 15, 89, 6, 36, 110, 15, 6, 39, 50, 50, 0, 24, 0, 0, 0, 0, 0, 18, 67, 65, 53, 0, 48, 6, 40, 37, 57, 36, 89,
+			15, 47, 4, 110, 0, 24, 0, 0, 0, 0, 17, 67, 44, 225, 0, 49, 4, 35, 67, 72, 37, 72, 6, 108, 47, 0, 24, 0, 0, 8,
+			197, 52, 147, 12, 20, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 195, 181, 1, 6, 119, 48, 12, 36, 15, 4,
+			108, 89, 47, 35, 0, 24, 0, 0, 16, 66, 52, 176, 65, 6, 108, 15, 49, 6, 39, 50, 50, 72, 0, 24, 0, 15, 67, 44, 241, 0,
+			49, 6, 39, 72, 109, 50, 37, 49, 0, 24, 0, 0, 8, 132, 22, 195, 181, 9, 72, 8, 0, 0, 16, 67, 76, 82, 192, 89, 6, 36,
+			49, 118, 50, 72, 37, 47, 0, 24, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 3, 9, 18, 49, 35, 47, 40, 89, 0, 0, 21, 67,
+			28, 211, 192, 81, 6, 36, 110, 15, 4, 36, 65, 65, 15, 6, 39, 115, 0, 24, 42, 0, 0, 13, 67, 72, 35, 0, 34, 6, 40, 71,
+			55, 35, 0, 24, 0, 20, 66, 52, 192, 65, 4, 37, 61, 61, 37, 15, 55, 6, 112, 47, 34, 37, 47, 0, 24, 0, 17, 67, 52, 193,
+			0, 65, 6, 37, 61, 57, 35, 34, 72, 37, 47, 0, 24, 6, 195, 52, 148, 192, 76, 0, 0, 0, 0, 6, 195, 44, 84, 192, 76, 0,
+			21, 68, 76, 80, 76, 32, 89, 6, 36, 35, 55, 15, 107, 4, 40, 55, 81, 35, 89, 0, 24, 0, 26, 67, 77, 3, 0, 89, 6, 40,
+			48, 113, 15, 55, 4, 40, 89, 37, 49, 35, 15, 47, 6, 127, 47, 12, 0, 24, 0, 0, 0, 0, 12, 4, 95, 1, 3, 21, 35, 49,
+			6, 117, 47, 0, 0, 0, 0, 0, 0, 5, 194, 76, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 195,
+			181, 16, 6, 119, 48, 111, 47, 4, 35, 57, 35, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 72, 69, 0, 34, 4, 35, 40,
+			72, 15, 47, 6, 110, 0, 24, 16, 67, 52, 229, 0, 65, 6, 108, 50, 15, 47, 6, 36, 110, 0, 24, 6, 131, 15, 195, 188, 17, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 66, 60, 176, 39, 49, 6, 36, 112, 0, 5, 194, 80, 16, 72, 0, 0, 0, 0, 0,
+			11, 67, 88, 147, 12, 84, 6, 37, 55, 12, 0, 16, 67, 60, 181, 0, 4, 39, 49, 47, 6, 115, 71, 36, 34, 0, 24, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 16, 68, 88, 81, 66, 72, 84, 6, 110, 71, 34, 40, 35, 34, 0, 24, 0, 0, 22, 66, 56, 224, 50, 6,
+			37, 112, 15, 50, 6, 37, 65, 36, 47, 4, 35, 47, 40, 72, 0, 24, 0, 13, 67, 52, 164, 128, 65, 6, 35, 57, 116, 34, 0, 24,
+			0, 0, 0, 0, 0, 0, 0, 12, 66, 81, 32, 47, 34, 6, 125, 49, 12, 0, 24, 20, 66, 77, 64, 89, 6, 36, 110, 15, 47, 6,
+			121, 107, 36, 50, 72, 35, 71, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 164, 84, 35, 55, 6, 117, 47, 35, 0, 0,
+			0, 0, 10, 2, 194, 163, 50, 35, 110, 55, 35, 0, 0, 0, 0, 0, 0, 7, 2, 195, 164, 121, 122, 0, 0, 0, 0, 0, 19, 67,
+			16, 85, 19, 47, 4, 36, 47, 89, 6, 36, 65, 65, 71, 36, 34, 0, 24, 16, 2, 195, 160, 6, 35, 108, 15, 55, 108, 0, 24, 81,
+			108, 97, 32, 0, 0, 0, 0, 5, 194, 60, 224, 72, 0, 6, 195, 4, 32, 192, 17, 0, 7, 196, 88, 82, 68, 36, 72, 0, 0, 0,
+			0, 7, 2, 195, 182, 123, 124, 0, 0, 0, 0, 7, 2, 195, 181, 119, 120, 0, 0, 11, 4, 95, 3, 5, 4, 89, 36, 72, 112, 0,
+			0, 0, 15, 70, 100, 241, 200, 85, 37, 0, 57, 39, 81, 40, 34, 47, 0, 0, 8, 2, 197, 161, 91, 35, 108, 0, 0, 0, 15, 67,
+			80, 83, 0, 47, 6, 36, 55, 111, 83, 39, 50, 0, 24, 0, 5, 194, 80, 80, 72, 7, 2, 195, 188, 125, 126, 0, 0, 16, 67, 80,
+			194, 192, 47, 6, 119, 61, 49, 37, 50, 40, 72, 0, 24, 0, 6, 195, 80, 82, 69, 72, 0, 0, 0, 11, 67, 33, 83, 12, 107, 6,
+			40, 55, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 60, 194, 77, 20, 72, 6, 195, 80, 83, 65, 72, 8, 2, 197, 190,
+			90, 36, 110, 0, 0, 0, 19, 66, 76, 128, 89, 6, 36, 35, 55, 15, 107, 4, 40, 55, 81, 35, 89, 0, 24, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 67, 89, 33, 0, 84, 6, 119, 34, 34, 72, 55, 36, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196,
+			56, 82, 76, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 44, 243, 142, 49, 6,
+			39, 50, 12, 0, 0, 0, 8, 195, 85, 48, 64, 17, 42, 42, 0, 0, 0, 12, 66, 89, 64, 84, 6, 35, 108, 47, 35, 0, 24, 7,
+			194, 85, 96, 17, 42, 42, 0, 6, 195, 37, 49, 64, 72, 0, 0, 0, 0, 0, 0, 0, 16, 66, 92, 48, 84, 6, 36, 110, 15, 47,
+			89, 6, 36, 110, 0, 24, 0, 17, 67, 65, 66, 192, 48, 4, 36, 35, 15, 47, 6, 125, 49, 12, 0, 24, 14, 3, 1, 195, 188, 6,
+			35, 108, 15, 6, 125, 126, 0, 24, 0, 0, 0, 0, 12, 2, 95, 35, 47, 34, 36, 61, 61, 37, 72, 0, 0, 15, 2, 95, 34, 57,
+			40, 47, 118, 65, 4, 121, 34, 49, 12, 0, 0, 16, 2, 95, 33, 107, 129, 12, 57, 40, 65, 4, 121, 34, 49, 12, 0, 0, 0, 13,
+			2, 95, 39, 125, 55, 109, 15, 49, 39, 65, 35, 0, 0, 7, 195, 56, 147, 135, 72, 8, 16, 2, 95, 38, 57, 6, 35, 108, 15, 65,
+			4, 121, 34, 49, 12, 0, 0, 15, 2, 95, 37, 48, 34, 39, 47, 89, 36, 50, 47, 12, 0, 66, 15, 2, 95, 37, 48, 34, 39, 47,
+			89, 6, 36, 50, 47, 12, 0, 0, 12, 2, 95, 36, 47, 39, 55, 12, 55, 35, 34, 0, 0, 0, 10, 4, 95, 3, 1, 16, 89, 117,
+			34, 0, 0, 18, 2, 95, 41, 55, 119, 48, 36, 47, 35, 84, 15, 89, 40, 55, 12, 81, 0, 0, 18, 2, 95, 40, 35, 55, 118, 89,
+			47, 35, 84, 15, 89, 40, 55, 12, 81, 0, 0, 0, 11, 2, 95, 46, 48, 40, 50, 49, 12, 47, 0, 0, 10, 2, 95, 45, 49, 34,
+			112, 48, 89, 0, 0, 9, 2, 95, 44, 49, 39, 65, 109, 0, 0, 14, 67, 53, 36, 192, 65, 6, 37, 131, 131, 37, 89, 0, 24, 11,
+			2, 95, 51, 49, 6, 39, 55, 12, 65, 0, 0, 11, 2, 95, 50, 49, 6, 35, 49, 12, 89, 0, 0, 10, 2, 95, 49, 6, 125, 49,
+			12, 89, 0, 0, 11, 2, 95, 48, 50, 6, 40, 55, 12, 55, 0, 0, 12, 2, 95, 55, 89, 6, 36, 37, 47, 89, 36, 0, 0, 10,
+			2, 95, 54, 49, 6, 40, 117, 89, 0, 0, 10, 2, 95, 53, 84, 6, 37, 112, 89, 0, 0, 10, 2, 95, 52, 50, 6, 36, 55, 113,
+			0, 0, 0, 10, 2, 95, 58, 49, 115, 55, 39, 50, 0, 0, 12, 2, 95, 57, 6, 125, 107, 36, 49, 89, 35, 0, 0, 12, 66, 80,
+			176, 47, 6, 125, 49, 12, 37, 0, 24, 13, 2, 95, 56, 49, 6, 35, 107, 36, 49, 89, 35, 0, 0, 15, 2, 95, 63, 49, 125, 131,
+			113, 65, 4, 121, 34, 49, 12, 0, 0, 10, 2, 95, 62, 89, 117, 34, 36, 65, 0, 0, 0, 12, 2, 95, 60, 84, 127, 49, 12, 89,
+			36, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 67, 76, 225, 0, 89, 6, 125, 67, 67, 72, 37, 50, 40, 72, 0,
+			24, 0, 0, 8, 195, 16, 224, 64, 17, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 21, 67, 20, 177, 192, 6, 36, 110, 15, 49, 4,
+			35, 108, 15, 81, 6, 36, 110, 0, 24, 42, 0, 0, 0, 0, 31, 2, 95, 91, 6, 35, 55, 118, 89, 47, 35, 84, 15, 49, 6, 35,
+			50, 72, 37, 62, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0, 0, 11, 4, 95, 226, 130, 172, 36, 40, 34, 39, 0, 0, 0, 0,
+			14, 2, 95, 95, 35, 55, 12, 55, 49, 34, 112, 48, 89, 0, 0, 0, 32, 2, 95, 93, 55, 6, 119, 48, 36, 47, 35, 84, 15, 49,
+			6, 35, 50, 72, 37, 55, 4, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 12, 66, 80, 224, 47, 6, 121, 50, 109, 84, 0, 24, 13, 4, 95, 7, 18, 22, 81, 34, 108, 84, 37, 89, 0, 0, 0, 0, 0,
+			0, 17, 67, 64, 212, 192, 48, 6, 36, 35, 65, 37, 89, 36, 55, 47, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 4,
+			9, 1, 47, 121, 48, 37, 72, 0, 30, 2, 95, 123, 35, 55, 118, 89, 47, 35, 84, 15, 55, 6, 115, 81, 36, 55, 4, 37, 50, 36,
+			15, 89, 6, 40, 55, 12, 81, 0, 0, 0, 0, 0, 0, 0, 30, 2, 95, 125, 55, 119, 48, 36, 47, 35, 84, 15, 55, 6, 115, 81,
+			36, 55, 4, 37, 50, 36, 15, 89, 6, 40, 55, 12, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 35, 51, 50, 47, 6, 125, 107, 37, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 67, 52, 195, 128, 65, 6, 37, 61, 57, 39, 50, 37, 47, 0, 24, 8, 195, 5, 67, 64, 17, 42, 42, 0,
+			0, 0, 0, 0, 7, 196, 60, 193, 77, 20, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 13, 195, 164,
+			19, 19, 65, 6, 121, 89, 12, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			20, 67, 8, 32, 192, 71, 4, 112, 15, 71, 4, 112, 15, 89, 6, 37, 112, 0, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			12, 4, 195, 164, 19, 19, 6, 121, 89, 12, 89, 0, 0, 0, 0, 0, 0, 6, 195, 52, 82, 69, 72, 0, 0, 0, 0, 0, 18, 67,
+			44, 130, 192, 49, 4, 37, 107, 111, 55, 49, 6, 39, 50, 72, 0, 24, 0, 7, 196, 60, 193, 84, 20, 72, 0, 0, 0, 11, 67, 76,
+			149, 20, 89, 6, 37, 47, 12, 0, 0, 0, 0, 9, 198, 60, 193, 75, 76, 147, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 195, 5, 69, 128, 17, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			18, 66, 105, 0, 106, 0, 7, 6, 18, 67, 98, 0, 100, 0, 102, 0, 103, 0, 104, 0, 106, 0, 108, 0, 109, 0, 110, 0, 114, 0,
+			115, 0, 118, 0, 7, 6, 18, 68, 108, 0, 109, 0, 110, 0, 114, 0, 7, 6, 18, 69, 195, 181, 0, 195, 164, 0, 195, 182, 0, 195,
+			188, 0, 97, 0, 98, 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0,
+			111, 0, 112, 0, 113, 0, 114, 0, 115, 0, 116, 0, 117, 0, 118, 0, 7, 6, 18, 70, 195, 181, 0, 195, 164, 0, 195, 182, 0, 195,
+			188, 0, 97, 0, 101, 0, 105, 0, 108, 0, 109, 0, 110, 0, 111, 0, 114, 0, 117, 0, 7, 6, 195, 164, 0, 101, 2, 32, 3, 6,
+			121, 110, 0, 111, 3, 6, 121, 115, 0, 117, 2, 32, 3, 6, 121, 117, 0, 4, 195, 164, 1, 29, 2, 18, 67, 32, 3, 6, 121, 122,
+			0, 195, 164, 1, 29, 2, 32, 0, 195, 164, 3, 6, 122, 0, 105, 2, 32, 3, 6, 127, 12, 0, 3, 121, 0, 105, 3, 127, 0, 7,
+			6, 195, 181, 0, 97, 3, 6, 119, 108, 0, 101, 2, 32, 3, 6, 119, 110, 0, 105, 2, 32, 3, 6, 119, 112, 0, 111, 3, 6, 119,
+			115, 0, 117, 2, 32, 3, 6, 119, 117, 0, 4, 195, 181, 1, 29, 2, 18, 67, 32, 3, 6, 119, 120, 0, 195, 181, 1, 29, 2, 32,
+			0, 195, 181, 3, 6, 120, 0, 3, 119, 0, 117, 3, 119, 40, 0, 7, 6, 195, 182, 0, 97, 3, 6, 123, 108, 0, 101, 3, 6, 123,
+			110, 0, 4, 195, 182, 1, 29, 2, 18, 67, 32, 3, 6, 123, 124, 0, 195, 182, 1, 29, 2, 32, 0, 195, 182, 3, 6, 124, 0, 3,
+			123, 0, 105, 3, 128, 0, 7, 6, 195, 188, 0, 4, 195, 188, 1, 29, 2, 18, 67, 32, 3, 6, 125, 126, 0, 195, 188, 1, 29, 2,
+			32, 0, 195, 188, 3, 6, 126, 0, 3, 125, 0, 109, 98, 114, 105, 3, 125, 65, 71, 34, 37, 0, 4, 105, 3, 129, 0, 195, 188, 2,
+			106, 97, 0, 195, 188, 2, 97, 3, 129, 57, 0, 7, 6, 97, 0, 4, 97, 1, 29, 2, 18, 67, 32, 3, 6, 35, 108, 0, 97, 1,
+			29, 2, 32, 0, 101, 2, 32, 3, 6, 35, 110, 0, 105, 2, 32, 3, 6, 35, 112, 0, 111, 3, 6, 35, 115, 0, 117, 2, 32, 3,
+			6, 35, 117, 0, 97, 3, 6, 108, 0, 3, 35, 0, 109, 98, 105, 3, 35, 65, 71, 37, 0, 1, 105, 17, 65, 3, 57, 35, 0, 4,
+			1, 117, 97, 3, 58, 35, 0, 1, 117, 117, 0, 1, 117, 181, 195, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 109, 0, 8, 18, 67,
+			17, 65, 17, 67, 2, 25, 0, 7, 6, 98, 0, 8, 3, 48, 0, 3, 71, 0, 7, 6, 99, 0, 4, 2, 101, 3, 47, 89, 0, 2,
+			105, 0, 3, 49, 0, 104, 8, 3, 76, 0, 8, 2, 101, 3, 89, 0, 105, 116, 121, 3, 89, 37, 47, 37, 0, 7, 6, 100, 0, 8,
+			3, 47, 0, 4, 3, 72, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 1, 10, 2, 18, 66, 3, 133, 0, 7, 6,
+			101, 0, 97, 2, 32, 3, 6, 36, 108, 0, 4, 101, 1, 29, 2, 18, 67, 32, 3, 6, 36, 110, 0, 101, 1, 29, 2, 32, 0, 105,
+			2, 32, 3, 6, 36, 112, 0, 111, 3, 6, 36, 115, 0, 101, 3, 6, 110, 0, 3, 36, 0, 1, 105, 17, 65, 3, 57, 36, 0, 4,
+			1, 117, 97, 3, 58, 36, 0, 1, 117, 117, 0, 1, 117, 181, 195, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 111, 0, 8, 18, 67,
+			17, 65, 17, 67, 2, 25, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 8, 3, 49, 0, 3, 81, 0, 7, 6, 104, 0, 3,
+			107, 0, 1, 97, 108, 2, 116, 105, 3, 107, 107, 0, 7, 6, 105, 0, 4, 105, 1, 29, 2, 18, 67, 32, 3, 6, 37, 112, 0, 105,
+			1, 29, 2, 32, 0, 105, 3, 6, 112, 0, 3, 37, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 113, 0, 8, 18, 67, 17, 65, 17,
+			67, 2, 25, 0, 7, 6, 106, 0, 97, 122, 122, 3, 47, 90, 121, 89, 12, 0, 3, 57, 0, 106, 3, 57, 12, 0, 117, 109, 98, 117,
+			3, 57, 40, 65, 71, 40, 0, 7, 6, 107, 0, 3, 49, 0, 97, 117, 103, 101, 3, 49, 6, 35, 117, 81, 36, 0, 4, 1, 17, 65,
+			2, 18, 68, 3, 49, 12, 0, 1, 17, 65, 17, 65, 2, 18, 70, 0, 1, 18, 68, 17, 65, 2, 18, 70, 0, 107, 0, 97, 109, 98,
+			97, 3, 49, 35, 65, 71, 35, 0, 105, 109, 98, 97, 116, 117, 115, 3, 49, 37, 65, 71, 35, 47, 40, 89, 0, 105, 109, 98, 117, 3,
+			49, 37, 65, 71, 40, 0, 7, 6, 108, 0, 4, 3, 55, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 4, 108, 1,
+			21, 21, 2, 105, 3, 55, 12, 0, 108, 1, 25, 2, 105, 0, 4, 1, 10, 2, 18, 66, 3, 61, 0, 1, 10, 2, 100, 18, 66, 0,
+			1, 10, 2, 103, 18, 66, 0, 1, 10, 2, 107, 18, 66, 0, 1, 10, 2, 110, 105, 0, 1, 10, 2, 115, 11, 105, 0, 1, 10, 2,
+			115, 105, 0, 1, 10, 2, 116, 105, 0, 2, 115, 115, 32, 0, 108, 1, 10, 2, 105, 3, 61, 12, 0, 108, 1, 17, 65, 2, 32, 3,
+			114, 61, 12, 0, 7, 6, 109, 0, 4, 3, 65, 0, 1, 10, 2, 98, 17, 65, 11, 0, 1, 10, 2, 98, 3, 65, 65, 0, 7, 6,
+			110, 0, 4, 3, 50, 0, 1, 17, 65, 10, 2, 108, 18, 66, 0, 1, 21, 21, 2, 18, 66, 0, 1, 25, 2, 18, 66, 0, 110, 1,
+			105, 2, 32, 3, 50, 12, 0, 4, 110, 1, 17, 65, 21, 2, 32, 3, 50, 50, 0, 110, 1, 21, 21, 2, 105, 0, 110, 1, 25, 2,
+			105, 0, 4, 1, 10, 2, 18, 66, 3, 67, 0, 1, 10, 2, 100, 18, 66, 0, 1, 10, 2, 115, 105, 0, 1, 10, 2, 116, 32, 0,
+			1, 10, 2, 116, 105, 0, 2, 115, 116, 32, 0, 110, 1, 10, 2, 105, 3, 67, 12, 0, 4, 2, 32, 103, 3, 68, 0, 2, 32, 107,
+			0, 2, 103, 0, 2, 107, 0, 110, 1, 17, 65, 2, 32, 3, 114, 67, 12, 0, 7, 6, 111, 0, 97, 3, 6, 39, 108, 0, 101, 2,
+			32, 3, 6, 39, 110, 0, 105, 2, 32, 3, 6, 39, 112, 0, 4, 111, 1, 29, 2, 18, 67, 32, 3, 6, 39, 115, 0, 111, 1, 29,
+			2, 32, 0, 111, 3, 6, 115, 0, 4, 3, 39, 0, 1, 105, 105, 0, 1, 105, 17, 65, 3, 57, 39, 0, 4, 8, 18, 67, 17, 65,
+			2, 25, 3, 116, 0, 8, 18, 67, 17, 65, 17, 67, 2, 25, 0, 7, 6, 112, 0, 3, 48, 0, 4, 1, 17, 65, 17, 65, 2, 18,
+			70, 3, 48, 12, 0, 1, 18, 68, 17, 65, 2, 32, 0, 112, 0, 7, 6, 113, 0, 3, 49, 0, 113, 3, 49, 12, 0, 117, 3, 49,
+			84, 0, 7, 6, 114, 0, 3, 34, 0, 4, 1, 101, 107, 2, 103, 101, 3, 51, 51, 0, 1, 181, 195, 107, 2, 103, 101, 0, 114, 0,
+			7, 6, 115, 0, 4, 3, 89, 0, 1, 10, 2, 108, 18, 66, 0, 1, 10, 2, 110, 18, 66, 0, 1, 21, 21, 2, 18, 66, 0, 1,
+			25, 2, 18, 66, 0, 195, 188, 109, 98, 111, 108, 105, 115, 101, 101, 114, 3, 89, 4, 125, 65, 71, 39, 55, 37, 89, 6, 110, 34, 0,
+			111, 109, 98, 117, 3, 89, 39, 65, 71, 40, 0, 4, 115, 1, 21, 21, 2, 105, 3, 89, 89, 0, 115, 1, 25, 2, 105, 0, 115, 3,
+			89, 130, 0, 4, 99, 104, 1, 25, 3, 91, 0, 104, 1, 25, 0, 115, 1, 17, 65, 2, 32, 3, 114, 131, 12, 0, 4, 1, 10, 2,
+			18, 66, 3, 131, 0, 1, 10, 2, 100, 105, 0, 1, 17, 65, 2, 116, 105, 0, 115, 1, 10, 2, 105, 3, 131, 131, 0, 7, 6, 116,
+			0, 4, 3, 47, 0, 1, 21, 21, 2, 18, 66, 0, 1, 21, 21, 2, 115, 105, 0, 1, 25, 2, 18, 66, 0, 4, 1, 17, 65, 2,
+			18, 68, 3, 47, 12, 0, 1, 17, 65, 17, 65, 2, 18, 70, 0, 1, 97, 109, 10, 2, 97, 32, 0, 116, 0, 116, 1, 21, 21, 2,
+			105, 0, 116, 1, 25, 2, 105, 0, 97, 109, 98, 117, 3, 47, 35, 65, 71, 40, 0, 117, 109, 98, 97, 3, 47, 40, 65, 71, 35, 0,
+			1, 17, 65, 10, 2, 115, 105, 3, 114, 132, 0, 116, 1, 17, 65, 29, 2, 32, 3, 114, 132, 12, 0, 4, 1, 10, 2, 18, 66, 3,
+			132, 0, 1, 10, 2, 108, 18, 66, 0, 1, 10, 2, 110, 18, 66, 0, 116, 1, 10, 2, 105, 3, 132, 12, 0, 7, 6, 117, 0, 105,
+			2, 32, 3, 6, 40, 112, 0, 4, 117, 1, 29, 2, 18, 67, 32, 3, 6, 40, 117, 0, 117, 1, 29, 2, 32, 0, 117, 3, 6, 117,
+			0, 4, 3, 40, 0, 1, 105, 105, 0, 1, 105, 17, 65, 3, 57, 40, 0, 4, 8, 18, 67, 17, 65, 2, 25, 3, 118, 0, 8, 18,
+			67, 17, 65, 17, 67, 2, 25, 0, 7, 6, 118, 0, 3, 84, 0, 97, 98, 97, 114, 105, 105, 3, 84, 6, 35, 71, 35, 34, 4, 37,
+			37, 0, 101, 109, 98, 117, 3, 84, 36, 65, 71, 40, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 120, 3, 49, 12, 89, 0,
+			3, 49, 89, 0, 7, 6, 121, 0, 3, 37, 0, 105, 3, 57, 37, 0, 121, 3, 126, 0, 7, 6, 122, 0, 122, 3, 47, 89, 0, 3,
+			88, 0, 104, 1, 25, 3, 90, 0, 7, 6, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32,
+			15, 0, 45, 8, 32, 2, 32, 15, 3, 65, 112, 50, 40, 89, 0, 197, 190, 3, 90, 0, 197, 161, 3, 91, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts17 = FileInMemory_createWithData (6777, reinterpret_cast<const char *> (&espeakdata_dicts17_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/et_dict", 
 			U"et");
-		my addItem_move (espeakdata_dicts17.move());
-
-		static unsigned char espeakdata_dicts18_data[2218] = {
-			0, 4, 0, 0, 90, 7, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 72, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0,
-			0, 6, 65, 12, 88, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 12, 4, 95, 100, 112, 116, 10, 49, 39, 65,
-			35, 0, 0, 0, 0, 0, 0, 7, 65, 24, 36, 83, 36, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 7, 65,
-			32, 35, 76, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 65, 40, 101, 39, 47, 35, 0, 0, 0, 0, 0, 6, 65, 44, 49, 35,
-			0, 0, 0, 0, 0, 7, 65, 48, 36, 55, 36, 0, 0, 0, 0, 0, 7, 65, 52, 36, 65, 36, 0, 0, 0, 0, 0, 7, 65, 56,
-			36, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 40, 0, 0, 6,
-			195, 56, 18, 90, 72, 0, 0, 0, 7, 65, 72, 36, 52, 36, 0, 0, 0, 0, 0, 7, 65, 76, 36, 89, 36, 0, 0, 0, 0, 0,
-			6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65, 88, 40, 82, 36, 0, 0, 0, 0, 0, 15, 65, 92, 40, 82,
-			36, 15, 71, 37, 49, 39, 37, 125, 35, 0, 0, 0, 0, 0, 7, 65, 96, 37, 91, 35, 0, 0, 0, 0, 0, 12, 65, 100, 37, 15,
-			81, 34, 36, 49, 39, 35, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			5, 194, 16, 16, 72, 6, 195, 105, 81, 78, 76, 0, 0, 0, 0, 0, 6, 195, 105, 81, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 104, 21, 68, 20, 72, 0, 0, 0, 0, 0, 6, 195, 32, 21, 64, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 224, 72, 0, 0,
-			0, 0, 0, 0, 0, 8, 197, 104, 20, 133, 80, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 29, 80, 76, 0, 0, 0, 0, 6, 195, 37, 160, 78, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 48, 107,
-			39, 100, 6, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 148, 129, 72, 6, 195, 104, 20, 129, 72, 0, 0, 0, 0, 6,
-			195, 8, 84, 133, 76, 0, 0, 0, 0, 6, 195, 32, 244, 137, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 14, 3, 95, 54, 48, 37, 34, 6, 40, 34, 39, 100, 118, 0, 0, 11, 3, 95, 48, 67, 52, 36, 4, 40, 50, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 10, 3, 95, 49, 67, 36, 6, 40, 50, 0, 0, 0, 0, 6, 195, 56, 148, 133, 76, 0, 0, 0, 14, 3, 95,
-			49, 57, 36, 65, 36, 34, 36, 125, 6, 37, 0, 0, 15, 3, 95, 49, 56, 36, 65, 36, 88, 39, 34, 47, 6, 37, 0, 0, 13, 3,
-			95, 50, 67, 71, 6, 36, 52, 36, 40, 50, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 49, 35, 65, 6, 117, 49, 35, 0, 0,
-			11, 3, 95, 49, 48, 35, 65, 6, 35, 52, 0, 0, 14, 3, 95, 49, 51, 35, 65, 35, 6, 37, 34, 4, 40, 0, 0, 12, 3, 95,
-			49, 50, 35, 65, 35, 82, 6, 37, 0, 0, 14, 3, 95, 49, 53, 35, 65, 35, 82, 6, 39, 89, 47, 0, 0, 12, 3, 95, 49, 52,
-			35, 65, 35, 55, 6, 114, 0, 0, 15, 3, 95, 49, 55, 35, 65, 35, 88, 35, 88, 48, 6, 37, 0, 0, 12, 3, 95, 49, 54, 35,
-			65, 35, 89, 6, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 28, 20, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			13, 3, 95, 52, 48, 71, 6, 36, 52, 39, 100, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 107, 39, 100, 6,
-			118, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 104, 21, 68, 21, 65, 64, 72, 0, 0, 0, 0, 0, 15,
-			3, 95, 52, 88, 71, 6, 36, 52, 39, 100, 118, 47, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 48, 55, 6, 114,
-			34, 39, 100, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 54, 88, 37, 34, 6, 40, 34, 39, 100, 118, 47, 124, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 88, 55, 6, 114, 34, 39, 100, 118, 47, 124, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 8, 84, 133, 56,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
-			4, 95, 48, 77, 50, 65, 37, 61, 6, 37, 38, 120, 0, 0, 6, 195, 20, 19, 128, 72, 0, 0, 12, 4, 95, 48, 77, 49, 65, 37,
-			55, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 44, 240, 72, 5, 194,
-			56, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 17, 207, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 21, 32, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 195, 177, 36, 67, 36, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 16, 21, 84, 20, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 18, 69, 44, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			7, 196, 32, 20, 133, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 107, 37, 34, 6, 40, 0, 0, 8,
-			2, 95, 50, 71, 6, 37, 0, 0, 9, 2, 95, 49, 71, 6, 35, 47, 0, 0, 10, 2, 95, 48, 88, 36, 34, 6, 39, 0, 0, 11,
-			2, 95, 55, 88, 35, 88, 48, 6, 37, 0, 0, 8, 2, 95, 54, 89, 6, 118, 0, 0, 10, 2, 95, 53, 71, 6, 39, 89, 47, 0,
-			0, 6, 195, 20, 115, 206, 72, 8, 2, 95, 52, 55, 6, 114, 0, 0, 0, 0, 14, 2, 95, 57, 71, 36, 86, 6, 36, 34, 35, 125,
-			37, 0, 0, 11, 2, 95, 56, 88, 39, 34, 47, 6, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 97, 35, 0, 0,
-			0, 6, 195, 20, 179, 192, 72, 0, 0, 6, 2, 95, 101, 36, 0, 0, 0, 0, 0, 6, 2, 95, 105, 37, 0, 0, 0, 6, 2, 95,
-			111, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 33, 84, 129, 76, 6, 195, 33, 84, 129, 76, 0, 0, 6, 2, 95, 117, 40,
-			0, 0, 0, 6, 195, 105, 84, 133, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 95, 48, 97, 110, 100, 36, 47, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 21, 64, 64, 76, 8, 0, 0, 0, 0, 7, 196, 32, 18, 69,
-			56, 76, 0, 0, 0, 0, 6, 195, 29, 84, 133, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 105, 80, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 8, 18, 78, 4, 224, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 28, 21, 68, 20,
-			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 177, 0, 3, 67, 0, 7,
-			6, 97, 0, 3, 35, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 4, 2,
-			101, 3, 89, 0, 2, 105, 0, 7, 6, 100, 0, 3, 72, 0, 4, 1, 105, 25, 2, 17, 65, 3, 79, 0, 100, 0, 1, 17, 65, 2,
-			17, 65, 3, 86, 0, 7, 6, 101, 0, 3, 36, 0, 117, 3, 115, 0, 105, 3, 118, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103,
-			0, 3, 81, 0, 1, 17, 65, 2, 17, 65, 3, 100, 0, 7, 6, 104, 0, 3, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0,
-			3, 79, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 4, 1, 105, 25, 2, 17, 65, 3, 61, 0, 108, 0, 7,
-			6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 1, 105, 25, 2, 17, 65, 3, 67, 0, 7, 6, 111, 0, 3, 39, 0, 105,
-			3, 120, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 101, 2, 32, 0, 117, 3, 49, 58, 0, 7, 6,
-			114, 0, 3, 34, 0, 4, 2, 32, 3, 52, 0, 8, 0, 114, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 120,
-			3, 76, 0, 4, 1, 105, 25, 2, 17, 65, 3, 80, 0, 116, 0, 115, 3, 123, 0, 122, 3, 125, 0, 7, 6, 117, 0, 3, 40, 0,
-			7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 91, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3,
-			37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 167, 3, 89, 0, 195, 188, 3, 113, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts18 = FileInMemory_createWithData (2217, reinterpret_cast<const char *> (&espeakdata_dicts18_data), 
-			U"espeak-1.48.04-source/espeak-data/eu_dict", 
-			U"eu");
-		my addItem_move (espeakdata_dicts18.move());
-
-		static unsigned char espeakdata_dicts19_data[231858] = {
-			0, 4, 0, 0, 62, 185, 2, 0, 18, 70, 197, 20, 148, 28, 236, 0, 81, 39, 51, 88, 91, 108, 101, 35, 49, 0, 17, 70, 197, 19,
-			226, 56, 124, 0, 81, 35, 51, 72, 39, 101, 108, 49, 0, 13, 68, 182, 3, 199, 68, 48, 36, 50, 72, 108, 51, 0, 13, 68, 133, 76,
-			199, 68, 107, 39, 91, 57, 108, 51, 0, 13, 68, 128, 119, 226, 68, 50, 108, 65, 84, 35, 51, 0, 19, 70, 125, 19, 224, 126, 40, 0,
-			65, 39, 51, 72, 35, 50, 36, 65, 40, 50, 0, 13, 68, 124, 226, 135, 68, 65, 39, 101, 47, 108, 51, 0, 12, 68, 124, 119, 226, 68,
-			65, 35, 65, 40, 51, 0, 11, 67, 70, 44, 207, 51, 35, 84, 37, 72, 0, 11, 67, 62, 44, 207, 72, 35, 84, 37, 72, 0, 14, 68,
-			61, 177, 202, 68, 72, 35, 83, 108, 47, 36, 51, 0, 12, 68, 42, 39, 226, 68, 47, 40, 65, 39, 51, 0, 19, 70, 34, 3, 226, 33,
-			49, 215, 71, 35, 50, 72, 39, 71, 35, 89, 108, 47, 0, 17, 70, 32, 116, 145, 196, 120, 0, 71, 108, 88, 35, 51, 81, 108, 50, 0,
-			20, 71, 28, 226, 145, 111, 52, 179, 192, 35, 101, 47, 35, 51, 83, 37, 88, 37, 49, 0, 0, 14, 69, 139, 56, 15, 137, 32, 84, 37,
-			50, 72, 39, 88, 0, 12, 67, 132, 244, 202, 107, 36, 72, 89, 36, 47, 0, 13, 68, 126, 36, 243, 136, 65, 39, 89, 37, 57, 39, 0,
-			14, 68, 53, 244, 162, 204, 107, 35, 65, 88, 35, 84, 37, 0, 14, 68, 35, 53, 162, 204, 71, 36, 57, 88, 35, 84, 37, 0, 15, 68,
-			34, 3, 237, 204, 71, 35, 50, 72, 36, 48, 36, 57, 0, 15, 68, 33, 72, 34, 204, 71, 36, 91, 36, 50, 35, 84, 37, 0, 15, 69,
-			32, 120, 48, 74, 0, 71, 108, 50, 49, 88, 35, 50, 0, 12, 67, 9, 165, 10, 108, 104, 17, 36, 91, 47, 0, 0, 22, 71, 198, 2,
-			15, 192, 120, 162, 76, 81, 39, 50, 71, 35, 72, 36, 49, 108, 84, 40, 89, 0, 17, 70, 194, 2, 145, 32, 116, 192, 49, 39, 50, 47,
-			51, 71, 108, 89, 0, 17, 70, 182, 36, 89, 32, 116, 192, 48, 40, 51, 35, 71, 71, 108, 89, 0, 12, 67, 181, 37, 48, 48, 36, 88,
-			36, 91, 49, 0, 15, 69, 181, 22, 115, 29, 16, 48, 39, 51, 35, 57, 108, 51, 0, 15, 69, 129, 248, 143, 29, 16, 50, 36, 65, 40,
-			72, 108, 51, 0, 14, 68, 125, 145, 226, 60, 65, 39, 19, 108, 84, 36, 72, 0, 18, 70, 63, 50, 135, 35, 52, 192, 72, 36, 57, 47,
-			108, 71, 36, 57, 89, 0, 20, 71, 42, 20, 71, 130, 209, 209, 76, 47, 36, 107, 51, 108, 50, 48, 108, 51, 89, 0, 17, 70, 34, 33,
-			222, 134, 36, 192, 71, 39, 55, 107, 35, 84, 35, 89, 0, 15, 69, 30, 18, 176, 29, 16, 36, 107, 47, 36, 49, 108, 51, 0, 21, 71,
-			29, 251, 81, 29, 116, 115, 76, 36, 65, 48, 36, 51, 108, 47, 36, 51, 37, 89, 0, 15, 69, 29, 59, 115, 193, 16, 36, 89, 48, 37,
-			49, 36, 51, 0, 17, 70, 29, 18, 143, 139, 4, 192, 39, 51, 47, 39, 72, 39, 49, 89, 0, 14, 68, 28, 163, 71, 60, 36, 47, 47,
-			36, 107, 108, 72, 0, 0, 14, 68, 185, 19, 148, 40, 76, 35, 51, 101, 36, 91, 47, 0, 10, 67, 182, 2, 128, 48, 39, 50, 47, 0,
-			16, 69, 129, 252, 209, 139, 48, 50, 36, 65, 37, 51, 35, 84, 37, 0, 14, 68, 110, 20, 83, 40, 83, 36, 107, 51, 36, 89, 47, 0,
-			13, 68, 101, 241, 209, 40, 36, 65, 108, 51, 35, 47, 0, 14, 68, 77, 177, 209, 40, 89, 36, 83, 108, 51, 35, 47, 0, 8, 66, 70,
-			240, 51, 39, 90, 0, 15, 68, 69, 177, 220, 40, 51, 36, 83, 108, 104, 17, 35, 47, 0, 12, 67, 65, 226, 128, 88, 36, 55, 55, 35,
-			47, 0, 11, 67, 61, 226, 128, 72, 36, 55, 35, 47, 0, 10, 67, 57, 226, 128, 101, 36, 55, 47, 0, 15, 68, 53, 241, 220, 40, 107,
-			36, 65, 108, 104, 17, 35, 47, 0, 17, 70, 33, 17, 224, 199, 52, 128, 71, 35, 51, 35, 50, 81, 37, 88, 0, 17, 70, 33, 17, 219,
-			70, 36, 128, 71, 35, 51, 35, 83, 51, 40, 88, 0, 0, 11, 67, 137, 230, 64, 84, 35, 55, 35, 19, 0, 13, 68, 129, 23, 226, 192,
-			50, 35, 51, 65, 40, 49, 0, 14, 67, 125, 156, 207, 65, 39, 19, 35, 57, 57, 36, 72, 0, 17, 68, 124, 163, 81, 192, 65, 39, 47,
-			36, 107, 35, 51, 51, 36, 49, 0, 12, 67, 109, 52, 79, 83, 36, 89, 39, 51, 72, 0, 15, 69, 78, 12, 81, 136, 240, 89, 35, 50,
-			81, 51, 40, 72, 0, 17, 70, 29, 50, 159, 68, 116, 64, 36, 89, 47, 36, 65, 51, 108, 51, 0, 17, 70, 29, 50, 155, 76, 116, 64,
-			36, 89, 47, 36, 83, 89, 108, 51, 0, 0, 18, 70, 181, 20, 225, 31, 60, 192, 48, 36, 51, 36, 89, 107, 108, 37, 12, 0, 14, 67,
-			125, 236, 202, 65, 36, 55, 55, 37, 57, 35, 47, 0, 15, 69, 83, 52, 95, 76, 160, 91, 37, 51, 65, 35, 89, 47, 0, 11, 67, 78,
-			1, 202, 89, 39, 50, 108, 47, 0, 17, 69, 61, 28, 80, 80, 160, 72, 35, 51, 81, 39, 88, 35, 91, 47, 0, 18, 71, 49, 33, 179,
-			28, 164, 98, 204, 75, 39, 88, 19, 37, 57, 108, 47, 0, 16, 68, 41, 56, 179, 200, 47, 35, 89, 84, 37, 57, 36, 57, 36, 0, 14,
-			69, 29, 55, 199, 68, 160, 36, 89, 65, 108, 51, 47, 0, 0, 18, 70, 204, 116, 98, 204, 120, 145, 57, 108, 51, 39, 57, 108, 84, 35,
-			51, 0, 15, 69, 192, 118, 243, 206, 0, 49, 108, 83, 36, 37, 12, 50, 0, 17, 70, 182, 36, 95, 68, 115, 192, 48, 40, 51, 65, 39,
-			51, 108, 72, 0, 14, 68, 136, 140, 81, 60, 84, 36, 71, 81, 35, 51, 72, 0, 11, 67, 127, 8, 0, 65, 35, 49, 39, 50, 0, 14,
-			69, 126, 40, 159, 30, 0, 65, 40, 84, 65, 108, 50, 0, 13, 67, 113, 234, 240, 104, 17, 39, 55, 55, 35, 49, 0, 18, 70, 58, 35,
-			209, 139, 1, 209, 101, 39, 72, 51, 39, 84, 49, 108, 51, 0, 8, 66, 32, 160, 71, 39, 47, 0, 8, 66, 28, 160, 35, 47, 0, 76,
-			0, 18, 69, 193, 225, 226, 207, 32, 49, 36, 55, 108, 84, 37, 57, 36, 57, 36, 0, 14, 68, 137, 225, 243, 40, 84, 36, 55, 108, 57,
-			35, 47, 0, 15, 69, 122, 20, 71, 76, 128, 55, 39, 107, 51, 108, 89, 71, 0, 11, 67, 120, 200, 140, 55, 35, 75, 40, 75, 0, 13,
-			67, 113, 81, 200, 104, 17, 35, 89, 89, 108, 71, 0, 13, 68, 102, 1, 243, 40, 36, 50, 108, 57, 35, 47, 0, 13, 68, 100, 241, 226,
-			40, 36, 72, 108, 84, 35, 47, 0, 14, 68, 69, 67, 71, 40, 51, 35, 91, 35, 107, 108, 47, 0, 14, 68, 32, 196, 71, 40, 71, 36,
-			75, 39, 51, 35, 47, 0, 17, 70, 9, 232, 138, 70, 43, 115, 108, 55, 39, 47, 51, 39, 48, 37, 0, 9, 66, 40, 112, 47, 108, 12,
-			0, 76, 8, 66, 32, 112, 71, 108, 0, 76, 0, 14, 67, 125, 88, 136, 65, 39, 89, 35, 84, 84, 35, 71, 0, 11, 67, 124, 34, 0,
-			65, 35, 10, 108, 71, 0, 10, 67, 101, 104, 179, 39, 88, 84, 37, 0, 11, 67, 81, 177, 239, 91, 39, 83, 108, 90, 0, 12, 67, 69,
-			104, 179, 51, 35, 88, 35, 84, 37, 0, 12, 67, 33, 72, 179, 71, 36, 91, 35, 84, 37, 0, 12, 67, 29, 43, 115, 35, 88, 48, 36,
-			57, 36, 0, 10, 67, 29, 28, 200, 39, 51, 37, 71, 0, 9, 65, 112, 6, 104, 17, 108, 83, 0, 0, 15, 68, 194, 1, 243, 200, 49,
-			36, 50, 108, 57, 36, 57, 36, 0, 19, 69, 125, 196, 81, 28, 160, 65, 39, 104, 17, 35, 51, 51, 35, 51, 108, 47, 0, 15, 69, 125,
-			17, 217, 28, 160, 65, 39, 51, 108, 19, 108, 47, 0, 18, 69, 124, 166, 199, 136, 160, 65, 39, 47, 35, 6, 83, 108, 84, 36, 47, 0,
-			11, 67, 83, 1, 219, 91, 36, 49, 108, 83, 0, 16, 69, 61, 252, 17, 28, 160, 72, 36, 65, 39, 49, 51, 108, 47, 0, 14, 69, 29,
-			241, 209, 28, 160, 36, 65, 108, 51, 108, 47, 0, 0, 16, 70, 132, 116, 98, 29, 19, 192, 107, 108, 51, 84, 108, 51, 72, 0, 13, 68,
-			124, 164, 71, 188, 65, 36, 47, 51, 108, 90, 0, 11, 67, 113, 183, 128, 104, 17, 39, 83, 55, 0, 14, 68, 77, 20, 209, 204, 89, 35,
-			51, 89, 35, 51, 37, 0, 11, 67, 74, 23, 128, 88, 39, 107, 35, 55, 0, 14, 69, 62, 36, 72, 206, 0, 72, 40, 51, 71, 37, 50,
-			0, 11, 67, 62, 23, 128, 72, 39, 107, 39, 55, 0, 22, 72, 57, 19, 226, 56, 124, 20, 205, 16, 101, 39, 51, 72, 39, 101, 108, 49,
-			91, 37, 51, 0, 12, 67, 55, 49, 138, 107, 36, 57, 19, 35, 47, 0, 13, 68, 43, 56, 145, 204, 47, 36, 10, 39, 51, 37, 0, 11,
-			67, 42, 44, 202, 47, 40, 57, 35, 47, 0, 11, 67, 34, 23, 128, 71, 36, 107, 36, 55, 0, 14, 68, 33, 120, 145, 204, 71, 36, 6,
-			47, 39, 51, 37, 0, 11, 67, 29, 12, 202, 35, 88, 57, 35, 47, 0, 25, 73, 9, 28, 51, 138, 210, 145, 207, 4, 192, 108, 51, 49,
-			36, 39, 48, 36, 47, 36, 51, 37, 49, 89, 0, 0, 13, 67, 124, 220, 199, 65, 39, 107, 35, 57, 57, 108, 0, 12, 67, 109, 21, 135,
-			83, 35, 51, 88, 35, 50, 0, 13, 67, 106, 38, 135, 104, 17, 39, 12, 104, 17, 108, 0, 13, 67, 68, 251, 71, 51, 35, 72, 72, 36,
-			48, 108, 0, 11, 67, 41, 21, 7, 47, 39, 51, 91, 108, 0, 12, 67, 33, 230, 135, 71, 39, 55, 104, 17, 108, 0, 13, 68, 30, 39,
-			7, 108, 39, 12, 104, 17, 108, 83, 0, 10, 67, 29, 181, 7, 36, 83, 91, 108, 0, 11, 67, 29, 149, 135, 6, 35, 19, 88, 108, 0,
-			8, 66, 10, 0, 108, 50, 0, 76, 0, 13, 68, 129, 180, 115, 40, 50, 36, 83, 51, 37, 47, 0, 13, 67, 112, 161, 222, 104, 17, 35,
-			47, 47, 108, 55, 0, 15, 69, 33, 22, 209, 136, 128, 71, 35, 51, 83, 51, 40, 71, 0, 0, 11, 67, 194, 1, 223, 49, 39, 50, 108,
-			65, 0, 20, 70, 124, 244, 96, 204, 172, 128, 65, 39, 72, 36, 51, 50, 37, 47, 36, 57, 36, 0, 11, 67, 124, 241, 223, 65, 39, 72,
-			108, 65, 0, 11, 67, 124, 163, 192, 65, 36, 47, 39, 72, 0, 11, 67, 77, 28, 205, 89, 35, 51, 37, 107, 0, 11, 67, 75, 1, 223,
-			88, 39, 49, 108, 65, 0, 12, 68, 69, 145, 243, 28, 51, 39, 108, 57, 108, 0, 12, 67, 62, 33, 223, 72, 35, 6, 84, 108, 65, 0,
-			14, 68, 61, 28, 218, 28, 72, 35, 51, 37, 104, 17, 108, 0, 13, 68, 61, 17, 210, 28, 72, 36, 51, 108, 88, 108, 0, 13, 68, 56,
-			241, 243, 28, 101, 39, 72, 108, 57, 108, 0, 12, 67, 52, 193, 223, 107, 35, 75, 75, 108, 65, 0, 15, 68, 32, 246, 144, 28, 71, 35,
-			72, 104, 17, 35, 88, 108, 0, 13, 68, 32, 115, 115, 28, 71, 108, 107, 35, 57, 108, 0, 14, 68, 29, 194, 150, 28, 36, 104, 17, 47,
-			36, 88, 108, 0, 0, 15, 69, 181, 17, 210, 204, 160, 48, 108, 51, 108, 88, 37, 47, 0, 18, 69, 126, 39, 162, 204, 160, 65, 39, 12,
-			55, 35, 84, 37, 57, 35, 47, 0, 13, 68, 109, 24, 145, 136, 83, 39, 51, 40, 51, 39, 0, 14, 68, 108, 244, 71, 120, 83, 36, 72,
-			36, 51, 108, 55, 0, 15, 69, 102, 12, 8, 136, 160, 35, 50, 49, 35, 71, 40, 47, 0, 17, 69, 93, 245, 209, 29, 192, 47, 35, 65,
-			47, 35, 51, 108, 104, 17, 0, 13, 68, 79, 58, 199, 120, 89, 35, 57, 57, 108, 55, 0, 16, 69, 70, 20, 98, 30, 0, 51, 35, 107,
-			51, 39, 84, 108, 50, 0, 12, 68, 68, 120, 81, 136, 51, 108, 107, 51, 39, 0, 14, 69, 68, 119, 202, 206, 0, 51, 108, 65, 47, 37,
-			50, 0, 17, 69, 30, 39, 162, 204, 160, 39, 12, 55, 35, 84, 37, 57, 35, 47, 0, 0, 11, 67, 194, 12, 207, 49, 39, 50, 37, 72,
-			0, 15, 69, 193, 236, 224, 207, 0, 49, 36, 55, 37, 50, 37, 49, 0, 15, 68, 183, 54, 135, 124, 48, 36, 57, 6, 104, 17, 108, 65,
-			0, 18, 69, 181, 22, 162, 104, 112, 48, 39, 51, 104, 17, 39, 84, 104, 17, 108, 0, 13, 68, 134, 12, 71, 124, 107, 36, 50, 81, 108,
-			65, 0, 12, 67, 126, 5, 3, 65, 35, 50, 91, 35, 19, 0, 11, 67, 122, 28, 207, 55, 36, 107, 37, 72, 0, 10, 66, 88, 240, 88,
-			36, 72, 72, 36, 0, 8, 66, 80, 240, 91, 39, 72, 0, 11, 67, 77, 28, 207, 89, 39, 51, 37, 72, 0, 11, 67, 61, 228, 64, 72,
-			36, 55, 36, 51, 0, 12, 67, 57, 228, 64, 101, 39, 55, 55, 35, 51, 0, 13, 68, 55, 10, 199, 124, 107, 39, 49, 49, 108, 65, 0,
-			16, 69, 55, 7, 209, 136, 112, 107, 39, 49, 65, 51, 35, 84, 108, 0, 0, 13, 68, 197, 28, 71, 128, 81, 39, 51, 81, 108, 50, 0,
-			15, 69, 192, 120, 49, 70, 32, 49, 108, 50, 81, 39, 51, 39, 0, 13, 68, 182, 2, 135, 128, 48, 36, 50, 47, 108, 50, 0, 13, 68,
-			181, 50, 135, 128, 48, 36, 89, 47, 108, 50, 0, 16, 70, 132, 124, 222, 31, 50, 128, 107, 108, 57, 55, 108, 57, 47, 0, 11, 67, 126,
-			37, 94, 65, 40, 89, 36, 55, 0, 13, 68, 125, 116, 71, 128, 65, 36, 47, 51, 108, 50, 0, 24, 72, 32, 212, 71, 121, 184, 135, 204,
-			240, 71, 35, 107, 51, 39, 55, 83, 35, 84, 108, 57, 36, 72, 0, 14, 69, 31, 56, 13, 29, 224, 19, 37, 50, 107, 108, 55, 0, 13,
-			69, 31, 51, 217, 29, 224, 37, 72, 36, 108, 55, 0, 0, 13, 68, 197, 228, 98, 60, 81, 39, 55, 51, 40, 72, 0, 11, 67, 132, 117,
-			31, 107, 108, 91, 36, 65, 0, 12, 67, 124, 196, 95, 65, 39, 75, 51, 36, 65, 0, 10, 67, 111, 55, 159, 83, 37, 55, 65, 0, 18,
-			70, 78, 43, 81, 130, 33, 192, 89, 40, 48, 36, 51, 50, 39, 84, 108, 0, 16, 69, 68, 164, 79, 29, 240, 51, 39, 47, 36, 51, 72,
-			108, 65, 0, 18, 70, 42, 3, 210, 32, 120, 0, 47, 39, 50, 72, 88, 35, 71, 108, 50, 0, 15, 69, 29, 35, 205, 29, 240, 36, 88,
-			72, 36, 107, 108, 65, 0, 12, 68, 10, 215, 162, 60, 108, 48, 55, 39, 72, 0, 0, 17, 70, 199, 60, 71, 32, 124, 202, 81, 37, 81,
-			108, 71, 108, 57, 47, 0, 12, 67, 197, 226, 32, 81, 39, 55, 71, 39, 50, 0, 10, 67, 194, 12, 192, 49, 39, 50, 37, 0, 21, 70,
-			181, 21, 223, 93, 17, 220, 48, 39, 51, 47, 35, 65, 47, 35, 51, 108, 104, 17, 0, 10, 67, 134, 36, 96, 107, 39, 51, 50, 0, 11,
-			67, 126, 37, 224, 65, 40, 47, 36, 50, 0, 11, 67, 122, 12, 224, 55, 36, 50, 37, 50, 0, 11, 67, 78, 12, 224, 89, 36, 50, 37,
-			50, 0, 13, 67, 54, 12, 224, 107, 39, 50, 35, 57, 108, 50, 0, 11, 67, 50, 12, 224, 75, 36, 50, 37, 50, 0, 20, 71, 30, 3,
-			199, 75, 28, 209, 204, 35, 50, 72, 108, 88, 36, 81, 37, 51, 37, 0, 0, 15, 69, 197, 225, 222, 136, 240, 81, 36, 55, 108, 55, 40,
-			72, 0, 21, 71, 192, 119, 136, 61, 76, 7, 108, 49, 108, 55, 71, 39, 72, 91, 36, 49, 108, 83, 0, 14, 68, 181, 232, 34, 124, 48,
-			36, 55, 36, 50, 39, 65, 0, 12, 67, 134, 44, 225, 107, 39, 84, 37, 57, 36, 0, 15, 69, 127, 56, 146, 204, 240, 65, 37, 84, 35,
-			88, 37, 72, 0, 17, 68, 124, 163, 19, 124, 65, 39, 47, 36, 75, 35, 89, 89, 36, 65, 0, 15, 69, 122, 12, 81, 136, 240, 55, 35,
-			50, 81, 51, 40, 72, 0, 14, 68, 82, 8, 179, 124, 91, 36, 50, 35, 84, 37, 65, 0, 12, 67, 80, 124, 207, 6, 91, 108, 57, 35,
-			72, 0, 14, 68, 77, 28, 81, 124, 89, 35, 51, 81, 35, 51, 65, 0, 12, 67, 76, 164, 97, 89, 39, 47, 51, 35, 107, 0, 13, 68,
-			71, 2, 162, 124, 51, 36, 49, 47, 39, 65, 0, 17, 70, 70, 34, 145, 60, 119, 192, 51, 39, 47, 36, 51, 72, 108, 65, 0, 14, 69,
-			60, 120, 30, 136, 240, 72, 108, 50, 55, 39, 72, 0, 14, 69, 58, 37, 32, 136, 240, 101, 39, 91, 50, 40, 72, 0, 13, 68, 43, 55,
-			226, 68, 47, 36, 57, 65, 40, 51, 0, 14, 69, 42, 3, 162, 30, 16, 47, 35, 50, 101, 108, 107, 0, 14, 68, 40, 225, 213, 124, 47,
-			35, 101, 108, 89, 39, 65, 0, 11, 67, 33, 156, 207, 71, 35, 19, 37, 72, 0, 12, 67, 32, 229, 15, 71, 35, 101, 91, 35, 72, 0,
-			13, 68, 10, 5, 226, 68, 108, 50, 47, 39, 12, 51, 0, 14, 69, 9, 227, 243, 204, 240, 108, 55, 72, 36, 37, 72, 0, 13, 68, 8,
-			140, 81, 124, 108, 71, 81, 35, 51, 65, 0, 0, 11, 67, 206, 28, 243, 57, 35, 107, 57, 108, 0, 10, 67, 199, 50, 179, 81, 37, 47,
-			37, 0, 15, 69, 197, 232, 136, 137, 224, 81, 40, 55, 39, 71, 40, 55, 0, 12, 67, 193, 24, 179, 49, 39, 51, 35, 84, 37, 0, 19,
-			70, 186, 17, 209, 124, 209, 222, 76, 108, 107, 108, 51, 65, 35, 107, 108, 55, 0, 22, 75, 181, 22, 211, 137, 18, 158, 139, 52, 179, 138,
-			0, 48, 39, 51, 83, 39, 89, 39, 51, 0, 14, 68, 139, 55, 162, 128, 84, 37, 57, 39, 55, 39, 50, 0, 15, 68, 129, 50, 145, 128,
-			50, 35, 89, 47, 35, 51, 35, 50, 0, 13, 68, 125, 248, 34, 128, 65, 35, 65, 50, 40, 50, 0, 12, 67, 121, 162, 128, 55, 39, 104,
-			17, 35, 47, 0, 14, 68, 113, 18, 34, 128, 104, 17, 39, 51, 71, 40, 50, 0, 12, 68, 110, 34, 162, 128, 83, 39, 47, 39, 50, 0,
-			14, 68, 105, 40, 51, 128, 104, 17, 35, 88, 50, 37, 50, 0, 11, 67, 81, 235, 64, 91, 36, 55, 36, 48, 0, 15, 69, 48, 132, 115,
-			205, 224, 75, 36, 71, 51, 36, 37, 55, 0, 14, 69, 43, 52, 115, 33, 224, 47, 37, 51, 37, 71, 55, 0, 11, 67, 41, 235, 64, 47,
-			36, 55, 36, 48, 0, 18, 70, 41, 23, 226, 194, 34, 30, 47, 36, 51, 65, 39, 49, 40, 71, 55, 0, 13, 68, 33, 28, 226, 128, 71,
-			36, 51, 57, 40, 50, 0, 13, 68, 30, 2, 145, 128, 35, 50, 47, 36, 51, 50, 0, 13, 68, 29, 244, 98, 72, 36, 65, 6, 51, 40,
-			88, 0, 13, 68, 29, 180, 98, 72, 19, 35, 83, 51, 40, 88, 0, 12, 68, 10, 11, 243, 128, 108, 50, 90, 37, 50, 0, 9, 67, 9,
-			235, 64, 108, 55, 48, 0, 13, 4, 95, 100, 112, 116, 50, 39, 104, 47, 36, 12, 0, 0, 10, 67, 194, 37, 48, 49, 40, 91, 49, 0,
-			16, 69, 193, 236, 10, 137, 16, 49, 39, 55, 36, 49, 47, 39, 51, 0, 14, 68, 185, 235, 158, 132, 76, 36, 55, 76, 36, 55, 36, 0,
-			13, 68, 182, 36, 84, 132, 48, 39, 51, 91, 36, 12, 0, 10, 67, 182, 5, 192, 48, 39, 50, 47, 0, 17, 70, 181, 19, 199, 75, 51,
-			192, 48, 35, 51, 72, 108, 88, 37, 72, 0, 13, 68, 181, 17, 243, 60, 48, 36, 51, 108, 57, 72, 0, 14, 68, 137, 24, 51, 132, 84,
-			36, 51, 50, 37, 57, 36, 0, 14, 69, 131, 50, 145, 137, 16, 50, 37, 47, 51, 40, 51, 0, 14, 68, 128, 129, 212, 60, 50, 35, 71,
-			108, 91, 35, 72, 0, 17, 70, 125, 24, 135, 71, 51, 192, 65, 39, 51, 84, 108, 51, 37, 72, 0, 17, 70, 109, 232, 145, 31, 51, 192,
-			83, 36, 55, 39, 51, 108, 57, 72, 0, 14, 68, 109, 24, 148, 60, 83, 39, 51, 40, 91, 35, 72, 0, 16, 68, 85, 184, 179, 132, 89,
-			35, 83, 35, 84, 37, 57, 36, 12, 0, 13, 68, 76, 161, 209, 132, 89, 36, 47, 108, 51, 36, 0, 10, 67, 74, 1, 192, 88, 36, 50,
-			108, 0, 22, 72, 68, 123, 115, 62, 44, 81, 29, 176, 51, 108, 48, 37, 72, 39, 81, 36, 51, 108, 83, 0, 15, 68, 63, 7, 145, 132,
-			72, 36, 49, 39, 55, 39, 51, 36, 0, 15, 68, 61, 232, 81, 132, 72, 36, 55, 107, 39, 51, 36, 12, 0, 14, 68, 61, 44, 209, 132,
-			72, 36, 88, 37, 51, 36, 12, 0, 13, 68, 53, 140, 209, 132, 107, 35, 88, 37, 51, 36, 0, 11, 67, 42, 37, 48, 47, 40, 91, 35,
-			49, 0, 12, 68, 35, 51, 162, 60, 71, 37, 101, 39, 72, 0, 10, 67, 34, 1, 192, 71, 35, 50, 108, 0, 12, 68, 31, 52, 226, 76,
-			36, 57, 89, 40, 89, 0, 17, 70, 9, 55, 243, 120, 120, 0, 108, 89, 36, 65, 37, 55, 108, 50, 0, 22, 5, 217, 135, 46, 216, 180,
-			107, 36, 75, 51, 37, 57, 36, 9, 91, 35, 65, 89, 37, 0, 46, 0, 10, 67, 198, 37, 10, 81, 40, 91, 47, 0, 16, 69, 192, 116,
-			237, 206, 0, 49, 108, 89, 48, 37, 57, 35, 50, 0, 14, 68, 126, 19, 226, 204, 65, 35, 107, 72, 35, 84, 37, 0, 15, 67, 125, 148,
-			92, 65, 39, 19, 35, 51, 51, 35, 104, 17, 0, 11, 67, 125, 40, 0, 65, 35, 88, 35, 50, 0, 19, 70, 109, 225, 226, 68, 193, 224,
-			83, 35, 55, 108, 84, 35, 51, 75, 108, 50, 0, 13, 67, 101, 236, 202, 36, 55, 55, 37, 57, 35, 47, 0, 10, 67, 101, 232, 0, 35,
-			55, 35, 50, 0, 20, 70, 84, 115, 72, 113, 17, 224, 89, 108, 107, 36, 71, 104, 17, 35, 51, 108, 50, 0, 11, 67, 43, 56, 173, 47,
-			40, 57, 40, 48, 0, 18, 70, 34, 3, 237, 31, 49, 224, 71, 35, 50, 72, 48, 108, 57, 108, 50, 0, 16, 70, 32, 116, 179, 198, 37,
-			0, 71, 108, 88, 37, 81, 40, 91, 0, 10, 67, 31, 12, 237, 36, 49, 37, 48, 0, 20, 71, 29, 236, 19, 30, 3, 209, 136, 35, 55,
-			36, 49, 89, 108, 50, 72, 51, 39, 0, 12, 68, 29, 60, 7, 204, 36, 89, 49, 108, 57, 0, 14, 69, 10, 216, 158, 138, 0, 108, 48,
-			39, 55, 39, 50, 0, 0, 16, 69, 197, 22, 209, 136, 240, 81, 36, 51, 83, 39, 51, 40, 72, 0, 16, 69, 181, 19, 199, 72, 240, 48,
-			35, 51, 72, 108, 88, 35, 72, 0, 16, 70, 127, 51, 199, 131, 55, 192, 65, 37, 72, 108, 50, 37, 65, 0, 22, 70, 120, 124, 202, 107,
-			52, 64, 55, 108, 57, 35, 47, 35, 104, 17, 35, 57, 57, 39, 51, 0, 13, 68, 81, 23, 162, 192, 91, 36, 51, 55, 40, 49, 0, 11,
-			67, 69, 198, 64, 51, 39, 104, 17, 19, 0, 16, 69, 61, 241, 240, 70, 16, 72, 35, 65, 108, 49, 39, 51, 36, 0, 18, 70, 56, 120,
-			145, 62, 36, 64, 101, 108, 84, 35, 51, 36, 72, 40, 51, 0, 14, 69, 40, 114, 162, 70, 16, 47, 108, 47, 40, 51, 36, 0, 13, 68,
-			35, 52, 243, 192, 71, 36, 57, 89, 37, 49, 0, 19, 70, 35, 49, 210, 124, 124, 207, 71, 37, 57, 108, 88, 65, 108, 57, 35, 72, 0,
-			17, 70, 10, 209, 209, 40, 124, 207, 108, 48, 108, 51, 47, 108, 57, 72, 0, 0, 12, 67, 207, 12, 212, 6, 57, 36, 49, 37, 91, 0,
-			11, 67, 198, 44, 212, 81, 40, 57, 36, 91, 0, 11, 67, 194, 37, 20, 49, 40, 91, 36, 91, 0, 20, 71, 184, 116, 66, 33, 69, 7,
-			128, 76, 108, 51, 108, 71, 91, 39, 91, 108, 50, 0, 14, 69, 127, 60, 17, 136, 128, 65, 37, 49, 51, 39, 71, 0, 14, 68, 125, 149,
-			34, 112, 65, 35, 19, 91, 40, 104, 17, 0, 24, 71, 80, 164, 95, 69, 172, 7, 128, 91, 39, 47, 39, 51, 65, 39, 51, 104, 17, 35,
-			49, 108, 50, 0, 14, 68, 69, 97, 243, 40, 51, 36, 88, 108, 57, 35, 47, 0, 18, 70, 63, 4, 202, 70, 36, 128, 72, 36, 49, 89,
-			47, 36, 51, 39, 88, 0, 11, 67, 50, 37, 20, 75, 40, 91, 36, 91, 0, 8, 66, 50, 32, 75, 35, 84, 0, 11, 67, 33, 165, 128,
-			71, 39, 104, 17, 88, 0, 10, 67, 30, 8, 148, 35, 50, 40, 91, 0, 0, 12, 67, 193, 236, 240, 49, 37, 6, 55, 37, 49, 0, 18,
-			70, 193, 225, 226, 207, 8, 145, 49, 36, 55, 108, 84, 37, 49, 39, 51, 0, 15, 68, 131, 56, 34, 28, 50, 36, 57, 108, 50, 35, 84,
-			108, 0, 19, 71, 130, 44, 30, 206, 34, 179, 60, 50, 40, 49, 55, 36, 39, 47, 37, 72, 0, 12, 68, 128, 120, 34, 28, 50, 108, 50,
-			84, 108, 0, 10, 67, 126, 35, 0, 65, 39, 12, 75, 0, 11, 67, 125, 145, 219, 65, 39, 19, 108, 83, 0, 22, 71, 52, 196, 71, 120,
-			116, 226, 60, 107, 35, 75, 35, 51, 39, 55, 35, 89, 84, 35, 72, 0, 17, 70, 43, 52, 71, 111, 8, 0, 47, 37, 51, 35, 83, 49,
-			35, 50, 0, 19, 70, 32, 232, 145, 32, 232, 145, 71, 39, 101, 39, 51, 71, 39, 101, 39, 51, 0, 16, 70, 29, 50, 135, 42, 36, 192,
-			36, 89, 47, 108, 47, 40, 89, 0, 17, 70, 9, 236, 98, 71, 52, 223, 108, 55, 81, 39, 51, 37, 89, 65, 0, 0, 15, 69, 190, 8,
-			138, 206, 208, 90, 36, 50, 39, 47, 37, 48, 0, 13, 67, 137, 17, 220, 84, 35, 51, 51, 108, 104, 17, 0, 14, 68, 129, 241, 243, 80,
-			50, 35, 65, 108, 57, 36, 91, 0, 14, 68, 125, 66, 145, 204, 65, 39, 91, 47, 35, 51, 37, 0, 12, 67, 113, 72, 128, 104, 17, 35,
-			91, 39, 12, 0, 15, 69, 83, 52, 78, 80, 160, 91, 37, 51, 101, 36, 91, 47, 0, 17, 70, 83, 8, 155, 31, 60, 192, 91, 39, 49,
-			40, 83, 108, 37, 12, 0, 16, 69, 63, 52, 98, 112, 160, 72, 37, 51, 84, 35, 104, 17, 47, 0, 14, 68, 33, 17, 243, 80, 71, 35,
-			51, 108, 57, 35, 91, 0, 14, 67, 33, 17, 220, 71, 35, 6, 51, 51, 108, 104, 17, 0, 15, 69, 32, 116, 177, 80, 160, 71, 108, 88,
-			81, 35, 91, 47, 0, 14, 69, 30, 2, 7, 80, 160, 35, 50, 71, 108, 91, 47, 0, 13, 68, 9, 49, 243, 80, 108, 89, 108, 57, 36,
-			91, 0, 13, 68, 9, 17, 243, 80, 108, 51, 108, 57, 36, 91, 0, 0, 14, 68, 207, 1, 243, 192, 57, 36, 49, 108, 57, 36, 49, 0,
-			15, 69, 197, 28, 210, 180, 112, 81, 39, 51, 37, 88, 48, 108, 0, 11, 67, 131, 5, 0, 50, 35, 49, 36, 91, 0, 19, 71, 127, 50,
-			145, 31, 60, 211, 124, 65, 37, 47, 51, 108, 37, 12, 89, 65, 0, 22, 70, 124, 215, 207, 77, 156, 207, 65, 39, 107, 35, 65, 65, 35,
-			72, 89, 35, 19, 37, 72, 0, 12, 68, 122, 43, 243, 192, 55, 39, 90, 37, 49, 0, 20, 71, 40, 116, 98, 42, 2, 34, 68, 47, 108,
-			51, 39, 47, 35, 65, 71, 40, 51, 0, 13, 68, 33, 235, 243, 192, 71, 36, 55, 90, 37, 49, 0, 12, 68, 29, 52, 71, 108, 36, 89,
-			51, 108, 83, 0, 17, 70, 29, 50, 145, 120, 114, 0, 39, 89, 47, 39, 51, 55, 108, 71, 0, 14, 68, 28, 165, 71, 108, 36, 47, 47,
-			36, 89, 108, 83, 0, 29, 3, 58, 45, 40, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 104, 17, 35, 65, 81,
-			37, 50, 0, 46, 0, 15, 69, 195, 49, 224, 137, 64, 49, 37, 57, 108, 50, 40, 91, 0, 15, 69, 183, 52, 71, 205, 64, 48, 37, 51,
-			108, 57, 36, 91, 0, 15, 69, 135, 52, 202, 71, 48, 107, 37, 89, 47, 36, 51, 37, 0, 11, 67, 41, 177, 222, 47, 39, 83, 108, 55,
-			0, 11, 67, 41, 28, 226, 47, 51, 37, 57, 39, 0, 16, 69, 32, 229, 7, 205, 64, 71, 35, 101, 91, 108, 57, 36, 91, 0, 13, 68,
-			30, 36, 71, 112, 39, 12, 51, 108, 104, 17, 0, 15, 69, 29, 196, 135, 205, 64, 35, 83, 88, 108, 57, 36, 91, 0, 14, 68, 29, 164,
-			71, 112, 36, 104, 17, 51, 108, 104, 17, 0, 13, 68, 29, 68, 71, 112, 36, 91, 51, 108, 104, 17, 0, 11, 67, 9, 28, 226, 108, 51,
-			37, 57, 39, 0, 0, 12, 67, 197, 235, 81, 81, 39, 55, 48, 35, 51, 0, 11, 67, 187, 52, 17, 76, 37, 88, 35, 51, 0, 17, 70,
-			125, 177, 217, 205, 232, 0, 65, 35, 83, 108, 37, 55, 39, 50, 0, 12, 67, 107, 56, 145, 104, 17, 35, 57, 40, 51, 0, 11, 67, 101,
-			247, 0, 39, 12, 65, 104, 17, 0, 11, 67, 84, 241, 223, 89, 36, 72, 108, 65, 0, 12, 67, 81, 21, 17, 91, 36, 51, 91, 36, 51,
-			0, 11, 67, 75, 56, 145, 88, 37, 84, 35, 51, 0, 12, 67, 73, 20, 145, 88, 36, 51, 88, 36, 51, 0, 15, 69, 70, 39, 141, 29,
-			176, 51, 40, 55, 35, 107, 108, 83, 0, 11, 67, 43, 52, 145, 47, 37, 88, 36, 51, 0, 14, 67, 40, 236, 209, 47, 35, 101, 35, 57,
-			57, 39, 51, 0, 11, 67, 33, 76, 209, 71, 35, 91, 37, 51, 0, 10, 67, 29, 248, 145, 39, 65, 40, 51, 0, 0, 11, 67, 205, 65,
-			224, 57, 36, 91, 108, 50, 0, 11, 67, 193, 65, 224, 49, 36, 91, 108, 50, 0, 11, 67, 129, 72, 146, 50, 39, 91, 40, 88, 0, 11,
-			67, 129, 65, 224, 50, 36, 91, 108, 50, 0, 12, 68, 70, 44, 199, 120, 51, 39, 57, 108, 55, 0, 14, 68, 50, 4, 71, 120, 75, 36,
-			50, 36, 51, 108, 55, 0, 16, 69, 35, 54, 209, 137, 160, 71, 37, 83, 40, 51, 40, 104, 17, 0, 11, 68, 30, 36, 71, 120, 39, 51,
-			108, 55, 0, 12, 68, 30, 4, 135, 120, 36, 50, 88, 108, 55, 0, 13, 68, 29, 194, 7, 120, 36, 104, 17, 71, 108, 55, 0, 12, 68,
-			29, 50, 179, 136, 36, 89, 47, 37, 84, 0, 10, 67, 126, 40, 0, 65, 40, 50, 0, 76, 0, 11, 67, 197, 28, 211, 81, 37, 51, 37,
-			89, 0, 11, 67, 197, 24, 147, 81, 35, 51, 40, 89, 0, 16, 69, 194, 212, 96, 207, 0, 49, 39, 48, 36, 51, 50, 37, 49, 0, 13,
-			67, 112, 252, 211, 104, 17, 36, 72, 72, 37, 89, 0, 11, 67, 76, 136, 147, 89, 35, 71, 40, 89, 0, 14, 68, 48, 120, 34, 68, 75,
-			108, 50, 36, 84, 35, 51, 0, 13, 68, 40, 115, 34, 68, 47, 108, 75, 84, 35, 51, 0, 14, 68, 33, 225, 208, 68, 71, 35, 55, 108,
-			88, 39, 51, 0, 13, 68, 33, 53, 199, 124, 71, 35, 89, 47, 108, 65, 0, 14, 68, 32, 243, 34, 68, 71, 35, 72, 72, 91, 40, 51,
-			0, 12, 68, 31, 58, 199, 124, 35, 57, 57, 108, 65, 0, 12, 68, 31, 4, 71, 124, 36, 49, 51, 108, 65, 0, 11, 67, 30, 44, 211,
-			39, 84, 36, 57, 89, 0, 12, 68, 30, 38, 162, 68, 39, 104, 17, 39, 51, 0, 12, 68, 29, 228, 135, 124, 36, 55, 88, 108, 65, 0,
-			18, 70, 29, 50, 139, 128, 124, 199, 36, 89, 47, 36, 89, 50, 108, 35, 50, 0, 8, 66, 30, 0, 36, 50, 0, 46, 0, 15, 68, 185,
-			232, 173, 72, 76, 36, 55, 39, 84, 48, 35, 88, 0, 13, 68, 129, 56, 135, 128, 50, 36, 89, 84, 108, 50, 0, 17, 70, 127, 60, 17,
-			137, 188, 212, 65, 37, 49, 51, 39, 83, 37, 91, 0, 14, 68, 115, 53, 199, 128, 104, 17, 36, 57, 47, 108, 50, 0, 14, 68, 93, 172,
-			199, 128, 47, 39, 104, 17, 57, 108, 50, 0, 13, 68, 83, 53, 199, 128, 91, 36, 57, 47, 108, 50, 0, 13, 68, 78, 3, 199, 128, 89,
-			36, 50, 72, 108, 50, 0, 13, 68, 77, 229, 199, 128, 89, 39, 55, 47, 108, 50, 0, 13, 68, 63, 10, 199, 128, 72, 39, 49, 49, 35,
-			50, 0, 12, 68, 50, 44, 199, 128, 57, 40, 57, 108, 50, 0, 14, 68, 49, 28, 199, 128, 75, 35, 51, 37, 57, 108, 50, 0, 13, 68,
-			42, 12, 98, 72, 47, 40, 50, 81, 40, 88, 0, 13, 68, 40, 140, 199, 128, 47, 36, 71, 57, 108, 50, 0, 12, 68, 29, 156, 199, 128,
-			35, 19, 57, 108, 50, 0, 12, 68, 29, 28, 71, 128, 39, 51, 81, 108, 50, 0, 14, 68, 8, 196, 109, 72, 108, 75, 39, 51, 48, 35,
-			88, 0, 0, 11, 67, 204, 120, 145, 57, 108, 84, 35, 51, 0, 11, 67, 194, 4, 192, 49, 36, 50, 36, 89, 0, 18, 70, 188, 104, 155,
-			205, 44, 240, 90, 36, 19, 39, 83, 37, 88, 37, 49, 0, 18, 70, 182, 8, 159, 139, 8, 176, 48, 36, 50, 39, 65, 39, 49, 39, 49,
-			0, 13, 68, 138, 12, 98, 196, 84, 35, 50, 81, 39, 81, 0, 16, 69, 133, 28, 15, 29, 240, 107, 35, 51, 49, 39, 72, 108, 65, 0,
-			15, 69, 129, 65, 207, 137, 16, 50, 36, 91, 108, 72, 39, 51, 0, 11, 67, 125, 60, 209, 65, 35, 89, 37, 51, 0, 11, 67, 125, 51,
-			0, 65, 35, 89, 36, 75, 0, 11, 67, 124, 252, 209, 65, 39, 72, 37, 51, 0, 10, 67, 123, 50, 145, 55, 37, 47, 51, 0, 11, 67,
-			77, 248, 145, 89, 35, 65, 40, 51, 0, 15, 69, 77, 17, 210, 205, 16, 89, 35, 51, 108, 88, 37, 51, 0, 16, 69, 73, 248, 81, 205,
-			16, 88, 35, 65, 107, 35, 51, 37, 51, 0, 19, 70, 61, 252, 17, 28, 172, 240, 72, 36, 65, 39, 49, 51, 108, 47, 37, 49, 0, 18,
-			70, 60, 115, 211, 40, 120, 0, 6, 72, 108, 72, 89, 36, 47, 108, 50, 0, 11, 67, 42, 43, 81, 47, 40, 48, 39, 51, 0, 11, 67,
-			42, 8, 145, 47, 35, 50, 40, 51, 0, 19, 70, 41, 23, 226, 197, 17, 219, 47, 36, 51, 65, 39, 81, 36, 51, 108, 83, 0, 11, 67,
-			34, 44, 209, 71, 39, 57, 36, 51, 0, 15, 68, 33, 232, 98, 76, 71, 39, 55, 107, 35, 84, 35, 89, 0, 13, 68, 33, 19, 51, 76,
-			71, 36, 51, 75, 37, 89, 0, 11, 67, 32, 120, 145, 71, 108, 84, 35, 51, 0, 15, 69, 32, 119, 155, 137, 16, 71, 36, 55, 83, 39,
-			84, 51, 0, 15, 69, 32, 115, 226, 29, 240, 71, 108, 72, 35, 84, 108, 65, 0, 13, 68, 29, 59, 115, 76, 36, 89, 48, 36, 57, 89,
-			0, 0, 13, 68, 194, 36, 162, 136, 49, 39, 88, 39, 84, 39, 0, 15, 69, 193, 28, 223, 30, 0, 49, 35, 51, 37, 65, 108, 50, 0,
-			11, 67, 131, 56, 146, 50, 37, 57, 40, 88, 0, 14, 69, 127, 56, 95, 30, 0, 65, 37, 107, 65, 108, 50, 0, 15, 69, 61, 225, 226,
-			205, 32, 72, 36, 55, 108, 84, 37, 88, 0, 11, 67, 9, 75, 82, 108, 91, 48, 35, 88, 0, 0, 15, 69, 197, 19, 209, 30, 16, 81,
-			36, 51, 72, 51, 108, 107, 0, 14, 69, 195, 55, 179, 181, 48, 49, 37, 55, 37, 48, 89, 0, 11, 67, 194, 37, 15, 49, 40, 91, 35,
-			72, 0, 13, 68, 183, 60, 115, 68, 48, 36, 57, 81, 37, 51, 0, 12, 68, 183, 55, 162, 68, 48, 37, 55, 39, 51, 0, 11, 67, 181,
-			236, 211, 48, 39, 55, 37, 89, 0, 16, 69, 181, 50, 135, 131, 0, 48, 36, 89, 47, 108, 50, 35, 49, 0, 13, 68, 126, 5, 7, 4,
-			65, 35, 50, 91, 35, 19, 0, 10, 67, 71, 56, 147, 51, 39, 40, 89, 0, 17, 70, 71, 23, 135, 42, 36, 64, 51, 36, 81, 55, 108,
-			47, 39, 51, 0, 16, 70, 68, 97, 240, 42, 36, 64, 51, 36, 108, 49, 47, 39, 51, 0, 12, 67, 60, 136, 147, 72, 35, 71, 71, 40,
-			89, 0, 12, 68, 43, 49, 202, 68, 47, 36, 108, 47, 51, 0, 20, 71, 43, 8, 34, 122, 43, 243, 192, 47, 36, 49, 50, 39, 55, 39,
-			90, 37, 49, 0, 12, 68, 42, 37, 179, 52, 47, 39, 88, 37, 107, 0, 13, 68, 40, 97, 202, 68, 47, 36, 108, 12, 47, 51, 0, 8,
-			66, 34, 0, 71, 39, 50, 0, 17, 70, 32, 114, 143, 35, 52, 64, 71, 108, 47, 35, 72, 71, 37, 51, 0, 16, 70, 31, 8, 135, 62,
-			36, 64, 36, 49, 84, 108, 72, 39, 51, 0, 17, 70, 30, 212, 71, 42, 36, 64, 39, 48, 36, 51, 108, 47, 39, 51, 0, 16, 70, 30,
-			40, 145, 42, 36, 64, 39, 84, 36, 51, 47, 40, 51, 0, 11, 68, 29, 245, 135, 4, 36, 65, 88, 108, 0, 15, 69, 29, 66, 136, 30,
-			16, 36, 91, 47, 36, 71, 108, 107, 0, 15, 69, 29, 20, 223, 137, 48, 35, 51, 35, 89, 65, 40, 89, 0, 0, 18, 70, 131, 60, 34,
-			57, 81, 222, 50, 37, 49, 40, 101, 36, 89, 108, 55, 0, 14, 67, 113, 232, 178, 104, 17, 39, 55, 84, 36, 57, 36, 0, 9, 66, 92,
-			128, 47, 36, 71, 71, 0, 10, 67, 73, 66, 128, 88, 36, 91, 47, 0, 11, 67, 69, 66, 128, 51, 6, 35, 91, 47, 0, 11, 67, 41,
-			66, 128, 47, 6, 35, 91, 47, 0, 0, 14, 68, 197, 65, 243, 60, 81, 39, 91, 108, 57, 35, 72, 0, 17, 70, 195, 60, 7, 138, 36,
-			192, 49, 36, 57, 49, 108, 84, 40, 89, 0, 15, 69, 193, 225, 211, 137, 16, 49, 36, 55, 108, 89, 39, 51, 0, 14, 68, 127, 60, 20,
-			60, 65, 37, 49, 36, 91, 35, 72, 0, 13, 68, 124, 60, 226, 76, 65, 35, 19, 57, 40, 89, 0, 17, 70, 111, 60, 19, 28, 168, 145,
-			83, 37, 49, 89, 108, 47, 39, 51, 0, 15, 68, 88, 242, 51, 60, 88, 36, 72, 72, 36, 71, 37, 72, 0, 11, 67, 83, 56, 153, 91,
-			39, 57, 40, 19, 0, 15, 69, 78, 1, 202, 137, 16, 89, 36, 50, 108, 47, 39, 51, 0, 19, 70, 77, 188, 209, 192, 140, 209, 89, 35,
-			83, 37, 51, 49, 35, 71, 37, 51, 0, 13, 68, 70, 3, 243, 60, 51, 35, 50, 72, 37, 72, 0, 17, 70, 69, 241, 224, 43, 60, 0,
-			51, 39, 65, 108, 50, 47, 37, 49, 0, 17, 70, 63, 60, 10, 28, 168, 145, 72, 37, 49, 47, 108, 47, 39, 51, 0, 20, 70, 63, 20,
-			72, 29, 24, 145, 72, 36, 81, 35, 51, 71, 108, 51, 84, 35, 51, 0, 14, 68, 41, 33, 243, 60, 47, 35, 88, 108, 57, 39, 72, 0,
-			13, 68, 40, 124, 243, 60, 6, 47, 35, 37, 12, 72, 0, 14, 68, 33, 24, 179, 60, 71, 36, 51, 35, 84, 37, 72, 0, 17, 70, 30,
-			12, 223, 28, 168, 145, 35, 50, 37, 65, 108, 47, 39, 51, 0, 35, 76, 29, 236, 10, 70, 44, 7, 68, 252, 226, 197, 17, 223, 36, 55,
-			36, 49, 47, 36, 51, 39, 49, 108, 51, 72, 37, 57, 39, 81, 36, 51, 108, 65, 0, 17, 70, 29, 60, 222, 28, 168, 145, 35, 89, 37,
-			55, 108, 47, 39, 51, 0, 9, 1, 36, 72, 39, 55, 108, 51, 0, 0, 12, 67, 193, 56, 138, 49, 36, 89, 84, 35, 47, 0, 11, 67,
-			131, 8, 0, 50, 35, 49, 39, 50, 0, 16, 69, 127, 1, 209, 30, 0, 65, 35, 49, 49, 108, 51, 108, 50, 0, 19, 70, 125, 76, 7,
-			43, 49, 224, 65, 36, 91, 49, 108, 47, 37, 57, 108, 50, 0, 12, 67, 125, 56, 0, 65, 39, 89, 36, 50, 50, 0, 17, 69, 125, 50,
-			141, 78, 0, 65, 39, 89, 47, 35, 107, 89, 35, 50, 0, 19, 70, 124, 116, 160, 61, 17, 224, 65, 108, 88, 35, 50, 72, 35, 51, 108,
-			50, 0, 12, 67, 93, 21, 10, 47, 35, 51, 35, 91, 47, 0, 15, 69, 83, 52, 95, 137, 32, 91, 37, 51, 65, 39, 12, 88, 0, 12,
-			67, 77, 21, 10, 89, 36, 51, 36, 91, 47, 0, 12, 67, 68, 76, 202, 51, 39, 19, 57, 35, 47, 0, 16, 68, 41, 28, 222, 200, 47,
-			51, 37, 57, 40, 55, 36, 57, 36, 0, 18, 70, 33, 4, 71, 109, 65, 224, 71, 35, 88, 51, 35, 83, 91, 108, 50, 0, 21, 71, 29,
-			236, 10, 71, 60, 7, 120, 36, 55, 36, 49, 47, 36, 51, 37, 49, 108, 55, 0, 11, 1, 37, 72, 35, 51, 6, 89, 35, 72, 0, 0,
-			20, 71, 192, 116, 72, 68, 114, 162, 68, 49, 108, 51, 71, 36, 51, 108, 47, 39, 51, 0, 17, 70, 183, 53, 7, 33, 17, 225, 48, 37,
-			91, 108, 71, 51, 108, 107, 0, 19, 70, 133, 236, 34, 180, 164, 64, 107, 36, 55, 36, 49, 39, 48, 47, 36, 51, 0, 17, 68, 124, 168,
-			34, 100, 65, 39, 47, 36, 50, 35, 84, 84, 36, 19, 0, 17, 69, 105, 23, 200, 204, 240, 104, 17, 39, 51, 39, 65, 71, 37, 72, 0,
-			21, 71, 68, 115, 243, 139, 20, 71, 124, 51, 108, 72, 37, 57, 39, 81, 36, 51, 108, 65, 0, 16, 69, 61, 19, 148, 204, 240, 72, 36,
-			51, 35, 101, 91, 37, 72, 0, 8, 66, 48, 112, 75, 108, 0, 76, 0, 20, 70, 181, 20, 237, 192, 172, 226, 48, 36, 51, 36, 89, 48,
-			36, 49, 47, 37, 84, 0, 12, 67, 129, 72, 179, 50, 35, 91, 35, 84, 37, 0, 13, 67, 113, 113, 200, 104, 17, 39, 47, 47, 108, 71,
-			0, 11, 67, 101, 178, 128, 36, 83, 83, 35, 47, 0, 12, 67, 85, 178, 128, 89, 36, 6, 83, 35, 47, 0, 10, 67, 81, 178, 128, 91,
-			36, 83, 47, 0, 11, 67, 80, 161, 200, 91, 36, 47, 108, 71, 0, 10, 67, 77, 178, 128, 89, 36, 83, 47, 0, 15, 69, 76, 226, 176,
-			137, 64, 89, 35, 101, 47, 49, 40, 91, 0, 20, 71, 76, 226, 173, 137, 50, 135, 128, 89, 35, 101, 47, 48, 40, 89, 47, 108, 50, 0,
-			11, 67, 69, 178, 128, 51, 6, 35, 83, 47, 0, 16, 69, 69, 39, 199, 205, 64, 51, 35, 88, 65, 108, 57, 36, 91, 0, 13, 68, 58,
-			36, 84, 40, 101, 39, 51, 36, 91, 47, 0, 10, 67, 57, 178, 128, 101, 39, 83, 47, 0, 10, 67, 49, 178, 128, 75, 39, 83, 47, 0,
-			22, 71, 33, 50, 177, 30, 5, 7, 128, 71, 35, 89, 47, 36, 81, 108, 50, 36, 91, 108, 50, 0, 14, 68, 33, 17, 243, 40, 71, 35,
-			51, 108, 57, 35, 47, 0, 11, 67, 29, 200, 179, 35, 104, 17, 84, 108, 0, 9, 67, 29, 178, 128, 39, 83, 47, 0, 0, 19, 70, 192,
-			119, 237, 206, 34, 145, 49, 108, 65, 48, 37, 57, 40, 47, 36, 51, 0, 16, 69, 125, 50, 151, 205, 144, 65, 39, 89, 47, 35, 47, 37,
-			19, 0, 11, 67, 113, 17, 192, 104, 17, 39, 51, 108, 0, 12, 67, 105, 17, 192, 104, 17, 35, 51, 51, 108, 0, 17, 70, 58, 33, 225,
-			61, 67, 192, 101, 108, 107, 35, 72, 91, 39, 72, 0, 10, 67, 53, 17, 192, 107, 35, 51, 108, 0, 21, 71, 29, 251, 81, 28, 164, 115,
-			76, 36, 65, 48, 36, 51, 108, 47, 36, 51, 37, 89, 0, 0, 11, 67, 197, 24, 128, 6, 81, 36, 51, 39, 0, 13, 68, 185, 28, 7,
-			32, 76, 36, 51, 49, 108, 71, 0, 15, 69, 185, 17, 241, 80, 160, 76, 36, 51, 108, 81, 35, 91, 0, 13, 68, 181, 50, 179, 188, 48,
-			39, 89, 47, 37, 90, 0, 15, 69, 136, 132, 199, 204, 160, 84, 36, 71, 89, 108, 57, 47, 0, 12, 67, 135, 49, 138, 107, 36, 57, 19,
-			35, 47, 0, 14, 68, 126, 39, 162, 204, 65, 39, 12, 55, 35, 84, 37, 0, 13, 68, 125, 156, 226, 32, 65, 35, 19, 57, 40, 71, 0,
-			19, 69, 125, 152, 34, 204, 160, 65, 35, 19, 50, 35, 84, 37, 57, 57, 35, 47, 0, 18, 69, 124, 246, 115, 30, 0, 65, 39, 72, 72,
-			35, 19, 37, 57, 108, 50, 0, 13, 68, 124, 120, 34, 204, 65, 108, 50, 35, 84, 37, 0, 16, 69, 112, 117, 72, 206, 0, 104, 17, 108,
-			89, 36, 71, 37, 50, 0, 16, 69, 74, 3, 143, 30, 0, 88, 35, 50, 35, 101, 72, 108, 50, 0, 14, 68, 63, 60, 81, 204, 6, 72,
-			37, 81, 35, 51, 37, 0, 10, 67, 62, 33, 138, 72, 40, 36, 47, 0, 13, 68, 57, 24, 34, 32, 101, 35, 51, 50, 40, 71, 0, 12,
-			67, 50, 1, 202, 75, 35, 50, 50, 108, 47, 0, 13, 68, 33, 50, 135, 32, 71, 35, 89, 47, 108, 71, 0, 12, 67, 33, 33, 220, 71,
-			39, 88, 108, 104, 17, 0, 0, 18, 70, 198, 3, 7, 128, 252, 207, 81, 39, 50, 75, 108, 50, 72, 37, 72, 0, 12, 67, 137, 36, 71,
-			84, 39, 88, 35, 51, 108, 0, 12, 67, 135, 4, 7, 107, 108, 49, 35, 88, 108, 0, 11, 67, 126, 39, 135, 65, 39, 12, 55, 108, 0,
-			10, 67, 122, 36, 71, 55, 39, 51, 108, 0, 14, 67, 114, 44, 199, 104, 17, 35, 84, 37, 57, 35, 50, 0, 10, 67, 85, 227, 64, 89,
-			39, 55, 107, 0, 11, 67, 82, 36, 71, 91, 39, 12, 51, 108, 0, 14, 67, 41, 199, 135, 47, 35, 104, 17, 35, 55, 55, 108, 0, 28,
-			74, 29, 236, 10, 70, 33, 211, 40, 114, 179, 192, 36, 55, 36, 49, 47, 36, 51, 39, 36, 89, 47, 108, 47, 37, 49, 0, 11, 67, 28,
-			196, 71, 36, 12, 75, 51, 108, 0, 11, 1, 42, 89, 36, 47, 108, 51, 36, 12, 0, 0, 14, 68, 85, 232, 135, 40, 89, 35, 55, 35,
-			84, 108, 47, 0, 10, 67, 70, 36, 226, 51, 39, 89, 39, 0, 11, 67, 68, 97, 222, 51, 36, 108, 12, 55, 0, 15, 69, 63, 54, 202,
-			71, 48, 72, 37, 83, 47, 36, 51, 37, 0, 12, 67, 61, 17, 204, 72, 39, 51, 51, 108, 75, 0, 14, 68, 53, 68, 71, 40, 107, 35,
-			91, 35, 51, 108, 47, 0, 20, 70, 52, 117, 145, 104, 124, 200, 107, 108, 88, 36, 51, 104, 17, 108, 57, 36, 71, 0, 14, 68, 49, 228,
-			199, 40, 75, 35, 55, 35, 89, 108, 47, 0, 12, 68, 42, 36, 71, 40, 47, 39, 51, 108, 47, 0, 15, 68, 41, 23, 237, 40, 47, 36,
-			51, 39, 65, 48, 36, 47, 0, 12, 68, 34, 36, 71, 40, 71, 39, 51, 108, 47, 0, 16, 69, 32, 243, 76, 28, 128, 71, 35, 72, 107,
-			36, 75, 108, 71, 0, 15, 69, 29, 226, 141, 28, 128, 36, 55, 47, 36, 107, 108, 71, 0, 15, 69, 29, 101, 209, 28, 128, 36, 88, 47,
-			36, 51, 108, 71, 0, 0, 17, 68, 127, 4, 81, 28, 65, 39, 49, 35, 51, 51, 35, 51, 35, 50, 0, 17, 68, 125, 67, 149, 28, 65,
-			39, 91, 35, 101, 101, 35, 89, 35, 50, 0, 11, 67, 120, 193, 223, 55, 36, 75, 108, 65, 0, 12, 67, 112, 241, 205, 104, 17, 36, 72,
-			108, 107, 0, 11, 67, 79, 17, 223, 89, 36, 81, 108, 65, 0, 16, 69, 41, 236, 81, 29, 176, 47, 36, 55, 36, 81, 51, 108, 83, 0,
-			13, 68, 28, 236, 209, 28, 35, 101, 37, 51, 35, 50, 0, 0, 13, 68, 204, 235, 135, 120, 57, 35, 101, 76, 108, 55, 0, 16, 69, 194,
-			2, 145, 28, 160, 49, 39, 50, 47, 39, 51, 108, 47, 0, 17, 70, 192, 119, 237, 137, 44, 202, 49, 108, 65, 48, 39, 88, 37, 47, 0,
-			11, 67, 137, 23, 128, 84, 35, 51, 35, 55, 0, 13, 68, 126, 8, 135, 120, 65, 36, 50, 84, 108, 55, 0, 16, 69, 125, 147, 18, 28,
-			160, 65, 39, 19, 75, 36, 88, 108, 47, 0, 15, 69, 83, 1, 243, 28, 160, 91, 36, 49, 108, 57, 108, 47, 0, 20, 71, 76, 120, 10,
-			71, 54, 226, 188, 89, 108, 50, 47, 36, 51, 37, 83, 40, 90, 0, 16, 69, 69, 51, 200, 30, 0, 51, 35, 89, 35, 72, 71, 108, 50,
-			0, 15, 69, 53, 241, 243, 28, 160, 107, 36, 65, 108, 57, 108, 47, 0, 11, 67, 50, 17, 224, 75, 35, 107, 108, 50, 0, 15, 69, 50,
-			1, 243, 28, 160, 75, 36, 50, 108, 57, 108, 47, 0, 16, 69, 49, 44, 243, 28, 160, 75, 39, 88, 37, 12, 57, 108, 47, 0, 13, 68,
-			43, 52, 145, 136, 47, 37, 88, 51, 39, 12, 0, 18, 70, 41, 28, 222, 136, 140, 202, 47, 36, 51, 37, 55, 39, 71, 37, 47, 0, 14,
-			69, 34, 44, 19, 204, 160, 71, 39, 49, 89, 37, 47, 0, 16, 69, 29, 232, 115, 138, 0, 36, 55, 108, 107, 37, 57, 40, 50, 0, 15,
-			69, 29, 50, 176, 30, 0, 36, 89, 47, 36, 49, 108, 50, 0, 16, 69, 28, 242, 51, 28, 160, 35, 72, 35, 71, 37, 57, 108, 47, 0,
-			0, 11, 67, 193, 236, 207, 49, 36, 55, 37, 72, 0, 17, 69, 193, 225, 237, 71, 0, 49, 39, 55, 108, 48, 35, 51, 35, 49, 0, 10,
-			67, 193, 23, 192, 49, 36, 51, 65, 0, 11, 67, 187, 1, 207, 76, 35, 49, 108, 72, 0, 11, 67, 181, 241, 207, 48, 39, 65, 108, 72,
-			0, 13, 68, 180, 244, 71, 124, 48, 36, 72, 51, 108, 65, 0, 11, 67, 137, 23, 192, 84, 35, 51, 35, 65, 0, 11, 67, 133, 23, 192,
-			107, 36, 51, 35, 65, 0, 11, 67, 124, 241, 207, 65, 36, 72, 108, 72, 0, 13, 67, 114, 1, 207, 104, 17, 35, 50, 50, 108, 72, 0,
-			10, 67, 102, 1, 207, 36, 50, 108, 72, 0, 11, 67, 61, 23, 192, 72, 35, 51, 35, 65, 0, 11, 67, 57, 119, 192, 101, 35, 47, 35,
-			65, 0, 13, 68, 41, 244, 199, 52, 47, 36, 65, 89, 108, 107, 0, 10, 67, 28, 168, 143, 36, 47, 39, 72, 0, 0, 14, 68, 185, 243,
-			199, 128, 76, 35, 65, 36, 72, 108, 50, 0, 17, 70, 180, 114, 145, 206, 34, 128, 48, 108, 47, 51, 37, 57, 39, 47, 0, 13, 68, 131,
-			52, 199, 128, 50, 36, 57, 89, 108, 50, 0, 14, 68, 131, 20, 71, 128, 50, 36, 81, 35, 51, 108, 50, 0, 13, 68, 127, 52, 199, 128,
-			65, 36, 57, 89, 108, 50, 0, 18, 70, 125, 113, 243, 32, 114, 128, 65, 39, 47, 108, 57, 36, 71, 108, 47, 0, 18, 70, 125, 113, 222,
-			32, 114, 128, 65, 39, 47, 108, 55, 36, 71, 108, 47, 0, 16, 70, 124, 124, 34, 120, 114, 128, 65, 35, 49, 40, 55, 108, 47, 0, 14,
-			68, 113, 236, 199, 128, 104, 17, 35, 55, 57, 108, 50, 0, 13, 67, 93, 164, 94, 47, 39, 104, 17, 51, 39, 55, 0, 13, 68, 57, 52,
-			71, 128, 101, 39, 89, 51, 108, 50, 0, 16, 70, 30, 36, 98, 122, 43, 243, 40, 51, 39, 55, 39, 90, 37, 0, 17, 70, 10, 12, 34,
-			122, 43, 243, 108, 50, 49, 39, 55, 39, 90, 37, 0, 0, 13, 68, 197, 244, 71, 132, 81, 39, 65, 51, 108, 107, 0, 12, 67, 197, 24,
-			64, 6, 81, 36, 51, 36, 107, 0, 18, 70, 197, 19, 19, 40, 120, 0, 81, 39, 51, 75, 36, 89, 47, 108, 50, 0, 11, 67, 193, 24,
-			64, 49, 39, 51, 36, 12, 0, 18, 70, 193, 19, 211, 40, 120, 0, 49, 39, 51, 72, 36, 89, 47, 108, 50, 0, 18, 70, 193, 19, 210,
-			32, 120, 0, 49, 39, 51, 72, 88, 35, 71, 108, 50, 0, 18, 70, 180, 116, 71, 197, 17, 219, 48, 108, 51, 108, 81, 36, 51, 108, 83,
-			0, 11, 67, 133, 24, 64, 107, 36, 51, 51, 36, 0, 10, 67, 93, 19, 192, 47, 39, 51, 72, 0, 15, 69, 62, 241, 240, 29, 240, 72,
-			36, 90, 108, 49, 108, 65, 0, 13, 68, 57, 72, 34, 60, 101, 39, 91, 50, 40, 72, 0, 13, 68, 34, 12, 199, 60, 71, 39, 50, 57,
-			108, 72, 0, 16, 68, 33, 72, 34, 60, 71, 36, 91, 36, 50, 35, 84, 35, 72, 0, 35, 76, 29, 236, 10, 70, 44, 7, 68, 252, 226,
-			197, 17, 219, 36, 55, 36, 49, 47, 36, 51, 39, 49, 108, 51, 72, 37, 57, 39, 81, 36, 51, 108, 83, 0, 12, 68, 29, 180, 199, 60,
-			36, 83, 89, 108, 72, 0, 9, 67, 29, 19, 192, 39, 51, 72, 0, 0, 16, 69, 193, 228, 202, 30, 0, 49, 36, 55, 36, 89, 47, 108,
-			50, 0, 10, 67, 132, 124, 192, 107, 108, 57, 36, 0, 17, 70, 128, 116, 176, 32, 119, 128, 50, 108, 88, 39, 49, 71, 108, 55, 0, 21,
-			71, 125, 177, 213, 28, 212, 199, 32, 65, 39, 83, 108, 89, 108, 107, 36, 89, 108, 71, 0, 10, 67, 125, 76, 0, 65, 39, 91, 49, 0,
-			16, 70, 76, 120, 10, 68, 119, 128, 89, 108, 50, 47, 51, 108, 55, 0, 21, 70, 53, 84, 98, 68, 114, 202, 107, 35, 89, 51, 36, 84,
-			36, 51, 108, 89, 35, 47, 0, 19, 70, 43, 8, 34, 193, 17, 202, 47, 36, 49, 50, 39, 49, 36, 51, 108, 47, 0, 12, 67, 42, 36,
-			224, 47, 39, 12, 89, 35, 50, 0, 10, 67, 29, 252, 192, 39, 65, 65, 37, 0, 17, 70, 28, 196, 71, 207, 49, 202, 36, 75, 51, 108,
-			37, 57, 108, 47, 0, 0, 11, 67, 199, 52, 79, 81, 37, 51, 35, 72, 0, 17, 69, 195, 55, 8, 28, 240, 49, 36, 57, 104, 17, 39,
-			71, 108, 72, 0, 12, 67, 131, 4, 79, 50, 35, 49, 35, 51, 72, 0, 12, 67, 130, 36, 79, 50, 35, 84, 35, 51, 72, 0, 13, 67,
-			129, 196, 97, 50, 39, 104, 17, 51, 36, 12, 0, 11, 67, 127, 52, 79, 65, 37, 51, 35, 72, 0, 14, 67, 126, 39, 143, 65, 39, 84,
-			35, 55, 55, 36, 72, 0, 14, 67, 124, 199, 143, 65, 39, 75, 35, 55, 55, 35, 72, 0, 14, 67, 124, 196, 79, 65, 39, 75, 35, 51,
-			51, 35, 72, 0, 14, 67, 109, 196, 97, 83, 35, 104, 17, 35, 51, 36, 12, 0, 10, 67, 108, 213, 0, 83, 39, 107, 91, 0, 13, 68,
-			79, 55, 162, 68, 89, 37, 55, 84, 36, 51, 0, 13, 67, 73, 164, 97, 88, 35, 104, 17, 51, 36, 12, 0, 15, 68, 70, 39, 162, 68,
-			51, 39, 84, 36, 55, 84, 36, 51, 0, 11, 67, 60, 116, 79, 72, 108, 51, 35, 72, 0, 11, 67, 52, 116, 225, 107, 108, 89, 89, 36,
-			0, 8, 66, 50, 0, 75, 36, 50, 0, 15, 69, 42, 12, 81, 30, 16, 47, 35, 50, 81, 51, 108, 107, 0, 16, 69, 33, 236, 81, 28,
-			240, 71, 36, 55, 81, 36, 51, 108, 72, 0, 11, 67, 32, 117, 15, 71, 108, 91, 35, 72, 0, 13, 68, 31, 56, 34, 68, 6, 37, 50,
-			84, 35, 51, 0, 12, 68, 31, 4, 243, 68, 36, 49, 89, 37, 51, 0, 13, 68, 30, 40, 34, 68, 6, 40, 50, 84, 35, 51, 0, 12,
-			68, 29, 181, 199, 68, 36, 83, 47, 108, 51, 0, 12, 68, 29, 149, 71, 68, 35, 19, 89, 108, 51, 0, 15, 69, 29, 66, 143, 28, 240,
-			36, 91, 47, 36, 72, 108, 72, 0, 16, 70, 29, 50, 179, 88, 115, 64, 36, 89, 47, 37, 88, 108, 107, 0, 12, 68, 28, 229, 199, 68,
-			36, 101, 47, 108, 51, 0, 12, 68, 28, 211, 7, 68, 35, 107, 75, 108, 51, 0, 0, 14, 69, 182, 36, 71, 85, 224, 48, 40, 51, 35,
-			89, 55, 0, 16, 69, 131, 56, 176, 77, 224, 50, 37, 57, 40, 49, 89, 36, 55, 0, 14, 67, 125, 148, 72, 65, 39, 19, 35, 51, 51,
-			35, 71, 0, 17, 69, 125, 50, 135, 85, 224, 65, 39, 89, 47, 35, 19, 89, 35, 55, 0, 12, 67, 65, 18, 128, 88, 39, 51, 51, 35,
-			47, 0, 11, 67, 63, 53, 8, 72, 37, 91, 35, 71, 0, 18, 69, 52, 246, 199, 85, 224, 107, 35, 72, 72, 36, 83, 108, 89, 36, 55,
-			0, 12, 68, 28, 212, 71, 72, 36, 107, 51, 108, 88, 0, 0, 15, 68, 182, 3, 17, 132, 48, 35, 50, 75, 35, 51, 36, 12, 0, 14,
-			69, 139, 60, 10, 137, 16, 84, 37, 49, 47, 39, 51, 0, 12, 67, 133, 28, 240, 107, 35, 51, 57, 36, 49, 0, 16, 69, 130, 40, 34,
-			29, 16, 50, 39, 12, 50, 35, 84, 108, 51, 0, 12, 67, 126, 5, 91, 65, 39, 50, 89, 36, 83, 0, 14, 67, 125, 148, 91, 65, 39,
-			19, 35, 51, 51, 36, 83, 0, 17, 69, 124, 167, 135, 93, 240, 65, 39, 47, 36, 55, 108, 47, 36, 65, 0, 17, 69, 124, 163, 135, 85,
-			240, 65, 39, 47, 35, 101, 108, 89, 36, 65, 0, 10, 67, 124, 116, 112, 65, 108, 51, 49, 0, 24, 73, 108, 116, 95, 31, 8, 158, 138,
-			252, 240, 83, 108, 51, 65, 108, 49, 39, 55, 39, 90, 37, 49, 0, 15, 68, 79, 53, 209, 132, 89, 36, 57, 47, 35, 51, 36, 12, 0,
-			19, 70, 76, 140, 19, 68, 120, 0, 89, 35, 71, 39, 49, 89, 35, 51, 108, 50, 0, 12, 67, 72, 228, 91, 88, 39, 101, 51, 39, 83,
-			0, 16, 68, 69, 193, 213, 132, 51, 35, 104, 17, 104, 17, 108, 89, 36, 0, 14, 68, 57, 225, 213, 132, 101, 39, 55, 108, 89, 36, 12,
-			0, 14, 67, 41, 76, 217, 47, 35, 91, 35, 57, 57, 39, 19, 0, 17, 70, 32, 116, 145, 76, 120, 0, 71, 108, 88, 51, 35, 89, 108,
-			50, 0, 17, 70, 29, 50, 145, 60, 115, 192, 36, 89, 47, 36, 51, 72, 108, 72, 0, 0, 12, 67, 136, 213, 10, 84, 35, 107, 91, 35,
-			47, 0, 11, 67, 129, 40, 0, 50, 35, 88, 35, 50, 0, 12, 67, 128, 232, 138, 50, 36, 101, 84, 35, 47, 0, 12, 67, 100, 132, 74,
-			6, 36, 71, 51, 35, 47, 0, 12, 67, 68, 232, 138, 51, 36, 101, 84, 35, 47, 0, 19, 70, 57, 23, 199, 181, 33, 224, 101, 39, 51,
-			65, 108, 48, 35, 88, 108, 50, 0, 16, 70, 31, 52, 71, 129, 55, 128, 37, 51, 108, 50, 89, 36, 55, 0, 13, 68, 30, 34, 7, 80,
-			6, 39, 12, 71, 108, 91, 0, 13, 67, 28, 136, 138, 35, 71, 39, 84, 84, 35, 47, 0, 0, 16, 69, 197, 23, 240, 70, 16, 81, 35,
-			51, 65, 49, 39, 51, 36, 0, 18, 70, 194, 8, 145, 42, 36, 64, 49, 39, 50, 84, 36, 51, 47, 39, 51, 0, 15, 69, 131, 55, 240,
-			70, 16, 50, 37, 65, 49, 39, 51, 36, 0, 16, 69, 120, 115, 34, 68, 240, 55, 108, 75, 36, 84, 35, 51, 72, 0, 16, 69, 109, 17,
-			224, 78, 16, 83, 35, 51, 108, 50, 89, 36, 12, 0, 15, 69, 80, 124, 226, 68, 240, 91, 108, 57, 84, 35, 51, 72, 0, 19, 70, 80,
-			120, 83, 181, 23, 192, 91, 108, 107, 36, 89, 48, 35, 51, 35, 65, 0, 18, 70, 70, 212, 74, 136, 116, 64, 51, 36, 48, 36, 51, 47,
-			40, 108, 51, 0, 15, 69, 69, 241, 224, 204, 240, 51, 35, 65, 108, 50, 37, 72, 0, 17, 68, 69, 193, 213, 192, 51, 35, 104, 17, 104,
-			17, 108, 89, 35, 49, 0, 16, 70, 68, 129, 206, 136, 116, 64, 51, 36, 71, 108, 101, 108, 51, 0, 17, 69, 57, 23, 225, 70, 16, 101,
-			35, 51, 65, 39, 107, 51, 36, 12, 0, 17, 69, 35, 49, 226, 68, 240, 71, 37, 57, 108, 84, 35, 51, 35, 72, 0, 16, 69, 33, 65,
-			226, 68, 240, 71, 35, 91, 108, 84, 35, 51, 72, 0, 17, 69, 33, 21, 31, 68, 240, 71, 35, 51, 91, 36, 65, 39, 51, 72, 0, 17,
-			70, 31, 2, 162, 61, 23, 192, 36, 49, 47, 39, 72, 36, 51, 65, 0, 16, 69, 29, 232, 140, 136, 240, 39, 55, 6, 84, 39, 75, 40,
-			72, 0, 0, 11, 67, 192, 164, 115, 49, 36, 47, 51, 37, 0, 11, 67, 183, 59, 148, 48, 37, 76, 36, 91, 0, 11, 67, 132, 196, 115,
-			107, 36, 75, 51, 37, 0, 16, 69, 125, 22, 135, 35, 48, 65, 39, 51, 104, 17, 108, 71, 37, 0, 11, 67, 124, 196, 115, 65, 39, 75,
-			51, 37, 0, 18, 68, 113, 71, 17, 112, 104, 17, 36, 91, 104, 17, 36, 51, 36, 104, 17, 0, 17, 70, 109, 17, 224, 83, 52, 128, 83,
-			36, 51, 108, 50, 91, 37, 88, 0, 10, 67, 77, 27, 128, 89, 36, 51, 76, 0, 13, 68, 40, 178, 51, 40, 47, 35, 89, 71, 37, 47,
-			0, 11, 67, 29, 197, 115, 35, 104, 17, 89, 108, 0, 19, 71, 28, 168, 136, 137, 52, 71, 128, 39, 47, 39, 71, 40, 89, 51, 108, 50,
-			0, 0, 15, 69, 206, 40, 51, 77, 176, 57, 40, 50, 37, 89, 36, 83, 0, 16, 70, 127, 51, 199, 131, 51, 192, 65, 37, 72, 108, 50,
-			37, 72, 0, 10, 67, 101, 177, 219, 36, 83, 108, 83, 0, 12, 67, 81, 177, 219, 91, 35, 83, 83, 108, 83, 0, 20, 71, 76, 120, 10,
-			207, 20, 71, 60, 89, 108, 50, 47, 37, 81, 36, 51, 108, 72, 0, 17, 70, 69, 39, 199, 131, 51, 192, 51, 35, 88, 65, 108, 50, 37,
-			72, 0, 11, 67, 56, 129, 240, 101, 35, 71, 108, 49, 0, 14, 67, 42, 8, 153, 47, 35, 50, 35, 84, 84, 39, 19, 0, 18, 70, 32,
-			119, 148, 139, 52, 223, 71, 108, 55, 91, 36, 84, 37, 89, 65, 0, 18, 70, 32, 119, 135, 57, 24, 64, 71, 36, 55, 35, 101, 35, 51,
-			36, 12, 0, 16, 70, 29, 50, 135, 131, 51, 192, 36, 89, 47, 108, 50, 37, 72, 0, 0, 11, 67, 193, 183, 128, 49, 35, 83, 35, 55,
-			0, 15, 69, 192, 116, 112, 80, 160, 49, 108, 51, 49, 39, 91, 47, 0, 9, 67, 130, 44, 0, 50, 39, 49, 0, 18, 70, 130, 36, 109,
-			68, 241, 210, 50, 40, 51, 48, 35, 51, 72, 108, 88, 0, 12, 67, 128, 136, 154, 50, 39, 71, 40, 104, 17, 0, 13, 68, 125, 248, 145,
-			204, 65, 36, 65, 39, 51, 37, 0, 16, 69, 125, 55, 159, 138, 0, 65, 39, 89, 35, 55, 65, 40, 50, 0, 16, 69, 125, 24, 143, 80,
-			160, 65, 35, 51, 84, 72, 35, 91, 47, 0, 15, 69, 120, 119, 200, 68, 160, 55, 108, 65, 71, 36, 51, 47, 0, 11, 67, 112, 116, 110,
-			104, 17, 108, 51, 76, 0, 17, 69, 57, 92, 202, 206, 0, 101, 39, 89, 57, 47, 36, 57, 108, 50, 0, 12, 68, 32, 114, 145, 204, 71,
-			108, 47, 51, 37, 0, 18, 70, 28, 136, 135, 120, 212, 224, 35, 71, 39, 55, 107, 35, 89, 35, 50, 0, 0, 12, 68, 198, 34, 179, 192,
-			81, 39, 47, 37, 49, 0, 21, 71, 197, 225, 207, 204, 114, 162, 68, 81, 36, 55, 108, 72, 37, 57, 108, 47, 39, 51, 0, 20, 71, 192,
-			114, 145, 183, 55, 135, 68, 49, 108, 47, 36, 51, 48, 37, 55, 108, 51, 0, 21, 72, 181, 225, 202, 206, 8, 179, 204, 240, 48, 36, 55,
-			108, 47, 37, 50, 39, 37, 72, 0, 18, 70, 135, 52, 202, 69, 60, 211, 107, 37, 89, 47, 36, 51, 89, 37, 89, 0, 11, 67, 133, 21,
-			0, 107, 36, 51, 36, 91, 0, 12, 67, 125, 100, 64, 6, 65, 39, 88, 36, 51, 0, 11, 67, 113, 68, 64, 104, 17, 36, 91, 51, 0,
-			11, 67, 109, 68, 64, 83, 36, 91, 39, 51, 0, 12, 67, 105, 245, 0, 104, 17, 35, 65, 35, 91, 0, 20, 71, 79, 50, 162, 181, 225,
-			211, 124, 89, 37, 47, 39, 48, 36, 55, 108, 89, 65, 0, 14, 68, 49, 164, 71, 108, 75, 39, 104, 17, 51, 108, 83, 0, 12, 68, 42,
-			35, 243, 100, 47, 39, 72, 37, 19, 0, 11, 67, 41, 68, 64, 47, 35, 91, 35, 51, 0, 15, 69, 33, 232, 138, 136, 176, 71, 40, 55,
-			40, 47, 40, 89, 0, 11, 67, 33, 68, 64, 71, 35, 91, 35, 51, 0, 13, 68, 29, 68, 71, 108, 35, 12, 91, 51, 108, 83, 0, 13,
-			68, 29, 50, 179, 192, 36, 89, 47, 36, 57, 49, 0, 19, 71, 10, 215, 179, 192, 114, 162, 68, 108, 48, 55, 37, 49, 108, 47, 39, 51,
-			0, 0, 16, 69, 198, 3, 7, 205, 64, 81, 39, 50, 75, 108, 57, 36, 91, 0, 16, 69, 181, 19, 199, 73, 64, 48, 35, 51, 72, 108,
-			88, 36, 91, 0, 15, 69, 128, 120, 136, 71, 48, 50, 108, 84, 71, 35, 51, 37, 0, 13, 67, 114, 33, 222, 104, 17, 35, 84, 84, 108,
-			55, 0, 14, 68, 81, 226, 135, 112, 91, 36, 55, 47, 108, 104, 17, 0, 11, 67, 77, 177, 222, 89, 39, 83, 108, 55, 0, 15, 69, 49,
-			248, 98, 71, 48, 75, 39, 65, 107, 40, 51, 37, 0, 14, 68, 34, 11, 135, 112, 71, 39, 50, 76, 108, 104, 17, 0, 14, 67, 33, 193,
-			222, 71, 35, 104, 17, 104, 17, 108, 55, 0, 15, 69, 32, 243, 162, 71, 48, 71, 35, 72, 101, 39, 51, 37, 0, 15, 69, 29, 180, 135,
-			205, 64, 35, 83, 88, 108, 57, 36, 91, 0, 19, 70, 29, 50, 145, 28, 171, 243, 36, 89, 47, 36, 51, 108, 47, 36, 90, 37, 0, 17,
-			70, 9, 60, 199, 197, 66, 128, 108, 89, 37, 57, 108, 81, 35, 91, 0, 0, 23, 72, 194, 4, 209, 136, 114, 162, 29, 16, 49, 39, 50,
-			89, 36, 51, 84, 108, 47, 40, 108, 51, 0, 12, 67, 129, 55, 0, 50, 35, 89, 35, 104, 17, 0, 14, 67, 125, 40, 145, 65, 39, 88,
-			35, 84, 84, 36, 51, 0, 18, 70, 124, 225, 215, 35, 56, 0, 65, 39, 101, 108, 47, 35, 71, 37, 50, 0, 12, 67, 124, 216, 145, 65,
-			36, 107, 84, 35, 51, 0, 11, 67, 121, 248, 145, 55, 36, 65, 39, 51, 0, 12, 67, 58, 5, 81, 101, 36, 50, 89, 36, 51, 0, 12,
-			67, 34, 5, 81, 71, 36, 50, 89, 36, 51, 0, 11, 67, 29, 193, 223, 36, 104, 17, 108, 65, 0, 11, 67, 29, 181, 17, 35, 83, 91,
-			39, 51, 0, 21, 1, 60, 12, 35, 55, 108, 65, 35, 47, 36, 6, 49, 40, 76, 36, 49, 47, 35, 51, 0, 0, 11, 67, 185, 33, 224,
-			76, 36, 88, 108, 50, 0, 12, 67, 130, 36, 82, 50, 35, 84, 35, 51, 88, 0, 11, 67, 124, 161, 224, 65, 36, 47, 108, 50, 0, 10,
-			67, 122, 24, 128, 55, 35, 107, 84, 0, 11, 67, 121, 49, 224, 55, 36, 89, 108, 50, 0, 12, 67, 113, 17, 224, 104, 17, 36, 51, 108,
-			50, 0, 13, 67, 105, 17, 224, 104, 17, 39, 51, 51, 108, 50, 0, 12, 68, 100, 131, 199, 120, 35, 71, 72, 39, 55, 0, 11, 67, 83,
-			1, 224, 91, 36, 49, 108, 50, 0, 10, 67, 78, 24, 128, 89, 35, 107, 84, 0, 13, 68, 73, 228, 135, 120, 88, 36, 55, 88, 108, 55,
-			0, 11, 67, 43, 1, 224, 47, 36, 49, 108, 50, 0, 12, 68, 42, 34, 135, 120, 47, 39, 47, 108, 55, 0, 21, 71, 41, 28, 31, 30,
-			11, 135, 204, 47, 39, 51, 49, 35, 65, 108, 50, 76, 108, 57, 0, 13, 68, 41, 21, 7, 120, 47, 39, 51, 91, 108, 55, 0, 12, 68,
-			29, 231, 199, 120, 39, 55, 65, 108, 55, 0, 13, 68, 29, 20, 199, 120, 6, 36, 51, 89, 108, 55, 0, 12, 68, 28, 133, 199, 120, 36,
-			71, 47, 108, 55, 0, 15, 69, 28, 132, 98, 30, 0, 35, 71, 51, 39, 84, 108, 50, 0, 12, 68, 28, 131, 199, 120, 36, 71, 72, 108,
-			55, 0, 19, 1, 61, 12, 35, 55, 108, 65, 35, 47, 36, 6, 65, 39, 89, 108, 84, 37, 0, 0, 17, 69, 125, 50, 143, 71, 0, 65,
-			39, 89, 47, 35, 72, 51, 35, 49, 0, 13, 68, 124, 194, 34, 68, 65, 35, 75, 71, 40, 51, 0, 13, 68, 79, 2, 162, 68, 89, 36,
-			49, 47, 39, 51, 0, 10, 67, 58, 33, 225, 101, 6, 108, 107, 0, 17, 70, 32, 119, 142, 86, 37, 64, 71, 36, 55, 101, 39, 89, 40,
-			89, 0, 13, 68, 28, 246, 135, 124, 36, 72, 104, 17, 108, 65, 0, 22, 1, 62, 12, 35, 55, 108, 65, 35, 47, 36, 6, 71, 39, 88,
-			39, 51, 81, 47, 35, 51, 0, 0, 13, 68, 182, 2, 162, 72, 48, 36, 50, 47, 39, 88, 0, 11, 67, 125, 82, 0, 65, 35, 89, 35,
-			71, 0, 14, 68, 113, 116, 71, 128, 104, 17, 35, 47, 51, 108, 50, 0, 14, 68, 105, 180, 71, 128, 104, 17, 39, 83, 51, 108, 50, 0,
-			13, 68, 94, 20, 71, 128, 47, 36, 107, 51, 108, 50, 0, 15, 69, 70, 35, 209, 70, 32, 51, 40, 72, 35, 51, 51, 40, 0, 14, 68,
-			69, 245, 135, 128, 51, 35, 65, 36, 88, 108, 50, 0, 13, 68, 68, 229, 7, 128, 51, 35, 101, 91, 108, 50, 0, 14, 68, 57, 227, 7,
-			128, 101, 35, 55, 35, 75, 108, 50, 0, 13, 68, 57, 178, 135, 128, 101, 36, 83, 47, 108, 50, 0, 13, 68, 48, 132, 71, 128, 75, 39,
-			71, 51, 108, 50, 0, 13, 68, 42, 20, 71, 128, 47, 36, 107, 51, 108, 50, 0, 13, 68, 41, 28, 7, 128, 47, 39, 51, 49, 108, 50,
-			0, 16, 69, 35, 51, 209, 70, 32, 71, 37, 72, 35, 51, 51, 39, 84, 0, 13, 68, 34, 20, 71, 128, 71, 39, 107, 51, 108, 50, 0,
-			12, 68, 31, 4, 71, 128, 36, 49, 51, 108, 50, 0, 13, 68, 30, 4, 199, 128, 36, 50, 6, 89, 108, 50, 0, 12, 68, 29, 178, 135,
-			128, 39, 83, 47, 108, 50, 0, 12, 68, 29, 60, 7, 128, 36, 89, 49, 108, 50, 0, 12, 68, 29, 28, 7, 128, 35, 51, 49, 108, 50,
-			0, 12, 68, 9, 50, 135, 128, 108, 89, 47, 108, 50, 0, 0, 15, 69, 197, 28, 223, 137, 16, 81, 36, 51, 37, 65, 39, 51, 0, 11,
-			67, 197, 1, 209, 81, 39, 88, 108, 51, 0, 10, 67, 181, 76, 64, 48, 36, 91, 81, 0, 15, 69, 180, 252, 240, 137, 16, 48, 36, 72,
-			37, 49, 40, 51, 0, 17, 69, 137, 225, 218, 205, 16, 84, 35, 55, 108, 104, 17, 36, 57, 51, 0, 18, 70, 133, 243, 211, 40, 120, 0,
-			107, 35, 65, 72, 35, 89, 47, 108, 50, 0, 19, 70, 125, 19, 224, 124, 120, 0, 65, 39, 51, 72, 35, 50, 36, 65, 108, 50, 0, 15,
-			69, 83, 4, 237, 205, 16, 91, 36, 49, 89, 48, 37, 51, 0, 19, 70, 79, 56, 17, 188, 172, 240, 89, 37, 50, 36, 51, 90, 36, 47,
-			37, 49, 0, 11, 67, 76, 161, 209, 89, 36, 47, 108, 51, 0, 12, 67, 72, 140, 209, 88, 39, 71, 35, 57, 51, 0, 18, 70, 69, 180,
-			224, 48, 120, 0, 51, 35, 83, 89, 35, 50, 75, 108, 50, 0, 16, 69, 61, 17, 243, 137, 16, 72, 36, 51, 108, 57, 84, 36, 51, 0,
-			12, 67, 53, 97, 209, 107, 39, 88, 88, 108, 51, 0, 13, 68, 42, 3, 243, 76, 47, 35, 50, 72, 37, 89, 0, 13, 68, 34, 12, 71,
-			132, 71, 39, 50, 81, 108, 12, 0, 13, 68, 32, 244, 71, 132, 71, 35, 72, 51, 108, 107, 0, 14, 69, 30, 220, 240, 137, 16, 36, 48,
-			37, 49, 39, 51, 0, 16, 70, 29, 56, 135, 68, 120, 0, 35, 89, 84, 108, 51, 108, 50, 0, 10, 67, 28, 236, 209, 35, 101, 37, 51,
-			0, 18, 70, 28, 168, 159, 28, 172, 240, 39, 47, 39, 65, 108, 6, 47, 37, 49, 0, 17, 70, 10, 2, 145, 139, 8, 176, 108, 50, 47,
-			51, 39, 49, 39, 49, 0, 0, 15, 69, 197, 19, 211, 137, 32, 81, 36, 51, 72, 89, 40, 88, 0, 21, 71, 192, 119, 237, 206, 34, 145,
-			204, 49, 108, 65, 48, 37, 57, 40, 47, 36, 51, 37, 0, 15, 69, 181, 28, 209, 137, 32, 48, 35, 51, 37, 51, 40, 88, 0, 11, 67,
-			134, 8, 146, 107, 35, 50, 40, 88, 0, 11, 67, 129, 60, 0, 50, 35, 89, 35, 49, 0, 15, 69, 127, 56, 96, 30, 0, 65, 37, 107,
-			35, 50, 108, 50, 0, 14, 69, 120, 124, 10, 137, 32, 55, 108, 49, 47, 39, 88, 0, 11, 67, 82, 1, 210, 91, 36, 50, 108, 88, 0,
-			13, 67, 61, 28, 128, 72, 35, 51, 51, 36, 57, 36, 0, 17, 70, 32, 115, 209, 136, 133, 0, 71, 108, 72, 51, 40, 71, 36, 91, 0,
-			16, 70, 29, 50, 179, 84, 119, 128, 36, 89, 47, 37, 89, 108, 55, 0, 14, 69, 9, 252, 202, 137, 32, 108, 65, 37, 47, 39, 88, 0,
-			8, 65, 120, 6, 55, 108, 65, 0, 0, 13, 67, 197, 4, 79, 81, 39, 88, 35, 51, 35, 72, 0, 15, 69, 193, 60, 224, 137, 48, 49,
-			39, 89, 37, 50, 40, 89, 0, 14, 68, 133, 66, 173, 68, 107, 35, 91, 47, 48, 35, 51, 0, 16, 70, 126, 40, 51, 42, 36, 64, 65,
-			39, 50, 37, 47, 39, 51, 0, 16, 70, 124, 120, 51, 42, 36, 64, 65, 108, 50, 37, 47, 39, 51, 0, 13, 68, 124, 120, 34, 68, 65,
-			108, 50, 39, 84, 51, 0, 11, 67, 120, 133, 0, 55, 35, 71, 35, 91, 0, 12, 67, 114, 1, 211, 104, 17, 36, 50, 108, 89, 0, 11,
-			67, 106, 37, 64, 104, 17, 39, 12, 89, 0, 12, 67, 82, 1, 211, 91, 36, 50, 6, 108, 89, 0, 13, 68, 80, 252, 199, 68, 91, 36,
-			72, 57, 108, 51, 0, 11, 67, 71, 60, 211, 51, 35, 19, 37, 89, 0, 15, 69, 70, 34, 17, 30, 16, 51, 40, 71, 36, 51, 108, 107,
-			0, 18, 70, 28, 184, 7, 101, 68, 64, 35, 89, 50, 108, 19, 35, 91, 35, 51, 0, 0, 12, 67, 193, 24, 136, 49, 35, 51, 51, 40,
-			71, 0, 18, 70, 186, 17, 209, 28, 132, 98, 76, 108, 107, 108, 51, 35, 71, 51, 40, 0, 15, 69, 71, 52, 159, 136, 192, 51, 37, 88,
-			65, 39, 12, 75, 0, 13, 67, 57, 244, 114, 101, 39, 65, 51, 36, 57, 36, 0, 0, 14, 68, 197, 232, 145, 60, 81, 39, 55, 84, 35,
-			51, 72, 0, 15, 69, 131, 8, 145, 136, 208, 50, 36, 49, 40, 51, 40, 107, 0, 13, 68, 126, 44, 209, 196, 65, 40, 57, 51, 35, 81,
-			0, 12, 67, 109, 197, 192, 83, 35, 104, 17, 35, 47, 0, 10, 67, 82, 1, 192, 91, 36, 50, 108, 0, 13, 68, 78, 24, 135, 148, 89,
-			35, 107, 84, 35, 50, 0, 17, 70, 60, 124, 224, 29, 56, 145, 72, 108, 57, 50, 108, 89, 39, 51, 0, 10, 67, 50, 1, 192, 75, 36,
-			50, 108, 0, 13, 68, 32, 244, 98, 60, 71, 36, 72, 51, 40, 72, 0, 14, 69, 28, 252, 202, 137, 16, 36, 72, 37, 47, 39, 51, 0,
-			15, 69, 28, 226, 136, 29, 16, 36, 101, 47, 36, 71, 108, 51, 0, 0, 13, 68, 181, 19, 135, 80, 48, 35, 51, 101, 108, 91, 0, 15,
-			69, 41, 28, 200, 138, 0, 47, 36, 51, 37, 71, 40, 50, 0, 9, 67, 10, 11, 192, 108, 50, 90, 0, 14, 69, 9, 19, 200, 205, 32,
-			108, 51, 72, 71, 37, 88, 0, 0, 17, 70, 197, 17, 224, 32, 116, 64, 81, 36, 51, 108, 50, 71, 108, 51, 0, 12, 67, 194, 12, 199,
-			49, 36, 50, 37, 57, 108, 0, 14, 68, 190, 2, 179, 192, 90, 36, 50, 36, 47, 37, 49, 0, 14, 68, 133, 252, 212, 192, 107, 35, 65,
-			37, 91, 35, 49, 0, 14, 68, 124, 114, 145, 192, 65, 108, 47, 35, 51, 35, 49, 0, 21, 71, 71, 60, 211, 49, 248, 98, 68, 51, 35,
-			10, 37, 89, 75, 39, 65, 107, 40, 51, 0, 21, 71, 68, 108, 211, 49, 248, 98, 68, 51, 35, 10, 37, 89, 75, 39, 65, 107, 40, 51,
-			0, 21, 71, 52, 117, 145, 138, 1, 216, 68, 107, 108, 88, 36, 51, 39, 50, 108, 88, 36, 51, 0, 20, 70, 29, 50, 162, 112, 248, 147,
-			39, 89, 47, 39, 104, 17, 39, 72, 72, 40, 89, 0, 0, 12, 67, 129, 193, 200, 50, 36, 104, 17, 108, 71, 0, 15, 69, 126, 20, 96,
-			137, 64, 65, 36, 107, 51, 50, 40, 91, 0, 12, 67, 113, 17, 200, 104, 17, 39, 51, 108, 71, 0, 12, 67, 105, 17, 200, 104, 17, 39,
-			51, 108, 71, 0, 11, 67, 101, 193, 200, 39, 104, 17, 108, 71, 0, 12, 67, 89, 17, 200, 88, 35, 51, 51, 108, 71, 0, 21, 71, 84,
-			241, 237, 205, 76, 71, 128, 89, 36, 72, 108, 48, 37, 91, 36, 81, 108, 50, 0, 8, 66, 71, 0, 51, 39, 49, 0, 7, 66, 70, 32,
-			51, 40, 0, 12, 67, 69, 193, 200, 51, 36, 104, 17, 108, 71, 0, 7, 66, 62, 32, 72, 39, 0, 14, 68, 62, 19, 212, 40, 72, 36,
-			107, 72, 35, 91, 47, 0, 11, 67, 41, 17, 200, 47, 39, 51, 108, 71, 0, 22, 71, 33, 50, 177, 30, 2, 135, 128, 71, 35, 89, 47,
-			36, 81, 108, 50, 36, 47, 108, 50, 0, 0, 23, 71, 198, 2, 15, 112, 114, 34, 76, 81, 39, 50, 71, 35, 72, 36, 104, 17, 108, 71,
-			40, 89, 0, 16, 70, 132, 119, 200, 137, 28, 64, 107, 108, 65, 71, 40, 51, 81, 0, 18, 70, 130, 17, 243, 40, 121, 64, 50, 35, 107,
-			108, 57, 35, 47, 35, 50, 0, 19, 70, 112, 118, 79, 40, 121, 64, 104, 17, 108, 19, 36, 72, 35, 47, 35, 50, 0, 16, 70, 43, 54,
-			226, 207, 51, 192, 47, 37, 83, 39, 37, 12, 72, 0, 18, 70, 34, 17, 200, 29, 33, 209, 71, 35, 107, 108, 71, 108, 88, 108, 51, 0,
-			17, 70, 11, 1, 207, 127, 60, 0, 108, 49, 108, 72, 36, 65, 37, 49, 0, 0, 13, 68, 197, 19, 199, 32, 81, 36, 51, 72, 108, 71,
-			0, 14, 68, 134, 3, 211, 204, 107, 36, 50, 72, 36, 89, 37, 0, 12, 68, 130, 37, 7, 32, 50, 40, 91, 108, 71, 0, 13, 68, 126,
-			20, 71, 32, 65, 36, 107, 51, 108, 71, 0, 19, 69, 126, 19, 226, 204, 160, 65, 35, 107, 72, 35, 84, 37, 57, 57, 35, 47, 0, 13,
-			68, 125, 100, 71, 32, 65, 36, 88, 51, 108, 71, 0, 13, 68, 125, 19, 199, 32, 65, 39, 51, 72, 108, 71, 0, 11, 67, 120, 140, 0,
-			55, 35, 71, 35, 49, 0, 14, 68, 113, 234, 199, 32, 104, 17, 39, 55, 55, 108, 71, 0, 11, 67, 85, 177, 202, 89, 36, 83, 108, 47,
-			0, 14, 68, 83, 4, 71, 32, 91, 36, 49, 35, 51, 108, 71, 0, 13, 68, 78, 20, 71, 32, 89, 39, 107, 51, 108, 71, 0, 10, 67,
-			71, 55, 128, 51, 36, 57, 55, 0, 10, 67, 67, 55, 128, 88, 36, 57, 55, 0, 10, 67, 59, 55, 128, 101, 36, 57, 55, 0, 11, 67,
-			55, 49, 202, 107, 35, 57, 108, 47, 0, 14, 68, 33, 20, 98, 204, 71, 35, 51, 51, 40, 57, 36, 0, 14, 69, 29, 180, 71, 80, 160,
-			35, 83, 51, 108, 91, 47, 0, 13, 68, 28, 228, 98, 204, 39, 101, 51, 35, 84, 37, 0, 0, 15, 68, 181, 236, 194, 108, 48, 36, 55,
-			36, 57, 19, 108, 83, 0, 8, 66, 126, 16, 65, 36, 107, 0, 13, 67, 114, 20, 71, 104, 17, 35, 107, 51, 35, 50, 0, 11, 67, 109,
-			229, 0, 83, 36, 55, 35, 91, 0, 11, 67, 109, 20, 199, 83, 35, 51, 89, 108, 0, 12, 67, 93, 164, 71, 47, 39, 104, 17, 51, 108,
-			0, 8, 66, 70, 16, 51, 35, 107, 0, 9, 66, 62, 16, 6, 72, 35, 107, 0, 20, 71, 59, 52, 71, 122, 4, 199, 4, 101, 36, 57,
-			51, 39, 50, 50, 36, 89, 108, 0, 16, 69, 41, 19, 94, 136, 112, 47, 35, 51, 107, 35, 55, 84, 108, 0, 16, 69, 35, 50, 156, 136,
-			112, 71, 37, 47, 35, 104, 17, 84, 108, 0, 16, 69, 32, 119, 30, 136, 112, 71, 108, 104, 17, 55, 35, 84, 108, 0, 11, 67, 30, 212,
-			71, 39, 48, 36, 51, 108, 0, 11, 67, 29, 197, 71, 35, 104, 17, 89, 108, 0, 0, 14, 68, 196, 196, 71, 40, 81, 39, 75, 35, 51,
-			108, 47, 0, 12, 67, 137, 17, 204, 84, 36, 51, 51, 108, 75, 0, 14, 69, 130, 36, 74, 28, 128, 50, 40, 51, 47, 108, 71, 0, 15,
-			68, 114, 8, 135, 40, 104, 17, 35, 50, 35, 84, 108, 47, 0, 15, 68, 109, 196, 71, 40, 83, 35, 104, 17, 35, 51, 108, 47, 0, 14,
-			68, 78, 38, 135, 40, 89, 39, 12, 104, 17, 108, 47, 0, 11, 67, 77, 17, 204, 89, 36, 51, 108, 75, 0, 14, 68, 61, 182, 71, 40,
-			72, 35, 83, 35, 19, 108, 47, 0, 14, 68, 52, 196, 71, 40, 107, 39, 75, 35, 51, 108, 47, 0, 15, 68, 35, 4, 71, 40, 71, 36,
-			49, 35, 51, 51, 108, 47, 0, 15, 69, 32, 243, 34, 71, 48, 71, 35, 72, 75, 40, 51, 37, 0, 18, 70, 32, 114, 21, 205, 18, 128,
-			71, 108, 71, 35, 89, 37, 51, 35, 47, 0, 10, 67, 30, 40, 158, 39, 84, 40, 55, 0, 12, 68, 29, 248, 135, 40, 35, 65, 84, 108,
-			47, 0, 13, 68, 28, 248, 135, 40, 35, 72, 35, 84, 108, 47, 0, 0, 11, 67, 125, 33, 205, 65, 36, 88, 108, 107, 0, 12, 67, 109,
-			231, 0, 83, 35, 55, 35, 104, 17, 0, 14, 68, 96, 120, 81, 28, 88, 108, 107, 36, 51, 35, 50, 0, 12, 67, 93, 17, 205, 47, 35,
-			51, 51, 108, 107, 0, 18, 70, 79, 56, 31, 28, 172, 240, 89, 37, 50, 35, 65, 108, 47, 37, 49, 0, 14, 68, 76, 115, 211, 28, 89,
-			108, 72, 36, 89, 35, 50, 0, 14, 68, 60, 226, 145, 28, 72, 39, 101, 47, 35, 51, 108, 0, 12, 67, 49, 17, 205, 75, 35, 51, 51,
-			108, 107, 0, 20, 70, 43, 8, 34, 122, 252, 240, 47, 36, 49, 50, 39, 55, 39, 90, 37, 49, 37, 0, 11, 67, 41, 252, 223, 47, 35,
-			65, 37, 65, 0, 13, 68, 29, 236, 19, 28, 35, 55, 36, 49, 89, 108, 0, 0, 11, 67, 120, 136, 0, 55, 35, 71, 35, 50, 0, 16,
-			69, 58, 33, 224, 206, 0, 101, 35, 6, 84, 108, 50, 37, 50, 0, 18, 69, 40, 134, 115, 28, 160, 47, 35, 71, 35, 19, 37, 57, 57,
-			108, 47, 0, 18, 70, 33, 17, 219, 68, 117, 10, 71, 35, 51, 35, 83, 51, 108, 91, 47, 0, 14, 69, 29, 177, 207, 28, 160, 36, 83,
-			108, 72, 108, 47, 0, 0, 9, 67, 192, 116, 64, 49, 108, 51, 0, 14, 67, 137, 193, 207, 84, 35, 104, 17, 104, 17, 108, 72, 0, 12,
-			67, 125, 177, 207, 65, 39, 83, 108, 72, 72, 0, 11, 67, 109, 83, 64, 83, 35, 89, 35, 107, 0, 10, 67, 81, 244, 64, 91, 36, 65,
-			51, 0, 8, 66, 78, 0, 89, 36, 50, 0, 11, 67, 61, 244, 64, 72, 35, 65, 35, 51, 0, 20, 71, 30, 6, 209, 124, 114, 179, 192,
-			35, 50, 83, 39, 51, 65, 108, 47, 37, 49, 0, 21, 71, 29, 50, 145, 28, 171, 243, 192, 36, 89, 47, 36, 51, 108, 47, 36, 90, 37,
-			49, 0, 0, 15, 69, 197, 225, 243, 137, 224, 81, 36, 55, 108, 57, 39, 55, 0, 14, 68, 139, 56, 158, 128, 84, 37, 57, 39, 55, 39,
-			50, 0, 12, 68, 130, 36, 98, 128, 50, 39, 51, 39, 50, 0, 13, 68, 128, 116, 98, 128, 50, 108, 51, 84, 35, 50, 0, 20, 70, 125,
-			196, 107, 68, 114, 128, 65, 39, 104, 17, 35, 51, 51, 35, 51, 108, 47, 0, 19, 70, 125, 161, 222, 92, 114, 128, 65, 39, 104, 17, 108,
-			55, 36, 47, 108, 47, 0, 18, 70, 125, 81, 207, 68, 114, 128, 65, 39, 89, 108, 72, 36, 51, 108, 47, 0, 13, 68, 78, 12, 115, 128,
-			89, 35, 50, 81, 37, 50, 0, 17, 70, 61, 248, 176, 68, 114, 128, 72, 36, 65, 39, 49, 51, 108, 47, 0, 15, 69, 28, 210, 179, 28,
-			192, 36, 107, 47, 37, 57, 108, 75, 0, 0, 12, 67, 125, 204, 223, 65, 39, 104, 17, 37, 65, 0, 16, 69, 125, 50, 145, 28, 208, 65,
-			39, 89, 47, 35, 51, 108, 107, 0, 10, 67, 125, 19, 192, 65, 35, 51, 72, 0, 10, 67, 121, 19, 192, 55, 39, 51, 72, 0, 11, 67,
-			109, 227, 0, 83, 35, 55, 35, 75, 0, 12, 67, 93, 17, 209, 47, 35, 51, 51, 108, 51, 0, 13, 68, 87, 58, 199, 60, 89, 35, 57,
-			57, 108, 72, 0, 11, 67, 85, 19, 192, 89, 39, 51, 35, 72, 0, 14, 68, 72, 129, 222, 132, 88, 39, 71, 108, 55, 36, 12, 0, 14,
-			68, 69, 49, 222, 132, 51, 36, 89, 108, 55, 36, 12, 0, 15, 68, 68, 193, 222, 132, 51, 35, 75, 75, 108, 55, 36, 12, 0, 13, 68,
-			57, 19, 199, 60, 101, 39, 51, 72, 108, 72, 0, 11, 67, 57, 19, 192, 101, 36, 51, 35, 72, 0, 12, 67, 49, 56, 64, 75, 39, 89,
-			89, 36, 12, 0, 14, 68, 41, 147, 199, 60, 6, 47, 36, 19, 72, 108, 72, 0, 13, 68, 35, 21, 7, 60, 71, 39, 81, 91, 108, 72,
-			0, 10, 67, 33, 19, 192, 71, 39, 51, 72, 0, 12, 68, 29, 243, 199, 60, 36, 65, 72, 108, 72, 0, 12, 68, 29, 178, 135, 60, 39,
-			83, 47, 108, 72, 0, 0, 20, 71, 188, 120, 15, 29, 23, 209, 204, 90, 108, 50, 72, 108, 51, 65, 36, 51, 37, 0, 11, 67, 109, 236,
-			0, 83, 35, 55, 35, 49, 0, 13, 68, 81, 71, 162, 120, 91, 36, 91, 55, 40, 55, 0, 15, 69, 76, 124, 32, 30, 0, 89, 108, 49,
-			36, 50, 108, 50, 0, 12, 67, 69, 33, 210, 51, 35, 88, 88, 108, 88, 0, 11, 67, 61, 24, 160, 72, 35, 51, 40, 50, 0, 11, 67,
-			50, 40, 160, 75, 35, 84, 40, 50, 0, 18, 70, 41, 23, 226, 76, 161, 202, 47, 36, 51, 65, 39, 89, 47, 108, 47, 0, 11, 67, 33,
-			24, 160, 71, 39, 51, 40, 50, 0, 10, 67, 31, 49, 210, 35, 57, 108, 88, 0, 14, 68, 28, 163, 135, 64, 36, 47, 47, 36, 101, 108,
-			88, 0, 0, 11, 67, 197, 225, 211, 81, 36, 55, 108, 89, 0, 13, 67, 197, 36, 79, 81, 39, 88, 35, 51, 35, 72, 0, 18, 70, 193,
-			232, 173, 28, 164, 71, 49, 36, 55, 39, 48, 108, 47, 51, 108, 0, 11, 67, 193, 225, 211, 49, 36, 55, 108, 89, 0, 9, 67, 134, 37,
-			0, 107, 40, 91, 0, 14, 68, 123, 50, 179, 124, 55, 37, 47, 37, 57, 39, 65, 0, 12, 67, 104, 133, 225, 104, 17, 36, 71, 47, 36,
-			0, 8, 66, 82, 0, 91, 36, 50, 0, 14, 68, 70, 44, 7, 68, 6, 51, 40, 12, 49, 108, 51, 0, 13, 68, 57, 76, 7, 68, 101,
-			39, 91, 49, 108, 51, 0, 13, 68, 57, 21, 226, 124, 101, 39, 51, 47, 40, 65, 0, 10, 67, 53, 245, 64, 107, 39, 65, 89, 0, 12,
-			68, 42, 44, 7, 68, 47, 40, 49, 108, 51, 0, 13, 68, 41, 12, 7, 68, 47, 36, 88, 49, 108, 51, 0, 14, 69, 32, 119, 207, 28,
-			240, 71, 108, 65, 72, 108, 72, 0, 12, 68, 30, 12, 71, 68, 36, 50, 81, 108, 51, 0, 13, 68, 29, 196, 71, 68, 36, 104, 17, 51,
-			108, 51, 0, 15, 69, 29, 146, 179, 28, 240, 36, 19, 47, 37, 57, 108, 72, 0, 12, 68, 29, 100, 71, 68, 36, 88, 51, 108, 51, 0,
-			15, 69, 29, 35, 243, 28, 240, 36, 88, 72, 37, 57, 108, 72, 0, 12, 68, 28, 244, 71, 68, 36, 72, 51, 108, 51, 0, 11, 67, 11,
-			4, 79, 108, 49, 39, 51, 72, 0, 0, 13, 68, 181, 24, 98, 128, 48, 35, 51, 107, 40, 50, 0, 15, 69, 180, 116, 71, 121, 224, 48,
-			108, 51, 108, 55, 36, 55, 0, 14, 67, 129, 193, 212, 50, 35, 104, 17, 104, 17, 108, 91, 0, 13, 68, 125, 242, 135, 72, 65, 39, 65,
-			47, 108, 88, 0, 14, 68, 125, 236, 226, 128, 65, 37, 55, 57, 40, 12, 50, 0, 14, 67, 125, 193, 212, 65, 35, 104, 17, 104, 17, 108,
-			91, 0, 14, 67, 124, 228, 72, 65, 39, 101, 35, 51, 51, 36, 71, 0, 18, 69, 124, 164, 158, 73, 224, 65, 39, 47, 36, 88, 35, 55,
-			88, 36, 55, 0, 10, 67, 121, 18, 128, 55, 36, 51, 47, 0, 13, 68, 83, 53, 226, 128, 91, 36, 57, 47, 40, 50, 0, 12, 68, 80,
-			116, 98, 128, 91, 108, 51, 39, 50, 0, 11, 67, 57, 18, 128, 101, 35, 51, 35, 47, 0, 16, 69, 42, 36, 96, 77, 224, 47, 39, 51,
-			50, 39, 89, 39, 55, 0, 13, 68, 40, 116, 82, 128, 47, 108, 51, 88, 35, 50, 0, 15, 68, 32, 168, 98, 128, 71, 36, 47, 107, 39,
-			84, 36, 50, 0, 16, 70, 28, 136, 135, 122, 24, 158, 35, 71, 39, 55, 107, 39, 55, 0, 12, 68, 28, 132, 71, 72, 36, 71, 51, 108,
-			88, 0, 12, 68, 9, 28, 98, 128, 108, 51, 81, 39, 50, 0, 0, 16, 69, 197, 230, 80, 29, 16, 81, 39, 55, 19, 39, 88, 108, 51,
-			0, 14, 69, 183, 52, 226, 29, 16, 48, 37, 89, 84, 108, 51, 0, 17, 70, 182, 2, 162, 72, 120, 0, 48, 36, 50, 47, 39, 88, 108,
-			50, 0, 17, 70, 181, 66, 179, 32, 120, 0, 48, 39, 91, 47, 37, 71, 108, 50, 0, 16, 69, 130, 37, 10, 29, 16, 50, 36, 84, 36,
-			91, 47, 108, 51, 0, 14, 68, 128, 225, 222, 132, 50, 39, 101, 108, 55, 36, 12, 0, 14, 69, 128, 116, 179, 77, 240, 50, 108, 88, 37,
-			89, 65, 0, 15, 68, 125, 204, 199, 76, 65, 36, 104, 17, 37, 57, 108, 89, 0, 18, 70, 124, 225, 215, 32, 120, 0, 65, 39, 101, 108,
-			47, 35, 71, 108, 50, 0, 15, 69, 78, 220, 207, 29, 16, 89, 36, 48, 37, 72, 108, 51, 0, 15, 69, 74, 35, 206, 81, 240, 88, 40,
-			72, 101, 35, 91, 65, 0, 14, 68, 74, 17, 210, 132, 88, 36, 107, 108, 88, 36, 12, 0, 13, 68, 71, 8, 145, 60, 51, 36, 49, 39,
-			51, 72, 0, 15, 69, 68, 39, 179, 77, 240, 51, 36, 108, 55, 37, 89, 65, 0, 15, 68, 54, 33, 222, 132, 107, 35, 6, 84, 108, 55,
-			36, 12, 0, 10, 67, 53, 18, 192, 107, 35, 51, 89, 0, 13, 68, 43, 20, 135, 76, 47, 36, 81, 88, 108, 89, 0, 14, 67, 40, 132,
-			112, 47, 35, 71, 35, 51, 51, 39, 49, 0, 14, 69, 40, 120, 15, 137, 240, 47, 108, 50, 72, 39, 65, 0, 10, 67, 34, 17, 192, 71,
-			35, 107, 108, 0, 15, 68, 34, 12, 81, 60, 71, 36, 50, 81, 35, 51, 35, 72, 0, 14, 68, 32, 119, 210, 132, 71, 108, 65, 35, 88,
-			36, 12, 0, 13, 69, 30, 39, 179, 28, 16, 39, 55, 37, 57, 108, 0, 15, 69, 29, 230, 95, 137, 240, 39, 55, 19, 39, 65, 40, 65,
-			0, 14, 68, 29, 193, 222, 132, 36, 104, 17, 108, 55, 36, 12, 0, 17, 70, 29, 50, 159, 60, 115, 192, 36, 89, 47, 36, 65, 72, 108,
-			72, 0, 9, 67, 29, 18, 192, 36, 51, 89, 0, 13, 68, 28, 209, 222, 132, 36, 107, 108, 55, 36, 12, 0, 15, 69, 28, 167, 243, 77,
-			240, 35, 47, 39, 65, 37, 89, 65, 0, 0, 11, 67, 195, 52, 202, 6, 49, 37, 89, 47, 0, 13, 68, 193, 66, 179, 204, 49, 35, 91,
-			47, 37, 37, 0, 10, 67, 131, 52, 202, 50, 37, 89, 47, 0, 12, 67, 128, 228, 202, 50, 39, 101, 39, 89, 47, 0, 17, 70, 128, 116,
-			142, 28, 168, 160, 50, 108, 88, 101, 108, 47, 40, 50, 0, 13, 67, 125, 180, 90, 65, 36, 83, 51, 35, 104, 17, 0, 14, 68, 125, 152,
-			34, 204, 65, 35, 19, 50, 35, 84, 37, 0, 17, 70, 123, 56, 145, 182, 39, 128, 55, 37, 84, 36, 51, 48, 40, 55, 0, 12, 67, 109,
-			21, 74, 83, 39, 51, 89, 35, 47, 0, 12, 67, 82, 20, 74, 91, 39, 107, 51, 35, 47, 0, 12, 67, 68, 229, 74, 51, 39, 101, 89,
-			35, 47, 0, 13, 68, 44, 120, 34, 204, 89, 108, 50, 35, 84, 37, 0, 16, 70, 29, 55, 199, 103, 55, 128, 36, 89, 65, 108, 19, 37,
-			55, 0, 22, 72, 29, 28, 211, 42, 44, 17, 28, 160, 35, 51, 37, 89, 47, 39, 49, 36, 51, 108, 47, 0, 12, 68, 28, 136, 158, 204,
-			35, 71, 39, 55, 37, 0, 0, 16, 69, 194, 216, 33, 31, 0, 49, 39, 48, 36, 50, 107, 108, 49, 0, 16, 70, 194, 33, 224, 42, 39,
-			192, 49, 40, 108, 50, 47, 39, 65, 0, 19, 70, 137, 236, 71, 197, 17, 207, 84, 39, 55, 81, 108, 81, 36, 51, 108, 72, 0, 17, 70,
-			133, 236, 224, 205, 55, 192, 107, 36, 55, 37, 50, 37, 89, 65, 0, 12, 67, 129, 193, 215, 50, 39, 104, 17, 108, 47, 0, 17, 68, 124,
-			226, 145, 100, 6, 65, 39, 4, 101, 47, 35, 51, 36, 19, 0, 15, 69, 120, 117, 8, 71, 16, 55, 108, 91, 71, 35, 51, 81, 0, 17,
-			70, 74, 35, 241, 136, 116, 64, 88, 40, 72, 81, 39, 84, 108, 51, 0, 20, 70, 60, 226, 145, 56, 119, 161, 72, 39, 101, 47, 35, 51,
-			101, 108, 55, 36, 12, 0, 17, 70, 41, 33, 209, 205, 55, 192, 47, 36, 88, 108, 51, 37, 89, 65, 0, 17, 70, 31, 56, 12, 30, 2,
-			0, 6, 37, 50, 75, 108, 50, 36, 71, 0, 17, 70, 31, 52, 115, 63, 55, 192, 37, 51, 37, 72, 37, 57, 39, 65, 0, 15, 69, 9,
-			232, 146, 68, 240, 108, 55, 40, 88, 35, 51, 72, 0, 28, 3, 58, 45, 100, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57,
-			36, 10, 101, 35, 50, 72, 108, 50, 0, 46, 0, 19, 70, 186, 3, 209, 104, 116, 128, 76, 36, 50, 72, 36, 51, 104, 17, 108, 88, 0,
-			20, 71, 135, 51, 209, 29, 60, 226, 128, 107, 37, 72, 51, 108, 89, 37, 57, 39, 50, 0, 10, 67, 132, 124, 243, 107, 108, 37, 12, 0,
-			19, 71, 129, 84, 71, 120, 250, 243, 128, 50, 35, 89, 51, 36, 72, 72, 37, 50, 0, 16, 68, 125, 166, 209, 40, 65, 35, 104, 17, 83,
-			36, 51, 35, 47, 0, 14, 68, 125, 50, 34, 112, 65, 35, 89, 71, 40, 104, 17, 0, 12, 67, 115, 59, 179, 104, 17, 36, 57, 76, 37,
-			0, 17, 70, 69, 244, 162, 68, 116, 128, 51, 35, 65, 88, 39, 51, 108, 88, 0, 13, 68, 62, 40, 19, 40, 72, 40, 50, 36, 89, 47,
-			0, 14, 69, 62, 36, 202, 29, 64, 72, 40, 89, 47, 108, 91, 0, 13, 68, 60, 120, 19, 40, 72, 108, 50, 36, 89, 47, 0, 10, 67,
-			29, 245, 51, 36, 65, 91, 37, 0, 13, 68, 29, 167, 199, 88, 36, 104, 17, 65, 108, 88, 0, 15, 71, 11, 59, 79, 11, 54, 226, 128,
-			108, 57, 48, 35, 72, 0, 10, 67, 8, 132, 179, 108, 71, 88, 37, 0, 0, 17, 70, 181, 225, 209, 205, 40, 64, 48, 39, 55, 108, 51,
-			37, 88, 36, 0, 19, 70, 181, 52, 78, 29, 232, 64, 48, 36, 89, 35, 51, 101, 108, 55, 36, 12, 0, 12, 67, 136, 241, 217, 84, 36,
-			6, 72, 108, 19, 0, 17, 70, 134, 3, 226, 68, 116, 192, 107, 36, 50, 72, 39, 51, 108, 89, 0, 14, 67, 127, 7, 155, 65, 39, 49,
-			35, 55, 55, 35, 83, 0, 11, 67, 125, 113, 217, 65, 39, 47, 108, 19, 0, 11, 67, 124, 232, 155, 65, 35, 101, 40, 83, 0, 11, 67,
-			76, 161, 240, 89, 36, 47, 108, 49, 0, 11, 67, 73, 17, 217, 88, 36, 51, 108, 19, 0, 18, 70, 61, 50, 135, 137, 19, 192, 72, 35,
-			89, 47, 108, 84, 35, 51, 72, 0, 14, 68, 33, 196, 71, 92, 71, 39, 104, 17, 51, 108, 47, 0, 17, 70, 30, 36, 71, 131, 56, 159,
-			39, 51, 108, 50, 37, 57, 39, 65, 0, 17, 70, 29, 28, 71, 131, 52, 159, 39, 51, 81, 108, 50, 37, 88, 65, 0, 21, 72, 10, 3,
-			226, 42, 44, 19, 206, 0, 108, 50, 72, 39, 47, 39, 49, 89, 37, 50, 0, 0, 14, 68, 204, 220, 226, 204, 57, 35, 107, 57, 35, 84,
-			37, 0, 15, 69, 180, 115, 240, 76, 160, 48, 108, 72, 49, 35, 89, 47, 0, 11, 67, 138, 12, 0, 84, 35, 50, 35, 49, 0, 10, 67,
-			129, 24, 128, 50, 35, 51, 39, 0, 13, 67, 125, 164, 86, 65, 39, 104, 17, 51, 36, 88, 0, 17, 69, 125, 49, 219, 68, 160, 65, 39,
-			89, 108, 83, 36, 51, 35, 47, 0, 10, 67, 125, 24, 128, 65, 35, 51, 39, 0, 11, 67, 108, 252, 0, 83, 35, 72, 35, 49, 0, 15,
-			69, 80, 120, 79, 30, 0, 91, 108, 107, 36, 72, 108, 50, 0, 17, 70, 68, 114, 51, 129, 56, 160, 51, 108, 71, 37, 50, 89, 39, 50,
-			0, 14, 68, 62, 23, 162, 204, 72, 36, 107, 55, 35, 84, 37, 0, 14, 68, 62, 12, 226, 204, 72, 39, 50, 57, 35, 84, 37, 0, 15,
-			69, 61, 60, 10, 30, 208, 72, 36, 89, 49, 47, 108, 48, 0, 16, 69, 32, 244, 243, 68, 160, 71, 35, 72, 89, 37, 51, 35, 47, 0,
-			11, 67, 29, 225, 218, 39, 55, 108, 104, 17, 0, 20, 71, 29, 28, 98, 76, 164, 98, 120, 36, 51, 81, 39, 89, 47, 36, 51, 39, 55,
-			0, 18, 70, 11, 17, 223, 126, 8, 160, 108, 81, 108, 65, 36, 65, 50, 39, 50, 0, 0, 20, 71, 181, 232, 145, 29, 236, 210, 124, 48,
-			39, 55, 39, 51, 108, 55, 37, 88, 65, 0, 7, 66, 130, 16, 50, 35, 0, 12, 67, 125, 180, 87, 65, 39, 83, 51, 35, 47, 0, 20,
-			70, 124, 115, 209, 33, 36, 113, 65, 108, 72, 35, 51, 71, 39, 88, 39, 51, 81, 0, 20, 71, 79, 8, 158, 29, 28, 210, 124, 89, 36,
-			49, 39, 55, 108, 51, 37, 88, 65, 0, 18, 70, 29, 50, 160, 110, 36, 79, 36, 89, 47, 35, 50, 83, 39, 51, 72, 0, 19, 70, 29,
-			50, 145, 123, 52, 161, 36, 89, 47, 36, 51, 55, 37, 88, 36, 12, 0, 18, 70, 28, 211, 199, 122, 1, 211, 35, 107, 35, 72, 39, 50,
-			50, 108, 89, 0, 12, 68, 28, 131, 199, 100, 36, 71, 72, 108, 19, 0, 8, 66, 130, 16, 50, 35, 0, 76, 0, 11, 67, 197, 60, 222,
-			81, 39, 89, 37, 55, 0, 12, 67, 125, 168, 158, 65, 39, 104, 17, 39, 55, 0, 10, 67, 125, 20, 128, 65, 35, 51, 88, 0, 22, 71,
-			93, 22, 201, 29, 230, 115, 128, 47, 39, 51, 83, 35, 47, 39, 55, 19, 36, 57, 50, 0, 10, 67, 29, 184, 158, 39, 83, 40, 55, 0,
-			20, 70, 28, 132, 92, 61, 18, 128, 35, 71, 35, 51, 104, 17, 39, 72, 51, 35, 47, 0, 14, 1, 91, 71, 36, 51, 108, 49, 36, 47,
-			71, 108, 88, 0, 0, 12, 67, 137, 23, 0, 84, 35, 51, 35, 104, 17, 0, 15, 67, 125, 196, 81, 65, 39, 104, 17, 35, 51, 51, 35,
-			51, 0, 14, 67, 125, 180, 209, 65, 39, 83, 35, 89, 89, 36, 51, 0, 23, 72, 124, 124, 51, 30, 39, 179, 77, 240, 65, 108, 49, 37,
-			57, 108, 84, 36, 55, 37, 89, 65, 0, 15, 69, 123, 49, 206, 137, 176, 55, 37, 57, 108, 101, 39, 83, 0, 23, 71, 29, 227, 95, 60,
-			119, 158, 132, 35, 55, 107, 35, 65, 72, 39, 55, 36, 55, 55, 108, 107, 0, 0, 25, 73, 182, 39, 135, 71, 52, 135, 79, 56, 160, 48,
-			39, 55, 108, 51, 37, 88, 108, 89, 37, 57, 39, 50, 0, 13, 68, 181, 28, 209, 136, 48, 35, 51, 37, 51, 40, 0, 11, 67, 136, 204,
-			224, 84, 36, 75, 37, 50, 0, 16, 70, 128, 116, 160, 29, 44, 192, 50, 108, 88, 50, 108, 88, 37, 0, 14, 68, 73, 20, 145, 136, 88,
-			36, 51, 88, 36, 51, 40, 0, 11, 67, 72, 136, 160, 88, 35, 71, 40, 50, 0, 11, 67, 63, 56, 160, 72, 39, 57, 40, 50, 0, 13,
-			68, 61, 38, 226, 120, 72, 36, 88, 83, 40, 55, 0, 13, 68, 51, 55, 243, 120, 75, 37, 65, 36, 57, 55, 0, 12, 67, 34, 36, 82,
-			71, 36, 84, 35, 51, 88, 0, 12, 68, 30, 3, 51, 120, 36, 50, 75, 37, 55, 0, 19, 70, 29, 151, 179, 53, 100, 74, 35, 19, 55,
-			108, 107, 35, 88, 51, 35, 47, 0, 17, 1, 93, 71, 36, 51, 108, 49, 36, 47, 71, 35, 89, 47, 36, 12, 0, 0, 12, 67, 181, 116,
-			83, 48, 36, 47, 51, 39, 89, 0, 10, 67, 180, 116, 83, 48, 108, 51, 89, 0, 13, 68, 127, 60, 19, 68, 65, 37, 49, 89, 36, 51,
-			0, 16, 70, 126, 39, 162, 42, 38, 192, 65, 39, 55, 39, 47, 39, 83, 0, 14, 68, 125, 145, 213, 68, 65, 39, 19, 108, 89, 36, 51,
-			0, 11, 67, 124, 183, 161, 65, 39, 89, 55, 36, 0, 12, 67, 109, 151, 161, 83, 35, 19, 55, 36, 12, 0, 11, 67, 77, 244, 64, 89,
-			35, 65, 35, 51, 0, 17, 70, 68, 226, 142, 136, 114, 0, 51, 35, 101, 47, 36, 101, 108, 71, 0, 11, 67, 45, 244, 64, 89, 35, 65,
-			35, 51, 0, 14, 67, 41, 184, 161, 47, 35, 83, 35, 84, 84, 39, 107, 0, 13, 68, 41, 23, 243, 124, 47, 35, 51, 65, 37, 65, 0,
-			10, 67, 9, 244, 64, 108, 65, 36, 51, 0, 12, 67, 8, 244, 83, 6, 108, 72, 51, 36, 89, 0, 0, 17, 69, 195, 51, 147, 70, 32,
-			49, 36, 57, 101, 39, 89, 51, 39, 12, 0, 14, 69, 126, 40, 10, 70, 32, 65, 39, 50, 47, 51, 39, 0, 11, 67, 125, 114, 0, 65,
-			35, 47, 35, 71, 0, 16, 69, 125, 50, 141, 205, 224, 65, 39, 89, 47, 35, 107, 37, 55, 0, 11, 67, 121, 146, 0, 55, 35, 19, 36,
-			71, 0, 12, 67, 109, 19, 128, 83, 35, 51, 51, 39, 101, 0, 12, 68, 79, 54, 226, 128, 89, 37, 83, 40, 50, 0, 14, 68, 77, 230,
-			226, 128, 89, 36, 55, 39, 83, 39, 50, 0, 11, 67, 77, 19, 128, 6, 89, 39, 51, 101, 0, 12, 68, 68, 115, 226, 128, 51, 108, 72,
-			39, 50, 0, 17, 70, 34, 36, 111, 136, 116, 179, 71, 40, 51, 90, 84, 108, 88, 37, 0, 22, 71, 29, 151, 135, 204, 213, 145, 40, 35,
-			19, 55, 108, 57, 36, 107, 35, 88, 51, 35, 47, 0, 12, 68, 11, 54, 226, 128, 108, 57, 83, 39, 50, 0, 0, 11, 67, 197, 33, 209,
-			81, 39, 88, 108, 51, 0, 27, 73, 192, 188, 209, 29, 225, 224, 41, 65, 209, 49, 35, 89, 37, 51, 39, 55, 10, 36, 50, 47, 36, 91,
-			108, 51, 0, 24, 72, 182, 4, 243, 122, 33, 224, 206, 0, 48, 36, 50, 89, 37, 55, 84, 108, 50, 37, 57, 108, 50, 0, 18, 70, 181,
-			24, 160, 60, 120, 0, 48, 35, 51, 84, 35, 50, 72, 108, 50, 0, 15, 69, 136, 119, 153, 85, 16, 84, 35, 55, 19, 35, 89, 51, 0,
-			14, 68, 129, 252, 209, 76, 50, 36, 65, 37, 51, 36, 89, 0, 11, 67, 129, 129, 209, 50, 36, 88, 108, 51, 0, 12, 67, 128, 193, 209,
-			50, 35, 75, 75, 108, 51, 0, 14, 67, 126, 34, 209, 65, 39, 19, 35, 89, 89, 36, 51, 0, 20, 70, 125, 28, 8, 60, 120, 0, 65,
-			39, 51, 35, 49, 49, 35, 71, 72, 108, 50, 0, 13, 67, 112, 241, 209, 104, 17, 35, 72, 72, 108, 51, 0, 15, 68, 112, 129, 222, 132,
-			104, 17, 35, 71, 108, 55, 36, 12, 0, 12, 67, 108, 193, 209, 83, 39, 75, 75, 108, 51, 0, 13, 67, 104, 241, 209, 104, 17, 35, 72,
-			72, 108, 51, 0, 11, 67, 61, 28, 64, 72, 36, 51, 35, 81, 0, 11, 67, 48, 241, 209, 75, 36, 72, 108, 51, 0, 11, 67, 41, 33,
-			209, 47, 36, 88, 108, 51, 0, 17, 68, 41, 23, 34, 132, 47, 35, 51, 104, 17, 39, 84, 84, 36, 12, 0, 12, 67, 40, 193, 209, 47,
-			39, 75, 75, 108, 51, 0, 10, 67, 33, 28, 64, 71, 35, 51, 81, 0, 16, 69, 32, 114, 30, 77, 16, 71, 108, 71, 39, 55, 89, 35,
-			51, 0, 9, 67, 29, 28, 64, 39, 51, 81, 0, 9, 67, 9, 19, 192, 108, 51, 72, 0, 0, 16, 69, 193, 65, 226, 69, 32, 49, 36,
-			91, 108, 84, 35, 51, 88, 0, 11, 67, 185, 241, 210, 76, 35, 65, 108, 88, 0, 10, 67, 137, 28, 0, 84, 39, 51, 49, 0, 16, 69,
-			128, 119, 223, 194, 0, 50, 108, 65, 39, 65, 49, 36, 50, 0, 11, 67, 124, 193, 210, 65, 39, 75, 108, 88, 0, 15, 68, 41, 225, 222,
-			136, 47, 35, 55, 35, 19, 55, 39, 12, 0, 11, 67, 40, 116, 78, 47, 108, 51, 39, 101, 0, 31, 3, 58, 45, 111, 50, 35, 65, 108,
-			72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 65, 39, 47, 36, 35, 75, 12, 36, 71, 0, 46, 31, 3, 58, 45, 111, 50, 35, 65,
-			108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 65, 39, 47, 36, 35, 75, 12, 36, 71, 0, 46, 7, 1, 97, 36, 57, 0, 101,
-			0, 12, 67, 181, 20, 207, 48, 39, 51, 89, 35, 72, 0, 13, 68, 181, 19, 199, 68, 48, 35, 51, 72, 108, 51, 0, 11, 67, 180, 161,
-			211, 48, 39, 47, 108, 89, 0, 23, 71, 113, 244, 71, 121, 247, 162, 192, 104, 17, 35, 65, 35, 51, 39, 55, 65, 39, 55, 40, 49, 0,
-			21, 71, 108, 228, 71, 121, 247, 162, 192, 83, 35, 101, 51, 39, 55, 65, 39, 55, 40, 49, 0, 12, 68, 57, 100, 71, 4, 101, 35, 88,
-			51, 108, 0, 16, 69, 41, 17, 226, 69, 48, 47, 36, 51, 108, 84, 36, 51, 89, 0, 12, 67, 32, 244, 113, 71, 35, 72, 51, 35, 81,
-			0, 15, 69, 28, 132, 112, 138, 16, 35, 71, 35, 51, 49, 40, 107, 0, 7, 1, 98, 71, 37, 0, 101, 8, 65, 124, 6, 65, 37, 65,
-			0, 0, 11, 67, 185, 22, 128, 76, 35, 51, 104, 17, 0, 8, 66, 122, 240, 55, 36, 90, 0, 11, 67, 84, 241, 212, 89, 36, 72, 108,
-			91, 0, 11, 67, 81, 18, 128, 6, 91, 39, 51, 47, 0, 11, 67, 77, 18, 128, 89, 35, 51, 35, 47, 0, 10, 67, 73, 18, 128, 88,
-			36, 51, 47, 0, 8, 66, 56, 128, 101, 39, 71, 0, 9, 66, 52, 128, 107, 39, 71, 71, 0, 11, 67, 49, 18, 128, 75, 36, 51, 36,
-			47, 0, 18, 70, 42, 44, 34, 109, 24, 158, 47, 39, 49, 39, 83, 36, 51, 39, 55, 0, 8, 66, 34, 240, 71, 36, 90, 0, 11, 67,
-			33, 17, 212, 71, 35, 51, 108, 91, 0, 7, 1, 99, 89, 37, 0, 101, 0, 17, 70, 135, 51, 209, 138, 248, 0, 107, 37, 72, 51, 39,
-			90, 36, 50, 0, 16, 69, 125, 50, 153, 29, 16, 65, 39, 89, 47, 35, 19, 108, 51, 0, 15, 68, 124, 202, 209, 60, 65, 39, 75, 35,
-			51, 51, 35, 72, 0, 15, 69, 78, 12, 83, 29, 16, 89, 35, 50, 81, 89, 108, 51, 0, 14, 69, 62, 36, 202, 29, 16, 72, 40, 89,
-			47, 108, 51, 0, 12, 67, 58, 33, 213, 101, 35, 6, 84, 108, 89, 0, 13, 68, 52, 167, 199, 148, 107, 35, 47, 65, 35, 50, 0, 14,
-			67, 41, 244, 240, 47, 35, 65, 35, 89, 89, 39, 49, 0, 13, 68, 29, 181, 17, 60, 35, 83, 91, 39, 51, 72, 0, 13, 68, 29, 180,
-			209, 60, 35, 83, 89, 39, 51, 72, 0, 15, 69, 29, 146, 136, 29, 16, 36, 19, 47, 36, 71, 108, 51, 0, 18, 70, 29, 118, 199, 27,
-			56, 64, 36, 47, 83, 108, 37, 57, 57, 36, 12, 0, 18, 70, 11, 8, 135, 71, 56, 159, 108, 49, 84, 108, 51, 37, 57, 39, 65, 0,
-			7, 1, 100, 72, 37, 0, 101, 0, 13, 67, 181, 236, 128, 48, 36, 55, 55, 36, 57, 36, 0, 19, 70, 110, 3, 199, 79, 56, 160, 83,
-			39, 50, 72, 108, 89, 37, 57, 39, 50, 0, 16, 69, 77, 236, 223, 30, 0, 89, 39, 55, 36, 57, 65, 108, 50, 0, 15, 67, 53, 204,
-			128, 107, 39, 104, 17, 104, 17, 36, 57, 36, 0, 8, 66, 48, 160, 75, 36, 47, 0, 10, 67, 40, 116, 74, 47, 108, 51, 47, 0, 11,
-			67, 34, 36, 74, 71, 40, 51, 36, 47, 0, 11, 67, 30, 36, 74, 39, 84, 36, 51, 47, 0, 6, 1, 101, 37, 0, 101, 0, 14, 69,
-			195, 50, 34, 68, 240, 49, 37, 71, 39, 51, 72, 0, 16, 69, 131, 49, 226, 68, 240, 50, 35, 57, 108, 84, 35, 51, 72, 0, 16, 69,
-			109, 17, 226, 68, 240, 83, 35, 51, 108, 84, 35, 51, 72, 0, 10, 67, 83, 56, 135, 91, 37, 84, 108, 0, 14, 68, 80, 123, 81, 192,
-			91, 108, 48, 35, 51, 35, 49, 0, 14, 69, 71, 59, 135, 68, 240, 51, 37, 76, 108, 51, 72, 0, 7, 66, 52, 112, 107, 108, 0, 21,
-			71, 32, 212, 71, 121, 151, 162, 124, 71, 35, 107, 51, 39, 55, 19, 39, 55, 40, 65, 0, 17, 70, 32, 116, 113, 64, 116, 64, 71, 108,
-			51, 81, 39, 88, 108, 51, 0, 17, 70, 29, 252, 207, 136, 116, 64, 19, 39, 65, 37, 72, 84, 108, 51, 0, 18, 70, 29, 232, 160, 63,
-			8, 161, 35, 55, 84, 35, 50, 72, 49, 40, 107, 0, 17, 70, 29, 225, 208, 192, 116, 64, 39, 55, 10, 35, 88, 49, 108, 51, 0, 8,
-			66, 124, 112, 65, 108, 0, 76, 7, 1, 102, 36, 83, 0, 101, 0, 10, 67, 199, 50, 128, 81, 36, 57, 47, 0, 11, 67, 138, 18, 0,
-			84, 35, 107, 35, 71, 0, 12, 67, 131, 50, 128, 50, 37, 57, 57, 35, 47, 0, 14, 68, 129, 129, 209, 40, 50, 36, 88, 108, 51, 35,
-			47, 0, 12, 67, 127, 50, 128, 65, 36, 57, 57, 36, 47, 0, 13, 68, 42, 40, 19, 40, 47, 40, 50, 36, 89, 47, 0, 9, 67, 31,
-			52, 243, 37, 89, 108, 0, 12, 68, 30, 40, 145, 40, 40, 84, 36, 51, 47, 0, 13, 68, 29, 24, 19, 40, 36, 51, 50, 36, 89, 47,
-			0, 7, 1, 103, 75, 37, 0, 101, 0, 14, 68, 124, 210, 162, 28, 65, 39, 107, 47, 35, 84, 108, 0, 10, 67, 77, 33, 192, 89, 36,
-			88, 108, 0, 10, 67, 69, 33, 192, 51, 39, 88, 108, 0, 13, 68, 30, 4, 162, 28, 36, 50, 88, 36, 84, 108, 0, 8, 1, 104, 36,
-			57, 76, 0, 101, 0, 14, 68, 205, 151, 34, 32, 57, 35, 19, 104, 17, 40, 71, 0, 19, 70, 137, 232, 49, 138, 33, 210, 84, 36, 55,
-			36, 50, 81, 39, 84, 108, 88, 0, 16, 69, 130, 39, 179, 76, 160, 50, 39, 84, 36, 55, 37, 89, 47, 0, 11, 67, 128, 193, 202, 50,
-			36, 75, 108, 47, 0, 12, 67, 126, 183, 138, 65, 36, 55, 55, 35, 47, 0, 11, 67, 122, 33, 202, 55, 36, 84, 108, 47, 0, 14, 68,
-			82, 36, 98, 204, 91, 39, 12, 51, 35, 84, 37, 0, 14, 69, 68, 120, 79, 30, 0, 51, 108, 107, 72, 108, 50, 0, 14, 67, 53, 236,
-			202, 107, 36, 55, 55, 37, 57, 35, 47, 0, 14, 68, 45, 145, 222, 32, 89, 35, 19, 108, 55, 35, 71, 0, 13, 68, 42, 3, 199, 32,
-			47, 39, 50, 72, 108, 71, 0, 18, 70, 41, 24, 173, 138, 209, 210, 47, 36, 51, 39, 48, 39, 48, 108, 88, 0, 15, 69, 35, 60, 95,
-			30, 0, 71, 37, 81, 35, 65, 108, 50, 0, 13, 68, 34, 3, 199, 32, 71, 35, 50, 72, 108, 71, 0, 10, 67, 33, 72, 128, 71, 36,
-			91, 39, 0, 7, 1, 105, 108, 57, 0, 101, 0, 16, 69, 195, 56, 159, 68, 176, 49, 37, 57, 40, 65, 35, 51, 89, 0, 11, 67, 181,
-			24, 135, 48, 35, 51, 84, 108, 0, 11, 67, 137, 37, 0, 84, 35, 88, 36, 91, 0, 10, 67, 97, 231, 192, 88, 39, 55, 65, 0, 8,
-			66, 78, 16, 89, 36, 12, 0, 12, 67, 52, 244, 199, 107, 35, 72, 89, 35, 50, 0, 8, 1, 106, 75, 36, 57, 0, 101, 0, 12, 67,
-			126, 33, 204, 65, 35, 84, 84, 108, 75, 0, 17, 69, 125, 50, 162, 48, 128, 65, 39, 89, 47, 39, 12, 75, 36, 71, 0, 15, 69, 108,
-			117, 158, 8, 128, 83, 108, 88, 36, 55, 108, 71, 0, 14, 68, 77, 241, 204, 40, 89, 36, 65, 108, 75, 35, 47, 0, 12, 67, 69, 124,
-			222, 51, 39, 47, 36, 57, 55, 0, 17, 69, 61, 50, 145, 79, 48, 72, 35, 89, 47, 10, 51, 36, 89, 37, 0, 13, 68, 42, 33, 222,
-			40, 47, 40, 108, 55, 36, 47, 0, 11, 67, 33, 60, 204, 71, 35, 89, 37, 75, 0, 11, 67, 33, 24, 140, 71, 39, 51, 40, 75, 0,
-			13, 68, 29, 231, 226, 40, 35, 55, 35, 65, 40, 47, 0, 13, 68, 29, 81, 222, 40, 36, 89, 108, 55, 35, 47, 0, 8, 1, 107, 49,
-			36, 57, 0, 101, 0, 9, 67, 184, 115, 192, 76, 108, 72, 0, 12, 67, 137, 39, 0, 84, 35, 88, 35, 104, 17, 0, 15, 67, 125, 200,
-			159, 65, 39, 104, 17, 35, 84, 84, 36, 65, 0, 15, 68, 125, 194, 150, 28, 65, 39, 104, 17, 47, 35, 88, 108, 0, 14, 68, 124, 193,
-			210, 28, 65, 35, 75, 108, 88, 35, 50, 0, 13, 67, 113, 231, 0, 104, 17, 36, 55, 36, 104, 17, 0, 12, 67, 73, 232, 64, 88, 36,
-			55, 55, 36, 12, 0, 13, 67, 70, 12, 223, 51, 36, 50, 37, 57, 39, 65, 0, 11, 67, 69, 232, 64, 51, 36, 55, 36, 12, 0, 11,
-			67, 41, 232, 64, 47, 35, 55, 36, 12, 0, 14, 68, 35, 54, 210, 28, 71, 37, 57, 35, 83, 88, 108, 0, 9, 67, 9, 232, 64, 108,
-			55, 36, 0, 7, 1, 108, 36, 55, 0, 101, 0, 14, 69, 196, 116, 95, 138, 0, 81, 108, 51, 65, 39, 50, 0, 17, 68, 124, 164, 162,
-			48, 65, 39, 47, 36, 88, 35, 84, 84, 36, 75, 0, 18, 70, 109, 17, 224, 78, 44, 192, 83, 35, 51, 108, 50, 89, 35, 84, 37, 0,
-			13, 68, 61, 17, 243, 136, 72, 36, 51, 108, 57, 84, 0, 15, 69, 42, 40, 135, 120, 160, 47, 39, 84, 108, 55, 36, 47, 0, 21, 71,
-			33, 28, 210, 136, 139, 71, 80, 71, 36, 51, 37, 88, 39, 71, 36, 48, 108, 91, 0, 16, 69, 33, 28, 82, 206, 0, 71, 35, 51, 81,
-			39, 88, 37, 50, 0, 12, 67, 32, 252, 224, 71, 36, 6, 72, 37, 50, 0, 7, 1, 109, 36, 65, 0, 101, 0, 11, 67, 198, 1, 207,
-			81, 39, 50, 108, 72, 0, 13, 68, 193, 226, 226, 124, 49, 39, 55, 89, 40, 65, 0, 13, 68, 125, 178, 135, 52, 65, 36, 83, 47, 108,
-			107, 0, 15, 69, 101, 236, 209, 88, 112, 35, 55, 37, 51, 36, 88, 108, 0, 12, 67, 78, 33, 207, 89, 35, 84, 6, 108, 72, 0, 11,
-			67, 57, 39, 192, 101, 35, 88, 35, 65, 0, 14, 68, 49, 17, 198, 124, 75, 35, 51, 108, 19, 36, 65, 0, 12, 67, 32, 124, 207, 6,
-			71, 108, 57, 35, 72, 0, 7, 1, 110, 36, 50, 0, 101, 0, 20, 71, 181, 232, 145, 29, 236, 211, 40, 48, 39, 55, 39, 51, 108, 55,
-			37, 89, 47, 0, 15, 68, 132, 246, 226, 128, 107, 36, 72, 6, 83, 39, 12, 50, 0, 11, 67, 131, 8, 158, 50, 36, 49, 40, 55, 0,
-			18, 70, 68, 129, 217, 204, 114, 128, 51, 39, 71, 108, 10, 37, 57, 108, 47, 0, 28, 74, 68, 115, 243, 136, 167, 162, 205, 44, 226, 128,
-			51, 108, 72, 37, 57, 39, 47, 36, 55, 84, 37, 88, 57, 39, 50, 0, 11, 67, 56, 200, 158, 101, 35, 75, 40, 55, 0, 16, 69, 33,
-			230, 214, 137, 224, 71, 39, 55, 83, 39, 88, 40, 55, 0, 15, 69, 29, 35, 226, 28, 192, 36, 88, 72, 36, 84, 108, 75, 0, 16, 70,
-			9, 180, 98, 63, 50, 128, 108, 83, 51, 39, 72, 37, 47, 0, 6, 1, 111, 39, 0, 101, 0, 19, 70, 138, 4, 162, 25, 225, 192, 84,
-			36, 50, 36, 88, 40, 19, 36, 55, 108, 0, 13, 68, 129, 244, 98, 60, 50, 35, 65, 51, 40, 72, 0, 10, 67, 129, 99, 0, 50, 39,
-			88, 75, 0, 14, 68, 129, 20, 243, 60, 50, 35, 51, 36, 89, 37, 72, 0, 12, 67, 128, 200, 159, 50, 39, 6, 75, 40, 65, 0, 13,
-			68, 124, 215, 226, 60, 65, 35, 107, 65, 40, 72, 0, 13, 68, 109, 21, 7, 60, 83, 35, 51, 91, 108, 72, 0, 11, 67, 82, 44, 223,
-			91, 35, 84, 37, 65, 0, 13, 68, 81, 245, 7, 60, 91, 36, 65, 91, 108, 72, 0, 12, 67, 52, 193, 209, 107, 35, 75, 75, 108, 51,
-			0, 26, 73, 48, 252, 207, 29, 225, 224, 41, 65, 209, 75, 35, 72, 37, 72, 39, 55, 36, 50, 47, 36, 91, 108, 51, 0, 13, 68, 42,
-			5, 51, 60, 47, 35, 50, 91, 37, 72, 0, 14, 68, 33, 163, 199, 60, 71, 35, 104, 17, 72, 108, 72, 0, 10, 67, 33, 72, 64, 71,
-			36, 91, 36, 0, 13, 67, 33, 24, 159, 71, 36, 51, 35, 84, 35, 65, 0, 15, 69, 33, 24, 136, 137, 240, 71, 35, 51, 39, 71, 40,
-			65, 0, 21, 72, 31, 56, 10, 69, 252, 222, 30, 0, 37, 50, 47, 36, 51, 65, 37, 55, 108, 50, 0, 12, 68, 29, 17, 198, 132, 36,
-			51, 108, 36, 12, 0, 7, 1, 112, 48, 37, 0, 101, 0, 15, 69, 193, 242, 7, 206, 0, 49, 39, 65, 71, 108, 57, 50, 0, 11, 67,
-			188, 123, 96, 90, 108, 48, 39, 50, 0, 15, 69, 181, 66, 162, 30, 0, 48, 39, 91, 47, 84, 108, 50, 0, 13, 67, 139, 55, 160, 84,
-			37, 57, 39, 55, 39, 50, 0, 11, 67, 130, 33, 210, 50, 35, 84, 108, 88, 0, 11, 67, 129, 24, 160, 50, 39, 51, 39, 50, 0, 11,
-			67, 126, 28, 224, 65, 35, 107, 37, 50, 0, 13, 67, 113, 236, 0, 104, 17, 39, 55, 55, 35, 49, 0, 13, 68, 109, 23, 226, 120, 83,
-			39, 51, 65, 40, 55, 0, 11, 67, 78, 12, 192, 89, 36, 50, 50, 37, 0, 14, 68, 61, 225, 243, 120, 72, 35, 55, 108, 57, 36, 55,
-			0, 11, 67, 52, 193, 210, 107, 36, 75, 108, 88, 0, 14, 69, 42, 44, 19, 206, 0, 47, 39, 49, 89, 37, 50, 0, 11, 67, 33, 204,
-			192, 71, 35, 104, 17, 37, 0, 11, 67, 32, 140, 224, 71, 36, 71, 37, 50, 0, 16, 70, 29, 52, 71, 27, 55, 128, 36, 89, 51, 108,
-			19, 37, 55, 0, 16, 69, 29, 50, 179, 82, 0, 36, 89, 47, 36, 57, 91, 36, 50, 0, 9, 1, 113, 49, 37, 57, 40, 0, 101, 0,
-			13, 68, 194, 3, 243, 124, 49, 35, 50, 72, 37, 65, 0, 13, 68, 193, 228, 226, 124, 49, 39, 55, 89, 40, 65, 0, 11, 67, 183, 59,
-			161, 48, 37, 76, 36, 12, 0, 15, 69, 136, 120, 31, 136, 240, 84, 108, 50, 36, 65, 40, 72, 0, 15, 69, 133, 66, 145, 136, 240, 107,
-			35, 91, 47, 51, 40, 72, 0, 16, 69, 131, 54, 202, 28, 240, 50, 35, 57, 39, 83, 47, 108, 72, 0, 13, 68, 125, 156, 199, 68, 65,
-			36, 19, 57, 108, 51, 0, 13, 67, 112, 245, 0, 104, 17, 35, 72, 72, 35, 91, 0, 15, 68, 106, 1, 243, 124, 104, 17, 35, 50, 108,
-			57, 36, 65, 0, 11, 67, 71, 52, 143, 51, 37, 88, 35, 72, 0, 16, 69, 70, 24, 31, 136, 240, 51, 35, 107, 50, 36, 65, 40, 72,
-			0, 12, 68, 42, 35, 199, 68, 47, 40, 72, 108, 51, 0, 16, 68, 33, 72, 34, 124, 71, 36, 91, 36, 50, 35, 84, 35, 65, 0, 13,
-			67, 33, 20, 207, 71, 36, 51, 36, 89, 35, 72, 0, 18, 70, 32, 242, 145, 195, 50, 0, 71, 35, 72, 47, 35, 51, 49, 37, 71, 0,
-			15, 69, 32, 117, 48, 138, 16, 71, 108, 91, 39, 49, 40, 107, 0, 12, 68, 29, 149, 7, 68, 35, 19, 91, 108, 51, 0, 12, 68, 28,
-			213, 135, 68, 36, 107, 88, 108, 51, 0, 7, 1, 114, 108, 51, 0, 101, 0, 14, 68, 197, 40, 34, 128, 81, 36, 88, 36, 50, 39, 50,
-			0, 13, 68, 197, 28, 115, 128, 81, 39, 51, 81, 37, 50, 0, 18, 70, 193, 24, 176, 136, 252, 222, 49, 39, 51, 39, 49, 39, 72, 37,
-			55, 0, 10, 67, 185, 50, 128, 76, 39, 89, 47, 0, 13, 68, 181, 50, 162, 128, 48, 36, 89, 47, 40, 50, 0, 16, 69, 181, 22, 199,
-			205, 224, 48, 39, 51, 39, 83, 108, 57, 55, 0, 13, 68, 180, 113, 179, 128, 6, 48, 108, 37, 12, 50, 0, 13, 68, 130, 210, 162, 128,
-			50, 36, 48, 47, 39, 50, 0, 14, 68, 129, 252, 210, 128, 50, 36, 65, 37, 88, 35, 50, 0, 13, 68, 129, 180, 98, 128, 50, 36, 83,
-			51, 39, 50, 0, 15, 69, 126, 34, 7, 205, 224, 6, 65, 39, 71, 108, 57, 55, 0, 13, 68, 125, 178, 162, 128, 65, 35, 83, 47, 40,
-			50, 0, 13, 68, 124, 164, 98, 128, 65, 36, 47, 51, 39, 50, 0, 15, 69, 124, 161, 224, 137, 224, 65, 36, 47, 108, 50, 39, 55, 0,
-			13, 68, 124, 114, 51, 128, 65, 108, 71, 36, 57, 50, 0, 16, 68, 113, 231, 210, 128, 104, 17, 35, 55, 35, 65, 88, 35, 50, 0, 10,
-			67, 55, 53, 128, 107, 36, 57, 88, 0, 16, 68, 55, 7, 243, 128, 107, 35, 49, 35, 65, 36, 57, 108, 50, 0, 14, 68, 53, 228, 162,
-			128, 107, 35, 55, 35, 88, 40, 50, 0, 13, 68, 40, 164, 98, 128, 47, 36, 47, 51, 39, 50, 0, 12, 68, 33, 147, 199, 72, 71, 35,
-			72, 35, 88, 0, 14, 69, 29, 60, 17, 137, 224, 36, 89, 49, 51, 40, 55, 0, 11, 67, 28, 232, 179, 35, 101, 35, 84, 37, 0, 14,
-			68, 28, 136, 179, 128, 35, 71, 35, 84, 36, 57, 50, 0, 7, 1, 115, 36, 89, 0, 101, 0, 14, 68, 197, 28, 210, 60, 81, 39, 51,
-			37, 88, 35, 72, 0, 17, 70, 197, 22, 226, 70, 35, 192, 81, 36, 51, 83, 39, 51, 40, 72, 0, 15, 69, 193, 66, 146, 29, 16, 49,
-			36, 91, 47, 88, 108, 51, 0, 10, 67, 192, 193, 192, 49, 39, 75, 108, 0, 10, 67, 132, 193, 192, 107, 36, 75, 108, 0, 13, 68, 129,
-			50, 162, 132, 50, 35, 89, 47, 40, 107, 0, 15, 69, 128, 124, 98, 29, 16, 50, 108, 81, 39, 84, 108, 51, 0, 12, 67, 128, 116, 176,
-			6, 50, 108, 88, 39, 49, 0, 15, 68, 125, 147, 18, 132, 65, 39, 19, 75, 36, 88, 36, 12, 0, 13, 67, 120, 140, 240, 55, 35, 71,
-			71, 36, 57, 49, 0, 13, 67, 115, 59, 176, 104, 17, 36, 57, 76, 35, 49, 0, 16, 69, 70, 20, 237, 29, 16, 51, 35, 107, 89, 36,
-			48, 108, 51, 0, 19, 70, 53, 200, 156, 60, 120, 0, 107, 39, 104, 17, 40, 104, 17, 72, 108, 50, 0, 21, 71, 48, 124, 210, 29, 227,
-			151, 28, 75, 108, 57, 36, 88, 39, 55, 101, 35, 47, 108, 0, 17, 69, 41, 28, 202, 205, 240, 47, 37, 51, 37, 47, 37, 57, 39, 65,
-			0, 13, 68, 41, 23, 226, 76, 47, 36, 51, 65, 40, 89, 0, 12, 67, 33, 36, 112, 71, 35, 88, 51, 35, 49, 0, 15, 68, 32, 247,
-			210, 132, 71, 35, 72, 65, 35, 88, 88, 36, 0, 17, 70, 32, 120, 140, 60, 120, 0, 71, 108, 84, 36, 75, 72, 108, 50, 0, 16, 70,
-			30, 36, 74, 138, 211, 192, 39, 51, 47, 39, 48, 36, 72, 0, 12, 68, 30, 2, 34, 132, 35, 50, 71, 40, 107, 0, 7, 1, 116, 47,
-			37, 0, 101, 0, 13, 67, 197, 236, 128, 81, 35, 55, 55, 36, 57, 36, 0, 12, 67, 193, 236, 128, 49, 35, 55, 36, 57, 36, 0, 14,
-			68, 183, 49, 237, 204, 48, 36, 57, 108, 48, 36, 57, 0, 18, 69, 128, 119, 217, 206, 0, 50, 108, 65, 39, 10, 35, 57, 57, 35, 50,
-			0, 8, 66, 126, 224, 65, 39, 76, 0, 17, 70, 124, 115, 223, 29, 39, 128, 65, 108, 72, 65, 108, 88, 36, 55, 0, 13, 67, 112, 117,
-			28, 104, 17, 108, 91, 39, 104, 17, 0, 17, 70, 76, 124, 19, 205, 184, 160, 89, 108, 49, 89, 37, 83, 39, 50, 0, 13, 67, 61, 245,
-			28, 72, 35, 65, 36, 91, 104, 17, 0, 13, 67, 61, 152, 138, 72, 35, 19, 6, 84, 35, 47, 0, 11, 67, 61, 17, 237, 72, 36, 51,
-			108, 48, 0, 18, 70, 32, 247, 243, 128, 168, 160, 71, 35, 72, 65, 37, 50, 47, 39, 50, 0, 26, 73, 29, 236, 10, 70, 34, 145, 30,
-			220, 192, 36, 55, 36, 49, 47, 36, 51, 39, 47, 36, 51, 108, 48, 37, 0, 18, 70, 29, 65, 224, 43, 56, 160, 36, 91, 108, 50, 47,
-			37, 57, 39, 50, 0, 7, 1, 117, 57, 40, 0, 101, 0, 14, 69, 128, 116, 143, 204, 240, 50, 108, 88, 72, 37, 72, 0, 17, 68, 127,
-			2, 148, 108, 6, 65, 39, 4, 49, 47, 35, 91, 36, 83, 0, 16, 69, 125, 177, 226, 90, 16, 65, 39, 83, 108, 84, 36, 88, 36, 0,
-			15, 68, 70, 36, 98, 192, 51, 39, 12, 51, 39, 84, 35, 49, 0, 14, 68, 60, 116, 98, 192, 72, 108, 51, 39, 84, 35, 49, 0, 18,
-			69, 42, 3, 223, 74, 16, 47, 39, 50, 72, 65, 35, 88, 88, 36, 12, 0, 17, 70, 41, 24, 145, 205, 39, 192, 47, 36, 51, 39, 51,
-			37, 88, 65, 0, 18, 69, 32, 119, 156, 138, 16, 71, 36, 55, 104, 17, 39, 84, 84, 36, 12, 0, 13, 69, 31, 52, 162, 122, 16, 37,
-			88, 39, 55, 36, 0, 17, 70, 29, 50, 145, 139, 60, 207, 36, 89, 47, 36, 51, 39, 37, 72, 0, 17, 70, 9, 50, 145, 139, 60, 207,
-			108, 89, 47, 36, 51, 39, 37, 72, 0, 7, 1, 118, 84, 37, 0, 101, 0, 13, 67, 131, 20, 84, 50, 36, 81, 35, 51, 36, 91, 0,
-			8, 66, 130, 32, 50, 39, 12, 0, 17, 69, 109, 200, 71, 207, 48, 83, 39, 104, 17, 35, 107, 108, 37, 12, 0, 14, 68, 77, 23, 211,
-			40, 89, 35, 51, 65, 35, 89, 47, 0, 15, 68, 34, 35, 84, 40, 71, 36, 84, 35, 107, 91, 35, 47, 0, 12, 67, 32, 229, 20, 71,
-			35, 101, 91, 36, 91, 0, 12, 1, 119, 72, 35, 71, 36, 55, 57, 40, 0, 101, 0, 18, 70, 194, 3, 199, 129, 56, 145, 49, 39, 50,
-			72, 108, 50, 89, 39, 51, 0, 21, 70, 180, 244, 72, 73, 28, 64, 48, 36, 72, 35, 51, 10, 71, 39, 88, 39, 51, 81, 0, 20, 70,
-			131, 56, 146, 183, 59, 81, 50, 37, 57, 40, 88, 48, 36, 57, 48, 36, 51, 0, 16, 70, 130, 37, 51, 63, 51, 192, 50, 39, 91, 37,
-			72, 37, 72, 0, 11, 67, 128, 225, 217, 50, 39, 101, 108, 19, 0, 19, 70, 125, 17, 220, 35, 56, 0, 65, 39, 51, 108, 104, 17, 36,
-			71, 37, 50, 0, 14, 67, 124, 200, 155, 65, 39, 75, 35, 84, 84, 35, 83, 0, 11, 67, 113, 113, 217, 104, 17, 36, 47, 108, 0, 10,
-			67, 81, 145, 217, 91, 39, 108, 19, 0, 11, 67, 80, 193, 217, 91, 39, 75, 108, 19, 0, 18, 70, 63, 60, 81, 9, 33, 209, 72, 37,
-			81, 35, 51, 108, 88, 108, 51, 0, 17, 70, 61, 50, 173, 30, 232, 64, 72, 35, 89, 47, 48, 108, 76, 36, 0, 17, 70, 41, 24, 138,
-			29, 40, 64, 47, 35, 51, 39, 47, 108, 88, 36, 0, 18, 70, 30, 12, 223, 205, 72, 0, 35, 50, 37, 65, 36, 57, 91, 36, 50, 0,
-			13, 68, 28, 210, 162, 28, 36, 107, 47, 36, 84, 108, 0, 16, 70, 28, 136, 147, 103, 51, 192, 35, 71, 40, 89, 35, 37, 72, 0, 11,
-			67, 8, 140, 240, 108, 71, 57, 36, 49, 0, 8, 1, 120, 36, 49, 89, 0, 101, 0, 16, 69, 128, 115, 209, 76, 160, 50, 108, 72, 39,
-			51, 39, 89, 47, 0, 12, 67, 112, 252, 0, 104, 17, 35, 72, 35, 49, 0, 15, 68, 105, 40, 34, 204, 104, 17, 35, 88, 50, 35, 84,
-			37, 0, 13, 67, 84, 252, 220, 89, 36, 72, 72, 37, 104, 17, 0, 10, 67, 79, 55, 128, 89, 36, 57, 55, 0, 15, 69, 58, 36, 115,
-			30, 0, 101, 39, 51, 37, 57, 108, 50, 0, 15, 68, 53, 231, 34, 204, 107, 35, 55, 104, 17, 35, 84, 37, 0, 16, 68, 42, 37, 115,
-			200, 6, 47, 39, 12, 89, 37, 57, 36, 12, 0, 12, 68, 35, 56, 51, 204, 71, 37, 50, 37, 12, 0, 21, 72, 11, 24, 10, 137, 40,
-			179, 207, 0, 108, 81, 50, 36, 47, 39, 88, 39, 37, 49, 0, 8, 1, 121, 84, 108, 57, 0, 101, 0, 10, 67, 205, 52, 64, 57, 39,
-			89, 51, 0, 18, 70, 197, 17, 224, 124, 124, 225, 81, 36, 51, 108, 50, 65, 108, 57, 36, 0, 11, 67, 181, 52, 64, 48, 36, 89, 35,
-			51, 0, 19, 70, 137, 147, 226, 137, 156, 207, 84, 35, 19, 72, 39, 84, 35, 19, 37, 72, 0, 14, 68, 129, 35, 243, 192, 6, 50, 35,
-			88, 72, 37, 49, 0, 13, 68, 125, 84, 71, 100, 65, 36, 89, 51, 108, 19, 0, 13, 68, 125, 56, 135, 192, 65, 36, 89, 84, 108, 49,
-			0, 12, 67, 121, 199, 192, 6, 55, 39, 104, 17, 65, 0, 12, 67, 113, 52, 64, 104, 17, 36, 89, 36, 51, 0, 8, 66, 82, 16, 91,
-			35, 107, 0, 19, 70, 61, 24, 160, 124, 124, 225, 72, 35, 51, 40, 50, 65, 108, 57, 36, 12, 0, 14, 68, 42, 39, 51, 108, 6, 47,
-			39, 104, 17, 37, 83, 0, 11, 67, 33, 84, 64, 71, 35, 89, 35, 51, 0, 16, 69, 32, 114, 156, 136, 112, 71, 108, 47, 35, 104, 17,
-			84, 108, 0, 12, 68, 30, 37, 135, 100, 39, 12, 88, 108, 19, 0, 12, 68, 28, 199, 199, 100, 36, 75, 65, 108, 19, 0, 20, 72, 10,
-			2, 145, 138, 216, 179, 204, 240, 108, 50, 47, 51, 39, 48, 39, 37, 72, 0, 7, 1, 122, 88, 37, 0, 101, 0, 22, 71, 181, 24, 175,
-			76, 164, 98, 128, 48, 36, 51, 39, 90, 36, 89, 47, 36, 51, 39, 50, 0, 17, 69, 125, 18, 150, 139, 48, 65, 39, 51, 47, 35, 88,
-			35, 84, 37, 0, 23, 71, 66, 39, 7, 111, 50, 179, 128, 88, 40, 104, 17, 108, 83, 37, 57, 35, 47, 36, 57, 50, 0, 14, 1, 123,
-			81, 12, 37, 57, 40, 65, 36, 71, 108, 88, 0, 0, 21, 72, 192, 123, 115, 40, 119, 179, 73, 240, 49, 108, 48, 37, 47, 108, 55, 37,
-			88, 65, 0, 12, 67, 185, 27, 145, 76, 35, 51, 76, 35, 51, 0, 11, 67, 129, 119, 0, 50, 39, 47, 104, 17, 0, 22, 72, 124, 114,
-			145, 204, 119, 179, 73, 240, 65, 108, 47, 36, 51, 57, 108, 55, 37, 88, 65, 0, 17, 70, 109, 17, 224, 78, 33, 192, 83, 36, 51, 108,
-			50, 89, 40, 108, 0, 10, 67, 85, 232, 64, 89, 36, 55, 36, 0, 11, 67, 80, 252, 223, 91, 39, 72, 37, 65, 0, 10, 67, 61, 232,
-			64, 72, 35, 55, 36, 0, 11, 67, 53, 232, 64, 107, 39, 55, 55, 36, 0, 11, 67, 49, 20, 192, 75, 35, 51, 35, 89, 0, 10, 67,
-			40, 124, 223, 47, 108, 57, 65, 0, 11, 67, 33, 20, 192, 71, 36, 51, 36, 89, 0, 10, 67, 29, 232, 64, 36, 55, 108, 107, 0, 15,
-			69, 29, 229, 25, 29, 144, 39, 91, 91, 39, 19, 108, 19, 0, 16, 70, 10, 252, 207, 132, 124, 0, 108, 90, 37, 72, 107, 108, 49, 0,
-			0, 11, 67, 197, 24, 160, 81, 36, 51, 40, 50, 0, 18, 70, 181, 52, 79, 31, 60, 192, 48, 36, 89, 35, 51, 72, 108, 37, 12, 0,
-			11, 67, 69, 56, 160, 51, 36, 89, 40, 50, 0, 10, 67, 61, 232, 128, 72, 35, 55, 84, 0, 12, 67, 57, 252, 224, 101, 39, 65, 36,
-			57, 50, 0, 10, 67, 49, 232, 128, 75, 39, 55, 39, 0, 11, 67, 41, 232, 128, 47, 36, 55, 39, 12, 0, 13, 68, 41, 17, 210, 136,
-			47, 35, 51, 108, 88, 40, 0, 16, 69, 40, 132, 82, 206, 0, 47, 35, 71, 35, 51, 88, 37, 50, 0, 14, 68, 34, 23, 162, 120, 71,
-			39, 107, 6, 55, 40, 55, 0, 23, 71, 34, 3, 209, 182, 23, 162, 204, 71, 35, 50, 72, 35, 51, 48, 35, 107, 55, 35, 84, 37, 0,
-			24, 73, 31, 55, 226, 130, 44, 94, 136, 140, 224, 37, 65, 39, 50, 39, 81, 39, 55, 39, 71, 37, 50, 0, 10, 67, 29, 232, 128, 35,
-			55, 39, 12, 0, 17, 1, 125, 81, 12, 37, 57, 40, 65, 36, 71, 35, 89, 47, 36, 12, 0, 0, 18, 70, 186, 17, 209, 61, 18, 0,
-			76, 108, 107, 108, 51, 72, 35, 51, 71, 0, 18, 70, 182, 212, 243, 194, 39, 135, 48, 36, 48, 89, 37, 49, 39, 55, 108, 0, 14, 67,
-			126, 36, 211, 65, 39, 19, 35, 89, 89, 36, 89, 0, 14, 68, 126, 17, 204, 124, 65, 39, 107, 108, 75, 36, 65, 0, 14, 67, 124, 199,
-			161, 65, 35, 75, 35, 55, 55, 36, 12, 0, 14, 68, 120, 117, 145, 68, 55, 108, 88, 35, 51, 35, 51, 0, 19, 70, 109, 23, 199, 129,
-			24, 135, 83, 35, 51, 65, 108, 50, 51, 35, 84, 108, 0, 20, 71, 79, 52, 202, 124, 114, 179, 192, 89, 37, 89, 47, 36, 65, 108, 47,
-			37, 49, 0, 14, 68, 56, 124, 19, 68, 101, 108, 49, 36, 89, 35, 51, 0, 11, 67, 31, 4, 211, 35, 49, 89, 36, 89, 0, 9, 66,
-			126, 0, 65, 35, 50, 0, 76, 0, 15, 69, 197, 17, 224, 137, 224, 81, 36, 51, 108, 50, 40, 55, 0, 14, 68, 125, 145, 243, 128, 65,
-			39, 19, 108, 57, 36, 50, 0, 21, 71, 68, 115, 243, 136, 164, 71, 180, 51, 108, 72, 37, 57, 39, 47, 39, 51, 108, 48, 0, 13, 68,
-			32, 243, 243, 128, 71, 35, 72, 72, 37, 50, 0, 14, 68, 9, 18, 145, 72, 108, 51, 47, 36, 51, 39, 88, 0, 0, 15, 69, 197, 23,
-			211, 205, 16, 81, 35, 51, 65, 89, 37, 51, 0, 14, 68, 132, 248, 17, 76, 107, 36, 72, 50, 36, 51, 89, 0, 12, 67, 127, 1, 209,
-			65, 35, 49, 49, 108, 51, 0, 14, 67, 125, 53, 205, 65, 39, 89, 35, 47, 47, 35, 107, 0, 16, 69, 109, 236, 30, 137, 16, 83, 39,
-			55, 49, 36, 55, 39, 51, 0, 10, 67, 101, 65, 193, 36, 91, 108, 19, 0, 11, 67, 81, 145, 209, 91, 39, 19, 108, 51, 0, 16, 69,
-			77, 227, 84, 137, 16, 89, 35, 55, 35, 107, 91, 40, 51, 0, 16, 69, 70, 34, 160, 205, 240, 51, 40, 47, 36, 50, 57, 39, 65, 0,
-			13, 68, 68, 119, 211, 76, 51, 108, 65, 89, 36, 89, 0, 17, 69, 52, 248, 141, 85, 16, 107, 35, 72, 72, 39, 107, 35, 89, 51, 0,
-			12, 68, 42, 35, 51, 132, 47, 39, 75, 37, 107, 0, 15, 69, 9, 49, 224, 77, 16, 108, 89, 108, 50, 89, 39, 51, 0, 9, 67, 8,
-			129, 193, 108, 71, 108, 0, 0, 18, 70, 181, 18, 158, 29, 232, 128, 48, 39, 51, 47, 35, 55, 35, 55, 39, 0, 19, 71, 135, 52, 202,
-			71, 49, 243, 204, 107, 37, 89, 47, 36, 51, 37, 57, 37, 0, 0, 12, 67, 207, 5, 79, 57, 36, 49, 89, 35, 72, 0, 18, 70, 190,
-			4, 71, 42, 36, 64, 90, 36, 50, 36, 51, 108, 47, 39, 51, 0, 13, 68, 133, 67, 199, 68, 107, 39, 91, 72, 108, 51, 0, 13, 68,
-			129, 53, 226, 68, 50, 35, 89, 47, 40, 51, 0, 14, 68, 125, 195, 199, 68, 65, 36, 104, 17, 72, 108, 51, 0, 14, 68, 125, 72, 98,
-			68, 65, 35, 91, 6, 107, 40, 51, 0, 13, 68, 124, 164, 98, 68, 65, 36, 47, 51, 39, 51, 0, 16, 70, 71, 50, 34, 74, 39, 192,
-			51, 37, 71, 39, 88, 39, 65, 0, 12, 67, 41, 20, 207, 47, 35, 51, 89, 35, 72, 0, 18, 70, 34, 5, 51, 131, 55, 192, 71, 36,
-			50, 36, 91, 37, 50, 37, 65, 0, 12, 67, 33, 24, 147, 71, 39, 51, 39, 12, 89, 0, 13, 68, 28, 196, 71, 4, 19, 36, 75, 51,
-			108, 19, 0, 16, 70, 28, 132, 71, 135, 55, 192, 36, 71, 51, 108, 107, 37, 65, 0, 16, 70, 9, 23, 199, 42, 36, 64, 108, 51, 65,
-			108, 47, 39, 51, 0, 0, 19, 69, 181, 20, 226, 50, 32, 48, 39, 12, 51, 89, 39, 12, 6, 75, 40, 12, 0, 13, 68, 181, 19, 199,
-			72, 48, 35, 51, 72, 108, 88, 0, 9, 66, 136, 128, 6, 84, 36, 71, 0, 13, 68, 130, 36, 98, 72, 50, 39, 12, 51, 40, 88, 0,
-			24, 73, 127, 56, 51, 28, 168, 145, 205, 50, 128, 65, 37, 50, 37, 57, 108, 47, 39, 51, 37, 89, 47, 0, 12, 67, 78, 3, 20, 89,
-			35, 50, 75, 36, 91, 0, 12, 67, 70, 3, 20, 51, 35, 50, 75, 36, 91, 0, 17, 70, 29, 55, 135, 124, 136, 158, 36, 89, 55, 108,
-			65, 71, 39, 55, 0, 8, 65, 128, 6, 50, 40, 50, 0, 0, 15, 69, 128, 114, 48, 29, 16, 50, 108, 71, 36, 49, 108, 51, 0, 12,
-			67, 113, 17, 213, 104, 17, 39, 51, 108, 89, 0, 18, 70, 108, 118, 94, 28, 168, 0, 83, 108, 19, 36, 55, 108, 47, 39, 50, 0, 16,
-			70, 70, 39, 226, 122, 36, 192, 51, 39, 65, 39, 55, 40, 89, 0, 15, 69, 42, 12, 211, 137, 16, 47, 36, 50, 37, 89, 39, 51, 0,
-			16, 69, 34, 12, 15, 29, 16, 71, 39, 50, 35, 49, 72, 108, 51, 0, 13, 68, 32, 229, 34, 60, 71, 35, 101, 91, 40, 72, 0, 15,
-			69, 30, 12, 19, 29, 16, 36, 50, 49, 36, 89, 108, 51, 0, 15, 69, 29, 101, 209, 29, 16, 36, 88, 47, 36, 51, 108, 51, 0, 0,
-			15, 68, 193, 17, 243, 200, 49, 36, 51, 108, 57, 36, 57, 36, 0, 8, 66, 128, 160, 50, 39, 47, 0, 14, 69, 128, 119, 241, 30, 0,
-			50, 108, 65, 81, 108, 50, 0, 17, 70, 128, 116, 112, 136, 172, 224, 50, 108, 51, 49, 39, 47, 37, 50, 0, 13, 68, 127, 60, 17, 32,
-			65, 37, 49, 51, 39, 71, 0, 15, 68, 124, 202, 209, 32, 65, 39, 75, 35, 51, 51, 35, 71, 0, 12, 67, 83, 4, 202, 91, 36, 49,
-			35, 89, 47, 0, 8, 66, 68, 160, 51, 39, 47, 0, 12, 67, 57, 232, 138, 101, 35, 55, 84, 35, 47, 0, 14, 67, 48, 252, 202, 75,
-			36, 72, 72, 37, 57, 35, 47, 0, 11, 67, 43, 4, 202, 47, 36, 49, 89, 47, 0, 0, 15, 69, 181, 225, 211, 204, 240, 48, 36, 55,
-			108, 89, 37, 72, 0, 13, 68, 124, 164, 98, 192, 65, 35, 47, 51, 40, 49, 0, 17, 69, 101, 247, 176, 68, 240, 35, 65, 35, 55, 10,
-			49, 35, 51, 72, 0, 18, 70, 32, 252, 17, 60, 116, 64, 71, 35, 72, 49, 36, 51, 72, 108, 51, 0, 15, 69, 32, 120, 140, 136, 240,
-			71, 108, 84, 39, 75, 40, 72, 0, 12, 68, 32, 116, 98, 192, 71, 108, 51, 39, 49, 0, 8, 66, 132, 112, 107, 108, 0, 76, 8, 66,
-			68, 112, 51, 108, 0, 76, 8, 66, 128, 112, 50, 108, 0, 76, 0, 14, 68, 129, 177, 211, 40, 50, 36, 83, 108, 89, 35, 47, 0, 14,
-			68, 128, 193, 211, 40, 50, 36, 75, 108, 89, 35, 47, 0, 14, 68, 109, 17, 211, 40, 83, 36, 51, 108, 89, 35, 47, 0, 11, 67, 108,
-			168, 179, 83, 35, 47, 84, 108, 0, 14, 68, 60, 225, 222, 40, 72, 36, 101, 108, 55, 35, 47, 0, 14, 68, 56, 193, 222, 40, 101, 36,
-			75, 108, 55, 35, 47, 0, 14, 68, 32, 247, 211, 40, 71, 35, 72, 65, 35, 89, 47, 0, 11, 67, 31, 56, 136, 35, 57, 57, 40, 71,
-			0, 0, 21, 72, 135, 59, 96, 136, 172, 210, 137, 16, 107, 37, 48, 50, 39, 47, 37, 88, 39, 51, 0, 23, 71, 113, 24, 154, 68, 140,
-			222, 132, 104, 17, 36, 51, 39, 104, 17, 35, 51, 71, 37, 55, 36, 0, 0, 13, 68, 186, 35, 209, 204, 76, 39, 72, 35, 51, 37, 0,
-			14, 68, 182, 23, 162, 204, 48, 35, 107, 55, 35, 84, 37, 0, 13, 68, 127, 2, 162, 32, 65, 35, 49, 47, 40, 71, 0, 9, 66, 124,
-			224, 65, 39, 12, 101, 0, 16, 68, 124, 168, 158, 204, 65, 39, 47, 36, 84, 35, 55, 55, 37, 0, 16, 69, 124, 115, 209, 74, 0, 65,
-			108, 72, 35, 51, 88, 35, 50, 0, 12, 67, 85, 184, 138, 89, 35, 83, 84, 35, 47, 0, 14, 68, 54, 36, 162, 204, 107, 39, 12, 88,
-			35, 84, 37, 0, 15, 69, 29, 50, 179, 122, 0, 36, 89, 47, 37, 55, 36, 50, 0, 0, 11, 67, 185, 251, 71, 76, 35, 65, 48, 108,
-			0, 12, 67, 129, 188, 199, 50, 35, 83, 57, 35, 50, 0, 12, 67, 124, 196, 135, 65, 39, 75, 35, 88, 108, 0, 22, 71, 81, 28, 217,
-			41, 243, 199, 68, 91, 35, 51, 37, 19, 35, 47, 65, 35, 72, 108, 51, 0, 11, 67, 58, 12, 199, 101, 39, 50, 57, 108, 0, 18, 70,
-			57, 241, 209, 9, 232, 143, 101, 39, 65, 108, 51, 108, 55, 40, 72, 0, 13, 67, 42, 39, 135, 47, 35, 84, 35, 55, 55, 108, 0, 10,
-			67, 30, 5, 7, 36, 50, 91, 108, 0, 10, 67, 29, 245, 135, 36, 65, 88, 108, 0, 0, 14, 68, 193, 177, 243, 40, 49, 36, 83, 108,
-			57, 35, 47, 0, 12, 68, 183, 55, 162, 40, 48, 37, 55, 39, 47, 0, 14, 68, 134, 212, 98, 40, 107, 35, 48, 35, 51, 40, 47, 0,
-			14, 68, 113, 39, 243, 40, 104, 17, 39, 88, 65, 37, 47, 0, 15, 69, 108, 120, 10, 75, 48, 83, 108, 50, 47, 36, 88, 37, 0, 14,
-			68, 101, 234, 243, 40, 36, 55, 55, 37, 57, 35, 47, 0, 11, 67, 70, 20, 98, 51, 35, 107, 51, 39, 0, 22, 72, 68, 115, 243, 136,
-			124, 10, 206, 32, 51, 108, 72, 37, 57, 39, 35, 49, 47, 37, 84, 0, 14, 68, 55, 1, 243, 40, 107, 36, 49, 108, 57, 35, 47, 0,
-			14, 68, 48, 132, 98, 40, 75, 35, 71, 35, 51, 40, 47, 0, 14, 68, 33, 24, 98, 40, 71, 35, 51, 35, 107, 40, 47, 0, 29, 75,
-			29, 60, 7, 128, 252, 224, 30, 44, 199, 207, 48, 36, 89, 49, 108, 50, 72, 37, 50, 108, 84, 37, 57, 37, 37, 12, 0, 0, 11, 67,
-			33, 227, 192, 71, 35, 55, 35, 72, 0, 12, 68, 29, 24, 173, 28, 39, 51, 40, 48, 108, 0, 0, 15, 69, 197, 17, 224, 204, 160, 81,
-			36, 51, 108, 50, 37, 47, 0, 14, 68, 194, 4, 209, 136, 49, 39, 50, 89, 36, 51, 84, 0, 17, 70, 134, 39, 162, 192, 116, 202, 107,
-			39, 55, 39, 49, 108, 89, 47, 0, 10, 67, 124, 168, 0, 65, 35, 47, 50, 0, 11, 67, 120, 200, 0, 55, 35, 75, 35, 50, 0, 15,
-			69, 102, 6, 226, 30, 0, 39, 50, 83, 39, 84, 108, 50, 0, 12, 68, 58, 35, 209, 136, 101, 39, 72, 51, 39, 0, 17, 70, 30, 3,
-			226, 129, 44, 192, 35, 50, 72, 39, 50, 36, 88, 37, 0, 17, 69, 29, 232, 161, 204, 160, 39, 55, 39, 107, 37, 57, 57, 35, 47, 0,
-			9, 67, 29, 23, 128, 36, 51, 55, 0, 0, 11, 67, 206, 24, 143, 57, 35, 107, 40, 72, 0, 15, 69, 133, 33, 209, 180, 112, 107, 36,
-			88, 108, 51, 48, 108, 0, 15, 69, 58, 33, 225, 80, 112, 101, 108, 107, 36, 91, 35, 50, 0, 15, 69, 48, 120, 27, 72, 112, 75, 108,
-			50, 83, 35, 88, 108, 0, 10, 67, 29, 252, 207, 39, 65, 37, 72, 0, 15, 69, 29, 50, 161, 72, 112, 36, 89, 47, 36, 107, 88, 108,
-			0, 11, 67, 29, 23, 192, 6, 36, 51, 35, 65, 0, 0, 14, 69, 124, 124, 240, 70, 32, 65, 108, 57, 49, 51, 39, 0, 12, 67, 121,
-			194, 0, 55, 35, 104, 17, 35, 71, 0, 12, 67, 111, 53, 94, 83, 36, 57, 89, 35, 55, 0, 19, 70, 61, 24, 33, 31, 50, 128, 72,
-			35, 51, 50, 35, 107, 108, 57, 35, 47, 0, 20, 70, 53, 232, 135, 83, 4, 115, 107, 35, 55, 84, 108, 91, 36, 49, 35, 51, 37, 0,
-			11, 67, 41, 56, 140, 47, 35, 89, 40, 75, 0, 14, 67, 41, 40, 140, 47, 35, 88, 35, 84, 84, 39, 75, 0, 18, 70, 30, 2, 161,
-			31, 50, 128, 36, 50, 47, 36, 107, 108, 57, 35, 47, 0, 15, 69, 29, 59, 81, 78, 32, 36, 89, 48, 36, 51, 89, 39, 0, 18, 70,
-			10, 12, 94, 137, 184, 136, 108, 50, 81, 36, 55, 39, 83, 39, 71, 0, 0, 13, 68, 183, 55, 226, 60, 48, 36, 57, 65, 40, 72, 0,
-			11, 67, 181, 228, 192, 48, 35, 55, 35, 89, 0, 14, 68, 181, 28, 226, 60, 48, 36, 51, 37, 57, 39, 72, 0, 13, 68, 181, 23, 162,
-			60, 48, 36, 51, 55, 40, 72, 0, 12, 67, 137, 228, 95, 84, 36, 55, 35, 51, 65, 0, 13, 67, 133, 66, 159, 6, 107, 35, 91, 47,
-			39, 65, 0, 14, 68, 131, 49, 243, 60, 50, 35, 57, 108, 57, 35, 72, 0, 12, 67, 124, 132, 95, 65, 39, 71, 51, 35, 65, 0, 12,
-			67, 69, 180, 95, 51, 36, 83, 39, 51, 65, 0, 10, 67, 61, 35, 192, 72, 39, 88, 72, 0, 14, 67, 40, 196, 223, 47, 35, 75, 35,
-			89, 89, 39, 65, 0, 13, 68, 40, 124, 51, 60, 47, 35, 19, 49, 37, 72, 0, 14, 68, 35, 49, 243, 60, 71, 37, 57, 108, 57, 35,
-			72, 0, 0, 18, 70, 196, 119, 202, 137, 188, 202, 81, 108, 65, 36, 47, 39, 83, 37, 47, 0, 8, 66, 122, 208, 55, 39, 48, 0, 13,
-			67, 77, 18, 156, 89, 36, 51, 47, 36, 104, 17, 0, 21, 71, 72, 116, 98, 74, 3, 241, 204, 88, 108, 51, 39, 88, 36, 50, 72, 36,
-			81, 37, 0, 10, 67, 45, 183, 128, 89, 39, 83, 55, 0, 0, 16, 69, 198, 20, 81, 136, 240, 81, 39, 107, 35, 51, 51, 40, 72, 0,
-			15, 69, 194, 3, 209, 136, 240, 49, 39, 50, 72, 51, 40, 72, 0, 14, 69, 192, 120, 15, 204, 240, 49, 108, 50, 72, 37, 72, 0, 12,
-			67, 125, 188, 207, 65, 39, 6, 83, 37, 72, 0, 12, 68, 124, 124, 226, 68, 65, 108, 57, 39, 51, 0, 13, 67, 121, 164, 143, 55, 35,
-			104, 17, 88, 35, 72, 0, 13, 67, 113, 116, 97, 104, 17, 35, 47, 51, 36, 12, 0, 9, 67, 101, 22, 192, 39, 51, 83, 0, 13, 67,
-			85, 183, 192, 6, 89, 36, 83, 51, 39, 65, 0, 11, 67, 82, 12, 207, 91, 36, 50, 37, 72, 0, 11, 67, 81, 22, 192, 91, 35, 51,
-			35, 83, 0, 13, 68, 78, 4, 226, 68, 89, 36, 50, 89, 39, 51, 0, 11, 67, 76, 228, 97, 89, 39, 101, 51, 36, 0, 13, 67, 53,
-			68, 97, 107, 35, 91, 35, 51, 36, 12, 0, 11, 67, 53, 56, 143, 107, 35, 89, 40, 72, 0, 15, 68, 40, 135, 162, 68, 47, 35, 71,
-			35, 55, 84, 39, 51, 0, 12, 67, 33, 203, 161, 71, 39, 104, 17, 76, 36, 0, 13, 68, 32, 116, 98, 68, 71, 108, 51, 84, 35, 51,
-			0, 0, 15, 68, 197, 22, 202, 128, 81, 36, 51, 36, 83, 47, 35, 50, 0, 15, 68, 181, 232, 173, 72, 48, 39, 55, 39, 12, 48, 35,
-			88, 0, 11, 67, 120, 214, 0, 55, 35, 107, 35, 88, 0, 12, 67, 112, 129, 222, 104, 17, 36, 71, 108, 55, 0, 13, 67, 105, 49, 222,
-			104, 17, 35, 89, 89, 108, 55, 0, 13, 68, 76, 116, 146, 128, 89, 108, 88, 88, 35, 50, 0, 12, 67, 33, 24, 179, 71, 36, 51, 35,
-			84, 37, 0, 15, 69, 29, 227, 145, 136, 192, 39, 55, 101, 39, 51, 40, 75, 0, 0, 13, 68, 194, 3, 243, 60, 49, 35, 50, 72, 37,
-			72, 0, 17, 70, 136, 119, 160, 43, 56, 0, 84, 108, 55, 36, 50, 47, 37, 50, 0, 11, 67, 131, 17, 223, 50, 36, 81, 108, 65, 0,
-			14, 68, 128, 133, 10, 132, 50, 36, 71, 36, 91, 47, 36, 0, 13, 68, 125, 146, 34, 60, 65, 35, 19, 71, 40, 72, 0, 14, 67, 124,
-			212, 91, 65, 39, 107, 35, 51, 51, 35, 83, 0, 16, 69, 101, 236, 209, 105, 240, 35, 55, 108, 51, 35, 104, 17, 65, 0, 13, 67, 101,
-			71, 31, 19, 36, 91, 104, 17, 35, 65, 0, 12, 67, 87, 52, 91, 89, 36, 57, 51, 35, 83, 0, 15, 68, 77, 20, 209, 132, 89, 39,
-			51, 89, 39, 51, 36, 12, 0, 15, 69, 70, 252, 211, 137, 16, 51, 36, 90, 37, 89, 39, 51, 0, 16, 69, 60, 120, 20, 137, 16, 72,
-			108, 50, 36, 91, 84, 35, 51, 0, 12, 67, 41, 245, 48, 47, 35, 65, 36, 91, 49, 0, 15, 68, 40, 133, 81, 132, 47, 35, 71, 89,
-			35, 51, 36, 12, 0, 11, 67, 35, 56, 31, 71, 37, 50, 35, 65, 0, 16, 69, 34, 3, 220, 205, 16, 71, 35, 50, 72, 104, 17, 37,
-			51, 0, 15, 68, 33, 231, 51, 76, 71, 36, 55, 104, 17, 36, 57, 89, 0, 11, 67, 32, 120, 95, 71, 108, 107, 35, 65, 0, 16, 70,
-			30, 3, 209, 139, 51, 192, 35, 50, 72, 51, 39, 57, 72, 0, 13, 68, 28, 241, 223, 132, 36, 72, 108, 65, 36, 12, 0, 17, 70, 28,
-			136, 81, 70, 35, 192, 35, 71, 107, 35, 51, 51, 40, 72, 0, 13, 68, 28, 131, 145, 132, 35, 71, 101, 36, 51, 36, 0, 15, 69, 28,
-			98, 158, 29, 176, 36, 19, 47, 36, 55, 108, 83, 0, 20, 71, 10, 6, 222, 136, 40, 18, 28, 108, 50, 83, 36, 55, 39, 108, 50, 88,
-			108, 0, 0, 15, 69, 204, 116, 223, 206, 0, 57, 108, 89, 35, 65, 37, 50, 0, 13, 68, 198, 35, 199, 120, 81, 39, 12, 72, 108, 55,
-			0, 11, 67, 185, 225, 224, 76, 36, 55, 108, 50, 0, 11, 67, 181, 225, 224, 48, 36, 55, 108, 50, 0, 11, 67, 139, 56, 0, 84, 37,
-			57, 35, 50, 0, 15, 67, 125, 200, 32, 65, 39, 104, 17, 35, 50, 50, 36, 50, 0, 13, 67, 125, 68, 92, 65, 35, 91, 51, 36, 104,
-			17, 0, 15, 67, 124, 212, 92, 65, 39, 107, 35, 51, 51, 36, 104, 17, 0, 12, 68, 76, 104, 135, 120, 89, 39, 6, 108, 55, 0, 16,
-			69, 63, 2, 145, 206, 0, 72, 39, 49, 47, 39, 51, 37, 50, 0, 14, 69, 60, 114, 147, 138, 0, 72, 108, 47, 89, 39, 50, 0, 13,
-			68, 56, 119, 226, 80, 101, 108, 65, 40, 12, 91, 0, 12, 67, 50, 33, 224, 75, 35, 6, 84, 108, 50, 0, 12, 68, 42, 43, 98, 80,
-			47, 40, 48, 40, 91, 0, 12, 67, 42, 33, 224, 6, 47, 35, 84, 108, 50, 0, 13, 68, 41, 178, 179, 80, 47, 35, 83, 47, 37, 91,
-			0, 13, 67, 35, 51, 220, 71, 36, 57, 72, 35, 104, 17, 0, 12, 68, 31, 7, 199, 120, 36, 49, 65, 108, 55, 0, 12, 68, 30, 23,
-			199, 120, 36, 107, 65, 108, 55, 0, 12, 68, 29, 151, 199, 120, 35, 19, 65, 108, 55, 0, 12, 68, 28, 199, 199, 120, 36, 75, 65, 108,
-			55, 0, 0, 11, 67, 194, 34, 161, 49, 40, 47, 35, 107, 0, 12, 67, 181, 19, 225, 48, 35, 51, 72, 36, 12, 0, 16, 68, 132, 195,
-			225, 124, 6, 107, 36, 75, 72, 35, 107, 39, 65, 0, 17, 69, 124, 225, 200, 70, 16, 65, 39, 101, 108, 71, 36, 51, 36, 12, 0, 17,
-			70, 110, 39, 176, 122, 36, 64, 83, 39, 55, 49, 36, 55, 39, 51, 0, 10, 67, 89, 230, 64, 88, 36, 55, 19, 0, 10, 67, 57, 230,
-			64, 101, 35, 55, 19, 0, 13, 68, 43, 8, 51, 192, 47, 36, 49, 50, 37, 49, 0, 13, 69, 30, 35, 243, 78, 16, 39, 72, 37, 89,
-			36, 0, 16, 70, 30, 12, 219, 137, 23, 192, 39, 50, 37, 83, 39, 51, 65, 0, 12, 68, 29, 118, 71, 124, 36, 47, 19, 108, 65, 0,
-			12, 67, 29, 34, 161, 35, 88, 39, 47, 36, 12, 0, 15, 69, 29, 28, 202, 70, 16, 36, 51, 37, 47, 51, 36, 12, 0, 14, 69, 28,
-			168, 136, 137, 48, 39, 47, 39, 71, 40, 89, 0, 15, 69, 9, 18, 159, 205, 48, 108, 51, 47, 36, 65, 37, 89, 0, 0, 15, 69, 198,
-			3, 209, 139, 48, 81, 35, 50, 72, 51, 40, 57, 0, 13, 68, 183, 55, 199, 128, 48, 36, 57, 65, 108, 50, 0, 14, 68, 129, 76, 223,
-			128, 50, 36, 91, 37, 65, 35, 50, 0, 14, 68, 128, 168, 135, 128, 50, 35, 47, 35, 84, 108, 50, 0, 14, 68, 125, 232, 135, 128, 65,
-			35, 55, 35, 84, 108, 50, 0, 16, 68, 125, 119, 198, 128, 6, 65, 39, 47, 4, 65, 35, 36, 50, 0, 17, 69, 125, 85, 219, 139, 48,
-			65, 39, 89, 47, 35, 83, 35, 84, 37, 0, 14, 68, 121, 199, 199, 128, 55, 39, 104, 17, 65, 108, 50, 0, 13, 67, 121, 164, 148, 55,
-			35, 104, 17, 88, 36, 91, 0, 15, 68, 121, 161, 243, 40, 55, 36, 104, 17, 108, 57, 35, 47, 0, 24, 73, 108, 116, 95, 31, 8, 158,
-			191, 60, 0, 83, 108, 51, 65, 108, 49, 39, 55, 39, 90, 37, 49, 0, 12, 67, 85, 164, 115, 89, 39, 104, 17, 51, 108, 0, 10, 67,
-			82, 39, 243, 91, 40, 65, 37, 0, 11, 67, 76, 124, 212, 89, 108, 57, 36, 91, 0, 11, 67, 72, 124, 212, 88, 108, 57, 36, 91, 0,
-			14, 68, 70, 35, 225, 128, 51, 40, 72, 36, 107, 36, 50, 0, 13, 68, 69, 104, 135, 128, 51, 36, 88, 84, 108, 50, 0, 10, 67, 68,
-			124, 212, 51, 108, 57, 91, 0, 12, 67, 61, 231, 34, 72, 39, 55, 104, 17, 40, 0, 12, 68, 35, 56, 7, 128, 71, 37, 50, 108, 50,
-			0, 15, 68, 32, 243, 225, 128, 71, 35, 72, 72, 35, 107, 35, 50, 0, 14, 68, 32, 241, 243, 40, 71, 36, 72, 108, 57, 35, 47, 0,
-			12, 68, 32, 232, 135, 128, 71, 36, 101, 108, 50, 0, 14, 68, 32, 168, 135, 128, 71, 36, 47, 35, 84, 108, 50, 0, 20, 71, 32, 124,
-			209, 126, 40, 51, 56, 71, 108, 57, 36, 51, 65, 40, 50, 37, 101, 0, 15, 69, 32, 115, 31, 29, 224, 71, 108, 75, 35, 65, 108, 55,
-			0, 12, 68, 29, 232, 135, 128, 35, 55, 84, 108, 50, 0, 13, 68, 29, 60, 51, 40, 36, 89, 49, 36, 57, 47, 0, 13, 68, 28, 232,
-			135, 128, 35, 101, 35, 84, 108, 50, 0, 17, 70, 28, 136, 135, 121, 181, 158, 35, 71, 39, 55, 83, 35, 88, 55, 0, 0, 16, 69, 197,
-			232, 15, 29, 240, 81, 39, 55, 35, 50, 72, 108, 65, 0, 17, 70, 185, 28, 7, 122, 35, 192, 76, 36, 51, 49, 108, 55, 40, 72, 0,
-			16, 69, 139, 50, 160, 29, 240, 84, 37, 57, 36, 47, 50, 108, 65, 0, 19, 70, 131, 56, 15, 29, 35, 192, 50, 35, 57, 35, 50, 72,
-			108, 88, 35, 72, 0, 12, 67, 126, 23, 176, 65, 39, 107, 55, 36, 49, 0, 16, 69, 125, 50, 143, 29, 240, 65, 39, 89, 47, 35, 72,
-			108, 65, 0, 18, 70, 86, 28, 226, 131, 52, 223, 89, 35, 107, 57, 39, 50, 37, 89, 65, 0, 14, 68, 33, 193, 243, 28, 71, 35, 104,
-			17, 108, 57, 108, 0, 16, 70, 30, 40, 51, 110, 36, 95, 39, 50, 37, 83, 39, 51, 65, 0, 14, 68, 29, 35, 115, 44, 35, 88, 107,
-			36, 57, 89, 36, 0, 17, 70, 10, 1, 209, 83, 52, 223, 108, 50, 108, 51, 91, 37, 89, 65, 0, 17, 70, 9, 251, 115, 71, 52, 223,
-			108, 65, 48, 37, 51, 37, 89, 65, 0, 0, 14, 68, 197, 17, 243, 80, 81, 36, 51, 108, 57, 36, 91, 0, 15, 68, 181, 28, 20, 80,
-			48, 39, 51, 49, 36, 91, 36, 91, 0, 10, 67, 137, 104, 128, 84, 39, 88, 40, 0, 14, 68, 130, 33, 210, 80, 50, 35, 84, 108, 88,
-			36, 91, 0, 15, 69, 70, 36, 162, 120, 160, 51, 40, 88, 84, 36, 55, 47, 0, 10, 67, 62, 216, 128, 72, 36, 48, 39, 0, 16, 69,
-			59, 52, 145, 30, 0, 101, 36, 57, 88, 35, 51, 108, 50, 0, 15, 69, 29, 50, 179, 138, 0, 36, 89, 47, 37, 84, 36, 50, 0, 17,
-			69, 29, 50, 136, 69, 192, 36, 89, 47, 35, 71, 51, 35, 104, 17, 0, 10, 67, 28, 252, 237, 39, 72, 37, 48, 0, 0, 19, 71, 196,
-			119, 162, 30, 12, 211, 124, 81, 108, 55, 84, 108, 50, 37, 89, 65, 0, 19, 70, 194, 6, 226, 79, 56, 147, 49, 39, 50, 83, 40, 89,
-			37, 57, 40, 89, 0, 19, 71, 192, 114, 135, 123, 52, 162, 68, 49, 108, 47, 108, 55, 37, 88, 39, 51, 0, 17, 70, 182, 36, 71, 81,
-			22, 192, 48, 40, 51, 35, 91, 51, 35, 83, 0, 17, 70, 127, 55, 179, 138, 7, 192, 65, 37, 55, 57, 40, 50, 39, 65, 0, 14, 68,
-			125, 113, 222, 100, 65, 39, 47, 108, 55, 36, 19, 0, 13, 68, 124, 229, 98, 84, 65, 35, 101, 89, 40, 89, 0, 20, 71, 124, 161, 200,
-			137, 236, 211, 124, 65, 36, 47, 108, 71, 39, 55, 37, 89, 65, 0, 20, 71, 123, 50, 17, 29, 236, 211, 124, 55, 37, 71, 36, 51, 108,
-			55, 37, 89, 65, 0, 15, 69, 68, 129, 202, 207, 0, 51, 39, 71, 108, 47, 37, 49, 0, 18, 70, 61, 71, 224, 192, 119, 192, 72, 39,
-			91, 65, 35, 50, 49, 108, 65, 0, 21, 71, 60, 164, 95, 206, 12, 211, 124, 72, 36, 47, 36, 51, 65, 37, 50, 37, 89, 65, 0, 16,
-			69, 57, 27, 84, 42, 16, 101, 35, 51, 48, 39, 91, 47, 36, 0, 19, 70, 41, 23, 179, 138, 7, 192, 47, 36, 51, 36, 55, 57, 40,
-			50, 39, 65, 0, 16, 69, 32, 210, 34, 54, 16, 71, 39, 107, 71, 40, 107, 36, 12, 0, 0, 12, 67, 197, 236, 115, 81, 36, 55, 36,
-			81, 37, 0, 17, 70, 124, 124, 205, 40, 115, 0, 65, 108, 57, 35, 107, 47, 108, 75, 0, 16, 69, 109, 17, 223, 137, 64, 83, 35, 6,
-			51, 108, 65, 40, 91, 0, 17, 69, 73, 243, 148, 71, 48, 88, 35, 65, 35, 101, 91, 35, 51, 37, 0, 20, 71, 31, 56, 10, 70, 12,
-			226, 72, 37, 50, 47, 36, 51, 50, 37, 57, 40, 88, 0, 0, 12, 67, 205, 168, 145, 57, 39, 104, 17, 39, 51, 0, 11, 67, 196, 116,
-			145, 81, 108, 88, 39, 51, 0, 21, 72, 192, 114, 135, 34, 39, 179, 77, 240, 49, 108, 47, 108, 71, 39, 55, 37, 89, 65, 0, 22, 72,
-			191, 56, 138, 70, 43, 115, 77, 240, 90, 36, 39, 47, 36, 51, 39, 48, 37, 89, 65, 0, 19, 70, 133, 23, 224, 136, 172, 240, 107, 36,
-			51, 65, 39, 50, 39, 47, 37, 49, 0, 23, 72, 108, 168, 138, 70, 43, 115, 77, 240, 83, 39, 47, 39, 47, 36, 51, 39, 48, 37, 89,
-			65, 0, 11, 67, 76, 124, 209, 89, 108, 57, 36, 51, 0, 21, 72, 76, 120, 10, 68, 119, 179, 77, 240, 89, 108, 50, 47, 51, 108, 55,
-			37, 89, 65, 0, 11, 67, 72, 124, 209, 88, 108, 19, 36, 51, 0, 11, 67, 60, 120, 145, 72, 108, 84, 35, 51, 0, 11, 67, 56, 120,
-			145, 101, 108, 84, 35, 51, 0, 11, 67, 43, 55, 145, 47, 37, 55, 36, 51, 0, 12, 67, 33, 59, 81, 71, 36, 89, 48, 39, 51, 0,
-			17, 70, 10, 3, 209, 30, 12, 240, 108, 50, 72, 51, 108, 50, 37, 49, 0, 0, 14, 69, 183, 52, 202, 138, 0, 48, 37, 89, 47, 40,
-			50, 0, 15, 69, 132, 124, 202, 30, 0, 107, 108, 57, 36, 47, 108, 50, 0, 17, 70, 127, 52, 71, 52, 252, 192, 65, 37, 51, 35, 107,
-			35, 72, 37, 0, 20, 70, 125, 50, 142, 61, 241, 224, 65, 39, 89, 47, 35, 101, 72, 36, 65, 108, 50, 0, 14, 67, 124, 200, 146, 65,
-			39, 75, 35, 84, 84, 36, 88, 0, 10, 67, 78, 33, 174, 89, 40, 37, 76, 0, 18, 70, 63, 20, 79, 205, 60, 192, 72, 36, 81, 35,
-			51, 72, 37, 89, 37, 0, 12, 68, 31, 49, 207, 204, 35, 57, 108, 72, 37, 0, 18, 70, 30, 12, 94, 207, 1, 224, 36, 50, 81, 36,
-			55, 37, 49, 108, 50, 0, 19, 70, 30, 12, 94, 76, 161, 224, 36, 50, 81, 36, 55, 36, 89, 47, 108, 50, 0, 18, 70, 28, 136, 147,
-			111, 49, 224, 35, 71, 40, 89, 39, 83, 57, 108, 50, 0, 18, 70, 10, 12, 94, 207, 1, 224, 108, 50, 81, 36, 55, 37, 49, 108, 50,
-			0, 12, 67, 8, 139, 82, 108, 71, 6, 48, 35, 88, 0, 0, 11, 67, 110, 4, 64, 83, 35, 50, 35, 51, 0, 24, 73, 78, 34, 47,
-			192, 172, 226, 205, 55, 192, 89, 40, 71, 90, 36, 49, 47, 37, 84, 37, 89, 65, 0, 13, 68, 68, 120, 98, 68, 51, 108, 107, 84, 35,
-			51, 0, 9, 66, 52, 240, 107, 35, 72, 72, 0, 13, 68, 49, 248, 98, 68, 75, 39, 65, 107, 40, 51, 0, 14, 68, 49, 33, 243, 68,
-			75, 35, 88, 108, 57, 36, 51, 0, 23, 72, 48, 252, 207, 29, 232, 145, 136, 240, 75, 35, 72, 37, 72, 39, 55, 84, 39, 51, 40, 72,
-			0, 11, 67, 34, 4, 64, 71, 35, 50, 36, 51, 0, 19, 70, 32, 119, 149, 68, 115, 97, 71, 36, 89, 89, 36, 51, 108, 107, 36, 12,
-			0, 10, 67, 30, 216, 147, 39, 48, 40, 89, 0, 0, 10, 67, 137, 228, 128, 84, 36, 55, 88, 0, 11, 67, 109, 228, 128, 83, 36, 55,
-			36, 88, 0, 14, 69, 29, 225, 200, 135, 48, 35, 55, 35, 71, 107, 108, 0, 21, 71, 9, 4, 72, 31, 51, 7, 128, 108, 88, 35, 51,
-			71, 108, 57, 36, 75, 108, 50, 0, 0, 12, 67, 205, 200, 145, 57, 39, 104, 17, 39, 51, 0, 11, 67, 185, 120, 145, 76, 36, 47, 39,
-			51, 0, 15, 69, 182, 39, 179, 137, 16, 48, 39, 55, 37, 84, 36, 51, 0, 19, 70, 125, 17, 220, 32, 120, 0, 65, 39, 51, 108, 104,
-			17, 36, 71, 108, 50, 0, 11, 67, 111, 8, 145, 83, 35, 49, 40, 51, 0, 14, 68, 109, 19, 226, 76, 83, 36, 51, 72, 39, 12, 89,
-			0, 12, 67, 105, 184, 145, 104, 17, 35, 83, 40, 51, 0, 11, 67, 85, 184, 145, 89, 35, 83, 40, 51, 0, 21, 70, 76, 161, 209, 196,
-			120, 0, 89, 36, 12, 47, 108, 51, 36, 12, 6, 81, 108, 50, 0, 17, 70, 33, 232, 145, 60, 120, 0, 71, 40, 55, 40, 51, 72, 108,
-			50, 0, 26, 73, 31, 4, 237, 69, 60, 226, 131, 52, 223, 36, 49, 89, 48, 36, 51, 89, 37, 57, 39, 50, 37, 89, 65, 0, 0, 15,
-			69, 134, 209, 209, 206, 0, 107, 36, 48, 108, 51, 37, 50, 0, 17, 70, 108, 168, 148, 205, 252, 192, 83, 39, 47, 39, 91, 37, 65, 37,
-			0, 15, 69, 35, 49, 223, 137, 32, 71, 37, 57, 108, 65, 40, 88, 0, 16, 68, 33, 21, 10, 200, 71, 36, 51, 36, 91, 47, 36, 57,
-			36, 0, 0, 16, 69, 186, 17, 209, 207, 0, 76, 108, 107, 108, 51, 57, 36, 49, 0, 18, 70, 181, 24, 155, 78, 36, 64, 48, 36, 51,
-			39, 83, 36, 89, 39, 51, 0, 11, 67, 180, 117, 15, 48, 108, 91, 35, 72, 0, 13, 68, 132, 124, 237, 68, 107, 108, 57, 48, 36, 51,
-			0, 12, 67, 129, 24, 147, 50, 36, 51, 84, 36, 89, 0, 11, 67, 128, 232, 143, 50, 39, 101, 39, 72, 0, 14, 69, 128, 120, 143, 205,
-			48, 50, 108, 84, 72, 37, 89, 0, 13, 68, 127, 52, 226, 68, 65, 35, 57, 89, 40, 51, 0, 11, 67, 124, 200, 147, 65, 35, 75, 40,
-			89, 0, 27, 74, 110, 40, 48, 79, 56, 160, 29, 236, 211, 124, 83, 39, 50, 49, 89, 37, 57, 39, 50, 108, 55, 37, 89, 65, 0, 15,
-			67, 42, 39, 143, 6, 47, 35, 84, 35, 55, 55, 39, 72, 0, 13, 67, 33, 24, 143, 71, 36, 51, 35, 84, 35, 72, 0, 25, 73, 29,
-			52, 71, 68, 119, 138, 136, 220, 207, 35, 89, 51, 108, 51, 39, 47, 47, 39, 84, 107, 37, 72, 0, 0, 13, 67, 186, 20, 114, 76, 36,
-			107, 51, 36, 57, 36, 0, 18, 70, 182, 36, 112, 29, 135, 243, 48, 40, 51, 49, 108, 88, 36, 65, 37, 0, 8, 66, 126, 240, 65, 39,
-			90, 0, 8, 66, 62, 240, 72, 36, 90, 0, 9, 66, 60, 128, 72, 39, 71, 71, 0, 0, 18, 70, 197, 226, 34, 123, 56, 0, 81, 39,
-			55, 40, 71, 40, 55, 37, 50, 0, 12, 67, 128, 167, 0, 50, 39, 47, 39, 104, 17, 0, 18, 70, 127, 56, 51, 28, 168, 145, 65, 37,
-			50, 37, 57, 108, 47, 39, 51, 0, 15, 68, 126, 36, 226, 76, 65, 39, 84, 35, 89, 84, 36, 89, 0, 15, 69, 68, 124, 10, 137, 16,
-			51, 36, 108, 49, 47, 39, 51, 0, 13, 68, 61, 35, 243, 60, 72, 39, 88, 72, 37, 72, 0, 15, 68, 61, 19, 148, 60, 72, 36, 51,
-			35, 101, 91, 35, 72, 0, 13, 68, 40, 134, 115, 60, 47, 35, 71, 19, 37, 72, 0, 14, 69, 31, 56, 23, 137, 16, 37, 50, 47, 39,
-			12, 51, 0, 15, 69, 29, 230, 72, 137, 16, 39, 55, 19, 39, 71, 40, 51, 0, 8, 65, 132, 6, 107, 36, 12, 0, 0, 15, 69, 181,
-			225, 241, 206, 0, 48, 36, 55, 108, 81, 37, 50, 0, 13, 68, 130, 44, 51, 80, 50, 39, 12, 49, 37, 91, 0, 14, 67, 125, 184, 150,
-			65, 39, 83, 35, 84, 84, 35, 88, 0, 17, 69, 125, 19, 241, 30, 0, 65, 39, 51, 72, 36, 81, 6, 108, 50, 0, 17, 68, 113, 225,
-			207, 200, 104, 17, 35, 55, 55, 108, 72, 36, 57, 36, 0, 12, 67, 82, 24, 138, 91, 35, 107, 84, 35, 47, 0, 16, 69, 77, 232, 158,
-			137, 32, 89, 36, 55, 55, 40, 55, 39, 88, 0, 10, 67, 41, 184, 128, 47, 39, 83, 40, 0, 16, 69, 32, 225, 209, 181, 32, 71, 39,
-			101, 108, 51, 48, 35, 88, 0, 17, 70, 29, 55, 199, 68, 172, 210, 36, 89, 65, 108, 51, 47, 37, 88, 0, 11, 67, 28, 140, 214, 35,
-			71, 57, 35, 88, 0, 0, 15, 69, 192, 116, 95, 72, 240, 49, 108, 51, 65, 39, 88, 72, 0, 12, 68, 126, 37, 162, 100, 65, 39, 88,
-			40, 12, 0, 15, 69, 70, 36, 159, 72, 240, 51, 40, 88, 65, 39, 88, 72, 0, 12, 67, 61, 152, 135, 72, 35, 19, 6, 84, 108, 0,
-			31, 75, 41, 23, 226, 29, 236, 10, 71, 52, 243, 42, 16, 47, 36, 51, 65, 39, 36, 55, 36, 49, 47, 37, 51, 37, 89, 37, 47, 36,
-			0, 31, 76, 31, 20, 179, 76, 161, 224, 79, 49, 222, 205, 55, 192, 36, 81, 88, 37, 89, 47, 108, 50, 89, 37, 57, 108, 55, 37, 89,
-			65, 0, 14, 69, 30, 220, 210, 136, 240, 36, 48, 37, 88, 39, 72, 0, 19, 71, 30, 12, 34, 32, 114, 162, 68, 35, 50, 49, 40, 71,
-			108, 47, 39, 51, 0, 32, 76, 30, 2, 145, 128, 116, 243, 138, 1, 222, 205, 55, 192, 35, 50, 47, 36, 51, 50, 108, 89, 37, 57, 39,
-			50, 108, 55, 37, 89, 65, 0, 14, 69, 29, 55, 135, 204, 240, 36, 89, 55, 108, 57, 72, 0, 0, 25, 73, 196, 119, 199, 197, 226, 34,
-			123, 56, 0, 81, 108, 65, 108, 81, 39, 55, 40, 71, 40, 55, 37, 50, 0, 11, 67, 183, 50, 128, 48, 36, 57, 35, 47, 0, 17, 70,
-			61, 24, 160, 78, 36, 128, 72, 35, 51, 40, 50, 89, 40, 88, 0, 22, 73, 30, 39, 138, 68, 116, 226, 131, 60, 0, 39, 55, 47, 51,
-			108, 89, 39, 50, 37, 49, 0, 0, 10, 67, 185, 17, 192, 76, 36, 51, 108, 0, 17, 70, 181, 225, 211, 43, 60, 0, 48, 36, 55, 108,
-			89, 47, 37, 49, 0, 18, 70, 41, 17, 224, 77, 184, 145, 47, 36, 51, 108, 50, 89, 83, 39, 51, 0, 19, 70, 35, 49, 223, 69, 35,
-			192, 71, 37, 57, 108, 65, 39, 51, 88, 35, 72, 0, 20, 71, 29, 53, 226, 58, 35, 226, 76, 39, 89, 47, 39, 101, 39, 72, 72, 40,
-			89, 0, 16, 70, 28, 226, 135, 182, 36, 192, 39, 101, 47, 108, 48, 40, 89, 0, 0, 10, 67, 129, 188, 192, 50, 35, 83, 57, 0, 12,
-			68, 126, 39, 138, 204, 65, 39, 55, 47, 37, 0, 10, 67, 109, 24, 128, 83, 39, 51, 40, 0, 14, 69, 108, 116, 83, 30, 0, 83, 108,
-			51, 89, 108, 50, 0, 14, 68, 80, 140, 209, 204, 91, 39, 71, 36, 57, 51, 37, 0, 10, 67, 77, 24, 128, 89, 35, 51, 84, 0, 10,
-			67, 74, 28, 192, 88, 36, 107, 37, 0, 14, 68, 60, 226, 145, 204, 72, 39, 101, 47, 35, 51, 37, 0, 10, 67, 42, 28, 192, 47, 39,
-			107, 37, 0, 15, 69, 41, 28, 212, 206, 0, 47, 37, 51, 37, 91, 37, 50, 0, 12, 68, 29, 55, 135, 136, 36, 89, 55, 108, 84, 0,
-			0, 15, 69, 41, 17, 223, 136, 112, 47, 36, 51, 108, 65, 84, 108, 0, 11, 67, 29, 244, 71, 39, 65, 35, 51, 108, 0, 10, 67, 29,
-			21, 135, 36, 51, 88, 108, 0, 10, 67, 28, 132, 71, 36, 71, 51, 108, 0, 0, 12, 67, 128, 248, 115, 50, 35, 72, 35, 107, 37, 0,
-			12, 67, 57, 52, 98, 101, 39, 89, 51, 39, 12, 0, 15, 69, 35, 53, 10, 71, 48, 71, 37, 91, 47, 35, 51, 37, 0, 0, 14, 68,
-			181, 52, 82, 28, 48, 36, 89, 35, 51, 88, 108, 0, 17, 70, 180, 120, 19, 124, 120, 0, 48, 108, 50, 89, 36, 65, 108, 50, 0, 14,
-			67, 61, 195, 192, 72, 35, 104, 17, 72, 35, 104, 17, 0, 11, 67, 53, 195, 192, 107, 36, 104, 17, 72, 0, 17, 70, 33, 17, 210, 48,
-			120, 0, 71, 39, 51, 108, 88, 75, 108, 50, 0, 13, 68, 32, 220, 209, 28, 71, 35, 107, 37, 51, 108, 0, 21, 72, 29, 228, 199, 122,
-			33, 207, 137, 16, 36, 55, 89, 108, 55, 84, 108, 72, 39, 51, 0, 0, 14, 68, 185, 230, 202, 204, 76, 39, 55, 39, 83, 47, 37, 0,
-			15, 69, 132, 124, 212, 30, 0, 107, 108, 57, 36, 91, 108, 50, 0, 15, 69, 126, 33, 210, 206, 0, 65, 35, 84, 108, 88, 37, 50, 0,
-			11, 67, 124, 200, 0, 65, 39, 75, 36, 50, 0, 16, 69, 122, 44, 51, 82, 0, 55, 39, 49, 36, 57, 91, 36, 50, 0, 15, 68, 113,
-			230, 202, 204, 104, 17, 36, 55, 36, 83, 47, 37, 0, 16, 68, 109, 200, 71, 204, 83, 39, 104, 17, 35, 107, 108, 57, 36, 0, 15, 69,
-			40, 124, 32, 138, 0, 47, 108, 49, 39, 50, 40, 50, 0, 0, 11, 67, 193, 55, 192, 49, 35, 89, 35, 65, 0, 17, 69, 139, 1, 222,
-			40, 112, 84, 36, 49, 108, 55, 35, 47, 35, 50, 0, 12, 67, 137, 194, 135, 84, 35, 104, 17, 47, 108, 0, 19, 71, 130, 36, 202, 29,
-			235, 243, 192, 50, 39, 89, 47, 108, 55, 90, 37, 49, 0, 10, 67, 109, 23, 192, 83, 39, 51, 65, 0, 11, 67, 77, 23, 192, 89, 35,
-			51, 35, 65, 0, 11, 67, 63, 50, 135, 72, 36, 57, 47, 108, 0, 10, 67, 62, 34, 135, 72, 39, 47, 108, 0, 11, 67, 57, 23, 192,
-			101, 35, 51, 35, 65, 0, 11, 67, 53, 23, 192, 107, 35, 51, 35, 65, 0, 17, 69, 49, 49, 209, 40, 112, 75, 36, 89, 108, 51, 35,
-			47, 35, 50, 0, 10, 67, 49, 23, 192, 75, 39, 51, 65, 0, 11, 67, 45, 23, 192, 89, 35, 65, 35, 51, 0, 10, 67, 41, 23, 192,
-			47, 36, 51, 65, 0, 11, 67, 33, 23, 192, 71, 36, 51, 35, 65, 0, 15, 69, 29, 228, 135, 124, 112, 36, 55, 88, 108, 65, 35, 50,
-			0, 14, 69, 29, 225, 204, 68, 112, 39, 55, 36, 75, 51, 108, 0, 9, 67, 9, 23, 192, 108, 51, 65, 0, 11, 67, 8, 247, 199, 108,
-			72, 35, 65, 108, 0, 0, 11, 67, 197, 178, 128, 81, 6, 39, 83, 47, 0, 17, 70, 186, 3, 199, 206, 11, 179, 76, 35, 50, 72, 37,
-			50, 76, 37, 0, 10, 67, 185, 178, 128, 76, 36, 83, 47, 0, 10, 67, 133, 178, 128, 107, 35, 83, 47, 0, 10, 67, 125, 178, 128, 65,
-			39, 83, 47, 0, 14, 67, 124, 213, 94, 65, 39, 107, 35, 89, 89, 36, 55, 0, 10, 67, 121, 178, 128, 55, 36, 83, 47, 0, 10, 67,
-			80, 116, 94, 91, 108, 51, 55, 0, 16, 69, 41, 23, 202, 31, 48, 47, 39, 51, 39, 65, 47, 108, 57, 0, 16, 69, 33, 24, 136, 70,
-			32, 71, 39, 51, 39, 71, 39, 51, 39, 0, 0, 11, 67, 131, 24, 64, 50, 36, 81, 35, 107, 0, 15, 68, 129, 50, 10, 28, 50, 36,
-			89, 71, 35, 47, 35, 50, 0, 13, 67, 105, 88, 64, 104, 17, 39, 89, 89, 36, 12, 0, 11, 67, 92, 116, 95, 47, 108, 51, 39, 65,
-			0, 15, 68, 76, 114, 28, 28, 89, 108, 71, 36, 104, 17, 35, 50, 0, 12, 67, 53, 88, 64, 107, 36, 89, 89, 36, 12, 0, 12, 67,
-			50, 20, 95, 75, 35, 107, 51, 39, 65, 0, 11, 67, 48, 116, 223, 75, 108, 89, 36, 65, 0, 11, 67, 33, 232, 145, 71, 39, 55, 40,
-			51, 0, 11, 67, 30, 20, 95, 35, 107, 51, 39, 65, 0, 0, 12, 67, 185, 225, 220, 76, 39, 55, 108, 104, 17, 0, 11, 67, 135, 23,
-			128, 107, 36, 81, 36, 55, 0, 15, 68, 126, 2, 142, 32, 65, 39, 50, 47, 35, 101, 35, 71, 0, 15, 68, 125, 145, 207, 120, 6, 65,
-			39, 19, 108, 72, 36, 55, 0, 12, 67, 124, 213, 96, 65, 39, 107, 89, 36, 50, 0, 14, 68, 124, 193, 207, 120, 65, 39, 75, 108, 72,
-			36, 55, 0, 10, 66, 114, 208, 104, 17, 39, 48, 48, 0, 12, 67, 109, 83, 74, 83, 36, 89, 107, 35, 47, 0, 10, 67, 93, 183, 128,
-			47, 36, 83, 55, 0, 13, 67, 81, 225, 220, 91, 35, 55, 55, 108, 104, 17, 0, 13, 67, 58, 1, 220, 101, 39, 50, 50, 108, 104, 17,
-			0, 13, 67, 54, 1, 220, 107, 39, 50, 50, 108, 104, 17, 0, 11, 67, 33, 232, 146, 71, 39, 55, 40, 88, 0, 16, 70, 10, 40, 176,
-			28, 248, 128, 108, 84, 39, 49, 108, 72, 39, 0, 0, 15, 69, 197, 224, 158, 136, 240, 81, 36, 55, 108, 55, 40, 72, 0, 16, 69, 181,
-			56, 15, 204, 240, 48, 35, 89, 35, 50, 72, 37, 72, 0, 13, 67, 129, 197, 225, 50, 39, 104, 17, 47, 36, 12, 0, 14, 68, 127, 1,
-			209, 124, 65, 35, 49, 108, 51, 36, 65, 0, 14, 68, 124, 209, 209, 124, 65, 35, 107, 108, 51, 36, 65, 0, 17, 68, 124, 168, 145, 124,
-			65, 39, 47, 36, 84, 35, 51, 51, 36, 65, 0, 15, 69, 109, 17, 206, 128, 112, 83, 35, 51, 108, 101, 50, 108, 0, 11, 67, 93, 22,
-			192, 47, 35, 51, 35, 83, 0, 14, 68, 61, 236, 81, 124, 72, 36, 55, 81, 35, 51, 65, 0, 11, 67, 59, 52, 97, 101, 37, 51, 36,
-			12, 0, 11, 67, 57, 183, 192, 101, 35, 83, 35, 65, 0, 11, 67, 57, 22, 192, 101, 36, 51, 36, 83, 0, 12, 67, 56, 132, 97, 101,
-			36, 71, 51, 36, 12, 0, 12, 67, 33, 68, 97, 71, 35, 91, 35, 51, 36, 0, 11, 67, 10, 36, 79, 108, 84, 35, 51, 72, 0, 0,
-			16, 70, 192, 116, 74, 71, 51, 0, 49, 108, 51, 47, 51, 37, 75, 0, 15, 68, 134, 33, 237, 72, 107, 35, 84, 108, 10, 48, 35, 88,
-			0, 13, 68, 124, 114, 141, 40, 65, 108, 47, 35, 107, 47, 0, 15, 68, 93, 28, 220, 40, 47, 35, 51, 37, 104, 17, 35, 47, 0, 14,
-			68, 61, 50, 135, 112, 72, 39, 89, 47, 108, 104, 17, 0, 13, 68, 31, 20, 162, 72, 6, 36, 81, 88, 39, 88, 0, 13, 68, 30, 6,
-			199, 112, 36, 50, 83, 108, 104, 17, 0, 25, 73, 29, 28, 19, 41, 17, 211, 206, 40, 0, 39, 51, 49, 36, 89, 47, 51, 108, 89, 37,
-			57, 39, 50, 0, 12, 68, 10, 44, 206, 40, 108, 84, 37, 101, 47, 0, 0, 9, 67, 196, 120, 64, 81, 108, 107, 0, 9, 67, 192, 120,
-			64, 49, 108, 107, 0, 16, 70, 188, 120, 15, 29, 28, 0, 90, 108, 50, 72, 108, 51, 49, 0, 9, 67, 184, 120, 64, 76, 108, 107, 0,
-			11, 67, 183, 49, 223, 48, 35, 57, 108, 65, 0, 16, 69, 181, 66, 177, 69, 240, 48, 39, 91, 47, 81, 35, 51, 65, 0, 14, 68, 181,
-			24, 147, 132, 48, 39, 51, 39, 89, 36, 12, 0, 16, 68, 181, 22, 149, 132, 48, 39, 51, 104, 17, 39, 89, 89, 36, 0, 15, 68, 137,
-			56, 147, 132, 84, 35, 89, 84, 35, 89, 36, 12, 0, 15, 68, 131, 54, 202, 60, 50, 35, 57, 39, 83, 47, 35, 72, 0, 17, 68, 126,
-			36, 211, 132, 65, 39, 19, 35, 89, 89, 36, 89, 36, 12, 0, 17, 69, 125, 50, 153, 85, 240, 65, 39, 89, 47, 35, 19, 89, 36, 65,
-			0, 12, 67, 124, 215, 0, 65, 39, 107, 36, 104, 17, 0, 9, 67, 124, 120, 64, 65, 108, 107, 0, 17, 68, 124, 68, 211, 132, 65, 39,
-			19, 35, 89, 89, 36, 89, 36, 12, 0, 12, 67, 89, 248, 64, 88, 35, 65, 65, 36, 12, 0, 12, 67, 81, 248, 64, 91, 36, 65, 65,
-			36, 12, 0, 14, 69, 76, 115, 243, 77, 240, 89, 108, 72, 37, 89, 65, 0, 14, 68, 49, 243, 31, 132, 75, 39, 65, 75, 39, 65, 36,
-			0, 10, 67, 48, 120, 64, 75, 108, 12, 107, 0, 13, 68, 42, 34, 17, 132, 47, 40, 71, 51, 36, 12, 0, 14, 67, 40, 116, 219, 47,
-			35, 19, 35, 89, 89, 39, 83, 0, 18, 70, 30, 12, 212, 43, 56, 0, 35, 50, 37, 91, 6, 47, 35, 57, 50, 0, 0, 11, 67, 197,
-			225, 224, 81, 39, 55, 108, 50, 0, 11, 67, 193, 225, 224, 49, 35, 55, 108, 50, 0, 23, 72, 183, 50, 176, 30, 2, 145, 138, 208, 48,
-			37, 47, 36, 49, 108, 50, 47, 36, 51, 39, 48, 0, 13, 68, 133, 19, 71, 120, 107, 35, 51, 107, 108, 55, 0, 15, 69, 130, 44, 211,
-			30, 0, 50, 36, 84, 37, 89, 108, 50, 0, 13, 68, 129, 72, 7, 120, 50, 35, 91, 50, 108, 55, 0, 16, 69, 129, 68, 115, 28, 160,
-			50, 35, 91, 51, 37, 57, 108, 47, 0, 12, 67, 129, 49, 206, 50, 35, 89, 89, 108, 101, 0, 18, 69, 125, 88, 27, 28, 160, 65, 39,
-			89, 35, 50, 50, 35, 83, 108, 47, 0, 15, 69, 124, 129, 225, 28, 160, 65, 39, 71, 108, 107, 108, 47, 0, 11, 67, 109, 225, 224, 83,
-			36, 55, 108, 50, 0, 12, 68, 74, 39, 135, 120, 88, 39, 55, 108, 55, 0, 15, 69, 60, 119, 217, 30, 0, 72, 108, 65, 104, 17, 108,
-			50, 0, 19, 69, 49, 228, 162, 121, 32, 75, 36, 55, 36, 88, 39, 84, 36, 55, 36, 88, 0, 14, 67, 41, 243, 224, 47, 35, 65, 35,
-			72, 72, 39, 50, 0, 10, 67, 40, 124, 237, 47, 108, 57, 48, 0, 11, 67, 34, 1, 224, 71, 35, 50, 108, 50, 0, 13, 68, 33, 39,
-			199, 120, 71, 39, 88, 65, 108, 55, 0, 12, 68, 28, 215, 199, 120, 36, 107, 65, 108, 55, 0, 0, 18, 70, 197, 23, 199, 197, 23, 192,
-			81, 35, 51, 65, 108, 81, 35, 51, 65, 0, 13, 68, 183, 51, 199, 124, 48, 36, 57, 72, 108, 65, 0, 15, 69, 182, 37, 48, 70, 16,
-			48, 40, 91, 49, 39, 51, 36, 0, 17, 69, 131, 5, 51, 62, 16, 50, 35, 49, 36, 91, 37, 72, 36, 12, 0, 17, 69, 129, 20, 243,
-			62, 16, 50, 35, 51, 36, 89, 37, 72, 36, 12, 0, 18, 70, 128, 120, 34, 197, 23, 192, 50, 108, 50, 39, 81, 36, 51, 35, 65, 0,
-			17, 69, 125, 50, 159, 79, 0, 65, 39, 89, 47, 35, 65, 89, 36, 49, 0, 17, 69, 124, 209, 213, 70, 16, 65, 39, 107, 108, 89, 36,
-			51, 36, 12, 0, 16, 69, 109, 24, 136, 68, 240, 83, 39, 51, 40, 71, 39, 51, 72, 0, 12, 67, 87, 51, 97, 89, 36, 57, 107, 36,
-			12, 0, 11, 67, 76, 131, 97, 89, 39, 71, 107, 36, 0, 12, 67, 74, 17, 207, 88, 39, 107, 107, 108, 72, 0, 13, 68, 40, 231, 199,
-			124, 47, 39, 101, 65, 108, 65, 0, 16, 69, 32, 229, 51, 62, 16, 71, 35, 101, 91, 37, 72, 36, 12, 0, 16, 70, 31, 52, 162, 41,
-			23, 192, 37, 88, 39, 47, 36, 51, 65, 0, 16, 70, 29, 50, 179, 128, 118, 192, 36, 89, 47, 37, 50, 108, 83, 0, 16, 70, 28, 168,
-			173, 205, 55, 192, 39, 47, 39, 48, 37, 89, 65, 0, 14, 68, 28, 168, 71, 124, 36, 47, 47, 36, 107, 108, 65, 0, 12, 68, 28, 167,
-			199, 124, 36, 47, 65, 108, 65, 0, 18, 70, 10, 12, 83, 41, 23, 192, 108, 50, 81, 36, 89, 47, 51, 39, 65, 0, 0, 14, 68, 204,
-			136, 147, 40, 57, 39, 71, 40, 89, 35, 47, 0, 22, 72, 193, 236, 223, 30, 3, 7, 70, 32, 49, 36, 55, 37, 65, 108, 50, 75, 108,
-			51, 39, 0, 13, 68, 192, 167, 199, 128, 49, 36, 47, 65, 108, 50, 0, 13, 68, 182, 247, 199, 128, 48, 36, 90, 65, 108, 50, 0, 13,
-			68, 182, 12, 71, 128, 48, 35, 50, 81, 108, 50, 0, 13, 68, 136, 195, 199, 128, 84, 36, 75, 72, 108, 50, 0, 13, 68, 129, 151, 199,
-			128, 50, 39, 19, 65, 108, 50, 0, 15, 68, 125, 177, 209, 112, 65, 39, 83, 108, 51, 36, 104, 17, 0, 15, 68, 125, 148, 17, 40, 65,
-			35, 19, 88, 36, 51, 35, 47, 0, 11, 67, 124, 210, 0, 65, 39, 107, 36, 71, 0, 13, 68, 120, 136, 7, 128, 55, 39, 71, 50, 108,
-			50, 0, 17, 69, 113, 21, 31, 29, 224, 104, 17, 36, 51, 36, 91, 65, 108, 55, 0, 12, 67, 112, 133, 243, 104, 17, 36, 71, 47, 37,
-			0, 11, 67, 110, 36, 115, 83, 39, 12, 51, 37, 0, 12, 67, 105, 21, 128, 104, 17, 35, 51, 35, 88, 0, 12, 68, 100, 183, 199, 128,
-			39, 89, 65, 108, 50, 0, 13, 68, 81, 24, 135, 128, 91, 36, 51, 84, 108, 50, 0, 12, 68, 79, 55, 199, 128, 89, 37, 65, 108, 50,
-			0, 12, 68, 78, 40, 71, 128, 89, 39, 107, 108, 50, 0, 13, 68, 77, 231, 199, 128, 89, 35, 55, 65, 108, 50, 0, 11, 67, 70, 44,
-			212, 51, 40, 57, 36, 91, 0, 12, 68, 70, 39, 199, 128, 51, 39, 65, 108, 50, 0, 13, 68, 68, 215, 199, 128, 51, 35, 107, 65, 108,
-			50, 0, 15, 69, 57, 66, 159, 29, 224, 101, 36, 91, 47, 65, 108, 55, 0, 13, 68, 40, 226, 135, 128, 47, 35, 101, 47, 108, 50, 0,
-			13, 67, 40, 212, 115, 47, 35, 107, 35, 51, 51, 37, 0, 16, 69, 34, 20, 77, 29, 224, 71, 36, 107, 35, 51, 107, 108, 55, 0, 13,
-			68, 34, 18, 135, 128, 71, 39, 107, 47, 108, 50, 0, 14, 68, 33, 76, 19, 40, 71, 36, 91, 49, 35, 89, 47, 0, 14, 68, 32, 252,
-			223, 128, 71, 35, 72, 57, 39, 65, 50, 0, 11, 68, 31, 55, 199, 128, 37, 65, 108, 50, 0, 13, 69, 31, 51, 198, 29, 224, 37, 72,
-			36, 108, 55, 0, 15, 69, 30, 2, 141, 29, 224, 36, 50, 47, 36, 107, 108, 55, 0, 13, 68, 29, 231, 199, 128, 36, 55, 36, 65, 108,
-			50, 0, 16, 70, 29, 228, 199, 60, 114, 128, 39, 89, 89, 108, 72, 108, 47, 0, 15, 69, 29, 18, 141, 29, 224, 36, 51, 47, 36, 107,
-			108, 55, 0, 15, 69, 10, 4, 95, 29, 224, 108, 50, 39, 51, 65, 108, 55, 0, 12, 68, 9, 231, 199, 128, 108, 55, 65, 108, 50, 0,
-			0, 16, 70, 192, 114, 135, 122, 44, 64, 49, 108, 47, 108, 55, 39, 81, 0, 18, 70, 181, 225, 202, 110, 36, 95, 48, 36, 55, 108, 47,
-			83, 39, 51, 65, 0, 11, 67, 137, 53, 192, 84, 35, 89, 35, 47, 0, 20, 70, 134, 35, 148, 41, 24, 64, 107, 39, 84, 35, 101, 91,
-			35, 47, 51, 35, 107, 0, 17, 70, 131, 56, 179, 137, 28, 0, 50, 37, 57, 39, 57, 39, 51, 49, 0, 14, 68, 125, 145, 225, 60, 65,
-			39, 19, 108, 107, 36, 72, 0, 14, 68, 124, 193, 225, 60, 65, 39, 75, 108, 107, 36, 72, 0, 18, 70, 83, 7, 200, 29, 24, 64, 91,
-			36, 49, 35, 65, 71, 108, 51, 36, 0, 11, 67, 77, 21, 192, 89, 35, 51, 35, 47, 0, 19, 70, 76, 120, 10, 207, 20, 95, 89, 108,
-			50, 47, 37, 81, 36, 51, 35, 65, 0, 12, 67, 76, 118, 145, 89, 108, 104, 17, 35, 51, 0, 13, 68, 69, 56, 160, 60, 51, 36, 89,
-			40, 50, 72, 0, 18, 70, 63, 49, 219, 68, 124, 95, 72, 37, 57, 108, 83, 51, 108, 81, 65, 0, 15, 69, 61, 225, 209, 29, 240, 72,
-			36, 55, 108, 51, 108, 65, 0, 17, 70, 58, 33, 209, 193, 56, 64, 101, 108, 51, 49, 39, 89, 36, 12, 0, 19, 70, 33, 119, 159, 206,
-			36, 192, 71, 35, 47, 55, 35, 65, 37, 57, 40, 89, 0, 15, 68, 33, 24, 160, 60, 71, 36, 51, 35, 84, 35, 50, 72, 0, 13, 68,
-			33, 17, 207, 132, 71, 39, 51, 108, 72, 36, 0, 19, 70, 32, 247, 34, 29, 24, 64, 71, 35, 72, 104, 17, 35, 84, 108, 51, 36, 0,
-			17, 70, 32, 119, 155, 93, 24, 64, 71, 36, 55, 83, 36, 47, 51, 36, 0, 15, 69, 29, 226, 179, 29, 240, 36, 55, 47, 37, 57, 108,
-			65, 0, 13, 68, 29, 177, 207, 132, 36, 83, 108, 72, 36, 107, 0, 17, 70, 29, 28, 71, 131, 52, 223, 39, 51, 81, 108, 50, 37, 89,
-			65, 0, 19, 70, 10, 1, 200, 123, 52, 223, 108, 50, 108, 71, 39, 55, 37, 89, 65, 89, 0, 12, 68, 8, 232, 160, 60, 108, 101, 40,
-			50, 72, 0, 0, 14, 69, 188, 124, 30, 206, 0, 90, 108, 49, 55, 37, 50, 0, 17, 69, 125, 145, 212, 68, 160, 65, 39, 19, 108, 91,
-			36, 51, 35, 47, 0, 11, 67, 124, 220, 0, 65, 35, 107, 35, 49, 0, 11, 67, 122, 236, 0, 55, 35, 76, 35, 49, 0, 12, 67, 121,
-			161, 210, 55, 39, 104, 17, 108, 88, 0, 15, 68, 113, 23, 215, 204, 104, 17, 35, 51, 65, 35, 47, 37, 0, 15, 69, 81, 252, 209, 30,
-			0, 91, 36, 65, 37, 51, 108, 50, 0, 14, 68, 63, 2, 145, 204, 72, 39, 49, 47, 39, 51, 37, 0, 19, 70, 42, 36, 72, 136, 164,
-			96, 47, 40, 51, 71, 39, 47, 36, 51, 35, 50, 0, 12, 68, 40, 124, 19, 204, 47, 108, 49, 89, 37, 0, 14, 68, 33, 18, 145, 204,
-			71, 35, 51, 47, 35, 51, 37, 0, 21, 71, 32, 232, 145, 32, 232, 135, 32, 71, 39, 101, 39, 51, 39, 71, 36, 101, 108, 71, 0, 18,
-			70, 9, 225, 241, 29, 20, 224, 108, 55, 108, 81, 108, 51, 89, 39, 50, 0, 0, 11, 67, 197, 4, 64, 81, 39, 88, 35, 51, 0, 16,
-			69, 194, 216, 33, 31, 16, 49, 39, 48, 36, 50, 107, 108, 81, 0, 17, 69, 193, 244, 72, 128, 240, 49, 35, 65, 35, 51, 71, 35, 50,
-			72, 0, 15, 69, 182, 36, 71, 52, 240, 48, 40, 51, 35, 107, 35, 72, 0, 13, 68, 181, 24, 135, 68, 48, 35, 51, 84, 108, 51, 0,
-			11, 67, 136, 164, 64, 84, 35, 47, 35, 51, 0, 19, 71, 120, 119, 199, 71, 12, 211, 124, 55, 108, 65, 108, 51, 49, 37, 89, 65, 0,
-			15, 69, 110, 40, 10, 207, 0, 83, 39, 50, 36, 47, 37, 49, 0, 15, 69, 80, 117, 8, 128, 240, 91, 108, 91, 71, 35, 50, 72, 0,
-			16, 69, 77, 242, 30, 207, 0, 89, 35, 65, 71, 39, 55, 37, 49, 0, 15, 69, 77, 19, 136, 28, 240, 89, 39, 51, 101, 71, 108, 72,
-			0, 15, 68, 70, 212, 74, 68, 51, 36, 48, 39, 51, 47, 36, 51, 0, 10, 67, 57, 100, 64, 101, 36, 88, 51, 0, 11, 67, 57, 36,
-			64, 101, 35, 88, 35, 51, 0, 19, 70, 52, 248, 141, 76, 114, 0, 107, 35, 72, 72, 39, 107, 36, 89, 108, 71, 0, 15, 69, 35, 52,
-			76, 128, 240, 71, 37, 51, 75, 35, 50, 72, 0, 15, 69, 32, 248, 33, 28, 240, 71, 35, 72, 50, 35, 107, 108, 0, 18, 70, 32, 246,
-			209, 48, 119, 192, 71, 35, 72, 83, 35, 51, 75, 108, 65, 0, 19, 70, 32, 119, 150, 70, 36, 97, 71, 36, 88, 88, 35, 51, 40, 51,
-			36, 12, 0, 20, 70, 28, 136, 151, 204, 116, 97, 35, 71, 40, 47, 35, 57, 57, 108, 51, 36, 12, 0, 0, 8, 66, 187, 0, 76, 36,
-			49, 0, 16, 69, 125, 195, 199, 71, 48, 65, 36, 104, 17, 72, 108, 51, 37, 0, 16, 69, 109, 19, 226, 79, 48, 83, 36, 51, 72, 39,
-			12, 89, 37, 0, 14, 69, 31, 2, 51, 71, 48, 36, 49, 71, 37, 51, 37, 0, 16, 70, 30, 36, 111, 206, 1, 222, 39, 51, 90, 37,
-			50, 108, 55, 0, 0, 11, 67, 197, 44, 209, 81, 39, 88, 37, 51, 0, 21, 72, 191, 56, 138, 31, 2, 179, 77, 240, 90, 36, 39, 47,
-			108, 49, 47, 37, 89, 65, 0, 17, 70, 182, 36, 76, 136, 115, 192, 48, 40, 51, 75, 35, 84, 108, 72, 0, 16, 69, 181, 20, 202, 29,
-			16, 48, 35, 51, 35, 89, 47, 108, 51, 0, 23, 72, 130, 17, 224, 60, 120, 49, 30, 0, 50, 35, 107, 108, 50, 72, 108, 50, 36, 81,
-			108, 50, 0, 14, 67, 127, 52, 209, 65, 39, 57, 35, 89, 89, 35, 51, 0, 11, 67, 125, 76, 209, 65, 39, 91, 37, 51, 0, 14, 67,
-			125, 67, 149, 65, 39, 91, 35, 101, 101, 35, 89, 0, 12, 67, 120, 118, 145, 55, 108, 104, 17, 35, 51, 0, 15, 69, 108, 116, 159, 41,
-			16, 83, 108, 88, 65, 36, 47, 51, 0, 11, 67, 81, 152, 145, 91, 39, 19, 40, 51, 0, 11, 67, 78, 43, 81, 89, 40, 48, 36, 51,
-			0, 18, 70, 76, 161, 209, 56, 120, 0, 89, 35, 47, 47, 108, 51, 101, 108, 50, 0, 16, 70, 75, 60, 95, 138, 3, 192, 88, 37, 81,
-			65, 39, 50, 72, 0, 21, 72, 68, 115, 243, 192, 119, 179, 77, 240, 51, 108, 72, 37, 49, 108, 55, 37, 89, 65, 0, 11, 67, 63, 8,
-			145, 72, 36, 49, 39, 51, 0, 15, 67, 41, 172, 209, 47, 35, 104, 17, 35, 57, 57, 39, 51, 0, 18, 70, 40, 231, 209, 30, 24, 64,
-			47, 39, 101, 65, 51, 108, 107, 36, 12, 0, 19, 70, 33, 23, 17, 30, 24, 64, 71, 35, 51, 104, 17, 35, 51, 108, 107, 36, 0, 21,
-			72, 30, 216, 145, 42, 40, 51, 77, 240, 39, 48, 39, 51, 47, 40, 50, 37, 89, 65, 0, 18, 70, 29, 50, 155, 28, 248, 64, 36, 89,
-			47, 36, 83, 108, 72, 36, 12, 0, 0, 18, 70, 192, 116, 79, 69, 241, 224, 49, 108, 51, 72, 35, 51, 65, 108, 50, 0, 17, 70, 183,
-			53, 7, 32, 241, 224, 48, 37, 91, 108, 71, 72, 108, 50, 0, 15, 69, 181, 28, 51, 129, 32, 48, 36, 51, 49, 37, 50, 88, 0, 20,
-			70, 133, 23, 210, 63, 17, 224, 107, 39, 51, 65, 39, 88, 72, 36, 81, 108, 50, 0, 12, 67, 133, 23, 210, 107, 39, 51, 65, 39, 88,
-			0, 18, 70, 84, 220, 226, 131, 52, 202, 89, 35, 107, 57, 39, 50, 37, 89, 47, 0, 15, 69, 60, 119, 218, 30, 0, 72, 108, 65, 104,
-			17, 108, 50, 0, 18, 70, 58, 37, 8, 56, 161, 224, 101, 39, 91, 71, 35, 101, 47, 108, 50, 0, 18, 70, 43, 52, 98, 193, 241, 224,
-			47, 37, 51, 39, 49, 35, 65, 108, 50, 0, 18, 70, 10, 209, 209, 41, 241, 224, 108, 48, 108, 51, 47, 36, 65, 108, 50, 0, 0, 17,
-			70, 195, 55, 162, 124, 164, 64, 49, 37, 55, 40, 65, 36, 47, 51, 0, 8, 66, 190, 0, 90, 36, 50, 0, 11, 67, 136, 123, 83, 84,
-			108, 48, 35, 89, 0, 11, 67, 130, 44, 211, 50, 36, 84, 37, 89, 0, 19, 71, 128, 114, 179, 131, 24, 71, 124, 50, 108, 47, 37, 50,
-			81, 107, 108, 65, 0, 9, 66, 124, 240, 6, 65, 39, 72, 0, 13, 68, 111, 55, 138, 68, 83, 37, 55, 47, 36, 51, 0, 14, 68, 109,
-			225, 212, 68, 83, 36, 55, 108, 91, 36, 51, 0, 10, 67, 101, 24, 147, 35, 51, 40, 89, 0, 14, 68, 70, 44, 80, 68, 51, 40, 81,
-			39, 88, 35, 51, 0, 18, 70, 41, 23, 226, 124, 164, 64, 47, 36, 51, 65, 39, 65, 36, 47, 51, 0, 20, 70, 32, 232, 136, 71, 51,
-			225, 71, 39, 101, 39, 12, 71, 39, 51, 37, 72, 36, 0, 15, 69, 29, 60, 32, 29, 48, 36, 89, 49, 36, 50, 108, 89, 0, 17, 70,
-			10, 3, 226, 124, 164, 64, 108, 50, 72, 39, 65, 36, 47, 51, 0, 0, 11, 67, 197, 225, 200, 81, 39, 55, 108, 71, 0, 18, 70, 182,
-			36, 96, 137, 4, 115, 48, 40, 51, 50, 39, 88, 35, 51, 37, 0, 18, 70, 182, 36, 89, 79, 4, 115, 48, 40, 51, 35, 89, 49, 35,
-			51, 37, 0, 22, 71, 109, 24, 148, 128, 252, 71, 128, 83, 39, 51, 40, 91, 35, 50, 72, 36, 81, 108, 50, 0, 20, 71, 70, 36, 148,
-			192, 116, 71, 128, 51, 40, 88, 91, 36, 49, 108, 51, 108, 50, 0, 21, 71, 70, 33, 224, 197, 19, 199, 128, 51, 35, 84, 108, 50, 81,
-			35, 51, 72, 108, 50, 0, 12, 67, 57, 36, 76, 101, 35, 88, 51, 35, 75, 0, 21, 71, 43, 12, 199, 56, 172, 71, 128, 47, 35, 49,
-			57, 108, 101, 47, 36, 81, 108, 50, 0, 22, 72, 31, 56, 10, 70, 5, 32, 29, 224, 37, 50, 47, 36, 51, 50, 35, 91, 50, 108, 55,
-			0, 21, 71, 30, 2, 161, 31, 55, 199, 128, 36, 50, 47, 36, 107, 108, 57, 36, 65, 108, 50, 0, 0, 19, 70, 181, 52, 78, 136, 120,
-			81, 48, 36, 89, 35, 51, 101, 108, 107, 35, 51, 0, 14, 69, 75, 53, 25, 137, 16, 88, 37, 91, 39, 40, 51, 0, 18, 70, 75, 50,
-			7, 194, 1, 209, 88, 37, 71, 108, 49, 36, 50, 108, 51, 0, 20, 70, 61, 28, 199, 194, 1, 209, 72, 35, 51, 57, 108, 10, 49, 36,
-			50, 108, 51, 0, 11, 67, 40, 204, 209, 47, 35, 75, 37, 51, 0, 16, 69, 33, 227, 226, 73, 16, 71, 39, 55, 72, 39, 88, 36, 51,
-			0, 11, 67, 33, 92, 209, 71, 35, 89, 37, 51, 0, 19, 70, 28, 131, 199, 120, 248, 81, 35, 71, 35, 72, 39, 72, 72, 35, 107, 51,
-			0, 0, 12, 67, 197, 28, 128, 81, 36, 51, 36, 57, 36, 0, 12, 67, 193, 28, 128, 49, 39, 51, 36, 57, 36, 0, 16, 69, 181, 23,
-			135, 81, 32, 48, 36, 51, 55, 108, 91, 36, 88, 0, 17, 69, 125, 50, 161, 50, 0, 65, 39, 89, 47, 35, 107, 75, 35, 50, 0, 14,
-			67, 125, 23, 202, 65, 35, 51, 36, 65, 65, 35, 47, 0, 12, 67, 121, 161, 202, 55, 39, 104, 17, 108, 47, 0, 19, 70, 57, 23, 212,
-			30, 28, 192, 101, 39, 51, 51, 35, 65, 91, 108, 107, 37, 0, 22, 72, 29, 251, 81, 204, 119, 179, 76, 160, 35, 65, 48, 36, 51, 57,
-			108, 55, 37, 89, 47, 0, 0, 17, 70, 198, 36, 72, 198, 36, 64, 81, 40, 51, 71, 36, 81, 40, 51, 0, 8, 66, 194, 0, 49, 39,
-			50, 0, 19, 70, 193, 251, 81, 78, 36, 64, 49, 39, 65, 48, 36, 51, 36, 89, 39, 51, 0, 13, 68, 182, 248, 135, 192, 48, 36, 90,
-			84, 108, 49, 0, 18, 70, 181, 232, 179, 124, 164, 64, 48, 36, 55, 84, 37, 65, 36, 47, 51, 0, 11, 67, 124, 229, 0, 65, 39, 101,
-			35, 91, 0, 10, 67, 110, 36, 79, 83, 39, 51, 72, 0, 10, 67, 101, 248, 143, 35, 65, 40, 72, 0, 12, 67, 81, 69, 79, 91, 36,
-			91, 89, 35, 72, 0, 21, 71, 79, 52, 71, 121, 247, 162, 192, 89, 36, 57, 51, 39, 55, 65, 39, 55, 40, 49, 0, 15, 69, 78, 3,
-			209, 137, 48, 89, 35, 50, 72, 51, 40, 89, 0, 11, 67, 77, 152, 143, 89, 39, 19, 40, 72, 0, 13, 67, 32, 228, 79, 71, 36, 101,
-			35, 51, 35, 72, 0, 22, 71, 29, 236, 10, 70, 39, 202, 68, 36, 55, 36, 49, 47, 36, 51, 39, 65, 36, 47, 51, 0, 16, 69, 29,
-			226, 156, 29, 112, 36, 55, 47, 36, 104, 17, 108, 47, 0, 17, 69, 9, 4, 109, 69, 48, 108, 88, 35, 51, 48, 36, 51, 36, 89, 0,
-			11, 65, 4, 6, 107, 35, 65, 88, 36, 12, 0, 0, 11, 67, 182, 44, 212, 48, 40, 57, 36, 91, 0, 13, 67, 125, 147, 242, 65, 36,
-			19, 72, 36, 57, 36, 0, 18, 70, 124, 115, 209, 57, 19, 0, 65, 108, 72, 35, 51, 101, 35, 51, 75, 0, 14, 68, 77, 225, 223, 40,
-			89, 35, 55, 108, 65, 35, 47, 0, 13, 67, 77, 180, 114, 89, 39, 83, 51, 36, 57, 36, 0, 17, 70, 70, 36, 136, 70, 36, 128, 51,
-			40, 88, 71, 36, 51, 40, 88, 0, 13, 67, 53, 180, 114, 107, 39, 83, 51, 36, 57, 36, 0, 17, 69, 32, 210, 34, 55, 32, 71, 39,
-			107, 71, 40, 107, 36, 57, 36, 0, 0, 12, 68, 199, 56, 145, 196, 81, 36, 39, 51, 81, 0, 18, 70, 193, 19, 224, 83, 56, 0, 49,
-			39, 51, 72, 50, 36, 91, 37, 50, 0, 13, 68, 180, 120, 21, 60, 48, 108, 50, 89, 35, 72, 0, 14, 68, 130, 44, 211, 60, 50, 36,
-			84, 37, 89, 35, 72, 0, 18, 70, 127, 60, 17, 137, 242, 145, 65, 37, 49, 51, 39, 65, 36, 47, 51, 0, 11, 67, 121, 193, 192, 55,
-			36, 104, 17, 108, 0, 15, 69, 109, 232, 179, 137, 16, 83, 36, 55, 39, 10, 40, 51, 0, 12, 67, 105, 229, 192, 104, 17, 35, 55, 35,
-			47, 0, 11, 67, 77, 197, 192, 89, 36, 104, 17, 47, 0, 14, 68, 71, 18, 17, 196, 51, 35, 81, 71, 35, 51, 81, 0, 14, 69, 70,
-			35, 212, 137, 16, 51, 40, 72, 91, 40, 51, 0, 10, 67, 61, 225, 192, 72, 36, 55, 108, 0, 0, 15, 69, 137, 225, 243, 28, 160, 84,
-			36, 55, 108, 57, 108, 47, 0, 11, 67, 137, 120, 0, 84, 35, 47, 35, 50, 0, 15, 69, 127, 55, 179, 138, 0, 65, 37, 55, 37, 57,
-			40, 50, 0, 17, 69, 120, 136, 51, 28, 160, 6, 55, 35, 71, 35, 50, 37, 108, 47, 0, 11, 67, 114, 36, 74, 104, 17, 40, 51, 47,
-			0, 16, 69, 77, 28, 81, 30, 0, 89, 35, 51, 81, 36, 51, 108, 50, 0, 16, 68, 77, 20, 209, 200, 89, 39, 51, 89, 39, 51, 36,
-			57, 36, 0, 17, 69, 57, 231, 51, 28, 160, 101, 39, 55, 104, 17, 37, 57, 108, 47, 0, 17, 69, 53, 232, 179, 28, 160, 107, 35, 55,
-			35, 84, 37, 57, 108, 47, 0, 16, 69, 32, 242, 7, 94, 0, 71, 35, 72, 71, 108, 47, 36, 50, 0, 0, 15, 69, 192, 116, 72, 68,
-			240, 49, 108, 51, 71, 39, 51, 72, 0, 11, 67, 74, 44, 199, 88, 39, 12, 57, 108, 0, 15, 69, 62, 36, 72, 68, 240, 72, 40, 51,
-			71, 39, 51, 72, 0, 10, 67, 34, 44, 199, 71, 40, 57, 108, 0, 21, 71, 9, 251, 94, 205, 177, 243, 68, 108, 65, 48, 36, 55, 37,
-			83, 108, 57, 36, 51, 0, 10, 67, 8, 133, 0, 108, 71, 35, 91, 0, 0, 16, 69, 183, 51, 199, 205, 64, 48, 36, 57, 72, 108, 57,
-			36, 91, 0, 14, 68, 133, 18, 17, 40, 107, 36, 51, 71, 36, 51, 47, 0, 14, 68, 125, 236, 34, 40, 65, 35, 55, 35, 49, 40, 47,
-			0, 16, 68, 78, 3, 179, 40, 89, 36, 50, 101, 37, 57, 57, 35, 47, 0, 13, 68, 73, 145, 223, 40, 88, 36, 108, 65, 35, 47, 0,
-			12, 67, 61, 236, 115, 72, 35, 55, 36, 81, 37, 0, 11, 67, 61, 152, 179, 72, 35, 19, 84, 37, 0, 14, 68, 52, 193, 223, 40, 107,
-			36, 75, 108, 65, 35, 47, 0, 11, 67, 50, 12, 115, 75, 35, 50, 81, 37, 0, 15, 68, 34, 5, 19, 40, 71, 36, 50, 36, 91, 35,
-			89, 47, 0, 0, 0, 14, 68, 194, 244, 98, 204, 49, 35, 90, 51, 35, 84, 37, 0, 13, 68, 193, 49, 243, 204, 49, 35, 89, 108, 37,
-			12, 0, 15, 69, 182, 3, 199, 80, 160, 48, 36, 50, 72, 108, 91, 47, 0, 13, 68, 126, 36, 226, 204, 65, 40, 89, 35, 84, 37, 0,
-			16, 69, 124, 163, 243, 76, 160, 65, 36, 47, 39, 72, 37, 89, 47, 0, 16, 69, 109, 24, 148, 76, 160, 83, 39, 51, 40, 91, 39, 89,
-			47, 0, 16, 69, 61, 24, 143, 74, 0, 72, 39, 51, 40, 72, 88, 35, 50, 0, 15, 69, 34, 19, 199, 80, 160, 71, 36, 107, 72, 108,
-			91, 47, 0, 0, 11, 67, 129, 197, 0, 50, 35, 104, 17, 91, 0, 14, 69, 127, 50, 179, 131, 16, 65, 37, 47, 37, 50, 81, 0, 13,
-			67, 124, 132, 71, 65, 39, 71, 35, 51, 51, 108, 0, 16, 69, 109, 20, 202, 28, 240, 83, 36, 51, 36, 89, 47, 108, 72, 0, 13, 67,
-			85, 164, 71, 89, 39, 104, 17, 6, 51, 108, 0, 15, 69, 28, 168, 173, 204, 112, 39, 47, 39, 48, 37, 57, 108, 0, 0, 15, 69, 62,
-			40, 19, 43, 48, 72, 40, 50, 36, 89, 47, 37, 0, 11, 67, 33, 35, 162, 71, 39, 88, 101, 40, 0, 32, 76, 30, 2, 145, 128, 116,
-			243, 138, 1, 222, 205, 50, 128, 35, 50, 47, 36, 51, 50, 108, 89, 37, 57, 39, 50, 108, 55, 37, 89, 47, 0, 10, 67, 9, 66, 179,
-			108, 91, 47, 37, 0, 0, 20, 70, 180, 244, 115, 80, 120, 0, 48, 36, 72, 35, 51, 37, 57, 36, 91, 108, 50, 0, 13, 68, 128, 116,
-			83, 28, 50, 108, 51, 36, 89, 108, 0, 14, 68, 121, 40, 159, 28, 55, 39, 88, 40, 65, 35, 50, 0, 14, 68, 80, 252, 207, 28, 91,
-			35, 72, 37, 72, 35, 50, 0, 14, 68, 62, 19, 143, 28, 72, 36, 107, 101, 39, 72, 108, 0, 17, 70, 32, 116, 179, 123, 52, 240, 71,
-			108, 88, 37, 55, 37, 89, 49, 0, 20, 71, 29, 50, 135, 120, 252, 243, 60, 35, 89, 36, 47, 108, 55, 72, 36, 37, 72, 0, 17, 70,
-			11, 1, 209, 62, 40, 0, 108, 49, 108, 51, 72, 36, 39, 50, 0, 0, 15, 69, 181, 236, 240, 30, 0, 48, 36, 55, 37, 49, 108, 50,
-			0, 13, 68, 181, 225, 224, 136, 48, 36, 55, 108, 50, 39, 0, 17, 70, 128, 116, 136, 29, 229, 0, 50, 108, 88, 71, 108, 55, 36, 91,
-			0, 12, 68, 68, 226, 148, 136, 51, 35, 101, 76, 40, 0, 17, 70, 32, 132, 97, 31, 60, 192, 71, 35, 71, 51, 107, 108, 37, 12, 0,
-			16, 70, 31, 8, 160, 137, 252, 192, 36, 49, 39, 50, 39, 65, 37, 0, 16, 70, 30, 39, 199, 131, 52, 202, 40, 65, 108, 50, 37, 89,
-			47, 0, 19, 70, 29, 151, 135, 53, 100, 74, 35, 19, 55, 108, 107, 35, 88, 51, 35, 47, 0, 0, 8, 66, 206, 0, 57, 36, 50, 0,
-			11, 67, 205, 227, 199, 57, 35, 55, 72, 108, 0, 10, 67, 197, 230, 192, 81, 39, 55, 83, 0, 11, 67, 183, 55, 199, 48, 36, 57, 65,
-			108, 0, 10, 67, 137, 230, 192, 84, 39, 55, 83, 0, 18, 69, 126, 3, 85, 68, 112, 65, 39, 50, 107, 35, 89, 36, 51, 35, 50, 0,
-			18, 69, 125, 178, 142, 68, 112, 65, 39, 83, 47, 35, 101, 35, 51, 35, 50, 0, 16, 69, 124, 194, 34, 68, 112, 65, 35, 75, 71, 40,
-			51, 35, 50, 0, 13, 67, 109, 200, 71, 83, 39, 104, 17, 35, 107, 108, 0, 11, 67, 101, 230, 192, 35, 12, 55, 35, 83, 0, 14, 69,
-			42, 40, 15, 68, 112, 47, 39, 50, 72, 51, 108, 0, 11, 67, 29, 252, 71, 39, 65, 36, 81, 108, 0, 0, 9, 66, 207, 0, 57, 36,
-			6, 49, 0, 18, 70, 193, 66, 179, 132, 124, 243, 49, 35, 91, 47, 37, 107, 108, 37, 12, 0, 12, 67, 193, 24, 30, 49, 39, 51, 50,
-			36, 55, 0, 10, 67, 129, 19, 128, 50, 36, 51, 101, 0, 11, 67, 127, 53, 30, 65, 37, 91, 36, 55, 0, 12, 67, 126, 4, 158, 65,
-			35, 50, 88, 36, 55, 0, 14, 67, 125, 146, 158, 65, 39, 19, 35, 47, 47, 35, 55, 0, 13, 67, 113, 225, 200, 104, 17, 39, 55, 55,
-			108, 71, 0, 12, 67, 77, 232, 158, 89, 36, 55, 55, 40, 55, 0, 15, 69, 42, 36, 96, 42, 32, 47, 39, 51, 36, 50, 47, 39, 0,
-			14, 67, 40, 115, 200, 47, 35, 19, 35, 72, 72, 39, 71, 0, 18, 70, 35, 1, 209, 199, 52, 115, 71, 36, 49, 108, 51, 81, 37, 51,
-			37, 0, 0, 11, 67, 197, 232, 159, 81, 35, 55, 40, 65, 0, 11, 67, 187, 8, 64, 76, 36, 49, 49, 36, 0, 11, 67, 181, 19, 192,
-			48, 35, 51, 35, 72, 0, 14, 68, 181, 18, 33, 28, 48, 39, 51, 71, 35, 107, 108, 0, 11, 67, 135, 52, 159, 107, 37, 88, 39, 65,
-			0, 11, 67, 129, 156, 223, 50, 35, 19, 37, 65, 0, 11, 67, 125, 225, 240, 65, 36, 55, 108, 49, 0, 13, 67, 113, 88, 64, 104, 17,
-			36, 89, 89, 36, 12, 0, 12, 67, 109, 28, 223, 83, 36, 51, 36, 57, 65, 0, 12, 67, 61, 225, 240, 72, 35, 55, 55, 108, 49, 0,
-			11, 67, 53, 51, 192, 107, 35, 89, 35, 72, 0, 11, 67, 49, 51, 192, 75, 35, 89, 35, 72, 0, 11, 67, 33, 232, 155, 71, 36, 55,
-			39, 83, 0, 12, 67, 29, 55, 27, 39, 89, 104, 17, 39, 83, 0, 10, 67, 29, 51, 192, 35, 89, 35, 72, 0, 18, 70, 11, 17, 223,
-			126, 8, 0, 108, 81, 108, 65, 36, 65, 50, 39, 50, 0, 0, 12, 67, 197, 229, 32, 81, 39, 55, 91, 35, 50, 0, 11, 67, 129, 65,
-			202, 50, 36, 91, 108, 47, 0, 10, 67, 125, 236, 0, 65, 36, 55, 49, 0, 13, 67, 125, 227, 92, 65, 39, 55, 107, 35, 104, 17, 0,
-			14, 68, 114, 4, 226, 120, 104, 17, 39, 50, 89, 40, 55, 0, 18, 70, 74, 3, 241, 30, 12, 192, 88, 36, 50, 72, 36, 81, 108, 50,
-			37, 0, 11, 67, 73, 248, 160, 88, 35, 65, 40, 50, 0, 19, 70, 61, 24, 154, 198, 44, 192, 72, 39, 51, 40, 104, 17, 81, 40, 57,
-			36, 0, 11, 67, 34, 28, 224, 71, 36, 107, 37, 50, 0, 13, 68, 34, 3, 243, 120, 71, 35, 50, 72, 37, 55, 0, 16, 69, 30, 35,
-			240, 122, 0, 39, 72, 39, 49, 39, 55, 39, 50, 0, 0, 10, 67, 204, 116, 79, 57, 108, 51, 72, 0, 11, 67, 197, 231, 192, 81, 39,
-			55, 35, 65, 0, 10, 67, 196, 116, 79, 81, 108, 51, 72, 0, 11, 67, 193, 231, 192, 49, 35, 55, 35, 65, 0, 10, 67, 192, 116, 79,
-			49, 108, 51, 72, 0, 12, 67, 181, 234, 225, 48, 36, 55, 55, 36, 12, 0, 11, 67, 137, 231, 192, 84, 36, 55, 35, 65, 0, 10, 67,
-			132, 116, 79, 107, 108, 51, 72, 0, 12, 67, 131, 52, 161, 50, 36, 57, 88, 36, 12, 0, 13, 68, 125, 148, 98, 108, 65, 35, 19, 51,
-			40, 83, 0, 16, 69, 125, 68, 98, 52, 112, 65, 35, 91, 51, 40, 107, 35, 50, 0, 12, 67, 121, 234, 225, 55, 36, 55, 55, 108, 107,
-			0, 13, 67, 113, 234, 225, 104, 17, 39, 55, 55, 36, 12, 0, 9, 67, 101, 231, 192, 36, 55, 65, 0, 12, 67, 83, 20, 79, 91, 36,
-			81, 36, 51, 72, 0, 13, 67, 78, 212, 79, 6, 89, 36, 48, 39, 51, 72, 0, 12, 67, 76, 164, 113, 89, 36, 47, 39, 51, 81, 0,
-			12, 68, 59, 53, 34, 124, 101, 37, 91, 40, 65, 0, 11, 67, 58, 37, 33, 101, 40, 91, 36, 12, 0, 11, 67, 33, 84, 97, 71, 35,
-			89, 51, 36, 0, 0, 20, 70, 197, 19, 225, 124, 124, 243, 81, 36, 51, 72, 36, 107, 35, 65, 108, 37, 12, 0, 15, 68, 193, 228, 82,
-			128, 49, 39, 55, 39, 51, 88, 35, 50, 0, 13, 68, 192, 123, 84, 128, 49, 108, 48, 91, 36, 50, 0, 10, 67, 185, 18, 128, 76, 39,
-			51, 47, 0, 14, 68, 183, 52, 82, 128, 48, 37, 51, 36, 88, 35, 50, 0, 13, 68, 183, 2, 179, 128, 48, 36, 49, 47, 37, 50, 0,
-			12, 67, 181, 231, 200, 48, 39, 55, 39, 65, 71, 0, 15, 68, 180, 244, 82, 128, 48, 36, 72, 35, 51, 88, 35, 50, 0, 18, 70, 180,
-			164, 98, 83, 55, 243, 48, 36, 47, 51, 39, 91, 37, 65, 37, 0, 13, 68, 129, 228, 226, 128, 50, 36, 55, 89, 39, 50, 0, 11, 67,
-			125, 232, 158, 65, 35, 55, 40, 55, 0, 20, 72, 125, 196, 81, 42, 8, 71, 207, 48, 65, 39, 104, 17, 35, 51, 51, 35, 51, 0, 12,
-			67, 125, 116, 72, 65, 39, 47, 51, 36, 71, 0, 13, 68, 125, 76, 51, 128, 65, 36, 91, 49, 37, 50, 0, 12, 67, 124, 209, 204, 65,
-			39, 107, 108, 75, 75, 0, 15, 68, 124, 199, 135, 40, 65, 35, 75, 35, 55, 55, 108, 47, 0, 18, 69, 113, 23, 7, 137, 224, 104, 17,
-			35, 51, 104, 17, 108, 84, 39, 55, 0, 10, 67, 110, 44, 222, 83, 39, 57, 55, 0, 13, 68, 83, 52, 82, 128, 91, 37, 51, 88, 35,
-			50, 0, 14, 68, 76, 119, 51, 128, 89, 108, 104, 17, 36, 57, 50, 0, 16, 69, 74, 3, 27, 205, 224, 88, 35, 50, 75, 36, 83, 37,
-			55, 0, 14, 68, 72, 215, 199, 40, 88, 35, 107, 35, 65, 108, 47, 0, 14, 69, 68, 118, 199, 205, 224, 51, 108, 83, 108, 36, 55, 0,
-			17, 69, 49, 20, 220, 205, 224, 75, 35, 51, 89, 35, 104, 17, 37, 55, 0, 17, 69, 49, 18, 220, 205, 224, 75, 35, 51, 89, 35, 104,
-			17, 37, 55, 0, 15, 68, 40, 252, 235, 128, 47, 35, 72, 35, 57, 57, 39, 50, 0, 15, 68, 35, 54, 240, 128, 71, 37, 57, 35, 83,
-			49, 35, 50, 0, 15, 68, 32, 246, 96, 112, 71, 35, 72, 39, 50, 39, 104, 17, 0, 12, 68, 32, 116, 226, 128, 71, 108, 89, 39, 50,
-			0, 11, 67, 9, 22, 128, 108, 51, 39, 104, 17, 0, 0, 14, 68, 193, 24, 148, 132, 49, 36, 51, 39, 91, 36, 12, 0, 12, 68, 184,
-			116, 112, 132, 76, 108, 51, 49, 36, 0, 14, 68, 181, 56, 145, 60, 48, 35, 89, 84, 39, 51, 72, 0, 17, 69, 129, 252, 200, 69, 240,
-			50, 36, 65, 37, 71, 35, 51, 35, 65, 0, 11, 67, 128, 220, 219, 50, 35, 107, 37, 83, 0, 17, 70, 127, 60, 17, 137, 184, 0, 65,
-			37, 49, 51, 39, 83, 39, 50, 0, 14, 68, 127, 52, 83, 60, 65, 37, 51, 36, 89, 35, 72, 0, 12, 67, 125, 84, 89, 65, 36, 89,
-			51, 35, 19, 0, 15, 68, 125, 55, 171, 132, 65, 39, 89, 35, 55, 55, 35, 107, 0, 12, 67, 125, 28, 223, 65, 35, 51, 57, 35, 65,
-			0, 13, 68, 80, 119, 43, 132, 91, 108, 104, 17, 36, 12, 0, 11, 67, 42, 44, 223, 47, 40, 57, 35, 65, 0, 15, 68, 41, 28, 51,
-			132, 47, 39, 51, 49, 37, 57, 36, 12, 0, 14, 67, 40, 212, 112, 47, 35, 107, 35, 51, 51, 39, 49, 0, 17, 70, 30, 3, 243, 125,
-			76, 0, 35, 50, 72, 37, 65, 36, 91, 49, 0, 18, 70, 29, 54, 209, 31, 56, 0, 36, 89, 83, 35, 51, 108, 57, 36, 50, 0, 11,
-			67, 9, 244, 91, 108, 65, 39, 51, 83, 0, 0, 13, 68, 194, 4, 226, 120, 49, 39, 50, 89, 40, 55, 0, 10, 67, 192, 116, 74, 49,
-			108, 51, 47, 0, 10, 67, 184, 116, 74, 76, 108, 51, 47, 0, 10, 67, 180, 116, 74, 48, 108, 51, 47, 0, 15, 69, 124, 252, 209, 30,
-			0, 65, 39, 72, 37, 51, 108, 50, 0, 13, 67, 113, 16, 160, 104, 17, 39, 51, 19, 108, 50, 0, 9, 67, 101, 184, 128, 35, 83, 84,
-			0, 13, 67, 93, 28, 220, 47, 35, 51, 37, 104, 17, 36, 0, 16, 68, 88, 245, 145, 32, 88, 36, 72, 72, 36, 88, 35, 51, 71, 0,
-			12, 67, 84, 248, 156, 89, 35, 72, 40, 104, 17, 0, 10, 67, 69, 184, 128, 51, 39, 83, 40, 0, 17, 70, 60, 116, 79, 30, 7, 128,
-			72, 108, 51, 72, 108, 50, 36, 55, 0, 10, 67, 60, 116, 74, 72, 108, 51, 47, 0, 25, 73, 48, 252, 207, 29, 226, 149, 139, 50, 0,
-			75, 35, 72, 37, 72, 39, 47, 47, 35, 89, 84, 37, 71, 0, 13, 68, 40, 167, 199, 48, 47, 39, 47, 65, 108, 75, 0, 12, 68, 31,
-			7, 179, 120, 35, 49, 55, 37, 55, 0, 13, 68, 30, 33, 243, 120, 35, 84, 108, 57, 36, 55, 0, 24, 73, 28, 236, 209, 29, 226, 149,
-			139, 50, 0, 35, 101, 37, 51, 39, 47, 47, 35, 89, 84, 37, 71, 0, 0, 11, 67, 193, 49, 207, 49, 36, 89, 108, 72, 0, 11, 67,
-			185, 178, 161, 76, 36, 83, 47, 36, 0, 16, 69, 130, 36, 112, 70, 16, 50, 40, 51, 49, 39, 51, 36, 12, 0, 17, 69, 129, 252, 206,
-			68, 240, 50, 36, 65, 37, 101, 35, 51, 35, 72, 0, 15, 68, 126, 39, 171, 108, 65, 39, 19, 35, 55, 55, 36, 83, 0, 17, 69, 124,
-			161, 209, 194, 16, 65, 39, 47, 108, 51, 36, 49, 36, 12, 0, 12, 67, 113, 85, 64, 104, 17, 36, 89, 35, 89, 0, 9, 67, 101, 244,
-			64, 39, 65, 51, 0, 15, 69, 71, 4, 199, 130, 16, 51, 39, 49, 89, 108, 50, 36, 0, 18, 70, 70, 34, 51, 63, 55, 192, 51, 40,
-			71, 37, 72, 37, 57, 39, 65, 0, 14, 68, 68, 115, 243, 124, 51, 108, 72, 37, 57, 39, 65, 0, 14, 67, 42, 28, 225, 47, 35, 107,
-			37, 12, 57, 36, 12, 0, 12, 67, 34, 3, 207, 71, 35, 50, 72, 35, 72, 0, 19, 70, 33, 50, 177, 30, 7, 192, 71, 35, 89, 47,
-			36, 81, 108, 50, 35, 65, 0, 14, 68, 33, 17, 243, 124, 71, 35, 51, 108, 57, 35, 65, 0, 17, 70, 32, 124, 211, 43, 55, 192, 71,
-			36, 19, 37, 89, 47, 37, 65, 0, 17, 69, 29, 118, 199, 206, 16, 36, 47, 83, 108, 37, 57, 57, 36, 12, 0, 14, 68, 29, 59, 81,
-			192, 36, 89, 48, 35, 51, 35, 49, 0, 16, 70, 28, 136, 160, 103, 55, 192, 35, 71, 40, 50, 35, 37, 65, 0, 0, 13, 68, 197, 235,
-			179, 128, 81, 39, 55, 76, 37, 50, 0, 11, 67, 197, 27, 64, 81, 39, 51, 39, 48, 0, 13, 68, 187, 59, 83, 40, 76, 37, 48, 89,
-			36, 47, 0, 13, 67, 126, 5, 51, 65, 39, 12, 50, 6, 91, 37, 0, 14, 67, 125, 164, 51, 65, 39, 104, 17, 35, 88, 88, 37, 0,
-			18, 70, 109, 227, 211, 180, 114, 128, 83, 36, 55, 72, 36, 89, 48, 108, 47, 0, 14, 68, 109, 22, 162, 128, 83, 39, 51, 104, 17, 40,
-			50, 0, 18, 70, 108, 124, 10, 137, 28, 222, 83, 108, 49, 47, 39, 51, 57, 36, 55, 0, 15, 68, 93, 22, 243, 128, 47, 35, 51, 35,
-			83, 36, 57, 50, 0, 16, 69, 74, 3, 8, 205, 224, 88, 35, 50, 75, 35, 71, 37, 55, 0, 13, 68, 73, 22, 243, 128, 88, 39, 51,
-			83, 37, 50, 0, 13, 68, 71, 51, 98, 128, 51, 36, 57, 107, 40, 50, 0, 12, 68, 42, 35, 115, 128, 47, 39, 107, 37, 50, 0, 13,
-			68, 40, 231, 243, 128, 47, 35, 101, 65, 37, 50, 0, 14, 68, 30, 3, 31, 128, 35, 50, 75, 39, 65, 35, 50, 0, 17, 70, 29, 50,
-			135, 128, 136, 158, 36, 89, 47, 108, 50, 71, 39, 55, 0, 15, 69, 29, 19, 200, 205, 224, 35, 51, 72, 36, 71, 37, 55, 0, 0, 18,
-			70, 193, 24, 159, 137, 40, 159, 49, 39, 51, 39, 65, 39, 88, 39, 65, 0, 14, 68, 193, 17, 243, 132, 49, 36, 51, 108, 57, 36, 12,
-			0, 17, 70, 192, 116, 113, 70, 40, 64, 49, 108, 51, 81, 39, 51, 40, 107, 0, 13, 68, 180, 117, 32, 132, 48, 108, 91, 50, 36, 12,
-			0, 17, 70, 135, 52, 98, 197, 236, 219, 107, 37, 51, 39, 81, 55, 37, 83, 0, 18, 70, 124, 115, 209, 33, 19, 192, 65, 108, 72, 36,
-			51, 71, 39, 51, 72, 0, 12, 67, 113, 180, 192, 104, 17, 35, 83, 35, 89, 0, 17, 70, 63, 23, 199, 43, 60, 0, 72, 39, 81, 65,
-			108, 47, 37, 49, 0, 16, 69, 62, 40, 19, 41, 240, 72, 40, 50, 36, 89, 47, 35, 65, 0, 18, 70, 61, 59, 98, 43, 52, 159, 72,
-			36, 89, 48, 39, 47, 37, 88, 65, 0, 18, 70, 57, 27, 147, 30, 8, 64, 101, 35, 51, 76, 39, 89, 108, 50, 36, 0, 17, 70, 40,
-			104, 145, 205, 40, 64, 47, 36, 10, 39, 51, 37, 88, 36, 0, 17, 70, 32, 236, 222, 30, 8, 64, 71, 35, 101, 37, 55, 108, 50, 36,
-			0, 15, 69, 31, 56, 15, 205, 240, 37, 50, 72, 37, 57, 39, 65, 0, 20, 70, 28, 163, 71, 63, 56, 64, 36, 47, 47, 36, 107, 108,
-			72, 37, 57, 36, 12, 0, 16, 70, 11, 4, 219, 137, 19, 192, 108, 49, 89, 83, 39, 51, 72, 0, 0, 11, 67, 197, 17, 210, 81, 39,
-			51, 108, 88, 0, 18, 70, 193, 228, 98, 111, 55, 128, 49, 39, 55, 39, 51, 39, 83, 37, 55, 0, 10, 67, 185, 56, 128, 76, 39, 89,
-			40, 0, 17, 70, 182, 36, 179, 41, 24, 160, 48, 39, 88, 37, 47, 51, 39, 50, 0, 14, 68, 181, 12, 209, 80, 48, 35, 88, 37, 51,
-			36, 91, 0, 18, 70, 129, 84, 71, 120, 252, 224, 50, 35, 89, 51, 36, 72, 72, 37, 50, 0, 17, 69, 125, 241, 209, 76, 160, 65, 39,
-			65, 108, 51, 36, 89, 35, 47, 0, 16, 69, 122, 12, 17, 30, 0, 55, 35, 50, 49, 35, 51, 108, 50, 0, 20, 70, 113, 84, 84, 205,
-			28, 224, 104, 17, 35, 89, 51, 36, 91, 37, 51, 37, 50, 0, 16, 70, 101, 36, 71, 27, 55, 128, 36, 88, 51, 108, 37, 12, 55, 0,
-			16, 69, 78, 43, 81, 126, 0, 89, 40, 48, 36, 51, 65, 35, 50, 0, 11, 67, 61, 24, 128, 72, 36, 51, 39, 12, 0, 18, 69, 60,
-			226, 145, 138, 0, 72, 39, 101, 4, 47, 35, 6, 51, 40, 50, 0, 11, 67, 33, 232, 174, 71, 35, 55, 40, 76, 0, 10, 67, 33, 24,
-			128, 71, 39, 51, 39, 0, 16, 69, 32, 225, 209, 76, 160, 71, 39, 101, 108, 51, 36, 89, 47, 0, 17, 69, 32, 119, 15, 68, 160, 71,
-			108, 104, 17, 39, 72, 51, 35, 47, 0, 18, 70, 28, 232, 135, 131, 49, 202, 36, 101, 84, 108, 50, 37, 57, 108, 47, 0, 0, 14, 68,
-			197, 17, 223, 68, 81, 36, 51, 108, 65, 36, 51, 0, 11, 67, 194, 39, 211, 49, 40, 65, 36, 89, 0, 13, 68, 185, 232, 135, 68, 76,
-			36, 55, 84, 108, 51, 0, 23, 71, 181, 225, 224, 40, 116, 115, 124, 48, 36, 55, 108, 50, 36, 47, 108, 51, 37, 57, 39, 65, 0, 19,
-			70, 180, 244, 83, 136, 226, 161, 48, 36, 72, 35, 51, 89, 40, 101, 47, 36, 0, 18, 70, 136, 120, 7, 63, 55, 192, 84, 108, 50, 108,
-			72, 37, 57, 39, 65, 0, 16, 69, 136, 116, 115, 42, 16, 84, 108, 51, 37, 57, 36, 47, 36, 0, 16, 70, 130, 37, 51, 63, 55, 192,
-			50, 39, 91, 37, 72, 37, 65, 0, 13, 68, 125, 151, 199, 68, 65, 36, 19, 65, 108, 51, 0, 21, 70, 124, 166, 85, 32, 120, 33, 65,
-			39, 47, 36, 35, 89, 89, 36, 71, 108, 50, 36, 0, 12, 67, 120, 129, 211, 6, 55, 36, 71, 108, 89, 0, 12, 67, 113, 116, 64, 104,
-			17, 35, 47, 35, 51, 0, 11, 67, 100, 129, 211, 35, 71, 71, 108, 89, 0, 14, 68, 89, 18, 15, 68, 88, 35, 51, 71, 72, 35, 51,
-			0, 13, 68, 81, 232, 135, 68, 91, 35, 55, 84, 108, 51, 0, 13, 68, 77, 72, 135, 68, 89, 36, 91, 39, 108, 51, 0, 15, 69, 62,
-			44, 71, 130, 16, 72, 39, 81, 108, 50, 36, 12, 0, 12, 68, 58, 33, 225, 68, 101, 108, 107, 35, 51, 0, 14, 68, 50, 33, 225, 68,
-			75, 35, 84, 108, 107, 36, 51, 0, 16, 69, 44, 120, 34, 206, 16, 89, 108, 50, 35, 84, 37, 57, 36, 0, 17, 70, 40, 226, 142, 136,
-			114, 0, 47, 35, 101, 47, 36, 101, 108, 71, 0, 15, 69, 32, 226, 135, 130, 16, 71, 35, 101, 47, 108, 50, 36, 0, 18, 70, 30, 2,
-			161, 31, 55, 192, 36, 50, 47, 36, 107, 108, 57, 35, 65, 0, 15, 69, 29, 244, 79, 28, 240, 35, 65, 39, 51, 72, 108, 72, 0, 15,
-			69, 29, 180, 199, 130, 16, 35, 83, 89, 108, 50, 36, 12, 0, 20, 70, 28, 170, 205, 28, 252, 225, 36, 47, 47, 36, 107, 108, 72, 37,
-			57, 36, 12, 0, 15, 69, 28, 170, 205, 28, 240, 36, 47, 47, 36, 107, 108, 72, 0, 0, 12, 67, 193, 177, 212, 49, 35, 83, 83, 108,
-			91, 0, 11, 67, 192, 120, 84, 49, 108, 107, 36, 91, 0, 15, 69, 129, 180, 199, 131, 48, 50, 35, 83, 89, 108, 50, 37, 0, 11, 67,
-			124, 164, 98, 65, 36, 47, 51, 39, 0, 13, 67, 113, 225, 212, 104, 17, 35, 55, 55, 108, 91, 0, 11, 67, 109, 225, 212, 83, 36, 55,
-			108, 91, 0, 11, 67, 108, 216, 179, 83, 35, 107, 84, 108, 0, 11, 67, 108, 115, 84, 83, 108, 107, 36, 91, 0, 12, 67, 85, 184, 179,
-			89, 35, 83, 35, 84, 37, 0, 22, 71, 69, 36, 98, 29, 60, 226, 128, 51, 36, 88, 36, 51, 84, 108, 89, 37, 57, 39, 50, 0, 12,
-			67, 61, 244, 98, 72, 35, 65, 35, 51, 40, 0, 15, 69, 58, 35, 240, 83, 48, 101, 39, 72, 49, 39, 91, 37, 0, 15, 69, 55, 56,
-			162, 131, 48, 107, 36, 57, 84, 40, 50, 37, 0, 10, 67, 35, 56, 51, 71, 37, 50, 37, 0, 16, 69, 34, 3, 240, 83, 48, 71, 35,
-			50, 72, 49, 36, 91, 37, 0, 13, 68, 34, 3, 199, 72, 71, 36, 50, 72, 108, 88, 0, 16, 69, 33, 20, 199, 131, 48, 71, 36, 51,
-			36, 89, 108, 50, 37, 0, 20, 71, 29, 28, 7, 128, 252, 212, 128, 36, 51, 49, 108, 50, 72, 37, 91, 36, 50, 0, 11, 67, 8, 132,
-			98, 108, 71, 36, 51, 40, 0, 0, 18, 70, 129, 197, 31, 31, 56, 64, 50, 35, 104, 17, 91, 65, 108, 57, 36, 0, 14, 69, 128, 119,
-			207, 29, 16, 50, 108, 65, 72, 108, 51, 0, 15, 69, 127, 56, 7, 197, 16, 65, 37, 50, 108, 81, 35, 51, 0, 19, 70, 125, 18, 43,
-			204, 120, 0, 65, 39, 51, 35, 71, 71, 37, 57, 108, 50, 0, 13, 67, 113, 245, 81, 104, 17, 35, 65, 89, 35, 51, 0, 16, 69, 93,
-			22, 207, 29, 16, 47, 35, 51, 35, 83, 72, 108, 51, 0, 13, 68, 85, 22, 199, 148, 89, 36, 51, 83, 35, 50, 0, 16, 69, 76, 132,
-			162, 29, 16, 89, 35, 71, 88, 36, 84, 108, 51, 0, 18, 70, 74, 35, 7, 51, 56, 64, 88, 39, 75, 108, 75, 37, 57, 36, 12, 0,
-			15, 69, 56, 120, 34, 29, 16, 101, 108, 50, 36, 84, 108, 51, 0, 15, 69, 33, 236, 226, 29, 16, 71, 39, 55, 37, 84, 108, 51, 0,
-			17, 70, 33, 17, 219, 40, 115, 192, 71, 35, 51, 39, 83, 47, 108, 72, 0, 19, 70, 32, 116, 222, 205, 200, 64, 71, 108, 89, 35, 55,
-			37, 104, 17, 36, 12, 0, 17, 70, 30, 12, 84, 40, 120, 0, 35, 50, 81, 39, 91, 47, 108, 50, 0, 18, 70, 29, 59, 112, 41, 24,
-			159, 36, 89, 48, 36, 49, 47, 51, 39, 65, 0, 16, 70, 29, 50, 142, 136, 120, 0, 39, 89, 47, 39, 101, 108, 50, 0, 15, 69, 28,
-			226, 179, 29, 16, 36, 101, 47, 37, 57, 108, 51, 0, 12, 68, 28, 199, 135, 76, 36, 75, 55, 108, 89, 0, 11, 67, 8, 132, 209, 108,
-			71, 89, 39, 51, 0, 0, 18, 70, 197, 236, 211, 205, 28, 224, 81, 36, 55, 37, 89, 37, 51, 37, 50, 0, 16, 69, 131, 56, 15, 29,
-			32, 50, 35, 57, 35, 50, 72, 108, 88, 0, 12, 68, 124, 124, 17, 136, 65, 108, 49, 51, 39, 0, 14, 68, 124, 114, 28, 204, 65, 108,
-			71, 35, 104, 17, 37, 0, 10, 67, 78, 44, 238, 89, 40, 37, 76, 0, 18, 70, 61, 22, 212, 30, 12, 192, 72, 39, 51, 83, 36, 91,
-			108, 50, 37, 0, 14, 68, 57, 52, 98, 204, 101, 39, 89, 51, 35, 84, 37, 0, 16, 70, 42, 36, 96, 28, 248, 128, 47, 39, 51, 50,
-			108, 72, 39, 0, 16, 69, 35, 56, 15, 29, 32, 71, 37, 57, 35, 50, 72, 108, 88, 0, 10, 67, 31, 51, 210, 36, 57, 72, 88, 0,
-			0, 18, 70, 109, 227, 211, 180, 116, 64, 83, 36, 55, 72, 36, 89, 48, 108, 51, 0, 20, 71, 100, 131, 199, 121, 150, 51, 124, 35, 71,
-			72, 39, 55, 19, 35, 88, 37, 65, 0, 11, 67, 93, 246, 64, 47, 35, 65, 35, 19, 0, 10, 67, 81, 246, 64, 91, 35, 65, 19, 0,
-			19, 71, 76, 120, 10, 70, 36, 162, 124, 89, 108, 50, 47, 51, 39, 88, 39, 65, 0, 11, 67, 68, 129, 215, 51, 39, 71, 108, 47, 0,
-			15, 68, 61, 18, 15, 68, 72, 35, 51, 71, 36, 72, 35, 51, 0, 10, 67, 49, 246, 64, 75, 35, 65, 19, 0, 19, 70, 40, 114, 19,
-			40, 120, 33, 47, 108, 71, 36, 89, 47, 108, 50, 36, 12, 0, 20, 70, 28, 132, 81, 76, 120, 33, 35, 71, 35, 51, 51, 36, 89, 108,
-			50, 36, 12, 0, 14, 68, 8, 228, 83, 68, 108, 101, 35, 51, 89, 35, 51, 0, 0, 15, 69, 197, 19, 237, 29, 64, 81, 35, 51, 72,
-			48, 108, 91, 0, 15, 67, 92, 135, 50, 47, 35, 71, 35, 104, 17, 36, 57, 36, 0, 19, 70, 92, 129, 215, 32, 124, 243, 47, 35, 71,
-			108, 47, 35, 71, 108, 37, 12, 0, 23, 72, 86, 36, 71, 77, 17, 219, 205, 224, 89, 40, 51, 36, 10, 36, 89, 51, 108, 83, 37, 55,
-			0, 11, 67, 79, 18, 128, 89, 35, 81, 35, 47, 0, 14, 67, 70, 44, 242, 51, 35, 84, 37, 57, 36, 57, 36, 0, 15, 69, 70, 34,
-			142, 43, 48, 51, 40, 47, 35, 101, 47, 37, 0, 14, 68, 70, 12, 81, 72, 51, 35, 50, 81, 51, 35, 88, 0, 20, 71, 41, 17, 224,
-			78, 216, 145, 40, 47, 36, 51, 108, 50, 89, 48, 39, 51, 47, 0, 10, 67, 31, 52, 76, 37, 51, 35, 75, 0, 13, 68, 30, 3, 209,
-			72, 35, 50, 72, 35, 51, 88, 0, 19, 71, 29, 236, 224, 29, 60, 226, 128, 36, 55, 37, 50, 108, 89, 57, 40, 50, 0, 17, 69, 29,
-			231, 203, 131, 48, 35, 55, 65, 39, 89, 35, 50, 50, 108, 0, 13, 68, 29, 226, 17, 72, 35, 55, 71, 39, 51, 88, 0, 0, 10, 67,
-			197, 19, 192, 81, 35, 51, 72, 0, 15, 68, 193, 251, 81, 76, 49, 39, 65, 48, 36, 51, 36, 89, 0, 20, 70, 181, 19, 155, 112, 120,
-			0, 48, 39, 51, 101, 35, 83, 35, 104, 17, 108, 50, 0, 10, 67, 137, 19, 192, 84, 36, 51, 72, 0, 16, 68, 125, 202, 207, 76, 65,
-			39, 104, 17, 35, 72, 72, 35, 89, 0, 14, 67, 125, 84, 77, 65, 39, 89, 35, 51, 51, 35, 107, 0, 11, 67, 69, 51, 192, 51, 36,
-			89, 35, 72, 0, 15, 68, 63, 2, 145, 76, 72, 39, 49, 47, 39, 51, 36, 89, 0, 14, 68, 61, 50, 145, 76, 72, 35, 89, 47, 51,
-			35, 89, 0, 12, 67, 33, 51, 192, 71, 39, 89, 89, 35, 72, 0, 18, 70, 33, 50, 135, 131, 1, 209, 71, 36, 89, 47, 108, 50, 49,
-			108, 51, 0, 18, 70, 32, 114, 7, 92, 120, 81, 71, 108, 71, 108, 47, 108, 107, 36, 51, 0, 14, 68, 29, 50, 145, 76, 36, 89, 47,
-			36, 51, 36, 89, 0, 12, 68, 28, 231, 135, 92, 36, 101, 55, 108, 47, 0, 21, 71, 28, 132, 81, 31, 49, 224, 132, 35, 71, 35, 51,
-			51, 108, 57, 108, 50, 36, 12, 0, 0, 16, 70, 192, 120, 49, 137, 24, 128, 49, 108, 50, 81, 39, 51, 39, 0, 27, 73, 181, 236, 223,
-			71, 52, 135, 79, 56, 160, 48, 39, 55, 37, 65, 36, 51, 37, 88, 108, 89, 37, 57, 39, 50, 0, 14, 68, 137, 227, 145, 48, 84, 36,
-			55, 101, 35, 51, 75, 0, 26, 73, 108, 116, 90, 29, 226, 141, 87, 55, 128, 83, 108, 51, 36, 104, 17, 39, 47, 47, 35, 107, 89, 37,
-			55, 0, 17, 70, 82, 1, 211, 31, 60, 192, 91, 36, 50, 108, 89, 108, 37, 12, 0, 17, 70, 33, 28, 202, 138, 12, 192, 71, 36, 51,
-			37, 47, 39, 50, 37, 0, 0, 16, 69, 129, 252, 237, 69, 48, 50, 36, 65, 37, 48, 39, 51, 89, 0, 12, 67, 43, 20, 113, 47, 35,
-			81, 35, 51, 81, 0, 16, 69, 34, 3, 243, 131, 0, 71, 35, 50, 72, 37, 50, 35, 49, 0, 22, 72, 33, 17, 224, 60, 116, 135, 130,
-			16, 71, 35, 51, 35, 50, 72, 108, 88, 108, 50, 36, 0, 16, 69, 31, 4, 237, 69, 48, 36, 49, 89, 48, 36, 51, 36, 89, 0, 15,
-			69, 11, 2, 162, 69, 48, 108, 49, 47, 39, 51, 36, 89, 0, 0, 18, 69, 197, 228, 243, 131, 32, 81, 39, 55, 36, 89, 37, 50, 36,
-			57, 36, 0, 17, 70, 197, 28, 224, 139, 59, 128, 81, 36, 51, 37, 50, 84, 37, 76, 0, 18, 70, 182, 36, 95, 137, 56, 179, 48, 40,
-			51, 65, 40, 89, 35, 84, 37, 0, 25, 73, 181, 225, 209, 205, 33, 211, 206, 40, 0, 48, 39, 55, 108, 51, 37, 88, 108, 89, 37, 57,
-			39, 50, 0, 23, 72, 181, 18, 162, 29, 181, 7, 131, 48, 48, 35, 51, 47, 39, 10, 35, 83, 91, 108, 50, 37, 0, 19, 69, 124, 129,
-			222, 107, 32, 65, 39, 71, 108, 55, 36, 104, 17, 36, 57, 36, 0, 19, 70, 69, 147, 226, 33, 23, 0, 51, 35, 19, 72, 39, 71, 35,
-			51, 104, 17, 0, 19, 70, 60, 226, 145, 60, 124, 243, 72, 39, 101, 47, 35, 51, 72, 108, 37, 12, 0, 17, 70, 58, 35, 241, 80, 120,
-			51, 101, 39, 72, 81, 39, 91, 50, 37, 0, 22, 72, 32, 116, 179, 197, 19, 199, 131, 48, 71, 108, 88, 37, 81, 35, 51, 72, 108, 50,
-			37, 0, 18, 69, 29, 118, 199, 207, 32, 36, 47, 83, 108, 37, 57, 57, 36, 57, 36, 0, 28, 74, 29, 50, 145, 205, 236, 210, 29, 60,
-			226, 128, 36, 89, 47, 36, 51, 37, 55, 37, 88, 108, 89, 37, 57, 39, 50, 0, 6, 65, 8, 6, 108, 0, 0, 11, 67, 137, 18, 192,
-			84, 35, 51, 35, 89, 0, 13, 68, 42, 36, 145, 60, 47, 40, 88, 35, 51, 72, 0, 17, 70, 41, 28, 237, 79, 56, 0, 47, 36, 51,
-			37, 48, 89, 37, 50, 0, 15, 69, 28, 130, 179, 29, 144, 36, 71, 47, 37, 57, 108, 19, 0, 0, 10, 67, 197, 232, 128, 81, 35, 55,
-			40, 0, 10, 67, 181, 28, 192, 48, 35, 51, 37, 0, 11, 67, 137, 232, 128, 84, 35, 55, 39, 12, 0, 10, 67, 133, 232, 128, 107, 39,
-			55, 40, 0, 15, 69, 132, 124, 223, 30, 0, 107, 108, 57, 36, 65, 108, 50, 0, 23, 71, 129, 132, 92, 68, 129, 224, 204, 50, 35, 88,
-			35, 51, 104, 17, 39, 51, 71, 108, 50, 37, 0, 10, 67, 101, 232, 128, 39, 55, 39, 84, 0, 15, 69, 57, 17, 211, 30, 0, 101, 39,
-			51, 108, 89, 108, 50, 0, 22, 71, 48, 241, 224, 29, 67, 224, 204, 75, 39, 72, 108, 50, 108, 91, 39, 72, 35, 50, 37, 0, 15, 69,
-			32, 116, 115, 42, 0, 71, 108, 51, 37, 47, 39, 50, 0, 11, 67, 29, 228, 202, 35, 55, 35, 89, 47, 0, 19, 70, 29, 118, 199, 27,
-			60, 128, 36, 47, 83, 108, 37, 57, 57, 36, 57, 36, 0, 0, 11, 67, 192, 120, 79, 49, 108, 107, 35, 72, 0, 15, 69, 192, 116, 112,
-			68, 240, 49, 108, 51, 49, 35, 51, 72, 0, 12, 67, 112, 129, 207, 104, 17, 39, 71, 108, 72, 0, 12, 67, 87, 49, 207, 89, 35, 57,
-			57, 108, 72, 0, 15, 69, 58, 40, 19, 68, 240, 101, 40, 50, 89, 35, 51, 72, 0, 27, 73, 30, 3, 85, 29, 21, 222, 32, 120, 33,
-			36, 50, 107, 36, 89, 108, 51, 47, 35, 55, 35, 71, 108, 50, 36, 0, 15, 69, 28, 140, 226, 68, 240, 35, 71, 37, 84, 35, 51, 72,
-			0, 10, 67, 8, 165, 0, 108, 47, 35, 91, 0, 0, 19, 70, 125, 161, 210, 120, 114, 128, 65, 39, 104, 17, 108, 88, 36, 55, 108, 47,
-			0, 13, 68, 70, 34, 17, 40, 51, 39, 71, 36, 51, 47, 0, 13, 68, 68, 114, 17, 40, 51, 108, 71, 36, 51, 47, 0, 11, 67, 32,
-			243, 162, 71, 35, 72, 101, 40, 0, 11, 67, 29, 248, 179, 39, 65, 35, 84, 37, 0, 18, 70, 29, 50, 145, 28, 210, 128, 36, 89, 47,
-			36, 51, 108, 107, 35, 47, 0, 0, 18, 70, 198, 34, 160, 33, 28, 64, 81, 40, 47, 36, 50, 71, 36, 51, 81, 0, 19, 70, 181, 28,
-			30, 71, 56, 0, 48, 36, 51, 49, 39, 55, 39, 51, 37, 50, 0, 11, 67, 105, 65, 192, 104, 17, 36, 91, 108, 0, 10, 67, 101, 65,
-			192, 36, 91, 108, 19, 0, 18, 70, 74, 3, 51, 69, 40, 0, 88, 35, 50, 75, 37, 51, 88, 35, 50, 0, 15, 69, 29, 85, 222, 28,
-			208, 36, 89, 47, 36, 55, 108, 107, 0, 0, 10, 67, 193, 72, 128, 49, 36, 91, 39, 0, 14, 68, 192, 196, 98, 204, 49, 35, 75, 51,
-			35, 84, 37, 0, 13, 68, 139, 51, 243, 136, 84, 37, 72, 37, 57, 39, 0, 14, 69, 139, 50, 145, 206, 0, 84, 37, 47, 51, 37, 50,
-			0, 10, 67, 137, 72, 128, 84, 39, 91, 39, 0, 20, 70, 134, 3, 226, 30, 12, 128, 107, 36, 50, 72, 36, 84, 108, 50, 36, 57, 36,
-			0, 10, 67, 129, 72, 128, 50, 35, 91, 39, 0, 11, 67, 126, 252, 0, 65, 39, 90, 35, 49, 0, 10, 67, 101, 104, 128, 39, 6, 88,
-			84, 0, 13, 68, 68, 115, 243, 136, 51, 108, 72, 37, 57, 39, 0, 16, 69, 41, 23, 226, 76, 160, 47, 36, 51, 65, 39, 89, 36, 47,
-			0, 14, 69, 40, 119, 211, 138, 0, 47, 108, 65, 89, 39, 50, 0, 9, 67, 29, 236, 192, 36, 55, 108, 0, 10, 67, 8, 168, 0, 108,
-			47, 36, 50, 0, 0, 14, 69, 70, 44, 207, 28, 240, 51, 40, 57, 72, 108, 72, 0, 13, 67, 45, 28, 199, 89, 39, 51, 35, 57, 57,
-			108, 0, 12, 67, 41, 28, 199, 47, 36, 51, 37, 57, 108, 0, 0, 16, 70, 194, 39, 237, 137, 50, 128, 49, 39, 65, 48, 39, 89, 47,
-			0, 12, 67, 190, 210, 162, 90, 36, 48, 36, 47, 39, 0, 10, 67, 110, 34, 162, 83, 39, 47, 39, 0, 19, 70, 109, 24, 160, 81, 50,
-			128, 83, 39, 51, 40, 50, 36, 91, 35, 89, 47, 0, 17, 70, 77, 19, 173, 137, 50, 128, 89, 39, 51, 101, 48, 40, 89, 47, 0, 15,
-			69, 33, 24, 143, 71, 48, 71, 39, 51, 39, 72, 51, 37, 0, 18, 70, 32, 116, 160, 81, 50, 128, 71, 108, 88, 50, 36, 91, 35, 89,
-			47, 0, 20, 71, 30, 8, 145, 76, 115, 199, 40, 35, 50, 84, 35, 51, 89, 108, 72, 108, 47, 0, 17, 70, 28, 248, 160, 205, 50, 128,
-			35, 72, 84, 36, 50, 37, 89, 47, 0, 0, 19, 70, 129, 84, 74, 204, 120, 0, 50, 39, 89, 51, 35, 47, 37, 57, 108, 50, 0, 13,
-			68, 124, 120, 145, 28, 65, 108, 84, 35, 51, 108, 0, 13, 68, 109, 232, 145, 28, 83, 36, 55, 39, 51, 108, 0, 14, 68, 83, 22, 202,
-			28, 91, 36, 81, 36, 83, 47, 108, 0, 17, 70, 76, 124, 19, 110, 40, 0, 89, 108, 49, 89, 37, 83, 39, 50, 0, 15, 68, 75, 4,
-			115, 28, 88, 35, 49, 35, 51, 37, 57, 108, 0, 16, 72, 62, 36, 71, 128, 248, 145, 30, 0, 72, 39, 51, 108, 50, 0, 10, 67, 33,
-			225, 192, 71, 35, 55, 108, 0, 0, 12, 68, 139, 52, 240, 204, 84, 37, 89, 49, 37, 0, 17, 70, 82, 20, 72, 30, 8, 128, 91, 35,
-			107, 51, 71, 108, 50, 40, 0, 10, 67, 32, 231, 128, 71, 39, 101, 55, 0, 10, 67, 30, 215, 128, 35, 48, 36, 55, 0, 16, 69, 29,
-			22, 162, 30, 0, 35, 51, 104, 17, 35, 84, 108, 50, 0, 0, 11, 67, 193, 71, 192, 49, 36, 91, 35, 65, 0, 10, 67, 185, 71, 192,
-			76, 36, 91, 65, 0, 18, 69, 115, 49, 219, 40, 112, 104, 17, 37, 57, 108, 83, 35, 47, 35, 50, 0, 11, 67, 53, 71, 192, 107, 35,
-			91, 35, 65, 0, 16, 69, 29, 81, 222, 40, 112, 36, 89, 108, 55, 35, 47, 35, 50, 0, 15, 69, 28, 220, 199, 128, 112, 35, 107, 57,
-			108, 50, 35, 50, 0, 0, 11, 67, 129, 56, 140, 50, 39, 89, 40, 75, 0, 12, 67, 125, 148, 30, 65, 39, 19, 88, 35, 55, 0, 14,
-			67, 124, 216, 158, 65, 39, 107, 35, 84, 84, 35, 55, 0, 12, 67, 124, 124, 222, 65, 108, 6, 57, 36, 55, 0, 12, 67, 105, 225, 216,
-			104, 17, 36, 55, 108, 88, 0, 12, 67, 93, 188, 222, 47, 39, 83, 36, 57, 55, 0, 10, 67, 80, 116, 76, 91, 108, 51, 75, 0, 12,
-			67, 78, 28, 222, 89, 39, 107, 36, 57, 55, 0, 11, 67, 61, 236, 222, 72, 35, 55, 37, 55, 0, 10, 67, 29, 88, 158, 39, 89, 40,
-			55, 0, 16, 69, 60, 114, 30, 206, 32, 72, 108, 71, 36, 55, 57, 40, 0, 46, 0, 11, 67, 193, 76, 223, 49, 36, 91, 37, 65, 0,
-			14, 68, 136, 213, 51, 28, 84, 35, 107, 91, 37, 57, 108, 0, 17, 70, 131, 56, 138, 70, 40, 0, 50, 37, 57, 39, 47, 51, 39, 50,
-			0, 11, 67, 129, 60, 223, 50, 35, 89, 37, 65, 0, 15, 68, 126, 23, 156, 28, 65, 35, 107, 55, 35, 104, 17, 108, 0, 18, 68, 124,
-			166, 220, 28, 65, 39, 47, 47, 35, 83, 36, 104, 17, 35, 50, 0, 14, 68, 101, 243, 202, 28, 39, 65, 72, 35, 47, 35, 50, 0, 13,
-			68, 78, 40, 51, 28, 89, 39, 50, 37, 57, 108, 0, 14, 67, 73, 200, 159, 88, 35, 104, 17, 104, 17, 40, 65, 0, 11, 67, 70, 252,
-			223, 51, 36, 90, 37, 65, 0, 15, 68, 67, 4, 115, 28, 88, 35, 49, 35, 51, 37, 57, 108, 0, 19, 70, 49, 164, 71, 111, 49, 192,
-			75, 39, 104, 17, 51, 108, 83, 37, 57, 108, 0, 11, 67, 41, 248, 159, 47, 35, 65, 40, 65, 0, 14, 67, 33, 22, 159, 71, 36, 51,
-			35, 104, 17, 65, 36, 0, 13, 68, 31, 20, 159, 28, 36, 81, 88, 36, 65, 108, 0, 17, 70, 29, 60, 7, 131, 49, 192, 36, 89, 49,
-			108, 50, 37, 57, 108, 0, 0, 11, 67, 133, 248, 160, 107, 35, 65, 40, 50, 0, 10, 67, 131, 56, 160, 50, 36, 39, 50, 0, 14, 67,
-			125, 88, 138, 65, 39, 89, 35, 84, 84, 35, 47, 0, 14, 67, 125, 76, 202, 65, 35, 91, 37, 57, 57, 35, 47, 0, 17, 69, 114, 20,
-			202, 30, 0, 104, 17, 39, 107, 36, 89, 47, 108, 50, 0, 12, 67, 82, 6, 202, 91, 36, 50, 39, 83, 47, 0, 11, 67, 70, 37, 32,
-			51, 39, 91, 35, 50, 0, 13, 67, 61, 19, 138, 72, 36, 6, 51, 35, 101, 47, 0, 11, 67, 58, 215, 128, 101, 36, 48, 36, 55, 0,
-			11, 67, 42, 215, 128, 47, 39, 48, 39, 55, 0, 11, 67, 41, 28, 224, 47, 35, 51, 37, 50, 0, 16, 70, 32, 116, 202, 30, 12, 192,
-			71, 108, 89, 47, 108, 50, 37, 0, 17, 70, 29, 55, 162, 30, 12, 192, 39, 89, 55, 39, 84, 108, 50, 37, 0, 9, 67, 29, 8, 0,
-			36, 88, 50, 0, 11, 67, 10, 213, 32, 108, 48, 91, 36, 50, 0, 12, 67, 9, 28, 224, 108, 51, 37, 57, 35, 50, 0, 0, 11, 67,
-			204, 216, 143, 57, 35, 107, 40, 72, 0, 11, 67, 182, 248, 161, 48, 35, 90, 40, 107, 0, 13, 67, 181, 232, 49, 6, 48, 35, 55, 35,
-			50, 81, 0, 11, 67, 181, 231, 192, 48, 35, 55, 35, 65, 0, 14, 68, 181, 226, 179, 192, 48, 39, 55, 36, 47, 37, 49, 0, 11, 67,
-			131, 59, 161, 50, 37, 76, 36, 12, 0, 14, 68, 129, 72, 179, 124, 50, 35, 91, 35, 84, 37, 65, 0, 12, 67, 129, 51, 161, 50, 39,
-			89, 101, 36, 12, 0, 13, 67, 128, 216, 161, 50, 35, 107, 84, 36, 57, 36, 0, 11, 67, 127, 56, 161, 65, 37, 84, 36, 12, 0, 15,
-			68, 125, 193, 226, 124, 65, 39, 104, 17, 108, 84, 36, 65, 0, 15, 69, 124, 161, 222, 207, 0, 65, 36, 47, 108, 55, 37, 49, 0, 13,
-			67, 113, 231, 192, 104, 17, 35, 6, 55, 35, 65, 0, 13, 67, 105, 28, 207, 104, 17, 39, 51, 51, 37, 72, 0, 10, 67, 80, 231, 192,
-			91, 39, 101, 65, 0, 11, 67, 78, 36, 143, 89, 40, 88, 35, 72, 0, 11, 67, 77, 188, 225, 89, 35, 83, 37, 107, 0, 12, 67, 77,
-			178, 161, 89, 35, 83, 47, 36, 12, 0, 15, 67, 70, 44, 225, 51, 35, 84, 6, 37, 12, 57, 36, 12, 0, 11, 67, 62, 36, 143, 72,
-			40, 88, 35, 72, 0, 12, 67, 49, 40, 161, 75, 39, 88, 84, 36, 12, 0, 12, 67, 43, 12, 225, 47, 36, 49, 57, 36, 12, 0, 13,
-			68, 41, 184, 115, 124, 47, 35, 83, 107, 37, 65, 0, 13, 68, 41, 56, 115, 124, 47, 35, 89, 107, 37, 65, 0, 14, 68, 40, 241, 226,
-			124, 47, 35, 72, 108, 84, 39, 65, 0, 10, 67, 40, 231, 192, 47, 39, 101, 65, 0, 12, 68, 35, 56, 51, 124, 71, 37, 50, 37, 65,
-			0, 11, 67, 33, 231, 192, 71, 35, 55, 35, 65, 0, 14, 68, 33, 72, 179, 124, 71, 36, 91, 35, 84, 37, 65, 0, 18, 70, 33, 28,
-			202, 30, 12, 199, 71, 36, 51, 37, 47, 108, 50, 37, 108, 0, 18, 70, 32, 116, 83, 122, 40, 7, 71, 108, 51, 89, 36, 55, 39, 50,
-			108, 0, 12, 68, 30, 210, 179, 192, 39, 48, 47, 37, 49, 0, 13, 68, 29, 199, 179, 124, 36, 104, 17, 55, 37, 65, 0, 14, 69, 29,
-			50, 179, 108, 112, 36, 89, 47, 37, 83, 108, 0, 11, 67, 10, 248, 49, 108, 90, 35, 50, 81, 0, 0, 13, 68, 183, 52, 202, 128, 48,
-			37, 89, 47, 39, 50, 0, 14, 69, 180, 114, 145, 137, 224, 48, 108, 47, 51, 39, 55, 0, 13, 68, 133, 24, 179, 128, 107, 36, 51, 39,
-			37, 50, 0, 15, 69, 132, 114, 159, 205, 224, 107, 108, 47, 65, 36, 57, 55, 0, 13, 68, 130, 33, 206, 40, 50, 35, 84, 108, 101, 47,
-			0, 11, 67, 128, 124, 222, 50, 108, 19, 36, 55, 0, 14, 69, 128, 116, 113, 205, 224, 50, 108, 51, 81, 37, 55, 0, 17, 70, 126, 36,
-			115, 40, 120, 51, 65, 40, 51, 37, 47, 108, 50, 37, 0, 14, 67, 125, 28, 8, 65, 39, 51, 35, 49, 49, 35, 71, 0, 14, 67, 124,
-			196, 72, 65, 39, 75, 35, 51, 51, 35, 71, 0, 15, 68, 113, 226, 148, 128, 104, 17, 39, 47, 35, 91, 35, 50, 0, 14, 68, 78, 34,
-			179, 128, 89, 40, 47, 37, 57, 35, 50, 0, 14, 68, 73, 18, 27, 40, 88, 35, 51, 71, 35, 83, 47, 0, 16, 69, 63, 20, 84, 204,
-			128, 72, 36, 81, 35, 51, 91, 37, 71, 0, 15, 68, 42, 39, 179, 40, 47, 39, 12, 55, 37, 57, 35, 47, 0, 13, 68, 42, 36, 179,
-			128, 47, 39, 12, 88, 37, 50, 0, 13, 68, 40, 248, 115, 128, 47, 35, 72, 107, 37, 50, 0, 13, 68, 35, 52, 98, 40, 71, 36, 57,
-			51, 40, 47, 0, 13, 68, 34, 5, 51, 128, 71, 36, 50, 91, 37, 50, 0, 13, 68, 28, 132, 115, 112, 36, 71, 51, 37, 104, 17, 0,
-			12, 68, 8, 130, 179, 128, 108, 71, 47, 37, 50, 0, 0, 12, 68, 204, 115, 138, 132, 57, 108, 101, 47, 36, 0, 14, 68, 198, 1, 226,
-			132, 81, 36, 50, 108, 84, 36, 12, 0, 13, 68, 198, 1, 209, 60, 81, 39, 50, 108, 51, 72, 0, 11, 67, 192, 248, 159, 49, 39, 72,
-			40, 65, 0, 17, 70, 181, 232, 138, 29, 28, 0, 48, 39, 55, 39, 47, 108, 51, 49, 0, 17, 69, 180, 161, 211, 205, 240, 48, 39, 47,
-			108, 89, 37, 57, 39, 65, 0, 14, 68, 132, 200, 179, 132, 107, 35, 75, 84, 37, 57, 36, 0, 15, 68, 130, 22, 202, 132, 50, 35, 107,
-			39, 83, 47, 36, 12, 0, 17, 70, 129, 178, 135, 123, 56, 0, 50, 35, 83, 47, 108, 55, 37, 50, 0, 16, 69, 128, 114, 145, 205, 240,
-			50, 108, 47, 36, 51, 57, 39, 65, 0, 18, 69, 126, 12, 210, 205, 240, 65, 35, 50, 57, 36, 88, 37, 57, 39, 65, 0, 12, 67, 125,
-			68, 112, 65, 39, 91, 51, 36, 49, 0, 14, 67, 124, 164, 217, 65, 39, 47, 47, 35, 89, 36, 19, 0, 17, 69, 124, 163, 199, 137, 240,
-			65, 39, 47, 36, 72, 108, 84, 36, 65, 0, 19, 71, 124, 116, 115, 50, 33, 224, 28, 65, 108, 51, 37, 75, 40, 108, 50, 108, 0, 17,
-			69, 122, 34, 147, 205, 240, 55, 39, 47, 36, 89, 37, 57, 39, 65, 0, 13, 67, 82, 8, 159, 91, 36, 50, 35, 84, 35, 65, 0, 13,
-			67, 81, 50, 159, 6, 91, 35, 89, 47, 39, 65, 0, 10, 67, 70, 8, 64, 51, 36, 50, 36, 0, 13, 68, 63, 60, 10, 132, 72, 37,
-			49, 47, 36, 12, 0, 12, 67, 53, 248, 159, 107, 35, 65, 65, 40, 65, 0, 14, 68, 41, 146, 51, 132, 47, 35, 19, 71, 37, 57, 36,
-			0, 17, 69, 33, 72, 34, 205, 240, 71, 36, 91, 36, 50, 35, 84, 37, 65, 0, 14, 68, 33, 28, 210, 60, 71, 36, 51, 37, 88, 35,
-			72, 0, 11, 67, 29, 21, 48, 35, 51, 35, 91, 49, 0, 20, 71, 28, 215, 207, 127, 52, 82, 28, 35, 107, 65, 35, 72, 65, 37, 51,
-			88, 108, 0, 15, 68, 8, 167, 179, 132, 108, 47, 36, 55, 37, 57, 36, 12, 0, 0, 15, 69, 197, 17, 219, 204, 160, 81, 36, 51, 108,
-			83, 37, 47, 0, 15, 70, 196, 116, 162, 207, 55, 128, 81, 108, 88, 39, 37, 55, 0, 15, 69, 135, 59, 81, 138, 0, 107, 37, 48, 36,
-			51, 39, 50, 0, 13, 68, 133, 28, 34, 120, 107, 36, 51, 49, 40, 55, 0, 18, 70, 133, 19, 223, 35, 55, 128, 107, 35, 51, 72, 35,
-			65, 71, 37, 55, 0, 11, 67, 131, 28, 224, 50, 36, 81, 37, 50, 0, 15, 69, 125, 226, 34, 70, 0, 65, 36, 55, 71, 39, 51, 50,
-			0, 15, 67, 125, 72, 156, 65, 39, 91, 35, 84, 84, 36, 104, 17, 0, 14, 68, 125, 49, 243, 120, 65, 35, 89, 108, 19, 36, 55, 0,
-			14, 68, 124, 241, 206, 120, 65, 39, 72, 108, 101, 36, 55, 0, 11, 67, 123, 56, 160, 55, 37, 57, 39, 50, 0, 12, 67, 53, 60, 224,
-			107, 39, 89, 36, 57, 50, 0, 14, 68, 33, 20, 179, 120, 71, 36, 51, 36, 88, 37, 55, 0, 15, 69, 32, 244, 199, 56, 160, 71, 35,
-			72, 89, 108, 101, 47, 0, 17, 70, 29, 226, 141, 87, 55, 128, 39, 55, 47, 35, 107, 89, 37, 55, 0, 12, 68, 29, 183, 179, 48, 36,
-			83, 55, 37, 75, 0, 14, 69, 29, 180, 71, 56, 160, 35, 83, 51, 108, 101, 47, 0, 17, 70, 28, 168, 159, 35, 55, 128, 39, 47, 39,
-			65, 39, 71, 37, 55, 0, 13, 68, 28, 161, 224, 120, 36, 47, 108, 50, 39, 55, 0, 0, 12, 67, 197, 72, 33, 81, 39, 91, 50, 36,
-			12, 0, 17, 70, 193, 248, 160, 205, 39, 192, 49, 39, 65, 39, 50, 37, 88, 65, 0, 11, 67, 193, 244, 64, 49, 35, 65, 35, 51, 0,
-			15, 69, 192, 116, 200, 71, 16, 49, 108, 89, 71, 35, 51, 81, 0, 15, 69, 182, 33, 202, 206, 16, 48, 39, 108, 47, 37, 57, 36, 0,
-			15, 69, 181, 19, 243, 74, 16, 48, 35, 51, 72, 37, 88, 36, 0, 14, 68, 131, 49, 243, 124, 50, 35, 57, 108, 57, 35, 65, 0, 17,
-			69, 129, 195, 243, 130, 16, 50, 35, 104, 17, 72, 37, 50, 36, 12, 0, 11, 67, 129, 72, 161, 50, 35, 91, 84, 36, 0, 17, 70, 127,
-			1, 224, 205, 39, 192, 65, 36, 49, 108, 50, 37, 88, 65, 0, 14, 68, 125, 225, 243, 124, 65, 39, 55, 108, 57, 36, 65, 0, 14, 67,
-			125, 72, 161, 65, 39, 91, 35, 84, 84, 35, 107, 0, 14, 68, 124, 241, 226, 124, 65, 39, 72, 108, 84, 36, 65, 0, 17, 70, 124, 196,
-			79, 55, 54, 192, 65, 39, 75, 35, 51, 51, 35, 72, 0, 18, 69, 124, 129, 222, 106, 16, 65, 39, 71, 108, 55, 36, 104, 17, 36, 12,
-			0, 12, 67, 113, 244, 64, 104, 17, 35, 65, 35, 51, 0, 16, 69, 101, 55, 162, 206, 16, 19, 35, 89, 35, 55, 40, 57, 36, 0, 14,
-			67, 84, 247, 33, 89, 35, 72, 35, 104, 17, 36, 12, 0, 13, 68, 79, 52, 202, 124, 89, 37, 89, 47, 36, 65, 0, 15, 69, 71, 52,
-			136, 71, 16, 51, 37, 88, 71, 35, 51, 81, 0, 11, 67, 60, 244, 64, 72, 35, 72, 35, 51, 0, 10, 67, 57, 178, 161, 101, 39, 83,
-			47, 0, 11, 67, 53, 236, 225, 107, 36, 55, 57, 36, 0, 13, 67, 52, 247, 33, 107, 35, 72, 35, 104, 17, 36, 0, 19, 70, 35, 55,
-			179, 138, 7, 192, 6, 65, 37, 55, 57, 40, 12, 50, 39, 65, 0, 13, 68, 35, 52, 84, 192, 71, 37, 51, 35, 91, 49, 0, 18, 69,
-			33, 22, 94, 206, 16, 71, 35, 51, 19, 35, 55, 35, 57, 107, 36, 0, 12, 67, 29, 236, 225, 35, 55, 35, 57, 107, 36, 0, 19, 70,
-			28, 132, 81, 76, 120, 7, 35, 71, 35, 51, 51, 36, 89, 108, 50, 108, 0, 0, 17, 69, 193, 28, 15, 205, 224, 49, 39, 51, 39, 49,
-			39, 72, 37, 55, 0, 11, 67, 182, 37, 20, 48, 40, 91, 36, 91, 0, 11, 67, 137, 232, 162, 84, 39, 55, 84, 39, 0, 17, 70, 135,
-			51, 209, 137, 188, 222, 107, 37, 72, 51, 39, 83, 37, 55, 0, 15, 68, 129, 68, 202, 128, 50, 36, 91, 35, 89, 47, 35, 50, 0, 14,
-			68, 125, 145, 226, 128, 65, 39, 19, 108, 84, 36, 50, 0, 15, 68, 125, 88, 171, 40, 65, 39, 89, 35, 84, 84, 35, 47, 0, 14, 68,
-			124, 252, 226, 128, 6, 65, 35, 72, 57, 40, 50, 0, 11, 67, 124, 209, 208, 65, 39, 107, 108, 88, 0, 13, 67, 124, 196, 179, 65, 39,
-			75, 35, 88, 88, 108, 0, 13, 67, 113, 28, 212, 104, 17, 39, 51, 35, 57, 91, 0, 15, 68, 78, 215, 148, 40, 89, 36, 48, 36, 55,
-			36, 91, 47, 0, 13, 68, 57, 19, 51, 128, 101, 39, 51, 75, 37, 50, 0, 17, 69, 33, 19, 48, 136, 128, 71, 36, 51, 36, 50, 75,
-			49, 40, 71, 0, 17, 70, 31, 56, 10, 70, 216, 158, 37, 50, 47, 36, 51, 48, 39, 55, 0, 14, 69, 29, 55, 199, 205, 224, 36, 89,
-			65, 108, 37, 55, 0, 0, 12, 67, 198, 40, 81, 81, 39, 12, 107, 35, 51, 0, 12, 67, 193, 24, 17, 49, 39, 51, 50, 36, 51, 0,
-			17, 70, 185, 24, 176, 30, 3, 192, 76, 39, 51, 40, 49, 108, 50, 72, 0, 13, 68, 183, 1, 224, 60, 48, 39, 49, 108, 50, 72, 0,
-			11, 67, 134, 39, 209, 107, 40, 65, 36, 51, 0, 18, 70, 129, 252, 207, 30, 3, 192, 50, 36, 65, 37, 72, 108, 50, 35, 72, 0, 11,
-			67, 129, 180, 192, 50, 35, 83, 35, 89, 0, 19, 70, 129, 180, 115, 63, 56, 159, 50, 36, 83, 51, 37, 72, 37, 57, 39, 65, 0, 21,
-			71, 125, 146, 159, 60, 36, 115, 28, 65, 39, 47, 35, 65, 36, 72, 108, 51, 37, 57, 0, 13, 68, 125, 145, 224, 60, 65, 39, 108, 50,
-			36, 72, 0, 17, 69, 125, 50, 156, 205, 240, 65, 39, 89, 47, 35, 104, 17, 37, 65, 0, 15, 68, 123, 8, 10, 132, 55, 35, 49, 35,
-			50, 47, 36, 12, 0, 12, 67, 113, 241, 209, 104, 17, 39, 65, 108, 51, 0, 16, 70, 110, 36, 98, 29, 19, 192, 83, 39, 51, 84, 108,
-			51, 72, 0, 11, 67, 101, 241, 209, 35, 65, 65, 108, 51, 0, 16, 69, 101, 236, 209, 113, 240, 35, 55, 108, 51, 35, 104, 17, 65, 0,
-			17, 69, 100, 117, 28, 41, 240, 108, 91, 36, 104, 17, 36, 47, 35, 65, 0, 11, 67, 81, 241, 209, 91, 39, 65, 108, 51, 0, 11, 67,
-			78, 39, 209, 89, 40, 65, 36, 51, 0, 18, 70, 74, 3, 31, 139, 56, 64, 88, 35, 50, 75, 65, 40, 57, 36, 12, 0, 11, 67, 57,
-			241, 209, 101, 39, 65, 108, 51, 0, 17, 70, 57, 24, 148, 30, 3, 192, 101, 39, 51, 40, 91, 108, 50, 72, 0, 15, 68, 56, 196, 202,
-			132, 101, 39, 75, 35, 89, 47, 36, 12, 0, 13, 68, 52, 117, 32, 132, 48, 108, 91, 50, 36, 12, 0, 17, 70, 48, 124, 241, 75, 56,
-			0, 75, 108, 57, 81, 39, 88, 37, 50, 0, 13, 68, 42, 39, 179, 60, 47, 39, 6, 55, 37, 72, 0, 14, 67, 42, 6, 209, 47, 35,
-			50, 35, 83, 83, 39, 51, 0, 14, 67, 41, 88, 145, 47, 35, 89, 35, 84, 84, 39, 51, 0, 14, 68, 40, 115, 243, 132, 47, 35, 19,
-			72, 37, 57, 36, 0, 13, 68, 29, 188, 32, 60, 35, 83, 49, 35, 50, 72, 0, 13, 68, 8, 132, 202, 132, 108, 71, 35, 89, 47, 36,
-			0, 0, 18, 70, 197, 232, 136, 137, 236, 224, 81, 39, 55, 39, 71, 40, 55, 37, 50, 0, 11, 67, 196, 241, 210, 81, 39, 72, 108, 88,
-			0, 17, 70, 196, 114, 7, 68, 252, 224, 81, 108, 71, 108, 51, 72, 37, 50, 0, 15, 68, 193, 71, 240, 80, 49, 36, 91, 65, 35, 49,
-			36, 91, 0, 17, 70, 182, 36, 179, 79, 56, 160, 48, 39, 88, 37, 89, 57, 39, 50, 0, 18, 70, 182, 36, 134, 204, 248, 160, 48, 39,
-			88, 36, 19, 37, 72, 39, 50, 0, 17, 70, 181, 24, 155, 31, 55, 128, 48, 39, 51, 39, 83, 108, 57, 55, 0, 19, 70, 180, 161, 224,
-			79, 55, 128, 48, 39, 47, 108, 50, 89, 37, 57, 36, 55, 0, 8, 66, 134, 208, 107, 39, 48, 0, 17, 69, 124, 129, 207, 68, 160, 65,
-			39, 71, 108, 72, 36, 51, 35, 47, 0, 19, 70, 109, 17, 240, 79, 56, 160, 83, 36, 51, 108, 49, 89, 37, 57, 39, 50, 0, 18, 70,
-			109, 17, 224, 193, 236, 224, 83, 36, 51, 108, 50, 49, 55, 37, 50, 0, 14, 68, 81, 241, 209, 80, 91, 39, 65, 108, 51, 36, 91, 0,
-			14, 68, 77, 177, 209, 80, 89, 36, 83, 108, 51, 36, 91, 0, 19, 70, 56, 120, 145, 73, 252, 224, 101, 108, 84, 35, 51, 88, 35, 65,
-			37, 50, 0, 10, 67, 53, 72, 128, 107, 35, 91, 84, 0, 14, 68, 32, 243, 148, 204, 71, 35, 72, 35, 101, 91, 37, 0, 19, 70, 30,
-			6, 240, 79, 56, 160, 35, 50, 83, 36, 49, 89, 37, 57, 39, 50, 0, 0, 13, 68, 204, 243, 199, 68, 57, 39, 72, 72, 108, 51, 0,
-			12, 68, 194, 39, 199, 68, 49, 39, 65, 108, 51, 0, 18, 70, 182, 39, 162, 131, 55, 192, 48, 39, 55, 39, 50, 37, 57, 39, 65, 0,
-			19, 70, 181, 116, 82, 34, 36, 113, 48, 36, 47, 36, 51, 88, 71, 40, 51, 81, 0, 19, 70, 180, 164, 82, 34, 36, 113, 48, 36, 47,
-			36, 51, 88, 71, 40, 51, 81, 0, 15, 69, 126, 36, 135, 207, 0, 65, 40, 88, 108, 37, 12, 49, 0, 16, 69, 126, 20, 71, 138, 16,
-			65, 36, 107, 51, 108, 84, 36, 12, 0, 10, 67, 125, 84, 64, 65, 36, 89, 51, 0, 13, 68, 125, 39, 199, 68, 65, 36, 88, 65, 108,
-			51, 0, 12, 67, 114, 39, 211, 104, 17, 40, 65, 36, 89, 0, 16, 70, 85, 252, 225, 45, 252, 225, 89, 39, 65, 35, 57, 36, 12, 0,
-			17, 70, 62, 40, 19, 43, 55, 192, 72, 40, 50, 36, 89, 47, 37, 65, 0, 11, 67, 57, 116, 64, 101, 35, 47, 35, 51, 0, 11, 67,
-			56, 244, 64, 101, 35, 72, 35, 51, 0, 19, 70, 43, 52, 98, 40, 226, 161, 47, 37, 51, 39, 47, 35, 101, 47, 36, 12, 0, 21, 70,
-			33, 194, 34, 120, 120, 15, 71, 36, 104, 17, 35, 71, 40, 55, 108, 50, 35, 72, 0, 10, 67, 33, 116, 64, 71, 39, 47, 51, 0, 17,
-			69, 33, 19, 19, 42, 16, 71, 35, 51, 75, 35, 89, 47, 36, 12, 0, 14, 68, 33, 17, 207, 68, 71, 35, 51, 108, 72, 35, 51, 0,
-			15, 69, 32, 229, 7, 128, 240, 71, 35, 101, 91, 108, 50, 72, 0, 17, 70, 31, 55, 179, 131, 55, 192, 37, 55, 37, 50, 37, 57, 39,
-			65, 0, 15, 70, 30, 36, 98, 198, 44, 225, 39, 51, 39, 81, 40, 36, 0, 17, 70, 29, 50, 135, 122, 40, 33, 36, 89, 47, 108, 55,
-			39, 50, 36, 0, 18, 70, 29, 24, 160, 61, 24, 143, 35, 51, 84, 35, 50, 72, 51, 40, 72, 0, 0, 14, 69, 196, 120, 159, 205, 64,
-			81, 108, 84, 65, 37, 91, 0, 17, 70, 194, 36, 74, 205, 40, 158, 49, 39, 51, 47, 37, 88, 39, 55, 0, 16, 70, 182, 36, 83, 30,
-			2, 128, 48, 40, 51, 89, 108, 50, 47, 0, 22, 71, 181, 23, 211, 206, 39, 179, 40, 48, 39, 51, 65, 35, 89, 40, 55, 37, 57, 35,
-			47, 0, 10, 67, 138, 37, 34, 84, 39, 91, 39, 0, 22, 71, 124, 164, 98, 181, 236, 202, 128, 65, 36, 47, 51, 39, 48, 39, 55, 37,
-			47, 35, 50, 0, 20, 70, 115, 55, 226, 127, 50, 128, 104, 17, 36, 57, 65, 40, 65, 37, 57, 35, 47, 0, 11, 67, 77, 28, 212, 89,
-			37, 51, 37, 91, 0, 16, 69, 35, 56, 15, 205, 64, 71, 37, 57, 35, 50, 72, 37, 91, 0, 10, 67, 9, 226, 162, 108, 55, 47, 39,
-			0, 12, 67, 193, 66, 179, 49, 39, 91, 47, 37, 0, 48, 12, 67, 193, 66, 179, 49, 35, 91, 47, 37, 0, 46, 0, 18, 70, 198, 35,
-			209, 108, 168, 64, 81, 39, 84, 72, 51, 35, 83, 47, 36, 0, 17, 70, 197, 17, 224, 62, 44, 0, 81, 36, 51, 108, 50, 72, 40, 49,
-			0, 17, 70, 194, 40, 109, 31, 56, 64, 49, 40, 107, 48, 108, 57, 36, 12, 0, 14, 69, 184, 120, 143, 29, 16, 76, 108, 84, 72, 108,
-			51, 0, 15, 69, 184, 114, 33, 29, 16, 76, 108, 71, 35, 107, 108, 51, 0, 15, 69, 181, 20, 143, 29, 16, 48, 39, 51, 88, 72, 108,
-			51, 0, 11, 67, 137, 183, 0, 84, 36, 83, 104, 17, 0, 17, 70, 135, 51, 209, 137, 236, 240, 107, 37, 72, 51, 39, 55, 37, 49, 0,
-			11, 67, 133, 20, 192, 107, 35, 51, 35, 89, 0, 13, 67, 109, 229, 17, 83, 36, 55, 35, 91, 36, 51, 0, 13, 68, 77, 183, 179, 76,
-			89, 36, 83, 55, 37, 89, 0, 19, 70, 73, 244, 202, 30, 8, 64, 88, 36, 65, 36, 89, 47, 108, 50, 36, 12, 0, 18, 70, 70, 35,
-			206, 30, 8, 64, 51, 40, 72, 6, 101, 108, 50, 36, 12, 0, 13, 68, 69, 241, 224, 76, 51, 39, 65, 108, 50, 89, 0, 17, 70, 62,
-			40, 45, 31, 56, 64, 72, 40, 50, 48, 108, 57, 36, 12, 0, 13, 68, 41, 17, 224, 76, 47, 36, 51, 108, 50, 89, 0, 18, 70, 29,
-			236, 10, 70, 35, 192, 36, 55, 36, 49, 47, 36, 51, 39, 72, 0, 12, 68, 29, 49, 224, 76, 36, 89, 108, 50, 89, 0, 11, 67, 181,
-			20, 192, 48, 39, 51, 89, 0, 48, 12, 67, 181, 20, 192, 48, 36, 51, 36, 89, 0, 46, 0, 18, 70, 197, 17, 223, 29, 184, 160, 81,
-			36, 51, 108, 65, 108, 83, 39, 50, 0, 17, 70, 195, 55, 162, 32, 124, 202, 49, 37, 55, 40, 71, 108, 57, 47, 0, 16, 69, 194, 3,
-			226, 30, 0, 49, 35, 50, 72, 39, 84, 108, 50, 0, 11, 67, 181, 28, 210, 48, 36, 51, 37, 88, 0, 14, 68, 136, 124, 32, 80, 84,
-			108, 49, 39, 50, 36, 91, 0, 18, 70, 136, 117, 51, 131, 18, 160, 84, 108, 91, 37, 50, 81, 47, 39, 50, 0, 19, 70, 126, 1, 211,
-			32, 172, 192, 65, 39, 50, 108, 89, 36, 71, 35, 47, 37, 0, 22, 70, 113, 18, 71, 121, 156, 224, 104, 17, 39, 51, 51, 35, 47, 39,
-			55, 19, 36, 57, 50, 0, 19, 70, 108, 244, 71, 79, 56, 160, 83, 36, 72, 51, 108, 89, 37, 57, 39, 50, 0, 20, 70, 79, 52, 71,
-			123, 56, 160, 89, 37, 57, 36, 51, 108, 55, 36, 39, 84, 50, 0, 12, 68, 58, 33, 224, 80, 101, 108, 50, 36, 91, 0, 17, 70, 57,
-			108, 209, 30, 44, 192, 101, 35, 88, 37, 51, 108, 84, 37, 0, 14, 68, 57, 28, 98, 80, 101, 35, 51, 81, 40, 12, 91, 0, 15, 68,
-			33, 226, 20, 136, 71, 35, 55, 71, 35, 91, 39, 12, 0, 14, 69, 29, 60, 7, 206, 208, 36, 89, 49, 108, 57, 48, 0, 17, 70, 10,
-			3, 226, 193, 28, 224, 108, 50, 72, 39, 49, 51, 37, 50, 0, 11, 67, 9, 244, 82, 108, 65, 39, 51, 88, 0, 0, 18, 70, 181, 24,
-			147, 78, 36, 64, 48, 36, 51, 39, 89, 36, 89, 39, 51, 0, 20, 70, 181, 20, 202, 204, 248, 15, 48, 35, 51, 35, 89, 47, 37, 72,
-			35, 50, 72, 0, 15, 69, 139, 56, 19, 129, 48, 84, 37, 50, 89, 36, 50, 89, 0, 16, 70, 135, 52, 98, 139, 52, 64, 107, 37, 51,
-			39, 84, 37, 51, 0, 8, 66, 132, 240, 107, 36, 72, 0, 12, 67, 130, 36, 83, 50, 39, 12, 51, 35, 89, 0, 18, 70, 130, 17, 224,
-			60, 120, 33, 50, 35, 107, 108, 50, 72, 108, 50, 36, 0, 14, 67, 124, 244, 83, 65, 39, 72, 35, 51, 51, 36, 89, 0, 10, 67, 124,
-			116, 83, 65, 108, 51, 89, 0, 24, 70, 113, 53, 224, 94, 12, 225, 104, 17, 39, 89, 47, 35, 50, 47, 35, 50, 37, 57, 57, 36, 12,
-			0, 10, 67, 111, 60, 19, 83, 37, 49, 89, 0, 10, 67, 108, 116, 83, 83, 108, 51, 89, 0, 13, 68, 102, 1, 213, 68, 35, 50, 108,
-			89, 39, 51, 0, 17, 70, 70, 36, 148, 192, 116, 64, 51, 40, 88, 91, 36, 49, 108, 51, 0, 11, 67, 62, 37, 19, 72, 40, 91, 36,
-			89, 0, 16, 69, 57, 19, 51, 131, 0, 101, 39, 51, 75, 37, 50, 35, 49, 0, 17, 70, 35, 49, 224, 196, 116, 64, 71, 37, 57, 35,
-			50, 81, 108, 51, 0, 16, 70, 29, 232, 43, 132, 116, 64, 39, 50, 50, 35, 107, 108, 51, 0, 15, 69, 29, 55, 162, 31, 0, 36, 89,
-			55, 39, 84, 108, 49, 0, 20, 71, 28, 168, 159, 192, 120, 51, 192, 39, 47, 39, 65, 36, 49, 108, 50, 37, 49, 0, 15, 69, 9, 17,
-			200, 79, 0, 108, 51, 108, 71, 36, 89, 49, 0, 0, 20, 71, 194, 4, 202, 30, 2, 179, 128, 49, 39, 50, 89, 47, 108, 50, 47, 37,
-			50, 0, 14, 68, 125, 196, 71, 88, 65, 36, 104, 17, 51, 108, 88, 0, 17, 70, 48, 120, 49, 60, 116, 128, 75, 108, 50, 81, 39, 72,
-			108, 88, 0, 21, 71, 32, 115, 138, 69, 39, 243, 128, 71, 108, 101, 47, 35, 51, 88, 35, 65, 37, 50, 0, 19, 71, 30, 220, 222, 29,
-			60, 226, 128, 36, 48, 37, 55, 108, 89, 57, 39, 50, 0, 21, 71, 11, 1, 207, 127, 52, 243, 128, 108, 49, 108, 72, 36, 65, 37, 89,
-			57, 108, 50, 0, 0, 18, 70, 198, 3, 7, 128, 248, 0, 81, 39, 50, 75, 108, 50, 72, 35, 50, 0, 22, 70, 181, 52, 72, 68, 115,
-			209, 48, 36, 89, 35, 51, 36, 71, 35, 51, 108, 72, 35, 51, 0, 13, 68, 181, 19, 243, 76, 48, 35, 51, 72, 37, 89, 0, 12, 67,
-			125, 116, 77, 65, 35, 47, 51, 35, 107, 0, 19, 70, 124, 115, 209, 82, 40, 81, 65, 108, 72, 35, 51, 91, 39, 107, 35, 51, 0, 18,
-			70, 70, 37, 32, 62, 40, 0, 51, 39, 12, 91, 35, 50, 72, 40, 50, 0, 13, 68, 68, 227, 243, 76, 51, 39, 101, 72, 37, 89, 0,
-			13, 68, 60, 115, 209, 76, 72, 108, 72, 51, 35, 89, 0, 16, 70, 58, 33, 224, 61, 252, 209, 101, 108, 50, 72, 65, 37, 51, 0, 10,
-			67, 45, 226, 192, 89, 39, 55, 89, 0, 13, 68, 43, 52, 81, 76, 47, 37, 51, 51, 35, 89, 0, 18, 70, 29, 251, 81, 29, 120, 145,
-			36, 65, 48, 36, 51, 108, 47, 40, 51, 0, 28, 74, 10, 2, 145, 70, 34, 7, 192, 164, 115, 28, 108, 50, 47, 36, 51, 39, 71, 108,
-			49, 47, 36, 51, 37, 57, 108, 0, 0, 17, 70, 181, 60, 206, 30, 12, 192, 48, 36, 89, 37, 101, 108, 50, 37, 0, 16, 70, 127, 52,
-			136, 30, 12, 192, 65, 37, 88, 71, 108, 50, 37, 0, 15, 69, 88, 116, 72, 30, 0, 88, 108, 51, 36, 71, 108, 50, 0, 29, 73, 84,
-			244, 71, 121, 242, 135, 133, 236, 224, 89, 35, 72, 51, 39, 55, 65, 39, 47, 36, 35, 107, 107, 36, 55, 37, 50, 0, 16, 69, 78, 212,
-			202, 30, 0, 89, 36, 48, 36, 89, 47, 108, 50, 0, 16, 70, 42, 39, 147, 42, 44, 192, 47, 39, 55, 89, 47, 39, 57, 0, 14, 69,
-			40, 118, 202, 138, 0, 47, 108, 83, 47, 40, 50, 0, 16, 67, 32, 247, 10, 71, 36, 72, 36, 104, 17, 104, 17, 35, 47, 0, 20, 71,
-			32, 124, 32, 51, 1, 226, 204, 71, 108, 49, 39, 50, 75, 49, 108, 84, 37, 0, 21, 72, 30, 6, 226, 69, 241, 202, 207, 0, 35, 50,
-			83, 39, 51, 65, 108, 47, 37, 49, 0, 24, 73, 29, 28, 202, 70, 39, 199, 205, 60, 224, 36, 51, 37, 47, 51, 39, 65, 108, 57, 89,
-			37, 50, 0, 0, 17, 69, 137, 19, 237, 69, 48, 84, 39, 51, 72, 48, 36, 51, 36, 89, 0, 15, 69, 136, 124, 223, 193, 48, 84, 108,
-			57, 65, 35, 49, 89, 0, 11, 67, 129, 252, 0, 50, 35, 65, 35, 49, 0, 16, 69, 127, 52, 202, 69, 48, 65, 37, 89, 47, 36, 51,
-			36, 89, 0, 14, 67, 124, 211, 203, 65, 39, 107, 35, 72, 72, 36, 89, 0, 13, 67, 124, 72, 11, 65, 39, 35, 50, 50, 35, 89, 0,
-			21, 71, 112, 120, 34, 129, 243, 199, 68, 104, 17, 108, 50, 40, 50, 65, 35, 72, 108, 51, 0, 24, 72, 33, 68, 79, 137, 50, 135, 130,
-			16, 71, 35, 91, 35, 51, 72, 40, 89, 47, 108, 50, 36, 12, 0, 28, 6, 58, 117, 43, 48, 50, 57, 50, 35, 65, 108, 72, 36, 20,
-			76, 36, 107, 51, 36, 57, 36, 20, 91, 108, 72, 0, 46, 0, 15, 67, 131, 2, 178, 6, 50, 39, 49, 49, 47, 36, 57, 36, 0, 27,
-			74, 111, 50, 162, 181, 225, 243, 131, 2, 162, 128, 83, 37, 47, 39, 48, 36, 55, 108, 57, 50, 49, 47, 39, 50, 0, 14, 68, 61, 251,
-			78, 40, 72, 35, 65, 48, 39, 101, 47, 0, 18, 70, 61, 24, 160, 196, 120, 51, 72, 35, 51, 40, 50, 81, 108, 50, 37, 0, 14, 68,
-			53, 97, 224, 40, 107, 36, 88, 108, 50, 35, 47, 0, 18, 70, 33, 24, 160, 196, 120, 51, 71, 39, 51, 40, 50, 81, 108, 50, 37, 0,
-			29, 7, 58, 45, 117, 43, 48, 50, 57, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 91, 108, 72, 0, 46, 16,
-			65, 12, 6, 35, 55, 36, 83, 4, 107, 35, 65, 88, 36, 12, 0, 0, 17, 70, 180, 116, 74, 204, 168, 145, 48, 108, 51, 47, 37, 47,
-			39, 51, 0, 23, 72, 133, 244, 135, 62, 216, 15, 29, 16, 107, 35, 65, 88, 108, 72, 48, 36, 50, 72, 108, 51, 0, 26, 73, 130, 241,
-			207, 181, 20, 202, 30, 8, 64, 50, 36, 90, 108, 72, 48, 35, 51, 35, 89, 47, 108, 50, 36, 0, 13, 68, 126, 35, 34, 60, 65, 39,
-			75, 40, 12, 72, 0, 24, 73, 29, 180, 199, 71, 20, 243, 56, 168, 64, 35, 83, 89, 108, 51, 81, 39, 89, 37, 101, 47, 36, 0, 13,
-			68, 9, 248, 146, 60, 108, 65, 40, 88, 35, 72, 0, 0, 13, 67, 197, 37, 10, 81, 39, 6, 88, 35, 91, 47, 0, 15, 69, 194, 44,
-			224, 40, 160, 49, 40, 37, 50, 47, 36, 47, 0, 15, 69, 192, 177, 219, 28, 160, 49, 36, 89, 108, 83, 108, 47, 0, 14, 68, 181, 28,
-			212, 32, 48, 35, 51, 37, 91, 35, 71, 0, 17, 70, 180, 116, 74, 205, 72, 0, 48, 108, 51, 47, 37, 91, 36, 50, 0, 15, 69, 139,
-			56, 19, 128, 160, 84, 37, 50, 89, 36, 50, 47, 0, 12, 67, 130, 37, 10, 50, 36, 84, 36, 91, 47, 0, 15, 69, 127, 1, 219, 28,
-			160, 65, 39, 49, 108, 83, 108, 47, 0, 15, 68, 125, 101, 209, 32, 65, 39, 88, 47, 35, 51, 36, 71, 0, 12, 67, 125, 28, 206, 65,
-			36, 51, 51, 37, 101, 0, 17, 69, 41, 19, 223, 29, 160, 47, 35, 51, 72, 35, 65, 108, 104, 17, 0, 16, 68, 32, 247, 213, 32, 71,
-			35, 72, 65, 35, 89, 89, 35, 71, 0, 19, 70, 29, 50, 162, 30, 12, 128, 39, 89, 47, 39, 84, 108, 50, 36, 57, 36, 0, 0, 11,
-			67, 127, 12, 207, 65, 35, 49, 37, 72, 0, 11, 67, 125, 28, 207, 65, 39, 51, 37, 72, 0, 14, 69, 124, 115, 209, 204, 240, 65, 108,
-			72, 51, 37, 72, 0, 15, 69, 109, 24, 135, 68, 240, 83, 39, 51, 84, 108, 51, 72, 0, 15, 69, 50, 2, 7, 128, 240, 75, 39, 50,
-			71, 108, 50, 72, 0, 15, 69, 30, 212, 243, 122, 0, 36, 48, 89, 37, 55, 39, 50, 0, 14, 69, 28, 248, 135, 68, 240, 36, 72, 84,
-			108, 51, 72, 0, 0, 22, 72, 198, 3, 25, 123, 51, 135, 131, 48, 81, 35, 50, 75, 35, 55, 37, 101, 108, 50, 37, 0, 14, 68, 125,
-			156, 212, 40, 65, 35, 19, 37, 91, 35, 47, 0, 18, 70, 124, 129, 206, 44, 114, 128, 65, 39, 71, 108, 107, 36, 89, 108, 47, 0, 17,
-			68, 40, 134, 115, 40, 47, 35, 71, 35, 19, 37, 57, 57, 35, 47, 0, 20, 70, 40, 114, 19, 40, 120, 50, 47, 108, 71, 36, 89, 47,
-			108, 50, 36, 57, 36, 0, 15, 68, 33, 180, 83, 40, 71, 36, 83, 36, 51, 36, 89, 47, 0, 18, 69, 33, 19, 19, 43, 32, 71, 35,
-			51, 75, 35, 89, 47, 36, 57, 36, 0, 18, 70, 29, 50, 153, 30, 2, 128, 36, 89, 47, 36, 19, 108, 50, 35, 47, 0, 0, 11, 67,
-			136, 194, 0, 84, 35, 75, 35, 71, 0, 18, 69, 124, 168, 34, 173, 144, 65, 39, 47, 36, 50, 35, 84, 84, 36, 19, 0, 14, 68, 82,
-			8, 179, 60, 91, 36, 50, 35, 84, 37, 72, 0, 13, 68, 76, 161, 224, 60, 89, 36, 47, 108, 50, 72, 0, 13, 68, 63, 56, 179, 60,
-			72, 36, 57, 84, 37, 72, 0, 14, 68, 54, 33, 207, 44, 107, 35, 84, 108, 72, 36, 89, 0, 14, 68, 33, 241, 224, 60, 71, 36, 65,
-			108, 50, 35, 72, 0, 12, 67, 32, 134, 115, 71, 35, 71, 35, 19, 37, 0, 0, 11, 67, 207, 11, 71, 57, 36, 49, 48, 108, 0, 27,
-			72, 124, 163, 79, 29, 231, 209, 193, 32, 65, 39, 47, 47, 35, 107, 36, 72, 39, 55, 65, 35, 51, 49, 35, 88, 0, 16, 70, 60, 120,
-			31, 29, 28, 0, 72, 108, 50, 65, 108, 51, 49, 0, 10, 67, 49, 32, 64, 75, 39, 88, 19, 0, 15, 69, 35, 51, 206, 80, 160, 71,
-			37, 72, 101, 36, 91, 47, 0, 13, 67, 33, 149, 135, 6, 71, 35, 19, 88, 35, 50, 0, 15, 69, 30, 4, 111, 207, 0, 36, 50, 36,
-			51, 90, 37, 49, 0, 0, 13, 68, 198, 8, 147, 204, 81, 36, 50, 39, 89, 37, 0, 15, 69, 197, 23, 209, 136, 240, 81, 35, 51, 65,
-			51, 40, 72, 0, 16, 69, 183, 55, 199, 204, 240, 48, 36, 57, 65, 108, 57, 35, 72, 0, 16, 69, 181, 66, 136, 128, 240, 48, 39, 91,
-			47, 71, 35, 50, 72, 0, 19, 70, 181, 20, 202, 204, 252, 207, 48, 35, 51, 35, 89, 47, 37, 72, 37, 72, 0, 14, 69, 130, 37, 7,
-			128, 240, 50, 40, 91, 108, 50, 72, 0, 14, 69, 127, 60, 17, 138, 0, 65, 37, 49, 51, 39, 50, 0, 16, 68, 111, 1, 225, 204, 83,
-			39, 49, 108, 12, 6, 107, 37, 12, 0, 18, 70, 109, 24, 136, 29, 28, 207, 83, 39, 51, 40, 71, 108, 51, 37, 72, 0, 12, 68, 60,
-			116, 83, 204, 72, 108, 51, 89, 37, 0, 13, 68, 41, 28, 240, 136, 47, 36, 51, 37, 49, 39, 0, 25, 72, 9, 56, 148, 204, 163, 237,
-			69, 48, 108, 89, 39, 91, 36, 57, 47, 36, 72, 48, 36, 51, 36, 89, 0, 0, 12, 67, 193, 225, 192, 49, 39, 55, 55, 35, 50, 0,
-			13, 68, 192, 162, 7, 148, 49, 35, 47, 71, 35, 50, 0, 12, 68, 127, 52, 82, 28, 65, 37, 51, 88, 108, 0, 19, 68, 126, 39, 10,
-			28, 65, 39, 84, 35, 104, 17, 104, 17, 35, 47, 35, 50, 0, 13, 68, 124, 241, 226, 28, 65, 39, 72, 108, 84, 108, 0, 12, 68, 58,
-			40, 10, 28, 101, 39, 50, 47, 108, 0, 13, 68, 35, 51, 115, 28, 71, 37, 107, 35, 57, 108, 0, 14, 68, 29, 18, 148, 28, 10, 36,
-			51, 47, 36, 91, 108, 0, 0, 17, 70, 130, 37, 51, 62, 3, 192, 50, 39, 91, 37, 72, 35, 50, 72, 0, 18, 70, 61, 19, 148, 30,
-			3, 192, 72, 36, 51, 35, 101, 91, 108, 50, 72, 0, 15, 69, 33, 17, 224, 83, 48, 71, 36, 51, 108, 50, 91, 37, 0, 13, 69, 30,
-			44, 10, 30, 32, 39, 49, 47, 108, 84, 0, 0, 15, 69, 181, 18, 162, 72, 112, 48, 35, 51, 47, 39, 88, 108, 0, 17, 69, 130, 17,
-			243, 40, 112, 50, 35, 107, 108, 57, 35, 47, 35, 50, 0, 12, 67, 89, 248, 7, 88, 36, 65, 50, 35, 50, 0, 23, 72, 63, 7, 135,
-			124, 116, 243, 138, 0, 72, 36, 49, 55, 108, 65, 108, 89, 37, 57, 39, 50, 0, 16, 69, 60, 226, 145, 72, 112, 72, 39, 101, 47, 35,
-			51, 88, 108, 0, 15, 69, 42, 40, 95, 72, 112, 47, 40, 107, 35, 65, 88, 108, 0, 13, 67, 41, 248, 7, 47, 35, 65, 35, 50, 50,
-			108, 0, 12, 67, 32, 248, 135, 71, 35, 72, 84, 35, 50, 0, 16, 70, 31, 4, 243, 60, 120, 0, 39, 49, 89, 37, 72, 108, 50, 0,
-			11, 67, 29, 248, 7, 39, 65, 35, 50, 108, 0, 10, 67, 29, 37, 0, 35, 88, 35, 91, 0, 10, 67, 28, 136, 135, 36, 71, 40, 108,
-			0, 0, 14, 68, 197, 178, 177, 136, 81, 39, 83, 47, 39, 81, 40, 0, 19, 70, 181, 24, 135, 68, 136, 15, 48, 35, 51, 84, 108, 51,
-			71, 35, 50, 72, 0, 13, 68, 135, 49, 225, 136, 107, 35, 57, 108, 107, 40, 0, 14, 68, 126, 4, 162, 204, 65, 39, 50, 88, 35, 84,
-			37, 0, 21, 71, 61, 248, 177, 68, 118, 243, 192, 72, 36, 65, 39, 81, 36, 51, 108, 83, 37, 49, 0, 14, 68, 33, 50, 160, 204, 71,
-			35, 89, 47, 35, 50, 37, 0, 22, 72, 33, 17, 207, 68, 232, 135, 128, 240, 71, 35, 51, 108, 72, 35, 51, 101, 108, 50, 72, 0, 18,
-			70, 29, 225, 200, 56, 172, 192, 35, 55, 55, 108, 71, 35, 101, 47, 37, 0, 0, 14, 68, 206, 35, 96, 28, 57, 40, 107, 35, 50, 50,
-			108, 0, 15, 68, 205, 204, 224, 28, 57, 35, 104, 17, 37, 50, 35, 50, 0, 11, 67, 126, 36, 223, 65, 40, 89, 36, 65, 0, 11, 67,
-			125, 97, 219, 65, 39, 88, 108, 83, 0, 14, 67, 124, 196, 223, 65, 39, 75, 35, 89, 89, 35, 65, 0, 12, 67, 112, 116, 223, 104, 17,
-			108, 89, 36, 65, 0, 12, 67, 85, 17, 219, 89, 35, 51, 51, 108, 83, 0, 22, 72, 76, 120, 10, 71, 54, 243, 138, 240, 89, 108, 50,
-			47, 51, 37, 83, 37, 57, 40, 90, 0, 14, 68, 44, 120, 51, 28, 89, 108, 50, 37, 57, 35, 50, 0, 13, 68, 42, 33, 224, 28, 47,
-			35, 84, 108, 50, 108, 0, 14, 68, 41, 250, 224, 28, 47, 35, 65, 35, 50, 50, 108, 0, 17, 70, 30, 40, 34, 112, 161, 192, 40, 50,
-			84, 35, 104, 17, 47, 108, 0, 11, 67, 30, 3, 31, 35, 50, 75, 39, 65, 0, 18, 70, 29, 50, 145, 77, 33, 192, 36, 89, 47, 36,
-			51, 36, 89, 88, 108, 0, 11, 67, 29, 28, 240, 36, 6, 51, 37, 49, 0, 0, 12, 67, 194, 4, 222, 49, 35, 50, 89, 36, 55, 0,
-			16, 69, 182, 212, 98, 131, 48, 48, 36, 48, 36, 51, 39, 50, 37, 0, 12, 67, 181, 76, 94, 48, 36, 91, 81, 36, 55, 0, 11, 67,
-			129, 40, 158, 50, 39, 88, 40, 55, 0, 13, 67, 114, 4, 222, 104, 17, 39, 50, 89, 39, 55, 0, 15, 69, 109, 24, 159, 31, 48, 83,
-			39, 51, 40, 65, 108, 57, 0, 9, 66, 97, 224, 88, 36, 55, 55, 0, 11, 67, 76, 104, 158, 89, 36, 19, 40, 55, 0, 14, 69, 63,
-			56, 142, 139, 48, 72, 37, 84, 101, 40, 57, 0, 12, 67, 61, 242, 30, 72, 35, 65, 71, 36, 55, 0, 11, 67, 41, 28, 204, 47, 37,
-			51, 37, 75, 0, 22, 71, 33, 17, 200, 70, 8, 71, 60, 71, 35, 51, 108, 71, 35, 51, 50, 35, 107, 108, 72, 0, 16, 69, 32, 132,
-			97, 31, 48, 71, 35, 71, 51, 107, 108, 57, 36, 0, 13, 65, 144, 6, 57, 36, 10, 35, 51, 35, 71, 37, 0, 0, 16, 67, 193, 236,
-			225, 49, 39, 55, 55, 37, 57, 36, 57, 36, 12, 0, 15, 69, 192, 119, 209, 136, 112, 49, 108, 65, 51, 35, 84, 108, 0, 18, 70, 135,
-			52, 202, 137, 28, 199, 107, 37, 89, 47, 39, 51, 37, 57, 108, 0, 13, 67, 131, 4, 97, 50, 35, 49, 35, 51, 36, 12, 0, 12, 67,
-			130, 34, 33, 50, 39, 12, 71, 36, 12, 0, 11, 67, 129, 248, 143, 50, 36, 65, 40, 72, 0, 17, 69, 128, 172, 204, 40, 112, 50, 35,
-			47, 37, 75, 35, 47, 35, 50, 0, 11, 67, 126, 43, 225, 65, 39, 90, 36, 12, 0, 19, 69, 125, 119, 198, 128, 112, 65, 39, 47, 65,
-			35, 19, 36, 50, 50, 35, 50, 0, 12, 67, 125, 21, 15, 65, 39, 51, 91, 36, 72, 0, 16, 68, 113, 71, 212, 124, 104, 17, 35, 91,
-			35, 65, 91, 35, 65, 0, 12, 67, 101, 236, 225, 35, 55, 35, 57, 107, 36, 0, 11, 67, 78, 220, 207, 89, 36, 48, 37, 72, 0, 12,
-			67, 78, 2, 33, 89, 39, 50, 71, 36, 12, 0, 15, 67, 69, 204, 225, 51, 39, 104, 17, 35, 57, 57, 36, 12, 0, 13, 67, 41, 204,
-			225, 47, 35, 104, 17, 37, 57, 36, 0, 14, 68, 41, 17, 240, 124, 47, 35, 51, 108, 49, 39, 65, 0, 16, 69, 40, 231, 243, 128, 112,
-			47, 35, 101, 65, 37, 50, 35, 50, 0, 16, 69, 33, 24, 136, 204, 112, 71, 39, 51, 39, 71, 37, 57, 108, 0, 10, 67, 29, 54, 192,
-			35, 89, 35, 83, 0, 16, 69, 29, 50, 147, 112, 112, 36, 89, 47, 36, 89, 104, 17, 108, 0, 11, 67, 29, 21, 15, 35, 51, 91, 35,
-			72, 0, 16, 70, 11, 17, 223, 130, 40, 0, 108, 81, 108, 65, 50, 40, 50, 0, 12, 68, 9, 226, 34, 124, 108, 55, 71, 39, 65, 0,
-			9, 66, 186, 16, 76, 36, 12, 0, 76, 0, 15, 69, 132, 124, 202, 138, 0, 107, 108, 57, 36, 47, 40, 50, 0, 16, 70, 132, 116, 95,
-			138, 12, 192, 107, 108, 51, 65, 39, 50, 37, 0, 12, 67, 130, 44, 224, 50, 39, 6, 84, 37, 50, 0, 20, 71, 127, 50, 162, 194, 3,
-			209, 204, 65, 37, 47, 39, 49, 39, 50, 72, 51, 37, 0, 11, 67, 124, 140, 224, 65, 39, 71, 37, 50, 0, 14, 68, 124, 115, 85, 120,
-			65, 108, 107, 35, 89, 35, 55, 0, 13, 67, 110, 3, 220, 83, 35, 50, 72, 39, 104, 17, 0, 10, 67, 101, 247, 128, 35, 65, 35, 55,
-			0, 12, 67, 82, 12, 96, 91, 36, 50, 81, 36, 50, 0, 14, 67, 41, 66, 138, 47, 35, 91, 35, 47, 47, 39, 47, 0, 12, 67, 33,
-			232, 154, 71, 39, 55, 40, 104, 17, 0, 11, 67, 31, 5, 32, 35, 49, 91, 36, 50, 0, 10, 67, 29, 40, 0, 39, 88, 39, 50, 0,
-			0, 13, 68, 197, 241, 212, 60, 81, 39, 65, 108, 91, 72, 0, 11, 67, 193, 76, 240, 49, 36, 91, 37, 49, 0, 13, 68, 133, 28, 211,
-			132, 107, 36, 51, 37, 89, 36, 0, 15, 68, 120, 193, 209, 132, 55, 35, 75, 75, 108, 51, 36, 12, 0, 18, 70, 92, 120, 81, 131, 49,
-			192, 47, 108, 107, 36, 51, 50, 37, 57, 108, 0, 11, 67, 84, 136, 141, 89, 35, 71, 40, 107, 0, 15, 69, 81, 148, 72, 29, 176, 91,
-			36, 19, 51, 71, 108, 83, 0, 12, 67, 77, 21, 48, 89, 36, 51, 36, 91, 49, 0, 12, 67, 73, 21, 48, 88, 36, 51, 36, 91, 49,
-			0, 11, 67, 61, 17, 223, 72, 36, 51, 108, 65, 0, 17, 70, 58, 35, 199, 121, 193, 192, 101, 39, 72, 36, 55, 104, 17, 108, 0, 10,
-			67, 57, 227, 192, 101, 39, 55, 72, 0, 10, 67, 49, 227, 192, 75, 36, 55, 72, 0, 18, 70, 49, 150, 209, 131, 49, 192, 75, 35, 83,
-			35, 51, 50, 37, 57, 108, 0, 12, 68, 42, 35, 115, 60, 47, 39, 107, 37, 72, 0, 13, 68, 41, 236, 211, 132, 47, 35, 55, 37, 89,
-			36, 0, 15, 68, 41, 66, 51, 132, 47, 35, 91, 6, 71, 37, 12, 107, 0, 17, 70, 40, 115, 17, 131, 49, 192, 47, 108, 75, 36, 51,
-			50, 37, 57, 0, 10, 67, 34, 3, 0, 71, 39, 50, 75, 0, 17, 69, 33, 28, 222, 205, 240, 71, 36, 51, 37, 55, 37, 57, 39, 65,
-			0, 11, 67, 33, 17, 223, 71, 35, 51, 108, 65, 0, 17, 70, 30, 39, 159, 183, 49, 192, 39, 55, 35, 65, 48, 37, 57, 108, 0, 10,
-			67, 30, 35, 0, 6, 39, 12, 75, 0, 0, 12, 68, 206, 40, 51, 40, 57, 40, 50, 37, 47, 0, 13, 68, 196, 116, 83, 128, 81, 108,
-			51, 89, 39, 50, 0, 12, 67, 193, 252, 222, 49, 39, 65, 36, 57, 55, 0, 13, 68, 192, 114, 20, 128, 49, 108, 71, 91, 36, 50, 0,
-			18, 70, 182, 36, 91, 29, 119, 243, 48, 40, 51, 83, 108, 47, 36, 65, 37, 0, 11, 67, 180, 241, 222, 48, 36, 72, 108, 55, 0, 14,
-			69, 127, 56, 17, 136, 128, 65, 37, 50, 51, 40, 71, 0, 15, 68, 126, 33, 219, 112, 65, 39, 84, 108, 83, 36, 104, 17, 0, 14, 67,
-			126, 28, 204, 65, 39, 107, 35, 57, 57, 36, 75, 0, 15, 68, 126, 1, 219, 112, 65, 39, 50, 108, 83, 36, 104, 17, 0, 11, 67, 124,
-			241, 222, 65, 36, 72, 108, 55, 0, 12, 67, 121, 2, 128, 55, 36, 88, 88, 35, 47, 0, 13, 67, 109, 145, 222, 83, 35, 12, 19, 10,
-			108, 55, 0, 10, 67, 78, 33, 222, 89, 39, 108, 55, 0, 14, 68, 77, 17, 243, 40, 89, 36, 51, 108, 57, 35, 47, 0, 11, 67, 70,
-			33, 222, 51, 36, 84, 108, 55, 0, 14, 68, 69, 145, 243, 40, 51, 35, 19, 108, 57, 35, 47, 0, 11, 67, 68, 193, 222, 51, 36, 75,
-			108, 55, 0, 14, 68, 61, 17, 243, 40, 72, 36, 51, 108, 57, 35, 47, 0, 15, 68, 42, 33, 219, 112, 47, 35, 84, 108, 83, 39, 104,
-			17, 0, 14, 67, 41, 248, 140, 47, 35, 65, 35, 84, 84, 39, 75, 0, 18, 70, 41, 23, 226, 79, 11, 64, 47, 36, 51, 65, 39, 89,
-			49, 39, 48, 0, 13, 68, 32, 119, 176, 128, 71, 108, 55, 49, 39, 50, 0, 14, 68, 32, 117, 30, 112, 71, 108, 91, 55, 39, 104, 17,
-			0, 13, 68, 29, 50, 162, 128, 35, 89, 36, 47, 39, 50, 0, 13, 68, 29, 22, 199, 112, 36, 51, 83, 108, 104, 17, 0, 12, 68, 10,
-			28, 206, 40, 108, 107, 37, 101, 47, 0, 12, 68, 9, 50, 179, 128, 108, 89, 47, 37, 50, 0, 0, 12, 67, 205, 196, 64, 57, 39, 104,
-			17, 39, 51, 0, 14, 68, 198, 3, 20, 192, 81, 39, 50, 75, 36, 91, 49, 0, 12, 67, 198, 1, 225, 81, 39, 50, 108, 12, 107, 0,
-			19, 70, 193, 252, 211, 29, 28, 199, 49, 39, 65, 37, 89, 108, 51, 37, 57, 108, 0, 14, 69, 136, 119, 158, 174, 16, 84, 35, 55, 55,
-			108, 107, 0, 12, 67, 133, 232, 15, 107, 39, 55, 35, 50, 72, 0, 15, 69, 128, 119, 219, 204, 240, 50, 108, 65, 39, 83, 37, 72, 0,
-			17, 69, 124, 129, 243, 102, 16, 65, 39, 71, 108, 57, 36, 19, 36, 12, 0, 12, 67, 122, 2, 33, 55, 39, 65, 71, 36, 12, 0, 12,
-			67, 109, 24, 49, 83, 35, 51, 35, 50, 81, 0, 11, 67, 101, 72, 161, 36, 91, 84, 36, 12, 0, 12, 67, 100, 199, 161, 35, 75, 35,
-			55, 36, 12, 0, 19, 70, 84, 244, 71, 101, 135, 192, 89, 35, 72, 51, 36, 35, 19, 88, 35, 65, 0, 12, 67, 77, 24, 49, 89, 39,
-			51, 35, 50, 81, 0, 12, 67, 73, 24, 49, 88, 36, 51, 35, 50, 81, 0, 17, 70, 69, 241, 202, 205, 55, 192, 51, 39, 65, 108, 47,
-			37, 89, 65, 0, 12, 67, 69, 72, 161, 51, 36, 91, 84, 36, 107, 0, 12, 67, 62, 2, 33, 72, 39, 50, 71, 36, 12, 0, 12, 67,
-			61, 24, 49, 72, 36, 51, 35, 50, 81, 0, 11, 67, 43, 12, 207, 47, 35, 49, 37, 72, 0, 12, 67, 41, 151, 225, 47, 39, 19, 65,
-			36, 12, 0, 11, 67, 41, 28, 207, 47, 37, 51, 37, 72, 0, 14, 68, 34, 37, 162, 52, 71, 36, 84, 39, 88, 40, 107, 0, 18, 70,
-			33, 229, 34, 205, 55, 192, 71, 39, 55, 91, 39, 84, 37, 89, 65, 0, 14, 67, 33, 204, 225, 71, 35, 104, 17, 37, 57, 36, 12, 0,
-			17, 69, 33, 72, 34, 204, 240, 71, 36, 91, 36, 50, 35, 84, 37, 72, 0, 15, 69, 33, 49, 226, 204, 240, 71, 35, 89, 108, 84, 37,
-			72, 0, 11, 67, 33, 28, 207, 71, 39, 51, 37, 72, 0, 12, 68, 29, 232, 71, 124, 36, 55, 107, 108, 65, 0, 12, 67, 28, 199, 161,
-			35, 75, 36, 55, 55, 36, 0, 0, 11, 67, 188, 168, 160, 90, 36, 47, 39, 50, 0, 10, 67, 185, 232, 128, 76, 36, 55, 39, 0, 14,
-			68, 185, 22, 162, 120, 76, 35, 51, 104, 17, 40, 55, 0, 10, 67, 181, 232, 128, 48, 39, 55, 39, 0, 16, 69, 181, 19, 199, 56, 160,
-			48, 35, 51, 6, 72, 108, 101, 47, 0, 11, 67, 133, 232, 0, 107, 36, 55, 36, 50, 0, 14, 68, 133, 225, 225, 120, 107, 35, 55, 108,
-			107, 36, 55, 0, 15, 67, 126, 36, 220, 65, 39, 84, 35, 89, 89, 35, 104, 17, 0, 14, 67, 125, 180, 92, 65, 36, 83, 6, 51, 35,
-			104, 17, 0, 16, 68, 125, 50, 143, 120, 65, 39, 89, 47, 35, 72, 35, 55, 55, 0, 11, 67, 124, 168, 160, 65, 39, 47, 40, 50, 0,
-			12, 67, 122, 3, 224, 55, 35, 50, 72, 35, 50, 0, 16, 69, 121, 252, 224, 204, 160, 55, 35, 65, 37, 50, 36, 57, 47, 0, 18, 69,
-			113, 235, 159, 29, 192, 104, 17, 39, 55, 76, 39, 65, 108, 104, 17, 0, 11, 67, 113, 232, 128, 104, 17, 39, 55, 40, 0, 12, 67, 109,
-			21, 10, 83, 36, 51, 36, 91, 47, 0, 11, 67, 83, 56, 160, 91, 37, 84, 35, 50, 0, 14, 68, 79, 55, 200, 120, 6, 89, 37, 65,
-			71, 39, 55, 0, 14, 68, 78, 12, 71, 120, 89, 36, 50, 36, 81, 108, 55, 0, 11, 67, 76, 124, 32, 89, 108, 49, 36, 50, 0, 11,
-			67, 68, 124, 32, 51, 108, 49, 39, 50, 0, 12, 67, 62, 21, 10, 72, 36, 107, 91, 35, 47, 0, 16, 69, 61, 50, 173, 56, 160, 72,
-			35, 89, 47, 48, 39, 101, 47, 0, 12, 67, 61, 21, 10, 72, 39, 51, 39, 91, 47, 0, 13, 67, 53, 28, 202, 107, 39, 51, 37, 57,
-			35, 47, 0, 11, 67, 32, 241, 224, 71, 36, 72, 108, 50, 0, 17, 70, 31, 52, 162, 41, 24, 173, 37, 88, 39, 47, 36, 51, 39, 48,
-			0, 14, 69, 29, 180, 98, 56, 160, 35, 83, 51, 40, 101, 47, 0, 16, 69, 11, 1, 209, 62, 0, 108, 49, 108, 51, 72, 36, 39, 50,
-			0, 0, 13, 68, 185, 225, 224, 60, 76, 36, 55, 108, 50, 72, 0, 13, 68, 185, 33, 224, 60, 76, 36, 88, 108, 50, 72, 0, 17, 69,
-			182, 3, 7, 133, 240, 6, 48, 35, 50, 75, 108, 107, 39, 65, 0, 13, 67, 181, 236, 209, 48, 36, 55, 36, 57, 36, 51, 0, 17, 70,
-			134, 3, 226, 207, 52, 223, 107, 36, 50, 72, 39, 37, 89, 65, 0, 17, 69, 133, 66, 135, 61, 240, 6, 107, 35, 91, 47, 108, 72, 39,
-			65, 0, 19, 70, 129, 252, 212, 138, 3, 192, 50, 36, 65, 37, 91, 35, 84, 35, 50, 72, 0, 16, 69, 129, 19, 200, 29, 240, 50, 35,
-			51, 72, 36, 71, 108, 65, 0, 14, 67, 125, 156, 209, 65, 39, 19, 35, 57, 57, 36, 51, 0, 14, 67, 125, 88, 145, 65, 39, 89, 35,
-			84, 84, 35, 51, 0, 15, 68, 125, 50, 160, 60, 65, 39, 89, 47, 35, 50, 35, 72, 0, 17, 70, 124, 116, 162, 59, 52, 223, 65, 108,
-			88, 39, 101, 37, 89, 65, 0, 17, 70, 124, 116, 112, 79, 52, 223, 65, 108, 51, 49, 89, 37, 89, 65, 0, 15, 68, 93, 17, 207, 132,
-			47, 35, 51, 51, 108, 72, 36, 12, 0, 14, 68, 83, 7, 200, 132, 91, 36, 49, 35, 65, 71, 36, 0, 15, 68, 73, 244, 159, 132, 88,
-			36, 65, 88, 36, 65, 36, 12, 0, 18, 70, 63, 23, 199, 43, 52, 223, 72, 39, 81, 65, 108, 47, 37, 89, 65, 0, 16, 70, 43, 52,
-			98, 207, 51, 192, 47, 37, 51, 39, 37, 12, 72, 0, 13, 68, 42, 44, 98, 60, 47, 40, 81, 39, 12, 72, 0, 15, 69, 41, 227, 176,
-			29, 240, 47, 35, 49, 101, 49, 108, 65, 0, 12, 68, 35, 56, 51, 60, 71, 37, 50, 37, 72, 0, 16, 69, 35, 56, 12, 29, 240, 71,
-			37, 57, 35, 50, 75, 108, 65, 0, 12, 67, 33, 120, 145, 71, 36, 47, 39, 51, 36, 0, 15, 68, 33, 72, 160, 60, 71, 36, 91, 35,
-			84, 35, 50, 72, 0, 13, 68, 33, 24, 155, 132, 71, 39, 51, 40, 83, 36, 0, 15, 69, 32, 116, 89, 29, 240, 71, 108, 51, 36, 19,
-			108, 65, 0, 16, 70, 30, 39, 199, 131, 52, 223, 40, 65, 108, 50, 37, 89, 65, 0, 13, 68, 29, 17, 207, 132, 36, 51, 108, 72, 36,
-			12, 0, 15, 69, 28, 170, 225, 29, 240, 36, 47, 47, 36, 107, 108, 65, 0, 0, 14, 68, 204, 116, 223, 128, 57, 108, 89, 35, 65, 35,
-			50, 0, 13, 68, 198, 3, 7, 128, 81, 39, 50, 75, 108, 50, 0, 13, 68, 197, 227, 199, 128, 81, 39, 55, 72, 108, 50, 0, 14, 68,
-			197, 1, 212, 40, 6, 81, 39, 88, 108, 91, 47, 0, 14, 68, 193, 251, 115, 128, 49, 35, 65, 48, 36, 57, 50, 0, 12, 67, 193, 40,
-			162, 49, 39, 88, 39, 84, 39, 0, 14, 68, 193, 19, 243, 40, 49, 36, 51, 36, 72, 37, 47, 0, 14, 68, 192, 132, 115, 40, 6, 49,
-			36, 71, 51, 37, 47, 0, 7, 66, 186, 32, 76, 39, 0, 12, 67, 137, 20, 148, 84, 35, 51, 88, 36, 91, 0, 13, 68, 134, 36, 95,
-			128, 107, 39, 51, 65, 39, 50, 0, 15, 69, 133, 248, 155, 205, 224, 107, 36, 65, 39, 83, 37, 55, 0, 13, 68, 130, 36, 95, 128, 50,
-			39, 51, 65, 35, 50, 0, 12, 68, 127, 55, 135, 128, 65, 37, 55, 108, 50, 0, 13, 68, 127, 51, 199, 128, 65, 36, 57, 72, 108, 50,
-			0, 17, 70, 127, 17, 200, 31, 50, 128, 65, 36, 81, 108, 71, 108, 57, 47, 0, 13, 68, 126, 252, 71, 128, 65, 39, 90, 81, 108, 50,
-			0, 14, 67, 125, 72, 148, 65, 39, 91, 35, 84, 84, 35, 91, 0, 16, 69, 125, 66, 159, 29, 224, 65, 39, 91, 47, 39, 65, 108, 55,
-			0, 12, 67, 124, 172, 226, 65, 35, 47, 37, 57, 39, 0, 13, 67, 124, 172, 51, 65, 39, 47, 47, 35, 49, 37, 0, 10, 67, 124, 124,
-			226, 65, 108, 57, 39, 0, 13, 68, 122, 12, 71, 128, 55, 35, 50, 81, 108, 50, 0, 12, 67, 121, 20, 148, 55, 35, 51, 88, 36, 91,
-			0, 15, 68, 113, 97, 226, 40, 104, 17, 36, 88, 108, 84, 35, 47, 0, 13, 68, 110, 3, 34, 128, 83, 36, 50, 75, 40, 50, 0, 14,
-			68, 109, 195, 199, 128, 83, 36, 104, 17, 72, 108, 50, 0, 13, 68, 109, 23, 199, 128, 83, 35, 51, 65, 108, 50, 0, 24, 72, 108, 168,
-			135, 123, 2, 145, 207, 0, 83, 39, 47, 39, 36, 55, 36, 49, 47, 36, 51, 37, 49, 0, 12, 67, 80, 252, 115, 91, 39, 72, 36, 81,
-			37, 0, 14, 69, 79, 60, 96, 29, 224, 89, 37, 81, 50, 108, 55, 0, 14, 68, 77, 232, 155, 128, 89, 36, 55, 39, 83, 39, 50, 0,
-			16, 69, 77, 228, 200, 205, 224, 89, 35, 55, 89, 35, 71, 37, 55, 0, 18, 69, 76, 161, 207, 193, 224, 89, 36, 47, 108, 72, 36, 49,
-			39, 55, 55, 0, 17, 70, 76, 119, 211, 138, 2, 128, 89, 108, 65, 89, 39, 50, 36, 47, 0, 14, 68, 74, 3, 199, 128, 88, 36, 50,
-			6, 72, 108, 50, 0, 12, 67, 72, 252, 115, 88, 35, 72, 36, 81, 37, 0, 13, 68, 71, 51, 71, 128, 51, 36, 57, 107, 108, 50, 0,
-			12, 68, 70, 35, 71, 128, 51, 39, 107, 108, 50, 0, 14, 68, 62, 23, 7, 128, 72, 36, 107, 104, 17, 108, 50, 0, 11, 67, 57, 248,
-			148, 101, 35, 65, 40, 91, 0, 13, 68, 57, 87, 199, 128, 101, 35, 89, 65, 108, 50, 0, 19, 70, 51, 20, 78, 68, 117, 0, 75, 36,
-			81, 35, 51, 101, 35, 51, 108, 91, 0, 11, 67, 42, 44, 212, 47, 40, 57, 35, 91, 0, 17, 70, 41, 17, 224, 75, 50, 128, 47, 36,
-			51, 108, 50, 88, 37, 47, 0, 15, 68, 33, 225, 207, 128, 71, 36, 55, 55, 108, 72, 39, 50, 0, 19, 70, 33, 50, 177, 30, 5, 0,
-			71, 35, 89, 47, 36, 81, 108, 50, 35, 91, 0, 15, 68, 33, 24, 71, 128, 71, 39, 12, 51, 6, 107, 108, 50, 0, 10, 67, 10, 44,
-			212, 108, 84, 37, 91, 0, 15, 68, 9, 244, 115, 40, 108, 65, 36, 51, 37, 57, 35, 47, 0, 12, 68, 9, 23, 243, 128, 108, 51, 65,
-			37, 50, 0, 12, 68, 9, 23, 199, 128, 108, 51, 65, 108, 50, 0, 0, 18, 70, 206, 36, 145, 131, 55, 192, 57, 40, 88, 36, 51, 50,
-			36, 57, 65, 0, 17, 70, 197, 33, 224, 43, 56, 0, 81, 36, 88, 108, 50, 47, 37, 50, 0, 11, 67, 190, 8, 147, 90, 36, 50, 40,
-			89, 0, 13, 68, 185, 51, 162, 68, 76, 39, 89, 101, 39, 51, 0, 19, 71, 135, 59, 96, 136, 172, 211, 124, 107, 37, 48, 50, 39, 47,
-			37, 89, 65, 0, 11, 67, 133, 245, 0, 107, 35, 65, 35, 91, 0, 20, 70, 129, 241, 210, 49, 246, 97, 50, 35, 65, 108, 88, 75, 39,
-			65, 19, 36, 12, 0, 15, 69, 127, 55, 199, 128, 240, 65, 37, 65, 108, 50, 35, 72, 0, 11, 67, 126, 8, 151, 65, 35, 50, 40, 47,
-			0, 17, 69, 125, 76, 223, 206, 16, 65, 35, 91, 37, 65, 37, 57, 36, 12, 0, 17, 68, 124, 161, 206, 68, 65, 39, 47, 36, 19, 35,
-			101, 101, 36, 51, 0, 16, 69, 77, 242, 7, 62, 16, 89, 39, 65, 71, 108, 72, 36, 12, 0, 18, 70, 75, 55, 200, 28, 136, 161, 88,
-			37, 65, 71, 108, 71, 84, 36, 12, 0, 16, 70, 75, 52, 202, 34, 39, 192, 88, 37, 89, 47, 71, 40, 65, 0, 13, 68, 68, 124, 202,
-			68, 51, 108, 57, 47, 36, 51, 0, 22, 72, 57, 21, 226, 124, 241, 209, 30, 0, 101, 39, 51, 47, 40, 65, 72, 108, 51, 108, 50, 0,
-			13, 68, 35, 4, 226, 68, 71, 39, 49, 89, 39, 51, 0, 15, 69, 32, 251, 115, 122, 16, 71, 35, 72, 48, 37, 55, 36, 0, 15, 69,
-			32, 229, 34, 62, 16, 71, 35, 101, 91, 40, 72, 36, 0, 15, 69, 32, 124, 96, 30, 16, 71, 108, 81, 39, 50, 108, 107, 0, 15, 69,
-			32, 116, 72, 128, 240, 71, 108, 51, 71, 35, 50, 72, 0, 16, 70, 31, 52, 94, 31, 56, 0, 36, 57, 51, 55, 108, 57, 50, 0, 13,
-			69, 30, 39, 135, 128, 240, 39, 55, 108, 50, 72, 0, 0, 11, 67, 197, 28, 210, 81, 39, 51, 37, 88, 0, 12, 68, 184, 120, 162, 80,
-			76, 108, 84, 39, 91, 0, 10, 67, 180, 116, 110, 48, 108, 51, 76, 0, 15, 69, 134, 209, 202, 204, 160, 107, 36, 48, 108, 47, 37, 47,
-			0, 10, 67, 132, 200, 128, 107, 35, 75, 84, 0, 20, 70, 125, 56, 15, 197, 44, 224, 65, 35, 89, 50, 35, 72, 81, 39, 88, 37, 50,
-			0, 13, 68, 124, 129, 225, 204, 65, 39, 71, 108, 107, 37, 0, 15, 69, 120, 124, 45, 80, 160, 55, 108, 49, 48, 39, 91, 47, 0, 18,
-			70, 83, 52, 72, 70, 3, 0, 91, 37, 51, 71, 36, 51, 36, 50, 75, 0, 13, 68, 76, 140, 222, 136, 89, 36, 71, 37, 55, 40, 0,
-			13, 68, 62, 36, 202, 80, 72, 40, 89, 47, 35, 91, 0, 15, 68, 61, 19, 148, 80, 72, 36, 51, 35, 101, 91, 36, 91, 0, 15, 69,
-			56, 116, 109, 80, 160, 101, 108, 51, 48, 39, 91, 47, 0, 15, 68, 49, 50, 140, 136, 75, 39, 89, 47, 39, 75, 40, 12, 0, 14, 68,
-			33, 20, 83, 204, 71, 35, 51, 51, 35, 89, 37, 0, 18, 70, 33, 17, 224, 60, 115, 138, 71, 35, 51, 35, 50, 72, 108, 101, 47, 0,
-			14, 69, 30, 12, 71, 80, 160, 36, 50, 81, 108, 91, 47, 0, 12, 68, 30, 3, 243, 80, 35, 50, 72, 37, 91, 0, 29, 74, 29, 236,
-			10, 70, 39, 240, 30, 12, 240, 204, 36, 55, 36, 49, 47, 36, 51, 39, 65, 36, 49, 108, 50, 37, 49, 37, 0, 14, 69, 28, 136, 160,
-			204, 160, 35, 71, 39, 50, 37, 47, 0, 17, 69, 9, 4, 72, 69, 192, 108, 88, 35, 51, 71, 35, 51, 104, 17, 0, 0, 18, 70, 181,
-			248, 155, 138, 12, 240, 107, 39, 65, 39, 83, 39, 50, 37, 49, 0, 12, 67, 137, 226, 145, 84, 39, 55, 47, 36, 51, 0, 17, 70, 127,
-			52, 82, 28, 248, 64, 65, 37, 51, 88, 108, 72, 36, 12, 0, 17, 69, 126, 11, 147, 41, 16, 65, 35, 50, 76, 36, 89, 47, 36, 51,
-			0, 15, 68, 125, 193, 243, 76, 65, 39, 104, 17, 108, 57, 36, 89, 0, 16, 69, 125, 50, 160, 205, 16, 65, 39, 89, 47, 35, 50, 37,
-			51, 0, 14, 67, 124, 236, 209, 65, 39, 101, 35, 57, 57, 35, 51, 0, 11, 67, 95, 56, 145, 47, 39, 57, 40, 51, 0, 11, 67, 84,
-			136, 145, 89, 35, 71, 40, 51, 0, 16, 69, 77, 236, 10, 137, 16, 89, 36, 55, 36, 49, 47, 39, 51, 0, 11, 67, 72, 136, 145, 88,
-			35, 71, 40, 51, 0, 13, 68, 41, 183, 179, 76, 47, 36, 83, 55, 37, 89, 0, 18, 70, 34, 17, 209, 34, 3, 192, 71, 35, 107, 108,
-			51, 71, 35, 50, 72, 0, 18, 70, 34, 5, 51, 131, 51, 192, 71, 36, 50, 36, 91, 37, 50, 37, 72, 0, 10, 67, 33, 19, 0, 71,
-			39, 51, 75, 0, 14, 68, 32, 243, 32, 76, 71, 35, 72, 75, 36, 50, 89, 0, 16, 70, 31, 4, 199, 79, 51, 192, 39, 49, 89, 108,
-			89, 37, 72, 0, 19, 72, 29, 59, 71, 129, 52, 78, 93, 240, 36, 89, 48, 108, 50, 89, 36, 51, 0, 18, 70, 29, 50, 145, 34, 3,
-			192, 36, 89, 47, 35, 51, 71, 35, 50, 72, 0, 19, 71, 9, 252, 224, 136, 116, 243, 60, 108, 65, 37, 50, 39, 35, 89, 37, 72, 0,
-			19, 70, 9, 244, 202, 68, 241, 223, 108, 65, 36, 89, 47, 36, 51, 72, 108, 65, 0, 0, 10, 67, 206, 44, 226, 57, 39, 57, 39, 0,
-			11, 67, 193, 76, 212, 49, 36, 91, 37, 91, 0, 12, 67, 192, 120, 148, 6, 49, 108, 84, 39, 91, 0, 14, 68, 181, 188, 226, 72, 48,
-			39, 83, 37, 57, 40, 88, 0, 12, 67, 137, 21, 34, 84, 35, 51, 91, 39, 12, 0, 14, 68, 133, 247, 179, 72, 107, 36, 65, 39, 55,
-			37, 88, 0, 15, 69, 131, 17, 202, 206, 32, 50, 36, 81, 108, 47, 37, 84, 0, 12, 67, 77, 156, 212, 89, 35, 19, 57, 35, 91, 0,
-			10, 67, 71, 53, 34, 51, 37, 91, 40, 0, 15, 69, 61, 50, 142, 137, 64, 72, 35, 89, 47, 101, 39, 91, 0, 9, 67, 58, 44, 212,
-			101, 37, 91, 0, 14, 68, 41, 241, 243, 72, 47, 35, 65, 108, 57, 39, 88, 0, 0, 13, 68, 194, 2, 162, 68, 49, 39, 50, 47, 39,
-			51, 0, 18, 70, 133, 23, 210, 196, 120, 0, 107, 39, 51, 65, 39, 88, 81, 108, 50, 0, 12, 68, 126, 34, 162, 68, 65, 39, 47, 39,
-			51, 0, 18, 70, 126, 17, 204, 124, 120, 0, 65, 39, 107, 108, 75, 36, 65, 108, 50, 0, 11, 67, 125, 232, 147, 65, 35, 55, 40, 89,
-			0, 14, 68, 125, 145, 212, 68, 65, 39, 19, 108, 91, 36, 51, 0, 14, 68, 120, 118, 179, 68, 55, 108, 104, 17, 36, 57, 51, 0, 13,
-			67, 113, 60, 211, 104, 17, 36, 89, 89, 37, 89, 0, 15, 68, 110, 1, 226, 68, 83, 35, 50, 50, 108, 84, 35, 51, 0, 10, 67, 75,
-			56, 147, 88, 36, 40, 89, 0, 12, 68, 70, 34, 162, 68, 51, 39, 47, 39, 51, 0, 15, 68, 70, 28, 80, 68, 51, 35, 107, 81, 39,
-			88, 35, 51, 0, 14, 68, 61, 225, 226, 68, 72, 36, 55, 108, 84, 35, 51, 0, 13, 68, 61, 50, 162, 68, 72, 35, 89, 47, 40, 51,
-			0, 15, 69, 35, 52, 179, 129, 48, 71, 37, 88, 37, 50, 36, 89, 0, 14, 68, 35, 49, 226, 68, 71, 37, 57, 108, 84, 35, 51, 0,
-			11, 67, 35, 5, 0, 71, 36, 49, 36, 91, 0, 11, 67, 33, 21, 0, 71, 39, 51, 36, 91, 0, 22, 72, 31, 4, 243, 60, 116, 243,
-			138, 0, 39, 49, 89, 37, 72, 108, 89, 37, 57, 39, 50, 0, 19, 71, 29, 28, 98, 130, 39, 243, 192, 36, 51, 81, 39, 50, 39, 65,
-			37, 49, 0, 14, 68, 28, 136, 144, 68, 35, 71, 40, 88, 35, 51, 51, 0, 12, 68, 11, 2, 162, 68, 108, 49, 47, 39, 51, 0, 0,
-			14, 68, 197, 65, 243, 80, 81, 39, 91, 108, 57, 36, 91, 0, 20, 71, 197, 33, 224, 42, 38, 243, 120, 81, 36, 88, 108, 50, 47, 39,
-			83, 37, 55, 0, 17, 70, 183, 56, 34, 195, 56, 128, 48, 37, 50, 39, 49, 37, 57, 39, 0, 12, 68, 182, 39, 179, 80, 48, 39, 55,
-			37, 91, 0, 13, 68, 181, 20, 115, 80, 48, 39, 51, 51, 37, 91, 0, 20, 70, 181, 18, 162, 29, 188, 32, 48, 35, 51, 47, 39, 10,
-			35, 83, 49, 35, 50, 0, 15, 68, 181, 18, 160, 80, 48, 39, 51, 47, 35, 50, 36, 91, 0, 14, 68, 133, 241, 243, 80, 107, 35, 65,
-			108, 57, 36, 91, 0, 14, 68, 131, 49, 243, 80, 50, 37, 57, 108, 57, 36, 91, 0, 15, 68, 125, 19, 224, 80, 65, 39, 51, 72, 35,
-			50, 35, 91, 0, 13, 68, 124, 115, 162, 64, 65, 35, 19, 101, 40, 88, 0, 11, 67, 111, 56, 146, 83, 37, 57, 40, 88, 0, 17, 70,
-			111, 52, 179, 192, 241, 224, 83, 37, 88, 37, 49, 72, 108, 50, 0, 16, 69, 76, 212, 78, 205, 32, 89, 35, 107, 35, 51, 101, 37, 88,
-			0, 14, 68, 76, 161, 243, 80, 89, 36, 47, 108, 57, 36, 91, 0, 14, 68, 68, 129, 243, 80, 51, 39, 71, 108, 57, 36, 91, 0, 18,
-			70, 42, 44, 211, 71, 1, 224, 47, 40, 57, 89, 36, 51, 49, 108, 50, 0, 17, 70, 34, 33, 222, 109, 19, 0, 71, 39, 55, 83, 35,
-			51, 35, 75, 0, 19, 70, 29, 231, 211, 121, 252, 224, 39, 55, 65, 39, 89, 55, 36, 65, 37, 50, 0, 17, 70, 10, 2, 145, 29, 60,
-			202, 108, 50, 47, 51, 108, 89, 37, 47, 0, 0, 13, 68, 125, 18, 34, 92, 65, 35, 51, 71, 40, 47, 0, 17, 69, 122, 3, 209, 137,
-			16, 55, 35, 50, 72, 51, 39, 84, 36, 51, 0, 21, 71, 110, 39, 7, 121, 145, 207, 132, 83, 39, 12, 104, 17, 39, 55, 108, 72, 36,
-			12, 0, 11, 67, 69, 67, 192, 51, 6, 39, 91, 72, 0, 16, 69, 68, 120, 113, 65, 16, 51, 108, 107, 81, 39, 88, 35, 51, 0, 24,
-			73, 42, 34, 135, 123, 50, 135, 71, 52, 223, 47, 39, 47, 108, 55, 37, 47, 108, 51, 37, 89, 65, 0, 10, 67, 29, 67, 192, 35, 91,
-			35, 72, 0, 25, 73, 8, 177, 209, 29, 226, 7, 115, 56, 64, 108, 89, 108, 51, 39, 55, 71, 108, 104, 17, 37, 57, 36, 0, 0, 16,
-			69, 197, 23, 199, 205, 64, 81, 35, 51, 65, 108, 57, 36, 91, 0, 14, 69, 184, 124, 32, 31, 48, 76, 108, 49, 50, 108, 57, 0, 20,
-			71, 182, 39, 176, 32, 119, 135, 128, 48, 40, 55, 35, 49, 71, 108, 55, 108, 50, 0, 10, 67, 180, 226, 128, 48, 39, 101, 47, 0, 19,
-			70, 136, 114, 145, 182, 39, 162, 84, 108, 47, 36, 51, 48, 39, 55, 39, 12, 0, 11, 67, 125, 72, 136, 65, 35, 91, 40, 71, 0, 18,
-			70, 78, 34, 47, 192, 172, 226, 89, 40, 71, 90, 36, 49, 47, 37, 84, 0, 18, 70, 76, 132, 179, 182, 39, 162, 89, 35, 71, 88, 37,
-			48, 39, 55, 39, 0, 16, 69, 71, 52, 160, 113, 64, 51, 37, 88, 50, 35, 104, 17, 91, 0, 15, 69, 60, 116, 115, 137, 64, 72, 108,
-			51, 37, 57, 40, 91, 0, 18, 70, 56, 124, 19, 180, 116, 115, 101, 108, 49, 89, 36, 48, 108, 51, 37, 0, 13, 67, 53, 22, 242, 107,
-			36, 51, 83, 36, 57, 36, 0, 15, 69, 33, 28, 202, 205, 64, 71, 36, 51, 37, 47, 37, 91, 0, 15, 69, 31, 4, 199, 205, 64, 39,
-			49, 89, 108, 57, 36, 91, 0, 16, 69, 30, 2, 161, 31, 48, 36, 50, 47, 36, 107, 108, 57, 36, 0, 21, 71, 29, 236, 10, 70, 39,
-			179, 40, 36, 55, 36, 49, 47, 36, 51, 39, 55, 37, 47, 0, 16, 69, 29, 50, 145, 206, 32, 36, 89, 47, 36, 51, 37, 57, 39, 0,
-			16, 69, 9, 39, 199, 205, 64, 19, 108, 88, 65, 108, 57, 36, 91, 0, 16, 70, 8, 225, 222, 78, 36, 128, 108, 101, 108, 55, 89, 40,
-			88, 0, 0, 18, 70, 137, 226, 135, 124, 164, 64, 84, 39, 55, 47, 108, 65, 36, 47, 51, 0, 18, 70, 133, 252, 224, 94, 36, 64, 107,
-			35, 65, 37, 50, 47, 39, 12, 51, 0, 18, 70, 133, 241, 224, 94, 36, 64, 107, 35, 65, 108, 50, 10, 47, 39, 51, 0, 17, 70, 131,
-			53, 7, 34, 36, 64, 50, 36, 57, 91, 108, 71, 40, 51, 0, 17, 70, 128, 120, 95, 198, 40, 0, 50, 108, 107, 35, 65, 81, 40, 50,
-			0, 13, 68, 127, 4, 179, 192, 65, 36, 49, 88, 37, 49, 0, 21, 70, 124, 168, 158, 204, 120, 0, 65, 39, 47, 36, 84, 35, 55, 55,
-			37, 57, 108, 50, 0, 12, 68, 110, 40, 51, 192, 83, 39, 50, 37, 49, 0, 17, 70, 35, 54, 81, 108, 120, 0, 71, 37, 10, 36, 51,
-			83, 108, 50, 0, 18, 70, 29, 50, 145, 138, 248, 0, 36, 89, 47, 36, 51, 39, 90, 36, 50, 0, 17, 70, 9, 242, 34, 120, 120, 19,
-			108, 65, 71, 40, 55, 108, 50, 89, 0, 17, 70, 9, 226, 7, 41, 24, 147, 108, 55, 71, 108, 47, 51, 39, 89, 0, 0, 12, 67, 193,
-			19, 138, 49, 36, 51, 36, 101, 47, 0, 18, 70, 181, 20, 202, 204, 252, 192, 48, 35, 51, 35, 89, 47, 37, 72, 37, 0, 16, 69, 181,
-			17, 224, 41, 32, 48, 35, 51, 108, 50, 47, 36, 88, 0, 15, 69, 132, 124, 212, 138, 0, 107, 108, 57, 36, 91, 40, 50, 0, 16, 68,
-			125, 49, 158, 200, 65, 35, 89, 19, 35, 55, 36, 57, 36, 0, 18, 69, 124, 167, 7, 70, 0, 65, 39, 47, 36, 104, 17, 108, 51, 36,
-			50, 0, 16, 70, 80, 120, 49, 132, 124, 192, 91, 108, 50, 81, 107, 108, 57, 0, 16, 69, 51, 20, 83, 137, 32, 75, 36, 81, 35, 51,
-			89, 40, 88, 0, 17, 70, 48, 119, 207, 28, 252, 192, 75, 108, 65, 36, 72, 108, 72, 37, 0, 16, 69, 35, 54, 209, 137, 32, 71, 37,
-			57, 35, 83, 51, 40, 88, 0, 11, 67, 35, 8, 0, 71, 39, 49, 39, 50, 0, 11, 67, 33, 24, 0, 71, 36, 51, 35, 50, 0, 16,
-			69, 32, 244, 136, 30, 0, 71, 35, 72, 88, 35, 71, 108, 50, 0, 0, 18, 70, 181, 20, 237, 123, 52, 192, 48, 36, 51, 89, 48, 39,
-			55, 37, 89, 0, 11, 67, 128, 227, 192, 50, 39, 101, 39, 72, 0, 11, 67, 128, 120, 176, 50, 108, 84, 35, 49, 0, 13, 68, 124, 211,
-			226, 60, 65, 35, 107, 72, 40, 72, 0, 16, 69, 76, 140, 17, 136, 208, 89, 35, 71, 39, 49, 51, 40, 107, 0, 18, 70, 60, 119, 200,
-			120, 248, 145, 72, 108, 65, 71, 36, 55, 72, 39, 51, 0, 10, 67, 58, 44, 240, 101, 40, 35, 49, 0, 15, 68, 40, 132, 82, 60, 47,
-			35, 71, 35, 51, 88, 35, 72, 0, 0, 12, 67, 183, 12, 204, 48, 35, 49, 36, 57, 75, 0, 20, 71, 181, 225, 211, 126, 39, 179, 72,
-			48, 36, 55, 108, 89, 65, 39, 55, 37, 88, 0, 16, 69, 181, 20, 202, 206, 240, 48, 36, 51, 36, 89, 47, 37, 90, 0, 24, 73, 180,
-			116, 71, 62, 44, 19, 207, 1, 222, 48, 108, 51, 108, 72, 39, 49, 89, 37, 49, 108, 55, 0, 16, 70, 135, 59, 98, 111, 52, 128, 107,
-			37, 48, 39, 83, 37, 88, 0, 18, 70, 123, 8, 159, 136, 172, 226, 55, 39, 49, 39, 65, 39, 47, 37, 84, 0, 13, 68, 112, 120, 162,
-			40, 104, 17, 108, 84, 40, 47, 0, 18, 70, 63, 8, 145, 28, 172, 226, 72, 36, 49, 39, 51, 108, 47, 37, 84, 0, 13, 67, 61, 26,
-			242, 72, 35, 51, 51, 36, 57, 36, 0, 19, 70, 33, 17, 219, 72, 124, 212, 71, 35, 51, 35, 83, 88, 108, 57, 36, 91, 0, 18, 70,
-			32, 116, 72, 207, 12, 226, 71, 108, 51, 71, 37, 49, 37, 57, 40, 0, 15, 70, 31, 52, 162, 42, 43, 64, 37, 88, 39, 47, 39, 48,
-			0, 26, 73, 30, 2, 145, 128, 116, 243, 138, 1, 222, 35, 50, 47, 36, 51, 50, 108, 89, 37, 57, 39, 50, 108, 55, 0, 13, 68, 29,
-			241, 224, 40, 35, 65, 108, 50, 35, 47, 0, 0, 11, 67, 187, 56, 15, 76, 37, 50, 35, 72, 0, 11, 67, 185, 60, 207, 76, 39, 89,
-			37, 72, 0, 11, 67, 183, 12, 207, 48, 39, 49, 37, 72, 0, 16, 69, 181, 24, 115, 72, 240, 48, 35, 51, 107, 37, 88, 35, 72, 0,
-			19, 70, 133, 17, 240, 123, 56, 147, 107, 36, 51, 108, 49, 55, 37, 57, 40, 89, 0, 12, 67, 115, 56, 143, 104, 17, 39, 57, 40, 72,
-			0, 14, 69, 80, 120, 81, 136, 240, 91, 108, 107, 51, 40, 72, 0, 10, 67, 68, 120, 15, 51, 108, 50, 72, 0, 23, 71, 52, 241, 222,
-			125, 195, 226, 68, 107, 35, 72, 72, 35, 55, 65, 35, 104, 17, 72, 40, 51, 0, 13, 68, 35, 54, 202, 192, 71, 37, 83, 47, 35, 49,
-			0, 11, 67, 34, 21, 0, 71, 36, 107, 36, 91, 0, 14, 69, 32, 116, 143, 204, 240, 71, 108, 88, 72, 37, 72, 0, 16, 70, 29, 50,
-			135, 123, 56, 0, 36, 89, 47, 108, 55, 37, 50, 0, 0, 10, 67, 192, 124, 202, 49, 108, 57, 47, 0, 12, 67, 181, 229, 10, 48, 35,
-			55, 35, 91, 47, 0, 17, 70, 135, 51, 209, 137, 236, 210, 107, 37, 72, 51, 39, 55, 37, 88, 0, 14, 68, 127, 1, 212, 32, 65, 39,
-			49, 108, 91, 36, 83, 0, 18, 69, 125, 81, 207, 112, 160, 65, 39, 89, 108, 72, 36, 104, 17, 35, 47, 0, 14, 67, 108, 168, 138, 83,
-			39, 47, 39, 84, 84, 35, 47, 0, 14, 69, 70, 36, 199, 56, 160, 51, 40, 89, 108, 101, 47, 0, 15, 69, 69, 55, 207, 30, 0, 51,
-			35, 89, 65, 72, 108, 50, 0, 17, 69, 68, 200, 158, 204, 160, 51, 35, 75, 39, 55, 37, 57, 35, 47, 0, 14, 68, 48, 115, 235, 200,
-			75, 108, 72, 72, 36, 57, 36, 0, 13, 67, 40, 220, 202, 47, 35, 107, 37, 57, 35, 47, 0, 15, 69, 32, 116, 173, 56, 160, 71, 108,
-			88, 48, 39, 101, 47, 0, 14, 69, 30, 12, 115, 56, 160, 35, 50, 81, 37, 101, 47, 0, 25, 73, 28, 226, 145, 111, 52, 179, 192, 241,
-			224, 35, 101, 47, 35, 51, 83, 37, 88, 37, 49, 72, 108, 50, 0, 22, 71, 9, 18, 145, 197, 17, 219, 204, 108, 51, 47, 36, 51, 39,
-			81, 36, 51, 108, 83, 37, 0, 14, 68, 9, 4, 84, 32, 108, 88, 35, 51, 91, 35, 71, 0, 15, 65, 16, 6, 84, 108, 84, 4, 107,
-			35, 65, 88, 36, 12, 0, 0, 14, 68, 207, 3, 224, 60, 57, 36, 49, 72, 35, 50, 72, 0, 13, 68, 134, 37, 32, 196, 107, 40, 91,
-			35, 50, 81, 0, 11, 67, 134, 33, 192, 6, 107, 35, 84, 108, 0, 10, 67, 129, 49, 192, 50, 36, 89, 108, 0, 14, 68, 77, 18, 32,
-			60, 89, 35, 51, 71, 35, 50, 72, 0, 12, 68, 58, 33, 224, 60, 6, 101, 108, 50, 72, 0, 14, 68, 42, 33, 224, 60, 47, 35, 84,
-			108, 50, 35, 72, 0, 11, 68, 34, 44, 243, 60, 71, 40, 37, 72, 0, 0, 17, 70, 133, 17, 240, 123, 50, 128, 107, 36, 51, 108, 49,
-			55, 37, 47, 0, 13, 68, 131, 17, 212, 40, 50, 36, 81, 108, 91, 47, 0, 16, 70, 130, 36, 83, 28, 226, 128, 50, 40, 51, 89, 108,
-			101, 47, 0, 19, 71, 127, 60, 17, 137, 60, 34, 180, 65, 37, 49, 51, 39, 89, 49, 39, 48, 0, 10, 67, 110, 44, 34, 83, 39, 49,
-			39, 0, 14, 68, 67, 1, 226, 40, 88, 36, 49, 108, 84, 35, 47, 0, 12, 67, 46, 8, 179, 89, 35, 50, 35, 84, 37, 0, 14, 68,
-			41, 17, 226, 40, 47, 35, 51, 108, 84, 35, 47, 0, 27, 73, 40, 114, 209, 33, 17, 224, 199, 52, 128, 47, 35, 35, 89, 89, 39, 51,
-			71, 35, 51, 35, 50, 81, 37, 88, 0, 16, 70, 32, 115, 211, 136, 226, 128, 71, 108, 72, 89, 40, 101, 47, 0, 13, 68, 30, 12, 84,
-			40, 35, 50, 81, 39, 91, 47, 0, 21, 71, 29, 236, 10, 70, 39, 179, 72, 36, 55, 36, 49, 47, 36, 51, 39, 55, 37, 88, 0, 0,
-			11, 67, 137, 229, 0, 84, 36, 55, 35, 91, 0, 16, 69, 127, 52, 98, 128, 240, 65, 37, 51, 35, 84, 35, 50, 72, 0, 15, 69, 121,
-			242, 7, 128, 240, 55, 39, 65, 71, 108, 50, 72, 0, 10, 67, 110, 44, 7, 83, 40, 49, 108, 0, 13, 67, 109, 196, 71, 83, 39, 104,
-			17, 35, 51, 108, 0, 17, 70, 109, 28, 207, 71, 60, 0, 83, 36, 51, 37, 72, 51, 37, 49, 0, 17, 69, 73, 168, 8, 136, 240, 88,
-			35, 104, 17, 50, 35, 71, 40, 72, 0, 12, 67, 68, 68, 199, 51, 39, 19, 35, 89, 108, 0, 20, 71, 61, 248, 176, 68, 114, 179, 192,
-			72, 36, 65, 39, 49, 51, 108, 47, 37, 49, 0, 17, 70, 58, 33, 225, 204, 245, 15, 101, 108, 107, 37, 72, 91, 39, 72, 0, 17, 70,
-			51, 50, 17, 123, 56, 0, 75, 37, 71, 36, 51, 55, 37, 50, 0, 17, 69, 43, 4, 98, 128, 240, 47, 35, 49, 51, 35, 84, 35, 50,
-			72, 0, 11, 67, 33, 232, 135, 71, 35, 55, 84, 108, 0, 15, 69, 32, 232, 135, 128, 240, 71, 36, 101, 108, 50, 35, 72, 0, 15, 70,
-			30, 44, 17, 31, 56, 0, 39, 49, 51, 108, 57, 50, 0, 21, 71, 29, 236, 10, 70, 40, 51, 192, 36, 55, 36, 49, 47, 36, 51, 39,
-			50, 37, 49, 0, 21, 72, 29, 59, 71, 68, 161, 240, 137, 48, 36, 89, 48, 108, 51, 47, 108, 49, 40, 89, 0, 0, 14, 68, 125, 178,
-			145, 204, 65, 39, 83, 47, 35, 51, 37, 0, 14, 68, 92, 132, 83, 204, 47, 35, 71, 35, 51, 89, 37, 0, 17, 69, 61, 24, 15, 80,
-			160, 72, 35, 51, 35, 50, 72, 35, 91, 47, 0, 18, 70, 61, 17, 224, 60, 115, 138, 72, 35, 51, 35, 50, 72, 108, 101, 47, 0, 14,
-			69, 40, 119, 136, 136, 160, 47, 108, 55, 71, 39, 47, 0, 18, 69, 32, 118, 202, 136, 160, 71, 108, 83, 39, 47, 39, 84, 84, 35, 47,
-			0, 15, 69, 8, 140, 98, 80, 160, 108, 71, 10, 81, 40, 91, 47, 0, 0, 11, 67, 125, 225, 192, 65, 39, 55, 55, 108, 0, 17, 70,
-			86, 33, 200, 63, 51, 192, 89, 35, 84, 108, 71, 72, 37, 72, 0, 18, 70, 35, 49, 222, 31, 51, 192, 71, 37, 57, 108, 55, 108, 57,
-			35, 72, 0, 0, 16, 69, 193, 24, 135, 79, 48, 49, 39, 51, 39, 84, 108, 89, 37, 0, 12, 68, 182, 39, 179, 180, 48, 39, 55, 37,
-			48, 0, 11, 67, 127, 6, 243, 65, 39, 49, 83, 37, 0, 16, 69, 124, 168, 135, 71, 48, 65, 39, 47, 35, 84, 108, 51, 37, 0, 27,
-			73, 124, 114, 25, 60, 119, 151, 35, 54, 115, 65, 108, 71, 35, 19, 72, 39, 47, 47, 35, 71, 37, 19, 36, 12, 0, 15, 69, 33, 60,
-			199, 71, 48, 71, 36, 89, 57, 108, 51, 37, 0, 15, 69, 10, 12, 30, 30, 32, 108, 50, 49, 36, 55, 108, 84, 0, 10, 67, 8, 131,
-			51, 108, 71, 75, 37, 0, 0, 8, 66, 192, 240, 49, 39, 72, 0, 18, 70, 129, 252, 207, 30, 12, 207, 50, 36, 65, 37, 72, 108, 50,
-			37, 72, 0, 13, 67, 125, 86, 199, 65, 39, 89, 35, 83, 83, 108, 0, 16, 69, 124, 195, 224, 204, 112, 65, 35, 75, 72, 50, 37, 57,
-			108, 0, 11, 67, 123, 55, 135, 55, 36, 57, 55, 108, 0, 12, 67, 113, 55, 192, 104, 17, 35, 89, 35, 65, 0, 21, 71, 108, 168, 136,
-			206, 34, 179, 192, 83, 39, 47, 39, 71, 37, 57, 39, 47, 37, 49, 0, 12, 67, 82, 8, 135, 91, 36, 50, 35, 84, 108, 0, 12, 67,
-			81, 28, 7, 91, 39, 51, 35, 49, 108, 0, 10, 67, 70, 34, 7, 51, 39, 71, 108, 0, 10, 67, 49, 55, 192, 75, 36, 89, 65, 0,
-			16, 69, 41, 84, 115, 52, 112, 47, 35, 89, 51, 37, 107, 35, 50, 0, 17, 70, 41, 28, 222, 206, 40, 0, 47, 36, 51, 37, 55, 57,
-			40, 50, 0, 16, 69, 35, 24, 160, 204, 112, 71, 36, 81, 39, 50, 37, 57, 108, 0, 16, 69, 33, 229, 34, 207, 0, 71, 39, 55, 91,
-			39, 84, 37, 49, 0, 15, 67, 33, 147, 199, 4, 71, 6, 35, 12, 19, 72, 35, 50, 0, 12, 67, 33, 55, 192, 71, 36, 89, 65, 36,
-			12, 0, 15, 69, 29, 184, 135, 132, 112, 35, 83, 84, 108, 107, 35, 50, 0, 9, 67, 29, 55, 192, 36, 89, 65, 0, 9, 67, 9, 55,
-			192, 108, 89, 65, 0, 0, 13, 68, 137, 20, 199, 204, 84, 36, 51, 89, 108, 57, 0, 17, 70, 135, 51, 209, 137, 236, 202, 107, 37, 72,
-			51, 39, 55, 37, 47, 0, 13, 68, 129, 40, 158, 204, 50, 39, 88, 40, 55, 37, 0, 20, 70, 113, 84, 71, 120, 245, 10, 104, 17, 35,
-			89, 51, 39, 72, 72, 35, 91, 47, 0, 11, 67, 105, 55, 128, 104, 17, 39, 89, 55, 0, 11, 67, 101, 55, 128, 35, 12, 89, 35, 55,
-			0, 11, 67, 69, 55, 128, 51, 39, 89, 39, 55, 0, 18, 70, 33, 34, 51, 29, 28, 192, 71, 39, 88, 71, 37, 57, 108, 51, 37, 0,
-			13, 68, 30, 4, 111, 204, 36, 50, 36, 51, 90, 37, 0, 0, 11, 67, 197, 17, 219, 81, 36, 51, 108, 83, 0, 15, 67, 125, 196, 223,
-			65, 39, 104, 17, 35, 89, 89, 36, 65, 0, 13, 68, 125, 28, 222, 28, 65, 36, 51, 37, 55, 108, 0, 16, 68, 124, 168, 155, 28, 65,
-			39, 47, 36, 84, 35, 83, 83, 108, 0, 11, 67, 120, 120, 176, 55, 108, 84, 35, 49, 0, 13, 68, 101, 248, 159, 28, 39, 65, 40, 65,
-			35, 50, 0, 11, 67, 76, 193, 219, 89, 36, 75, 108, 83, 0, 14, 67, 42, 36, 95, 47, 35, 84, 35, 51, 51, 39, 65, 0, 11, 67,
-			40, 116, 95, 47, 108, 51, 39, 65, 0, 17, 70, 33, 225, 199, 49, 17, 192, 71, 36, 55, 108, 36, 75, 51, 108, 0, 7, 65, 148, 6,
-			35, 50, 0, 0, 12, 67, 181, 28, 94, 48, 39, 51, 81, 39, 55, 0, 14, 67, 125, 149, 222, 65, 39, 19, 35, 47, 47, 35, 55, 0,
-			16, 69, 125, 50, 162, 123, 48, 65, 39, 89, 47, 39, 12, 55, 37, 0, 11, 67, 51, 56, 136, 75, 40, 57, 40, 71, 0, 11, 67, 31,
-			4, 222, 36, 49, 89, 36, 55, 0, 12, 67, 29, 242, 128, 39, 65, 65, 6, 35, 47, 0, 11, 67, 29, 44, 94, 39, 88, 81, 35, 55,
-			0, 0, 12, 67, 197, 234, 225, 81, 35, 55, 55, 36, 12, 0, 15, 69, 136, 120, 179, 120, 112, 84, 108, 84, 36, 57, 55, 108, 0, 15,
-			68, 133, 33, 209, 124, 6, 107, 36, 88, 108, 51, 39, 65, 0, 16, 68, 125, 195, 235, 124, 65, 39, 104, 17, 35, 72, 72, 35, 65, 0,
-			15, 68, 125, 146, 149, 124, 65, 39, 19, 47, 35, 89, 35, 65, 0, 17, 68, 124, 168, 161, 124, 65, 39, 47, 36, 84, 35, 107, 107, 36,
-			65, 0, 17, 68, 124, 168, 141, 124, 65, 39, 47, 36, 84, 35, 107, 107, 36, 65, 0, 17, 70, 123, 54, 202, 68, 124, 0, 55, 37, 83,
-			47, 36, 51, 108, 49, 0, 13, 67, 113, 19, 97, 104, 17, 39, 51, 107, 36, 12, 0, 11, 67, 62, 36, 97, 72, 39, 51, 36, 12, 0,
-			12, 67, 62, 35, 97, 72, 39, 12, 107, 36, 12, 0, 11, 67, 52, 196, 97, 107, 39, 75, 51, 36, 0, 16, 67, 41, 152, 79, 47, 35,
-			19, 10, 35, 107, 10, 107, 39, 72, 0, 17, 70, 41, 24, 159, 34, 40, 0, 47, 39, 51, 39, 65, 71, 39, 50, 0, 17, 69, 32, 119,
-			211, 124, 112, 71, 108, 65, 39, 89, 35, 65, 65, 108, 0, 11, 68, 30, 37, 71, 108, 39, 89, 108, 83, 0, 12, 68, 29, 76, 7, 108,
-			36, 91, 49, 108, 83, 0, 22, 72, 9, 23, 199, 42, 36, 72, 128, 240, 108, 51, 65, 108, 47, 39, 51, 71, 35, 50, 72, 0, 0, 12,
-			67, 197, 20, 224, 81, 39, 51, 39, 89, 50, 0, 12, 67, 129, 177, 220, 50, 36, 83, 108, 104, 17, 0, 19, 70, 128, 132, 79, 132, 124,
-			192, 50, 35, 71, 35, 51, 72, 107, 108, 57, 36, 0, 15, 68, 127, 7, 235, 120, 65, 39, 49, 35, 65, 65, 36, 55, 0, 14, 67, 126,
-			36, 78, 65, 39, 84, 35, 51, 51, 36, 101, 0, 14, 68, 125, 147, 235, 120, 65, 39, 35, 72, 72, 36, 55, 0, 15, 68, 124, 215, 171,
-			120, 65, 39, 107, 35, 55, 55, 36, 55, 0, 16, 69, 122, 20, 202, 30, 0, 55, 35, 107, 36, 89, 47, 108, 50, 0, 13, 67, 105, 18,
-			10, 104, 17, 39, 51, 71, 35, 47, 0, 12, 67, 85, 177, 220, 89, 36, 83, 108, 104, 17, 0, 10, 67, 71, 23, 128, 51, 36, 81, 55,
-			0, 11, 67, 35, 24, 0, 71, 36, 81, 35, 50, 0, 11, 67, 33, 247, 128, 71, 36, 65, 39, 55, 0, 11, 67, 33, 40, 0, 71, 36,
-			88, 35, 50, 0, 16, 70, 10, 1, 202, 137, 236, 192, 108, 50, 108, 47, 39, 55, 37, 0, 10, 67, 9, 232, 0, 108, 55, 36, 50, 0,
-			10, 67, 31, 56, 0, 37, 12, 50, 0, 76, 0, 11, 67, 206, 36, 219, 57, 40, 89, 36, 83, 0, 11, 67, 197, 17, 223, 81, 36, 51,
-			108, 65, 0, 21, 71, 192, 119, 179, 109, 24, 51, 28, 49, 108, 55, 37, 83, 39, 51, 50, 37, 57, 108, 0, 11, 67, 185, 28, 240, 76,
-			36, 51, 37, 49, 0, 17, 69, 129, 252, 209, 77, 240, 50, 36, 65, 37, 51, 36, 89, 35, 65, 0, 11, 67, 126, 37, 48, 65, 40, 91,
-			35, 49, 0, 14, 68, 125, 51, 145, 132, 65, 35, 89, 101, 35, 51, 36, 0, 14, 68, 124, 244, 83, 132, 65, 35, 72, 51, 36, 89, 36,
-			0, 20, 70, 124, 168, 7, 136, 129, 192, 65, 39, 47, 36, 50, 108, 84, 36, 71, 35, 50, 0, 11, 67, 123, 17, 223, 55, 36, 81, 108,
-			65, 0, 12, 67, 113, 248, 64, 104, 17, 35, 65, 36, 12, 0, 10, 67, 112, 120, 64, 104, 17, 108, 107, 0, 15, 68, 79, 49, 209, 132,
-			89, 35, 57, 57, 108, 51, 36, 12, 0, 12, 67, 69, 49, 223, 51, 35, 89, 89, 108, 65, 0, 9, 67, 68, 120, 64, 51, 108, 107, 0,
-			13, 68, 57, 28, 215, 132, 101, 35, 51, 37, 47, 36, 0, 11, 67, 53, 113, 223, 107, 39, 47, 108, 65, 0, 11, 67, 53, 49, 223, 107,
-			36, 89, 108, 65, 0, 11, 67, 49, 33, 223, 75, 39, 88, 108, 65, 0, 13, 67, 43, 55, 223, 47, 35, 57, 65, 65, 39, 65, 0, 14,
-			67, 40, 52, 219, 47, 35, 19, 35, 89, 89, 39, 83, 0, 18, 70, 30, 6, 209, 28, 241, 192, 36, 50, 83, 36, 51, 108, 72, 35, 50,
-			0, 18, 70, 29, 66, 136, 30, 17, 192, 36, 91, 47, 36, 71, 108, 107, 35, 50, 0, 12, 68, 29, 65, 217, 132, 36, 91, 108, 19, 36,
-			0, 15, 69, 29, 28, 71, 77, 240, 39, 51, 6, 81, 108, 89, 65, 0, 15, 68, 28, 241, 209, 132, 6, 36, 72, 4, 108, 51, 36, 12,
-			0, 12, 68, 28, 177, 209, 132, 36, 89, 108, 51, 36, 0, 13, 68, 28, 168, 176, 60, 39, 47, 39, 49, 35, 72, 0, 0, 10, 67, 189,
-			50, 128, 90, 36, 89, 47, 0, 14, 68, 125, 66, 135, 112, 65, 39, 91, 47, 108, 104, 17, 0, 14, 68, 125, 49, 240, 128, 65, 35, 89,
-			108, 49, 36, 50, 0, 16, 67, 124, 220, 204, 65, 39, 5, 107, 35, 6, 57, 57, 36, 75, 0, 12, 67, 124, 215, 222, 65, 35, 107, 65,
-			36, 55, 0, 15, 68, 115, 55, 199, 112, 104, 17, 36, 57, 65, 108, 104, 17, 0, 15, 68, 109, 193, 225, 40, 83, 36, 104, 17, 108, 107,
-			35, 47, 0, 14, 68, 97, 231, 199, 40, 88, 39, 55, 35, 65, 108, 47, 0, 14, 68, 81, 28, 217, 40, 91, 35, 51, 37, 19, 35, 47,
-			0, 11, 67, 79, 17, 222, 89, 36, 81, 108, 55, 0, 16, 69, 70, 212, 74, 30, 240, 51, 36, 48, 39, 51, 47, 108, 90, 0, 12, 67,
-			65, 161, 222, 88, 39, 104, 17, 108, 55, 0, 11, 67, 43, 56, 136, 47, 37, 57, 40, 71, 0, 15, 68, 41, 24, 71, 40, 47, 39, 51,
-			51, 35, 107, 108, 47, 0, 13, 68, 41, 23, 243, 40, 47, 36, 51, 65, 37, 47, 0, 10, 67, 30, 209, 222, 39, 48, 108, 55, 0, 13,
-			68, 29, 51, 71, 112, 36, 89, 107, 108, 104, 17, 0, 14, 68, 28, 215, 7, 112, 36, 107, 104, 17, 108, 104, 17, 0, 0, 13, 68, 197,
-			248, 7, 124, 81, 39, 65, 50, 108, 65, 0, 17, 70, 194, 44, 7, 194, 39, 135, 49, 39, 49, 108, 49, 40, 55, 108, 0, 13, 68, 181,
-			24, 71, 124, 48, 35, 51, 107, 108, 65, 0, 11, 67, 127, 55, 225, 65, 36, 57, 65, 36, 0, 12, 67, 126, 38, 79, 65, 39, 12, 19,
-			36, 72, 0, 18, 69, 126, 1, 220, 86, 16, 65, 39, 50, 108, 104, 17, 36, 89, 36, 12, 0, 13, 67, 125, 196, 64, 65, 35, 104, 17,
-			35, 51, 51, 0, 18, 69, 125, 161, 222, 94, 16, 65, 39, 104, 17, 108, 55, 36, 47, 36, 12, 0, 14, 68, 125, 81, 219, 52, 65, 39,
-			89, 108, 83, 36, 107, 0, 10, 67, 124, 164, 64, 65, 36, 47, 51, 0, 16, 69, 124, 115, 209, 48, 240, 65, 108, 72, 35, 51, 75, 35,
-			72, 0, 15, 68, 124, 71, 171, 108, 65, 39, 19, 35, 55, 55, 36, 83, 0, 17, 70, 109, 252, 224, 205, 55, 192, 83, 36, 65, 37, 50,
-			37, 89, 65, 0, 16, 69, 109, 19, 209, 207, 0, 83, 36, 51, 36, 72, 51, 37, 49, 0, 10, 67, 108, 164, 64, 83, 36, 47, 51, 0,
-			16, 69, 79, 58, 199, 70, 16, 89, 35, 57, 57, 108, 51, 36, 12, 0, 11, 67, 70, 35, 225, 51, 40, 72, 36, 12, 0, 14, 68, 61,
-			228, 77, 124, 72, 36, 55, 51, 35, 107, 65, 0, 13, 68, 61, 72, 7, 124, 72, 39, 91, 50, 108, 65, 0, 19, 69, 61, 18, 7, 70,
-			16, 72, 35, 51, 6, 71, 108, 51, 36, 57, 36, 12, 0, 15, 69, 57, 24, 7, 78, 16, 101, 39, 51, 50, 108, 89, 36, 0, 23, 72,
-			33, 24, 95, 30, 216, 138, 68, 112, 71, 36, 51, 35, 107, 65, 108, 48, 40, 47, 51, 108, 0, 12, 68, 29, 184, 71, 124, 36, 83, 107,
-			108, 65, 0, 18, 70, 29, 59, 112, 41, 23, 192, 36, 89, 48, 36, 49, 47, 51, 39, 65, 0, 19, 70, 29, 50, 151, 68, 115, 199, 36,
-			89, 47, 36, 47, 51, 108, 72, 35, 50, 0, 15, 69, 29, 20, 224, 204, 240, 35, 51, 89, 36, 50, 37, 72, 0, 13, 68, 28, 167, 243,
-			192, 35, 47, 39, 65, 37, 49, 0, 12, 68, 28, 136, 71, 124, 36, 71, 107, 108, 65, 0, 16, 69, 8, 132, 202, 70, 16, 108, 71, 89,
-			47, 36, 51, 36, 12, 0, 0, 12, 67, 194, 3, 224, 49, 35, 50, 72, 35, 50, 0, 16, 69, 192, 118, 31, 206, 0, 49, 108, 88, 36,
-			65, 36, 57, 50, 0, 15, 69, 128, 193, 211, 28, 160, 50, 36, 75, 108, 89, 108, 47, 0, 14, 68, 124, 167, 7, 120, 65, 36, 47, 104,
-			17, 108, 55, 0, 14, 68, 124, 166, 71, 120, 65, 39, 47, 35, 19, 108, 55, 0, 11, 67, 113, 28, 192, 104, 17, 39, 51, 37, 0, 13,
-			67, 113, 21, 10, 104, 17, 35, 51, 35, 91, 47, 0, 10, 67, 88, 220, 192, 88, 39, 107, 108, 0, 12, 67, 79, 1, 224, 89, 39, 49,
-			49, 108, 50, 0, 10, 67, 68, 116, 202, 51, 108, 89, 47, 0, 12, 67, 65, 26, 202, 88, 39, 51, 51, 35, 47, 0, 12, 67, 63, 1,
-			224, 72, 39, 49, 49, 108, 50, 0, 11, 67, 49, 28, 192, 6, 75, 35, 51, 37, 0, 14, 67, 41, 103, 224, 47, 35, 88, 35, 65, 65,
-			39, 50, 0, 12, 67, 33, 236, 218, 71, 35, 55, 37, 104, 17, 0, 11, 67, 33, 44, 0, 71, 35, 88, 35, 49, 0, 12, 68, 30, 6,
-			199, 120, 36, 50, 83, 108, 55, 0, 9, 67, 29, 76, 0, 35, 91, 49, 0, 0, 11, 67, 186, 1, 209, 76, 36, 50, 108, 51, 0, 12,
-			67, 182, 247, 209, 48, 35, 90, 65, 39, 51, 0, 12, 67, 130, 44, 17, 50, 39, 12, 49, 35, 51, 0, 16, 70, 127, 51, 162, 29, 24,
-			64, 65, 36, 57, 101, 108, 51, 36, 0, 19, 70, 125, 50, 159, 123, 8, 64, 65, 39, 89, 47, 35, 65, 55, 35, 49, 36, 0, 13, 68,
-			125, 19, 199, 60, 65, 39, 51, 72, 108, 72, 0, 14, 67, 125, 19, 149, 65, 39, 51, 35, 101, 101, 35, 89, 0, 15, 68, 120, 129, 207,
-			132, 55, 35, 71, 71, 108, 72, 36, 12, 0, 11, 67, 111, 55, 145, 83, 37, 55, 36, 51, 0, 22, 70, 105, 20, 71, 120, 220, 31, 104,
-			17, 39, 51, 35, 51, 39, 55, 107, 36, 49, 35, 65, 0, 18, 70, 74, 3, 31, 137, 24, 64, 88, 35, 50, 75, 36, 65, 40, 51, 36,
-			0, 11, 67, 62, 225, 209, 72, 39, 76, 108, 51, 0, 12, 68, 62, 39, 199, 60, 72, 40, 65, 108, 72, 0, 12, 67, 57, 19, 145, 101,
-			36, 51, 101, 36, 51, 0, 11, 67, 49, 228, 192, 75, 35, 55, 35, 89, 0, 18, 70, 41, 241, 212, 31, 24, 64, 47, 35, 65, 108, 91,
-			108, 81, 35, 107, 0, 18, 70, 34, 39, 148, 139, 52, 223, 71, 39, 55, 91, 36, 84, 37, 89, 65, 0, 16, 69, 34, 24, 49, 29, 240,
-			71, 36, 107, 36, 50, 81, 108, 65, 0, 16, 70, 10, 12, 7, 61, 24, 64, 108, 50, 49, 108, 72, 51, 36, 0, 0, 12, 68, 206, 40,
-			71, 128, 57, 40, 107, 108, 50, 0, 12, 68, 206, 40, 7, 128, 57, 40, 50, 108, 50, 0, 13, 68, 195, 56, 71, 128, 49, 36, 57, 107,
-			108, 50, 0, 13, 68, 193, 251, 98, 40, 49, 39, 65, 48, 40, 47, 0, 14, 68, 193, 76, 207, 128, 49, 36, 91, 37, 72, 35, 50, 0,
-			11, 67, 184, 120, 148, 76, 108, 84, 39, 91, 0, 13, 68, 183, 60, 7, 128, 48, 36, 57, 49, 108, 50, 0, 14, 68, 183, 56, 147, 40,
-			48, 36, 57, 84, 35, 89, 47, 0, 14, 69, 182, 36, 74, 29, 224, 48, 39, 51, 47, 108, 55, 0, 13, 68, 182, 8, 71, 128, 48, 36,
-			50, 107, 108, 50, 0, 15, 68, 181, 236, 7, 128, 48, 36, 55, 55, 36, 49, 108, 50, 0, 17, 69, 181, 18, 156, 29, 224, 48, 39, 51,
-			47, 36, 104, 17, 108, 55, 0, 14, 68, 135, 51, 7, 128, 107, 35, 57, 35, 75, 108, 50, 0, 15, 69, 134, 3, 200, 29, 224, 107, 35,
-			50, 72, 71, 108, 55, 0, 14, 68, 133, 243, 199, 128, 107, 35, 65, 36, 72, 108, 50, 0, 14, 68, 131, 56, 159, 128, 50, 37, 57, 40,
-			65, 35, 50, 0, 14, 68, 129, 33, 240, 40, 50, 36, 88, 108, 49, 35, 47, 0, 14, 68, 127, 55, 7, 128, 65, 36, 57, 104, 17, 108,
-			50, 0, 16, 68, 126, 38, 235, 112, 65, 39, 84, 35, 83, 83, 35, 104, 17, 0, 16, 68, 125, 83, 235, 112, 65, 39, 89, 35, 72, 72,
-			36, 104, 17, 0, 14, 68, 125, 39, 7, 128, 65, 36, 88, 104, 17, 108, 50, 0, 12, 67, 121, 236, 115, 55, 35, 55, 36, 81, 37, 0,
-			10, 67, 111, 53, 128, 83, 36, 57, 88, 0, 13, 68, 81, 76, 71, 128, 91, 36, 91, 81, 108, 50, 0, 13, 68, 77, 248, 7, 128, 89,
-			36, 65, 50, 108, 50, 0, 14, 68, 77, 21, 199, 128, 89, 35, 51, 35, 47, 108, 50, 0, 13, 68, 74, 19, 199, 128, 88, 36, 107, 72,
-			108, 50, 0, 16, 70, 71, 52, 136, 29, 178, 128, 51, 37, 88, 71, 108, 83, 47, 0, 13, 68, 61, 50, 135, 128, 72, 35, 89, 47, 108,
-			50, 0, 17, 69, 61, 19, 158, 29, 224, 72, 35, 51, 101, 36, 55, 108, 55, 36, 0, 12, 67, 58, 4, 243, 101, 36, 50, 36, 89, 37,
-			0, 19, 70, 57, 38, 72, 120, 114, 128, 101, 39, 88, 35, 19, 71, 35, 55, 108, 47, 0, 15, 68, 57, 23, 7, 128, 101, 35, 51, 35,
-			104, 17, 108, 50, 0, 11, 67, 50, 42, 243, 75, 35, 84, 84, 37, 0, 13, 68, 50, 39, 135, 128, 75, 39, 12, 55, 108, 50, 0, 25,
-			73, 40, 164, 71, 76, 124, 240, 123, 56, 0, 47, 36, 47, 51, 108, 89, 108, 57, 49, 39, 55, 37, 50, 0, 13, 68, 33, 119, 135, 128,
-			71, 39, 47, 55, 108, 50, 0, 13, 68, 33, 50, 135, 128, 71, 39, 89, 47, 108, 50, 0, 17, 69, 32, 247, 224, 84, 128, 71, 35, 72,
-			65, 35, 50, 89, 35, 71, 0, 12, 68, 29, 252, 7, 128, 36, 65, 49, 108, 50, 0, 15, 69, 29, 232, 94, 29, 224, 35, 55, 107, 36,
-			55, 108, 55, 0, 13, 68, 29, 50, 135, 128, 39, 89, 6, 47, 108, 50, 0, 11, 67, 29, 20, 148, 35, 51, 88, 36, 91, 0, 15, 69,
-			29, 19, 225, 29, 224, 35, 51, 72, 36, 107, 108, 55, 0, 12, 68, 29, 8, 71, 128, 35, 88, 107, 108, 50, 0, 11, 67, 8, 236, 212,
-			108, 101, 36, 57, 91, 0, 0, 11, 67, 197, 36, 64, 81, 39, 88, 35, 51, 0, 13, 68, 193, 71, 243, 68, 49, 36, 91, 65, 37, 51,
-			0, 11, 67, 138, 8, 147, 84, 36, 50, 40, 89, 0, 11, 67, 133, 18, 147, 107, 36, 51, 47, 89, 0, 17, 69, 125, 145, 209, 110, 16,
-			65, 39, 19, 108, 51, 36, 83, 36, 12, 0, 17, 69, 125, 33, 243, 62, 16, 65, 39, 88, 108, 57, 36, 72, 36, 12, 0, 10, 67, 101,
-			4, 64, 39, 12, 88, 51, 0, 11, 67, 53, 4, 64, 107, 35, 88, 35, 51, 0, 21, 71, 41, 24, 138, 79, 12, 211, 124, 47, 36, 51,
-			39, 47, 36, 89, 49, 37, 89, 65, 0, 15, 70, 31, 52, 162, 196, 119, 192, 37, 88, 39, 81, 108, 65, 0, 12, 68, 29, 39, 243, 68,
-			36, 88, 65, 37, 51, 0, 15, 69, 29, 18, 143, 28, 240, 36, 51, 47, 36, 72, 108, 72, 0, 10, 67, 9, 4, 64, 108, 88, 35, 51,
-			0, 0, 17, 70, 183, 56, 10, 32, 119, 128, 48, 36, 57, 50, 47, 71, 108, 55, 0, 10, 67, 130, 28, 192, 50, 35, 107, 57, 0, 20,
-			70, 125, 50, 159, 123, 1, 202, 65, 39, 89, 47, 35, 65, 55, 35, 49, 108, 47, 0, 17, 69, 113, 231, 207, 30, 0, 104, 17, 35, 55,
-			35, 65, 72, 108, 50, 0, 13, 68, 70, 35, 240, 204, 51, 40, 72, 35, 49, 37, 0, 13, 68, 61, 24, 179, 80, 72, 35, 51, 84, 37,
-			91, 0, 13, 68, 41, 231, 243, 64, 47, 36, 55, 65, 37, 88, 0, 14, 68, 32, 242, 145, 204, 71, 35, 72, 47, 35, 51, 37, 0, 21,
-			70, 32, 212, 71, 121, 252, 202, 71, 35, 107, 51, 39, 55, 65, 36, 57, 57, 36, 47, 0, 17, 70, 29, 103, 205, 120, 119, 128, 36, 88,
-			65, 36, 107, 55, 108, 55, 0, 10, 67, 28, 193, 210, 36, 75, 108, 88, 0, 0, 11, 67, 124, 232, 145, 65, 35, 101, 39, 51, 0, 14,
-			69, 108, 124, 10, 137, 16, 83, 108, 49, 47, 39, 51, 0, 19, 70, 76, 167, 207, 204, 248, 64, 89, 36, 47, 35, 65, 72, 37, 72, 36,
-			12, 0, 11, 67, 68, 168, 145, 51, 39, 47, 39, 51, 0, 10, 67, 57, 229, 192, 101, 36, 55, 47, 0, 14, 67, 41, 120, 145, 47, 35,
-			47, 35, 84, 84, 39, 51, 0, 14, 68, 40, 116, 243, 76, 6, 47, 35, 89, 4, 37, 89, 0, 19, 70, 34, 3, 209, 29, 241, 223, 71,
-			35, 50, 72, 35, 51, 36, 65, 108, 65, 0, 11, 67, 33, 8, 145, 71, 39, 88, 40, 51, 0, 17, 69, 32, 244, 202, 137, 16, 71, 36,
-			72, 35, 89, 47, 40, 51, 36, 0, 20, 71, 29, 59, 81, 124, 114, 179, 60, 36, 89, 48, 36, 51, 65, 108, 47, 37, 72, 0, 0, 16,
-			70, 206, 40, 34, 123, 50, 128, 57, 39, 50, 39, 55, 37, 47, 0, 10, 67, 206, 36, 98, 57, 39, 51, 39, 0, 13, 68, 197, 72, 51,
-			72, 81, 36, 91, 50, 37, 88, 0, 20, 71, 192, 116, 78, 30, 3, 7, 40, 49, 108, 51, 101, 108, 50, 36, 75, 108, 47, 0, 12, 67,
-			186, 3, 212, 76, 36, 50, 72, 36, 91, 0, 11, 67, 181, 20, 98, 48, 39, 51, 51, 40, 0, 14, 68, 125, 145, 226, 88, 65, 39, 19,
-			108, 84, 36, 88, 0, 17, 70, 77, 244, 226, 131, 50, 128, 89, 35, 65, 89, 39, 50, 37, 47, 0, 15, 69, 69, 39, 224, 30, 32, 51,
-			35, 88, 65, 50, 108, 84, 0, 15, 69, 61, 17, 226, 205, 64, 72, 35, 51, 108, 84, 37, 91, 0, 14, 67, 41, 156, 212, 47, 35, 19,
-			35, 57, 57, 39, 91, 0, 18, 70, 33, 225, 199, 83, 1, 222, 71, 36, 55, 108, 36, 91, 49, 108, 55, 0, 12, 67, 33, 17, 243, 71,
-			35, 51, 108, 57, 36, 0, 16, 69, 28, 226, 145, 137, 64, 35, 101, 47, 35, 51, 84, 35, 91, 0, 16, 70, 28, 168, 173, 205, 50, 128,
-			39, 47, 39, 48, 37, 89, 47, 0, 0, 14, 68, 181, 236, 226, 68, 48, 39, 55, 37, 84, 36, 51, 0, 14, 68, 131, 49, 226, 68, 50,
-			35, 57, 108, 84, 35, 51, 0, 13, 68, 128, 227, 51, 68, 50, 35, 101, 75, 37, 51, 0, 13, 68, 128, 120, 136, 68, 50, 108, 84, 71,
-			35, 51, 0, 17, 70, 127, 52, 79, 29, 241, 207, 65, 37, 51, 72, 108, 65, 108, 72, 0, 14, 68, 125, 65, 226, 68, 65, 39, 91, 108,
-			84, 36, 51, 0, 18, 70, 125, 33, 205, 124, 120, 0, 65, 39, 88, 108, 107, 36, 65, 108, 50, 0, 14, 68, 124, 209, 226, 68, 65, 39,
-			107, 108, 84, 36, 51, 0, 16, 70, 124, 116, 199, 190, 36, 64, 65, 108, 89, 108, 90, 39, 51, 0, 14, 67, 124, 68, 211, 65, 39, 19,
-			35, 89, 89, 36, 89, 0, 16, 69, 109, 28, 7, 129, 48, 83, 36, 51, 36, 49, 108, 50, 89, 0, 15, 69, 101, 243, 202, 30, 80, 39,
-			65, 72, 35, 47, 35, 50, 0, 14, 68, 63, 51, 226, 68, 72, 37, 72, 36, 84, 35, 51, 0, 12, 67, 33, 18, 23, 71, 35, 51, 71,
-			35, 47, 0, 14, 69, 29, 88, 158, 30, 80, 39, 89, 40, 55, 35, 50, 0, 17, 70, 29, 50, 176, 32, 116, 64, 36, 89, 47, 36, 49,
-			71, 108, 51, 0, 19, 70, 28, 215, 207, 182, 1, 225, 35, 107, 65, 35, 72, 48, 35, 50, 108, 107, 0, 0, 19, 70, 182, 36, 79, 133,
-			193, 224, 48, 40, 51, 72, 36, 107, 104, 17, 108, 50, 0, 16, 68, 180, 244, 115, 80, 48, 36, 72, 35, 51, 37, 57, 35, 91, 0, 20,
-			71, 131, 49, 224, 61, 18, 135, 120, 50, 36, 108, 50, 72, 36, 51, 47, 108, 55, 0, 19, 70, 130, 34, 7, 139, 17, 224, 50, 39, 12,
-			71, 108, 84, 36, 81, 108, 50, 0, 16, 70, 127, 51, 162, 29, 28, 192, 65, 36, 57, 101, 108, 51, 37, 0, 14, 68, 126, 8, 71, 204,
-			65, 36, 50, 107, 108, 57, 36, 0, 15, 69, 79, 55, 179, 194, 0, 89, 37, 55, 37, 49, 39, 50, 0, 19, 70, 74, 3, 199, 129, 241,
-			224, 88, 36, 50, 72, 108, 50, 36, 65, 108, 50, 0, 19, 70, 74, 3, 199, 128, 161, 224, 88, 36, 50, 72, 108, 50, 36, 47, 108, 50,
-			0, 19, 70, 62, 209, 209, 41, 241, 224, 72, 36, 48, 108, 51, 47, 36, 65, 108, 50, 0, 14, 69, 62, 34, 30, 206, 0, 72, 40, 71,
-			55, 37, 50, 0, 13, 68, 58, 33, 225, 80, 6, 101, 108, 107, 36, 91, 0, 17, 70, 48, 119, 136, 29, 60, 192, 75, 108, 55, 36, 71,
-			108, 89, 37, 0, 20, 70, 33, 36, 113, 41, 28, 192, 6, 71, 39, 88, 39, 51, 81, 47, 35, 51, 37, 0, 14, 69, 29, 76, 32, 29,
-			32, 35, 91, 49, 50, 108, 88, 0, 19, 70, 29, 19, 243, 34, 21, 10, 39, 51, 72, 37, 71, 36, 107, 36, 91, 47, 0, 0, 16, 69,
-			197, 19, 199, 137, 16, 81, 36, 51, 72, 108, 84, 35, 51, 0, 11, 67, 192, 241, 240, 49, 39, 72, 108, 49, 0, 18, 70, 137, 225, 207,
-			205, 252, 209, 84, 36, 55, 108, 72, 37, 65, 37, 51, 0, 14, 67, 125, 178, 141, 65, 39, 83, 35, 47, 47, 36, 107, 0, 17, 69, 76,
-			226, 177, 65, 16, 89, 35, 101, 47, 81, 39, 88, 35, 51, 0, 16, 69, 68, 204, 211, 41, 16, 51, 36, 75, 37, 89, 47, 36, 51, 0,
-			16, 69, 61, 44, 223, 41, 16, 72, 39, 88, 37, 65, 36, 47, 51, 0, 16, 70, 32, 116, 91, 207, 4, 192, 71, 108, 51, 83, 37, 49,
-			89, 0, 11, 67, 29, 23, 240, 39, 51, 65, 35, 49, 0, 0, 20, 71, 182, 36, 81, 28, 204, 199, 128, 48, 40, 51, 51, 108, 75, 37,
-			57, 108, 50, 0, 13, 68, 181, 24, 179, 72, 48, 35, 51, 84, 37, 88, 0, 20, 71, 127, 56, 95, 30, 2, 135, 128, 65, 37, 107, 65,
-			108, 50, 36, 47, 108, 50, 0, 21, 71, 121, 242, 17, 76, 120, 7, 128, 55, 35, 65, 71, 35, 51, 89, 108, 50, 108, 50, 0, 11, 67,
-			77, 242, 128, 6, 89, 35, 65, 47, 0, 24, 72, 61, 50, 162, 68, 119, 153, 125, 224, 72, 35, 89, 47, 40, 51, 39, 55, 10, 35, 65,
-			35, 55, 0, 17, 70, 61, 20, 162, 62, 36, 128, 72, 35, 51, 88, 39, 72, 40, 88, 0, 17, 70, 57, 19, 226, 71, 52, 128, 101, 39,
-			51, 72, 39, 51, 37, 88, 0, 21, 71, 49, 164, 71, 111, 51, 199, 128, 75, 39, 104, 17, 51, 108, 83, 37, 72, 108, 50, 0, 15, 69,
-			48, 116, 98, 193, 64, 75, 108, 51, 40, 49, 36, 91, 0, 21, 71, 43, 8, 34, 122, 252, 211, 40, 47, 36, 49, 50, 39, 55, 39, 90,
-			37, 89, 47, 0, 19, 71, 35, 52, 202, 194, 33, 179, 40, 71, 37, 89, 47, 49, 40, 37, 12, 47, 0, 20, 71, 29, 243, 199, 61, 20,
-			199, 128, 36, 65, 72, 108, 72, 51, 35, 89, 108, 50, 0, 0, 17, 70, 133, 252, 224, 50, 36, 64, 107, 35, 65, 37, 50, 75, 40, 51,
-			0, 17, 70, 133, 248, 160, 50, 36, 64, 107, 35, 65, 40, 50, 75, 40, 51, 0, 18, 70, 131, 49, 226, 68, 120, 0, 50, 37, 57, 108,
-			84, 35, 51, 108, 50, 0, 17, 70, 127, 55, 179, 124, 164, 64, 65, 37, 55, 37, 65, 36, 47, 51, 0, 13, 68, 126, 183, 135, 192, 65,
-			35, 55, 55, 108, 49, 0, 10, 67, 77, 26, 192, 89, 36, 51, 51, 0, 11, 67, 45, 248, 143, 89, 35, 65, 40, 72, 0, 12, 68, 42,
-			36, 179, 100, 47, 39, 88, 37, 19, 0, 19, 70, 41, 17, 226, 68, 168, 0, 47, 36, 51, 108, 84, 36, 51, 47, 35, 50, 0, 16, 69,
-			33, 21, 7, 137, 48, 71, 35, 51, 91, 108, 84, 39, 89, 0, 18, 70, 29, 50, 145, 28, 168, 147, 36, 89, 47, 36, 51, 108, 47, 40,
-			89, 0, 21, 71, 29, 24, 160, 63, 8, 7, 68, 35, 51, 84, 35, 50, 72, 49, 36, 50, 108, 51, 0, 17, 70, 9, 226, 179, 124, 164,
-			64, 108, 55, 47, 37, 65, 36, 47, 51, 0, 0, 13, 68, 137, 226, 135, 188, 84, 39, 55, 47, 108, 90, 0, 16, 68, 125, 50, 141, 32,
-			65, 39, 89, 47, 35, 107, 35, 71, 71, 0, 15, 68, 114, 36, 95, 200, 104, 17, 39, 51, 65, 36, 57, 36, 0, 15, 69, 108, 168, 158,
-			205, 32, 83, 39, 47, 39, 55, 37, 88, 0, 12, 67, 57, 22, 202, 101, 36, 51, 36, 83, 47, 0, 12, 67, 33, 22, 202, 71, 36, 51,
-			35, 83, 47, 0, 15, 69, 29, 236, 30, 205, 32, 35, 55, 49, 39, 55, 37, 88, 0, 16, 69, 9, 17, 223, 181, 32, 108, 51, 108, 65,
-			6, 48, 35, 88, 0, 0, 11, 67, 50, 1, 205, 75, 36, 50, 108, 107, 0, 18, 70, 41, 24, 138, 123, 52, 192, 47, 35, 51, 39, 47,
-			36, 55, 37, 89, 0, 27, 74, 29, 59, 81, 124, 114, 162, 74, 33, 179, 60, 36, 89, 48, 36, 51, 65, 108, 47, 39, 88, 39, 19, 37,
-			72, 0, 0, 14, 67, 207, 10, 242, 6, 57, 36, 49, 49, 36, 57, 36, 0, 16, 70, 183, 52, 98, 123, 52, 128, 48, 37, 51, 39, 55,
-			37, 89, 0, 15, 69, 108, 117, 158, 28, 128, 83, 108, 88, 36, 55, 108, 71, 0, 14, 68, 89, 18, 7, 40, 88, 35, 51, 35, 71, 108,
-			47, 0, 15, 69, 70, 12, 74, 28, 128, 51, 35, 50, 81, 47, 108, 71, 0, 14, 68, 61, 231, 243, 40, 72, 39, 55, 39, 65, 37, 47,
-			0, 0, 16, 69, 192, 241, 223, 207, 0, 49, 39, 72, 108, 65, 57, 36, 49, 0, 15, 69, 132, 124, 72, 71, 16, 107, 108, 81, 71, 35,
-			51, 81, 0, 15, 68, 125, 70, 84, 100, 65, 39, 91, 35, 19, 91, 35, 19, 0, 12, 67, 125, 18, 143, 65, 39, 51, 47, 35, 72, 0,
-			12, 67, 110, 23, 207, 83, 35, 107, 65, 35, 72, 0, 11, 67, 108, 161, 207, 83, 36, 47, 108, 72, 0, 11, 67, 42, 220, 207, 47, 35,
-			48, 37, 72, 0, 19, 65, 20, 6, 35, 55, 36, 83, 36, 4, 107, 35, 65, 88, 36, 88, 37, 51, 0, 0, 10, 67, 182, 36, 74, 48,
-			39, 51, 47, 0, 17, 68, 125, 194, 17, 200, 65, 35, 104, 17, 71, 35, 51, 36, 57, 36, 0, 15, 68, 124, 199, 171, 200, 65, 35, 75,
-			35, 55, 55, 36, 12, 0, 19, 69, 115, 56, 159, 204, 160, 104, 17, 35, 57, 57, 40, 65, 37, 57, 35, 47, 0, 24, 71, 112, 114, 30,
-			204, 168, 71, 204, 104, 17, 108, 71, 36, 55, 37, 57, 35, 47, 107, 108, 57, 36, 0, 18, 70, 79, 8, 158, 29, 28, 210, 89, 36, 49,
-			39, 55, 108, 51, 37, 88, 0, 15, 69, 32, 116, 115, 138, 0, 71, 108, 51, 37, 57, 39, 50, 0, 15, 69, 29, 20, 224, 28, 160, 35,
-			51, 89, 36, 50, 108, 47, 0, 0, 15, 68, 185, 22, 160, 60, 76, 35, 51, 104, 17, 35, 50, 72, 0, 14, 68, 136, 135, 135, 196, 84,
-			36, 71, 6, 55, 108, 81, 0, 24, 73, 48, 252, 207, 29, 226, 135, 79, 52, 192, 75, 35, 72, 37, 72, 39, 47, 47, 35, 89, 37, 89,
-			0, 13, 68, 41, 248, 115, 60, 47, 35, 65, 107, 37, 72, 0, 14, 68, 35, 1, 225, 60, 71, 36, 49, 108, 107, 35, 72, 0, 17, 70,
-			9, 24, 159, 28, 172, 240, 108, 51, 39, 65, 108, 47, 37, 49, 0, 0, 14, 68, 193, 28, 240, 40, 49, 36, 51, 37, 49, 36, 47, 0,
-			16, 70, 180, 116, 71, 75, 50, 128, 48, 108, 51, 108, 88, 37, 47, 0, 10, 67, 126, 36, 243, 65, 40, 89, 108, 0, 19, 69, 125, 161,
-			222, 95, 32, 65, 39, 104, 17, 108, 55, 36, 47, 36, 57, 36, 0, 14, 69, 81, 246, 112, 136, 128, 91, 35, 65, 49, 40, 71, 0, 16,
-			70, 31, 4, 199, 120, 114, 128, 39, 49, 89, 108, 55, 108, 47, 0, 0, 11, 67, 137, 53, 199, 84, 39, 89, 47, 108, 0, 17, 69, 129,
-			252, 226, 124, 240, 50, 36, 65, 37, 57, 40, 65, 35, 72, 0, 11, 67, 126, 20, 199, 65, 35, 107, 89, 108, 0, 11, 67, 81, 148, 71,
-			91, 39, 35, 51, 108, 0, 14, 69, 78, 34, 19, 204, 240, 89, 40, 71, 89, 37, 72, 0, 27, 74, 41, 17, 224, 77, 184, 145, 124, 114,
-			162, 68, 47, 36, 51, 108, 50, 89, 83, 39, 51, 65, 108, 47, 39, 51, 0, 17, 70, 34, 12, 199, 127, 56, 0, 71, 36, 50, 57, 108,
-			65, 37, 50, 0, 25, 73, 29, 236, 10, 70, 39, 226, 42, 36, 64, 36, 55, 36, 49, 47, 36, 51, 39, 65, 39, 47, 39, 51, 0, 11,
-			67, 29, 196, 71, 36, 104, 17, 51, 108, 0, 0, 11, 67, 181, 236, 237, 48, 39, 55, 37, 48, 0, 13, 68, 139, 51, 198, 136, 84, 37,
-			72, 36, 19, 39, 0, 15, 69, 128, 124, 97, 30, 0, 50, 108, 81, 35, 107, 108, 50, 0, 15, 69, 123, 50, 162, 182, 0, 55, 37, 47,
-			39, 48, 39, 50, 0, 16, 69, 77, 244, 224, 204, 160, 89, 35, 65, 89, 39, 50, 37, 47, 0, 14, 68, 73, 19, 237, 204, 88, 35, 51,
-			72, 48, 36, 57, 0, 15, 68, 60, 135, 179, 136, 72, 35, 71, 36, 55, 57, 40, 0, 46, 7, 65, 152, 6, 39, 50, 0, 0, 13, 68,
-			198, 33, 209, 28, 81, 39, 84, 108, 51, 108, 0, 18, 70, 182, 8, 159, 28, 172, 240, 48, 36, 50, 39, 65, 108, 47, 37, 49, 0, 13,
-			68, 124, 241, 209, 28, 65, 39, 72, 108, 51, 108, 0, 18, 70, 61, 17, 223, 28, 172, 240, 72, 36, 51, 108, 65, 108, 47, 37, 49, 0,
-			13, 68, 29, 49, 211, 28, 35, 89, 108, 89, 35, 50, 0, 0, 0, 11, 67, 194, 6, 192, 49, 35, 50, 35, 83, 0, 15, 69, 127, 1,
-			224, 207, 0, 65, 36, 49, 108, 50, 37, 49, 0, 12, 67, 121, 118, 199, 55, 39, 47, 83, 35, 50, 0, 12, 67, 81, 22, 71, 91, 35,
-			51, 19, 35, 50, 0, 20, 71, 78, 43, 81, 78, 40, 51, 192, 89, 40, 48, 36, 51, 89, 39, 50, 37, 49, 0, 10, 67, 77, 230, 192,
-			89, 36, 55, 83, 0, 10, 67, 73, 230, 192, 88, 39, 55, 83, 0, 17, 70, 63, 52, 82, 124, 120, 0, 72, 37, 51, 88, 35, 65, 108,
-			50, 0, 11, 67, 57, 230, 192, 101, 35, 55, 35, 83, 0, 10, 67, 49, 230, 192, 75, 36, 55, 83, 0, 17, 70, 43, 52, 112, 124, 120,
-			0, 47, 37, 51, 49, 35, 65, 108, 50, 0, 11, 67, 41, 230, 192, 47, 35, 55, 35, 83, 0, 17, 70, 40, 116, 95, 192, 120, 0, 47,
-			108, 51, 65, 36, 49, 108, 50, 0, 10, 67, 29, 230, 192, 35, 55, 36, 83, 0, 19, 71, 29, 60, 207, 110, 39, 179, 192, 35, 89, 37,
-			72, 83, 40, 55, 37, 49, 0, 16, 69, 29, 50, 156, 84, 112, 36, 89, 47, 36, 104, 17, 89, 108, 0, 14, 5, 95, 48, 77, 50, 120,
-			65, 37, 55, 57, 40, 50, 0, 0, 17, 69, 197, 236, 240, 190, 0, 81, 36, 55, 37, 49, 39, 90, 36, 50, 0, 11, 67, 193, 236, 237,
-			49, 36, 55, 37, 48, 0, 14, 68, 61, 50, 148, 136, 72, 35, 89, 47, 36, 91, 39, 0, 18, 70, 29, 230, 135, 197, 28, 192, 36, 55,
-			104, 17, 108, 81, 35, 51, 37, 0, 0, 12, 67, 137, 81, 219, 84, 35, 89, 89, 108, 83, 0, 17, 70, 131, 49, 241, 29, 17, 192, 50,
-			37, 57, 108, 81, 108, 51, 108, 0, 14, 67, 126, 39, 155, 65, 39, 6, 35, 55, 55, 36, 83, 0, 11, 67, 61, 177, 217, 72, 36, 83,
-			108, 19, 0, 12, 67, 55, 1, 240, 107, 35, 49, 49, 108, 49, 0, 12, 67, 33, 23, 240, 71, 35, 51, 65, 35, 49, 0, 0, 11, 67,
-			192, 161, 200, 49, 36, 47, 108, 71, 0, 12, 67, 126, 12, 94, 65, 39, 50, 81, 39, 55, 0, 11, 67, 121, 145, 200, 55, 39, 19, 108,
-			71, 0, 12, 67, 86, 3, 222, 89, 35, 50, 72, 35, 55, 0, 11, 67, 71, 1, 200, 51, 36, 49, 108, 71, 0, 11, 67, 63, 52, 158,
-			72, 37, 88, 36, 55, 0, 12, 67, 48, 248, 158, 75, 35, 72, 84, 35, 55, 0, 10, 67, 28, 172, 222, 36, 47, 37, 55, 0, 0, 13,
-			68, 198, 44, 243, 124, 81, 40, 57, 37, 12, 65, 0, 8, 66, 198, 16, 81, 35, 107, 0, 11, 67, 194, 7, 192, 49, 39, 50, 35, 65,
-			0, 12, 67, 186, 27, 161, 76, 35, 107, 76, 35, 107, 0, 12, 67, 181, 20, 225, 48, 35, 51, 89, 36, 12, 0, 12, 67, 137, 17, 203,
-			84, 39, 51, 51, 108, 89, 0, 14, 68, 128, 248, 115, 124, 50, 35, 72, 35, 107, 37, 65, 0, 13, 68, 128, 116, 95, 192, 50, 108, 51,
-			65, 35, 49, 0, 14, 68, 127, 52, 83, 124, 65, 37, 51, 36, 89, 35, 65, 0, 12, 67, 112, 243, 64, 104, 17, 35, 72, 35, 107, 0,
-			11, 67, 85, 152, 161, 89, 35, 19, 84, 36, 0, 13, 68, 63, 56, 115, 124, 72, 36, 57, 107, 37, 65, 0, 14, 68, 42, 39, 179, 124,
-			47, 40, 55, 37, 57, 39, 65, 0, 13, 68, 40, 119, 179, 108, 47, 35, 19, 55, 37, 83, 0, 12, 67, 33, 20, 225, 71, 36, 51, 36,
-			89, 36, 0, 13, 67, 29, 252, 225, 39, 65, 35, 57, 57, 36, 12, 0, 12, 68, 29, 55, 135, 108, 35, 89, 55, 108, 83, 0, 12, 68,
-			28, 195, 71, 108, 36, 75, 107, 108, 83, 0, 0, 14, 68, 197, 226, 34, 120, 81, 39, 55, 39, 71, 40, 55, 0, 11, 67, 194, 231, 128,
-			49, 35, 76, 35, 55, 0, 12, 67, 137, 177, 220, 84, 36, 83, 108, 104, 17, 0, 11, 67, 134, 231, 128, 107, 35, 76, 35, 55, 0, 11,
-			67, 132, 120, 160, 107, 108, 84, 35, 50, 0, 11, 67, 131, 1, 202, 50, 39, 49, 108, 47, 0, 13, 67, 125, 119, 156, 65, 39, 47, 55,
-			35, 104, 17, 0, 14, 67, 124, 248, 160, 65, 39, 72, 35, 84, 84, 35, 50, 0, 14, 67, 113, 33, 220, 104, 17, 35, 88, 88, 108, 104,
-			17, 0, 13, 67, 112, 247, 202, 104, 17, 36, 72, 65, 35, 47, 0, 18, 70, 108, 244, 71, 43, 56, 128, 83, 36, 72, 36, 51, 108, 47,
-			37, 84, 0, 11, 67, 108, 168, 160, 83, 39, 47, 39, 50, 0, 12, 67, 80, 39, 202, 91, 36, 108, 65, 35, 47, 0, 19, 71, 76, 132,
-			179, 182, 43, 94, 136, 89, 35, 71, 88, 37, 48, 39, 55, 39, 0, 12, 67, 56, 247, 202, 101, 36, 72, 65, 35, 47, 0, 11, 67, 35,
-			56, 0, 6, 71, 36, 57, 50, 0, 13, 68, 34, 12, 71, 32, 71, 35, 50, 81, 108, 71, 0, 11, 67, 33, 72, 0, 71, 36, 91, 35,
-			50, 0, 11, 67, 31, 49, 220, 35, 57, 108, 104, 17, 0, 12, 68, 29, 120, 7, 32, 36, 47, 50, 108, 71, 0, 23, 72, 29, 50, 145,
-			28, 171, 243, 76, 160, 36, 89, 47, 36, 51, 108, 47, 36, 90, 37, 89, 47, 0, 12, 68, 29, 50, 135, 188, 36, 89, 47, 108, 90, 0,
-			11, 67, 9, 70, 202, 108, 91, 39, 83, 47, 0, 0, 15, 68, 197, 50, 145, 60, 6, 81, 39, 89, 47, 35, 51, 72, 0, 13, 68, 194,
-			1, 209, 60, 49, 39, 50, 108, 51, 72, 0, 11, 67, 193, 17, 223, 49, 36, 51, 108, 65, 0, 17, 69, 181, 232, 160, 205, 240, 48, 39,
-			55, 39, 50, 37, 57, 39, 65, 0, 12, 67, 137, 20, 240, 84, 36, 51, 36, 89, 49, 0, 14, 68, 134, 44, 210, 132, 107, 39, 84, 36,
-			57, 88, 36, 0, 15, 68, 134, 3, 211, 132, 107, 36, 50, 72, 36, 89, 36, 12, 0, 15, 69, 131, 49, 243, 205, 240, 50, 35, 57, 108,
-			37, 12, 65, 0, 11, 67, 131, 1, 205, 50, 36, 49, 108, 107, 0, 14, 68, 125, 71, 212, 132, 65, 36, 91, 65, 36, 91, 36, 0, 10,
-			67, 80, 120, 64, 91, 108, 12, 107, 0, 15, 69, 74, 3, 200, 29, 176, 88, 35, 50, 72, 71, 108, 83, 0, 16, 69, 58, 36, 98, 181,
-			176, 101, 39, 51, 51, 39, 48, 39, 83, 0, 11, 67, 49, 1, 223, 75, 39, 88, 108, 65, 0, 13, 67, 34, 232, 64, 71, 35, 6, 76,
-			76, 36, 12, 0, 14, 67, 31, 49, 223, 35, 12, 57, 57, 6, 57, 108, 65, 0, 15, 68, 29, 232, 115, 132, 36, 55, 108, 107, 37, 57,
-			36, 12, 0, 12, 68, 28, 211, 199, 44, 36, 107, 72, 108, 89, 0, 14, 68, 28, 136, 51, 132, 35, 71, 50, 37, 57, 36, 12, 0, 0,
-			11, 67, 193, 17, 222, 49, 39, 51, 108, 55, 0, 10, 67, 181, 50, 128, 48, 39, 89, 47, 0, 14, 68, 181, 24, 146, 128, 48, 39, 51,
-			84, 35, 88, 50, 0, 16, 69, 181, 20, 224, 30, 240, 48, 36, 51, 89, 39, 50, 108, 90, 0, 14, 68, 136, 124, 19, 128, 84, 108, 49,
-			6, 89, 35, 50, 0, 13, 67, 125, 164, 72, 65, 35, 104, 17, 51, 36, 71, 0, 15, 68, 113, 71, 135, 112, 104, 17, 36, 91, 55, 108,
-			104, 17, 0, 15, 68, 84, 247, 7, 40, 89, 35, 72, 35, 104, 17, 108, 47, 0, 12, 67, 81, 193, 222, 91, 39, 104, 17, 108, 55, 0,
-			12, 67, 81, 161, 222, 91, 39, 104, 17, 108, 55, 0, 10, 67, 80, 116, 111, 91, 108, 51, 90, 0, 14, 68, 79, 8, 7, 40, 89, 35,
-			49, 35, 50, 108, 47, 0, 12, 67, 73, 161, 222, 88, 39, 104, 17, 108, 55, 0, 14, 68, 53, 49, 207, 40, 107, 36, 89, 108, 72, 35,
-			47, 0, 18, 69, 52, 248, 21, 28, 128, 107, 35, 72, 72, 36, 50, 36, 89, 108, 71, 0, 15, 68, 52, 247, 7, 40, 107, 35, 72, 35,
-			104, 17, 108, 47, 0, 12, 68, 42, 40, 115, 128, 47, 39, 107, 37, 50, 0, 10, 67, 42, 2, 0, 47, 39, 50, 71, 0, 13, 68, 40,
-			119, 243, 128, 47, 35, 19, 65, 37, 50, 0, 14, 68, 33, 236, 199, 40, 71, 35, 55, 37, 57, 35, 47, 0, 16, 69, 32, 244, 112, 28,
-			128, 71, 35, 72, 51, 36, 49, 108, 71, 0, 13, 68, 30, 39, 7, 40, 39, 12, 104, 17, 108, 47, 0, 13, 68, 29, 227, 71, 112, 36,
-			55, 107, 108, 104, 17, 0, 13, 68, 29, 34, 135, 40, 35, 88, 39, 47, 108, 47, 0, 13, 68, 8, 248, 51, 128, 108, 72, 36, 50, 37,
-			50, 0, 0, 11, 67, 198, 20, 64, 81, 39, 107, 35, 51, 0, 15, 69, 182, 37, 8, 71, 16, 48, 40, 91, 71, 35, 51, 81, 0, 17,
-			69, 129, 252, 209, 76, 240, 50, 36, 65, 37, 51, 36, 89, 35, 72, 0, 11, 67, 128, 119, 207, 50, 108, 65, 35, 72, 0, 11, 67, 126,
-			20, 64, 65, 36, 12, 107, 51, 0, 14, 68, 124, 129, 209, 192, 65, 39, 71, 108, 51, 35, 49, 0, 13, 67, 113, 24, 161, 104, 17, 39,
-			51, 84, 36, 12, 0, 12, 67, 83, 56, 97, 91, 36, 57, 107, 36, 12, 0, 12, 67, 81, 151, 161, 91, 39, 19, 55, 36, 12, 0, 12,
-			67, 81, 24, 161, 91, 35, 51, 84, 36, 12, 0, 11, 67, 78, 209, 225, 89, 36, 48, 108, 107, 0, 11, 67, 69, 177, 225, 51, 36, 83,
-			108, 107, 0, 17, 70, 56, 117, 209, 49, 246, 64, 101, 108, 47, 36, 51, 75, 35, 65, 0, 15, 68, 54, 37, 94, 124, 107, 39, 12, 89,
-			36, 55, 35, 65, 0, 11, 67, 42, 5, 0, 47, 35, 50, 36, 91, 0, 15, 69, 41, 17, 219, 207, 0, 47, 36, 51, 108, 83, 37, 49,
-			0, 17, 70, 32, 119, 147, 43, 60, 0, 71, 108, 55, 36, 89, 47, 37, 49, 0, 17, 70, 32, 114, 176, 131, 60, 0, 71, 108, 47, 36,
-			49, 50, 37, 49, 0, 12, 68, 29, 55, 135, 124, 36, 89, 55, 108, 65, 0, 16, 69, 29, 54, 209, 74, 16, 36, 89, 83, 35, 51, 88,
-			36, 12, 0, 13, 68, 28, 247, 7, 124, 36, 72, 104, 17, 108, 65, 0, 0, 15, 69, 194, 2, 135, 192, 160, 49, 39, 50, 47, 108, 49,
-			47, 0, 11, 67, 187, 28, 224, 76, 36, 81, 37, 50, 0, 10, 67, 134, 36, 74, 107, 39, 51, 47, 0, 12, 67, 131, 58, 202, 50, 37,
-			57, 57, 35, 47, 0, 13, 68, 129, 23, 199, 120, 50, 39, 51, 65, 108, 55, 0, 16, 69, 125, 225, 220, 28, 160, 65, 39, 55, 108, 104,
-			17, 108, 47, 0, 14, 67, 125, 52, 74, 65, 35, 89, 36, 51, 51, 35, 47, 0, 18, 69, 124, 212, 224, 28, 160, 65, 39, 107, 35, 89,
-			89, 35, 50, 108, 47, 0, 12, 68, 124, 124, 34, 120, 65, 35, 49, 40, 55, 0, 16, 69, 109, 28, 207, 138, 0, 83, 36, 51, 36, 57,
-			72, 40, 50, 0, 16, 69, 101, 247, 179, 28, 160, 35, 65, 35, 55, 37, 57, 108, 47, 0, 22, 70, 97, 180, 71, 120, 215, 0, 88, 35,
-			83, 35, 51, 39, 55, 107, 35, 104, 17, 104, 17, 0, 15, 69, 81, 18, 176, 28, 160, 91, 39, 51, 47, 49, 108, 47, 0, 15, 69, 77,
-			28, 34, 108, 160, 89, 35, 51, 49, 40, 83, 47, 0, 16, 69, 61, 50, 140, 28, 160, 72, 35, 89, 47, 36, 75, 108, 47, 0, 17, 69,
-			61, 21, 49, 108, 160, 72, 35, 51, 91, 36, 81, 36, 83, 47, 0, 11, 67, 60, 225, 224, 72, 39, 101, 108, 50, 0, 16, 70, 48, 132,
-			71, 207, 55, 128, 75, 36, 71, 51, 108, 37, 55, 0, 11, 67, 43, 8, 160, 47, 36, 49, 40, 50, 0, 14, 67, 40, 252, 224, 47, 35,
-			72, 35, 57, 57, 39, 50, 0, 11, 67, 35, 28, 224, 71, 36, 81, 37, 50, 0, 21, 71, 34, 17, 209, 9, 33, 207, 204, 71, 35, 107,
-			108, 51, 36, 108, 88, 108, 72, 37, 0, 15, 69, 32, 123, 71, 76, 224, 71, 108, 48, 108, 89, 39, 101, 0, 14, 69, 29, 177, 214, 28,
-			160, 36, 83, 108, 88, 108, 47, 0, 14, 68, 29, 17, 208, 120, 6, 35, 51, 108, 88, 36, 55, 0, 12, 68, 28, 231, 135, 120, 36, 101,
-			55, 108, 55, 0, 12, 68, 28, 167, 135, 120, 36, 47, 55, 108, 55, 0, 20, 71, 9, 226, 145, 128, 114, 179, 136, 108, 55, 47, 36, 51,
-			50, 108, 47, 37, 84, 0, 0, 11, 67, 198, 1, 209, 81, 39, 50, 108, 51, 0, 11, 67, 197, 241, 209, 81, 39, 65, 108, 51, 0, 13,
-			67, 194, 1, 209, 49, 36, 50, 6, 108, 12, 51, 0, 11, 67, 193, 241, 209, 49, 39, 65, 108, 51, 0, 14, 68, 186, 27, 161, 132, 76,
-			35, 107, 76, 35, 107, 36, 0, 10, 67, 182, 35, 209, 48, 40, 72, 51, 0, 14, 68, 133, 178, 135, 60, 6, 107, 35, 83, 47, 108, 72,
-			0, 14, 68, 130, 36, 143, 132, 50, 40, 12, 88, 72, 35, 107, 0, 16, 69, 130, 34, 30, 205, 240, 50, 39, 71, 36, 55, 57, 39, 65,
-			0, 20, 70, 124, 168, 7, 135, 56, 64, 65, 39, 47, 35, 50, 108, 107, 37, 57, 36, 12, 0, 11, 67, 113, 53, 192, 104, 17, 36, 89,
-			47, 0, 18, 70, 104, 129, 209, 70, 34, 0, 104, 17, 39, 71, 108, 51, 51, 40, 71, 0, 14, 68, 79, 52, 143, 132, 6, 89, 37, 88,
-			72, 35, 107, 0, 17, 70, 74, 20, 78, 137, 19, 192, 88, 35, 107, 51, 101, 39, 51, 72, 0, 15, 68, 62, 39, 173, 132, 72, 39, 55,
-			35, 48, 48, 36, 12, 0, 20, 70, 60, 226, 145, 34, 232, 64, 72, 39, 101, 47, 35, 51, 71, 35, 76, 76, 36, 0, 11, 67, 49, 182,
-			81, 75, 35, 83, 35, 51, 0, 15, 68, 41, 147, 243, 132, 47, 35, 19, 72, 37, 57, 36, 12, 0, 18, 70, 40, 164, 71, 193, 19, 192,
-			47, 36, 47, 51, 108, 49, 39, 51, 72, 0, 12, 68, 29, 50, 135, 60, 39, 89, 47, 108, 72, 0, 12, 68, 29, 21, 7, 60, 36, 51,
-			91, 108, 72, 0, 18, 70, 28, 241, 224, 80, 248, 64, 35, 72, 108, 50, 35, 91, 39, 72, 36, 0, 17, 70, 28, 232, 135, 131, 56, 64,
-			36, 101, 84, 108, 50, 37, 57, 36, 0, 0, 11, 67, 206, 36, 84, 57, 40, 51, 36, 91, 0, 11, 67, 194, 36, 84, 49, 40, 51, 39,
-			91, 0, 13, 68, 193, 23, 199, 128, 49, 36, 51, 65, 108, 50, 0, 12, 67, 187, 10, 212, 76, 35, 49, 49, 39, 91, 0, 13, 68, 185,
-			71, 199, 128, 76, 35, 91, 65, 108, 50, 0, 14, 68, 182, 12, 98, 128, 48, 35, 50, 81, 40, 35, 50, 0, 12, 67, 181, 20, 212, 48,
-			39, 51, 89, 36, 91, 0, 13, 68, 136, 116, 83, 40, 84, 108, 51, 35, 89, 47, 0, 14, 68, 127, 55, 179, 128, 65, 37, 57, 36, 55,
-			37, 50, 0, 13, 68, 126, 23, 199, 128, 65, 36, 107, 65, 108, 50, 0, 19, 70, 125, 152, 34, 204, 114, 128, 65, 35, 19, 50, 35, 84,
-			37, 57, 108, 47, 0, 14, 68, 125, 119, 243, 128, 65, 39, 47, 65, 35, 36, 50, 0, 19, 70, 125, 49, 200, 112, 114, 128, 65, 39, 89,
-			108, 71, 36, 104, 17, 108, 47, 0, 18, 70, 124, 129, 207, 120, 114, 128, 65, 39, 71, 108, 72, 36, 55, 108, 47, 0, 18, 70, 124, 129,
-			205, 44, 114, 128, 65, 39, 71, 108, 107, 36, 89, 108, 47, 0, 13, 68, 110, 3, 7, 128, 83, 36, 50, 75, 108, 50, 0, 14, 68, 105,
-			231, 199, 128, 104, 17, 36, 55, 65, 108, 50, 0, 17, 70, 100, 119, 179, 50, 1, 200, 108, 55, 37, 75, 36, 50, 108, 71, 0, 13, 68,
-			80, 124, 211, 40, 91, 108, 57, 36, 89, 47, 0, 13, 68, 77, 28, 98, 128, 89, 39, 51, 81, 40, 50, 0, 14, 68, 76, 135, 135, 128,
-			89, 35, 71, 35, 55, 108, 50, 0, 14, 68, 73, 17, 217, 40, 88, 36, 51, 108, 19, 35, 47, 0, 15, 69, 69, 60, 202, 29, 224, 51,
-			36, 89, 37, 47, 108, 55, 0, 12, 68, 68, 124, 34, 128, 51, 108, 49, 39, 50, 0, 13, 68, 61, 23, 199, 128, 72, 35, 51, 65, 108,
-			50, 0, 11, 67, 58, 36, 84, 101, 39, 51, 36, 91, 0, 16, 68, 45, 199, 179, 128, 89, 35, 104, 17, 35, 55, 36, 57, 50, 0, 12,
-			67, 41, 180, 84, 47, 35, 83, 51, 36, 91, 0, 13, 68, 41, 178, 135, 128, 47, 35, 83, 47, 108, 50, 0, 18, 70, 40, 241, 209, 192,
-			114, 128, 47, 35, 72, 108, 51, 39, 49, 108, 47, 0, 14, 68, 35, 1, 209, 40, 71, 36, 49, 108, 51, 35, 47, 0, 13, 68, 33, 23,
-			179, 128, 71, 36, 51, 55, 37, 50, 0, 15, 69, 33, 22, 238, 29, 224, 71, 35, 51, 83, 76, 108, 55, 0, 11, 67, 32, 248, 179, 71,
-			35, 72, 84, 37, 0, 12, 68, 31, 2, 135, 128, 36, 49, 47, 108, 50, 0, 14, 68, 30, 39, 179, 128, 35, 84, 84, 35, 55, 37, 50,
-			0, 12, 68, 29, 227, 243, 128, 39, 72, 72, 37, 50, 0, 14, 69, 29, 55, 199, 25, 224, 36, 89, 65, 108, 37, 55, 0, 13, 68, 29,
-			49, 209, 40, 36, 89, 108, 51, 35, 47, 0, 13, 68, 28, 167, 7, 128, 36, 47, 104, 17, 108, 50, 0, 14, 69, 28, 161, 224, 29, 224,
-			36, 47, 108, 50, 108, 55, 0, 12, 68, 11, 60, 34, 128, 108, 57, 49, 39, 50, 0, 12, 68, 11, 51, 243, 128, 108, 57, 72, 37, 50,
-			0, 0, 15, 69, 197, 19, 200, 28, 240, 81, 36, 51, 72, 71, 108, 72, 0, 16, 69, 197, 1, 209, 62, 16, 81, 39, 88, 108, 51, 72,
-			36, 12, 0, 13, 68, 193, 19, 199, 68, 49, 36, 51, 72, 108, 51, 0, 16, 69, 188, 120, 34, 206, 16, 90, 108, 50, 84, 37, 57, 36,
-			12, 0, 12, 67, 185, 28, 19, 76, 35, 51, 49, 35, 89, 0, 14, 68, 131, 8, 155, 68, 50, 36, 49, 40, 83, 35, 51, 0, 18, 70,
-			127, 52, 77, 79, 56, 0, 65, 37, 51, 107, 39, 89, 36, 57, 50, 0, 20, 71, 123, 50, 17, 29, 236, 210, 124, 55, 37, 71, 36, 51,
-			108, 55, 37, 88, 65, 0, 16, 68, 105, 104, 27, 68, 104, 17, 35, 88, 35, 50, 83, 35, 51, 0, 13, 68, 77, 243, 199, 68, 89, 39,
-			65, 72, 108, 51, 0, 13, 68, 74, 8, 71, 68, 88, 36, 50, 107, 108, 51, 0, 18, 70, 71, 52, 159, 112, 119, 192, 51, 37, 88, 65,
-			35, 104, 17, 108, 65, 0, 14, 68, 70, 36, 159, 68, 51, 40, 88, 65, 35, 51, 51, 0, 20, 70, 65, 236, 222, 125, 19, 225, 88, 35,
-			55, 37, 55, 65, 39, 51, 72, 36, 12, 0, 12, 68, 63, 51, 199, 68, 72, 37, 72, 108, 51, 0, 13, 68, 62, 19, 199, 68, 72, 36,
-			107, 72, 108, 51, 0, 11, 67, 41, 17, 211, 47, 36, 51, 108, 89, 0, 15, 69, 35, 60, 96, 30, 16, 71, 37, 81, 39, 50, 108, 107,
-			0, 10, 67, 34, 44, 19, 71, 39, 49, 89, 0, 14, 68, 34, 17, 207, 68, 71, 35, 107, 108, 72, 39, 51, 0, 13, 68, 33, 19, 199,
-			68, 71, 35, 51, 72, 108, 51, 0, 10, 67, 32, 124, 19, 71, 108, 49, 89, 0, 16, 69, 32, 118, 76, 122, 16, 71, 108, 19, 35, 75,
-			35, 55, 36, 0, 13, 68, 30, 8, 71, 68, 19, 35, 50, 107, 108, 51, 0, 16, 69, 30, 7, 51, 28, 240, 36, 50, 104, 17, 37, 57,
-			108, 72, 0, 16, 70, 29, 225, 211, 120, 119, 192, 39, 55, 36, 89, 55, 108, 65, 0, 12, 68, 29, 136, 71, 68, 36, 88, 107, 108, 51,
-			0, 17, 70, 29, 28, 71, 131, 52, 161, 39, 51, 81, 108, 50, 37, 88, 36, 0, 16, 69, 29, 24, 159, 206, 16, 39, 51, 40, 65, 37,
-			57, 36, 12, 0, 0, 15, 69, 132, 124, 223, 138, 0, 107, 108, 57, 36, 65, 40, 50, 0, 11, 67, 126, 33, 210, 65, 39, 84, 108, 88,
-			0, 15, 68, 126, 7, 22, 204, 65, 39, 50, 104, 17, 35, 88, 37, 0, 17, 69, 77, 27, 81, 76, 160, 89, 35, 51, 48, 35, 51, 35,
-			89, 47, 0, 17, 69, 72, 132, 79, 76, 160, 88, 36, 71, 35, 51, 72, 35, 89, 47, 0, 18, 69, 43, 8, 19, 206, 0, 47, 36, 49,
-			50, 36, 89, 37, 57, 35, 50, 0, 19, 70, 41, 232, 179, 75, 56, 160, 47, 36, 55, 84, 37, 88, 37, 57, 39, 50, 0, 17, 70, 41,
-			23, 243, 128, 119, 128, 47, 36, 51, 65, 37, 50, 108, 55, 0, 19, 70, 41, 18, 7, 128, 172, 224, 47, 36, 51, 36, 71, 108, 50, 47,
-			37, 50, 0, 12, 67, 33, 161, 210, 71, 39, 104, 17, 108, 88, 0, 17, 70, 31, 56, 10, 70, 215, 128, 37, 50, 47, 36, 51, 48, 39,
-			55, 0, 16, 70, 29, 241, 224, 136, 103, 128, 36, 65, 108, 50, 40, 36, 55, 0, 18, 70, 9, 28, 226, 33, 20, 160, 108, 51, 57, 40,
-			71, 35, 51, 88, 35, 0, 17, 70, 9, 27, 199, 128, 172, 224, 108, 51, 90, 108, 50, 47, 37, 50, 0, 0, 16, 69, 197, 225, 243, 61,
-			16, 81, 36, 55, 108, 57, 72, 36, 51, 0, 23, 72, 181, 225, 211, 126, 35, 243, 137, 240, 48, 36, 55, 108, 89, 65, 39, 72, 37, 57,
-			39, 65, 0, 19, 70, 180, 244, 95, 68, 248, 64, 48, 36, 72, 35, 51, 65, 39, 51, 72, 36, 0, 21, 72, 127, 55, 179, 40, 116, 115,
-			73, 240, 65, 37, 55, 37, 47, 108, 51, 37, 88, 65, 0, 15, 67, 125, 197, 209, 65, 39, 104, 17, 35, 47, 47, 35, 51, 0, 15, 67,
-			125, 197, 81, 65, 39, 104, 17, 35, 89, 89, 36, 51, 0, 12, 67, 125, 181, 209, 65, 39, 83, 47, 36, 51, 0, 21, 71, 123, 50, 17,
-			29, 236, 210, 132, 55, 37, 71, 36, 51, 108, 55, 37, 88, 36, 12, 0, 17, 69, 114, 3, 225, 29, 16, 104, 17, 35, 50, 72, 36, 107,
-			108, 51, 0, 11, 67, 102, 5, 81, 39, 50, 89, 39, 51, 0, 16, 69, 80, 164, 78, 29, 16, 91, 39, 47, 39, 51, 101, 108, 51, 0,
-			15, 69, 79, 8, 158, 29, 16, 89, 36, 49, 40, 55, 108, 51, 0, 15, 69, 69, 244, 143, 29, 16, 51, 35, 65, 88, 72, 108, 51, 0,
-			13, 67, 61, 164, 209, 72, 35, 104, 17, 89, 35, 51, 0, 12, 67, 59, 58, 209, 101, 35, 57, 57, 36, 51, 0, 17, 69, 57, 178, 136,
-			29, 16, 101, 36, 83, 83, 35, 47, 71, 108, 51, 0, 16, 69, 33, 21, 10, 29, 16, 71, 36, 51, 36, 91, 47, 108, 51, 0, 16, 69,
-			32, 248, 112, 29, 16, 71, 36, 72, 36, 107, 49, 108, 51, 0, 12, 68, 29, 232, 7, 76, 39, 50, 50, 108, 89, 0, 21, 71, 29, 50,
-			145, 205, 236, 210, 132, 36, 89, 47, 36, 51, 37, 55, 37, 88, 36, 12, 0, 0, 14, 69, 183, 59, 135, 75, 48, 48, 37, 76, 108, 88,
-			37, 0, 12, 67, 134, 215, 179, 107, 35, 48, 35, 55, 37, 0, 21, 71, 133, 248, 177, 122, 34, 51, 128, 107, 36, 65, 39, 81, 39, 55,
-			39, 71, 37, 50, 0, 13, 68, 130, 3, 199, 72, 50, 35, 50, 72, 108, 88, 0, 13, 68, 109, 28, 71, 72, 83, 36, 51, 81, 108, 88,
-			0, 11, 67, 106, 11, 128, 104, 17, 39, 50, 76, 0, 18, 71, 42, 39, 162, 207, 51, 243, 128, 47, 39, 55, 39, 37, 72, 37, 50, 0,
-			10, 67, 41, 251, 64, 47, 36, 65, 48, 0, 13, 67, 41, 200, 179, 47, 35, 104, 17, 35, 84, 37, 0, 11, 67, 41, 18, 0, 47, 39,
-			51, 39, 71, 0, 24, 73, 30, 220, 207, 126, 39, 162, 191, 60, 51, 36, 48, 37, 72, 65, 39, 55, 39, 90, 37, 49, 37, 0, 18, 70,
-			29, 242, 17, 61, 50, 128, 35, 65, 71, 39, 51, 72, 35, 89, 47, 0, 20, 71, 29, 50, 145, 207, 8, 51, 128, 36, 89, 47, 36, 51,
-			37, 49, 50, 37, 50, 0, 0, 15, 68, 197, 24, 177, 68, 81, 39, 51, 51, 39, 81, 39, 51, 0, 14, 68, 193, 252, 211, 68, 49, 39,
-			65, 37, 89, 36, 51, 0, 24, 73, 192, 188, 209, 29, 225, 214, 120, 118, 64, 49, 35, 89, 37, 51, 39, 55, 10, 35, 88, 55, 108, 0,
-			15, 69, 131, 60, 30, 29, 48, 50, 37, 49, 39, 55, 108, 89, 0, 13, 67, 129, 196, 83, 50, 36, 104, 17, 51, 36, 89, 0, 15, 68,
-			127, 58, 211, 68, 65, 39, 57, 35, 89, 89, 35, 51, 0, 14, 68, 125, 1, 240, 68, 65, 39, 88, 108, 49, 36, 51, 0, 15, 68, 76,
-			140, 19, 68, 89, 35, 71, 39, 49, 89, 35, 51, 0, 16, 68, 61, 19, 211, 68, 72, 35, 51, 72, 36, 10, 89, 35, 51, 0, 14, 69,
-			43, 59, 71, 193, 48, 47, 37, 48, 108, 49, 89, 0, 11, 67, 43, 5, 0, 47, 35, 49, 36, 91, 0, 11, 67, 41, 21, 0, 47, 6,
-			39, 51, 91, 0, 16, 70, 40, 116, 98, 124, 116, 64, 47, 108, 51, 39, 65, 108, 51, 0, 14, 69, 31, 52, 72, 29, 48, 36, 57, 51,
-			71, 108, 89, 0, 19, 71, 29, 226, 179, 124, 114, 162, 124, 39, 55, 47, 37, 65, 108, 47, 39, 65, 0, 15, 69, 29, 226, 159, 29, 48,
-			36, 55, 47, 36, 65, 108, 89, 0, 16, 70, 29, 50, 179, 48, 116, 64, 36, 89, 47, 37, 75, 108, 51, 0, 0, 12, 68, 192, 114, 34,
-			204, 49, 108, 71, 39, 57, 0, 16, 69, 183, 52, 98, 30, 0, 48, 36, 57, 51, 39, 84, 108, 50, 0, 12, 67, 133, 28, 82, 107, 35,
-			51, 81, 36, 88, 0, 14, 69, 78, 39, 159, 29, 32, 89, 39, 55, 65, 108, 88, 0, 15, 69, 48, 120, 31, 29, 32, 75, 108, 50, 35,
-			65, 108, 88, 0, 17, 70, 42, 36, 72, 29, 225, 224, 47, 40, 51, 71, 108, 55, 108, 50, 0, 11, 67, 42, 12, 0, 47, 39, 50, 39,
-			49, 0, 16, 69, 35, 49, 219, 194, 0, 71, 37, 35, 83, 49, 35, 50, 89, 0, 16, 69, 34, 212, 79, 29, 32, 71, 36, 48, 35, 51,
-			72, 108, 88, 0, 13, 68, 33, 24, 145, 136, 71, 35, 51, 39, 51, 40, 0, 15, 69, 29, 236, 30, 29, 32, 35, 55, 49, 39, 55, 108,
-			88, 0, 17, 70, 28, 168, 176, 120, 120, 128, 39, 47, 39, 49, 36, 55, 108, 84, 0, 15, 69, 8, 132, 240, 138, 0, 108, 71, 36, 89,
-			49, 40, 50, 0, 0, 19, 70, 193, 28, 211, 42, 38, 209, 49, 36, 51, 37, 89, 47, 39, 83, 36, 51, 0, 15, 68, 124, 244, 107, 76,
-			65, 39, 72, 35, 51, 51, 36, 89, 0, 14, 67, 41, 23, 0, 47, 35, 51, 35, 104, 17, 104, 17, 0, 19, 70, 9, 180, 115, 63, 17,
-			209, 108, 83, 35, 51, 37, 72, 36, 81, 108, 51, 0, 0, 14, 68, 197, 232, 176, 72, 81, 36, 55, 39, 49, 39, 88, 0, 19, 71, 134,
-			39, 135, 194, 35, 135, 128, 107, 39, 55, 108, 49, 40, 101, 108, 50, 0, 11, 67, 129, 51, 128, 50, 39, 89, 35, 101, 0, 12, 67, 65,
-			242, 128, 88, 36, 65, 65, 35, 47, 0, 11, 67, 50, 33, 200, 75, 35, 84, 108, 71, 0, 11, 67, 42, 36, 76, 47, 40, 51, 35, 75,
-			0, 12, 67, 42, 33, 200, 47, 35, 84, 84, 108, 71, 0, 15, 69, 33, 24, 147, 123, 48, 71, 39, 51, 40, 89, 55, 37, 0, 21, 71,
-			32, 244, 71, 121, 39, 199, 128, 71, 35, 72, 51, 39, 88, 88, 35, 65, 108, 50, 0, 11, 67, 31, 49, 200, 35, 57, 57, 108, 71, 0,
-			21, 71, 8, 228, 71, 121, 39, 199, 128, 108, 101, 35, 51, 108, 88, 88, 35, 65, 108, 50, 0, 0, 16, 69, 193, 18, 32, 207, 0, 49,
-			35, 51, 71, 39, 50, 37, 49, 0, 12, 67, 81, 244, 79, 91, 36, 65, 39, 51, 72, 0, 14, 67, 73, 244, 79, 88, 39, 65, 39, 51,
-			51, 39, 72, 0, 12, 68, 29, 19, 7, 100, 36, 51, 75, 108, 19, 0, 0, 14, 69, 128, 124, 222, 138, 0, 50, 108, 57, 55, 39, 50,
-			0, 16, 69, 109, 28, 200, 69, 32, 83, 35, 51, 37, 71, 39, 51, 88, 0, 14, 68, 83, 52, 76, 200, 91, 37, 51, 75, 36, 57, 36,
-			0, 13, 68, 71, 23, 135, 188, 51, 36, 81, 55, 108, 90, 0, 11, 67, 41, 24, 0, 47, 36, 51, 35, 50, 0, 11, 67, 35, 49, 202,
-			71, 35, 57, 108, 47, 0, 13, 69, 31, 56, 146, 206, 0, 36, 39, 88, 37, 50, 0, 20, 71, 29, 50, 153, 60, 115, 240, 80, 36, 89,
-			47, 36, 72, 108, 72, 49, 39, 91, 0, 14, 69, 9, 241, 210, 138, 0, 108, 65, 108, 88, 39, 50, 0, 0, 15, 68, 126, 212, 83, 60,
-			65, 35, 48, 39, 51, 89, 35, 72, 0, 13, 68, 81, 241, 209, 60, 91, 39, 65, 108, 51, 72, 0, 11, 67, 77, 225, 205, 89, 36, 55,
-			108, 107, 0, 0, 14, 68, 204, 228, 91, 40, 57, 35, 101, 51, 39, 83, 47, 0, 15, 68, 193, 236, 199, 40, 49, 39, 55, 55, 37, 57,
-			108, 47, 0, 14, 68, 193, 231, 199, 40, 49, 35, 55, 35, 65, 108, 47, 0, 11, 67, 193, 50, 128, 49, 35, 89, 35, 47, 0, 14, 68,
-			136, 200, 7, 40, 84, 35, 75, 35, 50, 108, 47, 0, 13, 68, 135, 56, 71, 40, 107, 36, 57, 107, 108, 47, 0, 10, 67, 133, 50, 128,
-			107, 35, 89, 47, 0, 14, 67, 127, 6, 72, 65, 39, 49, 35, 19, 19, 35, 71, 0, 14, 69, 126, 40, 10, 30, 240, 65, 39, 50, 47,
-			108, 90, 0, 17, 68, 125, 71, 7, 40, 65, 35, 91, 36, 104, 17, 104, 17, 108, 47, 0, 11, 67, 72, 193, 204, 88, 39, 75, 108, 75,
-			0, 15, 68, 69, 194, 7, 40, 51, 35, 104, 17, 35, 71, 108, 47, 0, 14, 69, 62, 34, 30, 30, 240, 72, 40, 71, 55, 108, 90, 0,
-			10, 67, 42, 36, 72, 47, 40, 51, 71, 0, 14, 68, 33, 24, 143, 40, 71, 39, 51, 40, 72, 35, 47, 0, 23, 72, 29, 60, 207, 193,
-			18, 32, 207, 0, 35, 89, 37, 72, 49, 35, 51, 71, 39, 50, 37, 49, 0, 0, 13, 68, 194, 33, 209, 192, 49, 39, 84, 108, 51, 49,
-			0, 15, 67, 124, 195, 207, 65, 39, 75, 35, 6, 72, 72, 35, 72, 0, 15, 68, 124, 164, 83, 192, 65, 35, 47, 35, 51, 89, 35, 49,
-			0, 18, 70, 108, 124, 209, 108, 124, 19, 83, 108, 57, 36, 51, 83, 108, 49, 89, 0, 15, 69, 33, 24, 7, 68, 240, 71, 36, 51, 50,
-			108, 51, 72, 0, 13, 5, 95, 48, 77, 49, 120, 107, 36, 88, 108, 51, 0, 0, 11, 67, 183, 52, 202, 48, 36, 57, 89, 47, 0, 21,
-			70, 124, 168, 7, 135, 60, 128, 65, 39, 47, 35, 50, 108, 107, 37, 57, 36, 57, 36, 0, 16, 69, 62, 23, 145, 30, 0, 72, 36, 107,
-			55, 39, 51, 108, 50, 0, 10, 67, 42, 36, 202, 47, 39, 89, 47, 0, 11, 67, 41, 28, 0, 6, 47, 35, 51, 49, 0, 16, 69, 34,
-			11, 199, 126, 0, 71, 35, 50, 90, 108, 65, 36, 50, 0, 17, 69, 33, 225, 204, 132, 160, 71, 36, 55, 108, 75, 35, 107, 35, 47, 0,
-			16, 69, 33, 23, 179, 30, 0, 71, 36, 51, 36, 55, 37, 108, 50, 0, 17, 69, 32, 243, 223, 29, 160, 71, 35, 72, 72, 35, 65, 108,
-			104, 17, 0, 0, 10, 67, 197, 65, 192, 81, 39, 91, 108, 0, 10, 67, 196, 241, 192, 81, 36, 72, 108, 0, 10, 67, 129, 65, 192, 50,
-			36, 91, 108, 0, 11, 67, 69, 97, 192, 6, 51, 36, 88, 108, 0, 16, 70, 34, 33, 222, 100, 194, 0, 71, 39, 55, 35, 75, 35, 71,
-			0, 19, 71, 31, 56, 10, 69, 177, 240, 76, 37, 50, 47, 36, 51, 83, 108, 49, 89, 0, 13, 68, 29, 227, 95, 60, 35, 55, 107, 35,
-			65, 72, 0, 0, 7, 66, 206, 32, 57, 40, 0, 19, 70, 182, 36, 85, 32, 118, 128, 48, 40, 51, 89, 35, 71, 71, 108, 104, 17, 0,
-			19, 70, 124, 129, 222, 104, 114, 128, 65, 39, 71, 108, 55, 36, 104, 17, 108, 47, 0, 12, 67, 82, 24, 179, 91, 35, 107, 35, 84, 37,
-			0, 13, 67, 61, 21, 243, 72, 35, 51, 47, 36, 57, 36, 0, 10, 67, 49, 33, 128, 75, 39, 88, 19, 0, 16, 69, 41, 24, 174, 76,
-			128, 47, 35, 51, 39, 76, 35, 89, 71, 0, 15, 69, 29, 54, 224, 28, 192, 36, 89, 83, 36, 50, 108, 75, 0, 14, 65, 24, 6, 57,
-			36, 4, 107, 35, 65, 88, 36, 12, 0, 0, 16, 70, 192, 114, 162, 123, 60, 0, 49, 108, 47, 39, 55, 37, 49, 0, 15, 69, 43, 56,
-			145, 207, 0, 47, 36, 10, 39, 51, 37, 49, 0, 16, 69, 35, 54, 202, 28, 240, 71, 37, 57, 39, 83, 47, 108, 72, 0, 11, 67, 31,
-			53, 135, 36, 57, 88, 35, 50, 0, 11, 67, 29, 168, 135, 36, 104, 17, 84, 108, 0, 7, 65, 156, 6, 36, 50, 0, 0, 20, 70, 181,
-			23, 224, 198, 1, 202, 48, 36, 51, 65, 35, 50, 81, 36, 50, 108, 47, 0, 12, 67, 125, 236, 192, 65, 36, 6, 55, 55, 37, 0, 17,
-			69, 124, 193, 222, 76, 160, 65, 39, 75, 108, 55, 36, 89, 35, 47, 0, 11, 67, 113, 236, 192, 104, 17, 39, 55, 37, 0, 16, 69, 83,
-			4, 79, 30, 0, 91, 36, 49, 35, 51, 72, 108, 50, 0, 15, 69, 77, 230, 207, 30, 0, 89, 36, 55, 83, 72, 108, 50, 0, 17, 69,
-			33, 21, 48, 76, 160, 71, 35, 51, 91, 36, 49, 35, 89, 47, 0, 9, 67, 28, 136, 0, 36, 71, 50, 0, 0, 10, 67, 136, 241, 192,
-			84, 36, 72, 108, 0, 12, 68, 128, 120, 173, 28, 50, 108, 84, 48, 108, 0, 10, 67, 62, 1, 192, 72, 36, 50, 108, 0, 0, 16, 69,
-			133, 252, 212, 199, 48, 107, 35, 65, 37, 91, 36, 81, 37, 0, 11, 67, 127, 49, 243, 65, 37, 57, 108, 57, 0, 16, 69, 61, 19, 138,
-			75, 48, 72, 36, 51, 35, 101, 47, 88, 37, 0, 11, 67, 41, 251, 98, 47, 36, 65, 48, 39, 0, 18, 70, 30, 2, 17, 61, 50, 128,
-			35, 50, 71, 39, 51, 72, 35, 89, 47, 0, 15, 69, 28, 172, 226, 183, 48, 36, 47, 37, 57, 39, 48, 37, 0, 0, 12, 67, 139, 7,
-			135, 84, 39, 49, 35, 55, 108, 0, 13, 67, 125, 151, 135, 65, 39, 19, 35, 55, 55, 108, 0, 16, 69, 120, 124, 224, 111, 0, 55, 108,
-			57, 35, 50, 83, 35, 49, 0, 11, 67, 113, 71, 192, 104, 17, 36, 91, 65, 0, 11, 67, 109, 71, 192, 83, 35, 91, 35, 65, 0, 12,
-			67, 81, 71, 192, 6, 91, 36, 91, 39, 65, 0, 12, 67, 78, 24, 135, 89, 35, 107, 84, 35, 50, 0, 16, 69, 78, 6, 224, 207, 0,
-			89, 35, 50, 83, 39, 50, 37, 49, 0, 15, 69, 35, 51, 223, 83, 0, 71, 37, 72, 65, 36, 91, 49, 0, 11, 67, 33, 71, 192, 71,
-			36, 91, 35, 65, 0, 0, 12, 68, 184, 116, 94, 204, 76, 108, 51, 55, 37, 0, 18, 70, 31, 8, 158, 191, 52, 202, 36, 49, 39, 55,
-			39, 90, 37, 89, 47, 0, 0, 12, 67, 186, 3, 240, 76, 39, 50, 72, 35, 49, 0, 17, 68, 125, 181, 94, 28, 65, 39, 83, 35, 89,
-			89, 35, 55, 35, 50, 0, 12, 67, 125, 161, 240, 65, 39, 104, 17, 108, 49, 0, 10, 67, 100, 116, 159, 108, 88, 36, 65, 0, 12, 67,
-			76, 252, 223, 89, 39, 72, 57, 39, 65, 0, 12, 67, 69, 193, 217, 51, 36, 104, 17, 108, 19, 0, 13, 67, 68, 252, 223, 51, 39, 72,
-			37, 57, 39, 65, 0, 11, 67, 52, 200, 64, 107, 39, 75, 35, 47, 0, 8, 67, 30, 40, 64, 39, 107, 0, 12, 68, 30, 39, 179, 28,
-			39, 55, 37, 57, 108, 0, 13, 68, 29, 88, 158, 28, 39, 89, 40, 55, 35, 50, 0, 0, 12, 67, 184, 168, 158, 76, 35, 47, 84, 35,
-			55, 0, 11, 67, 130, 40, 158, 50, 39, 84, 36, 55, 0, 11, 67, 124, 172, 222, 65, 36, 47, 37, 55, 0, 10, 67, 122, 2, 128, 55,
-			36, 50, 47, 0, 12, 67, 121, 177, 216, 55, 35, 83, 83, 108, 88, 0, 12, 67, 90, 2, 128, 88, 36, 50, 50, 35, 47, 0, 12, 67,
-			78, 2, 128, 89, 39, 50, 50, 35, 47, 0, 14, 67, 69, 194, 128, 51, 36, 104, 17, 104, 17, 35, 47, 0, 14, 67, 61, 194, 128, 72,
-			36, 104, 17, 104, 17, 35, 47, 0, 10, 67, 58, 33, 200, 101, 6, 108, 71, 0, 12, 67, 50, 2, 128, 75, 35, 50, 50, 35, 47, 0,
-			15, 69, 35, 49, 222, 31, 48, 71, 37, 57, 108, 55, 108, 57, 0, 0, 8, 66, 206, 16, 57, 36, 12, 0, 15, 69, 182, 39, 138, 207,
-			0, 48, 39, 55, 36, 47, 37, 49, 0, 11, 67, 181, 24, 161, 48, 35, 90, 40, 107, 0, 12, 67, 125, 180, 207, 65, 39, 83, 89, 36,
-			72, 0, 12, 67, 124, 235, 161, 65, 39, 101, 76, 36, 12, 0, 14, 68, 122, 33, 210, 124, 55, 35, 84, 108, 88, 36, 65, 0, 13, 67,
-			113, 245, 33, 104, 17, 39, 65, 91, 36, 12, 0, 12, 67, 109, 204, 225, 83, 35, 104, 17, 37, 107, 0, 13, 67, 106, 11, 161, 104, 17,
-			39, 50, 76, 36, 12, 0, 11, 67, 81, 231, 192, 91, 35, 55, 35, 65, 0, 14, 68, 70, 35, 243, 124, 51, 39, 72, 37, 57, 39, 65,
-			0, 11, 67, 61, 231, 192, 72, 36, 55, 35, 65, 0, 10, 67, 53, 231, 192, 107, 36, 55, 65, 0, 13, 67, 33, 36, 113, 71, 39, 6,
-			88, 39, 51, 81, 0, 17, 69, 33, 24, 147, 120, 112, 71, 40, 51, 40, 89, 36, 55, 55, 108, 0, 14, 69, 32, 116, 162, 180, 112, 71,
-			108, 88, 40, 48, 108, 0, 13, 69, 30, 43, 74, 207, 0, 39, 48, 47, 37, 49, 0, 10, 67, 29, 231, 192, 35, 55, 35, 65, 0, 13,
-			68, 29, 200, 7, 100, 36, 104, 17, 50, 108, 19, 0, 11, 67, 29, 56, 161, 39, 89, 84, 36, 12, 0, 0, 11, 67, 185, 65, 202, 76,
-			36, 91, 108, 47, 0, 11, 67, 182, 7, 128, 48, 35, 50, 36, 55, 0, 13, 68, 181, 18, 135, 32, 48, 35, 51, 47, 108, 71, 0, 13,
-			68, 129, 75, 115, 120, 50, 35, 91, 48, 37, 55, 0, 11, 67, 126, 231, 128, 65, 35, 76, 35, 55, 0, 15, 68, 124, 130, 144, 120, 65,
-			39, 71, 47, 35, 88, 35, 55, 0, 11, 67, 109, 17, 202, 83, 39, 51, 108, 47, 0, 11, 67, 108, 124, 74, 83, 108, 81, 39, 47, 0,
-			13, 68, 77, 19, 135, 32, 89, 39, 51, 101, 108, 71, 0, 15, 69, 75, 55, 162, 110, 0, 88, 37, 55, 39, 83, 39, 50, 0, 13, 67,
-			49, 17, 202, 75, 39, 51, 19, 6, 35, 47, 0, 14, 68, 41, 17, 226, 120, 47, 36, 51, 108, 84, 36, 55, 0, 14, 68, 33, 71, 7,
-			32, 71, 39, 91, 104, 17, 108, 71, 0, 17, 70, 29, 50, 162, 63, 56, 128, 36, 89, 47, 36, 72, 37, 57, 39, 0, 0, 11, 67, 198,
-			8, 64, 81, 39, 50, 35, 107, 0, 12, 67, 184, 164, 112, 76, 35, 47, 51, 35, 49, 0, 14, 68, 128, 248, 115, 60, 50, 35, 72, 35,
-			107, 37, 72, 0, 14, 67, 125, 151, 159, 65, 39, 19, 35, 55, 55, 36, 65, 0, 13, 68, 125, 86, 98, 60, 65, 35, 89, 19, 40, 72,
-			0, 12, 67, 121, 193, 205, 55, 36, 104, 17, 108, 107, 0, 16, 69, 120, 124, 224, 109, 144, 55, 108, 57, 35, 50, 83, 35, 19, 0, 12,
-			67, 114, 40, 64, 104, 17, 39, 84, 36, 12, 0, 12, 67, 109, 200, 64, 6, 83, 36, 104, 17, 107, 0, 12, 67, 88, 200, 64, 88, 35,
-			75, 75, 36, 12, 0, 15, 68, 85, 226, 51, 132, 89, 39, 55, 71, 37, 57, 36, 12, 0, 12, 67, 83, 55, 159, 91, 36, 57, 55, 35,
-			65, 0, 15, 68, 80, 140, 51, 132, 91, 35, 71, 35, 49, 37, 57, 36, 0, 14, 69, 58, 33, 209, 73, 240, 101, 108, 51, 35, 88, 65,
-			0, 14, 68, 50, 1, 210, 132, 75, 36, 50, 108, 88, 36, 12, 0, 14, 67, 43, 7, 159, 47, 35, 49, 35, 55, 55, 39, 65, 0, 14,
-			68, 34, 1, 200, 132, 71, 35, 50, 108, 71, 36, 12, 0, 18, 70, 32, 119, 205, 42, 33, 192, 71, 108, 65, 39, 107, 47, 35, 84, 108,
-			0, 11, 67, 29, 151, 159, 35, 19, 55, 35, 65, 0, 0, 14, 68, 197, 66, 146, 128, 81, 35, 91, 47, 88, 35, 50, 0, 15, 69, 185,
-			28, 10, 28, 128, 76, 36, 51, 49, 47, 108, 71, 0, 13, 68, 183, 50, 162, 128, 48, 36, 57, 47, 39, 50, 0, 18, 70, 182, 3, 224,
-			206, 37, 0, 48, 35, 50, 72, 50, 37, 57, 40, 91, 0, 15, 68, 137, 53, 243, 128, 84, 35, 89, 35, 47, 36, 57, 50, 0, 10, 67,
-			128, 123, 94, 50, 108, 48, 55, 0, 13, 68, 125, 60, 51, 128, 65, 36, 89, 49, 37, 50, 0, 15, 69, 125, 40, 155, 205, 224, 65, 36,
-			88, 39, 83, 37, 55, 0, 15, 68, 113, 114, 51, 128, 104, 17, 39, 47, 71, 36, 57, 50, 0, 13, 68, 109, 54, 199, 40, 83, 39, 89,
-			83, 108, 47, 0, 11, 67, 108, 172, 222, 83, 36, 47, 37, 55, 0, 13, 68, 101, 103, 135, 40, 35, 88, 39, 55, 108, 47, 0, 15, 68,
-			92, 135, 7, 40, 47, 35, 71, 35, 104, 17, 108, 47, 0, 14, 68, 83, 7, 135, 40, 91, 39, 49, 39, 55, 108, 47, 0, 14, 68, 68,
-			215, 199, 40, 51, 35, 107, 35, 65, 108, 47, 0, 12, 67, 68, 172, 222, 51, 39, 47, 36, 57, 55, 0, 13, 68, 68, 124, 210, 128, 51,
-			108, 57, 88, 35, 50, 0, 14, 68, 61, 22, 115, 128, 72, 35, 51, 36, 57, 50, 36, 0, 14, 68, 61, 19, 7, 40, 72, 35, 51, 35,
-			75, 108, 47, 0, 14, 68, 57, 66, 146, 128, 101, 36, 91, 47, 88, 35, 50, 0, 14, 68, 56, 247, 199, 40, 101, 35, 72, 35, 65, 108,
-			47, 0, 14, 68, 53, 247, 135, 40, 107, 35, 65, 35, 55, 108, 47, 0, 14, 68, 49, 40, 135, 40, 75, 39, 88, 35, 84, 108, 47, 0,
-			15, 69, 48, 124, 10, 28, 128, 75, 108, 49, 36, 47, 108, 71, 0, 16, 68, 46, 8, 179, 40, 89, 35, 50, 35, 84, 37, 57, 35, 47,
-			0, 14, 68, 35, 56, 7, 40, 71, 35, 57, 36, 50, 108, 47, 0, 12, 67, 34, 3, 30, 71, 39, 50, 75, 39, 55, 0, 14, 68, 33,
-			28, 7, 40, 71, 35, 51, 35, 49, 108, 47, 0, 12, 68, 29, 66, 162, 128, 35, 91, 47, 39, 50, 0, 18, 70, 29, 66, 161, 29, 19,
-			243, 36, 91, 47, 36, 107, 108, 51, 72, 37, 0, 12, 68, 29, 60, 7, 40, 36, 89, 49, 108, 47, 0, 12, 68, 29, 50, 7, 40, 36,
-			89, 71, 108, 47, 0, 10, 67, 29, 34, 128, 35, 88, 35, 47, 0, 0, 17, 70, 198, 8, 147, 43, 60, 0, 81, 36, 50, 39, 89, 47,
-			37, 49, 0, 11, 67, 197, 65, 207, 81, 39, 91, 108, 72, 0, 10, 67, 186, 20, 64, 76, 36, 107, 51, 0, 13, 68, 125, 82, 7, 52,
-			65, 36, 89, 71, 108, 107, 0, 11, 67, 111, 4, 64, 6, 83, 36, 49, 51, 0, 13, 67, 105, 40, 161, 104, 17, 35, 88, 84, 36, 12,
-			0, 10, 67, 81, 148, 64, 91, 36, 19, 51, 0, 10, 67, 79, 4, 64, 89, 39, 49, 51, 0, 11, 67, 69, 40, 161, 51, 36, 88, 84,
-			36, 0, 15, 69, 62, 37, 51, 74, 16, 72, 40, 91, 37, 88, 36, 12, 0, 12, 67, 58, 215, 161, 101, 36, 48, 36, 55, 36, 0, 14,
-			67, 45, 252, 225, 89, 39, 65, 35, 57, 57, 36, 12, 0, 16, 70, 29, 122, 234, 120, 118, 64, 36, 47, 47, 36, 55, 108, 19, 0, 12,
-			68, 29, 87, 135, 52, 36, 89, 55, 108, 107, 0, 22, 72, 11, 2, 162, 127, 56, 146, 206, 0, 108, 49, 47, 39, 65, 37, 57, 39, 88,
-			37, 50, 0, 15, 5, 95, 48, 77, 51, 120, 65, 37, 55, 57, 108, 51, 72, 0, 0, 12, 67, 181, 23, 160, 48, 36, 51, 55, 39, 50,
-			0, 13, 68, 125, 182, 98, 120, 65, 35, 83, 19, 40, 55, 0, 15, 67, 125, 152, 156, 65, 39, 19, 35, 84, 84, 35, 104, 17, 0, 10,
-			67, 125, 76, 192, 65, 35, 91, 57, 0, 13, 68, 124, 210, 135, 48, 65, 39, 107, 47, 108, 75, 0, 15, 69, 124, 129, 222, 28, 160, 65,
-			39, 71, 108, 55, 108, 47, 0, 15, 68, 113, 17, 226, 120, 104, 17, 35, 51, 108, 84, 39, 55, 0, 15, 69, 110, 8, 158, 204, 160, 83,
-			39, 50, 39, 55, 37, 47, 0, 14, 69, 83, 52, 79, 30, 0, 91, 37, 51, 72, 108, 50, 0, 14, 68, 60, 120, 51, 120, 72, 108, 50,
-			37, 57, 36, 55, 0, 11, 67, 56, 113, 160, 101, 108, 19, 36, 50, 0, 12, 67, 45, 24, 138, 89, 36, 51, 84, 35, 47, 0, 17, 70,
-			41, 23, 226, 111, 55, 128, 47, 36, 51, 65, 39, 83, 37, 55, 0, 14, 67, 33, 243, 202, 71, 36, 65, 39, 72, 72, 35, 47, 0, 12,
-			67, 32, 244, 202, 71, 36, 72, 35, 89, 47, 0, 14, 69, 31, 49, 222, 28, 160, 36, 57, 108, 55, 108, 47, 0, 15, 69, 29, 226, 155,
-			28, 160, 36, 55, 47, 36, 83, 108, 47, 0, 12, 68, 29, 76, 34, 32, 39, 91, 49, 40, 71, 0, 16, 70, 29, 52, 71, 111, 55, 128,
-			36, 89, 51, 108, 83, 37, 55, 0, 10, 67, 28, 252, 202, 36, 72, 37, 47, 0, 14, 69, 28, 168, 159, 28, 160, 39, 47, 39, 65, 108,
-			47, 0, 0, 14, 68, 197, 232, 158, 132, 81, 39, 55, 40, 55, 36, 12, 0, 18, 70, 188, 104, 138, 194, 12, 240, 90, 36, 39, 47, 36,
-			49, 50, 37, 49, 0, 11, 67, 187, 1, 209, 76, 36, 49, 108, 51, 0, 17, 70, 180, 120, 10, 137, 252, 223, 48, 108, 50, 47, 39, 65,
-			37, 65, 0, 15, 68, 137, 232, 158, 132, 84, 36, 55, 84, 36, 55, 36, 12, 0, 18, 70, 127, 1, 224, 205, 40, 64, 65, 36, 49, 108,
-			50, 37, 88, 36, 12, 0, 15, 68, 126, 4, 158, 132, 65, 35, 50, 88, 35, 55, 36, 12, 0, 21, 70, 126, 2, 152, 68, 172, 223, 65,
-			39, 50, 47, 35, 88, 36, 51, 36, 47, 37, 65, 0, 12, 67, 125, 103, 209, 65, 39, 88, 65, 35, 51, 0, 14, 68, 125, 65, 200, 132,
-			65, 39, 91, 108, 71, 36, 107, 0, 19, 70, 124, 244, 96, 205, 40, 64, 65, 39, 72, 36, 51, 50, 37, 88, 36, 12, 0, 16, 68, 113,
-			232, 8, 132, 104, 17, 39, 55, 39, 50, 71, 36, 12, 0, 12, 67, 85, 177, 209, 89, 35, 83, 83, 108, 51, 0, 11, 67, 83, 1, 209,
-			91, 36, 49, 108, 51, 0, 15, 68, 77, 228, 222, 132, 89, 36, 55, 89, 36, 55, 36, 12, 0, 14, 68, 77, 24, 7, 60, 89, 36, 51,
-			36, 50, 108, 72, 0, 15, 68, 73, 228, 158, 132, 88, 36, 55, 88, 36, 55, 36, 12, 0, 16, 68, 53, 193, 200, 132, 107, 35, 104, 17,
-			104, 17, 108, 71, 36, 0, 12, 67, 53, 177, 209, 107, 35, 83, 83, 108, 51, 0, 15, 68, 42, 37, 198, 132, 47, 39, 12, 47, 36, 19,
-			36, 12, 0, 11, 67, 41, 24, 145, 47, 36, 51, 39, 51, 0, 11, 67, 34, 17, 209, 71, 35, 107, 108, 51, 0, 13, 68, 34, 7, 135,
-			60, 71, 39, 50, 55, 108, 72, 0, 17, 69, 33, 28, 30, 205, 240, 71, 36, 51, 49, 36, 55, 57, 39, 65, 0, 12, 68, 30, 39, 135,
-			60, 39, 12, 55, 108, 72, 0, 12, 68, 28, 214, 199, 60, 35, 107, 83, 108, 72, 0, 0, 11, 67, 185, 248, 148, 76, 35, 65, 40, 91,
-			0, 14, 68, 182, 12, 70, 128, 48, 35, 50, 81, 40, 35, 50, 0, 11, 67, 128, 120, 148, 50, 108, 84, 36, 91, 0, 18, 70, 127, 1,
-			212, 108, 114, 128, 65, 39, 49, 108, 91, 36, 83, 108, 47, 0, 13, 68, 109, 22, 98, 128, 83, 36, 51, 19, 39, 50, 0, 13, 68, 73,
-			230, 243, 128, 88, 39, 55, 83, 37, 50, 0, 13, 68, 61, 230, 243, 128, 72, 39, 55, 83, 37, 50, 0, 11, 67, 59, 52, 148, 101, 37,
-			88, 36, 91, 0, 19, 70, 52, 117, 145, 50, 33, 200, 107, 108, 88, 36, 51, 75, 35, 84, 108, 71, 0, 14, 68, 33, 28, 84, 40, 71,
-			35, 51, 81, 35, 91, 47, 0, 14, 68, 33, 19, 19, 40, 71, 35, 51, 75, 35, 89, 47, 0, 15, 69, 32, 129, 211, 205, 224, 71, 35,
-			71, 108, 89, 37, 55, 0, 10, 67, 32, 116, 179, 71, 108, 88, 37, 0, 7, 66, 11, 48, 108, 57, 0, 18, 70, 10, 12, 94, 137, 188,
-			222, 108, 50, 81, 36, 55, 39, 83, 37, 55, 0, 0, 15, 68, 197, 28, 207, 68, 81, 36, 51, 36, 57, 72, 36, 51, 0, 23, 72, 183,
-			52, 95, 68, 115, 243, 30, 0, 48, 37, 51, 65, 39, 51, 108, 72, 37, 57, 108, 50, 0, 23, 72, 182, 4, 243, 122, 33, 224, 204, 112,
-			48, 36, 50, 89, 37, 55, 84, 108, 50, 37, 57, 108, 0, 13, 68, 181, 28, 71, 68, 48, 35, 51, 81, 108, 51, 0, 20, 71, 181, 17,
-			241, 124, 114, 179, 192, 48, 36, 51, 108, 81, 65, 108, 47, 37, 49, 0, 14, 68, 126, 7, 7, 68, 65, 36, 50, 104, 17, 108, 51, 0,
-			18, 69, 125, 145, 207, 122, 16, 6, 65, 39, 19, 108, 72, 36, 55, 36, 12, 0, 16, 69, 125, 50, 146, 28, 240, 65, 39, 89, 47, 35,
-			88, 108, 72, 0, 13, 68, 125, 50, 7, 68, 65, 36, 89, 71, 108, 51, 0, 20, 70, 120, 124, 224, 113, 118, 64, 55, 108, 57, 35, 50,
-			104, 17, 35, 47, 36, 19, 0, 10, 67, 109, 116, 64, 83, 36, 47, 51, 0, 11, 67, 83, 4, 64, 91, 36, 49, 35, 51, 0, 17, 69,
-			82, 33, 222, 206, 16, 91, 39, 84, 108, 55, 37, 57, 36, 12, 0, 12, 68, 78, 40, 7, 68, 89, 39, 50, 108, 51, 0, 15, 69, 78,
-			3, 200, 28, 240, 89, 35, 50, 72, 71, 108, 72, 0, 17, 69, 68, 120, 109, 122, 16, 51, 108, 107, 48, 36, 55, 55, 36, 12, 0, 10,
-			67, 67, 4, 64, 88, 36, 49, 51, 0, 12, 67, 53, 49, 211, 107, 35, 89, 89, 108, 89, 0, 13, 68, 50, 44, 7, 68, 75, 39, 12,
-			49, 108, 51, 0, 18, 70, 43, 50, 135, 131, 55, 192, 47, 37, 47, 108, 50, 37, 57, 39, 65, 0, 16, 69, 41, 244, 113, 204, 240, 47,
-			35, 65, 35, 51, 81, 37, 72, 0, 16, 69, 41, 28, 226, 122, 16, 47, 51, 37, 57, 40, 55, 36, 12, 0, 10, 67, 35, 4, 64, 71,
-			36, 49, 51, 0, 11, 67, 33, 232, 151, 71, 35, 55, 40, 47, 0, 14, 68, 33, 230, 135, 68, 71, 39, 55, 104, 17, 108, 51, 0, 17,
-			70, 30, 220, 207, 127, 60, 0, 36, 48, 37, 72, 36, 65, 37, 49, 0, 12, 68, 30, 34, 135, 68, 39, 12, 47, 108, 51, 0, 12, 68,
-			30, 12, 7, 68, 36, 50, 49, 108, 51, 0, 16, 69, 29, 230, 94, 206, 16, 39, 55, 10, 35, 55, 35, 57, 107, 0, 0, 12, 67, 193,
-			236, 192, 49, 39, 6, 55, 55, 37, 0, 10, 67, 137, 236, 192, 84, 35, 55, 37, 0, 10, 67, 129, 236, 192, 50, 36, 55, 37, 0, 14,
-			68, 125, 18, 150, 204, 65, 39, 51, 47, 36, 88, 108, 0, 16, 69, 109, 228, 215, 206, 0, 83, 36, 55, 36, 89, 47, 37, 50, 0, 15,
-			69, 81, 246, 79, 30, 0, 91, 35, 65, 19, 72, 108, 50, 0, 13, 68, 79, 55, 240, 80, 89, 37, 65, 49, 36, 91, 0, 11, 67, 61,
-			17, 210, 72, 36, 51, 108, 88, 0, 10, 67, 42, 40, 0, 47, 40, 50, 0, 76, 0, 12, 67, 207, 4, 209, 57, 36, 49, 89, 35, 51,
-			0, 15, 69, 193, 28, 207, 137, 16, 49, 39, 51, 37, 72, 39, 51, 0, 12, 67, 193, 20, 209, 49, 36, 51, 89, 36, 51, 0, 19, 70,
-			181, 20, 202, 204, 252, 223, 48, 35, 51, 35, 89, 47, 37, 72, 37, 65, 0, 15, 69, 134, 33, 207, 29, 16, 107, 35, 84, 108, 72, 108,
-			51, 0, 17, 69, 133, 242, 17, 197, 16, 107, 35, 65, 71, 36, 51, 81, 36, 51, 0, 13, 68, 129, 56, 7, 76, 50, 35, 89, 50, 108,
-			89, 0, 14, 67, 127, 4, 209, 65, 39, 49, 35, 89, 89, 35, 51, 0, 20, 70, 125, 33, 205, 124, 172, 223, 65, 39, 88, 108, 107, 36,
-			65, 36, 47, 37, 65, 0, 15, 69, 77, 252, 224, 29, 16, 89, 36, 65, 37, 50, 108, 51, 0, 15, 69, 70, 3, 8, 29, 16, 51, 35,
-			50, 75, 71, 108, 51, 0, 14, 67, 69, 193, 213, 51, 35, 104, 17, 104, 17, 108, 89, 0, 16, 69, 61, 230, 241, 29, 16, 72, 36, 55,
-			83, 35, 81, 108, 51, 0, 13, 67, 61, 20, 209, 72, 35, 51, 89, 35, 51, 36, 0, 15, 69, 57, 76, 8, 29, 16, 101, 39, 91, 49,
-			71, 108, 51, 0, 13, 68, 57, 24, 7, 76, 101, 39, 51, 50, 108, 89, 0, 16, 69, 40, 136, 112, 29, 16, 47, 35, 71, 35, 107, 49,
-			108, 51, 0, 13, 67, 33, 20, 209, 71, 35, 51, 89, 35, 51, 36, 0, 16, 69, 32, 120, 156, 29, 16, 71, 108, 84, 35, 104, 17, 108,
-			51, 0, 15, 69, 29, 232, 33, 29, 16, 39, 50, 50, 35, 107, 108, 51, 0, 12, 68, 29, 183, 135, 76, 36, 83, 55, 108, 89, 0, 15,
-			69, 28, 210, 176, 29, 16, 36, 107, 47, 36, 49, 108, 51, 0, 15, 69, 8, 165, 31, 29, 16, 108, 47, 35, 91, 65, 108, 51, 0, 0,
-			12, 67, 193, 225, 212, 49, 35, 55, 55, 108, 91, 0, 15, 69, 193, 19, 240, 139, 48, 49, 39, 51, 72, 49, 40, 57, 0, 15, 69, 181,
-			19, 199, 75, 48, 48, 35, 51, 72, 108, 88, 37, 0, 10, 67, 110, 11, 128, 83, 36, 50, 76, 0, 11, 67, 101, 232, 179, 35, 55, 35,
-			84, 37, 0, 12, 67, 57, 177, 212, 101, 39, 83, 83, 108, 91, 0, 10, 67, 33, 124, 243, 71, 35, 47, 37, 0, 16, 70, 33, 19, 162,
-			29, 50, 128, 71, 35, 51, 101, 108, 89, 47, 0, 18, 70, 32, 124, 51, 29, 50, 128, 71, 108, 49, 37, 57, 108, 89, 35, 47, 0, 10,
-			67, 32, 116, 162, 71, 108, 88, 40, 0, 12, 68, 29, 232, 7, 72, 36, 55, 50, 108, 88, 0, 11, 67, 29, 151, 179, 19, 35, 19, 55,
-			108, 0, 17, 70, 29, 60, 207, 137, 188, 222, 35, 89, 37, 72, 39, 83, 37, 55, 0, 16, 69, 29, 50, 143, 206, 32, 36, 89, 47, 36,
-			72, 37, 57, 39, 0, 0, 17, 70, 198, 40, 81, 32, 116, 64, 81, 39, 107, 35, 51, 71, 108, 51, 0, 21, 71, 196, 116, 176, 68, 136,
-			51, 192, 81, 108, 88, 49, 35, 51, 71, 39, 50, 37, 49, 0, 18, 70, 183, 56, 147, 40, 116, 64, 48, 36, 57, 84, 35, 89, 47, 108,
-			51, 0, 17, 70, 182, 36, 71, 76, 161, 207, 48, 40, 51, 39, 89, 47, 108, 72, 0, 14, 68, 131, 49, 211, 68, 50, 37, 57, 108, 89,
-			35, 51, 0, 17, 70, 129, 244, 98, 204, 120, 0, 50, 35, 65, 51, 40, 57, 108, 50, 0, 24, 73, 128, 116, 243, 138, 1, 222, 205, 39,
-			192, 50, 108, 89, 37, 57, 39, 50, 108, 55, 37, 88, 65, 0, 15, 68, 125, 120, 107, 68, 65, 39, 47, 35, 107, 107, 35, 51, 0, 14,
-			67, 124, 52, 211, 65, 39, 19, 35, 89, 89, 36, 89, 0, 15, 68, 78, 12, 83, 68, 89, 35, 50, 81, 36, 89, 35, 51, 0, 17, 70,
-			63, 60, 81, 32, 116, 64, 72, 37, 81, 35, 51, 71, 108, 51, 0, 20, 71, 63, 59, 94, 124, 114, 179, 192, 72, 37, 48, 55, 39, 65,
-			108, 47, 37, 49, 0, 14, 68, 43, 1, 226, 68, 47, 35, 49, 108, 84, 35, 51, 0, 15, 68, 42, 6, 235, 68, 47, 35, 50, 35, 83,
-			83, 39, 51, 0, 20, 71, 41, 23, 226, 206, 40, 51, 192, 47, 36, 51, 65, 39, 57, 39, 50, 37, 49, 0, 11, 67, 33, 49, 215, 71,
-			35, 89, 108, 47, 0, 18, 70, 32, 244, 91, 40, 116, 64, 71, 35, 72, 51, 35, 83, 47, 108, 51, 0, 23, 72, 29, 236, 10, 70, 39,
-			179, 74, 16, 36, 55, 36, 49, 47, 36, 51, 39, 55, 37, 88, 36, 0, 0, 11, 67, 187, 1, 237, 76, 36, 49, 108, 48, 0, 15, 69,
-			181, 28, 224, 29, 32, 48, 35, 51, 37, 50, 108, 88, 0, 16, 69, 77, 24, 160, 29, 32, 89, 35, 51, 84, 36, 50, 108, 88, 0, 14,
-			68, 41, 70, 84, 136, 47, 35, 91, 35, 19, 91, 39, 0, 0, 20, 70, 197, 19, 226, 104, 129, 209, 81, 35, 51, 72, 39, 104, 17, 39,
-			71, 108, 51, 0, 16, 69, 197, 19, 194, 137, 16, 81, 36, 51, 72, 108, 84, 35, 51, 0, 13, 68, 29, 55, 7, 92, 36, 89, 104, 17,
-			108, 47, 0, 0, 17, 70, 181, 28, 240, 29, 27, 64, 48, 36, 51, 37, 49, 108, 51, 48, 0, 11, 67, 137, 145, 216, 84, 39, 19, 108,
-			88, 0, 15, 68, 124, 200, 107, 72, 65, 39, 75, 35, 107, 107, 35, 88, 0, 14, 68, 124, 129, 209, 72, 65, 39, 71, 108, 51, 36, 88,
-			0, 11, 67, 74, 2, 128, 88, 35, 50, 35, 47, 0, 14, 67, 53, 194, 128, 107, 35, 104, 17, 104, 17, 35, 47, 0, 11, 67, 42, 2,
-			128, 47, 35, 50, 35, 47, 0, 18, 70, 30, 243, 225, 31, 5, 0, 36, 90, 72, 36, 107, 108, 49, 39, 91, 0, 0, 19, 70, 181, 24,
-			15, 196, 120, 0, 48, 35, 51, 35, 50, 72, 36, 81, 108, 50, 0, 17, 70, 128, 123, 94, 26, 40, 0, 50, 108, 48, 36, 55, 19, 39,
-			50, 0, 19, 70, 70, 37, 32, 111, 4, 64, 51, 39, 12, 91, 35, 50, 83, 36, 49, 51, 0, 15, 68, 29, 119, 135, 100, 36, 12, 47,
-			47, 36, 55, 108, 19, 0, 16, 70, 29, 50, 135, 42, 36, 64, 36, 89, 47, 108, 47, 39, 51, 0, 17, 70, 9, 241, 209, 205, 236, 211,
-			108, 65, 108, 51, 37, 55, 37, 89, 0, 0, 12, 67, 185, 17, 218, 76, 36, 51, 108, 104, 17, 0, 19, 70, 184, 115, 209, 129, 241, 210,
-			76, 108, 72, 39, 51, 50, 35, 65, 108, 88, 0, 12, 67, 129, 151, 202, 50, 36, 19, 65, 35, 47, 0, 12, 67, 83, 1, 202, 91, 39,
-			49, 49, 108, 47, 0, 10, 67, 61, 145, 202, 72, 39, 108, 47, 0, 11, 67, 33, 17, 202, 71, 35, 51, 108, 47, 0, 12, 68, 29, 22,
-			71, 32, 36, 51, 19, 108, 71, 0, 0, 13, 68, 125, 225, 209, 60, 65, 35, 55, 108, 51, 72, 0, 21, 71, 108, 124, 200, 71, 23, 135,
-			76, 83, 108, 57, 71, 36, 51, 81, 36, 55, 108, 89, 0, 14, 68, 82, 1, 211, 60, 91, 36, 50, 108, 89, 35, 72, 0, 19, 70, 57,
-			19, 226, 57, 252, 209, 101, 39, 51, 72, 39, 101, 35, 65, 37, 51, 0, 16, 68, 42, 39, 171, 60, 6, 47, 35, 84, 35, 55, 55, 39,
-			72, 0, 22, 71, 29, 40, 135, 120, 167, 199, 76, 36, 88, 88, 39, 10, 36, 55, 47, 36, 65, 108, 89, 0, 10, 67, 30, 3, 192, 35,
-			50, 72, 0, 76, 8, 3, 95, 51, 88, 89, 37, 0, 0, 18, 70, 186, 3, 223, 31, 55, 179, 76, 35, 50, 72, 65, 108, 57, 55, 37,
-			0, 15, 68, 126, 183, 179, 40, 65, 36, 55, 55, 37, 57, 35, 47, 0, 13, 68, 125, 76, 7, 40, 65, 36, 91, 49, 108, 47, 0, 14,
-			68, 121, 119, 199, 40, 55, 35, 47, 35, 65, 108, 47, 0, 15, 68, 112, 166, 71, 40, 104, 17, 35, 47, 35, 19, 108, 47, 0, 18, 69,
-			82, 33, 222, 207, 32, 91, 39, 84, 108, 55, 37, 57, 36, 57, 36, 0, 18, 70, 43, 55, 226, 68, 161, 212, 47, 36, 57, 65, 40, 51,
-			47, 108, 91, 0, 15, 68, 41, 18, 51, 40, 47, 35, 51, 71, 37, 57, 35, 47, 0, 13, 68, 28, 135, 135, 104, 36, 71, 55, 108, 104,
-			17, 0, 10, 3, 95, 48, 67, 89, 35, 12, 72, 0, 0, 15, 69, 128, 123, 79, 204, 240, 50, 108, 48, 35, 72, 37, 72, 0, 16, 68,
-			126, 7, 23, 100, 65, 39, 50, 104, 17, 35, 47, 36, 19, 0, 11, 67, 125, 17, 207, 65, 39, 51, 108, 72, 0, 19, 70, 124, 252, 202,
-			205, 72, 0, 65, 36, 72, 37, 47, 36, 57, 91, 36, 50, 0, 10, 67, 83, 48, 64, 91, 36, 57, 19, 0, 15, 69, 70, 36, 219, 204,
-			240, 51, 40, 89, 36, 83, 37, 72, 0, 22, 72, 29, 50, 135, 127, 56, 34, 110, 0, 36, 89, 47, 108, 65, 37, 50, 39, 83, 36, 50,
-			0, 10, 67, 28, 165, 0, 35, 47, 35, 91, 0, 9, 66, 204, 112, 57, 108, 12, 0, 76, 0, 16, 68, 57, 18, 18, 200, 101, 35, 51,
-			71, 39, 88, 36, 57, 36, 0, 16, 68, 49, 18, 18, 200, 75, 39, 51, 71, 39, 88, 36, 57, 36, 0, 15, 69, 49, 17, 205, 28, 160,
-			75, 36, 51, 108, 107, 108, 47, 0, 16, 69, 41, 24, 159, 180, 160, 47, 36, 51, 39, 65, 48, 36, 47, 0, 21, 72, 10, 2, 145, 139,
-			12, 224, 29, 32, 108, 50, 47, 51, 39, 49, 37, 50, 108, 88, 0, 16, 68, 8, 167, 179, 200, 108, 47, 36, 55, 37, 57, 36, 57, 36,
-			0, 0, 9, 65, 28, 6, 35, 55, 36, 83, 0, 0, 19, 70, 181, 23, 224, 109, 146, 128, 48, 39, 51, 65, 35, 50, 83, 36, 35, 47,
-			0, 14, 68, 137, 49, 215, 40, 84, 36, 89, 108, 47, 35, 47, 0, 13, 68, 131, 55, 240, 40, 50, 37, 65, 49, 35, 47, 0, 13, 67,
-			129, 200, 179, 50, 35, 104, 17, 35, 84, 37, 0, 17, 69, 127, 52, 90, 88, 128, 65, 37, 51, 104, 17, 35, 88, 35, 71, 0, 14, 67,
-			125, 200, 179, 65, 39, 104, 17, 35, 84, 84, 37, 0, 16, 70, 122, 44, 34, 79, 50, 128, 55, 39, 49, 39, 89, 37, 47, 0, 13, 68,
-			100, 129, 209, 40, 36, 71, 108, 51, 35, 47, 0, 12, 67, 82, 8, 179, 91, 36, 50, 35, 84, 37, 0, 14, 68, 73, 18, 148, 40, 88,
-			35, 51, 47, 39, 91, 47, 0, 12, 67, 69, 36, 98, 51, 36, 88, 36, 51, 84, 0, 10, 67, 68, 124, 98, 51, 108, 81, 39, 0, 12,
-			68, 42, 34, 51, 56, 47, 39, 71, 37, 101, 0, 11, 67, 41, 28, 51, 47, 39, 51, 49, 37, 0, 16, 70, 9, 178, 162, 124, 114, 128,
-			108, 83, 47, 39, 65, 108, 47, 0, 0, 17, 70, 131, 49, 224, 196, 116, 79, 50, 35, 57, 35, 50, 81, 108, 51, 0, 11, 67, 130, 36,
-			135, 50, 39, 12, 88, 108, 0, 12, 67, 122, 20, 7, 55, 36, 107, 108, 88, 108, 0, 19, 70, 35, 49, 224, 196, 116, 79, 71, 37, 57,
-			35, 50, 81, 108, 51, 35, 72, 0, 15, 69, 29, 146, 159, 28, 240, 36, 19, 47, 36, 65, 108, 72, 0, 12, 67, 29, 114, 7, 35, 47,
-			36, 71, 71, 108, 0, 17, 70, 10, 33, 224, 196, 116, 79, 108, 84, 108, 50, 81, 108, 51, 72, 0, 0, 19, 70, 207, 11, 71, 70, 236,
-			128, 57, 36, 49, 48, 108, 51, 76, 36, 57, 36, 0, 13, 68, 205, 56, 153, 204, 57, 35, 89, 40, 19, 37, 0, 18, 69, 137, 21, 48,
-			76, 160, 84, 35, 51, 91, 36, 6, 49, 35, 89, 47, 0, 16, 69, 131, 52, 243, 30, 0, 50, 36, 57, 89, 37, 57, 108, 50, 0, 13,
-			68, 57, 248, 143, 204, 101, 35, 65, 40, 72, 37, 0, 13, 68, 52, 124, 209, 204, 107, 108, 57, 36, 51, 37, 0, 16, 69, 34, 18, 145,
-			138, 0, 71, 36, 107, 47, 35, 51, 40, 50, 0, 15, 69, 8, 165, 15, 30, 0, 108, 47, 35, 91, 72, 108, 50, 0, 0, 14, 68, 83,
-			7, 237, 28, 91, 36, 49, 35, 65, 48, 108, 0, 13, 68, 34, 3, 237, 28, 71, 35, 50, 72, 48, 108, 0, 0, 17, 69, 181, 52, 89,
-			126, 32, 48, 36, 89, 35, 51, 35, 12, 65, 40, 0, 11, 67, 126, 39, 179, 65, 39, 12, 55, 108, 0, 12, 67, 126, 8, 179, 65, 36,
-			50, 39, 57, 36, 0, 17, 69, 124, 194, 136, 139, 48, 65, 39, 75, 47, 35, 71, 35, 84, 37, 0, 11, 67, 123, 55, 179, 55, 36, 57,
-			55, 37, 0, 17, 70, 109, 232, 174, 29, 18, 128, 83, 36, 55, 39, 76, 108, 51, 47, 0, 12, 67, 61, 20, 98, 72, 35, 51, 51, 39,
-			12, 0, 12, 67, 59, 55, 179, 6, 101, 36, 57, 55, 37, 0, 10, 3, 95, 49, 67, 89, 35, 12, 72, 0, 5, 65, 160, 35, 0, 0,
-			18, 70, 192, 116, 112, 128, 120, 0, 6, 49, 108, 51, 49, 39, 50, 108, 50, 0, 14, 67, 125, 200, 135, 65, 39, 104, 17, 35, 84, 84,
-			108, 0, 11, 67, 84, 214, 192, 89, 39, 107, 39, 83, 0, 11, 67, 62, 39, 135, 72, 39, 55, 55, 108, 0, 12, 67, 57, 114, 7, 101,
-			39, 47, 35, 71, 108, 0, 23, 72, 49, 164, 71, 111, 49, 207, 30, 0, 75, 39, 104, 17, 51, 108, 83, 37, 57, 72, 108, 50, 0, 15,
-			69, 34, 36, 111, 136, 112, 71, 40, 51, 90, 40, 84, 108, 0, 18, 70, 32, 247, 243, 128, 168, 0, 71, 35, 72, 65, 37, 50, 47, 39,
-			50, 0, 13, 67, 30, 39, 135, 35, 84, 84, 35, 55, 35, 50, 0, 10, 67, 29, 151, 135, 35, 19, 55, 108, 0, 0, 8, 66, 192, 160,
-			49, 39, 47, 0, 16, 68, 124, 166, 79, 204, 65, 39, 47, 36, 19, 35, 72, 72, 37, 0, 14, 68, 112, 116, 223, 204, 104, 17, 108, 89,
-			36, 65, 37, 0, 18, 70, 75, 52, 76, 123, 12, 192, 88, 37, 51, 75, 39, 55, 35, 49, 37, 0, 17, 70, 61, 17, 226, 204, 252, 192,
-			72, 36, 51, 108, 84, 37, 72, 37, 0, 14, 69, 60, 119, 138, 138, 0, 72, 108, 55, 47, 39, 50, 0, 17, 70, 43, 6, 199, 128, 248,
-			128, 47, 36, 49, 83, 108, 50, 72, 39, 0, 14, 68, 41, 28, 222, 204, 47, 36, 51, 36, 57, 55, 37, 0, 21, 72, 29, 50, 135, 120,
-			124, 95, 204, 160, 36, 89, 47, 108, 55, 108, 81, 65, 37, 47, 0, 0, 12, 67, 194, 243, 223, 49, 35, 90, 72, 39, 65, 0, 11, 67,
-			185, 67, 192, 76, 36, 91, 35, 72, 0, 13, 68, 139, 56, 158, 28, 84, 37, 57, 39, 55, 108, 0, 13, 67, 133, 178, 159, 6, 107, 35,
-			83, 47, 39, 65, 0, 20, 70, 124, 168, 135, 123, 49, 192, 65, 39, 47, 36, 84, 108, 55, 37, 57, 108, 50, 0, 14, 68, 33, 149, 179,
-			28, 71, 35, 19, 88, 37, 57, 108, 0, 17, 70, 29, 59, 71, 131, 49, 192, 36, 89, 48, 108, 50, 37, 57, 108, 0, 0, 12, 67, 135,
-			60, 30, 107, 36, 57, 49, 35, 55, 0, 13, 67, 125, 147, 222, 65, 39, 35, 72, 72, 36, 55, 0, 10, 67, 79, 60, 30, 89, 37, 49,
-			55, 0, 15, 69, 32, 120, 49, 135, 48, 71, 108, 50, 81, 35, 107, 37, 0, 0, 11, 67, 132, 246, 192, 107, 35, 72, 35, 83, 0, 11,
-			67, 128, 247, 192, 50, 35, 72, 35, 65, 0, 13, 67, 125, 236, 33, 65, 35, 55, 35, 49, 36, 12, 0, 13, 68, 125, 66, 162, 192, 65,
-			39, 91, 47, 40, 49, 0, 19, 70, 124, 244, 107, 76, 120, 0, 65, 39, 72, 35, 51, 51, 36, 89, 108, 50, 0, 11, 67, 76, 116, 143,
-			89, 108, 88, 35, 72, 0, 19, 70, 57, 23, 241, 76, 120, 0, 101, 35, 51, 65, 35, 81, 35, 89, 108, 50, 0, 11, 67, 40, 214, 192,
-			47, 39, 107, 35, 83, 0, 13, 69, 30, 34, 135, 136, 112, 39, 47, 108, 84, 108, 0, 14, 69, 29, 50, 179, 120, 112, 36, 89, 47, 37,
-			55, 108, 0, 0, 16, 70, 194, 39, 199, 128, 248, 128, 49, 39, 65, 108, 50, 72, 39, 0, 12, 67, 194, 35, 224, 49, 39, 12, 72, 35,
-			50, 0, 14, 69, 58, 44, 212, 42, 0, 101, 37, 91, 47, 35, 50, 0, 11, 67, 52, 119, 138, 107, 108, 55, 35, 47, 0, 17, 70, 43,
-			8, 135, 128, 248, 128, 47, 36, 49, 84, 108, 50, 72, 39, 0, 10, 67, 41, 72, 0, 47, 36, 91, 50, 0, 13, 68, 32, 119, 176, 120,
-			71, 36, 55, 49, 39, 55, 0, 13, 67, 28, 232, 138, 39, 101, 39, 84, 84, 35, 47, 0, 12, 3, 95, 49, 57, 50, 40, 88, 72, 35,
-			107, 0, 0, 12, 67, 194, 216, 64, 49, 39, 48, 48, 36, 12, 0, 24, 73, 135, 51, 209, 136, 252, 224, 29, 252, 240, 107, 37, 72, 51,
-			39, 72, 37, 50, 108, 65, 37, 49, 0, 12, 67, 127, 50, 223, 65, 36, 57, 89, 35, 65, 0, 15, 68, 125, 200, 25, 132, 65, 35, 104,
-			17, 50, 35, 19, 36, 0, 14, 67, 125, 55, 141, 65, 39, 89, 35, 55, 55, 35, 107, 0, 18, 69, 124, 172, 30, 173, 240, 65, 39, 47,
-			36, 49, 35, 55, 55, 36, 65, 0, 12, 67, 122, 216, 64, 55, 35, 48, 48, 36, 12, 0, 11, 67, 78, 3, 192, 89, 35, 50, 35, 72,
-			0, 11, 67, 69, 248, 176, 51, 35, 65, 40, 49, 0, 17, 70, 61, 17, 240, 137, 225, 192, 72, 36, 51, 108, 49, 40, 55, 108, 0, 10,
-			67, 50, 3, 192, 76, 39, 50, 72, 0, 13, 68, 50, 2, 51, 60, 75, 39, 50, 71, 37, 72, 0, 13, 68, 41, 21, 51, 60, 47, 39,
-			51, 91, 37, 72, 0, 14, 68, 34, 35, 34, 60, 71, 36, 84, 39, 75, 40, 72, 0, 16, 70, 30, 34, 162, 183, 49, 192, 39, 47, 39,
-			48, 37, 57, 108, 0, 11, 67, 28, 248, 95, 35, 72, 107, 35, 65, 0, 12, 3, 95, 49, 56, 107, 37, 75, 72, 35, 107, 0, 0, 16,
-			69, 186, 17, 209, 197, 224, 76, 108, 107, 108, 51, 81, 39, 55, 0, 12, 67, 137, 38, 128, 84, 35, 88, 35, 104, 17, 0, 14, 67, 127,
-			7, 222, 65, 39, 49, 35, 65, 65, 36, 55, 0, 12, 67, 124, 199, 222, 65, 39, 75, 65, 35, 55, 0, 17, 68, 124, 167, 240, 128, 65,
-			39, 47, 36, 65, 35, 49, 49, 36, 50, 0, 18, 70, 123, 56, 160, 29, 19, 226, 55, 36, 10, 39, 50, 108, 51, 72, 39, 0, 21, 71,
-			79, 56, 31, 29, 60, 34, 180, 89, 37, 50, 36, 65, 108, 36, 89, 49, 39, 48, 0, 11, 67, 78, 3, 128, 6, 89, 36, 50, 101, 0,
-			12, 68, 75, 60, 98, 40, 88, 37, 81, 39, 47, 0, 12, 67, 61, 252, 94, 72, 39, 65, 81, 39, 55, 0, 11, 67, 57, 34, 128, 101,
-			35, 88, 35, 47, 0, 10, 67, 46, 34, 0, 89, 39, 12, 71, 0, 13, 67, 40, 120, 94, 47, 35, 35, 107, 107, 39, 55, 0, 14, 67,
-			40, 119, 222, 47, 35, 19, 35, 65, 65, 39, 55, 0, 12, 3, 95, 50, 67, 72, 37, 84, 37, 89, 47, 0, 0, 12, 67, 197, 40, 33,
-			81, 35, 88, 35, 50, 36, 0, 14, 68, 187, 1, 226, 192, 76, 35, 49, 108, 84, 35, 49, 0, 11, 67, 185, 66, 161, 76, 36, 91, 47,
-			36, 0, 15, 69, 183, 1, 224, 204, 240, 48, 39, 49, 108, 50, 37, 72, 0, 13, 68, 135, 59, 179, 192, 107, 37, 76, 57, 36, 49, 0,
-			13, 67, 133, 179, 225, 6, 107, 36, 83, 72, 35, 107, 0, 12, 67, 131, 52, 64, 50, 35, 57, 57, 36, 51, 0, 12, 67, 130, 35, 97,
-			50, 39, 12, 107, 36, 12, 0, 15, 69, 129, 23, 199, 62, 16, 50, 35, 51, 65, 108, 72, 36, 0, 13, 68, 128, 118, 225, 124, 50, 108,
-			83, 35, 107, 65, 0, 16, 69, 126, 212, 83, 204, 240, 65, 35, 48, 39, 51, 89, 37, 72, 0, 16, 69, 125, 50, 155, 204, 240, 65, 39,
-			89, 47, 35, 83, 37, 72, 0, 13, 68, 124, 162, 34, 100, 65, 35, 47, 71, 40, 19, 0, 12, 67, 108, 168, 33, 83, 36, 47, 50, 36,
-			12, 0, 12, 67, 81, 182, 97, 91, 39, 83, 19, 36, 12, 0, 16, 69, 77, 20, 83, 204, 240, 89, 35, 51, 51, 36, 89, 37, 72, 0,
-			12, 67, 61, 72, 33, 72, 36, 91, 50, 36, 12, 0, 16, 69, 57, 251, 71, 70, 16, 101, 39, 65, 48, 108, 51, 36, 12, 0, 14, 68,
-			41, 177, 225, 124, 47, 35, 83, 108, 107, 39, 65, 0, 22, 72, 31, 52, 112, 30, 3, 243, 82, 0, 36, 57, 51, 49, 108, 50, 72, 37,
-			91, 36, 50, 0, 16, 69, 29, 226, 10, 174, 16, 35, 55, 71, 35, 47, 47, 36, 12, 0, 20, 70, 29, 50, 145, 29, 236, 199, 39, 89,
-			47, 39, 6, 51, 108, 55, 37, 57, 108, 0, 0, 16, 69, 194, 24, 49, 30, 0, 49, 39, 107, 50, 36, 81, 108, 50, 0, 25, 73, 184,
-			115, 209, 184, 119, 46, 137, 28, 192, 76, 108, 72, 39, 51, 76, 108, 104, 17, 76, 40, 51, 37, 0, 14, 67, 134, 44, 202, 107, 39, 84,
-			37, 57, 57, 35, 47, 0, 12, 67, 130, 21, 138, 50, 36, 107, 88, 35, 47, 0, 12, 67, 126, 39, 224, 65, 39, 19, 65, 36, 50, 0,
-			13, 67, 124, 167, 32, 65, 39, 47, 104, 17, 35, 50, 0, 11, 67, 123, 60, 32, 55, 37, 49, 36, 50, 0, 12, 67, 76, 172, 218, 89,
-			36, 47, 37, 104, 17, 0, 12, 67, 41, 76, 0, 47, 39, 6, 91, 35, 49, 0, 14, 68, 35, 54, 95, 120, 71, 37, 19, 35, 65, 35,
-			55, 0, 14, 68, 32, 246, 95, 120, 71, 35, 72, 35, 65, 35, 55, 0, 0, 14, 68, 204, 115, 223, 132, 57, 108, 72, 35, 65, 36, 12,
-			0, 15, 68, 193, 21, 31, 132, 49, 36, 51, 36, 91, 65, 36, 12, 0, 11, 67, 187, 55, 145, 76, 37, 55, 36, 51, 0, 17, 69, 129,
-			252, 207, 133, 240, 50, 36, 65, 37, 72, 35, 107, 35, 65, 0, 20, 70, 129, 132, 112, 68, 248, 64, 50, 35, 88, 35, 51, 49, 35, 51,
-			72, 36, 12, 0, 15, 68, 128, 132, 79, 132, 50, 35, 71, 39, 51, 72, 36, 12, 0, 18, 70, 127, 55, 179, 29, 19, 223, 65, 37, 55,
-			57, 108, 51, 72, 39, 65, 0, 18, 68, 125, 200, 32, 132, 65, 39, 104, 17, 35, 50, 50, 35, 50, 36, 12, 0, 18, 68, 125, 195, 223,
-			132, 65, 39, 104, 17, 35, 72, 72, 35, 65, 36, 12, 0, 15, 68, 125, 20, 207, 132, 65, 36, 51, 89, 36, 72, 36, 12, 0, 15, 68,
-			122, 36, 79, 132, 55, 35, 84, 35, 51, 72, 36, 12, 0, 14, 68, 108, 117, 223, 132, 83, 108, 47, 36, 65, 36, 12, 0, 11, 67, 81,
-			24, 145, 91, 35, 51, 40, 51, 0, 12, 67, 77, 24, 145, 89, 36, 51, 84, 36, 51, 0, 18, 70, 77, 17, 243, 128, 248, 64, 89, 39,
-			51, 108, 57, 108, 50, 72, 36, 0, 13, 68, 76, 123, 159, 132, 89, 108, 76, 65, 36, 12, 0, 18, 70, 69, 49, 224, 128, 248, 64, 51,
-			36, 89, 108, 50, 35, 50, 72, 36, 0, 18, 70, 63, 20, 72, 29, 24, 64, 72, 36, 81, 35, 51, 71, 108, 51, 36, 0, 16, 70, 62,
-			35, 199, 131, 24, 64, 72, 39, 72, 108, 50, 81, 36, 0, 16, 70, 40, 116, 98, 182, 35, 192, 47, 108, 51, 39, 48, 40, 72, 0, 14,
-			68, 34, 28, 224, 132, 71, 36, 107, 37, 50, 36, 12, 0, 0, 16, 68, 125, 50, 141, 112, 65, 39, 89, 47, 35, 107, 35, 104, 17, 0,
-			17, 68, 124, 165, 159, 128, 65, 39, 47, 36, 88, 35, 65, 65, 36, 50, 0, 20, 70, 101, 82, 7, 131, 50, 128, 35, 89, 35, 71, 108,
-			50, 37, 57, 57, 35, 47, 0, 13, 68, 80, 116, 79, 128, 91, 108, 51, 72, 35, 50, 0, 14, 67, 77, 196, 128, 89, 35, 104, 17, 104,
-			17, 36, 88, 0, 14, 68, 61, 21, 159, 128, 72, 35, 51, 88, 36, 65, 50, 0, 10, 67, 34, 4, 128, 71, 36, 50, 88, 0, 24, 73,
-			29, 60, 51, 74, 38, 209, 131, 60, 0, 36, 89, 49, 37, 88, 39, 83, 36, 51, 50, 37, 49, 0, 12, 68, 9, 236, 226, 40, 108, 55,
-			36, 40, 47, 0, 11, 67, 8, 133, 20, 108, 71, 91, 39, 91, 0, 0, 14, 69, 132, 116, 98, 120, 240, 107, 108, 51, 39, 55, 72, 0,
-			12, 67, 124, 199, 147, 65, 35, 75, 55, 36, 89, 0, 18, 70, 34, 35, 226, 128, 136, 143, 71, 40, 72, 39, 50, 35, 71, 40, 72, 0,
-			15, 69, 29, 50, 162, 70, 16, 39, 89, 47, 40, 51, 36, 12, 0, 16, 70, 8, 161, 202, 137, 28, 0, 108, 47, 108, 47, 39, 51, 49,
-			0, 0, 18, 70, 198, 40, 81, 40, 115, 0, 81, 39, 12, 107, 35, 51, 47, 108, 75, 0, 15, 68, 181, 18, 173, 80, 48, 39, 51, 47,
-			35, 48, 36, 91, 0, 13, 68, 124, 227, 226, 80, 65, 35, 101, 72, 40, 91, 0, 14, 68, 124, 130, 143, 204, 65, 39, 71, 47, 35, 72,
-			37, 0, 15, 69, 70, 12, 79, 30, 0, 51, 35, 50, 81, 72, 108, 50, 0, 24, 73, 58, 35, 199, 131, 28, 206, 43, 28, 192, 101, 39,
-			72, 35, 50, 81, 37, 101, 47, 36, 81, 37, 0, 10, 67, 56, 124, 214, 101, 108, 36, 88, 0, 11, 67, 52, 115, 18, 107, 108, 75, 36,
-			88, 0, 13, 68, 40, 193, 209, 204, 47, 36, 75, 108, 51, 37, 0, 16, 69, 34, 18, 33, 30, 0, 71, 36, 107, 71, 35, 107, 108, 50,
-			0, 13, 68, 9, 248, 146, 80, 108, 65, 40, 88, 36, 91, 0, 12, 3, 95, 49, 49, 57, 108, 88, 72, 35, 107, 0, 0, 18, 70, 198,
-			3, 7, 128, 248, 64, 81, 39, 50, 75, 108, 50, 72, 36, 12, 0, 17, 70, 197, 28, 199, 131, 51, 192, 81, 36, 51, 57, 108, 50, 37,
-			72, 0, 20, 70, 192, 188, 209, 29, 229, 48, 49, 35, 89, 37, 51, 39, 91, 91, 35, 49, 49, 0, 18, 70, 187, 17, 222, 128, 248, 64,
-			76, 36, 81, 108, 55, 35, 50, 72, 36, 0, 12, 67, 182, 11, 145, 48, 35, 50, 76, 35, 51, 0, 20, 71, 180, 244, 78, 136, 120, 15,
-			132, 48, 36, 72, 35, 51, 101, 108, 50, 72, 36, 0, 11, 67, 129, 8, 145, 50, 39, 88, 40, 51, 0, 18, 70, 128, 119, 200, 68, 248,
-			64, 50, 108, 65, 71, 39, 51, 72, 36, 12, 0, 11, 67, 126, 12, 209, 65, 39, 50, 37, 51, 0, 18, 70, 124, 161, 200, 137, 236, 240,
-			65, 36, 47, 108, 71, 39, 55, 37, 49, 0, 17, 70, 121, 242, 7, 131, 51, 192, 55, 39, 65, 71, 108, 50, 37, 72, 0, 13, 68, 114,
-			39, 243, 76, 104, 17, 39, 65, 37, 89, 0, 12, 67, 113, 120, 145, 104, 17, 35, 47, 40, 51, 0, 13, 68, 112, 250, 226, 76, 104, 17,
-			72, 72, 40, 89, 0, 10, 67, 49, 19, 0, 75, 39, 51, 75, 0, 11, 67, 32, 232, 145, 71, 39, 101, 39, 51, 0, 17, 70, 32, 229,
-			7, 131, 51, 192, 71, 35, 101, 91, 108, 50, 37, 72, 0, 17, 70, 32, 116, 98, 34, 8, 64, 71, 108, 51, 39, 71, 39, 50, 36, 0,
-			16, 70, 29, 50, 135, 128, 248, 64, 36, 89, 47, 108, 50, 72, 36, 0, 9, 3, 95, 49, 48, 72, 35, 107, 0, 0, 12, 68, 184, 116,
-			94, 72, 76, 108, 51, 55, 88, 0, 17, 69, 182, 3, 212, 130, 32, 48, 35, 50, 72, 91, 36, 50, 39, 12, 0, 10, 67, 126, 36, 128,
-			65, 39, 12, 88, 0, 15, 68, 125, 71, 198, 72, 65, 39, 91, 65, 35, 19, 36, 88, 0, 17, 70, 124, 124, 96, 43, 50, 128, 65, 108,
-			81, 50, 36, 47, 37, 47, 0, 15, 68, 113, 23, 51, 72, 104, 17, 36, 51, 104, 17, 37, 88, 0, 15, 68, 77, 232, 158, 72, 89, 36,
-			55, 55, 40, 55, 39, 88, 0, 15, 69, 61, 50, 162, 71, 48, 72, 35, 89, 47, 40, 51, 37, 0, 18, 70, 32, 114, 145, 35, 50, 128,
-			71, 108, 47, 35, 51, 71, 57, 35, 47, 0, 16, 70, 29, 60, 17, 206, 210, 128, 36, 89, 49, 51, 37, 48, 47, 0, 10, 67, 28, 136,
-			115, 35, 71, 107, 108, 0, 11, 67, 11, 24, 115, 108, 81, 35, 107, 37, 0, 11, 3, 95, 51, 67, 89, 37, 89, 35, 72, 0, 12, 3,
-			95, 49, 51, 89, 37, 88, 72, 35, 107, 0, 0, 20, 70, 192, 118, 144, 180, 116, 97, 49, 108, 104, 17, 35, 88, 48, 108, 51, 36, 12,
-			0, 13, 68, 139, 55, 174, 68, 84, 37, 55, 76, 36, 51, 0, 18, 70, 136, 124, 80, 29, 19, 225, 84, 108, 81, 39, 88, 108, 51, 72,
-			36, 0, 14, 68, 133, 241, 226, 68, 107, 35, 65, 108, 84, 35, 51, 0, 13, 68, 126, 6, 34, 68, 65, 35, 50, 88, 40, 51, 0, 15,
-			68, 126, 2, 148, 68, 65, 39, 50, 47, 35, 91, 36, 51, 0, 13, 68, 125, 35, 226, 68, 65, 39, 88, 72, 40, 51, 0, 19, 70, 125,
-			19, 224, 42, 40, 0, 65, 39, 51, 72, 35, 50, 36, 47, 40, 50, 0, 13, 68, 124, 214, 34, 68, 65, 35, 107, 88, 40, 51, 0, 14,
-			68, 124, 193, 226, 68, 65, 39, 75, 108, 84, 36, 51, 0, 13, 67, 112, 248, 147, 104, 17, 39, 72, 72, 40, 89, 0, 14, 68, 109, 28,
-			210, 68, 83, 36, 51, 37, 88, 36, 51, 0, 13, 68, 58, 3, 51, 68, 101, 36, 50, 75, 37, 51, 0, 11, 67, 49, 21, 0, 75, 36,
-			51, 36, 91, 0, 17, 70, 41, 17, 240, 42, 36, 64, 47, 36, 51, 108, 49, 47, 39, 51, 0, 12, 68, 40, 115, 179, 68, 47, 35, 101,
-			37, 51, 0, 13, 68, 40, 51, 179, 68, 47, 35, 19, 101, 37, 51, 0, 16, 70, 8, 241, 237, 42, 36, 64, 108, 72, 108, 48, 47, 39,
-			51, 0, 14, 3, 95, 49, 50, 72, 35, 84, 108, 88, 72, 35, 107, 0, 0, 17, 70, 186, 3, 224, 137, 28, 192, 76, 35, 50, 72, 50,
-			40, 51, 37, 0, 15, 69, 127, 1, 224, 205, 32, 65, 36, 49, 108, 50, 37, 88, 0, 16, 69, 125, 50, 155, 205, 96, 65, 39, 89, 47,
-			35, 83, 37, 88, 0, 11, 67, 76, 172, 210, 89, 36, 47, 37, 88, 0, 14, 68, 73, 24, 49, 204, 88, 36, 51, 35, 50, 81, 37, 0,
-			12, 68, 63, 56, 142, 136, 72, 37, 84, 101, 40, 0, 14, 68, 61, 236, 222, 80, 72, 35, 55, 37, 55, 35, 91, 0, 19, 70, 50, 2,
-			32, 63, 28, 192, 75, 39, 50, 71, 35, 50, 72, 36, 81, 37, 0, 14, 68, 49, 247, 177, 204, 75, 39, 65, 55, 36, 81, 37, 0, 17,
-			70, 28, 139, 240, 43, 56, 128, 39, 71, 90, 36, 49, 47, 37, 84, 0, 13, 3, 95, 49, 53, 48, 108, 50, 88, 72, 35, 107, 0, 0,
-			18, 70, 194, 3, 199, 192, 168, 145, 49, 39, 50, 72, 108, 49, 47, 39, 51, 0, 11, 67, 193, 67, 192, 49, 36, 91, 35, 72, 0, 16,
-			69, 186, 17, 209, 181, 16, 76, 108, 107, 108, 51, 48, 35, 51, 0, 19, 70, 181, 24, 175, 192, 168, 145, 48, 39, 51, 39, 90, 36, 49,
-			47, 39, 51, 0, 14, 68, 137, 49, 226, 76, 84, 35, 89, 108, 84, 36, 89, 0, 11, 67, 129, 67, 192, 50, 35, 91, 39, 72, 0, 17,
-			70, 109, 17, 224, 79, 52, 192, 83, 36, 51, 108, 50, 89, 37, 89, 0, 15, 69, 71, 60, 7, 137, 16, 51, 37, 49, 108, 84, 36, 51,
-			0, 18, 70, 41, 23, 243, 76, 168, 145, 47, 36, 51, 65, 37, 89, 47, 39, 51, 0, 15, 69, 33, 23, 212, 137, 16, 71, 35, 51, 65,
-			91, 40, 51, 0, 11, 67, 29, 183, 0, 39, 83, 39, 104, 17, 0, 14, 3, 95, 49, 52, 76, 108, 107, 108, 51, 72, 35, 107, 0, 0,
-			18, 70, 127, 51, 162, 29, 28, 115, 65, 36, 57, 101, 108, 51, 36, 81, 37, 0, 14, 68, 42, 3, 237, 72, 47, 39, 50, 72, 48, 35,
-			88, 0, 18, 70, 41, 24, 138, 127, 52, 128, 47, 35, 51, 39, 47, 35, 65, 37, 88, 0, 19, 71, 35, 52, 202, 194, 44, 243, 40, 71,
-			37, 89, 47, 49, 40, 37, 12, 47, 0, 17, 69, 29, 231, 211, 127, 48, 39, 55, 65, 39, 89, 35, 65, 65, 108, 0, 12, 3, 95, 49,
-			55, 107, 37, 84, 72, 35, 107, 0, 0, 17, 70, 194, 40, 83, 40, 120, 0, 49, 40, 107, 36, 89, 47, 108, 50, 0, 16, 70, 192, 123,
-			115, 40, 120, 0, 49, 108, 48, 37, 47, 108, 50, 0, 18, 70, 70, 36, 136, 59, 52, 64, 51, 40, 88, 71, 36, 101, 36, 57, 51, 0,
-			18, 70, 53, 68, 98, 129, 68, 64, 107, 35, 91, 51, 39, 50, 35, 91, 51, 0, 11, 67, 40, 116, 143, 47, 108, 88, 35, 72, 0, 11,
-			68, 31, 50, 34, 192, 37, 71, 40, 49, 0, 12, 68, 29, 59, 115, 192, 36, 89, 48, 37, 49, 0, 13, 3, 95, 49, 54, 91, 108, 50,
-			88, 72, 35, 107, 0, 0, 17, 70, 198, 3, 7, 128, 252, 192, 81, 39, 50, 75, 108, 50, 72, 37, 0, 17, 70, 192, 116, 72, 68, 252,
-			192, 49, 108, 51, 71, 39, 51, 72, 37, 0, 14, 68, 180, 117, 32, 200, 48, 108, 91, 50, 36, 57, 36, 0, 14, 69, 139, 52, 240, 137,
-			32, 84, 37, 89, 49, 39, 88, 0, 22, 71, 72, 132, 82, 128, 204, 209, 204, 88, 35, 71, 35, 51, 88, 35, 50, 75, 37, 51, 37, 0,
-			20, 71, 48, 120, 8, 28, 226, 177, 204, 75, 108, 50, 71, 108, 101, 47, 36, 81, 37, 0, 16, 69, 41, 228, 240, 138, 208, 47, 36, 55,
-			36, 89, 49, 39, 48, 0, 21, 71, 33, 72, 145, 136, 139, 98, 80, 71, 36, 91, 40, 51, 39, 71, 36, 48, 40, 91, 0, 0, 11, 67,
-			137, 227, 192, 84, 35, 55, 35, 72, 0, 10, 67, 126, 3, 192, 65, 35, 50, 72, 0, 11, 67, 74, 3, 192, 88, 35, 50, 35, 72, 0,
-			10, 67, 70, 3, 192, 51, 36, 50, 72, 0, 18, 70, 68, 115, 243, 28, 168, 145, 51, 108, 72, 37, 57, 108, 47, 39, 51, 0, 10, 67,
-			58, 12, 64, 101, 36, 50, 81, 0, 10, 67, 42, 3, 192, 47, 39, 50, 72, 0, 17, 70, 29, 199, 179, 62, 36, 192, 39, 104, 17, 55,
-			37, 72, 39, 89, 0, 20, 71, 29, 50, 162, 58, 35, 226, 76, 39, 89, 47, 39, 101, 39, 72, 72, 40, 89, 0, 12, 3, 95, 55, 88,
-			107, 35, 83, 47, 108, 72, 0, 0, 13, 67, 181, 50, 178, 48, 36, 89, 47, 36, 57, 36, 0, 17, 70, 109, 24, 176, 42, 36, 128, 83,
-			36, 51, 39, 49, 47, 39, 88, 0, 11, 67, 101, 34, 128, 36, 88, 88, 35, 47, 0, 11, 67, 74, 3, 128, 88, 35, 50, 35, 101, 0,
-			19, 70, 63, 20, 71, 128, 252, 212, 72, 36, 81, 35, 51, 35, 50, 72, 37, 91, 0, 14, 67, 53, 68, 114, 107, 35, 91, 35, 51, 36,
-			57, 36, 0, 17, 70, 41, 24, 159, 34, 36, 128, 47, 39, 51, 39, 65, 71, 39, 88, 0, 0, 15, 69, 185, 65, 224, 204, 240, 76, 36,
-			91, 108, 50, 37, 72, 0, 13, 68, 136, 119, 238, 192, 84, 108, 65, 76, 36, 49, 0, 15, 69, 131, 49, 243, 204, 240, 50, 35, 57, 108,
-			37, 12, 72, 0, 12, 67, 78, 188, 207, 89, 36, 57, 57, 36, 72, 0, 12, 67, 63, 56, 139, 72, 35, 57, 57, 40, 89, 0, 11, 67,
-			50, 21, 0, 75, 35, 107, 36, 91, 0, 21, 71, 32, 232, 145, 138, 7, 243, 68, 71, 39, 101, 39, 51, 39, 50, 35, 65, 37, 51, 0,
-			27, 74, 29, 236, 10, 70, 35, 243, 128, 119, 243, 192, 36, 55, 36, 49, 47, 51, 39, 72, 37, 50, 108, 65, 37, 49, 0, 0, 19, 70,
-			198, 3, 7, 128, 252, 128, 81, 39, 50, 75, 108, 50, 72, 36, 57, 36, 0, 10, 67, 136, 220, 192, 84, 35, 107, 57, 0, 19, 70, 128,
-			119, 200, 68, 252, 128, 50, 108, 65, 71, 39, 51, 72, 36, 57, 36, 0, 16, 69, 77, 20, 159, 206, 0, 89, 35, 51, 88, 35, 65, 37,
-			50, 0, 20, 71, 60, 124, 209, 192, 168, 145, 204, 72, 108, 57, 51, 36, 49, 47, 39, 51, 37, 0, 16, 69, 56, 132, 113, 30, 0, 101,
-			39, 71, 51, 36, 81, 108, 50, 0, 11, 67, 35, 55, 142, 71, 37, 55, 35, 101, 0, 10, 67, 29, 188, 0, 19, 36, 83, 49, 0, 11,
-			67, 9, 24, 154, 108, 51, 39, 104, 17, 0, 0, 12, 68, 198, 44, 243, 60, 81, 40, 37, 12, 72, 0, 15, 70, 183, 52, 71, 207, 51,
-			192, 48, 37, 51, 108, 37, 72, 0, 20, 71, 133, 17, 240, 123, 50, 162, 76, 107, 36, 51, 108, 49, 55, 37, 47, 40, 89, 0, 11, 67,
-			84, 241, 192, 89, 36, 6, 72, 108, 0, 16, 70, 32, 229, 7, 207, 51, 192, 71, 35, 101, 91, 108, 37, 72, 0, 21, 72, 11, 8, 159,
-			137, 225, 202, 137, 16, 108, 49, 39, 65, 40, 55, 108, 47, 39, 51, 0, 0, 10, 67, 180, 115, 226, 48, 108, 72, 39, 0, 15, 68, 113,
-			49, 226, 40, 104, 17, 36, 89, 108, 84, 35, 47, 0, 12, 67, 85, 243, 226, 89, 35, 65, 35, 72, 40, 0, 14, 68, 76, 225, 226, 40,
-			89, 36, 101, 108, 84, 35, 47, 0, 14, 68, 73, 19, 212, 40, 88, 35, 51, 72, 39, 91, 47, 0, 10, 67, 48, 115, 226, 75, 108, 72,
-			40, 0, 15, 68, 41, 177, 226, 40, 47, 35, 6, 83, 108, 84, 39, 47, 0, 26, 73, 41, 23, 226, 29, 236, 10, 71, 60, 0, 47, 36,
-			51, 65, 39, 36, 55, 36, 49, 47, 37, 51, 37, 49, 0, 23, 72, 29, 236, 10, 70, 37, 51, 127, 48, 36, 55, 36, 49, 47, 36, 51,
-			39, 91, 37, 65, 37, 0, 0, 18, 70, 199, 52, 226, 77, 188, 207, 81, 37, 89, 40, 89, 36, 83, 37, 72, 0, 25, 73, 192, 116, 115,
-			193, 231, 199, 42, 36, 64, 49, 108, 51, 37, 49, 35, 55, 35, 65, 108, 47, 39, 51, 0, 13, 67, 129, 195, 199, 50, 35, 104, 17, 72,
-			35, 50, 0, 12, 67, 85, 227, 71, 89, 39, 55, 35, 107, 108, 0, 11, 67, 83, 51, 199, 91, 36, 57, 72, 108, 0, 12, 67, 56, 132,
-			71, 101, 35, 71, 35, 51, 108, 0, 16, 70, 32, 116, 179, 123, 60, 0, 71, 108, 88, 37, 55, 37, 49, 0, 12, 67, 28, 131, 199, 35,
-			71, 35, 72, 35, 50, 0, 10, 67, 11, 51, 199, 108, 57, 72, 108, 0, 0, 13, 68, 123, 24, 145, 204, 55, 36, 81, 40, 51, 37, 0,
-			15, 68, 113, 72, 49, 204, 104, 17, 35, 91, 35, 50, 81, 37, 0, 10, 67, 72, 252, 192, 88, 35, 72, 37, 0, 14, 68, 40, 115, 79,
-			204, 47, 108, 107, 35, 72, 72, 37, 0, 16, 69, 33, 24, 20, 204, 160, 71, 39, 51, 39, 50, 91, 37, 47, 0, 8, 65, 32, 6, 71,
-			36, 12, 0, 0, 14, 68, 85, 28, 205, 28, 89, 35, 51, 37, 107, 35, 50, 0, 10, 67, 56, 241, 192, 101, 39, 72, 108, 0, 10, 67,
-			48, 241, 192, 75, 39, 72, 108, 0, 15, 70, 31, 4, 199, 207, 51, 192, 39, 49, 89, 108, 37, 72, 0, 23, 73, 9, 226, 162, 194, 39,
-			226, 122, 36, 192, 108, 55, 47, 39, 49, 39, 65, 39, 55, 40, 89, 0, 5, 65, 164, 39, 0, 0, 11, 67, 192, 115, 226, 49, 108, 72,
-			39, 12, 0, 15, 69, 182, 1, 222, 43, 48, 48, 36, 50, 108, 55, 47, 37, 0, 17, 70, 33, 24, 7, 62, 34, 128, 71, 36, 51, 50,
-			108, 72, 39, 47, 0, 10, 67, 29, 60, 51, 36, 89, 49, 37, 0, 12, 3, 95, 53, 67, 48, 108, 50, 89, 35, 72, 0, 0, 19, 71,
-			182, 39, 179, 110, 40, 51, 192, 48, 39, 55, 37, 83, 39, 50, 37, 49, 0, 20, 70, 180, 244, 115, 124, 120, 0, 48, 36, 72, 35, 51,
-			37, 57, 36, 65, 108, 50, 0, 18, 70, 136, 117, 32, 196, 168, 0, 84, 108, 91, 35, 50, 81, 47, 39, 50, 0, 12, 67, 133, 232, 7,
-			107, 36, 55, 36, 50, 108, 0, 13, 67, 125, 151, 199, 65, 39, 19, 35, 65, 65, 108, 0, 11, 67, 124, 247, 192, 65, 39, 72, 36, 65,
-			0, 21, 70, 124, 172, 15, 204, 120, 0, 65, 39, 47, 36, 49, 35, 72, 72, 37, 57, 108, 50, 0, 12, 67, 101, 232, 7, 35, 55, 35,
-			50, 35, 50, 0, 11, 67, 100, 247, 192, 35, 12, 72, 35, 65, 0, 12, 67, 100, 131, 199, 6, 36, 71, 72, 108, 19, 0, 17, 69, 85,
-			17, 205, 40, 112, 89, 36, 51, 108, 107, 35, 47, 35, 50, 0, 11, 67, 72, 132, 71, 88, 36, 71, 51, 108, 0, 16, 69, 41, 232, 179,
-			52, 112, 47, 35, 55, 84, 37, 107, 35, 50, 0, 16, 69, 41, 19, 51, 52, 112, 47, 35, 51, 75, 37, 107, 35, 50, 0, 13, 67, 40,
-			132, 71, 47, 35, 71, 35, 51, 51, 108, 0, 10, 67, 29, 118, 199, 36, 47, 83, 108, 0, 15, 69, 28, 194, 7, 68, 112, 36, 75, 71,
-			108, 51, 35, 50, 0, 11, 67, 8, 168, 7, 108, 47, 36, 50, 108, 0, 0, 13, 68, 187, 28, 224, 204, 76, 36, 81, 37, 50, 37, 0,
-			18, 70, 180, 241, 219, 128, 252, 192, 48, 35, 72, 108, 83, 35, 50, 72, 37, 0, 10, 67, 124, 183, 128, 65, 36, 89, 55, 0, 14, 68,
-			112, 241, 223, 204, 104, 17, 39, 72, 108, 65, 37, 0, 10, 67, 109, 151, 128, 83, 36, 19, 55, 0, 17, 70, 76, 123, 81, 137, 188, 202,
-			89, 108, 48, 51, 39, 83, 37, 47, 0, 17, 70, 33, 24, 7, 68, 248, 128, 71, 36, 51, 50, 108, 51, 72, 39, 0, 15, 69, 29, 19,
-			226, 30, 0, 35, 51, 72, 35, 84, 108, 50, 0, 0, 12, 68, 127, 50, 145, 28, 65, 37, 47, 51, 108, 0, 14, 67, 124, 230, 219, 65,
-			39, 101, 35, 83, 83, 35, 83, 0, 11, 67, 83, 8, 64, 91, 39, 49, 36, 12, 0, 13, 67, 43, 8, 64, 6, 47, 36, 19, 49, 36,
-			12, 0, 11, 67, 32, 252, 217, 71, 35, 72, 37, 19, 0, 13, 68, 32, 132, 97, 28, 71, 35, 71, 51, 107, 108, 0, 14, 68, 31, 2,
-			209, 28, 35, 49, 89, 35, 51, 35, 50, 0, 13, 68, 30, 243, 225, 28, 36, 90, 72, 36, 107, 108, 0, 18, 70, 29, 101, 209, 29, 17,
-			192, 36, 88, 47, 36, 51, 108, 51, 35, 50, 0, 0, 16, 69, 134, 247, 226, 131, 48, 107, 36, 90, 36, 65, 39, 50, 37, 0, 21, 70,
-			129, 132, 72, 122, 3, 243, 50, 35, 88, 35, 51, 71, 39, 55, 35, 50, 72, 37, 0, 15, 69, 128, 116, 96, 199, 48, 50, 108, 51, 36,
-			50, 81, 37, 0, 16, 69, 125, 50, 153, 111, 48, 65, 39, 89, 47, 35, 19, 83, 37, 0, 15, 69, 48, 116, 78, 43, 48, 75, 108, 51,
-			35, 101, 47, 37, 0, 15, 69, 30, 220, 207, 127, 48, 36, 48, 37, 72, 36, 65, 37, 0, 20, 70, 29, 225, 200, 56, 172, 51, 35, 55,
-			55, 108, 71, 35, 101, 47, 35, 49, 37, 0, 0, 17, 70, 128, 118, 209, 124, 120, 0, 50, 108, 83, 35, 51, 65, 108, 50, 0, 13, 67,
-			113, 90, 225, 104, 17, 36, 89, 89, 36, 12, 0, 12, 67, 112, 247, 192, 104, 17, 35, 72, 35, 65, 0, 13, 67, 105, 90, 225, 104, 17,
-			39, 89, 89, 36, 12, 0, 11, 67, 95, 52, 97, 47, 35, 57, 51, 35, 0, 14, 68, 77, 252, 209, 124, 89, 36, 65, 37, 51, 39, 65,
-			0, 14, 68, 72, 225, 209, 108, 88, 35, 101, 108, 51, 36, 83, 0, 15, 68, 50, 24, 43, 124, 75, 35, 107, 35, 50, 50, 35, 65, 0,
-			18, 69, 40, 215, 51, 112, 112, 47, 35, 107, 104, 17, 37, 104, 17, 35, 50, 0, 12, 67, 34, 234, 225, 71, 35, 76, 76, 36, 12, 0,
-			13, 67, 33, 236, 33, 6, 71, 35, 55, 49, 36, 12, 0, 11, 67, 32, 247, 192, 71, 36, 72, 35, 65, 0, 13, 68, 32, 116, 143, 124,
-			71, 108, 88, 72, 35, 65, 0, 18, 70, 30, 3, 226, 133, 35, 199, 35, 50, 72, 40, 107, 88, 39, 72, 108, 0, 17, 70, 29, 50, 141,
-			76, 120, 0, 36, 89, 47, 36, 107, 89, 108, 50, 0, 17, 70, 10, 1, 240, 138, 3, 199, 108, 50, 108, 49, 39, 50, 72, 108, 0, 0,
-			16, 67, 126, 39, 10, 65, 39, 84, 35, 104, 17, 104, 17, 35, 47, 0, 16, 67, 125, 71, 10, 65, 35, 91, 36, 104, 17, 104, 17, 35,
-			47, 0, 19, 70, 124, 252, 209, 204, 172, 192, 65, 39, 72, 37, 51, 37, 57, 35, 47, 37, 0, 11, 67, 101, 68, 74, 36, 91, 51, 35,
-			47, 0, 15, 69, 92, 119, 136, 30, 0, 47, 108, 55, 36, 71, 108, 50, 0, 13, 67, 76, 135, 10, 89, 36, 71, 104, 17, 35, 47, 0,
-			10, 67, 42, 35, 138, 47, 40, 101, 47, 0, 20, 71, 32, 225, 209, 28, 248, 146, 204, 71, 39, 101, 108, 51, 108, 72, 40, 88, 37, 0,
-			11, 67, 11, 60, 32, 108, 57, 49, 39, 50, 0, 0, 17, 69, 133, 66, 149, 61, 240, 107, 35, 91, 47, 89, 35, 72, 39, 65, 0, 27,
-			74, 130, 44, 30, 206, 43, 81, 136, 172, 243, 60, 50, 40, 49, 55, 36, 39, 48, 39, 51, 39, 47, 36, 37, 72, 0, 11, 67, 128, 115,
-			223, 50, 108, 72, 36, 65, 0, 14, 67, 125, 151, 223, 65, 39, 19, 35, 65, 65, 35, 65, 0, 22, 71, 125, 72, 79, 29, 228, 86, 28,
-			65, 35, 91, 107, 35, 72, 39, 51, 51, 36, 88, 108, 0, 16, 68, 125, 56, 143, 132, 65, 39, 89, 35, 84, 84, 35, 72, 36, 0, 15,
-			68, 124, 199, 171, 132, 65, 35, 75, 35, 55, 55, 36, 12, 0, 15, 68, 124, 170, 205, 60, 65, 39, 47, 47, 35, 107, 36, 72, 0, 12,
-			67, 124, 136, 95, 65, 39, 71, 107, 35, 65, 0, 12, 67, 111, 8, 64, 83, 35, 49, 49, 36, 12, 0, 17, 70, 109, 232, 145, 204, 241,
-			192, 83, 36, 55, 39, 51, 37, 72, 108, 0, 12, 67, 79, 8, 64, 89, 36, 49, 49, 36, 12, 0, 12, 67, 63, 8, 64, 72, 35, 49,
-			49, 36, 12, 0, 11, 67, 55, 8, 64, 107, 36, 49, 49, 36, 0, 14, 68, 50, 36, 143, 132, 75, 35, 84, 88, 35, 72, 72, 0, 13,
-			68, 32, 116, 143, 132, 71, 108, 88, 72, 36, 107, 0, 13, 68, 32, 116, 79, 132, 71, 108, 51, 72, 36, 107, 0, 13, 68, 29, 231, 171,
-			132, 35, 55, 55, 12, 108, 107, 0, 18, 70, 28, 226, 149, 29, 17, 192, 36, 101, 47, 36, 89, 108, 51, 35, 50, 0, 0, 18, 70, 186,
-			17, 209, 33, 147, 243, 76, 108, 107, 108, 51, 71, 39, 72, 37, 0, 17, 70, 181, 28, 211, 194, 43, 64, 48, 36, 51, 37, 89, 49, 39,
-			48, 0, 20, 70, 181, 12, 209, 108, 168, 51, 48, 35, 88, 37, 51, 39, 83, 47, 35, 50, 37, 0, 10, 67, 130, 44, 216, 50, 39, 57,
-			88, 0, 14, 68, 126, 17, 209, 40, 65, 35, 107, 108, 51, 35, 47, 0, 15, 68, 125, 156, 235, 128, 65, 39, 35, 12, 19, 57, 35, 50,
-			0, 15, 68, 125, 87, 141, 40, 65, 35, 89, 55, 35, 107, 35, 47, 0, 15, 68, 125, 60, 43, 128, 65, 39, 89, 35, 49, 49, 36, 50,
-			0, 15, 67, 125, 39, 222, 65, 39, 88, 88, 35, 65, 65, 36, 55, 0, 12, 67, 78, 216, 12, 89, 36, 48, 35, 50, 75, 0, 15, 68,
-			77, 21, 48, 128, 89, 35, 51, 91, 36, 49, 35, 50, 0, 11, 67, 71, 55, 222, 51, 37, 65, 36, 55, 0, 14, 68, 40, 193, 209, 40,
-			47, 36, 75, 108, 51, 35, 47, 0, 23, 72, 33, 17, 224, 199, 51, 138, 199, 48, 71, 35, 51, 35, 50, 81, 37, 101, 47, 36, 81, 37,
-			0, 12, 67, 32, 252, 94, 71, 35, 72, 81, 36, 55, 0, 0, 15, 69, 197, 33, 209, 62, 16, 81, 39, 88, 108, 51, 72, 36, 0, 11,
-			67, 194, 212, 64, 49, 35, 48, 35, 51, 0, 16, 70, 188, 120, 15, 29, 23, 192, 90, 108, 50, 72, 108, 51, 65, 0, 11, 67, 186, 212,
-			64, 76, 35, 48, 35, 51, 0, 17, 69, 182, 247, 209, 62, 16, 48, 35, 90, 65, 39, 51, 72, 36, 12, 0, 17, 70, 135, 52, 98, 83,
-			55, 199, 107, 37, 51, 39, 91, 37, 65, 108, 0, 12, 67, 132, 248, 79, 107, 39, 72, 107, 39, 72, 0, 11, 67, 130, 212, 64, 50, 35,
-			48, 35, 51, 0, 14, 68, 126, 1, 210, 100, 65, 39, 50, 108, 88, 36, 19, 0, 16, 68, 124, 168, 25, 124, 65, 39, 47, 35, 50, 35,
-			19, 36, 65, 0, 13, 67, 113, 230, 97, 104, 17, 35, 55, 19, 36, 12, 0, 16, 69, 80, 120, 18, 62, 16, 6, 91, 108, 50, 88, 72,
-			35, 107, 0, 12, 67, 72, 131, 225, 88, 39, 71, 72, 36, 12, 0, 12, 67, 63, 7, 225, 72, 39, 49, 65, 36, 12, 0, 10, 67, 55,
-			52, 97, 107, 37, 51, 36, 0, 13, 67, 41, 236, 33, 47, 35, 55, 35, 49, 36, 12, 0, 16, 68, 32, 247, 15, 124, 71, 35, 72, 104,
-			17, 35, 72, 35, 65, 0, 13, 68, 29, 59, 81, 124, 36, 89, 48, 36, 51, 65, 0, 0, 15, 69, 181, 24, 115, 56, 160, 48, 35, 51,
-			107, 37, 101, 47, 0, 12, 67, 133, 23, 224, 107, 39, 51, 65, 39, 50, 0, 14, 68, 126, 38, 79, 32, 65, 39, 35, 19, 72, 35, 71,
-			0, 12, 67, 124, 250, 202, 65, 39, 72, 72, 35, 47, 0, 12, 67, 124, 71, 224, 65, 39, 19, 65, 36, 50, 0, 10, 67, 120, 220, 192,
-			55, 36, 107, 108, 0, 14, 68, 114, 39, 160, 48, 104, 17, 39, 55, 35, 50, 75, 0, 15, 69, 109, 24, 115, 56, 160, 83, 35, 51, 107,
-			37, 101, 47, 0, 11, 67, 86, 36, 74, 89, 40, 51, 35, 47, 0, 17, 69, 80, 196, 115, 30, 0, 91, 35, 75, 35, 51, 37, 57, 108,
-			50, 0, 13, 67, 77, 230, 224, 89, 36, 55, 39, 83, 39, 50, 0, 15, 69, 56, 116, 243, 30, 0, 101, 108, 89, 37, 57, 108, 50, 0,
-			17, 69, 42, 12, 83, 42, 0, 47, 35, 50, 81, 36, 89, 47, 35, 50, 0, 14, 67, 41, 230, 224, 47, 36, 55, 36, 6, 83, 39, 50,
-			0, 15, 69, 35, 60, 19, 30, 0, 71, 37, 49, 35, 89, 108, 50, 0, 10, 67, 35, 51, 138, 71, 37, 101, 47, 0, 10, 67, 32, 248,
-			128, 71, 39, 72, 39, 0, 14, 69, 29, 59, 98, 68, 160, 36, 89, 48, 39, 51, 47, 0, 0, 12, 67, 199, 55, 209, 81, 36, 57, 65,
-			36, 51, 0, 13, 68, 198, 44, 224, 60, 81, 40, 57, 35, 50, 72, 0, 13, 68, 197, 241, 209, 60, 81, 39, 65, 108, 51, 72, 0, 12,
-			67, 193, 72, 145, 49, 36, 91, 84, 35, 51, 0, 18, 70, 193, 24, 159, 28, 172, 240, 49, 39, 51, 39, 65, 108, 47, 37, 49, 0, 15,
-			68, 185, 164, 95, 132, 76, 35, 104, 17, 35, 51, 65, 36, 0, 13, 68, 183, 56, 145, 132, 48, 37, 57, 39, 51, 36, 0, 10, 67, 182,
-			3, 0, 48, 35, 50, 75, 0, 18, 70, 136, 124, 80, 29, 19, 192, 84, 108, 81, 39, 88, 108, 51, 35, 72, 0, 15, 69, 127, 56, 51,
-			125, 240, 65, 37, 50, 37, 65, 39, 65, 0, 16, 70, 127, 55, 179, 29, 19, 192, 65, 37, 55, 57, 108, 51, 72, 0, 14, 68, 125, 99,
-			112, 132, 65, 35, 88, 107, 35, 49, 36, 0, 14, 68, 114, 36, 95, 132, 104, 17, 39, 51, 65, 36, 12, 0, 15, 68, 86, 39, 217, 132,
-			89, 39, 12, 65, 36, 19, 36, 12, 0, 15, 68, 81, 146, 15, 132, 91, 39, 19, 71, 35, 72, 36, 12, 0, 13, 68, 80, 116, 143, 132,
-			91, 108, 88, 72, 36, 12, 0, 15, 68, 79, 20, 95, 132, 89, 36, 81, 36, 51, 65, 36, 12, 0, 15, 68, 62, 28, 15, 132, 72, 36,
-			107, 49, 35, 72, 36, 12, 0, 19, 70, 57, 232, 138, 192, 248, 64, 101, 35, 55, 84, 35, 47, 49, 35, 72, 36, 0, 10, 67, 50, 4,
-			192, 75, 36, 50, 89, 0, 14, 68, 40, 228, 95, 132, 47, 36, 101, 36, 51, 65, 36, 0, 12, 68, 32, 116, 223, 132, 71, 108, 89, 65,
-			36, 0, 20, 71, 30, 24, 145, 29, 244, 143, 28, 35, 107, 40, 51, 108, 65, 35, 88, 72, 108, 0, 9, 67, 30, 4, 192, 39, 50, 89,
-			0, 12, 68, 11, 8, 145, 60, 108, 49, 39, 51, 72, 0, 0, 13, 68, 206, 36, 113, 128, 57, 40, 51, 81, 36, 50, 0, 11, 67, 130,
-			212, 128, 50, 35, 48, 35, 88, 0, 12, 67, 129, 200, 148, 50, 39, 104, 17, 40, 91, 0, 15, 68, 125, 49, 205, 112, 65, 39, 89, 108,
-			107, 36, 104, 17, 0, 15, 68, 124, 132, 97, 128, 65, 39, 71, 35, 51, 107, 35, 50, 0, 13, 68, 124, 120, 48, 128, 65, 108, 50, 49,
-			35, 50, 0, 10, 67, 122, 4, 128, 55, 36, 50, 88, 0, 13, 68, 109, 24, 142, 40, 83, 39, 51, 40, 101, 47, 0, 11, 67, 76, 116,
-			148, 89, 108, 88, 36, 91, 0, 13, 68, 74, 40, 48, 128, 88, 40, 50, 49, 35, 50, 0, 14, 68, 69, 65, 207, 40, 51, 36, 91, 108,
-			72, 35, 47, 0, 15, 68, 41, 28, 31, 128, 47, 39, 51, 49, 35, 65, 35, 50, 0, 14, 68, 41, 24, 159, 128, 47, 36, 51, 39, 65,
-			35, 50, 0, 13, 67, 40, 196, 115, 47, 35, 75, 35, 51, 51, 37, 0, 11, 67, 34, 212, 128, 71, 36, 48, 35, 88, 0, 14, 68, 30,
-			20, 95, 128, 35, 107, 51, 36, 65, 35, 50, 0, 13, 68, 9, 226, 17, 40, 108, 55, 71, 36, 51, 47, 0, 9, 4, 95, 35, 114, 100,
-			39, 65, 0, 0, 19, 70, 197, 19, 194, 137, 19, 225, 81, 36, 51, 72, 108, 84, 35, 51, 72, 36, 0, 15, 69, 187, 1, 224, 62, 16,
-			76, 36, 49, 108, 50, 72, 36, 0, 19, 70, 186, 17, 209, 84, 247, 192, 76, 108, 107, 108, 51, 89, 35, 72, 39, 65, 0, 16, 69, 182,
-			3, 199, 68, 240, 48, 36, 50, 72, 108, 51, 35, 72, 0, 18, 69, 181, 52, 89, 126, 16, 48, 36, 89, 35, 51, 35, 65, 65, 36, 12,
-			0, 11, 67, 181, 21, 0, 48, 35, 51, 36, 91, 0, 16, 69, 129, 60, 7, 110, 16, 50, 36, 89, 49, 108, 83, 36, 12, 0, 11, 67,
-			128, 228, 64, 50, 35, 101, 35, 51, 0, 15, 68, 125, 193, 200, 68, 65, 35, 104, 17, 108, 71, 36, 51, 0, 12, 67, 125, 183, 147, 65,
-			39, 83, 55, 36, 89, 0, 14, 69, 124, 119, 162, 128, 240, 65, 108, 55, 40, 50, 72, 0, 18, 69, 112, 242, 30, 128, 240, 104, 17, 35,
-			72, 71, 39, 55, 35, 50, 72, 0, 21, 72, 79, 56, 48, 70, 34, 145, 138, 0, 89, 37, 50, 49, 51, 39, 47, 51, 39, 50, 0, 17,
-			69, 77, 18, 30, 128, 240, 89, 35, 51, 71, 39, 55, 35, 50, 72, 0, 19, 70, 61, 19, 240, 83, 51, 225, 72, 35, 51, 72, 49, 36,
-			91, 37, 72, 36, 0, 17, 69, 51, 20, 72, 128, 240, 75, 36, 81, 35, 51, 71, 35, 50, 72, 0, 15, 69, 49, 18, 226, 126, 16, 75,
-			39, 51, 89, 40, 65, 36, 0, 14, 68, 34, 1, 200, 68, 71, 35, 50, 108, 71, 35, 51, 0, 20, 70, 33, 24, 49, 75, 51, 225, 71,
-			35, 51, 50, 35, 81, 39, 88, 37, 72, 36, 0, 13, 68, 32, 115, 138, 68, 71, 108, 101, 47, 35, 51, 0, 15, 69, 29, 53, 226, 70,
-			16, 39, 89, 47, 40, 51, 36, 12, 0, 15, 69, 29, 28, 51, 62, 16, 39, 51, 49, 37, 72, 36, 12, 0, 19, 70, 28, 196, 71, 129,
-			67, 225, 36, 75, 51, 108, 50, 35, 91, 39, 72, 36, 0, 14, 69, 9, 23, 226, 128, 240, 108, 51, 65, 39, 50, 72, 0, 0, 13, 68,
-			194, 12, 91, 136, 49, 39, 50, 81, 83, 39, 0, 12, 67, 137, 40, 146, 84, 36, 88, 84, 36, 88, 0, 14, 68, 133, 184, 91, 136, 107,
-			39, 83, 107, 39, 83, 40, 0, 17, 69, 125, 145, 214, 60, 160, 65, 39, 19, 108, 88, 36, 72, 35, 47, 0, 14, 68, 124, 215, 171, 204,
-			65, 35, 107, 35, 55, 55, 37, 0, 10, 67, 80, 252, 192, 91, 39, 72, 37, 0, 11, 67, 48, 252, 192, 75, 36, 72, 72, 37, 0, 14,
-			68, 29, 59, 81, 204, 36, 89, 48, 36, 51, 36, 57, 0, 14, 69, 29, 59, 71, 68, 160, 36, 89, 48, 108, 51, 47, 0, 14, 68, 9,
-			244, 82, 80, 108, 65, 39, 51, 88, 36, 91, 0, 0, 18, 70, 197, 28, 224, 122, 3, 192, 81, 36, 51, 37, 50, 55, 35, 50, 72, 0,
-			11, 67, 183, 52, 145, 48, 37, 88, 39, 51, 0, 16, 69, 181, 28, 223, 41, 16, 48, 36, 51, 37, 65, 36, 47, 51, 0, 12, 67, 181,
-			24, 145, 48, 35, 51, 84, 35, 51, 0, 15, 69, 136, 114, 159, 41, 16, 84, 108, 47, 65, 36, 47, 51, 0, 13, 68, 127, 59, 81, 76,
-			65, 37, 48, 39, 51, 89, 0, 11, 67, 125, 24, 145, 65, 39, 51, 40, 51, 0, 17, 70, 122, 40, 7, 180, 116, 112, 55, 39, 50, 108,
-			48, 108, 51, 49, 0, 13, 67, 89, 24, 145, 88, 35, 6, 51, 40, 12, 51, 0, 17, 70, 72, 196, 79, 204, 248, 64, 88, 35, 75, 51,
-			72, 37, 72, 36, 0, 20, 70, 60, 226, 145, 101, 248, 64, 72, 39, 101, 47, 35, 51, 35, 65, 65, 36, 12, 0, 11, 67, 53, 19, 0,
-			107, 35, 51, 35, 75, 0, 11, 67, 52, 117, 145, 107, 108, 88, 36, 51, 0, 11, 67, 49, 56, 145, 75, 35, 89, 40, 51, 0, 14, 69,
-			35, 53, 25, 137, 16, 71, 37, 91, 39, 40, 51, 0, 16, 69, 33, 232, 159, 41, 16, 71, 39, 55, 39, 65, 36, 47, 51, 0, 19, 70,
-			33, 28, 82, 206, 3, 192, 71, 35, 51, 81, 39, 88, 37, 50, 35, 72, 0, 15, 69, 30, 36, 74, 137, 16, 39, 84, 36, 51, 47, 40,
-			51, 0, 10, 3, 95, 50, 88, 71, 37, 89, 47, 0, 0, 12, 67, 134, 36, 128, 107, 35, 84, 84, 35, 88, 0, 12, 67, 133, 252, 115,
-			107, 35, 65, 36, 81, 37, 0, 15, 68, 125, 146, 145, 88, 65, 39, 19, 47, 35, 51, 36, 88, 0, 16, 69, 57, 248, 143, 199, 48, 101,
-			35, 65, 40, 72, 36, 81, 37, 0, 12, 67, 33, 36, 98, 71, 39, 88, 51, 39, 84, 0, 16, 69, 10, 20, 202, 199, 48, 108, 107, 36,
-			89, 47, 36, 81, 37, 0, 15, 69, 9, 56, 143, 199, 48, 108, 89, 40, 72, 36, 81, 37, 0, 0, 16, 68, 181, 23, 138, 68, 48, 39,
-			51, 39, 55, 36, 47, 36, 51, 0, 20, 70, 181, 18, 51, 130, 3, 225, 48, 39, 51, 71, 37, 50, 35, 50, 72, 36, 12, 0, 11, 67,
-			129, 184, 147, 50, 39, 83, 40, 89, 0, 13, 67, 112, 132, 83, 104, 17, 36, 71, 51, 36, 89, 0, 11, 67, 88, 250, 192, 88, 36, 72,
-			72, 36, 0, 14, 68, 61, 39, 202, 68, 72, 39, 88, 65, 36, 47, 51, 0, 13, 68, 40, 114, 243, 68, 47, 35, 19, 89, 37, 51, 0,
-			13, 68, 40, 50, 243, 68, 47, 35, 19, 89, 37, 51, 0, 15, 69, 30, 12, 94, 205, 48, 36, 50, 81, 36, 55, 37, 89, 0, 18, 70,
-			29, 236, 10, 70, 40, 0, 36, 55, 36, 49, 47, 36, 51, 39, 50, 0, 14, 69, 29, 60, 7, 131, 0, 36, 89, 49, 108, 50, 49, 0,
-			15, 68, 29, 40, 24, 68, 35, 88, 50, 35, 88, 35, 51, 36, 0, 0, 13, 68, 194, 40, 48, 80, 49, 40, 50, 49, 36, 91, 0, 19,
-			70, 186, 3, 220, 128, 252, 192, 76, 35, 50, 72, 104, 17, 35, 50, 72, 37, 0, 15, 68, 181, 24, 28, 80, 48, 39, 51, 50, 35, 104,
-			17, 91, 0, 11, 67, 128, 123, 82, 50, 108, 48, 35, 88, 0, 19, 69, 124, 135, 154, 30, 0, 65, 39, 71, 35, 55, 55, 36, 104, 17,
-			108, 50, 0, 15, 68, 77, 20, 160, 80, 89, 35, 51, 88, 35, 50, 36, 91, 0, 18, 70, 73, 252, 224, 71, 51, 138, 88, 35, 65, 37,
-			50, 51, 37, 101, 47, 0, 18, 70, 42, 36, 91, 43, 28, 192, 47, 40, 51, 35, 83, 47, 36, 81, 37, 0, 14, 68, 33, 36, 113, 204,
-			71, 39, 88, 39, 51, 81, 37, 0, 16, 70, 29, 28, 71, 128, 252, 192, 39, 51, 81, 108, 50, 72, 37, 0, 0, 17, 69, 125, 50, 141,
-			89, 16, 65, 39, 89, 47, 35, 107, 88, 35, 51, 0, 13, 68, 110, 39, 176, 76, 83, 40, 55, 36, 49, 89, 0, 11, 67, 70, 35, 240,
-			51, 40, 72, 35, 49, 0, 14, 68, 69, 183, 176, 76, 51, 36, 83, 55, 36, 49, 89, 0, 19, 70, 31, 4, 237, 122, 36, 81, 36, 49,
-			89, 48, 36, 55, 39, 51, 36, 51, 0, 10, 67, 30, 23, 235, 35, 107, 35, 65, 0, 19, 70, 29, 236, 30, 137, 242, 145, 35, 55, 49,
-			39, 55, 39, 65, 36, 47, 51, 0, 15, 69, 9, 246, 226, 41, 16, 108, 65, 83, 39, 47, 36, 51, 0, 0, 20, 70, 193, 225, 219, 70,
-			12, 115, 49, 39, 55, 108, 83, 35, 51, 35, 50, 81, 37, 0, 12, 67, 126, 2, 128, 65, 36, 50, 50, 35, 47, 0, 18, 70, 68, 119,
-			225, 69, 244, 128, 51, 108, 65, 107, 39, 51, 65, 39, 88, 0, 13, 67, 48, 115, 242, 75, 108, 72, 72, 36, 57, 36, 0, 12, 67, 45,
-			151, 136, 89, 35, 19, 55, 35, 71, 0, 24, 71, 34, 3, 209, 41, 28, 31, 128, 71, 35, 50, 72, 35, 51, 47, 39, 51, 49, 35, 65,
-			35, 50, 0, 0, 11, 67, 193, 76, 207, 49, 36, 91, 37, 72, 0, 13, 68, 182, 36, 95, 192, 48, 40, 51, 65, 35, 49, 0, 19, 70,
-			182, 24, 7, 131, 20, 64, 48, 35, 107, 50, 108, 50, 36, 81, 35, 51, 0, 19, 70, 181, 52, 71, 128, 244, 64, 48, 36, 89, 35, 51,
-			35, 50, 72, 35, 51, 0, 19, 70, 70, 34, 19, 183, 52, 64, 51, 39, 71, 36, 89, 48, 37, 57, 36, 51, 0, 11, 67, 52, 250, 192,
-			107, 35, 72, 72, 36, 0, 23, 72, 33, 17, 224, 60, 116, 160, 62, 16, 71, 35, 51, 35, 50, 72, 108, 88, 35, 50, 72, 36, 0, 0,
-			11, 67, 181, 28, 0, 48, 35, 51, 35, 49, 0, 14, 67, 125, 100, 74, 65, 35, 88, 36, 51, 51, 35, 47, 0, 11, 67, 84, 119, 202,
-			89, 108, 65, 36, 47, 0, 13, 68, 78, 39, 155, 188, 89, 39, 55, 83, 36, 90, 0, 21, 71, 70, 12, 72, 28, 226, 177, 204, 51, 35,
-			50, 81, 71, 108, 101, 47, 36, 81, 37, 0, 20, 70, 63, 4, 84, 128, 248, 128, 72, 36, 49, 36, 51, 36, 91, 36, 50, 72, 39, 0,
-			16, 68, 62, 28, 15, 200, 72, 36, 107, 49, 35, 72, 36, 57, 36, 0, 18, 70, 32, 252, 7, 71, 28, 192, 71, 35, 72, 49, 108, 51,
-			36, 81, 37, 0, 16, 69, 32, 243, 148, 30, 0, 71, 35, 72, 35, 101, 91, 108, 50, 0, 16, 70, 28, 248, 135, 68, 248, 128, 36, 72,
-			84, 108, 51, 72, 39, 0, 0, 15, 68, 180, 244, 76, 60, 48, 36, 72, 35, 51, 75, 35, 72, 0, 19, 71, 31, 1, 222, 206, 210, 162,
-			76, 39, 49, 108, 55, 37, 48, 47, 40, 89, 0, 0, 23, 72, 181, 52, 78, 136, 120, 15, 199, 48, 48, 36, 89, 35, 51, 101, 108, 50,
-			72, 36, 81, 37, 0, 12, 68, 139, 52, 179, 40, 84, 37, 88, 37, 47, 0, 15, 68, 125, 72, 145, 40, 65, 35, 91, 84, 36, 51, 35,
-			47, 0, 11, 67, 124, 204, 200, 65, 39, 75, 37, 71, 0, 19, 70, 108, 168, 147, 128, 164, 128, 83, 39, 47, 39, 89, 35, 50, 47, 36,
-			88, 0, 15, 68, 57, 22, 158, 40, 101, 35, 51, 104, 17, 35, 55, 47, 0, 0, 11, 67, 185, 76, 207, 76, 36, 91, 37, 72, 0, 13,
-			67, 113, 72, 49, 104, 17, 35, 91, 35, 50, 81, 0, 19, 71, 68, 131, 226, 80, 119, 200, 68, 51, 39, 71, 72, 39, 91, 108, 65, 51,
-			0, 15, 69, 48, 124, 30, 204, 240, 75, 108, 49, 36, 55, 37, 72, 0, 16, 69, 29, 59, 97, 32, 240, 36, 89, 48, 35, 107, 71, 39,
-			72, 0, 0, 11, 67, 183, 8, 0, 48, 36, 49, 35, 50, 0, 15, 69, 125, 40, 155, 204, 160, 65, 36, 88, 39, 83, 37, 47, 0, 17,
-			69, 124, 161, 200, 100, 160, 65, 39, 47, 108, 71, 36, 19, 35, 47, 0, 21, 71, 80, 124, 81, 60, 120, 49, 204, 91, 108, 81, 36, 51,
-			72, 108, 50, 36, 81, 37, 0, 11, 67, 60, 117, 10, 72, 6, 108, 91, 47, 0, 21, 71, 35, 51, 199, 69, 67, 241, 204, 71, 37, 72,
-			108, 51, 91, 39, 72, 36, 81, 37, 0, 16, 69, 34, 18, 145, 206, 0, 71, 36, 107, 47, 35, 51, 37, 50, 0, 0, 18, 70, 137, 19,
-			194, 137, 19, 192, 84, 35, 51, 72, 108, 84, 35, 51, 72, 0, 30, 74, 126, 11, 147, 41, 28, 226, 128, 124, 202, 60, 65, 35, 50, 76,
-			36, 89, 47, 36, 51, 57, 40, 50, 108, 57, 47, 36, 72, 0, 14, 68, 57, 27, 160, 196, 101, 35, 51, 76, 35, 50, 81, 0, 13, 67,
-			40, 135, 0, 6, 47, 35, 71, 35, 104, 17, 0, 15, 69, 35, 56, 27, 137, 0, 71, 37, 50, 39, 83, 40, 88, 0, 0, 18, 69, 182,
-			247, 209, 63, 32, 48, 35, 90, 65, 39, 51, 72, 36, 57, 36, 0, 13, 68, 127, 60, 20, 40, 65, 37, 49, 39, 91, 47, 0, 15, 69,
-			102, 3, 222, 204, 128, 35, 50, 72, 35, 55, 37, 71, 0, 10, 66, 95, 48, 47, 36, 57, 57, 36, 0, 19, 70, 34, 20, 85, 137, 18,
-			128, 71, 36, 107, 35, 51, 89, 40, 51, 35, 47, 0, 8, 66, 31, 48, 37, 12, 0, 76, 0, 19, 70, 193, 28, 211, 43, 56, 0, 49,
-			36, 51, 37, 89, 47, 37, 57, 35, 50, 0, 12, 67, 192, 132, 71, 6, 49, 39, 71, 51, 108, 0, 12, 67, 126, 3, 71, 6, 65, 36,
-			50, 107, 108, 0, 14, 67, 113, 118, 71, 104, 17, 35, 47, 19, 6, 35, 50, 0, 19, 70, 82, 17, 207, 43, 56, 0, 91, 35, 107, 108,
-			72, 35, 47, 36, 57, 50, 0, 18, 70, 40, 131, 179, 71, 8, 0, 47, 35, 71, 101, 37, 51, 49, 39, 50, 0, 15, 69, 10, 2, 145,
-			207, 0, 108, 50, 47, 37, 51, 37, 49, 0, 17, 65, 36, 6, 47, 108, 57, 36, 20, 4, 47, 35, 19, 50, 37, 89, 0, 0, 16, 69,
-			136, 119, 143, 206, 0, 84, 108, 55, 36, 72, 36, 57, 50, 0, 17, 69, 133, 248, 33, 80, 160, 107, 35, 65, 50, 36, 107, 36, 91, 47,
-			0, 16, 69, 126, 8, 47, 204, 160, 65, 36, 50, 35, 50, 90, 37, 47, 0, 0, 15, 68, 136, 119, 25, 28, 84, 108, 104, 17, 36, 19,
-			35, 50, 0, 10, 67, 128, 241, 192, 50, 36, 72, 108, 0, 15, 68, 105, 244, 143, 28, 104, 17, 35, 65, 88, 36, 72, 108, 0, 17, 70,
-			62, 39, 135, 186, 12, 64, 72, 39, 55, 108, 76, 35, 50, 81, 0, 18, 70, 42, 12, 71, 42, 12, 64, 47, 35, 50, 81, 108, 47, 35,
-			50, 81, 0, 19, 70, 29, 225, 240, 122, 12, 64, 35, 55, 55, 108, 49, 39, 55, 35, 50, 81, 0, 11, 3, 95, 52, 88, 76, 36, 107,
-			36, 55, 0, 0, 11, 67, 125, 76, 51, 65, 36, 91, 49, 37, 0, 13, 67, 109, 24, 51, 83, 36, 6, 51, 36, 50, 37, 0, 10, 67,
-			53, 34, 0, 107, 36, 88, 71, 0, 27, 72, 33, 71, 7, 34, 212, 96, 63, 32, 71, 39, 91, 104, 17, 108, 71, 48, 35, 51, 35, 50,
-			72, 36, 57, 36, 0, 18, 70, 32, 117, 94, 28, 130, 128, 71, 108, 89, 35, 55, 108, 71, 35, 47, 0, 0, 11, 67, 128, 198, 192, 50,
-			35, 75, 35, 83, 0, 12, 67, 101, 243, 199, 19, 35, 65, 72, 35, 50, 0, 11, 67, 101, 22, 199, 39, 51, 35, 83, 108, 0, 12, 67,
-			97, 22, 199, 88, 39, 51, 35, 83, 108, 0, 12, 67, 89, 150, 199, 88, 39, 19, 35, 83, 108, 0, 12, 67, 85, 22, 199, 89, 36, 51,
-			83, 35, 50, 0, 14, 67, 62, 39, 199, 72, 39, 84, 84, 39, 65, 35, 50, 0, 19, 70, 29, 234, 199, 193, 232, 49, 35, 55, 55, 108,
-			49, 39, 55, 35, 50, 81, 0, 17, 70, 29, 55, 226, 195, 56, 49, 36, 89, 65, 39, 49, 37, 50, 81, 0, 18, 70, 29, 50, 145, 123,
-			56, 49, 36, 89, 47, 36, 51, 55, 37, 50, 81, 0, 10, 67, 28, 230, 199, 36, 101, 83, 108, 0, 0, 17, 70, 194, 36, 81, 131, 28,
-			192, 49, 40, 51, 51, 35, 50, 81, 37, 0, 18, 70, 136, 114, 145, 181, 232, 128, 84, 108, 47, 36, 51, 48, 39, 55, 39, 0, 18, 70,
-			133, 241, 225, 131, 28, 192, 107, 35, 65, 108, 107, 35, 50, 81, 37, 0, 15, 69, 131, 56, 138, 138, 0, 50, 37, 57, 39, 47, 39, 50,
-			0, 11, 67, 127, 55, 128, 65, 36, 12, 57, 55, 0, 9, 66, 73, 192, 88, 39, 104, 17, 0, 18, 70, 53, 71, 207, 29, 28, 192, 107,
-			35, 91, 35, 65, 72, 108, 51, 37, 0, 11, 67, 45, 199, 128, 89, 36, 104, 17, 55, 0, 14, 69, 32, 117, 10, 206, 0, 71, 108, 91,
-			47, 37, 50, 0, 10, 67, 30, 220, 0, 39, 48, 36, 49, 0, 18, 70, 10, 4, 219, 29, 236, 202, 108, 50, 89, 36, 83, 108, 55, 37,
-			47, 0, 0, 13, 67, 182, 3, 31, 6, 48, 35, 50, 75, 39, 65, 0, 12, 68, 134, 40, 15, 28, 107, 39, 50, 72, 108, 0, 14, 68,
-			125, 97, 219, 28, 65, 39, 88, 108, 83, 35, 50, 0, 13, 68, 124, 115, 17, 28, 65, 108, 75, 35, 51, 108, 0, 12, 67, 123, 8, 64,
-			55, 35, 49, 49, 36, 12, 0, 14, 68, 53, 104, 145, 28, 107, 39, 88, 40, 51, 35, 50, 0, 13, 68, 31, 2, 155, 28, 36, 49, 47,
-			36, 83, 108, 0, 14, 68, 29, 226, 33, 28, 39, 55, 10, 71, 35, 107, 108, 0, 0, 12, 67, 204, 180, 72, 57, 35, 89, 51, 36, 71,
-			0, 12, 67, 197, 23, 200, 81, 39, 51, 39, 65, 71, 0, 13, 67, 114, 2, 30, 104, 17, 39, 65, 71, 39, 55, 0, 16, 69, 109, 24,
-			96, 199, 48, 83, 35, 51, 107, 35, 50, 81, 37, 0, 8, 66, 77, 224, 89, 36, 55, 0, 16, 69, 77, 24, 96, 199, 48, 89, 35, 51,
-			107, 35, 50, 81, 37, 0, 8, 66, 73, 224, 88, 39, 55, 0, 8, 66, 69, 224, 51, 39, 55, 0, 16, 69, 57, 23, 224, 63, 48, 101,
-			39, 51, 65, 35, 50, 72, 37, 0, 12, 67, 54, 2, 30, 107, 35, 50, 71, 35, 55, 0, 16, 69, 41, 28, 222, 191, 48, 47, 36, 51,
-			37, 55, 39, 90, 37, 0, 23, 73, 29, 50, 135, 111, 55, 162, 194, 44, 0, 36, 89, 47, 108, 83, 37, 55, 39, 49, 39, 49, 0, 9,
-			4, 95, 35, 115, 116, 39, 65, 0, 0, 11, 67, 126, 36, 161, 65, 40, 88, 36, 12, 0, 14, 67, 126, 35, 33, 65, 39, 84, 35, 75,
-			75, 35, 107, 0, 15, 68, 126, 4, 204, 124, 65, 39, 50, 89, 35, 75, 36, 65, 0, 15, 68, 125, 151, 171, 124, 65, 39, 19, 35, 55,
-			55, 36, 65, 0, 14, 68, 125, 97, 217, 108, 65, 39, 88, 108, 19, 35, 83, 0, 14, 67, 125, 67, 207, 65, 39, 91, 35, 72, 72, 35,
-			72, 0, 18, 69, 124, 210, 145, 124, 112, 65, 39, 107, 47, 35, 51, 35, 65, 35, 50, 0, 18, 69, 124, 194, 159, 100, 112, 65, 39, 75,
-			47, 35, 65, 36, 19, 35, 50, 0, 22, 72, 29, 252, 209, 29, 20, 222, 30, 0, 35, 65, 37, 51, 35, 51, 89, 35, 55, 108, 50, 0,
-			17, 70, 29, 50, 161, 32, 120, 0, 36, 89, 47, 35, 107, 71, 108, 50, 0, 15, 69, 29, 50, 143, 100, 112, 36, 89, 47, 36, 72, 19,
-			108, 0, 0, 12, 67, 197, 228, 160, 81, 39, 55, 88, 35, 50, 0, 12, 67, 137, 27, 224, 84, 36, 51, 90, 36, 50, 0, 13, 67, 129,
-			199, 202, 50, 36, 104, 17, 65, 35, 47, 0, 10, 67, 123, 55, 128, 55, 35, 57, 55, 0, 12, 67, 83, 6, 202, 91, 36, 49, 39, 83,
-			47, 0, 16, 69, 71, 1, 200, 74, 0, 51, 36, 49, 108, 71, 88, 35, 50, 0, 12, 67, 70, 38, 160, 51, 39, 104, 17, 35, 50, 0,
-			18, 70, 57, 76, 51, 63, 28, 192, 101, 39, 91, 49, 37, 72, 36, 81, 37, 0, 10, 67, 53, 40, 0, 107, 39, 88, 50, 0, 12, 67,
-			34, 4, 160, 71, 35, 50, 88, 35, 50, 0, 18, 70, 32, 251, 115, 123, 28, 192, 71, 35, 72, 48, 37, 55, 36, 81, 37, 0, 16, 69,
-			32, 168, 98, 138, 0, 71, 36, 47, 107, 39, 84, 36, 50, 0, 15, 69, 30, 12, 72, 206, 0, 35, 50, 81, 35, 71, 37, 50, 0, 14,
-			68, 29, 55, 200, 120, 35, 89, 36, 65, 71, 36, 55, 0, 0, 15, 68, 181, 56, 15, 60, 48, 35, 89, 35, 50, 72, 35, 72, 0, 14,
-			68, 181, 24, 175, 132, 48, 39, 51, 39, 90, 36, 12, 0, 14, 67, 126, 38, 27, 65, 39, 84, 35, 88, 88, 35, 83, 0, 17, 68, 41,
-			152, 107, 60, 47, 35, 19, 10, 35, 107, 10, 107, 39, 72, 0, 14, 67, 40, 119, 159, 47, 35, 19, 35, 55, 55, 39, 65, 0, 14, 68,
-			28, 200, 136, 132, 35, 57, 84, 35, 71, 36, 12, 0, 13, 68, 28, 193, 210, 132, 36, 75, 108, 88, 36, 12, 0, 12, 3, 95, 53, 88,
-			48, 35, 50, 75, 108, 107, 0, 0, 13, 68, 198, 36, 112, 128, 81, 40, 51, 49, 35, 50, 0, 13, 68, 192, 116, 112, 128, 49, 108, 51,
-			49, 39, 50, 0, 17, 69, 181, 24, 138, 193, 224, 48, 39, 51, 39, 47, 39, 49, 39, 55, 0, 13, 68, 180, 115, 202, 128, 48, 108, 72,
-			47, 35, 50, 0, 14, 68, 137, 33, 209, 40, 84, 36, 88, 108, 51, 35, 47, 0, 14, 68, 137, 17, 203, 40, 84, 36, 51, 108, 89, 35,
-			47, 0, 14, 68, 134, 12, 91, 40, 107, 35, 50, 81, 39, 83, 47, 0, 14, 68, 125, 17, 209, 40, 65, 35, 51, 108, 51, 35, 47, 0,
-			18, 69, 124, 163, 158, 57, 224, 65, 39, 47, 36, 101, 35, 55, 101, 36, 55, 0, 14, 68, 121, 113, 219, 40, 55, 36, 47, 108, 83, 35,
-			47, 0, 13, 68, 63, 1, 209, 40, 72, 36, 49, 108, 51, 47, 0, 14, 68, 57, 49, 209, 40, 101, 36, 89, 108, 51, 35, 47, 0, 15,
-			68, 53, 193, 209, 40, 107, 36, 104, 17, 108, 51, 35, 47, 0, 11, 67, 42, 40, 30, 47, 40, 50, 36, 55, 0, 14, 68, 42, 33, 210,
-			128, 47, 35, 84, 108, 88, 39, 50, 0, 12, 67, 42, 2, 30, 47, 35, 50, 71, 35, 55, 0, 14, 68, 40, 140, 217, 40, 47, 35, 71,
-			37, 19, 35, 47, 0, 14, 68, 29, 193, 223, 40, 36, 104, 17, 108, 65, 35, 47, 0, 10, 67, 28, 242, 0, 35, 72, 35, 71, 0, 0,
-			11, 67, 198, 35, 33, 81, 39, 75, 36, 12, 0, 12, 67, 194, 24, 33, 49, 39, 107, 50, 36, 12, 0, 13, 67, 125, 55, 161, 65, 36,
-			89, 35, 55, 55, 36, 0, 15, 68, 124, 164, 76, 124, 65, 39, 47, 35, 51, 75, 36, 65, 0, 12, 67, 80, 216, 33, 91, 36, 107, 50,
-			36, 12, 0, 12, 67, 68, 162, 33, 51, 39, 47, 71, 36, 12, 0, 11, 67, 61, 71, 225, 72, 36, 91, 65, 36, 0, 12, 67, 57, 114,
-			33, 101, 39, 47, 71, 36, 12, 0, 10, 67, 54, 37, 0, 107, 39, 12, 91, 0, 18, 70, 33, 229, 34, 205, 39, 192, 71, 39, 55, 91,
-			39, 84, 37, 88, 65, 0, 18, 69, 32, 114, 162, 50, 16, 71, 108, 47, 35, 84, 35, 75, 75, 39, 107, 0, 17, 70, 10, 2, 145, 29,
-			56, 0, 108, 50, 47, 51, 108, 89, 36, 50, 0, 12, 67, 9, 248, 33, 108, 65, 36, 50, 36, 12, 0, 0, 12, 67, 193, 18, 32, 49,
-			35, 51, 71, 39, 50, 0, 18, 69, 181, 23, 15, 124, 160, 48, 39, 51, 104, 17, 36, 72, 65, 35, 47, 0, 21, 71, 135, 59, 81, 181,
-			225, 210, 204, 107, 37, 48, 36, 51, 48, 36, 55, 108, 88, 37, 0, 18, 69, 109, 17, 215, 33, 192, 83, 35, 51, 108, 47, 35, 71, 35,
-			104, 17, 0, 15, 69, 77, 232, 155, 138, 0, 89, 36, 55, 39, 83, 39, 50, 0, 16, 70, 76, 120, 19, 204, 135, 128, 89, 108, 50, 89,
-			37, 71, 55, 0, 11, 67, 68, 115, 74, 51, 108, 107, 35, 47, 0, 12, 67, 61, 71, 224, 72, 39, 91, 65, 35, 50, 0, 15, 68, 58,
-			33, 209, 48, 101, 35, 6, 84, 108, 51, 36, 75, 0, 13, 67, 43, 55, 224, 47, 35, 57, 65, 65, 39, 50, 0, 14, 67, 41, 252, 32,
-			47, 35, 65, 35, 49, 49, 39, 50, 0, 15, 68, 40, 231, 142, 120, 47, 35, 101, 35, 55, 101, 39, 55, 0, 16, 69, 35, 55, 179, 138,
-			0, 6, 65, 37, 55, 57, 40, 12, 50, 0, 10, 67, 29, 236, 0, 35, 55, 35, 49, 0, 13, 68, 10, 8, 155, 120, 108, 50, 39, 83,
-			36, 55, 0, 6, 65, 168, 36, 12, 0, 0, 14, 68, 197, 44, 224, 132, 81, 39, 88, 37, 50, 36, 12, 0, 15, 68, 137, 19, 224, 132,
-			84, 35, 51, 72, 35, 50, 36, 12, 0, 14, 68, 135, 55, 224, 132, 107, 36, 57, 65, 35, 50, 36, 0, 10, 67, 135, 51, 209, 107, 37,
-			72, 51, 0, 17, 69, 125, 236, 226, 129, 240, 65, 37, 55, 57, 40, 12, 50, 39, 65, 0, 12, 67, 124, 199, 209, 65, 36, 75, 65, 35,
-			51, 0, 16, 69, 124, 164, 98, 129, 240, 65, 36, 47, 51, 39, 50, 39, 65, 0, 13, 67, 113, 227, 209, 104, 17, 39, 55, 72, 39, 51,
-			0, 17, 70, 109, 24, 142, 137, 19, 192, 83, 39, 51, 40, 101, 39, 51, 72, 0, 14, 68, 101, 113, 209, 60, 10, 35, 47, 108, 51, 39,
-			72, 0, 13, 68, 69, 40, 159, 132, 51, 36, 88, 39, 65, 36, 0, 14, 68, 61, 17, 217, 132, 72, 39, 51, 51, 108, 19, 36, 0, 13,
-			68, 41, 236, 222, 132, 47, 35, 55, 37, 55, 36, 0, 14, 68, 40, 196, 72, 132, 47, 35, 75, 51, 39, 71, 36, 0, 14, 67, 32, 215,
-			0, 71, 36, 107, 35, 104, 17, 104, 17, 0, 13, 68, 32, 168, 160, 132, 71, 35, 47, 40, 50, 36, 0, 12, 68, 31, 56, 48, 132, 37,
-			50, 49, 36, 12, 0, 15, 69, 30, 210, 179, 125, 240, 39, 48, 47, 37, 65, 39, 65, 0, 12, 68, 29, 230, 97, 60, 39, 55, 35, 107,
-			72, 0, 0, 13, 68, 194, 40, 48, 128, 49, 40, 50, 49, 39, 50, 0, 11, 67, 194, 12, 98, 49, 39, 50, 81, 39, 0, 13, 68, 192,
-			116, 72, 128, 49, 108, 51, 71, 39, 50, 0, 17, 68, 126, 39, 43, 40, 65, 39, 84, 35, 104, 17, 104, 17, 35, 47, 0, 12, 67, 61,
-			231, 226, 72, 36, 55, 35, 65, 39, 0, 13, 68, 29, 241, 240, 128, 35, 65, 108, 49, 36, 50, 0, 13, 68, 10, 216, 158, 128, 108, 48,
-			39, 55, 39, 50, 0, 10, 67, 10, 2, 179, 108, 50, 47, 37, 0, 13, 68, 9, 241, 210, 128, 108, 65, 108, 88, 39, 50, 0, 11, 67,
-			8, 140, 20, 108, 71, 49, 36, 91, 0, 8, 66, 35, 48, 71, 37, 0, 76, 0, 15, 68, 207, 3, 241, 68, 57, 36, 49, 72, 36, 81,
-			35, 51, 0, 12, 67, 187, 5, 0, 76, 35, 49, 49, 39, 91, 0, 15, 68, 185, 232, 49, 68, 76, 36, 55, 35, 50, 81, 35, 51, 0,
-			17, 69, 127, 1, 222, 126, 16, 65, 39, 49, 108, 55, 36, 65, 36, 12, 0, 20, 70, 84, 243, 209, 136, 116, 161, 89, 35, 72, 72, 35,
-			51, 84, 108, 88, 36, 12, 0, 13, 68, 40, 124, 223, 68, 47, 108, 57, 65, 36, 51, 0, 13, 68, 34, 37, 33, 68, 71, 40, 91, 36,
-			107, 51, 0, 17, 70, 32, 115, 211, 136, 226, 161, 71, 108, 72, 89, 40, 101, 47, 36, 0, 13, 68, 30, 33, 223, 68, 35, 84, 108, 65,
-			36, 51, 0, 18, 70, 29, 236, 10, 71, 60, 0, 36, 55, 36, 49, 47, 36, 51, 37, 49, 0, 17, 69, 29, 227, 83, 130, 16, 39, 55,
-			107, 35, 89, 35, 50, 36, 12, 0, 0, 17, 69, 125, 241, 224, 100, 160, 65, 39, 65, 108, 50, 36, 19, 35, 47, 0, 13, 68, 124, 193,
-			210, 204, 65, 35, 75, 108, 88, 37, 0, 18, 69, 41, 23, 179, 138, 0, 6, 47, 36, 51, 36, 55, 57, 40, 12, 50, 0, 0, 17, 70,
-			185, 242, 7, 41, 248, 64, 76, 39, 65, 71, 108, 47, 65, 36, 0, 15, 68, 133, 248, 27, 76, 107, 35, 65, 50, 35, 83, 35, 89, 0,
-			14, 67, 124, 212, 81, 65, 39, 107, 35, 51, 51, 36, 51, 0, 14, 68, 109, 17, 209, 76, 83, 35, 51, 108, 51, 36, 89, 0, 12, 67,
-			78, 12, 81, 89, 35, 50, 81, 35, 51, 0, 12, 67, 55, 51, 209, 107, 36, 57, 72, 35, 51, 0, 15, 68, 41, 230, 240, 76, 47, 36,
-			55, 36, 83, 35, 49, 89, 0, 17, 69, 32, 252, 98, 133, 16, 71, 35, 72, 81, 39, 84, 107, 35, 51, 0, 15, 69, 28, 136, 136, 193,
-			16, 35, 71, 40, 71, 35, 49, 51, 0, 10, 3, 95, 54, 88, 91, 35, 89, 47, 0, 0, 12, 67, 181, 52, 98, 48, 35, 89, 51, 39,
-			12, 0, 11, 67, 137, 24, 51, 84, 36, 51, 50, 37, 0, 12, 67, 129, 23, 212, 50, 35, 51, 65, 36, 91, 0, 14, 69, 126, 40, 7,
-			194, 32, 65, 39, 50, 108, 49, 39, 0, 10, 67, 94, 34, 51, 47, 40, 71, 108, 0, 11, 67, 62, 34, 51, 72, 39, 71, 36, 57, 0,
-			15, 69, 9, 193, 217, 126, 32, 108, 104, 17, 108, 35, 65, 40, 0, 9, 4, 95, 35, 116, 104, 39, 65, 0, 0, 15, 69, 199, 52, 72,
-			193, 48, 81, 37, 51, 71, 39, 49, 89, 0, 19, 70, 125, 19, 224, 40, 120, 0, 65, 39, 51, 72, 35, 50, 36, 47, 108, 50, 0, 15,
-			68, 124, 227, 235, 68, 65, 39, 101, 35, 72, 72, 36, 51, 0, 17, 69, 114, 5, 226, 69, 48, 104, 17, 35, 50, 47, 40, 51, 39, 89,
-			0, 14, 69, 71, 55, 243, 193, 48, 51, 37, 65, 37, 49, 89, 0, 13, 68, 70, 44, 241, 68, 51, 40, 57, 81, 35, 51, 0, 18, 70,
-			61, 24, 160, 74, 20, 64, 72, 35, 51, 40, 50, 88, 35, 107, 51, 0, 11, 67, 57, 21, 0, 101, 35, 51, 35, 91, 0, 17, 70, 9,
-			228, 135, 205, 244, 64, 108, 55, 88, 108, 57, 65, 36, 51, 0, 0, 14, 68, 198, 33, 209, 80, 81, 39, 84, 108, 51, 36, 91, 0, 14,
-			68, 131, 17, 209, 80, 50, 36, 81, 108, 51, 36, 91, 0, 13, 68, 128, 114, 160, 204, 50, 108, 47, 35, 50, 37, 0, 15, 68, 125, 194,
-			160, 204, 65, 39, 104, 17, 47, 35, 50, 37, 0, 11, 67, 58, 12, 0, 101, 39, 50, 35, 49, 0, 13, 68, 51, 8, 146, 204, 75, 35,
-			49, 40, 88, 37, 0, 14, 68, 41, 18, 145, 136, 47, 36, 51, 47, 36, 51, 40, 0, 14, 68, 40, 196, 72, 204, 47, 35, 75, 51, 39,
-			71, 37, 0, 0, 11, 67, 120, 211, 192, 55, 35, 107, 35, 72, 0, 10, 67, 79, 52, 112, 89, 37, 51, 49, 0, 11, 67, 57, 23, 0,
-			101, 35, 51, 104, 17, 0, 15, 69, 32, 116, 179, 197, 16, 71, 108, 88, 37, 81, 35, 51, 0, 18, 70, 29, 21, 31, 204, 244, 192, 35,
-			51, 35, 91, 65, 37, 72, 39, 89, 0, 0, 13, 67, 130, 34, 50, 50, 39, 12, 71, 36, 57, 36, 0, 21, 72, 111, 55, 135, 69, 248,
-			160, 207, 0, 83, 37, 55, 108, 51, 65, 39, 50, 37, 49, 0, 20, 71, 109, 17, 224, 193, 184, 145, 40, 83, 36, 51, 108, 50, 49, 83,
-			39, 51, 47, 0, 13, 67, 105, 23, 200, 104, 17, 39, 51, 39, 65, 71, 0, 16, 69, 78, 36, 240, 193, 64, 89, 40, 89, 49, 10, 49,
-			39, 91, 0, 14, 67, 61, 19, 50, 72, 35, 51, 35, 75, 36, 57, 36, 0, 16, 69, 42, 35, 225, 131, 48, 47, 40, 72, 35, 107, 35,
-			50, 37, 0, 16, 69, 33, 24, 148, 131, 48, 71, 36, 51, 39, 91, 35, 50, 37, 0, 0, 17, 70, 82, 44, 34, 180, 116, 83, 91, 39,
-			49, 39, 48, 108, 51, 89, 0, 15, 69, 62, 34, 30, 193, 48, 72, 40, 71, 55, 36, 49, 89, 0, 13, 67, 32, 132, 79, 71, 36, 71,
-			35, 51, 35, 72, 0, 19, 69, 29, 231, 220, 61, 48, 39, 55, 65, 39, 104, 17, 35, 72, 72, 35, 89, 0, 17, 70, 28, 129, 205, 207,
-			20, 64, 36, 71, 108, 107, 37, 81, 35, 51, 0, 0, 10, 67, 185, 28, 0, 76, 36, 51, 49, 0, 12, 67, 130, 22, 202, 50, 35, 107,
-			39, 83, 47, 0, 14, 68, 63, 60, 10, 200, 72, 37, 49, 47, 36, 57, 36, 0, 18, 70, 61, 28, 199, 74, 12, 192, 72, 35, 51, 57,
-			108, 88, 35, 50, 37, 0, 12, 67, 55, 7, 202, 107, 36, 49, 65, 35, 47, 0, 16, 68, 54, 37, 94, 200, 107, 39, 12, 89, 36, 55,
-			36, 57, 36, 0, 11, 67, 53, 56, 0, 107, 35, 89, 35, 50, 0, 17, 69, 34, 3, 209, 197, 32, 71, 35, 50, 72, 35, 51, 81, 35,
-			88, 0, 0, 18, 70, 127, 55, 179, 29, 19, 209, 65, 37, 55, 57, 108, 51, 72, 36, 51, 0, 24, 72, 125, 183, 34, 60, 119, 135, 45,
-			16, 65, 35, 83, 104, 17, 40, 72, 39, 55, 35, 89, 35, 51, 0, 14, 68, 42, 33, 209, 44, 47, 35, 84, 108, 51, 39, 89, 0, 0,
-			19, 70, 124, 124, 51, 30, 39, 179, 65, 108, 49, 37, 57, 108, 84, 36, 55, 37, 0, 22, 72, 108, 116, 95, 31, 8, 158, 191, 48, 83,
-			108, 51, 65, 108, 49, 39, 55, 39, 90, 37, 0, 13, 68, 68, 123, 81, 40, 51, 108, 48, 39, 51, 47, 0, 14, 68, 49, 49, 209, 40,
-			75, 36, 89, 108, 51, 35, 47, 0, 16, 69, 28, 136, 158, 132, 128, 35, 71, 40, 55, 35, 107, 35, 71, 0, 0, 17, 70, 180, 120, 145,
-			187, 56, 0, 48, 108, 84, 35, 51, 76, 37, 50, 0, 17, 68, 112, 247, 15, 192, 104, 17, 39, 72, 104, 17, 39, 72, 35, 49, 0, 17,
-			69, 78, 20, 98, 68, 240, 89, 39, 107, 51, 36, 84, 35, 51, 72, 0, 15, 69, 77, 17, 223, 207, 0, 89, 36, 51, 108, 65, 37, 49,
-			0, 18, 70, 31, 56, 10, 69, 188, 19, 37, 50, 47, 36, 51, 83, 35, 49, 89, 0, 10, 67, 30, 39, 207, 40, 65, 35, 72, 0, 16,
-			70, 29, 28, 71, 131, 60, 0, 39, 51, 81, 108, 50, 37, 49, 0, 0, 18, 68, 124, 168, 140, 200, 65, 39, 47, 36, 84, 35, 75, 75,
-			36, 57, 36, 0, 11, 67, 57, 28, 0, 101, 35, 51, 35, 49, 0, 12, 67, 40, 138, 202, 47, 35, 71, 71, 35, 47, 0, 17, 71, 30,
-			44, 17, 31, 60, 224, 204, 39, 49, 51, 108, 37, 50, 37, 0, 10, 67, 28, 168, 128, 39, 47, 40, 12, 0, 15, 69, 10, 3, 33, 30,
-			0, 108, 50, 75, 35, 107, 108, 50, 0, 0, 14, 68, 197, 33, 209, 60, 81, 39, 88, 108, 51, 35, 72, 0, 17, 70, 181, 28, 240, 29,
-			19, 192, 48, 36, 51, 37, 49, 108, 51, 72, 0, 10, 67, 131, 1, 192, 50, 36, 49, 108, 0, 22, 72, 48, 120, 179, 60, 119, 135, 45,
-			16, 75, 108, 84, 37, 72, 39, 55, 35, 89, 35, 51, 0, 17, 70, 35, 55, 179, 29, 19, 192, 6, 71, 37, 55, 57, 108, 51, 72, 0,
-			17, 70, 33, 28, 241, 29, 19, 192, 71, 36, 51, 37, 81, 108, 51, 72, 0, 0, 15, 68, 125, 247, 176, 40, 65, 35, 65, 55, 36, 49,
-			35, 47, 0, 12, 67, 125, 230, 179, 65, 39, 55, 104, 17, 108, 0, 16, 70, 79, 55, 240, 29, 18, 128, 89, 37, 65, 49, 108, 51, 47,
-			0, 15, 68, 68, 248, 48, 40, 51, 36, 72, 36, 50, 49, 39, 47, 0, 17, 70, 41, 17, 240, 29, 178, 128, 47, 35, 51, 108, 49, 108,
-			83, 47, 0, 0, 24, 72, 206, 40, 7, 204, 163, 237, 69, 48, 57, 40, 50, 108, 57, 47, 36, 72, 48, 36, 51, 36, 89, 0, 19, 70,
-			128, 116, 173, 70, 36, 79, 50, 108, 88, 48, 35, 51, 84, 35, 51, 72, 0, 12, 67, 80, 229, 71, 91, 35, 101, 89, 35, 50, 0, 11,
-			67, 53, 18, 7, 107, 36, 51, 71, 108, 0, 11, 67, 33, 178, 135, 71, 35, 83, 47, 108, 0, 0, 14, 68, 78, 10, 202, 204, 89, 39,
-			50, 50, 35, 47, 37, 0, 12, 68, 72, 119, 200, 204, 88, 108, 65, 71, 37, 0, 24, 73, 71, 56, 143, 138, 241, 224, 205, 24, 128, 51,
-			37, 57, 39, 72, 39, 90, 108, 50, 37, 51, 39, 0, 26, 73, 30, 12, 7, 70, 12, 17, 62, 12, 192, 36, 50, 49, 108, 51, 50, 35,
-			49, 35, 51, 72, 35, 50, 37, 0, 24, 72, 29, 236, 10, 70, 38, 226, 69, 32, 36, 55, 36, 49, 47, 36, 51, 39, 83, 39, 51, 36,
-			88, 0, 0, 15, 68, 125, 200, 171, 28, 65, 39, 104, 17, 35, 84, 84, 108, 0, 13, 68, 32, 225, 209, 28, 71, 39, 101, 108, 51, 108,
-			0, 10, 67, 32, 193, 192, 71, 36, 75, 108, 0, 8, 66, 29, 240, 35, 65, 0, 76, 12, 3, 95, 56, 88, 107, 35, 91, 47, 108, 72,
-			0, 0, 14, 69, 183, 60, 34, 122, 32, 48, 37, 49, 39, 55, 39, 0, 17, 70, 124, 116, 113, 29, 18, 128, 65, 108, 51, 81, 108, 51,
-			36, 47, 0, 17, 69, 80, 164, 113, 122, 32, 91, 39, 47, 39, 51, 81, 35, 55, 40, 0, 14, 69, 42, 43, 98, 75, 48, 47, 40, 48,
-			40, 88, 37, 0, 18, 70, 32, 115, 81, 29, 18, 128, 71, 108, 107, 35, 51, 108, 51, 35, 47, 0, 19, 70, 29, 118, 199, 27, 58, 242,
-			36, 47, 83, 108, 37, 57, 57, 36, 57, 36, 0, 8, 65, 40, 6, 47, 36, 12, 0, 0, 10, 67, 206, 39, 192, 57, 39, 12, 65, 0,
-			17, 69, 131, 49, 200, 40, 112, 50, 37, 57, 108, 71, 35, 47, 35, 50, 0, 13, 67, 125, 18, 7, 65, 39, 51, 35, 71, 71, 108, 0,
-			20, 69, 124, 163, 209, 48, 112, 65, 39, 47, 35, 72, 35, 51, 51, 36, 75, 35, 50, 0, 12, 67, 101, 247, 135, 35, 65, 35, 55, 35,
-			50, 0, 11, 67, 101, 231, 199, 39, 55, 35, 65, 108, 0, 10, 67, 58, 38, 192, 101, 39, 84, 83, 0, 12, 67, 52, 167, 199, 107, 35,
-			47, 65, 35, 50, 0, 10, 67, 52, 119, 135, 107, 108, 55, 108, 0, 11, 67, 32, 119, 135, 6, 71, 108, 55, 108, 0, 11, 67, 29, 167,
-			199, 36, 104, 17, 65, 108, 0, 18, 70, 29, 50, 162, 30, 12, 0, 39, 89, 47, 39, 84, 108, 50, 35, 49, 0, 12, 67, 28, 210, 7,
-			35, 107, 36, 71, 71, 108, 0, 12, 67, 57, 37, 0, 101, 35, 88, 36, 91, 0, 48, 12, 67, 57, 37, 0, 101, 35, 88, 35, 91, 0,
-			46, 0, 15, 69, 182, 36, 179, 82, 0, 48, 39, 88, 37, 91, 36, 50, 0, 16, 69, 182, 23, 162, 30, 0, 48, 35, 107, 55, 35, 84,
-			108, 50, 0, 10, 67, 134, 39, 128, 107, 39, 12, 55, 0, 16, 70, 130, 34, 145, 206, 8, 128, 50, 39, 47, 51, 37, 50, 39, 0, 16,
-			68, 124, 167, 224, 204, 65, 39, 47, 36, 65, 35, 50, 50, 37, 0, 14, 68, 86, 3, 222, 204, 89, 35, 50, 72, 35, 55, 37, 0, 11,
-			67, 80, 167, 128, 91, 36, 47, 36, 55, 0, 9, 66, 33, 192, 71, 39, 104, 17, 0, 11, 67, 29, 199, 128, 35, 104, 17, 35, 55, 0,
-			8, 66, 29, 192, 39, 104, 17, 0, 10, 67, 29, 39, 128, 35, 88, 35, 55, 0, 15, 69, 28, 168, 147, 194, 208, 39, 47, 39, 89, 49,
-			39, 48, 0, 10, 67, 8, 167, 128, 108, 47, 36, 55, 0, 0, 10, 67, 198, 40, 64, 81, 39, 84, 36, 0, 13, 68, 189, 22, 224, 28,
-			90, 35, 51, 83, 50, 108, 0, 9, 67, 183, 56, 64, 48, 37, 107, 0, 10, 67, 183, 51, 0, 48, 36, 57, 75, 0, 14, 68, 136, 200,
-			136, 28, 84, 39, 75, 40, 71, 35, 50, 0, 20, 71, 131, 49, 224, 196, 116, 79, 60, 50, 35, 57, 35, 50, 81, 108, 51, 35, 72, 0,
-			14, 67, 125, 88, 27, 65, 39, 89, 35, 50, 50, 36, 83, 0, 14, 67, 125, 39, 155, 65, 39, 88, 35, 55, 55, 35, 83, 0, 15, 68,
-			107, 49, 200, 28, 104, 17, 37, 57, 108, 71, 35, 50, 0, 11, 67, 106, 34, 192, 104, 17, 39, 12, 89, 0, 11, 67, 78, 216, 64, 89,
-			36, 48, 35, 107, 0, 12, 67, 69, 50, 159, 51, 39, 89, 47, 35, 65, 0, 11, 67, 56, 114, 159, 101, 108, 47, 35, 65, 0, 14, 68,
-			44, 119, 224, 28, 89, 108, 65, 36, 50, 35, 50, 0, 13, 68, 30, 36, 202, 28, 35, 84, 36, 89, 47, 108, 0, 8, 66, 29, 176, 36,
-			83, 0, 46, 0, 14, 67, 125, 51, 30, 65, 39, 89, 35, 75, 75, 35, 55, 0, 13, 67, 114, 34, 128, 104, 17, 39, 84, 84, 35, 47,
-			0, 9, 66, 85, 224, 89, 36, 55, 55, 0, 16, 69, 82, 12, 207, 131, 48, 91, 36, 50, 37, 72, 35, 50, 37, 0, 8, 66, 81, 224,
-			91, 39, 55, 0, 12, 67, 33, 226, 30, 71, 39, 55, 71, 39, 55, 0, 15, 69, 30, 39, 7, 43, 48, 39, 12, 104, 17, 108, 47, 37,
-			0, 24, 73, 10, 12, 94, 137, 49, 240, 78, 40, 0, 108, 50, 81, 36, 55, 39, 89, 108, 49, 89, 39, 50, 0, 8, 66, 29, 224, 36,
-			55, 0, 46, 24, 5, 217, 130, 46, 217, 133, 104, 12, 12, 35, 71, 55, 10, 35, 88, 9, 65, 37, 55, 108, 72, 0, 46, 0, 14, 68,
-			181, 20, 142, 124, 48, 39, 51, 88, 35, 101, 65, 0, 15, 69, 135, 59, 176, 48, 112, 107, 37, 76, 49, 39, 75, 108, 0, 12, 67, 128,
-			226, 33, 50, 39, 101, 71, 36, 12, 0, 12, 67, 128, 132, 79, 50, 35, 71, 39, 51, 72, 0, 14, 69, 128, 114, 51, 128, 112, 50, 108,
-			71, 37, 50, 108, 0, 12, 67, 109, 19, 33, 83, 39, 51, 75, 36, 12, 0, 12, 67, 109, 18, 15, 83, 35, 51, 71, 39, 72, 0, 12,
-			67, 81, 146, 33, 91, 39, 19, 71, 36, 12, 0, 11, 67, 79, 53, 79, 89, 37, 89, 35, 72, 0, 18, 70, 73, 161, 222, 60, 120, 0,
-			88, 39, 104, 17, 108, 55, 72, 108, 50, 0, 12, 67, 49, 146, 33, 75, 35, 19, 71, 36, 12, 0, 12, 67, 42, 34, 33, 47, 39, 12,
-			71, 36, 12, 0, 13, 68, 35, 56, 24, 124, 71, 37, 50, 35, 88, 65, 0, 12, 67, 35, 52, 161, 71, 36, 57, 88, 36, 12, 0, 0,
-			10, 67, 183, 60, 0, 48, 36, 57, 49, 0, 10, 67, 181, 76, 0, 48, 36, 91, 49, 0, 11, 67, 180, 119, 138, 48, 108, 55, 36, 47,
-			0, 15, 69, 128, 116, 160, 206, 0, 50, 108, 88, 35, 50, 37, 50, 0, 12, 67, 113, 39, 128, 104, 17, 36, 88, 36, 55, 0, 12, 67,
-			105, 39, 128, 104, 17, 35, 88, 35, 55, 0, 16, 69, 79, 55, 200, 206, 0, 89, 37, 65, 71, 37, 57, 35, 50, 0, 10, 67, 55, 56,
-			0, 107, 36, 57, 50, 0, 12, 67, 33, 199, 128, 71, 35, 104, 17, 35, 55, 0, 11, 67, 31, 2, 138, 39, 49, 47, 36, 47, 0, 13,
-			68, 29, 53, 200, 120, 36, 89, 47, 35, 71, 55, 0, 14, 69, 29, 50, 135, 126, 208, 36, 89, 47, 108, 65, 48, 0, 0, 13, 68, 197,
-			49, 209, 60, 81, 39, 89, 108, 51, 72, 0, 11, 67, 195, 56, 64, 49, 37, 57, 36, 12, 0, 11, 67, 187, 56, 64, 76, 37, 57, 36,
-			12, 0, 13, 67, 186, 23, 159, 6, 76, 36, 36, 55, 39, 65, 0, 14, 68, 181, 44, 209, 60, 48, 35, 88, 37, 51, 35, 72, 0, 19,
-			70, 138, 4, 162, 205, 225, 192, 84, 36, 50, 36, 88, 40, 19, 36, 55, 108, 0, 10, 67, 136, 200, 64, 84, 35, 75, 107, 0, 11, 67,
-			130, 40, 64, 50, 35, 84, 36, 12, 0, 15, 68, 126, 39, 171, 60, 65, 39, 84, 35, 55, 55, 36, 72, 0, 14, 67, 125, 83, 77, 65,
-			39, 89, 35, 107, 107, 36, 107, 0, 17, 68, 124, 168, 140, 132, 65, 39, 47, 36, 84, 35, 75, 75, 36, 12, 0, 12, 67, 120, 200, 64,
-			55, 39, 75, 75, 36, 12, 0, 16, 70, 110, 36, 95, 207, 1, 192, 83, 39, 51, 65, 37, 49, 108, 0, 14, 68, 77, 19, 140, 132, 89,
-			39, 51, 101, 75, 36, 12, 0, 11, 67, 76, 119, 159, 89, 108, 55, 36, 65, 0, 14, 68, 76, 118, 74, 132, 89, 108, 19, 35, 47, 36,
-			12, 0, 15, 68, 72, 132, 76, 60, 88, 36, 71, 35, 51, 75, 35, 72, 0, 10, 67, 62, 3, 0, 72, 36, 50, 75, 0, 17, 69, 53,
-			28, 7, 41, 240, 107, 35, 51, 35, 49, 108, 47, 35, 65, 0, 13, 67, 42, 216, 64, 47, 35, 6, 48, 48, 36, 12, 0, 14, 67, 41,
-			135, 159, 47, 35, 88, 35, 55, 55, 39, 65, 0, 11, 67, 29, 150, 31, 35, 19, 88, 35, 65, 0, 11, 3, 95, 57, 88, 50, 35, 84,
-			35, 72, 0, 0, 18, 70, 182, 36, 96, 48, 114, 179, 48, 40, 51, 50, 36, 75, 108, 47, 37, 0, 15, 68, 181, 20, 206, 128, 48, 39,
-			51, 89, 39, 101, 35, 50, 0, 15, 68, 126, 6, 217, 40, 65, 35, 50, 83, 35, 19, 35, 47, 0, 15, 68, 83, 53, 224, 40, 91, 36,
-			57, 47, 35, 50, 35, 47, 0, 12, 67, 78, 2, 30, 89, 39, 50, 71, 39, 55, 0, 15, 68, 77, 229, 224, 40, 89, 35, 55, 47, 35,
-			50, 35, 47, 0, 15, 68, 69, 193, 200, 40, 51, 36, 104, 17, 108, 71, 35, 47, 0, 20, 70, 61, 24, 95, 194, 5, 0, 72, 35, 51,
-			107, 35, 65, 49, 39, 50, 36, 91, 0, 18, 70, 34, 12, 94, 28, 245, 0, 71, 35, 50, 81, 55, 108, 72, 36, 91, 0, 13, 68, 28,
-			212, 224, 40, 35, 107, 89, 35, 50, 47, 0, 0, 12, 67, 193, 232, 49, 49, 39, 55, 35, 50, 81, 0, 16, 69, 186, 17, 209, 84, 240,
-			76, 108, 107, 108, 51, 89, 35, 72, 0, 11, 67, 183, 4, 64, 48, 35, 49, 35, 51, 0, 12, 67, 181, 56, 15, 48, 35, 89, 35, 50,
-			72, 0, 12, 67, 181, 50, 161, 48, 36, 89, 47, 36, 12, 0, 11, 67, 135, 4, 64, 107, 35, 49, 36, 51, 0, 19, 70, 133, 20, 177,
-			139, 56, 0, 107, 36, 51, 88, 39, 81, 39, 84, 37, 50, 0, 14, 68, 125, 129, 222, 124, 65, 35, 88, 108, 55, 36, 65, 0, 17, 69,
-			124, 209, 209, 34, 16, 65, 39, 107, 108, 51, 36, 71, 36, 12, 0, 12, 67, 120, 214, 33, 55, 35, 107, 88, 36, 12, 0, 14, 67, 112,
-			167, 161, 104, 17, 35, 47, 35, 55, 36, 12, 0, 13, 67, 112, 135, 161, 104, 17, 36, 71, 55, 36, 12, 0, 12, 67, 101, 103, 161, 35,
-			88, 39, 55, 36, 12, 0, 18, 70, 84, 241, 226, 79, 55, 199, 89, 36, 72, 108, 39, 89, 37, 65, 108, 0, 18, 70, 77, 18, 162, 131,
-			56, 0, 89, 36, 51, 36, 47, 39, 50, 37, 50, 0, 19, 70, 76, 140, 10, 195, 56, 0, 89, 35, 71, 39, 49, 47, 35, 49, 37, 50,
-			0, 11, 67, 63, 20, 64, 72, 36, 81, 35, 51, 0, 13, 67, 61, 19, 33, 72, 35, 51, 35, 75, 36, 12, 0, 23, 72, 56, 241, 226,
-			128, 252, 71, 68, 112, 101, 39, 72, 108, 84, 35, 50, 72, 81, 108, 51, 108, 0, 19, 70, 55, 51, 209, 32, 114, 7, 107, 36, 57, 72,
-			35, 51, 71, 108, 71, 108, 0, 11, 67, 54, 39, 161, 107, 39, 55, 36, 12, 0, 12, 67, 54, 36, 161, 107, 39, 12, 88, 36, 12, 0,
-			11, 67, 52, 199, 161, 107, 36, 75, 55, 36, 0, 15, 69, 41, 17, 239, 207, 0, 47, 36, 51, 108, 90, 37, 49, 0, 11, 67, 32, 245,
-			0, 71, 35, 72, 35, 91, 0, 12, 67, 31, 20, 64, 4, 35, 6, 81, 35, 51, 0, 11, 67, 29, 232, 49, 35, 55, 35, 50, 81, 0,
-			13, 68, 29, 230, 94, 124, 35, 55, 19, 36, 55, 65, 0, 13, 67, 28, 247, 161, 35, 72, 36, 55, 55, 36, 12, 0, 11, 67, 28, 180,
-			64, 35, 12, 89, 35, 51, 0, 10, 65, 172, 47, 35, 91, 72, 37, 72, 0, 0, 16, 69, 192, 120, 48, 82, 0, 49, 108, 50, 36, 49,
-			91, 36, 50, 0, 11, 67, 187, 24, 0, 76, 36, 81, 36, 50, 0, 16, 68, 125, 50, 156, 120, 65, 39, 89, 47, 35, 104, 17, 36, 55,
-			0, 17, 69, 125, 49, 222, 124, 160, 65, 39, 89, 108, 55, 36, 65, 35, 47, 0, 18, 69, 124, 168, 95, 30, 0, 65, 39, 47, 47, 35,
-			107, 35, 65, 108, 50, 0, 14, 68, 124, 119, 8, 120, 65, 108, 104, 17, 35, 71, 55, 0, 11, 67, 76, 119, 160, 89, 108, 55, 39, 50,
-			0, 13, 67, 75, 50, 28, 88, 36, 57, 71, 35, 104, 17, 0, 16, 69, 61, 241, 204, 108, 160, 72, 35, 65, 108, 75, 39, 83, 47, 0,
-			12, 67, 57, 178, 160, 101, 39, 83, 47, 35, 50, 0, 15, 68, 41, 147, 43, 32, 47, 35, 19, 35, 75, 75, 39, 71, 0, 18, 69, 33,
-			241, 211, 33, 192, 71, 36, 65, 108, 89, 35, 71, 35, 104, 17, 0, 15, 68, 33, 164, 96, 48, 71, 39, 104, 17, 51, 35, 50, 75, 0,
-			11, 67, 32, 119, 160, 71, 108, 55, 39, 50, 0, 13, 68, 29, 54, 224, 48, 36, 89, 83, 35, 50, 75, 0, 21, 71, 9, 232, 159, 206,
-			12, 223, 204, 108, 55, 39, 65, 37, 50, 37, 57, 39, 65, 37, 0, 8, 66, 29, 32, 35, 88, 0, 76, 0, 14, 68, 193, 65, 222, 132,
-			49, 36, 91, 108, 55, 36, 12, 0, 14, 68, 130, 33, 210, 60, 50, 35, 84, 108, 88, 35, 72, 0, 14, 68, 127, 56, 159, 60, 65, 37,
-			57, 40, 65, 35, 72, 0, 14, 68, 126, 225, 222, 132, 65, 39, 76, 108, 55, 36, 12, 0, 15, 68, 125, 18, 136, 132, 65, 35, 51, 47,
-			35, 71, 36, 12, 0, 16, 68, 93, 23, 8, 132, 47, 39, 51, 104, 17, 35, 71, 36, 12, 0, 13, 68, 83, 52, 76, 132, 91, 37, 51,
-			75, 36, 12, 0, 14, 68, 81, 252, 224, 132, 91, 39, 65, 37, 50, 36, 12, 0, 13, 68, 77, 225, 222, 132, 89, 39, 55, 108, 55, 36,
-			0, 15, 68, 70, 36, 160, 132, 51, 39, 12, 88, 35, 50, 36, 12, 0, 15, 68, 57, 225, 220, 132, 101, 35, 55, 55, 108, 104, 17, 36,
-			0, 14, 68, 57, 20, 224, 60, 101, 39, 51, 89, 35, 50, 72, 0, 12, 67, 50, 40, 81, 75, 39, 12, 107, 35, 51, 0, 15, 68, 33,
-			156, 224, 132, 71, 36, 19, 36, 57, 50, 36, 12, 0, 13, 68, 29, 241, 222, 132, 36, 65, 108, 55, 36, 12, 0, 14, 68, 29, 177, 220,
-			132, 36, 83, 108, 104, 17, 36, 12, 0, 13, 68, 29, 113, 222, 132, 36, 47, 108, 55, 36, 12, 0, 9, 66, 33, 16, 71, 35, 51, 0,
-			76, 10, 67, 31, 4, 192, 36, 49, 89, 0, 46, 0, 13, 67, 193, 252, 20, 49, 39, 65, 35, 49, 35, 91, 0, 15, 69, 181, 18, 135,
-			33, 224, 48, 39, 51, 47, 108, 71, 55, 0, 12, 67, 137, 194, 179, 84, 35, 104, 17, 47, 37, 0, 10, 67, 127, 56, 34, 65, 37, 50,
-			40, 0, 17, 68, 125, 71, 43, 40, 65, 35, 91, 36, 104, 17, 104, 17, 35, 47, 0, 17, 69, 120, 124, 217, 113, 224, 55, 108, 57, 35,
-			19, 104, 17, 35, 55, 0, 17, 70, 120, 114, 51, 70, 2, 128, 55, 108, 71, 37, 51, 36, 50, 47, 0, 9, 66, 115, 48, 104, 17, 36,
-			57, 0, 13, 68, 80, 116, 72, 128, 91, 108, 51, 71, 39, 50, 0, 13, 68, 78, 36, 72, 128, 89, 40, 51, 71, 39, 50, 0, 12, 67,
-			77, 248, 34, 89, 35, 65, 35, 50, 40, 0, 14, 68, 63, 49, 200, 40, 72, 37, 57, 108, 71, 36, 47, 0, 14, 68, 61, 228, 206, 40,
-			72, 36, 55, 89, 35, 101, 47, 0, 20, 70, 33, 24, 95, 194, 5, 0, 71, 35, 51, 107, 35, 65, 49, 39, 50, 36, 91, 0, 13, 68,
-			29, 65, 209, 40, 36, 91, 108, 51, 35, 47, 0, 17, 70, 29, 60, 7, 69, 226, 128, 36, 89, 49, 108, 51, 55, 36, 47, 0, 0, 16,
-			69, 197, 19, 199, 122, 16, 81, 36, 51, 72, 108, 55, 36, 12, 0, 17, 70, 196, 116, 202, 71, 56, 0, 81, 108, 89, 47, 36, 51, 37,
-			50, 0, 12, 67, 193, 22, 211, 49, 35, 51, 35, 83, 89, 0, 10, 67, 136, 119, 147, 84, 108, 55, 89, 0, 17, 69, 125, 145, 243, 130,
-			16, 65, 39, 19, 108, 57, 36, 50, 36, 12, 0, 17, 69, 125, 97, 243, 114, 16, 65, 39, 88, 108, 57, 36, 104, 17, 36, 0, 16, 69,
-			124, 247, 179, 131, 16, 65, 39, 72, 36, 55, 37, 50, 81, 0, 16, 69, 94, 23, 226, 68, 176, 47, 35, 107, 65, 40, 51, 36, 89, 0,
-			15, 69, 82, 39, 243, 130, 16, 91, 40, 65, 37, 50, 36, 12, 0, 11, 67, 51, 20, 64, 75, 36, 81, 35, 51, 0, 16, 69, 42, 23,
-			226, 68, 176, 47, 35, 107, 65, 40, 51, 36, 89, 0, 18, 70, 40, 164, 71, 194, 36, 79, 47, 36, 47, 51, 108, 49, 39, 51, 72, 0,
-			15, 69, 40, 117, 48, 128, 240, 47, 108, 91, 49, 35, 50, 72, 0, 14, 69, 34, 39, 179, 131, 16, 71, 39, 55, 37, 50, 81, 0, 17,
-			69, 34, 36, 243, 122, 16, 71, 36, 84, 35, 89, 37, 55, 36, 12, 0, 16, 69, 33, 38, 135, 122, 16, 71, 39, 88, 104, 17, 108, 55,
-			36, 0, 19, 70, 32, 245, 32, 28, 226, 161, 71, 35, 72, 91, 36, 50, 108, 101, 47, 36, 0, 16, 70, 31, 52, 98, 35, 60, 0, 36,
-			57, 51, 39, 71, 37, 49, 0, 11, 67, 30, 6, 211, 35, 50, 83, 39, 89, 0, 14, 68, 29, 34, 33, 68, 35, 88, 71, 35, 107, 51,
-			36, 0, 10, 67, 28, 229, 64, 35, 101, 35, 89, 0, 17, 70, 28, 136, 141, 28, 167, 192, 35, 71, 40, 107, 108, 47, 35, 65, 0, 8,
-			66, 29, 48, 36, 89, 0, 46, 0, 15, 68, 197, 33, 209, 80, 6, 81, 39, 88, 108, 51, 36, 91, 0, 14, 69, 192, 114, 145, 206, 0,
-			49, 108, 47, 51, 37, 50, 0, 11, 67, 133, 231, 210, 107, 39, 55, 65, 88, 0, 16, 68, 124, 168, 8, 204, 65, 39, 47, 36, 50, 35,
-			71, 71, 37, 0, 11, 67, 60, 140, 192, 72, 39, 71, 36, 57, 0, 21, 71, 58, 35, 209, 136, 252, 210, 120, 101, 39, 72, 51, 39, 84,
-			72, 37, 88, 36, 55, 0, 11, 67, 32, 248, 0, 71, 35, 72, 35, 50, 0, 28, 2, 58, 40, 50, 35, 65, 108, 72, 36, 10, 76, 36,
-			107, 51, 36, 57, 36, 10, 104, 17, 35, 65, 81, 37, 50, 0, 46, 0, 12, 67, 194, 3, 209, 49, 39, 50, 72, 39, 51, 0, 23, 71,
-			113, 84, 91, 205, 24, 146, 132, 104, 17, 35, 89, 51, 36, 83, 37, 51, 40, 88, 36, 12, 0, 19, 70, 82, 2, 30, 205, 232, 64, 91,
-			35, 50, 71, 35, 55, 37, 55, 36, 12, 0, 19, 70, 56, 241, 237, 78, 3, 192, 101, 39, 72, 108, 48, 35, 89, 35, 50, 72, 0, 12,
-			67, 42, 3, 209, 47, 39, 50, 72, 35, 51, 0, 12, 67, 34, 3, 209, 71, 35, 50, 72, 35, 51, 0, 18, 70, 29, 232, 176, 29, 232,
-			64, 39, 55, 84, 36, 49, 108, 55, 36, 12, 0, 13, 68, 29, 229, 31, 76, 35, 91, 91, 35, 65, 89, 0, 19, 71, 29, 50, 135, 128,
-			241, 209, 60, 36, 89, 47, 108, 50, 72, 108, 51, 72, 0, 0, 12, 67, 193, 71, 212, 49, 36, 91, 65, 36, 91, 0, 12, 67, 193, 24,
-			20, 49, 39, 51, 50, 36, 91, 0, 16, 69, 181, 18, 7, 69, 64, 48, 39, 51, 71, 108, 51, 36, 91, 0, 17, 70, 131, 49, 223, 136,
-			226, 128, 50, 35, 57, 108, 65, 40, 101, 47, 0, 11, 67, 129, 50, 51, 50, 36, 89, 71, 37, 0, 12, 67, 125, 148, 128, 65, 39, 19,
-			36, 88, 88, 0, 12, 67, 124, 248, 51, 65, 35, 72, 35, 50, 37, 0, 10, 67, 122, 36, 179, 55, 39, 88, 37, 0, 11, 67, 70, 44,
-			20, 51, 40, 49, 36, 91, 0, 13, 67, 40, 199, 179, 47, 35, 75, 35, 55, 55, 37, 0, 12, 68, 40, 124, 223, 72, 47, 108, 57, 65,
-			88, 0, 11, 67, 33, 242, 0, 71, 39, 12, 65, 71, 0, 15, 69, 33, 227, 199, 51, 48, 71, 39, 55, 72, 108, 75, 37, 0, 0, 18,
-			70, 197, 236, 240, 138, 248, 0, 81, 36, 55, 37, 49, 39, 90, 36, 50, 0, 15, 69, 181, 17, 202, 207, 0, 48, 36, 51, 108, 47, 37,
-			49, 0, 19, 71, 135, 59, 96, 136, 172, 210, 124, 107, 37, 48, 50, 39, 47, 37, 88, 65, 0, 19, 70, 133, 248, 175, 131, 52, 161, 107,
-			36, 65, 39, 90, 36, 50, 37, 88, 36, 0, 16, 69, 133, 17, 240, 121, 48, 107, 36, 51, 108, 49, 55, 36, 89, 0, 19, 70, 130, 212,
-			79, 28, 226, 161, 50, 35, 48, 35, 51, 72, 108, 101, 47, 36, 0, 16, 68, 124, 161, 203, 68, 65, 39, 47, 36, 35, 89, 89, 36, 51,
-			0, 21, 72, 122, 44, 18, 29, 242, 34, 71, 16, 55, 39, 49, 88, 108, 65, 71, 39, 51, 81, 0, 21, 70, 78, 12, 96, 137, 66, 161,
-			89, 35, 50, 81, 50, 36, 84, 36, 91, 47, 36, 12, 0, 11, 67, 61, 21, 0, 72, 35, 51, 35, 91, 0, 13, 68, 40, 120, 48, 68,
-			47, 108, 50, 49, 36, 51, 0, 14, 68, 35, 51, 136, 68, 71, 37, 101, 35, 71, 35, 51, 0, 14, 68, 32, 115, 136, 68, 71, 108, 101,
-			35, 71, 35, 51, 0, 14, 69, 31, 56, 15, 193, 48, 37, 50, 72, 36, 49, 89, 0, 0, 10, 67, 186, 40, 0, 6, 76, 39, 50, 0,
-			12, 68, 184, 120, 78, 136, 76, 108, 107, 101, 40, 0, 10, 67, 180, 120, 46, 48, 108, 50, 76, 0, 15, 69, 133, 24, 134, 206, 0, 107,
-			36, 51, 39, 19, 37, 50, 0, 16, 68, 124, 163, 30, 204, 65, 39, 47, 36, 75, 35, 55, 55, 37, 0, 16, 69, 62, 2, 30, 30, 0,
-			72, 39, 50, 71, 35, 55, 108, 50, 0, 18, 70, 48, 120, 34, 68, 232, 128, 75, 108, 50, 36, 84, 35, 51, 101, 40, 0, 11, 67, 32,
-			252, 0, 71, 35, 72, 35, 49, 0, 0, 18, 70, 56, 241, 205, 29, 182, 0, 101, 39, 72, 108, 107, 108, 83, 36, 88, 0, 19, 70, 41,
-			24, 173, 137, 54, 209, 47, 36, 51, 39, 48, 39, 89, 83, 36, 51, 0, 13, 68, 33, 230, 112, 76, 71, 36, 55, 35, 49, 89, 0, 16,
-			69, 33, 24, 160, 33, 16, 71, 40, 51, 40, 50, 71, 35, 51, 0, 20, 71, 33, 17, 224, 199, 51, 138, 132, 71, 35, 51, 35, 50, 81,
-			37, 101, 47, 36, 0, 0, 13, 67, 193, 226, 50, 49, 39, 55, 71, 36, 57, 36, 0, 18, 70, 125, 145, 223, 120, 114, 179, 65, 39, 108,
-			65, 36, 55, 108, 47, 37, 0, 17, 69, 125, 50, 153, 123, 48, 65, 39, 89, 47, 35, 36, 55, 55, 37, 0, 15, 68, 124, 200, 171, 72,
-			65, 39, 75, 35, 84, 84, 36, 88, 0, 17, 69, 83, 4, 202, 131, 48, 91, 36, 49, 35, 89, 47, 35, 50, 37, 0, 16, 69, 40, 134,
-			71, 43, 48, 47, 35, 71, 35, 19, 108, 47, 37, 0, 10, 67, 35, 50, 128, 71, 36, 57, 47, 0, 16, 69, 34, 3, 210, 131, 48, 71,
-			35, 50, 72, 88, 35, 50, 37, 0, 15, 69, 28, 244, 112, 131, 48, 35, 72, 51, 36, 49, 50, 37, 0, 0, 17, 70, 131, 2, 161, 60,
-			120, 0, 50, 39, 49, 47, 36, 72, 108, 50, 0, 13, 67, 126, 40, 11, 65, 39, 35, 50, 50, 35, 89, 0, 19, 70, 34, 39, 30, 126,
-			40, 0, 71, 40, 104, 17, 35, 55, 35, 65, 40, 50, 0, 17, 70, 32, 116, 202, 206, 40, 0, 71, 108, 89, 47, 37, 57, 39, 50, 0,
-			15, 69, 32, 116, 173, 69, 48, 71, 108, 88, 48, 39, 51, 89, 0, 0, 15, 69, 182, 12, 98, 206, 0, 48, 35, 50, 81, 39, 35, 50,
-			0, 12, 67, 133, 247, 138, 107, 35, 65, 55, 36, 47, 0, 12, 67, 131, 54, 202, 50, 35, 57, 39, 83, 47, 0, 12, 67, 129, 40, 74,
-			50, 39, 88, 107, 35, 47, 0, 15, 68, 128, 225, 222, 200, 50, 39, 101, 108, 55, 36, 57, 36, 0, 16, 70, 100, 129, 209, 28, 172, 192,
-			36, 71, 108, 51, 108, 47, 37, 0, 15, 68, 69, 49, 222, 200, 51, 36, 89, 108, 55, 36, 57, 36, 0, 17, 68, 40, 196, 72, 200, 6,
-			47, 35, 75, 51, 39, 71, 36, 57, 36, 0, 18, 70, 32, 229, 34, 62, 12, 192, 71, 35, 101, 91, 40, 72, 35, 50, 37, 0, 14, 68,
-			29, 113, 222, 200, 36, 47, 108, 55, 36, 57, 36, 0, 16, 69, 28, 210, 156, 30, 0, 36, 107, 47, 36, 104, 17, 108, 50, 0, 0, 15,
-			69, 130, 37, 51, 62, 0, 50, 40, 91, 37, 72, 35, 50, 0, 12, 67, 125, 99, 112, 65, 39, 88, 107, 36, 49, 0, 11, 67, 88, 115,
-			112, 88, 108, 107, 36, 49, 0, 10, 67, 53, 88, 0, 107, 36, 89, 50, 0, 11, 67, 33, 248, 0, 71, 36, 65, 35, 50, 0, 15, 69,
-			33, 17, 225, 206, 0, 71, 35, 51, 108, 107, 37, 50, 0, 14, 69, 29, 76, 15, 30, 0, 35, 91, 49, 72, 108, 50, 0, 0, 12, 67,
-			198, 35, 50, 81, 39, 75, 36, 57, 36, 0, 13, 68, 197, 28, 206, 40, 81, 39, 51, 37, 101, 47, 0, 18, 70, 83, 52, 162, 109, 24,
-			51, 91, 37, 88, 39, 83, 36, 51, 50, 37, 0, 19, 70, 68, 115, 243, 137, 235, 243, 51, 108, 72, 37, 57, 39, 55, 39, 90, 37, 0,
-			0, 15, 68, 125, 85, 222, 52, 65, 39, 89, 47, 35, 55, 35, 12, 0, 19, 70, 68, 115, 243, 137, 98, 23, 51, 108, 72, 37, 57, 39,
-			88, 35, 71, 47, 0, 0, 13, 68, 128, 116, 96, 48, 50, 108, 51, 36, 50, 75, 0, 17, 69, 124, 225, 222, 108, 160, 65, 39, 101, 108,
-			55, 36, 83, 35, 47, 0, 0, 15, 68, 82, 8, 160, 60, 91, 36, 50, 35, 84, 35, 50, 72, 0, 22, 72, 79, 56, 10, 205, 49, 243,
-			73, 16, 89, 37, 50, 47, 37, 89, 108, 57, 88, 36, 51, 0, 10, 67, 61, 28, 0, 72, 35, 51, 49, 0, 11, 67, 41, 188, 0, 47,
-			39, 83, 35, 49, 0, 13, 68, 8, 132, 224, 196, 108, 71, 89, 35, 50, 81, 0, 0, 11, 67, 207, 2, 135, 57, 36, 49, 47, 108, 0,
-			11, 67, 197, 178, 135, 81, 39, 83, 47, 108, 0, 14, 68, 125, 92, 200, 40, 65, 39, 89, 37, 71, 35, 47, 0, 11, 67, 62, 21, 0,
-			72, 35, 107, 36, 91, 0, 0, 13, 67, 125, 18, 51, 65, 39, 51, 35, 71, 71, 37, 0, 12, 67, 124, 246, 98, 65, 35, 72, 19, 39,
-			84, 0, 13, 67, 42, 19, 51, 47, 35, 107, 35, 75, 75, 37, 0, 0, 12, 68, 82, 36, 72, 28, 91, 40, 51, 71, 108, 0, 8, 65,
-			44, 6, 89, 36, 12, 0, 0, 18, 70, 197, 17, 224, 78, 12, 64, 81, 36, 51, 108, 50, 89, 35, 50, 81, 0, 15, 69, 181, 232, 138,
-			138, 0, 48, 39, 55, 39, 47, 39, 50, 0, 16, 68, 124, 165, 79, 204, 65, 39, 47, 36, 89, 35, 72, 72, 37, 0, 11, 67, 62, 24,
-			0, 72, 35, 107, 35, 50, 0, 10, 67, 48, 136, 0, 75, 39, 71, 50, 0, 11, 67, 40, 200, 0, 47, 35, 75, 35, 50, 0, 20, 66,
-			133, 192, 107, 36, 75, 51, 37, 57, 36, 9, 104, 35, 65, 35, 51, 37, 0, 46, 0, 10, 67, 139, 52, 135, 84, 37, 88, 108, 0, 13,
-			67, 129, 119, 7, 50, 39, 47, 35, 104, 17, 108, 0, 12, 67, 128, 194, 7, 50, 39, 75, 35, 71, 108, 0, 11, 67, 122, 39, 135, 55,
-			39, 12, 55, 108, 0, 12, 67, 101, 199, 135, 39, 104, 17, 35, 55, 108, 0, 22, 70, 78, 12, 96, 137, 66, 178, 89, 35, 50, 81, 50,
-			36, 84, 36, 91, 47, 36, 57, 36, 0, 11, 67, 64, 114, 135, 88, 108, 47, 35, 50, 0, 10, 67, 29, 247, 135, 36, 65, 55, 108, 0,
-			14, 67, 29, 199, 135, 35, 104, 17, 35, 55, 55, 35, 50, 0, 0, 10, 67, 193, 2, 0, 49, 36, 88, 71, 0, 15, 69, 57, 76, 51,
-			75, 48, 101, 39, 91, 49, 37, 88, 37, 0, 15, 68, 41, 228, 240, 180, 47, 36, 55, 36, 89, 49, 39, 48, 0, 14, 69, 29, 60, 51,
-			126, 32, 36, 89, 49, 37, 65, 40, 0, 0, 17, 70, 131, 60, 30, 78, 40, 0, 50, 37, 49, 39, 55, 89, 39, 50, 0, 16, 70, 122,
-			39, 226, 124, 129, 192, 55, 39, 65, 39, 65, 71, 108, 0, 13, 68, 120, 114, 30, 28, 55, 108, 71, 36, 55, 108, 0, 14, 68, 78, 28,
-			222, 28, 89, 39, 107, 36, 57, 55, 108, 0, 13, 68, 70, 37, 32, 28, 51, 39, 91, 35, 50, 108, 0, 11, 67, 70, 35, 192, 51, 35,
-			84, 35, 72, 0, 19, 70, 61, 71, 224, 80, 120, 0, 72, 39, 91, 65, 35, 50, 36, 91, 108, 50, 0, 12, 68, 29, 236, 224, 28, 36,
-			55, 37, 50, 108, 0, 14, 68, 29, 196, 72, 28, 35, 104, 17, 51, 36, 71, 108, 0, 14, 68, 29, 50, 158, 28, 36, 89, 47, 36, 55,
-			55, 108, 0, 0, 12, 68, 184, 117, 32, 204, 76, 108, 91, 50, 37, 0, 11, 67, 183, 56, 10, 48, 36, 57, 50, 47, 0, 15, 67, 126,
-			38, 220, 65, 39, 84, 35, 83, 83, 35, 104, 17, 0, 15, 67, 125, 83, 220, 65, 39, 89, 35, 72, 72, 36, 104, 17, 0, 13, 67, 125,
-			70, 220, 65, 39, 91, 83, 36, 104, 17, 0, 17, 70, 111, 55, 162, 122, 252, 192, 83, 37, 55, 39, 55, 39, 90, 37, 0, 11, 67, 62,
-			28, 0, 72, 36, 107, 35, 49, 0, 14, 68, 62, 19, 225, 204, 72, 35, 107, 72, 35, 107, 37, 0, 0, 16, 69, 125, 151, 226, 120, 112,
-			65, 35, 19, 65, 40, 55, 35, 50, 0, 15, 69, 110, 34, 179, 128, 112, 83, 40, 47, 36, 57, 50, 108, 0, 14, 67, 105, 226, 33, 104,
-			17, 35, 55, 35, 71, 36, 12, 0, 10, 67, 84, 131, 64, 89, 39, 71, 107, 0, 12, 67, 49, 246, 97, 75, 39, 65, 19, 36, 12, 0,
-			13, 67, 40, 134, 97, 47, 35, 71, 35, 36, 57, 36, 0, 11, 67, 29, 178, 143, 39, 83, 47, 35, 72, 0, 15, 69, 29, 50, 159, 128,
-			112, 36, 89, 47, 36, 65, 50, 108, 0, 15, 69, 29, 50, 153, 120, 112, 36, 89, 47, 36, 19, 55, 108, 0, 0, 12, 67, 186, 3, 222,
-			76, 35, 50, 72, 35, 55, 0, 16, 68, 181, 21, 51, 128, 48, 36, 51, 6, 91, 37, 57, 35, 50, 0, 11, 67, 130, 44, 94, 50, 39,
-			81, 39, 55, 0, 11, 67, 130, 34, 30, 50, 39, 71, 36, 55, 0, 17, 69, 129, 68, 202, 131, 48, 50, 36, 91, 35, 89, 47, 35, 50,
-			37, 0, 16, 69, 127, 1, 202, 35, 48, 65, 35, 49, 108, 47, 36, 71, 37, 0, 10, 67, 83, 51, 128, 91, 36, 57, 101, 0, 14, 69,
-			78, 40, 7, 127, 48, 89, 39, 50, 108, 65, 37, 0, 14, 68, 69, 1, 222, 40, 51, 36, 88, 108, 55, 35, 47, 0, 13, 69, 58, 44,
-			243, 131, 48, 101, 39, 37, 50, 37, 0, 15, 68, 53, 1, 220, 40, 107, 36, 88, 108, 104, 17, 35, 47, 0, 18, 70, 40, 115, 162, 68,
-			252, 115, 47, 108, 101, 39, 51, 72, 36, 81, 37, 0, 15, 68, 32, 243, 158, 112, 71, 35, 72, 101, 39, 55, 104, 17, 0, 13, 68, 31,
-			49, 222, 40, 36, 57, 108, 55, 35, 47, 0, 13, 68, 31, 4, 224, 40, 35, 49, 89, 36, 50, 47, 0, 14, 68, 29, 60, 30, 40, 36,
-			89, 49, 36, 55, 36, 47, 0, 23, 73, 11, 8, 159, 180, 120, 51, 124, 120, 0, 108, 49, 39, 65, 48, 108, 50, 37, 65, 108, 50, 0,
-			0, 12, 67, 186, 3, 223, 76, 35, 50, 72, 39, 65, 0, 12, 67, 126, 2, 25, 65, 35, 50, 71, 35, 19, 0, 17, 68, 124, 168, 8,
-			132, 65, 39, 47, 36, 50, 35, 71, 71, 36, 107, 0, 21, 70, 124, 166, 71, 112, 129, 192, 65, 39, 47, 35, 19, 108, 104, 17, 36, 71,
-			35, 50, 0, 12, 67, 82, 35, 192, 91, 35, 6, 84, 35, 72, 0, 11, 67, 56, 115, 223, 101, 108, 72, 36, 65, 0, 12, 67, 42, 32,
-			223, 47, 39, 12, 19, 35, 65, 0, 8, 66, 41, 176, 47, 39, 83, 0, 18, 70, 41, 28, 19, 40, 120, 0, 47, 39, 51, 49, 36, 89,
-			47, 108, 50, 0, 12, 67, 35, 60, 95, 71, 36, 57, 81, 39, 65, 0, 14, 68, 34, 28, 15, 132, 71, 36, 107, 49, 35, 72, 36, 0,
-			18, 70, 29, 18, 140, 29, 225, 192, 36, 51, 47, 36, 75, 108, 55, 35, 50, 0, 13, 68, 28, 129, 205, 132, 36, 71, 108, 107, 36, 12,
-			0, 0, 15, 69, 192, 114, 51, 128, 160, 49, 108, 71, 37, 50, 36, 47, 0, 14, 69, 184, 124, 223, 30, 0, 76, 108, 57, 65, 108, 50,
-			0, 13, 68, 125, 49, 34, 120, 65, 35, 89, 19, 40, 55, 0, 16, 69, 125, 19, 223, 30, 0, 65, 35, 51, 72, 39, 65, 108, 50, 0,
-			14, 67, 124, 183, 224, 65, 39, 89, 35, 65, 65, 35, 50, 0, 11, 67, 57, 72, 0, 101, 35, 91, 36, 50, 0, 14, 67, 41, 150, 224,
-			47, 35, 19, 35, 83, 83, 39, 50, 0, 8, 66, 41, 32, 47, 36, 88, 0, 15, 68, 40, 216, 171, 120, 47, 35, 107, 35, 84, 84, 39,
-			55, 0, 8, 66, 33, 32, 71, 39, 88, 0, 16, 70, 29, 28, 241, 29, 252, 192, 39, 51, 37, 81, 108, 65, 37, 0, 0, 17, 70, 198,
-			33, 202, 124, 119, 135, 81, 40, 108, 47, 65, 108, 55, 108, 0, 11, 67, 194, 5, 0, 49, 39, 50, 36, 91, 0, 12, 67, 193, 226, 33,
-			49, 39, 55, 71, 36, 12, 0, 14, 68, 133, 252, 224, 192, 107, 35, 65, 37, 50, 35, 49, 0, 15, 68, 130, 21, 79, 124, 50, 39, 107,
-			89, 35, 72, 39, 65, 0, 15, 67, 125, 199, 143, 65, 39, 104, 17, 35, 55, 55, 36, 72, 0, 12, 67, 125, 184, 49, 65, 39, 83, 35,
-			50, 81, 0, 12, 67, 124, 166, 97, 65, 39, 47, 19, 36, 12, 0, 13, 67, 113, 230, 225, 104, 17, 35, 55, 35, 83, 36, 0, 13, 67,
-			113, 23, 225, 104, 17, 39, 51, 65, 36, 12, 0, 12, 67, 93, 151, 225, 47, 39, 19, 65, 36, 12, 0, 11, 67, 84, 246, 192, 89, 35,
-			72, 35, 83, 0, 11, 67, 80, 131, 64, 91, 35, 71, 35, 107, 0, 12, 67, 77, 23, 225, 89, 39, 51, 65, 36, 12, 0, 17, 69, 62,
-			33, 210, 62, 16, 6, 72, 35, 84, 108, 88, 72, 35, 107, 0, 12, 67, 49, 184, 49, 75, 35, 83, 35, 50, 81, 0, 12, 67, 43, 7,
-			225, 47, 39, 49, 65, 36, 12, 0, 15, 69, 41, 232, 135, 78, 16, 47, 35, 55, 84, 108, 89, 36, 0, 12, 67, 41, 184, 49, 47, 39,
-			83, 35, 50, 81, 0, 12, 67, 33, 24, 97, 71, 39, 51, 107, 36, 12, 0, 11, 67, 33, 23, 225, 71, 36, 51, 65, 36, 0, 18, 70,
-			33, 20, 162, 32, 119, 135, 71, 39, 51, 88, 39, 71, 108, 55, 108, 0, 10, 67, 32, 120, 15, 71, 108, 50, 72, 0, 18, 69, 29, 72,
-			34, 206, 16, 39, 91, 50, 35, 84, 37, 57, 57, 36, 12, 0, 11, 67, 28, 135, 161, 35, 71, 55, 35, 107, 0, 11, 67, 10, 24, 49,
-			108, 107, 35, 50, 81, 0, 11, 67, 10, 12, 33, 108, 50, 49, 36, 12, 0, 0, 16, 69, 197, 19, 212, 193, 224, 81, 36, 51, 72, 91,
-			36, 49, 55, 0, 15, 68, 193, 28, 79, 128, 49, 35, 51, 81, 35, 72, 35, 50, 0, 13, 68, 183, 52, 97, 128, 48, 37, 51, 107, 35,
-			50, 0, 18, 70, 182, 36, 85, 28, 247, 0, 48, 40, 51, 89, 108, 72, 36, 104, 17, 0, 20, 70, 130, 36, 71, 120, 215, 0, 50, 40,
-			51, 39, 55, 107, 35, 104, 17, 104, 17, 0, 14, 68, 125, 119, 217, 128, 65, 39, 47, 65, 35, 36, 50, 0, 10, 67, 122, 36, 128, 55,
-			39, 12, 88, 0, 14, 68, 110, 8, 159, 128, 83, 36, 50, 39, 65, 36, 50, 0, 12, 67, 109, 230, 222, 83, 36, 55, 83, 36, 55, 0,
-			20, 70, 55, 51, 209, 29, 167, 179, 107, 36, 57, 72, 35, 51, 39, 104, 17, 55, 37, 0, 12, 67, 50, 12, 94, 75, 35, 50, 81, 35,
-			55, 0, 19, 70, 31, 56, 10, 70, 2, 128, 6, 37, 50, 47, 36, 51, 4, 50, 36, 47, 0, 0, 14, 68, 207, 11, 160, 60, 57, 36,
-			49, 76, 35, 50, 72, 0, 14, 68, 204, 116, 143, 132, 6, 57, 108, 88, 72, 35, 107, 0, 10, 67, 194, 3, 0, 49, 39, 50, 75, 0,
-			17, 69, 133, 178, 149, 61, 240, 107, 35, 83, 47, 89, 35, 72, 39, 65, 0, 15, 69, 127, 60, 98, 205, 240, 65, 37, 81, 40, 57, 35,
-			65, 0, 15, 68, 127, 60, 15, 132, 65, 36, 57, 49, 35, 72, 36, 12, 0, 16, 68, 113, 231, 200, 132, 104, 17, 39, 55, 39, 65, 71,
-			36, 12, 0, 13, 68, 83, 55, 160, 196, 91, 37, 55, 35, 50, 81, 0, 14, 68, 61, 17, 240, 132, 72, 35, 51, 51, 108, 49, 36, 0,
-			13, 68, 52, 124, 31, 132, 107, 108, 49, 36, 65, 36, 0, 12, 67, 49, 226, 48, 75, 39, 55, 71, 35, 49, 0, 15, 69, 42, 43, 98,
-			121, 176, 47, 39, 48, 39, 55, 39, 83, 0, 14, 68, 42, 33, 222, 60, 47, 35, 84, 108, 55, 39, 72, 0, 15, 68, 41, 231, 200, 132,
-			47, 39, 55, 39, 65, 71, 36, 12, 0, 15, 68, 41, 148, 91, 132, 47, 35, 19, 51, 36, 83, 36, 12, 0, 13, 68, 35, 56, 32, 60,
-			71, 37, 50, 35, 50, 72, 0, 19, 70, 35, 56, 15, 29, 35, 192, 71, 37, 57, 35, 50, 72, 108, 88, 35, 72, 0, 18, 70, 35, 49,
-			223, 137, 35, 192, 71, 37, 57, 108, 65, 40, 88, 35, 72, 0, 13, 68, 34, 39, 160, 60, 71, 39, 55, 39, 50, 72, 0, 12, 67, 33,
-			184, 95, 71, 36, 83, 35, 107, 65, 0, 16, 68, 33, 76, 32, 60, 71, 36, 91, 36, 49, 35, 50, 35, 72, 0, 15, 68, 33, 39, 32,
-			60, 71, 39, 88, 104, 17, 35, 50, 72, 0, 13, 68, 32, 119, 160, 196, 71, 108, 55, 35, 50, 81, 0, 0, 10, 67, 180, 120, 18, 48,
-			108, 50, 88, 0, 19, 71, 128, 115, 162, 82, 8, 143, 204, 50, 108, 101, 39, 91, 50, 40, 72, 37, 0, 15, 68, 125, 26, 202, 32, 65,
-			39, 51, 35, 47, 47, 35, 71, 0, 20, 71, 109, 17, 224, 79, 52, 240, 136, 83, 36, 51, 108, 50, 89, 37, 89, 49, 39, 0, 15, 68,
-			81, 116, 96, 48, 6, 91, 35, 47, 51, 35, 50, 75, 0, 13, 68, 58, 37, 49, 120, 101, 39, 91, 81, 36, 55, 0, 10, 67, 57, 76,
-			0, 101, 39, 91, 49, 0, 15, 68, 33, 38, 160, 48, 71, 39, 88, 104, 17, 35, 50, 75, 0, 12, 68, 31, 55, 243, 120, 37, 65, 36,
-			57, 55, 0, 13, 68, 29, 50, 136, 120, 36, 89, 47, 35, 71, 55, 0, 0, 15, 69, 193, 18, 135, 78, 16, 49, 36, 51, 47, 108, 89,
-			36, 0, 15, 69, 192, 164, 115, 131, 16, 49, 36, 47, 51, 37, 50, 81, 0, 16, 69, 185, 71, 200, 128, 240, 76, 36, 91, 65, 71, 35,
-			50, 72, 0, 10, 67, 180, 119, 147, 48, 108, 55, 89, 0, 16, 69, 131, 49, 243, 128, 240, 50, 35, 57, 108, 57, 35, 50, 72, 0, 15,
-			69, 127, 55, 147, 131, 16, 65, 37, 55, 89, 35, 50, 81, 0, 17, 69, 127, 1, 212, 110, 16, 65, 39, 49, 108, 91, 36, 83, 36, 12,
-			0, 15, 68, 125, 148, 107, 108, 65, 39, 19, 35, 51, 51, 36, 83, 0, 15, 69, 124, 119, 136, 128, 240, 65, 108, 55, 71, 35, 50, 72,
-			0, 15, 69, 109, 22, 226, 190, 16, 83, 36, 51, 83, 39, 90, 36, 0, 12, 67, 77, 19, 147, 89, 35, 51, 35, 101, 89, 0, 10, 67,
-			59, 52, 64, 101, 36, 57, 51, 0, 15, 69, 48, 115, 241, 126, 16, 75, 108, 72, 39, 81, 65, 36, 0, 18, 69, 33, 232, 15, 112, 240,
-			71, 39, 55, 35, 50, 72, 104, 17, 35, 72, 0, 17, 69, 33, 24, 7, 126, 16, 71, 35, 51, 6, 50, 108, 65, 36, 12, 0, 15, 69,
-			32, 115, 200, 128, 240, 71, 108, 72, 71, 35, 50, 72, 0, 0, 12, 67, 185, 19, 148, 76, 35, 51, 101, 36, 91, 0, 8, 66, 33, 64,
-			71, 36, 91, 0, 14, 68, 29, 40, 140, 72, 36, 88, 88, 39, 75, 36, 88, 0, 8, 66, 29, 64, 35, 91, 0, 76, 10, 4, 95, 35,
-			110, 100, 84, 39, 65, 0, 0, 11, 67, 206, 36, 145, 57, 40, 88, 36, 51, 0, 16, 70, 197, 17, 243, 204, 248, 64, 81, 36, 51, 108,
-			37, 72, 36, 0, 10, 67, 188, 120, 17, 90, 108, 50, 51, 0, 18, 70, 182, 23, 162, 110, 12, 64, 48, 35, 107, 55, 40, 83, 35, 50,
-			81, 0, 18, 70, 181, 24, 138, 207, 56, 0, 48, 39, 51, 39, 47, 36, 19, 37, 50, 0, 12, 67, 127, 51, 17, 65, 36, 57, 75, 36,
-			51, 0, 16, 68, 125, 196, 96, 76, 65, 39, 104, 17, 35, 51, 50, 35, 89, 0, 14, 67, 125, 67, 17, 65, 39, 91, 35, 75, 75, 35,
-			51, 0, 14, 67, 124, 67, 145, 65, 39, 19, 35, 101, 101, 35, 51, 0, 13, 68, 122, 36, 96, 76, 55, 39, 51, 36, 50, 89, 0, 9,
-			66, 113, 16, 104, 17, 36, 51, 0, 10, 67, 111, 50, 17, 83, 37, 71, 51, 0, 8, 66, 109, 16, 83, 36, 51, 0, 14, 67, 105, 22,
-			145, 104, 17, 39, 51, 104, 17, 39, 51, 0, 9, 66, 105, 16, 104, 17, 39, 51, 0, 20, 70, 82, 20, 91, 70, 12, 64, 91, 35, 107,
-			51, 36, 83, 35, 51, 35, 50, 81, 0, 17, 69, 77, 19, 209, 197, 240, 89, 35, 51, 72, 35, 51, 81, 39, 65, 0, 12, 67, 61, 226,
-			17, 72, 36, 55, 71, 35, 51, 0, 18, 70, 57, 19, 240, 68, 248, 64, 101, 39, 51, 72, 49, 35, 51, 72, 36, 0, 8, 66, 49, 16,
-			75, 36, 51, 0, 17, 70, 9, 36, 95, 199, 56, 0, 108, 88, 35, 51, 65, 81, 37, 50, 0, 9, 66, 41, 16, 47, 35, 51, 0, 76,
-			0, 10, 67, 134, 40, 128, 107, 35, 84, 40, 0, 15, 68, 125, 200, 171, 204, 65, 39, 104, 17, 35, 84, 84, 37, 0, 15, 69, 124, 124,
-			226, 129, 32, 65, 108, 57, 39, 50, 36, 88, 0, 13, 68, 124, 120, 10, 136, 65, 108, 50, 47, 39, 12, 0, 20, 70, 111, 55, 138, 69,
-			76, 32, 83, 37, 55, 47, 36, 51, 91, 36, 49, 35, 50, 0, 15, 69, 30, 3, 8, 206, 0, 35, 50, 75, 35, 71, 37, 50, 0, 15,
-			69, 29, 19, 240, 30, 0, 35, 51, 72, 36, 49, 108, 50, 0, 19, 70, 10, 3, 226, 193, 18, 32, 108, 50, 72, 39, 49, 35, 51, 71,
-			39, 50, 0, 0, 14, 68, 186, 3, 200, 68, 76, 35, 50, 72, 71, 35, 51, 0, 19, 70, 181, 20, 202, 204, 247, 192, 48, 35, 51, 35,
-			89, 47, 37, 72, 35, 65, 0, 14, 68, 129, 241, 200, 68, 50, 35, 65, 108, 71, 35, 51, 0, 14, 68, 126, 17, 204, 68, 65, 39, 107,
-			108, 75, 36, 51, 0, 13, 68, 76, 124, 200, 68, 89, 108, 57, 71, 36, 51, 0, 13, 68, 70, 44, 202, 68, 51, 39, 57, 47, 36, 51,
-			0, 13, 68, 32, 114, 158, 68, 71, 108, 47, 55, 36, 51, 0, 19, 70, 10, 11, 160, 30, 12, 33, 108, 50, 76, 36, 50, 108, 50, 49,
-			36, 89, 0, 15, 3, 239, 174, 168, 6, 107, 36, 12, 10, 39, 51, 72, 40, 0, 0, 15, 69, 125, 17, 204, 103, 48, 65, 35, 51, 108,
-			75, 36, 37, 0, 18, 70, 124, 252, 209, 100, 119, 222, 65, 39, 72, 37, 51, 108, 65, 36, 55, 0, 17, 69, 124, 163, 30, 175, 48, 65,
-			39, 47, 36, 75, 35, 55, 55, 37, 0, 17, 69, 50, 36, 143, 199, 48, 75, 35, 84, 88, 35, 72, 36, 81, 37, 0, 20, 70, 42, 39,
-			179, 61, 242, 222, 47, 39, 12, 55, 37, 72, 36, 65, 36, 89, 55, 0, 13, 67, 34, 236, 115, 71, 35, 76, 76, 36, 81, 37, 0, 11,
-			67, 29, 232, 115, 36, 55, 108, 107, 37, 0, 15, 67, 29, 22, 20, 35, 51, 88, 36, 91, 65, 35, 50, 72, 0, 15, 3, 239, 174, 169,
-			6, 107, 36, 12, 10, 39, 51, 72, 40, 0, 0, 18, 69, 194, 2, 145, 121, 16, 49, 39, 50, 47, 39, 51, 39, 55, 36, 51, 0, 11,
-			67, 193, 19, 0, 49, 35, 51, 35, 75, 0, 12, 67, 130, 34, 17, 50, 39, 12, 71, 35, 51, 0, 15, 69, 130, 33, 223, 33, 16, 50,
-			39, 84, 108, 65, 71, 51, 0, 16, 69, 127, 49, 224, 33, 16, 65, 37, 57, 108, 50, 71, 39, 51, 0, 21, 70, 78, 24, 135, 121, 199,
-			159, 89, 35, 107, 84, 39, 55, 104, 17, 35, 55, 35, 65, 0, 16, 69, 73, 241, 224, 33, 16, 88, 35, 65, 108, 50, 71, 35, 51, 0,
-			17, 70, 70, 39, 199, 43, 52, 223, 51, 39, 65, 108, 47, 37, 89, 65, 0, 12, 67, 70, 18, 17, 51, 35, 107, 71, 35, 51, 0, 15,
-			69, 61, 49, 223, 33, 16, 72, 36, 89, 108, 65, 71, 51, 0, 22, 71, 57, 19, 145, 124, 120, 32, 60, 101, 39, 51, 101, 39, 51, 65,
-			108, 50, 35, 50, 72, 0, 17, 69, 32, 247, 224, 97, 16, 71, 35, 72, 65, 35, 50, 88, 35, 51, 0, 20, 72, 30, 39, 138, 205, 241,
-			202, 137, 240, 39, 55, 47, 37, 65, 108, 47, 39, 65, 0, 20, 72, 30, 36, 71, 131, 24, 138, 30, 0, 40, 51, 108, 50, 81, 40, 47,
-			108, 50, 0, 0, 11, 67, 194, 8, 0, 49, 39, 50, 35, 50, 0, 10, 67, 192, 120, 10, 49, 108, 50, 47, 0, 12, 67, 130, 34, 10,
-			50, 39, 12, 71, 35, 47, 0, 16, 68, 125, 148, 91, 204, 65, 39, 19, 35, 51, 51, 36, 83, 37, 0, 14, 68, 125, 19, 241, 204, 65,
-			39, 51, 72, 36, 81, 37, 0, 12, 67, 124, 216, 10, 65, 36, 107, 50, 35, 47, 0, 12, 67, 81, 18, 10, 91, 35, 51, 71, 35, 47,
-			0, 10, 67, 76, 120, 10, 89, 108, 50, 47, 0, 10, 67, 68, 120, 10, 51, 108, 50, 47, 0, 12, 67, 40, 135, 138, 47, 35, 71, 55,
-			36, 47, 0, 13, 68, 32, 252, 225, 204, 71, 35, 72, 37, 107, 37, 0, 12, 67, 32, 119, 154, 71, 108, 55, 36, 104, 17, 0, 23, 72,
-			29, 180, 209, 29, 231, 222, 139, 0, 35, 83, 89, 35, 51, 39, 55, 65, 39, 55, 40, 49, 0, 14, 4, 95, 48, 77, 50, 65, 37, 55,
-			57, 40, 50, 39, 0, 0, 16, 70, 182, 36, 84, 29, 50, 0, 48, 40, 51, 91, 108, 89, 71, 0, 11, 67, 126, 34, 15, 65, 40, 71,
-			35, 72, 0, 10, 67, 68, 131, 64, 51, 36, 71, 107, 0, 13, 68, 29, 244, 72, 68, 35, 65, 51, 71, 35, 51, 0, 15, 4, 95, 48,
-			77, 51, 65, 37, 55, 57, 108, 51, 72, 39, 0, 0, 13, 68, 192, 119, 224, 40, 49, 108, 65, 36, 50, 47, 0, 14, 68, 139, 1, 222,
-			40, 84, 36, 49, 108, 55, 35, 47, 0, 17, 69, 132, 225, 223, 129, 64, 107, 35, 101, 108, 65, 35, 50, 36, 91, 0, 16, 69, 131, 60,
-			31, 129, 64, 50, 37, 49, 65, 35, 50, 36, 91, 0, 15, 68, 126, 35, 72, 40, 65, 39, 12, 107, 36, 71, 35, 47, 0, 15, 69, 120,
-			114, 146, 206, 32, 55, 108, 47, 88, 37, 57, 39, 0, 9, 67, 87, 50, 128, 89, 37, 47, 0, 10, 67, 86, 34, 128, 89, 39, 12, 47,
-			0, 13, 67, 77, 23, 242, 89, 39, 51, 65, 36, 57, 36, 0, 15, 68, 61, 71, 224, 40, 72, 39, 91, 65, 35, 50, 35, 47, 0, 9,
-			67, 54, 34, 128, 107, 40, 47, 0, 12, 67, 52, 194, 128, 107, 39, 75, 75, 35, 47, 0, 14, 67, 41, 147, 8, 47, 35, 19, 35, 75,
-			75, 39, 71, 0, 15, 69, 30, 12, 115, 73, 64, 35, 50, 81, 37, 88, 36, 91, 0, 13, 68, 29, 81, 200, 40, 36, 89, 108, 71, 35,
-			47, 0, 0, 13, 67, 125, 19, 13, 65, 39, 51, 35, 75, 35, 107, 0, 10, 67, 122, 35, 192, 55, 39, 12, 72, 0, 19, 70, 97, 180,
-			96, 126, 40, 0, 88, 35, 83, 35, 51, 50, 36, 65, 40, 50, 0, 18, 70, 82, 24, 138, 68, 120, 0, 91, 35, 107, 84, 35, 47, 51,
-			108, 50, 0, 14, 67, 41, 247, 176, 47, 35, 65, 35, 55, 55, 39, 49, 0, 11, 67, 32, 195, 192, 71, 36, 75, 36, 72, 0, 13, 4,
-			95, 48, 77, 49, 107, 36, 88, 108, 51, 39, 0, 0, 16, 69, 193, 225, 243, 128, 160, 49, 36, 55, 108, 57, 36, 50, 47, 0, 11, 67,
-			193, 28, 0, 49, 36, 51, 35, 49, 0, 22, 71, 180, 244, 83, 136, 226, 177, 204, 48, 36, 72, 35, 51, 89, 40, 101, 47, 36, 81, 37,
-			0, 12, 67, 135, 50, 10, 107, 36, 57, 71, 35, 47, 0, 17, 70, 133, 228, 243, 131, 12, 192, 107, 36, 55, 89, 37, 50, 49, 37, 0,
-			17, 69, 126, 33, 216, 32, 160, 65, 39, 84, 108, 88, 36, 71, 35, 47, 0, 14, 68, 120, 129, 222, 32, 55, 35, 71, 108, 55, 35, 71,
-			0, 17, 69, 113, 18, 34, 128, 160, 104, 17, 39, 51, 71, 40, 50, 36, 47, 0, 14, 68, 80, 116, 143, 200, 91, 108, 88, 72, 36, 57,
-			36, 0, 10, 67, 71, 51, 138, 51, 37, 101, 47, 0, 0, 12, 67, 194, 8, 15, 49, 39, 50, 35, 50, 72, 0, 12, 67, 193, 72, 15,
-			49, 36, 91, 35, 50, 72, 0, 12, 67, 127, 50, 15, 65, 36, 57, 71, 39, 72, 0, 12, 67, 74, 8, 15, 88, 35, 50, 35, 50, 72,
-			0, 10, 67, 64, 131, 64, 88, 36, 71, 107, 0, 11, 67, 60, 120, 15, 72, 108, 50, 35, 72, 0, 11, 67, 10, 8, 15, 108, 50, 35,
-			50, 72, 0, 0, 13, 67, 194, 3, 242, 49, 39, 50, 72, 36, 57, 36, 0, 18, 70, 192, 120, 19, 130, 2, 128, 49, 108, 50, 89, 39,
-			50, 36, 50, 47, 0, 19, 70, 181, 20, 179, 62, 2, 128, 48, 36, 51, 36, 88, 37, 72, 36, 50, 47, 0, 23, 72, 77, 23, 199, 58,
-			36, 79, 199, 48, 89, 35, 51, 65, 108, 101, 39, 51, 72, 36, 81, 37, 0, 19, 70, 68, 115, 243, 138, 211, 148, 51, 108, 72, 37, 57,
-			39, 48, 35, 101, 91, 0, 18, 70, 42, 36, 96, 126, 2, 128, 47, 39, 51, 50, 39, 65, 36, 50, 47, 0, 18, 69, 34, 36, 243, 123,
-			32, 71, 36, 84, 35, 89, 37, 55, 36, 57, 36, 0, 0, 13, 68, 80, 119, 160, 196, 91, 108, 55, 35, 50, 81, 0, 16, 70, 70, 34,
-			34, 43, 60, 0, 51, 39, 71, 39, 47, 37, 49, 0, 9, 67, 61, 145, 192, 72, 39, 108, 0, 12, 67, 42, 215, 0, 47, 39, 48, 39,
-			104, 17, 0, 21, 70, 40, 195, 243, 62, 6, 17, 47, 35, 75, 72, 37, 72, 36, 50, 35, 88, 35, 51, 0, 12, 68, 34, 44, 224, 196,
-			71, 40, 37, 50, 81, 0, 20, 70, 29, 136, 71, 70, 6, 17, 36, 88, 107, 108, 51, 36, 50, 35, 88, 35, 51, 0, 0, 10, 67, 132,
-			252, 192, 107, 39, 72, 108, 0, 14, 68, 33, 230, 76, 32, 71, 39, 55, 35, 75, 35, 71, 0, 11, 67, 29, 50, 173, 36, 89, 47, 36,
-			48, 0, 14, 69, 9, 232, 159, 206, 0, 108, 55, 39, 65, 37, 50, 0, 0, 11, 67, 136, 172, 7, 84, 39, 47, 49, 108, 0, 12, 67,
-			130, 38, 71, 50, 39, 12, 19, 35, 50, 0, 11, 67, 78, 35, 199, 89, 39, 12, 72, 108, 0, 18, 69, 77, 244, 92, 128, 240, 89, 35,
-			65, 35, 51, 104, 17, 35, 50, 72, 0, 17, 69, 77, 20, 209, 131, 16, 89, 35, 51, 89, 39, 51, 35, 50, 81, 0, 16, 69, 76, 161,
-			243, 128, 240, 89, 36, 47, 108, 57, 35, 50, 72, 0, 17, 69, 61, 235, 83, 128, 240, 72, 36, 55, 48, 35, 89, 35, 50, 72, 0, 11,
-			67, 52, 133, 0, 107, 35, 71, 35, 91, 0, 11, 67, 42, 213, 0, 47, 35, 48, 36, 91, 0, 15, 69, 40, 124, 222, 128, 240, 47, 108,
-			57, 55, 35, 50, 72, 0, 15, 69, 30, 3, 199, 72, 240, 35, 50, 72, 108, 88, 35, 72, 0, 10, 67, 29, 147, 199, 35, 19, 72, 108,
-			0, 12, 67, 28, 246, 71, 36, 72, 72, 36, 19, 108, 0, 0, 8, 66, 55, 48, 107, 35, 57, 0, 10, 67, 50, 35, 226, 75, 39, 72,
-			39, 0, 0, 12, 68, 182, 39, 176, 28, 48, 39, 55, 49, 108, 0, 13, 68, 181, 236, 240, 28, 48, 39, 55, 37, 49, 108, 0, 14, 68,
-			134, 44, 207, 28, 107, 39, 84, 36, 57, 72, 108, 0, 13, 68, 125, 236, 240, 28, 65, 36, 55, 37, 49, 108, 0, 11, 67, 114, 33, 192,
-			104, 17, 39, 84, 108, 0, 15, 68, 112, 117, 217, 28, 104, 17, 108, 47, 36, 19, 35, 50, 0, 10, 67, 81, 145, 192, 91, 39, 108, 19,
-			0, 18, 70, 70, 12, 71, 70, 12, 64, 51, 35, 50, 81, 108, 51, 35, 50, 81, 0, 17, 70, 58, 37, 7, 206, 3, 192, 101, 39, 91,
-			108, 57, 35, 50, 72, 0, 19, 70, 35, 54, 209, 137, 35, 192, 71, 37, 57, 35, 83, 51, 40, 88, 35, 72, 0, 19, 70, 33, 225, 207,
-			70, 12, 64, 71, 36, 55, 108, 72, 36, 51, 35, 50, 81, 0, 20, 72, 31, 52, 162, 120, 116, 243, 138, 0, 37, 88, 39, 55, 108, 89,
-			57, 39, 50, 0, 13, 68, 28, 246, 107, 28, 36, 72, 72, 36, 19, 108, 0, 0, 16, 69, 181, 21, 224, 206, 0, 48, 39, 51, 47, 35,
-			50, 37, 50, 0, 16, 69, 129, 19, 200, 30, 0, 50, 35, 51, 72, 36, 71, 108, 50, 0, 16, 69, 115, 52, 98, 30, 0, 104, 17, 37,
-			51, 39, 84, 108, 50, 0, 14, 69, 83, 52, 98, 30, 0, 91, 37, 51, 84, 108, 50, 0, 15, 69, 80, 161, 200, 30, 0, 91, 36, 47,
-			108, 71, 108, 50, 0, 10, 67, 66, 24, 0, 88, 36, 107, 50, 0, 0, 12, 67, 192, 162, 7, 49, 35, 47, 71, 35, 50, 0, 11, 67,
-			128, 200, 135, 50, 35, 75, 84, 108, 0, 13, 67, 112, 135, 135, 104, 17, 35, 71, 55, 35, 50, 0, 12, 67, 109, 103, 135, 83, 39, 88,
-			35, 55, 108, 0, 11, 67, 70, 35, 71, 51, 40, 107, 35, 50, 0, 20, 70, 62, 12, 199, 181, 56, 15, 72, 39, 50, 57, 108, 48, 35,
-			89, 35, 50, 72, 0, 11, 67, 29, 18, 199, 36, 51, 89, 35, 50, 0, 0, 15, 69, 206, 40, 19, 194, 32, 57, 40, 50, 36, 89, 49,
-			39, 0, 11, 67, 134, 3, 226, 107, 36, 50, 72, 40, 0, 17, 69, 127, 49, 224, 51, 48, 65, 37, 12, 108, 50, 6, 75, 37, 12, 0,
-			17, 69, 124, 165, 79, 175, 48, 65, 39, 47, 36, 89, 35, 72, 72, 37, 0, 20, 70, 65, 236, 222, 125, 19, 242, 88, 35, 55, 37, 55,
-			65, 39, 51, 36, 57, 36, 0, 10, 67, 29, 236, 98, 39, 55, 81, 40, 0, 19, 66, 33, 128, 71, 35, 12, 19, 72, 10, 35, 88, 9,
-			88, 39, 107, 51, 0, 46, 0, 14, 68, 181, 20, 225, 28, 48, 36, 51, 36, 89, 107, 108, 0, 14, 68, 124, 130, 158, 28, 65, 39, 71,
-			47, 35, 55, 108, 0, 16, 68, 83, 8, 155, 28, 91, 39, 49, 40, 12, 6, 83, 108, 12, 0, 14, 68, 76, 114, 25, 28, 89, 108, 71,
-			36, 19, 35, 50, 0, 14, 68, 68, 114, 25, 28, 51, 108, 71, 36, 19, 35, 50, 0, 14, 68, 52, 248, 143, 28, 107, 39, 72, 40, 72,
-			35, 50, 0, 14, 68, 44, 119, 139, 28, 89, 108, 55, 36, 89, 35, 50, 0, 11, 67, 35, 24, 64, 71, 36, 81, 36, 12, 0, 13, 68,
-			28, 130, 158, 28, 36, 71, 47, 36, 55, 108, 0, 10, 67, 11, 24, 64, 108, 81, 35, 107, 0, 23, 5, 217, 130, 46, 216, 184, 104, 12,
-			12, 35, 71, 55, 10, 35, 88, 9, 88, 39, 107, 51, 0, 46, 0, 11, 67, 194, 24, 0, 49, 39, 107, 35, 50, 0, 12, 67, 134, 183,
-			202, 107, 36, 65, 65, 35, 47, 0, 13, 68, 129, 129, 223, 204, 50, 36, 88, 108, 65, 37, 0, 17, 70, 127, 50, 162, 122, 252, 192, 65,
-			37, 47, 39, 55, 39, 90, 37, 0, 14, 67, 125, 87, 202, 65, 39, 89, 35, 65, 65, 35, 47, 0, 15, 67, 124, 166, 220, 65, 39, 47,
-			47, 35, 83, 36, 104, 17, 0, 12, 67, 84, 210, 10, 89, 39, 107, 71, 35, 47, 0, 12, 67, 56, 199, 138, 101, 36, 75, 55, 35, 47,
-			0, 12, 67, 49, 19, 224, 75, 39, 51, 72, 35, 50, 0, 17, 70, 42, 43, 98, 122, 252, 192, 47, 39, 48, 39, 55, 39, 90, 37, 0,
-			12, 67, 41, 18, 10, 47, 39, 51, 71, 35, 47, 0, 12, 67, 33, 28, 32, 71, 35, 51, 49, 35, 50, 0, 8, 65, 48, 6, 75, 37,
-			65, 0, 0, 15, 69, 193, 66, 179, 132, 112, 49, 35, 91, 47, 37, 107, 108, 0, 11, 67, 187, 4, 225, 76, 35, 49, 89, 36, 0, 13,
-			67, 129, 35, 225, 50, 35, 88, 35, 72, 36, 12, 0, 14, 67, 124, 163, 79, 65, 39, 47, 47, 35, 107, 36, 72, 0, 12, 67, 114, 42,
-			225, 104, 17, 39, 84, 36, 12, 0, 12, 67, 84, 247, 192, 6, 89, 35, 72, 39, 65, 0, 12, 67, 79, 10, 225, 89, 36, 49, 49, 36,
-			12, 0, 11, 67, 69, 198, 97, 51, 39, 104, 17, 36, 0, 12, 67, 63, 10, 225, 72, 35, 49, 49, 36, 12, 0, 12, 67, 61, 28, 97,
-			72, 35, 51, 81, 35, 107, 0, 13, 67, 61, 28, 33, 72, 35, 51, 35, 49, 36, 12, 0, 12, 67, 61, 26, 225, 72, 35, 51, 51, 36,
-			12, 0, 13, 67, 43, 10, 225, 6, 47, 36, 49, 49, 36, 12, 0, 11, 67, 33, 198, 97, 71, 39, 104, 17, 36, 0, 12, 67, 33, 28,
-			33, 71, 36, 51, 49, 36, 12, 0, 21, 72, 30, 39, 138, 68, 116, 226, 128, 240, 39, 55, 47, 36, 51, 108, 89, 39, 50, 72, 0, 0,
-			14, 68, 195, 49, 211, 40, 49, 37, 57, 108, 89, 35, 47, 0, 14, 68, 192, 177, 219, 40, 49, 36, 89, 108, 83, 35, 47, 0, 15, 68,
-			181, 18, 147, 40, 48, 39, 51, 39, 47, 36, 89, 47, 0, 19, 70, 133, 241, 202, 137, 235, 243, 107, 36, 65, 108, 47, 39, 55, 39, 90,
-			37, 0, 14, 68, 130, 20, 112, 128, 50, 35, 107, 51, 49, 35, 50, 0, 14, 68, 128, 241, 223, 40, 50, 36, 72, 108, 65, 35, 47, 0,
-			14, 68, 125, 145, 207, 128, 65, 35, 19, 108, 72, 36, 50, 0, 16, 69, 124, 209, 240, 127, 48, 65, 35, 107, 108, 49, 36, 65, 37, 0,
-			16, 68, 124, 170, 219, 112, 65, 39, 47, 47, 35, 83, 36, 104, 17, 0, 10, 67, 66, 34, 0, 88, 39, 12, 71, 0, 13, 68, 62, 44,
-			211, 40, 72, 36, 84, 37, 89, 47, 0, 11, 67, 62, 39, 136, 72, 39, 55, 35, 71, 0, 13, 68, 56, 116, 112, 128, 101, 108, 51, 49,
-			35, 50, 0, 13, 68, 51, 52, 91, 40, 75, 37, 51, 39, 83, 47, 0, 13, 68, 43, 52, 176, 128, 47, 37, 88, 49, 39, 50, 0, 13,
-			68, 41, 17, 211, 40, 47, 36, 51, 108, 89, 47, 0, 11, 67, 40, 210, 128, 47, 35, 107, 47, 36, 0, 19, 68, 30, 23, 243, 40, 6,
-			35, 107, 35, 65, 65, 37, 12, 4, 57, 35, 47, 0, 0, 13, 67, 207, 8, 64, 6, 57, 36, 49, 49, 36, 12, 0, 18, 70, 194, 2,
-			145, 182, 40, 0, 49, 39, 50, 47, 51, 48, 40, 35, 50, 0, 18, 68, 125, 197, 217, 132, 65, 39, 104, 17, 35, 47, 47, 35, 19, 36,
-			12, 0, 13, 67, 125, 195, 223, 65, 35, 104, 17, 72, 35, 65, 0, 15, 68, 124, 215, 235, 60, 65, 39, 107, 35, 65, 65, 35, 72, 0,
-			16, 68, 113, 225, 207, 132, 104, 17, 35, 55, 55, 108, 72, 36, 12, 0, 13, 68, 109, 21, 51, 60, 83, 35, 51, 91, 37, 72, 0, 14,
-			68, 78, 35, 207, 132, 89, 40, 72, 10, 72, 36, 107, 0, 12, 67, 57, 26, 223, 101, 39, 51, 51, 35, 65, 0, 11, 67, 48, 184, 64,
-			75, 39, 89, 89, 36, 0, 10, 67, 48, 116, 240, 75, 108, 89, 49, 0, 15, 68, 42, 36, 217, 132, 6, 47, 39, 89, 36, 19, 36, 12,
-			0, 14, 67, 41, 19, 95, 47, 35, 51, 35, 107, 107, 39, 65, 0, 10, 67, 35, 60, 64, 71, 36, 57, 81, 0, 11, 67, 33, 38, 95,
-			71, 36, 88, 35, 65, 0, 13, 68, 28, 252, 211, 132, 39, 72, 37, 89, 36, 12, 0, 0, 15, 69, 193, 251, 98, 76, 160, 49, 39, 65,
-			48, 39, 89, 47, 0, 12, 67, 193, 60, 32, 49, 39, 89, 49, 39, 50, 0, 12, 67, 193, 20, 202, 49, 39, 51, 89, 36, 47, 0, 15,
-			69, 192, 116, 145, 138, 0, 49, 108, 88, 36, 51, 40, 50, 0, 12, 67, 185, 231, 224, 76, 39, 55, 65, 35, 50, 0, 16, 69, 182, 24,
-			17, 108, 160, 48, 35, 107, 50, 51, 35, 83, 47, 0, 12, 67, 126, 40, 96, 65, 39, 12, 107, 36, 50, 0, 12, 67, 125, 19, 224, 65,
-			39, 51, 72, 35, 50, 0, 11, 67, 124, 215, 128, 65, 35, 107, 35, 55, 0, 11, 67, 88, 119, 224, 88, 108, 65, 36, 50, 0, 11, 67,
-			63, 7, 128, 72, 35, 49, 35, 55, 0, 11, 67, 60, 119, 224, 72, 108, 65, 35, 50, 0, 9, 66, 49, 32, 75, 39, 88, 19, 0, 11,
-			67, 44, 119, 224, 89, 108, 65, 36, 50, 0, 10, 67, 32, 117, 10, 71, 108, 91, 47, 0, 15, 69, 32, 115, 209, 108, 160, 71, 108, 72,
-			51, 39, 83, 47, 0, 15, 68, 29, 231, 203, 120, 39, 55, 6, 65, 35, 89, 35, 55, 0, 11, 67, 29, 19, 224, 39, 51, 72, 39, 50,
-			0, 0, 12, 67, 207, 7, 192, 6, 57, 36, 49, 39, 65, 0, 12, 67, 197, 242, 15, 81, 39, 65, 71, 35, 72, 0, 15, 69, 186, 1,
-			224, 194, 16, 76, 36, 50, 108, 50, 49, 36, 0, 11, 67, 136, 200, 97, 84, 36, 75, 107, 36, 0, 11, 67, 129, 151, 192, 50, 36, 19,
-			35, 65, 0, 15, 68, 126, 6, 43, 124, 65, 39, 50, 35, 88, 88, 35, 65, 0, 16, 69, 125, 241, 224, 102, 16, 65, 39, 65, 108, 50,
-			36, 19, 36, 0, 15, 68, 125, 150, 43, 124, 65, 39, 19, 35, 88, 88, 35, 65, 0, 15, 68, 125, 53, 235, 52, 65, 39, 89, 35, 47,
-			47, 35, 107, 0, 14, 68, 125, 33, 205, 124, 65, 39, 88, 108, 107, 36, 65, 0, 13, 67, 125, 19, 225, 65, 39, 51, 6, 72, 36, 12,
-			0, 14, 67, 124, 215, 207, 65, 39, 107, 35, 65, 65, 35, 72, 0, 15, 69, 120, 115, 17, 102, 16, 55, 108, 75, 39, 51, 19, 36, 0,
-			13, 67, 84, 247, 225, 89, 35, 72, 35, 65, 36, 12, 0, 11, 67, 80, 247, 192, 91, 39, 72, 35, 65, 0, 12, 67, 77, 28, 33, 89,
-			36, 51, 49, 36, 12, 0, 11, 67, 72, 247, 192, 88, 35, 72, 35, 65, 0, 15, 68, 61, 242, 15, 124, 72, 35, 65, 71, 36, 72, 35,
-			65, 0, 10, 67, 60, 120, 49, 72, 108, 50, 81, 0, 12, 67, 57, 19, 225, 101, 39, 51, 72, 36, 12, 0, 11, 67, 56, 247, 192, 101,
-			35, 72, 35, 65, 0, 12, 67, 48, 247, 192, 75, 35, 72, 72, 35, 65, 0, 11, 67, 42, 35, 225, 47, 40, 72, 36, 12, 0, 11, 67,
-			40, 119, 225, 47, 108, 65, 65, 36, 0, 16, 69, 33, 28, 20, 204, 240, 71, 35, 51, 49, 36, 91, 37, 72, 0, 17, 70, 29, 53, 209,
-			120, 114, 0, 39, 89, 47, 39, 51, 55, 108, 71, 0, 10, 67, 8, 247, 192, 108, 72, 35, 65, 0, 0, 14, 68, 197, 232, 176, 128, 81,
-			36, 55, 39, 49, 36, 50, 0, 17, 70, 194, 2, 145, 29, 50, 128, 49, 39, 50, 47, 51, 108, 89, 47, 0, 12, 67, 134, 3, 222, 107,
-			36, 50, 72, 36, 55, 0, 14, 67, 124, 211, 8, 65, 39, 107, 35, 75, 75, 35, 71, 0, 10, 67, 102, 37, 128, 35, 84, 35, 88, 0,
-			19, 70, 63, 52, 92, 61, 242, 128, 72, 37, 51, 104, 17, 36, 72, 65, 35, 47, 0, 11, 67, 32, 196, 128, 71, 36, 75, 39, 88, 0,
-			0, 14, 68, 199, 56, 159, 132, 81, 37, 57, 40, 65, 36, 12, 0, 13, 67, 198, 3, 223, 6, 81, 35, 50, 72, 39, 65, 0, 13, 68,
-			194, 36, 79, 132, 49, 40, 51, 72, 36, 107, 0, 12, 67, 194, 3, 223, 49, 35, 50, 72, 35, 65, 0, 12, 67, 129, 184, 95, 50, 35,
-			83, 35, 107, 65, 0, 14, 67, 125, 87, 223, 65, 39, 89, 35, 65, 65, 35, 65, 0, 15, 68, 124, 220, 31, 132, 65, 35, 107, 49, 35,
-			65, 36, 12, 0, 14, 67, 124, 167, 223, 65, 39, 47, 35, 65, 65, 36, 65, 0, 11, 67, 114, 36, 192, 104, 17, 39, 12, 89, 0, 17,
-			68, 113, 247, 31, 132, 104, 17, 39, 65, 104, 17, 39, 65, 36, 12, 0, 13, 68, 83, 52, 79, 132, 91, 37, 51, 72, 36, 107, 0, 18,
-			70, 81, 245, 51, 69, 40, 0, 91, 35, 65, 91, 37, 51, 88, 35, 50, 0, 19, 70, 77, 180, 112, 68, 248, 64, 89, 35, 83, 35, 51,
-			49, 35, 51, 72, 36, 0, 18, 70, 68, 120, 109, 122, 184, 64, 51, 108, 107, 48, 36, 55, 55, 36, 12, 0, 13, 68, 68, 119, 200, 60,
-			51, 108, 65, 71, 39, 72, 0, 10, 67, 66, 39, 0, 88, 39, 104, 17, 0, 14, 68, 56, 114, 159, 132, 101, 108, 47, 36, 65, 36, 12,
-			0, 14, 67, 41, 184, 95, 47, 35, 83, 35, 107, 107, 39, 65, 0, 11, 67, 34, 36, 223, 71, 40, 89, 35, 65, 0, 18, 70, 29, 118,
-			199, 206, 184, 64, 36, 47, 83, 108, 37, 57, 57, 36, 12, 0, 16, 70, 29, 28, 98, 43, 56, 0, 36, 51, 81, 39, 47, 37, 50, 0,
-			14, 68, 9, 36, 79, 132, 108, 88, 39, 51, 72, 36, 12, 0, 0, 19, 71, 184, 124, 240, 137, 180, 240, 204, 76, 108, 57, 49, 39, 83,
-			89, 49, 37, 0, 16, 68, 181, 18, 176, 120, 48, 39, 51, 39, 47, 39, 49, 39, 55, 0, 11, 67, 133, 18, 146, 107, 36, 51, 47, 88,
-			0, 18, 69, 125, 193, 209, 32, 160, 65, 39, 104, 17, 108, 51, 36, 71, 35, 47, 0, 14, 68, 124, 193, 223, 120, 65, 39, 75, 108, 65,
-			36, 55, 0, 16, 69, 69, 50, 145, 30, 0, 51, 36, 89, 47, 39, 51, 108, 50, 0, 14, 68, 68, 120, 77, 120, 51, 108, 107, 36, 107,
-			35, 55, 0, 11, 67, 61, 76, 0, 72, 39, 91, 35, 49, 0, 14, 68, 43, 5, 48, 120, 47, 35, 49, 91, 36, 49, 55, 0, 17, 69,
-			32, 244, 209, 80, 160, 71, 35, 72, 89, 36, 51, 36, 91, 47, 0, 14, 69, 28, 252, 211, 138, 0, 36, 72, 37, 89, 39, 50, 0, 27,
-			2, 58, 100, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 101, 35, 50, 72, 108, 50, 0, 46, 0, 16, 69, 180,
-			120, 18, 62, 16, 6, 48, 108, 50, 88, 72, 35, 107, 0, 15, 68, 127, 51, 225, 124, 65, 37, 72, 35, 6, 107, 35, 65, 0, 14, 68,
-			126, 1, 211, 192, 65, 35, 50, 108, 89, 36, 49, 0, 14, 68, 125, 49, 223, 52, 65, 39, 89, 108, 65, 36, 107, 0, 17, 69, 125, 33,
-			209, 102, 16, 65, 39, 88, 108, 51, 36, 19, 36, 12, 0, 13, 68, 109, 225, 211, 192, 83, 36, 55, 108, 89, 49, 0, 16, 69, 109, 225,
-			211, 110, 16, 83, 35, 55, 108, 89, 36, 83, 36, 0, 11, 67, 107, 52, 64, 104, 17, 36, 57, 51, 0, 10, 67, 80, 132, 64, 91, 36,
-			71, 51, 0, 10, 67, 72, 132, 64, 88, 36, 71, 51, 0, 12, 67, 56, 132, 64, 6, 101, 35, 71, 35, 51, 0, 8, 66, 53, 48, 107,
-			36, 89, 0, 11, 67, 42, 40, 19, 47, 40, 50, 36, 89, 0, 14, 68, 41, 81, 207, 124, 47, 35, 89, 108, 72, 39, 65, 0, 22, 72,
-			41, 28, 222, 136, 140, 202, 132, 112, 47, 36, 51, 37, 55, 39, 71, 37, 47, 107, 108, 0, 12, 67, 40, 132, 64, 6, 47, 35, 71, 35,
-			51, 0, 13, 68, 35, 52, 77, 124, 71, 37, 51, 35, 107, 65, 0, 15, 69, 10, 4, 202, 194, 16, 108, 50, 35, 89, 47, 49, 36, 0,
-			12, 67, 32, 132, 64, 71, 36, 71, 35, 51, 0, 48, 11, 67, 32, 132, 64, 71, 35, 71, 51, 0, 46, 0, 14, 67, 125, 178, 148, 65,
-			39, 83, 35, 47, 47, 36, 91, 0, 11, 67, 125, 164, 128, 65, 35, 104, 17, 88, 0, 10, 67, 124, 213, 128, 65, 35, 107, 88, 0, 10,
-			67, 122, 44, 98, 55, 39, 81, 39, 0, 11, 67, 112, 133, 128, 104, 17, 35, 71, 88, 0, 9, 67, 110, 36, 128, 83, 39, 88, 0, 26,
-			73, 76, 120, 27, 68, 120, 19, 205, 60, 34, 89, 108, 50, 83, 36, 51, 108, 50, 89, 37, 89, 49, 39, 12, 0, 11, 67, 68, 196, 128,
-			51, 35, 75, 35, 88, 0, 12, 67, 61, 19, 148, 72, 36, 51, 35, 101, 91, 0, 12, 67, 55, 52, 128, 107, 35, 57, 57, 36, 88, 0,
-			10, 67, 54, 36, 128, 107, 39, 12, 88, 0, 10, 67, 35, 53, 128, 71, 36, 57, 88, 0, 15, 69, 32, 119, 155, 101, 224, 71, 36, 55,
-			83, 36, 19, 55, 0, 0, 14, 67, 125, 120, 81, 65, 39, 47, 35, 107, 107, 35, 51, 0, 17, 69, 125, 50, 160, 193, 176, 65, 39, 89,
-			47, 35, 50, 49, 36, 83, 0, 12, 67, 124, 226, 17, 65, 39, 101, 71, 36, 51, 0, 12, 67, 124, 183, 209, 65, 39, 89, 65, 36, 51,
-			0, 8, 66, 121, 16, 55, 39, 51, 0, 18, 70, 109, 24, 179, 63, 52, 223, 83, 36, 51, 39, 57, 72, 37, 89, 65, 0, 8, 66, 61,
-			16, 72, 35, 51, 0, 17, 70, 60, 115, 199, 207, 52, 223, 72, 108, 72, 108, 37, 12, 89, 65, 0, 9, 66, 53, 16, 107, 39, 51, 51,
-			0, 16, 68, 42, 36, 235, 92, 47, 35, 84, 35, 89, 89, 39, 47, 36, 0, 9, 66, 61, 16, 72, 35, 51, 0, 76, 0, 24, 71, 124,
-			163, 79, 29, 229, 48, 120, 65, 39, 47, 47, 35, 107, 36, 72, 39, 91, 91, 36, 49, 55, 0, 22, 72, 111, 52, 179, 137, 232, 175, 207,
-			0, 83, 37, 88, 37, 57, 39, 55, 39, 90, 37, 49, 0, 13, 68, 76, 115, 241, 204, 89, 108, 72, 36, 81, 37, 0, 16, 69, 53, 22,
-			212, 30, 0, 107, 35, 51, 83, 36, 91, 108, 50, 0, 0, 14, 68, 198, 36, 78, 68, 81, 40, 51, 36, 101, 35, 51, 0, 17, 70, 193,
-			248, 160, 205, 55, 192, 49, 39, 65, 39, 50, 37, 89, 65, 0, 11, 67, 193, 53, 0, 49, 35, 89, 35, 91, 0, 13, 68, 135, 50, 158,
-			68, 107, 37, 47, 55, 36, 51, 0, 14, 68, 109, 24, 161, 68, 83, 39, 51, 40, 107, 35, 51, 0, 11, 67, 92, 132, 64, 47, 35, 71,
-			35, 51, 0, 18, 70, 78, 220, 207, 48, 119, 225, 89, 36, 48, 37, 72, 75, 108, 65, 36, 0, 17, 70, 76, 119, 142, 137, 19, 225, 89,
-			108, 55, 101, 39, 51, 72, 36, 0, 10, 67, 52, 132, 64, 107, 36, 71, 51, 0, 12, 67, 33, 19, 151, 71, 35, 51, 101, 35, 47, 0,
-			0, 11, 67, 181, 20, 226, 48, 39, 51, 89, 40, 0, 13, 67, 125, 55, 243, 65, 39, 89, 35, 65, 65, 108, 0, 21, 71, 52, 117, 145,
-			29, 228, 33, 128, 107, 108, 88, 36, 51, 39, 88, 88, 36, 107, 50, 0, 21, 71, 41, 19, 243, 60, 118, 240, 128, 47, 35, 51, 72, 37,
-			72, 35, 83, 49, 35, 50, 0, 16, 69, 32, 248, 136, 62, 32, 71, 39, 72, 39, 71, 39, 72, 39, 0, 24, 73, 30, 39, 138, 68, 120,
-			179, 137, 226, 128, 40, 55, 47, 51, 108, 84, 37, 57, 39, 55, 36, 47, 0, 26, 73, 29, 180, 199, 71, 20, 243, 56, 172, 115, 35, 83,
-			89, 108, 51, 81, 39, 89, 37, 101, 47, 36, 81, 37, 0, 0, 10, 67, 197, 19, 0, 81, 39, 51, 75, 0, 19, 70, 193, 225, 212, 206,
-			12, 27, 49, 36, 55, 108, 91, 37, 50, 49, 39, 83, 0, 17, 70, 193, 66, 179, 32, 120, 0, 49, 35, 91, 47, 37, 71, 108, 50, 0,
-			18, 69, 183, 54, 159, 33, 16, 48, 36, 57, 104, 17, 35, 65, 71, 35, 51, 0, 12, 67, 183, 51, 17, 48, 36, 57, 75, 36, 51, 0,
-			16, 69, 183, 49, 223, 33, 16, 48, 35, 57, 108, 65, 71, 35, 51, 0, 12, 67, 129, 66, 145, 50, 36, 91, 47, 35, 51, 0, 11, 67,
-			126, 35, 17, 65, 40, 75, 36, 51, 0, 12, 67, 125, 66, 145, 65, 39, 91, 47, 35, 51, 0, 18, 70, 79, 56, 17, 191, 52, 223, 89,
-			37, 50, 36, 51, 90, 37, 89, 65, 0, 10, 67, 41, 242, 17, 47, 35, 65, 51, 0, 15, 69, 28, 129, 200, 193, 16, 35, 71, 108, 71,
-			35, 49, 51, 0, 30, 2, 58, 111, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 65, 39, 47, 36, 35, 75, 12,
-			36, 71, 0, 46, 30, 2, 58, 111, 50, 35, 65, 108, 72, 36, 10, 76, 36, 107, 51, 36, 57, 36, 10, 65, 39, 47, 36, 35, 75, 12,
-			36, 71, 0, 46, 0, 15, 69, 199, 56, 138, 206, 0, 81, 37, 57, 39, 47, 37, 50, 0, 12, 67, 131, 2, 10, 50, 36, 49, 71, 35,
-			47, 0, 12, 67, 127, 8, 10, 65, 36, 49, 50, 35, 47, 0, 14, 68, 126, 2, 161, 204, 65, 39, 50, 47, 35, 107, 37, 0, 14, 68,
-			125, 82, 155, 204, 65, 39, 89, 47, 35, 83, 108, 0, 14, 67, 124, 210, 10, 65, 39, 107, 35, 71, 71, 35, 47, 0, 13, 67, 113, 55,
-			202, 104, 17, 36, 89, 65, 35, 47, 0, 14, 68, 109, 24, 176, 80, 83, 39, 51, 40, 49, 36, 91, 0, 12, 68, 101, 248, 143, 204, 35,
-			65, 40, 72, 37, 0, 16, 69, 79, 4, 74, 206, 0, 89, 36, 49, 51, 36, 47, 37, 50, 0, 12, 67, 68, 215, 138, 51, 36, 107, 55,
-			35, 47, 0, 16, 70, 68, 123, 83, 136, 252, 192, 51, 108, 48, 89, 39, 72, 37, 0, 13, 67, 63, 12, 128, 72, 35, 49, 49, 36, 57,
-			36, 0, 13, 68, 48, 124, 27, 80, 75, 108, 49, 35, 83, 91, 0, 15, 69, 43, 4, 98, 30, 0, 47, 35, 49, 51, 39, 108, 50, 0,
-			16, 69, 41, 23, 200, 138, 0, 47, 36, 51, 39, 65, 71, 39, 50, 0, 11, 67, 29, 230, 202, 39, 55, 83, 35, 47, 0, 12, 68, 28,
-			164, 115, 80, 39, 47, 51, 37, 91, 0, 18, 70, 8, 132, 91, 43, 28, 192, 108, 71, 51, 35, 83, 47, 36, 81, 37, 0, 0, 19, 70,
-			193, 18, 32, 205, 180, 64, 49, 35, 51, 71, 39, 50, 37, 83, 36, 51, 0, 14, 67, 124, 198, 79, 65, 39, 75, 35, 19, 19, 35, 72,
-			0, 11, 67, 57, 117, 0, 101, 35, 47, 35, 91, 0, 13, 68, 51, 50, 8, 68, 75, 37, 71, 71, 39, 51, 0, 17, 70, 28, 129, 200,
-			87, 52, 64, 35, 71, 108, 71, 35, 89, 37, 51, 0, 0, 15, 68, 181, 20, 160, 40, 48, 36, 51, 36, 88, 36, 50, 47, 0, 14, 68,
-			128, 216, 147, 40, 50, 39, 107, 40, 89, 35, 47, 0, 17, 69, 61, 71, 224, 193, 64, 72, 39, 91, 65, 35, 50, 49, 39, 91, 0, 19,
-			70, 41, 24, 138, 29, 44, 115, 47, 35, 51, 39, 47, 108, 88, 36, 81, 37, 0, 16, 69, 9, 180, 115, 129, 64, 108, 83, 35, 51, 37,
-			50, 36, 91, 0, 8, 65, 184, 6, 76, 36, 12, 0, 0, 16, 69, 192, 116, 112, 41, 16, 49, 108, 51, 36, 49, 47, 36, 51, 0, 21,
-			72, 182, 36, 179, 43, 56, 179, 77, 240, 48, 39, 88, 37, 47, 37, 84, 37, 89, 65, 0, 14, 67, 125, 51, 25, 65, 39, 89, 35, 75,
-			75, 35, 19, 0, 12, 67, 125, 19, 25, 65, 35, 51, 75, 35, 19, 0, 17, 68, 124, 163, 15, 60, 65, 39, 47, 36, 75, 35, 72, 72,
-			36, 72, 0, 10, 67, 124, 116, 240, 65, 108, 89, 49, 0, 19, 70, 112, 132, 83, 42, 40, 0, 104, 17, 35, 71, 51, 36, 89, 47, 40,
-			50, 0, 15, 68, 109, 24, 72, 60, 83, 35, 51, 35, 107, 71, 39, 72, 0, 16, 69, 82, 20, 115, 137, 16, 91, 35, 107, 51, 37, 84,
-			35, 51, 0, 16, 70, 31, 2, 7, 40, 120, 0, 36, 49, 71, 108, 47, 108, 50, 0, 0, 16, 70, 183, 52, 95, 137, 60, 192, 48, 37,
-			51, 65, 40, 89, 108, 0, 19, 70, 133, 242, 19, 43, 28, 192, 107, 35, 65, 71, 35, 89, 47, 36, 81, 37, 0, 13, 67, 109, 22, 138,
-			83, 39, 51, 104, 17, 35, 47, 0, 12, 67, 86, 6, 74, 89, 35, 50, 19, 35, 47, 0, 12, 67, 83, 12, 128, 91, 39, 49, 36, 57,
-			36, 0, 14, 69, 78, 33, 179, 108, 160, 89, 40, 19, 37, 83, 47, 0, 20, 71, 76, 119, 142, 137, 19, 241, 204, 89, 108, 55, 101, 39,
-			51, 72, 36, 81, 37, 0, 10, 67, 71, 8, 0, 51, 39, 49, 50, 0, 14, 67, 43, 12, 128, 6, 47, 36, 49, 49, 36, 57, 36, 0,
-			10, 67, 40, 115, 138, 47, 108, 101, 47, 0, 17, 70, 40, 115, 79, 136, 252, 192, 47, 108, 107, 39, 72, 40, 72, 37, 0, 11, 67, 32,
-			115, 138, 6, 71, 108, 101, 47, 0, 0, 14, 67, 124, 216, 15, 65, 39, 107, 35, 50, 50, 35, 72, 0, 26, 73, 124, 114, 25, 60, 119,
-			151, 35, 54, 97, 65, 108, 71, 35, 19, 72, 39, 47, 47, 35, 71, 37, 19, 36, 0, 17, 70, 78, 210, 135, 124, 132, 64, 89, 36, 48,
-			47, 108, 65, 71, 51, 0, 12, 67, 50, 40, 15, 75, 35, 84, 35, 50, 72, 0, 22, 71, 33, 17, 207, 69, 72, 161, 68, 71, 35, 51,
-			108, 72, 35, 51, 91, 39, 107, 35, 51, 0, 0, 21, 72, 198, 33, 224, 40, 120, 7, 126, 32, 81, 40, 108, 50, 47, 108, 50, 108, 65,
-			39, 0, 13, 67, 197, 234, 242, 81, 35, 55, 55, 36, 57, 36, 0, 13, 67, 181, 234, 242, 48, 36, 55, 55, 36, 57, 36, 0, 20, 70,
-			181, 56, 15, 204, 252, 115, 48, 35, 89, 35, 50, 72, 37, 72, 36, 81, 37, 0, 18, 70, 112, 116, 71, 81, 252, 212, 104, 17, 108, 51,
-			108, 91, 65, 37, 91, 0, 14, 67, 101, 195, 242, 19, 39, 104, 17, 72, 36, 57, 36, 0, 14, 67, 43, 10, 242, 6, 47, 36, 49, 49,
-			36, 57, 36, 0, 19, 70, 33, 225, 224, 76, 130, 128, 71, 35, 55, 108, 50, 36, 89, 71, 35, 47, 0, 0, 22, 72, 196, 119, 162, 30,
-			8, 159, 41, 16, 81, 108, 55, 84, 108, 50, 39, 65, 36, 47, 51, 0, 14, 68, 183, 56, 160, 60, 48, 36, 57, 84, 35, 50, 72, 0,
-			15, 68, 181, 23, 32, 60, 48, 39, 51, 104, 17, 35, 50, 72, 0, 19, 70, 181, 22, 209, 28, 168, 145, 48, 36, 51, 83, 39, 51, 108,
-			47, 39, 51, 0, 14, 68, 127, 52, 160, 60, 65, 37, 88, 35, 50, 35, 72, 0, 12, 67, 125, 87, 141, 65, 39, 89, 55, 36, 107, 0,
-			18, 70, 63, 8, 145, 28, 168, 145, 72, 36, 49, 39, 51, 108, 47, 39, 51, 0, 13, 68, 33, 232, 160, 60, 71, 36, 55, 39, 50, 72,
-			0, 18, 70, 29, 251, 81, 28, 168, 145, 36, 65, 48, 36, 51, 108, 47, 40, 51, 0, 0, 18, 70, 192, 120, 19, 138, 8, 10, 49, 108,
-			50, 89, 39, 50, 36, 50, 47, 0, 18, 70, 132, 119, 138, 71, 52, 202, 107, 108, 55, 47, 36, 51, 37, 89, 47, 0, 20, 71, 48, 113,
-			219, 40, 115, 241, 204, 75, 108, 39, 83, 47, 108, 72, 36, 81, 37, 0, 11, 67, 44, 228, 0, 89, 35, 101, 36, 88, 0, 14, 69, 31,
-			4, 71, 206, 0, 39, 49, 51, 108, 57, 50, 0, 14, 69, 29, 60, 17, 206, 0, 36, 89, 49, 51, 37, 50, 0, 0, 19, 71, 192, 116,
-			115, 192, 114, 162, 68, 49, 108, 51, 37, 49, 108, 47, 39, 51, 0, 11, 67, 137, 236, 71, 84, 39, 55, 81, 108, 0, 14, 69, 127, 55,
-			226, 128, 240, 65, 37, 65, 40, 50, 72, 0, 12, 67, 82, 19, 199, 91, 39, 107, 35, 72, 108, 0, 16, 69, 77, 17, 243, 128, 240, 89,
-			39, 51, 108, 57, 35, 50, 72, 0, 15, 68, 41, 70, 84, 100, 47, 35, 91, 35, 19, 91, 39, 19, 0, 20, 71, 41, 23, 243, 128, 114,
-			162, 68, 47, 36, 51, 65, 37, 50, 108, 47, 39, 51, 0, 19, 71, 30, 3, 243, 192, 114, 162, 68, 35, 50, 72, 37, 49, 108, 47, 39,
-			51, 0, 0, 8, 66, 63, 48, 72, 36, 57, 0, 8, 66, 127, 48, 65, 37, 0, 76, 0, 24, 72, 194, 6, 207, 68, 116, 243, 138, 0,
-			49, 39, 50, 83, 36, 72, 51, 108, 89, 37, 57, 39, 50, 0, 14, 68, 192, 243, 143, 28, 49, 35, 72, 101, 39, 72, 108, 0, 12, 68,
-			127, 53, 48, 28, 65, 37, 91, 49, 108, 0, 17, 70, 127, 51, 199, 130, 3, 192, 65, 37, 72, 108, 50, 35, 50, 72, 0, 20, 70, 56,
-			241, 243, 128, 119, 240, 101, 39, 72, 108, 57, 108, 50, 108, 65, 35, 49, 0, 18, 70, 41, 17, 239, 63, 60, 0, 47, 36, 51, 108, 90,
-			36, 72, 37, 49, 0, 13, 68, 31, 12, 207, 28, 35, 49, 37, 72, 35, 50, 0, 17, 70, 31, 8, 160, 137, 252, 240, 36, 49, 39, 50,
-			39, 65, 37, 49, 0, 0, 10, 67, 180, 172, 0, 48, 39, 47, 49, 0, 12, 68, 180, 119, 138, 136, 48, 108, 55, 47, 39, 0, 19, 69,
-			124, 135, 154, 206, 0, 65, 39, 71, 35, 55, 55, 36, 104, 17, 37, 50, 0, 19, 70, 68, 120, 109, 122, 188, 128, 51, 108, 107, 48, 36,
-			55, 55, 36, 57, 36, 0, 16, 69, 61, 232, 20, 206, 0, 72, 36, 55, 50, 36, 91, 37, 50, 0, 14, 68, 50, 3, 241, 204, 75, 36,
-			50, 72, 36, 81, 37, 0, 15, 69, 35, 52, 202, 138, 0, 71, 37, 89, 39, 47, 40, 50, 0, 0, 11, 67, 197, 37, 0, 81, 35, 88,
-			36, 91, 0, 23, 73, 194, 33, 222, 29, 225, 223, 182, 36, 64, 49, 40, 108, 55, 108, 55, 108, 65, 48, 40, 51, 0, 11, 67, 193, 69,
-			0, 49, 36, 91, 36, 91, 0, 22, 70, 185, 168, 15, 69, 200, 15, 39, 104, 17, 39, 50, 72, 35, 51, 104, 17, 35, 50, 72, 0, 15,
-			69, 130, 34, 136, 139, 0, 50, 39, 12, 47, 71, 40, 49, 0, 13, 67, 112, 247, 199, 104, 17, 39, 72, 35, 65, 108, 0, 12, 67, 108,
-			136, 71, 83, 35, 71, 35, 107, 108, 0, 16, 69, 77, 24, 149, 60, 112, 89, 35, 51, 39, 89, 36, 72, 108, 0, 10, 67, 30, 19, 199,
-			36, 107, 72, 108, 0, 25, 73, 9, 226, 162, 29, 50, 145, 28, 168, 147, 108, 55, 47, 39, 36, 89, 47, 36, 51, 108, 47, 40, 89, 0,
-			0, 13, 67, 124, 246, 115, 65, 39, 72, 72, 35, 19, 37, 0, 11, 67, 73, 66, 179, 88, 36, 91, 47, 37, 0, 11, 67, 62, 23, 179,
-			72, 36, 107, 55, 37, 0, 16, 69, 55, 8, 159, 43, 48, 107, 39, 49, 40, 65, 35, 47, 37, 0, 10, 67, 40, 114, 34, 47, 108, 71,
-			39, 0, 11, 67, 32, 242, 34, 71, 35, 72, 71, 40, 0, 0, 13, 68, 193, 236, 211, 28, 49, 36, 55, 37, 89, 108, 0, 10, 67, 100,
-			243, 192, 35, 72, 35, 72, 0, 14, 68, 81, 177, 225, 28, 91, 35, 83, 108, 107, 35, 50, 0, 14, 68, 80, 136, 31, 28, 91, 35, 71,
-			50, 36, 65, 108, 0, 11, 67, 69, 39, 0, 51, 36, 88, 104, 17, 0, 14, 68, 41, 241, 223, 28, 47, 35, 65, 108, 65, 35, 50, 0,
-			8, 66, 41, 240, 47, 36, 65, 0, 13, 68, 35, 53, 91, 28, 71, 37, 89, 35, 83, 108, 0, 22, 71, 35, 28, 209, 136, 130, 32, 60,
-			71, 36, 81, 37, 51, 39, 71, 36, 71, 35, 50, 72, 0, 13, 68, 29, 229, 27, 28, 39, 91, 91, 35, 83, 108, 0, 18, 70, 29, 85,
-			222, 28, 209, 192, 36, 89, 47, 36, 55, 108, 107, 35, 50, 0, 13, 68, 29, 66, 161, 28, 36, 91, 47, 36, 107, 108, 0, 0, 11, 67,
-			204, 118, 202, 6, 57, 108, 83, 47, 0, 14, 68, 181, 19, 241, 204, 48, 35, 51, 72, 36, 81, 37, 0, 18, 70, 127, 60, 17, 137, 60,
-			45, 65, 37, 49, 51, 39, 89, 49, 39, 48, 0, 13, 67, 86, 3, 220, 89, 35, 50, 72, 39, 104, 17, 0, 12, 68, 84, 241, 243, 204,
-			89, 36, 72, 108, 37, 0, 10, 67, 83, 54, 202, 91, 37, 83, 47, 0, 16, 69, 77, 24, 20, 206, 0, 89, 35, 51, 50, 36, 91, 37,
-			50, 0, 13, 67, 70, 40, 28, 51, 39, 12, 50, 35, 104, 17, 0, 14, 68, 68, 129, 224, 204, 51, 35, 71, 71, 108, 50, 37, 0, 11,
-			67, 62, 39, 128, 72, 39, 84, 35, 55, 0, 12, 67, 35, 54, 202, 71, 37, 57, 39, 83, 47, 0, 12, 67, 30, 39, 128, 6, 35, 84,
-			84, 35, 55, 0, 16, 70, 29, 50, 135, 49, 232, 128, 36, 89, 47, 108, 75, 55, 40, 0, 0, 12, 67, 126, 243, 225, 65, 39, 90, 72,
-			36, 12, 0, 18, 69, 125, 66, 145, 192, 112, 65, 39, 91, 47, 35, 51, 35, 49, 35, 50, 0, 16, 69, 124, 199, 226, 100, 112, 65, 35,
-			75, 65, 40, 19, 35, 50, 0, 13, 67, 84, 134, 161, 89, 36, 71, 104, 17, 36, 12, 0, 18, 70, 77, 28, 222, 30, 12, 7, 89, 36,
-			51, 37, 55, 108, 50, 49, 108, 0, 13, 67, 62, 39, 192, 72, 39, 6, 84, 84, 39, 65, 0, 15, 69, 32, 241, 224, 132, 112, 71, 36,
-			72, 108, 50, 107, 108, 0, 14, 69, 29, 244, 115, 192, 112, 36, 65, 51, 37, 49, 108, 0, 14, 69, 9, 244, 115, 192, 112, 108, 65, 51,
-			37, 49, 108, 0, 14, 65, 52, 6, 107, 36, 57, 36, 4, 75, 37, 65, 37, 0, 0, 19, 70, 207, 11, 71, 70, 236, 115, 57, 36, 49,
-			48, 108, 51, 76, 36, 81, 37, 0, 10, 67, 192, 114, 30, 49, 108, 71, 55, 0, 18, 70, 124, 213, 98, 120, 114, 179, 65, 35, 107, 89,
-			40, 55, 108, 47, 37, 0, 13, 67, 124, 166, 88, 65, 39, 47, 47, 35, 36, 88, 0, 16, 69, 113, 118, 71, 43, 48, 104, 17, 35, 47,
-			35, 108, 47, 37, 0, 15, 68, 112, 129, 205, 40, 104, 17, 36, 71, 108, 107, 35, 47, 0, 14, 67, 105, 230, 158, 104, 17, 39, 55, 104,
-			17, 39, 55, 0, 9, 66, 105, 224, 104, 17, 39, 55, 0, 14, 68, 85, 17, 205, 40, 89, 36, 51, 108, 107, 35, 47, 0, 8, 66, 41,
-			224, 47, 36, 55, 0, 15, 68, 41, 23, 200, 128, 47, 36, 51, 39, 65, 71, 39, 50, 0, 13, 68, 8, 132, 91, 40, 108, 71, 51, 39,
-			83, 47, 0, 0, 14, 68, 197, 44, 207, 132, 81, 39, 88, 37, 72, 36, 12, 0, 13, 68, 185, 76, 207, 132, 76, 36, 91, 37, 72, 36,
-			0, 21, 71, 181, 24, 147, 41, 28, 240, 28, 48, 39, 51, 39, 89, 47, 39, 51, 37, 49, 108, 0, 14, 67, 125, 71, 217, 65, 39, 91,
-			35, 65, 65, 35, 19, 0, 20, 70, 125, 50, 156, 205, 241, 192, 65, 39, 89, 47, 35, 104, 17, 37, 65, 35, 50, 0, 15, 68, 125, 19,
-			235, 60, 65, 39, 51, 35, 72, 72, 35, 72, 0, 14, 67, 124, 71, 155, 65, 39, 6, 35, 55, 55, 36, 83, 0, 12, 67, 104, 243, 192,
-			104, 17, 39, 72, 35, 72, 0, 15, 68, 77, 231, 200, 132, 89, 39, 55, 39, 65, 71, 36, 12, 0, 18, 70, 42, 3, 209, 9, 49, 192,
-			47, 39, 50, 72, 35, 51, 108, 89, 108, 0, 12, 68, 32, 119, 200, 132, 71, 108, 65, 71, 36, 0, 11, 67, 30, 12, 95, 35, 50, 81,
-			39, 65, 0, 11, 67, 29, 19, 240, 39, 51, 72, 35, 49, 0, 18, 70, 28, 210, 145, 29, 241, 192, 36, 107, 47, 36, 51, 108, 65, 35,
-			50, 0, 16, 70, 8, 136, 160, 124, 120, 0, 108, 71, 40, 50, 65, 108, 50, 0, 0, 11, 67, 197, 44, 0, 81, 35, 88, 35, 49, 0,
-			10, 67, 195, 60, 0, 49, 36, 57, 49, 0, 13, 68, 194, 44, 10, 120, 49, 39, 49, 47, 36, 55, 0, 17, 70, 127, 60, 34, 122, 252,
-			192, 65, 37, 49, 39, 55, 39, 90, 37, 0, 14, 68, 126, 1, 211, 32, 65, 39, 50, 108, 89, 36, 71, 0, 15, 68, 125, 226, 161, 32,
-			65, 39, 55, 47, 35, 107, 36, 71, 0, 14, 68, 125, 81, 205, 32, 65, 39, 89, 108, 107, 36, 71, 0, 14, 68, 124, 209, 211, 32, 65,
-			39, 107, 108, 89, 36, 71, 0, 15, 67, 112, 246, 160, 104, 17, 35, 72, 36, 104, 17, 35, 50, 0, 13, 67, 109, 23, 32, 83, 39, 51,
-			104, 17, 39, 50, 0, 11, 67, 101, 234, 202, 36, 55, 55, 35, 47, 0, 15, 69, 83, 54, 115, 30, 0, 91, 37, 19, 35, 57, 108, 50,
-			0, 11, 67, 69, 40, 0, 51, 35, 88, 35, 50, 0, 12, 67, 61, 20, 202, 72, 39, 51, 39, 89, 47, 0, 14, 67, 41, 184, 32, 47,
-			35, 83, 35, 50, 50, 39, 50, 0, 11, 67, 34, 236, 224, 71, 36, 76, 37, 50, 0, 21, 70, 33, 120, 145, 193, 236, 192, 71, 36, 47,
-			39, 84, 51, 36, 49, 39, 55, 55, 37, 0, 0, 22, 72, 192, 116, 135, 33, 225, 224, 192, 112, 49, 108, 88, 108, 71, 36, 55, 108, 50,
-			49, 108, 0, 22, 72, 181, 24, 147, 41, 24, 179, 192, 112, 48, 39, 51, 39, 89, 47, 39, 51, 37, 49, 108, 0, 12, 67, 132, 195, 225,
-			107, 36, 75, 72, 35, 107, 0, 11, 67, 127, 55, 161, 65, 37, 55, 36, 12, 0, 12, 67, 80, 136, 97, 91, 39, 71, 107, 36, 12, 0,
-			14, 67, 68, 252, 225, 51, 35, 72, 72, 37, 57, 36, 12, 0, 12, 67, 48, 136, 97, 75, 36, 71, 107, 36, 12, 0, 15, 68, 33, 27,
-			224, 108, 71, 36, 51, 36, 90, 50, 36, 83, 0, 14, 69, 31, 4, 243, 62, 16, 39, 49, 89, 37, 72, 36, 0, 14, 69, 29, 230, 71,
-			62, 16, 39, 55, 108, 72, 72, 36, 0, 12, 67, 29, 183, 33, 35, 83, 104, 17, 35, 107, 0, 11, 67, 28, 226, 161, 35, 101, 47, 36,
-			12, 0, 10, 67, 11, 8, 33, 108, 49, 50, 36, 0, 0, 18, 70, 135, 51, 209, 137, 235, 243, 107, 37, 72, 51, 39, 55, 39, 90, 37,
-			0, 18, 69, 125, 50, 156, 33, 224, 65, 39, 89, 47, 35, 104, 17, 71, 36, 55, 0, 14, 67, 124, 131, 222, 65, 39, 71, 35, 72, 72,
-			36, 55, 0, 14, 68, 124, 129, 243, 128, 65, 39, 71, 108, 57, 36, 50, 0, 11, 67, 109, 60, 222, 83, 39, 89, 37, 55, 0, 14, 68,
-			77, 27, 97, 128, 89, 35, 51, 48, 35, 107, 50, 0, 18, 70, 41, 23, 226, 83, 55, 243, 47, 36, 51, 65, 39, 91, 37, 65, 37, 0,
-			19, 70, 35, 55, 217, 69, 178, 128, 71, 37, 65, 35, 19, 51, 36, 83, 35, 47, 0, 21, 70, 33, 232, 15, 133, 242, 128, 71, 39, 55,
-			35, 50, 72, 107, 36, 65, 65, 35, 47, 0, 24, 73, 30, 6, 226, 69, 241, 211, 206, 40, 0, 35, 50, 83, 39, 51, 65, 108, 89, 37,
-			57, 39, 50, 0, 10, 67, 11, 11, 64, 108, 49, 36, 48, 0, 25, 7, 216, 168, 226, 128, 140, 217, 133, 71, 35, 12, 19, 72, 10, 35,
-			88, 9, 65, 37, 55, 108, 72, 0, 46, 0, 11, 67, 197, 236, 223, 81, 36, 55, 37, 65, 0, 14, 68, 194, 1, 243, 132, 49, 36, 50,
-			108, 57, 36, 12, 0, 19, 70, 182, 3, 20, 128, 136, 64, 48, 35, 50, 75, 91, 35, 50, 71, 36, 12, 0, 14, 68, 133, 17, 211, 60,
-			107, 35, 51, 108, 89, 35, 72, 0, 10, 67, 127, 4, 192, 65, 35, 49, 89, 0, 11, 67, 126, 35, 223, 65, 39, 72, 36, 65, 0, 16,
-			68, 126, 5, 220, 132, 65, 35, 50, 47, 35, 104, 17, 36, 12, 0, 14, 67, 125, 83, 217, 65, 39, 89, 35, 72, 72, 36, 19, 0, 14,
-			67, 124, 168, 95, 65, 39, 47, 47, 35, 107, 35, 65, 0, 14, 68, 63, 7, 138, 132, 72, 36, 49, 39, 55, 47, 36, 0, 13, 68, 61,
-			17, 243, 132, 72, 36, 51, 108, 57, 36, 0, 14, 68, 61, 17, 223, 60, 72, 35, 51, 108, 65, 35, 72, 0, 18, 70, 56, 120, 34, 28,
-			248, 64, 101, 108, 50, 36, 84, 108, 72, 36, 12, 0, 18, 70, 43, 12, 199, 56, 168, 64, 47, 35, 49, 57, 108, 101, 47, 36, 12, 0,
-			15, 67, 42, 40, 95, 47, 35, 6, 84, 35, 107, 107, 39, 65, 0, 15, 67, 41, 195, 223, 47, 35, 104, 17, 35, 72, 72, 39, 65, 0,
-			16, 68, 41, 180, 92, 132, 47, 35, 83, 51, 35, 104, 17, 36, 12, 0, 19, 70, 33, 227, 209, 187, 56, 0, 71, 71, 36, 55, 72, 36,
-			51, 76, 37, 50, 0, 14, 68, 32, 252, 225, 132, 71, 35, 72, 37, 107, 36, 12, 0, 15, 68, 32, 244, 92, 132, 71, 35, 72, 51, 35,
-			104, 17, 36, 0, 19, 70, 32, 114, 140, 68, 136, 64, 71, 108, 47, 35, 75, 51, 39, 71, 36, 12, 0, 19, 70, 29, 231, 7, 100, 248,
-			64, 35, 55, 104, 17, 108, 19, 36, 72, 36, 12, 0, 14, 68, 29, 60, 30, 132, 36, 89, 49, 36, 55, 36, 12, 0, 13, 68, 29, 49,
-			243, 132, 19, 36, 89, 108, 19, 36, 0, 13, 68, 29, 17, 243, 132, 19, 36, 51, 108, 19, 36, 0, 0, 15, 69, 207, 4, 71, 76, 160,
-			57, 36, 49, 51, 108, 89, 47, 0, 20, 71, 133, 241, 202, 137, 232, 175, 204, 107, 36, 65, 108, 47, 39, 55, 39, 90, 37, 0, 13, 68,
-			124, 129, 243, 120, 65, 39, 71, 108, 57, 55, 0, 16, 68, 81, 193, 220, 120, 91, 35, 104, 17, 108, 104, 17, 39, 55, 0, 15, 69, 77,
-			20, 71, 76, 160, 89, 35, 51, 51, 108, 89, 47, 0, 15, 69, 71, 49, 205, 206, 0, 51, 35, 57, 108, 107, 37, 50, 0, 24, 73, 68,
-			115, 243, 136, 124, 210, 136, 168, 173, 51, 108, 72, 37, 57, 39, 37, 88, 39, 47, 39, 48, 0, 19, 68, 52, 241, 220, 120, 107, 4, 35,
-			72, 72, 36, 10, 35, 104, 17, 35, 55, 0, 14, 68, 41, 241, 243, 120, 47, 35, 65, 108, 57, 39, 55, 0, 12, 68, 29, 50, 179, 120,
-			36, 89, 47, 37, 55, 0, 0, 18, 70, 186, 17, 209, 29, 50, 33, 76, 108, 107, 108, 51, 35, 89, 71, 36, 0, 15, 69, 183, 53, 7,
-			124, 240, 48, 37, 91, 108, 65, 35, 72, 0, 14, 68, 181, 19, 76, 124, 48, 39, 51, 107, 35, 75, 65, 0, 17, 69, 125, 113, 222, 34,
-			16, 65, 39, 47, 108, 55, 36, 71, 36, 12, 0, 17, 68, 124, 164, 96, 124, 65, 39, 47, 36, 51, 35, 50, 50, 36, 65, 0, 17, 69,
-			124, 129, 207, 122, 16, 65, 39, 71, 108, 72, 36, 55, 36, 12, 0, 16, 69, 115, 55, 162, 122, 16, 104, 17, 36, 57, 55, 40, 55, 36,
-			0, 14, 68, 89, 241, 243, 124, 88, 35, 65, 108, 57, 36, 65, 0, 15, 68, 81, 69, 79, 124, 91, 36, 91, 89, 35, 72, 39, 65, 0,
-			11, 67, 74, 5, 0, 88, 35, 50, 35, 91, 0, 12, 67, 70, 37, 0, 6, 51, 35, 84, 36, 91, 0, 19, 70, 62, 12, 199, 63, 51,
-			225, 72, 39, 50, 57, 108, 72, 37, 72, 36, 12, 0, 11, 67, 48, 213, 0, 75, 35, 107, 36, 91, 0, 16, 68, 41, 202, 207, 124, 47,
-			35, 104, 17, 35, 72, 72, 39, 65, 0, 15, 69, 35, 50, 162, 42, 16, 71, 36, 57, 47, 40, 47, 36, 0, 0, 12, 67, 207, 8, 98,
-			57, 36, 49, 107, 39, 12, 0, 8, 66, 131, 48, 50, 36, 57, 0, 14, 67, 42, 35, 84, 47, 35, 84, 35, 107, 107, 39, 91, 0, 24,
-			71, 32, 119, 30, 29, 193, 202, 112, 71, 108, 104, 17, 108, 55, 108, 104, 17, 108, 47, 39, 104, 17, 0, 23, 72, 29, 60, 51, 74, 38,
-			209, 131, 48, 19, 36, 89, 49, 37, 88, 39, 83, 36, 51, 50, 37, 0, 17, 70, 9, 21, 51, 43, 2, 128, 108, 51, 91, 37, 47, 36,
-			49, 47, 0, 9, 65, 180, 19, 6, 48, 36, 12, 0, 0, 13, 68, 192, 120, 48, 76, 49, 108, 50, 36, 49, 89, 0, 11, 67, 190, 44,
-			17, 90, 39, 49, 36, 51, 0, 12, 67, 133, 24, 81, 107, 36, 51, 107, 36, 51, 0, 15, 69, 130, 37, 51, 61, 240, 50, 39, 91, 37,
-			72, 35, 65, 0, 12, 67, 126, 12, 17, 65, 39, 50, 49, 36, 51, 0, 12, 67, 125, 148, 209, 65, 39, 19, 89, 36, 51, 0, 14, 67,
-			124, 66, 209, 65, 39, 19, 35, 89, 89, 36, 51, 0, 19, 70, 109, 24, 12, 125, 76, 0, 83, 35, 51, 35, 50, 75, 65, 36, 91, 49,
-			0, 11, 67, 82, 40, 81, 91, 39, 107, 35, 51, 0, 11, 67, 71, 51, 209, 51, 37, 72, 36, 51, 0, 18, 70, 33, 35, 222, 30, 8,
-			64, 71, 39, 88, 72, 36, 55, 108, 50, 36, 0, 20, 71, 33, 24, 146, 204, 118, 202, 132, 71, 39, 51, 40, 88, 57, 108, 83, 47, 36,
-			0, 17, 70, 32, 119, 160, 76, 136, 64, 71, 36, 50, 50, 36, 89, 71, 36, 0, 16, 70, 8, 164, 98, 183, 56, 0, 108, 47, 51, 39,
-			48, 37, 50, 0, 0, 10, 67, 131, 8, 128, 50, 36, 49, 40, 0, 15, 68, 127, 20, 240, 80, 65, 35, 81, 35, 89, 49, 39, 91, 0,
-			14, 68, 124, 194, 136, 204, 65, 39, 75, 47, 35, 71, 108, 0, 14, 69, 79, 52, 98, 30, 0, 89, 37, 51, 84, 108, 50, 0, 23, 72,
-			68, 115, 243, 137, 235, 243, 76, 160, 51, 108, 72, 37, 57, 39, 55, 39, 90, 37, 89, 47, 0, 20, 70, 34, 1, 200, 68, 124, 224, 71,
-			35, 50, 108, 10, 71, 35, 51, 10, 37, 50, 0, 0, 15, 69, 194, 36, 74, 193, 48, 49, 39, 51, 47, 36, 49, 89, 0, 14, 68, 193,
-			53, 25, 68, 49, 39, 89, 91, 36, 19, 51, 0, 15, 68, 113, 24, 155, 68, 104, 17, 36, 51, 39, 83, 36, 51, 0, 18, 70, 82, 1,
-			211, 30, 3, 225, 91, 36, 50, 108, 89, 108, 50, 72, 36, 0, 14, 68, 77, 17, 211, 68, 89, 35, 51, 108, 89, 35, 51, 0, 24, 72,
-			61, 18, 32, 63, 5, 51, 62, 16, 72, 35, 51, 71, 35, 50, 72, 49, 36, 91, 37, 72, 36, 0, 18, 70, 53, 232, 135, 29, 19, 225,
-			107, 35, 55, 84, 108, 35, 51, 72, 36, 0, 15, 67, 42, 36, 215, 47, 35, 84, 35, 89, 89, 39, 47, 36, 0, 13, 68, 32, 118, 240,
-			68, 71, 108, 83, 36, 49, 51, 0, 17, 70, 11, 2, 179, 139, 50, 161, 108, 49, 47, 37, 84, 37, 47, 36, 0, 0, 11, 67, 204, 220,
-			243, 57, 35, 107, 57, 108, 0, 20, 71, 134, 39, 226, 76, 123, 115, 128, 107, 39, 65, 39, 89, 108, 48, 57, 36, 50, 0, 18, 70, 127,
-			60, 17, 79, 11, 64, 65, 37, 49, 51, 39, 89, 49, 39, 48, 0, 14, 67, 125, 200, 51, 65, 39, 104, 17, 35, 50, 50, 37, 0, 13,
-			67, 113, 23, 51, 104, 17, 36, 51, 104, 17, 37, 0, 11, 67, 84, 210, 128, 89, 36, 107, 35, 47, 0, 14, 69, 83, 60, 7, 198, 32,
-			91, 37, 49, 108, 81, 39, 0, 12, 67, 61, 22, 212, 72, 36, 51, 35, 83, 91, 0, 10, 67, 53, 182, 0, 107, 36, 83, 88, 0, 14,
-			69, 9, 231, 199, 43, 48, 108, 55, 65, 108, 47, 37, 0, 0, 12, 67, 125, 83, 209, 65, 35, 89, 72, 35, 51, 0, 15, 68, 125, 20,
-			207, 76, 65, 36, 51, 89, 36, 72, 36, 89, 0, 22, 71, 122, 36, 135, 121, 246, 79, 132, 55, 39, 12, 88, 39, 55, 65, 36, 19, 72,
-			36, 12, 0, 11, 67, 122, 35, 209, 55, 39, 72, 36, 51, 0, 21, 71, 93, 225, 224, 80, 120, 15, 132, 47, 35, 55, 108, 50, 36, 91,
-			108, 50, 72, 36, 0, 13, 68, 71, 55, 176, 76, 51, 37, 55, 35, 49, 89, 0, 17, 69, 57, 23, 212, 133, 16, 101, 39, 51, 35, 65,
-			91, 35, 107, 51, 0, 20, 71, 48, 252, 207, 29, 230, 97, 60, 75, 35, 72, 37, 72, 39, 55, 35, 107, 72, 0, 18, 70, 41, 28, 237,
-			123, 4, 192, 47, 37, 51, 37, 48, 55, 36, 49, 89, 0, 19, 70, 35, 55, 179, 29, 19, 223, 6, 71, 37, 55, 57, 108, 51, 72, 39,
-			65, 0, 20, 71, 33, 17, 224, 60, 115, 138, 132, 71, 35, 51, 35, 50, 72, 108, 101, 47, 36, 0, 10, 67, 11, 3, 192, 108, 49, 36,
-			72, 0, 12, 68, 10, 241, 240, 76, 108, 90, 108, 49, 89, 0, 0, 11, 67, 198, 40, 0, 81, 35, 84, 35, 50, 0, 12, 67, 194, 6,
-			202, 49, 36, 50, 36, 83, 47, 0, 16, 69, 193, 225, 226, 78, 0, 49, 36, 55, 108, 84, 89, 35, 50, 0, 13, 67, 129, 68, 202, 50,
-			36, 6, 91, 35, 89, 47, 0, 21, 70, 125, 195, 223, 28, 172, 192, 65, 39, 104, 17, 35, 72, 72, 35, 65, 108, 47, 37, 0, 17, 68,
-			124, 168, 141, 80, 65, 39, 47, 36, 84, 35, 107, 107, 36, 91, 0, 11, 67, 101, 87, 202, 36, 89, 65, 35, 47, 0, 12, 67, 82, 44,
-			10, 91, 39, 12, 49, 35, 47, 0, 11, 67, 74, 12, 0, 88, 35, 50, 35, 49, 0, 19, 70, 68, 115, 243, 137, 60, 45, 51, 108, 72,
-			37, 57, 39, 89, 49, 39, 48, 0, 12, 67, 53, 71, 202, 107, 36, 91, 65, 35, 47, 0, 17, 69, 50, 2, 158, 126, 0, 75, 36, 50,
-			47, 36, 55, 65, 35, 50, 0, 10, 67, 40, 118, 202, 47, 108, 83, 47, 0, 12, 68, 32, 119, 200, 204, 71, 108, 65, 71, 37, 0, 10,
-			67, 32, 118, 202, 71, 108, 83, 47, 0, 13, 68, 28, 168, 176, 80, 40, 47, 40, 49, 36, 91, 0, 11, 68, 9, 17, 243, 204, 108, 51,
-			108, 37, 0, 13, 68, 9, 17, 223, 80, 108, 51, 108, 65, 36, 91, 0, 0, 17, 69, 193, 251, 94, 193, 48, 49, 39, 65, 48, 36, 55,
-			36, 49, 89, 0, 18, 70, 187, 52, 136, 71, 20, 64, 76, 37, 88, 71, 36, 51, 81, 36, 51, 0, 14, 68, 181, 28, 207, 68, 48, 35,
-			51, 37, 72, 35, 51, 0, 20, 70, 181, 20, 202, 83, 20, 64, 48, 35, 51, 35, 89, 47, 36, 91, 81, 35, 51, 0, 19, 70, 180, 244,
-			84, 138, 20, 64, 48, 36, 72, 35, 51, 91, 39, 107, 35, 51, 0, 15, 69, 128, 124, 222, 193, 48, 50, 108, 57, 55, 36, 49, 89, 0,
-			17, 70, 123, 50, 162, 77, 180, 64, 55, 37, 47, 39, 89, 83, 36, 51, 0, 15, 69, 62, 43, 94, 193, 48, 72, 40, 48, 55, 36, 49,
-			89, 0, 24, 72, 52, 117, 145, 61, 21, 77, 130, 16, 107, 108, 88, 36, 51, 72, 35, 51, 89, 35, 107, 50, 36, 0, 15, 68, 41, 88,
-			171, 68, 47, 35, 89, 35, 84, 84, 39, 51, 0, 18, 70, 41, 23, 226, 77, 180, 64, 47, 36, 51, 65, 39, 89, 83, 36, 51, 0, 15,
-			68, 33, 20, 177, 68, 71, 35, 51, 88, 36, 81, 35, 51, 0, 17, 70, 28, 167, 226, 77, 180, 64, 35, 47, 65, 39, 89, 83, 36, 51,
-			0, 0, 23, 72, 197, 232, 176, 128, 117, 45, 205, 224, 81, 36, 55, 39, 49, 36, 50, 36, 91, 48, 37, 55, 0, 13, 68, 197, 28, 211,
-			40, 81, 36, 51, 37, 89, 47, 0, 15, 68, 181, 20, 91, 40, 48, 39, 51, 10, 51, 35, 83, 47, 0, 14, 68, 136, 225, 223, 40, 84,
-			36, 101, 108, 65, 35, 47, 0, 14, 68, 136, 193, 225, 40, 84, 36, 75, 108, 107, 35, 47, 0, 12, 67, 126, 44, 8, 65, 39, 12, 49,
-			36, 71, 0, 12, 67, 126, 38, 88, 65, 39, 12, 19, 36, 88, 0, 16, 69, 125, 50, 139, 131, 48, 65, 39, 89, 47, 35, 89, 50, 108,
-			0, 14, 68, 88, 225, 223, 40, 88, 36, 101, 108, 65, 35, 47, 0, 13, 67, 81, 151, 178, 91, 39, 19, 55, 36, 57, 36, 0, 14, 68,
-			49, 17, 205, 40, 75, 36, 51, 108, 107, 35, 47, 0, 15, 69, 31, 56, 175, 131, 48, 37, 57, 39, 90, 36, 50, 37, 0, 0, 18, 70,
-			135, 51, 209, 137, 54, 209, 107, 37, 72, 51, 39, 89, 83, 36, 51, 0, 17, 68, 124, 164, 79, 60, 65, 39, 47, 36, 51, 35, 72, 72,
-			36, 72, 0, 18, 69, 77, 18, 135, 77, 16, 10, 89, 35, 51, 10, 47, 108, 89, 35, 51, 0, 11, 67, 52, 195, 0, 107, 39, 75, 35,
-			75, 0, 18, 70, 8, 228, 71, 120, 119, 209, 108, 101, 35, 51, 39, 55, 35, 65, 51, 0, 0, 14, 69, 192, 116, 79, 30, 0, 49, 108,
-			51, 72, 108, 50, 0, 11, 67, 181, 188, 0, 48, 39, 83, 35, 49, 0, 12, 67, 181, 20, 202, 48, 35, 51, 35, 89, 47, 0, 19, 71,
-			127, 50, 147, 136, 140, 212, 204, 65, 37, 47, 89, 39, 71, 37, 91, 37, 0, 14, 68, 125, 225, 205, 96, 65, 39, 55, 108, 107, 36, 88,
-			0, 19, 70, 124, 163, 226, 122, 252, 192, 65, 36, 47, 39, 72, 39, 55, 39, 90, 37, 0, 16, 69, 112, 244, 79, 30, 0, 104, 17, 35,
-			72, 51, 72, 108, 50, 0, 17, 69, 109, 151, 135, 42, 0, 83, 35, 19, 35, 55, 108, 47, 39, 50, 0, 16, 69, 80, 120, 83, 138, 0,
-			91, 108, 107, 89, 35, 84, 35, 50, 0, 13, 67, 49, 16, 202, 75, 39, 51, 19, 6, 35, 47, 0, 11, 67, 45, 248, 0, 89, 35, 65,
-			35, 50, 0, 18, 70, 43, 8, 34, 122, 252, 192, 47, 36, 49, 50, 39, 55, 39, 90, 37, 0, 21, 71, 41, 23, 243, 130, 39, 175, 204,
-			47, 36, 51, 65, 37, 50, 39, 55, 39, 90, 37, 0, 15, 69, 32, 116, 177, 108, 160, 71, 108, 88, 81, 39, 83, 47, 0, 18, 70, 29,
-			60, 222, 137, 60, 45, 35, 89, 37, 55, 39, 89, 49, 39, 48, 0, 0, 15, 68, 125, 18, 155, 100, 65, 39, 51, 47, 35, 83, 35, 19,
-			0, 18, 70, 63, 49, 209, 35, 4, 64, 72, 37, 57, 108, 51, 71, 35, 49, 51, 0, 20, 71, 58, 33, 225, 69, 72, 161, 68, 101, 108,
-			107, 35, 51, 91, 39, 107, 35, 51, 0, 17, 69, 49, 24, 136, 52, 176, 75, 35, 51, 51, 39, 71, 35, 107, 89, 0, 22, 71, 29, 50,
-			145, 28, 164, 219, 68, 36, 89, 47, 36, 51, 108, 47, 36, 89, 83, 36, 51, 0, 0, 17, 70, 197, 17, 219, 205, 50, 128, 81, 36, 51,
-			108, 83, 37, 89, 47, 0, 19, 70, 134, 33, 222, 32, 119, 51, 107, 39, 84, 35, 55, 71, 108, 104, 17, 37, 0, 13, 67, 126, 35, 200,
-			65, 39, 35, 19, 72, 35, 71, 0, 17, 70, 34, 35, 199, 181, 50, 128, 71, 40, 72, 108, 48, 36, 89, 47, 0, 18, 70, 9, 243, 226,
-			69, 178, 128, 108, 65, 35, 72, 39, 51, 35, 83, 47, 0, 0, 14, 68, 183, 49, 223, 60, 48, 35, 57, 108, 65, 35, 72, 0, 14, 68,
-			33, 49, 223, 60, 71, 35, 89, 108, 65, 35, 72, 0, 0, 9, 67, 134, 44, 192, 107, 39, 57, 0, 15, 69, 127, 49, 207, 206, 0, 65,
-			35, 57, 108, 72, 37, 50, 0, 16, 68, 81, 146, 15, 200, 91, 39, 19, 71, 35, 72, 36, 57, 36, 0, 11, 67, 73, 28, 0, 88, 35,
-			51, 35, 49, 0, 15, 68, 41, 243, 31, 48, 47, 35, 65, 35, 75, 65, 39, 75, 0, 10, 67, 32, 200, 128, 71, 36, 75, 40, 0, 0,
-			13, 67, 105, 82, 7, 104, 17, 35, 89, 71, 35, 50, 0, 10, 67, 60, 133, 0, 72, 36, 71, 91, 0, 0, 10, 67, 71, 50, 0, 51,
-			36, 57, 71, 0, 16, 70, 31, 56, 17, 137, 50, 128, 6, 37, 50, 51, 40, 89, 47, 0, 0, 14, 68, 194, 20, 72, 28, 49, 35, 107,
-			51, 39, 71, 108, 0, 15, 68, 61, 182, 74, 28, 72, 35, 83, 19, 35, 47, 35, 50, 0, 10, 67, 34, 209, 192, 71, 36, 48, 108, 0,
-			17, 70, 34, 33, 222, 53, 56, 0, 71, 39, 55, 107, 35, 89, 35, 50, 0, 14, 68, 29, 194, 143, 28, 36, 104, 17, 47, 36, 72, 108,
-			0, 13, 68, 28, 130, 143, 28, 36, 71, 47, 36, 72, 108, 0, 0, 9, 66, 129, 192, 50, 36, 104, 17, 0, 11, 67, 121, 168, 128, 55,
-			35, 104, 17, 84, 0, 11, 67, 62, 40, 128, 72, 36, 84, 39, 12, 0, 9, 66, 61, 192, 72, 36, 104, 17, 0, 0, 12, 67, 126, 8,
-			71, 6, 65, 36, 50, 107, 108, 0, 21, 69, 125, 195, 223, 40, 112, 65, 39, 104, 17, 35, 72, 72, 35, 65, 35, 47, 35, 50, 0, 16,
-			69, 32, 119, 148, 43, 0, 71, 108, 55, 36, 91, 47, 35, 49, 0, 0, 11, 67, 181, 226, 128, 48, 35, 55, 35, 47, 0, 14, 69, 130,
-			37, 51, 63, 48, 50, 40, 91, 37, 72, 37, 0, 19, 70, 129, 50, 153, 123, 55, 0, 50, 35, 89, 47, 35, 19, 55, 37, 104, 17, 0,
-			10, 67, 128, 114, 162, 50, 108, 47, 39, 0, 12, 67, 125, 226, 128, 65, 36, 55, 55, 35, 47, 0, 16, 69, 125, 161, 224, 122, 32, 65,
-			39, 104, 17, 108, 50, 55, 40, 0, 10, 67, 125, 66, 128, 65, 39, 91, 47, 0, 15, 67, 93, 23, 51, 47, 35, 51, 35, 104, 17, 104,
-			17, 37, 0, 11, 67, 77, 183, 179, 89, 39, 83, 55, 108, 0, 16, 69, 73, 19, 224, 34, 32, 88, 35, 51, 72, 35, 50, 71, 40, 0,
-			15, 69, 57, 23, 199, 122, 32, 101, 39, 51, 65, 108, 55, 40, 0, 13, 67, 43, 3, 243, 47, 35, 49, 35, 72, 72, 37, 0, 19, 70,
-			42, 40, 7, 123, 50, 178, 47, 39, 50, 108, 55, 37, 47, 36, 57, 36, 0, 14, 69, 34, 38, 199, 122, 32, 71, 40, 83, 108, 55, 39,
-			0, 15, 69, 32, 229, 51, 63, 48, 71, 35, 101, 91, 37, 72, 37, 0, 25, 73, 29, 251, 81, 79, 56, 160, 205, 50, 128, 35, 65, 48,
-			36, 51, 89, 37, 57, 39, 50, 37, 89, 47, 0, 17, 70, 10, 3, 226, 79, 11, 64, 108, 50, 72, 39, 89, 49, 39, 48, 0, 11, 67,
-			8, 131, 34, 108, 71, 75, 39, 12, 0, 8, 65, 56, 6, 101, 36, 12, 0, 0, 14, 68, 193, 18, 30, 28, 49, 35, 51, 71, 35, 55,
-			108, 0, 14, 68, 126, 2, 161, 28, 65, 39, 50, 47, 35, 107, 108, 0, 15, 68, 125, 194, 143, 28, 65, 39, 104, 17, 47, 35, 72, 108,
-			0, 16, 68, 125, 119, 156, 28, 65, 39, 47, 55, 35, 104, 17, 35, 50, 0, 14, 68, 124, 130, 143, 28, 65, 39, 71, 47, 35, 72, 108,
-			0, 9, 66, 113, 240, 104, 17, 39, 65, 0, 16, 68, 105, 183, 138, 28, 104, 17, 36, 83, 55, 35, 47, 35, 50, 0, 15, 68, 104, 119,
-			136, 28, 104, 17, 108, 55, 36, 71, 35, 50, 0, 12, 67, 84, 136, 64, 89, 39, 71, 71, 36, 12, 0, 11, 67, 79, 56, 64, 89, 37,
-			57, 35, 107, 0, 11, 67, 71, 56, 64, 51, 37, 57, 36, 12, 0, 11, 67, 63, 56, 64, 72, 37, 57, 36, 12, 0, 12, 67, 60, 136,
-			64, 72, 35, 71, 71, 36, 12, 0, 10, 67, 55, 56, 64, 107, 35, 57, 36, 0, 13, 68, 33, 225, 243, 28, 71, 35, 55, 108, 57, 108,
-			0, 17, 70, 32, 115, 223, 50, 40, 0, 71, 108, 72, 36, 65, 75, 40, 50, 0, 17, 70, 30, 252, 207, 132, 124, 0, 36, 90, 37, 72,
-			36, 107, 108, 49, 0, 13, 68, 29, 230, 200, 28, 35, 55, 36, 83, 71, 108, 0, 14, 68, 29, 226, 156, 28, 36, 55, 47, 36, 104, 17,
-			108, 0, 14, 68, 29, 200, 179, 28, 35, 104, 17, 84, 37, 57, 108, 0, 16, 70, 29, 59, 71, 68, 161, 192, 36, 89, 48, 108, 51, 47,
-			108, 0, 0, 11, 67, 126, 215, 128, 65, 39, 48, 39, 55, 0, 15, 67, 125, 151, 156, 65, 39, 19, 35, 55, 55, 35, 104, 17, 0, 15,
-			67, 125, 114, 28, 65, 39, 47, 35, 71, 71, 35, 104, 17, 0, 13, 68, 125, 76, 8, 136, 65, 39, 91, 49, 71, 40, 0, 16, 68, 124,
-			172, 15, 204, 65, 39, 47, 36, 49, 35, 72, 72, 37, 0, 12, 68, 80, 116, 202, 204, 91, 108, 89, 47, 37, 0, 16, 70, 78, 43, 81,
-			30, 8, 128, 89, 39, 48, 51, 108, 50, 39, 0, 13, 67, 77, 23, 10, 89, 36, 51, 104, 17, 35, 47, 0, 12, 67, 76, 199, 128, 89,
-			36, 75, 36, 55, 55, 0, 14, 68, 74, 212, 74, 204, 88, 36, 48, 36, 51, 47, 37, 0, 9, 67, 70, 39, 128, 51, 39, 55, 0, 11,
-			67, 68, 199, 128, 51, 35, 75, 39, 55, 0, 13, 68, 68, 115, 74, 204, 51, 108, 107, 35, 47, 37, 0, 16, 69, 61, 19, 138, 30, 0,
-			72, 36, 51, 35, 101, 47, 108, 50, 0, 11, 67, 57, 231, 128, 101, 36, 55, 35, 55, 0, 14, 68, 56, 132, 113, 204, 101, 39, 71, 51,
-			36, 81, 37, 0, 10, 67, 54, 39, 128, 107, 39, 12, 55, 0, 12, 68, 32, 119, 200, 136, 71, 108, 65, 71, 40, 0, 26, 73, 29, 236,
-			10, 69, 28, 211, 204, 172, 128, 36, 55, 36, 49, 47, 36, 51, 37, 89, 37, 47, 36, 57, 36, 0, 21, 70, 29, 50, 145, 33, 60, 45,
-			36, 89, 47, 36, 51, 39, 71, 39, 89, 49, 39, 48, 0, 10, 67, 28, 199, 128, 35, 75, 35, 55, 0, 0, 16, 69, 125, 50, 139, 128,
-			112, 65, 39, 89, 47, 35, 89, 50, 108, 0, 10, 67, 120, 231, 192, 55, 39, 101, 65, 0, 12, 67, 86, 39, 192, 89, 36, 84, 84, 39,
-			65, 0, 13, 67, 78, 39, 192, 6, 89, 36, 84, 84, 39, 65, 0, 11, 67, 70, 39, 192, 51, 35, 84, 35, 65, 0, 14, 67, 53, 197,
-			0, 107, 35, 104, 17, 104, 17, 35, 91, 0, 18, 69, 28, 166, 199, 112, 112, 36, 47, 47, 36, 83, 108, 104, 17, 35, 50, 0, 0, 15,
-			69, 193, 251, 71, 131, 48, 49, 39, 65, 48, 108, 50, 37, 0, 15, 69, 193, 19, 217, 123, 48, 49, 39, 51, 72, 35, 55, 37, 0, 12,
-			67, 185, 242, 30, 76, 35, 65, 71, 35, 55, 0, 15, 68, 129, 50, 51, 40, 50, 36, 89, 71, 37, 57, 35, 47, 0, 20, 68, 124, 163,
-			92, 112, 65, 39, 47, 36, 107, 35, 104, 17, 104, 17, 36, 104, 17, 0, 9, 66, 113, 224, 104, 17, 39, 55, 0, 16, 69, 85, 180, 89,
-			123, 48, 89, 35, 83, 35, 51, 35, 55, 37, 0, 8, 66, 61, 224, 72, 36, 55, 0, 8, 66, 57, 224, 101, 39, 55, 0, 14, 68, 50,
-			1, 243, 40, 75, 36, 50, 108, 57, 35, 47, 0, 15, 69, 42, 35, 209, 42, 32, 47, 40, 72, 35, 51, 47, 40, 0, 11, 67, 40, 226,
-			128, 47, 6, 35, 101, 47, 0, 0, 9, 66, 133, 176, 6, 107, 36, 83, 0, 16, 70, 130, 44, 30, 206, 40, 0, 50, 40, 49, 55, 36,
-			39, 50, 0, 14, 68, 126, 33, 204, 132, 65, 39, 84, 108, 75, 36, 107, 0, 8, 66, 125, 176, 65, 39, 83, 0, 11, 67, 115, 56, 64,
-			104, 17, 37, 57, 36, 0, 12, 67, 107, 56, 64, 104, 17, 37, 57, 36, 12, 0, 12, 67, 81, 236, 240, 91, 36, 55, 55, 37, 49, 0,
-			10, 67, 80, 136, 64, 91, 36, 71, 107, 0, 10, 67, 74, 35, 0, 88, 39, 12, 75, 0, 10, 67, 70, 248, 64, 51, 36, 90, 36, 0,
-			11, 67, 48, 136, 64, 75, 39, 71, 71, 36, 0, 11, 67, 40, 136, 64, 47, 35, 71, 35, 107, 0, 19, 70, 33, 24, 15, 196, 120, 0,
-			71, 35, 51, 35, 50, 72, 36, 81, 108, 50, 0, 10, 67, 30, 248, 64, 36, 90, 36, 12, 0, 10, 67, 11, 56, 64, 108, 57, 36, 12,
-			0, 0, 16, 70, 198, 36, 112, 30, 12, 192, 81, 40, 51, 49, 108, 50, 37, 0, 11, 67, 194, 215, 128, 49, 35, 48, 35, 55, 0, 12,
-			67, 186, 12, 224, 6, 76, 36, 50, 37, 50, 0, 11, 67, 128, 115, 160, 50, 108, 101, 39, 50, 0, 15, 68, 125, 17, 220, 32, 65, 39,
-			51, 108, 104, 17, 36, 71, 0, 12, 67, 124, 231, 128, 65, 39, 101, 36, 55, 55, 0, 11, 67, 114, 39, 128, 104, 17, 39, 12, 55, 0,
-			13, 67, 112, 114, 156, 104, 17, 108, 47, 39, 104, 17, 0, 12, 67, 73, 243, 138, 88, 39, 65, 39, 101, 47, 0, 8, 66, 61, 32, 72,
-			36, 88, 0, 18, 70, 57, 52, 98, 30, 12, 192, 101, 39, 89, 51, 35, 84, 108, 50, 37, 0, 11, 67, 56, 199, 128, 101, 36, 75, 36,
-			55, 0, 11, 67, 44, 114, 10, 89, 108, 71, 36, 47, 0, 16, 70, 43, 55, 237, 30, 12, 192, 47, 37, 65, 48, 108, 50, 37, 0, 12,
-			67, 41, 183, 160, 47, 36, 83, 55, 39, 50, 0, 16, 70, 34, 39, 211, 30, 12, 192, 71, 40, 65, 89, 108, 50, 37, 0, 18, 70, 32,
-			244, 241, 29, 236, 192, 71, 35, 72, 89, 36, 81, 108, 55, 37, 0, 10, 67, 29, 71, 128, 36, 91, 36, 55, 0, 0, 11, 67, 198, 40,
-			33, 81, 40, 50, 36, 12, 0, 23, 72, 186, 3, 202, 30, 232, 15, 40, 112, 76, 35, 50, 72, 47, 108, 76, 35, 50, 72, 47, 108, 0,
-			12, 67, 182, 183, 161, 48, 36, 55, 55, 36, 12, 0, 14, 67, 129, 183, 33, 50, 35, 83, 35, 104, 17, 36, 12, 0, 12, 67, 128, 215,
-			161, 50, 36, 107, 55, 36, 12, 0, 14, 67, 125, 136, 33, 65, 35, 88, 35, 50, 50, 36, 12, 0, 11, 67, 124, 231, 192, 65, 39, 101,
-			35, 65, 0, 11, 67, 114, 39, 192, 104, 17, 39, 12, 65, 0, 11, 67, 82, 39, 192, 91, 35, 84, 35, 65, 0, 11, 67, 80, 140, 225,
-			91, 35, 71, 37, 107, 0, 16, 68, 78, 212, 90, 124, 89, 36, 48, 35, 51, 104, 17, 35, 65, 0, 12, 67, 68, 232, 33, 51, 36, 101,
-			50, 36, 12, 0, 20, 70, 52, 117, 7, 139, 7, 135, 107, 108, 91, 108, 84, 39, 49, 35, 55, 55, 108, 0, 10, 67, 42, 40, 49, 47,
-			39, 50, 81, 0, 16, 67, 41, 183, 33, 47, 35, 83, 35, 104, 17, 104, 17, 39, 107, 0, 14, 68, 41, 17, 204, 124, 47, 35, 51, 108,
-			75, 39, 65, 0, 14, 68, 35, 52, 202, 124, 6, 71, 37, 89, 47, 39, 65, 0, 11, 67, 10, 40, 49, 108, 84, 35, 50, 81, 0, 11,
-			67, 9, 184, 15, 108, 83, 35, 50, 72, 0, 0, 14, 67, 124, 215, 158, 65, 39, 107, 35, 55, 55, 36, 55, 0, 13, 67, 87, 55, 30,
-			89, 36, 57, 104, 17, 35, 55, 0, 13, 68, 80, 114, 30, 128, 91, 108, 71, 55, 39, 50, 0, 11, 67, 72, 114, 30, 88, 108, 71, 39,
-			55, 0, 13, 68, 67, 52, 72, 40, 88, 37, 51, 35, 71, 47, 0, 12, 67, 54, 6, 30, 107, 35, 50, 88, 35, 55, 0, 13, 68, 41,
-			33, 179, 128, 47, 35, 88, 19, 37, 50, 0, 17, 69, 33, 225, 217, 112, 128, 71, 36, 55, 108, 35, 104, 17, 35, 71, 0, 17, 70, 30,
-			1, 199, 120, 215, 0, 35, 50, 35, 55, 107, 35, 104, 17, 0, 0, 12, 68, 206, 40, 12, 132, 57, 39, 50, 75, 36, 0, 14, 68, 193,
-			236, 222, 132, 49, 36, 55, 37, 55, 36, 12, 0, 15, 68, 139, 20, 96, 132, 84, 35, 81, 35, 51, 10, 50, 35, 0, 14, 68, 129, 248,
-			160, 132, 50, 36, 65, 40, 50, 36, 12, 0, 15, 68, 125, 200, 158, 132, 65, 35, 104, 17, 40, 55, 36, 12, 0, 17, 68, 125, 119, 156,
-			132, 65, 39, 47, 35, 55, 55, 35, 104, 17, 36, 0, 15, 68, 124, 194, 161, 60, 65, 39, 75, 47, 35, 107, 36, 72, 0, 13, 68, 108,
-			115, 138, 132, 83, 108, 101, 47, 36, 12, 0, 11, 67, 96, 119, 159, 88, 108, 55, 36, 65, 0, 10, 67, 79, 4, 192, 89, 36, 49, 89,
-			0, 17, 69, 77, 17, 211, 113, 176, 89, 35, 51, 39, 89, 104, 17, 39, 83, 0, 16, 70, 70, 34, 7, 43, 60, 0, 51, 39, 71, 108,
-			47, 37, 49, 0, 12, 67, 63, 55, 159, 72, 36, 57, 55, 35, 65, 0, 14, 67, 50, 24, 31, 75, 35, 107, 35, 50, 50, 35, 65, 0,
-			16, 68, 49, 228, 220, 132, 75, 36, 55, 36, 89, 104, 17, 36, 12, 0, 14, 67, 41, 151, 159, 47, 35, 19, 35, 55, 55, 39, 65, 0,
-			12, 68, 34, 44, 30, 132, 71, 40, 49, 55, 36, 0, 13, 68, 31, 20, 96, 132, 35, 81, 35, 51, 50, 35, 0, 19, 70, 29, 226, 30,
-			29, 168, 64, 39, 55, 71, 35, 55, 108, 104, 17, 36, 12, 0, 16, 68, 29, 226, 10, 132, 35, 55, 6, 71, 35, 47, 47, 36, 12, 0,
-			18, 70, 9, 56, 148, 204, 163, 192, 108, 89, 39, 91, 36, 57, 47, 36, 72, 0, 0, 10, 67, 197, 72, 0, 81, 39, 91, 50, 0, 21,
-			71, 184, 115, 209, 61, 17, 224, 204, 76, 108, 72, 39, 51, 72, 35, 51, 108, 50, 37, 0, 19, 70, 109, 24, 177, 64, 117, 10, 83, 39,
-			51, 40, 81, 39, 88, 108, 91, 47, 0, 13, 67, 52, 172, 192, 4, 107, 35, 6, 47, 47, 108, 0, 12, 67, 33, 24, 18, 71, 39, 51,
-			39, 50, 88, 0, 14, 69, 32, 116, 159, 30, 0, 71, 108, 88, 65, 108, 50, 0, 13, 69, 29, 227, 235, 206, 0, 39, 72, 72, 37, 50,
-			0, 19, 70, 29, 55, 162, 126, 37, 32, 36, 89, 55, 39, 65, 39, 12, 91, 36, 50, 0, 20, 72, 9, 28, 51, 137, 40, 179, 207, 0,
-			108, 51, 49, 36, 39, 88, 39, 37, 49, 0, 0, 17, 69, 197, 228, 243, 130, 16, 81, 39, 55, 36, 89, 37, 50, 36, 12, 0, 15, 69,
-			197, 28, 199, 128, 240, 81, 36, 51, 57, 108, 50, 72, 0, 15, 69, 185, 243, 135, 122, 16, 76, 35, 65, 101, 108, 55, 36, 0, 16, 69,
-			181, 52, 71, 130, 16, 48, 36, 89, 35, 51, 108, 50, 36, 0, 16, 69, 181, 24, 135, 130, 16, 48, 35, 51, 84, 108, 50, 36, 12, 0,
-			11, 67, 180, 244, 64, 48, 36, 72, 35, 51, 0, 18, 70, 180, 124, 8, 28, 226, 161, 48, 108, 49, 71, 108, 101, 47, 36, 12, 0, 16,
-			69, 134, 36, 199, 130, 16, 107, 35, 84, 35, 89, 108, 50, 36, 0, 12, 67, 133, 23, 211, 107, 36, 51, 65, 36, 89, 0, 11, 67, 132,
-			244, 64, 107, 35, 72, 35, 51, 0, 10, 67, 132, 120, 19, 107, 108, 50, 89, 0, 16, 69, 129, 65, 211, 42, 16, 50, 36, 91, 35, 89,
-			47, 36, 12, 0, 11, 67, 127, 20, 64, 65, 35, 81, 35, 51, 0, 14, 68, 127, 1, 222, 124, 65, 39, 49, 108, 55, 36, 65, 0, 15,
-			67, 125, 195, 211, 65, 39, 104, 17, 35, 72, 72, 35, 89, 0, 17, 69, 125, 84, 71, 130, 16, 65, 39, 89, 36, 51, 51, 108, 50, 36,
-			0, 8, 66, 125, 48, 65, 36, 89, 0, 19, 70, 109, 23, 199, 123, 50, 161, 83, 39, 51, 65, 108, 55, 37, 47, 36, 12, 0, 16, 69,
-			108, 120, 19, 114, 16, 83, 108, 50, 39, 89, 104, 17, 36, 0, 12, 67, 78, 5, 0, 89, 36, 50, 50, 35, 91, 0, 10, 67, 76, 120,
-			19, 89, 108, 50, 89, 0, 18, 69, 66, 36, 160, 114, 16, 88, 40, 88, 35, 50, 35, 104, 17, 36, 12, 0, 13, 68, 62, 36, 202, 124,
-			72, 40, 89, 47, 35, 65, 0, 17, 69, 61, 19, 199, 130, 16, 72, 39, 51, 72, 108, 50, 36, 12, 36, 0, 16, 69, 49, 38, 135, 122,
-			16, 75, 36, 88, 104, 17, 108, 55, 36, 0, 18, 70, 42, 40, 7, 123, 50, 161, 47, 39, 50, 108, 55, 37, 47, 36, 12, 0, 14, 68,
-			41, 17, 206, 124, 47, 35, 51, 108, 101, 39, 65, 0, 15, 69, 29, 180, 135, 204, 240, 35, 83, 88, 108, 57, 35, 72, 0, 0, 8, 66,
-			139, 48, 84, 36, 57, 0, 16, 69, 137, 23, 243, 81, 224, 84, 36, 51, 65, 37, 91, 36, 55, 0, 21, 71, 135, 51, 209, 139, 4, 72,
-			128, 107, 37, 72, 51, 39, 49, 35, 51, 71, 39, 50, 0, 9, 66, 83, 48, 91, 36, 57, 19, 0, 10, 67, 77, 18, 0, 89, 39, 51,
-			71, 0, 16, 69, 48, 132, 70, 205, 224, 75, 36, 71, 51, 35, 19, 37, 55, 0, 12, 67, 41, 28, 20, 47, 35, 51, 49, 36, 91, 0,
-			11, 67, 33, 50, 162, 71, 35, 89, 47, 40, 0, 0, 18, 70, 197, 228, 202, 30, 8, 64, 81, 39, 55, 36, 89, 47, 108, 50, 36, 0,
-			17, 70, 181, 225, 209, 204, 168, 64, 48, 39, 55, 108, 51, 37, 47, 36, 0, 18, 70, 135, 23, 202, 30, 8, 64, 107, 36, 81, 65, 35,
-			47, 108, 50, 36, 0, 18, 70, 130, 34, 17, 30, 8, 64, 50, 39, 12, 71, 35, 51, 108, 50, 36, 0, 14, 67, 127, 3, 209, 65, 39,
-			49, 35, 72, 72, 35, 51, 0, 12, 67, 126, 2, 17, 65, 35, 50, 71, 35, 51, 0, 20, 70, 125, 40, 145, 30, 8, 64, 65, 39, 88,
-			35, 84, 84, 36, 51, 108, 50, 36, 0, 18, 70, 124, 120, 81, 30, 8, 64, 65, 108, 107, 36, 51, 108, 50, 36, 12, 0, 20, 70, 113,
-			24, 23, 206, 8, 64, 104, 17, 35, 51, 35, 50, 47, 37, 50, 36, 12, 0, 17, 70, 109, 22, 226, 70, 248, 64, 83, 36, 51, 83, 39,
-			51, 90, 36, 0, 18, 70, 83, 8, 135, 207, 56, 64, 91, 36, 49, 84, 108, 37, 12, 57, 36, 0, 12, 67, 81, 67, 209, 91, 36, 91,
-			72, 35, 51, 0, 12, 67, 78, 216, 81, 89, 36, 48, 36, 107, 51, 0, 12, 67, 78, 2, 145, 89, 36, 50, 47, 36, 51, 0, 12, 67,
-			76, 162, 17, 89, 36, 47, 35, 71, 51, 0, 18, 70, 75, 52, 112, 30, 8, 64, 88, 37, 51, 35, 49, 108, 50, 36, 12, 0, 21, 71,
-			69, 67, 224, 204, 118, 202, 132, 51, 39, 91, 72, 50, 35, 57, 108, 83, 47, 36, 0, 18, 70, 61, 236, 209, 30, 8, 64, 72, 35, 55,
-			37, 51, 108, 50, 36, 12, 0, 14, 67, 40, 220, 209, 47, 35, 107, 35, 57, 57, 39, 51, 0, 15, 69, 35, 24, 179, 205, 240, 71, 36,
-			81, 40, 37, 12, 65, 0, 10, 67, 35, 4, 192, 71, 39, 49, 89, 0, 18, 70, 34, 1, 241, 137, 76, 0, 71, 35, 50, 108, 81, 40,
-			91, 35, 49, 0, 17, 69, 33, 20, 199, 129, 240, 71, 36, 51, 36, 89, 108, 50, 35, 65, 0, 19, 70, 32, 116, 199, 33, 200, 64, 71,
-			108, 89, 108, 71, 36, 104, 17, 36, 12, 0, 18, 70, 29, 50, 162, 30, 8, 64, 39, 89, 47, 39, 84, 108, 50, 36, 12, 0, 0, 19,
-			70, 192, 248, 138, 128, 135, 128, 49, 35, 72, 40, 47, 35, 50, 71, 35, 55, 0, 13, 68, 181, 225, 202, 136, 48, 36, 55, 108, 47, 39,
-			0, 10, 67, 130, 44, 192, 6, 50, 39, 37, 0, 11, 67, 78, 8, 0, 89, 39, 50, 35, 50, 0, 12, 68, 62, 36, 202, 204, 72, 40,
-			89, 47, 37, 0, 16, 70, 29, 52, 71, 207, 55, 128, 36, 89, 51, 108, 37, 12, 55, 0, 13, 68, 9, 4, 72, 136, 108, 88, 35, 51,
-			71, 40, 0, 0, 11, 67, 192, 244, 64, 49, 36, 72, 36, 51, 0, 15, 69, 192, 116, 79, 193, 48, 49, 108, 51, 72, 36, 49, 89, 0,
-			11, 67, 139, 20, 64, 84, 35, 81, 35, 51, 0, 11, 67, 131, 20, 64, 50, 36, 81, 35, 51, 0, 15, 68, 125, 161, 243, 68, 65, 39,
-			104, 17, 108, 57, 36, 51, 0, 19, 70, 124, 252, 202, 68, 120, 33, 65, 36, 72, 37, 47, 51, 108, 50, 36, 12, 0, 14, 68, 70, 3,
-			8, 68, 51, 35, 50, 75, 71, 35, 51, 0, 24, 72, 63, 56, 135, 70, 8, 148, 42, 16, 72, 37, 84, 108, 51, 50, 36, 84, 36, 91,
-			47, 36, 12, 0, 18, 70, 41, 241, 223, 60, 120, 33, 47, 35, 65, 108, 65, 72, 108, 50, 36, 0, 15, 68, 41, 161, 243, 68, 47, 35,
-			104, 17, 108, 57, 39, 51, 0, 14, 68, 34, 1, 207, 68, 71, 35, 50, 108, 72, 36, 51, 0, 11, 67, 76, 212, 64, 89, 36, 107, 51,
-			0, 48, 12, 67, 76, 212, 64, 89, 35, 107, 35, 51, 0, 46, 0, 11, 67, 197, 226, 128, 81, 39, 55, 35, 47, 0, 12, 67, 197, 19,
-			212, 81, 35, 51, 72, 36, 91, 0, 9, 67, 130, 34, 128, 50, 39, 47, 0, 14, 68, 109, 17, 243, 88, 83, 35, 51, 108, 57, 36, 88,
-			0, 11, 67, 101, 232, 51, 35, 55, 35, 50, 37, 0, 11, 67, 101, 226, 128, 36, 55, 55, 35, 47, 0, 11, 67, 80, 135, 179, 91, 36,
-			71, 55, 37, 0, 11, 67, 68, 119, 212, 51, 108, 65, 36, 91, 0, 15, 68, 41, 244, 112, 72, 47, 35, 65, 35, 51, 49, 39, 88, 0,
-			0, 16, 69, 128, 200, 135, 197, 16, 50, 35, 75, 84, 108, 81, 35, 51, 0, 15, 67, 125, 198, 81, 65, 39, 104, 17, 35, 19, 19, 35,
-			51, 0, 12, 67, 125, 60, 81, 65, 36, 89, 81, 35, 51, 0, 16, 69, 125, 40, 147, 109, 16, 65, 36, 88, 39, 89, 83, 36, 51, 0,
-			16, 69, 122, 252, 226, 129, 16, 55, 36, 90, 57, 39, 50, 36, 51, 0, 22, 71, 108, 228, 71, 120, 248, 158, 132, 83, 35, 101, 51, 39,
-			72, 72, 39, 12, 55, 36, 12, 0, 18, 70, 70, 3, 8, 68, 120, 0, 51, 35, 50, 75, 71, 35, 51, 108, 50, 0, 11, 67, 63, 60,
-			81, 72, 37, 81, 35, 51, 0, 21, 71, 61, 19, 223, 128, 241, 224, 132, 72, 35, 51, 72, 65, 35, 50, 72, 108, 50, 36, 0, 19, 69,
-			52, 241, 240, 45, 16, 107, 35, 72, 72, 36, 10, 35, 49, 89, 35, 51, 0, 21, 71, 40, 136, 112, 29, 17, 224, 132, 47, 35, 71, 35,
-			107, 49, 108, 51, 108, 50, 36, 0, 14, 67, 40, 114, 209, 47, 35, 19, 35, 89, 89, 39, 51, 0, 14, 67, 40, 50, 209, 47, 35, 19,
-			35, 89, 89, 39, 51, 0, 12, 67, 33, 28, 81, 71, 36, 51, 81, 36, 51, 0, 18, 69, 32, 114, 148, 193, 16, 71, 108, 47, 35, 91,
-			35, 49, 49, 39, 51, 0, 15, 69, 31, 8, 135, 61, 16, 36, 49, 84, 108, 72, 39, 51, 0, 17, 70, 29, 236, 98, 71, 50, 159, 35,
-			55, 81, 39, 51, 37, 47, 65, 0, 16, 69, 28, 167, 211, 109, 16, 35, 47, 65, 39, 89, 83, 36, 51, 0, 16, 69, 28, 132, 84, 133,
-			16, 35, 71, 35, 51, 91, 35, 107, 51, 0, 0, 14, 68, 197, 178, 160, 204, 81, 39, 83, 47, 35, 50, 37, 0, 16, 70, 196, 116, 71,
-			128, 172, 192, 81, 108, 51, 108, 50, 47, 37, 0, 10, 67, 194, 38, 202, 49, 40, 83, 47, 0, 15, 69, 192, 116, 200, 30, 0, 49, 108,
-			89, 36, 71, 108, 50, 0, 18, 70, 186, 34, 15, 76, 172, 192, 76, 40, 71, 10, 72, 35, 89, 47, 37, 0, 13, 68, 183, 53, 48, 80,
-			48, 37, 91, 49, 36, 91, 0, 15, 69, 181, 24, 138, 138, 0, 48, 39, 51, 39, 47, 39, 50, 0, 18, 69, 124, 167, 209, 193, 32, 65,
-			39, 47, 36, 65, 35, 51, 49, 36, 88, 0, 11, 67, 75, 56, 10, 88, 37, 50, 35, 47, 0, 12, 68, 68, 124, 72, 204, 51, 108, 81,
-			71, 37, 0, 16, 68, 53, 193, 224, 204, 107, 35, 104, 17, 104, 17, 108, 50, 37, 0, 8, 65, 188, 6, 90, 36, 12, 0, 0, 14, 68,
-			129, 65, 207, 68, 50, 36, 91, 108, 72, 39, 51, 0, 15, 68, 86, 8, 136, 68, 89, 36, 50, 39, 12, 71, 35, 51, 0, 11, 67, 77,
-			21, 0, 89, 35, 51, 35, 91, 0, 22, 72, 77, 17, 219, 68, 116, 135, 130, 16, 89, 35, 51, 35, 83, 51, 108, 88, 108, 50, 36, 0,
-			11, 67, 57, 181, 0, 101, 35, 83, 35, 91, 0, 24, 72, 56, 241, 237, 78, 3, 199, 130, 16, 101, 39, 72, 108, 48, 35, 89, 35, 50,
-			72, 108, 50, 36, 0, 22, 72, 34, 33, 222, 134, 36, 199, 130, 16, 71, 39, 55, 107, 35, 84, 35, 89, 108, 50, 36, 0, 14, 69, 32,
-			119, 153, 193, 48, 71, 36, 55, 35, 49, 89, 0, 0, 13, 68, 197, 60, 206, 40, 81, 39, 89, 37, 101, 47, 0, 13, 68, 194, 36, 96,
-			40, 49, 39, 51, 50, 36, 47, 0, 10, 67, 193, 226, 128, 49, 39, 55, 47, 0, 19, 70, 183, 49, 223, 33, 28, 20, 48, 35, 57, 65,
-			71, 35, 51, 49, 39, 91, 0, 14, 68, 181, 27, 84, 40, 48, 39, 51, 48, 39, 91, 47, 0, 17, 69, 180, 120, 145, 115, 48, 48, 108,
-			84, 35, 51, 35, 104, 17, 37, 0, 15, 69, 139, 52, 71, 205, 64, 84, 37, 51, 108, 57, 36, 91, 0, 10, 67, 137, 226, 128, 84, 39,
-			55, 47, 0, 14, 68, 132, 241, 243, 40, 107, 36, 72, 108, 57, 35, 47, 0, 15, 68, 125, 148, 91, 40, 65, 35, 19, 51, 36, 83, 35,
-			47, 0, 17, 69, 125, 50, 154, 131, 48, 65, 39, 89, 47, 35, 104, 17, 50, 37, 0, 14, 68, 113, 17, 243, 40, 104, 17, 35, 51, 108,
-			35, 47, 0, 14, 68, 83, 1, 243, 40, 91, 36, 49, 108, 57, 35, 47, 0, 15, 69, 82, 24, 135, 131, 48, 91, 35, 107, 84, 108, 50,
-			37, 0, 15, 69, 78, 6, 226, 131, 48, 89, 35, 65, 83, 39, 50, 37, 0, 14, 68, 70, 33, 243, 40, 51, 36, 84, 108, 57, 35, 47,
-			0, 19, 70, 63, 20, 81, 204, 226, 179, 72, 36, 81, 35, 51, 51, 37, 101, 47, 37, 0, 13, 67, 61, 72, 50, 72, 36, 91, 50, 36,
-			57, 36, 0, 16, 69, 61, 50, 159, 34, 32, 72, 35, 89, 47, 35, 65, 71, 40, 0, 14, 68, 57, 72, 160, 40, 101, 39, 91, 40, 50,
-			35, 47, 0, 14, 68, 53, 241, 243, 40, 107, 36, 65, 108, 57, 35, 47, 0, 0, 23, 70, 124, 215, 207, 49, 150, 209, 65, 39, 107, 35,
-			65, 65, 35, 72, 75, 35, 19, 83, 35, 51, 0, 19, 70, 124, 164, 76, 124, 120, 0, 65, 39, 47, 35, 51, 75, 36, 65, 108, 50, 0,
-			21, 71, 41, 252, 211, 42, 44, 30, 76, 47, 36, 65, 37, 89, 47, 39, 49, 36, 55, 89, 0, 16, 69, 33, 225, 199, 45, 16, 71, 36,
-			55, 108, 35, 89, 35, 51, 0, 18, 70, 33, 147, 199, 73, 136, 81, 71, 35, 72, 35, 88, 88, 39, 107, 51, 0, 17, 70, 29, 228, 222,
-			92, 120, 0, 39, 89, 89, 39, 55, 47, 108, 50, 0, 0, 15, 68, 207, 17, 224, 200, 57, 36, 81, 108, 50, 36, 57, 36, 0, 15, 68,
-			197, 44, 224, 200, 81, 39, 88, 37, 50, 36, 57, 36, 0, 16, 69, 193, 236, 207, 74, 0, 49, 36, 55, 37, 72, 88, 35, 50, 0, 15,
-			68, 129, 248, 160, 200, 50, 36, 65, 40, 50, 36, 57, 36, 0, 18, 69, 126, 33, 219, 112, 160, 65, 39, 84, 108, 83, 36, 104, 17, 35,
-			47, 0, 17, 68, 126, 5, 220, 200, 65, 35, 50, 47, 35, 104, 17, 36, 57, 36, 0, 18, 69, 125, 193, 226, 124, 160, 65, 39, 104, 17,
-			108, 84, 36, 65, 35, 47, 0, 18, 68, 125, 48, 222, 200, 65, 35, 89, 10, 6, 35, 12, 55, 36, 57, 36, 0, 12, 67, 109, 51, 74,
-			83, 39, 89, 107, 35, 47, 0, 16, 69, 109, 24, 142, 108, 160, 83, 39, 51, 40, 101, 39, 83, 47, 0, 19, 70, 109, 17, 219, 194, 12,
-			192, 83, 35, 51, 108, 83, 36, 49, 35, 50, 37, 0, 14, 68, 102, 33, 220, 32, 35, 84, 108, 104, 17, 36, 71, 0, 12, 67, 77, 24,
-			14, 89, 35, 51, 50, 35, 101, 0, 11, 67, 57, 184, 0, 101, 35, 83, 35, 50, 0, 15, 69, 55, 7, 209, 30, 0, 107, 39, 49, 65,
-			51, 108, 50, 0, 17, 70, 40, 231, 241, 30, 12, 192, 47, 39, 101, 65, 81, 108, 50, 37, 0, 15, 68, 34, 28, 224, 200, 71, 36, 107,
-			37, 50, 36, 57, 36, 0, 18, 70, 34, 3, 243, 192, 172, 192, 71, 36, 50, 36, 72, 37, 49, 47, 37, 0, 19, 70, 33, 23, 17, 30,
-			12, 192, 71, 35, 51, 104, 17, 35, 51, 108, 50, 37, 0, 15, 69, 30, 40, 34, 112, 160, 40, 50, 84, 35, 104, 17, 47, 0, 11, 67,
-			29, 188, 10, 36, 83, 36, 49, 47, 0, 15, 68, 29, 60, 30, 200, 36, 89, 49, 36, 55, 36, 57, 36, 0, 0, 10, 67, 180, 229, 0,
-			48, 35, 101, 91, 0, 10, 67, 180, 120, 15, 48, 108, 50, 72, 0, 10, 67, 124, 120, 15, 65, 108, 50, 72, 0, 12, 67, 78, 3, 15,
-			89, 36, 50, 75, 36, 72, 0, 27, 73, 33, 232, 15, 181, 24, 135, 72, 120, 33, 71, 39, 55, 35, 50, 72, 48, 35, 51, 84, 108, 88,
-			108, 50, 36, 0, 14, 68, 30, 12, 94, 192, 35, 50, 81, 39, 55, 35, 49, 0, 11, 67, 10, 40, 15, 108, 84, 35, 50, 72, 0, 0,
-			16, 69, 120, 119, 208, 132, 128, 55, 108, 65, 35, 88, 107, 35, 71, 0, 19, 69, 66, 36, 160, 115, 32, 88, 40, 88, 35, 50, 35, 104,
-			17, 36, 57, 36, 0, 18, 70, 57, 252, 209, 76, 120, 51, 101, 35, 65, 37, 51, 89, 108, 50, 37, 0, 13, 67, 49, 50, 178, 75, 39,
-			89, 47, 36, 57, 36, 0, 17, 70, 35, 52, 243, 193, 226, 128, 71, 37, 89, 37, 49, 55, 36, 47, 0, 12, 68, 9, 252, 206, 40, 108,
-			65, 37, 101, 47, 0, 0, 14, 68, 131, 56, 159, 60, 50, 35, 57, 40, 65, 35, 72, 0, 14, 68, 101, 193, 243, 60, 35, 104, 17, 108,
-			57, 36, 72, 0, 14, 68, 68, 129, 243, 60, 51, 39, 71, 108, 57, 35, 72, 0, 11, 68, 58, 33, 243, 60, 101, 108, 57, 72, 0, 9,
-			67, 30, 33, 192, 36, 84, 108, 0, 19, 70, 29, 236, 19, 30, 3, 209, 35, 55, 36, 49, 89, 108, 50, 72, 36, 51, 0, 0, 14, 69,
-			192, 119, 209, 30, 0, 49, 108, 65, 51, 108, 50, 0, 20, 71, 122, 34, 51, 30, 236, 202, 204, 55, 40, 71, 37, 57, 108, 76, 37, 47,
-			37, 0, 17, 69, 113, 227, 209, 30, 0, 104, 17, 39, 55, 72, 39, 51, 108, 50, 0, 11, 67, 77, 28, 0, 89, 35, 51, 35, 49, 0,
-			20, 70, 73, 244, 202, 30, 12, 128, 88, 36, 65, 36, 89, 47, 108, 50, 36, 57, 36, 0, 19, 70, 61, 236, 209, 30, 12, 128, 72, 35,
-			55, 37, 51, 108, 50, 36, 57, 36, 0, 0, 14, 69, 197, 17, 243, 204, 240, 81, 36, 51, 108, 37, 72, 0, 16, 69, 131, 56, 148, 128,
-			240, 50, 37, 57, 40, 91, 35, 50, 72, 0, 16, 69, 129, 72, 162, 128, 240, 50, 35, 91, 35, 84, 35, 50, 72, 0, 17, 69, 125, 148,
-			7, 123, 0, 65, 35, 19, 35, 88, 108, 55, 36, 49, 0, 15, 69, 76, 161, 243, 204, 240, 89, 36, 47, 108, 37, 12, 72, 0, 0, 11,
-			67, 197, 19, 226, 81, 36, 51, 72, 40, 0, 22, 72, 186, 17, 209, 31, 56, 135, 131, 48, 76, 108, 107, 108, 51, 36, 57, 84, 108, 50,
-			37, 0, 9, 66, 135, 48, 107, 36, 12, 57, 0, 11, 67, 133, 19, 226, 107, 35, 51, 72, 39, 0, 8, 66, 71, 48, 51, 36, 57, 0,
-			11, 67, 53, 226, 0, 107, 35, 55, 35, 71, 0, 13, 67, 41, 147, 243, 47, 35, 19, 35, 72, 72, 37, 0, 21, 72, 30, 220, 207, 126,
-			39, 162, 191, 48, 36, 48, 37, 72, 65, 39, 55, 39, 90, 37, 0, 0, 26, 73, 136, 115, 15, 29, 229, 17, 31, 53, 192, 84, 108, 75,
-			36, 72, 39, 91, 91, 35, 51, 108, 57, 36, 47, 0, 15, 68, 113, 28, 200, 28, 104, 17, 35, 51, 37, 71, 35, 50, 0, 11, 68, 58,
-			44, 212, 28, 101, 37, 91, 108, 0, 17, 70, 58, 33, 225, 69, 40, 0, 101, 108, 107, 35, 51, 88, 35, 50, 0, 18, 70, 9, 60, 199,
-			78, 12, 64, 108, 89, 37, 57, 108, 89, 35, 50, 81, 0, 0, 25, 73, 197, 178, 135, 68, 244, 95, 30, 12, 192, 81, 39, 83, 47, 108,
-			51, 72, 35, 51, 65, 108, 50, 37, 0, 16, 69, 193, 23, 222, 206, 0, 49, 36, 51, 36, 65, 55, 37, 50, 0, 25, 73, 69, 178, 135,
-			68, 244, 95, 30, 12, 192, 51, 35, 83, 47, 108, 51, 72, 35, 51, 65, 108, 50, 37, 0, 0, 11, 67, 79, 8, 7, 89, 39, 49, 50,
-			108, 0, 10, 67, 74, 40, 7, 88, 39, 50, 108, 0, 13, 67, 69, 183, 7, 51, 39, 83, 35, 104, 17, 108, 0, 19, 69, 53, 204, 220,
-			40, 112, 107, 35, 104, 17, 37, 104, 17, 35, 47, 35, 50, 0, 11, 67, 29, 86, 135, 36, 89, 104, 17, 108, 0, 0, 16, 69, 197, 178,
-			162, 198, 32, 81, 39, 83, 47, 6, 39, 81, 40, 0, 11, 67, 197, 66, 128, 81, 6, 35, 91, 47, 0, 10, 67, 133, 66, 128, 107, 35,
-			91, 47, 0, 11, 67, 128, 230, 115, 50, 35, 101, 35, 19, 0, 14, 67, 125, 168, 51, 65, 39, 104, 17, 35, 50, 50, 37, 0, 11, 67,
-			125, 20, 243, 65, 36, 51, 89, 37, 0, 25, 72, 63, 56, 135, 70, 8, 148, 43, 32, 72, 37, 84, 108, 51, 50, 36, 84, 36, 91, 47,
-			36, 57, 36, 0, 25, 72, 33, 68, 79, 137, 50, 135, 131, 32, 71, 35, 91, 35, 51, 72, 40, 89, 47, 108, 50, 36, 57, 36, 0, 10,
-			67, 9, 246, 243, 108, 65, 83, 37, 0, 20, 66, 113, 128, 104, 12, 12, 35, 71, 55, 10, 35, 88, 9, 88, 39, 107, 51, 0, 46, 0,
-			10, 67, 198, 35, 192, 81, 39, 12, 72, 0, 12, 68, 194, 33, 222, 28, 49, 40, 108, 55, 108, 0, 18, 70, 181, 225, 211, 128, 161, 192,
-			48, 36, 55, 108, 89, 36, 50, 47, 108, 0, 14, 68, 181, 18, 30, 28, 48, 39, 51, 71, 35, 55, 108, 0, 13, 68, 129, 33, 204, 28,
-			50, 36, 88, 108, 75, 108, 0, 13, 68, 125, 236, 224, 28, 65, 36, 55, 37, 50, 108, 0, 20, 68, 124, 215, 28, 28, 65, 39, 107, 35,
-			104, 17, 104, 17, 35, 104, 17, 35, 50, 0, 13, 68, 79, 8, 179, 28, 89, 36, 49, 40, 57, 108, 0, 14, 68, 78, 216, 10, 28, 89,
-			36, 48, 35, 50, 47, 108, 0, 18, 70, 61, 24, 143, 204, 120, 0, 72, 39, 51, 40, 72, 37, 57, 108, 50, 0, 17, 70, 52, 124, 209,
-			204, 120, 0, 107, 108, 36, 51, 37, 57, 108, 50, 0, 13, 68, 42, 12, 96, 28, 47, 35, 50, 81, 50, 108, 0, 14, 68, 29, 18, 156,
-			28, 36, 51, 47, 36, 104, 17, 108, 0, 8, 65, 60, 6, 72, 108, 55, 0, 0, 12, 67, 197, 227, 224, 81, 39, 55, 72, 36, 50, 0,
-			11, 67, 187, 1, 224, 76, 36, 49, 108, 50, 0, 14, 67, 125, 66, 156, 6, 65, 39, 91, 47, 35, 104, 17, 0, 18, 70, 124, 164, 98,
-			122, 252, 192, 65, 36, 47, 51, 39, 55, 39, 90, 37, 0, 20, 70, 113, 24, 156, 127, 53, 0, 104, 17, 36, 51, 39, 104, 17, 35, 65,
-			37, 91, 0, 11, 67, 69, 241, 224, 51, 39, 65, 108, 50, 0, 11, 67, 35, 49, 224, 71, 35, 57, 108, 50, 0, 11, 67, 29, 60, 32,
-			36, 89, 49, 35, 50, 0, 17, 70, 28, 168, 34, 122, 252, 192, 36, 47, 50, 39, 55, 39, 90, 37, 0, 0, 14, 69, 131, 60, 34, 120,
-			112, 50, 37, 49, 39, 55, 108, 0, 12, 67, 130, 23, 192, 6, 50, 39, 107, 39, 65, 0, 12, 67, 126, 23, 192, 6, 65, 39, 107, 36,
-			65, 0, 18, 69, 125, 26, 202, 32, 112, 65, 39, 51, 35, 47, 47, 35, 71, 35, 50, 0, 16, 69, 124, 120, 15, 120, 112, 65, 108, 50,
-			72, 36, 55, 55, 108, 0, 12, 67, 102, 19, 225, 6, 39, 107, 72, 36, 12, 0, 11, 67, 81, 150, 192, 91, 35, 19, 35, 83, 0, 11,
-			67, 79, 21, 0, 89, 35, 81, 35, 91, 0, 10, 67, 40, 134, 64, 47, 35, 71, 35, 0, 12, 67, 29, 70, 97, 35, 91, 35, 19, 36,
-			12, 0, 15, 69, 28, 178, 7, 40, 112, 36, 89, 71, 108, 47, 35, 50, 0, 15, 69, 9, 180, 115, 112, 112, 108, 83, 51, 37, 104, 17,
-			108, 0, 24, 7, 216, 168, 226, 128, 140, 216, 184, 71, 35, 12, 19, 72, 10, 35, 88, 9, 88, 39, 107, 51, 0, 46, 0, 11, 67, 196,
-			194, 128, 81, 35, 75, 36, 47, 0, 11, 67, 187, 17, 222, 76, 36, 81, 108, 55, 0, 13, 68, 185, 50, 7, 128, 76, 35, 89, 71, 108,
-			50, 0, 12, 68, 181, 28, 224, 40, 48, 51, 37, 50, 47, 0, 12, 67, 133, 33, 222, 107, 35, 88, 88, 108, 55, 0, 14, 68, 127, 54,
-			71, 128, 65, 35, 57, 35, 19, 108, 50, 0, 14, 68, 126, 40, 72, 40, 65, 40, 107, 36, 71, 35, 47, 0, 11, 67, 125, 227, 128, 65,
-			35, 55, 35, 101, 0, 15, 68, 125, 44, 235, 128, 65, 39, 88, 35, 57, 57, 35, 50, 0, 14, 68, 125, 38, 135, 128, 65, 36, 88, 104,
-			17, 108, 50, 0, 19, 70, 124, 163, 226, 122, 43, 243, 65, 36, 47, 39, 72, 39, 55, 39, 90, 37, 0, 14, 68, 113, 18, 7, 128, 104,
-			17, 39, 51, 71, 108, 50, 0, 12, 68, 110, 43, 199, 128, 83, 39, 90, 108, 50, 0, 12, 68, 101, 250, 199, 128, 39, 65, 65, 108, 50,
-			0, 14, 68, 93, 226, 7, 128, 47, 35, 55, 35, 71, 108, 50, 0, 14, 68, 89, 18, 7, 128, 88, 35, 51, 35, 71, 108, 50, 0, 13,
-			68, 83, 50, 7, 128, 91, 36, 57, 71, 108, 50, 0, 12, 67, 79, 49, 222, 89, 35, 57, 57, 108, 55, 0, 15, 69, 77, 246, 226, 131,
-			48, 89, 35, 65, 83, 39, 50, 37, 0, 13, 68, 57, 242, 7, 128, 101, 39, 65, 71, 108, 50, 0, 14, 68, 57, 226, 7, 128, 101, 35,
-			55, 35, 71, 108, 50, 0, 11, 67, 52, 119, 136, 107, 108, 55, 36, 71, 0, 13, 68, 50, 2, 7, 128, 75, 39, 50, 71, 108, 50, 0,
-			18, 70, 43, 8, 34, 122, 43, 243, 47, 36, 49, 50, 39, 55, 39, 90, 37, 0, 15, 69, 34, 44, 96, 62, 32, 71, 40, 81, 35, 50,
-			72, 40, 0, 11, 67, 32, 226, 128, 71, 6, 35, 101, 47, 0, 13, 68, 29, 231, 141, 128, 39, 55, 55, 35, 107, 50, 0, 0, 15, 67,
-			125, 119, 153, 65, 39, 47, 47, 35, 55, 36, 12, 19, 0, 14, 67, 125, 66, 48, 65, 39, 91, 35, 71, 71, 35, 49, 0, 12, 67, 124,
-			220, 31, 65, 39, 107, 49, 35, 65, 0, 10, 67, 120, 124, 240, 55, 108, 57, 49, 0, 10, 67, 110, 39, 176, 83, 39, 55, 49, 0, 11,
-			67, 109, 104, 64, 83, 36, 88, 88, 36, 0, 10, 67, 79, 56, 48, 89, 37, 50, 49, 0, 13, 67, 62, 42, 223, 72, 39, 6, 84, 84,
-			39, 65, 0, 18, 70, 42, 3, 209, 136, 120, 0, 47, 39, 50, 72, 51, 39, 84, 108, 50, 0, 26, 73, 41, 241, 212, 31, 20, 109, 78,
-			3, 192, 47, 35, 65, 108, 91, 81, 35, 51, 48, 35, 89, 35, 50, 72, 0, 10, 67, 40, 120, 48, 47, 108, 50, 49, 0, 10, 67, 32,
-			120, 48, 71, 108, 50, 49, 0, 0, 14, 69, 194, 34, 7, 120, 160, 49, 39, 71, 108, 55, 47, 0, 10, 67, 181, 236, 0, 48, 36, 55,
-			49, 0, 17, 69, 181, 24, 115, 32, 160, 48, 39, 51, 107, 36, 57, 71, 35, 47, 0, 8, 66, 137, 32, 84, 36, 88, 0, 18, 70, 133,
-			230, 207, 138, 12, 192, 107, 39, 55, 39, 83, 72, 40, 50, 37, 0, 14, 70, 132, 204, 240, 40, 140, 192, 107, 36, 75, 75, 37, 0, 12,
-			67, 129, 76, 32, 50, 35, 91, 49, 35, 50, 0, 18, 70, 129, 50, 135, 122, 252, 192, 50, 39, 89, 47, 108, 55, 39, 90, 37, 0, 11,
-			67, 127, 60, 32, 65, 37, 49, 39, 50, 0, 20, 71, 111, 52, 179, 137, 232, 175, 204, 83, 37, 88, 37, 57, 39, 55, 39, 90, 37, 0,
-			22, 71, 108, 168, 136, 206, 39, 175, 204, 83, 39, 47, 39, 71, 37, 57, 39, 55, 39, 90, 37, 0, 11, 67, 76, 115, 138, 89, 6, 108,
-			101, 47, 0, 8, 66, 69, 32, 51, 39, 88, 0, 16, 69, 33, 36, 113, 30, 0, 71, 39, 88, 39, 51, 81, 108, 50, 0, 19, 71, 31,
-			51, 198, 137, 232, 175, 204, 37, 72, 36, 19, 39, 55, 39, 90, 37, 0, 17, 70, 29, 59, 71, 196, 172, 192, 36, 89, 48, 108, 81, 36,
-			47, 37, 0, 15, 69, 29, 54, 225, 30, 0, 36, 89, 83, 35, 107, 108, 50, 0, 14, 69, 9, 54, 199, 120, 160, 108, 89, 83, 108, 55,
-			47, 0, 0, 11, 67, 136, 119, 143, 84, 108, 55, 36, 72, 0, 12, 67, 134, 40, 49, 107, 35, 84, 35, 50, 81, 0, 14, 68, 129, 248,
-			160, 192, 50, 36, 65, 40, 50, 35, 49, 0, 12, 67, 129, 118, 225, 50, 39, 47, 83, 36, 12, 0, 11, 67, 125, 147, 225, 65, 36, 19,
-			72, 36, 0, 14, 68, 125, 65, 243, 100, 65, 39, 91, 108, 57, 36, 19, 0, 13, 67, 113, 22, 97, 104, 17, 39, 51, 19, 36, 12, 0,
-			11, 67, 112, 131, 64, 104, 17, 39, 71, 107, 0, 12, 67, 109, 72, 49, 83, 36, 91, 35, 50, 81, 0, 18, 70, 109, 54, 209, 40, 114,
-			0, 83, 39, 89, 83, 39, 51, 47, 108, 71, 0, 11, 67, 83, 54, 97, 91, 37, 19, 36, 12, 0, 11, 67, 83, 6, 192, 91, 36, 49,
-			39, 83, 0, 12, 67, 82, 40, 15, 91, 35, 84, 35, 50, 72, 0, 12, 67, 81, 21, 225, 91, 39, 51, 47, 36, 12, 0, 10, 67, 68,
-			134, 64, 51, 39, 71, 19, 0, 11, 67, 49, 22, 97, 75, 39, 51, 19, 36, 0, 11, 67, 41, 22, 97, 47, 39, 51, 19, 36, 0, 10,
-			67, 40, 120, 49, 47, 108, 50, 81, 0, 10, 67, 32, 120, 49, 71, 108, 50, 81, 0, 15, 69, 29, 229, 17, 194, 16, 39, 91, 91, 36,
-			51, 49, 36, 0, 13, 67, 28, 200, 33, 35, 75, 36, 50, 50, 36, 12, 0, 11, 67, 11, 56, 15, 108, 57, 35, 50, 72, 0, 0, 23,
-			72, 191, 56, 159, 69, 184, 158, 191, 48, 90, 36, 39, 65, 39, 51, 83, 39, 55, 39, 90, 37, 0, 17, 70, 136, 124, 80, 29, 66, 128,
-			84, 108, 81, 39, 88, 108, 91, 47, 0, 12, 67, 125, 56, 94, 65, 39, 89, 107, 36, 55, 0, 16, 69, 124, 252, 209, 193, 224, 65, 39,
-			72, 37, 51, 49, 39, 55, 0, 17, 68, 124, 166, 91, 128, 65, 39, 47, 36, 19, 35, 83, 83, 36, 50, 0, 15, 68, 114, 3, 199, 112,
-			104, 17, 39, 50, 72, 108, 104, 17, 0, 14, 69, 111, 56, 143, 29, 224, 83, 36, 39, 72, 108, 55, 0, 20, 70, 101, 194, 32, 83, 56,
-			51, 35, 104, 17, 35, 71, 50, 36, 91, 37, 50, 37, 0, 17, 70, 78, 37, 51, 30, 2, 128, 89, 39, 91, 37, 57, 108, 50, 47, 0,
-			16, 69, 76, 140, 8, 29, 224, 89, 35, 71, 39, 49, 71, 108, 55, 0, 19, 70, 61, 24, 154, 198, 44, 243, 72, 39, 51, 40, 104, 17,
-			81, 40, 37, 12, 0, 16, 69, 60, 140, 209, 193, 224, 72, 35, 71, 37, 51, 49, 39, 55, 0, 15, 69, 58, 37, 13, 29, 224, 101, 39,
-			91, 107, 6, 108, 55, 0, 12, 67, 57, 232, 12, 101, 35, 55, 35, 50, 75, 0, 16, 70, 35, 52, 240, 139, 50, 128, 71, 37, 89, 49,
-			40, 37, 47, 0, 12, 67, 35, 4, 222, 71, 39, 49, 89, 36, 55, 0, 16, 69, 29, 35, 7, 128, 128, 35, 88, 75, 108, 50, 36, 71,
-			36, 0, 0, 13, 68, 193, 65, 224, 60, 49, 36, 91, 108, 50, 72, 0, 13, 68, 185, 65, 224, 60, 76, 36, 91, 108, 50, 72, 0, 16,
-			69, 181, 66, 136, 29, 240, 48, 39, 91, 47, 36, 71, 108, 65, 0, 14, 68, 129, 76, 224, 60, 50, 36, 91, 37, 50, 35, 72, 0, 13,
-			68, 129, 65, 224, 60, 50, 36, 91, 108, 50, 72, 0, 13, 67, 128, 248, 95, 50, 35, 72, 35, 107, 35, 65, 0, 16, 68, 125, 146, 156,
-			60, 65, 39, 19, 47, 35, 104, 17, 36, 72, 0, 14, 68, 78, 44, 96, 60, 89, 39, 12, 81, 35, 50, 72, 0, 11, 67, 78, 39, 0,
-			6, 89, 39, 104, 17, 0, 16, 68, 77, 199, 159, 132, 89, 39, 104, 17, 39, 55, 65, 36, 12, 0, 15, 68, 63, 7, 159, 132, 72, 36,
-			49, 55, 35, 65, 36, 12, 0, 14, 68, 61, 24, 179, 60, 72, 36, 51, 35, 84, 37, 72, 0, 13, 68, 57, 248, 143, 132, 101, 35, 65,
-			40, 72, 36, 0, 15, 68, 41, 19, 31, 132, 47, 35, 51, 75, 39, 65, 36, 12, 0, 14, 67, 40, 132, 223, 47, 35, 71, 35, 89, 89,
-			39, 65, 0, 12, 68, 40, 113, 179, 60, 47, 35, 19, 37, 72, 0, 14, 68, 32, 140, 224, 132, 71, 36, 71, 37, 50, 36, 12, 0, 17,
-			70, 32, 119, 148, 139, 60, 0, 71, 108, 55, 91, 36, 84, 37, 49, 0, 12, 68, 29, 177, 214, 132, 36, 83, 108, 88, 36, 0, 13, 68,
-			29, 59, 96, 60, 36, 89, 48, 35, 50, 72, 0, 0, 14, 69, 131, 56, 173, 30, 0, 50, 36, 39, 48, 108, 50, 0, 15, 69, 131, 49,
-			211, 206, 0, 50, 37, 57, 108, 89, 37, 50, 0, 17, 69, 125, 177, 217, 122, 0, 65, 35, 83, 108, 19, 36, 55, 39, 50, 0, 14, 68,
-			125, 145, 222, 48, 65, 39, 19, 108, 55, 36, 75, 0, 15, 69, 83, 49, 215, 206, 0, 91, 35, 57, 108, 47, 37, 50, 0, 11, 67, 79,
-			28, 0, 89, 35, 81, 35, 49, 0, 10, 67, 71, 56, 128, 51, 37, 57, 39, 0, 15, 68, 41, 39, 146, 120, 47, 35, 88, 35, 55, 88,
-			39, 55, 0, 24, 73, 32, 124, 10, 71, 56, 158, 138, 252, 192, 71, 108, 49, 47, 36, 51, 37, 57, 39, 55, 39, 90, 0, 18, 70, 31,
-			56, 10, 68, 120, 10, 37, 50, 47, 36, 51, 108, 50, 36, 47, 0, 14, 68, 29, 230, 95, 120, 39, 55, 10, 35, 65, 35, 55, 0, 18,
-			70, 29, 19, 226, 72, 129, 224, 39, 51, 72, 40, 88, 35, 71, 108, 50, 0, 16, 70, 29, 18, 51, 40, 119, 128, 39, 51, 71, 37, 47,
-			108, 55, 0, 0, 16, 69, 192, 119, 147, 194, 16, 49, 108, 55, 36, 89, 49, 36, 12, 0, 19, 70, 185, 232, 176, 32, 114, 0, 76, 36,
-			55, 39, 84, 49, 35, 71, 108, 71, 0, 15, 69, 185, 50, 34, 128, 240, 76, 35, 89, 71, 40, 50, 72, 0, 17, 68, 124, 168, 74, 192,
-			65, 39, 47, 35, 107, 35, 47, 47, 36, 49, 0, 17, 68, 124, 162, 19, 124, 65, 39, 47, 36, 71, 35, 89, 89, 36, 65, 0, 8, 66,
-			77, 48, 89, 39, 89, 0, 18, 70, 69, 180, 71, 128, 247, 192, 51, 36, 83, 51, 108, 50, 72, 39, 65, 0, 8, 66, 69, 48, 51, 39,
-			89, 0, 14, 69, 68, 124, 199, 128, 240, 51, 108, 57, 108, 50, 72, 0, 16, 69, 61, 50, 136, 128, 240, 72, 35, 89, 47, 71, 35, 50,
-			72, 0, 15, 69, 35, 56, 32, 62, 16, 71, 37, 50, 35, 50, 72, 36, 0, 17, 69, 33, 20, 199, 128, 240, 71, 36, 51, 36, 89, 108,
-			50, 35, 72, 0, 0, 12, 67, 192, 118, 144, 49, 108, 104, 17, 35, 88, 0, 12, 67, 125, 234, 243, 65, 36, 6, 55, 55, 37, 0, 8,
-			66, 125, 64, 65, 36, 91, 0, 17, 69, 125, 50, 153, 125, 224, 65, 39, 89, 47, 35, 19, 65, 35, 55, 0, 17, 70, 109, 24, 147, 28,
-			226, 128, 83, 39, 51, 40, 89, 108, 101, 47, 0, 10, 67, 81, 18, 0, 91, 39, 51, 71, 0, 11, 67, 69, 114, 0, 51, 39, 47, 35,
-			71, 0, 8, 66, 61, 64, 72, 39, 91, 0, 23, 72, 48, 241, 199, 108, 161, 207, 199, 48, 75, 39, 72, 108, 39, 83, 47, 108, 72, 36,
-			81, 37, 0, 12, 67, 42, 37, 115, 47, 39, 89, 89, 37, 57, 0, 16, 69, 33, 24, 176, 77, 224, 71, 39, 51, 40, 49, 89, 36, 55,
-			0, 21, 71, 30, 2, 161, 31, 50, 135, 128, 36, 50, 47, 36, 107, 108, 57, 36, 47, 108, 50, 0, 10, 67, 29, 55, 162, 36, 89, 55,
-			39, 0, 19, 66, 133, 64, 107, 36, 75, 51, 37, 57, 36, 9, 91, 35, 65, 89, 37, 0, 46, 0, 17, 70, 197, 28, 210, 30, 3, 192,
-			81, 39, 51, 37, 88, 108, 50, 72, 0, 16, 70, 184, 116, 76, 206, 12, 64, 76, 108, 51, 75, 37, 50, 81, 0, 17, 70, 183, 52, 71,
-			34, 3, 192, 48, 37, 51, 108, 71, 35, 50, 72, 0, 11, 67, 126, 36, 192, 6, 65, 39, 12, 89, 0, 15, 67, 125, 151, 17, 65, 39,
-			104, 17, 35, 19, 12, 35, 51, 0, 14, 67, 125, 51, 145, 65, 39, 89, 35, 101, 101, 35, 51, 0, 14, 67, 124, 242, 17, 65, 39, 72,
-			35, 71, 71, 36, 51, 0, 12, 67, 124, 226, 149, 65, 39, 101, 47, 35, 89, 0, 14, 67, 124, 133, 17, 65, 39, 71, 35, 91, 91, 36,
-			51, 0, 14, 67, 113, 23, 17, 104, 17, 36, 51, 104, 17, 36, 51, 0, 17, 70, 109, 24, 146, 30, 3, 192, 83, 39, 51, 40, 88, 108,
-			50, 72, 0, 14, 69, 108, 117, 51, 77, 240, 83, 108, 91, 37, 89, 65, 0, 15, 68, 61, 50, 142, 92, 72, 35, 89, 47, 101, 35, 47,
-			47, 0, 20, 71, 48, 241, 199, 108, 161, 207, 132, 75, 39, 72, 108, 39, 83, 47, 108, 72, 36, 0, 12, 67, 30, 2, 17, 35, 50, 71,
-			39, 51, 35, 0, 18, 70, 28, 136, 147, 121, 248, 64, 35, 71, 40, 89, 35, 55, 35, 65, 36, 0, 16, 70, 10, 3, 209, 139, 51, 192,
-			108, 50, 72, 51, 39, 57, 72, 0, 9, 66, 133, 16, 107, 35, 51, 0, 76, 0, 14, 68, 197, 72, 49, 204, 81, 39, 91, 50, 36, 81,
-			37, 0, 13, 68, 125, 232, 143, 204, 65, 36, 55, 39, 72, 37, 0, 15, 69, 84, 115, 72, 30, 0, 89, 108, 107, 36, 71, 108, 50, 0,
-			19, 70, 41, 23, 226, 79, 54, 224, 47, 36, 51, 65, 39, 89, 37, 83, 39, 50, 0, 10, 67, 35, 56, 128, 71, 37, 57, 39, 0, 13,
-			68, 8, 139, 78, 80, 108, 71, 48, 35, 101, 91, 0, 0, 13, 68, 132, 119, 138, 68, 107, 108, 55, 47, 36, 51, 0, 15, 68, 125, 74,
-			206, 84, 65, 39, 91, 35, 101, 101, 35, 89, 0, 14, 68, 124, 129, 212, 68, 65, 39, 71, 108, 91, 36, 51, 0, 21, 71, 72, 124, 207,
-			29, 232, 149, 108, 88, 108, 57, 36, 72, 39, 55, 84, 35, 89, 83, 0, 17, 70, 70, 44, 199, 32, 118, 192, 51, 39, 84, 57, 108, 71,
-			108, 83, 0, 15, 68, 41, 244, 206, 68, 47, 35, 65, 35, 89, 101, 39, 51, 0, 15, 68, 40, 131, 138, 68, 47, 35, 71, 35, 101, 47,
-			39, 51, 0, 15, 69, 32, 245, 7, 129, 48, 71, 35, 72, 91, 108, 50, 89, 0, 0, 11, 67, 193, 20, 243, 49, 39, 51, 89, 37, 0,
-			11, 67, 184, 119, 148, 76, 108, 55, 36, 91, 0, 9, 67, 182, 35, 128, 48, 39, 101, 0, 11, 67, 181, 66, 128, 48, 6, 39, 91, 47,
-			0, 16, 69, 125, 50, 143, 103, 48, 65, 39, 89, 47, 35, 72, 19, 37, 0, 10, 67, 60, 226, 128, 72, 39, 101, 47, 0, 13, 67, 41,
-			70, 243, 47, 35, 91, 35, 83, 83, 37, 0, 12, 67, 32, 248, 115, 71, 36, 72, 36, 107, 37, 0, 9, 67, 28, 226, 128, 39, 101, 47,
-			0, 0, 12, 67, 198, 226, 17, 81, 35, 76, 71, 39, 51, 0, 18, 70, 194, 6, 209, 30, 4, 192, 49, 39, 50, 83, 36, 51, 108, 50,
-			89, 0, 11, 67, 194, 2, 145, 49, 39, 50, 47, 51, 0, 14, 69, 182, 43, 115, 41, 16, 48, 39, 48, 37, 47, 51, 0, 19, 70, 181,
-			18, 147, 40, 120, 0, 48, 39, 51, 39, 47, 36, 89, 47, 108, 50, 0, 12, 67, 134, 242, 17, 107, 39, 90, 35, 71, 51, 0, 17, 70,
-			124, 116, 112, 79, 52, 159, 65, 108, 51, 49, 89, 37, 88, 65, 0, 17, 70, 109, 232, 145, 30, 4, 192, 83, 36, 55, 39, 51, 108, 50,
-			89, 0, 11, 67, 80, 114, 17, 91, 108, 71, 39, 51, 0, 17, 70, 78, 36, 160, 32, 120, 0, 89, 40, 88, 35, 50, 71, 108, 50, 0,
-			15, 69, 77, 18, 179, 41, 16, 89, 35, 51, 47, 37, 47, 51, 0, 11, 67, 53, 247, 0, 107, 39, 65, 104, 17, 0, 11, 67, 49, 163,
-			192, 75, 39, 104, 17, 72, 0, 18, 70, 41, 28, 240, 136, 129, 219, 47, 36, 51, 37, 49, 39, 71, 108, 83, 0, 21, 71, 32, 119, 159,
-			128, 117, 91, 132, 71, 36, 55, 65, 39, 50, 108, 89, 36, 83, 36, 0, 17, 70, 29, 228, 77, 124, 120, 0, 35, 51, 51, 35, 107, 65,
-			108, 50, 0, 0, 9, 67, 206, 40, 0, 57, 39, 50, 0, 14, 68, 197, 44, 224, 80, 81, 39, 88, 37, 50, 36, 91, 0, 12, 67, 193,
-			24, 10, 49, 39, 51, 50, 36, 47, 0, 16, 70, 183, 52, 71, 83, 12, 192, 48, 37, 51, 108, 91, 49, 37, 0, 14, 68, 181, 20, 202,
-			136, 48, 35, 51, 35, 89, 47, 40, 0, 12, 67, 121, 152, 10, 55, 35, 19, 50, 35, 47, 0, 16, 67, 81, 183, 10, 91, 35, 83, 36,
-			104, 17, 104, 17, 35, 47, 0, 26, 74, 42, 34, 135, 123, 50, 135, 71, 52, 202, 204, 47, 39, 47, 108, 55, 37, 47, 108, 51, 37, 89,
-			47, 37, 0, 13, 68, 41, 72, 179, 80, 47, 35, 91, 84, 37, 91, 0, 14, 68, 41, 24, 10, 136, 47, 39, 51, 36, 50, 47, 39, 0,
-			13, 67, 34, 39, 10, 71, 36, 84, 35, 104, 17, 47, 0, 14, 68, 33, 24, 31, 204, 71, 35, 51, 50, 36, 65, 37, 0, 17, 70, 29,
-			50, 155, 30, 8, 128, 36, 89, 47, 36, 83, 108, 50, 39, 0, 0, 18, 70, 193, 24, 34, 124, 164, 64, 49, 39, 51, 50, 39, 65, 36,
-			47, 51, 0, 17, 70, 192, 116, 71, 192, 164, 64, 49, 108, 51, 108, 49, 47, 36, 51, 0, 11, 67, 182, 37, 15, 48, 40, 91, 35, 72,
-			0, 18, 70, 181, 20, 237, 137, 236, 211, 48, 36, 51, 89, 48, 39, 55, 37, 89, 0, 19, 70, 109, 232, 145, 76, 120, 19, 83, 36, 55,
-			39, 51, 36, 89, 108, 50, 89, 0, 20, 70, 109, 54, 209, 76, 120, 19, 83, 39, 89, 83, 39, 51, 36, 89, 108, 50, 89, 0, 10, 67,
-			83, 54, 64, 91, 36, 57, 19, 0, 14, 68, 40, 231, 200, 68, 47, 39, 101, 65, 71, 35, 51, 0, 19, 70, 32, 124, 211, 129, 196, 64,
-			71, 108, 57, 89, 39, 50, 104, 17, 39, 51, 0, 13, 68, 29, 20, 136, 68, 35, 51, 88, 71, 35, 51, 0, 18, 70, 28, 168, 147, 70,
-			44, 211, 39, 47, 39, 89, 36, 51, 84, 37, 89, 0, 18, 70, 9, 251, 81, 124, 164, 64, 108, 65, 48, 36, 51, 65, 36, 47, 51, 0,
-			0, 14, 68, 197, 241, 212, 40, 6, 81, 39, 65, 108, 91, 47, 0, 14, 68, 193, 177, 222, 40, 49, 36, 83, 108, 55, 35, 47, 0, 11,
-			67, 193, 66, 128, 49, 6, 39, 91, 47, 0, 14, 68, 193, 49, 222, 40, 49, 36, 89, 108, 55, 35, 47, 0, 14, 68, 89, 241, 224, 40,
-			88, 36, 65, 108, 50, 35, 47, 0, 11, 67, 44, 124, 200, 89, 108, 19, 36, 71, 0, 13, 68, 30, 17, 224, 40, 36, 107, 108, 50, 35,
-			47, 0, 11, 67, 29, 245, 8, 36, 65, 91, 35, 71, 0, 18, 70, 29, 59, 81, 30, 2, 162, 36, 89, 48, 36, 51, 108, 50, 47, 39,
-			0, 14, 69, 9, 28, 202, 127, 48, 108, 51, 37, 47, 65, 37, 0, 0, 14, 69, 192, 119, 179, 33, 16, 49, 108, 55, 37, 71, 51, 0,
-			13, 68, 192, 119, 136, 60, 49, 108, 55, 71, 39, 72, 0, 12, 67, 186, 215, 0, 76, 39, 48, 39, 104, 17, 0, 22, 72, 181, 24, 138,
-			138, 215, 135, 77, 240, 48, 39, 51, 47, 39, 48, 36, 55, 108, 89, 65, 0, 19, 70, 133, 236, 240, 138, 210, 145, 107, 36, 55, 37, 49,
-			40, 48, 47, 36, 51, 0, 12, 67, 130, 35, 192, 6, 50, 35, 84, 35, 72, 0, 16, 69, 108, 168, 159, 41, 16, 83, 39, 47, 39, 65,
-			36, 47, 51, 0, 15, 68, 78, 216, 72, 60, 89, 36, 48, 35, 107, 71, 39, 72, 0, 19, 70, 61, 19, 224, 31, 2, 145, 72, 35, 51,
-			72, 50, 108, 49, 47, 35, 51, 0, 20, 70, 59, 49, 209, 186, 2, 17, 101, 37, 57, 108, 51, 76, 35, 65, 71, 35, 51, 0, 11, 67,
-			42, 211, 192, 47, 35, 48, 35, 72, 0, 11, 67, 42, 12, 240, 47, 39, 50, 37, 49, 0, 10, 67, 58, 35, 192, 101, 39, 72, 0, 76,
-			0, 13, 67, 197, 5, 10, 81, 39, 6, 88, 35, 91, 47, 0, 15, 69, 194, 33, 209, 40, 160, 49, 40, 108, 51, 47, 36, 47, 0, 18,
-			70, 131, 56, 140, 69, 60, 192, 50, 37, 57, 40, 75, 36, 51, 89, 37, 0, 17, 69, 125, 177, 209, 112, 160, 65, 39, 83, 108, 51, 36,
-			81, 35, 47, 0, 16, 68, 124, 244, 83, 200, 65, 35, 72, 51, 36, 89, 36, 57, 36, 0, 18, 69, 124, 68, 211, 30, 0, 65, 39, 19,
-			35, 89, 89, 36, 89, 108, 50, 0, 11, 67, 83, 8, 0, 91, 36, 49, 35, 50, 0, 13, 67, 69, 162, 10, 51, 36, 104, 17, 71, 35,
-			47, 0, 16, 69, 69, 44, 207, 128, 160, 51, 36, 88, 37, 72, 36, 50, 47, 0, 14, 69, 63, 54, 199, 120, 160, 72, 37, 83, 108, 55,
-			47, 0, 18, 70, 41, 28, 51, 63, 28, 192, 47, 35, 51, 49, 37, 72, 36, 81, 37, 0, 18, 70, 41, 21, 51, 63, 28, 192, 47, 39,
-			51, 91, 37, 72, 36, 81, 37, 0, 15, 69, 29, 86, 225, 30, 0, 36, 89, 83, 35, 107, 108, 50, 0, 14, 68, 29, 28, 240, 200, 35,
-			51, 37, 49, 36, 57, 36, 0, 0, 18, 70, 198, 36, 79, 56, 164, 64, 81, 40, 51, 72, 39, 101, 47, 35, 51, 0, 12, 67, 198, 3,
-			15, 81, 39, 50, 75, 35, 72, 0, 12, 67, 194, 3, 15, 49, 39, 50, 75, 36, 72, 0, 12, 67, 130, 24, 15, 50, 35, 107, 35, 50,
-			72, 0, 19, 70, 125, 49, 219, 68, 132, 64, 65, 39, 89, 108, 83, 36, 51, 71, 35, 51, 0, 11, 67, 124, 204, 207, 65, 35, 75, 37,
-			72, 0, 17, 68, 105, 230, 158, 192, 104, 17, 36, 55, 104, 17, 36, 55, 35, 49, 0, 10, 67, 71, 54, 64, 51, 36, 57, 19, 0, 12,
-			67, 62, 24, 15, 72, 35, 107, 35, 50, 72, 0, 29, 74, 48, 252, 207, 29, 225, 211, 40, 227, 199, 124, 75, 35, 72, 37, 72, 39, 55,
-			19, 36, 89, 47, 36, 101, 72, 108, 65, 0, 17, 70, 30, 210, 162, 124, 164, 64, 39, 48, 47, 39, 65, 36, 47, 51, 0, 16, 69, 29,
-			18, 148, 32, 240, 35, 51, 47, 36, 91, 71, 39, 72, 0, 0, 18, 70, 193, 225, 209, 206, 2, 128, 49, 36, 55, 108, 51, 37, 50, 36,
-			47, 0, 11, 67, 192, 162, 0, 49, 39, 47, 39, 71, 0, 19, 70, 120, 124, 202, 128, 120, 115, 55, 108, 57, 35, 47, 35, 50, 108, 107,
-			37, 0, 12, 67, 113, 235, 64, 104, 17, 39, 55, 39, 48, 0, 17, 70, 109, 24, 145, 204, 226, 128, 83, 39, 51, 40, 51, 37, 101, 47,
-			0, 18, 70, 83, 52, 112, 120, 120, 115, 91, 37, 51, 49, 39, 55, 108, 107, 37, 0, 16, 69, 10, 3, 7, 128, 128, 6, 108, 50, 75,
-			108, 50, 36, 71, 0, 0, 13, 68, 198, 3, 51, 60, 81, 39, 50, 75, 37, 72, 0, 14, 68, 194, 3, 224, 60, 49, 35, 50, 72, 35,
-			50, 72, 0, 13, 68, 183, 56, 160, 196, 48, 37, 57, 40, 50, 81, 0, 14, 68, 129, 241, 243, 60, 50, 35, 65, 108, 57, 35, 72, 0,
-			14, 68, 120, 131, 160, 60, 55, 35, 71, 101, 35, 50, 72, 0, 19, 70, 109, 28, 223, 137, 28, 0, 83, 36, 51, 36, 57, 65, 84, 39,
-			51, 49, 0, 17, 70, 79, 52, 202, 127, 60, 0, 89, 37, 89, 47, 36, 65, 37, 49, 0, 13, 68, 68, 60, 224, 60, 51, 35, 57, 35,
-			50, 72, 0, 14, 68, 62, 33, 224, 60, 72, 35, 84, 108, 50, 35, 72, 0, 15, 68, 35, 54, 202, 60, 71, 37, 57, 39, 83, 47, 35,
-			72, 0, 13, 68, 30, 36, 96, 196, 39, 12, 51, 35, 50, 81, 0, 0, 11, 67, 194, 220, 192, 7, 49, 39, 48, 37, 0, 18, 69, 126,
-			36, 211, 30, 0, 65, 39, 19, 35, 89, 89, 36, 89, 108, 50, 0, 10, 67, 81, 28, 0, 91, 36, 51, 49, 0, 17, 69, 77, 33, 209,
-			206, 0, 89, 36, 88, 108, 51, 37, 57, 35, 50, 0, 18, 70, 32, 115, 224, 196, 117, 10, 71, 108, 72, 50, 36, 81, 108, 91, 47, 0,
-			14, 69, 30, 3, 226, 56, 160, 35, 50, 72, 40, 101, 47, 0, 20, 71, 28, 216, 135, 122, 212, 83, 204, 35, 107, 84, 108, 55, 48, 39,
-			51, 89, 37, 0, 0, 16, 69, 197, 36, 71, 128, 240, 81, 39, 88, 35, 51, 108, 50, 72, 0, 16, 69, 197, 4, 71, 128, 240, 81, 39,
-			88, 35, 51, 108, 50, 72, 0, 14, 69, 183, 59, 162, 128, 240, 48, 37, 76, 40, 50, 72, 0, 11, 67, 183, 51, 199, 48, 36, 57, 72,
-			108, 0, 16, 69, 130, 44, 211, 128, 240, 50, 36, 84, 37, 89, 35, 50, 72, 0, 11, 67, 87, 51, 199, 89, 36, 57, 72, 108, 0, 17,
-			69, 83, 7, 200, 128, 240, 91, 36, 49, 35, 65, 71, 35, 50, 72, 0, 14, 68, 78, 33, 224, 52, 89, 35, 84, 108, 50, 36, 107, 0,
-			16, 69, 76, 119, 8, 128, 240, 89, 108, 104, 17, 71, 35, 50, 72, 0, 11, 67, 61, 226, 135, 72, 36, 55, 47, 108, 0, 18, 69, 33,
-			72, 34, 128, 240, 71, 36, 91, 36, 50, 35, 84, 35, 50, 72, 0, 0, 22, 71, 192, 118, 144, 42, 33, 222, 40, 49, 108, 104, 17, 35,
-			88, 47, 40, 108, 55, 36, 47, 0, 0, 10, 67, 207, 1, 192, 57, 36, 49, 108, 0, 18, 70, 197, 50, 145, 30, 3, 192, 81, 39, 89,
-			47, 35, 51, 108, 50, 72, 0, 20, 70, 183, 52, 95, 137, 8, 0, 48, 37, 51, 65, 39, 19, 35, 88, 88, 36, 50, 0, 13, 68, 125,
-			177, 213, 28, 65, 39, 83, 108, 89, 108, 0, 17, 70, 82, 1, 211, 30, 3, 192, 91, 36, 50, 108, 89, 108, 50, 72, 0, 18, 70, 62,
-			40, 19, 42, 3, 192, 72, 40, 50, 36, 89, 47, 35, 50, 72, 0, 18, 70, 61, 18, 7, 75, 8, 0, 72, 35, 51, 71, 108, 88, 49,
-			39, 50, 0, 11, 67, 57, 227, 0, 101, 35, 55, 35, 75, 0, 12, 2, 195, 151, 88, 35, 51, 71, 72, 35, 51, 0, 0, 11, 67, 192,
-			172, 0, 49, 39, 47, 35, 49, 0, 9, 66, 125, 160, 65, 39, 104, 17, 0, 22, 71, 110, 39, 7, 121, 145, 207, 200, 83, 39, 12, 104,
-			17, 39, 55, 108, 72, 36, 57, 36, 0, 14, 68, 109, 24, 49, 204, 83, 35, 51, 35, 50, 81, 37, 0, 23, 73, 60, 116, 202, 31, 56,
-			155, 79, 12, 192, 72, 108, 89, 47, 108, 57, 39, 83, 89, 49, 37, 0, 11, 67, 53, 124, 192, 107, 39, 47, 47, 37, 0, 15, 69, 34,
-			11, 226, 206, 0, 71, 35, 50, 90, 39, 36, 50, 0, 0, 11, 67, 136, 252, 7, 84, 39, 72, 49, 108, 0, 10, 67, 126, 40, 7, 65,
-			39, 50, 108, 0, 14, 67, 125, 198, 199, 65, 39, 104, 17, 35, 83, 83, 108, 0, 11, 67, 125, 35, 199, 65, 35, 88, 72, 108, 0, 16,
-			69, 124, 229, 98, 84, 112, 65, 35, 101, 89, 40, 89, 35, 50, 0, 18, 69, 112, 118, 79, 40, 112, 104, 17, 108, 19, 36, 72, 35, 47,
-			35, 50, 0, 12, 67, 109, 83, 71, 83, 39, 89, 35, 107, 108, 0, 26, 73, 29, 236, 10, 70, 38, 243, 120, 164, 64, 36, 55, 36, 49,
-			47, 36, 51, 39, 83, 37, 55, 47, 36, 51, 0, 18, 70, 29, 60, 51, 43, 56, 49, 36, 89, 49, 36, 57, 47, 37, 50, 81, 0, 0,
-			14, 69, 62, 34, 25, 63, 48, 72, 39, 71, 39, 72, 37, 0, 11, 67, 61, 236, 34, 72, 36, 55, 49, 39, 0, 11, 67, 61, 50, 128,
-			6, 72, 35, 89, 47, 0, 10, 67, 29, 50, 128, 6, 35, 89, 47, 0, 0, 17, 70, 130, 37, 17, 136, 120, 0, 50, 40, 91, 36, 51,
-			84, 108, 50, 0, 9, 67, 127, 60, 64, 65, 37, 81, 0, 17, 68, 125, 55, 159, 28, 65, 39, 89, 35, 55, 55, 35, 65, 35, 50, 0,
-			16, 68, 124, 76, 15, 28, 65, 39, 35, 49, 49, 35, 72, 35, 50, 0, 15, 68, 109, 116, 74, 28, 83, 36, 47, 51, 35, 47, 35, 50,
-			0, 14, 68, 101, 252, 220, 28, 35, 65, 37, 104, 17, 35, 50, 0, 12, 67, 100, 248, 64, 6, 36, 72, 72, 36, 12, 0, 11, 67, 74,
-			19, 192, 6, 88, 39, 107, 72, 0, 14, 68, 73, 236, 206, 28, 88, 39, 55, 36, 57, 101, 108, 0, 11, 67, 62, 19, 192, 72, 35, 107,
-			35, 72, 0, 17, 70, 29, 19, 211, 40, 120, 0, 35, 51, 72, 36, 89, 47, 108, 50, 0, 0, 11, 67, 205, 241, 224, 57, 36, 65, 108,
-			50, 0, 14, 67, 204, 115, 92, 57, 108, 107, 35, 104, 17, 104, 17, 0, 13, 68, 193, 19, 240, 136, 49, 39, 51, 72, 49, 40, 0, 19,
-			70, 129, 195, 243, 131, 28, 192, 50, 35, 104, 17, 72, 37, 50, 36, 81, 37, 0, 12, 67, 128, 115, 92, 50, 108, 107, 35, 104, 17, 0,
-			11, 67, 124, 247, 128, 65, 39, 72, 36, 55, 0, 14, 68, 110, 12, 220, 204, 83, 36, 50, 37, 104, 17, 37, 0, 11, 67, 101, 241, 224,
-			39, 65, 65, 108, 50, 0, 10, 67, 83, 52, 202, 91, 37, 89, 47, 0, 11, 67, 83, 7, 128, 6, 91, 36, 49, 55, 0, 11, 67, 72,
-			215, 128, 88, 39, 107, 35, 55, 0, 15, 68, 70, 40, 28, 204, 51, 39, 12, 50, 35, 104, 17, 37, 0, 19, 70, 60, 226, 145, 101, 248,
-			128, 72, 39, 101, 47, 35, 51, 35, 12, 65, 40, 0, 13, 67, 57, 231, 10, 101, 36, 55, 104, 17, 35, 47, 0, 12, 68, 56, 124, 18,
-			204, 101, 108, 49, 88, 37, 0, 11, 67, 35, 7, 128, 71, 36, 49, 39, 55, 0, 12, 68, 31, 2, 135, 136, 39, 49, 47, 108, 84, 0,
-			13, 68, 29, 184, 15, 204, 35, 83, 35, 50, 72, 37, 0, 11, 67, 29, 76, 32, 36, 91, 49, 35, 50, 0, 10, 67, 28, 161, 224, 36,
-			47, 108, 50, 0, 0, 11, 67, 183, 17, 225, 48, 36, 81, 108, 107, 0, 15, 69, 181, 225, 211, 124, 112, 48, 36, 55, 108, 89, 65, 108,
-			0, 16, 69, 125, 76, 30, 72, 112, 65, 39, 91, 49, 36, 55, 88, 108, 0, 16, 69, 112, 120, 34, 128, 112, 104, 17, 108, 50, 40, 50,
-			35, 50, 0, 11, 67, 100, 250, 225, 36, 72, 72, 36, 12, 0, 11, 67, 83, 7, 192, 91, 36, 49, 35, 65, 0, 13, 67, 80, 140, 33,
-			91, 35, 71, 35, 49, 36, 12, 0, 12, 67, 60, 138, 225, 72, 35, 71, 71, 36, 12, 0, 11, 67, 56, 246, 97, 101, 39, 72, 19, 36,
-			0, 10, 67, 29, 151, 192, 35, 19, 35, 65, 0, 16, 69, 29, 50, 154, 128, 112, 36, 89, 47, 36, 104, 17, 50, 108, 0, 7, 65, 192,
-			49, 108, 83, 0, 0, 13, 68, 197, 28, 199, 128, 81, 36, 51, 57, 108, 50, 0, 16, 69, 186, 3, 202, 131, 48, 76, 35, 50, 72, 47,
-			39, 50, 37, 0, 18, 70, 183, 52, 71, 53, 243, 243, 48, 37, 51, 35, 107, 65, 35, 72, 37, 0, 14, 68, 181, 27, 83, 40, 48, 39,
-			51, 48, 39, 91, 47, 0, 17, 69, 181, 23, 51, 187, 48, 48, 35, 51, 104, 17, 36, 57, 76, 37, 0, 11, 67, 137, 81, 222, 84, 36,
-			89, 108, 55, 0, 13, 68, 129, 60, 199, 128, 50, 36, 89, 57, 108, 50, 0, 17, 69, 54, 37, 94, 199, 48, 107, 39, 12, 89, 36, 55,
-			36, 81, 37, 0, 15, 69, 48, 118, 17, 111, 48, 75, 108, 88, 35, 51, 83, 37, 0, 15, 68, 41, 243, 235, 128, 47, 35, 65, 35, 72,
-			72, 39, 50, 0, 16, 69, 33, 17, 205, 43, 48, 71, 36, 51, 108, 107, 35, 47, 37, 0, 16, 69, 32, 246, 225, 127, 48, 71, 35, 72,
-			83, 35, 107, 65, 37, 0, 21, 70, 32, 244, 222, 205, 204, 115, 71, 35, 72, 89, 35, 55, 37, 104, 17, 36, 81, 37, 0, 13, 68, 29,
-			76, 27, 40, 36, 91, 49, 39, 83, 47, 0, 15, 69, 11, 1, 207, 127, 48, 108, 49, 108, 72, 36, 65, 37, 0, 0, 12, 67, 193, 56,
-			64, 49, 39, 89, 89, 36, 12, 0, 11, 67, 192, 241, 223, 49, 39, 72, 108, 65, 0, 19, 70, 126, 24, 15, 76, 120, 0, 65, 39, 107,
-			35, 50, 72, 36, 89, 108, 50, 0, 14, 67, 124, 165, 91, 65, 39, 47, 47, 35, 89, 36, 83, 0, 12, 67, 105, 225, 223, 104, 17, 39,
-			55, 108, 65, 0, 13, 67, 104, 248, 64, 104, 17, 39, 72, 72, 36, 12, 0, 12, 67, 86, 42, 223, 89, 36, 84, 84, 39, 65, 0, 10,
-			67, 86, 3, 0, 89, 36, 50, 75, 0, 11, 67, 84, 216, 64, 89, 36, 107, 36, 12, 0, 13, 67, 78, 42, 223, 6, 89, 36, 84, 84,
-			39, 65, 0, 17, 70, 70, 36, 136, 132, 120, 0, 51, 40, 88, 71, 35, 107, 108, 50, 0, 16, 68, 42, 35, 43, 132, 6, 47, 35, 84,
-			35, 75, 75, 39, 107, 0, 12, 67, 42, 33, 223, 47, 39, 12, 19, 35, 65, 0, 18, 70, 29, 146, 145, 29, 97, 192, 36, 19, 47, 36,
-			51, 108, 88, 35, 50, 0, 18, 70, 28, 226, 149, 29, 81, 192, 36, 101, 47, 36, 89, 108, 89, 35, 50, 0, 12, 67, 32, 248, 64, 71,
-			36, 72, 35, 107, 0, 48, 12, 67, 32, 248, 64, 71, 36, 72, 36, 12, 0, 46, 0, 11, 67, 197, 55, 128, 81, 39, 89, 35, 55, 0,
-			11, 67, 193, 55, 128, 49, 36, 89, 36, 55, 0, 17, 70, 186, 3, 200, 100, 252, 192, 76, 35, 50, 72, 71, 39, 72, 37, 0, 12, 67,
-			185, 241, 220, 76, 39, 65, 108, 104, 17, 0, 13, 69, 184, 124, 243, 30, 0, 76, 108, 37, 57, 108, 0, 16, 69, 181, 12, 209, 108, 160,
-			48, 35, 88, 37, 51, 39, 83, 47, 0, 12, 67, 133, 252, 96, 107, 35, 65, 81, 36, 50, 0, 14, 69, 130, 34, 145, 138, 0, 50, 39,
-			47, 51, 39, 50, 0, 14, 68, 125, 17, 205, 120, 65, 35, 51, 108, 107, 36, 55, 0, 12, 67, 124, 212, 224, 65, 39, 107, 89, 36, 50,
-			0, 14, 69, 124, 116, 83, 30, 0, 65, 108, 51, 89, 108, 50, 0, 11, 67, 111, 7, 128, 83, 39, 49, 39, 55, 0, 12, 67, 85, 241,
-			220, 89, 39, 65, 108, 104, 17, 0, 11, 67, 83, 54, 224, 91, 37, 83, 39, 50, 0, 12, 67, 82, 179, 202, 91, 36, 72, 72, 35, 47,
-			0, 12, 67, 77, 241, 220, 89, 39, 65, 108, 104, 17, 0, 15, 69, 68, 39, 179, 76, 160, 51, 36, 108, 55, 37, 89, 47, 0, 16, 69,
-			63, 52, 224, 128, 160, 72, 37, 89, 39, 50, 36, 50, 47, 0, 16, 69, 63, 20, 83, 30, 0, 72, 36, 81, 35, 51, 89, 108, 50, 0,
-			13, 68, 62, 2, 7, 120, 72, 39, 50, 71, 108, 55, 0, 12, 67, 34, 23, 224, 71, 35, 107, 65, 35, 50, 0, 12, 67, 33, 76, 32,
-			71, 36, 91, 49, 35, 50, 0, 11, 67, 32, 247, 128, 71, 35, 72, 35, 55, 0, 11, 67, 32, 117, 224, 71, 108, 47, 36, 50, 0, 10,
-			67, 31, 55, 224, 37, 65, 36, 50, 0, 13, 68, 29, 166, 199, 120, 36, 104, 17, 83, 108, 55, 0, 13, 68, 29, 70, 135, 120, 36, 91,
-			104, 17, 108, 55, 0, 11, 68, 28, 136, 135, 120, 35, 71, 39, 55, 0, 11, 67, 11, 54, 224, 108, 57, 83, 39, 50, 0, 16, 70, 10,
-			2, 145, 138, 220, 192, 108, 50, 47, 51, 39, 48, 37, 0, 8, 65, 64, 6, 88, 108, 55, 0, 0, 17, 69, 186, 17, 209, 62, 16, 6,
-			76, 108, 107, 108, 51, 72, 35, 107, 0, 18, 70, 136, 119, 160, 43, 56, 7, 84, 108, 55, 36, 50, 47, 37, 50, 108, 0, 11, 67, 131,
-			23, 192, 50, 35, 81, 35, 65, 0, 15, 68, 125, 180, 107, 52, 65, 39, 83, 35, 51, 51, 35, 107, 0, 17, 68, 124, 167, 211, 192, 65,
-			39, 47, 36, 65, 35, 89, 89, 36, 49, 0, 13, 68, 102, 33, 215, 108, 35, 84, 108, 47, 36, 83, 0, 12, 67, 59, 55, 225, 101, 36,
-			57, 65, 36, 12, 0, 10, 67, 55, 7, 192, 107, 39, 49, 65, 0, 13, 67, 49, 228, 225, 75, 35, 55, 35, 89, 36, 12, 0, 12, 67,
-			41, 24, 49, 47, 39, 51, 35, 50, 81, 0, 12, 67, 33, 76, 33, 71, 39, 91, 49, 36, 12, 0, 12, 68, 31, 50, 135, 124, 35, 57,
-			47, 108, 65, 0, 15, 69, 9, 17, 223, 198, 16, 108, 51, 108, 65, 81, 35, 107, 0, 0, 15, 68, 204, 229, 48, 128, 57, 35, 101, 91,
-			36, 49, 35, 50, 0, 12, 67, 193, 23, 222, 49, 35, 51, 65, 36, 55, 0, 13, 68, 136, 124, 31, 128, 84, 108, 49, 65, 35, 50, 0,
-			16, 68, 125, 72, 171, 112, 65, 39, 91, 35, 84, 84, 36, 104, 17, 0, 13, 68, 124, 116, 112, 40, 65, 108, 51, 49, 36, 47, 0, 14,
-			68, 100, 162, 7, 40, 6, 35, 47, 35, 71, 108, 47, 0, 14, 68, 68, 226, 176, 128, 51, 35, 101, 47, 49, 35, 50, 0, 15, 68, 40,
-			136, 113, 128, 47, 35, 71, 35, 107, 81, 36, 50, 0, 15, 68, 33, 21, 48, 128, 71, 35, 51, 91, 36, 49, 35, 50, 0, 15, 68, 32,
-			242, 14, 40, 71, 35, 72, 10, 71, 35, 101, 47, 0, 15, 69, 32, 119, 148, 193, 224, 71, 108, 55, 91, 36, 49, 55, 0, 18, 70, 32,
-			116, 243, 29, 50, 128, 71, 108, 89, 37, 57, 108, 89, 35, 47, 0, 11, 67, 29, 236, 30, 35, 55, 49, 39, 55, 0, 13, 68, 29, 50,
-			135, 40, 35, 89, 36, 47, 108, 47, 0, 15, 69, 29, 19, 226, 29, 224, 35, 51, 72, 35, 84, 108, 55, 0, 19, 70, 9, 193, 199, 53,
-			243, 243, 108, 104, 17, 108, 35, 107, 65, 35, 72, 37, 0, 14, 68, 9, 28, 49, 128, 108, 51, 49, 36, 81, 39, 50, 0, 0, 13, 68,
-			185, 28, 240, 132, 76, 36, 51, 37, 49, 36, 0, 14, 68, 185, 17, 240, 132, 76, 36, 51, 108, 10, 49, 36, 0, 11, 67, 181, 225, 240,
-			48, 36, 55, 108, 49, 0, 17, 70, 181, 18, 153, 60, 115, 192, 48, 39, 51, 47, 36, 72, 108, 72, 0, 14, 68, 133, 66, 149, 60, 107,
-			35, 91, 47, 89, 35, 72, 0, 11, 67, 128, 196, 192, 50, 35, 75, 36, 89, 0, 13, 68, 128, 119, 210, 60, 50, 108, 65, 88, 35, 72,
-			0, 16, 68, 126, 2, 156, 60, 65, 39, 50, 47, 35, 104, 17, 36, 72, 0, 17, 69, 125, 50, 150, 101, 176, 65, 39, 89, 47, 35, 88,
-			19, 35, 83, 0, 15, 68, 125, 26, 219, 132, 65, 39, 51, 35, 83, 83, 35, 107, 0, 15, 68, 112, 248, 159, 132, 104, 17, 39, 72, 72,
-			40, 65, 36, 0, 14, 68, 109, 24, 160, 60, 83, 35, 51, 84, 35, 50, 72, 0, 11, 67, 82, 39, 0, 91, 39, 12, 104, 17, 0, 13,
-			68, 82, 37, 48, 132, 91, 40, 91, 49, 36, 12, 0, 15, 68, 79, 4, 240, 132, 89, 36, 49, 89, 36, 49, 36, 12, 0, 17, 70, 61,
-			226, 14, 136, 120, 64, 72, 36, 55, 71, 36, 101, 108, 107, 0, 14, 68, 61, 21, 48, 132, 72, 39, 51, 39, 91, 49, 36, 0, 17, 70,
-			50, 12, 79, 204, 248, 64, 75, 35, 50, 81, 72, 37, 72, 36, 0, 14, 67, 40, 220, 31, 47, 35, 107, 35, 49, 49, 39, 65, 0, 19,
-			70, 33, 28, 82, 204, 248, 64, 71, 35, 51, 81, 39, 88, 37, 72, 36, 12, 0, 17, 70, 29, 50, 153, 60, 115, 192, 36, 89, 47, 36,
-			19, 72, 108, 72, 0, 13, 68, 29, 28, 240, 132, 35, 51, 37, 49, 36, 12, 0, 0, 15, 68, 204, 210, 159, 120, 57, 35, 107, 47, 35,
-			65, 36, 55, 0, 13, 68, 194, 35, 241, 120, 49, 40, 72, 81, 36, 55, 0, 19, 70, 180, 164, 98, 79, 49, 224, 48, 36, 47, 51, 39,
-			89, 37, 57, 108, 50, 0, 16, 69, 134, 36, 209, 30, 0, 107, 35, 84, 35, 89, 51, 108, 50, 0, 17, 70, 128, 120, 95, 58, 33, 224,
-			50, 108, 107, 35, 65, 101, 108, 50, 0, 20, 70, 33, 196, 71, 95, 49, 224, 71, 39, 104, 17, 51, 108, 47, 37, 57, 108, 50, 0, 14,
-			69, 10, 7, 135, 206, 0, 108, 50, 55, 108, 57, 50, 0, 0, 15, 69, 206, 36, 74, 126, 16, 57, 40, 51, 47, 65, 36, 12, 0, 10,
-			67, 192, 132, 64, 49, 36, 71, 51, 0, 15, 69, 192, 116, 72, 128, 240, 49, 108, 51, 71, 35, 50, 72, 0, 11, 67, 136, 132, 64, 84,
-			36, 71, 36, 51, 0, 11, 67, 128, 132, 64, 50, 35, 71, 35, 51, 0, 10, 67, 127, 60, 19, 65, 37, 49, 89, 0, 14, 69, 127, 51,
-			162, 128, 240, 65, 37, 101, 40, 50, 72, 0, 17, 69, 125, 193, 215, 102, 16, 65, 39, 104, 17, 108, 47, 36, 19, 36, 0, 17, 69, 83,
-			4, 78, 128, 240, 91, 36, 49, 35, 51, 101, 35, 50, 72, 0, 15, 69, 78, 36, 74, 126, 16, 89, 40, 51, 47, 65, 36, 12, 0, 15,
-			68, 61, 50, 176, 124, 72, 35, 89, 47, 36, 49, 35, 65, 0, 16, 69, 56, 241, 226, 128, 240, 101, 39, 72, 108, 84, 35, 50, 72, 0,
-			17, 69, 50, 2, 32, 62, 16, 57, 39, 50, 71, 35, 50, 72, 36, 12, 0, 12, 67, 41, 236, 19, 47, 36, 55, 36, 49, 89, 0, 14,
-			68, 41, 225, 215, 124, 47, 35, 55, 108, 47, 39, 65, 0, 20, 70, 34, 3, 209, 122, 12, 97, 71, 35, 50, 72, 35, 51, 55, 36, 50,
-			81, 36, 0, 18, 70, 29, 118, 199, 27, 58, 225, 36, 47, 83, 108, 37, 57, 57, 36, 12, 0, 10, 67, 28, 164, 64, 36, 47, 36, 51,
-			0, 0, 11, 67, 198, 33, 212, 81, 39, 84, 108, 91, 0, 22, 72, 186, 3, 223, 205, 236, 226, 131, 48, 76, 35, 50, 72, 65, 37, 55,
-			57, 40, 50, 37, 0, 19, 70, 184, 164, 96, 48, 114, 128, 76, 35, 47, 51, 36, 50, 36, 75, 108, 47, 0, 17, 70, 181, 24, 147, 40,
-			114, 128, 48, 39, 51, 39, 89, 47, 108, 47, 0, 13, 68, 124, 124, 224, 72, 65, 108, 57, 50, 36, 88, 0, 19, 70, 112, 129, 222, 48,
-			114, 128, 104, 17, 35, 71, 108, 55, 36, 75, 108, 47, 0, 21, 71, 109, 17, 224, 79, 52, 240, 128, 83, 36, 51, 108, 50, 89, 37, 89,
-			49, 35, 50, 0, 9, 66, 81, 64, 6, 91, 36, 91, 0, 10, 67, 69, 146, 0, 51, 39, 19, 71, 0, 17, 70, 56, 119, 149, 48, 114,
-			128, 101, 108, 55, 36, 89, 75, 108, 47, 0, 11, 67, 52, 170, 243, 107, 35, 47, 47, 108, 0, 19, 71, 29, 17, 224, 198, 34, 135, 128,
-			39, 51, 108, 50, 81, 40, 47, 108, 50, 0, 0, 16, 69, 204, 116, 143, 133, 240, 57, 108, 88, 72, 35, 107, 39, 65, 0, 19, 70, 186,
-			17, 209, 57, 120, 64, 76, 108, 107, 108, 51, 101, 35, 47, 47, 36, 0, 19, 70, 181, 24, 51, 70, 12, 64, 48, 39, 51, 50, 36, 57,
-			51, 35, 50, 81, 0, 18, 70, 181, 19, 199, 74, 3, 192, 48, 35, 51, 72, 108, 88, 35, 50, 72, 0, 10, 67, 139, 52, 192, 84, 39,
-			57, 89, 0, 11, 67, 134, 36, 192, 107, 35, 84, 35, 89, 0, 18, 69, 130, 36, 143, 133, 240, 6, 50, 40, 12, 88, 72, 35, 107, 39,
-			65, 0, 16, 67, 126, 39, 17, 65, 39, 84, 35, 104, 17, 104, 17, 35, 51, 0, 12, 67, 123, 52, 145, 55, 36, 57, 88, 36, 51, 0,
-			12, 67, 121, 242, 17, 55, 39, 65, 71, 35, 51, 0, 16, 69, 79, 52, 143, 133, 240, 89, 37, 88, 72, 35, 107, 39, 65, 0, 11, 67,
-			78, 212, 192, 89, 36, 48, 35, 89, 0, 20, 71, 77, 23, 199, 58, 36, 79, 132, 89, 35, 51, 65, 108, 101, 39, 51, 72, 36, 0, 12,
-			67, 60, 226, 145, 72, 39, 101, 47, 35, 51, 0, 10, 67, 40, 228, 192, 47, 39, 101, 89, 0, 19, 70, 34, 5, 51, 130, 3, 192, 71,
-			36, 50, 36, 91, 37, 50, 35, 50, 72, 0, 12, 67, 33, 35, 145, 71, 39, 88, 101, 35, 51, 0, 19, 70, 33, 20, 199, 130, 3, 192,
-			71, 36, 51, 36, 89, 108, 50, 35, 50, 72, 0, 14, 69, 32, 119, 151, 33, 144, 71, 36, 47, 47, 35, 71, 0, 16, 70, 30, 4, 226,
-			123, 56, 0, 35, 50, 89, 39, 55, 37, 50, 0, 0, 10, 67, 207, 12, 192, 57, 36, 49, 37, 0, 14, 69, 188, 119, 200, 138, 0, 90,
-			108, 65, 71, 39, 50, 0, 19, 71, 183, 52, 98, 180, 114, 135, 120, 48, 37, 51, 39, 48, 108, 47, 108, 55, 0, 13, 68, 183, 51, 199,
-			80, 48, 36, 57, 72, 108, 91, 0, 15, 69, 181, 28, 212, 30, 0, 48, 35, 51, 37, 91, 108, 50, 0, 15, 68, 181, 20, 202, 80, 48,
-			35, 51, 35, 89, 47, 36, 91, 0, 20, 70, 91, 49, 193, 29, 227, 92, 88, 37, 57, 39, 55, 107, 35, 104, 17, 104, 17, 0, 13, 68,
-			63, 51, 241, 204, 72, 37, 72, 36, 81, 37, 0, 16, 70, 29, 50, 179, 52, 117, 0, 36, 89, 47, 37, 107, 108, 91, 0, 10, 67, 82,
-			40, 0, 91, 40, 50, 0, 76, 0, 11, 67, 185, 225, 211, 76, 36, 55, 108, 89, 0, 12, 67, 129, 132, 64, 6, 50, 35, 88, 35, 51,
-			0, 14, 68, 125, 65, 204, 68, 65, 39, 91, 108, 75, 36, 51, 0, 11, 67, 124, 132, 64, 65, 35, 71, 35, 51, 0, 11, 67, 80, 164,
-			64, 91, 39, 47, 39, 51, 0, 15, 68, 79, 8, 15, 68, 89, 36, 49, 35, 50, 72, 35, 51, 0, 11, 67, 78, 209, 211, 89, 36, 48,
-			108, 89, 0, 14, 68, 70, 12, 72, 68, 51, 35, 50, 81, 71, 35, 51, 0, 16, 69, 70, 4, 199, 129, 48, 51, 39, 50, 36, 89, 108,
-			50, 89, 0, 19, 70, 34, 44, 209, 28, 215, 207, 71, 39, 57, 36, 51, 35, 107, 65, 35, 72, 0, 23, 72, 33, 225, 199, 76, 166, 199,
-			62, 16, 71, 36, 55, 108, 36, 89, 47, 36, 83, 108, 72, 36, 0, 10, 67, 32, 164, 64, 71, 39, 47, 51, 0, 13, 68, 32, 115, 200,
-			68, 71, 108, 72, 71, 39, 51, 0, 13, 68, 30, 33, 206, 68, 35, 84, 108, 101, 36, 51, 0, 18, 70, 29, 60, 7, 41, 232, 15, 36,
-			89, 49, 108, 47, 55, 35, 50, 72, 0, 0, 12, 67, 115, 52, 243, 104, 17, 36, 57, 89, 37, 0, 11, 67, 71, 52, 148, 51, 37, 88,
-			36, 91, 0, 14, 69, 30, 4, 115, 194, 32, 36, 50, 51, 37, 49, 39, 0, 0, 12, 67, 197, 50, 145, 81, 39, 89, 47, 35, 51, 0,
-			11, 67, 132, 115, 17, 107, 108, 75, 35, 51, 0, 23, 71, 131, 52, 98, 124, 212, 112, 132, 50, 37, 51, 40, 65, 39, 107, 35, 51, 51,
-			36, 49, 36, 0, 10, 67, 55, 50, 192, 107, 36, 57, 89, 0, 12, 67, 41, 50, 145, 47, 39, 89, 47, 36, 51, 0, 12, 67, 34, 18,
-			145, 71, 36, 107, 47, 35, 51, 0, 0, 14, 67, 207, 12, 128, 6, 57, 36, 49, 49, 36, 57, 36, 0, 11, 67, 186, 232, 0, 76, 36,
-			76, 36, 50, 0, 11, 67, 184, 248, 0, 76, 39, 72, 35, 50, 0, 15, 69, 132, 119, 162, 190, 0, 107, 108, 55, 39, 90, 36, 50, 0,
-			13, 68, 127, 51, 225, 204, 65, 37, 72, 35, 107, 37, 0, 14, 68, 127, 49, 223, 204, 65, 35, 57, 108, 65, 36, 57, 0, 9, 67, 82,
-			44, 0, 91, 39, 49, 0, 13, 68, 33, 230, 95, 204, 71, 35, 55, 35, 65, 37, 0, 17, 70, 29, 55, 162, 31, 12, 192, 36, 89, 55,
-			39, 84, 108, 49, 37, 0, 0, 11, 67, 181, 17, 241, 48, 36, 51, 108, 81, 0, 17, 70, 180, 116, 71, 124, 164, 64, 48, 108, 51, 108,
-			65, 36, 47, 51, 0, 15, 68, 131, 53, 48, 68, 50, 36, 57, 91, 36, 49, 35, 51, 0, 17, 70, 127, 55, 179, 138, 4, 64, 65, 37,
-			55, 57, 40, 50, 36, 51, 0, 13, 68, 80, 116, 111, 68, 91, 108, 51, 90, 36, 51, 0, 13, 68, 58, 40, 8, 68, 101, 40, 50, 71,
-			35, 51, 0, 11, 67, 57, 245, 0, 101, 35, 65, 36, 91, 0, 12, 68, 31, 56, 10, 68, 37, 50, 47, 36, 51, 0, 19, 71, 30, 220,
-			240, 137, 28, 211, 124, 36, 48, 37, 49, 40, 51, 37, 89, 65, 0, 13, 68, 29, 60, 7, 68, 19, 39, 89, 49, 108, 51, 0, 0, 15,
-			68, 207, 8, 156, 40, 57, 36, 49, 84, 35, 104, 17, 47, 0, 15, 69, 194, 2, 135, 195, 48, 49, 36, 50, 47, 108, 49, 37, 0, 13,
-			68, 182, 44, 224, 40, 48, 39, 57, 108, 50, 47, 0, 14, 67, 121, 199, 242, 55, 39, 104, 17, 65, 36, 57, 36, 0, 16, 68, 77, 24,
-			156, 40, 89, 35, 51, 36, 84, 35, 104, 17, 47, 0, 16, 69, 32, 115, 224, 113, 64, 71, 108, 72, 50, 35, 104, 17, 91, 0, 0, 20,
-			70, 193, 252, 211, 206, 40, 17, 49, 39, 65, 37, 89, 37, 57, 39, 50, 36, 51, 0, 16, 69, 193, 232, 12, 29, 16, 49, 35, 55, 35,
-			50, 75, 108, 51, 0, 16, 69, 193, 225, 211, 41, 16, 49, 36, 55, 108, 89, 47, 39, 51, 0, 15, 69, 193, 66, 176, 29, 16, 49, 36,
-			91, 47, 49, 108, 51, 0, 15, 69, 193, 19, 241, 29, 16, 49, 36, 51, 72, 81, 108, 51, 0, 15, 69, 181, 28, 224, 41, 16, 48, 51,
-			37, 50, 47, 36, 51, 0, 19, 70, 180, 120, 19, 206, 40, 17, 48, 108, 50, 89, 37, 57, 39, 50, 36, 51, 0, 14, 67, 125, 200, 25,
-			65, 39, 104, 17, 35, 50, 50, 35, 0, 15, 69, 79, 55, 160, 61, 16, 89, 37, 55, 35, 50, 72, 51, 0, 19, 70, 68, 115, 243, 137,
-			242, 145, 51, 108, 72, 37, 57, 39, 65, 36, 47, 51, 0, 15, 69, 33, 19, 200, 29, 16, 71, 39, 51, 72, 71, 108, 51, 0, 15, 69,
-			29, 28, 19, 41, 16, 39, 51, 49, 36, 89, 47, 51, 0, 15, 69, 28, 130, 176, 29, 16, 36, 71, 47, 36, 49, 108, 51, 0, 0, 15,
-			69, 192, 114, 179, 138, 0, 49, 108, 47, 37, 57, 39, 50, 0, 18, 69, 125, 33, 205, 124, 160, 65, 39, 88, 108, 6, 107, 36, 65, 35,
-			47, 0, 13, 67, 114, 42, 202, 104, 17, 39, 84, 84, 35, 47, 0, 11, 67, 62, 17, 202, 72, 36, 107, 108, 47, 0, 16, 68, 42, 36,
-			217, 200, 47, 39, 12, 89, 36, 19, 36, 57, 36, 0, 18, 70, 8, 247, 200, 69, 188, 192, 108, 72, 35, 65, 71, 35, 51, 83, 37, 0,
-			0, 19, 70, 197, 17, 224, 112, 244, 64, 81, 36, 51, 108, 50, 104, 17, 35, 72, 51, 0, 15, 69, 197, 17, 219, 207, 0, 81, 36, 51,
-			108, 83, 37, 49, 0, 18, 70, 131, 2, 10, 32, 116, 64, 50, 36, 49, 71, 35, 47, 71, 108, 51, 0, 15, 68, 124, 120, 156, 100, 65,
-			108, 84, 35, 104, 17, 35, 19, 0, 11, 67, 35, 56, 15, 71, 37, 50, 35, 72, 0, 13, 67, 33, 232, 15, 6, 71, 39, 55, 35, 50,
-			72, 0, 0, 13, 67, 181, 19, 242, 48, 35, 51, 72, 36, 57, 36, 0, 14, 67, 125, 236, 50, 65, 35, 55, 35, 49, 36, 57, 36, 0,
-			15, 68, 125, 76, 235, 40, 65, 35, 91, 37, 57, 57, 35, 47, 0, 15, 68, 124, 210, 43, 40, 65, 39, 107, 35, 71, 71, 35, 47, 0,
-			12, 67, 83, 8, 12, 91, 36, 49, 35, 50, 75, 0, 14, 68, 82, 19, 206, 40, 91, 35, 107, 72, 39, 101, 47, 0, 11, 67, 74, 17,
-			200, 88, 36, 107, 108, 71, 0, 13, 67, 34, 234, 242, 71, 35, 76, 76, 36, 57, 36, 0, 19, 70, 32, 119, 217, 69, 178, 128, 71, 108,
-			65, 35, 19, 51, 36, 83, 35, 47, 0, 17, 70, 31, 52, 74, 31, 4, 243, 36, 57, 51, 47, 108, 49, 89, 37, 0, 18, 70, 29, 18,
-			162, 62, 4, 243, 39, 51, 47, 39, 72, 36, 50, 89, 37, 0, 0, 13, 68, 193, 72, 160, 60, 49, 36, 91, 40, 50, 72, 0, 10, 67,
-			130, 17, 192, 50, 35, 107, 108, 0, 15, 68, 129, 72, 160, 60, 50, 35, 91, 35, 84, 35, 50, 72, 0, 12, 67, 83, 1, 240, 91, 35,
-			49, 49, 108, 49, 0, 18, 70, 76, 120, 10, 205, 242, 145, 89, 108, 50, 47, 37, 65, 36, 47, 51, 0, 18, 70, 63, 4, 202, 71, 56,
-			0, 72, 36, 49, 89, 47, 36, 51, 37, 50, 0, 18, 70, 60, 120, 19, 205, 242, 145, 72, 108, 50, 89, 37, 65, 36, 47, 51, 0, 18,
-			70, 40, 124, 19, 205, 242, 145, 47, 108, 49, 89, 37, 65, 36, 47, 51, 0, 17, 70, 29, 50, 136, 60, 115, 192, 36, 89, 47, 36, 71,
-			72, 108, 72, 0, 0, 11, 67, 193, 184, 0, 49, 35, 83, 35, 50, 0, 11, 67, 185, 248, 0, 76, 35, 65, 35, 50, 0, 16, 69, 133,
-			23, 243, 138, 0, 107, 36, 51, 65, 37, 57, 39, 50, 0, 14, 69, 30, 3, 199, 56, 160, 35, 50, 72, 108, 101, 47, 0, 20, 70, 29,
-			226, 145, 49, 252, 128, 39, 55, 47, 35, 51, 75, 39, 65, 36, 57, 36, 0, 13, 65, 200, 6, 107, 36, 107, 35, 65, 88, 36, 12, 0,
-			0, 16, 69, 129, 241, 243, 128, 240, 50, 35, 65, 108, 57, 35, 50, 72, 0, 16, 69, 85, 180, 72, 128, 240, 89, 36, 83, 51, 71, 35,
-			50, 72, 0, 11, 67, 34, 10, 199, 71, 35, 50, 50, 108, 0, 0, 15, 69, 109, 24, 143, 28, 128, 83, 39, 51, 40, 72, 108, 71, 0,
-			14, 68, 108, 168, 176, 180, 83, 39, 47, 39, 49, 39, 48, 0, 15, 69, 32, 115, 76, 28, 128, 71, 108, 107, 36, 75, 108, 71, 0, 0,
-			23, 72, 180, 116, 71, 197, 225, 243, 61, 16, 48, 108, 51, 108, 81, 36, 55, 108, 57, 72, 36, 51, 0, 17, 70, 129, 252, 223, 138, 3,
-			192, 50, 36, 65, 37, 65, 40, 50, 72, 0, 19, 70, 126, 2, 142, 35, 56, 0, 65, 39, 50, 47, 35, 101, 36, 71, 37, 50, 0, 14,
-			68, 84, 220, 205, 28, 89, 35, 107, 37, 107, 35, 50, 0, 14, 2, 195, 183, 47, 35, 104, 89, 37, 65, 71, 35, 51, 0, 9, 65, 196,
-			6, 81, 12, 108, 83, 0, 0, 12, 68, 192, 117, 48, 204, 49, 108, 91, 49, 37, 0, 16, 69, 181, 28, 211, 194, 208, 48, 36, 51, 37,
-			89, 49, 39, 48, 0, 16, 69, 126, 20, 72, 138, 0, 65, 36, 107, 51, 35, 71, 40, 50, 0, 10, 67, 120, 119, 237, 55, 108, 65, 48,
-			0, 16, 69, 73, 244, 202, 30, 0, 88, 36, 65, 36, 89, 47, 108, 50, 0, 14, 68, 33, 228, 240, 204, 71, 35, 55, 89, 35, 49, 37,
-			0, 15, 69, 30, 42, 222, 206, 0, 35, 84, 84, 35, 55, 37, 50, 0, 19, 70, 29, 118, 199, 206, 188, 128, 36, 47, 83, 108, 37, 57,
-			57, 36, 57, 36, 0, 0, 13, 67, 125, 55, 199, 65, 39, 89, 35, 65, 65, 108, 0, 12, 67, 124, 131, 199, 65, 35, 71, 72, 35, 19,
-			0, 12, 67, 124, 131, 195, 65, 35, 71, 72, 35, 19, 0, 13, 67, 105, 23, 199, 104, 17, 39, 51, 35, 65, 108, 0, 12, 67, 92, 134,
-			71, 47, 35, 71, 19, 35, 50, 0, 11, 67, 73, 151, 199, 88, 39, 35, 65, 108, 0, 12, 67, 58, 12, 7, 101, 39, 50, 35, 49, 108,
-			0, 11, 67, 57, 23, 199, 101, 39, 51, 65, 108, 0, 12, 67, 55, 7, 199, 107, 39, 49, 65, 35, 50, 0, 12, 67, 49, 246, 71, 75,
-			35, 65, 19, 35, 50, 0, 14, 69, 32, 116, 162, 192, 112, 71, 108, 88, 40, 49, 108, 0, 0, 11, 67, 81, 50, 128, 6, 91, 39, 89,
-			47, 0, 17, 69, 61, 24, 154, 195, 48, 72, 39, 51, 40, 104, 17, 35, 49, 37, 0, 15, 69, 28, 215, 207, 122, 32, 35, 107, 65, 35,
-			72, 55, 40, 0, 0, 8, 66, 197, 240, 81, 39, 65, 0, 11, 67, 187, 3, 192, 76, 36, 49, 35, 72, 0, 14, 68, 60, 113, 159, 28,
-			72, 108, 19, 36, 65, 35, 50, 0, 14, 68, 32, 248, 31, 28, 71, 35, 72, 50, 35, 65, 108, 0, 13, 68, 32, 117, 91, 28, 71, 108,
-			89, 35, 83, 108, 0, 17, 70, 32, 115, 223, 48, 120, 0, 71, 108, 72, 36, 65, 75, 108, 50, 0, 13, 68, 29, 232, 19, 28, 39, 50,
-			50, 36, 89, 108, 0, 13, 68, 28, 250, 217, 28, 36, 72, 72, 36, 19, 108, 0, 7, 67, 28, 241, 193, 35, 0, 25, 7, 217, 135, 226,
-			128, 140, 217, 130, 107, 36, 75, 51, 37, 57, 36, 9, 104, 35, 65, 35, 51, 37, 0, 46, 0, 10, 67, 192, 116, 202, 49, 108, 89, 47,
-			0, 14, 69, 192, 116, 74, 138, 0, 49, 108, 51, 47, 39, 50, 0, 14, 69, 182, 43, 94, 206, 0, 48, 39, 48, 55, 37, 50, 0, 11,
-			67, 136, 116, 202, 84, 108, 89, 35, 47, 0, 10, 67, 132, 116, 202, 107, 108, 89, 47, 0, 12, 67, 131, 22, 202, 50, 35, 81, 39, 83,
-			47, 0, 15, 69, 128, 114, 162, 30, 0, 50, 108, 47, 35, 84, 108, 50, 0, 15, 68, 125, 194, 150, 204, 65, 39, 104, 17, 47, 35, 88,
-			37, 0, 19, 70, 114, 3, 237, 133, 232, 128, 104, 17, 35, 50, 72, 48, 35, 107, 55, 40, 0, 14, 68, 109, 151, 177, 204, 83, 35, 19,
-			55, 36, 81, 37, 0, 12, 67, 109, 23, 202, 83, 39, 51, 65, 35, 47, 0, 13, 68, 69, 120, 136, 204, 51, 39, 47, 40, 71, 37, 0,
-			0, 12, 67, 197, 18, 33, 81, 39, 51, 71, 36, 12, 0, 11, 67, 77, 199, 192, 89, 39, 104, 17, 65, 0, 12, 67, 69, 199, 192, 51,
-			35, 104, 17, 35, 65, 0, 11, 67, 61, 229, 0, 72, 36, 55, 35, 91, 0, 17, 69, 41, 81, 207, 108, 112, 47, 35, 89, 108, 72, 39,
-			83, 35, 50, 0, 12, 67, 33, 199, 192, 71, 35, 104, 17, 35, 65, 0, 15, 69, 28, 199, 199, 100, 112, 36, 75, 65, 108, 19, 35, 50,
-			0, 0, 8, 66, 197, 224, 81, 39, 55, 0, 17, 69, 193, 72, 15, 199, 48, 49, 39, 91, 35, 50, 72, 36, 81, 37, 0, 8, 66, 137,
-			224, 84, 36, 55, 0, 8, 66, 133, 224, 107, 39, 55, 0, 15, 68, 125, 226, 155, 40, 65, 39, 55, 47, 35, 83, 36, 47, 0, 13, 67,
-			125, 194, 30, 65, 39, 104, 17, 71, 36, 55, 0, 12, 67, 125, 86, 72, 65, 39, 89, 19, 35, 71, 0, 16, 69, 125, 50, 162, 111, 48,
-			65, 39, 89, 47, 39, 12, 83, 37, 0, 15, 68, 124, 116, 200, 112, 65, 108, 89, 35, 71, 35, 104, 17, 0, 17, 69, 106, 36, 81, 79,
-			48, 104, 17, 39, 12, 51, 51, 35, 89, 37, 0, 20, 70, 32, 119, 30, 30, 215, 162, 71, 108, 104, 17, 108, 55, 108, 48, 39, 55, 39,
-			0, 13, 68, 29, 28, 19, 40, 39, 51, 49, 36, 89, 47, 0, 13, 68, 29, 17, 207, 40, 36, 51, 108, 72, 35, 47, 0, 26, 7, 217,
-			130, 226, 128, 140, 217, 133, 104, 12, 12, 35, 71, 55, 10, 35, 88, 9, 65, 37, 55, 108, 72, 0, 46, 0, 17, 70, 181, 24, 155, 69,
-			241, 192, 48, 51, 39, 83, 39, 51, 65, 108, 0, 11, 67, 181, 24, 64, 48, 35, 51, 51, 36, 0, 21, 70, 181, 20, 202, 204, 248, 0,
-			48, 35, 51, 35, 89, 47, 37, 12, 6, 72, 35, 50, 0, 12, 67, 125, 147, 31, 65, 39, 19, 75, 35, 65, 0, 11, 67, 123, 19, 192,
-			55, 35, 81, 35, 72, 0, 13, 68, 110, 36, 74, 132, 83, 39, 51, 47, 36, 12, 0, 20, 70, 105, 40, 34, 204, 120, 0, 104, 17, 35,
-			88, 50, 35, 84, 37, 57, 108, 50, 0, 15, 68, 85, 225, 200, 132, 89, 39, 55, 55, 108, 71, 36, 12, 0, 14, 68, 83, 8, 8, 132,
-			91, 36, 49, 35, 50, 71, 36, 0, 18, 70, 55, 7, 219, 69, 241, 192, 107, 39, 49, 65, 83, 35, 51, 65, 108, 0, 14, 68, 41, 65,
-			200, 132, 47, 35, 91, 108, 71, 39, 107, 0, 18, 70, 28, 210, 179, 29, 113, 192, 36, 107, 47, 37, 57, 35, 47, 35, 50, 0, 0, 11,
-			67, 196, 119, 160, 81, 108, 55, 39, 50, 0, 15, 69, 183, 53, 17, 108, 160, 48, 37, 91, 51, 35, 83, 47, 0, 14, 69, 182, 36, 83,
-			30, 0, 48, 40, 51, 89, 108, 50, 0, 11, 67, 180, 116, 206, 48, 108, 89, 39, 101, 0, 17, 69, 125, 225, 215, 108, 160, 65, 39, 55,
-			108, 47, 36, 83, 35, 47, 0, 12, 67, 125, 39, 224, 65, 39, 88, 65, 36, 50, 0, 18, 69, 124, 244, 83, 30, 0, 65, 39, 72, 35,
-			51, 51, 36, 89, 108, 50, 0, 11, 67, 124, 124, 10, 65, 108, 49, 36, 47, 0, 12, 67, 121, 1, 202, 55, 35, 88, 88, 108, 47, 0,
-			13, 67, 109, 22, 160, 83, 39, 51, 104, 17, 39, 50, 0, 14, 67, 61, 202, 202, 72, 36, 104, 17, 104, 17, 35, 47, 0, 11, 67, 42,
-			39, 224, 47, 39, 65, 35, 50, 0, 12, 67, 32, 241, 218, 71, 39, 72, 108, 104, 17, 0, 0, 16, 70, 198, 37, 10, 194, 34, 0, 81,
-			40, 91, 47, 49, 40, 71, 0, 10, 67, 195, 54, 192, 49, 36, 57, 83, 0, 16, 69, 193, 234, 243, 174, 16, 49, 39, 55, 37, 57, 57,
-			36, 12, 0, 12, 67, 186, 20, 97, 76, 36, 107, 51, 36, 12, 0, 15, 68, 181, 20, 202, 124, 48, 35, 51, 35, 89, 47, 35, 65, 0,
-			14, 69, 127, 56, 51, 79, 0, 65, 37, 50, 37, 89, 49, 0, 14, 68, 124, 225, 222, 108, 65, 39, 101, 108, 55, 36, 83, 0, 13, 67,
-			121, 199, 225, 55, 39, 104, 17, 65, 36, 12, 0, 13, 67, 115, 55, 225, 104, 17, 36, 57, 65, 36, 12, 0, 13, 67, 107, 55, 225, 104,
-			17, 36, 57, 65, 36, 12, 0, 13, 67, 97, 231, 225, 88, 35, 55, 35, 65, 36, 12, 0, 12, 67, 61, 231, 225, 72, 39, 55, 65, 36,
-			12, 0, 12, 67, 61, 35, 207, 72, 39, 88, 72, 35, 72, 0, 11, 67, 53, 231, 225, 107, 39, 55, 65, 36, 0, 12, 67, 49, 247, 161,
-			75, 39, 65, 55, 36, 12, 0, 14, 68, 42, 17, 204, 124, 47, 35, 107, 108, 75, 39, 65, 0, 10, 65, 68, 6, 51, 2, 34, 36, 12,
-			0, 0, 13, 68, 194, 36, 74, 128, 49, 39, 51, 47, 39, 50, 0, 19, 70, 186, 3, 224, 188, 115, 243, 76, 35, 50, 72, 50, 36, 90,
-			108, 72, 37, 0, 19, 70, 183, 52, 71, 113, 114, 51, 48, 37, 51, 108, 104, 17, 39, 47, 71, 37, 0, 14, 68, 133, 248, 175, 128, 107,
-			36, 65, 39, 90, 36, 50, 0, 17, 70, 124, 120, 51, 109, 50, 128, 65, 108, 50, 37, 83, 36, 89, 47, 0, 17, 70, 124, 116, 202, 124,
-			119, 179, 65, 108, 89, 47, 65, 108, 55, 37, 0, 16, 69, 120, 124, 224, 53, 224, 55, 108, 57, 35, 50, 107, 35, 55, 0, 12, 68, 70,
-			34, 7, 40, 51, 39, 71, 108, 47, 0, 14, 68, 70, 12, 82, 128, 51, 35, 50, 81, 88, 35, 50, 0, 13, 68, 68, 120, 82, 128, 51,
-			108, 107, 88, 35, 50, 0, 17, 69, 63, 20, 84, 193, 224, 72, 36, 81, 35, 51, 91, 36, 49, 55, 0, 19, 70, 50, 1, 200, 100, 119,
-			179, 75, 36, 50, 108, 71, 36, 19, 108, 55, 37, 0, 17, 70, 41, 24, 145, 205, 50, 128, 47, 36, 51, 39, 51, 37, 89, 47, 0, 14,
-			68, 33, 24, 140, 128, 71, 39, 51, 40, 75, 36, 50, 0, 10, 67, 31, 54, 222, 37, 83, 36, 55, 0, 12, 68, 28, 178, 7, 40, 36,
-			89, 71, 108, 47, 0, 19, 70, 28, 132, 84, 71, 2, 128, 35, 71, 35, 51, 91, 36, 51, 49, 35, 47, 0, 0, 15, 68, 198, 3, 222,
-			132, 81, 39, 50, 72, 39, 55, 36, 12, 0, 14, 68, 194, 39, 222, 132, 49, 39, 65, 36, 55, 36, 12, 0, 14, 68, 131, 49, 223, 60,
-			50, 35, 57, 108, 65, 35, 72, 0, 14, 67, 125, 55, 159, 65, 39, 89, 35, 55, 55, 35, 65, 0, 17, 68, 125, 48, 222, 132, 65, 35,
-			89, 10, 6, 35, 12, 55, 36, 12, 0, 21, 71, 109, 23, 199, 129, 180, 95, 28, 83, 35, 51, 65, 108, 50, 83, 35, 51, 65, 108, 0,
-			10, 67, 101, 65, 217, 36, 91, 108, 19, 0, 15, 68, 83, 8, 12, 132, 91, 36, 49, 35, 50, 75, 36, 12, 0, 10, 67, 71, 50, 159,
-			51, 37, 47, 65, 0, 11, 67, 52, 124, 31, 107, 108, 49, 36, 65, 0, 18, 70, 34, 28, 238, 136, 200, 64, 71, 36, 107, 37, 76, 84,
-			35, 75, 107, 0, 16, 70, 29, 50, 135, 43, 60, 0, 36, 89, 47, 108, 47, 37, 49, 0, 0, 13, 68, 124, 124, 240, 120, 65, 108, 57,
-			49, 36, 55, 0, 13, 67, 113, 23, 210, 104, 17, 36, 51, 65, 36, 88, 0, 12, 67, 111, 49, 214, 83, 35, 57, 57, 108, 88, 0, 10,
-			67, 31, 8, 128, 36, 49, 39, 12, 0, 0, 16, 69, 181, 18, 19, 42, 16, 48, 35, 51, 71, 35, 89, 47, 36, 0, 15, 68, 125, 226,
-			146, 124, 65, 39, 55, 47, 35, 88, 36, 65, 0, 17, 69, 125, 81, 222, 54, 16, 65, 39, 89, 108, 55, 36, 107, 36, 12, 0, 16, 69,
-			125, 65, 217, 70, 16, 65, 39, 91, 108, 19, 36, 51, 36, 0, 11, 67, 124, 209, 215, 65, 39, 107, 108, 47, 0, 16, 69, 124, 129, 225,
-			122, 16, 65, 39, 71, 108, 107, 36, 55, 36, 0, 15, 68, 101, 236, 240, 124, 19, 35, 55, 35, 57, 49, 39, 65, 0, 18, 70, 100, 119,
-			179, 68, 162, 33, 6, 108, 55, 37, 51, 39, 47, 71, 36, 0, 16, 69, 75, 52, 109, 122, 16, 88, 37, 51, 48, 36, 55, 55, 36, 0,
-			12, 68, 29, 66, 7, 100, 36, 91, 71, 108, 19, 0, 15, 69, 29, 35, 31, 122, 16, 35, 88, 75, 39, 65, 55, 36, 0, 10, 67, 31,
-			60, 19, 37, 49, 89, 0, 46, 0, 14, 69, 196, 116, 162, 25, 224, 81, 108, 88, 39, 37, 55, 0, 12, 67, 193, 60, 20, 49, 39, 89,
-			49, 36, 91, 0, 11, 67, 181, 23, 226, 48, 39, 51, 65, 40, 0, 19, 70, 124, 210, 162, 204, 114, 128, 65, 39, 107, 47, 35, 84, 37,
-			57, 108, 47, 0, 12, 67, 113, 241, 212, 104, 17, 39, 65, 108, 91, 0, 23, 73, 72, 115, 199, 121, 145, 209, 111, 56, 0, 88, 108, 72,
-			39, 55, 108, 51, 36, 83, 37, 50, 0, 10, 67, 61, 242, 0, 72, 39, 65, 71, 0, 12, 67, 43, 4, 98, 47, 35, 49, 51, 39, 12,
-			0, 15, 69, 32, 117, 10, 28, 128, 71, 108, 91, 36, 47, 108, 71, 0, 13, 68, 29, 194, 7, 88, 36, 104, 17, 71, 108, 88, 0, 10,
-			67, 31, 59, 128, 36, 57, 76, 0, 46, 0, 13, 67, 197, 228, 209, 81, 39, 55, 36, 89, 35, 51, 0, 11, 67, 184, 115, 209, 76, 108,
-			72, 39, 51, 0, 16, 69, 181, 24, 155, 69, 240, 48, 39, 51, 39, 83, 39, 51, 65, 0, 15, 68, 181, 24, 19, 76, 48, 36, 51, 35,
-			50, 89, 36, 89, 0, 19, 71, 139, 52, 240, 137, 44, 202, 132, 84, 37, 89, 49, 39, 88, 37, 47, 36, 0, 14, 69, 128, 123, 71, 121,
-			240, 50, 108, 48, 108, 55, 65, 0, 14, 67, 125, 151, 209, 65, 39, 19, 35, 65, 65, 35, 51, 0, 12, 67, 125, 101, 209, 65, 39, 88,
-			47, 35, 51, 0, 17, 69, 125, 50, 141, 193, 240, 65, 39, 89, 47, 35, 107, 49, 35, 65, 0, 12, 67, 124, 133, 81, 65, 39, 71, 89,
-			36, 51, 0, 12, 67, 109, 22, 209, 83, 36, 51, 83, 36, 51, 0, 12, 67, 49, 150, 209, 75, 35, 19, 83, 35, 51, 0, 19, 70, 29,
-			226, 145, 49, 248, 64, 39, 55, 47, 35, 51, 75, 39, 65, 36, 12, 0, 17, 70, 29, 50, 141, 29, 232, 64, 36, 89, 47, 36, 107, 108,
-			55, 36, 0, 12, 68, 8, 241, 223, 76, 108, 72, 108, 65, 89, 0, 0, 15, 68, 180, 244, 112, 80, 48, 36, 72, 35, 51, 49, 39, 91,
-			0, 16, 68, 113, 23, 17, 136, 104, 17, 39, 51, 104, 17, 39, 51, 40, 0, 16, 68, 105, 22, 145, 136, 104, 17, 39, 51, 104, 17, 39,
-			51, 40, 0, 13, 68, 32, 116, 112, 80, 71, 108, 51, 49, 36, 91, 0, 0, 21, 70, 53, 193, 222, 72, 215, 192, 107, 35, 104, 17, 104,
-			17, 39, 88, 88, 35, 107, 65, 0, 18, 70, 32, 119, 160, 43, 51, 33, 71, 36, 50, 50, 35, 47, 37, 75, 36, 0, 11, 67, 29, 236,
-			19, 35, 55, 36, 49, 89, 0, 19, 70, 29, 50, 176, 133, 231, 192, 6, 36, 89, 47, 39, 49, 107, 39, 55, 65, 0, 0, 12, 67, 193,
-			20, 179, 49, 35, 51, 88, 35, 57, 0, 13, 68, 181, 24, 135, 72, 48, 35, 51, 84, 108, 88, 0, 13, 67, 124, 215, 179, 65, 35, 107,
-			35, 55, 55, 37, 0, 12, 67, 80, 242, 128, 91, 36, 72, 72, 35, 47, 0, 10, 67, 77, 50, 128, 89, 39, 89, 47, 0, 16, 69, 61,
-			17, 210, 193, 64, 72, 36, 51, 108, 88, 49, 36, 91, 0, 12, 67, 48, 242, 128, 75, 35, 72, 72, 35, 47, 0, 13, 67, 41, 55, 179,
-			47, 35, 89, 35, 55, 55, 37, 0, 10, 67, 41, 50, 128, 47, 36, 89, 47, 0, 11, 67, 33, 50, 128, 6, 71, 35, 89, 47, 0, 0,
-			11, 67, 196, 241, 209, 81, 39, 72, 108, 51, 0, 17, 70, 193, 18, 179, 74, 40, 0, 49, 39, 51, 47, 37, 88, 39, 50, 0, 16, 69,
-			184, 114, 48, 77, 16, 76, 108, 71, 39, 49, 89, 35, 51, 0, 12, 67, 125, 70, 81, 65, 39, 91, 19, 36, 51, 0, 19, 70, 125, 19,
-			224, 82, 40, 0, 65, 39, 51, 72, 35, 50, 36, 91, 40, 50, 0, 14, 67, 124, 227, 209, 65, 39, 101, 35, 72, 72, 36, 51, 0, 14,
-			67, 124, 213, 85, 65, 39, 107, 35, 89, 89, 36, 89, 0, 11, 67, 109, 65, 209, 83, 36, 91, 108, 51, 0, 16, 69, 108, 168, 147, 109,
-			16, 83, 39, 47, 39, 89, 83, 36, 51, 0, 11, 67, 69, 183, 0, 51, 36, 83, 104, 17, 0, 12, 67, 61, 247, 0, 72, 35, 65, 35,
-			104, 17, 0, 17, 70, 29, 252, 209, 29, 151, 159, 35, 65, 37, 51, 35, 55, 35, 65, 0, 12, 68, 28, 211, 199, 76, 36, 107, 72, 108,
-			89, 0, 0, 18, 68, 124, 164, 92, 204, 65, 39, 47, 36, 51, 35, 104, 17, 104, 17, 37, 0, 13, 68, 123, 49, 222, 204, 55, 35, 57,
-			108, 55, 37, 0, 14, 67, 113, 92, 128, 104, 17, 36, 89, 89, 36, 57, 36, 0, 12, 67, 101, 135, 202, 35, 88, 36, 65, 35, 47, 0,
-			17, 70, 80, 119, 226, 68, 172, 192, 91, 108, 65, 84, 40, 51, 47, 37, 0, 13, 68, 62, 35, 240, 80, 72, 40, 72, 49, 36, 91, 0,
-			12, 67, 53, 23, 202, 107, 39, 51, 65, 35, 47, 0, 26, 73, 31, 4, 237, 69, 60, 226, 131, 52, 202, 36, 49, 89, 48, 36, 51, 89,
-			37, 57, 39, 50, 37, 89, 47, 0, 11, 67, 10, 12, 10, 108, 50, 49, 36, 47, 0, 0, 13, 68, 197, 178, 135, 68, 81, 39, 83, 47,
-			108, 51, 0, 19, 70, 189, 22, 199, 131, 20, 64, 90, 35, 51, 83, 108, 50, 36, 81, 35, 51, 0, 17, 70, 180, 116, 71, 62, 44, 19,
-			48, 108, 51, 108, 72, 39, 49, 89, 0, 14, 68, 130, 33, 241, 68, 50, 35, 84, 108, 81, 35, 51, 0, 13, 68, 128, 117, 48, 68, 50,
-			108, 91, 39, 49, 51, 0, 14, 69, 123, 56, 34, 193, 48, 55, 37, 50, 40, 49, 89, 0, 12, 68, 28, 194, 7, 68, 36, 75, 71, 108,
-			51, 0, 0, 14, 68, 181, 52, 91, 40, 48, 35, 89, 51, 35, 83, 47, 0, 20, 70, 128, 117, 81, 57, 52, 98, 50, 108, 89, 36, 51,
-			101, 39, 89, 51, 39, 84, 0, 13, 68, 127, 52, 91, 40, 65, 37, 51, 35, 83, 47, 0, 15, 67, 109, 196, 114, 83, 35, 104, 17, 35,
-			51, 36, 57, 36, 0, 13, 67, 101, 103, 178, 35, 88, 39, 55, 36, 57, 36, 0, 14, 68, 79, 49, 211, 40, 89, 37, 57, 108, 89, 35,
-			47, 0, 11, 67, 68, 194, 0, 51, 35, 75, 35, 71, 0, 11, 68, 58, 33, 211, 40, 101, 108, 89, 47, 0, 14, 68, 57, 49, 211, 40,
-			101, 36, 89, 108, 89, 35, 47, 0, 12, 67, 54, 39, 178, 107, 39, 55, 36, 57, 36, 0, 12, 67, 52, 242, 128, 107, 36, 72, 72, 35,
-			47, 0, 15, 68, 32, 120, 95, 40, 71, 108, 107, 36, 65, 65, 35, 47, 0, 0, 15, 69, 194, 39, 136, 29, 16, 49, 40, 55, 36, 71,
-			108, 51, 0, 19, 70, 181, 24, 115, 48, 120, 0, 48, 39, 51, 107, 35, 57, 36, 75, 108, 50, 0, 15, 69, 130, 12, 72, 29, 16, 50,
-			35, 50, 81, 71, 108, 51, 0, 13, 68, 125, 146, 135, 60, 65, 39, 19, 47, 108, 72, 0, 15, 69, 125, 76, 8, 29, 16, 65, 39, 91,
-			49, 71, 108, 51, 0, 15, 69, 125, 28, 72, 29, 16, 65, 35, 51, 81, 71, 108, 51, 0, 15, 69, 74, 12, 72, 29, 16, 88, 35, 50,
-			81, 71, 108, 51, 0, 14, 69, 50, 44, 200, 29, 16, 75, 40, 57, 71, 108, 51, 0, 0, 15, 68, 193, 65, 222, 200, 49, 36, 91, 108,
-			55, 36, 57, 36, 0, 12, 67, 135, 49, 202, 107, 36, 57, 19, 35, 47, 0, 16, 69, 124, 212, 95, 30, 0, 65, 35, 107, 51, 35, 65,
-			108, 50, 0, 16, 69, 109, 24, 145, 108, 160, 83, 39, 51, 40, 51, 35, 83, 47, 0, 18, 69, 83, 4, 83, 58, 0, 91, 36, 49, 35,
-			51, 89, 39, 101, 35, 50, 0, 14, 67, 69, 202, 202, 51, 36, 104, 17, 104, 17, 35, 47, 0, 11, 67, 61, 248, 0, 72, 35, 65, 35,
-			50, 0, 19, 70, 57, 19, 95, 29, 236, 192, 101, 35, 51, 107, 35, 65, 65, 108, 55, 37, 0, 11, 67, 43, 60, 10, 47, 37, 49, 36,
-			47, 0, 17, 69, 42, 33, 224, 76, 160, 6, 47, 35, 84, 108, 50, 36, 89, 47, 0, 0, 15, 69, 198, 1, 200, 28, 240, 81, 39, 50,
-			108, 71, 108, 72, 0, 18, 70, 194, 244, 91, 40, 116, 64, 49, 35, 90, 51, 35, 83, 47, 108, 51, 0, 17, 70, 187, 5, 14, 136, 116,
-			64, 76, 35, 49, 39, 91, 101, 108, 51, 0, 15, 68, 181, 24, 31, 192, 48, 39, 51, 50, 35, 65, 35, 49, 0, 19, 70, 56, 132, 96,
-			196, 116, 64, 101, 35, 71, 35, 51, 50, 36, 81, 108, 51, 0, 20, 70, 34, 3, 209, 100, 129, 211, 71, 35, 50, 72, 35, 51, 35, 71,
-			71, 108, 89, 0, 11, 67, 32, 118, 207, 71, 108, 83, 35, 72, 0, 10, 67, 30, 1, 203, 36, 50, 108, 89, 0, 20, 71, 28, 236, 209,
-			29, 228, 48, 68, 35, 101, 37, 51, 39, 88, 88, 36, 49, 51, 0, 0, 13, 68, 192, 116, 240, 40, 49, 108, 89, 49, 36, 47, 0, 13,
-			68, 180, 116, 112, 40, 48, 108, 51, 49, 36, 47, 0, 11, 67, 120, 129, 200, 55, 39, 71, 108, 71, 0, 19, 70, 109, 17, 224, 185, 60,
-			34, 83, 36, 51, 108, 50, 76, 36, 89, 49, 39, 0, 16, 69, 78, 36, 74, 127, 32, 89, 40, 51, 47, 65, 36, 57, 36, 0, 22, 72,
-			70, 35, 209, 32, 124, 211, 43, 48, 51, 40, 72, 35, 51, 71, 108, 57, 89, 47, 37, 0, 11, 67, 68, 129, 200, 51, 39, 71, 108, 71,
-			0, 11, 67, 52, 129, 200, 107, 39, 71, 108, 71, 0, 14, 68, 30, 36, 112, 40, 39, 84, 36, 51, 49, 39, 47, 0, 13, 68, 28, 172,
-			240, 40, 36, 47, 37, 49, 36, 47, 0, 0, 11, 67, 125, 65, 217, 65, 39, 91, 108, 19, 0, 10, 67, 69, 97, 217, 51, 36, 88, 108,
-			0, 10, 67, 68, 129, 192, 51, 39, 71, 108, 0, 17, 70, 32, 119, 135, 48, 129, 209, 71, 36, 55, 36, 75, 71, 108, 51, 0, 0, 15,
-			68, 124, 228, 107, 32, 65, 39, 101, 35, 51, 51, 36, 71, 0, 16, 69, 124, 196, 95, 30, 0, 65, 39, 75, 51, 36, 65, 108, 50, 0,
-			10, 67, 70, 44, 192, 51, 40, 57, 36, 0, 25, 72, 68, 115, 243, 136, 167, 147, 194, 208, 51, 108, 72, 37, 57, 39, 47, 36, 55, 36,
-			89, 49, 39, 48, 0, 13, 68, 29, 17, 198, 200, 36, 51, 108, 36, 57, 36, 0, 11, 67, 70, 44, 192, 51, 40, 57, 36, 0, 46, 0,
-			22, 71, 79, 49, 211, 41, 243, 199, 68, 89, 37, 57, 108, 89, 35, 47, 65, 35, 72, 108, 51, 0, 9, 67, 30, 35, 7, 40, 75, 108,
-			0, 0, 17, 69, 193, 234, 243, 175, 32, 49, 39, 55, 37, 57, 57, 36, 57, 36, 0, 22, 72, 182, 36, 71, 68, 242, 51, 123, 48, 48,
-			40, 51, 35, 51, 72, 36, 71, 37, 55, 37, 0, 22, 72, 135, 51, 209, 137, 54, 199, 123, 48, 107, 37, 72, 51, 39, 89, 36, 83, 108,
-			55, 37, 0, 20, 70, 9, 4, 113, 82, 4, 200, 108, 88, 35, 51, 81, 39, 91, 50, 35, 89, 71, 0, 0, 14, 68, 185, 228, 202, 28,
-			76, 36, 55, 36, 89, 47, 108, 0, 17, 70, 182, 36, 71, 53, 243, 192, 48, 40, 51, 35, 107, 65, 35, 72, 0, 18, 70, 126, 36, 179,
-			79, 56, 0, 65, 40, 88, 37, 89, 37, 57, 35, 50, 0, 25, 72, 125, 51, 15, 77, 236, 223, 30, 0, 65, 35, 89, 75, 36, 72, 89,
-			39, 55, 36, 57, 65, 108, 50, 0, 10, 67, 55, 49, 192, 107, 35, 57, 108, 0, 19, 70, 43, 8, 51, 79, 56, 0, 47, 36, 49, 50,
-			37, 89, 37, 57, 35, 50, 0, 22, 72, 11, 7, 237, 30, 12, 223, 30, 0, 108, 49, 39, 65, 48, 108, 50, 37, 65, 108, 50, 0, 0,
-			12, 67, 114, 44, 192, 6, 104, 17, 35, 84, 37, 0, 20, 70, 101, 82, 7, 131, 58, 202, 35, 89, 35, 71, 108, 50, 37, 37, 57, 35,
-			47, 0, 10, 67, 82, 44, 192, 91, 35, 84, 37, 0, 22, 72, 78, 36, 81, 204, 119, 179, 76, 160, 89, 40, 51, 36, 51, 36, 108, 55,
-			37, 89, 47, 0, 10, 67, 42, 44, 192, 47, 40, 57, 36, 0, 20, 70, 32, 114, 140, 68, 140, 128, 71, 108, 47, 35, 75, 51, 39, 71,
-			36, 57, 36, 0, 14, 68, 28, 132, 92, 136, 35, 71, 35, 51, 104, 17, 40, 0, 20, 72, 11, 2, 179, 130, 39, 243, 76, 160, 108, 47,
-			37, 50, 39, 65, 37, 89, 47, 0, 8, 65, 204, 6, 57, 36, 12, 0, 0, 13, 67, 125, 87, 135, 65, 39, 89, 35, 55, 55, 108, 0,
-			13, 67, 125, 71, 199, 65, 39, 91, 35, 65, 65, 108, 0, 17, 69, 89, 24, 145, 40, 112, 88, 35, 51, 40, 51, 35, 47, 35, 50, 0,
-			13, 67, 41, 55, 135, 47, 35, 89, 35, 55, 55, 108, 0, 11, 67, 35, 53, 135, 71, 36, 57, 88, 108, 0, 11, 67, 33, 19, 7, 71,
-			35, 51, 75, 108, 0, 0, 15, 69, 197, 66, 135, 182, 32, 81, 36, 91, 47, 108, 48, 39, 0, 16, 69, 84, 115, 220, 122, 32, 89, 108,
-			72, 36, 104, 17, 55, 40, 0, 11, 67, 80, 130, 128, 91, 35, 71, 35, 47, 0, 13, 68, 29, 50, 159, 180, 36, 89, 47, 35, 65, 48,
-			0, 0, 17, 70, 197, 225, 200, 60, 120, 0, 81, 39, 55, 108, 71, 72, 108, 50, 0, 12, 67, 196, 136, 64, 81, 35, 71, 71, 36, 12,
-			0, 17, 70, 180, 120, 19, 206, 40, 0, 48, 108, 50, 89, 37, 57, 39, 50, 0, 13, 68, 133, 66, 173, 28, 107, 35, 91, 47, 48, 108,
-			0, 10, 67, 132, 136, 64, 107, 36, 71, 36, 0, 12, 68, 128, 117, 10, 28, 50, 108, 91, 47, 108, 0, 13, 68, 76, 226, 173, 28, 89,
-			35, 101, 47, 48, 108, 0, 14, 68, 76, 140, 45, 28, 89, 35, 71, 39, 49, 48, 108, 0, 10, 67, 56, 130, 192, 101, 39, 71, 89, 0,
-			17, 70, 40, 114, 19, 42, 40, 0, 47, 108, 71, 36, 89, 47, 40, 50, 0, 14, 68, 29, 21, 220, 28, 36, 51, 47, 36, 104, 17, 108,
-			0, 13, 68, 28, 226, 155, 28, 36, 101, 47, 36, 83, 108, 0, 14, 68, 10, 3, 30, 28, 108, 50, 75, 36, 55, 55, 108, 0, 0, 15,
-			69, 131, 49, 240, 30, 0, 50, 37, 57, 108, 49, 108, 50, 0, 12, 67, 129, 180, 74, 50, 36, 83, 51, 35, 47, 0, 14, 68, 126, 3,
-			96, 204, 65, 39, 50, 107, 35, 50, 37, 0, 14, 67, 125, 167, 156, 65, 39, 104, 17, 55, 35, 104, 17, 0, 10, 67, 124, 135, 128, 65,
-			39, 71, 55, 0, 14, 68, 109, 36, 74, 204, 83, 36, 88, 36, 51, 47, 37, 0, 18, 70, 109, 24, 145, 43, 53, 0, 83, 35, 51, 84,
-			35, 51, 47, 37, 91, 0, 11, 67, 76, 140, 0, 89, 35, 71, 39, 49, 0, 12, 67, 57, 87, 138, 101, 36, 89, 55, 35, 47, 0, 16,
-			69, 57, 52, 98, 30, 0, 101, 39, 89, 51, 35, 84, 108, 50, 0, 15, 69, 34, 4, 162, 206, 0, 71, 35, 50, 88, 39, 35, 88, 0,
-			12, 68, 32, 117, 209, 204, 71, 108, 47, 51, 37, 0, 0, 13, 67, 193, 50, 33, 49, 35, 89, 35, 71, 36, 12, 0, 12, 67, 79, 2,
-			161, 89, 36, 49, 47, 36, 12, 0, 11, 67, 70, 37, 161, 51, 39, 12, 88, 36, 0, 10, 67, 55, 54, 192, 107, 36, 57, 83, 0, 15,
-			67, 42, 35, 33, 6, 47, 35, 84, 35, 75, 75, 39, 107, 0, 16, 69, 41, 181, 115, 120, 112, 47, 35, 83, 89, 37, 55, 35, 50, 0,
-			14, 67, 41, 66, 33, 47, 35, 91, 35, 71, 71, 39, 107, 0, 15, 69, 28, 199, 199, 120, 112, 36, 75, 65, 108, 55, 35, 50, 0, 16,
-			69, 11, 1, 237, 120, 112, 108, 49, 108, 48, 36, 55, 55, 108, 0, 0, 16, 69, 194, 4, 209, 42, 32, 49, 39, 50, 89, 36, 51, 47,
-			39, 0, 19, 70, 182, 36, 72, 133, 66, 179, 48, 40, 51, 71, 36, 107, 36, 91, 47, 37, 0, 12, 67, 125, 150, 30, 65, 39, 19, 88,
-			35, 55, 0, 16, 68, 125, 66, 158, 112, 65, 39, 91, 47, 39, 55, 39, 104, 17, 0, 13, 68, 109, 28, 219, 40, 83, 35, 51, 37, 83,
-			47, 0, 13, 68, 100, 241, 222, 40, 36, 72, 108, 55, 35, 47, 0, 12, 67, 61, 75, 94, 72, 39, 91, 48, 36, 55, 0, 12, 67, 41,
-			231, 200, 47, 39, 55, 39, 65, 71, 0, 15, 69, 40, 210, 135, 131, 48, 47, 35, 107, 47, 108, 50, 37, 0, 15, 69, 33, 24, 176, 123,
-			48, 71, 39, 51, 40, 49, 55, 37, 0, 22, 71, 29, 236, 10, 70, 36, 240, 180, 36, 55, 36, 49, 47, 36, 51, 39, 89, 49, 39, 48,
-			0, 8, 65, 72, 6, 88, 36, 12, 0, 0, 14, 68, 193, 252, 202, 132, 49, 39, 65, 37, 47, 36, 12, 0, 19, 70, 134, 33, 237, 205,
-			241, 192, 6, 107, 35, 84, 108, 48, 36, 57, 65, 108, 0, 16, 70, 130, 36, 72, 29, 225, 192, 50, 40, 51, 71, 108, 55, 108, 0, 14,
-			67, 125, 150, 31, 65, 39, 19, 35, 88, 88, 35, 65, 0, 13, 67, 124, 167, 176, 65, 35, 47, 35, 55, 35, 49, 0, 11, 67, 124, 119,
-			176, 65, 108, 55, 36, 49, 0, 13, 67, 112, 136, 64, 104, 17, 39, 71, 71, 36, 12, 0, 12, 67, 112, 113, 159, 104, 17, 108, 19, 36,
-			65, 0, 15, 68, 109, 20, 202, 60, 83, 36, 51, 36, 89, 47, 35, 72, 0, 18, 70, 79, 56, 15, 69, 225, 192, 89, 37, 50, 72, 36,
-			51, 36, 55, 108, 0, 11, 67, 60, 113, 159, 72, 108, 6, 36, 65, 0, 13, 68, 29, 20, 202, 60, 39, 51, 89, 47, 36, 72, 0, 18,
-			70, 28, 210, 159, 29, 225, 192, 36, 107, 47, 36, 65, 108, 55, 35, 50, 0, 0, 15, 69, 197, 66, 135, 120, 160, 81, 36, 91, 47, 108,
-			55, 47, 0, 11, 67, 193, 236, 0, 49, 35, 55, 35, 49, 0, 17, 69, 115, 55, 226, 124, 160, 104, 17, 36, 57, 65, 40, 65, 35, 47,
-			0, 12, 67, 73, 168, 0, 88, 35, 104, 17, 35, 50, 0, 13, 67, 57, 18, 28, 101, 35, 51, 71, 35, 104, 17, 0, 12, 67, 52, 202,
-			202, 107, 39, 75, 75, 35, 47, 0, 10, 67, 30, 43, 96, 39, 48, 36, 50, 0, 14, 69, 29, 54, 199, 120, 160, 36, 89, 83, 108, 55,
-			47, 0, 16, 70, 10, 1, 202, 137, 252, 192, 108, 50, 108, 47, 39, 65, 37, 0, 19, 70, 9, 193, 213, 109, 28, 192, 108, 104, 17, 108,
-			89, 35, 83, 35, 51, 37, 0, 0, 10, 67, 199, 55, 192, 81, 36, 57, 65, 0, 12, 67, 137, 20, 143, 84, 35, 51, 88, 35, 72, 0,
-			12, 67, 127, 2, 11, 65, 35, 49, 71, 36, 89, 0, 11, 67, 120, 135, 192, 55, 35, 71, 35, 65, 0, 13, 68, 101, 225, 198, 124, 35,
-			55, 108, 19, 36, 65, 0, 11, 67, 70, 34, 33, 51, 40, 71, 35, 107, 0, 10, 67, 69, 39, 192, 51, 35, 88, 65, 0, 15, 69, 29,
-			147, 34, 34, 16, 39, 19, 75, 40, 71, 36, 12, 0, 19, 70, 29, 66, 154, 29, 228, 135, 36, 91, 47, 36, 104, 17, 108, 55, 88, 108,
-			0, 19, 70, 29, 50, 143, 120, 119, 135, 36, 89, 47, 36, 72, 55, 108, 55, 35, 50, 0, 10, 67, 29, 39, 192, 35, 88, 35, 65, 0,
-			15, 69, 29, 18, 162, 180, 240, 39, 51, 47, 39, 48, 36, 72, 0, 11, 67, 9, 36, 79, 108, 88, 39, 51, 72, 0, 15, 69, 8, 161,
-			202, 71, 0, 108, 47, 108, 47, 39, 51, 49, 0, 0, 18, 70, 181, 232, 173, 138, 4, 179, 48, 39, 55, 39, 48, 39, 50, 88, 37, 0,
-			18, 70, 136, 116, 176, 42, 39, 243, 84, 108, 88, 36, 49, 47, 39, 65, 37, 0, 13, 68, 128, 124, 222, 128, 50, 108, 57, 55, 39, 50,
-			0, 16, 68, 125, 113, 200, 112, 65, 39, 6, 47, 108, 71, 36, 104, 17, 0, 12, 67, 124, 226, 158, 65, 39, 101, 47, 35, 55, 0, 17,
-			70, 63, 56, 147, 205, 18, 128, 72, 37, 84, 89, 37, 51, 35, 47, 0, 13, 68, 62, 36, 202, 40, 72, 40, 89, 47, 35, 47, 0, 19,
-			70, 48, 116, 98, 33, 23, 51, 75, 108, 51, 40, 71, 35, 51, 104, 17, 37, 0, 17, 70, 42, 36, 72, 136, 194, 128, 47, 40, 51, 71,
-			39, 75, 36, 47, 0, 17, 69, 32, 114, 153, 84, 128, 71, 108, 47, 35, 35, 89, 89, 39, 71, 0, 14, 69, 31, 52, 135, 33, 224, 37,
-			88, 108, 71, 36, 55, 0, 13, 68, 28, 172, 222, 128, 36, 47, 37, 55, 36, 50, 0, 0, 14, 68, 207, 17, 224, 132, 57, 36, 81, 108,
-			50, 36, 12, 0, 15, 68, 193, 242, 18, 132, 49, 39, 65, 71, 39, 88, 36, 12, 0, 11, 67, 192, 118, 31, 49, 108, 88, 36, 65, 0,
-			13, 68, 136, 119, 158, 132, 84, 35, 55, 55, 108, 107, 0, 13, 68, 129, 65, 224, 132, 50, 36, 91, 108, 50, 36, 0, 14, 67, 125, 180,
-			77, 65, 39, 83, 35, 51, 51, 35, 107, 0, 17, 68, 125, 49, 158, 132, 65, 35, 89, 10, 6, 35, 12, 55, 36, 12, 0, 15, 68, 113,
-			17, 214, 132, 104, 17, 39, 51, 108, 88, 36, 12, 0, 14, 68, 104, 124, 222, 132, 104, 17, 108, 19, 36, 55, 36, 0, 10, 67, 90, 39,
-			0, 88, 39, 104, 17, 0, 14, 68, 70, 33, 224, 132, 51, 35, 84, 108, 50, 36, 12, 0, 12, 67, 68, 119, 31, 51, 108, 104, 17, 36,
-			65, 0, 17, 70, 63, 8, 145, 30, 248, 64, 72, 36, 49, 40, 51, 108, 90, 36, 0, 13, 68, 62, 34, 30, 132, 72, 40, 71, 55, 36,
-			12, 0, 14, 68, 57, 18, 18, 132, 101, 35, 51, 71, 39, 88, 36, 0, 15, 68, 54, 37, 94, 132, 107, 39, 12, 89, 36, 55, 36, 12,
-			0, 14, 68, 49, 18, 18, 132, 75, 39, 51, 71, 39, 88, 36, 0, 19, 71, 32, 114, 179, 76, 168, 138, 28, 71, 108, 47, 37, 89, 47,
-			40, 47, 108, 0, 0, 10, 67, 193, 232, 0, 49, 39, 55, 50, 0, 17, 69, 125, 65, 209, 192, 160, 65, 39, 91, 108, 51, 36, 49, 35,
-			47, 0, 14, 69, 71, 52, 223, 30, 0, 51, 37, 89, 65, 108, 50, 0, 11, 67, 65, 236, 0, 88, 108, 55, 36, 49, 0, 12, 67, 41,
-			23, 210, 47, 39, 51, 65, 39, 88, 0, 8, 67, 30, 44, 192, 40, 57, 0, 15, 68, 29, 231, 222, 120, 39, 55, 6, 65, 36, 55, 35,
-			55, 0, 0, 14, 69, 206, 40, 51, 74, 16, 57, 39, 50, 37, 88, 36, 0, 17, 70, 198, 36, 72, 30, 230, 192, 81, 39, 51, 71, 108,
-			76, 39, 83, 0, 19, 70, 195, 49, 209, 76, 167, 192, 49, 37, 57, 108, 51, 39, 89, 47, 35, 65, 0, 18, 69, 181, 52, 72, 186, 16,
-			48, 36, 89, 35, 51, 71, 35, 76, 76, 36, 0, 10, 67, 136, 124, 19, 84, 108, 49, 89, 0, 11, 67, 127, 52, 83, 65, 37, 51, 36,
-			89, 0, 16, 68, 125, 162, 160, 124, 65, 39, 104, 17, 47, 35, 50, 35, 65, 0, 17, 69, 125, 161, 210, 122, 16, 65, 39, 104, 17, 108,
-			88, 36, 55, 36, 0, 17, 68, 124, 172, 30, 124, 65, 39, 47, 36, 49, 35, 55, 55, 36, 65, 0, 17, 68, 124, 166, 30, 124, 65, 39,
-			47, 36, 88, 35, 55, 55, 36, 65, 0, 10, 67, 108, 124, 19, 83, 108, 49, 89, 0, 21, 72, 91, 49, 193, 29, 230, 94, 124, 112, 88,
-			37, 57, 39, 55, 39, 55, 35, 65, 108, 0, 11, 67, 89, 20, 64, 88, 35, 51, 35, 51, 0, 15, 69, 35, 56, 7, 130, 16, 71, 37,
-			50, 108, 50, 36, 12, 0, 18, 69, 35, 50, 162, 50, 16, 71, 37, 47, 35, 84, 35, 75, 75, 39, 107, 0, 16, 69, 28, 132, 95, 68,
-			240, 35, 71, 35, 51, 65, 35, 51, 72, 0, 0, 13, 67, 192, 172, 20, 49, 39, 47, 35, 49, 35, 91, 0, 23, 72, 181, 18, 162, 61,
-			23, 199, 131, 48, 48, 35, 51, 47, 39, 72, 35, 51, 65, 108, 50, 37, 0, 13, 67, 105, 26, 212, 104, 17, 39, 51, 51, 36, 91, 0,
-			11, 67, 93, 18, 0, 47, 35, 51, 35, 71, 0, 0, 11, 67, 194, 39, 145, 49, 40, 55, 36, 51, 0, 13, 68, 193, 236, 237, 76, 49,
-			37, 55, 37, 48, 89, 0, 13, 67, 185, 195, 209, 76, 36, 104, 17, 35, 72, 51, 0, 11, 67, 182, 44, 17, 48, 39, 49, 36, 51, 0,
-			19, 70, 134, 3, 226, 30, 8, 64, 107, 36, 50, 72, 36, 84, 108, 50, 36, 12, 0, 17, 69, 125, 50, 158, 73, 240, 65, 39, 89, 47,
-			35, 55, 88, 36, 65, 0, 12, 67, 109, 54, 209, 83, 39, 89, 83, 39, 51, 0, 17, 70, 44, 116, 71, 121, 232, 64, 89, 108, 51, 35,
-			55, 55, 108, 107, 0, 10, 67, 43, 50, 145, 47, 37, 47, 51, 0, 17, 70, 34, 12, 79, 30, 8, 64, 71, 35, 50, 81, 72, 108, 50,
-			36, 0, 14, 67, 33, 195, 209, 71, 36, 104, 17, 35, 72, 51, 36, 0, 17, 70, 32, 119, 140, 125, 232, 64, 71, 36, 55, 75, 39, 65,
-			55, 36, 0, 18, 70, 31, 8, 147, 205, 50, 159, 36, 49, 39, 89, 37, 89, 47, 36, 65, 0, 15, 68, 29, 231, 15, 76, 39, 55, 104,
-			17, 39, 72, 39, 89, 0, 15, 68, 29, 53, 220, 76, 39, 89, 47, 39, 104, 17, 39, 89, 0, 0, 13, 68, 196, 116, 176, 80, 81, 108,
-			88, 49, 36, 91, 0, 15, 68, 181, 52, 112, 80, 48, 36, 89, 35, 51, 49, 39, 91, 0, 15, 69, 136, 116, 202, 138, 0, 84, 108, 89,
-			35, 47, 40, 50, 0, 16, 69, 130, 35, 34, 30, 0, 50, 39, 12, 75, 35, 84, 108, 50, 0, 15, 68, 129, 180, 240, 80, 50, 35, 83,
-			35, 89, 49, 36, 91, 0, 23, 72, 126, 34, 162, 69, 60, 240, 120, 160, 65, 39, 47, 39, 51, 10, 89, 37, 49, 55, 36, 47, 0, 16,
-			69, 32, 116, 83, 194, 208, 71, 108, 51, 39, 89, 49, 39, 48, 0, 12, 68, 32, 116, 72, 204, 71, 108, 51, 71, 37, 0, 11, 67, 29,
-			231, 237, 39, 55, 35, 65, 48, 0, 0, 11, 67, 193, 245, 0, 49, 35, 65, 35, 91, 0, 16, 68, 185, 168, 15, 68, 76, 39, 104, 17,
-			39, 50, 72, 35, 51, 0, 14, 67, 125, 55, 151, 65, 39, 89, 35, 55, 55, 35, 47, 0, 14, 67, 125, 51, 211, 65, 39, 89, 35, 72,
-			72, 35, 89, 0, 17, 68, 124, 165, 145, 68, 65, 39, 47, 36, 88, 35, 51, 51, 36, 51, 0, 16, 69, 41, 230, 199, 193, 48, 47, 36,
-			55, 36, 83, 108, 49, 89, 0, 11, 67, 33, 21, 64, 71, 35, 51, 35, 89, 0, 18, 70, 28, 136, 159, 77, 231, 192, 35, 71, 40, 65,
-			39, 89, 55, 36, 65, 0, 24, 7, 217, 135, 226, 128, 140, 216, 180, 107, 36, 75, 51, 37, 57, 36, 9, 91, 35, 65, 89, 37, 0, 46,
-			0, 13, 67, 185, 167, 179, 76, 39, 104, 17, 39, 55, 37, 0, 13, 67, 125, 87, 179, 65, 39, 89, 35, 55, 55, 108, 0, 12, 67, 120,
-			136, 51, 55, 35, 71, 35, 50, 37, 0, 16, 69, 112, 116, 223, 122, 32, 104, 17, 108, 89, 36, 65, 55, 40, 0, 12, 67, 109, 70, 212,
-			83, 36, 91, 83, 36, 91, 0, 11, 67, 92, 119, 148, 47, 108, 55, 36, 91, 0, 11, 67, 82, 36, 84, 91, 40, 51, 36, 91, 0, 24,
-			72, 49, 44, 209, 36, 119, 153, 68, 128, 75, 35, 88, 37, 51, 35, 47, 39, 55, 35, 51, 35, 71, 0, 15, 69, 33, 4, 109, 29, 64,
-			71, 35, 88, 51, 48, 108, 91, 0, 17, 69, 32, 244, 83, 43, 48, 71, 36, 72, 39, 51, 39, 89, 47, 37, 0, 0, 16, 69, 186, 17,
-			209, 61, 16, 76, 108, 107, 108, 51, 72, 35, 51, 0, 13, 68, 183, 52, 112, 76, 48, 37, 51, 36, 49, 89, 0, 15, 69, 182, 39, 179,
-			125, 16, 48, 39, 55, 37, 65, 36, 51, 0, 11, 67, 123, 51, 209, 55, 37, 72, 36, 51, 0, 12, 67, 93, 23, 0, 47, 39, 51, 39,
-			104, 17, 0, 16, 69, 80, 115, 223, 133, 16, 91, 6, 108, 72, 65, 36, 107, 51, 0, 23, 71, 56, 120, 145, 127, 49, 224, 132, 101, 108,
-			84, 35, 51, 36, 65, 37, 57, 108, 50, 36, 12, 0, 16, 69, 56, 116, 84, 193, 16, 101, 108, 51, 91, 36, 49, 35, 51, 0, 15, 70,
-			31, 56, 8, 31, 4, 192, 37, 50, 71, 108, 49, 89, 0, 10, 67, 28, 241, 209, 36, 72, 108, 51, 0, 0, 15, 68, 197, 50, 145, 80,
-			81, 39, 89, 47, 35, 51, 36, 91, 0, 13, 67, 193, 230, 202, 6, 49, 39, 55, 39, 83, 47, 0, 14, 68, 187, 17, 222, 80, 76, 36,
-			81, 108, 55, 36, 91, 0, 16, 69, 125, 172, 222, 30, 0, 65, 39, 104, 17, 37, 55, 108, 50, 0, 13, 67, 105, 230, 10, 104, 17, 36,
-			55, 88, 35, 47, 0, 14, 68, 78, 6, 224, 204, 89, 35, 50, 83, 39, 50, 37, 0, 0, 13, 68, 135, 2, 135, 68, 107, 36, 49, 47,
-			108, 51, 0, 16, 68, 125, 196, 107, 68, 65, 39, 104, 17, 35, 51, 51, 35, 51, 0, 24, 72, 98, 28, 209, 29, 227, 226, 122, 16, 88,
-			35, 107, 37, 51, 39, 72, 72, 39, 84, 55, 36, 12, 0, 13, 68, 62, 28, 199, 68, 72, 36, 107, 57, 108, 51, 0, 16, 69, 33, 116,
-			115, 71, 0, 71, 35, 47, 51, 37, 51, 35, 49, 0, 0, 13, 68, 197, 50, 135, 56, 81, 39, 89, 47, 108, 101, 0, 13, 68, 136, 116,
-			91, 40, 84, 108, 51, 35, 83, 47, 0, 16, 69, 133, 252, 71, 131, 48, 107, 35, 65, 36, 81, 108, 50, 37, 0, 14, 67, 124, 199, 178,
-			65, 35, 75, 35, 55, 55, 36, 12, 0, 17, 68, 124, 165, 10, 40, 65, 39, 47, 36, 91, 35, 47, 47, 36, 47, 0, 15, 69, 101, 82,
-			7, 131, 48, 35, 89, 35, 71, 108, 50, 37, 0, 16, 69, 76, 168, 143, 131, 48, 89, 39, 47, 40, 72, 35, 50, 37, 0, 15, 69, 74,
-			3, 199, 131, 48, 88, 36, 50, 72, 108, 50, 37, 0, 15, 69, 70, 34, 17, 42, 32, 51, 39, 71, 36, 51, 47, 39, 0, 17, 69, 60,
-			226, 145, 193, 64, 72, 39, 101, 47, 35, 51, 49, 39, 91, 0, 16, 69, 56, 120, 28, 123, 48, 101, 108, 50, 104, 17, 39, 55, 37, 0,
-			14, 69, 31, 2, 162, 183, 48, 36, 49, 47, 39, 48, 37, 0, 16, 69, 9, 236, 81, 42, 32, 108, 55, 36, 81, 51, 36, 47, 39, 0,
-			0, 16, 69, 197, 22, 202, 29, 16, 81, 36, 51, 36, 83, 47, 108, 51, 0, 20, 70, 180, 244, 115, 40, 120, 0, 48, 36, 72, 35, 51,
-			37, 57, 36, 47, 108, 50, 0, 14, 68, 133, 66, 135, 60, 6, 107, 35, 91, 47, 108, 72, 0, 10, 67, 87, 51, 192, 89, 36, 57, 72,
-			0, 15, 69, 77, 33, 226, 29, 16, 89, 36, 88, 108, 84, 108, 51, 0, 18, 70, 60, 116, 98, 192, 120, 0, 72, 108, 51, 39, 84, 35,
-			49, 108, 50, 0, 24, 73, 48, 132, 71, 131, 17, 209, 30, 8, 64, 75, 35, 71, 51, 36, 50, 81, 108, 51, 108, 50, 36, 0, 13, 68,
-			32, 116, 112, 60, 71, 108, 51, 49, 39, 72, 0, 22, 72, 29, 251, 81, 204, 119, 179, 73, 240, 35, 65, 48, 36, 51, 57, 108, 55, 37,
-			88, 65, 0, 12, 68, 29, 227, 71, 60, 36, 55, 107, 108, 72, 0, 0, 17, 69, 197, 28, 81, 108, 160, 81, 39, 51, 81, 36, 51, 36,
-			83, 47, 0, 21, 69, 181, 23, 212, 112, 160, 48, 39, 51, 65, 35, 91, 36, 104, 17, 104, 17, 35, 47, 0, 16, 68, 137, 19, 224, 200,
-			84, 35, 51, 72, 35, 50, 36, 57, 36, 0, 16, 70, 123, 50, 162, 30, 12, 192, 55, 37, 47, 84, 108, 50, 37, 0, 18, 70, 112, 244,
-			79, 30, 12, 192, 104, 17, 35, 72, 51, 72, 108, 50, 37, 0, 16, 69, 49, 242, 34, 48, 160, 75, 36, 65, 71, 39, 75, 36, 47, 0,
-			17, 69, 42, 3, 209, 76, 160, 47, 35, 50, 72, 39, 51, 39, 89, 47, 0, 12, 67, 32, 246, 74, 71, 36, 72, 19, 35, 47, 0, 16,
-			70, 31, 8, 158, 138, 252, 192, 36, 49, 39, 55, 39, 90, 37, 0, 0, 12, 67, 198, 2, 15, 81, 39, 50, 71, 35, 72, 0, 11, 67,
-			193, 252, 0, 49, 39, 65, 35, 49, 0, 15, 69, 129, 28, 223, 30, 0, 50, 35, 51, 37, 65, 108, 50, 0, 17, 70, 128, 120, 84, 204,
-			116, 64, 50, 108, 107, 39, 91, 57, 108, 51, 0, 17, 69, 115, 53, 81, 30, 0, 104, 17, 36, 57, 89, 35, 51, 108, 50, 0, 0, 13,
-			67, 197, 18, 50, 81, 39, 51, 71, 36, 57, 36, 0, 18, 70, 182, 36, 82, 124, 120, 51, 48, 40, 51, 88, 35, 65, 108, 50, 37, 0,
-			18, 70, 127, 52, 135, 126, 215, 179, 65, 37, 88, 108, 65, 48, 36, 55, 37, 0, 18, 69, 125, 145, 223, 123, 32, 65, 39, 19, 108, 65,
-			36, 55, 36, 57, 36, 0, 14, 68, 85, 179, 71, 40, 89, 35, 83, 35, 107, 108, 47, 0, 12, 67, 80, 135, 0, 91, 35, 71, 35, 104,
-			17, 0, 17, 70, 58, 35, 199, 205, 248, 51, 101, 39, 72, 37, 65, 36, 50, 37, 0, 21, 70, 33, 232, 15, 124, 242, 128, 71, 39, 55,
-			35, 50, 72, 65, 39, 72, 72, 35, 47, 0, 0, 11, 67, 9, 34, 176, 108, 88, 47, 35, 49, 0, 0, 22, 72, 193, 251, 98, 75, 52,
-			243, 138, 0, 49, 39, 65, 48, 39, 88, 37, 89, 57, 39, 50, 0, 15, 68, 181, 24, 175, 200, 48, 39, 51, 39, 90, 36, 57, 36, 0,
-			16, 70, 135, 52, 98, 63, 56, 0, 107, 37, 51, 39, 72, 37, 50, 0, 22, 71, 34, 3, 209, 30, 4, 158, 204, 71, 35, 50, 72, 35,
-			51, 35, 50, 88, 35, 55, 37, 0, 11, 67, 28, 242, 7, 39, 72, 35, 71, 108, 0, 0, 16, 69, 32, 229, 51, 62, 0, 71, 35, 101,
-			91, 37, 72, 35, 50, 0, 0, 15, 68, 128, 244, 74, 28, 50, 39, 72, 51, 35, 47, 35, 50, 0, 17, 68, 125, 18, 136, 28, 65, 39,
-			51, 35, 47, 47, 35, 71, 35, 50, 0, 23, 72, 110, 8, 159, 130, 39, 162, 191, 48, 83, 36, 50, 39, 65, 36, 50, 39, 55, 39, 90,
-			37, 0, 12, 68, 31, 56, 12, 28, 6, 37, 50, 75, 108, 0, 20, 72, 31, 55, 226, 130, 39, 162, 191, 48, 37, 65, 39, 50, 39, 55,
-			39, 90, 37, 0, 10, 3, 95, 217, 136, 6, 84, 108, 84, 0, 0, 22, 72, 130, 36, 71, 120, 120, 34, 29, 16, 50, 40, 51, 39, 55,
-			19, 35, 50, 84, 108, 51, 0, 23, 72, 32, 212, 71, 120, 120, 34, 29, 16, 71, 35, 107, 51, 39, 55, 10, 35, 50, 84, 108, 51, 0,
-			0, 11, 67, 207, 3, 7, 57, 36, 49, 75, 108, 0, 11, 67, 197, 229, 0, 81, 39, 55, 35, 91, 0, 15, 69, 180, 114, 17, 48, 112,
-			48, 108, 71, 35, 51, 75, 108, 0, 15, 69, 133, 252, 224, 48, 112, 107, 35, 65, 37, 50, 75, 108, 0, 11, 67, 130, 43, 71, 50, 39,
-			12, 48, 108, 0, 13, 67, 124, 183, 135, 65, 35, 89, 35, 55, 35, 50, 0, 13, 67, 113, 226, 7, 104, 17, 35, 55, 71, 35, 50, 0,
-			12, 67, 109, 151, 135, 83, 36, 19, 55, 35, 50, 0, 15, 69, 48, 115, 209, 48, 112, 75, 108, 72, 35, 51, 75, 108, 0, 16, 69, 40,
-			244, 115, 48, 112, 47, 35, 72, 51, 37, 75, 35, 50, 0, 25, 73, 30, 220, 207, 127, 56, 158, 138, 252, 192, 36, 48, 37, 72, 36, 65,
-			37, 57, 39, 55, 39, 90, 37, 0, 11, 67, 29, 230, 135, 36, 55, 104, 17, 108, 0, 11, 67, 29, 87, 135, 35, 89, 55, 35, 50, 0,
-			15, 69, 29, 20, 224, 207, 0, 35, 51, 89, 36, 50, 37, 49, 0, 11, 67, 28, 135, 7, 36, 71, 104, 17, 108, 0, 0, 12, 67, 181,
-			231, 237, 48, 39, 55, 39, 65, 48, 0, 14, 68, 76, 232, 49, 136, 89, 39, 101, 35, 50, 81, 40, 0, 0, 9, 66, 193, 240, 6, 49,
-			35, 65, 0, 13, 68, 186, 3, 202, 28, 76, 35, 50, 72, 47, 108, 0, 13, 68, 185, 28, 18, 28, 76, 36, 51, 49, 88, 108, 0, 13,
-			68, 135, 56, 158, 28, 107, 35, 57, 40, 55, 108, 0, 16, 68, 124, 168, 158, 28, 65, 39, 47, 36, 84, 35, 55, 55, 108, 0, 11, 67,
-			76, 131, 192, 89, 35, 71, 35, 72, 0, 10, 67, 75, 51, 192, 88, 36, 57, 72, 0, 13, 68, 69, 147, 210, 28, 51, 35, 19, 72, 88,
-			108, 0, 13, 68, 43, 12, 222, 28, 47, 36, 49, 37, 55, 108, 0, 14, 68, 33, 23, 222, 28, 71, 35, 51, 65, 35, 55, 108, 0, 14,
-			68, 32, 119, 30, 28, 71, 108, 104, 17, 36, 55, 108, 0, 0, 17, 69, 193, 21, 32, 62, 32, 49, 36, 51, 36, 91, 36, 50, 72, 39,
-			0, 10, 67, 186, 43, 115, 76, 40, 71, 37, 0, 22, 72, 180, 116, 71, 193, 236, 224, 207, 0, 48, 108, 51, 108, 49, 36, 55, 37, 50,
-			37, 49, 0, 11, 67, 127, 60, 98, 65, 36, 57, 81, 40, 0, 13, 67, 41, 83, 243, 47, 35, 89, 35, 72, 72, 37, 0, 13, 67, 40,
-			229, 243, 47, 35, 101, 35, 47, 47, 37, 0, 16, 69, 35, 24, 159, 198, 32, 71, 36, 81, 39, 65, 35, 81, 40, 0, 0, 13, 67, 207,
-			10, 225, 6, 57, 36, 49, 49, 36, 12, 0, 11, 67, 193, 247, 192, 49, 35, 65, 35, 65, 0, 12, 67, 190, 3, 225, 90, 36, 50, 72,
-			36, 12, 0, 16, 69, 136, 195, 199, 128, 112, 84, 36, 75, 72, 108, 50, 35, 50, 0, 15, 69, 133, 36, 71, 180, 112, 107, 36, 88, 108,
-			51, 48, 108, 0, 10, 67, 129, 86, 192, 50, 36, 89, 83, 0, 17, 70, 128, 123, 94, 206, 40, 0, 50, 108, 48, 36, 55, 19, 39, 50,
-			0, 15, 69, 126, 39, 135, 128, 112, 65, 39, 12, 55, 108, 50, 108, 0, 18, 69, 124, 210, 159, 120, 112, 65, 39, 107, 47, 35, 65, 36,
-			55, 35, 50, 0, 14, 67, 124, 183, 139, 65, 39, 89, 35, 55, 55, 35, 89, 0, 12, 67, 122, 12, 97, 55, 36, 50, 81, 36, 12, 0,
-			11, 67, 101, 243, 225, 39, 65, 72, 36, 12, 0, 13, 67, 101, 195, 225, 19, 39, 104, 17, 72, 36, 12, 0, 12, 67, 74, 3, 225, 88,
-			36, 50, 72, 36, 12, 0, 12, 67, 70, 3, 225, 51, 35, 50, 72, 36, 12, 0, 18, 70, 63, 4, 202, 68, 120, 0, 72, 36, 49, 89,
-			47, 36, 51, 108, 50, 0, 17, 69, 41, 196, 115, 32, 112, 47, 35, 104, 17, 51, 37, 71, 35, 50, 0, 11, 67, 34, 23, 192, 71, 36,
-			107, 35, 65, 0, 17, 70, 31, 1, 210, 206, 40, 0, 39, 49, 108, 88, 37, 57, 39, 50, 0, 0, 12, 67, 186, 1, 224, 76, 36, 6,
-			50, 108, 50, 0, 15, 67, 126, 34, 220, 65, 39, 84, 35, 89, 89, 35, 104, 17, 0, 12, 67, 126, 23, 138, 65, 39, 107, 55, 35, 47,
-			0, 13, 67, 105, 183, 138, 104, 17, 36, 83, 55, 35, 47, 0, 13, 68, 40, 104, 145, 204, 47, 36, 19, 39, 51, 37, 0, 18, 70, 32,
-			229, 34, 63, 28, 192, 71, 35, 101, 91, 40, 72, 36, 81, 37, 0, 0, 11, 67, 181, 35, 192, 48, 35, 88, 35, 72, 0, 13, 68, 135,
-			51, 15, 132, 107, 37, 75, 72, 35, 107, 0, 12, 67, 125, 83, 91, 65, 39, 89, 107, 35, 83, 0, 10, 67, 125, 35, 192, 65, 39, 88,
-			72, 0, 12, 67, 124, 215, 176, 65, 39, 107, 55, 36, 49, 0, 12, 67, 79, 51, 192, 89, 36, 57, 57, 36, 72, 0, 13, 68, 60, 119,
-			241, 132, 72, 108, 65, 81, 35, 107, 0, 12, 67, 55, 1, 223, 107, 39, 49, 49, 108, 65, 0, 12, 67, 42, 2, 48, 47, 39, 50, 71,
-			35, 49, 0, 11, 67, 29, 34, 48, 39, 88, 71, 35, 49, 0, 16, 70, 29, 28, 71, 129, 33, 192, 39, 51, 81, 108, 50, 88, 108, 0,
-			8, 65, 76, 6, 89, 37, 50, 0, 0, 9, 66, 193, 224, 6, 49, 39, 55, 0, 14, 68, 182, 12, 89, 128, 48, 35, 50, 81, 40, 35,
-			50, 0, 17, 69, 181, 18, 15, 135, 48, 48, 39, 51, 71, 36, 72, 36, 107, 37, 0, 16, 69, 130, 36, 224, 199, 48, 50, 39, 12, 89,
-			35, 50, 81, 37, 0, 14, 68, 128, 193, 200, 40, 50, 36, 75, 108, 71, 35, 47, 0, 14, 67, 126, 44, 30, 65, 39, 84, 35, 49, 49,
-			36, 55, 0, 12, 67, 126, 3, 94, 65, 39, 50, 107, 35, 55, 0, 13, 67, 125, 119, 136, 6, 65, 35, 47, 55, 35, 71, 0, 14, 67,
-			125, 18, 136, 65, 39, 51, 35, 47, 47, 35, 71, 0, 17, 68, 124, 168, 151, 128, 65, 39, 47, 36, 84, 35, 47, 47, 36, 50, 0, 14,
-			67, 114, 247, 47, 104, 17, 36, 90, 104, 17, 36, 90, 0, 12, 67, 78, 44, 94, 89, 39, 12, 81, 39, 55, 0, 16, 68, 73, 24, 145,
-			112, 88, 35, 51, 84, 35, 51, 35, 104, 17, 0, 14, 68, 69, 44, 199, 128, 51, 35, 88, 37, 57, 108, 50, 0, 15, 69, 62, 36, 96,
-			199, 48, 72, 39, 51, 35, 50, 81, 37, 0, 10, 67, 44, 130, 128, 89, 35, 71, 47, 0, 15, 68, 41, 161, 200, 128, 47, 35, 104, 17,
-			108, 71, 39, 50, 0, 14, 68, 34, 33, 215, 128, 71, 36, 84, 108, 47, 36, 50, 0, 15, 69, 28, 136, 152, 35, 48, 35, 71, 40, 88,
-			35, 71, 37, 0, 0, 14, 67, 193, 231, 225, 6, 49, 35, 55, 35, 65, 36, 12, 0, 9, 67, 130, 38, 64, 50, 39, 19, 0, 14, 67,
-			125, 66, 33, 65, 39, 91, 35, 71, 71, 35, 107, 0, 15, 68, 125, 35, 145, 108, 65, 39, 88, 35, 101, 51, 35, 83, 0, 15, 68, 124,
-			226, 158, 108, 65, 39, 101, 47, 35, 55, 36, 83, 0, 12, 67, 112, 214, 192, 104, 17, 36, 107, 35, 83, 0, 13, 67, 105, 22, 225, 104,
-			17, 39, 51, 83, 36, 12, 0, 12, 67, 77, 22, 225, 89, 39, 51, 83, 36, 12, 0, 12, 67, 62, 23, 192, 6, 72, 35, 107, 39, 65,
-			0, 11, 67, 59, 52, 143, 101, 37, 88, 35, 72, 0, 11, 67, 57, 22, 225, 101, 39, 51, 83, 36, 0, 12, 67, 53, 70, 225, 107, 35,
-			91, 35, 83, 36, 0, 12, 67, 53, 22, 225, 107, 36, 51, 83, 36, 12, 0, 12, 67, 50, 3, 225, 75, 36, 50, 72, 36, 12, 0, 14,
-			68, 42, 33, 214, 100, 47, 35, 84, 108, 88, 39, 19, 0, 14, 68, 41, 33, 205, 124, 47, 35, 88, 108, 107, 39, 65, 0, 12, 67, 41,
-			18, 15, 47, 39, 51, 71, 39, 72, 0, 11, 67, 40, 214, 225, 47, 39, 107, 83, 36, 0, 16, 69, 33, 225, 210, 62, 16, 71, 35, 55,
-			108, 88, 35, 72, 36, 0, 11, 67, 30, 23, 192, 35, 107, 35, 65, 65, 0, 17, 70, 29, 66, 153, 29, 228, 135, 36, 91, 47, 36, 108,
-			55, 88, 108, 0, 11, 67, 10, 12, 97, 108, 50, 81, 35, 107, 0, 15, 68, 125, 17, 204, 100, 65, 39, 51, 108, 75, 36, 19, 0, 48,
-			15, 68, 125, 17, 204, 100, 65, 35, 51, 108, 75, 36, 19, 0, 46, 0, 11, 67, 197, 236, 0, 81, 39, 55, 35, 49, 0, 11, 67, 194,
-			1, 224, 49, 39, 50, 108, 50, 0, 17, 70, 131, 56, 10, 128, 248, 128, 50, 37, 50, 47, 36, 50, 72, 39, 0, 11, 67, 129, 76, 224,
-			50, 36, 91, 37, 50, 0, 12, 67, 127, 55, 224, 65, 36, 57, 65, 35, 50, 0, 14, 69, 76, 119, 159, 138, 0, 89, 108, 55, 65, 39,
-			50, 0, 16, 69, 74, 3, 199, 128, 160, 88, 36, 50, 72, 108, 50, 35, 47, 0, 9, 67, 70, 43, 192, 51, 39, 90, 0, 11, 67, 69,
-			44, 224, 51, 36, 88, 37, 50, 0, 11, 67, 62, 36, 142, 72, 40, 88, 35, 101, 0, 19, 70, 50, 44, 96, 61, 252, 192, 75, 39, 84,
-			81, 35, 50, 72, 39, 65, 37, 0, 10, 67, 28, 172, 224, 36, 47, 37, 50, 0, 14, 69, 10, 3, 199, 128, 160, 108, 50, 72, 108, 50,
-			47, 0, 12, 67, 129, 76, 224, 50, 36, 91, 37, 50, 0, 48, 12, 67, 129, 76, 224, 50, 35, 91, 37, 50, 0, 46, 0, 18, 70, 197,
-			19, 194, 124, 248, 64, 81, 36, 51, 72, 108, 65, 35, 72, 36, 0, 13, 68, 187, 1, 209, 132, 76, 36, 49, 108, 51, 36, 0, 12, 68,
-			184, 114, 159, 132, 76, 108, 47, 65, 36, 0, 11, 67, 183, 52, 192, 48, 37, 57, 36, 89, 0, 13, 68, 136, 120, 49, 132, 84, 108, 50,
-			81, 35, 107, 0, 15, 68, 128, 248, 96, 60, 50, 35, 72, 35, 107, 35, 50, 72, 0, 12, 67, 126, 37, 153, 65, 39, 12, 88, 36, 19,
-			0, 13, 68, 101, 81, 209, 132, 39, 89, 108, 51, 36, 12, 0, 14, 68, 49, 44, 209, 132, 75, 35, 88, 37, 51, 36, 12, 0, 12, 67,
-			34, 229, 31, 71, 36, 76, 36, 91, 65, 0, 14, 68, 32, 172, 15, 132, 71, 39, 47, 49, 35, 72, 36, 0, 13, 68, 32, 119, 158, 132,
-			71, 36, 55, 55, 108, 107, 0, 13, 68, 28, 209, 215, 132, 36, 107, 108, 47, 36, 12, 0, 13, 68, 28, 193, 209, 132, 36, 75, 108, 51,
-			36, 12, 0, 17, 70, 9, 33, 207, 124, 195, 192, 108, 88, 108, 72, 65, 35, 75, 72, 0, 0, 19, 70, 182, 36, 77, 204, 244, 115, 48,
-			40, 51, 107, 36, 57, 72, 35, 51, 37, 0, 14, 68, 137, 50, 145, 128, 84, 36, 89, 47, 36, 51, 50, 0, 18, 70, 127, 52, 135, 130,
-			215, 179, 65, 37, 88, 108, 50, 48, 37, 55, 37, 0, 15, 68, 125, 193, 209, 128, 65, 39, 104, 17, 108, 51, 36, 50, 0, 7, 66, 122,
-			32, 55, 39, 0, 14, 68, 109, 18, 145, 128, 83, 39, 51, 47, 51, 35, 50, 0, 11, 67, 62, 44, 94, 72, 39, 81, 39, 55, 0, 15,
-			68, 41, 193, 209, 128, 47, 35, 104, 17, 108, 51, 39, 50, 0, 13, 68, 32, 124, 209, 128, 71, 108, 57, 36, 51, 50, 0, 22, 72, 31,
-			51, 198, 137, 232, 175, 207, 0, 10, 37, 72, 36, 10, 39, 55, 39, 90, 37, 49, 0, 12, 68, 10, 12, 226, 128, 108, 50, 57, 39, 50,
-			0, 0, 15, 68, 186, 17, 209, 124, 6, 76, 108, 107, 108, 51, 39, 65, 0, 15, 69, 184, 119, 143, 70, 16, 76, 108, 55, 72, 35, 51,
-			51, 0, 14, 68, 129, 24, 179, 124, 50, 35, 51, 35, 84, 37, 65, 0, 15, 68, 126, 8, 79, 124, 65, 39, 50, 107, 35, 72, 36, 65,
-			0, 17, 69, 126, 1, 216, 70, 16, 65, 39, 50, 108, 88, 36, 51, 36, 12, 0, 14, 67, 125, 226, 19, 65, 39, 55, 35, 71, 71, 35,
-			89, 0, 17, 69, 125, 97, 209, 34, 16, 65, 39, 88, 108, 51, 36, 71, 36, 12, 0, 16, 69, 124, 129, 205, 46, 16, 65, 39, 71, 108,
-			107, 36, 89, 36, 0, 21, 70, 120, 124, 202, 57, 230, 192, 55, 108, 57, 35, 47, 35, 101, 35, 55, 55, 35, 83, 0, 16, 69, 109, 19,
-			160, 62, 16, 83, 35, 51, 101, 39, 50, 72, 36, 0, 20, 69, 105, 23, 15, 70, 16, 104, 17, 35, 51, 104, 17, 72, 35, 51, 51, 36,
-			12, 0, 10, 67, 94, 36, 64, 6, 47, 39, 51, 0, 16, 69, 79, 50, 34, 206, 16, 89, 37, 71, 35, 84, 36, 57, 107, 0, 13, 68,
-			63, 59, 94, 124, 72, 37, 48, 55, 39, 65, 0, 14, 68, 57, 22, 225, 124, 101, 35, 51, 83, 35, 107, 65, 0, 17, 69, 33, 225, 206,
-			70, 16, 71, 36, 55, 35, 101, 35, 51, 36, 12, 0, 19, 70, 32, 229, 7, 206, 3, 225, 71, 35, 101, 91, 108, 57, 108, 50, 72, 36,
-			0, 0, 14, 67, 125, 148, 146, 65, 39, 19, 35, 88, 88, 35, 88, 0, 12, 67, 125, 147, 18, 65, 39, 19, 75, 36, 88, 0, 13, 68,
-			125, 56, 162, 120, 65, 35, 89, 19, 40, 55, 0, 11, 67, 122, 43, 82, 55, 39, 48, 36, 88, 0, 17, 70, 109, 50, 179, 136, 119, 128,
-			83, 36, 89, 47, 37, 84, 108, 55, 0, 12, 67, 109, 27, 82, 83, 36, 51, 48, 35, 88, 0, 13, 68, 102, 33, 223, 120, 35, 84, 108,
-			65, 36, 55, 0, 15, 68, 61, 19, 207, 120, 72, 35, 51, 72, 36, 72, 36, 55, 0, 21, 71, 41, 23, 226, 41, 17, 237, 204, 47, 36,
-			51, 65, 39, 47, 39, 51, 108, 48, 37, 0, 20, 71, 40, 124, 19, 204, 244, 95, 204, 47, 108, 49, 89, 37, 72, 36, 51, 65, 37, 0,
-			13, 68, 29, 230, 79, 120, 39, 55, 10, 35, 72, 55, 0, 0, 18, 70, 197, 17, 243, 128, 248, 64, 81, 35, 51, 108, 57, 108, 50, 72,
-			36, 0, 11, 67, 135, 50, 145, 107, 37, 47, 36, 51, 0, 11, 67, 127, 50, 17, 65, 37, 71, 35, 51, 0, 17, 70, 109, 24, 159, 30,
-			3, 192, 83, 39, 51, 40, 65, 108, 50, 72, 0, 15, 69, 83, 52, 91, 133, 240, 91, 37, 51, 83, 35, 107, 65, 0, 16, 70, 78, 44,
-			238, 206, 12, 64, 89, 40, 37, 76, 37, 50, 81, 0, 12, 67, 77, 27, 81, 89, 35, 51, 48, 39, 51, 0, 15, 69, 63, 52, 91, 133,
-			240, 72, 37, 51, 83, 35, 107, 65, 0, 12, 67, 33, 18, 17, 71, 35, 51, 71, 35, 51, 0, 15, 69, 30, 220, 207, 69, 240, 36, 48,
-			37, 72, 36, 51, 65, 0, 0, 11, 67, 125, 247, 162, 65, 35, 65, 55, 39, 0, 12, 67, 81, 146, 0, 91, 39, 19, 35, 12, 71, 0,
-			10, 67, 78, 39, 162, 89, 39, 55, 39, 0, 13, 68, 74, 35, 237, 72, 88, 40, 72, 48, 35, 88, 0, 10, 67, 69, 242, 0, 51, 39,
-			65, 71, 0, 0, 19, 70, 193, 228, 98, 109, 23, 192, 49, 39, 55, 39, 51, 39, 83, 39, 51, 65, 0, 19, 70, 186, 17, 209, 62, 23,
-			192, 76, 108, 107, 108, 51, 72, 35, 107, 39, 65, 0, 11, 67, 134, 4, 64, 107, 39, 50, 35, 51, 0, 12, 67, 129, 19, 19, 50, 35,
-			51, 75, 36, 89, 0, 15, 68, 125, 146, 136, 68, 65, 39, 19, 47, 35, 71, 35, 51, 0, 14, 68, 124, 225, 200, 68, 65, 39, 101, 108,
-			71, 36, 51, 0, 11, 67, 122, 228, 64, 55, 35, 76, 35, 51, 0, 14, 69, 111, 55, 179, 181, 48, 83, 37, 55, 37, 48, 89, 0, 15,
-			68, 79, 4, 74, 68, 89, 36, 49, 51, 36, 47, 36, 51, 0, 15, 68, 41, 28, 222, 68, 47, 36, 51, 36, 57, 55, 36, 51, 0, 15,
-			69, 29, 236, 30, 207, 0, 35, 55, 49, 39, 55, 37, 49, 0, 21, 2, 95, 33, 35, 55, 108, 65, 35, 47, 36, 6, 47, 35, 19, 35,
-			75, 75, 39, 71, 0, 0, 12, 68, 196, 120, 15, 204, 81, 108, 50, 72, 37, 0, 15, 70, 196, 116, 162, 27, 55, 128, 81, 108, 88, 39,
-			37, 55, 0, 10, 67, 139, 56, 128, 84, 36, 57, 84, 0, 14, 69, 124, 116, 74, 206, 0, 65, 108, 51, 47, 37, 50, 0, 16, 69, 104,
-			124, 200, 30, 0, 104, 17, 108, 57, 36, 71, 108, 50, 0, 13, 68, 83, 1, 217, 204, 91, 39, 49, 108, 10, 37, 0, 13, 68, 68, 129,
-			217, 204, 51, 39, 71, 108, 10, 37, 0, 24, 73, 56, 120, 160, 61, 49, 222, 29, 28, 192, 101, 108, 84, 35, 50, 72, 89, 108, 55, 108,
-			51, 37, 0, 12, 68, 40, 114, 30, 136, 47, 108, 71, 55, 39, 0, 18, 70, 32, 114, 7, 81, 247, 128, 71, 108, 71, 108, 91, 35, 65,
-			35, 55, 0, 11, 67, 195, 56, 128, 49, 37, 57, 40, 0, 46, 0, 15, 69, 190, 43, 115, 41, 16, 90, 40, 48, 37, 47, 36, 51, 0,
-			15, 68, 125, 18, 136, 92, 65, 39, 51, 47, 35, 71, 36, 47, 0, 11, 67, 122, 34, 145, 55, 39, 47, 36, 51, 0, 11, 67, 115, 51,
-			192, 104, 17, 36, 57, 72, 0, 10, 67, 100, 131, 192, 35, 12, 71, 72, 0, 12, 67, 69, 247, 0, 51, 35, 65, 35, 104, 17, 0, 12,
-			67, 59, 50, 17, 101, 36, 57, 71, 35, 51, 0, 16, 69, 49, 24, 135, 49, 16, 75, 36, 51, 84, 108, 75, 36, 51, 0, 15, 69, 42,
-			44, 243, 41, 16, 47, 40, 37, 12, 47, 36, 51, 0, 11, 67, 29, 59, 81, 36, 89, 48, 35, 51, 0, 10, 67, 28, 131, 192, 35, 71,
-			35, 72, 0, 0, 11, 67, 196, 119, 148, 81, 108, 55, 36, 91, 0, 11, 67, 192, 132, 115, 49, 39, 71, 51, 108, 0, 17, 69, 181, 21,
-			15, 199, 48, 48, 39, 51, 91, 39, 72, 36, 81, 37, 0, 10, 67, 108, 119, 148, 83, 108, 55, 91, 0, 15, 69, 78, 212, 71, 130, 32,
-			89, 39, 48, 51, 108, 50, 39, 0, 11, 67, 58, 2, 243, 101, 39, 50, 89, 108, 0, 18, 69, 41, 232, 138, 122, 32, 47, 36, 55, 39,
-			12, 47, 36, 55, 39, 12, 0, 12, 67, 40, 130, 128, 47, 35, 71, 71, 35, 47, 0, 11, 67, 40, 119, 148, 47, 108, 55, 36, 91, 0,
-			17, 70, 34, 33, 222, 109, 104, 158, 71, 39, 55, 83, 39, 88, 40, 55, 0, 15, 69, 32, 246, 97, 63, 48, 71, 35, 72, 35, 107, 72,
-			37, 0, 12, 67, 32, 132, 115, 71, 36, 71, 35, 51, 37, 0, 13, 68, 32, 116, 74, 72, 71, 108, 51, 47, 36, 88, 0, 14, 68, 29,
-			40, 174, 72, 36, 88, 88, 39, 76, 36, 88, 0, 20, 71, 28, 168, 159, 29, 60, 226, 128, 39, 47, 39, 65, 108, 89, 37, 57, 39, 50,
-			0, 10, 67, 8, 130, 128, 108, 71, 35, 47, 0, 0, 17, 70, 182, 2, 135, 198, 40, 0, 48, 36, 50, 47, 108, 81, 39, 50, 0, 19,
-			70, 125, 19, 224, 80, 120, 0, 65, 39, 51, 72, 35, 50, 36, 91, 108, 50, 0, 9, 67, 122, 35, 64, 55, 39, 107, 0, 14, 68, 109,
-			24, 136, 68, 83, 39, 51, 40, 71, 35, 51, 0, 18, 70, 69, 44, 211, 40, 120, 19, 51, 36, 88, 37, 89, 47, 108, 50, 89, 0, 17,
-			70, 48, 120, 49, 137, 228, 64, 75, 108, 50, 81, 40, 55, 36, 51, 0, 15, 68, 33, 24, 136, 68, 71, 36, 51, 51, 39, 71, 36, 51,
-			0, 0, 12, 68, 132, 120, 17, 204, 107, 108, 50, 51, 37, 0, 16, 69, 128, 227, 34, 30, 0, 50, 35, 101, 75, 35, 84, 108, 50, 0,
-			14, 68, 125, 85, 219, 204, 65, 39, 89, 47, 35, 83, 108, 0, 9, 67, 122, 43, 192, 55, 39, 90, 0, 14, 68, 77, 183, 177, 204, 89,
-			39, 83, 55, 36, 81, 37, 0, 14, 68, 41, 184, 49, 204, 47, 39, 83, 35, 50, 81, 37, 0, 11, 67, 29, 247, 138, 39, 65, 55, 36,
-			47, 0, 0, 16, 69, 186, 17, 209, 33, 16, 76, 108, 107, 108, 51, 71, 35, 51, 0, 19, 70, 182, 36, 81, 128, 194, 17, 48, 40, 51,
-			51, 35, 50, 75, 71, 35, 51, 0, 11, 67, 137, 35, 192, 84, 35, 88, 35, 72, 0, 10, 67, 100, 130, 192, 35, 71, 35, 89, 0, 21,
-			70, 58, 4, 145, 182, 4, 145, 101, 36, 50, 88, 36, 51, 48, 36, 50, 88, 36, 51, 0, 15, 69, 42, 33, 179, 41, 16, 47, 40, 19,
-			37, 47, 36, 51, 0, 10, 67, 30, 43, 112, 39, 48, 36, 49, 0, 10, 67, 31, 51, 192, 37, 12, 72, 0, 76, 0, 16, 69, 187, 24,
-			160, 199, 48, 76, 36, 81, 40, 50, 36, 81, 37, 0, 12, 67, 101, 72, 178, 36, 91, 84, 36, 57, 36, 0, 14, 68, 69, 49, 222, 40,
-			51, 36, 89, 108, 55, 35, 47, 0, 14, 68, 61, 225, 222, 40, 72, 36, 55, 108, 55, 35, 47, 0, 16, 69, 41, 17, 239, 63, 48, 47,
-			36, 51, 108, 90, 36, 72, 37, 0, 16, 69, 34, 20, 96, 199, 48, 71, 36, 107, 51, 35, 50, 81, 37, 0, 15, 68, 32, 118, 82, 40,
-			71, 108, 19, 36, 88, 88, 35, 47, 0, 0, 17, 70, 196, 120, 146, 32, 120, 0, 81, 108, 84, 88, 35, 71, 108, 50, 0, 18, 70, 196,
-			120, 49, 76, 164, 64, 81, 108, 50, 81, 36, 89, 47, 36, 51, 0, 19, 70, 182, 39, 179, 76, 164, 64, 48, 39, 55, 37, 57, 36, 89,
-			47, 36, 51, 0, 17, 70, 180, 116, 74, 204, 164, 64, 48, 108, 51, 47, 37, 47, 39, 51, 0, 12, 67, 121, 20, 143, 55, 35, 51, 88,
-			35, 72, 0, 10, 67, 86, 6, 64, 89, 39, 50, 19, 0, 10, 67, 31, 52, 143, 37, 88, 35, 72, 0, 16, 70, 29, 28, 240, 78, 40,
-			0, 36, 51, 37, 49, 89, 39, 50, 0, 18, 70, 8, 165, 32, 80, 120, 0, 108, 47, 35, 91, 50, 36, 91, 108, 50, 0, 19, 2, 95,
-			41, 48, 35, 51, 108, 50, 47, 36, 88, 71, 35, 89, 47, 36, 12, 0, 0, 14, 69, 196, 119, 135, 128, 160, 81, 108, 55, 108, 50, 47,
-			0, 17, 70, 180, 118, 212, 29, 28, 192, 48, 108, 83, 36, 91, 108, 51, 37, 0, 18, 69, 125, 18, 51, 30, 0, 65, 39, 51, 35, 71,
-			71, 37, 57, 108, 50, 0, 12, 67, 124, 178, 10, 65, 39, 89, 71, 35, 47, 0, 21, 70, 113, 231, 20, 128, 252, 192, 104, 17, 35, 55,
-			35, 104, 17, 91, 35, 50, 72, 37, 0, 16, 69, 70, 35, 212, 194, 0, 51, 40, 72, 91, 36, 49, 35, 50, 0, 16, 68, 41, 19, 31,
-			200, 47, 35, 51, 75, 39, 65, 36, 57, 36, 0, 15, 68, 32, 247, 30, 32, 71, 35, 72, 104, 17, 35, 55, 71, 0, 13, 68, 28, 193,
-			224, 32, 35, 75, 108, 50, 36, 71, 0, 20, 71, 9, 226, 7, 122, 43, 94, 136, 108, 55, 71, 108, 55, 40, 48, 39, 55, 39, 0, 16,
-			2, 95, 40, 48, 35, 51, 108, 50, 47, 36, 88, 71, 108, 88, 0, 0, 17, 70, 206, 40, 7, 204, 163, 192, 57, 40, 50, 108, 57, 47,
-			36, 72, 0, 25, 7, 217, 130, 226, 128, 140, 216, 184, 104, 12, 12, 35, 71, 55, 10, 35, 88, 9, 88, 39, 107, 51, 0, 46, 0, 19,
-			70, 128, 114, 17, 28, 244, 115, 50, 108, 71, 35, 51, 108, 72, 35, 51, 37, 0, 11, 67, 126, 35, 8, 65, 39, 75, 36, 71, 0, 18,
-			69, 68, 120, 109, 123, 32, 51, 108, 107, 48, 36, 55, 55, 36, 57, 36, 0, 13, 67, 63, 10, 242, 72, 35, 49, 49, 36, 57, 36, 0,
-			17, 69, 60, 120, 151, 120, 128, 72, 108, 12, 84, 47, 35, 55, 35, 71, 0, 11, 2, 95, 46, 50, 39, 104, 47, 36, 12, 0, 0, 15,
-			69, 197, 19, 199, 128, 240, 81, 35, 51, 72, 108, 50, 72, 0, 13, 67, 124, 172, 7, 65, 39, 47, 35, 49, 49, 108, 0, 16, 69, 32,
-			124, 211, 40, 240, 71, 36, 19, 37, 89, 47, 35, 72, 0, 16, 2, 95, 45, 50, 37, 65, 10, 83, 108, 89, 36, 55, 36, 12, 0, 0,
-			14, 68, 126, 33, 216, 32, 65, 39, 84, 108, 88, 36, 71, 0, 10, 67, 124, 216, 128, 65, 35, 107, 84, 0, 10, 67, 77, 156, 192, 89,
-			35, 19, 57, 0, 9, 67, 48, 248, 128, 75, 72, 39, 0, 21, 71, 9, 33, 209, 33, 232, 15, 204, 108, 88, 108, 51, 71, 39, 55, 35,
-			50, 72, 37, 0, 0, 7, 2, 95, 51, 89, 36, 0, 0, 8, 66, 183, 48, 48, 36, 57, 0, 24, 72, 108, 168, 177, 68, 119, 202, 71,
-			48, 83, 39, 47, 39, 81, 36, 51, 108, 65, 36, 47, 51, 37, 0, 12, 67, 95, 50, 0, 47, 35, 57, 57, 36, 71, 0, 17, 3, 95,
-			216, 159, 35, 55, 108, 65, 35, 47, 36, 89, 39, 108, 55, 0, 7, 2, 95, 50, 72, 39, 0, 0, 11, 67, 110, 36, 71, 83, 39, 51,
-			35, 50, 0, 10, 67, 78, 44, 199, 89, 39, 57, 108, 0, 12, 67, 69, 55, 199, 51, 35, 89, 65, 35, 50, 0, 12, 67, 57, 230, 199,
-			101, 39, 55, 35, 83, 108, 0, 11, 67, 49, 230, 199, 75, 39, 55, 83, 108, 0, 8, 2, 95, 49, 57, 36, 49, 0, 0, 13, 68, 133,
-			225, 240, 136, 107, 39, 55, 108, 49, 40, 0, 16, 69, 128, 228, 202, 206, 0, 50, 35, 101, 39, 89, 47, 37, 50, 0, 10, 67, 76, 200,
-			0, 89, 36, 57, 50, 0, 9, 2, 95, 48, 89, 36, 83, 51, 0, 0, 17, 68, 124, 195, 207, 28, 65, 39, 75, 35, 72, 72, 35, 72,
-			35, 50, 0, 14, 68, 70, 24, 31, 28, 51, 35, 107, 50, 35, 65, 108, 0, 11, 67, 69, 243, 192, 51, 35, 65, 35, 72, 0, 14, 68,
-			63, 2, 145, 28, 72, 39, 49, 47, 39, 51, 108, 0, 13, 68, 30, 2, 161, 28, 36, 50, 47, 36, 107, 108, 0, 10, 67, 9, 243, 192,
-			108, 65, 35, 72, 0, 9, 2, 95, 55, 107, 35, 83, 47, 0, 0, 11, 67, 125, 60, 34, 65, 39, 89, 49, 39, 0, 21, 72, 29, 60,
-			207, 120, 124, 10, 207, 0, 35, 89, 37, 72, 55, 108, 49, 47, 37, 49, 0, 10, 67, 29, 19, 226, 39, 51, 72, 40, 0, 8, 2, 95,
-			54, 91, 36, 91, 0, 17, 3, 95, 216, 155, 50, 39, 104, 47, 36, 84, 37, 51, 81, 40, 55, 0, 0, 12, 67, 198, 3, 225, 81, 39,
-			50, 72, 36, 12, 0, 12, 67, 194, 3, 225, 49, 39, 50, 72, 36, 12, 0, 16, 69, 128, 132, 79, 132, 112, 50, 35, 71, 35, 51, 72,
-			107, 108, 0, 20, 69, 124, 166, 95, 60, 112, 65, 39, 47, 36, 19, 35, 65, 65, 36, 72, 35, 50, 0, 11, 67, 79, 23, 192, 89, 35,
-			81, 35, 65, 0, 21, 74, 77, 246, 226, 131, 60, 7, 71, 4, 202, 68, 89, 35, 65, 83, 39, 50, 37, 49, 0, 11, 67, 76, 161, 207,
-			89, 36, 47, 108, 72, 0, 16, 70, 76, 116, 71, 110, 40, 0, 89, 108, 51, 108, 83, 39, 50, 0, 10, 67, 74, 23, 192, 88, 39, 107,
-			65, 0, 10, 67, 63, 23, 192, 72, 39, 81, 65, 0, 12, 67, 49, 236, 97, 75, 39, 55, 81, 36, 12, 0, 11, 67, 35, 1, 225, 71,
-			36, 49, 108, 107, 0, 11, 67, 33, 146, 225, 71, 36, 19, 89, 36, 0, 15, 69, 29, 50, 153, 108, 112, 36, 89, 47, 36, 19, 83, 108,
-			0, 9, 2, 95, 53, 48, 35, 50, 75, 0, 0, 13, 67, 126, 5, 220, 65, 35, 50, 47, 36, 104, 17, 0, 15, 69, 125, 44, 224, 30,
-			0, 65, 35, 88, 37, 50, 108, 50, 0, 12, 67, 86, 39, 138, 89, 39, 12, 55, 35, 47, 0, 12, 67, 83, 22, 202, 91, 36, 81, 36,
-			83, 47, 0, 11, 67, 80, 172, 0, 91, 35, 47, 35, 49, 0, 16, 70, 70, 40, 7, 120, 248, 128, 51, 39, 50, 108, 55, 72, 39, 0,
-			11, 67, 70, 39, 138, 51, 39, 55, 36, 47, 0, 12, 67, 62, 39, 138, 6, 72, 39, 55, 35, 47, 0, 11, 67, 41, 236, 202, 47, 36,
-			55, 37, 47, 0, 12, 67, 40, 215, 202, 47, 39, 107, 65, 35, 47, 0, 11, 67, 33, 236, 202, 71, 36, 55, 37, 47, 0, 11, 67, 32,
-			118, 220, 71, 108, 83, 104, 17, 0, 14, 69, 28, 172, 222, 206, 0, 36, 47, 37, 55, 37, 50, 0, 10, 2, 95, 52, 76, 108, 107, 108,
-			51, 0, 0, 15, 68, 181, 24, 15, 132, 48, 35, 51, 35, 50, 72, 36, 12, 0, 14, 67, 125, 18, 25, 65, 39, 51, 35, 71, 71, 35,
-			19, 0, 21, 70, 124, 167, 7, 33, 225, 192, 65, 39, 47, 35, 104, 17, 108, 71, 36, 55, 35, 50, 0, 17, 68, 124, 166, 79, 60, 65,
-			39, 47, 36, 19, 35, 72, 72, 36, 72, 0, 16, 70, 63, 56, 147, 205, 241, 192, 72, 37, 84, 89, 37, 65, 108, 0, 15, 68, 42, 216,
-			15, 132, 47, 35, 48, 35, 50, 72, 36, 12, 0, 15, 68, 42, 28, 235, 132, 47, 35, 107, 37, 12, 57, 36, 12, 0, 14, 67, 42, 6,
-			95, 47, 35, 50, 35, 19, 19, 39, 65, 0, 0, 11, 67, 198, 44, 94, 81, 40, 81, 36, 55, 0, 18, 70, 182, 36, 77, 29, 243, 243,
-			48, 40, 51, 107, 108, 65, 36, 72, 37, 0, 15, 69, 75, 52, 76, 123, 48, 88, 37, 51, 75, 39, 55, 37, 0, 12, 68, 70, 44, 199,
-			128, 51, 40, 57, 108, 50, 0, 13, 68, 34, 12, 199, 128, 71, 39, 50, 57, 108, 50, 0, 13, 68, 33, 28, 199, 128, 71, 36, 51, 57,
-			108, 50, 0, 10, 67, 29, 147, 222, 35, 72, 35, 55, 0, 12, 68, 29, 28, 199, 128, 39, 51, 57, 108, 50, 0, 14, 2, 95, 58, 6,
-			72, 39, 50, 39, 104, 47, 36, 12, 0, 0, 14, 67, 129, 195, 225, 50, 35, 104, 17, 35, 72, 36, 12, 0, 11, 67, 128, 124, 97, 50,
-			108, 81, 35, 107, 0, 12, 67, 126, 20, 97, 65, 39, 107, 51, 36, 12, 0, 15, 67, 125, 204, 207, 65, 39, 104, 17, 35, 57, 57, 35,
-			72, 0, 14, 67, 125, 22, 225, 65, 39, 51, 35, 83, 83, 35, 107, 0, 14, 68, 124, 241, 209, 192, 65, 35, 72, 108, 51, 36, 49, 0,
-			14, 67, 121, 204, 207, 55, 35, 104, 17, 104, 17, 37, 72, 0, 10, 67, 110, 23, 192, 83, 35, 107, 65, 0, 17, 69, 101, 236, 205, 62,
-			16, 19, 35, 55, 108, 107, 36, 72, 72, 36, 0, 17, 70, 100, 119, 159, 204, 120, 0, 108, 55, 35, 65, 37, 57, 108, 50, 0, 12, 67,
-			77, 180, 97, 89, 39, 83, 51, 36, 12, 0, 17, 70, 69, 50, 162, 68, 120, 0, 51, 36, 89, 47, 40, 51, 108, 50, 0, 13, 67, 56,
-			247, 225, 101, 35, 72, 35, 65, 36, 12, 0, 12, 67, 53, 180, 97, 107, 39, 83, 51, 36, 12, 0, 14, 68, 40, 241, 209, 192, 47, 35,
-			72, 108, 51, 39, 49, 0, 11, 67, 35, 23, 192, 71, 36, 81, 35, 65, 0, 17, 70, 32, 243, 162, 68, 124, 0, 71, 35, 72, 101, 39,
-			51, 108, 49, 0, 14, 68, 29, 39, 222, 192, 35, 88, 65, 35, 55, 35, 49, 0, 12, 68, 28, 167, 135, 108, 36, 47, 55, 108, 83, 0,
-			22, 72, 10, 2, 162, 79, 49, 224, 206, 0, 108, 50, 47, 39, 89, 37, 57, 108, 50, 37, 50, 0, 8, 2, 95, 57, 50, 39, 107, 0,
-			0, 32, 76, 186, 3, 223, 205, 236, 199, 68, 243, 222, 29, 28, 192, 76, 35, 50, 72, 65, 37, 55, 57, 108, 51, 72, 72, 39, 55, 108,
-			51, 37, 0, 11, 67, 136, 124, 96, 84, 108, 81, 39, 50, 0, 17, 70, 79, 52, 74, 69, 76, 192, 89, 37, 51, 47, 39, 51, 91, 37,
-			0, 16, 69, 77, 24, 49, 138, 0, 89, 35, 51, 50, 36, 81, 40, 50, 0, 11, 67, 68, 120, 96, 51, 108, 107, 36, 50, 0, 12, 67,
-			57, 113, 202, 101, 35, 47, 47, 108, 47, 0, 21, 70, 53, 60, 224, 113, 236, 192, 107, 39, 89, 36, 57, 108, 50, 104, 17, 39, 55, 37,
-			0, 11, 67, 48, 247, 128, 75, 35, 72, 35, 55, 0, 15, 67, 33, 19, 92, 71, 35, 51, 107, 35, 104, 17, 104, 17, 0, 16, 69, 29,
-			194, 145, 30, 0, 36, 104, 17, 47, 36, 51, 108, 50, 0, 14, 69, 29, 60, 34, 68, 160, 36, 89, 49, 39, 51, 47, 0, 9, 2, 95,
-			56, 107, 35, 91, 47, 0, 0, 14, 68, 197, 225, 209, 132, 81, 36, 55, 108, 51, 36, 12, 0, 14, 68, 197, 24, 179, 60, 81, 36, 51,
-			35, 84, 37, 72, 0, 15, 68, 194, 12, 81, 132, 49, 39, 50, 81, 36, 51, 36, 12, 0, 17, 69, 133, 178, 135, 61, 240, 6, 107, 35,
-			83, 47, 108, 72, 39, 65, 0, 11, 67, 129, 129, 223, 50, 36, 88, 108, 65, 0, 12, 67, 125, 24, 95, 65, 35, 51, 107, 35, 65, 0,
-			13, 67, 125, 19, 223, 65, 6, 35, 51, 72, 39, 65, 0, 17, 69, 124, 164, 71, 193, 240, 65, 39, 47, 36, 51, 108, 49, 36, 65, 0,
-			12, 67, 122, 33, 219, 55, 35, 84, 84, 108, 83, 0, 17, 68, 114, 23, 33, 132, 104, 17, 35, 107, 104, 17, 35, 107, 36, 12, 0, 18,
-			70, 109, 23, 199, 128, 248, 64, 83, 35, 51, 65, 108, 50, 72, 36, 107, 0, 16, 68, 105, 24, 15, 132, 104, 17, 39, 51, 51, 35, 50,
-			72, 36, 0, 14, 68, 81, 241, 215, 132, 91, 35, 65, 65, 108, 47, 36, 0, 13, 67, 77, 24, 95, 89, 35, 51, 10, 107, 35, 65, 0,
-			12, 67, 61, 24, 95, 72, 35, 51, 107, 35, 65, 0, 13, 68, 57, 17, 219, 132, 101, 39, 51, 108, 83, 36, 0, 15, 68, 41, 12, 17,
-			132, 47, 35, 88, 49, 35, 51, 36, 12, 0, 15, 68, 33, 56, 15, 132, 71, 35, 89, 35, 50, 72, 36, 12, 0, 12, 67, 33, 24, 95,
-			71, 35, 51, 107, 35, 65, 0, 15, 68, 33, 24, 15, 132, 71, 35, 51, 35, 50, 72, 36, 12, 0, 13, 68, 29, 65, 209, 132, 36, 91,
-			108, 51, 36, 12, 0, 0, 18, 70, 134, 33, 222, 80, 118, 243, 107, 39, 84, 35, 91, 91, 108, 83, 37, 0, 13, 68, 127, 60, 81, 128,
-			65, 37, 81, 51, 36, 50, 0, 12, 67, 125, 28, 30, 65, 36, 51, 49, 36, 55, 0, 12, 67, 124, 214, 222, 65, 35, 107, 83, 36, 55,
-			0, 20, 70, 124, 212, 95, 30, 12, 115, 65, 35, 107, 51, 35, 65, 108, 50, 36, 81, 37, 0, 19, 70, 61, 248, 177, 68, 118, 243, 72,
-			36, 65, 39, 81, 36, 51, 108, 83, 37, 0, 15, 68, 41, 172, 199, 128, 47, 39, 104, 17, 37, 57, 108, 50, 0, 19, 70, 35, 56, 177,
-			68, 118, 243, 71, 37, 57, 39, 81, 36, 51, 108, 83, 37, 0, 14, 68, 34, 39, 225, 128, 71, 40, 65, 36, 107, 36, 50, 0, 18, 70,
-			29, 59, 81, 124, 120, 115, 36, 89, 48, 35, 51, 65, 108, 107, 37, 0, 0, 18, 70, 198, 3, 7, 128, 247, 192, 81, 39, 50, 75, 108,
-			50, 72, 35, 65, 0, 13, 68, 192, 120, 15, 124, 49, 108, 50, 72, 39, 65, 0, 12, 67, 185, 164, 64, 76, 35, 104, 17, 35, 51, 0,
-			8, 66, 185, 48, 76, 39, 89, 0, 17, 69, 181, 24, 160, 62, 16, 48, 35, 51, 84, 35, 50, 72, 36, 12, 0, 16, 69, 137, 236, 217,
-			132, 240, 84, 35, 55, 37, 19, 35, 107, 72, 0, 15, 69, 132, 114, 136, 68, 240, 107, 108, 47, 71, 36, 51, 72, 0, 18, 68, 124, 167,
-			15, 124, 65, 39, 47, 36, 104, 17, 35, 72, 72, 36, 65, 0, 14, 68, 120, 115, 17, 124, 55, 108, 75, 35, 51, 35, 65, 0, 11, 67,
-			80, 196, 64, 91, 35, 75, 35, 51, 0, 17, 69, 77, 20, 160, 62, 16, 89, 35, 51, 88, 36, 50, 72, 36, 12, 0, 15, 69, 69, 49,
-			224, 62, 16, 51, 36, 89, 108, 50, 72, 36, 0, 21, 70, 59, 52, 95, 112, 247, 192, 101, 36, 57, 51, 36, 65, 35, 104, 17, 72, 35,
-			65, 0, 17, 70, 48, 113, 219, 40, 115, 225, 75, 108, 39, 83, 47, 108, 72, 36, 0, 10, 67, 46, 36, 64, 89, 39, 12, 51, 0, 15,
-			69, 32, 252, 7, 70, 16, 71, 35, 72, 49, 108, 51, 36, 0, 15, 69, 32, 117, 135, 110, 16, 71, 36, 36, 88, 108, 83, 36, 0, 9,
-			67, 30, 40, 19, 39, 50, 89, 0, 10, 67, 8, 196, 64, 108, 75, 39, 51, 0, 0, 14, 68, 135, 49, 240, 120, 107, 35, 57, 108, 49,
-			36, 55, 0, 11, 67, 83, 12, 192, 91, 35, 49, 49, 37, 0, 11, 67, 51, 55, 210, 75, 36, 57, 65, 88, 0, 11, 67, 33, 236, 210,
-			71, 39, 55, 37, 88, 0, 16, 69, 29, 66, 179, 29, 192, 36, 91, 47, 37, 57, 108, 104, 17, 0, 13, 68, 29, 50, 179, 48, 36, 89,
-			47, 36, 57, 75, 0, 20, 71, 9, 50, 145, 137, 242, 145, 204, 108, 89, 47, 51, 39, 65, 36, 47, 51, 37, 0, 8, 65, 80, 6, 91,
-			37, 50, 0, 0, 10, 67, 204, 132, 192, 57, 39, 71, 89, 0, 12, 67, 194, 34, 209, 49, 39, 12, 89, 35, 51, 0, 12, 67, 194, 12,
-			81, 49, 35, 50, 81, 35, 51, 0, 16, 69, 194, 3, 219, 133, 240, 49, 39, 50, 72, 83, 35, 107, 65, 0, 20, 71, 181, 52, 78, 136,
-			120, 15, 132, 48, 36, 89, 35, 51, 101, 108, 50, 72, 36, 0, 8, 66, 181, 16, 48, 39, 51, 0, 16, 69, 180, 120, 21, 61, 240, 48,
-			108, 50, 89, 35, 72, 39, 65, 0, 12, 67, 126, 3, 17, 65, 39, 50, 75, 35, 51, 0, 10, 67, 100, 132, 192, 35, 71, 35, 89, 0,
-			11, 67, 92, 132, 192, 47, 35, 71, 35, 89, 0, 14, 68, 77, 24, 179, 76, 6, 89, 36, 51, 84, 37, 89, 0, 11, 67, 73, 243, 0,
-			88, 35, 65, 35, 75, 0, 12, 67, 63, 2, 145, 72, 39, 49, 47, 39, 51, 0, 19, 70, 35, 60, 8, 29, 24, 64, 71, 36, 57, 36,
-			49, 71, 108, 51, 36, 12, 0, 10, 67, 35, 52, 192, 71, 36, 57, 89, 0, 12, 67, 34, 12, 81, 71, 36, 50, 81, 35, 51, 0, 14,
-			68, 30, 3, 222, 76, 35, 50, 72, 39, 55, 39, 89, 0, 11, 67, 29, 50, 145, 36, 89, 47, 36, 51, 0, 10, 67, 28, 193, 209, 36,
-			75, 108, 51, 0, 9, 66, 181, 16, 48, 39, 51, 0, 76, 0, 10, 67, 134, 44, 98, 107, 39, 81, 39, 0, 10, 67, 101, 18, 0, 35,
-			51, 35, 71, 0, 12, 67, 83, 7, 226, 91, 36, 49, 35, 65, 40, 0, 21, 71, 80, 252, 207, 29, 231, 141, 128, 91, 35, 72, 37, 72,
-			39, 55, 55, 35, 107, 50, 0, 11, 67, 48, 250, 243, 75, 36, 72, 72, 37, 0, 11, 67, 40, 114, 20, 47, 108, 71, 36, 91, 0, 11,
-			67, 29, 18, 148, 35, 51, 47, 36, 91, 0, 0, 12, 67, 205, 164, 64, 57, 39, 104, 17, 39, 51, 0, 10, 67, 132, 196, 64, 107, 36,
-			75, 51, 0, 14, 67, 125, 55, 215, 65, 39, 89, 35, 65, 65, 35, 47, 0, 15, 68, 124, 226, 149, 68, 65, 39, 101, 47, 35, 89, 35,
-			51, 0, 16, 69, 120, 196, 202, 207, 0, 55, 39, 75, 36, 89, 47, 37, 49, 0, 11, 67, 106, 36, 64, 104, 17, 39, 12, 51, 0, 21,
-			71, 98, 28, 209, 29, 231, 222, 192, 88, 35, 107, 37, 51, 39, 55, 65, 39, 55, 49, 0, 16, 69, 93, 17, 200, 121, 48, 47, 36, 51,
-			108, 71, 55, 39, 89, 0, 12, 68, 76, 116, 74, 68, 89, 108, 51, 47, 51, 0, 16, 69, 69, 40, 7, 129, 48, 51, 36, 88, 39, 50,
-			108, 50, 89, 0, 11, 67, 52, 196, 64, 107, 35, 75, 35, 51, 0, 14, 68, 35, 56, 96, 68, 71, 37, 107, 39, 50, 35, 51, 0, 21,
-			70, 33, 225, 223, 68, 195, 64, 71, 36, 55, 108, 65, 39, 51, 35, 75, 75, 35, 107, 0, 18, 70, 31, 4, 199, 206, 3, 225, 39, 49,
-			89, 108, 57, 35, 50, 72, 36, 0, 18, 70, 10, 17, 209, 126, 20, 97, 108, 107, 108, 51, 65, 39, 107, 51, 36, 0, 14, 68, 10, 7,
-			15, 68, 108, 50, 104, 17, 35, 72, 51, 0, 0, 14, 68, 194, 3, 209, 136, 49, 39, 50, 72, 51, 39, 12, 0, 15, 69, 192, 116, 98,
-			30, 0, 49, 108, 51, 36, 84, 108, 50, 0, 12, 67, 129, 248, 128, 50, 36, 65, 39, 84, 84, 0, 14, 68, 129, 226, 48, 204, 50, 35,
-			55, 71, 35, 49, 37, 0, 12, 68, 127, 60, 17, 136, 65, 37, 49, 51, 39, 0, 11, 67, 102, 8, 0, 19, 36, 50, 35, 50, 0, 15,
-			68, 74, 3, 241, 204, 6, 88, 36, 50, 72, 36, 81, 37, 0, 11, 67, 72, 248, 0, 88, 35, 72, 35, 50, 0, 15, 69, 70, 44, 202,
-			69, 32, 51, 39, 57, 47, 36, 51, 88, 0, 13, 68, 42, 3, 209, 136, 47, 39, 50, 72, 51, 39, 0, 15, 69, 32, 120, 34, 30, 0,
-			71, 108, 50, 39, 84, 108, 50, 0, 13, 68, 29, 232, 49, 136, 35, 55, 35, 50, 81, 40, 0, 17, 70, 10, 2, 179, 126, 33, 224, 108,
-			50, 47, 37, 65, 40, 108, 50, 0, 0, 16, 69, 137, 177, 223, 133, 16, 84, 35, 83, 108, 65, 36, 107, 51, 0, 15, 69, 136, 119, 155,
-			49, 16, 84, 35, 55, 83, 35, 75, 51, 0, 14, 67, 125, 12, 17, 65, 39, 88, 35, 49, 49, 35, 51, 0, 11, 67, 101, 23, 0, 35,
-			51, 35, 104, 17, 0, 16, 69, 85, 180, 71, 33, 16, 89, 35, 83, 51, 108, 71, 39, 51, 0, 13, 67, 81, 183, 0, 6, 91, 35, 83,
-			35, 104, 17, 0, 16, 69, 34, 17, 223, 133, 16, 71, 35, 107, 108, 65, 39, 107, 51, 0, 22, 71, 29, 231, 7, 194, 8, 15, 132, 36,
-			55, 104, 17, 108, 49, 39, 50, 35, 50, 72, 36, 0, 12, 3, 95, 216, 140, 84, 37, 51, 81, 40, 55, 0, 0, 17, 70, 139, 55, 179,
-			29, 244, 128, 84, 37, 55, 37, 57, 108, 65, 88, 0, 11, 67, 121, 44, 115, 55, 36, 88, 81, 37, 0, 11, 67, 33, 116, 115, 71, 39,
-			47, 51, 37, 0, 11, 67, 33, 23, 243, 71, 35, 51, 65, 37, 0, 0, 19, 70, 197, 17, 224, 62, 37, 19, 81, 36, 51, 108, 50, 72,
-			40, 91, 36, 89, 0, 13, 68, 192, 116, 74, 68, 49, 108, 51, 47, 36, 51, 0, 13, 68, 192, 116, 72, 68, 49, 108, 51, 71, 35, 51,
-			0, 13, 68, 184, 116, 74, 68, 76, 108, 51, 47, 36, 51, 0, 13, 68, 182, 36, 202, 68, 48, 39, 89, 47, 36, 51, 0, 13, 68, 71,
-			52, 136, 68, 51, 37, 88, 71, 39, 51, 0, 16, 69, 61, 232, 135, 181, 48, 72, 36, 55, 84, 108, 48, 35, 89, 0, 22, 72, 57, 19,
-			211, 29, 40, 135, 70, 16, 101, 39, 51, 72, 89, 108, 88, 84, 108, 51, 36, 0, 15, 68, 41, 232, 49, 68, 47, 35, 55, 35, 50, 81,
-			39, 51, 0, 18, 70, 34, 23, 224, 83, 52, 64, 71, 35, 107, 65, 35, 50, 91, 37, 51, 0, 26, 72, 33, 71, 7, 34, 212, 96, 62,
-			16, 71, 39, 91, 104, 17, 108, 71, 48, 35, 51, 35, 50, 72, 36, 12, 0, 23, 72, 10, 12, 94, 137, 49, 240, 78, 0, 108, 50, 81,
-			36, 55, 39, 89, 108, 49, 89, 39, 50, 0, 0, 15, 68, 181, 24, 145, 80, 48, 35, 51, 84, 35, 51, 36, 91, 0, 16, 69, 130, 20,
-			98, 30, 0, 50, 35, 107, 51, 35, 84, 108, 50, 0, 12, 67, 113, 97, 202, 104, 17, 39, 88, 108, 47, 0, 13, 68, 57, 88, 149, 204,
-			101, 39, 89, 40, 89, 37, 0, 12, 67, 42, 23, 202, 47, 39, 107, 65, 35, 47, 0, 15, 69, 29, 242, 179, 29, 32, 36, 65, 47, 37,
-			57, 108, 88, 0, 0, 12, 67, 197, 244, 112, 81, 39, 65, 51, 39, 49, 0, 21, 70, 193, 236, 19, 206, 40, 17, 49, 39, 55, 36, 49,
-			89, 37, 57, 39, 50, 36, 51, 0, 21, 70, 182, 36, 95, 112, 244, 192, 48, 40, 51, 65, 39, 104, 17, 35, 72, 72, 35, 89, 0, 11,
-			67, 125, 232, 176, 65, 39, 55, 40, 49, 0, 11, 67, 77, 241, 240, 89, 36, 65, 108, 49, 0, 19, 70, 77, 20, 243, 122, 3, 209, 89,
-			35, 51, 89, 37, 55, 35, 50, 72, 51, 0, 26, 73, 71, 52, 173, 68, 241, 210, 128, 248, 64, 51, 37, 88, 48, 35, 51, 72, 108, 88,
-			35, 50, 72, 36, 12, 0, 19, 71, 30, 6, 199, 71, 2, 162, 76, 35, 50, 83, 108, 51, 49, 47, 40, 89, 0, 0, 15, 69, 193, 241,
-			224, 62, 32, 49, 39, 65, 108, 50, 72, 39, 0, 11, 67, 193, 241, 204, 49, 39, 65, 108, 75, 0, 18, 70, 109, 225, 223, 206, 12, 98,
-			83, 36, 55, 108, 65, 37, 50, 81, 39, 0, 12, 67, 77, 230, 239, 89, 39, 55, 83, 36, 90, 0, 13, 67, 63, 7, 242, 72, 39, 49,
-			65, 36, 57, 36, 0, 16, 69, 61, 226, 160, 199, 48, 72, 36, 55, 47, 35, 50, 81, 37, 0, 11, 67, 34, 1, 200, 71, 39, 50, 108,
-			71, 0, 0, 12, 67, 125, 146, 15, 65, 35, 19, 71, 35, 72, 0, 13, 67, 124, 76, 15, 65, 39, 35, 49, 49, 35, 72, 0, 17, 68,
-			113, 231, 30, 192, 104, 17, 36, 55, 104, 17, 36, 55, 35, 49, 0, 13, 67, 62, 40, 15, 72, 35, 84, 35, 50, 6, 72, 0, 12, 67,
-			56, 200, 15, 101, 39, 75, 35, 50, 72, 0, 16, 70, 32, 116, 115, 42, 40, 0, 71, 108, 51, 37, 47, 39, 50, 0, 0, 18, 70, 180,
-			124, 211, 43, 28, 192, 48, 108, 57, 36, 89, 47, 36, 81, 37, 0, 15, 69, 136, 116, 223, 138, 0, 84, 108, 89, 35, 65, 40, 50, 0,
-			15, 69, 133, 24, 179, 206, 0, 107, 36, 51, 39, 37, 12, 50, 0, 12, 67, 121, 146, 10, 55, 39, 19, 71, 35, 47, 0, 11, 67, 101,
-			42, 202, 36, 88, 88, 35, 47, 0, 12, 67, 100, 252, 128, 36, 72, 72, 36, 57, 36, 0, 18, 69, 83, 4, 84, 194, 0, 91, 36, 49,
-			35, 51, 91, 36, 49, 35, 50, 0, 18, 70, 78, 210, 179, 77, 252, 192, 89, 36, 48, 47, 37, 89, 36, 65, 37, 0, 18, 70, 62, 36,
-			109, 70, 33, 210, 72, 40, 51, 48, 35, 51, 84, 108, 88, 0, 15, 69, 40, 231, 207, 30, 0, 47, 39, 101, 65, 72, 108, 50, 0, 17,
-			70, 40, 119, 135, 77, 252, 192, 47, 108, 55, 108, 89, 36, 65, 37, 0, 18, 70, 34, 20, 113, 205, 28, 192, 71, 35, 107, 51, 36, 81,
-			37, 51, 37, 0, 17, 70, 9, 193, 223, 205, 28, 192, 108, 104, 17, 108, 65, 37, 51, 37, 0, 0, 10, 67, 193, 241, 192, 49, 39, 65,
-			108, 0, 10, 67, 133, 241, 192, 107, 39, 65, 108, 0, 14, 68, 127, 60, 32, 60, 65, 37, 49, 39, 50, 35, 72, 0, 14, 68, 127, 51,
-			145, 60, 65, 37, 101, 35, 51, 35, 72, 0, 11, 67, 121, 241, 192, 55, 35, 65, 65, 108, 0, 22, 72, 41, 17, 224, 75, 52, 202, 137,
-			16, 47, 36, 51, 108, 50, 88, 37, 89, 47, 39, 51, 0, 16, 69, 29, 232, 156, 137, 144, 39, 55, 84, 39, 104, 17, 40, 19, 0, 0,
-			20, 70, 187, 4, 222, 136, 124, 51, 76, 36, 49, 39, 89, 55, 39, 84, 108, 49, 37, 0, 14, 68, 181, 28, 209, 56, 48, 35, 51, 37,
-			51, 39, 101, 0, 14, 67, 80, 140, 50, 91, 35, 71, 35, 49, 36, 57, 36, 0, 11, 67, 50, 1, 200, 75, 36, 50, 108, 71, 0, 0,
-			18, 70, 197, 17, 223, 29, 184, 0, 81, 36, 51, 108, 65, 108, 83, 39, 50, 0, 16, 69, 57, 19, 206, 68, 240, 101, 39, 51, 72, 101,
-			39, 51, 72, 0, 15, 69, 29, 231, 237, 207, 0, 39, 55, 35, 65, 48, 37, 49, 0, 14, 69, 28, 247, 226, 128, 240, 36, 72, 65, 39,
-			50, 72, 0, 0, 17, 69, 197, 40, 27, 138, 0, 81, 36, 88, 36, 50, 39, 83, 39, 50, 0, 20, 71, 185, 232, 135, 68, 129, 219, 204,
-			76, 36, 55, 84, 108, 51, 71, 108, 83, 37, 0, 15, 69, 70, 33, 243, 28, 160, 51, 36, 84, 108, 57, 108, 47, 0, 0, 19, 70, 109,
-			24, 145, 138, 3, 192, 83, 39, 51, 40, 51, 35, 84, 35, 50, 72, 0, 19, 70, 109, 17, 209, 138, 3, 192, 83, 35, 51, 108, 51, 35,
-			84, 35, 50, 72, 0, 15, 70, 58, 33, 200, 138, 3, 192, 101, 108, 71, 40, 50, 72, 0, 17, 68, 41, 146, 15, 28, 47, 35, 19, 35,
-			71, 71, 39, 72, 35, 50, 0, 16, 70, 35, 55, 136, 137, 19, 192, 71, 37, 55, 71, 39, 51, 72, 0, 13, 68, 28, 210, 43, 28, 35,
-			107, 36, 71, 71, 108, 0, 0, 20, 71, 180, 120, 145, 182, 44, 224, 40, 48, 108, 84, 36, 51, 48, 39, 57, 50, 47, 0, 0, 18, 70,
-			109, 24, 145, 63, 56, 0, 83, 35, 51, 84, 35, 51, 72, 37, 50, 0, 15, 69, 68, 136, 138, 207, 0, 51, 39, 71, 39, 47, 37, 49,
-			0, 11, 67, 57, 100, 71, 101, 35, 88, 51, 108, 0, 10, 67, 28, 228, 71, 39, 101, 51, 108, 0, 0, 13, 68, 183, 60, 30, 136, 48,
-			37, 49, 39, 55, 39, 0, 13, 68, 183, 49, 224, 136, 48, 37, 57, 108, 50, 39, 0, 12, 68, 132, 124, 202, 204, 107, 108, 37, 47, 37,
-			0, 14, 68, 128, 226, 49, 204, 50, 39, 101, 71, 36, 81, 37, 0, 16, 69, 112, 117, 72, 30, 0, 104, 17, 108, 89, 36, 71, 108, 50,
-			0, 16, 69, 104, 117, 72, 30, 0, 104, 17, 108, 89, 36, 71, 108, 50, 0, 11, 67, 76, 232, 0, 89, 39, 101, 35, 50, 0, 14, 68,
-			33, 19, 241, 204, 71, 35, 51, 72, 36, 81, 37, 0, 0, 14, 68, 77, 28, 217, 28, 89, 35, 51, 37, 19, 35, 50, 0, 18, 70, 56,
-			241, 226, 128, 241, 192, 101, 39, 72, 108, 84, 35, 50, 72, 108, 0, 13, 68, 49, 252, 217, 28, 75, 35, 65, 37, 35, 50, 0, 0, 16,
-			69, 125, 193, 224, 122, 32, 65, 39, 104, 17, 108, 50, 55, 40, 0, 15, 69, 112, 119, 179, 82, 32, 104, 17, 108, 55, 37, 91, 40, 0,
-			13, 68, 40, 124, 243, 180, 6, 47, 35, 37, 12, 72, 0, 0, 12, 67, 197, 19, 207, 81, 35, 51, 72, 35, 72, 0, 17, 69, 181, 23,
-			207, 100, 112, 48, 39, 51, 65, 39, 72, 72, 35, 108, 0, 10, 67, 95, 54, 192, 47, 36, 57, 83, 0, 10, 67, 87, 54, 192, 89, 36,
-			57, 83, 0, 15, 69, 83, 52, 72, 132, 112, 91, 37, 51, 71, 35, 107, 108, 0, 10, 67, 79, 54, 192, 89, 36, 57, 83, 0, 11, 67,
-			30, 3, 225, 35, 50, 72, 39, 107, 0, 16, 69, 29, 229, 25, 68, 112, 39, 91, 91, 39, 19, 35, 51, 108, 0, 0, 12, 67, 197, 227,
-			160, 81, 39, 55, 101, 35, 50, 0, 14, 67, 125, 44, 224, 65, 39, 88, 35, 57, 57, 35, 50, 0, 13, 68, 82, 36, 84, 204, 91, 40,
-			51, 36, 91, 37, 0, 11, 67, 76, 118, 74, 89, 108, 19, 35, 47, 0, 19, 70, 48, 241, 212, 63, 28, 192, 75, 39, 72, 108, 91, 39,
-			72, 36, 81, 37, 0, 17, 70, 43, 56, 158, 138, 252, 192, 47, 36, 10, 39, 55, 39, 90, 37, 0, 29, 74, 40, 195, 243, 62, 6, 17,
-			58, 33, 225, 204, 47, 35, 75, 72, 37, 72, 36, 50, 35, 88, 35, 51, 101, 108, 107, 37, 0, 11, 67, 33, 146, 202, 71, 36, 89, 35,
-			47, 0, 13, 68, 29, 232, 79, 204, 39, 55, 107, 39, 72, 108, 0, 11, 67, 28, 196, 74, 39, 75, 51, 35, 47, 0, 13, 68, 10, 24,
-			49, 204, 108, 107, 35, 50, 81, 37, 0, 20, 2, 217, 128, 49, 36, 91, 37, 6, 72, 35, 50, 36, 4, 107, 39, 51, 40, 83, 0, 0,
-			18, 70, 197, 17, 224, 34, 17, 192, 81, 36, 51, 108, 50, 71, 35, 107, 108, 0, 15, 68, 193, 72, 15, 132, 49, 39, 91, 35, 50, 72,
-			36, 12, 0, 11, 67, 192, 248, 64, 49, 35, 72, 36, 12, 0, 18, 70, 192, 116, 91, 69, 241, 192, 6, 49, 108, 51, 83, 35, 51, 65,
-			108, 0, 8, 66, 181, 176, 48, 39, 83, 0, 14, 68, 126, 12, 239, 132, 65, 35, 50, 37, 90, 36, 12, 0, 15, 68, 125, 66, 136, 132,
-			65, 39, 91, 47, 35, 71, 35, 107, 0, 13, 67, 113, 232, 112, 104, 17, 39, 55, 107, 35, 49, 0, 16, 68, 49, 163, 26, 132, 75, 36,
-			104, 17, 75, 36, 104, 17, 36, 0, 15, 68, 33, 39, 204, 132, 71, 39, 88, 65, 35, 75, 75, 36, 0, 0, 18, 69, 185, 164, 95, 199,
-			48, 76, 35, 104, 17, 35, 51, 65, 36, 81, 37, 0, 14, 67, 124, 242, 128, 4, 65, 39, 6, 72, 72, 35, 47, 0, 11, 67, 124, 193,
-			200, 65, 39, 75, 108, 71, 0, 11, 67, 120, 193, 204, 55, 36, 75, 108, 75, 0, 11, 67, 108, 124, 222, 6, 83, 108, 57, 55, 0, 15,
-			69, 101, 103, 135, 131, 48, 35, 88, 39, 55, 108, 50, 37, 0, 15, 69, 69, 39, 199, 71, 48, 51, 39, 88, 65, 108, 51, 37, 0, 15,
-			68, 59, 52, 115, 128, 101, 35, 57, 57, 36, 51, 37, 50, 0, 14, 68, 49, 247, 135, 40, 75, 39, 65, 35, 55, 108, 47, 0, 15, 69,
-			49, 55, 199, 131, 48, 75, 36, 89, 65, 108, 50, 37, 0, 14, 68, 33, 24, 135, 40, 71, 35, 51, 35, 84, 108, 47, 0, 13, 68, 29,
-			241, 209, 40, 36, 65, 108, 51, 35, 47, 0, 13, 68, 29, 113, 217, 40, 36, 47, 108, 19, 35, 47, 0, 0, 10, 67, 192, 166, 192, 49,
-			36, 47, 83, 0, 14, 67, 125, 19, 207, 65, 39, 51, 35, 72, 72, 35, 72, 0, 17, 69, 124, 165, 7, 34, 16, 65, 39, 47, 36, 91,
-			108, 71, 36, 107, 0, 21, 70, 112, 114, 30, 204, 168, 71, 104, 17, 108, 71, 36, 55, 37, 57, 35, 47, 107, 108, 0, 13, 67, 109, 23,
-			33, 83, 36, 51, 104, 17, 36, 12, 0, 19, 70, 100, 131, 199, 120, 136, 71, 35, 71, 72, 39, 55, 10, 71, 35, 107, 108, 0, 13, 67,
-			79, 8, 33, 89, 35, 49, 35, 50, 36, 12, 0, 12, 67, 77, 183, 161, 89, 39, 83, 55, 36, 12, 0, 12, 67, 76, 164, 79, 89, 36,
-			47, 39, 51, 72, 0, 10, 67, 75, 54, 192, 88, 35, 57, 83, 0, 10, 67, 63, 55, 192, 72, 36, 57, 65, 0, 13, 67, 57, 23, 33,
-			101, 36, 51, 104, 17, 36, 12, 0, 12, 67, 49, 50, 161, 75, 39, 89, 47, 36, 12, 0, 16, 67, 49, 23, 33, 75, 35, 51, 35, 104,
-			17, 104, 17, 36, 12, 0, 10, 67, 43, 54, 192, 47, 36, 57, 83, 0, 12, 68, 42, 37, 115, 108, 47, 39, 89, 37, 83, 0, 17, 70,
-			32, 116, 83, 122, 40, 0, 71, 108, 51, 89, 36, 55, 39, 50, 0, 11, 67, 32, 116, 79, 71, 108, 51, 35, 72, 0, 12, 67, 29, 232,
-			97, 36, 55, 108, 107, 36, 12, 0, 12, 68, 10, 4, 179, 124, 108, 50, 88, 37, 65, 0, 10, 67, 31, 55, 192, 37, 12, 65, 0, 76,
-			0, 11, 67, 194, 39, 160, 49, 40, 55, 36, 50, 0, 18, 70, 133, 230, 207, 30, 12, 192, 107, 39, 55, 39, 83, 72, 108, 50, 37, 0,
-			15, 68, 125, 193, 200, 120, 65, 39, 104, 17, 108, 71, 36, 55, 0, 12, 67, 92, 114, 28, 47, 108, 71, 35, 104, 17, 0, 12, 67, 81,
-			50, 160, 91, 39, 89, 47, 35, 50, 0, 13, 68, 79, 55, 135, 32, 89, 36, 57, 55, 108, 71, 0, 21, 71, 78, 216, 10, 29, 252, 224,
-			136, 89, 36, 48, 35, 50, 47, 108, 65, 37, 50, 40, 0, 13, 68, 48, 132, 115, 120, 75, 36, 71, 51, 37, 55, 0, 16, 69, 41, 19,
-			31, 30, 0, 47, 35, 51, 75, 39, 65, 108, 50, 0, 16, 70, 32, 114, 159, 30, 12, 192, 71, 108, 47, 65, 108, 50, 37, 0, 14, 68,
-			29, 193, 209, 32, 35, 104, 17, 108, 51, 36, 71, 0, 12, 67, 29, 50, 160, 35, 89, 36, 47, 39, 50, 0, 14, 69, 29, 50, 135, 68,
-			160, 36, 89, 47, 108, 51, 47, 0, 0, 13, 68, 198, 44, 81, 60, 81, 40, 81, 36, 51, 72, 0, 14, 68, 197, 1, 209, 60, 81, 39,
-			88, 108, 51, 35, 72, 0, 15, 68, 194, 44, 202, 132, 49, 39, 84, 36, 57, 47, 36, 12, 0, 14, 68, 193, 236, 212, 132, 49, 36, 55,
-			37, 91, 36, 12, 0, 14, 68, 133, 252, 212, 132, 107, 35, 65, 37, 91, 36, 12, 0, 14, 68, 133, 232, 94, 132, 107, 36, 55, 107, 36,
-			55, 36, 0, 14, 67, 130, 35, 223, 6, 50, 35, 84, 35, 72, 39, 65, 0, 14, 68, 129, 252, 212, 132, 50, 36, 65, 37, 91, 36, 12,
-			0, 19, 70, 129, 241, 243, 128, 248, 64, 50, 35, 65, 108, 57, 35, 50, 72, 36, 12, 0, 11, 67, 128, 118, 31, 50, 108, 88, 36, 65,
-			0, 13, 68, 125, 188, 224, 132, 65, 39, 83, 37, 50, 36, 0, 15, 68, 125, 65, 225, 60, 65, 39, 6, 91, 108, 107, 36, 72, 0, 17,
-			69, 125, 50, 142, 61, 240, 65, 39, 89, 47, 35, 101, 72, 36, 65, 0, 13, 68, 124, 252, 224, 132, 65, 35, 72, 37, 50, 36, 0, 15,
-			68, 124, 196, 115, 132, 65, 39, 75, 51, 37, 57, 36, 12, 0, 19, 70, 124, 130, 158, 28, 136, 64, 65, 39, 71, 47, 35, 55, 108, 71,
-			36, 107, 0, 14, 68, 69, 49, 224, 132, 51, 35, 89, 108, 50, 36, 12, 0, 11, 67, 56, 120, 31, 101, 108, 50, 40, 65, 0, 14, 68,
-			54, 6, 30, 132, 107, 35, 50, 88, 35, 55, 36, 0, 16, 68, 42, 37, 115, 132, 6, 47, 39, 12, 89, 37, 57, 36, 12, 0, 14, 68,
-			42, 33, 209, 60, 47, 35, 84, 108, 51, 39, 72, 0, 14, 68, 34, 17, 224, 132, 71, 35, 107, 108, 50, 36, 12, 0, 19, 70, 33, 24,
-			20, 76, 168, 64, 71, 35, 51, 50, 36, 91, 35, 89, 47, 36, 0, 16, 70, 28, 196, 71, 207, 56, 64, 36, 75, 51, 108, 37, 57, 36,
-			0, 14, 68, 10, 20, 202, 132, 108, 107, 36, 89, 47, 36, 12, 0, 0, 17, 70, 181, 225, 240, 29, 18, 128, 48, 36, 55, 108, 49, 108,
-			51, 47, 0, 20, 70, 180, 244, 74, 32, 116, 115, 48, 36, 72, 35, 51, 47, 35, 71, 108, 51, 37, 0, 14, 67, 124, 199, 158, 65, 39,
-			75, 35, 55, 55, 35, 55, 0, 17, 68, 124, 167, 207, 128, 65, 39, 47, 36, 65, 35, 72, 72, 36, 50, 0, 17, 68, 124, 166, 224, 128,
-			65, 39, 47, 36, 83, 35, 50, 50, 36, 50, 0, 13, 68, 124, 120, 81, 56, 65, 108, 107, 51, 39, 101, 0, 14, 68, 109, 24, 138, 128,
-			83, 39, 51, 40, 47, 35, 50, 0, 15, 68, 78, 33, 200, 112, 89, 35, 84, 108, 71, 36, 104, 17, 0, 10, 67, 70, 34, 30, 51, 40,
-			71, 55, 0, 16, 69, 61, 19, 226, 61, 224, 72, 35, 51, 72, 39, 72, 36, 55, 0, 19, 70, 59, 49, 209, 41, 21, 51, 101, 37, 57,
-			108, 51, 47, 39, 51, 91, 37, 0, 12, 67, 52, 193, 204, 107, 39, 75, 75, 108, 75, 0, 17, 70, 31, 56, 33, 124, 120, 51, 37, 50,
-			107, 35, 65, 108, 50, 37, 0, 17, 70, 29, 28, 98, 130, 39, 243, 36, 51, 81, 39, 50, 39, 65, 37, 0, 14, 68, 28, 252, 30, 128,
-			39, 72, 49, 39, 55, 39, 50, 0, 14, 68, 8, 132, 202, 128, 108, 71, 36, 89, 47, 35, 50, 0, 11, 67, 8, 130, 158, 108, 71, 47,
-			35, 55, 0, 0, 19, 70, 136, 116, 79, 9, 243, 225, 84, 108, 51, 36, 72, 108, 65, 35, 72, 36, 0, 12, 67, 130, 212, 83, 50, 35,
-			48, 39, 51, 89, 0, 15, 68, 129, 68, 202, 124, 50, 36, 91, 35, 89, 47, 35, 65, 0, 12, 67, 129, 28, 83, 50, 35, 51, 81, 36,
-			89, 0, 16, 69, 128, 114, 14, 68, 240, 50, 108, 71, 36, 101, 51, 35, 72, 0, 21, 70, 126, 2, 152, 68, 167, 192, 65, 39, 50, 47,
-			35, 88, 36, 51, 36, 47, 35, 65, 0, 17, 69, 125, 193, 202, 122, 16, 65, 39, 104, 17, 108, 47, 36, 55, 36, 0, 17, 69, 125, 145,
-			223, 122, 16, 65, 39, 19, 108, 65, 36, 55, 36, 12, 0, 18, 69, 125, 49, 200, 114, 16, 65, 39, 89, 108, 71, 36, 104, 17, 36, 12,
-			0, 17, 68, 124, 166, 94, 124, 65, 39, 47, 36, 19, 35, 55, 55, 36, 65, 0, 17, 68, 124, 160, 222, 124, 65, 39, 47, 36, 10, 35,
-			55, 55, 36, 65, 0, 16, 69, 109, 19, 219, 68, 240, 83, 35, 51, 72, 83, 35, 51, 72, 0, 14, 68, 84, 131, 79, 124, 89, 39, 71,
-			107, 72, 35, 65, 0, 17, 69, 82, 20, 112, 68, 240, 91, 35, 107, 51, 36, 49, 39, 51, 72, 0, 14, 68, 79, 53, 79, 124, 89, 37,
-			89, 35, 72, 39, 65, 0, 19, 70, 79, 8, 12, 35, 56, 0, 89, 36, 49, 35, 50, 75, 36, 71, 37, 50, 0, 20, 70, 77, 17, 219,
-			194, 3, 225, 89, 35, 51, 35, 83, 49, 35, 50, 72, 36, 12, 0, 16, 69, 71, 51, 71, 130, 16, 51, 36, 57, 107, 108, 50, 36, 12,
-			0, 15, 69, 68, 120, 72, 68, 240, 51, 108, 107, 71, 39, 51, 72, 0, 10, 67, 34, 36, 83, 71, 40, 51, 89, 0, 15, 69, 32, 200,
-			34, 68, 240, 71, 39, 75, 50, 40, 51, 72, 0, 15, 69, 32, 116, 226, 28, 240, 71, 108, 89, 35, 84, 108, 72, 0, 14, 68, 32, 116,
-			115, 124, 71, 108, 51, 37, 57, 39, 65, 0, 15, 69, 9, 50, 135, 130, 16, 108, 89, 47, 108, 50, 36, 12, 0, 8, 65, 84, 6, 89,
-			108, 72, 0, 0, 13, 68, 192, 116, 74, 120, 49, 108, 51, 47, 36, 55, 0, 12, 67, 187, 4, 82, 76, 36, 49, 36, 51, 88, 0, 13,
-			68, 180, 116, 202, 120, 48, 108, 89, 47, 36, 55, 0, 16, 69, 128, 226, 49, 30, 0, 50, 39, 101, 71, 36, 81, 108, 50, 0, 14, 67,
-			124, 200, 82, 65, 39, 75, 35, 107, 107, 35, 88, 0, 15, 69, 62, 39, 155, 206, 0, 6, 72, 39, 55, 83, 37, 50, 0, 12, 67, 57,
-			17, 210, 101, 35, 51, 51, 108, 88, 0, 14, 69, 40, 120, 15, 138, 0, 47, 108, 50, 72, 39, 50, 0, 11, 67, 35, 24, 128, 71, 36,
-			81, 40, 12, 0, 16, 69, 34, 4, 162, 28, 160, 71, 35, 50, 88, 39, 84, 108, 47, 0, 0, 17, 70, 181, 225, 240, 29, 19, 192, 48,
-			36, 55, 108, 49, 108, 51, 72, 0, 18, 70, 133, 243, 222, 30, 8, 64, 107, 35, 65, 72, 36, 55, 108, 50, 36, 0, 17, 70, 128, 117,
-			77, 30, 8, 64, 50, 108, 89, 36, 107, 108, 50, 36, 0, 14, 67, 125, 149, 209, 65, 39, 19, 35, 47, 47, 35, 51, 0, 20, 70, 125,
-			87, 223, 30, 8, 64, 65, 39, 89, 35, 65, 65, 35, 65, 108, 50, 36, 0, 11, 67, 124, 115, 209, 65, 108, 72, 35, 51, 0, 20, 71,
-			110, 36, 95, 29, 236, 202, 132, 83, 39, 51, 65, 108, 55, 37, 47, 36, 12, 0, 19, 70, 105, 252, 96, 30, 8, 64, 104, 17, 35, 65,
-			81, 36, 50, 108, 50, 36, 0, 18, 70, 85, 252, 223, 30, 8, 64, 89, 35, 65, 37, 65, 108, 50, 36, 12, 0, 11, 67, 84, 241, 209,
-			89, 36, 72, 108, 51, 0, 11, 67, 77, 243, 0, 89, 36, 65, 36, 75, 0, 16, 69, 74, 3, 199, 129, 240, 88, 36, 50, 72, 108, 50,
-			35, 65, 0, 17, 70, 71, 52, 143, 30, 8, 64, 51, 37, 88, 72, 108, 50, 36, 12, 0, 12, 67, 62, 33, 209, 72, 35, 84, 84, 108,
-			51, 0, 20, 71, 61, 17, 224, 60, 115, 138, 132, 72, 35, 51, 35, 50, 72, 108, 101, 47, 36, 0, 16, 70, 60, 117, 8, 137, 19, 192,
-			72, 108, 91, 71, 39, 51, 72, 0, 17, 69, 41, 232, 145, 205, 240, 47, 36, 55, 39, 51, 37, 57, 39, 65, 0, 13, 67, 41, 12, 17,
-			47, 35, 88, 35, 49, 39, 51, 0, 12, 67, 33, 54, 209, 71, 39, 89, 83, 39, 51, 0, 12, 67, 32, 225, 209, 71, 39, 12, 101, 108,
-			51, 0, 17, 70, 29, 66, 161, 29, 19, 192, 36, 91, 47, 36, 107, 108, 51, 72, 0, 15, 69, 29, 60, 17, 205, 240, 36, 89, 49, 36,
-			51, 37, 65, 0, 0, 13, 68, 198, 35, 209, 72, 81, 40, 72, 35, 51, 88, 0, 8, 66, 195, 48, 49, 36, 57, 0, 23, 72, 186, 3,
-			199, 128, 213, 71, 71, 48, 76, 35, 50, 72, 36, 50, 107, 36, 89, 108, 51, 37, 0, 21, 71, 132, 120, 145, 193, 17, 219, 40, 107, 108,
-			84, 36, 51, 49, 36, 51, 108, 83, 47, 0, 13, 68, 68, 115, 17, 72, 51, 108, 75, 36, 51, 88, 0, 12, 67, 41, 4, 98, 47, 35,
-			88, 35, 51, 84, 0, 15, 69, 29, 28, 71, 129, 224, 39, 51, 81, 108, 50, 36, 55, 0, 9, 66, 195, 48, 49, 36, 57, 0, 76, 8,
-			66, 187, 48, 76, 37, 0, 76, 0, 16, 69, 193, 28, 211, 125, 48, 49, 36, 51, 37, 89, 65, 35, 89, 0, 18, 70, 135, 51, 209, 138,
-			248, 33, 107, 37, 72, 51, 39, 90, 36, 50, 36, 0, 18, 70, 129, 252, 207, 30, 7, 192, 50, 36, 65, 37, 72, 108, 50, 35, 65, 0,
-			18, 70, 129, 252, 200, 71, 55, 192, 50, 36, 65, 37, 71, 35, 51, 37, 65, 0, 13, 68, 126, 28, 199, 68, 65, 35, 107, 57, 108, 51,
-			0, 14, 68, 124, 225, 215, 68, 65, 39, 101, 108, 47, 36, 51, 0, 23, 70, 124, 167, 30, 32, 120, 33, 65, 39, 47, 36, 104, 17, 35,
-			55, 55, 36, 71, 108, 50, 36, 0, 22, 70, 124, 161, 211, 108, 120, 33, 65, 39, 47, 35, 19, 35, 89, 89, 36, 83, 108, 50, 36, 0,
-			19, 70, 124, 115, 209, 125, 19, 225, 65, 108, 72, 35, 51, 65, 39, 51, 72, 36, 0, 13, 67, 114, 33, 211, 104, 17, 35, 84, 84, 108,
-			89, 0, 11, 67, 97, 180, 64, 88, 35, 83, 35, 51, 0, 10, 67, 85, 180, 64, 89, 36, 83, 51, 0, 18, 70, 80, 124, 81, 60, 120,
-			33, 91, 108, 81, 36, 51, 72, 108, 50, 36, 0, 11, 67, 77, 180, 64, 89, 35, 83, 35, 51, 0, 15, 68, 69, 178, 177, 68, 51, 39,
-			83, 47, 36, 81, 35, 51, 0, 11, 67, 55, 49, 215, 107, 35, 57, 108, 47, 0, 11, 67, 49, 180, 64, 75, 35, 83, 35, 51, 0, 14,
-			69, 34, 34, 135, 193, 48, 71, 40, 47, 108, 49, 89, 0, 20, 70, 33, 232, 98, 76, 120, 33, 71, 39, 55, 107, 35, 84, 35, 89, 108,
-			50, 36, 0, 14, 68, 33, 60, 199, 68, 71, 36, 89, 37, 57, 108, 51, 0, 14, 68, 33, 59, 71, 68, 71, 36, 89, 36, 48, 108, 51,
-			0, 18, 70, 33, 17, 224, 192, 116, 79, 71, 36, 51, 108, 50, 49, 108, 51, 72, 0, 18, 70, 32, 242, 51, 128, 120, 33, 71, 35, 72,
-			71, 37, 50, 108, 50, 36, 0, 24, 72, 29, 236, 10, 71, 52, 243, 42, 16, 36, 55, 36, 49, 47, 36, 51, 37, 89, 37, 47, 36, 12,
-			0, 16, 69, 29, 18, 143, 193, 48, 39, 51, 47, 39, 72, 39, 49, 89, 0, 0, 11, 67, 204, 252, 0, 57, 35, 72, 35, 49, 0, 13,
-			68, 197, 23, 209, 136, 81, 35, 51, 65, 51, 40, 0, 12, 67, 125, 148, 86, 65, 35, 19, 51, 35, 88, 0, 16, 68, 113, 231, 209, 136,
-			104, 17, 35, 55, 35, 65, 51, 39, 12, 0, 12, 67, 33, 33, 210, 71, 35, 88, 88, 108, 88, 0, 0, 10, 67, 192, 115, 209, 49, 108,
-			72, 51, 0, 17, 70, 182, 39, 135, 71, 52, 223, 48, 39, 55, 108, 51, 37, 89, 65, 0, 11, 67, 182, 33, 209, 48, 39, 84, 108, 51,
-			0, 11, 67, 130, 19, 192, 50, 35, 107, 35, 72, 0, 16, 69, 126, 8, 174, 133, 16, 65, 35, 50, 40, 76, 36, 107, 51, 0, 11, 67,
-			85, 243, 192, 89, 35, 65, 35, 72, 0, 11, 67, 81, 243, 192, 91, 35, 65, 35, 72, 0, 18, 70, 69, 241, 224, 43, 52, 223, 51, 39,
-			65, 108, 50, 47, 37, 89, 65, 0, 15, 69, 31, 56, 28, 61, 16, 37, 50, 104, 17, 35, 72, 51, 0, 15, 69, 29, 226, 144, 29, 0,
-			36, 55, 47, 36, 88, 108, 88, 0, 23, 2, 219, 131, 6, 47, 108, 57, 36, 20, 4, 47, 35, 19, 50, 37, 89, 10, 39, 51, 72, 40,
-			0, 15, 2, 217, 147, 49, 39, 55, 108, 107, 36, 10, 108, 12, 12, 0, 0, 18, 70, 181, 232, 142, 137, 21, 0, 48, 39, 55, 39, 101,
-			39, 51, 36, 91, 0, 11, 67, 81, 23, 179, 91, 36, 51, 55, 37, 0, 17, 70, 76, 120, 15, 139, 59, 128, 89, 108, 50, 72, 36, 84,
-			37, 76, 0, 11, 67, 48, 124, 20, 75, 108, 49, 36, 91, 0, 24, 73, 30, 12, 17, 29, 225, 213, 136, 114, 128, 35, 50, 49, 35, 51,
-			39, 55, 35, 89, 84, 108, 47, 0, 20, 2, 219, 130, 6, 107, 36, 4, 107, 35, 65, 88, 36, 12, 10, 39, 51, 72, 40, 0, 10, 2,
-			217, 146, 89, 108, 49, 36, 50, 0, 0, 19, 70, 186, 209, 226, 123, 20, 64, 76, 35, 48, 108, 84, 39, 55, 81, 35, 51, 0, 17, 70,
-			128, 120, 95, 136, 116, 64, 50, 108, 107, 35, 65, 84, 108, 51, 0, 20, 70, 126, 2, 156, 60, 120, 0, 65, 39, 50, 47, 35, 104, 17,
-			36, 72, 108, 50, 0, 13, 67, 105, 21, 0, 104, 17, 39, 51, 51, 36, 91, 0, 20, 71, 79, 8, 158, 29, 28, 211, 124, 89, 36, 49,
-			40, 55, 108, 51, 37, 89, 65, 0, 15, 68, 77, 248, 15, 68, 89, 35, 65, 35, 50, 72, 35, 51, 0, 21, 72, 32, 116, 179, 198, 37,
-			7, 130, 16, 71, 108, 88, 37, 81, 40, 91, 108, 50, 36, 0, 16, 70, 9, 21, 51, 62, 44, 0, 108, 51, 91, 37, 72, 40, 49, 0,
-			14, 2, 219, 129, 6, 107, 36, 12, 10, 39, 51, 72, 40, 0, 0, 12, 67, 192, 252, 128, 49, 35, 72, 36, 57, 36, 0, 11, 67, 126,
-			44, 10, 65, 39, 49, 36, 47, 0, 14, 68, 124, 193, 224, 204, 65, 35, 75, 75, 108, 50, 37, 0, 17, 70, 124, 161, 222, 138, 252, 192,
-			65, 36, 47, 108, 55, 39, 90, 37, 0, 14, 67, 115, 55, 202, 104, 17, 36, 57, 6, 65, 35, 47, 0, 14, 68, 77, 184, 160, 204, 89,
-			35, 65, 83, 39, 50, 37, 0, 11, 67, 76, 124, 10, 89, 108, 49, 36, 47, 0, 16, 69, 73, 244, 202, 138, 0, 88, 36, 65, 36, 89,
-			47, 40, 50, 0, 11, 67, 68, 124, 10, 51, 108, 49, 36, 47, 0, 22, 71, 63, 54, 209, 30, 4, 243, 120, 72, 37, 83, 6, 51, 108,
-			50, 89, 37, 57, 36, 55, 0, 25, 73, 48, 252, 207, 29, 226, 141, 87, 55, 128, 75, 35, 72, 37, 72, 39, 47, 47, 35, 107, 89, 37,
-			55, 0, 17, 69, 42, 12, 7, 34, 0, 47, 39, 50, 36, 49, 108, 71, 39, 50, 0, 15, 69, 32, 119, 155, 69, 96, 71, 36, 55, 83,
-			35, 51, 88, 0, 18, 70, 29, 236, 241, 136, 244, 82, 35, 55, 37, 81, 40, 72, 35, 51, 88, 0, 14, 2, 218, 136, 6, 72, 108, 55,
-			10, 39, 51, 72, 40, 0, 0, 24, 73, 181, 19, 135, 80, 200, 179, 30, 8, 64, 48, 35, 51, 101, 108, 91, 75, 40, 57, 108, 50, 36,
-			0, 12, 67, 125, 35, 240, 65, 35, 88, 72, 35, 49, 0, 13, 68, 124, 114, 25, 60, 65, 108, 71, 35, 19, 72, 0, 11, 67, 69, 83,
-			192, 51, 35, 89, 35, 72, 0, 16, 69, 34, 24, 12, 29, 16, 71, 36, 107, 35, 50, 75, 108, 51, 0, 21, 70, 33, 17, 200, 70, 12,
-			81, 71, 35, 51, 108, 71, 35, 51, 50, 36, 81, 35, 51, 0, 15, 69, 29, 50, 162, 29, 16, 39, 89, 47, 39, 84, 108, 51, 0, 22,
-			72, 28, 139, 240, 43, 56, 179, 77, 240, 39, 71, 90, 36, 49, 47, 37, 84, 37, 89, 65, 0, 19, 70, 8, 228, 71, 122, 8, 81, 108,
-			101, 36, 51, 39, 50, 50, 35, 107, 51, 0, 0, 12, 67, 194, 44, 8, 49, 39, 12, 49, 35, 71, 0, 13, 68, 193, 24, 135, 40, 49,
-			51, 39, 84, 108, 47, 0, 15, 69, 186, 34, 27, 69, 64, 76, 40, 71, 83, 35, 51, 91, 0, 19, 70, 133, 252, 226, 180, 114, 179, 107,
-			39, 65, 37, 57, 39, 48, 108, 47, 37, 0, 15, 69, 126, 23, 199, 131, 48, 65, 36, 107, 65, 108, 50, 37, 0, 12, 67, 101, 196, 72,
-			35, 104, 17, 51, 35, 71, 0, 15, 69, 97, 231, 199, 131, 48, 88, 39, 55, 65, 108, 50, 37, 0, 13, 68, 80, 161, 219, 40, 91, 36,
-			47, 108, 83, 47, 0, 14, 68, 77, 177, 225, 40, 89, 36, 83, 108, 107, 35, 47, 0, 14, 69, 70, 35, 71, 131, 48, 51, 39, 107, 108,
-			50, 37, 0, 22, 70, 40, 195, 207, 124, 34, 51, 47, 35, 75, 35, 72, 72, 39, 72, 65, 35, 108, 71, 37, 0, 17, 69, 32, 247, 34,
-			123, 48, 71, 35, 72, 104, 17, 39, 84, 55, 37, 0, 14, 69, 29, 60, 34, 62, 32, 36, 89, 49, 39, 72, 39, 0, 14, 67, 28, 247,
-			178, 35, 72, 36, 55, 55, 36, 57, 36, 0, 16, 69, 9, 193, 223, 123, 48, 108, 104, 17, 108, 65, 35, 55, 37, 0, 0, 13, 68, 193,
-			225, 209, 192, 49, 36, 55, 108, 51, 49, 0, 17, 69, 183, 56, 160, 60, 240, 48, 36, 57, 84, 35, 50, 72, 35, 72, 0, 14, 67, 126,
-			35, 79, 65, 39, 84, 35, 107, 107, 36, 72, 0, 13, 67, 114, 33, 207, 104, 17, 35, 84, 84, 108, 72, 0, 11, 67, 109, 19, 64, 83,
-			35, 51, 35, 107, 0, 10, 67, 58, 36, 79, 101, 39, 51, 72, 0, 24, 73, 48, 252, 207, 29, 226, 135, 123, 54, 192, 75, 35, 72, 37,
-			72, 39, 47, 47, 35, 55, 37, 83, 0, 12, 67, 41, 244, 113, 47, 35, 65, 35, 51, 81, 0, 15, 69, 40, 104, 145, 207, 0, 47, 36,
-			10, 39, 51, 37, 49, 0, 17, 70, 33, 242, 7, 68, 120, 0, 71, 39, 65, 71, 108, 51, 108, 50, 0, 11, 67, 30, 36, 79, 39, 84,
-			39, 51, 72, 0, 0, 19, 71, 134, 39, 243, 138, 209, 202, 204, 107, 39, 65, 36, 39, 48, 108, 47, 37, 0, 17, 70, 133, 248, 155, 205,
-			236, 192, 107, 36, 65, 39, 83, 37, 55, 37, 0, 14, 69, 128, 120, 15, 30, 0, 50, 108, 50, 72, 108, 50, 0, 16, 70, 127, 56, 95,
-			30, 12, 192, 65, 37, 107, 65, 108, 50, 37, 0, 14, 68, 124, 209, 209, 32, 65, 39, 107, 108, 51, 36, 71, 0, 16, 69, 95, 55, 147,
-			30, 0, 47, 36, 57, 55, 35, 89, 108, 50, 0, 18, 70, 92, 119, 156, 30, 12, 192, 47, 108, 55, 36, 104, 17, 108, 50, 37, 0, 16,
-			70, 80, 119, 237, 30, 12, 192, 91, 108, 65, 48, 108, 50, 37, 0, 16, 70, 79, 52, 95, 30, 12, 192, 89, 37, 51, 65, 108, 50, 37,
-			0, 15, 69, 78, 209, 225, 30, 0, 89, 36, 48, 108, 107, 108, 50, 0, 11, 67, 77, 248, 0, 89, 35, 65, 35, 50, 0, 12, 67, 77,
-			17, 218, 89, 39, 51, 108, 104, 17, 0, 18, 70, 76, 116, 143, 134, 12, 192, 89, 108, 88, 72, 35, 107, 35, 50, 37, 0, 15, 69, 76,
-			116, 71, 110, 0, 89, 108, 51, 108, 83, 39, 50, 0, 16, 70, 71, 56, 135, 120, 248, 128, 51, 37, 84, 108, 55, 72, 39, 0, 16, 70,
-			40, 116, 223, 30, 12, 192, 47, 108, 89, 65, 108, 50, 37, 0, 19, 70, 34, 17, 209, 113, 236, 192, 71, 35, 107, 108, 51, 104, 17, 39,
-			55, 37, 0, 19, 70, 33, 225, 223, 100, 116, 86, 71, 36, 55, 108, 65, 39, 108, 51, 36, 88, 0, 15, 69, 33, 18, 135, 108, 160, 71,
-			35, 51, 47, 108, 83, 47, 0, 0, 13, 68, 128, 124, 209, 196, 50, 108, 57, 51, 35, 81, 0, 10, 67, 127, 17, 192, 65, 36, 81, 108,
-			0, 14, 67, 92, 135, 0, 6, 47, 36, 71, 104, 17, 36, 12, 0, 14, 68, 78, 209, 209, 60, 89, 36, 48, 108, 51, 35, 72, 0, 14,
-			68, 77, 19, 145, 196, 89, 39, 51, 101, 51, 35, 81, 0, 12, 68, 58, 33, 225, 60, 101, 108, 107, 35, 72, 0, 10, 67, 40, 161, 192,
-			47, 36, 47, 108, 0, 14, 68, 33, 16, 145, 60, 71, 35, 51, 108, 51, 35, 72, 0, 10, 67, 32, 161, 192, 71, 36, 47, 108, 0, 19,
-			70, 28, 132, 135, 70, 12, 81, 35, 71, 88, 108, 51, 50, 36, 81, 35, 51, 0, 14, 68, 9, 230, 209, 60, 108, 55, 83, 36, 51, 36,
-			72, 0, 0, 12, 67, 102, 19, 242, 39, 107, 72, 36, 57, 36, 0, 12, 67, 93, 225, 200, 47, 39, 55, 55, 108, 71, 0, 11, 67, 81,
-			225, 200, 91, 39, 55, 108, 71, 0, 13, 68, 80, 120, 81, 56, 91, 108, 107, 51, 39, 101, 0, 18, 70, 80, 116, 94, 124, 120, 51, 91,
-			108, 51, 55, 39, 65, 108, 50, 37, 0, 17, 69, 71, 51, 71, 131, 32, 51, 36, 57, 107, 108, 50, 36, 57, 36, 0, 11, 67, 52, 193,
-			200, 107, 36, 75, 108, 71, 0, 0, 10, 67, 198, 44, 199, 81, 40, 57, 108, 0, 13, 68, 194, 12, 199, 192, 49, 39, 50, 57, 108, 49,
-			0, 15, 69, 193, 225, 211, 207, 0, 49, 36, 55, 108, 89, 37, 49, 0, 12, 67, 180, 252, 199, 48, 36, 72, 37, 57, 108, 0, 12, 67,
-			124, 252, 199, 65, 36, 72, 37, 57, 108, 0, 11, 67, 82, 213, 0, 91, 36, 48, 36, 91, 0, 34, 75, 40, 195, 243, 62, 6, 17, 93,
-			226, 7, 130, 16, 47, 35, 75, 72, 37, 72, 36, 50, 35, 88, 35, 51, 47, 35, 55, 35, 71, 108, 50, 36, 0, 15, 69, 33, 236, 199,
-			68, 240, 71, 36, 55, 57, 108, 51, 72, 0, 22, 72, 28, 168, 159, 35, 55, 145, 30, 0, 39, 47, 39, 65, 39, 71, 37, 55, 51, 108,
-			50, 0, 14, 2, 218, 145, 6, 34, 36, 12, 10, 39, 51, 72, 40, 0, 0, 11, 67, 205, 248, 0, 57, 35, 65, 35, 50, 0, 10, 67,
-			196, 168, 128, 81, 36, 47, 39, 0, 17, 69, 193, 244, 243, 138, 0, 49, 39, 65, 37, 89, 37, 57, 39, 50, 0, 13, 68, 181, 251, 71,
-			188, 48, 39, 65, 48, 108, 90, 0, 14, 69, 134, 36, 95, 138, 0, 107, 39, 51, 65, 40, 50, 0, 15, 69, 126, 1, 204, 28, 160, 65,
-			39, 50, 108, 75, 108, 47, 0, 17, 69, 124, 168, 135, 74, 0, 65, 39, 47, 36, 84, 108, 88, 36, 50, 0, 11, 67, 77, 252, 0, 89,
-			35, 65, 35, 49, 0, 15, 69, 55, 1, 243, 28, 160, 107, 36, 49, 108, 57, 108, 47, 0, 16, 68, 42, 24, 179, 200, 47, 35, 107, 84,
-			37, 57, 36, 57, 36, 0, 16, 69, 35, 4, 226, 28, 160, 71, 39, 49, 89, 39, 84, 108, 47, 0, 16, 69, 32, 245, 49, 138, 0, 71,
-			35, 72, 91, 39, 81, 40, 50, 0, 0, 14, 68, 192, 132, 115, 28, 49, 36, 71, 51, 37, 57, 108, 0, 10, 67, 72, 241, 192, 88, 39,
-			72, 108, 0, 17, 70, 28, 132, 97, 29, 19, 192, 35, 71, 35, 51, 107, 108, 51, 72, 0, 0, 23, 72, 186, 17, 209, 30, 12, 84, 43,
-			48, 76, 108, 107, 108, 51, 35, 50, 81, 39, 91, 47, 37, 0, 12, 67, 71, 56, 179, 51, 37, 57, 35, 84, 37, 0, 15, 69, 63, 8,
-			173, 30, 240, 72, 36, 49, 39, 48, 108, 90, 0, 0, 16, 69, 197, 232, 145, 204, 112, 81, 36, 55, 39, 51, 37, 57, 108, 0, 15, 69,
-			133, 248, 160, 48, 112, 107, 35, 65, 40, 50, 75, 108, 0, 15, 69, 111, 52, 200, 139, 0, 83, 36, 57, 89, 71, 40, 49, 0, 16, 69,
-			92, 140, 217, 40, 112, 47, 35, 71, 37, 35, 47, 35, 50, 0, 11, 67, 29, 231, 7, 36, 55, 104, 17, 108, 0, 0, 15, 69, 193, 17,
-			202, 206, 0, 49, 36, 51, 108, 47, 37, 50, 0, 14, 68, 125, 50, 162, 204, 65, 39, 89, 47, 35, 84, 37, 0, 16, 69, 62, 20, 202,
-			30, 0, 72, 36, 107, 36, 89, 47, 108, 50, 0, 0, 18, 70, 136, 119, 160, 79, 49, 192, 84, 108, 55, 36, 50, 89, 37, 57, 108, 0,
-			11, 67, 101, 71, 0, 36, 12, 91, 104, 17, 0, 13, 68, 70, 34, 32, 28, 51, 40, 71, 35, 50, 108, 0, 13, 68, 69, 49, 224, 28,
-			51, 36, 89, 108, 50, 108, 0, 16, 68, 41, 230, 224, 28, 47, 36, 55, 36, 83, 39, 50, 35, 50, 0, 17, 68, 41, 151, 207, 28, 47,
-			35, 19, 35, 65, 65, 39, 72, 35, 50, 0, 14, 68, 32, 245, 79, 28, 71, 35, 72, 89, 36, 72, 108, 0, 13, 68, 32, 120, 76, 28,
-			71, 108, 107, 36, 75, 108, 0, 13, 68, 29, 146, 160, 28, 36, 19, 47, 36, 50, 108, 0, 20, 2, 219, 147, 6, 57, 36, 4, 107, 35,
-			65, 88, 36, 12, 10, 39, 51, 72, 40, 0, 0, 17, 70, 192, 118, 209, 195, 53, 0, 49, 108, 83, 35, 51, 49, 37, 91, 0, 13, 67,
-			120, 184, 179, 55, 35, 89, 89, 35, 84, 37, 0, 11, 67, 120, 130, 128, 55, 35, 71, 35, 47, 0, 18, 70, 30, 2, 161, 31, 53, 0,
-			36, 50, 47, 36, 107, 108, 57, 35, 91, 0, 23, 5, 216, 168, 46, 217, 133, 71, 35, 12, 19, 72, 10, 35, 88, 9, 65, 37, 55, 108,
-			72, 0, 46, 13, 2, 219, 146, 6, 57, 36, 10, 39, 51, 72, 40, 0, 0, 17, 70, 193, 236, 224, 42, 40, 0, 49, 36, 55, 37, 50,
-			47, 39, 50, 0, 13, 67, 115, 55, 192, 104, 17, 35, 57, 57, 36, 65, 0, 15, 69, 71, 4, 199, 128, 112, 51, 39, 49, 89, 108, 50,
-			108, 0, 12, 67, 69, 60, 207, 6, 51, 36, 89, 37, 72, 0, 19, 70, 61, 71, 224, 124, 120, 0, 72, 39, 91, 65, 35, 50, 36, 65,
-			108, 50, 0, 11, 67, 35, 56, 161, 71, 37, 84, 36, 12, 0, 15, 69, 29, 50, 139, 128, 112, 36, 89, 47, 36, 89, 50, 108, 0, 10,
-			67, 8, 135, 192, 108, 71, 35, 65, 0, 0, 14, 68, 194, 24, 49, 204, 49, 39, 107, 50, 36, 81, 37, 0, 15, 69, 189, 225, 202, 206,
-			0, 90, 36, 55, 108, 47, 37, 50, 0, 19, 70, 133, 244, 219, 71, 28, 192, 107, 35, 65, 89, 39, 83, 51, 36, 81, 37, 0, 17, 67,
-			124, 215, 28, 65, 39, 107, 35, 104, 17, 104, 17, 36, 104, 17, 0, 12, 68, 124, 124, 19, 204, 65, 108, 49, 89, 37, 0, 12, 68, 79,
-			51, 224, 204, 89, 37, 72, 50, 37, 0, 15, 69, 61, 236, 204, 30, 0, 72, 36, 55, 37, 75, 108, 50, 0, 20, 70, 61, 50, 136, 128,
-			252, 192, 6, 72, 35, 89, 47, 36, 71, 35, 50, 72, 37, 0, 13, 68, 60, 115, 224, 204, 72, 108, 72, 35, 50, 37, 0, 11, 67, 53,
-			92, 224, 107, 35, 89, 37, 50, 0, 14, 67, 41, 232, 160, 47, 35, 55, 35, 84, 84, 39, 50, 0, 15, 67, 41, 184, 156, 47, 35, 83,
-			35, 84, 84, 39, 104, 17, 0, 14, 67, 33, 67, 202, 71, 36, 91, 36, 72, 72, 35, 47, 0, 10, 67, 32, 124, 202, 71, 108, 57, 47,
-			0, 17, 70, 30, 4, 202, 204, 168, 128, 35, 50, 36, 89, 47, 37, 47, 39, 0, 33, 76, 29, 236, 10, 70, 38, 243, 75, 56, 158, 138,
-			252, 192, 36, 55, 36, 49, 47, 36, 51, 39, 83, 37, 88, 37, 57, 39, 55, 39, 90, 37, 0, 13, 67, 28, 136, 74, 39, 71, 39, 107,
-			107, 35, 47, 0, 0, 12, 68, 182, 36, 179, 60, 48, 39, 88, 37, 72, 0, 13, 68, 126, 21, 51, 60, 65, 35, 107, 91, 37, 72, 0,
-			11, 67, 124, 114, 159, 65, 108, 47, 35, 65, 0, 15, 68, 76, 228, 115, 132, 89, 39, 101, 51, 37, 57, 36, 12, 0, 15, 68, 74, 3,
-			243, 132, 88, 35, 50, 72, 37, 57, 36, 12, 0, 13, 68, 40, 132, 115, 60, 47, 35, 71, 51, 37, 72, 0, 19, 70, 33, 28, 202, 30,
-			1, 192, 71, 36, 51, 37, 47, 108, 50, 37, 57, 108, 0, 14, 68, 32, 132, 115, 60, 71, 36, 71, 35, 51, 37, 72, 0, 17, 70, 32,
-			119, 145, 206, 1, 192, 71, 108, 55, 36, 51, 37, 50, 108, 0, 0, 15, 69, 193, 24, 135, 43, 48, 49, 51, 39, 84, 108, 47, 37, 0,
-			8, 66, 189, 224, 90, 36, 55, 0, 8, 66, 185, 224, 76, 36, 55, 0, 8, 66, 181, 224, 48, 39, 55, 0, 21, 70, 180, 244, 112, 80,
-			172, 115, 48, 36, 72, 35, 51, 49, 39, 91, 47, 36, 81, 37, 0, 15, 68, 125, 19, 224, 40, 65, 39, 51, 72, 35, 50, 35, 47, 0,
-			20, 70, 122, 34, 51, 30, 215, 162, 55, 40, 71, 37, 57, 108, 48, 39, 55, 39, 84, 0, 13, 68, 77, 28, 115, 128, 89, 36, 51, 81,
-			37, 50, 0, 13, 68, 34, 4, 179, 128, 71, 36, 50, 88, 37, 50, 0, 15, 68, 33, 39, 209, 104, 71, 39, 88, 65, 39, 51, 104, 17,
-			0, 16, 69, 33, 20, 160, 199, 48, 71, 35, 51, 88, 35, 50, 81, 37, 0, 17, 68, 32, 247, 30, 112, 71, 35, 72, 104, 17, 36, 55,
-			36, 104, 17, 0, 14, 68, 29, 231, 224, 40, 36, 55, 36, 65, 36, 50, 47, 0, 13, 68, 8, 228, 115, 128, 108, 101, 35, 51, 37, 50,
-			0, 0, 12, 67, 186, 3, 33, 76, 36, 50, 75, 36, 12, 0, 17, 70, 139, 56, 19, 42, 40, 0, 84, 37, 50, 36, 89, 47, 39, 50,
-			0, 17, 69, 131, 51, 17, 206, 16, 50, 37, 75, 36, 51, 37, 57, 36, 12, 0, 11, 67, 131, 8, 161, 50, 36, 49, 40, 107, 0, 12,
-			67, 129, 183, 161, 50, 36, 83, 55, 36, 12, 0, 16, 69, 125, 113, 243, 34, 16, 65, 39, 47, 108, 57, 36, 71, 36, 0, 18, 69, 115,
-			53, 209, 206, 16, 104, 17, 36, 57, 47, 35, 51, 37, 57, 36, 0, 13, 67, 114, 24, 161, 104, 17, 35, 107, 84, 36, 12, 0, 14, 67,
-			92, 135, 33, 47, 35, 71, 35, 104, 17, 36, 12, 0, 12, 67, 80, 248, 15, 91, 39, 72, 35, 50, 72, 0, 9, 67, 79, 55, 192, 89,
-			37, 65, 0, 11, 67, 62, 247, 192, 72, 36, 90, 35, 65, 0, 17, 70, 62, 36, 202, 124, 120, 0, 72, 40, 89, 47, 36, 65, 108, 50,
-			0, 12, 67, 57, 24, 15, 101, 35, 51, 35, 50, 72, 0, 12, 67, 53, 200, 33, 107, 39, 104, 17, 50, 36, 0, 13, 67, 35, 8, 15,
-			71, 39, 49, 39, 50, 35, 72, 0, 12, 67, 33, 24, 15, 71, 35, 51, 35, 50, 72, 0, 16, 70, 29, 119, 243, 128, 120, 0, 36, 47,
-			65, 37, 50, 108, 50, 0, 18, 70, 29, 18, 135, 129, 44, 199, 39, 51, 47, 108, 50, 88, 37, 57, 108, 0, 0, 15, 69, 198, 43, 237,
-			80, 160, 81, 40, 90, 48, 39, 91, 47, 0, 12, 67, 197, 44, 224, 6, 81, 39, 88, 37, 50, 0, 15, 69, 194, 43, 237, 80, 160, 49,
-			40, 90, 48, 39, 91, 47, 0, 14, 68, 186, 209, 226, 120, 76, 35, 48, 108, 84, 39, 55, 0, 33, 76, 186, 3, 213, 62, 20, 135, 68,
-			168, 159, 30, 12, 192, 76, 35, 50, 72, 89, 35, 72, 107, 36, 88, 108, 51, 47, 39, 65, 108, 50, 37, 0, 18, 69, 185, 232, 159, 69,
-			160, 76, 36, 55, 39, 84, 65, 39, 51, 104, 17, 0, 13, 68, 185, 27, 179, 120, 76, 36, 51, 76, 37, 55, 0, 11, 67, 132, 167, 128,
-			107, 39, 47, 36, 55, 0, 11, 67, 124, 167, 128, 65, 39, 47, 36, 55, 0, 19, 70, 109, 19, 160, 63, 28, 192, 83, 35, 51, 101, 39,
-			50, 72, 36, 81, 37, 0, 12, 67, 102, 35, 202, 6, 39, 12, 72, 35, 47, 0, 18, 69, 80, 164, 95, 69, 160, 91, 39, 47, 39, 51,
-			65, 39, 51, 104, 17, 0, 19, 70, 77, 20, 160, 63, 28, 192, 89, 35, 51, 88, 36, 50, 72, 36, 81, 37, 0, 11, 67, 72, 135, 128,
-			88, 36, 71, 36, 55, 0, 17, 70, 70, 39, 199, 71, 56, 128, 51, 39, 65, 108, 51, 37, 57, 39, 0, 13, 68, 61, 28, 200, 120, 72,
-			36, 51, 37, 71, 55, 0, 14, 67, 41, 56, 32, 47, 35, 89, 35, 50, 50, 39, 50, 0, 14, 68, 29, 231, 34, 120, 35, 55, 104, 17,
-			39, 12, 55, 0, 0, 13, 68, 187, 1, 224, 60, 76, 36, 49, 108, 50, 72, 0, 17, 70, 181, 28, 199, 56, 168, 64, 48, 39, 51, 57,
-			108, 101, 47, 36, 0, 12, 68, 180, 124, 32, 132, 48, 108, 49, 50, 36, 0, 14, 67, 126, 6, 31, 65, 39, 50, 35, 88, 88, 35, 65,
-			0, 15, 68, 123, 1, 202, 132, 55, 35, 49, 49, 108, 47, 36, 12, 0, 11, 67, 112, 244, 192, 104, 17, 39, 72, 89, 0, 13, 67, 112,
-			119, 31, 104, 17, 108, 104, 17, 39, 65, 0, 14, 68, 81, 236, 202, 132, 91, 35, 55, 37, 47, 36, 12, 0, 12, 67, 60, 124, 223, 72,
-			108, 6, 57, 36, 65, 0, 10, 67, 56, 124, 219, 101, 108, 36, 83, 0, 14, 67, 41, 24, 31, 47, 35, 51, 35, 50, 50, 39, 65, 0,
-			13, 68, 40, 132, 115, 132, 47, 35, 71, 51, 35, 36, 0, 14, 68, 32, 124, 30, 132, 71, 108, 49, 35, 55, 55, 36, 0, 23, 71, 32,
-			119, 135, 107, 52, 74, 28, 71, 108, 55, 108, 104, 17, 36, 57, 51, 35, 47, 35, 50, 0, 14, 68, 28, 244, 96, 132, 35, 72, 36, 51,
-			50, 36, 12, 0, 13, 68, 9, 243, 138, 132, 108, 65, 39, 101, 47, 36, 0, 0, 13, 68, 198, 34, 30, 128, 81, 40, 71, 55, 35, 50,
-			0, 13, 68, 196, 241, 206, 40, 81, 39, 72, 108, 101, 47, 0, 17, 70, 196, 116, 202, 71, 50, 128, 81, 108, 89, 47, 36, 51, 37, 47,
-			0, 13, 67, 193, 232, 30, 49, 39, 55, 39, 50, 36, 55, 0, 18, 70, 131, 56, 15, 28, 226, 128, 50, 35, 57, 35, 50, 72, 108, 101,
-			47, 0, 13, 68, 129, 180, 115, 128, 50, 36, 83, 51, 37, 50, 0, 14, 67, 124, 211, 200, 65, 39, 107, 35, 72, 72, 35, 71, 0, 14,
-			68, 109, 23, 34, 128, 83, 39, 51, 104, 17, 40, 50, 0, 14, 68, 108, 118, 94, 128, 83, 108, 19, 36, 55, 39, 50, 0, 13, 68, 82,
-			1, 206, 40, 91, 36, 50, 108, 101, 47, 0, 13, 68, 79, 4, 115, 128, 36, 89, 49, 51, 37, 50, 0, 12, 67, 77, 242, 30, 89, 35,
-			65, 71, 39, 55, 0, 18, 70, 61, 248, 176, 68, 116, 243, 72, 36, 65, 39, 49, 51, 108, 89, 37, 0, 12, 67, 54, 39, 30, 107, 39,
-			104, 17, 35, 55, 0, 19, 70, 43, 56, 176, 68, 116, 243, 47, 36, 10, 39, 49, 36, 51, 108, 89, 37, 0, 12, 67, 41, 24, 12, 47,
-			39, 51, 35, 50, 75, 0, 10, 67, 34, 35, 204, 71, 40, 72, 75, 0, 12, 67, 33, 24, 12, 71, 36, 51, 36, 50, 75, 0, 11, 67,
-			32, 252, 222, 71, 35, 72, 37, 55, 0, 14, 68, 32, 212, 115, 128, 71, 35, 107, 51, 36, 57, 50, 0, 10, 67, 30, 216, 158, 36, 48,
-			39, 55, 0, 18, 70, 28, 215, 207, 126, 36, 243, 35, 107, 65, 35, 72, 65, 40, 89, 108, 0, 18, 70, 28, 168, 176, 68, 116, 243, 39,
-			47, 39, 49, 36, 51, 108, 89, 37, 0, 13, 68, 9, 180, 115, 128, 108, 83, 35, 51, 37, 50, 0, 8, 65, 88, 6, 88, 108, 72, 0,
-			0, 15, 69, 198, 3, 7, 128, 240, 81, 39, 50, 75, 108, 50, 72, 0, 15, 68, 193, 228, 243, 124, 49, 35, 55, 89, 37, 57, 39, 65,
-			0, 15, 69, 183, 56, 135, 190, 16, 48, 36, 57, 84, 108, 90, 36, 0, 17, 69, 129, 252, 240, 128, 240, 50, 36, 65, 37, 49, 39, 50,
-			35, 72, 0, 14, 68, 127, 60, 32, 124, 65, 37, 49, 39, 50, 35, 65, 0, 15, 69, 127, 51, 199, 128, 240, 65, 37, 72, 108, 50, 35,
-			72, 0, 17, 69, 126, 33, 210, 130, 16, 65, 39, 84, 108, 88, 36, 50, 36, 12, 0, 19, 69, 125, 202, 224, 130, 16, 65, 39, 104, 17,
-			35, 50, 50, 35, 50, 36, 12, 0, 16, 69, 125, 50, 159, 128, 240, 65, 39, 89, 47, 65, 35, 50, 72, 0, 15, 68, 125, 19, 224, 124,
-			65, 39, 51, 72, 35, 50, 35, 65, 0, 15, 68, 124, 210, 158, 124, 65, 39, 107, 47, 35, 55, 36, 65, 0, 17, 69, 124, 168, 7, 34,
-			16, 65, 39, 47, 35, 50, 108, 71, 36, 107, 0, 17, 70, 123, 17, 209, 204, 167, 192, 55, 39, 81, 108, 51, 37, 47, 65, 0, 17, 69,
-			109, 17, 217, 130, 16, 83, 35, 51, 108, 19, 36, 50, 36, 12, 0, 12, 67, 105, 20, 64, 104, 17, 39, 51, 35, 51, 0, 14, 68, 68,
-			117, 179, 124, 51, 108, 88, 37, 57, 35, 65, 0, 15, 68, 61, 71, 224, 124, 72, 39, 91, 65, 35, 50, 35, 65, 0, 18, 70, 48, 241,
-			200, 29, 178, 161, 75, 39, 72, 108, 71, 108, 83, 47, 36, 0, 16, 69, 41, 28, 7, 128, 240, 47, 35, 51, 35, 49, 108, 50, 72, 0,
-			16, 69, 33, 68, 98, 206, 16, 71, 39, 91, 51, 40, 57, 36, 12, 0, 16, 69, 33, 24, 159, 128, 240, 71, 39, 51, 40, 65, 35, 50,
-			72, 0, 18, 70, 33, 20, 199, 131, 55, 192, 71, 36, 51, 36, 89, 108, 50, 37, 65, 0, 15, 69, 33, 20, 162, 206, 16, 71, 39, 51,
-			88, 40, 57, 36, 0, 12, 67, 33, 20, 83, 71, 35, 51, 51, 36, 89, 0, 0, 15, 68, 181, 20, 224, 120, 48, 36, 51, 89, 39, 50,
-			36, 55, 0, 14, 69, 128, 120, 143, 30, 0, 50, 108, 84, 72, 108, 50, 0, 16, 68, 126, 2, 156, 120, 65, 39, 50, 47, 35, 104, 17,
-			36, 55, 0, 16, 69, 74, 3, 241, 30, 0, 88, 36, 50, 72, 36, 81, 108, 50, 0, 19, 70, 60, 116, 98, 61, 19, 138, 72, 108, 51,
-			39, 72, 36, 51, 35, 101, 47, 0, 14, 68, 48, 241, 226, 120, 75, 35, 72, 108, 84, 36, 55, 0, 12, 68, 43, 55, 226, 120, 47, 37,
-			65, 39, 55, 0, 16, 69, 43, 11, 81, 30, 0, 47, 35, 49, 48, 35, 51, 108, 50, 0, 11, 67, 41, 252, 210, 47, 35, 65, 37, 88,
-			0, 15, 69, 29, 242, 141, 30, 0, 36, 65, 47, 36, 107, 108, 50, 0, 12, 68, 10, 36, 115, 120, 108, 84, 51, 37, 55, 0, 0, 12,
-			67, 193, 232, 81, 49, 35, 55, 107, 39, 51, 0, 15, 69, 139, 55, 161, 121, 240, 84, 37, 55, 107, 36, 55, 65, 0, 11, 67, 127, 20,
-			192, 65, 35, 81, 35, 89, 0, 16, 68, 126, 24, 15, 76, 65, 39, 6, 107, 35, 50, 72, 36, 89, 0, 15, 67, 125, 195, 209, 65, 39,
-			104, 17, 35, 72, 72, 35, 51, 0, 19, 70, 124, 244, 96, 204, 168, 64, 65, 39, 72, 36, 51, 50, 37, 47, 36, 12, 0, 18, 70, 124,
-			164, 94, 206, 12, 64, 65, 36, 47, 36, 51, 55, 37, 50, 81, 0, 11, 67, 109, 19, 0, 83, 35, 51, 35, 75, 0, 13, 68, 109, 17,
-			224, 76, 83, 36, 51, 108, 50, 89, 0, 10, 67, 100, 244, 192, 35, 72, 35, 89, 0, 17, 70, 100, 131, 199, 121, 232, 64, 35, 71, 72,
-			39, 55, 55, 108, 107, 0, 18, 70, 83, 4, 71, 121, 232, 64, 91, 39, 49, 51, 39, 55, 55, 108, 107, 0, 13, 68, 79, 1, 224, 76,
-			89, 36, 49, 108, 50, 89, 0, 16, 70, 76, 119, 211, 138, 12, 64, 89, 108, 65, 89, 39, 50, 81, 0, 13, 68, 72, 124, 81, 76, 88,
-			108, 81, 51, 39, 89, 0, 14, 68, 70, 33, 200, 92, 51, 35, 84, 108, 71, 36, 47, 0, 18, 70, 41, 12, 7, 71, 56, 64, 47, 36,
-			88, 49, 108, 51, 37, 57, 36, 0, 18, 70, 34, 17, 199, 121, 232, 64, 71, 35, 107, 108, 10, 39, 55, 108, 107, 0, 17, 69, 34, 5,
-			51, 129, 240, 71, 36, 50, 36, 91, 37, 50, 35, 65, 0, 19, 70, 32, 244, 222, 205, 200, 64, 71, 35, 72, 89, 35, 55, 37, 104, 17,
-			36, 0, 19, 70, 32, 244, 199, 33, 200, 64, 71, 35, 72, 89, 108, 71, 36, 104, 17, 36, 0, 16, 70, 28, 213, 71, 207, 56, 64, 36,
-			107, 89, 108, 37, 57, 36, 0, 18, 70, 9, 231, 243, 131, 56, 159, 108, 55, 65, 37, 50, 37, 57, 39, 65, 0, 0, 12, 67, 197, 245,
-			34, 81, 39, 65, 10, 91, 39, 0, 14, 69, 196, 116, 162, 205, 224, 81, 108, 88, 39, 37, 55, 0, 8, 66, 185, 64, 76, 36, 91, 0,
-			10, 67, 182, 39, 162, 48, 39, 55, 39, 0, 14, 68, 181, 24, 138, 72, 48, 39, 51, 39, 47, 36, 88, 0, 17, 70, 181, 22, 243, 71,
-			50, 128, 48, 39, 51, 83, 37, 51, 37, 47, 0, 13, 68, 139, 56, 15, 72, 84, 37, 50, 72, 39, 88, 0, 10, 67, 101, 82, 0, 35,
-			89, 35, 71, 0, 16, 69, 81, 17, 237, 129, 224, 91, 36, 51, 108, 48, 50, 36, 55, 0, 11, 67, 80, 130, 34, 91, 35, 71, 71, 40,
-			0, 12, 67, 68, 200, 179, 51, 35, 75, 35, 84, 37, 0, 10, 67, 56, 117, 34, 101, 108, 91, 40, 0, 12, 67, 43, 8, 34, 47, 36,
-			49, 50, 39, 12, 0, 12, 67, 33, 23, 34, 71, 39, 51, 104, 17, 40, 0, 10, 67, 32, 117, 34, 71, 108, 91, 40, 0, 24, 72, 30,
-			12, 7, 70, 5, 15, 131, 48, 36, 50, 49, 108, 51, 50, 35, 91, 39, 72, 35, 50, 37, 0, 17, 70, 29, 236, 210, 28, 130, 128, 36,
-			55, 37, 88, 108, 71, 36, 47, 0, 17, 70, 29, 59, 71, 131, 56, 158, 36, 89, 48, 108, 50, 57, 39, 55, 0, 15, 69, 29, 50, 145,
-			205, 224, 36, 89, 47, 36, 51, 37, 55, 0, 11, 67, 29, 40, 34, 35, 88, 50, 39, 12, 0, 10, 67, 28, 171, 128, 35, 47, 35, 76,
-			0, 0, 18, 70, 186, 17, 209, 40, 231, 192, 76, 108, 107, 108, 51, 47, 39, 101, 65, 0, 14, 68, 181, 236, 223, 68, 48, 39, 55, 37,
-			65, 36, 51, 0, 14, 69, 135, 52, 71, 193, 48, 107, 37, 51, 108, 49, 89, 0, 15, 68, 133, 23, 15, 68, 107, 35, 51, 104, 17, 35,
-			72, 51, 0, 18, 70, 111, 55, 138, 71, 56, 49, 83, 37, 55, 47, 36, 51, 37, 50, 81, 0, 13, 68, 71, 53, 10, 68, 51, 37, 91,
-			47, 36, 51, 0, 14, 68, 43, 56, 160, 68, 47, 37, 57, 40, 50, 36, 51, 0, 14, 69, 40, 116, 81, 205, 48, 47, 108, 51, 51, 37,
-			89, 0, 19, 70, 34, 17, 193, 29, 231, 161, 71, 35, 107, 108, 10, 39, 55, 55, 108, 107, 0, 15, 68, 33, 21, 31, 68, 71, 35, 51,
-			91, 36, 65, 39, 51, 0, 20, 70, 32, 215, 207, 29, 231, 161, 71, 36, 107, 35, 65, 72, 36, 55, 55, 108, 107, 0, 9, 5, 95, 48,
-			97, 110, 100, 39, 0, 0, 12, 67, 197, 44, 82, 81, 36, 88, 81, 36, 88, 0, 17, 70, 196, 116, 79, 71, 55, 128, 81, 108, 51, 72,
-			51, 36, 57, 55, 0, 14, 67, 125, 252, 210, 65, 39, 65, 35, 57, 57, 36, 88, 0, 16, 70, 110, 39, 179, 194, 39, 128, 83, 39, 55,
-			37, 49, 40, 55, 0, 11, 67, 80, 248, 0, 91, 39, 72, 35, 50, 0, 16, 69, 60, 132, 202, 30, 0, 72, 35, 71, 36, 89, 47, 108,
-			50, 0, 15, 69, 48, 120, 20, 206, 0, 75, 108, 50, 36, 91, 37, 50, 0, 13, 68, 42, 3, 206, 136, 47, 39, 50, 72, 101, 40, 0,
-			28, 73, 41, 241, 243, 72, 248, 96, 63, 28, 192, 47, 35, 65, 108, 57, 39, 88, 72, 35, 107, 35, 50, 72, 36, 81, 37, 0, 13, 68,
-			40, 196, 115, 80, 47, 35, 75, 51, 37, 91, 0, 15, 69, 32, 116, 179, 194, 0, 71, 108, 88, 37, 49, 39, 50, 0, 19, 70, 30, 215,
-			179, 195, 53, 32, 35, 48, 55, 37, 49, 36, 57, 91, 36, 50, 0, 16, 70, 29, 59, 115, 71, 55, 128, 36, 89, 48, 37, 51, 37, 55,
-			0, 17, 2, 217, 180, 107, 35, 65, 88, 36, 57, 36, 10, 71, 108, 55, 108, 0, 0, 16, 69, 207, 3, 243, 197, 16, 57, 36, 49, 72,
-			37, 81, 35, 51, 0, 22, 71, 129, 152, 144, 32, 119, 158, 132, 50, 35, 10, 40, 88, 39, 71, 36, 55, 55, 108, 107, 0, 15, 69, 72,
-			115, 223, 133, 16, 88, 108, 72, 65, 36, 107, 51, 0, 16, 69, 68, 124, 27, 121, 16, 51, 108, 49, 83, 36, 55, 36, 51, 0, 15, 68,
-			57, 23, 241, 76, 101, 35, 51, 65, 35, 81, 35, 89, 0, 15, 69, 33, 19, 211, 205, 16, 71, 35, 51, 72, 89, 37, 51, 0, 21, 71,
-			30, 5, 7, 4, 119, 158, 132, 19, 36, 50, 91, 108, 19, 35, 55, 55, 108, 107, 0, 16, 69, 29, 60, 32, 61, 16, 36, 89, 49, 35,
-			50, 72, 35, 51, 0, 12, 68, 28, 135, 179, 76, 36, 71, 55, 37, 89, 0, 0, 12, 67, 198, 44, 243, 6, 81, 40, 12, 37, 12, 0,
-			21, 71, 181, 27, 81, 136, 172, 243, 128, 48, 39, 51, 48, 39, 51, 39, 47, 36, 37, 50, 0, 13, 67, 124, 184, 51, 65, 39, 89, 35,
-			50, 50, 108, 0, 10, 67, 78, 40, 51, 89, 39, 50, 37, 0, 13, 67, 78, 2, 179, 89, 39, 50, 50, 35, 47, 37, 0, 12, 67, 74,
-			28, 20, 88, 36, 107, 49, 36, 91, 0, 11, 67, 68, 120, 20, 51, 108, 50, 36, 91, 0, 12, 67, 60, 120, 20, 72, 6, 108, 50, 36,
-			91, 0, 24, 73, 41, 23, 226, 63, 56, 7, 127, 60, 0, 47, 36, 51, 65, 39, 72, 37, 50, 108, 65, 37, 49, 0, 12, 67, 33, 24,
-			20, 71, 39, 51, 39, 50, 91, 0, 17, 70, 32, 114, 7, 130, 44, 222, 71, 108, 71, 108, 50, 39, 36, 55, 0, 0, 11, 67, 198, 44,
-			207, 81, 40, 57, 35, 72, 0, 18, 70, 195, 49, 224, 126, 20, 64, 49, 37, 57, 108, 50, 65, 36, 107, 51, 0, 23, 72, 182, 36, 71,
-			76, 241, 222, 122, 16, 48, 40, 51, 35, 89, 35, 72, 39, 55, 55, 108, 107, 0, 15, 68, 181, 225, 241, 68, 48, 36, 55, 55, 108, 81,
-			35, 51, 0, 18, 70, 127, 60, 17, 137, 180, 64, 65, 108, 57, 49, 51, 39, 83, 36, 51, 0, 18, 70, 127, 52, 243, 138, 4, 64, 65,
-			37, 89, 37, 57, 39, 50, 36, 51, 0, 21, 72, 122, 44, 82, 29, 242, 34, 71, 16, 55, 39, 81, 88, 108, 65, 71, 39, 51, 81, 0,
-			10, 67, 81, 245, 0, 91, 36, 65, 91, 0, 18, 70, 77, 188, 207, 126, 20, 64, 89, 36, 83, 37, 72, 65, 39, 107, 51, 0, 14, 69,
-			75, 52, 71, 193, 48, 88, 37, 51, 108, 49, 89, 0, 12, 67, 72, 140, 207, 88, 39, 71, 36, 57, 72, 0, 18, 70, 70, 33, 224, 126,
-			20, 64, 51, 35, 84, 108, 50, 65, 36, 107, 51, 0, 19, 70, 61, 241, 211, 182, 20, 64, 72, 35, 65, 108, 89, 36, 48, 36, 107, 51,
-			0, 14, 69, 34, 36, 71, 193, 48, 71, 39, 51, 108, 49, 89, 0, 23, 72, 29, 180, 199, 71, 20, 211, 42, 16, 35, 83, 89, 108, 51,
-			81, 39, 89, 35, 89, 47, 36, 0, 23, 72, 28, 129, 217, 32, 241, 222, 122, 16, 35, 71, 108, 19, 35, 71, 72, 36, 55, 55, 108, 107,
-			0, 18, 70, 9, 21, 51, 62, 37, 19, 108, 51, 91, 37, 72, 40, 91, 36, 89, 0, 0, 12, 67, 192, 180, 74, 49, 36, 89, 51, 35,
-			47, 0, 14, 69, 184, 123, 94, 206, 0, 76, 108, 48, 55, 37, 50, 0, 14, 68, 182, 248, 161, 80, 48, 35, 90, 40, 107, 36, 91, 0,
-			11, 67, 136, 120, 10, 84, 108, 50, 36, 47, 0, 14, 68, 131, 8, 161, 80, 50, 36, 49, 40, 107, 36, 91, 0, 14, 68, 124, 130, 160,
-			204, 65, 39, 71, 47, 35, 50, 37, 0, 15, 68, 109, 55, 30, 204, 83, 36, 89, 104, 17, 36, 55, 37, 0, 12, 67, 81, 28, 10, 91,
-			36, 51, 49, 35, 47, 0, 10, 67, 76, 124, 202, 89, 108, 57, 47, 0, 19, 70, 73, 225, 224, 62, 8, 128, 88, 36, 55, 108, 50, 72,
-			36, 50, 39, 12, 0, 10, 67, 68, 124, 202, 51, 108, 57, 47, 0, 14, 69, 62, 36, 202, 30, 0, 72, 40, 89, 47, 108, 50, 0, 14,
-			68, 62, 24, 34, 204, 72, 36, 107, 50, 35, 84, 37, 0, 14, 68, 61, 24, 148, 204, 72, 36, 51, 35, 84, 91, 37, 0, 14, 69, 60,
-			116, 202, 30, 0, 72, 108, 89, 47, 108, 50, 0, 14, 68, 56, 119, 224, 204, 101, 108, 65, 36, 50, 36, 37, 0, 15, 69, 43, 52, 162,
-			33, 32, 47, 37, 88, 39, 71, 39, 88, 0, 14, 68, 33, 225, 240, 80, 71, 35, 55, 108, 49, 36, 91, 0, 14, 69, 32, 119, 176, 30,
-			0, 71, 108, 55, 49, 108, 50, 0, 14, 68, 10, 24, 12, 80, 108, 107, 35, 50, 75, 36, 91, 0, 19, 2, 217, 176, 35, 55, 36, 83,
-			36, 65, 35, 104, 17, 89, 40, 51, 36, 12, 0, 0, 15, 69, 124, 114, 135, 61, 16, 65, 108, 47, 108, 72, 39, 51, 0, 18, 70, 76,
-			120, 10, 70, 39, 209, 89, 108, 50, 47, 51, 39, 65, 36, 51, 0, 15, 69, 29, 19, 212, 205, 16, 35, 51, 72, 35, 91, 37, 51, 0,
-			0, 17, 69, 197, 52, 202, 131, 48, 81, 39, 89, 35, 89, 47, 35, 50, 37, 0, 21, 70, 186, 3, 205, 121, 200, 179, 76, 35, 50, 72,
-			107, 35, 55, 104, 17, 35, 84, 37, 0, 13, 67, 186, 3, 50, 76, 36, 50, 75, 36, 57, 36, 0, 13, 67, 129, 51, 178, 50, 39, 89,
-			101, 36, 57, 36, 0, 13, 68, 126, 39, 224, 40, 65, 39, 65, 36, 50, 47, 0, 13, 68, 79, 60, 30, 40, 89, 37, 49, 55, 36, 47,
-			0, 14, 68, 79, 55, 209, 104, 89, 37, 65, 39, 51, 104, 17, 0, 12, 67, 75, 56, 8, 88, 36, 57, 50, 35, 71, 0, 19, 70, 73,
-			150, 209, 30, 7, 162, 88, 35, 19, 83, 36, 51, 108, 50, 55, 40, 0, 12, 67, 73, 24, 8, 88, 35, 51, 50, 35, 71, 0, 14, 68,
-			71, 1, 240, 40, 51, 36, 49, 108, 49, 35, 47, 0, 14, 67, 57, 23, 50, 101, 36, 51, 104, 17, 36, 57, 36, 0, 17, 70, 42, 43,
-			98, 122, 43, 243, 47, 39, 48, 39, 55, 39, 90, 37, 0, 16, 69, 32, 245, 48, 123, 48, 71, 35, 72, 91, 36, 49, 55, 37, 0, 14,
-			68, 10, 8, 156, 40, 108, 50, 84, 35, 104, 17, 47, 0, 0, 10, 67, 193, 234, 192, 49, 39, 55, 55, 0, 12, 67, 130, 21, 79, 50,
-			39, 107, 89, 35, 72, 0, 14, 68, 124, 241, 219, 100, 65, 39, 72, 108, 83, 36, 19, 0, 12, 67, 70, 40, 15, 51, 35, 84, 35, 50,
-			72, 0, 19, 70, 52, 193, 223, 43, 20, 64, 107, 36, 75, 108, 65, 35, 47, 81, 35, 51, 0, 14, 68, 29, 76, 32, 192, 36, 91, 49,
-			35, 50, 35, 49, 0, 17, 70, 10, 44, 224, 206, 40, 0, 108, 84, 37, 50, 37, 57, 39, 50, 0, 0, 19, 71, 135, 51, 209, 137, 232,
-			175, 204, 107, 37, 72, 51, 39, 55, 39, 90, 37, 0, 17, 70, 133, 248, 155, 138, 12, 192, 107, 39, 65, 39, 83, 39, 50, 37, 0, 17,
-			70, 130, 37, 51, 62, 12, 192, 50, 40, 91, 37, 72, 35, 50, 37, 0, 18, 70, 125, 225, 220, 28, 172, 192, 65, 39, 55, 108, 104, 17,
-			108, 47, 37, 0, 16, 68, 124, 196, 115, 200, 65, 39, 75, 51, 37, 57, 36, 57, 36, 0, 12, 67, 121, 10, 202, 55, 36, 88, 88, 35,
-			47, 0, 11, 67, 111, 8, 0, 83, 36, 49, 35, 50, 0, 13, 68, 109, 225, 224, 188, 83, 36, 55, 108, 50, 90, 0, 11, 67, 81, 248,
-			0, 91, 35, 65, 35, 50, 0, 18, 70, 60, 120, 19, 42, 12, 192, 72, 108, 50, 36, 89, 47, 35, 50, 37, 0, 13, 67, 53, 28, 10,
-			107, 35, 51, 36, 49, 35, 47, 0, 13, 67, 33, 28, 10, 71, 35, 51, 36, 49, 35, 47, 0, 16, 69, 32, 124, 80, 80, 160, 71, 108,
-			81, 39, 88, 35, 91, 47, 0, 0, 23, 72, 186, 17, 209, 79, 55, 160, 61, 16, 76, 108, 107, 108, 51, 89, 37, 55, 35, 50, 72, 51,
-			0, 11, 67, 184, 114, 48, 76, 108, 71, 39, 49, 0, 14, 68, 182, 247, 209, 60, 48, 35, 90, 65, 39, 51, 72, 0, 20, 70, 124, 211,
-			226, 62, 12, 81, 65, 35, 107, 72, 40, 72, 50, 36, 81, 35, 51, 0, 13, 68, 83, 1, 224, 60, 91, 36, 49, 108, 50, 72, 0, 13,
-			68, 69, 49, 224, 60, 51, 36, 89, 108, 50, 72, 0, 29, 74, 68, 115, 243, 136, 124, 10, 206, 44, 202, 132, 51, 108, 72, 37, 57, 39,
-			19, 35, 49, 47, 37, 84, 37, 47, 36, 12, 0, 12, 67, 61, 242, 48, 72, 39, 65, 71, 35, 49, 0, 13, 68, 43, 1, 224, 60, 47,
-			36, 49, 108, 50, 72, 0, 13, 68, 42, 209, 224, 60, 47, 35, 48, 108, 50, 72, 0, 12, 67, 41, 242, 48, 47, 39, 65, 71, 35, 49,
-			0, 18, 70, 29, 59, 115, 123, 50, 145, 36, 89, 48, 37, 55, 37, 47, 36, 51, 0, 19, 70, 29, 50, 153, 124, 124, 81, 36, 89, 47,
-			36, 65, 108, 51, 81, 35, 51, 0, 13, 68, 29, 19, 224, 196, 39, 51, 72, 35, 50, 81, 0, 13, 68, 8, 131, 224, 196, 108, 71, 72,
-			35, 50, 81, 0, 0, 22, 72, 206, 40, 51, 137, 20, 243, 43, 48, 57, 40, 50, 37, 84, 36, 51, 89, 37, 47, 37, 0, 15, 68, 134,
-			44, 235, 40, 107, 39, 84, 37, 57, 57, 35, 47, 0, 14, 68, 131, 49, 200, 40, 50, 37, 57, 108, 71, 35, 47, 0, 14, 69, 108, 119,
-			135, 130, 240, 83, 108, 55, 108, 50, 90, 0, 19, 70, 33, 50, 177, 30, 2, 128, 71, 35, 89, 47, 36, 81, 108, 50, 35, 47, 0, 19,
-			70, 32, 120, 48, 41, 40, 51, 71, 108, 50, 49, 36, 47, 88, 35, 50, 37, 0, 22, 71, 29, 236, 10, 70, 43, 95, 180, 36, 55, 36,
-			49, 47, 36, 51, 39, 48, 39, 65, 48, 0, 11, 67, 9, 24, 12, 108, 51, 36, 50, 75, 0, 0, 15, 69, 198, 33, 209, 204, 240, 81,
-			39, 84, 108, 51, 37, 72, 0, 16, 69, 181, 17, 240, 128, 240, 48, 35, 51, 108, 49, 35, 50, 72, 0, 16, 69, 127, 53, 34, 128, 240,
-			65, 37, 91, 35, 84, 35, 50, 72, 0, 16, 69, 127, 53, 31, 68, 240, 65, 37, 91, 36, 65, 39, 51, 72, 0, 10, 67, 78, 32, 64,
-			89, 40, 19, 36, 0, 10, 67, 70, 44, 199, 51, 39, 57, 108, 0, 13, 67, 69, 194, 7, 51, 39, 104, 17, 35, 71, 108, 0, 17, 69,
-			33, 23, 8, 128, 240, 71, 35, 51, 104, 17, 71, 35, 50, 72, 0, 16, 69, 29, 50, 136, 71, 0, 36, 89, 47, 35, 71, 51, 35, 49,
-			0, 14, 2, 217, 185, 6, 47, 36, 12, 10, 39, 51, 72, 40, 0, 0, 16, 69, 133, 244, 159, 30, 0, 107, 35, 65, 88, 35, 65, 108,
-			50, 0, 17, 69, 85, 180, 115, 30, 0, 89, 35, 83, 35, 51, 37, 57, 108, 50, 0, 15, 69, 72, 115, 241, 30, 0, 88, 108, 72, 36,
-			81, 108, 50, 0, 23, 71, 56, 132, 109, 68, 124, 32, 204, 101, 35, 71, 35, 51, 48, 35, 51, 108, 49, 35, 50, 37, 0, 15, 68, 28,
-			248, 179, 200, 35, 72, 84, 37, 57, 36, 57, 36, 0, 0, 14, 68, 181, 21, 51, 28, 48, 36, 51, 91, 37, 57, 108, 0, 13, 68, 48,
-			114, 12, 28, 75, 108, 71, 36, 75, 108, 0, 0, 12, 67, 137, 17, 243, 84, 35, 51, 108, 57, 36, 0, 12, 67, 133, 17, 243, 107, 35,
-			51, 51, 108, 57, 0, 11, 67, 107, 50, 0, 104, 17, 36, 57, 71, 0, 10, 67, 85, 226, 0, 89, 39, 55, 71, 0, 10, 67, 29, 60,
-			34, 39, 89, 49, 40, 0, 20, 2, 218, 190, 6, 107, 36, 12, 76, 6, 36, 91, 65, 37, 10, 39, 51, 72, 40, 0, 0, 20, 69, 126,
-			39, 43, 40, 112, 65, 39, 84, 35, 104, 17, 104, 17, 35, 47, 35, 50, 0, 12, 67, 103, 56, 7, 19, 36, 57, 50, 35, 50, 0, 11,
-			67, 77, 24, 7, 89, 39, 51, 50, 108, 0, 11, 67, 73, 24, 7, 88, 39, 51, 50, 108, 0, 12, 67, 67, 55, 135, 88, 36, 57, 55,
-			35, 50, 0, 11, 67, 61, 24, 7, 72, 39, 51, 50, 108, 0, 18, 70, 58, 33, 225, 81, 248, 15, 101, 108, 107, 36, 91, 65, 35, 50,
-			72, 0, 12, 67, 48, 241, 229, 75, 36, 72, 72, 35, 50, 0, 11, 67, 34, 18, 135, 71, 36, 107, 47, 108, 0, 11, 67, 33, 24, 7,
-			71, 39, 51, 50, 108, 0, 11, 67, 32, 229, 7, 71, 35, 101, 91, 108, 0, 0, 0, 13, 68, 194, 35, 202, 28, 49, 40, 72, 36, 47,
-			108, 0, 11, 67, 192, 131, 192, 49, 35, 71, 36, 72, 0, 14, 68, 192, 119, 222, 28, 49, 108, 65, 36, 55, 35, 50, 0, 11, 67, 128,
-			131, 192, 50, 35, 71, 39, 72, 0, 14, 68, 128, 119, 30, 28, 50, 108, 104, 17, 39, 55, 108, 0, 13, 68, 124, 209, 200, 28, 65, 39,
-			107, 108, 71, 108, 0, 14, 68, 124, 183, 135, 148, 65, 35, 89, 35, 55, 35, 50, 0, 18, 70, 124, 161, 219, 205, 44, 240, 65, 36, 47,
-			108, 83, 37, 88, 37, 49, 0, 12, 68, 78, 36, 96, 28, 89, 39, 51, 50, 108, 0, 16, 68, 61, 204, 220, 28, 72, 35, 104, 17, 37,
-			104, 17, 35, 50, 0, 13, 68, 30, 3, 96, 28, 36, 50, 107, 36, 50, 108, 0, 13, 68, 29, 146, 158, 28, 36, 19, 47, 36, 55, 108,
-			0, 0, 16, 70, 183, 53, 7, 183, 53, 0, 48, 37, 91, 108, 48, 37, 91, 0, 17, 69, 181, 20, 225, 31, 48, 48, 36, 51, 36, 89,
-			107, 108, 57, 36, 0, 14, 69, 134, 39, 135, 194, 32, 107, 39, 55, 108, 49, 40, 0, 11, 67, 107, 54, 0, 104, 17, 36, 57, 88, 0,
-			15, 67, 41, 231, 51, 47, 35, 55, 35, 104, 17, 104, 17, 37, 0, 14, 69, 8, 164, 98, 111, 48, 108, 47, 51, 39, 83, 37, 0, 14,
-			2, 218, 186, 6, 50, 40, 50, 10, 39, 51, 72, 40, 0, 0, 12, 67, 199, 49, 225, 81, 37, 12, 108, 12, 107, 0, 18, 70, 139, 60,
-			10, 137, 28, 199, 84, 37, 49, 47, 39, 51, 37, 57, 108, 0, 19, 69, 125, 119, 217, 128, 112, 65, 39, 47, 65, 35, 19, 19, 36, 50,
-			35, 50, 0, 10, 67, 121, 118, 192, 55, 39, 47, 83, 0, 17, 70, 42, 34, 147, 40, 120, 0, 47, 40, 47, 36, 89, 47, 108, 50, 0,
-			15, 69, 29, 180, 115, 112, 112, 36, 83, 51, 37, 104, 17, 108, 0, 18, 71, 29, 60, 207, 30, 36, 115, 192, 35, 89, 37, 72, 40, 51,
-			37, 49, 0, 16, 69, 29, 22, 199, 112, 112, 36, 51, 83, 108, 104, 17, 35, 50, 0, 11, 67, 11, 17, 225, 108, 12, 81, 108, 107, 0,
-			10, 67, 9, 86, 192, 108, 89, 36, 83, 0, 0, 11, 67, 207, 1, 224, 57, 36, 49, 108, 50, 0, 11, 67, 197, 17, 224, 81, 36, 51,
-			108, 50, 0, 11, 67, 191, 55, 138, 90, 37, 55, 36, 47, 0, 11, 67, 186, 23, 128, 6, 76, 36, 36, 55, 0, 11, 67, 185, 65, 224,
-			76, 36, 91, 108, 50, 0, 15, 69, 181, 225, 202, 206, 0, 48, 36, 55, 108, 47, 37, 50, 0, 14, 69, 135, 55, 138, 138, 0, 107, 37,
-			55, 47, 39, 50, 0, 12, 67, 130, 21, 10, 50, 35, 107, 36, 91, 47, 0, 14, 68, 126, 20, 202, 204, 65, 35, 107, 35, 89, 47, 37,
-			0, 12, 67, 123, 8, 10, 55, 39, 49, 50, 35, 47, 0, 16, 68, 113, 231, 30, 204, 104, 17, 36, 55, 104, 17, 36, 55, 37, 0, 10,
-			67, 110, 40, 10, 83, 39, 50, 47, 0, 11, 67, 109, 65, 224, 83, 36, 91, 108, 50, 0, 13, 67, 105, 49, 224, 104, 17, 35, 89, 89,
-			108, 50, 0, 14, 67, 88, 252, 206, 88, 36, 72, 72, 36, 57, 35, 101, 0, 14, 67, 88, 252, 202, 88, 36, 72, 72, 37, 57, 35, 47,
-			0, 13, 67, 74, 36, 92, 88, 39, 12, 51, 35, 104, 17, 0, 12, 67, 70, 33, 224, 51, 35, 84, 6, 108, 50, 0, 14, 67, 69, 204,
-			202, 51, 35, 104, 17, 37, 57, 35, 47, 0, 14, 68, 69, 50, 160, 204, 51, 39, 89, 47, 35, 50, 37, 0, 11, 67, 69, 49, 224, 51,
-			36, 89, 108, 50, 0, 11, 67, 61, 247, 128, 72, 39, 65, 35, 55, 0, 11, 67, 55, 49, 224, 107, 35, 57, 108, 50, 0, 11, 67, 49,
-			247, 128, 75, 39, 65, 35, 55, 0, 13, 67, 35, 52, 92, 71, 36, 57, 51, 35, 104, 17, 0, 21, 71, 34, 17, 209, 128, 116, 96, 48,
-			71, 35, 107, 108, 51, 50, 108, 51, 36, 50, 75, 0, 11, 67, 29, 247, 128, 39, 65, 65, 39, 55, 0, 10, 67, 9, 247, 128, 108, 65,
-			39, 55, 0, 0, 14, 68, 131, 5, 51, 60, 50, 35, 49, 36, 91, 37, 72, 0, 18, 70, 128, 172, 204, 40, 121, 64, 50, 35, 47, 37,
-			75, 35, 47, 35, 50, 0, 11, 67, 126, 243, 192, 65, 39, 12, 90, 72, 0, 12, 67, 126, 39, 25, 65, 39, 104, 17, 36, 19, 0, 12,
-			67, 125, 68, 91, 65, 39, 91, 51, 36, 83, 0, 11, 67, 123, 56, 48, 6, 55, 37, 50, 49, 0, 15, 68, 121, 177, 219, 132, 55, 35,
-			83, 83, 108, 83, 36, 12, 0, 13, 67, 113, 49, 223, 104, 17, 35, 89, 89, 108, 65, 0, 10, 67, 110, 35, 0, 83, 39, 12, 75, 0,
-			12, 67, 109, 228, 219, 83, 35, 55, 89, 35, 83, 0, 11, 67, 76, 163, 192, 89, 36, 47, 35, 72, 0, 12, 68, 70, 34, 7, 132, 51,
-			40, 71, 108, 107, 0, 11, 67, 68, 225, 223, 51, 39, 101, 108, 65, 0, 14, 68, 61, 20, 71, 132, 72, 35, 51, 10, 51, 108, 107, 0,
-			12, 67, 59, 49, 223, 101, 35, 57, 57, 108, 65, 0, 12, 67, 53, 241, 223, 107, 35, 65, 65, 108, 65, 0, 11, 67, 41, 241, 223, 47,
-			35, 65, 108, 65, 0, 12, 68, 31, 4, 71, 132, 36, 49, 51, 108, 107, 0, 10, 67, 29, 241, 223, 36, 65, 108, 65, 0, 0, 13, 68,
-			195, 56, 135, 128, 49, 36, 57, 84, 108, 50, 0, 11, 67, 133, 225, 222, 107, 36, 55, 108, 55, 0, 14, 68, 133, 19, 226, 40, 107, 36,
-			51, 39, 72, 39, 47, 0, 11, 67, 130, 209, 222, 50, 36, 48, 108, 55, 0, 14, 68, 130, 36, 199, 128, 50, 35, 84, 35, 89, 108, 50,
-			0, 14, 67, 129, 193, 222, 50, 35, 104, 17, 104, 17, 108, 55, 0, 11, 67, 124, 177, 222, 65, 36, 89, 108, 55, 0, 13, 68, 121, 242,
-			7, 128, 55, 39, 65, 71, 108, 50, 0, 14, 68, 110, 36, 71, 128, 83, 35, 84, 35, 51, 108, 50, 0, 13, 68, 110, 23, 199, 128, 83,
-			35, 107, 65, 108, 50, 0, 14, 68, 109, 23, 7, 128, 83, 39, 51, 104, 17, 108, 50, 0, 12, 68, 101, 22, 199, 128, 36, 51, 83, 108,
-			50, 0, 13, 68, 100, 248, 135, 128, 19, 39, 72, 84, 108, 50, 0, 11, 67, 93, 225, 222, 47, 36, 55, 108, 55, 0, 11, 67, 81, 225,
-			222, 91, 39, 55, 108, 55, 0, 13, 68, 76, 168, 135, 128, 89, 39, 47, 84, 108, 50, 0, 11, 67, 73, 225, 222, 88, 39, 55, 108, 55,
-			0, 13, 68, 70, 18, 7, 128, 51, 39, 107, 71, 108, 50, 0, 13, 68, 62, 36, 71, 128, 72, 39, 12, 51, 108, 50, 0, 12, 67, 61,
-			225, 222, 72, 35, 55, 55, 108, 55, 0, 15, 68, 59, 52, 71, 128, 101, 35, 57, 57, 36, 51, 108, 50, 0, 15, 68, 57, 236, 7, 128,
-			101, 39, 55, 55, 35, 49, 108, 50, 0, 15, 68, 57, 183, 7, 128, 101, 35, 83, 35, 104, 17, 108, 50, 0, 13, 68, 55, 56, 135, 128,
-			107, 36, 57, 84, 108, 50, 0, 13, 68, 55, 52, 71, 128, 107, 36, 57, 51, 108, 50, 0, 12, 67, 53, 241, 222, 107, 35, 65, 65, 108,
-			55, 0, 13, 68, 51, 52, 71, 128, 75, 36, 57, 51, 108, 50, 0, 13, 68, 42, 2, 7, 128, 47, 39, 50, 71, 108, 50, 0, 16, 68,
-			41, 200, 179, 40, 47, 35, 104, 17, 84, 37, 57, 35, 47, 0, 16, 69, 34, 5, 51, 131, 48, 71, 36, 50, 36, 91, 37, 50, 37, 0,
-			13, 68, 33, 228, 199, 128, 71, 35, 55, 89, 108, 50, 0, 13, 68, 32, 212, 71, 128, 71, 39, 107, 51, 108, 50, 0, 11, 67, 32, 209,
-			222, 71, 36, 107, 108, 55, 0, 12, 68, 31, 56, 135, 128, 36, 57, 84, 108, 50, 0, 13, 68, 29, 196, 71, 128, 35, 104, 17, 51, 108,
-			50, 0, 13, 68, 29, 184, 160, 40, 39, 83, 40, 50, 35, 47, 0, 12, 68, 29, 6, 71, 128, 36, 88, 19, 108, 50, 0, 12, 68, 28,
-			212, 199, 128, 36, 107, 89, 108, 50, 0, 13, 68, 11, 4, 224, 40, 108, 49, 89, 36, 50, 47, 0, 14, 68, 10, 211, 243, 40, 108, 48,
-			10, 72, 36, 57, 47, 0, 0, 10, 67, 204, 120, 49, 57, 108, 50, 81, 0, 10, 67, 198, 34, 161, 81, 39, 47, 36, 0, 12, 67, 181,
-			24, 15, 48, 35, 51, 35, 50, 72, 0, 12, 67, 133, 244, 97, 107, 35, 65, 51, 35, 107, 0, 12, 67, 125, 51, 15, 65, 35, 89, 75,
-			36, 72, 0, 17, 68, 124, 161, 211, 108, 65, 39, 47, 35, 19, 35, 89, 89, 36, 83, 0, 12, 67, 122, 40, 15, 55, 35, 84, 35, 50,
-			72, 0, 19, 70, 112, 124, 220, 68, 120, 0, 104, 17, 108, 57, 36, 104, 17, 51, 108, 50, 0, 12, 67, 109, 232, 49, 83, 36, 55, 36,
-			50, 81, 0, 16, 69, 82, 24, 20, 30, 16, 91, 35, 107, 35, 50, 91, 108, 107, 0, 12, 67, 81, 232, 49, 91, 36, 55, 35, 50, 81,
-			0, 12, 67, 74, 20, 97, 88, 39, 107, 51, 36, 12, 0, 11, 67, 57, 20, 161, 101, 35, 51, 88, 36, 0, 11, 67, 40, 114, 15, 47,
-			108, 71, 35, 72, 0, 13, 68, 34, 20, 71, 124, 71, 35, 107, 51, 108, 65, 0, 13, 67, 33, 196, 97, 71, 35, 104, 17, 35, 51, 36,
-			0, 13, 67, 33, 40, 15, 71, 36, 88, 35, 50, 35, 72, 0, 13, 68, 32, 248, 7, 124, 71, 35, 72, 50, 108, 65, 0, 12, 68, 30,
-			40, 71, 124, 39, 12, 107, 108, 65, 0, 19, 70, 30, 3, 226, 129, 44, 199, 35, 50, 72, 39, 50, 36, 88, 37, 57, 108, 0, 12, 68,
-			28, 132, 71, 124, 36, 71, 51, 108, 65, 0, 12, 67, 11, 56, 33, 108, 57, 36, 50, 36, 12, 0, 0, 14, 68, 190, 4, 71, 120, 90,
-			36, 50, 36, 51, 108, 55, 0, 16, 69, 135, 59, 162, 112, 160, 107, 37, 76, 84, 35, 104, 17, 47, 0, 14, 67, 125, 24, 138, 65, 39,
-			51, 39, 84, 84, 35, 47, 0, 14, 68, 124, 183, 7, 120, 65, 36, 89, 104, 17, 108, 55, 0, 13, 67, 109, 49, 220, 83, 39, 89, 89,
-			108, 104, 17, 0, 12, 67, 107, 56, 0, 104, 17, 36, 57, 108, 50, 0, 12, 67, 101, 65, 220, 39, 91, 91, 108, 104, 17, 0, 10, 67,
-			78, 35, 138, 89, 40, 101, 47, 0, 14, 68, 77, 28, 199, 120, 89, 36, 51, 37, 57, 108, 55, 0, 13, 68, 68, 124, 202, 120, 51, 108,
-			57, 47, 36, 55, 0, 13, 68, 41, 242, 199, 120, 47, 36, 65, 89, 108, 55, 0, 13, 68, 34, 12, 71, 120, 71, 35, 50, 81, 108, 55,
-			0, 15, 69, 31, 4, 243, 190, 0, 39, 49, 89, 37, 90, 36, 50, 0, 14, 68, 29, 76, 7, 120, 36, 12, 91, 6, 49, 108, 55, 0,
-			12, 68, 29, 56, 71, 120, 36, 89, 107, 108, 55, 0, 12, 67, 28, 161, 220, 39, 47, 108, 12, 104, 17, 0, 11, 67, 10, 2, 160, 108,
-			50, 47, 36, 50, 0, 18, 70, 8, 228, 89, 125, 28, 192, 108, 101, 35, 51, 36, 39, 65, 51, 37, 0, 0, 15, 69, 197, 17, 225, 29,
-			240, 81, 36, 51, 108, 107, 108, 65, 0, 14, 68, 193, 232, 174, 132, 49, 39, 55, 40, 76, 36, 12, 0, 14, 68, 185, 50, 32, 60, 76,
-			35, 89, 71, 35, 50, 72, 0, 13, 68, 180, 114, 32, 60, 48, 108, 71, 35, 50, 72, 0, 16, 69, 137, 230, 209, 29, 240, 84, 39, 55,
-			83, 36, 51, 108, 65, 0, 14, 68, 127, 49, 200, 60, 65, 37, 57, 108, 71, 35, 72, 0, 16, 68, 125, 194, 17, 132, 65, 35, 104, 17,
-			71, 35, 51, 36, 12, 0, 11, 67, 110, 39, 0, 83, 39, 12, 104, 17, 0, 14, 68, 109, 24, 96, 196, 83, 35, 51, 107, 35, 50, 81,
-			0, 11, 67, 84, 247, 0, 89, 36, 72, 104, 17, 0, 14, 68, 77, 180, 215, 132, 89, 35, 83, 89, 35, 47, 36, 0, 16, 70, 70, 44,
-			199, 131, 51, 192, 51, 40, 57, 108, 50, 37, 72, 0, 17, 70, 70, 3, 7, 131, 51, 192, 51, 35, 50, 75, 108, 50, 37, 72, 0, 12,
-			67, 58, 180, 95, 101, 39, 51, 51, 35, 65, 0, 14, 68, 57, 19, 145, 132, 101, 36, 51, 101, 36, 51, 36, 0, 13, 68, 56, 120, 160,
-			60, 101, 108, 84, 35, 50, 72, 0, 17, 70, 50, 2, 7, 131, 51, 192, 75, 39, 50, 71, 108, 50, 37, 72, 0, 15, 68, 49, 236, 220,
-			132, 75, 36, 55, 37, 104, 17, 36, 12, 0, 11, 67, 33, 232, 176, 71, 39, 55, 40, 49, 0, 15, 69, 29, 226, 146, 29, 240, 36, 55,
-			47, 36, 88, 108, 65, 0, 10, 67, 29, 97, 219, 36, 88, 108, 83, 0, 13, 68, 29, 54, 224, 60, 36, 89, 83, 35, 50, 72, 0, 11,
-			67, 9, 36, 95, 108, 88, 35, 51, 65, 0, 7, 65, 92, 6, 47, 108, 0, 0, 12, 67, 181, 76, 30, 48, 36, 91, 49, 36, 55, 0,
-			17, 69, 181, 18, 154, 29, 224, 48, 39, 51, 47, 36, 104, 17, 108, 55, 0, 13, 68, 127, 60, 17, 128, 65, 37, 49, 51, 39, 50, 0,
-			14, 69, 127, 50, 145, 29, 224, 65, 37, 47, 51, 108, 55, 0, 13, 67, 125, 76, 30, 6, 65, 39, 91, 49, 36, 55, 0, 12, 67, 124,
-			133, 222, 65, 39, 71, 47, 36, 55, 0, 15, 69, 120, 124, 210, 29, 224, 55, 108, 57, 35, 88, 108, 55, 0, 13, 68, 120, 118, 210, 128,
-			55, 108, 83, 88, 35, 50, 0, 15, 68, 110, 36, 115, 40, 83, 39, 12, 51, 37, 57, 35, 47, 0, 12, 67, 109, 24, 12, 83, 36, 51,
-			36, 50, 75, 0, 14, 68, 81, 234, 199, 112, 91, 35, 55, 55, 108, 104, 17, 0, 14, 68, 77, 20, 206, 40, 89, 35, 51, 89, 35, 101,
-			47, 0, 10, 67, 62, 38, 94, 72, 40, 36, 55, 0, 21, 72, 58, 36, 79, 136, 232, 145, 31, 0, 101, 39, 51, 72, 39, 101, 39, 51,
-			108, 49, 0, 14, 68, 40, 231, 199, 112, 47, 39, 101, 65, 108, 104, 17, 0, 12, 67, 35, 4, 94, 71, 36, 49, 51, 36, 55, 0, 13,
-			69, 31, 51, 225, 29, 224, 37, 72, 36, 108, 55, 0, 13, 68, 29, 229, 71, 112, 36, 55, 89, 108, 104, 17, 0, 13, 68, 29, 151, 199,
-			112, 35, 19, 65, 108, 104, 17, 0, 13, 68, 29, 119, 135, 112, 36, 47, 55, 108, 104, 17, 0, 15, 68, 28, 166, 199, 112, 36, 47, 47,
-			36, 83, 108, 104, 17, 0, 12, 68, 9, 248, 142, 40, 108, 65, 40, 101, 47, 0, 0, 13, 68, 193, 66, 7, 108, 49, 36, 91, 71, 108,
-			83, 0, 8, 66, 193, 48, 49, 35, 89, 0, 16, 69, 192, 241, 223, 128, 240, 49, 39, 72, 108, 65, 35, 50, 72, 0, 14, 69, 190, 44,
-			34, 128, 240, 90, 39, 49, 39, 50, 72, 0, 12, 67, 181, 24, 19, 48, 36, 51, 35, 50, 89, 0, 17, 70, 136, 119, 147, 120, 119, 192,
-			84, 35, 89, 89, 35, 55, 108, 65, 0, 17, 70, 135, 59, 176, 60, 119, 192, 107, 37, 76, 49, 39, 72, 108, 65, 0, 17, 69, 133, 241,
-			225, 131, 16, 107, 35, 65, 108, 12, 107, 35, 50, 81, 0, 14, 69, 131, 50, 145, 204, 240, 50, 37, 47, 51, 37, 72, 0, 16, 69, 129,
-			241, 225, 131, 16, 50, 35, 65, 108, 107, 35, 50, 81, 0, 14, 68, 127, 50, 17, 124, 65, 37, 71, 35, 51, 35, 65, 0, 11, 67, 126,
-			40, 19, 65, 40, 50, 36, 89, 0, 11, 67, 124, 172, 211, 65, 36, 47, 37, 89, 0, 17, 69, 105, 24, 158, 128, 240, 104, 17, 39, 51,
-			39, 55, 39, 50, 72, 0, 12, 67, 104, 124, 215, 104, 17, 108, 57, 36, 47, 0, 16, 69, 80, 129, 225, 131, 16, 91, 35, 71, 108, 107,
-			35, 50, 81, 0, 10, 67, 80, 120, 19, 91, 108, 50, 89, 0, 16, 69, 62, 241, 225, 131, 16, 72, 39, 90, 108, 107, 35, 50, 81, 0,
-			16, 69, 57, 20, 161, 70, 16, 101, 35, 51, 88, 35, 107, 51, 36, 0, 16, 69, 48, 118, 212, 131, 16, 75, 108, 83, 36, 91, 35, 50,
-			81, 0, 16, 69, 42, 3, 202, 128, 240, 47, 39, 50, 72, 47, 39, 50, 72, 0, 17, 70, 34, 39, 148, 139, 60, 0, 71, 39, 55, 91,
-			36, 84, 37, 49, 0, 14, 69, 31, 52, 222, 128, 240, 37, 89, 55, 35, 50, 72, 0, 15, 69, 29, 228, 199, 102, 16, 35, 89, 89, 108,
-			19, 36, 12, 0, 12, 68, 29, 148, 71, 108, 36, 19, 51, 108, 83, 0, 12, 68, 29, 84, 71, 108, 36, 89, 51, 108, 83, 0, 17, 70,
-			29, 50, 155, 132, 119, 192, 36, 89, 47, 36, 83, 107, 108, 65, 0, 9, 66, 193, 48, 49, 35, 89, 0, 76, 15, 68, 124, 209, 240, 124,
-			65, 39, 107, 108, 49, 36, 65, 0, 48, 15, 68, 124, 209, 240, 124, 65, 35, 107, 108, 49, 36, 65, 0, 46, 0, 16, 69, 197, 242, 17,
-			138, 0, 81, 39, 65, 71, 36, 51, 39, 50, 0, 18, 70, 194, 2, 145, 182, 33, 224, 49, 39, 50, 47, 51, 48, 40, 108, 50, 0, 17,
-			70, 193, 28, 211, 40, 119, 128, 49, 36, 51, 37, 89, 47, 108, 55, 0, 11, 67, 182, 40, 18, 48, 40, 50, 36, 88, 0, 10, 67, 181,
-			40, 128, 48, 36, 88, 39, 0, 11, 67, 138, 12, 210, 84, 36, 50, 37, 88, 0, 17, 70, 130, 36, 72, 29, 17, 224, 50, 40, 51, 71,
-			108, 51, 108, 50, 0, 15, 68, 125, 55, 147, 120, 65, 39, 89, 35, 55, 89, 35, 55, 0, 20, 70, 124, 115, 209, 205, 241, 224, 65, 108,
-			72, 35, 51, 37, 57, 36, 65, 108, 50, 0, 18, 70, 120, 124, 45, 80, 161, 224, 55, 108, 49, 48, 39, 91, 47, 108, 50, 0, 18, 69,
-			113, 23, 211, 29, 192, 104, 17, 39, 51, 39, 65, 89, 108, 104, 17, 0, 14, 68, 108, 168, 147, 120, 83, 39, 47, 39, 89, 36, 55, 0,
-			10, 67, 80, 120, 18, 91, 108, 50, 88, 0, 20, 70, 77, 27, 81, 76, 161, 224, 89, 35, 51, 48, 35, 51, 35, 89, 47, 108, 50, 0,
-			18, 70, 77, 19, 223, 72, 115, 0, 89, 35, 51, 72, 65, 36, 88, 108, 75, 0, 19, 70, 74, 3, 199, 129, 65, 224, 88, 36, 50, 72,
-			108, 50, 36, 91, 108, 50, 0, 19, 70, 56, 117, 209, 129, 65, 224, 101, 108, 47, 36, 51, 50, 36, 91, 108, 50, 0, 10, 67, 49, 40,
-			128, 75, 39, 88, 84, 0, 19, 70, 49, 17, 203, 112, 119, 128, 75, 35, 51, 51, 36, 89, 104, 17, 108, 55, 0, 19, 70, 42, 8, 15,
-			139, 49, 224, 47, 35, 50, 35, 50, 72, 40, 57, 108, 50, 0, 16, 69, 34, 17, 243, 204, 160, 71, 35, 107, 108, 37, 57, 35, 47, 0,
-			18, 70, 33, 60, 10, 32, 119, 128, 71, 35, 89, 49, 36, 47, 71, 108, 55, 0, 20, 70, 33, 24, 146, 69, 49, 224, 71, 36, 51, 40,
-			88, 10, 51, 36, 89, 108, 50, 0, 18, 70, 30, 2, 177, 68, 119, 128, 35, 50, 6, 47, 36, 81, 51, 108, 55, 0, 16, 69, 29, 226,
-			149, 29, 192, 36, 55, 47, 36, 89, 108, 104, 17, 0, 18, 70, 29, 20, 200, 29, 17, 224, 35, 51, 35, 89, 71, 108, 51, 108, 50, 0,
-			18, 70, 28, 132, 98, 193, 241, 224, 35, 71, 51, 40, 49, 35, 65, 108, 50, 0, 15, 68, 127, 1, 202, 32, 65, 39, 49, 108, 47, 36,
-			71, 0, 48, 15, 68, 127, 1, 202, 32, 65, 35, 49, 108, 47, 36, 71, 0, 46, 0, 18, 70, 206, 36, 173, 122, 12, 64, 57, 40, 88,
-			48, 35, 55, 35, 50, 81, 0, 17, 70, 194, 3, 199, 129, 56, 64, 49, 39, 50, 72, 108, 50, 89, 36, 0, 12, 67, 181, 50, 145, 48,
-			39, 89, 47, 36, 51, 0, 18, 70, 134, 39, 162, 197, 17, 223, 107, 39, 55, 39, 81, 36, 51, 108, 65, 0, 19, 70, 129, 241, 194, 134,
-			12, 64, 50, 35, 65, 108, 10, 108, 107, 35, 50, 81, 0, 16, 67, 125, 86, 145, 65, 39, 89, 35, 104, 17, 104, 17, 35, 51, 0, 12,
-			67, 125, 50, 145, 65, 35, 89, 47, 36, 51, 0, 16, 67, 124, 215, 17, 65, 39, 107, 35, 104, 17, 104, 17, 35, 51, 0, 20, 70, 113,
-			24, 10, 206, 8, 64, 104, 17, 35, 51, 35, 50, 47, 37, 50, 36, 12, 0, 17, 70, 100, 114, 17, 32, 120, 48, 108, 71, 36, 51, 71,
-			108, 50, 49, 0, 18, 70, 57, 27, 147, 138, 8, 64, 101, 35, 51, 76, 39, 89, 40, 50, 36, 0, 13, 68, 42, 36, 243, 92, 47, 39,
-			12, 89, 37, 47, 0, 14, 69, 42, 36, 115, 77, 240, 47, 40, 51, 37, 89, 65, 0, 17, 70, 32, 115, 194, 134, 12, 64, 71, 108, 72,
-			108, 107, 35, 50, 81, 0, 10, 67, 29, 252, 209, 35, 65, 37, 51, 0, 14, 68, 10, 3, 30, 76, 108, 50, 75, 36, 55, 36, 89, 0,
-			19, 70, 9, 4, 83, 134, 3, 192, 108, 88, 35, 51, 89, 35, 107, 35, 50, 72, 0, 9, 66, 197, 16, 81, 35, 51, 0, 76, 0, 13,
-			68, 199, 51, 224, 72, 81, 37, 72, 36, 50, 88, 0, 8, 66, 193, 64, 49, 36, 91, 0, 15, 68, 126, 12, 96, 72, 65, 35, 50, 81,
-			35, 50, 36, 88, 0, 12, 67, 124, 115, 144, 65, 35, 19, 101, 35, 88, 0, 11, 67, 113, 18, 0, 104, 17, 39, 51, 71, 0, 11, 67,
-			69, 252, 226, 51, 39, 65, 36, 39, 0, 13, 68, 63, 60, 32, 72, 72, 37, 49, 36, 50, 88, 0, 22, 71, 50, 33, 225, 70, 5, 7,
-			128, 75, 35, 84, 108, 107, 36, 51, 50, 36, 91, 108, 50, 0, 12, 67, 50, 2, 20, 75, 39, 50, 71, 36, 91, 0, 20, 71, 34, 17,
-			209, 29, 181, 7, 128, 71, 35, 107, 108, 51, 35, 83, 91, 108, 50, 0, 22, 71, 33, 50, 177, 30, 7, 199, 128, 71, 35, 89, 47, 36,
-			81, 108, 50, 36, 65, 108, 50, 0, 11, 67, 33, 20, 162, 71, 39, 51, 88, 40, 0, 21, 71, 30, 2, 161, 31, 53, 7, 128, 36, 50,
-			47, 36, 107, 108, 57, 36, 91, 108, 50, 0, 21, 71, 29, 194, 149, 28, 243, 199, 128, 36, 104, 17, 47, 36, 89, 108, 72, 72, 108, 50,
-			0, 12, 67, 9, 20, 162, 6, 108, 51, 36, 88, 40, 0, 0, 13, 68, 198, 37, 8, 68, 81, 40, 91, 71, 39, 51, 0, 19, 70, 198,
-			3, 7, 128, 248, 15, 81, 39, 50, 75, 108, 50, 72, 35, 50, 72, 0, 11, 67, 197, 228, 64, 81, 39, 55, 36, 51, 0, 12, 67, 194,
-			2, 147, 49, 39, 50, 47, 36, 89, 0, 11, 67, 193, 228, 64, 49, 39, 55, 39, 51, 0, 9, 67, 130, 36, 64, 50, 40, 51, 0, 16,
-			70, 128, 116, 83, 205, 55, 192, 50, 108, 51, 89, 37, 89, 65, 0, 21, 72, 127, 56, 51, 34, 36, 209, 30, 0, 65, 37, 50, 37, 71,
-			40, 89, 51, 108, 50, 0, 15, 68, 126, 2, 152, 68, 65, 39, 50, 47, 35, 88, 36, 51, 0, 16, 68, 125, 50, 156, 68, 65, 39, 89,
-			47, 35, 104, 17, 35, 51, 0, 16, 70, 124, 124, 226, 205, 55, 192, 65, 108, 10, 39, 37, 89, 65, 0, 17, 70, 122, 12, 224, 205, 55,
-			192, 55, 36, 50, 37, 50, 37, 89, 65, 0, 15, 69, 120, 124, 211, 129, 48, 55, 108, 57, 89, 36, 50, 89, 0, 15, 68, 80, 132, 202,
-			68, 91, 35, 71, 36, 89, 47, 35, 51, 0, 13, 68, 79, 56, 12, 68, 89, 37, 50, 75, 36, 51, 0, 20, 70, 72, 132, 98, 73, 24,
-			49, 88, 36, 71, 51, 39, 88, 36, 51, 35, 50, 81, 0, 17, 69, 57, 27, 84, 43, 0, 101, 35, 51, 48, 39, 91, 47, 35, 49, 0,
-			12, 67, 32, 243, 151, 71, 35, 72, 101, 35, 47, 0, 14, 68, 32, 120, 96, 68, 71, 108, 107, 39, 50, 35, 51, 0, 18, 71, 31, 52,
-			162, 42, 40, 51, 192, 37, 88, 39, 47, 39, 50, 37, 49, 0, 13, 68, 31, 2, 136, 68, 39, 49, 47, 39, 71, 51, 0, 14, 68, 29,
-			60, 32, 68, 36, 89, 49, 35, 50, 36, 51, 0, 14, 69, 29, 44, 209, 205, 48, 39, 88, 37, 51, 37, 89, 0, 17, 70, 28, 248, 160,
-			205, 55, 192, 35, 72, 84, 36, 50, 37, 89, 65, 0, 16, 70, 10, 12, 223, 205, 55, 192, 108, 50, 37, 65, 37, 89, 65, 0, 0, 20,
-			71, 206, 40, 51, 137, 20, 199, 120, 57, 40, 50, 37, 84, 36, 51, 89, 108, 55, 0, 10, 67, 136, 168, 128, 84, 36, 47, 39, 0, 9,
-			67, 110, 40, 0, 83, 39, 50, 0, 13, 68, 92, 196, 115, 80, 47, 35, 75, 51, 37, 91, 0, 13, 68, 61, 228, 115, 80, 72, 36, 55,
-			51, 37, 91, 0, 14, 68, 41, 17, 226, 80, 47, 35, 51, 108, 84, 39, 91, 0, 14, 68, 33, 49, 226, 80, 71, 36, 89, 108, 84, 39,
-			91, 0, 20, 70, 32, 119, 135, 41, 177, 220, 71, 36, 55, 36, 47, 47, 36, 83, 108, 104, 17, 0, 16, 70, 31, 52, 71, 128, 243, 138,
-			37, 51, 108, 50, 72, 39, 101, 0, 0, 18, 70, 134, 39, 162, 197, 17, 219, 107, 39, 55, 39, 81, 36, 51, 108, 83, 0, 13, 68, 128,
-			228, 115, 76, 50, 35, 101, 51, 37, 89, 0, 19, 70, 124, 161, 200, 123, 52, 223, 65, 36, 47, 108, 71, 39, 55, 37, 89, 65, 0, 18,
-			70, 123, 50, 162, 197, 17, 219, 55, 37, 47, 39, 81, 36, 51, 108, 83, 0, 15, 69, 120, 119, 243, 129, 16, 55, 108, 65, 37, 50, 39,
-			51, 0, 13, 67, 113, 23, 0, 104, 17, 39, 51, 39, 104, 17, 0, 11, 67, 83, 8, 145, 91, 35, 49, 40, 51, 0, 18, 70, 79, 2,
-			135, 71, 52, 223, 89, 36, 49, 47, 108, 51, 37, 89, 65, 0, 15, 69, 77, 19, 211, 205, 16, 89, 35, 51, 72, 89, 37, 51, 0, 12,
-			67, 70, 3, 17, 51, 36, 50, 75, 36, 51, 0, 18, 70, 61, 59, 98, 43, 52, 223, 72, 36, 89, 48, 39, 47, 37, 89, 65, 0, 14,
-			69, 56, 124, 20, 205, 16, 101, 108, 49, 91, 37, 51, 0, 24, 72, 52, 194, 135, 120, 116, 222, 29, 240, 107, 39, 75, 35, 47, 39, 55,
-			55, 36, 89, 55, 108, 65, 0, 14, 67, 42, 24, 145, 47, 35, 107, 35, 84, 84, 39, 51, 0, 14, 67, 40, 115, 145, 47, 35, 19, 35,
-			101, 101, 39, 51, 0, 16, 70, 31, 55, 199, 191, 52, 223, 37, 65, 108, 90, 37, 89, 65, 0, 17, 70, 31, 8, 158, 138, 252, 240, 36,
-			49, 39, 55, 39, 90, 37, 49, 0, 12, 68, 28, 244, 115, 76, 36, 72, 51, 37, 89, 0, 0, 11, 67, 185, 228, 243, 76, 36, 55, 89,
-			37, 0, 11, 67, 125, 52, 115, 65, 39, 89, 51, 37, 0, 14, 67, 124, 163, 144, 65, 39, 47, 47, 35, 101, 36, 88, 0, 17, 69, 124,
-			115, 209, 205, 64, 65, 108, 72, 35, 51, 37, 57, 35, 91, 0, 10, 67, 122, 34, 162, 55, 39, 47, 39, 0, 16, 70, 78, 36, 109, 71,
-			52, 128, 89, 40, 51, 48, 51, 37, 88, 0, 12, 67, 53, 68, 115, 107, 35, 91, 35, 51, 37, 0, 12, 67, 32, 131, 148, 71, 36, 71,
-			35, 101, 91, 0, 0, 18, 70, 193, 252, 211, 206, 40, 0, 49, 39, 65, 37, 89, 37, 57, 39, 50, 0, 20, 71, 193, 225, 211, 205, 60,
-			211, 124, 49, 36, 55, 108, 89, 37, 89, 37, 89, 65, 0, 17, 70, 192, 120, 10, 206, 4, 64, 49, 108, 50, 47, 37, 50, 36, 51, 0,
-			13, 68, 182, 220, 202, 68, 48, 39, 48, 37, 47, 51, 0, 20, 71, 181, 232, 145, 29, 236, 211, 124, 48, 39, 55, 39, 51, 108, 55, 37,
-			89, 65, 0, 17, 70, 181, 60, 7, 124, 120, 0, 48, 35, 89, 49, 108, 65, 108, 50, 0, 17, 70, 180, 116, 94, 124, 120, 0, 48, 108,
-			51, 55, 36, 65, 108, 50, 0, 19, 71, 128, 116, 83, 205, 60, 211, 124, 50, 108, 51, 89, 37, 89, 37, 89, 65, 0, 13, 68, 122, 36,
-			202, 68, 55, 40, 89, 47, 36, 51, 0, 11, 67, 120, 114, 15, 55, 108, 71, 39, 72, 0, 24, 73, 98, 28, 209, 29, 225, 211, 120, 119,
-			192, 88, 35, 107, 37, 51, 39, 55, 36, 89, 55, 108, 65, 0, 20, 71, 78, 36, 243, 29, 236, 211, 124, 89, 40, 89, 37, 57, 108, 55,
-			37, 89, 65, 0, 24, 73, 48, 252, 207, 29, 225, 211, 120, 119, 192, 75, 35, 72, 37, 72, 39, 55, 36, 89, 55, 108, 65, 0, 15, 67,
-			41, 204, 207, 47, 35, 104, 17, 35, 57, 57, 39, 72, 0, 16, 69, 33, 21, 10, 139, 0, 71, 36, 51, 36, 91, 47, 40, 49, 0, 20,
-			71, 31, 2, 162, 181, 225, 211, 124, 36, 49, 47, 39, 48, 36, 55, 108, 89, 65, 0, 13, 68, 29, 50, 142, 68, 36, 89, 47, 35, 101,
-			51, 0, 0, 15, 69, 197, 232, 136, 206, 0, 81, 39, 55, 39, 71, 37, 50, 0, 18, 70, 193, 66, 179, 132, 124, 192, 49, 35, 91, 47,
-			37, 107, 108, 57, 36, 0, 12, 67, 192, 167, 138, 49, 39, 47, 55, 36, 47, 0, 11, 67, 192, 117, 10, 49, 6, 108, 91, 47, 0, 10,
-			67, 184, 117, 10, 76, 108, 91, 47, 0, 13, 68, 127, 51, 162, 80, 65, 36, 57, 101, 39, 91, 0, 12, 68, 79, 50, 17, 204, 89, 37,
-			71, 51, 37, 0, 15, 69, 78, 12, 81, 205, 32, 89, 35, 50, 81, 51, 37, 88, 0, 10, 67, 62, 35, 138, 72, 40, 101, 47, 0, 15,
-			68, 61, 71, 224, 80, 72, 39, 91, 65, 35, 50, 35, 91, 0, 14, 68, 41, 18, 17, 204, 47, 35, 51, 71, 39, 51, 37, 0, 14, 68,
-			33, 50, 145, 204, 71, 35, 89, 47, 35, 51, 37, 0, 15, 69, 29, 50, 142, 30, 0, 39, 89, 47, 39, 101, 108, 50, 0, 14, 68, 9,
-			4, 78, 80, 108, 88, 35, 51, 35, 101, 91, 0, 0, 21, 72, 192, 123, 115, 40, 119, 179, 77, 240, 49, 108, 48, 37, 47, 108, 55, 37,
-			89, 65, 0, 12, 67, 181, 50, 176, 48, 35, 89, 47, 35, 49, 0, 24, 72, 181, 49, 223, 61, 24, 51, 77, 240, 48, 35, 89, 108, 65,
-			39, 72, 36, 51, 50, 37, 89, 65, 0, 21, 72, 127, 55, 179, 40, 116, 115, 77, 240, 65, 37, 55, 37, 47, 108, 51, 37, 89, 65, 0,
-			14, 68, 125, 17, 226, 60, 65, 39, 51, 108, 84, 36, 72, 0, 22, 72, 124, 114, 145, 204, 119, 179, 77, 240, 65, 108, 47, 36, 51, 57,
-			108, 55, 37, 89, 65, 0, 23, 72, 35, 56, 138, 70, 36, 115, 77, 240, 71, 37, 57, 39, 47, 36, 51, 39, 51, 37, 89, 65, 0, 16,
-			69, 32, 119, 135, 57, 80, 71, 36, 55, 19, 35, 101, 35, 89, 0, 12, 68, 31, 4, 243, 60, 39, 49, 89, 37, 72, 0, 16, 69, 30,
-			12, 84, 41, 16, 35, 50, 81, 39, 91, 47, 35, 51, 0, 0, 14, 67, 129, 197, 242, 50, 39, 104, 17, 47, 36, 57, 36, 0, 14, 67,
-			125, 50, 8, 65, 39, 89, 35, 71, 71, 36, 71, 0, 14, 67, 113, 90, 242, 104, 17, 36, 89, 89, 36, 57, 36, 0, 16, 69, 74, 3,
-			199, 129, 64, 88, 36, 50, 72, 108, 50, 35, 91, 0, 22, 71, 57, 52, 98, 181, 24, 179, 72, 101, 39, 89, 51, 39, 84, 48, 35, 51,
-			84, 37, 88, 0, 14, 68, 53, 177, 216, 40, 107, 36, 83, 108, 88, 35, 47, 0, 11, 67, 42, 39, 136, 47, 40, 55, 35, 71, 0, 17,
-			69, 41, 17, 240, 129, 64, 47, 35, 51, 108, 49, 39, 50, 36, 91, 0, 16, 69, 41, 17, 200, 71, 48, 47, 35, 51, 108, 71, 35, 51,
-			37, 0, 13, 67, 33, 76, 50, 71, 39, 91, 49, 36, 57, 36, 0, 12, 68, 31, 1, 224, 40, 35, 49, 108, 50, 47, 0, 0, 11, 67,
-			204, 114, 15, 57, 108, 71, 35, 72, 0, 10, 67, 182, 40, 15, 48, 39, 50, 72, 0, 18, 70, 135, 52, 202, 69, 44, 211, 107, 37, 89,
-			47, 36, 51, 88, 37, 89, 0, 13, 67, 131, 8, 15, 50, 35, 49, 39, 50, 35, 72, 0, 10, 67, 126, 40, 15, 65, 40, 50, 72, 0,
-			12, 67, 125, 24, 15, 65, 35, 51, 35, 50, 72, 0, 19, 70, 125, 18, 176, 32, 120, 0, 65, 39, 51, 47, 35, 49, 36, 71, 108, 50,
-			0, 10, 67, 111, 55, 143, 83, 37, 55, 72, 0, 25, 73, 29, 251, 81, 79, 56, 160, 205, 55, 192, 35, 65, 48, 36, 51, 89, 37, 57,
-			39, 50, 37, 89, 65, 0, 17, 70, 29, 50, 135, 68, 164, 64, 36, 89, 47, 108, 51, 47, 36, 51, 0, 0, 17, 70, 206, 44, 83, 120,
-			120, 128, 57, 40, 81, 39, 89, 55, 108, 84, 0, 18, 70, 186, 3, 212, 133, 28, 192, 76, 35, 50, 72, 91, 35, 107, 51, 37, 0, 19,
-			71, 183, 50, 146, 207, 1, 202, 136, 48, 37, 47, 89, 37, 49, 108, 47, 39, 0, 16, 68, 182, 3, 17, 200, 48, 35, 50, 75, 35, 51,
-			36, 57, 36, 0, 12, 67, 129, 50, 10, 50, 36, 89, 71, 35, 47, 0, 16, 69, 109, 23, 15, 30, 0, 83, 35, 51, 104, 17, 72, 108,
-			50, 0, 18, 70, 63, 60, 20, 129, 28, 192, 72, 37, 49, 91, 36, 50, 36, 51, 37, 0, 15, 68, 32, 119, 210, 200, 71, 108, 65, 35,
-			88, 36, 57, 36, 0, 16, 70, 10, 212, 71, 193, 60, 192, 108, 48, 51, 108, 49, 89, 37, 0, 0, 12, 67, 186, 2, 48, 76, 39, 65,
-			71, 35, 49, 0, 17, 70, 181, 225, 209, 139, 51, 192, 48, 39, 55, 108, 51, 39, 57, 72, 0, 14, 68, 126, 226, 32, 60, 65, 39, 76,
-			71, 35, 50, 72, 0, 28, 74, 124, 120, 145, 28, 17, 222, 92, 140, 217, 132, 65, 108, 84, 35, 51, 108, 19, 39, 47, 47, 35, 71, 37,
-			19, 36, 0, 13, 68, 109, 24, 179, 60, 83, 36, 51, 39, 57, 72, 0, 27, 74, 29, 59, 81, 124, 114, 162, 74, 44, 243, 60, 36, 89,
-			48, 36, 51, 65, 108, 47, 39, 88, 39, 37, 12, 72, 0, 0, 16, 69, 184, 115, 209, 80, 128, 76, 108, 72, 39, 51, 91, 35, 71, 0,
-			19, 70, 182, 36, 72, 29, 196, 115, 48, 40, 51, 71, 108, 104, 17, 36, 51, 37, 0, 12, 67, 125, 24, 12, 65, 35, 51, 35, 50, 75,
-			0, 18, 70, 63, 59, 94, 124, 116, 243, 72, 37, 48, 55, 39, 65, 108, 89, 37, 0, 18, 70, 63, 56, 147, 69, 66, 128, 72, 37, 84,
-			89, 36, 51, 36, 91, 47, 0, 16, 70, 63, 56, 7, 127, 50, 128, 72, 37, 50, 108, 65, 37, 47, 0, 18, 70, 54, 36, 83, 69, 66,
-			128, 107, 40, 51, 89, 36, 51, 36, 91, 47, 0, 0, 15, 69, 197, 19, 226, 128, 240, 81, 35, 51, 72, 40, 50, 72, 0, 15, 69, 194,
-			33, 209, 40, 240, 49, 40, 108, 51, 47, 36, 72, 0, 12, 67, 181, 34, 135, 48, 36, 88, 36, 47, 108, 0, 17, 69, 133, 241, 224, 128,
-			240, 107, 35, 65, 108, 12, 50, 35, 50, 72, 0, 16, 69, 125, 28, 222, 128, 240, 65, 36, 51, 37, 55, 35, 50, 72, 0, 15, 69, 122,
-			35, 243, 131, 16, 55, 39, 12, 72, 37, 50, 81, 0, 19, 71, 76, 120, 10, 205, 236, 202, 68, 89, 108, 50, 47, 37, 55, 37, 47, 51,
-			0, 16, 69, 74, 20, 78, 128, 240, 88, 35, 107, 51, 101, 35, 50, 72, 0, 16, 69, 34, 3, 219, 131, 16, 71, 35, 50, 72, 83, 35,
-			50, 81, 0, 16, 69, 33, 28, 82, 204, 240, 71, 35, 51, 81, 39, 88, 37, 72, 0, 15, 69, 33, 17, 210, 204, 240, 71, 35, 51, 108,
-			88, 37, 72, 0, 15, 69, 30, 3, 209, 204, 240, 35, 50, 72, 51, 39, 57, 72, 0, 0, 15, 69, 180, 124, 202, 56, 160, 48, 108, 57,
-			47, 35, 101, 47, 0, 16, 69, 76, 232, 17, 30, 0, 89, 39, 101, 35, 50, 51, 108, 50, 0, 18, 70, 76, 120, 19, 193, 28, 202, 89,
-			108, 50, 89, 49, 36, 51, 37, 47, 0, 18, 69, 73, 244, 79, 206, 0, 88, 39, 65, 39, 51, 51, 39, 72, 37, 50, 0, 20, 71, 42,
-			43, 98, 197, 17, 219, 204, 47, 39, 48, 39, 81, 36, 51, 108, 83, 37, 0, 20, 71, 42, 39, 226, 197, 17, 219, 204, 47, 39, 65, 39,
-			81, 36, 51, 108, 83, 37, 0, 18, 70, 33, 17, 224, 199, 51, 138, 71, 35, 51, 35, 50, 81, 37, 101, 47, 0, 0, 18, 70, 125, 40,
-			146, 139, 60, 240, 65, 36, 88, 39, 88, 39, 37, 12, 49, 0, 18, 70, 42, 3, 226, 42, 3, 192, 47, 39, 50, 72, 39, 47, 39, 50,
-			72, 0, 18, 70, 33, 17, 219, 194, 3, 192, 71, 35, 51, 35, 83, 49, 35, 50, 72, 0, 30, 74, 29, 236, 10, 70, 39, 218, 128, 117,
-			243, 76, 36, 55, 36, 49, 47, 36, 51, 39, 65, 36, 104, 17, 50, 108, 47, 37, 89, 0, 9, 67, 29, 33, 192, 36, 88, 108, 0, 0,
-			22, 72, 182, 36, 96, 139, 20, 71, 111, 48, 48, 39, 51, 50, 39, 81, 36, 51, 108, 83, 37, 0, 12, 67, 105, 98, 0, 104, 17, 35,
-			88, 35, 71, 0, 14, 67, 84, 241, 243, 6, 89, 36, 72, 108, 57, 36, 12, 0, 16, 70, 79, 56, 34, 75, 50, 128, 89, 37, 50, 39,
-			88, 37, 47, 0, 23, 72, 30, 11, 243, 139, 20, 71, 111, 48, 35, 50, 90, 37, 57, 39, 81, 36, 51, 108, 83, 37, 0, 19, 71, 10,
-			209, 224, 63, 52, 243, 40, 108, 48, 108, 50, 72, 37, 89, 37, 47, 0, 23, 72, 9, 18, 145, 139, 20, 71, 111, 48, 108, 51, 47, 36,
-			51, 39, 81, 36, 51, 108, 83, 37, 0, 0, 12, 67, 197, 4, 71, 81, 39, 88, 35, 51, 108, 0, 17, 70, 183, 56, 49, 182, 40, 49,
-			48, 37, 50, 81, 48, 39, 50, 81, 0, 18, 70, 181, 24, 138, 27, 56, 0, 48, 36, 51, 39, 47, 39, 19, 37, 50, 0, 21, 71, 124,
-			204, 207, 29, 231, 222, 192, 65, 35, 75, 37, 72, 39, 55, 65, 39, 55, 49, 0, 20, 71, 110, 39, 176, 122, 36, 115, 192, 83, 39, 55,
-			49, 36, 55, 39, 51, 37, 49, 0, 9, 67, 103, 52, 199, 37, 89, 108, 0, 18, 70, 61, 24, 160, 68, 120, 15, 72, 35, 51, 40, 50,
-			51, 108, 50, 72, 0, 20, 70, 56, 117, 209, 181, 56, 15, 101, 108, 47, 36, 51, 48, 35, 89, 35, 50, 72, 0, 12, 67, 33, 165, 135,
-			71, 35, 104, 17, 88, 108, 0, 15, 69, 30, 5, 71, 108, 112, 36, 50, 89, 108, 83, 35, 50, 0, 26, 73, 28, 132, 112, 29, 251, 115,
-			136, 164, 64, 35, 71, 35, 51, 49, 108, 65, 48, 37, 57, 40, 47, 36, 51, 0, 18, 70, 28, 132, 95, 30, 8, 15, 35, 71, 51, 65,
-			108, 50, 35, 50, 72, 0, 0, 13, 68, 183, 53, 17, 136, 48, 37, 91, 51, 39, 12, 0, 13, 68, 70, 34, 17, 136, 51, 40, 71, 36,
-			51, 40, 0, 11, 67, 61, 248, 128, 72, 36, 65, 39, 12, 0, 13, 68, 57, 17, 219, 204, 101, 39, 51, 108, 83, 37, 0, 9, 67, 29,
-			60, 192, 36, 89, 37, 0, 13, 68, 29, 20, 215, 136, 35, 51, 35, 89, 47, 40, 0, 25, 73, 28, 168, 136, 206, 44, 81, 29, 188, 192,
-			39, 47, 39, 71, 37, 57, 39, 81, 36, 51, 108, 83, 37, 0, 0, 11, 67, 193, 243, 192, 49, 39, 65, 39, 72, 0, 13, 68, 137, 60,
-			217, 28, 84, 35, 89, 37, 35, 50, 0, 11, 67, 129, 243, 192, 50, 35, 65, 35, 72, 0, 12, 67, 125, 225, 193, 65, 35, 55, 35, 10,
-			36, 0, 12, 68, 110, 36, 71, 148, 83, 39, 51, 35, 50, 0, 19, 70, 109, 236, 30, 137, 28, 240, 83, 39, 55, 49, 36, 55, 39, 51,
-			37, 49, 0, 12, 67, 85, 184, 64, 89, 39, 83, 83, 36, 12, 0, 13, 68, 70, 12, 82, 28, 51, 35, 50, 81, 88, 108, 0, 13, 68,
-			69, 44, 202, 28, 51, 39, 88, 37, 47, 108, 0, 13, 68, 32, 120, 155, 28, 71, 108, 84, 35, 83, 108, 0, 10, 67, 29, 184, 64, 36,
-			83, 36, 12, 0, 0, 11, 67, 134, 43, 179, 107, 39, 39, 76, 37, 0, 14, 69, 111, 60, 71, 70, 32, 83, 37, 81, 108, 51, 39, 0,
-			14, 69, 70, 44, 34, 194, 32, 51, 39, 49, 39, 49, 39, 0, 20, 71, 41, 24, 159, 34, 36, 243, 40, 47, 39, 51, 39, 65, 71, 39,
-			89, 37, 47, 0, 0, 11, 67, 193, 225, 225, 49, 39, 55, 108, 107, 0, 11, 67, 131, 17, 225, 50, 36, 81, 108, 107, 0, 11, 67, 130,
-			241, 207, 50, 36, 90, 108, 72, 0, 10, 67, 128, 119, 192, 6, 50, 108, 65, 0, 11, 67, 109, 49, 207, 83, 36, 89, 108, 72, 0, 12,
-			68, 29, 52, 71, 4, 36, 89, 51, 108, 51, 0, 16, 69, 29, 50, 156, 68, 112, 36, 89, 47, 36, 104, 17, 51, 108, 0, 0, 11, 67,
-			207, 17, 224, 57, 36, 81, 108, 50, 0, 11, 67, 204, 161, 224, 57, 36, 47, 108, 50, 0, 12, 67, 197, 22, 202, 81, 36, 51, 36, 83,
-			47, 0, 31, 74, 186, 3, 213, 62, 20, 135, 70, 6, 209, 204, 76, 35, 50, 72, 89, 35, 72, 107, 36, 88, 108, 51, 50, 35, 83, 35,
-			51, 37, 0, 16, 70, 130, 37, 15, 29, 24, 128, 50, 40, 91, 72, 108, 51, 40, 0, 10, 67, 127, 49, 224, 65, 37, 108, 50, 0, 12,
-			67, 76, 161, 224, 89, 36, 47, 6, 108, 50, 0, 11, 67, 71, 52, 202, 51, 37, 89, 36, 47, 0, 12, 67, 62, 36, 202, 72, 6, 40,
-			12, 89, 47, 0, 0, 11, 67, 133, 241, 223, 107, 39, 65, 108, 65, 0, 11, 67, 133, 65, 223, 107, 39, 91, 108, 65, 0, 12, 68, 127,
-			54, 71, 60, 65, 37, 19, 108, 72, 0, 11, 67, 109, 24, 64, 83, 35, 51, 35, 107, 0, 13, 67, 105, 24, 64, 104, 17, 35, 51, 51,
-			36, 12, 0, 11, 67, 93, 24, 64, 47, 39, 51, 51, 36, 0, 12, 67, 83, 20, 91, 91, 36, 81, 36, 51, 83, 0, 12, 67, 81, 24,
-			64, 91, 39, 51, 51, 36, 12, 0, 11, 67, 73, 241, 223, 88, 36, 65, 108, 65, 0, 11, 67, 73, 24, 64, 88, 36, 51, 36, 107, 0,
-			12, 67, 61, 24, 64, 72, 35, 51, 51, 36, 12, 0, 19, 70, 41, 236, 81, 29, 177, 192, 47, 36, 55, 36, 81, 51, 108, 83, 35, 50,
-			0, 12, 68, 29, 156, 199, 60, 35, 19, 57, 108, 72, 0, 10, 67, 29, 24, 64, 35, 51, 51, 36, 0, 23, 73, 10, 2, 145, 138, 216,
-			146, 139, 60, 240, 108, 50, 47, 51, 39, 48, 39, 88, 39, 37, 49, 0, 0, 13, 68, 194, 12, 71, 128, 49, 35, 50, 81, 108, 50, 0,
-			14, 68, 194, 4, 209, 40, 49, 39, 50, 89, 36, 51, 47, 0, 11, 67, 193, 242, 128, 49, 35, 65, 35, 47, 0, 11, 67, 193, 241, 222,
-			49, 35, 65, 108, 55, 0, 11, 67, 186, 1, 222, 76, 36, 50, 108, 55, 0, 13, 68, 135, 20, 135, 128, 107, 36, 81, 88, 108, 50, 0,
-			13, 68, 134, 210, 135, 128, 107, 36, 48, 47, 108, 50, 0, 12, 67, 133, 242, 128, 107, 36, 65, 65, 35, 47, 0, 14, 68, 129, 197, 71,
-			128, 50, 39, 104, 17, 89, 108, 50, 0, 14, 68, 129, 129, 219, 40, 50, 36, 88, 108, 83, 35, 47, 0, 12, 67, 129, 49, 204, 50, 35,
-			89, 89, 108, 75, 0, 12, 67, 126, 2, 140, 65, 39, 50, 47, 35, 75, 0, 12, 67, 105, 242, 128, 104, 17, 35, 65, 35, 47, 0, 12,
-			68, 102, 8, 135, 128, 39, 50, 84, 108, 50, 0, 12, 67, 92, 129, 222, 47, 35, 71, 71, 108, 55, 0, 13, 68, 85, 184, 135, 128, 89,
-			35, 83, 84, 108, 50, 0, 11, 67, 81, 241, 222, 91, 39, 65, 108, 55, 0, 13, 68, 76, 131, 71, 128, 89, 39, 71, 107, 108, 50, 0,
-			13, 68, 73, 24, 135, 128, 88, 35, 51, 84, 108, 50, 0, 12, 67, 69, 241, 222, 51, 35, 65, 65, 108, 55, 0, 13, 68, 68, 195, 71,
-			128, 51, 39, 75, 107, 108, 50, 0, 13, 68, 57, 20, 199, 128, 101, 36, 51, 89, 108, 50, 0, 11, 67, 48, 241, 222, 75, 36, 72, 108,
-			55, 0, 10, 67, 34, 18, 128, 71, 39, 107, 47, 0, 14, 68, 34, 5, 7, 128, 71, 36, 50, 36, 91, 108, 50, 0, 14, 68, 33, 20,
-			199, 128, 71, 36, 51, 36, 89, 108, 50, 0, 15, 68, 33, 20, 160, 40, 71, 36, 51, 36, 88, 36, 50, 47, 0, 15, 69, 32, 124, 10,
-			71, 48, 71, 108, 49, 47, 36, 51, 37, 0, 12, 68, 30, 36, 135, 128, 39, 12, 88, 108, 50, 0, 12, 68, 29, 181, 7, 128, 35, 83,
-			91, 108, 50, 0, 11, 67, 9, 27, 111, 108, 51, 48, 36, 90, 0, 0, 11, 67, 184, 172, 33, 76, 39, 47, 49, 36, 0, 12, 67, 129,
-			244, 97, 50, 39, 65, 51, 36, 12, 0, 16, 69, 125, 50, 155, 28, 240, 65, 39, 89, 47, 35, 83, 108, 72, 0, 12, 67, 82, 20, 97,
-			91, 39, 107, 51, 36, 12, 0, 12, 67, 78, 216, 15, 89, 36, 48, 35, 50, 72, 0, 12, 67, 77, 229, 225, 89, 39, 55, 47, 36, 12,
-			0, 18, 70, 77, 24, 147, 40, 120, 0, 89, 36, 51, 84, 36, 89, 47, 108, 50, 0, 18, 70, 77, 19, 32, 32, 120, 0, 89, 35, 51,
-			75, 39, 65, 71, 108, 50, 0, 12, 67, 73, 244, 97, 88, 39, 65, 51, 36, 12, 0, 13, 68, 43, 52, 138, 192, 47, 37, 88, 47, 35,
-			49, 0, 14, 68, 41, 236, 7, 124, 47, 36, 55, 36, 49, 108, 65, 0, 16, 69, 34, 23, 209, 30, 16, 71, 36, 107, 35, 65, 51, 108,
-			107, 0, 11, 68, 30, 36, 115, 192, 40, 51, 37, 49, 0, 12, 68, 29, 227, 71, 124, 36, 55, 107, 108, 65, 0, 13, 68, 29, 195, 199,
-			124, 36, 104, 17, 72, 108, 65, 0, 10, 67, 29, 87, 192, 35, 89, 35, 65, 0, 11, 67, 8, 132, 225, 108, 71, 89, 36, 12, 0, 0,
-			18, 70, 182, 36, 96, 97, 28, 192, 48, 40, 51, 50, 35, 88, 35, 51, 37, 0, 18, 70, 134, 3, 211, 109, 28, 192, 107, 35, 50, 72,
-			89, 83, 37, 51, 37, 0, 17, 69, 131, 20, 115, 76, 160, 6, 50, 36, 81, 35, 51, 37, 89, 47, 0, 15, 69, 126, 40, 19, 30, 0,
-			65, 40, 50, 36, 89, 108, 50, 0, 12, 67, 125, 252, 32, 65, 39, 65, 49, 36, 50, 0, 17, 69, 125, 164, 173, 56, 160, 65, 35, 104,
-			17, 88, 48, 39, 101, 47, 0, 13, 68, 125, 148, 71, 48, 65, 36, 19, 51, 108, 75, 0, 12, 67, 113, 40, 0, 104, 17, 35, 88, 35,
-			50, 0, 11, 67, 109, 72, 0, 83, 35, 91, 36, 50, 0, 12, 67, 81, 227, 138, 91, 36, 55, 35, 101, 47, 0, 13, 67, 69, 33, 220,
-			51, 35, 88, 88, 108, 104, 17, 0, 18, 70, 61, 252, 17, 29, 60, 192, 72, 36, 65, 39, 49, 51, 108, 89, 37, 0, 13, 68, 42, 43,
-			135, 120, 47, 39, 84, 76, 108, 55, 0, 12, 68, 42, 40, 7, 120, 47, 39, 50, 108, 55, 0, 17, 70, 41, 28, 10, 29, 44, 192, 47,
-			39, 51, 49, 47, 108, 88, 37, 0, 12, 67, 33, 20, 142, 71, 35, 51, 88, 35, 101, 0, 15, 69, 33, 19, 135, 76, 160, 71, 35, 51,
-			101, 108, 89, 47, 0, 12, 67, 33, 1, 220, 71, 39, 88, 108, 104, 17, 0, 31, 76, 30, 39, 138, 68, 116, 226, 130, 44, 81, 29, 188,
-			192, 40, 55, 47, 51, 108, 50, 89, 39, 50, 39, 81, 36, 51, 108, 83, 37, 0, 12, 68, 29, 244, 199, 120, 36, 65, 89, 108, 55, 0,
-			11, 67, 28, 193, 220, 39, 75, 108, 104, 17, 0, 14, 68, 28, 165, 71, 120, 36, 47, 47, 36, 89, 108, 55, 0, 0, 13, 68, 182, 36,
-			96, 196, 48, 40, 51, 35, 50, 81, 0, 14, 68, 181, 24, 145, 60, 48, 35, 51, 84, 35, 51, 72, 0, 13, 68, 181, 18, 145, 132, 48,
-			39, 51, 47, 51, 36, 0, 16, 69, 128, 164, 79, 29, 240, 50, 39, 47, 36, 51, 72, 108, 65, 0, 12, 67, 120, 129, 219, 55, 35, 71,
-			71, 108, 83, 0, 16, 69, 109, 24, 136, 121, 144, 83, 39, 51, 40, 71, 35, 55, 19, 0, 12, 67, 93, 228, 223, 47, 36, 55, 36, 89,
-			65, 0, 21, 71, 84, 244, 71, 121, 70, 81, 28, 89, 35, 72, 51, 39, 91, 91, 39, 35, 51, 108, 0, 17, 70, 83, 52, 95, 68, 115,
-			192, 91, 37, 51, 65, 39, 51, 108, 72, 0, 17, 70, 80, 120, 96, 80, 120, 64, 91, 108, 107, 35, 50, 91, 108, 107, 0, 15, 68, 78,
-			215, 148, 196, 89, 36, 48, 36, 55, 36, 91, 81, 0, 10, 67, 69, 145, 219, 51, 39, 108, 83, 0, 14, 69, 62, 36, 202, 29, 240, 72,
-			40, 89, 47, 108, 65, 0, 13, 68, 48, 241, 209, 132, 75, 36, 72, 108, 51, 36, 0, 14, 67, 42, 24, 153, 47, 35, 107, 35, 84, 84,
-			39, 19, 0, 16, 69, 41, 236, 81, 29, 240, 47, 36, 55, 36, 81, 51, 108, 65, 0, 17, 70, 33, 24, 160, 132, 124, 64, 71, 40, 51,
-			40, 50, 107, 108, 81, 0, 12, 68, 31, 60, 81, 196, 37, 81, 51, 36, 81, 0, 14, 68, 8, 132, 209, 60, 108, 71, 36, 89, 35, 51,
-			72, 0, 0, 14, 68, 207, 55, 135, 112, 57, 36, 57, 55, 108, 104, 17, 0, 17, 70, 193, 248, 160, 205, 50, 128, 49, 39, 65, 39, 50,
-			37, 89, 47, 0, 17, 70, 182, 39, 179, 110, 40, 51, 48, 39, 55, 37, 83, 39, 50, 37, 0, 16, 70, 180, 116, 237, 137, 18, 128, 48,
-			108, 89, 48, 39, 51, 47, 0, 14, 69, 139, 59, 226, 29, 224, 84, 37, 90, 40, 108, 55, 0, 14, 68, 129, 244, 71, 40, 50, 39, 65,
-			35, 51, 108, 47, 0, 14, 68, 127, 56, 147, 128, 65, 37, 57, 39, 89, 36, 50, 0, 14, 68, 125, 83, 199, 112, 65, 36, 89, 72, 108,
-			104, 17, 0, 14, 67, 124, 165, 94, 65, 39, 47, 47, 35, 89, 36, 55, 0, 15, 69, 123, 50, 17, 29, 224, 55, 37, 71, 36, 51, 108,
-			55, 0, 14, 68, 121, 246, 71, 40, 55, 39, 65, 35, 19, 108, 47, 0, 13, 68, 120, 136, 71, 40, 55, 35, 71, 107, 108, 47, 0, 15,
-			68, 113, 118, 71, 40, 104, 17, 35, 47, 35, 19, 108, 47, 0, 15, 68, 112, 132, 71, 112, 104, 17, 36, 71, 51, 108, 104, 17, 0, 17,
-			70, 109, 252, 224, 205, 50, 128, 83, 36, 65, 37, 50, 37, 89, 47, 0, 15, 68, 105, 40, 135, 40, 104, 17, 35, 88, 35, 84, 108, 47,
-			0, 14, 68, 82, 24, 135, 40, 91, 35, 107, 35, 84, 108, 47, 0, 14, 68, 80, 136, 71, 40, 91, 39, 71, 35, 107, 108, 47, 0, 13,
-			67, 61, 28, 30, 72, 35, 51, 49, 39, 55, 55, 0, 15, 69, 57, 19, 211, 29, 224, 101, 39, 51, 72, 89, 108, 55, 0, 15, 69, 40,
-			114, 13, 29, 224, 47, 108, 71, 36, 107, 108, 55, 0, 15, 69, 29, 230, 94, 28, 192, 39, 55, 19, 35, 55, 108, 75, 0, 13, 68, 29,
-			116, 71, 112, 39, 47, 51, 108, 104, 17, 0, 17, 70, 29, 60, 7, 206, 2, 128, 36, 89, 49, 108, 57, 50, 36, 47, 0, 15, 69, 28,
-			170, 213, 29, 224, 36, 47, 47, 36, 89, 108, 55, 0, 13, 68, 28, 164, 71, 112, 39, 47, 51, 108, 104, 17, 0, 17, 70, 10, 2, 145,
-			31, 2, 128, 108, 50, 47, 36, 51, 108, 49, 47, 0, 0, 11, 67, 206, 40, 19, 57, 40, 50, 36, 89, 0, 11, 67, 199, 56, 19, 81,
-			37, 50, 36, 89, 0, 19, 70, 184, 115, 209, 79, 49, 225, 76, 108, 72, 39, 51, 89, 37, 57, 108, 107, 0, 16, 70, 182, 34, 147, 60,
-			119, 192, 48, 40, 47, 89, 72, 108, 65, 0, 18, 70, 181, 24, 177, 68, 119, 192, 48, 39, 51, 39, 81, 36, 51, 108, 65, 0, 17, 69,
-			125, 81, 207, 70, 16, 65, 39, 89, 108, 72, 36, 51, 36, 12, 0, 14, 68, 125, 17, 211, 124, 65, 35, 51, 108, 89, 36, 65, 0, 11,
-			67, 124, 225, 215, 65, 39, 101, 108, 47, 0, 17, 68, 124, 210, 145, 124, 6, 65, 39, 107, 4, 47, 35, 51, 35, 65, 0, 13, 67, 115,
-			53, 211, 104, 17, 36, 57, 47, 39, 89, 0, 12, 67, 112, 196, 64, 104, 17, 35, 75, 35, 51, 0, 18, 70, 108, 168, 177, 68, 119, 192,
-			83, 39, 47, 39, 81, 36, 51, 108, 65, 0, 17, 70, 78, 43, 81, 48, 119, 192, 89, 40, 48, 36, 51, 75, 108, 65, 0, 14, 68, 78,
-			3, 209, 124, 89, 35, 50, 72, 51, 39, 65, 0, 16, 69, 61, 50, 140, 68, 240, 72, 35, 89, 47, 75, 36, 51, 72, 0, 11, 67, 42,
-			12, 211, 47, 36, 50, 37, 89, 0, 11, 67, 34, 212, 64, 71, 36, 48, 35, 51, 0, 18, 70, 32, 248, 136, 205, 17, 225, 71, 35, 72,
-			39, 71, 37, 51, 108, 107, 0, 12, 68, 30, 5, 71, 108, 36, 50, 89, 108, 83, 0, 0, 19, 70, 194, 6, 207, 68, 119, 128, 49, 39,
-			50, 83, 36, 72, 36, 51, 108, 55, 0, 19, 70, 181, 116, 98, 79, 49, 224, 48, 36, 47, 51, 39, 89, 37, 57, 108, 50, 0, 15, 68,
-			126, 3, 209, 48, 65, 39, 50, 72, 35, 51, 35, 75, 0, 18, 69, 125, 151, 159, 30, 0, 65, 39, 19, 35, 55, 55, 36, 65, 108, 50,
-			0, 15, 69, 125, 49, 226, 28, 160, 65, 39, 89, 108, 84, 108, 47, 0, 20, 70, 125, 28, 43, 32, 241, 224, 65, 39, 51, 35, 49, 49,
-			35, 71, 72, 108, 50, 0, 18, 69, 124, 212, 95, 28, 160, 65, 39, 107, 35, 51, 51, 35, 65, 108, 47, 0, 14, 68, 124, 212, 71, 32,
-			65, 36, 107, 51, 108, 71, 36, 0, 15, 68, 124, 170, 213, 120, 65, 39, 47, 47, 35, 89, 36, 55, 0, 12, 67, 124, 132, 82, 65, 39,
-			71, 51, 35, 88, 0, 20, 70, 124, 115, 209, 205, 65, 224, 65, 108, 72, 35, 51, 37, 57, 36, 91, 108, 50, 0, 20, 70, 124, 115, 209,
-			204, 161, 224, 65, 108, 72, 35, 51, 37, 57, 36, 47, 108, 50, 0, 22, 70, 73, 244, 79, 129, 65, 224, 88, 39, 65, 39, 51, 51, 39,
-			72, 50, 36, 91, 108, 50, 0, 15, 69, 61, 28, 199, 108, 160, 72, 35, 51, 57, 108, 83, 47, 0, 19, 70, 60, 120, 151, 120, 129, 224,
-			72, 108, 84, 47, 35, 55, 35, 71, 108, 50, 0, 22, 71, 58, 35, 211, 41, 24, 160, 204, 101, 39, 72, 89, 36, 47, 35, 51, 84, 35,
-			50, 37, 0, 15, 69, 57, 49, 209, 28, 160, 101, 36, 89, 108, 51, 108, 47, 0, 15, 69, 57, 17, 219, 28, 160, 101, 39, 51, 108, 83,
-			108, 47, 0, 21, 71, 43, 8, 34, 193, 17, 211, 204, 47, 36, 49, 50, 39, 49, 36, 51, 108, 89, 37, 0, 15, 68, 41, 55, 147, 120,
-			47, 35, 89, 35, 55, 89, 39, 55, 0, 17, 70, 40, 116, 115, 56, 241, 224, 47, 108, 51, 37, 101, 72, 108, 50, 0, 17, 70, 29, 251,
-			81, 204, 119, 128, 35, 65, 48, 36, 51, 57, 108, 55, 0, 17, 70, 29, 59, 84, 204, 119, 128, 36, 89, 48, 36, 91, 37, 108, 55, 0,
-			17, 69, 29, 50, 145, 190, 0, 36, 89, 47, 39, 51, 39, 90, 36, 50, 0, 18, 70, 29, 35, 224, 32, 119, 128, 35, 88, 72, 39, 50,
-			71, 108, 55, 36, 0, 0, 12, 67, 183, 60, 17, 48, 36, 57, 49, 35, 51, 0, 18, 70, 120, 124, 226, 41, 56, 64, 55, 108, 19, 39,
-			47, 36, 89, 36, 12, 0, 13, 67, 115, 53, 81, 104, 17, 36, 57, 89, 35, 51, 0, 22, 71, 109, 24, 155, 69, 50, 135, 60, 83, 39,
-			51, 40, 83, 36, 51, 36, 89, 47, 108, 72, 0, 17, 69, 108, 168, 176, 69, 240, 83, 39, 47, 39, 49, 36, 51, 39, 65, 0, 12, 67,
-			59, 52, 145, 101, 36, 57, 88, 35, 51, 0, 18, 70, 51, 20, 109, 29, 24, 64, 75, 36, 81, 35, 51, 48, 108, 51, 36, 0, 11, 67,
-			43, 56, 17, 47, 37, 50, 36, 51, 0, 13, 68, 35, 52, 160, 76, 71, 37, 88, 50, 36, 89, 0, 22, 72, 33, 225, 199, 76, 162, 224,
-			28, 16, 71, 36, 55, 108, 36, 89, 47, 36, 89, 50, 108, 0, 13, 68, 33, 17, 240, 76, 71, 39, 51, 108, 49, 89, 0, 17, 70, 32,
-			119, 160, 109, 56, 64, 71, 36, 50, 50, 35, 83, 89, 36, 0, 20, 71, 32, 116, 135, 69, 60, 199, 132, 71, 108, 88, 108, 51, 89, 37,
-			57, 108, 107, 0, 15, 69, 30, 12, 219, 69, 240, 39, 50, 37, 83, 39, 51, 65, 0, 12, 68, 29, 180, 71, 92, 36, 83, 51, 108, 47,
-			0, 14, 69, 29, 59, 71, 77, 240, 36, 89, 48, 108, 89, 65, 0, 0, 22, 71, 193, 228, 98, 181, 225, 211, 40, 49, 39, 55, 39, 51,
-			39, 48, 36, 55, 108, 89, 47, 0, 11, 67, 185, 65, 212, 76, 36, 91, 108, 91, 0, 11, 67, 183, 52, 98, 48, 36, 57, 51, 39, 0,
-			11, 67, 129, 184, 144, 50, 39, 83, 40, 88, 0, 11, 67, 127, 52, 98, 65, 37, 51, 35, 84, 0, 16, 69, 126, 3, 30, 28, 128, 65,
-			35, 50, 75, 36, 55, 108, 71, 0, 17, 70, 125, 145, 223, 120, 114, 128, 65, 39, 108, 65, 36, 55, 108, 47, 0, 17, 70, 101, 247, 179,
-			204, 114, 128, 35, 65, 35, 55, 37, 57, 35, 47, 0, 16, 69, 82, 12, 202, 77, 224, 91, 36, 50, 37, 47, 89, 36, 55, 0, 15, 69,
-			41, 24, 176, 30, 240, 47, 40, 51, 40, 49, 108, 90, 0, 12, 67, 33, 65, 212, 71, 35, 91, 91, 108, 91, 0, 15, 69, 33, 24, 147,
-			30, 240, 71, 39, 51, 39, 89, 108, 90, 0, 19, 71, 29, 252, 209, 29, 87, 135, 128, 35, 65, 37, 51, 35, 89, 55, 108, 50, 0, 12,
-			68, 29, 60, 7, 184, 36, 89, 49, 108, 76, 0, 18, 70, 29, 28, 19, 41, 17, 222, 39, 51, 49, 36, 89, 47, 51, 108, 55, 0, 0,
-			12, 68, 198, 33, 202, 68, 81, 40, 108, 47, 51, 0, 18, 70, 195, 55, 162, 197, 23, 192, 49, 37, 55, 40, 81, 36, 51, 35, 65, 0,
-			13, 68, 194, 12, 34, 68, 49, 39, 50, 49, 40, 51, 0, 12, 67, 193, 225, 229, 49, 39, 55, 55, 35, 50, 0, 17, 70, 130, 28, 222,
-			205, 55, 192, 50, 36, 107, 37, 55, 37, 89, 65, 0, 14, 69, 127, 56, 51, 193, 48, 65, 37, 50, 37, 49, 89, 0, 15, 68, 125, 56,
-			12, 68, 65, 35, 89, 36, 50, 75, 36, 51, 0, 12, 68, 123, 60, 34, 68, 55, 37, 49, 39, 51, 0, 11, 67, 113, 21, 64, 104, 17,
-			39, 51, 89, 0, 16, 69, 109, 17, 224, 77, 48, 83, 36, 51, 108, 50, 89, 36, 89, 0, 18, 70, 108, 168, 177, 68, 118, 192, 83, 39,
-			47, 39, 81, 36, 51, 108, 83, 0, 12, 67, 85, 164, 64, 89, 36, 104, 17, 35, 51, 0, 11, 67, 78, 212, 64, 89, 36, 48, 35, 51,
-			0, 18, 70, 77, 242, 30, 205, 55, 192, 89, 35, 65, 71, 39, 55, 37, 89, 65, 0, 11, 67, 72, 104, 147, 88, 36, 19, 40, 89, 0,
-			16, 70, 71, 49, 222, 205, 55, 192, 51, 36, 108, 55, 37, 89, 65, 0, 11, 67, 70, 212, 64, 51, 35, 48, 36, 51, 0, 15, 69, 56,
-			124, 7, 135, 0, 101, 108, 49, 108, 107, 35, 49, 0, 16, 69, 53, 49, 200, 69, 48, 107, 36, 89, 108, 71, 51, 35, 89, 0, 13, 70,
-			42, 44, 212, 130, 40, 15, 47, 40, 57, 36, 0, 14, 68, 42, 33, 202, 68, 47, 35, 84, 108, 47, 39, 51, 0, 17, 70, 41, 24, 145,
-			205, 55, 192, 47, 36, 51, 39, 51, 37, 89, 65, 0, 11, 67, 32, 228, 64, 71, 36, 101, 35, 51, 0, 17, 70, 29, 236, 30, 205, 55,
-			192, 35, 55, 49, 39, 55, 37, 89, 65, 0, 11, 67, 29, 164, 64, 39, 104, 17, 39, 51, 0, 15, 69, 28, 210, 179, 29, 112, 36, 107,
-			47, 37, 57, 108, 47, 0, 10, 67, 8, 228, 64, 108, 101, 35, 51, 0, 0, 18, 70, 131, 56, 176, 29, 55, 128, 50, 37, 57, 40, 49,
-			108, 89, 36, 55, 0, 21, 72, 124, 124, 240, 70, 36, 199, 108, 160, 65, 108, 57, 49, 51, 39, 89, 108, 83, 47, 0, 13, 68, 40, 231,
-			199, 80, 47, 39, 101, 65, 108, 91, 0, 19, 70, 34, 4, 162, 183, 52, 96, 71, 35, 50, 88, 39, 48, 37, 51, 36, 50, 0, 19, 70,
-			9, 33, 207, 61, 19, 138, 108, 88, 108, 72, 72, 36, 51, 35, 101, 47, 0, 7, 65, 96, 6, 88, 108, 0, 0, 11, 67, 186, 17, 209,
-			76, 108, 107, 108, 51, 0, 12, 67, 133, 33, 209, 6, 107, 36, 88, 108, 51, 0, 13, 68, 128, 119, 34, 76, 50, 108, 104, 17, 40, 89,
-			0, 16, 69, 125, 50, 143, 205, 16, 65, 39, 89, 47, 35, 72, 37, 51, 0, 12, 67, 124, 231, 149, 65, 39, 101, 55, 36, 89, 0, 16,
-			69, 122, 3, 225, 137, 16, 81, 35, 50, 72, 36, 107, 40, 51, 0, 15, 68, 113, 200, 34, 76, 104, 17, 39, 104, 17, 50, 40, 89, 0,
-			19, 70, 108, 244, 71, 123, 52, 223, 83, 36, 72, 36, 51, 108, 55, 37, 89, 65, 0, 23, 72, 96, 120, 81, 29, 229, 94, 28, 208, 88,
-			108, 107, 36, 51, 39, 89, 89, 35, 55, 108, 107, 0, 12, 67, 85, 161, 209, 89, 36, 104, 17, 108, 51, 0, 10, 67, 80, 115, 192, 91,
-			6, 108, 72, 0, 11, 67, 78, 209, 209, 89, 36, 48, 108, 51, 0, 11, 67, 77, 33, 209, 89, 36, 88, 108, 51, 0, 17, 70, 63, 56,
-			7, 127, 52, 223, 72, 37, 50, 108, 65, 37, 89, 65, 0, 10, 67, 31, 49, 209, 35, 57, 108, 51, 0, 15, 69, 29, 60, 51, 129, 16,
-			36, 89, 49, 37, 50, 36, 51, 0, 16, 69, 29, 59, 96, 77, 16, 36, 89, 48, 36, 50, 89, 36, 51, 0, 0, 11, 67, 187, 56, 20,
-			76, 37, 50, 36, 91, 0, 14, 69, 183, 60, 7, 78, 32, 48, 37, 49, 108, 89, 39, 0, 11, 67, 182, 212, 243, 48, 36, 48, 89, 37,
-			0, 17, 70, 181, 19, 199, 139, 52, 128, 48, 35, 51, 72, 108, 84, 37, 88, 0, 13, 68, 114, 39, 243, 72, 104, 17, 39, 65, 37, 88,
-			0, 16, 69, 109, 19, 209, 205, 64, 83, 36, 51, 36, 72, 51, 37, 91, 0, 9, 67, 103, 52, 243, 37, 89, 108, 0, 12, 67, 76, 212,
-			115, 89, 35, 107, 35, 51, 37, 0, 17, 69, 53, 28, 7, 41, 64, 107, 35, 51, 35, 49, 108, 47, 35, 91, 0, 12, 67, 43, 20, 115,
-			47, 35, 81, 35, 51, 37, 0, 13, 67, 41, 52, 115, 47, 35, 89, 35, 51, 51, 37, 0, 11, 67, 35, 56, 20, 71, 37, 50, 36, 91,
-			0, 16, 69, 29, 236, 10, 70, 32, 36, 55, 36, 49, 47, 36, 51, 39, 0, 0, 14, 68, 194, 3, 202, 68, 49, 39, 50, 72, 47, 35,
-			51, 0, 19, 70, 193, 236, 19, 206, 40, 0, 49, 39, 55, 36, 49, 89, 37, 57, 39, 50, 0, 18, 70, 193, 225, 226, 207, 4, 64, 49,
-			36, 55, 108, 84, 37, 49, 39, 51, 0, 19, 71, 190, 36, 96, 29, 236, 211, 124, 90, 40, 51, 50, 108, 55, 37, 89, 65, 0, 14, 68,
-			133, 241, 219, 68, 107, 39, 65, 108, 83, 35, 51, 0, 18, 70, 131, 60, 34, 76, 232, 0, 50, 37, 49, 40, 89, 39, 101, 35, 50, 0,
-			13, 68, 129, 56, 135, 68, 50, 36, 89, 84, 108, 51, 0, 12, 67, 125, 242, 143, 65, 39, 65, 47, 35, 72, 0, 19, 71, 111, 56, 143,
-			29, 236, 211, 124, 83, 36, 39, 72, 108, 55, 37, 89, 65, 0, 13, 68, 77, 244, 199, 68, 89, 36, 65, 89, 108, 51, 0, 16, 69, 77,
-			228, 243, 137, 48, 89, 36, 55, 89, 37, 57, 40, 89, 0, 21, 71, 68, 115, 243, 139, 20, 71, 108, 51, 108, 72, 37, 57, 39, 81, 36,
-			51, 108, 83, 0, 10, 67, 53, 58, 192, 107, 36, 89, 89, 0, 13, 68, 43, 4, 71, 68, 47, 36, 49, 51, 108, 51, 0, 13, 68, 35,
-			53, 72, 68, 71, 37, 89, 35, 71, 51, 0, 13, 68, 33, 232, 135, 68, 71, 39, 55, 84, 108, 51, 0, 14, 68, 33, 17, 200, 68, 71,
-			35, 51, 108, 71, 35, 51, 0, 18, 70, 32, 161, 202, 70, 40, 0, 71, 36, 47, 108, 47, 36, 51, 39, 50, 0, 12, 68, 29, 244, 71,
-			68, 36, 65, 51, 108, 51, 0, 13, 68, 29, 236, 226, 68, 39, 55, 37, 84, 36, 51, 0, 12, 68, 29, 84, 71, 68, 36, 89, 51, 108,
-			51, 0, 25, 73, 29, 59, 112, 41, 24, 177, 68, 119, 192, 36, 89, 48, 36, 49, 47, 51, 39, 81, 36, 51, 108, 65, 0, 17, 70, 29,
-			20, 136, 199, 52, 64, 35, 51, 88, 71, 36, 81, 37, 51, 0, 12, 68, 28, 164, 71, 68, 39, 47, 51, 108, 51, 0, 12, 68, 28, 132,
-			71, 68, 35, 71, 51, 108, 51, 0, 0, 14, 68, 193, 65, 240, 80, 49, 36, 91, 108, 49, 36, 91, 0, 14, 68, 82, 1, 211, 204, 91,
-			36, 50, 6, 108, 89, 37, 0, 16, 69, 61, 19, 148, 30, 0, 72, 36, 51, 35, 101, 91, 108, 50, 0, 13, 68, 42, 36, 209, 204, 47,
-			40, 89, 35, 51, 37, 0, 12, 67, 34, 21, 10, 71, 36, 107, 36, 91, 47, 0, 12, 67, 33, 60, 10, 71, 35, 89, 49, 36, 47, 0,
-			12, 67, 30, 212, 74, 39, 48, 36, 51, 36, 47, 0, 11, 67, 9, 252, 218, 108, 65, 37, 104, 17, 0, 0, 21, 72, 192, 114, 162, 123,
-			52, 243, 77, 240, 49, 108, 47, 39, 55, 37, 89, 37, 89, 65, 0, 15, 69, 185, 17, 206, 137, 16, 76, 36, 51, 108, 101, 39, 51, 0,
-			14, 69, 184, 124, 206, 137, 16, 76, 108, 57, 101, 39, 51, 0, 21, 72, 128, 114, 162, 68, 119, 179, 77, 240, 50, 108, 47, 40, 51, 108,
-			55, 37, 89, 65, 0, 18, 70, 125, 168, 7, 95, 52, 192, 65, 36, 104, 17, 50, 108, 47, 37, 89, 0, 11, 67, 125, 124, 217, 65, 39,
-			47, 37, 19, 0, 12, 67, 125, 21, 153, 65, 39, 51, 88, 36, 19, 0, 20, 70, 93, 161, 202, 205, 248, 145, 47, 39, 104, 17, 108, 47,
-			36, 57, 65, 40, 51, 0, 21, 72, 78, 36, 81, 204, 119, 179, 77, 240, 89, 40, 51, 36, 51, 36, 108, 55, 37, 65, 0, 16, 69, 74,
-			20, 95, 29, 16, 88, 35, 107, 51, 36, 65, 108, 51, 0, 13, 68, 34, 24, 34, 60, 71, 36, 107, 50, 40, 72, 0, 12, 67, 33, 23,
-			25, 71, 39, 51, 104, 17, 35, 0, 22, 72, 29, 251, 81, 204, 119, 179, 77, 240, 35, 65, 48, 36, 51, 57, 108, 55, 37, 89, 65, 0,
-			12, 68, 29, 21, 71, 60, 36, 51, 89, 108, 72, 0, 21, 72, 9, 251, 115, 71, 52, 243, 77, 240, 108, 65, 48, 37, 51, 37, 89, 37,
-			89, 65, 0, 13, 68, 9, 180, 115, 60, 108, 83, 35, 51, 37, 72, 0, 0, 15, 68, 193, 251, 94, 40, 49, 39, 65, 48, 36, 55, 36,
-			47, 0, 14, 68, 181, 225, 240, 40, 48, 36, 55, 108, 49, 36, 47, 0, 15, 68, 133, 24, 156, 40, 107, 35, 51, 84, 35, 104, 17, 47,
-			0, 17, 69, 113, 18, 34, 129, 64, 104, 17, 39, 51, 71, 40, 50, 36, 91, 0, 13, 68, 83, 1, 219, 40, 91, 36, 49, 108, 83, 47,
-			0, 14, 68, 81, 17, 219, 40, 91, 36, 51, 108, 83, 35, 47, 0, 13, 67, 62, 36, 114, 72, 39, 51, 36, 57, 36, 12, 0, 11, 67,
-			50, 18, 128, 75, 35, 107, 35, 47, 0, 13, 68, 32, 124, 211, 40, 71, 108, 57, 36, 89, 47, 0, 0, 16, 70, 199, 52, 98, 60, 116,
-			64, 81, 37, 51, 39, 72, 108, 51, 0, 12, 67, 197, 40, 15, 81, 35, 88, 35, 50, 72, 0, 13, 68, 195, 56, 147, 192, 49, 37, 57,
-			40, 89, 49, 0, 18, 70, 193, 19, 202, 32, 116, 64, 49, 39, 51, 72, 47, 35, 71, 108, 51, 0, 17, 70, 128, 119, 243, 126, 40, 0,
-			50, 108, 65, 36, 57, 65, 40, 50, 0, 24, 73, 128, 116, 243, 138, 1, 222, 205, 55, 192, 50, 108, 89, 37, 57, 39, 50, 108, 55, 37,
-			89, 65, 0, 12, 67, 109, 68, 79, 83, 36, 91, 39, 51, 72, 0, 12, 67, 83, 8, 15, 91, 36, 49, 35, 50, 72, 0, 17, 70, 74,
-			36, 95, 60, 116, 64, 88, 40, 51, 65, 35, 72, 108, 51, 0, 11, 67, 68, 117, 15, 51, 108, 91, 36, 72, 0, 17, 70, 32, 116, 113,
-			72, 116, 64, 71, 108, 51, 81, 39, 88, 108, 51, 0, 16, 70, 29, 50, 135, 60, 120, 0, 39, 89, 47, 108, 72, 108, 50, 0, 22, 5,
-			216, 168, 46, 216, 184, 71, 35, 12, 19, 72, 10, 35, 88, 9, 88, 39, 107, 51, 0, 46, 0, 18, 69, 197, 232, 49, 62, 0, 81, 35,
-			55, 35, 50, 81, 35, 72, 35, 50, 0, 12, 67, 135, 48, 202, 107, 36, 57, 19, 35, 47, 0, 16, 68, 134, 3, 211, 200, 107, 36, 50,
-			72, 36, 89, 36, 57, 36, 0, 18, 70, 134, 3, 210, 109, 28, 192, 107, 35, 50, 72, 89, 83, 37, 51, 37, 0, 18, 70, 131, 24, 79,
-			29, 28, 192, 50, 36, 81, 35, 107, 72, 108, 51, 37, 0, 12, 67, 129, 22, 202, 50, 35, 51, 35, 83, 47, 0, 18, 69, 124, 167, 207,
-			174, 0, 65, 39, 47, 36, 65, 35, 72, 72, 36, 50, 0, 10, 67, 89, 248, 0, 88, 36, 65, 50, 0, 14, 69, 78, 39, 179, 76, 160,
-			89, 39, 55, 37, 89, 47, 0, 18, 70, 57, 230, 74, 33, 28, 192, 101, 35, 55, 35, 47, 71, 35, 51, 37, 0, 0, 11, 67, 129, 33,
-			217, 50, 36, 88, 108, 19, 0, 13, 68, 124, 120, 32, 60, 65, 108, 50, 35, 50, 72, 0, 11, 67, 109, 17, 240, 83, 36, 51, 108, 49,
-			0, 10, 67, 81, 241, 192, 91, 39, 65, 108, 0, 13, 68, 81, 236, 224, 196, 91, 36, 55, 37, 50, 81, 0, 18, 70, 72, 116, 98, 129,
-			33, 209, 88, 108, 51, 39, 50, 35, 88, 108, 51, 0, 21, 70, 49, 168, 145, 33, 168, 145, 75, 35, 104, 17, 40, 51, 71, 35, 104, 17,
-			40, 51, 0, 18, 70, 42, 34, 135, 123, 50, 145, 47, 39, 47, 108, 55, 37, 47, 36, 51, 0, 11, 67, 33, 49, 240, 71, 35, 89, 108,
-			49, 0, 12, 67, 29, 241, 192, 6, 35, 4, 65, 65, 108, 0, 9, 67, 9, 241, 192, 108, 65, 108, 0, 0, 11, 67, 181, 225, 239, 48,
-			36, 55, 108, 90, 0, 17, 70, 137, 236, 7, 131, 50, 128, 84, 39, 55, 49, 108, 50, 37, 47, 0, 19, 70, 129, 180, 199, 131, 50, 128,
-			50, 35, 83, 89, 108, 50, 37, 57, 35, 47, 0, 18, 69, 124, 129, 243, 103, 32, 65, 39, 71, 108, 57, 36, 19, 36, 57, 36, 0, 14,
-			68, 84, 247, 199, 40, 89, 35, 72, 35, 65, 108, 47, 0, 18, 70, 69, 180, 95, 205, 50, 128, 51, 36, 83, 39, 51, 65, 37, 89, 47,
-			0, 17, 70, 63, 52, 226, 130, 2, 128, 72, 37, 89, 39, 50, 36, 50, 47, 0, 18, 69, 57, 23, 225, 71, 32, 101, 35, 51, 65, 39,
-			107, 51, 36, 57, 36, 0, 14, 68, 53, 100, 71, 40, 107, 35, 88, 35, 51, 108, 47, 0, 19, 70, 50, 36, 97, 125, 52, 115, 75, 40,
-			51, 107, 35, 65, 89, 35, 51, 37, 0, 18, 70, 33, 24, 176, 68, 116, 243, 71, 39, 51, 40, 49, 51, 108, 89, 37, 0, 31, 76, 31,
-			20, 179, 76, 161, 224, 79, 49, 222, 205, 50, 128, 36, 81, 88, 37, 89, 47, 108, 50, 89, 37, 57, 108, 55, 37, 89, 47, 0, 7, 66,
-			30, 32, 40, 12, 0, 13, 68, 28, 193, 200, 40, 36, 75, 108, 71, 35, 47, 0, 8, 66, 30, 32, 40, 12, 0, 76, 0, 15, 69, 185,
-			225, 224, 204, 240, 76, 36, 55, 108, 50, 37, 72, 0, 15, 69, 185, 33, 224, 204, 240, 76, 36, 88, 108, 50, 37, 72, 0, 16, 69, 109,
-			231, 243, 131, 16, 83, 36, 55, 36, 65, 37, 50, 81, 0, 10, 67, 100, 165, 0, 35, 47, 35, 91, 0, 11, 67, 94, 213, 0, 47, 35,
-			48, 36, 91, 0, 21, 71, 68, 116, 160, 198, 19, 199, 68, 51, 108, 88, 50, 36, 81, 35, 107, 72, 108, 51, 0, 14, 69, 58, 36, 84,
-			204, 240, 101, 39, 51, 91, 37, 72, 0, 16, 69, 33, 24, 140, 68, 240, 71, 39, 51, 40, 75, 36, 51, 72, 0, 16, 69, 9, 180, 115,
-			128, 240, 108, 83, 35, 51, 37, 50, 35, 72, 0, 0, 16, 69, 194, 3, 208, 134, 0, 49, 39, 50, 72, 88, 36, 107, 50, 0, 14, 69,
-			131, 50, 145, 28, 160, 50, 37, 47, 51, 108, 47, 0, 19, 69, 125, 195, 223, 28, 160, 65, 39, 104, 17, 35, 72, 72, 35, 65, 108, 47,
-			0, 16, 69, 125, 55, 159, 30, 0, 65, 39, 89, 35, 55, 65, 108, 50, 0, 18, 70, 124, 116, 199, 186, 36, 202, 65, 108, 89, 108, 76,
-			39, 89, 36, 47, 0, 13, 68, 94, 36, 71, 32, 47, 39, 51, 6, 108, 71, 0, 16, 69, 83, 4, 115, 30, 0, 91, 39, 49, 51, 37,
-			57, 108, 50, 0, 16, 69, 49, 33, 179, 28, 160, 75, 39, 88, 19, 37, 57, 108, 47, 0, 16, 69, 42, 3, 208, 134, 0, 47, 39, 50,
-			72, 88, 36, 107, 50, 0, 18, 69, 41, 248, 51, 28, 160, 47, 35, 65, 35, 50, 50, 37, 57, 108, 47, 0, 18, 69, 32, 120, 98, 204,
-			160, 71, 108, 107, 39, 84, 37, 57, 57, 35, 47, 0, 16, 69, 8, 131, 223, 74, 0, 108, 71, 72, 35, 65, 88, 35, 50, 0, 11, 67,
-			129, 252, 192, 50, 36, 65, 37, 0, 76, 0, 19, 70, 197, 19, 224, 34, 3, 192, 81, 35, 51, 72, 35, 50, 71, 35, 50, 72, 0, 18,
-			70, 35, 51, 200, 122, 3, 192, 71, 37, 72, 71, 39, 55, 35, 50, 72, 0, 18, 70, 33, 226, 17, 206, 12, 64, 71, 39, 55, 71, 37,
-			51, 37, 50, 81, 0, 16, 70, 29, 50, 145, 206, 12, 64, 36, 89, 47, 51, 37, 50, 81, 0, 0, 11, 67, 93, 226, 0, 47, 35, 55,
-			35, 71, 0, 18, 70, 63, 20, 72, 29, 178, 128, 72, 36, 81, 35, 51, 71, 108, 83, 47, 0, 18, 70, 60, 225, 224, 204, 114, 128, 72,
-			39, 101, 108, 50, 37, 57, 108, 47, 0, 17, 70, 33, 24, 160, 83, 50, 128, 71, 36, 51, 39, 50, 91, 37, 47, 0, 12, 67, 33, 22,
-			162, 71, 39, 51, 104, 17, 40, 0, 19, 71, 31, 8, 160, 137, 252, 211, 40, 36, 49, 39, 50, 39, 65, 37, 89, 47, 0, 11, 67, 28,
-			136, 179, 35, 71, 35, 84, 37, 0, 0, 12, 67, 181, 52, 71, 48, 36, 89, 35, 51, 108, 0, 9, 66, 94, 16, 47, 108, 107, 108, 0,
-			8, 66, 42, 16, 47, 35, 107, 0, 12, 67, 40, 134, 71, 47, 35, 71, 19, 35, 50, 0, 19, 70, 32, 119, 135, 33, 232, 15, 71, 108,
-			55, 108, 71, 39, 55, 35, 50, 72, 0, 11, 67, 29, 52, 71, 39, 89, 35, 51, 108, 0, 12, 67, 28, 172, 7, 36, 47, 47, 36, 49,
-			108, 0, 9, 66, 34, 16, 71, 36, 12, 0, 76, 0, 14, 68, 198, 3, 34, 204, 81, 35, 50, 75, 35, 84, 37, 0, 15, 69, 197, 252,
-			212, 30, 0, 81, 39, 65, 37, 91, 108, 50, 0, 14, 68, 124, 210, 162, 204, 65, 39, 107, 47, 35, 84, 37, 0, 16, 69, 82, 1, 206,
-			42, 0, 91, 36, 50, 108, 101, 47, 35, 50, 0, 14, 68, 81, 50, 148, 136, 91, 39, 89, 47, 36, 91, 40, 0, 0, 14, 68, 133, 244,
-			209, 28, 107, 35, 65, 89, 39, 51, 108, 0, 16, 68, 114, 23, 17, 28, 104, 17, 35, 107, 104, 17, 35, 51, 108, 0, 11, 67, 93, 231,
-			0, 47, 36, 55, 104, 17, 0, 14, 68, 57, 88, 149, 28, 101, 39, 89, 40, 89, 35, 50, 0, 14, 68, 53, 252, 209, 28, 107, 39, 65,
-			36, 57, 51, 108, 0, 13, 68, 29, 178, 145, 28, 36, 83, 47, 36, 51, 108, 0, 0, 11, 67, 181, 18, 162, 48, 35, 51, 47, 39, 0,
-			12, 67, 133, 24, 179, 107, 36, 51, 35, 84, 37, 0, 13, 67, 105, 24, 179, 104, 17, 35, 51, 35, 84, 37, 0, 11, 67, 57, 76, 51,
-			101, 39, 91, 49, 37, 0, 12, 67, 33, 56, 179, 71, 36, 89, 40, 57, 36, 0, 0, 10, 67, 137, 54, 64, 84, 39, 89, 19, 0, 15,
-			69, 136, 120, 27, 76, 112, 84, 108, 50, 35, 83, 89, 108, 0, 13, 67, 131, 2, 161, 50, 39, 49, 6, 47, 36, 12, 0, 10, 67, 100,
-			129, 207, 36, 71, 108, 72, 0, 11, 67, 89, 241, 207, 88, 36, 65, 108, 72, 0, 11, 67, 86, 7, 192, 89, 35, 50, 35, 65, 0, 15,
-			69, 76, 212, 66, 76, 112, 89, 36, 107, 51, 108, 89, 108, 0, 11, 67, 76, 167, 192, 89, 36, 47, 35, 65, 0, 11, 67, 74, 7, 192,
-			88, 35, 50, 35, 65, 0, 13, 68, 57, 114, 7, 4, 101, 39, 47, 35, 71, 108, 0, 10, 67, 52, 167, 192, 107, 35, 47, 65, 0, 11,
-			67, 46, 7, 192, 89, 35, 50, 35, 65, 0, 11, 67, 42, 7, 192, 47, 35, 50, 35, 65, 0, 16, 69, 32, 124, 220, 68, 112, 71, 108,
-			57, 104, 17, 35, 51, 108, 0, 10, 67, 30, 7, 192, 36, 50, 39, 65, 0, 16, 69, 29, 236, 10, 68, 112, 36, 55, 36, 49, 47, 36,
-			51, 108, 0, 11, 68, 28, 213, 71, 4, 36, 107, 89, 108, 0, 14, 69, 28, 136, 153, 92, 112, 35, 71, 40, 35, 47, 108, 0, 0, 12,
-			67, 197, 52, 202, 81, 39, 89, 35, 89, 47, 0, 16, 69, 194, 28, 20, 30, 0, 49, 35, 107, 49, 36, 91, 108, 50, 0, 11, 67, 193,
-			231, 128, 49, 39, 55, 35, 55, 0, 12, 67, 128, 244, 74, 50, 39, 72, 51, 35, 47, 0, 11, 67, 127, 56, 160, 65, 37, 57, 40, 50,
-			0, 15, 69, 126, 36, 222, 206, 0, 65, 40, 89, 36, 55, 37, 50, 0, 12, 67, 125, 231, 128, 6, 65, 36, 55, 35, 55, 0, 16, 68,
-			124, 168, 155, 204, 65, 39, 47, 36, 84, 35, 83, 83, 108, 0, 12, 67, 113, 231, 128, 104, 17, 39, 55, 35, 55, 0, 14, 67, 112, 244,
-			74, 104, 17, 39, 72, 6, 51, 35, 47, 0, 12, 67, 109, 20, 202, 83, 36, 51, 36, 89, 47, 0, 10, 67, 101, 231, 128, 36, 55, 35,
-			55, 0, 12, 67, 92, 129, 206, 47, 35, 71, 71, 108, 101, 0, 11, 67, 82, 7, 128, 91, 36, 50, 36, 55, 0, 11, 67, 74, 8, 160,
-			88, 35, 50, 40, 50, 0, 14, 67, 41, 156, 224, 47, 35, 19, 35, 57, 57, 39, 50, 0, 15, 69, 29, 242, 160, 30, 0, 36, 65, 47,
-			36, 50, 108, 50, 0, 0, 11, 67, 197, 28, 64, 81, 39, 12, 51, 81, 0, 11, 67, 194, 12, 223, 49, 39, 50, 37, 65, 0, 13, 68,
-			185, 18, 176, 132, 76, 39, 51, 47, 49, 36, 0, 12, 67, 181, 228, 240, 48, 36, 55, 36, 89, 49, 0, 10, 67, 180, 116, 112, 48, 108,
-			51, 49, 0, 13, 68, 137, 20, 199, 60, 84, 36, 51, 89, 108, 72, 0, 13, 67, 129, 72, 159, 50, 35, 91, 35, 84, 35, 65, 0, 14,
-			68, 125, 195, 199, 60, 65, 36, 104, 17, 72, 108, 72, 0, 14, 67, 124, 212, 112, 65, 39, 107, 35, 51, 51, 36, 49, 0, 15, 68, 124,
-			165, 135, 60, 65, 39, 47, 47, 35, 88, 108, 72, 0, 11, 67, 124, 129, 205, 65, 39, 71, 108, 107, 0, 10, 67, 122, 3, 0, 55, 36,
-			50, 75, 0, 12, 67, 85, 24, 64, 89, 39, 51, 51, 36, 12, 0, 15, 68, 82, 24, 179, 132, 91, 35, 107, 35, 84, 37, 57, 36, 0,
-			11, 67, 70, 44, 223, 51, 35, 84, 37, 65, 0, 15, 68, 41, 72, 179, 132, 47, 35, 91, 84, 37, 57, 36, 12, 0, 15, 68, 40, 132,
-			70, 132, 47, 35, 71, 51, 35, 19, 36, 12, 0, 11, 67, 40, 116, 112, 47, 108, 51, 36, 49, 0, 13, 67, 33, 72, 159, 71, 36, 91,
-			35, 84, 35, 65, 0, 10, 67, 32, 116, 240, 71, 108, 89, 49, 0, 14, 69, 29, 18, 148, 28, 16, 36, 51, 47, 36, 91, 108, 0, 14,
-			68, 28, 248, 179, 132, 35, 72, 84, 37, 57, 36, 12, 0, 11, 67, 11, 50, 159, 108, 57, 47, 36, 65, 0, 0, 13, 68, 181, 24, 179,
-			128, 48, 35, 51, 84, 37, 50, 0, 14, 68, 131, 56, 138, 128, 50, 37, 57, 39, 47, 39, 50, 0, 12, 67, 129, 24, 175, 50, 39, 51,
-			84, 36, 90, 0, 13, 68, 126, 23, 226, 128, 65, 36, 107, 65, 40, 50, 0, 15, 67, 125, 196, 72, 65, 39, 104, 17, 35, 51, 51, 35,
-			71, 0, 13, 68, 125, 147, 34, 128, 65, 35, 19, 75, 40, 50, 0, 12, 67, 112, 136, 158, 104, 17, 35, 71, 40, 55, 0, 13, 67, 105,
-			188, 222, 104, 17, 39, 83, 36, 57, 55, 0, 13, 68, 81, 24, 179, 128, 91, 36, 51, 84, 37, 50, 0, 14, 68, 81, 17, 240, 40, 91,
-			36, 51, 108, 49, 35, 47, 0, 11, 67, 69, 56, 158, 51, 35, 89, 40, 55, 0, 12, 67, 61, 246, 128, 72, 35, 65, 35, 104, 17, 0,
-			14, 68, 53, 17, 211, 40, 107, 36, 51, 108, 89, 35, 47, 0, 13, 68, 51, 51, 98, 128, 75, 36, 57, 107, 40, 50, 0, 13, 68, 33,
-			236, 226, 128, 71, 36, 55, 57, 39, 50, 0, 12, 67, 33, 28, 222, 71, 36, 51, 36, 57, 55, 0, 13, 68, 10, 215, 162, 128, 108, 48,
-			39, 55, 39, 50, 0, 0, 12, 67, 197, 28, 225, 81, 36, 51, 57, 36, 12, 0, 11, 67, 185, 251, 161, 76, 35, 65, 76, 36, 0, 15,
-			69, 126, 17, 200, 28, 240, 65, 35, 107, 108, 71, 108, 72, 0, 18, 70, 125, 156, 224, 204, 120, 0, 65, 39, 19, 37, 50, 37, 57, 108,
-			50, 0, 17, 69, 125, 145, 226, 206, 16, 65, 39, 19, 108, 84, 37, 57, 36, 12, 0, 17, 68, 124, 168, 19, 192, 65, 39, 47, 36, 50,
-			35, 89, 89, 36, 49, 0, 12, 67, 121, 200, 161, 55, 35, 104, 17, 84, 36, 0, 9, 67, 102, 6, 192, 39, 50, 83, 0, 10, 67, 86,
-			6, 192, 89, 36, 50, 83, 0, 11, 67, 83, 56, 161, 91, 37, 84, 36, 12, 0, 11, 67, 57, 244, 97, 101, 39, 65, 51, 36, 0, 12,
-			67, 49, 232, 161, 75, 36, 55, 84, 36, 12, 0, 14, 68, 41, 200, 179, 124, 47, 35, 104, 17, 84, 37, 65, 0, 14, 67, 40, 167, 225,
-			47, 35, 47, 35, 65, 65, 36, 12, 0, 13, 68, 32, 120, 149, 108, 71, 108, 84, 35, 89, 83, 0, 11, 67, 9, 21, 33, 108, 51, 91,
-			36, 12, 0, 0, 12, 67, 198, 36, 160, 81, 35, 84, 35, 88, 50, 0, 11, 67, 194, 43, 96, 49, 39, 48, 36, 50, 0, 11, 67, 131,
-			24, 160, 50, 36, 81, 40, 50, 0, 11, 67, 127, 52, 160, 65, 37, 88, 35, 50, 0, 15, 68, 125, 193, 226, 120, 65, 39, 104, 17, 108,
-			84, 36, 55, 0, 14, 67, 125, 156, 224, 65, 39, 19, 35, 57, 57, 35, 50, 0, 11, 67, 125, 40, 160, 65, 36, 88, 39, 50, 0, 12,
-			67, 124, 244, 96, 65, 39, 72, 36, 51, 50, 0, 11, 67, 71, 56, 160, 51, 37, 57, 39, 50, 0, 11, 67, 68, 129, 202, 51, 39, 71,
-			108, 47, 0, 12, 67, 50, 1, 218, 75, 36, 50, 108, 104, 17, 0, 11, 67, 48, 136, 160, 75, 35, 71, 40, 50, 0, 11, 67, 44, 129,
-			202, 89, 39, 71, 108, 47, 0, 17, 70, 43, 56, 146, 137, 188, 192, 47, 36, 10, 39, 88, 39, 83, 37, 0, 14, 67, 40, 213, 96, 47,
-			35, 107, 35, 89, 89, 39, 50, 0, 12, 67, 34, 5, 32, 71, 39, 50, 91, 35, 50, 0, 15, 69, 33, 230, 199, 76, 160, 71, 36, 55,
-			83, 108, 89, 47, 0, 15, 69, 32, 116, 140, 76, 160, 71, 108, 88, 75, 39, 89, 47, 0, 11, 67, 29, 188, 32, 35, 83, 49, 35, 50,
-			0, 12, 68, 29, 75, 115, 120, 36, 91, 48, 37, 55, 0, 0, 14, 69, 192, 120, 15, 137, 240, 49, 108, 50, 72, 39, 65, 0, 15, 69,
-			133, 241, 202, 137, 240, 107, 36, 65, 108, 47, 39, 65, 0, 11, 67, 129, 245, 192, 50, 35, 65, 35, 47, 0, 12, 67, 125, 228, 159, 65,
-			39, 55, 88, 35, 65, 0, 16, 67, 125, 55, 27, 65, 39, 89, 35, 104, 17, 104, 17, 35, 83, 0, 13, 68, 125, 49, 217, 60, 65, 39,
-			89, 108, 36, 72, 0, 12, 67, 112, 124, 223, 104, 17, 108, 57, 36, 65, 0, 15, 68, 110, 36, 115, 132, 83, 36, 84, 51, 37, 57, 36,
-			12, 0, 15, 68, 109, 22, 209, 132, 83, 36, 51, 83, 36, 51, 36, 12, 0, 15, 68, 102, 2, 51, 132, 36, 50, 35, 71, 37, 57, 36,
-			12, 0, 13, 68, 100, 116, 115, 132, 19, 108, 51, 37, 57, 36, 0, 12, 67, 85, 180, 95, 89, 36, 83, 51, 39, 65, 0, 13, 68, 80,
-			124, 81, 60, 91, 108, 81, 36, 51, 72, 0, 12, 67, 77, 156, 223, 89, 35, 19, 57, 35, 65, 0, 16, 69, 57, 24, 148, 185, 176, 101,
-			39, 51, 39, 91, 76, 39, 83, 0, 15, 68, 42, 24, 179, 132, 47, 35, 107, 84, 37, 57, 36, 12, 0, 16, 69, 41, 193, 226, 205, 240,
-			47, 35, 104, 17, 108, 84, 37, 65, 0, 15, 68, 41, 18, 46, 132, 47, 39, 51, 39, 71, 76, 36, 12, 0, 13, 69, 31, 55, 179, 137,
-			240, 37, 55, 36, 39, 65, 0, 14, 68, 30, 4, 243, 132, 36, 50, 89, 37, 57, 36, 12, 0, 18, 70, 29, 231, 237, 204, 115, 192, 39,
-			55, 35, 65, 48, 37, 57, 108, 72, 0, 17, 70, 28, 168, 145, 204, 168, 64, 39, 47, 39, 51, 37, 47, 36, 12, 0, 0, 18, 70, 192,
-			114, 135, 122, 212, 243, 49, 108, 47, 108, 55, 36, 48, 89, 37, 0, 17, 70, 191, 56, 138, 31, 4, 243, 90, 36, 39, 47, 108, 49, 89,
-			37, 0, 10, 67, 181, 251, 64, 48, 39, 65, 48, 0, 18, 70, 130, 36, 97, 68, 116, 243, 50, 40, 51, 107, 35, 51, 108, 89, 37, 0,
-			11, 67, 128, 236, 222, 50, 35, 101, 37, 55, 0, 12, 67, 125, 181, 158, 65, 39, 83, 88, 36, 55, 0, 15, 68, 125, 100, 71, 40, 65,
-			39, 88, 36, 51, 51, 108, 47, 0, 16, 69, 125, 50, 151, 205, 224, 65, 39, 89, 47, 35, 47, 37, 55, 0, 16, 69, 124, 164, 98, 181,
-			224, 65, 36, 47, 51, 39, 48, 39, 55, 0, 17, 68, 124, 163, 85, 128, 65, 39, 47, 36, 107, 35, 89, 89, 36, 50, 0, 14, 68, 120,
-			214, 7, 40, 55, 35, 107, 35, 88, 108, 47, 0, 15, 69, 120, 118, 94, 28, 192, 55, 108, 19, 35, 55, 108, 75, 0, 10, 67, 100, 200,
-			158, 35, 75, 40, 55, 0, 20, 70, 85, 19, 206, 72, 118, 115, 89, 39, 51, 35, 72, 36, 101, 39, 88, 108, 37, 0, 14, 68, 78, 8,
-			135, 40, 89, 35, 50, 35, 84, 108, 47, 0, 14, 68, 61, 152, 135, 40, 72, 35, 19, 35, 84, 108, 47, 0, 12, 67, 61, 28, 222, 72,
-			36, 51, 36, 57, 55, 0, 16, 70, 61, 19, 162, 29, 50, 128, 72, 35, 51, 101, 108, 89, 47, 0, 16, 68, 61, 18, 51, 128, 72, 35,
-			51, 71, 36, 57, 108, 50, 36, 0, 12, 67, 49, 1, 200, 75, 35, 88, 88, 108, 71, 0, 11, 67, 43, 56, 158, 47, 37, 57, 40, 55,
-			0, 11, 67, 40, 120, 158, 47, 108, 84, 35, 55, 0, 13, 68, 34, 37, 31, 128, 71, 40, 91, 65, 35, 50, 0, 11, 67, 32, 236, 222,
-			71, 35, 101, 37, 55, 0, 12, 68, 30, 212, 243, 128, 39, 48, 89, 37, 50, 0, 12, 68, 29, 88, 135, 40, 35, 89, 84, 108, 47, 0,
-			0, 15, 69, 181, 23, 199, 206, 16, 48, 39, 51, 65, 108, 57, 36, 0, 11, 67, 129, 65, 215, 50, 36, 91, 108, 47, 0, 14, 67, 125,
-			100, 83, 65, 39, 88, 35, 51, 51, 35, 89, 0, 10, 67, 122, 44, 19, 55, 40, 49, 89, 0, 16, 69, 61, 50, 177, 68, 240, 72, 35,
-			89, 47, 81, 36, 51, 72, 0, 12, 67, 59, 49, 215, 101, 35, 57, 57, 108, 47, 0, 14, 68, 49, 17, 243, 124, 75, 35, 51, 108, 57,
-			36, 65, 0, 11, 67, 35, 60, 19, 71, 37, 49, 35, 89, 0, 16, 69, 34, 17, 200, 71, 16, 71, 35, 107, 108, 71, 35, 51, 81, 0,
-			14, 68, 33, 24, 179, 124, 71, 36, 51, 35, 84, 37, 65, 0, 16, 69, 32, 119, 159, 70, 16, 71, 36, 55, 65, 35, 51, 51, 36, 0,
-			13, 68, 28, 244, 71, 192, 36, 12, 72, 51, 108, 49, 0, 14, 68, 28, 164, 199, 100, 36, 47, 47, 36, 89, 108, 19, 0, 0, 17, 68,
-			194, 2, 145, 120, 4, 6, 49, 39, 50, 47, 39, 51, 39, 55, 0, 12, 68, 192, 124, 34, 120, 49, 108, 49, 39, 55, 0, 17, 69, 185,
-			235, 145, 29, 160, 76, 36, 55, 76, 36, 51, 108, 104, 17, 0, 19, 71, 183, 50, 147, 207, 1, 202, 136, 48, 37, 47, 89, 37, 49, 108,
-			47, 39, 0, 18, 70, 181, 225, 224, 192, 168, 160, 48, 36, 55, 108, 50, 49, 47, 39, 50, 0, 15, 69, 181, 76, 223, 30, 0, 48, 35,
-			91, 37, 65, 108, 50, 0, 11, 67, 181, 24, 128, 48, 39, 51, 39, 84, 0, 17, 70, 127, 60, 17, 137, 184, 160, 65, 37, 49, 51, 39,
-			83, 39, 50, 0, 13, 68, 126, 2, 135, 188, 65, 39, 50, 47, 108, 90, 0, 15, 68, 125, 103, 205, 120, 65, 39, 88, 65, 35, 107, 36,
-			55, 0, 12, 67, 124, 212, 82, 65, 39, 107, 51, 35, 88, 0, 14, 68, 124, 209, 219, 96, 65, 39, 107, 108, 83, 36, 88, 0, 17, 70,
-			124, 116, 112, 79, 52, 202, 65, 108, 51, 49, 89, 37, 89, 47, 0, 14, 69, 100, 129, 209, 28, 160, 36, 71, 108, 51, 108, 47, 0, 12,
-			67, 78, 212, 82, 89, 36, 48, 39, 51, 88, 0, 15, 69, 53, 44, 209, 30, 0, 107, 35, 88, 37, 51, 108, 50, 0, 19, 70, 30, 216,
-			146, 79, 56, 160, 39, 48, 39, 88, 36, 89, 37, 57, 39, 50, 0, 14, 69, 29, 65, 209, 28, 160, 36, 91, 108, 51, 108, 47, 0, 0,
-			20, 70, 194, 4, 209, 79, 56, 159, 49, 39, 50, 89, 36, 51, 89, 37, 57, 39, 65, 0, 17, 70, 192, 119, 135, 33, 28, 64, 49, 108,
-			55, 108, 71, 35, 51, 81, 0, 15, 69, 127, 50, 17, 205, 240, 65, 37, 71, 35, 51, 37, 65, 0, 13, 68, 124, 210, 135, 92, 65, 39,
-			107, 47, 108, 47, 0, 12, 67, 85, 21, 81, 89, 35, 51, 89, 35, 51, 0, 14, 68, 77, 196, 71, 92, 89, 39, 104, 17, 51, 108, 47,
-			0, 20, 71, 76, 120, 51, 43, 20, 71, 60, 89, 108, 50, 47, 37, 81, 36, 51, 108, 72, 0, 14, 69, 62, 36, 112, 205, 240, 72, 39,
-			51, 49, 37, 65, 0, 15, 69, 58, 40, 49, 69, 240, 101, 40, 50, 81, 35, 51, 65, 0, 15, 69, 32, 120, 27, 137, 0, 71, 108, 50,
-			39, 83, 40, 88, 0, 18, 70, 29, 50, 135, 63, 56, 159, 36, 89, 47, 108, 72, 37, 57, 39, 65, 0, 0, 11, 67, 131, 17, 212, 50,
-			36, 81, 108, 91, 0, 19, 70, 130, 37, 10, 48, 114, 128, 50, 36, 84, 36, 91, 47, 36, 75, 108, 47, 0, 10, 67, 128, 116, 98, 50,
-			108, 51, 39, 0, 18, 70, 127, 1, 202, 32, 114, 128, 65, 39, 49, 108, 47, 36, 71, 108, 47, 0, 21, 70, 124, 168, 155, 204, 114, 128,
-			65, 39, 47, 36, 84, 35, 83, 83, 37, 57, 108, 47, 0, 12, 67, 113, 82, 0, 104, 17, 35, 89, 35, 71, 0, 18, 70, 76, 120, 10,
-			71, 56, 158, 89, 108, 50, 47, 51, 37, 57, 39, 55, 0, 21, 71, 63, 8, 145, 29, 60, 226, 128, 72, 36, 49, 39, 51, 108, 89, 37,
-			57, 39, 50, 0, 18, 70, 29, 119, 135, 100, 114, 128, 36, 47, 47, 36, 55, 108, 19, 108, 47, 0, 0, 11, 67, 197, 17, 211, 81, 36,
-			51, 108, 89, 0, 11, 67, 193, 180, 64, 49, 39, 12, 83, 51, 0, 17, 70, 192, 116, 113, 75, 56, 0, 49, 108, 51, 81, 39, 88, 37,
-			50, 0, 17, 70, 183, 52, 98, 193, 56, 0, 48, 37, 51, 39, 49, 89, 36, 50, 0, 15, 69, 134, 209, 202, 207, 0, 107, 36, 48, 108,
-			47, 37, 49, 0, 11, 67, 129, 180, 64, 50, 35, 83, 35, 51, 0, 12, 67, 125, 180, 64, 65, 35, 83, 35, 51, 51, 0, 14, 68, 125,
-			49, 219, 68, 65, 39, 89, 108, 83, 36, 51, 0, 10, 67, 98, 20, 64, 88, 39, 107, 51, 0, 10, 67, 53, 21, 64, 107, 36, 51, 89,
-			0, 10, 67, 30, 20, 64, 35, 107, 35, 51, 0, 12, 68, 28, 231, 135, 84, 36, 101, 55, 108, 89, 0, 8, 65, 100, 6, 36, 57, 50,
-			0, 0, 16, 69, 197, 66, 159, 69, 32, 81, 35, 91, 47, 65, 35, 51, 88, 0, 19, 70, 193, 228, 202, 70, 39, 128, 49, 39, 55, 36,
-			89, 47, 36, 51, 39, 55, 0, 23, 72, 181, 24, 138, 138, 215, 135, 76, 160, 48, 39, 51, 39, 47, 39, 48, 36, 55, 108, 89, 47, 0,
-			11, 67, 131, 49, 210, 50, 37, 57, 108, 88, 0, 10, 67, 128, 216, 128, 50, 35, 107, 84, 0, 18, 69, 125, 50, 8, 30, 0, 65, 39,
-			89, 35, 71, 71, 36, 71, 108, 50, 0, 13, 67, 105, 241, 210, 104, 17, 35, 65, 65, 108, 88, 0, 14, 68, 93, 28, 220, 204, 47, 35,
-			51, 37, 104, 17, 37, 0, 20, 70, 43, 56, 145, 205, 60, 224, 47, 36, 10, 39, 51, 37, 89, 37, 57, 108, 50, 0, 20, 70, 40, 104,
-			145, 205, 60, 224, 47, 36, 19, 39, 51, 37, 89, 37, 57, 35, 50, 0, 18, 69, 35, 53, 138, 206, 0, 71, 36, 57, 88, 35, 47, 36,
-			57, 108, 50, 0, 16, 69, 35, 49, 223, 69, 32, 71, 37, 57, 108, 65, 39, 51, 88, 0, 13, 68, 35, 2, 135, 80, 71, 35, 49, 47,
-			108, 91, 0, 13, 68, 33, 74, 199, 80, 71, 35, 91, 91, 108, 91, 0, 20, 71, 32, 116, 98, 34, 3, 243, 120, 71, 108, 51, 39, 71,
-			35, 50, 72, 37, 55, 0, 21, 72, 30, 216, 145, 42, 40, 51, 76, 160, 39, 48, 39, 51, 47, 40, 50, 37, 89, 47, 0, 19, 70, 29,
-			60, 32, 61, 24, 160, 36, 89, 49, 35, 50, 72, 35, 51, 40, 50, 0, 12, 68, 29, 24, 71, 80, 36, 51, 107, 108, 91, 0, 0, 18,
-			70, 198, 3, 7, 128, 252, 223, 81, 39, 50, 75, 108, 50, 72, 37, 65, 0, 12, 67, 195, 54, 209, 49, 36, 57, 83, 35, 51, 0, 12,
-			67, 193, 177, 209, 49, 39, 83, 83, 108, 51, 0, 16, 69, 137, 236, 217, 85, 16, 84, 35, 55, 37, 19, 35, 89, 51, 0, 11, 67, 131,
-			17, 209, 50, 36, 81, 108, 51, 0, 11, 67, 128, 177, 209, 50, 36, 89, 108, 51, 0, 11, 67, 125, 243, 192, 65, 35, 65, 35, 72, 0,
-			15, 68, 125, 84, 71, 148, 65, 39, 89, 36, 51, 51, 35, 50, 0, 13, 67, 114, 17, 209, 104, 17, 35, 107, 107, 108, 51, 0, 12, 67,
-			104, 129, 209, 104, 17, 39, 71, 108, 51, 0, 10, 67, 103, 49, 209, 35, 57, 108, 51, 0, 11, 67, 95, 49, 209, 47, 35, 57, 108, 51,
-			0, 12, 67, 79, 49, 209, 89, 35, 57, 57, 108, 51, 0, 11, 67, 74, 17, 209, 88, 36, 107, 108, 51, 0, 11, 67, 61, 225, 209, 72,
-			39, 55, 108, 51, 0, 13, 68, 30, 33, 211, 92, 35, 84, 108, 89, 36, 47, 0, 12, 68, 29, 236, 199, 76, 36, 55, 57, 108, 89, 0,
-			18, 70, 29, 59, 81, 206, 8, 155, 36, 89, 48, 36, 51, 37, 50, 39, 83, 0, 14, 68, 29, 38, 209, 92, 35, 88, 83, 35, 51, 47,
-			36, 0, 12, 68, 28, 212, 199, 76, 36, 107, 89, 108, 89, 0, 0, 18, 70, 182, 36, 83, 133, 17, 200, 48, 40, 51, 89, 39, 107, 51,
-			108, 71, 0, 14, 67, 124, 167, 51, 65, 39, 47, 47, 35, 104, 17, 37, 0, 15, 69, 109, 24, 173, 29, 64, 83, 39, 51, 40, 48, 108,
-			91, 0, 11, 67, 57, 114, 128, 101, 35, 47, 35, 47, 0, 21, 71, 41, 50, 162, 76, 164, 98, 128, 47, 36, 89, 47, 39, 89, 47, 36,
-			51, 39, 50, 0, 19, 70, 32, 252, 224, 137, 60, 222, 71, 36, 72, 37, 50, 84, 35, 89, 37, 55, 0, 0, 13, 68, 193, 66, 135, 68,
-			49, 39, 91, 47, 108, 51, 0, 21, 71, 181, 232, 138, 138, 12, 226, 124, 48, 39, 55, 39, 47, 39, 50, 37, 57, 39, 65, 0, 18, 70,
-			109, 17, 210, 124, 120, 0, 83, 35, 51, 108, 88, 35, 65, 108, 50, 0, 10, 67, 101, 241, 207, 36, 65, 108, 72, 0, 12, 67, 83, 49,
-			207, 91, 35, 57, 57, 108, 72, 0, 13, 68, 74, 24, 135, 68, 88, 36, 107, 84, 108, 51, 0, 12, 68, 63, 56, 135, 68, 72, 37, 84,
-			108, 51, 0, 13, 68, 61, 72, 135, 68, 72, 39, 91, 84, 108, 51, 0, 18, 70, 42, 20, 71, 129, 52, 64, 47, 36, 107, 51, 108, 50,
-			89, 35, 51, 0, 21, 71, 33, 225, 199, 129, 197, 199, 100, 71, 36, 55, 108, 36, 50, 104, 17, 36, 47, 108, 0, 15, 69, 33, 17, 211,
-			29, 48, 71, 35, 51, 35, 89, 108, 89, 0, 12, 68, 32, 116, 135, 68, 71, 108, 88, 108, 51, 0, 17, 71, 30, 39, 162, 29, 230, 82,
-			124, 39, 55, 39, 55, 35, 88, 65, 0, 16, 70, 30, 3, 243, 80, 120, 0, 35, 50, 72, 37, 91, 108, 50, 0, 12, 68, 29, 180, 135,
-			68, 35, 83, 88, 108, 51, 0, 12, 68, 29, 50, 135, 68, 36, 89, 47, 108, 51, 0, 18, 70, 8, 165, 27, 80, 120, 0, 108, 47, 35,
-			91, 83, 36, 91, 108, 50, 0, 0, 13, 68, 195, 56, 138, 136, 49, 37, 57, 39, 47, 39, 0, 22, 72, 193, 18, 34, 135, 51, 209, 28,
-			160, 49, 35, 51, 71, 39, 107, 37, 72, 51, 108, 47, 0, 14, 68, 134, 33, 240, 80, 107, 35, 84, 108, 49, 36, 91, 0, 15, 68, 125,
-			49, 226, 204, 65, 39, 89, 108, 84, 37, 57, 36, 0, 14, 68, 125, 17, 240, 80, 65, 35, 51, 108, 49, 36, 91, 0, 16, 70, 124, 117,
-			51, 129, 24, 128, 65, 108, 91, 37, 50, 51, 39, 0, 17, 69, 63, 20, 113, 82, 0, 72, 36, 81, 35, 51, 81, 39, 91, 50, 0, 12,
-			67, 55, 52, 74, 107, 36, 57, 51, 35, 47, 0, 10, 67, 31, 52, 202, 37, 12, 89, 47, 0, 15, 69, 28, 170, 206, 29, 32, 36, 47,
-			47, 36, 101, 108, 88, 0, 12, 67, 28, 132, 74, 36, 12, 71, 51, 35, 47, 0, 0, 16, 69, 133, 243, 34, 29, 16, 107, 35, 65, 75,
-			35, 84, 108, 51, 0, 16, 69, 127, 60, 83, 29, 16, 65, 36, 57, 81, 39, 89, 108, 51, 0, 16, 69, 125, 50, 148, 29, 16, 65, 39,
-			89, 47, 35, 91, 108, 51, 0, 16, 69, 125, 50, 140, 29, 16, 65, 39, 89, 47, 35, 75, 108, 51, 0, 10, 67, 125, 28, 64, 65, 35,
-			51, 81, 0, 13, 68, 109, 20, 135, 60, 83, 35, 51, 88, 108, 72, 0, 15, 69, 77, 24, 176, 29, 16, 89, 35, 51, 39, 49, 108, 51,
-			0, 10, 67, 63, 52, 240, 72, 37, 89, 49, 0, 23, 72, 32, 119, 17, 29, 230, 94, 137, 240, 71, 108, 104, 17, 36, 51, 39, 55, 39,
-			55, 40, 65, 0, 16, 69, 29, 194, 143, 29, 16, 36, 104, 17, 47, 36, 72, 108, 51, 0, 12, 68, 29, 147, 199, 60, 35, 19, 72, 108,
-			72, 0, 14, 69, 29, 76, 8, 29, 16, 35, 91, 49, 71, 108, 51, 0, 15, 69, 29, 54, 200, 29, 16, 35, 89, 35, 83, 71, 108, 51,
-			0, 0, 15, 69, 194, 3, 48, 30, 32, 49, 39, 50, 75, 49, 108, 84, 0, 17, 70, 181, 49, 224, 60, 116, 128, 48, 35, 89, 35, 50,
-			72, 108, 88, 0, 18, 70, 133, 178, 179, 71, 5, 0, 107, 35, 83, 47, 37, 51, 49, 36, 91, 0, 16, 69, 124, 164, 199, 139, 48, 65,
-			39, 47, 36, 89, 108, 84, 37, 0, 15, 68, 112, 241, 211, 40, 104, 17, 36, 72, 108, 89, 35, 47, 0, 10, 67, 100, 194, 0, 35, 75,
-			35, 71, 0, 16, 69, 78, 12, 91, 69, 64, 89, 35, 50, 81, 83, 35, 51, 91, 0, 13, 68, 77, 236, 211, 40, 89, 39, 55, 89, 37,
-			47, 0, 14, 68, 71, 49, 211, 40, 51, 37, 57, 108, 89, 35, 47, 0, 15, 67, 68, 252, 242, 51, 35, 72, 72, 37, 57, 36, 57, 36,
-			0, 18, 70, 61, 50, 162, 68, 114, 179, 72, 35, 89, 47, 40, 51, 108, 47, 37, 0, 19, 70, 60, 120, 20, 50, 44, 243, 72, 108, 50,
-			36, 91, 6, 75, 40, 37, 12, 0, 14, 68, 56, 129, 211, 40, 101, 36, 71, 108, 89, 35, 47, 0, 17, 70, 33, 17, 219, 68, 116, 128,
-			71, 35, 51, 35, 83, 51, 108, 88, 0, 19, 70, 33, 17, 207, 71, 5, 0, 71, 35, 51, 108, 72, 35, 51, 49, 39, 91, 0, 19, 70,
-			9, 193, 224, 32, 114, 179, 108, 104, 17, 108, 50, 35, 71, 108, 47, 37, 0, 12, 67, 9, 21, 50, 108, 51, 91, 36, 57, 36, 0, 0,
-			19, 70, 61, 71, 224, 40, 120, 0, 72, 39, 91, 65, 35, 50, 36, 47, 108, 50, 0, 15, 69, 56, 120, 34, 28, 240, 101, 108, 50, 36,
-			84, 108, 72, 0, 15, 69, 30, 4, 207, 28, 240, 36, 50, 89, 36, 72, 108, 72, 0, 15, 69, 29, 242, 143, 28, 240, 36, 65, 47, 36,
-			72, 108, 72, 0, 17, 70, 29, 18, 148, 40, 116, 64, 35, 51, 47, 36, 91, 47, 108, 51, 0, 8, 65, 108, 6, 83, 36, 12, 0, 0,
-			18, 70, 133, 252, 224, 198, 44, 192, 107, 36, 65, 37, 50, 81, 84, 36, 57, 0, 12, 67, 131, 49, 202, 50, 37, 57, 57, 108, 47, 0,
-			14, 68, 124, 225, 215, 32, 65, 39, 101, 108, 47, 35, 71, 0, 11, 67, 123, 8, 0, 55, 108, 49, 36, 50, 0, 12, 67, 109, 20, 206,
-			83, 35, 51, 89, 35, 101, 0, 13, 67, 105, 225, 202, 104, 17, 35, 55, 55, 108, 47, 0, 18, 70, 49, 50, 140, 139, 60, 192, 75, 39,
-			89, 47, 39, 75, 40, 37, 12, 0, 14, 69, 32, 116, 79, 30, 0, 71, 108, 51, 72, 108, 50, 0, 12, 68, 28, 228, 71, 48, 36, 101,
-			51, 108, 75, 0, 20, 71, 9, 55, 199, 128, 228, 71, 80, 108, 89, 65, 108, 50, 101, 35, 51, 108, 91, 0, 0, 14, 68, 133, 178, 149,
-			60, 107, 35, 83, 47, 89, 35, 72, 0, 14, 68, 129, 252, 209, 60, 50, 35, 65, 37, 51, 35, 72, 0, 10, 67, 126, 1, 192, 65, 39,
-			50, 108, 0, 18, 70, 109, 24, 160, 132, 115, 192, 83, 39, 51, 40, 50, 35, 107, 108, 72, 0, 18, 70, 76, 168, 135, 131, 49, 209, 89,
-			39, 47, 84, 108, 50, 57, 108, 51, 0, 0, 15, 68, 129, 183, 7, 40, 50, 35, 83, 35, 104, 17, 108, 47, 0, 12, 67, 129, 81, 200,
-			50, 35, 89, 89, 108, 71, 0, 13, 67, 128, 216, 178, 50, 35, 107, 84, 36, 57, 36, 0, 14, 68, 79, 4, 71, 40, 89, 35, 49, 35,
-			51, 108, 47, 0, 12, 68, 78, 40, 7, 40, 89, 39, 50, 108, 47, 0, 14, 68, 71, 6, 71, 40, 51, 35, 49, 35, 19, 108, 47, 0,
-			13, 67, 69, 66, 178, 51, 36, 91, 47, 36, 57, 36, 0, 11, 67, 57, 65, 200, 101, 36, 91, 108, 71, 0, 12, 67, 53, 49, 200, 6,
-			107, 36, 89, 108, 71, 0, 14, 68, 53, 28, 7, 40, 107, 35, 51, 35, 49, 108, 47, 0, 14, 68, 40, 134, 71, 40, 47, 35, 71, 35,
-			19, 108, 47, 0, 15, 67, 33, 204, 242, 71, 35, 104, 17, 37, 57, 36, 57, 36, 0, 18, 70, 33, 68, 79, 137, 50, 128, 71, 35, 91,
-			35, 51, 72, 40, 89, 47, 0, 19, 70, 33, 24, 160, 41, 17, 226, 71, 39, 51, 40, 50, 47, 35, 51, 108, 84, 0, 18, 71, 31, 56,
-			135, 130, 40, 179, 184, 37, 84, 108, 50, 39, 84, 37, 76, 0, 21, 72, 29, 60, 207, 79, 50, 145, 207, 0, 35, 89, 37, 72, 89, 37,
-			47, 51, 37, 49, 0, 0, 11, 67, 137, 226, 135, 84, 39, 55, 47, 108, 0, 12, 67, 133, 236, 199, 107, 36, 55, 37, 57, 108, 0, 13,
-			67, 126, 28, 199, 65, 39, 107, 35, 57, 57, 108, 0, 11, 67, 122, 21, 0, 55, 36, 107, 35, 91, 0, 11, 67, 69, 56, 135, 51, 39,
-			89, 84, 108, 0, 11, 67, 62, 12, 199, 72, 39, 50, 57, 108, 0, 21, 71, 61, 23, 199, 129, 243, 199, 68, 72, 35, 51, 65, 108, 50,
-			65, 35, 72, 108, 51, 0, 19, 71, 42, 34, 135, 123, 50, 135, 68, 47, 39, 47, 108, 55, 37, 47, 108, 51, 0, 11, 67, 33, 27, 71,
-			71, 35, 51, 48, 108, 0, 20, 71, 30, 3, 226, 135, 20, 199, 68, 35, 50, 72, 40, 107, 81, 39, 89, 108, 51, 0, 0, 14, 69, 131,
-			53, 49, 30, 0, 50, 37, 91, 81, 108, 50, 0, 11, 67, 105, 40, 128, 104, 17, 35, 88, 84, 0, 15, 69, 35, 59, 71, 76, 224, 71,
-			37, 48, 108, 89, 39, 101, 0, 12, 68, 29, 149, 71, 32, 35, 19, 89, 108, 71, 0, 23, 73, 29, 60, 7, 128, 252, 224, 30, 44, 192,
-			36, 89, 49, 108, 50, 72, 37, 50, 108, 84, 37, 0, 15, 69, 29, 50, 155, 30, 0, 36, 89, 47, 36, 83, 108, 50, 0, 0, 11, 67,
-			121, 35, 0, 55, 35, 88, 36, 75, 0, 10, 67, 121, 1, 192, 55, 36, 88, 108, 0, 13, 68, 35, 56, 34, 28, 71, 37, 50, 35, 84,
-			108, 0, 13, 68, 29, 50, 162, 28, 39, 89, 47, 39, 84, 108, 0, 12, 68, 28, 161, 226, 28, 39, 47, 108, 84, 108, 0, 0, 12, 67,
-			192, 204, 51, 49, 35, 75, 35, 49, 37, 0, 12, 67, 129, 24, 179, 50, 36, 51, 35, 84, 37, 0, 11, 67, 128, 216, 179, 50, 35, 107,
-			84, 37, 0, 12, 67, 128, 136, 179, 50, 35, 71, 35, 84, 37, 0, 16, 69, 125, 50, 151, 28, 128, 65, 39, 89, 47, 35, 47, 108, 71,
-			0, 16, 69, 125, 50, 140, 28, 128, 65, 39, 89, 47, 35, 75, 108, 71, 0, 12, 67, 125, 24, 179, 65, 35, 51, 35, 84, 37, 0, 18,
-			70, 125, 1, 240, 68, 114, 128, 65, 39, 88, 108, 49, 36, 51, 108, 47, 0, 18, 70, 124, 225, 200, 68, 114, 128, 65, 39, 101, 108, 71,
-			36, 51, 108, 47, 0, 20, 71, 122, 44, 34, 181, 225, 211, 40, 55, 39, 49, 39, 48, 36, 55, 108, 89, 47, 0, 22, 72, 108, 168, 143,
-			206, 1, 223, 207, 0, 83, 39, 47, 39, 72, 37, 50, 108, 65, 37, 49, 0, 12, 67, 101, 194, 0, 35, 12, 104, 17, 35, 71, 0, 20,
-			71, 78, 40, 34, 122, 252, 211, 40, 89, 39, 50, 39, 55, 39, 90, 37, 89, 47, 0, 16, 69, 32, 247, 153, 28, 128, 71, 35, 72, 55,
-			39, 19, 108, 71, 0, 16, 69, 32, 243, 83, 28, 128, 71, 35, 72, 107, 36, 89, 108, 71, 0, 15, 69, 29, 226, 161, 28, 128, 36, 55,
-			47, 36, 107, 108, 71, 0, 0, 14, 67, 125, 84, 71, 65, 39, 89, 36, 51, 51, 35, 50, 0, 11, 67, 74, 20, 71, 88, 35, 107, 51,
-			108, 0, 17, 69, 32, 245, 32, 136, 112, 71, 35, 72, 91, 36, 50, 35, 84, 108, 0, 17, 69, 29, 87, 179, 40, 112, 35, 89, 55, 37,
-			57, 35, 47, 35, 50, 0, 14, 69, 29, 50, 162, 180, 112, 36, 89, 47, 40, 48, 108, 0, 10, 67, 28, 220, 199, 36, 107, 57, 108, 0,
-			0, 14, 68, 193, 236, 226, 204, 49, 39, 55, 57, 35, 84, 37, 0, 10, 67, 132, 116, 109, 107, 108, 51, 48, 0, 15, 69, 108, 168, 148,
-			30, 208, 83, 39, 47, 39, 91, 108, 48, 0, 11, 67, 82, 8, 128, 91, 36, 50, 39, 12, 0, 8, 66, 68, 224, 51, 39, 101, 0, 0,
-			12, 67, 197, 232, 64, 81, 35, 55, 55, 36, 12, 0, 11, 67, 194, 3, 192, 49, 39, 50, 35, 72, 0, 12, 67, 193, 232, 64, 49, 35,
-			55, 55, 36, 12, 0, 12, 67, 185, 232, 64, 76, 36, 55, 55, 36, 12, 0, 12, 67, 181, 232, 64, 48, 36, 55, 55, 36, 12, 0, 10,
-			67, 138, 3, 192, 84, 35, 50, 72, 0, 10, 67, 134, 3, 192, 107, 36, 50, 72, 0, 12, 67, 121, 232, 64, 55, 36, 55, 55, 108, 107,
-			0, 13, 67, 113, 232, 64, 104, 17, 39, 55, 55, 36, 12, 0, 14, 67, 81, 200, 64, 91, 35, 104, 17, 104, 17, 36, 12, 0, 14, 67,
-			53, 200, 64, 107, 39, 104, 17, 104, 17, 36, 12, 0, 11, 67, 45, 200, 64, 89, 36, 104, 17, 36, 0, 14, 67, 41, 200, 64, 47, 35,
-			104, 17, 104, 17, 36, 12, 0, 13, 67, 33, 200, 64, 71, 39, 104, 17, 104, 17, 36, 0, 14, 68, 32, 243, 226, 28, 71, 35, 72, 72,
-			35, 84, 108, 0, 14, 68, 30, 7, 22, 28, 36, 50, 104, 17, 36, 88, 108, 0, 11, 67, 194, 3, 192, 49, 35, 50, 72, 0, 48, 12,
-			67, 194, 3, 192, 49, 39, 50, 35, 72, 0, 46, 23, 5, 217, 135, 46, 217, 130, 107, 36, 75, 51, 37, 57, 36, 9, 104, 35, 65, 35,
-			51, 37, 0, 46, 0, 12, 67, 125, 60, 226, 65, 39, 89, 37, 57, 39, 0, 12, 67, 108, 248, 179, 83, 35, 72, 35, 84, 37, 0, 20,
-			70, 86, 36, 74, 53, 49, 200, 89, 40, 51, 35, 47, 10, 107, 36, 89, 108, 71, 0, 16, 69, 78, 1, 209, 206, 32, 89, 36, 50, 108,
-			51, 37, 57, 39, 0, 10, 67, 75, 59, 98, 88, 37, 48, 39, 0, 13, 67, 61, 27, 115, 72, 35, 51, 48, 36, 57, 36, 0, 11, 67,
-			61, 18, 128, 72, 35, 51, 35, 47, 0, 10, 67, 57, 66, 128, 101, 36, 91, 47, 0, 0, 17, 69, 193, 231, 200, 204, 112, 49, 39, 55,
-			39, 65, 71, 37, 57, 108, 0, 11, 67, 192, 136, 143, 49, 35, 71, 40, 72, 0, 11, 67, 187, 12, 207, 76, 36, 49, 37, 72, 0, 11,
-			67, 126, 7, 192, 65, 35, 50, 35, 65, 0, 19, 69, 125, 50, 159, 68, 112, 65, 39, 89, 47, 35, 65, 36, 51, 51, 35, 50, 0, 16,
-			69, 123, 50, 17, 204, 112, 55, 37, 71, 36, 51, 37, 57, 108, 0, 11, 67, 77, 188, 207, 89, 36, 83, 37, 72, 0, 12, 67, 69, 66,
-			161, 51, 36, 91, 47, 36, 12, 0, 15, 69, 50, 36, 76, 204, 112, 75, 39, 51, 75, 37, 57, 108, 0, 11, 67, 42, 12, 207, 47, 35,
-			50, 37, 72, 0, 42, 79, 33, 55, 199, 121, 232, 71, 121, 19, 95, 128, 119, 145, 55, 55, 192, 71, 36, 89, 65, 36, 55, 55, 108, 107,
-			36, 51, 51, 35, 107, 65, 108, 50, 36, 51, 51, 35, 107, 37, 65, 0, 13, 69, 30, 36, 135, 192, 112, 39, 88, 108, 49, 108, 0, 15,
-			69, 29, 50, 141, 72, 112, 36, 89, 47, 36, 107, 88, 108, 0, 16, 69, 28, 231, 135, 112, 112, 35, 101, 55, 108, 104, 17, 35, 50, 0,
-			10, 67, 28, 167, 192, 35, 47, 39, 65, 0, 0, 11, 67, 192, 168, 160, 49, 35, 47, 40, 50, 0, 14, 68, 183, 52, 98, 204, 48, 36,
-			57, 51, 35, 84, 37, 0, 12, 67, 137, 54, 74, 84, 39, 89, 19, 35, 47, 0, 12, 67, 132, 196, 74, 107, 36, 75, 51, 35, 47, 0,
-			12, 67, 129, 84, 74, 50, 39, 89, 51, 35, 47, 0, 13, 68, 127, 52, 98, 204, 65, 37, 51, 35, 84, 37, 0, 14, 68, 126, 2, 155,
-			204, 65, 39, 50, 47, 35, 83, 37, 0, 11, 67, 125, 88, 160, 65, 35, 89, 40, 50, 0, 13, 68, 124, 120, 98, 204, 65, 108, 107, 39,
-			84, 37, 0, 12, 67, 77, 22, 74, 89, 39, 51, 19, 35, 47, 0, 13, 68, 42, 44, 51, 136, 47, 39, 49, 37, 57, 39, 0, 15, 69,
-			10, 11, 160, 30, 0, 108, 50, 76, 36, 50, 108, 50, 0, 0, 11, 67, 197, 28, 223, 81, 36, 51, 37, 65, 0, 13, 68, 181, 20, 243,
-			60, 48, 39, 51, 89, 37, 72, 0, 14, 68, 130, 7, 226, 60, 50, 35, 50, 36, 65, 40, 72, 0, 10, 67, 78, 36, 240, 89, 40, 89,
-			49, 0, 10, 67, 71, 52, 240, 51, 37, 89, 49, 0, 10, 67, 69, 40, 64, 51, 35, 88, 36, 0, 24, 73, 48, 252, 207, 29, 225, 205,
-			60, 114, 192, 75, 35, 72, 37, 72, 39, 55, 36, 107, 72, 108, 89, 0, 14, 67, 41, 88, 155, 47, 35, 89, 35, 84, 84, 39, 83, 0,
-			15, 68, 41, 56, 179, 132, 47, 35, 89, 84, 37, 57, 36, 12, 0, 11, 67, 33, 40, 64, 71, 36, 88, 36, 107, 0, 11, 67, 29, 59,
-			95, 36, 89, 48, 35, 65, 0, 0, 10, 67, 194, 44, 222, 49, 39, 57, 55, 0, 10, 67, 194, 2, 128, 49, 39, 50, 47, 0, 13, 68,
-			180, 114, 162, 112, 48, 108, 47, 39, 104, 17, 0, 13, 68, 127, 55, 226, 128, 65, 36, 57, 65, 40, 50, 0, 11, 67, 126, 232, 158, 65,
-			39, 76, 40, 55, 0, 14, 67, 125, 148, 8, 65, 39, 19, 35, 88, 88, 35, 71, 0, 15, 68, 125, 145, 212, 112, 65, 39, 19, 108, 91,
-			36, 104, 17, 0, 13, 68, 125, 103, 226, 128, 65, 35, 88, 65, 40, 50, 0, 14, 68, 124, 118, 226, 112, 65, 108, 83, 39, 12, 104, 17,
-			0, 9, 67, 122, 34, 0, 55, 39, 71, 0, 12, 68, 108, 124, 98, 40, 83, 108, 81, 39, 47, 0, 14, 68, 105, 231, 226, 128, 104, 17,
-			36, 55, 65, 40, 50, 0, 15, 69, 83, 1, 209, 187, 48, 91, 36, 49, 108, 51, 76, 37, 0, 11, 67, 81, 156, 200, 91, 39, 35, 57,
-			71, 0, 11, 67, 75, 28, 222, 88, 36, 81, 37, 55, 0, 14, 68, 74, 35, 51, 128, 88, 39, 12, 75, 36, 57, 50, 0, 15, 69, 70,
-			35, 98, 91, 48, 51, 40, 107, 39, 12, 88, 37, 0, 11, 67, 57, 248, 158, 101, 35, 65, 40, 55, 0, 14, 68, 53, 19, 226, 128, 107,
-			36, 51, 72, 39, 84, 50, 0, 14, 68, 40, 129, 243, 128, 47, 35, 71, 108, 57, 39, 50, 0, 13, 69, 35, 52, 199, 206, 32, 71, 37,
-			89, 108, 39, 0, 13, 68, 34, 19, 243, 128, 71, 36, 107, 72, 37, 50, 0, 13, 68, 34, 4, 134, 128, 71, 36, 50, 88, 37, 50, 0,
-			11, 67, 32, 168, 158, 71, 35, 47, 40, 55, 0, 12, 67, 9, 28, 222, 108, 51, 37, 57, 36, 55, 0, 0, 17, 70, 130, 44, 51, 80,
-			120, 0, 50, 39, 12, 49, 37, 91, 108, 50, 0, 13, 67, 129, 60, 225, 50, 36, 89, 37, 57, 36, 12, 0, 11, 67, 126, 36, 79, 65,
-			39, 51, 36, 72, 0, 12, 67, 125, 180, 79, 65, 39, 83, 51, 35, 72, 0, 17, 68, 124, 162, 17, 192, 65, 39, 47, 36, 71, 35, 51,
-			51, 36, 49, 0, 13, 67, 113, 232, 161, 104, 17, 39, 55, 84, 36, 12, 0, 16, 69, 109, 23, 199, 204, 240, 83, 35, 51, 65, 108, 57,
-			35, 72, 0, 14, 68, 105, 100, 98, 108, 104, 17, 39, 88, 51, 40, 83, 0, 13, 67, 82, 8, 161, 91, 36, 50, 35, 84, 36, 12, 0,
-			13, 67, 61, 21, 79, 72, 35, 51, 6, 89, 35, 72, 0, 11, 67, 57, 187, 161, 101, 35, 83, 76, 36, 0, 0, 11, 67, 187, 24, 160,
-			76, 36, 81, 40, 50, 0, 15, 69, 182, 36, 84, 204, 224, 48, 40, 51, 91, 36, 57, 101, 0, 13, 68, 133, 7, 162, 120, 107, 39, 88,
-			55, 40, 55, 0, 14, 67, 128, 136, 138, 50, 35, 71, 39, 84, 84, 35, 47, 0, 11, 67, 123, 24, 0, 55, 35, 81, 35, 50, 0, 19,
-			71, 122, 44, 34, 126, 34, 179, 136, 55, 39, 49, 39, 65, 39, 47, 37, 84, 0, 15, 68, 120, 119, 213, 32, 55, 108, 65, 35, 89, 89,
-			35, 71, 0, 12, 67, 85, 241, 218, 89, 39, 65, 108, 104, 17, 0, 13, 67, 85, 188, 224, 89, 36, 83, 83, 36, 57, 50, 0, 11, 67,
-			81, 167, 128, 91, 39, 104, 17, 55, 0, 12, 67, 77, 241, 218, 89, 39, 65, 108, 104, 17, 0, 12, 67, 70, 36, 160, 51, 39, 12, 88,
-			35, 50, 0, 12, 67, 61, 167, 128, 72, 35, 104, 17, 35, 55, 0, 12, 67, 57, 236, 220, 101, 35, 55, 37, 104, 17, 0, 11, 67, 34,
-			37, 32, 71, 40, 91, 35, 50, 0, 17, 70, 34, 20, 145, 29, 156, 192, 71, 36, 107, 88, 36, 51, 108, 37, 0, 12, 67, 33, 167, 128,
-			71, 35, 104, 17, 35, 55, 0, 15, 69, 32, 252, 98, 80, 160, 71, 35, 72, 81, 40, 91, 47, 0, 10, 67, 30, 44, 224, 36, 84, 37,
-			50, 0, 10, 67, 30, 36, 160, 39, 88, 39, 50, 0, 11, 67, 9, 167, 128, 108, 104, 17, 39, 55, 0, 0, 14, 68, 197, 225, 243, 132,
-			81, 36, 55, 108, 57, 36, 12, 0, 14, 68, 133, 19, 226, 60, 107, 36, 51, 39, 72, 39, 72, 0, 11, 67, 128, 252, 223, 50, 35, 72,
-			37, 65, 0, 10, 67, 120, 124, 219, 55, 108, 57, 83, 0, 13, 68, 120, 119, 209, 60, 55, 108, 65, 36, 51, 72, 0, 11, 67, 120, 116,
-			159, 55, 108, 88, 36, 65, 0, 14, 68, 110, 36, 179, 132, 83, 40, 88, 37, 57, 36, 12, 0, 11, 67, 101, 236, 240, 35, 55, 36, 57,
-			49, 0, 10, 67, 89, 20, 192, 88, 36, 51, 89, 0, 16, 70, 72, 115, 226, 70, 35, 192, 88, 108, 72, 39, 51, 40, 72, 0, 17, 70,
-			62, 40, 19, 43, 51, 192, 72, 40, 50, 36, 89, 47, 37, 72, 0, 14, 68, 61, 242, 17, 196, 72, 39, 65, 71, 35, 51, 81, 0, 10,
-			67, 57, 20, 192, 101, 36, 51, 89, 0, 11, 67, 53, 24, 159, 107, 35, 51, 40, 65, 0, 11, 67, 53, 20, 192, 107, 35, 51, 35, 89,
-			0, 13, 68, 42, 2, 51, 132, 47, 35, 50, 71, 37, 107, 0, 14, 68, 41, 28, 51, 60, 47, 36, 51, 36, 49, 37, 72, 0, 10, 67,
-			29, 20, 192, 35, 51, 35, 89, 0, 0, 10, 67, 197, 20, 128, 81, 39, 51, 88, 0, 12, 68, 196, 119, 162, 128, 81, 108, 55, 39, 50,
-			0, 10, 67, 181, 20, 128, 48, 39, 51, 88, 0, 13, 68, 137, 23, 226, 40, 84, 36, 51, 65, 40, 47, 0, 12, 67, 125, 149, 158, 65,
-			39, 19, 88, 35, 55, 0, 13, 68, 109, 17, 162, 128, 83, 36, 51, 19, 39, 50, 0, 15, 68, 84, 241, 220, 40, 89, 36, 72, 108, 104,
-			17, 35, 47, 0, 16, 68, 77, 27, 173, 112, 89, 35, 51, 76, 39, 48, 39, 104, 17, 0, 18, 70, 77, 17, 224, 197, 66, 128, 89, 35,
-			51, 35, 50, 81, 39, 91, 47, 0, 11, 67, 76, 140, 222, 89, 36, 71, 37, 55, 0, 13, 68, 75, 50, 162, 128, 88, 36, 57, 47, 40,
-			50, 0, 14, 68, 53, 225, 226, 40, 107, 35, 55, 108, 84, 35, 47, 0, 7, 66, 42, 32, 47, 39, 0, 14, 67, 41, 248, 158, 47, 35,
-			65, 35, 84, 84, 39, 55, 0, 13, 68, 41, 183, 162, 128, 47, 36, 83, 55, 39, 50, 0, 15, 67, 40, 236, 222, 47, 35, 101, 35, 6,
-			57, 57, 39, 55, 0, 14, 67, 40, 216, 158, 47, 35, 107, 35, 84, 84, 39, 55, 0, 22, 72, 29, 50, 145, 29, 50, 34, 71, 0, 36,
-			89, 47, 36, 51, 108, 89, 71, 39, 51, 49, 0, 13, 68, 10, 7, 34, 40, 108, 50, 104, 17, 40, 47, 0, 8, 66, 42, 32, 47, 39,
-			0, 76, 15, 6, 95, 114, 111, 109, 97, 110, 36, 51, 39, 65, 37, 10, 0, 0, 19, 70, 194, 28, 115, 122, 44, 225, 49, 39, 107, 81,
-			37, 55, 40, 57, 36, 12, 0, 17, 69, 193, 225, 226, 206, 16, 49, 36, 55, 108, 84, 37, 57, 36, 12, 0, 17, 70, 181, 19, 199, 75,
-			55, 192, 48, 35, 51, 72, 108, 88, 37, 65, 0, 14, 69, 135, 50, 17, 204, 240, 107, 37, 71, 51, 37, 72, 0, 19, 70, 126, 12, 210,
-			206, 39, 192, 65, 35, 50, 57, 35, 88, 37, 57, 39, 65, 0, 11, 67, 126, 5, 0, 65, 35, 50, 36, 91, 0, 15, 68, 124, 210, 148,
-			124, 65, 39, 107, 47, 35, 91, 35, 65, 0, 12, 67, 113, 181, 64, 104, 17, 35, 83, 35, 89, 0, 16, 69, 109, 24, 176, 68, 240, 83,
-			39, 51, 40, 49, 35, 51, 72, 0, 15, 69, 79, 1, 209, 204, 240, 89, 36, 49, 35, 51, 37, 72, 0, 15, 69, 70, 44, 240, 68, 240,
-			51, 40, 57, 49, 35, 51, 72, 0, 11, 67, 61, 52, 64, 72, 36, 89, 36, 51, 0, 15, 69, 60, 117, 8, 68, 240, 72, 108, 91, 71,
-			39, 51, 72, 0, 14, 68, 53, 231, 34, 124, 107, 39, 55, 104, 17, 40, 65, 0, 15, 68, 41, 18, 51, 124, 47, 36, 51, 71, 37, 57,
-			39, 65, 0, 18, 70, 33, 232, 145, 120, 124, 225, 71, 40, 55, 40, 51, 55, 108, 57, 36, 0, 20, 70, 33, 232, 15, 180, 124, 225, 71,
-			39, 55, 35, 50, 72, 48, 108, 57, 36, 12, 0, 11, 67, 33, 52, 64, 71, 36, 89, 35, 51, 0, 17, 69, 33, 24, 136, 186, 16, 71,
-			35, 51, 39, 71, 35, 76, 76, 36, 0, 19, 70, 33, 17, 207, 69, 40, 0, 71, 35, 51, 108, 72, 35, 51, 88, 35, 50, 0, 13, 68,
-			32, 242, 34, 124, 71, 35, 72, 71, 40, 65, 0, 16, 70, 31, 56, 46, 131, 56, 0, 37, 50, 76, 36, 50, 37, 50, 0, 12, 68, 29,
-			244, 199, 192, 36, 65, 89, 108, 49, 0, 13, 68, 29, 200, 34, 124, 39, 104, 17, 50, 40, 65, 0, 18, 70, 11, 8, 135, 71, 55, 192,
-			108, 49, 84, 108, 51, 37, 57, 39, 65, 0, 0, 13, 68, 193, 51, 162, 120, 49, 39, 89, 101, 39, 55, 0, 13, 68, 125, 151, 162, 120,
-			65, 35, 19, 55, 40, 55, 0, 11, 67, 109, 28, 210, 83, 37, 51, 37, 88, 0, 13, 67, 105, 241, 214, 104, 17, 35, 65, 65, 108, 88,
-			0, 14, 69, 79, 51, 209, 204, 160, 89, 37, 72, 51, 37, 47, 0, 14, 68, 69, 1, 243, 120, 51, 35, 88, 108, 19, 36, 55, 0, 11,
-			67, 62, 37, 18, 72, 40, 91, 36, 88, 0, 12, 68, 29, 55, 162, 32, 39, 89, 55, 40, 71, 0, 19, 70, 9, 227, 211, 41, 24, 160,
-			108, 55, 72, 39, 89, 47, 36, 51, 39, 50, 0, 8, 66, 30, 224, 36, 76, 0, 46, 0, 14, 68, 185, 71, 209, 76, 76, 36, 91, 65,
-			51, 35, 89, 0, 15, 69, 183, 52, 110, 81, 240, 48, 37, 51, 76, 36, 91, 65, 0, 17, 70, 181, 24, 176, 79, 51, 192, 48, 36, 51,
-			39, 49, 89, 37, 72, 0, 16, 69, 181, 19, 199, 73, 240, 48, 35, 51, 72, 108, 88, 35, 65, 0, 16, 69, 130, 36, 110, 81, 240, 50,
-			40, 51, 36, 76, 36, 91, 65, 0, 10, 67, 129, 244, 192, 50, 36, 65, 89, 0, 14, 67, 127, 4, 81, 65, 39, 49, 35, 51, 51, 35,
-			51, 0, 14, 67, 125, 134, 209, 65, 39, 88, 35, 83, 83, 35, 51, 0, 12, 67, 113, 81, 213, 104, 17, 36, 89, 108, 89, 0, 15, 69,
-			74, 35, 225, 89, 240, 88, 40, 72, 107, 35, 88, 65, 0, 17, 69, 74, 20, 110, 81, 240, 88, 35, 107, 51, 36, 76, 36, 91, 65, 0,
-			15, 69, 63, 52, 97, 89, 240, 72, 37, 51, 107, 35, 88, 65, 0, 18, 70, 51, 20, 113, 137, 72, 64, 75, 36, 81, 35, 51, 81, 40,
-			91, 36, 0, 11, 67, 40, 123, 145, 47, 108, 76, 36, 51, 0, 18, 70, 33, 232, 159, 33, 28, 64, 71, 36, 55, 39, 65, 71, 36, 51,
-			81, 0, 16, 70, 28, 168, 176, 79, 51, 192, 36, 47, 39, 49, 89, 37, 72, 0, 15, 69, 28, 132, 115, 81, 240, 35, 71, 51, 37, 91,
-			35, 65, 0, 0, 20, 70, 185, 161, 210, 128, 140, 222, 76, 39, 104, 17, 108, 88, 35, 50, 71, 37, 55, 0, 13, 68, 181, 24, 115, 72,
-			48, 35, 51, 107, 37, 88, 0, 14, 69, 127, 51, 176, 136, 128, 65, 37, 101, 49, 40, 71, 0, 14, 69, 126, 39, 176, 137, 224, 65, 39,
-			55, 49, 40, 55, 0, 17, 70, 122, 6, 226, 79, 50, 128, 55, 35, 50, 83, 39, 89, 37, 47, 0, 15, 69, 120, 120, 149, 137, 224, 55,
-			108, 84, 39, 89, 40, 55, 0, 15, 69, 114, 40, 19, 137, 224, 104, 17, 39, 50, 89, 40, 55, 0, 11, 67, 113, 114, 0, 104, 17, 39,
-			47, 71, 0, 13, 67, 61, 236, 20, 6, 72, 36, 55, 49, 35, 91, 0, 20, 71, 30, 216, 146, 205, 60, 226, 128, 39, 48, 39, 88, 37,
-			89, 37, 57, 39, 50, 0, 18, 70, 29, 226, 155, 30, 34, 128, 39, 47, 47, 35, 83, 108, 84, 39, 47, 0, 10, 65, 104, 6, 104, 17,
-			36, 57, 50, 0, 0, 16, 69, 195, 56, 159, 69, 48, 49, 37, 57, 40, 65, 35, 51, 89, 0, 11, 67, 124, 220, 215, 65, 39, 107, 37,
-			47, 0, 12, 67, 81, 241, 211, 91, 35, 65, 65, 108, 89, 0, 15, 68, 81, 24, 162, 68, 91, 36, 51, 51, 39, 84, 36, 51, 0, 15,
-			69, 79, 56, 10, 193, 48, 89, 37, 50, 47, 35, 49, 89, 0, 13, 68, 34, 40, 21, 68, 71, 40, 50, 35, 89, 51, 0, 14, 68, 33,
-			230, 162, 68, 71, 35, 55, 104, 17, 40, 51, 0, 12, 68, 31, 54, 162, 68, 37, 104, 17, 40, 51, 0, 14, 69, 30, 3, 243, 193, 48,
-			35, 50, 72, 37, 49, 89, 0, 0, 13, 68, 194, 36, 98, 80, 49, 40, 6, 51, 40, 91, 0, 15, 69, 193, 66, 136, 30, 0, 49, 36,
-			91, 47, 71, 108, 50, 0, 11, 67, 190, 8, 128, 90, 36, 50, 36, 84, 0, 13, 68, 131, 49, 243, 204, 50, 35, 57, 108, 37, 12, 0,
-			10, 67, 126, 8, 128, 65, 36, 50, 39, 0, 15, 68, 126, 1, 220, 80, 65, 39, 50, 108, 104, 17, 36, 91, 0, 14, 68, 124, 184, 34,
-			204, 65, 35, 89, 50, 35, 84, 37, 0, 13, 67, 113, 251, 82, 104, 17, 39, 65, 48, 39, 88, 0, 11, 67, 106, 8, 128, 104, 17, 39,
-			50, 40, 0, 12, 67, 94, 1, 210, 47, 35, 50, 50, 108, 88, 0, 11, 67, 70, 8, 128, 51, 36, 50, 39, 12, 0, 17, 69, 52, 248,
-			159, 69, 32, 107, 35, 72, 72, 39, 65, 35, 51, 88, 0, 16, 69, 41, 24, 155, 69, 32, 47, 35, 51, 39, 83, 36, 51, 88, 0, 18,
-			70, 29, 248, 158, 79, 56, 160, 36, 65, 39, 55, 89, 37, 57, 39, 50, 0, 27, 74, 29, 236, 10, 70, 37, 51, 127, 49, 243, 204, 36,
-			55, 36, 49, 47, 36, 51, 39, 91, 37, 65, 37, 57, 37, 0, 19, 70, 29, 231, 211, 31, 55, 128, 19, 35, 55, 65, 35, 89, 108, 19,
-			36, 55, 0, 18, 70, 29, 200, 160, 205, 120, 160, 39, 104, 17, 40, 50, 37, 47, 40, 50, 0, 0, 11, 67, 197, 49, 209, 81, 39, 89,
-			108, 51, 0, 19, 70, 136, 114, 145, 181, 24, 155, 84, 108, 47, 36, 51, 48, 39, 51, 40, 83, 0, 12, 68, 128, 119, 226, 76, 50, 108,
-			65, 40, 89, 0, 11, 67, 124, 204, 209, 65, 39, 75, 37, 51, 0, 12, 67, 113, 81, 209, 104, 17, 36, 89, 108, 51, 0, 11, 67, 94,
-			24, 145, 47, 35, 107, 40, 51, 0, 12, 68, 78, 36, 243, 76, 89, 39, 89, 37, 89, 0, 18, 70, 69, 180, 71, 128, 248, 159, 51, 36,
-			83, 51, 108, 50, 72, 39, 65, 0, 10, 67, 62, 12, 64, 72, 39, 50, 81, 0, 11, 67, 53, 81, 209, 107, 36, 89, 108, 51, 0, 11,
-			67, 32, 216, 145, 71, 39, 107, 40, 51, 0, 17, 70, 29, 204, 199, 130, 36, 192, 39, 104, 17, 57, 108, 50, 40, 89, 0, 21, 71, 29,
-			50, 145, 29, 50, 17, 196, 36, 89, 47, 36, 51, 108, 89, 71, 39, 51, 81, 0, 0, 21, 71, 194, 8, 135, 129, 60, 226, 128, 49, 39,
-			50, 84, 108, 50, 89, 37, 57, 39, 50, 0, 11, 67, 182, 36, 148, 48, 40, 88, 36, 91, 0, 15, 69, 180, 119, 135, 205, 64, 48, 108,
-			55, 108, 57, 36, 91, 0, 16, 69, 134, 3, 226, 193, 64, 107, 36, 50, 72, 39, 49, 39, 91, 0, 14, 68, 125, 145, 209, 88, 65, 39,
-			19, 108, 51, 36, 88, 0, 11, 67, 125, 22, 128, 65, 39, 51, 104, 17, 0, 11, 67, 80, 116, 84, 91, 108, 51, 36, 91, 0, 16, 69,
-			63, 20, 72, 29, 64, 72, 36, 81, 35, 51, 71, 108, 91, 0, 11, 67, 56, 116, 84, 101, 108, 51, 36, 91, 0, 12, 67, 34, 6, 212,
-			71, 35, 50, 35, 83, 91, 0, 16, 69, 32, 114, 156, 139, 48, 71, 108, 47, 35, 104, 17, 84, 108, 0, 0, 6, 20, 96, 6, 0, 0,
-			48, 0, 0, 0, 240, 6, 0, 0, 48, 0, 0, 0, 241, 6, 0, 0, 49, 0, 0, 0, 97, 6, 0, 0, 49, 0, 0, 0, 98, 6,
-			0, 0, 50, 0, 0, 0, 242, 6, 0, 0, 50, 0, 0, 0, 99, 6, 0, 0, 51, 0, 0, 0, 243, 6, 0, 0, 51, 0, 0, 0,
-			100, 6, 0, 0, 52, 0, 0, 0, 244, 6, 0, 0, 52, 0, 0, 0, 101, 6, 0, 0, 53, 0, 0, 0, 245, 6, 0, 0, 53, 0,
-			0, 0, 102, 6, 0, 0, 54, 0, 0, 0, 246, 6, 0, 0, 54, 0, 0, 0, 103, 6, 0, 0, 55, 0, 0, 0, 247, 6, 0, 0,
-			55, 0, 0, 0, 104, 6, 0, 0, 56, 0, 0, 0, 248, 6, 0, 0, 56, 0, 0, 0, 105, 6, 0, 0, 57, 0, 0, 0, 249, 6,
-			0, 0, 57, 0, 0, 0, 106, 6, 0, 0, 37, 0, 0, 0, 84, 6, 0, 0, 116, 6, 0, 0, 74, 6, 0, 0, 204, 6, 0, 0,
-			129, 254, 0, 0, 34, 6, 0, 0, 141, 254, 0, 0, 39, 6, 0, 0, 142, 254, 0, 0, 39, 6, 0, 0, 132, 254, 0, 0, 35, 6,
-			0, 0, 143, 254, 0, 0, 40, 6, 0, 0, 144, 254, 0, 0, 40, 6, 0, 0, 145, 254, 0, 0, 40, 6, 0, 0, 146, 254, 0, 0,
-			40, 6, 0, 0, 86, 251, 0, 0, 126, 6, 0, 0, 87, 251, 0, 0, 126, 6, 0, 0, 88, 251, 0, 0, 126, 6, 0, 0, 89, 251,
-			0, 0, 126, 6, 0, 0, 149, 254, 0, 0, 42, 6, 0, 0, 150, 254, 0, 0, 42, 6, 0, 0, 151, 254, 0, 0, 42, 6, 0, 0,
-			152, 254, 0, 0, 42, 6, 0, 0, 154, 254, 0, 0, 43, 6, 0, 0, 155, 254, 0, 0, 43, 6, 0, 0, 156, 254, 0, 0, 43, 6,
-			0, 0, 157, 254, 0, 0, 44, 6, 0, 0, 158, 254, 0, 0, 44, 6, 0, 0, 160, 254, 0, 0, 44, 6, 0, 0, 159, 254, 0, 0,
-			44, 6, 0, 0, 123, 251, 0, 0, 134, 6, 0, 0, 124, 251, 0, 0, 134, 6, 0, 0, 125, 251, 0, 0, 134, 6, 0, 0, 162, 254,
-			0, 0, 45, 6, 0, 0, 163, 254, 0, 0, 45, 6, 0, 0, 164, 254, 0, 0, 45, 6, 0, 0, 165, 254, 0, 0, 46, 6, 0, 0,
-			166, 254, 0, 0, 46, 6, 0, 0, 167, 254, 0, 0, 46, 6, 0, 0, 168, 254, 0, 0, 46, 6, 0, 0, 169, 254, 0, 0, 47, 6,
-			0, 0, 170, 254, 0, 0, 47, 6, 0, 0, 171, 254, 0, 0, 48, 6, 0, 0, 172, 254, 0, 0, 48, 6, 0, 0, 173, 254, 0, 0,
-			49, 6, 0, 0, 174, 254, 0, 0, 49, 6, 0, 0, 175, 254, 0, 0, 50, 6, 0, 0, 176, 254, 0, 0, 50, 6, 0, 0, 138, 251,
-			0, 0, 152, 6, 0, 0, 139, 251, 0, 0, 152, 6, 0, 0, 177, 254, 0, 0, 51, 6, 0, 0, 178, 254, 0, 0, 51, 6, 0, 0,
-			179, 254, 0, 0, 51, 6, 0, 0, 180, 254, 0, 0, 51, 6, 0, 0, 181, 254, 0, 0, 52, 6, 0, 0, 182, 254, 0, 0, 52, 6,
-			0, 0, 183, 254, 0, 0, 52, 6, 0, 0, 184, 254, 0, 0, 52, 6, 0, 0, 185, 254, 0, 0, 53, 6, 0, 0, 186, 254, 0, 0,
-			53, 6, 0, 0, 187, 254, 0, 0, 53, 6, 0, 0, 188, 254, 0, 0, 53, 6, 0, 0, 189, 254, 0, 0, 54, 6, 0, 0, 191, 254,
-			0, 0, 54, 6, 0, 0, 192, 254, 0, 0, 54, 6, 0, 0, 193, 254, 0, 0, 55, 6, 0, 0, 194, 254, 0, 0, 55, 6, 0, 0,
-			195, 254, 0, 0, 55, 6, 0, 0, 196, 254, 0, 0, 55, 6, 0, 0, 199, 254, 0, 0, 56, 6, 0, 0, 200, 254, 0, 0, 56, 6,
-			0, 0, 201, 254, 0, 0, 57, 6, 0, 0, 202, 254, 0, 0, 57, 6, 0, 0, 203, 254, 0, 0, 57, 6, 0, 0, 204, 254, 0, 0,
-			57, 6, 0, 0, 205, 254, 0, 0, 58, 6, 0, 0, 206, 254, 0, 0, 58, 6, 0, 0, 207, 254, 0, 0, 58, 6, 0, 0, 208, 254,
-			0, 0, 58, 6, 0, 0, 209, 254, 0, 0, 65, 6, 0, 0, 210, 254, 0, 0, 65, 6, 0, 0, 211, 254, 0, 0, 65, 6, 0, 0,
-			212, 254, 0, 0, 65, 6, 0, 0, 213, 254, 0, 0, 66, 6, 0, 0, 214, 254, 0, 0, 66, 6, 0, 0, 215, 254, 0, 0, 66, 6,
-			0, 0, 216, 254, 0, 0, 66, 6, 0, 0, 67, 6, 0, 0, 169, 6, 0, 0, 142, 251, 0, 0, 169, 6, 0, 0, 143, 251, 0, 0,
-			169, 6, 0, 0, 144, 251, 0, 0, 169, 6, 0, 0, 145, 251, 0, 0, 169, 6, 0, 0, 219, 254, 0, 0, 169, 6, 0, 0, 218, 254,
-			0, 0, 169, 6, 0, 0, 220, 254, 0, 0, 169, 6, 0, 0, 146, 251, 0, 0, 175, 6, 0, 0, 147, 251, 0, 0, 175, 6, 0, 0,
-			148, 251, 0, 0, 175, 6, 0, 0, 149, 251, 0, 0, 175, 6, 0, 0, 221, 254, 0, 0, 68, 6, 0, 0, 222, 254, 0, 0, 68, 6,
-			0, 0, 223, 254, 0, 0, 68, 6, 0, 0, 224, 254, 0, 0, 68, 6, 0, 0, 225, 254, 0, 0, 69, 6, 0, 0, 226, 254, 0, 0,
-			69, 6, 0, 0, 227, 254, 0, 0, 69, 6, 0, 0, 228, 254, 0, 0, 69, 6, 0, 0, 229, 254, 0, 0, 70, 6, 0, 0, 230, 254,
-			0, 0, 70, 6, 0, 0, 231, 254, 0, 0, 70, 6, 0, 0, 232, 254, 0, 0, 70, 6, 0, 0, 237, 254, 0, 0, 72, 6, 0, 0,
-			238, 254, 0, 0, 72, 6, 0, 0, 190, 6, 0, 0, 71, 6, 0, 0, 213, 6, 0, 0, 71, 6, 0, 0, 233, 254, 0, 0, 71, 6,
-			0, 0, 234, 254, 0, 0, 71, 6, 0, 0, 235, 254, 0, 0, 71, 6, 0, 0, 236, 254, 0, 0, 71, 6, 0, 0, 73, 6, 0, 0,
-			204, 6, 0, 0, 205, 6, 0, 0, 204, 6, 0, 0, 252, 251, 0, 0, 204, 6, 0, 0, 253, 251, 0, 0, 204, 6, 0, 0, 254, 251,
-			0, 0, 204, 6, 0, 0, 255, 251, 0, 0, 204, 6, 0, 0, 240, 254, 0, 0, 204, 6, 0, 0, 241, 254, 0, 0, 204, 6, 0, 0,
-			242, 254, 0, 0, 204, 6, 0, 0, 243, 254, 0, 0, 204, 6, 0, 0, 244, 254, 0, 0, 204, 6, 0, 0, 239, 254, 0, 0, 204, 6,
-			0, 0, 251, 254, 0, 0, 68, 6, 39, 6, 252, 254, 0, 0, 68, 6, 39, 6, 148, 254, 0, 0, 41, 6, 0, 0, 139, 254, 0, 0,
-			38, 6, 0, 0, 140, 254, 0, 0, 38, 6, 0, 0, 134, 254, 0, 0, 36, 6, 0, 0, 128, 254, 0, 0, 33, 6, 0, 0, 122, 254,
-			0, 0, 80, 6, 0, 0, 121, 6, 0, 0, 42, 6, 0, 0, 136, 6, 0, 0, 47, 6, 0, 0, 145, 6, 0, 0, 49, 6, 0, 0,
-			193, 6, 0, 0, 71, 6, 0, 0, 169, 251, 0, 0, 71, 6, 0, 0, 168, 251, 0, 0, 71, 6, 0, 0, 210, 6, 0, 0, 204, 6,
-			0, 0, 186, 6, 0, 0, 70, 6, 0, 0, 195, 6, 0, 0, 42, 6, 0, 0, 194, 6, 0, 0, 71, 6, 0, 0, 211, 6, 0, 0,
-			204, 6, 0, 0, 0, 0, 0, 0, 6, 18, 66, 216, 162, 0, 216, 167, 0, 219, 140, 0, 217, 138, 0, 217, 136, 0, 7, 6, 18, 67,
-			217, 142, 0, 217, 143, 0, 217, 144, 0, 217, 146, 0, 217, 139, 0, 217, 140, 0, 217, 141, 0, 217, 145, 0, 216, 164, 0, 216, 163, 0,
-			216, 165, 0, 216, 161, 0, 219, 128, 0, 7, 6, 18, 68, 216, 168, 0, 217, 190, 0, 216, 170, 0, 216, 171, 0, 216, 172, 0, 218, 134,
-			0, 216, 173, 0, 216, 174, 0, 216, 175, 0, 216, 176, 0, 216, 177, 0, 216, 178, 0, 218, 152, 0, 216, 179, 0, 216, 180, 0, 216, 181,
-			0, 216, 182, 0, 216, 183, 0, 216, 184, 0, 216, 185, 0, 216, 186, 0, 217, 129, 0, 217, 130, 0, 218, 169, 0, 218, 175, 0, 217, 132,
-			0, 217, 133, 0, 217, 134, 0, 217, 135, 0, 216, 169, 0, 216, 166, 0, 7, 6, 18, 69, 216, 182, 0, 216, 181, 0, 216, 171, 0, 217,
-			130, 0, 217, 129, 0, 216, 186, 0, 216, 185, 0, 217, 135, 0, 216, 174, 0, 216, 173, 0, 216, 172, 0, 218, 134, 0, 216, 180, 0, 216,
-			179, 0, 219, 140, 0, 216, 168, 0, 217, 132, 0, 216, 170, 0, 217, 134, 0, 217, 133, 0, 218, 169, 0, 218, 175, 0, 219, 128, 0, 216,
-			184, 0, 216, 183, 0, 216, 178, 0, 216, 177, 0, 216, 176, 0, 216, 175, 0, 216, 166, 0, 217, 136, 0, 216, 169, 0, 217, 138, 0, 218,
-			152, 0, 216, 164, 0, 216, 165, 0, 216, 163, 0, 216, 161, 0, 216, 159, 0, 217, 190, 0, 7, 6, 18, 70, 216, 171, 0, 216, 179, 0,
-			216, 181, 0, 216, 180, 0, 216, 176, 0, 216, 178, 0, 216, 182, 0, 216, 184, 0, 217, 129, 0, 217, 132, 0, 217, 134, 0, 7, 6, 18,
-			71, 216, 168, 0, 217, 190, 0, 216, 170, 0, 216, 172, 0, 218, 134, 0, 216, 173, 0, 216, 174, 0, 216, 175, 0, 216, 177, 0, 218, 152,
-			0, 216, 183, 0, 216, 185, 0, 216, 186, 0, 217, 130, 0, 218, 169, 0, 218, 175, 0, 217, 133, 0, 217, 135, 0, 7, 6, 18, 72, 217,
-			134, 216, 175, 218, 175, 216, 167, 217, 134, 0, 217, 134, 216, 175, 218, 175, 219, 140, 0, 218, 175, 216, 167, 217, 134, 217, 135, 0, 218, 175,
-			216, 167, 217, 134, 219, 128, 0, 216, 179, 216, 170, 216, 167, 217, 134, 0, 217, 133, 216, 167, 217, 134, 0, 216, 170, 216, 167, 217, 134, 0,
-			216, 180, 216, 167, 217, 134, 0, 217, 134, 216, 175, 217, 135, 0, 217, 134, 216, 175, 219, 128, 0, 218, 175, 216, 167, 217, 134, 0, 217, 134,
-			216, 175, 0, 218, 175, 219, 140, 0, 216, 179, 216, 170, 0, 217, 134, 0, 217, 133, 0, 216, 170, 0, 216, 180, 0, 218, 169, 0, 7, 6,
-			18, 73, 216, 162, 0, 216, 167, 0, 219, 140, 0, 217, 138, 0, 217, 136, 0, 217, 142, 0, 217, 143, 0, 217, 144, 0, 217, 146, 0, 217,
-			139, 0, 217, 140, 0, 217, 141, 0, 217, 145, 0, 216, 164, 0, 216, 163, 0, 216, 165, 0, 216, 161, 0, 219, 128, 0, 7, 6, 18, 74,
-			216, 182, 0, 216, 181, 0, 216, 171, 0, 217, 130, 0, 217, 129, 0, 216, 186, 0, 216, 185, 0, 217, 135, 0, 216, 174, 0, 216, 173, 0,
-			216, 172, 0, 218, 134, 0, 216, 180, 0, 216, 179, 0, 219, 140, 0, 216, 168, 0, 217, 132, 0, 216, 167, 0, 216, 170, 0, 217, 134, 0,
-			217, 133, 0, 218, 169, 0, 218, 175, 0, 219, 128, 0, 216, 162, 0, 216, 184, 0, 216, 183, 0, 216, 178, 0, 216, 177, 0, 216, 176, 0,
-			216, 175, 0, 216, 166, 0, 217, 136, 0, 216, 169, 0, 217, 138, 0, 218, 152, 0, 217, 190, 0, 216, 164, 0, 216, 165, 0, 216, 163, 0,
-			216, 161, 0, 216, 159, 0, 217, 145, 0, 7, 6, 97, 97, 0, 3, 21, 0, 5, 1, 3, 108, 0, 7, 6, 99, 104, 0, 3, 21, 0,
-			5, 1, 3, 76, 0, 7, 6, 101, 101, 0, 3, 21, 0, 5, 1, 3, 37, 0, 7, 6, 103, 104, 0, 3, 21, 0, 5, 1, 3, 104,
-			17, 0, 7, 6, 106, 104, 0, 3, 21, 0, 5, 1, 3, 90, 0, 7, 6, 107, 104, 0, 3, 21, 0, 5, 1, 3, 101, 0, 7, 6,
-			111, 111, 0, 5, 1, 2, 111, 3, 0, 3, 21, 0, 5, 1, 3, 40, 0, 7, 6, 111, 117, 0, 3, 21, 0, 5, 1, 3, 40, 0,
-			7, 6, 112, 104, 0, 3, 21, 0, 7, 6, 115, 104, 0, 3, 21, 0, 5, 1, 3, 91, 0, 7, 6, 116, 104, 0, 3, 21, 0, 7,
-			6, 1, 28, 0, 3, 0, 7, 6, 1, 34, 0, 4, 1, 162, 216, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 3, 0, 1, 167, 216,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 3, 0, 4, 3, 19, 0, 1, 18, 69, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 0,
-			7, 6, 1, 35, 0, 3, 6, 108, 0, 78, 8, 3, 6, 108, 12, 0, 216, 168, 216, 167, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 132, 3, 108, 6, 71, 108, 72, 0, 217, 132, 217, 136, 216, 175, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 55,
-			40, 72, 0, 217, 132, 216, 167, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 55, 108, 47, 0, 217, 133, 219, 140,
-			216, 178, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 65, 37, 88, 0, 217, 133, 217, 136, 216, 178, 1, 18, 69, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 108, 65, 40, 88, 0, 217, 133, 217, 136, 216, 174, 216, 170, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 134, 3, 108, 65, 40, 101, 47, 36, 12, 0, 217, 133, 217, 136, 216, 174, 216, 170, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 134, 3, 108, 65, 40, 101, 47, 36, 57, 36, 0, 216, 168, 216, 167, 216, 175, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 108, 71, 108, 72, 0, 218, 175, 216, 167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 81, 108, 107, 0, 217,
-			129, 216, 177, 219, 140, 217, 134, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 3, 108, 83, 35, 51, 37, 50, 0, 217, 136, 216, 177,
-			1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 131, 3, 108, 84, 35, 51, 0, 217, 136, 216, 177, 216, 175, 1, 18, 69, 18, 74, 2, 32,
-			14, 136, 128, 132, 3, 108, 84, 35, 51, 72, 0, 7, 6, 1, 36, 0, 2, 217, 142, 3, 0, 3, 35, 19, 0, 7, 6, 1, 37, 0,
-			3, 39, 19, 0, 7, 6, 1, 38, 0, 2, 217, 144, 3, 0, 3, 36, 19, 0, 7, 6, 1, 39, 0, 4, 1, 18, 66, 18, 74, 2,
-			32, 14, 136, 128, 129, 3, 19, 0, 1, 18, 67, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 18, 68, 3, 19, 36, 0, 1, 18, 68,
-			18, 74, 2, 32, 14, 136, 128, 129, 3, 35, 19, 0, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 129, 3, 37, 0, 4, 216, 166,
-			1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 130, 3, 37, 12, 0, 219, 140, 0, 219, 140, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128,
-			130, 0, 219, 140, 217, 135, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 12, 57, 36, 0, 219, 140, 219, 128, 1, 18,
-			74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 12, 57, 36, 57, 36, 0, 4, 216, 166, 1, 18, 68, 18, 74, 2, 32, 14, 136,
-			128, 130, 3, 37, 37, 0, 219, 140, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 130, 0, 217, 135, 1, 18, 68, 18, 74, 2, 32, 12,
-			24, 14, 136, 128, 130, 3, 37, 57, 36, 0, 219, 128, 1, 18, 68, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 37, 57, 36, 57,
-			36, 0, 4, 1, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 129, 3, 57, 36, 0, 217, 135, 1, 18, 66, 18, 74, 2, 32, 12, 24,
-			14, 136, 128, 130, 0, 219, 128, 1, 18, 66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 57, 36, 57, 36, 0, 7, 6, 1, 40,
-			0, 4, 8, 2, 18, 66, 18, 68, 3, 0, 8, 2, 18, 67, 18, 74, 3, 0, 8, 3, 6, 35, 12, 0, 4, 3, 6, 108, 0, 2,
-			32, 0, 4, 218, 169, 216, 168, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 35, 49, 71, 35, 51, 0, 218, 169,
-			216, 168, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 217, 139, 3, 35, 50, 0, 217, 139, 1, 18, 69, 18,
-			74, 2, 32, 24, 14, 136, 128, 130, 0, 217, 140, 1, 18, 69, 18, 74, 2, 32, 24, 14, 136, 128, 130, 0, 217, 141, 1, 18, 69, 18,
-			74, 2, 32, 24, 14, 136, 128, 130, 0, 217, 134, 216, 175, 216, 167, 216, 178, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 3, 35,
-			50, 72, 108, 88, 0, 217, 134, 218, 175, 219, 140, 216, 178, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 3, 35, 50, 81, 37, 88,
-			0, 217, 132, 8, 2, 18, 74, 18, 74, 18, 74, 14, 128, 132, 130, 3, 35, 55, 0, 8, 2, 18, 67, 32, 3, 35, 55, 36, 83, 19,
-			0, 4, 217, 133, 219, 140, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 35, 65, 37, 51, 0, 217, 133, 219, 140,
-			216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 216, 168, 217, 136, 216, 167, 217, 132, 8, 2, 18, 69, 18, 74,
-			18, 74, 28, 2, 14, 128, 132, 133, 3, 35, 71, 39, 55, 6, 0, 216, 168, 217, 136, 216, 167, 217, 132, 8, 2, 216, 162, 18, 74, 18,
-			74, 28, 2, 14, 128, 132, 133, 0, 4, 216, 168, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 35, 71,
-			40, 0, 216, 168, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 217, 129, 216, 178, 216, 167, 216, 177, 1,
-			18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 3, 35, 83, 88, 108, 51, 0, 4, 216, 181, 216, 186, 216, 177, 8, 2, 18, 69, 18, 74,
-			18, 74, 14, 128, 132, 132, 3, 35, 89, 104, 17, 35, 51, 0, 216, 181, 216, 186, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128,
-			132, 132, 0, 4, 8, 2, 18, 68, 216, 170, 18, 69, 216, 167, 18, 68, 32, 3, 36, 0, 8, 2, 216, 179, 216, 170, 18, 69, 18, 69,
-			216, 167, 18, 68, 32, 0, 8, 2, 216, 185, 0, 8, 2, 217, 134, 18, 69, 18, 69, 216, 167, 18, 68, 32, 0, 217, 141, 3, 36, 50,
-			0, 4, 1, 45, 2, 217, 132, 217, 132, 217, 135, 32, 3, 39, 0, 1, 45, 2, 217, 132, 217, 132, 217, 145, 217, 135, 32, 12, 0, 217,
-			140, 3, 39, 50, 0, 4, 217, 132, 217, 132, 217, 135, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 132, 3, 39, 55, 55, 108, 107, 0,
-			217, 132, 217, 132, 217, 135, 1, 18, 69, 18, 74, 45, 2, 32, 14, 136, 128, 132, 0, 217, 132, 217, 132, 217, 145, 217, 135, 1, 18, 69,
-			18, 74, 2, 32, 14, 136, 128, 133, 0, 217, 132, 217, 132, 217, 145, 217, 135, 1, 18, 69, 18, 74, 45, 2, 32, 14, 136, 128, 133, 0,
-			217, 132, 217, 133, 217, 133, 216, 167, 217, 132, 218, 169, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 135, 3, 39, 55, 65, 35, 65, 108,
-			55, 36, 49, 0, 217, 132, 217, 133, 217, 132, 217, 136, 218, 169, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 134, 3, 39, 55, 65, 39,
-			55, 40, 49, 0, 217, 132, 217, 133, 217, 132, 218, 169, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 3, 39, 55, 65, 39, 55, 49,
-			0, 217, 132, 216, 173, 218, 169, 217, 133, 216, 167, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 134, 3, 39, 55, 107, 39, 49, 35, 65,
-			108, 0, 4, 217, 132, 216, 175, 217, 145, 219, 140, 217, 134, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 134, 3, 39, 72, 72, 37, 50,
-			0, 217, 132, 216, 175, 219, 140, 217, 134, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 133, 0, 4, 217, 132, 216, 175, 217, 136, 217, 132,
-			217, 135, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 134, 3, 39, 72, 72, 39, 55, 36, 12, 0, 217, 132, 216, 175, 217, 145, 217, 136,
-			217, 132, 217, 135, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 135, 0, 4, 217, 132, 216, 175, 217, 136, 217, 132, 219, 128, 1, 18, 69,
-			18, 74, 2, 32, 14, 136, 128, 134, 3, 39, 72, 72, 39, 55, 36, 57, 36, 0, 217, 132, 216, 175, 217, 145, 217, 136, 217, 132, 219, 128,
-			1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 135, 0, 4, 217, 132, 216, 179, 217, 132, 216, 183, 217, 134, 217, 135, 1, 18, 69, 18, 74,
-			2, 32, 14, 136, 128, 135, 3, 39, 89, 89, 35, 55, 47, 35, 50, 36, 12, 0, 217, 132, 216, 179, 217, 145, 217, 132, 216, 183, 217, 134,
-			217, 135, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 136, 0, 4, 217, 132, 216, 179, 217, 132, 216, 183, 217, 134, 219, 128, 1, 18, 69,
-			18, 74, 2, 32, 14, 136, 128, 135, 3, 39, 89, 89, 35, 55, 47, 35, 50, 36, 57, 36, 0, 217, 132, 216, 179, 217, 145, 217, 132, 216,
-			183, 217, 134, 219, 128, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 136, 0, 4, 217, 132, 216, 179, 216, 167, 216, 175, 216, 167, 216, 170,
-			1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 135, 3, 39, 89, 89, 108, 72, 108, 47, 0, 217, 132, 216, 179, 217, 145, 216, 167, 216, 175,
-			216, 167, 216, 170, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 136, 0, 2, 217, 147, 3, 108, 0, 217, 134, 217, 135, 1, 51, 48, 108,
-			57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 131, 3, 108, 4, 50, 36, 12, 0, 217, 134, 219, 128, 1, 51, 48, 108, 57, 48,
-			108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 131, 3, 108, 4, 50, 36, 57, 36, 0, 4, 216, 170, 1, 18, 66, 18, 68, 18, 74, 2,
-			32, 14, 136, 128, 130, 3, 108, 47, 0, 216, 170, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 0, 216, 170, 216, 170,
-			1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 108, 47, 35, 47, 0, 216, 170, 217, 133, 1, 18, 68, 18, 74, 18,
-			74, 2, 32, 24, 14, 136, 128, 131, 3, 108, 47, 35, 65, 0, 216, 170, 216, 180, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136,
-			128, 131, 3, 108, 47, 35, 91, 0, 216, 170, 216, 170, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 47, 40, 50, 0, 216, 170, 216, 170, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 47, 108, 50, 0, 216, 170, 217, 133, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 65, 40, 50, 0, 216, 170, 217, 133, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 65, 108, 50, 0, 216, 170, 216, 180, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 91, 40, 50, 0, 216, 170, 216, 180, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 47, 36, 91, 108, 50, 0, 216, 170, 219, 140, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 108, 47, 37,
-			0, 216, 170, 217, 135, 216, 167, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 108, 47, 107, 108, 0, 216, 170, 217,
-			135, 216, 167, 219, 140, 219, 140, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 108, 47, 107, 108, 37, 12, 0, 216,
-			170, 217, 135, 216, 167, 219, 140, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 3, 108, 47, 107, 108, 57, 36, 0, 217,
-			134, 1, 18, 69, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 108, 50, 0, 217, 134, 216, 170, 1, 52, 48, 108, 57, 48, 108, 57,
-			48, 108, 2, 32, 24, 14, 136, 128, 131, 3, 108, 50, 35, 47, 0, 217, 134, 217, 133, 1, 52, 48, 108, 57, 48, 108, 57, 48, 108, 2,
-			32, 24, 14, 136, 128, 131, 3, 108, 50, 35, 65, 0, 217, 134, 216, 180, 1, 52, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14,
-			136, 128, 131, 3, 108, 50, 35, 91, 0, 217, 134, 216, 170, 217, 136, 217, 134, 1, 52, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24,
-			14, 136, 128, 133, 3, 108, 50, 36, 47, 40, 50, 0, 217, 134, 216, 170, 216, 167, 217, 134, 1, 52, 48, 108, 57, 48, 108, 57, 48, 108,
-			2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 36, 47, 108, 50, 0, 217, 134, 217, 133, 217, 136, 217, 134, 1, 52, 48, 108, 57, 48, 108,
-			57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 36, 65, 40, 50, 0, 217, 134, 217, 133, 216, 167, 217, 134, 1, 52, 48, 108,
-			57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 36, 65, 108, 50, 0, 217, 134, 216, 180, 217, 136, 217, 134, 1,
-			52, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 36, 91, 40, 50, 0, 217, 134, 216, 180, 216, 167,
-			217, 134, 1, 52, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 36, 91, 108, 50, 0, 217, 134, 219,
-			140, 216, 175, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 132, 3, 108, 50, 37, 72, 0, 217, 134, 219, 140,
-			216, 175, 217, 134, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 37, 72, 35, 50, 0, 217,
-			134, 219, 140, 216, 175, 217, 134, 216, 175, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 134, 3, 108, 50, 37,
-			72, 35, 50, 72, 0, 217, 134, 219, 140, 216, 175, 217, 133, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133,
-			3, 108, 50, 37, 72, 35, 65, 0, 217, 134, 219, 140, 216, 175, 219, 140, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14,
-			136, 128, 133, 3, 108, 50, 37, 72, 37, 0, 217, 134, 219, 140, 216, 175, 219, 140, 217, 133, 1, 51, 48, 108, 57, 48, 108, 57, 48, 108,
-			2, 32, 24, 14, 136, 128, 134, 3, 108, 50, 37, 72, 37, 65, 0, 217, 134, 219, 140, 216, 175, 219, 140, 216, 175, 1, 51, 48, 108, 57,
-			48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 134, 3, 108, 50, 37, 72, 37, 72, 0, 217, 134, 216, 175, 1, 51, 48, 108, 57, 48,
-			108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 131, 3, 108, 50, 72, 0, 217, 134, 216, 175, 217, 134, 1, 51, 48, 108, 57, 48, 108, 57,
-			48, 108, 2, 32, 24, 14, 136, 128, 132, 3, 108, 50, 72, 35, 50, 0, 217, 134, 216, 175, 217, 134, 216, 175, 1, 51, 48, 108, 57, 48,
-			108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 72, 35, 50, 72, 0, 217, 134, 216, 175, 217, 133, 1, 51, 48, 108, 57,
-			48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 132, 3, 108, 50, 72, 35, 65, 0, 217, 134, 216, 175, 217, 135, 1, 51, 48, 108, 57,
-			48, 108, 57, 48, 108, 2, 32, 14, 136, 128, 132, 3, 108, 50, 72, 36, 12, 0, 217, 134, 216, 175, 219, 128, 1, 51, 48, 108, 57, 48,
-			108, 57, 48, 108, 2, 32, 14, 136, 128, 132, 3, 108, 50, 72, 36, 57, 36, 0, 217, 134, 216, 175, 219, 140, 1, 51, 48, 108, 57, 48,
-			108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 132, 3, 108, 50, 72, 37, 0, 217, 134, 216, 175, 219, 140, 217, 133, 1, 51, 48, 108, 57,
-			48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 72, 37, 65, 0, 217, 134, 216, 175, 219, 140, 216, 175, 1, 51, 48,
-			108, 57, 48, 108, 57, 48, 108, 2, 32, 24, 14, 136, 128, 133, 3, 108, 50, 72, 37, 72, 0, 217, 132, 217, 136, 216, 175, 1, 18, 69,
-			18, 74, 2, 32, 14, 136, 128, 131, 3, 108, 55, 40, 72, 0, 217, 133, 219, 140, 216, 178, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128,
-			132, 3, 108, 65, 37, 88, 0, 216, 168, 216, 167, 216, 175, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 71, 108, 72, 0,
-			217, 136, 216, 177, 1, 18, 69, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 108, 84, 35, 51, 0, 217, 136, 216, 177, 216, 175, 1,
-			18, 69, 18, 74, 2, 32, 14, 136, 128, 132, 3, 108, 84, 35, 51, 72, 0, 7, 6, 1, 41, 0, 4, 1, 18, 66, 18, 74, 2, 18,
-			68, 18, 74, 32, 3, 71, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18,
-			72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0,
-			1, 168, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0,
-			2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219,
-			140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18,
-			68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2,
-			18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12,
-			0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162,
-			216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8,
-			167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1,
-			18, 66, 18, 74, 2, 18, 68, 32, 3, 71, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68,
-			32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 168, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18,
-			74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0,
-			2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0,
-			8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18,
-			70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2,
-			18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18,
-			70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18,
-			74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134,
-			217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18,
-			68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216,
-			2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2,
-			18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 216, 177, 216, 175, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3,
-			71, 35, 34, 72, 108, 51, 0, 4, 217, 134, 217, 129, 216, 180, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 71, 35, 50,
-			35, 83, 91, 0, 217, 134, 217, 129, 216, 180, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 217, 134, 216, 175, 1, 18,
-			66, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 35, 50, 72, 0, 217, 134, 216, 175, 1, 168, 216, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 131, 0, 217, 134, 216, 175, 8, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 0, 217, 134, 216, 175, 219, 140, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 71, 35, 50, 72, 37, 0, 217, 134, 216, 175, 217, 135, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 133, 3, 71, 35, 50, 72, 107, 108, 0, 217, 134, 216, 175, 217, 135, 216, 167, 219, 140, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 135, 3, 71, 35, 50, 72, 107, 108, 37, 12, 0, 217, 134, 216, 175, 217, 135, 216, 167, 216, 170, 1, 18, 74, 18, 74, 2, 32,
-			24, 14, 136, 128, 134, 3, 71, 35, 50, 72, 107, 108, 47, 0, 217, 134, 216, 175, 217, 135, 216, 167, 216, 170, 217, 136, 217, 134, 1, 18,
-			74, 18, 74, 2, 32, 24, 14, 136, 128, 136, 3, 71, 35, 50, 72, 107, 108, 47, 40, 50, 0, 217, 134, 216, 175, 217, 135, 216, 167, 219,
-			140, 216, 170, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 3, 71, 35, 50, 72, 107, 108, 57, 35, 47, 0, 217, 134, 216, 175,
-			217, 135, 216, 167, 219, 140, 217, 133, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 3, 71, 35, 50, 72, 107, 108, 57, 35, 65,
-			0, 217, 134, 216, 175, 217, 135, 216, 167, 219, 140, 216, 180, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 3, 71, 35, 50, 72,
-			107, 108, 57, 35, 91, 0, 217, 134, 216, 175, 217, 135, 216, 167, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 71, 35,
-			50, 72, 107, 108, 57, 36, 0, 217, 134, 216, 175, 217, 135, 216, 167, 219, 140, 216, 170, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32,
-			24, 14, 136, 128, 137, 3, 71, 35, 50, 72, 107, 108, 57, 36, 47, 108, 50, 0, 217, 134, 216, 175, 217, 135, 216, 167, 219, 140, 217, 133,
-			216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 137, 3, 71, 35, 50, 72, 107, 108, 57, 36, 65, 108, 50, 0, 217,
-			134, 216, 175, 217, 135, 216, 167, 219, 140, 216, 180, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 137, 3, 71, 35,
-			50, 72, 107, 108, 57, 36, 91, 108, 50, 0, 217, 134, 216, 175, 217, 135, 216, 167, 217, 133, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136,
-			128, 134, 3, 71, 35, 50, 72, 107, 108, 65, 0, 217, 134, 216, 175, 217, 135, 216, 167, 217, 133, 217, 136, 217, 134, 1, 18, 74, 18, 74,
-			2, 32, 24, 14, 136, 128, 136, 3, 71, 35, 50, 72, 107, 108, 65, 40, 50, 0, 217, 134, 216, 175, 217, 135, 216, 167, 216, 180, 1, 18,
-			74, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 71, 35, 50, 72, 107, 108, 91, 0, 217, 134, 216, 175, 217, 135, 216, 167, 216, 180, 217,
-			136, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 136, 3, 71, 35, 50, 72, 107, 108, 91, 40, 50, 0, 217, 134, 216, 175,
-			216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 71, 35, 50, 72, 108, 50, 0, 4, 216, 177, 8, 2, 18, 69,
-			18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 71, 35, 51, 0, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132,
-			130, 0, 216, 177, 216, 167, 217, 134, 218, 175, 219, 140, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 135, 3, 71, 35, 51, 35,
-			50, 81, 37, 88, 0, 4, 216, 177, 217, 134, 217, 133, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 133, 3, 71,
-			35, 51, 50, 36, 65, 37, 0, 216, 177, 217, 134, 217, 133, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 133, 0,
-			4, 216, 177, 217, 133, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 3, 71, 35, 51, 65, 37, 0, 216, 177,
-			217, 133, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 0, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28,
-			2, 14, 128, 132, 130, 3, 71, 35, 72, 0, 216, 179, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 35, 89, 47,
-			0, 216, 174, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 35, 101, 47, 0, 216, 174, 216, 180, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 131, 3, 71, 35, 101, 91, 0, 4, 8, 2, 18, 68, 18, 74, 18, 74, 28, 2, 14, 128, 132, 129, 3, 71,
-			36, 0, 8, 2, 217, 136, 18, 66, 18, 74, 28, 2, 14, 128, 132, 129, 0, 8, 2, 217, 136, 18, 67, 18, 74, 28, 2, 14, 128, 132,
-			129, 0, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134,
-			217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69,
-			133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18,
-			68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 217, 132, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2,
-			14, 128, 132, 131, 3, 71, 36, 55, 108, 0, 217, 132, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 219,
-			140, 218, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 36, 57, 81, 0, 4, 217, 135, 8, 2, 18, 69, 18, 74, 18,
-			74, 28, 2, 14, 128, 132, 130, 3, 71, 36, 107, 0, 217, 135, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 219,
-			140, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 37, 50, 0, 219, 140, 217, 134, 219, 140, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 71, 37, 50, 37, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 71, 39, 0, 8, 167, 216, 18,
-			69, 170, 216, 2, 18, 68, 32, 0, 4, 217, 132, 217, 134, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 71, 39, 55,
-			35, 50, 72, 0, 217, 132, 217, 134, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 132, 217, 134, 216, 175, 8,
-			2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 216, 178, 216, 177, 218, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 71, 39, 88, 39, 51, 81, 0, 216, 178, 216, 177, 218, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 178, 216,
-			177, 218, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 2, 217, 145, 18, 73, 3, 71, 71, 0, 2, 217, 145, 32,
-			0, 4, 2, 217, 145, 18, 68, 3, 71, 71, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 3, 71, 71, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69,
-			170, 216, 2, 18, 68, 32, 12, 12, 3, 71, 71, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 217, 134,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 108, 50, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			131, 3, 71, 108, 51, 0, 216, 167, 217, 129, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 108, 83, 0, 216, 167, 217, 129,
-			216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 71, 108, 83, 47, 0, 216, 167, 217, 136, 216, 177, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 71, 108, 84, 35, 51, 0, 4, 216, 167, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3,
-			71, 108, 88, 0, 216, 167, 216, 178, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 167, 216, 178, 8, 2, 216, 162, 18,
-			74, 18, 74, 14, 128, 132, 131, 0, 4, 216, 167, 216, 178, 217, 134, 217, 133, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14,
-			128, 132, 134, 3, 71, 108, 88, 50, 36, 65, 37, 0, 216, 167, 216, 178, 217, 134, 217, 133, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74,
-			28, 2, 14, 128, 132, 134, 0, 4, 216, 167, 216, 178, 217, 133, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 133,
-			3, 71, 108, 88, 65, 37, 0, 216, 167, 216, 178, 217, 133, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 133, 0,
-			216, 167, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 71, 108, 91, 0, 7, 6, 1, 42, 0, 3, 47, 0, 7, 6,
-			1, 43, 0, 4, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 129, 3, 35, 47, 0, 1, 136, 217, 18, 66, 18, 74, 2,
-			32, 24, 14, 136, 128, 129, 0, 217, 136, 217, 134, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 36, 47, 40, 50, 0, 4,
-			216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 36, 47, 108, 50, 0, 216, 167, 217, 134, 1, 136, 217, 18,
-			66, 2, 32, 24, 14, 136, 128, 131, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 47, 0, 1, 18, 66, 18, 74, 2,
-			18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68,
-			18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1,
-			170, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2,
-			217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66,
-			0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 18, 69,
-			219, 140, 18, 69, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140,
-			32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71,
-			18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18,
-			74, 32, 0, 8, 18, 68, 167, 216, 2, 219, 140, 216, 167, 18, 68, 32, 12, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71,
-			18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18,
-			68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140,
-			219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216,
-			2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219,
-			140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 47, 35,
-			0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18,
-			71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 170, 12, 12, 12, 0, 1, 18, 74, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128,
-			0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 18, 69, 18, 69,
-			18, 68, 32, 0, 8, 2, 18, 69, 18, 69, 217, 145, 18, 68, 32, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0,
-			8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18,
-			68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69,
-			133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 219, 140,
-			18, 68, 32, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18,
-			68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12,
-			0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 69, 18, 68,
-			32, 12, 0, 8, 170, 216, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0,
-			8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 8, 179, 216, 133, 217, 2, 18, 69, 18, 69, 18, 68, 32, 12,
-			0, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 47, 35, 51, 0, 216, 177, 219, 140, 217, 134, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 47, 35, 51, 37, 50, 0, 216, 177, 216, 167, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 47, 35, 51, 108, 91, 0, 217, 130, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 47, 35, 104, 17, 37, 0, 4,
-			8, 18, 68, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 3, 47, 36, 0, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32,
-			0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 69, 18, 68, 32, 0, 8, 133, 217,
-			2, 18, 69, 18, 69, 217, 145, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 216, 167, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2,
-			18, 69, 216, 167, 18, 69, 219, 140, 32, 12, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216,
-			18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2,
-			18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 179,
-			216, 167, 216, 2, 18, 69, 18, 69, 216, 167, 18, 68, 32, 12, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 47, 39, 0, 8,
-			167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 217, 134, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131,
-			3, 47, 39, 50, 72, 0, 217, 134, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 217, 136, 217, 134, 1,
-			18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 47, 40, 50, 0, 4, 2, 217, 145, 18, 73, 3, 47, 47, 0, 2, 217, 145, 32,
-			0, 4, 2, 217, 145, 18, 68, 3, 47, 47, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 3, 47, 47, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216,
-			2, 18, 68, 32, 12, 12, 3, 47, 47, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 12, 0, 4, 216, 167, 217, 134,
-			1, 140, 219, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 57, 36, 47, 108, 50, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218,
-			18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 136, 217, 18, 66, 18, 74, 2,
-			32, 24, 14, 136, 128, 131, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 140, 219, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0,
-			7, 6, 1, 44, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 89, 0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0,
-			1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18,
-			68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1,
-			18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 171, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18,
-			66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2,
-			217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135,
-			32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2,
-			217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18,
-			68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18,
-			68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18,
-			71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69,
-			18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216,
-			2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177,
-			32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18,
-			68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32,
-			12, 3, 89, 12, 35, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 3, 89, 12, 39, 0, 4, 1, 18, 66, 18, 66, 2,
-			18, 68, 32, 3, 89, 35, 0, 1, 18, 66, 18, 74, 2, 216, 176, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1,
-			18, 66, 18, 74, 2, 216, 178, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 182, 32,
-			12, 0, 1, 18, 66, 18, 74, 2, 216, 184, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 132, 32, 12, 0, 1, 18, 68, 18, 66, 2,
-			18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18,
-			74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 171, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68,
-			18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18,
-			68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167,
-			0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8,
-			18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74,
-			0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18,
-			69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2,
-			18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219,
-			140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18,
-			68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69,
-			217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 89, 36, 0, 8, 18, 69, 170, 216,
-			179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69,
-			2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18,
-			68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 8,
-			2, 18, 69, 217, 136, 18, 68, 32, 3, 89, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 4, 2, 217, 145, 18,
-			73, 3, 89, 89, 0, 2, 217, 145, 32, 0, 2, 217, 145, 18, 68, 3, 89, 89, 35, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18,
-			68, 32, 12, 3, 89, 89, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 8, 18, 69, 170, 216, 2, 18, 68,
-			32, 12, 12, 3, 89, 89, 39, 0, 7, 6, 1, 45, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 75, 0, 1, 18,
-			66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2,
-			217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 172, 216, 18, 74, 2, 18, 68, 18,
-			74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128,
-			217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128,
-			18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219,
-			140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18,
-			68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68,
-			18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162,
-			216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133,
-			217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68,
-			32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0,
-			8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216,
-			179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 75, 35, 0, 1, 18, 68, 18,
-			66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18,
-			74, 2, 216, 172, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18,
-			68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0,
-			8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18,
-			68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18,
-			68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12,
-			0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8,
-			133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133,
-			217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0,
-			8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2,
-			18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217,
-			133, 217, 2, 18, 68, 32, 3, 75, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2,
-			18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18,
-			68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8,
-			170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 75, 39, 0, 8, 167, 216, 18, 69,
-			170, 216, 2, 18, 68, 32, 0, 217, 136, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 75, 40, 0, 4, 2, 217, 145, 18, 73,
-			3, 75, 75, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 75, 75, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68,
-			32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 75, 75, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145,
-			18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 75, 75, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18,
-			68, 32, 12, 0, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 75, 108, 50, 0, 7, 6, 1, 46, 0, 4,
-			1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 107, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0,
-			1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18,
-			68, 18, 74, 18, 74, 32, 0, 1, 173, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32,
-			0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2,
-			217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128,
-			32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18,
-			66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0,
-			8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18,
-			74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18,
-			68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217,
-			167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162,
-			216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8,
-			167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1,
-			18, 66, 18, 74, 2, 18, 68, 32, 3, 107, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68,
-			32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 173, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18,
-			74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0,
-			2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0,
-			8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18,
-			70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2,
-			18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18,
-			70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18,
-			74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134,
-			217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18,
-			68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216,
-			2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2,
-			18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 216, 179, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 107, 35, 89,
-			35, 50, 0, 216, 179, 217, 134, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 179, 217, 134, 8, 2, 216, 162, 18, 74,
-			18, 74, 14, 128, 132, 131, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 107, 36, 0, 8, 18, 69, 170, 216, 179, 216,
-			133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18,
-			68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0,
-			8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217,
-			136, 18, 68, 32, 3, 107, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 216, 179, 219, 140, 217, 134, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 132, 3, 107, 39, 89, 36, 57, 50, 0, 216, 179, 219, 140, 217, 134, 8, 2, 18, 69, 18, 74, 18, 74,
-			14, 128, 132, 132, 0, 216, 179, 219, 140, 217, 134, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 2, 217, 145, 18, 73,
-			3, 107, 107, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 107, 107, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68,
-			32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 107, 107, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145,
-			18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 107, 107, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18,
-			68, 32, 12, 0, 216, 167, 217, 132, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 107, 108, 55, 0, 7, 6, 1, 47, 0, 4,
-			1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 101, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0,
-			1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 136,
-			18, 66, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 174, 216, 18, 74, 2, 18, 68, 18, 74, 32,
-			12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128,
-			18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67,
-			0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2,
-			217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 2, 217, 136, 219, 140, 216, 180, 12, 0, 8, 18, 66, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68,
-			18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2,
-			18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0,
-			8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18,
-			68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 216, 167, 217, 134, 217,
-			135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 101, 6, 108, 50, 36, 0, 216, 167, 217, 134, 219, 128, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 101, 6, 108, 50, 36, 12, 57, 36, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 101, 35, 0,
-			1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71,
-			32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 174, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18,
-			74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0,
-			2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 219, 140, 18,
-			68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0,
-			8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68,
-			2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12,
-			0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12,
-			0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162,
-			216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0,
-			8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216,
-			133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 101, 35, 51,
-			0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 101, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32,
-			0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167,
-			216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18,
-			69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 219, 140, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 131, 3, 101, 37, 88, 0, 4, 217, 136, 219, 140, 216, 180, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 101, 37,
-			91, 0, 217, 136, 219, 140, 216, 180, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68,
-			32, 3, 101, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 217, 136, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 131, 3, 101, 39, 51, 0, 217, 136, 216, 177, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 101, 39, 51, 72, 0,
-			217, 136, 216, 177, 216, 175, 218, 175, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 101, 39, 51, 72, 36, 81, 37, 0,
-			4, 217, 136, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 101, 39, 72, 0, 217, 136, 216, 175, 8, 2, 216, 162,
-			18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 216, 175, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 101, 39, 72, 108,
-			0, 216, 175, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 175, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74,
-			14, 128, 132, 131, 0, 4, 217, 136, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 101, 39, 91, 0, 217, 136, 216, 180,
-			8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 217, 136, 216, 180, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0,
-			217, 136, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 101, 40, 50, 0, 4, 217, 136, 216, 168, 8, 2, 18, 69, 18,
-			74, 18, 74, 14, 128, 132, 131, 3, 101, 40, 71, 0, 217, 136, 216, 168, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4,
-			2, 217, 145, 18, 73, 3, 101, 101, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 101, 101, 35, 0, 8, 18, 69, 133, 217,
-			2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 101, 101, 36, 0, 8, 18, 69, 170, 216,
-			133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 101, 101, 39, 0, 8, 18, 69, 170,
-			216, 2, 217, 145, 18, 68, 32, 12, 0, 4, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 101, 108, 50, 0,
-			216, 167, 217, 134, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 216, 167, 217, 134, 8, 2, 216, 162, 18, 74, 18,
-			74, 28, 2, 14, 128, 132, 131, 0, 217, 136, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 0, 217, 136, 216, 167,
-			217, 134, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 101, 108, 50, 72, 0, 217, 136, 216, 167, 216, 177, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 132, 3, 101, 108, 51, 0, 4, 217, 136, 216, 167, 216, 168, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			132, 3, 101, 108, 71, 0, 217, 136, 216, 167, 216, 168, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 136, 216, 167, 216,
-			168, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 136, 216, 167, 216, 179, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 133, 3, 101, 108, 89, 47, 0, 217, 136, 216, 167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 101, 108, 107,
-			0, 4, 217, 136, 216, 167, 217, 135, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 101, 108, 107, 35, 72, 0, 217,
-			136, 216, 167, 217, 135, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 217, 136, 216, 167, 217, 135, 216, 180, 8,
-			2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 101, 108, 107, 36, 91, 0, 217, 136, 216, 167, 217, 135, 216, 180, 8, 2, 216, 162,
-			18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 217, 136, 216, 167, 217, 135, 219, 140, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128,
-			132, 134, 3, 101, 108, 107, 37, 72, 0, 217, 136, 216, 167, 217, 135, 219, 140, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132,
-			134, 0, 7, 6, 1, 48, 0, 217, 135, 217, 133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 6, 72, 35, 107, 39, 65, 0,
-			4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 72, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67,
-			0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217,
-			136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 175, 216, 18, 74, 2, 18, 68, 18, 74,
-			32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140,
-			18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68,
-			18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18,
-			74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74,
-			32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217,
-			2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32,
-			12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8,
-			162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179,
-			216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 72, 35, 0, 1, 18, 68, 18, 66,
-			2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71,
-			18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 175, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18,
-			68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128,
-			18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216,
-			167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0,
-			8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8,
-			18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217,
-			2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2,
-			219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170,
-			216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69,
-			18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 216, 177, 8, 2, 18, 69, 18,
-			74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 72, 35, 51, 0, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130,
-			0, 216, 177, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 72, 35, 51, 72, 0, 4, 216, 179, 216, 170, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 131, 3, 72, 35, 89, 47, 0, 216, 179, 216, 170, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131,
-			0, 216, 179, 216, 170, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 180, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 131, 3, 72, 35, 91, 47, 0, 217, 135, 217, 134, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 72,
-			35, 107, 35, 50, 72, 36, 12, 0, 217, 135, 217, 134, 216, 175, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 72, 35,
-			107, 35, 50, 72, 36, 57, 36, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 72, 36, 0, 8, 18, 69, 170, 216, 179,
-			216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2,
-			18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32,
-			0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 216, 177, 216, 167,
-			216, 178, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 72, 36, 51, 108, 88, 0, 216, 177, 216, 167, 216, 178, 8, 2, 216,
-			162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 217, 132, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 72, 36, 55, 0, 217,
-			132, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 217, 132, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128,
-			132, 130, 0, 217, 135, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 72, 36, 107, 37, 0, 4, 219, 140, 216, 177, 8,
-			2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 72, 37, 51, 0, 219, 140, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74,
-			28, 2, 14, 128, 132, 131, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 72, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18,
-			68, 32, 0, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74,
-			28, 2, 14, 128, 132, 130, 0, 4, 216, 177, 216, 179, 216, 170, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 72, 39, 34,
-			39, 89, 47, 0, 216, 177, 216, 179, 216, 170, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 174, 216, 170, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 131, 3, 72, 39, 101, 47, 0, 217, 136, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3,
-			72, 40, 88, 0, 217, 136, 216, 179, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 72, 40, 89, 47, 0, 217, 136, 216,
-			180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 72, 40, 91, 0, 4, 2, 217, 145, 18, 73, 3, 72, 72, 0, 2, 217, 145,
-			32, 0, 4, 2, 217, 145, 18, 68, 3, 72, 72, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69,
-			170, 216, 133, 217, 2, 18, 68, 32, 3, 72, 72, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18,
-			69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 72, 72, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 217,
-			134, 217, 135, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 72, 108, 50, 107, 108, 0, 216, 167, 217, 134, 217, 135, 216,
-			167, 219, 140, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 135, 3, 72, 108, 50, 107, 108, 37, 12, 0, 216, 167, 217, 134, 217,
-			135, 216, 167, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 72, 108, 50, 107, 108, 57, 36, 0, 216, 167, 217, 134, 216,
-			167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 72, 108, 50, 108, 50, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 131, 3, 72, 108, 51, 0, 4, 216, 177, 216, 167, 217, 132, 8, 2, 216, 170, 18, 74, 18, 74, 12, 28, 2, 14,
-			128, 132, 132, 3, 72, 108, 51, 39, 10, 6, 0, 216, 177, 216, 167, 217, 132, 8, 2, 216, 175, 18, 74, 18, 74, 12, 28, 2, 14, 128,
-			132, 132, 0, 4, 216, 177, 216, 167, 217, 132, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 3, 72, 108, 51, 39, 55,
-			0, 216, 177, 216, 167, 217, 132, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 0, 216, 167, 216, 175, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 131, 3, 72, 108, 72, 0, 216, 167, 216, 180, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3,
-			72, 108, 91, 47, 0, 7, 6, 1, 49, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 88, 0, 1, 18, 66, 18, 74,
-			2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32,
-			12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217,
-			136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 176, 216, 18, 74, 2, 18, 68, 18, 74,
-			32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140,
-			18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68,
-			18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18,
-			74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74,
-			32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217,
-			2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32,
-			12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8,
-			162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167, 216, 136,
-			217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74,
-			2, 216, 171, 32, 12, 3, 88, 35, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 179, 32, 12,
-			0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 181, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216,
-			186, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 130, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68,
-			2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1,
-			18, 74, 2, 216, 176, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2,
-			18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128,
-			18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68,
-			0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8,
-			18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0,
-			8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0,
-			8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216,
-			2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8,
-			170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4,
-			8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 88, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0,
-			8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216,
-			18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18,
-			69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74,
-			28, 2, 14, 128, 132, 130, 3, 88, 37, 0, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 4, 8, 2,
-			18, 69, 217, 136, 18, 68, 32, 3, 88, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 4, 217, 136, 216, 167, 217,
-			132, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 88, 39, 55, 0, 217, 136, 216, 167, 217, 132, 8, 2, 216, 162, 18, 74,
-			18, 74, 14, 128, 132, 132, 0, 4, 2, 217, 145, 18, 73, 3, 88, 88, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 88,
-			88, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3,
-			88, 88, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12,
-			3, 88, 88, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 7, 6, 1, 50, 0, 4, 1, 18, 66, 18, 74, 2,
-			18, 68, 18, 74, 32, 3, 51, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12,
-			24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 177, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0,
-			2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128,
-			217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12,
-			12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136,
-			219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2,
-			18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18,
-			68, 18, 68, 2, 216, 175, 32, 12, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8,
-			133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18,
-			68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68,
-			18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69,
-			170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74,
-			2, 18, 68, 32, 3, 51, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18,
-			68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 177, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2,
-			18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217,
-			128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136,
-			216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68,
-			0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18,
-			68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18,
-			68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18,
-			74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8,
-			134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68,
-			32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216,
-			133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 217, 134,
-			218, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 51, 35, 50, 81, 0, 217, 134, 218, 175, 8, 2, 18, 69, 18, 74, 18,
-			74, 14, 128, 132, 131, 0, 217, 134, 218, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 217, 136, 216, 167, 217, 134, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 51, 35, 84, 108, 50, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3,
-			51, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32,
-			12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2,
-			18, 68, 32, 0, 4, 216, 182, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 51, 36, 88, 108, 0, 216, 182, 216, 167,
-			8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 182, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0,
-			216, 179, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 51, 36, 89, 108, 50, 0, 4, 219, 140, 216, 178, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 51, 37, 88, 0, 219, 140, 216, 178, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132,
-			131, 0, 219, 140, 216, 178, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3,
-			51, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 216, 168, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131,
-			3, 51, 39, 71, 108, 0, 4, 2, 217, 145, 18, 73, 3, 51, 51, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 51, 51,
-			35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 51, 51,
-			36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 51,
-			51, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 217, 134, 217, 135, 216, 167, 1, 18, 74, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 133, 3, 51, 108, 50, 107, 35, 0, 216, 167, 217, 134, 217, 135, 216, 167, 219, 140, 219, 140, 1, 18, 74, 18,
-			74, 18, 74, 2, 32, 14, 136, 128, 135, 3, 51, 108, 50, 107, 108, 37, 12, 0, 216, 167, 217, 134, 217, 135, 216, 167, 219, 140, 1, 18,
-			74, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 51, 108, 50, 107, 108, 57, 36, 0, 216, 167, 217, 134, 216, 167, 217, 134, 1, 18,
-			74, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 51, 108, 50, 108, 50, 0, 216, 167, 216, 179, 216, 170, 8, 2, 216, 162, 18, 74,
-			18, 74, 14, 128, 132, 132, 3, 51, 108, 89, 47, 0, 216, 167, 216, 179, 216, 170, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132,
-			3, 51, 108, 89, 47, 12, 0, 7, 6, 1, 51, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 88, 0, 1, 18, 66,
-			18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18,
-			72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74,
-			2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 178, 216, 18, 74, 2, 18, 68,
-			18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217,
-			128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217,
-			128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136,
-			219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2,
-			18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18,
-			68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71,
-			18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8,
-			133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18,
-			68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12,
-			0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167,
-			216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66,
-			18, 66, 2, 18, 68, 32, 3, 88, 35, 0, 1, 18, 66, 18, 74, 2, 216, 171, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32,
-			12, 0, 1, 18, 66, 18, 74, 2, 216, 179, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12, 0, 1, 18, 66, 18, 74, 2,
-			216, 181, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 130, 32, 12, 0, 1, 18, 68,
-			18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1,
-			18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 178, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128,
-			217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217,
-			136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71,
-			32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18,
-			74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12,
-			0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8,
-			133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133,
-			217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170,
-			216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217,
-			2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 216, 177, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131,
-			3, 88, 35, 51, 72, 0, 216, 177, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 216, 175, 217, 134, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 88, 35, 72, 35, 50, 0, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 12, 14,
-			136, 128, 131, 3, 88, 35, 72, 36, 12, 0, 216, 175, 219, 128, 1, 18, 74, 18, 74, 2, 32, 12, 14, 136, 128, 131, 3, 88, 35, 72,
-			36, 57, 36, 0, 216, 175, 218, 175, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 88, 35, 72, 36, 81, 37, 0, 4,
-			8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 88, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0,
-			8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216,
-			18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18,
-			69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 219, 140, 216, 177, 8, 2, 18, 69, 18, 74,
-			18, 74, 28, 2, 14, 128, 132, 131, 3, 88, 37, 51, 0, 219, 140, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132,
-			131, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 88, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 216,
-			175, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 88, 39, 72, 108, 0, 4, 217, 136, 216, 175, 8, 2, 18, 69, 18,
-			74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 88, 40, 72, 0, 217, 136, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128,
-			132, 131, 0, 4, 2, 217, 145, 18, 73, 3, 88, 88, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 88, 88, 35, 0, 8,
-			18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 88, 88, 36, 0,
-			8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 88, 88, 39,
-			0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 1, 45, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 88,
-			108, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 88, 108, 51, 0, 216, 167, 216, 175, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 131, 3, 88, 108, 72, 0, 7, 6, 1, 52, 0, 4, 216, 170, 1, 18, 68, 18, 74, 2, 32, 12, 12, 24,
-			14, 136, 128, 130, 3, 35, 89, 47, 0, 216, 170, 1, 45, 18, 67, 2, 32, 12, 24, 14, 136, 128, 130, 0, 216, 170, 1, 45, 18, 68,
-			2, 32, 12, 24, 14, 136, 128, 130, 0, 216, 170, 216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 36, 89, 47,
-			108, 50, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 89, 0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18,
-			66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18,
-			68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 179, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0,
-			2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128,
-			217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12,
-			12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136,
-			219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2,
-			18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162,
-			216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68,
-			32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8,
-			140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162,
-			216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2,
-			219, 140, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32,
-			12, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 3, 89, 12, 35, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68,
-			32, 12, 3, 89, 12, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18,
-			68, 32, 12, 3, 89, 12, 39, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 89, 35, 0, 1, 18, 66, 18, 74, 2, 216, 176,
-			32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 178, 32, 12, 0, 1, 18, 66, 18, 74,
-			2, 216, 180, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 182, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 184, 32, 12, 0, 1, 18,
-			66, 18, 74, 2, 217, 132, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1,
-			18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 179, 12,
-			12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128,
-			18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18,
-			68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18,
-			70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18,
-			68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74,
-			32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18,
-			74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2,
-			18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8,
-			170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18,
-			69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 217, 134, 216, 172, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 35, 50, 75, 0, 4, 217, 134, 218, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132,
-			131, 3, 89, 35, 50, 81, 0, 217, 134, 218, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 216, 177, 8, 2, 18,
-			69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 89, 35, 51, 0, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128,
-			132, 130, 0, 216, 177, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 35, 51, 108, 0, 4, 216, 168, 216, 178, 8,
-			2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 89, 35, 71, 88, 0, 216, 168, 216, 178, 8, 2, 216, 162, 18, 74, 18, 74, 14,
-			128, 132, 131, 0, 217, 136, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 89, 35, 84, 108, 51, 0, 4, 8,
-			18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 89, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8,
-			134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18,
-			69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69,
-			2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 216, 170, 8, 2, 32, 3, 89, 36, 47, 0, 216, 170,
-			219, 140, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 89, 36, 47, 37, 88, 0, 4, 217, 190, 219, 140, 216, 175, 8,
-			2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 89, 36, 48, 37, 72, 0, 217, 190, 219, 140, 216, 175, 8, 2, 216, 162, 18, 74,
-			18, 74, 14, 128, 132, 132, 0, 217, 190, 219, 140, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 177, 216, 180,
-			216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 89, 36, 51, 36, 91, 47, 0, 4, 219, 140, 216, 175, 8, 2, 18, 69,
-			18, 74, 18, 74, 14, 128, 132, 131, 3, 89, 36, 57, 57, 36, 72, 0, 219, 140, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128,
-			132, 131, 0, 219, 140, 217, 145, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 219, 140, 217, 145, 216, 175, 8, 2,
-			216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 217, 129, 219, 140, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132,
-			3, 89, 36, 83, 37, 72, 0, 217, 129, 219, 140, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 8, 2, 18,
-			69, 217, 136, 18, 68, 32, 3, 89, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 217, 136, 216, 161, 8, 2, 18,
-			74, 18, 74, 14, 128, 132, 131, 3, 89, 40, 19, 36, 0, 4, 216, 170, 1, 18, 66, 18, 74, 2, 32, 12, 12, 24, 14, 136, 128, 130,
-			3, 89, 47, 0, 216, 170, 1, 45, 18, 66, 2, 32, 12, 24, 14, 136, 128, 130, 0, 216, 170, 216, 167, 217, 134, 1, 18, 66, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 89, 47, 108, 50, 0, 4, 2, 217, 145, 18, 73, 3, 89, 89, 0, 2, 217, 145, 32, 0, 2, 217, 145,
-			18, 68, 3, 89, 89, 35, 0, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 89, 89, 39, 0, 216, 167, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 130, 3, 89, 108, 0, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 108, 50, 0,
-			4, 216, 167, 217, 134, 216, 170, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 89, 108, 50, 47, 37, 0, 216, 167,
-			217, 134, 216, 170, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32,
-			14, 136, 128, 131, 3, 89, 108, 51, 0, 216, 167, 217, 132, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 108, 55, 0, 216,
-			167, 217, 132, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 89, 108, 55, 108, 51, 0, 216, 167, 216, 178, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 108, 88, 0, 7, 6, 1, 53, 0, 4, 1, 18, 68, 18, 74, 18, 74, 2, 32,
-			24, 14, 136, 128, 129, 3, 35, 91, 0, 1, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 217, 136, 1, 18, 68, 18,
-			74, 2, 32, 24, 14, 136, 128, 130, 3, 36, 91, 39, 0, 217, 136, 217, 134, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3,
-			36, 91, 40, 50, 0, 4, 216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 36, 91, 108, 50, 0, 216, 167,
-			217, 134, 1, 136, 217, 18, 66, 2, 32, 24, 14, 136, 128, 131, 0, 1, 140, 219, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128,
-			129, 3, 57, 35, 91, 0, 4, 216, 167, 217, 134, 1, 140, 219, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 57, 36, 91, 108,
-			50, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 216, 167, 217, 134, 1,
-			140, 219, 175, 218, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 140, 219, 18,
-			66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 91, 0, 1, 18, 66, 18,
-			74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72,
-			32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2,
-			217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 180, 216, 18, 74, 2, 18, 68, 18,
-			74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128,
-			217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128,
-			18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219,
-			140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18,
-			68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68,
-			18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18,
-			74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133,
-			217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68,
-			32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0,
-			8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167, 216,
-			136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 216, 167, 216, 175,
-			8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 91, 6, 108, 72, 0, 216, 167, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74,
-			14, 128, 132, 131, 0, 4, 216, 167, 217, 135, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 91, 6, 108, 107, 0, 216, 167,
-			217, 135, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 91, 35, 0, 1,
-			18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32,
-			0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 180, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74,
-			18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2,
-			217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8,
-			2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70,
-			18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18,
-			68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68,
-			32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74,
-			0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134,
-			217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0,
-			8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216,
-			133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 217, 134, 216, 168, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 91, 35, 50, 71, 36, 12, 0, 217, 136, 217, 134, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 91, 35,
-			84, 35, 50, 72, 36, 12, 0, 217, 136, 217, 134, 216, 175, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 91, 35, 84,
-			35, 50, 72, 36, 57, 36, 0, 217, 135, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 35, 107, 51, 0, 4, 8,
-			18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 91, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8,
-			134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18,
-			69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69,
-			2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 218, 169, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 131, 3, 91, 36, 49, 35, 50, 0, 217, 134, 216, 167, 216, 179, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 91, 36,
-			50, 108, 89, 0, 217, 134, 216, 167, 216, 179, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 91, 36, 50, 108,
-			89, 108, 50, 0, 217, 134, 216, 167, 216, 174, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 91, 36, 50, 108, 101, 47,
-			0, 4, 219, 140, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 91, 37, 51, 20, 0, 219, 140, 216, 177, 8, 2,
-			216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 91, 39, 0, 8, 167, 216, 18, 69,
-			170, 216, 2, 18, 68, 32, 12, 0, 217, 136, 1, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 130, 0, 217, 133, 216, 167, 216, 177, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 91, 39, 65, 108, 51, 0, 216, 175, 217, 134, 1, 18, 74, 18, 74, 18, 74, 2, 32,
-			14, 136, 128, 131, 3, 91, 39, 72, 35, 50, 0, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 39, 72,
-			36, 12, 0, 216, 175, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 39, 72, 36, 57, 36, 0, 216, 175, 218, 175,
-			216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 91, 39, 72, 36, 81, 108, 50, 0, 217, 136, 219, 140, 219, 140,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 91, 40, 37, 12, 0, 217, 136, 217, 134, 1, 18, 66, 18, 74, 2, 32, 24, 14,
-			136, 128, 131, 3, 91, 40, 50, 0, 217, 136, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 40, 51, 0, 4, 2,
-			217, 145, 18, 73, 3, 91, 91, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 91, 91, 35, 0, 8, 18, 69, 133, 217, 2,
-			217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 91, 91, 36, 0, 8, 18, 69, 170, 216,
-			133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 91, 91, 39, 0, 8, 18, 69, 170,
-			216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 108, 72, 0, 216,
-			167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 91, 108, 107, 0, 7, 6, 1, 54, 0, 4, 1, 18, 66, 18, 74,
-			2, 18, 68, 18, 74, 32, 3, 89, 0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24,
-			0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70,
-			18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74,
-			18, 74, 32, 0, 1, 181, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217,
-			128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8,
-			2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68,
-			18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2,
-			18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0,
-			8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18,
-			68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217,
-			2, 18, 69, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 3, 89, 12, 35, 0, 4, 8, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 12, 3, 89, 12, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 8, 18, 69,
-			170, 216, 2, 217, 145, 18, 68, 32, 12, 3, 89, 12, 39, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 89, 35, 0, 1, 18,
-			66, 18, 74, 2, 216, 176, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 178, 32, 12,
-			0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 182, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216,
-			184, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 132, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68,
-			2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1,
-			18, 74, 2, 216, 181, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2,
-			18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128,
-			18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68,
-			0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8,
-			18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0,
-			8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0,
-			8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216,
-			2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8,
-			170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4,
-			216, 175, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 89, 35, 72, 34, 0, 216, 175, 216, 177, 8, 2, 216, 162,
-			18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 89, 36, 0, 8, 18, 69, 170,
-			216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18,
-			69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2,
-			18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 217,
-			129, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 89, 36, 83, 35, 47, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68,
-			32, 3, 89, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 4, 2, 217, 145, 18, 73, 3, 89, 89, 0, 2, 217,
-			145, 32, 0, 2, 217, 145, 18, 68, 3, 89, 89, 35, 0, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 89, 89, 39, 0, 4,
-			216, 167, 216, 173, 216, 168, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 89, 108, 107, 36, 71, 0, 216, 167, 216, 173, 216,
-			168, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 7, 6, 1, 55, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74,
-			32, 3, 88, 0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0,
-			1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68,
-			18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1,
-			182, 216, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2,
-			217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66,
-			0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140,
-			18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74,
-			18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68,
-			18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8,
-			18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18,
-			69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0,
-			8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8,
-			162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217,
-			2, 219, 140, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 88, 35, 0, 1, 18, 66, 18, 74, 2, 216, 171, 32, 12, 0, 1, 18,
-			66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 179, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12,
-			0, 1, 18, 66, 18, 74, 2, 216, 181, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217,
-			130, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2,
-			18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 182, 12, 12, 12, 0, 1, 18,
-			74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217,
-			128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217,
-			136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8,
-			18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18,
-			68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68,
-			167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32,
-			12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68,
-			18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12,
-			12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32,
-			12, 3, 88, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18,
-			68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8,
-			167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18,
-			69, 133, 217, 2, 18, 68, 32, 0, 4, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 88, 36, 72, 72,
-			36, 0, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 216, 175, 217, 145, 8, 2, 18, 69, 18, 74, 18,
-			74, 14, 128, 132, 131, 0, 216, 175, 217, 145, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 8, 2, 18, 69, 217, 136,
-			18, 68, 32, 3, 88, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 4, 2, 217, 145, 18, 73, 3, 88, 88, 0,
-			2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 88, 88, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4,
-			8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 88, 88, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32,
-			0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 88, 88, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12,
-			0, 7, 6, 1, 56, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 47, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32,
-			12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32,
-			0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 183, 216, 18,
-			74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18,
-			67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217,
-			128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0,
-			8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18,
-			69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219,
-			167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2,
-			216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140,
-			32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 47, 35,
-			0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18,
-			71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 183, 12, 12, 12, 0, 1, 18, 74, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128,
-			0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67,
-			0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2,
-			18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74,
-			18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0,
-			8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18,
-			68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170,
-			216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 217, 132,
-			216, 168, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 47, 35, 55, 35, 71, 0, 217, 132, 216, 168, 216, 167, 217, 134, 1, 18,
-			74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 47, 35, 55, 35, 71, 108, 50, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32,
-			3, 47, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68,
-			32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216,
-			18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217,
-			2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 47, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32,
-			0, 4, 2, 217, 145, 18, 73, 3, 47, 47, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 47, 47, 35, 0, 8, 18, 69,
-			133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 47, 47, 36, 0, 8, 18, 69,
-			170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 47, 47, 39, 0, 8, 18,
-			69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 7, 6, 1, 57, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 88,
-			0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68,
-			18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32,
-			0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 184, 216, 18,
-			74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18,
-			67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217,
-			128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0,
-			8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18,
-			69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219,
-			167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2,
-			216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140,
-			32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0,
-			4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 88, 35, 0, 1, 18, 66, 18, 74, 2, 216, 171, 32, 12, 0, 1, 18, 66, 18, 74,
-			2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 179, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 180, 32, 12, 0, 1, 18,
-			66, 18, 74, 2, 216, 181, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 130, 32, 12,
-			0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 70, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18,
-			71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 216, 184, 12, 12, 12, 0, 1, 18, 74, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128,
-			0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67,
-			0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2,
-			18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74,
-			18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0,
-			8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32,
-			12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8,
-			170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 88,
-			36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12,
-			12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217,
-			2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 88, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32,
-			12, 0, 4, 2, 217, 145, 18, 73, 3, 88, 88, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 88, 88, 35, 0, 8, 18,
-			69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 88, 88, 36, 0, 8,
-			18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 88, 88, 39, 0,
-			8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 7, 6, 1, 58, 0, 8, 2, 216, 167, 3, 0, 1, 18, 74, 2, 32, 3,
-			6, 19, 0, 4, 216, 168, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 6, 35, 12, 71, 72, 0, 216, 168, 216,
-			175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 19, 0, 1,
-			18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70,
-			18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 185, 216, 18, 74,
-			2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217,
-			128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217,
-			128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 68, 167, 216, 2, 32, 0, 8, 18, 68, 18, 68, 170, 216, 2, 32, 0, 8, 18, 68, 18, 74, 18, 66, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 69, 18, 69, 133, 217, 2, 32, 0, 8, 18, 69, 18,
-			69, 170, 216, 133, 217, 2, 32, 0, 8, 18, 69, 167, 216, 18, 69, 170, 216, 2, 32, 0, 8, 18, 69, 167, 216, 18, 69, 170, 216, 133,
-			217, 2, 32, 0, 8, 18, 69, 170, 216, 18, 69, 133, 217, 2, 32, 0, 8, 18, 69, 170, 216, 179, 216, 167, 216, 2, 216, 167, 18, 68,
-			32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18,
-			74, 18, 74, 134, 217, 133, 217, 2, 32, 0, 8, 18, 74, 167, 216, 18, 74, 133, 217, 2, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219,
-			167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0,
-			8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 8, 170, 216, 179, 216, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 0, 4, 2, 217, 145, 18, 73, 3, 19, 19, 0, 2,
-			217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 19, 19, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8,
-			18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 19, 19, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4,
-			8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 19, 19, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 4,
-			1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 19, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18,
-			68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74,
-			2, 216, 185, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68,
-			0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68,
-			0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8,
-			18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0,
-			8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0,
-			8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 167, 216,
-			136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18,
-			68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68,
-			32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 19, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2,
-			18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12,
-			0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216,
-			136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18,
-			68, 32, 3, 19, 39, 0, 8, 2, 217, 136, 3, 35, 0, 8, 2, 18, 68, 3, 35, 12, 0, 4, 217, 132, 219, 140, 1, 18, 74, 18,
-			74, 2, 32, 24, 14, 136, 128, 131, 3, 35, 12, 55, 37, 0, 217, 132, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131,
-			0, 217, 132, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 216, 168, 216, 175, 216, 167, 217, 132, 8, 2, 18,
-			69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 35, 71, 72, 39, 55, 6, 0, 216, 168, 216, 175, 216, 167, 217, 132, 8, 2, 216, 162, 18,
-			74, 18, 74, 14, 128, 132, 133, 0, 8, 2, 219, 140, 3, 36, 0, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 39, 0, 7, 6, 1,
-			59, 0, 4, 219, 140, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 6, 104, 17, 36, 57, 51, 36, 0, 219, 140,
-			216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 104, 17,
-			0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1,
-			18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 186, 216, 18, 74, 2,
-			18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0,
-			2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2,
-			217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18,
-			68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8,
-			18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12,
-			0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216,
-			2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175,
-			32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0,
-			8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 104, 17, 35, 0,
-			1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74,
-			32, 0, 1, 18, 74, 2, 216, 186, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74,
-			32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219,
-			140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18,
-			68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74,
-			18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74,
-			18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0,
-			8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18,
-			68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170,
-			216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8,
-			18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 104, 17, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8,
-			134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18,
-			69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2,
-			18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 104, 17, 39,
-			0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 217, 132, 216, 167, 217, 133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			132, 3, 104, 17, 39, 55, 108, 65, 0, 217, 132, 216, 167, 217, 133, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 132,
-			216, 167, 217, 133, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 2, 217, 145, 18, 73, 3, 104, 17, 104, 17, 0, 2,
-			217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 104, 17, 104, 17, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0,
-			4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 104, 17, 104, 17, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18,
-			68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 104, 17, 104, 17, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145,
-			18, 68, 32, 12, 0, 7, 6, 1, 65, 0, 3, 0, 7, 6, 1, 66, 0, 4, 1, 18, 70, 18, 68, 18, 74, 2, 18, 70, 32, 3,
-			35, 83, 0, 8, 18, 71, 18, 68, 162, 216, 2, 18, 70, 32, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 83, 0,
-			1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18,
-			66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0,
-			1, 18, 71, 18, 68, 2, 18, 70, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 1, 129, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2,
-			217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128,
-			217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0,
-			8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18,
-			74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68,
-			2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68,
-			18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71,
-			162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18,
-			68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2,
-			18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32,
-			12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68,
-			32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 83,
-			35, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32, 12, 0, 1, 18, 66, 18, 74, 2,
-			217, 130, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 132, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 133, 32, 12, 0, 1, 18, 66,
-			18, 74, 2, 217, 134, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0,
-			1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 129, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18,
-			74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217,
-			128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2,
-			217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71,
-			18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18,
-			74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18,
-			68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18,
-			68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12,
-			0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68,
-			32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32,
-			12, 12, 0, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 83, 35, 51, 0, 216, 177, 217, 134, 218, 175, 219, 140, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 83, 35, 51, 35, 50, 81, 37, 0, 216, 177, 219, 140, 216, 168, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 83, 35, 51, 37, 71, 0, 216, 177, 217, 133, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 83, 35, 51, 65, 108, 0, 216, 177, 216, 179, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 83, 35, 51, 89, 108,
-			0, 4, 216, 177, 216, 167, 8, 2, 18, 69, 18, 74, 28, 2, 14, 128, 132, 131, 3, 83, 35, 51, 108, 0, 216, 177, 216, 167, 8, 2,
-			216, 162, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 83, 36, 0, 8, 18,
-			69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167,
-			216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133,
-			217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32,
-			0, 216, 180, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 83, 36, 91, 108, 50, 0, 4, 8, 2, 18, 69,
-			217, 136, 18, 68, 32, 3, 83, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 216, 177, 217, 136, 216, 180, 1, 18,
-			74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 83, 39, 51, 40, 91, 0, 4, 2, 217, 145, 18, 73, 3, 83, 83, 0, 2, 217, 145, 32,
-			0, 4, 2, 217, 145, 18, 68, 3, 83, 83, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 12, 3, 83, 83, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18,
-			69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 83, 83, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 217,
-			133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 83, 108, 65, 0, 7, 6, 1, 67, 0, 4, 8, 18, 69, 170, 216, 133, 217,
-			2, 18, 68, 32, 3, 104, 12, 104, 17, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 1, 18, 66, 18,
-			74, 2, 18, 68, 18, 74, 32, 3, 104, 17, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68,
-			18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74,
-			18, 74, 32, 0, 1, 130, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217,
-			128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8,
-			2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68,
-			18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66,
-			2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0,
-			8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18,
-			68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 216, 167, 216, 168,
-			217, 132, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 104, 17, 6, 108, 71, 36, 55, 36, 0, 216, 167, 216, 168, 217, 132,
-			8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 104, 17, 35, 0, 1, 18,
-			68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0,
-			1, 18, 74, 2, 217, 130, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0,
-			2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217,
-			128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18,
-			68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0,
-			8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68,
-			2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68,
-			32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74,
-			0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134,
-			217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32,
-			12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133,
-			217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69,
-			134, 217, 133, 217, 2, 18, 68, 32, 3, 104, 17, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217,
-			167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133,
-			217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68,
-			32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 216, 177, 217, 133, 216, 178, 8, 2, 18, 69, 18, 74, 18, 74, 14,
-			128, 132, 132, 3, 104, 17, 36, 51, 65, 36, 88, 0, 216, 177, 217, 133, 216, 178, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132,
-			0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 104, 17, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 2,
-			217, 145, 18, 73, 3, 104, 17, 104, 17, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 104, 17, 104, 17, 35, 0, 8, 18,
-			69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 104, 17, 104, 17, 39, 0,
-			8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 7, 6, 1, 69, 0, 4, 1, 18, 70, 18, 68, 18, 74, 2, 18, 70, 32,
-			3, 35, 55, 0, 8, 18, 71, 18, 68, 162, 216, 2, 18, 70, 32, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 55,
-			0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68,
-			18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0, 1, 18, 71, 18, 68, 2, 18, 70, 32, 0, 1,
-			18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 132, 217, 18, 74, 2,
-			18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0,
-			2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2,
-			217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18,
-			68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0,
-			8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8,
-			18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12,
-			0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216,
-			2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175,
-			32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 2, 217, 132, 217, 135, 32, 12, 12, 12, 0, 8,
-			167, 216, 2, 217, 132, 217, 145, 217, 135, 32, 12, 12, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 167,
-			216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66,
-			18, 66, 2, 18, 68, 32, 3, 55, 35, 0, 1, 18, 66, 18, 74, 2, 216, 177, 32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32,
-			12, 0, 1, 18, 66, 18, 74, 2, 217, 130, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 133, 32, 12, 0, 1, 18, 66, 18, 74, 2,
-			217, 134, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74,
-			2, 217, 132, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68,
-			0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68,
-			0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8,
-			18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68,
-			2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68,
-			18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0,
-			8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133,
-			217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217,
-			2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216,
-			2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2,
-			18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 55, 36, 0, 8, 18, 69,
-			170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216,
-			18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217,
-			2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0,
-			4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 55, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 217, 136, 218,
-			175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 55, 39, 81, 0, 217, 136, 218, 152, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 131, 3, 55, 39, 90, 0, 217, 136, 218, 152, 219, 140, 218, 169, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 55, 39, 90,
-			37, 49, 0, 4, 2, 217, 145, 18, 73, 3, 55, 55, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 55, 55, 35, 0, 8,
-			18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 55, 55, 36, 0,
-			8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 55, 55, 39,
-			0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 132, 217, 167, 216, 2, 217, 135, 32, 12, 12, 3, 55, 108, 0,
-			8, 132, 217, 167, 216, 2, 217, 145, 217, 135, 32, 0, 7, 6, 1, 70, 0, 4, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136,
-			128, 129, 3, 35, 65, 0, 1, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 217, 136, 217, 134, 1, 18, 68, 18, 74,
-			2, 32, 24, 14, 136, 128, 131, 3, 36, 65, 40, 50, 0, 4, 216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 131, 3,
-			36, 65, 108, 50, 0, 216, 167, 217, 134, 1, 136, 217, 18, 66, 2, 32, 14, 136, 128, 131, 0, 4, 216, 167, 217, 134, 1, 140, 219, 18,
-			68, 18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 36, 65, 108, 50, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 18, 68, 18, 74, 18,
-			74, 2, 32, 24, 14, 136, 128, 131, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128,
-			131, 0, 216, 167, 217, 134, 1, 140, 219, 175, 218, 140, 219, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 4, 1, 18, 66, 18,
-			74, 2, 18, 68, 18, 74, 32, 3, 65, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18,
-			66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18,
-			74, 32, 0, 1, 133, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 12, 12, 0, 2, 32, 0, 2,
-			217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128,
-			217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0,
-			8, 2, 217, 136, 18, 69, 217, 136, 18, 68, 32, 12, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67,
-			0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66,
-			0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2,
-			18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18,
-			68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 18,
-			69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0,
-			8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8,
-			162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217,
-			2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32,
-			3, 65, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2,
-			18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 133, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74,
-			18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0,
-			2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 18, 69, 18, 69, 18, 68, 32, 12, 0, 8, 2, 18, 69,
-			18, 69, 217, 136, 18, 68, 32, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68,
-			0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8,
-			18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32,
-			12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18,
-			74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2,
-			18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8,
-			167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217,
-			145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145,
-			18, 68, 32, 12, 12, 0, 217, 134, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 35, 50, 36, 91, 0, 217, 134,
-			216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 35, 50, 72, 0, 216, 177, 216, 175, 1, 18, 74, 18, 74, 2, 32,
-			14, 136, 128, 131, 3, 65, 35, 51, 72, 0, 216, 177, 216, 175, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3,
-			65, 35, 51, 72, 108, 50, 0, 4, 216, 175, 216, 167, 216, 177, 1, 170, 216, 140, 219, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3,
-			65, 35, 72, 108, 51, 0, 216, 175, 216, 167, 216, 177, 1, 170, 216, 145, 217, 140, 219, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 0,
-			217, 130, 216, 167, 217, 133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 65, 35, 104, 17, 108, 65, 0, 4, 217, 135, 216, 175,
-			219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 65, 35, 107, 72, 37, 0, 217, 135, 216, 175, 219, 140, 8, 2, 18, 69,
-			18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 135, 216, 175, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 162,
-			216, 168, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 35, 108, 71, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68,
-			32, 3, 65, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18,
-			68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167,
-			216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133,
-			217, 2, 18, 68, 32, 0, 4, 218, 175, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 65, 36, 81, 108,
-			0, 218, 175, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 216, 173, 217, 136, 216, 177, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 132, 3, 65, 36, 107, 84, 35, 51, 0, 4, 219, 140, 8, 2, 18, 68, 18, 74, 12, 28, 2, 14, 128, 132,
-			130, 3, 65, 37, 0, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 219, 140, 8, 2, 217, 136, 18, 74,
-			18, 74, 28, 2, 14, 128, 132, 130, 0, 4, 219, 140, 218, 169, 216, 177, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133,
-			3, 65, 37, 49, 51, 39, 0, 219, 140, 218, 169, 216, 177, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 219,
-			140, 216, 177, 216, 178, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 65, 37, 51, 88, 108, 0, 219, 140, 216, 177,
-			216, 178, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 219, 140, 217, 132, 219, 140, 8, 2, 18, 69, 18, 74,
-			18, 74, 28, 2, 14, 128, 132, 132, 3, 65, 37, 55, 37, 0, 219, 140, 217, 132, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2,
-			14, 128, 132, 132, 0, 4, 8, 2, 18, 69, 18, 69, 217, 145, 18, 68, 32, 12, 3, 65, 39, 0, 8, 2, 18, 69, 216, 170, 18, 69,
-			18, 68, 32, 0, 8, 2, 18, 69, 217, 136, 18, 68, 32, 0, 8, 2, 216, 170, 18, 69, 18, 69, 18, 68, 32, 12, 0, 8, 2, 216,
-			170, 18, 69, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 2, 216, 170, 18, 69, 216, 167, 18, 69, 18, 68, 32, 0, 8, 2, 216, 170,
-			18, 69, 216, 167, 18, 69, 219, 140, 32, 0, 8, 2, 216, 179, 216, 170, 18, 69, 18, 69, 18, 68, 32, 0, 8, 2, 217, 134, 18, 69,
-			18, 69, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 216, 177, 216, 170, 216, 182, 219, 140, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 133, 3, 65, 39, 51, 47, 36, 88, 108, 0, 216, 177, 216, 170, 216, 182, 219, 140, 8, 2, 18, 69, 18,
-			74, 18, 74, 14, 128, 132, 133, 0, 216, 177, 216, 170, 216, 182, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 216,
-			177, 216, 186, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 39, 51, 104, 17, 0, 4, 216, 172, 216, 170, 216, 168, 219, 140,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 65, 39, 75, 47, 35, 71, 108, 0, 216, 172, 216, 170, 216, 168, 219, 140, 8, 2,
-			18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 0, 216, 172, 216, 170, 216, 168, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132,
-			133, 0, 4, 216, 181, 216, 183, 217, 129, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 65, 39, 89, 47, 35, 83, 108,
-			0, 216, 181, 216, 183, 217, 129, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 0, 216, 181, 216, 183, 217, 129, 219, 140,
-			8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 216, 180, 216, 170, 216, 168, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 133, 3, 65, 39, 91, 47, 35, 71, 108, 0, 216, 180, 216, 170, 216, 168, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128,
-			132, 133, 0, 216, 180, 216, 170, 216, 168, 219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 216, 173, 217, 133, 216,
-			175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 65, 39, 107, 35, 65, 65, 35, 72, 0, 216, 173, 217, 133, 216, 175, 8, 2,
-			18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 173, 217, 133, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0,
-			216, 173, 217, 133, 217, 145, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 0, 216, 173, 217, 133, 217, 145, 216, 175, 8, 2,
-			18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 0, 216, 173, 217, 133, 217, 145, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132,
-			133, 0, 4, 216, 173, 216, 179, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 65, 39, 107, 89, 36, 50, 0, 216, 173,
-			216, 179, 217, 134, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 216, 173, 216, 179, 217, 134, 8, 2, 216, 162, 18, 74, 18,
-			74, 14, 128, 132, 132, 0, 217, 136, 217, 134, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 40, 50, 0, 4, 217, 136, 217,
-			132, 216, 170, 219, 140, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 65, 40, 55, 47, 37, 0, 217, 136, 217, 132, 216, 170,
-			219, 140, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 2, 217, 145, 18, 73, 3, 65, 65, 0, 2, 217, 145, 32, 0,
-			4, 2, 217, 145, 18, 68, 3, 65, 65, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216,
-			133, 217, 2, 18, 68, 32, 3, 65, 65, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170,
-			216, 2, 18, 68, 32, 12, 12, 3, 65, 65, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 4, 216, 167, 218, 169,
-			216, 177, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 133, 3, 65, 108, 49, 51, 39, 0, 216, 167, 218, 169, 216, 177, 217,
-			136, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 133, 0, 4, 216, 167, 219, 140, 218, 169, 216, 177, 217, 136, 8, 2, 18, 69, 18,
-			74, 18, 74, 14, 128, 132, 134, 3, 65, 108, 57, 49, 51, 39, 0, 216, 167, 219, 140, 218, 169, 216, 177, 217, 136, 8, 2, 216, 162, 18,
-			74, 18, 74, 14, 128, 132, 134, 0, 4, 216, 167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 65, 108, 107, 0, 216,
-			167, 217, 135, 8, 2, 18, 68, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 216, 167, 217, 135, 8, 2, 216, 162, 18, 74, 18, 74,
-			28, 2, 14, 128, 132, 131, 0, 7, 6, 1, 71, 0, 4, 8, 2, 18, 68, 18, 74, 18, 74, 28, 2, 14, 128, 132, 129, 3, 6, 50,
-			35, 0, 8, 2, 219, 140, 216, 167, 18, 74, 28, 2, 14, 128, 132, 129, 0, 219, 140, 8, 2, 216, 162, 18, 69, 18, 74, 18, 74, 28,
-			2, 14, 128, 132, 130, 3, 6, 50, 35, 57, 0, 4, 217, 133, 219, 140, 8, 2, 18, 69, 18, 74, 28, 2, 14, 128, 132, 131, 3, 6,
-			50, 36, 65, 37, 0, 217, 133, 219, 140, 8, 2, 216, 162, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4, 1, 18, 68, 18, 74, 18, 74,
-			2, 32, 24, 14, 136, 128, 129, 3, 35, 50, 0, 1, 18, 70, 18, 68, 18, 74, 2, 18, 70, 32, 0, 8, 18, 71, 18, 68, 162, 216,
-			2, 18, 70, 32, 0, 216, 170, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 35, 50, 35, 47, 0, 217, 133, 1,
-			18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 35, 50, 35, 65, 0, 216, 180, 1, 18, 68, 18, 74, 18, 74, 2, 32,
-			24, 14, 136, 128, 130, 3, 35, 50, 35, 91, 0, 216, 170, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128,
-			132, 3, 35, 50, 36, 47, 40, 50, 0, 216, 170, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3,
-			35, 50, 36, 47, 108, 50, 0, 217, 133, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 35, 50,
-			36, 65, 40, 50, 0, 217, 133, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 35, 50, 36, 65,
-			108, 50, 0, 216, 180, 217, 136, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 35, 50, 36, 91, 40, 50,
-			0, 216, 180, 216, 167, 217, 134, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 35, 50, 36, 91, 108, 50, 0, 216,
-			175, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 35, 50, 72, 0, 216, 175, 217, 135, 1, 18, 68, 18, 74, 2,
-			32, 14, 136, 128, 131, 3, 35, 50, 72, 36, 0, 216, 175, 219, 128, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 131, 3, 35, 50, 72,
-			36, 57, 36, 0, 216, 175, 218, 175, 219, 140, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 35, 50, 72, 36, 81, 37, 0, 216,
-			175, 218, 175, 216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 133, 3, 35, 50, 72, 36, 81, 108, 50, 0, 4, 1, 18,
-			66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 50, 0, 1, 18, 66, 18, 74, 2, 18, 68, 32, 0, 1, 18, 66, 18, 74, 2, 18, 72,
-			32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 68, 2, 18, 71, 32, 0,
-			1, 18, 71, 18, 68, 2, 18, 70, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 1, 134, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2,
-			217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128,
-			217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0,
-			8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18,
-			74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18,
-			68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18,
-			66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32,
-			0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 69, 18, 68, 32, 0, 8, 133, 217, 2, 216, 170,
-			18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8,
-			162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2,
-			216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217,
-			2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 66, 2, 18, 68, 32, 3, 50, 35, 0, 1, 18, 66, 18, 74, 2, 216, 177,
-			32, 12, 0, 1, 18, 66, 18, 74, 2, 216, 186, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 130, 32, 12, 0, 1, 18, 66, 18, 74,
-			2, 217, 132, 32, 12, 0, 1, 18, 66, 18, 74, 2, 217, 133, 32, 12, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68,
-			18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 134, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18,
-			68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128,
-			18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216,
-			167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0,
-			8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12,
-			0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18,
-			68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167,
-			216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145,
-			18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18,
-			68, 32, 12, 12, 0, 218, 169, 216, 177, 216, 175, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 50, 35, 49, 35, 51,
-			72, 35, 50, 0, 217, 134, 216, 175, 218, 175, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 50, 35, 50, 72,
-			36, 81, 108, 50, 0, 217, 133, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 50, 35, 65, 108, 0, 217, 133, 216, 167,
-			219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 35, 65, 108, 57, 36, 0, 217, 136, 216, 177, 216, 175, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 35, 84, 35, 51, 72, 0, 217, 136, 216, 167, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 132, 3, 50, 35, 84, 108, 88, 0, 216, 180, 216, 175, 217, 134, 1, 18, 74, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3,
-			50, 35, 91, 39, 72, 35, 50, 0, 217, 130, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 50, 35, 104, 17, 37, 0,
-			4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 12, 3, 50, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32,
-			0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167,
-			216, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217,
-			18, 69, 2, 18, 68, 32, 12, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 218, 175, 216, 167, 216, 177, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 132, 3, 50, 36, 81, 108, 51, 0, 217, 136, 216, 180, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			132, 3, 50, 36, 84, 36, 91, 47, 0, 217, 136, 219, 140, 216, 179, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 36, 84,
-			37, 89, 0, 218, 152, 216, 167, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 36, 90, 108, 72, 0, 216, 180, 219,
-			140, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 36, 91, 37, 50, 0, 216, 180, 216, 167, 217, 134, 216, 175, 217,
-			135, 1, 18, 74, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 50, 36, 91, 108, 50, 72, 36, 12, 0, 216, 180, 216, 167, 217, 134,
-			216, 175, 219, 128, 1, 18, 74, 18, 74, 18, 74, 2, 32, 14, 136, 128, 134, 3, 50, 36, 91, 108, 50, 72, 36, 57, 36, 0, 4, 219,
-			140, 218, 169, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 3, 50, 37, 49, 40, 0, 219, 140, 218, 169, 217,
-			136, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 132, 0, 4, 219, 140, 217, 133, 8, 2, 18, 69, 18, 74, 18, 74, 28,
-			2, 14, 128, 132, 131, 3, 50, 37, 65, 0, 219, 140, 217, 133, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4,
-			8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 50, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 12, 0, 4, 217, 136, 8,
-			2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 50, 39, 6, 0, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2,
-			14, 128, 132, 130, 0, 4, 2, 217, 145, 18, 73, 3, 50, 50, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 50, 50, 35,
-			0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 12, 3, 50, 50,
-			36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 50,
-			50, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 4, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14,
-			128, 132, 130, 3, 50, 108, 6, 0, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 216, 167, 218, 169, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 50, 108, 49, 0, 216, 167, 217, 133, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 132, 3, 50, 108, 65, 36, 12, 0, 216, 167, 217, 133, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 50, 108, 65,
-			36, 57, 36, 0, 7, 6, 1, 72, 0, 4, 1, 18, 71, 18, 70, 18, 68, 2, 32, 3, 35, 107, 0, 8, 18, 68, 2, 32, 0, 8,
-			18, 68, 18, 74, 2, 32, 0, 4, 1, 18, 68, 18, 74, 2, 32, 12, 12, 14, 136, 128, 129, 3, 36, 12, 0, 1, 136, 217, 18, 66,
-			2, 32, 0, 1, 136, 217, 18, 66, 18, 74, 2, 32, 12, 12, 14, 136, 128, 129, 0, 1, 136, 217, 18, 67, 2, 32, 0, 1, 140, 219,
-			18, 66, 2, 32, 0, 1, 140, 219, 18, 67, 2, 32, 0, 8, 18, 68, 2, 32, 12, 24, 0, 8, 168, 216, 2, 32, 12, 3, 36, 107,
-			0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 107, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18,
-			67, 0, 1, 18, 67, 2, 32, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12,
-			24, 0, 1, 18, 70, 18, 74, 2, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 1, 135, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 1, 136, 217, 18, 68, 2, 32, 0, 1, 140, 219, 18,
-			68, 2, 32, 0, 1, 162, 216, 2, 32, 0, 1, 167, 216, 2, 32, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 217, 128, 18, 66, 0,
-			2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219,
-			140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18,
-			74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18,
-			68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18,
-			74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18,
-			74, 18, 74, 2, 32, 0, 8, 132, 217, 132, 217, 167, 216, 2, 32, 12, 12, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0,
-			8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32,
-			12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8,
-			170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 216, 167, 216, 166, 219, 140, 1, 18, 74, 18, 74, 2, 32, 24, 14,
-			136, 128, 132, 3, 107, 6, 108, 37, 12, 0, 216, 167, 219, 140, 219, 140, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0, 216,
-			167, 219, 140, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 107, 6, 108, 57, 36, 0, 216, 167, 216, 179, 216, 170, 1, 18,
-			74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 107, 6, 108, 89, 47, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 107, 35,
-			0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18,
-			74, 32, 0, 1, 18, 74, 2, 217, 135, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18,
-			74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128,
-			217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136,
-			219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71,
-			18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18,
-			74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216,
-			2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18,
-			74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12,
-			0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2,
-			18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8,
-			170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4,
-			217, 133, 8, 2, 18, 69, 18, 74, 28, 2, 14, 128, 132, 130, 3, 107, 35, 65, 0, 217, 133, 8, 2, 216, 162, 18, 74, 28, 2, 14,
-			128, 132, 130, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 107, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2,
-			18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12,
-			0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216,
-			136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68,
-			32, 3, 107, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 2, 217, 145, 18, 73, 3, 107, 107, 0, 2, 217, 145,
-			32, 0, 4, 2, 217, 145, 18, 68, 3, 107, 107, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69,
-			170, 216, 133, 217, 2, 18, 68, 32, 3, 107, 107, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18,
-			69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 107, 107, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 1,
-			18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 107, 108, 0, 216, 167, 216, 170, 217, 136, 217, 134, 1, 18, 74, 18, 74, 2, 32,
-			24, 14, 136, 128, 133, 3, 107, 108, 47, 40, 50, 0, 216, 167, 219, 140, 216, 170, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132,
-			3, 107, 108, 57, 35, 47, 0, 216, 167, 219, 140, 217, 133, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 107, 108, 57, 35,
-			65, 0, 216, 167, 219, 140, 216, 180, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 107, 108, 57, 35, 91, 0, 216, 167, 219,
-			140, 216, 170, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 107, 108, 57, 36, 47, 108, 50, 0, 216, 167,
-			219, 140, 217, 133, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 107, 108, 57, 36, 65, 108, 50, 0, 216,
-			167, 219, 140, 216, 180, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 107, 108, 57, 36, 91, 108, 50, 0,
-			216, 167, 217, 133, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 107, 108, 65, 0, 216, 167, 217, 133, 217, 136, 217, 134, 1,
-			18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 3, 107, 108, 65, 40, 50, 0, 216, 167, 216, 180, 1, 18, 74, 18, 74, 2, 32, 24,
-			14, 136, 128, 131, 3, 107, 108, 91, 0, 216, 167, 216, 180, 217, 136, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 3,
-			107, 108, 91, 40, 50, 0, 7, 6, 1, 73, 0, 4, 1, 174, 216, 2, 216, 162, 12, 3, 0, 4, 8, 174, 216, 2, 216, 167, 12, 3,
-			0, 8, 174, 216, 2, 219, 140, 216, 180, 12, 3, 0, 8, 133, 217, 2, 18, 69, 217, 136, 18, 68, 32, 3, 6, 39, 12, 0, 8, 18,
-			68, 2, 216, 162, 3, 35, 84, 0, 4, 8, 170, 216, 2, 18, 69, 219, 140, 18, 69, 32, 3, 39, 0, 8, 174, 216, 2, 216, 175, 12,
-			0, 8, 174, 216, 2, 216, 177, 12, 0, 8, 174, 216, 2, 216, 180, 12, 0, 8, 174, 216, 2, 217, 132, 12, 0, 4, 1, 18, 68, 2,
-			217, 136, 32, 3, 40, 0, 1, 18, 68, 2, 219, 140, 18, 66, 0, 1, 136, 217, 2, 32, 0, 1, 136, 217, 140, 219, 2, 32, 0, 1,
-			136, 217, 162, 216, 2, 32, 0, 1, 136, 217, 167, 216, 18, 74, 2, 32, 0, 1, 140, 219, 18, 66, 2, 18, 68, 0, 1, 140, 219, 18,
-			68, 2, 18, 68, 0, 8, 136, 217, 0, 4, 1, 18, 68, 2, 18, 68, 3, 40, 12, 0, 1, 18, 68, 2, 32, 0, 1, 18, 68, 2,
-			217, 135, 32, 0, 1, 18, 68, 2, 219, 140, 32, 0, 1, 18, 74, 2, 217, 136, 18, 66, 0, 1, 128, 217, 18, 68, 2, 18, 68, 0,
-			1, 128, 217, 128, 217, 0, 1, 128, 217, 128, 217, 18, 68, 2, 18, 68, 0, 1, 128, 217, 128, 217, 128, 217, 18, 68, 2, 18, 68, 0,
-			1, 136, 217, 18, 74, 2, 18, 68, 0, 2, 217, 128, 18, 74, 0, 2, 217, 128, 217, 128, 0, 8, 140, 219, 2, 18, 68, 0, 8, 167,
-			216, 2, 18, 68, 0, 8, 167, 216, 2, 219, 140, 216, 167, 0, 8, 167, 216, 2, 219, 140, 217, 136, 0, 8, 174, 216, 2, 32, 0, 2,
-			216, 161, 3, 40, 12, 19, 0, 4, 1, 18, 67, 3, 84, 0, 1, 18, 68, 2, 216, 162, 0, 1, 18, 68, 2, 216, 167, 0, 1, 18,
-			68, 2, 219, 140, 18, 68, 0, 1, 18, 74, 2, 217, 136, 18, 68, 0, 1, 128, 217, 140, 219, 18, 74, 2, 18, 66, 0, 1, 136, 217,
-			18, 68, 2, 32, 0, 1, 136, 217, 18, 74, 2, 18, 66, 0, 1, 136, 217, 167, 216, 2, 32, 0, 1, 140, 219, 2, 32, 0, 1, 140,
-			219, 18, 74, 2, 18, 66, 0, 1, 162, 216, 2, 18, 66, 0, 1, 162, 216, 2, 32, 0, 1, 162, 216, 18, 74, 2, 18, 68, 0, 1,
-			162, 216, 18, 74, 2, 219, 140, 18, 74, 0, 1, 167, 216, 2, 32, 0, 1, 167, 216, 18, 74, 2, 18, 68, 0, 1, 167, 216, 18, 74,
-			2, 216, 162, 0, 1, 167, 216, 18, 74, 2, 216, 167, 0, 1, 167, 216, 18, 74, 2, 217, 136, 32, 0, 1, 167, 216, 18, 74, 2, 219,
-			140, 18, 74, 0, 2, 18, 67, 0, 8, 2, 18, 66, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 140, 219, 2, 18, 66,
-			0, 8, 140, 219, 167, 216, 2, 18, 66, 0, 8, 167, 216, 2, 216, 167, 0, 8, 167, 216, 2, 219, 140, 18, 68, 0, 8, 167, 216, 2,
-			219, 140, 219, 140, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18,
-			68, 32, 12, 0, 4, 1, 128, 217, 18, 66, 3, 84, 35, 0, 1, 128, 217, 18, 67, 0, 1, 128, 217, 18, 68, 2, 18, 66, 0, 1,
-			128, 217, 128, 217, 18, 66, 0, 1, 128, 217, 128, 217, 18, 67, 0, 1, 128, 217, 128, 217, 18, 68, 2, 18, 66, 0, 1, 128, 217, 128,
-			217, 128, 217, 18, 66, 0, 1, 128, 217, 128, 217, 128, 217, 18, 67, 0, 1, 128, 217, 128, 217, 128, 217, 18, 68, 2, 18, 66, 0, 1,
-			128, 217, 140, 219, 18, 74, 2, 18, 68, 0, 1, 162, 216, 2, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 32, 0, 8, 18, 68, 167,
-			216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12,
-			0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 140,
-			219, 167, 216, 2, 18, 68, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170,
-			216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69,
-			18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 217, 134, 216, 175, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 131, 3, 84, 35, 50, 72, 0, 217, 134, 216, 175, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 133, 3, 84, 35, 50, 72, 108, 50, 0, 216, 177, 1, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 84, 35, 51, 0, 216,
-			177, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 84, 35, 51, 88, 0, 4, 8, 18, 69, 170, 216, 179, 216, 133, 217,
-			2, 18, 68, 32, 3, 84, 36, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2,
-			18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32,
-			0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 84, 39, 0, 8, 167, 216,
-			18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 2, 217, 145, 18, 73, 3, 84, 84, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68,
-			3, 84, 84, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32,
-			3, 84, 84, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12,
-			12, 3, 84, 84, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32,
-			14, 136, 128, 131, 3, 84, 108, 51, 0, 4, 216, 167, 217, 132, 216, 167, 8, 2, 18, 69, 18, 74, 14, 128, 132, 132, 3, 84, 108, 55,
-			108, 0, 216, 167, 217, 132, 216, 167, 8, 2, 216, 162, 18, 74, 14, 128, 132, 132, 0, 7, 6, 1, 76, 0, 4, 3, 35, 50, 0, 1,
-			18, 69, 18, 74, 2, 32, 14, 136, 128, 129, 0, 7, 6, 1, 77, 0, 4, 3, 39, 50, 0, 1, 18, 69, 18, 74, 2, 32, 14, 136,
-			128, 129, 0, 7, 6, 1, 78, 0, 4, 3, 36, 50, 0, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 129, 0, 7, 6, 1, 79, 0,
-			8, 167, 216, 3, 6, 35, 12, 0, 4, 3, 35, 0, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 0, 7, 6, 1, 80, 0, 8,
-			167, 216, 3, 6, 39, 12, 0, 4, 3, 39, 0, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 0, 7, 6, 1, 81, 0, 8, 167,
-			216, 3, 6, 36, 12, 0, 4, 3, 36, 0, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 0, 7, 6, 1, 82, 0, 1, 18, 67,
-			3, 47, 35, 91, 72, 37, 72, 0, 7, 6, 1, 83, 0, 4, 3, 0, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 3, 0, 7,
-			6, 1, 84, 0, 3, 0, 7, 6, 1, 113, 0, 3, 108, 0, 7, 6, 1, 117, 0, 4, 3, 0, 1, 18, 69, 3, 0, 1, 167, 216,
-			3, 35, 19, 0, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 129, 3, 57, 36, 0, 7, 6, 1, 127, 0, 4, 216, 179, 8, 2,
-			18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 6, 48, 35, 89, 0, 216, 179, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2,
-			14, 128, 132, 130, 0, 4, 216, 179, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 6, 48, 35, 89, 108, 0, 216,
-			179, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 4, 219, 140, 218, 169, 217, 136, 8, 2, 18, 69, 18, 74, 18,
-			74, 14, 128, 132, 132, 3, 6, 48, 37, 49, 39, 0, 219, 140, 218, 169, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132,
-			0, 4, 219, 140, 216, 180, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 6, 48, 37, 91, 0, 219, 140, 216, 180,
-			8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4, 219, 140, 216, 180, 216, 167, 8, 2, 18, 69, 18, 74, 18, 74,
-			14, 128, 132, 132, 3, 6, 48, 37, 91, 108, 0, 219, 140, 216, 180, 216, 167, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0,
-			4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 48, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67,
-			0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2,
-			18, 68, 18, 74, 18, 74, 32, 0, 1, 190, 217, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2,
-			32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0,
-			2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219,
-			128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8,
-			18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32,
-			0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68,
-			18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2,
-			18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136,
-			217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8,
-			162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0,
-			8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4,
-			1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 48, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18,
-			68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 190, 12, 12, 12, 0, 1, 18, 74, 18, 74,
-			18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128,
-			0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67,
-			0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2,
-			18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2,
-			18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8,
-			18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8,
-			134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2,
-			18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170,
-			216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217,
-			2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 217, 134, 216, 167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48,
-			35, 50, 108, 107, 0, 216, 177, 216, 179, 216, 170, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 35, 51, 35, 89, 47, 0,
-			216, 177, 216, 175, 216, 167, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 48, 35, 51, 72, 108, 88, 0, 216, 177, 217,
-			136, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 35, 51, 84, 35, 51, 0, 216, 176, 219, 140, 216, 177, 1, 18,
-			74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 35, 88, 37, 51, 0, 216, 179, 217, 134, 216, 175, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 132, 3, 48, 35, 89, 35, 50, 72, 0, 216, 179, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 48, 35, 89,
-			108, 0, 218, 152, 217, 136, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 35, 90, 40, 107, 0, 4, 8, 18, 69,
-			134, 217, 133, 217, 2, 18, 68, 32, 3, 48, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167,
-			216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217,
-			2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32,
-			0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 217, 134, 216, 175, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 133, 3, 48, 36, 50, 72, 108, 51, 0, 219, 140, 217, 133, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 36,
-			57, 65, 108, 0, 216, 178, 216, 180, 218, 169, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 36, 88, 36, 91, 49, 0, 219,
-			140, 216, 180, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 37, 91, 36, 12, 0, 219, 140, 216, 180, 219, 128, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 48, 37, 91, 36, 57, 36, 0, 219, 140, 216, 180, 216, 167, 1, 18, 74, 18, 74, 2,
-			32, 14, 136, 128, 132, 3, 48, 37, 91, 108, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 48, 39, 0, 8, 167, 216, 18, 69,
-			170, 216, 2, 18, 68, 32, 0, 4, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 48, 39, 51, 0, 216,
-			177, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 217, 136, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			131, 3, 48, 40, 51, 0, 217, 136, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 48, 40, 91, 0, 4, 2, 217, 145,
-			18, 73, 3, 48, 48, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 48, 48, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145,
-			18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 48, 48, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2,
-			217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 48, 48, 39, 0, 8, 18, 69, 170, 216, 2, 217,
-			145, 18, 68, 32, 12, 0, 7, 6, 218, 134, 0, 4, 217, 134, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131,
-			3, 6, 76, 35, 50, 72, 0, 217, 134, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4, 216, 167, 216,
-			177, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 131, 3, 6, 76, 108, 51, 0, 216, 167, 216, 177, 8, 2, 216, 162, 18,
-			74, 18, 74, 28, 2, 14, 128, 132, 131, 0, 4, 217, 135, 216, 167, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3,
-			6, 76, 108, 107, 108, 51, 0, 217, 135, 216, 167, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 1, 18, 66,
-			18, 74, 2, 18, 68, 18, 74, 32, 3, 76, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68,
-			18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74,
-			18, 74, 32, 0, 1, 134, 218, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217,
-			128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8,
-			2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68,
-			18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 68, 18, 74, 18, 66,
-			2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 18, 69, 2, 18, 68, 32, 0,
-			8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2,
-			18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18,
-			68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18,
-			69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18,
-			74, 2, 18, 68, 32, 3, 76, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1,
-			18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 218, 134, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74,
-			2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128,
-			217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217,
-			136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71,
-			32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18,
-			74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 70, 18, 71,
-			32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74,
-			18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217,
-			2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0,
-			8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68,
-			217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217,
-			145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 76, 36, 0, 8, 18, 69, 170, 216, 179, 216,
-			133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18,
-			68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0,
-			8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 217, 135, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 130, 0, 217, 135, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 76, 36, 107, 51, 0, 217,
-			135, 216, 177, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 76, 36, 107, 51, 36, 12, 0, 217, 135, 216, 177, 219, 128,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 76, 36, 107, 51, 36, 57, 36, 0, 219, 140, 1, 18, 74, 18, 74, 18, 74, 2,
-			32, 14, 136, 128, 130, 3, 76, 37, 0, 219, 140, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 76, 37, 50, 0, 219,
-			140, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 76, 37, 57, 108, 50, 0, 4, 8, 2, 18, 69, 217, 136,
-			18, 68, 32, 3, 76, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 2, 217, 145, 18, 73, 3, 76, 76, 0, 2,
-			217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 76, 76, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8,
-			18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 76, 76, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4,
-			8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 76, 76, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 7,
-			6, 218, 152, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 90, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24,
-			0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18,
-			74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 152, 218, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2,
-			18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217,
-			128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12,
-			12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219,
-			140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18,
-			71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 69, 2, 18, 71, 18, 74, 32, 12,
-			0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0,
-			8, 18, 69, 2, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32,
-			12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68,
-			18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0,
-			8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68,
-			32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 90, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68,
-			18, 68, 2, 18, 68, 32, 0, 1, 18, 68, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 218, 152, 12, 12, 12, 0, 1,
-			18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2,
-			217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2,
-			217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0,
-			8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8,
-			18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18,
-			68, 162, 216, 2, 18, 70, 18, 71, 32, 12, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68,
-			32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68,
-			32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0,
-			8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32,
-			12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8,
-			170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 90, 36,
-			0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12,
-			0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68,
-			32, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 90, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 4, 2,
-			217, 145, 18, 73, 3, 90, 90, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 90, 90, 35, 0, 8, 18, 69, 133, 217, 2,
-			217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 90, 90, 36, 0, 8, 18, 69, 170, 216, 133,
-			217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 90, 90, 39, 0, 8, 18, 69, 170, 216,
-			2, 217, 145, 18, 68, 32, 12, 0, 7, 6, 218, 169, 0, 1, 18, 68, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 3, 35, 49, 0,
-			4, 1, 18, 66, 18, 74, 2, 18, 68, 18, 74, 32, 3, 49, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67,
-			0, 1, 18, 68, 18, 66, 2, 18, 72, 32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217,
-			136, 18, 67, 0, 1, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 169, 218, 18, 74, 2, 18, 68, 18, 74,
-			32, 12, 0, 2, 18, 66, 0, 2, 18, 67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217,
-			128, 18, 66, 0, 2, 217, 128, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18,
-			67, 0, 2, 217, 135, 32, 12, 12, 12, 0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140,
-			18, 67, 0, 8, 2, 217, 136, 219, 140, 32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68,
-			18, 66, 0, 8, 18, 68, 2, 18, 71, 18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18,
-			74, 18, 66, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74,
-			32, 12, 0, 8, 18, 71, 162, 216, 2, 18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217,
-			2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32,
-			12, 0, 8, 162, 216, 2, 18, 68, 18, 66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8,
-			162, 216, 2, 216, 177, 32, 12, 0, 8, 167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179,
-			216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68, 32, 3, 49, 35, 0, 1, 18, 68, 18, 66,
-			2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0, 1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71,
-			18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 218, 169, 12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18,
-			68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128,
-			18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2, 18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216,
-			167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0,
-			8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177, 18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18,
-			74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18, 74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8,
-			18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217,
-			2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2,
-			219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170,
-			216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69,
-			18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 12, 0, 216, 177, 216, 175, 1, 18, 74, 18,
-			74, 2, 32, 14, 136, 128, 131, 3, 49, 35, 51, 72, 0, 216, 177, 216, 175, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			3, 49, 35, 51, 72, 35, 50, 0, 217, 132, 216, 167, 217, 133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 49, 35, 55, 108,
-			65, 0, 4, 217, 133, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 3, 49, 35, 65, 0, 217, 133, 8, 2, 216, 162,
-			18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 49, 35, 72,
-			36, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 49, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2, 18, 68,
-			32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12, 0, 8,
-			167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217,
-			18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 216, 180, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 130, 3, 49, 36, 91, 0, 4, 219, 140, 217, 132, 217, 136, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 3, 49, 37, 55,
-			40, 0, 219, 140, 217, 132, 217, 136, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68,
-			32, 3, 49, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130,
-			3, 49, 39, 50, 0, 217, 134, 217, 134, 216, 175, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 49, 39, 50, 35, 50,
-			72, 36, 12, 0, 217, 134, 217, 134, 216, 175, 219, 128, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 49, 39, 50, 35, 50, 72,
-			36, 57, 36, 0, 217, 134, 217, 134, 216, 175, 218, 175, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 135, 3, 49, 39,
-			50, 35, 50, 72, 36, 81, 108, 50, 0, 4, 217, 134, 216, 175, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 3, 49, 39, 50,
-			72, 0, 217, 134, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 217, 134, 216, 167, 217, 134, 1, 18, 74, 18, 74,
-			2, 32, 14, 136, 128, 132, 3, 49, 39, 50, 108, 50, 0, 4, 217, 136, 218, 134, 218, 169, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			132, 3, 49, 40, 76, 35, 49, 0, 217, 136, 218, 134, 218, 169, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 132, 0, 217, 136, 218,
-			134, 218, 169, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 132, 0, 4, 2, 217, 145, 18, 73, 3, 49, 49, 0, 2, 217, 145, 32,
-			0, 4, 2, 217, 145, 18, 68, 3, 49, 49, 35, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170,
-			216, 133, 217, 2, 18, 68, 32, 3, 49, 49, 36, 0, 8, 18, 69, 170, 216, 133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69,
-			170, 216, 2, 18, 68, 32, 12, 12, 3, 49, 49, 39, 0, 8, 18, 69, 170, 216, 2, 217, 145, 18, 68, 32, 12, 0, 216, 167, 216, 177,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 49, 108, 51, 0, 216, 167, 217, 136, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128,
-			131, 3, 49, 108, 84, 0, 7, 6, 218, 175, 0, 4, 219, 140, 1, 18, 68, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 36, 81,
-			37, 0, 219, 140, 1, 136, 217, 18, 66, 18, 74, 2, 32, 14, 136, 128, 130, 0, 219, 140, 1, 140, 219, 18, 66, 18, 74, 2, 32, 14,
-			136, 128, 130, 0, 4, 219, 140, 217, 133, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 36, 81, 37, 57, 35, 65,
-			0, 219, 140, 217, 133, 1, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 219, 140, 217, 133, 1, 140, 219, 18, 66, 18,
-			74, 2, 32, 24, 14, 136, 128, 131, 0, 219, 140, 219, 140, 217, 133, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0,
-			219, 140, 219, 140, 217, 133, 1, 136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0, 219, 140, 219, 140, 217, 133, 1, 140, 219,
-			18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0, 216, 167, 217, 134, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 131, 3, 36, 81,
-			108, 50, 0, 216, 167, 217, 134, 216, 170, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 36, 81, 108, 50, 35, 47, 0, 216, 167,
-			217, 134, 217, 133, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 36, 81, 108, 50, 35, 65, 0, 216, 167, 217, 134, 216, 180, 1,
-			18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 36, 81, 108, 50, 35, 91, 0, 216, 167, 217, 134, 216, 170, 216, 167, 217, 134, 1, 18,
-			68, 18, 74, 2, 32, 14, 136, 128, 134, 3, 36, 81, 108, 50, 36, 47, 108, 50, 0, 216, 167, 217, 134, 217, 133, 216, 167, 217, 134, 1,
-			18, 68, 18, 74, 2, 32, 14, 136, 128, 134, 3, 36, 81, 108, 50, 36, 65, 108, 50, 0, 216, 167, 217, 134, 216, 180, 216, 167, 217, 134,
-			1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 134, 3, 36, 81, 108, 50, 36, 91, 108, 50, 0, 4, 1, 18, 66, 18, 74, 2, 18, 68,
-			18, 74, 32, 3, 81, 0, 1, 18, 66, 18, 74, 2, 18, 72, 32, 12, 24, 0, 1, 18, 67, 0, 1, 18, 68, 18, 66, 2, 18, 72,
-			32, 12, 24, 0, 1, 18, 70, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 217, 136, 18, 67, 0, 1, 18, 74, 18, 74,
-			18, 74, 2, 18, 68, 18, 74, 18, 74, 32, 0, 1, 175, 218, 18, 74, 2, 18, 68, 18, 74, 32, 12, 0, 2, 18, 66, 0, 2, 18,
-			67, 0, 2, 32, 0, 2, 217, 128, 18, 66, 0, 2, 217, 128, 18, 67, 0, 2, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128,
-			18, 67, 0, 2, 217, 128, 217, 128, 217, 128, 18, 66, 0, 2, 217, 128, 217, 128, 217, 128, 18, 67, 0, 2, 217, 135, 32, 12, 12, 12,
-			0, 2, 219, 128, 32, 0, 8, 2, 217, 136, 219, 140, 18, 66, 0, 8, 2, 217, 136, 219, 140, 18, 67, 0, 8, 2, 217, 136, 219, 140,
-			32, 0, 8, 18, 66, 18, 74, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 2, 18, 68, 18, 66, 0, 8, 18, 68, 2, 18, 71,
-			18, 68, 32, 0, 8, 18, 68, 18, 68, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 66, 2, 18, 68, 18, 74, 18,
-			74, 32, 0, 8, 18, 69, 2, 18, 68, 32, 0, 8, 18, 71, 18, 69, 2, 18, 71, 18, 74, 32, 12, 0, 8, 18, 71, 162, 216, 2,
-			18, 68, 18, 74, 32, 12, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12,
-			0, 8, 136, 217, 167, 216, 2, 18, 68, 32, 12, 0, 8, 140, 219, 167, 216, 2, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 18,
-			66, 0, 8, 162, 216, 2, 18, 68, 18, 67, 0, 8, 162, 216, 2, 216, 175, 32, 12, 0, 8, 162, 216, 2, 216, 177, 32, 12, 0, 8,
-			167, 216, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 219, 140, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32,
-			12, 0, 216, 167, 217, 134, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 6, 108, 50, 0, 216, 167, 217, 134, 217, 135, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 6, 108, 50, 36, 12, 0, 216, 167, 217, 134, 219, 128, 1, 18, 74, 18, 74, 2,
-			32, 14, 136, 128, 132, 3, 81, 6, 108, 50, 36, 57, 36, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3,
-			81, 6, 108, 51, 0, 216, 167, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 6, 108, 107, 0, 4, 1, 18, 66,
-			18, 74, 2, 18, 68, 32, 3, 81, 35, 0, 1, 18, 68, 18, 66, 2, 18, 68, 32, 0, 1, 18, 68, 18, 68, 2, 18, 68, 32, 0,
-			1, 18, 70, 18, 74, 2, 18, 70, 18, 71, 32, 0, 1, 18, 71, 18, 74, 2, 18, 68, 18, 74, 32, 0, 1, 18, 74, 2, 218, 175,
-			12, 12, 12, 0, 1, 18, 74, 18, 74, 18, 74, 18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 32, 0, 2, 18, 68, 0, 2, 217,
-			128, 18, 68, 0, 2, 217, 128, 217, 128, 0, 2, 217, 128, 217, 128, 18, 68, 0, 2, 217, 128, 217, 128, 217, 128, 18, 68, 0, 8, 2,
-			18, 68, 0, 8, 2, 217, 136, 18, 67, 0, 8, 2, 217, 136, 216, 167, 0, 8, 2, 217, 136, 219, 140, 18, 68, 0, 8, 18, 68, 2,
-			18, 70, 18, 68, 0, 8, 18, 68, 2, 18, 70, 18, 71, 32, 0, 8, 18, 68, 2, 18, 71, 18, 68, 0, 8, 18, 68, 2, 216, 177,
-			18, 68, 12, 0, 8, 18, 68, 18, 66, 2, 18, 68, 18, 74, 18, 74, 0, 8, 18, 68, 18, 74, 18, 68, 2, 18, 68, 18, 74, 18,
-			74, 32, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 69, 133, 217, 2, 18, 68, 32, 12, 0, 8, 18, 74, 18, 74,
-			18, 74, 2, 18, 68, 18, 74, 18, 74, 18, 74, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 12, 0, 8, 134, 217, 133, 217,
-			2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2, 18, 68, 32, 0,
-			8, 167, 216, 136, 217, 174, 216, 2, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68,
-			217, 145, 18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217,
-			145, 18, 68, 32, 12, 12, 0, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 81, 35, 51, 0, 216, 177, 216, 175, 1,
-			18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 35, 51, 72, 0, 216, 177, 216, 175, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2,
-			32, 14, 136, 128, 133, 3, 81, 35, 51, 72, 108, 50, 0, 216, 177, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81,
-			35, 51, 108, 0, 4, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 3, 81, 36, 0, 8, 18, 69, 170, 216, 179, 216, 133, 217, 2,
-			18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 12, 12, 0, 8, 167, 216, 18, 69, 2, 18, 68, 32, 12,
-			0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216,
-			136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 216, 177, 217, 129, 216, 170, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 36, 51, 36, 83, 47, 0, 216, 177, 216, 167, 217, 129, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 132, 3, 81, 36, 51, 108, 83, 0, 219, 140, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 37, 50, 0,
-			219, 140, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 37, 51, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32,
-			3, 81, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18, 68, 32, 0, 216, 177, 219, 140, 216, 178, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 132, 3, 81, 39, 51, 37, 88, 0, 4, 217, 132, 8, 2, 18, 69, 18, 74, 28, 2, 14, 128, 132, 130, 3, 81, 39, 55, 0,
-			217, 132, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 4, 216, 176, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2,
-			32, 14, 136, 128, 132, 3, 81, 39, 88, 6, 108, 51, 0, 216, 178, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132,
-			0, 4, 216, 176, 216, 167, 216, 177, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 3, 81, 39, 88, 6, 108, 51, 37, 0,
-			216, 178, 216, 167, 216, 177, 219, 140, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 133, 0, 4, 216, 176, 216, 177, 8, 2, 18, 69, 18,
-			74, 18, 74, 14, 128, 132, 131, 3, 81, 39, 88, 35, 51, 0, 216, 176, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131,
-			0, 216, 178, 216, 177, 8, 2, 18, 69, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 178, 216, 177, 8, 2, 216, 162, 18, 74, 18, 74,
-			14, 128, 132, 131, 0, 216, 178, 219, 140, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 39, 88, 37, 50, 0, 216,
-			179, 216, 170, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 39, 89, 47, 35, 51, 0, 216, 179, 216, 167, 216, 177,
-			1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 39, 89, 108, 51, 0, 216, 180, 216, 167, 1, 18, 74, 18, 74, 2, 32, 14,
-			136, 128, 131, 3, 81, 39, 91, 108, 0, 217, 136, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 3, 81, 40, 0, 4, 217, 136, 217,
-			134, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 81, 40, 50, 0, 217, 136, 217, 134, 1, 18, 74, 18, 74, 2, 32, 14, 136,
-			128, 131, 0, 217, 136, 217, 134, 217, 135, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 40, 50, 36, 12, 0, 4, 2, 217,
-			145, 18, 73, 3, 81, 81, 0, 2, 217, 145, 32, 0, 4, 2, 217, 145, 18, 68, 3, 81, 81, 35, 0, 8, 18, 69, 133, 217, 2, 217,
-			145, 18, 68, 32, 12, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 81, 81, 36, 0, 8, 18, 69, 170, 216, 133, 217,
-			2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 81, 81, 39, 0, 8, 18, 69, 170, 216, 2,
-			217, 145, 18, 68, 32, 12, 0, 216, 167, 217, 134, 216, 170, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 108, 50, 35, 47,
-			0, 216, 167, 217, 134, 217, 133, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 108, 50, 35, 65, 0, 216, 167, 217, 134, 216,
-			180, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 132, 3, 81, 108, 50, 35, 91, 0, 216, 167, 217, 134, 216, 170, 216, 167, 217, 134, 1,
-			18, 66, 18, 74, 2, 32, 14, 136, 128, 134, 3, 81, 108, 50, 36, 47, 108, 50, 0, 216, 167, 217, 134, 217, 133, 216, 167, 217, 134, 1,
-			18, 66, 18, 74, 2, 32, 14, 136, 128, 134, 3, 81, 108, 50, 36, 65, 108, 50, 0, 216, 167, 217, 134, 216, 180, 216, 167, 217, 134, 1,
-			18, 66, 18, 74, 2, 32, 14, 136, 128, 134, 3, 81, 108, 50, 36, 91, 108, 50, 0, 7, 6, 219, 128, 0, 4, 1, 18, 67, 18, 74,
-			2, 32, 24, 14, 136, 128, 129, 3, 6, 36, 57, 36, 0, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 8, 18, 68, 0,
-			8, 18, 66, 3, 6, 107, 36, 57, 36, 0, 7, 6, 219, 140, 0, 219, 140, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 129, 3, 37,
-			0, 4, 219, 140, 3, 37, 12, 0, 219, 140, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 130, 0, 219, 140, 217, 133, 1, 18, 66, 18,
-			74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 12, 65, 0, 219, 140, 216, 175, 1, 18, 66, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128,
-			131, 3, 37, 12, 72, 0, 219, 140, 217, 133, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 37, 65, 0, 4, 219, 140,
-			216, 170, 1, 175, 218, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 57, 35, 47, 0, 219, 140, 216, 170, 1, 175, 218,
-			136, 217, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 130, 0, 219, 140, 216, 170, 1, 175, 218, 140, 219, 18, 66, 18, 74, 2, 32, 24,
-			14, 136, 128, 130, 0, 2, 217, 176, 32, 3, 0, 8, 18, 68, 2, 18, 67, 3, 35, 57, 0, 4, 8, 18, 68, 2, 217, 145, 18, 73,
-			3, 35, 57, 57, 0, 8, 18, 68, 2, 217, 145, 32, 0, 8, 18, 68, 2, 217, 145, 18, 68, 3, 35, 57, 57, 35, 0, 1, 136, 217,
-			18, 74, 2, 217, 136, 32, 12, 3, 36, 57, 0, 4, 3, 37, 0, 1, 18, 68, 2, 32, 0, 1, 18, 68, 18, 74, 2, 32, 14, 136,
-			128, 129, 0, 1, 136, 217, 18, 66, 18, 74, 2, 32, 14, 136, 128, 129, 0, 1, 136, 217, 18, 66, 18, 74, 2, 32, 14, 136, 128, 129,
-			0, 1, 136, 217, 18, 74, 2, 18, 68, 0, 1, 136, 217, 18, 74, 2, 217, 136, 18, 74, 12, 0, 1, 145, 217, 2, 18, 68, 12, 0,
-			1, 145, 217, 2, 32, 12, 0, 8, 2, 217, 128, 18, 68, 0, 8, 18, 68, 167, 216, 2, 18, 68, 32, 12, 0, 8, 18, 68, 167, 216,
-			18, 69, 170, 216, 133, 217, 2, 32, 0, 8, 136, 217, 2, 18, 68, 0, 8, 136, 217, 167, 216, 18, 69, 170, 216, 133, 217, 2, 32, 0,
-			8, 167, 216, 2, 32, 12, 0, 4, 8, 167, 216, 3, 37, 12, 0, 216, 166, 1, 18, 66, 18, 74, 2, 32, 12, 14, 136, 128, 130, 0,
-			4, 216, 170, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 130, 3, 37, 12, 57, 35, 47, 0, 217, 145, 216, 170, 1, 18, 68, 18, 74,
-			2, 32, 14, 136, 128, 131, 0, 217, 145, 216, 170, 1, 18, 69, 18, 74, 2, 32, 14, 136, 128, 131, 0, 4, 216, 166, 217, 135, 1, 18,
-			74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 12, 57, 36, 0, 219, 140, 217, 135, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136,
-			128, 131, 0, 4, 216, 166, 219, 128, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 12, 57, 36, 57, 36, 0, 219, 140,
-			219, 128, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 219, 140, 216, 167, 217, 134, 1, 18, 66, 18, 74, 2, 32, 14, 136,
-			128, 132, 3, 37, 12, 108, 50, 0, 216, 166, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 130, 3, 37, 37, 0, 4, 217, 134, 1, 18,
-			68, 18, 74, 2, 32, 14, 136, 128, 130, 3, 37, 50, 0, 217, 134, 1, 133, 217, 18, 74, 18, 74, 2, 32, 14, 136, 128, 130, 0, 217,
-			134, 217, 135, 1, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 50, 36, 12, 0, 217, 134, 219, 128, 1, 18, 68, 18, 74,
-			2, 32, 24, 14, 136, 128, 131, 3, 37, 50, 36, 57, 36, 0, 1, 18, 68, 2, 217, 136, 18, 68, 3, 37, 57, 0, 217, 135, 1, 18,
-			68, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 37, 57, 36, 0, 219, 128, 1, 18, 68, 18, 74, 2, 32, 12, 24, 14, 136, 128,
-			130, 3, 37, 57, 36, 57, 36, 0, 4, 216, 167, 216, 170, 1, 18, 66, 18, 68, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 57,
-			57, 108, 47, 0, 216, 167, 216, 170, 1, 185, 216, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 0, 217, 145, 216, 167, 216, 170, 1,
-			18, 74, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0, 4, 216, 167, 216, 170, 216, 170, 1, 18, 66, 18, 68, 2, 32, 24, 14,
-			136, 128, 132, 3, 37, 57, 57, 108, 47, 35, 47, 0, 216, 167, 216, 170, 216, 170, 1, 185, 216, 18, 74, 2, 32, 24, 14, 136, 128, 132,
-			0, 217, 145, 216, 167, 216, 170, 216, 170, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 0, 4, 216, 167, 216, 170, 217, 133, 1,
-			18, 66, 18, 68, 2, 32, 24, 14, 136, 128, 132, 3, 37, 57, 57, 108, 47, 35, 65, 0, 216, 167, 216, 170, 217, 133, 1, 185, 216, 18,
-			74, 2, 32, 24, 14, 136, 128, 132, 0, 217, 145, 216, 167, 216, 170, 217, 133, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 0,
-			4, 216, 167, 216, 170, 216, 180, 1, 18, 66, 18, 68, 2, 32, 24, 14, 136, 128, 132, 3, 37, 57, 57, 108, 47, 35, 91, 0, 216, 167,
-			216, 170, 216, 180, 1, 185, 216, 18, 74, 2, 32, 24, 14, 136, 128, 132, 0, 217, 145, 216, 167, 216, 170, 216, 180, 1, 18, 74, 18, 74,
-			2, 32, 24, 14, 136, 128, 133, 0, 4, 216, 167, 216, 170, 216, 170, 216, 167, 217, 134, 1, 18, 66, 18, 68, 2, 32, 24, 14, 136, 128,
-			134, 3, 37, 57, 57, 108, 47, 36, 47, 108, 50, 0, 216, 167, 216, 170, 216, 170, 216, 167, 217, 134, 1, 185, 216, 18, 74, 2, 32, 24,
-			14, 136, 128, 134, 0, 217, 145, 216, 167, 216, 170, 216, 170, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 0,
-			4, 216, 167, 216, 170, 217, 133, 216, 167, 217, 134, 1, 18, 66, 18, 68, 2, 32, 24, 14, 136, 128, 134, 3, 37, 57, 57, 108, 47, 36,
-			65, 108, 50, 0, 216, 167, 216, 170, 217, 133, 216, 167, 217, 134, 1, 185, 216, 18, 74, 2, 32, 24, 14, 136, 128, 134, 0, 217, 145, 216,
-			167, 216, 170, 217, 133, 216, 167, 217, 134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 0, 4, 216, 167, 216, 170, 216, 180, 216,
-			167, 217, 134, 1, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 134, 3, 37, 57, 57, 108, 47, 36, 91, 108, 50, 0, 216, 167, 216, 170,
-			216, 180, 216, 167, 217, 134, 1, 185, 216, 18, 74, 2, 32, 24, 14, 136, 128, 134, 0, 217, 145, 216, 167, 216, 170, 216, 180, 216, 167, 217,
-			134, 1, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 135, 0, 4, 216, 167, 216, 170, 219, 140, 1, 18, 66, 18, 68, 18, 74, 2, 32,
-			24, 14, 136, 128, 132, 3, 37, 57, 57, 108, 47, 37, 0, 216, 167, 216, 170, 219, 140, 1, 185, 216, 18, 74, 18, 74, 2, 32, 24, 14,
-			136, 128, 132, 0, 217, 145, 216, 167, 216, 170, 219, 140, 1, 18, 74, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 133, 0, 217, 133, 1,
-			18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 130, 3, 37, 65, 0, 216, 175, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14,
-			136, 128, 130, 3, 37, 72, 0, 216, 175, 217, 135, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 72, 36, 12,
-			0, 216, 175, 219, 128, 1, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 131, 3, 37, 72, 36, 57, 36, 0, 216, 179, 216, 170,
-			1, 45, 2, 32, 12, 24, 14, 136, 128, 131, 3, 37, 89, 47, 0, 216, 178, 216, 167, 216, 179, 219, 140, 217, 136, 217, 134, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 135, 3, 37, 89, 108, 89, 37, 39, 50, 0, 4, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 129, 3,
-			57, 0, 1, 18, 67, 0, 1, 18, 67, 2, 32, 0, 1, 136, 217, 18, 74, 2, 18, 66, 0, 1, 145, 217, 2, 18, 66, 12, 0, 1,
-			167, 216, 18, 74, 2, 18, 66, 0, 1, 167, 216, 18, 74, 2, 18, 68, 0, 2, 18, 67, 0, 2, 217, 176, 18, 69, 0, 8, 2, 216,
-			162, 0, 8, 2, 216, 167, 0, 8, 2, 217, 128, 18, 66, 0, 8, 2, 217, 136, 18, 68, 0, 8, 133, 217, 2, 18, 69, 18, 68, 32,
-			0, 8, 133, 217, 2, 18, 69, 217, 136, 18, 68, 32, 0, 8, 133, 217, 2, 216, 170, 18, 69, 18, 68, 32, 12, 0, 8, 170, 216, 2,
-			18, 69, 219, 140, 18, 68, 32, 0, 8, 170, 216, 179, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 0, 8, 185, 216, 2, 18, 66, 0,
-			8, 185, 216, 2, 18, 67, 0, 8, 185, 216, 2, 18, 68, 32, 0, 4, 8, 3, 57, 35, 0, 8, 2, 217, 136, 18, 66, 0, 8, 2,
-			217, 136, 18, 67, 0, 8, 18, 69, 133, 217, 2, 217, 145, 18, 68, 32, 0, 8, 133, 217, 2, 18, 69, 217, 145, 18, 68, 32, 0, 8,
-			134, 217, 133, 217, 2, 18, 68, 18, 68, 32, 12, 12, 0, 8, 134, 217, 133, 217, 2, 219, 140, 18, 68, 32, 12, 0, 8, 162, 216, 2,
-			18, 68, 0, 8, 162, 216, 2, 18, 68, 32, 0, 8, 170, 216, 2, 18, 68, 18, 68, 32, 12, 0, 8, 170, 216, 2, 18, 68, 217, 145,
-			18, 68, 32, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 18, 68, 32, 12, 12, 0, 8, 170, 216, 133, 217, 2, 18, 69, 217, 145, 18,
-			68, 32, 12, 12, 0, 8, 185, 216, 2, 18, 68, 0, 4, 216, 170, 1, 18, 66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 57,
-			35, 47, 0, 216, 170, 1, 175, 218, 18, 68, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 216, 170, 1, 175, 218, 136, 217, 18,
-			66, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 216, 170, 1, 175, 218, 140, 219, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0,
-			217, 134, 216, 175, 1, 18, 66, 18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 35, 50, 72, 0, 217, 134, 216, 175, 217, 135, 1, 18, 66,
-			18, 74, 2, 32, 14, 136, 128, 132, 3, 57, 35, 50, 72, 36, 0, 217, 134, 216, 175, 219, 128, 1, 18, 66, 18, 74, 2, 32, 14, 136,
-			128, 132, 3, 57, 35, 50, 72, 36, 57, 36, 0, 217, 133, 1, 18, 66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 57, 35, 65,
-			0, 216, 180, 1, 18, 66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 57, 35, 91, 0, 4, 1, 18, 66, 2, 32, 3, 57, 36,
-			0, 1, 136, 217, 18, 68, 18, 74, 2, 32, 14, 136, 128, 129, 0, 1, 162, 216, 18, 74, 18, 74, 2, 32, 14, 136, 128, 129, 0, 1,
-			167, 216, 18, 74, 18, 74, 2, 32, 24, 14, 136, 128, 129, 0, 8, 18, 69, 134, 217, 133, 217, 2, 18, 68, 32, 0, 8, 18, 69, 170,
-			216, 179, 216, 133, 217, 2, 18, 68, 32, 0, 8, 134, 217, 167, 216, 2, 18, 69, 216, 167, 18, 68, 32, 0, 8, 167, 216, 18, 69, 2,
-			18, 68, 32, 0, 8, 167, 216, 18, 69, 18, 69, 2, 18, 68, 32, 0, 8, 167, 216, 18, 69, 133, 217, 2, 18, 68, 32, 0, 8, 167,
-			216, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 0, 8, 167, 216, 136, 217, 18, 69, 2, 18, 68, 32, 0, 8, 170, 216, 18, 69, 133,
-			217, 2, 18, 68, 32, 0, 217, 135, 1, 18, 66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 0, 216, 170, 216, 167, 217, 134, 1, 18,
-			66, 18, 74, 2, 32, 24, 14, 136, 128, 132, 3, 57, 36, 47, 108, 50, 0, 4, 218, 169, 8, 2, 18, 69, 18, 74, 18, 74, 28, 2,
-			14, 128, 132, 130, 3, 57, 36, 49, 0, 218, 169, 8, 2, 216, 162, 18, 74, 18, 74, 28, 2, 14, 128, 132, 130, 0, 219, 128, 1, 18,
-			66, 18, 74, 2, 32, 12, 24, 14, 136, 128, 130, 3, 57, 36, 57, 36, 0, 217, 133, 216, 167, 217, 134, 1, 18, 66, 18, 74, 2, 32,
-			24, 14, 136, 128, 132, 3, 57, 36, 65, 108, 50, 0, 216, 180, 216, 167, 217, 134, 1, 18, 66, 18, 74, 2, 32, 24, 14, 136, 128, 132,
-			3, 57, 36, 91, 108, 50, 0, 4, 8, 2, 18, 69, 217, 136, 18, 68, 32, 3, 57, 39, 0, 8, 167, 216, 18, 69, 170, 216, 2, 18,
-			68, 32, 0, 217, 136, 217, 133, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 39, 65, 0, 217, 136, 217, 134, 1, 18, 74,
-			18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 40, 50, 0, 4, 2, 217, 145, 18, 73, 3, 57, 57, 0, 2, 217, 145, 32, 0, 2, 217,
-			145, 18, 68, 3, 57, 57, 35, 0, 4, 8, 18, 69, 170, 216, 133, 217, 2, 18, 68, 32, 3, 57, 57, 36, 0, 8, 18, 69, 170, 216,
-			133, 217, 2, 217, 145, 18, 68, 32, 0, 4, 8, 18, 69, 170, 216, 2, 18, 68, 32, 12, 12, 3, 57, 57, 39, 0, 8, 18, 69, 170,
-			216, 2, 217, 145, 18, 68, 32, 0, 216, 167, 216, 177, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 108, 51, 0, 216, 167,
-			216, 168, 1, 18, 74, 18, 74, 2, 32, 14, 136, 128, 131, 3, 57, 108, 71, 0, 4, 216, 167, 216, 175, 8, 2, 18, 69, 18, 74, 18,
-			74, 14, 128, 132, 131, 3, 57, 108, 72, 0, 216, 167, 216, 175, 8, 2, 216, 162, 18, 74, 18, 74, 14, 128, 132, 131, 0, 216, 167, 217,
-			129, 216, 170, 1, 18, 68, 18, 74, 2, 32, 14, 136, 128, 132, 3, 57, 108, 83, 47, 0, 7, 6, 43, 0, 4, 2, 46, 15, 3, 65,
-			39, 89, 71, 35, 47, 36, 20, 0, 8, 32, 2, 32, 15, 0, 7, 6, 45, 0, 4, 2, 46, 15, 3, 65, 35, 50, 83, 37, 57, 36,
-			20, 0, 8, 32, 2, 32, 15, 0, 7, 6, 97, 0, 3, 21, 0, 5, 1, 3, 35, 0, 5, 1, 2, 39, 3, 108, 0, 7, 6, 98,
-			0, 3, 21, 0, 5, 1, 3, 71, 0, 7, 6, 99, 0, 3, 21, 0, 5, 1, 3, 49, 0, 4, 5, 1, 2, 101, 3, 89, 0, 5,
-			1, 2, 105, 0, 5, 1, 2, 121, 0, 7, 6, 100, 0, 3, 21, 0, 5, 1, 3, 72, 0, 7, 6, 101, 0, 3, 21, 0, 5, 1,
-			3, 36, 0, 7, 6, 102, 0, 3, 21, 0, 5, 1, 3, 83, 0, 7, 6, 103, 0, 3, 21, 0, 5, 1, 3, 81, 0, 7, 6, 104,
-			0, 3, 21, 0, 5, 1, 3, 107, 0, 7, 6, 105, 0, 3, 21, 0, 5, 1, 3, 37, 0, 7, 6, 106, 0, 3, 21, 0, 5, 1,
-			3, 75, 0, 7, 6, 107, 0, 3, 21, 0, 5, 1, 3, 49, 0, 7, 6, 108, 0, 3, 21, 0, 5, 1, 3, 55, 0, 7, 6, 109,
-			0, 3, 21, 0, 5, 1, 3, 65, 0, 7, 6, 110, 0, 3, 21, 0, 5, 1, 3, 50, 0, 7, 6, 111, 0, 3, 21, 0, 5, 1,
-			3, 39, 0, 7, 6, 112, 0, 3, 21, 0, 5, 1, 3, 48, 0, 7, 6, 113, 0, 3, 21, 0, 5, 1, 3, 104, 17, 0, 7, 6,
-			114, 0, 3, 21, 0, 5, 1, 3, 51, 0, 7, 6, 115, 0, 3, 21, 0, 5, 1, 3, 89, 0, 7, 6, 116, 0, 3, 21, 0, 5,
-			1, 3, 47, 0, 7, 6, 117, 0, 3, 21, 0, 5, 1, 3, 40, 0, 7, 6, 118, 0, 3, 21, 0, 5, 1, 3, 84, 0, 7, 6,
-			119, 0, 3, 21, 0, 5, 1, 3, 58, 0, 7, 6, 120, 0, 3, 21, 0, 5, 1, 3, 49, 89, 0, 7, 6, 121, 0, 3, 21, 0,
-			5, 1, 3, 57, 0, 7, 6, 122, 0, 3, 21, 0, 5, 1, 3, 88, 0, 7, 6, 0, 60, 61, 3, 49, 40, 76, 6, 36, 49, 47,
-			35, 51, 15, 57, 108, 12, 15, 65, 4, 39, 89, 108, 84, 37, 0, 46, 2, 15, 3, 50, 39, 104, 17, 47, 36, 12, 0, 194, 177, 3,
-			65, 6, 39, 89, 71, 35, 47, 15, 57, 108, 12, 15, 65, 6, 35, 50, 83, 37, 0, 62, 61, 3, 71, 39, 88, 6, 39, 51, 81, 47,
-			35, 51, 15, 57, 108, 12, 15, 65, 4, 39, 89, 108, 84, 37, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts19 = FileInMemory_createWithData (231857, reinterpret_cast<const char *> (&espeakdata_dicts19_data), 
-			U"espeak-1.48.04-source/espeak-data/fa_dict", 
-			U"fa");
-		my addItem_move (espeakdata_dicts19.move());
+		Collection_addItem (me.peek(), espeakdata_dicts17.transfer());
 
-		static unsigned char espeakdata_dicts20_data[5121] = {
-			0, 4, 0, 0, 151, 16, 0, 0, 0, 0, 0, 13, 67, 57, 35, 192, 50, 40, 65, 36, 34, 39, 0, 24, 0, 0, 6, 65, 4, 35,
-			12, 0, 0, 13, 65, 108, 6, 35, 55, 35, 0, 24, 81, 108, 97, 32, 0, 8, 197, 48, 145, 78, 20, 80, 72, 0, 0, 7, 65, 8,
-			71, 36, 12, 0, 0, 0, 16, 67, 21, 64, 192, 36, 47, 10, 89, 36, 47, 36, 34, 35, 0, 24, 8, 197, 81, 83, 211, 80, 16, 76,
-			0, 0, 7, 65, 12, 89, 36, 12, 0, 0, 6, 195, 60, 193, 78, 72, 0, 0, 0, 7, 65, 16, 72, 36, 12, 0, 0, 7, 196, 88,
-			148, 136, 20, 14, 0, 0, 13, 4, 95, 100, 112, 116, 48, 37, 55, 49, 12, 40, 0, 0, 6, 65, 20, 36, 12, 0, 0, 0, 0, 0,
-			6, 65, 24, 109, 83, 0, 0, 0, 0, 0, 7, 65, 28, 81, 36, 12, 0, 0, 0, 0, 0, 7, 65, 32, 107, 39, 12, 0, 0, 0,
-			0, 0, 6, 65, 36, 37, 12, 0, 0, 14, 1, 37, 48, 34, 39, 89, 36, 50, 47, 12, 108, 0, 27, 13, 1, 37, 48, 34, 39, 89,
-			36, 50, 47, 12, 37, 0, 0, 7, 1, 38, 10, 36, 47, 0, 0, 0, 7, 65, 40, 57, 37, 12, 0, 0, 0, 14, 1, 42, 35, 89,
-			47, 36, 34, 37, 89, 49, 37, 0, 27, 0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 39, 12, 0, 0, 0, 0,
-			9, 1, 47, 49, 122, 47, 12, 35, 0, 0, 13, 4, 95, 100, 105, 97, 6, 40, 65, 55, 122, 47, 0, 6, 65, 48, 109, 55, 0, 0,
-			0, 0, 6, 195, 60, 193, 84, 72, 0, 6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6, 65, 56, 109, 50, 0, 0, 0, 0, 0, 6,
-			65, 60, 39, 12, 0, 0, 14, 1, 61, 6, 114, 107, 47, 109, 49, 6, 120, 50, 0, 27, 0, 0, 0, 17, 70, 44, 243, 134, 85, 68,
-			197, 49, 39, 50, 83, 40, 47, 89, 36, 0, 7, 1, 64, 10, 109, 47, 0, 7, 65, 64, 48, 36, 12, 0, 0, 0, 0, 0, 7, 65,
-			68, 49, 40, 12, 0, 0, 0, 0, 0, 6, 65, 72, 109, 34, 0, 0, 0, 10, 135, 110, 195, 164, 105, 110, 195, 164, 76, 0, 0, 6,
-			65, 76, 109, 89, 0, 0, 0, 0, 0, 7, 65, 80, 47, 36, 12, 0, 0, 0, 0, 0, 9, 198, 48, 145, 78, 21, 69, 5, 72, 6,
-			65, 84, 40, 12, 0, 0, 0, 0, 0, 7, 65, 88, 84, 36, 12, 0, 0, 0, 0, 16, 4, 95, 49, 77, 52, 71, 6, 37, 55, 57,
-			39, 12, 50, 35, 0, 0, 8, 133, 115, 105, 110, 195, 164, 72, 8, 1, 92, 49, 36, 50, 39, 0, 13, 65, 92, 49, 35, 49, 89, 117,
-			89, 84, 36, 12, 0, 0, 0, 0, 0, 13, 4, 95, 49, 77, 49, 47, 6, 40, 107, 35, 47, 0, 7, 65, 96, 109, 49, 89, 0, 0,
-			6, 194, 4, 64, 13, 24, 16, 4, 95, 49, 77, 50, 65, 6, 37, 55, 57, 39, 12, 50, 35, 0, 0, 16, 4, 95, 49, 77, 51, 65,
-			6, 37, 55, 57, 35, 34, 72, 37, 0, 18, 65, 120, 34, 6, 130, 47, 89, 35, 55, 115, 50, 36, 50, 6, 39, 12, 0, 0, 0, 6,
-			65, 100, 114, 12, 0, 0, 7, 196, 81, 83, 12, 4, 14, 0, 0, 0, 8, 65, 104, 47, 89, 36, 47, 0, 0, 0, 0, 0, 9, 67,
-			60, 176, 89, 39, 49, 118, 0, 0, 6, 195, 81, 83, 206, 76, 0, 0, 0, 0, 6, 194, 12, 16, 13, 24, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 12, 68, 64, 244, 212, 36, 48, 39, 89, 47, 108, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 12,
-			4, 95, 116, 108, 100, 47, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 12, 68, 52, 19, 142, 20, 65, 35, 50, 50, 36, 0, 7,
-			196, 80, 84, 150, 20, 14, 0, 0, 0, 0, 7, 196, 81, 83, 142, 20, 14, 7, 196, 48, 21, 83, 20, 14, 0, 0, 0, 0, 0, 0,
-			0, 6, 195, 52, 83, 133, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 135, 110, 195, 164, 105, 108, 108, 101, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 10, 135, 116, 195, 164, 108, 108, 195, 164, 76, 0, 0, 0, 0, 10, 135, 116, 195, 164, 115, 116, 195, 164, 76, 0, 9, 198,
-			60, 194, 83, 37, 96, 84, 72, 11, 136, 110, 195, 164, 105, 115, 116, 195, 164, 76, 0, 0, 0, 6, 195, 80, 16, 64, 14, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 17, 8, 112, 195, 164, 195, 164, 115, 116, 105, 48, 109, 12, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0,
-			7, 195, 80, 18, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 110, 195, 164, 105, 108, 108, 195, 164,
-			76, 12, 3, 95, 35, 57, 89, 35, 34, 49, 115, 50, 0, 0, 0, 12, 68, 32, 147, 12, 20, 107, 37, 55, 55, 36, 0, 7, 196, 81,
-			83, 206, 4, 76, 0, 0, 0, 0, 7, 196, 65, 84, 146, 4, 14, 7, 196, 48, 18, 84, 20, 14, 5, 194, 21, 64, 72, 0, 8, 197,
-			40, 242, 76, 48, 80, 76, 8, 197, 40, 242, 83, 80, 16, 76, 0, 0, 6, 195, 4, 146, 5, 14, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 5, 85, 5, 80, 16, 14, 0, 0, 0, 6, 195,
-			4, 66, 4, 13, 0, 8, 197, 56, 242, 83, 80, 16, 76, 8, 197, 81, 83, 211, 76, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			17, 66, 20, 112, 36, 89, 37, 65, 36, 34, 49, 37, 49, 89, 37, 0, 24, 16, 70, 64, 83, 1, 77, 66, 64, 48, 36, 55, 35, 89,
-			47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 73, 154, 19, 80, 144, 51, 132, 89, 47, 108, 0, 13, 69,
-			45, 154, 19, 80, 144, 49, 132, 89, 47, 108, 0, 9, 134, 116, 195, 164, 109, 195, 164, 76, 0, 0, 0, 8, 197, 44, 146, 78, 56, 144,
-			14, 0, 16, 70, 88, 20, 129, 77, 66, 64, 84, 35, 51, 35, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 7, 196, 40, 245, 11, 4,
-			76, 7, 196, 40, 244, 211, 4, 76, 0, 8, 197, 56, 242, 76, 48, 80, 76, 0, 0, 6, 195, 40, 243, 129, 76, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 20, 144, 72, 0, 0, 0, 7, 196, 60, 195, 21, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 196, 40, 243, 139, 4, 76, 0, 9, 198, 56, 242, 84, 80, 83, 128, 76, 10, 135, 116, 195, 164, 109, 195, 164, 110, 76, 0,
-			0, 0, 0, 0, 0, 7, 195, 40, 225, 64, 13, 24, 11, 67, 4, 227, 133, 35, 50, 50, 36, 0, 41, 7, 195, 60, 195, 1, 72, 14,
-			9, 3, 226, 130, 172, 124, 34, 39, 0, 10, 3, 226, 130, 172, 124, 34, 39, 35, 0, 0, 0, 0, 0, 6, 195, 88, 83, 133, 14, 6,
-			195, 44, 243, 133, 14, 7, 195, 60, 193, 64, 72, 14, 0, 0, 0, 6, 194, 40, 16, 72, 8, 5, 194, 32, 80, 72, 0, 9, 198, 48,
-			145, 78, 20, 211, 69, 72, 0, 0, 0, 0, 6, 195, 60, 194, 64, 72, 0, 0, 0, 0, 0, 0, 0, 9, 134, 109, 101, 110, 110, 195,
-			164, 14, 9, 134, 116, 195, 164, 110, 195, 164, 76, 0, 16, 70, 88, 149, 76, 37, 53, 9, 84, 125, 55, 108, 89, 47, 108, 0, 0, 0,
-			0, 0, 0, 7, 196, 40, 242, 84, 4, 76, 7, 196, 40, 243, 12, 4, 76, 0, 0, 0, 0, 7, 196, 40, 244, 212, 4, 76, 0, 0,
-			13, 4, 95, 98, 114, 118, 71, 34, 6, 36, 84, 36, 0, 0, 0, 0, 0, 0, 6, 195, 60, 148, 133, 14, 7, 195, 37, 68, 197, 76,
-			14, 0, 12, 68, 72, 148, 212, 36, 51, 37, 89, 47, 108, 0, 12, 68, 65, 148, 212, 36, 48, 114, 89, 47, 108, 0, 0, 0, 6, 194,
-			20, 208, 13, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 224, 72, 0, 6, 195, 61, 64,
-			64, 14, 20, 3, 95, 51, 88, 49, 6, 39, 55, 65, 36, 49, 114, 65, 65, 36, 50, 47, 109, 0, 0, 12, 68, 40, 19, 142, 20, 57,
-			35, 50, 50, 36, 0, 13, 3, 95, 48, 67, 89, 6, 35, 47, 35, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49,
-			67, 89, 6, 35, 47, 35, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 49, 57, 6, 114, 107, 72, 36, 49, 89, 109, 50, 47, 4, 117,
-			89, 47, 35, 0, 0, 22, 3, 95, 49, 56, 49, 6, 35, 107, 72, 36, 49, 89, 35, 50, 47, 4, 117, 89, 47, 35, 0, 0, 8, 197,
-			81, 83, 200, 60, 224, 76, 0, 0, 0, 0, 0, 0, 16, 3, 95, 49, 49, 6, 114, 49, 89, 37, 47, 117, 89, 47, 35, 0, 0, 6,
-			195, 57, 83, 192, 76, 15, 3, 95, 49, 48, 49, 6, 114, 65, 65, 36, 50, 36, 50, 0, 0, 17, 3, 95, 49, 51, 49, 6, 39, 55,
-			65, 36, 47, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 50, 49, 6, 35, 49, 89, 37, 47, 117, 89, 47, 35, 0, 0, 17, 3, 95,
-			49, 53, 84, 6, 37, 12, 89, 37, 47, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 52, 50, 6, 36, 55, 57, 109, 47, 117, 89, 47,
-			35, 0, 0, 21, 3, 95, 49, 55, 89, 6, 118, 47, 89, 36, 65, 109, 50, 47, 4, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 54,
-			49, 6, 40, 12, 89, 37, 47, 117, 89, 47, 35, 0, 0, 0, 7, 196, 40, 242, 15, 56, 76, 24, 3, 95, 55, 88, 89, 6, 118, 47,
-			89, 36, 65, 109, 68, 49, 4, 114, 65, 65, 36, 50, 47, 109, 0, 0, 9, 198, 48, 145, 78, 56, 81, 84, 72, 0, 0, 0, 0, 7,
-			196, 65, 82, 197, 4, 14, 0, 0, 0, 0, 0, 0, 0, 6, 195, 40, 245, 1, 76, 15, 4, 95, 97, 99, 117, 6, 35, 49, 40, 12,
-			47, 12, 108, 0, 0, 0, 0, 0, 0, 6, 65, 160, 111, 12, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 50, 88, 49, 6, 35,
-			49, 89, 37, 49, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 12, 68, 44, 84, 212, 36, 49, 36, 89, 47, 108, 0, 12,
-			68, 44, 20, 212, 36, 49, 35, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 65, 6, 36, 34, 49, 12,
-			108, 0, 0, 0, 0, 20, 3, 95, 52, 88, 50, 6, 36, 55, 57, 109, 49, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 20, 3, 95, 53, 88, 84, 6, 37, 12, 89, 37, 49, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0,
-			8, 197, 60, 194, 83, 37, 64, 72, 0, 20, 3, 95, 54, 88, 49, 6, 40, 12, 89, 37, 49, 114, 65, 65, 36, 50, 47, 109, 0, 0,
-			0, 0, 0, 10, 135, 110, 195, 164, 105, 116, 195, 164, 76, 0, 0, 0, 0, 0, 12, 68, 56, 19, 12, 20, 50, 35, 55, 55, 36, 0,
-			0, 0, 0, 0, 12, 68, 64, 243, 12, 20, 48, 39, 55, 55, 36, 0, 12, 68, 28, 19, 12, 20, 81, 35, 55, 55, 36, 0, 7, 196,
-			40, 243, 12, 20, 76, 0, 8, 197, 40, 242, 83, 76, 16, 76, 8, 197, 56, 242, 83, 76, 16, 76, 8, 197, 81, 83, 204, 80, 16, 76,
-			8, 197, 81, 83, 204, 48, 16, 76, 0, 0, 25, 3, 95, 56, 88, 49, 6, 35, 107, 72, 36, 49, 89, 35, 68, 49, 4, 114, 65, 65,
-			36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80, 72, 0, 24, 3, 95, 57, 88, 6, 114, 107, 72, 36, 49, 89,
-			109, 68, 49, 4, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 45, 144, 13, 24, 8, 197, 60, 195, 5,
-			21, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 110, 195, 164, 109, 195, 164, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 56, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 61, 48, 13, 24, 21, 4, 95, 99,
-			105, 114, 89, 6, 37, 34, 49, 40, 65, 83, 55, 4, 36, 49, 89, 108, 0, 0, 0, 17, 4, 95, 48, 77, 52, 71, 6, 37, 55, 57,
-			39, 12, 50, 35, 12, 0, 0, 0, 17, 4, 95, 48, 77, 50, 65, 6, 37, 55, 57, 39, 12, 50, 35, 12, 0, 0, 17, 4, 95, 48,
-			77, 51, 65, 6, 37, 55, 57, 35, 34, 72, 37, 35, 0, 0, 0, 15, 4, 95, 48, 77, 49, 47, 6, 40, 107, 35, 47, 12, 35, 0,
-			0, 0, 0, 16, 70, 65, 84, 137, 77, 66, 64, 48, 40, 51, 108, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 195, 61, 96, 84, 72, 0, 0, 0, 0, 0, 0, 9, 134, 101, 105, 118, 195, 164, 116, 72, 0, 0, 0, 12,
-			137, 108, 105, 101, 110, 101, 118, 195, 164, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 160, 64, 14, 0, 0, 0,
-			0, 0, 0, 10, 135, 118, 195, 164, 104, 195, 164, 110, 76, 0, 0, 0, 15, 4, 95, 99, 101, 100, 89, 6, 36, 72, 108, 55, 57, 108,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 99, 97, 112, 6, 37, 89, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 17, 70, 64, 144, 78, 37, 53, 9, 48, 37, 35, 50, 37, 89, 47, 108, 0, 10, 135, 110, 195, 164, 105, 100, 101, 110, 76,
-			0, 8, 196, 48, 145, 78, 20, 72, 14, 7, 196, 81, 83, 212, 4, 76, 0, 0, 0, 0, 8, 196, 53, 85, 20, 4, 76, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 12, 68, 72, 20, 212, 36, 51, 35, 89, 47, 108, 0, 12, 68, 44, 244, 212, 36, 49, 39, 89, 47, 108, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 60, 194, 84, 72, 0, 0, 5, 194, 61, 144, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135,
-			116, 195, 164, 115, 115, 195, 164, 76, 0, 11, 136, 110, 195, 164, 105, 115, 115, 195, 164, 76, 0, 0, 12, 68, 32, 19, 142, 20, 107, 35,
-			50, 50, 36, 0, 0, 0, 0, 0, 7, 196, 4, 161, 84, 4, 14, 7, 196, 65, 84, 138, 20, 14, 0, 0, 0, 17, 70, 65, 35, 205,
-			36, 195, 5, 48, 51, 39, 65, 108, 55, 55, 36, 0, 0, 0, 0, 0, 0, 13, 66, 60, 176, 6, 39, 12, 10, 4, 49, 39, 12, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 60, 194, 83, 36, 224, 72, 0, 17, 70, 52, 20, 137, 4, 227, 133, 65, 35, 51,
-			108, 35, 50, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 103, 114, 118, 81, 34, 6, 35, 84, 108, 89, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 80, 72, 13, 2, 194, 164, 84, 35, 55, 40, 12, 47, 12, 35, 0, 0,
-			0, 0, 10, 2, 194, 163, 48, 40, 50, 47, 35, 0, 0, 0, 0, 0, 0, 7, 2, 195, 164, 109, 12, 0, 0, 0, 0, 9, 133, 101,
-			110, 116, 195, 164, 72, 8, 0, 0, 0, 0, 0, 5, 194, 60, 224, 72, 0, 6, 195, 4, 32, 192, 13, 10, 135, 116, 195, 164, 108, 116,
-			195, 164, 76, 0, 0, 0, 7, 196, 88, 148, 139, 20, 14, 0, 0, 0, 0, 0, 0, 0, 0, 17, 70, 100, 241, 200, 85, 37, 0, 57,
-			39, 81, 40, 34, 47, 12, 37, 0, 0, 0, 0, 0, 5, 194, 80, 80, 72, 0, 0, 0, 0, 0, 7, 195, 88, 18, 64, 72, 8, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 116, 195, 164, 116, 195, 164, 76, 0, 0, 11, 136, 110, 195, 164, 105, 108, 116, 195,
-			164, 76, 0, 0, 12, 68, 92, 147, 12, 20, 84, 37, 55, 55, 36, 0, 12, 68, 88, 147, 12, 20, 84, 37, 55, 55, 36, 0, 12, 68,
-			44, 19, 12, 20, 49, 35, 55, 55, 36, 0, 0, 0, 0, 0, 12, 68, 64, 83, 12, 20, 48, 36, 55, 55, 36, 0, 7, 196, 56, 242,
-			78, 4, 76, 0, 8, 197, 40, 242, 76, 80, 16, 76, 8, 197, 40, 242, 76, 48, 16, 76, 8, 197, 56, 242, 76, 80, 16, 76, 0, 0,
-			6, 195, 40, 242, 193, 76, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 60, 194, 83, 36, 211, 69, 72, 0, 0, 0, 0, 0, 8, 197,
-			48, 145, 78, 21, 64, 72, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 154, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197,
-			60, 193, 77, 52, 80, 72, 8, 197, 56, 242, 76, 48, 16, 76, 0, 0, 6, 195, 65, 81, 64, 14, 6, 195, 65, 82, 5, 14, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 35, 34, 37, 89, 40, 0, 0, 10, 2, 95, 34, 55, 115, 50, 122, 89, 0,
-			0, 16, 2, 95, 33, 107, 40, 12, 47, 39, 65, 36, 34, 49, 12, 37, 0, 0, 0, 10, 2, 95, 39, 107, 118, 47, 12, 39, 0, 0,
-			13, 2, 95, 38, 36, 47, 65, 36, 34, 49, 12, 37, 0, 0, 14, 2, 95, 37, 48, 34, 39, 89, 36, 50, 47, 12, 37, 0, 0, 13,
-			2, 95, 36, 72, 39, 55, 55, 35, 34, 37, 50, 0, 0, 0, 18, 71, 45, 83, 135, 25, 85, 19, 20, 49, 40, 68, 83, 40, 47, 89,
-			36, 0, 0, 15, 2, 95, 41, 55, 39, 48, 12, 40, 89, 40, 55, 49, 40, 0, 0, 14, 2, 95, 40, 35, 55, 49, 40, 89, 40, 55,
-			49, 40, 0, 0, 7, 195, 20, 180, 128, 13, 24, 0, 10, 2, 95, 46, 48, 37, 89, 47, 36, 0, 0, 10, 2, 95, 45, 84, 37, 12,
-			84, 35, 0, 0, 0, 11, 2, 95, 51, 49, 6, 39, 55, 65, 36, 0, 0, 11, 2, 95, 50, 49, 6, 35, 49, 89, 37, 0, 0, 9,
-			134, 110, 195, 164, 121, 116, 101, 14, 8, 197, 60, 194, 77, 52, 80, 72, 9, 134, 116, 195, 164, 108, 108, 101, 76, 10, 2, 95, 49, 6,
-			114, 49, 89, 37, 0, 0, 11, 2, 95, 48, 50, 6, 39, 55, 55, 35, 0, 0, 6, 195, 81, 83, 5, 14, 14, 2, 95, 55, 89, 6,
-			118, 47, 89, 36, 65, 109, 50, 0, 0, 11, 2, 95, 54, 49, 6, 40, 12, 89, 37, 0, 0, 11, 2, 95, 53, 84, 6, 37, 12, 89,
-			37, 0, 0, 11, 2, 95, 52, 50, 6, 36, 55, 57, 109, 0, 0, 6, 195, 36, 131, 69, 14, 0, 16, 2, 95, 58, 49, 35, 49, 89,
-			117, 89, 48, 37, 89, 47, 36, 0, 0, 14, 2, 95, 57, 6, 114, 107, 72, 36, 49, 89, 109, 50, 0, 0, 15, 2, 95, 56, 49, 6,
-			35, 107, 72, 36, 49, 89, 35, 50, 0, 0, 18, 2, 95, 63, 49, 114, 89, 114, 65, 114, 89, 65, 36, 34, 49, 12, 108, 0, 0, 18,
-			2, 95, 62, 89, 6, 40, 12, 34, 36, 65, 48, 108, 49, 6, 120, 50, 0, 0, 0, 17, 2, 95, 60, 48, 6, 131, 50, 36, 65, 48,
-			108, 49, 6, 120, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 116, 195, 164, 104, 195, 164, 110, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 65, 212, 107, 6, 35, 47, 12, 40, 109, 89, 0, 0, 0, 9, 198, 60, 194, 83, 37, 69, 5, 72, 0, 0, 0, 23, 73, 76,
-			148, 139, 85, 52, 5, 48, 193, 64, 89, 37, 51, 49, 40, 89, 48, 36, 55, 55, 36, 0, 7, 132, 104, 195, 164, 110, 72, 0, 6, 195,
-			20, 211, 69, 72, 0, 7, 196, 60, 194, 83, 36, 72, 0, 0, 6, 195, 60, 194, 78, 72, 0, 13, 2, 95, 91, 35, 55, 49, 40, 107,
-			35, 49, 35, 0, 0, 0, 0, 0, 13, 2, 95, 95, 35, 55, 35, 84, 37, 12, 84, 35, 0, 0, 0, 14, 2, 95, 93, 55, 39, 48,
-			12, 40, 107, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 109, 105, 110, 195, 164, 72, 0, 0, 0, 0, 0, 0, 0,
-			7, 196, 40, 243, 20, 4, 76, 0, 0, 0, 0, 7, 196, 61, 65, 84, 4, 14, 7, 196, 81, 83, 210, 20, 14, 0, 0, 0, 0, 8,
-			197, 56, 242, 72, 36, 224, 76, 0, 0, 0, 14, 2, 95, 123, 35, 55, 49, 40, 35, 12, 55, 47, 39, 0, 0, 0, 0, 0, 0, 0,
-			15, 2, 95, 125, 55, 39, 48, 12, 40, 35, 12, 55, 47, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 11, 136, 110, 195, 164, 105, 116, 116, 101, 110, 76, 0, 0, 7, 196, 65, 81, 84, 4, 14, 0, 0, 0, 0, 8, 197, 48, 145,
-			78, 20, 224, 72, 0, 0, 11, 4, 95, 35, 51, 50, 84, 109, 55, 37, 0, 0, 6, 195, 65, 84, 133, 14, 0, 8, 197, 40, 242, 68,
-			20, 224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 49, 83, 192, 14, 6, 195, 81, 83, 192, 76,
-			0, 8, 197, 56, 242, 68, 20, 224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 77, 84, 193, 56, 225, 64, 89, 40, 89,
-			35, 50, 50, 36, 0, 0, 0, 0, 0, 0, 6, 195, 5, 85, 1, 14, 6, 195, 21, 69, 5, 72, 0, 0, 0, 0, 0, 0, 0, 8,
-			197, 60, 194, 86, 5, 64, 72, 0, 0, 0, 0, 16, 69, 100, 241, 213, 73, 64, 57, 39, 81, 40, 34, 47, 12, 37, 0, 0, 0, 8,
-			197, 40, 242, 72, 36, 224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 110, 195, 164, 105, 104, 105, 110, 76,
-			0, 0, 6, 195, 5, 53, 5, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 65, 228, 107, 6, 35, 47, 12, 40,
-			47, 89, 4, 36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 115, 121, 195, 182, 100, 195, 164, 14, 0, 7, 196,
-			49, 83, 196, 20, 14, 0, 8, 197, 60, 194, 84, 80, 80, 72, 8, 197, 60, 193, 84, 80, 80, 72, 8, 197, 81, 83, 204, 48, 80, 76,
-			0, 0, 0, 7, 196, 40, 242, 78, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 66, 100, 208, 114, 50, 50, 109, 10, 65,
-			40, 12, 47, 35, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 164, 0, 1, 10, 2, 108, 108, 97, 32, 3, 2,
-			109, 0, 3, 109, 0, 195, 164, 3, 109, 12, 0, 105, 105, 3, 109, 37, 12, 0, 121, 121, 3, 109, 114, 12, 0, 105, 3, 116, 0, 121,
-			3, 126, 0, 7, 6, 195, 182, 0, 3, 111, 0, 195, 182, 3, 111, 12, 0, 105, 105, 3, 111, 37, 12, 0, 121, 121, 3, 111, 114, 12,
-			0, 105, 3, 119, 0, 121, 3, 128, 0, 7, 6, 97, 0, 1, 10, 2, 108, 108, 97, 32, 3, 2, 35, 0, 3, 35, 0, 4, 8, 114,
-			116, 115, 117, 97, 2, 108, 3, 35, 12, 0, 97, 0, 105, 105, 3, 35, 37, 12, 0, 117, 117, 3, 35, 40, 12, 0, 105, 3, 115, 0,
-			117, 3, 122, 0, 7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12, 0, 7, 6, 99, 0, 4, 3, 49, 0, 104, 1, 25, 2, 114, 0,
-			99, 3, 49, 12, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2, 121, 0, 105, 116, 121, 3, 89, 37, 47, 37, 0, 7, 6, 100, 0,
-			3, 72, 0, 100, 3, 72, 12, 0, 7, 6, 101, 0, 4, 1, 10, 2, 108, 108, 97, 32, 3, 2, 36, 0, 1, 10, 2, 108, 108, 195,
-			164, 32, 0, 3, 36, 0, 101, 3, 36, 12, 0, 105, 105, 3, 36, 37, 12, 0, 117, 117, 3, 36, 40, 12, 0, 121, 121, 3, 36, 114,
-			12, 0, 105, 3, 118, 0, 117, 3, 124, 0, 121, 3, 127, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 103, 3,
-			81, 12, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 1, 10, 2, 108, 108, 97, 32, 3, 2, 37, 0, 3, 37, 0, 105, 3,
-			37, 12, 0, 101, 101, 3, 37, 36, 12, 0, 117, 117, 3, 37, 40, 12, 0, 121, 121, 3, 37, 114, 12, 0, 117, 3, 125, 0, 121, 3,
-			129, 0, 101, 3, 131, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3, 49, 12, 0, 7, 6, 108, 0, 3,
-			55, 0, 108, 101, 1, 21, 2, 32, 3, 55, 55, 36, 22, 0, 7, 6, 109, 0, 3, 65, 0, 8, 164, 195, 100, 121, 115, 2, 17, 65,
-			3, 65, 12, 0, 7, 6, 110, 0, 3, 50, 0, 110, 101, 1, 21, 2, 32, 3, 50, 50, 36, 22, 0, 4, 2, 32, 112, 3, 65, 0,
-			2, 112, 0, 4, 2, 32, 107, 3, 68, 0, 2, 107, 0, 103, 2, 25, 0, 103, 3, 68, 12, 0, 7, 6, 111, 0, 4, 3, 39, 0,
-			1, 98, 109, 121, 115, 2, 108, 111, 105, 0, 4, 1, 98, 109, 121, 115, 2, 108, 3, 39, 12, 0, 111, 0, 105, 105, 3, 39, 37, 12,
-			0, 117, 117, 3, 39, 40, 12, 0, 105, 3, 117, 0, 117, 3, 123, 0, 7, 6, 112, 0, 3, 48, 0, 4, 1, 109, 97, 104, 115, 2,
-			111, 3, 48, 12, 0, 1, 109, 97, 107, 2, 97, 110, 106, 0, 8, 97, 116, 111, 2, 97, 0, 8, 101, 108, 111, 2, 97, 0, 112, 0,
-			7, 6, 113, 0, 3, 49, 0, 113, 3, 49, 12, 0, 7, 6, 114, 0, 3, 34, 0, 7, 6, 115, 0, 3, 89, 0, 116, 105, 1, 17,
-			65, 2, 32, 3, 89, 47, 37, 22, 0, 4, 104, 1, 21, 2, 97, 110, 32, 3, 89, 107, 0, 104, 1, 21, 2, 195, 164, 110, 32, 0,
-			115, 3, 89, 133, 0, 4, 99, 104, 1, 25, 3, 91, 0, 104, 1, 25, 0, 7, 6, 116, 0, 3, 47, 0, 116, 3, 47, 12, 0, 122,
-			3, 47, 89, 0, 115, 101, 1, 21, 2, 32, 3, 47, 89, 36, 22, 0, 7, 6, 117, 0, 3, 40, 0, 117, 3, 40, 12, 0, 105, 105,
-			3, 40, 37, 12, 0, 111, 111, 3, 40, 39, 12, 0, 105, 3, 58, 37, 0, 4, 105, 8, 3, 120, 0, 105, 8, 106, 0, 111, 3, 130,
-			0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 120, 3, 49, 12, 89, 0, 3, 49, 89, 0, 7,
-			6, 121, 0, 3, 114, 0, 121, 3, 114, 12, 0, 105, 105, 3, 114, 37, 12, 0, 195, 182, 195, 182, 3, 114, 111, 12, 0, 105, 3, 121,
-			0, 195, 182, 3, 132, 0, 7, 6, 122, 0, 4, 3, 47, 89, 0, 122, 0, 104, 1, 25, 3, 90, 0, 7, 6, 0, 4, 45, 1, 32,
-			17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 165, 3, 39, 0, 195, 165, 195, 165, 3, 39, 12, 0,
-			45, 8, 32, 2, 32, 15, 3, 65, 37, 12, 50, 40, 89, 0, 36, 3, 72, 39, 55, 55, 35, 34, 37, 50, 0, 197, 190, 3, 90, 0,
-			197, 161, 3, 91, 0, 195, 188, 3, 114, 0, 195, 188, 195, 188, 3, 114, 12, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts20 = FileInMemory_createWithData (5120, reinterpret_cast<const char *> (&espeakdata_dicts20_data), 
-			U"espeak-1.48.04-source/espeak-data/fi_dict", 
+		static unsigned char espeakdata_dicts18_data[5131] = {
+			0, 4, 0, 0, 161, 16, 0, 0, 9, 198, 48, 145, 78, 20, 211, 69, 72, 0, 0, 0, 13, 67, 57, 35, 192, 50, 40, 65, 36, 34,
+			39, 0, 24, 0, 0, 6, 65, 4, 35, 12, 0, 0, 10, 135, 20, 195, 164, 12, 20, 195, 164, 76, 0, 0, 6, 195, 52, 83, 133, 19,
+			7, 196, 48, 21, 83, 20, 19, 0, 7, 65, 8, 71, 36, 12, 0, 0, 0, 16, 67, 21, 64, 192, 36, 47, 10, 89, 36, 47, 36, 34,
+			35, 0, 24, 0, 0, 7, 65, 12, 89, 36, 12, 0, 0, 0, 0, 0, 7, 65, 16, 72, 36, 12, 0, 0, 0, 0, 7, 196, 81, 83,
+			206, 4, 76, 0, 6, 65, 20, 36, 12, 0, 0, 0, 0, 0, 6, 65, 24, 109, 83, 0, 0, 0, 0, 0, 8, 197, 56, 242, 76, 48,
+			80, 76, 7, 65, 28, 81, 36, 12, 0, 0, 0, 0, 7, 196, 40, 243, 139, 4, 76, 0, 7, 65, 32, 107, 39, 12, 0, 0, 0, 0,
+			6, 195, 60, 148, 133, 19, 7, 196, 40, 243, 12, 4, 76, 7, 195, 37, 68, 197, 76, 19, 0, 6, 65, 36, 37, 12, 0, 0, 14, 1,
+			37, 48, 34, 39, 89, 36, 50, 47, 12, 108, 0, 27, 13, 1, 37, 48, 34, 39, 89, 36, 50, 47, 12, 37, 0, 0, 17, 70, 44, 243,
+			134, 85, 68, 197, 49, 39, 50, 83, 40, 47, 89, 36, 0, 7, 1, 38, 10, 36, 47, 0, 0, 0, 8, 197, 81, 83, 200, 60, 224, 76,
+			7, 65, 40, 57, 37, 12, 0, 0, 0, 14, 1, 42, 35, 89, 47, 36, 34, 37, 89, 49, 37, 0, 27, 0, 9, 1, 43, 48, 55, 40,
+			89, 0, 27, 0, 7, 65, 44, 49, 39, 12, 0, 0, 0, 0, 9, 1, 47, 49, 122, 47, 12, 35, 0, 0, 6, 65, 48, 109, 55, 0,
+			0, 0, 0, 12, 68, 64, 243, 12, 20, 48, 39, 55, 55, 36, 0, 7, 196, 40, 243, 12, 20, 76, 0, 6, 65, 52, 109, 65, 0, 0,
+			0, 0, 0, 6, 65, 56, 109, 50, 0, 0, 0, 0, 0, 6, 65, 60, 39, 12, 0, 0, 14, 1, 61, 6, 114, 107, 47, 109, 49, 6,
+			120, 50, 0, 27, 0, 0, 0, 7, 1, 64, 10, 109, 47, 0, 7, 65, 64, 48, 36, 12, 0, 0, 0, 0, 7, 196, 81, 83, 212, 4,
+			76, 0, 7, 65, 68, 49, 40, 12, 0, 0, 0, 0, 0, 6, 65, 72, 109, 34, 0, 0, 0, 0, 0, 6, 65, 76, 109, 89, 0, 0,
+			0, 0, 0, 7, 65, 80, 47, 36, 12, 0, 0, 0, 0, 12, 68, 64, 83, 12, 20, 48, 36, 55, 55, 36, 0, 0, 6, 65, 84, 40,
+			12, 0, 0, 0, 0, 0, 7, 65, 88, 84, 36, 12, 0, 0, 0, 0, 16, 4, 95, 49, 77, 52, 71, 6, 37, 55, 57, 39, 12, 50,
+			35, 0, 0, 8, 197, 60, 194, 77, 52, 80, 72, 8, 133, 13, 9, 14, 195, 164, 72, 8, 1, 92, 49, 36, 50, 39, 0, 13, 65, 92,
+			49, 35, 49, 89, 117, 89, 84, 36, 12, 0, 0, 0, 0, 0, 13, 4, 95, 49, 77, 49, 47, 6, 40, 107, 35, 47, 0, 7, 65, 96,
+			109, 49, 89, 0, 0, 6, 194, 4, 64, 17, 24, 16, 4, 95, 49, 77, 50, 65, 6, 37, 55, 57, 39, 12, 50, 35, 0, 0, 16, 4,
+			95, 49, 77, 51, 65, 6, 37, 55, 57, 35, 34, 72, 37, 0, 0, 7, 196, 81, 83, 210, 20, 19, 7, 196, 40, 243, 20, 4, 76, 0,
+			6, 65, 100, 114, 12, 0, 0, 0, 0, 0, 8, 65, 104, 47, 89, 36, 47, 0, 0, 0, 0, 0, 0, 16, 70, 77, 84, 193, 56, 225,
+			64, 89, 40, 89, 35, 50, 50, 36, 0, 0, 0, 0, 0, 6, 194, 12, 16, 17, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 52, 19, 142, 20, 65, 35, 50, 50,
+			36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 32, 147, 12, 20, 107, 37, 55, 55, 36, 0, 7, 196, 65, 84,
+			146, 4, 19, 0, 0, 0, 0, 0, 8, 197, 56, 242, 83, 80, 16, 76, 0, 0, 0, 7, 196, 60, 195, 21, 80, 72, 7, 196, 40, 244,
+			211, 4, 76, 0, 0, 0, 0, 11, 67, 4, 227, 133, 35, 50, 50, 36, 0, 41, 0, 0, 0, 0, 12, 68, 72, 148, 212, 36, 51, 37,
+			89, 47, 108, 0, 7, 196, 40, 244, 212, 4, 76, 0, 0, 0, 0, 12, 68, 40, 19, 142, 20, 57, 35, 50, 50, 36, 0, 0, 0, 0,
+			0, 7, 196, 65, 82, 197, 4, 19, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 56, 19, 12, 20, 50, 35, 55, 55, 36, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 14, 195, 164, 9, 20, 195, 164, 76, 0, 0, 0, 0, 0, 12, 68, 72, 20, 212, 36,
+			51, 35, 89, 47, 108, 0, 12, 68, 44, 244, 212, 36, 49, 39, 89, 47, 108, 0, 0, 0, 0, 6, 195, 80, 16, 64, 19, 0, 12, 68,
+			32, 19, 142, 20, 107, 35, 50, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 92, 147, 12, 20, 84, 37,
+			55, 55, 36, 0, 12, 68, 88, 147, 12, 20, 84, 37, 55, 55, 36, 0, 12, 68, 44, 19, 12, 20, 49, 35, 55, 55, 36, 0, 0, 8,
+			197, 40, 242, 76, 48, 16, 76, 8, 197, 56, 242, 76, 80, 16, 76, 0, 0, 7, 195, 80, 18, 64, 72, 8, 0, 13, 4, 95, 4, 16,
+			20, 48, 37, 55, 49, 12, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 20, 12, 4, 47, 37, 55, 72,
+			36, 0, 12, 3, 95, 35, 57, 89, 35, 34, 49, 115, 50, 0, 0, 8, 197, 56, 242, 72, 36, 224, 76, 0, 0, 0, 0, 0, 5, 194,
+			21, 64, 72, 0, 0, 0, 8, 197, 60, 194, 86, 5, 64, 72, 0, 0, 0, 0, 0, 0, 0, 7, 196, 49, 83, 196, 20, 19, 0, 8,
+			197, 60, 193, 84, 80, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 20, 195, 164, 13, 195, 164, 76, 0, 0, 9, 67, 60,
+			176, 89, 39, 49, 118, 0, 0, 0, 0, 0, 0, 12, 68, 64, 244, 212, 36, 48, 39, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 11,
+			136, 14, 195, 164, 9, 20, 20, 5, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 20, 112, 36, 89, 37, 65, 36, 34, 49, 37,
+			49, 89, 37, 0, 24, 0, 0, 0, 8, 197, 40, 242, 76, 48, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 83, 133,
+			19, 7, 195, 60, 195, 1, 72, 19, 9, 198, 56, 242, 84, 80, 83, 128, 76, 0, 0, 0, 17, 70, 65, 35, 205, 36, 195, 5, 48, 51,
+			39, 65, 108, 55, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 40, 242, 15, 56, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 5, 194, 20, 144, 72, 0, 0, 12, 68, 28, 19, 12, 20, 81, 35, 55, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 134, 20, 195, 164, 14, 195, 164, 76, 0, 0, 0, 0, 0, 6, 195, 60, 194, 84, 72, 0, 11, 136, 14, 195, 164, 9, 19, 19, 195,
+			164, 76, 0, 0, 0, 0, 0, 0, 0, 7, 195, 40, 225, 64, 17, 24, 9, 3, 226, 130, 172, 124, 34, 39, 0, 10, 3, 226, 130, 172,
+			124, 34, 39, 35, 0, 0, 0, 0, 15, 7, 18, 25, 195, 182, 19, 20, 9, 51, 132, 89, 47, 108, 0, 0, 7, 195, 60, 193, 64, 72,
+			19, 0, 0, 0, 6, 194, 40, 16, 72, 8, 5, 194, 32, 80, 72, 0, 17, 8, 16, 195, 164, 195, 164, 19, 20, 9, 48, 109, 12, 89,
+			47, 108, 0, 0, 0, 23, 73, 76, 148, 139, 85, 52, 5, 48, 193, 64, 89, 37, 51, 49, 40, 89, 48, 36, 55, 55, 36, 0, 0, 0,
+			6, 195, 60, 194, 64, 72, 0, 0, 0, 6, 195, 36, 131, 69, 19, 0, 0, 0, 6, 195, 60, 194, 78, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 8, 197, 56, 242, 68, 20, 224, 76, 0, 0, 0, 0, 16, 69, 100, 241, 213, 73, 64, 57, 39, 81, 40, 34,
+			47, 12, 37, 0, 0, 0, 0, 0, 9, 198, 60, 194, 83, 37, 69, 5, 72, 0, 6, 194, 20, 208, 17, 24, 0, 0, 0, 6, 195, 60,
+			193, 78, 72, 0, 0, 0, 0, 8, 197, 81, 83, 211, 80, 16, 76, 0, 0, 6, 195, 60, 193, 84, 72, 0, 0, 0, 0, 0, 0, 0,
+			5, 194, 20, 224, 72, 0, 6, 195, 61, 64, 64, 19, 20, 3, 95, 51, 88, 49, 6, 39, 55, 65, 36, 49, 114, 65, 65, 36, 50, 47,
+			109, 0, 0, 13, 3, 95, 48, 67, 89, 6, 35, 47, 35, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 89,
+			6, 35, 47, 35, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 146, 5, 19, 21, 3, 95, 49, 57, 6, 114, 107, 72, 36, 49, 89, 109,
+			50, 47, 4, 117, 89, 47, 35, 0, 0, 22, 3, 95, 49, 56, 49, 6, 35, 107, 72, 36, 49, 89, 35, 50, 47, 4, 117, 89, 47, 35,
+			0, 0, 0, 0, 0, 0, 0, 8, 197, 44, 146, 78, 56, 144, 19, 8, 197, 81, 83, 211, 76, 16, 76, 0, 16, 3, 95, 49, 49, 6,
+			114, 49, 89, 37, 47, 117, 89, 47, 35, 0, 0, 6, 195, 57, 83, 192, 76, 15, 3, 95, 49, 48, 49, 6, 114, 65, 65, 36, 50, 36,
+			50, 0, 0, 17, 3, 95, 49, 51, 49, 6, 39, 55, 65, 36, 47, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 50, 49, 6, 35, 49,
+			89, 37, 47, 117, 89, 47, 35, 0, 0, 15, 7, 11, 25, 195, 182, 19, 20, 9, 49, 132, 89, 47, 108, 0, 17, 3, 95, 49, 53, 84,
+			6, 37, 12, 89, 37, 47, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 52, 50, 6, 36, 55, 57, 109, 47, 117, 89, 47, 35, 0, 0,
+			21, 3, 95, 49, 55, 89, 6, 118, 47, 89, 36, 65, 109, 50, 47, 4, 117, 89, 47, 35, 0, 0, 17, 3, 95, 49, 54, 49, 6, 40,
+			12, 89, 37, 47, 117, 89, 47, 35, 0, 0, 0, 10, 135, 20, 195, 164, 19, 19, 195, 164, 76, 24, 3, 95, 55, 88, 89, 6, 118, 47,
+			89, 36, 65, 109, 68, 49, 4, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 40, 245, 1, 76, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 50, 88, 49, 6, 35, 49, 89, 37, 49, 114, 65, 65,
+			36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 11, 136, 14, 195, 164, 9, 12, 12, 195, 164, 76, 0, 0, 0, 0, 0, 0, 0, 0, 13,
+			3, 95, 63, 63, 65, 6, 36, 34, 49, 12, 108, 0, 0, 0, 0, 20, 3, 95, 52, 88, 50, 6, 36, 55, 57, 109, 49, 114, 65, 65,
+			36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 53, 88, 84, 6, 37, 12, 89, 37, 49, 114, 65, 65, 36, 50,
+			47, 109, 0, 0, 0, 8, 197, 40, 242, 76, 80, 16, 76, 0, 0, 0, 0, 0, 0, 20, 3, 95, 54, 88, 49, 6, 40, 12, 89, 37,
+			49, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 0, 0, 0, 10, 135, 20, 195, 164, 8, 195, 164, 14, 76, 0, 0, 10, 135, 20,
+			195, 164, 12, 12, 195, 164, 76, 10, 135, 20, 195, 164, 19, 20, 195, 164, 76, 0, 7, 196, 61, 65, 84, 4, 19, 0, 0, 0, 0, 7,
+			196, 65, 81, 84, 4, 19, 0, 0, 10, 135, 14, 195, 164, 9, 12, 12, 5, 76, 0, 25, 3, 95, 56, 88, 49, 6, 35, 107, 72, 36,
+			49, 89, 35, 68, 49, 4, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0, 0, 7, 132, 8, 195, 164, 14, 72, 0, 0, 0, 0, 5, 194,
+			52, 80, 72, 0, 24, 3, 95, 57, 88, 6, 114, 107, 72, 36, 49, 89, 109, 68, 49, 4, 114, 65, 65, 36, 50, 47, 109, 0, 0, 0,
+			0, 0, 0, 0, 0, 6, 194, 45, 144, 17, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 14, 195, 164, 9, 19, 20, 195,
+			164, 76, 0, 7, 196, 81, 83, 12, 4, 19, 0, 0, 0, 0, 7, 196, 81, 83, 142, 20, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 5, 194, 56, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 61, 48, 17, 24, 0, 0, 6, 195, 40, 243, 129, 76, 17, 4,
+			95, 48, 77, 52, 71, 6, 37, 55, 57, 39, 12, 50, 35, 12, 0, 0, 0, 17, 4, 95, 48, 77, 50, 65, 6, 37, 55, 57, 39, 12,
+			50, 35, 12, 0, 0, 17, 4, 95, 48, 77, 51, 65, 6, 37, 55, 57, 35, 34, 72, 37, 35, 0, 0, 0, 15, 4, 95, 48, 77, 49,
+			47, 6, 40, 107, 35, 47, 12, 35, 0, 0, 13, 4, 95, 2, 18, 22, 71, 34, 6, 36, 84, 36, 0, 0, 0, 7, 196, 40, 242, 84,
+			4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 134, 14, 195, 164, 13, 195, 164, 76, 0, 0, 0, 0, 0, 6, 195, 4, 160, 64, 19, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 197, 48, 145, 78, 21, 64, 72, 0, 0, 9, 198, 48, 145, 78, 21, 69, 5, 72, 0, 6, 195, 40, 242, 193, 76, 0, 0,
+			0, 0, 0, 8, 197, 60, 193, 77, 52, 80, 72, 10, 135, 14, 195, 164, 9, 4, 5, 14, 76, 0, 0, 0, 0, 0, 21, 4, 95, 3,
+			9, 18, 89, 6, 37, 34, 49, 40, 65, 83, 55, 4, 36, 49, 89, 108, 0, 0, 0, 7, 196, 60, 194, 83, 36, 72, 0, 0, 9, 134,
+			13, 5, 14, 14, 195, 164, 19, 0, 0, 0, 0, 0, 9, 134, 20, 195, 164, 12, 12, 5, 76, 0, 0, 8, 197, 40, 242, 68, 20, 224,
+			76, 0, 0, 0, 0, 15, 4, 95, 1, 3, 21, 6, 35, 49, 40, 12, 47, 12, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 197, 48, 145, 78, 20, 80, 72, 0, 5, 194, 61, 144, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 196, 80, 84, 150, 20, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 66, 60, 176, 6, 39, 12, 10, 4, 49, 39, 12, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 64, 83, 1, 77, 66, 64, 48, 36, 55, 35, 89, 47, 108, 0, 0, 0, 7, 196, 40, 245,
+			11, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 65, 148, 212, 36, 48, 114, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 80, 72, 13, 2, 194, 164, 84, 35, 55, 40, 12, 47, 12, 35, 0, 0, 0, 0, 8, 197,
+			40, 242, 83, 76, 16, 76, 8, 197, 81, 83, 204, 48, 16, 76, 10, 2, 194, 163, 48, 40, 50, 47, 35, 0, 0, 0, 6, 195, 61, 96,
+			84, 72, 0, 0, 0, 9, 198, 60, 194, 83, 37, 96, 84, 72, 7, 2, 195, 164, 109, 12, 0, 0, 19, 2, 195, 165, 34, 6, 130, 47,
+			89, 35, 55, 115, 50, 36, 50, 6, 39, 12, 0, 0, 0, 0, 14, 2, 195, 160, 6, 35, 55, 35, 0, 24, 81, 108, 97, 32, 0, 0,
+			0, 0, 5, 194, 60, 224, 72, 9, 134, 20, 195, 164, 20, 195, 164, 76, 0, 6, 195, 4, 32, 192, 17, 0, 0, 0, 0, 0, 7, 196,
+			4, 161, 84, 4, 19, 7, 2, 195, 182, 111, 12, 0, 0, 0, 0, 0, 15, 4, 95, 3, 5, 4, 89, 6, 36, 72, 108, 55, 57, 108,
+			0, 0, 0, 17, 70, 100, 241, 200, 85, 37, 0, 57, 39, 81, 40, 34, 47, 12, 37, 0, 0, 13, 2, 197, 161, 107, 6, 35, 47, 12,
+			40, 109, 89, 0, 0, 7, 196, 88, 148, 139, 20, 19, 0, 0, 5, 194, 80, 80, 72, 0, 0, 7, 196, 56, 242, 78, 4, 76, 0, 0,
+			0, 7, 195, 88, 18, 64, 72, 8, 0, 6, 195, 65, 82, 5, 19, 0, 0, 0, 0, 6, 195, 81, 83, 5, 19, 0, 0, 0, 9, 198,
+			60, 194, 83, 36, 211, 69, 72, 0, 16, 2, 197, 190, 107, 6, 35, 47, 12, 40, 47, 89, 4, 36, 47, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 197, 48, 145, 78, 20, 224, 72, 0, 0, 17, 70, 64, 144, 78, 37, 53, 9, 48, 37, 35, 50, 37, 89, 47, 108, 0,
+			0, 0, 10, 135, 22, 195, 164, 8, 195, 164, 14, 76, 0, 0, 0, 6, 195, 5, 53, 5, 19, 0, 0, 0, 0, 7, 196, 40, 242, 78,
+			4, 76, 0, 8, 197, 60, 194, 84, 80, 80, 72, 8, 197, 81, 83, 204, 48, 80, 76, 0, 0, 0, 7, 196, 88, 148, 136, 20, 19, 0,
+			10, 135, 14, 195, 164, 9, 8, 9, 14, 76, 0, 9, 134, 5, 9, 22, 195, 164, 20, 72, 0, 0, 0, 12, 137, 12, 9, 5, 14, 5,
+			22, 195, 164, 20, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 65, 81, 64, 19, 0, 0, 0, 7,
+			132, 19, 25, 195, 182, 19, 0, 0, 0, 0, 0, 0, 7, 196, 48, 18, 84, 20, 19, 0, 16, 70, 88, 149, 76, 37, 53, 9, 84, 125,
+			55, 108, 89, 47, 108, 0, 0, 0, 6, 195, 4, 66, 4, 17, 9, 2, 95, 35, 34, 37, 89, 40, 0, 0, 10, 2, 95, 34, 55, 115,
+			50, 122, 89, 0, 0, 8, 197, 5, 85, 5, 80, 16, 19, 16, 2, 95, 33, 107, 40, 12, 47, 39, 65, 36, 34, 49, 12, 37, 0, 0,
+			0, 10, 2, 95, 39, 107, 118, 47, 12, 39, 0, 0, 13, 2, 95, 38, 36, 47, 65, 36, 34, 49, 12, 37, 0, 0, 14, 2, 95, 37,
+			48, 34, 39, 89, 36, 50, 47, 12, 37, 0, 0, 6, 195, 44, 243, 133, 19, 9, 198, 48, 145, 78, 56, 81, 84, 72, 13, 2, 95, 36,
+			72, 39, 55, 55, 35, 34, 37, 50, 0, 0, 0, 11, 4, 95, 3, 1, 16, 6, 37, 89, 39, 0, 0, 15, 2, 95, 41, 55, 39, 48,
+			12, 40, 89, 40, 55, 49, 40, 0, 0, 14, 2, 95, 40, 35, 55, 49, 40, 89, 40, 55, 49, 40, 0, 0, 7, 195, 20, 180, 128, 17,
+			24, 0, 10, 2, 95, 46, 48, 37, 89, 47, 36, 0, 0, 10, 2, 95, 45, 84, 37, 12, 84, 35, 0, 0, 0, 11, 2, 95, 51, 49,
+			6, 39, 55, 65, 36, 0, 0, 11, 2, 95, 50, 49, 6, 35, 49, 89, 37, 0, 0, 10, 2, 95, 49, 6, 114, 49, 89, 37, 0, 0,
+			11, 2, 95, 48, 50, 6, 39, 55, 55, 35, 0, 0, 14, 2, 95, 55, 89, 6, 118, 47, 89, 36, 65, 109, 50, 0, 0, 11, 2, 95,
+			54, 49, 6, 40, 12, 89, 37, 0, 0, 8, 197, 60, 194, 83, 37, 64, 72, 11, 2, 95, 53, 84, 6, 37, 12, 89, 37, 0, 0, 11,
+			2, 95, 52, 50, 6, 36, 55, 57, 109, 0, 0, 0, 16, 2, 95, 58, 49, 35, 49, 89, 117, 89, 48, 37, 89, 47, 36, 0, 0, 8,
+			197, 60, 195, 5, 21, 64, 72, 14, 2, 95, 57, 6, 114, 107, 72, 36, 49, 89, 109, 50, 0, 0, 15, 2, 95, 56, 49, 6, 35, 107,
+			72, 36, 49, 89, 35, 50, 0, 0, 18, 2, 95, 63, 49, 114, 89, 114, 65, 114, 89, 65, 36, 34, 49, 12, 108, 0, 0, 18, 2, 95,
+			62, 89, 6, 40, 12, 34, 36, 65, 48, 108, 49, 6, 120, 50, 0, 0, 0, 17, 2, 95, 60, 48, 6, 131, 50, 36, 65, 48, 108, 49,
+			6, 120, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 14, 195, 164, 9, 14, 195, 164, 76, 0, 0, 8, 133, 19, 9, 14,
+			195, 164, 72, 0, 0, 0, 0, 0, 0, 0, 7, 196, 65, 84, 138, 20, 19, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 91, 35, 55,
+			49, 40, 107, 35, 49, 35, 0, 0, 0, 0, 0, 13, 2, 95, 95, 35, 55, 35, 84, 37, 12, 84, 35, 0, 0, 0, 14, 2, 95, 93,
+			55, 39, 48, 12, 40, 107, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 70, 52, 20, 137, 4, 227, 133,
+			65, 35, 51, 108, 35, 50, 50, 36, 0, 0, 14, 4, 95, 7, 18, 22, 81, 34, 6, 35, 84, 108, 89, 0, 0, 0, 0, 0, 6, 195,
+			65, 84, 133, 19, 0, 0, 0, 0, 6, 195, 21, 69, 5, 72, 0, 0, 0, 0, 0, 13, 4, 95, 4, 9, 1, 6, 40, 65, 55, 122,
+			47, 0, 14, 2, 95, 123, 35, 55, 49, 40, 35, 12, 55, 47, 39, 0, 0, 0, 0, 0, 0, 0, 15, 2, 95, 125, 55, 39, 48, 12,
+			40, 35, 12, 55, 47, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 81, 83, 206, 76, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 35, 51, 50, 84, 109, 55, 37, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 40, 242,
+			83, 80, 16, 76, 0, 16, 70, 88, 20, 129, 77, 66, 64, 84, 35, 51, 35, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 195, 49, 83, 192, 19, 6, 195, 81, 83, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 44, 84, 212, 36, 49, 36, 89,
+			47, 108, 0, 12, 68, 44, 20, 212, 36, 49, 35, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197,
+			56, 242, 83, 76, 16, 76, 8, 197, 81, 83, 204, 80, 16, 76, 0, 16, 70, 65, 84, 137, 77, 66, 64, 48, 40, 51, 108, 89, 47, 108,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 48, 145, 78, 20, 72, 19, 8, 196, 53, 85, 20, 4, 76,
+			8, 11, 136, 14, 195, 164, 9, 12, 20, 195, 164, 76, 0, 8, 197, 60, 194, 83, 36, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			135, 20, 195, 164, 13, 195, 164, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 56, 242, 76, 48, 16, 76, 0,
+			0, 0, 0, 9, 133, 5, 14, 20, 195, 164, 72, 8, 0, 6, 195, 20, 211, 69, 72, 0, 0, 0, 0, 0, 10, 135, 19, 25, 195, 182,
+			4, 195, 164, 19, 0, 0, 9, 134, 14, 195, 164, 25, 20, 5, 19, 0, 0, 0, 0, 8, 197, 40, 242, 72, 36, 224, 76, 0, 6, 195,
+			5, 85, 1, 19, 0, 0, 0, 0, 0, 18, 71, 45, 83, 135, 25, 85, 19, 20, 49, 40, 68, 83, 40, 47, 89, 36, 0, 0, 0, 0,
+			16, 66, 100, 208, 114, 50, 50, 109, 10, 65, 40, 12, 47, 35, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 164,
+			0, 1, 10, 2, 108, 108, 97, 32, 3, 2, 109, 0, 3, 109, 0, 195, 164, 3, 109, 12, 0, 105, 105, 3, 109, 37, 12, 0, 121, 121,
+			3, 109, 114, 12, 0, 105, 3, 116, 0, 121, 3, 126, 0, 7, 6, 195, 182, 0, 3, 111, 0, 195, 182, 3, 111, 12, 0, 105, 105, 3,
+			111, 37, 12, 0, 121, 121, 3, 111, 114, 12, 0, 105, 3, 119, 0, 121, 3, 128, 0, 7, 6, 97, 0, 1, 10, 2, 108, 108, 97, 32,
+			3, 2, 35, 0, 3, 35, 0, 4, 8, 114, 116, 115, 117, 97, 2, 108, 3, 35, 12, 0, 97, 0, 105, 105, 3, 35, 37, 12, 0, 117,
+			117, 3, 35, 40, 12, 0, 105, 3, 115, 0, 117, 3, 122, 0, 7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12, 0, 7, 6, 99, 0,
+			4, 3, 49, 0, 104, 1, 25, 2, 114, 0, 99, 3, 49, 12, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2, 121, 0, 105, 116, 121,
+			3, 89, 37, 47, 37, 0, 7, 6, 100, 0, 3, 72, 0, 100, 3, 72, 12, 0, 7, 6, 101, 0, 4, 1, 10, 2, 108, 108, 97, 32,
+			3, 2, 36, 0, 1, 10, 2, 108, 108, 195, 164, 32, 0, 3, 36, 0, 101, 3, 36, 12, 0, 105, 105, 3, 36, 37, 12, 0, 117, 117,
+			3, 36, 40, 12, 0, 121, 121, 3, 36, 114, 12, 0, 105, 3, 118, 0, 117, 3, 124, 0, 121, 3, 127, 0, 7, 6, 102, 0, 3, 83,
+			0, 7, 6, 103, 0, 3, 81, 0, 103, 3, 81, 12, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 1, 10, 2, 108, 108, 97,
+			32, 3, 2, 37, 0, 3, 37, 0, 105, 3, 37, 12, 0, 101, 101, 3, 37, 36, 12, 0, 117, 117, 3, 37, 40, 12, 0, 121, 121, 3,
+			37, 114, 12, 0, 117, 3, 125, 0, 121, 3, 129, 0, 101, 3, 131, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0,
+			107, 3, 49, 12, 0, 7, 6, 108, 0, 3, 55, 0, 108, 101, 1, 21, 2, 32, 3, 55, 55, 36, 22, 0, 7, 6, 109, 0, 3, 65,
+			0, 8, 164, 195, 100, 121, 115, 2, 17, 65, 3, 65, 12, 0, 7, 6, 110, 0, 3, 50, 0, 110, 101, 1, 21, 2, 32, 3, 50, 50,
+			36, 22, 0, 4, 2, 32, 112, 3, 65, 0, 2, 112, 0, 4, 2, 32, 107, 3, 68, 0, 2, 107, 0, 103, 2, 25, 0, 103, 3, 68,
+			12, 0, 7, 6, 111, 0, 4, 3, 39, 0, 1, 98, 109, 121, 115, 2, 108, 111, 105, 0, 4, 1, 98, 109, 121, 115, 2, 108, 3, 39,
+			12, 0, 111, 0, 105, 105, 3, 39, 37, 12, 0, 117, 117, 3, 39, 40, 12, 0, 105, 3, 117, 0, 117, 3, 123, 0, 7, 6, 112, 0,
+			3, 48, 0, 4, 1, 109, 97, 104, 115, 2, 111, 3, 48, 12, 0, 1, 109, 97, 107, 2, 97, 110, 106, 0, 8, 97, 116, 111, 2, 97,
+			0, 8, 101, 108, 111, 2, 97, 0, 112, 0, 7, 6, 113, 0, 3, 49, 0, 113, 3, 49, 12, 0, 7, 6, 114, 0, 3, 34, 0, 7,
+			6, 115, 0, 3, 89, 0, 116, 105, 1, 17, 65, 2, 32, 3, 89, 47, 37, 22, 0, 4, 104, 1, 21, 2, 97, 110, 32, 3, 89, 107,
+			0, 104, 1, 21, 2, 195, 164, 110, 32, 0, 115, 3, 89, 133, 0, 4, 99, 104, 1, 25, 3, 91, 0, 104, 1, 25, 0, 7, 6, 116,
+			0, 3, 47, 0, 116, 3, 47, 12, 0, 122, 3, 47, 89, 0, 115, 101, 1, 21, 2, 32, 3, 47, 89, 36, 22, 0, 7, 6, 117, 0,
+			3, 40, 0, 117, 3, 40, 12, 0, 105, 105, 3, 40, 37, 12, 0, 111, 111, 3, 40, 39, 12, 0, 105, 3, 58, 37, 0, 4, 105, 8,
+			3, 120, 0, 105, 8, 106, 0, 111, 3, 130, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 120,
+			3, 49, 12, 89, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 114, 0, 121, 3, 114, 12, 0, 105, 105, 3, 114, 37, 12, 0, 195, 182,
+			195, 182, 3, 114, 111, 12, 0, 105, 3, 121, 0, 195, 182, 3, 132, 0, 7, 6, 122, 0, 4, 3, 47, 89, 0, 122, 0, 104, 1, 25,
+			3, 90, 0, 7, 6, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 165, 3,
+			39, 0, 195, 165, 195, 165, 3, 39, 12, 0, 45, 8, 32, 2, 32, 15, 3, 65, 37, 12, 50, 40, 89, 0, 36, 3, 72, 39, 55, 55,
+			35, 34, 37, 50, 0, 197, 190, 3, 90, 0, 197, 161, 3, 91, 0, 195, 188, 3, 114, 0, 195, 188, 195, 188, 3, 114, 12, 0, 7, 0,
+			0};
+		autoFileInMemory espeakdata_dicts18 = FileInMemory_createWithData (5130, reinterpret_cast<const char *> (&espeakdata_dicts18_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/fi_dict", 
 			U"fi");
-		my addItem_move (espeakdata_dicts20.move());
+		Collection_addItem (me.peek(), espeakdata_dicts18.transfer());
 
-		static unsigned char espeakdata_dicts21_data[21423] = {
-			0, 4, 0, 0, 109, 43, 0, 0, 0, 0, 0, 8, 67, 21, 81, 64, 111, 0, 76, 0, 9, 198, 21, 84, 211, 36, 86, 128, 76, 0,
-			7, 65, 4, 35, 0, 49, 46, 5, 193, 4, 76, 36, 6, 65, 4, 35, 0, 76, 0, 9, 68, 5, 4, 12, 20, 21, 0, 47, 13, 70,
-			12, 243, 150, 20, 229, 0, 49, 116, 84, 113, 0, 6, 193, 108, 49, 43, 46, 6, 65, 108, 35, 0, 76, 0, 0, 0, 18, 70, 8, 243,
-			212, 4, 35, 5, 98, 111, 117, 116, 97, 98, 108, 101, 0, 29, 6, 65, 8, 71, 36, 0, 0, 0, 6, 195, 85, 64, 192, 13, 6, 195,
-			57, 50, 64, 13, 15, 69, 52, 36, 143, 48, 16, 112, 65, 71, 34, 39, 55, 35, 0, 14, 67, 21, 64, 192, 112, 47, 89, 36, 47, 36,
-			34, 35, 0, 0, 0, 6, 65, 12, 89, 36, 0, 0, 0, 14, 69, 12, 147, 133, 52, 16, 89, 37, 50, 36, 65, 35, 0, 6, 195, 69,
-			81, 64, 76, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 13, 69, 8, 83, 9, 104, 80, 71, 36, 55, 37, 88, 0, 10, 69, 64, 83,
-			208, 48, 80, 21, 0, 47, 0, 16, 70, 9, 84, 149, 56, 66, 64, 71, 40, 34, 40, 50, 72, 37, 0, 10, 67, 45, 84, 148, 49, 40,
-			34, 47, 0, 13, 4, 95, 100, 112, 116, 84, 37, 34, 81, 111, 55, 0, 0, 14, 65, 20, 101, 98, 97, 121, 0, 29, 81, 98, 97, 121,
-			32, 6, 65, 20, 11, 13, 0, 0, 0, 7, 195, 69, 82, 64, 32, 76, 0, 0, 7, 65, 24, 11, 112, 83, 0, 0, 0, 9, 68, 64,
-			20, 5, 72, 21, 0, 47, 0, 0, 16, 65, 28, 90, 37, 81, 35, 112, 34, 47, 89, 0, 81, 104, 122, 32, 6, 65, 28, 90, 36, 0,
-			0, 0, 9, 67, 29, 147, 64, 90, 37, 65, 0, 9, 67, 28, 147, 128, 75, 37, 50, 0, 7, 195, 80, 243, 128, 72, 34, 0, 16, 70,
-			85, 4, 5, 72, 53, 84, 111, 48, 112, 34, 49, 117, 47, 0, 10, 68, 48, 245, 73, 76, 55, 58, 37, 0, 0, 7, 65, 32, 11, 35,
-			91, 0, 0, 0, 0, 0, 6, 65, 36, 11, 37, 0, 0, 8, 66, 37, 0, 37, 48, 36, 0, 10, 1, 37, 48, 40, 34, 89, 113, 0,
-			27, 0, 6, 195, 12, 20, 128, 37, 6, 195, 12, 20, 128, 72, 7, 1, 38, 36, 0, 72, 28, 0, 0, 6, 65, 40, 90, 37, 0, 0,
-			0, 8, 67, 76, 148, 128, 21, 0, 47, 14, 1, 42, 35, 89, 47, 36, 34, 37, 89, 49, 12, 0, 27, 0, 9, 1, 43, 48, 55, 111,
-			89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 3, 129, 47, 0, 13, 4, 95, 100, 105, 97, 47, 34, 36, 65, 6, 35, 0,
-			7, 65, 48, 11, 112, 55, 0, 0, 23, 1, 49, 48, 34, 13, 65, 57, 112, 34, 65, 113, 0, 81, 195, 168, 114, 101, 109, 101, 110, 116,
-			32, 19, 1, 49, 48, 34, 13, 65, 57, 112, 34, 143, 0, 81, 195, 168, 114, 101, 115, 32, 17, 1, 49, 48, 34, 13, 65, 57, 112, 34,
-			0, 81, 195, 168, 114, 101, 32, 16, 1, 49, 48, 34, 13, 65, 57, 36, 143, 0, 81, 101, 114, 115, 32, 15, 1, 49, 48, 34, 13, 65,
-			57, 36, 120, 0, 81, 101, 114, 32, 0, 0, 10, 68, 64, 242, 78, 28, 48, 58, 114, 0, 0, 7, 65, 52, 11, 112, 65, 0, 0, 17,
-			66, 53, 0, 23, 112, 65, 48, 36, 47, 34, 58, 35, 0, 81, 51, 32, 0, 0, 0, 7, 65, 56, 11, 112, 50, 0, 0, 0, 0, 0,
-			6, 65, 60, 11, 39, 0, 0, 0, 8, 197, 64, 51, 67, 36, 16, 13, 0, 0, 11, 1, 64, 24, 35, 34, 39, 71, 35, 88, 0, 6,
-			65, 64, 48, 36, 0, 0, 9, 198, 21, 84, 211, 20, 229, 0, 76, 0, 0, 0, 18, 67, 88, 152, 212, 84, 57, 112, 47, 50, 35, 65,
-			0, 81, 110, 97, 109, 32, 6, 65, 68, 49, 111, 0, 0, 0, 0, 4, 193, 116, 43, 0, 7, 65, 72, 11, 112, 34, 0, 0, 0, 0,
-			17, 70, 72, 84, 85, 36, 83, 64, 34, 36, 49, 111, 37, 57, 112, 65, 0, 17, 4, 95, 100, 111, 116, 48, 58, 114, 89, 111, 89, 49,
-			34, 6, 37, 0, 0, 7, 65, 76, 11, 112, 89, 0, 0, 23, 6, 113, 117, 39, 101, 115, 116, 49, 112, 89, 49, 13, 0, 72, 82, 99,
-			101, 32, 113, 117, 101, 32, 8, 195, 48, 85, 82, 72, 36, 40, 7, 195, 48, 85, 82, 72, 34, 0, 7, 195, 84, 225, 64, 34, 76, 0,
-			0, 14, 65, 80, 21, 0, 47, 81, 115, 104, 105, 114, 116, 115, 32, 13, 65, 80, 21, 0, 47, 81, 115, 104, 105, 114, 116, 32, 0, 5,
-			194, 4, 48, 13, 0, 6, 195, 12, 147, 192, 13, 0, 17, 71, 32, 85, 82, 80, 147, 206, 76, 23, 117, 34, 47, 57, 116, 143, 0, 0,
-			6, 65, 84, 11, 111, 0, 0, 7, 66, 85, 0, 21, 0, 47, 0, 0, 23, 67, 33, 69, 16, 35, 91, 47, 4, 36, 47, 4, 36, 48,
-			6, 36, 10, 0, 81, 58, 47, 47, 32, 0, 6, 65, 88, 84, 36, 0, 0, 15, 70, 44, 225, 83, 76, 85, 0, 49, 50, 36, 89, 112,
-			47, 0, 12, 66, 5, 48, 35, 47, 111, 0, 81, 116, 117, 32, 9, 66, 5, 48, 35, 143, 0, 76, 36, 7, 66, 5, 48, 35, 89, 0,
-			0, 0, 0, 8, 197, 16, 84, 21, 37, 48, 76, 15, 69, 72, 148, 195, 61, 48, 34, 37, 89, 49, 39, 112, 89, 0, 12, 65, 92, 72,
-			40, 71, 55, 13, 84, 6, 36, 0, 0, 0, 0, 10, 67, 24, 21, 84, 83, 39, 140, 0, 76, 0, 9, 68, 36, 228, 21, 80, 21, 0,
-			47, 10, 4, 95, 49, 77, 49, 65, 37, 55, 0, 8, 65, 96, 11, 37, 49, 89, 0, 0, 0, 11, 70, 56, 147, 148, 20, 225, 15, 21,
-			0, 47, 0, 0, 13, 65, 100, 23, 37, 81, 34, 6, 112, 49, 0, 49, 46, 5, 193, 100, 76, 32, 0, 0, 8, 67, 100, 84, 192, 21,
-			0, 47, 9, 67, 76, 20, 192, 89, 35, 89, 0, 10, 67, 48, 244, 192, 55, 39, 89, 0, 76, 0, 0, 7, 65, 104, 88, 112, 72, 0,
-			0, 7, 66, 5, 64, 21, 0, 47, 8, 196, 88, 245, 18, 20, 72, 34, 8, 196, 56, 245, 18, 20, 72, 34, 0, 0, 0, 13, 5, 100,
-			39, 101, 115, 116, 72, 6, 112, 89, 47, 0, 0, 8, 67, 61, 1, 78, 21, 0, 47, 0, 0, 0, 0, 16, 70, 100, 241, 207, 85, 37,
-			0, 23, 37, 39, 81, 40, 34, 47, 0, 10, 66, 12, 16, 89, 35, 0, 76, 41, 32, 0, 0, 0, 0, 0, 14, 69, 84, 37, 78, 81,
-			80, 40, 71, 40, 50, 47, 40, 0, 0, 8, 67, 69, 82, 84, 21, 0, 47, 0, 0, 6, 194, 5, 80, 72, 34, 0, 11, 67, 52, 84,
-			192, 65, 123, 143, 0, 72, 34, 0, 12, 68, 52, 19, 21, 76, 65, 35, 55, 111, 89, 0, 19, 71, 25, 32, 78, 12, 84, 195, 60, 83,
-			34, 113, 50, 91, 112, 89, 49, 39, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 7, 195, 5, 86, 0, 72, 34, 12,
-			4, 95, 116, 108, 100, 47, 6, 37, 55, 72, 0, 0, 0, 11, 68, 77, 84, 200, 36, 89, 40, 91, 37, 0, 15, 66, 8, 64, 98, 111,
-			117, 108, 101, 118, 97, 114, 100, 0, 29, 0, 0, 0, 0, 11, 68, 48, 83, 206, 20, 55, 36, 127, 50, 0, 13, 69, 52, 147, 15, 84,
-			64, 65, 37, 55, 40, 72, 0, 0, 0, 0, 0, 7, 196, 20, 229, 18, 20, 36, 7, 196, 20, 229, 18, 20, 76, 0, 0, 12, 67, 5,
-			98, 0, 35, 84, 4, 36, 35, 91, 0, 0, 0, 0, 7, 195, 77, 82, 83, 76, 36, 0, 10, 4, 95, 49, 67, 48, 89, 113, 140, 0,
-			0, 0, 7, 66, 8, 80, 21, 0, 47, 0, 16, 7, 107, 111, 119, 101, 195, 175, 116, 49, 39, 58, 112, 57, 47, 0, 6, 195, 57, 66,
-			64, 13, 0, 0, 16, 70, 9, 35, 215, 28, 194, 69, 98, 114, 101, 117, 105, 108, 0, 29, 0, 0, 0, 0, 16, 70, 65, 33, 77, 36,
-			84, 128, 48, 34, 13, 65, 57, 36, 120, 0, 6, 195, 69, 83, 201, 76, 0, 15, 70, 64, 130, 76, 37, 4, 192, 83, 37, 55, 37, 48,
-			89, 0, 0, 0, 0, 0, 13, 70, 16, 84, 211, 61, 84, 192, 72, 13, 89, 40, 0, 0, 9, 67, 9, 85, 0, 71, 111, 47, 0, 9,
-			67, 9, 85, 0, 71, 111, 0, 36, 0, 10, 67, 25, 81, 76, 83, 57, 40, 55, 0, 0, 0, 0, 12, 71, 52, 84, 211, 20, 225, 197,
-			72, 21, 0, 47, 17, 71, 77, 2, 9, 56, 53, 5, 72, 89, 83, 114, 49, 47, 112, 34, 0, 0, 10, 67, 25, 33, 68, 83, 34, 112,
-			72, 0, 0, 4, 193, 128, 43, 0, 0, 0, 0, 0, 13, 66, 17, 32, 72, 39, 49, 47, 132, 34, 0, 24, 41, 0, 9, 67, 21, 84,
-			192, 111, 143, 0, 76, 0, 6, 195, 88, 21, 88, 76, 17, 70, 65, 33, 83, 69, 81, 64, 48, 34, 112, 89, 49, 8, 13, 0, 76, 17,
-			70, 65, 82, 83, 69, 81, 64, 48, 111, 37, 89, 49, 8, 13, 0, 76, 0, 8, 67, 52, 17, 5, 21, 0, 47, 8, 67, 25, 33, 69,
-			21, 0, 47, 0, 19, 71, 29, 80, 84, 20, 208, 76, 4, 81, 58, 35, 47, 36, 65, 35, 55, 35, 0, 12, 68, 12, 147, 132, 100, 89,
-			37, 50, 72, 37, 0, 0, 0, 0, 0, 12, 66, 4, 144, 112, 90, 0, 76, 81, 106, 101, 32, 6, 194, 4, 144, 76, 36, 6, 194, 12,
-			80, 76, 34, 0, 7, 196, 5, 52, 197, 104, 76, 0, 0, 0, 13, 4, 95, 109, 99, 110, 65, 35, 49, 34, 6, 116, 0, 0, 7, 195,
-			4, 149, 0, 76, 36, 7, 195, 12, 85, 0, 72, 34, 0, 9, 67, 4, 150, 0, 112, 49, 89, 0, 16, 67, 80, 19, 148, 47, 113, 48,
-			37, 0, 76, 81, 112, 105, 115, 32, 19, 67, 80, 19, 148, 47, 113, 65, 57, 132, 0, 76, 81, 109, 105, 101, 117, 120, 32, 10, 67, 80,
-			19, 148, 47, 113, 140, 0, 76, 0, 16, 70, 76, 48, 78, 56, 84, 128, 89, 49, 35, 50, 117, 34, 0, 37, 16, 70, 76, 48, 78, 56,
-			84, 128, 89, 49, 35, 50, 36, 120, 0, 36, 15, 70, 16, 244, 16, 48, 84, 128, 72, 127, 48, 55, 112, 34, 0, 7, 196, 64, 242, 78,
-			80, 37, 7, 196, 64, 242, 78, 80, 76, 0, 0, 0, 13, 69, 12, 19, 131, 21, 32, 49, 113, 89, 112, 34, 0, 19, 72, 5, 35, 65,
-			28, 81, 4, 60, 224, 35, 34, 65, 35, 81, 36, 72, 116, 0, 18, 67, 12, 85, 88, 89, 132, 15, 55, 35, 0, 32, 76, 81, 108, 195,
-			160, 32, 17, 67, 12, 85, 88, 89, 132, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32, 6, 195, 12, 85, 88, 76, 0, 0, 18, 70, 76,
-			51, 210, 9, 85, 0, 115, 99, 111, 114, 98, 117, 116, 116, 0, 29, 0, 9, 67, 13, 85, 0, 49, 117, 47, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 70, 76, 48, 78, 56, 84, 147, 89, 49, 35, 50, 117, 34, 0, 0, 9, 198, 69, 83, 201, 69, 81,
-			64, 72, 0, 0, 4, 193, 132, 43, 0, 10, 67, 76, 83, 147, 89, 113, 143, 0, 36, 9, 67, 76, 83, 147, 89, 113, 89, 0, 0, 0,
-			0, 6, 194, 16, 80, 72, 34, 0, 0, 0, 0, 12, 69, 9, 81, 7, 21, 64, 71, 111, 75, 112, 0, 0, 9, 67, 8, 149, 0, 71,
-			37, 47, 0, 6, 195, 52, 242, 64, 76, 6, 195, 12, 50, 64, 13, 0, 0, 0, 15, 69, 5, 162, 77, 85, 64, 35, 88, 37, 65, 6,
-			111, 47, 0, 8, 66, 21, 48, 112, 143, 0, 76, 9, 66, 17, 80, 72, 130, 0, 72, 34, 0, 0, 0, 0, 0, 9, 67, 21, 53, 0,
-			112, 140, 0, 76, 0, 14, 70, 12, 130, 69, 56, 194, 84, 91, 57, 113, 55, 37, 0, 0, 0, 7, 196, 64, 20, 141, 36, 76, 7, 196,
-			88, 242, 76, 108, 76, 0, 7, 195, 5, 97, 67, 76, 28, 0, 15, 3, 95, 35, 57, 47, 35, 71, 111, 55, 35, 89, 37, 116, 0, 0,
-			0, 0, 8, 197, 20, 224, 207, 72, 80, 76, 12, 67, 52, 228, 192, 65, 37, 50, 111, 47, 143, 0, 10, 67, 4, 197, 0, 24, 35, 55,
-			47, 0, 0, 11, 67, 69, 82, 68, 49, 58, 37, 72, 0, 76, 0, 0, 20, 68, 12, 83, 12, 20, 89, 112, 55, 15, 55, 35, 0, 32,
-			76, 81, 108, 195, 160, 32, 19, 68, 12, 83, 12, 20, 89, 112, 55, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32, 7, 196, 12, 83, 12,
-			20, 76, 7, 66, 21, 64, 36, 0, 76, 0, 0, 24, 11, 97, 117, 106, 111, 117, 114, 100, 39, 104, 117, 105, 97, 117, 106, 111, 117, 114,
-			100, 117, 105, 0, 29, 0, 0, 0, 14, 69, 52, 19, 1, 92, 144, 65, 35, 55, 35, 58, 37, 0, 6, 195, 76, 19, 147, 76, 4, 193,
-			136, 43, 0, 0, 0, 0, 9, 67, 61, 84, 147, 40, 34, 89, 0, 12, 67, 4, 209, 0, 35, 4, 112, 65, 72, 36, 0, 0, 23, 73,
-			81, 85, 20, 37, 21, 65, 57, 66, 64, 47, 40, 47, 37, 49, 58, 6, 35, 50, 47, 37, 0, 11, 67, 81, 35, 208, 47, 34, 39, 139,
-			0, 76, 0, 0, 13, 69, 60, 97, 147, 21, 64, 127, 83, 89, 112, 47, 0, 15, 70, 4, 225, 18, 60, 145, 0, 113, 72, 34, 39, 37,
-			72, 0, 0, 0, 7, 195, 76, 243, 148, 76, 36, 0, 0, 7, 66, 21, 80, 111, 0, 76, 0, 0, 22, 69, 4, 68, 204, 81, 96, 35,
-			72, 36, 112, 89, 6, 112, 55, 15, 47, 36, 84, 6, 36, 0, 0, 0, 0, 10, 67, 21, 85, 0, 111, 140, 0, 76, 36, 0, 9, 67,
-			21, 86, 0, 132, 143, 0, 76, 0, 12, 68, 90, 35, 149, 76, 84, 36, 50, 111, 89, 0, 0, 8, 67, 4, 225, 0, 21, 0, 47, 0,
-			6, 194, 128, 16, 76, 32, 0, 0, 10, 134, 102, 195, 187, 109, 101, 115, 76, 36, 0, 0, 16, 70, 10, 35, 1, 73, 84, 192, 71, 36,
-			55, 35, 34, 111, 89, 0, 6, 195, 64, 245, 82, 76, 0, 0, 0, 8, 197, 12, 243, 148, 72, 80, 76, 0, 10, 199, 64, 197, 83, 36,
-			85, 82, 76, 76, 0, 0, 0, 9, 67, 21, 81, 83, 111, 143, 0, 76, 0, 0, 16, 70, 48, 17, 84, 37, 66, 65, 55, 36, 47, 37,
-			89, 57, 35, 0, 6, 195, 5, 97, 192, 13, 0, 4, 193, 140, 43, 0, 0, 0, 11, 67, 4, 243, 0, 35, 4, 39, 112, 55, 0, 0,
-			0, 0, 14, 68, 80, 86, 1, 76, 47, 112, 49, 89, 6, 35, 89, 0, 0, 0, 0, 0, 0, 8, 67, 32, 19, 128, 23, 113, 0, 11,
-			68, 20, 225, 133, 72, 113, 83, 112, 34, 0, 0, 0, 11, 67, 25, 85, 0, 83, 111, 140, 0, 76, 36, 0, 0, 7, 195, 52, 243, 128,
-			72, 34, 0, 0, 0, 6, 194, 20, 128, 76, 28, 7, 66, 16, 160, 21, 0, 47, 0, 6, 195, 64, 20, 128, 76, 12, 67, 60, 52, 128,
-			39, 89, 4, 36, 112, 34, 0, 0, 0, 0, 0, 0, 0, 18, 3, 226, 132, 162, 65, 35, 34, 49, 72, 13, 83, 35, 71, 34, 37, 49,
-			0, 0, 0, 18, 71, 24, 83, 4, 77, 0, 84, 32, 83, 112, 55, 72, 89, 48, 35, 47, 0, 0, 19, 71, 88, 83, 133, 105, 81, 76,
-			4, 84, 36, 50, 36, 88, 111, 112, 55, 35, 0, 16, 70, 100, 241, 200, 61, 84, 148, 23, 37, 39, 81, 40, 34, 47, 0, 0, 6, 195,
-			76, 245, 83, 76, 0, 0, 4, 193, 144, 43, 4, 193, 144, 43, 0, 0, 0, 14, 70, 80, 130, 69, 73, 38, 64, 47, 57, 112, 34, 37,
-			0, 17, 66, 12, 208, 99, 101, 110, 116, 105, 109, 195, 168, 116, 114, 101, 0, 29, 0, 0, 14, 69, 12, 19, 153, 60, 224, 49, 35, 50,
-			57, 127, 50, 0, 0, 8, 67, 28, 85, 0, 21, 0, 47, 0, 0, 0, 21, 67, 80, 245, 84, 47, 40, 55, 47, 113, 0, 82, 108, 101,
-			32, 116, 101, 109, 112, 115, 32, 22, 67, 80, 245, 84, 47, 40, 55, 65, 116, 72, 0, 82, 108, 101, 32, 109, 111, 110, 100, 101, 32, 11,
-			67, 80, 245, 84, 47, 6, 40, 140, 0, 76, 0, 16, 70, 16, 84, 142, 36, 84, 128, 72, 112, 34, 50, 57, 36, 120, 0, 0, 0, 0,
-			14, 70, 64, 128, 76, 49, 84, 192, 83, 35, 55, 111, 89, 0, 0, 0, 0, 0, 0, 15, 70, 52, 21, 20, 32, 144, 83, 65, 35, 47,
-			57, 35, 89, 0, 0, 0, 0, 11, 70, 61, 85, 12, 60, 242, 192, 21, 0, 47, 0, 12, 71, 8, 197, 69, 80, 243, 212, 32, 21, 0,
-			47, 0, 0, 0, 0, 0, 0, 15, 67, 24, 147, 5, 21, 0, 47, 81, 122, 105, 108, 108, 97, 32, 11, 3, 226, 130, 172, 13, 34, 6,
-			39, 0, 76, 0, 0, 17, 70, 4, 197, 5, 72, 81, 207, 35, 55, 47, 112, 34, 36, 81, 39, 0, 7, 195, 88, 245, 83, 76, 32, 7,
-			195, 56, 245, 83, 76, 32, 0, 0, 7, 195, 12, 83, 1, 76, 32, 7, 195, 20, 195, 5, 76, 32, 19, 67, 52, 195, 5, 109, 97, 100,
-			101, 109, 111, 105, 115, 101, 108, 108, 101, 0, 29, 6, 195, 44, 65, 64, 13, 0, 12, 4, 102, 195, 187, 116, 83, 111, 140, 0, 76, 36,
-			0, 6, 195, 64, 197, 83, 76, 0, 7, 66, 32, 80, 21, 0, 47, 0, 0, 11, 67, 25, 33, 84, 83, 34, 6, 112, 47, 0, 0, 11,
-			68, 76, 51, 213, 80, 89, 49, 40, 47, 0, 14, 4, 95, 111, 103, 111, 39, 81, 39, 50, 6, 112, 49, 0, 0, 0, 0, 6, 195, 88,
-			21, 84, 76, 0, 0, 6, 195, 65, 35, 198, 24, 0, 0, 0, 0, 0, 0, 7, 196, 4, 147, 147, 36, 76, 0, 0, 5, 194, 20, 192,
-			76, 12, 3, 95, 50, 49, 84, 114, 47, 36, 12, 115, 0, 0, 9, 67, 64, 20, 192, 48, 35, 0, 37, 11, 67, 64, 20, 192, 48, 6,
-			35, 143, 0, 76, 9, 3, 95, 50, 48, 84, 114, 140, 0, 0, 14, 3, 95, 50, 51, 84, 114, 47, 47, 34, 58, 35, 143, 0, 0, 12,
-			3, 95, 50, 50, 84, 114, 47, 72, 132, 143, 0, 0, 12, 3, 95, 50, 53, 84, 114, 47, 89, 114, 49, 0, 0, 8, 67, 32, 148, 192,
-			21, 0, 47, 13, 3, 95, 50, 52, 84, 114, 47, 49, 35, 47, 34, 0, 0, 17, 67, 56, 244, 132, 50, 39, 34, 112, 89, 47, 0, 81,
-			101, 115, 116, 32, 12, 3, 95, 50, 55, 84, 114, 47, 89, 112, 47, 0, 0, 12, 3, 95, 50, 54, 84, 114, 47, 89, 37, 144, 0, 0,
-			16, 70, 137, 98, 84, 36, 243, 147, 36, 84, 37, 47, 57, 116, 143, 0, 7, 66, 37, 64, 21, 0, 47, 13, 3, 95, 51, 49, 47, 34,
-			113, 47, 36, 12, 115, 0, 12, 4, 95, 98, 114, 118, 71, 34, 6, 112, 84, 0, 0, 0, 4, 193, 152, 43, 0, 6, 195, 80, 245, 83,
-			76, 0, 20, 4, 95, 97, 99, 50, 72, 40, 71, 55, 35, 49, 89, 113, 47, 112, 81, 6, 111, 0, 0, 0, 15, 69, 4, 208, 90, 60,
-			224, 35, 65, 35, 88, 6, 127, 50, 0, 0, 0, 7, 66, 16, 240, 21, 0, 47, 0, 12, 67, 20, 211, 0, 13, 4, 112, 65, 112, 55,
-			0, 0, 0, 9, 67, 16, 245, 0, 72, 127, 47, 0, 11, 68, 69, 80, 78, 80, 49, 113, 140, 0, 72, 0, 0, 9, 197, 76, 243, 77,
-			21, 48, 76, 36, 0, 0, 0, 0, 8, 197, 40, 19, 65, 37, 48, 76, 0, 0, 0, 0, 0, 0, 16, 70, 32, 243, 132, 85, 32, 83,
-			23, 116, 72, 111, 34, 35, 89, 0, 8, 67, 20, 225, 0, 21, 0, 47, 0, 17, 66, 20, 224, 113, 15, 47, 40, 143, 0, 76, 81, 116,
-			111, 117, 115, 32, 7, 194, 20, 224, 76, 36, 40, 5, 194, 20, 224, 76, 10, 199, 80, 245, 84, 20, 99, 201, 76, 76, 5, 194, 20, 224,
-			72, 15, 3, 95, 54, 49, 89, 58, 35, 89, 113, 47, 36, 12, 115, 0, 0, 10, 134, 101, 195, 187, 116, 101, 115, 76, 36, 10, 3, 95,
-			51, 88, 47, 34, 113, 47, 0, 0, 15, 69, 44, 192, 88, 60, 224, 49, 55, 35, 49, 89, 127, 50, 0, 16, 70, 21, 66, 5, 72, 225,
-			84, 36, 47, 112, 34, 50, 112, 47, 0, 8, 3, 95, 48, 67, 89, 113, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 55, 49, 89, 112,
-			48, 47, 113, 47, 36, 12, 115, 0, 102, 16, 3, 95, 55, 49, 89, 58, 35, 89, 113, 47, 36, 12, 116, 88, 0, 0, 0, 0, 0, 0,
-			8, 67, 32, 84, 133, 21, 0, 47, 10, 67, 77, 65, 64, 89, 6, 114, 47, 0, 0, 0, 0, 19, 66, 48, 16, 55, 121, 15, 55, 132,
-			34, 0, 76, 32, 81, 108, 101, 117, 114, 32, 6, 194, 40, 80, 72, 32, 10, 66, 48, 16, 55, 121, 0, 36, 40, 72, 9, 66, 48, 16,
-			55, 121, 0, 34, 76, 12, 3, 95, 49, 57, 72, 37, 88, 50, 117, 83, 0, 0, 11, 67, 5, 2, 64, 35, 48, 4, 36, 37, 0, 12,
-			3, 95, 49, 56, 72, 37, 88, 111, 37, 141, 0, 0, 15, 67, 80, 86, 20, 21, 0, 47, 81, 97, 108, 111, 117, 100, 32, 11, 67, 21,
-			130, 84, 36, 81, 88, 37, 47, 0, 0, 7, 196, 5, 96, 78, 80, 76, 0, 8, 196, 20, 195, 5, 76, 76, 32, 0, 0, 0, 15, 70,
-			77, 67, 195, 44, 84, 128, 89, 47, 39, 49, 36, 120, 0, 0, 12, 3, 95, 50, 57, 84, 114, 47, 50, 117, 83, 0, 9, 3, 95, 49,
-			49, 23, 116, 88, 0, 0, 12, 68, 56, 145, 197, 72, 50, 37, 90, 112, 34, 0, 12, 3, 95, 50, 56, 84, 114, 47, 111, 37, 141, 0,
-			9, 3, 95, 49, 48, 72, 37, 144, 0, 0, 12, 70, 40, 16, 209, 84, 84, 192, 90, 35, 49, 0, 10, 3, 95, 49, 51, 47, 34, 112,
-			88, 0, 0, 9, 3, 95, 49, 50, 72, 40, 88, 0, 0, 9, 3, 95, 49, 53, 49, 114, 88, 0, 0, 12, 3, 95, 49, 52, 49, 35,
-			47, 127, 34, 88, 0, 0, 11, 3, 95, 49, 55, 72, 37, 89, 112, 47, 0, 0, 9, 3, 95, 49, 54, 89, 112, 88, 0, 0, 0, 7,
-			195, 25, 84, 192, 76, 36, 13, 3, 95, 55, 88, 89, 112, 48, 47, 113, 47, 0, 102, 0, 12, 68, 52, 81, 9, 4, 65, 36, 72, 57,
-			35, 0, 0, 0, 0, 9, 67, 9, 84, 192, 71, 111, 0, 36, 9, 67, 9, 84, 192, 71, 111, 89, 0, 0, 13, 69, 137, 66, 79, 57,
-			48, 36, 47, 57, 116, 143, 0, 0, 0, 10, 66, 33, 160, 23, 112, 34, 47, 89, 0, 0, 18, 9, 113, 117, 101, 108, 113, 117, 39, 117,
-			110, 49, 112, 55, 49, 115, 0, 76, 0, 0, 16, 70, 64, 20, 148, 36, 243, 147, 48, 35, 34, 47, 57, 116, 143, 0, 8, 67, 28, 83,
-			147, 90, 113, 0, 0, 0, 16, 4, 95, 97, 99, 117, 35, 49, 89, 113, 47, 112, 81, 6, 111, 0, 0, 0, 0, 9, 66, 52, 16, 65,
-			121, 0, 72, 34, 14, 3, 95, 52, 49, 49, 35, 34, 113, 47, 36, 12, 115, 0, 0, 14, 67, 52, 134, 128, 65, 36, 81, 35, 112, 34,
-			47, 89, 0, 0, 4, 193, 160, 43, 0, 11, 68, 76, 131, 210, 80, 91, 127, 34, 47, 0, 9, 67, 52, 21, 0, 65, 35, 47, 0, 0,
-			11, 67, 65, 40, 83, 48, 34, 112, 143, 0, 76, 0, 0, 10, 67, 16, 243, 148, 72, 116, 140, 0, 72, 0, 19, 68, 76, 18, 78, 80,
-			89, 114, 49, 55, 40, 0, 81, 99, 108, 111, 117, 100, 32, 0, 12, 68, 4, 64, 77, 76, 35, 72, 35, 65, 89, 0, 14, 3, 95, 53,
-			49, 89, 114, 49, 113, 47, 36, 12, 115, 0, 0, 0, 0, 0, 0, 0, 0, 21, 2, 50, 49, 84, 114, 47, 36, 12, 111, 50, 37, 112,
-			65, 0, 81, 195, 168, 109, 101, 32, 0, 0, 0, 12, 68, 44, 83, 153, 4, 49, 36, 50, 57, 35, 0, 0, 18, 5, 115, 46, 116, 46,
-			112, 89, 37, 55, 47, 13, 12, 48, 55, 6, 112, 0, 0, 14, 70, 52, 22, 79, 81, 65, 64, 65, 35, 57, 127, 47, 0, 0, 6, 195,
-			92, 208, 64, 13, 0, 22, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 116, 134, 0, 76, 81, 113, 117, 39, 111, 110, 32, 26, 68, 64,
-			20, 131, 20, 48, 35, 34, 89, 49, 112, 55, 143, 0, 76, 81, 113, 117, 39, 101, 108, 108, 101, 115, 32, 24, 68, 64, 20, 131, 20, 48,
-			35, 34, 89, 49, 112, 55, 0, 76, 81, 113, 117, 39, 101, 108, 108, 101, 32, 24, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 37, 55,
-			143, 0, 76, 81, 113, 117, 39, 105, 108, 115, 32, 22, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 37, 55, 0, 76, 81, 113, 117, 39,
-			105, 108, 32, 19, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 13, 0, 76, 81, 113, 117, 101, 32, 18, 3, 112, 46, 115, 48, 127, 89,
-			47, 89, 49, 34, 37, 48, 47, 127, 65, 0, 13, 3, 95, 63, 63, 89, 114, 71, 6, 39, 55, 55, 0, 0, 22, 2, 51, 49, 47, 34,
-			113, 47, 36, 12, 111, 50, 37, 112, 65, 0, 81, 195, 168, 109, 101, 32, 0, 16, 70, 69, 81, 76, 69, 81, 64, 49, 112, 55, 49, 8,
-			13, 0, 76, 10, 66, 53, 32, 65, 13, 89, 37, 132, 0, 0, 8, 67, 48, 149, 5, 21, 0, 47, 11, 3, 95, 52, 88, 49, 35, 34,
-			113, 47, 0, 0, 0, 0, 12, 69, 8, 22, 69, 85, 128, 71, 35, 57, 132, 0, 0, 10, 67, 8, 85, 1, 71, 36, 47, 35, 0, 7,
-			195, 4, 145, 64, 76, 36, 0, 0, 23, 2, 52, 49, 49, 35, 34, 113, 47, 36, 12, 111, 50, 37, 112, 65, 0, 81, 195, 168, 109, 101,
-			32, 0, 19, 66, 48, 80, 55, 14, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 32, 7, 194, 48, 80, 36, 40, 72, 6, 194,
-			48, 80, 34, 76, 16, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 109, 101, 0, 29, 0, 6, 195, 64, 50, 64, 13, 14, 3, 95,
-			56, 48, 49, 35, 47, 34, 13, 84, 114, 143, 0, 11, 3, 95, 53, 88, 89, 114, 49, 113, 47, 0, 0, 0, 9, 67, 56, 21, 0, 50,
-			35, 47, 0, 8, 67, 48, 85, 0, 21, 0, 47, 15, 4, 95, 114, 110, 103, 34, 116, 140, 113, 91, 6, 112, 83, 0, 0, 16, 70, 88,
-			19, 149, 5, 69, 64, 84, 35, 50, 40, 35, 47, 40, 0, 13, 69, 52, 22, 143, 85, 64, 65, 35, 88, 40, 47, 0, 9, 68, 64, 245,
-			76, 76, 48, 40, 0, 0, 8, 67, 25, 35, 205, 21, 0, 47, 8, 67, 52, 18, 64, 65, 112, 0, 0, 8, 67, 32, 83, 16, 21, 0,
-			47, 15, 70, 40, 16, 203, 64, 245, 0, 75, 35, 49, 48, 127, 47, 0, 0, 23, 2, 53, 49, 89, 114, 49, 113, 47, 36, 12, 111, 50,
-			37, 112, 65, 0, 81, 195, 168, 109, 101, 32, 0, 14, 69, 76, 245, 137, 21, 64, 89, 39, 84, 37, 112, 47, 0, 12, 68, 4, 195, 210,
-			76, 35, 55, 127, 34, 0, 76, 23, 68, 80, 83, 80, 76, 47, 113, 88, 113, 47, 113, 0, 82, 101, 110, 32, 116, 101, 109, 112, 115, 32,
-			14, 66, 45, 112, 107, 105, 108, 111, 119, 97, 116, 116, 0, 29, 15, 3, 95, 57, 49, 50, 39, 50, 113, 47, 36, 12, 115, 0, 102, 0,
-			16, 67, 60, 83, 64, 11, 4, 39, 11, 4, 13, 11, 6, 112, 65, 0, 12, 3, 95, 54, 88, 89, 58, 35, 89, 113, 47, 0, 0, 10,
-			69, 52, 20, 16, 21, 32, 21, 0, 47, 0, 0, 0, 0, 0, 24, 2, 54, 49, 89, 58, 35, 89, 113, 47, 36, 12, 111, 50, 37, 112,
-			65, 0, 81, 195, 168, 109, 101, 32, 0, 6, 194, 36, 192, 76, 32, 0, 0, 0, 11, 69, 16, 83, 135, 84, 80, 72, 114, 81, 0, 0,
-			0, 0, 7, 196, 80, 83, 12, 20, 76, 0, 15, 70, 136, 195, 209, 84, 83, 148, 36, 55, 39, 49, 113, 140, 0, 10, 69, 16, 83, 5,
-			80, 80, 21, 0, 47, 0, 0, 14, 3, 95, 56, 88, 49, 35, 47, 34, 13, 84, 114, 12, 0, 0, 0, 10, 67, 16, 19, 147, 72, 113,
-			143, 0, 76, 0, 0, 0, 6, 195, 69, 81, 76, 76, 0, 24, 2, 56, 49, 49, 35, 47, 34, 13, 84, 114, 12, 111, 50, 37, 112, 65,
-			0, 81, 195, 168, 109, 101, 32, 0, 6, 194, 52, 80, 72, 32, 0, 11, 70, 76, 19, 69, 80, 147, 69, 21, 0, 47, 12, 3, 95, 57,
-			88, 50, 39, 50, 113, 47, 0, 102, 0, 0, 8, 67, 32, 245, 0, 21, 0, 47, 0, 15, 69, 21, 131, 195, 21, 64, 112, 81, 88, 39,
-			89, 112, 47, 0, 0, 0, 10, 67, 44, 20, 148, 49, 35, 34, 47, 0, 0, 0, 11, 3, 95, 63, 65, 55, 6, 112, 47, 34, 0, 0,
-			9, 198, 64, 245, 82, 69, 83, 201, 76, 0, 10, 69, 8, 85, 20, 21, 32, 21, 0, 47, 14, 69, 64, 243, 4, 21, 32, 48, 127, 55,
-			72, 112, 34, 0, 0, 0, 0, 0, 0, 11, 4, 95, 115, 116, 107, 71, 6, 35, 34, 0, 0, 16, 70, 40, 83, 142, 36, 97, 82, 90,
-			36, 50, 37, 83, 112, 34, 0, 16, 70, 28, 19, 135, 77, 65, 82, 81, 113, 81, 89, 47, 112, 34, 0, 0, 7, 66, 36, 224, 21, 0,
-			47, 0, 22, 67, 92, 80, 128, 119, 101, 98, 118, 105, 115, 117, 109, 0, 29, 81, 118, 105, 115, 117, 109, 32, 0, 0, 0, 0, 10, 69,
-			28, 243, 199, 48, 80, 21, 0, 47, 0, 0, 18, 71, 77, 69, 84, 80, 112, 82, 80, 91, 47, 40, 47, 81, 35, 34, 47, 0, 0, 0,
-			15, 70, 80, 83, 148, 36, 243, 147, 47, 113, 47, 57, 116, 143, 0, 9, 67, 52, 83, 147, 65, 113, 143, 0, 10, 67, 52, 20, 147, 65,
-			35, 34, 89, 0, 0, 12, 67, 16, 149, 152, 72, 37, 84, 37, 49, 89, 0, 0, 0, 19, 72, 8, 19, 135, 48, 17, 5, 76, 128, 71,
-			113, 81, 55, 35, 72, 112, 91, 0, 21, 72, 18, 36, 197, 73, 66, 79, 57, 48, 72, 36, 88, 112, 34, 47, 57, 116, 143, 0, 36, 0,
-			0, 0, 0, 6, 194, 56, 80, 72, 32, 0, 10, 67, 61, 82, 64, 23, 58, 37, 0, 76, 0, 9, 196, 48, 85, 82, 76, 72, 36, 40,
-			8, 196, 48, 85, 82, 76, 76, 34, 19, 67, 16, 84, 20, 100, 195, 169, 112, 97, 114, 116, 101, 109, 101, 110, 116, 0, 29, 0, 0, 0,
-			15, 68, 13, 144, 133, 72, 21, 0, 47, 81, 108, 105, 110, 107, 32, 9, 67, 56, 85, 0, 50, 112, 47, 0, 7, 196, 29, 88, 82, 20,
-			76, 0, 9, 67, 32, 20, 148, 35, 34, 47, 0, 0, 0, 22, 4, 95, 99, 105, 114, 35, 49, 89, 113, 89, 37, 34, 49, 116, 83, 55,
-			6, 112, 49, 89, 0, 4, 193, 172, 43, 0, 0, 0, 10, 69, 52, 18, 76, 80, 240, 21, 0, 47, 0, 12, 4, 95, 48, 77, 50, 65,
-			37, 55, 57, 116, 0, 0, 9, 67, 56, 243, 128, 50, 116, 0, 76, 13, 4, 95, 48, 77, 51, 65, 37, 55, 57, 35, 34, 0, 0, 0,
-			10, 4, 95, 48, 77, 49, 65, 37, 55, 0, 0, 0, 0, 0, 0, 12, 68, 76, 19, 79, 4, 89, 35, 65, 39, 35, 0, 11, 68, 28,
-			227, 205, 20, 81, 50, 127, 65, 0, 0, 6, 195, 24, 244, 128, 76, 11, 67, 85, 4, 192, 111, 48, 36, 112, 89, 0, 0, 0, 0, 17,
-			66, 65, 32, 112, 114, 111, 102, 101, 115, 115, 101, 117, 114, 0, 41, 29, 0, 15, 4, 95, 108, 105, 103, 55, 37, 81, 35, 47, 6, 111,
-			34, 0, 0, 0, 10, 5, 97, 111, 195, 187, 116, 40, 47, 0, 15, 70, 52, 84, 135, 84, 86, 128, 65, 112, 34, 81, 112, 88, 0, 0,
-			23, 73, 21, 132, 12, 60, 149, 9, 60, 228, 192, 112, 49, 89, 48, 55, 58, 35, 47, 57, 116, 143, 0, 21, 73, 12, 243, 147, 80, 21,
-			9, 60, 228, 192, 49, 116, 89, 47, 35, 47, 57, 116, 143, 0, 0, 0, 0, 0, 25, 66, 44, 208, 49, 35, 4, 112, 65, 48, 55, 112,
-			57, 6, 117, 34, 0, 81, 112, 108, 97, 121, 101, 114, 32, 16, 66, 44, 208, 107, 105, 108, 111, 109, 195, 168, 116, 114, 101, 0, 29, 0,
-			0, 0, 13, 69, 92, 19, 12, 37, 48, 58, 35, 55, 37, 89, 0, 14, 69, 64, 19, 1, 61, 48, 48, 35, 55, 35, 127, 89, 0, 12,
-			68, 77, 67, 213, 80, 89, 47, 35, 40, 47, 0, 14, 69, 32, 84, 141, 21, 48, 23, 112, 34, 65, 112, 89, 0, 0, 0, 0, 9, 68,
-			8, 197, 69, 76, 21, 0, 47, 0, 8, 197, 80, 83, 12, 21, 48, 76, 21, 69, 12, 83, 12, 21, 48, 89, 112, 55, 15, 55, 35, 0,
-			32, 76, 81, 108, 195, 160, 32, 20, 69, 12, 83, 12, 21, 48, 89, 112, 55, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32, 8, 197, 12,
-			83, 12, 21, 48, 76, 0, 8, 66, 61, 80, 40, 0, 72, 28, 13, 66, 69, 16, 113, 117, 101, 108, 113, 117, 101, 0, 29, 0, 0, 0,
-			0, 0, 9, 67, 61, 85, 0, 35, 40, 47, 0, 0, 0, 17, 70, 104, 147, 66, 4, 37, 197, 88, 37, 65, 71, 35, 71, 58, 36, 0,
-			0, 0, 6, 195, 64, 64, 64, 13, 0, 0, 17, 5, 115, 46, 118, 46, 112, 89, 37, 55, 84, 129, 48, 55, 6, 112, 0, 0, 0, 21,
-			67, 52, 16, 192, 65, 35, 49, 39, 112, 89, 37, 49, 89, 0, 82, 111, 115, 32, 120, 32, 0, 0, 0, 0, 8, 67, 28, 20, 147, 81,
-			35, 0, 6, 195, 57, 50, 83, 13, 0, 0, 0, 0, 0, 13, 4, 95, 99, 101, 100, 89, 36, 72, 6, 37, 57, 0, 0, 25, 5, 110,
-			39, 101, 115, 116, 50, 6, 112, 89, 15, 48, 6, 35, 143, 0, 82, 99, 101, 32, 112, 97, 115, 32, 0, 12, 68, 49, 82, 71, 36, 55,
-			58, 37, 75, 37, 0, 5, 194, 56, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 36, 35, 64, 37, 71, 4, 36, 6, 112,
-			65, 0, 0, 16, 4, 95, 99, 97, 112, 65, 35, 90, 111, 89, 49, 6, 111, 55, 0, 0, 0, 0, 8, 67, 77, 83, 128, 21, 0, 47,
-			0, 0, 16, 70, 77, 84, 208, 20, 228, 197, 89, 111, 89, 48, 112, 50, 89, 0, 0, 0, 0, 12, 3, 95, 194, 181, 65, 37, 49, 34,
-			6, 39, 0, 0, 0, 7, 196, 5, 85, 18, 20, 76, 0, 9, 67, 52, 20, 192, 65, 35, 89, 0, 6, 195, 77, 84, 128, 76, 7, 195,
-			88, 244, 192, 72, 34, 7, 195, 56, 244, 192, 72, 34, 11, 67, 76, 84, 192, 89, 123, 143, 0, 72, 34, 11, 67, 12, 84, 192, 89, 36,
-			143, 0, 72, 34, 0, 0, 0, 0, 6, 131, 95, 195, 180, 43, 0, 0, 0, 17, 3, 95, 194, 171, 40, 84, 34, 36, 15, 81, 37, 57,
-			65, 6, 112, 0, 0, 6, 195, 28, 229, 64, 13, 8, 67, 101, 97, 83, 37, 84, 0, 7, 195, 76, 242, 83, 76, 36, 8, 197, 9, 35,
-			20, 81, 144, 13, 0, 0, 0, 9, 66, 76, 16, 89, 121, 0, 72, 34, 17, 66, 52, 208, 109, 105, 108, 108, 105, 109, 195, 168, 116, 114,
-			101, 0, 29, 13, 3, 95, 194, 167, 89, 112, 49, 89, 57, 6, 116, 0, 0, 19, 70, 12, 19, 22, 4, 67, 211, 99, 97, 108, 118, 97,
-			100, 111, 115, 115, 0, 29, 0, 11, 67, 9, 37, 84, 71, 34, 6, 111, 47, 0, 0, 14, 69, 64, 20, 212, 37, 48, 48, 35, 89, 47,
-			37, 89, 0, 0, 6, 195, 76, 20, 0, 13, 0, 8, 67, 28, 81, 75, 21, 0, 47, 0, 0, 11, 69, 28, 147, 12, 21, 48, 90, 37,
-			55, 0, 13, 69, 8, 148, 211, 85, 48, 71, 37, 89, 111, 89, 0, 0, 0, 14, 69, 81, 85, 129, 49, 80, 47, 40, 84, 35, 55, 40,
-			0, 0, 0, 0, 0, 6, 131, 95, 195, 160, 43, 0, 0, 0, 10, 66, 52, 224, 65, 37, 50, 111, 47, 0, 0, 0, 38, 70, 36, 229,
-			5, 72, 225, 84, 114, 47, 112, 34, 50, 6, 112, 47, 15, 112, 49, 89, 48, 55, 127, 34, 6, 117, 34, 0, 81, 101, 120, 112, 108, 111,
-			114, 101, 114, 32, 17, 70, 36, 229, 5, 72, 225, 84, 114, 47, 112, 34, 50, 6, 112, 47, 0, 17, 70, 52, 20, 135, 5, 33, 84, 65,
-			35, 34, 81, 35, 34, 112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 57, 83, 12, 21, 0, 47, 15, 70, 13, 147, 148, 32,
-			144, 64, 89, 37, 50, 47, 37, 35, 0, 0, 14, 67, 96, 96, 197, 37, 49, 89, 112, 83, 89, 36, 13, 0, 0, 0, 0, 14, 69, 16,
-			80, 137, 4, 224, 72, 36, 71, 57, 35, 50, 0, 0, 6, 195, 72, 144, 65, 13, 0, 9, 66, 60, 176, 39, 49, 36, 0, 76, 9, 66,
-			80, 16, 47, 121, 0, 72, 34, 0, 12, 68, 48, 20, 197, 72, 55, 35, 88, 112, 34, 0, 0, 15, 70, 52, 144, 200, 4, 83, 0, 65,
-			37, 49, 35, 112, 55, 0, 0, 0, 16, 70, 4, 225, 197, 48, 84, 192, 113, 50, 90, 36, 55, 112, 89, 0, 13, 70, 12, 128, 82, 48,
-			84, 192, 91, 35, 34, 55, 0, 16, 70, 4, 192, 137, 56, 244, 192, 35, 55, 71, 37, 50, 39, 89, 0, 0, 0, 16, 70, 64, 21, 1,
-			69, 88, 83, 48, 35, 47, 35, 49, 112, 89, 0, 0, 0, 0, 0, 14, 69, 88, 148, 135, 36, 224, 84, 37, 34, 90, 37, 50, 0, 0,
-			0, 14, 70, 52, 243, 147, 36, 85, 82, 65, 13, 89, 57, 132, 0, 18, 3, 95, 194, 187, 83, 112, 34, 65, 36, 15, 81, 37, 57, 65,
-			6, 112, 0, 0, 9, 67, 73, 85, 0, 34, 111, 47, 0, 15, 70, 12, 245, 83, 12, 245, 83, 49, 40, 89, 49, 40, 89, 0, 0, 12,
-			68, 92, 20, 137, 60, 58, 35, 34, 57, 39, 0, 0, 0, 0, 9, 67, 29, 84, 192, 81, 111, 89, 0, 15, 67, 69, 20, 192, 113, 117,
-			101, 108, 113, 117, 101, 115, 0, 29, 0, 0, 0, 16, 4, 95, 103, 114, 118, 35, 49, 89, 113, 81, 34, 6, 35, 84, 0, 0, 9, 67,
-			77, 84, 192, 89, 111, 0, 36, 9, 67, 77, 84, 192, 89, 111, 89, 0, 0, 15, 70, 13, 35, 193, 80, 145, 64, 49, 34, 39, 35, 89,
-			37, 0, 17, 70, 48, 244, 147, 69, 81, 64, 55, 127, 34, 89, 49, 8, 13, 0, 76, 0, 20, 2, 195, 151, 65, 111, 55, 47, 37, 48,
-			55, 37, 6, 36, 10, 48, 6, 35, 34, 0, 0, 17, 66, 77, 64, 89, 114, 49, 55, 40, 0, 81, 99, 108, 111, 117, 100, 32, 9, 66,
-			77, 64, 89, 6, 114, 140, 0, 0, 0, 0, 6, 195, 57, 97, 1, 13, 0, 10, 67, 4, 192, 78, 35, 55, 35, 50, 0, 16, 67, 77,
-			68, 0, 89, 37, 55, 47, 13, 12, 48, 55, 6, 112, 0, 0, 0, 22, 2, 194, 166, 89, 36, 48, 35, 34, 35, 47, 117, 34, 15, 84,
-			112, 47, 37, 49, 35, 55, 0, 0, 0, 6, 194, 76, 80, 72, 32, 0, 8, 2, 194, 165, 57, 112, 50, 0, 0, 10, 69, 60, 194, 86,
-			21, 32, 21, 0, 47, 6, 195, 76, 242, 84, 76, 6, 131, 111, 195, 185, 76, 11, 67, 81, 40, 83, 47, 34, 112, 143, 0, 76, 9, 2,
-			194, 162, 89, 112, 50, 47, 0, 0, 9, 2, 194, 163, 55, 37, 84, 34, 0, 0, 15, 70, 8, 18, 1, 52, 20, 192, 71, 35, 35, 65,
-			35, 89, 0, 29, 67, 12, 129, 70, 99, 104, 195, 169, 100, 101, 117, 118, 114, 101, 115, 0, 29, 81, 100, 39, 111, 101, 117, 118, 114, 101,
-			115, 32, 27, 67, 12, 129, 70, 99, 104, 195, 169, 100, 101, 117, 118, 114, 101, 0, 29, 81, 100, 39, 111, 101, 117, 118, 114, 101, 32, 9,
-			198, 69, 81, 76, 48, 84, 192, 76, 0, 8, 67, 56, 245, 0, 21, 0, 47, 9, 67, 76, 85, 0, 89, 112, 47, 0, 0, 12, 68, 56,
-			85, 137, 76, 50, 36, 84, 37, 89, 0, 16, 2, 194, 174, 65, 35, 34, 49, 72, 36, 48, 39, 88, 6, 36, 0, 0, 9, 68, 64, 18,
-			78, 80, 21, 0, 47, 10, 2, 194, 175, 65, 35, 49, 34, 116, 0, 0, 16, 70, 72, 21, 9, 60, 228, 192, 34, 35, 47, 57, 116, 143,
-			0, 36, 15, 70, 16, 21, 9, 60, 228, 192, 72, 35, 47, 57, 116, 143, 0, 8, 67, 76, 48, 78, 21, 0, 47, 11, 70, 12, 243, 12,
-			36, 228, 192, 21, 0, 47, 20, 2, 194, 172, 47, 37, 34, 112, 10, 83, 35, 49, 111, 55, 47, 35, 47, 37, 83, 0, 5, 130, 195, 164,
-			43, 0, 17, 67, 77, 81, 0, 89, 111, 72, 112, 89, 47, 0, 81, 101, 115, 116, 32, 0, 15, 71, 76, 128, 77, 64, 242, 78, 28, 91,
-			113, 48, 58, 114, 0, 0, 12, 2, 197, 147, 39, 15, 13, 15, 55, 37, 36, 0, 0, 0, 7, 2, 194, 169, 21, 0, 47, 0, 13, 2,
-			194, 182, 48, 35, 34, 35, 81, 34, 35, 83, 0, 0, 10, 134, 102, 195, 187, 116, 101, 115, 76, 36, 8, 2, 194, 183, 48, 58, 114, 0,
-			5, 130, 195, 175, 43, 0, 17, 72, 52, 243, 148, 76, 84, 146, 5, 64, 65, 116, 89, 36, 34, 35, 0, 14, 70, 52, 245, 76, 61, 81,
-			0, 65, 40, 55, 40, 72, 0, 9, 66, 60, 224, 116, 134, 0, 76, 32, 0, 6, 195, 4, 32, 192, 13, 0, 16, 2, 194, 178, 48, 111,
-			37, 89, 6, 113, 89, 15, 72, 6, 132, 0, 0, 16, 2, 194, 179, 48, 111, 37, 89, 113, 89, 15, 47, 34, 58, 35, 0, 0, 0, 7,
-			195, 60, 229, 0, 76, 36, 15, 2, 194, 177, 48, 55, 6, 111, 88, 40, 65, 58, 6, 114, 0, 0, 14, 70, 64, 245, 82, 12, 83, 148,
-			48, 40, 34, 89, 113, 0, 16, 70, 44, 20, 129, 60, 177, 64, 49, 35, 34, 35, 39, 49, 36, 0, 16, 70, 9, 35, 199, 48, 145, 64,
-			98, 114, 101, 117, 105, 108, 0, 29, 14, 2, 194, 190, 47, 34, 58, 35, 10, 49, 6, 35, 34, 0, 0, 9, 67, 4, 64, 77, 35, 72,
-			113, 0, 12, 67, 85, 35, 0, 111, 12, 112, 34, 112, 55, 0, 27, 2, 194, 191, 48, 58, 114, 15, 72, 114, 47, 36, 34, 39, 81, 35,
-			89, 57, 116, 15, 114, 84, 112, 34, 89, 36, 0, 17, 2, 195, 183, 72, 37, 84, 37, 88, 6, 36, 10, 48, 6, 35, 34, 0, 0, 10,
-			67, 60, 208, 78, 39, 65, 35, 50, 0, 6, 130, 195, 180, 49, 43, 11, 2, 194, 188, 115, 10, 49, 6, 35, 34, 0, 0, 12, 2, 194,
-			189, 115, 10, 72, 13, 65, 6, 37, 0, 0, 20, 73, 9, 32, 90, 104, 21, 137, 48, 193, 64, 71, 34, 35, 88, 35, 84, 37, 55, 0,
-			10, 2, 194, 186, 72, 13, 81, 34, 36, 0, 0, 0, 15, 67, 77, 100, 0, 89, 37, 55, 84, 129, 48, 55, 6, 112, 0, 10, 2, 194,
-			184, 89, 36, 72, 37, 57, 0, 0, 12, 67, 60, 225, 192, 39, 4, 112, 50, 90, 36, 0, 5, 130, 195, 177, 43, 0, 0, 6, 195, 80,
-			83, 0, 76, 0, 6, 194, 80, 80, 72, 32, 0, 17, 70, 48, 148, 212, 8, 246, 0, 55, 37, 89, 47, 71, 127, 49, 89, 0, 6, 195,
-			76, 242, 64, 76, 0, 13, 69, 9, 81, 134, 21, 32, 71, 132, 83, 117, 34, 0, 0, 13, 68, 5, 4, 161, 76, 35, 48, 34, 112, 143,
-			0, 76, 5, 130, 195, 187, 43, 0, 14, 69, 32, 19, 76, 21, 64, 23, 35, 65, 55, 112, 47, 0, 8, 197, 25, 84, 133, 57, 64, 76,
-			8, 197, 17, 84, 129, 57, 64, 76, 0, 6, 195, 52, 50, 64, 13, 5, 130, 195, 185, 43, 0, 10, 69, 12, 83, 148, 21, 32, 21, 0,
-			47, 0, 0, 10, 69, 72, 81, 8, 5, 64, 21, 0, 47, 11, 69, 5, 85, 133, 57, 64, 39, 84, 113, 0, 12, 69, 21, 84, 133, 57,
-			64, 111, 34, 140, 0, 76, 6, 194, 81, 80, 76, 32, 0, 12, 67, 60, 115, 64, 39, 90, 4, 36, 112, 65, 0, 0, 0, 0, 0, 9,
-			67, 32, 211, 64, 107, 117, 65, 0, 0, 0, 0, 0, 0, 0, 16, 69, 20, 32, 196, 36, 48, 13, 71, 36, 89, 36, 72, 37, 49, 0,
-			0, 12, 68, 5, 37, 66, 4, 35, 34, 40, 71, 35, 0, 8, 196, 12, 85, 20, 20, 72, 34, 0, 14, 69, 25, 85, 21, 56, 16, 83,
-			40, 47, 40, 50, 35, 0, 0, 0, 10, 199, 58, 32, 78, 52, 242, 78, 76, 76, 0, 7, 66, 85, 64, 111, 47, 0, 0, 9, 198, 21,
-			84, 211, 36, 243, 147, 76, 6, 195, 64, 85, 64, 76, 8, 197, 12, 128, 81, 84, 80, 76, 0, 0, 0, 0, 0, 18, 71, 21, 52, 5,
-			72, 19, 148, 60, 112, 89, 48, 36, 34, 113, 47, 39, 0, 0, 0, 0, 8, 67, 8, 22, 64, 21, 0, 47, 0, 0, 7, 195, 12, 80,
-			201, 76, 32, 0, 14, 69, 100, 19, 213, 73, 64, 23, 37, 35, 40, 34, 47, 0, 0, 0, 0, 0, 10, 67, 8, 145, 78, 71, 37, 114,
-			134, 0, 0, 0, 0, 11, 68, 52, 145, 85, 96, 65, 37, 132, 0, 76, 0, 11, 70, 72, 80, 207, 72, 65, 82, 21, 0, 47, 0, 0,
-			0, 0, 0, 0, 13, 67, 37, 32, 192, 125, 4, 112, 34, 23, 89, 36, 0, 0, 12, 68, 80, 245, 84, 20, 47, 6, 40, 47, 0, 76,
-			10, 3, 117, 46, 115, 111, 12, 112, 89, 0, 0, 13, 69, 4, 113, 78, 16, 16, 35, 90, 114, 72, 35, 0, 8, 197, 69, 81, 76, 48,
-			80, 76, 0, 16, 71, 52, 84, 211, 36, 85, 82, 76, 65, 36, 89, 57, 132, 143, 0, 0, 7, 195, 85, 48, 64, 13, 42, 0, 0, 6,
-			195, 88, 84, 147, 37, 10, 67, 88, 84, 147, 84, 112, 34, 0, 76, 0, 0, 9, 68, 9, 34, 65, 56, 21, 0, 47, 0, 0, 0, 13,
-			4, 95, 226, 136, 158, 37, 50, 83, 37, 50, 37, 0, 0, 0, 0, 0, 9, 68, 20, 208, 67, 76, 21, 0, 47, 9, 68, 40, 19, 69,
-			76, 21, 0, 47, 0, 26, 67, 25, 146, 64, 83, 117, 34, 15, 57, 117, 34, 15, 125, 50, 83, 117, 34, 65, 6, 112, 57, 91, 117, 50,
-			0, 0, 0, 0, 0, 9, 68, 64, 85, 5, 72, 21, 0, 47, 7, 195, 49, 82, 64, 76, 32, 9, 2, 95, 35, 72, 57, 112, 88, 0,
-			0, 10, 2, 95, 34, 81, 37, 57, 65, 112, 0, 0, 22, 2, 95, 33, 48, 58, 114, 15, 72, 112, 49, 89, 49, 55, 35, 65, 35, 89,
-			57, 6, 116, 0, 0, 0, 9, 68, 48, 241, 207, 56, 21, 0, 47, 9, 67, 76, 243, 128, 89, 116, 0, 37, 7, 195, 76, 243, 128, 76,
-			34, 14, 2, 95, 39, 35, 48, 39, 89, 47, 34, 6, 127, 83, 0, 0, 18, 2, 95, 38, 10, 36, 10, 49, 39, 65, 112, 34, 89, 37,
-			6, 35, 55, 0, 0, 0, 11, 70, 12, 243, 80, 85, 65, 82, 21, 0, 47, 17, 70, 72, 85, 143, 49, 97, 82, 34, 36, 84, 127, 55,
-			84, 112, 34, 0, 0, 9, 67, 8, 147, 128, 71, 37, 50, 0, 12, 68, 4, 67, 73, 56, 35, 72, 65, 37, 50, 0, 0, 15, 70, 8,
-			80, 85, 12, 245, 80, 71, 39, 49, 40, 139, 0, 76, 0, 18, 2, 95, 41, 48, 35, 34, 113, 47, 112, 88, 10, 72, 34, 58, 35, 47,
-			0, 0, 16, 70, 92, 19, 21, 36, 114, 64, 58, 35, 55, 40, 37, 75, 37, 0, 15, 70, 81, 32, 77, 92, 22, 64, 47, 34, 35, 65,
-			58, 137, 0, 16, 2, 95, 40, 48, 35, 34, 113, 47, 112, 88, 10, 81, 39, 91, 0, 0, 8, 67, 32, 84, 128, 21, 0, 47, 13, 2,
-			95, 47, 71, 35, 34, 39, 71, 55, 37, 49, 0, 0, 15, 70, 72, 84, 211, 20, 229, 0, 34, 13, 89, 6, 113, 140, 0, 11, 68, 12,
-			243, 77, 20, 49, 127, 65, 0, 76, 10, 2, 95, 46, 23, 48, 58, 2, 114, 0, 0, 9, 2, 95, 45, 47, 37, 34, 112, 0, 0, 10,
-			67, 4, 49, 82, 35, 89, 112, 34, 0, 11, 67, 24, 145, 82, 83, 57, 36, 34, 0, 36, 11, 2, 95, 44, 84, 37, 34, 81, 111, 55,
-			0, 0, 8, 67, 53, 36, 192, 21, 0, 47, 10, 2, 95, 51, 47, 34, 58, 35, 143, 0, 0, 8, 2, 95, 50, 72, 132, 143, 0, 0,
-			6, 195, 48, 244, 147, 76, 6, 2, 95, 49, 115, 0, 0, 10, 2, 95, 48, 88, 36, 34, 39, 0, 76, 0, 8, 2, 95, 55, 89, 112,
-			47, 0, 0, 9, 198, 64, 197, 80, 5, 37, 0, 76, 8, 2, 95, 54, 89, 37, 144, 0, 0, 8, 2, 95, 53, 89, 114, 49, 0, 0,
-			11, 70, 65, 35, 199, 72, 19, 64, 21, 0, 47, 9, 2, 95, 52, 49, 35, 47, 34, 0, 0, 16, 2, 95, 59, 48, 58, 114, 15, 84,
-			37, 34, 81, 6, 111, 55, 0, 0, 10, 69, 28, 84, 141, 4, 224, 21, 0, 47, 7, 196, 88, 242, 67, 36, 76, 13, 2, 95, 58, 72,
-			6, 132, 15, 48, 58, 6, 114, 0, 0, 8, 2, 95, 57, 50, 117, 83, 0, 0, 12, 68, 60, 20, 201, 76, 39, 35, 88, 37, 89, 0,
-			9, 2, 95, 56, 23, 111, 37, 141, 0, 0, 21, 2, 95, 63, 48, 58, 114, 15, 72, 114, 47, 112, 34, 39, 81, 35, 89, 57, 6, 116,
-			0, 0, 13, 2, 95, 62, 89, 111, 48, 36, 34, 37, 117, 34, 0, 0, 9, 2, 95, 61, 36, 81, 35, 55, 0, 0, 12, 2, 95, 60,
-			114, 83, 36, 34, 37, 117, 34, 0, 0, 13, 69, 80, 83, 142, 37, 48, 47, 36, 50, 37, 89, 0, 8, 67, 72, 150, 128, 34, 37, 0,
-			0, 0, 0, 0, 0, 9, 68, 69, 81, 82, 100, 21, 0, 47, 0, 17, 70, 52, 84, 131, 20, 65, 83, 65, 112, 34, 89, 36, 72, 112,
-			89, 0, 0, 11, 67, 4, 98, 78, 35, 83, 114, 0, 76, 28, 21, 70, 44, 212, 12, 5, 145, 82, 49, 35, 4, 112, 65, 48, 55, 112,
-			57, 6, 117, 34, 0, 0, 0, 19, 71, 8, 19, 1, 8, 243, 11, 4, 71, 35, 55, 35, 71, 127, 55, 49, 35, 0, 7, 196, 5, 84,
-			211, 36, 76, 0, 0, 0, 0, 11, 68, 48, 144, 153, 20, 55, 37, 71, 37, 0, 13, 70, 88, 147, 131, 20, 229, 0, 84, 114, 89, 113,
-			0, 0, 16, 7, 116, 97, 195, 175, 119, 97, 110, 47, 35, 57, 58, 35, 50, 0, 0, 18, 71, 4, 100, 137, 44, 16, 78, 76, 35, 83,
-			34, 37, 49, 35, 50, 89, 0, 0, 12, 67, 85, 48, 128, 111, 12, 112, 89, 71, 36, 0, 0, 15, 70, 12, 243, 147, 20, 229, 0, 49,
-			116, 89, 6, 113, 140, 0, 0, 0, 6, 195, 48, 242, 78, 76, 0, 8, 67, 76, 19, 69, 21, 0, 47, 6, 195, 36, 65, 64, 13, 16,
-			4, 95, 226, 128, 153, 35, 48, 39, 89, 47, 34, 6, 127, 83, 0, 0, 16, 4, 95, 226, 128, 152, 35, 48, 39, 89, 47, 34, 6, 127,
-			83, 0, 0, 0, 0, 8, 67, 76, 129, 64, 21, 0, 47, 14, 2, 95, 91, 49, 34, 127, 91, 112, 10, 81, 39, 91, 0, 0, 8, 66,
-			133, 48, 112, 89, 0, 72, 0, 0, 10, 67, 29, 83, 6, 81, 127, 55, 83, 0, 5, 194, 84, 176, 13, 0, 16, 69, 4, 148, 130, 85,
-			48, 97, 105, 114, 98, 117, 115, 115, 0, 29, 11, 2, 95, 95, 89, 40, 55, 37, 67, 36, 0, 0, 15, 70, 48, 22, 129, 72, 85, 0,
-			55, 35, 88, 35, 34, 112, 0, 15, 2, 95, 94, 89, 37, 34, 49, 116, 83, 55, 112, 49, 89, 0, 0, 15, 2, 95, 93, 49, 34, 127,
-			91, 112, 10, 72, 34, 58, 35, 0, 0, 17, 67, 88, 148, 0, 84, 4, 37, 15, 4, 35, 57, 15, 48, 6, 37, 0, 12, 2, 95, 92,
-			71, 35, 49, 89, 55, 35, 91, 0, 0, 8, 197, 12, 84, 148, 21, 48, 76, 0, 6, 195, 72, 21, 16, 13, 0, 0, 7, 195, 141, 65,
-			83, 76, 36, 16, 2, 95, 96, 35, 49, 89, 6, 113, 10, 81, 34, 6, 35, 84, 0, 0, 0, 7, 2, 95, 102, 112, 83, 0, 0, 6,
-			2, 95, 101, 13, 0, 0, 0, 0, 0, 6, 2, 95, 105, 37, 0, 0, 19, 72, 24, 18, 18, 20, 226, 5, 37, 64, 83, 35, 34, 13,
-			50, 35, 57, 47, 0, 7, 2, 95, 104, 35, 91, 0, 0, 20, 67, 88, 148, 192, 84, 37, 88, 35, 84, 37, 0, 82, 195, 160, 32, 118,
-			105, 115, 32, 6, 195, 76, 244, 192, 13, 8, 67, 20, 32, 89, 21, 0, 47, 6, 2, 95, 111, 39, 0, 0, 7, 2, 95, 110, 112, 50,
-			0, 0, 7, 2, 95, 109, 112, 65, 0, 0, 7, 2, 95, 108, 112, 55, 0, 0, 9, 67, 8, 148, 192, 71, 37, 89, 0, 11, 67, 16,
-			84, 192, 72, 123, 143, 0, 72, 34, 21, 67, 48, 84, 192, 55, 123, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 115, 32, 20,
-			67, 48, 84, 192, 55, 123, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 32, 11, 67, 80, 84, 192, 47, 123, 143, 0, 72, 34,
-			12, 67, 48, 84, 192, 55, 123, 143, 0, 36, 40, 72, 11, 67, 48, 84, 192, 55, 123, 143, 0, 34, 76, 7, 2, 95, 115, 112, 89, 0,
-			0, 9, 198, 64, 245, 82, 80, 19, 148, 76, 7, 2, 95, 114, 112, 34, 0, 0, 11, 68, 69, 80, 78, 16, 49, 113, 140, 0, 76, 12,
-			4, 95, 104, 97, 99, 49, 35, 34, 6, 116, 0, 0, 10, 69, 37, 51, 1, 56, 64, 21, 0, 47, 0, 0, 0, 7, 195, 4, 145, 83,
-			76, 36, 6, 2, 95, 117, 111, 0, 0, 0, 15, 2, 95, 123, 35, 49, 127, 55, 35, 72, 10, 81, 39, 91, 0, 0, 0, 13, 2, 95,
-			121, 11, 37, 12, 81, 34, 6, 112, 49, 0, 0, 8, 66, 80, 240, 47, 40, 0, 76, 8, 2, 95, 120, 37, 49, 89, 0, 0, 17, 70,
-			4, 195, 5, 49, 82, 65, 35, 55, 36, 55, 40, 37, 6, 35, 0, 8, 197, 80, 19, 132, 37, 48, 76, 8, 197, 5, 85, 18, 21, 48,
-			76, 0, 11, 70, 69, 81, 82, 36, 84, 192, 21, 0, 47, 0, 8, 67, 100, 85, 0, 21, 0, 47, 9, 68, 4, 35, 213, 80, 21, 0,
-			47, 17, 2, 95, 125, 35, 49, 127, 55, 35, 72, 10, 72, 34, 58, 35, 47, 0, 0, 18, 2, 95, 124, 71, 35, 34, 10, 84, 112, 34,
-			47, 37, 49, 6, 35, 55, 0, 0, 12, 69, 76, 245, 82, 37, 48, 89, 40, 34, 37, 0, 14, 69, 80, 245, 84, 21, 48, 47, 6, 40,
-			47, 143, 0, 76, 0, 13, 67, 44, 34, 84, 49, 37, 55, 39, 71, 37, 47, 0, 0, 14, 69, 8, 148, 211, 5, 80, 71, 37, 89, 35,
-			6, 39, 0, 9, 5, 95, 48, 97, 110, 100, 36, 0, 0, 0, 12, 68, 34, 35, 1, 76, 36, 55, 35, 89, 0, 76, 0, 15, 70, 48,
-			84, 207, 80, 131, 192, 55, 36, 88, 127, 47, 39, 0, 0, 17, 70, 69, 81, 76, 69, 81, 83, 49, 112, 55, 49, 8, 13, 143, 0, 76,
-			0, 0, 12, 68, 44, 85, 137, 56, 49, 36, 84, 37, 50, 0, 0, 0, 0, 17, 71, 12, 132, 137, 77, 67, 65, 76, 49, 34, 37, 89,
-			65, 35, 89, 0, 6, 194, 84, 224, 34, 76, 0, 0, 9, 68, 80, 129, 82, 20, 21, 0, 47, 0, 0, 27, 70, 9, 84, 139, 36, 224,
-			64, 71, 40, 34, 49, 37, 50, 35, 15, 83, 35, 89, 39, 0, 81, 102, 97, 115, 111, 32, 0, 6, 195, 81, 96, 64, 13, 0, 0, 10,
-			67, 4, 226, 83, 35, 50, 37, 89, 0, 0, 0, 0, 9, 68, 100, 244, 200, 36, 21, 0, 47, 11, 4, 101, 195, 187, 116, 111, 140, 0,
-			76, 36, 0, 0, 12, 4, 95, 35, 51, 50, 112, 89, 48, 35, 89, 0, 0, 7, 196, 20, 225, 137, 56, 76, 12, 67, 20, 65, 128, 13,
-			72, 4, 36, 112, 83, 0, 0, 12, 68, 32, 147, 132, 36, 23, 37, 50, 72, 37, 0, 0, 0, 0, 0, 16, 70, 28, 83, 133, 76, 148,
-			192, 90, 36, 50, 36, 88, 37, 89, 0, 16, 70, 76, 243, 1, 72, 148, 192, 89, 39, 55, 35, 34, 37, 89, 0, 10, 2, 109, 46, 65,
-			13, 89, 37, 132, 0, 0, 10, 67, 18, 20, 192, 72, 112, 143, 0, 72, 0, 0, 10, 67, 8, 197, 77, 71, 55, 40, 65, 0, 0, 16,
-			70, 88, 245, 9, 60, 228, 192, 84, 127, 39, 47, 57, 116, 143, 0, 8, 67, 20, 66, 84, 21, 0, 47, 13, 67, 52, 34, 84, 65, 36,
-			81, 35, 71, 37, 47, 0, 18, 70, 4, 52, 143, 8, 21, 0, 97, 99, 114, 111, 98, 97, 116, 101, 0, 29, 0, 0, 5, 194, 97, 144,
-			13, 0, 9, 68, 48, 241, 201, 56, 21, 0, 47, 12, 67, 4, 67, 128, 35, 72, 4, 36, 112, 50, 0, 0, 0, 9, 67, 105, 85, 0,
-			88, 111, 47, 0, 0, 0, 24, 74, 48, 145, 67, 33, 65, 78, 77, 65, 73, 56, 55, 37, 91, 47, 117, 50, 91, 47, 35, 57, 50, 0,
-			0, 0, 0, 0, 18, 71, 32, 19, 66, 85, 33, 197, 72, 23, 113, 71, 13, 34, 81, 117, 34, 0, 0, 9, 198, 12, 243, 77, 20, 229,
-			0, 76, 15, 70, 76, 19, 83, 84, 225, 192, 89, 35, 65, 89, 40, 68, 0, 0, 0, 10, 68, 12, 242, 78, 28, 49, 58, 114, 0, 0,
-			0, 20, 73, 12, 243, 148, 20, 229, 9, 60, 228, 192, 49, 116, 47, 113, 47, 57, 116, 143, 0, 9, 68, 80, 131, 211, 20, 21, 0, 47,
-			0, 0, 0, 6, 195, 13, 5, 64, 13, 0, 11, 68, 5, 48, 201, 36, 35, 89, 49, 37, 0, 0, 15, 70, 52, 243, 148, 74, 32, 76,
-			65, 116, 34, 36, 35, 55, 0, 6, 195, 52, 18, 83, 76, 0, 0, 0, 0, 0, 12, 68, 81, 83, 137, 76, 47, 111, 50, 37, 89, 0,
-			0, 14, 67, 28, 134, 128, 90, 37, 81, 35, 112, 34, 47, 89, 0, 0, 13, 70, 28, 83, 210, 28, 84, 192, 90, 127, 34, 90, 0, 15,
-			70, 25, 32, 78, 12, 148, 192, 83, 34, 113, 89, 37, 89, 0, 0, 12, 68, 76, 208, 82, 80, 89, 65, 35, 34, 47, 0, 9, 67, 88,
-			245, 0, 84, 127, 47, 0, 7, 196, 4, 145, 78, 80, 76, 0, 10, 69, 61, 85, 16, 85, 64, 21, 0, 47, 11, 68, 12, 240, 213, 76,
-			49, 127, 49, 111, 0, 0, 14, 67, 44, 134, 128, 49, 37, 55, 39, 112, 34, 47, 89, 0, 0, 11, 69, 12, 131, 197, 85, 32, 49, 117,
-			34, 0, 0, 0, 6, 195, 12, 129, 90, 76, 0, 0, 8, 67, 52, 18, 76, 21, 0, 47, 13, 67, 13, 68, 140, 24, 49, 116, 47, 34,
-			127, 55, 0, 0, 18, 71, 77, 112, 90, 36, 192, 78, 16, 89, 58, 35, 88, 37, 55, 113, 72, 0, 18, 71, 29, 35, 197, 56, 192, 78,
-			16, 81, 34, 39, 112, 50, 55, 113, 72, 0, 0, 0, 10, 134, 101, 195, 187, 109, 101, 115, 76, 36, 0, 0, 0, 0, 6, 195, 76, 52,
-			201, 13, 0, 0, 0, 0, 6, 195, 12, 144, 64, 13, 0, 0, 0, 20, 70, 5, 81, 9, 8, 193, 64, 21, 0, 47, 81, 109, 97, 110,
-			97, 103, 101, 114, 32, 0, 13, 67, 52, 209, 64, 109, 97, 100, 97, 109, 101, 0, 29, 0, 0, 0, 0, 6, 195, 85, 65, 128, 13, 0,
-			0, 0, 0, 9, 67, 92, 146, 64, 58, 37, 12, 0, 6, 195, 80, 242, 64, 76, 0, 0, 0, 8, 197, 5, 85, 1, 57, 64, 76, 0,
-			0, 0, 0, 12, 69, 4, 36, 197, 57, 64, 35, 71, 89, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 69, 32, 20, 133, 56,
-			112, 23, 35, 34, 113, 0, 0, 0, 0, 16, 70, 64, 242, 226, 52, 243, 128, 48, 39, 49, 36, 65, 127, 50, 0, 0, 7, 195, 36, 196,
-			192, 76, 32, 0, 0, 10, 67, 48, 19, 211, 55, 35, 127, 89, 0, 9, 198, 80, 245, 74, 61, 84, 147, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 69, 5, 85, 15, 85, 32, 39, 47, 40, 34, 0, 76, 14, 6, 95, 114, 111, 109, 97, 110, 34, 39, 65, 6,
-			114, 0, 0, 0, 0, 0, 0, 0, 10, 69, 76, 50, 69, 57, 64, 89, 37, 0, 12, 67, 72, 145, 78, 34, 37, 6, 114, 134, 0, 76,
-			0, 0, 14, 67, 4, 68, 204, 35, 72, 4, 36, 112, 89, 112, 55, 0, 0, 6, 20, 0, 83, 1, 0, 0, 111, 0, 101, 0, 0, 0,
-			0, 0, 6, 18, 66, 100, 0, 101, 0, 108, 0, 110, 0, 114, 0, 116, 0, 117, 0, 7, 6, 18, 67, 98, 0, 99, 0, 100, 0, 102,
-			0, 103, 0, 104, 0, 107, 0, 112, 0, 116, 0, 118, 0, 7, 6, 18, 68, 100, 0, 108, 0, 109, 0, 110, 0, 115, 0, 116, 0, 118,
-			0, 7, 6, 18, 69, 99, 0, 100, 0, 102, 0, 103, 0, 108, 0, 109, 0, 110, 0, 118, 0, 7, 6, 18, 70, 103, 0, 104, 0, 107,
-			0, 108, 0, 109, 0, 118, 0, 119, 0, 7, 6, 18, 71, 98, 108, 0, 98, 114, 0, 99, 108, 0, 99, 114, 0, 99, 116, 0, 100, 114,
-			0, 102, 108, 0, 102, 114, 0, 102, 116, 0, 103, 108, 0, 103, 114, 0, 107, 108, 0, 107, 114, 0, 112, 108, 0, 112, 114, 0, 116, 114,
-			0, 118, 114, 0, 7, 6, 18, 72, 195, 169, 99, 0, 195, 169, 100, 0, 101, 99, 0, 101, 100, 0, 108, 98, 0, 108, 99, 0, 108, 100,
-			0, 108, 103, 0, 108, 109, 0, 108, 110, 0, 108, 112, 0, 108, 116, 0, 108, 118, 0, 114, 98, 0, 114, 99, 0, 114, 100, 0, 114, 102,
-			0, 114, 103, 0, 114, 108, 0, 114, 109, 0, 114, 110, 0, 114, 112, 0, 114, 115, 0, 114, 116, 0, 114, 118, 0, 7, 6, 18, 73, 99,
-			104, 0, 113, 117, 0, 103, 117, 0, 98, 0, 99, 0, 100, 0, 102, 0, 103, 0, 104, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0,
-			112, 0, 113, 0, 114, 0, 115, 0, 116, 0, 118, 0, 119, 0, 120, 0, 122, 0, 7, 6, 18, 74, 108, 0, 114, 0, 115, 0, 7, 6,
-			18, 75, 105, 97, 0, 105, 101, 0, 105, 111, 0, 117, 97, 0, 117, 101, 0, 117, 105, 0, 117, 111, 0, 7, 6, 18, 76, 98, 0, 112,
-			0, 116, 0, 7, 6, 18, 77, 97, 195, 175, 0, 114, 195, 169, 0, 195, 169, 0, 195, 168, 0, 97, 108, 0, 105, 98, 0, 105, 101, 0,
-			105, 113, 0, 111, 109, 0, 111, 110, 0, 121, 109, 0, 108, 0, 7, 6, 18, 78, 101, 114, 0, 104, 110, 0, 100, 0, 103, 0, 107, 0,
-			108, 0, 112, 0, 7, 6, 18, 79, 98, 101, 0, 105, 110, 0, 117, 112, 0, 117, 116, 0, 7, 6, 18, 80, 99, 0, 102, 0, 103, 0,
-			104, 0, 7, 6, 18, 81, 48, 48, 0, 48, 49, 0, 48, 50, 0, 48, 51, 0, 48, 52, 0, 48, 53, 0, 48, 54, 0, 48, 55, 0,
-			48, 56, 0, 48, 57, 0, 49, 48, 0, 49, 49, 0, 49, 50, 0, 49, 51, 0, 49, 52, 0, 49, 53, 0, 49, 54, 0, 49, 55, 0,
-			49, 56, 0, 49, 57, 0, 50, 48, 0, 50, 49, 0, 50, 50, 0, 50, 51, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0,
-			54, 0, 55, 0, 56, 0, 57, 0, 7, 6, 18, 82, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 7, 6, 195, 167, 0, 4,
-			3, 89, 0, 39, 8, 2, 14, 128, 140, 130, 0, 7, 6, 195, 168, 0, 109, 101, 1, 16, 3, 37, 112, 65, 0, 4, 3, 112, 0, 115,
-			2, 32, 0, 4, 115, 1, 109, 2, 32, 3, 112, 89, 0, 115, 1, 110, 2, 32, 0, 115, 1, 112, 2, 32, 0, 115, 1, 114, 17, 65,
-			2, 32, 0, 7, 6, 195, 171, 0, 1, 117, 3, 0, 1, 111, 110, 2, 32, 3, 36, 0, 3, 112, 0, 7, 6, 195, 175, 0, 3, 37,
-			0, 115, 1, 97, 17, 67, 2, 32, 3, 37, 89, 0, 4, 1, 17, 65, 2, 32, 3, 57, 0, 1, 17, 65, 2, 108, 17, 65, 0, 101,
-			1, 17, 65, 2, 32, 0, 110, 2, 25, 3, 114, 0, 7, 6, 195, 180, 0, 4, 3, 39, 0, 116, 2, 32, 0, 7, 6, 195, 188, 0,
-			109, 2, 32, 3, 39, 65, 0, 3, 111, 0, 108, 2, 32, 3, 111, 55, 55, 0, 115, 2, 32, 3, 111, 89, 0, 7, 6, 97, 0, 2,
-			195, 180, 3, 0, 105, 1, 102, 2, 115, 17, 65, 3, 13, 0, 4, 110, 121, 3, 21, 0, 119, 2, 25, 0, 4, 3, 35, 0, 2, 105,
-			108, 25, 0, 2, 110, 110, 17, 65, 0, 109, 2, 109, 0, 109, 2, 110, 0, 110, 2, 110, 32, 0, 4, 114, 99, 104, 8, 2, 97, 14,
-			128, 132, 132, 3, 35, 34, 49, 0, 114, 99, 104, 8, 2, 111, 14, 128, 132, 132, 0, 114, 99, 104, 195, 169, 8, 2, 21, 14, 128, 132,
-			133, 3, 35, 34, 49, 36, 0, 114, 99, 104, 195, 169, 111, 8, 2, 21, 14, 128, 132, 134, 3, 35, 34, 49, 36, 39, 0, 111, 195, 187,
-			116, 2, 105, 3, 35, 40, 89, 0, 4, 110, 1, 109, 18, 67, 2, 32, 3, 35, 50, 0, 110, 1, 109, 21, 21, 2, 32, 0, 110, 1,
-			109, 122, 2, 32, 0, 110, 1, 119, 2, 32, 0, 110, 2, 104, 0, 110, 8, 18, 69, 2, 32, 0, 110, 8, 104, 2, 32, 0, 110, 97,
-			114, 99, 104, 111, 8, 2, 21, 14, 128, 132, 135, 3, 35, 50, 35, 34, 49, 39, 0, 4, 121, 2, 97, 107, 3, 35, 57, 0, 121, 101,
-			1, 98, 98, 2, 32, 0, 4, 109, 1, 104, 2, 32, 14, 128, 128, 130, 3, 35, 65, 0, 109, 8, 2, 110, 0, 101, 3, 35, 112, 0,
-			4, 101, 2, 32, 3, 36, 0, 105, 2, 32, 0, 121, 101, 1, 98, 98, 2, 29, 3, 36, 37, 0, 4, 117, 3, 39, 0, 117, 100, 2,
-			32, 0, 117, 116, 111, 8, 2, 21, 14, 128, 132, 132, 3, 39, 47, 39, 0, 117, 116, 111, 109, 8, 2, 110, 3, 39, 47, 127, 0, 117,
-			100, 8, 17, 67, 2, 32, 3, 39, 72, 0, 117, 100, 105, 111, 8, 2, 21, 14, 128, 132, 133, 3, 39, 72, 37, 39, 0, 117, 116, 2,
-			32, 3, 39, 140, 0, 4, 111, 117, 1, 115, 2, 108, 101, 3, 40, 0, 111, 117, 108, 1, 115, 2, 32, 0, 111, 195, 187, 116, 3, 40,
-			47, 0, 4, 105, 3, 112, 0, 105, 8, 108, 97, 98, 2, 32, 0, 105, 8, 114, 118, 2, 32, 0, 105, 8, 115, 115, 101, 2, 32, 0,
-			105, 101, 0, 121, 2, 17, 67, 0, 121, 2, 32, 0, 121, 3, 112, 57, 0, 121, 101, 114, 1, 108, 29, 2, 29, 3, 112, 57, 117, 34,
-			0, 4, 105, 101, 110, 116, 3, 112, 140, 0, 105, 116, 2, 32, 0, 105, 115, 2, 32, 3, 112, 143, 0, 4, 101, 110, 3, 113, 0, 109,
-			2, 18, 76, 0, 110, 1, 109, 108, 117, 2, 32, 0, 110, 1, 109, 115, 105, 108, 2, 32, 0, 110, 2, 25, 0, 110, 8, 109, 175, 195,
-			97, 99, 2, 32, 0, 111, 110, 8, 17, 67, 2, 32, 0, 4, 110, 116, 105, 8, 2, 17, 67, 17, 65, 29, 14, 128, 132, 132, 3, 113,
-			47, 37, 0, 110, 116, 105, 8, 2, 21, 21, 14, 128, 132, 132, 0, 4, 105, 109, 2, 25, 3, 114, 0, 105, 110, 2, 25, 0, 4, 105,
-			110, 1, 104, 99, 2, 32, 3, 114, 134, 0, 105, 110, 1, 116, 17, 67, 2, 32, 0, 4, 117, 2, 108, 32, 3, 127, 0, 117, 2, 114,
-			101, 32, 0, 7, 6, 98, 0, 1, 109, 111, 2, 32, 3, 0, 4, 97, 99, 107, 3, 21, 0, 101, 8, 2, 18, 80, 17, 65, 0, 111,
-			97, 114, 100, 0, 111, 120, 2, 32, 0, 117, 103, 103, 0, 4, 3, 71, 0, 98, 0, 7, 6, 99, 0, 4, 1, 97, 98, 97, 116, 2,
-			32, 3, 0, 4, 1, 97, 109, 111, 116, 2, 32, 3, 0, 4, 1, 110, 97, 17, 67, 2, 32, 3, 0, 4, 1, 110, 111, 17, 67, 2,
-			32, 3, 0, 4, 1, 114, 97, 2, 116, 105, 3, 0, 4, 1, 114, 101, 108, 99, 2, 32, 3, 0, 4, 1, 115, 2, 17, 71, 3, 0,
-			4, 1, 117, 111, 104, 99, 116, 2, 32, 3, 0, 1, 120, 2, 17, 71, 3, 0, 4, 104, 1, 110, 2, 32, 3, 21, 0, 104, 2, 109,
-			101, 110, 116, 0, 117, 116, 2, 32, 0, 4, 3, 49, 0, 8, 110, 111, 100, 2, 32, 0, 99, 0, 99, 104, 0, 104, 1, 97, 2, 32,
-			0, 104, 1, 101, 2, 32, 0, 104, 1, 105, 110, 2, 32, 0, 104, 1, 105, 110, 97, 109, 2, 195, 169, 0, 104, 1, 111, 116, 105, 109,
-			2, 111, 0, 104, 1, 114, 111, 2, 101, 115, 17, 67, 0, 104, 1, 114, 111, 2, 105, 17, 67, 0, 104, 2, 108, 0, 104, 2, 110, 0,
-			104, 2, 114, 0, 104, 2, 115, 0, 104, 2, 116, 111, 0, 104, 8, 2, 97, 111, 0, 104, 8, 2, 97, 114, 105, 115, 109, 0, 104, 8,
-			2, 105, 114, 111, 112, 0, 104, 8, 2, 111, 114, 17, 65, 0, 104, 8, 17, 65, 2, 111, 32, 0, 104, 8, 117, 101, 2, 97, 114, 105,
-			0, 107, 0, 113, 0, 113, 117, 0, 104, 114, 111, 110, 111, 8, 2, 21, 14, 128, 132, 134, 3, 49, 34, 39, 50, 39, 0, 4, 97, 115,
-			116, 2, 32, 14, 128, 128, 132, 3, 49, 35, 89, 47, 0, 97, 115, 116, 115, 2, 32, 14, 128, 128, 133, 0, 108, 111, 119, 110, 8, 3,
-			49, 55, 40, 50, 0, 99, 2, 17, 71, 3, 49, 89, 0, 104, 1, 105, 119, 3, 76, 0, 4, 1, 101, 115, 2, 111, 110, 100, 3, 81,
-			0, 1, 110, 105, 122, 2, 32, 0, 4, 2, 17, 71, 3, 89, 0, 39, 8, 2, 14, 128, 140, 130, 0, 4, 8, 2, 100, 3, 89, 36,
-			0, 111, 101, 8, 2, 108, 97, 0, 121, 98, 101, 114, 8, 2, 14, 128, 132, 133, 3, 89, 37, 71, 112, 34, 0, 105, 101, 110, 116, 2,
-			32, 3, 89, 37, 140, 0, 4, 105, 101, 110, 116, 1, 105, 102, 102, 101, 3, 89, 57, 113, 0, 105, 101, 110, 116, 1, 105, 102, 169, 195,
-			100, 0, 4, 104, 3, 91, 0, 104, 8, 2, 111, 114, 105, 122, 0, 104, 8, 2, 111, 114, 111, 0, 7, 6, 100, 0, 4, 1, 105, 111,
-			2, 32, 3, 0, 4, 1, 110, 97, 2, 32, 3, 0, 4, 1, 110, 111, 17, 67, 2, 32, 3, 0, 4, 1, 114, 2, 32, 3, 0, 4,
-			1, 117, 111, 2, 32, 3, 0, 8, 105, 110, 2, 32, 3, 0, 4, 97, 121, 2, 32, 3, 21, 0, 101, 118, 105, 99, 8, 0, 108, 101,
-			2, 29, 0, 116, 2, 32, 3, 47, 0, 4, 3, 72, 0, 1, 114, 111, 108, 2, 32, 0, 8, 110, 97, 98, 2, 32, 0, 8, 110, 97,
-			108, 2, 32, 0, 8, 110, 97, 115, 2, 32, 0, 8, 110, 97, 116, 115, 2, 32, 0, 8, 114, 97, 104, 2, 32, 0, 39, 8, 2, 14,
-			128, 132, 130, 0, 100, 0, 4, 105, 101, 110, 1, 169, 195, 112, 120, 101, 32, 26, 2, 116, 32, 3, 72, 37, 0, 105, 101, 110, 2, 116,
-			32, 0, 4, 105, 101, 110, 8, 169, 195, 112, 120, 101, 2, 116, 32, 3, 72, 57, 113, 0, 105, 101, 110, 8, 169, 195, 114, 103, 110, 105,
-			2, 116, 32, 0, 101, 110, 100, 114, 111, 8, 2, 21, 14, 128, 132, 134, 3, 72, 114, 72, 34, 39, 0, 4, 1, 110, 101, 17, 67, 2,
-			32, 3, 140, 0, 1, 110, 101, 117, 113, 2, 32, 0, 1, 110, 111, 99, 2, 32, 0, 8, 110, 97, 114, 103, 2, 32, 0, 7, 6, 101,
-			0, 4, 1, 17, 65, 2, 114, 17, 65, 3, 0, 4, 1, 17, 67, 2, 45, 3, 0, 4, 1, 18, 73, 21, 2, 17, 67, 17, 65, 3,
-			0, 4, 1, 18, 73, 21, 2, 18, 71, 3, 0, 4, 1, 99, 45, 2, 32, 3, 0, 4, 1, 103, 2, 17, 65, 3, 0, 4, 1, 105,
-			2, 109, 17, 65, 3, 0, 4, 1, 106, 45, 2, 32, 3, 0, 4, 2, 32, 3, 0, 4, 2, 111, 105, 3, 0, 4, 110, 1, 108, 111,
-			26, 2, 116, 32, 3, 0, 4, 110, 1, 118, 117, 111, 99, 32, 26, 2, 116, 32, 3, 0, 110, 1, 118, 117, 111, 99, 32, 115, 2, 116,
-			32, 3, 0, 195, 175, 2, 25, 3, 6, 112, 57, 0, 4, 3, 13, 0, 1, 17, 67, 21, 2, 17, 67, 101, 17, 67, 17, 65, 0, 1,
-			18, 71, 21, 2, 17, 67, 17, 65, 0, 1, 18, 71, 21, 2, 18, 71, 0, 1, 18, 72, 21, 2, 17, 67, 17, 65, 0, 1, 18, 72,
-			21, 2, 18, 71, 0, 1, 18, 73, 21, 2, 17, 67, 18, 75, 17, 67, 0, 1, 18, 73, 21, 2, 18, 71, 18, 75, 17, 67, 0, 1,
-			100, 2, 115, 115, 117, 115, 32, 0, 1, 114, 116, 2, 17, 67, 17, 65, 0, 1, 114, 116, 2, 17, 67, 104, 17, 65, 0, 1, 117, 103,
-			18, 74, 21, 2, 17, 67, 17, 65, 0, 1, 117, 103, 18, 74, 21, 2, 18, 71, 0, 1, 117, 113, 18, 74, 21, 2, 17, 67, 17, 65,
-			0, 1, 117, 113, 18, 74, 21, 2, 18, 71, 0, 2, 17, 67, 108, 0, 2, 17, 67, 114, 0, 8, 100, 2, 99, 104, 0, 8, 108, 2,
-			17, 67, 17, 65, 0, 8, 108, 2, 17, 67, 104, 17, 65, 0, 8, 108, 2, 17, 67, 108, 17, 65, 0, 8, 114, 2, 99, 104, 0, 8,
-			114, 2, 115, 115, 0, 8, 114, 2, 115, 116, 114, 97, 0, 8, 114, 2, 115, 116, 114, 111, 0, 8, 114, 2, 115, 116, 114, 117, 0, 8,
-			17, 67, 2, 32, 3, 14, 0, 4, 8, 2, 17, 67, 101, 29, 3, 21, 0, 97, 0, 100, 2, 32, 0, 101, 0, 102, 111, 114, 101, 2,
-			32, 0, 105, 110, 103, 2, 32, 0, 105, 118, 101, 0, 108, 2, 17, 67, 29, 0, 110, 104, 97, 110, 8, 0, 110, 116, 101, 114, 8, 2,
-			32, 0, 115, 115, 2, 32, 0, 115, 116, 1, 117, 113, 2, 32, 0, 115, 116, 101, 1, 117, 113, 2, 29, 32, 0, 118, 101, 110, 2, 32,
-			0, 118, 101, 114, 1, 17, 67, 111, 0, 118, 101, 114, 8, 0, 119, 2, 12, 12, 0, 121, 101, 8, 0, 4, 109, 1, 21, 2, 109, 101,
-			3, 35, 0, 109, 1, 108, 2, 110, 0, 109, 8, 102, 2, 109, 101, 0, 4, 2, 114, 105, 32, 12, 12, 3, 36, 0, 2, 114, 105, 97,
-			32, 12, 12, 0, 2, 114, 111, 32, 12, 12, 0, 8, 2, 17, 67, 11, 0, 8, 2, 17, 67, 17, 65, 0, 8, 2, 17, 67, 17, 65,
-			24, 0, 8, 2, 18, 71, 17, 65, 0, 8, 109, 2, 103, 97, 0, 8, 114, 2, 115, 115, 117, 0, 8, 116, 114, 97, 2, 12, 12, 0,
-			100, 1, 105, 112, 2, 32, 0, 102, 8, 108, 99, 2, 32, 0, 114, 2, 32, 0, 114, 2, 115, 32, 0, 115, 1, 109, 17, 65, 2, 100,
-			17, 65, 0, 115, 1, 109, 17, 65, 2, 110, 17, 65, 0, 115, 8, 100, 2, 98, 17, 65, 0, 115, 8, 100, 2, 106, 17, 65, 0, 115,
-			8, 100, 2, 110, 17, 65, 0, 115, 8, 100, 2, 113, 17, 65, 0, 115, 8, 108, 2, 113, 17, 65, 0, 115, 8, 109, 2, 100, 17, 65,
-			0, 115, 8, 109, 2, 110, 17, 65, 0, 115, 104, 1, 100, 2, 17, 65, 3, 36, 88, 0, 114, 1, 119, 101, 105, 2, 29, 3, 36, 120,
-			0, 122, 2, 32, 3, 36, 143, 0, 97, 117, 2, 12, 12, 3, 39, 0, 4, 117, 1, 103, 2, 114, 101, 3, 111, 0, 117, 8, 2, 115,
-			115, 0, 195, 187, 8, 0, 117, 116, 8, 2, 32, 3, 111, 140, 0, 4, 1, 104, 103, 2, 116, 17, 65, 29, 3, 112, 0, 1, 105, 2,
-			114, 116, 32, 0, 1, 112, 97, 99, 2, 108, 97, 32, 0, 2, 17, 67, 17, 67, 0, 2, 17, 67, 32, 0, 2, 99, 116, 12, 12, 12,
-			12, 12, 0, 2, 105, 108, 0, 2, 114, 17, 67, 0, 2, 114, 114, 12, 12, 12, 0, 2, 120, 12, 12, 12, 12, 12, 0, 8, 17, 67,
-			101, 2, 17, 67, 17, 65, 12, 12, 0, 98, 1, 102, 2, 118, 17, 65, 0, 99, 116, 1, 112, 2, 32, 0, 105, 0, 108, 2, 108, 0,
-			109, 2, 109, 97, 0, 110, 1, 105, 17, 67, 2, 110, 17, 65, 0, 110, 2, 110, 17, 65, 0, 116, 1, 107, 99, 105, 116, 2, 32, 0,
-			121, 2, 17, 67, 0, 121, 2, 32, 0, 4, 114, 1, 107, 99, 111, 2, 25, 3, 112, 34, 0, 114, 1, 110, 105, 97, 116, 2, 29, 0,
-			114, 1, 116, 115, 17, 67, 2, 29, 0, 114, 8, 17, 67, 2, 32, 0, 114, 8, 104, 17, 67, 2, 32, 0, 114, 8, 105, 102, 2, 32,
-			0, 114, 8, 105, 104, 2, 32, 0, 114, 8, 105, 116, 2, 32, 0, 114, 8, 116, 114, 97, 99, 2, 29, 0, 114, 8, 118, 105, 104, 2,
-			29, 0, 114, 8, 118, 110, 101, 2, 32, 0, 4, 116, 1, 103, 100, 2, 32, 3, 112, 47, 0, 116, 1, 107, 2, 32, 0, 99, 116, 2,
-			32, 3, 112, 49, 47, 0, 4, 120, 116, 114, 97, 8, 2, 17, 67, 14, 128, 132, 133, 3, 112, 49, 89, 47, 34, 35, 0, 120, 116, 114,
-			97, 8, 2, 117, 14, 128, 132, 133, 0, 4, 105, 110, 8, 2, 25, 3, 112, 50, 0, 110, 1, 17, 67, 2, 32, 0, 110, 1, 17, 67,
-			2, 116, 111, 32, 0, 110, 8, 121, 2, 32, 0, 110, 115, 1, 112, 115, 2, 32, 3, 112, 50, 89, 0, 108, 2, 115, 29, 3, 112, 55,
-			0, 121, 3, 112, 57, 0, 109, 110, 1, 108, 105, 3, 112, 65, 0, 115, 116, 1, 45, 2, 32, 3, 112, 89, 47, 0, 116, 1, 109, 2,
-			32, 3, 112, 140, 0, 4, 109, 2, 18, 76, 3, 113, 0, 109, 2, 109, 17, 65, 17, 67, 17, 65, 17, 67, 0, 109, 2, 109, 17, 65,
-			17, 67, 17, 67, 0, 109, 2, 109, 97, 105, 0, 110, 1, 17, 67, 2, 100, 32, 0, 110, 1, 17, 67, 111, 17, 67, 109, 105, 2, 116,
-			32, 0, 110, 1, 17, 67, 111, 17, 67, 110, 105, 2, 116, 32, 0, 110, 1, 17, 67, 169, 195, 2, 116, 32, 0, 110, 1, 17, 67, 169,
-			195, 2, 116, 32, 0, 110, 1, 99, 97, 106, 2, 116, 32, 0, 110, 1, 99, 99, 2, 116, 32, 0, 110, 1, 99, 105, 116, 169, 195, 2,
-			116, 32, 0, 110, 1, 99, 115, 17, 65, 2, 116, 32, 0, 110, 1, 100, 105, 17, 67, 169, 195, 2, 116, 32, 0, 110, 1, 100, 105, 99,
-			17, 67, 17, 65, 29, 2, 116, 32, 0, 110, 1, 100, 105, 114, 116, 29, 2, 116, 32, 0, 110, 1, 100, 117, 17, 67, 2, 116, 32, 0,
-			110, 1, 103, 110, 105, 21, 21, 2, 116, 32, 0, 110, 1, 103, 114, 101, 118, 2, 116, 32, 0, 110, 1, 105, 17, 67, 2, 99, 0, 110,
-			1, 105, 116, 97, 112, 0, 110, 1, 108, 97, 118, 105, 2, 116, 32, 0, 110, 1, 108, 108, 101, 99, 120, 2, 116, 32, 0, 110, 1, 108,
-			111, 2, 116, 32, 0, 110, 1, 108, 117, 2, 116, 32, 0, 110, 1, 109, 97, 17, 67, 105, 2, 116, 32, 0, 110, 1, 109, 97, 109, 114,
-			2, 116, 32, 0, 110, 1, 109, 101, 2, 116, 32, 0, 110, 1, 109, 103, 2, 116, 32, 0, 110, 1, 109, 105, 17, 67, 17, 67, 17, 65,
-			17, 67, 2, 116, 32, 0, 110, 1, 109, 105, 97, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 97, 17, 67, 2, 116, 32, 0, 110, 1,
-			109, 105, 100, 2, 116, 32, 0, 110, 1, 109, 105, 103, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 108, 17, 65, 2, 116, 32, 0, 110,
-			1, 109, 105, 108, 112, 2, 116, 32, 0, 110, 1, 109, 105, 110, 97, 109, 2, 116, 32, 0, 110, 1, 109, 105, 110, 105, 2, 116, 32, 0,
-			110, 1, 109, 105, 110, 111, 2, 116, 32, 0, 110, 1, 109, 105, 115, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 116, 17, 65, 2, 116,
-			32, 0, 110, 1, 109, 109, 2, 116, 32, 0, 110, 1, 109, 111, 109, 2, 116, 32, 0, 110, 1, 109, 114, 101, 2, 116, 32, 0, 110, 1,
-			109, 114, 117, 111, 116, 2, 116, 32, 0, 110, 1, 109, 117, 17, 67, 111, 2, 116, 32, 0, 110, 1, 109, 117, 100, 2, 116, 32, 0, 110,
-			1, 109, 117, 103, 2, 116, 32, 0, 110, 1, 109, 117, 106, 2, 116, 32, 0, 110, 1, 109, 117, 114, 2, 116, 32, 0, 110, 1, 110, 97,
-			109, 2, 116, 32, 0, 110, 1, 110, 105, 109, 109, 105, 2, 116, 32, 0, 110, 1, 110, 105, 109, 169, 195, 111, 2, 116, 32, 0, 110, 1,
-			110, 105, 116, 110, 111, 2, 116, 32, 0, 110, 1, 110, 105, 116, 114, 101, 2, 116, 32, 0, 110, 1, 112, 114, 17, 65, 29, 2, 116, 32,
-			0, 110, 1, 114, 97, 112, 115, 2, 116, 32, 0, 110, 1, 114, 114, 17, 65, 17, 67, 2, 116, 32, 0, 110, 1, 116, 105, 110, 169, 195,
-			2, 116, 32, 0, 110, 1, 116, 116, 105, 109, 2, 116, 32, 0, 110, 1, 117, 108, 102, 17, 67, 2, 116, 32, 0, 110, 1, 117, 113, 2,
-			100, 32, 0, 110, 1, 117, 113, 169, 195, 2, 116, 32, 0, 110, 2, 17, 67, 17, 65, 0, 110, 2, 17, 67, 17, 67, 0, 110, 2, 110,
-			117, 0, 110, 2, 115, 32, 0, 110, 8, 17, 67, 2, 116, 32, 0, 110, 8, 100, 114, 97, 2, 116, 32, 0, 110, 8, 103, 97, 2, 116,
-			32, 0, 110, 8, 103, 114, 97, 2, 116, 32, 0, 110, 8, 103, 114, 101, 115, 2, 116, 32, 0, 110, 8, 103, 114, 117, 2, 116, 32, 0,
-			110, 8, 108, 97, 116, 2, 116, 32, 0, 110, 8, 108, 111, 100, 2, 116, 32, 0, 110, 8, 109, 105, 99, 2, 116, 32, 0, 110, 8, 109,
-			105, 112, 2, 116, 32, 0, 110, 8, 109, 114, 17, 65, 115, 2, 116, 32, 0, 110, 8, 110, 105, 109, 169, 195, 2, 116, 32, 0, 110, 8,
-			114, 97, 112, 2, 116, 32, 0, 110, 8, 114, 97, 112, 112, 97, 2, 116, 32, 0, 110, 8, 114, 97, 118, 2, 116, 32, 0, 110, 8, 114,
-			111, 108, 102, 2, 116, 32, 0, 110, 8, 114, 117, 97, 108, 2, 116, 32, 0, 110, 8, 116, 97, 108, 2, 116, 32, 0, 110, 8, 116, 97,
-			112, 2, 116, 32, 0, 110, 8, 116, 110, 111, 99, 2, 116, 32, 0, 110, 8, 116, 110, 111, 99, 169, 195, 109, 2, 116, 32, 0, 110, 8,
-			118, 117, 111, 99, 2, 116, 14, 128, 160, 131, 0, 110, 8, 118, 117, 111, 115, 2, 116, 32, 0, 110, 115, 1, 99, 110, 2, 32, 0, 4,
-			110, 2, 104, 17, 65, 3, 113, 50, 0, 110, 8, 2, 17, 65, 0, 110, 2, 32, 3, 113, 134, 0, 4, 110, 116, 1, 103, 105, 100, 110,
-			2, 32, 3, 113, 140, 0, 110, 116, 1, 103, 105, 108, 105, 2, 32, 0, 110, 116, 1, 103, 105, 108, 108, 2, 32, 0, 110, 116, 1, 103,
-			110, 97, 116, 2, 32, 0, 110, 115, 1, 17, 67, 169, 195, 2, 32, 3, 113, 143, 0, 4, 105, 110, 2, 25, 3, 114, 0, 110, 1, 17,
-			65, 17, 65, 2, 32, 0, 110, 1, 100, 111, 2, 100, 114, 0, 110, 1, 105, 17, 67, 2, 25, 0, 110, 1, 109, 97, 120, 2, 32, 0,
-			110, 1, 112, 112, 97, 2, 100, 105, 0, 110, 1, 169, 195, 2, 32, 0, 110, 8, 17, 67, 2, 106, 0, 110, 8, 109, 97, 108, 102, 2,
-			99, 0, 105, 110, 1, 108, 112, 2, 32, 3, 114, 134, 0, 4, 1, 104, 99, 116, 2, 114, 29, 3, 117, 0, 1, 116, 114, 101, 118, 2,
-			114, 29, 0, 117, 1, 103, 0, 117, 2, 17, 67, 29, 0, 117, 2, 17, 67, 101, 29, 0, 117, 2, 105, 0, 117, 2, 108, 101, 29, 0,
-			117, 2, 114, 17, 67, 0, 117, 2, 114, 101, 29, 0, 117, 2, 114, 114, 101, 29, 0, 4, 114, 1, 107, 99, 97, 2, 25, 3, 117, 34,
-			0, 114, 1, 107, 99, 111, 114, 2, 25, 0, 114, 8, 116, 116, 117, 99, 2, 29, 0, 97, 109, 1, 114, 17, 67, 3, 125, 12, 65, 0,
-			97, 110, 101, 114, 1, 108, 17, 67, 3, 125, 50, 117, 34, 0, 97, 109, 101, 114, 1, 114, 17, 67, 3, 125, 65, 117, 34, 0, 4, 117,
-			3, 132, 0, 117, 2, 17, 67, 101, 29, 0, 117, 2, 17, 67, 101, 114, 32, 0, 117, 2, 108, 101, 114, 0, 195, 187, 3, 132, 12, 0,
-			117, 116, 2, 32, 3, 132, 140, 0, 117, 120, 2, 32, 3, 132, 143, 0, 4, 110, 116, 1, 17, 65, 2, 32, 3, 140, 0, 110, 116, 1,
-			100, 105, 17, 67, 169, 195, 26, 2, 32, 0, 110, 116, 1, 103, 105, 2, 32, 0, 110, 116, 1, 103, 114, 101, 118, 26, 2, 32, 0, 110,
-			116, 1, 103, 114, 117, 32, 26, 2, 32, 0, 110, 116, 1, 108, 97, 118, 105, 26, 2, 32, 0, 110, 116, 1, 108, 108, 101, 99, 120, 26,
-			2, 32, 0, 110, 116, 1, 108, 111, 29, 2, 32, 0, 110, 116, 1, 108, 117, 26, 2, 32, 0, 110, 116, 1, 108, 117, 99, 17, 67, 2,
-			32, 0, 110, 116, 1, 108, 117, 101, 2, 32, 0, 110, 116, 1, 109, 114, 101, 102, 26, 2, 32, 0, 110, 116, 1, 114, 97, 112, 32, 26,
-			2, 32, 0, 110, 116, 1, 114, 114, 101, 17, 67, 2, 32, 0, 110, 116, 1, 117, 108, 102, 17, 67, 26, 2, 32, 0, 110, 116, 2, 32,
-			0, 110, 116, 8, 116, 110, 111, 99, 26, 2, 32, 0, 115, 2, 32, 3, 143, 0, 7, 6, 102, 0, 4, 2, 102, 3, 0, 8, 114, 101,
-			110, 2, 29, 3, 0, 4, 105, 114, 101, 8, 2, 17, 67, 17, 65, 3, 21, 0, 105, 114, 101, 8, 2, 17, 67, 17, 67, 17, 65, 0,
-			108, 121, 0, 114, 97, 109, 101, 8, 0, 116, 101, 114, 2, 32, 0, 3, 83, 0, 4, 8, 117, 101, 110, 2, 32, 97, 110, 115, 3, 84,
-			0, 8, 117, 101, 110, 2, 32, 104, 101, 117, 114, 101, 115, 0, 7, 6, 103, 0, 4, 1, 110, 97, 116, 169, 195, 2, 32, 3, 0, 4,
-			1, 114, 117, 111, 98, 2, 32, 3, 0, 4, 8, 110, 97, 114, 2, 32, 3, 0, 4, 8, 110, 97, 115, 2, 32, 3, 0, 4, 8, 110,
-			111, 108, 2, 32, 3, 0, 4, 116, 1, 110, 105, 118, 2, 32, 117, 110, 3, 0, 116, 2, 32, 3, 0, 4, 97, 109, 101, 8, 2, 29,
-			3, 21, 0, 104, 2, 25, 0, 105, 114, 108, 0, 121, 1, 21, 2, 32, 0, 4, 116, 1, 110, 17, 65, 2, 17, 65, 3, 47, 0, 116,
-			1, 110, 105, 118, 2, 32, 17, 65, 0, 116, 1, 110, 105, 118, 2, 32, 99, 105, 110, 113, 0, 116, 1, 110, 105, 118, 2, 32, 100, 101,
-			117, 120, 0, 116, 1, 110, 105, 118, 2, 32, 104, 117, 105, 116, 0, 116, 1, 110, 105, 118, 2, 32, 110, 101, 117, 102, 0, 116, 1, 110,
-			105, 118, 2, 32, 110, 101, 117, 118, 105, 0, 116, 1, 110, 105, 118, 2, 32, 113, 117, 97, 116, 114, 0, 116, 1, 110, 105, 118, 2, 32,
-			115, 101, 112, 116, 0, 116, 1, 110, 105, 118, 2, 32, 115, 105, 120, 0, 116, 1, 110, 105, 118, 2, 32, 116, 114, 111, 105, 115, 0, 110,
-			2, 105, 101, 3, 50, 0, 110, 3, 50, 57, 0, 110, 2, 101, 17, 67, 17, 65, 3, 50, 57, 14, 0, 4, 110, 2, 32, 3, 67, 0,
-			110, 2, 101, 32, 0, 110, 105, 1, 105, 97, 0, 110, 105, 3, 67, 37, 0, 4, 3, 81, 0, 1, 97, 105, 100, 2, 110, 111, 0, 2,
-			17, 67, 0, 2, 32, 0, 8, 97, 2, 110, 111, 0, 103, 0, 117, 2, 105, 0, 110, 101, 114, 8, 97, 119, 2, 32, 3, 81, 50, 112,
-			34, 0, 103, 1, 117, 115, 2, 17, 71, 3, 81, 90, 0, 4, 117, 105, 1, 105, 97, 2, 108, 3, 81, 111, 37, 0, 117, 105, 1, 110,
-			105, 2, 115, 0, 4, 2, 17, 71, 3, 90, 0, 101, 2, 97, 0, 101, 2, 111, 0, 116, 115, 8, 110, 105, 118, 101, 114, 116, 97, 117,
-			113, 2, 32, 3, 143, 0, 7, 6, 104, 0, 4, 3, 0, 4, 8, 2, 97, 98, 105, 3, 0, 4, 8, 2, 97, 108, 108, 111, 3, 0,
-			4, 8, 2, 97, 109, 101, 3, 0, 4, 8, 2, 97, 110, 100, 114, 3, 0, 4, 8, 2, 97, 114, 109, 3, 0, 4, 8, 2, 101, 99,
-			116, 3, 0, 4, 8, 2, 101, 108, 3, 0, 4, 8, 2, 101, 114, 98, 3, 0, 4, 8, 2, 101, 117, 114, 101, 3, 0, 4, 8, 2,
-			105, 98, 101, 114, 3, 0, 4, 8, 2, 105, 112, 112, 111, 3, 0, 4, 8, 2, 105, 114, 111, 3, 0, 4, 8, 2, 105, 115, 116, 3,
-			0, 4, 8, 2, 105, 118, 3, 0, 4, 8, 2, 111, 109, 109, 3, 0, 4, 8, 2, 111, 110, 110, 3, 0, 4, 8, 2, 111, 114, 97,
-			3, 0, 4, 8, 2, 111, 114, 105, 112, 3, 0, 4, 8, 2, 111, 114, 105, 122, 3, 0, 4, 8, 2, 111, 114, 108, 111, 3, 0, 4,
-			8, 2, 111, 114, 111, 3, 0, 4, 8, 2, 111, 114, 114, 3, 0, 4, 8, 2, 111, 115, 3, 0, 4, 8, 2, 117, 105, 108, 3, 0,
-			4, 8, 2, 117, 105, 115, 115, 3, 0, 4, 8, 2, 117, 105, 116, 114, 3, 0, 4, 8, 2, 117, 109, 17, 65, 3, 0, 4, 8, 2,
-			117, 109, 17, 67, 3, 0, 4, 8, 2, 121, 3, 0, 4, 8, 2, 195, 169, 3, 0, 8, 2, 195, 180, 3, 0, 4, 97, 8, 2, 17,
-			67, 32, 3, 21, 0, 97, 108, 102, 8, 0, 110, 0, 4, 8, 3, 23, 0, 8, 2, 195, 169, 114, 105, 115, 0, 8, 2, 195, 169, 114,
-			111, 0, 105, 8, 2, 17, 65, 3, 23, 57, 0, 101, 105, 109, 2, 32, 3, 35, 57, 65, 0, 121, 112, 114, 97, 8, 2, 21, 14, 128,
-			132, 133, 3, 37, 48, 34, 35, 0, 4, 121, 112, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 37, 48, 112, 34, 0, 121, 112, 101, 114,
-			8, 2, 32, 0, 97, 117, 115, 2, 32, 3, 39, 89, 0, 121, 8, 2, 17, 65, 3, 57, 0, 7, 6, 105, 0, 4, 1, 102, 32, 109,
-			97, 114, 2, 108, 101, 3, 21, 0, 2, 112, 17, 65, 100, 0, 98, 117, 116, 101, 114, 2, 29, 0, 101, 118, 0, 102, 101, 2, 32, 0,
-			103, 110, 2, 32, 0, 108, 108, 1, 17, 67, 2, 121, 32, 0, 108, 108, 2, 32, 0, 110, 100, 1, 17, 67, 17, 65, 2, 101, 114, 29,
-			0, 110, 100, 2, 29, 0, 110, 100, 8, 17, 67, 2, 101, 114, 29, 0, 110, 103, 2, 32, 0, 114, 100, 1, 17, 67, 2, 29, 0, 114,
-			116, 1, 17, 67, 2, 32, 0, 118, 101, 110, 2, 32, 0, 122, 101, 2, 25, 0, 4, 1, 108, 102, 102, 111, 2, 110, 101, 32, 3, 35,
-			57, 0, 1, 108, 110, 111, 2, 110, 101, 32, 0, 1, 108, 116, 111, 2, 110, 101, 29, 0, 1, 114, 100, 2, 118, 101, 0, 1, 116, 103,
-			2, 109, 0, 8, 2, 99, 101, 21, 0, 4, 3, 37, 0, 1, 17, 67, 2, 101, 114, 17, 65, 0, 101, 110, 1, 17, 67, 2, 116, 32,
-			0, 101, 110, 1, 118, 169, 195, 100, 2, 116, 32, 0, 108, 8, 2, 108, 0, 110, 2, 110, 0, 115, 1, 17, 67, 2, 32, 0, 110, 2,
-			104, 3, 37, 50, 0, 110, 116, 1, 114, 112, 2, 32, 3, 37, 50, 47, 0, 110, 103, 2, 104, 3, 37, 50, 81, 0, 4, 108, 108, 1,
-			99, 2, 105, 3, 37, 55, 0, 108, 108, 1, 99, 115, 111, 0, 108, 108, 1, 116, 115, 105, 100, 0, 108, 108, 1, 117, 113, 110, 97, 0,
-			108, 108, 1, 118, 2, 101, 32, 0, 108, 108, 8, 18, 70, 0, 4, 108, 108, 1, 17, 67, 3, 37, 57, 0, 108, 108, 1, 117, 103, 0,
-			108, 108, 1, 117, 103, 105, 97, 0, 108, 108, 1, 117, 113, 0, 109, 2, 32, 3, 37, 65, 0, 109, 109, 3, 37, 65, 65, 0, 110, 103,
-			2, 115, 3, 37, 68, 0, 4, 108, 115, 1, 102, 32, 18, 66, 2, 32, 3, 37, 89, 0, 115, 1, 114, 105, 25, 2, 32, 0, 115, 1,
-			114, 111, 98, 2, 32, 0, 115, 1, 114, 111, 100, 2, 32, 0, 115, 1, 114, 111, 116, 2, 32, 0, 4, 101, 110, 1, 108, 99, 2, 17,
-			67, 3, 37, 113, 0, 101, 110, 1, 114, 111, 2, 116, 0, 4, 108, 1, 97, 2, 32, 3, 57, 0, 108, 1, 101, 2, 32, 0, 108, 1,
-			117, 2, 32, 0, 108, 108, 1, 17, 65, 0, 4, 101, 110, 1, 108, 111, 109, 2, 17, 67, 3, 57, 113, 0, 101, 110, 1, 110, 169, 195,
-			118, 2, 17, 67, 0, 101, 110, 1, 112, 105, 99, 2, 17, 67, 0, 101, 110, 1, 116, 97, 2, 116, 32, 0, 101, 110, 1, 116, 111, 2,
-			116, 32, 0, 4, 101, 110, 1, 116, 2, 25, 32, 3, 57, 114, 0, 101, 110, 1, 118, 2, 25, 32, 0, 4, 109, 2, 17, 67, 3, 114,
-			0, 110, 2, 17, 67, 0, 110, 2, 32, 0, 110, 99, 116, 2, 32, 0, 4, 110, 116, 101, 114, 8, 2, 32, 3, 114, 47, 6, 112, 34,
-			0, 110, 116, 101, 114, 8, 2, 110, 101, 32, 0, 4, 110, 116, 114, 97, 8, 2, 110, 101, 14, 128, 132, 133, 3, 114, 47, 34, 35, 0,
-			110, 116, 114, 97, 8, 2, 117, 14, 128, 132, 133, 0, 4, 110, 116, 101, 114, 8, 2, 21, 21, 14, 128, 132, 133, 3, 114, 47, 112, 34,
-			0, 110, 116, 101, 114, 114, 8, 2, 17, 65, 0, 110, 102, 114, 97, 8, 2, 115, 14, 128, 132, 133, 3, 114, 83, 34, 35, 0, 114, 116,
-			1, 108, 102, 3, 117, 34, 47, 0, 7, 6, 106, 0, 4, 8, 2, 111, 98, 25, 3, 75, 0, 8, 2, 111, 104, 25, 0, 97, 122, 122,
-			8, 3, 75, 35, 88, 0, 4, 3, 90, 0, 39, 8, 2, 14, 128, 140, 130, 0, 101, 2, 97, 0, 117, 115, 113, 117, 39, 8, 2, 14,
-			128, 132, 134, 3, 90, 111, 89, 49, 0, 7, 6, 107, 0, 4, 1, 17, 67, 17, 65, 2, 29, 3, 21, 0, 101, 2, 32, 0, 101, 2,
-			110, 29, 0, 101, 2, 114, 29, 0, 101, 2, 115, 32, 0, 3, 49, 0, 7, 6, 108, 0, 4, 1, 105, 17, 67, 117, 2, 32, 3, 0,
-			4, 1, 105, 116, 110, 2, 32, 3, 0, 116, 1, 117, 97, 3, 0, 4, 1, 17, 67, 11, 2, 101, 29, 3, 21, 0, 1, 17, 67, 17,
-			65, 2, 29, 0, 100, 1, 111, 2, 32, 0, 100, 1, 117, 2, 32, 0, 101, 115, 115, 2, 32, 0, 105, 110, 101, 8, 2, 29, 0, 105,
-			118, 101, 8, 0, 111, 117, 100, 1, 21, 2, 32, 0, 4, 3, 55, 0, 1, 102, 102, 2, 101, 29, 0, 1, 112, 112, 2, 101, 29, 0,
-			39, 8, 2, 14, 128, 132, 130, 0, 108, 2, 17, 65, 0, 111, 114, 115, 113, 117, 39, 8, 2, 14, 128, 132, 135, 3, 55, 39, 34, 89,
-			49, 0, 4, 104, 1, 105, 116, 110, 3, 57, 0, 108, 1, 105, 117, 0, 7, 6, 109, 0, 4, 2, 110, 32, 3, 21, 0, 97, 105, 108,
-			1, 100, 0, 97, 105, 108, 1, 101, 0, 97, 105, 108, 1, 103, 0, 97, 105, 108, 1, 116, 0, 111, 118, 2, 17, 65, 29, 0, 111, 118,
-			2, 105, 101, 32, 0, 4, 3, 65, 0, 39, 8, 2, 14, 128, 140, 130, 0, 109, 0, 99, 8, 2, 21, 14, 128, 132, 130, 3, 65, 35,
-			49, 0, 97, 115, 116, 101, 114, 2, 32, 14, 128, 128, 134, 3, 65, 35, 89, 47, 117, 34, 0, 115, 8, 2, 14, 128, 132, 130, 3, 112,
-			65, 112, 89, 0, 7, 6, 110, 0, 4, 2, 101, 109, 101, 32, 3, 21, 0, 2, 101, 109, 101, 115, 32, 0, 97, 109, 101, 8, 0, 97,
-			109, 101, 8, 101, 114, 0, 4, 3, 50, 0, 39, 8, 2, 14, 128, 140, 130, 0, 110, 0, 103, 104, 3, 50, 81, 0, 8, 2, 32, 194,
-			176, 3, 50, 111, 65, 36, 34, 39, 0, 101, 114, 8, 17, 67, 17, 65, 119, 2, 32, 3, 50, 112, 34, 0, 101, 117, 114, 111, 8, 2,
-			21, 21, 14, 128, 132, 133, 3, 50, 132, 34, 39, 0, 103, 2, 32, 3, 68, 0, 118, 100, 97, 8, 2, 14, 128, 132, 132, 3, 112, 50,
-			84, 36, 72, 36, 35, 0, 7, 6, 111, 0, 4, 2, 108, 100, 101, 114, 32, 3, 21, 0, 8, 2, 114, 100, 101, 114, 32, 0, 97, 2,
-			17, 67, 101, 114, 29, 0, 97, 2, 29, 0, 97, 99, 104, 0, 101, 115, 0, 102, 8, 2, 29, 0, 105, 110, 103, 1, 17, 67, 2, 32,
-			0, 110, 1, 116, 103, 2, 32, 0, 110, 1, 116, 115, 17, 67, 2, 32, 0, 110, 101, 8, 0, 111, 2, 17, 67, 101, 0, 111, 2, 29,
-			0, 111, 2, 107, 0, 111, 2, 115, 116, 0, 111, 116, 1, 17, 67, 0, 116, 8, 17, 67, 115, 0, 117, 100, 1, 17, 67, 29, 2, 29,
-			0, 117, 100, 1, 108, 2, 29, 0, 117, 110, 2, 17, 67, 0, 118, 101, 114, 8, 0, 119, 2, 29, 0, 119, 2, 101, 0, 121, 8, 17,
-			67, 2, 29, 0, 117, 8, 2, 97, 116, 3, 23, 40, 0, 110, 8, 2, 122, 3, 23, 116, 0, 101, 8, 104, 112, 2, 17, 67, 3, 36,
-			0, 4, 1, 17, 67, 2, 109, 101, 32, 3, 39, 0, 2, 32, 0, 2, 101, 17, 67, 0, 2, 115, 17, 65, 0, 2, 116, 32, 0, 2,
-			122, 17, 65, 0, 99, 1, 114, 98, 2, 32, 0, 99, 1, 114, 99, 2, 32, 0, 105, 8, 2, 103, 110, 111, 110, 0, 111, 1, 122, 0,
-			112, 8, 108, 97, 103, 2, 32, 0, 112, 8, 114, 105, 115, 2, 32, 0, 115, 1, 32, 115, 2, 32, 0, 115, 1, 32, 120, 2, 32, 0,
-			115, 8, 118, 2, 103, 17, 71, 0, 115, 116, 1, 118, 2, 32, 0, 4, 97, 2, 32, 3, 39, 35, 0, 97, 2, 115, 32, 0, 111, 1,
-			122, 2, 17, 67, 3, 39, 39, 0, 115, 115, 1, 114, 103, 3, 39, 89, 0, 4, 111, 1, 122, 2, 109, 3, 40, 0, 117, 0, 117, 101,
-			2, 109, 17, 65, 0, 117, 112, 8, 17, 67, 2, 32, 0, 195, 185, 0, 195, 187, 0, 117, 2, 105, 110, 3, 58, 0, 4, 101, 2, 108,
-			108, 17, 65, 3, 58, 35, 0, 105, 0, 121, 0, 195, 170, 2, 108, 0, 121, 2, 17, 65, 3, 58, 35, 57, 0, 4, 105, 110, 2, 17,
-			67, 3, 58, 114, 0, 105, 110, 2, 32, 0, 4, 109, 1, 110, 2, 29, 3, 116, 0, 109, 2, 18, 76, 0, 110, 2, 25, 0, 110, 8,
-			99, 2, 32, 0, 110, 116, 8, 109, 2, 109, 0, 110, 116, 8, 109, 2, 112, 17, 65, 17, 67, 0, 110, 116, 8, 109, 2, 114, 17, 65,
-			97, 108, 0, 110, 115, 104, 2, 17, 65, 3, 116, 88, 0, 110, 8, 17, 67, 2, 32, 3, 116, 134, 0, 110, 2, 116, 32, 3, 116, 140,
-			0, 4, 101, 2, 105, 3, 117, 0, 101, 8, 104, 112, 2, 110, 32, 0, 101, 117, 0, 4, 3, 127, 0, 2, 17, 67, 17, 67, 0, 8,
-			17, 67, 2, 109, 101, 32, 0, 8, 121, 2, 121, 0, 110, 2, 110, 0, 111, 1, 99, 108, 97, 2, 108, 0, 121, 8, 99, 2, 111, 3,
-			127, 37, 0, 110, 104, 2, 17, 65, 3, 127, 50, 0, 121, 8, 98, 2, 99, 111, 3, 127, 57, 0, 109, 2, 32, 3, 127, 65, 0, 115,
-			8, 2, 32, 12, 12, 3, 127, 89, 0, 4, 101, 8, 2, 17, 67, 3, 132, 0, 101, 117, 100, 0, 101, 117, 102, 115, 2, 32, 0, 101,
-			117, 2, 120, 3, 132, 143, 0, 7, 6, 112, 0, 4, 1, 97, 98, 2, 116, 3, 0, 4, 1, 97, 114, 100, 2, 32, 3, 0, 4, 1,
-			108, 117, 99, 115, 2, 116, 3, 0, 4, 1, 109, 97, 99, 2, 32, 3, 0, 4, 1, 109, 97, 104, 99, 2, 32, 3, 0, 4, 1, 109,
-			111, 99, 2, 116, 3, 0, 4, 2, 112, 3, 0, 4, 115, 1, 109, 2, 32, 3, 0, 4, 115, 1, 114, 2, 32, 3, 0, 116, 1, 17,
-			67, 2, 32, 3, 0, 4, 97, 100, 2, 32, 3, 21, 0, 108, 117, 103, 0, 114, 105, 110, 116, 101, 114, 2, 32, 0, 4, 116, 1, 101,
-			115, 2, 32, 3, 47, 0, 116, 1, 101, 115, 2, 105, 195, 168, 0, 3, 48, 0, 97, 114, 97, 8, 2, 112, 17, 67, 14, 128, 132, 132,
-			3, 48, 35, 34, 35, 0, 111, 108, 121, 8, 2, 21, 14, 128, 132, 132, 3, 48, 39, 55, 37, 0, 4, 111, 115, 116, 8, 2, 17, 65,
-			17, 67, 17, 67, 14, 128, 132, 132, 3, 48, 39, 89, 47, 0, 111, 115, 116, 8, 2, 17, 67, 14, 128, 132, 132, 0, 115, 121, 99, 104,
-			8, 2, 21, 14, 128, 132, 133, 3, 48, 89, 37, 49, 0, 4, 115, 121, 99, 104, 8, 2, 17, 65, 17, 65, 32, 14, 128, 132, 133, 3,
-			48, 89, 37, 91, 0, 115, 121, 99, 104, 8, 2, 105, 17, 67, 14, 128, 132, 133, 0, 115, 101, 117, 100, 111, 8, 2, 21, 14, 128, 132,
-			134, 3, 48, 89, 132, 72, 39, 0, 117, 105, 115, 113, 117, 39, 8, 2, 14, 128, 132, 135, 3, 48, 111, 37, 89, 49, 0, 97, 121, 115,
-			3, 48, 112, 37, 143, 0, 104, 3, 83, 0, 104, 111, 116, 111, 8, 2, 21, 14, 128, 132, 133, 3, 83, 39, 47, 39, 0, 7, 6, 113,
-			0, 4, 1, 110, 2, 32, 99, 101, 110, 116, 32, 3, 0, 1, 110, 2, 32, 109, 105, 108, 108, 3, 0, 117, 105, 99, 107, 3, 21, 0,
-			4, 3, 49, 0, 1, 110, 2, 32, 0, 117, 0, 117, 39, 8, 2, 17, 65, 14, 128, 132, 131, 0, 117, 101, 8, 2, 32, 3, 49, 13,
-			0, 117, 97, 8, 2, 100, 114, 105, 108, 108, 3, 49, 35, 0, 117, 8, 97, 2, 105, 102, 3, 49, 40, 0, 4, 117, 97, 1, 169, 195,
-			100, 3, 49, 58, 35, 0, 117, 97, 8, 2, 100, 0, 117, 97, 8, 2, 114, 116, 122, 0, 117, 97, 8, 2, 116, 17, 65, 0, 117, 97,
-			8, 17, 65, 0, 117, 97, 8, 17, 67, 0, 117, 97, 8, 97, 0, 117, 97, 110, 8, 2, 116, 17, 65, 3, 49, 58, 113, 0, 4, 117,
-			105, 8, 17, 65, 2, 100, 105, 115, 116, 3, 49, 111, 37, 0, 117, 105, 8, 17, 65, 2, 108, 97, 116, 0, 7, 6, 114, 0, 4, 2,
-			17, 67, 121, 32, 3, 21, 0, 101, 97, 108, 8, 0, 115, 116, 2, 32, 0, 117, 108, 101, 8, 0, 4, 3, 34, 0, 114, 0, 114, 1,
-			117, 111, 99, 2, 105, 0, 114, 1, 117, 111, 99, 2, 111, 0, 4, 114, 1, 117, 111, 99, 3, 34, 34, 0, 114, 1, 117, 111, 109, 0,
-			114, 8, 117, 115, 0, 97, 100, 105, 111, 8, 2, 21, 14, 128, 132, 133, 3, 34, 35, 72, 37, 39, 0, 7, 6, 115, 0, 4, 1, 117,
-			17, 67, 2, 32, 3, 0, 4, 1, 117, 99, 111, 100, 2, 32, 3, 0, 4, 1, 117, 99, 169, 195, 2, 32, 3, 0, 4, 1, 117, 103,
-			105, 2, 32, 3, 0, 4, 1, 117, 109, 169, 195, 2, 32, 3, 0, 4, 1, 117, 110, 101, 2, 32, 3, 0, 4, 1, 117, 114, 97, 2,
-			32, 3, 0, 4, 1, 117, 114, 117, 111, 2, 32, 3, 0, 4, 1, 117, 116, 105, 97, 2, 32, 3, 0, 4, 8, 117, 98, 17, 65, 2,
-			32, 3, 0, 4, 8, 117, 109, 2, 32, 3, 0, 4, 8, 117, 111, 116, 2, 32, 17, 67, 101, 115, 32, 3, 0, 4, 8, 117, 111, 116,
-			2, 32, 17, 67, 111, 115, 32, 3, 0, 8, 117, 111, 116, 2, 32, 108, 101, 117, 114, 115, 32, 3, 0, 4, 8, 17, 65, 2, 32, 3,
-			21, 0, 101, 110, 100, 2, 32, 0, 101, 114, 118, 101, 114, 8, 2, 29, 0, 104, 2, 17, 65, 112, 0, 104, 2, 17, 65, 116, 0, 104,
-			2, 32, 0, 105, 100, 101, 1, 18, 79, 2, 29, 12, 12, 12, 0, 105, 100, 101, 8, 2, 29, 12, 12, 12, 0, 107, 121, 8, 0, 109,
-			105, 108, 8, 0, 111, 110, 1, 18, 78, 2, 32, 0, 112, 121, 0, 116, 111, 110, 1, 18, 78, 2, 32, 0, 116, 111, 110, 101, 2, 32,
-			0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 0, 1, 98, 117, 2, 105, 115, 0, 1, 110, 97, 114, 116, 2, 17, 65, 0, 2, 98, 0,
-			2, 100, 0, 2, 103, 0, 2, 106, 0, 2, 118, 0, 8, 108, 97, 2, 97, 99, 0, 104, 1, 169, 195, 100, 2, 17, 65, 0, 4, 3,
-			89, 0, 1, 17, 65, 2, 111, 102, 116, 0, 1, 17, 65, 2, 111, 108, 32, 0, 1, 97, 107, 97, 2, 32, 0, 1, 97, 115, 110, 97,
-			107, 2, 32, 0, 1, 105, 97, 2, 101, 109, 0, 1, 110, 97, 114, 116, 2, 101, 0, 1, 110, 97, 114, 116, 2, 117, 98, 0, 1, 111,
-			114, 116, 97, 98, 2, 32, 0, 1, 111, 114, 169, 195, 99, 111, 2, 32, 0, 1, 117, 98, 17, 65, 2, 32, 0, 1, 117, 98, 109, 2,
-			32, 0, 1, 117, 99, 17, 65, 2, 32, 0, 1, 117, 100, 111, 2, 32, 0, 1, 117, 103, 2, 32, 0, 1, 117, 105, 2, 32, 0, 1,
-			117, 108, 117, 17, 67, 2, 32, 0, 1, 117, 108, 121, 2, 32, 0, 1, 117, 109, 2, 32, 0, 1, 117, 110, 17, 65, 2, 32, 0, 1,
-			117, 112, 111, 2, 32, 0, 1, 117, 114, 17, 65, 2, 32, 0, 1, 117, 115, 97, 2, 32, 0, 1, 117, 115, 112, 2, 32, 0, 1, 117,
-			115, 115, 101, 99, 2, 32, 0, 1, 117, 116, 97, 2, 32, 0, 1, 117, 116, 99, 2, 32, 0, 1, 117, 116, 101, 2, 32, 0, 1, 117,
-			116, 105, 2, 32, 0, 1, 117, 116, 108, 2, 32, 0, 1, 117, 116, 111, 2, 32, 0, 1, 117, 116, 117, 17, 67, 2, 32, 0, 1, 117,
-			175, 195, 2, 32, 0, 1, 168, 195, 17, 67, 97, 2, 32, 0, 1, 168, 195, 110, 2, 32, 0, 8, 117, 2, 32, 0, 8, 117, 111, 116,
-			2, 32, 0, 8, 117, 111, 116, 2, 32, 100, 101, 115, 32, 0, 8, 117, 112, 17, 67, 17, 65, 99, 2, 32, 0, 39, 8, 2, 14, 128,
-			140, 130, 0, 39, 8, 2, 101, 115, 29, 14, 128, 140, 130, 0, 115, 0, 195, 167, 0, 99, 105, 101, 110, 2, 116, 3, 89, 37, 113, 0,
-			111, 99, 105, 111, 8, 2, 21, 14, 128, 132, 133, 3, 89, 39, 89, 37, 39, 0, 4, 99, 104, 2, 105, 101, 3, 89, 49, 0, 99, 104,
-			2, 105, 122, 0, 99, 104, 2, 111, 108, 0, 99, 104, 2, 111, 111, 0, 117, 112, 114, 97, 8, 2, 21, 14, 128, 132, 133, 3, 89, 111,
-			48, 34, 35, 0, 4, 117, 112, 101, 114, 8, 2, 21, 21, 14, 128, 132, 133, 3, 89, 111, 48, 112, 34, 0, 117, 112, 101, 114, 8, 2,
-			32, 0, 4, 99, 104, 3, 91, 0, 104, 0, 99, 104, 117, 3, 91, 40, 0, 116, 101, 105, 110, 2, 32, 3, 91, 47, 35, 57, 50, 0,
-			113, 108, 2, 32, 14, 128, 128, 131, 3, 112, 89, 49, 111, 112, 55, 0, 4, 1, 117, 108, 112, 2, 32, 3, 143, 0, 2, 32, 14, 128,
-			128, 129, 0, 7, 6, 116, 0, 4, 1, 108, 117, 97, 2, 32, 3, 0, 4, 1, 110, 2, 32, 3, 0, 4, 1, 114, 2, 32, 3, 0,
-			4, 2, 32, 3, 0, 104, 1, 115, 2, 109, 3, 0, 4, 1, 105, 2, 117, 110, 101, 29, 3, 21, 0, 1, 114, 97, 17, 67, 115, 2,
-			32, 0, 1, 114, 97, 17, 67, 115, 2, 101, 114, 32, 0, 104, 2, 17, 65, 0, 104, 2, 25, 0, 105, 109, 101, 8, 0, 108, 101, 2,
-			32, 0, 111, 110, 1, 103, 2, 32, 0, 111, 111, 0, 114, 121, 2, 32, 0, 116, 108, 0, 117, 110, 8, 2, 17, 65, 29, 0, 4, 3,
-			47, 0, 1, 17, 67, 2, 32, 0, 1, 26, 2, 105, 111, 110, 0, 1, 99, 101, 26, 2, 105, 111, 110, 0, 1, 101, 17, 67, 2, 105,
-			111, 110, 115, 0, 1, 101, 104, 99, 97, 2, 105, 111, 110, 0, 1, 105, 17, 67, 169, 195, 2, 105, 111, 110, 115, 0, 1, 105, 97, 2,
-			105, 111, 110, 0, 1, 105, 98, 97, 104, 2, 105, 111, 110, 115, 0, 1, 105, 99, 2, 105, 111, 110, 115, 0, 1, 105, 107, 2, 32, 0,
-			1, 105, 109, 105, 2, 105, 111, 110, 115, 0, 1, 105, 110, 97, 114, 103, 2, 32, 0, 1, 105, 111, 2, 105, 111, 110, 0, 1, 105, 115,
-			105, 17, 67, 2, 105, 111, 110, 0, 1, 110, 97, 2, 105, 97, 0, 1, 110, 97, 104, 99, 2, 105, 111, 110, 0, 1, 110, 101, 115, 2,
-			105, 111, 110, 32, 0, 1, 112, 101, 26, 2, 105, 111, 110, 0, 1, 112, 109, 111, 99, 2, 105, 111, 110, 115, 0, 1, 114, 111, 112, 17,
-			65, 2, 105, 111, 110, 0, 1, 114, 111, 112, 17, 67, 2, 105, 111, 110, 0, 1, 114, 111, 115, 2, 105, 111, 110, 0, 1, 115, 2, 105,
-			111, 110, 0, 1, 116, 2, 105, 111, 110, 0, 1, 117, 17, 65, 26, 2, 105, 111, 110, 0, 1, 169, 195, 26, 2, 105, 111, 110, 0, 1,
-			170, 195, 114, 2, 105, 111, 110, 0, 8, 0, 8, 17, 65, 115, 110, 97, 114, 116, 2, 32, 0, 8, 97, 116, 2, 105, 111, 110, 0, 8,
-			101, 99, 2, 32, 0, 39, 8, 2, 14, 128, 140, 130, 0, 104, 0, 104, 1, 114, 111, 2, 12, 12, 0, 104, 2, 17, 65, 114, 17, 65,
-			12, 12, 0, 104, 2, 18, 77, 12, 12, 0, 104, 2, 111, 17, 67, 17, 65, 0, 104, 8, 2, 101, 114, 109, 0, 116, 0, 8, 2, 32,
-			3, 47, 36, 0, 4, 101, 108, 101, 8, 3, 47, 36, 55, 36, 0, 195, 169, 108, 195, 169, 8, 2, 21, 14, 128, 132, 132, 0, 104, 101,
-			114, 109, 111, 8, 2, 21, 14, 128, 132, 134, 3, 47, 112, 34, 65, 39, 0, 4, 1, 17, 67, 2, 105, 101, 117, 3, 89, 0, 1, 97,
-			2, 105, 97, 0, 1, 97, 2, 105, 101, 110, 0, 1, 97, 109, 17, 65, 2, 105, 101, 29, 0, 1, 97, 114, 99, 2, 105, 101, 29, 0,
-			1, 99, 110, 17, 65, 17, 67, 2, 105, 111, 110, 0, 1, 105, 2, 105, 101, 110, 0, 1, 105, 110, 105, 2, 105, 17, 65, 0, 1, 105,
-			115, 2, 105, 111, 110, 0, 1, 105, 116, 169, 195, 2, 105, 111, 110, 0, 1, 110, 97, 2, 105, 97, 116, 0, 1, 110, 101, 2, 105, 97,
-			0, 1, 111, 2, 105, 101, 110, 0, 1, 112, 2, 105, 97, 0, 1, 114, 2, 105, 97, 0, 1, 114, 97, 109, 2, 105, 101, 110, 0, 1,
-			114, 101, 110, 2, 105, 101, 0, 1, 114, 111, 112, 111, 2, 105, 111, 110, 0, 1, 117, 98, 108, 2, 105, 17, 65, 0, 1, 117, 108, 2,
-			105, 111, 110, 0, 1, 117, 110, 2, 105, 101, 29, 0, 1, 169, 195, 109, 97, 2, 105, 101, 29, 0, 1, 169, 195, 112, 105, 2, 105, 101,
-			29, 0, 2, 105, 17, 65, 109, 0, 2, 105, 101, 108, 0, 2, 105, 101, 117, 0, 2, 105, 111, 32, 0, 2, 105, 111, 110, 0, 4, 105,
-			101, 110, 1, 105, 110, 2, 116, 32, 3, 89, 37, 0, 105, 101, 110, 1, 117, 98, 2, 116, 32, 0, 4, 1, 17, 65, 2, 45, 3, 140,
-			0, 1, 45, 2, 45, 0, 1, 105, 17, 67, 26, 2, 32, 0, 1, 105, 116, 101, 112, 2, 32, 0, 1, 110, 26, 2, 32, 0, 1, 105,
-			117, 104, 2, 32, 3, 141, 0, 115, 2, 32, 14, 128, 128, 129, 3, 143, 0, 7, 6, 117, 0, 1, 103, 2, 17, 65, 3, 0, 4, 1,
-			114, 2, 110, 29, 3, 21, 0, 97, 108, 1, 18, 68, 2, 32, 0, 99, 104, 2, 32, 0, 105, 1, 17, 67, 2, 99, 101, 0, 108, 116,
-			1, 17, 67, 2, 32, 0, 109, 98, 101, 114, 2, 32, 0, 109, 112, 2, 32, 0, 110, 8, 17, 67, 2, 32, 0, 110, 8, 17, 67, 2,
-			110, 121, 0, 110, 99, 104, 0, 110, 100, 101, 114, 0, 112, 2, 32, 0, 112, 8, 2, 17, 67, 0, 114, 110, 2, 29, 0, 115, 105, 8,
-			98, 0, 115, 116, 2, 32, 0, 122, 122, 0, 4, 1, 103, 2, 97, 121, 3, 40, 0, 1, 107, 175, 195, 97, 104, 2, 29, 0, 1, 112,
-			2, 116, 115, 99, 104, 0, 99, 99, 105, 1, 17, 67, 3, 40, 76, 37, 0, 4, 97, 1, 103, 2, 108, 32, 3, 58, 35, 0, 97, 1,
-			103, 97, 2, 29, 0, 97, 1, 103, 105, 116, 17, 67, 2, 32, 0, 97, 8, 103, 0, 4, 3, 111, 0, 1, 103, 2, 195, 171, 0, 1,
-			103, 2, 195, 175, 0, 108, 8, 99, 2, 32, 0, 110, 2, 110, 0, 120, 1, 108, 102, 2, 32, 0, 105, 3, 111, 37, 0, 121, 2, 17,
-			65, 3, 111, 37, 57, 0, 108, 116, 114, 97, 8, 2, 14, 128, 132, 133, 3, 111, 55, 47, 34, 35, 0, 105, 110, 2, 25, 3, 111, 114,
-			0, 4, 109, 1, 102, 2, 32, 3, 115, 0, 109, 2, 18, 76, 0, 110, 1, 17, 67, 17, 67, 2, 32, 0, 110, 2, 17, 67, 0, 110,
-			8, 104, 2, 32, 0, 110, 116, 1, 114, 112, 2, 32, 0, 4, 110, 1, 99, 117, 2, 32, 3, 115, 134, 0, 110, 2, 32, 0, 4, 1,
-			17, 67, 2, 98, 29, 3, 117, 0, 1, 17, 67, 2, 103, 29, 0, 8, 17, 67, 2, 114, 102, 29, 0, 8, 108, 98, 2, 102, 102, 0,
-			8, 110, 2, 114, 115, 101, 0, 8, 115, 2, 114, 102, 101, 29, 0, 101, 2, 105, 108, 0, 122, 2, 122, 0, 109, 2, 32, 3, 127, 65,
-			0, 7, 6, 118, 0, 4, 111, 105, 99, 101, 2, 29, 3, 21, 0, 111, 105, 100, 2, 32, 0, 121, 2, 32, 0, 3, 84, 0, 105, 101,
-			119, 2, 29, 3, 84, 57, 40, 0, 105, 101, 119, 8, 2, 17, 65, 3, 84, 57, 40, 84, 0, 101, 114, 115, 2, 32, 3, 84, 112, 34,
-			143, 0, 101, 114, 1, 105, 114, 100, 2, 29, 3, 84, 117, 34, 0, 7, 6, 119, 0, 4, 8, 2, 17, 65, 17, 67, 3, 21, 0, 8,
-			2, 17, 65, 105, 0, 97, 114, 0, 97, 118, 0, 97, 121, 0, 101, 8, 0, 104, 0, 110, 1, 17, 65, 0, 111, 114, 0, 114, 0, 8,
-			2, 17, 65, 3, 23, 58, 0, 4, 3, 58, 0, 8, 2, 17, 65, 17, 67, 111, 0, 8, 2, 17, 65, 116, 116, 0, 8, 2, 105, 110,
-			97, 0, 2, 97, 103, 12, 12, 3, 84, 0, 7, 6, 120, 0, 4, 1, 105, 97, 2, 32, 3, 0, 4, 1, 105, 111, 2, 32, 3, 0,
-			4, 1, 105, 114, 2, 32, 3, 0, 8, 117, 97, 2, 113, 117, 101, 108, 3, 0, 109, 108, 2, 32, 14, 128, 128, 131, 3, 23, 37, 49,
-			89, 112, 65, 112, 55, 0, 8, 2, 17, 67, 14, 128, 132, 129, 3, 37, 49, 89, 0, 4, 3, 49, 89, 0, 1, 101, 18, 68, 2, 17,
-			65, 0, 120, 0, 4, 1, 101, 2, 17, 65, 3, 81, 88, 0, 8, 2, 17, 65, 0, 8, 101, 2, 104, 0, 8, 101, 110, 105, 2, 17,
-			65, 0, 4, 1, 105, 100, 2, 105, 195, 168, 3, 88, 0, 1, 105, 115, 2, 105, 195, 168, 0, 1, 117, 101, 100, 2, 105, 195, 168, 0,
-			8, 105, 100, 2, 32, 110, 101, 117, 102, 0, 4, 8, 105, 111, 115, 2, 17, 65, 3, 89, 0, 8, 105, 115, 2, 32, 110, 101, 117, 0,
-			1, 117, 17, 65, 2, 32, 3, 143, 0, 4, 8, 105, 100, 2, 32, 3, 144, 0, 8, 105, 115, 2, 32, 0, 7, 6, 121, 0, 4, 1,
-			17, 67, 2, 101, 32, 3, 21, 0, 1, 17, 67, 11, 2, 32, 0, 1, 17, 67, 17, 65, 2, 32, 0, 1, 17, 67, 101, 17, 67, 21,
-			2, 32, 0, 1, 17, 67, 110, 2, 32, 0, 97, 99, 104, 116, 8, 0, 122, 101, 0, 8, 2, 17, 65, 3, 23, 57, 0, 4, 3, 37,
-			0, 1, 115, 115, 2, 32, 0, 2, 110, 110, 0, 115, 1, 29, 2, 32, 3, 37, 89, 0, 8, 2, 101, 117, 3, 57, 0, 97, 104, 111,
-			111, 8, 2, 14, 128, 132, 133, 3, 57, 35, 6, 40, 0, 4, 109, 2, 18, 76, 3, 114, 0, 109, 2, 32, 0, 110, 2, 25, 0, 7,
-			6, 122, 0, 3, 88, 0, 101, 114, 1, 116, 2, 32, 3, 88, 112, 34, 0, 101, 114, 1, 17, 67, 2, 32, 3, 88, 117, 34, 0, 1,
-			116, 3, 89, 0, 7, 6, 0, 194, 176, 8, 32, 110, 3, 0, 39, 2, 17, 67, 3, 21, 0, 195, 162, 3, 35, 12, 0, 195, 169, 3,
-			36, 0, 195, 182, 3, 39, 0, 195, 177, 3, 67, 0, 194, 176, 3, 72, 13, 81, 34, 36, 0, 36, 3, 72, 127, 55, 35, 34, 0, 195,
-			188, 3, 111, 0, 195, 187, 3, 111, 12, 0, 195, 170, 3, 112, 0, 58, 8, 32, 18, 81, 2, 32, 18, 82, 15, 32, 3, 117, 34, 0,
-			7, 0, 0};
-		autoFileInMemory espeakdata_dicts21 = FileInMemory_createWithData (21422, reinterpret_cast<const char *> (&espeakdata_dicts21_data), 
-			U"espeak-1.48.04-source/espeak-data/fr_dict", 
+		static unsigned char espeakdata_dicts19_data[21485] = {
+			0, 4, 0, 0, 166, 43, 0, 0, 0, 0, 0, 8, 67, 69, 82, 84, 21, 0, 10, 8, 67, 21, 81, 64, 111, 0, 76, 0, 0, 7,
+			65, 4, 35, 0, 14, 9, 5, 193, 4, 76, 36, 6, 65, 4, 35, 0, 76, 0, 13, 70, 12, 243, 150, 20, 229, 0, 49, 116, 84, 113,
+			0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 6, 195, 85, 64, 192, 17, 6, 195, 57, 50, 64, 17, 14, 67, 21, 64, 192, 112,
+			47, 89, 36, 47, 36, 34, 35, 0, 0, 0, 6, 65, 12, 89, 36, 0, 0, 15, 70, 16, 244, 16, 48, 84, 128, 72, 127, 48, 55, 112,
+			34, 0, 0, 6, 195, 69, 81, 64, 76, 12, 4, 95, 8, 1, 3, 49, 35, 34, 6, 116, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0,
+			6, 195, 76, 19, 147, 76, 0, 11, 67, 69, 82, 68, 49, 58, 37, 72, 0, 76, 0, 0, 6, 195, 64, 245, 82, 76, 14, 65, 20, 101,
+			98, 97, 121, 0, 29, 81, 98, 97, 121, 32, 6, 65, 20, 11, 13, 0, 0, 9, 67, 21, 81, 83, 111, 143, 0, 76, 0, 7, 195, 69,
+			82, 64, 32, 76, 0, 0, 7, 65, 24, 11, 112, 83, 0, 0, 0, 21, 67, 80, 245, 84, 47, 40, 55, 47, 113, 0, 82, 108, 101, 32,
+			116, 101, 109, 112, 115, 32, 22, 67, 80, 245, 84, 47, 40, 55, 65, 116, 72, 0, 82, 108, 101, 32, 109, 111, 110, 100, 101, 32, 11, 67,
+			80, 245, 84, 47, 6, 40, 140, 0, 76, 10, 199, 64, 197, 83, 36, 85, 82, 76, 76, 0, 0, 14, 69, 12, 19, 153, 60, 224, 49, 35,
+			50, 57, 127, 50, 0, 16, 65, 28, 90, 37, 81, 35, 112, 34, 47, 89, 0, 81, 104, 122, 32, 6, 65, 28, 90, 36, 0, 0, 16, 70,
+			16, 84, 142, 36, 84, 128, 72, 112, 34, 50, 57, 36, 120, 0, 0, 9, 67, 29, 147, 64, 90, 37, 65, 0, 9, 67, 28, 147, 128, 75,
+			37, 50, 0, 7, 195, 80, 243, 128, 72, 34, 0, 0, 7, 65, 32, 11, 35, 91, 0, 0, 6, 195, 80, 245, 83, 76, 0, 0, 0, 6,
+			65, 36, 11, 37, 0, 0, 8, 66, 37, 0, 37, 48, 36, 0, 10, 1, 37, 48, 40, 34, 89, 113, 0, 27, 0, 6, 195, 12, 20, 128,
+			37, 6, 195, 12, 20, 128, 72, 7, 1, 38, 36, 0, 72, 28, 0, 0, 11, 70, 56, 147, 148, 20, 225, 15, 21, 0, 10, 6, 65, 40,
+			90, 37, 0, 0, 15, 70, 77, 67, 195, 44, 84, 128, 89, 47, 39, 49, 36, 120, 0, 18, 8, 16, 15, 11, 195, 169, 13, 15, 14, 48,
+			39, 49, 36, 65, 127, 50, 0, 0, 8, 67, 76, 148, 128, 21, 0, 10, 10, 67, 16, 243, 148, 72, 116, 140, 0, 72, 14, 1, 42, 35,
+			89, 47, 36, 34, 37, 89, 49, 12, 0, 27, 0, 19, 9, 195, 169, 22, 9, 20, 9, 15, 14, 19, 36, 84, 37, 47, 57, 116, 143, 0,
+			12, 68, 52, 81, 9, 4, 65, 36, 72, 57, 35, 0, 9, 1, 43, 48, 55, 111, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 15,
+			7, 195, 169, 20, 9, 15, 14, 19, 36, 47, 57, 116, 143, 0, 0, 0, 8, 67, 25, 35, 205, 21, 0, 10, 3, 129, 47, 0, 7, 65,
+			48, 11, 112, 55, 0, 0, 23, 1, 49, 48, 34, 13, 65, 57, 112, 34, 65, 113, 0, 81, 195, 168, 114, 101, 109, 101, 110, 116, 32, 19,
+			1, 49, 48, 34, 13, 65, 57, 112, 34, 143, 0, 81, 195, 168, 114, 101, 115, 32, 17, 1, 49, 48, 34, 13, 65, 57, 112, 34, 0, 81,
+			195, 168, 114, 101, 32, 16, 1, 49, 48, 34, 13, 65, 57, 36, 143, 0, 81, 101, 114, 115, 32, 15, 1, 49, 48, 34, 13, 65, 57, 36,
+			120, 0, 81, 101, 114, 32, 16, 70, 69, 81, 76, 69, 81, 64, 49, 112, 55, 49, 8, 13, 0, 76, 0, 10, 67, 44, 20, 148, 49, 35,
+			34, 47, 0, 6, 195, 69, 81, 76, 76, 0, 7, 196, 80, 83, 12, 20, 76, 0, 7, 65, 52, 11, 112, 65, 0, 0, 9, 67, 52, 83,
+			147, 65, 113, 143, 0, 17, 66, 53, 0, 23, 112, 65, 48, 36, 47, 34, 58, 35, 0, 81, 51, 32, 0, 0, 9, 196, 48, 85, 82, 76,
+			72, 36, 40, 8, 196, 48, 85, 82, 76, 76, 34, 0, 9, 5, 95, 48, 1, 14, 4, 36, 0, 7, 65, 56, 11, 112, 50, 0, 0, 0,
+			0, 0, 14, 69, 64, 19, 1, 61, 48, 48, 35, 55, 35, 127, 89, 0, 6, 65, 60, 11, 39, 0, 0, 8, 67, 28, 20, 147, 81, 35,
+			0, 6, 195, 57, 50, 83, 17, 0, 0, 9, 133, 195, 170, 20, 5, 19, 76, 36, 0, 11, 1, 64, 24, 35, 34, 39, 71, 35, 88, 0,
+			6, 65, 64, 48, 36, 0, 0, 9, 198, 21, 84, 211, 20, 229, 0, 76, 0, 0, 0, 14, 6, 8, 195, 169, 12, 1, 19, 36, 55, 35,
+			89, 0, 76, 6, 65, 68, 49, 111, 0, 0, 0, 0, 0, 20, 5, 22, 9, 195, 170, 20, 84, 57, 112, 47, 50, 35, 65, 0, 81, 110,
+			97, 109, 32, 14, 69, 16, 80, 137, 4, 224, 72, 36, 71, 57, 35, 50, 0, 7, 65, 72, 11, 112, 34, 0, 0, 13, 70, 12, 128, 82,
+			48, 84, 192, 91, 35, 34, 55, 0, 0, 0, 0, 18, 9, 13, 15, 14, 20, 18, 195, 169, 1, 12, 65, 116, 34, 36, 35, 55, 0, 10,
+			5, 1, 15, 195, 187, 20, 40, 47, 0, 7, 65, 76, 11, 112, 89, 0, 0, 0, 7, 195, 84, 225, 64, 34, 76, 0, 0, 14, 65, 80,
+			21, 0, 10, 81, 115, 104, 105, 114, 116, 115, 32, 13, 65, 80, 21, 0, 10, 81, 115, 104, 105, 114, 116, 32, 11, 69, 5, 85, 133, 57,
+			64, 39, 84, 113, 0, 0, 5, 194, 4, 48, 17, 0, 6, 195, 12, 147, 192, 17, 0, 11, 68, 52, 145, 85, 96, 65, 37, 132, 0, 76,
+			0, 20, 73, 9, 32, 90, 104, 21, 137, 48, 193, 64, 71, 34, 35, 88, 35, 84, 37, 55, 0, 6, 65, 84, 11, 111, 0, 0, 7, 66,
+			85, 0, 21, 0, 10, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 15, 70, 44, 225, 83, 76, 85, 0, 49, 50, 36, 89, 112, 47, 0,
+			12, 66, 5, 48, 35, 47, 111, 0, 81, 116, 117, 32, 9, 66, 5, 48, 35, 143, 0, 76, 36, 7, 66, 5, 48, 35, 89, 0, 6, 195,
+			48, 244, 147, 76, 0, 0, 0, 10, 69, 28, 84, 141, 4, 224, 21, 0, 10, 11, 67, 4, 98, 78, 35, 83, 114, 0, 76, 28, 12, 65,
+			92, 72, 40, 71, 55, 13, 84, 6, 36, 0, 0, 0, 0, 0, 10, 4, 95, 49, 77, 49, 65, 37, 55, 0, 8, 65, 96, 11, 37, 49,
+			89, 0, 0, 0, 13, 67, 44, 34, 84, 49, 37, 55, 39, 71, 37, 47, 0, 0, 11, 68, 69, 80, 78, 16, 49, 113, 140, 0, 76, 0,
+			10, 69, 37, 51, 1, 56, 64, 21, 0, 10, 13, 65, 100, 23, 37, 81, 34, 6, 112, 49, 0, 14, 9, 17, 70, 69, 81, 76, 69, 81,
+			83, 49, 112, 55, 49, 8, 13, 143, 0, 76, 5, 193, 100, 76, 32, 0, 10, 67, 4, 226, 83, 35, 50, 37, 89, 0, 0, 8, 67, 100,
+			84, 192, 21, 0, 10, 9, 67, 76, 20, 192, 89, 35, 89, 0, 10, 67, 48, 244, 192, 55, 39, 89, 0, 76, 0, 10, 67, 8, 197, 77,
+			71, 55, 40, 65, 0, 7, 196, 20, 225, 137, 56, 76, 0, 7, 65, 104, 88, 112, 72, 0, 0, 7, 66, 5, 64, 21, 0, 10, 0, 0,
+			11, 68, 5, 48, 201, 36, 35, 89, 49, 37, 0, 0, 0, 0, 0, 0, 0, 16, 70, 100, 241, 207, 85, 37, 0, 23, 37, 39, 81, 40,
+			34, 47, 0, 10, 66, 12, 16, 89, 35, 0, 76, 41, 32, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 5, 80, 72, 34, 0, 11, 67,
+			52, 84, 192, 65, 123, 143, 0, 72, 34, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 7, 195, 5, 86, 0, 72, 34,
+			0, 0, 15, 66, 8, 64, 98, 111, 117, 108, 101, 118, 97, 114, 100, 0, 29, 0, 0, 0, 0, 0, 0, 6, 195, 69, 83, 201, 76, 0,
+			13, 69, 52, 147, 15, 84, 64, 65, 37, 55, 40, 72, 0, 0, 0, 0, 12, 67, 5, 98, 0, 35, 84, 4, 36, 35, 91, 0, 0, 13,
+			69, 12, 19, 131, 21, 32, 49, 113, 89, 112, 34, 0, 0, 0, 0, 10, 4, 95, 49, 67, 48, 89, 113, 140, 0, 0, 0, 7, 66, 8,
+			80, 21, 0, 10, 7, 195, 5, 97, 67, 76, 28, 0, 18, 71, 21, 52, 5, 72, 19, 148, 60, 112, 89, 48, 36, 34, 113, 47, 39, 0,
+			6, 195, 57, 66, 64, 17, 0, 0, 0, 0, 0, 11, 68, 20, 225, 133, 72, 113, 83, 112, 34, 0, 10, 2, 13, 46, 65, 13, 89, 37,
+			132, 0, 0, 0, 0, 0, 0, 0, 14, 70, 64, 128, 76, 49, 84, 192, 83, 35, 55, 111, 89, 0, 0, 9, 67, 9, 85, 0, 71, 111,
+			47, 0, 9, 67, 9, 85, 0, 71, 111, 0, 36, 0, 16, 70, 40, 83, 142, 36, 97, 82, 90, 36, 50, 37, 83, 112, 34, 0, 0, 0,
+			17, 70, 52, 20, 135, 5, 33, 84, 65, 35, 34, 81, 35, 34, 112, 47, 0, 0, 15, 71, 76, 128, 77, 64, 242, 78, 28, 91, 113, 48,
+			58, 114, 0, 0, 11, 68, 69, 80, 78, 80, 49, 113, 140, 0, 72, 0, 0, 0, 0, 7, 196, 5, 96, 78, 80, 76, 0, 0, 13, 66,
+			17, 32, 72, 39, 49, 47, 132, 34, 0, 24, 41, 0, 9, 67, 21, 84, 192, 111, 143, 0, 76, 0, 0, 0, 0, 9, 198, 64, 245, 82,
+			69, 83, 201, 76, 0, 8, 67, 48, 149, 5, 21, 0, 10, 10, 67, 8, 85, 1, 71, 36, 47, 35, 0, 0, 13, 69, 52, 22, 143, 85,
+			64, 65, 35, 88, 40, 47, 0, 13, 138, 14, 195, 169, 1, 14, 13, 15, 9, 14, 19, 76, 0, 14, 70, 52, 22, 79, 81, 65, 64, 65,
+			35, 57, 127, 47, 0, 12, 66, 4, 144, 112, 90, 0, 76, 81, 106, 101, 32, 6, 194, 4, 144, 76, 36, 6, 194, 12, 80, 76, 34, 0,
+			0, 0, 11, 69, 16, 83, 135, 84, 80, 72, 114, 81, 0, 0, 0, 7, 195, 4, 149, 0, 76, 36, 9, 134, 7, 21, 195, 168, 18, 5,
+			76, 7, 195, 12, 85, 0, 72, 34, 0, 9, 67, 4, 150, 0, 112, 49, 89, 0, 0, 0, 0, 0, 12, 68, 77, 67, 213, 80, 89, 47,
+			35, 40, 47, 0, 0, 21, 69, 12, 83, 12, 21, 48, 89, 112, 55, 15, 55, 35, 0, 32, 76, 81, 108, 195, 160, 32, 20, 69, 12, 83,
+			12, 21, 48, 89, 112, 55, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32, 8, 197, 12, 83, 12, 21, 48, 76, 0, 18, 70, 76, 51, 210,
+			9, 85, 0, 115, 99, 111, 114, 98, 117, 116, 116, 0, 29, 0, 9, 67, 13, 85, 0, 49, 117, 47, 0, 0, 12, 68, 49, 82, 71, 36,
+			55, 58, 37, 75, 37, 0, 0, 0, 8, 67, 101, 97, 83, 37, 84, 0, 0, 0, 0, 0, 0, 8, 67, 57, 83, 12, 21, 0, 10, 0,
+			0, 20, 73, 12, 243, 148, 20, 229, 9, 60, 228, 192, 49, 116, 47, 113, 47, 57, 116, 143, 0, 0, 0, 19, 71, 29, 80, 84, 20, 208,
+			76, 4, 81, 58, 35, 47, 36, 65, 35, 55, 35, 0, 0, 0, 8, 67, 76, 48, 78, 21, 0, 10, 0, 0, 0, 0, 13, 5, 4, 39,
+			5, 19, 20, 72, 6, 112, 89, 47, 0, 0, 6, 194, 16, 80, 72, 34, 0, 0, 0, 0, 0, 18, 71, 32, 19, 66, 85, 33, 197, 72,
+			23, 113, 71, 13, 34, 81, 117, 34, 0, 9, 67, 8, 149, 0, 71, 37, 47, 0, 6, 195, 52, 242, 64, 76, 6, 195, 12, 50, 64, 17,
+			0, 9, 68, 9, 34, 65, 56, 21, 0, 10, 12, 68, 80, 245, 84, 20, 47, 6, 40, 47, 0, 76, 13, 4, 95, 4, 16, 20, 84, 37,
+			34, 81, 111, 55, 0, 0, 0, 15, 70, 81, 32, 77, 92, 22, 64, 47, 34, 35, 65, 58, 137, 0, 8, 66, 21, 48, 112, 143, 0, 76,
+			9, 66, 17, 80, 72, 130, 0, 72, 34, 0, 0, 0, 0, 11, 70, 65, 35, 199, 72, 19, 64, 21, 0, 10, 0, 11, 70, 76, 19, 69,
+			80, 147, 69, 21, 0, 10, 9, 67, 21, 53, 0, 112, 140, 0, 76, 0, 0, 0, 15, 70, 8, 80, 85, 12, 245, 80, 71, 39, 49, 40,
+			139, 0, 76, 0, 0, 15, 3, 95, 35, 57, 47, 35, 71, 111, 55, 35, 89, 37, 116, 0, 12, 4, 95, 20, 12, 4, 47, 6, 37, 55,
+			72, 0, 0, 0, 0, 12, 67, 52, 228, 192, 65, 37, 50, 111, 47, 143, 0, 10, 67, 4, 197, 0, 24, 35, 55, 47, 0, 0, 12, 68,
+			32, 147, 132, 36, 23, 37, 50, 72, 37, 0, 0, 0, 7, 66, 21, 64, 36, 0, 76, 0, 0, 0, 0, 24, 74, 48, 145, 67, 33, 65,
+			78, 77, 65, 73, 56, 55, 37, 91, 47, 117, 50, 91, 47, 35, 57, 50, 0, 0, 0, 11, 4, 5, 195, 187, 20, 111, 140, 0, 76, 36,
+			0, 8, 197, 5, 85, 1, 57, 64, 76, 0, 0, 12, 67, 4, 209, 0, 35, 4, 112, 65, 72, 36, 0, 0, 17, 72, 52, 243, 148, 76,
+			84, 146, 5, 64, 65, 116, 89, 36, 34, 35, 0, 0, 0, 9, 198, 21, 84, 211, 36, 86, 128, 76, 15, 70, 4, 225, 18, 60, 145, 0,
+			113, 72, 34, 39, 37, 72, 0, 0, 0, 10, 68, 48, 245, 73, 76, 55, 58, 37, 0, 0, 13, 69, 8, 83, 9, 104, 80, 71, 36, 55,
+			37, 88, 0, 10, 69, 64, 83, 208, 48, 80, 21, 0, 10, 0, 7, 66, 21, 80, 111, 0, 76, 0, 0, 0, 0, 0, 10, 67, 21, 85,
+			0, 111, 140, 0, 76, 36, 0, 9, 67, 21, 86, 0, 132, 143, 0, 76, 0, 15, 70, 12, 245, 83, 12, 245, 83, 49, 40, 89, 49, 40,
+			89, 0, 0, 8, 67, 4, 225, 0, 21, 0, 10, 0, 0, 0, 0, 0, 0, 10, 67, 25, 81, 76, 83, 57, 40, 55, 0, 0, 12, 68,
+			12, 147, 132, 100, 89, 37, 50, 72, 37, 0, 0, 0, 16, 70, 65, 33, 77, 36, 84, 128, 48, 34, 13, 65, 57, 36, 120, 0, 0, 16,
+			67, 80, 19, 148, 47, 113, 48, 37, 0, 76, 81, 112, 105, 115, 32, 19, 67, 80, 19, 148, 47, 113, 65, 57, 132, 0, 76, 81, 109, 105,
+			101, 117, 120, 32, 10, 67, 80, 19, 148, 47, 113, 140, 0, 76, 0, 0, 0, 0, 6, 195, 5, 97, 192, 17, 0, 0, 0, 9, 198, 69,
+			83, 201, 69, 81, 64, 72, 0, 16, 7, 11, 15, 23, 5, 195, 175, 20, 49, 39, 58, 112, 57, 47, 0, 11, 67, 4, 243, 0, 35, 4,
+			39, 112, 55, 0, 0, 20, 68, 12, 83, 12, 20, 89, 112, 55, 15, 55, 35, 0, 32, 76, 81, 108, 195, 160, 32, 19, 68, 12, 83, 12,
+			20, 89, 112, 55, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32, 7, 196, 12, 83, 12, 20, 76, 0, 17, 70, 4, 195, 5, 49, 82, 65,
+			35, 55, 36, 55, 40, 37, 6, 35, 0, 0, 0, 0, 0, 0, 0, 8, 67, 32, 19, 128, 23, 113, 0, 0, 0, 11, 67, 25, 85, 0,
+			83, 111, 140, 0, 76, 36, 0, 0, 7, 195, 52, 243, 128, 72, 34, 0, 0, 0, 6, 194, 20, 128, 76, 28, 7, 66, 16, 160, 21, 0,
+			10, 0, 6, 195, 64, 20, 128, 76, 12, 67, 60, 52, 128, 39, 89, 4, 36, 112, 34, 0, 0, 0, 15, 69, 44, 192, 88, 60, 224, 49,
+			55, 35, 49, 89, 127, 50, 0, 0, 0, 0, 8, 196, 20, 195, 5, 76, 76, 32, 0, 18, 3, 226, 132, 162, 65, 35, 34, 49, 72, 13,
+			83, 35, 71, 34, 37, 49, 0, 0, 0, 18, 71, 24, 83, 4, 77, 0, 84, 32, 83, 112, 55, 72, 89, 48, 35, 47, 0, 0, 0, 12,
+			69, 8, 22, 69, 85, 128, 71, 35, 57, 132, 0, 0, 0, 0, 12, 68, 44, 83, 153, 4, 49, 36, 50, 57, 35, 0, 9, 68, 64, 245,
+			76, 76, 48, 40, 0, 10, 67, 16, 19, 147, 72, 113, 143, 0, 76, 22, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 116, 134, 0, 76,
+			81, 113, 117, 39, 111, 110, 32, 26, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 112, 55, 143, 0, 76, 81, 113, 117, 39, 101, 108, 108,
+			101, 115, 32, 24, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 112, 55, 0, 76, 81, 113, 117, 39, 101, 108, 108, 101, 32, 24, 68, 64,
+			20, 131, 20, 48, 35, 34, 89, 49, 37, 55, 143, 0, 76, 81, 113, 117, 39, 105, 108, 115, 32, 22, 68, 64, 20, 131, 20, 48, 35, 34,
+			89, 49, 37, 55, 0, 76, 81, 113, 117, 39, 105, 108, 32, 19, 68, 64, 20, 131, 20, 48, 35, 34, 89, 49, 13, 0, 76, 81, 113, 117,
+			101, 32, 0, 0, 9, 198, 64, 245, 82, 80, 19, 148, 76, 17, 66, 12, 208, 99, 101, 110, 116, 105, 109, 195, 168, 116, 114, 101, 0, 29,
+			0, 12, 67, 16, 149, 152, 72, 37, 84, 37, 49, 89, 0, 0, 0, 8, 67, 28, 85, 0, 21, 0, 10, 0, 0, 9, 67, 32, 20, 148,
+			35, 34, 47, 0, 0, 0, 0, 0, 0, 0, 13, 69, 92, 19, 12, 37, 48, 58, 35, 55, 37, 89, 0, 14, 69, 32, 84, 141, 21, 48,
+			23, 112, 34, 65, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 21, 70, 44, 212, 12, 5, 145, 82, 49, 35, 4, 112, 65, 48, 55, 112,
+			57, 6, 117, 34, 0, 0, 0, 0, 0, 12, 68, 92, 20, 137, 60, 58, 35, 34, 57, 39, 0, 0, 0, 16, 70, 4, 192, 137, 56, 244,
+			192, 35, 55, 71, 37, 50, 39, 89, 0, 6, 195, 57, 97, 1, 17, 0, 11, 3, 226, 130, 172, 13, 34, 6, 39, 0, 76, 0, 0, 10,
+			69, 60, 194, 86, 21, 32, 21, 0, 10, 0, 0, 15, 70, 80, 83, 148, 36, 243, 147, 47, 113, 47, 57, 116, 143, 0, 6, 195, 44, 65,
+			64, 17, 0, 0, 10, 69, 72, 81, 8, 5, 64, 21, 0, 10, 12, 69, 21, 84, 133, 57, 64, 111, 34, 140, 0, 76, 0, 7, 66, 32,
+			80, 21, 0, 10, 0, 0, 12, 68, 5, 37, 66, 4, 35, 34, 40, 71, 35, 0, 6, 195, 88, 84, 147, 37, 10, 67, 88, 84, 147, 84,
+			112, 34, 0, 76, 0, 14, 69, 25, 85, 21, 56, 16, 83, 40, 47, 40, 50, 35, 0, 8, 197, 12, 128, 81, 84, 80, 76, 16, 69, 20,
+			32, 196, 36, 48, 13, 71, 36, 89, 36, 72, 37, 49, 0, 0, 0, 0, 0, 13, 69, 4, 113, 78, 16, 16, 35, 90, 114, 72, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 192, 76, 12, 3, 95, 50, 49, 84, 114, 47, 36, 12, 115, 0, 0, 9, 67, 64,
+			20, 192, 48, 35, 0, 37, 11, 67, 64, 20, 192, 48, 6, 35, 143, 0, 76, 9, 3, 95, 50, 48, 84, 114, 140, 0, 0, 12, 68, 44,
+			85, 137, 56, 49, 36, 84, 37, 50, 0, 14, 3, 95, 50, 51, 84, 114, 47, 47, 34, 58, 35, 143, 0, 0, 18, 5, 19, 46, 20, 46,
+			16, 89, 37, 55, 47, 13, 12, 48, 55, 6, 112, 0, 12, 3, 95, 50, 50, 84, 114, 47, 72, 132, 143, 0, 0, 11, 70, 69, 81, 82,
+			36, 84, 192, 21, 0, 10, 12, 3, 95, 50, 53, 84, 114, 47, 89, 114, 49, 0, 0, 8, 67, 32, 148, 192, 21, 0, 10, 13, 3, 95,
+			50, 52, 84, 114, 47, 49, 35, 47, 34, 0, 0, 12, 3, 95, 50, 55, 84, 114, 47, 89, 112, 47, 0, 0, 12, 3, 95, 50, 54, 84,
+			114, 47, 89, 37, 144, 0, 0, 7, 66, 37, 64, 21, 0, 10, 13, 3, 95, 51, 49, 47, 34, 113, 47, 36, 12, 115, 0, 13, 4, 95,
+			13, 3, 14, 65, 35, 49, 34, 6, 116, 0, 0, 0, 0, 0, 6, 195, 76, 52, 201, 17, 0, 0, 10, 67, 48, 19, 211, 55, 35, 127,
+			89, 0, 0, 0, 7, 66, 16, 240, 21, 0, 10, 0, 12, 67, 20, 211, 0, 13, 4, 112, 65, 112, 55, 0, 0, 0, 9, 67, 16, 245,
+			0, 72, 127, 47, 0, 0, 0, 0, 9, 68, 64, 20, 5, 72, 21, 0, 10, 0, 0, 0, 0, 14, 6, 95, 18, 15, 13, 1, 14, 34,
+			39, 65, 6, 114, 0, 0, 0, 0, 10, 134, 5, 195, 187, 13, 5, 19, 76, 36, 10, 134, 6, 195, 187, 13, 5, 19, 76, 36, 0, 0,
+			8, 67, 20, 225, 0, 21, 0, 10, 8, 197, 16, 84, 21, 37, 48, 76, 0, 17, 66, 20, 224, 113, 15, 47, 40, 143, 0, 76, 81, 116,
+			111, 117, 115, 32, 7, 194, 20, 224, 76, 36, 40, 5, 194, 20, 224, 76, 5, 194, 20, 224, 72, 15, 3, 95, 54, 49, 89, 58, 35, 89,
+			113, 47, 36, 12, 115, 0, 0, 10, 3, 95, 51, 88, 47, 34, 113, 47, 0, 0, 11, 68, 77, 84, 200, 36, 89, 40, 91, 37, 0, 12,
+			68, 52, 19, 21, 76, 65, 35, 55, 111, 89, 0, 8, 3, 95, 48, 67, 89, 113, 0, 0, 0, 0, 0, 7, 196, 5, 52, 197, 104, 76,
+			18, 3, 16, 46, 19, 48, 127, 89, 47, 89, 49, 34, 37, 48, 47, 127, 65, 0, 0, 0, 8, 67, 52, 17, 5, 21, 0, 10, 13, 70,
+			16, 84, 211, 61, 84, 192, 72, 13, 89, 40, 0, 16, 3, 95, 55, 49, 89, 112, 48, 47, 113, 47, 36, 12, 115, 0, 102, 16, 3, 95,
+			55, 49, 89, 58, 35, 89, 113, 47, 36, 12, 116, 88, 0, 0, 0, 0, 0, 0, 10, 67, 77, 65, 64, 89, 6, 114, 47, 0, 0, 7,
+			196, 64, 20, 141, 36, 76, 0, 0, 19, 66, 48, 16, 55, 121, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 32, 6, 194, 40,
+			80, 72, 32, 10, 66, 48, 16, 55, 121, 0, 36, 40, 72, 9, 66, 48, 16, 55, 121, 0, 34, 76, 12, 3, 95, 49, 57, 72, 37, 88,
+			50, 117, 83, 0, 0, 11, 67, 5, 2, 64, 35, 48, 4, 36, 37, 0, 12, 3, 95, 49, 56, 72, 37, 88, 111, 37, 141, 0, 0, 0,
+			8, 197, 20, 224, 207, 72, 80, 76, 0, 0, 0, 0, 0, 14, 70, 80, 130, 69, 73, 38, 64, 47, 57, 112, 34, 37, 0, 12, 3, 95,
+			50, 57, 84, 114, 47, 50, 117, 83, 0, 9, 3, 95, 49, 49, 23, 116, 88, 0, 0, 12, 3, 95, 50, 56, 84, 114, 47, 111, 37, 141,
+			0, 9, 3, 95, 49, 48, 72, 37, 144, 0, 0, 10, 3, 95, 49, 51, 47, 34, 112, 88, 0, 0, 9, 3, 95, 49, 50, 72, 40, 88,
+			0, 0, 7, 195, 12, 83, 1, 76, 32, 9, 3, 95, 49, 53, 49, 114, 88, 0, 0, 12, 3, 95, 49, 52, 49, 35, 47, 127, 34, 88,
+			0, 0, 7, 196, 4, 147, 147, 36, 76, 11, 3, 95, 49, 55, 72, 37, 89, 112, 47, 0, 0, 9, 3, 95, 49, 54, 89, 112, 88, 0,
+			0, 0, 7, 195, 25, 84, 192, 76, 36, 17, 70, 52, 84, 131, 20, 65, 83, 65, 112, 34, 89, 36, 72, 112, 89, 0, 13, 3, 95, 55,
+			88, 89, 112, 48, 47, 113, 47, 0, 102, 0, 0, 0, 0, 11, 67, 21, 130, 84, 36, 81, 88, 37, 47, 0, 9, 67, 9, 84, 192, 71,
+			111, 0, 36, 9, 67, 9, 84, 192, 71, 111, 89, 0, 0, 0, 0, 10, 66, 33, 160, 23, 112, 34, 47, 89, 0, 0, 19, 71, 88, 83,
+			133, 105, 81, 76, 4, 84, 36, 50, 36, 88, 111, 112, 55, 35, 0, 0, 24, 11, 4, 195, 169, 19, 5, 18, 20, 9, 15, 14, 19, 72,
+			36, 88, 112, 34, 47, 57, 116, 143, 0, 36, 0, 0, 0, 0, 0, 10, 69, 52, 20, 16, 21, 32, 21, 0, 10, 0, 16, 70, 88, 19,
+			149, 5, 69, 64, 84, 35, 50, 40, 35, 47, 40, 0, 9, 66, 52, 16, 65, 121, 0, 72, 34, 14, 3, 95, 52, 49, 49, 35, 34, 113,
+			47, 36, 12, 115, 0, 0, 14, 67, 52, 134, 128, 65, 36, 81, 35, 112, 34, 47, 89, 0, 0, 19, 72, 24, 18, 18, 20, 226, 5, 37,
+			64, 83, 35, 34, 13, 50, 35, 57, 47, 0, 0, 9, 67, 52, 21, 0, 65, 35, 47, 0, 0, 0, 0, 0, 10, 69, 52, 18, 76, 80,
+			240, 21, 0, 10, 0, 14, 3, 95, 53, 49, 89, 114, 49, 113, 47, 36, 12, 115, 0, 0, 17, 71, 77, 2, 9, 56, 53, 5, 72, 89,
+			83, 114, 49, 47, 112, 34, 0, 0, 0, 8, 197, 80, 83, 12, 21, 48, 76, 0, 0, 0, 0, 21, 2, 50, 49, 84, 114, 47, 36, 12,
+			111, 50, 37, 112, 65, 0, 81, 195, 168, 109, 101, 32, 0, 0, 0, 8, 67, 28, 81, 75, 21, 0, 10, 0, 0, 0, 6, 195, 92, 208,
+			64, 17, 0, 13, 3, 95, 63, 63, 89, 114, 71, 6, 39, 55, 55, 0, 0, 22, 2, 51, 49, 47, 34, 113, 47, 36, 12, 111, 50, 37,
+			112, 65, 0, 81, 195, 168, 109, 101, 32, 0, 15, 70, 13, 147, 148, 32, 144, 64, 89, 37, 50, 47, 37, 35, 0, 10, 66, 53, 32, 65,
+			13, 89, 37, 132, 0, 0, 11, 3, 95, 52, 88, 49, 35, 34, 113, 47, 0, 0, 0, 17, 70, 104, 147, 66, 4, 37, 197, 88, 37, 65,
+			71, 35, 71, 58, 36, 0, 10, 67, 60, 208, 78, 39, 65, 35, 50, 0, 0, 0, 7, 195, 4, 145, 64, 76, 36, 0, 0, 14, 69, 32,
+			19, 76, 21, 64, 23, 35, 65, 55, 112, 47, 0, 23, 2, 52, 49, 49, 35, 34, 113, 47, 36, 12, 111, 50, 37, 112, 65, 0, 81, 195,
+			168, 109, 101, 32, 0, 19, 66, 48, 80, 55, 14, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 32, 7, 194, 48, 80, 36, 40,
+			72, 6, 194, 48, 80, 34, 76, 16, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 109, 101, 0, 29, 0, 6, 195, 64, 50, 64, 17,
+			14, 3, 95, 56, 48, 49, 35, 47, 34, 13, 84, 114, 143, 0, 11, 3, 95, 53, 88, 89, 114, 49, 113, 47, 0, 0, 8, 196, 12, 85,
+			20, 20, 72, 34, 0, 9, 67, 56, 21, 0, 50, 35, 47, 0, 8, 67, 48, 85, 0, 21, 0, 10, 0, 0, 8, 67, 52, 18, 64, 65,
+			112, 0, 0, 9, 68, 64, 85, 5, 72, 21, 0, 10, 15, 70, 40, 16, 203, 64, 245, 0, 75, 35, 49, 48, 127, 47, 0, 0, 8, 197,
+			69, 81, 76, 48, 80, 76, 23, 2, 53, 49, 89, 114, 49, 113, 47, 36, 12, 111, 50, 37, 112, 65, 0, 81, 195, 168, 109, 101, 32, 0,
+			16, 70, 92, 19, 21, 36, 114, 64, 58, 35, 55, 40, 37, 75, 37, 0, 14, 66, 45, 112, 107, 105, 108, 111, 119, 97, 116, 116, 0, 29,
+			15, 3, 95, 57, 49, 50, 39, 50, 113, 47, 36, 12, 115, 0, 102, 0, 16, 67, 60, 83, 64, 11, 4, 39, 11, 4, 13, 11, 6, 112,
+			65, 0, 12, 3, 95, 54, 88, 89, 58, 35, 89, 113, 47, 0, 0, 7, 196, 5, 84, 211, 36, 76, 0, 13, 69, 80, 83, 142, 37, 48,
+			47, 36, 50, 37, 89, 0, 0, 7, 131, 195, 167, 1, 76, 32, 0, 0, 11, 68, 48, 144, 153, 20, 55, 37, 71, 37, 0, 14, 70, 52,
+			243, 147, 36, 85, 82, 65, 13, 89, 57, 132, 0, 7, 195, 4, 145, 83, 76, 36, 0, 10, 67, 29, 83, 6, 81, 127, 55, 83, 0, 8,
+			197, 12, 84, 148, 21, 48, 76, 24, 2, 54, 49, 89, 58, 35, 89, 113, 47, 36, 12, 111, 50, 37, 112, 65, 0, 81, 195, 168, 109, 101,
+			32, 0, 6, 194, 36, 192, 76, 32, 0, 0, 17, 70, 72, 85, 143, 49, 97, 82, 34, 36, 84, 127, 55, 84, 112, 34, 0, 0, 17, 5,
+			19, 46, 22, 46, 16, 89, 37, 55, 84, 129, 48, 55, 6, 112, 0, 0, 0, 0, 6, 195, 52, 18, 83, 76, 0, 0, 0, 8, 67, 52,
+			18, 76, 21, 0, 10, 13, 67, 13, 68, 140, 24, 49, 116, 47, 34, 127, 55, 0, 14, 3, 95, 56, 88, 49, 35, 47, 34, 13, 84, 114,
+			12, 0, 0, 0, 10, 69, 61, 85, 16, 85, 64, 21, 0, 10, 11, 69, 12, 131, 197, 85, 32, 49, 117, 34, 0, 0, 15, 70, 76, 19,
+			83, 84, 225, 192, 89, 35, 65, 89, 40, 68, 0, 0, 0, 0, 24, 2, 56, 49, 49, 35, 47, 34, 13, 84, 114, 12, 111, 50, 37, 112,
+			65, 0, 81, 195, 168, 109, 101, 32, 0, 6, 194, 52, 80, 72, 32, 0, 9, 198, 21, 84, 211, 36, 243, 147, 76, 12, 3, 95, 57, 88,
+			50, 39, 50, 113, 47, 0, 102, 0, 0, 8, 67, 32, 245, 0, 21, 0, 10, 0, 0, 0, 0, 0, 11, 3, 95, 63, 65, 55, 6, 112,
+			47, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 70, 72, 84, 85, 36, 83, 64, 34, 36, 49, 111, 37, 57, 112, 65, 0, 0, 7,
+			66, 36, 224, 21, 0, 10, 0, 22, 67, 92, 80, 128, 119, 101, 98, 118, 105, 115, 117, 109, 0, 29, 81, 118, 105, 115, 117, 109, 32, 0,
+			0, 0, 7, 195, 77, 82, 83, 76, 36, 15, 70, 64, 130, 76, 37, 4, 192, 83, 37, 55, 37, 48, 89, 0, 0, 18, 67, 12, 85, 88,
+			89, 132, 15, 55, 35, 0, 32, 76, 81, 108, 195, 160, 32, 17, 67, 12, 85, 88, 89, 132, 15, 89, 37, 0, 32, 76, 81, 99, 105, 32,
+			6, 195, 12, 85, 88, 76, 14, 4, 95, 15, 7, 15, 39, 81, 39, 50, 6, 112, 49, 0, 0, 7, 196, 20, 229, 18, 20, 36, 7, 196,
+			20, 229, 18, 20, 76, 0, 0, 0, 0, 0, 15, 69, 5, 162, 77, 85, 64, 35, 88, 37, 65, 6, 111, 47, 0, 0, 10, 67, 76, 83,
+			147, 89, 113, 143, 0, 36, 9, 67, 76, 83, 147, 89, 113, 89, 0, 17, 70, 65, 33, 83, 69, 81, 64, 48, 34, 112, 89, 49, 8, 13,
+			0, 76, 17, 70, 65, 82, 83, 69, 81, 64, 48, 111, 37, 89, 49, 8, 13, 0, 76, 0, 11, 67, 81, 35, 208, 47, 34, 39, 139, 0,
+			76, 0, 0, 0, 6, 194, 56, 80, 72, 32, 0, 10, 67, 61, 82, 64, 23, 58, 37, 0, 76, 0, 14, 68, 80, 86, 1, 76, 47, 112,
+			49, 89, 6, 35, 89, 0, 0, 14, 69, 52, 19, 1, 92, 144, 65, 35, 55, 35, 58, 37, 0, 0, 0, 9, 67, 56, 85, 0, 50, 112,
+			47, 0, 0, 0, 15, 70, 52, 21, 20, 32, 144, 83, 65, 35, 47, 57, 35, 89, 0, 0, 0, 0, 0, 6, 195, 65, 35, 198, 24, 0,
+			7, 195, 88, 245, 83, 76, 32, 7, 195, 56, 245, 83, 76, 32, 12, 4, 95, 48, 77, 50, 65, 37, 55, 57, 116, 0, 0, 9, 67, 56,
+			243, 128, 50, 116, 0, 76, 13, 4, 95, 48, 77, 51, 65, 37, 55, 57, 35, 34, 0, 0, 0, 14, 6, 22, 195, 169, 14, 21, 19, 84,
+			36, 50, 111, 89, 0, 10, 4, 95, 48, 77, 49, 65, 37, 55, 0, 0, 12, 4, 95, 2, 18, 22, 71, 34, 6, 112, 84, 0, 0, 17,
+			67, 56, 244, 132, 50, 39, 34, 112, 89, 47, 0, 81, 101, 115, 116, 32, 18, 70, 8, 243, 212, 4, 35, 5, 98, 111, 117, 116, 97, 98,
+			108, 101, 0, 29, 0, 0, 0, 0, 6, 195, 24, 244, 128, 76, 11, 67, 85, 4, 192, 111, 48, 36, 112, 89, 0, 0, 0, 0, 8, 67,
+			28, 83, 147, 90, 113, 0, 17, 66, 65, 32, 112, 114, 111, 102, 101, 115, 115, 101, 117, 114, 0, 41, 29, 0, 0, 0, 16, 70, 64, 20,
+			148, 36, 243, 147, 48, 35, 34, 47, 57, 116, 143, 0, 14, 69, 76, 245, 137, 21, 64, 89, 39, 84, 37, 112, 47, 0, 0, 0, 0, 0,
+			0, 25, 66, 44, 208, 49, 35, 4, 112, 65, 48, 55, 112, 57, 6, 117, 34, 0, 81, 112, 108, 97, 121, 101, 114, 32, 16, 66, 44, 208,
+			107, 105, 108, 111, 109, 195, 168, 116, 114, 101, 0, 29, 0, 0, 13, 5, 20, 18, 195, 168, 19, 47, 34, 112, 143, 0, 76, 0, 10, 69,
+			16, 83, 5, 80, 80, 21, 0, 10, 0, 10, 67, 52, 20, 147, 65, 35, 34, 89, 0, 0, 17, 71, 12, 132, 137, 77, 67, 65, 76, 49,
+			34, 37, 89, 65, 35, 89, 0, 0, 0, 0, 8, 66, 61, 80, 40, 0, 72, 28, 13, 66, 69, 16, 113, 117, 101, 108, 113, 117, 101, 0,
+			29, 0, 0, 12, 68, 76, 19, 79, 4, 89, 35, 65, 39, 35, 0, 0, 0, 0, 9, 67, 61, 85, 0, 35, 40, 47, 0, 0, 0, 14,
+			69, 81, 85, 129, 49, 80, 47, 40, 84, 35, 55, 40, 0, 14, 69, 64, 20, 212, 37, 48, 48, 35, 89, 47, 37, 89, 0, 0, 0, 6,
+			195, 64, 64, 64, 17, 0, 0, 0, 0, 21, 67, 52, 16, 192, 65, 35, 49, 39, 112, 89, 37, 49, 89, 0, 82, 111, 115, 32, 120, 32,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 12, 80, 201, 76, 32, 0, 0, 14, 70, 64, 245, 82, 12, 83, 148, 48, 40, 34, 89,
+			113, 0, 5, 194, 56, 144, 72, 0, 0, 9, 68, 20, 208, 67, 76, 21, 0, 10, 0, 0, 9, 3, 195, 168, 19, 112, 89, 0, 72, 0,
+			11, 4, 4, 195, 168, 19, 72, 112, 143, 0, 72, 0, 9, 68, 69, 81, 82, 100, 21, 0, 10, 0, 0, 0, 13, 67, 36, 35, 64, 37,
+			71, 4, 36, 6, 112, 65, 0, 0, 0, 0, 22, 4, 95, 3, 9, 18, 35, 49, 89, 113, 89, 37, 34, 49, 116, 83, 55, 6, 112, 49,
+			89, 0, 0, 8, 67, 77, 83, 128, 21, 0, 10, 0, 8, 67, 20, 32, 89, 21, 0, 10, 0, 14, 69, 8, 148, 211, 5, 80, 71, 37,
+			89, 35, 6, 39, 0, 8, 197, 5, 85, 18, 21, 48, 76, 0, 0, 13, 67, 52, 34, 84, 65, 36, 81, 35, 71, 37, 47, 0, 0, 12,
+			3, 95, 194, 181, 65, 37, 49, 34, 6, 39, 0, 0, 0, 16, 70, 28, 83, 133, 76, 148, 192, 90, 36, 50, 36, 88, 37, 89, 0, 16,
+			70, 76, 243, 1, 72, 148, 192, 89, 39, 55, 35, 34, 37, 89, 0, 0, 9, 67, 52, 20, 192, 65, 35, 89, 0, 6, 195, 77, 84, 128,
+			76, 7, 195, 88, 244, 192, 72, 34, 7, 195, 56, 244, 192, 72, 34, 11, 67, 76, 84, 192, 89, 123, 143, 0, 72, 34, 11, 67, 12, 84,
+			192, 89, 36, 143, 0, 72, 34, 0, 9, 68, 100, 244, 200, 36, 21, 0, 10, 12, 68, 81, 83, 137, 76, 47, 111, 50, 37, 89, 0, 0,
+			0, 27, 70, 9, 84, 139, 36, 224, 64, 71, 40, 34, 49, 37, 50, 35, 15, 83, 35, 89, 39, 0, 81, 102, 97, 115, 111, 32, 14, 70,
+			12, 130, 69, 56, 194, 84, 91, 57, 113, 55, 37, 0, 0, 11, 4, 95, 19, 20, 11, 71, 6, 35, 34, 0, 6, 131, 95, 195, 180, 43,
+			0, 9, 68, 80, 131, 211, 20, 21, 0, 10, 0, 16, 4, 95, 1, 3, 21, 35, 49, 89, 113, 47, 112, 81, 6, 111, 0, 0, 17, 3,
+			95, 194, 171, 40, 84, 34, 36, 15, 81, 37, 57, 65, 6, 112, 0, 0, 6, 195, 28, 229, 64, 17, 0, 0, 10, 69, 76, 50, 69, 57,
+			64, 89, 37, 0, 0, 9, 66, 76, 16, 89, 121, 0, 72, 34, 17, 66, 52, 208, 109, 105, 108, 108, 105, 109, 195, 168, 116, 114, 101, 0,
+			29, 13, 3, 95, 194, 167, 89, 112, 49, 89, 57, 6, 116, 0, 0, 10, 67, 45, 84, 148, 49, 40, 34, 47, 0, 0, 0, 0, 6, 195,
+			76, 20, 0, 17, 0, 15, 4, 95, 18, 14, 7, 34, 116, 140, 113, 91, 6, 112, 83, 0, 0, 0, 0, 16, 70, 9, 84, 149, 56, 66,
+			64, 71, 40, 34, 40, 50, 72, 37, 0, 0, 23, 67, 33, 69, 16, 35, 91, 47, 4, 36, 47, 4, 36, 48, 6, 36, 10, 0, 81, 58,
+			47, 47, 32, 0, 0, 15, 69, 72, 148, 195, 61, 48, 34, 37, 89, 49, 39, 112, 89, 0, 0, 0, 6, 131, 95, 195, 160, 43, 0, 11,
+			70, 72, 80, 207, 72, 65, 82, 21, 0, 10, 0, 14, 69, 84, 37, 78, 81, 80, 40, 71, 40, 50, 47, 40, 0, 0, 10, 66, 52, 224,
+			65, 37, 50, 111, 47, 0, 0, 0, 6, 131, 15, 195, 185, 76, 0, 0, 0, 0, 11, 68, 48, 83, 206, 20, 55, 36, 127, 50, 0, 0,
+			0, 0, 0, 0, 0, 20, 4, 95, 1, 3, 50, 72, 40, 71, 55, 35, 49, 89, 113, 47, 112, 81, 6, 111, 0, 0, 0, 0, 13, 69,
+			60, 97, 147, 21, 64, 127, 83, 89, 112, 47, 0, 0, 9, 66, 60, 176, 39, 49, 36, 0, 76, 9, 67, 61, 84, 147, 40, 34, 89, 0,
+			9, 66, 80, 16, 47, 121, 0, 72, 34, 0, 0, 15, 70, 52, 144, 200, 4, 83, 0, 65, 37, 49, 35, 112, 55, 0, 0, 9, 198, 80,
+			245, 74, 61, 84, 147, 76, 0, 0, 0, 0, 0, 0, 0, 11, 68, 76, 51, 213, 80, 89, 49, 40, 47, 0, 0, 0, 6, 195, 64, 197,
+			83, 76, 18, 3, 95, 194, 187, 83, 112, 34, 65, 36, 15, 81, 37, 57, 65, 6, 112, 0, 0, 9, 67, 73, 85, 0, 34, 111, 47, 0,
+			0, 15, 67, 24, 147, 5, 21, 0, 10, 81, 122, 105, 108, 108, 97, 32, 0, 0, 0, 15, 67, 80, 86, 20, 21, 0, 10, 81, 97, 108,
+			111, 117, 100, 32, 9, 67, 29, 84, 192, 81, 111, 89, 0, 15, 67, 69, 20, 192, 113, 117, 101, 108, 113, 117, 101, 115, 0, 29, 0, 12,
+			68, 56, 145, 197, 72, 50, 37, 90, 112, 34, 0, 0, 15, 69, 4, 208, 90, 60, 224, 35, 65, 35, 88, 6, 127, 50, 0, 0, 0, 9,
+			67, 77, 84, 192, 89, 111, 0, 36, 9, 67, 77, 84, 192, 89, 111, 89, 0, 0, 11, 68, 76, 131, 210, 80, 91, 127, 34, 47, 0, 12,
+			68, 4, 64, 77, 76, 35, 72, 35, 65, 89, 0, 0, 20, 2, 195, 151, 65, 111, 55, 47, 37, 48, 55, 37, 6, 36, 10, 48, 6, 35,
+			34, 0, 0, 17, 66, 77, 64, 89, 114, 49, 55, 40, 0, 81, 99, 108, 111, 117, 100, 32, 9, 66, 77, 64, 89, 6, 114, 140, 0, 0,
+			8, 67, 32, 83, 16, 21, 0, 10, 0, 19, 72, 5, 35, 65, 28, 81, 4, 60, 224, 35, 34, 65, 35, 81, 36, 72, 116, 0, 23, 68,
+			80, 83, 80, 76, 47, 113, 88, 113, 47, 113, 0, 82, 101, 110, 32, 116, 101, 109, 112, 115, 32, 0, 0, 16, 67, 77, 68, 0, 89, 37,
+			55, 47, 13, 12, 48, 55, 6, 112, 0, 0, 0, 22, 2, 194, 166, 89, 36, 48, 35, 34, 35, 47, 117, 34, 15, 84, 112, 47, 37, 49,
+			35, 55, 0, 0, 10, 69, 8, 85, 20, 21, 32, 21, 0, 10, 15, 69, 21, 131, 195, 21, 64, 112, 81, 88, 39, 89, 112, 47, 0, 0,
+			6, 194, 76, 80, 72, 32, 0, 19, 67, 16, 84, 20, 100, 195, 169, 112, 97, 114, 116, 101, 109, 101, 110, 116, 0, 29, 8, 2, 194, 165,
+			57, 112, 50, 0, 0, 15, 68, 13, 144, 133, 72, 21, 0, 10, 81, 108, 105, 110, 107, 32, 13, 5, 16, 18, 195, 168, 19, 48, 34, 112,
+			143, 0, 76, 9, 2, 194, 162, 89, 112, 50, 47, 0, 0, 15, 6, 1, 16, 18, 195, 168, 19, 35, 48, 34, 112, 143, 0, 76, 9, 2,
+			194, 163, 55, 37, 84, 34, 0, 0, 0, 8, 67, 56, 245, 0, 21, 0, 10, 9, 67, 76, 85, 0, 89, 112, 47, 0, 16, 70, 48, 17,
+			84, 37, 66, 65, 55, 36, 47, 37, 89, 57, 35, 0, 0, 16, 2, 194, 174, 65, 35, 34, 49, 72, 36, 48, 39, 88, 6, 36, 0, 0,
+			16, 70, 32, 243, 132, 85, 32, 83, 23, 116, 72, 111, 34, 35, 89, 0, 23, 73, 81, 85, 20, 37, 21, 65, 57, 66, 64, 47, 40, 47,
+			37, 49, 58, 6, 35, 50, 47, 37, 0, 10, 2, 194, 175, 65, 35, 49, 34, 116, 0, 5, 130, 195, 167, 43, 0, 20, 2, 194, 172, 47,
+			37, 34, 112, 10, 83, 35, 49, 111, 55, 47, 35, 47, 37, 83, 0, 5, 130, 195, 164, 43, 0, 17, 67, 77, 81, 0, 89, 111, 72, 112,
+			89, 47, 0, 81, 101, 115, 116, 32, 0, 11, 68, 28, 227, 205, 20, 81, 50, 127, 65, 0, 5, 130, 195, 162, 43, 0, 12, 2, 197, 147,
+			39, 15, 13, 15, 55, 37, 36, 0, 0, 7, 130, 195, 160, 14, 43, 9, 7, 2, 195, 160, 35, 0, 76, 0, 7, 2, 194, 169, 21, 0,
+			10, 0, 11, 70, 12, 243, 80, 85, 65, 82, 21, 0, 10, 24, 11, 1, 21, 10, 15, 21, 18, 4, 39, 8, 21, 9, 97, 117, 106, 111,
+			117, 114, 100, 117, 105, 0, 29, 13, 2, 194, 182, 48, 35, 34, 35, 81, 34, 35, 83, 0, 5, 130, 195, 174, 43, 0, 11, 69, 28, 147,
+			12, 21, 48, 90, 37, 55, 0, 8, 2, 194, 183, 48, 58, 114, 0, 5, 130, 195, 175, 43, 0, 14, 70, 52, 245, 76, 61, 81, 0, 65,
+			40, 55, 40, 72, 0, 7, 195, 76, 242, 83, 76, 36, 9, 66, 60, 224, 116, 134, 0, 76, 32, 0, 6, 195, 4, 32, 192, 17, 0, 16,
+			2, 194, 178, 48, 111, 37, 89, 6, 113, 89, 15, 72, 6, 132, 0, 5, 130, 195, 170, 43, 0, 16, 2, 194, 179, 48, 111, 37, 89, 113,
+			89, 15, 47, 34, 58, 35, 0, 5, 130, 195, 171, 43, 5, 130, 195, 171, 43, 0, 10, 3, 21, 46, 19, 111, 12, 112, 89, 0, 5, 130,
+			195, 168, 43, 0, 7, 195, 60, 229, 0, 76, 36, 6, 195, 76, 242, 84, 76, 15, 2, 194, 177, 48, 55, 6, 111, 88, 40, 65, 58, 6,
+			114, 0, 5, 130, 195, 169, 43, 0, 12, 68, 56, 85, 137, 76, 50, 36, 84, 37, 89, 0, 6, 195, 72, 144, 65, 17, 14, 2, 194, 190,
+			47, 34, 58, 35, 10, 49, 6, 35, 34, 0, 5, 130, 195, 182, 43, 0, 12, 67, 85, 35, 0, 111, 12, 112, 34, 112, 55, 0, 27, 2,
+			194, 191, 48, 58, 114, 15, 72, 114, 47, 36, 34, 39, 81, 35, 89, 57, 116, 15, 114, 84, 112, 34, 89, 36, 0, 17, 2, 195, 183, 72,
+			37, 84, 37, 88, 6, 36, 10, 48, 6, 35, 34, 0, 0, 6, 130, 195, 180, 14, 43, 11, 2, 194, 188, 115, 10, 49, 6, 35, 34, 0,
+			0, 12, 2, 194, 189, 115, 10, 72, 13, 65, 6, 37, 0, 0, 10, 2, 194, 186, 72, 13, 81, 34, 36, 0, 13, 4, 95, 3, 5, 4,
+			89, 36, 72, 6, 37, 57, 0, 0, 8, 197, 25, 84, 133, 57, 64, 76, 0, 15, 70, 13, 35, 193, 80, 145, 64, 49, 34, 39, 35, 89,
+			37, 0, 17, 70, 48, 244, 147, 69, 81, 64, 55, 127, 34, 89, 49, 8, 13, 0, 76, 15, 67, 77, 100, 0, 89, 37, 55, 84, 129, 48,
+			55, 6, 112, 0, 10, 2, 194, 184, 89, 36, 72, 37, 57, 0, 0, 12, 67, 60, 225, 192, 39, 4, 112, 50, 90, 36, 0, 15, 4, 95,
+			12, 9, 7, 55, 37, 81, 35, 47, 6, 111, 34, 0, 5, 130, 195, 177, 43, 0, 0, 19, 70, 12, 19, 22, 4, 67, 211, 99, 97, 108,
+			118, 97, 100, 111, 115, 115, 0, 29, 14, 69, 100, 19, 213, 73, 64, 23, 37, 35, 40, 34, 47, 0, 10, 67, 8, 145, 78, 71, 37, 114,
+			134, 0, 6, 195, 80, 83, 0, 76, 0, 16, 70, 44, 20, 129, 60, 177, 64, 49, 35, 34, 35, 39, 49, 36, 0, 16, 70, 9, 35, 199,
+			48, 145, 64, 98, 114, 101, 117, 105, 108, 0, 29, 6, 194, 80, 80, 72, 32, 5, 130, 195, 188, 43, 0, 17, 70, 48, 148, 212, 8, 246,
+			0, 55, 37, 89, 47, 71, 127, 49, 89, 0, 6, 195, 76, 242, 64, 76, 0, 0, 5, 130, 195, 187, 43, 0, 0, 6, 195, 52, 50, 64,
+			17, 5, 130, 195, 185, 43, 0, 0, 10, 67, 4, 49, 82, 35, 89, 112, 34, 0, 11, 67, 24, 145, 82, 83, 57, 36, 34, 0, 36, 0,
+			6, 194, 81, 80, 76, 32, 0, 6, 195, 72, 21, 16, 17, 12, 67, 60, 115, 64, 39, 90, 4, 36, 112, 65, 0, 0, 11, 68, 12, 243,
+			77, 20, 49, 127, 65, 0, 76, 7, 196, 88, 242, 67, 36, 76, 0, 0, 0, 9, 67, 32, 211, 64, 107, 117, 65, 0, 0, 0, 14, 69,
+			80, 245, 84, 21, 48, 47, 6, 40, 47, 143, 0, 76, 0, 0, 0, 0, 0, 0, 18, 71, 77, 112, 90, 36, 192, 78, 16, 89, 58, 35,
+			88, 37, 55, 113, 72, 0, 18, 71, 29, 35, 197, 56, 192, 78, 16, 81, 34, 39, 112, 50, 55, 113, 72, 0, 0, 11, 68, 12, 240, 213,
+			76, 49, 127, 49, 111, 0, 7, 196, 4, 145, 78, 80, 76, 0, 0, 7, 66, 85, 64, 111, 47, 0, 0, 18, 71, 77, 69, 84, 80, 112,
+			82, 80, 91, 47, 40, 47, 81, 35, 34, 47, 0, 6, 195, 64, 85, 64, 76, 0, 0, 0, 0, 0, 12, 4, 6, 195, 187, 20, 83, 111,
+			140, 0, 76, 36, 0, 12, 67, 72, 145, 78, 34, 37, 6, 114, 134, 0, 76, 0, 0, 8, 67, 8, 22, 64, 21, 0, 10, 0, 0, 12,
+			69, 32, 20, 133, 56, 112, 23, 35, 34, 113, 0, 0, 0, 0, 0, 14, 69, 12, 147, 133, 52, 16, 89, 37, 50, 36, 65, 35, 0, 0,
+			0, 10, 67, 24, 21, 84, 83, 39, 140, 0, 76, 0, 9, 68, 36, 228, 21, 80, 21, 0, 10, 10, 68, 64, 242, 78, 28, 48, 58, 114,
+			0, 7, 2, 95, 6, 112, 83, 0, 0, 8, 195, 48, 85, 82, 72, 36, 40, 7, 195, 48, 85, 82, 72, 34, 0, 0, 6, 2, 95, 5,
+			13, 0, 0, 0, 0, 6, 2, 95, 9, 37, 0, 0, 7, 2, 95, 8, 35, 91, 0, 0, 13, 67, 37, 32, 192, 125, 4, 112, 34, 23,
+			89, 36, 0, 6, 2, 95, 15, 39, 0, 0, 8, 196, 88, 245, 18, 20, 72, 34, 8, 196, 56, 245, 18, 20, 72, 34, 7, 2, 95, 14,
+			112, 50, 0, 0, 7, 2, 95, 13, 112, 65, 0, 0, 7, 2, 95, 12, 112, 55, 0, 0, 6, 195, 88, 21, 88, 76, 7, 195, 85, 48,
+			64, 17, 42, 7, 2, 95, 19, 112, 89, 0, 0, 7, 196, 64, 242, 78, 80, 37, 7, 196, 64, 242, 78, 80, 76, 7, 2, 95, 18, 112,
+			34, 0, 0, 0, 16, 70, 76, 48, 78, 56, 84, 128, 89, 49, 35, 50, 117, 34, 0, 37, 16, 70, 76, 48, 78, 56, 84, 128, 89, 49,
+			35, 50, 36, 120, 0, 36, 0, 0, 19, 72, 8, 19, 135, 48, 17, 5, 76, 128, 71, 113, 81, 55, 35, 72, 112, 91, 0, 0, 18, 9,
+			195, 169, 12, 15, 17, 21, 5, 14, 20, 36, 55, 39, 49, 113, 140, 0, 25, 5, 14, 39, 5, 19, 20, 50, 6, 112, 89, 15, 48, 6,
+			35, 143, 0, 82, 99, 101, 32, 112, 97, 115, 32, 6, 2, 95, 21, 111, 0, 0, 13, 4, 95, 226, 136, 158, 37, 50, 83, 37, 50, 37,
+			0, 0, 7, 195, 76, 243, 148, 76, 36, 0, 0, 22, 69, 4, 68, 204, 81, 96, 35, 72, 36, 112, 89, 6, 112, 55, 15, 47, 36, 84,
+			6, 36, 0, 13, 2, 95, 25, 11, 37, 12, 81, 34, 6, 112, 49, 0, 0, 8, 2, 95, 24, 37, 49, 89, 0, 0, 26, 67, 25, 146,
+			64, 83, 117, 34, 15, 57, 117, 34, 15, 125, 50, 83, 117, 34, 65, 6, 112, 57, 91, 117, 50, 0, 0, 0, 0, 0, 15, 70, 76, 48,
+			78, 56, 84, 147, 89, 49, 35, 50, 117, 34, 0, 7, 195, 49, 82, 64, 76, 32, 9, 2, 95, 35, 72, 57, 112, 88, 0, 0, 6, 195,
+			76, 245, 83, 76, 10, 2, 95, 34, 81, 37, 57, 65, 112, 0, 0, 8, 197, 12, 243, 148, 72, 80, 76, 22, 2, 95, 33, 48, 58, 114,
+			15, 72, 112, 49, 89, 49, 55, 35, 65, 35, 89, 57, 6, 116, 0, 0, 0, 6, 195, 88, 21, 84, 76, 9, 67, 76, 243, 128, 89, 116,
+			0, 37, 7, 195, 76, 243, 128, 76, 34, 14, 2, 95, 39, 35, 48, 39, 89, 47, 34, 6, 127, 83, 0, 0, 18, 2, 95, 38, 10, 36,
+			10, 49, 39, 65, 112, 34, 89, 37, 6, 35, 55, 0, 0, 0, 7, 195, 20, 195, 5, 76, 32, 19, 67, 52, 195, 5, 109, 97, 100, 101,
+			109, 111, 105, 115, 101, 108, 108, 101, 0, 29, 0, 9, 67, 8, 147, 128, 71, 37, 50, 0, 16, 71, 52, 84, 211, 36, 85, 82, 76, 65,
+			36, 89, 57, 132, 143, 0, 0, 16, 4, 95, 3, 1, 16, 65, 35, 90, 111, 89, 49, 6, 111, 55, 0, 0, 9, 197, 76, 243, 77, 21,
+			48, 76, 36, 18, 2, 95, 41, 48, 35, 34, 113, 47, 112, 88, 10, 72, 34, 58, 35, 47, 0, 0, 16, 70, 85, 4, 5, 72, 53, 84,
+			111, 48, 112, 34, 49, 117, 47, 0, 16, 2, 95, 40, 48, 35, 34, 113, 47, 112, 88, 10, 81, 39, 91, 0, 0, 8, 67, 32, 84, 128,
+			21, 0, 10, 13, 2, 95, 47, 71, 35, 34, 39, 71, 55, 37, 49, 0, 0, 15, 70, 72, 84, 211, 20, 229, 0, 34, 13, 89, 6, 113,
+			140, 0, 10, 2, 95, 46, 23, 48, 58, 2, 114, 0, 0, 9, 2, 95, 45, 47, 37, 34, 112, 0, 0, 8, 67, 32, 84, 133, 21, 0,
+			10, 11, 2, 95, 44, 84, 37, 34, 81, 111, 55, 0, 0, 8, 67, 53, 36, 192, 21, 0, 10, 10, 2, 95, 51, 47, 34, 58, 35, 143,
+			0, 0, 19, 68, 76, 18, 78, 80, 89, 114, 49, 55, 40, 0, 81, 99, 108, 111, 117, 100, 32, 8, 2, 95, 50, 72, 132, 143, 0, 0,
+			6, 2, 95, 49, 115, 0, 0, 10, 2, 95, 48, 88, 36, 34, 39, 0, 76, 0, 8, 2, 95, 55, 89, 112, 47, 0, 0, 9, 198, 64,
+			197, 80, 5, 37, 0, 76, 8, 2, 95, 54, 89, 37, 144, 0, 0, 8, 2, 95, 53, 89, 114, 49, 0, 0, 9, 2, 95, 52, 49, 35,
+			47, 34, 0, 0, 16, 2, 95, 59, 48, 58, 114, 15, 84, 37, 34, 81, 6, 111, 55, 0, 0, 13, 2, 95, 58, 72, 6, 132, 15, 48,
+			58, 6, 114, 0, 0, 8, 2, 95, 57, 50, 117, 83, 0, 0, 9, 2, 95, 56, 23, 111, 37, 141, 0, 0, 21, 2, 95, 63, 48, 58,
+			114, 15, 72, 114, 47, 112, 34, 39, 81, 35, 89, 57, 6, 116, 0, 0, 13, 2, 95, 62, 89, 111, 48, 36, 34, 37, 117, 34, 0, 0,
+			9, 2, 95, 61, 36, 81, 35, 55, 0, 0, 12, 2, 95, 60, 114, 83, 36, 34, 37, 117, 34, 0, 0, 8, 67, 72, 150, 128, 34, 37,
+			0, 0, 0, 0, 15, 70, 52, 84, 135, 84, 86, 128, 65, 112, 34, 81, 112, 88, 0, 0, 10, 134, 5, 195, 187, 20, 5, 19, 76, 36,
+			10, 134, 6, 195, 187, 20, 5, 19, 76, 36, 0, 0, 0, 0, 19, 71, 8, 19, 1, 8, 243, 11, 4, 71, 35, 55, 35, 71, 127, 55,
+			49, 35, 0, 0, 0, 18, 8, 2, 195, 169, 12, 1, 18, 21, 19, 71, 36, 55, 35, 34, 111, 89, 0, 8, 197, 9, 35, 20, 81, 144,
+			17, 0, 0, 0, 13, 70, 88, 147, 131, 20, 229, 0, 84, 114, 89, 113, 0, 12, 68, 48, 20, 197, 72, 55, 35, 88, 112, 34, 0, 0,
+			0, 16, 70, 4, 225, 197, 48, 84, 192, 113, 50, 90, 36, 55, 112, 89, 0, 0, 12, 67, 85, 48, 128, 111, 12, 112, 89, 71, 36, 0,
+			0, 9, 68, 64, 18, 78, 80, 21, 0, 10, 15, 70, 12, 243, 147, 20, 229, 0, 49, 116, 89, 6, 113, 140, 0, 0, 29, 67, 12, 129,
+			70, 99, 104, 195, 169, 100, 101, 117, 118, 114, 101, 115, 0, 29, 81, 100, 39, 111, 101, 117, 118, 114, 101, 115, 32, 27, 67, 12, 129, 70,
+			99, 104, 195, 169, 100, 101, 117, 118, 114, 101, 0, 29, 81, 100, 39, 111, 101, 117, 118, 114, 101, 32, 10, 67, 4, 192, 78, 35, 55, 35,
+			50, 0, 0, 15, 70, 8, 18, 1, 52, 20, 192, 71, 35, 35, 65, 35, 89, 0, 9, 198, 69, 81, 76, 48, 84, 192, 76, 0, 18, 9,
+			17, 21, 5, 12, 17, 21, 39, 21, 14, 49, 112, 55, 49, 115, 0, 76, 6, 195, 36, 65, 64, 17, 16, 4, 95, 226, 128, 153, 35, 48,
+			39, 89, 47, 34, 6, 127, 83, 0, 0, 16, 4, 95, 226, 128, 152, 35, 48, 39, 89, 47, 34, 6, 127, 83, 0, 17, 4, 95, 4, 15,
+			20, 48, 58, 114, 89, 111, 89, 49, 34, 6, 37, 0, 0, 13, 69, 9, 81, 134, 21, 32, 71, 132, 83, 117, 34, 0, 0, 9, 67, 4,
+			64, 77, 35, 72, 113, 0, 0, 8, 67, 76, 129, 64, 21, 0, 10, 14, 2, 95, 91, 49, 34, 127, 91, 112, 10, 81, 39, 91, 0, 0,
+			0, 0, 5, 194, 84, 176, 17, 0, 17, 71, 32, 85, 82, 80, 147, 206, 76, 23, 117, 34, 47, 57, 116, 143, 0, 11, 2, 95, 95, 89,
+			40, 55, 37, 67, 36, 0, 0, 15, 70, 48, 22, 129, 72, 85, 0, 55, 35, 88, 35, 34, 112, 0, 9, 68, 40, 19, 69, 76, 21, 0,
+			10, 12, 68, 4, 67, 73, 56, 35, 72, 65, 37, 50, 0, 15, 2, 95, 94, 89, 37, 34, 49, 116, 83, 55, 112, 49, 89, 0, 0, 15,
+			2, 95, 93, 49, 34, 127, 91, 112, 10, 72, 34, 58, 35, 0, 0, 17, 67, 88, 148, 0, 84, 4, 37, 15, 4, 35, 57, 15, 48, 6,
+			37, 0, 12, 2, 95, 92, 71, 35, 49, 89, 55, 35, 91, 0, 0, 0, 12, 68, 60, 20, 201, 76, 39, 35, 88, 37, 89, 0, 0, 0,
+			16, 2, 95, 96, 35, 49, 89, 6, 113, 10, 81, 34, 6, 35, 84, 0, 0, 0, 0, 16, 69, 4, 148, 130, 85, 48, 97, 105, 114, 98,
+			117, 115, 115, 0, 29, 0, 0, 0, 0, 8, 197, 80, 19, 132, 37, 48, 76, 0, 16, 4, 95, 7, 18, 22, 35, 49, 89, 113, 81, 34,
+			6, 35, 84, 0, 0, 8, 67, 20, 66, 84, 21, 0, 10, 20, 67, 88, 148, 192, 84, 37, 88, 35, 84, 37, 0, 82, 195, 160, 32, 118,
+			105, 115, 32, 6, 195, 76, 244, 192, 17, 0, 0, 6, 195, 12, 129, 90, 76, 0, 0, 12, 71, 8, 197, 69, 80, 243, 212, 32, 21, 0,
+			10, 9, 67, 8, 148, 192, 71, 37, 89, 0, 11, 67, 16, 84, 192, 72, 123, 143, 0, 72, 34, 21, 67, 48, 84, 192, 55, 123, 15, 55,
+			132, 34, 0, 76, 32, 81, 108, 101, 117, 114, 115, 32, 20, 67, 48, 84, 192, 55, 123, 15, 55, 132, 34, 0, 76, 32, 81, 108, 101, 117,
+			114, 32, 11, 67, 80, 84, 192, 47, 123, 143, 0, 72, 34, 12, 67, 48, 84, 192, 55, 123, 143, 0, 36, 40, 72, 11, 67, 48, 84, 192,
+			55, 123, 143, 0, 34, 76, 0, 0, 0, 13, 70, 28, 83, 210, 28, 84, 192, 90, 127, 34, 90, 0, 15, 70, 25, 32, 78, 12, 148, 192,
+			83, 34, 113, 89, 37, 89, 0, 0, 19, 71, 25, 32, 78, 12, 84, 195, 60, 83, 34, 113, 50, 91, 112, 89, 49, 39, 0, 0, 10, 68,
+			12, 242, 78, 28, 49, 58, 114, 0, 0, 12, 69, 4, 36, 197, 57, 64, 35, 71, 89, 113, 0, 0, 0, 15, 2, 95, 123, 35, 49, 127,
+			55, 35, 72, 10, 81, 39, 91, 0, 13, 4, 95, 4, 9, 1, 47, 34, 36, 65, 6, 35, 0, 0, 0, 13, 69, 5, 85, 15, 85, 32,
+			39, 47, 40, 34, 0, 76, 0, 20, 70, 5, 81, 9, 8, 193, 64, 21, 0, 10, 81, 109, 97, 110, 97, 103, 101, 114, 32, 8, 66, 80,
+			240, 47, 40, 0, 76, 0, 0, 0, 8, 67, 100, 85, 0, 21, 0, 10, 17, 2, 95, 125, 35, 49, 127, 55, 35, 72, 10, 72, 34, 58,
+			35, 47, 0, 0, 16, 70, 100, 241, 200, 61, 84, 148, 23, 37, 39, 81, 40, 34, 47, 0, 18, 2, 95, 124, 71, 35, 34, 10, 84, 112,
+			34, 47, 37, 49, 6, 35, 55, 0, 0, 17, 70, 4, 197, 5, 72, 81, 207, 35, 55, 47, 112, 34, 36, 81, 39, 0, 0, 9, 68, 5,
+			4, 12, 20, 21, 0, 10, 0, 16, 70, 9, 35, 215, 28, 194, 69, 98, 114, 101, 117, 105, 108, 0, 29, 15, 69, 52, 36, 143, 48, 16,
+			112, 65, 71, 34, 39, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 61, 1, 78, 21, 0, 10, 0, 6, 194, 84, 224, 34,
+			76, 0, 0, 0, 0, 0, 6, 195, 81, 96, 64, 17, 0, 0, 0, 8, 67, 25, 33, 69, 21, 0, 10, 0, 10, 67, 25, 33, 68, 83,
+			34, 112, 72, 0, 0, 0, 12, 69, 9, 81, 7, 21, 64, 71, 111, 75, 112, 0, 0, 12, 4, 95, 35, 51, 50, 112, 89, 48, 35, 89,
+			0, 0, 12, 67, 20, 65, 128, 13, 72, 4, 36, 112, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 70, 4, 52, 143, 8, 21,
+			0, 97, 99, 114, 111, 98, 97, 116, 101, 0, 29, 0, 0, 11, 70, 61, 85, 12, 60, 242, 192, 21, 0, 10, 5, 194, 97, 144, 17, 0,
+			11, 67, 25, 33, 84, 83, 34, 6, 112, 47, 0, 12, 67, 4, 67, 128, 35, 72, 4, 36, 112, 50, 0, 0, 16, 70, 28, 19, 135, 77,
+			65, 82, 81, 113, 81, 89, 47, 112, 34, 0, 0, 9, 67, 105, 85, 0, 88, 111, 47, 0, 0, 16, 70, 21, 66, 5, 72, 225, 84, 36,
+			47, 112, 34, 50, 112, 47, 0, 0, 18, 71, 4, 100, 137, 44, 16, 78, 76, 35, 83, 34, 37, 49, 35, 50, 89, 0, 0, 0, 8, 197,
+			40, 19, 65, 37, 48, 76, 0, 38, 70, 36, 229, 5, 72, 225, 84, 114, 47, 112, 34, 50, 6, 112, 47, 15, 112, 49, 89, 48, 55, 127,
+			34, 6, 117, 34, 0, 81, 101, 120, 112, 108, 111, 114, 101, 114, 32, 17, 70, 36, 229, 5, 72, 225, 84, 114, 47, 112, 34, 50, 6, 112,
+			47, 0, 0, 0, 9, 198, 12, 243, 77, 20, 229, 0, 76, 0, 0, 12, 70, 40, 16, 209, 84, 84, 192, 90, 35, 49, 0, 0, 0, 0,
+			0, 0, 6, 195, 13, 5, 64, 17, 0, 12, 68, 4, 195, 210, 76, 35, 55, 127, 34, 0, 76, 0, 0, 0, 0, 0, 14, 69, 64, 243,
+			4, 21, 32, 48, 127, 55, 72, 112, 34, 0, 0, 0, 14, 67, 28, 134, 128, 90, 37, 81, 35, 112, 34, 47, 89, 0, 0, 0, 9, 67,
+			88, 245, 0, 84, 127, 47, 0, 0, 0, 14, 67, 44, 134, 128, 49, 37, 55, 39, 112, 34, 47, 89, 0, 0, 9, 68, 8, 197, 69, 76,
+			21, 0, 10, 0, 10, 69, 28, 243, 199, 48, 80, 21, 0, 10, 0, 19, 9, 16, 1, 20, 1, 17, 21, 195, 168, 19, 48, 35, 47, 35,
+			49, 112, 89, 0, 0, 0, 0, 0, 9, 134, 22, 15, 9, 12, 195, 160, 76, 0, 11, 67, 9, 37, 84, 71, 34, 6, 111, 47, 0, 0,
+			0, 13, 69, 8, 148, 211, 85, 48, 71, 37, 89, 111, 89, 0, 0, 0, 0, 7, 196, 5, 85, 18, 20, 76, 0, 14, 69, 88, 148, 135,
+			36, 224, 84, 37, 34, 90, 37, 50, 0, 0, 14, 67, 96, 96, 197, 37, 49, 89, 112, 83, 89, 36, 13, 0, 0, 6, 195, 12, 144, 64,
+			17, 0, 0, 16, 70, 77, 84, 208, 20, 228, 197, 89, 111, 89, 48, 112, 50, 89, 0, 0, 16, 70, 72, 21, 9, 60, 228, 192, 34, 35,
+			47, 57, 116, 143, 0, 36, 15, 70, 16, 21, 9, 60, 228, 192, 72, 35, 47, 57, 116, 143, 0, 11, 70, 12, 243, 12, 36, 228, 192, 21,
+			0, 10, 0, 13, 67, 52, 209, 64, 109, 97, 100, 97, 109, 101, 0, 29, 0, 0, 21, 73, 12, 243, 147, 80, 21, 9, 60, 228, 192, 49,
+			116, 89, 47, 35, 47, 57, 116, 143, 0, 10, 69, 12, 83, 148, 21, 32, 21, 0, 10, 8, 197, 17, 84, 129, 57, 64, 76, 0, 23, 6,
+			17, 21, 39, 5, 19, 20, 49, 112, 89, 49, 13, 0, 72, 82, 99, 101, 32, 113, 117, 101, 32, 0, 6, 195, 85, 65, 128, 17, 0, 0,
+			0, 0, 9, 67, 92, 146, 64, 58, 37, 12, 0, 6, 195, 80, 242, 64, 76, 0, 9, 68, 48, 241, 207, 56, 21, 0, 10, 0, 0, 0,
+			10, 199, 80, 245, 84, 20, 99, 201, 76, 76, 0, 0, 0, 0, 12, 71, 52, 84, 211, 20, 225, 197, 72, 21, 0, 10, 0, 0, 6, 195,
+			48, 242, 78, 76, 0, 8, 67, 76, 19, 69, 21, 0, 10, 0, 0, 9, 68, 4, 35, 213, 80, 21, 0, 10, 0, 12, 69, 76, 245, 82,
+			37, 48, 89, 40, 34, 37, 0, 0, 15, 70, 48, 84, 207, 80, 131, 192, 55, 36, 88, 127, 47, 39, 0, 0, 0, 9, 68, 48, 241, 201,
+			56, 21, 0, 10, 0, 0, 16, 70, 88, 245, 9, 60, 228, 192, 84, 127, 39, 47, 57, 116, 143, 0, 0, 7, 195, 36, 196, 192, 76, 32,
+			0, 12, 68, 76, 208, 82, 80, 89, 65, 35, 34, 47, 0, 9, 68, 80, 129, 82, 20, 21, 0, 10, 0, 0, 0, 0, 0, 23, 73, 21,
+			132, 12, 60, 149, 9, 60, 228, 192, 112, 49, 89, 48, 55, 58, 35, 47, 57, 116, 143, 0, 0, 0, 14, 67, 4, 68, 204, 35, 72, 4,
+			36, 112, 89, 112, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 20, 1, 195, 175, 23, 1, 14, 47, 35, 57, 58, 35,
+			50, 0, 8, 197, 64, 51, 67, 36, 16, 17, 0, 0, 0, 0, 6, 20, 83, 1, 0, 0, 111, 0, 101, 0, 0, 0, 0, 0, 6, 18,
+			66, 100, 0, 101, 0, 108, 0, 110, 0, 114, 0, 116, 0, 117, 0, 7, 6, 18, 67, 98, 0, 99, 0, 100, 0, 102, 0, 103, 0, 104,
+			0, 107, 0, 112, 0, 116, 0, 118, 0, 7, 6, 18, 68, 100, 0, 108, 0, 109, 0, 110, 0, 115, 0, 116, 0, 118, 0, 7, 6, 18,
+			69, 99, 0, 100, 0, 102, 0, 103, 0, 108, 0, 109, 0, 110, 0, 118, 0, 7, 6, 18, 70, 103, 0, 104, 0, 107, 0, 108, 0, 109,
+			0, 118, 0, 119, 0, 7, 6, 18, 71, 98, 108, 0, 98, 114, 0, 99, 108, 0, 99, 114, 0, 99, 116, 0, 100, 114, 0, 102, 108, 0,
+			102, 114, 0, 102, 116, 0, 103, 108, 0, 103, 114, 0, 107, 108, 0, 107, 114, 0, 112, 108, 0, 112, 114, 0, 116, 114, 0, 118, 114, 0,
+			7, 6, 18, 72, 195, 169, 99, 0, 195, 169, 100, 0, 101, 99, 0, 101, 100, 0, 108, 98, 0, 108, 99, 0, 108, 100, 0, 108, 103, 0,
+			108, 109, 0, 108, 110, 0, 108, 112, 0, 108, 116, 0, 108, 118, 0, 114, 98, 0, 114, 99, 0, 114, 100, 0, 114, 102, 0, 114, 103, 0,
+			114, 108, 0, 114, 109, 0, 114, 110, 0, 114, 112, 0, 114, 115, 0, 114, 116, 0, 114, 118, 0, 7, 6, 18, 73, 99, 104, 0, 113, 117,
+			0, 103, 117, 0, 98, 0, 99, 0, 100, 0, 102, 0, 103, 0, 104, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 112, 0, 113, 0,
+			114, 0, 115, 0, 116, 0, 118, 0, 119, 0, 120, 0, 122, 0, 7, 6, 18, 74, 108, 0, 114, 0, 115, 0, 7, 6, 18, 75, 105, 97,
+			0, 105, 101, 0, 105, 111, 0, 117, 97, 0, 117, 101, 0, 117, 105, 0, 117, 111, 0, 7, 6, 18, 76, 98, 0, 112, 0, 7, 6, 18,
+			77, 97, 195, 175, 0, 114, 195, 169, 0, 195, 169, 0, 195, 168, 0, 97, 108, 0, 105, 98, 0, 105, 101, 0, 105, 113, 0, 111, 109, 0,
+			111, 110, 0, 121, 109, 0, 108, 0, 7, 6, 18, 78, 101, 114, 0, 104, 110, 0, 100, 0, 103, 0, 107, 0, 108, 0, 112, 0, 7, 6,
+			18, 79, 98, 101, 0, 105, 110, 0, 117, 112, 0, 117, 116, 0, 7, 6, 18, 80, 99, 0, 102, 0, 103, 0, 104, 0, 7, 6, 18, 81,
+			48, 48, 0, 48, 49, 0, 48, 50, 0, 48, 51, 0, 48, 52, 0, 48, 53, 0, 48, 54, 0, 48, 55, 0, 48, 56, 0, 48, 57, 0,
+			49, 48, 0, 49, 49, 0, 49, 50, 0, 49, 51, 0, 49, 52, 0, 49, 53, 0, 49, 54, 0, 49, 55, 0, 49, 56, 0, 49, 57, 0,
+			50, 48, 0, 50, 49, 0, 50, 50, 0, 50, 51, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0,
+			57, 0, 7, 6, 18, 82, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 7, 6, 195, 167, 0, 4, 3, 89, 0, 39, 8, 2,
+			14, 128, 140, 130, 0, 7, 6, 195, 168, 0, 109, 101, 1, 16, 3, 37, 112, 65, 0, 4, 3, 112, 0, 115, 2, 32, 0, 4, 115, 1,
+			109, 2, 32, 3, 112, 89, 0, 115, 1, 110, 2, 32, 0, 115, 1, 112, 2, 32, 0, 115, 1, 114, 17, 65, 2, 32, 0, 7, 6, 195,
+			171, 0, 1, 117, 3, 0, 1, 111, 110, 2, 32, 3, 36, 0, 3, 112, 0, 7, 6, 195, 175, 0, 3, 37, 0, 115, 1, 97, 17, 67,
+			2, 32, 3, 37, 89, 0, 4, 1, 17, 65, 2, 32, 3, 57, 0, 1, 17, 65, 2, 108, 17, 65, 0, 101, 1, 17, 65, 2, 32, 0,
+			110, 2, 25, 3, 114, 0, 7, 6, 195, 180, 0, 4, 3, 39, 0, 116, 2, 32, 0, 7, 6, 195, 188, 0, 109, 2, 32, 3, 39, 65,
+			0, 3, 111, 0, 108, 2, 32, 3, 111, 55, 55, 0, 115, 2, 32, 3, 111, 89, 0, 7, 6, 97, 0, 2, 195, 180, 3, 0, 105, 1,
+			102, 2, 115, 17, 65, 3, 13, 0, 4, 110, 121, 3, 21, 0, 119, 2, 25, 0, 4, 3, 35, 0, 2, 105, 108, 25, 0, 2, 110, 110,
+			17, 65, 0, 109, 2, 109, 0, 109, 2, 110, 0, 110, 2, 110, 32, 0, 4, 114, 99, 104, 8, 2, 97, 14, 128, 132, 132, 3, 35, 34,
+			49, 0, 114, 99, 104, 8, 2, 111, 14, 128, 132, 132, 0, 114, 99, 104, 195, 169, 8, 2, 21, 14, 128, 132, 133, 3, 35, 34, 49, 36,
+			0, 114, 99, 104, 195, 169, 111, 8, 2, 21, 14, 128, 132, 134, 3, 35, 34, 49, 36, 39, 0, 111, 195, 187, 116, 2, 105, 3, 35, 40,
+			89, 0, 4, 110, 1, 109, 18, 67, 2, 32, 3, 35, 50, 0, 110, 1, 109, 21, 21, 2, 32, 0, 110, 1, 109, 122, 2, 32, 0, 110,
+			1, 119, 2, 32, 0, 110, 2, 104, 0, 110, 8, 18, 69, 2, 32, 0, 110, 8, 104, 2, 32, 0, 110, 97, 114, 99, 104, 111, 8, 2,
+			21, 14, 128, 132, 135, 3, 35, 50, 35, 34, 49, 39, 0, 4, 121, 2, 97, 107, 3, 35, 57, 0, 121, 101, 1, 98, 98, 2, 32, 0,
+			4, 109, 1, 104, 2, 32, 14, 128, 128, 130, 3, 35, 65, 0, 109, 8, 2, 110, 0, 101, 3, 35, 112, 0, 4, 101, 2, 32, 3, 36,
+			0, 105, 2, 32, 0, 121, 101, 1, 98, 98, 2, 29, 3, 36, 37, 0, 4, 117, 3, 39, 0, 117, 100, 2, 32, 0, 117, 116, 111, 8,
+			2, 21, 14, 128, 132, 132, 3, 39, 47, 39, 0, 117, 116, 111, 109, 8, 2, 110, 3, 39, 47, 127, 0, 117, 100, 8, 17, 67, 2, 32,
+			3, 39, 72, 0, 117, 100, 105, 111, 8, 2, 21, 14, 128, 132, 133, 3, 39, 72, 37, 39, 0, 117, 116, 2, 32, 3, 39, 140, 0, 4,
+			111, 117, 1, 115, 2, 108, 101, 3, 40, 0, 111, 117, 108, 1, 115, 2, 32, 0, 111, 195, 187, 116, 3, 40, 47, 0, 4, 105, 3, 112,
+			0, 105, 8, 108, 97, 98, 2, 32, 0, 105, 8, 114, 118, 2, 32, 0, 105, 8, 115, 115, 101, 2, 32, 0, 105, 101, 0, 121, 2, 17,
+			67, 0, 121, 2, 32, 0, 121, 3, 112, 57, 0, 121, 101, 114, 1, 108, 29, 2, 29, 3, 112, 57, 117, 34, 0, 4, 105, 101, 110, 116,
+			3, 112, 140, 0, 105, 116, 2, 32, 0, 105, 115, 2, 32, 3, 112, 143, 0, 4, 101, 110, 3, 113, 0, 109, 2, 18, 76, 0, 110, 1,
+			109, 108, 117, 2, 32, 0, 110, 1, 109, 115, 105, 108, 2, 32, 0, 110, 2, 25, 0, 110, 8, 109, 175, 195, 97, 99, 2, 32, 0, 111,
+			110, 8, 17, 67, 2, 32, 0, 4, 110, 116, 105, 8, 2, 17, 67, 17, 65, 29, 14, 128, 132, 132, 3, 113, 47, 37, 0, 110, 116, 105,
+			8, 2, 21, 21, 14, 128, 132, 132, 0, 4, 105, 109, 2, 25, 3, 114, 0, 105, 110, 2, 25, 0, 4, 105, 110, 1, 104, 99, 2, 32,
+			3, 114, 134, 0, 105, 110, 1, 116, 17, 67, 2, 32, 0, 4, 117, 2, 108, 32, 3, 127, 0, 117, 2, 114, 101, 32, 0, 7, 6, 98,
+			0, 1, 109, 111, 2, 32, 3, 0, 4, 97, 99, 107, 3, 21, 0, 101, 8, 2, 18, 80, 17, 65, 0, 111, 97, 114, 100, 0, 111, 120,
+			2, 32, 0, 117, 103, 103, 0, 4, 3, 71, 0, 98, 0, 7, 6, 99, 0, 4, 1, 97, 98, 97, 116, 2, 32, 3, 0, 4, 1, 97,
+			109, 111, 116, 2, 32, 3, 0, 4, 1, 110, 97, 17, 67, 2, 32, 3, 0, 4, 1, 110, 111, 17, 67, 2, 32, 3, 0, 4, 1, 114,
+			97, 2, 116, 105, 3, 0, 4, 1, 114, 101, 108, 99, 2, 32, 3, 0, 4, 1, 115, 2, 17, 71, 3, 0, 4, 1, 117, 111, 104, 99,
+			116, 2, 32, 3, 0, 1, 120, 2, 17, 71, 3, 0, 4, 104, 1, 110, 2, 32, 3, 21, 0, 104, 2, 109, 101, 110, 116, 0, 117, 116,
+			2, 32, 0, 4, 3, 49, 0, 8, 110, 111, 100, 2, 32, 0, 99, 0, 99, 104, 0, 104, 1, 97, 2, 32, 0, 104, 1, 101, 2, 32,
+			0, 104, 1, 105, 110, 2, 32, 0, 104, 1, 105, 110, 97, 109, 2, 195, 169, 0, 104, 1, 111, 116, 105, 109, 2, 111, 0, 104, 1, 114,
+			111, 2, 101, 115, 17, 67, 0, 104, 1, 114, 111, 2, 105, 17, 67, 0, 104, 2, 108, 0, 104, 2, 110, 0, 104, 2, 114, 0, 104, 2,
+			115, 0, 104, 2, 116, 111, 0, 104, 8, 2, 97, 111, 0, 104, 8, 2, 97, 114, 105, 115, 109, 0, 104, 8, 2, 105, 114, 111, 112, 0,
+			104, 8, 2, 111, 114, 17, 65, 0, 104, 8, 17, 65, 2, 111, 32, 0, 104, 8, 117, 101, 2, 97, 114, 105, 0, 107, 0, 113, 0, 113,
+			117, 0, 104, 114, 111, 110, 111, 8, 2, 21, 14, 128, 132, 134, 3, 49, 34, 39, 50, 39, 0, 4, 97, 115, 116, 2, 32, 14, 128, 128,
+			132, 3, 49, 35, 89, 47, 0, 97, 115, 116, 115, 2, 32, 14, 128, 128, 133, 0, 108, 111, 119, 110, 8, 3, 49, 55, 40, 50, 0, 99,
+			2, 17, 71, 3, 49, 89, 0, 104, 1, 105, 119, 3, 76, 0, 4, 1, 101, 115, 2, 111, 110, 100, 3, 81, 0, 1, 110, 105, 122, 2,
+			32, 0, 4, 2, 17, 71, 3, 89, 0, 39, 8, 2, 14, 128, 140, 130, 0, 4, 8, 2, 100, 3, 89, 36, 0, 111, 101, 8, 2, 108,
+			97, 0, 121, 98, 101, 114, 8, 2, 14, 128, 132, 133, 3, 89, 37, 71, 112, 34, 0, 105, 101, 110, 116, 2, 32, 3, 89, 37, 140, 0,
+			4, 105, 101, 110, 116, 1, 105, 102, 102, 101, 3, 89, 57, 113, 0, 105, 101, 110, 116, 1, 105, 102, 169, 195, 100, 0, 4, 104, 3, 91,
+			0, 104, 8, 2, 111, 114, 105, 122, 0, 104, 8, 2, 111, 114, 111, 0, 7, 6, 100, 0, 4, 1, 105, 111, 2, 32, 3, 0, 4, 1,
+			110, 97, 2, 32, 3, 0, 4, 1, 110, 111, 17, 67, 2, 32, 3, 0, 4, 1, 114, 2, 32, 3, 0, 4, 1, 117, 111, 2, 32, 3,
+			0, 8, 105, 110, 2, 32, 3, 0, 4, 97, 121, 2, 32, 3, 21, 0, 101, 118, 105, 99, 8, 0, 108, 101, 2, 29, 0, 116, 2, 32,
+			3, 47, 0, 4, 3, 72, 0, 1, 114, 111, 108, 2, 32, 0, 8, 110, 97, 98, 2, 32, 0, 8, 110, 97, 108, 2, 32, 0, 8, 110,
+			97, 115, 2, 32, 0, 8, 110, 97, 116, 115, 2, 32, 0, 8, 114, 97, 104, 2, 32, 0, 39, 8, 2, 14, 128, 132, 130, 0, 100, 0,
+			4, 105, 101, 110, 1, 169, 195, 112, 120, 101, 32, 26, 2, 116, 32, 3, 72, 37, 0, 105, 101, 110, 2, 116, 32, 0, 4, 105, 101, 110,
+			8, 169, 195, 112, 120, 101, 2, 116, 32, 3, 72, 57, 113, 0, 105, 101, 110, 8, 169, 195, 114, 103, 110, 105, 2, 116, 32, 0, 101, 110,
+			100, 114, 111, 8, 2, 21, 14, 128, 132, 134, 3, 72, 114, 72, 34, 39, 0, 4, 1, 110, 101, 17, 67, 2, 32, 3, 140, 0, 1, 110,
+			101, 117, 113, 2, 32, 0, 1, 110, 111, 99, 2, 32, 0, 8, 110, 97, 114, 103, 2, 32, 0, 7, 6, 101, 0, 4, 1, 17, 65, 2,
+			114, 17, 65, 3, 0, 4, 1, 17, 67, 2, 45, 3, 0, 4, 1, 18, 73, 21, 2, 17, 67, 17, 65, 3, 0, 4, 1, 18, 73, 21,
+			2, 18, 71, 3, 0, 4, 1, 99, 45, 2, 32, 3, 0, 4, 1, 103, 2, 17, 65, 3, 0, 4, 1, 105, 2, 109, 17, 65, 3, 0,
+			4, 1, 106, 45, 2, 32, 3, 0, 4, 2, 32, 3, 0, 4, 2, 111, 105, 3, 0, 4, 110, 1, 108, 111, 26, 2, 116, 32, 3, 0,
+			4, 110, 1, 118, 117, 111, 99, 32, 26, 2, 116, 32, 3, 0, 110, 1, 118, 117, 111, 99, 32, 115, 2, 116, 32, 3, 0, 195, 175, 2,
+			25, 3, 6, 112, 57, 0, 4, 3, 13, 0, 1, 17, 67, 21, 2, 17, 67, 101, 17, 67, 17, 65, 0, 1, 18, 71, 21, 2, 17, 67,
+			17, 65, 0, 1, 18, 71, 21, 2, 18, 71, 0, 1, 18, 72, 21, 2, 17, 67, 17, 65, 0, 1, 18, 72, 21, 2, 18, 71, 0, 1,
+			18, 73, 21, 2, 17, 67, 18, 75, 17, 67, 0, 1, 18, 73, 21, 2, 18, 71, 18, 75, 17, 67, 0, 1, 100, 2, 115, 115, 117, 115,
+			32, 0, 1, 114, 116, 2, 17, 67, 17, 65, 0, 1, 114, 116, 2, 17, 67, 104, 17, 65, 0, 1, 117, 103, 18, 74, 21, 2, 17, 67,
+			17, 65, 0, 1, 117, 103, 18, 74, 21, 2, 18, 71, 0, 1, 117, 113, 18, 74, 21, 2, 17, 67, 17, 65, 0, 1, 117, 113, 18, 74,
+			21, 2, 18, 71, 0, 2, 17, 67, 108, 0, 2, 17, 67, 114, 0, 8, 100, 2, 99, 104, 0, 8, 108, 2, 17, 67, 17, 65, 0, 8,
+			108, 2, 17, 67, 104, 17, 65, 0, 8, 108, 2, 17, 67, 108, 17, 65, 0, 8, 114, 2, 99, 104, 0, 8, 114, 2, 115, 115, 0, 8,
+			114, 2, 115, 116, 114, 97, 0, 8, 114, 2, 115, 116, 114, 111, 0, 8, 114, 2, 115, 116, 114, 117, 0, 8, 17, 67, 2, 32, 3, 14,
+			0, 4, 8, 2, 17, 67, 101, 29, 3, 21, 0, 97, 0, 100, 2, 32, 0, 101, 0, 102, 111, 114, 101, 2, 32, 0, 105, 110, 103, 2,
+			32, 0, 105, 118, 101, 0, 108, 2, 17, 67, 29, 0, 110, 104, 97, 110, 8, 0, 110, 116, 101, 114, 8, 2, 32, 0, 115, 115, 2, 32,
+			0, 115, 116, 1, 117, 113, 2, 32, 0, 115, 116, 101, 1, 117, 113, 2, 29, 32, 0, 118, 101, 110, 2, 32, 0, 118, 101, 114, 1, 17,
+			67, 111, 0, 118, 101, 114, 8, 0, 119, 2, 12, 12, 0, 121, 101, 8, 0, 4, 109, 1, 21, 2, 109, 101, 3, 35, 0, 109, 1, 108,
+			2, 110, 0, 109, 8, 102, 2, 109, 101, 0, 4, 2, 114, 105, 32, 12, 12, 3, 36, 0, 2, 114, 105, 97, 32, 12, 12, 0, 2, 114,
+			111, 32, 12, 12, 0, 8, 2, 17, 67, 11, 0, 8, 2, 17, 67, 17, 65, 0, 8, 2, 17, 67, 17, 65, 24, 0, 8, 2, 18, 71,
+			17, 65, 0, 8, 109, 2, 103, 97, 0, 8, 114, 2, 115, 115, 117, 0, 8, 116, 114, 97, 2, 12, 12, 0, 100, 1, 105, 112, 2, 32,
+			0, 102, 8, 108, 99, 2, 32, 0, 114, 2, 32, 0, 114, 2, 115, 32, 0, 115, 1, 109, 17, 65, 2, 100, 17, 65, 0, 115, 1, 109,
+			17, 65, 2, 110, 17, 65, 0, 115, 8, 100, 2, 98, 17, 65, 0, 115, 8, 100, 2, 106, 17, 65, 0, 115, 8, 100, 2, 110, 17, 65,
+			0, 115, 8, 100, 2, 113, 17, 65, 0, 115, 8, 108, 2, 113, 17, 65, 0, 115, 8, 109, 2, 100, 17, 65, 0, 115, 8, 109, 2, 110,
+			17, 65, 0, 115, 104, 1, 100, 2, 17, 65, 3, 36, 88, 0, 114, 1, 119, 101, 105, 2, 29, 3, 36, 120, 0, 122, 2, 32, 3, 36,
+			143, 0, 97, 117, 2, 12, 12, 3, 39, 0, 4, 117, 1, 103, 2, 114, 101, 3, 111, 0, 117, 8, 2, 115, 115, 0, 195, 187, 8, 0,
+			117, 116, 8, 2, 32, 3, 111, 140, 0, 4, 1, 104, 103, 2, 116, 17, 65, 29, 3, 112, 0, 1, 105, 2, 114, 116, 32, 0, 1, 112,
+			97, 99, 2, 108, 97, 32, 0, 2, 17, 67, 17, 67, 0, 2, 17, 67, 32, 0, 2, 99, 116, 12, 12, 12, 12, 12, 0, 2, 105, 108,
+			0, 2, 114, 17, 67, 0, 2, 114, 114, 12, 12, 12, 0, 2, 120, 12, 12, 12, 12, 12, 0, 8, 17, 67, 101, 2, 17, 67, 17, 65,
+			12, 12, 0, 98, 1, 102, 2, 118, 17, 65, 0, 99, 116, 1, 112, 2, 32, 0, 105, 0, 108, 2, 108, 0, 109, 2, 109, 97, 0, 110,
+			1, 105, 17, 67, 2, 110, 17, 65, 0, 110, 2, 110, 17, 65, 0, 116, 1, 107, 99, 105, 116, 2, 32, 0, 121, 2, 17, 67, 0, 121,
+			2, 32, 0, 4, 114, 1, 107, 99, 111, 2, 25, 3, 112, 34, 0, 114, 1, 110, 105, 97, 116, 2, 29, 0, 114, 1, 116, 115, 17, 67,
+			2, 29, 0, 114, 8, 17, 67, 2, 32, 0, 114, 8, 104, 17, 67, 2, 32, 0, 114, 8, 105, 102, 2, 32, 0, 114, 8, 105, 104, 2,
+			32, 0, 114, 8, 105, 116, 2, 32, 0, 114, 8, 116, 114, 97, 99, 2, 29, 0, 114, 8, 118, 105, 104, 2, 29, 0, 114, 8, 118, 110,
+			101, 2, 32, 0, 4, 116, 1, 103, 100, 2, 32, 3, 112, 47, 0, 116, 1, 107, 2, 32, 0, 99, 116, 2, 32, 3, 112, 49, 47, 0,
+			4, 120, 116, 114, 97, 8, 2, 17, 67, 14, 128, 132, 133, 3, 112, 49, 89, 47, 34, 35, 0, 120, 116, 114, 97, 8, 2, 117, 14, 128,
+			132, 133, 0, 4, 105, 110, 8, 2, 25, 3, 112, 50, 0, 110, 1, 17, 67, 2, 32, 0, 110, 1, 17, 67, 2, 116, 111, 32, 0, 110,
+			8, 121, 2, 32, 0, 110, 115, 1, 112, 115, 2, 32, 3, 112, 50, 89, 0, 108, 2, 115, 29, 3, 112, 55, 0, 121, 3, 112, 57, 0,
+			109, 110, 1, 108, 105, 3, 112, 65, 0, 115, 116, 1, 45, 2, 32, 3, 112, 89, 47, 0, 116, 1, 109, 2, 32, 3, 112, 140, 0, 4,
+			109, 2, 18, 76, 3, 113, 0, 109, 2, 109, 17, 65, 17, 67, 17, 65, 17, 67, 0, 109, 2, 109, 17, 65, 17, 67, 17, 67, 0, 109,
+			2, 109, 97, 105, 0, 110, 1, 17, 67, 2, 100, 32, 0, 110, 1, 17, 67, 111, 17, 67, 109, 105, 2, 116, 32, 0, 110, 1, 17, 67,
+			111, 17, 67, 110, 105, 2, 116, 32, 0, 110, 1, 17, 67, 169, 195, 2, 116, 32, 0, 110, 1, 17, 67, 169, 195, 2, 116, 32, 0, 110,
+			1, 99, 97, 106, 2, 116, 32, 0, 110, 1, 99, 99, 2, 116, 32, 0, 110, 1, 99, 105, 116, 169, 195, 2, 116, 32, 0, 110, 1, 99,
+			115, 17, 65, 2, 116, 32, 0, 110, 1, 100, 105, 17, 67, 169, 195, 2, 116, 32, 0, 110, 1, 100, 105, 99, 17, 67, 17, 65, 29, 2,
+			116, 32, 0, 110, 1, 100, 105, 114, 116, 29, 2, 116, 32, 0, 110, 1, 100, 117, 17, 67, 2, 116, 32, 0, 110, 1, 103, 110, 105, 21,
+			21, 2, 116, 32, 0, 110, 1, 103, 114, 101, 118, 2, 116, 32, 0, 110, 1, 105, 17, 67, 2, 99, 0, 110, 1, 105, 116, 97, 112, 0,
+			110, 1, 108, 97, 118, 105, 2, 116, 32, 0, 110, 1, 108, 108, 101, 99, 120, 2, 116, 32, 0, 110, 1, 108, 111, 2, 116, 32, 0, 110,
+			1, 108, 117, 2, 116, 32, 0, 110, 1, 109, 97, 17, 67, 105, 2, 116, 32, 0, 110, 1, 109, 97, 109, 114, 2, 116, 32, 0, 110, 1,
+			109, 101, 2, 116, 32, 0, 110, 1, 109, 103, 2, 116, 32, 0, 110, 1, 109, 105, 17, 67, 17, 67, 17, 65, 17, 67, 2, 116, 32, 0,
+			110, 1, 109, 105, 97, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 97, 17, 67, 2, 116, 32, 0, 110, 1, 109, 105, 100, 2, 116, 32,
+			0, 110, 1, 109, 105, 103, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 108, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 108, 112, 2,
+			116, 32, 0, 110, 1, 109, 105, 110, 97, 109, 2, 116, 32, 0, 110, 1, 109, 105, 110, 105, 2, 116, 32, 0, 110, 1, 109, 105, 110, 111,
+			2, 116, 32, 0, 110, 1, 109, 105, 115, 17, 65, 2, 116, 32, 0, 110, 1, 109, 105, 116, 17, 65, 2, 116, 32, 0, 110, 1, 109, 109,
+			2, 116, 32, 0, 110, 1, 109, 111, 109, 2, 116, 32, 0, 110, 1, 109, 114, 101, 2, 116, 32, 0, 110, 1, 109, 114, 117, 111, 116, 2,
+			116, 32, 0, 110, 1, 109, 117, 17, 67, 111, 2, 116, 32, 0, 110, 1, 109, 117, 100, 2, 116, 32, 0, 110, 1, 109, 117, 103, 2, 116,
+			32, 0, 110, 1, 109, 117, 106, 2, 116, 32, 0, 110, 1, 109, 117, 114, 2, 116, 32, 0, 110, 1, 110, 97, 109, 2, 116, 32, 0, 110,
+			1, 110, 105, 109, 109, 105, 2, 116, 32, 0, 110, 1, 110, 105, 109, 169, 195, 111, 2, 116, 32, 0, 110, 1, 110, 105, 116, 110, 111, 2,
+			116, 32, 0, 110, 1, 110, 105, 116, 114, 101, 2, 116, 32, 0, 110, 1, 112, 114, 17, 65, 29, 2, 116, 32, 0, 110, 1, 114, 97, 112,
+			115, 2, 116, 32, 0, 110, 1, 114, 114, 17, 65, 17, 67, 2, 116, 32, 0, 110, 1, 116, 105, 110, 169, 195, 2, 116, 32, 0, 110, 1,
+			116, 116, 105, 109, 2, 116, 32, 0, 110, 1, 117, 108, 102, 17, 67, 2, 116, 32, 0, 110, 1, 117, 113, 2, 100, 32, 0, 110, 1, 117,
+			113, 169, 195, 2, 116, 32, 0, 110, 2, 17, 67, 17, 65, 0, 110, 2, 17, 67, 17, 67, 0, 110, 2, 110, 117, 0, 110, 2, 115, 32,
+			0, 110, 8, 17, 67, 2, 116, 32, 0, 110, 8, 100, 114, 97, 2, 116, 32, 0, 110, 8, 103, 97, 2, 116, 32, 0, 110, 8, 103, 114,
+			97, 2, 116, 32, 0, 110, 8, 103, 114, 101, 115, 2, 116, 32, 0, 110, 8, 103, 114, 117, 2, 116, 32, 0, 110, 8, 108, 97, 116, 2,
+			116, 32, 0, 110, 8, 108, 111, 100, 2, 116, 32, 0, 110, 8, 109, 105, 99, 2, 116, 32, 0, 110, 8, 109, 105, 112, 2, 116, 32, 0,
+			110, 8, 109, 114, 17, 65, 115, 2, 116, 32, 0, 110, 8, 110, 105, 109, 169, 195, 2, 116, 32, 0, 110, 8, 114, 97, 112, 2, 116, 32,
+			0, 110, 8, 114, 97, 112, 112, 97, 2, 116, 32, 0, 110, 8, 114, 97, 118, 2, 116, 32, 0, 110, 8, 114, 111, 108, 102, 2, 116, 32,
+			0, 110, 8, 114, 117, 97, 108, 2, 116, 32, 0, 110, 8, 116, 97, 108, 2, 116, 32, 0, 110, 8, 116, 97, 112, 2, 116, 32, 0, 110,
+			8, 116, 110, 111, 99, 2, 116, 32, 0, 110, 8, 116, 110, 111, 99, 169, 195, 109, 2, 116, 32, 0, 110, 8, 118, 117, 111, 99, 2, 116,
+			14, 128, 160, 131, 0, 110, 8, 118, 117, 111, 115, 2, 116, 32, 0, 110, 115, 1, 99, 110, 2, 32, 0, 4, 110, 2, 104, 17, 65, 3,
+			113, 50, 0, 110, 8, 2, 17, 65, 0, 110, 2, 32, 3, 113, 134, 0, 4, 110, 116, 1, 103, 105, 100, 110, 2, 32, 3, 113, 140, 0,
+			110, 116, 1, 103, 105, 108, 105, 2, 32, 0, 110, 116, 1, 103, 105, 108, 108, 2, 32, 0, 110, 116, 1, 103, 110, 97, 116, 2, 32, 0,
+			110, 115, 1, 17, 67, 169, 195, 2, 32, 3, 113, 143, 0, 4, 105, 110, 2, 25, 3, 114, 0, 110, 1, 17, 65, 17, 65, 2, 32, 0,
+			110, 1, 100, 111, 2, 100, 114, 0, 110, 1, 105, 17, 67, 2, 25, 0, 110, 1, 109, 97, 120, 2, 32, 0, 110, 1, 112, 112, 97, 2,
+			100, 105, 0, 110, 1, 169, 195, 2, 32, 0, 110, 8, 17, 67, 2, 106, 0, 110, 8, 109, 97, 108, 102, 2, 99, 0, 105, 110, 1, 108,
+			112, 2, 32, 3, 114, 134, 0, 4, 1, 104, 99, 116, 2, 114, 29, 3, 117, 0, 1, 116, 114, 101, 118, 2, 114, 29, 0, 117, 1, 103,
+			0, 117, 2, 17, 67, 29, 0, 117, 2, 17, 67, 101, 29, 0, 117, 2, 105, 0, 117, 2, 108, 101, 29, 0, 117, 2, 114, 17, 67, 0,
+			117, 2, 114, 101, 29, 0, 117, 2, 114, 114, 101, 29, 0, 4, 114, 1, 107, 99, 97, 2, 25, 3, 117, 34, 0, 114, 1, 107, 99, 111,
+			114, 2, 25, 0, 114, 8, 116, 116, 117, 99, 2, 29, 0, 97, 109, 1, 114, 17, 67, 3, 125, 12, 65, 0, 97, 110, 101, 114, 1, 108,
+			17, 67, 3, 125, 50, 117, 34, 0, 97, 109, 101, 114, 1, 114, 17, 67, 3, 125, 65, 117, 34, 0, 4, 117, 3, 132, 0, 117, 2, 17,
+			67, 101, 29, 0, 117, 2, 17, 67, 101, 114, 32, 0, 117, 2, 108, 101, 114, 0, 195, 187, 3, 132, 12, 0, 117, 116, 2, 32, 3, 132,
+			140, 0, 117, 120, 2, 32, 3, 132, 143, 0, 4, 110, 116, 1, 17, 65, 2, 32, 3, 140, 0, 110, 116, 1, 100, 105, 17, 67, 169, 195,
+			26, 2, 32, 0, 110, 116, 1, 103, 105, 2, 32, 0, 110, 116, 1, 103, 114, 101, 118, 26, 2, 32, 0, 110, 116, 1, 103, 114, 117, 32,
+			26, 2, 32, 0, 110, 116, 1, 108, 97, 118, 105, 26, 2, 32, 0, 110, 116, 1, 108, 108, 101, 99, 120, 26, 2, 32, 0, 110, 116, 1,
+			108, 111, 29, 2, 32, 0, 110, 116, 1, 108, 117, 26, 2, 32, 0, 110, 116, 1, 108, 117, 99, 17, 67, 2, 32, 0, 110, 116, 1, 108,
+			117, 101, 2, 32, 0, 110, 116, 1, 109, 114, 101, 102, 26, 2, 32, 0, 110, 116, 1, 114, 97, 112, 32, 26, 2, 32, 0, 110, 116, 1,
+			114, 114, 101, 17, 67, 2, 32, 0, 110, 116, 1, 117, 108, 102, 17, 67, 26, 2, 32, 0, 110, 116, 2, 32, 0, 110, 116, 8, 116, 110,
+			111, 99, 26, 2, 32, 0, 115, 2, 32, 3, 143, 0, 7, 6, 102, 0, 4, 2, 102, 3, 0, 8, 114, 101, 110, 2, 29, 3, 0, 4,
+			105, 114, 101, 8, 2, 17, 67, 17, 65, 3, 21, 0, 105, 114, 101, 8, 2, 17, 67, 17, 67, 17, 65, 0, 108, 121, 0, 114, 97, 109,
+			101, 8, 0, 116, 101, 114, 2, 32, 0, 3, 83, 0, 4, 8, 117, 101, 110, 2, 32, 97, 110, 115, 3, 84, 0, 8, 117, 101, 110, 2,
+			32, 104, 101, 117, 114, 101, 115, 0, 7, 6, 103, 0, 4, 1, 110, 97, 116, 169, 195, 2, 32, 3, 0, 4, 1, 114, 117, 111, 98, 2,
+			32, 3, 0, 4, 8, 110, 97, 114, 2, 32, 3, 0, 4, 8, 110, 97, 115, 2, 32, 3, 0, 4, 8, 110, 111, 108, 2, 32, 3, 0,
+			4, 116, 1, 110, 105, 118, 2, 32, 117, 110, 3, 0, 116, 2, 32, 3, 0, 4, 97, 109, 101, 8, 2, 29, 3, 21, 0, 104, 2, 25,
+			0, 105, 114, 108, 0, 121, 2, 32, 0, 4, 116, 1, 110, 17, 65, 2, 17, 65, 3, 47, 0, 116, 1, 110, 105, 118, 2, 32, 17, 65,
+			0, 116, 1, 110, 105, 118, 2, 32, 99, 105, 110, 113, 0, 116, 1, 110, 105, 118, 2, 32, 100, 101, 117, 120, 0, 116, 1, 110, 105, 118,
+			2, 32, 104, 117, 105, 116, 0, 116, 1, 110, 105, 118, 2, 32, 110, 101, 117, 102, 0, 116, 1, 110, 105, 118, 2, 32, 110, 101, 117, 118,
+			105, 0, 116, 1, 110, 105, 118, 2, 32, 113, 117, 97, 116, 114, 0, 116, 1, 110, 105, 118, 2, 32, 115, 101, 112, 116, 0, 116, 1, 110,
+			105, 118, 2, 32, 115, 105, 120, 0, 116, 1, 110, 105, 118, 2, 32, 116, 114, 111, 105, 115, 0, 110, 2, 105, 101, 3, 50, 0, 110, 3,
+			50, 57, 0, 110, 2, 101, 17, 67, 17, 65, 3, 50, 57, 14, 0, 4, 110, 2, 32, 3, 67, 0, 110, 2, 101, 32, 0, 110, 105, 1,
+			105, 97, 0, 110, 105, 3, 67, 37, 0, 4, 3, 81, 0, 1, 97, 105, 100, 2, 110, 111, 0, 2, 17, 67, 0, 2, 32, 0, 8, 97,
+			2, 110, 111, 0, 103, 0, 117, 2, 105, 0, 110, 101, 114, 8, 97, 119, 2, 32, 3, 81, 50, 112, 34, 0, 103, 1, 117, 115, 2, 17,
+			71, 3, 81, 90, 0, 4, 117, 105, 1, 105, 97, 2, 108, 3, 81, 111, 37, 0, 117, 105, 1, 110, 105, 2, 115, 0, 4, 2, 17, 71,
+			3, 90, 0, 101, 2, 97, 0, 101, 2, 111, 0, 116, 115, 8, 110, 105, 118, 101, 114, 116, 97, 117, 113, 2, 32, 3, 143, 0, 7, 6,
+			104, 0, 4, 3, 0, 4, 8, 2, 97, 98, 105, 3, 0, 4, 8, 2, 97, 108, 108, 111, 3, 0, 4, 8, 2, 97, 109, 101, 3, 0,
+			4, 8, 2, 97, 110, 100, 114, 3, 0, 4, 8, 2, 97, 114, 109, 3, 0, 4, 8, 2, 101, 99, 116, 3, 0, 4, 8, 2, 101, 108,
+			3, 0, 4, 8, 2, 101, 114, 98, 3, 0, 4, 8, 2, 101, 117, 114, 101, 3, 0, 4, 8, 2, 105, 98, 101, 114, 3, 0, 4, 8,
+			2, 105, 112, 112, 111, 3, 0, 4, 8, 2, 105, 114, 111, 3, 0, 4, 8, 2, 105, 115, 116, 3, 0, 4, 8, 2, 105, 118, 3, 0,
+			4, 8, 2, 111, 109, 109, 3, 0, 4, 8, 2, 111, 110, 110, 3, 0, 4, 8, 2, 111, 114, 97, 3, 0, 4, 8, 2, 111, 114, 105,
+			112, 3, 0, 4, 8, 2, 111, 114, 105, 122, 3, 0, 4, 8, 2, 111, 114, 108, 111, 3, 0, 4, 8, 2, 111, 114, 111, 3, 0, 4,
+			8, 2, 111, 114, 114, 3, 0, 4, 8, 2, 111, 115, 3, 0, 4, 8, 2, 117, 105, 108, 3, 0, 4, 8, 2, 117, 105, 115, 115, 3,
+			0, 4, 8, 2, 117, 105, 116, 114, 3, 0, 4, 8, 2, 117, 109, 17, 65, 3, 0, 4, 8, 2, 117, 109, 17, 67, 3, 0, 4, 8,
+			2, 121, 3, 0, 4, 8, 2, 195, 169, 3, 0, 8, 2, 195, 180, 3, 0, 4, 97, 8, 2, 17, 67, 32, 3, 21, 0, 97, 108, 102,
+			8, 0, 110, 0, 4, 8, 3, 23, 0, 8, 2, 195, 169, 114, 105, 115, 0, 8, 2, 195, 169, 114, 111, 0, 105, 8, 2, 17, 65, 3,
+			23, 57, 0, 101, 105, 109, 2, 32, 3, 35, 57, 65, 0, 121, 112, 114, 97, 8, 2, 21, 14, 128, 132, 133, 3, 37, 48, 34, 35, 0,
+			4, 121, 112, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 37, 48, 112, 34, 0, 121, 112, 101, 114, 8, 2, 32, 0, 97, 117, 115, 2,
+			32, 3, 39, 89, 0, 121, 8, 2, 17, 65, 3, 57, 0, 7, 6, 105, 0, 4, 1, 102, 32, 109, 97, 114, 2, 108, 101, 3, 21, 0,
+			2, 112, 17, 65, 100, 0, 98, 117, 116, 101, 114, 2, 29, 0, 101, 118, 0, 102, 101, 2, 32, 0, 103, 110, 2, 32, 0, 108, 108, 1,
+			17, 67, 2, 121, 32, 0, 108, 108, 2, 32, 0, 110, 100, 1, 17, 67, 17, 65, 2, 101, 114, 29, 0, 110, 100, 2, 29, 0, 110, 100,
+			8, 17, 67, 2, 101, 114, 29, 0, 110, 103, 2, 32, 0, 114, 100, 1, 17, 67, 2, 29, 0, 114, 116, 1, 17, 67, 2, 32, 0, 118,
+			101, 110, 2, 32, 0, 122, 101, 2, 25, 0, 4, 1, 108, 102, 102, 111, 2, 110, 101, 32, 3, 35, 57, 0, 1, 108, 110, 111, 2, 110,
+			101, 32, 0, 1, 108, 116, 111, 2, 110, 101, 29, 0, 1, 114, 100, 2, 118, 101, 0, 1, 116, 103, 2, 109, 0, 8, 2, 99, 101, 21,
+			0, 4, 3, 37, 0, 1, 17, 67, 2, 101, 114, 17, 65, 0, 101, 110, 1, 17, 67, 2, 116, 32, 0, 101, 110, 1, 118, 169, 195, 100,
+			2, 116, 32, 0, 108, 8, 2, 108, 0, 110, 2, 110, 0, 115, 1, 17, 67, 2, 32, 0, 110, 2, 104, 3, 37, 50, 0, 110, 116, 1,
+			114, 112, 2, 32, 3, 37, 50, 47, 0, 110, 103, 2, 104, 3, 37, 50, 81, 0, 4, 108, 108, 1, 99, 2, 105, 3, 37, 55, 0, 108,
+			108, 1, 99, 115, 111, 0, 108, 108, 1, 116, 115, 105, 100, 0, 108, 108, 1, 117, 113, 110, 97, 0, 108, 108, 1, 118, 2, 101, 32, 0,
+			108, 108, 8, 18, 70, 0, 4, 108, 108, 1, 17, 67, 3, 37, 57, 0, 108, 108, 1, 117, 103, 0, 108, 108, 1, 117, 103, 105, 97, 0,
+			108, 108, 1, 117, 113, 0, 109, 2, 32, 3, 37, 65, 0, 109, 109, 3, 37, 65, 65, 0, 110, 103, 2, 115, 3, 37, 68, 0, 4, 108,
+			115, 1, 102, 32, 18, 66, 2, 32, 3, 37, 89, 0, 115, 1, 114, 105, 25, 2, 32, 0, 115, 1, 114, 111, 98, 2, 32, 0, 115, 1,
+			114, 111, 100, 2, 32, 0, 115, 1, 114, 111, 116, 2, 32, 0, 4, 101, 110, 1, 108, 99, 2, 17, 67, 3, 37, 113, 0, 101, 110, 1,
+			114, 111, 2, 116, 0, 4, 108, 1, 97, 2, 32, 3, 57, 0, 108, 1, 101, 2, 32, 0, 108, 1, 117, 2, 32, 0, 108, 108, 1, 17,
+			65, 0, 4, 101, 110, 1, 108, 111, 109, 2, 17, 67, 3, 57, 113, 0, 101, 110, 1, 110, 169, 195, 118, 2, 17, 67, 0, 101, 110, 1,
+			112, 105, 99, 2, 17, 67, 0, 101, 110, 1, 116, 97, 2, 116, 32, 0, 101, 110, 1, 116, 111, 2, 116, 32, 0, 4, 101, 110, 1, 116,
+			2, 25, 32, 3, 57, 114, 0, 101, 110, 1, 118, 2, 25, 32, 0, 4, 109, 2, 17, 67, 3, 114, 0, 110, 2, 17, 67, 0, 110, 2,
+			32, 0, 110, 99, 116, 2, 32, 0, 4, 110, 116, 101, 114, 8, 2, 32, 3, 114, 47, 6, 112, 34, 0, 110, 116, 101, 114, 8, 2, 110,
+			101, 32, 0, 4, 110, 116, 114, 97, 8, 2, 110, 101, 14, 128, 132, 133, 3, 114, 47, 34, 35, 0, 110, 116, 114, 97, 8, 2, 117, 14,
+			128, 132, 133, 0, 4, 110, 116, 101, 114, 8, 2, 21, 21, 14, 128, 132, 133, 3, 114, 47, 112, 34, 0, 110, 116, 101, 114, 114, 8, 2,
+			17, 65, 0, 110, 102, 114, 97, 8, 2, 115, 14, 128, 132, 133, 3, 114, 83, 34, 35, 0, 114, 116, 1, 108, 102, 3, 117, 34, 47, 0,
+			7, 6, 106, 0, 4, 8, 2, 111, 98, 25, 3, 75, 0, 8, 2, 111, 104, 25, 0, 97, 122, 122, 8, 3, 75, 35, 88, 0, 4, 3,
+			90, 0, 39, 8, 2, 14, 128, 140, 130, 0, 101, 2, 97, 0, 117, 115, 113, 117, 39, 8, 2, 14, 128, 132, 134, 3, 90, 111, 89, 49,
+			0, 7, 6, 107, 0, 4, 1, 17, 67, 17, 65, 2, 29, 3, 21, 0, 101, 2, 32, 0, 101, 2, 110, 29, 0, 101, 2, 114, 29, 0,
+			101, 2, 115, 32, 0, 3, 49, 0, 7, 6, 108, 0, 4, 1, 105, 17, 67, 117, 2, 32, 3, 0, 4, 1, 105, 116, 110, 2, 32, 3,
+			0, 116, 1, 117, 97, 3, 0, 4, 1, 17, 67, 11, 2, 101, 29, 3, 21, 0, 1, 17, 67, 17, 65, 2, 29, 0, 100, 1, 111, 2,
+			32, 0, 100, 1, 117, 2, 32, 0, 101, 115, 115, 2, 32, 0, 105, 110, 101, 8, 2, 29, 0, 105, 118, 101, 8, 0, 111, 117, 100, 1,
+			21, 2, 32, 0, 4, 3, 55, 0, 1, 102, 102, 2, 101, 29, 0, 1, 112, 112, 2, 101, 29, 0, 39, 8, 2, 14, 128, 132, 130, 0,
+			108, 2, 17, 65, 0, 111, 114, 115, 113, 117, 39, 8, 2, 14, 128, 132, 135, 3, 55, 39, 34, 89, 49, 0, 4, 104, 1, 105, 116, 110,
+			3, 57, 0, 108, 1, 105, 117, 0, 7, 6, 109, 0, 4, 2, 110, 32, 3, 21, 0, 97, 105, 108, 1, 100, 0, 97, 105, 108, 1, 101,
+			0, 97, 105, 108, 1, 103, 0, 97, 105, 108, 1, 116, 0, 111, 118, 2, 17, 65, 29, 0, 111, 118, 2, 105, 101, 32, 0, 4, 3, 65,
+			0, 39, 8, 2, 14, 128, 140, 130, 0, 109, 0, 99, 8, 2, 21, 14, 128, 132, 130, 3, 65, 35, 49, 0, 97, 115, 116, 101, 114, 2,
+			32, 14, 128, 128, 134, 3, 65, 35, 89, 47, 117, 34, 0, 115, 8, 2, 14, 128, 132, 130, 3, 112, 65, 112, 89, 0, 7, 6, 110, 0,
+			4, 2, 101, 109, 101, 32, 3, 21, 0, 2, 101, 109, 101, 115, 32, 0, 97, 109, 101, 8, 0, 97, 109, 101, 8, 101, 114, 0, 4, 3,
+			50, 0, 39, 8, 2, 14, 128, 140, 130, 0, 110, 0, 103, 104, 3, 50, 81, 0, 8, 2, 32, 194, 176, 3, 50, 111, 65, 36, 34, 39,
+			0, 101, 114, 8, 17, 67, 17, 65, 119, 2, 32, 3, 50, 112, 34, 0, 101, 117, 114, 111, 8, 2, 21, 21, 14, 128, 132, 133, 3, 50,
+			132, 34, 39, 0, 103, 2, 32, 3, 68, 0, 118, 100, 97, 8, 2, 14, 128, 132, 132, 3, 112, 50, 84, 36, 72, 36, 35, 0, 7, 6,
+			111, 0, 4, 2, 108, 100, 101, 114, 32, 3, 21, 0, 8, 2, 114, 100, 101, 114, 32, 0, 97, 2, 17, 67, 101, 114, 29, 0, 97, 2,
+			29, 0, 97, 99, 104, 0, 101, 115, 0, 102, 8, 2, 29, 0, 105, 110, 103, 1, 17, 67, 2, 32, 0, 110, 1, 116, 103, 2, 32, 0,
+			110, 1, 116, 115, 17, 67, 2, 32, 0, 110, 101, 8, 0, 111, 2, 17, 67, 101, 0, 111, 2, 29, 0, 111, 2, 107, 0, 111, 2, 115,
+			116, 0, 111, 116, 1, 17, 67, 0, 116, 8, 17, 67, 115, 0, 117, 100, 1, 17, 67, 29, 2, 29, 0, 117, 100, 1, 108, 2, 29, 0,
+			117, 110, 2, 17, 67, 0, 118, 101, 114, 8, 0, 119, 2, 29, 0, 119, 2, 101, 0, 121, 8, 17, 67, 2, 29, 0, 117, 8, 2, 97,
+			116, 3, 23, 40, 0, 110, 8, 2, 122, 3, 23, 116, 0, 101, 8, 104, 112, 2, 17, 67, 3, 36, 0, 4, 1, 17, 67, 2, 109, 101,
+			32, 3, 39, 0, 2, 32, 0, 2, 101, 17, 67, 0, 2, 115, 17, 65, 0, 2, 116, 32, 0, 2, 122, 17, 65, 0, 99, 1, 114, 98,
+			2, 32, 0, 99, 1, 114, 99, 2, 32, 0, 105, 8, 2, 103, 110, 111, 110, 0, 111, 1, 122, 0, 112, 8, 108, 97, 103, 2, 32, 0,
+			112, 8, 114, 105, 115, 2, 32, 0, 115, 1, 32, 115, 2, 32, 0, 115, 1, 32, 120, 2, 32, 0, 115, 8, 118, 2, 103, 17, 71, 0,
+			115, 116, 1, 118, 2, 32, 0, 4, 97, 2, 32, 3, 39, 35, 0, 97, 2, 115, 32, 0, 111, 1, 122, 2, 17, 67, 3, 39, 39, 0,
+			115, 115, 1, 114, 103, 3, 39, 89, 0, 4, 111, 1, 122, 2, 109, 3, 40, 0, 117, 0, 117, 101, 2, 109, 17, 65, 0, 117, 112, 8,
+			17, 67, 2, 32, 0, 195, 185, 0, 195, 187, 0, 117, 2, 105, 110, 3, 58, 0, 4, 101, 2, 108, 108, 17, 65, 3, 58, 35, 0, 105,
+			0, 121, 0, 195, 170, 2, 108, 0, 121, 2, 17, 65, 3, 58, 35, 57, 0, 4, 105, 110, 2, 17, 67, 3, 58, 114, 0, 105, 110, 2,
+			32, 0, 4, 109, 1, 110, 2, 29, 3, 116, 0, 109, 2, 18, 76, 0, 109, 2, 116, 0, 110, 2, 25, 0, 110, 8, 99, 2, 32, 0,
+			110, 116, 8, 109, 2, 109, 0, 110, 116, 8, 109, 2, 112, 17, 65, 17, 67, 0, 110, 116, 8, 109, 2, 114, 17, 65, 97, 108, 0, 110,
+			115, 104, 2, 17, 65, 3, 116, 88, 0, 110, 8, 17, 67, 2, 32, 3, 116, 134, 0, 110, 2, 116, 32, 3, 116, 140, 0, 4, 101, 2,
+			105, 3, 117, 0, 101, 8, 104, 112, 2, 110, 32, 0, 101, 117, 0, 4, 3, 127, 0, 2, 17, 67, 17, 67, 0, 8, 17, 67, 2, 109,
+			101, 32, 0, 8, 121, 2, 121, 0, 110, 2, 110, 0, 111, 1, 99, 108, 97, 2, 108, 0, 121, 8, 99, 2, 111, 3, 127, 37, 0, 110,
+			104, 2, 17, 65, 3, 127, 50, 0, 121, 8, 98, 2, 99, 111, 3, 127, 57, 0, 109, 2, 32, 3, 127, 65, 0, 115, 8, 2, 32, 12,
+			12, 3, 127, 89, 0, 4, 101, 8, 2, 17, 67, 3, 132, 0, 101, 117, 100, 0, 101, 117, 102, 115, 2, 32, 0, 101, 117, 2, 120, 3,
+			132, 143, 0, 7, 6, 112, 0, 4, 1, 97, 98, 2, 116, 3, 0, 4, 1, 97, 114, 100, 2, 32, 3, 0, 4, 1, 108, 117, 99, 115,
+			2, 116, 3, 0, 4, 1, 109, 97, 99, 2, 32, 3, 0, 4, 1, 109, 97, 104, 99, 2, 32, 3, 0, 4, 1, 109, 111, 99, 2, 116,
+			3, 0, 4, 2, 112, 3, 0, 4, 115, 1, 109, 2, 32, 3, 0, 4, 115, 1, 114, 2, 32, 3, 0, 116, 1, 17, 67, 2, 32, 3,
+			0, 4, 97, 100, 2, 32, 3, 21, 0, 108, 117, 103, 0, 114, 105, 110, 116, 101, 114, 2, 32, 0, 4, 116, 1, 101, 115, 2, 32, 3,
+			47, 0, 116, 1, 101, 115, 2, 105, 195, 168, 0, 3, 48, 0, 97, 114, 97, 8, 2, 112, 17, 67, 14, 128, 132, 132, 3, 48, 35, 34,
+			35, 0, 111, 108, 121, 8, 2, 21, 14, 128, 132, 132, 3, 48, 39, 55, 37, 0, 4, 111, 115, 116, 8, 2, 17, 65, 17, 67, 17, 67,
+			14, 128, 132, 132, 3, 48, 39, 89, 47, 0, 111, 115, 116, 8, 2, 17, 67, 14, 128, 132, 132, 0, 115, 121, 99, 104, 8, 2, 21, 14,
+			128, 132, 133, 3, 48, 89, 37, 49, 0, 4, 115, 121, 99, 104, 8, 2, 17, 65, 17, 65, 32, 14, 128, 132, 133, 3, 48, 89, 37, 91,
+			0, 115, 121, 99, 104, 8, 2, 105, 17, 67, 14, 128, 132, 133, 0, 115, 101, 117, 100, 111, 8, 2, 21, 14, 128, 132, 134, 3, 48, 89,
+			132, 72, 39, 0, 117, 105, 115, 113, 117, 39, 8, 2, 14, 128, 132, 135, 3, 48, 111, 37, 89, 49, 0, 97, 121, 115, 3, 48, 112, 37,
+			143, 0, 104, 3, 83, 0, 104, 111, 116, 111, 8, 2, 21, 14, 128, 132, 133, 3, 83, 39, 47, 39, 0, 7, 6, 113, 0, 4, 1, 110,
+			2, 32, 99, 101, 110, 116, 32, 3, 0, 1, 110, 2, 32, 109, 105, 108, 108, 3, 0, 117, 105, 99, 107, 3, 21, 0, 4, 3, 49, 0,
+			1, 110, 2, 32, 0, 117, 0, 117, 39, 8, 2, 17, 65, 14, 128, 132, 131, 0, 117, 101, 8, 2, 32, 3, 49, 13, 0, 117, 97, 8,
+			2, 100, 114, 105, 108, 108, 3, 49, 35, 0, 117, 8, 97, 2, 105, 102, 3, 49, 40, 0, 4, 117, 97, 1, 169, 195, 100, 3, 49, 58,
+			35, 0, 117, 97, 8, 2, 100, 0, 117, 97, 8, 2, 114, 116, 122, 0, 117, 97, 8, 2, 116, 17, 65, 0, 117, 97, 8, 17, 65, 0,
+			117, 97, 8, 17, 67, 0, 117, 97, 8, 97, 0, 117, 97, 110, 8, 2, 116, 17, 65, 3, 49, 58, 113, 0, 4, 117, 105, 8, 17, 65,
+			2, 100, 105, 115, 116, 3, 49, 111, 37, 0, 117, 105, 8, 17, 65, 2, 108, 97, 116, 0, 7, 6, 114, 0, 4, 2, 17, 67, 121, 32,
+			3, 21, 0, 101, 97, 108, 8, 0, 115, 116, 2, 32, 0, 117, 108, 101, 8, 0, 4, 3, 34, 0, 114, 0, 114, 1, 117, 111, 99, 2,
+			105, 0, 114, 1, 117, 111, 99, 2, 111, 0, 4, 114, 1, 117, 111, 99, 3, 34, 34, 0, 114, 1, 117, 111, 109, 0, 114, 8, 117, 115,
+			0, 97, 100, 105, 111, 8, 2, 21, 14, 128, 132, 133, 3, 34, 35, 72, 37, 39, 0, 7, 6, 115, 0, 4, 1, 117, 17, 67, 2, 32,
+			3, 0, 4, 1, 117, 99, 111, 100, 2, 32, 3, 0, 4, 1, 117, 99, 169, 195, 2, 32, 3, 0, 4, 1, 117, 103, 105, 2, 32, 3,
+			0, 4, 1, 117, 109, 169, 195, 2, 32, 3, 0, 4, 1, 117, 110, 101, 2, 32, 3, 0, 4, 1, 117, 114, 97, 2, 32, 3, 0, 4,
+			1, 117, 114, 117, 111, 2, 32, 3, 0, 4, 1, 117, 116, 105, 97, 2, 32, 3, 0, 4, 8, 117, 98, 17, 65, 2, 32, 3, 0, 4,
+			8, 117, 109, 2, 32, 3, 0, 4, 8, 117, 111, 116, 2, 32, 17, 67, 101, 115, 32, 3, 0, 4, 8, 117, 111, 116, 2, 32, 17, 67,
+			111, 115, 32, 3, 0, 8, 117, 111, 116, 2, 32, 108, 101, 117, 114, 115, 32, 3, 0, 4, 8, 17, 65, 2, 32, 3, 21, 0, 101, 110,
+			100, 2, 32, 0, 101, 114, 118, 101, 114, 8, 2, 29, 0, 104, 2, 17, 65, 112, 0, 104, 2, 17, 65, 116, 0, 104, 2, 32, 0, 105,
+			100, 101, 1, 18, 79, 2, 29, 12, 12, 12, 0, 105, 100, 101, 8, 2, 29, 12, 12, 12, 0, 107, 121, 8, 0, 109, 105, 108, 8, 0,
+			111, 110, 1, 18, 78, 2, 32, 0, 112, 121, 0, 116, 111, 110, 1, 18, 78, 2, 32, 0, 116, 111, 110, 101, 2, 32, 0, 4, 1, 17,
+			65, 2, 17, 65, 3, 88, 0, 1, 98, 117, 2, 105, 115, 0, 1, 110, 97, 114, 116, 2, 17, 65, 0, 2, 98, 0, 2, 100, 0, 2,
+			103, 0, 2, 106, 0, 2, 118, 0, 8, 108, 97, 2, 97, 99, 0, 104, 1, 169, 195, 100, 2, 17, 65, 0, 4, 3, 89, 0, 1, 17,
+			65, 2, 111, 102, 116, 0, 1, 17, 65, 2, 111, 108, 32, 0, 1, 97, 107, 97, 2, 32, 0, 1, 97, 115, 110, 97, 107, 2, 32, 0,
+			1, 105, 97, 2, 101, 109, 0, 1, 110, 97, 114, 116, 2, 101, 0, 1, 110, 97, 114, 116, 2, 117, 98, 0, 1, 111, 114, 116, 97, 98,
+			2, 32, 0, 1, 111, 114, 169, 195, 99, 111, 2, 32, 0, 1, 117, 98, 17, 65, 2, 32, 0, 1, 117, 98, 109, 2, 32, 0, 1, 117,
+			99, 17, 65, 2, 32, 0, 1, 117, 100, 111, 2, 32, 0, 1, 117, 103, 2, 32, 0, 1, 117, 105, 2, 32, 0, 1, 117, 108, 117, 17,
+			67, 2, 32, 0, 1, 117, 108, 121, 2, 32, 0, 1, 117, 109, 2, 32, 0, 1, 117, 110, 17, 65, 2, 32, 0, 1, 117, 112, 111, 2,
+			32, 0, 1, 117, 114, 17, 65, 2, 32, 0, 1, 117, 115, 97, 2, 32, 0, 1, 117, 115, 112, 2, 32, 0, 1, 117, 115, 115, 101, 99,
+			2, 32, 0, 1, 117, 116, 97, 2, 32, 0, 1, 117, 116, 99, 2, 32, 0, 1, 117, 116, 101, 2, 32, 0, 1, 117, 116, 105, 2, 32,
+			0, 1, 117, 116, 108, 2, 32, 0, 1, 117, 116, 111, 2, 32, 0, 1, 117, 116, 117, 17, 67, 2, 32, 0, 1, 117, 175, 195, 2, 32,
+			0, 1, 168, 195, 17, 67, 97, 2, 32, 0, 1, 168, 195, 110, 2, 32, 0, 8, 117, 2, 32, 0, 8, 117, 111, 116, 2, 32, 0, 8,
+			117, 111, 116, 2, 32, 100, 101, 115, 32, 0, 8, 117, 112, 17, 67, 17, 65, 99, 2, 32, 0, 39, 8, 2, 14, 128, 140, 130, 0, 39,
+			8, 2, 101, 115, 29, 14, 128, 140, 130, 0, 115, 0, 195, 167, 0, 99, 105, 101, 110, 2, 116, 3, 89, 37, 113, 0, 111, 99, 105, 111,
+			8, 2, 21, 14, 128, 132, 133, 3, 89, 39, 89, 37, 39, 0, 4, 99, 104, 2, 105, 101, 3, 89, 49, 0, 99, 104, 2, 105, 122, 0,
+			99, 104, 2, 111, 108, 0, 99, 104, 2, 111, 111, 0, 117, 112, 114, 97, 8, 2, 21, 14, 128, 132, 133, 3, 89, 111, 48, 34, 35, 0,
+			4, 117, 112, 101, 114, 8, 2, 21, 21, 14, 128, 132, 133, 3, 89, 111, 48, 112, 34, 0, 117, 112, 101, 114, 8, 2, 32, 0, 4, 99,
+			104, 3, 91, 0, 104, 0, 99, 104, 117, 3, 91, 40, 0, 116, 101, 105, 110, 2, 32, 3, 91, 47, 35, 57, 50, 0, 113, 108, 2, 32,
+			14, 128, 128, 131, 3, 112, 89, 49, 111, 112, 55, 0, 4, 1, 117, 108, 112, 2, 32, 3, 143, 0, 2, 32, 14, 128, 128, 129, 0, 7,
+			6, 116, 0, 4, 1, 108, 117, 97, 2, 32, 3, 0, 4, 1, 110, 2, 32, 3, 0, 4, 1, 114, 2, 32, 3, 0, 4, 2, 32, 3,
+			0, 104, 1, 115, 2, 109, 3, 0, 4, 1, 105, 2, 117, 110, 101, 29, 3, 21, 0, 1, 114, 97, 17, 67, 115, 2, 32, 0, 1, 114,
+			97, 17, 67, 115, 2, 101, 114, 32, 0, 104, 2, 17, 65, 0, 104, 2, 25, 0, 105, 109, 101, 8, 0, 108, 101, 2, 32, 0, 111, 110,
+			1, 103, 2, 32, 0, 111, 111, 0, 114, 121, 2, 32, 0, 116, 108, 0, 117, 110, 8, 2, 17, 65, 29, 0, 4, 3, 47, 0, 1, 17,
+			67, 2, 32, 0, 1, 26, 2, 105, 111, 110, 0, 1, 99, 101, 26, 2, 105, 111, 110, 0, 1, 101, 17, 67, 2, 105, 111, 110, 115, 0,
+			1, 101, 104, 99, 97, 2, 105, 111, 110, 0, 1, 105, 17, 67, 169, 195, 2, 105, 111, 110, 115, 0, 1, 105, 97, 2, 105, 111, 110, 0,
+			1, 105, 98, 97, 104, 2, 105, 111, 110, 115, 0, 1, 105, 99, 2, 105, 111, 110, 115, 0, 1, 105, 107, 2, 32, 0, 1, 105, 109, 105,
+			2, 105, 111, 110, 115, 0, 1, 105, 110, 97, 114, 103, 2, 32, 0, 1, 105, 111, 2, 105, 111, 110, 0, 1, 105, 115, 105, 17, 67, 2,
+			105, 111, 110, 0, 1, 110, 97, 2, 105, 97, 0, 1, 110, 97, 104, 99, 2, 105, 111, 110, 0, 1, 110, 101, 115, 2, 105, 111, 110, 32,
+			0, 1, 112, 101, 26, 2, 105, 111, 110, 0, 1, 112, 109, 111, 99, 2, 105, 111, 110, 115, 0, 1, 114, 111, 112, 17, 65, 2, 105, 111,
+			110, 0, 1, 114, 111, 112, 17, 67, 2, 105, 111, 110, 0, 1, 114, 111, 115, 2, 105, 111, 110, 0, 1, 115, 2, 105, 111, 110, 0, 1,
+			116, 2, 105, 111, 110, 0, 1, 117, 17, 65, 26, 2, 105, 111, 110, 0, 1, 169, 195, 26, 2, 105, 111, 110, 0, 1, 170, 195, 114, 2,
+			105, 111, 110, 0, 8, 0, 8, 17, 65, 115, 110, 97, 114, 116, 2, 32, 0, 8, 97, 116, 2, 105, 111, 110, 0, 8, 101, 99, 2, 32,
+			0, 39, 8, 2, 14, 128, 140, 130, 0, 104, 0, 104, 1, 114, 111, 2, 12, 12, 0, 104, 2, 17, 65, 114, 17, 65, 12, 12, 0, 104,
+			2, 18, 77, 12, 12, 0, 104, 2, 111, 17, 67, 17, 65, 0, 104, 8, 2, 101, 114, 109, 0, 116, 0, 8, 2, 32, 3, 47, 36, 0,
+			4, 101, 108, 101, 8, 3, 47, 36, 55, 36, 0, 195, 169, 108, 195, 169, 8, 2, 21, 14, 128, 132, 132, 0, 104, 101, 114, 109, 111, 8,
+			2, 21, 14, 128, 132, 134, 3, 47, 112, 34, 65, 39, 0, 4, 1, 17, 67, 2, 105, 101, 117, 3, 89, 0, 1, 97, 2, 105, 97, 0,
+			1, 97, 2, 105, 101, 110, 0, 1, 97, 109, 17, 65, 2, 105, 101, 29, 0, 1, 97, 114, 99, 2, 105, 101, 29, 0, 1, 99, 110, 17,
+			65, 17, 67, 2, 105, 111, 110, 0, 1, 105, 2, 105, 101, 110, 0, 1, 105, 110, 105, 2, 105, 17, 65, 0, 1, 105, 115, 2, 105, 111,
+			110, 0, 1, 105, 116, 169, 195, 2, 105, 111, 110, 0, 1, 110, 97, 2, 105, 97, 116, 0, 1, 110, 101, 2, 105, 97, 0, 1, 111, 2,
+			105, 101, 110, 0, 1, 112, 2, 105, 97, 0, 1, 114, 2, 105, 97, 0, 1, 114, 97, 109, 2, 105, 101, 110, 0, 1, 114, 101, 110, 2,
+			105, 101, 0, 1, 114, 111, 112, 111, 2, 105, 111, 110, 0, 1, 117, 98, 108, 2, 105, 17, 65, 0, 1, 117, 108, 2, 105, 111, 110, 0,
+			1, 117, 110, 2, 105, 101, 29, 0, 1, 169, 195, 109, 97, 2, 105, 101, 29, 0, 1, 169, 195, 112, 105, 2, 105, 101, 29, 0, 2, 105,
+			17, 65, 109, 0, 2, 105, 101, 108, 0, 2, 105, 101, 117, 0, 2, 105, 111, 32, 0, 2, 105, 111, 110, 0, 4, 105, 101, 110, 1, 105,
+			110, 2, 116, 32, 3, 89, 37, 0, 105, 101, 110, 1, 117, 98, 2, 116, 32, 0, 4, 1, 17, 65, 2, 45, 3, 140, 0, 1, 45, 2,
+			45, 0, 1, 105, 17, 67, 26, 2, 32, 0, 1, 105, 116, 101, 112, 2, 32, 0, 1, 110, 26, 2, 32, 0, 1, 105, 117, 104, 2, 32,
+			3, 141, 0, 115, 2, 32, 14, 128, 128, 129, 3, 143, 0, 7, 6, 117, 0, 1, 103, 2, 17, 65, 3, 0, 4, 1, 114, 2, 110, 29,
+			3, 21, 0, 97, 108, 1, 18, 68, 2, 32, 0, 99, 104, 2, 32, 0, 105, 1, 17, 67, 2, 99, 101, 0, 108, 116, 1, 17, 67, 2,
+			32, 0, 109, 98, 101, 114, 2, 32, 0, 109, 112, 2, 32, 0, 110, 8, 17, 67, 2, 32, 0, 110, 8, 17, 67, 2, 110, 121, 0, 110,
+			99, 104, 0, 110, 100, 101, 114, 0, 112, 2, 32, 0, 112, 8, 2, 17, 67, 0, 114, 110, 2, 29, 0, 115, 105, 8, 98, 0, 115, 116,
+			2, 32, 0, 122, 122, 0, 4, 1, 103, 2, 97, 121, 3, 40, 0, 1, 107, 175, 195, 97, 104, 2, 29, 0, 1, 112, 2, 116, 115, 99,
+			104, 0, 99, 99, 105, 1, 17, 67, 3, 40, 76, 37, 0, 4, 97, 1, 103, 2, 108, 32, 3, 58, 35, 0, 97, 1, 103, 97, 2, 29,
+			0, 97, 1, 103, 105, 116, 17, 67, 2, 32, 0, 97, 8, 103, 0, 4, 3, 111, 0, 1, 103, 2, 195, 171, 0, 1, 103, 2, 195, 175,
+			0, 108, 8, 99, 2, 32, 0, 110, 2, 110, 0, 120, 1, 108, 102, 2, 32, 0, 105, 3, 111, 37, 0, 121, 2, 17, 65, 3, 111, 37,
+			57, 0, 108, 116, 114, 97, 8, 2, 14, 128, 132, 133, 3, 111, 55, 47, 34, 35, 0, 105, 110, 2, 25, 3, 111, 114, 0, 4, 109, 1,
+			102, 2, 32, 3, 115, 0, 109, 2, 18, 76, 0, 110, 1, 17, 67, 17, 67, 2, 32, 0, 110, 2, 17, 67, 0, 110, 8, 104, 2, 32,
+			0, 110, 116, 1, 114, 112, 2, 32, 0, 4, 110, 1, 99, 117, 2, 32, 3, 115, 134, 0, 110, 2, 32, 0, 4, 1, 17, 67, 2, 98,
+			29, 3, 117, 0, 1, 17, 67, 2, 103, 29, 0, 8, 17, 67, 2, 114, 102, 29, 0, 8, 108, 98, 2, 102, 102, 0, 8, 110, 2, 114,
+			115, 101, 0, 8, 115, 2, 114, 102, 101, 29, 0, 101, 2, 105, 108, 0, 122, 2, 122, 0, 109, 2, 32, 3, 127, 65, 0, 7, 6, 118,
+			0, 4, 111, 105, 99, 101, 2, 29, 3, 21, 0, 111, 105, 100, 2, 32, 0, 121, 2, 32, 0, 3, 84, 0, 105, 101, 119, 2, 29, 3,
+			84, 57, 40, 0, 105, 101, 119, 8, 2, 17, 65, 3, 84, 57, 40, 84, 0, 101, 114, 115, 2, 32, 3, 84, 112, 34, 143, 0, 101, 114,
+			1, 105, 114, 100, 2, 29, 3, 84, 117, 34, 0, 7, 6, 119, 0, 4, 8, 2, 17, 65, 17, 67, 3, 21, 0, 8, 2, 17, 65, 105,
+			0, 97, 114, 0, 97, 118, 0, 97, 121, 0, 101, 8, 0, 104, 0, 110, 1, 17, 65, 0, 111, 114, 0, 114, 0, 8, 2, 17, 65, 3,
+			23, 58, 0, 4, 3, 58, 0, 8, 2, 17, 65, 17, 67, 111, 0, 8, 2, 17, 65, 116, 116, 0, 8, 2, 105, 110, 97, 0, 2, 97,
+			103, 12, 12, 3, 84, 0, 7, 6, 120, 0, 4, 1, 105, 97, 2, 32, 3, 0, 4, 1, 105, 111, 2, 32, 3, 0, 4, 1, 105, 114,
+			2, 32, 3, 0, 8, 117, 97, 2, 113, 117, 101, 108, 3, 0, 109, 108, 2, 32, 14, 128, 128, 131, 3, 23, 37, 49, 89, 112, 65, 112,
+			55, 0, 8, 2, 17, 67, 14, 128, 132, 129, 3, 37, 49, 89, 0, 4, 3, 49, 89, 0, 1, 101, 18, 68, 2, 17, 65, 0, 120, 0,
+			4, 1, 101, 2, 17, 65, 3, 81, 88, 0, 8, 2, 17, 65, 0, 8, 101, 2, 104, 0, 8, 101, 110, 105, 2, 17, 65, 0, 4, 1,
+			105, 100, 2, 105, 195, 168, 3, 88, 0, 1, 105, 115, 2, 105, 195, 168, 0, 1, 117, 101, 100, 2, 105, 195, 168, 0, 8, 105, 100, 2,
+			32, 110, 101, 117, 102, 0, 4, 8, 105, 111, 115, 2, 17, 65, 3, 89, 0, 8, 105, 115, 2, 32, 110, 101, 117, 0, 1, 117, 17, 65,
+			2, 32, 3, 143, 0, 4, 8, 105, 100, 2, 32, 3, 144, 0, 8, 105, 115, 2, 32, 0, 7, 6, 121, 0, 4, 1, 17, 67, 2, 101,
+			32, 3, 21, 0, 1, 17, 67, 11, 2, 32, 0, 1, 17, 67, 17, 65, 2, 32, 0, 1, 17, 67, 101, 17, 67, 21, 2, 32, 0, 1,
+			17, 67, 110, 2, 32, 0, 8, 17, 67, 2, 32, 0, 97, 99, 104, 116, 8, 0, 122, 101, 0, 8, 2, 17, 65, 3, 23, 57, 0, 4,
+			3, 37, 0, 1, 115, 115, 2, 32, 0, 2, 110, 110, 0, 115, 1, 29, 2, 32, 3, 37, 89, 0, 8, 2, 101, 117, 3, 57, 0, 97,
+			104, 111, 111, 8, 2, 14, 128, 132, 133, 3, 57, 35, 6, 40, 0, 4, 109, 2, 18, 76, 3, 114, 0, 109, 2, 32, 0, 110, 2, 25,
+			0, 7, 6, 122, 0, 3, 88, 0, 101, 114, 1, 116, 2, 32, 3, 88, 112, 34, 0, 101, 114, 1, 17, 67, 2, 32, 3, 88, 117, 34,
+			0, 1, 116, 3, 89, 0, 7, 6, 0, 194, 176, 8, 32, 110, 3, 0, 39, 2, 17, 67, 3, 21, 0, 195, 162, 3, 35, 12, 0, 195,
+			169, 3, 36, 0, 195, 182, 3, 39, 0, 195, 177, 3, 67, 0, 194, 176, 3, 72, 13, 81, 34, 36, 0, 36, 3, 72, 127, 55, 35, 34,
+			0, 195, 188, 3, 111, 0, 195, 187, 3, 111, 12, 0, 195, 170, 3, 112, 0, 58, 8, 32, 18, 81, 2, 32, 18, 82, 15, 32, 3, 117,
+			34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts19 = FileInMemory_createWithData (21484, reinterpret_cast<const char *> (&espeakdata_dicts19_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/fr_dict", 
 			U"fr");
-		my addItem_move (espeakdata_dicts21.move());
+		Collection_addItem (me.peek(), espeakdata_dicts19.transfer());
 
-		static unsigned char espeakdata_dicts22_data[8918] = {
-			0, 4, 0, 0, 81, 15, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 13, 0, 0, 0, 0, 0, 7, 65, 8, 71, 108, 0, 49, 0,
-			0, 0, 0, 6, 65, 12, 89, 108, 0, 0, 0, 0, 0, 7, 65, 16, 72, 108, 0, 49, 0, 0, 10, 67, 28, 19, 128, 81, 120, 50,
-			0, 72, 0, 11, 4, 95, 100, 112, 116, 48, 116, 50, 49, 0, 0, 5, 65, 20, 108, 0, 0, 0, 0, 0, 6, 65, 24, 113, 83, 0,
-			0, 0, 0, 0, 7, 65, 28, 75, 108, 0, 49, 0, 0, 11, 67, 76, 19, 128, 89, 6, 35, 50, 0, 41, 9, 67, 76, 19, 128, 89,
-			13, 50, 0, 0, 8, 67, 56, 145, 200, 50, 108, 0, 0, 7, 65, 32, 132, 76, 0, 49, 0, 0, 0, 0, 6, 65, 36, 109, 0, 72,
-			0, 12, 1, 37, 83, 13, 108, 50, 81, 110, 13, 73, 0, 0, 0, 0, 6, 65, 40, 75, 132, 0, 0, 0, 0, 0, 6, 65, 44, 49,
-			132, 0, 0, 0, 8, 1, 46, 48, 116, 50, 49, 0, 0, 0, 11, 67, 53, 84, 129, 65, 117, 34, 13, 0, 72, 6, 65, 48, 113, 55,
-			0, 0, 0, 0, 0, 7, 65, 52, 113, 65, 0, 49, 0, 0, 0, 0, 7, 65, 56, 113, 50, 0, 49, 0, 0, 13, 67, 80, 144, 203,
-			124, 13, 89, 101, 120, 65, 13, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 108, 0, 0, 16, 70, 53, 82, 71, 32, 83, 192, 65,
-			119, 6, 108, 15, 6, 122, 0, 7, 66, 4, 32, 13, 71, 0, 0, 10, 67, 36, 224, 64, 109, 50, 13, 0, 72, 0, 0, 7, 65, 68,
-			49, 57, 124, 0, 0, 15, 70, 12, 128, 84, 32, 18, 82, 101, 6, 120, 107, 13, 34, 0, 0, 0, 0, 6, 65, 72, 35, 34, 0, 0,
-			15, 66, 5, 32, 113, 34, 6, 35, 91, 0, 81, 97, 105, 115, 32, 7, 66, 5, 32, 113, 34, 0, 0, 0, 0, 11, 65, 76, 91, 6,
-			108, 0, 81, 195, 173, 32, 11, 65, 76, 91, 6, 110, 0, 81, 195, 169, 32, 0, 11, 68, 77, 0, 67, 20, 89, 48, 123, 89, 0, 0,
-			0, 0, 7, 65, 80, 47, 108, 0, 49, 0, 0, 0, 9, 67, 4, 50, 0, 120, 101, 0, 72, 0, 6, 65, 84, 57, 124, 0, 0, 0,
-			0, 0, 6, 65, 88, 84, 108, 0, 0, 7, 66, 5, 48, 120, 89, 0, 0, 0, 13, 4, 95, 49, 77, 52, 6, 71, 37, 55, 124, 50,
-			0, 0, 12, 65, 92, 72, 6, 116, 71, 13, 55, 57, 124, 0, 0, 0, 0, 0, 12, 4, 95, 49, 77, 49, 65, 6, 108, 55, 113, 0,
-			7, 65, 96, 113, 49, 89, 0, 0, 13, 4, 95, 49, 77, 50, 6, 65, 37, 55, 124, 50, 0, 0, 0, 0, 6, 65, 100, 58, 128, 0,
-			0, 8, 68, 4, 241, 8, 4, 110, 0, 0, 11, 67, 4, 117, 83, 120, 81, 13, 89, 0, 72, 0, 0, 7, 65, 104, 88, 113, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 7, 67, 4, 241, 8, 110, 0, 0, 11, 67, 5, 71, 0, 13, 74, 6, 123, 0, 72, 0, 9, 68, 74,
-			34, 68, 32, 34, 110, 0, 0, 0, 0, 29, 71, 80, 147, 195, 24, 18, 68, 32, 76, 116, 49, 108, 6, 123, 34, 55, 6, 123, 0, 82,
-			195, 161, 114, 32, 108, 195, 161, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 70, 28, 48, 84,
-			32, 18, 82, 81, 120, 107, 13, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 8, 128, 73, 48, 192, 84, 119, 6, 108, 55, 0,
-			0, 0, 11, 4, 95, 49, 67, 48, 49, 110, 13, 73, 0, 0, 0, 9, 66, 4, 112, 113, 81, 0, 32, 72, 0, 0, 12, 69, 13, 32,
-			73, 56, 224, 49, 34, 108, 50, 0, 0, 0, 0, 0, 0, 15, 70, 12, 21, 8, 4, 148, 128, 49, 6, 120, 107, 13, 34, 0, 0, 0,
-			8, 67, 4, 227, 128, 130, 50, 0, 0, 14, 4, 95, 50, 77, 52, 81, 123, 84, 37, 55, 124, 50, 0, 0, 0, 12, 69, 52, 133, 73,
-			28, 128, 84, 119, 6, 108, 0, 11, 69, 28, 129, 65, 48, 192, 57, 130, 55, 0, 0, 0, 0, 13, 4, 95, 50, 77, 49, 81, 123, 84,
-			108, 55, 113, 0, 0, 14, 4, 95, 50, 77, 50, 73, 123, 84, 109, 55, 124, 50, 0, 0, 0, 0, 0, 0, 0, 15, 70, 12, 192, 73,
-			56, 225, 64, 49, 55, 6, 109, 50, 113, 0, 13, 70, 12, 82, 84, 33, 33, 64, 49, 113, 34, 13, 0, 0, 0, 0, 0, 0, 0, 18,
-			71, 5, 48, 200, 85, 37, 8, 4, 6, 120, 89, 101, 117, 34, 107, 13, 0, 0, 0, 0, 0, 12, 69, 8, 129, 149, 36, 192, 58, 6,
-			109, 55, 0, 0, 0, 0, 18, 71, 60, 148, 135, 32, 144, 76, 48, 6, 113, 34, 34, 13, 106, 13, 55, 0, 0, 0, 0, 20, 73, 4,
-			148, 198, 32, 147, 12, 20, 17, 8, 4, 35, 91, 6, 109, 55, 38, 13, 0, 0, 0, 0, 0, 0, 0, 13, 69, 4, 213, 73, 28, 128,
-			13, 65, 119, 6, 109, 0, 0, 0, 0, 0, 7, 66, 8, 128, 84, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 66, 16, 80, 72, 113, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 72, 16, 136, 34, 130, 0, 15,
-			4, 95, 51, 77, 52, 47, 34, 108, 84, 37, 55, 124, 50, 0, 0, 0, 0, 0, 0, 0, 22, 67, 76, 147, 142, 91, 6, 109, 50, 15,
-			83, 6, 110, 50, 0, 81, 102, 195, 169, 105, 110, 32, 15, 4, 95, 51, 77, 50, 47, 34, 108, 84, 37, 55, 124, 50, 0, 0, 10, 67,
-			36, 228, 192, 109, 50, 89, 0, 72, 0, 0, 0, 0, 0, 8, 66, 57, 192, 50, 123, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 66, 4, 208, 130, 65, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 48, 49, 49, 110, 13, 73, 13, 107, 110, 13, 50,
-			0, 0, 15, 71, 48, 19, 199, 32, 18, 82, 20, 55, 108, 13, 34, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 70, 16, 128, 79, 36, 34, 0, 57, 108, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 16, 144, 72, 109,
-			0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 4, 243, 128, 110, 13, 50, 0, 0, 0, 0, 0, 0, 0, 12, 68, 4, 224,
-			76, 48, 13, 50, 6, 130, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 12, 68, 4, 229, 65, 76, 112, 50, 6, 127, 89, 0, 0, 0, 0, 0, 0, 9, 67, 48, 89, 64, 55, 110, 108, 0, 0,
-			0, 13, 70, 12, 132, 129, 36, 227, 128, 101, 34, 108, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 4, 210, 28, 36, 224, 13,
-			58, 6, 123, 37, 50, 0, 0, 0, 10, 67, 20, 147, 5, 6, 113, 55, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 13, 66, 37, 48, 109, 91, 6, 35, 0, 81, 101, 97, 32, 9, 66, 37, 48, 6, 109, 89, 0, 72, 0, 0, 0, 11, 68,
-			8, 133, 69, 48, 58, 6, 113, 55, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 48, 83, 109, 99, 36, 0, 0, 0, 0, 0, 0,
-			0, 0, 15, 3, 95, 51, 49, 47, 34, 116, 101, 13, 107, 110, 13, 50, 0, 0, 10, 67, 5, 36, 193, 13, 34, 89, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 66, 16, 240, 72, 116, 0, 72, 0, 0, 0, 10, 67, 16, 245, 0, 48, 116, 50, 49, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 54, 49, 91, 35, 89, 49, 13, 107, 110, 13, 50, 0, 0, 11, 3, 95, 51, 88,
-			47, 34, 116, 101, 13, 0, 0, 10, 3, 95, 48, 67, 49, 110, 13, 73, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 55, 49, 91, 120,
-			101, 74, 122, 107, 110, 13, 50, 0, 0, 0, 10, 3, 95, 49, 67, 49, 110, 13, 73, 0, 0, 12, 68, 8, 80, 68, 32, 71, 38, 6,
-			13, 106, 0, 0, 13, 69, 4, 112, 73, 8, 128, 120, 81, 13, 109, 84, 0, 0, 0, 0, 10, 68, 8, 82, 68, 32, 71, 113, 81, 0,
-			0, 12, 3, 95, 49, 57, 50, 108, 72, 110, 13, 81, 0, 0, 13, 3, 95, 49, 56, 116, 101, 47, 72, 110, 13, 81, 0, 0, 13, 3,
-			95, 50, 67, 81, 35, 12, 99, 110, 13, 73, 0, 0, 0, 0, 0, 16, 70, 32, 147, 206, 80, 16, 200, 107, 6, 108, 50, 74, 13, 101,
-			0, 0, 0, 13, 3, 95, 49, 49, 110, 13, 50, 72, 110, 13, 81, 0, 0, 0, 13, 3, 95, 51, 67, 47, 34, 108, 99, 110, 13, 73,
-			0, 14, 3, 95, 49, 51, 47, 34, 6, 108, 72, 110, 13, 81, 0, 0, 12, 3, 95, 49, 50, 73, 122, 57, 110, 13, 81, 0, 0, 19,
-			69, 52, 128, 73, 28, 128, 84, 119, 6, 108, 15, 6, 122, 0, 81, 101, 111, 32, 14, 3, 95, 49, 53, 49, 124, 37, 81, 72, 110, 13,
-			81, 0, 0, 15, 3, 95, 49, 52, 49, 35, 107, 13, 34, 72, 110, 13, 81, 0, 0, 14, 3, 95, 49, 55, 91, 120, 101, 47, 72, 110,
-			13, 81, 0, 0, 12, 3, 95, 49, 54, 91, 110, 72, 110, 13, 81, 0, 0, 0, 11, 3, 95, 55, 88, 91, 120, 101, 47, 122, 0, 0,
-			14, 3, 95, 52, 67, 49, 113, 34, 13, 49, 110, 13, 73, 0, 0, 0, 0, 0, 11, 68, 12, 243, 77, 4, 49, 120, 65, 13, 0, 0,
-			0, 0, 0, 14, 3, 95, 53, 67, 49, 124, 37, 81, 80, 110, 13, 73, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 52, 49, 73, 120,
-			99, 13, 72, 35, 107, 110, 13, 50, 0, 0, 11, 3, 95, 52, 48, 73, 120, 99, 13, 72, 0, 10, 3, 95, 49, 88, 13, 75, 6, 113,
-			0, 0, 12, 3, 95, 54, 67, 91, 110, 49, 110, 13, 73, 0, 0, 0, 0, 0, 0, 14, 70, 80, 16, 136, 4, 148, 128, 47, 6, 124,
-			13, 34, 0, 0, 16, 3, 95, 53, 49, 49, 13, 110, 13, 81, 13, 107, 110, 13, 50, 0, 0, 10, 3, 95, 50, 88, 83, 37, 99, 113,
-			0, 0, 14, 3, 95, 55, 67, 91, 120, 101, 47, 81, 110, 13, 73, 0, 0, 10, 68, 52, 18, 84, 32, 65, 6, 120, 0, 0, 0, 0,
-			0, 0, 0, 0, 14, 3, 95, 56, 67, 116, 101, 47, 81, 6, 110, 13, 73, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 26, 34, 78,
-			107, 6, 110, 50, 0, 12, 3, 95, 52, 88, 73, 120, 99, 13, 72, 13, 0, 0, 12, 3, 95, 57, 67, 50, 108, 81, 110, 13, 73, 0,
-			0, 0, 0, 0, 0, 0, 8, 66, 48, 80, 55, 113, 0, 72, 26, 66, 28, 240, 81, 13, 34, 13, 65, 108, 55, 13, 0, 82, 114, 97,
-			105, 98, 104, 32, 109, 195, 173, 108, 101, 32, 25, 66, 28, 240, 81, 13, 34, 13, 65, 120, 107, 0, 82, 114, 97, 105, 98, 104, 32, 109,
-			97, 105, 116, 104, 32, 14, 3, 95, 56, 49, 116, 101, 74, 122, 107, 110, 13, 50, 0, 0, 9, 67, 38, 163, 0, 57, 124, 55, 0, 12,
-			3, 95, 53, 88, 49, 13, 110, 13, 81, 13, 0, 0, 20, 5, 95, 50, 48, 48, 49, 81, 123, 84, 108, 55, 113, 89, 13, 107, 110, 13,
-			50, 0, 0, 0, 20, 5, 95, 50, 48, 48, 51, 81, 123, 84, 108, 55, 113, 89, 13, 47, 34, 6, 108, 0, 0, 19, 5, 95, 50, 48,
-			48, 50, 81, 123, 84, 108, 55, 113, 89, 13, 73, 6, 122, 0, 0, 20, 5, 95, 50, 48, 48, 53, 81, 123, 84, 108, 55, 113, 89, 13,
-			49, 124, 37, 81, 0, 0, 21, 5, 95, 50, 48, 48, 52, 81, 123, 84, 108, 55, 113, 89, 13, 49, 35, 107, 13, 34, 0, 0, 14, 3,
-			95, 57, 49, 50, 122, 101, 13, 107, 110, 13, 50, 0, 0, 11, 3, 95, 54, 88, 91, 35, 89, 49, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 12, 68, 24, 18, 68, 20, 83, 13, 109, 73, 113, 0, 0, 0, 0, 13, 69, 56, 243, 1, 36, 112, 50, 116, 55, 37, 81,
-			0, 0, 0, 0, 0, 10, 3, 95, 56, 88, 116, 106, 47, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 57, 88, 50, 122,
-			101, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 36, 224, 109, 50, 0, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 68, 72, 18, 66, 32, 34, 113, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 66, 61, 48, 122, 89, 0, 0, 0, 13, 4, 95, 48, 77, 52, 10, 71, 37, 55, 124, 50, 0, 0, 0, 12, 4, 95, 48, 77,
-			50, 65, 109, 55, 124, 50, 0, 0, 0, 16, 70, 14, 163, 19, 48, 18, 83, 49, 124, 55, 89, 55, 35, 91, 0, 0, 11, 4, 95, 48,
-			77, 49, 65, 108, 55, 113, 0, 0, 0, 0, 0, 0, 0, 8, 67, 4, 148, 128, 113, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 17, 70, 18, 161, 200, 61, 35, 64, 73, 6, 124, 103, 115, 34, 13, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 12, 68, 8, 18, 76, 48, 71, 119, 6, 108, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 18, 68, 52, 18, 71, 32, 65, 119, 6, 108, 15, 6, 122, 0, 81, 101, 111, 32, 10, 68, 24, 18, 71, 32, 83, 128, 81, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 99, 97, 112, 65, 6, 122, 34, 0, 0, 9, 68, 37, 34, 83, 32, 21,
-			0, 47, 0, 0, 10, 67, 76, 83, 192, 91, 117, 10, 0, 72, 0, 0, 0, 0, 10, 67, 29, 84, 128, 81, 117, 34, 0, 72, 0, 0,
-			13, 3, 95, 195, 186, 57, 124, 15, 83, 120, 73, 13, 0, 0, 0, 0, 0, 15, 71, 16, 243, 72, 56, 18, 71, 32, 73, 130, 50, 37,
-			81, 0, 0, 0, 0, 0, 0, 12, 3, 95, 195, 179, 122, 15, 83, 120, 73, 13, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 195, 173,
-			128, 15, 83, 120, 73, 13, 0, 0, 0, 0, 0, 12, 3, 95, 195, 169, 108, 15, 83, 120, 73, 13, 0, 0, 0, 0, 0, 14, 70, 16,
-			243, 72, 56, 16, 200, 73, 130, 50, 13, 101, 0, 0, 0, 0, 0, 12, 3, 95, 195, 161, 132, 15, 83, 120, 73, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 68, 24, 80, 68, 32, 83, 35, 81, 0, 0, 0, 0, 0, 0, 8, 66, 52, 240, 65,
-			116, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 69, 52, 33, 65, 16, 128, 65, 38, 116, 106, 0, 11, 69, 52,
-			128, 73, 80, 128, 58, 6, 120, 0, 13, 69, 8, 129, 65, 16, 128, 84, 38, 6, 13, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			3, 225, 184, 131, 71, 4, 108, 71, 6, 124, 55, 76, 13, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 196, 139, 89, 4, 108, 71, 6,
-			124, 55, 76, 13, 0, 0, 0, 0, 15, 3, 225, 185, 129, 4, 113, 65, 71, 6, 40, 55, 76, 13, 0, 0, 10, 67, 4, 145, 197, 13,
-			81, 6, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 196, 139, 117, 114, 101, 6, 117, 34, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 3, 225, 185, 171, 47, 4, 108, 71, 6, 124, 55, 76, 13, 0, 0, 14, 2, 196, 161, 75, 4, 108, 71,
-			6, 124, 55, 76, 13, 0, 0, 0, 0, 15, 3, 225, 184, 159, 4, 113, 83, 71, 6, 124, 55, 76, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 8, 66, 58, 112, 50, 124, 0, 72, 0, 0, 0, 19, 71, 4, 224, 73, 80, 131, 137, 16, 6, 120, 50, 35, 107, 13, 50, 109,
-			75, 0, 0, 0, 0, 0, 0, 15, 3, 225, 185, 151, 48, 4, 108, 71, 6, 124, 55, 76, 13, 0, 0, 0, 0, 0, 15, 3, 225, 184,
-			139, 72, 4, 108, 71, 6, 124, 55, 76, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 4, 53, 64, 120,
-			49, 6, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 68, 61, 37, 8, 84, 116, 34, 107, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 24, 80, 82, 83, 6, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 95, 33, 91, 49, 34, 110, 13, 101, 0, 0, 0, 11, 2, 95, 39, 124,
-			89, 101, 120, 65, 13, 0, 0, 16, 4, 95, 52, 77, 52, 49, 113, 34, 13, 84, 37, 55, 124, 50, 0, 0, 10, 67, 24, 18, 67, 83,
-			13, 35, 49, 0, 0, 16, 4, 95, 52, 77, 50, 49, 113, 34, 13, 65, 37, 55, 124, 50, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95,
-			46, 48, 116, 50, 49, 0, 0, 0, 9, 2, 95, 44, 49, 120, 65, 13, 0, 0, 10, 2, 95, 51, 13, 76, 51, 6, 108, 0, 0, 9,
-			2, 95, 50, 13, 73, 6, 122, 0, 0, 10, 2, 95, 49, 13, 107, 6, 110, 50, 0, 0, 16, 70, 32, 19, 72, 112, 147, 128, 107, 13,
-			58, 6, 123, 37, 50, 0, 10, 2, 95, 48, 13, 50, 123, 37, 75, 0, 0, 10, 2, 95, 55, 13, 91, 120, 101, 74, 0, 0, 9, 2,
-			95, 54, 13, 91, 6, 110, 0, 0, 10, 2, 95, 53, 13, 49, 124, 109, 81, 0, 0, 12, 2, 95, 52, 13, 49, 6, 35, 107, 13, 34,
-			0, 0, 9, 2, 95, 59, 89, 36, 65, 109, 0, 0, 10, 2, 95, 58, 49, 122, 55, 120, 50, 0, 0, 11, 2, 95, 57, 13, 50, 13,
-			13, 6, 108, 0, 0, 11, 2, 95, 56, 13, 107, 6, 120, 101, 74, 0, 0, 9, 2, 95, 63, 49, 113, 91, 47, 0, 0, 0, 14, 70,
-			74, 83, 72, 4, 149, 8, 51, 6, 108, 58, 120, 0, 0, 12, 68, 8, 129, 65, 76, 84, 6, 110, 13, 89, 0, 0, 0, 13, 68, 36,
-			227, 137, 84, 109, 50, 57, 6, 124, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 68, 4, 208, 67, 32, 13, 65, 6, 120, 101, 0, 0, 0, 0, 0, 0, 0, 15, 70, 36, 243, 148, 4, 50, 0, 6, 108, 50,
-			74, 13, 101, 0, 0, 0, 0, 0, 11, 67, 4, 224, 77, 6, 120, 50, 13, 65, 0, 0, 0, 6, 2, 95, 97, 132, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 2, 95, 105, 128, 0, 0, 0, 7, 2, 95, 111, 39, 117, 0, 0, 0, 0, 0, 10, 67, 16, 84, 192, 72,
-			113, 89, 0, 72, 7, 2, 95, 115, 113, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
-			5, 95, 48, 97, 110, 100, 109, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			11, 4, 95, 35, 51, 50, 89, 48, 123, 89, 0, 0, 16, 69, 58, 83, 210, 8, 128, 50, 108, 13, 34, 13, 84, 84, 0, 72, 0, 0,
-			0, 0, 15, 70, 37, 53, 5, 4, 50, 0, 109, 89, 76, 6, 120, 101, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 5, 41, 83, 13,
-			34, 6, 108, 91, 0, 0, 0, 0, 0, 12, 68, 4, 228, 197, 60, 13, 50, 91, 6, 115, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67,
-			21, 84, 143, 57, 124, 34, 122, 0, 0, 0, 0, 0, 0, 15, 70, 52, 128, 73, 80, 129, 64, 58, 6, 120, 107, 38, 113, 0, 16, 70,
-			4, 34, 1, 36, 193, 64, 13, 58, 6, 120, 55, 38, 113, 0, 0, 0, 0, 0, 0, 0, 14, 69, 72, 18, 68, 38, 112, 34, 6, 35,
-			72, 108, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 52, 128, 77, 4,
-			58, 6, 120, 65, 13, 0, 0, 0, 0, 0, 0, 0, 0, 11, 68, 4, 227, 206, 56, 13, 50, 130, 50, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 16, 70, 4, 215, 18, 4, 50, 0, 13, 65, 6, 123, 34, 13, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 16,
-			20, 200, 83, 55, 113, 91, 49, 108, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 56, 243, 12, 4, 112, 50, 13,
-			55, 13, 81, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 12, 133, 78, 101, 117, 50, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 15, 70, 12, 131, 1, 36, 227, 133, 101, 55, 6, 109, 50, 113, 0, 0, 0, 6, 18, 66, 195, 169, 0, 195, 173, 0,
-			101, 0, 105, 0, 7, 6, 18, 67, 99, 104, 0, 103, 104, 0, 99, 0, 100, 0, 103, 0, 110, 0, 115, 0, 7, 6, 18, 68, 98, 104,
-			0, 109, 98, 0, 99, 104, 0, 109, 104, 0, 100, 104, 0, 112, 104, 0, 98, 0, 99, 0, 102, 0, 109, 0, 112, 0, 7, 6, 18, 69,
-			98, 104, 0, 109, 98, 0, 98, 0, 7, 6, 18, 70, 99, 104, 97, 105, 115, 0, 110, 110, 97, 99, 104, 0, 110, 116, 97, 99, 104, 0,
-			108, 108, 97, 99, 104, 0, 110, 110, 97, 115, 0, 110, 116, 97, 115, 0, 110, 97, 99, 104, 0, 110, 97, 105, 115, 0, 114, 116, 104, 97,
-			0, 99, 104, 97, 115, 0, 99, 104, 116, 97, 0, 110, 110, 97, 0, 110, 97, 115, 0, 100, 97, 114, 0, 109, 97, 114, 0, 110, 116, 97,
-			0, 99, 104, 116, 0, 110, 110, 0, 100, 104, 0, 109, 104, 0, 108, 108, 0, 114, 0, 115, 0, 100, 0, 108, 0, 7, 6, 18, 71, 97,
-			100, 115, 97, 101, 97, 100, 115, 97, 0, 97, 105, 110, 110, 115, 101, 0, 97, 105, 100, 195, 173, 115, 0, 97, 105, 109, 105, 100, 0, 97,
-			105, 109, 105, 115, 0, 105, 110, 110, 115, 101, 0, 105, 100, 195, 173, 115, 0, 97, 105, 100, 104, 0, 101, 97, 100, 104, 0, 105, 109, 105,
-			100, 0, 105, 109, 105, 115, 0, 97, 105, 110, 110, 0, 195, 169, 105, 110, 0, 105, 100, 104, 0, 97, 195, 173, 0, 101, 195, 161, 0, 97,
-			100, 104, 0, 101, 97, 100, 0, 105, 110, 110, 0, 195, 161, 0, 97, 100, 0, 7, 6, 18, 72, 99, 104, 0, 98, 104, 0, 103, 104, 0,
-			109, 98, 0, 98, 0, 99, 0, 103, 0, 7, 6, 18, 73, 98, 104, 115, 101, 0, 108, 99, 0, 108, 108, 0, 110, 116, 0, 7, 6, 18,
-			74, 99, 104, 114, 0, 99, 108, 0, 99, 114, 0, 102, 0, 7, 6, 18, 75, 103, 104, 108, 0, 99, 104, 0, 112, 104, 0, 103, 108, 0,
-			99, 0, 112, 0, 7, 6, 18, 76, 116, 195, 173, 111, 99, 104, 116, 97, 0, 116, 105, 195, 186, 105, 108, 0, 116, 105, 195, 186, 108, 97,
-			0, 116, 104, 101, 111, 105, 114, 0, 116, 104, 101, 111, 114, 97, 0, 115, 116, 101, 97, 99, 104, 0, 108, 108, 195, 173, 110, 0, 108, 108,
-			195, 173, 0, 116, 104, 101, 0, 110, 110, 101, 0, 115, 116, 101, 0, 103, 195, 173, 0, 109, 115, 101, 0, 100, 104, 0, 103, 104, 0, 110,
-			110, 0, 110, 116, 0, 108, 108, 0, 99, 0, 115, 0, 103, 0, 7, 6, 18, 77, 195, 161, 0, 195, 169, 0, 195, 179, 0, 101, 111, 0,
-			117, 97, 0, 7, 6, 18, 78, 111, 109, 98, 0, 111, 99, 0, 7, 6, 18, 79, 103, 110, 195, 173, 111, 0, 114, 195, 173, 111, 0, 100,
-			195, 186, 110, 0, 7, 6, 18, 80, 98, 104, 102, 0, 99, 104, 0, 102, 104, 0, 100, 104, 0, 103, 99, 0, 103, 104, 0, 109, 104, 0,
-			99, 0, 102, 0, 109, 0, 100, 0, 103, 0, 7, 6, 18, 81, 103, 104, 114, 0, 98, 104, 0, 99, 104, 0, 103, 114, 0, 116, 104, 0,
-			98, 0, 99, 0, 116, 0, 7, 6, 18, 82, 110, 105, 115, 116, 101, 0, 108, 101, 0, 108, 105, 0, 110, 110, 0, 108, 0, 7, 6, 18,
-			83, 110, 102, 105, 100, 105, 115, 0, 110, 101, 97, 109, 97, 114, 0, 110, 101, 97, 110, 110, 0, 110, 101, 97, 100, 104, 0, 110, 116, 101,
-			97, 114, 0, 110, 102, 101, 97, 114, 0, 110, 102, 105, 110, 110, 0, 110, 102, 105, 100, 104, 0, 110, 116, 101, 0, 110, 105, 109, 0, 110,
-			116, 0, 110, 0, 7, 6, 18, 84, 108, 108, 101, 97, 0, 97, 114, 103, 97, 0, 110, 101, 97, 0, 114, 101, 97, 0, 110, 97, 0, 114,
-			97, 0, 108, 97, 0, 7, 6, 18, 85, 101, 111, 105, 114, 0, 101, 97, 98, 104, 0, 101, 195, 161, 0, 105, 195, 186, 0, 101, 111, 0,
-			105, 111, 0, 105, 117, 0, 7, 6, 18, 86, 110, 110, 116, 195, 161, 105, 110, 0, 110, 110, 116, 195, 161, 110, 0, 110, 100, 195, 161, 110,
-			0, 110, 110, 116, 97, 0, 110, 110, 97, 0, 108, 108, 0, 110, 110, 0, 7, 6, 18, 87, 101, 97, 103, 195, 161, 105, 110, 195, 173, 110,
-			0, 101, 97, 108, 116, 97, 105, 110, 101, 0, 101, 97, 103, 195, 161, 110, 0, 101, 97, 100, 104, 0, 101, 97, 103, 97, 0, 101, 97, 108,
-			108, 0, 101, 97, 98, 104, 0, 101, 97, 110, 110, 0, 101, 97, 103, 0, 105, 195, 186, 0, 101, 111, 0, 105, 111, 0, 105, 117, 0, 7,
-			6, 18, 88, 101, 97, 0, 101, 111, 0, 105, 0, 7, 6, 18, 89, 109, 98, 0, 98, 104, 0, 103, 104, 0, 112, 104, 0, 98, 112, 0,
-			109, 104, 0, 98, 0, 103, 0, 112, 0, 109, 0, 7, 6, 20, 0, 0, 3, 30, 0, 0, 98, 0, 104, 0, 11, 1, 0, 0, 99, 0,
-			104, 0, 11, 30, 0, 0, 100, 0, 104, 0, 31, 30, 0, 0, 102, 0, 104, 0, 33, 1, 0, 0, 103, 0, 104, 0, 65, 30, 0, 0,
-			109, 0, 104, 0, 87, 30, 0, 0, 112, 0, 104, 0, 107, 30, 0, 0, 116, 0, 104, 0, 11, 1, 0, 0, 99, 0, 104, 0, 0, 0,
-			0, 0, 6, 97, 105, 0, 2, 108, 108, 105, 109, 104, 12, 12, 3, 6, 120, 0, 108, 108, 101, 97, 99, 104, 3, 6, 120, 55, 38, 13,
-			101, 0, 108, 101, 2, 32, 3, 6, 120, 55, 38, 113, 0, 4, 1, 99, 29, 2, 108, 17, 65, 3, 6, 121, 0, 1, 104, 99, 2, 108,
-			17, 65, 0, 4, 2, 109, 115, 105, 3, 6, 128, 0, 103, 104, 1, 29, 0, 108, 108, 8, 18, 69, 2, 32, 3, 58, 108, 55, 0, 4,
-			1, 21, 2, 18, 76, 32, 3, 109, 0, 1, 99, 2, 108, 32, 0, 110, 103, 2, 32, 3, 109, 50, 81, 0, 3, 112, 0, 4, 1, 104,
-			115, 2, 98, 104, 3, 113, 0, 1, 115, 2, 98, 104, 0, 4, 1, 99, 2, 116, 32, 3, 119, 6, 109, 0, 8, 18, 69, 2, 18, 83,
-			32, 12, 12, 0, 4, 1, 18, 69, 2, 18, 82, 3, 121, 0, 1, 99, 2, 116, 104, 0, 1, 104, 99, 2, 116, 104, 0, 1, 109, 2,
-			110, 0, 1, 112, 2, 108, 0, 2, 100, 0, 2, 108, 108, 101, 97, 99, 104, 0, 2, 116, 195, 173, 110, 0, 103, 104, 114, 101, 3, 128,
-			34, 13, 0, 100, 104, 109, 3, 128, 65, 0, 4, 2, 18, 73, 12, 12, 3, 129, 0, 103, 104, 0, 7, 6, 101, 97, 0, 110, 98, 104,
-			101, 97, 110, 3, 6, 35, 50, 13, 84, 4, 35, 50, 0, 4, 8, 18, 69, 2, 100, 104, 32, 3, 13, 0, 8, 18, 69, 2, 103, 0,
-			103, 97, 1, 18, 69, 2, 32, 3, 13, 81, 13, 0, 103, 110, 8, 18, 69, 3, 13, 81, 50, 0, 4, 3, 112, 0, 105, 0, 1, 29,
-			2, 99, 104, 3, 120, 0, 103, 104, 108, 3, 128, 55, 0, 100, 104, 98, 3, 128, 71, 0, 4, 1, 29, 2, 18, 86, 32, 3, 130, 0,
-			1, 103, 2, 108, 108, 0, 1, 114, 100, 25, 2, 109, 0, 2, 108, 116, 97, 105, 110, 101, 0, 109, 104, 1, 108, 2, 110, 0, 98, 104,
-			114, 97, 3, 130, 34, 13, 0, 98, 104, 115, 3, 130, 89, 0, 7, 6, 111, 105, 0, 8, 2, 108, 101, 195, 161, 3, 6, 109, 0, 114,
-			2, 32, 3, 6, 113, 51, 51, 0, 4, 2, 109, 105, 115, 3, 13, 0, 2, 110, 110, 195, 173, 111, 0, 8, 18, 80, 2, 12, 3, 13,
-			6, 109, 0, 2, 110, 116, 101, 3, 13, 108, 0, 110, 115, 101, 2, 32, 3, 13, 108, 50, 91, 13, 0, 108, 108, 2, 12, 3, 58, 6,
-			108, 55, 0, 4, 1, 104, 2, 98, 3, 109, 0, 1, 108, 2, 103, 0, 1, 108, 2, 110, 0, 1, 114, 0, 2, 99, 32, 0, 2, 100,
-			101, 0, 2, 100, 105, 0, 8, 2, 98, 0, 8, 2, 114, 0, 115, 1, 110, 2, 32, 12, 12, 3, 109, 91, 0, 99, 1, 108, 2, 32,
-			3, 113, 49, 0, 4, 3, 115, 0, 8, 99, 115, 2, 114, 0, 115, 2, 12, 12, 3, 116, 91, 0, 4, 1, 102, 2, 108, 17, 67, 3,
-			128, 0, 1, 104, 102, 2, 108, 17, 67, 0, 100, 104, 0, 103, 104, 2, 101, 97, 0, 103, 104, 110, 3, 128, 106, 50, 0, 4, 1, 99,
-			2, 99, 3, 129, 0, 1, 115, 2, 108, 115, 0, 7, 6, 195, 161, 0, 1, 21, 3, 4, 123, 0, 105, 3, 6, 123, 37, 0, 4, 3,
-			123, 0, 100, 104, 0, 105, 2, 112, 0, 105, 110, 105, 103, 3, 123, 50, 109, 81, 0, 4, 116, 104, 97, 105, 114, 2, 32, 3, 123, 107,
-			13, 34, 0, 116, 104, 97, 114, 0, 7, 6, 195, 169, 0, 4, 3, 6, 110, 0, 97, 0, 105, 0, 97, 99, 115, 3, 110, 13, 49, 89,
-			0, 4, 105, 8, 2, 114, 105, 103, 3, 128, 0, 105, 8, 2, 114, 195, 173, 0, 105, 8, 104, 2, 114, 195, 173, 0, 105, 114, 101, 111,
-			105, 100, 104, 8, 3, 128, 34, 122, 109, 81, 0, 7, 6, 195, 173, 0, 3, 6, 108, 0, 108, 101, 2, 32, 3, 6, 108, 55, 113, 0,
-			111, 109, 104, 3, 6, 108, 84, 0, 111, 99, 104, 110, 3, 6, 108, 101, 50, 0, 2, 32, 3, 108, 0, 111, 3, 108, 13, 0, 110, 2,
-			32, 3, 108, 50, 0, 7, 6, 195, 179, 0, 4, 3, 6, 122, 0, 105, 2, 112, 21, 0, 109, 104, 97, 105, 3, 122, 13, 0, 7, 6,
-			195, 186, 0, 4, 3, 124, 0, 105, 0, 105, 2, 103, 3, 124, 37, 0, 110, 109, 104, 3, 124, 50, 84, 0, 105, 110, 110, 2, 32, 3,
-			124, 109, 68, 0, 105, 98, 104, 2, 32, 3, 124, 109, 84, 0, 7, 6, 97, 0, 195, 173, 2, 32, 3, 2, 108, 0, 116, 104, 8, 2,
-			21, 21, 14, 128, 132, 131, 3, 4, 120, 10, 0, 116, 104, 97, 105, 114, 3, 6, 35, 107, 13, 34, 0, 195, 173, 3, 6, 108, 0, 111,
-			105, 1, 104, 116, 97, 2, 114, 3, 6, 108, 13, 0, 111, 105, 99, 104, 116, 2, 32, 3, 6, 108, 13, 101, 74, 0, 111, 105, 1, 114,
-			2, 110, 195, 173, 110, 3, 6, 110, 13, 0, 110, 8, 2, 45, 3, 6, 120, 50, 0, 116, 104, 114, 8, 3, 6, 120, 107, 34, 0, 4,
-			1, 169, 195, 3, 13, 0, 2, 32, 0, 8, 2, 110, 17, 65, 0, 105, 2, 109, 32, 0, 111, 3, 13, 36, 0, 4, 110, 8, 2, 32,
-			3, 13, 50, 0, 110, 8, 2, 115, 18, 66, 0, 111, 105, 3, 13, 108, 0, 111, 105, 110, 101, 1, 100, 2, 32, 3, 13, 108, 50, 38,
-			2, 108, 0, 111, 1, 17, 67, 2, 116, 104, 32, 3, 13, 110, 0, 111, 1, 17, 67, 2, 17, 67, 3, 13, 110, 13, 0, 2, 114, 114,
-			97, 105, 103, 101, 3, 35, 0, 114, 114, 97, 105, 110, 103, 3, 35, 34, 109, 50, 81, 0, 111, 8, 18, 89, 2, 17, 67, 3, 58, 6,
-			110, 13, 0, 111, 1, 98, 2, 116, 104, 32, 12, 12, 3, 58, 110, 0, 111, 1, 98, 2, 12, 12, 3, 58, 110, 13, 0, 111, 105, 8,
-			3, 108, 0, 4, 101, 3, 110, 0, 111, 8, 0, 116, 104, 8, 3, 120, 107, 0, 3, 121, 0, 114, 100, 8, 2, 21, 14, 128, 132, 131,
-			3, 123, 34, 73, 0, 4, 98, 104, 97, 105, 114, 1, 104, 116, 3, 124, 13, 34, 0, 98, 104, 97, 105, 114, 1, 116, 0, 98, 104, 97,
-			114, 1, 104, 116, 0, 98, 104, 97, 114, 1, 116, 0, 4, 100, 104, 2, 17, 67, 3, 128, 0, 100, 104, 2, 97, 0, 103, 104, 2, 100,
-			0, 103, 104, 2, 115, 0, 103, 104, 97, 3, 128, 13, 0, 103, 104, 97, 105, 100, 104, 3, 128, 81, 0, 4, 98, 104, 2, 17, 67, 3,
-			130, 0, 109, 104, 8, 0, 4, 98, 104, 97, 3, 130, 13, 0, 98, 104, 97, 105, 0, 109, 104, 97, 0, 109, 104, 114, 3, 130, 34, 0,
-			109, 104, 110, 97, 2, 32, 3, 130, 50, 13, 0, 109, 104, 108, 1, 25, 3, 130, 55, 0, 109, 2, 112, 108, 97, 3, 130, 65, 0, 4,
-			1, 29, 2, 108, 108, 32, 3, 131, 0, 1, 29, 2, 110, 110, 32, 0, 109, 97, 2, 32, 3, 131, 65, 13, 0, 98, 104, 116, 3, 131,
-			74, 0, 7, 6, 98, 0, 5, 1, 8, 32, 109, 2, 21, 3, 0, 117, 110, 5, 1, 8, 32, 109, 2, 17, 67, 21, 14, 128, 132, 131,
-			3, 4, 117, 50, 0, 4, 3, 71, 0, 5, 1, 8, 2, 32, 112, 0, 112, 8, 0, 117, 110, 8, 2, 17, 67, 21, 14, 128, 132, 131,
-			3, 71, 4, 117, 50, 0, 4, 1, 18, 66, 3, 71, 38, 0, 5, 1, 8, 2, 32, 112, 18, 66, 0, 112, 8, 2, 18, 66, 0, 112,
-			114, 195, 173, 111, 109, 104, 8, 2, 21, 14, 128, 132, 135, 3, 71, 51, 4, 108, 84, 0, 2, 18, 87, 3, 71, 57, 0, 101, 97, 110,
-			110, 8, 2, 21, 3, 71, 112, 50, 0, 4, 104, 3, 84, 0, 104, 1, 18, 66, 0, 104, 5, 1, 8, 2, 32, 102, 0, 104, 102, 8,
-			0, 104, 102, 97, 105, 103, 104, 3, 84, 6, 128, 0, 4, 104, 5, 1, 8, 2, 32, 102, 18, 87, 3, 84, 38, 0, 104, 102, 8, 2,
-			18, 87, 0, 104, 2, 18, 87, 3, 84, 57, 0, 104, 2, 32, 3, 84, 84, 0, 104, 101, 97, 110, 110, 8, 2, 21, 3, 84, 112, 50,
-			0, 104, 1, 97, 2, 97, 3, 117, 0, 104, 97, 1, 114, 97, 101, 3, 124, 0, 7, 6, 99, 0, 4, 5, 1, 8, 32, 103, 2, 18,
-			66, 3, 0, 5, 1, 8, 32, 103, 2, 21, 3, 0, 3, 49, 0, 111, 109, 104, 8, 2, 21, 21, 14, 128, 132, 132, 3, 49, 4, 122,
-			0, 4, 111, 109, 104, 97, 105, 114, 3, 49, 6, 122, 13, 34, 0, 111, 109, 104, 97, 114, 0, 97, 98, 104, 114, 8, 3, 49, 6, 130,
-			34, 0, 2, 18, 66, 3, 49, 38, 0, 101, 97, 110, 110, 8, 2, 17, 67, 21, 14, 128, 132, 133, 3, 49, 38, 4, 130, 50, 0, 4,
-			104, 2, 18, 66, 3, 99, 38, 0, 104, 2, 195, 169, 12, 0, 104, 101, 97, 110, 110, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 99,
-			38, 4, 130, 50, 0, 104, 3, 101, 0, 104, 111, 109, 104, 8, 2, 21, 21, 14, 128, 132, 133, 3, 101, 4, 122, 0, 4, 104, 111, 109,
-			104, 97, 105, 114, 3, 101, 6, 122, 13, 34, 0, 104, 111, 109, 104, 97, 114, 0, 104, 97, 98, 104, 114, 8, 3, 101, 6, 130, 34, 0,
-			104, 2, 101, 105, 12, 3, 101, 38, 0, 7, 6, 100, 0, 4, 5, 1, 8, 32, 110, 2, 21, 3, 0, 4, 104, 1, 18, 84, 2, 32,
-			3, 0, 104, 1, 97, 26, 2, 32, 12, 3, 0, 104, 2, 18, 66, 3, 57, 0, 4, 8, 2, 32, 39, 102, 104, 3, 72, 0, 39, 8,
-			0, 39, 8, 2, 21, 14, 128, 132, 130, 0, 39, 102, 104, 2, 18, 66, 0, 195, 173, 8, 2, 17, 67, 21, 21, 14, 128, 132, 130, 3,
-			72, 4, 108, 0, 101, 97, 114, 116, 104, 195, 161, 105, 114, 3, 72, 34, 13, 107, 6, 123, 34, 0, 2, 18, 66, 3, 72, 38, 0, 195,
-			173, 99, 104, 101, 97, 108, 108, 3, 72, 38, 6, 108, 99, 112, 55, 0, 101, 105, 114, 102, 105, 195, 186, 114, 3, 72, 38, 34, 13, 83,
-			6, 124, 34, 0, 4, 3, 73, 0, 5, 1, 8, 2, 32, 116, 0, 116, 8, 0, 111, 8, 2, 17, 67, 104, 21, 21, 14, 128, 132, 130,
-			3, 73, 4, 117, 10, 0, 111, 109, 104, 97, 110, 3, 73, 130, 13, 50, 0, 4, 1, 18, 66, 3, 75, 0, 1, 105, 2, 105, 0, 2,
-			17, 67, 18, 66, 0, 2, 18, 87, 0, 5, 1, 8, 2, 32, 116, 18, 66, 0, 116, 8, 2, 18, 66, 0, 104, 1, 105, 2, 32, 3,
-			81, 0, 104, 101, 97, 114, 116, 104, 195, 161, 105, 114, 3, 81, 34, 13, 107, 6, 123, 34, 0, 104, 101, 105, 114, 102, 105, 195, 186, 114,
-			3, 81, 38, 34, 13, 83, 6, 124, 34, 0, 4, 104, 3, 100, 0, 104, 2, 97, 111, 0, 104, 2, 117, 105, 0, 104, 97, 111, 105, 110,
-			101, 3, 100, 13, 108, 50, 38, 2, 108, 0, 4, 104, 1, 97, 2, 32, 3, 106, 0, 104, 1, 111, 2, 32, 0, 7, 6, 101, 0, 111,
-			1, 115, 2, 32, 3, 13, 0, 105, 3, 113, 0, 3, 114, 0, 4, 111, 1, 100, 2, 99, 104, 3, 116, 0, 111, 1, 104, 100, 2, 99,
-			104, 0, 111, 8, 2, 99, 104, 0, 111, 8, 104, 2, 99, 104, 0, 4, 111, 3, 122, 0, 111, 103, 104, 97, 0, 111, 103, 104, 97, 105,
-			0, 111, 105, 0, 4, 111, 105, 2, 17, 67, 17, 67, 32, 3, 122, 109, 0, 111, 105, 2, 103, 0, 195, 161, 3, 123, 0, 4, 105, 1,
-			104, 115, 2, 110, 110, 3, 128, 0, 105, 1, 114, 2, 109, 0, 105, 1, 115, 2, 110, 110, 0, 105, 100, 104, 2, 17, 67, 0, 105, 103,
-			104, 0, 105, 103, 104, 101, 97, 0, 105, 103, 104, 101, 97, 0, 7, 6, 102, 0, 4, 5, 1, 8, 32, 104, 98, 2, 21, 3, 0, 104,
-			3, 0, 4, 5, 1, 8, 32, 104, 98, 2, 18, 87, 3, 38, 0, 104, 2, 18, 87, 0, 3, 83, 0, 195, 173, 111, 114, 8, 2, 21,
-			14, 128, 132, 132, 3, 83, 4, 108, 34, 0, 111, 8, 2, 17, 67, 21, 21, 14, 128, 132, 130, 3, 83, 4, 117, 0, 111, 114, 98, 8,
-			3, 83, 6, 115, 34, 71, 0, 111, 103, 104, 8, 3, 83, 6, 130, 0, 2, 18, 87, 3, 83, 38, 0, 97, 111, 105, 3, 83, 58, 6,
-			108, 0, 105, 111, 115, 3, 83, 109, 89, 0, 111, 99, 8, 2, 21, 12, 12, 3, 83, 115, 49, 0, 4, 1, 21, 2, 18, 71, 32, 3,
-			107, 0, 104, 2, 195, 169, 105, 110, 32, 0, 104, 105, 111, 115, 3, 109, 89, 0, 7, 6, 103, 0, 5, 1, 8, 32, 110, 2, 21, 3,
-			0, 104, 101, 111, 98, 104, 3, 57, 6, 122, 0, 4, 3, 81, 0, 5, 1, 8, 2, 32, 99, 0, 99, 8, 0, 104, 1, 105, 2, 32,
-			0, 110, 8, 3, 81, 13, 50, 0, 110, 195, 161, 116, 104, 8, 2, 21, 21, 14, 128, 132, 133, 3, 81, 13, 50, 4, 123, 0, 4, 2,
-			18, 66, 3, 81, 38, 0, 5, 1, 8, 2, 32, 99, 18, 66, 0, 99, 8, 2, 18, 66, 0, 101, 97, 114, 114, 8, 2, 17, 67, 21,
-			21, 14, 128, 132, 133, 3, 81, 38, 4, 35, 51, 0, 97, 98, 104, 3, 81, 130, 0, 104, 3, 103, 0, 104, 8, 2, 18, 66, 3, 103,
-			57, 0, 104, 101, 97, 114, 114, 8, 2, 17, 67, 21, 21, 14, 128, 132, 134, 3, 103, 57, 4, 35, 51, 0, 104, 97, 98, 104, 3, 103,
-			130, 0, 104, 1, 17, 67, 21, 2, 21, 3, 106, 0, 104, 2, 110, 3, 106, 13, 0, 104, 110, 195, 161, 116, 104, 8, 2, 21, 14, 128,
-			132, 134, 3, 106, 13, 50, 4, 123, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 110, 8, 2, 21, 21, 14, 128, 132, 130, 3,
-			4, 109, 50, 10, 0, 111, 110, 97, 100, 8, 2, 17, 67, 21, 21, 14, 128, 132, 133, 3, 4, 115, 50, 112, 73, 0, 110, 8, 2, 116,
-			105, 110, 110, 3, 6, 109, 50, 0, 1, 18, 77, 3, 37, 0, 4, 1, 109, 2, 100, 32, 3, 108, 0, 97, 2, 116, 104, 97, 0, 97,
-			105, 3, 108, 37, 0, 110, 110, 1, 18, 81, 2, 32, 3, 108, 50, 0, 109, 112, 101, 97, 108, 108, 3, 108, 65, 48, 13, 55, 0, 4,
-			3, 109, 0, 8, 0, 111, 1, 104, 115, 2, 109, 98, 0, 111, 1, 115, 2, 109, 98, 0, 111, 2, 100, 195, 161, 0, 111, 2, 115, 0,
-			110, 110, 8, 3, 109, 50, 0, 111, 3, 116, 0, 111, 110, 100, 3, 116, 50, 13, 73, 0, 111, 109, 108, 3, 116, 65, 13, 55, 0, 117,
-			3, 117, 0, 4, 111, 8, 2, 110, 97, 100, 104, 3, 124, 0, 111, 8, 114, 112, 2, 110, 0, 195, 186, 0, 97, 3, 126, 0, 7, 6,
-			106, 0, 3, 21, 0, 7, 6, 107, 0, 3, 21, 0, 7, 6, 108, 0, 4, 3, 55, 0, 108, 0, 108, 2, 98, 0, 111, 114, 103, 8,
-			2, 21, 21, 14, 128, 132, 132, 3, 55, 4, 115, 34, 13, 81, 0, 195, 161, 110, 8, 2, 21, 21, 14, 128, 132, 131, 3, 55, 4, 123,
-			50, 0, 4, 2, 98, 3, 55, 13, 0, 2, 103, 0, 4, 1, 18, 66, 3, 55, 38, 0, 2, 18, 88, 0, 108, 2, 18, 88, 0, 1,
-			18, 66, 2, 98, 3, 55, 38, 13, 0, 7, 6, 109, 0, 1, 114, 3, 13, 65, 0, 1, 114, 2, 18, 85, 3, 13, 65, 38, 0, 4,
-			3, 65, 0, 5, 1, 8, 2, 32, 98, 0, 98, 8, 0, 101, 97, 114, 8, 2, 21, 21, 14, 128, 132, 132, 3, 65, 4, 35, 34, 0,
-			195, 173, 8, 2, 17, 67, 21, 21, 14, 128, 132, 130, 3, 65, 4, 108, 0, 8, 2, 110, 3, 65, 13, 0, 4, 2, 18, 85, 3, 65,
-			38, 0, 5, 1, 8, 2, 32, 98, 18, 87, 0, 98, 8, 2, 18, 87, 0, 4, 104, 3, 84, 0, 104, 1, 18, 79, 0, 104, 8, 2,
-			110, 3, 84, 13, 0, 104, 101, 97, 115, 1, 114, 105, 169, 195, 108, 3, 84, 35, 89, 0, 104, 2, 18, 85, 3, 84, 38, 0, 7, 6,
-			110, 0, 4, 1, 99, 3, 13, 50, 0, 1, 104, 99, 0, 4, 3, 50, 0, 5, 1, 8, 2, 32, 100, 0, 100, 8, 0, 110, 0, 97,
-			115, 99, 8, 2, 17, 67, 21, 21, 3, 50, 4, 120, 89, 49, 0, 4, 2, 98, 3, 50, 13, 0, 2, 98, 104, 0, 2, 99, 104, 0,
-			2, 109, 0, 4, 2, 18, 66, 3, 50, 38, 0, 5, 1, 8, 2, 32, 18, 66, 0, 5, 1, 8, 2, 32, 100, 18, 66, 0, 100, 8,
-			2, 18, 66, 0, 110, 2, 18, 66, 3, 50, 57, 0, 4, 5, 1, 8, 2, 32, 103, 3, 68, 0, 103, 0, 110, 1, 105, 2, 32, 0,
-			4, 5, 1, 8, 2, 32, 103, 18, 66, 3, 68, 38, 0, 103, 2, 18, 66, 0, 7, 6, 111, 0, 108, 108, 8, 2, 21, 21, 14, 128,
-			132, 131, 3, 4, 115, 55, 0, 4, 1, 17, 67, 2, 99, 104, 116, 32, 3, 6, 115, 0, 8, 0, 114, 110, 2, 32, 3, 6, 115, 34,
-			13, 50, 0, 112, 97, 105, 99, 3, 13, 48, 109, 49, 0, 195, 173, 3, 108, 0, 4, 3, 116, 0, 1, 114, 2, 110, 110, 32, 0, 100,
-			108, 2, 97, 3, 116, 55, 0, 4, 2, 105, 114, 100, 32, 3, 122, 0, 2, 114, 100, 32, 0, 100, 104, 1, 17, 67, 2, 32, 0, 109,
-			104, 8, 17, 67, 0, 109, 104, 8, 17, 67, 17, 67, 0, 4, 109, 104, 97, 3, 122, 13, 0, 109, 104, 97, 105, 0, 4, 1, 17, 67,
-			2, 110, 110, 32, 3, 130, 0, 2, 108, 108, 32, 0, 100, 104, 97, 0, 103, 104, 1, 17, 67, 0, 109, 104, 97, 105, 110, 2, 32, 3,
-			130, 109, 50, 0, 7, 6, 112, 0, 5, 1, 8, 32, 98, 2, 21, 3, 0, 3, 48, 0, 2, 18, 87, 3, 48, 38, 0, 114, 195, 173,
-			111, 109, 104, 8, 2, 21, 14, 128, 132, 134, 3, 48, 51, 4, 108, 84, 0, 104, 3, 83, 0, 104, 2, 18, 85, 3, 83, 38, 0, 104,
-			114, 195, 173, 111, 109, 104, 8, 2, 21, 14, 128, 132, 135, 3, 83, 51, 4, 108, 84, 0, 7, 6, 113, 0, 3, 21, 0, 7, 6, 114,
-			0, 3, 34, 0, 195, 169, 97, 109, 104, 8, 2, 21, 14, 128, 132, 133, 3, 34, 4, 110, 84, 0, 2, 98, 104, 3, 34, 13, 0, 103,
-			3, 34, 13, 81, 0, 103, 104, 3, 34, 103, 0, 97, 109, 104, 8, 3, 34, 130, 0, 4, 1, 18, 66, 3, 51, 0, 1, 115, 2, 17,
-			65, 0, 2, 18, 66, 0, 114, 0, 103, 1, 18, 66, 3, 51, 13, 81, 0, 4, 1, 105, 18, 77, 2, 101, 32, 3, 90, 0, 1, 105,
-			18, 77, 2, 116, 32, 0, 7, 6, 115, 0, 5, 1, 8, 32, 116, 2, 21, 3, 0, 4, 3, 89, 0, 2, 112, 17, 67, 195, 169, 0,
-			8, 39, 2, 32, 0, 97, 105, 110, 8, 2, 21, 14, 128, 132, 132, 3, 89, 4, 35, 50, 0, 4, 1, 18, 66, 3, 91, 0, 2, 17,
-			67, 17, 67, 18, 66, 0, 2, 17, 67, 18, 66, 0, 2, 18, 66, 0, 2, 108, 18, 66, 0, 101, 97, 110, 8, 2, 21, 21, 14, 128,
-			132, 132, 3, 91, 4, 35, 50, 0, 4, 104, 3, 107, 0, 104, 2, 17, 67, 18, 66, 0, 104, 2, 18, 66, 3, 107, 38, 0, 7, 6,
-			116, 0, 4, 5, 1, 8, 32, 100, 2, 21, 3, 0, 4, 104, 1, 17, 65, 2, 32, 3, 0, 104, 1, 111, 97, 2, 32, 3, 0, 104,
-			1, 25, 2, 97, 115, 32, 3, 13, 107, 0, 104, 1, 99, 2, 101, 32, 3, 37, 107, 0, 4, 5, 1, 8, 2, 32, 115, 18, 66, 3,
-			47, 38, 0, 115, 8, 2, 18, 66, 0, 4, 3, 74, 0, 5, 1, 8, 2, 32, 115, 0, 115, 8, 0, 97, 105, 110, 101, 2, 32, 3,
-			74, 109, 50, 2, 113, 0, 4, 1, 17, 67, 18, 66, 3, 76, 0, 2, 17, 67, 18, 66, 0, 2, 101, 111, 12, 12, 0, 2, 195, 173,
-			12, 12, 110, 0, 4, 1, 18, 66, 3, 80, 0, 2, 18, 66, 0, 5, 1, 8, 2, 32, 18, 66, 0, 4, 104, 3, 107, 0, 104, 1,
-			17, 67, 18, 66, 0, 104, 1, 18, 66, 0, 104, 110, 101, 2, 32, 3, 107, 13, 50, 113, 0, 104, 2, 18, 66, 3, 107, 38, 0, 7,
-			6, 117, 0, 105, 109, 104, 105, 114, 8, 2, 17, 67, 21, 14, 128, 132, 134, 3, 4, 109, 84, 109, 51, 0, 97, 99, 104, 97, 105, 3,
-			6, 40, 101, 13, 0, 195, 173, 111, 109, 104, 3, 6, 108, 13, 84, 84, 0, 105, 110, 110, 2, 32, 3, 6, 108, 50, 0, 105, 98, 104,
-			110, 101, 97, 99, 104, 2, 32, 3, 13, 6, 108, 50, 13, 101, 0, 105, 98, 104, 110, 101, 2, 32, 3, 13, 6, 108, 50, 38, 113, 0,
-			4, 105, 1, 103, 2, 103, 104, 32, 3, 13, 108, 0, 105, 1, 104, 103, 2, 103, 104, 32, 0, 105, 1, 18, 68, 3, 13, 109, 0, 4,
-			97, 105, 2, 100, 3, 40, 37, 0, 97, 105, 2, 103, 0, 4, 195, 173, 1, 103, 3, 58, 108, 0, 195, 173, 1, 104, 103, 0, 195, 173,
-			8, 98, 0, 195, 173, 8, 104, 98, 0, 195, 173, 3, 108, 0, 105, 3, 109, 0, 8, 100, 2, 108, 32, 3, 116, 0, 3, 118, 0, 105,
-			110, 116, 105, 3, 118, 6, 108, 50, 47, 109, 0, 109, 104, 3, 124, 0, 195, 161, 3, 124, 6, 123, 0, 97, 2, 32, 3, 124, 13, 0,
-			97, 105, 110, 110, 3, 124, 37, 68, 0, 4, 97, 3, 127, 0, 97, 105, 0, 7, 6, 118, 0, 3, 21, 0, 195, 169, 97, 114, 115, 97,
-			3, 84, 110, 34, 89, 13, 0, 7, 6, 119, 0, 3, 21, 0, 7, 6, 120, 0, 3, 21, 0, 7, 6, 121, 0, 3, 21, 0, 7, 6,
-			122, 0, 3, 21, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts22 = FileInMemory_createWithData (8917, reinterpret_cast<const char *> (&espeakdata_dicts22_data), 
-			U"espeak-1.48.04-source/espeak-data/ga_dict", 
-			U"ga");
-		my addItem_move (espeakdata_dicts22.move());
-
-		static unsigned char espeakdata_dicts23_data[3795] = {
-			0, 4, 0, 0, 157, 7, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 7, 65, 8, 71, 109, 0, 49, 0, 0,
-			0, 0, 6, 65, 12, 89, 109, 0, 0, 0, 0, 0, 7, 65, 16, 72, 109, 0, 49, 0, 0, 0, 19, 4, 95, 100, 112, 116, 10, 89,
-			47, 6, 35, 72, 83, 6, 119, 67, 119, 131, 0, 0, 6, 65, 20, 111, 0, 76, 0, 0, 0, 0, 6, 65, 24, 112, 83, 0, 0, 0,
-			0, 0, 7, 65, 28, 75, 109, 0, 49, 0, 0, 6, 195, 76, 19, 128, 76, 0, 0, 7, 65, 32, 125, 76, 0, 49, 0, 0, 0, 0,
-			6, 65, 36, 109, 0, 76, 0, 0, 6, 65, 112, 114, 0, 76, 0, 0, 6, 65, 40, 75, 125, 0, 0, 0, 0, 0, 6, 65, 44, 49,
-			125, 0, 0, 0, 0, 0, 6, 65, 48, 112, 55, 0, 0, 0, 0, 0, 7, 65, 52, 112, 65, 0, 49, 0, 0, 0, 0, 7, 65, 56,
-			112, 50, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 109, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 118, 0, 0,
-			0, 0, 0, 6, 65, 72, 35, 51, 0, 0, 5, 194, 5, 32, 72, 0, 0, 0, 0, 0, 0, 0, 7, 65, 80, 47, 109, 0, 49, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 109, 0, 0, 0, 0, 0, 13, 65, 92, 72, 6, 116, 137, 71, 13, 55, 57, 118, 0,
-			0, 0, 0, 0, 7, 65, 96, 112, 49, 89, 0, 0, 0, 0, 0, 6, 65, 100, 58, 124, 0, 0, 0, 0, 0, 7, 65, 104, 88, 112,
-			72, 0, 0, 0, 6, 195, 80, 133, 64, 76, 0, 6, 195, 76, 144, 136, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 112, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 9, 80, 71, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76,
-			147, 142, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 208, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 195, 36, 17, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 29, 80, 76, 5, 194, 29, 80, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 48, 83, 6, 37, 99, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
-			3, 95, 51, 48, 47, 135, 6, 37, 99, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 16, 240, 72, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 51, 88, 47, 135, 6, 37, 99, 13, 72, 89, 13, 138, 0, 13,
-			3, 95, 54, 48, 91, 6, 36, 89, 81, 13, 72, 0, 0, 10, 3, 95, 48, 67, 132, 6, 122, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			13, 3, 95, 55, 48, 91, 6, 112, 101, 81, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 57, 134, 6, 127, 130, 4,
-			122, 81, 0, 0, 14, 3, 95, 49, 56, 6, 116, 101, 81, 130, 4, 122, 81, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49,
-			6, 119, 12, 50, 130, 4, 122, 81, 0, 0, 10, 3, 95, 49, 48, 130, 6, 36, 99, 0, 0, 14, 3, 95, 49, 51, 47, 135, 6, 37,
-			130, 4, 122, 81, 0, 0, 13, 3, 95, 49, 50, 100, 6, 35, 100, 4, 122, 81, 0, 0, 14, 3, 95, 49, 53, 49, 6, 115, 131, 130,
-			4, 122, 81, 0, 0, 16, 3, 95, 49, 52, 132, 6, 36, 107, 108, 135, 130, 4, 122, 81, 0, 0, 15, 3, 95, 49, 55, 91, 6, 112,
-			101, 81, 130, 4, 122, 81, 0, 0, 13, 3, 95, 49, 54, 91, 6, 121, 130, 4, 122, 81, 0, 0, 0, 16, 3, 95, 55, 88, 91, 6,
-			112, 101, 81, 13, 72, 89, 13, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 97, 99, 117, 35, 49, 57,
-			6, 118, 47, 0, 0, 0, 0, 0, 13, 3, 95, 52, 48, 132, 6, 112, 107, 16, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			3, 95, 50, 88, 83, 6, 37, 99, 13, 72, 89, 13, 138, 0, 12, 3, 95, 53, 48, 49, 6, 115, 131, 13, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 52, 88, 132, 6, 112, 107, 16, 13, 72, 89, 13, 138, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 56, 16, 76, 0, 15, 3, 95, 53, 88, 49, 6, 115, 131, 13, 72, 89, 13, 138, 0, 12, 3, 95, 56,
-			48, 6, 116, 101, 81, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 54, 88, 91, 6, 36, 89, 81, 13, 72, 89, 13,
-			138, 0, 14, 3, 95, 57, 48, 134, 6, 119, 12, 101, 81, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 15, 3, 95, 56, 88, 6, 116, 101, 81, 13, 72, 89, 13, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 57, 88,
-			134, 6, 119, 12, 101, 81, 13, 72, 89, 13, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 29, 83, 64, 76, 0,
-			0, 0, 13, 4, 95, 48, 77, 50, 65, 6, 37, 61, 13, 50, 0, 0, 0, 0, 12, 4, 95, 48, 77, 49, 65, 6, 37, 55, 13, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 195, 29, 83, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 29, 84, 128, 76, 0, 0, 0, 0, 0, 6, 131,
-			95, 195, 185, 43, 0, 0, 0, 0, 0, 6, 131, 95, 195, 178, 43, 0, 6, 131, 95, 195, 179, 43, 0, 0, 0, 0, 5, 194, 76, 16,
-			76, 0, 6, 131, 95, 195, 172, 43, 0, 0, 0, 0, 6, 131, 95, 195, 168, 43, 0, 6, 131, 95, 195, 169, 43, 0, 0, 0, 0, 0,
-			0, 0, 6, 131, 95, 195, 160, 43, 0, 6, 131, 95, 195, 161, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 66, 52, 240, 65, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			14, 4, 95, 103, 114, 118, 6, 35, 49, 89, 112, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 85, 32, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 81, 80, 76, 0, 0, 0, 0, 0, 6, 195, 56, 19, 64, 76, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 56, 19, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 135, 6, 37, 0, 0, 8, 2, 95, 50,
-			100, 6, 35, 0, 0, 9, 2, 95, 49, 6, 119, 12, 50, 0, 0, 10, 2, 95, 48, 50, 6, 116, 50, 108, 0, 0, 10, 2, 95, 55,
-			91, 6, 112, 101, 81, 0, 0, 8, 2, 95, 54, 91, 6, 121, 0, 0, 9, 2, 95, 53, 49, 6, 115, 131, 0, 0, 11, 2, 95, 52,
-			132, 6, 36, 107, 108, 135, 0, 0, 0, 0, 8, 2, 95, 57, 134, 6, 127, 0, 0, 9, 2, 95, 56, 6, 116, 101, 81, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 97, 125, 0, 0, 0, 0, 0, 6, 2, 95, 101, 109, 0, 0, 0, 0, 0, 6, 2, 95,
-			105, 124, 0, 0, 0, 6, 2, 95, 111, 117, 0, 0, 0, 0, 0, 7, 2, 95, 115, 112, 89, 0, 0, 0, 0, 0, 0, 0, 7, 2,
-			95, 117, 57, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_dicts20_data[1093] = {
+			0, 4, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			18, 66, 195, 168, 0, 195, 169, 0, 195, 172, 0, 101, 0, 105, 0, 7, 6, 18, 67, 195, 160, 0, 195, 161, 0, 195, 178, 0, 195, 179,
-			0, 195, 185, 0, 97, 0, 111, 0, 117, 0, 7, 6, 18, 68, 101, 97, 108, 108, 0, 101, 97, 110, 110, 0, 101, 97, 114, 114, 0, 101,
-			97, 114, 110, 0, 101, 97, 100, 104, 0, 101, 97, 104, 103, 0, 105, 111, 108, 108, 0, 105, 111, 110, 110, 0, 101, 195, 178, 0, 105, 195,
-			185, 0, 101, 111, 0, 105, 117, 0, 7, 6, 18, 69, 98, 104, 0, 103, 104, 0, 109, 104, 0, 98, 0, 103, 0, 109, 0, 7, 6, 18,
-			70, 108, 108, 0, 110, 110, 0, 109, 0, 7, 6, 18, 71, 108, 0, 110, 0, 114, 0, 7, 6, 18, 72, 99, 104, 0, 108, 0, 114, 0,
-			115, 0, 7, 6, 98, 104, 0, 2, 32, 12, 28, 17, 3, 0, 4, 3, 84, 0, 2, 32, 0, 2, 18, 68, 3, 84, 57, 0, 4, 1,
-			18, 71, 3, 136, 84, 0, 1, 18, 71, 2, 32, 0, 1, 18, 71, 2, 18, 68, 3, 136, 84, 57, 0, 7, 6, 195, 160, 0, 4, 3,
-			113, 0, 105, 0, 7, 6, 195, 161, 0, 4, 3, 113, 0, 105, 0, 7, 6, 195, 168, 0, 4, 3, 111, 0, 105, 0, 97, 3, 122, 0,
-			7, 6, 195, 169, 0, 4, 3, 110, 0, 105, 0, 7, 6, 195, 172, 0, 3, 109, 0, 111, 3, 121, 0, 7, 6, 195, 178, 0, 4, 3,
-			115, 0, 105, 0, 7, 6, 195, 179, 0, 4, 3, 117, 0, 105, 0, 7, 6, 195, 185, 0, 4, 3, 118, 0, 105, 0, 7, 6, 97, 0,
-			4, 3, 35, 0, 105, 0, 105, 100, 104, 2, 17, 67, 3, 35, 23, 37, 0, 4, 98, 104, 2, 17, 67, 3, 35, 23, 40, 0, 109, 104,
-			2, 17, 67, 0, 105, 1, 21, 3, 108, 0, 105, 2, 109, 18, 72, 3, 112, 0, 4, 2, 114, 100, 3, 113, 0, 2, 114, 110, 0, 2,
-			114, 114, 25, 0, 105, 2, 114, 100, 0, 105, 2, 114, 110, 0, 105, 2, 114, 114, 25, 0, 4, 2, 103, 32, 3, 114, 0, 105, 2, 108,
-			32, 0, 111, 3, 119, 12, 0, 4, 2, 100, 104, 17, 65, 3, 120, 0, 2, 100, 104, 32, 0, 2, 103, 104, 17, 65, 0, 2, 103, 104,
-			32, 0, 4, 100, 104, 2, 17, 67, 3, 120, 12, 0, 103, 104, 2, 17, 67, 0, 105, 103, 104, 2, 17, 67, 3, 120, 23, 37, 0, 4,
-			105, 2, 18, 70, 25, 3, 124, 0, 105, 2, 98, 104, 17, 67, 0, 105, 2, 109, 104, 17, 67, 0, 111, 105, 3, 127, 0, 2, 18, 70,
-			25, 3, 128, 0, 7, 6, 98, 0, 3, 71, 0, 2, 18, 68, 3, 71, 57, 0, 1, 18, 71, 3, 136, 71, 0, 1, 18, 71, 2, 18,
-			68, 3, 136, 71, 57, 0, 7, 6, 99, 0, 3, 49, 0, 110, 3, 49, 51, 0, 1, 17, 67, 2, 32, 3, 81, 0, 4, 104, 1, 18,
-			66, 3, 99, 0, 104, 2, 18, 66, 0, 104, 3, 101, 0, 1, 17, 67, 18, 66, 2, 32, 3, 131, 0, 2, 18, 66, 3, 132, 0, 4,
-			104, 1, 18, 71, 2, 18, 66, 3, 136, 99, 0, 104, 1, 18, 71, 18, 66, 0, 104, 1, 18, 71, 3, 136, 101, 0, 1, 17, 65, 2,
-			18, 67, 3, 137, 49, 0, 4, 1, 17, 65, 2, 32, 3, 137, 81, 0, 104, 100, 0, 1, 18, 66, 2, 32, 3, 137, 131, 0, 1, 17,
-			65, 2, 18, 66, 3, 137, 132, 0, 7, 6, 100, 0, 4, 104, 1, 17, 65, 2, 18, 66, 3, 0, 4, 104, 1, 105, 97, 2, 32, 3,
-			0, 104, 1, 105, 169, 195, 2, 32, 3, 0, 3, 72, 0, 4, 104, 1, 18, 66, 3, 98, 0, 104, 2, 18, 66, 0, 4, 104, 3, 100,
-			0, 104, 1, 17, 65, 2, 18, 67, 0, 4, 1, 18, 66, 3, 130, 0, 2, 18, 66, 0, 7, 6, 101, 0, 97, 1, 21, 3, 13, 0,
-			4, 97, 2, 108, 108, 17, 65, 3, 35, 0, 97, 2, 110, 110, 17, 65, 0, 97, 2, 114, 114, 17, 65, 0, 4, 3, 36, 0, 97, 2,
-			100, 0, 97, 2, 103, 0, 97, 2, 115, 0, 105, 0, 4, 97, 8, 2, 108, 108, 17, 65, 3, 57, 35, 0, 97, 8, 2, 110, 110, 17,
-			65, 0, 97, 8, 2, 114, 114, 17, 65, 0, 4, 195, 178, 8, 3, 57, 115, 0, 195, 178, 105, 8, 0, 105, 1, 21, 3, 108, 0, 117,
-			2, 109, 3, 110, 0, 97, 3, 112, 0, 97, 109, 104, 2, 17, 67, 3, 112, 23, 40, 0, 4, 97, 2, 114, 110, 3, 113, 0, 97, 2,
-			114, 114, 25, 0, 97, 1, 21, 2, 103, 32, 3, 114, 0, 4, 195, 178, 3, 115, 0, 195, 178, 105, 0, 111, 3, 116, 0, 4, 97, 2,
-			100, 104, 32, 3, 120, 0, 97, 2, 103, 104, 32, 0, 97, 103, 104, 2, 17, 67, 3, 120, 12, 0, 117, 3, 122, 0, 105, 2, 18, 70,
-			25, 3, 125, 0, 4, 97, 2, 108, 108, 25, 3, 128, 0, 97, 2, 110, 110, 25, 0, 7, 6, 102, 0, 104, 3, 0, 3, 83, 0, 2,
-			18, 68, 3, 83, 57, 0, 7, 6, 103, 0, 4, 104, 1, 17, 65, 2, 18, 66, 3, 0, 104, 2, 32, 12, 28, 17, 3, 0, 3, 81,
-			0, 110, 3, 81, 51, 0, 4, 104, 1, 18, 66, 3, 98, 0, 104, 2, 18, 66, 0, 4, 104, 3, 100, 0, 104, 1, 17, 65, 2, 18,
-			67, 0, 4, 1, 18, 66, 3, 131, 0, 2, 18, 66, 0, 1, 18, 71, 3, 136, 81, 0, 4, 104, 1, 18, 71, 2, 18, 66, 3, 136,
-			98, 0, 104, 1, 18, 71, 18, 66, 0, 104, 1, 18, 71, 3, 136, 100, 0, 4, 1, 18, 71, 2, 18, 66, 3, 136, 131, 0, 1, 18,
-			71, 18, 66, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 4, 3, 37, 0, 2, 109, 18, 72, 0, 2, 109, 104, 0, 111, 0,
-			4, 111, 100, 104, 2, 17, 67, 3, 37, 23, 13, 0, 111, 103, 104, 2, 17, 67, 0, 117, 3, 40, 0, 4, 111, 8, 2, 108, 108, 25,
-			3, 57, 40, 0, 111, 8, 2, 110, 110, 25, 0, 117, 8, 0, 2, 18, 70, 25, 3, 109, 0, 4, 111, 2, 108, 108, 25, 3, 118, 0,
-			111, 2, 110, 110, 25, 0, 117, 2, 114, 114, 0, 117, 2, 114, 115, 0, 195, 185, 0, 195, 185, 105, 0, 97, 3, 121, 0, 7, 6, 106,
-			0, 3, 75, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 4, 1, 18, 66, 3, 55, 0, 2, 18, 66, 0, 4, 8, 2, 18,
-			66, 3, 61, 0, 108, 1, 18, 66, 0, 108, 2, 18, 66, 0, 4, 3, 64, 0, 108, 0, 7, 6, 109, 0, 3, 65, 0, 2, 18, 68,
-			3, 65, 57, 0, 2, 18, 72, 3, 65, 136, 0, 104, 3, 84, 0, 104, 2, 18, 68, 3, 84, 57, 0, 1, 18, 71, 3, 136, 65, 0,
-			1, 18, 71, 2, 18, 68, 3, 136, 65, 57, 0, 104, 1, 18, 71, 3, 136, 84, 0, 104, 1, 18, 71, 2, 18, 68, 3, 136, 84, 57,
-			0, 7, 6, 110, 0, 4, 3, 50, 0, 2, 103, 104, 0, 4, 103, 1, 18, 66, 3, 50, 131, 0, 103, 2, 18, 66, 0, 4, 1, 17,
-			67, 17, 67, 18, 66, 18, 67, 3, 67, 0, 1, 17, 67, 18, 66, 18, 67, 0, 1, 18, 66, 18, 67, 0, 110, 1, 18, 66, 2, 12,
-			0, 110, 2, 18, 66, 0, 103, 3, 68, 81, 0, 4, 8, 2, 18, 67, 3, 134, 0, 110, 0, 7, 6, 111, 0, 4, 2, 18, 69, 3,
-			39, 0, 2, 109, 104, 0, 105, 2, 18, 69, 0, 105, 2, 109, 104, 0, 4, 2, 114, 100, 3, 115, 0, 2, 114, 110, 0, 2, 114, 114,
-			25, 0, 3, 116, 0, 105, 109, 104, 2, 17, 67, 3, 116, 10, 37, 0, 103, 104, 2, 17, 67, 3, 117, 0, 105, 3, 120, 0, 4, 105,
-			98, 104, 2, 17, 67, 3, 120, 10, 37, 0, 105, 103, 104, 2, 17, 67, 0, 105, 2, 18, 70, 25, 3, 126, 0, 2, 18, 70, 25, 3,
-			129, 0, 7, 6, 112, 0, 3, 48, 0, 1, 17, 67, 2, 32, 3, 71, 0, 2, 18, 68, 3, 71, 57, 0, 104, 3, 83, 0, 104, 2,
-			18, 68, 3, 83, 57, 0, 1, 17, 65, 2, 17, 65, 3, 137, 48, 0, 1, 17, 65, 2, 32, 3, 137, 71, 0, 1, 17, 65, 2, 18,
-			68, 3, 137, 71, 57, 0, 7, 6, 113, 0, 3, 49, 58, 0, 7, 6, 114, 0, 3, 16, 0, 4, 100, 2, 32, 3, 16, 91, 72, 0,
-			116, 2, 32, 0, 4, 8, 3, 51, 0, 114, 0, 4, 1, 18, 66, 3, 135, 0, 2, 18, 66, 0, 7, 6, 115, 0, 3, 89, 0, 4,
-			1, 18, 66, 3, 91, 0, 2, 18, 66, 0, 104, 3, 107, 0, 104, 2, 18, 68, 3, 107, 57, 0, 7, 6, 116, 0, 104, 2, 32, 3,
-			0, 3, 47, 0, 1, 17, 67, 2, 32, 3, 72, 0, 104, 3, 107, 0, 104, 2, 18, 68, 3, 107, 57, 0, 4, 1, 17, 67, 17, 67,
-			18, 66, 2, 32, 3, 130, 0, 1, 17, 67, 18, 66, 2, 32, 0, 2, 18, 66, 3, 133, 0, 1, 17, 65, 2, 18, 67, 3, 137, 47,
-			0, 1, 17, 65, 2, 32, 3, 137, 72, 0, 1, 18, 66, 2, 32, 3, 137, 130, 0, 1, 17, 65, 2, 18, 66, 3, 137, 133, 0, 7,
-			6, 117, 0, 4, 3, 40, 0, 105, 0, 105, 109, 104, 2, 17, 67, 3, 40, 23, 37, 0, 4, 2, 18, 70, 25, 3, 118, 0, 2, 32,
-			0, 2, 114, 110, 0, 2, 114, 114, 0, 4, 105, 2, 18, 70, 3, 119, 0, 105, 2, 109, 0, 105, 2, 110, 0, 105, 2, 115, 0, 4,
-			97, 3, 123, 0, 97, 105, 0, 4, 105, 2, 18, 70, 25, 3, 127, 0, 105, 2, 100, 104, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6,
-			119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 3, 88, 0, 7, 6, 121, 0, 3, 37, 0, 4, 1, 17, 65, 3, 57,
-			0, 2, 17, 65, 0, 7, 6, 122, 0, 3, 88, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts23 = FileInMemory_createWithData (3794, reinterpret_cast<const char *> (&espeakdata_dicts23_data), 
-			U"espeak-1.48.04-source/espeak-data/gd_dict", 
-			U"gd");
-		my addItem_move (espeakdata_dicts23.move());
-
-		static unsigned char espeakdata_dicts24_data[3430] = {
-			0, 4, 0, 0, 224, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 95, 48, 108, 97, 110, 103, 21, 0, 101, 47, 0, 0, 0, 0, 0, 0, 8,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 3, 106, 0, 7, 6, 98, 0, 3, 69, 0, 7, 6, 101, 0, 3,
+			108, 0, 7, 6, 105, 0, 3, 110, 0, 7, 6, 111, 0, 3, 112, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 114, 0,
+			7, 6, 0, 36, 3, 70, 111, 55, 13, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts20 = FileInMemory_createWithData (1092, reinterpret_cast<const char *> (&espeakdata_dicts20_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ga_dict", 
+			U"ga");
+		Collection_addItem (me.peek(), espeakdata_dicts20.transfer());
+
+		static unsigned char espeakdata_dicts21_data[3391] = {
+			0, 4, 0, 0, 220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 12, 6, 95, 48, 12, 1, 14, 7, 21, 0, 101, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
 			133, 207, 132, 225, 191, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 207, 132, 225, 191, 178,
 			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 207, 132, 225, 189, 184,
 			72, 0, 0, 0, 0, 8, 133, 207, 132, 225, 189, 188, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 8, 133, 207, 132, 225, 189, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 176, 207, 130, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 206, 177, 201, 166, 206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 177, 225, 189, 182, 207, 130,
-			72, 0, 0, 7, 132, 201, 166, 206, 183, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 201, 166, 206, 191, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 177, 225, 189, 182, 206, 189, 72, 12, 137, 207, 132, 206, 177,
-			225, 189, 182, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 180, 207, 130, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225,
-			189, 180, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 191, 225, 189, 182, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 191, 225, 189, 182, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 206, 191, 225, 189, 186, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 184, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 206, 191, 201, 166, 206, 185, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 191, 225, 189,
-			186, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 188,
-			206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 50, 32, 0, 0, 39, 0, 0, 0,
-			97, 0, 0, 0, 177, 3, 0, 0, 111, 0, 0, 0, 191, 3, 0, 0, 118, 0, 0, 0, 189, 3, 0, 0, 65, 0, 0, 0, 145, 3,
-			0, 0, 66, 0, 0, 0, 146, 3, 0, 0, 69, 0, 0, 0, 149, 3, 0, 0, 90, 0, 0, 0, 150, 3, 0, 0, 72, 0, 0, 0,
-			151, 3, 0, 0, 73, 0, 0, 0, 153, 3, 0, 0, 75, 0, 0, 0, 154, 3, 0, 0, 77, 0, 0, 0, 156, 3, 0, 0, 78, 0,
-			0, 0, 157, 3, 0, 0, 79, 0, 0, 0, 159, 3, 0, 0, 80, 0, 0, 0, 161, 3, 0, 0, 84, 0, 0, 0, 164, 3, 0, 0,
-			89, 0, 0, 0, 165, 3, 0, 0, 88, 0, 0, 0, 167, 3, 0, 0, 116, 0, 104, 0, 184, 3, 0, 0, 112, 0, 104, 0, 198, 3,
-			0, 0, 107, 0, 104, 0, 199, 3, 0, 0, 112, 0, 115, 0, 200, 3, 0, 0, 98, 0, 0, 0, 178, 3, 0, 0, 103, 0, 0, 0,
-			179, 3, 0, 0, 100, 0, 0, 0, 180, 3, 0, 0, 101, 0, 0, 0, 181, 3, 0, 0, 122, 0, 0, 0, 182, 3, 0, 0, 113, 0,
-			0, 0, 183, 3, 0, 0, 105, 0, 0, 0, 185, 3, 0, 0, 107, 0, 0, 0, 186, 3, 0, 0, 108, 0, 0, 0, 187, 3, 0, 0,
-			109, 0, 0, 0, 188, 3, 0, 0, 110, 0, 0, 0, 189, 3, 0, 0, 120, 0, 0, 0, 190, 3, 0, 0, 112, 0, 0, 0, 192, 3,
-			0, 0, 114, 0, 0, 0, 193, 3, 0, 0, 115, 0, 0, 0, 195, 3, 0, 0, 116, 0, 0, 0, 196, 3, 0, 0, 117, 0, 0, 0,
-			197, 3, 0, 0, 121, 0, 0, 0, 197, 3, 0, 0, 119, 0, 0, 0, 201, 3, 0, 0, 172, 3, 0, 0, 112, 31, 0, 0, 113, 31,
-			0, 0, 112, 31, 0, 0, 180, 31, 0, 0, 178, 31, 0, 0, 182, 31, 0, 0, 112, 31, 0, 0, 183, 31, 0, 0, 178, 31, 0, 0,
-			0, 31, 0, 0, 177, 3, 0, 0, 1, 31, 0, 0, 102, 2, 177, 3, 2, 31, 0, 0, 112, 31, 0, 0, 3, 31, 0, 0, 102, 2,
-			112, 31, 4, 31, 0, 0, 112, 31, 0, 0, 5, 31, 0, 0, 102, 2, 112, 31, 6, 31, 0, 0, 112, 31, 0, 0, 7, 31, 0, 0,
-			102, 2, 112, 31, 128, 31, 0, 0, 179, 31, 0, 0, 129, 31, 0, 0, 102, 2, 179, 31, 130, 31, 0, 0, 178, 31, 0, 0, 131, 31,
-			0, 0, 102, 2, 178, 31, 132, 31, 0, 0, 178, 31, 0, 0, 133, 31, 0, 0, 102, 2, 178, 31, 134, 31, 0, 0, 178, 31, 0, 0,
-			135, 31, 0, 0, 102, 2, 178, 31, 173, 3, 0, 0, 114, 31, 0, 0, 115, 31, 0, 0, 114, 31, 0, 0, 16, 31, 0, 0, 181, 3,
-			0, 0, 17, 31, 0, 0, 102, 2, 181, 3, 18, 31, 0, 0, 114, 31, 0, 0, 19, 31, 0, 0, 102, 2, 114, 31, 20, 31, 0, 0,
-			114, 31, 0, 0, 21, 31, 0, 0, 102, 2, 114, 31, 174, 3, 0, 0, 116, 31, 0, 0, 117, 31, 0, 0, 116, 31, 0, 0, 196, 31,
-			0, 0, 194, 31, 0, 0, 198, 31, 0, 0, 116, 31, 0, 0, 199, 31, 0, 0, 194, 31, 0, 0, 32, 31, 0, 0, 183, 3, 0, 0,
-			33, 31, 0, 0, 102, 2, 183, 3, 34, 31, 0, 0, 116, 31, 0, 0, 35, 31, 0, 0, 102, 2, 116, 31, 36, 31, 0, 0, 116, 31,
-			0, 0, 37, 31, 0, 0, 102, 2, 116, 31, 38, 31, 0, 0, 116, 31, 0, 0, 39, 31, 0, 0, 102, 2, 116, 31, 144, 31, 0, 0,
-			195, 31, 0, 0, 145, 31, 0, 0, 102, 2, 195, 31, 146, 31, 0, 0, 194, 31, 0, 0, 147, 31, 0, 0, 102, 2, 194, 31, 148, 31,
-			0, 0, 194, 31, 0, 0, 149, 31, 0, 0, 102, 2, 194, 31, 150, 31, 0, 0, 194, 31, 0, 0, 151, 31, 0, 0, 102, 2, 194, 31,
-			175, 3, 0, 0, 118, 31, 0, 0, 119, 31, 0, 0, 118, 31, 0, 0, 214, 31, 0, 0, 118, 31, 0, 0, 48, 31, 0, 0, 185, 3,
-			0, 0, 49, 31, 0, 0, 102, 2, 185, 3, 50, 31, 0, 0, 118, 31, 0, 0, 51, 31, 0, 0, 102, 2, 118, 31, 52, 31, 0, 0,
-			118, 31, 0, 0, 53, 31, 0, 0, 102, 2, 118, 31, 54, 31, 0, 0, 118, 31, 0, 0, 55, 31, 0, 0, 102, 2, 118, 31, 211, 31,
-			0, 0, 210, 31, 0, 0, 215, 31, 0, 0, 210, 31, 0, 0, 204, 3, 0, 0, 120, 31, 0, 0, 121, 31, 0, 0, 120, 31, 0, 0,
-			64, 31, 0, 0, 191, 3, 0, 0, 65, 31, 0, 0, 102, 2, 191, 3, 66, 31, 0, 0, 120, 31, 0, 0, 67, 31, 0, 0, 102, 2,
-			120, 31, 68, 31, 0, 0, 120, 31, 0, 0, 69, 31, 0, 0, 102, 2, 120, 31, 205, 3, 0, 0, 122, 31, 0, 0, 123, 31, 0, 0,
-			122, 31, 0, 0, 230, 31, 0, 0, 122, 31, 0, 0, 80, 31, 0, 0, 197, 3, 0, 0, 81, 31, 0, 0, 102, 2, 197, 3, 82, 31,
-			0, 0, 122, 31, 0, 0, 83, 31, 0, 0, 102, 2, 122, 31, 84, 31, 0, 0, 122, 31, 0, 0, 85, 31, 0, 0, 102, 2, 122, 31,
-			86, 31, 0, 0, 122, 31, 0, 0, 87, 31, 0, 0, 102, 2, 122, 31, 227, 31, 0, 0, 226, 31, 0, 0, 231, 31, 0, 0, 226, 31,
-			0, 0, 206, 3, 0, 0, 124, 31, 0, 0, 125, 31, 0, 0, 124, 31, 0, 0, 244, 31, 0, 0, 242, 31, 0, 0, 246, 31, 0, 0,
-			124, 31, 0, 0, 247, 31, 0, 0, 242, 31, 0, 0, 96, 31, 0, 0, 201, 3, 0, 0, 97, 31, 0, 0, 102, 2, 201, 3, 98, 31,
-			0, 0, 124, 31, 0, 0, 99, 31, 0, 0, 102, 2, 124, 31, 100, 31, 0, 0, 124, 31, 0, 0, 101, 31, 0, 0, 102, 2, 124, 31,
-			102, 31, 0, 0, 124, 31, 0, 0, 103, 31, 0, 0, 102, 2, 124, 31, 160, 31, 0, 0, 243, 31, 0, 0, 161, 31, 0, 0, 102, 2,
-			243, 31, 162, 31, 0, 0, 242, 31, 0, 0, 163, 31, 0, 0, 102, 2, 242, 31, 164, 31, 0, 0, 242, 31, 0, 0, 165, 31, 0, 0,
-			102, 2, 242, 31, 166, 31, 0, 0, 242, 31, 0, 0, 167, 31, 0, 0, 102, 2, 242, 31, 228, 31, 0, 0, 193, 3, 0, 0, 229, 31,
-			0, 0, 102, 2, 193, 3, 0, 0, 0, 0, 6, 195, 175, 0, 3, 37, 0, 7, 6, 201, 166, 0, 3, 107, 0, 7, 6, 1, 50, 0,
-			201, 166, 225, 189, 186, 3, 6, 107, 114, 0, 201, 166, 225, 189, 182, 3, 6, 107, 117, 0, 225, 189, 186, 3, 6, 114, 0, 225, 189, 182,
-			3, 6, 117, 0, 3, 35, 0, 201, 166, 207, 133, 3, 107, 114, 0, 201, 166, 206, 185, 3, 107, 117, 0, 207, 133, 3, 114, 0, 206, 185,
-			3, 117, 0, 7, 6, 1, 51, 0, 3, 71, 0, 7, 6, 1, 52, 0, 206, 179, 3, 68, 81, 0, 3, 81, 0, 7, 6, 1, 53, 0,
-			3, 72, 0, 7, 6, 1, 54, 0, 225, 189, 182, 3, 6, 36, 12, 0, 201, 166, 225, 189, 182, 3, 6, 107, 36, 12, 0, 201, 166, 225,
-			189, 186, 3, 6, 107, 115, 0, 225, 189, 186, 3, 6, 115, 0, 3, 36, 0, 206, 185, 3, 36, 12, 0, 201, 166, 206, 185, 3, 107, 36,
-			12, 0, 201, 166, 207, 133, 3, 107, 115, 0, 207, 133, 3, 115, 0, 7, 6, 1, 55, 0, 3, 88, 0, 7, 6, 1, 56, 0, 201, 166,
-			225, 189, 182, 3, 6, 107, 119, 12, 0, 201, 166, 225, 189, 186, 3, 6, 107, 124, 12, 0, 225, 189, 182, 3, 6, 119, 12, 0, 225, 189,
-			186, 3, 6, 124, 12, 0, 201, 166, 206, 185, 3, 107, 119, 12, 0, 201, 166, 207, 133, 3, 107, 124, 12, 0, 3, 109, 12, 0, 206, 185,
-			3, 119, 12, 0, 207, 133, 3, 124, 12, 0, 7, 6, 1, 57, 0, 3, 87, 0, 7, 6, 1, 58, 0, 3, 37, 0, 7, 6, 1, 59,
-			0, 3, 49, 0, 7, 6, 1, 60, 0, 3, 55, 0, 7, 6, 1, 61, 0, 3, 65, 0, 7, 6, 1, 62, 0, 3, 50, 0, 7, 6,
-			1, 63, 0, 3, 49, 89, 0, 7, 6, 1, 64, 0, 225, 189, 186, 3, 6, 40, 12, 0, 201, 166, 225, 189, 186, 3, 6, 107, 40, 12,
-			0, 201, 166, 225, 189, 182, 3, 6, 107, 120, 0, 225, 189, 182, 3, 6, 120, 0, 3, 39, 0, 207, 133, 3, 40, 12, 0, 201, 166, 207,
-			133, 3, 107, 40, 12, 0, 201, 166, 206, 185, 3, 107, 120, 0, 206, 185, 3, 120, 0, 7, 6, 1, 65, 0, 3, 48, 0, 7, 6, 1,
-			66, 0, 3, 51, 0, 7, 6, 1, 67, 0, 3, 89, 0, 7, 6, 1, 68, 0, 3, 89, 0, 7, 6, 1, 69, 0, 3, 47, 0, 7,
-			6, 1, 70, 0, 201, 166, 225, 189, 182, 3, 6, 107, 127, 0, 225, 189, 182, 3, 6, 127, 0, 201, 166, 206, 185, 3, 107, 127, 0, 3,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 131, 8, 206, 183, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 131, 8, 206, 191, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 207, 132, 206, 177, 225, 189,
+			182, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 12, 137, 207, 132, 206, 177, 225, 189, 182, 206, 189, 72, 12, 137, 207, 132, 206, 177, 225, 189, 182, 206, 189, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 180, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 180, 206, 189, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+			137, 207, 132, 206, 191, 225, 189, 182, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137,
+			207, 132, 206, 191, 225, 189, 182, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 135, 207, 132, 206, 191, 225, 189, 186, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132,
+			225, 189, 184, 206, 189, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 12, 137, 207, 132, 206, 191, 225, 189, 186, 207, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 206, 191, 8, 206, 185, 72, 0, 0, 0, 0, 8, 133, 206, 177, 8,
+			206, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 207, 132, 225, 189, 188, 206, 189, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 50, 32, 0, 0, 39, 0, 0, 0, 97, 0, 0, 0,
+			177, 3, 0, 0, 111, 0, 0, 0, 191, 3, 0, 0, 118, 0, 0, 0, 189, 3, 0, 0, 65, 0, 0, 0, 145, 3, 0, 0, 66, 0,
+			0, 0, 146, 3, 0, 0, 69, 0, 0, 0, 149, 3, 0, 0, 90, 0, 0, 0, 150, 3, 0, 0, 72, 0, 0, 0, 151, 3, 0, 0,
+			73, 0, 0, 0, 153, 3, 0, 0, 75, 0, 0, 0, 154, 3, 0, 0, 77, 0, 0, 0, 156, 3, 0, 0, 78, 0, 0, 0, 157, 3,
+			0, 0, 79, 0, 0, 0, 159, 3, 0, 0, 80, 0, 0, 0, 161, 3, 0, 0, 84, 0, 0, 0, 164, 3, 0, 0, 89, 0, 0, 0,
+			165, 3, 0, 0, 88, 0, 0, 0, 167, 3, 0, 0, 116, 0, 104, 0, 184, 3, 0, 0, 112, 0, 104, 0, 198, 3, 0, 0, 107, 0,
+			104, 0, 199, 3, 0, 0, 112, 0, 115, 0, 200, 3, 0, 0, 98, 0, 0, 0, 178, 3, 0, 0, 103, 0, 0, 0, 179, 3, 0, 0,
+			100, 0, 0, 0, 180, 3, 0, 0, 101, 0, 0, 0, 181, 3, 0, 0, 122, 0, 0, 0, 182, 3, 0, 0, 113, 0, 0, 0, 183, 3,
+			0, 0, 105, 0, 0, 0, 185, 3, 0, 0, 107, 0, 0, 0, 186, 3, 0, 0, 108, 0, 0, 0, 187, 3, 0, 0, 109, 0, 0, 0,
+			188, 3, 0, 0, 110, 0, 0, 0, 189, 3, 0, 0, 120, 0, 0, 0, 190, 3, 0, 0, 112, 0, 0, 0, 192, 3, 0, 0, 114, 0,
+			0, 0, 193, 3, 0, 0, 115, 0, 0, 0, 195, 3, 0, 0, 116, 0, 0, 0, 196, 3, 0, 0, 117, 0, 0, 0, 197, 3, 0, 0,
+			121, 0, 0, 0, 197, 3, 0, 0, 119, 0, 0, 0, 201, 3, 0, 0, 172, 3, 0, 0, 112, 31, 0, 0, 113, 31, 0, 0, 112, 31,
+			0, 0, 180, 31, 0, 0, 178, 31, 0, 0, 182, 31, 0, 0, 112, 31, 0, 0, 183, 31, 0, 0, 178, 31, 0, 0, 0, 31, 0, 0,
+			177, 3, 0, 0, 1, 31, 0, 0, 104, 0, 177, 3, 2, 31, 0, 0, 112, 31, 0, 0, 3, 31, 0, 0, 104, 0, 112, 31, 4, 31,
+			0, 0, 112, 31, 0, 0, 5, 31, 0, 0, 104, 0, 112, 31, 6, 31, 0, 0, 112, 31, 0, 0, 7, 31, 0, 0, 104, 0, 112, 31,
+			128, 31, 0, 0, 179, 31, 0, 0, 129, 31, 0, 0, 104, 0, 179, 31, 130, 31, 0, 0, 178, 31, 0, 0, 131, 31, 0, 0, 104, 0,
+			178, 31, 132, 31, 0, 0, 178, 31, 0, 0, 133, 31, 0, 0, 104, 0, 178, 31, 134, 31, 0, 0, 178, 31, 0, 0, 135, 31, 0, 0,
+			104, 0, 178, 31, 173, 3, 0, 0, 114, 31, 0, 0, 115, 31, 0, 0, 114, 31, 0, 0, 16, 31, 0, 0, 181, 3, 0, 0, 17, 31,
+			0, 0, 104, 0, 181, 3, 18, 31, 0, 0, 114, 31, 0, 0, 19, 31, 0, 0, 104, 0, 114, 31, 20, 31, 0, 0, 114, 31, 0, 0,
+			21, 31, 0, 0, 104, 0, 114, 31, 174, 3, 0, 0, 116, 31, 0, 0, 117, 31, 0, 0, 116, 31, 0, 0, 196, 31, 0, 0, 194, 31,
+			0, 0, 198, 31, 0, 0, 116, 31, 0, 0, 199, 31, 0, 0, 194, 31, 0, 0, 32, 31, 0, 0, 183, 3, 0, 0, 33, 31, 0, 0,
+			104, 0, 183, 3, 34, 31, 0, 0, 116, 31, 0, 0, 35, 31, 0, 0, 104, 0, 116, 31, 36, 31, 0, 0, 116, 31, 0, 0, 37, 31,
+			0, 0, 104, 0, 116, 31, 38, 31, 0, 0, 116, 31, 0, 0, 39, 31, 0, 0, 104, 0, 116, 31, 144, 31, 0, 0, 195, 31, 0, 0,
+			145, 31, 0, 0, 104, 0, 195, 31, 146, 31, 0, 0, 194, 31, 0, 0, 147, 31, 0, 0, 104, 0, 194, 31, 148, 31, 0, 0, 194, 31,
+			0, 0, 149, 31, 0, 0, 104, 0, 194, 31, 150, 31, 0, 0, 194, 31, 0, 0, 151, 31, 0, 0, 104, 0, 194, 31, 175, 3, 0, 0,
+			118, 31, 0, 0, 119, 31, 0, 0, 118, 31, 0, 0, 214, 31, 0, 0, 118, 31, 0, 0, 48, 31, 0, 0, 185, 3, 0, 0, 49, 31,
+			0, 0, 104, 0, 185, 3, 50, 31, 0, 0, 118, 31, 0, 0, 51, 31, 0, 0, 104, 0, 118, 31, 52, 31, 0, 0, 118, 31, 0, 0,
+			53, 31, 0, 0, 104, 0, 118, 31, 54, 31, 0, 0, 118, 31, 0, 0, 55, 31, 0, 0, 104, 0, 118, 31, 211, 31, 0, 0, 210, 31,
+			0, 0, 215, 31, 0, 0, 210, 31, 0, 0, 204, 3, 0, 0, 120, 31, 0, 0, 121, 31, 0, 0, 120, 31, 0, 0, 64, 31, 0, 0,
+			191, 3, 0, 0, 65, 31, 0, 0, 104, 0, 191, 3, 66, 31, 0, 0, 120, 31, 0, 0, 67, 31, 0, 0, 104, 0, 120, 31, 68, 31,
+			0, 0, 120, 31, 0, 0, 69, 31, 0, 0, 104, 0, 120, 31, 205, 3, 0, 0, 122, 31, 0, 0, 123, 31, 0, 0, 122, 31, 0, 0,
+			230, 31, 0, 0, 122, 31, 0, 0, 80, 31, 0, 0, 197, 3, 0, 0, 81, 31, 0, 0, 104, 0, 197, 3, 82, 31, 0, 0, 122, 31,
+			0, 0, 83, 31, 0, 0, 104, 0, 122, 31, 84, 31, 0, 0, 122, 31, 0, 0, 85, 31, 0, 0, 104, 0, 122, 31, 86, 31, 0, 0,
+			122, 31, 0, 0, 87, 31, 0, 0, 104, 0, 122, 31, 227, 31, 0, 0, 226, 31, 0, 0, 231, 31, 0, 0, 226, 31, 0, 0, 206, 3,
+			0, 0, 124, 31, 0, 0, 125, 31, 0, 0, 124, 31, 0, 0, 244, 31, 0, 0, 242, 31, 0, 0, 246, 31, 0, 0, 124, 31, 0, 0,
+			247, 31, 0, 0, 242, 31, 0, 0, 96, 31, 0, 0, 201, 3, 0, 0, 97, 31, 0, 0, 104, 0, 201, 3, 98, 31, 0, 0, 124, 31,
+			0, 0, 99, 31, 0, 0, 104, 0, 124, 31, 100, 31, 0, 0, 124, 31, 0, 0, 101, 31, 0, 0, 104, 0, 124, 31, 102, 31, 0, 0,
+			124, 31, 0, 0, 103, 31, 0, 0, 104, 0, 124, 31, 160, 31, 0, 0, 243, 31, 0, 0, 161, 31, 0, 0, 104, 0, 243, 31, 162, 31,
+			0, 0, 242, 31, 0, 0, 163, 31, 0, 0, 104, 0, 242, 31, 164, 31, 0, 0, 242, 31, 0, 0, 165, 31, 0, 0, 104, 0, 242, 31,
+			166, 31, 0, 0, 242, 31, 0, 0, 167, 31, 0, 0, 104, 0, 242, 31, 228, 31, 0, 0, 193, 3, 0, 0, 229, 31, 0, 0, 104, 0,
+			193, 3, 0, 0, 0, 0, 6, 195, 175, 0, 3, 37, 0, 7, 6, 1, 50, 0, 104, 225, 189, 186, 3, 6, 107, 114, 0, 104, 225, 189,
+			182, 3, 6, 107, 117, 0, 225, 189, 186, 3, 6, 114, 0, 225, 189, 182, 3, 6, 117, 0, 3, 35, 0, 104, 207, 133, 3, 107, 114, 0,
+			104, 206, 185, 3, 107, 117, 0, 207, 133, 3, 114, 0, 206, 185, 3, 117, 0, 7, 6, 1, 51, 0, 3, 71, 0, 7, 6, 1, 52, 0,
+			206, 179, 3, 68, 81, 0, 3, 81, 0, 7, 6, 1, 53, 0, 3, 72, 0, 7, 6, 1, 54, 0, 225, 189, 182, 3, 6, 36, 12, 0,
+			104, 225, 189, 182, 3, 6, 107, 36, 12, 0, 104, 225, 189, 186, 3, 6, 107, 115, 0, 225, 189, 186, 3, 6, 115, 0, 3, 36, 0, 206,
+			185, 3, 36, 12, 0, 104, 206, 185, 3, 107, 36, 12, 0, 104, 207, 133, 3, 107, 115, 0, 207, 133, 3, 115, 0, 7, 6, 1, 55, 0,
+			3, 88, 0, 7, 6, 1, 56, 0, 104, 225, 189, 182, 3, 6, 107, 119, 12, 0, 104, 225, 189, 186, 3, 6, 107, 124, 12, 0, 225, 189,
+			182, 3, 6, 119, 12, 0, 225, 189, 186, 3, 6, 124, 12, 0, 104, 206, 185, 3, 107, 119, 12, 0, 104, 207, 133, 3, 107, 124, 12, 0,
+			3, 109, 12, 0, 206, 185, 3, 119, 12, 0, 207, 133, 3, 124, 12, 0, 7, 6, 1, 57, 0, 3, 87, 0, 7, 6, 1, 58, 0, 3,
+			37, 0, 7, 6, 1, 59, 0, 3, 49, 0, 7, 6, 1, 60, 0, 3, 55, 0, 7, 6, 1, 61, 0, 3, 65, 0, 7, 6, 1, 62,
+			0, 3, 50, 0, 7, 6, 1, 63, 0, 3, 49, 89, 0, 7, 6, 1, 64, 0, 225, 189, 186, 3, 6, 40, 12, 0, 104, 225, 189, 186,
+			3, 6, 107, 40, 12, 0, 104, 225, 189, 182, 3, 6, 107, 120, 0, 225, 189, 182, 3, 6, 120, 0, 3, 39, 0, 207, 133, 3, 40, 12,
+			0, 104, 207, 133, 3, 107, 40, 12, 0, 104, 206, 185, 3, 107, 120, 0, 206, 185, 3, 120, 0, 7, 6, 1, 65, 0, 3, 48, 0, 7,
+			6, 1, 66, 0, 3, 51, 0, 7, 6, 1, 67, 0, 3, 89, 0, 7, 6, 1, 68, 0, 3, 89, 0, 7, 6, 1, 69, 0, 3, 47,
+			0, 7, 6, 1, 70, 0, 104, 225, 189, 182, 3, 6, 107, 127, 0, 225, 189, 182, 3, 6, 127, 0, 104, 206, 185, 3, 107, 127, 0, 3,
 			112, 0, 206, 185, 3, 127, 0, 7, 6, 1, 71, 0, 3, 83, 0, 7, 6, 1, 72, 0, 3, 101, 0, 7, 6, 1, 73, 0, 3, 48,
-			89, 0, 7, 6, 1, 74, 0, 201, 166, 225, 189, 182, 3, 6, 107, 125, 12, 0, 201, 166, 225, 189, 186, 3, 6, 107, 126, 12, 0, 225,
-			189, 182, 3, 6, 125, 12, 0, 225, 189, 186, 3, 6, 126, 12, 0, 201, 166, 206, 185, 3, 107, 125, 12, 0, 201, 166, 207, 133, 3, 107,
-			126, 12, 0, 3, 110, 12, 0, 206, 185, 3, 125, 12, 0, 207, 133, 3, 126, 12, 0, 7, 6, 1, 75, 0, 3, 37, 0, 7, 6, 1,
-			76, 0, 201, 166, 225, 189, 182, 3, 6, 107, 127, 0, 225, 189, 182, 3, 6, 127, 0, 201, 166, 206, 185, 3, 107, 127, 0, 3, 112, 0,
-			206, 185, 3, 127, 0, 7, 6, 97, 0, 3, 35, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 100,
-			0, 3, 72, 0, 7, 6, 101, 0, 3, 36, 0, 105, 3, 36, 12, 0, 117, 3, 115, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103,
-			0, 103, 3, 68, 81, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0,
-			7, 6, 107, 0, 3, 49, 0, 104, 3, 101, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3,
-			50, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 40, 12, 0, 105, 3, 120, 0, 7, 6, 112, 0, 3, 48, 0, 104, 3, 83, 0, 7,
-			6, 113, 0, 3, 109, 12, 0, 105, 3, 119, 12, 0, 117, 3, 124, 12, 0, 7, 6, 114, 0, 3, 51, 0, 7, 6, 115, 0, 3, 89,
-			0, 7, 6, 116, 0, 3, 47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 3, 112, 0, 105, 3, 127, 0, 7, 6, 118, 0, 3, 84, 0,
-			7, 6, 119, 0, 3, 110, 12, 0, 105, 3, 125, 0, 117, 3, 126, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121, 0, 3, 112, 0,
-			105, 3, 127, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 225, 189, 176, 3, 6, 35, 0, 225, 189, 178, 3, 6, 36, 0, 4, 206,
-			144, 3, 6, 37, 0, 225, 189, 182, 0, 225, 191, 146, 0, 225, 189, 184, 3, 6, 39, 0, 225, 189, 180, 3, 6, 109, 12, 0, 225, 189,
-			188, 3, 6, 110, 12, 0, 4, 225, 189, 186, 3, 6, 112, 0, 225, 191, 162, 0, 225, 190, 178, 3, 6, 117, 12, 0, 225, 191, 130, 3,
-			6, 119, 12, 0, 225, 191, 178, 3, 6, 125, 12, 0, 39, 3, 8, 0, 225, 190, 179, 3, 117, 12, 0, 225, 191, 131, 3, 119, 12, 0,
-			225, 191, 179, 3, 125, 12, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts24 = FileInMemory_createWithData (3429, reinterpret_cast<const char *> (&espeakdata_dicts24_data), 
-			U"espeak-1.48.04-source/espeak-data/grc_dict", 
+			89, 0, 7, 6, 1, 74, 0, 104, 225, 189, 182, 3, 6, 107, 125, 12, 0, 104, 225, 189, 186, 3, 6, 107, 126, 12, 0, 225, 189, 182,
+			3, 6, 125, 12, 0, 225, 189, 186, 3, 6, 126, 12, 0, 104, 206, 185, 3, 107, 125, 12, 0, 104, 207, 133, 3, 107, 126, 12, 0, 3,
+			110, 12, 0, 206, 185, 3, 125, 12, 0, 207, 133, 3, 126, 12, 0, 7, 6, 1, 75, 0, 3, 37, 0, 7, 6, 1, 76, 0, 104, 225,
+			189, 182, 3, 6, 107, 127, 0, 225, 189, 182, 3, 6, 127, 0, 104, 206, 185, 3, 107, 127, 0, 3, 112, 0, 206, 185, 3, 127, 0, 7,
+			6, 97, 0, 3, 35, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6,
+			101, 0, 3, 36, 0, 105, 3, 36, 12, 0, 117, 3, 115, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 103, 3, 68, 81, 0,
+			3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49,
+			0, 104, 3, 101, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 7, 6, 111, 0,
+			3, 39, 0, 117, 3, 40, 12, 0, 105, 3, 120, 0, 7, 6, 112, 0, 3, 48, 0, 104, 3, 83, 0, 7, 6, 113, 0, 3, 109, 12,
+			0, 105, 3, 119, 12, 0, 117, 3, 124, 12, 0, 7, 6, 114, 0, 3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3,
+			47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 3, 112, 0, 105, 3, 127, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 110,
+			12, 0, 105, 3, 125, 0, 117, 3, 126, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121, 0, 3, 112, 0, 105, 3, 127, 0, 7, 6,
+			122, 0, 3, 88, 0, 7, 6, 0, 225, 189, 176, 3, 6, 35, 0, 225, 189, 178, 3, 6, 36, 0, 4, 225, 189, 182, 3, 6, 37, 0,
+			225, 191, 146, 0, 225, 189, 184, 3, 6, 39, 0, 225, 189, 180, 3, 6, 109, 12, 0, 225, 189, 188, 3, 6, 110, 12, 0, 4, 225, 189,
+			186, 3, 6, 112, 0, 225, 191, 162, 0, 225, 190, 178, 3, 6, 117, 12, 0, 225, 191, 130, 3, 6, 119, 12, 0, 225, 191, 178, 3, 6,
+			125, 12, 0, 39, 3, 8, 0, 225, 190, 179, 3, 117, 12, 0, 225, 191, 131, 3, 119, 12, 0, 225, 191, 179, 3, 125, 12, 0, 7, 0,
+			0};
+		autoFileInMemory espeakdata_dicts21 = FileInMemory_createWithData (3390, reinterpret_cast<const char *> (&espeakdata_dicts21_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/grc_dict", 
 			U"grc");
-		my addItem_move (espeakdata_dicts24.move());
+		Collection_addItem (me.peek(), espeakdata_dicts21.transfer());
 
-		static unsigned char espeakdata_dicts25_data[5241] = {
-			0, 4, 0, 0, 205, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4,
-			95, 100, 112, 116, 10, 72, 13, 89, 13, 65, 55, 6, 119, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 1, 36, 72, 121, 55, 13, 34, 0, 0, 12, 1, 37, 48, 109, 47, 6, 113, 91, 13, 47, 0, 0, 0, 0, 0, 0, 13,
-			1, 42, 47, 118, 34, 6, 118, 68, 49, 13, 50, 0, 0, 8, 1, 43, 48, 55, 109, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 61, 71, 109, 34, 6, 118, 71, 13, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224,
-			170, 171, 224, 170, 188, 83, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 170, 161, 224, 170, 188, 13, 70,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 170, 151, 224, 170, 188, 100, 13, 0, 0, 0, 0, 0, 11, 6, 224, 170, 149, 224, 170,
-			188, 104, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
-			3, 95, 51, 57, 4, 119, 81, 13, 66, 80, 118, 55, 6, 112, 89, 0, 13, 3, 95, 50, 49, 4, 114, 49, 84, 6, 112, 89, 0, 0,
-			15, 3, 95, 51, 56, 4, 118, 70, 35, 47, 34, 6, 112, 89, 0, 10, 3, 95, 50, 48, 58, 6, 112, 89, 0, 0, 12, 3, 95, 50,
-			51, 47, 114, 84, 6, 112, 89, 0, 0, 13, 3, 95, 50, 50, 71, 6, 118, 58, 6, 112, 89, 0, 0, 13, 3, 95, 50, 53, 48, 13,
-			80, 80, 6, 112, 89, 0, 0, 12, 3, 95, 50, 52, 80, 119, 84, 6, 112, 89, 0, 0, 17, 3, 95, 50, 55, 89, 4, 13, 47, 12,
-			114, 118, 84, 6, 112, 89, 0, 0, 12, 3, 95, 50, 54, 143, 110, 84, 6, 112, 89, 0, 0, 16, 3, 95, 51, 49, 4, 114, 49, 13,
-			47, 12, 34, 6, 112, 89, 0, 0, 11, 3, 95, 51, 48, 47, 34, 6, 112, 89, 0, 0, 14, 3, 95, 51, 51, 47, 6, 114, 47, 34,
-			6, 112, 89, 0, 0, 15, 3, 95, 51, 50, 71, 4, 13, 47, 12, 34, 6, 112, 89, 0, 0, 14, 3, 95, 51, 53, 48, 6, 129, 47,
-			34, 6, 112, 89, 0, 0, 14, 3, 95, 51, 52, 80, 6, 131, 47, 34, 6, 112, 89, 0, 0, 16, 3, 95, 51, 55, 89, 4, 118, 70,
-			35, 47, 34, 6, 112, 89, 0, 0, 13, 3, 95, 51, 54, 143, 110, 47, 34, 6, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 55, 57, 4, 119, 81, 66, 57, 118, 6, 126, 12, 89, 113, 0, 13, 3, 95, 54, 49,
-			4, 114, 49, 89, 6, 109, 141, 0, 0, 15, 3, 95, 55, 56, 4, 113, 141, 12, 119, 47, 6, 114, 34, 0, 12, 3, 95, 54, 48, 89,
-			118, 108, 6, 124, 141, 0, 0, 9, 3, 95, 48, 67, 89, 6, 119, 0, 13, 3, 95, 54, 51, 47, 34, 114, 89, 6, 109, 141, 0, 0,
-			12, 3, 95, 54, 50, 71, 118, 89, 6, 109, 141, 0, 0, 12, 3, 95, 54, 53, 48, 129, 89, 6, 109, 141, 0, 0, 12, 3, 95, 54,
-			52, 80, 119, 89, 6, 109, 141, 0, 0, 15, 3, 95, 54, 55, 89, 4, 13, 70, 13, 89, 6, 109, 141, 0, 0, 12, 3, 95, 54, 54,
-			143, 129, 89, 6, 109, 141, 0, 0, 14, 3, 95, 55, 49, 4, 114, 49, 119, 47, 6, 114, 34, 0, 0, 13, 3, 95, 55, 48, 89, 113,
-			47, 12, 6, 114, 16, 0, 0, 12, 3, 95, 55, 51, 47, 131, 47, 6, 114, 34, 0, 0, 12, 3, 95, 55, 50, 71, 131, 47, 6, 114,
-			34, 0, 0, 16, 3, 95, 55, 53, 48, 4, 113, 50, 80, 119, 47, 6, 114, 34, 0, 0, 15, 3, 95, 55, 52, 80, 4, 113, 65, 119,
-			47, 6, 114, 34, 0, 0, 16, 3, 95, 55, 55, 89, 4, 113, 47, 12, 119, 47, 6, 114, 34, 0, 0, 12, 3, 95, 55, 54, 143, 131,
-			47, 6, 114, 34, 0, 0, 13, 3, 95, 49, 57, 4, 119, 81, 66, 6, 112, 89, 0, 0, 11, 3, 95, 49, 56, 109, 142, 6, 13, 34,
-			0, 0, 12, 3, 95, 50, 67, 71, 6, 109, 89, 6, 119, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 50, 57, 4, 119, 81, 13, 66,
-			47, 34, 6, 112, 89, 0, 14, 3, 95, 49, 49, 4, 109, 81, 113, 57, 6, 118, 34, 0, 0, 16, 3, 95, 50, 56, 4, 109, 141, 12,
-			114, 118, 84, 6, 112, 89, 0, 10, 3, 95, 49, 48, 72, 6, 109, 89, 0, 0, 10, 3, 95, 49, 51, 47, 6, 114, 34, 0, 0, 10,
-			3, 95, 49, 50, 71, 6, 118, 34, 0, 0, 13, 3, 95, 49, 53, 48, 13, 50, 72, 6, 109, 34, 0, 0, 10, 3, 95, 49, 52, 80,
-			6, 120, 72, 0, 0, 13, 3, 95, 49, 55, 89, 13, 47, 47, 6, 109, 34, 0, 0, 10, 3, 95, 49, 54, 89, 6, 119, 70, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 52, 57, 4, 119, 81, 13, 66, 4, 13, 48, 80, 6, 118, 89, 0, 0, 11, 3, 224,
-			165, 164, 72, 109, 66, 140, 109, 0, 15, 3, 95, 52, 56, 4, 109, 70, 47, 118, 55, 6, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0,
-			16, 3, 95, 53, 57, 4, 119, 81, 13, 66, 89, 118, 6, 124, 141, 0, 15, 3, 95, 52, 49, 4, 114, 49, 47, 118, 55, 6, 112, 89,
-			0, 0, 12, 3, 95, 53, 56, 109, 141, 12, 6, 135, 50, 0, 12, 3, 95, 52, 48, 80, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95,
-			52, 51, 47, 4, 114, 47, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 50, 71, 4, 114, 47, 118, 55, 6, 112, 89, 0, 0, 16,
-			3, 95, 52, 53, 48, 4, 113, 89, 47, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 52, 80, 4, 133, 65, 118, 55, 6, 112, 89,
-			0, 0, 16, 3, 95, 52, 55, 89, 4, 40, 70, 47, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 54, 143, 4, 114, 47, 118, 55,
-			6, 112, 89, 0, 0, 18, 3, 95, 54, 57, 4, 119, 81, 13, 66, 89, 113, 47, 12, 6, 114, 16, 0, 11, 3, 95, 53, 49, 114, 49,
-			6, 135, 50, 0, 0, 14, 3, 95, 54, 56, 4, 109, 70, 13, 89, 6, 109, 141, 0, 12, 3, 95, 53, 48, 48, 13, 80, 6, 118, 89,
-			0, 0, 13, 3, 95, 53, 51, 47, 34, 114, 48, 6, 109, 50, 0, 0, 10, 3, 95, 53, 50, 71, 6, 135, 50, 0, 0, 13, 3, 95,
-			53, 53, 48, 13, 67, 80, 6, 135, 50, 0, 0, 12, 3, 95, 53, 52, 80, 119, 48, 6, 109, 50, 0, 0, 13, 3, 95, 53, 55, 89,
-			13, 47, 12, 6, 135, 50, 0, 0, 13, 3, 95, 53, 54, 143, 110, 48, 12, 6, 109, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			14, 3, 95, 56, 57, 50, 113, 84, 57, 6, 118, 89, 37, 0, 0, 14, 3, 95, 56, 56, 4, 109, 141, 57, 6, 118, 89, 37, 0, 0,
-			0, 0, 0, 0, 0, 0, 14, 3, 95, 57, 57, 50, 13, 84, 84, 6, 118, 66, 133, 0, 14, 3, 95, 56, 49, 4, 114, 49, 57, 6,
-			118, 89, 37, 0, 0, 13, 3, 95, 57, 56, 109, 141, 12, 6, 118, 66, 133, 0, 11, 3, 95, 56, 48, 6, 126, 12, 89, 113, 0, 0,
-			13, 3, 95, 56, 51, 47, 12, 57, 6, 129, 89, 37, 0, 0, 12, 3, 95, 56, 50, 71, 57, 6, 129, 89, 37, 0, 0, 14, 3, 95,
-			56, 53, 48, 113, 50, 80, 6, 118, 89, 37, 0, 0, 16, 3, 95, 56, 52, 80, 4, 40, 34, 113, 38, 6, 118, 89, 37, 0, 0, 15,
-			3, 95, 56, 55, 89, 13, 47, 12, 57, 6, 118, 89, 37, 0, 0, 12, 3, 95, 56, 54, 143, 114, 6, 129, 89, 37, 0, 0, 12, 3,
-			95, 57, 49, 114, 49, 6, 118, 66, 133, 0, 0, 11, 3, 95, 57, 48, 50, 6, 114, 84, 133, 0, 0, 12, 3, 95, 57, 51, 47, 34,
-			6, 118, 66, 133, 0, 0, 11, 3, 95, 57, 50, 71, 6, 118, 66, 133, 0, 0, 14, 3, 95, 57, 53, 48, 13, 50, 80, 6, 118, 66,
-			133, 0, 0, 13, 3, 95, 57, 52, 80, 119, 34, 6, 118, 66, 133, 0, 0, 14, 3, 95, 57, 55, 89, 13, 47, 12, 6, 118, 66, 133,
-			0, 0, 12, 3, 95, 57, 54, 143, 6, 109, 50, 50, 133, 0, 0, 8, 3, 224, 170, 149, 49, 13, 0, 0, 0, 8, 3, 224, 170, 151,
-			81, 13, 0, 0, 9, 3, 224, 170, 150, 49, 107, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 171, 144, 18, 131,
-			65, 0, 0, 0, 0, 13, 3, 224, 171, 141, 108, 13, 55, 6, 109, 50, 47, 0, 0, 9, 3, 224, 171, 140, 147, 135, 0, 103, 8, 3,
-			224, 171, 140, 147, 135, 0, 0, 0, 0, 8, 3, 224, 171, 137, 18, 121, 0, 0, 9, 3, 224, 171, 136, 147, 134, 0, 102, 8, 3, 224,
-			171, 136, 147, 134, 0, 0, 8, 3, 224, 171, 139, 147, 119, 0, 0, 0, 8, 3, 224, 171, 133, 18, 116, 0, 0, 9, 3, 224, 171, 132,
-			18, 34, 40, 0, 0, 8, 3, 224, 171, 135, 147, 114, 0, 0, 0, 8, 3, 224, 171, 129, 18, 122, 0, 0, 8, 3, 224, 171, 128, 147,
-			112, 0, 0, 9, 3, 224, 171, 131, 18, 34, 40, 0, 0, 8, 3, 224, 171, 130, 147, 123, 0, 0, 8, 3, 224, 170, 182, 91, 13, 0,
-			0, 8, 3, 224, 170, 183, 93, 13, 0, 0, 0, 8, 3, 224, 170, 181, 84, 13, 0, 0, 8, 3, 224, 170, 178, 55, 13, 0, 0, 8,
-			3, 224, 170, 179, 62, 13, 0, 0, 8, 3, 224, 170, 176, 34, 13, 0, 0, 0, 8, 3, 224, 170, 174, 65, 13, 0, 0, 8, 3, 224,
-			170, 175, 57, 13, 0, 0, 8, 3, 224, 170, 172, 71, 13, 0, 0, 9, 3, 224, 170, 173, 71, 107, 13, 0, 0, 8, 3, 224, 170, 170,
-			48, 13, 0, 0, 9, 3, 224, 170, 171, 48, 107, 13, 0, 0, 8, 3, 224, 170, 168, 50, 13, 0, 0, 0, 8, 3, 224, 170, 166, 72,
-			13, 0, 0, 9, 3, 224, 170, 167, 72, 107, 13, 0, 0, 8, 3, 224, 170, 164, 47, 13, 0, 0, 9, 3, 224, 170, 165, 47, 107, 13,
-			0, 0, 8, 3, 224, 170, 162, 142, 13, 0, 0, 10, 3, 224, 170, 163, 107, 13, 66, 13, 0, 0, 8, 3, 224, 170, 160, 141, 13, 0,
-			0, 8, 3, 224, 170, 161, 140, 13, 0, 0, 8, 3, 224, 170, 158, 67, 13, 0, 0, 8, 3, 224, 170, 159, 139, 13, 0, 0, 8, 3,
-			224, 170, 156, 79, 13, 0, 0, 9, 3, 224, 170, 157, 79, 107, 13, 0, 12, 4, 95, 48, 77, 52, 109, 71, 6, 109, 79, 0, 0, 8,
-			3, 224, 171, 162, 18, 45, 0, 8, 3, 224, 170, 154, 80, 13, 0, 14, 4, 95, 48, 77, 53, 49, 107, 6, 109, 34, 13, 71, 0, 0,
-			9, 3, 224, 171, 163, 147, 45, 12, 0, 9, 3, 224, 170, 155, 80, 107, 13, 0, 12, 4, 95, 48, 77, 50, 55, 6, 118, 49, 107, 0,
-			0, 9, 3, 224, 170, 152, 81, 107, 13, 0, 13, 4, 95, 48, 77, 51, 49, 13, 34, 119, 70, 109, 0, 0, 8, 3, 224, 170, 153, 68,
-			13, 0, 0, 13, 4, 95, 48, 77, 49, 107, 13, 79, 4, 118, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224, 170, 190, 147, 118, 0, 0, 8, 3, 224, 170, 191, 18, 113, 0, 0, 0, 0,
-			0, 0, 8, 3, 224, 170, 184, 89, 13, 0, 0, 8, 3, 224, 170, 185, 108, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 131, 239, 187, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			11, 6, 224, 170, 156, 224, 170, 188, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 11, 6, 224, 170, 150, 224, 170, 188, 101, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 47, 34, 6, 111, 66, 0, 0, 8, 2, 95, 50, 71, 6, 114, 0, 0, 8, 2,
-			95, 49, 6, 114, 49, 0, 0, 11, 2, 95, 48, 91, 6, 123, 50, 57, 14, 0, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 8,
-			2, 95, 54, 143, 6, 110, 0, 0, 10, 2, 95, 53, 48, 6, 118, 67, 80, 0, 0, 9, 2, 95, 52, 80, 6, 118, 34, 0, 0, 0,
-			0, 9, 2, 95, 57, 50, 6, 135, 0, 103, 9, 2, 95, 57, 50, 6, 109, 40, 0, 0, 8, 2, 95, 56, 6, 118, 141, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 230, 10, 0, 0, 48, 0,
-			0, 0, 231, 10, 0, 0, 49, 0, 0, 0, 232, 10, 0, 0, 50, 0, 0, 0, 233, 10, 0, 0, 51, 0, 0, 0, 234, 10, 0, 0,
-			52, 0, 0, 0, 235, 10, 0, 0, 53, 0, 0, 0, 236, 10, 0, 0, 54, 0, 0, 0, 237, 10, 0, 0, 55, 0, 0, 0, 238, 10,
-			0, 0, 56, 0, 0, 0, 239, 10, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 22, 0, 3, 104, 109, 0, 7, 6, 1, 23,
-			0, 3, 101, 109, 0, 7, 6, 1, 24, 0, 3, 100, 109, 0, 7, 6, 1, 29, 0, 3, 88, 109, 0, 7, 6, 1, 44, 0, 3, 83,
-			109, 0, 7, 6, 1, 2, 0, 3, 50, 0, 7, 6, 1, 3, 0, 3, 50, 0, 4, 2, 224, 170, 170, 3, 65, 0, 2, 224, 170, 171,
-			0, 2, 224, 170, 172, 0, 2, 224, 170, 173, 0, 2, 224, 170, 174, 0, 4, 2, 224, 170, 159, 3, 66, 0, 2, 224, 170, 160, 0, 2,
-			224, 170, 161, 0, 2, 224, 170, 162, 0, 2, 224, 170, 163, 0, 4, 2, 224, 170, 154, 3, 67, 0, 2, 224, 170, 155, 0, 2, 224, 170,
-			156, 0, 2, 224, 170, 157, 0, 2, 224, 170, 158, 0, 2, 224, 170, 175, 0, 4, 2, 224, 170, 149, 3, 68, 0, 2, 224, 170, 150, 0,
-			2, 224, 170, 151, 0, 2, 224, 170, 152, 0, 2, 224, 170, 153, 0, 7, 6, 1, 4, 0, 3, 108, 0, 7, 6, 1, 6, 0, 3, 109,
-			0, 4, 1, 185, 170, 224, 133, 170, 224, 3, 116, 0, 2, 224, 170, 185, 0, 7, 6, 1, 7, 0, 3, 118, 0, 224, 170, 130, 3, 129,
-			0, 7, 6, 1, 8, 0, 3, 113, 0, 224, 170, 130, 3, 124, 0, 7, 6, 1, 9, 0, 2, 32, 3, 37, 0, 3, 112, 0, 7, 6,
-			1, 10, 0, 3, 122, 0, 7, 6, 1, 11, 0, 3, 40, 0, 4, 224, 170, 129, 2, 32, 3, 133, 0, 224, 170, 130, 0, 7, 6, 1,
-			12, 0, 3, 34, 40, 0, 7, 6, 1, 13, 0, 3, 45, 0, 7, 6, 1, 14, 0, 3, 116, 0, 7, 6, 1, 16, 0, 224, 170, 129,
-			1, 190, 170, 224, 2, 32, 3, 57, 0, 3, 114, 0, 4, 224, 170, 129, 3, 126, 12, 0, 224, 170, 130, 0, 7, 6, 1, 17, 0, 3,
-			134, 0, 4, 224, 170, 129, 2, 32, 3, 148, 0, 224, 170, 130, 0, 7, 6, 1, 18, 0, 3, 121, 0, 7, 6, 1, 20, 0, 4, 224,
-			170, 129, 1, 190, 170, 224, 2, 32, 3, 58, 0, 224, 170, 130, 1, 190, 170, 224, 2, 32, 0, 3, 119, 0, 4, 224, 170, 129, 2, 32,
-			3, 131, 0, 224, 170, 130, 0, 7, 6, 1, 21, 0, 3, 135, 0, 4, 224, 170, 129, 2, 32, 3, 149, 0, 224, 170, 130, 0, 7, 6,
-			1, 22, 0, 2, 17, 66, 3, 49, 0, 4, 2, 224, 171, 141, 224, 170, 175, 3, 49, 12, 0, 224, 171, 141, 224, 170, 149, 2, 17, 66,
-			0, 224, 171, 141, 224, 170, 149, 3, 49, 12, 109, 0, 224, 171, 141, 224, 170, 183, 2, 17, 66, 3, 49, 91, 0, 224, 171, 141, 224, 170,
-			183, 3, 49, 91, 109, 0, 3, 49, 109, 0, 224, 170, 188, 2, 17, 66, 3, 104, 0, 224, 170, 188, 3, 104, 109, 0, 7, 6, 1, 23,
-			0, 224, 170, 188, 2, 17, 66, 3, 101, 0, 224, 170, 188, 3, 101, 109, 0, 2, 17, 66, 3, 145, 0, 3, 145, 109, 0, 7, 6, 1,
-			24, 0, 2, 17, 66, 3, 81, 0, 224, 171, 141, 224, 170, 151, 2, 17, 66, 3, 81, 12, 0, 224, 171, 141, 224, 170, 151, 3, 81, 12,
-			109, 0, 3, 81, 109, 0, 224, 170, 188, 2, 17, 66, 3, 100, 0, 224, 170, 188, 3, 100, 109, 0, 7, 6, 1, 25, 0, 2, 17, 66,
-			3, 146, 0, 3, 146, 109, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 1, 141, 171, 224, 2, 32, 3, 68, 13, 0, 3, 68,
-			109, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0, 4, 2, 224, 171, 141, 224, 170, 175, 3, 80, 12, 0, 224, 171, 141, 224, 170,
-			154, 2, 17, 66, 0, 224, 171, 141, 224, 170, 154, 3, 80, 12, 109, 0, 3, 80, 109, 0, 224, 171, 141, 224, 170, 155, 2, 17, 66, 3,
-			143, 12, 0, 224, 171, 141, 224, 170, 155, 3, 143, 12, 109, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 143, 0, 224, 171, 141, 224, 170,
-			155, 2, 17, 66, 3, 143, 12, 0, 224, 171, 141, 224, 170, 155, 3, 143, 12, 109, 0, 3, 143, 109, 0, 7, 6, 1, 29, 0, 2, 17,
-			66, 3, 79, 0, 224, 171, 141, 224, 170, 156, 2, 17, 66, 3, 79, 12, 0, 224, 171, 141, 224, 170, 156, 3, 79, 12, 109, 0, 3, 79,
-			109, 0, 224, 171, 141, 224, 170, 158, 2, 17, 66, 3, 81, 66, 0, 224, 171, 141, 224, 170, 158, 3, 81, 66, 109, 0, 224, 170, 188, 2,
-			17, 66, 3, 88, 0, 224, 170, 188, 3, 88, 109, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6, 1,
-			31, 0, 4, 1, 141, 171, 224, 2, 32, 3, 67, 0, 2, 17, 66, 0, 3, 67, 109, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139,
-			0, 4, 2, 224, 171, 141, 224, 170, 175, 3, 139, 12, 0, 224, 171, 141, 224, 170, 159, 2, 17, 66, 0, 224, 171, 141, 224, 170, 159, 3,
-			139, 12, 109, 0, 3, 139, 109, 0, 224, 171, 141, 224, 170, 160, 2, 17, 66, 3, 141, 12, 0, 224, 171, 141, 224, 170, 160, 3, 141, 12,
-			109, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 141, 0, 224, 171, 141, 224, 170, 160, 2, 17, 66, 3, 141, 12, 0, 224, 171, 141, 224,
-			170, 160, 3, 141, 12, 109, 0, 3, 141, 109, 0, 7, 6, 1, 34, 0, 224, 170, 188, 2, 17, 66, 3, 70, 0, 224, 170, 188, 3, 70,
-			109, 0, 2, 17, 66, 3, 140, 0, 224, 171, 141, 224, 170, 161, 2, 17, 66, 3, 140, 12, 0, 224, 171, 141, 224, 170, 161, 3, 140, 12,
-			109, 0, 3, 140, 109, 0, 224, 171, 141, 224, 170, 162, 2, 17, 66, 3, 142, 12, 0, 224, 171, 141, 224, 170, 162, 3, 142, 12, 109, 0,
-			7, 6, 1, 35, 0, 224, 170, 188, 2, 17, 66, 3, 70, 107, 0, 224, 170, 188, 3, 70, 107, 109, 0, 2, 17, 66, 3, 142, 0, 224,
-			171, 141, 224, 170, 162, 2, 17, 66, 3, 142, 12, 0, 224, 171, 141, 224, 170, 162, 3, 142, 12, 109, 0, 3, 142, 109, 0, 7, 6, 1,
-			36, 0, 2, 17, 66, 3, 66, 0, 1, 141, 171, 224, 2, 32, 3, 66, 13, 0, 3, 66, 109, 0, 7, 6, 1, 37, 0, 224, 171, 141,
-			224, 170, 165, 2, 17, 66, 3, 25, 12, 0, 224, 171, 141, 224, 170, 165, 3, 25, 12, 109, 0, 2, 17, 66, 3, 47, 0, 4, 2, 224,
-			171, 141, 224, 170, 175, 3, 47, 12, 0, 224, 171, 141, 224, 170, 164, 2, 17, 66, 0, 224, 171, 141, 224, 170, 164, 3, 47, 12, 109, 0,
-			3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 224, 171, 141, 224, 170, 165, 2, 17, 66, 3, 25, 12, 0, 224, 171,
-			141, 224, 170, 165, 3, 25, 12, 109, 0, 3, 25, 109, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 72, 0, 224, 171, 141, 224, 170, 166,
-			2, 17, 66, 3, 72, 12, 0, 224, 171, 141, 224, 170, 166, 3, 72, 12, 109, 0, 3, 72, 109, 0, 224, 171, 141, 224, 170, 167, 2, 17,
-			66, 3, 138, 12, 0, 224, 171, 141, 224, 170, 167, 3, 138, 12, 109, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 224, 171, 141,
-			224, 170, 167, 2, 17, 66, 3, 138, 12, 0, 224, 171, 141, 224, 170, 167, 3, 138, 12, 109, 0, 3, 138, 109, 0, 7, 6, 1, 41, 0,
-			4, 1, 141, 171, 224, 176, 170, 224, 2, 32, 3, 50, 0, 2, 17, 66, 0, 1, 141, 171, 224, 2, 32, 3, 50, 13, 0, 3, 50, 109,
-			0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 4, 2, 224, 171, 141, 224, 170, 175, 3, 48, 12, 0, 224, 171, 141, 224, 170, 170,
-			2, 17, 66, 0, 224, 171, 141, 224, 170, 170, 3, 48, 12, 109, 0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 224, 170, 188, 2, 17, 66,
-			3, 83, 0, 224, 170, 188, 3, 83, 109, 0, 2, 17, 66, 3, 136, 0, 3, 136, 109, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71,
-			0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 4, 1, 141, 171, 224,
-			168, 170, 224, 2, 32, 3, 65, 0, 1, 141, 171, 224, 176, 170, 224, 2, 32, 0, 2, 17, 66, 0, 1, 141, 171, 224, 2, 32, 3, 65,
-			13, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0, 4, 3, 57, 13, 0, 1, 141, 171, 224, 2, 32, 0, 1,
-			17, 67, 2, 32, 3, 116, 57, 0, 7, 6, 1, 49, 0, 4, 2, 17, 66, 3, 34, 0, 2, 32, 0, 1, 141, 171, 224, 2, 32, 3,
-			34, 13, 0, 3, 34, 109, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 1, 141, 171, 224, 2, 32, 3, 55, 13, 0, 3, 55,
-			109, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 1, 141, 171, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109, 0, 7, 6, 1,
-			54, 0, 8, 2, 17, 66, 3, 58, 0, 8, 3, 58, 109, 0, 4, 2, 17, 66, 3, 84, 0, 8, 2, 224, 171, 141, 0, 3, 84, 109,
-			0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 109,
-			0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0, 3, 89, 109, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 108, 0, 3, 108, 109,
-			0, 7, 6, 1, 61, 0, 3, 0, 7, 6, 1, 62, 0, 3, 12, 0, 7, 6, 1, 63, 0, 3, 118, 0, 4, 2, 224, 170, 129, 3,
-			129, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 224, 170, 181, 3, 135, 0, 7, 6, 1, 64, 0, 3, 113, 0, 224, 170, 130, 3,
-			124, 0, 7, 6, 1, 65, 0, 2, 32, 3, 37, 0, 3, 112, 0, 4, 2, 224, 170, 129, 3, 124, 0, 224, 170, 129, 2, 32, 0, 224,
-			170, 130, 0, 7, 6, 1, 66, 0, 3, 40, 0, 4, 2, 224, 170, 129, 3, 133, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 7,
-			6, 1, 67, 0, 3, 123, 0, 4, 2, 224, 170, 129, 3, 133, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 7, 6, 1, 68, 0,
-			3, 34, 40, 0, 7, 6, 1, 69, 0, 3, 34, 40, 0, 7, 6, 1, 70, 0, 3, 116, 0, 7, 6, 1, 72, 0, 3, 114, 0, 2,
-			224, 170, 129, 3, 126, 0, 4, 224, 170, 129, 2, 32, 3, 126, 12, 0, 224, 170, 130, 0, 7, 6, 1, 73, 0, 3, 134, 0, 4, 2,
-			224, 170, 129, 3, 148, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 7, 6, 1, 74, 0, 3, 121, 0, 7, 6, 1, 76, 0, 3,
-			119, 0, 4, 2, 224, 170, 129, 3, 131, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 7, 6, 1, 77, 0, 3, 135, 0, 4, 2,
-			224, 170, 129, 3, 149, 0, 224, 170, 129, 2, 32, 0, 224, 170, 130, 0, 7, 6, 1, 78, 0, 3, 0, 7, 6, 1, 81, 0, 3, 131,
-			65, 0, 7, 6, 1, 97, 0, 3, 109, 20, 34, 34, 0, 7, 6, 1, 98, 0, 3, 45, 12, 0, 7, 6, 1, 99, 0, 3, 45, 0,
-			7, 6, 1, 100, 0, 3, 45, 12, 0, 7, 6, 111, 0, 3, 21, 0, 102, 1, 32, 32, 15, 2, 32, 32, 15, 3, 65, 36, 0, 7,
-			6, 0, 37, 3, 48, 109, 89, 116, 50, 47, 0, 36, 3, 72, 121, 55, 109, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts25 = FileInMemory_createWithData (5240, reinterpret_cast<const char *> (&espeakdata_dicts25_data), 
-			U"espeak-1.48.04-source/espeak-data/gu_dict", 
-			U"gu");
-		my addItem_move (espeakdata_dicts25.move());
-
-		static unsigned char espeakdata_dicts26_data[7732] = {
-			0, 4, 0, 0, 222, 26, 0, 0, 0, 0, 0, 7, 195, 85, 81, 64, 46, 13, 7, 195, 4, 209, 128, 46, 13, 0, 0, 6, 65, 4,
-			35, 0, 49, 5, 193, 4, 72, 8, 0, 0, 0, 0, 6, 65, 8, 71, 13, 0, 0, 0, 7, 195, 57, 50, 64, 46, 13, 0, 0, 6,
-			65, 12, 117, 13, 0, 0, 6, 195, 29, 36, 146, 13, 0, 7, 195, 41, 49, 64, 46, 13, 7, 195, 20, 209, 128, 46, 13, 0, 0, 6,
-			65, 16, 72, 13, 0, 0, 0, 6, 195, 57, 33, 192, 13, 6, 195, 29, 36, 19, 13, 0, 15, 4, 95, 100, 112, 116, 9, 88, 6, 35,
-			16, 109, 88, 10, 0, 0, 0, 0, 6, 195, 56, 81, 207, 8, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 7, 195, 57, 48, 64, 46,
-			13, 7, 195, 57, 32, 192, 46, 13, 0, 0, 6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 6, 65, 32, 101, 13, 0, 0, 14, 1, 33,
-			6, 40, 88, 84, 138, 76, 50, 138, 49, 0, 102, 14, 1, 33, 6, 40, 89, 49, 55, 138, 76, 50, 138, 49, 0, 0, 0, 11, 1, 35,
-			71, 140, 6, 39, 57, 10, 0, 27, 0, 6, 65, 36, 37, 0, 49, 5, 193, 36, 72, 8, 0, 11, 1, 37, 48, 6, 39, 89, 47, 39,
-			0, 27, 0, 9, 1, 38, 10, 6, 36, 50, 72, 0, 0, 0, 6, 65, 40, 57, 136, 0, 0, 7, 196, 56, 83, 65, 52, 76, 0, 7,
-			195, 61, 22, 64, 46, 13, 15, 1, 42, 88, 84, 57, 6, 36, 88, 72, 37, 117, 122, 0, 27, 0, 7, 195, 5, 2, 0, 46, 13, 9,
-			1, 43, 48, 55, 40, 89, 0, 27, 0, 7, 195, 5, 3, 0, 46, 13, 6, 65, 44, 49, 13, 0, 0, 7, 195, 5, 4, 0, 46, 13,
-			0, 7, 195, 37, 69, 192, 46, 13, 11, 1, 46, 47, 35, 76, 49, 122, 0, 104, 27, 10, 1, 46, 47, 39, 76, 49, 122, 0, 27, 0,
-			11, 1, 47, 49, 140, 6, 39, 88, 10, 0, 27, 0, 14, 4, 95, 100, 105, 97, 6, 40, 65, 55, 122, 139, 47, 0, 6, 65, 48, 55,
-			13, 0, 0, 0, 7, 195, 57, 37, 192, 46, 13, 0, 0, 6, 65, 52, 65, 13, 0, 0, 7, 195, 53, 0, 64, 46, 13, 0, 7, 195,
-			92, 150, 128, 46, 13, 0, 0, 6, 65, 56, 50, 13, 0, 0, 0, 7, 195, 57, 36, 192, 46, 13, 14, 1, 58, 72, 84, 6, 39, 47,
-			122, 76, 49, 122, 0, 104, 13, 1, 58, 72, 84, 6, 39, 47, 39, 76, 49, 122, 0, 0, 0, 6, 65, 60, 39, 0, 49, 5, 193, 60,
-			72, 28, 0, 14, 1, 61, 10, 57, 6, 36, 72, 50, 122, 49, 39, 0, 27, 0, 0, 0, 15, 1, 64, 47, 51, 81, 39, 84, 35, 76,
-			49, 39, 37, 0, 102, 8, 1, 64, 10, 6, 35, 47, 0, 6, 65, 64, 48, 13, 0, 0, 7, 195, 65, 0, 64, 46, 13, 7, 194, 4,
-			32, 46, 13, 41, 0, 7, 195, 56, 51, 192, 46, 13, 6, 195, 48, 128, 64, 13, 7, 195, 4, 209, 192, 46, 13, 0, 0, 7, 65, 68,
-			49, 84, 13, 0, 0, 0, 6, 195, 72, 48, 192, 13, 0, 0, 6, 65, 72, 51, 13, 0, 0, 8, 66, 5, 32, 122, 51, 0, 102, 6,
-			194, 73, 0, 46, 13, 0, 0, 13, 4, 95, 100, 111, 116, 47, 6, 39, 76, 49, 122, 0, 0, 7, 65, 76, 89, 13, 0, 49, 7, 65,
-			76, 89, 10, 0, 28, 0, 0, 0, 0, 6, 65, 80, 47, 13, 0, 0, 6, 195, 36, 208, 117, 76, 0, 7, 195, 36, 209, 192, 46, 13,
-			0, 0, 6, 65, 84, 40, 0, 49, 5, 193, 84, 72, 28, 7, 195, 4, 51, 0, 46, 13, 0, 0, 0, 0, 6, 65, 88, 84, 13, 0,
-			0, 0, 0, 16, 4, 95, 49, 77, 52, 71, 6, 37, 55, 37, 57, 111, 50, 0, 104, 15, 4, 95, 49, 77, 52, 71, 6, 37, 55, 37,
-			57, 139, 50, 0, 0, 13, 1, 92, 71, 6, 109, 49, 89, 55, 109, 91, 0, 27, 13, 65, 92, 72, 40, 48, 55, 39, 15, 84, 13, 0,
-			102, 16, 65, 92, 72, 84, 39, 89, 47, 140, 40, 49, 39, 15, 84, 13, 0, 0, 7, 195, 5, 52, 0, 46, 13, 0, 6, 195, 16, 243,
-			192, 13, 16, 1, 94, 117, 6, 37, 51, 49, 40, 65, 83, 55, 36, 49, 89, 0, 0, 7, 195, 5, 54, 0, 46, 13, 0, 15, 4, 95,
-			49, 77, 49, 107, 6, 37, 61, 35, 72, 139, 0, 103, 16, 4, 95, 49, 77, 49, 107, 6, 37, 61, 4, 122, 72, 139, 0, 102, 14, 4,
-			95, 49, 77, 49, 47, 6, 37, 89, 139, 78, 139, 0, 7, 65, 96, 37, 49, 89, 0, 0, 7, 195, 97, 0, 64, 46, 13, 16, 4, 95,
-			49, 77, 50, 65, 6, 37, 55, 37, 57, 111, 50, 0, 104, 15, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 57, 139, 50, 0, 0, 7,
-			195, 4, 65, 0, 46, 13, 17, 4, 95, 49, 77, 51, 65, 37, 55, 37, 57, 137, 34, 72, 139, 0, 102, 16, 4, 95, 49, 77, 51, 65,
-			6, 37, 55, 37, 35, 51, 72, 139, 0, 0, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50, 0, 0, 7, 195, 4, 68, 0, 46, 13,
-			0, 6, 195, 72, 52, 192, 13, 7, 195, 20, 212, 192, 46, 13, 0, 0, 6, 65, 104, 88, 13, 0, 0, 6, 194, 9, 32, 24, 13, 0,
-			7, 195, 21, 84, 128, 46, 13, 0, 0, 6, 195, 9, 35, 0, 13, 0, 6, 195, 5, 68, 0, 13, 0, 7, 195, 36, 101, 64, 46, 13,
-			0, 6, 195, 9, 38, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6, 37, 55, 72,
-			122, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55, 72, 122, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 97, 128, 64, 46, 13,
-			6, 195, 73, 64, 64, 13, 0, 0, 0, 6, 194, 13, 32, 46, 13, 6, 194, 5, 96, 46, 13, 0, 0, 0, 0, 0, 7, 195, 97, 129,
-			64, 46, 13, 7, 195, 36, 97, 128, 46, 13, 7, 195, 13, 37, 0, 46, 13, 0, 0, 0, 0, 7, 195, 97, 2, 64, 46, 13, 7, 195,
-			93, 34, 64, 46, 13, 7, 195, 60, 34, 128, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 5, 117, 0, 46,
-			13, 0, 0, 0, 0, 6, 195, 92, 36, 128, 13, 0, 0, 0, 0, 7, 195, 76, 36, 128, 46, 13, 6, 195, 73, 52, 192, 13, 0, 0,
-			0, 6, 194, 17, 32, 24, 13, 0, 7, 195, 77, 148, 192, 46, 13, 6, 195, 33, 166, 143, 13, 0, 0, 0, 0, 7, 195, 81, 5, 64,
-			46, 13, 0, 0, 0, 0, 7, 196, 56, 83, 65, 212, 76, 7, 195, 60, 38, 128, 46, 13, 0, 0, 0, 7, 195, 4, 148, 0, 46, 13,
-			15, 4, 95, 109, 99, 110, 65, 6, 35, 49, 140, 16, 39, 50, 0, 0, 0, 0, 13, 68, 77, 64, 82, 80, 89, 47, 6, 35, 51, 47,
-			0, 0, 6, 194, 21, 16, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 224, 192, 24, 7, 195, 72, 208, 64, 46, 13,
-			7, 195, 52, 112, 64, 46, 13, 0, 0, 0, 0, 7, 195, 16, 16, 64, 46, 13, 6, 195, 12, 48, 64, 13, 0, 0, 0, 8, 66, 21,
-			32, 36, 51, 0, 102, 0, 7, 195, 72, 209, 64, 46, 13, 7, 195, 52, 113, 64, 46, 13, 0, 0, 0, 0, 6, 195, 73, 65, 128, 13,
-			7, 195, 37, 97, 128, 46, 13, 0, 0, 0, 0, 7, 195, 72, 210, 64, 46, 13, 7, 195, 52, 114, 64, 46, 13, 0, 0, 0, 7, 195,
-			20, 52, 0, 46, 13, 0, 0, 0, 0, 0, 7, 195, 96, 19, 64, 46, 13, 0, 0, 0, 0, 13, 67, 41, 1, 71, 57, 136, 15, 48,
-			6, 36, 81, 0, 7, 195, 64, 131, 192, 46, 13, 6, 195, 32, 131, 192, 13, 6, 195, 4, 115, 64, 13, 0, 0, 0, 0, 7, 195, 48,
-			148, 64, 46, 13, 6, 195, 29, 36, 128, 13, 0, 0, 0, 0, 6, 195, 72, 68, 192, 13, 7, 195, 5, 100, 128, 46, 13, 0, 0, 0,
-			6, 194, 25, 32, 46, 13, 0, 7, 195, 21, 65, 0, 46, 13, 0, 6, 195, 73, 69, 12, 13, 7, 195, 20, 49, 12, 46, 13, 0, 0,
-			0, 6, 195, 73, 69, 128, 13, 7, 195, 25, 37, 0, 46, 13, 0, 6, 195, 25, 38, 0, 13, 0, 0, 0, 7, 195, 4, 209, 0, 46,
-			13, 0, 0, 0, 0, 0, 0, 0, 6, 194, 21, 80, 46, 13, 0, 8, 197, 56, 83, 65, 41, 80, 76, 0, 0, 0, 0, 0, 15, 67,
-			76, 148, 216, 89, 6, 37, 89, 15, 6, 37, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 48, 64, 46, 13, 6, 195,
-			4, 49, 141, 13, 0, 0, 0, 6, 194, 29, 32, 46, 13, 0, 7, 195, 72, 209, 128, 46, 13, 0, 0, 0, 6, 195, 29, 36, 0, 13,
-			0, 6, 195, 56, 146, 133, 76, 6, 195, 5, 97, 192, 13, 0, 7, 195, 29, 38, 0, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 208, 77, 60, 76, 0, 7, 195, 60, 52, 128, 46, 13, 7, 195, 29, 36, 192, 46,
-			13, 0, 0, 0, 0, 7, 195, 76, 52, 128, 46, 13, 0, 0, 18, 3, 226, 132, 162, 48, 140, 6, 39, 6, 37, 88, 84, 39, 75, 122,
-			76, 0, 0, 6, 194, 33, 32, 46, 13, 0, 0, 0, 8, 195, 33, 37, 0, 46, 13, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 17, 22, 64, 13, 0, 0, 0, 6, 194, 37, 16, 46, 13, 0, 6, 195, 56, 148, 213, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			7, 195, 96, 32, 64, 46, 13, 7, 195, 24, 96, 64, 46, 13, 0, 0, 18, 3, 226, 128, 166, 47, 140, 6, 37, 15, 47, 6, 35, 76,
-			49, 36, 0, 104, 17, 3, 226, 128, 166, 47, 140, 6, 37, 15, 47, 6, 39, 76, 49, 36, 0, 0, 23, 3, 226, 128, 161, 72, 84, 6,
-			39, 89, 47, 51, 139, 49, 37, 15, 49, 51, 6, 89, 47, 0, 102, 22, 3, 226, 128, 161, 72, 84, 6, 39, 89, 47, 140, 139, 49, 37,
-			15, 49, 140, 6, 37, 90, 0, 0, 7, 195, 12, 64, 64, 46, 13, 7, 195, 5, 112, 128, 46, 13, 12, 3, 226, 128, 160, 49, 44, 6,
-			89, 47, 0, 102, 11, 3, 226, 128, 160, 49, 140, 6, 37, 90, 0, 0, 0, 21, 3, 226, 128, 162, 49, 140, 6, 40, 48, 50, 35, 15,
-			47, 6, 35, 76, 49, 122, 0, 104, 20, 3, 226, 128, 162, 49, 140, 6, 40, 48, 50, 35, 15, 47, 6, 39, 76, 49, 122, 0, 0, 0,
-			12, 3, 226, 130, 172, 6, 36, 84, 140, 39, 0, 104, 11, 3, 226, 130, 172, 6, 36, 40, 51, 39, 0, 0, 0, 0, 0, 6, 195, 8,
-			147, 1, 72, 0, 0, 0, 0, 0, 0, 14, 4, 95, 111, 103, 111, 6, 39, 81, 39, 50, 109, 49, 0, 0, 0, 0, 0, 0, 6, 195,
-			65, 35, 198, 24, 0, 7, 195, 37, 51, 0, 46, 13, 0, 0, 0, 7, 195, 37, 52, 0, 46, 13, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 8, 147, 15, 72, 0, 0, 0, 0, 7, 195, 37, 65, 0, 24, 13, 0, 13, 4, 95, 98, 114, 118, 71, 140, 16, 6, 109, 84, 0,
-			0, 0, 0, 0, 24, 4, 95, 97, 99, 50, 72, 84, 6, 39, 89, 47, 140, 16, 139, 49, 138, 38, 6, 35, 49, 139, 47, 0, 0, 7,
-			195, 96, 149, 192, 46, 13, 0, 0, 0, 0, 7, 195, 20, 211, 0, 46, 13, 0, 7, 195, 20, 210, 0, 46, 13, 0, 0, 0, 6, 195,
-			97, 150, 128, 13, 13, 3, 226, 128, 176, 48, 140, 6, 39, 65, 37, 55, 0, 0, 7, 195, 16, 246, 0, 46, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 93, 64, 64, 13, 15, 3, 95, 51, 88, 47, 140, 6, 37, 72, 109, 89, 109, 47, 0, 0, 12, 3,
-			95, 48, 67, 89, 47, 6, 111, 10, 0, 102, 11, 3, 95, 48, 67, 89, 47, 6, 39, 10, 0, 0, 0, 0, 7, 195, 213, 64, 64, 104,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 65, 64, 72, 7, 195, 53, 1, 64, 46, 13, 0, 0, 0, 5, 194, 40, 80, 72,
+		static unsigned char espeakdata_dicts22_data[7360] = {
+			0, 4, 0, 0, 139, 25, 0, 0, 0, 0, 0, 7, 195, 85, 81, 64, 9, 17, 7, 195, 4, 209, 128, 9, 17, 0, 0, 6, 65, 4,
+			35, 0, 14, 5, 193, 4, 72, 8, 0, 0, 0, 0, 6, 65, 8, 71, 13, 0, 0, 0, 7, 195, 57, 50, 64, 9, 17, 0, 0, 6,
+			65, 12, 117, 13, 0, 0, 0, 7, 195, 41, 49, 64, 9, 17, 7, 195, 20, 209, 128, 9, 17, 15, 4, 95, 8, 1, 3, 49, 84, 6,
+			35, 76, 138, 117, 122, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 6, 195, 57, 33, 192, 17, 0, 0, 8, 197, 56, 83, 65, 41,
+			80, 76, 0, 0, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 7, 195, 57, 48, 64, 9, 17, 7, 195, 57, 32, 192, 9, 17, 0, 0,
+			6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 6, 65, 32, 101, 13, 0, 0, 14, 1, 33, 6, 40, 88, 84, 138, 76, 50, 138, 49, 0,
+			102, 14, 1, 33, 6, 40, 89, 49, 55, 138, 76, 50, 138, 49, 0, 0, 0, 11, 1, 35, 71, 140, 6, 39, 57, 10, 0, 27, 0, 6,
+			65, 36, 37, 0, 14, 5, 193, 36, 72, 8, 0, 11, 1, 37, 48, 6, 39, 89, 47, 39, 0, 27, 0, 9, 1, 38, 10, 6, 36, 50,
+			72, 0, 0, 0, 6, 65, 40, 57, 136, 0, 0, 0, 7, 195, 61, 22, 64, 9, 17, 15, 1, 42, 88, 84, 57, 6, 36, 88, 72, 37,
+			117, 122, 0, 27, 0, 7, 195, 5, 2, 0, 9, 17, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 7, 195, 5, 3, 0, 9, 17, 6,
+			65, 44, 49, 13, 0, 0, 7, 195, 5, 4, 0, 9, 17, 0, 7, 195, 37, 69, 192, 9, 17, 11, 1, 46, 47, 35, 76, 49, 122, 0,
+			104, 27, 10, 1, 46, 47, 39, 76, 49, 122, 0, 27, 0, 11, 1, 47, 49, 140, 6, 39, 88, 10, 0, 27, 0, 6, 65, 48, 55, 13,
+			0, 0, 0, 7, 195, 57, 37, 192, 9, 17, 0, 0, 6, 65, 52, 65, 13, 0, 0, 7, 195, 53, 0, 64, 9, 17, 0, 7, 195, 92,
+			150, 128, 9, 17, 0, 0, 6, 65, 56, 50, 13, 0, 0, 0, 7, 195, 57, 36, 192, 9, 17, 14, 1, 58, 72, 84, 6, 39, 47, 122,
+			76, 49, 122, 0, 104, 13, 1, 58, 72, 84, 6, 39, 47, 39, 76, 49, 122, 0, 0, 0, 6, 65, 60, 39, 0, 14, 5, 193, 60, 72,
+			28, 0, 14, 1, 61, 10, 57, 6, 36, 72, 50, 122, 49, 39, 0, 27, 0, 0, 0, 15, 1, 64, 47, 51, 81, 39, 84, 35, 76, 49,
+			39, 37, 0, 102, 8, 1, 64, 10, 6, 35, 47, 0, 6, 65, 64, 48, 13, 0, 0, 7, 195, 65, 0, 64, 9, 17, 7, 194, 4, 32,
+			9, 17, 41, 0, 7, 195, 56, 51, 192, 9, 17, 6, 195, 48, 128, 64, 17, 7, 195, 4, 209, 192, 9, 17, 0, 0, 7, 65, 68, 49,
+			84, 13, 0, 0, 0, 6, 195, 72, 48, 192, 17, 0, 0, 6, 65, 72, 51, 13, 0, 0, 8, 66, 5, 32, 122, 51, 0, 102, 6, 194,
+			73, 0, 9, 17, 0, 0, 0, 7, 65, 76, 89, 13, 0, 14, 7, 65, 76, 89, 10, 0, 28, 0, 0, 0, 0, 6, 65, 80, 47, 13,
+			0, 0, 0, 7, 195, 36, 209, 192, 9, 17, 0, 0, 6, 65, 84, 40, 0, 14, 5, 193, 84, 72, 28, 7, 195, 4, 51, 0, 9, 17,
+			0, 0, 0, 0, 6, 65, 88, 84, 13, 0, 0, 0, 0, 16, 4, 95, 49, 77, 52, 71, 6, 37, 55, 37, 57, 111, 50, 0, 104, 15,
+			4, 95, 49, 77, 52, 71, 6, 37, 55, 37, 57, 139, 50, 0, 0, 13, 1, 92, 71, 6, 109, 49, 89, 55, 109, 91, 0, 27, 13, 65,
+			92, 72, 40, 48, 55, 39, 15, 84, 13, 0, 102, 16, 65, 92, 72, 84, 39, 89, 47, 140, 40, 49, 39, 15, 84, 13, 0, 0, 7, 195,
+			5, 52, 0, 9, 17, 0, 6, 195, 16, 243, 192, 17, 16, 1, 94, 117, 6, 37, 51, 49, 40, 65, 83, 55, 36, 49, 89, 0, 0, 7,
+			195, 5, 54, 0, 9, 17, 0, 15, 4, 95, 49, 77, 49, 107, 6, 37, 61, 35, 72, 139, 0, 103, 16, 4, 95, 49, 77, 49, 107, 6,
+			37, 61, 4, 122, 72, 139, 0, 102, 14, 4, 95, 49, 77, 49, 47, 6, 37, 89, 139, 78, 139, 0, 7, 65, 96, 37, 49, 89, 0, 0,
+			7, 195, 97, 0, 64, 9, 17, 16, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 57, 111, 50, 0, 104, 15, 4, 95, 49, 77, 50, 65,
+			6, 37, 55, 37, 57, 139, 50, 0, 0, 7, 195, 4, 65, 0, 9, 17, 17, 4, 95, 49, 77, 51, 65, 37, 55, 37, 57, 137, 34, 72,
+			139, 0, 102, 16, 4, 95, 49, 77, 51, 65, 6, 37, 55, 37, 35, 51, 72, 139, 0, 0, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39,
+			50, 0, 0, 7, 195, 4, 68, 0, 9, 17, 0, 6, 195, 72, 52, 192, 17, 7, 195, 20, 212, 192, 9, 17, 0, 0, 6, 65, 104, 88,
+			13, 0, 0, 6, 194, 9, 32, 24, 17, 0, 7, 195, 21, 84, 128, 9, 17, 0, 0, 6, 195, 9, 35, 0, 17, 0, 6, 195, 5, 68,
+			0, 17, 0, 15, 67, 16, 240, 216, 72, 6, 39, 117, 15, 6, 37, 49, 89, 0, 7, 195, 36, 101, 64, 9, 17, 0, 6, 195, 9, 38,
+			0, 17, 0, 0, 0, 0, 0, 0, 6, 195, 29, 36, 19, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6, 37, 55,
+			72, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 97, 128, 64, 9, 17, 6, 195, 73, 64, 64, 17, 0, 0, 0, 6, 194, 13,
+			32, 9, 17, 6, 194, 5, 96, 9, 17, 0, 0, 0, 0, 0, 7, 195, 97, 129, 64, 9, 17, 7, 195, 36, 97, 128, 9, 17, 7, 195,
+			13, 37, 0, 9, 17, 0, 0, 0, 0, 15, 67, 76, 148, 216, 89, 6, 37, 89, 15, 6, 37, 49, 89, 0, 7, 195, 97, 2, 64, 9,
+			17, 7, 195, 93, 34, 64, 9, 17, 6, 195, 73, 69, 12, 17, 7, 195, 60, 34, 128, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 7, 195, 5, 117, 0, 9, 17, 0, 0, 0, 0, 6, 195, 92, 36, 128, 17, 0, 0, 0, 0, 7, 195, 76, 36, 128, 9,
+			17, 6, 195, 73, 52, 192, 17, 0, 0, 0, 6, 194, 17, 32, 24, 17, 0, 7, 195, 77, 148, 192, 9, 17, 0, 0, 0, 0, 7, 195,
+			81, 5, 64, 9, 17, 0, 0, 0, 0, 7, 195, 60, 38, 128, 9, 17, 0, 0, 0, 7, 195, 4, 148, 0, 9, 17, 0, 0, 0, 0,
+			6, 194, 21, 16, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 224, 192, 24, 7, 195, 72, 208, 64, 9, 17, 7, 195,
+			52, 112, 64, 9, 17, 0, 0, 0, 0, 7, 195, 16, 16, 64, 9, 17, 6, 195, 12, 48, 64, 17, 0, 0, 8, 132, 197, 161, 20, 1,
+			104, 76, 0, 8, 66, 21, 32, 36, 51, 0, 102, 0, 7, 195, 72, 209, 64, 9, 17, 7, 195, 52, 113, 64, 9, 17, 0, 0, 0, 0,
+			7, 132, 197, 161, 20, 15, 76, 6, 195, 73, 65, 128, 17, 7, 195, 37, 97, 128, 9, 17, 0, 0, 0, 0, 7, 195, 72, 210, 64, 9,
+			17, 7, 195, 52, 114, 64, 9, 17, 0, 7, 196, 56, 148, 212, 20, 76, 0, 0, 7, 195, 20, 52, 0, 9, 17, 0, 0, 15, 4, 95,
+			4, 16, 20, 9, 88, 6, 35, 16, 109, 88, 10, 0, 0, 0, 0, 7, 195, 96, 19, 64, 9, 17, 0, 6, 195, 56, 83, 65, 76, 0,
+			8, 197, 56, 83, 65, 52, 240, 76, 0, 0, 7, 195, 64, 131, 192, 9, 17, 6, 195, 32, 131, 192, 17, 6, 195, 4, 115, 64, 17, 0,
+			0, 0, 0, 7, 195, 48, 148, 64, 9, 17, 6, 195, 29, 36, 128, 17, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 122, 0,
+			0, 0, 0, 6, 195, 72, 68, 192, 17, 7, 195, 5, 100, 128, 9, 17, 0, 0, 0, 6, 194, 25, 32, 9, 17, 0, 7, 195, 21, 65,
+			0, 9, 17, 0, 0, 0, 8, 133, 9, 13, 1, 197, 161, 76, 0, 6, 195, 73, 69, 128, 17, 7, 195, 25, 37, 0, 9, 17, 0, 6,
+			195, 25, 38, 0, 17, 0, 0, 0, 7, 195, 4, 209, 0, 9, 17, 0, 0, 6, 195, 29, 36, 146, 17, 0, 0, 0, 0, 0, 6, 194,
+			21, 80, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 77, 48, 64, 9, 17, 0, 0, 0, 6, 194,
+			29, 32, 9, 17, 0, 7, 195, 72, 209, 128, 9, 17, 0, 0, 0, 6, 195, 29, 36, 0, 17, 0, 6, 195, 5, 97, 192, 17, 0, 7,
+			195, 29, 38, 0, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 60, 52, 128,
+			9, 17, 7, 195, 29, 36, 192, 9, 17, 0, 0, 0, 0, 7, 195, 76, 52, 128, 9, 17, 0, 0, 18, 3, 226, 132, 162, 48, 140, 6,
+			39, 6, 37, 88, 84, 39, 75, 122, 76, 0, 0, 6, 194, 33, 32, 9, 17, 0, 0, 0, 8, 195, 33, 37, 0, 9, 17, 41, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 22, 64, 17, 0, 0, 0, 6, 194, 37, 16, 9, 17, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 195, 96, 32, 64, 9, 17, 7, 195, 24, 96, 64, 9, 17, 0, 0, 18, 3, 226, 128, 166, 47, 140, 6, 37, 15, 47, 6,
+			35, 76, 49, 36, 0, 104, 17, 3, 226, 128, 166, 47, 140, 6, 37, 15, 47, 6, 39, 76, 49, 36, 0, 0, 23, 3, 226, 128, 161, 72,
+			84, 6, 39, 89, 47, 51, 139, 49, 37, 15, 49, 51, 6, 89, 47, 0, 102, 22, 3, 226, 128, 161, 72, 84, 6, 39, 89, 47, 140, 139,
+			49, 37, 15, 49, 140, 6, 37, 90, 0, 0, 7, 195, 12, 64, 64, 9, 17, 7, 195, 5, 112, 128, 9, 17, 12, 3, 226, 128, 160, 49,
+			44, 6, 89, 47, 0, 102, 11, 3, 226, 128, 160, 49, 140, 6, 37, 90, 0, 0, 0, 21, 3, 226, 128, 162, 49, 140, 6, 40, 48, 50,
+			35, 15, 47, 6, 35, 76, 49, 122, 0, 104, 20, 3, 226, 128, 162, 49, 140, 6, 40, 48, 50, 35, 15, 47, 6, 39, 76, 49, 122, 0,
+			0, 6, 195, 57, 97, 1, 17, 0, 12, 3, 226, 130, 172, 6, 36, 84, 140, 39, 0, 104, 11, 3, 226, 130, 172, 6, 36, 40, 51, 39,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 56, 83, 65, 80, 80, 76, 0, 0, 0, 0, 11, 3, 95, 50, 6, 72, 84,
+			6, 109, 0, 102, 12, 3, 95, 50, 6, 72, 84, 6, 37, 57, 36, 0, 0, 0, 7, 195, 37, 51, 0, 9, 17, 0, 0, 0, 7, 195,
+			37, 52, 0, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 37, 65, 0, 24, 17, 0, 15, 4, 95, 13, 3, 14,
+			65, 6, 35, 49, 140, 16, 39, 50, 0, 0, 0, 0, 0, 0, 7, 195, 96, 149, 192, 9, 17, 0, 0, 0, 0, 7, 195, 20, 211, 0,
+			9, 17, 0, 7, 195, 20, 210, 0, 9, 17, 0, 0, 0, 6, 195, 97, 150, 128, 17, 13, 3, 226, 128, 176, 48, 140, 6, 39, 65, 37,
+			55, 0, 0, 6, 195, 56, 81, 207, 8, 7, 195, 16, 246, 0, 9, 17, 0, 0, 0, 0, 16, 6, 95, 18, 15, 13, 1, 14, 140, 6,
+			37, 65, 89, 49, 39, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 93, 64, 64, 17, 15, 3, 95, 51, 88, 47, 140, 6, 37, 72, 109,
+			89, 109, 47, 0, 0, 12, 3, 95, 48, 67, 89, 47, 6, 111, 10, 0, 102, 11, 3, 95, 48, 67, 89, 47, 6, 39, 10, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 65, 64, 72, 7, 195, 53, 1, 64, 9, 17, 0, 0, 0, 5, 194, 40, 80, 72,
 			18, 3, 95, 49, 57, 72, 6, 109, 84, 109, 47, 50, 35, 109, 89, 47, 0, 102, 16, 3, 95, 49, 57, 72, 6, 109, 84, 109, 47, 50,
 			130, 89, 47, 0, 0, 17, 3, 95, 49, 56, 6, 39, 89, 122, 65, 50, 35, 109, 89, 47, 0, 102, 15, 3, 95, 49, 56, 6, 39, 89,
 			122, 65, 50, 130, 89, 47, 0, 0, 16, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 6, 35, 10, 0, 102, 15, 3, 95, 50, 67, 72,
-			84, 57, 6, 36, 89, 47, 6, 39, 0, 0, 0, 0, 0, 7, 196, 36, 208, 74, 84, 76, 0, 0, 17, 3, 95, 49, 49, 57, 6, 36,
-			72, 122, 50, 35, 109, 89, 47, 0, 102, 15, 3, 95, 49, 49, 57, 6, 36, 72, 122, 50, 130, 89, 47, 0, 0, 7, 195, 61, 67, 64,
-			46, 13, 7, 195, 5, 3, 64, 46, 13, 12, 3, 95, 49, 48, 72, 6, 109, 89, 109, 47, 0, 0, 16, 3, 95, 51, 67, 47, 51, 6,
-			37, 89, 47, 6, 35, 10, 0, 102, 16, 3, 95, 49, 51, 47, 140, 6, 37, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 51, 47,
-			140, 6, 37, 50, 130, 89, 47, 0, 0, 16, 3, 95, 49, 50, 72, 84, 6, 35, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 50,
-			72, 84, 6, 35, 50, 130, 89, 47, 0, 0, 16, 3, 95, 49, 53, 48, 6, 109, 47, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49,
-			53, 48, 6, 109, 47, 50, 130, 89, 47, 0, 16, 4, 95, 99, 121, 114, 78, 6, 37, 51, 37, 55, 37, 117, 35, 0, 0, 17, 3, 95,
-			49, 52, 76, 6, 109, 47, 44, 50, 35, 109, 89, 47, 0, 102, 15, 3, 95, 49, 52, 76, 6, 109, 47, 44, 50, 130, 89, 47, 0, 0,
-			18, 3, 95, 49, 55, 89, 6, 109, 72, 122, 65, 50, 35, 109, 89, 47, 0, 102, 16, 3, 95, 49, 55, 89, 6, 109, 72, 122, 65, 50,
-			130, 89, 47, 0, 0, 16, 3, 95, 49, 54, 91, 6, 109, 89, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 54, 91, 6, 109, 89,
-			50, 130, 89, 47, 0, 0, 0, 7, 195, 61, 52, 192, 46, 13, 6, 195, 12, 196, 128, 13, 17, 3, 95, 55, 88, 89, 6, 109, 72, 122,
-			65, 72, 109, 89, 109, 47, 0, 0, 18, 3, 95, 52, 67, 76, 36, 47, 51, 6, 37, 89, 47, 6, 39, 10, 0, 102, 0, 0, 0, 6,
-			195, 12, 68, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 97, 99, 117, 6, 35, 49, 139, 47, 0, 0, 0, 0, 0, 0,
-			13, 3, 95, 54, 67, 91, 6, 109, 89, 47, 6, 39, 0, 0, 0, 0, 6, 195, 8, 147, 9, 72, 0, 0, 11, 3, 95, 50, 102, 72,
-			84, 6, 109, 0, 102, 12, 3, 95, 50, 102, 72, 84, 6, 37, 57, 36, 0, 0, 0, 15, 3, 95, 50, 88, 72, 84, 6, 35, 72, 109,
-			89, 109, 47, 0, 0, 16, 5, 95, 48, 77, 65, 49, 107, 6, 37, 61, 35, 72, 36, 0, 103, 17, 5, 95, 48, 77, 65, 49, 107, 6,
-			37, 61, 4, 122, 72, 36, 0, 102, 15, 5, 95, 48, 77, 65, 49, 47, 6, 37, 89, 139, 78, 36, 0, 0, 0, 18, 5, 95, 48, 77,
-			65, 51, 65, 37, 55, 37, 57, 137, 34, 72, 36, 0, 102, 17, 5, 95, 48, 77, 65, 51, 65, 6, 37, 55, 37, 35, 51, 72, 36, 0,
-			0, 18, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 17, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55,
-			37, 57, 139, 50, 35, 0, 0, 0, 0, 0, 6, 195, 88, 112, 64, 13, 6, 195, 4, 16, 64, 13, 0, 0, 0, 0, 7, 195, 92, 208,
-			64, 46, 13, 0, 10, 3, 95, 63, 63, 88, 50, 35, 49, 0, 0, 0, 6, 194, 53, 32, 24, 13, 0, 7, 195, 65, 33, 128, 46, 13,
-			7, 195, 61, 65, 128, 46, 13, 16, 3, 95, 52, 88, 76, 6, 109, 47, 44, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 7, 195, 21,
-			1, 128, 46, 13, 0, 0, 0, 0, 7, 195, 72, 226, 192, 46, 13, 7, 195, 5, 2, 128, 46, 13, 14, 3, 95, 53, 88, 48, 6, 109,
-			72, 109, 89, 109, 47, 0, 0, 0, 13, 4, 95, 114, 110, 103, 140, 16, 6, 37, 68, 81, 0, 0, 0, 7, 195, 4, 130, 192, 46, 13,
-			0, 0, 0, 0, 6, 195, 65, 35, 128, 13, 6, 195, 60, 83, 64, 13, 7, 195, 56, 99, 192, 46, 13, 15, 3, 95, 54, 88, 91, 6,
-			109, 88, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 6, 195, 188, 81, 193, 8, 0, 0, 0, 6, 195, 69, 4, 128, 13, 0, 7,
-			196, 36, 208, 84, 20, 76, 0, 0, 0, 8, 195, 77, 68, 128, 46, 24, 13, 7, 195, 53, 4, 128, 46, 13, 7, 195, 52, 20, 64, 46,
-			13, 0, 0, 0, 6, 194, 57, 32, 46, 13, 0, 6, 195, 81, 165, 128, 24, 7, 195, 33, 37, 128, 46, 13, 16, 3, 95, 56, 88, 6,
-			39, 89, 122, 65, 72, 109, 89, 109, 47, 0, 0, 7, 195, 57, 34, 0, 46, 13, 0, 0, 0, 0, 0, 6, 195, 213, 67, 192, 76, 0,
-			0, 7, 195, 36, 211, 0, 46, 13, 16, 3, 95, 57, 88, 72, 6, 109, 84, 109, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0,
-			0, 11, 3, 95, 63, 65, 89, 55, 39, 84, 39, 0, 0, 0, 0, 0, 7, 195, 53, 84, 0, 13, 41, 0, 0, 0, 13, 4, 95, 115,
-			116, 107, 49, 140, 16, 6, 39, 88, 0, 0, 0, 0, 7, 195, 60, 33, 0, 46, 13, 7, 195, 21, 128, 192, 46, 13, 0, 0, 0, 0,
-			6, 195, 72, 112, 128, 13, 7, 195, 60, 37, 0, 46, 13, 0, 0, 0, 0, 7, 195, 84, 145, 128, 46, 13, 7, 195, 65, 33, 192, 46,
-			13, 6, 195, 12, 68, 151, 13, 0, 0, 7, 66, 19, 144, 75, 13, 0, 0, 0, 7, 195, 4, 145, 128, 46, 13, 0, 0, 0, 5, 194,
-			48, 144, 72, 0, 7, 195, 97, 50, 64, 46, 13, 7, 195, 33, 34, 192, 46, 13, 7, 195, 29, 82, 64, 46, 13, 0, 7, 195, 60, 54,
-			0, 46, 13, 0, 0, 0, 0, 0, 0, 7, 194, 61, 48, 46, 13, 41, 19, 4, 95, 99, 105, 114, 117, 6, 37, 51, 49, 139, 65, 83,
-			55, 109, 49, 89, 0, 0, 0, 17, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 16, 4, 95, 48, 77, 52,
-			71, 6, 37, 55, 37, 57, 139, 50, 35, 0, 0, 0, 17, 4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 16,
-			4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 57, 139, 50, 35, 0, 0, 17, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 137, 34, 72,
-			138, 0, 102, 16, 4, 95, 48, 77, 51, 65, 6, 37, 55, 37, 35, 51, 72, 138, 0, 0, 0, 15, 4, 95, 48, 77, 49, 107, 6, 37,
-			61, 35, 72, 122, 0, 103, 16, 4, 95, 48, 77, 49, 107, 6, 37, 61, 4, 122, 72, 122, 0, 102, 14, 4, 95, 48, 77, 49, 47, 6,
-			37, 89, 139, 78, 122, 0, 0, 7, 66, 48, 160, 61, 13, 0, 0, 0, 0, 0, 0, 7, 195, 20, 20, 128, 46, 13, 0, 0, 0, 6,
-			194, 65, 32, 46, 13, 0, 17, 4, 95, 108, 105, 103, 55, 6, 37, 81, 122, 47, 4, 139, 51, 122, 0, 0, 0, 0, 0, 7, 195, 65,
-			37, 0, 46, 13, 0, 0, 0, 0, 7, 195, 37, 22, 64, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 56, 148, 205, 60,
-			76, 0, 0, 0, 0, 0, 6, 65, 184, 78, 136, 0, 0, 0, 6, 195, 64, 64, 64, 13, 6, 195, 4, 16, 192, 13, 0, 7, 195, 60,
-			102, 0, 46, 13, 0, 0, 0, 7, 195, 96, 192, 64, 46, 13, 7, 195, 60, 101, 0, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			14, 4, 95, 99, 101, 100, 117, 6, 109, 72, 138, 55, 122, 0, 0, 7, 195, 60, 115, 0, 46, 13, 0, 8, 66, 72, 16, 51, 122, 0,
-			102, 0, 7, 195, 64, 66, 64, 46, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 211, 192, 72, 6, 195, 80, 179, 192, 76, 6,
-			195, 36, 35, 64, 13, 0, 15, 4, 95, 99, 97, 112, 49, 6, 35, 48, 138, 47, 122, 55, 0, 0, 0, 0, 7, 195, 64, 179, 192, 46,
-			13, 0, 0, 0, 5, 194, 72, 32, 13, 7, 66, 56, 160, 67, 13, 0, 0, 0, 0, 6, 131, 95, 195, 186, 43, 0, 0, 7, 195, 17,
-			52, 128, 46, 13, 0, 0, 0, 0, 6, 65, 188, 76, 13, 0, 0, 26, 3, 95, 194, 173, 48, 140, 6, 37, 84, 140, 36, 65, 36, 50,
-			122, 15, 117, 6, 44, 47, 6, 37, 117, 122, 0, 0, 0, 25, 3, 95, 194, 171, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6,
-			35, 84, 39, 72, 50, 138, 49, 0, 6, 131, 95, 195, 179, 43, 0, 6, 195, 60, 213, 192, 13, 7, 195, 52, 21, 192, 46, 13, 0, 0,
-			0, 6, 194, 72, 48, 46, 13, 0, 6, 195, 72, 49, 0, 13, 0, 6, 131, 95, 195, 173, 43, 0, 0, 0, 0, 6, 131, 95, 195, 169,
-			43, 0, 0, 5, 194, 73, 48, 13, 0, 7, 195, 104, 243, 192, 46, 13, 0, 0, 0, 0, 0, 6, 131, 95, 195, 161, 43, 0, 0, 6,
-			194, 72, 64, 46, 13, 0, 7, 195, 33, 64, 64, 46, 13, 0, 0, 0, 0, 0, 0, 6, 195, 73, 67, 0, 13, 0, 6, 194, 77, 32,
-			46, 13, 0, 7, 195, 77, 33, 0, 46, 13, 7, 195, 60, 97, 128, 46, 13, 0, 0, 0, 0, 0, 0, 0, 8, 66, 72, 80, 51, 36,
-			0, 102, 0, 7, 195, 41, 2, 64, 46, 13, 0, 0, 0, 5, 131, 239, 187, 191, 0, 6, 65, 192, 77, 136, 0, 0, 0, 0, 6, 195,
-			37, 49, 14, 13, 0, 0, 0, 0, 26, 3, 95, 194, 187, 88, 6, 35, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72,
-			50, 138, 49, 0, 0, 7, 195, 73, 115, 192, 46, 13, 0, 0, 0, 0, 6, 195, 68, 36, 128, 13, 0, 0, 0, 16, 4, 95, 103, 114,
-			118, 50, 6, 35, 81, 55, 122, 89, 122, 49, 0, 0, 0, 0, 10, 2, 195, 151, 48, 6, 40, 47, 122, 0, 0, 0, 0, 0, 6, 195,
-			44, 241, 193, 8, 6, 195, 57, 97, 1, 13, 0, 0, 0, 15, 67, 64, 245, 24, 48, 6, 39, 47, 15, 6, 37, 49, 89, 0, 0, 13,
-			2, 194, 167, 6, 39, 72, 55, 39, 65, 122, 49, 0, 0, 12, 2, 194, 164, 84, 6, 35, 55, 40, 47, 122, 0, 0, 0, 0, 0, 0,
-			0, 18, 2, 194, 174, 51, 6, 36, 81, 37, 89, 47, 140, 35, 117, 138, 57, 122, 0, 0, 0, 5, 194, 77, 80, 72, 5, 194, 73, 112,
-			13, 0, 0, 0, 0, 14, 2, 194, 168, 48, 140, 6, 36, 81, 55, 122, 89, 0, 102, 15, 2, 194, 168, 48, 140, 6, 37, 57, 36, 81,
-			55, 122, 89, 0, 0, 19, 2, 194, 169, 6, 127, 47, 39, 51, 89, 49, 122, 15, 48, 140, 35, 84, 122, 0, 0, 12, 2, 194, 182, 76,
-			55, 6, 35, 50, 122, 49, 0, 0, 10, 2, 194, 183, 48, 6, 40, 47, 122, 0, 0, 6, 194, 72, 128, 46, 13, 0, 7, 195, 104, 16,
-			64, 46, 13, 6, 195, 4, 32, 192, 13, 11, 2, 194, 181, 65, 6, 37, 49, 140, 39, 0, 0, 19, 65, 200, 55, 13, 15, 89, 122, 15,
-			117, 6, 44, 47, 6, 37, 117, 39, 65, 0, 0, 0, 13, 2, 194, 176, 89, 47, 6, 36, 48, 36, 50, 0, 104, 12, 2, 194, 176, 89,
-			47, 6, 40, 48, 122, 67, 0, 0, 7, 195, 64, 208, 64, 46, 13, 0, 0, 7, 195, 85, 35, 0, 46, 13, 16, 2, 195, 183, 48, 6,
-			39, 72, 36, 61, 4, 36, 50, 39, 0, 102, 17, 2, 195, 183, 48, 6, 39, 72, 37, 57, 36, 61, 4, 36, 50, 39, 0, 0, 5, 194,
-			73, 128, 13, 0, 0, 0, 0, 12, 2, 194, 184, 89, 36, 72, 6, 37, 55, 122, 0, 0, 0, 8, 3, 95, 209, 129, 89, 13, 0, 0,
-			0, 0, 7, 195, 5, 34, 128, 46, 13, 7, 195, 4, 34, 192, 46, 13, 0, 0, 0, 0, 6, 195, 12, 114, 64, 13, 0, 0, 0, 0,
-			7, 195, 85, 49, 0, 46, 13, 7, 195, 36, 51, 64, 46, 13, 7, 195, 4, 51, 64, 46, 13, 0, 0, 0, 0, 0, 0, 7, 195, 84,
-			67, 0, 46, 13, 0, 0, 6, 195, 4, 36, 192, 13, 0, 0, 0, 7, 196, 56, 148, 212, 20, 76, 0, 7, 195, 57, 4, 128, 24, 13,
-			6, 195, 84, 69, 0, 13, 6, 195, 24, 20, 64, 13, 0, 0, 0, 0, 8, 197, 56, 83, 65, 80, 80, 76, 0, 0, 0, 0, 0, 0,
-			0, 5, 194, 76, 144, 72, 6, 194, 72, 176, 46, 13, 0, 0, 7, 195, 92, 22, 0, 46, 13, 0, 0, 12, 2, 203, 152, 71, 140, 6,
-			36, 84, 37, 89, 0, 0, 0, 0, 0, 6, 194, 85, 80, 46, 13, 0, 0, 0, 0, 7, 195, 85, 84, 0, 46, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 4, 49, 205, 13, 7, 2, 209, 135, 76, 13, 0, 0, 7, 2, 209, 134, 117, 13, 0, 0, 7, 2,
-			209, 133, 101, 13, 0, 0, 7, 2, 209, 132, 83, 13, 0, 0, 7, 195, 5, 33, 192, 46, 13, 7, 195, 4, 49, 128, 46, 13, 6, 2,
-			209, 131, 40, 0, 0, 7, 2, 209, 130, 47, 13, 0, 0, 0, 7, 2, 209, 128, 51, 13, 0, 0, 7, 2, 209, 143, 57, 35, 0, 0,
-			7, 2, 209, 142, 57, 40, 0, 0, 6, 2, 209, 141, 36, 0, 0, 6, 194, 72, 208, 46, 13, 16, 2, 209, 140, 65, 6, 36, 49, 37,
-			15, 88, 4, 50, 35, 49, 0, 0, 9, 2, 209, 139, 57, 36, 34, 37, 0, 0, 6, 195, 72, 214, 0, 13, 17, 2, 209, 138, 47, 84,
-			52, 72, 6, 37, 15, 88, 50, 4, 35, 49, 0, 0, 7, 195, 72, 213, 0, 46, 13, 8, 2, 209, 137, 91, 78, 136, 0, 0, 7, 2,
-			209, 136, 91, 13, 0, 0, 7, 195, 53, 50, 64, 46, 13, 0, 12, 2, 95, 34, 50, 6, 35, 84, 39, 72, 0, 102, 14, 2, 95, 34,
-			50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 7, 2, 209, 149, 118, 13, 0, 0, 0, 7, 195, 5, 51, 64, 46, 13, 14, 2, 95,
-			39, 6, 35, 48, 39, 89, 47, 140, 39, 83, 0, 7, 2, 209, 147, 77, 136, 0, 0, 19, 2, 95, 38, 47, 6, 44, 81, 6, 39, 84,
-			122, 76, 49, 39, 15, 6, 37, 0, 7, 2, 209, 146, 77, 136, 0, 0, 7, 2, 209, 145, 57, 39, 0, 0, 11, 2, 95, 36, 72, 6,
-			39, 55, 122, 51, 0, 0, 7, 2, 209, 159, 75, 13, 0, 0, 6, 195, 84, 130, 0, 13, 15, 2, 95, 42, 88, 84, 6, 36, 88, 72,
-			37, 117, 122, 0, 102, 15, 2, 95, 42, 88, 84, 57, 6, 36, 88, 72, 37, 117, 122, 0, 0, 24, 2, 95, 41, 88, 6, 35, 47, 84,
-			39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 140, 35, 72, 122, 0, 0, 5, 194, 80, 160, 24, 5, 194, 76, 192, 24, 6, 194, 72, 224,
-			46, 13, 23, 2, 95, 40, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 140, 35, 72, 122, 0, 7, 2, 209, 156, 78,
-			136, 0, 0, 6, 195, 36, 208, 77, 76, 7, 2, 209, 155, 78, 136, 0, 0, 12, 2, 95, 46, 47, 6, 35, 76, 49, 122, 0, 104, 11,
-			2, 95, 46, 47, 6, 39, 76, 49, 122, 0, 7, 2, 209, 154, 67, 13, 0, 0, 13, 2, 95, 45, 117, 6, 44, 47, 6, 37, 117, 122,
-			0, 11, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 7, 2, 209, 153, 61, 13, 0, 0, 13, 2, 95, 44, 88, 6, 35, 48, 36, 47,
-			35, 0, 102, 11, 2, 95, 44, 88, 6, 35, 51, 36, 88, 0, 7, 2, 209, 152, 57, 136, 0, 0, 7, 195, 53, 36, 192, 24, 13, 9,
-			2, 95, 51, 47, 140, 6, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 7, 195, 85, 129, 0, 46, 13, 11, 2, 95, 49,
-			57, 6, 36, 72, 122, 50, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 122, 0, 0, 8, 197, 56, 83, 65, 52, 240, 76, 11, 2, 95,
-			55, 89, 6, 109, 72, 122, 65, 0, 0, 10, 2, 95, 54, 91, 6, 109, 89, 47, 0, 0, 9, 2, 95, 53, 48, 6, 109, 47, 0, 0,
-			12, 2, 95, 52, 76, 6, 109, 47, 138, 51, 138, 0, 0, 6, 195, 56, 83, 65, 76, 18, 2, 95, 59, 47, 6, 35, 76, 49, 122, 88,
-			4, 35, 16, 109, 88, 0, 103, 19, 2, 95, 59, 47, 6, 35, 76, 49, 122, 88, 4, 35, 48, 36, 47, 35, 0, 102, 17, 2, 95, 59,
-			47, 6, 39, 76, 49, 122, 88, 4, 35, 16, 109, 88, 0, 7, 2, 208, 183, 88, 13, 0, 0, 7, 2, 208, 182, 90, 13, 0, 0, 11,
-			2, 95, 57, 72, 6, 109, 84, 109, 47, 0, 6, 2, 208, 181, 109, 0, 0, 10, 2, 95, 56, 6, 39, 89, 122, 65, 0, 7, 2, 208,
-			180, 72, 13, 0, 0, 7, 195, 73, 22, 64, 46, 13, 13, 2, 95, 63, 6, 40, 48, 37, 47, 50, 138, 49, 0, 7, 2, 208, 179, 81,
-			13, 0, 0, 14, 2, 95, 62, 84, 6, 36, 76, 37, 15, 6, 39, 72, 0, 7, 2, 208, 178, 84, 13, 0, 0, 13, 2, 95, 61, 57,
-			6, 36, 72, 50, 122, 49, 39, 0, 13, 2, 95, 61, 57, 6, 36, 72, 50, 122, 49, 39, 0, 7, 2, 208, 177, 71, 13, 0, 0, 7,
-			195, 84, 148, 0, 46, 13, 14, 2, 95, 60, 65, 6, 35, 67, 37, 15, 6, 39, 72, 0, 6, 2, 208, 176, 35, 0, 0, 7, 2, 208,
-			191, 48, 13, 0, 0, 6, 2, 208, 190, 39, 0, 0, 7, 2, 208, 189, 50, 13, 0, 0, 8, 2, 95, 64, 36, 47, 0, 102, 19, 2,
-			95, 64, 47, 6, 44, 81, 6, 39, 84, 122, 76, 49, 39, 15, 6, 35, 0, 7, 2, 208, 188, 65, 13, 0, 0, 7, 2, 208, 187, 55,
-			13, 0, 0, 7, 2, 208, 186, 49, 13, 0, 0, 15, 2, 208, 185, 49, 34, 4, 35, 47, 49, 39, 15, 6, 37, 0, 0, 6, 2, 208,
-			184, 37, 0, 0, 0, 0, 0, 0, 6, 195, 72, 32, 64, 13, 7, 195, 60, 112, 192, 46, 13, 7, 195, 36, 48, 192, 46, 13, 7, 195,
-			4, 48, 192, 46, 13, 0, 0, 6, 65, 212, 91, 13, 0, 0, 0, 7, 195, 88, 32, 64, 46, 13, 7, 195, 52, 64, 64, 46, 13, 0,
-			0, 0, 26, 4, 95, 226, 128, 154, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 7,
-			195, 60, 113, 192, 46, 13, 7, 195, 5, 49, 128, 46, 13, 7, 195, 4, 49, 192, 46, 13, 30, 4, 95, 226, 128, 153, 57, 6, 36, 72,
-			50, 39, 89, 47, 140, 6, 40, 49, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 26, 4, 95, 226, 128, 152, 6, 39, 47,
-			84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 27, 4, 95, 226, 128, 158, 88, 122, 47, 84, 39,
-			51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 102, 26, 4, 95, 226, 128, 158, 89, 48, 6, 40, 91, 47, 36, 50,
-			37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 7, 195, 88, 33, 64, 46, 13, 7, 195, 52, 65, 64, 46, 13, 24, 2, 95,
-			91, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 6, 40, 81, 55, 122, 89, 47, 122, 0, 102, 22, 2, 95, 91, 6, 39, 47, 84, 39,
-			51, 36, 50, 122, 15, 6, 40, 81, 55, 122, 47, 122, 0, 27, 4, 95, 226, 128, 157, 88, 6, 35, 47, 84, 39, 51, 36, 50, 37, 15,
-			50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 26, 4, 95, 226, 128, 156, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35,
-			84, 39, 72, 50, 138, 49, 0, 0, 15, 4, 95, 226, 128, 147, 109, 50, 15, 117, 6, 44, 47, 122, 0, 0, 0, 7, 195, 56, 162, 64,
-			46, 13, 10, 2, 95, 95, 117, 6, 44, 47, 122, 0, 0, 0, 25, 2, 95, 93, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 6,
-			40, 81, 55, 122, 89, 47, 122, 0, 102, 23, 2, 95, 93, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 6, 40, 81, 55, 122, 47,
-			122, 0, 0, 0, 7, 195, 36, 194, 64, 72, 8, 6, 195, 4, 194, 64, 8, 7, 195, 52, 66, 64, 46, 13, 6, 195, 24, 34, 64, 13,
-			0, 15, 4, 95, 226, 128, 148, 109, 65, 15, 117, 6, 44, 47, 122, 0, 0, 14, 3, 95, 97, 114, 6, 137, 34, 35, 48, 89, 49, 39,
-			0, 0, 12, 2, 95, 96, 81, 140, 6, 35, 84, 37, 89, 0, 0, 7, 195, 36, 67, 64, 46, 13, 7, 195, 20, 195, 64, 46, 13, 7,
-			195, 5, 51, 128, 46, 13, 0, 0, 0, 0, 6, 195, 8, 147, 192, 72, 7, 195, 4, 195, 64, 46, 13, 0, 0, 0, 0, 7, 195, 36,
-			52, 192, 46, 13, 0, 0, 0, 0, 7, 195, 85, 52, 128, 46, 13, 7, 195, 20, 52, 192, 46, 13, 7, 2, 95, 115, 89, 13, 0, 0,
-			0, 15, 4, 95, 104, 97, 99, 49, 84, 6, 35, 76, 138, 117, 122, 0, 0, 0, 7, 195, 72, 21, 192, 46, 13, 7, 195, 4, 53, 192,
-			46, 13, 26, 4, 95, 226, 128, 185, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0,
-			0, 0, 25, 2, 95, 123, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 84, 6, 37, 47, 37, 76, 122, 89, 47, 122, 0, 0, 0, 0,
-			0, 0, 0, 26, 2, 95, 125, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 84, 6, 37, 47, 37, 76, 122, 89, 47, 122, 0, 0,
-			15, 2, 95, 124, 6, 40, 89, 48, 51, 122, 84, 50, 122, 0, 102, 13, 2, 95, 124, 6, 39, 49, 39, 65, 37, 117, 122, 0, 0, 0,
-			0, 0, 6, 194, 101, 80, 46, 13, 0, 0, 0, 0, 0, 0, 7, 196, 56, 148, 193, 52, 76, 0, 0, 0, 7, 195, 36, 64, 128, 46,
-			13, 7, 195, 5, 48, 192, 46, 13, 0, 0, 0, 0, 7, 195, 57, 32, 64, 46, 13, 7, 195, 21, 48, 192, 46, 13, 0, 0, 0, 0,
-			7, 195, 13, 1, 64, 46, 13, 0, 0, 0, 0, 7, 195, 84, 65, 128, 46, 13, 7, 195, 57, 33, 64, 46, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 195, 57, 34, 64, 46, 13, 0, 0, 0, 5, 194, 97, 144, 13, 0, 7, 195, 4, 67, 128, 46, 13, 0, 21, 5, 95,
-			49, 77, 65, 49, 57, 36, 72, 50, 122, 15, 107, 37, 61, 122, 72, 122, 0, 102, 0, 0, 0, 7, 195, 57, 35, 64, 46, 13, 6, 195,
-			25, 35, 64, 13, 0, 0, 0, 0, 6, 195, 56, 148, 201, 76, 7, 195, 37, 52, 192, 46, 13, 0, 0, 0, 0, 6, 195, 88, 36, 128,
-			13, 7, 195, 85, 52, 192, 46, 13, 7, 195, 57, 36, 64, 46, 13, 0, 0, 0, 0, 7, 195, 13, 5, 64, 46, 13, 0, 0, 0, 0,
-			7, 195, 57, 37, 64, 46, 13, 0, 0, 0, 0, 0, 0, 0, 16, 70, 12, 243, 148, 72, 243, 0, 117, 39, 50, 47, 51, 125, 55, 0,
-			0, 0, 0, 0, 0, 0, 13, 67, 13, 68, 140, 117, 39, 50, 47, 51, 125, 55, 0, 6, 195, 13, 68, 140, 13, 0, 0, 0, 0, 0,
-			0, 0, 7, 195, 36, 64, 192, 46, 13, 0, 0, 0, 0, 6, 195, 36, 208, 64, 76, 7, 195, 57, 32, 128, 46, 13, 0, 0, 0, 0,
-			6, 195, 9, 33, 128, 13, 7, 195, 5, 65, 128, 46, 13, 0, 0, 0, 0, 13, 67, 85, 65, 128, 40, 15, 47, 36, 15, 36, 83, 0,
-			7, 195, 57, 33, 128, 46, 13, 7, 195, 4, 193, 192, 46, 13, 0, 0, 0, 0, 7, 195, 64, 114, 64, 46, 13, 0, 0, 0, 0, 7,
-			195, 36, 194, 192, 46, 13, 0, 6, 65, 228, 90, 13, 0, 0, 0, 0, 6, 195, 76, 19, 64, 72, 7, 195, 28, 131, 192, 46, 13, 0,
-			15, 67, 16, 240, 216, 72, 6, 39, 117, 15, 6, 37, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 41, 36, 128, 13, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 37, 70, 128, 46, 13, 0, 16, 6, 95, 114, 111, 109, 97, 110,
-			140, 6, 37, 65, 89, 49, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 52, 16, 216, 65, 6, 35, 117, 15, 6, 37, 49, 89,
-			0, 6, 195, 4, 68, 204, 13, 0, 6, 196, 135, 0, 3, 78, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 145, 0, 3, 77,
-			0, 7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 3, 35, 0, 4, 2, 106, 3, 137, 0,
-			2, 114, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 117, 0, 7, 6, 100, 0, 3, 72, 0, 197, 190, 3, 75, 0, 197,
-			190, 8, 2, 32, 3, 75, 13, 0, 122, 3, 118, 0, 122, 8, 2, 32, 3, 118, 13, 0, 7, 6, 101, 0, 120, 101, 5, 2, 8, 3,
-			2, 36, 37, 49, 89, 36, 0, 120, 101, 8, 3, 2, 36, 49, 89, 36, 0, 4, 1, 106, 3, 36, 0, 2, 106, 0, 3, 109, 0, 7,
-			6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 8, 3, 101, 0, 3, 107, 0, 7, 6, 105, 0, 110, 105,
-			1, 32, 46, 3, 2, 37, 50, 37, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0, 1, 17, 65, 29, 2, 32, 3, 57, 10, 0, 7,
-			6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3, 45, 0, 3, 55, 0, 106, 1, 118, 3, 55, 57, 0, 106, 2, 12,
-			3, 61, 0, 106, 8, 2, 32, 3, 61, 13, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 106, 3, 67, 0, 106,
-			8, 2, 32, 3, 67, 13, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 129, 0, 7, 6, 112,
-			0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 5, 2, 3, 49, 40, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 4, 3, 51,
-			0, 1, 17, 65, 2, 17, 65, 0, 2, 32, 0, 114, 0, 1, 25, 2, 25, 3, 52, 0, 1, 25, 2, 17, 65, 3, 140, 0, 7, 6,
-			115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0,
-			3, 84, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3,
-			88, 0, 7, 6, 206, 0, 177, 3, 6, 35, 55, 83, 122, 0, 172, 3, 6, 35, 55, 83, 122, 15, 47, 6, 39, 50, 39, 89, 0, 183,
-			3, 6, 36, 47, 122, 0, 174, 3, 6, 36, 47, 122, 15, 47, 6, 39, 50, 39, 89, 0, 181, 3, 6, 36, 48, 89, 138, 55, 39, 50,
-			0, 173, 3, 6, 36, 48, 89, 138, 55, 39, 50, 15, 47, 6, 39, 50, 39, 89, 0, 191, 3, 6, 39, 65, 138, 49, 140, 39, 50, 10,
-			0, 184, 3, 47, 101, 6, 36, 47, 122, 0, 186, 3, 49, 6, 35, 48, 122, 0, 190, 3, 49, 89, 6, 37, 0, 189, 3, 50, 6, 37,
-			0, 187, 3, 55, 6, 35, 65, 72, 122, 0, 185, 3, 57, 6, 39, 47, 122, 0, 175, 3, 57, 6, 39, 47, 122, 15, 47, 6, 39, 50,
-			39, 89, 0, 188, 3, 65, 6, 37, 0, 178, 3, 71, 6, 36, 47, 122, 0, 180, 3, 72, 6, 36, 55, 47, 122, 0, 179, 3, 81, 6,
-			35, 65, 122, 0, 182, 3, 88, 6, 36, 47, 122, 0, 7, 6, 207, 0, 137, 3, 6, 39, 65, 36, 81, 122, 0, 142, 3, 6, 39, 65,
-			36, 81, 122, 15, 47, 6, 39, 50, 39, 89, 0, 140, 3, 6, 39, 65, 138, 49, 140, 39, 50, 15, 47, 6, 39, 50, 39, 89, 0, 132,
-			3, 47, 6, 35, 40, 0, 128, 3, 48, 6, 37, 0, 136, 3, 48, 89, 6, 37, 0, 129, 3, 51, 6, 39, 0, 141, 3, 81, 44, 76,
-			49, 37, 15, 6, 37, 48, 89, 138, 55, 39, 50, 15, 47, 6, 39, 50, 39, 89, 0, 133, 3, 81, 44, 76, 49, 37, 23, 6, 37, 48,
-			89, 138, 55, 39, 50, 0, 130, 3, 81, 44, 76, 49, 39, 23, 88, 6, 35, 84, 44, 91, 50, 39, 23, 89, 6, 37, 81, 65, 122, 0,
-			134, 3, 83, 6, 37, 0, 131, 3, 89, 6, 37, 81, 65, 122, 0, 135, 3, 101, 6, 37, 0, 7, 6, 0, 4, 45, 1, 32, 17, 65,
-			2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 4, 195, 159, 3, 21, 100, 101, 0, 195, 164, 0, 195, 182, 0, 195,
-			188, 0, 45, 8, 32, 2, 32, 15, 3, 65, 37, 50, 40, 89, 0, 36, 3, 72, 6, 39, 55, 122, 51, 0, 195, 173, 3, 121, 0, 195,
-			169, 3, 123, 0, 195, 161, 3, 124, 0, 195, 179, 3, 125, 0, 195, 186, 3, 126, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts26 = FileInMemory_createWithData (7731, reinterpret_cast<const char *> (&espeakdata_dicts26_data), 
-			U"espeak-1.48.04-source/espeak-data/hbs_dict", 
+			84, 57, 6, 36, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49, 49, 57, 6, 36, 72, 122, 50, 35, 109, 89, 47,
+			0, 102, 15, 3, 95, 49, 49, 57, 6, 36, 72, 122, 50, 130, 89, 47, 0, 0, 7, 195, 61, 67, 64, 9, 17, 7, 195, 5, 3, 64,
+			9, 17, 12, 3, 95, 49, 48, 72, 6, 109, 89, 109, 47, 0, 0, 16, 3, 95, 51, 67, 47, 51, 6, 37, 89, 47, 6, 35, 10, 0,
+			102, 16, 3, 95, 49, 51, 47, 140, 6, 37, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 51, 47, 140, 6, 37, 50, 130, 89, 47,
+			0, 0, 16, 3, 95, 49, 50, 72, 84, 6, 35, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 50, 72, 84, 6, 35, 50, 130, 89,
+			47, 0, 0, 16, 3, 95, 49, 53, 48, 6, 109, 47, 50, 35, 109, 89, 47, 0, 102, 14, 3, 95, 49, 53, 48, 6, 109, 47, 50, 130,
+			89, 47, 0, 0, 17, 3, 95, 49, 52, 76, 6, 109, 47, 44, 50, 35, 109, 89, 47, 0, 102, 15, 3, 95, 49, 52, 76, 6, 109, 47,
+			44, 50, 130, 89, 47, 0, 0, 18, 3, 95, 49, 55, 89, 6, 109, 72, 122, 65, 50, 35, 109, 89, 47, 0, 102, 16, 3, 95, 49, 55,
+			89, 6, 109, 72, 122, 65, 50, 130, 89, 47, 0, 0, 16, 3, 95, 49, 54, 91, 6, 109, 89, 50, 35, 109, 89, 47, 0, 102, 14, 3,
+			95, 49, 54, 91, 6, 109, 89, 50, 130, 89, 47, 0, 0, 0, 7, 195, 61, 52, 192, 9, 17, 6, 195, 12, 196, 128, 17, 17, 3, 95,
+			55, 88, 89, 6, 109, 72, 122, 65, 72, 109, 89, 109, 47, 0, 0, 18, 3, 95, 52, 67, 76, 36, 47, 51, 6, 37, 89, 47, 6, 39,
+			10, 0, 102, 0, 0, 0, 6, 195, 12, 68, 128, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 68, 151,
+			17, 13, 3, 95, 54, 67, 91, 6, 109, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 50, 88, 72, 84, 6, 35,
+			72, 109, 89, 109, 47, 0, 0, 16, 5, 95, 48, 77, 65, 49, 107, 6, 37, 61, 35, 72, 36, 0, 103, 17, 5, 95, 48, 77, 65, 49,
+			107, 6, 37, 61, 4, 122, 72, 36, 0, 102, 15, 5, 95, 48, 77, 65, 49, 47, 6, 37, 89, 139, 78, 36, 0, 0, 0, 18, 5, 95,
+			48, 77, 65, 51, 65, 37, 55, 37, 57, 137, 34, 72, 36, 0, 102, 17, 5, 95, 48, 77, 65, 51, 65, 6, 37, 55, 37, 35, 51, 72,
+			36, 0, 0, 18, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 17, 5, 95, 48, 77, 65, 50, 65, 6,
+			37, 55, 37, 57, 139, 50, 35, 0, 0, 0, 0, 0, 6, 195, 88, 112, 64, 17, 6, 195, 4, 16, 64, 17, 0, 0, 0, 0, 7, 195,
+			92, 208, 64, 9, 17, 0, 10, 3, 95, 63, 63, 88, 50, 35, 49, 0, 0, 0, 6, 194, 53, 32, 24, 17, 0, 7, 195, 65, 33, 128,
+			9, 17, 7, 195, 61, 65, 128, 9, 17, 16, 3, 95, 52, 88, 76, 6, 109, 47, 44, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 7,
+			195, 21, 1, 128, 9, 17, 0, 0, 0, 0, 7, 195, 72, 226, 192, 9, 17, 7, 195, 5, 2, 128, 9, 17, 14, 3, 95, 53, 88, 48,
+			6, 109, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 7, 195, 4, 130, 192, 9, 17, 0, 0, 0, 0, 6, 195, 65, 35, 128, 17, 6,
+			195, 60, 83, 64, 17, 7, 195, 56, 99, 192, 9, 17, 15, 3, 95, 54, 88, 91, 6, 109, 88, 72, 109, 89, 109, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 6, 195, 69, 4, 128, 17, 0, 0, 0, 0, 8, 195, 77, 68, 128, 9, 24, 17, 7, 195, 53, 4, 128, 9, 17,
+			7, 195, 52, 20, 64, 9, 17, 0, 0, 0, 6, 194, 57, 32, 9, 17, 0, 13, 67, 13, 68, 140, 117, 39, 50, 47, 51, 125, 55, 0,
+			6, 195, 81, 165, 128, 24, 7, 195, 33, 37, 128, 9, 17, 6, 195, 13, 68, 140, 17, 16, 3, 95, 56, 88, 6, 39, 89, 122, 65, 72,
+			109, 89, 109, 47, 0, 0, 7, 195, 57, 34, 0, 9, 17, 0, 9, 134, 14, 5, 13, 1, 197, 161, 76, 0, 0, 0, 0, 0, 0, 7,
+			195, 36, 211, 0, 9, 17, 16, 3, 95, 57, 88, 72, 6, 109, 84, 109, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 11,
+			3, 95, 63, 65, 89, 55, 39, 84, 39, 0, 0, 0, 0, 0, 7, 195, 53, 84, 0, 17, 41, 0, 0, 0, 0, 0, 0, 7, 195, 60,
+			33, 0, 9, 17, 7, 195, 21, 128, 192, 9, 17, 0, 0, 0, 0, 6, 195, 72, 112, 128, 17, 7, 195, 60, 37, 0, 9, 17, 14, 4,
+			95, 15, 7, 15, 6, 39, 81, 39, 50, 109, 49, 0, 0, 13, 68, 77, 64, 82, 80, 89, 47, 6, 35, 51, 47, 0, 0, 0, 6, 195,
+			33, 166, 143, 17, 0, 7, 195, 84, 145, 128, 9, 17, 7, 195, 65, 33, 192, 9, 17, 0, 0, 0, 0, 7, 195, 4, 145, 128, 9, 17,
+			0, 0, 0, 5, 194, 48, 144, 72, 0, 7, 195, 97, 50, 64, 9, 17, 7, 195, 33, 34, 192, 9, 17, 7, 195, 29, 82, 64, 9, 17,
+			0, 7, 195, 60, 54, 0, 9, 17, 0, 0, 0, 0, 0, 0, 7, 194, 61, 48, 9, 17, 41, 0, 0, 17, 4, 95, 48, 77, 52, 71,
+			6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 16, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 57, 139, 50, 35, 0, 0, 6, 195, 65,
+			35, 198, 24, 0, 17, 4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 57, 111, 50, 35, 0, 104, 16, 4, 95, 48, 77, 50, 65, 6, 37,
+			55, 37, 57, 139, 50, 35, 0, 0, 17, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 137, 34, 72, 138, 0, 102, 16, 4, 95, 48, 77,
+			51, 65, 6, 37, 55, 37, 35, 51, 72, 138, 0, 0, 0, 15, 4, 95, 48, 77, 49, 107, 6, 37, 61, 35, 72, 122, 0, 103, 16, 4,
+			95, 48, 77, 49, 107, 6, 37, 61, 4, 122, 72, 122, 0, 102, 14, 4, 95, 48, 77, 49, 47, 6, 37, 89, 139, 78, 122, 0, 0, 13,
+			4, 95, 2, 18, 22, 71, 140, 16, 6, 109, 84, 0, 7, 66, 48, 160, 61, 13, 0, 0, 0, 0, 0, 0, 7, 195, 20, 20, 128, 9,
+			17, 0, 0, 0, 6, 194, 65, 32, 9, 17, 0, 0, 0, 0, 0, 7, 195, 65, 37, 0, 9, 17, 0, 0, 0, 0, 7, 195, 37, 22,
+			64, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 64, 64, 64, 17, 6, 195, 4, 16, 192,
+			17, 0, 7, 195, 60, 102, 0, 9, 17, 0, 0, 0, 7, 195, 96, 192, 64, 9, 17, 7, 195, 60, 101, 0, 9, 17, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 195, 60, 115, 0, 9, 17, 0, 8, 66, 72, 16, 51, 122, 0, 102, 0, 7, 195, 64, 66, 64, 9, 17,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 211, 192, 72, 6, 195, 80, 179, 192, 76, 6, 195, 36, 35, 64, 17, 0, 0, 0, 19,
+			4, 95, 3, 9, 18, 117, 6, 37, 51, 49, 139, 65, 83, 55, 109, 49, 89, 0, 0, 7, 195, 64, 179, 192, 9, 17, 0, 0, 0, 5,
+			194, 72, 32, 17, 7, 66, 56, 160, 67, 13, 0, 0, 0, 0, 6, 131, 95, 195, 186, 43, 0, 0, 7, 195, 17, 52, 128, 9, 17, 0,
+			0, 0, 0, 13, 4, 95, 19, 20, 11, 49, 140, 16, 6, 39, 88, 0, 0, 26, 3, 95, 194, 173, 48, 140, 6, 37, 84, 140, 36, 65,
+			36, 50, 122, 15, 117, 6, 44, 47, 6, 37, 117, 122, 0, 0, 12, 4, 95, 1, 3, 21, 6, 35, 49, 139, 47, 0, 0, 25, 3, 95,
+			194, 171, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 6, 131, 95, 195, 179, 43, 0, 15,
+			67, 52, 16, 216, 65, 6, 35, 117, 15, 6, 37, 49, 89, 0, 6, 195, 60, 213, 192, 17, 7, 195, 52, 21, 192, 9, 17, 0, 0, 0,
+			6, 194, 72, 48, 9, 17, 0, 6, 195, 72, 49, 0, 17, 0, 6, 131, 95, 195, 173, 43, 0, 0, 0, 13, 4, 95, 18, 14, 7, 140,
+			16, 6, 37, 68, 81, 0, 0, 6, 131, 95, 195, 169, 43, 0, 0, 5, 194, 73, 48, 17, 0, 7, 195, 104, 243, 192, 9, 17, 0, 0,
+			0, 8, 133, 196, 141, 5, 7, 1, 8, 0, 0, 6, 131, 95, 195, 161, 43, 0, 0, 6, 194, 72, 64, 9, 17, 0, 7, 195, 33, 64,
+			64, 9, 17, 0, 0, 0, 0, 0, 0, 6, 195, 73, 67, 0, 17, 0, 6, 194, 77, 32, 9, 17, 0, 7, 195, 77, 33, 0, 9, 17,
+			7, 195, 60, 97, 128, 9, 17, 0, 0, 0, 13, 67, 41, 1, 71, 57, 136, 15, 48, 6, 36, 81, 0, 24, 4, 95, 1, 3, 50, 72,
+			84, 6, 39, 89, 47, 140, 16, 139, 49, 138, 38, 6, 35, 49, 139, 47, 0, 0, 0, 0, 0, 8, 66, 72, 80, 51, 36, 0, 102, 0,
+			7, 195, 41, 2, 64, 9, 17, 7, 195, 20, 49, 12, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 95, 194, 187,
+			88, 6, 35, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 7, 195, 73, 115, 192, 9, 17, 0,
+			6, 195, 8, 147, 1, 72, 0, 7, 2, 196, 135, 78, 136, 0, 0, 6, 195, 8, 147, 15, 72, 0, 6, 195, 68, 36, 128, 17, 0, 0,
+			0, 0, 0, 6, 195, 8, 147, 9, 72, 0, 10, 2, 195, 151, 48, 6, 40, 47, 122, 0, 0, 0, 7, 2, 196, 141, 76, 13, 0, 0,
+			20, 2, 197, 130, 55, 13, 15, 89, 122, 15, 117, 6, 44, 47, 6, 37, 117, 39, 65, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 6,
+			39, 72, 55, 39, 65, 122, 49, 0, 0, 12, 2, 194, 164, 84, 6, 35, 55, 40, 47, 122, 0, 0, 0, 7, 196, 36, 208, 84, 20, 76,
+			0, 0, 0, 7, 2, 196, 145, 77, 136, 0, 0, 18, 2, 194, 174, 51, 6, 36, 81, 37, 89, 47, 140, 35, 117, 138, 57, 122, 0, 0,
+			0, 5, 194, 77, 80, 72, 5, 194, 73, 112, 17, 0, 0, 0, 0, 14, 2, 194, 168, 48, 140, 6, 36, 81, 55, 122, 89, 0, 102, 15,
+			2, 194, 168, 48, 140, 6, 37, 57, 36, 81, 55, 122, 89, 0, 0, 19, 2, 194, 169, 6, 127, 47, 39, 51, 89, 49, 122, 15, 48, 140,
+			35, 84, 122, 0, 0, 12, 2, 194, 182, 76, 55, 6, 35, 50, 122, 49, 0, 0, 10, 2, 194, 183, 48, 6, 40, 47, 122, 0, 0, 6,
+			194, 72, 128, 9, 17, 0, 7, 195, 104, 16, 64, 9, 17, 6, 195, 4, 32, 192, 17, 11, 2, 194, 181, 65, 6, 37, 49, 140, 39, 0,
+			0, 0, 6, 195, 37, 49, 14, 17, 0, 13, 2, 194, 176, 89, 47, 6, 36, 48, 36, 50, 0, 104, 12, 2, 194, 176, 89, 47, 6, 40,
+			48, 122, 67, 0, 0, 7, 195, 64, 208, 64, 9, 17, 0, 0, 7, 195, 85, 35, 0, 9, 17, 16, 2, 195, 183, 48, 6, 39, 72, 36,
+			61, 4, 36, 50, 39, 0, 102, 17, 2, 195, 183, 48, 6, 39, 72, 37, 57, 36, 61, 4, 36, 50, 39, 0, 0, 5, 194, 73, 128, 17,
+			0, 0, 14, 4, 95, 3, 5, 4, 117, 6, 109, 72, 138, 55, 122, 0, 0, 0, 12, 2, 194, 184, 89, 36, 72, 6, 37, 55, 122, 0,
+			0, 17, 4, 95, 12, 9, 7, 55, 6, 37, 81, 122, 47, 4, 139, 51, 122, 0, 7, 2, 197, 161, 91, 13, 0, 0, 0, 0, 0, 7,
+			195, 5, 34, 128, 9, 17, 7, 195, 4, 34, 192, 9, 17, 0, 0, 0, 0, 6, 195, 12, 114, 64, 17, 0, 0, 0, 0, 7, 195, 85,
+			49, 0, 9, 17, 7, 195, 36, 51, 64, 9, 17, 7, 195, 4, 51, 64, 9, 17, 0, 0, 0, 0, 0, 7, 2, 197, 190, 90, 13, 0,
+			0, 7, 195, 84, 67, 0, 9, 17, 0, 0, 6, 195, 4, 36, 192, 17, 0, 0, 0, 0, 7, 195, 57, 4, 128, 24, 17, 6, 195, 84,
+			69, 0, 17, 6, 195, 24, 20, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 6, 194, 72, 176, 9,
+			17, 0, 0, 7, 195, 92, 22, 0, 9, 17, 0, 0, 12, 2, 203, 152, 71, 140, 6, 36, 84, 37, 89, 0, 0, 0, 0, 0, 6, 194,
+			85, 80, 9, 17, 0, 0, 7, 196, 56, 83, 65, 52, 76, 0, 0, 7, 195, 85, 84, 0, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 2, 95, 19, 89, 13, 0, 0, 0, 0, 0, 7, 195, 5, 33, 192, 9, 17, 7, 195, 4, 49, 128, 9, 17, 0, 0, 0,
+			0, 0, 0, 0, 6, 194, 72, 208, 9, 17, 0, 0, 7, 196, 36, 208, 77, 60, 76, 6, 195, 72, 214, 0, 17, 0, 7, 195, 72, 213,
+			0, 9, 17, 0, 6, 195, 56, 146, 133, 76, 6, 195, 4, 49, 141, 17, 0, 7, 195, 53, 50, 64, 9, 17, 0, 12, 2, 95, 34, 50,
+			6, 35, 84, 39, 72, 0, 102, 14, 2, 95, 34, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 0, 7, 195, 5, 51, 64, 9,
+			17, 14, 2, 95, 39, 6, 35, 48, 39, 89, 47, 140, 39, 83, 0, 0, 19, 2, 95, 38, 47, 6, 44, 81, 6, 39, 84, 122, 76, 49,
+			39, 15, 6, 37, 0, 0, 0, 11, 2, 95, 36, 72, 6, 39, 55, 122, 51, 0, 0, 0, 6, 195, 84, 130, 0, 17, 15, 2, 95, 42,
+			88, 84, 6, 36, 88, 72, 37, 117, 122, 0, 102, 15, 2, 95, 42, 88, 84, 57, 6, 36, 88, 72, 37, 117, 122, 0, 15, 4, 95, 3,
+			1, 16, 49, 6, 35, 48, 138, 47, 122, 55, 0, 0, 24, 2, 95, 41, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 88, 6, 35,
+			81, 140, 35, 72, 122, 0, 0, 5, 194, 80, 160, 24, 5, 194, 76, 192, 24, 6, 194, 72, 224, 9, 17, 23, 2, 95, 40, 6, 39, 47,
+			84, 39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 140, 35, 72, 122, 0, 0, 0, 7, 196, 36, 208, 74, 84, 76, 12, 2, 95, 46, 47,
+			6, 35, 76, 49, 122, 0, 104, 11, 2, 95, 46, 47, 6, 39, 76, 49, 122, 0, 0, 13, 2, 95, 45, 117, 6, 44, 47, 6, 37, 117,
+			122, 0, 11, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 0, 13, 2, 95, 44, 88, 6, 35, 48, 36, 47, 35, 0, 102, 11, 2, 95,
+			44, 88, 6, 35, 51, 36, 88, 0, 0, 7, 195, 53, 36, 192, 24, 17, 9, 2, 95, 51, 47, 140, 6, 37, 0, 0, 9, 2, 95, 50,
+			72, 84, 6, 35, 0, 0, 7, 195, 85, 129, 0, 9, 17, 11, 2, 95, 49, 57, 6, 36, 72, 122, 50, 0, 0, 10, 2, 95, 48, 50,
+			6, 40, 55, 122, 0, 0, 11, 2, 95, 55, 89, 6, 109, 72, 122, 65, 0, 0, 10, 2, 95, 54, 91, 6, 109, 89, 47, 0, 0, 9,
+			2, 95, 53, 48, 6, 109, 47, 0, 0, 12, 2, 95, 52, 76, 6, 109, 47, 138, 51, 138, 0, 0, 18, 2, 95, 59, 47, 6, 35, 76,
+			49, 122, 88, 4, 35, 16, 109, 88, 0, 103, 19, 2, 95, 59, 47, 6, 35, 76, 49, 122, 88, 4, 35, 48, 36, 47, 35, 0, 102, 17,
+			2, 95, 59, 47, 6, 39, 76, 49, 122, 88, 4, 35, 16, 109, 88, 0, 0, 0, 11, 2, 95, 57, 72, 6, 109, 84, 109, 47, 0, 0,
+			10, 2, 95, 56, 6, 39, 89, 122, 65, 0, 0, 7, 195, 73, 22, 64, 9, 17, 13, 2, 95, 63, 6, 40, 48, 37, 47, 50, 138, 49,
+			0, 0, 14, 2, 95, 62, 84, 6, 36, 76, 37, 15, 6, 39, 72, 0, 0, 13, 2, 95, 61, 57, 6, 36, 72, 50, 122, 49, 39, 0,
+			13, 2, 95, 61, 57, 6, 36, 72, 50, 122, 49, 39, 0, 0, 7, 195, 84, 148, 0, 9, 17, 14, 2, 95, 60, 65, 6, 35, 67, 37,
+			15, 6, 39, 72, 0, 0, 0, 0, 0, 8, 2, 95, 64, 36, 47, 0, 102, 19, 2, 95, 64, 47, 6, 44, 81, 6, 39, 84, 122, 76,
+			49, 39, 15, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 72, 32, 64, 17, 7, 195, 60, 112, 192, 9, 17, 7, 195,
+			36, 48, 192, 9, 17, 7, 195, 4, 48, 192, 9, 17, 0, 0, 0, 0, 7, 195, 88, 32, 64, 9, 17, 7, 195, 52, 64, 64, 9, 17,
+			0, 0, 0, 6, 195, 44, 241, 193, 8, 26, 4, 95, 226, 128, 154, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39,
+			72, 50, 138, 49, 0, 0, 7, 195, 60, 113, 192, 9, 17, 7, 195, 5, 49, 128, 9, 17, 7, 195, 4, 49, 192, 9, 17, 30, 4, 95,
+			226, 128, 153, 57, 6, 36, 72, 50, 39, 89, 47, 140, 6, 40, 49, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 26, 4,
+			95, 226, 128, 152, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 13, 4, 95, 4, 15, 20,
+			47, 6, 39, 76, 49, 122, 0, 0, 0, 27, 4, 95, 226, 128, 158, 88, 122, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39,
+			72, 50, 138, 49, 0, 102, 26, 4, 95, 226, 128, 158, 89, 48, 6, 40, 91, 47, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138,
+			49, 0, 0, 7, 195, 88, 33, 64, 9, 17, 7, 195, 52, 65, 64, 9, 17, 24, 2, 95, 91, 6, 39, 47, 84, 39, 51, 36, 50, 122,
+			15, 6, 40, 81, 55, 122, 89, 47, 122, 0, 102, 22, 2, 95, 91, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 6, 40, 81, 55, 122,
+			47, 122, 0, 27, 4, 95, 226, 128, 157, 88, 6, 35, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0,
+			0, 26, 4, 95, 226, 128, 156, 6, 39, 47, 84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 15, 4,
+			95, 226, 128, 147, 109, 50, 15, 117, 6, 44, 47, 122, 0, 0, 0, 7, 195, 56, 162, 64, 9, 17, 10, 2, 95, 95, 117, 6, 44, 47,
+			122, 0, 0, 0, 25, 2, 95, 93, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 6, 40, 81, 55, 122, 89, 47, 122, 0, 102, 23,
+			2, 95, 93, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 6, 40, 81, 55, 122, 47, 122, 0, 0, 6, 195, 4, 49, 205, 17, 0,
+			7, 195, 36, 194, 64, 72, 8, 6, 195, 4, 194, 64, 8, 7, 195, 52, 66, 64, 9, 17, 6, 195, 24, 34, 64, 17, 0, 15, 4, 95,
+			226, 128, 148, 109, 65, 15, 117, 6, 44, 47, 122, 0, 0, 0, 12, 2, 95, 96, 81, 140, 6, 35, 84, 37, 89, 0, 0, 7, 195, 36,
+			67, 64, 9, 17, 7, 195, 20, 195, 64, 9, 17, 7, 195, 5, 51, 128, 9, 17, 0, 0, 0, 0, 6, 195, 8, 147, 192, 72, 7, 195,
+			4, 195, 64, 9, 17, 0, 7, 196, 56, 148, 193, 52, 76, 0, 0, 16, 4, 95, 7, 18, 22, 50, 6, 35, 81, 55, 122, 89, 122, 49,
+			0, 0, 7, 195, 36, 52, 192, 9, 17, 0, 0, 0, 0, 7, 195, 85, 52, 128, 9, 17, 7, 195, 20, 52, 192, 9, 17, 0, 0, 0,
+			6, 195, 56, 148, 201, 76, 0, 7, 195, 72, 21, 192, 9, 17, 7, 195, 4, 53, 192, 9, 17, 26, 4, 95, 226, 128, 185, 6, 39, 47,
+			84, 39, 51, 36, 50, 37, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 0, 0, 25, 2, 95, 123, 6, 39, 47, 84, 39,
+			51, 36, 50, 122, 15, 84, 6, 37, 47, 37, 76, 122, 89, 47, 122, 0, 14, 4, 95, 4, 9, 1, 6, 40, 65, 55, 122, 139, 47, 0,
+			0, 0, 0, 0, 0, 0, 26, 2, 95, 125, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 84, 6, 37, 47, 37, 76, 122, 89, 47,
+			122, 0, 0, 15, 2, 95, 124, 6, 40, 89, 48, 51, 122, 84, 50, 122, 0, 102, 13, 2, 95, 124, 6, 39, 49, 39, 65, 37, 117, 122,
+			0, 0, 0, 0, 0, 6, 194, 101, 80, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 36, 64, 128, 9, 17, 7, 195, 5,
+			48, 192, 9, 17, 0, 0, 0, 0, 7, 195, 57, 32, 64, 9, 17, 7, 195, 21, 48, 192, 9, 17, 0, 0, 0, 0, 7, 195, 13, 1,
+			64, 9, 17, 0, 0, 0, 0, 7, 195, 84, 65, 128, 9, 17, 7, 195, 57, 33, 64, 9, 17, 0, 0, 0, 0, 0, 0, 0, 6, 195,
+			56, 148, 213, 76, 0, 7, 195, 57, 34, 64, 9, 17, 0, 0, 0, 5, 194, 97, 144, 17, 0, 7, 195, 4, 67, 128, 9, 17, 0, 21,
+			5, 95, 49, 77, 65, 49, 57, 36, 72, 50, 122, 15, 107, 37, 61, 122, 72, 122, 0, 102, 0, 0, 0, 7, 195, 57, 35, 64, 9, 17,
+			6, 195, 25, 35, 64, 17, 0, 0, 0, 0, 7, 195, 37, 52, 192, 9, 17, 0, 0, 0, 0, 6, 195, 88, 36, 128, 17, 7, 195, 85,
+			52, 192, 9, 17, 7, 195, 57, 36, 64, 9, 17, 0, 0, 0, 0, 7, 195, 13, 5, 64, 9, 17, 0, 0, 0, 0, 7, 195, 57, 37,
+			64, 9, 17, 0, 0, 0, 0, 0, 0, 0, 16, 70, 12, 243, 148, 72, 243, 0, 117, 39, 50, 47, 51, 125, 55, 0, 0, 0, 7, 196,
+			56, 148, 205, 60, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 36, 64, 192, 9, 17, 0, 0, 0, 0, 15, 67, 64,
+			245, 24, 48, 6, 39, 47, 15, 6, 37, 49, 89, 0, 6, 195, 36, 208, 64, 76, 7, 195, 57, 32, 128, 9, 17, 0, 0, 0, 0, 6,
+			195, 9, 33, 128, 17, 7, 195, 5, 65, 128, 9, 17, 0, 0, 0, 0, 13, 67, 85, 65, 128, 40, 15, 47, 36, 15, 36, 83, 0, 7,
+			195, 57, 33, 128, 9, 17, 7, 195, 4, 193, 192, 9, 17, 0, 0, 0, 0, 7, 195, 64, 114, 64, 9, 17, 0, 0, 0, 0, 7, 195,
+			36, 194, 192, 9, 17, 0, 0, 0, 6, 195, 36, 208, 77, 76, 0, 6, 195, 76, 19, 64, 72, 7, 195, 28, 131, 192, 9, 17, 0, 0,
+			0, 0, 0, 0, 8, 3, 4, 197, 190, 75, 13, 0, 0, 0, 6, 195, 41, 36, 128, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 4, 68, 204, 17, 0, 0, 0, 0, 7, 195, 37, 70, 128, 9, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			196, 135, 0, 3, 78, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 145, 0, 3, 77, 0, 7, 6, 197, 161, 0, 3, 91, 0,
+			7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 3, 35, 0, 4, 2, 106, 3, 137, 0, 2, 114, 0, 7, 6, 98, 0, 3, 71,
+			0, 7, 6, 99, 0, 3, 117, 0, 7, 6, 100, 0, 3, 72, 0, 197, 190, 3, 75, 0, 122, 3, 118, 0, 7, 6, 101, 0, 120, 101,
+			5, 2, 8, 3, 2, 36, 37, 49, 89, 36, 0, 120, 101, 8, 3, 2, 36, 49, 89, 36, 0, 4, 1, 106, 3, 36, 0, 2, 106, 0,
+			3, 109, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 8, 3, 101, 0, 3, 107, 0, 7, 6,
+			105, 0, 110, 105, 1, 32, 46, 3, 2, 37, 50, 37, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0, 1, 17, 65, 29, 2, 32, 3,
+			57, 10, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3, 45, 0, 3, 55, 0, 106, 1, 118, 3, 55, 57,
+			0, 106, 2, 12, 3, 61, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 106, 3, 67, 0, 4, 2, 103, 3, 68,
+			0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 129, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117,
+			5, 2, 3, 49, 40, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 4, 3, 51, 0, 1, 17, 65, 2, 17, 65, 0, 2, 32, 0, 114,
+			0, 1, 25, 2, 25, 3, 52, 0, 1, 25, 2, 17, 65, 3, 140, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0,
+			7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7,
+			6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 206, 0, 177, 3, 6, 35, 55, 83,
+			122, 0, 172, 3, 6, 35, 55, 83, 122, 15, 47, 6, 39, 50, 39, 89, 0, 183, 3, 6, 36, 47, 122, 0, 174, 3, 6, 36, 47, 122,
+			15, 47, 6, 39, 50, 39, 89, 0, 181, 3, 6, 36, 48, 89, 138, 55, 39, 50, 0, 173, 3, 6, 36, 48, 89, 138, 55, 39, 50, 15,
+			47, 6, 39, 50, 39, 89, 0, 191, 3, 6, 39, 65, 138, 49, 140, 39, 50, 10, 0, 184, 3, 47, 101, 6, 36, 47, 122, 0, 186, 3,
+			49, 6, 35, 48, 122, 0, 190, 3, 49, 89, 6, 37, 0, 189, 3, 50, 6, 37, 0, 187, 3, 55, 6, 35, 65, 72, 122, 0, 185, 3,
+			57, 6, 39, 47, 122, 0, 175, 3, 57, 6, 39, 47, 122, 15, 47, 6, 39, 50, 39, 89, 0, 188, 3, 65, 6, 37, 0, 178, 3, 71,
+			6, 36, 47, 122, 0, 180, 3, 72, 6, 36, 55, 47, 122, 0, 179, 3, 81, 6, 35, 65, 122, 0, 182, 3, 88, 6, 36, 47, 122, 0,
+			7, 6, 207, 0, 137, 3, 6, 39, 65, 36, 81, 122, 0, 142, 3, 6, 39, 65, 36, 81, 122, 15, 47, 6, 39, 50, 39, 89, 0, 140,
+			3, 6, 39, 65, 138, 49, 140, 39, 50, 15, 47, 6, 39, 50, 39, 89, 0, 132, 3, 47, 6, 35, 40, 0, 128, 3, 48, 6, 37, 0,
+			136, 3, 48, 89, 6, 37, 0, 129, 3, 51, 6, 39, 0, 141, 3, 81, 44, 76, 49, 37, 15, 6, 37, 48, 89, 138, 55, 39, 50, 15,
+			47, 6, 39, 50, 39, 89, 0, 133, 3, 81, 44, 76, 49, 37, 23, 6, 37, 48, 89, 138, 55, 39, 50, 0, 130, 3, 81, 44, 76, 49,
+			39, 23, 88, 6, 35, 84, 44, 91, 50, 39, 23, 89, 6, 37, 81, 65, 122, 0, 134, 3, 83, 6, 37, 0, 131, 3, 89, 6, 37, 81,
+			65, 122, 0, 135, 3, 101, 6, 37, 0, 7, 6, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2,
+			32, 15, 0, 4, 195, 159, 3, 21, 100, 101, 0, 195, 164, 0, 195, 182, 0, 195, 188, 0, 45, 8, 32, 2, 32, 15, 3, 65, 37, 50,
+			40, 89, 0, 36, 3, 72, 6, 39, 55, 122, 51, 0, 195, 173, 3, 121, 0, 195, 169, 3, 123, 0, 195, 161, 3, 124, 0, 195, 179, 3,
+			125, 0, 195, 186, 3, 126, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts22 = FileInMemory_createWithData (7359, reinterpret_cast<const char *> (&espeakdata_dicts22_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/hbs_dict", 
 			U"hbs");
-		my addItem_move (espeakdata_dicts26.move());
+		Collection_addItem (me.peek(), espeakdata_dicts22.transfer());
 
-		static unsigned char espeakdata_dicts27_data[8607] = {
-			0, 4, 0, 0, 46, 25, 0, 0, 0, 0, 34, 21, 224, 164, 173, 224, 164, 190, 224, 164, 136, 224, 164, 154, 224, 164, 190, 224, 164, 176,
-			224, 164, 190, 71, 107, 118, 37, 6, 80, 107, 118, 34, 118, 0, 0, 30, 18, 224, 164, 157, 224, 165, 139, 224, 164, 178, 224, 164, 157, 224,
-			164, 190, 224, 164, 178, 79, 107, 39, 6, 55, 79, 107, 118, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 21,
-			224, 164, 182, 224, 165, 141, 224, 164, 176, 224, 164, 174, 224, 164, 166, 224, 164, 190, 224, 164, 168, 91, 34, 35, 65, 6, 72, 118, 50, 0,
-			0, 0, 0, 0, 17, 4, 95, 100, 112, 116, 10, 72, 13, 89, 13, 65, 55, 6, 119, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 36, 72, 121, 55, 13, 34, 0, 0, 12, 1, 37, 48, 109, 47, 6, 113, 91, 13, 47, 0,
-			0, 0, 0, 0, 0, 3, 129, 42, 13, 1, 42, 47, 118, 34, 6, 118, 68, 49, 13, 50, 0, 0, 8, 1, 43, 48, 55, 109, 89, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 61, 71, 109, 34, 6, 118, 71, 13, 34, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 164, 149, 224, 165, 128, 72, 0,
-			15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 165, 139, 72, 0, 0, 12, 137, 224, 164, 176, 224, 164, 185, 224, 165, 128, 72, 9,
-			134, 224, 164, 175, 224, 165, 135, 72, 9, 134, 224, 164, 175, 224, 165, 135, 72, 0, 0, 0, 15, 140, 224, 164, 137, 224, 164, 168, 224, 164,
-			149, 224, 165, 128, 72, 15, 140, 224, 164, 137, 224, 164, 184, 224, 164, 149, 224, 165, 128, 72, 15, 140, 224, 164, 134, 224, 164, 170, 224, 164,
-			149, 224, 165, 128, 72, 0, 9, 134, 224, 164, 149, 224, 165, 135, 72, 9, 134, 224, 164, 181, 224, 165, 135, 72, 0, 0, 0, 12, 137, 224,
-			164, 176, 224, 164, 185, 224, 165, 135, 72, 0, 9, 134, 224, 164, 149, 224, 165, 139, 72, 9, 134, 224, 164, 181, 224, 165, 139, 72, 9, 134,
-			224, 164, 181, 224, 165, 139, 72, 0, 0, 15, 140, 224, 164, 137, 224, 164, 168, 224, 164, 149, 224, 165, 135, 72, 15, 140, 224, 164, 137, 224,
-			164, 184, 224, 164, 149, 224, 165, 135, 72, 15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 165, 135, 72, 15, 140, 224, 164, 174, 224,
-			165, 129, 224, 164, 157, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 164, 185, 224, 165, 136, 72, 0,
-			0, 0, 9, 134, 224, 164, 185, 224, 165, 139, 72, 0, 0, 0, 0, 0, 0, 16, 9, 224, 164, 174, 224, 165, 135, 224, 164, 130, 65, 126,
-			12, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 164, 135, 224, 164, 168, 224, 165, 141, 224, 164, 185, 224, 165, 135, 224,
-			164, 130, 72, 0, 0, 0, 15, 140, 224, 164, 164, 224, 165, 129, 224, 164, 157, 224, 165, 135, 72, 24, 149, 224, 164, 164, 224, 165, 129, 224,
-			164, 174, 224, 165, 141, 224, 164, 185, 224, 165, 135, 224, 164, 130, 72, 0, 0, 12, 137, 224, 164, 174, 224, 164, 151, 224, 164, 176, 8, 0,
-			11, 6, 224, 164, 151, 224, 164, 188, 100, 13, 0, 0, 9, 134, 224, 164, 181, 224, 164, 185, 72, 0, 39, 24, 224, 164, 168, 224, 165, 140,
-			224, 164, 149, 224, 164, 176, 224, 164, 182, 224, 164, 190, 224, 164, 185, 224, 165, 128, 50, 35, 40, 6, 49, 35, 34, 6, 91, 118, 107, 113,
-			0, 0, 0, 11, 6, 224, 164, 149, 224, 164, 188, 104, 13, 0, 0, 0, 9, 134, 224, 164, 149, 224, 164, 190, 72, 0, 0, 0, 0, 38,
-			24, 224, 164, 174, 224, 165, 130, 224, 164, 178, 224, 164, 174, 224, 164, 130, 224, 164, 164, 224, 165, 141, 224, 164, 176, 65, 40, 55, 6, 65,
-			35, 50, 6, 47, 34, 35, 0, 0, 33, 21, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 184, 224, 164, 190, 224, 164, 151, 224, 164,
-			176, 65, 35, 107, 118, 89, 118, 81, 35, 34, 0, 0, 15, 140, 224, 164, 137, 224, 164, 168, 224, 164, 149, 224, 164, 190, 72, 15, 140, 224,
-			164, 137, 224, 164, 184, 224, 164, 149, 224, 164, 190, 72, 15, 140, 224, 164, 135, 224, 164, 168, 224, 164, 149, 224, 164, 190, 72, 15, 140, 224,
-			164, 135, 224, 164, 184, 224, 164, 149, 224, 164, 190, 72, 0, 0, 0, 0, 47, 30, 224, 164, 133, 224, 164, 130, 224, 164, 156, 224, 164, 168,
-			224, 165, 128, 224, 164, 170, 224, 165, 129, 224, 164, 164, 224, 165, 141, 224, 164, 176, 35, 50, 57, 35, 50, 6, 113, 48, 40, 47, 12, 6,
-			34, 35, 0, 11, 6, 224, 164, 171, 224, 164, 188, 83, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 140, 224, 164, 149, 224, 165, 141,
-			224, 164, 175, 224, 164, 190, 72, 8, 0, 12, 137, 224, 164, 176, 224, 164, 185, 224, 164, 190, 72, 0, 36, 24, 224, 164, 173, 224, 165, 130,
-			224, 164, 164, 224, 164, 170, 224, 165, 141, 224, 164, 176, 224, 165, 135, 224, 164, 164, 71, 107, 40, 47, 6, 48, 34, 36, 47, 0, 0, 0,
-			15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 164, 190, 72, 0, 0, 0, 0, 0, 0, 31, 21, 224, 164, 149, 224, 165, 141, 224,
-			164, 176, 224, 164, 191, 224, 164, 149, 224, 165, 135, 224, 164, 159, 49, 34, 6, 113, 49, 113, 47, 0, 0, 0, 0, 9, 134, 224, 164, 175,
-			224, 164, 185, 72, 0, 0, 34, 21, 224, 164, 149, 224, 164, 190, 224, 164, 178, 224, 164, 154, 224, 164, 149, 224, 165, 141, 224, 164, 176, 49,
-			118, 55, 6, 80, 35, 49, 6, 34, 35, 0, 0, 0, 0, 29, 18, 224, 164, 176, 224, 164, 190, 224, 164, 182, 224, 165, 128, 224, 164, 171,
-			224, 164, 178, 34, 118, 91, 37, 6, 83, 35, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 164, 161, 224, 164, 188,
-			70, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 18, 224, 164, 174, 224, 164, 185, 224, 164,
-			190, 224, 164, 166, 224, 165, 135, 224, 164, 181, 65, 35, 107, 118, 6, 72, 36, 84, 0, 0, 9, 134, 224, 164, 185, 224, 164, 174, 72, 0,
-			0, 0, 12, 137, 224, 164, 164, 224, 165, 129, 224, 164, 174, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 38, 24, 224, 164, 176, 224, 164, 190, 224, 164, 174, 224, 164, 176, 224, 164, 190, 224, 164, 156, 224, 165, 141,
-			224, 165, 159, 34, 118, 65, 12, 34, 118, 79, 6, 79, 57, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 51, 57, 122,
-			50, 47, 6, 118, 55, 37, 89, 0, 12, 3, 95, 50, 49, 113, 49, 12, 6, 37, 89, 0, 0, 12, 3, 95, 51, 56, 6, 109, 34, 47,
-			37, 89, 0, 10, 3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11, 3, 95, 50, 51, 47, 6, 114, 37, 89, 0, 0, 11, 3, 95, 50,
-			50, 71, 6, 118, 37, 89, 0, 0, 13, 3, 95, 50, 53, 48, 6, 109, 80, 12, 37, 89, 0, 0, 12, 3, 95, 50, 52, 80, 6, 120,
-			71, 37, 89, 0, 0, 14, 3, 95, 50, 55, 89, 13, 47, 12, 6, 118, 37, 89, 0, 0, 13, 3, 95, 50, 54, 143, 109, 71, 71, 6,
-			37, 89, 0, 0, 13, 3, 95, 51, 49, 113, 49, 13, 47, 6, 37, 89, 0, 0, 10, 3, 95, 51, 48, 47, 6, 112, 89, 0, 0, 12,
-			3, 95, 51, 51, 47, 6, 127, 47, 37, 89, 0, 0, 13, 3, 95, 51, 50, 71, 6, 35, 47, 12, 37, 89, 0, 0, 9, 134, 224, 164,
-			165, 224, 165, 128, 72, 12, 3, 95, 51, 53, 48, 6, 127, 47, 37, 89, 0, 0, 12, 3, 95, 51, 52, 80, 6, 130, 47, 37, 89, 0,
-			0, 12, 3, 95, 51, 55, 89, 6, 127, 47, 37, 89, 0, 0, 13, 3, 95, 51, 54, 143, 6, 109, 47, 12, 37, 89, 0, 0, 0, 9,
-			134, 224, 164, 165, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 55, 57, 122, 50,
-			6, 118, 89, 37, 0, 12, 3, 95, 54, 49, 6, 113, 49, 89, 109, 141, 0, 0, 9, 3, 224, 165, 140, 147, 135, 0, 103, 8, 3, 224,
-			165, 140, 147, 120, 0, 15, 3, 95, 55, 56, 109, 47, 108, 6, 109, 47, 12, 109, 34, 0, 10, 3, 95, 54, 48, 89, 6, 118, 141, 0,
-			0, 9, 3, 95, 48, 67, 89, 6, 120, 0, 14, 3, 95, 54, 51, 47, 6, 113, 34, 114, 89, 109, 141, 0, 0, 12, 3, 95, 54, 50,
-			71, 6, 118, 89, 109, 141, 0, 0, 8, 3, 224, 165, 137, 18, 121, 0, 12, 3, 95, 54, 53, 48, 6, 127, 89, 109, 141, 0, 0, 9,
-			3, 224, 165, 136, 147, 134, 0, 102, 8, 3, 224, 165, 136, 147, 115, 0, 12, 3, 95, 54, 52, 80, 6, 130, 89, 109, 141, 0, 0, 8,
-			3, 224, 165, 139, 147, 119, 0, 13, 3, 95, 54, 55, 89, 6, 109, 70, 89, 109, 141, 0, 0, 8, 3, 224, 165, 138, 18, 39, 0, 14,
-			3, 95, 54, 54, 143, 113, 57, 6, 118, 89, 109, 141, 0, 0, 8, 3, 224, 165, 133, 18, 116, 0, 15, 3, 95, 55, 49, 6, 113, 49,
-			108, 109, 47, 12, 109, 34, 0, 0, 9, 3, 224, 165, 132, 18, 34, 113, 0, 13, 3, 95, 55, 48, 89, 6, 109, 47, 12, 109, 34, 0,
-			0, 8, 3, 224, 165, 135, 147, 114, 0, 15, 3, 95, 55, 51, 47, 6, 113, 107, 109, 47, 12, 109, 34, 0, 0, 8, 3, 224, 165, 134,
-			18, 36, 0, 15, 3, 95, 55, 50, 6, 71, 109, 107, 109, 47, 12, 109, 34, 0, 0, 8, 3, 224, 165, 129, 18, 122, 0, 16, 3, 95,
-			55, 53, 48, 109, 80, 108, 6, 109, 47, 12, 109, 34, 0, 0, 8, 3, 224, 165, 128, 147, 112, 0, 15, 3, 95, 55, 52, 80, 120, 108,
-			6, 109, 47, 12, 109, 34, 0, 0, 9, 3, 224, 165, 131, 18, 34, 113, 0, 16, 3, 95, 55, 55, 89, 109, 47, 108, 6, 109, 47, 12,
-			109, 34, 0, 0, 8, 3, 224, 165, 130, 147, 123, 0, 15, 3, 95, 55, 54, 143, 113, 108, 6, 109, 47, 12, 109, 34, 0, 0, 12, 3,
-			95, 49, 57, 122, 50, 50, 6, 113, 89, 0, 0, 13, 3, 95, 49, 56, 109, 141, 6, 118, 34, 109, 108, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 3, 95, 50, 57, 6, 122, 50, 47, 37, 89, 0, 13, 3, 95, 49, 49, 81, 57, 6, 118, 16, 109, 108, 0, 0, 13, 3, 95,
-			50, 56, 35, 25, 12, 6, 118, 37, 89, 0, 10, 3, 95, 49, 48, 72, 6, 109, 89, 0, 0, 12, 3, 95, 49, 51, 47, 6, 114, 34,
-			109, 108, 0, 0, 12, 3, 95, 49, 50, 71, 6, 118, 34, 109, 108, 0, 0, 15, 4, 95, 99, 121, 114, 89, 113, 34, 113, 49, 6, 113,
-			49, 0, 14, 3, 95, 49, 53, 48, 6, 109, 50, 72, 34, 109, 108, 0, 0, 12, 3, 95, 49, 52, 80, 6, 120, 72, 109, 108, 0, 0,
-			12, 3, 95, 49, 55, 89, 109, 47, 34, 109, 107, 0, 0, 12, 3, 95, 49, 54, 89, 6, 119, 55, 109, 108, 0, 0, 8, 3, 224, 164,
-			165, 25, 13, 0, 0, 8, 3, 224, 164, 164, 47, 13, 0, 0, 36, 24, 224, 164, 172, 224, 165, 136, 224, 164, 178, 224, 164, 151, 224, 164,
-			190, 224, 164, 161, 224, 164, 188, 224, 165, 128, 71, 115, 36, 55, 6, 81, 118, 34, 113, 0, 35, 24, 224, 164, 176, 224, 165, 135, 224, 164,
-			178, 224, 164, 151, 224, 164, 190, 224, 164, 161, 224, 164, 188, 224, 165, 128, 34, 36, 55, 6, 81, 118, 34, 113, 0, 9, 134, 224, 164, 165,
-			224, 164, 190, 72, 8, 3, 224, 164, 167, 138, 13, 0, 0, 8, 3, 224, 164, 166, 72, 13, 0, 0, 8, 3, 224, 164, 161, 140, 13, 0,
-			0, 8, 3, 224, 164, 160, 141, 13, 0, 0, 8, 3, 224, 164, 163, 66, 13, 0, 0, 8, 3, 224, 164, 162, 142, 13, 0, 0, 8, 3,
-			224, 164, 157, 144, 13, 0, 12, 3, 95, 52, 57, 6, 122, 50, 80, 118, 89, 0, 0, 11, 3, 224, 165, 164, 72, 109, 66, 140, 109, 0,
-			8, 3, 224, 164, 156, 79, 13, 0, 14, 3, 95, 52, 56, 109, 34, 47, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 164, 159, 139, 13,
-			0, 0, 8, 3, 224, 164, 158, 67, 13, 0, 0, 8, 3, 224, 164, 153, 68, 13, 0, 0, 8, 3, 224, 164, 152, 146, 13, 0, 0, 9,
-			3, 224, 165, 163, 147, 45, 12, 0, 8, 3, 224, 164, 155, 143, 13, 0, 0, 8, 3, 224, 165, 162, 18, 45, 0, 8, 3, 224, 164, 154,
-			80, 13, 0, 0, 9, 3, 224, 165, 157, 107, 34, 13, 0, 8, 3, 224, 164, 149, 49, 13, 0, 12, 3, 95, 53, 57, 6, 122, 50, 89,
-			109, 141, 0, 14, 3, 95, 52, 49, 113, 49, 47, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 156, 44, 13, 0, 14, 3, 95, 53,
-			56, 35, 141, 12, 6, 118, 58, 13, 50, 0, 12, 3, 95, 52, 48, 80, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 159, 57, 13,
-			0, 8, 3, 224, 164, 151, 81, 13, 0, 14, 3, 95, 52, 51, 47, 127, 47, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 158, 83,
-			13, 0, 8, 3, 224, 164, 150, 145, 13, 0, 13, 3, 95, 52, 50, 71, 134, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 153, 101,
-			13, 0, 15, 3, 95, 52, 53, 48, 134, 50, 47, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 152, 104, 13, 0, 14, 3, 95, 52,
-			52, 80, 120, 84, 6, 118, 55, 37, 89, 0, 0, 8, 3, 224, 165, 155, 88, 13, 0, 14, 3, 95, 52, 55, 89, 127, 47, 6, 118, 55,
-			37, 89, 0, 0, 13, 137, 224, 164, 133, 224, 164, 151, 224, 164, 176, 72, 8, 8, 3, 224, 165, 154, 100, 13, 0, 14, 3, 95, 52, 54,
-			143, 113, 57, 6, 118, 55, 37, 89, 0, 0, 15, 3, 95, 54, 57, 6, 122, 50, 109, 107, 47, 12, 109, 34, 0, 14, 3, 95, 53, 49,
-			113, 49, 57, 6, 118, 58, 109, 50, 0, 0, 11, 3, 95, 54, 56, 109, 70, 89, 109, 141, 0, 12, 3, 95, 53, 48, 48, 109, 80, 6,
-			118, 89, 0, 0, 14, 3, 95, 53, 51, 47, 6, 113, 34, 114, 48, 109, 50, 0, 0, 12, 3, 95, 53, 50, 71, 6, 118, 58, 109, 50,
-			0, 0, 13, 3, 95, 53, 53, 48, 6, 109, 80, 48, 109, 50, 0, 0, 9, 3, 224, 165, 144, 18, 131, 65, 0, 12, 3, 95, 53, 52,
-			80, 6, 120, 58, 109, 50, 0, 0, 14, 3, 95, 53, 55, 89, 109, 47, 6, 118, 58, 13, 50, 0, 0, 32, 21, 224, 164, 149, 224, 165,
-			129, 224, 164, 178, 224, 164, 166, 224, 165, 135, 224, 164, 181, 224, 165, 128, 49, 40, 55, 6, 72, 36, 84, 37, 0, 13, 3, 95, 53, 54,
-			143, 6, 109, 48, 12, 109, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 63, 63, 109, 49, 93, 13, 34, 0, 0, 0, 13, 3,
-			95, 56, 57, 50, 109, 58, 6, 118, 89, 37, 0, 0, 13, 3, 95, 56, 56, 35, 25, 12, 6, 118, 89, 37, 0, 0, 8, 3, 224, 164,
-			191, 18, 113, 0, 0, 8, 3, 224, 164, 190, 147, 118, 0, 0, 8, 3, 224, 164, 185, 108, 13, 0, 0, 8, 3, 224, 164, 184, 89, 13,
-			0, 0, 0, 0, 8, 3, 224, 164, 181, 84, 13, 0, 16, 3, 95, 57, 57, 50, 113, 67, 57, 6, 118, 50, 13, 71, 114, 0, 13, 3,
-			95, 56, 49, 113, 49, 57, 6, 118, 89, 37, 0, 0, 15, 3, 95, 57, 56, 109, 25, 12, 6, 118, 50, 13, 71, 114, 0, 11, 3, 95,
-			56, 48, 6, 109, 89, 89, 112, 0, 0, 8, 3, 224, 164, 183, 93, 13, 0, 13, 3, 95, 56, 51, 47, 113, 34, 6, 118, 89, 37, 0,
-			0, 8, 3, 224, 164, 182, 91, 13, 0, 13, 3, 95, 56, 50, 71, 109, 57, 6, 118, 89, 37, 0, 0, 8, 3, 224, 164, 177, 34, 13,
-			0, 13, 3, 95, 56, 53, 48, 109, 80, 6, 118, 89, 37, 0, 0, 8, 3, 224, 164, 176, 34, 13, 0, 13, 3, 95, 56, 52, 80, 120,
-			34, 6, 118, 89, 37, 0, 0, 8, 3, 224, 164, 179, 62, 13, 0, 14, 3, 95, 56, 55, 89, 109, 47, 12, 6, 118, 89, 37, 0, 0,
-			8, 3, 224, 164, 178, 55, 13, 0, 13, 3, 95, 56, 54, 143, 113, 57, 6, 118, 89, 37, 0, 0, 8, 3, 224, 164, 173, 137, 13, 0,
-			16, 3, 95, 57, 49, 113, 49, 12, 57, 6, 118, 50, 13, 71, 114, 0, 0, 8, 3, 224, 164, 172, 71, 13, 0, 12, 3, 95, 57, 48,
-			50, 6, 109, 71, 12, 114, 0, 0, 10, 3, 224, 164, 175, 57, 13, 0, 72, 8, 8, 3, 224, 164, 175, 57, 13, 0, 15, 3, 95, 57,
-			51, 47, 113, 34, 6, 118, 50, 13, 71, 114, 0, 0, 8, 3, 224, 164, 174, 65, 13, 0, 13, 3, 95, 57, 50, 71, 6, 118, 50, 13,
-			71, 114, 0, 0, 16, 3, 95, 57, 53, 48, 109, 50, 80, 6, 118, 50, 13, 71, 114, 0, 0, 8, 3, 224, 164, 168, 50, 13, 0, 15,
-			3, 95, 57, 52, 80, 120, 34, 6, 118, 65, 13, 71, 114, 0, 0, 8, 3, 224, 164, 171, 136, 13, 0, 16, 3, 95, 57, 55, 89, 109,
-			47, 12, 6, 118, 50, 13, 71, 114, 0, 0, 8, 3, 224, 164, 170, 48, 13, 0, 15, 3, 95, 57, 54, 143, 113, 57, 6, 118, 50, 13,
-			71, 114, 0, 0, 0, 0, 0, 0, 0, 25, 15, 224, 164, 174, 224, 164, 164, 224, 164, 166, 224, 164, 190, 224, 164, 168, 65, 35, 47, 6,
-			72, 118, 50, 0, 0, 0, 0, 0, 0, 0, 32, 21, 224, 164, 176, 224, 164, 149, 224, 165, 141, 224, 164, 164, 224, 164, 166, 224, 164, 190,
-			224, 164, 168, 34, 35, 49, 6, 47, 72, 118, 50, 0, 0, 0, 0, 37, 24, 224, 164, 168, 224, 165, 135, 224, 164, 164, 224, 165, 141, 224,
-			164, 176, 224, 164, 166, 224, 164, 190, 224, 164, 168, 50, 36, 47, 6, 34, 35, 6, 72, 118, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			46, 30, 224, 164, 154, 224, 164, 166, 224, 165, 141, 224, 164, 176, 224, 164, 149, 224, 164, 190, 224, 164, 168, 224, 165, 141, 224, 164, 164, 224,
-			164, 190, 80, 35, 50, 6, 72, 34, 35, 6, 49, 118, 50, 47, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
-			18, 224, 164, 170, 224, 164, 164, 224, 165, 128, 224, 164, 166, 224, 165, 135, 224, 164, 181, 48, 35, 47, 37, 6, 72, 36, 84, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 6, 109,
-			34, 109, 71, 0, 0, 13, 4, 95, 48, 77, 53, 145, 6, 109, 34, 109, 71, 0, 0, 11, 4, 95, 48, 77, 50, 55, 6, 118, 145, 0,
-			0, 14, 4, 95, 48, 77, 51, 49, 13, 34, 6, 119, 70, 109, 0, 0, 0, 13, 4, 95, 48, 77, 49, 107, 6, 109, 79, 118, 34, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 164, 185, 224, 165, 136, 224, 164, 130, 72, 0, 0,
-			0, 0, 0, 9, 134, 224, 164, 164, 224, 165, 130, 72, 0, 0, 0, 0, 0, 0, 18, 143, 224, 164, 137, 224, 164, 184, 224, 165, 141, 224,
-			164, 184, 224, 165, 135, 72, 18, 143, 224, 164, 135, 224, 164, 184, 224, 165, 141, 224, 164, 184, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 27, 152, 224, 164, 164, 224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 165, 135, 72,
-			0, 0, 0, 0, 0, 27, 152, 224, 164, 164, 224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 165,
-			128, 72, 0, 0, 0, 0, 0, 0, 12, 137, 224, 164, 185, 224, 165, 130, 224, 164, 129, 72, 0, 12, 137, 224, 164, 165, 224, 165, 128, 224,
-			164, 130, 72, 12, 137, 224, 164, 174, 224, 165, 136, 224, 164, 130, 72, 0, 0, 9, 134, 224, 164, 184, 224, 165, 135, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 134, 224, 164, 164, 224, 164, 149, 72, 0, 0, 0, 18, 143, 224, 164, 133, 224, 164, 151, 224, 164, 176, 224,
-			164, 154, 224, 165, 135, 8, 0, 0, 0, 0, 0, 0, 0, 32, 21, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 164, 190,
-			224, 164, 168, 224, 165, 128, 65, 35, 107, 118, 34, 118, 50, 37, 0, 0, 11, 6, 224, 164, 150, 224, 164, 188, 101, 13, 0, 0, 0, 0,
-			44, 30, 224, 164, 176, 224, 164, 191, 224, 164, 182, 224, 165, 141, 224, 164, 164, 224, 165, 135, 224, 164, 168, 224, 164, 190, 224, 164, 164, 224,
-			165, 135, 34, 37, 89, 6, 47, 36, 6, 50, 118, 47, 36, 0, 0, 0, 0, 47, 30, 224, 165, 159, 224, 165, 129, 224, 164, 152, 224, 165,
-			141, 224, 164, 166, 224, 164, 181, 224, 164, 191, 224, 164, 176, 224, 164, 190, 224, 164, 174, 57, 12, 40, 6, 72, 107, 12, 6, 84, 37, 6,
-			34, 118, 65, 0, 0, 37, 24, 224, 164, 151, 224, 165, 129, 224, 164, 176, 224, 165, 129, 224, 164, 168, 224, 164, 190, 224, 164, 168, 224, 164,
-			149, 81, 40, 34, 40, 6, 50, 118, 50, 35, 49, 0, 0, 0, 0, 29, 18, 224, 164, 156, 224, 165, 159, 224, 164, 174, 224, 164, 190, 224,
-			164, 178, 224, 164, 190, 79, 35, 57, 6, 65, 118, 55, 118, 0, 29, 18, 224, 164, 181, 224, 164, 176, 224, 164, 174, 224, 164, 190, 224, 164,
-			178, 224, 164, 190, 84, 35, 6, 51, 65, 118, 55, 118, 0, 0, 0, 47, 30, 224, 164, 154, 224, 164, 168, 224, 165, 141, 224, 164, 166, 224,
-			165, 141, 224, 164, 176, 224, 164, 182, 224, 165, 135, 224, 164, 150, 224, 164, 176, 80, 35, 50, 6, 72, 34, 35, 6, 91, 36, 49, 107, 35,
-			34, 0, 37, 24, 224, 164, 170, 224, 164, 190, 224, 164, 178, 224, 164, 168, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 164, 190, 48, 118,
-			55, 35, 50, 6, 107, 118, 34, 118, 0, 27, 152, 224, 164, 164, 224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224,
-			164, 176, 224, 164, 190, 72, 0, 33, 21, 224, 164, 166, 224, 165, 128, 224, 164, 170, 224, 164, 182, 224, 164, 191, 224, 164, 150, 224, 164, 190,
-			72, 113, 48, 6, 91, 37, 49, 107, 35, 0, 0, 54, 36, 224, 164, 170, 224, 165, 141, 224, 164, 176, 224, 164, 152, 224, 164, 190, 224, 164,
-			168, 224, 164, 174, 224, 164, 130, 224, 164, 164, 224, 165, 141, 224, 164, 176, 224, 165, 128, 48, 34, 35, 72, 107, 118, 50, 6, 65, 35, 50,
-			6, 47, 34, 37, 0, 0, 0, 0, 0, 0, 42, 27, 224, 164, 133, 224, 164, 149, 224, 165, 141, 224, 164, 183, 224, 164, 176, 224, 164, 174,
-			224, 164, 190, 224, 164, 178, 224, 164, 190, 35, 49, 6, 89, 107, 35, 34, 6, 65, 118, 55, 118, 0, 0, 9, 134, 224, 164, 170, 224, 164,
-			176, 8, 0, 0, 0, 0, 22, 12, 224, 164, 185, 224, 164, 178, 224, 164, 154, 224, 164, 178, 107, 35, 55, 6, 80, 35, 55, 0, 0, 40,
-			27, 224, 164, 135, 224, 164, 168, 224, 165, 141, 224, 164, 166, 224, 165, 141, 224, 164, 176, 224, 164, 156, 224, 165, 128, 224, 164, 164, 113, 50,
-			6, 72, 34, 35, 6, 79, 113, 47, 0, 0, 0, 29, 18, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 172, 224, 164, 178, 224, 164,
-			191, 65, 35, 107, 118, 71, 35, 55, 37, 0, 0, 37, 24, 224, 164, 149, 224, 165, 129, 224, 164, 178, 224, 164, 166, 224, 165, 135, 224, 164,
-			181, 224, 164, 164, 224, 164, 190, 49, 122, 55, 6, 72, 114, 84, 6, 47, 118, 0, 35, 21, 224, 164, 168, 224, 165, 140, 224, 164, 149, 224,
-			164, 176, 224, 164, 182, 224, 164, 190, 224, 164, 185, 50, 35, 40, 6, 49, 35, 34, 6, 91, 118, 107, 0, 0, 41, 27, 224, 164, 150, 224,
-			165, 129, 224, 164, 182, 224, 164, 149, 224, 164, 191, 224, 164, 184, 224, 165, 141, 224, 164, 174, 224, 164, 164, 49, 107, 122, 91, 49, 37, 6,
-			89, 65, 35, 47, 0, 0, 29, 18, 224, 164, 173, 224, 165, 130, 224, 164, 164, 224, 164, 149, 224, 164, 190, 224, 164, 178, 71, 107, 122, 47,
-			6, 49, 118, 55, 0, 0, 0, 42, 27, 224, 164, 172, 224, 165, 129, 224, 164, 167, 224, 165, 141, 224, 164, 166, 224, 164, 191, 224, 164, 174,
-			224, 164, 164, 224, 164, 191, 71, 40, 72, 6, 72, 107, 37, 6, 65, 35, 47, 37, 0, 0, 0, 0, 0, 25, 15, 224, 164, 184, 224, 165,
-			129, 224, 164, 174, 224, 164, 164, 224, 164, 191, 89, 40, 65, 35, 6, 47, 37, 0, 30, 18, 224, 164, 170, 224, 164, 176, 224, 164, 174, 224,
-			164, 181, 224, 165, 128, 224, 164, 176, 48, 35, 34, 35, 65, 6, 84, 113, 34, 0, 26, 15, 224, 164, 151, 224, 164, 156, 224, 164, 170, 224,
-			164, 164, 224, 164, 191, 81, 35, 79, 6, 48, 35, 47, 37, 0, 0, 0, 29, 18, 224, 164, 174, 224, 164, 164, 224, 164, 166, 224, 164, 190,
-			224, 164, 164, 224, 164, 190, 65, 35, 47, 6, 72, 118, 47, 118, 0, 0, 30, 18, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 170,
-			224, 164, 164, 224, 164, 191, 65, 35, 107, 118, 6, 48, 35, 47, 37, 0, 29, 18, 224, 164, 149, 224, 165, 129, 224, 164, 178, 224, 164, 170,
-			224, 164, 164, 224, 164, 191, 49, 40, 55, 6, 48, 35, 47, 37, 0, 0, 0, 32, 21, 224, 164, 176, 224, 164, 190, 224, 164, 156, 224, 164,
-			174, 224, 164, 190, 224, 164, 164, 224, 164, 190, 51, 118, 79, 6, 65, 118, 47, 118, 0, 34, 21, 224, 164, 184, 224, 165, 129, 224, 164, 150,
-			224, 164, 166, 224, 164, 190, 224, 164, 164, 224, 164, 190, 89, 40, 6, 49, 107, 6, 72, 118, 47, 118, 0, 0, 43, 30, 224, 164, 170, 224,
-			165, 141, 224, 164, 176, 224, 164, 190, 224, 164, 154, 224, 165, 128, 224, 164, 168, 224, 164, 149, 224, 164, 190, 224, 164, 178, 48, 34, 118, 80,
-			113, 50, 6, 49, 118, 55, 0, 32, 21, 224, 164, 184, 224, 165, 135, 224, 164, 168, 224, 164, 190, 224, 164, 170, 224, 164, 164, 224, 164, 191,
-			89, 36, 50, 118, 48, 35, 47, 37, 0, 0, 0, 11, 6, 224, 164, 156, 224, 164, 188, 88, 13, 0, 0, 36, 24, 224, 164, 170, 224, 165,
-			130, 224, 164, 129, 224, 164, 156, 224, 165, 128, 224, 164, 170, 224, 164, 164, 224, 164, 191, 48, 133, 79, 37, 6, 48, 35, 47, 37, 0, 36,
-			24, 224, 164, 170, 224, 165, 141, 224, 164, 176, 224, 164, 156, 224, 164, 190, 224, 164, 170, 224, 164, 164, 224, 164, 191, 48, 34, 35, 79, 118,
-			48, 35, 47, 37, 0, 0, 0, 0, 0, 0, 37, 24, 224, 164, 168, 224, 165, 135, 224, 164, 164, 224, 165, 141, 224, 164, 176, 224, 164, 185,
-			224, 165, 128, 224, 164, 168, 50, 36, 47, 34, 12, 35, 6, 107, 113, 50, 0, 0, 44, 30, 224, 164, 176, 224, 164, 190, 224, 164, 183, 224,
-			165, 141, 224, 164, 159, 224, 165, 141, 224, 164, 176, 224, 164, 170, 224, 164, 164, 224, 164, 191, 34, 118, 91, 47, 34, 35, 6, 48, 35, 47,
-			37, 0, 0, 0, 0, 0, 0, 10, 134, 224, 164, 148, 224, 164, 176, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 16, 140, 224, 164, 172,
-			224, 164, 191, 224, 164, 168, 224, 164, 190, 72, 8, 0, 34, 21, 224, 164, 170, 224, 165, 141, 224, 164, 176, 224, 164, 164, 224, 164, 191, 224,
-			164, 170, 224, 164, 178, 48, 34, 35, 6, 47, 37, 6, 48, 35, 55, 0, 0, 0, 0, 0, 0, 30, 18, 224, 164, 165, 224, 164, 178, 224,
-			164, 184, 224, 165, 135, 224, 164, 168, 224, 164, 190, 47, 107, 35, 55, 6, 89, 36, 50, 118, 0, 0, 0, 0, 0, 0, 9, 134, 224, 164,
-			134, 224, 164, 170, 72, 0, 35, 24, 224, 164, 181, 224, 164, 190, 224, 165, 159, 224, 165, 129, 224, 164, 184, 224, 165, 135, 224, 164, 168, 224,
-			164, 190, 58, 118, 123, 6, 89, 36, 50, 118, 0, 0, 0, 0, 0, 36, 21, 224, 164, 170, 224, 164, 129, 224, 164, 156, 224, 165, 128, 224,
-			164, 149, 224, 164, 176, 224, 164, 169, 48, 35, 50, 6, 79, 37, 6, 49, 35, 34, 35, 50, 0, 0, 30, 18, 224, 164, 168, 224, 165, 128,
-			224, 164, 178, 224, 164, 149, 224, 164, 130, 224, 164, 160, 50, 113, 55, 6, 49, 35, 6, 50, 141, 0, 0, 0, 0, 0, 22, 12, 224, 164,
-			185, 224, 164, 176, 224, 164, 166, 224, 164, 174, 107, 35, 34, 6, 72, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 6, 112, 50, 0, 0, 8, 2, 95, 50, 72, 6, 119, 0, 0, 8, 2, 95, 49, 6, 114,
-			49, 0, 0, 11, 2, 95, 48, 91, 6, 123, 50, 57, 14, 0, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 9, 2, 95, 54, 143,
-			6, 109, 108, 0, 0, 9, 2, 95, 53, 6, 48, 128, 80, 0, 0, 9, 2, 95, 52, 80, 6, 118, 34, 0, 0, 0, 0, 9, 2, 95,
-			57, 50, 6, 135, 0, 103, 8, 2, 95, 57, 50, 6, 120, 0, 0, 8, 2, 95, 56, 6, 118, 141, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 11, 3, 95, 97, 114, 6, 109, 34, 71, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 165, 135, 72, 0, 12, 137, 224, 164, 185,
-			224, 164, 174, 224, 165, 135, 72, 0, 0, 18, 143, 224, 164, 137, 224, 164, 168, 224, 165, 141, 224, 164, 185, 224, 165, 135, 72, 0, 0, 0,
-			0, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 165, 128, 72, 0, 0, 29, 18, 224, 164, 172, 224, 164, 178, 224, 164, 182, 224,
-			164, 190, 224, 164, 178, 224, 165, 128, 84, 35, 55, 6, 91, 118, 55, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 137, 224, 164, 175,
-			224, 164, 166, 224, 164, 191, 72, 8, 0, 41, 27, 224, 164, 173, 224, 164, 190, 224, 164, 151, 224, 165, 141, 224, 165, 159, 224, 164, 182, 224,
-			164, 190, 224, 164, 178, 224, 165, 128, 71, 107, 118, 81, 57, 35, 6, 91, 118, 55, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 164, 185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 165, 135, 72, 0, 0, 0, 0, 0,
-			0, 0, 18, 143, 224, 164, 185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 165, 128, 72, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224,
-			164, 164, 224, 165, 135, 224, 164, 176, 224, 164, 190, 72, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 164, 190, 72, 0, 24, 15,
-			224, 164, 184, 224, 164, 190, 224, 164, 175, 224, 164, 172, 224, 164, 176, 89, 6, 134, 71, 13, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 32, 21, 224, 164, 166, 224, 165, 128, 224, 164, 170, 224, 164, 174, 224, 164, 190, 224, 164, 178, 224, 164, 190, 72, 113, 48,
-			6, 65, 118, 55, 118, 0, 0, 0, 0, 0, 0, 0, 34, 21, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 173, 224, 164, 190, 224,
-			164, 176, 224, 164, 164, 65, 35, 107, 118, 71, 107, 118, 34, 35, 47, 0, 0, 0, 0, 0, 0, 0, 31, 21, 224, 164, 184, 224, 165, 128,
-			224, 164, 164, 224, 164, 190, 224, 164, 176, 224, 164, 190, 224, 164, 174, 89, 113, 47, 118, 34, 118, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 40, 24, 224, 164, 133, 224, 164, 164, 224, 165, 141, 224, 164, 174, 224, 164, 174, 224, 164, 130, 224, 164, 165, 224, 164, 168, 35, 47,
-			65, 6, 35, 65, 35, 50, 6, 47, 107, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 122, 104, 80, 6, 37, 13, 50, 37,
-			0, 0, 0, 0, 28, 18, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 164, 190, 224, 164, 156, 65, 35, 107, 118, 34, 118,
-			79, 0, 0, 0, 36, 24, 224, 164, 174, 224, 164, 166, 224, 165, 128, 224, 164, 176, 224, 164, 190, 224, 164, 170, 224, 164, 190, 224, 164, 168,
-			65, 35, 72, 37, 34, 118, 48, 118, 50, 0, 0, 0, 0, 0, 45, 30, 224, 164, 174, 224, 164, 185, 224, 164, 190, 224, 164, 184, 224, 164,
-			130, 224, 164, 151, 224, 165, 141, 224, 164, 176, 224, 164, 190, 224, 164, 174, 65, 35, 107, 118, 89, 35, 50, 6, 81, 34, 118, 65, 0, 0,
-			18, 143, 224, 164, 185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 164, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 102, 9,
-			0, 0, 48, 0, 0, 0, 103, 9, 0, 0, 49, 0, 0, 0, 104, 9, 0, 0, 50, 0, 0, 0, 105, 9, 0, 0, 51, 0, 0, 0,
-			106, 9, 0, 0, 52, 0, 0, 0, 107, 9, 0, 0, 53, 0, 0, 0, 108, 9, 0, 0, 54, 0, 0, 0, 109, 9, 0, 0, 55, 0,
-			0, 0, 110, 9, 0, 0, 56, 0, 0, 0, 111, 9, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 2, 0, 3, 50, 0, 7,
-			6, 1, 3, 0, 3, 50, 0, 4, 2, 224, 164, 170, 3, 65, 0, 2, 224, 164, 171, 0, 2, 224, 164, 172, 0, 2, 224, 164, 173, 0,
-			2, 224, 164, 174, 0, 4, 2, 224, 164, 159, 3, 66, 0, 2, 224, 164, 160, 0, 2, 224, 164, 161, 0, 2, 224, 164, 162, 0, 2, 224,
-			164, 163, 0, 4, 2, 224, 164, 154, 3, 67, 0, 2, 224, 164, 155, 0, 2, 224, 164, 156, 0, 2, 224, 164, 157, 0, 2, 224, 164, 158,
-			0, 2, 224, 164, 175, 0, 4, 2, 224, 164, 149, 3, 68, 0, 2, 224, 164, 150, 0, 2, 224, 164, 151, 0, 2, 224, 164, 152, 0, 2,
-			224, 164, 153, 0, 7, 6, 1, 4, 0, 3, 108, 0, 7, 6, 1, 6, 0, 3, 109, 0, 4, 1, 185, 164, 224, 133, 164, 224, 3, 116,
-			0, 2, 224, 164, 185, 0, 7, 6, 1, 7, 0, 3, 118, 0, 224, 164, 130, 3, 128, 0, 7, 6, 1, 8, 0, 3, 113, 0, 224, 164,
-			130, 3, 124, 0, 7, 6, 1, 9, 0, 2, 32, 3, 37, 0, 3, 112, 0, 7, 6, 1, 10, 0, 3, 122, 0, 7, 6, 1, 11, 0,
-			3, 40, 0, 4, 224, 164, 129, 2, 32, 3, 133, 0, 224, 164, 130, 0, 7, 6, 1, 12, 0, 3, 34, 113, 0, 7, 6, 1, 13, 0,
-			3, 45, 0, 7, 6, 1, 14, 0, 3, 116, 0, 7, 6, 1, 15, 0, 3, 36, 0, 4, 224, 164, 129, 2, 32, 3, 126, 0, 224, 164,
-			130, 0, 7, 6, 1, 16, 0, 224, 164, 129, 1, 190, 164, 224, 2, 32, 3, 57, 0, 3, 114, 0, 4, 224, 164, 129, 3, 126, 12, 0,
-			224, 164, 130, 0, 7, 6, 1, 17, 0, 3, 115, 0, 4, 224, 164, 129, 2, 32, 3, 127, 0, 224, 164, 130, 0, 5, 2, 3, 134, 0,
-			7, 6, 1, 18, 0, 3, 121, 0, 7, 6, 1, 19, 0, 3, 39, 0, 4, 224, 164, 129, 2, 32, 3, 131, 0, 224, 164, 130, 0, 7,
-			6, 1, 20, 0, 4, 224, 164, 129, 1, 190, 164, 224, 2, 32, 3, 58, 0, 224, 164, 130, 1, 190, 164, 224, 2, 32, 0, 3, 119, 0,
-			4, 224, 164, 129, 2, 32, 3, 131, 0, 224, 164, 130, 0, 7, 6, 1, 21, 0, 3, 120, 0, 4, 224, 164, 129, 2, 32, 3, 130, 0,
-			224, 164, 130, 0, 5, 3, 3, 135, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 4, 2, 224, 165, 141, 224, 164, 175, 3, 49,
-			12, 0, 224, 165, 141, 224, 164, 149, 2, 17, 66, 0, 224, 165, 141, 224, 164, 149, 3, 49, 12, 109, 0, 224, 165, 141, 224, 164, 183, 2,
-			17, 66, 3, 49, 91, 0, 224, 165, 141, 224, 164, 183, 3, 49, 91, 109, 0, 3, 49, 109, 0, 224, 164, 188, 2, 17, 66, 3, 104, 0,
-			224, 164, 188, 3, 104, 109, 0, 7, 6, 1, 23, 0, 224, 164, 188, 2, 17, 66, 3, 101, 0, 224, 164, 188, 3, 101, 109, 0, 2, 17,
-			66, 3, 145, 0, 3, 145, 109, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 109, 0, 224, 164, 188, 2, 17, 66, 3,
-			100, 0, 224, 164, 188, 3, 100, 109, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 109, 0, 7, 6, 1, 26, 0, 2,
-			17, 66, 3, 68, 0, 1, 141, 165, 224, 2, 32, 3, 68, 13, 0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0,
-			2, 224, 165, 141, 224, 164, 175, 3, 80, 12, 0, 3, 80, 109, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 143, 0, 3, 143, 109, 0,
-			7, 6, 1, 29, 0, 2, 17, 66, 3, 79, 0, 3, 79, 109, 0, 224, 165, 141, 224, 164, 158, 2, 17, 66, 3, 81, 57, 0, 224, 165,
-			141, 224, 164, 158, 3, 81, 57, 109, 0, 224, 164, 188, 2, 17, 66, 3, 88, 0, 224, 164, 188, 3, 88, 109, 0, 7, 6, 1, 30, 0,
-			2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 67, 0, 1, 141, 165, 224, 2, 32, 3, 67, 13,
-			0, 3, 67, 109, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 4, 2, 224, 165, 141, 224, 164, 175, 3, 139, 12, 0, 224, 165,
-			141, 224, 164, 159, 2, 17, 66, 0, 224, 165, 141, 224, 164, 159, 3, 139, 12, 109, 0, 3, 139, 109, 0, 224, 165, 141, 224, 164, 160, 2,
-			17, 66, 3, 141, 12, 0, 224, 165, 141, 224, 164, 160, 3, 141, 12, 109, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 141, 0, 224, 165,
-			141, 224, 164, 160, 2, 17, 66, 3, 141, 12, 0, 224, 165, 141, 224, 164, 160, 3, 141, 12, 109, 0, 3, 141, 109, 0, 7, 6, 1, 34,
-			0, 224, 164, 188, 2, 17, 66, 3, 70, 0, 224, 164, 188, 3, 70, 109, 0, 2, 17, 66, 3, 140, 0, 3, 140, 109, 0, 7, 6, 1,
-			35, 0, 224, 164, 188, 2, 17, 66, 3, 70, 107, 0, 224, 164, 188, 3, 70, 107, 109, 0, 2, 17, 66, 3, 142, 0, 3, 142, 109, 0,
-			7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 1, 141, 165, 224, 2, 32, 3, 66, 13, 0, 3, 66, 109, 0, 7, 6, 1, 37, 0,
-			2, 17, 66, 3, 47, 0, 4, 2, 224, 165, 141, 224, 164, 175, 3, 47, 12, 0, 224, 165, 141, 224, 164, 164, 2, 17, 66, 0, 224, 165,
-			141, 224, 164, 164, 3, 47, 12, 109, 0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 109, 0, 7, 6,
-			1, 39, 0, 2, 17, 66, 3, 72, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 109, 0, 7, 6,
-			1, 41, 0, 4, 1, 141, 165, 224, 176, 164, 224, 2, 32, 3, 50, 0, 2, 17, 66, 0, 1, 141, 165, 224, 2, 32, 3, 50, 13, 0,
-			3, 50, 109, 0, 7, 6, 1, 42, 0, 3, 50, 12, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 4, 2, 224, 165, 141, 224,
-			164, 175, 3, 48, 12, 0, 224, 165, 141, 224, 164, 170, 2, 17, 66, 0, 224, 165, 141, 224, 164, 170, 3, 48, 12, 109, 0, 3, 48, 109,
-			0, 7, 6, 1, 44, 0, 224, 164, 188, 2, 17, 66, 3, 83, 0, 224, 164, 188, 3, 83, 109, 0, 2, 17, 66, 3, 136, 0, 3, 136,
-			109, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137,
-			109, 0, 7, 6, 1, 47, 0, 4, 1, 141, 165, 224, 168, 164, 224, 2, 32, 3, 65, 0, 1, 141, 165, 224, 176, 164, 224, 2, 32, 0,
-			2, 17, 66, 0, 1, 141, 165, 224, 2, 32, 3, 65, 13, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0, 1,
-			141, 165, 224, 2, 32, 3, 57, 13, 0, 3, 57, 109, 0, 1, 17, 67, 2, 32, 3, 116, 57, 0, 7, 6, 1, 49, 0, 4, 2, 17,
-			66, 3, 34, 0, 2, 32, 0, 1, 141, 165, 224, 2, 32, 3, 34, 13, 0, 3, 34, 109, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3,
-			34, 0, 1, 141, 165, 224, 2, 32, 3, 34, 13, 0, 3, 34, 109, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 1, 141, 165,
-			224, 2, 32, 3, 55, 13, 0, 3, 55, 109, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62,
-			13, 0, 3, 62, 109, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109,
-			0, 7, 6, 1, 54, 0, 4, 2, 32, 3, 58, 0, 8, 2, 17, 66, 0, 1, 141, 165, 224, 2, 32, 3, 58, 13, 0, 8, 3, 58,
-			109, 0, 4, 2, 17, 66, 3, 84, 0, 8, 2, 224, 165, 141, 0, 3, 84, 109, 0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 91, 0,
-			3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 109, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0,
-			3, 89, 109, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 108, 0, 3, 108, 109, 0, 7, 6, 1, 62, 0, 3, 12, 0, 7, 6, 1,
-			63, 0, 3, 118, 0, 4, 2, 224, 164, 129, 3, 128, 0, 224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 224, 164, 181, 3, 135, 0, 7,
-			6, 1, 64, 0, 3, 113, 0, 224, 164, 130, 3, 124, 0, 7, 6, 1, 65, 0, 2, 32, 3, 37, 0, 3, 112, 0, 4, 2, 224, 164,
-			129, 3, 124, 0, 224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 7, 6, 1, 66, 0, 3, 122, 0, 4, 2, 224, 164, 129, 3, 133, 0,
-			224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 7, 6, 1, 67, 0, 3, 123, 0, 4, 2, 224, 164, 129, 3, 133, 0, 224, 164, 129, 2,
-			32, 0, 224, 164, 130, 0, 7, 6, 1, 68, 0, 3, 34, 113, 0, 7, 6, 1, 69, 0, 3, 34, 113, 0, 7, 6, 1, 70, 0, 3,
-			116, 0, 7, 6, 1, 71, 0, 3, 36, 0, 4, 2, 224, 164, 129, 3, 126, 0, 224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 7, 6,
-			1, 72, 0, 3, 114, 0, 2, 224, 164, 129, 3, 126, 0, 4, 224, 164, 129, 2, 32, 3, 126, 12, 0, 224, 164, 130, 0, 7, 6, 1,
-			73, 0, 3, 115, 0, 4, 2, 224, 164, 129, 3, 127, 0, 224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 224, 164, 130, 0, 5, 2, 3,
-			134, 0, 7, 6, 1, 74, 0, 3, 121, 0, 7, 6, 1, 75, 0, 3, 39, 0, 4, 2, 224, 164, 129, 3, 131, 0, 224, 164, 129, 2,
-			32, 0, 224, 164, 130, 0, 7, 6, 1, 76, 0, 3, 119, 0, 4, 2, 224, 164, 129, 3, 131, 0, 224, 164, 129, 2, 32, 0, 224, 164,
-			130, 0, 7, 6, 1, 77, 0, 3, 120, 0, 4, 2, 224, 164, 129, 3, 130, 0, 224, 164, 129, 2, 32, 0, 224, 164, 130, 0, 5, 3,
-			3, 135, 0, 7, 6, 1, 78, 0, 3, 0, 7, 6, 1, 81, 0, 3, 131, 65, 0, 7, 6, 1, 89, 0, 2, 17, 66, 3, 104, 0,
-			3, 104, 109, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 101, 0, 3, 101, 109, 0, 7, 6, 1, 91, 0, 2, 17, 66, 3, 100, 0,
-			3, 100, 109, 0, 7, 6, 1, 92, 0, 2, 17, 66, 3, 88, 0, 3, 88, 109, 0, 7, 6, 1, 93, 0, 2, 17, 66, 3, 70, 0,
-			3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 70, 107, 0, 3, 70, 107, 109, 0, 7, 6, 1, 95, 0, 2, 17, 66, 3,
-			83, 0, 3, 83, 109, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 7, 6, 1, 97, 0, 3, 109, 20, 34,
-			34, 0, 7, 6, 1, 98, 0, 3, 45, 12, 0, 7, 6, 1, 99, 0, 3, 45, 0, 7, 6, 1, 100, 0, 3, 45, 12, 0, 7, 6,
-			111, 0, 3, 21, 0, 102, 1, 32, 32, 15, 2, 32, 32, 15, 194, 160, 194, 160, 194, 160, 3, 65, 36, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts27 = FileInMemory_createWithData (8606, reinterpret_cast<const char *> (&espeakdata_dicts27_data), 
-			U"espeak-1.48.04-source/espeak-data/hi_dict", 
+		static unsigned char espeakdata_dicts23_data[5724] = {
+			0, 4, 0, 0, 152, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 134, 224, 164, 149, 224, 165, 128, 72, 0, 15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 165, 139, 72, 0, 0, 12, 137, 224,
+			164, 176, 224, 164, 185, 224, 165, 128, 72, 9, 134, 224, 164, 175, 224, 165, 135, 72, 9, 134, 224, 164, 175, 224, 165, 135, 72, 0, 0, 0,
+			15, 140, 224, 164, 137, 224, 164, 168, 224, 164, 149, 224, 165, 128, 72, 15, 140, 224, 164, 137, 224, 164, 184, 224, 164, 149, 224, 165, 128, 72,
+			15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 165, 128, 72, 0, 9, 134, 224, 164, 149, 224, 165, 135, 72, 9, 134, 224, 164, 181,
+			224, 165, 135, 72, 0, 0, 0, 12, 137, 224, 164, 176, 224, 164, 185, 224, 165, 135, 72, 0, 9, 134, 224, 164, 149, 224, 165, 139, 72, 9,
+			134, 224, 164, 181, 224, 165, 139, 72, 9, 134, 224, 164, 181, 224, 165, 139, 72, 0, 0, 15, 140, 224, 164, 137, 224, 164, 168, 224, 164, 149,
+			224, 165, 135, 72, 15, 140, 224, 164, 137, 224, 164, 184, 224, 164, 149, 224, 165, 135, 72, 15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149,
+			224, 165, 135, 72, 15, 140, 224, 164, 174, 224, 165, 129, 224, 164, 157, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 134, 224, 164, 185, 224, 165, 136, 72, 0, 0, 0, 9, 134, 224, 164, 185, 224, 165, 139, 72, 0, 0, 0, 0, 0, 0, 12, 137, 224,
+			164, 174, 224, 165, 135, 224, 164, 130, 72, 0, 0, 0, 15, 140, 224, 164, 185, 224, 164, 174, 224, 165, 135, 224, 164, 130, 72, 0, 0, 0,
+			0, 0, 0, 21, 146, 224, 164, 137, 224, 164, 168, 224, 165, 141, 224, 164, 185, 224, 165, 135, 224, 164, 130, 72, 21, 146, 224, 164, 135, 224,
+			164, 168, 224, 165, 141, 224, 164, 185, 224, 165, 135, 224, 164, 130, 72, 0, 0, 0, 15, 140, 224, 164, 164, 224, 165, 129, 224, 164, 157, 224,
+			165, 135, 72, 24, 149, 224, 164, 164, 224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 165, 135, 224, 164, 130, 72, 0, 0, 12,
+			137, 224, 164, 174, 224, 164, 151, 224, 164, 176, 8, 0, 11, 6, 224, 164, 151, 224, 164, 188, 100, 13, 0, 0, 9, 134, 224, 164, 181, 224,
+			164, 185, 72, 0, 0, 0, 11, 6, 224, 164, 149, 224, 164, 188, 104, 13, 0, 0, 0, 9, 134, 224, 164, 149, 224, 164, 190, 72, 0, 0,
+			0, 0, 0, 0, 15, 140, 224, 164, 137, 224, 164, 168, 224, 164, 149, 224, 164, 190, 72, 15, 140, 224, 164, 137, 224, 164, 184, 224, 164, 149,
+			224, 164, 190, 72, 15, 140, 224, 164, 135, 224, 164, 168, 224, 164, 149, 224, 164, 190, 72, 15, 140, 224, 164, 135, 224, 164, 184, 224, 164, 149,
+			224, 164, 190, 72, 0, 0, 0, 0, 11, 6, 224, 164, 171, 224, 164, 188, 83, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 140, 224,
+			164, 149, 224, 165, 141, 224, 164, 175, 224, 164, 190, 72, 8, 0, 12, 137, 224, 164, 176, 224, 164, 185, 224, 164, 190, 72, 0, 17, 4, 95,
+			4, 16, 20, 10, 72, 13, 89, 13, 65, 55, 6, 119, 10, 0, 0, 0, 15, 140, 224, 164, 134, 224, 164, 170, 224, 164, 149, 224, 164, 190,
+			72, 0, 0, 0, 0, 0, 0, 31, 21, 224, 164, 149, 224, 165, 141, 224, 164, 176, 224, 164, 191, 224, 164, 149, 224, 165, 135, 224, 164, 159,
+			49, 34, 113, 49, 6, 116, 47, 0, 0, 0, 0, 9, 134, 224, 164, 175, 224, 164, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 11, 6, 224, 164, 161, 224, 164, 188, 70, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 9, 134, 224, 164, 185, 224, 164, 174, 72, 0, 0, 0, 12, 137, 224, 164, 164, 224, 165, 129, 224, 164, 174, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			14, 3, 95, 51, 57, 122, 50, 47, 118, 55, 6, 113, 89, 0, 12, 3, 95, 50, 49, 113, 49, 12, 6, 113, 89, 0, 0, 12, 3, 95,
+			51, 56, 35, 34, 47, 6, 113, 89, 0, 10, 3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11, 3, 95, 50, 51, 47, 6, 114, 113, 89,
+			0, 0, 11, 3, 95, 50, 50, 71, 6, 118, 113, 89, 0, 0, 13, 3, 95, 50, 53, 48, 13, 80, 12, 6, 113, 89, 0, 0, 12, 3,
+			95, 50, 52, 80, 6, 120, 71, 113, 89, 0, 0, 14, 3, 95, 50, 55, 89, 13, 47, 12, 6, 118, 113, 89, 0, 0, 14, 3, 95, 50,
+			54, 144, 13, 71, 71, 6, 112, 34, 89, 0, 0, 14, 3, 95, 51, 49, 113, 49, 13, 47, 12, 6, 113, 89, 0, 0, 10, 3, 95, 51,
+			48, 47, 6, 112, 89, 0, 0, 12, 3, 95, 51, 51, 47, 127, 47, 6, 113, 89, 0, 0, 13, 3, 95, 51, 50, 71, 35, 47, 12, 6,
+			113, 89, 0, 0, 9, 134, 224, 164, 165, 224, 165, 128, 72, 12, 3, 95, 51, 53, 48, 127, 47, 6, 113, 89, 0, 0, 12, 3, 95, 51,
+			52, 80, 130, 47, 6, 113, 89, 0, 0, 12, 3, 95, 51, 55, 89, 127, 47, 6, 113, 89, 0, 0, 13, 3, 95, 51, 54, 144, 35, 87,
+			6, 47, 113, 89, 0, 0, 0, 9, 134, 224, 164, 165, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 14, 3, 95, 55, 57, 4, 122, 67, 113, 118, 89, 6, 112, 0, 12, 3, 95, 54, 49, 6, 113, 49, 89, 13, 142, 0, 0, 9, 3,
+			224, 165, 140, 148, 135, 0, 103, 8, 3, 224, 165, 140, 148, 120, 0, 16, 3, 95, 55, 56, 35, 138, 107, 35, 47, 12, 6, 109, 34, 12,
+			0, 10, 3, 95, 54, 48, 89, 6, 118, 142, 0, 0, 9, 3, 95, 48, 67, 89, 6, 120, 0, 13, 3, 95, 54, 51, 47, 6, 113, 34,
+			89, 13, 142, 0, 0, 12, 3, 95, 54, 50, 71, 6, 118, 89, 13, 142, 0, 0, 8, 3, 224, 165, 137, 18, 121, 0, 12, 3, 95, 54,
+			53, 48, 134, 50, 89, 13, 142, 0, 0, 9, 3, 224, 165, 136, 148, 134, 0, 102, 8, 3, 224, 165, 136, 148, 115, 0, 12, 3, 95, 54,
+			52, 80, 6, 130, 89, 13, 142, 0, 0, 8, 3, 224, 165, 139, 148, 119, 0, 13, 3, 95, 54, 55, 89, 6, 109, 34, 89, 13, 142, 0,
+			0, 8, 3, 224, 165, 138, 18, 39, 0, 14, 3, 95, 54, 54, 144, 6, 113, 57, 118, 89, 13, 142, 0, 0, 8, 3, 224, 165, 133, 18,
+			116, 0, 15, 3, 95, 55, 49, 113, 146, 35, 47, 12, 6, 109, 34, 12, 0, 0, 9, 3, 224, 165, 132, 18, 34, 113, 0, 14, 3, 95,
+			55, 48, 89, 35, 47, 12, 6, 109, 34, 12, 0, 0, 8, 3, 224, 165, 135, 148, 114, 0, 16, 3, 95, 55, 51, 47, 113, 107, 35, 47,
+			12, 6, 109, 34, 12, 0, 0, 8, 3, 224, 165, 134, 18, 36, 0, 16, 3, 95, 55, 50, 71, 13, 107, 35, 47, 12, 6, 109, 34, 12,
+			0, 0, 8, 3, 224, 165, 129, 18, 122, 0, 17, 3, 95, 55, 53, 48, 35, 144, 4, 35, 47, 12, 6, 109, 34, 12, 0, 0, 8, 3,
+			224, 165, 128, 148, 112, 0, 16, 3, 95, 55, 52, 80, 120, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 9, 3, 224, 165, 131, 18, 34,
+			113, 0, 18, 3, 95, 55, 55, 89, 13, 47, 13, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 8, 3, 224, 165, 130, 148, 123, 0, 16,
+			3, 95, 55, 54, 144, 113, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 12, 3, 95, 49, 57, 122, 50, 50, 6, 113, 89, 0, 0, 13,
+			3, 95, 49, 56, 109, 142, 12, 6, 118, 34, 111, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 57, 122, 50, 47, 6, 113, 89,
+			0, 12, 3, 95, 49, 49, 81, 57, 6, 118, 34, 111, 0, 0, 13, 3, 95, 50, 56, 35, 138, 12, 6, 118, 113, 89, 0, 10, 3, 95,
+			49, 48, 72, 6, 109, 89, 0, 0, 11, 3, 95, 49, 51, 47, 6, 115, 34, 111, 0, 0, 11, 3, 95, 49, 50, 71, 6, 118, 34, 111,
+			0, 0, 13, 3, 95, 49, 53, 48, 6, 109, 50, 72, 34, 111, 0, 0, 11, 3, 95, 49, 52, 144, 6, 120, 72, 111, 0, 0, 13, 3,
+			95, 49, 55, 89, 6, 109, 47, 12, 34, 111, 0, 0, 11, 3, 95, 49, 54, 89, 6, 119, 55, 111, 0, 0, 8, 3, 224, 164, 165, 138,
+			13, 0, 0, 8, 3, 224, 164, 164, 47, 13, 0, 0, 9, 134, 224, 164, 165, 224, 164, 190, 72, 8, 3, 224, 164, 167, 139, 13, 0, 0,
+			8, 3, 224, 164, 166, 72, 13, 0, 0, 8, 3, 224, 164, 161, 141, 13, 0, 0, 8, 3, 224, 164, 160, 142, 13, 0, 0, 8, 3, 224,
+			164, 163, 66, 13, 0, 0, 8, 3, 224, 164, 162, 143, 13, 0, 0, 8, 3, 224, 164, 157, 145, 13, 0, 12, 3, 95, 52, 57, 6, 122,
+			67, 80, 118, 89, 0, 0, 11, 3, 224, 165, 164, 72, 109, 66, 141, 109, 0, 8, 3, 224, 164, 156, 79, 13, 0, 14, 3, 95, 52, 56,
+			35, 34, 47, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 164, 159, 140, 13, 0, 0, 8, 3, 224, 164, 158, 67, 13, 0, 0, 8, 3,
+			224, 164, 153, 68, 13, 0, 0, 8, 3, 224, 164, 152, 147, 13, 0, 0, 9, 3, 224, 165, 163, 148, 45, 12, 0, 8, 3, 224, 164, 155,
+			144, 13, 0, 0, 8, 3, 224, 165, 162, 18, 45, 0, 8, 3, 224, 164, 154, 80, 13, 0, 0, 9, 3, 224, 165, 157, 107, 34, 13, 0,
+			8, 3, 224, 164, 149, 49, 13, 0, 12, 3, 95, 53, 57, 122, 50, 89, 6, 109, 138, 0, 14, 3, 95, 52, 49, 113, 49, 47, 118, 55,
+			6, 113, 89, 0, 0, 8, 3, 224, 165, 156, 44, 13, 0, 14, 3, 95, 53, 56, 35, 138, 12, 6, 118, 58, 13, 50, 0, 12, 3, 95,
+			52, 48, 80, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 159, 57, 13, 0, 8, 3, 224, 164, 151, 81, 13, 0, 14, 3, 95, 52,
+			51, 47, 127, 47, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 158, 83, 13, 0, 8, 3, 224, 164, 150, 146, 13, 0, 13, 3, 95,
+			52, 50, 71, 134, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 153, 101, 13, 0, 16, 3, 95, 52, 53, 48, 134, 6, 50, 47, 118,
+			55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 152, 104, 13, 0, 14, 3, 95, 52, 52, 80, 120, 58, 118, 55, 6, 113, 89, 0, 0, 8,
+			3, 224, 165, 155, 88, 13, 0, 14, 3, 95, 52, 55, 89, 127, 47, 118, 55, 6, 113, 89, 0, 0, 13, 137, 224, 164, 133, 224, 164, 151,
+			224, 164, 176, 72, 8, 8, 3, 224, 165, 154, 100, 13, 0, 15, 3, 95, 52, 54, 144, 107, 113, 57, 118, 55, 6, 113, 89, 0, 0, 18,
+			3, 95, 54, 57, 122, 50, 13, 107, 4, 35, 47, 12, 6, 109, 34, 12, 0, 14, 3, 95, 53, 49, 113, 49, 57, 6, 118, 58, 109, 50,
+			0, 0, 11, 3, 95, 54, 56, 35, 34, 89, 13, 142, 0, 12, 3, 95, 53, 48, 48, 13, 80, 6, 118, 89, 0, 0, 13, 3, 95, 53,
+			51, 47, 6, 113, 34, 48, 109, 50, 0, 0, 12, 3, 95, 53, 50, 71, 6, 118, 58, 109, 50, 0, 0, 13, 3, 95, 53, 53, 48, 6,
+			35, 144, 48, 109, 50, 0, 0, 9, 3, 224, 165, 144, 18, 131, 65, 0, 13, 3, 95, 53, 52, 80, 6, 121, 123, 58, 109, 50, 0, 0,
+			15, 3, 95, 53, 55, 89, 109, 47, 12, 6, 118, 58, 13, 50, 0, 0, 14, 3, 95, 53, 54, 144, 107, 13, 48, 12, 6, 109, 50, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 57, 50, 109, 58, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 56, 35, 138,
+			12, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 191, 18, 113, 0, 0, 8, 3, 224, 164, 190, 148, 118, 0, 0, 8, 3, 224, 164, 185,
+			108, 13, 0, 0, 8, 3, 224, 164, 184, 89, 13, 0, 0, 0, 0, 8, 3, 224, 164, 181, 84, 13, 0, 16, 3, 95, 57, 57, 50, 113,
+			67, 57, 6, 118, 50, 13, 58, 114, 0, 13, 3, 95, 56, 49, 113, 49, 57, 118, 89, 6, 112, 0, 0, 15, 3, 95, 57, 56, 35, 138,
+			12, 6, 118, 50, 13, 58, 114, 0, 12, 3, 95, 56, 48, 4, 109, 89, 89, 6, 112, 0, 0, 8, 3, 224, 164, 183, 93, 13, 0, 13,
+			3, 95, 56, 51, 47, 113, 34, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 182, 91, 13, 0, 12, 3, 95, 56, 50, 71, 134, 118, 89,
+			6, 112, 0, 0, 8, 3, 224, 164, 177, 34, 13, 0, 14, 3, 95, 56, 53, 48, 113, 6, 80, 118, 89, 6, 112, 0, 0, 8, 3, 224,
+			164, 176, 34, 13, 0, 13, 3, 95, 56, 52, 80, 120, 34, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 179, 62, 13, 0, 14, 3, 95,
+			56, 55, 89, 109, 47, 12, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 178, 55, 13, 0, 13, 3, 95, 56, 54, 144, 113, 57, 118, 89,
+			6, 112, 0, 0, 8, 3, 224, 164, 173, 137, 13, 0, 15, 3, 95, 57, 49, 113, 49, 57, 6, 118, 50, 13, 58, 114, 0, 0, 8, 3,
+			224, 164, 172, 71, 13, 0, 12, 3, 95, 57, 48, 50, 109, 71, 12, 6, 114, 0, 0, 10, 3, 224, 164, 175, 57, 13, 0, 72, 8, 8,
+			3, 224, 164, 175, 57, 13, 0, 15, 3, 95, 57, 51, 47, 113, 34, 6, 118, 50, 13, 58, 114, 0, 0, 8, 3, 224, 164, 174, 65, 13,
+			0, 13, 3, 95, 57, 50, 71, 6, 118, 50, 13, 58, 114, 0, 0, 15, 3, 95, 57, 53, 48, 13, 80, 6, 118, 50, 13, 58, 114, 0,
+			0, 8, 3, 224, 164, 168, 50, 13, 0, 15, 3, 95, 57, 52, 80, 120, 34, 6, 118, 65, 13, 58, 114, 0, 0, 8, 3, 224, 164, 171,
+			136, 13, 0, 16, 3, 95, 57, 55, 89, 13, 47, 12, 6, 118, 50, 13, 58, 114, 0, 0, 8, 3, 224, 164, 170, 48, 13, 0, 15, 3,
+			95, 57, 54, 144, 113, 57, 6, 118, 50, 13, 58, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 6, 109, 34, 13, 71, 0, 0, 13, 4, 95, 48,
+			77, 53, 146, 6, 109, 34, 13, 71, 0, 0, 11, 4, 95, 48, 77, 50, 55, 6, 118, 146, 0, 0, 13, 4, 95, 48, 77, 51, 80, 34,
+			6, 39, 34, 36, 0, 0, 0, 13, 4, 95, 48, 77, 49, 107, 13, 88, 6, 118, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 12, 137, 224, 164, 185, 224, 165, 136, 224, 164, 130, 72, 0, 0, 0, 0, 0, 9, 134, 224, 164, 164, 224, 165,
+			130, 72, 0, 0, 0, 0, 0, 0, 18, 143, 224, 164, 137, 224, 164, 184, 224, 165, 141, 224, 164, 184, 224, 165, 135, 72, 18, 143, 224, 164,
+			135, 224, 164, 184, 224, 165, 141, 224, 164, 184, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 164, 164, 224, 165,
+			129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 165, 135, 72, 0, 0, 0, 0, 0, 27, 152, 224, 164, 164,
+			224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 165, 128, 72, 0, 0, 0, 0, 0, 0, 12, 137,
+			224, 164, 185, 224, 165, 130, 224, 164, 129, 72, 0, 12, 137, 224, 164, 165, 224, 165, 128, 224, 164, 130, 72, 12, 137, 224, 164, 174, 224, 165,
+			136, 224, 164, 130, 72, 0, 0, 9, 134, 224, 164, 184, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 164,
+			164, 224, 164, 149, 72, 0, 0, 0, 18, 143, 224, 164, 133, 224, 164, 151, 224, 164, 176, 224, 164, 154, 224, 165, 135, 8, 0, 0, 0, 0,
+			0, 0, 0, 0, 11, 6, 224, 164, 150, 224, 164, 188, 101, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224,
+			164, 164, 224, 165, 129, 224, 164, 174, 224, 165, 141, 224, 164, 185, 224, 164, 190, 224, 164, 176, 224, 164, 190, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 134, 224, 164, 170, 224, 164, 176, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 11, 6, 224, 164, 156, 224, 164, 188, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134,
+			224, 164, 148, 224, 164, 176, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 16, 140, 224, 164, 172, 224, 164, 191, 224, 164, 168, 224, 164, 190,
+			72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 164, 134, 224, 164, 170, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 6, 112, 50, 0, 0, 8,
+			2, 95, 50, 72, 6, 119, 0, 0, 8, 2, 95, 49, 6, 114, 49, 0, 0, 11, 2, 95, 48, 91, 6, 123, 66, 57, 109, 0, 0, 9,
+			2, 95, 55, 89, 6, 118, 47, 0, 0, 8, 2, 95, 54, 144, 6, 111, 0, 0, 10, 2, 95, 53, 48, 6, 118, 50, 80, 0, 0, 10,
+			2, 95, 52, 80, 6, 118, 34, 12, 0, 0, 0, 0, 9, 2, 95, 57, 50, 6, 135, 0, 103, 8, 2, 95, 57, 50, 6, 120, 0, 0,
+			8, 2, 95, 56, 6, 118, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 165, 135, 72, 0, 0,
+			0, 0, 0, 0, 0, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 165, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			13, 137, 224, 164, 175, 224, 164, 166, 224, 164, 191, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 18, 143, 224, 164, 185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 165, 135, 72, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 164,
+			185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 165, 128, 72, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 164, 164, 224, 165, 135, 224,
+			164, 176, 224, 164, 190, 72, 15, 140, 224, 164, 174, 224, 165, 135, 224, 164, 176, 224, 164, 190, 72, 0, 24, 15, 224, 164, 184, 224, 164, 190,
+			224, 164, 175, 224, 164, 172, 224, 164, 176, 89, 6, 134, 71, 13, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 18, 143, 224, 164, 185, 224, 164, 174, 224, 164, 190, 224, 164, 176, 224, 164, 190, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 20, 0, 0, 102, 9, 0, 0, 48, 0, 0, 0, 103, 9, 0, 0, 49, 0, 0, 0, 104, 9, 0, 0, 50, 0, 0, 0,
+			105, 9, 0, 0, 51, 0, 0, 0, 106, 9, 0, 0, 52, 0, 0, 0, 107, 9, 0, 0, 53, 0, 0, 0, 108, 9, 0, 0, 54, 0,
+			0, 0, 109, 9, 0, 0, 55, 0, 0, 0, 110, 9, 0, 0, 56, 0, 0, 0, 111, 9, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
+			6, 1, 2, 0, 3, 50, 0, 7, 6, 1, 3, 0, 3, 50, 0, 4, 2, 224, 164, 170, 3, 65, 0, 2, 224, 164, 171, 0, 2, 224,
+			164, 172, 0, 2, 224, 164, 173, 0, 2, 224, 164, 174, 0, 4, 2, 224, 164, 159, 3, 66, 0, 2, 224, 164, 160, 0, 2, 224, 164, 161,
+			0, 2, 224, 164, 162, 0, 2, 224, 164, 163, 0, 4, 2, 224, 164, 154, 3, 67, 0, 2, 224, 164, 155, 0, 2, 224, 164, 156, 0, 2,
+			224, 164, 157, 0, 2, 224, 164, 158, 0, 2, 224, 164, 175, 0, 4, 2, 224, 164, 149, 3, 68, 0, 2, 224, 164, 150, 0, 2, 224, 164,
+			151, 0, 2, 224, 164, 152, 0, 2, 224, 164, 153, 0, 2, 224, 164, 185, 0, 7, 6, 1, 4, 0, 3, 108, 0, 7, 6, 1, 6, 0,
+			3, 109, 0, 4, 1, 185, 164, 224, 133, 164, 224, 3, 116, 0, 2, 224, 164, 185, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7, 6, 1,
+			8, 0, 3, 113, 0, 7, 6, 1, 9, 0, 2, 32, 3, 37, 0, 3, 112, 0, 7, 6, 1, 10, 0, 3, 122, 0, 7, 6, 1, 11,
+			0, 3, 123, 0, 4, 224, 164, 129, 3, 133, 0, 224, 164, 130, 0, 7, 6, 1, 12, 0, 3, 34, 113, 0, 7, 6, 1, 13, 0, 3,
+			45, 0, 7, 6, 1, 14, 0, 3, 116, 0, 7, 6, 1, 15, 0, 3, 36, 0, 7, 6, 1, 16, 0, 3, 114, 0, 7, 6, 1, 17,
+			0, 3, 115, 0, 4, 224, 164, 129, 3, 127, 0, 224, 164, 130, 0, 5, 2, 3, 134, 0, 7, 6, 1, 18, 0, 3, 121, 0, 7, 6,
+			1, 19, 0, 3, 39, 0, 7, 6, 1, 20, 0, 3, 119, 0, 4, 224, 164, 129, 3, 131, 0, 224, 164, 130, 0, 7, 6, 1, 21, 0,
+			3, 120, 0, 4, 224, 164, 129, 3, 130, 0, 224, 164, 130, 0, 5, 3, 3, 135, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0,
+			2, 224, 165, 141, 224, 164, 175, 3, 49, 12, 0, 3, 49, 109, 0, 224, 164, 188, 2, 17, 66, 3, 104, 0, 224, 164, 188, 3, 104, 109,
+			0, 7, 6, 1, 23, 0, 224, 164, 188, 2, 17, 66, 3, 101, 0, 224, 164, 188, 3, 101, 109, 0, 2, 17, 66, 3, 146, 0, 3, 146,
+			109, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 109, 0, 224, 164, 188, 2, 17, 66, 3, 100, 0, 224, 164, 188, 3,
+			100, 109, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 147, 0, 3, 147, 109, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 1,
+			141, 165, 224, 2, 32, 3, 68, 13, 0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0, 2, 224, 165, 141, 224, 164,
+			175, 3, 80, 12, 0, 3, 80, 109, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6, 1, 29, 0, 2,
+			17, 66, 3, 79, 0, 3, 79, 109, 0, 224, 164, 188, 2, 17, 66, 3, 88, 0, 224, 164, 188, 3, 88, 109, 0, 7, 6, 1, 30, 0,
+			2, 17, 66, 3, 145, 0, 3, 145, 109, 0, 7, 6, 1, 31, 0, 4, 1, 141, 165, 224, 2, 32, 3, 67, 0, 2, 17, 66, 0, 3,
+			67, 109, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 140, 0, 2, 224, 165, 141, 224, 164, 175, 3, 140, 12, 0, 3, 140, 109, 0, 7,
+			6, 1, 33, 0, 2, 17, 66, 3, 142, 0, 3, 142, 109, 0, 7, 6, 1, 34, 0, 224, 164, 188, 2, 17, 66, 3, 70, 0, 224, 164,
+			188, 3, 70, 109, 0, 2, 17, 66, 3, 141, 0, 3, 141, 109, 0, 7, 6, 1, 35, 0, 224, 164, 188, 2, 17, 66, 3, 70, 107, 0,
+			224, 164, 188, 3, 70, 107, 109, 0, 2, 17, 66, 3, 143, 0, 3, 143, 109, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 1,
+			141, 165, 224, 2, 32, 3, 66, 13, 0, 3, 66, 109, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 2, 224, 165, 141, 224, 164,
+			175, 3, 47, 12, 0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 138, 0, 3, 138, 109, 0, 7, 6, 1, 39, 0, 2,
+			17, 66, 3, 72, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 139, 0, 3, 139, 109, 0, 7, 6, 1, 41, 0, 4,
+			1, 141, 165, 224, 176, 164, 224, 2, 32, 3, 50, 0, 2, 17, 66, 0, 1, 141, 165, 224, 2, 32, 3, 50, 13, 0, 3, 50, 109, 0,
+			7, 6, 1, 42, 0, 3, 50, 12, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 2, 224, 165, 141, 224, 164, 175, 3, 48, 12,
+			0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 224, 164, 188, 2, 17, 66, 3, 83, 0, 224, 164, 188, 3, 83, 109, 0, 2, 17, 66, 3,
+			136, 0, 3, 136, 109, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3,
+			137, 0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 4, 1, 141, 165, 224, 168, 164, 224, 2, 32, 3, 65, 0, 1, 141, 165, 224, 176, 164,
+			224, 2, 32, 0, 2, 17, 66, 0, 1, 141, 165, 224, 2, 32, 3, 65, 13, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 2, 17, 66,
+			3, 57, 0, 1, 141, 165, 224, 2, 32, 3, 57, 13, 0, 3, 57, 109, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 1, 141,
+			165, 224, 2, 32, 3, 34, 13, 0, 3, 34, 109, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 34, 0, 1, 141, 165, 224, 2, 32, 3,
+			34, 13, 0, 3, 34, 109, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 1, 141, 165, 224, 2, 32, 3, 55, 13, 0, 3, 55,
+			109, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109, 0, 7, 6, 1,
+			53, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109, 0, 7, 6, 1, 54, 0, 8, 2, 17,
+			66, 3, 58, 0, 8, 3, 58, 109, 0, 4, 2, 17, 66, 3, 84, 0, 8, 2, 224, 165, 141, 0, 3, 84, 109, 0, 7, 6, 1, 55,
+			0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 109, 0, 7, 6, 1, 57,
+			0, 2, 17, 66, 3, 89, 0, 3, 89, 109, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 108, 0, 3, 108, 109, 0, 7, 6, 1, 62,
+			0, 3, 12, 0, 7, 6, 1, 63, 0, 3, 118, 0, 224, 164, 181, 3, 135, 0, 7, 6, 1, 64, 0, 3, 113, 0, 7, 6, 1, 65,
+			0, 2, 32, 3, 37, 0, 3, 112, 0, 7, 6, 1, 66, 0, 3, 122, 0, 7, 6, 1, 67, 0, 3, 123, 0, 4, 224, 164, 129, 3,
+			133, 0, 224, 164, 130, 0, 7, 6, 1, 68, 0, 3, 34, 113, 0, 7, 6, 1, 69, 0, 3, 34, 113, 0, 7, 6, 1, 70, 0, 3,
+			116, 0, 7, 6, 1, 71, 0, 3, 36, 0, 7, 6, 1, 72, 0, 3, 114, 0, 7, 6, 1, 73, 0, 3, 115, 0, 4, 224, 164, 129,
+			3, 127, 0, 224, 164, 130, 0, 5, 2, 3, 134, 0, 7, 6, 1, 74, 0, 3, 121, 0, 7, 6, 1, 75, 0, 3, 39, 0, 7, 6,
+			1, 76, 0, 3, 119, 0, 4, 224, 164, 129, 3, 131, 0, 224, 164, 130, 0, 7, 6, 1, 77, 0, 3, 120, 0, 4, 224, 164, 129, 3,
+			130, 0, 224, 164, 130, 0, 5, 3, 3, 135, 0, 7, 6, 1, 78, 0, 3, 0, 7, 6, 1, 81, 0, 3, 131, 65, 0, 7, 6, 1,
+			89, 0, 2, 17, 66, 3, 104, 0, 3, 104, 109, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 101, 0, 3, 101, 109, 0, 7, 6, 1,
+			91, 0, 2, 17, 66, 3, 100, 0, 3, 100, 109, 0, 7, 6, 1, 92, 0, 2, 17, 66, 3, 88, 0, 3, 88, 109, 0, 7, 6, 1,
+			93, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 70, 107, 0, 3, 70, 107, 109, 0, 7,
+			6, 1, 95, 0, 2, 17, 66, 3, 83, 0, 3, 83, 109, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 7,
+			6, 1, 97, 0, 3, 109, 20, 34, 34, 0, 7, 6, 1, 98, 0, 3, 45, 12, 0, 7, 6, 1, 99, 0, 3, 45, 0, 7, 6, 1,
+			100, 0, 3, 45, 12, 0, 7, 6, 111, 0, 3, 21, 0, 102, 1, 32, 32, 15, 2, 32, 32, 15, 194, 160, 194, 160, 194, 160, 3, 65,
+			36, 0, 7, 6, 0, 37, 3, 48, 109, 89, 116, 50, 47, 0, 36, 3, 72, 121, 55, 109, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts23 = FileInMemory_createWithData (5723, reinterpret_cast<const char *> (&espeakdata_dicts23_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/hi_dict", 
 			U"hi");
-		my addItem_move (espeakdata_dicts27.move());
+		Collection_addItem (me.peek(), espeakdata_dicts23.transfer());
+
+		static unsigned char espeakdata_dicts24_data[2417] = {
+			0, 4, 0, 0, 93, 8, 0, 0, 0, 0, 0, 0, 0, 7, 65, 4, 35, 0, 15, 14, 4, 193, 4, 72, 4, 193, 4, 72, 0, 5,
+			194, 5, 0, 72, 0, 0, 0, 6, 65, 8, 71, 37, 0, 0, 0, 0, 0, 6, 65, 12, 89, 37, 0, 0, 0, 0, 0, 6, 65, 16,
+			72, 37, 0, 0, 0, 0, 0, 5, 65, 20, 36, 0, 0, 5, 194, 100, 240, 72, 0, 0, 0, 6, 65, 24, 112, 83, 0, 0, 0, 0,
+			0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 6, 65, 32, 35, 91, 0, 0, 0, 0, 9, 1, 35, 35, 91, 35, 57, 0, 27, 0,
+			5, 65, 36, 37, 0, 0, 9, 1, 37, 48, 40, 89, 113, 0, 27, 0, 0, 0, 6, 65, 40, 90, 37, 0, 0, 0, 12, 1, 42, 35,
+			89, 47, 36, 34, 37, 89, 0, 27, 0, 9, 1, 43, 48, 55, 37, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 9, 1,
+			47, 89, 55, 35, 91, 0, 27, 0, 7, 65, 48, 36, 55, 0, 14, 0, 0, 0, 0, 7, 65, 52, 36, 65, 0, 14, 0, 0, 0, 0,
+			7, 65, 56, 36, 50, 0, 14, 0, 0, 0, 0, 5, 65, 60, 39, 0, 0, 9, 1, 61, 36, 81, 35, 55, 0, 27, 0, 0, 0, 6,
+			65, 64, 48, 37, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 40, 0, 0, 0, 0, 0, 7, 65, 72, 35, 34, 35, 0, 0, 0, 0,
+			0, 6, 65, 76, 112, 89, 0, 0, 0, 0, 0, 7, 65, 80, 47, 35, 0, 14, 12, 65, 80, 47, 35, 48, 0, 72, 81, 97, 112, 32,
+			0, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88, 84, 35, 0, 0, 0, 0, 0, 11, 65, 92, 72, 40, 71, 84,
+			6, 35, 0, 14, 12, 1, 92, 113, 47, 37, 89, 55, 35, 91, 0, 27, 0, 0, 0, 0, 10, 4, 95, 49, 77, 49, 65, 37, 55, 0,
+			0, 0, 0, 0, 13, 65, 100, 37, 48, 89, 37, 55, 6, 39, 50, 0, 14, 0, 0, 0, 0, 7, 65, 104, 88, 36, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 176, 72, 28, 0, 0, 0, 0, 0, 0, 11, 4, 95, 4, 16,
+			20, 10, 48, 58, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 4, 224, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 19, 128, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 53, 113, 78,
+			72, 0, 0, 6, 195, 100, 243, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 57, 47, 34, 113, 47, 50, 112, 83,
+			0, 12, 3, 95, 50, 49, 84, 114, 47, 36, 38, 114, 0, 0, 13, 3, 95, 51, 56, 47, 34, 113, 47, 111, 37, 47, 0, 8, 3, 95,
+			50, 48, 84, 114, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 49, 47, 34, 113, 47, 36, 38, 114, 0, 0, 10, 3, 95, 51,
+			48, 47, 34, 113, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+			3, 95, 54, 49, 89, 58, 35, 89, 113, 47, 36, 38, 114, 0, 0, 12, 3, 95, 54, 48, 89, 58, 35, 89, 113, 47, 0, 10, 3, 95,
+			51, 88, 47, 34, 113, 50, 0, 0, 8, 3, 95, 48, 67, 89, 113, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 55, 49, 89, 58, 35,
+			89, 113, 47, 36, 38, 116, 88, 0, 0, 15, 3, 95, 55, 48, 89, 58, 35, 89, 113, 47, 72, 37, 89, 0, 0, 0, 0, 0, 6, 195,
+			65, 32, 76, 72, 0, 0, 0, 5, 194, 48, 16, 72, 12, 3, 95, 49, 57, 72, 37, 88, 50, 112, 83, 0, 0, 12, 3, 95, 49, 56,
+			72, 37, 88, 111, 37, 47, 0, 0, 0, 0, 0, 7, 195, 21, 2, 64, 72, 8, 0, 0, 0, 12, 3, 95, 50, 57, 84, 114, 47, 50,
+			112, 83, 0, 8, 3, 95, 49, 49, 116, 88, 0, 0, 12, 3, 95, 50, 56, 84, 114, 47, 111, 37, 47, 0, 9, 3, 95, 49, 48, 72,
+			37, 89, 0, 0, 10, 3, 95, 49, 51, 47, 34, 112, 88, 0, 0, 9, 3, 95, 49, 50, 72, 40, 88, 0, 0, 9, 3, 95, 49, 53,
+			49, 114, 88, 0, 0, 11, 3, 95, 49, 52, 49, 35, 47, 127, 88, 0, 0, 11, 3, 95, 49, 55, 72, 37, 89, 112, 47, 0, 0, 9,
+			3, 95, 49, 54, 89, 112, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 52, 57, 49, 35, 34, 113, 47, 50, 112, 83,
+			0, 0, 14, 3, 95, 52, 56, 49, 35, 34, 113, 47, 111, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 53, 57, 89, 114,
+			49, 113, 47, 50, 112, 83, 0, 14, 3, 95, 52, 49, 49, 35, 34, 113, 47, 36, 38, 114, 0, 0, 14, 3, 95, 53, 56, 89, 114, 49,
+			113, 47, 111, 37, 47, 0, 11, 3, 95, 52, 48, 49, 35, 34, 113, 47, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 53, 49, 89,
+			114, 49, 113, 47, 36, 38, 114, 0, 0, 11, 3, 95, 53, 48, 89, 114, 49, 113, 47, 0, 9, 3, 95, 50, 88, 84, 114, 50, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 52, 88, 49, 35, 34, 113, 50, 0, 0, 0, 0, 0,
+			0, 0, 0, 15, 3, 95, 56, 49, 49, 35, 47, 34, 36, 84, 114, 47, 114, 0, 0, 11, 3, 95, 53, 88, 89, 114, 49, 113, 50, 0,
+			0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 57, 49, 49, 35, 47, 34, 36, 84, 114, 47, 116, 88, 0, 0, 12, 3, 95, 54, 88, 89,
+			58, 35, 89, 113, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 49, 35, 47,
+			34, 36, 84, 114, 0, 0, 0, 0, 0, 6, 195, 56, 245, 64, 72, 0, 0, 0, 5, 194, 44, 144, 72, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 144,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 52, 71, 37, 55, 57, 39, 50, 0, 0, 0, 13, 4, 95, 48,
+			77, 50, 65, 37, 55, 57, 39, 50, 0, 0, 12, 4, 95, 48, 77, 51, 65, 37, 55, 57, 35, 0, 0, 0, 10, 4, 95, 48, 77, 49,
+			65, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+			194, 61, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			5, 194, 76, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 16, 72, 0, 0, 0, 0, 6, 195, 80, 20, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 80, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 60, 224, 72, 0, 0, 0, 0, 11, 2, 195, 168, 36, 81, 34, 6, 35, 84,
+			0, 0, 0, 0, 0, 0, 0, 11, 2, 195, 178, 39, 81, 34, 6, 35, 84, 0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 80, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 95, 14,
+			36, 50, 0, 0, 7, 2, 95, 13, 36, 65, 0, 0, 7, 2, 95, 12, 36, 55, 0, 0, 0, 0, 0, 0, 11, 2, 95, 23, 72, 40,
+			71, 84, 6, 35, 0, 0, 0, 0, 7, 2, 95, 20, 47, 35, 0, 0, 0, 0, 13, 2, 95, 25, 37, 48, 89, 37, 55, 6, 39, 50,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 147, 128, 72, 0, 0, 0, 0, 6, 195, 56, 19, 128, 72, 0, 0, 0,
+			0, 0, 8, 2, 95, 46, 48, 58, 114, 0, 0, 0, 10, 2, 95, 44, 84, 37, 81, 37, 55, 0, 0, 8, 2, 95, 51, 47, 58, 35,
+			0, 0, 7, 2, 95, 50, 72, 36, 0, 0, 6, 2, 95, 49, 114, 0, 0, 9, 2, 95, 48, 88, 36, 58, 39, 0, 0, 8, 2, 95,
+			55, 89, 112, 47, 0, 0, 8, 2, 95, 54, 89, 37, 89, 0, 0, 8, 2, 95, 53, 89, 114, 49, 0, 0, 8, 2, 95, 52, 49, 35,
+			47, 0, 0, 13, 2, 95, 59, 48, 58, 114, 84, 37, 81, 37, 55, 0, 0, 0, 8, 2, 95, 57, 50, 112, 83, 0, 0, 8, 2, 95,
+			56, 111, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 11, 195, 168, 11, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 64, 245, 64, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 160, 0, 3, 35, 0, 7, 6, 195, 168, 0, 3, 112, 0, 7, 6, 195, 178,
+			0, 3, 127, 0, 7, 6, 97, 0, 3, 35, 0, 110, 2, 25, 3, 113, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49,
+			0, 2, 17, 71, 3, 89, 0, 104, 3, 91, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 36, 0, 110, 2, 25, 3, 114,
+			0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 3, 0, 7, 6, 105, 0, 3, 37, 0, 7, 6,
+			106, 0, 3, 90, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0,
+			3, 50, 0, 103, 3, 68, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 40, 0, 110, 2, 25, 3, 116, 0, 7, 6, 112, 0, 3, 48,
+			0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0, 3, 34, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 99,
+			104, 3, 76, 0, 7, 6, 117, 0, 3, 40, 0, 105, 3, 111, 37, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0,
+			7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7,
+			6, 0, 36, 3, 72, 39, 55, 35, 0, 195, 167, 3, 89, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts24 = FileInMemory_createWithData (2416, reinterpret_cast<const char *> (&espeakdata_dicts24_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ht_dict", 
+			U"ht");
+		Collection_addItem (me.peek(), espeakdata_dicts24.transfer());
 
-		static unsigned char espeakdata_dicts28_data[113341] = {
-			0, 4, 0, 0, 72, 56, 1, 0, 11, 200, 60, 197, 129, 76, 112, 84, 88, 16, 11, 8, 197, 44, 83, 5, 80, 144, 11, 8, 197, 72,
-			18, 148, 4, 208, 11, 8, 197, 8, 83, 142, 20, 208, 11, 7, 196, 4, 71, 19, 4, 11, 0, 10, 199, 149, 72, 140, 80, 85, 22, 20,
-			11, 6, 195, 137, 10, 204, 11, 0, 59, 73, 24, 83, 22, 137, 65, 76, 136, 225, 75, 83, 109, 55, 84, 113, 47, 109, 55, 113, 50, 109,
-			49, 23, 89, 111, 49, 91, 113, 81, 109, 91, 12, 113, 81, 113, 47, 0, 11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 115,
-			195, 169, 103, 195, 169, 116, 32, 8, 197, 32, 151, 14, 101, 64, 11, 12, 201, 46, 132, 142, 100, 86, 133, 80, 33, 78, 11, 0, 0, 8,
-			197, 88, 149, 20, 20, 208, 11, 0, 7, 65, 4, 108, 12, 0, 49, 15, 204, 81, 81, 1, 81, 195, 12, 5, 3, 212, 8, 19, 128, 11,
-			26, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 47, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 116, 32, 29, 65, 4, 108,
-			6, 15, 48, 108, 50, 108, 89, 39, 49, 108, 47, 0, 11, 81, 112, 97, 110, 97, 115, 122, 111, 107, 97, 116, 32, 26, 65, 4, 108, 6,
-			15, 72, 110, 50, 47, 113, 91, 47, 0, 11, 81, 100, 195, 182, 110, 116, 195, 169, 115, 116, 32, 25, 65, 4, 108, 6, 15, 65, 108, 79,
-			108, 52, 39, 49, 0, 11, 81, 109, 97, 103, 121, 97, 114, 111, 107, 32, 27, 65, 4, 108, 6, 15, 107, 109, 57, 88, 109, 47, 109, 47,
-			0, 11, 81, 104, 101, 108, 121, 122, 101, 116, 101, 116, 32, 21, 65, 4, 108, 6, 15, 49, 108, 57, 114, 47, 0, 11, 81, 107, 97, 106,
-			195, 161, 116, 32, 16, 65, 4, 108, 6, 15, 71, 108, 57, 0, 11, 81, 98, 97, 106, 32, 12, 201, 81, 83, 1, 40, 67, 206, 61, 48,
-			64, 11, 30, 65, 4, 108, 6, 15, 47, 111, 50, 47, 109, 47, 113, 91, 47, 0, 11, 81, 116, 195, 188, 110, 116, 101, 116, 195, 169, 115,
-			116, 32, 30, 65, 4, 108, 6, 15, 49, 109, 72, 113, 57, 109, 49, 109, 47, 0, 11, 81, 107, 101, 100, 195, 169, 108, 121, 101, 107, 101,
-			116, 32, 22, 65, 4, 108, 6, 15, 89, 39, 49, 114, 91, 0, 11, 81, 115, 122, 111, 107, 195, 161, 115, 32, 25, 65, 4, 108, 6, 15,
-			84, 37, 55, 114, 81, 39, 50, 0, 11, 81, 118, 105, 108, 195, 161, 103, 111, 110, 32, 29, 65, 4, 108, 6, 15, 49, 40, 47, 108, 47,
-			115, 49, 108, 47, 0, 11, 81, 107, 117, 116, 97, 116, 195, 179, 107, 97, 116, 32, 28, 65, 4, 108, 6, 15, 71, 37, 88, 39, 76, 12,
-			114, 81, 0, 11, 81, 98, 105, 122, 111, 116, 116, 115, 195, 161, 103, 32, 26, 65, 4, 108, 6, 15, 83, 109, 55, 108, 72, 108, 47, 108,
-			0, 11, 81, 102, 101, 108, 97, 100, 97, 116, 97, 32, 35, 65, 4, 108, 6, 15, 65, 115, 72, 39, 91, 112, 47, 114, 91, 39, 49, 0,
-			11, 81, 109, 195, 179, 100, 111, 115, 195, 173, 116, 195, 161, 115, 111, 107, 32, 25, 65, 4, 108, 6, 15, 83, 109, 55, 111, 55, 109, 47,
-			0, 11, 81, 102, 101, 108, 195, 188, 108, 101, 116, 32, 28, 65, 4, 108, 6, 15, 47, 108, 71, 55, 109, 47, 107, 109, 88, 0, 11, 81,
-			116, 97, 98, 108, 101, 116, 104, 101, 122, 32, 23, 65, 4, 108, 6, 15, 89, 37, 50, 47, 109, 47, 0, 11, 81, 115, 122, 105, 110, 116,
-			101, 116, 32, 28, 65, 4, 108, 6, 15, 49, 113, 89, 111, 55, 113, 49, 0, 11, 81, 107, 195, 169, 115, 122, 195, 188, 108, 195, 169, 107,
-			32, 22, 65, 4, 108, 6, 15, 65, 39, 71, 37, 55, 47, 0, 11, 81, 109, 111, 98, 105, 108, 116, 32, 24, 65, 4, 108, 6, 15, 47,
-			109, 55, 109, 83, 39, 50, 0, 11, 81, 116, 101, 108, 101, 102, 111, 110, 32, 24, 65, 4, 108, 6, 15, 49, 113, 88, 71, 118, 55, 0,
-			11, 81, 107, 195, 169, 122, 98, 197, 145, 108, 32, 17, 65, 4, 108, 6, 15, 91, 114, 52, 0, 11, 81, 115, 195, 161, 114, 32, 22, 65,
-			4, 108, 6, 15, 107, 39, 50, 55, 108, 48, 0, 11, 81, 104, 111, 110, 108, 97, 112, 32, 40, 65, 4, 108, 6, 15, 48, 52, 109, 88,
-			109, 50, 47, 114, 55, 114, 91, 50, 108, 49, 0, 11, 81, 112, 114, 101, 122, 101, 110, 116, 195, 161, 108, 195, 161, 115, 110, 97, 107, 32,
-			24, 65, 4, 108, 6, 15, 83, 109, 55, 108, 72, 108, 47, 0, 11, 81, 102, 101, 108, 97, 100, 97, 116, 32, 27, 65, 4, 108, 6, 15,
-			89, 109, 34, 84, 109, 88, 109, 47, 0, 11, 81, 115, 122, 101, 114, 118, 101, 122, 101, 116, 32, 26, 65, 4, 108, 6, 15, 107, 108, 47,
-			115, 91, 114, 81, 0, 11, 81, 104, 97, 116, 195, 179, 115, 195, 161, 103, 32, 26, 65, 4, 108, 6, 15, 49, 110, 55, 47, 118, 52, 109,
-			0, 11, 81, 107, 195, 182, 108, 116, 197, 145, 114, 101, 32, 22, 65, 4, 108, 6, 15, 47, 37, 47, 49, 39, 47, 0, 11, 81, 116, 105,
-			116, 107, 111, 116, 32, 24, 65, 4, 108, 6, 15, 84, 114, 55, 108, 89, 47, 0, 11, 81, 118, 195, 161, 108, 97, 115, 122, 116, 32, 24,
-			65, 4, 108, 6, 15, 81, 113, 48, 113, 52, 109, 0, 11, 81, 103, 195, 169, 112, 195, 169, 114, 101, 32, 39, 65, 4, 108, 6, 15, 55,
-			109, 81, 83, 39, 50, 47, 39, 91, 108, 71, 50, 108, 49, 0, 11, 81, 108, 101, 103, 102, 111, 110, 116, 111, 115, 97, 98, 98, 110, 97,
-			107, 32, 41, 65, 4, 108, 6, 15, 49, 37, 57, 109, 55, 109, 50, 47, 113, 91, 109, 72, 12, 109, 55, 0, 11, 81, 107, 105, 106, 101,
-			108, 101, 110, 116, 195, 169, 115, 101, 100, 100, 101, 108, 32, 32, 65, 4, 108, 6, 15, 49, 113, 48, 84, 37, 91, 109, 55, 118, 49, 0,
-			11, 81, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197, 145, 107, 32, 31, 65, 4, 108, 6, 15, 49, 109, 52, 111, 55, 109, 47, 71, 109,
-			50, 0, 11, 81, 107, 101, 114, 195, 188, 108, 101, 116, 98, 101, 110, 32, 28, 65, 4, 108, 6, 15, 52, 109, 50, 119, 109, 52, 71, 109,
-			0, 11, 81, 114, 101, 110, 100, 115, 122, 101, 114, 98, 101, 32, 29, 65, 4, 108, 6, 15, 52, 109, 50, 119, 109, 52, 113, 47, 0, 11,
-			81, 114, 101, 110, 100, 115, 122, 101, 114, 195, 169, 116, 32, 26, 65, 4, 108, 6, 15, 72, 39, 55, 81, 39, 49, 108, 47, 0, 11, 81,
-			100, 111, 108, 103, 111, 107, 97, 116, 32, 42, 65, 4, 108, 6, 15, 107, 39, 88, 88, 114, 89, 115, 55, 114, 91, 39, 49, 108, 47, 0,
-			11, 81, 104, 111, 122, 122, 195, 161, 115, 122, 195, 179, 108, 195, 161, 115, 111, 107, 97, 116, 32, 23, 65, 4, 108, 6, 15, 50, 113, 48,
-			50, 109, 49, 0, 11, 81, 110, 195, 169, 112, 110, 101, 107, 32, 28, 65, 4, 108, 6, 15, 83, 109, 55, 114, 55, 12, 114, 91, 0, 11,
-			81, 102, 101, 108, 195, 161, 108, 108, 195, 161, 115, 32, 31, 65, 4, 108, 6, 15, 84, 113, 55, 109, 65, 113, 67, 109, 65, 0, 11, 81,
-			118, 195, 169, 108, 101, 109, 195, 169, 110, 121, 101, 109, 32, 27, 65, 4, 108, 6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 11, 81,
-			112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 9, 198, 52, 147, 132, 20, 118, 64, 11, 36, 65, 4, 108, 6, 15, 83, 109, 57, 55, 109,
-			89, 47, 118, 49, 50, 109, 49, 0, 11, 81, 102, 101, 106, 108, 101, 115, 122, 116, 197, 145, 107, 110, 101, 107, 32, 23, 65, 4, 108, 6,
-			15, 119, 113, 55, 23, 108, 88, 0, 11, 82, 99, 195, 169, 108, 32, 97, 122, 32, 18, 65, 4, 108, 6, 15, 107, 37, 71, 108, 0, 11,
-			81, 104, 105, 98, 97, 32, 28, 65, 4, 108, 6, 15, 47, 108, 52, 47, 108, 55, 65, 108, 47, 0, 11, 81, 116, 97, 114, 116, 97, 108,
-			109, 97, 116, 32, 17, 65, 4, 108, 6, 15, 119, 112, 65, 0, 11, 81, 99, 195, 173, 109, 32, 22, 65, 4, 108, 6, 15, 72, 39, 55,
-			81, 39, 47, 0, 11, 81, 100, 111, 108, 103, 111, 116, 32, 25, 65, 4, 108, 6, 15, 107, 115, 50, 108, 48, 39, 49, 0, 11, 81, 104,
-			195, 179, 110, 97, 112, 111, 107, 32, 19, 65, 4, 108, 6, 15, 83, 110, 55, 72, 0, 11, 81, 102, 195, 182, 108, 100, 32, 30, 65, 4,
-			108, 6, 15, 49, 113, 52, 72, 113, 91, 23, 108, 88, 0, 11, 82, 107, 195, 169, 114, 100, 195, 169, 115, 32, 97, 122, 32, 32, 65, 4,
-			108, 6, 15, 76, 108, 55, 114, 72, 39, 49, 50, 108, 49, 0, 11, 81, 99, 115, 97, 108, 195, 161, 100, 111, 107, 110, 97, 107, 32, 24,
-			65, 4, 108, 6, 15, 47, 52, 109, 50, 72, 109, 47, 0, 11, 81, 116, 114, 101, 110, 100, 101, 116, 32, 26, 65, 4, 108, 6, 15, 47,
-			40, 72, 108, 47, 71, 108, 50, 0, 11, 81, 116, 117, 100, 97, 116, 98, 97, 110, 32, 33, 65, 4, 108, 6, 15, 65, 109, 81, 39, 55,
-			72, 114, 91, 12, 108, 55, 0, 11, 81, 109, 101, 103, 111, 108, 100, 195, 161, 115, 115, 97, 108, 32, 30, 65, 4, 108, 6, 15, 89, 108,
-			49, 108, 72, 113, 49, 39, 47, 0, 11, 81, 115, 122, 97, 107, 97, 100, 195, 169, 107, 111, 116, 32, 28, 65, 4, 108, 6, 15, 107, 109,
-			57, 88, 109, 47, 113, 47, 0, 11, 81, 104, 101, 108, 121, 122, 101, 116, 195, 169, 116, 32, 30, 65, 4, 108, 6, 15, 84, 114, 55, 108,
-			89, 39, 49, 108, 47, 0, 11, 81, 118, 195, 161, 108, 97, 115, 122, 111, 107, 97, 116, 32, 27, 65, 4, 108, 6, 15, 72, 39, 107, 114,
-			67, 88, 115, 0, 11, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 179, 32, 36, 65, 4, 108, 6, 15, 72, 39, 107, 114, 67, 88, 114,
-			91, 34, 115, 55, 0, 11, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 161, 115, 114, 195, 179, 108, 32, 31, 65, 4, 108, 6, 15, 72,
-			39, 107, 114, 67, 88, 114, 91, 47, 0, 11, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 161, 115, 116, 32, 21, 65, 4, 108, 6, 15,
-			83, 113, 52, 83, 37, 0, 11, 81, 102, 195, 169, 114, 102, 105, 32, 26, 65, 4, 108, 6, 15, 57, 110, 84, 118, 71, 109, 50, 0, 11,
-			81, 106, 195, 182, 118, 197, 145, 98, 101, 110, 32, 28, 65, 4, 108, 6, 15, 71, 111, 50, 47, 109, 47, 113, 91, 0, 11, 81, 98, 195,
-			188, 110, 116, 101, 116, 195, 169, 115, 32, 22, 65, 4, 108, 6, 15, 91, 39, 52, 71, 108, 50, 0, 11, 81, 115, 111, 114, 98, 97, 110,
-			32, 21, 65, 4, 108, 6, 15, 47, 110, 65, 109, 81, 0, 11, 81, 116, 195, 182, 109, 101, 103, 32, 20, 65, 4, 108, 6, 15, 91, 39,
-			52, 71, 108, 0, 11, 81, 115, 111, 114, 98, 97, 32, 22, 65, 4, 108, 10, 6, 15, 107, 109, 57, 109, 47, 0, 11, 81, 104, 101, 108,
-			121, 101, 116, 32, 28, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 109, 65, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101,
-			109, 32, 23, 65, 4, 108, 6, 15, 65, 113, 52, 81, 109, 47, 0, 11, 81, 109, 195, 169, 114, 103, 101, 116, 32, 24, 65, 4, 108, 6,
-			15, 49, 113, 52, 72, 113, 91, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 32, 26, 65, 4, 108, 6, 15, 84, 108, 55, 115, 91,
-			114, 81, 0, 11, 81, 118, 97, 108, 195, 179, 115, 195, 161, 103, 32, 29, 65, 4, 108, 6, 15, 49, 110, 55, 76, 113, 81, 109, 47, 0,
-			11, 81, 107, 195, 182, 108, 116, 115, 195, 169, 103, 101, 116, 32, 26, 65, 4, 108, 6, 15, 89, 109, 52, 84, 109, 88, 118, 0, 11, 81,
-			115, 122, 101, 114, 118, 101, 122, 197, 145, 32, 29, 65, 4, 108, 6, 15, 107, 39, 50, 55, 108, 48, 57, 114, 50, 0, 11, 81, 104, 111,
-			110, 108, 97, 112, 106, 195, 161, 110, 32, 33, 65, 4, 108, 6, 15, 83, 109, 55, 47, 113, 47, 109, 55, 12, 109, 55, 0, 11, 81, 102,
-			101, 108, 116, 195, 169, 116, 101, 108, 108, 101, 108, 32, 31, 65, 4, 108, 6, 15, 49, 37, 47, 113, 47, 109, 55, 12, 109, 55, 0, 11,
-			81, 107, 105, 116, 195, 169, 116, 101, 108, 108, 101, 108, 32, 28, 65, 4, 108, 6, 15, 72, 110, 50, 47, 113, 91, 52, 109, 0, 11, 81,
-			100, 195, 182, 110, 116, 195, 169, 115, 114, 101, 32, 29, 65, 4, 108, 6, 15, 89, 110, 84, 109, 76, 12, 113, 81, 0, 11, 81, 115, 122,
-			195, 182, 118, 101, 116, 115, 195, 169, 103, 32, 30, 65, 4, 108, 6, 15, 89, 110, 84, 109, 76, 12, 113, 81, 0, 11, 81, 115, 122, 195,
-			182, 118, 101, 116, 116, 115, 195, 169, 103, 32, 21, 65, 4, 108, 6, 15, 119, 113, 61, 57, 108, 0, 11, 81, 99, 195, 169, 108, 106, 97,
-			32, 43, 65, 4, 108, 6, 15, 65, 109, 81, 89, 39, 52, 112, 47, 114, 91, 39, 49, 71, 108, 50, 0, 11, 81, 109, 101, 103, 115, 122,
-			111, 114, 195, 173, 116, 195, 161, 115, 111, 107, 98, 97, 110, 32, 23, 65, 4, 108, 6, 15, 67, 40, 81, 108, 47, 37, 0, 11, 81, 110,
-			121, 117, 103, 97, 116, 105, 32, 47, 65, 4, 108, 6, 15, 49, 110, 88, 110, 50, 91, 113, 81, 23, 91, 39, 52, 108, 37, 71, 108, 50,
-			0, 11, 82, 107, 195, 182, 122, 195, 182, 110, 115, 195, 169, 103, 32, 115, 111, 114, 97, 105, 98, 97, 110, 32, 23, 65, 4, 108, 6, 15,
-			107, 109, 57, 88, 109, 47, 0, 11, 81, 104, 101, 108, 121, 122, 101, 116, 32, 23, 65, 4, 108, 6, 15, 65, 113, 52, 55, 109, 81, 0,
-			11, 81, 109, 195, 169, 114, 108, 101, 103, 32, 26, 65, 4, 108, 6, 15, 47, 109, 52, 84, 109, 88, 109, 47, 0, 11, 81, 116, 101, 114,
-			118, 101, 122, 101, 116, 32, 28, 65, 4, 108, 6, 15, 107, 108, 55, 81, 108, 47, 115, 49, 0, 11, 81, 104, 97, 108, 108, 103, 97, 116,
-			195, 179, 107, 32, 49, 65, 4, 108, 6, 15, 49, 39, 52, 114, 71, 12, 37, 23, 109, 55, 49, 113, 48, 88, 109, 55, 113, 91, 0, 11,
-			82, 107, 111, 114, 195, 161, 98, 98, 105, 32, 101, 108, 107, 195, 169, 112, 122, 101, 108, 195, 169, 115, 32, 30, 65, 4, 108, 6, 15, 107,
-			114, 47, 12, 113, 52, 71, 109, 50, 0, 11, 81, 104, 195, 161, 116, 116, 195, 169, 114, 98, 101, 110, 32, 36, 65, 4, 108, 6, 15, 49,
-			110, 55, 76, 113, 81, 109, 49, 52, 118, 55, 0, 11, 81, 107, 195, 182, 108, 116, 115, 195, 169, 103, 101, 107, 114, 197, 145, 108, 32, 32,
-			65, 4, 108, 6, 23, 107, 108, 55, 81, 108, 47, 115, 50, 108, 49, 0, 11, 81, 104, 97, 108, 108, 103, 97, 116, 195, 179, 110, 97, 107,
-			32, 28, 65, 4, 108, 6, 15, 84, 114, 55, 47, 39, 88, 114, 91, 0, 11, 81, 118, 195, 161, 108, 116, 111, 122, 195, 161, 115, 32, 28,
-			65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 52, 109, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 114, 101, 32, 37, 65, 4,
-			108, 6, 15, 79, 115, 79, 89, 109, 52, 109, 49, 113, 52, 47, 0, 11, 81, 103, 121, 195, 179, 103, 121, 115, 122, 101, 114, 101, 107, 195,
-			169, 114, 116, 32, 24, 65, 4, 108, 6, 15, 71, 109, 47, 109, 81, 109, 49, 0, 11, 81, 98, 101, 116, 101, 103, 101, 107, 32, 78, 65,
-			4, 108, 6, 15, 71, 109, 47, 109, 81, 109, 49, 50, 109, 49, 23, 108, 6, 15, 79, 115, 79, 89, 109, 52, 47, 114, 65, 39, 81, 108,
-			47, 114, 91, 114, 47, 0, 11, 83, 98, 101, 116, 101, 103, 101, 107, 110, 101, 107, 32, 97, 32, 103, 121, 195, 179, 103, 121, 115, 122, 101,
-			114, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 195, 161, 116, 32, 20, 65, 4, 108, 6, 15, 47, 113, 67, 47, 0, 11, 81, 116,
-			195, 169, 110, 121, 116, 32, 26, 65, 4, 108, 6, 15, 72, 112, 57, 108, 88, 114, 91, 0, 11, 81, 100, 195, 173, 106, 97, 122, 195, 161,
-			115, 32, 26, 65, 4, 108, 6, 15, 67, 39, 65, 39, 88, 115, 49, 0, 11, 81, 110, 121, 111, 109, 111, 122, 195, 179, 107, 32, 35, 65,
-			4, 108, 6, 15, 83, 109, 55, 109, 55, 118, 91, 113, 81, 109, 47, 0, 11, 81, 102, 101, 108, 101, 108, 197, 145, 115, 115, 195, 169, 103,
-			101, 116, 32, 21, 65, 4, 108, 6, 15, 47, 111, 88, 109, 47, 0, 11, 81, 116, 195, 188, 122, 101, 116, 32, 26, 65, 4, 108, 6, 15,
-			47, 113, 65, 114, 71, 108, 50, 0, 11, 81, 116, 195, 169, 109, 195, 161, 98, 97, 110, 32, 25, 65, 4, 108, 6, 15, 83, 109, 55, 109,
-			55, 118, 91, 0, 11, 81, 102, 101, 108, 101, 108, 197, 145, 115, 32, 34, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 109, 49, 71,
-			109, 50, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101, 107, 98, 101, 110, 32, 26, 65, 4, 108, 6, 15, 72, 39, 55, 81, 39,
-			72, 108, 47, 0, 11, 81, 100, 111, 108, 103, 111, 100, 97, 116, 32, 30, 65, 4, 108, 6, 23, 107, 108, 79, 39, 65, 108, 12, 67, 47,
-			0, 11, 81, 104, 97, 103, 121, 111, 109, 195, 161, 110, 121, 116, 32, 16, 65, 4, 108, 6, 15, 91, 39, 49, 0, 11, 81, 115, 111, 107,
-			32, 34, 65, 4, 108, 6, 15, 49, 113, 48, 109, 91, 12, 113, 81, 109, 37, 47, 0, 11, 81, 107, 195, 169, 112, 101, 115, 115, 195, 169,
-			103, 101, 105, 116, 32, 35, 65, 4, 108, 6, 15, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 47, 0, 11, 81, 102, 101, 108, 104, 97,
-			115, 122, 110, 195, 161, 108, 195, 179, 116, 32, 18, 65, 4, 108, 6, 15, 119, 37, 49, 12, 0, 11, 81, 99, 105, 107, 107, 32, 33, 65,
-			4, 108, 6, 15, 83, 114, 57, 55, 57, 108, 37, 50, 49, 108, 47, 0, 11, 81, 102, 195, 161, 106, 108, 106, 97, 105, 110, 107, 97, 116,
-			32, 41, 65, 4, 108, 6, 15, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 49, 50, 108, 49, 0, 11, 81, 102, 101, 108, 104, 97, 115,
-			122, 110, 195, 161, 108, 195, 179, 107, 110, 97, 107, 32, 36, 65, 4, 108, 6, 23, 91, 111, 57, 57, 109, 89, 47, 118, 71, 109, 50, 0,
-			11, 81, 115, 195, 188, 108, 108, 121, 101, 115, 122, 116, 197, 145, 98, 101, 110, 32, 28, 65, 4, 108, 6, 23, 83, 109, 57, 55, 118, 72,
-			113, 91, 0, 11, 81, 102, 101, 106, 108, 197, 145, 100, 195, 169, 115, 32, 26, 65, 4, 108, 6, 23, 52, 109, 50, 119, 109, 52, 47, 0,
-			11, 81, 114, 101, 110, 100, 115, 122, 101, 114, 116, 32, 30, 65, 4, 108, 6, 15, 55, 113, 81, 65, 39, 88, 81, 114, 91, 0, 11, 81,
-			108, 195, 169, 103, 109, 111, 122, 103, 195, 161, 115, 32, 23, 65, 4, 108, 6, 9, 15, 49, 109, 55, 109, 47, 37, 0, 11, 81, 107, 101,
-			108, 101, 116, 105, 32, 20, 65, 4, 108, 6, 9, 15, 72, 113, 55, 37, 0, 11, 81, 100, 195, 169, 108, 105, 32, 27, 65, 4, 108, 6,
-			15, 72, 39, 49, 47, 39, 52, 50, 118, 0, 11, 81, 100, 111, 107, 116, 111, 114, 110, 197, 145, 32, 29, 65, 4, 108, 6, 23, 89, 49,
-			52, 37, 48, 47, 71, 109, 50, 0, 11, 81, 115, 122, 107, 114, 105, 112, 116, 98, 101, 110, 32, 40, 65, 4, 108, 6, 23, 83, 109, 55,
-			108, 72, 108, 47, 39, 47, 23, 49, 108, 48, 57, 108, 0, 11, 82, 102, 101, 108, 97, 100, 97, 116, 111, 116, 32, 107, 97, 112, 106, 97,
-			32, 30, 65, 4, 108, 6, 23, 49, 110, 84, 109, 47, 49, 109, 88, 118, 0, 11, 81, 107, 195, 182, 118, 101, 116, 107, 101, 122, 197, 145,
-			32, 28, 65, 4, 108, 6, 23, 84, 114, 55, 47, 114, 91, 39, 50, 0, 11, 81, 118, 195, 161, 108, 116, 195, 161, 115, 111, 110, 32, 21,
-			65, 4, 108, 6, 15, 83, 109, 55, 107, 118, 0, 11, 81, 102, 101, 108, 104, 197, 145, 32, 24, 65, 4, 108, 6, 23, 52, 109, 50, 119,
-			109, 52, 0, 11, 81, 114, 101, 110, 100, 115, 122, 101, 114, 32, 34, 65, 4, 108, 6, 15, 49, 37, 47, 110, 55, 47, 113, 91, 49, 39,
-			52, 0, 11, 81, 107, 105, 116, 195, 182, 108, 116, 195, 169, 115, 107, 111, 114, 32, 38, 65, 4, 108, 6, 15, 83, 109, 57, 55, 109, 89,
-			47, 113, 91, 109, 49, 109, 47, 0, 11, 81, 102, 101, 106, 108, 101, 115, 122, 116, 195, 169, 115, 101, 107, 101, 116, 32, 32, 65, 4, 108,
-			6, 15, 49, 37, 47, 110, 55, 47, 118, 84, 109, 55, 0, 11, 81, 107, 105, 116, 195, 182, 108, 116, 197, 145, 118, 101, 108, 32, 32, 65,
-			4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 109, 49, 52, 109, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101, 107, 114, 101, 32,
-			31, 65, 4, 108, 6, 15, 49, 113, 52, 72, 118, 112, 84, 109, 47, 0, 11, 81, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116,
-			32, 20, 65, 4, 108, 6, 15, 50, 108, 48, 39, 47, 0, 11, 81, 110, 97, 112, 111, 116, 32, 21, 65, 4, 108, 6, 15, 48, 113, 50,
-			89, 47, 0, 11, 81, 112, 195, 169, 110, 122, 116, 32, 31, 65, 4, 108, 6, 15, 49, 113, 52, 113, 91, 113, 84, 109, 55, 0, 11, 81,
-			107, 195, 169, 114, 195, 169, 115, 195, 169, 118, 101, 108, 32, 38, 65, 4, 108, 6, 15, 65, 37, 50, 37, 89, 47, 109, 52, 109, 55, 50,
-			110, 49, 0, 11, 81, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108, 110, 195, 182, 107, 32, 34, 65, 4, 108, 6, 107, 118, 65, 113,
-			52, 91, 113, 49, 55, 109, 47, 0, 11, 81, 104, 197, 145, 109, 195, 169, 114, 115, 195, 169, 107, 108, 101, 116, 32, 23, 65, 4, 108, 6,
-			15, 55, 109, 84, 109, 81, 118, 0, 11, 81, 108, 101, 118, 101, 103, 197, 145, 32, 27, 65, 4, 108, 6, 15, 83, 109, 55, 107, 118, 88,
-			109, 47, 0, 11, 81, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 35, 65, 4, 108, 6, 15, 49, 111, 55, 110, 50, 71, 91, 113, 81,
-			109, 47, 0, 11, 81, 107, 195, 188, 108, 195, 182, 110, 98, 115, 195, 169, 103, 101, 116, 32, 23, 65, 4, 108, 6, 15, 83, 109, 50, 113,
-			71, 109, 0, 11, 81, 102, 101, 110, 195, 169, 98, 101, 32, 20, 65, 4, 108, 6, 15, 72, 39, 55, 39, 81, 0, 11, 81, 100, 111, 108,
-			111, 103, 32, 21, 65, 4, 108, 6, 15, 107, 109, 57, 109, 72, 0, 11, 81, 104, 101, 108, 121, 101, 100, 32, 21, 65, 4, 108, 6, 15,
-			81, 113, 48, 109, 50, 0, 11, 81, 103, 195, 169, 112, 101, 110, 32, 30, 65, 4, 108, 6, 23, 48, 52, 39, 71, 55, 113, 65, 114, 65,
-			0, 11, 81, 112, 114, 111, 98, 108, 195, 169, 109, 195, 161, 109, 32, 12, 201, 81, 83, 1, 40, 67, 206, 61, 48, 64, 11, 8, 197, 90,
-			34, 207, 57, 144, 11, 5, 193, 4, 72, 10, 22, 65, 4, 108, 67, 67, 37, 15, 65, 6, 37, 50, 47, 0, 25, 83, 46, 32, 109, 32,
-			46, 32, 9, 4, 95, 35, 45, 97, 108, 0, 16, 0, 7, 196, 21, 168, 146, 80, 11, 24, 68, 5, 168, 146, 80, 108, 88, 113, 52, 47,
-			15, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 28, 68, 21, 168, 146, 80, 109, 88, 113, 52, 47, 15, 84, 108, 50, 15, 108,
-			88, 0, 11, 82, 118, 97, 110, 32, 97, 122, 32, 7, 196, 5, 168, 146, 80, 11, 7, 196, 16, 240, 142, 36, 11, 0, 27, 67, 16, 240,
-			128, 72, 39, 71, 10, 6, 15, 48, 37, 108, 119, 52, 108, 0, 11, 81, 112, 105, 97, 99, 114, 97, 32, 9, 198, 46, 36, 26, 137, 49,
-			64, 11, 9, 198, 46, 36, 26, 137, 49, 64, 11, 6, 195, 57, 151, 18, 11, 6, 195, 57, 151, 18, 15, 0, 0, 6, 65, 8, 71, 113,
-			0, 8, 197, 21, 54, 142, 20, 176, 11, 8, 197, 80, 84, 150, 20, 176, 11, 8, 197, 88, 20, 212, 4, 112, 11, 39, 69, 8, 243, 20,
-			60, 176, 71, 39, 55, 47, 39, 49, 10, 6, 15, 108, 57, 114, 50, 55, 108, 47, 108, 37, 0, 11, 81, 97, 106, 195, 161, 110, 108, 97,
-			116, 97, 105, 32, 8, 197, 52, 240, 211, 60, 176, 11, 8, 4, 95, 35, 45, 101, 109, 0, 0, 9, 198, 88, 17, 217, 84, 226, 192, 11,
-			7, 196, 80, 242, 138, 4, 11, 10, 199, 88, 19, 1, 52, 152, 146, 80, 11, 9, 198, 88, 17, 217, 84, 226, 192, 11, 9, 198, 57, 147,
-			205, 84, 226, 192, 11, 9, 198, 88, 84, 154, 38, 115, 128, 11, 35, 70, 81, 81, 10, 84, 226, 192, 47, 40, 79, 12, 40, 50, 49, 23,
-			47, 110, 55, 47, 109, 50, 37, 0, 11, 81, 116, 195, 182, 108, 116, 101, 110, 105, 32, 9, 198, 48, 82, 5, 77, 49, 78, 11, 9, 198,
-			80, 20, 148, 84, 226, 192, 11, 9, 198, 33, 83, 12, 61, 69, 0, 11, 12, 137, 102, 101, 108, 110, 195, 182, 118, 197, 145, 11, 6, 195,
-			74, 115, 1, 11, 0, 47, 70, 46, 132, 162, 8, 83, 128, 49, 110, 52, 113, 71, 109, 50, 23, 48, 52, 115, 71, 114, 55, 50, 114, 49,
-			23, 49, 37, 0, 11, 82, 112, 114, 195, 179, 98, 195, 161, 108, 110, 195, 161, 107, 32, 107, 105, 32, 42, 70, 46, 132, 162, 8, 83, 128,
-			49, 110, 52, 113, 71, 109, 50, 23, 37, 91, 23, 84, 37, 47, 108, 47, 39, 47, 12, 0, 11, 82, 105, 115, 32, 118, 105, 116, 97, 116,
-			111, 116, 116, 32, 24, 69, 81, 81, 20, 4, 208, 47, 40, 47, 12, 108, 65, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 7, 196,
-			54, 129, 235, 48, 11, 0, 24, 149, 195, 188, 103, 121, 102, 101, 108, 101, 107, 36, 117, 110, 115, 116, 114, 101, 115, 115, 101, 110, 100, 11,
-			10, 199, 161, 52, 218, 20, 112, 133, 56, 11, 10, 199, 44, 84, 133, 82, 32, 133, 56, 11, 12, 137, 98, 101, 108, 197, 145, 108, 195, 188,
-			107, 11, 10, 199, 61, 36, 218, 112, 112, 129, 56, 11, 0, 6, 65, 12, 119, 113, 0, 9, 198, 81, 195, 65, 17, 64, 64, 11, 6, 195,
-			4, 73, 212, 11, 7, 196, 48, 18, 231, 44, 11, 0, 12, 201, 77, 170, 22, 20, 113, 75, 8, 83, 128, 11, 10, 199, 44, 84, 133, 77,
-			165, 43, 48, 11, 0, 8, 197, 32, 17, 217, 80, 16, 11, 7, 196, 10, 84, 138, 4, 11, 8, 197, 52, 83, 148, 20, 208, 11, 16, 67,
-			61, 33, 139, 39, 109, 51, 109, 83, 49, 114, 0, 13, 42, 42, 15, 8, 95, 35, 45, 195, 169, 110, 101, 107, 113, 50, 109, 49, 0, 0,
-			12, 201, 88, 148, 197, 48, 177, 68, 137, 56, 142, 11, 44, 70, 32, 83, 25, 136, 225, 75, 107, 109, 57, 113, 50, 109, 49, 23, 65, 109,
-			81, 47, 108, 55, 114, 55, 114, 91, 108, 0, 11, 81, 109, 101, 103, 116, 97, 108, 195, 161, 108, 195, 161, 115, 97, 32, 9, 198, 52, 243,
-			132, 4, 232, 139, 11, 9, 198, 18, 131, 148, 20, 225, 75, 11, 0, 6, 65, 16, 72, 113, 0, 30, 68, 52, 144, 84, 80, 65, 37, 108,
-			47, 12, 23, 84, 108, 50, 23, 112, 79, 0, 11, 82, 118, 97, 110, 32, 195, 173, 103, 121, 32, 34, 68, 52, 144, 84, 80, 65, 6, 37,
-			108, 47, 12, 15, 67, 39, 65, 39, 88, 50, 108, 49, 0, 11, 81, 110, 121, 111, 109, 111, 122, 110, 97, 107, 32, 38, 68, 52, 144, 84,
-			80, 65, 37, 108, 47, 12, 23, 47, 37, 55, 47, 108, 49, 39, 88, 50, 108, 49, 0, 11, 81, 116, 105, 108, 116, 97, 107, 111, 122, 110,
-			97, 107, 32, 12, 201, 8, 83, 211, 105, 67, 212, 80, 160, 73, 11, 6, 195, 89, 196, 148, 11, 7, 196, 52, 144, 84, 80, 11, 0, 27,
-			3, 58, 47, 47, 40, 107, 101, 116, 116, 197, 145, 115, 112, 111, 110, 116, 112, 101, 114, 112, 101, 114, 41, 0, 8, 29, 0, 8, 197, 52,
-			83, 142, 36, 80, 11, 15, 140, 101, 108, 101, 103, 101, 110, 100, 197, 145, 110, 101, 107, 11, 10, 199, 41, 196, 129, 18, 34, 207, 80, 11,
-			6, 195, 24, 84, 211, 11, 0, 8, 197, 46, 181, 25, 173, 64, 11, 9, 198, 24, 84, 212, 20, 226, 64, 11, 9, 198, 44, 84, 133, 76,
-			226, 64, 11, 9, 198, 53, 85, 1, 80, 226, 64, 11, 6, 195, 24, 84, 212, 11, 12, 4, 95, 100, 112, 116, 15, 109, 81, 113, 89, 0,
-			0, 8, 197, 88, 17, 217, 60, 176, 72, 9, 198, 36, 112, 90, 60, 195, 137, 11, 33, 73, 36, 225, 37, 81, 103, 14, 100, 224, 75, 37,
-			50, 72, 112, 47, 84, 114, 67, 50, 108, 49, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 12, 201, 36, 229, 34, 104, 216, 142, 100,
-			225, 75, 11, 8, 197, 24, 17, 217, 60, 176, 11, 8, 197, 72, 80, 211, 20, 112, 11, 9, 198, 77, 161, 77, 137, 33, 64, 11, 9, 198,
-			26, 179, 5, 45, 33, 64, 11, 9, 198, 77, 68, 133, 77, 54, 128, 11, 4, 193, 20, 72, 4, 193, 20, 49, 4, 193, 20, 72, 0, 9,
-			198, 48, 84, 218, 80, 82, 192, 72, 10, 199, 88, 84, 218, 80, 85, 20, 20, 11, 11, 200, 44, 85, 133, 72, 81, 5, 81, 64, 11, 43,
-			11, 108, 101, 104, 101, 116, 197, 145, 115, 195, 169, 103, 55, 109, 107, 109, 47, 118, 91, 113, 81, 15, 84, 108, 50, 15, 108, 52, 52, 108,
-			0, 11, 82, 118, 97, 110, 32, 97, 114, 114, 97, 32, 6, 195, 49, 198, 128, 11, 36, 71, 88, 84, 218, 80, 85, 20, 20, 84, 109, 89,
-			47, 109, 47, 12, 109, 23, 113, 55, 109, 47, 113, 47, 0, 11, 81, 195, 169, 108, 101, 116, 195, 169, 116, 32, 11, 200, 52, 147, 137, 77,
-			165, 5, 73, 64, 11, 11, 200, 76, 146, 197, 72, 81, 5, 81, 64, 11, 9, 198, 88, 84, 218, 80, 82, 192, 11, 9, 198, 32, 149, 5,
-			50, 37, 0, 11, 9, 198, 52, 240, 137, 48, 242, 192, 11, 8, 197, 80, 81, 217, 172, 176, 11, 14, 139, 108, 101, 104, 101, 116, 197, 145,
-			115, 195, 169, 103, 11, 0, 7, 196, 50, 36, 14, 36, 11, 7, 196, 10, 86, 142, 36, 11, 0, 25, 70, 32, 19, 135, 104, 245, 20, 107,
-			108, 50, 81, 88, 39, 47, 12, 23, 109, 55, 0, 11, 81, 101, 108, 32, 27, 70, 32, 19, 135, 104, 245, 20, 107, 108, 50, 81, 88, 39,
-			47, 12, 10, 6, 15, 109, 55, 0, 11, 81, 101, 108, 32, 39, 69, 48, 18, 220, 76, 16, 55, 108, 49, 114, 91, 108, 23, 79, 40, 55,
-			12, 108, 47, 12, 23, 49, 37, 0, 11, 82, 103, 121, 117, 108, 108, 97, 100, 116, 32, 107, 105, 32, 9, 198, 56, 85, 133, 104, 85, 20,
-			11, 8, 197, 57, 154, 140, 56, 144, 11, 9, 198, 4, 194, 207, 80, 245, 20, 11, 9, 198, 77, 161, 82, 104, 85, 20, 11, 8, 197, 53,
-			196, 218, 56, 144, 11, 0, 7, 65, 24, 109, 83, 83, 0, 30, 67, 40, 241, 201, 57, 39, 81, 37, 23, 89, 110, 84, 109, 81, 109, 47,
-			0, 11, 81, 115, 122, 195, 182, 118, 101, 103, 101, 116, 32, 34, 67, 40, 241, 201, 57, 39, 81, 37, 15, 55, 113, 48, 113, 91, 109, 49,
-			109, 47, 0, 11, 81, 108, 195, 169, 112, 195, 169, 115, 101, 107, 101, 116, 32, 11, 200, 137, 10, 204, 21, 65, 75, 8, 80, 11, 0, 9,
-			198, 13, 49, 82, 136, 195, 137, 11, 10, 199, 77, 163, 198, 81, 97, 82, 20, 11, 9, 198, 8, 243, 25, 30, 115, 128, 11, 12, 137, 106,
-			101, 108, 108, 101, 109, 122, 197, 145, 11, 9, 198, 60, 179, 218, 61, 69, 0, 11, 0, 10, 199, 81, 195, 79, 28, 21, 14, 36, 11, 0,
-			44, 67, 137, 98, 71, 113, 84, 37, 81, 23, 55, 109, 89, 23, 47, 114, 65, 39, 81, 108, 47, 39, 47, 12, 0, 11, 82, 108, 101, 115,
-			122, 32, 116, 195, 161, 109, 111, 103, 97, 116, 111, 116, 116, 32, 7, 196, 44, 84, 133, 76, 11, 7, 196, 44, 84, 133, 76, 11, 6, 195,
-			77, 168, 139, 11, 0, 6, 65, 28, 81, 113, 0, 47, 70, 14, 35, 15, 45, 32, 64, 119, 113, 55, 39, 49, 52, 108, 23, 107, 108, 89,
-			50, 114, 55, 107, 108, 47, 50, 114, 49, 0, 11, 81, 104, 97, 115, 122, 110, 195, 161, 108, 104, 97, 116, 110, 195, 161, 107, 32, 10, 4,
-			95, 35, 45, 105, 109, 37, 0, 16, 0, 12, 201, 64, 243, 9, 80, 146, 220, 8, 19, 128, 11, 12, 201, 85, 64, 76, 89, 195, 153, 8,
-			19, 128, 11, 0, 23, 69, 80, 20, 148, 40, 16, 47, 108, 34, 80, 108, 10, 6, 15, 109, 55, 0, 11, 81, 101, 108, 32, 11, 136, 101,
-			114, 197, 145, 115, 122, 97, 107, 11, 12, 201, 32, 83, 25, 78, 33, 197, 44, 33, 78, 11, 7, 196, 80, 82, 5, 72, 11, 12, 201, 46,
-			36, 218, 172, 200, 139, 44, 83, 0, 11, 8, 197, 80, 20, 148, 40, 16, 11, 0, 31, 70, 42, 130, 5, 80, 225, 75, 57, 110, 107, 109,
-			47, 50, 109, 49, 23, 89, 115, 71, 108, 0, 11, 81, 115, 122, 195, 179, 98, 97, 32, 10, 199, 24, 148, 148, 5, 52, 213, 44, 11, 9,
-			198, 50, 37, 5, 104, 225, 75, 11, 16, 68, 112, 229, 19, 104, 114, 109, 50, 47, 113, 109, 89, 0, 42, 42, 0, 6, 65, 32, 107, 114,
-			0, 29, 68, 4, 192, 84, 80, 108, 55, 108, 47, 12, 23, 49, 113, 89, 111, 55, 0, 11, 81, 107, 195, 169, 115, 122, 195, 188, 108, 32,
-			34, 68, 4, 192, 84, 80, 108, 55, 108, 47, 12, 15, 72, 39, 55, 81, 39, 89, 47, 108, 49, 0, 11, 81, 100, 111, 108, 103, 111, 122,
-			116, 97, 107, 32, 6, 195, 10, 36, 148, 11, 6, 195, 46, 36, 148, 11, 7, 196, 4, 192, 84, 80, 11, 0, 26, 71, 60, 192, 211, 156,
-			32, 129, 80, 39, 55, 76, 115, 71, 12, 108, 47, 23, 37, 91, 0, 11, 81, 105, 115, 32, 8, 197, 81, 196, 138, 84, 176, 11, 10, 199,
-			57, 149, 71, 18, 82, 129, 80, 11, 9, 133, 197, 145, 115, 122, 105, 15, 11, 0, 12, 201, 80, 20, 148, 4, 195, 65, 104, 224, 75, 11,
-			12, 201, 80, 20, 148, 4, 195, 65, 104, 224, 75, 11, 8, 197, 84, 115, 210, 56, 144, 11, 8, 197, 58, 38, 133, 81, 64, 11, 8, 197,
-			48, 83, 142, 36, 80, 11, 0, 17, 1, 35, 49, 109, 47, 12, 118, 91, 49, 109, 52, 109, 89, 47, 0, 27, 9, 198, 65, 33, 77, 36,
-			84, 148, 11, 10, 199, 32, 19, 12, 61, 69, 21, 44, 11, 9, 198, 44, 86, 133, 48, 226, 64, 11, 9, 198, 24, 241, 193, 16, 226, 64,
-			11, 9, 198, 88, 147, 28, 28, 224, 75, 11, 0, 10, 199, 77, 160, 86, 5, 163, 212, 80, 11, 7, 196, 72, 17, 193, 16, 11, 8, 197,
-			48, 18, 206, 4, 176, 11, 8, 133, 98, 197, 145, 114, 116, 11, 0, 24, 1, 37, 115, 122, 195, 161, 122, 97, 108, 195, 169, 107, 107, 97,
-			108, 0, 44, 29, 81, 107, 97, 108, 32, 12, 1, 37, 89, 114, 88, 108, 55, 113, 49, 0, 27, 10, 199, 88, 84, 154, 38, 117, 129, 48,
-			11, 9, 199, 88, 84, 154, 38, 117, 129, 48, 9, 198, 32, 21, 129, 104, 146, 192, 11, 9, 198, 52, 243, 132, 4, 231, 13, 11, 9, 198,
-			32, 145, 199, 100, 82, 192, 11, 9, 198, 4, 176, 82, 56, 18, 192, 11, 9, 198, 44, 86, 133, 48, 146, 192, 11, 9, 198, 56, 85, 133,
-			104, 146, 192, 11, 8, 197, 37, 0, 82, 8, 16, 11, 0, 7, 1, 38, 113, 91, 0, 27, 9, 198, 48, 18, 220, 76, 32, 78, 11, 9,
-			198, 24, 244, 141, 112, 32, 78, 11, 48, 70, 24, 244, 141, 112, 32, 78, 83, 39, 52, 65, 114, 71, 108, 50, 23, 108, 6, 15, 47, 109,
-			52, 84, 109, 88, 109, 47, 71, 109, 50, 0, 11, 82, 97, 32, 116, 101, 114, 118, 101, 122, 101, 116, 98, 101, 110, 32, 9, 198, 88, 147,
-			28, 28, 32, 78, 11, 9, 198, 48, 148, 212, 112, 32, 78, 11, 8, 197, 20, 192, 68, 56, 144, 11, 9, 134, 99, 195, 173, 109, 197, 177,
-			11, 0, 45, 73, 61, 54, 148, 112, 198, 92, 56, 18, 192, 39, 89, 47, 114, 57, 114, 50, 108, 49, 23, 84, 109, 88, 109, 47, 113, 91,
-			113, 47, 0, 11, 81, 118, 101, 122, 101, 116, 195, 169, 115, 195, 169, 116, 32, 16, 141, 114, 101, 110, 100, 197, 145, 114, 195, 182, 107, 110,
-			101, 107, 11, 12, 201, 81, 196, 135, 100, 19, 10, 4, 224, 75, 11, 12, 201, 81, 196, 135, 100, 19, 10, 4, 224, 75, 11, 10, 199, 5,
-			81, 213, 77, 165, 21, 76, 15, 0, 6, 65, 40, 57, 113, 0, 12, 201, 29, 144, 78, 169, 57, 84, 4, 224, 75, 11, 8, 197, 24, 241,
-			202, 84, 176, 11, 14, 203, 44, 243, 80, 5, 66, 66, 36, 194, 83, 20, 176, 11, 7, 196, 12, 149, 137, 48, 11, 6, 195, 74, 36, 212,
-			11, 0, 9, 198, 88, 243, 20, 84, 226, 192, 72, 31, 70, 137, 10, 204, 21, 65, 64, 113, 48, 111, 55, 109, 47, 109, 23, 109, 55, 118,
-			47, 12, 0, 11, 81, 101, 108, 197, 145, 116, 116, 32, 0, 11, 1, 42, 76, 37, 55, 55, 108, 81, 0, 27, 6, 195, 32, 246, 128, 11,
-			0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 9, 198, 77, 163, 203, 80, 19, 64, 11, 7, 196, 45, 195, 211, 104, 11, 0, 6, 65, 44,
-			49, 114, 0, 13, 202, 64, 148, 218, 80, 243, 25, 60, 178, 193, 48, 11, 9, 134, 116, 197, 177, 110, 105, 107, 11, 0, 48, 73, 46, 131,
-			20, 78, 33, 197, 44, 177, 76, 49, 110, 55, 76, 113, 81, 109, 49, 12, 109, 55, 23, 83, 111, 81, 12, 23, 110, 89, 12, 109, 0, 11,
-			82, 102, 195, 188, 103, 103, 32, 195, 182, 115, 115, 122, 101, 32, 12, 201, 80, 19, 148, 21, 53, 43, 48, 85, 5, 11, 9, 198, 25, 194,
-			140, 41, 197, 0, 11, 7, 196, 20, 225, 197, 52, 11, 0, 10, 1, 46, 48, 2, 39, 50, 47, 0, 27, 9, 198, 88, 243, 20, 5, 67,
-			203, 72, 12, 201, 89, 195, 1, 77, 160, 73, 10, 115, 0, 11, 7, 196, 14, 35, 10, 4, 11, 7, 196, 54, 163, 22, 4, 11, 0, 8,
-			1, 47, 48, 109, 52, 0, 27, 12, 201, 46, 134, 137, 57, 72, 154, 54, 35, 153, 11, 0, 7, 65, 48, 109, 55, 55, 0, 9, 198, 8,
-			244, 165, 80, 167, 11, 11, 12, 201, 44, 244, 140, 113, 67, 218, 61, 69, 0, 11, 9, 198, 40, 21, 165, 80, 167, 11, 11, 9, 198, 40,
-			21, 165, 80, 167, 11, 11, 8, 197, 32, 83, 25, 21, 48, 76, 12, 4, 95, 100, 105, 97, 47, 52, 113, 65, 108, 0, 17, 1, 48, 50,
-			40, 55, 12, 114, 91, 47, 0, 44, 81, 32, 115, 116, 32, 20, 1, 48, 50, 40, 55, 12, 114, 52, 115, 55, 0, 44, 81, 32, 114, 195,
-			179, 108, 32, 15, 1, 48, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 110, 32, 20, 1, 48, 50, 40, 55, 12, 114, 47, 115, 55, 0,
-			44, 81, 32, 116, 195, 179, 108, 32, 21, 1, 48, 50, 40, 55, 12, 114, 91, 39, 50, 0, 44, 81, 32, 195, 161, 115, 111, 110, 32, 19,
-			1, 48, 50, 40, 55, 12, 114, 71, 108, 0, 44, 81, 32, 195, 161, 98, 97, 32, 21, 1, 48, 50, 40, 55, 12, 114, 71, 108, 50, 0,
-			44, 81, 32, 195, 161, 98, 97, 110, 32, 16, 1, 48, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 97, 110, 32, 16, 1, 48, 50, 40,
-			55, 12, 114, 47, 0, 44, 81, 32, 97, 116, 32, 22, 1, 48, 50, 40, 55, 12, 114, 47, 115, 55, 0, 44, 81, 32, 195, 161, 116, 195,
-			179, 108, 32, 17, 1, 48, 50, 40, 55, 12, 114, 47, 0, 44, 81, 32, 195, 161, 116, 32, 17, 1, 48, 50, 40, 55, 12, 114, 71, 108,
-			0, 44, 81, 32, 98, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114, 71, 108, 50, 0, 44, 81, 32, 98, 97, 110, 32, 17, 1, 48, 50,
-			40, 55, 12, 114, 37, 81, 0, 44, 81, 32, 105, 103, 32, 17, 1, 48, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 195, 161, 110, 32,
-			19, 1, 48, 50, 40, 55, 12, 114, 52, 108, 0, 44, 81, 32, 195, 161, 114, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114, 91, 52, 108,
-			0, 44, 81, 32, 115, 114, 97, 32, 15, 1, 48, 50, 40, 55, 12, 114, 91, 0, 44, 81, 32, 115, 32, 19, 1, 48, 50, 40, 55, 12,
-			114, 107, 39, 88, 0, 44, 81, 32, 104, 111, 122, 32, 20, 1, 48, 50, 40, 55, 12, 114, 50, 114, 55, 0, 44, 81, 32, 110, 195, 161,
-			108, 32, 17, 1, 48, 50, 40, 55, 12, 114, 52, 108, 0, 44, 81, 32, 114, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114, 84, 108, 55,
-			0, 44, 81, 32, 118, 97, 108, 32, 15, 1, 48, 50, 40, 55, 12, 114, 47, 0, 44, 81, 32, 116, 32, 17, 1, 48, 50, 40, 55, 12,
-			114, 91, 0, 44, 81, 32, 195, 161, 115, 32, 0, 10, 199, 24, 243, 25, 80, 21, 10, 4, 11, 17, 1, 49, 109, 79, 12, 109, 55, 0,
-			44, 81, 32, 103, 121, 101, 108, 32, 17, 1, 49, 109, 79, 12, 109, 91, 0, 44, 81, 32, 103, 121, 101, 115, 32, 17, 1, 49, 109, 79,
-			12, 109, 47, 0, 44, 81, 32, 103, 121, 101, 116, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 0, 44, 16, 29, 81, 32, 106,
-			195, 169, 116, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 104, 101, 122, 0, 44, 16, 29, 81, 32, 195, 169, 104, 101, 122, 32, 21,
-			1, 49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 16, 29, 81, 32, 105, 107, 101, 105, 32, 19, 1, 49, 101, 108, 115, 101, 106, 101, 0,
-			44, 16, 29, 81, 32, 105, 107, 101, 32, 20, 1, 49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 16, 29, 81, 32, 105, 107, 105, 32, 27,
-			1, 49, 101, 108, 115, 101, 106, 195, 169, 110, 195, 169, 108, 0, 44, 16, 29, 81, 32, 195, 169, 110, 195, 169, 108, 32, 28, 1, 49, 101,
-			108, 115, 101, 106, 195, 169, 110, 195, 169, 108, 0, 44, 16, 29, 81, 32, 106, 195, 169, 110, 195, 169, 108, 32, 23, 1, 49, 101, 108, 115,
-			101, 106, 195, 169, 118, 101, 108, 0, 44, 16, 29, 81, 32, 118, 101, 108, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 110, 101, 107,
-			0, 44, 16, 29, 81, 32, 195, 169, 110, 101, 107, 32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 105, 103, 0, 44, 16, 29, 81, 32,
-			106, 195, 169, 105, 103, 32, 28, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 197, 145, 108, 0, 44, 16, 29, 81, 32, 106, 195, 169, 116,
-			197, 145, 108, 32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 16, 29, 81, 32, 106, 195, 169, 114, 101, 32, 26, 1,
-			49, 101, 108, 115, 101, 106, 195, 169, 118, 101, 108, 0, 44, 16, 29, 81, 32, 106, 195, 169, 118, 101, 108, 32, 20, 1, 49, 101, 108, 115,
-			101, 106, 101, 105, 0, 44, 16, 29, 81, 32, 106, 101, 105, 32, 18, 1, 49, 101, 108, 115, 101, 106, 101, 0, 44, 16, 29, 81, 32, 106,
-			101, 32, 21, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 0, 44, 16, 29, 81, 32, 195, 169, 116, 32, 27, 1, 49, 101, 108, 115, 101,
-			106, 195, 169, 116, 197, 145, 108, 0, 44, 16, 29, 81, 32, 195, 169, 116, 197, 145, 108, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169,
-			105, 103, 0, 44, 29, 81, 32, 195, 169, 105, 103, 32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 118, 101, 108, 0, 44, 29, 81, 32,
-			195, 169, 118, 101, 108, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 197, 145, 108, 0, 44, 16, 29, 81, 32, 114, 197, 145, 108,
-			32, 27, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 197, 145, 108, 0, 44, 16, 29, 81, 32, 195, 169, 114, 197, 145, 108, 32, 21, 1,
-			49, 101, 108, 115, 101, 106, 195, 169, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116,
-			197, 145, 108, 0, 44, 16, 29, 81, 32, 116, 197, 145, 108, 32, 21, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 16, 29,
-			81, 32, 114, 101, 32, 23, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 16, 29, 81, 32, 195, 169, 114, 101, 32, 19, 1,
-			49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 16, 29, 81, 32, 101, 105, 32, 18, 1, 49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 16,
-			29, 81, 32, 105, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169, 110, 0, 44, 16, 29, 81, 32, 106, 195, 169, 110, 32, 21, 1, 49,
-			101, 108, 115, 101, 106, 195, 169, 110, 0, 44, 16, 29, 81, 32, 195, 169, 110, 32, 17, 1, 49, 101, 108, 115, 101, 106, 101, 0, 44, 16,
-			29, 81, 32, 101, 32, 0, 11, 200, 24, 147, 143, 54, 85, 19, 112, 176, 11, 24, 69, 88, 82, 5, 80, 144, 84, 109, 107, 109, 47, 37,
-			23, 108, 89, 47, 0, 11, 81, 97, 122, 116, 32, 11, 200, 32, 149, 129, 80, 179, 218, 88, 16, 11, 18, 1, 50, 49, 109, 47, 12, 118,
-			84, 109, 55, 0, 44, 81, 32, 101, 108, 32, 15, 1, 50, 49, 109, 47, 12, 118, 65, 0, 44, 81, 32, 109, 32, 15, 1, 50, 49, 109,
-			47, 12, 118, 50, 0, 44, 81, 32, 110, 32, 17, 1, 50, 49, 109, 47, 12, 118, 50, 0, 44, 81, 32, 197, 145, 110, 32, 17, 1, 50,
-			49, 109, 47, 12, 118, 47, 0, 44, 81, 32, 197, 145, 116, 32, 18, 1, 50, 49, 113, 119, 12, 109, 52, 0, 44, 81, 32, 115, 122, 101,
-			114, 32, 28, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 116, 195, 179, 108, 0, 44, 16, 29, 81, 32, 116, 197, 145, 108, 32,
-			30, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 116, 195, 179, 108, 0, 44, 16, 29, 81, 32, 195, 169, 116, 197, 145, 108, 32,
-			24, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 21, 1, 50, 109, 195, 161,
-			115, 111, 100, 105, 107, 97, 105, 0, 44, 16, 29, 81, 32, 105, 32, 0, 10, 199, 24, 83, 1, 16, 21, 15, 44, 11, 15, 204, 88, 148,
-			211, 104, 23, 12, 50, 85, 28, 77, 197, 0, 11, 17, 1, 51, 107, 114, 52, 65, 108, 91, 0, 44, 81, 32, 109, 97, 115, 32, 15, 1,
-			51, 107, 114, 52, 65, 108, 47, 0, 44, 81, 32, 116, 32, 26, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 12, 108, 55, 0, 44, 81,
-			32, 97, 100, 105, 107, 107, 97, 108, 32, 24, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 39, 50, 0, 44, 81, 32, 97, 100, 105, 107,
-			111, 110, 32, 24, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 108, 47, 0, 44, 81, 32, 97, 100, 105, 107, 97, 116, 32, 20, 1, 51,
-			107, 108, 52, 65, 108, 72, 37, 49, 0, 44, 81, 32, 97, 100, 105, 107, 32, 16, 1, 51, 107, 114, 52, 65, 39, 50, 0, 44, 81, 32,
-			111, 110, 32, 18, 1, 51, 107, 114, 52, 39, 65, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 24, 1, 51, 104, 97, 114, 109, 97, 100,
-			105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 21, 1, 51, 107, 108, 52, 10, 65, 108, 72, 37, 49, 108, 37, 0,
-			44, 16, 81, 32, 105, 32, 0, 7, 65, 52, 109, 65, 65, 0, 39, 69, 72, 18, 206, 4, 176, 52, 108, 49, 50, 108, 49, 10, 6, 15,
-			71, 109, 50, 12, 111, 50, 49, 109, 47, 0, 11, 81, 98, 101, 110, 110, 195, 188, 110, 107, 101, 116, 32, 7, 196, 80, 84, 133, 80, 11,
-			18, 70, 53, 97, 217, 61, 54, 128, 109, 65, 84, 113, 79, 113, 39, 109, 89, 0, 25, 1, 52, 50, 109, 79, 109, 72, 37, 49, 12, 109,
-			55, 0, 44, 81, 32, 101, 100, 105, 107, 107, 101, 108, 32, 23, 1, 52, 50, 109, 79, 109, 72, 37, 49, 109, 50, 0, 44, 81, 32, 101,
-			100, 105, 107, 101, 110, 32, 23, 1, 52, 50, 109, 79, 109, 72, 37, 49, 109, 47, 0, 44, 81, 32, 101, 100, 105, 107, 101, 116, 32, 19,
-			1, 52, 50, 109, 79, 109, 72, 37, 49, 0, 44, 81, 32, 101, 100, 105, 107, 32, 14, 1, 52, 50, 113, 79, 109, 47, 0, 44, 81, 32,
-			116, 32, 18, 1, 52, 50, 113, 79, 12, 109, 55, 0, 44, 81, 32, 103, 121, 101, 108, 32, 16, 1, 52, 50, 113, 79, 12, 109, 55, 0,
-			44, 81, 32, 101, 108, 32, 0, 31, 70, 20, 195, 65, 72, 17, 0, 109, 55, 65, 108, 52, 108, 72, 23, 108, 47, 12, 115, 55, 0, 11,
-			81, 97, 116, 116, 195, 179, 108, 32, 6, 195, 10, 36, 133, 11, 9, 198, 77, 167, 14, 80, 17, 0, 11, 9, 198, 8, 84, 218, 136, 195,
-			137, 11, 9, 198, 12, 146, 203, 56, 82, 192, 11, 6, 195, 29, 198, 128, 11, 6, 195, 33, 198, 128, 11, 15, 1, 53, 110, 47, 12, 109,
+		static unsigned char espeakdata_dicts25_data[112826] = {
+			0, 4, 0, 0, 190, 85, 1, 0, 13, 138, 11, 15, 18, 8, 1, 20, 195, 161, 18, 1, 13, 0, 9, 198, 80, 84, 150, 20, 177, 84,
+			13, 12, 137, 11, 9, 12, 195, 161, 20, 195, 161, 19, 13, 7, 132, 19, 195, 161, 22, 13, 0, 50, 12, 14, 5, 8, 195, 169, 26, 19,
+			195, 169, 7, 2, 5, 50, 109, 107, 113, 91, 12, 113, 81, 71, 109, 10, 6, 15, 111, 47, 49, 110, 88, 110, 47, 12, 0, 13, 81, 195,
+			188, 116, 107, 195, 182, 122, 195, 182, 116, 116, 32, 10, 135, 13, 1, 16, 16, 195, 161, 20, 13, 15, 140, 21, 20, 1, 19, 195, 173, 20,
+			195, 161, 19, 2, 1, 13, 0, 7, 196, 5, 166, 129, 48, 13, 7, 196, 21, 166, 133, 48, 13, 16, 141, 19, 26, 195, 161, 13, 12, 195,
+			161, 10, 195, 161, 18, 1, 13, 10, 135, 16, 195, 161, 18, 195, 161, 19, 13, 11, 136, 12, 195, 161, 14, 25, 195, 161, 20, 13, 11, 136,
+			4, 18, 195, 161, 22, 195, 161, 20, 13, 15, 140, 2, 197, 177, 14, 5, 19, 5, 20, 18, 197, 145, 12, 13, 19, 144, 11, 195, 182, 26,
+			12, 5, 11, 5, 4, 195, 169, 19, 2, 197, 145, 12, 13, 7, 196, 20, 118, 69, 80, 13, 12, 137, 18, 195, 161, 10, 195, 182, 14, 14,
+			9, 13, 11, 136, 19, 195, 186, 12, 25, 195, 161, 20, 13, 7, 196, 5, 166, 129, 48, 13, 8, 133, 195, 169, 18, 14, 9, 13, 0, 49,
+			14, 11, 1, 16, 3, 19, 15, 12, 195, 179, 4, 195, 161, 19, 9, 49, 108, 48, 76, 39, 55, 115, 72, 114, 91, 37, 23, 48, 52, 39,
+			71, 55, 113, 65, 108, 0, 13, 81, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 7, 196, 21, 54, 137, 44, 13, 15, 140, 11, 15, 18,
+			12, 195, 161, 20, 15, 26, 195, 161, 19, 13, 12, 137, 1, 18, 195, 161, 14, 25, 195, 161, 20, 13, 0, 7, 65, 4, 108, 12, 0, 14,
+			26, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 47, 0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 116, 32, 29, 65, 4, 108,
+			6, 15, 48, 108, 50, 108, 89, 39, 49, 108, 47, 0, 13, 81, 112, 97, 110, 97, 115, 122, 111, 107, 97, 116, 32, 26, 65, 4, 108, 6,
+			15, 72, 110, 50, 47, 113, 91, 47, 0, 13, 81, 100, 195, 182, 110, 116, 195, 169, 115, 116, 32, 25, 65, 4, 108, 6, 15, 65, 108, 79,
+			108, 52, 39, 49, 0, 13, 81, 109, 97, 103, 121, 97, 114, 111, 107, 32, 27, 65, 4, 108, 6, 15, 107, 109, 57, 88, 109, 47, 109, 47,
+			0, 13, 81, 104, 101, 108, 121, 122, 101, 116, 101, 116, 32, 21, 65, 4, 108, 6, 15, 49, 108, 57, 114, 47, 0, 13, 81, 107, 97, 106,
+			195, 161, 116, 32, 16, 65, 4, 108, 6, 15, 71, 108, 57, 0, 13, 81, 98, 97, 106, 32, 30, 65, 4, 108, 6, 15, 47, 111, 50, 47,
+			109, 47, 113, 91, 47, 0, 13, 81, 116, 195, 188, 110, 116, 101, 116, 195, 169, 115, 116, 32, 30, 65, 4, 108, 6, 15, 49, 109, 72, 113,
+			57, 109, 49, 109, 47, 0, 13, 81, 107, 101, 100, 195, 169, 108, 121, 101, 107, 101, 116, 32, 22, 65, 4, 108, 6, 15, 89, 39, 49, 114,
+			91, 0, 13, 81, 115, 122, 111, 107, 195, 161, 115, 32, 25, 65, 4, 108, 6, 15, 84, 37, 55, 114, 81, 39, 50, 0, 13, 81, 118, 105,
+			108, 195, 161, 103, 111, 110, 32, 29, 65, 4, 108, 6, 15, 49, 40, 47, 108, 47, 115, 49, 108, 47, 0, 13, 81, 107, 117, 116, 97, 116,
+			195, 179, 107, 97, 116, 32, 28, 65, 4, 108, 6, 15, 71, 37, 88, 39, 76, 12, 114, 81, 0, 13, 81, 98, 105, 122, 111, 116, 116, 115,
+			195, 161, 103, 32, 26, 65, 4, 108, 6, 15, 83, 109, 55, 108, 72, 108, 47, 108, 0, 13, 81, 102, 101, 108, 97, 100, 97, 116, 97, 32,
+			35, 65, 4, 108, 6, 15, 65, 115, 72, 39, 91, 112, 47, 114, 91, 39, 49, 0, 13, 81, 109, 195, 179, 100, 111, 115, 195, 173, 116, 195,
+			161, 115, 111, 107, 32, 25, 65, 4, 108, 6, 15, 83, 109, 55, 111, 55, 109, 47, 0, 13, 81, 102, 101, 108, 195, 188, 108, 101, 116, 32,
+			28, 65, 4, 108, 6, 15, 47, 108, 71, 55, 109, 47, 107, 109, 88, 0, 13, 81, 116, 97, 98, 108, 101, 116, 104, 101, 122, 32, 23, 65,
+			4, 108, 6, 15, 89, 37, 50, 47, 109, 47, 0, 13, 81, 115, 122, 105, 110, 116, 101, 116, 32, 28, 65, 4, 108, 6, 15, 49, 113, 89,
+			111, 55, 113, 49, 0, 13, 81, 107, 195, 169, 115, 122, 195, 188, 108, 195, 169, 107, 32, 22, 65, 4, 108, 6, 15, 65, 39, 71, 37, 55,
+			47, 0, 13, 81, 109, 111, 98, 105, 108, 116, 32, 24, 65, 4, 108, 6, 15, 47, 109, 55, 109, 83, 39, 50, 0, 13, 81, 116, 101, 108,
+			101, 102, 111, 110, 32, 24, 65, 4, 108, 6, 15, 49, 113, 88, 71, 118, 55, 0, 13, 81, 107, 195, 169, 122, 98, 197, 145, 108, 32, 17,
+			65, 4, 108, 6, 15, 91, 114, 52, 0, 13, 81, 115, 195, 161, 114, 32, 22, 65, 4, 108, 6, 15, 107, 39, 50, 55, 108, 48, 0, 13,
+			81, 104, 111, 110, 108, 97, 112, 32, 40, 65, 4, 108, 6, 15, 48, 52, 109, 88, 109, 50, 47, 114, 55, 114, 91, 50, 108, 49, 0, 13,
+			81, 112, 114, 101, 122, 101, 110, 116, 195, 161, 108, 195, 161, 115, 110, 97, 107, 32, 24, 65, 4, 108, 6, 15, 83, 109, 55, 108, 72, 108,
+			47, 0, 13, 81, 102, 101, 108, 97, 100, 97, 116, 32, 27, 65, 4, 108, 6, 15, 89, 109, 34, 84, 109, 88, 109, 47, 0, 13, 81, 115,
+			122, 101, 114, 118, 101, 122, 101, 116, 32, 26, 65, 4, 108, 6, 15, 107, 108, 47, 115, 91, 114, 81, 0, 13, 81, 104, 97, 116, 195, 179,
+			115, 195, 161, 103, 32, 26, 65, 4, 108, 6, 15, 49, 110, 55, 47, 118, 52, 109, 0, 13, 81, 107, 195, 182, 108, 116, 197, 145, 114, 101,
+			32, 22, 65, 4, 108, 6, 15, 47, 37, 47, 49, 39, 47, 0, 13, 81, 116, 105, 116, 107, 111, 116, 32, 24, 65, 4, 108, 6, 15, 84,
+			114, 55, 108, 89, 47, 0, 13, 81, 118, 195, 161, 108, 97, 115, 122, 116, 32, 24, 65, 4, 108, 6, 15, 81, 113, 48, 113, 52, 109, 0,
+			13, 81, 103, 195, 169, 112, 195, 169, 114, 101, 32, 39, 65, 4, 108, 6, 15, 55, 109, 81, 83, 39, 50, 47, 39, 91, 108, 71, 50, 108,
+			49, 0, 13, 81, 108, 101, 103, 102, 111, 110, 116, 111, 115, 97, 98, 98, 110, 97, 107, 32, 41, 65, 4, 108, 6, 15, 49, 37, 57, 109,
+			55, 109, 50, 47, 113, 91, 109, 72, 12, 109, 55, 0, 13, 81, 107, 105, 106, 101, 108, 101, 110, 116, 195, 169, 115, 101, 100, 100, 101, 108,
+			32, 32, 65, 4, 108, 6, 15, 49, 113, 48, 84, 37, 91, 109, 55, 118, 49, 0, 13, 81, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197,
+			145, 107, 32, 31, 65, 4, 108, 6, 15, 49, 109, 52, 111, 55, 109, 47, 71, 109, 50, 0, 13, 81, 107, 101, 114, 195, 188, 108, 101, 116,
+			98, 101, 110, 32, 28, 65, 4, 108, 6, 15, 52, 109, 50, 119, 109, 52, 71, 109, 0, 13, 81, 114, 101, 110, 100, 115, 122, 101, 114, 98,
+			101, 32, 29, 65, 4, 108, 6, 15, 52, 109, 50, 119, 109, 52, 113, 47, 0, 13, 81, 114, 101, 110, 100, 115, 122, 101, 114, 195, 169, 116,
+			32, 26, 65, 4, 108, 6, 15, 72, 39, 55, 81, 39, 49, 108, 47, 0, 13, 81, 100, 111, 108, 103, 111, 107, 97, 116, 32, 42, 65, 4,
+			108, 6, 15, 107, 39, 88, 88, 114, 89, 115, 55, 114, 91, 39, 49, 108, 47, 0, 13, 81, 104, 111, 122, 122, 195, 161, 115, 122, 195, 179,
+			108, 195, 161, 115, 111, 107, 97, 116, 32, 23, 65, 4, 108, 6, 15, 50, 113, 48, 50, 109, 49, 0, 13, 81, 110, 195, 169, 112, 110, 101,
+			107, 32, 28, 65, 4, 108, 6, 15, 83, 109, 55, 114, 55, 12, 114, 91, 0, 13, 81, 102, 101, 108, 195, 161, 108, 108, 195, 161, 115, 32,
+			31, 65, 4, 108, 6, 15, 84, 113, 55, 109, 65, 113, 67, 109, 65, 0, 13, 81, 118, 195, 169, 108, 101, 109, 195, 169, 110, 121, 101, 109,
+			32, 27, 65, 4, 108, 6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 13, 81, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 36, 65,
+			4, 108, 6, 15, 83, 109, 57, 55, 109, 89, 47, 118, 49, 50, 109, 49, 0, 13, 81, 102, 101, 106, 108, 101, 115, 122, 116, 197, 145, 107,
+			110, 101, 107, 32, 23, 65, 4, 108, 6, 15, 119, 113, 55, 23, 108, 88, 0, 13, 82, 99, 195, 169, 108, 32, 97, 122, 32, 18, 65, 4,
+			108, 6, 15, 107, 37, 71, 108, 0, 13, 81, 104, 105, 98, 97, 32, 28, 65, 4, 108, 6, 15, 47, 108, 52, 47, 108, 55, 65, 108, 47,
+			0, 13, 81, 116, 97, 114, 116, 97, 108, 109, 97, 116, 32, 17, 65, 4, 108, 6, 15, 119, 112, 65, 0, 13, 81, 99, 195, 173, 109, 32,
+			22, 65, 4, 108, 6, 15, 72, 39, 55, 81, 39, 47, 0, 13, 81, 100, 111, 108, 103, 111, 116, 32, 25, 65, 4, 108, 6, 15, 107, 115,
+			50, 108, 48, 39, 49, 0, 13, 81, 104, 195, 179, 110, 97, 112, 111, 107, 32, 19, 65, 4, 108, 6, 15, 83, 110, 55, 72, 0, 13, 81,
+			102, 195, 182, 108, 100, 32, 30, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 23, 108, 88, 0, 13, 82, 107, 195, 169, 114, 100, 195,
+			169, 115, 32, 97, 122, 32, 32, 65, 4, 108, 6, 15, 76, 108, 55, 114, 72, 39, 49, 50, 108, 49, 0, 13, 81, 99, 115, 97, 108, 195,
+			161, 100, 111, 107, 110, 97, 107, 32, 24, 65, 4, 108, 6, 15, 47, 52, 109, 50, 72, 109, 47, 0, 13, 81, 116, 114, 101, 110, 100, 101,
+			116, 32, 26, 65, 4, 108, 6, 15, 47, 40, 72, 108, 47, 71, 108, 50, 0, 13, 81, 116, 117, 100, 97, 116, 98, 97, 110, 32, 33, 65,
+			4, 108, 6, 15, 65, 109, 81, 39, 55, 72, 114, 91, 12, 108, 55, 0, 13, 81, 109, 101, 103, 111, 108, 100, 195, 161, 115, 115, 97, 108,
+			32, 30, 65, 4, 108, 6, 15, 89, 108, 49, 108, 72, 113, 49, 39, 47, 0, 13, 81, 115, 122, 97, 107, 97, 100, 195, 169, 107, 111, 116,
+			32, 28, 65, 4, 108, 6, 15, 107, 109, 57, 88, 109, 47, 113, 47, 0, 13, 81, 104, 101, 108, 121, 122, 101, 116, 195, 169, 116, 32, 30,
+			65, 4, 108, 6, 15, 84, 114, 55, 108, 89, 39, 49, 108, 47, 0, 13, 81, 118, 195, 161, 108, 97, 115, 122, 111, 107, 97, 116, 32, 27,
+			65, 4, 108, 6, 15, 72, 39, 107, 114, 67, 88, 115, 0, 13, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 179, 32, 36, 65, 4, 108,
+			6, 15, 72, 39, 107, 114, 67, 88, 114, 91, 34, 115, 55, 0, 13, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 161, 115, 114, 195, 179,
+			108, 32, 31, 65, 4, 108, 6, 15, 72, 39, 107, 114, 67, 88, 114, 91, 47, 0, 13, 81, 100, 111, 104, 195, 161, 110, 121, 122, 195, 161,
+			115, 116, 32, 21, 65, 4, 108, 6, 15, 83, 113, 52, 83, 37, 0, 13, 81, 102, 195, 169, 114, 102, 105, 32, 26, 65, 4, 108, 6, 15,
+			57, 110, 84, 118, 71, 109, 50, 0, 13, 81, 106, 195, 182, 118, 197, 145, 98, 101, 110, 32, 28, 65, 4, 108, 6, 15, 71, 111, 50, 47,
+			109, 47, 113, 91, 0, 13, 81, 98, 195, 188, 110, 116, 101, 116, 195, 169, 115, 32, 22, 65, 4, 108, 6, 15, 91, 39, 52, 71, 108, 50,
+			0, 13, 81, 115, 111, 114, 98, 97, 110, 32, 21, 65, 4, 108, 6, 15, 47, 110, 65, 109, 81, 0, 13, 81, 116, 195, 182, 109, 101, 103,
+			32, 20, 65, 4, 108, 6, 15, 91, 39, 52, 71, 108, 0, 13, 81, 115, 111, 114, 98, 97, 32, 22, 65, 4, 108, 10, 6, 15, 107, 109,
+			57, 109, 47, 0, 13, 81, 104, 101, 108, 121, 101, 116, 32, 28, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 109, 65, 0, 13, 81,
+			107, 195, 169, 114, 100, 195, 169, 115, 101, 109, 32, 23, 65, 4, 108, 6, 15, 65, 113, 52, 81, 109, 47, 0, 13, 81, 109, 195, 169, 114,
+			103, 101, 116, 32, 24, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 32, 26, 65,
+			4, 108, 6, 15, 84, 108, 55, 115, 91, 114, 81, 0, 13, 81, 118, 97, 108, 195, 179, 115, 195, 161, 103, 32, 29, 65, 4, 108, 6, 15,
+			49, 110, 55, 76, 113, 81, 109, 47, 0, 13, 81, 107, 195, 182, 108, 116, 115, 195, 169, 103, 101, 116, 32, 26, 65, 4, 108, 6, 15, 89,
+			109, 52, 84, 109, 88, 118, 0, 13, 81, 115, 122, 101, 114, 118, 101, 122, 197, 145, 32, 29, 65, 4, 108, 6, 15, 107, 39, 50, 55, 108,
+			48, 57, 114, 50, 0, 13, 81, 104, 111, 110, 108, 97, 112, 106, 195, 161, 110, 32, 33, 65, 4, 108, 6, 15, 83, 109, 55, 47, 113, 47,
+			109, 55, 12, 109, 55, 0, 13, 81, 102, 101, 108, 116, 195, 169, 116, 101, 108, 108, 101, 108, 32, 31, 65, 4, 108, 6, 15, 49, 37, 47,
+			113, 47, 109, 55, 12, 109, 55, 0, 13, 81, 107, 105, 116, 195, 169, 116, 101, 108, 108, 101, 108, 32, 28, 65, 4, 108, 6, 15, 72, 110,
+			50, 47, 113, 91, 52, 109, 0, 13, 81, 100, 195, 182, 110, 116, 195, 169, 115, 114, 101, 32, 29, 65, 4, 108, 6, 15, 89, 110, 84, 109,
+			76, 12, 113, 81, 0, 13, 81, 115, 122, 195, 182, 118, 101, 116, 115, 195, 169, 103, 32, 30, 65, 4, 108, 6, 15, 89, 110, 84, 109, 76,
+			12, 113, 81, 0, 13, 81, 115, 122, 195, 182, 118, 101, 116, 116, 115, 195, 169, 103, 32, 21, 65, 4, 108, 6, 15, 119, 113, 61, 57, 108,
+			0, 13, 81, 99, 195, 169, 108, 106, 97, 32, 43, 65, 4, 108, 6, 15, 65, 109, 81, 89, 39, 52, 112, 47, 114, 91, 39, 49, 71, 108,
+			50, 0, 13, 81, 109, 101, 103, 115, 122, 111, 114, 195, 173, 116, 195, 161, 115, 111, 107, 98, 97, 110, 32, 23, 65, 4, 108, 6, 15, 67,
+			40, 81, 108, 47, 37, 0, 13, 81, 110, 121, 117, 103, 97, 116, 105, 32, 47, 65, 4, 108, 6, 15, 49, 110, 88, 110, 50, 91, 113, 81,
+			23, 91, 39, 52, 108, 37, 71, 108, 50, 0, 13, 82, 107, 195, 182, 122, 195, 182, 110, 115, 195, 169, 103, 32, 115, 111, 114, 97, 105, 98,
+			97, 110, 32, 23, 65, 4, 108, 6, 15, 107, 109, 57, 88, 109, 47, 0, 13, 81, 104, 101, 108, 121, 122, 101, 116, 32, 23, 65, 4, 108,
+			6, 15, 65, 113, 52, 55, 109, 81, 0, 13, 81, 109, 195, 169, 114, 108, 101, 103, 32, 26, 65, 4, 108, 6, 15, 47, 109, 52, 84, 109,
+			88, 109, 47, 0, 13, 81, 116, 101, 114, 118, 101, 122, 101, 116, 32, 28, 65, 4, 108, 6, 15, 107, 108, 55, 81, 108, 47, 115, 49, 0,
+			13, 81, 104, 97, 108, 108, 103, 97, 116, 195, 179, 107, 32, 49, 65, 4, 108, 6, 15, 49, 39, 52, 114, 71, 12, 37, 23, 109, 55, 49,
+			113, 48, 88, 109, 55, 113, 91, 0, 13, 82, 107, 111, 114, 195, 161, 98, 98, 105, 32, 101, 108, 107, 195, 169, 112, 122, 101, 108, 195, 169,
+			115, 32, 30, 65, 4, 108, 6, 15, 107, 114, 47, 12, 113, 52, 71, 109, 50, 0, 13, 81, 104, 195, 161, 116, 116, 195, 169, 114, 98, 101,
+			110, 32, 36, 65, 4, 108, 6, 15, 49, 110, 55, 76, 113, 81, 109, 49, 52, 118, 55, 0, 13, 81, 107, 195, 182, 108, 116, 115, 195, 169,
+			103, 101, 107, 114, 197, 145, 108, 32, 32, 65, 4, 108, 6, 23, 107, 108, 55, 81, 108, 47, 115, 50, 108, 49, 0, 13, 81, 104, 97, 108,
+			108, 103, 97, 116, 195, 179, 110, 97, 107, 32, 28, 65, 4, 108, 6, 15, 84, 114, 55, 47, 39, 88, 114, 91, 0, 13, 81, 118, 195, 161,
+			108, 116, 111, 122, 195, 161, 115, 32, 28, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 52, 109, 0, 13, 81, 107, 195, 169, 114, 100,
+			195, 169, 115, 114, 101, 32, 37, 65, 4, 108, 6, 15, 79, 115, 79, 89, 109, 52, 109, 49, 113, 52, 47, 0, 13, 81, 103, 121, 195, 179,
+			103, 121, 115, 122, 101, 114, 101, 107, 195, 169, 114, 116, 32, 24, 65, 4, 108, 6, 15, 71, 109, 47, 109, 81, 109, 49, 0, 13, 81, 98,
+			101, 116, 101, 103, 101, 107, 32, 78, 65, 4, 108, 6, 15, 71, 109, 47, 109, 81, 109, 49, 50, 109, 49, 23, 108, 6, 15, 79, 115, 79,
+			89, 109, 52, 47, 114, 65, 39, 81, 108, 47, 114, 91, 114, 47, 0, 13, 83, 98, 101, 116, 101, 103, 101, 107, 110, 101, 107, 32, 97, 32,
+			103, 121, 195, 179, 103, 121, 115, 122, 101, 114, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 195, 161, 116, 32, 20, 65, 4, 108, 6,
+			15, 47, 113, 67, 47, 0, 13, 81, 116, 195, 169, 110, 121, 116, 32, 26, 65, 4, 108, 6, 15, 72, 112, 57, 108, 88, 114, 91, 0, 13,
+			81, 100, 195, 173, 106, 97, 122, 195, 161, 115, 32, 26, 65, 4, 108, 6, 15, 67, 39, 65, 39, 88, 115, 49, 0, 13, 81, 110, 121, 111,
+			109, 111, 122, 195, 179, 107, 32, 35, 65, 4, 108, 6, 15, 83, 109, 55, 109, 55, 118, 91, 113, 81, 109, 47, 0, 13, 81, 102, 101, 108,
+			101, 108, 197, 145, 115, 115, 195, 169, 103, 101, 116, 32, 21, 65, 4, 108, 6, 15, 47, 111, 88, 109, 47, 0, 13, 81, 116, 195, 188, 122,
+			101, 116, 32, 26, 65, 4, 108, 6, 15, 47, 113, 65, 114, 71, 108, 50, 0, 13, 81, 116, 195, 169, 109, 195, 161, 98, 97, 110, 32, 25,
+			65, 4, 108, 6, 15, 83, 109, 55, 109, 55, 118, 91, 0, 13, 81, 102, 101, 108, 101, 108, 197, 145, 115, 32, 34, 65, 4, 108, 6, 15,
+			49, 113, 52, 72, 113, 91, 109, 49, 71, 109, 50, 0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101, 107, 98, 101, 110, 32, 26, 65,
+			4, 108, 6, 15, 72, 39, 55, 81, 39, 72, 108, 47, 0, 13, 81, 100, 111, 108, 103, 111, 100, 97, 116, 32, 30, 65, 4, 108, 6, 23,
+			107, 108, 79, 39, 65, 108, 12, 67, 47, 0, 13, 81, 104, 97, 103, 121, 111, 109, 195, 161, 110, 121, 116, 32, 16, 65, 4, 108, 6, 15,
+			91, 39, 49, 0, 13, 81, 115, 111, 107, 32, 34, 65, 4, 108, 6, 15, 49, 113, 48, 109, 91, 12, 113, 81, 109, 37, 47, 0, 13, 81,
+			107, 195, 169, 112, 101, 115, 115, 195, 169, 103, 101, 105, 116, 32, 35, 65, 4, 108, 6, 15, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115,
+			47, 0, 13, 81, 102, 101, 108, 104, 97, 115, 122, 110, 195, 161, 108, 195, 179, 116, 32, 18, 65, 4, 108, 6, 15, 119, 37, 49, 12, 0,
+			13, 81, 99, 105, 107, 107, 32, 33, 65, 4, 108, 6, 15, 83, 114, 57, 55, 57, 108, 37, 50, 49, 108, 47, 0, 13, 81, 102, 195, 161,
+			106, 108, 106, 97, 105, 110, 107, 97, 116, 32, 41, 65, 4, 108, 6, 15, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 49, 50, 108, 49,
+			0, 13, 81, 102, 101, 108, 104, 97, 115, 122, 110, 195, 161, 108, 195, 179, 107, 110, 97, 107, 32, 36, 65, 4, 108, 6, 23, 91, 111, 57,
+			57, 109, 89, 47, 118, 71, 109, 50, 0, 13, 81, 115, 195, 188, 108, 108, 121, 101, 115, 122, 116, 197, 145, 98, 101, 110, 32, 28, 65, 4,
+			108, 6, 23, 83, 109, 57, 55, 118, 72, 113, 91, 0, 13, 81, 102, 101, 106, 108, 197, 145, 100, 195, 169, 115, 32, 26, 65, 4, 108, 6,
+			23, 52, 109, 50, 119, 109, 52, 47, 0, 13, 81, 114, 101, 110, 100, 115, 122, 101, 114, 116, 32, 30, 65, 4, 108, 6, 15, 55, 113, 81,
+			65, 39, 88, 81, 114, 91, 0, 13, 81, 108, 195, 169, 103, 109, 111, 122, 103, 195, 161, 115, 32, 23, 65, 4, 108, 6, 9, 15, 49, 109,
+			55, 109, 47, 37, 0, 13, 81, 107, 101, 108, 101, 116, 105, 32, 20, 65, 4, 108, 6, 9, 15, 72, 113, 55, 37, 0, 13, 81, 100, 195,
+			169, 108, 105, 32, 27, 65, 4, 108, 6, 15, 72, 39, 49, 47, 39, 52, 50, 118, 0, 13, 81, 100, 111, 107, 116, 111, 114, 110, 197, 145,
+			32, 29, 65, 4, 108, 6, 23, 89, 49, 52, 37, 48, 47, 71, 109, 50, 0, 13, 81, 115, 122, 107, 114, 105, 112, 116, 98, 101, 110, 32,
+			40, 65, 4, 108, 6, 23, 83, 109, 55, 108, 72, 108, 47, 39, 47, 23, 49, 108, 48, 57, 108, 0, 13, 82, 102, 101, 108, 97, 100, 97,
+			116, 111, 116, 32, 107, 97, 112, 106, 97, 32, 30, 65, 4, 108, 6, 23, 49, 110, 84, 109, 47, 49, 109, 88, 118, 0, 13, 81, 107, 195,
+			182, 118, 101, 116, 107, 101, 122, 197, 145, 32, 28, 65, 4, 108, 6, 23, 84, 114, 55, 47, 114, 91, 39, 50, 0, 13, 81, 118, 195, 161,
+			108, 116, 195, 161, 115, 111, 110, 32, 21, 65, 4, 108, 6, 15, 83, 109, 55, 107, 118, 0, 13, 81, 102, 101, 108, 104, 197, 145, 32, 24,
+			65, 4, 108, 6, 23, 52, 109, 50, 119, 109, 52, 0, 13, 81, 114, 101, 110, 100, 115, 122, 101, 114, 32, 34, 65, 4, 108, 6, 15, 49,
+			37, 47, 110, 55, 47, 113, 91, 49, 39, 52, 0, 13, 81, 107, 105, 116, 195, 182, 108, 116, 195, 169, 115, 107, 111, 114, 32, 38, 65, 4,
+			108, 6, 15, 83, 109, 57, 55, 109, 89, 47, 113, 91, 109, 49, 109, 47, 0, 13, 81, 102, 101, 106, 108, 101, 115, 122, 116, 195, 169, 115,
+			101, 107, 101, 116, 32, 32, 65, 4, 108, 6, 15, 49, 37, 47, 110, 55, 47, 118, 84, 109, 55, 0, 13, 81, 107, 105, 116, 195, 182, 108,
+			116, 197, 145, 118, 101, 108, 32, 32, 65, 4, 108, 6, 15, 49, 113, 52, 72, 113, 91, 109, 49, 52, 109, 0, 13, 81, 107, 195, 169, 114,
+			100, 195, 169, 115, 101, 107, 114, 101, 32, 31, 65, 4, 108, 6, 15, 49, 113, 52, 72, 118, 112, 84, 109, 47, 0, 13, 81, 107, 195, 169,
+			114, 100, 197, 145, 195, 173, 118, 101, 116, 32, 20, 65, 4, 108, 6, 15, 50, 108, 48, 39, 47, 0, 13, 81, 110, 97, 112, 111, 116, 32,
+			21, 65, 4, 108, 6, 15, 48, 113, 50, 89, 47, 0, 13, 81, 112, 195, 169, 110, 122, 116, 32, 31, 65, 4, 108, 6, 15, 49, 113, 52,
+			113, 91, 113, 84, 109, 55, 0, 13, 81, 107, 195, 169, 114, 195, 169, 115, 195, 169, 118, 101, 108, 32, 38, 65, 4, 108, 6, 15, 65, 37,
+			50, 37, 89, 47, 109, 52, 109, 55, 50, 110, 49, 0, 13, 81, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108, 110, 195, 182, 107, 32,
+			34, 65, 4, 108, 6, 107, 118, 65, 113, 52, 91, 113, 49, 55, 109, 47, 0, 13, 81, 104, 197, 145, 109, 195, 169, 114, 115, 195, 169, 107,
+			108, 101, 116, 32, 23, 65, 4, 108, 6, 15, 55, 109, 84, 109, 81, 118, 0, 13, 81, 108, 101, 118, 101, 103, 197, 145, 32, 27, 65, 4,
+			108, 6, 15, 83, 109, 55, 107, 118, 88, 109, 47, 0, 13, 81, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 35, 65, 4, 108, 6, 15,
+			49, 111, 55, 110, 50, 71, 91, 113, 81, 109, 47, 0, 13, 81, 107, 195, 188, 108, 195, 182, 110, 98, 115, 195, 169, 103, 101, 116, 32, 23,
+			65, 4, 108, 6, 15, 83, 109, 50, 113, 71, 109, 0, 13, 81, 102, 101, 110, 195, 169, 98, 101, 32, 20, 65, 4, 108, 6, 15, 72, 39,
+			55, 39, 81, 0, 13, 81, 100, 111, 108, 111, 103, 32, 21, 65, 4, 108, 6, 15, 107, 109, 57, 109, 72, 0, 13, 81, 104, 101, 108, 121,
+			101, 100, 32, 21, 65, 4, 108, 6, 15, 81, 113, 48, 109, 50, 0, 13, 81, 103, 195, 169, 112, 101, 110, 32, 30, 65, 4, 108, 6, 23,
+			48, 52, 39, 71, 55, 113, 65, 114, 65, 0, 13, 81, 112, 114, 111, 98, 108, 195, 169, 109, 195, 161, 109, 32, 17, 142, 20, 5, 12, 5,
+			16, 195, 173, 20, 195, 169, 19, 19, 5, 12, 13, 9, 198, 41, 85, 1, 48, 243, 64, 13, 9, 134, 16, 1, 3, 195, 161, 20, 13, 9,
+			198, 24, 84, 218, 20, 113, 84, 13, 9, 198, 60, 197, 129, 76, 243, 64, 13, 9, 134, 13, 1, 7, 195, 161, 20, 13, 5, 193, 4, 72,
+			12, 22, 65, 4, 108, 67, 67, 37, 15, 65, 6, 37, 50, 47, 0, 25, 83, 46, 32, 109, 32, 46, 32, 0, 9, 198, 77, 161, 77, 8,
+			83, 128, 13, 9, 198, 77, 161, 77, 8, 83, 128, 13, 0, 27, 67, 16, 240, 128, 72, 39, 71, 10, 6, 15, 48, 37, 108, 119, 52, 108,
+			0, 13, 81, 112, 105, 97, 99, 114, 97, 32, 11, 136, 11, 21, 12, 3, 19, 195, 161, 20, 13, 40, 11, 14, 195, 182, 22, 5, 12, 195,
+			169, 19, 5, 19, 50, 110, 84, 109, 55, 113, 91, 109, 91, 23, 47, 109, 89, 47, 109, 47, 0, 13, 81, 116, 101, 115, 122, 116, 101, 116,
+			32, 11, 200, 32, 17, 9, 24, 241, 207, 49, 144, 13, 10, 199, 80, 20, 148, 4, 195, 65, 44, 13, 6, 195, 64, 243, 148, 13, 0, 12,
+			137, 22, 9, 20, 195, 161, 10, 195, 161, 20, 13, 41, 12, 11, 15, 18, 18, 9, 7, 195, 161, 12, 195, 161, 19, 49, 39, 52, 52, 37,
+			81, 114, 55, 114, 91, 23, 52, 113, 84, 113, 50, 0, 13, 81, 114, 195, 169, 118, 195, 169, 110, 32, 12, 201, 80, 83, 5, 24, 243, 143,
+			44, 176, 76, 13, 13, 138, 22, 195, 161, 12, 15, 7, 1, 20, 14, 9, 13, 12, 201, 13, 51, 208, 61, 37, 15, 44, 176, 76, 13, 0,
+			6, 65, 8, 71, 113, 0, 14, 139, 4, 18, 195, 161, 7, 21, 12, 195, 161, 19, 1, 13, 22, 147, 13, 5, 7, 195, 161, 12, 12, 1,
+			16, 195, 173, 20, 195, 161, 19, 195, 161, 18, 1, 13, 13, 138, 2, 5, 14, 14, 195, 188, 14, 11, 5, 20, 13, 17, 142, 195, 169, 12,
+			5, 20, 20, 1, 18, 20, 1, 13, 195, 161, 20, 13, 13, 138, 13, 21, 14, 11, 195, 161, 10, 195, 161, 20, 13, 0, 23, 148, 22, 9,
+			19, 19, 26, 1, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 18, 1, 13, 14, 139, 12, 5, 195, 173, 18, 195, 161, 19, 195,
+			161, 20, 13, 18, 143, 20, 5, 18, 8, 5, 19, 19, 195, 169, 7, 195, 188, 11, 5, 20, 13, 15, 140, 20, 195, 161, 13, 15, 7, 1,
+			20, 195, 161, 19, 1, 13, 9, 198, 33, 83, 12, 61, 69, 0, 13, 10, 135, 16, 195, 169, 14, 20, 5, 11, 20, 0, 15, 140, 11, 195,
+			169, 16, 22, 9, 19, 5, 12, 197, 145, 20, 13, 14, 139, 11, 9, 14, 195, 169, 26, 5, 20, 20, 5, 12, 13, 9, 134, 16, 195, 169,
+			12, 4, 1, 13, 9, 134, 11, 195, 182, 26, 20, 5, 13, 9, 134, 16, 195, 169, 12, 4, 1, 13, 15, 140, 10, 195, 161, 18, 1, 4,
+			195, 169, 11, 195, 161, 20, 13, 0, 11, 136, 13, 21, 14, 11, 195, 161, 19, 20, 13, 61, 13, 12, 5, 8, 5, 20, 197, 145, 19, 195,
+			169, 7, 5, 20, 55, 109, 107, 109, 47, 118, 91, 113, 81, 109, 47, 10, 6, 15, 65, 109, 81, 84, 108, 55, 115, 91, 112, 47, 108, 50,
+			37, 0, 13, 81, 109, 101, 103, 118, 97, 108, 195, 179, 115, 195, 173, 116, 97, 110, 105, 32, 19, 144, 14, 195, 169, 16, 19, 26, 195, 161,
+			13, 12, 195, 161, 12, 195, 161, 19, 13, 14, 139, 16, 18, 195, 179, 2, 195, 161, 12, 20, 1, 13, 13, 10, 135, 20, 195, 169, 20, 5,
+			12, 5, 13, 16, 141, 12, 5, 8, 5, 20, 197, 145, 19, 195, 169, 7, 5, 20, 13, 0, 6, 65, 12, 119, 113, 0, 9, 198, 24, 244,
+			132, 84, 195, 203, 13, 13, 138, 11, 195, 182, 22, 5, 20, 20, 195, 169, 11, 13, 10, 135, 13, 195, 169, 18, 20, 5, 14, 13, 11, 136,
+			19, 26, 195, 161, 14, 20, 1, 13, 13, 17, 142, 6, 5, 12, 5, 12, 197, 145, 19, 19, 195, 169, 7, 5, 20, 13, 8, 197, 44, 86,
+			132, 88, 80, 13, 0, 48, 73, 16, 242, 213, 52, 83, 148, 84, 212, 129, 72, 39, 49, 40, 65, 109, 50, 47, 40, 65, 52, 108, 23, 107,
+			37, 84, 108, 47, 49, 39, 88, 84, 108, 0, 13, 81, 104, 105, 118, 97, 116, 107, 111, 122, 118, 97, 32, 0, 9, 134, 195, 188, 26, 5,
+			13, 5, 13, 11, 4, 95, 8, 1, 3, 48, 37, 48, 108, 0, 0, 14, 139, 13, 1, 7, 25, 1, 18, 195, 161, 26, 20, 1, 13, 11,
+			136, 5, 12, 197, 145, 20, 20, 5, 4, 13, 11, 200, 77, 161, 82, 88, 86, 133, 80, 80, 13, 12, 137, 11, 5, 18, 5, 19, 20, 195,
+			169, 11, 13, 0, 6, 65, 16, 72, 113, 0, 15, 140, 1, 4, 15, 13, 195, 161, 14, 25, 15, 26, 20, 1, 13, 8, 197, 88, 148, 197,
+			49, 64, 13, 20, 145, 19, 26, 195, 161, 13, 195, 173, 20, 195, 179, 7, 195, 169, 16, 16, 5, 12, 13, 6, 195, 44, 147, 142, 13, 0,
+			27, 3, 58, 47, 47, 40, 107, 101, 116, 116, 197, 145, 115, 112, 111, 110, 116, 112, 101, 114, 112, 101, 114, 41, 0, 8, 29, 8, 133, 20,
+			195, 169, 13, 1, 13, 10, 135, 22, 195, 161, 18, 21, 14, 11, 13, 8, 133, 20, 195, 169, 13, 1, 13, 17, 142, 19, 26, 5, 18, 22,
+			5, 26, 5, 20, 11, 195, 169, 14, 20, 13, 9, 134, 20, 197, 145, 12, 5, 4, 13, 0, 13, 138, 2, 197, 145, 22, 195, 173, 20, 5,
+			14, 9, 13, 15, 140, 8, 15, 26, 26, 195, 161, 11, 5, 26, 4, 5, 11, 13, 9, 198, 40, 21, 129, 76, 195, 205, 13, 9, 198, 80,
+			20, 148, 4, 195, 205, 13, 0, 14, 139, 19, 26, 195, 161, 13, 195, 173, 20, 1, 14, 9, 13, 11, 200, 52, 81, 214, 21, 36, 197, 49,
+			64, 13, 10, 135, 14, 25, 195, 186, 12, 14, 9, 13, 10, 135, 195, 169, 18, 4, 5, 13, 5, 13, 11, 136, 19, 26, 195, 161, 14, 20,
+			1, 4, 13, 11, 136, 18, 5, 14, 4, 197, 145, 18, 20, 13, 0, 4, 193, 20, 72, 4, 193, 20, 14, 4, 193, 20, 72, 0, 8, 133,
+			195, 173, 18, 14, 9, 13, 9, 198, 56, 147, 131, 76, 83, 128, 13, 0, 10, 199, 48, 144, 197, 56, 49, 73, 80, 13, 10, 199, 32, 19,
+			12, 61, 69, 21, 44, 13, 15, 140, 12, 5, 6, 5, 4, 5, 20, 20, 19, 195, 169, 7, 13, 14, 4, 95, 48, 67, 15, 89, 114, 88,
+			108, 72, 37, 49, 0, 0, 0, 7, 65, 24, 109, 83, 83, 0, 8, 197, 20, 209, 76, 56, 144, 13, 11, 136, 22, 195, 161, 12, 1, 19,
+			26, 1, 13, 13, 138, 195, 161, 12, 12, 195, 173, 20, 21, 14, 11, 13, 0, 18, 143, 19, 26, 5, 13, 2, 5, 19, 195, 188, 12, 14,
+			9, 195, 188, 11, 13, 9, 198, 60, 179, 218, 61, 69, 0, 13, 0, 14, 139, 18, 195, 161, 2, 195, 182, 11, 195, 182, 20, 20, 13, 10,
+			135, 13, 1, 14, 21, 195, 161, 12, 13, 0, 45, 8, 195, 161, 12, 12, 1, 16, 15, 20, 114, 55, 12, 108, 48, 39, 47, 23, 57, 108,
+			84, 112, 47, 114, 91, 114, 52, 108, 0, 13, 81, 106, 97, 118, 195, 173, 116, 195, 161, 115, 195, 161, 114, 97, 32, 9, 134, 20, 195, 169,
+			12, 5, 14, 13, 11, 136, 195, 161, 12, 12, 1, 16, 15, 20, 13, 0, 6, 65, 28, 81, 113, 0, 16, 141, 20, 195, 182, 18, 22, 195,
+			169, 14, 25, 18, 197, 145, 12, 13, 46, 11, 9, 7, 195, 169, 14, 25, 5, 9, 8, 5, 26, 37, 81, 113, 67, 109, 37, 107, 109, 88,
+			23, 37, 81, 108, 88, 112, 47, 108, 50, 37, 0, 13, 81, 105, 103, 97, 122, 195, 173, 116, 97, 110, 105, 32, 20, 136, 5, 19, 26, 13,
+			195, 169, 10, 5, 13, 81, 104, 101, 118, 195, 173, 116, 105, 32, 10, 135, 14, 25, 15, 13, 195, 161, 14, 13, 0, 9, 198, 24, 147, 13,
+			20, 177, 84, 13, 11, 136, 6, 195, 161, 10, 12, 8, 15, 26, 13, 13, 138, 10, 21, 20, 20, 1, 20, 195, 161, 19, 20, 13, 0, 10,
+			199, 32, 21, 133, 72, 160, 73, 52, 13, 43, 6, 11, 195, 182, 26, 20, 9, 49, 110, 89, 47, 37, 23, 49, 111, 55, 110, 50, 71, 91,
+			113, 81, 109, 49, 0, 13, 81, 107, 195, 188, 108, 195, 182, 110, 98, 115, 195, 169, 103, 101, 107, 32, 28, 9, 7, 195, 169, 16, 5, 11,
+			8, 5, 26, 81, 113, 48, 109, 49, 107, 109, 88, 23, 37, 91, 0, 13, 81, 105, 115, 32, 53, 6, 11, 195, 182, 26, 20, 9, 49, 110,
+			89, 47, 37, 23, 50, 113, 88, 109, 47, 109, 55, 47, 113, 52, 113, 91, 109, 49, 109, 47, 0, 13, 81, 110, 195, 169, 122, 101, 116, 101,
+			108, 116, 195, 169, 114, 195, 169, 115, 101, 107, 101, 116, 32, 11, 136, 1, 11, 1, 18, 10, 195, 161, 11, 13, 10, 199, 16, 243, 7, 61,
+			166, 143, 56, 13, 10, 135, 14, 1, 16, 10, 195, 161, 20, 13, 17, 4, 95, 54, 48, 15, 107, 108, 47, 84, 108, 50, 108, 72, 37, 49,
+			0, 0, 38, 72, 44, 85, 133, 76, 80, 130, 20, 224, 49, 109, 84, 109, 91, 109, 71, 12, 109, 50, 10, 6, 15, 108, 50, 12, 114, 55,
+			0, 13, 81, 97, 110, 110, 195, 161, 108, 32, 17, 142, 11, 15, 14, 7, 18, 5, 19, 19, 26, 21, 19, 195, 161, 14, 13, 15, 140, 12,
+			195, 161, 20, 15, 7, 1, 20, 195, 161, 19, 20, 13, 0, 6, 65, 32, 107, 114, 0, 14, 67, 52, 196, 218, 109, 65, 109, 55, 109, 89,
+			0, 42, 42, 0, 47, 10, 195, 182, 19, 19, 26, 5, 7, 195, 169, 20, 110, 89, 12, 109, 81, 113, 47, 23, 83, 109, 55, 47, 111, 50,
+			47, 109, 91, 12, 109, 0, 13, 81, 102, 101, 108, 116, 195, 188, 110, 116, 101, 115, 115, 101, 32, 9, 134, 195, 169, 7, 5, 20, 20, 13,
+			8, 133, 20, 195, 169, 12, 9, 20, 0, 13, 138, 4, 195, 182, 14, 20, 195, 169, 19, 5, 9, 13, 10, 199, 44, 20, 8, 5, 67, 129,
+			44, 13, 15, 140, 20, 195, 161, 13, 15, 7, 1, 20, 10, 195, 161, 11, 13, 51, 71, 24, 145, 217, 20, 195, 69, 80, 83, 37, 79, 109,
+			55, 65, 109, 47, 23, 49, 109, 55, 12, 23, 83, 39, 52, 72, 112, 47, 108, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32, 102, 111, 114,
+			100, 195, 173, 116, 97, 110, 105, 32, 10, 199, 24, 145, 217, 20, 195, 69, 80, 13, 15, 140, 2, 15, 19, 19, 26, 1, 14, 20, 195, 179,
+			1, 11, 13, 10, 199, 48, 18, 207, 76, 242, 193, 80, 13, 13, 138, 19, 26, 1, 11, 195, 173, 20, 1, 14, 9, 13, 10, 199, 24, 83,
+			22, 21, 66, 5, 80, 13, 10, 135, 14, 25, 15, 13, 195, 161, 20, 13, 0, 17, 1, 35, 49, 109, 47, 12, 118, 91, 49, 109, 52, 109,
+			89, 47, 0, 27, 16, 141, 9, 18, 195, 161, 14, 25, 195, 173, 20, 10, 195, 161, 11, 13, 15, 140, 14, 25, 195, 186, 10, 20, 195, 161,
+			19, 195, 161, 20, 13, 7, 132, 11, 195, 186, 20, 13, 7, 132, 3, 195, 169, 12, 13, 0, 45, 9, 22, 195, 161, 12, 12, 1, 12, 1,
+			20, 84, 114, 55, 12, 108, 55, 108, 47, 23, 49, 110, 88, 55, 109, 65, 113, 67, 109, 0, 13, 81, 107, 195, 182, 122, 108, 101, 109, 195,
+			169, 110, 121, 101, 32, 16, 141, 6, 15, 18, 13, 195, 161, 12, 195, 161, 19, 195, 161, 20, 13, 15, 140, 20, 5, 12, 10, 5, 19, 195,
+			173, 20, 5, 14, 9, 13, 15, 140, 20, 5, 12, 10, 5, 19, 195, 173, 20, 5, 14, 9, 13, 20, 145, 11, 195, 169, 19, 26, 195, 188,
+			12, 195, 169, 11, 195, 188, 14, 11, 5, 20, 13, 16, 141, 12, 5, 16, 1, 11, 15, 12, 195, 161, 19, 195, 161, 20, 13, 8, 197, 20,
+			210, 65, 81, 64, 13, 0, 24, 1, 37, 115, 122, 195, 161, 122, 97, 108, 195, 169, 107, 107, 97, 108, 0, 44, 29, 81, 107, 97, 108, 32,
+			12, 1, 37, 89, 114, 88, 108, 55, 113, 49, 0, 27, 13, 138, 11, 15, 18, 8, 1, 20, 195, 161, 18, 20, 13, 8, 197, 37, 0, 82,
+			8, 16, 13, 0, 7, 1, 38, 113, 91, 0, 27, 14, 139, 20, 5, 14, 4, 5, 14, 3, 9, 195, 161, 20, 13, 13, 138, 19, 195, 169,
+			18, 5, 12, 13, 5, 26, 9, 13, 9, 198, 40, 83, 5, 57, 68, 197, 13, 10, 199, 77, 163, 205, 8, 21, 9, 28, 22, 10, 199, 5,
+			81, 213, 77, 165, 21, 76, 20, 0, 12, 137, 6, 5, 12, 6, 15, 7, 195, 161, 19, 13, 19, 144, 18, 1, 20, 9, 6, 9, 11, 195,
+			161, 12, 195, 161, 19, 195, 161, 20, 13, 31, 68, 72, 18, 148, 4, 52, 108, 57, 47, 108, 23, 81, 113, 48, 109, 55, 50, 37, 0, 13,
+			81, 103, 195, 169, 112, 101, 108, 110, 105, 32, 57, 10, 11, 195, 169, 18, 4, 197, 145, 195, 173, 22, 49, 113, 52, 72, 118, 112, 84, 23,
+			84, 113, 55, 109, 65, 113, 67, 109, 88, 113, 91, 113, 52, 109, 0, 13, 81, 118, 195, 169, 108, 101, 109, 195, 169, 110, 121, 101, 122, 195,
+			169, 115, 195, 169, 114, 101, 32, 12, 137, 20, 1, 12, 195, 161, 12, 21, 14, 11, 13, 7, 196, 72, 18, 148, 4, 13, 0, 6, 65, 40,
+			57, 113, 0, 0, 11, 136, 6, 5, 2, 18, 21, 195, 161, 18, 20, 0, 11, 1, 42, 76, 37, 55, 55, 108, 81, 0, 27, 16, 141, 195,
+			161, 12, 12, 1, 13, 16, 15, 12, 7, 195, 161, 18, 13, 9, 198, 48, 84, 218, 60, 179, 137, 13, 13, 138, 3, 19, 9, 14, 195, 161,
+			12, 20, 1, 13, 13, 10, 199, 36, 225, 193, 80, 192, 78, 80, 13, 18, 143, 11, 195, 188, 12, 195, 182, 14, 2, 19, 195, 169, 7, 7,
+			5, 12, 13, 6, 195, 32, 246, 128, 13, 0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 10, 135, 22, 195, 161, 18, 20, 1, 13, 13, 10,
+			135, 10, 195, 161, 18, 20, 1, 13, 13, 12, 137, 8, 9, 2, 195, 161, 26, 20, 1, 11, 13, 11, 136, 11, 195, 182, 26, 16, 15, 14,
+			20, 13, 0, 6, 65, 44, 49, 114, 0, 10, 135, 5, 19, 5, 20, 195, 169, 14, 13, 32, 8, 195, 169, 18, 5, 26, 20, 5, 13, 113,
+			52, 109, 89, 47, 109, 65, 23, 65, 108, 81, 108, 65, 0, 13, 81, 109, 97, 103, 97, 109, 32, 11, 136, 12, 5, 195, 173, 18, 20, 1,
+			13, 13, 15, 140, 13, 5, 12, 12, 195, 169, 11, 5, 12, 20, 5, 13, 13, 11, 136, 195, 169, 18, 5, 26, 20, 5, 13, 13, 8, 197,
+			48, 85, 20, 20, 176, 13, 10, 135, 5, 19, 5, 20, 195, 169, 14, 13, 8, 197, 44, 20, 14, 4, 176, 13, 0, 12, 137, 19, 195, 169,
+			18, 20, 5, 14, 195, 169, 13, 14, 139, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 19, 13, 10, 135, 22, 195, 161, 12, 20, 1, 11,
+			13, 15, 140, 11, 195, 182, 18, 14, 25, 195, 169, 11, 195, 169, 14, 13, 15, 140, 11, 195, 182, 18, 14, 25, 195, 169, 11, 195, 169, 14,
+			22, 0, 10, 1, 46, 48, 2, 39, 50, 47, 0, 27, 10, 199, 32, 20, 131, 60, 195, 137, 4, 13, 7, 132, 3, 195, 169, 7, 13, 7,
+			195, 52, 84, 148, 72, 8, 0, 8, 1, 47, 48, 109, 52, 0, 27, 10, 135, 22, 195, 169, 4, 5, 14, 9, 13, 0, 7, 65, 48, 109,
+			55, 55, 0, 9, 198, 52, 17, 218, 5, 67, 203, 13, 8, 197, 32, 149, 5, 49, 64, 13, 8, 197, 44, 144, 211, 37, 64, 13, 13, 138,
+			19, 26, 5, 18, 5, 20, 14, 195, 169, 11, 13, 17, 1, 48, 50, 40, 55, 12, 114, 91, 47, 0, 44, 81, 32, 115, 116, 32, 20, 1,
+			48, 50, 40, 55, 12, 114, 52, 115, 55, 0, 44, 81, 32, 114, 195, 179, 108, 32, 15, 1, 48, 50, 40, 55, 12, 114, 50, 0, 44, 81,
+			32, 110, 32, 20, 1, 48, 50, 40, 55, 12, 114, 47, 115, 55, 0, 44, 81, 32, 116, 195, 179, 108, 32, 21, 1, 48, 50, 40, 55, 12,
+			114, 91, 39, 50, 0, 44, 81, 32, 195, 161, 115, 111, 110, 32, 19, 1, 48, 50, 40, 55, 12, 114, 71, 108, 0, 44, 81, 32, 195, 161,
+			98, 97, 32, 21, 1, 48, 50, 40, 55, 12, 114, 71, 108, 50, 0, 44, 81, 32, 195, 161, 98, 97, 110, 32, 16, 1, 48, 50, 40, 55,
+			12, 114, 50, 0, 44, 81, 32, 97, 110, 32, 16, 1, 48, 50, 40, 55, 12, 114, 47, 0, 44, 81, 32, 97, 116, 32, 22, 1, 48, 50,
+			40, 55, 12, 114, 47, 115, 55, 0, 44, 81, 32, 195, 161, 116, 195, 179, 108, 32, 17, 1, 48, 50, 40, 55, 12, 114, 47, 0, 44, 81,
+			32, 195, 161, 116, 32, 17, 1, 48, 50, 40, 55, 12, 114, 71, 108, 0, 44, 81, 32, 98, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114,
+			71, 108, 50, 0, 44, 81, 32, 98, 97, 110, 32, 17, 1, 48, 50, 40, 55, 12, 114, 37, 81, 0, 44, 81, 32, 105, 103, 32, 17, 1,
+			48, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 195, 161, 110, 32, 19, 1, 48, 50, 40, 55, 12, 114, 52, 108, 0, 44, 81, 32, 195,
+			161, 114, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114, 91, 52, 108, 0, 44, 81, 32, 115, 114, 97, 32, 15, 1, 48, 50, 40, 55, 12,
+			114, 91, 0, 44, 81, 32, 115, 32, 19, 1, 48, 50, 40, 55, 12, 114, 107, 39, 88, 0, 44, 81, 32, 104, 111, 122, 32, 20, 1, 48,
+			50, 40, 55, 12, 114, 50, 114, 55, 0, 44, 81, 32, 110, 195, 161, 108, 32, 17, 1, 48, 50, 40, 55, 12, 114, 52, 108, 0, 44, 81,
+			32, 114, 97, 32, 19, 1, 48, 50, 40, 55, 12, 114, 84, 108, 55, 0, 44, 81, 32, 118, 97, 108, 32, 15, 1, 48, 50, 40, 55, 12,
+			114, 47, 0, 44, 81, 32, 116, 32, 17, 1, 48, 50, 40, 55, 12, 114, 91, 0, 44, 81, 32, 195, 161, 115, 32, 0, 14, 139, 22, 195,
+			169, 7, 26, 197, 145, 4, 20, 5, 11, 13, 8, 133, 13, 195, 169, 12, 25, 13, 17, 1, 49, 109, 79, 12, 109, 55, 0, 44, 81, 32,
+			103, 121, 101, 108, 32, 17, 1, 49, 109, 79, 12, 109, 91, 0, 44, 81, 32, 103, 121, 101, 115, 32, 17, 1, 49, 109, 79, 12, 109, 47,
+			0, 44, 81, 32, 103, 121, 101, 116, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 0, 44, 21, 29, 81, 32, 106, 195, 169, 116,
+			32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 104, 101, 122, 0, 44, 21, 29, 81, 32, 195, 169, 104, 101, 122, 32, 21, 1, 49, 101,
+			108, 115, 101, 106, 101, 105, 0, 44, 21, 29, 81, 32, 105, 107, 101, 105, 32, 19, 1, 49, 101, 108, 115, 101, 106, 101, 0, 44, 21, 29,
+			81, 32, 105, 107, 101, 32, 20, 1, 49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 21, 29, 81, 32, 105, 107, 105, 32, 27, 1, 49, 101,
+			108, 115, 101, 106, 195, 169, 110, 195, 169, 108, 0, 44, 21, 29, 81, 32, 195, 169, 110, 195, 169, 108, 32, 28, 1, 49, 101, 108, 115, 101,
+			106, 195, 169, 110, 195, 169, 108, 0, 44, 21, 29, 81, 32, 106, 195, 169, 110, 195, 169, 108, 32, 23, 1, 49, 101, 108, 115, 101, 106, 195,
+			169, 118, 101, 108, 0, 44, 21, 29, 81, 32, 118, 101, 108, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 110, 101, 107, 0, 44, 21,
+			29, 81, 32, 195, 169, 110, 101, 107, 32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 105, 103, 0, 44, 21, 29, 81, 32, 106, 195, 169,
+			105, 103, 32, 28, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 197, 145, 108, 0, 44, 21, 29, 81, 32, 106, 195, 169, 116, 197, 145, 108,
+			32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 21, 29, 81, 32, 106, 195, 169, 114, 101, 32, 26, 1, 49, 101, 108,
+			115, 101, 106, 195, 169, 118, 101, 108, 0, 44, 21, 29, 81, 32, 106, 195, 169, 118, 101, 108, 32, 20, 1, 49, 101, 108, 115, 101, 106, 101,
+			105, 0, 44, 21, 29, 81, 32, 106, 101, 105, 32, 18, 1, 49, 101, 108, 115, 101, 106, 101, 0, 44, 21, 29, 81, 32, 106, 101, 32, 21,
+			1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 0, 44, 21, 29, 81, 32, 195, 169, 116, 32, 27, 1, 49, 101, 108, 115, 101, 106, 195, 169,
+			116, 197, 145, 108, 0, 44, 21, 29, 81, 32, 195, 169, 116, 197, 145, 108, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169, 105, 103, 0,
+			44, 29, 81, 32, 195, 169, 105, 103, 32, 24, 1, 49, 101, 108, 115, 101, 106, 195, 169, 118, 101, 108, 0, 44, 29, 81, 32, 195, 169, 118,
+			101, 108, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 197, 145, 108, 0, 44, 21, 29, 81, 32, 114, 197, 145, 108, 32, 27, 1,
+			49, 101, 108, 115, 101, 106, 195, 169, 114, 197, 145, 108, 0, 44, 21, 29, 81, 32, 195, 169, 114, 197, 145, 108, 32, 21, 1, 49, 101, 108,
+			115, 101, 106, 195, 169, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 25, 1, 49, 101, 108, 115, 101, 106, 195, 169, 116, 197, 145, 108,
+			0, 44, 21, 29, 81, 32, 116, 197, 145, 108, 32, 21, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 21, 29, 81, 32, 114,
+			101, 32, 23, 1, 49, 101, 108, 115, 101, 106, 195, 169, 114, 101, 0, 44, 21, 29, 81, 32, 195, 169, 114, 101, 32, 19, 1, 49, 101, 108,
+			115, 101, 106, 101, 105, 0, 44, 21, 29, 81, 32, 101, 105, 32, 18, 1, 49, 101, 108, 115, 101, 106, 101, 105, 0, 44, 21, 29, 81, 32,
+			105, 32, 22, 1, 49, 101, 108, 115, 101, 106, 195, 169, 110, 0, 44, 21, 29, 81, 32, 106, 195, 169, 110, 32, 21, 1, 49, 101, 108, 115,
+			101, 106, 195, 169, 110, 0, 44, 21, 29, 81, 32, 195, 169, 110, 32, 17, 1, 49, 101, 108, 115, 101, 106, 101, 0, 44, 21, 29, 81, 32,
+			101, 32, 0, 11, 136, 195, 179, 18, 195, 161, 11, 9, 7, 13, 13, 138, 10, 5, 12, 5, 14, 20, 5, 14, 195, 169, 13, 18, 1, 50,
+			49, 109, 47, 12, 118, 84, 109, 55, 0, 44, 81, 32, 101, 108, 32, 15, 1, 50, 49, 109, 47, 12, 118, 65, 0, 44, 81, 32, 109, 32,
+			15, 1, 50, 49, 109, 47, 12, 118, 50, 0, 44, 81, 32, 110, 32, 17, 1, 50, 49, 109, 47, 12, 118, 50, 0, 44, 81, 32, 197, 145,
+			110, 32, 17, 1, 50, 49, 109, 47, 12, 118, 47, 0, 44, 81, 32, 197, 145, 116, 32, 18, 1, 50, 49, 113, 119, 12, 109, 52, 0, 44,
+			81, 32, 115, 122, 101, 114, 32, 28, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 116, 195, 179, 108, 0, 44, 21, 29, 81, 32,
+			116, 197, 145, 108, 32, 30, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 116, 195, 179, 108, 0, 44, 21, 29, 81, 32, 195, 169,
+			116, 197, 145, 108, 32, 24, 1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 21,
+			1, 50, 109, 195, 161, 115, 111, 100, 105, 107, 97, 105, 0, 44, 21, 29, 81, 32, 105, 32, 0, 12, 137, 13, 15, 2, 9, 12, 3, 195,
+			169, 7, 13, 6, 131, 6, 197, 145, 13, 17, 1, 51, 107, 114, 52, 65, 108, 91, 0, 44, 81, 32, 109, 97, 115, 32, 15, 1, 51, 107,
+			114, 52, 65, 108, 47, 0, 44, 81, 32, 116, 32, 26, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 12, 108, 55, 0, 44, 81, 32, 97,
+			100, 105, 107, 107, 97, 108, 32, 24, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 39, 50, 0, 44, 81, 32, 97, 100, 105, 107, 111, 110,
+			32, 24, 1, 51, 107, 108, 52, 65, 108, 72, 37, 49, 108, 47, 0, 44, 81, 32, 97, 100, 105, 107, 97, 116, 32, 20, 1, 51, 107, 108,
+			52, 65, 108, 72, 37, 49, 0, 44, 81, 32, 97, 100, 105, 107, 32, 16, 1, 51, 107, 114, 52, 65, 39, 50, 0, 44, 81, 32, 111, 110,
+			32, 18, 1, 51, 107, 114, 52, 39, 65, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 24, 1, 51, 104, 97, 114, 109, 97, 100, 105, 107,
+			195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 21, 1, 51, 107, 108, 52, 10, 65, 108, 72, 37, 49, 108, 37, 0, 44, 21,
+			81, 32, 105, 32, 0, 7, 65, 52, 109, 65, 65, 0, 45, 69, 60, 179, 218, 80, 16, 39, 49, 39, 89, 47, 108, 23, 48, 52, 39, 71,
+			55, 113, 65, 114, 49, 71, 115, 55, 0, 13, 81, 112, 114, 111, 98, 108, 195, 169, 109, 195, 161, 107, 98, 195, 179, 108, 32, 8, 197, 60,
+			179, 218, 80, 16, 13, 25, 1, 52, 50, 109, 79, 109, 72, 37, 49, 12, 109, 55, 0, 44, 81, 32, 101, 100, 105, 107, 107, 101, 108, 32,
+			23, 1, 52, 50, 109, 79, 109, 72, 37, 49, 109, 50, 0, 44, 81, 32, 101, 100, 105, 107, 101, 110, 32, 23, 1, 52, 50, 109, 79, 109,
+			72, 37, 49, 109, 47, 0, 44, 81, 32, 101, 100, 105, 107, 101, 116, 32, 19, 1, 52, 50, 109, 79, 109, 72, 37, 49, 0, 44, 81, 32,
+			101, 100, 105, 107, 32, 14, 1, 52, 50, 113, 79, 109, 47, 0, 44, 81, 32, 116, 32, 18, 1, 52, 50, 113, 79, 12, 109, 55, 0, 44,
+			81, 32, 103, 121, 101, 108, 32, 16, 1, 52, 50, 113, 79, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0, 40, 5, 11, 195, 169, 14,
+			5, 49, 113, 50, 109, 10, 6, 15, 84, 114, 55, 108, 89, 47, 108, 50, 39, 65, 0, 13, 81, 118, 195, 161, 108, 97, 115, 122, 116, 97,
+			110, 111, 109, 32, 31, 70, 20, 195, 65, 72, 17, 0, 109, 55, 65, 108, 52, 108, 72, 23, 108, 47, 12, 115, 55, 0, 13, 81, 97, 116,
+			116, 195, 179, 108, 32, 10, 135, 22, 195, 161, 12, 21, 14, 11, 13, 8, 133, 11, 195, 169, 14, 5, 13, 15, 1, 53, 110, 47, 12, 109,
 			55, 0, 44, 81, 32, 101, 108, 32, 18, 1, 53, 110, 119, 12, 110, 52, 0, 44, 81, 32, 115, 122, 195, 182, 114, 32, 13, 1, 53, 110,
-			47, 110, 47, 0, 44, 81, 32, 116, 32, 23, 1, 53, 110, 47, 110, 72, 37, 49, 113, 47, 118, 55, 0, 44, 16, 81, 32, 116, 197, 145,
+			47, 110, 47, 0, 44, 81, 32, 116, 32, 23, 1, 53, 110, 47, 110, 72, 37, 49, 113, 47, 118, 55, 0, 44, 21, 81, 32, 116, 197, 145,
 			108, 32, 15, 1, 53, 110, 47, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 16, 1, 53, 110, 47, 12, 109, 55, 0, 44, 81, 32, 116,
-			101, 108, 32, 0, 29, 68, 77, 167, 13, 4, 89, 114, 65, 108, 23, 76, 110, 49, 12, 109, 50, 0, 11, 81, 99, 115, 195, 182, 107, 107,
-			101, 110, 32, 7, 196, 77, 167, 13, 4, 11, 7, 196, 44, 20, 19, 104, 11, 18, 1, 54, 107, 108, 119, 12, 39, 52, 0, 44, 81, 32,
-			115, 122, 111, 114, 32, 24, 1, 54, 107, 108, 47, 39, 72, 37, 49, 114, 47, 115, 55, 0, 44, 16, 81, 32, 116, 195, 179, 108, 32, 18,
-			1, 54, 107, 108, 47, 12, 115, 55, 0, 44, 81, 32, 116, 195, 179, 108, 32, 17, 1, 54, 107, 108, 47, 12, 108, 55, 0, 44, 81, 32,
-			116, 97, 108, 32, 16, 1, 54, 107, 108, 47, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 23, 1, 54, 104, 97, 116, 111, 100, 105, 107,
-			195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 19, 1, 54, 107, 108, 47, 39, 72, 37, 49, 108, 37, 0, 44, 16, 81, 32,
-			105, 32, 0, 33, 71, 32, 149, 129, 80, 19, 15, 76, 107, 37, 84, 108, 47, 108, 55, 39, 91, 23, 55, 109, 50, 12, 109, 0, 11, 81,
-			108, 101, 110, 110, 101, 32, 10, 199, 61, 54, 148, 112, 198, 79, 56, 11, 7, 196, 54, 113, 15, 56, 11, 8, 197, 45, 196, 148, 100, 16,
-			11, 18, 1, 55, 107, 113, 119, 12, 109, 52, 0, 44, 81, 32, 115, 122, 101, 114, 32, 19, 1, 55, 107, 109, 47, 109, 91, 12, 109, 55,
-			0, 44, 81, 32, 115, 101, 108, 32, 22, 1, 55, 107, 109, 47, 109, 91, 109, 49, 52, 109, 0, 44, 81, 32, 115, 101, 107, 114, 101, 32,
-			16, 1, 55, 107, 113, 47, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 17, 1, 55, 107, 113, 47, 12, 109, 55, 0, 44, 81, 32, 116,
-			101, 108, 32, 24, 1, 55, 107, 109, 47, 109, 72, 37, 49, 113, 47, 118, 55, 0, 44, 16, 81, 32, 116, 197, 145, 108, 32, 18, 1, 55,
-			107, 113, 47, 12, 118, 55, 0, 44, 81, 32, 116, 197, 145, 108, 32, 0, 7, 65, 56, 109, 50, 50, 0, 10, 199, 36, 112, 90, 77, 193,
-			207, 76, 11, 6, 195, 26, 180, 212, 11, 17, 1, 56, 67, 39, 55, 119, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 18, 1, 56, 67,
-			39, 55, 119, 12, 108, 55, 0, 44, 81, 32, 99, 97, 108, 32, 25, 1, 56, 110, 121, 111, 108, 99, 97, 100, 105, 107, 195, 161, 105, 103,
-			0, 44, 16, 29, 81, 32, 105, 103, 32, 20, 1, 56, 67, 39, 55, 119, 108, 72, 37, 49, 108, 37, 0, 44, 16, 81, 32, 105, 32, 0,
-			12, 201, 82, 131, 139, 72, 85, 5, 32, 85, 9, 11, 9, 134, 195, 188, 108, 197, 145, 116, 11, 10, 199, 40, 21, 129, 76, 243, 14, 36,
-			11, 19, 1, 57, 49, 37, 55, 109, 50, 119, 109, 47, 0, 44, 81, 32, 99, 101, 116, 32, 20, 1, 57, 49, 37, 55, 109, 50, 119, 12,
-			109, 55, 0, 44, 81, 32, 99, 101, 108, 32, 19, 1, 57, 49, 37, 55, 109, 50, 119, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0,
-			9, 198, 48, 84, 218, 172, 226, 192, 72, 9, 198, 82, 132, 148, 136, 227, 137, 11, 12, 201, 44, 243, 12, 136, 119, 9, 88, 19, 0, 11,
-			9, 198, 82, 132, 148, 136, 227, 137, 11, 9, 198, 48, 83, 142, 136, 226, 192, 11, 0, 8, 197, 66, 35, 4, 113, 64, 11, 0, 28, 69,
-			50, 36, 34, 76, 80, 55, 113, 48, 113, 91, 109, 23, 109, 55, 12, 109, 50, 0, 11, 81, 101, 108, 108, 101, 110, 32, 35, 69, 20, 118,
-			107, 90, 32, 109, 79, 12, 111, 84, 113, 23, 47, 108, 34, 47, 39, 88, 114, 91, 0, 11, 81, 116, 97, 114, 116, 111, 122, 195, 161, 115,
-			32, 8, 197, 137, 38, 162, 76, 80, 11, 8, 197, 82, 35, 92, 72, 16, 11, 10, 199, 77, 161, 77, 80, 19, 170, 44, 11, 9, 198, 85,
-			64, 83, 149, 71, 19, 11, 0, 11, 1, 61, 109, 79, 109, 50, 55, 118, 0, 27, 40, 68, 61, 0, 201, 156, 39, 48, 119, 37, 115, 23,
-			71, 109, 49, 108, 48, 76, 39, 55, 114, 91, 108, 0, 11, 81, 98, 101, 107, 97, 112, 99, 115, 111, 108, 195, 161, 115, 97, 32, 28, 70,
-			76, 146, 197, 72, 84, 192, 91, 37, 49, 109, 52, 109, 91, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 12, 201, 20, 195,
-			5, 57, 72, 148, 8, 83, 128, 11, 8, 197, 61, 0, 201, 156, 176, 11, 22, 68, 61, 0, 201, 156, 39, 48, 119, 37, 115, 15, 50, 109,
-			65, 0, 11, 81, 110, 101, 109, 32, 6, 195, 149, 37, 129, 11, 0, 7, 196, 10, 86, 142, 4, 11, 12, 201, 80, 83, 142, 37, 96, 76,
-			156, 226, 192, 11, 0, 29, 71, 88, 19, 39, 78, 85, 10, 4, 84, 108, 55, 115, 91, 112, 80, 12, 108, 23, 65, 109, 81, 0, 11, 81,
-			109, 101, 103, 32, 40, 14, 115, 122, 101, 114, 122, 197, 145, 100, 195, 169, 115, 98, 101, 110, 89, 109, 52, 88, 118, 72, 113, 91, 71, 109,
-			50, 23, 49, 109, 55, 12, 0, 11, 81, 107, 101, 108, 108, 32, 42, 69, 112, 195, 1, 52, 144, 114, 55, 12, 108, 65, 37, 10, 6, 15,
-			47, 114, 65, 39, 81, 108, 47, 114, 91, 108, 0, 11, 81, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 97, 32, 10, 199, 28, 243,
-			132, 60, 194, 149, 44, 11, 7, 196, 41, 196, 147, 104, 11, 12, 7, 95, 35, 45, 105, 107, 97, 105, 108, 37, 0, 0, 10, 1, 64, 49,
-			40, 49, 108, 119, 0, 27, 6, 65, 64, 48, 113, 0, 8, 197, 89, 193, 217, 77, 160, 11, 8, 197, 46, 133, 34, 76, 80, 11, 9, 198,
-			40, 83, 5, 57, 68, 197, 11, 12, 201, 72, 81, 201, 77, 165, 18, 112, 50, 103, 11, 0, 9, 198, 77, 167, 13, 49, 194, 84, 11, 12,
-			201, 112, 195, 28, 77, 3, 206, 80, 160, 64, 11, 10, 199, 37, 50, 207, 49, 194, 193, 80, 11, 6, 195, 60, 179, 218, 11, 10, 67, 113,
-			54, 128, 114, 89, 0, 42, 42, 0, 9, 198, 8, 83, 69, 57, 65, 75, 11, 11, 200, 74, 36, 218, 48, 85, 5, 37, 64, 11, 9, 198,
-			88, 148, 197, 49, 65, 75, 11, 9, 134, 102, 197, 177, 122, 110, 105, 11, 9, 198, 137, 34, 197, 104, 146, 192, 11, 10, 199, 61, 33, 9,
-			9, 195, 20, 4, 11, 7, 196, 90, 35, 20, 20, 11, 0, 16, 141, 109, 101, 103, 102, 101, 108, 101, 108, 197, 145, 110, 101, 107, 11, 9,
-			198, 60, 197, 129, 76, 226, 64, 11, 16, 141, 115, 122, 97, 107, 195, 169, 114, 116, 197, 145, 110, 101, 107, 11, 9, 198, 44, 20, 3, 76,
-			243, 20, 11, 7, 132, 197, 145, 114, 116, 11, 0, 6, 65, 68, 49, 40, 0, 45, 10, 98, 197, 177, 110, 195, 182, 115, 110, 101, 107, 71,
-			117, 50, 110, 91, 50, 109, 49, 10, 6, 15, 47, 108, 55, 114, 61, 57, 114, 49, 0, 11, 81, 116, 97, 108, 195, 161, 108, 106, 195, 161,
-			107, 32, 70, 10, 115, 122, 101, 110, 118, 101, 100, 197, 145, 107, 89, 109, 50, 84, 109, 72, 118, 49, 23, 49, 110, 52, 113, 71, 109, 50,
-			23, 48, 52, 115, 71, 114, 55, 50, 114, 49, 23, 49, 37, 0, 11, 83, 107, 195, 182, 114, 195, 169, 98, 101, 110, 32, 112, 114, 195, 179,
-			98, 195, 161, 108, 110, 195, 161, 107, 32, 107, 105, 32, 12, 201, 21, 132, 5, 18, 80, 201, 156, 224, 75, 11, 0, 9, 198, 88, 17, 217,
-			80, 242, 192, 11, 8, 197, 172, 200, 147, 20, 224, 11, 10, 199, 40, 241, 203, 161, 36, 133, 48, 11, 0, 9, 198, 53, 83, 139, 112, 32,
-			78, 11, 11, 200, 137, 33, 5, 44, 82, 86, 20, 192, 11, 11, 200, 81, 195, 79, 28, 21, 14, 112, 176, 11, 43, 74, 40, 83, 5, 57,
-			66, 197, 106, 36, 226, 80, 57, 109, 55, 109, 50, 47, 49, 109, 88, 113, 91, 113, 47, 23, 84, 114, 52, 57, 40, 49, 0, 11, 81, 118,
-			195, 161, 114, 106, 117, 107, 32, 13, 138, 107, 195, 182, 116, 101, 108, 101, 122, 197, 145, 11, 12, 201, 8, 244, 211, 104, 19, 148, 156, 18,
-			192, 11, 9, 198, 77, 163, 194, 112, 32, 78, 11, 7, 196, 148, 120, 146, 80, 11, 9, 198, 46, 36, 5, 44, 33, 78, 17, 0, 11, 200,
-			37, 39, 14, 102, 85, 10, 112, 176, 11, 9, 198, 41, 85, 20, 5, 71, 19, 11, 10, 199, 50, 36, 8, 21, 52, 197, 56, 11, 10, 199,
-			12, 83, 148, 72, 146, 213, 76, 11, 11, 200, 50, 36, 34, 76, 82, 203, 20, 192, 11, 0, 7, 65, 72, 109, 51, 51, 0, 21, 67, 112,
-			195, 0, 114, 55, 12, 23, 108, 52, 52, 108, 0, 11, 81, 97, 114, 114, 97, 32, 7, 196, 5, 166, 129, 48, 11, 7, 196, 21, 166, 133,
-			48, 11, 12, 137, 195, 169, 118, 101, 107, 98, 197, 145, 108, 11, 44, 12, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 84, 108,
-			55, 115, 89, 112, 50, 117, 15, 10, 107, 37, 72, 109, 81, 109, 71, 12, 0, 11, 81, 104, 105, 100, 101, 103, 101, 98, 98, 32, 12, 137,
-			195, 169, 118, 101, 107, 98, 197, 145, 108, 11, 15, 140, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 11, 7, 196, 5, 166, 129,
-			48, 11, 6, 195, 112, 195, 0, 11, 0, 12, 137, 101, 114, 197, 145, 115, 195, 173, 116, 105, 11, 15, 204, 77, 163, 204, 29, 195, 20, 5,
-			71, 19, 60, 176, 84, 11, 38, 76, 77, 163, 204, 29, 195, 20, 5, 71, 19, 60, 176, 84, 89, 39, 55, 81, 114, 55, 47, 108, 47, 114,
-			91, 39, 49, 108, 47, 23, 37, 91, 0, 11, 81, 105, 115, 32, 41, 73, 44, 20, 3, 76, 243, 1, 80, 32, 78, 49, 108, 48, 76, 39,
-			55, 108, 47, 71, 108, 50, 23, 108, 88, 23, 84, 39, 55, 47, 0, 11, 82, 97, 122, 32, 118, 111, 108, 116, 32, 0, 12, 201, 82, 132,
-			150, 136, 230, 69, 44, 83, 128, 11, 11, 200, 32, 83, 25, 104, 85, 34, 73, 64, 11, 0, 8, 197, 46, 133, 14, 36, 80, 11, 9, 198,
-			52, 243, 132, 40, 19, 64, 11, 11, 200, 84, 118, 65, 56, 18, 203, 61, 32, 11, 15, 204, 24, 83, 8, 5, 54, 142, 112, 201, 203, 56,
-			18, 192, 11, 9, 198, 25, 34, 83, 78, 179, 0, 11, 9, 198, 41, 85, 1, 48, 243, 64, 11, 9, 198, 60, 197, 129, 76, 243, 64, 11,
-			0, 7, 65, 76, 109, 91, 0, 49, 6, 65, 76, 91, 10, 0, 13, 202, 46, 132, 130, 20, 167, 20, 77, 167, 19, 4, 11, 7, 196, 14,
-			35, 15, 44, 11, 0, 11, 200, 77, 160, 86, 5, 160, 84, 61, 64, 11, 17, 142, 102, 101, 108, 101, 115, 195, 169, 103, 195, 169, 116, 197,
-			145, 108, 11, 13, 202, 64, 243, 7, 113, 35, 69, 77, 65, 82, 80, 11, 10, 199, 40, 83, 5, 57, 72, 147, 80, 11, 6, 195, 149, 37,
-			1, 11, 9, 198, 46, 179, 4, 161, 69, 0, 11, 0, 9, 198, 44, 83, 12, 20, 225, 75, 11, 11, 200, 44, 145, 137, 104, 85, 14, 36,
-			80, 11, 9, 198, 76, 20, 139, 112, 131, 218, 11, 12, 201, 65, 35, 194, 50, 35, 92, 74, 115, 0, 11, 10, 199, 24, 83, 12, 137, 8,
-			147, 80, 11, 8, 133, 103, 121, 197, 145, 122, 11, 0, 0, 7, 196, 90, 85, 143, 44, 11, 12, 201, 161, 52, 218, 21, 32, 75, 61, 69,
-			0, 11, 9, 198, 82, 132, 148, 136, 226, 75, 11, 7, 196, 20, 118, 69, 80, 11, 7, 196, 88, 83, 5, 16, 11, 0, 31, 70, 18, 131,
-			148, 161, 69, 0, 72, 110, 50, 47, 110, 47, 12, 23, 108, 52, 52, 115, 55, 0, 11, 81, 97, 114, 114, 195, 179, 108, 32, 8, 197, 49,
-			195, 131, 60, 176, 11, 26, 68, 44, 144, 211, 36, 49, 37, 76, 37, 10, 6, 15, 108, 107, 39, 88, 0, 11, 81, 97, 104, 104, 111, 122,
-			32, 9, 198, 36, 179, 206, 41, 196, 129, 11, 6, 195, 137, 37, 5, 11, 9, 198, 18, 131, 148, 161, 69, 0, 11, 5, 194, 8, 16, 11,
-			0, 35, 67, 52, 81, 192, 65, 109, 81, 23, 49, 109, 55, 12, 23, 39, 55, 72, 108, 50, 37, 0, 11, 82, 107, 101, 108, 108, 32, 111,
-			108, 100, 97, 110, 105, 32, 41, 67, 52, 81, 192, 65, 109, 81, 23, 49, 109, 55, 12, 23, 84, 37, 90, 81, 114, 55, 50, 37, 0, 11,
-			82, 107, 101, 108, 108, 32, 118, 105, 122, 115, 103, 195, 161, 108, 110, 105, 32, 8, 197, 8, 19, 156, 57, 64, 11, 38, 67, 52, 81, 192,
-			65, 109, 81, 10, 6, 15, 49, 109, 55, 12, 10, 6, 15, 67, 39, 65, 50, 37, 0, 11, 82, 107, 101, 108, 108, 32, 110, 121, 111, 109,
-			110, 105, 32, 25, 67, 52, 81, 192, 65, 109, 81, 23, 108, 88, 39, 49, 108, 47, 0, 11, 81, 97, 122, 111, 107, 97, 116, 32, 28, 67,
-			52, 81, 192, 65, 109, 81, 23, 108, 6, 15, 91, 39, 52, 71, 108, 0, 11, 82, 97, 32, 115, 111, 114, 98, 97, 32, 45, 67, 52, 81,
-			192, 65, 109, 81, 23, 108, 6, 15, 57, 109, 55, 109, 50, 47, 49, 109, 88, 118, 84, 109, 55, 0, 11, 82, 97, 32, 106, 101, 108, 101,
-			110, 116, 107, 101, 122, 197, 145, 118, 101, 108, 32, 29, 67, 52, 81, 192, 65, 109, 81, 23, 37, 91, 23, 47, 40, 72, 39, 65, 0, 11,
-			82, 105, 115, 32, 116, 117, 100, 111, 109, 32, 24, 67, 52, 81, 192, 65, 109, 81, 23, 108, 23, 107, 112, 52, 0, 11, 82, 97, 32, 104,
-			195, 173, 114, 32, 15, 67, 52, 81, 192, 65, 109, 81, 23, 108, 0, 11, 81, 97, 32, 12, 201, 46, 36, 218, 172, 200, 139, 20, 177, 84,
-			11, 8, 197, 105, 196, 149, 49, 64, 11, 9, 198, 76, 81, 229, 80, 83, 162, 11, 6, 195, 52, 81, 192, 11, 0, 9, 198, 77, 161, 77,
-			64, 243, 148, 11, 9, 198, 77, 169, 204, 81, 195, 0, 11, 0, 32, 73, 72, 83, 132, 20, 194, 197, 106, 36, 212, 51, 109, 50, 72, 109,
-			55, 49, 109, 88, 113, 91, 47, 23, 37, 91, 0, 11, 81, 105, 115, 32, 16, 141, 101, 108, 108, 101, 110, 197, 145, 114, 122, 195, 169, 115,
-			116, 11, 28, 67, 8, 19, 0, 71, 108, 55, 23, 39, 55, 72, 108, 55, 114, 50, 0, 11, 81, 111, 108, 100, 97, 108, 195, 161, 110, 32,
-			12, 201, 36, 225, 193, 80, 192, 78, 84, 176, 129, 11, 13, 202, 32, 18, 140, 136, 181, 1, 48, 19, 143, 44, 11, 12, 201, 20, 194, 5,
-			49, 145, 90, 21, 69, 0, 11, 12, 201, 8, 150, 143, 81, 68, 220, 28, 245, 0, 11, 7, 196, 32, 83, 25, 80, 11, 7, 196, 24, 243,
-			25, 80, 11, 11, 193, 84, 13, 83, 46, 32, 105, 32, 46, 32, 0, 33, 67, 137, 100, 133, 113, 84, 52, 109, 10, 6, 15, 49, 113, 89,
-			111, 55, 50, 109, 0, 11, 81, 107, 195, 169, 115, 122, 195, 188, 108, 110, 101, 32, 6, 195, 137, 100, 133, 11, 12, 201, 80, 20, 148, 157,
-			162, 207, 17, 196, 212, 11, 9, 198, 52, 81, 206, 137, 163, 137, 11, 9, 66, 85, 0, 40, 48, 0, 42, 42, 0, 13, 202, 52, 81, 220,
-			48, 192, 80, 60, 71, 19, 80, 11, 9, 198, 77, 167, 12, 48, 163, 206, 11, 0, 13, 202, 32, 246, 154, 112, 167, 18, 84, 199, 19, 80,
-			11, 11, 136, 101, 122, 101, 108, 197, 145, 116, 116, 11, 0, 4, 193, 88, 42, 6, 65, 88, 84, 113, 0, 12, 201, 40, 81, 217, 104, 85,
-			5, 44, 85, 0, 11, 9, 198, 81, 196, 143, 48, 226, 64, 11, 9, 198, 44, 84, 171, 48, 226, 64, 11, 0, 9, 198, 13, 50, 82, 46,
-			36, 133, 11, 12, 137, 118, 101, 115, 122, 197, 145, 100, 110, 105, 11, 9, 198, 64, 84, 133, 54, 36, 133, 11, 16, 66, 137, 48, 113, 91,
-			23, 57, 115, 0, 11, 81, 106, 195, 179, 32, 25, 66, 137, 48, 113, 91, 23, 83, 108, 48, 108, 72, 39, 91, 0, 11, 81, 102, 97, 112,
-			97, 100, 111, 115, 32, 9, 198, 78, 37, 28, 48, 226, 64, 11, 33, 66, 137, 48, 113, 91, 23, 71, 39, 89, 12, 108, 50, 47, 115, 108,
-			49, 0, 11, 81, 98, 111, 115, 115, 122, 97, 110, 116, 195, 179, 97, 107, 32, 10, 199, 65, 35, 202, 20, 181, 10, 20, 11, 9, 198, 77,
-			169, 204, 40, 243, 128, 11, 24, 66, 137, 48, 113, 91, 65, 115, 79, 12, 114, 47, 0, 11, 81, 109, 195, 179, 100, 106, 195, 161, 116, 32,
-			10, 199, 20, 211, 5, 28, 85, 14, 36, 11, 5, 194, 5, 48, 72, 7, 194, 137, 48, 72, 10, 17, 0, 9, 198, 161, 42, 13, 137, 33,
-			64, 11, 10, 199, 64, 148, 218, 45, 195, 14, 36, 11, 11, 200, 24, 83, 9, 76, 209, 82, 56, 144, 11, 0, 12, 201, 80, 83, 5, 24,
-			243, 143, 44, 176, 76, 11, 12, 201, 13, 51, 208, 61, 37, 15, 44, 176, 76, 11, 9, 198, 76, 145, 84, 82, 179, 139, 11, 14, 139, 114,
-			101, 110, 100, 101, 108, 107, 101, 122, 197, 145, 11, 15, 4, 95, 49, 77, 52, 109, 79, 71, 37, 55, 55, 37, 115, 0, 0, 12, 1, 92,
-			71, 109, 49, 122, 55, 109, 91, 0, 27, 11, 65, 92, 72, 40, 48, 55, 108, 84, 113, 0, 15, 140, 101, 108, 108, 101, 110, 197, 145, 114,
-			105, 122, 110, 105, 11, 16, 141, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 101, 116, 116, 11, 12, 201, 44, 146, 1, 77, 163, 156, 48,
-			226, 64, 11, 7, 196, 88, 148, 197, 48, 11, 0, 9, 198, 29, 144, 78, 168, 167, 20, 11, 10, 199, 65, 35, 194, 50, 35, 92, 76, 11,
-			9, 198, 24, 244, 141, 112, 167, 20, 11, 7, 196, 36, 225, 37, 80, 11, 0, 14, 1, 94, 83, 110, 55, 83, 109, 55, 113, 67, 112, 55,
-			0, 9, 198, 37, 39, 14, 100, 131, 218, 11, 10, 199, 137, 37, 34, 44, 82, 197, 80, 11, 7, 196, 10, 84, 142, 4, 11, 0, 10, 199,
-			20, 193, 40, 57, 72, 147, 20, 11, 9, 198, 53, 85, 1, 80, 167, 11, 11, 13, 202, 44, 243, 135, 72, 84, 211, 105, 84, 220, 56, 11,
-			9, 198, 89, 195, 1, 77, 163, 203, 11, 9, 198, 80, 84, 141, 136, 177, 75, 11, 9, 198, 24, 84, 218, 20, 113, 84, 11, 12, 7, 95,
-			35, 45, 105, 107, 101, 105, 109, 37, 0, 0, 4, 193, 96, 42, 7, 65, 96, 37, 49, 89, 0, 35, 68, 48, 82, 5, 80, 55, 109, 107,
-			109, 47, 23, 89, 114, 65, 112, 47, 108, 50, 37, 0, 11, 81, 115, 122, 195, 161, 109, 195, 173, 116, 97, 110, 105, 32, 38, 68, 48, 82,
-			5, 80, 55, 109, 107, 109, 47, 23, 108, 49, 108, 72, 114, 57, 39, 88, 50, 37, 0, 11, 81, 97, 107, 97, 100, 195, 161, 108, 121, 111,
-			122, 110, 105, 32, 25, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 113, 52, 50, 37, 0, 11, 81, 195, 169, 114, 110, 105, 32, 41,
-			68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 47, 40, 72, 50, 37, 10, 6, 15, 51, 115, 55, 108, 0, 11, 82, 116, 117,
-			100, 110, 105, 32, 114, 195, 179, 108, 97, 32, 33, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 37, 91, 65, 109, 52, 118,
-			91, 0, 11, 81, 105, 115, 109, 101, 114, 197, 145, 115, 32, 28, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 84, 109, 50,
-			12, 37, 0, 11, 81, 118, 101, 110, 110, 105, 32, 34, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 65, 108, 34, 49, 39,
-			55, 50, 37, 0, 11, 81, 109, 97, 114, 107, 111, 108, 110, 105, 32, 36, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 57,
-			109, 55, 109, 50, 47, 109, 50, 37, 0, 11, 81, 106, 101, 108, 101, 110, 116, 101, 110, 105, 32, 26, 68, 48, 82, 5, 80, 55, 109, 107,
-			109, 47, 23, 109, 88, 88, 109, 55, 0, 11, 81, 101, 122, 122, 101, 108, 32, 16, 205, 80, 20, 137, 24, 16, 211, 60, 208, 71, 60, 178,
-			193, 48, 11, 34, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 107, 108, 89, 50, 114, 55, 50, 37, 0, 11, 81, 104, 97, 115, 122,
-			110, 195, 161, 108, 110, 105, 32, 36, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 108, 88, 10, 6, 15, 111, 79, 71, 109, 50, 0,
-			11, 82, 97, 122, 32, 195, 188, 103, 121, 98, 101, 110, 32, 27, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 50, 113, 88, 50, 37,
-			0, 11, 81, 110, 195, 169, 122, 110, 105, 32, 16, 141, 105, 115, 109, 101, 114, 197, 145, 115, 101, 105, 107, 101, 116, 11, 32, 68, 48, 82,
-			5, 80, 55, 109, 107, 109, 47, 23, 76, 108, 48, 108, 72, 113, 49, 0, 11, 81, 99, 115, 97, 112, 97, 100, 195, 169, 107, 32, 7, 196,
-			76, 242, 193, 80, 11, 7, 196, 80, 82, 5, 80, 11, 7, 196, 48, 82, 5, 80, 11, 16, 65, 96, 47, 112, 88, 88, 109, 55, 0, 44,
-			42, 81, 101, 108, 32, 0, 14, 203, 88, 148, 211, 104, 23, 12, 50, 85, 1, 57, 192, 11, 10, 199, 13, 50, 78, 112, 197, 28, 44, 11,
-			17, 142, 101, 108, 197, 145, 195, 173, 114, 195, 161, 115, 111, 107, 97, 116, 11, 12, 201, 25, 32, 75, 12, 153, 202, 113, 32, 64, 11, 10,
-			199, 40, 21, 129, 76, 243, 10, 4, 11, 9, 198, 77, 161, 82, 17, 196, 129, 17, 5, 194, 4, 64, 11, 15, 4, 95, 49, 77, 50, 109,
-			79, 65, 37, 55, 55, 37, 115, 0, 0, 9, 198, 48, 89, 82, 113, 55, 20, 11, 11, 200, 77, 163, 204, 29, 195, 10, 112, 176, 11, 17,
-			4, 95, 49, 77, 51, 109, 79, 65, 37, 55, 55, 37, 114, 52, 72, 0, 0, 9, 198, 20, 194, 78, 17, 83, 20, 11, 7, 196, 77, 169,
-			214, 112, 11, 10, 199, 57, 154, 138, 81, 196, 220, 80, 11, 6, 131, 102, 197, 145, 11, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50,
-			0, 12, 201, 32, 19, 135, 52, 147, 148, 112, 176, 84, 11, 9, 198, 44, 145, 5, 74, 179, 20, 11, 0, 51, 70, 20, 195, 5, 58, 36,
-			133, 109, 55, 12, 109, 50, 113, 52, 109, 23, 37, 91, 23, 71, 37, 89, 47, 39, 91, 112, 47, 108, 50, 114, 0, 11, 82, 105, 115, 32,
-			98, 105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 195, 161, 32, 13, 202, 52, 80, 200, 4, 226, 90, 53, 84, 220, 80, 11, 13, 202, 52,
-			81, 220, 48, 201, 84, 113, 55, 18, 4, 11, 10, 199, 65, 35, 194, 50, 35, 92, 44, 11, 17, 142, 105, 100, 197, 145, 106, 195, 161, 114,
-			195, 161, 115, 195, 161, 116, 11, 33, 70, 57, 149, 71, 60, 69, 0, 67, 40, 81, 39, 47, 12, 15, 65, 108, 52, 108, 72, 50, 37, 0,
-			11, 81, 109, 97, 114, 97, 100, 110, 105, 32, 11, 200, 40, 21, 129, 76, 243, 10, 112, 176, 11, 7, 196, 12, 83, 12, 4, 11, 9, 198,
-			24, 244, 132, 84, 197, 0, 11, 8, 195, 37, 5, 22, 13, 42, 42, 0, 11, 200, 81, 195, 79, 28, 21, 10, 112, 176, 11, 20, 67, 66,
-			35, 154, 48, 113, 50, 88, 15, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 12, 201, 24, 83, 16, 84, 137, 84, 113, 55, 20, 11, 14,
-			139, 114, 101, 110, 100, 106, 195, 169, 114, 197, 145, 108, 11, 6, 195, 66, 35, 154, 11, 6, 195, 76, 20, 192, 11, 0, 29, 71, 65, 35,
-			194, 50, 35, 92, 52, 48, 52, 39, 71, 55, 113, 65, 114, 65, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 40, 72, 20, 118, 69,
-			78, 179, 5, 80, 144, 109, 79, 12, 109, 91, 111, 55, 109, 47, 37, 23, 84, 109, 88, 109, 47, 118, 49, 0, 11, 81, 118, 101, 122, 101,
-			116, 197, 145, 107, 32, 15, 204, 52, 81, 220, 48, 192, 80, 149, 71, 19, 113, 32, 64, 11, 13, 202, 54, 113, 15, 78, 85, 28, 76, 242,
-			193, 80, 11, 33, 71, 65, 35, 194, 50, 35, 92, 52, 48, 52, 39, 71, 55, 113, 65, 114, 65, 15, 108, 49, 108, 47, 12, 0, 11, 81,
-			97, 107, 97, 100, 116, 32, 31, 70, 52, 81, 207, 48, 71, 19, 65, 109, 81, 39, 55, 72, 114, 91, 15, 48, 109, 72, 37, 81, 0, 11,
-			81, 112, 101, 100, 105, 103, 32, 9, 198, 52, 81, 207, 48, 71, 19, 11, 0, 6, 65, 104, 88, 113, 0, 22, 68, 160, 197, 5, 44, 110,
-			55, 47, 109, 49, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 39, 69, 32, 243, 140, 5, 0, 107, 39, 50, 55, 108, 48, 10, 6,
-			15, 47, 110, 52, 55, 113, 91, 113, 47, 0, 11, 81, 116, 195, 182, 114, 108, 195, 169, 115, 195, 169, 116, 32, 15, 204, 88, 148, 211, 104,
-			23, 12, 50, 85, 28, 77, 196, 129, 11, 8, 197, 172, 118, 66, 20, 224, 11, 20, 145, 101, 108, 197, 145, 195, 161, 108, 108, 195, 173, 116,
-			195, 161, 115, 195, 161, 116, 11, 0, 12, 201, 44, 244, 140, 113, 67, 218, 113, 48, 64, 11, 9, 198, 65, 84, 218, 82, 85, 0, 11, 12,
-			201, 46, 134, 140, 20, 177, 68, 80, 85, 9, 11, 8, 197, 54, 36, 142, 20, 176, 11, 8, 197, 32, 83, 25, 20, 64, 11, 17, 142, 195,
-			169, 108, 109, 195, 169, 110, 121, 195, 169, 116, 197, 145, 108, 11, 11, 200, 77, 161, 75, 80, 244, 146, 4, 192, 11, 8, 197, 89, 196, 142,
-			4, 176, 11, 8, 197, 46, 36, 142, 20, 176, 11, 8, 197, 10, 162, 142, 4, 176, 11, 17, 142, 114, 195, 169, 115, 122, 108, 101, 116, 101,
-			105, 114, 197, 145, 108, 11, 8, 197, 41, 196, 142, 4, 176, 11, 11, 200, 48, 82, 5, 81, 56, 135, 21, 48, 11, 0, 6, 195, 21, 161,
-			75, 11, 9, 198, 113, 37, 76, 56, 18, 192, 11, 9, 198, 77, 169, 204, 80, 18, 192, 11, 11, 200, 77, 163, 198, 81, 97, 82, 20, 144,
-			11, 6, 195, 137, 37, 0, 11, 0, 10, 199, 77, 161, 82, 20, 197, 5, 44, 11, 9, 198, 32, 21, 143, 57, 64, 64, 11, 7, 196, 113,
-			32, 129, 56, 11, 31, 71, 56, 147, 131, 76, 83, 133, 44, 50, 37, 50, 76, 109, 50, 109, 49, 23, 52, 115, 55, 108, 0, 11, 81, 114,
-			195, 179, 108, 97, 32, 11, 200, 65, 35, 199, 72, 19, 66, 4, 224, 11, 9, 198, 32, 22, 149, 17, 64, 64, 11, 9, 198, 52, 20, 129,
-			17, 96, 64, 11, 7, 196, 34, 37, 5, 56, 11, 9, 198, 16, 20, 129, 9, 32, 64, 11, 6, 195, 88, 19, 12, 11, 0, 47, 71, 65,
-			35, 199, 72, 19, 79, 80, 48, 52, 39, 81, 52, 108, 65, 39, 47, 23, 37, 50, 72, 112, 47, 108, 50, 114, 50, 108, 49, 0, 11, 81,
-			105, 110, 100, 195, 173, 116, 97, 110, 195, 161, 110, 97, 107, 32, 43, 71, 65, 35, 199, 72, 19, 79, 80, 48, 52, 39, 81, 52, 108, 65,
-			39, 47, 15, 47, 109, 89, 47, 109, 55, 111, 50, 49, 0, 11, 81, 116, 101, 115, 122, 116, 101, 108, 195, 188, 110, 107, 32, 0, 11, 200,
-			24, 243, 25, 4, 208, 84, 61, 64, 11, 12, 201, 32, 19, 135, 78, 163, 25, 61, 165, 1, 11, 12, 201, 88, 243, 129, 80, 179, 218, 56,
-			18, 192, 11, 0, 22, 147, 116, 101, 118, 195, 169, 107, 101, 110, 121, 115, 195, 169, 103, 195, 169, 114, 197, 145, 108, 11, 15, 140, 195, 169,
-			108, 99, 101, 108, 197, 145, 100, 116, 101, 107, 11, 0, 11, 200, 4, 181, 9, 89, 195, 20, 4, 208, 11, 7, 196, 48, 20, 15, 44, 11,
-			7, 196, 21, 54, 137, 44, 11, 10, 199, 24, 244, 132, 84, 197, 1, 44, 11, 6, 195, 73, 195, 139, 11, 0, 7, 196, 113, 67, 1, 28,
-			11, 42, 70, 44, 244, 156, 8, 34, 64, 49, 39, 52, 114, 71, 12, 37, 23, 109, 55, 49, 113, 48, 88, 109, 55, 113, 91, 0, 11, 81,
-			101, 108, 107, 195, 169, 112, 122, 101, 108, 195, 169, 115, 32, 43, 72, 168, 169, 84, 113, 51, 203, 5, 64, 116, 57, 112, 47, 114, 91, 39,
-			49, 108, 47, 15, 71, 109, 84, 109, 88, 109, 47, 50, 37, 0, 11, 81, 98, 101, 118, 101, 122, 101, 116, 110, 105, 32, 7, 196, 36, 198,
-			69, 80, 11, 6, 195, 4, 32, 129, 11, 0, 9, 198, 8, 245, 18, 112, 230, 65, 11, 6, 195, 90, 35, 9, 11, 6, 195, 90, 35, 9,
-			11, 6, 195, 82, 35, 9, 15, 6, 195, 42, 163, 128, 15, 0, 12, 201, 32, 246, 154, 112, 177, 90, 16, 82, 192, 11, 10, 199, 82, 179,
-			148, 21, 72, 147, 80, 11, 0, 8, 197, 46, 36, 142, 36, 80, 11, 10, 199, 32, 85, 9, 48, 20, 15, 44, 11, 0, 9, 198, 77, 161,
-			77, 8, 83, 128, 11, 9, 198, 16, 243, 7, 61, 163, 137, 11, 9, 198, 77, 161, 77, 8, 83, 128, 11, 0, 22, 67, 40, 240, 130, 57,
-			39, 71, 12, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 38, 67, 40, 240, 130, 57, 39, 71, 12, 10, 6, 15, 47, 114,
-			65, 39, 81, 108, 47, 114, 91, 108, 0, 11, 81, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 97, 32, 9, 198, 80, 84, 141, 20,
-			149, 0, 11, 9, 198, 58, 38, 133, 28, 85, 0, 11, 6, 195, 40, 240, 130, 11, 11, 5, 95, 35, 45, 97, 105, 108, 37, 0, 16, 0,
-			20, 69, 84, 37, 78, 81, 80, 117, 98, 117, 110, 116, 117, 110, 0, 44, 29, 81, 110, 32, 7, 196, 77, 169, 194, 4, 11, 8, 197, 46,
-			35, 77, 20, 192, 11, 7, 196, 89, 196, 138, 4, 11, 10, 199, 44, 149, 40, 49, 65, 78, 36, 11, 10, 199, 77, 160, 75, 149, 64, 78,
-			36, 11, 9, 198, 36, 112, 90, 77, 193, 192, 11, 7, 196, 46, 133, 14, 36, 11, 7, 196, 137, 10, 204, 80, 11, 7, 196, 46, 134, 130,
-			20, 11, 14, 4, 95, 48, 67, 111, 89, 114, 88, 108, 72, 37, 49, 0, 0, 10, 199, 77, 167, 13, 149, 64, 78, 36, 11, 9, 198, 80,
-			82, 5, 80, 170, 203, 11, 8, 197, 85, 64, 220, 8, 16, 11, 6, 195, 72, 82, 148, 11, 0, 11, 200, 24, 243, 25, 4, 208, 84, 61,
-			48, 11, 27, 70, 46, 133, 133, 80, 85, 20, 49, 110, 84, 109, 47, 109, 47, 12, 10, 6, 15, 109, 55, 0, 11, 81, 101, 108, 32, 8,
-			197, 77, 168, 144, 20, 224, 11, 9, 198, 46, 133, 133, 80, 85, 20, 11, 8, 197, 54, 36, 148, 20, 224, 11, 12, 201, 136, 193, 84, 80,
-			20, 148, 4, 208, 64, 11, 9, 198, 16, 84, 165, 80, 85, 20, 11, 0, 11, 200, 36, 225, 37, 81, 196, 203, 61, 32, 11, 25, 69, 57,
-			153, 76, 36, 176, 67, 112, 55, 37, 49, 15, 108, 52, 52, 108, 0, 11, 81, 97, 114, 114, 97, 32, 11, 200, 65, 35, 199, 72, 19, 77,
-			4, 192, 11, 8, 197, 82, 132, 148, 20, 176, 11, 7, 132, 197, 145, 115, 122, 15, 0, 13, 202, 81, 83, 1, 40, 67, 206, 149, 64, 78,
-			36, 11, 22, 67, 44, 148, 192, 49, 37, 91, 23, 47, 109, 55, 115, 0, 11, 81, 116, 101, 108, 195, 179, 32, 30, 67, 44, 148, 192, 49,
-			37, 91, 15, 47, 111, 52, 109, 55, 65, 109, 47, 0, 11, 81, 116, 195, 188, 114, 101, 108, 109, 101, 116, 32, 24, 67, 44, 148, 192, 49,
-			37, 91, 15, 109, 52, 109, 57, 117, 0, 11, 81, 101, 114, 101, 106, 197, 177, 32, 8, 197, 77, 167, 13, 61, 64, 11, 7, 196, 104, 21,
-			129, 72, 11, 0, 12, 201, 72, 17, 193, 77, 162, 207, 16, 226, 64, 11, 32, 70, 24, 244, 137, 57, 67, 212, 83, 39, 52, 37, 50, 47,
-			39, 47, 23, 113, 52, 50, 109, 49, 0, 11, 81, 195, 169, 114, 110, 101, 107, 32, 8, 197, 44, 86, 162, 8, 80, 11, 11, 200, 36, 112,
-			90, 28, 21, 39, 40, 16, 11, 11, 200, 9, 81, 1, 64, 84, 212, 20, 224, 11, 9, 198, 24, 244, 137, 57, 67, 212, 11, 10, 199, 28,
-			243, 132, 60, 197, 78, 44, 11, 0, 12, 201, 52, 83, 133, 81, 33, 78, 16, 85, 0, 11, 27, 71, 80, 84, 171, 48, 85, 5, 44, 47,
-			109, 52, 111, 55, 109, 47, 109, 49, 23, 37, 91, 0, 11, 81, 105, 115, 32, 9, 198, 28, 243, 132, 60, 195, 205, 11, 10, 199, 37, 50,
-			207, 49, 196, 207, 44, 11, 9, 198, 37, 35, 196, 112, 32, 64, 11, 9, 198, 48, 18, 220, 76, 32, 64, 11, 11, 200, 44, 146, 133, 48,
-			83, 148, 36, 176, 11, 9, 198, 88, 147, 28, 28, 32, 64, 11, 7, 196, 137, 33, 5, 44, 11, 0, 12, 201, 32, 19, 135, 78, 163, 25,
-			61, 165, 129, 11, 12, 201, 82, 132, 148, 136, 226, 5, 80, 85, 20, 11, 0, 9, 1, 126, 47, 37, 55, 72, 109, 0, 10, 199, 50, 36,
-			34, 76, 82, 197, 80, 11, 9, 198, 64, 19, 5, 81, 71, 14, 11, 17, 4, 95, 54, 48, 111, 107, 108, 47, 84, 108, 50, 108, 72, 37,
-			49, 0, 0, 49, 12, 115, 122, 101, 114, 122, 197, 145, 100, 195, 169, 115, 116, 89, 109, 52, 88, 118, 72, 113, 91, 47, 23, 49, 109, 55,
-			12, 23, 49, 110, 47, 50, 37, 0, 11, 82, 107, 101, 108, 108, 32, 107, 195, 182, 116, 110, 105, 32, 15, 140, 115, 122, 101, 114, 122, 197,
-			145, 100, 195, 169, 115, 116, 11, 9, 198, 88, 19, 39, 77, 83, 0, 11, 12, 4, 95, 116, 108, 100, 47, 37, 55, 72, 109, 0, 0, 7,
-			196, 80, 242, 156, 76, 11, 12, 137, 108, 195, 169, 118, 197, 145, 107, 101, 116, 11, 48, 74, 80, 83, 5, 66, 179, 34, 76, 82, 197, 56,
-			47, 109, 55, 109, 48, 111, 55, 113, 91, 109, 49, 109, 50, 10, 6, 15, 72, 39, 55, 81, 39, 88, 37, 49, 0, 11, 81, 100, 111, 108,
-			103, 111, 122, 105, 107, 32, 9, 198, 77, 161, 77, 136, 198, 84, 11, 0, 9, 198, 52, 17, 220, 32, 246, 128, 11, 33, 70, 77, 161, 82,
-			36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 108, 88, 39, 49, 50, 108, 49, 0, 11, 81, 97, 122, 111, 107, 110, 97, 107, 32, 27, 70,
-			77, 161, 82, 36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 44, 70, 77, 161, 82,
-			36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 65, 115, 72, 39, 91, 112, 47, 107, 108, 47, 115, 0, 11, 81, 109, 195, 179, 100, 111, 115,
-			195, 173, 116, 104, 97, 116, 195, 179, 32, 6, 195, 18, 35, 9, 11, 17, 142, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 107, 101,
-			116, 11, 9, 198, 77, 161, 82, 36, 229, 0, 11, 0, 14, 203, 8, 84, 133, 56, 65, 90, 44, 81, 34, 77, 64, 11, 11, 200, 32, 20,
-			218, 57, 195, 10, 112, 176, 11, 9, 198, 73, 81, 193, 48, 208, 83, 11, 10, 135, 106, 195, 182, 118, 197, 145, 116, 11, 8, 197, 25, 39,
-			19, 105, 64, 11, 0, 4, 193, 124, 43, 7, 196, 20, 197, 133, 44, 11, 13, 202, 4, 67, 212, 81, 55, 7, 4, 146, 15, 104, 11, 48,
-			73, 52, 81, 206, 161, 97, 75, 77, 162, 75, 65, 109, 81, 50, 110, 84, 109, 49, 89, 37, 49, 23, 108, 23, 83, 109, 55, 107, 118, 88,
-			109, 47, 0, 11, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 15, 140, 109, 197, 177, 118, 101, 108, 101, 116, 101, 107, 101,
-			116, 11, 9, 198, 4, 64, 84, 60, 176, 84, 11, 0, 41, 72, 77, 167, 26, 4, 200, 139, 113, 64, 89, 114, 88, 108, 55, 113, 49, 114,
-			47, 23, 47, 109, 89, 37, 49, 23, 49, 37, 0, 11, 82, 116, 101, 115, 122, 105, 107, 32, 107, 105, 32, 11, 200, 77, 167, 26, 4, 200,
-			139, 113, 64, 11, 9, 198, 32, 20, 131, 60, 195, 137, 11, 11, 200, 77, 167, 26, 4, 200, 139, 113, 64, 11, 10, 199, 112, 195, 37, 81,
-			196, 220, 80, 11, 6, 195, 57, 147, 205, 11, 0, 26, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 109, 50, 12, 109, 49, 0, 11,
-			81, 101, 110, 110, 101, 107, 32, 21, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 52, 114, 0, 11, 81, 114, 195, 161, 32, 33, 68,
-			48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 89, 109, 52, 37, 50, 47, 109, 65, 0, 11, 81, 115, 122, 101, 114, 105, 110, 116, 101, 109,
-			32, 13, 202, 36, 229, 5, 72, 104, 147, 104, 82, 197, 80, 11, 36, 68, 24, 18, 148, 4, 83, 108, 57, 47, 108, 23, 57, 108, 84, 112,
-			47, 114, 91, 39, 49, 0, 11, 81, 106, 97, 118, 195, 173, 116, 195, 161, 115, 111, 107, 32, 22, 68, 48, 83, 142, 20, 55, 109, 50, 12,
-			109, 23, 89, 115, 0, 11, 81, 115, 122, 195, 179, 32, 35, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 89, 111, 49, 91, 113, 81,
-			109, 65, 0, 11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 109, 32, 22, 67, 58, 34, 1, 50, 113, 107, 108, 15, 84, 109, 55,
-			109, 0, 11, 81, 118, 101, 108, 101, 32, 31, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 15, 89, 111, 49, 91, 113, 81, 0, 11, 81,
-			115, 122, 195, 188, 107, 115, 195, 169, 103, 32, 7, 196, 80, 84, 150, 20, 11, 7, 196, 48, 83, 142, 20, 11, 0, 8, 197, 89, 195, 12,
-			4, 192, 11, 9, 198, 58, 133, 133, 50, 36, 197, 11, 13, 201, 80, 84, 141, 137, 54, 133, 80, 84, 192, 72, 65, 0, 13, 202, 72, 21,
-			9, 24, 146, 220, 49, 196, 220, 80, 11, 28, 67, 5, 4, 167, 108, 48, 52, 115, 10, 6, 15, 72, 39, 55, 81, 39, 49, 0, 11, 81,
-			100, 111, 108, 103, 111, 107, 32, 39, 68, 30, 36, 5, 56, 81, 113, 48, 109, 50, 23, 89, 111, 49, 91, 113, 81, 109, 91, 109, 49, 0,
-			11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 101, 107, 32, 22, 68, 30, 36, 5, 56, 81, 113, 48, 109, 50, 15, 83, 40,
-			47, 0, 11, 81, 102, 117, 116, 32, 7, 196, 30, 36, 5, 56, 11, 9, 198, 21, 49, 68, 136, 177, 83, 11, 7, 196, 24, 19, 28, 56,
-			11, 0, 7, 196, 14, 83, 69, 44, 11, 9, 198, 13, 58, 11, 44, 83, 148, 11, 10, 199, 52, 243, 132, 4, 231, 14, 44, 11, 14, 203,
-			77, 163, 204, 29, 195, 20, 5, 71, 19, 113, 64, 11, 0, 40, 70, 4, 192, 80, 41, 195, 128, 108, 55, 108, 48, 57, 114, 50, 23, 112,
-			47, 113, 55, 49, 109, 88, 109, 55, 0, 11, 81, 195, 173, 116, 195, 169, 108, 107, 101, 122, 101, 108, 32, 47, 10, 105, 100, 197, 145, 110,
-			107, 195, 169, 110, 116, 37, 72, 118, 50, 49, 113, 50, 47, 23, 108, 6, 15, 83, 109, 55, 107, 118, 88, 109, 47, 0, 11, 82, 97, 32,
-			102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 8, 197, 46, 36, 140, 20, 176, 11, 15, 204, 160, 226, 207, 72, 215, 14, 101, 160, 84, 60,
-			176, 84, 11, 7, 196, 36, 65, 74, 20, 11, 7, 196, 80, 244, 148, 4, 11, 9, 198, 4, 192, 80, 41, 195, 128, 11, 7, 196, 13, 49,
-			82, 20, 11, 8, 197, 66, 35, 148, 20, 176, 15, 0, 39, 70, 46, 131, 153, 88, 82, 192, 49, 110, 67, 84, 109, 49, 23, 55, 114, 47,
-			107, 108, 47, 39, 108, 49, 0, 11, 81, 108, 195, 161, 116, 104, 97, 116, 195, 179, 97, 107, 32, 9, 198, 82, 131, 69, 28, 82, 192, 11,
-			9, 198, 29, 154, 20, 161, 37, 5, 11, 15, 204, 52, 81, 214, 112, 197, 15, 105, 64, 84, 113, 55, 20, 11, 9, 198, 46, 36, 5, 76,
-			82, 192, 11, 9, 198, 46, 131, 153, 88, 82, 192, 11, 6, 195, 54, 129, 226, 11, 0, 12, 201, 64, 243, 9, 80, 146, 213, 76, 18, 64,
-			11, 8, 197, 49, 197, 20, 4, 208, 11, 11, 200, 29, 145, 82, 20, 177, 75, 20, 224, 11, 10, 199, 80, 145, 210, 37, 51, 133, 44, 11,
-			8, 197, 90, 33, 218, 20, 208, 11, 33, 72, 48, 82, 5, 80, 85, 12, 20, 224, 55, 109, 107, 109, 47, 109, 47, 55, 109, 50, 23, 84,
-			39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 9, 198, 4, 35, 1, 45, 32, 64, 11, 0, 11, 200, 80, 243, 1, 44, 241, 20, 4,
-			176, 11, 6, 195, 32, 144, 129, 11, 7, 196, 14, 33, 197, 44, 11, 6, 195, 77, 167, 4, 11, 0, 16, 205, 64, 243, 7, 113, 35, 69,
-			77, 65, 82, 20, 178, 197, 48, 11, 14, 203, 25, 194, 132, 4, 195, 205, 52, 83, 148, 21, 48, 11, 12, 201, 72, 83, 132, 77, 161, 82,
-			56, 82, 192, 11, 10, 135, 116, 197, 177, 110, 116, 101, 107, 11, 11, 200, 90, 33, 5, 44, 86, 148, 20, 176, 11, 10, 199, 18, 131, 148,
-			161, 69, 5, 44, 11, 0, 13, 202, 44, 86, 132, 20, 216, 142, 100, 86, 148, 20, 11, 7, 196, 20, 130, 5, 104, 11, 10, 199, 80, 20,
-			148, 4, 195, 65, 104, 11, 7, 196, 26, 36, 134, 36, 11, 6, 195, 5, 81, 192, 15, 0, 18, 207, 29, 153, 199, 101, 54, 133, 73, 71,
-			13, 60, 112, 84, 113, 55, 20, 11, 12, 137, 101, 108, 116, 197, 177, 110, 116, 101, 107, 11, 10, 199, 65, 41, 194, 112, 197, 1, 52, 11,
-			0, 9, 198, 64, 244, 148, 60, 195, 137, 11, 41, 73, 20, 118, 69, 78, 179, 5, 81, 65, 76, 109, 79, 12, 109, 91, 111, 55, 109, 47,
-			12, 109, 55, 23, 89, 109, 65, 71, 109, 50, 0, 11, 81, 115, 122, 101, 109, 98, 101, 110, 32, 9, 198, 61, 36, 218, 112, 115, 212, 11,
-			0, 20, 66, 8, 80, 71, 109, 23, 116, 57, 52, 108, 0, 11, 81, 195, 186, 106, 114, 97, 32, 25, 66, 8, 80, 71, 109, 10, 6, 15,
-			108, 89, 47, 23, 37, 91, 0, 11, 82, 97, 122, 116, 32, 105, 115, 32, 12, 201, 44, 148, 18, 156, 39, 12, 80, 19, 64, 11, 12, 201,
-			80, 83, 5, 66, 85, 5, 81, 65, 77, 11, 10, 199, 46, 131, 20, 161, 165, 5, 44, 11, 5, 194, 8, 80, 11, 5, 194, 8, 80, 11,
-			0, 52, 73, 137, 10, 204, 21, 65, 75, 32, 86, 128, 113, 48, 111, 55, 109, 47, 109, 49, 107, 109, 88, 23, 107, 108, 89, 39, 50, 55,
-			112, 47, 39, 47, 12, 108, 0, 11, 81, 104, 97, 115, 111, 110, 108, 195, 173, 116, 111, 116, 116, 97, 32, 15, 204, 52, 81, 198, 36, 118,
-			69, 50, 36, 226, 32, 86, 128, 11, 10, 199, 8, 244, 165, 82, 34, 207, 80, 11, 0, 11, 136, 101, 108, 197, 145, 116, 116, 101, 100, 11,
-			19, 144, 98, 105, 108, 108, 101, 110, 116, 121, 197, 177, 122, 101, 116, 116, 101, 108, 11, 8, 197, 72, 144, 211, 4, 160, 11, 9, 198, 32,
-			83, 25, 37, 56, 135, 11, 0, 36, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50, 108, 48, 23, 72, 113, 55, 109, 55, 118, 47, 12, 0,
-			11, 81, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 32, 34, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50, 108, 48, 23, 72, 113, 55,
-			40, 47, 114, 50, 0, 11, 81, 100, 195, 169, 108, 117, 116, 195, 161, 110, 32, 24, 67, 77, 161, 77, 89, 109, 65, 23, 109, 55, 118, 47,
-			12, 0, 11, 81, 101, 108, 197, 145, 116, 116, 32, 8, 197, 32, 243, 14, 5, 0, 11, 34, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50,
-			108, 48, 15, 72, 113, 55, 40, 47, 114, 50, 0, 11, 81, 100, 195, 169, 108, 117, 116, 195, 161, 110, 32, 36, 69, 32, 243, 14, 5, 0,
-			107, 39, 55, 50, 108, 48, 15, 72, 113, 55, 109, 55, 118, 47, 12, 0, 11, 81, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 32, 13,
-			202, 77, 167, 13, 149, 73, 199, 137, 4, 5, 48, 11, 6, 195, 14, 35, 0, 11, 0, 9, 198, 46, 36, 162, 78, 37, 0, 11, 11, 5,
-			95, 35, 45, 101, 105, 109, 37, 0, 16, 0, 14, 196, 46, 38, 130, 20, 11, 81, 118, 101, 110, 110, 105, 32, 6, 195, 80, 19, 139, 11,
-			13, 67, 36, 98, 128, 37, 83, 57, 108, 71, 12, 0, 25, 0, 8, 197, 88, 149, 28, 8, 16, 11, 7, 196, 72, 243, 131, 76, 11, 6,
-			195, 64, 243, 148, 11, 0, 8, 197, 46, 134, 130, 20, 224, 11, 26, 69, 46, 134, 130, 20, 224, 49, 110, 88, 71, 109, 50, 10, 6, 15,
-			91, 109, 65, 0, 11, 81, 115, 101, 109, 32, 9, 198, 52, 81, 212, 84, 66, 129, 11, 12, 201, 8, 81, 133, 40, 86, 162, 78, 34, 71,
-			11, 9, 198, 24, 241, 204, 4, 194, 129, 11, 12, 201, 89, 195, 20, 61, 160, 84, 4, 149, 0, 11, 12, 201, 77, 167, 13, 149, 66, 1,
-			81, 83, 139, 11, 7, 196, 57, 145, 82, 80, 11, 0, 7, 66, 13, 48, 76, 113, 0, 8, 197, 74, 33, 201, 20, 176, 11, 8, 197, 89,
-			195, 14, 4, 176, 11, 0, 9, 198, 18, 131, 148, 137, 49, 73, 11, 11, 200, 80, 83, 5, 24, 243, 156, 49, 64, 11, 9, 198, 89, 193,
-			217, 56, 18, 192, 11, 0, 9, 198, 137, 33, 5, 44, 83, 0, 11, 8, 197, 136, 193, 84, 8, 80, 11, 11, 200, 77, 162, 210, 37, 5,
-			2, 20, 224, 11, 16, 4, 95, 50, 77, 52, 49, 113, 47, 71, 37, 55, 55, 37, 115, 0, 0, 10, 199, 77, 170, 204, 21, 69, 5, 44,
-			11, 36, 72, 77, 163, 198, 81, 97, 82, 20, 176, 89, 39, 83, 47, 84, 109, 52, 109, 49, 15, 108, 52, 114, 67, 108, 0, 11, 81, 97,
-			114, 195, 161, 110, 121, 97, 32, 12, 201, 52, 81, 193, 48, 179, 212, 156, 160, 64, 11, 12, 201, 81, 196, 147, 4, 64, 76, 52, 21, 0,
-			11, 11, 200, 81, 83, 1, 40, 242, 206, 4, 176, 11, 12, 201, 52, 83, 142, 100, 148, 226, 30, 37, 0, 11, 10, 199, 77, 161, 82, 21,
-			67, 162, 44, 11, 0, 12, 201, 24, 144, 84, 4, 195, 203, 56, 18, 192, 11, 11, 200, 8, 83, 153, 60, 215, 19, 60, 176, 11, 8, 197,
-			33, 192, 143, 74, 160, 11, 12, 201, 16, 243, 7, 61, 166, 129, 56, 18, 192, 11, 0, 11, 200, 44, 147, 162, 104, 85, 20, 20, 192, 11,
-			11, 200, 137, 37, 5, 78, 179, 20, 20, 176, 11, 7, 196, 89, 196, 142, 36, 11, 7, 196, 46, 36, 142, 36, 11, 5, 194, 136, 192, 11,
-			0, 34, 71, 32, 18, 148, 61, 69, 1, 44, 107, 108, 57, 47, 39, 47, 12, 108, 49, 23, 84, 113, 81, 52, 109, 0, 11, 81, 118, 195,
-			169, 103, 114, 101, 32, 39, 71, 24, 241, 204, 4, 197, 1, 44, 83, 39, 81, 55, 108, 55, 47, 108, 49, 10, 6, 15, 114, 55, 12, 114,
-			91, 47, 0, 11, 81, 195, 161, 108, 108, 195, 161, 115, 116, 32, 7, 196, 54, 37, 5, 72, 11, 10, 199, 88, 19, 1, 44, 147, 133, 44,
-			11, 10, 199, 16, 243, 7, 61, 165, 1, 44, 11, 10, 199, 20, 192, 86, 84, 197, 1, 44, 11, 8, 197, 77, 167, 14, 56, 144, 11, 0,
-			14, 4, 95, 50, 77, 49, 49, 113, 47, 109, 88, 109, 52, 0, 0, 18, 66, 16, 32, 100, 97, 114, 97, 98, 111, 116, 0, 44, 29, 81,
-			111, 116, 32, 18, 66, 16, 32, 100, 97, 114, 97, 98, 111, 115, 0, 44, 29, 81, 111, 115, 32, 17, 66, 12, 64, 99, 195, 169, 100, 195,
-			169, 109, 0, 44, 29, 81, 109, 32, 18, 66, 12, 64, 99, 195, 169, 100, 195, 169, 109, 0, 44, 29, 42, 81, 109, 32, 18, 66, 12, 64,
-			99, 195, 169, 100, 195, 169, 100, 0, 44, 29, 42, 81, 100, 32, 17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 100, 0, 44, 29, 81, 100,
-			32, 17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 110, 0, 44, 29, 81, 110, 32, 18, 66, 12, 64, 99, 195, 169, 100, 195, 169, 110, 0,
-			44, 29, 42, 81, 110, 32, 17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 107, 0, 44, 29, 81, 107, 32, 18, 66, 12, 64, 99, 195, 169,
-			100, 195, 169, 107, 0, 44, 29, 42, 81, 107, 32, 27, 5, 101, 108, 115, 197, 145, 109, 55, 91, 118, 10, 6, 15, 113, 84, 109, 50, 0,
-			11, 81, 195, 169, 118, 101, 110, 32, 38, 5, 101, 108, 115, 197, 145, 109, 55, 91, 118, 23, 91, 39, 52, 71, 108, 50, 114, 55, 12, 115,
-			0, 11, 81, 115, 111, 114, 98, 97, 110, 195, 161, 108, 108, 195, 179, 32, 10, 199, 52, 81, 207, 48, 64, 78, 36, 11, 8, 133, 101, 108,
-			115, 197, 145, 11, 6, 195, 137, 9, 84, 11, 6, 195, 149, 35, 137, 11, 37, 66, 12, 64, 119, 113, 72, 113, 109, 55, 12, 109, 50, 118,
-			52, 88, 113, 91, 47, 0, 44, 42, 81, 101, 108, 108, 101, 110, 197, 145, 114, 122, 195, 169, 115, 116, 32, 16, 4, 95, 50, 77, 50, 49,
-			113, 47, 65, 37, 55, 55, 37, 115, 0, 0, 37, 67, 13, 80, 195, 119, 40, 119, 12, 23, 49, 111, 55, 83, 110, 55, 72, 52, 118, 55,
-			0, 11, 81, 107, 195, 188, 108, 102, 195, 182, 108, 100, 114, 197, 145, 108, 32, 6, 195, 13, 80, 195, 11, 37, 69, 53, 83, 139, 113, 64,
-			65, 40, 50, 49, 114, 47, 10, 6, 15, 84, 113, 81, 109, 89, 47, 109, 49, 0, 11, 81, 118, 195, 169, 103, 101, 122, 116, 101, 107, 32,
-			7, 196, 76, 244, 143, 56, 11, 7, 196, 4, 66, 143, 56, 11, 24, 69, 53, 83, 139, 113, 64, 65, 40, 50, 49, 114, 47, 23, 37, 47,
-			12, 0, 11, 81, 105, 116, 116, 32, 46, 6, 102, 101, 108, 104, 197, 145, 83, 109, 55, 107, 118, 23, 55, 109, 89, 23, 83, 109, 55, 109,
-			47, 12, 111, 50, 49, 0, 11, 82, 108, 101, 115, 122, 32, 102, 101, 108, 101, 116, 116, 195, 188, 110, 107, 32, 38, 6, 102, 101, 108, 104,
-			197, 145, 83, 109, 55, 107, 118, 23, 84, 108, 55, 115, 89, 112, 50, 117, 0, 11, 81, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197,
-			177, 32, 10, 199, 89, 195, 15, 28, 21, 14, 36, 11, 8, 197, 53, 83, 139, 113, 64, 11, 9, 198, 112, 195, 20, 84, 226, 192, 11, 8,
-			197, 57, 147, 205, 113, 64, 11, 18, 4, 95, 50, 77, 51, 49, 113, 47, 65, 37, 55, 55, 37, 114, 52, 72, 0, 0, 18, 207, 72, 83,
-			132, 77, 161, 82, 80, 83, 5, 66, 85, 34, 76, 179, 210, 11, 6, 195, 21, 33, 68, 11, 6, 195, 32, 145, 4, 11, 6, 195, 44, 81,
-			4, 15, 0, 4, 193, 128, 43, 24, 68, 32, 144, 156, 76, 107, 37, 71, 114, 91, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116,
-			32, 11, 136, 109, 101, 103, 108, 101, 112, 197, 145, 11, 0, 7, 196, 4, 67, 137, 4, 11, 9, 198, 137, 9, 84, 20, 226, 64, 11, 9,
-			198, 60, 181, 39, 8, 84, 128, 15, 0, 10, 199, 46, 179, 4, 161, 69, 5, 80, 11, 8, 197, 18, 131, 148, 137, 48, 11, 6, 195, 90,
-			36, 218, 11, 6, 195, 46, 132, 218, 11, 0, 11, 200, 80, 18, 193, 74, 85, 1, 56, 144, 11, 32, 69, 21, 84, 167, 64, 16, 109, 40,
-			52, 115, 48, 108, 15, 10, 67, 40, 81, 108, 47, 37, 0, 11, 81, 110, 121, 117, 103, 97, 116, 105, 32, 9, 198, 37, 51, 69, 73, 97,
-			64, 11, 9, 198, 80, 83, 5, 57, 65, 64, 11, 0, 54, 71, 81, 83, 1, 40, 67, 206, 80, 47, 40, 55, 108, 57, 72, 39, 50, 47,
-			23, 84, 113, 72, 118, 23, 47, 110, 52, 84, 113, 67, 109, 49, 0, 11, 82, 118, 195, 169, 100, 197, 145, 32, 116, 195, 182, 114, 118, 195,
-			169, 110, 121, 101, 107, 32, 12, 201, 80, 83, 10, 21, 57, 84, 20, 226, 64, 11, 12, 201, 80, 83, 10, 21, 57, 84, 20, 226, 64, 11,
-			15, 140, 107, 105, 116, 195, 182, 108, 116, 104, 101, 116, 197, 145, 11, 11, 200, 90, 35, 5, 54, 35, 153, 137, 64, 11, 23, 67, 97, 98,
-			73, 47, 37, 88, 109, 50, 107, 113, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 12, 201, 90, 33, 210, 20, 128, 74, 80, 19,
-			137, 11, 27, 71, 25, 34, 83, 78, 85, 34, 76, 83, 52, 37, 91, 12, 112, 47, 113, 91, 23, 37, 91, 0, 11, 81, 105, 115, 32, 16,
-			141, 101, 109, 108, 195, 169, 107, 101, 122, 116, 101, 116, 197, 145, 11, 6, 195, 173, 161, 77, 11, 12, 66, 17, 32, 72, 39, 49, 47, 39,
-			52, 0, 25, 0, 32, 70, 49, 197, 19, 104, 146, 192, 55, 114, 119, 12, 37, 49, 10, 6, 15, 47, 109, 107, 114, 47, 0, 11, 81, 116,
-			101, 104, 195, 161, 116, 32, 9, 198, 80, 19, 149, 49, 69, 75, 11, 9, 198, 41, 197, 19, 104, 146, 192, 11, 12, 201, 26, 177, 199, 21,
-			67, 5, 58, 179, 0, 11, 8, 197, 44, 86, 132, 88, 80, 11, 9, 198, 49, 197, 19, 104, 146, 192, 11, 6, 195, 26, 131, 34, 11, 0,
-			16, 141, 101, 108, 197, 145, 114, 101, 106, 101, 108, 122, 195, 169, 115, 11, 7, 196, 80, 83, 34, 56, 15, 0, 40, 14, 108, 101, 104, 101,
-			116, 197, 145, 115, 195, 169, 103, 195, 188, 107, 55, 109, 107, 109, 47, 118, 91, 113, 81, 111, 49, 23, 108, 52, 52, 108, 0, 11, 81, 97,
-			114, 114, 97, 32, 10, 199, 81, 81, 15, 53, 196, 213, 44, 11, 0, 9, 198, 149, 41, 196, 61, 69, 0, 11, 0, 7, 196, 58, 38, 142,
-			36, 11, 0, 0, 12, 201, 54, 113, 15, 78, 85, 28, 77, 197, 0, 11, 8, 197, 20, 200, 135, 30, 32, 11, 0, 9, 198, 161, 42, 11,
-			160, 197, 0, 11, 8, 197, 89, 195, 21, 56, 176, 11, 8, 197, 4, 66, 1, 82, 112, 11, 9, 198, 52, 243, 132, 61, 69, 0, 11, 0,
-			15, 205, 4, 176, 68, 112, 198, 77, 20, 229, 5, 78, 85, 34, 76, 6, 195, 77, 169, 210, 72, 0, 7, 195, 88, 243, 20, 11, 17, 28,
-			67, 88, 243, 20, 84, 39, 55, 47, 10, 6, 15, 107, 108, 55, 39, 47, 12, 0, 11, 81, 104, 97, 108, 111, 116, 116, 32, 25, 67, 88,
-			243, 20, 84, 39, 55, 47, 10, 6, 15, 39, 57, 108, 50, 0, 11, 81, 111, 108, 121, 97, 110, 32, 36, 67, 88, 243, 20, 84, 39, 55,
-			47, 10, 6, 15, 109, 55, 83, 39, 81, 55, 108, 55, 84, 108, 0, 11, 81, 101, 108, 102, 111, 103, 108, 97, 108, 118, 97, 32, 15, 204,
-			36, 225, 146, 5, 53, 18, 84, 181, 42, 73, 197, 0, 11, 22, 67, 88, 243, 20, 84, 39, 55, 47, 15, 109, 52, 52, 109, 0, 11, 81,
-			101, 114, 114, 101, 32, 9, 198, 40, 83, 5, 57, 56, 135, 11, 10, 199, 57, 154, 138, 82, 118, 142, 36, 11, 11, 4, 95, 111, 114, 100,
-			109, 72, 37, 49, 0, 0, 7, 196, 60, 179, 218, 156, 11, 12, 201, 24, 241, 193, 48, 208, 90, 61, 69, 0, 11, 0, 8, 197, 72, 18,
-			207, 81, 64, 11, 44, 72, 77, 167, 13, 60, 195, 149, 56, 176, 89, 114, 65, 39, 55, 50, 40, 50, 49, 23, 49, 109, 55, 12, 23, 108,
-			88, 88, 108, 55, 0, 11, 82, 107, 101, 108, 108, 32, 97, 122, 122, 97, 108, 32, 9, 198, 77, 165, 15, 72, 149, 0, 11, 28, 69, 4,
-			227, 153, 37, 64, 108, 67, 67, 37, 47, 47, 40, 72, 40, 50, 49, 0, 76, 81, 116, 117, 100, 117, 110, 107, 32, 8, 197, 28, 243, 66,
-			61, 64, 11, 8, 197, 21, 161, 75, 21, 64, 11, 9, 198, 80, 84, 171, 48, 85, 0, 11, 13, 4, 95, 109, 99, 110, 65, 108, 49, 52,
-			39, 50, 0, 0, 7, 196, 88, 83, 142, 136, 11, 23, 68, 74, 36, 218, 20, 52, 113, 89, 109, 15, 84, 39, 55, 47, 0, 11, 81, 118,
-			111, 108, 116, 32, 7, 196, 89, 195, 14, 4, 11, 7, 196, 112, 195, 10, 4, 11, 7, 196, 74, 36, 218, 20, 11, 7, 196, 161, 52, 218,
-			20, 11, 0, 16, 67, 53, 54, 144, 101, 109, 101, 115, 122, 112, 195, 169, 0, 29, 42, 6, 195, 136, 200, 142, 11, 6, 195, 57, 146, 84,
-			11, 6, 195, 104, 18, 148, 11, 0, 9, 198, 52, 243, 137, 80, 244, 128, 11, 7, 196, 149, 37, 1, 44, 11, 12, 68, 65, 52, 218, 80,
-			48, 89, 12, 47, 0, 41, 0, 9, 198, 57, 145, 76, 88, 85, 0, 11, 9, 198, 44, 84, 171, 48, 85, 0, 11, 9, 198, 137, 37, 5,
-			78, 179, 20, 11, 8, 197, 36, 225, 21, 49, 64, 11, 5, 194, 34, 112, 11, 11, 200, 88, 20, 220, 72, 224, 80, 36, 112, 17, 0, 9,
-			198, 82, 132, 148, 136, 227, 133, 11, 19, 208, 4, 176, 68, 112, 198, 77, 20, 229, 5, 78, 85, 34, 78, 34, 5, 104, 11, 10, 199, 74,
-			36, 218, 21, 58, 204, 80, 11, 0, 8, 197, 89, 196, 148, 4, 208, 11, 10, 199, 80, 85, 20, 20, 147, 133, 44, 11, 0, 12, 201, 77,
-			160, 66, 4, 68, 220, 29, 197, 0, 11, 11, 200, 20, 193, 143, 28, 17, 20, 4, 176, 11, 0, 9, 198, 80, 17, 220, 48, 192, 77, 11,
-			13, 202, 81, 83, 1, 40, 67, 206, 61, 53, 39, 48, 11, 9, 198, 12, 83, 12, 112, 180, 129, 11, 9, 198, 76, 81, 226, 49, 149, 0,
-			11, 15, 8, 95, 35, 45, 195, 169, 104, 101, 122, 113, 107, 109, 88, 0, 0, 37, 71, 20, 118, 69, 80, 83, 69, 56, 109, 79, 109, 47,
-			109, 65, 109, 50, 23, 84, 113, 81, 88, 109, 47, 12, 0, 11, 81, 118, 195, 169, 103, 122, 101, 116, 116, 32, 10, 199, 44, 244, 156, 8,
-			36, 167, 48, 11, 0, 12, 201, 46, 36, 218, 149, 65, 84, 80, 82, 192, 11, 12, 201, 77, 167, 13, 149, 67, 212, 80, 18, 192, 11, 10,
-			199, 66, 35, 4, 112, 181, 39, 48, 11, 9, 198, 44, 84, 133, 77, 72, 139, 11, 13, 202, 4, 194, 193, 48, 208, 90, 61, 69, 1, 44,
-			11, 7, 196, 77, 165, 28, 72, 11, 0, 12, 137, 116, 197, 177, 122, 102, 97, 108, 97, 116, 11, 9, 198, 80, 19, 28, 48, 226, 64, 11,
-			9, 198, 18, 131, 148, 20, 226, 64, 11, 9, 198, 40, 83, 40, 48, 226, 64, 11, 0, 12, 201, 44, 146, 226, 72, 65, 90, 58, 35, 64,
-			11, 9, 198, 77, 68, 156, 24, 245, 0, 11, 10, 199, 77, 161, 82, 88, 86, 142, 36, 11, 12, 201, 44, 20, 1, 12, 149, 28, 77, 41,
-			204, 11, 8, 197, 74, 115, 21, 56, 176, 11, 0, 8, 197, 80, 149, 11, 113, 64, 11, 8, 197, 80, 244, 148, 113, 64, 11, 8, 197, 46,
-			36, 132, 137, 48, 11, 0, 9, 198, 64, 144, 67, 60, 176, 84, 11, 12, 201, 8, 150, 143, 57, 145, 193, 80, 226, 64, 11, 31, 7, 118,
-			101, 122, 101, 116, 197, 145, 84, 109, 88, 109, 47, 118, 23, 50, 118, 50, 109, 49, 0, 11, 81, 110, 197, 145, 110, 101, 107, 32, 12, 201,
-			60, 64, 70, 36, 118, 69, 48, 226, 64, 11, 11, 200, 76, 80, 133, 77, 56, 135, 137, 64, 11, 7, 196, 64, 242, 28, 72, 11, 12, 201,
-			44, 146, 133, 48, 83, 148, 20, 226, 64, 11, 10, 135, 118, 101, 122, 101, 116, 197, 145, 11, 7, 196, 48, 18, 201, 44, 11, 6, 195, 88,
-			145, 4, 11, 0, 16, 141, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 195, 169, 116, 11, 6, 195, 10, 115, 0, 72, 0, 10, 199, 53,
-			83, 139, 4, 129, 76, 100, 11, 33, 69, 44, 144, 68, 113, 48, 49, 37, 108, 72, 114, 91, 23, 119, 113, 61, 57, 108, 37, 47, 0, 11,
-			81, 99, 195, 169, 108, 106, 97, 105, 116, 32, 8, 197, 72, 16, 140, 113, 48, 11, 24, 69, 44, 144, 68, 113, 48, 49, 37, 108, 72, 114,
-			91, 23, 55, 109, 89, 0, 81, 108, 101, 115, 122, 32, 9, 198, 36, 224, 75, 82, 85, 128, 11, 12, 137, 195, 169, 114, 116, 104, 101, 116,
-			197, 145, 11, 8, 197, 44, 144, 68, 113, 48, 11, 8, 197, 80, 20, 148, 113, 48, 11, 12, 137, 107, 195, 169, 114, 104, 101, 116, 197, 145,
-			11, 7, 196, 66, 35, 154, 80, 11, 6, 195, 50, 33, 217, 11, 6, 195, 54, 33, 217, 11, 6, 195, 77, 163, 210, 72, 0, 10, 199, 81,
-			196, 136, 20, 198, 98, 80, 11, 6, 195, 60, 176, 64, 11, 13, 138, 101, 108, 195, 169, 114, 104, 101, 116, 197, 145, 11, 6, 195, 36, 72,
-			142, 17, 0, 14, 139, 101, 108, 197, 145, 195, 169, 108, 101, 116, 197, 177, 11, 9, 198, 40, 83, 5, 105, 65, 64, 11, 16, 141, 99, 195,
-			169, 108, 107, 105, 116, 197, 177, 122, 195, 169, 115, 11, 0, 28, 68, 89, 195, 9, 44, 84, 114, 55, 37, 49, 23, 108, 6, 15, 119, 113,
-			81, 0, 11, 82, 97, 32, 99, 195, 169, 103, 32, 33, 74, 80, 20, 1, 77, 165, 1, 48, 21, 15, 16, 47, 108, 48, 108, 89, 47, 108,
-			55, 108, 47, 39, 72, 23, 37, 91, 0, 11, 81, 105, 115, 32, 9, 198, 21, 54, 139, 161, 170, 11, 11, 12, 201, 52, 81, 211, 106, 115,
-			1, 49, 64, 84, 11, 15, 140, 108, 101, 104, 101, 116, 197, 145, 115, 195, 169, 103, 101, 11, 15, 140, 102, 101, 108, 101, 108, 197, 145, 115,
-			195, 169, 103, 101, 11, 7, 196, 89, 195, 9, 44, 11, 12, 201, 13, 58, 212, 161, 37, 40, 46, 131, 128, 17, 0, 39, 66, 5, 160, 108,
-			88, 23, 113, 52, 47, 113, 49, 109, 91, 112, 47, 113, 91, 47, 0, 11, 81, 195, 169, 114, 116, 195, 169, 107, 101, 115, 195, 173, 116, 195,
-			169, 115, 116, 32, 32, 66, 5, 160, 108, 88, 23, 109, 55, 12, 109, 50, 113, 52, 84, 109, 49, 0, 11, 81, 101, 108, 108, 101, 110, 195,
-			169, 114, 118, 101, 107, 32, 22, 66, 5, 160, 108, 88, 23, 37, 72, 118, 52, 109, 0, 11, 81, 105, 100, 197, 145, 114, 101, 32, 18, 66,
-			5, 160, 108, 88, 23, 89, 108, 52, 0, 11, 81, 115, 122, 97, 114, 32, 34, 66, 5, 160, 108, 88, 23, 108, 55, 108, 48, 113, 55, 65,
-			113, 67, 109, 0, 11, 81, 97, 108, 97, 112, 195, 169, 108, 109, 195, 169, 110, 121, 101, 32, 25, 66, 5, 160, 108, 88, 23, 111, 79, 109,
-			49, 109, 47, 0, 11, 81, 195, 188, 103, 121, 101, 107, 101, 116, 32, 27, 66, 5, 160, 108, 88, 23, 111, 79, 109, 49, 71, 109, 50, 0,
-			11, 81, 195, 188, 103, 121, 101, 107, 98, 101, 110, 32, 29, 66, 5, 160, 108, 88, 10, 6, 15, 108, 72, 108, 47, 39, 49, 108, 47, 0,
-			11, 81, 97, 100, 97, 116, 111, 107, 97, 116, 32, 32, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 72, 39, 49, 55, 114, 91, 47, 0,
-			11, 81, 105, 110, 100, 111, 107, 108, 195, 161, 115, 116, 32, 22, 66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 91, 118, 0, 11, 81, 101,
-			108, 115, 197, 145, 32, 28, 66, 5, 160, 108, 88, 10, 6, 15, 37, 55, 12, 109, 47, 118, 47, 0, 11, 81, 105, 108, 108, 101, 116, 197,
-			145, 116, 32, 27, 66, 5, 160, 108, 88, 10, 6, 15, 109, 91, 109, 47, 71, 109, 50, 0, 11, 81, 101, 115, 101, 116, 98, 101, 110, 32,
-			27, 66, 5, 160, 108, 88, 10, 6, 15, 49, 109, 55, 12, 109, 50, 109, 0, 11, 81, 107, 101, 108, 108, 101, 110, 101, 32, 23, 66, 5,
-			160, 108, 88, 10, 6, 15, 114, 52, 114, 47, 0, 11, 81, 195, 161, 114, 195, 161, 116, 32, 34, 66, 5, 160, 108, 88, 10, 6, 15, 109,
-			89, 49, 110, 88, 110, 49, 109, 47, 0, 11, 81, 101, 115, 122, 107, 195, 182, 122, 195, 182, 107, 101, 116, 32, 22, 66, 5, 160, 108, 88,
-			10, 6, 15, 113, 84, 109, 47, 0, 11, 81, 195, 169, 118, 101, 116, 32, 22, 66, 5, 160, 108, 88, 10, 6, 15, 37, 72, 118, 47, 0,
-			11, 81, 105, 100, 197, 145, 116, 32, 24, 66, 5, 160, 108, 88, 10, 6, 15, 108, 6, 15, 71, 108, 57, 0, 11, 82, 97, 32, 98, 97,
-			106, 32, 21, 66, 5, 160, 108, 88, 10, 6, 15, 108, 72, 108, 47, 0, 11, 81, 97, 100, 97, 116, 32, 31, 66, 5, 160, 108, 88, 10,
-			6, 15, 39, 52, 89, 114, 81, 71, 108, 50, 0, 11, 81, 111, 114, 115, 122, 195, 161, 103, 98, 97, 110, 32, 23, 66, 5, 160, 108, 88,
-			10, 6, 15, 109, 55, 84, 109, 47, 0, 11, 81, 101, 108, 118, 101, 116, 32, 24, 66, 5, 160, 108, 88, 10, 6, 15, 113, 61, 57, 109,
-			55, 0, 11, 81, 195, 169, 106, 106, 101, 108, 32, 23, 66, 5, 160, 108, 88, 10, 6, 15, 108, 50, 81, 39, 55, 0, 11, 81, 97, 110,
-			103, 111, 108, 32, 34, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 72, 112, 47, 84, 114, 67, 108, 0, 11, 81, 105, 110, 100, 195, 173,
-			116, 118, 195, 161, 110, 121, 97, 32, 25, 66, 5, 160, 108, 88, 10, 6, 15, 39, 55, 72, 108, 55, 47, 0, 11, 81, 111, 108, 100, 97,
-			108, 116, 32, 26, 66, 5, 160, 108, 88, 10, 6, 15, 111, 79, 52, 118, 55, 0, 11, 81, 195, 188, 103, 121, 114, 197, 145, 108, 32, 35,
-			66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 50, 110, 49, 91, 113, 81, 109, 47, 0, 11, 81, 101, 108, 110, 195, 182, 107, 115, 195, 169,
-			103, 101, 116, 32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 109, 79, 12, 109, 91, 111, 55, 109, 47, 109, 49, 0, 11, 81, 101, 103, 121,
-			101, 115, 195, 188, 108, 101, 116, 101, 107, 32, 39, 66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 118, 52, 109, 57, 109, 55, 88, 113, 91,
-			109, 0, 11, 81, 101, 108, 197, 145, 114, 101, 106, 101, 108, 122, 195, 169, 115, 101, 32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50,
-			47, 113, 88, 65, 113, 67, 109, 49, 0, 11, 81, 105, 110, 116, 195, 169, 122, 109, 195, 169, 110, 121, 101, 107, 32, 36, 66, 5, 160, 108,
-			88, 10, 6, 15, 37, 50, 72, 39, 49, 55, 114, 91, 12, 108, 55, 0, 11, 81, 105, 110, 100, 111, 107, 108, 195, 161, 115, 115, 97, 108,
-			32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 114, 55, 12, 108, 48, 39, 47, 40, 49, 39, 50, 0, 11, 81, 195, 161, 108, 108, 97, 112,
-			111, 116, 117, 107, 111, 110, 32, 38, 66, 5, 160, 108, 88, 23, 91, 109, 65, 23, 89, 39, 49, 84, 114, 67, 39, 91, 0, 11, 82, 115,
-			101, 109, 32, 115, 122, 111, 107, 118, 195, 161, 110, 121, 111, 115, 32, 25, 66, 5, 160, 108, 88, 10, 6, 15, 111, 79, 71, 109, 50, 0,
-			11, 81, 195, 188, 103, 121, 98, 101, 110, 32, 41, 66, 5, 160, 108, 88, 10, 6, 15, 108, 55, 108, 48, 37, 55, 12, 109, 47, 65, 113,
-			67, 109, 0, 11, 81, 97, 108, 97, 112, 105, 108, 108, 101, 116, 109, 195, 169, 110, 121, 101, 32, 29, 66, 5, 160, 108, 88, 10, 6, 15,
-			37, 88, 81, 108, 55, 65, 108, 91, 0, 11, 81, 105, 122, 103, 97, 108, 109, 97, 115, 32, 30, 66, 5, 160, 108, 88, 23, 108, 6, 15,
-			49, 113, 52, 72, 113, 91, 0, 11, 82, 97, 32, 107, 195, 169, 114, 100, 195, 169, 115, 32, 34, 66, 5, 160, 108, 88, 23, 37, 50, 47,
-			113, 88, 109, 47, 109, 49, 109, 47, 0, 11, 81, 105, 110, 116, 195, 169, 122, 101, 116, 101, 107, 101, 116, 32, 21, 66, 5, 160, 108, 88,
-			23, 109, 55, 84, 109, 47, 0, 11, 81, 101, 108, 118, 101, 116, 32, 24, 66, 5, 160, 108, 88, 23, 113, 55, 109, 47, 109, 72, 0, 11,
-			81, 195, 169, 108, 101, 116, 101, 100, 32, 31, 66, 5, 160, 108, 88, 6, 23, 116, 57, 112, 47, 114, 91, 39, 49, 0, 11, 81, 195, 186,
-			106, 195, 173, 116, 195, 161, 115, 111, 107, 32, 31, 66, 5, 160, 108, 88, 6, 23, 114, 55, 12, 108, 48, 39, 47, 39, 65, 0, 11, 81,
-			195, 161, 108, 108, 97, 112, 111, 116, 111, 109, 32, 7, 196, 64, 84, 131, 20, 11, 38, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 47,
-			109, 52, 50, 109, 47, 109, 88, 113, 91, 0, 11, 81, 105, 110, 116, 101, 114, 110, 101, 116, 101, 122, 195, 169, 115, 32, 35, 66, 5, 160,
-			108, 88, 10, 6, 15, 108, 6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 11, 82, 97, 32, 112, 114, 111, 98, 108, 195, 169, 109, 97,
-			32, 25, 66, 5, 160, 108, 88, 6, 15, 10, 113, 89, 108, 49, 37, 0, 11, 81, 195, 169, 115, 122, 97, 107, 105, 32, 18, 66, 5, 160,
-			108, 88, 23, 109, 91, 118, 0, 11, 81, 101, 115, 197, 145, 32, 17, 66, 5, 160, 108, 88, 23, 113, 4, 81, 0, 11, 81, 195, 169, 103,
-			32, 17, 66, 5, 160, 108, 88, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 22, 66, 5, 160, 108, 88, 23, 37, 50, 83, 115, 47,
-			0, 11, 81, 105, 110, 102, 195, 179, 116, 32, 15, 66, 5, 160, 108, 88, 15, 37, 91, 0, 11, 81, 105, 115, 32, 20, 66, 5, 160, 10,
-			108, 88, 15, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 6, 194, 5, 160, 72, 10, 0, 27, 67, 149, 37, 0, 112, 52, 47,
-			23, 49, 110, 67, 84, 109, 47, 0, 11, 81, 107, 195, 182, 110, 121, 118, 101, 116, 32, 13, 138, 102, 197, 145, 104, 97, 100, 110, 97, 103,
-			121, 11, 6, 195, 169, 67, 206, 11, 6, 195, 149, 37, 0, 11, 6, 195, 33, 193, 192, 11, 6, 195, 169, 67, 206, 15, 0, 35, 70, 80,
-			83, 69, 77, 49, 64, 47, 109, 65, 109, 91, 12, 109, 23, 109, 55, 23, 116, 57, 52, 108, 0, 11, 82, 101, 108, 32, 195, 186, 106, 114,
-			97, 32, 8, 197, 82, 37, 5, 48, 80, 11, 11, 200, 82, 163, 12, 137, 5, 43, 56, 176, 11, 0, 41, 12, 118, 101, 122, 101, 116, 197,
-			145, 115, 195, 169, 103, 105, 84, 109, 88, 109, 47, 118, 91, 113, 81, 37, 23, 47, 108, 81, 57, 108, 37, 0, 11, 81, 116, 97, 103, 106,
-			97, 105, 32, 7, 196, 137, 37, 9, 44, 11, 0, 39, 70, 44, 83, 12, 21, 69, 0, 49, 109, 55, 12, 109, 47, 12, 23, 49, 108, 48,
-			76, 39, 55, 50, 39, 65, 0, 11, 81, 107, 97, 112, 99, 115, 111, 108, 110, 111, 109, 32, 29, 70, 44, 83, 12, 21, 69, 0, 49, 109,
-			55, 12, 109, 47, 12, 23, 108, 107, 39, 88, 0, 11, 81, 97, 104, 104, 111, 122, 32, 40, 70, 44, 83, 12, 21, 69, 0, 49, 109, 55,
-			12, 109, 47, 12, 23, 109, 55, 39, 55, 84, 108, 91, 50, 39, 65, 0, 11, 81, 101, 108, 111, 108, 118, 97, 115, 110, 111, 109, 32, 11,
-			200, 61, 1, 82, 113, 67, 210, 60, 176, 11, 9, 198, 44, 83, 12, 21, 69, 0, 11, 0, 13, 202, 24, 83, 9, 56, 69, 76, 113, 48,
-			167, 48, 11, 29, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 84, 114, 52, 57, 114, 49, 0, 11, 81, 118, 195, 161, 114, 106, 195, 161,
-			107, 32, 31, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 89, 109, 52, 109, 47, 50, 113, 0, 11, 81, 115, 122, 101, 114, 101, 116, 110,
-			195, 169, 32, 27, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 57, 109, 55, 88, 37, 49, 0, 11, 81, 106, 101, 108, 122, 105, 107, 32,
-			38, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 79, 108, 50, 112, 47, 39, 47, 12, 114, 49, 0, 11, 81, 103, 121, 97, 110, 195, 173,
-			116, 111, 116, 116, 195, 161, 107, 32, 33, 67, 5, 165, 0, 108, 89, 47, 10, 6, 49, 113, 48, 84, 37, 91, 109, 55, 37, 0, 11, 81,
+			101, 108, 32, 13, 7, 95, 35, 45, 195, 169, 9, 7, 113, 37, 81, 0, 0, 35, 7, 8, 195, 169, 20, 20, 5, 12, 107, 113, 47, 12,
+			109, 55, 23, 109, 88, 109, 55, 118, 47, 12, 0, 13, 81, 101, 122, 101, 108, 197, 145, 116, 116, 32, 10, 199, 20, 195, 69, 57, 65, 78,
+			36, 13, 10, 135, 195, 169, 18, 22, 5, 12, 20, 13, 10, 199, 32, 19, 12, 28, 21, 14, 36, 13, 6, 195, 52, 83, 148, 13, 18, 1,
+			54, 107, 108, 119, 12, 39, 52, 0, 44, 81, 32, 115, 122, 111, 114, 32, 24, 1, 54, 107, 108, 47, 39, 72, 37, 49, 114, 47, 115, 55,
+			0, 44, 21, 81, 32, 116, 195, 179, 108, 32, 18, 1, 54, 107, 108, 47, 12, 115, 55, 0, 44, 81, 32, 116, 195, 179, 108, 32, 17, 1,
+			54, 107, 108, 47, 12, 108, 55, 0, 44, 81, 32, 116, 97, 108, 32, 16, 1, 54, 107, 108, 47, 12, 108, 55, 0, 44, 81, 32, 97, 108,
+			32, 23, 1, 54, 104, 97, 116, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 19, 1, 54, 107, 108, 47,
+			39, 72, 37, 49, 108, 37, 0, 44, 21, 81, 32, 105, 32, 0, 31, 68, 80, 83, 142, 36, 47, 109, 50, 12, 37, 10, 6, 15, 108, 49,
+			108, 52, 114, 91, 0, 13, 81, 97, 107, 97, 114, 195, 161, 115, 32, 22, 68, 80, 83, 142, 36, 47, 109, 50, 12, 37, 23, 108, 89, 47,
+			0, 13, 81, 97, 122, 116, 32, 9, 134, 5, 19, 20, 195, 169, 14, 13, 7, 196, 80, 83, 142, 36, 13, 18, 1, 55, 107, 113, 119, 12,
+			109, 52, 0, 44, 81, 32, 115, 122, 101, 114, 32, 19, 1, 55, 107, 109, 47, 109, 91, 12, 109, 55, 0, 44, 81, 32, 115, 101, 108, 32,
+			22, 1, 55, 107, 109, 47, 109, 91, 109, 49, 52, 109, 0, 44, 81, 32, 115, 101, 107, 114, 101, 32, 16, 1, 55, 107, 113, 47, 12, 109,
+			55, 0, 44, 81, 32, 101, 108, 32, 17, 1, 55, 107, 113, 47, 12, 109, 55, 0, 44, 81, 32, 116, 101, 108, 32, 24, 1, 55, 107, 109,
+			47, 109, 72, 37, 49, 113, 47, 118, 55, 0, 44, 21, 81, 32, 116, 197, 145, 108, 32, 18, 1, 55, 107, 113, 47, 12, 118, 55, 0, 44,
+			81, 32, 116, 197, 145, 108, 32, 0, 7, 65, 56, 109, 50, 50, 0, 8, 197, 57, 147, 205, 60, 176, 13, 8, 197, 24, 17, 217, 56, 144,
+			13, 9, 134, 1, 11, 3, 9, 195, 179, 13, 8, 197, 88, 84, 218, 36, 176, 13, 10, 135, 22, 195, 169, 7, 195, 169, 14, 13, 7, 132,
+			195, 188, 7, 25, 13, 10, 135, 22, 195, 169, 7, 195, 169, 14, 20, 17, 1, 56, 67, 39, 55, 119, 12, 108, 55, 0, 44, 81, 32, 97,
+			108, 32, 18, 1, 56, 67, 39, 55, 119, 12, 108, 55, 0, 44, 81, 32, 99, 97, 108, 32, 25, 1, 56, 110, 121, 111, 108, 99, 97, 100,
+			105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 20, 1, 56, 67, 39, 55, 119, 108, 72, 37, 49, 108, 37, 0, 44,
+			21, 81, 32, 105, 32, 0, 51, 10, 22, 195, 161, 12, 1, 19, 26, 15, 12, 20, 84, 114, 55, 108, 89, 39, 55, 47, 23, 108, 6, 15,
+			83, 109, 55, 84, 109, 47, 113, 91, 52, 109, 0, 13, 82, 97, 32, 102, 101, 108, 118, 101, 116, 195, 169, 115, 114, 101, 32, 12, 137, 20,
+			1, 12, 195, 161, 12, 20, 1, 13, 13, 57, 15, 11, 195, 182, 20, 5, 12, 5, 26, 5, 20, 20, 19, 195, 169, 7, 49, 110, 47, 109,
+			55, 109, 88, 109, 76, 12, 113, 81, 23, 71, 37, 89, 47, 39, 91, 112, 47, 108, 50, 37, 0, 13, 81, 98, 105, 122, 116, 111, 115, 195,
+			173, 116, 97, 110, 105, 32, 10, 135, 20, 197, 177, 14, 20, 5, 11, 13, 19, 1, 57, 49, 37, 55, 109, 50, 119, 109, 47, 0, 44, 81,
+			32, 99, 101, 116, 32, 20, 1, 57, 49, 37, 55, 109, 50, 119, 12, 109, 55, 0, 44, 81, 32, 99, 101, 108, 32, 19, 1, 57, 49, 37,
+			55, 109, 50, 119, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0, 29, 10, 19, 26, 195, 161, 13, 15, 12, 20, 1, 13, 89, 114, 65,
+			39, 55, 47, 108, 65, 23, 49, 37, 0, 13, 81, 107, 105, 32, 10, 135, 26, 195, 161, 18, 21, 12, 20, 13, 10, 135, 2, 5, 19, 26,
+			195, 169, 12, 13, 9, 134, 2, 195, 173, 26, 22, 1, 13, 14, 139, 6, 5, 10, 12, 197, 145, 4, 195, 182, 20, 20, 13, 14, 139, 11,
+			5, 26, 4, 197, 145, 4, 195, 182, 20, 20, 13, 0, 12, 137, 5, 12, 20, 197, 177, 14, 20, 5, 11, 13, 7, 196, 77, 160, 71, 4,
+			13, 12, 137, 5, 10, 20, 5, 20, 20, 195, 169, 11, 13, 0, 36, 69, 80, 84, 212, 72, 80, 47, 109, 91, 47, 52, 109, 10, 6, 15,
+			89, 108, 71, 107, 108, 47, 115, 0, 13, 81, 115, 122, 97, 98, 104, 97, 116, 195, 179, 32, 38, 8, 5, 7, 25, 195, 188, 22, 195, 169,
+			109, 79, 12, 111, 84, 113, 23, 47, 108, 34, 47, 39, 88, 114, 91, 0, 13, 81, 116, 97, 114, 116, 111, 122, 195, 161, 115, 32, 9, 198,
+			13, 48, 80, 5, 67, 203, 13, 44, 12, 22, 1, 12, 195, 179, 19, 26, 195, 173, 14, 197, 177, 84, 108, 55, 115, 89, 112, 50, 117, 15,
+			10, 107, 37, 72, 109, 81, 109, 71, 12, 0, 13, 81, 104, 105, 100, 101, 103, 101, 98, 98, 32, 8, 197, 4, 64, 84, 60, 176, 13, 16,
+			141, 5, 12, 11, 5, 26, 4, 197, 145, 4, 195, 182, 20, 20, 13, 12, 137, 11, 9, 20, 195, 169, 20, 5, 12, 20, 13, 15, 140, 22,
+			1, 12, 195, 179, 19, 26, 195, 173, 14, 197, 177, 13, 16, 141, 10, 5, 12, 195, 182, 12, 195, 169, 19, 14, 195, 169, 12, 13, 0, 11,
+			1, 61, 109, 79, 109, 50, 55, 118, 0, 27, 18, 143, 6, 5, 12, 5, 12, 197, 145, 19, 19, 195, 169, 7, 195, 188, 11, 13, 17, 142,
+			13, 5, 7, 11, 5, 26, 4, 197, 145, 4, 195, 182, 20, 20, 13, 17, 142, 195, 169, 18, 4, 5, 11, 12, 197, 145, 4, 195, 182, 20,
+			20, 13, 0, 40, 9, 11, 195, 169, 16, 20, 5, 12, 5, 14, 49, 113, 48, 47, 109, 55, 109, 50, 23, 71, 109, 47, 109, 81, 50, 109,
+			49, 0, 13, 81, 98, 101, 116, 101, 103, 110, 101, 107, 32, 56, 13, 195, 169, 16, 195, 188, 12, 5, 20, 5, 11, 8, 5, 26, 113, 48,
+			111, 55, 109, 47, 109, 49, 107, 109, 88, 23, 107, 108, 89, 39, 50, 55, 112, 47, 39, 47, 12, 108, 0, 13, 81, 104, 97, 115, 111, 110,
+			108, 195, 173, 116, 111, 116, 116, 97, 32, 0, 45, 9, 20, 1, 12, 195, 161, 12, 20, 1, 11, 47, 108, 55, 114, 55, 47, 108, 49, 23,
+			108, 6, 15, 67, 39, 65, 39, 88, 115, 49, 0, 13, 82, 97, 32, 110, 121, 111, 109, 111, 122, 195, 179, 107, 32, 12, 137, 20, 1, 12,
+			195, 161, 12, 20, 1, 11, 13, 30, 9, 13, 5, 18, 195, 188, 12, 20, 5, 11, 65, 109, 52, 111, 55, 47, 109, 49, 23, 83, 109, 55,
+			0, 13, 81, 102, 101, 108, 32, 12, 137, 16, 195, 179, 26, 15, 12, 20, 1, 11, 13, 19, 144, 2, 9, 12, 12, 5, 14, 20, 25, 197,
+			177, 26, 5, 20, 20, 5, 12, 13, 14, 139, 9, 7, 1, 26, 7, 1, 20, 195, 179, 10, 1, 13, 11, 200, 72, 83, 132, 77, 161, 82,
+			8, 80, 13, 0, 10, 1, 64, 49, 40, 49, 108, 119, 0, 27, 6, 65, 64, 48, 113, 0, 13, 138, 19, 26, 195, 161, 13, 15, 12, 20,
+			1, 11, 13, 0, 13, 138, 11, 195, 169, 18, 195, 169, 19, 195, 169, 20, 13, 23, 5, 20, 195, 169, 14, 25, 47, 113, 67, 10, 6, 15,
+			91, 109, 65, 0, 13, 81, 115, 101, 109, 32, 42, 70, 77, 162, 78, 80, 83, 128, 89, 37, 50, 47, 109, 50, 23, 47, 109, 91, 47, 52,
+			109, 89, 108, 71, 50, 37, 0, 13, 81, 116, 101, 115, 116, 114, 101, 115, 122, 97, 98, 110, 105, 32, 9, 198, 77, 162, 78, 80, 83, 128,
+			13, 8, 133, 20, 195, 169, 14, 25, 13, 0, 14, 139, 20, 5, 13, 5, 20, 197, 145, 10, 195, 169, 20, 13, 17, 142, 13, 5, 7, 1,
+			12, 1, 16, 195, 173, 20, 195, 179, 10, 1, 13, 15, 140, 195, 169, 18, 20, 5, 19, 195, 188, 12, 20, 5, 11, 13, 0, 10, 135, 195,
+			169, 18, 9, 14, 20, 9, 13, 0, 6, 65, 68, 49, 40, 0, 31, 8, 195, 169, 10, 19, 26, 1, 11, 1, 113, 57, 89, 108, 49, 108,
+			10, 6, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 12, 137, 20, 197, 177, 26, 6, 1, 12, 1, 20, 13, 11, 136, 20,
+			1, 18, 20, 1, 14, 195, 161, 13, 0, 19, 144, 13, 197, 177, 11, 195, 182, 4, 20, 5, 20, 195, 169, 19, 8, 5, 26, 13, 0, 11,
+			136, 6, 195, 161, 10, 12, 21, 14, 11, 13, 10, 199, 12, 83, 148, 72, 146, 213, 76, 13, 0, 18, 68, 77, 161, 19, 104, 101, 115, 122,
+			100, 195, 169, 101, 115, 122, 0, 29, 42, 38, 68, 4, 32, 129, 56, 108, 71, 12, 108, 50, 23, 83, 39, 81, 55, 108, 55, 47, 108, 49,
+			108, 47, 0, 13, 81, 102, 111, 103, 108, 97, 108, 116, 97, 107, 97, 116, 32, 18, 143, 11, 195, 182, 26, 9, 14, 20, 195, 169, 26, 13,
+			195, 169, 14, 25, 13, 11, 136, 13, 195, 161, 19, 18, 195, 179, 12, 13, 16, 141, 3, 195, 169, 12, 11, 9, 20, 197, 177, 26, 195, 169,
+			19, 13, 7, 196, 20, 32, 133, 56, 13, 7, 196, 4, 32, 129, 56, 13, 0, 7, 65, 72, 109, 51, 51, 0, 21, 146, 22, 195, 169, 7,
+			12, 5, 7, 5, 19, 195, 173, 20, 5, 20, 20, 195, 169, 11, 13, 8, 197, 32, 148, 218, 20, 64, 13, 0, 10, 135, 18, 195, 169, 13,
+			12, 9, 11, 13, 8, 133, 13, 195, 169, 7, 25, 13, 0, 12, 137, 9, 18, 195, 161, 14, 25, 8, 15, 26, 13, 10, 199, 80, 20, 148,
+			4, 195, 65, 104, 13, 0, 7, 196, 81, 81, 19, 104, 76, 18, 67, 32, 241, 217, 107, 39, 79, 4, 108, 49, 37, 0, 81, 97, 107, 105,
+			32, 17, 67, 32, 241, 217, 107, 4, 39, 79, 4, 108, 88, 0, 81, 97, 122, 32, 15, 67, 32, 241, 217, 107, 4, 39, 79, 4, 108, 0,
+			81, 97, 32, 9, 198, 80, 84, 133, 52, 33, 78, 13, 34, 7, 5, 21, 18, 195, 179, 16, 1, 109, 40, 52, 115, 48, 108, 15, 10, 67,
+			40, 81, 108, 47, 37, 0, 13, 81, 110, 121, 117, 103, 97, 116, 105, 32, 6, 195, 52, 81, 217, 13, 7, 132, 19, 195, 179, 20, 13, 6,
+			195, 52, 81, 217, 13, 0, 7, 65, 76, 109, 91, 0, 14, 6, 65, 76, 91, 10, 0, 8, 197, 60, 179, 218, 56, 144, 13, 43, 10, 22,
+			15, 14, 1, 20, 11, 15, 26, 195, 179, 84, 39, 50, 108, 47, 49, 39, 88, 115, 10, 6, 15, 48, 39, 50, 80, 108, 37, 47, 0, 13,
+			81, 112, 111, 110, 116, 106, 97, 105, 116, 32, 8, 197, 88, 86, 133, 80, 144, 13, 8, 197, 44, 20, 21, 56, 176, 13, 13, 138, 22, 15,
+			14, 1, 20, 11, 15, 26, 195, 179, 13, 11, 136, 13, 9, 12, 12, 9, 195, 179, 13, 13, 8, 197, 16, 243, 7, 61, 64, 13, 19, 3,
+			22, 195, 182, 84, 6, 109, 90, 72, 15, 10, 6, 110, 89, 122, 109, 0, 25, 0, 9, 198, 60, 179, 218, 56, 18, 192, 13, 9, 198, 13,
+			48, 80, 5, 67, 212, 13, 0, 9, 198, 32, 19, 12, 61, 69, 1, 13, 18, 143, 22, 195, 161, 12, 20, 15, 26, 1, 20, 195, 161, 2,
+			195, 179, 12, 13, 0, 11, 200, 52, 20, 129, 16, 160, 78, 4, 176, 13, 0, 32, 70, 32, 18, 148, 4, 224, 75, 107, 108, 57, 47, 108,
+			50, 108, 49, 23, 84, 113, 81, 52, 109, 0, 13, 81, 118, 195, 169, 103, 114, 101, 32, 12, 201, 52, 20, 129, 16, 128, 84, 56, 18, 192,
+			13, 12, 201, 28, 243, 132, 61, 50, 207, 16, 146, 192, 13, 8, 197, 24, 83, 22, 21, 64, 13, 0, 21, 146, 14, 25, 9, 12, 22, 195,
+			161, 14, 195, 173, 20, 195, 161, 19, 20, 195, 179, 12, 13, 12, 137, 19, 195, 169, 20, 195, 161, 12, 14, 9, 13, 12, 137, 14, 25, 195,
+			186, 10, 20, 1, 14, 9, 13, 5, 194, 8, 16, 13, 0, 35, 67, 52, 81, 192, 65, 109, 81, 23, 49, 109, 55, 12, 23, 39, 55, 72,
+			108, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32, 111, 108, 100, 97, 110, 105, 32, 41, 67, 52, 81, 192, 65, 109, 81, 23, 49, 109, 55,
+			12, 23, 84, 37, 90, 81, 114, 55, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32, 118, 105, 122, 115, 103, 195, 161, 108, 110, 105, 32, 38,
+			67, 52, 81, 192, 65, 109, 81, 10, 6, 15, 49, 109, 55, 12, 10, 6, 15, 67, 39, 65, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32,
+			110, 121, 111, 109, 110, 105, 32, 25, 67, 52, 81, 192, 65, 109, 81, 23, 108, 88, 39, 49, 108, 47, 0, 13, 81, 97, 122, 111, 107, 97,
+			116, 32, 28, 67, 52, 81, 192, 65, 109, 81, 23, 108, 6, 15, 91, 39, 52, 71, 108, 0, 13, 82, 97, 32, 115, 111, 114, 98, 97, 32,
+			45, 67, 52, 81, 192, 65, 109, 81, 23, 108, 6, 15, 57, 109, 55, 109, 50, 47, 49, 109, 88, 118, 84, 109, 55, 0, 13, 82, 97, 32,
+			106, 101, 108, 101, 110, 116, 107, 101, 122, 197, 145, 118, 101, 108, 32, 29, 67, 52, 81, 192, 65, 109, 81, 23, 37, 91, 23, 47, 40, 72,
+			39, 65, 0, 13, 82, 105, 115, 32, 116, 117, 100, 111, 109, 32, 24, 67, 52, 81, 192, 65, 109, 81, 23, 108, 23, 107, 112, 52, 0, 13,
+			82, 97, 32, 104, 195, 173, 114, 32, 15, 67, 52, 81, 192, 65, 109, 81, 23, 108, 0, 13, 81, 97, 32, 6, 195, 52, 81, 192, 13, 0,
+			11, 136, 13, 9, 12, 12, 9, 195, 179, 20, 13, 24, 68, 20, 208, 133, 72, 109, 65, 71, 109, 52, 23, 84, 39, 55, 47, 0, 13, 81,
+			118, 111, 108, 116, 32, 13, 196, 20, 208, 133, 72, 13, 81, 118, 111, 108, 116, 32, 8, 133, 1, 12, 22, 195, 179, 13, 7, 196, 20, 208,
+			133, 72, 13, 0, 8, 133, 11, 195, 182, 12, 20, 13, 28, 67, 8, 19, 0, 71, 108, 55, 23, 39, 55, 72, 108, 55, 114, 50, 0, 13,
+			81, 111, 108, 100, 97, 108, 195, 161, 110, 32, 12, 201, 20, 194, 5, 49, 145, 90, 21, 69, 0, 13, 8, 133, 10, 195, 182, 20, 20, 13,
+			11, 193, 84, 17, 83, 46, 32, 105, 32, 46, 32, 0, 6, 195, 12, 146, 203, 13, 9, 66, 85, 0, 40, 48, 0, 42, 42, 0, 11, 136,
+			10, 195, 161, 18, 20, 21, 14, 11, 13, 41, 73, 44, 20, 3, 76, 243, 1, 80, 32, 78, 49, 108, 48, 76, 39, 55, 108, 47, 71, 108,
+			50, 23, 108, 88, 23, 84, 39, 55, 47, 0, 13, 82, 97, 122, 32, 118, 111, 108, 116, 32, 10, 199, 20, 193, 143, 28, 17, 14, 36, 13,
+			10, 199, 8, 83, 85, 80, 21, 14, 36, 13, 10, 199, 20, 197, 137, 76, 83, 14, 36, 13, 9, 134, 3, 195, 169, 12, 10, 1, 13, 10,
+			135, 5, 12, 10, 195, 182, 20, 20, 13, 20, 145, 20, 5, 12, 10, 5, 19, 195, 173, 20, 195, 169, 19, 195, 169, 8, 5, 26, 13, 11,
+			136, 20, 197, 145, 12, 195, 188, 14, 11, 13, 0, 10, 135, 12, 195, 161, 20, 20, 1, 13, 13, 0, 4, 193, 88, 42, 6, 65, 88, 84,
+			113, 0, 12, 201, 40, 81, 217, 104, 85, 5, 44, 85, 0, 13, 9, 134, 22, 195, 173, 22, 15, 11, 13, 8, 197, 72, 243, 148, 40, 16,
+			13, 8, 197, 57, 147, 205, 60, 208, 13, 8, 197, 48, 83, 20, 20, 208, 13, 0, 9, 198, 29, 145, 82, 52, 82, 192, 13, 34, 11, 19,
+			26, 1, 2, 195, 161, 12, 25, 26, 195, 179, 89, 108, 71, 114, 57, 88, 115, 23, 40, 47, 114, 50, 0, 13, 81, 117, 116, 195, 161, 110,
+			32, 9, 198, 72, 17, 207, 104, 226, 64, 13, 13, 138, 22, 1, 4, 195, 161, 19, 26, 15, 20, 20, 13, 9, 198, 40, 83, 5, 104, 226,
+			64, 13, 9, 198, 57, 145, 82, 80, 82, 192, 13, 16, 141, 2, 9, 26, 15, 14, 25, 195, 173, 20, 1, 14, 9, 1, 13, 5, 194, 5,
+			48, 72, 0, 40, 6, 8, 195, 161, 18, 15, 13, 107, 114, 52, 39, 65, 23, 113, 84, 37, 81, 23, 71, 112, 52, 50, 37, 0, 13, 82,
+			195, 169, 118, 105, 103, 32, 98, 195, 173, 114, 110, 105, 32, 9, 134, 2, 195, 173, 26, 26, 1, 13, 13, 138, 11, 195, 182, 20, 5, 12,
+			5, 26, 197, 145, 13, 12, 137, 18, 195, 182, 22, 9, 4, 5, 2, 2, 13, 10, 135, 10, 15, 7, 18, 195, 179, 12, 13, 13, 138, 19,
+			26, 15, 12, 7, 195, 161, 12, 14, 1, 13, 8, 133, 195, 186, 20, 15, 14, 13, 8, 133, 11, 195, 182, 19, 26, 13, 8, 133, 195, 186,
+			20, 15, 14, 20, 0, 15, 140, 195, 182, 19, 19, 26, 5, 18, 1, 11, 15, 20, 20, 13, 16, 141, 13, 5, 7, 20, 5, 12, 195, 173,
+			20, 195, 188, 14, 11, 13, 15, 4, 95, 49, 77, 52, 109, 79, 71, 37, 55, 55, 37, 115, 0, 0, 12, 1, 92, 71, 109, 49, 122, 55,
+			109, 91, 0, 27, 11, 65, 92, 72, 40, 48, 55, 108, 84, 113, 0, 11, 136, 7, 25, 1, 14, 195, 186, 10, 1, 13, 8, 197, 88, 85,
+			20, 20, 176, 13, 11, 136, 6, 195, 188, 12, 5, 11, 18, 5, 13, 12, 201, 88, 243, 129, 80, 179, 218, 56, 18, 192, 13, 9, 134, 12,
+			1, 11, 195, 179, 11, 13, 12, 201, 24, 241, 204, 4, 194, 207, 104, 226, 64, 13, 0, 10, 135, 10, 195, 182, 20, 20, 5, 11, 13, 0,
+			14, 1, 94, 83, 110, 55, 83, 109, 55, 113, 67, 112, 55, 0, 9, 134, 20, 195, 169, 18, 14, 9, 13, 13, 138, 22, 9, 26, 19, 7,
+			195, 161, 12, 10, 1, 13, 9, 134, 11, 195, 182, 20, 14, 9, 13, 0, 14, 139, 11, 18, 9, 20, 9, 11, 195, 161, 11, 18, 1, 13,
+			38, 4, 7, 195, 169, 16, 81, 113, 48, 23, 83, 39, 79, 108, 89, 47, 114, 91, 114, 47, 0, 13, 81, 102, 111, 103, 121, 97, 115, 122,
+			116, 195, 161, 115, 195, 161, 116, 32, 11, 200, 57, 146, 84, 61, 69, 21, 56, 176, 13, 10, 135, 19, 5, 7, 195, 169, 12, 25, 13, 7,
+			132, 13, 195, 179, 4, 13, 7, 132, 7, 195, 169, 16, 13, 0, 4, 193, 96, 42, 7, 65, 96, 37, 49, 89, 0, 11, 136, 18, 195, 161,
+			22, 5, 14, 14, 9, 13, 16, 65, 96, 47, 112, 88, 88, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 10, 135, 10, 195, 161, 18, 20,
+			1, 19, 13, 5, 194, 4, 64, 13, 15, 4, 95, 49, 77, 50, 109, 79, 65, 37, 55, 55, 37, 115, 0, 0, 14, 139, 11, 195, 169, 18,
+			4, 195, 169, 19, 195, 169, 20, 13, 18, 143, 13, 5, 7, 1, 12, 195, 161, 26, 195, 161, 19, 18, 195, 179, 12, 13, 10, 199, 80, 20,
+			148, 4, 195, 65, 80, 13, 15, 140, 195, 169, 12, 3, 5, 12, 197, 145, 4, 20, 5, 11, 13, 13, 138, 16, 9, 19, 26, 11, 195, 161,
+			12, 14, 9, 13, 13, 138, 19, 5, 2, 5, 19, 19, 195, 169, 7, 5, 13, 17, 4, 95, 49, 77, 51, 109, 79, 65, 37, 55, 55, 37,
+			114, 52, 72, 0, 0, 14, 139, 195, 186, 10, 4, 15, 14, 19, 195, 161, 7, 1, 13, 40, 7, 14, 25, 5, 12, 22, 197, 177, 67, 109,
+			55, 84, 117, 23, 37, 91, 65, 109, 52, 47, 109, 47, 118, 49, 0, 13, 81, 105, 115, 109, 101, 114, 116, 101, 116, 197, 145, 107, 32, 8,
+			133, 195, 169, 12, 5, 19, 13, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50, 0, 24, 149, 20, 195, 182, 18, 22, 195, 169, 14, 25,
+			10, 1, 22, 1, 19, 12, 1, 20, 18, 195, 179, 12, 13, 20, 145, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 195, 161, 2, 195,
+			179, 12, 13, 33, 6, 11, 5, 22, 195, 169, 19, 49, 109, 84, 113, 91, 23, 108, 23, 83, 109, 55, 107, 118, 0, 13, 82, 97, 32, 102,
+			101, 108, 104, 197, 145, 32, 11, 136, 22, 195, 169, 7, 5, 26, 14, 9, 13, 13, 138, 20, 5, 11, 9, 14, 20, 195, 188, 14, 11, 13,
+			8, 197, 4, 176, 82, 77, 160, 13, 9, 134, 11, 5, 22, 195, 169, 19, 13, 12, 67, 16, 245, 206, 72, 39, 58, 50, 0, 42, 42, 0,
+			16, 141, 195, 182, 14, 11, 195, 182, 12, 20, 19, 195, 169, 7, 5, 13, 33, 70, 57, 149, 71, 60, 69, 0, 67, 40, 81, 39, 47, 12,
+			15, 65, 108, 52, 108, 72, 50, 37, 0, 13, 81, 109, 97, 114, 97, 100, 110, 105, 32, 9, 198, 24, 244, 132, 84, 197, 0, 13, 0, 46,
+			10, 8, 15, 18, 4, 5, 18, 5, 10, 197, 177, 107, 39, 52, 72, 109, 52, 109, 57, 117, 23, 49, 113, 52, 72, 113, 91, 71, 109, 50,
+			0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 98, 101, 110, 32, 10, 199, 32, 83, 25, 104, 85, 2, 20, 13, 6, 195, 76, 20, 192,
+			13, 0, 19, 144, 13, 5, 7, 19, 26, 195, 188, 12, 5, 20, 195, 169, 19, 195, 169, 20, 13, 45, 68, 20, 118, 73, 44, 109, 79, 12,
+			37, 49, 10, 6, 15, 47, 109, 55, 109, 48, 107, 109, 57, 113, 52, 118, 55, 0, 13, 81, 116, 101, 108, 101, 112, 104, 101, 108, 121, 195,
+			169, 114, 197, 145, 108, 32, 33, 68, 20, 118, 73, 44, 109, 79, 12, 37, 49, 23, 84, 109, 88, 109, 47, 118, 57, 109, 0, 13, 81, 118,
+			101, 122, 101, 116, 197, 145, 106, 101, 32, 40, 68, 20, 118, 73, 44, 109, 79, 12, 37, 49, 23, 49, 113, 48, 84, 37, 91, 109, 55, 118,
+			57, 109, 0, 13, 81, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197, 145, 106, 101, 32, 19, 144, 6, 5, 12, 20, 195, 188, 14, 20, 5,
+			20, 195, 169, 19, 195, 169, 20, 13, 12, 137, 12, 5, 8, 5, 20, 195, 188, 14, 11, 13, 7, 196, 20, 118, 73, 44, 13, 0, 6, 65,
+			104, 88, 113, 0, 25, 69, 24, 244, 132, 84, 192, 83, 39, 34, 72, 40, 55, 23, 109, 55, 118, 0, 13, 81, 101, 108, 197, 145, 32, 39,
+			69, 32, 243, 140, 5, 0, 107, 39, 50, 55, 108, 48, 10, 6, 15, 47, 110, 52, 55, 113, 91, 113, 47, 0, 13, 81, 116, 195, 182, 114,
+			108, 195, 169, 115, 195, 169, 116, 32, 8, 197, 57, 147, 205, 60, 224, 13, 13, 138, 18, 5, 14, 4, 197, 145, 18, 195, 182, 11, 13, 13,
+			138, 20, 5, 18, 5, 13, 20, 195, 188, 14, 11, 13, 8, 197, 64, 144, 67, 60, 224, 13, 8, 197, 24, 244, 132, 84, 192, 13, 0, 16,
+			141, 5, 18, 5, 4, 13, 195, 169, 14, 25, 5, 26, 197, 145, 13, 13, 138, 13, 21, 14, 11, 195, 161, 18, 195, 179, 12, 13, 9, 198,
+			88, 149, 1, 80, 160, 64, 13, 9, 198, 53, 85, 1, 80, 160, 64, 13, 12, 137, 6, 5, 12, 14, 195, 182, 22, 197, 145, 13, 8, 133,
+			12, 195, 169, 7, 25, 13, 0, 10, 135, 11, 195, 169, 13, 13, 5, 12, 13, 10, 199, 52, 243, 137, 80, 244, 143, 44, 13, 14, 139, 22,
+			195, 161, 12, 12, 195, 161, 18, 195, 179, 12, 13, 10, 199, 24, 244, 132, 84, 197, 1, 44, 13, 0, 25, 68, 97, 98, 73, 36, 47, 37,
+			88, 109, 50, 67, 39, 55, 119, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 34, 69, 40, 83, 5, 57, 64, 57, 109, 55, 109, 50,
+			47, 23, 89, 114, 65, 40, 49, 52, 108, 0, 13, 81, 115, 122, 195, 161, 109, 117, 107, 114, 97, 32, 12, 137, 195, 179, 18, 195, 161, 20,
+			195, 179, 12, 13, 13, 138, 19, 26, 195, 161, 18, 13, 1, 26, 195, 179, 13, 8, 197, 40, 83, 5, 57, 64, 13, 16, 9, 95, 35, 45,
+			195, 161, 18, 195, 179, 12, 114, 52, 115, 55, 0, 0, 0, 13, 138, 6, 197, 145, 8, 1, 4, 14, 1, 7, 25, 13, 0, 45, 68, 85,
+			64, 193, 36, 40, 119, 12, 108, 37, 23, 113, 48, 111, 55, 109, 47, 109, 23, 109, 55, 118, 47, 12, 0, 13, 82, 195, 169, 112, 195, 188,
+			108, 101, 116, 101, 32, 101, 108, 197, 145, 116, 116, 32, 0, 8, 197, 4, 192, 75, 61, 64, 13, 8, 197, 80, 84, 150, 21, 64, 13, 0,
+			14, 139, 11, 195, 182, 22, 5, 20, 11, 5, 26, 9, 11, 13, 9, 198, 8, 85, 137, 80, 83, 20, 13, 9, 134, 20, 195, 161, 13, 1,
+			4, 13, 0, 9, 198, 32, 83, 25, 21, 69, 5, 13, 14, 139, 6, 5, 12, 15, 12, 22, 1, 19, 195, 179, 20, 13, 10, 135, 7, 18,
+			195, 179, 6, 15, 20, 13, 0, 13, 138, 8, 5, 12, 25, 195, 188, 11, 195, 182, 14, 13, 19, 144, 8, 1, 19, 26, 14, 195, 161, 12,
+			1, 20, 195, 161, 18, 195, 179, 12, 13, 7, 132, 11, 195, 182, 4, 13, 7, 196, 80, 83, 9, 44, 13, 7, 132, 195, 188, 12, 20, 13,
+			0, 25, 5, 195, 161, 12, 12, 20, 114, 55, 47, 23, 110, 89, 12, 109, 0, 13, 81, 195, 182, 115, 115, 122, 101, 32, 35, 5, 195, 161,
+			12, 12, 20, 114, 55, 47, 23, 48, 113, 55, 72, 108, 49, 113, 50, 47, 0, 13, 81, 112, 195, 169, 108, 100, 97, 107, 195, 169, 110, 116,
+			32, 19, 4, 195, 173, 7, 25, 112, 79, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 8, 197, 77, 160, 75, 52, 16, 13, 21, 4,
+			195, 173, 7, 25, 112, 79, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 10, 135, 5, 19, 26, 11, 195, 182, 26, 13, 8,
+			133, 195, 161, 12, 12, 20, 13, 7, 132, 195, 173, 7, 25, 13, 0, 9, 198, 72, 243, 148, 4, 226, 64, 13, 9, 198, 80, 84, 141, 20,
+			149, 0, 13, 9, 198, 48, 85, 5, 56, 226, 64, 13, 21, 146, 13, 195, 179, 4, 15, 19, 195, 173, 20, 195, 161, 19, 195, 161, 18, 195,
+			179, 12, 13, 9, 198, 80, 20, 148, 4, 226, 64, 13, 9, 198, 52, 243, 132, 4, 226, 64, 13, 0, 9, 198, 80, 20, 148, 4, 226, 65,
+			13, 15, 204, 4, 194, 193, 48, 208, 90, 61, 69, 1, 44, 224, 75, 13, 0, 7, 196, 80, 242, 138, 4, 13, 10, 135, 21, 20, 3, 195,
+			161, 2, 1, 13, 11, 200, 32, 149, 129, 80, 179, 218, 88, 16, 13, 0, 8, 197, 88, 17, 217, 60, 176, 72, 11, 136, 20, 5, 19, 20,
+			195, 169, 2, 5, 13, 8, 197, 88, 20, 212, 4, 112, 13, 40, 9, 19, 9, 11, 5, 18, 195, 188, 12, 20, 91, 37, 49, 109, 52, 111,
+			55, 47, 23, 49, 37, 83, 39, 81, 50, 39, 65, 0, 13, 81, 107, 105, 102, 111, 103, 110, 111, 109, 32, 8, 197, 24, 17, 217, 60, 176,
+			13, 12, 201, 24, 83, 4, 60, 193, 207, 104, 226, 64, 13, 9, 134, 3, 195, 173, 13, 5, 11, 13, 13, 138, 11, 9, 20, 195, 169, 18,
+			195, 188, 14, 11, 13, 9, 134, 3, 195, 169, 12, 15, 11, 13, 16, 9, 95, 35, 45, 195, 161, 20, 195, 179, 12, 114, 47, 115, 55, 0,
+			0, 9, 198, 48, 84, 218, 80, 82, 192, 72, 9, 198, 24, 84, 212, 20, 226, 64, 13, 9, 198, 44, 84, 133, 76, 226, 64, 13, 9, 198,
+			88, 84, 218, 80, 82, 192, 13, 0, 22, 67, 44, 148, 192, 49, 37, 91, 23, 47, 109, 55, 115, 0, 13, 81, 116, 101, 108, 195, 179, 32,
+			30, 67, 44, 148, 192, 49, 37, 91, 15, 47, 111, 52, 109, 55, 65, 109, 47, 0, 13, 81, 116, 195, 188, 114, 101, 108, 109, 101, 116, 32,
+			19, 144, 5, 12, 11, 195, 169, 16, 26, 5, 12, 195, 169, 19, 195, 188, 14, 11, 13, 24, 67, 44, 148, 192, 49, 37, 91, 15, 109, 52,
+			109, 57, 117, 0, 13, 81, 101, 114, 101, 106, 197, 177, 32, 13, 138, 19, 26, 15, 12, 7, 195, 161, 12, 10, 1, 13, 10, 199, 77, 163,
+			205, 8, 21, 15, 56, 22, 0, 15, 140, 20, 18, 195, 179, 14, 10, 195, 161, 18, 195, 179, 12, 13, 15, 140, 20, 9, 12, 1, 12, 13,
+			195, 161, 18, 195, 179, 12, 13, 11, 200, 29, 144, 78, 4, 180, 218, 36, 176, 13, 15, 140, 4, 195, 182, 18, 195, 182, 13, 2, 195, 182,
+			12, 20, 13, 9, 134, 3, 195, 173, 13, 5, 14, 13, 12, 137, 22, 195, 161, 12, 20, 15, 26, 195, 179, 13, 0, 12, 201, 52, 83, 133,
+			81, 33, 78, 16, 85, 0, 13, 16, 141, 22, 195, 161, 12, 20, 15, 26, 20, 1, 20, 15, 20, 20, 13, 39, 69, 72, 18, 206, 4, 176,
+			52, 108, 49, 50, 108, 49, 10, 6, 15, 71, 109, 50, 12, 111, 50, 49, 109, 47, 0, 13, 81, 98, 101, 110, 110, 195, 188, 110, 107, 101,
+			116, 32, 24, 69, 88, 82, 5, 80, 144, 84, 109, 107, 109, 47, 37, 23, 108, 89, 47, 0, 13, 81, 97, 122, 116, 32, 12, 201, 44, 146,
+			133, 48, 83, 148, 20, 226, 64, 13, 0, 28, 70, 76, 146, 197, 72, 84, 192, 91, 37, 49, 109, 52, 109, 91, 23, 84, 39, 55, 47, 0,
+			13, 81, 118, 111, 108, 116, 32, 12, 137, 19, 26, 195, 161, 13, 21, 11, 18, 1, 13, 9, 198, 12, 146, 203, 56, 82, 192, 13, 0, 9,
+			1, 126, 47, 37, 55, 72, 109, 0, 10, 135, 20, 195, 182, 2, 2, 9, 20, 13, 0, 15, 140, 16, 15, 19, 26, 20, 10, 195, 161, 18,
+			195, 179, 12, 13, 15, 140, 15, 11, 20, 1, 20, 195, 161, 19, 2, 195, 179, 12, 13, 10, 135, 5, 12, 195, 169, 18, 14, 9, 13, 9,
+			198, 16, 80, 197, 52, 33, 82, 20, 9, 198, 56, 245, 133, 52, 33, 82, 20, 0, 12, 201, 36, 225, 15, 44, 243, 20, 56, 18, 192, 13,
+			9, 198, 80, 20, 148, 4, 224, 75, 13, 0, 33, 70, 77, 161, 82, 36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 108, 88, 39, 49, 50,
+			108, 49, 0, 13, 81, 97, 122, 111, 107, 110, 97, 107, 32, 27, 70, 77, 161, 82, 36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 84, 39,
+			55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 44, 70, 77, 161, 82, 36, 229, 0, 89, 109, 52, 37, 50, 47, 23, 65, 115, 72, 39, 91,
+			112, 47, 107, 108, 47, 115, 0, 13, 81, 109, 195, 179, 100, 111, 115, 195, 173, 116, 104, 97, 116, 195, 179, 32, 12, 137, 13, 5, 7, 11,
+			195, 169, 18, 14, 9, 13, 16, 141, 10, 5, 12, 5, 14, 19, 195, 169, 7, 5, 11, 18, 5, 13, 12, 137, 13, 5, 7, 14, 195, 169,
+			26, 14, 9, 13, 9, 198, 77, 161, 82, 36, 229, 0, 13, 0, 18, 143, 6, 5, 12, 9, 14, 4, 21, 12, 195, 161, 19, 2, 195, 179,
+			12, 13, 18, 143, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 2, 195, 179, 12, 13, 0, 15, 204, 44, 243, 80, 72, 243, 73, 77,
+			54, 149, 52, 242, 192, 13, 55, 8, 19, 26, 195, 161, 13, 195, 173, 20, 89, 114, 65, 112, 47, 10, 6, 15, 108, 6, 15, 65, 37, 50,
+			37, 89, 47, 109, 52, 109, 55, 50, 110, 49, 0, 13, 82, 97, 32, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108, 110, 195, 182, 107,
+			32, 12, 201, 80, 20, 148, 4, 195, 65, 104, 224, 75, 13, 12, 201, 80, 20, 148, 4, 195, 65, 104, 224, 75, 13, 11, 136, 19, 26, 195,
+			161, 13, 195, 173, 20, 13, 0, 11, 136, 195, 169, 18, 11, 5, 26, 197, 145, 13, 12, 137, 195, 188, 26, 5, 13, 13, 195, 179, 4, 13,
+			13, 138, 9, 7, 195, 169, 14, 25, 195, 188, 14, 11, 13, 20, 145, 11, 15, 14, 3, 5, 16, 3, 9, 195, 179, 10, 195, 161, 18, 195,
+			179, 12, 13, 0, 20, 145, 20, 5, 22, 195, 169, 11, 5, 14, 25, 19, 195, 169, 7, 5, 11, 18, 5, 13, 9, 198, 32, 22, 149, 17,
+			64, 64, 13, 0, 31, 10, 22, 9, 26, 19, 7, 195, 161, 12, 14, 9, 84, 37, 90, 81, 114, 55, 50, 37, 23, 108, 89, 47, 0, 13,
+			81, 97, 122, 116, 32, 0, 26, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 109, 50, 12, 109, 49, 0, 13, 81, 101, 110, 110, 101,
+			107, 32, 21, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 52, 114, 0, 13, 81, 114, 195, 161, 32, 14, 139, 14, 195, 169, 16, 5,
+			19, 19, 195, 169, 7, 5, 13, 33, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 89, 109, 52, 37, 50, 47, 109, 65, 0, 13, 81,
+			115, 122, 101, 114, 105, 110, 116, 101, 109, 32, 24, 67, 77, 161, 77, 89, 109, 65, 23, 109, 55, 118, 47, 12, 0, 13, 81, 101, 108, 197,
+			145, 116, 116, 32, 22, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 23, 89, 115, 0, 13, 81, 115, 122, 195, 179, 32, 35, 68, 48, 83,
+			142, 20, 55, 109, 50, 12, 109, 23, 89, 111, 49, 91, 113, 81, 109, 65, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 109,
+			32, 31, 68, 48, 83, 142, 20, 55, 109, 50, 12, 109, 15, 89, 111, 49, 91, 113, 81, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169,
+			103, 32, 14, 139, 11, 195, 169, 16, 5, 19, 19, 195, 169, 7, 5, 13, 14, 139, 11, 195, 169, 16, 22, 9, 19, 5, 12, 197, 145, 13,
+			12, 137, 19, 9, 5, 20, 20, 195, 188, 14, 11, 13, 7, 132, 11, 195, 182, 16, 13, 7, 196, 48, 83, 142, 20, 13, 0, 0, 31, 6,
+			1, 20, 20, 195, 179, 12, 108, 47, 12, 115, 55, 10, 6, 15, 83, 113, 55, 50, 37, 0, 13, 81, 102, 195, 169, 108, 110, 105, 32, 10,
+			135, 11, 15, 18, 195, 186, 1, 11, 13, 11, 136, 7, 25, 5, 14, 7, 195, 169, 14, 13, 8, 133, 14, 195, 169, 7, 25, 13, 9, 134,
+			1, 20, 20, 195, 179, 12, 13, 0, 9, 198, 52, 81, 212, 20, 227, 137, 13, 11, 136, 22, 195, 161, 7, 25, 14, 1, 11, 13, 10, 199,
+			20, 192, 86, 84, 197, 1, 44, 13, 6, 195, 32, 145, 4, 13, 0, 12, 137, 22, 195, 161, 12, 1, 19, 26, 15, 11, 13, 0, 12, 201,
+			77, 160, 66, 4, 67, 129, 65, 32, 64, 13, 11, 136, 20, 1, 12, 195, 161, 12, 20, 1, 13, 13, 138, 2, 15, 18, 195, 173, 20, 1,
+			14, 1, 11, 13, 12, 137, 3, 19, 195, 182, 11, 11, 5, 14, 20, 13, 8, 197, 28, 243, 66, 61, 64, 13, 8, 197, 21, 161, 75, 21,
+			64, 13, 0, 0, 15, 140, 8, 1, 20, 195, 179, 19, 195, 161, 7, 14, 1, 11, 13, 21, 146, 195, 161, 12, 12, 1, 13, 20, 9, 20,
+			11, 195, 161, 18, 19, 195, 161, 7, 1, 13, 15, 140, 5, 12, 12, 195, 161, 20, 195, 179, 11, 14, 1, 11, 13, 13, 138, 11, 9, 20,
+			1, 12, 195, 161, 12, 20, 1, 13, 6, 195, 5, 81, 192, 20, 0, 18, 68, 53, 54, 141, 64, 101, 109, 101, 115, 122, 101, 109, 112, 195,
+			169, 0, 29, 19, 68, 53, 54, 141, 64, 101, 109, 101, 115, 122, 101, 109, 112, 195, 169, 0, 29, 42, 22, 4, 195, 161, 12, 12, 114, 55,
+			12, 23, 108, 52, 52, 108, 0, 13, 81, 97, 114, 114, 97, 32, 16, 141, 13, 5, 7, 6, 5, 12, 5, 12, 197, 145, 14, 5, 11, 13,
+			16, 141, 19, 26, 1, 11, 195, 169, 18, 20, 197, 145, 14, 5, 11, 13, 16, 141, 2, 9, 26, 15, 20, 20, 19, 195, 161, 7, 14, 1,
+			11, 13, 7, 132, 195, 161, 12, 12, 13, 0, 13, 138, 15, 18, 19, 26, 195, 161, 7, 14, 1, 11, 13, 17, 142, 2, 9, 3, 9, 11,
+			12, 9, 26, 197, 145, 11, 14, 5, 11, 13, 15, 140, 11, 195, 182, 18, 195, 188, 12, 195, 182, 20, 20, 5, 13, 0, 20, 66, 8, 80,
+			71, 109, 23, 116, 57, 52, 108, 0, 13, 81, 195, 186, 106, 114, 97, 32, 12, 137, 3, 19, 5, 18, 195, 169, 12, 14, 9, 13, 25, 66,
+			8, 80, 71, 109, 10, 6, 15, 108, 89, 47, 23, 37, 91, 0, 13, 82, 97, 122, 116, 32, 105, 115, 32, 5, 194, 8, 80, 13, 5, 194,
+			8, 80, 13, 0, 9, 198, 72, 82, 212, 61, 32, 73, 13, 15, 140, 7, 1, 26, 4, 1, 19, 195, 161, 7, 14, 1, 11, 13, 15, 140,
+			5, 12, 5, 7, 5, 14, 4, 197, 145, 14, 5, 11, 13, 14, 203, 52, 81, 198, 60, 112, 76, 52, 22, 143, 81, 64, 13, 6, 195, 76,
+			20, 212, 13, 0, 27, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108, 23, 65, 108, 81, 114, 47, 0, 13, 81, 109, 97, 103, 195, 161, 116,
+			32, 22, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108, 23, 83, 109, 55, 0, 13, 81, 102, 101, 108, 32, 22, 68, 88, 243, 14, 4, 84,
+			39, 55, 50, 108, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 33, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108, 23, 65, 109, 81,
+			23, 118, 49, 109, 47, 0, 13, 82, 109, 101, 103, 32, 197, 145, 107, 101, 116, 32, 32, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108, 23,
+			47, 109, 52, 84, 109, 88, 50, 37, 0, 13, 81, 116, 101, 114, 118, 101, 122, 110, 105, 32, 45, 68, 88, 243, 14, 4, 84, 39, 55, 50,
+			108, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 49, 109, 47, 0, 13, 82, 97, 32, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118,
+			101, 107, 101, 116, 32, 12, 137, 19, 26, 15, 11, 195, 161, 19, 15, 19, 13, 12, 137, 19, 5, 2, 5, 19, 19, 195, 169, 7, 13, 12,
+			137, 19, 26, 195, 188, 11, 19, 195, 169, 7, 13, 12, 137, 19, 26, 195, 188, 11, 19, 195, 169, 7, 13, 11, 200, 32, 19, 1, 77, 165,
+			15, 81, 64, 13, 7, 196, 32, 148, 218, 36, 13, 7, 196, 88, 243, 14, 4, 13, 0, 36, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50,
+			108, 48, 23, 72, 113, 55, 109, 55, 118, 47, 12, 0, 13, 81, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 32, 34, 69, 32, 243, 14,
+			5, 0, 107, 39, 55, 50, 108, 48, 23, 72, 113, 55, 40, 47, 114, 50, 0, 13, 81, 100, 195, 169, 108, 117, 116, 195, 161, 110, 32, 8,
+			197, 32, 243, 14, 5, 0, 13, 34, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50, 108, 48, 15, 72, 113, 55, 40, 47, 114, 50, 0, 13,
+			81, 100, 195, 169, 108, 117, 116, 195, 161, 110, 32, 36, 69, 32, 243, 14, 5, 0, 107, 39, 55, 50, 108, 48, 15, 72, 113, 55, 109, 55,
+			118, 47, 12, 0, 13, 81, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 32, 9, 198, 61, 37, 143, 76, 224, 75, 13, 8, 197, 52, 243,
+			132, 80, 16, 13, 0, 6, 195, 32, 19, 11, 13, 12, 67, 57, 54, 139, 109, 50, 109, 89, 49, 114, 0, 0, 10, 199, 57, 149, 71, 60,
+			69, 1, 56, 13, 11, 136, 13, 195, 169, 18, 14, 195, 182, 11, 13, 13, 67, 36, 98, 128, 37, 83, 57, 108, 71, 12, 0, 25, 17, 4,
+			95, 50, 67, 15, 49, 113, 47, 89, 114, 88, 108, 72, 37, 49, 0, 0, 6, 195, 84, 227, 137, 13, 7, 196, 52, 83, 142, 36, 13, 0,
+			9, 198, 80, 19, 149, 49, 69, 75, 13, 0, 7, 66, 13, 48, 76, 113, 0, 0, 10, 199, 77, 161, 82, 20, 197, 5, 44, 13, 0, 11,
+			200, 88, 148, 197, 48, 177, 68, 56, 144, 13, 11, 200, 16, 243, 7, 61, 163, 137, 84, 176, 13, 40, 68, 60, 193, 1, 48, 39, 55, 72,
+			108, 55, 23, 109, 55, 49, 113, 89, 112, 47, 113, 91, 109, 0, 13, 81, 101, 108, 107, 195, 169, 115, 122, 195, 173, 116, 195, 169, 115, 101,
+			32, 11, 200, 8, 85, 129, 48, 195, 212, 80, 16, 13, 6, 195, 8, 83, 5, 13, 11, 200, 52, 81, 205, 60, 225, 1, 56, 144, 13, 7,
+			196, 60, 193, 1, 48, 13, 16, 4, 95, 50, 77, 52, 49, 113, 47, 71, 37, 55, 55, 37, 115, 0, 0, 35, 70, 44, 86, 132, 20, 225,
+			75, 49, 109, 88, 72, 109, 50, 109, 49, 6, 23, 37, 52, 114, 50, 47, 108, 0, 13, 81, 105, 114, 195, 161, 110, 116, 97, 32, 12, 137,
+			22, 9, 26, 19, 7, 195, 161, 12, 20, 13, 0, 31, 6, 11, 5, 18, 195, 188, 12, 49, 109, 52, 111, 55, 10, 6, 15, 37, 47, 107,
+			39, 50, 0, 13, 81, 105, 116, 116, 104, 111, 110, 32, 24, 6, 11, 5, 18, 195, 188, 12, 49, 109, 52, 111, 55, 23, 91, 39, 52, 0,
+			13, 81, 115, 111, 114, 32, 9, 134, 11, 5, 18, 195, 188, 12, 13, 0, 29, 67, 61, 37, 20, 111, 101, 114, 114, 116, 195, 169, 116, 195,
+			169, 116, 197, 145, 108, 0, 44, 29, 42, 81, 116, 197, 145, 108, 32, 12, 137, 19, 1, 18, 11, 195, 161, 8, 15, 26, 13, 15, 140, 19,
+			26, 195, 161, 13, 195, 173, 20, 1, 14, 1, 11, 13, 61, 10, 20, 5, 18, 195, 188, 12, 5, 20, 18, 5, 47, 109, 52, 111, 55, 109,
+			47, 52, 109, 10, 6, 15, 37, 91, 10, 6, 15, 49, 39, 50, 119, 109, 50, 47, 52, 114, 55, 50, 37, 0, 13, 82, 105, 115, 32, 107,
+			111, 110, 99, 101, 110, 116, 114, 195, 161, 108, 110, 105, 32, 10, 135, 20, 195, 182, 2, 2, 5, 20, 13, 26, 7, 20, 195, 182, 2, 2,
+			5, 20, 47, 110, 71, 12, 109, 47, 23, 83, 39, 81, 0, 13, 81, 102, 111, 103, 32, 32, 7, 20, 195, 182, 2, 2, 5, 20, 47, 110,
+			71, 12, 109, 47, 15, 47, 40, 72, 50, 108, 49, 0, 13, 81, 116, 117, 100, 110, 97, 107, 32, 8, 195, 61, 37, 20, 17, 42, 42, 0,
+			11, 136, 19, 5, 18, 5, 7, 195, 169, 20, 13, 47, 12, 195, 182, 19, 19, 26, 5, 15, 13, 12, 15, 20, 20, 110, 89, 12, 109, 39,
+			65, 55, 39, 47, 12, 23, 108, 23, 52, 109, 50, 119, 109, 52, 0, 13, 82, 97, 32, 114, 101, 110, 100, 115, 122, 101, 114, 32, 6, 195,
+			24, 83, 5, 13, 6, 195, 88, 83, 5, 13, 0, 17, 142, 7, 25, 1, 14, 195, 186, 19, 195, 173, 20, 1, 14, 1, 11, 13, 9, 198,
+			36, 225, 21, 49, 64, 75, 13, 15, 140, 11, 195, 169, 16, 5, 18, 14, 25, 197, 145, 18, 5, 13, 17, 10, 95, 35, 45, 9, 11, 195,
+			161, 14, 1, 11, 114, 50, 108, 49, 0, 14, 4, 95, 50, 77, 49, 49, 113, 47, 109, 88, 109, 52, 0, 0, 18, 66, 16, 32, 100, 97,
+			114, 97, 98, 111, 116, 0, 44, 29, 81, 111, 116, 32, 18, 66, 16, 32, 100, 97, 114, 97, 98, 111, 115, 0, 44, 29, 81, 111, 115, 32,
+			17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 109, 0, 44, 29, 81, 109, 32, 18, 66, 12, 64, 99, 195, 169, 100, 195, 169, 109, 0, 44,
+			29, 42, 81, 109, 32, 18, 66, 12, 64, 99, 195, 169, 100, 195, 169, 100, 0, 44, 29, 42, 81, 100, 32, 17, 66, 12, 64, 99, 195, 169,
+			100, 195, 169, 100, 0, 44, 29, 81, 100, 32, 17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 110, 0, 44, 29, 81, 110, 32, 18, 66, 12,
+			64, 99, 195, 169, 100, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 17, 66, 12, 64, 99, 195, 169, 100, 195, 169, 107, 0, 44, 29, 81,
+			107, 32, 18, 66, 12, 64, 99, 195, 169, 100, 195, 169, 107, 0, 44, 29, 42, 81, 107, 32, 12, 137, 195, 169, 16, 195, 173, 20, 5, 14,
+			9, 13, 37, 66, 12, 64, 119, 113, 72, 113, 109, 55, 12, 109, 50, 118, 52, 88, 113, 91, 47, 0, 44, 42, 81, 101, 108, 108, 101, 110,
+			197, 145, 114, 122, 195, 169, 115, 116, 32, 16, 4, 95, 50, 77, 50, 49, 113, 47, 65, 37, 55, 55, 37, 115, 0, 0, 28, 71, 57, 149,
+			71, 60, 69, 1, 52, 67, 40, 81, 39, 47, 12, 108, 65, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 19, 144, 11, 195, 169, 19,
+			26, 195, 188, 12, 195, 169, 11, 5, 9, 14, 5, 11, 13, 10, 135, 10, 195, 182, 22, 197, 145, 20, 13, 10, 135, 195, 188, 26, 5, 14,
+			5, 20, 13, 18, 4, 95, 50, 77, 51, 49, 113, 47, 65, 37, 55, 55, 37, 114, 52, 72, 0, 0, 43, 70, 72, 83, 132, 77, 161, 82,
+			52, 109, 50, 119, 109, 52, 23, 83, 40, 47, 12, 108, 47, 114, 91, 114, 52, 108, 0, 13, 81, 102, 117, 116, 116, 97, 116, 195, 161, 115,
+			195, 161, 114, 97, 32, 41, 70, 72, 83, 132, 77, 161, 82, 52, 109, 50, 119, 109, 52, 23, 83, 52, 37, 91, 12, 112, 47, 113, 91, 47,
+			0, 13, 81, 102, 114, 105, 115, 115, 195, 173, 116, 195, 169, 115, 116, 32, 15, 140, 19, 5, 2, 5, 19, 19, 195, 169, 7, 195, 169, 20,
+			13, 15, 140, 11, 195, 182, 12, 20, 19, 195, 169, 7, 195, 169, 20, 13, 9, 198, 72, 83, 132, 77, 161, 82, 13, 11, 136, 19, 26, 195,
+			161, 13, 195, 161, 20, 13, 7, 196, 16, 243, 15, 28, 13, 0, 11, 136, 19, 26, 5, 18, 5, 20, 197, 145, 13, 16, 141, 13, 21, 14,
+			11, 1, 20, 195, 161, 18, 19, 195, 161, 20, 13, 18, 143, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 8, 15, 26, 13, 15,
+			140, 2, 5, 195, 161, 12, 12, 195, 173, 20, 1, 14, 9, 13, 15, 140, 5, 7, 25, 5, 14, 12, 195, 173, 20, 5, 14, 9, 13, 8,
+			197, 52, 243, 132, 60, 64, 13, 11, 136, 11, 5, 18, 195, 188, 12, 197, 145, 13, 8, 133, 6, 195, 161, 10, 20, 13, 0, 57, 70, 24,
+			241, 193, 17, 64, 64, 83, 39, 81, 108, 47, 12, 108, 23, 108, 88, 6, 23, 109, 55, 49, 113, 48, 88, 109, 55, 113, 91, 109, 49, 109,
+			47, 0, 13, 82, 97, 122, 32, 101, 108, 107, 195, 169, 112, 122, 101, 108, 195, 169, 115, 101, 107, 101, 116, 32, 9, 198, 48, 81, 202, 60,
+			32, 128, 13, 9, 198, 48, 20, 211, 4, 32, 128, 13, 9, 198, 24, 241, 193, 17, 64, 64, 13, 0, 9, 198, 36, 112, 90, 60, 195, 137,
+			13, 20, 145, 2, 9, 26, 20, 15, 19, 195, 173, 20, 195, 161, 19, 195, 161, 8, 15, 26, 13, 10, 199, 40, 83, 5, 57, 65, 78, 20,
+			13, 0, 7, 196, 24, 82, 130, 20, 13, 9, 134, 195, 161, 18, 2, 1, 14, 13, 7, 196, 80, 148, 218, 80, 13, 0, 12, 201, 32, 19,
+			135, 61, 165, 1, 81, 64, 64, 13, 0, 12, 66, 17, 32, 72, 39, 49, 47, 39, 52, 0, 25, 0, 9, 134, 13, 195, 182, 7, 195, 169,
+			13, 0, 12, 137, 11, 195, 188, 26, 4, 5, 14, 5, 11, 13, 9, 134, 11, 195, 179, 4, 195, 186, 13, 0, 32, 69, 64, 84, 131, 21,
+			64, 48, 109, 52, 119, 109, 47, 23, 83, 37, 88, 109, 47, 109, 49, 0, 13, 81, 102, 105, 122, 101, 116, 101, 107, 32, 8, 197, 9, 82,
+			203, 4, 224, 13, 12, 201, 52, 81, 212, 36, 197, 15, 81, 64, 64, 13, 8, 133, 6, 195, 161, 10, 12, 13, 8, 197, 52, 147, 139, 21,
+			64, 13, 8, 197, 52, 147, 139, 21, 64, 13, 12, 137, 5, 7, 25, 1, 18, 195, 161, 14, 20, 13, 0, 9, 198, 77, 161, 82, 21, 1,
+			64, 13, 12, 137, 11, 195, 182, 26, 195, 182, 12, 20, 5, 13, 9, 133, 197, 145, 19, 26, 9, 20, 13, 0, 13, 138, 195, 169, 18, 5,
+			26, 8, 5, 20, 20, 5, 13, 14, 139, 6, 197, 145, 15, 19, 26, 20, 195, 161, 10, 20, 13, 6, 195, 32, 19, 20, 13, 0, 49, 13,
+			15, 19, 26, 20, 195, 161, 12, 25, 195, 161, 14, 1, 11, 39, 89, 47, 114, 57, 114, 50, 108, 49, 23, 84, 109, 88, 109, 47, 113, 91,
+			113, 47, 0, 13, 81, 118, 101, 122, 101, 116, 195, 169, 115, 195, 169, 116, 32, 16, 141, 20, 195, 161, 18, 7, 25, 1, 12, 10, 1, 14,
+			1, 11, 13, 16, 141, 20, 195, 161, 18, 7, 25, 1, 12, 10, 1, 14, 1, 11, 13, 0, 10, 135, 195, 179, 18, 1, 11, 15, 18, 13,
+			38, 14, 9, 14, 4, 195, 173, 20, 22, 195, 161, 14, 25, 14, 1, 11, 37, 50, 72, 112, 47, 84, 114, 67, 50, 108, 49, 23, 84, 108,
+			50, 0, 13, 81, 118, 97, 110, 32, 34, 11, 195, 161, 12, 12, 1, 16, 15, 20, 2, 1, 14, 114, 55, 12, 108, 48, 39, 47, 71, 108,
+			50, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 17, 142, 5, 12, 22, 195, 161, 18, 195, 161, 19, 15, 11, 14, 1, 11, 13, 8,
+			197, 24, 241, 193, 37, 64, 13, 9, 198, 80, 20, 148, 61, 162, 75, 13, 0, 10, 135, 195, 182, 19, 19, 26, 5, 7, 13, 14, 139, 22,
+			5, 26, 5, 20, 197, 145, 11, 14, 5, 11, 13, 9, 198, 52, 243, 132, 61, 69, 0, 13, 0, 19, 144, 11, 195, 169, 16, 22, 9, 19,
+			5, 12, 20, 10, 5, 9, 14, 5, 11, 13, 11, 136, 26, 195, 161, 19, 26, 12, 195, 179, 13, 0, 16, 141, 11, 21, 20, 1, 20, 195,
+			161, 19, 15, 11, 14, 1, 11, 13, 10, 135, 22, 195, 169, 11, 15, 14, 25, 13, 0, 8, 197, 16, 243, 7, 60, 176, 13, 45, 69, 16,
+			243, 7, 60, 176, 72, 39, 55, 81, 39, 49, 10, 6, 15, 37, 72, 109, 81, 109, 91, 112, 47, 109, 50, 109, 49, 0, 13, 81, 105, 100,
+			101, 103, 101, 115, 195, 173, 116, 101, 110, 101, 107, 32, 13, 138, 2, 5, 12, 197, 145, 14, 9, 195, 188, 11, 13, 17, 142, 9, 14, 20,
+			195, 169, 26, 13, 195, 169, 14, 25, 14, 5, 11, 13, 6, 195, 77, 160, 82, 13, 9, 198, 4, 192, 80, 77, 162, 75, 13, 15, 140, 195,
+			169, 12, 5, 20, 20, 1, 18, 20, 1, 13, 1, 13, 12, 201, 24, 241, 193, 48, 208, 90, 61, 69, 0, 13, 6, 195, 77, 160, 82, 13,
+			0, 40, 11, 11, 195, 182, 26, 195, 182, 14, 19, 195, 169, 7, 49, 110, 88, 110, 50, 91, 113, 81, 23, 91, 39, 52, 108, 37, 71, 108,
+			0, 13, 81, 115, 111, 114, 97, 105, 98, 97, 32, 12, 201, 80, 20, 1, 77, 165, 1, 49, 64, 77, 13, 9, 198, 77, 165, 15, 72, 149,
+			0, 13, 13, 138, 22, 1, 12, 12, 15, 13, 195, 161, 19, 20, 13, 0, 11, 136, 20, 21, 4, 8, 1, 20, 195, 179, 13, 10, 199, 4,
+			64, 75, 61, 163, 212, 80, 13, 16, 134, 11, 195, 169, 26, 2, 5, 13, 81, 118, 101, 110, 110, 105, 32, 0, 7, 196, 85, 64, 76, 80,
+			13, 7, 196, 4, 65, 9, 28, 13, 58, 13, 20, 5, 22, 195, 169, 11, 5, 14, 25, 19, 195, 169, 7, 47, 109, 84, 113, 49, 109, 67,
+			91, 113, 81, 23, 49, 110, 88, 113, 48, 12, 39, 50, 80, 114, 71, 108, 0, 13, 81, 107, 195, 182, 122, 195, 169, 112, 112, 111, 110, 116,
+			106, 195, 161, 98, 97, 32, 38, 9, 19, 26, 1, 2, 8, 1, 20, 195, 179, 89, 108, 71, 107, 108, 47, 115, 23, 65, 109, 50, 111, 84,
+			109, 55, 0, 13, 81, 109, 101, 110, 195, 188, 118, 101, 108, 32, 12, 137, 15, 19, 26, 20, 8, 1, 20, 195, 179, 13, 11, 136, 3, 19,
+			9, 14, 195, 161, 12, 20, 13, 16, 141, 20, 5, 22, 195, 169, 11, 5, 14, 25, 19, 195, 169, 7, 13, 12, 137, 22, 195, 161, 7, 8,
+			1, 20, 195, 179, 13, 12, 137, 12, 195, 161, 20, 8, 1, 20, 195, 179, 13, 7, 196, 32, 147, 142, 36, 13, 7, 196, 48, 83, 142, 36,
+			13, 0, 11, 136, 8, 1, 12, 195, 161, 12, 18, 1, 13, 9, 198, 88, 148, 197, 49, 65, 75, 13, 17, 142, 20, 1, 12, 195, 161, 12,
+			13, 195, 161, 14, 25, 21, 14, 11, 13, 13, 138, 6, 15, 7, 1, 4, 8, 1, 20, 195, 179, 13, 0, 9, 198, 57, 145, 76, 88, 85,
+			0, 13, 42, 11, 5, 12, 22, 195, 161, 18, 8, 1, 20, 195, 179, 109, 55, 84, 114, 52, 107, 108, 47, 115, 23, 89, 109, 52, 37, 50,
+			47, 109, 0, 13, 81, 115, 122, 101, 114, 105, 110, 116, 101, 32, 12, 137, 19, 26, 195, 161, 13, 15, 4, 18, 1, 13, 14, 139, 6, 21,
+			20, 20, 1, 20, 8, 1, 20, 195, 179, 13, 12, 137, 5, 12, 11, 195, 182, 12, 20, 22, 5, 13, 14, 139, 20, 1, 12, 195, 161, 12,
+			8, 1, 20, 195, 179, 13, 0, 15, 140, 11, 1, 16, 3, 19, 15, 12, 8, 1, 20, 195, 179, 13, 9, 198, 88, 148, 197, 49, 65, 77,
+			13, 11, 136, 8, 1, 20, 195, 161, 19, 21, 11, 13, 15, 140, 6, 15, 18, 4, 195, 173, 20, 8, 1, 20, 195, 179, 13, 6, 195, 32,
+			149, 20, 13, 15, 8, 95, 35, 45, 195, 169, 14, 5, 11, 113, 50, 109, 49, 0, 0, 7, 196, 24, 82, 133, 16, 13, 16, 141, 11, 9,
+			20, 1, 12, 195, 161, 12, 8, 1, 20, 195, 179, 13, 12, 137, 22, 9, 12, 195, 161, 7, 14, 1, 11, 13, 0, 14, 139, 8, 195, 169,
+			20, 22, 195, 169, 7, 195, 169, 14, 13, 40, 14, 12, 5, 8, 5, 20, 197, 145, 19, 195, 169, 7, 195, 188, 11, 55, 109, 107, 109, 47,
+			118, 91, 113, 81, 111, 49, 23, 108, 52, 52, 108, 0, 13, 81, 97, 114, 114, 97, 32, 6, 195, 77, 161, 82, 72, 0, 9, 198, 80, 148,
+			9, 45, 84, 192, 13, 9, 134, 8, 195, 179, 14, 1, 16, 13, 0, 17, 142, 5, 12, 5, 11, 20, 18, 15, 14, 9, 11, 195, 161, 10,
+			1, 13, 0, 11, 136, 3, 195, 169, 12, 10, 1, 9, 20, 13, 50, 72, 36, 229, 5, 72, 225, 84, 21, 48, 37, 50, 47, 109, 52, 50,
+			109, 47, 109, 91, 15, 49, 37, 47, 110, 55, 47, 113, 91, 113, 52, 109, 0, 13, 81, 107, 105, 116, 195, 182, 108, 116, 195, 169, 115, 195,
+			169, 114, 101, 32, 20, 145, 13, 5, 7, 195, 161, 12, 12, 1, 16, 195, 173, 20, 8, 1, 20, 195, 179, 13, 0, 45, 10, 2, 197, 177,
+			14, 195, 182, 19, 14, 5, 11, 71, 117, 50, 110, 91, 50, 109, 49, 10, 6, 15, 47, 108, 55, 114, 61, 57, 114, 49, 0, 13, 81, 116,
+			97, 108, 195, 161, 108, 106, 195, 161, 107, 32, 12, 137, 7, 25, 5, 18, 5, 11, 195, 169, 20, 13, 14, 139, 195, 169, 16, 195, 188, 12,
+			5, 20, 2, 5, 14, 13, 14, 139, 11, 5, 18, 195, 188, 12, 5, 20, 2, 5, 14, 13, 0, 12, 137, 11, 5, 26, 4, 197, 145, 4,
+			197, 145, 13, 14, 139, 6, 21, 14, 11, 3, 9, 195, 179, 14, 1, 11, 13, 0, 0, 11, 136, 5, 7, 195, 169, 19, 26, 5, 20, 13,
+			0, 8, 197, 77, 160, 66, 4, 64, 76, 11, 136, 13, 195, 169, 18, 5, 20, 197, 177, 13, 64, 14, 6, 5, 12, 22, 195, 169, 20, 5,
+			12, 195, 169, 14, 5, 11, 83, 109, 55, 84, 113, 47, 109, 55, 113, 50, 109, 49, 23, 89, 111, 49, 91, 113, 81, 109, 91, 12, 113, 81,
+			113, 47, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 115, 195, 169, 103, 195, 169, 116, 32, 11, 136, 195, 169, 16, 195,
+			188, 12, 197, 145, 13, 6, 195, 36, 113, 78, 13, 8, 133, 11, 195, 169, 18, 20, 13, 10, 4, 95, 49, 48, 5, 47, 37, 88, 0, 0,
+			0, 14, 139, 195, 169, 12, 13, 195, 169, 14, 25, 195, 169, 20, 13, 10, 199, 24, 148, 148, 5, 52, 213, 44, 13, 19, 144, 14, 195, 182,
+			22, 5, 11, 5, 4, 195, 169, 19, 195, 169, 14, 5, 11, 13, 14, 139, 20, 195, 161, 18, 8, 5, 12, 25, 195, 169, 20, 13, 32, 7,
+			18, 5, 1, 7, 195, 161, 12, 52, 109, 108, 81, 114, 55, 23, 47, 110, 71, 12, 113, 0, 13, 81, 116, 195, 182, 98, 98, 195, 169, 32,
+			6, 195, 60, 176, 64, 13, 10, 199, 20, 197, 133, 32, 85, 9, 44, 13, 10, 135, 195, 173, 7, 195, 169, 18, 20, 13, 0, 7, 196, 77,
+			162, 78, 80, 13, 0, 10, 135, 16, 9, 1, 3, 195, 161, 14, 13, 8, 133, 6, 9, 195, 186, 20, 13, 8, 133, 2, 197, 145, 18, 20,
+			13, 0, 39, 66, 5, 160, 108, 88, 23, 113, 52, 47, 113, 49, 109, 91, 112, 47, 113, 91, 47, 0, 13, 81, 195, 169, 114, 116, 195, 169,
+			107, 101, 115, 195, 173, 116, 195, 169, 115, 116, 32, 32, 66, 5, 160, 108, 88, 23, 109, 55, 12, 109, 50, 113, 52, 84, 109, 49, 0, 13,
+			81, 101, 108, 108, 101, 110, 195, 169, 114, 118, 101, 107, 32, 22, 66, 5, 160, 108, 88, 23, 37, 72, 118, 52, 109, 0, 13, 81, 105, 100,
+			197, 145, 114, 101, 32, 18, 66, 5, 160, 108, 88, 23, 89, 108, 52, 0, 13, 81, 115, 122, 97, 114, 32, 34, 66, 5, 160, 108, 88, 23,
+			108, 55, 108, 48, 113, 55, 65, 113, 67, 109, 0, 13, 81, 97, 108, 97, 112, 195, 169, 108, 109, 195, 169, 110, 121, 101, 32, 25, 66, 5,
+			160, 108, 88, 23, 111, 79, 109, 49, 109, 47, 0, 13, 81, 195, 188, 103, 121, 101, 107, 101, 116, 32, 27, 66, 5, 160, 108, 88, 23, 111,
+			79, 109, 49, 71, 109, 50, 0, 13, 81, 195, 188, 103, 121, 101, 107, 98, 101, 110, 32, 29, 66, 5, 160, 108, 88, 10, 6, 15, 108, 72,
+			108, 47, 39, 49, 108, 47, 0, 13, 81, 97, 100, 97, 116, 111, 107, 97, 116, 32, 32, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 72,
+			39, 49, 55, 114, 91, 47, 0, 13, 81, 105, 110, 100, 111, 107, 108, 195, 161, 115, 116, 32, 22, 66, 5, 160, 108, 88, 10, 6, 15, 109,
+			55, 91, 118, 0, 13, 81, 101, 108, 115, 197, 145, 32, 28, 66, 5, 160, 108, 88, 10, 6, 15, 37, 55, 12, 109, 47, 118, 47, 0, 13,
+			81, 105, 108, 108, 101, 116, 197, 145, 116, 32, 27, 66, 5, 160, 108, 88, 10, 6, 15, 109, 91, 109, 47, 71, 109, 50, 0, 13, 81, 101,
+			115, 101, 116, 98, 101, 110, 32, 27, 66, 5, 160, 108, 88, 10, 6, 15, 49, 109, 55, 12, 109, 50, 109, 0, 13, 81, 107, 101, 108, 108,
+			101, 110, 101, 32, 23, 66, 5, 160, 108, 88, 10, 6, 15, 114, 52, 114, 47, 0, 13, 81, 195, 161, 114, 195, 161, 116, 32, 34, 66, 5,
+			160, 108, 88, 10, 6, 15, 109, 89, 49, 110, 88, 110, 49, 109, 47, 0, 13, 81, 101, 115, 122, 107, 195, 182, 122, 195, 182, 107, 101, 116,
+			32, 22, 66, 5, 160, 108, 88, 10, 6, 15, 113, 84, 109, 47, 0, 13, 81, 195, 169, 118, 101, 116, 32, 22, 66, 5, 160, 108, 88, 10,
+			6, 15, 37, 72, 118, 47, 0, 13, 81, 105, 100, 197, 145, 116, 32, 24, 66, 5, 160, 108, 88, 10, 6, 15, 108, 6, 15, 71, 108, 57,
+			0, 13, 82, 97, 32, 98, 97, 106, 32, 21, 66, 5, 160, 108, 88, 10, 6, 15, 108, 72, 108, 47, 0, 13, 81, 97, 100, 97, 116, 32,
+			31, 66, 5, 160, 108, 88, 10, 6, 15, 39, 34, 89, 114, 81, 71, 108, 50, 0, 13, 81, 111, 114, 115, 122, 195, 161, 103, 98, 97, 110,
+			32, 23, 66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 84, 109, 47, 0, 13, 81, 101, 108, 118, 101, 116, 32, 24, 66, 5, 160, 108, 88,
+			10, 6, 15, 113, 61, 57, 109, 55, 0, 13, 81, 195, 169, 106, 106, 101, 108, 32, 23, 66, 5, 160, 108, 88, 10, 6, 15, 108, 50, 81,
+			39, 55, 0, 13, 81, 97, 110, 103, 111, 108, 32, 34, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 72, 112, 47, 84, 114, 67, 108, 0,
+			13, 81, 105, 110, 100, 195, 173, 116, 118, 195, 161, 110, 121, 97, 32, 25, 66, 5, 160, 108, 88, 10, 6, 15, 39, 55, 72, 108, 55, 47,
+			0, 13, 81, 111, 108, 100, 97, 108, 116, 32, 26, 66, 5, 160, 108, 88, 10, 6, 15, 111, 79, 52, 118, 55, 0, 13, 81, 195, 188, 103,
+			121, 114, 197, 145, 108, 32, 35, 66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 50, 110, 49, 91, 113, 81, 109, 47, 0, 13, 81, 101, 108,
+			110, 195, 182, 107, 115, 195, 169, 103, 101, 116, 32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 109, 79, 12, 109, 91, 111, 55, 109, 47, 109,
+			49, 0, 13, 81, 101, 103, 121, 101, 115, 195, 188, 108, 101, 116, 101, 107, 32, 39, 66, 5, 160, 108, 88, 10, 6, 15, 109, 55, 118, 52,
+			109, 57, 109, 55, 88, 113, 91, 109, 0, 13, 81, 101, 108, 197, 145, 114, 101, 106, 101, 108, 122, 195, 169, 115, 101, 32, 36, 66, 5, 160,
+			108, 88, 10, 6, 15, 37, 50, 47, 113, 88, 65, 113, 67, 109, 49, 0, 13, 81, 105, 110, 116, 195, 169, 122, 109, 195, 169, 110, 121, 101,
+			107, 32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 72, 39, 49, 55, 114, 91, 12, 108, 55, 0, 13, 81, 105, 110, 100, 111, 107,
+			108, 195, 161, 115, 115, 97, 108, 32, 36, 66, 5, 160, 108, 88, 10, 6, 15, 114, 55, 12, 108, 48, 39, 47, 40, 49, 39, 50, 0, 13,
+			81, 195, 161, 108, 108, 97, 112, 111, 116, 117, 107, 111, 110, 32, 38, 66, 5, 160, 108, 88, 23, 91, 109, 65, 23, 89, 39, 49, 84, 114,
+			67, 39, 91, 0, 13, 82, 115, 101, 109, 32, 115, 122, 111, 107, 118, 195, 161, 110, 121, 111, 115, 32, 25, 66, 5, 160, 108, 88, 10, 6,
+			15, 111, 79, 71, 109, 50, 0, 13, 81, 195, 188, 103, 121, 98, 101, 110, 32, 41, 66, 5, 160, 108, 88, 10, 6, 15, 108, 55, 108, 48,
+			37, 55, 12, 109, 47, 65, 113, 67, 109, 0, 13, 81, 97, 108, 97, 112, 105, 108, 108, 101, 116, 109, 195, 169, 110, 121, 101, 32, 29, 66,
+			5, 160, 108, 88, 10, 6, 15, 37, 88, 81, 108, 55, 65, 108, 91, 0, 13, 81, 105, 122, 103, 97, 108, 109, 97, 115, 32, 30, 66, 5,
+			160, 108, 88, 23, 108, 6, 15, 49, 113, 52, 72, 113, 91, 0, 13, 82, 97, 32, 107, 195, 169, 114, 100, 195, 169, 115, 32, 34, 66, 5,
+			160, 108, 88, 23, 37, 50, 47, 113, 88, 109, 47, 109, 49, 109, 47, 0, 13, 81, 105, 110, 116, 195, 169, 122, 101, 116, 101, 107, 101, 116,
+			32, 21, 66, 5, 160, 108, 88, 23, 109, 55, 84, 109, 47, 0, 13, 81, 101, 108, 118, 101, 116, 32, 24, 66, 5, 160, 108, 88, 23, 113,
+			55, 109, 47, 109, 72, 0, 13, 81, 195, 169, 108, 101, 116, 101, 100, 32, 31, 66, 5, 160, 108, 88, 6, 23, 116, 57, 112, 47, 114, 91,
+			39, 49, 0, 13, 81, 195, 186, 106, 195, 173, 116, 195, 161, 115, 111, 107, 32, 31, 66, 5, 160, 108, 88, 6, 23, 114, 55, 12, 108, 48,
+			39, 47, 39, 65, 0, 13, 81, 195, 161, 108, 108, 97, 112, 111, 116, 111, 109, 32, 38, 66, 5, 160, 108, 88, 10, 6, 15, 37, 50, 47,
+			109, 52, 50, 109, 47, 109, 88, 113, 91, 0, 13, 81, 105, 110, 116, 101, 114, 110, 101, 116, 101, 122, 195, 169, 115, 32, 35, 66, 5, 160,
+			108, 88, 10, 6, 15, 108, 6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 13, 82, 97, 32, 112, 114, 111, 98, 108, 195, 169, 109, 97,
+			32, 25, 66, 5, 160, 108, 88, 6, 15, 10, 113, 89, 108, 49, 37, 0, 13, 81, 195, 169, 115, 122, 97, 107, 105, 32, 18, 66, 5, 160,
+			108, 88, 23, 109, 91, 118, 0, 13, 81, 101, 115, 197, 145, 32, 17, 66, 5, 160, 108, 88, 23, 113, 4, 81, 0, 13, 81, 195, 169, 103,
+			32, 17, 66, 5, 160, 108, 88, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 22, 66, 5, 160, 108, 88, 23, 37, 50, 83, 115, 47,
+			0, 13, 81, 105, 110, 102, 195, 179, 116, 32, 15, 66, 5, 160, 108, 88, 15, 37, 91, 0, 13, 81, 105, 115, 32, 20, 66, 5, 160, 10,
+			108, 88, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 9, 134, 20, 195, 161, 18, 15, 12, 13, 6, 194, 5, 160, 72, 12,
+			0, 15, 140, 19, 26, 195, 169, 12, 12, 195, 182, 11, 195, 169, 19, 13, 8, 133, 11, 195, 169, 19, 26, 13, 0, 11, 136, 3, 195, 169,
+			7, 195, 169, 18, 20, 13, 9, 134, 16, 195, 161, 18, 15, 14, 13, 14, 139, 22, 9, 26, 19, 7, 195, 161, 12, 1, 20, 1, 13, 0,
+			12, 137, 16, 195, 169, 12, 4, 195, 161, 21, 12, 13, 8, 133, 11, 195, 169, 19, 20, 13, 15, 69, 29, 145, 83, 21, 96, 79, 109, 91,
+			109, 84, 0, 42, 42, 0, 39, 70, 44, 83, 12, 21, 69, 0, 49, 109, 55, 12, 109, 47, 12, 23, 49, 108, 48, 76, 39, 55, 50, 39,
+			65, 0, 13, 81, 107, 97, 112, 99, 115, 111, 108, 110, 111, 109, 32, 29, 70, 44, 83, 12, 21, 69, 0, 49, 109, 55, 12, 109, 47, 12,
+			23, 108, 107, 39, 88, 0, 13, 81, 97, 104, 104, 111, 122, 32, 40, 70, 44, 83, 12, 21, 69, 0, 49, 109, 55, 12, 109, 47, 12, 23,
+			109, 55, 39, 55, 84, 108, 91, 50, 39, 65, 0, 13, 81, 101, 108, 111, 108, 118, 97, 115, 110, 111, 109, 32, 13, 138, 20, 195, 182, 13,
+			5, 7, 18, 197, 145, 12, 13, 9, 198, 44, 83, 12, 21, 69, 0, 13, 6, 131, 8, 195, 179, 13, 0, 10, 135, 20, 15, 10, 195, 161,
+			19, 20, 13, 29, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 84, 114, 52, 57, 114, 49, 0, 13, 81, 118, 195, 161, 114, 106, 195, 161,
+			107, 32, 31, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 89, 109, 52, 109, 47, 50, 113, 0, 13, 81, 115, 122, 101, 114, 101, 116, 110,
+			195, 169, 32, 27, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 57, 109, 55, 88, 37, 49, 0, 13, 81, 106, 101, 108, 122, 105, 107, 32,
+			38, 67, 5, 165, 0, 108, 89, 47, 10, 6, 15, 79, 108, 50, 112, 47, 39, 47, 12, 114, 49, 0, 13, 81, 103, 121, 97, 110, 195, 173,
+			116, 111, 116, 116, 195, 161, 107, 32, 33, 67, 5, 165, 0, 108, 89, 47, 10, 6, 49, 113, 48, 84, 37, 91, 109, 55, 37, 0, 13, 81,
 			107, 195, 169, 112, 118, 105, 115, 101, 108, 105, 32, 37, 67, 5, 165, 0, 108, 89, 47, 6, 23, 108, 23, 107, 108, 79, 39, 65, 114, 67,
-			47, 0, 11, 82, 97, 32, 104, 97, 103, 121, 111, 109, 195, 161, 110, 121, 116, 32, 9, 198, 46, 132, 170, 80, 243, 128, 11, 36, 67, 5,
-			165, 0, 108, 89, 47, 23, 47, 108, 48, 108, 89, 47, 108, 55, 47, 108, 65, 0, 11, 81, 116, 97, 112, 97, 115, 122, 116, 97, 108, 116,
-			97, 109, 32, 37, 67, 5, 165, 0, 108, 89, 47, 23, 47, 108, 50, 114, 76, 39, 57, 57, 57, 114, 49, 0, 11, 81, 116, 97, 110, 195,
-			161, 99, 115, 111, 108, 106, 195, 161, 107, 32, 56, 67, 5, 165, 0, 108, 89, 47, 23, 49, 113, 52, 47, 109, 23, 108, 88, 23, 114, 55,
-			12, 108, 65, 47, 37, 47, 49, 114, 52, 0, 11, 83, 107, 195, 169, 114, 116, 101, 32, 97, 122, 32, 195, 161, 108, 108, 97, 109, 116, 105,
-			116, 107, 195, 161, 114, 32, 11, 200, 24, 241, 207, 73, 99, 211, 60, 208, 11, 14, 195, 5, 165, 0, 11, 81, 108, 195, 161, 116, 110, 105,
-			32, 10, 195, 5, 165, 0, 11, 81, 105, 115, 32, 6, 195, 5, 165, 0, 11, 10, 199, 77, 163, 205, 8, 21, 15, 56, 17, 0, 0, 33,
-			70, 44, 244, 141, 112, 230, 64, 49, 39, 52, 65, 114, 67, 23, 49, 110, 88, 110, 47, 12, 0, 11, 81, 107, 195, 182, 122, 195, 182, 116,
-			116, 32, 12, 201, 56, 85, 133, 48, 177, 68, 21, 69, 0, 11, 12, 201, 44, 243, 131, 21, 0, 201, 156, 32, 78, 11, 14, 203, 44, 243,
-			131, 21, 0, 201, 156, 167, 18, 156, 192, 11, 9, 198, 20, 194, 156, 72, 226, 64, 11, 9, 198, 46, 179, 4, 20, 226, 64, 11, 0, 29,
-			68, 77, 169, 204, 156, 89, 115, 55, 115, 23, 72, 110, 50, 47, 113, 91, 0, 11, 81, 100, 195, 182, 110, 116, 195, 169, 115, 32, 35, 68,
-			77, 169, 204, 156, 89, 115, 55, 115, 23, 57, 108, 84, 108, 91, 55, 108, 47, 39, 47, 0, 11, 81, 106, 97, 118, 97, 115, 108, 97, 116,
-			111, 116, 32, 9, 198, 46, 134, 144, 60, 229, 0, 11, 7, 196, 77, 169, 204, 156, 11, 6, 194, 16, 80, 76, 8, 0, 11, 200, 88, 148,
-			197, 48, 177, 68, 56, 144, 11, 11, 200, 52, 81, 205, 60, 225, 1, 56, 144, 11, 6, 194, 169, 64, 15, 11, 9, 198, 77, 165, 18, 112,
-			162, 192, 11, 0, 35, 70, 77, 160, 66, 32, 21, 39, 89, 108, 71, 107, 108, 47, 115, 23, 65, 109, 50, 111, 84, 109, 55, 0, 11, 81,
-			109, 101, 110, 195, 188, 118, 101, 108, 32, 9, 198, 32, 83, 25, 172, 186, 14, 11, 8, 197, 137, 33, 5, 52, 80, 11, 9, 198, 46, 36,
-			142, 172, 226, 192, 11, 12, 201, 24, 241, 204, 4, 194, 207, 104, 226, 64, 11, 6, 195, 80, 83, 20, 11, 0, 0, 8, 197, 8, 243, 20,
-			61, 64, 11, 9, 198, 74, 37, 5, 28, 85, 0, 11, 8, 197, 24, 241, 207, 81, 64, 11, 5, 194, 50, 112, 11, 9, 198, 80, 149, 5,
-			44, 85, 0, 11, 0, 17, 67, 13, 48, 75, 76, 108, 49, 23, 49, 37, 0, 11, 81, 107, 105, 32, 31, 67, 13, 48, 75, 76, 108, 49,
-			10, 6, 15, 65, 109, 81, 47, 109, 50, 12, 37, 0, 11, 81, 109, 101, 103, 116, 101, 110, 110, 105, 32, 27, 67, 13, 48, 75, 76, 108,
-			49, 23, 49, 113, 91, 118, 71, 12, 0, 11, 81, 107, 195, 169, 115, 197, 145, 98, 98, 32, 23, 67, 13, 48, 75, 76, 108, 49, 23, 108,
-			49, 12, 39, 52, 0, 11, 81, 97, 107, 107, 111, 114, 32, 23, 67, 13, 48, 75, 76, 108, 49, 23, 55, 109, 107, 109, 47, 0, 11, 81,
-			108, 101, 104, 101, 116, 32, 13, 138, 109, 101, 103, 103, 121, 197, 145, 122, 110, 105, 11, 12, 201, 44, 149, 133, 80, 226, 86, 4, 201, 192,
-			11, 6, 195, 13, 48, 75, 11, 25, 67, 96, 146, 64, 47, 37, 88, 109, 50, 49, 109, 47, 12, 118, 84, 109, 55, 0, 44, 42, 81, 101,
-			108, 32, 0, 8, 197, 88, 149, 28, 40, 16, 11, 9, 198, 8, 150, 129, 44, 241, 39, 11, 15, 204, 24, 145, 217, 20, 195, 69, 105, 65,
-			84, 21, 69, 0, 11, 6, 195, 88, 243, 148, 11, 6, 195, 88, 243, 148, 11, 0, 18, 68, 53, 54, 141, 64, 101, 109, 101, 115, 122, 101,
-			109, 112, 195, 169, 0, 29, 19, 68, 53, 54, 141, 64, 101, 109, 101, 115, 122, 101, 109, 112, 195, 169, 0, 29, 42, 12, 201, 8, 148, 218,
-			80, 244, 207, 44, 21, 0, 11, 0, 8, 197, 161, 97, 90, 36, 176, 11, 10, 199, 112, 197, 1, 49, 195, 143, 76, 11, 9, 198, 77, 167,
-			13, 84, 180, 129, 11, 8, 197, 24, 18, 149, 49, 64, 11, 8, 197, 32, 83, 25, 21, 64, 11, 8, 197, 77, 161, 77, 21, 64, 11, 8,
-			197, 88, 148, 197, 49, 64, 11, 8, 197, 52, 240, 137, 49, 64, 11, 9, 198, 112, 195, 37, 80, 160, 64, 11, 8, 197, 90, 33, 218, 36,
-			176, 11, 8, 197, 40, 21, 149, 49, 64, 11, 8, 197, 58, 38, 142, 20, 176, 11, 7, 196, 57, 153, 76, 80, 11, 9, 198, 52, 17, 213,
-			44, 21, 0, 11, 8, 197, 52, 20, 129, 17, 64, 11, 5, 194, 21, 48, 72, 0, 10, 199, 77, 163, 210, 84, 194, 143, 56, 11, 39, 67,
-			56, 83, 64, 50, 109, 65, 23, 57, 109, 55, 109, 50, 47, 23, 91, 109, 65, 12, 37, 47, 0, 11, 82, 106, 101, 108, 101, 110, 116, 32,
-			115, 101, 109, 109, 105, 116, 32, 19, 68, 57, 145, 76, 88, 67, 109, 55, 84, 23, 37, 91, 0, 11, 81, 105, 115, 32, 47, 67, 56, 83,
-			64, 50, 109, 65, 23, 84, 39, 55, 47, 23, 47, 37, 89, 47, 109, 91, 12, 113, 81, 109, 91, 0, 11, 82, 118, 111, 108, 116, 32, 116,
-			105, 115, 122, 116, 101, 115, 115, 195, 169, 103, 101, 115, 32, 24, 67, 56, 83, 64, 50, 109, 65, 23, 55, 114, 47, 12, 108, 0, 11, 81,
-			108, 195, 161, 116, 116, 97, 32, 21, 67, 56, 83, 64, 50, 109, 65, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 44, 67,
-			56, 83, 64, 50, 109, 65, 23, 65, 39, 88, 81, 108, 47, 12, 108, 23, 47, 39, 84, 114, 71, 12, 0, 11, 82, 109, 111, 122, 103, 97,
-			116, 116, 97, 32, 116, 111, 118, 195, 161, 98, 98, 32, 20, 67, 56, 83, 64, 50, 109, 65, 23, 55, 109, 89, 0, 11, 81, 108, 101, 115,
-			122, 32, 40, 67, 56, 83, 64, 50, 109, 65, 15, 65, 109, 52, 47, 109, 65, 15, 55, 109, 112, 52, 50, 37, 0, 11, 82, 109, 101, 114,
-			116, 101, 109, 32, 108, 101, 195, 173, 114, 110, 105, 32, 11, 200, 76, 81, 229, 80, 83, 171, 56, 176, 11, 9, 198, 50, 37, 5, 104, 146,
-			192, 11, 9, 198, 74, 133, 137, 16, 80, 130, 11, 9, 198, 50, 37, 5, 104, 146, 192, 11, 9, 198, 74, 115, 1, 80, 242, 192, 11, 7,
-			195, 56, 83, 64, 102, 10, 8, 195, 56, 83, 64, 10, 23, 17, 0, 12, 201, 88, 150, 147, 29, 195, 8, 5, 73, 192, 11, 9, 198, 112,
-			195, 1, 64, 245, 42, 11, 12, 201, 32, 20, 218, 57, 195, 8, 5, 73, 192, 11, 11, 200, 29, 153, 199, 101, 67, 210, 56, 16, 11, 7,
-			196, 82, 35, 5, 56, 11, 12, 201, 44, 149, 1, 49, 195, 8, 5, 73, 192, 11, 12, 201, 32, 20, 218, 57, 195, 8, 5, 73, 192, 11,
-			15, 204, 81, 195, 79, 28, 21, 15, 81, 68, 220, 28, 245, 0, 11, 6, 195, 85, 64, 76, 11, 0, 9, 198, 88, 148, 197, 49, 65, 77,
-			11, 11, 200, 29, 144, 78, 4, 180, 218, 36, 176, 11, 11, 200, 46, 36, 132, 137, 49, 75, 72, 80, 11, 11, 200, 20, 208, 133, 72, 82,
-			206, 20, 176, 11, 0, 11, 200, 25, 34, 83, 78, 179, 14, 20, 176, 11, 6, 195, 90, 33, 197, 11, 0, 9, 198, 17, 39, 7, 112, 32,
-			128, 11, 7, 196, 89, 193, 206, 36, 11, 0, 9, 198, 37, 39, 14, 101, 83, 0, 11, 10, 199, 48, 81, 201, 56, 183, 2, 8, 11, 10,
-			199, 52, 243, 137, 80, 244, 143, 44, 11, 0, 8, 197, 161, 42, 11, 160, 192, 11, 12, 201, 72, 83, 132, 77, 161, 82, 20, 180, 133, 11,
-			0, 12, 137, 107, 101, 122, 100, 197, 145, 100, 197, 145, 11, 29, 68, 44, 84, 171, 48, 49, 109, 52, 111, 55, 10, 6, 15, 37, 47, 107,
-			39, 50, 0, 11, 81, 105, 116, 116, 104, 111, 110, 32, 22, 68, 44, 84, 171, 48, 49, 109, 52, 111, 55, 23, 91, 39, 52, 0, 11, 81,
-			115, 111, 114, 32, 23, 67, 88, 84, 218, 84, 109, 89, 23, 52, 113, 89, 47, 0, 11, 81, 114, 195, 169, 115, 122, 116, 32, 8, 197, 89,
-			196, 149, 56, 176, 11, 6, 195, 88, 148, 218, 11, 7, 196, 44, 84, 171, 48, 11, 6, 195, 44, 147, 142, 11, 6, 195, 88, 84, 218, 11,
-			0, 10, 199, 112, 195, 15, 53, 195, 153, 80, 11, 35, 67, 161, 42, 13, 110, 52, 110, 65, 23, 108, 6, 23, 89, 114, 65, 39, 65, 52,
-			108, 0, 11, 82, 97, 32, 115, 122, 195, 161, 109, 111, 109, 114, 97, 32, 8, 197, 36, 65, 74, 137, 64, 11, 13, 202, 88, 150, 147, 29,
-			195, 1, 80, 242, 210, 4, 11, 6, 195, 136, 165, 0, 11, 0, 14, 203, 136, 193, 76, 52, 148, 218, 21, 33, 75, 72, 80, 11, 21, 66,
-			73, 192, 52, 114, 23, 37, 81, 113, 67, 0, 11, 81, 105, 103, 195, 169, 110, 121, 32, 30, 66, 73, 192, 52, 114, 23, 89, 111, 49, 91,
-			113, 81, 109, 65, 0, 11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 109, 32, 40, 72, 56, 83, 90, 21, 66, 232, 104, 144, 50,
-			109, 65, 88, 109, 47, 49, 110, 88, 37, 23, 89, 108, 71, 84, 114, 67, 0, 11, 81, 115, 122, 97, 98, 118, 195, 161, 110, 121, 32, 41,
-			72, 56, 83, 90, 21, 66, 232, 104, 144, 50, 109, 65, 88, 109, 47, 49, 110, 88, 37, 23, 89, 108, 71, 84, 114, 67, 0, 11, 81, 115,
-			122, 97, 98, 98, 118, 195, 161, 110, 121, 32, 9, 198, 4, 181, 21, 112, 194, 83, 11, 5, 194, 73, 192, 11, 9, 3, 95, 35, 57, 47,
-			108, 71, 0, 0, 12, 201, 52, 81, 194, 149, 160, 84, 113, 53, 0, 11, 0, 29, 68, 21, 56, 138, 80, 109, 91, 113, 57, 47, 10, 6,
-			15, 55, 114, 47, 39, 49, 0, 11, 81, 108, 195, 161, 116, 111, 107, 32, 7, 196, 77, 167, 14, 80, 11, 0, 52, 74, 112, 195, 28, 77,
-			3, 206, 80, 243, 65, 80, 114, 55, 12, 114, 91, 48, 39, 50, 47, 39, 65, 108, 47, 23, 107, 108, 50, 81, 39, 89, 47, 108, 47, 39,
-			65, 0, 11, 81, 104, 97, 110, 103, 111, 122, 116, 97, 116, 111, 109, 32, 8, 197, 28, 243, 66, 72, 16, 11, 8, 197, 77, 161, 82, 80,
-			80, 11, 11, 67, 4, 197, 0, 108, 55, 47, 0, 42, 42, 0, 22, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 65, 109, 81, 0,
-			11, 81, 109, 101, 103, 32, 32, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 65, 117, 49, 110, 72, 50, 37, 0, 11, 81, 109, 197,
-			177, 107, 195, 182, 100, 110, 105, 32, 34, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 55, 109, 107, 109, 47, 118, 84, 113, 0, 11,
-			81, 108, 101, 104, 101, 116, 197, 145, 118, 195, 169, 32, 40, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 65, 109, 81, 47, 109, 49,
-			37, 50, 47, 109, 50, 37, 0, 11, 81, 109, 101, 103, 116, 101, 107, 105, 110, 116, 101, 110, 105, 32, 33, 67, 52, 18, 132, 65, 108, 57,
-			72, 10, 6, 15, 107, 108, 55, 81, 108, 47, 50, 37, 0, 11, 81, 104, 97, 108, 108, 103, 97, 116, 110, 105, 32, 26, 67, 52, 18, 132,
-			65, 108, 57, 72, 10, 6, 15, 52, 108, 57, 47, 108, 0, 11, 81, 114, 97, 106, 116, 97, 32, 6, 195, 52, 18, 132, 11, 0, 36, 71,
-			72, 83, 132, 77, 161, 82, 80, 52, 109, 50, 119, 109, 52, 47, 10, 6, 15, 49, 113, 89, 112, 47, 0, 11, 81, 107, 195, 169, 115, 122,
-			195, 173, 116, 32, 10, 199, 36, 225, 193, 80, 192, 78, 80, 11, 10, 199, 72, 83, 132, 77, 161, 82, 80, 11, 6, 195, 82, 132, 148, 11,
-			6, 195, 82, 36, 148, 11, 7, 196, 74, 115, 21, 44, 11, 6, 195, 4, 199, 0, 11, 0, 27, 68, 88, 243, 14, 4, 84, 39, 55, 50,
-			108, 23, 65, 108, 81, 114, 47, 0, 11, 81, 109, 97, 103, 195, 161, 116, 32, 31, 69, 89, 193, 202, 84, 176, 84, 114, 81, 57, 40, 49,
-			10, 6, 15, 90, 109, 71, 52, 109, 0, 11, 81, 122, 115, 101, 98, 114, 101, 32, 22, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108, 23,
-			83, 109, 55, 0, 11, 81, 102, 101, 108, 32, 9, 198, 53, 83, 139, 113, 41, 204, 11, 22, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108,
-			23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 8, 197, 89, 196, 138, 84, 176, 11, 33, 68, 88, 243, 14, 4, 84, 39, 55, 50, 108,
-			23, 65, 109, 81, 23, 118, 49, 109, 47, 0, 11, 82, 109, 101, 103, 32, 197, 145, 107, 101, 116, 32, 32, 68, 88, 243, 14, 4, 84, 39,
-			55, 50, 108, 23, 47, 109, 52, 84, 109, 88, 50, 37, 0, 11, 81, 116, 101, 114, 118, 101, 122, 110, 105, 32, 45, 68, 88, 243, 14, 4,
-			84, 39, 55, 50, 108, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 49, 109, 47, 0, 11, 82, 97, 32, 107, 195, 169, 114, 100, 197,
-			145, 195, 173, 118, 101, 107, 101, 116, 32, 49, 69, 112, 119, 2, 4, 224, 114, 81, 114, 71, 108, 50, 15, 91, 37, 50, 76, 15, 55, 109,
-			76, 109, 52, 113, 55, 50, 37, 0, 11, 82, 115, 105, 110, 99, 115, 32, 108, 101, 99, 115, 101, 114, 195, 169, 108, 110, 105, 32, 5, 194,
-			21, 64, 11, 7, 196, 88, 243, 14, 4, 11, 14, 6, 95, 35, 45, 118, 97, 108, 114, 84, 108, 55, 0, 16, 0, 21, 67, 17, 97, 0,
-			100, 195, 169, 118, 195, 169, 100, 195, 169, 109, 0, 44, 29, 81, 109, 32, 22, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169,
-			116, 0, 44, 29, 42, 81, 109, 32, 22, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 100, 0, 44, 29, 42, 81, 100, 32,
-			21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 100, 0, 44, 29, 81, 100, 32, 21, 67, 17, 97, 0, 100, 195, 169, 118,
-			195, 169, 100, 195, 169, 110, 0, 44, 29, 81, 110, 32, 22, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 110, 0, 44, 29,
-			42, 81, 110, 32, 21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 107, 0, 44, 29, 81, 107, 32, 22, 67, 17, 97, 0,
-			100, 195, 169, 118, 195, 169, 100, 195, 169, 107, 0, 44, 29, 42, 81, 107, 32, 31, 71, 24, 83, 20, 137, 65, 76, 20, 83, 109, 55, 47,
-			113, 47, 109, 55, 109, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 8, 197, 8, 19, 139, 40, 16, 11, 50, 68, 46, 36,
-			148, 20, 49, 113, 52, 47, 109, 10, 6, 15, 83, 109, 55, 23, 65, 116, 55, 47, 10, 6, 15, 107, 113, 47, 109, 50, 0, 11, 83, 102,
-			101, 108, 32, 109, 195, 186, 108, 116, 32, 104, 195, 169, 116, 101, 110, 32, 11, 200, 8, 85, 129, 48, 195, 212, 80, 16, 11, 7, 196, 105,
-			196, 148, 4, 11, 10, 199, 81, 195, 79, 28, 21, 20, 4, 11, 10, 199, 29, 151, 18, 80, 245, 20, 4, 11, 7, 196, 46, 36, 148, 20,
-			11, 9, 198, 46, 85, 156, 56, 52, 201, 11, 7, 196, 89, 196, 148, 4, 11, 8, 197, 52, 243, 132, 80, 16, 11, 0, 8, 197, 54, 33,
-			9, 84, 208, 11, 10, 199, 137, 37, 34, 44, 83, 20, 20, 11, 6, 195, 14, 35, 42, 11, 9, 198, 29, 151, 18, 82, 114, 192, 11, 0,
-			11, 200, 16, 243, 7, 61, 163, 137, 84, 176, 11, 10, 199, 46, 132, 171, 50, 133, 20, 20, 11, 12, 201, 32, 18, 140, 136, 181, 1, 48,
-			19, 148, 11, 11, 200, 112, 195, 1, 52, 242, 194, 4, 224, 11, 0, 13, 138, 101, 108, 197, 145, 102, 111, 114, 100, 117, 108, 11, 10, 199,
-			20, 194, 83, 52, 84, 148, 20, 11, 9, 198, 20, 199, 18, 84, 197, 1, 11, 9, 198, 44, 144, 66, 112, 197, 1, 11, 7, 196, 44, 20,
-			14, 36, 11, 6, 195, 13, 48, 74, 11, 15, 8, 95, 35, 45, 195, 161, 104, 111, 122, 114, 107, 39, 88, 0, 0, 4, 193, 136, 49, 40,
-			69, 20, 195, 5, 56, 144, 109, 55, 12, 109, 50, 37, 23, 83, 109, 55, 12, 113, 48, 113, 91, 52, 109, 0, 11, 81, 102, 101, 108, 108,
-			195, 169, 112, 195, 169, 115, 114, 101, 32, 8, 197, 88, 19, 1, 44, 144, 11, 9, 198, 48, 20, 10, 112, 32, 78, 11, 8, 197, 52, 20,
-			139, 60, 208, 11, 12, 201, 89, 195, 20, 61, 160, 84, 10, 115, 0, 11, 4, 193, 136, 72, 0, 9, 198, 136, 197, 133, 104, 225, 75, 11,
-			47, 70, 112, 195, 10, 4, 224, 75, 114, 57, 57, 108, 50, 108, 49, 23, 52, 109, 50, 72, 109, 55, 49, 109, 88, 113, 91, 52, 109, 0,
-			11, 81, 114, 101, 110, 100, 101, 108, 107, 101, 122, 195, 169, 115, 114, 101, 32, 12, 201, 52, 81, 212, 36, 197, 15, 81, 64, 64, 11, 9,
-			198, 16, 243, 7, 61, 169, 203, 11, 12, 201, 57, 146, 76, 5, 66, 207, 105, 64, 64, 11, 0, 6, 195, 76, 242, 1, 11, 0, 7, 196,
-			32, 148, 218, 36, 11, 6, 195, 48, 83, 142, 11, 0, 24, 67, 20, 118, 64, 109, 79, 23, 49, 37, 91, 12, 109, 71, 0, 11, 81, 107,
-			105, 115, 101, 98, 98, 32, 28, 67, 20, 118, 64, 109, 79, 10, 6, 15, 48, 52, 115, 71, 114, 47, 0, 11, 81, 112, 114, 195, 179, 98,
-			195, 161, 116, 32, 35, 67, 20, 118, 64, 109, 79, 10, 6, 15, 83, 39, 81, 108, 72, 114, 91, 40, 50, 49, 0, 11, 81, 102, 111, 103,
-			97, 100, 195, 161, 115, 117, 110, 107, 32, 37, 67, 20, 118, 64, 109, 79, 23, 107, 108, 57, 55, 113, 49, 47, 108, 55, 108, 50, 47, 0,
-			11, 81, 104, 97, 106, 108, 195, 169, 107, 116, 97, 108, 97, 110, 116, 32, 27, 67, 20, 118, 64, 109, 79, 23, 83, 115, 52, 40, 65, 39,
-			50, 0, 11, 81, 102, 195, 179, 114, 117, 109, 111, 110, 32, 23, 67, 20, 118, 64, 109, 79, 10, 6, 15, 72, 37, 114, 49, 0, 11, 81,
-			100, 105, 195, 161, 107, 32, 25, 67, 20, 118, 64, 109, 79, 10, 6, 15, 83, 113, 52, 83, 37, 0, 11, 81, 102, 195, 169, 114, 102, 105,
-			32, 32, 67, 20, 118, 64, 109, 79, 23, 83, 109, 55, 65, 113, 52, 113, 91, 47, 0, 11, 81, 102, 101, 108, 109, 195, 169, 114, 195, 169,
-			115, 116, 32, 29, 67, 20, 118, 64, 109, 79, 23, 89, 39, 83, 47, 84, 109, 52, 47, 0, 11, 81, 115, 122, 111, 102, 116, 118, 101, 114,
-			116, 32, 38, 67, 20, 118, 64, 109, 79, 23, 112, 52, 114, 91, 47, 40, 72, 108, 47, 55, 108, 50, 0, 11, 81, 195, 173, 114, 195, 161,
-			115, 116, 117, 100, 97, 116, 108, 97, 110, 32, 22, 67, 20, 118, 64, 109, 79, 23, 37, 72, 109, 37, 81, 0, 11, 81, 105, 100, 101, 105,
-			103, 32, 23, 67, 20, 118, 64, 109, 79, 23, 81, 113, 48, 109, 47, 0, 11, 81, 103, 195, 169, 112, 101, 116, 32, 33, 67, 20, 118, 64,
-			109, 79, 23, 89, 108, 71, 108, 72, 50, 108, 48, 52, 108, 0, 11, 81, 115, 122, 97, 98, 97, 100, 110, 97, 112, 114, 97, 32, 8, 197,
-			105, 196, 218, 50, 112, 11, 8, 197, 90, 35, 10, 172, 176, 11, 6, 195, 26, 131, 142, 11, 7, 195, 20, 118, 64, 11, 17, 11, 67, 52,
-			148, 211, 65, 37, 89, 12, 0, 25, 0, 12, 201, 4, 194, 207, 80, 215, 14, 100, 224, 75, 11, 6, 195, 76, 20, 212, 11, 6, 195, 52,
-			244, 212, 11, 0, 20, 67, 4, 201, 204, 108, 55, 115, 55, 10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 8, 197, 81, 81, 20, 84,
-			176, 11, 13, 202, 61, 36, 218, 112, 116, 162, 77, 160, 133, 56, 11, 6, 195, 26, 35, 0, 11, 9, 198, 56, 147, 131, 76, 83, 128, 11,
-			6, 195, 4, 201, 204, 11, 0, 35, 71, 41, 196, 149, 50, 34, 207, 76, 57, 114, 52, 40, 55, 113, 49, 39, 91, 23, 109, 55, 109, 65,
-			109, 49, 0, 11, 81, 101, 108, 101, 109, 101, 107, 32, 23, 70, 32, 83, 25, 104, 85, 0, 107, 109, 57, 88, 109, 47, 23, 108, 88, 0,
-			11, 81, 97, 122, 32, 24, 67, 89, 193, 217, 84, 114, 79, 23, 113, 81, 109, 47, 12, 0, 11, 81, 195, 169, 103, 101, 116, 116, 32, 14,
-			203, 112, 195, 1, 53, 66, 84, 45, 196, 130, 4, 224, 11, 9, 198, 44, 244, 146, 20, 181, 0, 11, 9, 198, 32, 83, 25, 104, 85, 0,
-			11, 9, 198, 88, 145, 217, 113, 163, 137, 11, 9, 198, 80, 82, 5, 80, 82, 192, 11, 6, 195, 89, 193, 217, 11, 12, 5, 95, 35, 45,
-			114, 97, 114, 52, 108, 0, 16, 0, 13, 202, 58, 133, 133, 44, 81, 34, 78, 35, 133, 44, 11, 10, 199, 24, 83, 43, 29, 145, 76, 36,
-			11, 7, 196, 50, 37, 18, 20, 11, 10, 199, 52, 81, 214, 136, 65, 78, 36, 11, 17, 4, 95, 50, 67, 111, 49, 113, 47, 89, 114, 88,
-			108, 72, 37, 49, 0, 0, 54, 73, 80, 85, 162, 44, 83, 153, 78, 33, 192, 47, 109, 84, 113, 49, 109, 67, 91, 113, 81, 23, 49, 110,
-			88, 113, 48, 12, 39, 50, 80, 114, 71, 108, 0, 11, 81, 107, 195, 182, 122, 195, 169, 112, 112, 111, 110, 116, 106, 195, 161, 98, 97, 32,
-			8, 197, 8, 89, 82, 88, 16, 11, 12, 201, 80, 85, 162, 44, 83, 153, 78, 33, 192, 11, 8, 197, 48, 89, 82, 88, 16, 11, 8, 197,
-			77, 169, 204, 88, 16, 11, 7, 195, 52, 147, 148, 102, 11, 7, 195, 52, 147, 148, 11, 23, 0, 9, 134, 102, 197, 145, 110, 101, 107, 11,
-			9, 198, 137, 33, 5, 44, 83, 20, 11, 9, 198, 52, 147, 12, 38, 115, 64, 11, 9, 198, 78, 162, 148, 32, 21, 39, 11, 9, 198, 44,
-			149, 34, 80, 83, 20, 11, 7, 196, 58, 38, 137, 44, 11, 11, 136, 195, 161, 102, 97, 97, 58, 102, 97, 42, 0, 14, 66, 21, 80, 101,
-			117, 110, 0, 44, 29, 42, 81, 110, 32, 38, 71, 20, 197, 156, 72, 128, 84, 156, 109, 55, 84, 114, 52, 107, 108, 47, 115, 23, 89, 109,
-			52, 37, 50, 47, 109, 0, 11, 81, 115, 122, 101, 114, 105, 110, 116, 101, 32, 10, 199, 80, 19, 28, 48, 128, 84, 156, 11, 7, 196, 4,
-			32, 167, 48, 11, 12, 5, 95, 35, 45, 114, 101, 113, 52, 109, 0, 16, 0, 10, 199, 112, 195, 37, 80, 128, 84, 156, 11, 0, 6, 195,
-			44, 83, 12, 11, 24, 67, 44, 83, 12, 49, 109, 55, 12, 23, 84, 109, 50, 12, 37, 0, 11, 81, 118, 101, 110, 110, 105, 32, 28, 67,
-			44, 83, 12, 49, 109, 55, 12, 23, 83, 39, 81, 108, 72, 50, 37, 0, 11, 81, 102, 111, 103, 97, 100, 110, 105, 32, 36, 68, 4, 192,
-			80, 168, 108, 55, 108, 48, 116, 10, 6, 15, 52, 109, 50, 119, 109, 52, 109, 50, 0, 11, 81, 114, 101, 110, 100, 115, 122, 101, 114, 101,
-			110, 32, 9, 198, 40, 241, 220, 88, 19, 0, 11, 25, 67, 44, 83, 12, 49, 109, 55, 12, 23, 49, 110, 47, 50, 37, 0, 11, 81, 107,
-			195, 182, 116, 110, 105, 32, 32, 67, 44, 83, 12, 49, 109, 55, 12, 23, 39, 49, 47, 108, 47, 50, 37, 40, 49, 0, 11, 81, 111, 107,
-			116, 97, 116, 110, 105, 117, 107, 32, 32, 67, 44, 83, 12, 49, 109, 55, 12, 23, 107, 108, 52, 119, 39, 55, 50, 37, 108, 0, 11, 81,
-			104, 97, 114, 99, 111, 108, 110, 105, 97, 32, 10, 199, 84, 69, 129, 73, 192, 129, 56, 11, 7, 196, 4, 192, 80, 168, 11, 9, 198, 44,
-			84, 171, 48, 225, 75, 11, 0, 11, 200, 4, 192, 75, 84, 195, 137, 84, 176, 11, 11, 200, 44, 84, 171, 48, 85, 2, 20, 224, 11, 0,
-			9, 198, 32, 19, 65, 72, 16, 130, 11, 23, 68, 80, 84, 218, 36, 47, 109, 89, 37, 23, 65, 108, 57, 72, 0, 11, 81, 109, 97, 106,
-			100, 32, 31, 71, 81, 81, 15, 53, 196, 213, 48, 47, 40, 72, 39, 65, 114, 91, 40, 55, 23, 49, 109, 55, 12, 0, 11, 81, 107, 101,
-			108, 108, 32, 9, 198, 52, 17, 193, 76, 16, 130, 11, 9, 198, 29, 147, 210, 76, 16, 130, 11, 0, 11, 200, 44, 84, 171, 48, 232, 142,
-			20, 176, 11, 12, 201, 52, 147, 137, 77, 165, 5, 72, 225, 75, 11, 11, 200, 72, 83, 132, 77, 161, 82, 72, 80, 11, 0, 18, 69, 88,
-			68, 218, 77, 160, 84, 113, 72, 113, 109, 89, 109, 89, 0, 42, 42, 0, 17, 142, 98, 105, 99, 105, 107, 108, 105, 122, 197, 145, 107, 110,
-			101, 107, 11, 37, 69, 46, 132, 171, 48, 144, 49, 110, 52, 111, 55, 37, 23, 110, 89, 12, 109, 81, 71, 118, 55, 0, 11, 81, 195, 182,
-			115, 115, 122, 101, 103, 98, 197, 145, 108, 32, 13, 138, 105, 100, 197, 145, 115, 122, 97, 107, 111, 107, 11, 8, 197, 52, 243, 132, 60, 176,
-			11, 8, 197, 28, 243, 132, 60, 176, 11, 0, 7, 195, 48, 84, 218, 72, 17, 53, 11, 99, 115, 197, 145, 100, 106, 195, 169, 110, 101, 107,
-			76, 118, 79, 12, 113, 50, 109, 49, 23, 109, 55, 49, 109, 52, 111, 55, 113, 91, 113, 52, 109, 0, 11, 81, 101, 108, 107, 101, 114, 195,
-			188, 108, 195, 169, 115, 195, 169, 114, 101, 32, 9, 198, 136, 195, 98, 57, 149, 0, 11, 30, 67, 48, 84, 218, 55, 109, 89, 23, 108, 57,
-			114, 50, 55, 39, 47, 12, 0, 11, 81, 97, 106, 195, 161, 110, 108, 111, 116, 116, 32, 27, 67, 136, 197, 0, 113, 55, 47, 6, 23, 91,
-			39, 49, 114, 37, 81, 0, 11, 81, 115, 111, 107, 195, 161, 105, 103, 32, 7, 196, 48, 244, 14, 36, 11, 16, 205, 16, 144, 71, 56, 244,
-			218, 80, 150, 156, 48, 128, 84, 156, 11, 6, 195, 32, 148, 218, 11, 6, 195, 136, 197, 0, 11, 0, 8, 197, 37, 51, 69, 72, 144, 11,
-			5, 194, 4, 224, 72, 15, 66, 28, 32, 81, 37, 81, 108, 71, 114, 57, 47, 0, 42, 42, 0, 10, 199, 46, 131, 20, 78, 33, 226, 80,
-			11, 6, 195, 24, 80, 128, 15, 0, 31, 68, 44, 85, 162, 76, 49, 109, 84, 113, 91, 23, 108, 23, 83, 109, 55, 107, 118, 0, 11, 82,
-			97, 32, 102, 101, 108, 104, 197, 145, 32, 9, 198, 52, 81, 212, 20, 227, 137, 11, 7, 196, 76, 244, 130, 4, 11, 7, 196, 44, 85, 162,
-			76, 11, 0, 9, 198, 44, 85, 133, 74, 34, 197, 11, 32, 69, 4, 176, 82, 40, 16, 108, 49, 108, 52, 57, 108, 23, 107, 108, 57, 47,
-			108, 50, 37, 0, 11, 81, 104, 97, 106, 116, 97, 110, 105, 32, 8, 197, 4, 176, 82, 40, 16, 11, 0, 28, 68, 52, 152, 146, 80, 65,
-			37, 113, 52, 47, 15, 84, 108, 50, 15, 108, 88, 0, 11, 82, 118, 97, 110, 32, 97, 122, 32, 50, 73, 20, 193, 75, 81, 35, 206, 36,
-			181, 83, 109, 55, 109, 49, 47, 52, 39, 50, 37, 49, 40, 91, 23, 84, 114, 55, 47, 39, 88, 108, 47, 114, 47, 0, 11, 81, 118, 195,
-			161, 108, 116, 111, 122, 97, 116, 195, 161, 116, 32, 22, 68, 52, 152, 146, 80, 65, 37, 113, 52, 47, 15, 50, 109, 65, 0, 11, 81, 110,
-			101, 109, 32, 13, 138, 98, 97, 106, 107, 101, 118, 101, 114, 197, 145, 11, 9, 134, 109, 197, 177, 118, 101, 108, 11, 9, 198, 80, 20, 148,
-			4, 231, 0, 11, 6, 195, 24, 80, 146, 15, 9, 198, 53, 196, 131, 37, 84, 192, 15, 0, 9, 134, 110, 197, 145, 110, 101, 107, 11, 57,
-			10, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 49, 113, 52, 72, 118, 112, 84, 23, 84, 113, 55, 109, 65, 113, 67, 109, 88, 113, 91,
-			113, 52, 109, 0, 11, 81, 118, 195, 169, 108, 101, 109, 195, 169, 110, 121, 101, 122, 195, 169, 115, 195, 169, 114, 101, 32, 8, 197, 28, 22,
-			132, 4, 112, 11, 7, 196, 73, 194, 149, 44, 11, 11, 67, 80, 16, 128, 47, 108, 71, 0, 42, 42, 0, 7, 196, 26, 35, 19, 104, 11,
-			0, 22, 69, 20, 209, 76, 80, 80, 109, 65, 109, 55, 47, 109, 23, 49, 37, 0, 11, 81, 107, 105, 32, 9, 198, 32, 20, 218, 57, 195,
-			4, 11, 11, 200, 56, 85, 82, 60, 201, 199, 85, 48, 11, 11, 200, 44, 145, 15, 48, 115, 218, 80, 16, 11, 9, 198, 48, 20, 20, 61,
-			3, 203, 11, 6, 195, 32, 19, 11, 11, 6, 195, 41, 196, 148, 11, 12, 67, 57, 54, 139, 109, 50, 109, 89, 49, 114, 0, 0, 22, 66,
-			25, 64, 83, 39, 52, 37, 50, 47, 12, 115, 55, 0, 44, 11, 81, 116, 195, 179, 108, 32, 21, 66, 25, 64, 83, 39, 52, 37, 50, 47,
-			50, 108, 49, 0, 44, 11, 81, 110, 97, 107, 32, 19, 66, 25, 64, 83, 39, 52, 37, 50, 47, 71, 108, 0, 44, 11, 81, 98, 97, 32,
-			19, 66, 25, 64, 83, 39, 52, 37, 50, 47, 39, 47, 0, 44, 11, 81, 111, 116, 32, 21, 66, 25, 64, 83, 39, 52, 37, 50, 47, 12,
-			108, 55, 0, 44, 11, 81, 116, 97, 108, 32, 12, 66, 25, 64, 83, 39, 52, 37, 50, 47, 0, 11, 9, 198, 48, 18, 206, 112, 224, 75,
-			11, 6, 195, 149, 35, 203, 11, 11, 200, 80, 20, 218, 149, 67, 212, 80, 16, 11, 14, 6, 95, 35, 45, 118, 101, 108, 113, 84, 109, 55,
-			0, 16, 0, 0, 10, 199, 40, 21, 129, 76, 243, 20, 4, 11, 19, 144, 116, 101, 108, 106, 101, 115, 195, 173, 116, 109, 195, 169, 110, 121,
-			197, 177, 11, 0, 12, 201, 88, 148, 218, 60, 230, 85, 48, 224, 75, 11, 8, 197, 20, 209, 76, 56, 144, 11, 11, 200, 77, 167, 13, 149,
-			64, 78, 4, 176, 11, 11, 200, 36, 229, 34, 104, 85, 2, 20, 224, 11, 10, 199, 20, 211, 37, 80, 85, 20, 20, 11, 0, 11, 200, 32,
-			246, 154, 113, 65, 84, 80, 80, 11, 9, 198, 20, 165, 5, 81, 72, 139, 11, 0, 13, 202, 88, 243, 149, 48, 128, 84, 57, 195, 129, 44,
-			11, 9, 198, 80, 84, 141, 136, 33, 78, 11, 7, 195, 56, 242, 1, 72, 8, 17, 10, 95, 35, 45, 105, 107, 195, 169, 110, 101, 107, 113,
-			50, 109, 49, 0, 0, 12, 201, 24, 82, 140, 21, 54, 148, 137, 56, 142, 11, 12, 201, 8, 81, 143, 49, 151, 19, 60, 197, 1, 11, 9,
-			198, 46, 134, 168, 81, 66, 64, 11, 7, 196, 52, 83, 142, 36, 11, 0, 40, 69, 56, 85, 133, 104, 144, 50, 109, 84, 109, 88, 37, 23,
-			47, 40, 55, 108, 57, 72, 39, 50, 39, 91, 108, 0, 11, 81, 116, 117, 108, 97, 106, 100, 111, 110, 111, 115, 97, 32, 9, 198, 81, 81,
-			8, 5, 73, 192, 11, 9, 198, 84, 118, 65, 56, 22, 128, 11, 8, 197, 40, 81, 217, 20, 144, 11, 0, 19, 66, 32, 16, 107, 108, 23,
-			49, 109, 55, 12, 0, 11, 81, 107, 101, 108, 108, 32, 9, 198, 61, 54, 148, 32, 21, 39, 11, 9, 198, 29, 144, 75, 61, 34, 64, 11,
-			6, 194, 32, 16, 72, 8, 0, 20, 67, 24, 83, 0, 83, 109, 55, 10, 6, 15, 52, 114, 0, 11, 81, 114, 195, 161, 32, 30, 67, 24,
-			83, 0, 83, 109, 55, 23, 108, 6, 15, 91, 39, 52, 71, 108, 50, 0, 11, 82, 97, 32, 115, 111, 114, 98, 97, 110, 32, 9, 198, 24,
-			83, 12, 20, 195, 137, 11, 30, 67, 24, 83, 0, 83, 109, 55, 23, 108, 23, 55, 109, 84, 109, 81, 118, 0, 11, 82, 97, 32, 108, 101,
-			118, 101, 103, 197, 145, 32, 6, 195, 32, 19, 0, 11, 6, 195, 77, 71, 2, 11, 6, 195, 24, 83, 0, 11, 0, 10, 199, 24, 83, 153,
-			20, 113, 84, 36, 11, 9, 198, 90, 37, 5, 50, 37, 0, 11, 9, 198, 41, 196, 150, 112, 230, 64, 11, 6, 195, 13, 48, 80, 11, 9,
-			198, 77, 163, 205, 8, 21, 0, 15, 0, 6, 195, 4, 73, 192, 11, 7, 196, 10, 86, 150, 4, 11, 6, 195, 32, 21, 0, 11, 7, 196,
-			81, 197, 146, 4, 11, 0, 19, 68, 56, 147, 131, 76, 50, 37, 50, 76, 23, 37, 91, 0, 11, 81, 105, 115, 32, 37, 67, 30, 36, 0,
-			81, 113, 48, 23, 83, 39, 79, 108, 89, 47, 114, 91, 114, 47, 0, 11, 81, 102, 111, 103, 121, 97, 115, 122, 116, 195, 161, 115, 195, 161,
-			116, 32, 7, 196, 56, 147, 131, 76, 11, 6, 195, 30, 36, 0, 11, 0, 20, 68, 4, 178, 207, 72, 108, 49, 12, 39, 52, 23, 37, 91,
-			0, 11, 81, 105, 115, 32, 7, 196, 4, 178, 207, 72, 11, 12, 201, 32, 83, 25, 78, 33, 197, 44, 85, 0, 11, 6, 195, 84, 227, 137,
-			11, 11, 67, 80, 18, 128, 47, 108, 57, 0, 42, 42, 0, 10, 199, 65, 35, 196, 84, 49, 82, 20, 11, 0, 9, 198, 32, 21, 28, 77,
-			82, 192, 11, 9, 198, 32, 20, 218, 57, 195, 20, 11, 7, 196, 57, 145, 76, 80, 11, 0, 34, 70, 80, 83, 10, 21, 49, 78, 47, 109,
-			55, 57, 109, 91, 109, 50, 23, 107, 111, 57, 113, 50, 0, 11, 81, 104, 195, 188, 108, 121, 195, 169, 110, 32, 7, 196, 21, 164, 133, 76,
-			11, 29, 68, 5, 69, 39, 48, 108, 47, 12, 115, 55, 10, 6, 15, 83, 113, 55, 50, 37, 0, 11, 81, 102, 195, 169, 108, 110, 105, 32,
-			7, 196, 5, 69, 39, 48, 11, 0, 9, 198, 37, 35, 196, 113, 32, 64, 11, 12, 201, 24, 83, 20, 137, 65, 76, 20, 149, 0, 11, 11,
-			200, 52, 243, 132, 32, 21, 10, 84, 176, 11, 14, 67, 29, 51, 64, 81, 113, 109, 91, 109, 65, 0, 42, 42, 0, 0, 9, 198, 24, 83,
-			28, 73, 32, 76, 11, 58, 71, 80, 84, 171, 48, 85, 18, 20, 47, 109, 52, 111, 55, 109, 47, 52, 109, 10, 6, 15, 37, 91, 10, 6,
-			15, 49, 39, 50, 119, 109, 50, 47, 52, 114, 55, 50, 37, 0, 11, 82, 105, 115, 32, 107, 111, 110, 99, 101, 110, 116, 114, 195, 161, 108,
-			110, 105, 32, 25, 67, 25, 85, 0, 83, 40, 47, 10, 6, 15, 52, 108, 57, 47, 108, 0, 11, 81, 114, 97, 106, 116, 97, 32, 11, 200,
-			24, 83, 153, 20, 113, 84, 88, 80, 11, 10, 199, 137, 10, 204, 21, 64, 133, 56, 11, 8, 197, 60, 193, 1, 56, 144, 11, 8, 197, 60,
-			193, 1, 56, 144, 11, 6, 195, 25, 85, 0, 11, 6, 195, 25, 194, 192, 11, 7, 196, 57, 151, 18, 36, 15, 0, 12, 201, 77, 160, 66,
-			4, 67, 129, 65, 32, 64, 11, 9, 198, 80, 82, 5, 80, 232, 139, 11, 0, 17, 67, 77, 169, 86, 89, 112, 84, 23, 109, 55, 0, 11,
-			81, 101, 108, 32, 10, 199, 77, 167, 13, 149, 67, 212, 80, 11, 6, 195, 8, 83, 128, 72, 0, 26, 70, 88, 86, 133, 80, 146, 192, 84,
-			109, 88, 109, 47, 37, 49, 10, 6, 15, 109, 55, 0, 11, 81, 101, 108, 32, 14, 139, 118, 101, 122, 101, 116, 197, 145, 107, 110, 101, 107,
-			11, 6, 195, 137, 35, 137, 11, 0, 10, 199, 17, 39, 7, 112, 32, 129, 56, 11, 11, 200, 32, 21, 39, 77, 193, 206, 4, 176, 11, 8,
-			197, 21, 54, 139, 161, 160, 11, 15, 204, 20, 208, 133, 73, 71, 18, 76, 18, 75, 56, 18, 192, 11, 42, 6, 108, 195, 169, 118, 197, 145,
-			55, 113, 84, 118, 107, 108, 91, 39, 50, 55, 115, 91, 114, 81, 39, 47, 0, 11, 81, 104, 97, 115, 111, 110, 108, 195, 179, 115, 195, 161,
-			103, 111, 116, 32, 9, 134, 108, 195, 169, 118, 197, 145, 11, 8, 197, 20, 165, 5, 56, 144, 11, 0, 9, 198, 32, 83, 25, 21, 162, 64,
-			11, 9, 198, 40, 83, 5, 57, 66, 64, 11, 0, 9, 198, 18, 131, 148, 137, 56, 148, 11, 11, 200, 89, 195, 1, 77, 165, 34, 44, 16,
-			11, 6, 195, 88, 84, 128, 11, 12, 201, 20, 197, 156, 73, 196, 207, 44, 224, 75, 11, 10, 199, 88, 86, 133, 82, 36, 226, 80, 11, 13,
-			202, 44, 243, 131, 20, 229, 18, 112, 195, 129, 44, 11, 8, 197, 64, 243, 148, 60, 176, 11, 10, 4, 95, 49, 48, 101, 47, 37, 88, 0,
-			0, 9, 198, 8, 84, 218, 136, 197, 0, 11, 9, 198, 8, 84, 218, 136, 197, 0, 11, 9, 198, 8, 84, 218, 136, 197, 0, 11, 7, 132,
-			116, 197, 145, 108, 11, 0, 11, 200, 20, 120, 147, 105, 56, 135, 137, 64, 11, 33, 68, 52, 17, 193, 16, 65, 108, 81, 108, 72, 23, 109,
-			79, 109, 50, 109, 91, 109, 50, 0, 11, 81, 101, 103, 121, 101, 110, 101, 115, 101, 110, 32, 9, 198, 32, 17, 10, 113, 32, 84, 11, 8,
-			133, 101, 108, 197, 145, 108, 11, 9, 198, 90, 35, 5, 54, 35, 153, 11, 8, 133, 101, 108, 197, 145, 108, 11, 7, 196, 52, 17, 193, 16,
-			11, 8, 133, 101, 108, 197, 145, 108, 11, 0, 17, 142, 103, 121, 197, 177, 114, 197, 145, 100, 195, 169, 115, 101, 105, 116, 11, 9, 198, 44,
-			244, 156, 10, 115, 0, 11, 12, 201, 20, 194, 5, 49, 145, 90, 137, 56, 148, 11, 7, 196, 37, 39, 14, 80, 11, 9, 195, 28, 68, 0,
-			102, 13, 42, 42, 14, 67, 28, 68, 0, 75, 112, 72, 112, 48, 112, 0, 42, 42, 0, 11, 200, 37, 39, 14, 102, 85, 1, 56, 144, 11,
-			11, 200, 8, 87, 12, 50, 85, 1, 56, 144, 11, 0, 6, 195, 72, 83, 132, 11, 6, 195, 28, 243, 132, 11, 6, 195, 28, 243, 132, 11,
-			9, 198, 28, 243, 132, 60, 197, 0, 11, 6, 195, 52, 243, 132, 11, 7, 132, 114, 197, 145, 108, 11, 0, 12, 3, 226, 132, 162, 84, 113,
-			72, 57, 109, 79, 0, 35, 70, 44, 86, 132, 20, 225, 75, 49, 109, 88, 72, 109, 50, 109, 49, 6, 23, 37, 52, 114, 50, 47, 108, 0,
-			11, 81, 105, 114, 195, 161, 110, 116, 97, 32, 10, 199, 77, 168, 140, 50, 130, 226, 76, 11, 12, 201, 50, 37, 5, 78, 85, 13, 136, 230,
-			64, 11, 9, 198, 80, 82, 5, 80, 225, 75, 11, 9, 198, 48, 82, 5, 80, 225, 75, 11, 0, 7, 66, 17, 160, 120, 113, 0, 13, 202,
-			52, 81, 214, 4, 201, 211, 149, 64, 78, 36, 11, 30, 67, 21, 161, 82, 109, 88, 109, 52, 23, 83, 39, 52, 37, 50, 47, 39, 47, 0,
-			11, 81, 102, 111, 114, 105, 110, 116, 111, 116, 32, 26, 67, 21, 161, 82, 109, 88, 109, 52, 23, 83, 39, 52, 37, 50, 47, 0, 11, 81,
-			102, 111, 114, 105, 110, 116, 32, 9, 198, 29, 145, 78, 30, 35, 128, 11, 0, 12, 201, 161, 52, 218, 20, 106, 199, 30, 36, 192, 11, 6,
-			195, 8, 83, 5, 11, 6, 195, 73, 195, 64, 11, 6, 195, 73, 195, 64, 11, 0, 12, 201, 72, 83, 132, 20, 194, 197, 104, 146, 192, 11,
-			11, 136, 116, 101, 114, 118, 98, 197, 145, 108, 11, 0, 9, 198, 48, 85, 20, 21, 65, 75, 11, 40, 68, 60, 193, 1, 48, 39, 55, 72,
-			108, 55, 23, 109, 55, 49, 113, 89, 112, 47, 113, 91, 109, 0, 11, 81, 101, 108, 107, 195, 169, 115, 122, 195, 173, 116, 195, 169, 115, 101,
-			32, 7, 196, 60, 193, 1, 48, 11, 6, 195, 77, 169, 212, 11, 0, 9, 198, 20, 197, 162, 29, 162, 75, 11, 9, 198, 60, 197, 129, 77,
-			55, 11, 11, 10, 199, 20, 118, 77, 113, 52, 193, 48, 11, 0, 6, 195, 4, 67, 129, 11, 12, 201, 32, 19, 12, 5, 68, 218, 61, 69,
-			0, 11, 23, 67, 96, 149, 128, 47, 37, 88, 109, 50, 50, 113, 79, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 0, 16, 141, 107,
-			195, 188, 108, 102, 195, 182, 108, 100, 114, 197, 145, 108, 11, 24, 68, 36, 225, 21, 48, 37, 50, 72, 40, 55, 23, 65, 108, 57, 72, 0,
-			11, 81, 109, 97, 106, 100, 32, 38, 68, 36, 225, 21, 48, 37, 50, 72, 40, 55, 23, 108, 6, 15, 83, 109, 55, 107, 118, 88, 109, 47,
-			0, 11, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 9, 198, 49, 197, 20, 84, 226, 192, 11, 6, 195, 34, 164, 212, 11,
-			0, 47, 14, 115, 122, 111, 102, 116, 118, 101, 114, 101, 107, 114, 197, 145, 108, 89, 39, 83, 47, 84, 109, 52, 109, 49, 52, 118, 55, 23,
-			84, 108, 50, 23, 89, 115, 0, 11, 82, 118, 97, 110, 32, 115, 122, 195, 179, 32, 17, 142, 103, 121, 195, 179, 103, 121, 115, 122, 101, 114,
-			98, 197, 145, 108, 11, 10, 199, 77, 160, 75, 61, 37, 143, 76, 11, 7, 196, 48, 81, 231, 80, 11, 6, 195, 24, 83, 142, 11, 5, 194,
-			20, 144, 72, 21, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 47, 0, 44, 11, 81, 116, 32, 23, 66, 12, 208, 119, 109,
-			50, 47, 37, 65, 113, 47, 109, 52, 109, 91, 0, 44, 11, 81, 101, 115, 32, 24, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109,
-			52, 67, 37, 0, 44, 11, 81, 110, 121, 105, 32, 28, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 67, 37, 52, 109, 0,
-			44, 11, 81, 110, 121, 105, 114, 101, 32, 23, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 52, 109, 0, 44, 11, 81, 114,
-			101, 32, 16, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 0, 11, 12, 5, 95, 35, 45, 105, 103, 113, 37, 81, 0, 16,
-			0, 9, 198, 48, 84, 218, 60, 179, 137, 11, 9, 198, 81, 196, 147, 5, 55, 7, 11, 9, 198, 64, 20, 148, 148, 50, 103, 11, 6, 195,
-			18, 163, 0, 11, 0, 39, 67, 136, 116, 133, 113, 81, 52, 109, 23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 11, 81, 115,
-			122, 195, 161, 109, 195, 173, 116, 104, 97, 116, 117, 110, 107, 32, 26, 70, 24, 150, 133, 80, 81, 0, 83, 37, 88, 109, 47, 109, 72, 15,
-			65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 6, 195, 64, 84, 212, 11, 0, 7, 196, 16, 149, 129, 80, 11, 7, 196, 41, 196, 142, 4,
-			11, 6, 195, 34, 37, 0, 11, 0, 15, 204, 64, 20, 129, 56, 52, 206, 60, 180, 220, 29, 197, 0, 11, 9, 198, 48, 82, 5, 82, 179,
-			139, 11, 9, 5, 95, 35, 45, 105, 107, 15, 0, 0, 42, 73, 57, 146, 76, 89, 195, 143, 77, 55, 7, 67, 37, 55, 84, 114, 50, 39,
-			91, 12, 114, 81, 23, 89, 114, 65, 114, 52, 108, 0, 11, 81, 115, 122, 195, 161, 109, 195, 161, 114, 97, 32, 9, 198, 25, 85, 20, 5,
-			66, 129, 11, 10, 135, 109, 101, 108, 108, 197, 145, 108, 11, 15, 4, 95, 49, 48, 113, 47, 37, 88, 109, 72, 37, 49, 109, 0, 0, 8,
-			197, 49, 197, 20, 84, 176, 11, 9, 198, 4, 167, 14, 48, 21, 0, 11, 0, 11, 200, 88, 243, 129, 80, 179, 218, 56, 16, 11, 9, 198,
-			52, 241, 5, 48, 193, 75, 11, 7, 196, 77, 161, 80, 80, 15, 0, 9, 198, 80, 84, 133, 52, 33, 78, 11, 9, 198, 48, 83, 11, 137,
-			54, 128, 11, 8, 197, 41, 196, 148, 4, 208, 11, 0, 47, 70, 80, 17, 202, 4, 148, 129, 47, 108, 81, 57, 108, 37, 52, 108, 23, 84,
-			39, 50, 108, 47, 49, 39, 88, 12, 108, 50, 108, 49, 0, 11, 81, 118, 111, 110, 97, 116, 107, 111, 122, 122, 97, 110, 97, 107, 32, 9,
-			198, 29, 144, 78, 168, 160, 64, 11, 9, 198, 24, 244, 141, 112, 160, 64, 11, 11, 200, 90, 33, 5, 44, 86, 133, 81, 64, 11, 10, 199,
-			49, 197, 19, 104, 245, 15, 44, 11, 0, 9, 198, 77, 167, 13, 60, 212, 129, 11, 12, 137, 107, 101, 122, 101, 108, 197, 145, 106, 101, 11,
-			0, 38, 10, 108, 101, 104, 101, 116, 197, 145, 118, 195, 169, 55, 109, 107, 109, 47, 118, 84, 113, 23, 47, 113, 47, 109, 55, 109, 0, 11,
-			81, 116, 195, 169, 116, 101, 108, 101, 32, 36, 10, 108, 101, 104, 101, 116, 197, 145, 118, 195, 169, 55, 109, 107, 109, 47, 118, 84, 113, 23,
-			47, 109, 50, 12, 113, 0, 11, 81, 116, 101, 110, 110, 195, 169, 32, 10, 199, 44, 244, 136, 5, 71, 18, 4, 11, 7, 196, 82, 36, 142,
-			36, 11, 9, 198, 44, 84, 133, 77, 65, 75, 11, 11, 200, 20, 195, 28, 82, 114, 206, 4, 176, 11, 10, 199, 24, 83, 5, 41, 65, 84,
-			80, 11, 10, 199, 77, 161, 82, 21, 1, 76, 80, 11, 14, 4, 95, 49, 48, 111, 47, 37, 88, 109, 72, 37, 49, 0, 0, 7, 196, 52,
-			17, 213, 44, 11, 0, 28, 69, 4, 176, 82, 60, 176, 108, 49, 108, 52, 39, 49, 23, 55, 109, 50, 12, 37, 0, 11, 81, 108, 101, 110,
-			110, 105, 32, 9, 198, 77, 167, 12, 48, 226, 64, 11, 9, 198, 20, 195, 28, 80, 226, 64, 11, 9, 198, 90, 33, 197, 104, 226, 64, 11,
-			9, 198, 44, 146, 168, 56, 226, 64, 11, 0, 15, 204, 88, 148, 211, 104, 21, 34, 74, 36, 226, 88, 83, 0, 11, 19, 68, 46, 131, 153,
-			88, 49, 110, 67, 84, 23, 37, 91, 0, 11, 81, 105, 115, 32, 10, 199, 18, 132, 168, 52, 42, 12, 80, 11, 12, 201, 33, 195, 39, 104,
-			21, 15, 44, 32, 64, 11, 7, 196, 88, 83, 5, 52, 11, 7, 196, 29, 32, 77, 52, 11, 0, 11, 200, 8, 84, 218, 21, 33, 90, 56,
-			144, 11, 9, 198, 4, 194, 193, 48, 208, 83, 11, 13, 202, 46, 36, 218, 172, 200, 139, 20, 147, 133, 44, 11, 8, 133, 197, 145, 107, 101,
-			116, 11, 0, 24, 70, 82, 132, 150, 136, 230, 84, 47, 110, 52, 84, 113, 67, 47, 23, 37, 91, 0, 11, 81, 105, 115, 32, 9, 198, 82,
-			132, 150, 136, 230, 84, 11, 43, 70, 161, 52, 218, 20, 120, 148, 110, 89, 12, 109, 81, 113, 47, 23, 83, 109, 55, 47, 111, 50, 47, 109,
-			91, 12, 109, 0, 11, 81, 102, 101, 108, 116, 195, 188, 110, 116, 101, 115, 115, 101, 32, 6, 195, 18, 82, 128, 11, 9, 198, 32, 148, 132,
-			21, 66, 64, 11, 0, 9, 198, 46, 36, 132, 137, 56, 148, 11, 29, 70, 136, 164, 218, 4, 176, 64, 113, 57, 89, 108, 49, 108, 10, 6,
-			15, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 9, 198, 36, 120, 142, 102, 179, 139, 11, 6, 195, 60, 64, 64, 11, 6, 195,
-			157, 39, 19, 11, 6, 195, 60, 64, 64, 11, 7, 196, 53, 194, 149, 76, 15, 0, 11, 200, 161, 54, 148, 160, 230, 162, 76, 80, 11, 11,
-			200, 78, 36, 171, 50, 34, 197, 57, 144, 11, 9, 198, 24, 150, 133, 82, 36, 197, 11, 16, 141, 107, 195, 188, 108, 195, 182, 110, 98, 195,
-			182, 122, 197, 145, 11, 9, 198, 52, 243, 132, 81, 82, 192, 11, 6, 195, 18, 178, 0, 11, 0, 22, 3, 226, 128, 166, 10, 48, 2, 39,
-			50, 47, 48, 2, 39, 50, 47, 48, 2, 39, 50, 47, 0, 40, 70, 29, 144, 75, 72, 19, 128, 79, 108, 49, 52, 108, 50, 23, 55, 109,
-			89, 23, 113, 55, 113, 50, 49, 0, 11, 82, 108, 101, 115, 122, 32, 195, 169, 108, 195, 169, 110, 107, 32, 9, 198, 41, 197, 19, 104, 128,
-			84, 11, 16, 141, 109, 197, 177, 107, 195, 182, 100, 195, 169, 115, 195, 169, 116, 11, 6, 195, 20, 165, 0, 11, 6, 195, 29, 198, 148, 11,
-			0, 7, 196, 29, 154, 138, 80, 11, 7, 196, 57, 154, 138, 80, 11, 0, 18, 8, 95, 98, 114, 97, 105, 108, 108, 101, 71, 52, 108, 37,
-			55, 12, 109, 0, 11, 200, 44, 148, 18, 156, 39, 12, 56, 144, 11, 27, 68, 53, 196, 201, 44, 65, 114, 91, 37, 49, 10, 6, 15, 47,
-			113, 65, 108, 0, 11, 81, 116, 195, 169, 109, 97, 32, 15, 140, 101, 103, 121, 195, 169, 114, 116, 101, 108, 109, 197, 177, 11, 12, 201, 80,
-			83, 10, 21, 57, 84, 137, 56, 148, 11, 12, 201, 137, 54, 146, 21, 104, 148, 20, 197, 0, 11, 0, 14, 203, 44, 149, 5, 72, 161, 83,
-			105, 72, 147, 137, 64, 11, 8, 197, 4, 73, 196, 36, 176, 11, 6, 195, 52, 147, 132, 11, 6, 195, 24, 83, 34, 11, 0, 11, 200, 46,
-			36, 218, 172, 200, 139, 21, 64, 11, 40, 9, 118, 101, 118, 197, 145, 107, 107, 101, 108, 84, 109, 84, 118, 49, 12, 109, 55, 23, 49, 110,
-			47, 109, 50, 72, 118, 0, 11, 81, 107, 195, 182, 116, 101, 110, 100, 197, 145, 32, 12, 137, 115, 122, 101, 114, 118, 116, 197, 145, 108, 11,
-			11, 200, 46, 36, 218, 172, 200, 139, 21, 64, 11, 0, 27, 66, 21, 160, 109, 88, 10, 6, 15, 84, 108, 55, 108, 65, 37, 47, 0, 11,
-			81, 118, 97, 108, 97, 109, 105, 116, 32, 15, 66, 21, 160, 109, 88, 23, 108, 88, 0, 11, 81, 97, 122, 32, 35, 66, 21, 160, 109, 88,
-			10, 6, 15, 108, 6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 11, 82, 97, 32, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 16,
-			205, 32, 20, 218, 57, 195, 8, 5, 64, 84, 48, 19, 142, 112, 11, 12, 201, 56, 82, 34, 105, 56, 135, 20, 177, 84, 11, 5, 194, 21,
-			160, 11, 0, 10, 3, 226, 130, 172, 109, 40, 52, 39, 0, 6, 195, 24, 83, 5, 11, 11, 200, 88, 148, 197, 48, 177, 68, 36, 176, 11,
-			11, 200, 88, 148, 197, 48, 177, 68, 36, 176, 11, 6, 195, 88, 83, 5, 11, 0, 11, 136, 116, 101, 114, 118, 114, 197, 145, 108, 11, 9,
-			198, 5, 39, 14, 101, 197, 0, 11, 14, 5, 95, 50, 77, 49, 101, 49, 113, 47, 109, 88, 52, 0, 0, 19, 67, 21, 165, 0, 109, 89,
-			47, 10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 8, 197, 44, 243, 79, 49, 144, 11, 21, 67, 21, 165, 0, 109, 89, 47, 23, 49,
-			109, 55, 12, 0, 11, 81, 107, 101, 108, 108, 32, 11, 200, 40, 83, 5, 57, 65, 84, 80, 80, 11, 9, 198, 48, 81, 217, 20, 225, 75,
-			11, 7, 196, 73, 198, 142, 36, 11, 7, 196, 41, 196, 142, 36, 11, 6, 195, 21, 165, 0, 11, 0, 9, 198, 44, 81, 22, 138, 36, 148,
-			11, 8, 197, 89, 195, 14, 36, 16, 11, 12, 137, 114, 101, 110, 100, 101, 108, 197, 145, 107, 11, 13, 138, 106, 195, 182, 118, 197, 145, 114,
-			197, 145, 108, 11, 13, 202, 57, 146, 76, 5, 66, 207, 104, 21, 15, 44, 11, 8, 197, 5, 39, 14, 100, 16, 11, 0, 7, 196, 149, 39,
-			19, 80, 11, 12, 201, 61, 4, 133, 56, 68, 218, 21, 37, 0, 11, 6, 195, 41, 196, 167, 11, 14, 139, 114, 195, 169, 115, 122, 101, 109,
-			114, 197, 145, 108, 11, 13, 138, 107, 195, 182, 116, 104, 101, 116, 197, 145, 107, 11, 6, 195, 80, 17, 192, 11, 0, 14, 139, 107, 101, 122,
-			101, 108, 104, 101, 116, 197, 145, 107, 11, 11, 5, 95, 48, 77, 49, 101, 109, 88, 52, 0, 0, 11, 200, 76, 84, 139, 20, 229, 5, 56,
-			144, 11, 27, 71, 44, 21, 5, 30, 116, 137, 4, 49, 108, 47, 109, 81, 115, 52, 37, 108, 23, 37, 91, 0, 11, 81, 105, 115, 32, 10,
-			199, 44, 21, 5, 30, 116, 137, 4, 11, 15, 140, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197, 145, 107, 11, 0, 32, 70, 20, 195, 162,
-			106, 36, 212, 109, 55, 50, 113, 88, 113, 91, 47, 23, 49, 113, 52, 109, 49, 0, 11, 81, 107, 195, 169, 114, 101, 107, 32, 9, 198, 28,
-			22, 132, 5, 55, 7, 11, 17, 142, 115, 122, 101, 109, 101, 116, 101, 115, 101, 107, 98, 197, 145, 108, 11, 10, 199, 41, 85, 20, 5, 71,
-			19, 80, 11, 6, 195, 77, 39, 3, 11, 0, 18, 143, 101, 108, 116, 197, 177, 110, 195, 169, 115, 195, 169, 114, 197, 145, 108, 11, 6, 195,
-			26, 131, 0, 11, 6, 195, 56, 82, 192, 11, 0, 29, 67, 61, 37, 20, 111, 101, 114, 114, 116, 195, 169, 116, 195, 169, 116, 197, 145, 108,
-			0, 44, 29, 42, 81, 116, 197, 145, 108, 32, 6, 195, 90, 37, 133, 11, 5, 194, 157, 48, 72, 8, 195, 61, 37, 20, 13, 42, 42, 0,
-			7, 196, 10, 86, 154, 4, 11, 39, 68, 54, 113, 10, 4, 65, 115, 79, 12, 108, 23, 65, 109, 81, 84, 114, 55, 47, 39, 88, 37, 49,
-			0, 11, 81, 109, 101, 103, 118, 195, 161, 108, 116, 111, 122, 105, 107, 32, 6, 195, 21, 50, 75, 11, 6, 195, 77, 168, 140, 11, 6, 195,
-			46, 134, 162, 11, 13, 4, 95, 111, 103, 111, 107, 39, 52, 81, 39, 49, 0, 0, 14, 203, 52, 81, 201, 56, 73, 84, 113, 55, 34, 73,
-			64, 11, 11, 200, 172, 193, 40, 30, 35, 34, 77, 64, 11, 9, 198, 20, 197, 34, 74, 36, 212, 11, 13, 7, 95, 35, 45, 195, 169, 114,
-			101, 113, 52, 109, 0, 18, 5, 95, 50, 77, 49, 111, 49, 113, 47, 109, 88, 52, 109, 72, 37, 49, 0, 0, 45, 70, 72, 81, 199, 20,
-			196, 133, 52, 109, 81, 12, 109, 55, 52, 36, 23, 113, 71, 52, 109, 72, 107, 109, 47, 111, 50, 49, 0, 11, 81, 195, 169, 98, 114, 101,
-			100, 104, 101, 116, 195, 188, 110, 107, 32, 35, 70, 72, 81, 199, 20, 196, 133, 52, 109, 81, 12, 109, 55, 52, 109, 23, 65, 109, 81, 107,
-			108, 55, 47, 0, 11, 81, 109, 101, 103, 104, 97, 108, 116, 32, 22, 147, 107, 97, 114, 108, 101, 110, 100, 195, 173, 116, 195, 169, 115, 101,
-			107, 98, 197, 145, 108, 11, 12, 201, 137, 37, 5, 48, 209, 90, 58, 179, 139, 11, 9, 198, 44, 149, 34, 74, 179, 139, 11, 8, 197, 24,
-			243, 148, 61, 48, 11, 0, 9, 198, 78, 36, 148, 20, 232, 128, 11, 66, 78, 4, 176, 68, 112, 198, 77, 20, 229, 5, 78, 85, 34, 76,
-			144, 108, 49, 108, 72, 114, 57, 65, 109, 50, 47, 109, 91, 112, 47, 113, 91, 37, 10, 6, 15, 109, 55, 84, 114, 52, 114, 91, 39, 49,
-			50, 108, 49, 0, 11, 81, 101, 108, 118, 195, 161, 114, 195, 161, 115, 111, 107, 110, 97, 107, 32, 43, 70, 112, 195, 1, 64, 245, 0, 114,
-			55, 12, 108, 48, 39, 47, 23, 57, 108, 84, 112, 47, 114, 91, 114, 52, 108, 0, 11, 81, 106, 97, 118, 195, 173, 116, 195, 161, 115, 195,
-			161, 114, 97, 32, 31, 68, 20, 120, 147, 104, 109, 81, 113, 89, 23, 49, 109, 55, 12, 109, 65, 109, 91, 0, 11, 81, 107, 101, 108, 108,
-			101, 109, 101, 115, 32, 9, 198, 76, 84, 133, 30, 37, 0, 11, 10, 199, 52, 81, 205, 60, 225, 10, 4, 11, 6, 195, 21, 49, 84, 11,
-			9, 198, 112, 195, 1, 64, 245, 0, 11, 0, 14, 203, 32, 19, 28, 48, 42, 206, 80, 85, 34, 77, 64, 11, 7, 196, 12, 145, 201, 80,
-			11, 9, 198, 137, 34, 197, 104, 85, 20, 11, 7, 196, 40, 83, 5, 80, 11, 9, 198, 137, 34, 78, 80, 85, 20, 11, 13, 202, 61, 5,
-			9, 52, 19, 9, 105, 195, 14, 36, 11, 8, 197, 26, 36, 134, 36, 224, 11, 7, 196, 24, 150, 133, 80, 11, 9, 198, 32, 148, 218, 37,
-			65, 75, 11, 17, 9, 95, 35, 45, 195, 169, 116, 197, 145, 108, 113, 47, 118, 55, 0, 16, 0, 13, 66, 33, 80, 104, 117, 110, 0, 44,
-			29, 81, 110, 32, 29, 66, 37, 48, 37, 91, 23, 114, 55, 112, 80, 12, 114, 49, 0, 11, 81, 195, 161, 108, 108, 195, 173, 116, 106, 195,
-			161, 107, 32, 29, 66, 37, 48, 37, 91, 23, 84, 113, 81, 109, 88, 47, 113, 49, 0, 11, 81, 118, 195, 169, 103, 101, 122, 116, 195, 169,
-			107, 32, 40, 66, 37, 48, 37, 91, 23, 108, 55, 114, 47, 114, 65, 108, 89, 47, 39, 47, 12, 108, 0, 11, 81, 97, 108, 195, 161, 116,
-			195, 161, 109, 97, 115, 122, 116, 111, 116, 116, 97, 32, 28, 66, 37, 48, 37, 91, 23, 84, 37, 47, 108, 80, 12, 114, 49, 0, 11, 81,
-			118, 105, 116, 97, 116, 106, 195, 161, 107, 32, 7, 196, 137, 65, 76, 80, 11, 27, 66, 37, 48, 37, 91, 23, 108, 55, 114, 112, 52, 47,
-			108, 0, 11, 81, 97, 108, 195, 161, 195, 173, 114, 116, 97, 32, 30, 66, 37, 48, 37, 91, 23, 65, 109, 81, 109, 65, 55, 112, 47, 37,
-			0, 11, 81, 109, 101, 103, 101, 109, 108, 195, 173, 116, 105, 32, 22, 66, 37, 48, 37, 91, 23, 65, 113, 52, 37, 49, 0, 11, 81, 109,
-			195, 169, 114, 105, 107, 32, 27, 66, 37, 48, 37, 91, 23, 47, 110, 34, 47, 113, 50, 47, 0, 11, 81, 116, 195, 182, 114, 116, 195, 169,
-			110, 116, 32, 25, 66, 37, 48, 37, 91, 23, 71, 109, 89, 113, 55, 47, 0, 11, 81, 98, 101, 115, 122, 195, 169, 108, 116, 32, 54, 66,
-			37, 48, 37, 91, 10, 6, 15, 55, 109, 107, 109, 47, 10, 6, 15, 76, 108, 47, 55, 108, 49, 39, 89, 47, 108, 47, 50, 37, 0, 11,
-			82, 108, 101, 104, 101, 116, 32, 99, 115, 97, 116, 108, 97, 107, 111, 122, 116, 97, 116, 110, 105, 32, 45, 66, 37, 48, 37, 91, 10, 6,
-			15, 55, 109, 107, 109, 47, 10, 6, 15, 71, 118, 84, 112, 47, 109, 50, 37, 0, 11, 82, 108, 101, 104, 101, 116, 32, 98, 197, 145, 118,
-			195, 173, 116, 101, 110, 105, 32, 45, 66, 37, 48, 37, 91, 10, 6, 15, 55, 109, 107, 109, 47, 10, 6, 15, 107, 108, 89, 50, 114, 55,
-			50, 37, 0, 11, 82, 108, 101, 104, 101, 116, 32, 104, 97, 115, 122, 110, 195, 161, 108, 110, 105, 32, 33, 66, 37, 48, 37, 91, 10, 6,
-			15, 47, 108, 55, 114, 55, 107, 108, 47, 115, 0, 11, 81, 116, 97, 108, 195, 161, 108, 104, 97, 116, 195, 179, 32, 31, 66, 37, 48, 37,
-			91, 10, 6, 15, 57, 109, 79, 109, 89, 47, 111, 49, 0, 11, 81, 106, 101, 103, 121, 101, 122, 116, 195, 188, 107, 32, 25, 66, 37, 48,
-			37, 91, 10, 6, 15, 84, 108, 50, 12, 108, 49, 0, 11, 81, 118, 97, 110, 110, 97, 107, 32, 36, 66, 37, 48, 37, 91, 10, 6, 15,
-			65, 109, 81, 65, 40, 47, 108, 80, 12, 114, 49, 0, 11, 81, 109, 101, 103, 109, 117, 116, 97, 116, 106, 195, 161, 107, 32, 40, 66, 37,
-			48, 37, 91, 10, 6, 15, 49, 37, 109, 81, 113, 89, 112, 47, 109, 47, 12, 109, 0, 11, 81, 107, 105, 101, 103, 195, 169, 115, 122, 195,
-			173, 116, 101, 116, 116, 101, 32, 37, 66, 37, 48, 37, 91, 10, 6, 15, 52, 109, 50, 72, 109, 55, 49, 109, 89, 47, 109, 49, 0, 11,
-			81, 114, 101, 110, 100, 101, 108, 107, 101, 122, 116, 101, 107, 32, 34, 66, 37, 48, 37, 91, 6, 15, 49, 110, 89, 110, 50, 107, 109, 47,
-			118, 0, 11, 81, 107, 195, 182, 115, 122, 195, 182, 110, 104, 101, 116, 197, 145, 32, 33, 66, 37, 48, 37, 91, 10, 6, 15, 112, 47, 113,
-			55, 107, 109, 47, 37, 49, 0, 11, 81, 195, 173, 116, 195, 169, 108, 104, 101, 116, 105, 107, 32, 38, 66, 37, 48, 37, 91, 10, 6, 15,
-			49, 39, 50, 119, 109, 50, 47, 52, 114, 55, 50, 37, 0, 11, 81, 107, 111, 110, 99, 101, 110, 116, 114, 195, 161, 108, 110, 105, 32, 22,
-			66, 37, 48, 37, 91, 10, 6, 15, 114, 52, 40, 55, 0, 11, 81, 195, 161, 114, 117, 108, 32, 23, 66, 37, 48, 37, 91, 10, 6, 15,
-			47, 37, 55, 39, 91, 0, 11, 81, 116, 105, 108, 111, 115, 32, 29, 66, 37, 48, 37, 91, 10, 6, 15, 111, 79, 109, 55, 47, 109, 49,
-			0, 11, 81, 195, 188, 103, 121, 101, 108, 116, 101, 107, 32, 22, 66, 37, 48, 37, 91, 10, 6, 55, 109, 50, 12, 109, 0, 11, 81, 108,
-			101, 110, 110, 101, 32, 35, 66, 37, 48, 37, 91, 10, 6, 15, 84, 114, 55, 108, 89, 47, 39, 47, 12, 108, 0, 11, 81, 118, 195, 161,
-			108, 97, 115, 122, 116, 111, 116, 116, 97, 32, 24, 66, 37, 48, 37, 91, 10, 6, 15, 55, 114, 88, 108, 72, 0, 11, 81, 108, 195, 161,
-			122, 97, 100, 32, 18, 66, 37, 48, 37, 91, 10, 6, 15, 113, 52, 0, 11, 81, 195, 169, 114, 32, 25, 66, 37, 48, 37, 91, 10, 6,
-			15, 107, 108, 47, 39, 47, 12, 0, 11, 81, 104, 97, 116, 111, 116, 116, 32, 32, 66, 37, 48, 37, 91, 10, 6, 15, 89, 111, 49, 91,
-			113, 81, 109, 91, 0, 11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 32, 29, 66, 37, 48, 37, 91, 23, 89, 109, 52, 109,
-			47, 50, 113, 49, 0, 11, 81, 115, 122, 101, 114, 101, 116, 110, 195, 169, 107, 32, 39, 66, 37, 48, 37, 91, 23, 109, 79, 12, 111, 47,
-			65, 117, 49, 110, 72, 37, 49, 0, 11, 81, 101, 103, 121, 195, 188, 116, 116, 109, 197, 177, 107, 195, 182, 100, 105, 107, 32, 28, 66, 37,
-			48, 37, 91, 23, 57, 109, 55, 109, 88, 47, 113, 49, 0, 11, 81, 106, 101, 108, 101, 122, 116, 195, 169, 107, 32, 34, 66, 37, 48, 37,
-			91, 23, 89, 111, 49, 110, 91, 109, 71, 12, 109, 49, 0, 11, 81, 115, 122, 197, 177, 107, 195, 182, 115, 101, 98, 98, 101, 107, 32, 35,
-			66, 37, 48, 37, 91, 23, 49, 37, 57, 109, 55, 110, 55, 107, 109, 47, 118, 0, 11, 81, 107, 105, 106, 101, 108, 195, 182, 108, 104, 101,
-			116, 197, 145, 32, 34, 66, 37, 48, 37, 91, 23, 107, 108, 89, 50, 114, 55, 107, 108, 47, 115, 0, 11, 81, 104, 97, 115, 122, 110, 195,
-			161, 108, 104, 97, 116, 195, 179, 32, 12, 201, 80, 84, 150, 21, 162, 5, 82, 179, 139, 11, 36, 66, 37, 48, 37, 91, 23, 107, 108, 89,
-			50, 114, 55, 107, 108, 47, 115, 49, 0, 11, 81, 104, 97, 115, 122, 110, 195, 161, 108, 104, 97, 116, 195, 179, 107, 32, 35, 66, 37, 48,
-			37, 91, 23, 65, 109, 81, 89, 109, 52, 109, 89, 47, 113, 49, 0, 11, 81, 109, 101, 103, 115, 122, 101, 114, 101, 122, 116, 195, 169, 107,
-			32, 26, 66, 37, 48, 37, 91, 23, 55, 109, 55, 110, 84, 37, 49, 0, 11, 81, 108, 101, 108, 195, 182, 118, 105, 107, 32, 30, 66, 37,
-			48, 37, 91, 23, 47, 114, 65, 39, 81, 108, 80, 12, 108, 0, 11, 81, 116, 195, 161, 109, 111, 103, 97, 116, 106, 97, 32, 39, 66, 37,
-			48, 37, 91, 23, 109, 52, 109, 72, 65, 113, 67, 109, 88, 107, 109, 47, 37, 0, 11, 81, 101, 114, 101, 100, 109, 195, 169, 110, 121, 101,
-			122, 104, 101, 116, 105, 32, 23, 66, 37, 48, 37, 91, 23, 84, 39, 55, 47, 108, 49, 0, 11, 81, 118, 111, 108, 116, 97, 107, 32, 26,
-			66, 37, 48, 37, 91, 23, 49, 37, 72, 109, 52, 111, 55, 0, 11, 81, 107, 105, 100, 101, 114, 195, 188, 108, 32, 31, 66, 37, 48, 37,
-			91, 10, 6, 15, 83, 109, 55, 84, 109, 47, 107, 109, 47, 0, 11, 81, 102, 101, 108, 118, 101, 116, 104, 101, 116, 32, 42, 66, 37, 48,
-			37, 91, 23, 52, 109, 65, 113, 67, 49, 109, 72, 107, 109, 47, 111, 50, 49, 0, 11, 81, 114, 101, 109, 195, 169, 110, 121, 107, 101, 100,
-			104, 101, 116, 195, 188, 110, 107, 32, 18, 66, 37, 48, 37, 91, 23, 55, 109, 89, 0, 11, 81, 108, 101, 115, 122, 32, 30, 66, 37, 48,
-			37, 91, 23, 83, 109, 55, 65, 109, 52, 111, 55, 47, 0, 11, 81, 102, 101, 108, 109, 101, 114, 195, 188, 108, 116, 32, 38, 66, 37, 48,
-			37, 91, 23, 52, 114, 84, 37, 55, 114, 81, 112, 47, 39, 47, 12, 0, 11, 81, 114, 195, 161, 118, 105, 108, 195, 161, 103, 195, 173, 116,
-			111, 116, 116, 32, 67, 66, 37, 48, 37, 91, 23, 83, 37, 88, 109, 47, 107, 109, 47, 50, 109, 49, 23, 108, 6, 15, 79, 115, 79, 89,
-			109, 52, 109, 49, 113, 52, 47, 0, 11, 83, 102, 105, 122, 101, 116, 104, 101, 116, 110, 101, 107, 32, 97, 32, 103, 121, 195, 179, 103, 121,
-			115, 122, 101, 114, 101, 107, 195, 169, 114, 116, 32, 29, 66, 37, 48, 37, 91, 23, 47, 108, 52, 47, 108, 55, 65, 108, 88, 0, 11, 81,
-			116, 97, 114, 116, 97, 108, 109, 97, 122, 32, 24, 66, 37, 48, 37, 91, 23, 83, 39, 57, 50, 108, 49, 0, 11, 81, 102, 111, 108, 121,
-			110, 97, 107, 32, 21, 66, 37, 48, 37, 91, 23, 110, 52, 110, 65, 0, 11, 81, 195, 182, 114, 195, 182, 109, 32, 23, 66, 37, 48, 37,
-			91, 23, 71, 40, 49, 12, 108, 50, 0, 11, 81, 98, 117, 107, 107, 97, 110, 32, 29, 66, 37, 48, 37, 91, 23, 107, 37, 114, 67, 39,
-			55, 39, 65, 0, 11, 81, 104, 105, 195, 161, 110, 121, 111, 108, 111, 109, 32, 19, 66, 37, 48, 37, 91, 23, 55, 109, 47, 12, 0, 11,
-			81, 108, 101, 116, 116, 32, 19, 66, 37, 48, 37, 91, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 36, 66, 37, 48, 37,
-			91, 23, 65, 113, 52, 91, 113, 49, 55, 118, 72, 37, 49, 0, 11, 81, 109, 195, 169, 114, 115, 195, 169, 107, 108, 197, 145, 100, 105, 107,
-			32, 33, 66, 37, 48, 37, 91, 23, 49, 112, 91, 113, 52, 107, 109, 47, 37, 49, 0, 11, 81, 107, 195, 173, 115, 195, 169, 114, 104, 101,
-			116, 105, 107, 32, 26, 66, 37, 48, 37, 91, 23, 49, 37, 84, 114, 52, 50, 37, 0, 11, 81, 107, 105, 118, 195, 161, 114, 110, 105, 32,
-			28, 66, 37, 48, 37, 91, 23, 83, 109, 57, 55, 118, 72, 37, 49, 0, 11, 81, 102, 101, 106, 108, 197, 145, 100, 105, 107, 32, 22, 66,
-			37, 48, 37, 91, 23, 84, 114, 55, 37, 49, 0, 11, 81, 118, 195, 161, 108, 105, 107, 32, 20, 66, 37, 48, 37, 91, 23, 83, 111, 81,
-			12, 0, 11, 81, 102, 195, 188, 103, 103, 32, 27, 66, 37, 48, 37, 91, 23, 84, 114, 52, 107, 108, 47, 115, 0, 11, 81, 118, 195, 161,
-			114, 104, 97, 116, 195, 179, 32, 25, 66, 37, 48, 37, 91, 23, 71, 109, 37, 49, 47, 108, 47, 0, 11, 81, 98, 101, 105, 107, 116, 97,
-			116, 32, 26, 66, 37, 48, 37, 91, 23, 65, 109, 50, 109, 49, 111, 55, 0, 11, 81, 109, 101, 110, 101, 107, 195, 188, 108, 32, 20, 66,
-			37, 48, 37, 91, 23, 52, 115, 55, 108, 0, 11, 81, 114, 195, 179, 108, 97, 32, 38, 66, 37, 48, 37, 91, 23, 49, 37, 109, 81, 113,
-			89, 112, 47, 109, 47, 12, 109, 0, 11, 81, 107, 105, 101, 103, 195, 169, 115, 122, 195, 173, 116, 101, 116, 116, 101, 32, 16, 66, 37, 48,
-			37, 91, 23, 108, 88, 6, 0, 11, 81, 97, 122, 32, 33, 66, 37, 48, 37, 91, 23, 65, 109, 81, 65, 108, 52, 108, 79, 12, 39, 50,
-			0, 11, 81, 109, 101, 103, 109, 97, 114, 97, 100, 106, 111, 110, 32, 36, 66, 37, 48, 37, 91, 23, 83, 109, 57, 55, 109, 89, 47, 109,
-			47, 12, 109, 49, 0, 11, 81, 102, 101, 106, 108, 101, 115, 122, 116, 101, 116, 116, 101, 107, 32, 31, 66, 37, 48, 37, 91, 15, 107, 6,
-			108, 57, 55, 108, 50, 72, 115, 49, 0, 11, 81, 104, 97, 106, 108, 97, 110, 100, 195, 179, 107, 32, 24, 66, 37, 48, 37, 91, 23, 40,
-			79, 108, 50, 108, 88, 0, 11, 81, 117, 103, 121, 97, 110, 97, 122, 32, 40, 66, 37, 48, 37, 91, 23, 49, 108, 47, 108, 89, 47, 52,
-			115, 83, 114, 107, 39, 88, 0, 11, 81, 107, 97, 116, 97, 115, 122, 116, 114, 195, 179, 102, 195, 161, 104, 111, 122, 32, 33, 66, 37, 48,
-			37, 91, 23, 83, 39, 81, 55, 108, 55, 49, 39, 88, 39, 65, 0, 11, 81, 102, 111, 103, 108, 97, 108, 107, 111, 122, 111, 109, 32, 36,
-			66, 37, 48, 37, 91, 23, 109, 55, 118, 83, 39, 52, 72, 40, 55, 107, 108, 47, 0, 11, 81, 101, 108, 197, 145, 102, 111, 114, 100, 117,
-			108, 104, 97, 116, 32, 37, 66, 37, 48, 37, 91, 23, 49, 113, 48, 88, 118, 72, 107, 109, 47, 50, 109, 49, 0, 11, 81, 107, 195, 169,
-			112, 122, 197, 145, 100, 104, 101, 116, 110, 101, 107, 32, 21, 66, 37, 48, 37, 91, 23, 55, 109, 107, 109, 47, 0, 11, 81, 108, 101, 104,
-			101, 116, 32, 25, 66, 37, 48, 37, 91, 23, 49, 109, 88, 109, 55, 47, 109, 0, 11, 81, 107, 101, 122, 101, 108, 116, 101, 32, 29, 66,
-			37, 48, 37, 91, 23, 89, 111, 55, 109, 47, 109, 47, 12, 0, 11, 81, 115, 122, 195, 188, 108, 101, 116, 101, 116, 116, 32, 80, 66, 37,
-			48, 37, 91, 23, 49, 37, 47, 110, 55, 47, 107, 109, 47, 12, 113, 49, 23, 84, 39, 55, 50, 108, 23, 108, 23, 49, 113, 52, 72, 118,
-			112, 84, 109, 49, 109, 47, 0, 11, 84, 107, 105, 116, 195, 182, 108, 116, 104, 101, 116, 116, 195, 169, 107, 32, 118, 111, 108, 110, 97, 32,
-			97, 32, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 107, 101, 116, 32, 36, 66, 37, 48, 37, 91, 23, 108, 23, 49, 113, 52, 72,
-			118, 112, 84, 109, 47, 0, 11, 82, 97, 32, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116, 32, 26, 66, 37, 48, 37, 91, 23,
-			83, 109, 50, 12, 114, 55, 12, 0, 11, 81, 102, 101, 110, 110, 195, 161, 108, 108, 32, 36, 66, 37, 48, 37, 91, 23, 109, 55, 118, 83,
-			39, 52, 72, 40, 55, 50, 108, 49, 0, 11, 81, 101, 108, 197, 145, 102, 111, 114, 100, 117, 108, 110, 97, 107, 32, 29, 66, 37, 48, 37,
-			91, 23, 83, 109, 55, 52, 108, 49, 47, 108, 65, 0, 11, 81, 102, 101, 108, 114, 97, 107, 116, 97, 109, 32, 35, 66, 37, 48, 37, 91,
-			15, 83, 109, 55, 109, 57, 47, 49, 109, 89, 47, 109, 65, 0, 11, 81, 102, 101, 108, 101, 106, 116, 107, 101, 122, 116, 101, 109, 32, 22,
-			66, 37, 48, 37, 91, 15, 52, 109, 76, 109, 81, 0, 11, 81, 114, 101, 99, 115, 101, 103, 32, 28, 66, 37, 48, 37, 91, 15, 84, 114,
-			55, 47, 39, 88, 37, 49, 0, 11, 81, 118, 195, 161, 108, 116, 111, 122, 105, 107, 32, 40, 66, 37, 48, 37, 91, 15, 49, 109, 55, 12,
-			15, 83, 37, 88, 109, 47, 50, 37, 111, 49, 0, 11, 82, 107, 101, 108, 108, 32, 102, 105, 122, 101, 116, 110, 105, 195, 188, 107, 32, 29,
-			66, 37, 48, 37, 91, 15, 109, 55, 37, 91, 65, 109, 52, 47, 109, 0, 11, 81, 101, 108, 105, 115, 109, 101, 114, 116, 101, 32, 23, 66,
-			37, 48, 37, 91, 10, 6, 15, 108, 49, 108, 47, 12, 0, 11, 81, 97, 107, 97, 100, 116, 32, 13, 138, 118, 97, 108, 97, 107, 105, 116,
-			197, 145, 108, 11, 9, 198, 89, 195, 20, 61, 162, 75, 11, 5, 194, 37, 48, 11, 5, 194, 37, 48, 72, 0, 11, 200, 90, 35, 5, 44,
-			81, 5, 81, 64, 11, 33, 72, 53, 85, 1, 80, 179, 218, 36, 176, 65, 40, 47, 108, 47, 49, 39, 88, 37, 49, 10, 6, 15, 65, 109,
-			81, 0, 11, 81, 109, 101, 103, 32, 48, 73, 16, 242, 213, 52, 83, 148, 84, 212, 129, 72, 39, 49, 40, 65, 109, 50, 47, 40, 65, 52,
-			108, 23, 107, 37, 84, 108, 47, 49, 39, 88, 84, 108, 0, 11, 81, 104, 105, 118, 97, 116, 107, 111, 122, 118, 97, 32, 9, 198, 89, 195,
-			1, 77, 160, 64, 11, 11, 200, 25, 34, 83, 78, 85, 5, 81, 64, 11, 11, 200, 88, 243, 129, 80, 179, 218, 36, 176, 11, 11, 200, 53,
-			85, 1, 80, 179, 218, 36, 176, 11, 0, 9, 198, 81, 195, 3, 113, 32, 64, 11, 9, 198, 54, 113, 10, 113, 32, 64, 11, 9, 198, 77,
-			161, 82, 77, 167, 13, 11, 0, 9, 198, 66, 35, 4, 113, 166, 129, 11, 7, 132, 110, 197, 145, 115, 11, 13, 138, 116, 105, 115, 122, 116,
-			101, 108, 197, 145, 105, 11, 12, 201, 77, 161, 77, 80, 19, 170, 88, 19, 0, 11, 0, 21, 146, 101, 103, 121, 195, 188, 116, 116, 109, 197,
-			177, 107, 195, 182, 100, 195, 169, 115, 116, 11, 8, 197, 90, 33, 5, 56, 144, 11, 13, 202, 36, 229, 34, 104, 216, 142, 100, 82, 194, 20,
-			11, 7, 196, 76, 81, 229, 80, 11, 9, 198, 20, 118, 69, 80, 83, 64, 11, 13, 202, 24, 82, 140, 21, 54, 148, 137, 56, 146, 20, 11,
-			18, 143, 109, 101, 103, 101, 108, 197, 145, 122, 195, 169, 115, 195, 169, 114, 101, 11, 8, 133, 101, 114, 197, 145, 115, 11, 0, 27, 4, 101,
-			115, 197, 145, 109, 91, 118, 23, 52, 113, 89, 113, 47, 0, 11, 81, 114, 195, 169, 115, 122, 195, 169, 116, 32, 39, 74, 46, 131, 20, 78,
-			33, 214, 21, 72, 147, 36, 49, 110, 55, 76, 113, 81, 84, 109, 47, 113, 91, 37, 23, 91, 39, 52, 39, 50, 0, 11, 81, 115, 111, 114,
-			111, 110, 32, 29, 4, 101, 115, 197, 145, 109, 91, 118, 23, 48, 39, 50, 80, 108, 37, 50, 0, 11, 81, 112, 111, 110, 116, 106, 97, 105,
-			110, 32, 9, 198, 81, 196, 136, 20, 198, 64, 11, 14, 139, 107, 195, 173, 118, 195, 188, 108, 114, 197, 145, 108, 11, 10, 199, 20, 200, 146,
-			137, 56, 146, 20, 11, 9, 198, 25, 85, 20, 5, 67, 137, 11, 7, 132, 101, 115, 197, 145, 11, 9, 198, 77, 161, 82, 21, 163, 137, 11,
-			0, 15, 204, 112, 195, 1, 53, 66, 84, 45, 196, 156, 88, 19, 0, 11, 15, 140, 98, 197, 177, 110, 101, 115, 101, 116, 114, 197, 145, 108,
-			11, 10, 199, 24, 244, 132, 149, 68, 220, 44, 11, 7, 132, 110, 197, 145, 116, 11, 0, 12, 201, 52, 81, 205, 20, 229, 34, 78, 36, 133,
-			11, 24, 67, 32, 19, 135, 107, 108, 50, 81, 15, 65, 37, 108, 47, 12, 0, 11, 81, 109, 105, 97, 116, 116, 32, 7, 196, 24, 83, 5,
-			48, 11, 6, 195, 32, 19, 135, 11, 0, 15, 204, 44, 86, 132, 20, 216, 142, 100, 86, 162, 78, 36, 133, 11, 22, 66, 20, 192, 109, 55,
-			23, 48, 113, 50, 89, 47, 0, 11, 81, 112, 195, 169, 110, 122, 116, 32, 27, 66, 20, 192, 109, 55, 23, 108, 6, 15, 83, 113, 52, 83,
-			37, 0, 11, 82, 97, 32, 102, 195, 169, 114, 102, 105, 32, 27, 66, 20, 192, 109, 55, 23, 65, 37, 50, 72, 109, 50, 49, 37, 0, 11,
-			81, 109, 105, 110, 100, 101, 110, 107, 105, 32, 25, 66, 20, 192, 109, 55, 10, 6, 15, 50, 109, 49, 47, 109, 49, 0, 11, 81, 110, 101,
-			107, 116, 101, 107, 32, 35, 66, 20, 192, 109, 55, 6, 23, 108, 6, 15, 52, 109, 50, 72, 118, 52, 110, 49, 0, 11, 82, 97, 32, 114,
-			101, 110, 100, 197, 145, 114, 195, 182, 107, 32, 14, 139, 109, 197, 177, 107, 195, 182, 100, 195, 169, 115, 101, 11, 13, 202, 52, 81, 201, 76,
-			209, 82, 137, 56, 146, 20, 11, 10, 135, 115, 122, 197, 177, 114, 197, 145, 11, 9, 198, 80, 19, 156, 13, 55, 20, 11, 7, 196, 77, 167,
-			12, 48, 11, 5, 194, 20, 192, 11, 14, 66, 36, 64, 37, 72, 118, 91, 109, 71, 12, 0, 25, 46, 0, 11, 200, 13, 58, 11, 44, 83,
-			162, 76, 80, 11, 9, 3, 95, 50, 48, 107, 116, 89, 0, 0, 9, 198, 80, 84, 150, 20, 177, 84, 11, 40, 7, 102, 101, 108, 104, 197,
-			145, 115, 83, 109, 55, 107, 118, 91, 23, 37, 72, 118, 89, 108, 49, 71, 108, 50, 0, 11, 81, 105, 100, 197, 145, 115, 122, 97, 107, 98,
-			97, 110, 32, 45, 7, 102, 101, 108, 104, 197, 145, 115, 83, 109, 55, 107, 118, 91, 23, 47, 109, 52, 111, 55, 109, 47, 109, 49, 23, 37,
-			91, 0, 11, 82, 116, 101, 114, 195, 188, 108, 101, 116, 101, 107, 32, 105, 115, 32, 15, 140, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197,
-			145, 116, 11, 9, 198, 88, 86, 133, 82, 36, 197, 11, 14, 203, 52, 81, 194, 172, 229, 5, 82, 36, 226, 72, 80, 11, 10, 199, 41, 196,
-			129, 18, 34, 220, 80, 11, 10, 135, 102, 101, 108, 104, 197, 145, 115, 11, 0, 10, 67, 56, 21, 15, 50, 114, 47, 115, 0, 11, 200, 24,
-			244, 141, 112, 199, 19, 113, 64, 11, 15, 204, 52, 81, 211, 106, 179, 148, 21, 72, 147, 137, 33, 64, 11, 9, 198, 5, 163, 206, 8, 19,
-			128, 11, 11, 200, 24, 244, 132, 149, 71, 19, 113, 64, 11, 9, 198, 113, 4, 137, 48, 148, 192, 15, 0, 9, 198, 24, 83, 6, 60, 119,
-			19, 11, 7, 196, 64, 81, 9, 28, 11, 8, 197, 52, 243, 132, 60, 64, 11, 7, 196, 16, 243, 15, 28, 11, 0, 24, 67, 157, 64, 64,
-			115, 47, 108, 23, 47, 108, 52, 47, 115, 0, 11, 81, 116, 97, 114, 116, 195, 179, 32, 11, 200, 25, 34, 83, 78, 85, 34, 76, 80, 11,
-			13, 202, 46, 131, 20, 78, 33, 214, 21, 72, 147, 20, 11, 6, 195, 4, 67, 137, 11, 6, 195, 157, 32, 64, 11, 8, 195, 157, 64, 64,
-			11, 15, 17, 0, 14, 203, 112, 195, 28, 77, 3, 206, 80, 165, 75, 5, 64, 11, 8, 197, 32, 246, 148, 112, 176, 11, 7, 196, 52, 20,
-			16, 4, 11, 7, 196, 44, 20, 20, 4, 11, 8, 133, 116, 197, 145, 108, 101, 11, 0, 22, 5, 116, 197, 177, 110, 116, 47, 117, 50, 47,
-			10, 6, 15, 49, 37, 0, 11, 81, 107, 105, 32, 20, 5, 116, 197, 177, 110, 116, 47, 117, 50, 47, 23, 109, 55, 0, 11, 81, 101, 108,
-			32, 8, 133, 116, 197, 177, 110, 116, 11, 9, 198, 52, 243, 132, 81, 194, 192, 11, 8, 133, 116, 197, 177, 110, 116, 11, 0, 9, 198, 84,
-			226, 103, 10, 115, 0, 11, 10, 199, 44, 244, 136, 5, 71, 18, 80, 11, 57, 70, 24, 241, 193, 17, 64, 64, 83, 39, 81, 108, 47, 12,
-			108, 23, 108, 88, 6, 23, 109, 55, 49, 113, 48, 88, 109, 55, 113, 91, 109, 49, 109, 47, 0, 11, 82, 97, 122, 32, 101, 108, 107, 195,
-			169, 112, 122, 101, 108, 195, 169, 115, 101, 107, 101, 116, 32, 9, 198, 24, 241, 193, 17, 64, 64, 11, 9, 198, 88, 149, 1, 81, 64, 64,
-			11, 9, 198, 81, 81, 1, 81, 64, 64, 11, 13, 4, 95, 98, 114, 118, 83, 113, 55, 49, 110, 52, 0, 0, 13, 202, 89, 195, 1, 77,
-			165, 28, 76, 242, 193, 80, 11, 6, 195, 44, 244, 129, 11, 12, 201, 112, 195, 1, 53, 66, 84, 45, 196, 128, 11, 21, 69, 77, 169, 214,
-			4, 192, 89, 115, 84, 108, 55, 23, 108, 88, 0, 11, 81, 97, 122, 32, 25, 70, 30, 36, 5, 44, 129, 90, 81, 113, 48, 109, 49, 107,
-			109, 88, 23, 37, 91, 0, 11, 81, 105, 115, 32, 8, 197, 77, 169, 214, 4, 192, 11, 8, 197, 77, 169, 214, 4, 192, 11, 0, 9, 198,
-			80, 19, 28, 49, 64, 77, 11, 58, 68, 61, 32, 156, 56, 39, 52, 71, 114, 50, 23, 84, 37, 49, 47, 39, 52, 23, 65, 37, 50, 37,
-			89, 47, 109, 52, 109, 55, 50, 110, 49, 0, 11, 82, 118, 105, 107, 116, 111, 114, 32, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108,
-			110, 195, 182, 107, 32, 9, 198, 61, 37, 143, 77, 48, 76, 11, 9, 198, 137, 37, 5, 81, 65, 77, 11, 6, 195, 49, 195, 153, 11, 0,
-			23, 67, 37, 69, 0, 37, 47, 12, 23, 91, 109, 50, 49, 37, 0, 11, 81, 115, 101, 110, 107, 105, 32, 49, 71, 52, 81, 207, 48, 71,
-			19, 36, 65, 109, 81, 39, 55, 72, 114, 91, 37, 23, 55, 109, 107, 109, 47, 118, 91, 113, 81, 12, 109, 55, 0, 11, 81, 108, 101, 104,
-			101, 116, 197, 145, 115, 195, 169, 103, 103, 101, 108, 32, 17, 67, 37, 69, 0, 37, 47, 12, 23, 37, 91, 0, 11, 81, 105, 115, 32, 29,
-			67, 37, 69, 0, 37, 47, 12, 23, 39, 55, 84, 108, 91, 47, 108, 65, 0, 11, 81, 111, 108, 118, 97, 115, 116, 97, 109, 32, 9, 198,
-			48, 81, 202, 60, 32, 128, 11, 23, 67, 37, 69, 0, 37, 47, 12, 55, 114, 47, 12, 108, 0, 11, 81, 108, 195, 161, 116, 116, 97, 32,
-			9, 198, 48, 20, 211, 4, 32, 128, 11, 8, 197, 77, 168, 140, 20, 224, 11, 6, 195, 37, 69, 0, 11, 0, 12, 201, 44, 145, 133, 41,
-			65, 84, 80, 83, 64, 11, 12, 201, 24, 147, 129, 57, 54, 165, 72, 246, 128, 11, 14, 67, 52, 196, 218, 109, 65, 109, 55, 109, 89, 0,
-			42, 42, 13, 4, 95, 97, 99, 50, 49, 109, 47, 12, 118, 91, 0, 0, 12, 201, 52, 81, 212, 21, 68, 218, 21, 69, 0, 11, 9, 198,
-			77, 161, 77, 136, 198, 64, 11, 7, 196, 89, 196, 143, 76, 11, 9, 198, 149, 72, 140, 82, 34, 192, 11, 0, 35, 69, 32, 83, 25, 20,
-			224, 107, 109, 57, 109, 50, 23, 49, 37, 107, 108, 79, 12, 114, 49, 0, 11, 81, 107, 105, 104, 97, 103, 121, 106, 195, 161, 107, 32, 8,
-			197, 32, 83, 25, 20, 224, 11, 0, 9, 198, 41, 196, 148, 84, 226, 192, 11, 0, 9, 198, 52, 240, 137, 48, 56, 135, 11, 38, 67, 5,
-			163, 206, 108, 88, 39, 50, 10, 6, 15, 81, 39, 50, 72, 39, 55, 49, 39, 72, 50, 37, 0, 11, 81, 103, 111, 110, 100, 111, 108, 107,
-			111, 100, 110, 105, 32, 6, 195, 5, 163, 206, 11, 11, 200, 161, 52, 218, 21, 97, 84, 56, 144, 11, 7, 196, 137, 37, 5, 16, 11, 7,
-			196, 82, 33, 197, 16, 11, 0, 12, 201, 20, 193, 40, 57, 74, 20, 82, 34, 192, 11, 0, 13, 202, 36, 225, 143, 72, 215, 3, 38, 120,
-			146, 80, 11, 0, 27, 67, 8, 19, 139, 71, 108, 50, 49, 23, 91, 109, 81, 112, 47, 37, 0, 11, 81, 115, 101, 103, 195, 173, 116, 105,
-			32, 0, 6, 195, 81, 195, 131, 11, 6, 195, 44, 20, 0, 11, 0, 8, 197, 24, 82, 235, 17, 64, 11, 9, 198, 80, 84, 212, 136, 33,
-			64, 11, 9, 198, 24, 82, 34, 72, 33, 64, 11, 9, 198, 13, 49, 82, 136, 33, 64, 11, 0, 9, 198, 80, 84, 218, 80, 85, 0, 11,
-			51, 72, 52, 147, 12, 37, 196, 132, 61, 48, 65, 37, 55, 37, 114, 52, 72, 39, 91, 23, 50, 113, 48, 89, 114, 65, 55, 114, 55, 114,
-			91, 0, 11, 81, 110, 195, 169, 112, 115, 122, 195, 161, 109, 108, 195, 161, 108, 195, 161, 115, 32, 9, 198, 46, 131, 153, 88, 85, 0, 11,
-			8, 197, 48, 83, 142, 136, 176, 11, 15, 4, 95, 50, 113, 120, 65, 114, 91, 39, 72, 37, 49, 108, 0, 0, 28, 71, 77, 167, 13, 84,
-			226, 210, 4, 89, 114, 65, 40, 50, 49, 52, 108, 10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 41, 70, 34, 181, 133, 49, 146, 192,
-			107, 111, 84, 109, 57, 49, 10, 6, 15, 114, 47, 65, 113, 52, 118, 57, 117, 0, 11, 81, 195, 161, 116, 109, 195, 169, 114, 197, 145, 106,
-			197, 177, 32, 22, 68, 34, 84, 133, 52, 107, 112, 52, 109, 65, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 29, 70, 20, 211, 37,
-			80, 85, 20, 109, 65, 55, 112, 47, 109, 47, 12, 23, 108, 52, 52, 108, 0, 11, 81, 97, 114, 114, 97, 32, 10, 199, 77, 167, 13, 84,
-			226, 210, 4, 11, 9, 198, 76, 81, 229, 80, 85, 20, 11, 34, 70, 20, 211, 37, 80, 85, 20, 109, 65, 55, 112, 47, 109, 47, 12, 23,
-			119, 37, 49, 71, 109, 50, 0, 11, 81, 99, 105, 107, 107, 98, 101, 110, 32, 38, 70, 20, 211, 37, 80, 85, 20, 109, 65, 55, 112, 47,
-			109, 47, 12, 23, 89, 109, 52, 84, 109, 88, 109, 47, 0, 11, 81, 115, 122, 101, 114, 118, 101, 122, 101, 116, 32, 24, 149, 98, 197, 177,
-			110, 99, 115, 101, 108, 101, 107, 109, 195, 169, 110, 121, 101, 107, 195, 169, 114, 116, 11, 0, 7, 66, 29, 144, 79, 113, 0, 51, 72, 13,
-			48, 80, 4, 72, 139, 72, 16, 76, 108, 48, 108, 72, 113, 49, 52, 108, 23, 91, 37, 50, 76, 23, 49, 37, 55, 114, 47, 114, 91, 0,
-			11, 82, 115, 105, 110, 99, 115, 32, 107, 105, 108, 195, 161, 116, 195, 161, 115, 32, 8, 197, 20, 210, 65, 81, 64, 11, 9, 134, 101, 114,
-			114, 197, 145, 108, 11, 7, 196, 57, 154, 140, 80, 11, 15, 5, 95, 48, 77, 49, 111, 109, 88, 52, 109, 72, 37, 49, 0, 0, 12, 201,
-			32, 20, 132, 88, 84, 133, 44, 85, 0, 11, 10, 135, 107, 195, 182, 122, 197, 177, 108, 11, 0, 30, 68, 168, 160, 66, 8, 116, 57, 108,
-			71, 12, 23, 83, 109, 55, 108, 72, 108, 47, 0, 11, 81, 102, 101, 108, 97, 100, 97, 116, 32, 0, 10, 199, 57, 147, 205, 61, 37, 76,
-			80, 11, 11, 200, 53, 83, 139, 4, 145, 5, 40, 80, 11, 9, 198, 24, 150, 133, 80, 225, 75, 11, 11, 200, 72, 83, 132, 77, 161, 82,
-			8, 80, 11, 6, 195, 32, 20, 131, 11, 6, 195, 64, 84, 131, 11, 16, 9, 95, 35, 45, 195, 169, 114, 197, 145, 108, 113, 52, 118, 55,
-			0, 0, 12, 201, 81, 196, 135, 100, 19, 28, 76, 242, 192, 11, 10, 199, 8, 83, 5, 77, 169, 204, 80, 11, 13, 138, 109, 111, 100, 101,
-			108, 108, 98, 197, 145, 108, 11, 0, 11, 200, 77, 163, 210, 149, 71, 19, 112, 224, 11, 11, 136, 106, 101, 108, 108, 101, 103, 197, 177, 11,
-			8, 197, 149, 97, 75, 21, 64, 11, 9, 198, 50, 35, 153, 20, 113, 64, 11, 11, 136, 107, 101, 114, 195, 188, 108, 197, 145, 11, 10, 199,
-			24, 243, 148, 61, 48, 66, 8, 11, 0, 8, 197, 74, 36, 218, 137, 64, 11, 9, 134, 115, 111, 102, 197, 145, 114, 11, 15, 140, 102, 101,
-			108, 195, 188, 108, 101, 116, 98, 197, 145, 108, 11, 9, 198, 4, 192, 80, 40, 18, 84, 11, 8, 197, 44, 20, 10, 60, 224, 11, 8, 133,
-			110, 101, 118, 197, 177, 11, 0, 22, 67, 20, 225, 0, 116, 57, 91, 4, 39, 52, 0, 44, 82, 111, 102, 32, 108, 105, 110, 101, 32, 11,
-			200, 8, 85, 162, 80, 83, 8, 21, 160, 11, 12, 201, 40, 83, 5, 57, 66, 197, 105, 65, 75, 11, 0, 7, 196, 14, 33, 197, 80, 11,
-			9, 198, 80, 17, 211, 112, 119, 20, 11, 21, 68, 90, 33, 197, 80, 84, 113, 81, 109, 47, 23, 113, 52, 0, 11, 81, 195, 169, 114, 32,
-			17, 67, 80, 84, 218, 47, 109, 89, 15, 49, 37, 0, 11, 81, 107, 105, 32, 15, 204, 32, 20, 218, 57, 195, 8, 5, 64, 84, 48, 19,
-			128, 11, 5, 194, 44, 32, 11, 7, 196, 90, 33, 197, 80, 11, 14, 139, 109, 105, 110, 197, 145, 115, 195, 169, 103, 197, 177, 11, 6, 195,
-			42, 131, 128, 11, 6, 195, 80, 84, 218, 11, 5, 194, 20, 224, 11, 5, 194, 20, 224, 72, 16, 66, 44, 32, 49, 110, 52, 111, 55, 71,
-			109, 55, 111, 55, 0, 25, 0, 18, 143, 106, 101, 108, 101, 110, 108, 195, 169, 116, 195, 169, 114, 197, 145, 108, 11, 11, 200, 72, 83, 132,
-			20, 193, 84, 137, 64, 11, 11, 200, 72, 83, 132, 77, 161, 82, 137, 64, 11, 6, 195, 29, 41, 198, 11, 15, 4, 95, 48, 90, 53, 89,
-			114, 88, 109, 88, 52, 109, 72, 0, 13, 3, 95, 51, 88, 107, 108, 52, 65, 37, 50, 119, 0, 0, 11, 200, 46, 36, 132, 137, 49, 75,
-			21, 64, 11, 7, 196, 24, 82, 130, 20, 11, 31, 68, 72, 18, 148, 4, 52, 108, 57, 47, 108, 23, 81, 113, 48, 109, 55, 50, 37, 0,
-			11, 81, 103, 195, 169, 112, 101, 108, 110, 105, 32, 11, 136, 195, 169, 108, 197, 145, 107, 101, 116, 11, 7, 196, 24, 82, 34, 72, 11, 11,
-			200, 18, 131, 148, 137, 49, 75, 21, 64, 11, 7, 196, 72, 18, 148, 4, 11, 15, 4, 95, 48, 90, 52, 47, 112, 88, 109, 88, 52, 109,
-			72, 0, 9, 3, 95, 48, 67, 89, 114, 88, 0, 0, 37, 70, 20, 208, 133, 72, 83, 128, 109, 65, 71, 109, 52, 109, 50, 23, 91, 109,
-			81, 112, 47, 107, 109, 47, 0, 11, 81, 115, 101, 103, 195, 173, 116, 104, 101, 116, 32, 22, 68, 81, 33, 78, 16, 47, 52, 109, 50, 72,
-			10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 42, 70, 89, 195, 12, 4, 192, 84, 84, 114, 55, 12, 108, 55, 108, 47, 23, 49, 110,
-			88, 55, 109, 65, 113, 67, 109, 0, 11, 81, 107, 195, 182, 122, 108, 101, 109, 195, 169, 110, 121, 101, 32, 10, 199, 77, 162, 210, 37, 5,
-			5, 80, 11, 9, 198, 37, 50, 207, 49, 196, 192, 11, 9, 198, 20, 208, 133, 72, 83, 128, 11, 17, 142, 106, 101, 108, 101, 110, 116, 197,
-			145, 115, 195, 169, 103, 197, 177, 11, 7, 196, 90, 131, 7, 100, 11, 7, 196, 81, 196, 135, 100, 11, 18, 4, 95, 48, 90, 55, 47, 112,
-			88, 65, 37, 55, 37, 39, 65, 39, 72, 0, 0, 12, 201, 52, 81, 193, 48, 179, 212, 113, 55, 20, 11, 17, 142, 107, 195, 169, 112, 118,
-			105, 115, 101, 108, 197, 145, 107, 101, 116, 11, 15, 4, 95, 48, 90, 54, 65, 37, 55, 37, 39, 65, 39, 72, 0, 0, 6, 195, 32, 83,
-			25, 11, 10, 199, 77, 167, 13, 149, 66, 1, 80, 11, 15, 204, 76, 81, 226, 16, 84, 218, 46, 134, 168, 44, 177, 76, 11, 14, 203, 24,
-			82, 140, 21, 54, 148, 137, 49, 75, 21, 64, 11, 6, 195, 137, 96, 64, 11, 6, 195, 32, 83, 25, 11, 6, 195, 32, 83, 25, 11, 12,
-			4, 95, 48, 90, 49, 47, 37, 88, 109, 72, 0, 0, 34, 68, 8, 83, 142, 20, 71, 109, 50, 12, 109, 23, 116, 57, 72, 39, 50, 91,
-			114, 81, 0, 11, 81, 195, 186, 106, 100, 111, 110, 115, 195, 161, 103, 32, 52, 71, 77, 170, 203, 78, 33, 197, 76, 89, 111, 49, 91, 113,
-			81, 109, 91, 23, 37, 50, 47, 113, 89, 49, 109, 72, 113, 91, 109, 49, 109, 47, 0, 11, 81, 105, 110, 116, 195, 169, 122, 107, 101, 100,
-			195, 169, 115, 101, 107, 101, 116, 32, 9, 198, 52, 147, 132, 20, 229, 0, 11, 28, 68, 8, 83, 142, 20, 71, 109, 50, 12, 109, 15, 71,
-			37, 89, 47, 39, 91, 0, 11, 81, 98, 105, 122, 116, 111, 115, 32, 11, 200, 82, 132, 148, 136, 225, 84, 21, 64, 11, 7, 196, 8, 83,
-			142, 20, 11, 9, 198, 52, 147, 132, 20, 229, 0, 9, 0, 9, 198, 13, 48, 80, 5, 67, 203, 11, 12, 201, 32, 243, 140, 5, 2, 156,
-			74, 115, 0, 11, 7, 196, 90, 35, 5, 52, 11, 12, 4, 95, 48, 90, 51, 109, 88, 52, 109, 72, 0, 0, 11, 200, 52, 17, 217, 5,
-			39, 26, 80, 16, 11, 8, 197, 32, 21, 28, 78, 160, 11, 33, 70, 60, 193, 1, 49, 32, 64, 39, 55, 72, 108, 55, 52, 108, 6, 15,
-			71, 40, 49, 12, 108, 50, 0, 11, 81, 98, 117, 107, 107, 97, 110, 32, 69, 68, 112, 197, 1, 48, 114, 55, 47, 108, 55, 10, 6, 15,
-			49, 112, 50, 114, 55, 47, 10, 6, 15, 89, 39, 55, 81, 114, 55, 47, 108, 47, 114, 91, 39, 49, 108, 47, 0, 11, 82, 107, 195, 173,
-			110, 195, 161, 108, 116, 32, 115, 122, 111, 108, 103, 195, 161, 108, 116, 97, 116, 195, 161, 115, 111, 107, 97, 116, 32, 7, 196, 112, 197, 1,
-			48, 11, 15, 204, 13, 48, 84, 48, 18, 207, 105, 64, 84, 113, 55, 20, 11, 12, 201, 136, 193, 84, 80, 20, 148, 4, 215, 20, 11, 9,
-			198, 60, 193, 1, 49, 32, 64, 11, 17, 66, 37, 96, 50, 113, 79, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 12, 4, 95, 48, 90,
-			50, 89, 114, 88, 108, 72, 0, 0, 12, 201, 112, 195, 1, 53, 3, 204, 29, 196, 128, 11, 33, 69, 34, 37, 20, 20, 192, 107, 113, 47,
-			12, 109, 55, 23, 109, 88, 109, 55, 118, 47, 12, 0, 11, 81, 101, 122, 101, 108, 197, 145, 116, 116, 32, 16, 205, 46, 133, 5, 48, 86,
-			133, 81, 68, 226, 28, 82, 197, 80, 11, 8, 197, 148, 120, 146, 80, 80, 11, 9, 198, 48, 89, 82, 80, 19, 64, 11, 8, 197, 148, 120,
-			146, 80, 80, 11, 9, 198, 77, 167, 14, 80, 19, 64, 11, 9, 198, 21, 53, 34, 42, 35, 128, 17, 0, 9, 198, 60, 193, 1, 49, 197,
-			0, 11, 26, 69, 44, 148, 197, 8, 32, 49, 37, 91, 12, 109, 71, 12, 23, 109, 91, 118, 0, 11, 81, 101, 115, 197, 145, 32, 9, 198,
-			21, 54, 139, 161, 165, 0, 11, 8, 197, 42, 133, 20, 20, 176, 11, 0, 14, 3, 226, 136, 158, 84, 109, 81, 47, 109, 55, 109, 50, 0,
-			10, 199, 40, 83, 12, 20, 113, 197, 48, 11, 6, 195, 25, 197, 0, 11, 0, 7, 196, 24, 241, 207, 44, 76, 27, 70, 52, 84, 171, 49,
-			65, 75, 65, 109, 52, 111, 55, 47, 109, 49, 23, 83, 109, 55, 0, 11, 81, 102, 101, 108, 32, 9, 198, 36, 225, 9, 112, 41, 204, 11,
-			9, 198, 66, 118, 143, 49, 64, 75, 11, 9, 198, 14, 83, 69, 44, 83, 128, 11, 8, 197, 81, 81, 28, 78, 160, 11, 6, 195, 4, 197,
-			167, 11, 8, 197, 24, 145, 217, 20, 192, 11, 9, 198, 48, 83, 142, 137, 65, 75, 11, 9, 198, 32, 149, 20, 137, 65, 75, 11, 0, 15,
-			3, 226, 137, 160, 50, 109, 65, 109, 79, 109, 50, 55, 118, 0, 6, 195, 52, 148, 133, 11, 19, 67, 9, 81, 192, 71, 40, 81, 23, 84,
-			108, 50, 0, 11, 81, 118, 97, 110, 32, 12, 201, 80, 20, 1, 77, 165, 1, 49, 64, 77, 11, 20, 68, 46, 132, 171, 48, 49, 110, 52,
-			111, 55, 23, 37, 91, 0, 11, 81, 105, 115, 32, 14, 139, 102, 197, 145, 111, 115, 122, 116, 195, 161, 106, 116, 11, 12, 201, 46, 132, 142,
-			100, 86, 133, 80, 129, 90, 11, 5, 194, 172, 192, 11, 9, 196, 46, 132, 171, 48, 11, 15, 17, 0, 38, 72, 44, 85, 133, 76, 80, 130,
-			20, 224, 49, 109, 84, 109, 91, 109, 71, 12, 109, 50, 10, 6, 15, 108, 50, 12, 114, 55, 0, 11, 81, 97, 110, 110, 195, 161, 108, 32,
-			0, 12, 3, 226, 136, 154, 79, 110, 49, 57, 109, 55, 0, 12, 201, 57, 146, 76, 5, 66, 207, 105, 64, 75, 11, 16, 66, 168, 224, 116,
-			79, 50, 109, 84, 109, 88, 109, 47, 12, 0, 25, 0, 26, 69, 4, 192, 75, 84, 192, 108, 55, 108, 49, 40, 55, 23, 65, 108, 57, 72,
-			0, 11, 81, 109, 97, 106, 100, 32, 37, 67, 88, 19, 39, 84, 108, 55, 115, 23, 47, 52, 111, 49, 12, 110, 88, 113, 91, 47, 0, 11,
-			81, 116, 114, 195, 188, 107, 107, 195, 182, 122, 195, 169, 115, 116, 32, 9, 198, 32, 19, 12, 32, 21, 39, 11, 9, 198, 76, 80, 133, 77,
-			56, 135, 11, 8, 197, 4, 192, 75, 84, 192, 11, 6, 195, 88, 19, 39, 11, 6, 195, 8, 83, 142, 11, 5, 194, 36, 112, 11, 0, 12,
-			201, 72, 16, 143, 76, 179, 196, 61, 69, 0, 11, 12, 201, 48, 84, 1, 44, 243, 28, 77, 197, 0, 11, 6, 195, 40, 83, 0, 11, 0,
-			8, 197, 61, 36, 218, 112, 112, 11, 28, 69, 61, 36, 218, 112, 112, 10, 39, 52, 89, 114, 81, 23, 83, 110, 55, 113, 0, 11, 81, 102,
-			195, 182, 108, 195, 169, 32, 9, 198, 57, 154, 138, 80, 19, 137, 11, 13, 7, 95, 35, 45, 195, 161, 105, 103, 114, 37, 81, 0, 0, 10,
-			199, 78, 36, 133, 48, 209, 90, 36, 11, 48, 67, 53, 196, 192, 65, 114, 91, 23, 89, 109, 65, 55, 113, 55, 109, 47, 109, 47, 23, 49,
-			110, 84, 109, 47, 0, 11, 82, 115, 122, 101, 109, 108, 195, 169, 108, 101, 116, 101, 116, 32, 107, 195, 182, 118, 101, 116, 32, 19, 67, 53,
-			196, 192, 65, 114, 91, 23, 91, 109, 65, 0, 11, 81, 115, 101, 109, 32, 26, 67, 53, 196, 192, 65, 114, 91, 23, 81, 113, 48, 12, 109,
-			55, 0, 11, 81, 103, 195, 169, 112, 112, 101, 108, 32, 11, 200, 77, 167, 26, 4, 200, 139, 61, 48, 11, 6, 195, 5, 163, 203, 11, 6,
-			195, 46, 37, 0, 11, 6, 195, 53, 196, 192, 11, 7, 196, 80, 148, 218, 80, 11, 0, 31, 67, 48, 20, 0, 55, 108, 48, 9, 15, 47,
-			109, 47, 109, 57, 113, 52, 109, 0, 11, 81, 116, 101, 116, 101, 106, 195, 169, 114, 101, 32, 6, 195, 48, 20, 0, 11, 6, 195, 46, 36,
-			0, 11, 6, 195, 46, 36, 128, 11, 0, 12, 201, 24, 83, 1, 16, 21, 15, 44, 21, 0, 11, 0, 9, 198, 77, 161, 82, 90, 37, 0,
-			11, 38, 67, 46, 35, 133, 49, 113, 50, 109, 10, 6, 15, 84, 114, 55, 108, 89, 47, 108, 50, 39, 65, 0, 11, 81, 118, 195, 161, 108,
-			97, 115, 122, 116, 97, 110, 111, 109, 32, 64, 69, 81, 81, 20, 112, 176, 47, 40, 47, 12, 114, 49, 23, 83, 39, 52, 72, 112, 47, 108,
-			50, 37, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 47, 0, 11, 83, 102, 111, 114, 100, 195, 173, 116, 97, 110, 105, 32, 97, 32,
-			107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116, 32, 13, 202, 32, 20, 218, 57, 195, 1, 80, 18, 207, 72, 11, 8, 197, 81, 81,
-			20, 112, 176, 11, 6, 195, 46, 35, 133, 11, 6, 195, 32, 18, 148, 11, 0, 11, 3, 226, 136, 146, 65, 37, 50, 40, 89, 0, 8, 197,
-			64, 243, 3, 112, 224, 11, 8, 197, 5, 165, 84, 112, 224, 11, 48, 70, 37, 50, 207, 49, 194, 192, 37, 91, 49, 39, 55, 114, 49, 23,
-			65, 111, 49, 110, 47, 12, 109, 47, 113, 91, 113, 47, 0, 11, 81, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 195, 169, 115, 195, 169,
-			116, 32, 36, 70, 64, 84, 131, 44, 244, 128, 48, 109, 52, 119, 49, 39, 52, 15, 10, 49, 113, 89, 111, 55, 47, 0, 11, 81, 107, 195,
-			169, 115, 122, 195, 188, 108, 116, 32, 9, 198, 52, 17, 220, 56, 18, 192, 11, 8, 197, 48, 148, 212, 112, 224, 11, 9, 198, 81, 196, 135,
-			100, 18, 192, 11, 0, 6, 195, 10, 84, 128, 11, 6, 131, 108, 197, 145, 11, 6, 195, 34, 84, 128, 11, 0, 8, 197, 172, 200, 147, 136,
-			224, 11, 9, 3, 95, 49, 48, 47, 112, 88, 0, 0, 10, 199, 77, 161, 82, 36, 229, 5, 52, 11, 10, 199, 24, 83, 18, 4, 181, 1,
-			52, 11, 9, 198, 41, 197, 19, 104, 19, 129, 11, 12, 201, 36, 225, 15, 44, 243, 20, 56, 18, 192, 11, 0, 10, 199, 88, 19, 1, 52,
-			149, 133, 48, 11, 10, 199, 24, 147, 13, 20, 178, 197, 48, 11, 6, 195, 41, 85, 0, 11, 0, 14, 4, 95, 99, 121, 114, 119, 6, 37,
-			52, 37, 55, 55, 0, 42, 70, 80, 19, 28, 49, 64, 75, 47, 108, 55, 114, 55, 47, 108, 49, 23, 108, 6, 15, 67, 39, 65, 39, 88,
-			115, 49, 0, 11, 82, 97, 32, 110, 121, 111, 109, 111, 122, 195, 179, 107, 32, 9, 198, 80, 19, 28, 49, 64, 75, 11, 10, 135, 115, 122,
-			195, 188, 108, 197, 145, 11, 41, 70, 168, 163, 206, 56, 19, 128, 116, 57, 39, 50, 12, 108, 50, 23, 47, 109, 55, 109, 48, 112, 47, 109,
-			47, 12, 0, 11, 81, 116, 101, 108, 101, 112, 195, 173, 116, 101, 116, 116, 32, 10, 199, 46, 132, 142, 102, 34, 226, 56, 11, 8, 197, 77,
-			169, 204, 56, 144, 11, 10, 199, 46, 132, 142, 102, 34, 226, 56, 17, 0, 8, 197, 112, 195, 8, 5, 64, 11, 12, 201, 8, 150, 143, 57,
-			153, 84, 136, 179, 203, 11, 8, 197, 41, 196, 136, 5, 64, 11, 11, 200, 52, 20, 129, 16, 160, 78, 4, 176, 11, 7, 196, 46, 85, 171,
-			48, 11, 0, 12, 201, 52, 20, 129, 16, 128, 84, 56, 18, 192, 11, 10, 199, 46, 36, 132, 21, 165, 34, 44, 11, 18, 4, 95, 48, 90,
-			56, 89, 114, 88, 65, 37, 55, 37, 39, 65, 39, 72, 0, 0, 9, 198, 44, 84, 171, 48, 129, 84, 11, 12, 201, 8, 150, 143, 57, 149,
-			1, 48, 19, 128, 11, 41, 66, 136, 224, 113, 50, 15, 37, 91, 15, 65, 109, 81, 76, 37, 50, 114, 55, 47, 108, 65, 0, 11, 82, 105,
-			115, 32, 109, 101, 103, 99, 115, 105, 110, 195, 161, 108, 116, 97, 109, 32, 15, 66, 136, 224, 113, 50, 15, 37, 91, 0, 11, 81, 105, 115,
-			32, 12, 201, 37, 35, 196, 4, 195, 205, 8, 19, 128, 11, 9, 198, 25, 194, 140, 84, 226, 192, 11, 9, 198, 80, 84, 212, 172, 193, 84,
-			11, 5, 194, 136, 224, 11, 5, 194, 136, 224, 11, 0, 7, 196, 81, 81, 15, 44, 76, 7, 196, 40, 241, 220, 80, 11, 11, 200, 72, 83,
-			132, 20, 193, 84, 21, 64, 11, 11, 200, 32, 243, 20, 80, 84, 212, 21, 64, 11, 7, 196, 112, 195, 1, 80, 11, 15, 3, 95, 50, 113,
-			49, 109, 47, 12, 109, 72, 37, 49, 109, 0, 0, 50, 72, 36, 229, 5, 72, 225, 84, 21, 48, 37, 50, 47, 109, 52, 50, 109, 47, 109,
-			91, 15, 49, 37, 47, 110, 55, 47, 113, 91, 113, 52, 109, 0, 11, 81, 107, 105, 116, 195, 182, 108, 116, 195, 169, 115, 195, 169, 114, 101,
-			32, 7, 196, 60, 227, 129, 56, 11, 7, 196, 36, 227, 133, 56, 11, 12, 3, 95, 55, 88, 107, 109, 47, 84, 109, 50, 0, 0, 9, 198,
-			24, 147, 13, 20, 177, 84, 11, 49, 70, 88, 148, 218, 60, 229, 0, 84, 37, 89, 39, 50, 47, 23, 109, 55, 109, 50, 81, 109, 72, 107,
-			109, 47, 109, 47, 55, 109, 50, 0, 11, 81, 101, 108, 101, 110, 103, 101, 100, 104, 101, 116, 101, 116, 108, 101, 110, 32, 9, 198, 80, 84,
-			150, 21, 161, 84, 11, 23, 70, 88, 148, 218, 60, 229, 0, 84, 37, 89, 39, 50, 47, 23, 108, 88, 0, 11, 81, 97, 122, 32, 12, 137,
-			107, 195, 182, 116, 104, 101, 116, 197, 145, 11, 50, 70, 88, 148, 218, 60, 229, 0, 84, 37, 89, 39, 50, 47, 23, 108, 89, 47, 23, 47,
-			108, 48, 108, 89, 47, 108, 55, 47, 108, 65, 0, 11, 82, 97, 122, 116, 32, 116, 97, 112, 97, 115, 122, 116, 97, 108, 116, 97, 109, 32,
-			12, 137, 101, 103, 121, 115, 122, 101, 114, 197, 177, 11, 12, 137, 107, 195, 182, 116, 104, 101, 116, 197, 145, 11, 10, 198, 88, 148, 218, 60,
-			229, 0, 11, 17, 0, 10, 199, 80, 84, 218, 80, 82, 197, 80, 11, 13, 138, 110, 101, 118, 101, 122, 104, 101, 116, 197, 145, 11, 7, 196,
-			49, 197, 15, 52, 11, 0, 26, 70, 56, 85, 133, 105, 65, 64, 50, 109, 84, 109, 89, 47, 109, 23, 108, 89, 47, 0, 11, 81, 97, 122,
-			116, 32, 25, 68, 74, 36, 218, 80, 52, 113, 89, 47, 23, 84, 109, 50, 12, 37, 0, 11, 81, 118, 101, 110, 110, 105, 32, 22, 68, 74,
-			36, 218, 80, 52, 113, 89, 47, 23, 84, 109, 89, 0, 11, 81, 118, 101, 115, 122, 32, 26, 70, 56, 85, 133, 105, 65, 64, 50, 109, 84,
-			109, 89, 47, 109, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 27, 68, 74, 36, 218, 80, 52, 113, 89, 47, 23, 84, 109, 47, 12,
-			109, 49, 0, 11, 81, 118, 101, 116, 116, 101, 107, 32, 9, 198, 88, 85, 5, 81, 65, 64, 11, 14, 139, 107, 195, 169, 112, 118, 105, 115,
-			101, 108, 197, 145, 11, 9, 198, 56, 85, 133, 105, 65, 64, 11, 9, 198, 8, 194, 75, 45, 33, 64, 11, 9, 198, 77, 161, 82, 21, 1,
-			64, 11, 14, 139, 104, 101, 108, 121, 101, 122, 104, 101, 116, 197, 145, 11, 7, 196, 74, 36, 218, 80, 11, 0, 18, 143, 101, 108, 108, 101,
-			110, 197, 145, 114, 122, 195, 169, 115, 195, 169, 116, 11, 0, 41, 72, 88, 148, 211, 104, 17, 83, 137, 48, 84, 37, 89, 12, 108, 109, 91,
-			113, 91, 23, 107, 108, 47, 114, 91, 108, 37, 47, 0, 11, 81, 104, 97, 116, 195, 161, 115, 97, 105, 116, 32, 10, 135, 115, 122, 197, 177,
-			114, 105, 107, 11, 11, 200, 32, 19, 135, 40, 83, 26, 137, 48, 11, 13, 3, 95, 49, 111, 109, 79, 12, 109, 72, 37, 49, 0, 11, 4,
-			95, 49, 111, 120, 109, 55, 91, 118, 0, 0, 8, 197, 157, 39, 20, 156, 192, 11, 8, 197, 52, 83, 148, 136, 224, 11, 7, 196, 52, 83,
-			12, 136, 11, 0, 9, 198, 88, 86, 133, 77, 49, 64, 11, 20, 66, 37, 128, 49, 37, 55, 109, 50, 119, 12, 109, 55, 0, 44, 42, 81,
-			101, 108, 32, 16, 3, 95, 51, 113, 107, 108, 52, 10, 65, 108, 72, 37, 49, 108, 0, 0, 12, 137, 101, 108, 197, 145, 115, 122, 195, 182,
-			114, 11, 6, 195, 4, 69, 1, 11, 0, 10, 199, 32, 21, 133, 72, 160, 73, 52, 11, 7, 196, 76, 83, 77, 36, 11, 9, 198, 104, 18,
-			140, 61, 69, 0, 11, 0, 9, 198, 24, 244, 132, 84, 195, 203, 11, 10, 199, 32, 20, 218, 57, 195, 15, 52, 11, 0, 12, 137, 102, 101,
-			106, 108, 197, 145, 100, 105, 107, 11, 12, 137, 107, 101, 122, 100, 197, 145, 100, 105, 107, 11, 9, 3, 95, 49, 101, 109, 79, 12, 0, 0,
-			6, 195, 88, 149, 1, 11, 8, 197, 48, 85, 20, 20, 176, 11, 8, 197, 44, 20, 14, 4, 176, 11, 11, 4, 95, 97, 99, 117, 113, 55,
-			109, 91, 0, 0, 8, 197, 9, 82, 203, 4, 224, 11, 15, 204, 20, 192, 143, 13, 55, 20, 113, 51, 203, 74, 115, 0, 11, 9, 198, 77,
-			162, 210, 37, 5, 0, 11, 9, 198, 77, 162, 210, 37, 5, 0, 11, 7, 196, 54, 35, 20, 156, 11, 9, 198, 4, 73, 218, 113, 58, 128,
-			11, 14, 3, 95, 50, 111, 49, 109, 47, 12, 109, 72, 37, 49, 0, 0, 7, 196, 173, 161, 77, 20, 11, 0, 20, 70, 20, 118, 69, 105,
-			56, 135, 101, 103, 103, 121, 101, 115, 115, 195, 169, 103, 0, 29, 22, 68, 57, 195, 1, 16, 50, 114, 55, 108, 72, 23, 84, 108, 50, 0,
-			11, 81, 118, 97, 110, 32, 29, 66, 52, 16, 65, 108, 15, 72, 113, 55, 109, 55, 118, 47, 12, 0, 11, 81, 100, 195, 169, 108, 101, 108,
-			197, 145, 116, 116, 32, 27, 66, 52, 16, 65, 108, 15, 72, 113, 55, 40, 47, 114, 50, 0, 11, 81, 100, 195, 169, 108, 117, 116, 195, 161,
-			110, 32, 5, 194, 52, 16, 11, 9, 198, 32, 20, 218, 57, 195, 0, 11, 19, 66, 36, 144, 49, 109, 47, 12, 118, 84, 109, 55, 0, 44,
-			42, 81, 101, 108, 32, 21, 2, 48, 48, 50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 110, 32, 26, 2, 48, 48,
-			50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 47, 115, 55, 0, 44, 81, 32, 116, 195, 179, 108, 32, 21, 2, 48, 48, 50, 40, 55, 12,
-			108, 50, 40, 55, 12, 114, 91, 0, 44, 81, 32, 115, 32, 23, 2, 48, 48, 50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 37, 81, 0,
-			44, 81, 32, 105, 103, 32, 9, 3, 95, 50, 97, 49, 113, 47, 0, 0, 22, 67, 52, 134, 128, 109, 101, 103, 97, 104, 101, 114, 99, 101,
-			110, 0, 44, 29, 81, 101, 110, 32, 23, 67, 52, 134, 128, 109, 101, 103, 97, 104, 101, 114, 99, 101, 110, 0, 44, 29, 42, 81, 101, 110,
-			32, 7, 196, 60, 192, 211, 156, 11, 12, 201, 52, 81, 193, 49, 198, 156, 77, 41, 204, 11, 12, 201, 89, 195, 20, 61, 160, 84, 112, 41,
-			204, 11, 11, 3, 95, 49, 88, 47, 37, 88, 109, 50, 0, 0, 10, 199, 32, 20, 131, 60, 195, 137, 4, 11, 9, 198, 46, 133, 133, 80,
-			226, 69, 11, 6, 195, 33, 198, 129, 11, 6, 195, 44, 83, 20, 11, 6, 195, 9, 34, 84, 11, 6, 195, 24, 243, 20, 11, 0, 12, 201,
-			90, 35, 5, 54, 35, 153, 21, 163, 137, 11, 13, 202, 81, 195, 79, 28, 21, 28, 77, 192, 167, 48, 11, 11, 200, 54, 35, 20, 157, 55,
-			7, 61, 64, 11, 6, 195, 64, 20, 139, 11, 6, 195, 14, 35, 20, 11, 0, 32, 69, 64, 84, 131, 21, 64, 48, 109, 52, 119, 109, 47,
-			23, 83, 37, 88, 109, 47, 109, 49, 0, 11, 81, 102, 105, 122, 101, 116, 101, 107, 32, 8, 197, 52, 147, 139, 21, 64, 11, 8, 197, 44,
-			20, 15, 81, 64, 11, 6, 195, 50, 36, 0, 11, 6, 195, 90, 36, 128, 11, 6, 195, 82, 36, 128, 11, 8, 197, 52, 147, 139, 21, 64,
-			11, 10, 3, 95, 50, 101, 49, 109, 47, 12, 0, 0, 28, 69, 44, 84, 171, 49, 64, 49, 109, 52, 111, 55, 47, 23, 89, 115, 71, 108,
-			0, 11, 81, 115, 122, 195, 179, 98, 97, 32, 27, 69, 44, 84, 171, 49, 64, 49, 109, 52, 111, 55, 47, 23, 108, 107, 39, 88, 0, 11,
-			81, 97, 104, 104, 111, 122, 32, 8, 197, 44, 84, 171, 49, 64, 11, 8, 197, 13, 50, 78, 112, 192, 11, 8, 197, 44, 84, 171, 49, 64,
-			11, 8, 197, 52, 84, 171, 49, 64, 11, 0, 9, 198, 46, 113, 15, 44, 21, 0, 11, 8, 197, 81, 81, 10, 112, 176, 11, 6, 195, 8,
-			18, 148, 11, 8, 197, 81, 81, 10, 112, 176, 11, 6, 195, 8, 83, 148, 11, 15, 3, 95, 51, 111, 107, 108, 52, 10, 65, 108, 72, 37,
-			49, 0, 0, 7, 196, 88, 149, 28, 36, 11, 10, 199, 32, 20, 218, 57, 195, 10, 4, 11, 7, 196, 42, 114, 193, 36, 11, 7, 196, 77,
-			161, 82, 80, 11, 0, 8, 197, 4, 210, 65, 81, 64, 11, 36, 69, 24, 83, 5, 49, 64, 83, 109, 55, 109, 55, 47, 23, 84, 39, 55,
-			50, 108, 23, 65, 109, 81, 0, 11, 82, 118, 111, 108, 110, 97, 32, 109, 101, 103, 32, 8, 197, 24, 83, 5, 49, 64, 11, 17, 2, 49,
-			48, 47, 112, 88, 88, 109, 55, 0, 44, 81, 32, 101, 108, 32, 15, 2, 49, 48, 47, 37, 88, 109, 47, 0, 44, 81, 32, 116, 32, 23,
-			2, 49, 48, 47, 112, 89, 12, 109, 52, 109, 91, 0, 44, 81, 32, 115, 122, 101, 114, 101, 115, 32, 19, 2, 49, 48, 47, 112, 89, 12,
-			109, 52, 0, 44, 81, 32, 115, 122, 101, 114, 32, 0, 34, 4, 105, 100, 197, 145, 37, 72, 118, 23, 84, 108, 55, 115, 89, 112, 50, 117,
-			0, 11, 81, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 32, 30, 4, 105, 100, 197, 145, 37, 72, 118, 23, 84, 114, 52, 107,
-			108, 47, 115, 0, 11, 81, 118, 195, 161, 114, 104, 97, 116, 195, 179, 32, 21, 4, 105, 100, 197, 145, 37, 72, 118, 23, 55, 109, 89, 0,
-			11, 81, 108, 101, 115, 122, 32, 9, 198, 73, 192, 168, 46, 133, 20, 11, 11, 200, 90, 33, 5, 48, 83, 77, 20, 192, 11, 7, 132, 105,
-			100, 197, 145, 11, 30, 2, 49, 51, 116, 105, 122, 101, 110, 104, 97, 114, 109, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81,
-			32, 105, 103, 32, 11, 3, 95, 50, 88, 107, 40, 89, 39, 50, 0, 0, 7, 196, 4, 227, 153, 36, 11, 0, 20, 67, 49, 53, 0, 101,
-			108, 101, 115, 116, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 20, 67, 49, 53, 0, 101, 108, 101, 115, 116, 195, 169, 107, 0, 44, 29,
-			42, 81, 107, 32, 28, 71, 8, 150, 143, 56, 230, 65, 48, 71, 37, 88, 39, 67, 67, 108, 55, 10, 6, 15, 108, 88, 0, 11, 81, 97,
-			122, 32, 10, 199, 16, 243, 7, 60, 178, 193, 48, 11, 8, 197, 53, 84, 218, 112, 160, 11, 10, 199, 13, 51, 205, 4, 113, 193, 48, 11,
-			14, 67, 49, 53, 0, 109, 55, 109, 91, 47, 113, 0, 42, 42, 0, 37, 68, 37, 51, 98, 80, 37, 91, 65, 113, 47, 10, 6, 15, 83,
-			109, 55, 65, 109, 52, 111, 55, 47, 0, 11, 81, 102, 101, 108, 109, 101, 114, 195, 188, 108, 116, 32, 59, 12, 106, 101, 108, 101, 110, 116,
-			197, 145, 115, 101, 98, 98, 57, 109, 55, 109, 50, 47, 118, 91, 109, 71, 12, 23, 76, 108, 48, 108, 72, 113, 49, 107, 40, 55, 12, 114,
-			91, 0, 11, 81, 99, 115, 97, 112, 97, 100, 195, 169, 107, 104, 117, 108, 108, 195, 161, 115, 32, 17, 67, 58, 38, 128, 50, 113, 88, 23,
-			49, 37, 0, 11, 81, 107, 105, 32, 28, 68, 37, 51, 98, 80, 37, 91, 65, 113, 47, 23, 109, 55, 109, 52, 109, 72, 0, 11, 81, 101,
-			108, 101, 114, 101, 100, 32, 40, 70, 24, 83, 34, 8, 83, 128, 83, 109, 55, 113, 71, 109, 50, 23, 114, 55, 107, 108, 47, 6, 15, 71,
-			6, 109, 0, 11, 82, 195, 161, 108, 108, 104, 97, 116, 32, 98, 101, 32, 13, 202, 46, 37, 19, 136, 112, 133, 21, 53, 5, 52, 11, 9,
-			198, 32, 144, 156, 105, 64, 75, 11, 6, 195, 58, 38, 128, 11, 10, 3, 95, 51, 101, 107, 114, 52, 65, 0, 0, 12, 201, 48, 82, 156,
-			81, 54, 167, 32, 246, 128, 11, 8, 197, 82, 128, 130, 21, 64, 11, 24, 69, 82, 128, 130, 21, 64, 47, 110, 71, 12, 109, 47, 23, 83,
-			39, 81, 0, 11, 81, 102, 111, 103, 32, 13, 202, 46, 134, 162, 65, 3, 206, 80, 167, 2, 4, 11, 30, 69, 82, 128, 130, 21, 64, 47,
-			110, 71, 12, 109, 47, 15, 47, 40, 72, 50, 108, 49, 0, 11, 81, 116, 117, 100, 110, 97, 107, 32, 11, 136, 116, 101, 114, 106, 101, 100,
-			197, 145, 11, 10, 199, 10, 84, 167, 77, 193, 210, 4, 11, 0, 10, 199, 77, 169, 204, 4, 194, 143, 56, 11, 15, 204, 80, 85, 162, 44,
-			83, 153, 78, 33, 197, 45, 33, 64, 11, 56, 73, 33, 195, 39, 104, 21, 15, 45, 32, 64, 107, 114, 55, 115, 88, 108, 47, 39, 49, 52,
-			108, 23, 76, 108, 47, 55, 108, 49, 39, 88, 107, 108, 47, 40, 50, 49, 0, 11, 81, 99, 115, 97, 116, 108, 97, 107, 111, 122, 104, 97,
-			116, 117, 110, 107, 32, 8, 197, 77, 169, 78, 21, 48, 11, 29, 2, 49, 54, 116, 105, 122, 101, 110, 104, 97, 116, 111, 100, 105, 107, 195,
-			161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 0, 10, 199, 76, 80, 133, 77, 56, 135, 20, 11, 13, 138, 104, 97, 116, 195, 161,
-			114, 105, 100, 197, 145, 11, 6, 195, 160, 197, 0, 11, 0, 24, 66, 52, 32, 109, 101, 103, 97, 98, 195, 161, 106, 116, 116, 97, 108, 0,
-			44, 29, 42, 81, 97, 108, 32, 37, 76, 48, 81, 203, 136, 230, 69, 48, 209, 83, 20, 32, 128, 55, 109, 81, 49, 113, 67, 109, 55, 65,
-			109, 91, 109, 71, 12, 23, 108, 88, 0, 11, 81, 97, 122, 32, 9, 198, 54, 113, 19, 104, 84, 128, 11, 7, 196, 24, 241, 220, 80, 11,
-			7, 196, 52, 17, 220, 80, 11, 15, 66, 52, 32, 65, 109, 81, 108, 71, 114, 57, 47, 0, 42, 42, 17, 2, 50, 48, 107, 116, 89, 12,
-			108, 55, 0, 44, 81, 32, 97, 108, 32, 25, 2, 50, 48, 104, 117, 115, 122, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81,
-			32, 105, 103, 32, 22, 2, 50, 48, 104, 117, 115, 122, 97, 100, 105, 107, 97, 105, 0, 44, 16, 29, 81, 32, 105, 32, 31, 2, 49, 56,
-			116, 105, 122, 101, 110, 110, 121, 111, 108, 99, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 14, 3, 95,
-			54, 113, 107, 108, 47, 39, 72, 37, 49, 108, 0, 0, 11, 136, 115, 122, 101, 114, 101, 116, 197, 145, 11, 14, 203, 57, 146, 76, 89, 195,
-			143, 77, 55, 7, 72, 16, 11, 13, 138, 114, 101, 110, 100, 197, 145, 114, 195, 182, 107, 11, 6, 195, 137, 97, 64, 11, 6, 195, 42, 115,
-			0, 11, 31, 2, 50, 51, 104, 117, 115, 122, 111, 110, 104, 97, 114, 109, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32,
-			105, 103, 32, 0, 9, 198, 76, 242, 193, 77, 193, 193, 11, 8, 197, 61, 69, 8, 60, 224, 11, 0, 9, 198, 46, 179, 6, 160, 193, 9,
-			11, 10, 199, 13, 48, 80, 60, 194, 1, 80, 11, 10, 199, 13, 51, 206, 80, 242, 193, 80, 11, 7, 195, 44, 101, 0, 11, 42, 6, 195,
-			78, 83, 148, 11, 6, 195, 42, 117, 0, 11, 0, 14, 203, 89, 195, 20, 61, 168, 139, 60, 230, 65, 8, 32, 11, 9, 198, 20, 118, 107,
-			81, 65, 83, 11, 0, 14, 139, 116, 101, 109, 101, 116, 197, 145, 106, 195, 169, 116, 11, 15, 140, 107, 105, 115, 122, 197, 177, 114, 104, 101,
-			116, 197, 145, 11, 10, 199, 80, 82, 201, 57, 74, 206, 44, 11, 14, 67, 77, 64, 128, 91, 108, 47, 110, 71, 12, 37, 0, 25, 0, 16,
-			141, 107, 195, 182, 115, 122, 195, 182, 110, 104, 101, 116, 197, 145, 11, 14, 3, 95, 63, 63, 49, 108, 52, 108, 49, 47, 109, 52, 0, 30,
-			2, 50, 54, 104, 117, 115, 122, 111, 110, 104, 97, 116, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 12,
-			3, 95, 53, 111, 110, 47, 110, 72, 37, 49, 0, 0, 8, 197, 89, 195, 10, 60, 224, 11, 0, 39, 71, 16, 243, 7, 60, 180, 167, 48,
-			72, 39, 55, 81, 39, 49, 52, 115, 55, 23, 71, 109, 89, 113, 55, 109, 49, 0, 11, 81, 98, 101, 115, 122, 195, 169, 108, 101, 107, 32,
-			18, 143, 104, 111, 122, 122, 195, 161, 102, 195, 169, 114, 104, 101, 116, 197, 145, 11, 9, 198, 88, 82, 5, 77, 49, 64, 11, 10, 199, 13,
-			51, 205, 4, 116, 167, 48, 11, 12, 66, 53, 32, 65, 37, 89, 47, 109, 52, 0, 25, 21, 2, 51, 48, 107, 108, 52, 65, 37, 50, 119,
-			12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 22, 2, 51, 48, 107, 108, 52, 65, 37, 50, 119, 12, 108, 55, 0, 44, 81, 32, 99, 97,
-			108, 32, 25, 2, 51, 48, 104, 97, 114, 109, 105, 110, 99, 97, 100, 105, 107, 97, 105, 0, 44, 16, 29, 81, 32, 105, 32, 28, 2, 51,
-			48, 104, 97, 114, 109, 105, 110, 99, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 32, 2, 50, 56, 104,
-			117, 115, 122, 111, 110, 110, 121, 111, 108, 99, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 16, 29, 81, 32, 105, 103, 32, 14, 3, 95,
-			55, 113, 107, 109, 47, 109, 72, 37, 49, 109, 0, 0, 32, 67, 32, 85, 5, 107, 109, 47, 109, 23, 107, 108, 89, 50, 114, 55, 39, 65,
-			0, 11, 81, 104, 97, 115, 122, 110, 195, 161, 108, 111, 109, 32, 9, 198, 77, 169, 210, 156, 66, 75, 11, 11, 200, 90, 35, 5, 54, 35,
-			153, 20, 208, 11, 18, 143, 98, 105, 108, 108, 101, 110, 116, 121, 197, 177, 122, 101, 116, 101, 116, 11, 12, 201, 44, 243, 131, 20, 229, 18,
-			112, 197, 0, 11, 10, 199, 32, 20, 218, 57, 195, 15, 44, 11, 12, 3, 95, 52, 88, 50, 109, 79, 84, 109, 50, 0, 0, 30, 70, 52,
-			83, 12, 21, 69, 0, 65, 109, 55, 12, 109, 47, 12, 23, 84, 39, 55, 50, 108, 0, 11, 81, 118, 111, 108, 110, 97, 32, 24, 70, 52,
-			83, 12, 21, 69, 0, 65, 109, 55, 12, 109, 47, 12, 23, 108, 88, 0, 11, 81, 97, 122, 32, 9, 198, 52, 83, 12, 21, 69, 0, 11,
-			0, 6, 195, 25, 194, 140, 11, 8, 197, 77, 167, 13, 60, 224, 11, 6, 195, 33, 197, 0, 11, 16, 9, 95, 35, 45, 195, 161, 114, 195,
-			179, 108, 114, 52, 115, 55, 0, 0, 7, 196, 46, 113, 15, 80, 11, 11, 200, 32, 20, 218, 57, 195, 14, 60, 208, 11, 0, 6, 195, 56,
-			85, 133, 11, 0, 7, 196, 24, 241, 207, 52, 11, 9, 198, 13, 48, 80, 5, 67, 212, 11, 13, 202, 44, 19, 39, 104, 179, 196, 113, 53,
-			39, 48, 11, 13, 3, 95, 54, 111, 107, 108, 47, 39, 72, 37, 49, 0, 0, 11, 200, 88, 20, 220, 72, 224, 80, 60, 224, 17, 0, 25,
-			68, 74, 133, 137, 16, 52, 110, 84, 37, 72, 23, 108, 107, 39, 88, 0, 11, 81, 97, 104, 104, 111, 122, 32, 7, 196, 74, 133, 137, 16,
-			11, 14, 203, 57, 146, 76, 89, 195, 165, 81, 196, 212, 156, 192, 11, 26, 66, 48, 80, 55, 109, 10, 6, 15, 84, 39, 49, 91, 114, 47,
-			0, 11, 81, 118, 111, 107, 115, 195, 161, 116, 32, 29, 66, 48, 80, 55, 109, 23, 83, 39, 81, 23, 83, 40, 47, 50, 37, 0, 11, 82,
-			102, 111, 103, 32, 102, 117, 116, 110, 105, 32, 22, 194, 48, 80, 11, 82, 107, 101, 108, 108, 32, 115, 122, 195, 182, 103, 101, 122, 110, 101,
-			109, 32, 5, 194, 56, 16, 72, 5, 194, 48, 80, 11, 5, 194, 36, 176, 11, 20, 2, 52, 48, 50, 109, 79, 84, 109, 50, 12, 109, 55,
-			0, 44, 81, 32, 101, 108, 32, 0, 12, 201, 81, 195, 79, 28, 21, 28, 76, 41, 204, 11, 11, 200, 57, 146, 84, 61, 69, 21, 56, 176,
-			11, 11, 3, 95, 53, 88, 110, 47, 84, 109, 50, 0, 0, 13, 202, 20, 193, 143, 28, 17, 28, 77, 196, 167, 48, 11, 10, 199, 20, 195,
-			153, 21, 35, 137, 20, 11, 13, 202, 32, 20, 218, 57, 195, 1, 81, 196, 167, 48, 11, 8, 197, 57, 147, 205, 77, 160, 11, 6, 195, 32,
-			19, 20, 11, 0, 8, 197, 157, 32, 75, 61, 32, 11, 23, 66, 137, 96, 113, 84, 23, 109, 55, 47, 109, 55, 47, 0, 11, 81, 101, 108,
-			116, 101, 108, 116, 32, 21, 66, 137, 96, 113, 84, 23, 108, 55, 108, 47, 12, 0, 11, 81, 97, 108, 97, 116, 116, 32, 8, 197, 54, 36,
-			142, 160, 176, 11, 8, 197, 49, 196, 218, 50, 112, 11, 13, 138, 116, 195, 182, 114, 197, 145, 100, 110, 105, 101, 11, 5, 194, 137, 96, 11,
-			10, 4, 95, 114, 110, 103, 49, 110, 52, 0, 0, 45, 67, 56, 20, 0, 50, 108, 48, 23, 108, 55, 108, 47, 12, 23, 47, 40, 72, 108,
-			47, 39, 91, 40, 55, 47, 0, 11, 82, 97, 108, 97, 116, 116, 32, 116, 117, 100, 97, 116, 111, 115, 117, 108, 116, 32, 50, 67, 56, 20,
-			0, 50, 108, 48, 23, 40, 47, 114, 50, 23, 89, 111, 55, 109, 47, 109, 47, 12, 23, 65, 109, 81, 0, 11, 83, 117, 116, 195, 161, 110,
-			32, 115, 122, 195, 188, 108, 101, 116, 101, 116, 116, 32, 109, 101, 103, 32, 19, 67, 56, 20, 0, 50, 108, 48, 10, 6, 15, 37, 91, 0,
-			11, 81, 105, 115, 32, 8, 197, 24, 241, 193, 37, 64, 11, 13, 202, 54, 113, 15, 78, 85, 28, 77, 196, 167, 48, 11, 8, 197, 20, 193,
-			71, 21, 64, 11, 8, 197, 40, 241, 193, 37, 64, 11, 8, 197, 41, 85, 15, 81, 64, 11, 6, 195, 56, 20, 0, 11, 0, 12, 201, 52,
-			81, 203, 173, 161, 5, 56, 145, 64, 11, 12, 201, 37, 51, 69, 72, 85, 5, 44, 85, 0, 11, 10, 199, 33, 195, 39, 104, 21, 15, 80,
-			11, 20, 67, 36, 146, 64, 107, 114, 52, 39, 65, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 9, 198, 88, 243, 129, 48, 21, 0,
-			11, 9, 198, 32, 149, 129, 80, 19, 20, 11, 30, 67, 24, 83, 148, 83, 109, 50, 47, 23, 108, 6, 15, 107, 109, 57, 109, 47, 0, 11,
-			82, 97, 32, 104, 101, 108, 121, 101, 116, 32, 9, 198, 40, 241, 207, 77, 83, 20, 11, 8, 197, 113, 71, 12, 49, 64, 11, 6, 195, 24,
-			83, 148, 11, 7, 195, 52, 84, 148, 72, 8, 13, 3, 95, 55, 111, 107, 109, 47, 109, 72, 37, 49, 0, 0, 9, 198, 64, 244, 218, 81,
-			41, 204, 11, 10, 199, 20, 197, 162, 28, 86, 154, 20, 11, 7, 196, 137, 38, 133, 52, 11, 10, 199, 77, 163, 204, 29, 195, 14, 4, 11,
-			6, 195, 46, 182, 132, 11, 0, 8, 197, 5, 163, 203, 5, 64, 11, 48, 70, 32, 149, 129, 80, 19, 0, 107, 37, 84, 108, 47, 108, 55,
-			23, 37, 55, 12, 109, 47, 113, 49, 109, 91, 113, 84, 109, 55, 0, 11, 81, 105, 108, 108, 101, 116, 195, 169, 107, 101, 115, 195, 169, 118,
-			101, 108, 32, 10, 199, 50, 130, 226, 76, 82, 210, 20, 11, 42, 69, 24, 83, 5, 81, 64, 83, 109, 55, 109, 47, 12, 23, 37, 91, 23,
-			65, 109, 81, 89, 117, 50, 37, 49, 0, 11, 82, 105, 115, 32, 109, 101, 103, 115, 122, 197, 177, 110, 105, 107, 32, 8, 197, 32, 149, 5,
-			49, 64, 11, 8, 197, 44, 144, 211, 37, 64, 11, 8, 197, 80, 84, 133, 53, 64, 11, 9, 198, 32, 149, 129, 80, 19, 0, 11, 8, 197,
-			49, 149, 75, 5, 64, 11, 8, 197, 76, 83, 139, 37, 64, 11, 8, 197, 24, 83, 5, 81, 64, 11, 11, 67, 34, 37, 128, 107, 113, 84,
-			0, 42, 42, 19, 2, 53, 48, 110, 47, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 14, 3, 95, 49, 113, 109, 79, 12,
-			109, 72, 37, 49, 109, 0, 0, 12, 3, 95, 54, 88, 107, 108, 47, 84, 108, 50, 0, 0, 9, 198, 46, 36, 162, 77, 33, 64, 11, 12,
-			201, 40, 83, 5, 57, 56, 135, 20, 180, 133, 11, 7, 196, 81, 81, 15, 52, 11, 0, 9, 198, 41, 196, 129, 80, 242, 192, 11, 0, 4,
-			193, 164, 43, 9, 3, 95, 55, 101, 107, 109, 47, 0, 0, 26, 67, 76, 83, 64, 91, 109, 65, 23, 49, 109, 52, 111, 55, 47, 0, 11,
-			81, 107, 101, 114, 195, 188, 108, 116, 32, 19, 67, 76, 83, 64, 91, 109, 65, 23, 83, 39, 81, 0, 11, 81, 102, 111, 103, 32, 31, 67,
-			76, 83, 64, 91, 109, 65, 10, 6, 15, 71, 37, 89, 47, 39, 91, 108, 49, 0, 11, 81, 98, 105, 122, 116, 111, 115, 97, 107, 32, 19,
-			67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 32, 67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 65,
-			40, 47, 108, 80, 12, 114, 49, 0, 11, 81, 109, 117, 116, 97, 116, 106, 195, 161, 107, 32, 25, 67, 76, 83, 64, 91, 109, 65, 10, 6,
-			15, 65, 109, 52, 109, 49, 0, 11, 81, 109, 101, 114, 101, 107, 32, 42, 67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 51, 37, 108, 72,
-			50, 108, 49, 23, 84, 37, 89, 12, 108, 0, 11, 82, 114, 105, 97, 100, 110, 97, 107, 32, 118, 105, 115, 115, 122, 97, 32, 40, 67, 76,
-			83, 64, 91, 109, 65, 23, 109, 65, 55, 112, 47, 109, 47, 12, 23, 108, 52, 52, 108, 0, 11, 82, 101, 109, 108, 195, 173, 116, 101, 116,
-			116, 32, 97, 114, 114, 97, 32, 54, 67, 76, 83, 64, 91, 109, 65, 23, 57, 109, 55, 109, 50, 47, 113, 49, 47, 109, 55, 109, 50, 23,
-			110, 89, 12, 109, 81, 0, 11, 82, 106, 101, 108, 101, 110, 116, 195, 169, 107, 116, 101, 108, 101, 110, 32, 195, 182, 115, 115, 122, 101, 103,
-			32, 23, 67, 76, 83, 64, 91, 109, 65, 23, 47, 40, 47, 12, 108, 0, 11, 81, 116, 117, 100, 116, 97, 32, 21, 67, 76, 83, 64, 91,
-			109, 65, 23, 49, 109, 55, 12, 0, 11, 81, 107, 101, 108, 108, 32, 26, 67, 76, 83, 64, 91, 109, 65, 23, 49, 37, 88, 114, 52, 47,
-			0, 11, 81, 107, 105, 122, 195, 161, 114, 116, 32, 41, 67, 76, 83, 64, 91, 109, 65, 23, 47, 40, 47, 12, 108, 49, 23, 65, 39, 50,
-			72, 108, 50, 37, 0, 11, 82, 116, 117, 100, 116, 97, 107, 32, 109, 111, 110, 100, 97, 110, 105, 32, 65, 67, 76, 83, 64, 91, 109, 65,
-			23, 83, 37, 79, 109, 55, 65, 109, 89, 47, 109, 47, 109, 47, 12, 23, 107, 108, 50, 81, 57, 109, 55, 88, 113, 91, 0, 11, 82, 102,
-			105, 103, 121, 101, 108, 109, 101, 122, 116, 101, 116, 101, 116, 116, 32, 104, 97, 110, 103, 106, 101, 108, 122, 195, 169, 115, 32, 66, 67, 76,
-			83, 64, 91, 109, 65, 23, 114, 55, 12, 23, 65, 115, 79, 12, 40, 49, 71, 108, 50, 23, 109, 55, 12, 109, 50, 118, 52, 37, 88, 50,
-			37, 0, 11, 83, 195, 161, 108, 108, 32, 109, 195, 179, 100, 106, 117, 107, 98, 97, 110, 32, 101, 108, 108, 101, 110, 197, 145, 114, 105, 122,
-			110, 105, 32, 19, 67, 76, 83, 64, 91, 109, 65, 65, 109, 79, 0, 11, 81, 109, 101, 103, 121, 32, 35, 67, 76, 83, 64, 91, 109, 65,
-			15, 108, 55, 49, 108, 55, 65, 108, 88, 50, 108, 49, 0, 11, 81, 97, 108, 107, 97, 108, 109, 97, 122, 110, 97, 107, 32, 24, 67, 76,
-			83, 64, 91, 109, 65, 15, 47, 110, 65, 37, 49, 0, 11, 81, 116, 195, 182, 109, 105, 107, 32, 10, 199, 16, 243, 7, 61, 166, 143, 56,
-			11, 7, 195, 76, 83, 64, 11, 17, 0, 12, 201, 28, 243, 132, 61, 50, 207, 16, 146, 192, 11, 15, 3, 95, 48, 111, 50, 6, 40, 55,
-			55, 108, 72, 37, 49, 0, 0, 10, 199, 32, 20, 218, 57, 195, 14, 36, 11, 12, 201, 24, 241, 204, 4, 197, 1, 45, 41, 204, 11, 6,
-			195, 160, 229, 0, 11, 0, 7, 196, 24, 83, 43, 48, 11, 7, 196, 58, 35, 137, 80, 11, 20, 2, 54, 48, 107, 108, 47, 84, 108, 50,
-			12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 0, 11, 200, 77, 160, 66, 9, 103, 14, 101, 64, 11, 14, 67, 36, 195, 0, 37, 55, 55,
-			109, 47, 84, 109, 0, 25, 0, 9, 198, 113, 67, 162, 104, 226, 64, 11, 7, 196, 32, 21, 14, 4, 11, 0, 10, 199, 20, 208, 133, 72,
-			82, 197, 80, 11, 45, 69, 60, 179, 218, 80, 16, 39, 49, 39, 89, 47, 108, 23, 48, 52, 39, 71, 55, 113, 65, 114, 49, 71, 115, 55,
-			0, 11, 81, 112, 114, 111, 98, 108, 195, 169, 109, 195, 161, 107, 98, 195, 179, 108, 32, 68, 69, 29, 145, 78, 28, 80, 79, 109, 50, 81,
-			109, 15, 55, 113, 81, 65, 39, 88, 81, 114, 91, 52, 108, 23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 11, 82, 108, 195,
-			169, 103, 109, 111, 122, 103, 195, 161, 115, 114, 97, 32, 115, 122, 195, 161, 109, 195, 173, 116, 104, 97, 116, 117, 110, 107, 32, 10, 199, 20,
-			208, 133, 72, 82, 197, 80, 11, 8, 197, 60, 179, 218, 80, 16, 11, 0, 11, 200, 34, 179, 25, 137, 50, 197, 16, 160, 11, 11, 200, 28,
-			20, 129, 57, 71, 12, 56, 144, 11, 0, 8, 197, 34, 112, 143, 73, 64, 11, 25, 67, 85, 71, 14, 40, 47, 114, 50, 23, 50, 113, 88,
-			50, 37, 0, 11, 81, 110, 195, 169, 122, 110, 105, 32, 12, 201, 77, 160, 66, 112, 198, 79, 104, 226, 64, 11, 9, 198, 46, 133, 133, 81,
-			65, 64, 11, 7, 195, 85, 71, 14, 11, 17, 0, 40, 72, 46, 134, 140, 20, 216, 142, 101, 64, 49, 110, 88, 55, 109, 65, 113, 67, 47,
-			23, 108, 72, 39, 47, 12, 23, 49, 37, 0, 11, 82, 97, 100, 111, 116, 116, 32, 107, 105, 32, 36, 67, 44, 86, 132, 49, 109, 88, 72,
-			23, 108, 6, 23, 83, 109, 55, 107, 118, 88, 109, 47, 0, 11, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 16, 205, 52,
-			240, 137, 49, 54, 143, 48, 119, 12, 80, 21, 39, 44, 11, 7, 196, 81, 81, 10, 4, 11, 9, 198, 46, 134, 168, 49, 65, 64, 11, 6,
-			195, 44, 86, 132, 11, 16, 3, 95, 57, 111, 49, 37, 55, 109, 50, 119, 109, 72, 37, 49, 0, 14, 4, 95, 50, 111, 120, 65, 114, 91,
-			39, 72, 37, 49, 0, 0, 8, 197, 45, 83, 3, 76, 16, 11, 16, 9, 95, 35, 45, 195, 161, 116, 195, 179, 108, 114, 47, 115, 55, 0,
-			0, 9, 198, 54, 163, 20, 74, 115, 0, 11, 20, 2, 55, 48, 107, 109, 47, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32,
-			0, 9, 198, 80, 19, 28, 49, 64, 64, 11, 10, 199, 8, 244, 165, 80, 19, 129, 44, 11, 13, 3, 95, 56, 88, 67, 39, 55, 119, 84,
-			108, 50, 0, 0, 11, 200, 32, 20, 218, 57, 195, 14, 4, 176, 11, 9, 198, 44, 86, 132, 21, 69, 0, 11, 15, 8, 95, 35, 45, 195,
-			161, 118, 97, 108, 114, 84, 108, 55, 0, 15, 8, 95, 35, 45, 195, 169, 118, 101, 108, 113, 84, 109, 55, 0, 0, 10, 199, 32, 21, 28,
-			77, 192, 129, 56, 11, 11, 200, 40, 83, 12, 20, 209, 90, 80, 80, 11, 29, 67, 57, 154, 140, 67, 116, 55, 15, 89, 109, 52, 109, 48,
-			113, 47, 0, 11, 81, 115, 122, 101, 114, 101, 112, 195, 169, 116, 32, 12, 201, 16, 243, 7, 61, 163, 156, 56, 18, 192, 11, 6, 195, 57,
-			154, 140, 11, 0, 9, 198, 88, 147, 28, 29, 41, 204, 11, 13, 202, 88, 243, 129, 80, 179, 218, 104, 19, 129, 44, 11, 34, 68, 54, 113,
-			15, 80, 65, 115, 72, 39, 47, 23, 84, 114, 55, 108, 89, 47, 39, 65, 0, 11, 81, 118, 195, 161, 108, 97, 115, 122, 116, 111, 109, 32,
-			8, 197, 32, 85, 165, 80, 144, 11, 8, 197, 76, 81, 229, 80, 144, 11, 9, 198, 37, 72, 140, 82, 34, 192, 11, 0, 12, 201, 80, 84,
-			133, 50, 36, 226, 8, 83, 128, 11, 9, 198, 4, 64, 75, 61, 163, 137, 11, 8, 197, 32, 21, 14, 4, 176, 11, 12, 201, 24, 244, 146,
-			113, 50, 231, 16, 224, 75, 11, 12, 201, 44, 145, 143, 29, 196, 207, 49, 64, 64, 11, 0, 9, 198, 46, 134, 168, 48, 226, 64, 11, 9,
-			198, 44, 19, 69, 73, 197, 0, 11, 11, 200, 46, 133, 133, 80, 83, 14, 20, 176, 11, 12, 201, 46, 134, 144, 60, 229, 10, 112, 32, 78,
-			11, 11, 200, 36, 120, 142, 100, 82, 78, 20, 176, 11, 11, 200, 52, 82, 5, 80, 232, 142, 20, 176, 11, 9, 198, 65, 35, 194, 50, 35,
-			65, 11, 0, 40, 70, 4, 192, 80, 84, 201, 192, 108, 55, 108, 48, 40, 55, 115, 23, 47, 110, 52, 47, 113, 50, 109, 47, 109, 0, 11,
-			81, 116, 195, 182, 114, 116, 195, 169, 110, 101, 116, 101, 32, 11, 200, 161, 52, 218, 22, 179, 14, 20, 176, 11, 6, 195, 46, 129, 0, 11,
-			0, 30, 66, 44, 144, 49, 37, 23, 84, 39, 55, 47, 23, 112, 52, 84, 108, 0, 11, 82, 118, 111, 108, 116, 32, 195, 173, 114, 118, 97,
-			32, 39, 66, 44, 144, 49, 37, 23, 49, 109, 55, 12, 23, 47, 109, 52, 57, 109, 72, 50, 37, 109, 0, 11, 82, 107, 101, 108, 108, 32,
-			116, 101, 114, 106, 101, 100, 110, 105, 101, 32, 35, 66, 44, 144, 49, 37, 23, 49, 109, 55, 12, 23, 65, 39, 50, 72, 108, 50, 37, 0,
-			11, 82, 107, 101, 108, 108, 32, 109, 111, 110, 100, 97, 110, 105, 32, 32, 66, 44, 144, 49, 37, 10, 6, 15, 108, 88, 10, 6, 15, 110,
-			47, 55, 109, 47, 0, 11, 82, 97, 122, 32, 195, 182, 116, 108, 101, 116, 32, 12, 201, 80, 20, 148, 61, 168, 139, 113, 96, 76, 11, 29,
-			66, 44, 144, 10, 49, 37, 15, 83, 39, 81, 15, 112, 52, 50, 37, 0, 11, 82, 102, 111, 103, 32, 195, 173, 114, 110, 105, 32, 21, 66,
-			44, 144, 49, 37, 15, 47, 40, 79, 12, 108, 0, 11, 81, 116, 117, 100, 106, 97, 32, 25, 66, 44, 144, 49, 37, 55, 109, 107, 109, 47,
-			108, 88, 0, 11, 82, 108, 101, 104, 101, 116, 32, 97, 122, 32, 13, 202, 77, 161, 82, 88, 86, 133, 80, 184, 142, 80, 11, 5, 194, 44,
-			144, 11, 21, 2, 56, 48, 67, 39, 55, 119, 84, 108, 50, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 14, 3, 95, 52, 113, 50, 109,
-			79, 109, 72, 37, 49, 109, 0, 0, 8, 197, 88, 243, 20, 4, 176, 11, 8, 197, 16, 243, 7, 60, 176, 11, 10, 199, 88, 84, 218, 80,
-			84, 226, 28, 11, 45, 69, 16, 243, 7, 60, 176, 72, 39, 55, 81, 39, 49, 10, 6, 15, 37, 72, 109, 81, 109, 91, 112, 47, 109, 50,
-			109, 49, 0, 11, 81, 105, 100, 101, 103, 101, 115, 195, 173, 116, 101, 110, 101, 107, 32, 14, 203, 77, 161, 82, 88, 86, 133, 80, 82, 206,
-			20, 176, 11, 12, 201, 48, 81, 197, 56, 84, 156, 48, 226, 64, 11, 13, 202, 32, 20, 218, 57, 195, 1, 81, 197, 129, 48, 11, 7, 196,
-			76, 18, 148, 156, 11, 12, 201, 20, 195, 98, 48, 85, 5, 44, 33, 78, 11, 10, 199, 80, 84, 133, 53, 74, 206, 44, 11, 13, 202, 8,
-			83, 85, 80, 21, 28, 77, 197, 129, 48, 11, 12, 201, 45, 85, 1, 81, 196, 207, 44, 32, 78, 11, 6, 195, 58, 35, 0, 11, 6, 195,
-			42, 163, 0, 15, 15, 3, 95, 57, 88, 49, 37, 55, 109, 50, 119, 84, 109, 50, 0, 0, 13, 202, 81, 195, 79, 28, 21, 28, 77, 197,
-			129, 48, 11, 9, 198, 89, 193, 217, 4, 149, 0, 11, 6, 195, 12, 243, 20, 11, 0, 24, 67, 89, 195, 20, 84, 114, 55, 47, 23, 84,
-			39, 55, 50, 108, 0, 11, 81, 118, 111, 108, 110, 97, 32, 14, 203, 44, 244, 140, 113, 67, 218, 113, 55, 22, 4, 192, 11, 20, 195, 89,
-			195, 20, 11, 81, 104, 105, 118, 97, 116, 97, 108, 111, 115, 115, 195, 161, 32, 10, 199, 52, 81, 226, 73, 65, 78, 36, 11, 12, 201, 48,
-			81, 133, 16, 85, 20, 78, 33, 192, 11, 6, 195, 89, 195, 20, 11, 10, 6, 95, 35, 45, 105, 107, 105, 37, 0, 0, 32, 69, 81, 81,
-			15, 81, 64, 47, 40, 72, 39, 47, 12, 23, 48, 37, 107, 109, 50, 12, 37, 0, 11, 81, 112, 105, 104, 101, 110, 110, 105, 32, 9, 198,
-			46, 132, 218, 160, 234, 13, 11, 8, 197, 4, 64, 84, 61, 64, 11, 8, 197, 29, 154, 18, 29, 144, 11, 8, 197, 81, 81, 15, 81, 64,
-			11, 6, 195, 58, 36, 0, 11, 6, 195, 46, 132, 0, 11, 0, 8, 197, 52, 84, 226, 49, 64, 11, 8, 197, 52, 84, 226, 49, 64, 11,
-			0, 6, 195, 58, 33, 217, 11, 0, 17, 206, 82, 132, 150, 136, 230, 74, 5, 96, 83, 48, 21, 18, 156, 192, 11, 7, 196, 48, 20, 15,
-			80, 11, 11, 200, 24, 244, 132, 149, 66, 1, 82, 112, 11, 7, 196, 90, 33, 226, 56, 11, 7, 196, 21, 49, 84, 80, 11, 9, 198, 49,
-			197, 19, 104, 245, 20, 11, 7, 196, 90, 33, 226, 56, 15, 0, 8, 197, 44, 149, 162, 88, 80, 11, 15, 204, 77, 167, 12, 49, 196, 200,
-			20, 198, 69, 44, 85, 0, 11, 6, 195, 58, 37, 128, 11, 23, 2, 57, 48, 49, 37, 55, 109, 50, 119, 84, 109, 50, 12, 109, 55, 0,
-			44, 81, 32, 101, 108, 32, 13, 3, 95, 53, 113, 110, 47, 110, 72, 37, 49, 109, 0, 0, 0, 9, 198, 77, 167, 13, 60, 68, 129, 11,
-			0, 9, 198, 36, 225, 37, 80, 245, 20, 11, 5, 130, 57, 53, 11, 9, 198, 32, 144, 156, 104, 245, 20, 11, 12, 201, 46, 36, 26, 137,
-			49, 75, 44, 83, 0, 11, 9, 198, 29, 151, 18, 80, 245, 20, 11, 10, 6, 95, 35, 45, 105, 107, 97, 108, 0, 0, 7, 196, 88, 85,
-			9, 44, 11, 7, 196, 44, 86, 162, 80, 11, 10, 199, 46, 134, 148, 84, 67, 212, 80, 11, 14, 203, 52, 81, 220, 48, 192, 80, 149, 66,
-			1, 82, 112, 11, 0, 21, 69, 80, 84, 218, 36, 176, 47, 109, 89, 37, 49, 23, 49, 37, 0, 11, 81, 107, 105, 32, 35, 70, 10, 36,
-			140, 21, 66, 64, 71, 113, 52, 55, 109, 47, 37, 23, 72, 112, 57, 108, 49, 52, 108, 0, 11, 81, 100, 195, 173, 106, 97, 107, 114, 97,
-			32, 8, 197, 80, 84, 218, 36, 176, 11, 0, 11, 200, 77, 170, 22, 20, 120, 150, 20, 192, 11, 12, 201, 77, 161, 77, 50, 35, 20, 21,
-			69, 133, 11, 12, 201, 57, 146, 76, 5, 66, 207, 104, 245, 20, 11, 13, 3, 95, 52, 111, 50, 109, 79, 109, 72, 37, 49, 0, 0, 12,
-			201, 32, 19, 12, 28, 21, 39, 56, 18, 192, 11, 12, 201, 80, 20, 148, 4, 195, 92, 56, 18, 192, 11, 8, 197, 28, 243, 132, 60, 208,
-			11, 6, 195, 77, 170, 204, 11, 12, 201, 52, 81, 207, 48, 71, 19, 56, 18, 192, 11, 14, 139, 101, 108, 101, 109, 122, 197, 145, 107, 98,
-			101, 110, 11, 8, 197, 52, 243, 132, 60, 208, 11, 6, 195, 20, 202, 12, 11, 14, 4, 95, 115, 116, 107, 114, 47, 107, 116, 88, 114, 91,
-			0, 10, 6, 95, 35, 45, 105, 107, 101, 109, 0, 0, 55, 74, 65, 35, 194, 50, 35, 92, 41, 194, 15, 104, 48, 52, 39, 71, 55, 113,
-			65, 114, 57, 114, 107, 39, 88, 23, 107, 108, 91, 39, 50, 55, 112, 47, 39, 47, 12, 108, 0, 11, 81, 104, 97, 115, 111, 110, 108, 195,
-			173, 116, 111, 116, 116, 97, 32, 9, 198, 16, 80, 197, 52, 33, 82, 15, 9, 198, 56, 245, 133, 52, 33, 82, 15, 0, 8, 197, 24, 241,
-			212, 60, 176, 76, 39, 68, 20, 195, 5, 56, 109, 55, 12, 109, 50, 23, 55, 113, 47, 52, 109, 107, 39, 88, 39, 47, 12, 0, 11, 81,
-			108, 195, 169, 116, 114, 101, 104, 111, 122, 111, 116, 116, 32, 47, 68, 20, 195, 5, 56, 109, 55, 12, 109, 50, 10, 6, 15, 107, 37, 52,
-			72, 109, 47, 12, 113, 49, 10, 6, 15, 65, 109, 81, 0, 11, 82, 104, 105, 114, 100, 101, 116, 116, 195, 169, 107, 32, 109, 101, 103, 32,
-			11, 200, 77, 1, 67, 36, 98, 75, 85, 48, 11, 30, 70, 44, 144, 68, 113, 48, 64, 49, 37, 108, 72, 114, 91, 108, 23, 55, 109, 107,
-			109, 47, 0, 11, 81, 108, 101, 104, 101, 116, 32, 9, 198, 80, 20, 148, 113, 48, 64, 11, 7, 196, 20, 195, 5, 56, 11, 5, 194, 136,
-			112, 11, 5, 194, 136, 112, 11, 7, 196, 20, 195, 5, 56, 11, 0, 6, 195, 60, 183, 14, 11, 9, 198, 32, 246, 142, 37, 82, 192, 11,
-			0, 7, 196, 4, 65, 9, 28, 11, 11, 200, 32, 83, 25, 21, 69, 5, 76, 80, 11, 9, 198, 88, 20, 220, 72, 224, 80, 15, 0, 9,
-			198, 21, 54, 139, 161, 168, 148, 11, 9, 134, 197, 145, 114, 110, 101, 107, 11, 0, 31, 68, 24, 241, 202, 4, 83, 39, 81, 57, 108, 10,
-			6, 15, 113, 52, 47, 109, 50, 37, 0, 11, 81, 195, 169, 114, 116, 101, 110, 105, 32, 40, 68, 24, 241, 202, 4, 83, 39, 81, 57, 108,
-			23, 109, 52, 109, 72, 65, 113, 67, 109, 88, 50, 37, 0, 11, 81, 101, 114, 101, 100, 109, 195, 169, 110, 121, 101, 122, 110, 105, 32, 8,
-			197, 88, 145, 5, 156, 176, 11, 6, 195, 77, 160, 82, 11, 9, 198, 44, 149, 40, 49, 72, 147, 11, 6, 195, 77, 160, 82, 11, 7, 196,
-			24, 241, 202, 4, 11, 0, 44, 69, 56, 17, 217, 72, 16, 50, 108, 79, 52, 108, 10, 6, 15, 84, 108, 50, 10, 6, 15, 114, 55, 112,
-			47, 84, 108, 0, 11, 82, 118, 97, 110, 32, 195, 161, 108, 108, 195, 173, 116, 118, 97, 32, 9, 198, 40, 83, 5, 57, 66, 75, 11, 8,
-			197, 80, 148, 218, 80, 16, 11, 11, 200, 36, 225, 37, 81, 103, 14, 101, 64, 11, 8, 197, 77, 161, 82, 16, 16, 15, 0, 13, 138, 197,
-			145, 115, 122, 105, 110, 116, 195, 169, 110, 11, 10, 199, 60, 181, 1, 80, 226, 85, 44, 11, 12, 137, 109, 197, 177, 115, 111, 114, 110, 97,
-			107, 11, 0, 8, 197, 44, 85, 25, 20, 112, 11, 28, 67, 45, 196, 148, 49, 114, 52, 47, 10, 6, 15, 39, 49, 39, 88, 50, 108, 0,
-			11, 81, 111, 107, 111, 122, 110, 97, 32, 12, 201, 45, 96, 76, 36, 98, 75, 112, 197, 0, 11, 10, 199, 77, 163, 198, 81, 97, 82, 80,
-			11, 10, 199, 32, 19, 135, 77, 161, 82, 80, 11, 6, 195, 45, 196, 148, 11, 6, 195, 34, 84, 148, 11, 0, 35, 68, 32, 246, 142, 4,
-			107, 39, 88, 50, 108, 23, 65, 109, 81, 39, 55, 72, 114, 91, 47, 0, 11, 81, 109, 101, 103, 111, 108, 100, 195, 161, 115, 116, 32, 28,
-			70, 46, 36, 218, 172, 197, 0, 49, 113, 89, 111, 55, 47, 23, 52, 115, 55, 108, 0, 11, 81, 114, 195, 179, 108, 97, 32, 43, 68, 80,
-			17, 202, 4, 47, 108, 81, 57, 108, 23, 37, 91, 23, 76, 108, 47, 55, 108, 49, 39, 88, 37, 49, 0, 11, 82, 105, 115, 32, 99, 115,
-			97, 116, 108, 97, 107, 111, 122, 105, 107, 32, 7, 196, 80, 17, 202, 4, 11, 11, 200, 82, 132, 133, 44, 81, 14, 20, 176, 11, 9, 198,
-			17, 39, 7, 84, 197, 0, 11, 9, 198, 46, 36, 218, 172, 197, 0, 11, 0, 17, 68, 77, 165, 147, 104, 101, 115, 122, 118, 195, 169, 101,
-			115, 122, 0, 29, 11, 200, 77, 161, 82, 88, 86, 133, 80, 80, 11, 8, 197, 81, 81, 14, 36, 16, 11, 8, 197, 32, 17, 217, 88, 16,
-			11, 7, 196, 4, 130, 15, 104, 11, 7, 196, 50, 130, 212, 20, 11, 8, 197, 88, 148, 211, 104, 16, 11, 0, 9, 198, 112, 195, 28, 76,
-			32, 78, 11, 0, 10, 199, 77, 170, 204, 21, 67, 133, 44, 11, 8, 197, 57, 147, 205, 60, 176, 11, 10, 199, 64, 243, 148, 41, 195, 129,
-			44, 11, 14, 203, 20, 195, 85, 48, 20, 218, 80, 245, 20, 84, 176, 11, 17, 142, 107, 195, 169, 112, 122, 197, 145, 100, 104, 101, 116, 110,
-			101, 107, 11, 14, 203, 52, 17, 217, 5, 35, 210, 77, 167, 7, 60, 224, 11, 6, 195, 48, 22, 129, 11, 8, 197, 77, 160, 86, 4, 176,
-			11, 8, 197, 88, 84, 218, 36, 176, 11, 9, 198, 20, 118, 65, 73, 195, 148, 11, 17, 9, 95, 35, 45, 195, 169, 110, 195, 169, 108, 113,
-			50, 113, 55, 0, 16, 0, 7, 196, 24, 241, 206, 36, 11, 31, 68, 80, 83, 142, 36, 47, 109, 50, 12, 37, 10, 6, 15, 108, 49, 108,
-			52, 114, 91, 0, 11, 81, 97, 107, 97, 114, 195, 161, 115, 32, 21, 67, 82, 35, 153, 47, 113, 67, 10, 6, 15, 91, 109, 65, 0, 11,
-			81, 115, 101, 109, 32, 22, 68, 80, 83, 142, 36, 47, 109, 50, 12, 37, 23, 108, 89, 47, 0, 11, 81, 97, 122, 116, 32, 6, 195, 82,
-			35, 153, 11, 7, 196, 80, 83, 142, 36, 11, 10, 199, 36, 225, 15, 44, 243, 20, 4, 11, 6, 195, 26, 35, 153, 11, 6, 195, 90, 86,
-			128, 11, 0, 10, 199, 16, 240, 156, 77, 197, 129, 48, 11, 10, 199, 46, 133, 133, 80, 83, 20, 20, 11, 6, 195, 85, 64, 83, 11, 8,
-			197, 24, 17, 217, 56, 144, 11, 10, 199, 160, 227, 65, 29, 197, 129, 48, 11, 10, 199, 37, 39, 14, 101, 197, 129, 48, 11, 0, 11, 200,
-			89, 195, 1, 77, 163, 204, 80, 16, 11, 11, 200, 44, 144, 68, 113, 55, 22, 4, 192, 11, 0, 6, 195, 88, 150, 133, 11, 0, 20, 66,
-			56, 80, 50, 109, 23, 50, 113, 88, 88, 0, 11, 81, 110, 195, 169, 122, 122, 32, 9, 198, 42, 116, 218, 112, 115, 212, 11, 24, 66, 56,
-			80, 50, 109, 10, 6, 15, 47, 109, 50, 12, 113, 0, 11, 81, 116, 101, 110, 110, 195, 169, 32, 17, 142, 195, 169, 114, 116, 101, 115, 195,
-			173, 116, 197, 145, 118, 101, 108, 11, 12, 201, 90, 85, 141, 112, 230, 65, 37, 96, 76, 11, 9, 198, 85, 64, 90, 61, 69, 0, 11, 9,
-			198, 32, 19, 12, 41, 82, 192, 11, 9, 198, 32, 83, 25, 21, 69, 0, 11, 7, 196, 32, 147, 142, 36, 11, 6, 195, 54, 35, 25, 11,
-			7, 196, 48, 83, 142, 36, 11, 5, 194, 56, 80, 11, 0, 41, 68, 46, 134, 148, 36, 49, 110, 89, 47, 37, 23, 49, 111, 55, 110, 50,
-			71, 91, 113, 81, 109, 49, 0, 11, 81, 107, 195, 188, 108, 195, 182, 110, 98, 115, 195, 169, 103, 101, 107, 32, 13, 202, 36, 195, 5, 82,
-			34, 197, 78, 37, 133, 48, 11, 51, 68, 46, 134, 148, 36, 49, 110, 89, 47, 37, 23, 50, 113, 88, 109, 47, 109, 55, 47, 113, 52, 113,
-			91, 109, 49, 109, 47, 0, 11, 81, 110, 195, 169, 122, 101, 116, 101, 108, 116, 195, 169, 114, 195, 169, 115, 101, 107, 101, 116, 32, 9, 198,
-			29, 144, 76, 60, 115, 211, 11, 8, 197, 8, 18, 129, 36, 208, 11, 0, 12, 201, 46, 36, 218, 149, 72, 147, 137, 97, 76, 11, 26, 67,
-			85, 64, 84, 40, 47, 108, 47, 15, 49, 108, 48, 39, 47, 12, 0, 11, 81, 107, 97, 112, 111, 116, 116, 32, 9, 198, 80, 84, 150, 21,
-			162, 64, 11, 9, 198, 36, 120, 142, 100, 83, 0, 11, 9, 198, 89, 195, 20, 61, 169, 192, 11, 7, 196, 45, 83, 3, 76, 11, 9, 198,
-			80, 21, 129, 77, 162, 64, 15, 15, 3, 95, 56, 113, 67, 39, 55, 119, 108, 72, 37, 49, 108, 0, 0, 7, 196, 85, 64, 76, 80, 11,
-			9, 198, 48, 81, 143, 29, 147, 137, 11, 7, 196, 4, 197, 68, 80, 11, 0, 9, 198, 41, 197, 19, 104, 19, 137, 11, 7, 196, 136, 113,
-			84, 80, 11, 9, 198, 18, 82, 129, 44, 21, 0, 11, 8, 197, 49, 197, 10, 84, 176, 11, 0, 20, 68, 53, 196, 210, 4, 65, 114, 91,
-			52, 108, 23, 37, 91, 0, 11, 81, 105, 115, 32, 12, 201, 72, 83, 132, 20, 194, 197, 104, 83, 0, 11, 9, 198, 24, 150, 137, 45, 83,
-			106, 11, 7, 196, 58, 38, 150, 20, 11, 9, 198, 24, 241, 193, 48, 213, 75, 11, 6, 195, 46, 165, 0, 11, 0, 6, 195, 52, 83, 148,
-			11, 0, 12, 201, 29, 145, 82, 52, 82, 197, 44, 85, 0, 11, 11, 200, 53, 85, 15, 28, 21, 10, 84, 176, 11, 10, 199, 24, 83, 43,
-			48, 85, 34, 56, 11, 10, 199, 80, 84, 171, 48, 85, 34, 56, 11, 7, 196, 88, 19, 39, 44, 11, 0, 15, 66, 49, 144, 109, 55, 55,
-			37, 48, 89, 37, 55, 39, 50, 0, 9, 198, 14, 35, 10, 4, 149, 0, 11, 9, 198, 88, 19, 1, 44, 149, 0, 11, 5, 194, 61, 48,
-			72, 18, 4, 95, 99, 105, 114, 119, 37, 52, 49, 40, 65, 83, 55, 109, 49, 89, 0, 0, 0, 9, 198, 80, 85, 19, 104, 85, 20, 11,
-			8, 197, 88, 86, 162, 72, 80, 11, 10, 199, 28, 243, 132, 60, 197, 21, 44, 11, 9, 198, 160, 234, 11, 56, 82, 192, 11, 8, 197, 82,
-			131, 139, 72, 80, 11, 9, 198, 41, 196, 129, 18, 34, 192, 11, 10, 199, 81, 83, 1, 40, 67, 206, 168, 11, 6, 131, 110, 197, 145, 11,
-			17, 3, 95, 57, 113, 49, 37, 55, 109, 50, 119, 109, 72, 37, 49, 109, 0, 13, 4, 95, 48, 77, 52, 71, 37, 55, 55, 37, 115, 0,
-			0, 9, 198, 32, 19, 28, 49, 32, 64, 11, 8, 197, 40, 83, 26, 36, 176, 11, 34, 71, 48, 81, 129, 29, 147, 212, 80, 55, 109, 83,
-			108, 79, 39, 47, 12, 23, 65, 37, 50, 72, 109, 50, 0, 11, 81, 109, 105, 110, 100, 101, 110, 32, 8, 197, 24, 83, 18, 4, 176, 11,
-			9, 198, 52, 20, 16, 113, 32, 64, 11, 8, 197, 32, 148, 218, 36, 176, 11, 0, 32, 70, 40, 83, 26, 137, 53, 0, 57, 109, 55, 88,
-			113, 91, 47, 10, 6, 15, 108, 72, 50, 108, 49, 0, 11, 81, 97, 100, 110, 97, 107, 32, 31, 70, 77, 163, 198, 81, 97, 82, 89, 39,
-			83, 47, 84, 109, 52, 23, 50, 109, 84, 113, 47, 0, 11, 81, 110, 101, 118, 195, 169, 116, 32, 9, 198, 89, 196, 220, 72, 243, 20, 11,
-			7, 196, 41, 85, 14, 36, 11, 14, 3, 95, 56, 111, 67, 39, 55, 119, 108, 72, 37, 49, 0, 13, 4, 95, 48, 77, 50, 65, 37, 55,
-			55, 37, 115, 0, 0, 11, 200, 8, 150, 143, 57, 153, 84, 136, 176, 11, 6, 195, 88, 243, 128, 11, 15, 4, 95, 48, 77, 51, 65, 37,
-			55, 55, 37, 114, 52, 72, 0, 0, 8, 197, 52, 81, 226, 72, 144, 11, 15, 204, 46, 133, 5, 48, 86, 133, 81, 68, 226, 30, 37, 0,
-			11, 52, 69, 77, 167, 13, 149, 64, 89, 114, 65, 112, 47, 10, 6, 15, 108, 6, 15, 65, 37, 50, 37, 89, 47, 109, 52, 109, 55, 50,
-			110, 49, 0, 11, 82, 97, 32, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108, 110, 195, 182, 107, 32, 13, 202, 4, 194, 193, 48, 208,
-			90, 104, 19, 129, 44, 11, 8, 197, 46, 36, 218, 149, 64, 11, 8, 197, 77, 167, 13, 149, 64, 11, 0, 8, 197, 48, 84, 218, 20, 176,
-			72, 42, 75, 77, 169, 203, 5, 0, 211, 60, 192, 84, 60, 176, 89, 115, 49, 108, 48, 76, 39, 55, 108, 47, 39, 49, 23, 84, 108, 50,
-			12, 108, 49, 0, 11, 81, 118, 97, 110, 110, 97, 107, 32, 8, 197, 80, 81, 217, 20, 176, 11, 7, 196, 82, 84, 21, 76, 11, 8, 197,
-			44, 20, 20, 4, 176, 11, 11, 4, 95, 48, 77, 49, 109, 88, 109, 52, 0, 0, 15, 204, 44, 243, 80, 72, 243, 73, 77, 54, 149, 52,
-			242, 192, 11, 58, 73, 80, 84, 150, 21, 168, 147, 137, 97, 76, 47, 109, 34, 84, 109, 88, 113, 91, 113, 84, 109, 55, 23, 83, 39, 81,
-			55, 108, 55, 49, 39, 88, 115, 23, 119, 113, 81, 0, 11, 82, 102, 111, 103, 108, 97, 108, 107, 111, 122, 195, 179, 32, 99, 195, 169, 103,
-			32, 8, 133, 116, 101, 118, 197, 145, 11, 9, 198, 4, 176, 82, 41, 82, 192, 11, 7, 196, 81, 81, 14, 36, 11, 0, 8, 67, 17, 164,
-			192, 75, 113, 0, 9, 134, 107, 195, 169, 114, 197, 145, 11, 8, 197, 81, 33, 78, 16, 144, 11, 8, 197, 149, 35, 156, 56, 176, 11, 8,
-			197, 90, 33, 218, 137, 48, 11, 6, 195, 54, 113, 0, 11, 6, 195, 8, 244, 128, 11, 6, 195, 172, 197, 0, 11, 0, 14, 203, 20, 195,
-			211, 104, 192, 84, 113, 55, 22, 4, 192, 11, 14, 203, 4, 194, 193, 48, 208, 90, 113, 55, 22, 4, 192, 11, 9, 198, 29, 145, 78, 30,
-			179, 0, 11, 14, 139, 101, 108, 197, 145, 107, 101, 114, 101, 115, 110, 105, 11, 11, 6, 95, 35, 45, 195, 161, 110, 114, 50, 0, 0, 15,
-			204, 90, 33, 204, 20, 113, 83, 149, 65, 84, 82, 34, 192, 11, 24, 68, 56, 82, 197, 16, 50, 109, 49, 109, 72, 15, 49, 109, 55, 12,
-			0, 11, 81, 107, 101, 108, 108, 32, 7, 196, 24, 82, 133, 16, 11, 7, 196, 56, 82, 197, 16, 11, 0, 24, 70, 4, 192, 75, 84, 197,
-			0, 108, 55, 108, 49, 40, 55, 47, 23, 49, 37, 0, 11, 81, 107, 105, 32, 7, 196, 77, 160, 71, 4, 11, 11, 200, 24, 82, 140, 21,
-			54, 148, 137, 48, 11, 0, 28, 70, 53, 196, 207, 16, 146, 192, 65, 114, 91, 39, 72, 37, 49, 23, 109, 55, 109, 65, 0, 11, 81, 101,
-			108, 101, 109, 32, 15, 204, 13, 48, 80, 4, 72, 139, 72, 83, 132, 77, 161, 82, 11, 10, 199, 46, 37, 19, 136, 113, 73, 80, 11, 9,
-			198, 72, 83, 98, 48, 146, 192, 11, 11, 200, 82, 132, 140, 21, 54, 148, 137, 48, 11, 11, 200, 20, 194, 226, 65, 161, 76, 137, 48, 11,
-			15, 7, 95, 35, 45, 116, 197, 145, 108, 113, 47, 118, 55, 0, 16, 0, 15, 204, 32, 18, 140, 136, 181, 1, 48, 19, 138, 4, 147, 139,
-			11, 15, 204, 32, 246, 154, 112, 167, 18, 84, 199, 19, 113, 96, 76, 11, 11, 200, 89, 195, 1, 77, 165, 1, 56, 144, 11, 0, 11, 200,
-			44, 83, 5, 80, 177, 90, 36, 176, 11, 9, 198, 44, 19, 11, 84, 199, 12, 11, 0, 7, 196, 72, 149, 11, 4, 11, 18, 143, 102, 101,
-			108, 101, 108, 197, 145, 115, 115, 195, 169, 103, 195, 188, 107, 11, 7, 196, 32, 83, 25, 20, 11, 11, 200, 46, 133, 133, 80, 177, 90, 36,
-			176, 11, 6, 195, 34, 134, 128, 11, 0, 9, 198, 81, 81, 10, 4, 224, 75, 11, 36, 69, 80, 84, 212, 72, 80, 47, 109, 91, 47, 52,
-			109, 10, 6, 15, 89, 108, 71, 107, 108, 47, 115, 0, 11, 81, 115, 122, 97, 98, 104, 97, 116, 195, 179, 32, 12, 201, 89, 195, 12, 4,
-			192, 84, 10, 115, 0, 11, 8, 197, 49, 197, 20, 112, 176, 11, 15, 4, 95, 108, 105, 103, 55, 37, 81, 108, 47, 116, 52, 108, 0, 9,
-			198, 80, 21, 129, 77, 167, 14, 15, 15, 7, 95, 35, 45, 114, 197, 145, 108, 113, 52, 118, 55, 0, 16, 0, 11, 136, 112, 101, 114, 99,
-			114, 197, 145, 108, 17, 12, 201, 8, 150, 148, 61, 57, 84, 41, 194, 192, 11, 9, 198, 78, 162, 148, 41, 194, 192, 11, 9, 198, 77, 167,
-			14, 41, 194, 192, 11, 9, 198, 77, 167, 13, 49, 194, 192, 11, 12, 201, 52, 17, 217, 5, 39, 26, 105, 194, 192, 11, 0, 10, 199, 4,
-			192, 80, 61, 165, 28, 44, 11, 10, 199, 20, 195, 79, 56, 69, 28, 44, 11, 12, 201, 53, 83, 139, 5, 71, 18, 76, 18, 64, 11, 8,
-			197, 4, 64, 84, 60, 176, 11, 0, 19, 71, 44, 147, 15, 29, 32, 77, 52, 107, 105, 108, 111, 103, 114, 97, 109, 0, 29, 15, 204, 161,
-			52, 218, 64, 243, 148, 61, 57, 84, 4, 226, 64, 11, 6, 195, 10, 86, 128, 11, 9, 198, 10, 84, 156, 49, 71, 11, 11, 13, 67, 61,
-			68, 0, 115, 47, 113, 48, 113, 0, 42, 42, 0, 8, 197, 80, 242, 156, 77, 64, 11, 19, 67, 61, 69, 0, 39, 47, 12, 23, 84, 108,
-			50, 0, 11, 81, 118, 97, 110, 32, 14, 139, 114, 195, 169, 115, 122, 195, 169, 98, 197, 145, 108, 11, 12, 201, 24, 82, 140, 21, 54, 148,
-			137, 49, 78, 11, 6, 195, 61, 69, 0, 11, 6, 195, 56, 245, 128, 15, 0, 11, 200, 24, 243, 25, 156, 148, 129, 80, 16, 11, 11, 200,
-			88, 150, 147, 29, 195, 1, 80, 16, 11, 0, 12, 201, 53, 83, 139, 5, 71, 18, 77, 197, 0, 11, 0, 18, 66, 64, 48, 112, 195, 169,
-			99, 195, 169, 115, 0, 44, 29, 42, 81, 115, 32, 17, 66, 64, 48, 112, 195, 169, 99, 195, 169, 110, 0, 44, 29, 81, 110, 32, 18, 66,
-			64, 48, 112, 195, 169, 99, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 18, 66, 64, 48, 112, 195, 169, 99, 195, 169, 107, 0, 44, 29,
-			42, 81, 107, 32, 10, 199, 81, 81, 8, 5, 67, 156, 16, 11, 26, 68, 8, 83, 43, 48, 71, 109, 55, 111, 55, 23, 65, 108, 52, 108,
-			72, 0, 11, 81, 109, 97, 114, 97, 100, 32, 7, 196, 8, 83, 43, 48, 11, 5, 194, 52, 144, 11, 20, 66, 44, 208, 49, 37, 55, 115,
-			65, 113, 47, 109, 52, 47, 0, 44, 11, 81, 116, 32, 22, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 109, 91, 0, 44, 11,
-			81, 101, 115, 32, 23, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 67, 37, 0, 44, 11, 81, 110, 121, 105, 32, 27, 66, 44,
-			208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 67, 37, 52, 109, 0, 44, 11, 81, 110, 121, 105, 114, 101, 32, 22, 66, 44, 208, 49, 37,
-			55, 115, 65, 113, 47, 109, 52, 52, 109, 0, 44, 11, 81, 114, 101, 32, 15, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 0,
-			11, 0, 0, 10, 199, 10, 84, 167, 77, 193, 207, 80, 11, 11, 200, 18, 131, 148, 161, 69, 43, 56, 176, 11, 6, 195, 32, 149, 20, 11,
-			0, 12, 201, 4, 194, 193, 48, 208, 90, 61, 69, 0, 11, 0, 9, 198, 36, 229, 34, 104, 85, 0, 11, 9, 198, 80, 19, 28, 48, 231,
-			4, 11, 9, 198, 84, 69, 129, 73, 195, 128, 11, 12, 201, 32, 20, 207, 56, 201, 211, 112, 115, 212, 11, 6, 195, 149, 34, 129, 11, 8,
-			197, 44, 20, 10, 112, 176, 11, 9, 198, 77, 161, 82, 17, 195, 128, 17, 0, 22, 67, 52, 149, 0, 65, 37, 47, 23, 109, 89, 109, 55,
-			0, 11, 81, 101, 115, 122, 101, 108, 32, 38, 67, 52, 149, 0, 65, 37, 47, 10, 6, 15, 84, 114, 55, 47, 39, 89, 47, 108, 47, 50,
-			37, 0, 11, 81, 118, 195, 161, 108, 116, 111, 122, 116, 97, 116, 110, 105, 32, 8, 197, 77, 167, 13, 60, 192, 11, 10, 199, 20, 197, 28,
-			72, 243, 14, 36, 11, 8, 197, 50, 113, 207, 81, 64, 11, 8, 197, 48, 83, 142, 136, 192, 11, 6, 195, 52, 149, 0, 11, 0, 34, 69,
-			20, 195, 168, 44, 144, 109, 55, 50, 110, 49, 37, 23, 48, 39, 89, 47, 52, 115, 55, 0, 11, 81, 112, 111, 115, 122, 116, 114, 195, 179,
-			108, 32, 16, 141, 102, 101, 108, 104, 197, 145, 116, 97, 107, 97, 114, 195, 179, 11, 7, 196, 65, 196, 143, 56, 11, 6, 195, 32, 244, 16,
-			11, 6, 195, 8, 244, 148, 11, 7, 196, 29, 147, 210, 76, 11, 0, 10, 199, 137, 33, 5, 46, 32, 133, 56, 11, 13, 138, 109, 197, 177,
-			107, 195, 182, 100, 110, 101, 107, 11, 10, 199, 137, 33, 5, 46, 32, 133, 56, 11, 8, 133, 108, 197, 145, 116, 116, 11, 0, 9, 198, 160,
-			197, 40, 104, 232, 139, 11, 9, 198, 80, 148, 9, 45, 84, 192, 11, 11, 200, 44, 83, 12, 20, 232, 142, 20, 176, 11, 12, 201, 77, 160,
-			66, 112, 198, 79, 105, 196, 212, 11, 7, 196, 25, 194, 140, 80, 11, 0, 12, 201, 80, 82, 201, 57, 65, 84, 136, 33, 78, 11, 10, 135,
-			105, 100, 197, 145, 118, 101, 108, 11, 9, 198, 4, 192, 84, 80, 144, 75, 11, 11, 200, 24, 83, 12, 137, 8, 147, 20, 176, 11, 10, 199,
-			77, 163, 204, 29, 195, 10, 4, 11, 0, 24, 67, 26, 177, 199, 83, 111, 81, 12, 23, 110, 89, 12, 109, 0, 11, 81, 195, 182, 115, 115,
-			122, 101, 32, 12, 201, 77, 170, 203, 78, 33, 197, 76, 82, 192, 11, 9, 198, 26, 35, 153, 21, 49, 75, 11, 6, 195, 136, 193, 83, 11,
-			6, 195, 26, 177, 199, 11, 0, 8, 197, 80, 20, 148, 60, 176, 11, 9, 198, 13, 51, 205, 4, 116, 129, 11, 26, 71, 32, 83, 25, 21,
-			161, 84, 80, 107, 109, 57, 109, 88, 109, 47, 12, 23, 49, 37, 0, 11, 81, 107, 105, 32, 10, 199, 80, 84, 150, 21, 161, 84, 80, 11,
-			15, 140, 108, 101, 118, 101, 103, 197, 145, 106, 195, 169, 114, 101, 11, 8, 197, 40, 19, 149, 113, 32, 15, 0, 12, 201, 137, 65, 76, 32,
-			244, 132, 157, 96, 76, 11, 0, 12, 201, 46, 36, 132, 137, 49, 75, 8, 83, 128, 11, 12, 201, 32, 149, 129, 80, 19, 15, 77, 55, 0,
-			11, 12, 201, 80, 20, 148, 157, 162, 207, 16, 146, 192, 11, 14, 203, 32, 18, 140, 136, 181, 1, 48, 19, 142, 4, 192, 11, 7, 196, 46,
-			132, 162, 80, 11, 7, 196, 46, 132, 162, 80, 11, 0, 8, 133, 105, 100, 197, 145, 115, 11, 8, 197, 64, 199, 26, 113, 64, 11, 8, 197,
-			54, 113, 10, 113, 64, 11, 8, 197, 78, 163, 25, 113, 64, 11, 8, 197, 77, 167, 13, 113, 64, 11, 6, 195, 57, 145, 76, 11, 0, 9,
-			198, 16, 151, 11, 60, 176, 84, 11, 9, 198, 88, 17, 217, 60, 231, 20, 11, 15, 140, 103, 121, 197, 177, 106, 116, 197, 145, 110, 101, 118,
-			101, 11, 15, 140, 107, 195, 169, 112, 101, 114, 110, 121, 197, 145, 114, 101, 11, 9, 198, 64, 244, 218, 80, 167, 20, 11, 0, 10, 199, 48,
-			83, 79, 56, 64, 78, 36, 11, 9, 198, 74, 36, 218, 21, 58, 204, 11, 12, 137, 100, 111, 107, 116, 111, 114, 110, 197, 145, 11, 8, 197,
-			44, 83, 20, 137, 48, 11, 15, 204, 40, 241, 211, 104, 16, 156, 49, 147, 203, 8, 19, 128, 11, 0, 11, 200, 80, 83, 132, 20, 224, 201,
-			113, 64, 11, 11, 200, 24, 243, 25, 4, 208, 84, 113, 64, 11, 57, 72, 24, 83, 13, 85, 64, 84, 56, 144, 83, 109, 55, 65, 40, 47,
-			108, 47, 50, 37, 23, 108, 6, 15, 47, 114, 52, 79, 108, 55, 114, 91, 39, 49, 39, 50, 0, 11, 82, 97, 32, 116, 195, 161, 114, 103,
-			121, 97, 108, 195, 161, 115, 111, 107, 111, 110, 32, 11, 200, 13, 51, 208, 61, 37, 10, 113, 64, 11, 12, 201, 76, 81, 229, 81, 56, 135,
-			137, 97, 76, 11, 22, 147, 112, 195, 169, 110, 122, 105, 110, 116, 195, 169, 122, 101, 116, 101, 107, 116, 197, 145, 108, 11, 11, 200, 24, 83,
-			11, 21, 33, 83, 56, 144, 11, 0, 15, 204, 90, 35, 5, 54, 35, 153, 21, 168, 147, 137, 33, 64, 11, 8, 197, 20, 195, 168, 44, 80,
-			11, 10, 199, 24, 19, 129, 80, 146, 213, 76, 11, 12, 201, 40, 21, 129, 76, 192, 84, 60, 176, 84, 11, 0, 30, 71, 24, 244, 132, 84,
-			194, 1, 80, 83, 39, 52, 72, 40, 55, 107, 108, 47, 23, 109, 55, 118, 0, 11, 81, 101, 108, 197, 145, 32, 12, 201, 4, 194, 193, 48,
-			208, 90, 113, 53, 0, 11, 0, 60, 14, 106, 101, 108, 101, 110, 116, 197, 145, 115, 195, 169, 103, 101, 116, 57, 109, 55, 109, 50, 47, 118,
-			91, 113, 81, 109, 47, 23, 47, 40, 55, 108, 57, 72, 39, 50, 112, 47, 108, 50, 37, 0, 11, 81, 116, 117, 108, 97, 106, 100, 111, 110,
-			195, 173, 116, 97, 110, 105, 32, 16, 141, 108, 195, 182, 118, 195, 182, 108, 100, 195, 182, 122, 197, 145, 11, 6, 195, 77, 161, 82, 72, 0,
-			9, 198, 136, 193, 84, 137, 104, 148, 11, 37, 72, 44, 244, 146, 36, 119, 12, 113, 48, 49, 39, 52, 52, 37, 81, 114, 55, 114, 91, 23,
-			52, 113, 84, 113, 50, 0, 11, 81, 114, 195, 169, 118, 195, 169, 110, 32, 9, 198, 36, 225, 21, 49, 64, 75, 11, 14, 203, 32, 20, 207,
-			56, 201, 84, 28, 21, 14, 60, 64, 11, 11, 200, 82, 132, 133, 45, 54, 171, 56, 176, 11, 0, 10, 199, 4, 194, 193, 81, 40, 147, 104,
-			11, 8, 197, 10, 36, 162, 73, 64, 11, 7, 196, 81, 197, 143, 56, 11, 0, 9, 198, 65, 83, 39, 88, 84, 148, 11, 0, 13, 138, 99,
-			195, 173, 109, 195, 169, 116, 197, 145, 108, 11, 9, 198, 54, 36, 134, 160, 193, 0, 11, 11, 200, 40, 83, 5, 57, 72, 147, 20, 176, 11,
-			12, 136, 104, 195, 169, 116, 102, 197, 145, 110, 15, 17, 0, 9, 198, 54, 36, 142, 160, 177, 73, 11, 14, 203, 13, 48, 80, 4, 72, 139,
-			33, 83, 12, 113, 48, 11, 7, 196, 46, 134, 148, 20, 11, 10, 199, 46, 36, 132, 137, 52, 197, 48, 11, 6, 195, 40, 241, 192, 11, 0,
-			10, 199, 24, 82, 150, 4, 71, 19, 104, 11, 12, 201, 8, 84, 133, 56, 65, 90, 137, 49, 75, 11, 0, 9, 198, 32, 19, 12, 61, 69,
-			1, 11, 10, 199, 80, 20, 148, 61, 69, 28, 44, 11, 10, 199, 81, 81, 8, 5, 66, 156, 44, 11, 17, 9, 95, 35, 45, 195, 161, 110,
-			195, 161, 108, 114, 50, 114, 55, 0, 16, 0, 10, 199, 24, 244, 137, 57, 72, 146, 80, 11, 13, 202, 4, 194, 193, 48, 208, 90, 113, 52,
-			193, 48, 11, 40, 71, 24, 244, 137, 57, 72, 146, 80, 83, 39, 52, 37, 50, 47, 113, 52, 47, 23, 109, 55, 84, 37, 107, 109, 47, 118,
-			0, 11, 81, 101, 108, 118, 105, 104, 101, 116, 197, 145, 32, 10, 199, 89, 196, 136, 5, 73, 193, 44, 11, 13, 138, 104, 101, 108, 121, 195,
-			169, 114, 197, 145, 108, 11, 8, 197, 88, 83, 43, 56, 176, 11, 7, 196, 52, 17, 193, 52, 11, 0, 6, 195, 24, 241, 192, 11, 21, 67,
-			49, 197, 0, 55, 114, 47, 23, 65, 108, 57, 72, 0, 11, 81, 109, 97, 106, 100, 32, 36, 67, 24, 241, 192, 83, 39, 81, 23, 108, 6,
-			15, 71, 37, 88, 39, 76, 12, 114, 81, 0, 11, 82, 97, 32, 98, 105, 122, 111, 116, 116, 115, 195, 161, 103, 32, 29, 67, 24, 241, 192,
-			83, 39, 81, 23, 107, 108, 34, 119, 39, 55, 50, 37, 0, 11, 81, 104, 97, 114, 99, 111, 108, 110, 105, 32, 10, 199, 20, 195, 69, 78,
-			35, 20, 20, 11, 14, 139, 114, 195, 169, 115, 122, 195, 169, 114, 197, 145, 108, 11, 6, 195, 49, 197, 0, 11, 0, 10, 199, 52, 20, 129,
-			17, 69, 78, 44, 11, 10, 199, 24, 244, 137, 57, 69, 78, 44, 11, 8, 197, 20, 200, 146, 56, 144, 11, 12, 201, 80, 19, 28, 48, 128,
-			84, 156, 18, 192, 11, 8, 197, 74, 161, 220, 77, 64, 11, 14, 4, 95, 99, 101, 100, 119, 113, 72, 37, 55, 55, 109, 0, 0, 42, 70,
-			77, 162, 78, 80, 83, 128, 89, 37, 50, 47, 109, 50, 23, 47, 109, 91, 47, 52, 109, 89, 108, 71, 50, 37, 0, 11, 81, 116, 101, 115,
-			116, 114, 101, 115, 122, 97, 98, 110, 105, 32, 9, 198, 60, 64, 101, 72, 226, 64, 11, 12, 201, 73, 194, 226, 72, 65, 90, 21, 69, 0,
-			11, 9, 198, 77, 162, 78, 80, 83, 128, 11, 9, 198, 9, 195, 148, 4, 226, 64, 11, 0, 9, 198, 45, 83, 3, 77, 197, 0, 11, 39,
-			71, 52, 81, 207, 48, 71, 19, 80, 65, 109, 81, 39, 55, 72, 114, 91, 47, 23, 113, 48, 112, 47, 23, 71, 109, 0, 11, 82, 195, 169,
-			112, 195, 173, 116, 32, 98, 101, 32, 10, 199, 88, 19, 12, 60, 215, 19, 80, 11, 9, 198, 36, 72, 154, 21, 69, 0, 11, 9, 198, 40,
-			83, 26, 21, 69, 0, 11, 10, 199, 52, 81, 207, 48, 71, 19, 80, 11, 5, 194, 161, 48, 72, 5, 194, 72, 16, 11, 0, 11, 200, 80,
-			20, 148, 32, 21, 14, 112, 64, 11, 9, 198, 33, 197, 18, 112, 230, 65, 11, 0, 18, 207, 82, 132, 150, 136, 230, 74, 5, 96, 83, 48,
-			21, 28, 32, 246, 128, 11, 8, 197, 50, 36, 14, 36, 80, 11, 24, 67, 48, 85, 20, 55, 109, 47, 12, 23, 84, 39, 55, 50, 108, 0,
-			11, 81, 118, 111, 108, 110, 97, 32, 22, 67, 48, 85, 20, 55, 109, 47, 12, 23, 81, 39, 50, 72, 0, 11, 81, 103, 111, 110, 100, 32,
-			13, 202, 32, 20, 218, 57, 195, 1, 81, 200, 146, 80, 11, 6, 195, 48, 85, 20, 11, 0, 7, 196, 49, 192, 156, 56, 11, 0, 43, 73,
-			44, 20, 3, 76, 243, 1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 79, 108, 50, 116, 52, 115, 55, 0, 11, 81,
-			103, 121, 97, 110, 195, 186, 114, 195, 179, 108, 32, 8, 197, 44, 201, 206, 60, 176, 11, 45, 73, 44, 20, 3, 76, 243, 1, 80, 244, 192,
-			49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 47, 109, 52, 84, 109, 49, 52, 118, 55, 0, 11, 81, 116, 101, 114, 118, 101, 107, 114,
-			197, 145, 108, 32, 41, 73, 44, 20, 3, 76, 243, 1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 107, 112, 52, 109,
-			49, 109, 47, 0, 11, 81, 104, 195, 173, 114, 101, 107, 101, 116, 32, 12, 137, 108, 101, 103, 121, 197, 145, 122, 110, 105, 11, 58, 73, 44,
-			20, 3, 76, 243, 1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 71, 37, 88, 39, 67, 47, 108, 55, 108, 50, 91,
-			114, 81, 39, 49, 0, 11, 81, 98, 105, 122, 111, 110, 121, 116, 97, 108, 97, 110, 115, 195, 161, 103, 111, 107, 32, 6, 195, 34, 84, 133,
-			11, 12, 201, 44, 20, 3, 76, 243, 1, 80, 244, 192, 11, 9, 198, 80, 17, 202, 4, 149, 0, 11, 7, 132, 116, 197, 177, 122, 11, 14,
-			67, 48, 212, 0, 109, 55, 109, 65, 48, 113, 0, 42, 42, 0, 23, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 0, 11, 81,
-			107, 195, 182, 122, 195, 169, 32, 43, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 23, 109, 65, 109, 55, 49, 109, 72, 37, 49,
-			0, 11, 82, 107, 195, 182, 122, 195, 169, 32, 101, 109, 101, 108, 107, 101, 100, 105, 107, 32, 46, 67, 24, 242, 192, 83, 39, 49, 23, 49,
-			110, 88, 110, 47, 12, 23, 89, 115, 52, 115, 72, 37, 49, 0, 11, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 115, 122, 195, 179, 114,
-			195, 179, 100, 105, 107, 32, 70, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 23, 76, 110, 49, 12, 109, 50, 23, 108, 23, 107,
-			118, 65, 113, 52, 91, 113, 49, 55, 109, 47, 0, 11, 84, 107, 195, 182, 122, 195, 169, 32, 99, 115, 195, 182, 107, 107, 101, 110, 32, 97,
-			32, 104, 197, 145, 109, 195, 169, 114, 115, 195, 169, 107, 108, 101, 116, 32, 41, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 110, 47,
-			12, 23, 108, 55, 108, 49, 40, 55, 0, 11, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 97, 108, 97, 107, 117, 108, 32, 74, 67, 24,
-			242, 192, 83, 39, 49, 23, 83, 110, 55, 113, 23, 109, 65, 109, 55, 49, 109, 72, 37, 49, 23, 108, 23, 107, 118, 65, 113, 52, 91, 113,
-			49, 55, 109, 47, 0, 11, 84, 102, 195, 182, 108, 195, 169, 32, 101, 109, 101, 108, 107, 101, 100, 105, 107, 32, 97, 32, 104, 197, 145, 109,
-			195, 169, 114, 115, 195, 169, 107, 108, 101, 116, 32, 45, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 110, 47, 12, 23, 84, 114, 51,
-			107, 108, 47, 115, 0, 11, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 118, 195, 161, 114, 104, 97, 116, 195, 179, 32, 7, 196, 85, 71,
-			14, 4, 11, 9, 198, 24, 243, 148, 61, 48, 75, 11, 12, 201, 44, 149, 162, 80, 83, 34, 88, 83, 0, 11, 10, 199, 89, 195, 20, 61,
-			167, 19, 80, 11, 6, 195, 24, 242, 192, 11, 9, 198, 80, 20, 148, 4, 224, 75, 11, 0, 11, 200, 173, 161, 77, 20, 197, 5, 80, 144,
-			11, 48, 72, 81, 195, 79, 28, 21, 28, 77, 64, 47, 114, 65, 39, 81, 108, 47, 114, 91, 47, 23, 71, 37, 89, 47, 39, 91, 112, 47,
-			108, 50, 37, 0, 11, 81, 98, 105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 105, 32, 41, 67, 157, 39, 14, 115, 52, 114, 50, 10, 6,
-			15, 71, 109, 55, 111, 55, 10, 6, 15, 65, 108, 52, 108, 72, 0, 11, 82, 98, 101, 108, 195, 188, 108, 32, 109, 97, 114, 97, 100, 32,
-			11, 200, 49, 197, 15, 28, 21, 28, 77, 64, 11, 11, 200, 20, 193, 15, 9, 195, 28, 77, 64, 11, 15, 204, 46, 134, 130, 37, 165, 15,
-			57, 55, 7, 137, 37, 0, 11, 11, 200, 81, 195, 79, 28, 21, 28, 77, 64, 11, 11, 200, 29, 147, 210, 78, 85, 28, 77, 64, 11, 10,
-			199, 80, 83, 5, 24, 243, 143, 44, 11, 7, 196, 137, 34, 133, 56, 11, 0, 11, 200, 52, 81, 214, 21, 54, 142, 20, 176, 11, 32, 6,
-			195, 169, 108, 197, 145, 107, 113, 55, 118, 49, 23, 107, 109, 57, 88, 109, 47, 109, 0, 11, 81, 104, 101, 108, 121, 122, 101, 116, 101, 32,
-			31, 69, 8, 150, 148, 61, 48, 71, 37, 89, 47, 39, 91, 23, 89, 109, 52, 37, 50, 47, 0, 11, 81, 115, 122, 101, 114, 105, 110, 116,
-			32, 9, 198, 52, 147, 12, 37, 196, 132, 11, 32, 70, 52, 147, 12, 37, 196, 132, 65, 37, 55, 37, 114, 52, 72, 23, 83, 39, 52, 37,
-			50, 47, 0, 11, 81, 102, 111, 114, 105, 110, 116, 32, 8, 197, 8, 150, 148, 61, 48, 11, 12, 201, 24, 244, 146, 113, 50, 231, 16, 245,
-			0, 11, 0, 7, 66, 57, 144, 109, 67, 0, 9, 198, 88, 19, 1, 52, 149, 0, 11, 10, 199, 77, 170, 204, 21, 65, 84, 80, 11, 10,
-			199, 46, 36, 132, 21, 161, 84, 80, 11, 13, 202, 40, 21, 129, 16, 19, 13, 5, 167, 19, 80, 11, 9, 198, 34, 115, 129, 64, 245, 0,
-			11, 9, 134, 101, 98, 98, 197, 145, 108, 11, 0, 32, 70, 32, 18, 148, 4, 224, 75, 107, 108, 57, 47, 108, 50, 108, 49, 23, 84, 113,
-			81, 52, 109, 0, 11, 81, 118, 195, 169, 103, 114, 101, 32, 10, 199, 28, 243, 66, 60, 195, 156, 52, 11, 43, 6, 105, 100, 197, 145, 114,
-			101, 37, 72, 118, 52, 109, 23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 11, 81, 115, 122, 195, 161, 109, 195, 173, 116, 104,
-			97, 116, 117, 110, 107, 32, 42, 6, 105, 100, 197, 145, 114, 101, 37, 72, 118, 52, 109, 23, 84, 108, 50, 23, 49, 37, 55, 114, 47, 114,
-			91, 0, 11, 82, 118, 97, 110, 32, 107, 105, 108, 195, 161, 116, 195, 161, 115, 32, 32, 71, 82, 128, 130, 57, 146, 82, 20, 47, 110, 71,
-			67, 37, 52, 109, 23, 79, 109, 50, 81, 109, 0, 11, 81, 103, 121, 101, 110, 103, 101, 32, 11, 200, 88, 150, 147, 29, 195, 10, 112, 176,
-			11, 8, 133, 115, 122, 197, 145, 114, 11, 8, 197, 74, 161, 212, 112, 176, 11, 8, 197, 89, 196, 148, 112, 176, 11, 0, 12, 201, 8, 150,
-			143, 57, 153, 84, 41, 194, 192, 11, 9, 198, 77, 167, 14, 81, 194, 192, 11, 11, 200, 80, 20, 148, 4, 195, 92, 72, 16, 11, 24, 70,
-			9, 195, 148, 77, 194, 192, 71, 114, 50, 76, 114, 49, 23, 118, 47, 0, 11, 81, 197, 145, 116, 32, 10, 199, 46, 36, 133, 48, 216, 146,
-			20, 11, 12, 4, 95, 99, 97, 112, 50, 6, 108, 79, 23, 0, 0, 10, 199, 34, 37, 22, 136, 120, 146, 20, 11, 10, 199, 44, 146, 1,
-			29, 146, 156, 44, 11, 9, 198, 44, 81, 22, 21, 163, 133, 11, 10, 199, 28, 243, 132, 60, 194, 156, 44, 11, 11, 200, 85, 64, 83, 149,
-			71, 19, 8, 16, 11, 10, 199, 54, 36, 148, 136, 184, 146, 20, 11, 13, 202, 72, 83, 132, 20, 194, 197, 106, 36, 197, 44, 11, 12, 201,
-			172, 118, 78, 160, 180, 226, 28, 85, 0, 11, 9, 198, 90, 33, 5, 48, 83, 64, 11, 6, 195, 77, 168, 144, 11, 0, 11, 200, 32, 19,
-			12, 28, 21, 20, 112, 176, 11, 8, 197, 72, 87, 12, 37, 48, 11, 13, 138, 116, 195, 182, 109, 101, 103, 114, 197, 145, 108, 11, 8, 197,
-			41, 196, 149, 56, 176, 11, 8, 197, 42, 163, 9, 85, 48, 15, 12, 6, 95, 35, 45, 195, 161, 116, 114, 47, 0, 16, 0, 13, 202, 64,
-			243, 7, 113, 35, 69, 77, 65, 82, 20, 11, 44, 73, 44, 20, 3, 76, 243, 39, 17, 196, 201, 49, 108, 48, 76, 39, 55, 115, 72, 114,
-			91, 37, 23, 48, 52, 39, 71, 55, 113, 65, 108, 0, 11, 81, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 12, 201, 60, 197, 129, 76,
-			128, 84, 41, 194, 192, 11, 13, 202, 24, 147, 129, 57, 54, 165, 72, 246, 150, 4, 11, 10, 199, 20, 194, 197, 74, 179, 10, 20, 11, 8,
-			197, 46, 36, 5, 37, 64, 11, 12, 201, 4, 194, 193, 48, 208, 90, 105, 194, 192, 11, 10, 199, 40, 83, 5, 57, 65, 78, 136, 11, 7,
-			196, 169, 66, 156, 80, 11, 7, 196, 169, 66, 156, 80, 11, 0, 15, 204, 46, 133, 5, 48, 86, 133, 81, 68, 226, 28, 85, 0, 11, 0,
-			41, 70, 80, 84, 141, 136, 177, 84, 47, 109, 52, 65, 113, 49, 109, 47, 23, 84, 114, 91, 114, 52, 39, 55, 39, 49, 0, 11, 81, 118,
-			195, 161, 115, 195, 161, 114, 111, 108, 111, 107, 32, 13, 202, 52, 81, 211, 20, 121, 84, 137, 56, 146, 20, 11, 12, 201, 44, 84, 171, 48,
-			85, 5, 44, 33, 64, 11, 9, 198, 44, 86, 132, 40, 83, 128, 11, 0, 17, 3, 95, 194, 183, 49, 110, 88, 113, 48, 91, 118, 48, 39,
-			50, 47, 0, 13, 202, 20, 197, 84, 5, 57, 84, 61, 69, 28, 44, 11, 9, 198, 46, 36, 132, 137, 49, 64, 11, 7, 196, 65, 196, 156,
-			76, 11, 10, 199, 8, 83, 142, 172, 226, 197, 80, 11, 12, 201, 24, 244, 132, 84, 192, 84, 77, 167, 13, 11, 0, 13, 202, 24, 147, 129,
-			57, 54, 165, 72, 246, 154, 4, 11, 10, 199, 112, 195, 1, 64, 245, 28, 80, 11, 8, 197, 48, 89, 82, 113, 48, 11, 13, 202, 81, 194,
-			162, 44, 246, 148, 5, 69, 28, 44, 11, 11, 200, 44, 244, 140, 113, 67, 218, 113, 48, 11, 10, 199, 90, 35, 5, 54, 35, 153, 80, 11,
-			6, 195, 24, 242, 234, 11, 0, 10, 135, 103, 121, 197, 145, 122, 110, 105, 11, 11, 200, 8, 81, 143, 49, 151, 19, 113, 64, 11, 9, 198,
-			56, 244, 141, 112, 194, 83, 11, 10, 135, 102, 195, 188, 103, 103, 197, 145, 11, 6, 195, 4, 176, 68, 11, 11, 200, 21, 54, 139, 161, 170,
-			11, 21, 64, 11, 11, 136, 197, 145, 114, 195, 182, 107, 101, 116, 11, 8, 197, 168, 169, 84, 113, 48, 11, 8, 197, 20, 211, 34, 44, 80,
-			17, 11, 6, 95, 35, 45, 195, 169, 110, 113, 50, 0, 0, 19, 3, 95, 194, 178, 65, 114, 91, 39, 72, 37, 49, 107, 108, 47, 84, 114,
-			67, 0, 46, 71, 77, 161, 82, 88, 86, 133, 80, 89, 109, 52, 84, 109, 88, 109, 47, 10, 6, 15, 65, 117, 49, 110, 47, 12, 109, 47,
-			12, 109, 0, 11, 81, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 116, 101, 32, 61, 13, 108, 101, 104, 101, 116, 197, 145, 115, 195, 169,
-			103, 101, 116, 55, 109, 107, 109, 47, 118, 91, 113, 81, 109, 47, 10, 6, 15, 65, 109, 81, 84, 108, 55, 115, 91, 112, 47, 108, 50, 37,
-			0, 11, 81, 109, 101, 103, 118, 97, 108, 195, 179, 115, 195, 173, 116, 97, 110, 105, 32, 14, 203, 80, 20, 1, 77, 165, 1, 48, 21, 21,
-			56, 176, 11, 10, 199, 77, 161, 82, 88, 86, 133, 80, 11, 8, 197, 37, 35, 196, 112, 224, 11, 16, 141, 108, 101, 104, 101, 116, 197, 145,
-			115, 195, 169, 103, 101, 116, 11, 16, 141, 102, 101, 108, 101, 108, 197, 145, 115, 195, 169, 103, 101, 116, 11, 0, 20, 3, 95, 194, 179, 107,
-			108, 34, 65, 108, 72, 37, 49, 107, 108, 47, 84, 114, 67, 0, 8, 197, 77, 160, 66, 4, 64, 76, 36, 70, 60, 197, 129, 77, 196, 193,
-			39, 55, 84, 108, 91, 114, 91, 108, 10, 6, 15, 49, 110, 88, 71, 109, 50, 0, 11, 81, 107, 195, 182, 122, 98, 101, 110, 32, 11, 200,
-			4, 194, 193, 48, 208, 90, 113, 48, 11, 10, 199, 29, 147, 210, 78, 85, 28, 76, 11, 7, 196, 81, 196, 143, 48, 11, 9, 198, 73, 194,
-			168, 56, 226, 64, 11, 6, 195, 49, 192, 128, 11, 0, 8, 197, 88, 243, 20, 112, 192, 72, 30, 70, 32, 18, 148, 41, 194, 192, 107, 108,
-			57, 80, 114, 49, 23, 84, 113, 81, 52, 109, 0, 11, 81, 118, 195, 169, 103, 114, 101, 32, 13, 138, 110, 195, 169, 112, 115, 122, 101, 114,
-			197, 177, 11, 40, 74, 80, 85, 162, 44, 83, 153, 78, 33, 197, 80, 47, 109, 84, 113, 49, 109, 67, 91, 113, 81, 109, 47, 23, 84, 113,
-			81, 109, 88, 0, 11, 81, 118, 195, 169, 103, 101, 122, 32, 30, 69, 72, 80, 71, 112, 192, 52, 109, 108, 81, 114, 55, 23, 47, 110, 71,
-			12, 113, 0, 11, 81, 116, 195, 182, 98, 98, 195, 169, 32, 12, 201, 46, 134, 150, 136, 193, 77, 136, 230, 84, 11, 11, 136, 116, 197, 145,
-			108, 101, 116, 101, 107, 11, 6, 195, 56, 244, 192, 72, 0, 10, 199, 44, 20, 8, 5, 67, 129, 44, 11, 19, 144, 98, 197, 177, 110, 99,
-			115, 101, 108, 101, 107, 109, 195, 169, 110, 121, 116, 11, 0, 12, 201, 52, 81, 220, 48, 192, 80, 60, 71, 19, 11, 44, 73, 52, 81, 220,
-			48, 192, 80, 60, 71, 19, 65, 109, 81, 114, 55, 12, 108, 48, 39, 72, 114, 91, 23, 49, 110, 47, 107, 109, 47, 118, 0, 11, 81, 107,
-			195, 182, 116, 104, 101, 116, 197, 145, 32, 52, 73, 52, 81, 220, 48, 192, 80, 60, 71, 19, 65, 109, 81, 114, 55, 12, 108, 48, 39, 72,
-			114, 91, 23, 37, 91, 23, 89, 111, 55, 109, 47, 109, 47, 12, 0, 11, 82, 105, 115, 32, 115, 122, 195, 188, 108, 101, 116, 101, 116, 116,
-			32, 43, 72, 36, 120, 142, 100, 82, 72, 21, 160, 37, 81, 113, 67, 109, 37, 107, 109, 88, 23, 37, 81, 108, 88, 112, 47, 108, 50, 37,
-			0, 11, 81, 105, 103, 97, 122, 195, 173, 116, 97, 110, 105, 32, 13, 202, 46, 36, 218, 172, 200, 139, 172, 226, 197, 80, 11, 11, 200, 73,
-			192, 133, 77, 168, 140, 56, 144, 11, 0, 27, 68, 81, 81, 20, 4, 47, 40, 47, 12, 108, 6, 15, 84, 39, 55, 50, 108, 0, 11, 81,
-			118, 111, 108, 110, 97, 32, 11, 200, 30, 36, 5, 50, 36, 200, 21, 160, 11, 7, 196, 4, 227, 156, 48, 11, 9, 198, 52, 81, 212, 20,
-			197, 0, 11, 7, 196, 136, 162, 133, 48, 11, 7, 196, 81, 81, 20, 4, 11, 9, 196, 33, 49, 16, 4, 13, 42, 42, 0, 37, 70, 46,
-			36, 20, 20, 193, 78, 49, 113, 48, 47, 109, 55, 109, 50, 23, 71, 109, 47, 109, 81, 50, 109, 49, 0, 11, 81, 98, 101, 116, 101, 103,
-			110, 101, 107, 32, 7, 196, 57, 195, 1, 52, 11, 0, 16, 3, 95, 194, 173, 55, 114, 79, 49, 110, 47, 118, 57, 109, 55, 0, 0, 10,
-			199, 52, 81, 198, 36, 118, 69, 48, 11, 30, 70, 137, 33, 90, 80, 83, 64, 113, 52, 109, 89, 47, 109, 65, 23, 65, 108, 81, 108, 65,
-			0, 11, 81, 109, 97, 103, 97, 109, 32, 45, 73, 24, 242, 207, 104, 21, 15, 76, 19, 128, 83, 39, 49, 39, 88, 108, 47, 39, 91, 108,
-			50, 23, 65, 109, 81, 89, 117, 50, 37, 49, 0, 11, 81, 109, 101, 103, 115, 122, 197, 177, 110, 105, 107, 32, 12, 201, 61, 69, 8, 60,
-			229, 1, 48, 19, 128, 11, 9, 198, 137, 33, 90, 80, 83, 64, 11, 0, 22, 3, 95, 194, 171, 71, 109, 55, 91, 118, 71, 108, 55, 37,
-			72, 113, 88, 118, 57, 109, 55, 0, 6, 195, 82, 35, 65, 11, 6, 195, 82, 35, 65, 11, 0, 0, 7, 196, 8, 195, 203, 44, 11, 9,
-			198, 66, 35, 148, 20, 178, 71, 17, 0, 9, 198, 80, 20, 148, 4, 195, 65, 11, 9, 198, 77, 160, 66, 112, 198, 64, 11, 0, 7, 196,
-			90, 33, 5, 16, 11, 7, 196, 137, 38, 133, 16, 11, 10, 135, 116, 197, 145, 108, 195, 188, 107, 11, 20, 66, 52, 208, 65, 37, 55, 37,
-			65, 113, 47, 109, 52, 47, 0, 44, 11, 81, 116, 32, 22, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 109, 91, 0, 44, 11,
-			81, 101, 115, 32, 27, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 67, 37, 52, 109, 0, 44, 11, 81, 110, 121, 105, 114, 101,
-			32, 23, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 67, 37, 0, 44, 11, 81, 110, 121, 105, 32, 15, 66, 52, 208, 65, 37,
-			55, 37, 65, 113, 47, 109, 52, 0, 11, 0, 16, 3, 95, 194, 164, 48, 113, 50, 88, 50, 109, 65, 57, 109, 55, 0, 0, 6, 195, 16,
-			151, 11, 11, 12, 137, 104, 195, 169, 116, 102, 197, 145, 105, 103, 17, 0, 7, 196, 25, 35, 206, 80, 11, 0, 34, 6, 102, 101, 108, 197,
-			145, 108, 83, 109, 55, 118, 55, 10, 6, 15, 50, 113, 88, 88, 111, 49, 0, 11, 81, 110, 195, 169, 122, 122, 195, 188, 107, 32, 10, 199,
-			32, 246, 129, 18, 34, 207, 80, 11, 9, 198, 84, 69, 129, 72, 244, 192, 11, 6, 195, 105, 196, 128, 11, 9, 134, 102, 101, 108, 197, 145,
-			108, 11, 6, 131, 197, 145, 107, 11, 7, 131, 197, 145, 107, 11, 8, 0, 12, 3, 95, 194, 160, 89, 6, 115, 49, 110, 88, 0, 0, 16,
-			3, 95, 194, 161, 108, 55, 91, 115, 37, 50, 72, 109, 49, 89, 0, 7, 3, 95, 195, 169, 113, 0, 9, 198, 137, 37, 34, 44, 82, 192,
-			11, 12, 137, 109, 197, 177, 107, 195, 182, 100, 105, 107, 11, 0, 13, 138, 101, 114, 197, 145, 115, 195, 182, 100, 105, 107, 11, 9, 198, 52,
-			81, 217, 136, 33, 64, 11, 9, 198, 81, 195, 65, 16, 167, 11, 11, 12, 201, 13, 51, 205, 4, 115, 203, 32, 246, 128, 11, 0, 6, 195,
-			36, 113, 78, 11, 0, 9, 198, 53, 83, 139, 112, 131, 218, 11, 6, 195, 88, 144, 195, 11, 6, 131, 197, 145, 116, 11, 9, 198, 24, 243,
-			25, 4, 215, 14, 15, 0, 9, 198, 20, 195, 65, 72, 17, 20, 11, 12, 201, 88, 147, 28, 28, 135, 2, 61, 42, 128, 11, 11, 136, 104,
-			101, 108, 121, 114, 197, 145, 108, 11, 0, 6, 131, 197, 145, 114, 11, 0, 12, 137, 115, 122, 101, 114, 122, 197, 145, 106, 101, 11, 36, 11,
-			102, 101, 106, 108, 101, 115, 122, 116, 197, 145, 107, 83, 109, 57, 55, 109, 89, 47, 118, 49, 23, 83, 109, 55, 113, 0, 11, 81, 102, 101,
-			108, 195, 169, 32, 13, 202, 32, 20, 218, 57, 195, 8, 5, 66, 156, 44, 11, 13, 138, 118, 97, 108, 97, 109, 105, 114, 197, 145, 108, 11,
-			6, 195, 9, 84, 218, 11, 0, 9, 134, 108, 101, 108, 107, 197, 177, 11, 8, 197, 82, 128, 130, 37, 64, 11, 0, 8, 197, 136, 193, 84,
-			137, 64, 11, 0, 15, 204, 8, 84, 133, 56, 65, 90, 44, 81, 34, 77, 49, 76, 11, 9, 198, 20, 118, 83, 136, 113, 64, 11, 9, 134,
-			101, 109, 108, 197, 145, 115, 11, 0, 9, 198, 137, 37, 5, 48, 216, 148, 11, 9, 198, 137, 54, 138, 113, 39, 19, 11, 7, 196, 46, 133,
-			34, 76, 11, 9, 198, 54, 36, 148, 136, 177, 64, 11, 7, 196, 88, 149, 28, 80, 11, 7, 196, 34, 115, 129, 64, 11, 0, 11, 200, 45,
-			34, 84, 36, 183, 11, 5, 64, 11, 14, 139, 106, 111, 103, 115, 195, 169, 114, 116, 197, 145, 116, 11, 52, 71, 46, 131, 20, 78, 33, 197,
-			80, 49, 110, 55, 76, 113, 81, 109, 47, 23, 57, 109, 55, 109, 50, 47, 23, 89, 114, 65, 40, 49, 52, 108, 0, 11, 82, 106, 101, 108,
-			101, 110, 116, 32, 115, 122, 195, 161, 109, 117, 107, 114, 97, 32, 11, 200, 80, 84, 150, 21, 161, 84, 137, 64, 11, 13, 202, 24, 83, 43,
-			49, 98, 90, 76, 119, 12, 80, 11, 6, 195, 149, 36, 218, 11, 0, 30, 70, 20, 194, 156, 73, 196, 192, 109, 55, 57, 114, 52, 114, 91,
-			23, 37, 50, 72, 40, 55, 0, 11, 81, 105, 110, 100, 117, 108, 32, 12, 201, 29, 145, 82, 52, 82, 197, 36, 177, 84, 11, 9, 198, 20,
-			195, 28, 81, 196, 192, 11, 9, 198, 44, 147, 28, 81, 196, 192, 11, 9, 198, 20, 194, 156, 73, 196, 192, 11, 9, 198, 80, 19, 28, 49,
-			83, 139, 11, 0, 15, 140, 109, 101, 110, 110, 121, 105, 115, 195, 169, 103, 197, 177, 11, 10, 199, 48, 18, 207, 76, 242, 193, 80, 11, 11,
-			136, 195, 169, 112, 195, 188, 108, 197, 145, 11, 8, 197, 57, 144, 82, 112, 224, 15, 0, 9, 198, 149, 72, 140, 21, 65, 84, 11, 52, 74,
-			77, 161, 82, 20, 197, 162, 57, 145, 73, 80, 89, 109, 52, 109, 55, 84, 113, 67, 109, 37, 47, 23, 65, 109, 81, 109, 52, 118, 91, 112,
-			47, 84, 109, 0, 11, 81, 109, 101, 103, 101, 114, 197, 145, 115, 195, 173, 116, 118, 101, 32, 41, 69, 24, 241, 202, 112, 176, 83, 39, 81,
-			57, 114, 49, 23, 109, 55, 12, 109, 50, 118, 52, 37, 88, 50, 37, 0, 11, 81, 101, 108, 108, 101, 110, 197, 145, 114, 105, 122, 110, 105,
-			32, 22, 147, 115, 122, 111, 102, 116, 118, 101, 114, 102, 101, 106, 108, 101, 115, 122, 116, 197, 145, 107, 11, 9, 198, 90, 33, 5, 48, 216,
-			148, 11, 17, 142, 102, 101, 108, 101, 108, 197, 145, 115, 115, 195, 169, 103, 101, 116, 11, 9, 198, 29, 151, 18, 82, 117, 0, 11, 8, 197,
-			24, 241, 202, 112, 176, 11, 9, 198, 148, 120, 146, 21, 65, 84, 11, 8, 197, 74, 36, 218, 136, 224, 11, 8, 197, 32, 149, 20, 20, 64,
-			11, 0, 39, 72, 25, 83, 139, 12, 153, 203, 5, 64, 83, 40, 50, 49, 119, 37, 115, 49, 108, 47, 23, 109, 55, 12, 114, 47, 115, 0,
-			11, 81, 101, 108, 108, 195, 161, 116, 195, 179, 32, 46, 72, 44, 144, 68, 113, 51, 203, 5, 64, 49, 37, 108, 72, 114, 91, 39, 49, 108,
-			47, 23, 48, 52, 109, 83, 109, 52, 114, 61, 57, 108, 0, 11, 81, 112, 114, 101, 102, 101, 114, 195, 161, 108, 106, 97, 32, 11, 200, 25,
-			83, 139, 12, 153, 203, 5, 64, 11, 11, 200, 89, 195, 1, 77, 163, 203, 5, 64, 11, 12, 201, 64, 243, 7, 113, 35, 69, 77, 65, 82,
-			11, 9, 198, 52, 243, 132, 41, 194, 192, 11, 6, 195, 136, 196, 218, 11, 6, 195, 77, 170, 18, 72, 0, 14, 139, 195, 169, 112, 195, 173,
-			116, 195, 169, 115, 197, 177, 11, 0, 6, 195, 57, 195, 0, 11, 0, 9, 198, 32, 144, 130, 4, 229, 0, 11, 9, 198, 52, 147, 12, 38,
-			117, 0, 11, 9, 198, 172, 227, 133, 64, 83, 128, 11, 9, 198, 56, 85, 162, 8, 83, 128, 11, 12, 201, 32, 18, 140, 136, 181, 1, 48,
-			19, 128, 11, 8, 197, 32, 148, 218, 20, 64, 11, 0, 7, 196, 24, 241, 211, 104, 76, 12, 201, 58, 36, 19, 105, 195, 76, 112, 199, 19,
-			11, 9, 198, 20, 195, 69, 57, 66, 75, 11, 9, 198, 80, 82, 201, 57, 66, 75, 11, 9, 198, 80, 20, 148, 61, 162, 75, 11, 0, 9,
-			198, 45, 34, 84, 36, 176, 64, 11, 44, 9, 103, 121, 197, 145, 122, 116, 195, 169, 107, 79, 118, 88, 47, 113, 49, 23, 83, 109, 55, 72,
-			39, 55, 81, 39, 88, 50, 37, 0, 11, 81, 102, 101, 108, 100, 111, 108, 103, 111, 122, 110, 105, 32, 9, 198, 13, 48, 80, 4, 72, 139,
-			11, 0, 9, 198, 77, 169, 204, 80, 19, 64, 11, 0, 28, 71, 57, 149, 71, 60, 69, 1, 52, 67, 40, 81, 39, 47, 12, 108, 65, 23,
-			65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 10, 199, 57, 145, 82, 80, 84, 197, 36, 11, 0, 38, 68, 4, 32, 129, 56, 108, 71, 12,
-			108, 50, 23, 83, 39, 81, 55, 108, 55, 47, 108, 49, 108, 47, 0, 11, 81, 102, 111, 103, 108, 97, 108, 116, 97, 107, 97, 116, 32, 7,
-			196, 46, 134, 171, 48, 11, 12, 201, 77, 167, 13, 149, 73, 199, 137, 1, 75, 11, 7, 196, 20, 32, 133, 56, 11, 7, 196, 4, 32, 129,
-			56, 11, 7, 196, 46, 134, 171, 48, 11, 0, 0, 12, 201, 76, 18, 156, 80, 244, 211, 112, 115, 203, 11, 11, 200, 40, 83, 40, 50, 36,
-			206, 136, 192, 11, 0, 9, 198, 77, 160, 66, 61, 69, 0, 11, 5, 194, 72, 80, 11, 9, 66, 60, 176, 39, 49, 0, 42, 42, 0, 0,
-			12, 201, 24, 83, 13, 60, 225, 1, 57, 195, 139, 11, 9, 198, 81, 196, 143, 49, 83, 139, 11, 0, 40, 71, 88, 243, 129, 80, 179, 218,
-			156, 84, 39, 50, 108, 47, 49, 39, 88, 115, 10, 6, 15, 48, 39, 50, 80, 108, 37, 47, 0, 11, 81, 112, 111, 110, 116, 106, 97, 105,
-			116, 32, 44, 73, 161, 52, 218, 20, 243, 76, 61, 69, 0, 110, 89, 12, 109, 39, 65, 55, 39, 47, 12, 23, 108, 23, 52, 109, 50, 119,
-			109, 52, 0, 11, 82, 97, 32, 114, 101, 110, 100, 115, 122, 101, 114, 32, 10, 199, 88, 243, 129, 80, 179, 218, 156, 11, 7, 196, 149, 35,
-			129, 44, 11, 8, 197, 12, 83, 12, 112, 224, 11, 8, 197, 64, 144, 67, 112, 224, 11, 7, 196, 77, 162, 78, 80, 11, 10, 199, 32, 83,
-			25, 104, 85, 43, 44, 11, 0, 9, 198, 76, 81, 229, 80, 83, 137, 11, 9, 198, 81, 195, 79, 28, 21, 0, 11, 8, 197, 24, 18, 148,
-			112, 176, 11, 0, 45, 70, 80, 20, 148, 41, 194, 192, 47, 108, 52, 80, 114, 49, 23, 48, 52, 39, 71, 55, 113, 65, 114, 91, 50, 108,
-			49, 0, 11, 81, 112, 114, 111, 98, 108, 195, 169, 109, 195, 161, 115, 110, 97, 107, 32, 9, 198, 80, 20, 148, 77, 194, 192, 11, 9, 198,
-			4, 176, 82, 41, 194, 192, 11, 8, 197, 52, 19, 149, 112, 192, 11, 9, 198, 80, 20, 148, 41, 194, 192, 11, 6, 195, 60, 181, 0, 15,
-			0, 0, 20, 5, 100, 197, 145, 108, 116, 72, 118, 55, 47, 23, 71, 109, 0, 11, 81, 98, 101, 32, 8, 133, 100, 197, 145, 108, 116, 11,
-			5, 194, 156, 224, 72, 0, 15, 3, 95, 203, 135, 55, 109, 83, 109, 55, 113, 67, 112, 55, 0, 48, 71, 89, 195, 1, 77, 163, 204, 80,
-			84, 114, 55, 108, 89, 39, 55, 47, 23, 108, 6, 15, 83, 109, 55, 84, 109, 47, 113, 91, 52, 109, 0, 11, 82, 97, 32, 102, 101, 108,
-			118, 101, 116, 195, 169, 115, 114, 101, 32, 9, 198, 88, 149, 28, 8, 19, 128, 11, 15, 204, 52, 80, 200, 4, 226, 90, 53, 84, 220, 88,
-			19, 0, 11, 9, 198, 48, 82, 232, 82, 133, 20, 11, 9, 198, 72, 18, 212, 113, 36, 129, 11, 0, 18, 68, 77, 161, 19, 104, 101, 115,
-			122, 100, 195, 169, 101, 115, 122, 0, 29, 42, 9, 198, 4, 64, 75, 61, 162, 75, 11, 9, 198, 52, 17, 218, 5, 67, 203, 11, 7, 196,
-			137, 37, 5, 52, 11, 14, 139, 109, 197, 177, 107, 195, 182, 100, 195, 182, 116, 116, 11, 0, 16, 141, 115, 122, 101, 114, 107, 101, 122, 101,
-			116, 197, 177, 101, 107, 11, 8, 197, 53, 83, 139, 112, 208, 11, 0, 12, 3, 95, 194, 186, 91, 39, 34, 89, 114, 65, 0, 0, 23, 3,
-			95, 194, 187, 71, 109, 55, 91, 118, 57, 39, 71, 71, 37, 72, 113, 88, 118, 57, 109, 55, 0, 8, 197, 48, 84, 218, 20, 192, 72, 10,
-			199, 32, 19, 12, 61, 69, 1, 52, 11, 9, 198, 53, 83, 139, 113, 53, 0, 11, 10, 199, 4, 192, 80, 61, 165, 1, 52, 11, 8, 197,
-			41, 196, 148, 5, 48, 11, 10, 199, 28, 243, 132, 60, 197, 1, 52, 11, 6, 195, 161, 56, 148, 11, 12, 6, 95, 35, 45, 195, 169, 116,
-			113, 47, 0, 16, 0, 8, 197, 50, 36, 8, 21, 64, 11, 8, 197, 46, 36, 136, 21, 64, 11, 8, 197, 89, 195, 8, 5, 64, 11, 8,
-			197, 46, 36, 12, 21, 64, 11, 0, 16, 3, 95, 194, 185, 109, 55, 89, 118, 107, 108, 47, 84, 114, 67, 0, 43, 69, 32, 241, 217, 4,
-			224, 107, 39, 79, 108, 50, 23, 83, 39, 81, 23, 84, 113, 81, 88, 118, 72, 50, 37, 0, 11, 82, 102, 111, 103, 32, 118, 195, 169, 103,
-			122, 197, 145, 100, 110, 105, 32, 8, 197, 37, 69, 8, 60, 224, 11, 0, 15, 140, 115, 122, 97, 107, 195, 169, 114, 116, 197, 145, 106, 101,
-			11, 6, 195, 149, 97, 84, 11, 0, 14, 203, 52, 244, 134, 60, 225, 37, 72, 246, 148, 4, 176, 11, 8, 197, 77, 64, 66, 36, 192, 11,
-			7, 196, 64, 16, 220, 80, 11, 0, 9, 198, 136, 195, 98, 57, 152, 148, 11, 11, 200, 32, 17, 9, 24, 241, 207, 49, 144, 11, 6, 195,
-			34, 81, 192, 11, 6, 195, 50, 113, 192, 11, 0, 6, 195, 81, 81, 4, 11, 15, 204, 8, 150, 143, 57, 149, 1, 48, 19, 147, 112, 115,
-			203, 11, 9, 198, 88, 86, 133, 80, 129, 84, 11, 11, 200, 77, 161, 80, 80, 83, 66, 21, 32, 15, 0, 11, 136, 109, 195, 169, 114, 101,
-			116, 197, 177, 11, 51, 71, 24, 145, 217, 20, 195, 69, 80, 83, 37, 79, 109, 55, 65, 109, 47, 23, 49, 109, 55, 12, 23, 83, 39, 52,
-			72, 112, 47, 108, 50, 37, 0, 11, 82, 107, 101, 108, 108, 32, 102, 111, 114, 100, 195, 173, 116, 97, 110, 105, 32, 16, 141, 101, 108, 197,
-			145, 102, 111, 114, 100, 117, 108, 104, 97, 116, 11, 10, 199, 24, 145, 217, 20, 195, 69, 80, 11, 10, 199, 80, 20, 148, 4, 195, 65, 80,
-			11, 10, 199, 24, 83, 22, 21, 66, 5, 80, 11, 10, 199, 44, 20, 3, 76, 243, 1, 80, 11, 0, 11, 200, 76, 83, 5, 41, 65, 90,
-			137, 48, 11, 7, 196, 20, 227, 162, 48, 11, 10, 199, 88, 20, 156, 105, 51, 1, 80, 11, 12, 4, 95, 103, 114, 118, 47, 39, 65, 48,
-			108, 0, 0, 0, 11, 200, 73, 193, 217, 168, 165, 8, 5, 64, 11, 0, 11, 2, 195, 151, 47, 108, 55, 48, 108, 91, 0, 9, 198, 8,
-			18, 143, 45, 41, 204, 11, 13, 138, 109, 195, 169, 114, 101, 116, 197, 177, 101, 107, 11, 6, 195, 26, 131, 4, 11, 0, 9, 198, 77, 161,
-			77, 24, 241, 192, 11, 9, 198, 82, 132, 148, 136, 229, 0, 11, 9, 198, 20, 192, 68, 157, 73, 204, 11, 9, 198, 82, 132, 148, 136, 229,
-			0, 11, 0, 0, 50, 70, 80, 19, 156, 13, 51, 203, 47, 108, 50, 114, 76, 39, 49, 23, 49, 113, 52, 72, 113, 91, 113, 52, 118, 55,
-			23, 37, 91, 0, 11, 82, 107, 195, 169, 114, 100, 195, 169, 115, 195, 169, 114, 197, 145, 108, 32, 105, 115, 32, 0, 27, 67, 57, 97, 1,
-			101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 118, 97, 108, 0, 44, 29, 42, 81, 118, 97, 108, 32, 29, 67, 57, 97, 1, 101, 110, 118,
-			195, 169, 100, 195, 169, 195, 161, 116, 195, 179, 108, 0, 44, 29, 42, 81, 116, 195, 179, 108, 32, 23, 67, 57, 97, 1, 101, 110, 118, 195,
-			169, 100, 195, 169, 195, 161, 116, 0, 44, 29, 42, 81, 116, 32, 23, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 115,
-			0, 44, 29, 42, 81, 115, 32, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 110, 97, 107, 0, 44, 29, 42, 81,
-			110, 97, 107, 32, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 104, 111, 122, 0, 44, 29, 42, 81, 104, 111, 122,
-			32, 29, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 195, 179, 108, 0, 44, 29, 42, 81, 98, 195, 179, 108, 32,
-			27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 97, 110, 0, 44, 29, 42, 81, 98, 97, 110, 32, 25, 67, 57,
-			97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 97, 0, 44, 29, 42, 81, 98, 97, 32, 8, 197, 44, 20, 21, 56, 176, 11,
-			12, 201, 52, 20, 129, 17, 103, 14, 100, 18, 64, 11, 6, 195, 40, 241, 193, 11, 15, 67, 57, 97, 1, 109, 50, 84, 113, 72, 113, 108,
-			0, 42, 42, 0, 9, 198, 60, 179, 218, 56, 18, 192, 11, 11, 200, 24, 83, 2, 60, 229, 28, 78, 160, 11, 38, 69, 88, 81, 217, 172,
-			176, 84, 109, 79, 111, 49, 10, 6, 15, 83, 37, 79, 109, 55, 109, 65, 71, 109, 0, 11, 81, 102, 105, 103, 121, 101, 108, 101, 109, 98,
-			101, 32, 9, 198, 80, 20, 148, 61, 69, 0, 11, 0, 8, 197, 60, 179, 218, 56, 144, 11, 8, 197, 88, 86, 133, 80, 144, 11, 0, 12,
-			201, 32, 19, 135, 61, 165, 1, 80, 243, 64, 11, 0, 11, 2, 194, 167, 89, 6, 108, 49, 108, 89, 0, 9, 2, 195, 159, 21, 100, 101,
-			0, 47, 7, 196, 88, 83, 43, 44, 11, 6, 195, 82, 35, 0, 15, 0, 22, 66, 76, 80, 91, 109, 23, 71, 112, 52, 39, 65, 0, 11,
-			81, 98, 195, 173, 114, 111, 109, 32, 21, 66, 76, 80, 91, 109, 23, 49, 108, 48, 50, 37, 0, 11, 81, 107, 97, 112, 110, 105, 32, 29,
-			66, 76, 80, 91, 109, 23, 113, 52, 47, 109, 47, 12, 113, 49, 0, 11, 81, 195, 169, 114, 116, 101, 116, 116, 195, 169, 107, 32, 10, 199,
-			46, 179, 6, 160, 193, 40, 56, 11, 24, 66, 76, 80, 91, 109, 10, 6, 15, 47, 52, 113, 83, 108, 0, 11, 81, 116, 114, 195, 169, 102,
-			97, 32, 27, 66, 76, 80, 91, 109, 23, 76, 37, 50, 114, 55, 39, 49, 0, 11, 81, 99, 115, 105, 110, 195, 161, 108, 111, 107, 32, 23,
-			66, 76, 80, 91, 109, 23, 84, 109, 47, 12, 109, 65, 0, 11, 81, 118, 101, 116, 116, 101, 109, 32, 7, 196, 81, 195, 65, 16, 11, 5,
-			194, 56, 240, 72, 5, 194, 76, 80, 11, 0, 6, 195, 76, 242, 203, 11, 0, 11, 200, 65, 35, 198, 21, 52, 218, 61, 32, 11, 15, 69,
-			29, 145, 83, 21, 96, 79, 109, 91, 109, 84, 0, 42, 42, 0, 14, 203, 36, 225, 37, 81, 103, 14, 100, 242, 210, 156, 192, 11, 9, 198,
-			25, 196, 129, 77, 165, 39, 11, 8, 197, 57, 147, 205, 112, 224, 11, 9, 198, 32, 20, 218, 57, 195, 39, 11, 10, 199, 29, 144, 82, 5,
-			3, 196, 156, 11, 6, 195, 54, 163, 20, 11, 0, 9, 198, 84, 118, 65, 56, 148, 192, 11, 11, 136, 105, 100, 197, 145, 115, 101, 98, 98,
-			11, 58, 70, 24, 83, 43, 48, 85, 0, 83, 109, 55, 111, 55, 109, 47, 23, 108, 49, 108, 72, 114, 57, 65, 109, 50, 47, 109, 91, 12,
-			113, 81, 113, 47, 0, 11, 81, 97, 107, 97, 100, 195, 161, 108, 121, 109, 101, 110, 116, 101, 115, 115, 195, 169, 103, 195, 169, 116, 32, 9,
-			198, 24, 83, 43, 48, 85, 0, 11, 26, 70, 24, 83, 43, 48, 85, 0, 83, 109, 55, 111, 55, 109, 47, 23, 84, 108, 50, 0, 11, 81,
-			118, 97, 110, 32, 8, 197, 8, 195, 199, 61, 64, 11, 5, 194, 42, 112, 11, 0, 24, 67, 34, 164, 218, 107, 116, 89, 23, 113, 84, 71,
-			109, 50, 0, 11, 81, 195, 169, 118, 98, 101, 110, 32, 8, 197, 16, 84, 171, 49, 64, 11, 6, 195, 34, 164, 218, 11, 6, 195, 82, 37,
-			0, 11, 15, 7, 95, 35, 45, 116, 195, 179, 108, 114, 47, 115, 55, 0, 16, 0, 14, 2, 194, 174, 71, 109, 57, 109, 79, 88, 109, 47,
-			12, 0, 42, 72, 77, 167, 26, 4, 200, 139, 61, 64, 89, 114, 88, 108, 55, 113, 49, 39, 47, 23, 84, 109, 89, 112, 47, 109, 50, 109,
-			0, 11, 81, 118, 101, 115, 122, 195, 173, 116, 101, 110, 101, 32, 6, 195, 60, 179, 212, 11, 0, 18, 198, 21, 54, 141, 136, 161, 64, 11,
-			81, 104, 101, 118, 195, 173, 116, 105, 32, 0, 15, 2, 194, 172, 55, 39, 81, 37, 49, 108, 37, 50, 109, 65, 0, 5, 130, 195, 164, 43,
-			9, 198, 37, 39, 14, 101, 73, 204, 11, 8, 197, 24, 244, 137, 57, 64, 11, 11, 200, 32, 21, 39, 4, 230, 65, 30, 160, 11, 8, 197,
-			16, 243, 7, 61, 64, 11, 8, 197, 37, 51, 69, 73, 64, 11, 0, 7, 196, 81, 81, 19, 104, 76, 7, 196, 84, 118, 65, 56, 11, 20,
-			68, 149, 37, 1, 52, 112, 52, 47, 108, 65, 23, 55, 109, 0, 11, 81, 108, 101, 32, 9, 198, 89, 196, 143, 77, 192, 129, 11, 9, 198,
-			37, 39, 14, 101, 192, 129, 11, 10, 199, 88, 150, 147, 29, 195, 10, 4, 11, 7, 196, 149, 37, 1, 52, 11, 12, 201, 74, 36, 218, 48,
-			81, 226, 88, 83, 0, 11, 15, 7, 95, 35, 45, 114, 195, 179, 108, 114, 52, 115, 55, 0, 16, 0, 17, 142, 108, 101, 103, 102, 101, 108,
-			116, 197, 177, 110, 197, 145, 98, 98, 11, 11, 200, 45, 34, 84, 36, 183, 11, 72, 16, 11, 9, 198, 81, 195, 65, 17, 64, 75, 11, 10,
-			199, 173, 161, 77, 54, 113, 2, 4, 11, 38, 69, 12, 146, 204, 60, 224, 119, 37, 49, 55, 39, 50, 23, 47, 108, 55, 114, 55, 107, 108,
-			47, 115, 0, 11, 81, 116, 97, 108, 195, 161, 108, 104, 97, 116, 195, 179, 32, 9, 198, 81, 196, 143, 50, 114, 192, 11, 11, 200, 24, 145,
-			217, 20, 195, 98, 8, 80, 11, 8, 197, 48, 81, 217, 20, 224, 11, 0, 13, 138, 104, 197, 145, 98, 195, 182, 114, 195, 182, 103, 11, 12,
-			201, 46, 179, 40, 56, 36, 226, 28, 85, 0, 11, 9, 198, 89, 196, 136, 5, 73, 203, 11, 0, 41, 74, 4, 192, 80, 4, 230, 65, 28,
-			242, 210, 4, 108, 55, 108, 48, 108, 67, 108, 81, 39, 49, 52, 108, 23, 49, 113, 67, 109, 91, 0, 11, 81, 107, 195, 169, 110, 121, 101,
-			115, 32, 19, 144, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 116, 108, 101, 110, 11, 7, 196, 20, 227, 153, 36, 11, 14, 203,
-			52, 81, 198, 60, 112, 76, 52, 22, 143, 81, 64, 11, 0, 18, 2, 194, 169, 119, 39, 48, 37, 52, 37, 81, 107, 47, 20, 57, 109, 55,
-			0, 14, 203, 57, 145, 82, 76, 19, 153, 4, 115, 203, 72, 16, 11, 9, 198, 20, 200, 146, 137, 52, 133, 11, 9, 134, 107, 101, 122, 100,
-			197, 145, 11, 8, 197, 173, 161, 78, 21, 64, 11, 0, 13, 2, 194, 182, 71, 109, 49, 109, 88, 72, 113, 91, 0, 12, 201, 24, 83, 142,
-			4, 176, 68, 80, 19, 64, 11, 11, 200, 64, 244, 218, 80, 167, 18, 156, 192, 11, 13, 202, 80, 20, 148, 157, 162, 207, 17, 196, 210, 4,
-			11, 11, 200, 80, 147, 1, 48, 215, 18, 156, 192, 11, 13, 202, 112, 195, 1, 81, 64, 82, 81, 196, 210, 4, 11, 7, 196, 40, 241, 207,
-			44, 11, 0, 12, 201, 52, 83, 12, 136, 177, 76, 80, 83, 64, 11, 11, 200, 80, 19, 156, 13, 48, 68, 156, 144, 11, 13, 202, 57, 146,
-			76, 89, 195, 165, 81, 196, 210, 4, 11, 6, 195, 74, 115, 0, 11, 0, 7, 196, 161, 67, 5, 80, 11, 7, 196, 80, 82, 28, 80, 11,
-			5, 194, 60, 224, 11, 13, 66, 64, 192, 48, 113, 55, 72, 114, 40, 55, 0, 25, 9, 198, 24, 80, 146, 85, 196, 128, 15, 0, 7, 2,
-			194, 181, 65, 117, 0, 12, 201, 46, 132, 171, 48, 216, 142, 100, 82, 64, 11, 0, 12, 201, 137, 37, 5, 48, 209, 90, 106, 178, 192, 11,
-			10, 199, 168, 161, 15, 57, 55, 7, 4, 11, 12, 201, 36, 229, 5, 72, 225, 84, 21, 168, 147, 11, 0, 18, 67, 32, 241, 217, 107, 39,
-			79, 4, 108, 49, 37, 0, 81, 97, 107, 105, 32, 17, 67, 32, 241, 217, 107, 4, 39, 79, 4, 108, 88, 0, 81, 97, 122, 32, 15, 67,
-			32, 241, 217, 107, 4, 39, 79, 4, 108, 0, 81, 97, 32, 45, 8, 195, 169, 114, 105, 110, 116, 197, 145, 113, 52, 37, 50, 47, 118, 23,
-			49, 113, 52, 72, 113, 91, 109, 49, 71, 109, 50, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101, 107, 98, 101, 110, 32, 34, 70,
-			89, 195, 20, 61, 160, 84, 84, 114, 55, 47, 39, 88, 108, 47, 23, 109, 91, 109, 47, 113, 50, 0, 11, 81, 101, 115, 101, 116, 195, 169,
-			110, 32, 8, 197, 21, 49, 84, 136, 224, 11, 45, 8, 195, 169, 114, 105, 110, 116, 197, 145, 113, 52, 37, 50, 47, 118, 23, 83, 52, 37,
-			91, 12, 112, 47, 113, 91, 109, 49, 0, 11, 81, 102, 114, 105, 115, 115, 195, 173, 116, 195, 169, 115, 101, 107, 32, 6, 195, 64, 144, 201,
-			11, 12, 201, 77, 162, 71, 61, 41, 84, 113, 53, 0, 11, 9, 198, 89, 195, 20, 61, 160, 84, 11, 11, 136, 195, 169, 114, 105, 110, 116,
-			197, 145, 11, 8, 197, 21, 49, 84, 136, 224, 11, 6, 195, 52, 81, 217, 11, 6, 195, 10, 162, 148, 11, 6, 195, 52, 81, 217, 11, 0,
-			8, 2, 194, 176, 83, 39, 49, 0, 11, 2, 194, 176, 83, 39, 49, 57, 109, 55, 0, 6, 195, 78, 84, 0, 11, 0, 14, 2, 194, 177,
-			48, 55, 40, 89, 65, 37, 50, 40, 89, 0, 11, 136, 107, 101, 100, 118, 197, 177, 101, 107, 11, 6, 195, 14, 33, 192, 11, 6, 195, 54,
-			33, 192, 11, 0, 15, 2, 194, 190, 107, 114, 52, 39, 65, 50, 109, 79, 109, 72, 0, 8, 197, 33, 198, 130, 156, 192, 11, 8, 197, 53,
-			196, 210, 156, 192, 11, 11, 200, 44, 81, 22, 21, 163, 98, 57, 144, 11, 0, 10, 2, 195, 183, 39, 89, 47, 114, 91, 0, 10, 199, 77,
-			167, 18, 52, 22, 137, 44, 11, 0, 10, 2, 194, 188, 50, 109, 79, 109, 72, 0, 35, 70, 21, 49, 84, 48, 81, 192, 109, 91, 109, 47,
-			55, 109, 81, 23, 109, 55, 113, 52, 107, 109, 47, 0, 11, 81, 101, 108, 195, 169, 114, 104, 101, 116, 32, 16, 141, 102, 101, 106, 108, 101,
-			115, 122, 116, 195, 169, 115, 197, 177, 11, 9, 198, 13, 50, 78, 112, 197, 0, 11, 0, 8, 2, 194, 189, 83, 113, 55, 0, 0, 0, 28,
-			68, 24, 243, 25, 156, 83, 39, 57, 115, 15, 84, 109, 52, 91, 109, 67, 0, 11, 81, 118, 101, 114, 115, 101, 110, 121, 32, 9, 198, 24,
-			18, 193, 17, 64, 77, 11, 6, 195, 24, 241, 193, 11, 10, 199, 82, 132, 133, 45, 54, 137, 44, 11, 6, 195, 52, 17, 193, 11, 0, 12,
-			201, 32, 19, 12, 28, 21, 39, 45, 73, 204, 11, 0, 5, 130, 195, 177, 43, 7, 196, 49, 197, 39, 80, 11, 9, 198, 32, 20, 207, 56,
-			201, 192, 11, 0, 10, 199, 52, 243, 132, 4, 229, 78, 44, 11, 0, 6, 195, 88, 19, 0, 11, 6, 195, 74, 131, 0, 11, 0, 45, 67,
-			137, 37, 128, 113, 52, 84, 23, 108, 6, 15, 55, 37, 50, 40, 49, 89, 23, 65, 109, 55, 12, 109, 47, 12, 0, 11, 83, 97, 32, 108,
-			105, 110, 117, 120, 32, 109, 101, 108, 108, 101, 116, 116, 32, 11, 200, 40, 21, 129, 76, 192, 84, 61, 64, 11, 11, 200, 32, 20, 207, 56,
-			192, 84, 61, 64, 11, 6, 195, 137, 37, 128, 11, 9, 198, 64, 20, 129, 77, 165, 0, 11, 9, 198, 44, 83, 20, 21, 69, 0, 11, 7,
-			196, 90, 35, 5, 16, 11, 5, 194, 80, 80, 11, 13, 67, 161, 165, 128, 110, 88, 84, 109, 79, 0, 25, 46, 0, 11, 200, 21, 54, 139,
-			161, 170, 11, 160, 224, 11, 30, 66, 113, 64, 114, 47, 23, 108, 6, 23, 72, 52, 114, 84, 114, 47, 0, 11, 82, 97, 32, 100, 114, 195,
-			161, 118, 195, 161, 116, 32, 7, 196, 49, 195, 153, 4, 11, 11, 200, 24, 83, 15, 49, 96, 83, 157, 64, 11, 10, 199, 32, 21, 28, 72,
-			246, 142, 36, 11, 5, 194, 113, 64, 11, 18, 67, 88, 146, 64, 107, 113, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 14, 139,
-			109, 101, 103, 103, 121, 197, 145, 122, 110, 105, 101, 11, 0, 5, 194, 149, 32, 11, 12, 201, 88, 148, 197, 48, 177, 68, 21, 69, 0, 11,
-			0, 8, 197, 64, 144, 67, 61, 64, 11, 47, 69, 20, 208, 133, 73, 64, 109, 65, 71, 109, 52, 47, 23, 49, 37, 65, 109, 50, 109, 49,
-			112, 47, 109, 47, 12, 109, 49, 0, 11, 81, 107, 105, 109, 101, 110, 101, 107, 195, 173, 116, 101, 116, 116, 101, 107, 32, 8, 197, 80, 149,
-			11, 61, 64, 11, 8, 197, 88, 85, 20, 136, 176, 11, 5, 194, 74, 112, 11, 8, 197, 88, 149, 20, 136, 176, 11, 0, 23, 66, 161, 64,
-			110, 47, 23, 49, 110, 52, 111, 55, 0, 11, 81, 107, 195, 182, 114, 195, 188, 108, 32, 8, 197, 40, 83, 40, 49, 64, 11, 8, 197, 48,
-			87, 12, 49, 64, 11, 8, 197, 137, 37, 133, 49, 64, 11, 8, 197, 58, 133, 133, 49, 64, 11, 8, 197, 77, 167, 12, 49, 64, 11, 10,
-			199, 13, 58, 212, 161, 37, 40, 44, 15, 0, 11, 200, 77, 160, 66, 112, 198, 90, 157, 64, 11, 0, 10, 199, 46, 133, 133, 80, 83, 9,
-			44, 11, 13, 138, 101, 114, 197, 145, 108, 116, 101, 116, 105, 107, 11, 25, 67, 96, 146, 73, 47, 37, 88, 109, 50, 107, 114, 52, 39, 65,
-			12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 19, 67, 88, 146, 73, 67, 39, 55, 119, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0,
-			8, 197, 56, 83, 90, 21, 64, 11, 11, 200, 48, 81, 196, 73, 193, 220, 8, 32, 11, 8, 197, 24, 83, 22, 21, 64, 11, 10, 199, 89,
-			195, 20, 61, 163, 212, 80, 11, 11, 200, 52, 81, 214, 21, 36, 197, 49, 64, 11, 10, 199, 88, 17, 28, 77, 163, 212, 80, 11, 9, 198,
-			30, 36, 5, 44, 85, 0, 11, 7, 196, 112, 195, 39, 44, 11, 6, 195, 77, 167, 13, 11, 0, 6, 195, 81, 81, 0, 11, 22, 67, 20,
-			120, 146, 109, 81, 113, 52, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 9, 198, 172, 118, 86, 136, 66, 133, 11, 6, 195,
-			81, 81, 0, 11, 11, 67, 72, 19, 64, 52, 108, 65, 0, 42, 42, 0, 47, 70, 48, 82, 5, 80, 85, 20, 55, 109, 107, 109, 47, 109,
-			47, 12, 23, 84, 37, 90, 81, 114, 55, 50, 37, 23, 108, 89, 47, 0, 11, 82, 118, 105, 122, 115, 103, 195, 161, 108, 110, 105, 32, 97,
-			122, 116, 32, 36, 70, 48, 82, 5, 80, 85, 20, 55, 109, 107, 109, 47, 109, 47, 12, 23, 89, 114, 65, 114, 52, 108, 0, 11, 81, 115,
-			122, 195, 161, 109, 195, 161, 114, 97, 32, 13, 138, 107, 195, 182, 118, 101, 116, 197, 145, 101, 110, 11, 9, 198, 48, 82, 5, 80, 85, 20,
-			11, 0, 25, 70, 82, 131, 20, 76, 83, 64, 47, 110, 55, 76, 109, 65, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 12, 201, 89,
-			195, 20, 61, 165, 1, 80, 245, 20, 11, 9, 198, 72, 82, 212, 61, 32, 73, 11, 12, 201, 20, 195, 28, 80, 241, 193, 80, 245, 20, 11,
-			0, 41, 73, 44, 21, 5, 30, 116, 137, 112, 32, 64, 49, 108, 47, 109, 81, 115, 52, 37, 114, 71, 108, 23, 91, 39, 52, 39, 55, 39,
-			65, 0, 11, 81, 115, 111, 114, 111, 108, 111, 109, 32, 8, 133, 197, 145, 114, 122, 105, 11, 0, 9, 198, 80, 84, 211, 106, 178, 192, 11,
-			23, 70, 32, 148, 211, 106, 178, 192, 107, 37, 89, 12, 111, 49, 23, 109, 55, 0, 11, 81, 101, 108, 32, 9, 198, 80, 83, 142, 38, 178,
-			192, 11, 11, 200, 80, 19, 28, 48, 128, 84, 156, 176, 11, 11, 200, 32, 21, 28, 72, 246, 143, 81, 64, 11, 0, 13, 202, 32, 246, 154,
-			113, 64, 82, 80, 246, 167, 36, 11, 8, 197, 76, 81, 226, 49, 144, 11, 0, 23, 67, 20, 200, 128, 109, 55, 113, 23, 84, 109, 47, 37,
-			49, 0, 11, 81, 118, 101, 116, 105, 107, 32, 50, 71, 77, 161, 77, 136, 198, 69, 76, 89, 109, 65, 113, 57, 109, 91, 23, 71, 109, 114,
-			55, 12, 37, 47, 114, 91, 39, 49, 108, 47, 0, 11, 81, 98, 101, 195, 161, 108, 108, 195, 173, 116, 195, 161, 115, 111, 107, 97, 116, 32,
-			6, 195, 20, 200, 128, 11, 0, 7, 196, 42, 130, 5, 80, 11, 7, 196, 172, 118, 69, 80, 11, 0, 28, 71, 88, 150, 147, 29, 195, 14,
-			36, 84, 37, 90, 81, 114, 55, 50, 37, 23, 108, 89, 47, 0, 11, 81, 97, 122, 116, 32, 12, 201, 17, 84, 12, 36, 183, 3, 38, 116,
-			129, 11, 7, 196, 32, 246, 154, 112, 11, 0, 11, 200, 88, 84, 218, 80, 84, 226, 28, 80, 11, 42, 68, 72, 19, 135, 168, 52, 108, 50,
-			81, 116, 23, 47, 37, 89, 47, 84, 37, 91, 109, 55, 118, 57, 109, 0, 11, 81, 116, 105, 115, 122, 116, 118, 105, 115, 101, 108, 197, 145,
-			106, 101, 32, 0, 11, 136, 105, 106, 101, 115, 122, 116, 197, 145, 11, 34, 71, 24, 83, 5, 81, 74, 206, 44, 83, 109, 55, 109, 47, 12,
-			111, 50, 49, 23, 108, 88, 23, 113, 81, 0, 11, 82, 97, 122, 32, 195, 169, 103, 32, 14, 203, 57, 149, 71, 112, 195, 15, 53, 195, 153,
-			8, 16, 11, 6, 195, 77, 169, 204, 11, 0, 40, 70, 40, 241, 207, 44, 32, 78, 57, 39, 81, 39, 49, 71, 108, 50, 23, 37, 55, 12,
-			109, 47, 113, 49, 109, 91, 0, 11, 81, 105, 108, 108, 101, 116, 195, 169, 107, 101, 115, 32, 14, 203, 52, 147, 137, 77, 165, 5, 72, 83,
-			14, 160, 176, 11, 7, 196, 32, 149, 20, 20, 11, 6, 195, 80, 84, 150, 11, 0, 8, 197, 64, 84, 131, 72, 80, 17, 8, 197, 64, 243,
-			148, 40, 16, 11, 6, 195, 78, 117, 0, 11, 0, 0, 27, 71, 160, 227, 65, 29, 192, 129, 56, 110, 50, 65, 108, 81, 114, 71, 108, 50,
-			23, 108, 88, 0, 11, 81, 97, 122, 32, 10, 199, 44, 148, 198, 38, 163, 129, 44, 11, 10, 199, 57, 154, 138, 80, 19, 129, 44, 11, 6,
-			195, 90, 36, 148, 11, 10, 199, 49, 197, 19, 104, 19, 129, 44, 11, 0, 11, 200, 137, 37, 5, 48, 216, 130, 20, 224, 11, 0, 28, 69,
-			32, 18, 148, 40, 16, 107, 108, 57, 80, 108, 23, 84, 113, 81, 52, 109, 0, 11, 81, 118, 195, 169, 103, 114, 101, 32, 8, 197, 57, 146,
-			84, 40, 16, 11, 8, 197, 28, 243, 132, 40, 16, 11, 8, 197, 24, 241, 206, 36, 16, 11, 9, 198, 32, 20, 141, 4, 66, 75, 11, 6,
-			195, 76, 244, 147, 11, 0, 0, 10, 199, 53, 83, 139, 113, 51, 129, 44, 11, 9, 198, 46, 133, 133, 81, 72, 139, 11, 10, 199, 77, 167,
-			13, 60, 195, 129, 44, 11, 12, 137, 195, 186, 103, 121, 116, 197, 177, 110, 116, 11, 10, 199, 89, 195, 12, 4, 195, 129, 44, 11, 8, 197,
-			25, 85, 14, 4, 176, 11, 7, 196, 172, 194, 168, 56, 11, 0, 9, 198, 24, 150, 133, 80, 82, 192, 11, 11, 200, 54, 35, 25, 78, 33,
-			194, 20, 224, 11, 13, 202, 46, 134, 140, 20, 216, 142, 102, 32, 133, 56, 11, 9, 198, 60, 179, 218, 80, 18, 192, 11, 9, 198, 44, 20,
-			21, 41, 197, 0, 11, 9, 198, 46, 134, 168, 49, 72, 139, 11, 9, 198, 88, 83, 5, 80, 82, 192, 11, 0, 8, 197, 88, 243, 20, 4,
-			208, 72, 8, 197, 36, 195, 5, 80, 144, 11, 8, 197, 90, 33, 226, 36, 112, 11, 10, 199, 90, 37, 5, 50, 37, 133, 48, 11, 29, 71,
-			44, 21, 15, 57, 196, 167, 48, 49, 108, 47, 39, 50, 114, 52, 115, 55, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 10, 199, 44,
-			21, 15, 57, 196, 167, 48, 11, 35, 69, 88, 19, 1, 52, 144, 84, 108, 55, 108, 65, 37, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0,
-			11, 81, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 8, 197, 88, 243, 20, 4, 208, 11, 8, 197, 88, 19, 1, 52, 144, 11, 8, 197,
-			40, 83, 26, 20, 208, 11, 8, 197, 57, 154, 138, 82, 112, 11, 12, 201, 46, 133, 133, 80, 177, 90, 56, 82, 192, 11, 8, 197, 29, 41,
-			198, 61, 64, 11, 0, 13, 202, 33, 198, 147, 104, 16, 156, 49, 149, 39, 48, 11, 8, 197, 46, 36, 218, 172, 192, 11, 8, 197, 46, 36,
-			218, 172, 192, 11, 8, 197, 58, 35, 11, 172, 192, 11, 8, 197, 80, 21, 129, 77, 160, 15, 0, 8, 197, 24, 241, 213, 56, 176, 76, 13,
-			138, 98, 101, 108, 197, 145, 110, 105, 195, 188, 107, 11, 43, 69, 88, 243, 148, 4, 176, 84, 39, 50, 47, 108, 49, 23, 83, 109, 55, 109,
-			55, 118, 91, 113, 81, 51, 109, 0, 11, 81, 102, 101, 108, 101, 108, 197, 145, 115, 115, 195, 169, 103, 114, 101, 32, 6, 195, 5, 2, 129,
-			11, 9, 198, 25, 83, 139, 12, 153, 212, 11, 9, 198, 4, 226, 77, 112, 50, 103, 11, 8, 197, 32, 20, 131, 60, 176, 11, 0, 29, 69,
-			52, 147, 12, 38, 112, 65, 37, 55, 37, 115, 23, 83, 39, 52, 37, 50, 47, 0, 11, 81, 102, 111, 114, 105, 110, 116, 32, 14, 203, 81,
-			196, 135, 100, 19, 28, 76, 242, 194, 4, 224, 11, 15, 204, 40, 83, 5, 57, 66, 197, 104, 129, 84, 56, 82, 192, 11, 0, 39, 72, 44,
-			148, 218, 60, 193, 220, 50, 112, 49, 37, 89, 39, 55, 81, 114, 55, 115, 23, 57, 114, 52, 108, 47, 108, 37, 0, 11, 81, 106, 195, 161,
-			114, 97, 116, 97, 105, 32, 24, 68, 20, 208, 133, 72, 109, 65, 71, 109, 52, 23, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32,
-			13, 196, 20, 208, 133, 72, 11, 81, 118, 111, 108, 116, 32, 11, 200, 44, 148, 218, 60, 193, 220, 50, 112, 11, 7, 196, 20, 208, 133, 72,
-			11, 6, 195, 74, 161, 0, 11, 6, 195, 77, 169, 192, 11, 0, 13, 202, 80, 83, 5, 66, 85, 34, 78, 37, 133, 48, 11, 9, 198, 77,
-			163, 203, 113, 51, 211, 11, 0, 23, 67, 112, 195, 20, 114, 55, 47, 23, 110, 89, 12, 109, 0, 11, 81, 195, 182, 115, 115, 122, 101, 32,
-			9, 198, 77, 161, 82, 20, 195, 69, 11, 33, 67, 112, 195, 20, 114, 55, 47, 23, 48, 113, 55, 72, 108, 49, 113, 50, 47, 0, 11, 81,
-			112, 195, 169, 108, 100, 97, 107, 195, 169, 110, 116, 32, 15, 204, 52, 81, 214, 113, 55, 18, 60, 194, 1, 82, 114, 192, 11, 12, 201, 80,
-			19, 28, 48, 215, 14, 101, 83, 139, 11, 6, 195, 112, 195, 20, 11, 0, 9, 198, 20, 195, 168, 46, 37, 0, 11, 8, 197, 80, 84, 141,
-			136, 176, 11, 9, 198, 24, 81, 5, 104, 85, 0, 11, 9, 198, 24, 241, 193, 48, 208, 90, 11, 0, 7, 197, 20, 118, 107, 81, 64, 8,
-			197, 34, 85, 143, 81, 64, 11, 0, 20, 67, 80, 20, 148, 47, 108, 52, 47, 23, 39, 47, 12, 0, 11, 81, 111, 116, 116, 32, 9, 198,
-			8, 85, 137, 80, 83, 20, 11, 10, 199, 89, 196, 220, 72, 243, 14, 36, 11, 6, 195, 80, 20, 148, 11, 0, 10, 199, 58, 133, 133, 45,
-			54, 137, 44, 11, 9, 198, 4, 113, 231, 16, 245, 20, 11, 0, 11, 200, 32, 19, 1, 77, 165, 15, 81, 64, 11, 0, 21, 67, 82, 130,
-			192, 47, 110, 49, 23, 37, 81, 108, 88, 0, 11, 81, 105, 103, 97, 122, 32, 11, 200, 54, 36, 148, 136, 184, 130, 20, 224, 11, 18, 4,
-			95, 56, 48, 111, 67, 39, 55, 119, 84, 108, 50, 108, 72, 37, 49, 0, 0, 11, 200, 82, 132, 150, 136, 227, 153, 20, 192, 11, 10, 198,
-			66, 35, 4, 113, 83, 0, 11, 17, 0, 8, 197, 81, 81, 20, 60, 176, 76, 8, 197, 88, 19, 142, 4, 176, 11, 43, 73, 65, 35, 194,
-			50, 35, 92, 44, 21, 0, 48, 52, 39, 71, 55, 113, 65, 114, 49, 108, 47, 23, 49, 108, 48, 108, 52, 81, 108, 47, 0, 11, 81, 107,
-			97, 112, 97, 114, 103, 97, 116, 32, 12, 201, 52, 81, 203, 161, 72, 147, 136, 33, 78, 11, 12, 201, 65, 35, 194, 50, 35, 92, 44, 21,
-			0, 11, 13, 202, 80, 84, 218, 80, 83, 34, 78, 32, 133, 56, 11, 12, 201, 4, 192, 80, 161, 67, 5, 82, 37, 0, 11, 0, 9, 198,
-			85, 64, 90, 56, 18, 192, 11, 10, 199, 13, 48, 76, 156, 67, 212, 80, 11, 9, 198, 8, 19, 139, 56, 18, 192, 11, 22, 68, 40, 83,
-			26, 36, 57, 109, 55, 88, 37, 10, 6, 15, 108, 88, 0, 11, 81, 97, 122, 32, 43, 70, 72, 83, 132, 77, 161, 82, 52, 109, 50, 119,
-			109, 52, 23, 83, 40, 47, 12, 108, 47, 114, 91, 114, 52, 108, 0, 11, 81, 102, 117, 116, 116, 97, 116, 195, 161, 115, 195, 161, 114, 97,
-			32, 31, 70, 72, 144, 68, 56, 18, 192, 51, 37, 108, 72, 50, 108, 49, 23, 84, 37, 89, 12, 108, 0, 11, 81, 118, 105, 115, 115, 122,
-			97, 32, 9, 198, 5, 163, 203, 56, 18, 192, 11, 41, 70, 72, 83, 132, 77, 161, 82, 52, 109, 50, 119, 109, 52, 23, 83, 52, 37, 91,
-			12, 112, 47, 113, 91, 47, 0, 11, 81, 102, 114, 105, 115, 115, 195, 173, 116, 195, 169, 115, 116, 32, 7, 196, 40, 241, 207, 52, 11, 9,
-			198, 20, 194, 232, 49, 69, 133, 11, 9, 198, 32, 19, 135, 104, 146, 192, 11, 9, 198, 52, 243, 132, 41, 82, 192, 11, 7, 196, 88, 85,
-			14, 36, 11, 9, 198, 32, 19, 135, 104, 146, 192, 11, 9, 198, 72, 83, 132, 77, 161, 82, 11, 7, 196, 40, 83, 26, 36, 11, 0, 20,
-			67, 4, 194, 71, 108, 55, 37, 81, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 8, 197, 26, 36, 134, 37, 64, 11, 0, 63, 14,
-			101, 103, 121, 195, 169, 114, 116, 101, 108, 109, 197, 177, 101, 110, 109, 79, 12, 113, 52, 47, 109, 55, 65, 117, 109, 50, 23, 65, 109, 81,
-			114, 55, 12, 108, 48, 112, 47, 39, 47, 12, 108, 0, 11, 81, 109, 101, 103, 195, 161, 108, 108, 97, 112, 195, 173, 116, 111, 116, 116, 97,
-			32, 6, 195, 82, 115, 0, 11, 0, 8, 197, 76, 82, 148, 36, 176, 11, 9, 198, 32, 20, 207, 56, 201, 84, 11, 9, 198, 20, 209, 76,
-			137, 49, 64, 11, 18, 67, 148, 118, 64, 112, 79, 23, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 20, 67, 148, 118, 64, 112, 79, 15,
-			84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116, 32, 9, 198, 80, 19, 132, 148, 160, 84, 11, 6, 195, 148, 118, 64, 11, 0, 7, 196,
-			50, 36, 34, 76, 11, 8, 197, 81, 195, 153, 137, 32, 11, 7, 196, 5, 32, 78, 100, 11, 6, 195, 12, 146, 203, 11, 7, 196, 49, 195,
-			153, 80, 11, 0, 22, 68, 20, 65, 9, 28, 109, 72, 12, 37, 81, 23, 91, 109, 65, 0, 11, 81, 115, 101, 109, 32, 0, 0, 6, 195,
-			57, 195, 1, 11, 0, 23, 69, 77, 163, 203, 80, 16, 89, 39, 49, 47, 108, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 7, 196,
-			9, 192, 211, 36, 11, 8, 197, 72, 243, 148, 40, 16, 11, 8, 197, 4, 176, 82, 80, 16, 11, 9, 198, 16, 243, 7, 61, 162, 75, 11,
-			8, 197, 44, 86, 132, 80, 80, 11, 0, 28, 67, 4, 176, 82, 108, 49, 108, 52, 23, 84, 108, 55, 108, 65, 37, 47, 0, 11, 81, 118,
-			97, 108, 97, 109, 105, 116, 32, 34, 67, 4, 176, 82, 108, 49, 108, 52, 10, 6, 15, 108, 6, 15, 79, 114, 52, 47, 115, 0, 11, 82,
-			97, 32, 103, 121, 195, 161, 114, 116, 195, 179, 32, 29, 67, 4, 176, 82, 108, 6, 49, 108, 52, 23, 65, 108, 52, 108, 72, 50, 37, 0,
-			11, 81, 109, 97, 114, 97, 100, 110, 105, 32, 8, 197, 77, 168, 140, 136, 224, 11, 6, 195, 4, 176, 82, 11, 0, 19, 67, 85, 48, 64,
-			117, 115, 195, 161, 98, 97, 0, 44, 29, 42, 81, 98, 97, 32, 21, 67, 85, 48, 64, 117, 115, 195, 161, 98, 97, 110, 0, 44, 29, 42,
-			81, 98, 97, 110, 32, 25, 67, 85, 48, 64, 117, 115, 195, 161, 195, 169, 118, 97, 108, 0, 44, 29, 42, 81, 195, 169, 118, 97, 108, 32,
-			21, 67, 85, 48, 64, 117, 115, 195, 161, 110, 97, 107, 0, 44, 29, 42, 81, 110, 97, 107, 32, 23, 67, 85, 48, 64, 117, 115, 195, 161,
-			98, 195, 179, 108, 0, 44, 29, 42, 81, 98, 195, 179, 108, 32, 10, 199, 61, 36, 218, 112, 115, 129, 44, 11, 8, 197, 40, 241, 210, 156,
-			192, 11, 0, 41, 68, 40, 241, 210, 4, 57, 39, 81, 52, 108, 23, 84, 114, 55, 47, 39, 89, 47, 108, 47, 39, 47, 12, 0, 11, 81,
-			118, 195, 161, 108, 116, 111, 122, 116, 97, 116, 111, 116, 116, 32, 9, 198, 136, 193, 84, 136, 33, 78, 11, 7, 196, 24, 241, 214, 4, 11,
-			0, 10, 199, 20, 120, 147, 106, 32, 133, 56, 11, 8, 197, 52, 144, 84, 80, 16, 11, 6, 195, 73, 193, 0, 11, 8, 197, 52, 243, 132,
-			40, 16, 11, 6, 195, 88, 84, 147, 11, 17, 3, 117, 46, 110, 116, 79, 50, 109, 84, 109, 88, 109, 47, 12, 0, 25, 0, 7, 66, 77,
-			160, 109, 89, 0, 35, 67, 20, 200, 135, 109, 55, 113, 81, 15, 83, 37, 79, 109, 55, 65, 109, 91, 109, 50, 0, 11, 81, 102, 105, 103,
-			121, 101, 108, 109, 101, 115, 101, 110, 32, 6, 195, 20, 200, 135, 11, 0, 7, 196, 44, 147, 39, 76, 11, 16, 141, 98, 197, 177, 110, 116,
-			101, 116, 116, 195, 169, 98, 101, 110, 11, 0, 11, 200, 32, 151, 14, 100, 246, 142, 4, 176, 11, 9, 198, 29, 145, 82, 52, 82, 192, 11,
-			9, 198, 52, 20, 129, 16, 242, 192, 11, 11, 200, 25, 83, 139, 12, 153, 206, 4, 176, 11, 9, 198, 24, 243, 25, 56, 18, 192, 11, 9,
-			198, 57, 145, 82, 80, 82, 192, 11, 6, 195, 137, 38, 137, 11, 0, 10, 199, 137, 33, 90, 32, 85, 20, 20, 11, 6, 195, 42, 114, 192,
-			11, 8, 197, 80, 17, 202, 4, 144, 11, 8, 197, 32, 148, 218, 20, 208, 11, 0, 9, 198, 72, 17, 207, 104, 226, 64, 11, 9, 198, 40,
-			83, 5, 104, 226, 64, 11, 11, 200, 45, 34, 84, 37, 167, 12, 80, 16, 11, 6, 195, 25, 194, 128, 11, 5, 194, 112, 208, 11, 5, 194,
-			136, 144, 72, 0, 8, 197, 104, 18, 140, 36, 176, 11, 32, 69, 81, 81, 20, 4, 176, 47, 40, 47, 12, 108, 49, 23, 65, 39, 50, 72,
-			108, 50, 37, 0, 11, 81, 109, 111, 110, 100, 97, 110, 105, 32, 14, 203, 24, 83, 15, 49, 96, 83, 32, 21, 14, 4, 176, 11, 12, 201,
-			80, 19, 28, 48, 179, 218, 61, 69, 0, 11, 8, 197, 52, 83, 142, 20, 176, 11, 8, 197, 4, 197, 156, 77, 64, 11, 8, 197, 46, 36,
-			5, 77, 64, 11, 6, 195, 88, 83, 0, 11, 6, 195, 82, 131, 0, 11, 0, 9, 198, 64, 243, 148, 41, 197, 0, 11, 43, 70, 82, 132,
-			150, 136, 230, 64, 47, 110, 52, 84, 113, 67, 10, 10, 47, 109, 52, 84, 109, 88, 109, 47, 113, 71, 109, 0, 11, 81, 116, 101, 114, 118,
-			101, 122, 101, 116, 195, 169, 98, 101, 32, 50, 70, 82, 132, 150, 136, 230, 64, 47, 110, 52, 84, 113, 67, 23, 49, 39, 50, 119, 109, 48,
-			119, 37, 115, 57, 114, 52, 115, 55, 0, 11, 81, 107, 111, 110, 99, 101, 112, 99, 105, 195, 179, 106, 195, 161, 114, 195, 179, 108, 32, 9,
-			198, 82, 132, 150, 136, 230, 64, 11, 7, 196, 88, 83, 142, 36, 11, 7, 196, 32, 246, 142, 36, 11, 7, 196, 88, 147, 142, 36, 11, 7,
-			196, 32, 246, 142, 36, 11, 0, 31, 69, 77, 160, 86, 4, 208, 89, 108, 84, 108, 65, 15, 57, 114, 52, 114, 91, 108, 0, 11, 81, 106,
-			195, 161, 114, 195, 161, 115, 97, 32, 8, 197, 57, 147, 205, 60, 208, 11, 8, 197, 137, 37, 10, 172, 176, 11, 8, 197, 48, 83, 20, 20,
-			208, 11, 0, 10, 199, 32, 148, 132, 21, 67, 162, 16, 11, 14, 203, 60, 179, 211, 80, 83, 5, 24, 243, 142, 4, 192, 11, 9, 198, 77,
-			161, 77, 52, 83, 0, 11, 5, 194, 80, 144, 11, 11, 66, 92, 48, 84, 113, 119, 113, 0, 42, 42, 0, 21, 67, 8, 18, 128, 71, 108,
-			57, 10, 6, 15, 84, 108, 50, 0, 11, 81, 118, 97, 110, 32, 19, 67, 8, 18, 128, 71, 108, 57, 10, 6, 15, 108, 88, 0, 11, 81,
-			97, 122, 32, 20, 67, 8, 18, 128, 71, 108, 57, 15, 84, 39, 55, 47, 0, 81, 118, 111, 108, 116, 32, 12, 201, 44, 243, 134, 36, 117,
-			82, 112, 50, 103, 11, 6, 195, 32, 81, 217, 11, 6, 195, 8, 18, 128, 11, 0, 8, 197, 60, 192, 211, 156, 176, 11, 7, 196, 57, 144,
-			75, 168, 11, 0, 14, 203, 36, 229, 34, 104, 216, 142, 100, 82, 206, 136, 192, 11, 0, 13, 202, 46, 35, 153, 77, 161, 82, 149, 65, 78,
-			36, 11, 0, 12, 201, 53, 196, 207, 17, 1, 82, 12, 85, 0, 11, 9, 198, 46, 36, 5, 104, 232, 139, 11, 12, 201, 16, 148, 218, 81,
-			34, 66, 168, 50, 103, 11, 8, 197, 20, 194, 168, 81, 64, 11, 8, 197, 50, 36, 5, 81, 64, 11, 12, 201, 13, 58, 212, 161, 37, 40,
-			44, 145, 192, 17, 0, 13, 2, 95, 34, 37, 72, 113, 88, 118, 57, 109, 55, 0, 11, 200, 44, 244, 141, 112, 230, 78, 4, 176, 11, 22,
-			68, 160, 194, 162, 44, 110, 57, 57, 113, 49, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 9, 198, 56, 20, 20, 113, 32, 129, 11,
-			6, 195, 88, 84, 148, 11, 0, 17, 2, 95, 33, 83, 109, 55, 49, 37, 114, 55, 47, 115, 57, 109, 55, 0, 8, 197, 58, 38, 142, 136,
-			176, 11, 12, 201, 28, 22, 132, 5, 55, 7, 56, 18, 192, 11, 8, 197, 89, 195, 1, 77, 160, 11, 6, 195, 46, 34, 192, 11, 8, 197,
-			90, 35, 20, 136, 176, 11, 6, 195, 42, 133, 20, 11, 0, 7, 66, 81, 144, 80, 113, 0, 11, 200, 48, 148, 212, 112, 167, 2, 4, 224,
-			11, 11, 200, 24, 244, 141, 112, 167, 2, 4, 224, 11, 6, 195, 137, 54, 128, 11, 0, 13, 2, 95, 39, 108, 48, 39, 89, 47, 52, 115,
-			83, 0, 8, 197, 81, 81, 14, 4, 176, 76, 9, 198, 13, 50, 78, 112, 196, 218, 11, 25, 68, 36, 198, 69, 56, 37, 57, 109, 50, 10,
-			6, 15, 71, 39, 55, 47, 0, 11, 81, 98, 111, 108, 116, 32, 31, 68, 60, 198, 65, 56, 39, 57, 108, 50, 10, 6, 15, 49, 113, 52,
-			72, 113, 91, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 32, 9, 198, 52, 147, 132, 20, 226, 201, 11, 11, 200, 65, 35, 194, 50,
-			35, 92, 40, 16, 11, 12, 201, 32, 19, 12, 28, 21, 39, 44, 21, 0, 11, 23, 68, 36, 198, 69, 56, 37, 57, 109, 50, 15, 89, 113,
-			48, 0, 11, 81, 115, 122, 195, 169, 112, 32, 8, 197, 81, 81, 14, 4, 176, 11, 7, 196, 60, 198, 65, 56, 11, 6, 195, 8, 19, 128,
-			72, 6, 195, 40, 19, 128, 15, 0, 13, 202, 52, 81, 211, 104, 244, 165, 81, 196, 207, 44, 11, 9, 198, 8, 85, 5, 28, 82, 192, 11,
-			27, 71, 32, 20, 218, 57, 195, 19, 104, 107, 108, 89, 50, 114, 55, 89, 15, 83, 109, 55, 0, 11, 81, 102, 101, 108, 32, 43, 76, 36,
-			225, 143, 72, 208, 84, 36, 181, 83, 56, 18, 192, 37, 50, 83, 39, 52, 10, 65, 108, 47, 37, 49, 40, 91, 50, 108, 49, 15, 49, 109,
-			55, 12, 0, 11, 81, 107, 101, 108, 108, 32, 7, 196, 25, 85, 14, 36, 11, 12, 201, 20, 195, 28, 81, 196, 220, 8, 19, 128, 11, 10,
-			199, 32, 20, 218, 57, 195, 19, 104, 11, 12, 137, 118, 101, 122, 101, 116, 197, 145, 106, 101, 11, 9, 198, 52, 243, 132, 80, 18, 192, 11,
-			8, 197, 42, 163, 137, 85, 48, 15, 0, 11, 200, 89, 196, 220, 72, 243, 14, 4, 176, 11, 12, 201, 82, 132, 148, 136, 225, 84, 136, 33,
-			78, 11, 13, 202, 20, 193, 75, 81, 35, 206, 36, 183, 10, 4, 11, 8, 197, 88, 84, 218, 20, 208, 11, 12, 201, 77, 170, 204, 21, 52,
-			197, 56, 82, 192, 11, 0, 14, 203, 46, 36, 22, 37, 49, 76, 21, 72, 130, 20, 224, 11, 9, 198, 88, 84, 147, 20, 230, 64, 11, 43,
-			71, 80, 20, 139, 149, 67, 212, 80, 47, 108, 52, 49, 112, 47, 39, 47, 12, 15, 10, 37, 72, 118, 57, 114, 52, 114, 91, 0, 11, 81,
-			105, 100, 197, 145, 106, 195, 161, 114, 195, 161, 115, 32, 14, 203, 4, 194, 193, 48, 208, 90, 113, 55, 2, 4, 224, 11, 9, 198, 37, 51,
-			69, 73, 74, 203, 11, 9, 198, 52, 20, 129, 16, 226, 64, 11, 9, 198, 20, 195, 69, 56, 226, 64, 11, 9, 198, 44, 146, 149, 80, 226,
-			64, 11, 9, 198, 24, 150, 133, 80, 226, 64, 11, 9, 198, 52, 20, 129, 16, 226, 64, 11, 9, 198, 36, 225, 21, 48, 226, 64, 11, 6,
-			195, 53, 194, 128, 15, 0, 7, 195, 88, 19, 128, 11, 17, 9, 198, 72, 83, 98, 48, 170, 203, 11, 11, 136, 195, 169, 114, 107, 101, 122,
-			197, 145, 11, 21, 67, 88, 19, 128, 84, 108, 50, 10, 6, 15, 37, 47, 12, 0, 11, 81, 105, 116, 116, 32, 32, 67, 88, 19, 128, 84,
-			108, 50, 23, 89, 111, 49, 91, 113, 81, 109, 65, 0, 11, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 109, 32, 18, 67, 88, 19,
-			128, 84, 108, 50, 23, 52, 114, 0, 11, 81, 114, 195, 161, 32, 23, 67, 88, 19, 128, 84, 108, 50, 23, 37, 72, 109, 57, 109, 0, 11,
-			81, 105, 100, 101, 106, 101, 32, 47, 72, 81, 195, 79, 28, 21, 15, 81, 64, 47, 114, 65, 39, 81, 108, 47, 39, 47, 12, 23, 49, 37,
-			108, 72, 114, 91, 23, 55, 109, 89, 0, 11, 82, 107, 105, 97, 100, 195, 161, 115, 32, 108, 101, 115, 122, 32, 11, 200, 81, 195, 79, 28,
-			21, 15, 81, 64, 11, 0, 15, 140, 110, 101, 118, 101, 108, 197, 145, 107, 110, 195, 169, 108, 11, 12, 201, 36, 229, 15, 57, 192, 201, 156,
-			160, 64, 11, 14, 139, 107, 101, 114, 101, 115, 197, 145, 106, 195, 188, 107, 11, 9, 198, 52, 81, 203, 137, 35, 137, 11, 11, 200, 77, 161,
-			82, 21, 67, 162, 56, 176, 11, 12, 201, 44, 151, 12, 50, 85, 28, 76, 243, 128, 11, 0, 17, 2, 95, 41, 57, 6, 39, 71, 88, 114,
-			52, 115, 57, 109, 55, 0, 27, 27, 69, 57, 146, 84, 56, 144, 67, 37, 47, 50, 37, 23, 108, 49, 12, 39, 52, 0, 11, 81, 97, 107,
-			107, 111, 114, 32, 9, 198, 29, 145, 82, 20, 184, 148, 11, 0, 17, 2, 95, 40, 71, 6, 108, 55, 88, 114, 52, 115, 57, 109, 55, 0,
-			27, 9, 198, 44, 244, 156, 74, 115, 0, 11, 11, 200, 137, 37, 34, 44, 83, 10, 172, 176, 11, 10, 199, 80, 19, 28, 48, 215, 14, 100,
-			11, 0, 6, 195, 8, 18, 201, 11, 6, 195, 24, 241, 217, 11, 12, 201, 168, 164, 129, 44, 86, 132, 137, 53, 0, 11, 6, 195, 76, 244,
-			128, 11, 6, 195, 56, 82, 201, 11, 11, 67, 8, 20, 128, 71, 108, 52, 0, 42, 42, 0, 9, 2, 95, 46, 48, 39, 50, 47, 0, 20,
-			145, 102, 114, 97, 107, 99, 105, 195, 179, 118, 101, 122, 101, 116, 197, 145, 106, 101, 11, 11, 200, 20, 196, 133, 56, 65, 90, 137, 48, 11,
-			0, 12, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 27, 14, 203, 80, 19, 28, 48, 179, 218, 156, 167, 22, 4, 192, 11, 13, 202, 46,
-			36, 218, 172, 200, 139, 20, 179, 162, 48, 11, 11, 200, 82, 132, 148, 136, 225, 84, 137, 64, 11, 12, 201, 52, 20, 129, 17, 103, 14, 100,
-			18, 84, 11, 12, 201, 77, 168, 139, 33, 198, 156, 10, 115, 0, 11, 14, 203, 77, 68, 129, 82, 33, 201, 112, 167, 22, 4, 192, 11, 7,
-			196, 24, 18, 193, 16, 11, 8, 197, 36, 65, 74, 136, 224, 11, 9, 197, 20, 193, 74, 136, 224, 15, 11, 0, 10, 2, 95, 44, 84, 109,
-			89, 122, 118, 0, 10, 199, 74, 129, 218, 149, 65, 78, 36, 11, 0, 9, 198, 29, 151, 18, 80, 167, 11, 11, 9, 198, 40, 21, 129, 76,
-			195, 205, 11, 6, 195, 81, 68, 192, 11, 8, 197, 8, 84, 218, 136, 192, 11, 9, 198, 80, 20, 148, 4, 195, 205, 11, 12, 67, 53, 36,
-			192, 65, 37, 89, 37, 89, 0, 25, 6, 195, 49, 68, 192, 15, 10, 2, 95, 51, 107, 114, 52, 39, 65, 0, 0, 12, 201, 16, 151, 11,
-			82, 179, 148, 21, 72, 147, 11, 9, 198, 173, 161, 77, 54, 113, 0, 11, 20, 68, 113, 53, 28, 44, 114, 91, 47, 114, 49, 23, 109, 55,
-			0, 11, 81, 101, 108, 32, 10, 2, 95, 50, 49, 109, 47, 12, 118, 0, 0, 13, 202, 32, 19, 28, 48, 42, 206, 80, 85, 34, 76, 11,
-			9, 198, 65, 35, 196, 84, 183, 12, 11, 22, 67, 46, 134, 148, 49, 110, 89, 47, 15, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108, 116,
-			32, 8, 197, 49, 197, 10, 112, 176, 11, 8, 197, 49, 197, 10, 112, 176, 11, 7, 196, 52, 20, 129, 16, 11, 7, 195, 46, 134, 148, 11,
-			17, 7, 2, 95, 49, 109, 79, 0, 0, 6, 195, 81, 195, 128, 11, 10, 199, 44, 244, 170, 4, 178, 193, 48, 11, 10, 2, 95, 48, 50,
-			40, 55, 55, 108, 0, 0, 8, 197, 88, 85, 20, 20, 176, 11, 9, 198, 81, 195, 65, 17, 71, 11, 11, 9, 198, 44, 148, 129, 44, 21,
-			1, 11, 9, 198, 76, 244, 143, 104, 21, 1, 11, 9, 198, 66, 35, 148, 20, 177, 78, 17, 8, 2, 95, 55, 107, 113, 121, 0, 0, 11,
-			200, 52, 243, 132, 32, 21, 14, 112, 176, 11, 9, 198, 88, 149, 28, 41, 197, 0, 11, 7, 196, 168, 164, 220, 28, 11, 8, 133, 110, 197,
-			145, 110, 105, 11, 9, 198, 112, 193, 15, 104, 21, 1, 11, 11, 200, 40, 21, 129, 76, 243, 20, 112, 176, 11, 8, 2, 95, 54, 107, 108,
-			121, 0, 0, 7, 2, 95, 53, 110, 121, 0, 0, 10, 199, 88, 19, 12, 156, 178, 193, 48, 11, 10, 199, 65, 196, 148, 60, 178, 193, 48,
-			11, 9, 198, 77, 163, 204, 29, 195, 0, 11, 8, 2, 95, 52, 50, 113, 79, 0, 0, 16, 2, 95, 59, 48, 39, 50, 47, 39, 91, 84,
-			109, 89, 122, 118, 0, 22, 67, 168, 118, 64, 116, 79, 10, 6, 15, 83, 109, 91, 47, 0, 11, 81, 102, 101, 115, 116, 32, 37, 67, 168,
-			118, 64, 116, 79, 10, 6, 15, 113, 52, 47, 109, 55, 65, 109, 89, 47, 109, 65, 0, 11, 81, 195, 169, 114, 116, 101, 108, 109, 101, 122,
-			116, 101, 109, 32, 35, 67, 168, 118, 64, 116, 79, 10, 6, 15, 113, 52, 47, 109, 55, 65, 109, 88, 109, 65, 0, 11, 81, 195, 169, 114,
-			116, 101, 108, 109, 101, 122, 101, 109, 32, 21, 67, 168, 118, 64, 116, 79, 23, 107, 37, 89, 37, 0, 11, 81, 104, 105, 115, 122, 105, 32,
-			35, 70, 137, 37, 5, 48, 209, 64, 113, 52, 47, 109, 55, 65, 109, 23, 83, 109, 55, 52, 115, 50, 37, 0, 11, 81, 102, 101, 108, 114,
-			195, 179, 110, 105, 32, 9, 198, 137, 37, 5, 48, 209, 64, 11, 6, 195, 82, 163, 0, 11, 6, 195, 168, 118, 64, 11, 0, 15, 2, 95,
-			58, 49, 109, 47, 12, 118, 91, 48, 39, 50, 47, 0, 30, 71, 77, 160, 66, 112, 198, 90, 156, 89, 108, 71, 114, 57, 88, 115, 23, 40,
-			47, 114, 50, 0, 11, 81, 117, 116, 195, 161, 110, 32, 10, 199, 36, 229, 15, 57, 192, 201, 156, 11, 0, 10, 199, 21, 33, 68, 54, 35,
-			153, 20, 11, 11, 200, 36, 225, 143, 72, 215, 3, 38, 112, 11, 11, 2, 95, 57, 49, 37, 55, 109, 50, 119, 0, 0, 9, 2, 95, 56,
-			67, 39, 55, 119, 0, 0, 13, 2, 95, 63, 49, 113, 52, 72, 118, 57, 109, 55, 0, 38, 67, 56, 17, 217, 50, 108, 79, 10, 6, 15,
-			65, 109, 81, 55, 109, 48, 109, 47, 113, 91, 47, 0, 11, 81, 109, 101, 103, 108, 101, 112, 101, 116, 195, 169, 115, 116, 32, 18, 143, 98,
-			195, 182, 110, 103, 195, 169, 115, 122, 197, 145, 98, 197, 145, 108, 11, 12, 201, 46, 179, 40, 56, 36, 226, 28, 113, 76, 11, 9, 198, 77,
-			167, 18, 52, 22, 167, 11, 6, 195, 56, 17, 217, 11, 6, 195, 32, 86, 128, 11, 0, 10, 2, 95, 62, 50, 108, 79, 39, 71, 0, 6,
-			195, 136, 197, 133, 11, 9, 198, 24, 82, 34, 72, 85, 0, 11, 0, 38, 68, 33, 196, 143, 52, 107, 114, 52, 39, 65, 23, 113, 84, 37,
-			81, 23, 71, 112, 52, 50, 37, 0, 11, 82, 195, 169, 118, 105, 103, 32, 98, 195, 173, 114, 110, 105, 32, 6, 195, 46, 131, 20, 11, 13,
-			202, 24, 83, 20, 20, 193, 80, 149, 65, 78, 36, 11, 10, 199, 81, 196, 135, 100, 19, 14, 36, 11, 10, 199, 113, 68, 1, 44, 243, 14,
-			36, 11, 6, 195, 18, 163, 20, 11, 7, 196, 4, 67, 212, 80, 11, 6, 195, 26, 35, 20, 11, 0, 11, 2, 95, 60, 49, 37, 91, 91,
-			109, 71, 0, 7, 196, 52, 84, 226, 48, 11, 41, 68, 52, 17, 193, 76, 65, 108, 81, 108, 91, 23, 107, 118, 65, 113, 52, 91, 113, 49,
-			55, 109, 47, 0, 11, 81, 104, 197, 145, 109, 195, 169, 114, 115, 195, 169, 107, 108, 101, 116, 32, 7, 196, 52, 17, 193, 76, 11, 0, 12,
-			201, 65, 35, 199, 72, 19, 79, 44, 21, 0, 11, 52, 73, 77, 160, 78, 44, 50, 103, 44, 21, 0, 89, 108, 50, 49, 119, 37, 115, 49,
-			108, 47, 15, 108, 55, 49, 108, 55, 65, 108, 88, 88, 108, 50, 108, 49, 0, 11, 81, 97, 108, 107, 97, 108, 109, 97, 122, 122, 97, 110,
-			97, 107, 32, 8, 197, 44, 21, 137, 13, 48, 11, 9, 198, 80, 84, 150, 21, 165, 133, 11, 8, 197, 72, 84, 43, 49, 64, 11, 0, 11,
-			200, 81, 196, 135, 100, 19, 14, 4, 176, 11, 9, 198, 10, 162, 148, 5, 66, 129, 11, 13, 138, 116, 101, 109, 101, 116, 197, 145, 98, 101,
-			110, 11, 6, 195, 4, 64, 84, 11, 6, 195, 64, 84, 148, 11, 6, 195, 76, 244, 148, 11, 13, 4, 95, 49, 113, 120, 109, 55, 91, 109,
-			57, 109, 0, 0, 29, 71, 32, 21, 28, 72, 246, 154, 4, 107, 108, 47, 114, 52, 39, 88, 88, 108, 23, 65, 109, 81, 0, 11, 81, 109,
-			101, 103, 32, 27, 69, 77, 169, 204, 77, 160, 89, 115, 55, 89, 23, 107, 39, 88, 88, 114, 0, 11, 81, 104, 111, 122, 122, 195, 161, 32,
-			8, 197, 77, 169, 204, 77, 160, 11, 0, 30, 6, 101, 108, 197, 145, 116, 116, 109, 55, 118, 47, 12, 23, 49, 110, 88, 110, 55, 0, 11,
-			81, 107, 195, 182, 122, 195, 182, 108, 32, 39, 6, 101, 108, 197, 145, 116, 116, 109, 55, 118, 47, 12, 23, 48, 40, 71, 55, 37, 49, 114,
-			55, 47, 108, 0, 11, 81, 112, 117, 98, 108, 105, 107, 195, 161, 108, 116, 97, 32, 9, 198, 81, 81, 10, 113, 67, 203, 11, 11, 134, 101,
-			108, 197, 145, 116, 116, 15, 17, 11, 18, 4, 195, 186, 46, 110, 116, 79, 50, 109, 84, 109, 88, 109, 47, 12, 0, 25, 0, 10, 199, 36,
-			112, 90, 60, 194, 156, 44, 11, 9, 198, 24, 148, 148, 5, 69, 129, 11, 10, 199, 44, 20, 8, 5, 66, 156, 44, 11, 13, 138, 114, 101,
-			110, 100, 197, 145, 114, 110, 101, 107, 11, 0, 14, 139, 107, 101, 114, 101, 115, 107, 101, 100, 197, 145, 107, 11, 13, 202, 81, 196, 147, 4,
-			64, 76, 60, 208, 129, 56, 11, 35, 70, 20, 208, 133, 72, 82, 192, 109, 65, 71, 109, 52, 109, 49, 23, 89, 114, 65, 114, 52, 108, 0,
-			11, 81, 115, 122, 195, 161, 109, 195, 161, 114, 97, 32, 7, 196, 172, 202, 206, 44, 11, 0, 18, 143, 115, 195, 188, 108, 108, 121, 101, 115,
-			122, 116, 197, 145, 98, 101, 110, 11, 38, 69, 44, 86, 133, 48, 144, 49, 109, 88, 109, 55, 37, 23, 108, 6, 23, 88, 109, 50, 113, 49,
-			109, 47, 0, 11, 82, 97, 32, 122, 101, 110, 195, 169, 107, 101, 116, 32, 9, 134, 100, 195, 182, 102, 197, 145, 11, 12, 201, 65, 34, 79,
-			72, 149, 28, 77, 48, 76, 11, 0, 40, 7, 110, 121, 101, 108, 118, 197, 177, 67, 109, 55, 84, 117, 23, 37, 91, 65, 109, 52, 47, 109,
-			47, 118, 49, 0, 11, 81, 105, 115, 109, 101, 114, 116, 101, 116, 197, 145, 107, 32, 12, 201, 24, 241, 204, 4, 194, 207, 104, 243, 64, 11,
-			11, 200, 32, 83, 25, 77, 169, 78, 136, 224, 11, 6, 195, 157, 39, 20, 11, 6, 195, 113, 39, 20, 11, 9, 198, 48, 85, 143, 56, 226,
-			64, 11, 13, 138, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 17, 0, 8, 197, 72, 82, 140, 36, 176, 11, 12, 201, 77, 170, 22, 21,
-			69, 19, 136, 113, 75, 11, 65, 73, 169, 67, 85, 80, 21, 39, 8, 19, 128, 116, 47, 65, 40, 47, 108, 47, 115, 71, 108, 50, 23, 37,
-			91, 23, 108, 89, 47, 23, 47, 108, 50, 114, 76, 39, 57, 57, 57, 114, 49, 0, 11, 83, 105, 115, 32, 97, 122, 116, 32, 116, 97, 110,
-			195, 161, 99, 115, 111, 108, 106, 195, 161, 107, 32, 12, 201, 49, 197, 15, 28, 21, 39, 8, 19, 128, 11, 8, 197, 81, 81, 10, 84, 176,
-			11, 9, 198, 64, 192, 84, 24, 244, 141, 11, 6, 195, 172, 118, 64, 11, 0, 8, 197, 45, 105, 212, 113, 64, 11, 8, 197, 49, 195, 153,
-			113, 64, 11, 8, 197, 17, 39, 22, 113, 64, 11, 10, 199, 52, 81, 206, 137, 166, 171, 44, 11, 9, 198, 137, 9, 84, 137, 53, 0, 11,
-			0, 33, 4, 95, 226, 128, 163, 107, 114, 52, 39, 65, 89, 110, 81, 108, 55, 108, 49, 116, 83, 109, 55, 91, 39, 52, 39, 55, 114, 91,
-			57, 109, 55, 0, 9, 198, 21, 49, 84, 8, 83, 128, 11, 9, 198, 80, 83, 5, 24, 243, 128, 11, 8, 197, 80, 20, 148, 60, 208, 11,
-			9, 134, 116, 197, 177, 110, 197, 145, 11, 8, 197, 32, 149, 20, 20, 208, 11, 0, 15, 4, 95, 226, 128, 162, 55, 37, 91, 47, 108, 57,
-			109, 55, 0, 9, 198, 80, 84, 212, 90, 36, 128, 11, 8, 197, 81, 39, 7, 113, 32, 11, 7, 196, 26, 35, 153, 80, 11, 10, 135, 104,
-			195, 169, 116, 102, 197, 145, 15, 0, 10, 199, 168, 164, 129, 149, 39, 19, 4, 11, 0, 20, 67, 136, 197, 5, 113, 55, 47, 109, 23, 65,
-			109, 81, 0, 11, 81, 109, 101, 103, 32, 10, 199, 58, 133, 133, 44, 81, 34, 76, 11, 9, 198, 28, 243, 132, 60, 195, 196, 11, 7, 196,
-			53, 83, 139, 4, 11, 7, 132, 100, 197, 145, 108, 11, 0, 11, 136, 115, 122, 197, 177, 114, 197, 145, 107, 11, 9, 198, 53, 85, 1, 80,
-			224, 75, 11, 0, 19, 4, 95, 226, 128, 166, 48, 39, 50, 47, 48, 39, 50, 47, 48, 39, 50, 47, 0, 9, 198, 82, 35, 92, 74, 115,
-			0, 11, 8, 197, 49, 197, 20, 112, 224, 11, 0, 19, 67, 85, 48, 128, 195, 186, 101, 115, 98, 195, 169, 116, 0, 44, 29, 81, 116, 32,
-			19, 67, 85, 48, 128, 195, 186, 101, 115, 98, 195, 169, 110, 0, 44, 29, 81, 110, 32, 20, 67, 85, 48, 128, 195, 186, 101, 115, 98, 195,
-			169, 110, 0, 44, 29, 42, 81, 110, 32, 9, 198, 32, 83, 25, 21, 69, 5, 11, 6, 195, 16, 80, 192, 15, 0, 16, 141, 101, 114, 101,
-			100, 109, 195, 169, 110, 121, 101, 122, 197, 145, 11, 11, 200, 89, 195, 12, 4, 195, 137, 84, 176, 11, 11, 200, 46, 134, 144, 60, 229, 10,
-			113, 64, 11, 11, 200, 46, 35, 153, 77, 161, 82, 149, 64, 11, 7, 196, 80, 81, 217, 20, 11, 15, 204, 52, 81, 211, 105, 195, 76, 112,
-			197, 1, 80, 226, 64, 11, 8, 197, 14, 33, 226, 73, 64, 11, 7, 196, 52, 81, 217, 20, 11, 7, 196, 149, 35, 156, 44, 11, 7, 196,
-			149, 34, 156, 44, 11, 7, 132, 98, 197, 145, 108, 72, 0, 15, 4, 95, 226, 128, 155, 37, 72, 113, 88, 118, 57, 109, 55, 0, 9, 198,
-			46, 36, 132, 137, 49, 73, 11, 0, 15, 4, 95, 226, 128, 154, 37, 72, 113, 88, 118, 57, 109, 55, 0, 9, 198, 64, 243, 148, 40, 18,
-			78, 11, 12, 201, 80, 83, 5, 66, 179, 34, 76, 82, 192, 11, 6, 195, 24, 154, 128, 11, 0, 25, 4, 95, 226, 128, 153, 57, 39, 71,
-			12, 39, 55, 72, 108, 55, 37, 37, 72, 113, 88, 118, 57, 109, 55, 0, 9, 198, 56, 17, 217, 44, 244, 170, 11, 13, 138, 118, 195, 169,
-			103, 122, 197, 145, 100, 105, 107, 11, 10, 199, 28, 243, 132, 60, 197, 28, 44, 11, 6, 195, 36, 65, 64, 11, 13, 202, 80, 84, 136, 21,
-			52, 226, 30, 178, 197, 80, 11, 9, 198, 20, 195, 79, 56, 69, 1, 11, 9, 198, 24, 148, 148, 5, 69, 1, 11, 6, 195, 46, 35, 64,
-			11, 6, 195, 36, 65, 64, 11, 0, 24, 4, 95, 226, 128, 152, 71, 108, 55, 39, 55, 72, 108, 55, 37, 37, 72, 113, 88, 118, 57, 109,
-			55, 0, 12, 201, 52, 81, 194, 149, 162, 1, 82, 112, 78, 11, 10, 199, 49, 197, 8, 5, 73, 193, 44, 11, 11, 136, 114, 101, 110, 100,
-			197, 145, 114, 116, 11, 7, 196, 56, 82, 197, 52, 11, 0, 15, 4, 95, 226, 128, 159, 37, 72, 113, 88, 118, 57, 109, 55, 0, 11, 200,
-			46, 36, 5, 77, 56, 135, 20, 176, 11, 9, 198, 46, 36, 132, 137, 49, 77, 11, 0, 15, 4, 95, 226, 128, 158, 37, 72, 113, 88, 118,
-			57, 109, 55, 0, 12, 201, 77, 170, 22, 21, 68, 226, 28, 82, 192, 11, 12, 201, 80, 83, 5, 66, 85, 34, 77, 49, 76, 11, 9, 198,
-			52, 243, 132, 80, 19, 64, 11, 0, 15, 4, 95, 226, 128, 157, 37, 72, 113, 88, 118, 57, 109, 55, 0, 19, 2, 95, 91, 67, 6, 37,
-			47, 115, 89, 110, 81, 55, 109, 47, 109, 91, 0, 27, 0, 15, 4, 95, 226, 128, 156, 37, 72, 113, 88, 118, 57, 109, 55, 0, 13, 202,
-			32, 19, 135, 78, 163, 25, 61, 165, 28, 44, 11, 15, 140, 114, 101, 110, 100, 115, 122, 101, 114, 114, 197, 145, 108, 11, 11, 5, 95, 49,
-			77, 49, 101, 109, 88, 52, 0, 0, 18, 4, 95, 226, 128, 147, 81, 39, 50, 72, 39, 55, 108, 47, 57, 109, 55, 0, 11, 200, 89, 195,
-			12, 4, 194, 207, 106, 112, 11, 0, 14, 203, 65, 35, 199, 72, 19, 74, 4, 146, 203, 4, 192, 11, 8, 133, 115, 122, 197, 177, 107, 11,
-			17, 66, 88, 144, 107, 108, 47, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 14, 2, 95, 95, 108, 55, 114, 107, 116, 88, 114, 91,
-			0, 27, 18, 143, 116, 101, 108, 101, 112, 104, 101, 108, 121, 195, 169, 114, 197, 145, 108, 11, 30, 67, 76, 242, 192, 91, 39, 49, 23, 47,
-			111, 52, 109, 55, 65, 109, 47, 0, 11, 81, 116, 195, 188, 114, 101, 108, 109, 101, 116, 32, 6, 195, 77, 169, 78, 11, 6, 195, 76, 242,
-			192, 11, 0, 34, 67, 80, 85, 20, 47, 109, 47, 12, 23, 108, 88, 10, 6, 15, 111, 79, 71, 109, 50, 0, 11, 82, 97, 122, 32, 195,
-			188, 103, 121, 98, 101, 110, 32, 47, 67, 88, 85, 20, 84, 109, 47, 12, 23, 108, 23, 47, 114, 34, 79, 108, 55, 114, 91, 39, 49, 71,
-			108, 50, 0, 11, 82, 97, 32, 116, 195, 161, 114, 103, 121, 97, 108, 195, 161, 115, 111, 107, 98, 97, 110, 32, 11, 200, 80, 84, 218, 80,
-			83, 43, 56, 176, 11, 6, 195, 82, 37, 133, 11, 8, 197, 80, 85, 20, 136, 176, 11, 8, 197, 32, 149, 20, 136, 176, 11, 6, 195, 88,
-			85, 20, 11, 6, 195, 80, 85, 20, 11, 0, 19, 2, 95, 93, 88, 6, 114, 52, 115, 89, 110, 81, 55, 109, 47, 109, 91, 0, 27, 7,
-			196, 32, 85, 5, 80, 11, 32, 68, 32, 85, 5, 80, 107, 109, 47, 109, 47, 23, 107, 108, 89, 50, 114, 55, 47, 0, 11, 81, 104, 97,
-			115, 122, 110, 195, 161, 108, 116, 32, 20, 145, 108, 101, 104, 101, 116, 197, 145, 115, 195, 169, 103, 101, 105, 114, 197, 145, 108, 11, 7, 196,
-			24, 241, 193, 80, 11, 7, 196, 20, 197, 133, 80, 11, 7, 196, 33, 197, 28, 56, 11, 7, 196, 20, 197, 133, 80, 11, 6, 195, 78, 179,
-			20, 11, 18, 66, 90, 128, 84, 6, 109, 90, 72, 15, 10, 6, 110, 89, 122, 109, 0, 25, 0, 14, 203, 8, 87, 12, 50, 85, 28, 76,
-			242, 206, 112, 192, 11, 9, 198, 20, 195, 28, 81, 196, 212, 11, 9, 198, 20, 194, 156, 73, 196, 212, 11, 13, 7, 95, 35, 45, 195, 161,
-			114, 97, 114, 52, 108, 0, 15, 5, 95, 49, 77, 49, 111, 109, 88, 52, 109, 72, 37, 49, 0, 0, 9, 198, 21, 54, 139, 161, 161, 64,
-			11, 8, 197, 80, 19, 28, 49, 64, 11, 9, 198, 113, 71, 12, 49, 196, 212, 11, 6, 195, 56, 18, 192, 11, 0, 17, 4, 95, 226, 128,
-			148, 49, 84, 37, 52, 47, 65, 112, 50, 40, 89, 0, 34, 70, 24, 244, 132, 149, 69, 129, 83, 39, 52, 72, 112, 47, 84, 108, 23, 108,
-			6, 23, 89, 115, 47, 0, 11, 82, 97, 32, 115, 122, 195, 179, 116, 32, 16, 205, 160, 226, 207, 72, 215, 14, 101, 160, 84, 60, 179, 156,
-			48, 11, 0, 11, 3, 95, 97, 114, 6, 108, 52, 108, 71, 0, 7, 2, 95, 97, 108, 12, 0, 8, 197, 89, 196, 138, 112, 176, 11, 37,
-			70, 76, 146, 197, 74, 179, 20, 91, 37, 49, 109, 52, 111, 55, 47, 23, 49, 37, 83, 39, 81, 50, 39, 65, 0, 11, 81, 107, 105, 102,
-			111, 103, 110, 111, 109, 32, 8, 197, 34, 85, 138, 112, 176, 11, 9, 198, 61, 37, 143, 76, 224, 75, 11, 10, 199, 173, 163, 5, 80, 82,
-			194, 20, 11, 12, 201, 80, 84, 212, 172, 193, 84, 56, 82, 192, 11, 8, 133, 110, 197, 145, 116, 116, 11, 0, 10, 2, 95, 96, 47, 39,
-			65, 48, 108, 0, 26, 67, 137, 97, 83, 113, 84, 109, 91, 23, 109, 65, 71, 109, 52, 47, 0, 11, 81, 101, 109, 98, 101, 114, 116, 32,
-			24, 67, 137, 97, 83, 113, 84, 109, 91, 23, 109, 65, 71, 109, 52, 0, 11, 81, 101, 109, 98, 101, 114, 32, 27, 67, 137, 97, 83, 113,
-			84, 109, 91, 23, 49, 37, 91, 83, 37, 116, 0, 11, 81, 107, 105, 115, 102, 105, 195, 186, 32, 21, 67, 137, 97, 83, 113, 84, 109, 91,
-			23, 83, 37, 116, 0, 11, 81, 102, 105, 195, 186, 32, 28, 67, 137, 97, 83, 113, 84, 109, 91, 23, 49, 37, 91, 55, 114, 67, 0, 11,
-			81, 107, 105, 115, 108, 195, 161, 110, 121, 32, 22, 67, 137, 97, 83, 113, 84, 109, 91, 23, 55, 114, 67, 0, 11, 81, 108, 195, 161, 110,
-			121, 32, 19, 67, 137, 97, 83, 113, 84, 109, 91, 23, 50, 118, 0, 11, 81, 110, 197, 145, 32, 25, 67, 137, 97, 83, 113, 84, 109, 91,
-			23, 83, 113, 52, 83, 37, 0, 11, 81, 102, 195, 169, 114, 102, 105, 32, 29, 67, 137, 97, 83, 113, 84, 109, 91, 23, 49, 37, 91, 83,
-			37, 116, 47, 0, 11, 81, 107, 105, 115, 102, 105, 195, 186, 116, 32, 23, 67, 137, 97, 83, 113, 84, 109, 91, 23, 83, 37, 116, 47, 0,
-			11, 81, 102, 105, 195, 186, 116, 32, 30, 67, 137, 97, 83, 113, 84, 109, 91, 23, 49, 37, 91, 55, 114, 67, 47, 0, 11, 81, 107, 105,
-			115, 108, 195, 161, 110, 121, 116, 32, 24, 67, 137, 97, 83, 113, 84, 109, 91, 23, 55, 114, 67, 47, 0, 11, 81, 108, 195, 161, 110, 121,
-			116, 32, 23, 67, 137, 97, 83, 113, 84, 109, 91, 23, 50, 118, 52, 109, 0, 11, 81, 110, 197, 145, 114, 101, 32, 29, 67, 137, 97, 83,
-			113, 84, 109, 91, 23, 83, 113, 52, 83, 37, 52, 108, 0, 11, 81, 102, 195, 169, 114, 102, 105, 114, 97, 32, 29, 67, 137, 97, 83, 113,
-			84, 109, 91, 23, 49, 37, 91, 83, 37, 116, 47, 0, 11, 81, 107, 105, 115, 102, 105, 195, 186, 116, 32, 27, 67, 137, 97, 83, 113, 84,
-			109, 91, 23, 49, 37, 91, 83, 37, 116, 0, 11, 81, 107, 105, 115, 102, 105, 195, 186, 32, 13, 138, 195, 182, 116, 108, 101, 116, 116, 197,
-			145, 108, 11, 34, 67, 137, 97, 83, 113, 84, 109, 91, 23, 47, 114, 65, 39, 81, 108, 47, 114, 91, 0, 11, 81, 116, 195, 161, 109, 111,
-			103, 97, 116, 195, 161, 115, 32, 30, 67, 137, 97, 83, 113, 84, 109, 91, 15, 49, 39, 52, 114, 71, 115, 55, 0, 11, 81, 107, 111, 114,
-			195, 161, 98, 195, 179, 108, 32, 29, 67, 137, 97, 83, 113, 84, 109, 91, 15, 79, 109, 52, 109, 49, 109, 47, 0, 11, 81, 103, 121, 101,
-			114, 101, 107, 101, 116, 32, 6, 195, 137, 97, 83, 11, 10, 199, 80, 20, 148, 113, 55, 18, 4, 11, 10, 199, 136, 164, 218, 4, 183, 18,
-			4, 17, 0, 34, 71, 32, 18, 148, 61, 69, 28, 44, 107, 108, 57, 47, 39, 47, 12, 114, 49, 23, 84, 113, 81, 52, 109, 0, 11, 81,
-			118, 195, 169, 103, 114, 101, 32, 46, 72, 56, 82, 34, 105, 56, 135, 8, 80, 50, 109, 107, 113, 91, 12, 113, 81, 71, 109, 10, 6, 15,
-			111, 47, 49, 110, 88, 110, 47, 12, 0, 11, 81, 195, 188, 116, 107, 195, 182, 122, 195, 182, 116, 116, 32, 11, 200, 36, 179, 206, 82, 35,
-			92, 72, 16, 11, 11, 200, 65, 35, 194, 50, 35, 92, 72, 16, 11, 12, 201, 80, 84, 171, 48, 85, 5, 44, 85, 0, 11, 10, 199, 80,
-			17, 204, 4, 194, 156, 44, 11, 12, 201, 57, 146, 76, 89, 195, 165, 81, 196, 212, 11, 9, 198, 88, 19, 1, 32, 245, 129, 11, 0, 11,
-			200, 77, 167, 13, 49, 194, 156, 72, 16, 11, 40, 8, 109, 105, 101, 108, 197, 145, 116, 116, 65, 37, 109, 55, 118, 47, 12, 23, 83, 39,
-			57, 47, 108, 47, 50, 114, 0, 11, 81, 102, 111, 108, 121, 116, 97, 116, 110, 195, 161, 32, 12, 137, 107, 195, 182, 108, 116, 197, 145, 114,
-			101, 11, 8, 197, 32, 149, 20, 172, 176, 11, 8, 197, 32, 149, 20, 172, 176, 11, 0, 6, 2, 95, 101, 109, 0, 9, 198, 88, 148, 211,
-			106, 178, 192, 11, 0, 13, 202, 24, 83, 142, 80, 20, 148, 113, 55, 18, 4, 11, 12, 201, 81, 195, 79, 28, 21, 28, 77, 48, 76, 11,
-			11, 200, 65, 33, 70, 21, 39, 12, 40, 16, 11, 10, 199, 44, 144, 162, 46, 179, 22, 20, 11, 0, 12, 201, 20, 118, 69, 105, 65, 84,
-			137, 49, 78, 11, 12, 201, 20, 118, 69, 105, 65, 84, 137, 49, 78, 11, 32, 73, 20, 118, 69, 105, 65, 84, 137, 49, 78, 109, 79, 12,
-			109, 89, 47, 109, 47, 113, 91, 109, 50, 23, 37, 91, 0, 11, 81, 105, 115, 32, 16, 205, 82, 132, 150, 136, 230, 74, 5, 96, 83, 48,
-			21, 15, 80, 11, 12, 201, 44, 145, 143, 29, 196, 207, 49, 71, 11, 11, 0, 34, 73, 112, 195, 1, 66, 85, 15, 81, 71, 11, 114, 55,
-			12, 108, 48, 112, 47, 39, 47, 12, 114, 49, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32, 56, 11, 105, 100, 197, 145, 106, 195, 161,
-			114, 195, 161, 115, 37, 72, 118, 57, 114, 52, 114, 91, 23, 55, 109, 89, 23, 108, 23, 57, 109, 55, 12, 109, 65, 88, 118, 0, 11, 83,
-			108, 101, 115, 122, 32, 97, 32, 106, 101, 108, 108, 101, 109, 122, 197, 145, 32, 9, 198, 10, 179, 148, 21, 67, 137, 11, 15, 140, 102, 101,
-			108, 195, 188, 108, 101, 116, 114, 197, 145, 108, 11, 0, 10, 199, 40, 83, 5, 57, 72, 147, 20, 11, 6, 195, 77, 168, 148, 11, 0, 10,
-			199, 17, 39, 7, 84, 199, 19, 4, 11, 17, 142, 109, 197, 177, 107, 195, 182, 100, 195, 169, 115, 114, 197, 145, 108, 11, 7, 196, 78, 163,
-			25, 80, 11, 0, 10, 199, 36, 195, 5, 82, 34, 197, 76, 11, 11, 200, 161, 52, 218, 20, 113, 75, 21, 64, 11, 34, 70, 24, 83, 28,
-			48, 199, 19, 83, 109, 55, 114, 55, 12, 114, 91, 23, 89, 109, 52, 37, 50, 47, 0, 11, 81, 115, 122, 101, 114, 105, 110, 116, 32, 11,
-			200, 81, 195, 79, 28, 21, 28, 76, 16, 11, 11, 200, 173, 161, 78, 21, 65, 75, 21, 64, 11, 11, 200, 8, 83, 153, 168, 165, 28, 76,
-			16, 11, 7, 196, 160, 227, 133, 44, 11, 0, 9, 198, 72, 83, 132, 20, 197, 0, 11, 12, 137, 102, 101, 108, 101, 108, 197, 145, 115, 101,
-			11, 10, 199, 89, 195, 1, 77, 165, 28, 76, 11, 8, 197, 160, 234, 11, 21, 64, 11, 10, 199, 81, 195, 79, 28, 21, 28, 76, 11, 11,
-			200, 20, 118, 69, 57, 37, 72, 113, 48, 17, 0, 46, 10, 104, 111, 114, 100, 101, 114, 101, 106, 197, 177, 107, 39, 52, 72, 109, 52, 109,
-			57, 117, 23, 49, 113, 52, 72, 113, 91, 71, 109, 50, 0, 11, 81, 107, 195, 169, 114, 100, 195, 169, 115, 98, 101, 110, 32, 7, 196, 89,
-			196, 143, 52, 11, 7, 196, 66, 35, 4, 4, 11, 10, 199, 8, 87, 12, 50, 85, 28, 76, 11, 7, 196, 66, 35, 4, 4, 11, 6, 195,
-			18, 131, 148, 11, 0, 12, 3, 95, 104, 101, 107, 6, 113, 71, 109, 52, 0, 9, 198, 8, 20, 156, 80, 167, 20, 11, 10, 199, 80, 84,
-			141, 20, 195, 133, 44, 11, 11, 200, 8, 84, 218, 21, 38, 162, 76, 80, 11, 9, 198, 53, 83, 139, 112, 167, 20, 11, 0, 7, 2, 95,
-			115, 109, 91, 0, 11, 200, 80, 84, 141, 136, 177, 75, 21, 64, 11, 11, 200, 161, 52, 218, 20, 170, 14, 56, 144, 11, 11, 200, 44, 81,
-			34, 49, 145, 75, 21, 64, 11, 11, 200, 40, 83, 26, 137, 49, 75, 21, 64, 11, 7, 196, 42, 115, 129, 44, 11, 10, 4, 95, 50, 48,
-			101, 107, 40, 89, 0, 0, 8, 197, 44, 244, 170, 4, 176, 11, 40, 70, 8, 80, 211, 172, 197, 0, 71, 109, 76, 111, 55, 47, 23, 113,
-			52, 47, 113, 49, 113, 50, 109, 49, 0, 11, 81, 195, 169, 114, 116, 195, 169, 107, 195, 169, 110, 101, 107, 32, 47, 12, 107, 195, 169, 114,
-			100, 197, 145, 195, 173, 118, 101, 116, 49, 113, 52, 72, 118, 112, 84, 109, 47, 23, 49, 113, 89, 112, 47, 109, 50, 37, 0, 11, 81, 107,
-			195, 169, 115, 122, 195, 173, 116, 101, 110, 105, 32, 49, 12, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116, 49, 113, 52, 72, 118,
-			112, 84, 109, 47, 23, 49, 113, 89, 112, 47, 109, 50, 109, 49, 0, 11, 81, 107, 195, 169, 115, 122, 195, 173, 116, 101, 110, 101, 107, 32,
-			9, 198, 20, 208, 133, 73, 33, 76, 11, 8, 197, 26, 35, 14, 20, 176, 11, 15, 140, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101,
-			116, 11, 8, 197, 74, 36, 218, 20, 176, 11, 7, 196, 58, 37, 133, 56, 11, 8, 197, 112, 195, 14, 4, 176, 11, 0, 11, 200, 45, 83,
-			20, 169, 39, 10, 113, 64, 11, 8, 197, 50, 36, 10, 20, 224, 11, 11, 4, 95, 104, 97, 99, 48, 37, 48, 108, 0, 0, 8, 197, 8,
-			83, 142, 20, 64, 11, 21, 66, 97, 96, 47, 37, 88, 109, 50, 110, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 11, 200, 80,
-			20, 148, 32, 21, 14, 4, 176, 11, 12, 201, 32, 145, 193, 57, 148, 218, 112, 192, 64, 11, 30, 67, 25, 84, 129, 83, 40, 52, 108, 23,
-			72, 39, 55, 81, 39, 49, 108, 47, 0, 11, 81, 100, 111, 108, 103, 111, 107, 97, 116, 32, 6, 195, 25, 84, 129, 11, 12, 201, 4, 67,
-			205, 112, 230, 79, 105, 64, 64, 11, 6, 195, 21, 36, 133, 11, 0, 9, 198, 46, 36, 132, 21, 165, 5, 11, 11, 200, 32, 20, 218, 57,
-			195, 10, 84, 176, 11, 11, 200, 32, 83, 25, 104, 85, 2, 20, 224, 11, 11, 200, 36, 225, 37, 80, 245, 20, 4, 176, 11, 0, 9, 198,
-			34, 37, 22, 136, 120, 142, 11, 8, 197, 157, 39, 11, 36, 112, 11, 8, 197, 80, 21, 129, 49, 144, 11, 0, 8, 197, 32, 20, 131, 60,
-			192, 11, 11, 200, 32, 21, 1, 48, 243, 77, 4, 192, 11, 9, 198, 77, 170, 203, 78, 33, 192, 11, 12, 201, 77, 160, 75, 20, 208, 133,
-			72, 82, 64, 11, 9, 198, 77, 170, 203, 78, 33, 192, 11, 0, 18, 2, 95, 123, 49, 6, 109, 88, 72, 118, 49, 108, 48, 76, 39, 91,
-			0, 27, 35, 67, 5, 36, 129, 108, 52, 52, 108, 10, 6, 15, 47, 110, 52, 109, 49, 109, 72, 50, 37, 0, 11, 81, 116, 195, 182, 114,
-			101, 107, 101, 100, 110, 105, 32, 30, 67, 5, 36, 129, 108, 52, 52, 108, 10, 6, 15, 49, 113, 52, 57, 111, 49, 0, 11, 81, 107, 195,
-			169, 114, 106, 195, 188, 107, 32, 30, 67, 5, 36, 129, 108, 52, 52, 108, 23, 57, 40, 47, 39, 47, 12, 108, 65, 0, 11, 81, 106, 117,
-			116, 111, 116, 116, 97, 109, 32, 37, 67, 5, 36, 129, 108, 52, 52, 108, 23, 84, 39, 50, 108, 47, 49, 39, 88, 115, 108, 50, 0, 11,
-			81, 118, 111, 110, 97, 116, 107, 111, 122, 195, 179, 97, 110, 32, 18, 67, 5, 36, 129, 108, 52, 52, 108, 23, 37, 91, 0, 11, 81, 105,
-			115, 32, 23, 67, 61, 36, 129, 39, 52, 52, 108, 10, 6, 15, 108, 55, 114, 0, 11, 81, 97, 108, 195, 161, 32, 45, 67, 5, 36, 129,
-			108, 52, 52, 108, 23, 49, 109, 55, 12, 23, 39, 72, 108, 83, 37, 79, 109, 55, 50, 37, 0, 11, 82, 107, 101, 108, 108, 32, 111, 100,
-			97, 102, 105, 103, 121, 101, 108, 110, 105, 32, 35, 68, 88, 147, 28, 28, 84, 37, 55, 114, 81, 15, 72, 37, 76, 118, 91, 113, 81, 109,
-			0, 11, 81, 100, 105, 99, 115, 197, 145, 115, 195, 169, 103, 101, 32, 6, 195, 5, 36, 129, 11, 0, 9, 198, 90, 33, 218, 21, 69, 0,
-			11, 9, 198, 90, 33, 218, 21, 69, 0, 11, 9, 198, 32, 19, 28, 49, 197, 0, 11, 0, 20, 4, 95, 226, 128, 179, 72, 40, 48, 55,
-			108, 108, 48, 39, 89, 47, 52, 115, 83, 0, 10, 199, 20, 193, 40, 57, 65, 78, 36, 11, 9, 198, 44, 86, 133, 50, 36, 212, 11, 0,
-			15, 4, 95, 226, 128, 178, 108, 48, 39, 89, 47, 52, 115, 83, 0, 15, 204, 44, 243, 134, 36, 117, 82, 112, 50, 103, 41, 197, 0, 11,
-			10, 199, 46, 36, 218, 149, 65, 78, 36, 11, 0, 10, 199, 46, 132, 171, 48, 216, 142, 100, 11, 36, 73, 8, 243, 153, 60, 201, 84, 4,
-			226, 64, 71, 39, 67, 39, 55, 112, 47, 108, 50, 37, 23, 52, 108, 57, 47, 108, 0, 11, 81, 114, 97, 106, 116, 97, 32, 9, 198, 112,
-			195, 37, 81, 83, 139, 11, 12, 201, 8, 150, 143, 57, 153, 84, 4, 226, 64, 11, 12, 201, 8, 150, 148, 61, 57, 84, 4, 226, 64, 11,
-			15, 4, 95, 50, 48, 113, 107, 40, 89, 108, 72, 37, 49, 108, 0, 0, 14, 4, 95, 226, 128, 176, 109, 88, 52, 109, 55, 113, 49, 0,
-			9, 198, 88, 86, 162, 74, 37, 0, 11, 6, 195, 88, 149, 20, 11, 0, 16, 2, 95, 125, 84, 6, 113, 81, 49, 108, 48, 76, 39, 91,
-			0, 27, 9, 198, 41, 85, 15, 81, 64, 75, 11, 7, 196, 53, 85, 1, 80, 11, 0, 20, 2, 95, 124, 83, 111, 81, 12, 118, 55, 109,
-			81, 109, 91, 84, 39, 50, 108, 55, 0, 8, 197, 169, 54, 148, 4, 208, 11, 9, 198, 44, 244, 156, 8, 19, 128, 11, 10, 199, 16, 243,
-			7, 61, 163, 129, 44, 11, 10, 199, 80, 20, 148, 4, 195, 65, 44, 11, 6, 195, 45, 196, 128, 11, 6, 195, 41, 196, 128, 11, 7, 195,
-			9, 196, 128, 72, 8, 0, 27, 69, 20, 195, 106, 49, 64, 109, 55, 65, 116, 55, 47, 23, 113, 84, 109, 49, 0, 11, 81, 195, 169, 118,
-			101, 107, 32, 25, 69, 82, 35, 92, 40, 16, 47, 113, 65, 114, 57, 108, 23, 55, 109, 89, 0, 11, 81, 108, 101, 115, 122, 32, 8, 197,
-			82, 35, 92, 40, 16, 11, 0, 38, 68, 74, 33, 197, 56, 52, 113, 81, 109, 50, 23, 49, 37, 47, 108, 55, 114, 55, 47, 114, 49, 0,
-			11, 81, 107, 105, 116, 97, 108, 195, 161, 108, 116, 195, 161, 107, 32, 9, 198, 112, 195, 37, 80, 167, 11, 11, 0, 8, 197, 80, 19, 132,
-			148, 160, 11, 7, 132, 102, 197, 145, 115, 11, 7, 196, 77, 197, 130, 4, 11, 12, 201, 80, 20, 148, 4, 195, 92, 88, 19, 0, 11, 10,
-			199, 20, 197, 5, 72, 161, 68, 80, 11, 0, 7, 66, 105, 48, 90, 113, 0, 9, 198, 4, 167, 14, 48, 165, 75, 11, 7, 132, 98, 197,
-			145, 114, 11, 0, 12, 201, 77, 160, 66, 112, 198, 79, 105, 167, 11, 11, 11, 200, 36, 225, 21, 49, 196, 220, 72, 16, 11, 14, 139, 102,
-			101, 106, 108, 197, 145, 100, 195, 182, 116, 116, 11, 14, 139, 107, 101, 122, 100, 197, 145, 100, 195, 182, 116, 116, 11, 0, 31, 67, 4, 131,
-			204, 108, 107, 39, 55, 23, 84, 108, 50, 23, 48, 113, 50, 88, 0, 11, 82, 118, 97, 110, 32, 112, 195, 169, 110, 122, 32, 10, 199, 32,
-			83, 25, 104, 85, 2, 20, 11, 8, 197, 4, 176, 82, 77, 160, 11, 0, 10, 199, 76, 183, 12, 113, 165, 28, 44, 11, 16, 141, 101, 108,
-			107, 101, 122, 100, 197, 145, 100, 195, 182, 116, 116, 11, 14, 4, 95, 50, 48, 111, 107, 40, 89, 108, 72, 37, 49, 0, 0, 9, 198, 77,
-			161, 76, 48, 83, 64, 11, 17, 142, 109, 101, 103, 107, 101, 122, 100, 197, 145, 100, 195, 182, 116, 116, 11, 11, 200, 8, 150, 129, 48, 243,
-			77, 4, 192, 11, 17, 198, 72, 244, 211, 105, 83, 0, 11, 81, 102, 117, 116, 111, 116, 116, 32, 11, 200, 5, 52, 218, 60, 227, 153, 4,
-			192, 11, 17, 142, 195, 169, 114, 100, 101, 107, 108, 197, 145, 100, 195, 182, 116, 116, 11, 12, 67, 16, 245, 206, 72, 39, 58, 50, 0, 42,
-			42, 0, 8, 197, 80, 19, 153, 113, 64, 11, 9, 198, 24, 244, 132, 84, 195, 137, 11, 12, 201, 81, 196, 135, 100, 19, 28, 76, 243, 128,
-			11, 14, 139, 112, 101, 116, 197, 145, 102, 105, 114, 197, 145, 108, 11, 9, 198, 24, 83, 20, 20, 227, 137, 11, 9, 198, 32, 83, 25, 21,
-			163, 137, 11, 9, 198, 24, 244, 132, 84, 195, 137, 11, 9, 198, 32, 83, 25, 21, 163, 137, 11, 0, 53, 73, 80, 20, 148, 4, 195, 65,
-			44, 176, 76, 47, 108, 52, 47, 108, 55, 65, 108, 49, 12, 108, 55, 10, 6, 15, 49, 108, 48, 76, 39, 55, 108, 47, 71, 108, 50, 0,
-			11, 81, 107, 97, 112, 99, 115, 111, 108, 97, 116, 98, 97, 110, 32, 27, 4, 102, 197, 145, 116, 83, 118, 47, 23, 84, 114, 52, 40, 50,
-			49, 0, 11, 81, 118, 195, 161, 114, 117, 110, 107, 32, 36, 71, 58, 133, 133, 50, 36, 197, 76, 50, 110, 84, 109, 55, 113, 91, 109, 91,
-			23, 47, 109, 89, 47, 109, 47, 0, 11, 81, 116, 101, 115, 122, 116, 101, 116, 32, 9, 198, 8, 150, 148, 61, 48, 84, 11, 15, 140, 116,
-			195, 169, 116, 101, 108, 195, 169, 114, 197, 145, 108, 11, 7, 132, 102, 197, 145, 116, 11, 0, 16, 141, 116, 195, 182, 114, 118, 195, 169, 110,
-			121, 114, 197, 145, 108, 11, 9, 198, 36, 65, 71, 21, 57, 84, 11, 9, 198, 77, 167, 14, 18, 34, 193, 11, 0, 11, 200, 40, 241, 211,
-			104, 16, 156, 49, 144, 11, 30, 69, 4, 192, 80, 84, 192, 108, 55, 108, 48, 40, 55, 23, 84, 109, 50, 12, 37, 109, 0, 11, 81, 118,
-			101, 110, 110, 105, 101, 32, 8, 197, 4, 192, 80, 84, 192, 11, 0, 11, 200, 20, 211, 34, 44, 86, 148, 21, 64, 11, 10, 199, 72, 81,
-			201, 77, 165, 5, 72, 11, 9, 198, 28, 243, 132, 60, 195, 137, 11, 0, 33, 68, 76, 244, 156, 56, 91, 39, 52, 114, 50, 23, 49, 37,
-			72, 109, 52, 111, 55, 47, 0, 11, 81, 107, 105, 100, 101, 114, 195, 188, 108, 116, 32, 19, 144, 107, 195, 182, 122, 108, 101, 107, 101, 100,
-			195, 169, 115, 98, 197, 145, 108, 11, 9, 198, 46, 131, 153, 89, 71, 18, 11, 7, 196, 76, 244, 156, 56, 11, 0, 7, 196, 29, 196, 132,
-			4, 11, 36, 73, 44, 144, 68, 113, 51, 203, 10, 115, 0, 49, 37, 108, 72, 114, 91, 39, 49, 71, 115, 55, 23, 108, 107, 39, 88, 0,
-			11, 81, 97, 104, 104, 111, 122, 32, 13, 202, 77, 161, 77, 136, 198, 76, 22, 84, 156, 76, 11, 7, 196, 9, 196, 139, 36, 11, 0, 10,
-			199, 33, 197, 20, 137, 37, 28, 72, 11, 9, 198, 80, 18, 193, 72, 160, 64, 11, 9, 198, 4, 212, 21, 48, 192, 64, 11, 10, 199, 88,
-			20, 137, 112, 228, 211, 112, 11, 9, 198, 88, 149, 1, 80, 160, 64, 11, 9, 198, 53, 85, 1, 80, 160, 64, 11, 0, 10, 199, 21, 49,
-			84, 20, 176, 133, 56, 11, 7, 196, 136, 161, 162, 48, 17, 6, 195, 53, 64, 64, 13, 0, 7, 196, 85, 64, 220, 56, 11, 8, 197, 89,
-			195, 20, 4, 176, 11, 7, 196, 90, 33, 197, 104, 11, 7, 196, 32, 246, 148, 4, 11, 0, 14, 203, 52, 81, 206, 100, 147, 22, 112, 229,
-			76, 113, 48, 11, 9, 198, 4, 192, 80, 77, 162, 75, 11, 10, 199, 77, 170, 204, 21, 69, 5, 52, 11, 9, 198, 24, 83, 20, 137, 65,
-			76, 11, 9, 198, 90, 35, 9, 80, 82, 192, 11, 0, 9, 198, 137, 97, 75, 8, 83, 128, 11, 9, 198, 52, 83, 66, 73, 195, 128, 11,
-			45, 68, 20, 118, 73, 44, 109, 79, 12, 37, 49, 10, 6, 15, 47, 109, 55, 109, 48, 107, 109, 57, 113, 52, 118, 55, 0, 11, 81, 116,
-			101, 108, 101, 112, 104, 101, 108, 121, 195, 169, 114, 197, 145, 108, 32, 18, 207, 76, 18, 148, 157, 71, 10, 136, 179, 218, 80, 21, 39, 41,
-			195, 128, 11, 33, 68, 20, 118, 73, 44, 109, 79, 12, 37, 49, 23, 84, 109, 88, 109, 47, 118, 57, 109, 0, 11, 81, 118, 101, 122, 101,
-			116, 197, 145, 106, 101, 32, 40, 68, 20, 118, 73, 44, 109, 79, 12, 37, 49, 23, 49, 113, 48, 84, 37, 91, 109, 55, 118, 57, 109, 0,
-			11, 81, 107, 195, 169, 112, 118, 105, 115, 101, 108, 197, 145, 106, 101, 32, 9, 198, 64, 243, 148, 41, 195, 128, 11, 9, 198, 44, 20, 3,
-			77, 195, 128, 11, 7, 196, 20, 118, 73, 44, 11, 17, 66, 97, 128, 107, 116, 89, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 10,
-			199, 74, 36, 218, 48, 85, 5, 44, 11, 11, 200, 8, 85, 133, 104, 85, 20, 20, 176, 11, 10, 199, 80, 84, 133, 53, 68, 197, 56, 11,
-			9, 198, 46, 134, 168, 49, 65, 75, 11, 0, 8, 197, 161, 52, 218, 20, 112, 11, 40, 72, 60, 197, 129, 76, 21, 12, 4, 224, 39, 55,
-			84, 108, 91, 108, 47, 55, 108, 50, 23, 55, 109, 84, 113, 55, 52, 109, 0, 11, 81, 108, 101, 118, 195, 169, 108, 114, 101, 32, 11, 200,
-			36, 229, 5, 72, 225, 84, 20, 224, 11, 11, 200, 37, 51, 69, 72, 85, 12, 20, 224, 11, 8, 197, 50, 35, 153, 20, 112, 11, 9, 198,
-			65, 196, 148, 41, 197, 0, 11, 10, 199, 50, 36, 34, 76, 184, 142, 80, 11, 22, 67, 97, 134, 0, 107, 108, 52, 65, 37, 50, 119, 12,
-			35, 55, 0, 44, 42, 81, 97, 108, 32, 0, 12, 201, 32, 20, 218, 57, 195, 1, 81, 64, 76, 11, 12, 201, 24, 83, 11, 21, 42, 204,
-			80, 82, 192, 11, 5, 194, 112, 224, 72, 0, 14, 203, 80, 20, 1, 77, 165, 1, 48, 21, 20, 4, 192, 11, 7, 196, 56, 82, 201, 44,
-			11, 13, 4, 95, 35, 51, 50, 89, 6, 115, 49, 110, 88, 0, 0, 12, 201, 32, 149, 129, 80, 179, 218, 61, 69, 0, 11, 9, 198, 4,
-			192, 75, 84, 195, 137, 11, 0, 9, 198, 88, 147, 28, 29, 197, 0, 11, 8, 197, 57, 147, 205, 60, 224, 11, 8, 197, 64, 144, 67, 60,
-			224, 11, 13, 7, 95, 35, 45, 195, 169, 105, 103, 113, 37, 81, 0, 0, 6, 195, 74, 36, 192, 11, 6, 195, 46, 36, 192, 11, 0, 25,
-			69, 24, 244, 132, 84, 192, 83, 39, 34, 72, 40, 55, 23, 109, 55, 118, 0, 11, 81, 101, 108, 197, 145, 32, 9, 134, 116, 197, 145, 108,
-			101, 100, 11, 8, 197, 24, 244, 132, 84, 192, 11, 0, 10, 199, 24, 150, 133, 80, 226, 107, 44, 11, 23, 67, 97, 98, 64, 47, 37, 88,
-			109, 50, 107, 108, 47, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 26, 67, 97, 98, 64, 47, 37, 88, 109, 50, 107, 108, 47, 39, 72,
-			37, 49, 37, 81, 0, 44, 42, 81, 105, 103, 32, 0, 32, 67, 4, 210, 84, 108, 65, 37, 47, 23, 107, 108, 89, 50, 114, 55, 39, 49,
-			0, 11, 81, 104, 97, 115, 122, 110, 195, 161, 108, 111, 107, 32, 26, 67, 96, 150, 0, 47, 37, 88, 109, 50, 49, 37, 55, 109, 50, 119,
-			12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 12, 201, 46, 83, 156, 48, 21, 28, 88, 19, 0, 11, 8, 197, 36, 226, 220, 8, 32,
-			11, 0, 24, 67, 53, 196, 128, 65, 114, 52, 10, 6, 15, 108, 48, 52, 115, 0, 11, 81, 97, 112, 114, 195, 179, 32, 31, 67, 53, 196,
-			128, 65, 114, 52, 10, 6, 15, 109, 55, 113, 52, 47, 113, 49, 0, 11, 81, 101, 108, 195, 169, 114, 116, 195, 169, 107, 32, 49, 67, 53,
-			196, 128, 65, 114, 52, 10, 6, 15, 49, 109, 84, 113, 91, 71, 113, 10, 6, 15, 107, 108, 55, 12, 108, 50, 37, 0, 11, 82, 107, 101,
-			118, 195, 169, 115, 98, 195, 169, 32, 104, 97, 108, 108, 97, 110, 105, 32, 34, 67, 53, 196, 128, 65, 114, 52, 23, 55, 109, 107, 109, 76,
-			12, 113, 81, 109, 91, 0, 11, 81, 108, 101, 104, 101, 116, 115, 195, 169, 103, 101, 115, 32, 32, 67, 53, 196, 128, 65, 114, 52, 23, 65,
-			109, 81, 89, 39, 49, 39, 47, 12, 0, 11, 81, 109, 101, 103, 115, 122, 111, 107, 111, 116, 116, 32, 9, 198, 82, 35, 92, 88, 19, 0,
-			11, 32, 67, 53, 196, 128, 65, 114, 52, 23, 49, 39, 52, 114, 71, 52, 115, 55, 0, 11, 81, 107, 111, 114, 195, 161, 98, 98, 114, 195,
-			179, 108, 32, 23, 68, 76, 147, 131, 76, 91, 37, 50, 76, 15, 81, 39, 50, 72, 0, 11, 81, 103, 111, 110, 100, 32, 37, 68, 76, 147,
-			131, 76, 91, 37, 50, 76, 23, 109, 79, 12, 109, 47, 113, 52, 47, 113, 91, 0, 11, 81, 101, 103, 121, 101, 116, 195, 169, 114, 116, 195,
-			169, 115, 32, 23, 67, 53, 196, 128, 65, 114, 52, 15, 91, 39, 49, 108, 47, 0, 11, 81, 115, 111, 107, 97, 116, 32, 9, 198, 13, 58,
-			11, 44, 83, 128, 11, 9, 198, 60, 192, 211, 156, 32, 128, 11, 7, 196, 76, 147, 131, 76, 11, 6, 195, 89, 196, 128, 11, 6, 195, 53,
-			196, 128, 11, 6, 195, 113, 4, 128, 15, 0, 7, 196, 136, 195, 133, 44, 11, 12, 201, 32, 20, 218, 57, 195, 39, 44, 21, 0, 11, 10,
-			199, 57, 149, 71, 60, 69, 1, 56, 11, 7, 196, 80, 18, 193, 72, 11, 9, 198, 77, 73, 76, 85, 58, 128, 11, 11, 200, 28, 22, 132,
-			5, 55, 7, 61, 64, 11, 8, 195, 53, 66, 64, 13, 42, 42, 14, 68, 29, 148, 197, 88, 79, 109, 91, 109, 84, 0, 42, 42, 0, 25,
-			69, 26, 131, 40, 81, 64, 83, 110, 55, 110, 47, 12, 23, 114, 55, 12, 0, 11, 81, 195, 161, 108, 108, 32, 52, 74, 46, 133, 5, 48,
-			86, 133, 81, 68, 226, 28, 49, 110, 47, 109, 55, 109, 88, 109, 76, 12, 113, 81, 23, 71, 37, 89, 47, 39, 91, 112, 47, 108, 50, 37,
-			0, 11, 81, 98, 105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 105, 32, 22, 69, 26, 131, 40, 81, 64, 83, 110, 55, 110, 47, 12, 23,
-			37, 91, 0, 11, 81, 105, 115, 32, 14, 203, 72, 83, 132, 20, 195, 5, 56, 84, 211, 136, 112, 11, 7, 196, 40, 241, 220, 56, 11, 7,
-			196, 14, 83, 69, 56, 11, 9, 197, 46, 134, 168, 81, 64, 72, 17, 8, 197, 26, 131, 40, 81, 64, 11, 8, 197, 54, 129, 232, 81, 64,
-			11, 0, 26, 71, 77, 167, 13, 60, 197, 1, 52, 89, 114, 65, 39, 55, 47, 108, 65, 23, 49, 37, 0, 11, 81, 107, 105, 32, 8, 197,
-			46, 36, 138, 20, 224, 11, 9, 198, 37, 39, 14, 101, 83, 20, 11, 8, 197, 36, 112, 90, 112, 224, 11, 10, 199, 13, 50, 78, 112, 197,
-			1, 52, 11, 11, 200, 32, 17, 19, 21, 33, 71, 8, 80, 11, 5, 194, 160, 224, 11, 10, 135, 197, 145, 115, 122, 195, 169, 110, 15, 0,
-			9, 198, 77, 167, 14, 18, 34, 192, 11, 8, 197, 25, 194, 140, 8, 16, 11, 10, 199, 18, 131, 148, 161, 69, 5, 52, 11, 0, 14, 139,
-			101, 108, 197, 145, 102, 111, 114, 100, 117, 108, 116, 11, 10, 199, 77, 167, 13, 60, 197, 1, 44, 11, 9, 198, 28, 243, 132, 60, 194, 129,
-			11, 7, 132, 101, 108, 197, 145, 11, 7, 132, 101, 108, 197, 145, 11, 13, 67, 5, 67, 64, 114, 47, 113, 109, 65, 0, 42, 42, 0, 6,
-			195, 148, 120, 146, 11, 12, 201, 77, 161, 82, 88, 86, 133, 81, 65, 76, 11, 51, 73, 77, 161, 82, 88, 86, 133, 80, 82, 192, 89, 109,
-			52, 84, 109, 88, 109, 47, 109, 49, 23, 48, 114, 57, 114, 88, 107, 108, 47, 50, 108, 49, 0, 11, 81, 112, 195, 161, 108, 121, 195, 161,
-			122, 104, 97, 116, 110, 97, 107, 32, 8, 197, 46, 133, 40, 81, 64, 11, 13, 202, 24, 83, 19, 106, 115, 1, 49, 196, 207, 44, 11, 10,
-			199, 65, 35, 199, 72, 19, 66, 4, 11, 14, 139, 118, 195, 169, 103, 122, 197, 145, 100, 116, 101, 107, 11, 8, 197, 24, 244, 146, 113, 48,
-			11, 0, 27, 66, 168, 160, 116, 57, 10, 6, 15, 108, 71, 55, 108, 49, 39, 47, 0, 11, 81, 97, 98, 108, 97, 107, 111, 116, 32, 30,
-			66, 168, 160, 116, 57, 23, 65, 109, 81, 39, 55, 72, 114, 91, 47, 0, 11, 81, 109, 101, 103, 111, 108, 100, 195, 161, 115, 116, 32, 45,
-			13, 101, 108, 108, 101, 110, 197, 145, 114, 122, 195, 182, 116, 116, 109, 55, 12, 109, 50, 110, 52, 88, 110, 47, 12, 23, 109, 79, 91, 113,
-			81, 109, 0, 11, 81, 101, 103, 121, 115, 195, 169, 103, 101, 32, 20, 66, 168, 160, 116, 57, 15, 108, 57, 47, 115, 0, 11, 81, 97, 106,
-			116, 195, 179, 32, 9, 198, 44, 149, 1, 49, 195, 20, 11, 9, 198, 88, 150, 147, 29, 195, 20, 11, 5, 194, 168, 160, 11, 0, 14, 203,
-			36, 225, 146, 5, 53, 18, 84, 181, 42, 72, 16, 11, 0, 23, 69, 77, 160, 86, 113, 64, 89, 108, 84, 114, 47, 23, 91, 109, 65, 0,
-			11, 81, 115, 101, 109, 32, 9, 198, 61, 54, 148, 61, 163, 137, 11, 8, 197, 56, 20, 10, 113, 64, 11, 7, 196, 72, 244, 211, 104, 11,
-			0, 12, 137, 107, 195, 182, 116, 101, 110, 100, 197, 145, 11, 9, 198, 64, 147, 12, 4, 224, 84, 11, 9, 198, 40, 21, 129, 76, 192, 84,
-			11, 8, 197, 44, 81, 4, 20, 224, 17, 0, 13, 138, 98, 197, 145, 118, 195, 173, 116, 101, 110, 105, 11, 12, 201, 52, 81, 193, 48, 20,
-			37, 82, 114, 129, 11, 0, 14, 139, 107, 195, 182, 122, 108, 101, 107, 101, 100, 197, 145, 11, 11, 200, 45, 34, 84, 36, 181, 83, 77, 192,
-			11, 0, 30, 71, 52, 147, 137, 77, 165, 5, 72, 65, 37, 50, 37, 89, 47, 109, 52, 15, 84, 39, 55, 47, 0, 11, 81, 118, 111, 108,
-			116, 32, 12, 201, 20, 118, 69, 56, 201, 84, 20, 226, 64, 11, 10, 199, 52, 147, 137, 77, 165, 5, 72, 11, 6, 195, 74, 36, 218, 11,
-			0, 11, 200, 13, 50, 78, 112, 194, 149, 56, 176, 11, 10, 199, 64, 20, 129, 54, 37, 5, 72, 11, 0, 6, 195, 24, 154, 148, 11, 0,
-			10, 199, 89, 195, 20, 61, 162, 1, 80, 11, 0, 0, 8, 197, 52, 244, 206, 136, 176, 11, 13, 202, 77, 161, 77, 8, 84, 235, 48, 226,
-			107, 44, 11, 0, 8, 197, 89, 193, 217, 156, 176, 11, 0, 43, 70, 44, 83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 23, 71,
-			37, 89, 47, 39, 91, 112, 47, 108, 50, 37, 0, 11, 81, 98, 105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 105, 32, 34, 70, 44, 83,
-			12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 23, 83, 37, 88, 109, 47, 50, 37, 0, 11, 81, 102, 105, 122, 101, 116, 110, 105, 32,
-			39, 70, 44, 83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 23, 108, 6, 15, 48, 52, 39, 81, 52, 108, 65, 0, 11, 82, 97,
-			32, 112, 114, 111, 103, 114, 97, 109, 32, 44, 70, 52, 81, 5, 72, 33, 64, 65, 109, 72, 109, 52, 71, 109, 23, 47, 109, 52, 109, 55,
-			113, 91, 113, 71, 109, 50, 0, 11, 81, 116, 101, 114, 101, 108, 195, 169, 115, 195, 169, 98, 101, 110, 32, 9, 198, 46, 84, 226, 72, 146,
-			192, 11, 37, 70, 44, 83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 15, 49, 110, 84, 109, 47, 50, 37, 109, 0, 11, 81, 107,
-			195, 182, 118, 101, 116, 110, 105, 101, 32, 9, 198, 44, 83, 12, 20, 225, 64, 11, 0, 6, 195, 20, 197, 128, 11, 10, 199, 57, 147, 205,
-			80, 21, 39, 44, 11, 6, 195, 21, 53, 5, 17, 0, 7, 196, 105, 196, 15, 72, 11, 25, 68, 97, 98, 73, 36, 47, 37, 88, 109, 50,
-			67, 39, 55, 119, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 9, 198, 34, 115, 129, 64, 145, 192, 11, 6, 195, 113, 37, 0, 11,
-			0, 0, 51, 73, 24, 83, 8, 5, 54, 142, 112, 201, 203, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 49, 23, 55, 109, 47, 110, 55,
-			47, 113, 91, 109, 37, 47, 0, 11, 81, 108, 101, 116, 195, 182, 108, 116, 195, 169, 115, 101, 105, 116, 32, 72, 73, 24, 83, 142, 80, 20,
-			148, 61, 69, 0, 83, 109, 50, 12, 47, 108, 52, 47, 39, 47, 12, 23, 37, 91, 49, 39, 55, 114, 49, 23, 65, 111, 49, 110, 47, 12,
-			109, 47, 113, 91, 113, 47, 0, 11, 82, 105, 115, 107, 111, 108, 195, 161, 107, 32, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 195, 169,
-			115, 195, 169, 116, 32, 40, 73, 24, 83, 8, 5, 54, 142, 112, 201, 203, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 49, 23, 57, 110,
-			50, 12, 109, 49, 0, 11, 81, 106, 195, 182, 110, 110, 101, 107, 32, 10, 199, 24, 241, 193, 16, 128, 84, 156, 11, 6, 195, 29, 5, 64,
-			13, 0, 45, 71, 80, 19, 165, 80, 19, 132, 156, 47, 108, 50, 112, 47, 108, 50, 72, 115, 23, 37, 91, 65, 109, 52, 109, 47, 109, 49,
-			109, 47, 0, 11, 81, 105, 115, 109, 101, 114, 101, 116, 101, 107, 101, 116, 32, 11, 200, 25, 85, 20, 5, 66, 1, 82, 112, 11, 8, 197,
-			80, 19, 149, 50, 112, 11, 10, 199, 21, 84, 167, 65, 192, 167, 48, 11, 0, 6, 195, 34, 164, 192, 11, 0, 19, 144, 109, 197, 177, 107,
-			195, 182, 100, 116, 101, 116, 195, 169, 115, 104, 101, 122, 11, 8, 197, 113, 37, 76, 56, 144, 11, 6, 195, 77, 197, 128, 11, 10, 199, 77,
-			163, 205, 8, 21, 9, 28, 17, 0, 6, 195, 88, 17, 217, 72, 13, 202, 77, 161, 77, 64, 243, 148, 41, 192, 167, 48, 11, 7, 196, 34,
-			84, 133, 44, 11, 7, 196, 4, 66, 156, 44, 11, 6, 195, 24, 17, 217, 11, 7, 195, 88, 17, 217, 76, 8, 20, 4, 95, 51, 48, 113,
-			107, 108, 52, 10, 65, 37, 50, 119, 108, 72, 37, 49, 108, 0, 0, 35, 70, 46, 134, 168, 57, 56, 135, 49, 110, 88, 110, 50, 91, 113,
-			81, 23, 91, 39, 52, 108, 37, 71, 108, 0, 11, 81, 115, 111, 114, 97, 105, 98, 97, 32, 9, 198, 80, 17, 207, 104, 21, 0, 11, 9,
-			198, 24, 20, 1, 16, 244, 192, 11, 0, 7, 196, 4, 176, 82, 80, 11, 0, 10, 199, 65, 35, 199, 72, 19, 79, 44, 11, 6, 195, 77,
-			170, 7, 11, 0, 26, 70, 80, 19, 28, 48, 160, 64, 47, 108, 55, 114, 55, 57, 108, 23, 65, 109, 81, 0, 11, 81, 109, 101, 103, 32,
-			9, 198, 34, 115, 129, 64, 160, 64, 11, 20, 68, 81, 194, 129, 44, 47, 114, 57, 108, 49, 23, 37, 91, 0, 11, 81, 105, 115, 32, 12,
-			201, 89, 195, 20, 4, 179, 218, 32, 21, 0, 11, 7, 196, 52, 245, 15, 72, 11, 6, 195, 46, 36, 218, 11, 0, 7, 196, 89, 193, 231,
-			44, 11, 7, 196, 82, 36, 133, 56, 11, 11, 67, 65, 54, 148, 48, 89, 12, 47, 0, 41, 0, 9, 198, 36, 120, 142, 100, 82, 192, 11,
-			9, 198, 161, 67, 5, 80, 82, 192, 11, 12, 201, 28, 243, 132, 60, 192, 84, 80, 19, 0, 11, 0, 34, 69, 40, 83, 5, 57, 64, 57,
-			109, 55, 109, 50, 47, 23, 89, 114, 65, 40, 49, 52, 108, 0, 11, 81, 115, 122, 195, 161, 109, 117, 107, 114, 97, 32, 8, 197, 40, 83,
-			5, 57, 64, 11, 0, 9, 198, 41, 196, 129, 80, 18, 64, 11, 8, 197, 149, 39, 19, 72, 16, 11, 0, 10, 199, 40, 83, 5, 57, 65,
-			78, 20, 11, 12, 201, 77, 161, 82, 21, 1, 76, 56, 82, 192, 11, 12, 201, 24, 145, 217, 20, 195, 69, 76, 82, 192, 11, 8, 196, 32,
-			16, 156, 72, 72, 8, 0, 9, 134, 102, 197, 145, 122, 110, 105, 11, 12, 201, 173, 161, 77, 20, 197, 5, 80, 146, 192, 11, 10, 199, 46,
-			134, 144, 60, 229, 10, 4, 11, 9, 198, 88, 147, 28, 29, 192, 129, 11, 11, 136, 116, 197, 145, 108, 195, 188, 110, 107, 11, 19, 4, 95,
-			51, 48, 111, 107, 108, 52, 10, 65, 37, 50, 119, 108, 72, 37, 49, 0, 0, 16, 141, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 116,
-			101, 107, 11, 12, 201, 8, 150, 143, 81, 68, 220, 29, 73, 204, 11, 0, 8, 197, 21, 33, 74, 137, 64, 11, 8, 197, 52, 20, 16, 113,
-			64, 11, 7, 196, 46, 36, 5, 76, 11, 7, 196, 21, 164, 133, 56, 11, 14, 203, 80, 83, 10, 21, 57, 84, 137, 56, 136, 21, 160, 11,
-			8, 197, 58, 34, 28, 57, 144, 11, 0, 9, 198, 40, 241, 213, 56, 176, 84, 11, 9, 198, 16, 243, 7, 84, 176, 84, 11, 11, 200, 112,
-			195, 1, 64, 245, 18, 156, 192, 11, 12, 137, 109, 197, 177, 107, 195, 182, 100, 197, 145, 11, 8, 197, 56, 82, 235, 56, 176, 11, 9, 198,
-			52, 17, 213, 56, 176, 84, 11, 0, 9, 198, 44, 20, 14, 112, 226, 192, 11, 10, 199, 48, 144, 197, 56, 49, 73, 80, 11, 9, 198, 88,
-			243, 14, 112, 226, 192, 11, 9, 198, 52, 83, 148, 172, 226, 192, 11, 9, 198, 80, 84, 150, 172, 226, 192, 11, 7, 196, 82, 131, 78, 36,
-			11, 7, 196, 49, 197, 14, 36, 11, 0, 36, 7, 115, 122, 105, 110, 116, 197, 177, 89, 37, 50, 47, 117, 23, 83, 109, 55, 107, 118, 88,
-			109, 47, 0, 11, 81, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 10, 199, 24, 83, 43, 48, 85, 5, 80, 11, 10, 199, 46, 36, 5,
-			77, 56, 135, 20, 11, 10, 199, 74, 36, 218, 48, 85, 5, 80, 11, 8, 197, 44, 153, 82, 56, 144, 11, 0, 7, 196, 137, 38, 137, 44,
-			11, 6, 195, 113, 42, 128, 11, 0, 10, 199, 44, 20, 3, 76, 243, 14, 36, 11, 12, 201, 24, 145, 217, 20, 195, 69, 105, 65, 84, 11,
-			9, 198, 12, 146, 204, 60, 229, 0, 11, 12, 201, 52, 81, 207, 48, 64, 78, 84, 226, 192, 11, 10, 199, 48, 83, 69, 57, 65, 78, 36,
-			11, 0, 13, 202, 20, 194, 226, 65, 161, 76, 137, 58, 206, 44, 11, 0, 10, 199, 58, 36, 5, 77, 56, 135, 20, 11, 49, 15, 98, 197,
-			177, 110, 99, 115, 101, 108, 101, 107, 109, 195, 169, 110, 121, 71, 111, 50, 76, 109, 55, 109, 49, 65, 113, 67, 10, 6, 15, 79, 108, 50,
-			116, 57, 108, 0, 11, 81, 103, 121, 97, 110, 195, 186, 106, 97, 32, 16, 205, 32, 246, 154, 112, 167, 18, 84, 199, 19, 60, 176, 129, 56,
-			11, 12, 201, 52, 81, 212, 20, 201, 84, 172, 226, 192, 11, 0, 7, 196, 82, 131, 73, 44, 11, 7, 196, 9, 195, 137, 44, 11, 0, 31,
-			68, 49, 197, 39, 44, 55, 114, 47, 115, 49, 23, 89, 114, 65, 114, 52, 108, 0, 11, 81, 115, 122, 195, 161, 109, 195, 161, 114, 97, 32,
-			12, 201, 24, 83, 8, 5, 54, 142, 112, 195, 137, 11, 7, 196, 46, 129, 40, 76, 11, 0, 8, 197, 112, 195, 10, 60, 224, 11, 6, 195,
-			25, 194, 148, 11, 6, 195, 26, 162, 148, 11, 0, 0, 7, 196, 4, 176, 201, 156, 11, 0, 13, 202, 52, 81, 211, 106, 179, 5, 82, 36,
-			226, 80, 11, 45, 68, 85, 64, 193, 36, 40, 119, 12, 108, 37, 23, 113, 48, 111, 55, 109, 47, 109, 23, 109, 55, 118, 47, 12, 0, 11,
-			82, 195, 169, 112, 195, 188, 108, 101, 116, 101, 32, 101, 108, 197, 145, 116, 116, 32, 13, 202, 24, 83, 20, 172, 229, 5, 82, 36, 226, 80,
-			11, 0, 0, 47, 70, 89, 196, 136, 5, 73, 192, 84, 114, 52, 107, 108, 47, 115, 23, 108, 55, 108, 49, 40, 55, 114, 91, 114, 52, 115,
-			55, 0, 11, 81, 97, 108, 97, 107, 117, 108, 195, 161, 115, 195, 161, 114, 195, 179, 108, 32, 27, 70, 89, 196, 136, 5, 73, 192, 84, 114,
-			52, 107, 108, 47, 115, 23, 109, 91, 118, 0, 11, 81, 101, 115, 197, 145, 32, 9, 198, 89, 196, 136, 5, 73, 192, 11, 9, 198, 89, 193,
-			200, 5, 73, 192, 11, 9, 198, 49, 197, 8, 5, 73, 192, 11, 9, 198, 89, 196, 136, 5, 73, 192, 11, 0, 9, 198, 89, 195, 12, 113,
-			41, 204, 11, 0, 29, 72, 52, 81, 207, 48, 66, 1, 82, 112, 65, 109, 81, 39, 55, 72, 107, 108, 47, 115, 23, 108, 88, 0, 11, 81,
-			97, 122, 32, 10, 199, 32, 19, 28, 49, 196, 167, 48, 11, 8, 197, 88, 84, 154, 38, 112, 11, 8, 197, 24, 18, 193, 18, 112, 11, 0,
-			22, 66, 137, 32, 113, 52, 23, 84, 113, 81, 109, 47, 0, 11, 81, 118, 195, 169, 103, 101, 116, 32, 7, 196, 5, 39, 14, 100, 11, 12,
-			201, 44, 20, 3, 76, 243, 8, 5, 73, 192, 11, 17, 66, 137, 32, 113, 52, 10, 6, 15, 109, 55, 0, 11, 81, 101, 108, 32, 11, 200,
-			80, 20, 148, 113, 55, 18, 156, 192, 11, 5, 194, 169, 32, 11, 5, 194, 137, 32, 11, 0, 8, 197, 112, 195, 14, 36, 16, 11, 11, 67,
-			53, 197, 128, 65, 114, 84, 0, 42, 42, 6, 195, 53, 196, 131, 15, 0, 9, 198, 50, 37, 5, 104, 226, 64, 11, 9, 198, 73, 197, 133,
-			56, 226, 64, 11, 7, 196, 90, 35, 9, 44, 11, 0, 10, 199, 46, 179, 40, 56, 17, 39, 80, 11, 9, 198, 40, 83, 5, 44, 85, 0,
-			11, 9, 198, 46, 36, 26, 20, 195, 137, 11, 9, 198, 13, 50, 78, 112, 195, 137, 11, 12, 201, 8, 150, 143, 57, 153, 84, 4, 226, 65,
-			11, 0, 31, 72, 28, 83, 133, 73, 192, 201, 157, 48, 81, 109, 50, 109, 52, 114, 119, 37, 115, 91, 10, 6, 15, 39, 49, 0, 11, 81,
-			111, 107, 32, 11, 200, 28, 83, 133, 73, 192, 201, 157, 48, 11, 7, 196, 40, 241, 207, 80, 11, 7, 196, 40, 241, 207, 80, 11, 7, 196,
-			85, 64, 83, 80, 11, 0, 40, 70, 77, 163, 205, 61, 42, 128, 89, 39, 65, 39, 52, 116, 23, 84, 39, 55, 47, 23, 55, 114, 47, 50,
-			37, 0, 11, 82, 118, 111, 108, 116, 32, 108, 195, 161, 116, 110, 105, 32, 8, 197, 88, 242, 211, 61, 64, 11, 8, 197, 44, 86, 132, 21,
-			64, 11, 12, 201, 24, 83, 4, 60, 193, 207, 104, 226, 64, 11, 14, 139, 103, 121, 197, 145, 122, 107, 195, 182, 100, 110, 105, 11, 0, 9,
-			198, 89, 195, 20, 4, 224, 64, 11, 38, 70, 24, 244, 137, 57, 64, 129, 83, 39, 52, 37, 50, 47, 71, 108, 23, 49, 109, 52, 111, 55,
-			50, 109, 49, 0, 11, 81, 107, 101, 114, 195, 188, 108, 110, 101, 107, 32, 10, 199, 20, 211, 34, 45, 54, 137, 44, 11, 7, 196, 54, 163,
-			9, 44, 11, 0, 12, 201, 48, 85, 133, 106, 35, 153, 20, 195, 137, 11, 9, 198, 32, 21, 28, 49, 144, 129, 11, 9, 198, 40, 83, 19,
-			106, 116, 129, 11, 7, 196, 80, 84, 162, 56, 11, 0, 9, 198, 82, 84, 21, 76, 242, 192, 11, 12, 201, 33, 197, 20, 137, 37, 28, 72,
-			243, 39, 11, 7, 196, 49, 197, 10, 4, 11, 0, 11, 200, 4, 194, 129, 77, 55, 7, 72, 16, 11, 8, 197, 4, 192, 75, 61, 64, 11,
-			8, 197, 76, 241, 15, 73, 64, 11, 8, 197, 80, 84, 150, 21, 64, 11, 0, 11, 200, 72, 19, 135, 40, 18, 84, 156, 192, 11, 10, 199,
-			137, 10, 204, 21, 72, 130, 20, 11, 12, 201, 77, 167, 14, 18, 34, 213, 44, 21, 0, 11, 12, 201, 88, 150, 147, 29, 195, 1, 80, 245,
-			0, 11, 0, 30, 69, 88, 85, 20, 172, 176, 84, 109, 47, 12, 111, 49, 10, 6, 15, 113, 89, 52, 109, 0, 11, 81, 195, 169, 115, 122,
-			114, 101, 32, 43, 73, 81, 195, 79, 28, 21, 28, 77, 32, 64, 47, 114, 65, 39, 81, 108, 47, 114, 91, 52, 108, 23, 57, 39, 81, 39,
-			91, 40, 55, 47, 0, 11, 81, 106, 111, 103, 111, 115, 117, 108, 116, 32, 8, 197, 8, 83, 142, 172, 176, 11, 0, 12, 201, 20, 197, 162,
-			29, 168, 147, 136, 33, 64, 11, 28, 71, 81, 195, 65, 77, 165, 10, 4, 47, 114, 65, 108, 89, 80, 108, 23, 108, 55, 114, 0, 11, 81,
-			97, 108, 195, 161, 32, 0, 12, 201, 65, 32, 75, 80, 146, 213, 76, 16, 130, 11, 0, 30, 69, 21, 56, 140, 101, 64, 109, 91, 113, 57,
-			47, 10, 6, 15, 55, 114, 47, 39, 49, 0, 11, 81, 108, 195, 161, 116, 111, 107, 32, 10, 199, 24, 244, 146, 113, 48, 167, 48, 11, 0,
-			8, 197, 32, 22, 156, 56, 176, 11, 10, 199, 81, 41, 206, 41, 196, 167, 48, 11, 11, 200, 60, 181, 1, 81, 196, 194, 156, 192, 11, 0,
-			34, 70, 56, 85, 133, 50, 36, 192, 50, 109, 84, 109, 55, 113, 91, 23, 47, 113, 65, 114, 57, 108, 0, 11, 81, 116, 195, 169, 109, 195,
-			161, 106, 97, 32, 7, 196, 81, 81, 14, 112, 11, 0, 13, 202, 64, 147, 12, 4, 224, 84, 60, 176, 167, 48, 11, 8, 197, 8, 89, 82,
-			56, 144, 11, 0, 18, 67, 112, 103, 0, 195, 161, 102, 195, 161, 116, 0, 44, 29, 42, 81, 116, 32, 19, 67, 137, 97, 78, 113, 84, 109,
-			50, 23, 114, 47, 0, 11, 81, 195, 161, 116, 32, 9, 198, 44, 81, 22, 20, 224, 197, 11, 14, 67, 16, 228, 192, 72, 113, 109, 50, 109,
-			91, 0, 42, 42, 0, 36, 68, 80, 85, 20, 20, 47, 109, 47, 12, 109, 23, 84, 37, 55, 114, 81, 39, 91, 12, 114, 0, 11, 81, 118,
-			105, 108, 195, 161, 103, 111, 115, 115, 195, 161, 32, 22, 68, 36, 112, 90, 4, 37, 81, 108, 88, 108, 23, 84, 108, 50, 0, 11, 81, 118,
-			97, 110, 32, 11, 200, 160, 226, 232, 49, 68, 226, 28, 80, 11, 10, 199, 20, 193, 143, 28, 17, 14, 36, 11, 12, 201, 46, 134, 168, 77,
-			56, 135, 137, 97, 76, 11, 10, 199, 8, 83, 85, 80, 21, 14, 36, 11, 10, 199, 20, 197, 137, 76, 83, 14, 36, 11, 14, 203, 52, 81,
-			203, 161, 161, 76, 149, 72, 147, 72, 80, 11, 6, 195, 46, 113, 42, 11, 7, 196, 88, 85, 20, 20, 11, 6, 195, 49, 193, 217, 11, 7,
-			196, 80, 85, 20, 20, 11, 0, 8, 197, 77, 160, 75, 52, 16, 11, 17, 196, 49, 197, 20, 4, 11, 81, 112, 101, 116, 197, 145, 102, 105,
-			116, 32, 8, 197, 60, 179, 218, 104, 16, 11, 13, 138, 115, 122, 97, 107, 195, 169, 114, 116, 197, 145, 11, 7, 196, 49, 197, 20, 4, 11,
-			6, 195, 78, 36, 148, 11, 15, 8, 95, 35, 45, 195, 161, 110, 97, 107, 114, 50, 108, 49, 0, 0, 9, 198, 20, 209, 76, 21, 65, 78,
-			11, 7, 196, 5, 36, 167, 48, 11, 7, 196, 5, 36, 167, 48, 11, 0, 9, 198, 14, 83, 69, 105, 65, 64, 11, 9, 198, 90, 131, 7,
-			100, 33, 78, 11, 12, 201, 89, 195, 20, 61, 165, 1, 80, 226, 64, 11, 8, 197, 44, 81, 4, 36, 112, 17, 17, 10, 95, 35, 45, 105,
-			107, 195, 161, 110, 97, 107, 114, 50, 108, 49, 0, 0, 37, 72, 33, 83, 12, 4, 72, 139, 60, 176, 107, 40, 55, 12, 108, 72, 113, 49,
-			39, 49, 23, 76, 40, 48, 114, 50, 0, 11, 81, 99, 115, 117, 112, 195, 161, 110, 32, 10, 199, 10, 179, 148, 21, 52, 226, 44, 11, 10,
-			199, 80, 84, 150, 21, 161, 84, 20, 11, 7, 196, 56, 20, 10, 4, 11, 10, 199, 60, 179, 218, 32, 21, 20, 4, 11, 0, 11, 200, 72,
-			82, 204, 112, 208, 211, 148, 176, 11, 8, 197, 88, 19, 12, 88, 16, 11, 12, 201, 28, 243, 132, 60, 192, 84, 82, 115, 0, 11, 9, 198,
-			28, 243, 132, 60, 195, 203, 11, 10, 199, 32, 151, 14, 100, 243, 20, 4, 11, 10, 199, 44, 149, 1, 49, 195, 20, 4, 11, 0, 9, 198,
-			89, 193, 15, 48, 224, 75, 11, 10, 199, 80, 20, 137, 25, 197, 129, 48, 11, 9, 198, 46, 182, 132, 20, 225, 75, 11, 7, 196, 105, 196,
-			149, 48, 11, 12, 201, 65, 35, 199, 72, 19, 74, 112, 224, 75, 11, 10, 135, 197, 145, 114, 110, 97, 103, 121, 11, 10, 199, 32, 244, 132,
-			112, 149, 129, 48, 11, 10, 135, 98, 101, 108, 197, 145, 108, 101, 11, 12, 201, 32, 19, 135, 61, 165, 1, 81, 64, 64, 11, 12, 201, 8,
-			150, 143, 81, 68, 220, 28, 224, 75, 11, 7, 196, 80, 83, 9, 44, 11, 0, 12, 3, 95, 122, 104, 49, 6, 112, 50, 108, 37, 0, 8,
-			197, 77, 9, 210, 60, 192, 11, 9, 198, 157, 39, 11, 8, 19, 128, 11, 8, 197, 32, 83, 25, 20, 176, 11, 11, 200, 36, 225, 193, 80,
-			192, 78, 84, 176, 11, 9, 198, 82, 35, 92, 8, 19, 128, 11, 7, 196, 20, 195, 168, 44, 11, 8, 197, 56, 82, 212, 20, 176, 11, 0,
-			9, 198, 48, 84, 218, 56, 82, 192, 72, 10, 199, 76, 84, 133, 30, 32, 133, 56, 11, 38, 71, 52, 81, 217, 136, 176, 133, 56, 65, 109,
-			79, 113, 49, 71, 109, 50, 23, 84, 114, 52, 107, 108, 47, 115, 0, 11, 81, 118, 195, 161, 114, 104, 97, 116, 195, 179, 32, 9, 198, 44,
-			84, 133, 76, 146, 192, 11, 9, 198, 4, 230, 65, 28, 242, 192, 11, 9, 198, 24, 82, 211, 104, 146, 192, 11, 9, 198, 72, 244, 211, 104,
-			18, 192, 11, 0, 31, 72, 112, 195, 1, 64, 245, 2, 4, 224, 114, 55, 12, 108, 48, 39, 47, 71, 108, 50, 23, 84, 108, 50, 0, 11,
-			81, 118, 97, 110, 32, 15, 204, 112, 195, 1, 53, 66, 84, 45, 196, 147, 112, 112, 64, 11, 15, 204, 46, 36, 22, 37, 49, 76, 80, 161,
-			73, 56, 82, 192, 11, 12, 201, 64, 19, 129, 77, 162, 207, 16, 224, 75, 11, 12, 201, 112, 195, 37, 81, 196, 220, 32, 246, 128, 11, 6,
-			195, 46, 36, 212, 11, 6, 195, 53, 196, 212, 11, 0, 9, 198, 72, 243, 148, 4, 226, 64, 11, 13, 202, 29, 153, 199, 101, 83, 28, 77,
-			194, 15, 104, 11, 9, 198, 48, 85, 5, 56, 226, 64, 11, 12, 201, 45, 85, 1, 81, 196, 207, 44, 224, 75, 11, 9, 198, 12, 83, 12,
-			113, 41, 204, 11, 10, 199, 112, 195, 37, 80, 245, 20, 4, 11, 9, 198, 80, 20, 148, 4, 226, 64, 11, 6, 195, 36, 112, 90, 11, 9,
-			198, 52, 243, 132, 4, 226, 64, 11, 7, 196, 4, 227, 129, 44, 11, 0, 8, 197, 81, 81, 21, 56, 176, 76, 14, 203, 8, 150, 148, 61,
-			57, 84, 113, 55, 8, 61, 160, 11, 12, 201, 52, 81, 212, 20, 129, 84, 21, 69, 0, 11, 8, 197, 48, 18, 212, 4, 176, 11, 0, 41,
-			70, 24, 82, 140, 21, 69, 0, 83, 109, 57, 55, 109, 47, 12, 10, 6, 15, 48, 52, 39, 119, 109, 89, 12, 39, 52, 0, 11, 81, 112,
-			114, 111, 99, 101, 115, 115, 122, 111, 114, 32, 8, 197, 57, 149, 71, 90, 112, 11, 0, 8, 197, 76, 82, 148, 20, 208, 11, 15, 204, 4,
-			194, 193, 48, 208, 90, 61, 69, 1, 44, 224, 75, 11, 0, 13, 202, 44, 145, 71, 137, 54, 165, 80, 85, 20, 20, 11, 8, 197, 137, 34,
-			78, 80, 144, 11, 9, 198, 77, 161, 82, 17, 194, 71, 17, 0, 26, 67, 82, 128, 130, 47, 110, 71, 12, 23, 39, 52, 89, 114, 81, 0,
-			11, 81, 111, 114, 115, 122, 195, 161, 103, 32, 12, 201, 81, 196, 147, 5, 50, 28, 104, 41, 204, 11, 77, 67, 82, 128, 130, 47, 110, 71,
-			12, 23, 107, 109, 57, 109, 50, 23, 89, 108, 49, 108, 72, 39, 88, 37, 49, 23, 83, 109, 55, 23, 108, 23, 83, 109, 55, 107, 118, 88,
-			109, 47, 0, 11, 85, 104, 101, 108, 121, 101, 110, 32, 115, 122, 97, 107, 97, 100, 111, 122, 105, 107, 32, 102, 101, 108, 32, 97, 32, 102,
-			101, 108, 104, 197, 145, 122, 101, 116, 32, 11, 200, 20, 194, 28, 74, 85, 1, 56, 144, 11, 47, 67, 82, 128, 130, 47, 110, 71, 12, 23,
-			83, 109, 55, 107, 118, 23, 84, 108, 55, 115, 89, 112, 50, 117, 0, 11, 82, 102, 101, 108, 104, 197, 145, 32, 118, 97, 108, 195, 179, 115,
-			122, 195, 173, 110, 197, 177, 32, 9, 198, 80, 20, 148, 4, 226, 65, 11, 6, 195, 82, 128, 130, 11, 0, 10, 199, 20, 195, 69, 57, 65,
-			78, 36, 11, 9, 198, 20, 120, 147, 104, 85, 0, 11, 9, 198, 8, 16, 146, 112, 195, 137, 11, 10, 199, 32, 19, 12, 28, 21, 14, 36,
-			11, 0, 8, 197, 32, 244, 211, 106, 160, 11, 11, 200, 137, 33, 5, 44, 84, 211, 136, 112, 11, 10, 199, 46, 133, 5, 48, 86, 142, 36,
-			11, 0, 8, 197, 56, 17, 217, 61, 64, 11, 9, 198, 88, 149, 1, 80, 167, 11, 11, 9, 198, 72, 244, 211, 104, 16, 130, 11, 10, 199,
-			20, 197, 133, 32, 85, 9, 44, 11, 7, 196, 77, 169, 204, 80, 11, 0, 6, 195, 36, 72, 154, 11, 8, 197, 49, 197, 15, 81, 64, 11,
-			16, 67, 44, 98, 201, 49, 114, 109, 83, 49, 114, 37, 0, 13, 42, 42, 0, 9, 198, 32, 144, 156, 44, 21, 0, 11, 9, 198, 54, 36,
-			133, 82, 37, 0, 11, 7, 196, 21, 53, 34, 56, 11, 8, 197, 74, 35, 76, 36, 176, 11, 0, 7, 196, 50, 36, 22, 20, 11, 10, 199,
-			16, 243, 7, 61, 163, 212, 80, 11, 10, 199, 4, 64, 75, 61, 163, 212, 80, 11, 0, 58, 75, 112, 195, 1, 53, 66, 84, 45, 196, 147,
-			112, 112, 35, 55, 12, 108, 65, 47, 37, 47, 49, 114, 52, 91, 114, 81, 23, 47, 109, 34, 84, 109, 88, 109, 47, 113, 52, 118, 55, 0,
-			11, 81, 116, 101, 114, 118, 101, 122, 101, 116, 195, 169, 114, 197, 145, 108, 32, 9, 198, 25, 194, 140, 32, 246, 128, 11, 12, 201, 36, 229,
-			34, 104, 216, 142, 100, 82, 192, 11, 8, 197, 105, 82, 1, 57, 64, 11, 0, 8, 197, 24, 241, 206, 4, 176, 76, 0, 15, 204, 90, 33,
-			210, 20, 128, 74, 81, 196, 220, 88, 19, 0, 11, 10, 199, 161, 97, 90, 21, 64, 133, 56, 11, 9, 198, 8, 84, 218, 136, 197, 133, 11,
-			10, 199, 37, 50, 207, 49, 192, 129, 56, 11, 9, 198, 18, 131, 148, 137, 53, 0, 11, 10, 199, 72, 83, 132, 77, 161, 82, 20, 11, 9,
-			198, 8, 195, 203, 44, 242, 192, 11, 15, 67, 4, 68, 204, 114, 72, 113, 109, 91, 109, 55, 0, 42, 42, 0, 6, 20, 0, 0, 244, 0,
-			0, 0, 81, 1, 0, 0, 251, 0, 0, 0, 113, 1, 0, 0, 0, 0, 0, 0, 6, 18, 66, 98, 0, 99, 0, 100, 0, 102, 0, 103,
-			0, 104, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 112, 0, 115, 0, 116, 0, 114, 0, 118, 0, 119, 0, 122, 0, 7, 6, 99,
-			104, 0, 4, 1, 115, 2, 105, 108, 108, 105, 110, 103, 3, 0, 1, 115, 105, 102, 2, 101, 114, 3, 0, 4, 1, 105, 115, 105, 114, 117,
-			106, 3, 76, 0, 1, 105, 118, 101, 108, 103, 101, 107, 0, 1, 105, 118, 101, 115, 99, 97, 106, 101, 112, 0, 1, 105, 118, 111, 107, 108,
-			97, 115, 115, 97, 114, 103, 0, 1, 105, 118, 111, 107, 115, 97, 108, 98, 0, 1, 161, 195, 103, 114, 111, 102, 0, 1, 169, 195, 112, 2,
-			121, 0, 1, 169, 195, 122, 115, 0, 5, 1, 1, 105, 110, 97, 106, 109, 97, 100, 0, 8, 105, 122, 2, 121, 0, 99, 115, 1, 105, 115,
-			105, 114, 117, 106, 3, 76, 12, 0, 105, 112, 5, 1, 3, 76, 37, 48, 0, 4, 101, 8, 169, 195, 122, 115, 2, 110, 121, 3, 76, 113,
-			0, 195, 169, 8, 169, 195, 122, 115, 2, 110, 121, 0, 4, 1, 105, 110, 114, 101, 116, 116, 101, 109, 3, 99, 0, 1, 105, 114, 2, 116,
-			101, 114, 0, 1, 110, 188, 195, 109, 2, 101, 110, 0, 4, 1, 97, 2, 97, 101, 109, 3, 107, 0, 1, 97, 2, 105, 108, 108, 101, 115,
-			0, 1, 97, 2, 195, 161, 116, 0, 1, 97, 98, 0, 1, 97, 99, 114, 97, 2, 111, 110, 0, 1, 97, 99, 114, 97, 2, 111, 110, 0,
-			1, 97, 100, 108, 97, 98, 2, 105, 110, 0, 1, 97, 102, 0, 1, 97, 106, 2, 116, 0, 1, 97, 108, 97, 109, 2, 105, 116, 0, 1,
-			97, 109, 2, 105, 97, 118, 101, 108, 108, 0, 1, 97, 109, 2, 105, 110, 195, 161, 0, 1, 97, 110, 97, 109, 108, 97, 0, 1, 97, 114,
-			107, 0, 1, 97, 122, 115, 2, 97, 114, 105, 100, 0, 1, 101, 2, 195, 179, 0, 1, 101, 108, 2, 110, 101, 114, 0, 1, 101, 109, 2,
-			97, 0, 1, 101, 116, 0, 1, 105, 114, 116, 2, 105, 110, 0, 1, 105, 116, 2, 111, 110, 0, 1, 105, 116, 122, 115, 105, 100, 2, 111,
-			110, 0, 1, 105, 116, 122, 115, 111, 110, 111, 114, 107, 2, 111, 110, 0, 1, 105, 122, 115, 112, 0, 1, 111, 115, 97, 109, 2, 105, 115,
-			116, 17, 65, 0, 1, 111, 116, 122, 115, 2, 97, 115, 122, 116, 105, 0, 1, 111, 122, 97, 109, 2, 105, 115, 0, 1, 111, 122, 97, 109,
-			2, 105, 122, 109, 0, 1, 114, 97, 2, 97, 105, 107, 117, 115, 0, 1, 114, 97, 2, 105, 116, 101, 107, 116, 195, 186, 0, 1, 114, 97,
-			2, 105, 118, 195, 161, 108, 0, 1, 114, 97, 2, 195, 173, 118, 0, 1, 114, 97, 103, 105, 108, 111, 0, 1, 114, 97, 110, 97, 2, 105,
-			0, 1, 114, 97, 110, 111, 109, 2, 105, 0, 1, 114, 97, 114, 101, 105, 104, 2, 105, 0, 1, 114, 111, 2, 195, 173, 100, 101, 97, 0,
-			1, 117, 101, 2, 97, 114, 105, 115, 122, 0, 1, 117, 110, 117, 101, 0, 1, 121, 122, 115, 112, 0, 8, 114, 97, 2, 105, 109, 195, 169,
-			0, 8, 114, 111, 2, 105, 100, 101, 0, 4, 1, 101, 99, 2, 101, 116, 3, 107, 12, 0, 1, 101, 112, 103, 101, 108, 2, 101, 115, 0,
-			1, 105, 114, 116, 115, 2, 101, 108, 0, 8, 101, 112, 0, 7, 6, 100, 122, 0, 4, 1, 97, 122, 161, 195, 122, 115, 2, 101, 110, 101,
-			3, 72, 88, 0, 1, 101, 114, 122, 101, 2, 101, 110, 101, 0, 1, 103, 97, 114, 97, 109, 115, 2, 195, 182, 108, 100, 0, 1, 169, 195,
-			118, 110, 111, 104, 2, 195, 161, 115, 122, 108, 195, 179, 0, 1, 169, 195, 122, 115, 101, 98, 2, 97, 118, 97, 114, 0, 4, 115, 3, 75,
-			0, 115, 1, 17, 67, 0, 115, 1, 97, 2, 17, 65, 0, 115, 2, 17, 67, 0, 4, 115, 1, 97, 114, 97, 104, 97, 109, 2, 17, 65,
-			3, 75, 12, 0, 115, 1, 101, 110, 101, 109, 2, 17, 65, 0, 115, 1, 105, 114, 98, 2, 17, 65, 0, 115, 5, 1, 1, 111, 98, 109,
-			97, 107, 2, 17, 65, 0, 115, 8, 111, 100, 2, 17, 65, 0, 4, 1, 145, 197, 108, 101, 100, 101, 122, 115, 3, 88, 0, 1, 145, 197,
-			108, 101, 116, 101, 118, 182, 195, 107, 0, 1, 145, 197, 114, 169, 195, 107, 0, 1, 145, 197, 116, 101, 103, 101, 116, 110, 101, 109, 0, 1,
-			145, 197, 116, 101, 103, 101, 121, 110, 101, 102, 0, 1, 177, 197, 114, 177, 197, 121, 103, 2, 105, 107, 0, 1, 179, 195, 103, 111, 102, 2,
-			195, 179, 0, 1, 179, 195, 108, 108, 105, 118, 0, 1, 179, 195, 108, 111, 107, 114, 117, 98, 0, 1, 179, 195, 108, 111, 107, 116, 105, 116,
-			0, 1, 179, 195, 108, 161, 195, 98, 109, 105, 104, 0, 1, 179, 195, 108, 161, 195, 98, 111, 100, 0, 1, 179, 195, 108, 161, 195, 112, 97,
-			107, 0, 1, 179, 195, 112, 97, 114, 97, 104, 0, 1, 179, 195, 112, 111, 108, 0, 1, 179, 195, 114, 97, 107, 97, 0, 1, 179, 195, 115,
-			114, 111, 98, 0, 1, 179, 195, 116, 97, 103, 108, 108, 97, 104, 0, 1, 179, 195, 116, 97, 103, 110, 105, 114, 0, 1, 179, 195, 116, 97,
-			103, 110, 161, 195, 114, 0, 1, 179, 195, 116, 97, 103, 111, 112, 97, 116, 0, 1, 145, 197, 108, 101, 100, 101, 122, 115, 2, 107, 195, 182,
-			3, 89, 0, 4, 1, 101, 114, 169, 195, 107, 3, 119, 0, 1, 101, 114, 169, 195, 109, 2, 107, 0, 1, 179, 195, 2, 107, 111, 100, 0,
-			1, 179, 195, 103, 111, 102, 2, 107, 111, 100, 0, 1, 179, 195, 122, 186, 195, 104, 0, 8, 179, 195, 2, 107, 111, 0, 4, 3, 120, 12,
-			0, 0, 1, 17, 65, 2, 17, 65, 0, 1, 101, 2, 195, 169, 115, 0, 1, 101, 2, 197, 145, 0, 7, 6, 103, 121, 0, 115, 3, 76,
-			0, 115, 1, 17, 65, 2, 17, 65, 3, 76, 12, 0, 4, 3, 79, 0, 1, 97, 2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 97, 2,
-			115, 101, 106, 0, 1, 97, 2, 115, 195, 169, 114, 195, 188, 108, 0, 1, 97, 102, 2, 115, 195, 169, 114, 195, 188, 108, 0, 1, 97, 110,
-			2, 115, 97, 108, 108, 195, 179, 0, 1, 97, 110, 2, 115, 97, 114, 108, 195, 179, 0, 1, 97, 110, 2, 115, 101, 98, 101, 115, 0, 1,
-			97, 110, 2, 115, 105, 101, 116, 0, 1, 97, 110, 2, 115, 105, 107, 101, 114, 0, 1, 97, 110, 2, 115, 111, 107, 195, 161, 114, 97, 0,
-			1, 97, 110, 2, 115, 111, 114, 0, 1, 97, 110, 2, 115, 116, 114, 97, 116, 195, 169, 103, 105, 97, 0, 1, 97, 110, 2, 115, 116, 195,
-			173, 108, 0, 1, 97, 110, 2, 115, 195, 161, 103, 0, 1, 97, 110, 2, 115, 195, 161, 112, 0, 1, 101, 2, 101, 115, 45, 101, 103, 121,
-			101, 100, 195, 188, 108, 0, 1, 101, 2, 106, 101, 103, 121, 197, 177, 0, 1, 101, 2, 106, 101, 108, 101, 110, 116, 195, 169, 115, 197, 177,
-			0, 1, 101, 2, 115, 97, 114, 107, 195, 186, 0, 1, 101, 2, 115, 101, 106, 116, 197, 177, 0, 1, 101, 2, 115, 111, 114, 0, 1, 101,
-			2, 115, 195, 173, 110, 197, 177, 0, 1, 101, 104, 2, 115, 195, 169, 103, 0, 1, 101, 106, 2, 101, 110, 107, 195, 169, 110, 116, 0, 1,
-			101, 106, 2, 101, 122, 116, 101, 0, 1, 101, 106, 2, 195, 169, 114, 116, 0, 1, 101, 106, 100, 169, 195, 118, 2, 115, 116, 114, 97, 116,
-			195, 169, 0, 1, 101, 118, 2, 195, 169, 114, 116, 195, 169, 107, 0, 1, 110, 182, 195, 121, 103, 2, 115, 111, 114, 0, 1, 111, 104, 2,
+			47, 0, 13, 82, 97, 32, 104, 97, 103, 121, 111, 109, 195, 161, 110, 121, 116, 32, 36, 67, 5, 165, 0, 108, 89, 47, 23, 47, 108, 48,
+			108, 89, 47, 108, 55, 47, 108, 65, 0, 13, 81, 116, 97, 112, 97, 115, 122, 116, 97, 108, 116, 97, 109, 32, 37, 67, 5, 165, 0, 108,
+			89, 47, 23, 47, 108, 50, 114, 76, 39, 57, 57, 57, 114, 49, 0, 13, 81, 116, 97, 110, 195, 161, 99, 115, 111, 108, 106, 195, 161, 107,
+			32, 56, 67, 5, 165, 0, 108, 89, 47, 23, 49, 113, 52, 47, 109, 23, 108, 88, 23, 114, 55, 12, 108, 65, 47, 37, 47, 49, 114, 52,
+			0, 13, 83, 107, 195, 169, 114, 116, 101, 32, 97, 122, 32, 195, 161, 108, 108, 97, 109, 116, 105, 116, 107, 195, 161, 114, 32, 14, 195, 5,
+			165, 0, 13, 81, 108, 195, 161, 116, 110, 105, 32, 10, 195, 5, 165, 0, 13, 81, 105, 115, 32, 6, 195, 5, 165, 0, 13, 12, 137, 6,
+			15, 12, 25, 1, 13, 195, 161, 14, 20, 0, 11, 200, 72, 83, 132, 20, 193, 84, 21, 64, 13, 25, 67, 96, 146, 73, 47, 37, 88, 109,
+			50, 107, 114, 52, 39, 65, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 12, 201, 56, 85, 133, 48, 177, 68, 21, 69, 0, 13, 16,
+			141, 8, 1, 10, 12, 195, 169, 11, 20, 1, 12, 1, 14, 20, 13, 0, 6, 194, 16, 80, 76, 8, 0, 10, 135, 195, 173, 18, 195, 161,
+			19, 20, 13, 0, 10, 135, 7, 25, 197, 145, 26, 14, 9, 13, 14, 139, 22, 195, 161, 12, 1, 19, 26, 20, 1, 14, 9, 13, 7, 196,
+			5, 32, 78, 100, 13, 0, 8, 197, 24, 241, 213, 56, 176, 76, 11, 136, 20, 1, 12, 195, 161, 12, 14, 9, 13, 8, 197, 28, 243, 132,
+			40, 16, 13, 0, 10, 135, 22, 5, 18, 26, 9, 195, 179, 13, 21, 146, 11, 195, 182, 26, 2, 9, 26, 20, 15, 14, 19, 195, 161, 7,
+			195, 169, 18, 20, 13, 9, 198, 80, 149, 5, 44, 85, 0, 13, 0, 10, 199, 44, 20, 3, 76, 243, 14, 36, 13, 30, 7, 11, 5, 18,
+			195, 188, 12, 20, 49, 109, 52, 111, 55, 47, 23, 89, 115, 71, 108, 0, 13, 81, 115, 122, 195, 179, 98, 97, 32, 29, 7, 11, 5, 18,
+			195, 188, 12, 20, 49, 109, 52, 111, 55, 47, 23, 108, 107, 39, 88, 0, 13, 81, 97, 104, 104, 111, 122, 32, 10, 135, 11, 5, 18, 195,
+			188, 12, 20, 13, 14, 139, 22, 195, 161, 12, 20, 15, 26, 195, 161, 19, 20, 13, 10, 199, 48, 83, 69, 57, 65, 78, 36, 13, 10, 135,
+			11, 5, 18, 195, 188, 12, 20, 13, 25, 67, 96, 146, 64, 47, 37, 88, 109, 50, 49, 109, 47, 12, 118, 84, 109, 55, 0, 44, 42, 81,
+			101, 108, 32, 0, 22, 68, 20, 65, 9, 28, 109, 72, 12, 37, 81, 23, 91, 109, 65, 0, 13, 81, 115, 101, 109, 32, 11, 136, 9, 4,
+			195, 169, 26, 5, 20, 20, 13, 15, 204, 24, 145, 217, 20, 195, 69, 105, 65, 84, 21, 69, 0, 13, 7, 196, 88, 83, 142, 36, 13, 7,
+			196, 88, 147, 142, 36, 13, 12, 4, 95, 4, 16, 20, 15, 109, 81, 113, 89, 0, 0, 8, 197, 104, 18, 140, 36, 176, 13, 15, 140, 13,
+			5, 7, 11, 195, 188, 26, 4, 5, 14, 9, 5, 13, 47, 14, 14, 25, 9, 12, 22, 195, 161, 14, 15, 19, 19, 195, 161, 7, 67, 37,
+			55, 84, 114, 50, 39, 91, 12, 114, 81, 23, 89, 114, 65, 114, 52, 108, 0, 13, 81, 115, 122, 195, 161, 109, 195, 161, 114, 97, 32, 12,
+			201, 8, 148, 218, 80, 244, 207, 44, 21, 0, 13, 8, 197, 52, 83, 142, 20, 176, 13, 11, 136, 20, 195, 169, 13, 195, 161, 18, 1, 13,
+			12, 201, 52, 81, 207, 48, 64, 78, 84, 226, 192, 13, 8, 197, 32, 148, 218, 20, 208, 13, 15, 4, 95, 49, 48, 17, 47, 37, 88, 109,
+			72, 37, 49, 109, 0, 0, 32, 11, 13, 5, 7, 15, 12, 4, 8, 1, 20, 195, 179, 65, 109, 81, 39, 55, 72, 107, 108, 47, 115, 23,
+			108, 88, 0, 13, 81, 97, 122, 32, 13, 138, 195, 169, 18, 20, 5, 19, 195, 188, 12, 20, 13, 9, 198, 52, 17, 213, 44, 21, 0, 13,
+			5, 194, 21, 48, 72, 0, 39, 67, 56, 83, 64, 50, 109, 65, 23, 57, 109, 55, 109, 50, 47, 23, 91, 109, 65, 12, 37, 47, 0, 13,
+			82, 106, 101, 108, 101, 110, 116, 32, 115, 101, 109, 109, 105, 116, 32, 31, 71, 56, 147, 131, 76, 83, 133, 44, 50, 37, 50, 76, 109, 50,
+			109, 49, 23, 52, 115, 55, 108, 0, 13, 81, 114, 195, 179, 108, 97, 32, 12, 137, 195, 188, 12, 195, 169, 19, 195, 169, 14, 13, 47, 67,
+			56, 83, 64, 50, 109, 65, 23, 84, 39, 55, 47, 23, 47, 37, 89, 47, 109, 91, 12, 113, 81, 109, 91, 0, 13, 82, 118, 111, 108, 116,
+			32, 116, 105, 115, 122, 116, 101, 115, 115, 195, 169, 103, 101, 115, 32, 24, 67, 56, 83, 64, 50, 109, 65, 23, 55, 114, 47, 12, 108, 0,
+			13, 81, 108, 195, 161, 116, 116, 97, 32, 21, 67, 56, 83, 64, 50, 109, 65, 23, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32,
+			44, 67, 56, 83, 64, 50, 109, 65, 23, 65, 39, 88, 81, 108, 47, 12, 108, 23, 47, 39, 84, 114, 71, 12, 0, 13, 82, 109, 111, 122,
+			103, 97, 116, 116, 97, 32, 116, 111, 118, 195, 161, 98, 98, 32, 14, 203, 77, 161, 82, 88, 86, 133, 80, 82, 206, 20, 176, 13, 20, 67,
+			56, 83, 64, 50, 109, 65, 23, 55, 109, 89, 0, 13, 81, 108, 101, 115, 122, 32, 40, 67, 56, 83, 64, 50, 109, 65, 15, 65, 109, 52,
+			47, 109, 65, 15, 55, 109, 112, 52, 50, 37, 0, 13, 82, 109, 101, 114, 116, 101, 109, 32, 108, 101, 195, 173, 114, 110, 105, 32, 14, 139,
+			18, 195, 169, 19, 26, 5, 19, 195, 188, 12, 20, 13, 10, 135, 195, 169, 16, 195, 188, 12, 20, 13, 7, 195, 56, 83, 64, 102, 12, 8,
+			195, 56, 83, 64, 12, 23, 22, 15, 8, 95, 35, 45, 195, 161, 14, 1, 11, 114, 50, 108, 49, 0, 0, 14, 139, 20, 1, 18, 20, 1,
+			12, 13, 195, 161, 18, 1, 13, 14, 139, 11, 195, 169, 18, 5, 12, 13, 195, 169, 18, 5, 13, 0, 12, 201, 64, 243, 9, 80, 146, 213,
+			76, 18, 64, 13, 15, 140, 9, 11, 15, 14, 20, 195, 169, 13, 195, 161, 18, 1, 13, 12, 201, 77, 161, 82, 88, 86, 133, 81, 65, 76,
+			13, 0, 9, 134, 195, 188, 12, 197, 145, 20, 13, 12, 137, 20, 195, 161, 12, 3, 195, 161, 18, 1, 13, 9, 198, 80, 85, 19, 104, 85,
+			20, 13, 0, 47, 67, 88, 85, 20, 84, 109, 47, 12, 23, 108, 23, 47, 114, 34, 79, 108, 55, 114, 91, 39, 49, 71, 108, 50, 0, 13,
+			82, 97, 32, 116, 195, 161, 114, 103, 121, 97, 108, 195, 161, 115, 111, 107, 98, 97, 110, 32, 8, 133, 14, 25, 195, 161, 18, 13, 6, 195,
+			88, 85, 20, 13, 8, 133, 14, 25, 195, 161, 18, 20, 14, 4, 95, 49, 48, 15, 47, 37, 88, 109, 72, 37, 49, 0, 0, 17, 142, 6,
+			5, 10, 12, 5, 19, 26, 20, 195, 169, 19, 195, 169, 14, 13, 17, 142, 22, 9, 19, 5, 12, 11, 5, 4, 195, 169, 19, 195, 169, 14,
+			13, 18, 143, 9, 14, 20, 195, 169, 26, 13, 195, 169, 14, 25, 5, 11, 2, 5, 13, 0, 17, 142, 22, 15, 14, 21, 12, 8, 1, 20,
+			14, 195, 161, 14, 1, 11, 13, 12, 137, 22, 9, 12, 195, 161, 7, 195, 161, 20, 13, 12, 201, 44, 145, 133, 41, 65, 84, 80, 83, 64,
+			13, 13, 138, 12, 195, 161, 20, 19, 26, 1, 14, 1, 11, 13, 17, 10, 95, 35, 45, 9, 11, 195, 169, 14, 5, 11, 113, 50, 109, 49,
+			0, 0, 29, 10, 15, 12, 3, 19, 195, 179, 2, 2, 1, 20, 39, 55, 76, 115, 71, 12, 108, 47, 23, 37, 91, 0, 13, 81, 105, 115,
+			32, 20, 145, 13, 5, 7, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 18, 1, 13, 13, 138, 20, 1, 7, 19, 195, 161, 7,
+			195, 161, 20, 13, 9, 198, 52, 243, 132, 80, 19, 64, 13, 0, 14, 139, 11, 18, 9, 20, 9, 11, 195, 161, 11, 1, 20, 13, 9, 198,
+			24, 18, 193, 17, 64, 77, 13, 10, 135, 11, 195, 169, 16, 5, 9, 20, 13, 0, 14, 139, 195, 188, 26, 5, 13, 5, 12, 20, 5, 20,
+			9, 13, 23, 67, 61, 36, 129, 39, 52, 52, 108, 10, 6, 15, 108, 55, 114, 0, 13, 81, 97, 108, 195, 161, 32, 16, 141, 1, 12, 11,
+			15, 20, 13, 195, 161, 14, 25, 14, 1, 11, 13, 9, 3, 95, 35, 57, 47, 108, 71, 0, 12, 4, 95, 20, 12, 4, 47, 37, 55, 72,
+			109, 0, 0, 15, 140, 195, 186, 10, 18, 1, 195, 173, 18, 195, 161, 19, 1, 13, 0, 0, 17, 142, 22, 195, 169, 12, 5, 13, 195, 169,
+			14, 25, 5, 26, 14, 9, 13, 8, 133, 15, 11, 195, 161, 14, 13, 13, 138, 8, 1, 20, 195, 161, 18, 15, 26, 14, 9, 13, 11, 67,
+			4, 197, 0, 108, 55, 47, 0, 42, 42, 0, 23, 68, 76, 147, 131, 76, 91, 37, 50, 76, 15, 81, 39, 50, 72, 0, 13, 81, 103, 111,
+			110, 100, 32, 37, 68, 76, 147, 131, 76, 91, 37, 50, 76, 23, 109, 79, 12, 109, 47, 113, 52, 47, 113, 91, 0, 13, 81, 101, 103, 121,
+			101, 116, 195, 169, 114, 116, 195, 169, 115, 32, 11, 136, 19, 26, 15, 12, 7, 195, 161, 12, 13, 14, 139, 8, 5, 12, 25, 5, 26, 8,
+			5, 20, 197, 145, 13, 7, 196, 76, 147, 131, 76, 13, 7, 132, 197, 145, 18, 20, 13, 7, 132, 195, 161, 18, 20, 13, 7, 196, 72, 244,
+			211, 104, 13, 0, 19, 144, 11, 195, 182, 18, 2, 5, 10, 195, 161, 20, 19, 26, 195, 161, 19, 1, 13, 15, 140, 11, 9, 20, 195, 182,
+			12, 20, 8, 5, 20, 197, 145, 13, 0, 11, 136, 3, 195, 173, 13, 5, 11, 5, 14, 13, 9, 134, 7, 25, 195, 186, 10, 20, 13, 5,
+			194, 21, 64, 13, 0, 21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 109, 0, 44, 29, 81, 109, 32, 22, 67, 17, 97,
+			0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 116, 0, 44, 29, 42, 81, 109, 32, 22, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100,
+			195, 169, 100, 0, 44, 29, 42, 81, 100, 32, 21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 100, 0, 44, 29, 81, 100,
+			32, 21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 110, 0, 44, 29, 81, 110, 32, 22, 67, 17, 97, 0, 100, 195, 169,
+			118, 195, 169, 100, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 21, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 107, 0,
+			44, 29, 81, 107, 32, 22, 67, 17, 97, 0, 100, 195, 169, 118, 195, 169, 100, 195, 169, 107, 0, 44, 29, 42, 81, 107, 32, 43, 8, 8,
+			195, 188, 22, 5, 12, 25, 11, 107, 111, 84, 109, 57, 49, 10, 6, 15, 114, 47, 65, 113, 52, 118, 57, 117, 0, 13, 81, 195, 161, 116,
+			109, 195, 169, 114, 197, 145, 106, 197, 177, 32, 16, 141, 195, 161, 12, 12, 1, 13, 20, 9, 20, 11, 195, 161, 18, 13, 0, 16, 141, 20,
+			5, 18, 22, 5, 26, 8, 5, 20, 195, 188, 14, 11, 13, 18, 143, 8, 15, 26, 26, 195, 161, 6, 195, 169, 18, 8, 5, 20, 197, 145,
+			13, 11, 136, 9, 18, 195, 161, 14, 25, 21, 12, 13, 0, 0, 9, 198, 40, 241, 207, 77, 83, 20, 13, 13, 202, 4, 194, 193, 48, 208,
+			90, 104, 19, 129, 44, 13, 13, 138, 10, 195, 182, 22, 197, 145, 18, 197, 145, 12, 13, 14, 5, 95, 50, 77, 49, 5, 49, 113, 47, 109,
+			88, 52, 0, 0, 9, 134, 6, 197, 177, 26, 14, 9, 13, 0, 0, 6, 195, 36, 112, 90, 13, 0, 12, 137, 5, 18, 197, 145, 19, 195,
+			173, 20, 9, 13, 12, 137, 11, 195, 182, 26, 195, 182, 12, 14, 9, 13, 16, 141, 20, 1, 14, 20, 5, 19, 20, 195, 188, 12, 5, 20,
+			5, 13, 12, 137, 195, 161, 20, 14, 195, 169, 26, 14, 9, 13, 11, 5, 95, 48, 77, 49, 5, 109, 88, 52, 0, 0, 24, 67, 20, 118,
+			64, 109, 79, 23, 49, 37, 91, 12, 109, 71, 0, 13, 81, 107, 105, 115, 101, 98, 98, 32, 28, 67, 20, 118, 64, 109, 79, 10, 6, 15,
+			48, 52, 115, 71, 114, 47, 0, 13, 81, 112, 114, 195, 179, 98, 195, 161, 116, 32, 35, 67, 20, 118, 64, 109, 79, 10, 6, 15, 83, 39,
+			81, 108, 72, 114, 91, 40, 50, 49, 0, 13, 81, 102, 111, 103, 97, 100, 195, 161, 115, 117, 110, 107, 32, 37, 67, 20, 118, 64, 109, 79,
+			23, 107, 108, 57, 55, 113, 49, 47, 108, 55, 108, 50, 47, 0, 13, 81, 104, 97, 106, 108, 195, 169, 107, 116, 97, 108, 97, 110, 116, 32,
+			27, 67, 20, 118, 64, 109, 79, 23, 83, 115, 52, 40, 65, 39, 50, 0, 13, 81, 102, 195, 179, 114, 117, 109, 111, 110, 32, 9, 198, 52,
+			147, 132, 20, 226, 201, 13, 23, 67, 20, 118, 64, 109, 79, 10, 6, 15, 72, 37, 114, 49, 0, 13, 81, 100, 105, 195, 161, 107, 32, 25,
+			67, 20, 118, 64, 109, 79, 10, 6, 15, 83, 113, 52, 83, 37, 0, 13, 81, 102, 195, 169, 114, 102, 105, 32, 32, 67, 20, 118, 64, 109,
+			79, 23, 83, 109, 55, 65, 113, 52, 113, 91, 47, 0, 13, 81, 102, 101, 108, 109, 195, 169, 114, 195, 169, 115, 116, 32, 29, 67, 20, 118,
+			64, 109, 79, 23, 89, 39, 83, 47, 84, 109, 52, 47, 0, 13, 81, 115, 122, 111, 102, 116, 118, 101, 114, 116, 32, 38, 67, 20, 118, 64,
+			109, 79, 23, 112, 52, 114, 91, 47, 40, 72, 108, 47, 55, 108, 50, 0, 13, 81, 195, 173, 114, 195, 161, 115, 116, 117, 100, 97, 116, 108,
+			97, 110, 32, 22, 67, 20, 118, 64, 109, 79, 23, 37, 72, 109, 37, 81, 0, 13, 81, 105, 100, 101, 105, 103, 32, 23, 67, 20, 118, 64,
+			109, 79, 23, 81, 113, 48, 109, 47, 0, 13, 81, 103, 195, 169, 112, 101, 116, 32, 33, 67, 20, 118, 64, 109, 79, 23, 89, 108, 71, 108,
+			72, 50, 108, 48, 52, 108, 0, 13, 81, 115, 122, 97, 98, 97, 100, 110, 97, 112, 114, 97, 32, 10, 135, 11, 195, 169, 16, 5, 19, 20,
+			13, 6, 195, 20, 118, 64, 13, 0, 49, 12, 19, 26, 5, 18, 26, 197, 145, 4, 195, 169, 19, 20, 89, 109, 52, 88, 118, 72, 113, 91,
+			47, 23, 49, 109, 55, 12, 23, 49, 110, 47, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32, 107, 195, 182, 116, 110, 105, 32, 11, 200, 65,
+			35, 198, 21, 52, 218, 61, 32, 13, 19, 144, 9, 14, 6, 15, 18, 13, 195, 161, 3, 9, 195, 179, 195, 169, 18, 20, 13, 15, 140, 19,
+			26, 5, 18, 26, 197, 145, 4, 195, 169, 19, 20, 13, 7, 196, 4, 227, 129, 44, 13, 0, 8, 197, 81, 81, 21, 56, 176, 76, 30, 6,
+			6, 15, 12, 25, 195, 179, 83, 39, 57, 115, 15, 84, 109, 52, 91, 109, 67, 0, 13, 81, 118, 101, 114, 115, 101, 110, 121, 32, 13, 138,
+			20, 195, 161, 18, 19, 1, 19, 195, 161, 7, 13, 8, 197, 48, 18, 212, 4, 176, 13, 0, 9, 198, 52, 147, 132, 20, 118, 64, 13, 42,
+			10, 13, 5, 7, 15, 12, 4, 195, 161, 19, 20, 65, 109, 81, 39, 55, 72, 114, 91, 47, 23, 113, 48, 112, 47, 23, 71, 109, 0, 13,
+			82, 195, 169, 112, 195, 173, 116, 32, 98, 101, 32, 23, 70, 32, 83, 25, 104, 85, 0, 107, 109, 57, 88, 109, 47, 23, 108, 88, 0, 13,
+			81, 97, 122, 32, 9, 198, 44, 244, 146, 20, 181, 0, 13, 9, 198, 32, 83, 25, 104, 85, 0, 13, 13, 138, 13, 5, 7, 15, 12, 4,
+			195, 161, 19, 20, 13, 16, 67, 61, 33, 139, 39, 109, 51, 109, 83, 49, 114, 0, 17, 42, 42, 0, 29, 7, 5, 12, 13, 195, 186, 12,
+			20, 109, 55, 65, 116, 55, 47, 23, 113, 84, 109, 49, 0, 13, 81, 195, 169, 118, 101, 107, 32, 10, 135, 18, 5, 16, 195, 188, 12, 20,
+			13, 8, 133, 7, 25, 197, 145, 26, 13, 10, 135, 14, 195, 169, 26, 5, 20, 20, 13, 0, 11, 136, 195, 161, 20, 195, 161, 12, 12, 20,
+			13, 11, 136, 22, 195, 169, 7, 26, 5, 20, 20, 13, 11, 136, 22, 195, 169, 7, 26, 5, 20, 20, 13, 15, 140, 5, 12, 4, 15, 2,
+			195, 161, 12, 195, 161, 19, 20, 13, 7, 196, 80, 82, 5, 72, 13, 10, 135, 13, 21, 14, 11, 195, 161, 13, 13, 7, 196, 16, 240, 142,
+			36, 13, 18, 5, 95, 50, 77, 49, 15, 49, 113, 47, 109, 88, 52, 109, 72, 37, 49, 0, 0, 27, 8, 20, 195, 182, 12, 20, 19, 5,
+			13, 47, 110, 55, 76, 109, 65, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 8, 197, 80, 84, 150, 20, 176, 13, 12, 137, 16, 18,
+			15, 4, 21, 11, 195, 161, 12, 13, 8, 197, 52, 83, 142, 36, 80, 13, 12, 201, 77, 160, 75, 20, 208, 133, 72, 82, 64, 13, 8, 133,
+			13, 195, 186, 12, 20, 13, 0, 14, 66, 21, 80, 101, 117, 110, 0, 44, 29, 42, 81, 110, 32, 12, 137, 3, 19, 9, 18, 11, 195, 169,
+			18, 5, 13, 22, 147, 19, 26, 15, 6, 20, 22, 5, 18, 6, 5, 10, 12, 5, 19, 26, 20, 197, 145, 11, 13, 9, 198, 80, 20, 148,
+			84, 226, 192, 13, 0, 18, 143, 2, 5, 18, 5, 14, 4, 5, 26, 11, 5, 4, 195, 169, 19, 20, 13, 9, 134, 2, 195, 173, 26, 14,
+			1, 13, 52, 10, 13, 5, 7, 15, 12, 4, 195, 161, 19, 9, 65, 109, 81, 39, 55, 72, 114, 91, 37, 23, 55, 109, 107, 109, 47, 118,
+			91, 113, 81, 12, 109, 55, 0, 13, 81, 108, 101, 104, 101, 116, 197, 145, 115, 195, 169, 103, 103, 101, 108, 32, 9, 134, 10, 195, 179, 11,
+			1, 9, 13, 10, 135, 12, 195, 169, 16, 5, 20, 20, 13, 0, 33, 11, 22, 1, 12, 195, 179, 19, 195, 173, 20, 10, 1, 84, 108, 55,
+			115, 91, 112, 80, 12, 108, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 19, 144, 8, 15, 26, 26, 195, 161, 10, 195, 161, 18, 21,
+			12, 195, 161, 19, 20, 13, 40, 8, 13, 9, 5, 12, 197, 145, 20, 20, 65, 37, 109, 55, 118, 47, 12, 23, 83, 39, 57, 47, 108, 47,
+			50, 114, 0, 13, 81, 102, 111, 108, 121, 116, 97, 116, 110, 195, 161, 32, 11, 200, 44, 146, 133, 48, 83, 148, 36, 176, 13, 14, 139, 20,
+			1, 18, 20, 195, 161, 19, 195, 161, 18, 1, 13, 0, 28, 8, 20, 1, 12, 195, 161, 12, 10, 1, 47, 108, 55, 114, 55, 57, 108, 23,
+			65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 15, 140, 9, 14, 4, 21, 12, 195, 161, 19, 195, 161, 18, 1, 13, 30, 9, 11, 195, 182,
+			22, 5, 20, 5, 20, 20, 49, 110, 84, 109, 47, 109, 47, 12, 10, 6, 15, 109, 55, 0, 13, 81, 101, 108, 32, 12, 137, 11, 195, 182,
+			22, 5, 20, 5, 20, 20, 13, 12, 137, 195, 169, 18, 9, 14, 20, 5, 20, 20, 13, 0, 20, 5, 195, 161, 6, 195, 161, 195, 161, 102,
+			195, 161, 116, 0, 44, 29, 42, 81, 116, 32, 13, 138, 4, 195, 169, 12, 5, 12, 197, 145, 20, 20, 22, 0, 39, 7, 13, 21, 14, 11,
+			195, 161, 20, 65, 40, 50, 49, 114, 47, 10, 6, 15, 84, 113, 81, 109, 89, 47, 109, 49, 0, 13, 81, 118, 195, 169, 103, 101, 122, 116,
+			101, 107, 32, 26, 7, 13, 21, 14, 11, 195, 161, 20, 65, 40, 50, 49, 114, 47, 23, 37, 47, 12, 0, 13, 81, 105, 116, 116, 32, 14,
+			139, 11, 195, 173, 22, 195, 188, 12, 18, 197, 145, 12, 13, 10, 135, 20, 9, 20, 11, 195, 161, 20, 13, 10, 135, 13, 21, 14, 11, 195,
+			161, 20, 13, 12, 137, 16, 195, 169, 14, 20, 5, 11, 5, 14, 22, 0, 35, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 89, 114,
+			65, 112, 47, 108, 50, 37, 0, 13, 81, 115, 122, 195, 161, 109, 195, 173, 116, 97, 110, 105, 32, 38, 68, 48, 82, 5, 80, 55, 109, 107,
+			109, 47, 23, 108, 49, 108, 72, 114, 57, 39, 88, 50, 37, 0, 13, 81, 97, 107, 97, 100, 195, 161, 108, 121, 111, 122, 110, 105, 32, 18,
+			143, 6, 5, 14, 14, 20, 1, 18, 20, 195, 161, 19, 195, 161, 18, 1, 13, 25, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 113,
+			52, 50, 37, 0, 13, 81, 195, 169, 114, 110, 105, 32, 41, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 47, 40, 72, 50,
+			37, 10, 6, 15, 51, 115, 55, 108, 0, 13, 82, 116, 117, 100, 110, 105, 32, 114, 195, 179, 108, 97, 32, 33, 68, 48, 82, 5, 80, 55,
+			109, 107, 109, 47, 10, 6, 15, 37, 91, 65, 109, 52, 118, 91, 0, 13, 81, 105, 115, 109, 101, 114, 197, 145, 115, 32, 28, 68, 48, 82,
+			5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 84, 109, 50, 12, 37, 0, 13, 81, 118, 101, 110, 110, 105, 32, 34, 68, 48, 82, 5, 80,
+			55, 109, 107, 109, 47, 10, 6, 15, 65, 108, 34, 49, 39, 55, 50, 37, 0, 13, 81, 109, 97, 114, 107, 111, 108, 110, 105, 32, 36, 68,
+			48, 82, 5, 80, 55, 109, 107, 109, 47, 10, 6, 15, 57, 109, 55, 109, 50, 47, 109, 50, 37, 0, 13, 81, 106, 101, 108, 101, 110, 116,
+			101, 110, 105, 32, 26, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 109, 88, 88, 109, 55, 0, 13, 81, 101, 122, 122, 101, 108, 32,
+			34, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 107, 108, 89, 50, 114, 55, 50, 37, 0, 13, 81, 104, 97, 115, 122, 110, 195, 161,
+			108, 110, 105, 32, 36, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 108, 88, 10, 6, 15, 111, 79, 71, 109, 50, 0, 13, 82, 97,
+			122, 32, 195, 188, 103, 121, 98, 101, 110, 32, 27, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 50, 113, 88, 50, 37, 0, 13, 81,
+			110, 195, 169, 122, 110, 105, 32, 32, 68, 48, 82, 5, 80, 55, 109, 107, 109, 47, 23, 76, 108, 48, 108, 72, 113, 49, 0, 13, 81, 99,
+			115, 97, 112, 97, 100, 195, 169, 107, 32, 7, 196, 80, 82, 5, 80, 13, 11, 136, 4, 195, 173, 10, 1, 11, 1, 20, 13, 7, 196, 88,
+			83, 5, 16, 13, 7, 196, 48, 82, 5, 80, 13, 14, 139, 195, 169, 10, 19, 26, 1, 11, 195, 161, 18, 1, 22, 0, 11, 136, 20, 1,
+			18, 20, 195, 161, 19, 1, 13, 0, 39, 9, 15, 12, 22, 1, 19, 195, 161, 19, 1, 39, 55, 84, 108, 91, 114, 91, 108, 10, 6, 15,
+			49, 110, 88, 71, 109, 50, 0, 13, 81, 107, 195, 182, 122, 98, 101, 110, 32, 14, 139, 6, 15, 18, 4, 195, 173, 20, 19, 195, 161, 11,
+			13, 13, 138, 20, 1, 14, 195, 161, 3, 19, 195, 161, 20, 13, 0, 10, 135, 20, 1, 14, 25, 195, 161, 20, 13, 14, 139, 20, 5, 18,
+			13, 195, 169, 11, 5, 11, 5, 20, 13, 5, 194, 4, 224, 72, 15, 66, 28, 32, 81, 37, 81, 108, 71, 114, 57, 47, 0, 42, 42, 0,
+			15, 140, 13, 195, 161, 19, 15, 4, 16, 5, 18, 3, 5, 20, 13, 12, 137, 5, 19, 5, 4, 195, 169, 11, 5, 19, 13, 6, 195, 72,
+			82, 148, 13, 6, 195, 24, 80, 128, 20, 0, 46, 13, 19, 26, 195, 161, 26, 1, 12, 195, 169, 11, 195, 161, 20, 89, 114, 88, 108, 55,
+			113, 49, 114, 47, 23, 47, 109, 89, 37, 49, 23, 49, 37, 0, 13, 82, 116, 101, 115, 122, 105, 107, 32, 107, 105, 32, 16, 141, 19, 26,
+			195, 161, 26, 1, 12, 195, 169, 11, 195, 161, 20, 13, 12, 137, 12, 195, 169, 22, 197, 145, 11, 5, 20, 13, 11, 136, 195, 169, 18, 26,
+			195, 169, 19, 5, 13, 7, 196, 20, 130, 5, 104, 13, 16, 141, 19, 26, 195, 161, 26, 1, 12, 195, 169, 11, 195, 161, 20, 13, 7, 196,
+			12, 83, 12, 4, 13, 15, 140, 2, 5, 14, 25, 195, 186, 10, 20, 195, 161, 19, 1, 13, 0, 12, 137, 6, 5, 12, 5, 12, 197, 145,
+			19, 5, 13, 24, 5, 11, 195, 182, 26, 20, 49, 110, 89, 47, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 9, 198, 61,
+			54, 148, 61, 163, 137, 13, 17, 142, 11, 195, 169, 16, 22, 9, 19, 5, 12, 197, 145, 11, 5, 20, 13, 11, 136, 20, 18, 195, 161, 7,
+			195, 161, 18, 13, 9, 134, 22, 195, 169, 12, 5, 13, 13, 9, 133, 11, 195, 182, 26, 20, 13, 22, 8, 133, 7, 195, 161, 26, 20, 13,
+			0, 14, 139, 195, 182, 19, 19, 26, 5, 7, 5, 11, 5, 20, 13, 18, 143, 11, 195, 169, 19, 26, 195, 188, 12, 195, 169, 11, 5, 11,
+			5, 20, 13, 14, 139, 22, 195, 161, 12, 1, 19, 26, 15, 11, 1, 20, 13, 14, 139, 195, 169, 18, 20, 195, 169, 11, 5, 11, 5, 20,
+			13, 6, 195, 32, 144, 129, 13, 11, 136, 195, 161, 16, 18, 9, 12, 9, 19, 20, 0, 15, 140, 8, 1, 12, 12, 7, 1, 20, 195, 179,
+			11, 1, 20, 13, 55, 12, 19, 26, 1, 14, 11, 3, 9, 195, 179, 11, 1, 20, 89, 108, 50, 49, 119, 37, 115, 49, 108, 47, 15, 108,
+			55, 49, 108, 55, 65, 108, 88, 88, 108, 50, 108, 49, 0, 13, 81, 97, 108, 107, 97, 108, 109, 97, 122, 122, 97, 110, 97, 107, 32, 14,
+			139, 7, 25, 197, 145, 26, 11, 195, 182, 4, 14, 9, 13, 10, 199, 72, 83, 132, 77, 161, 82, 20, 13, 15, 140, 8, 5, 12, 25, 19,
+			195, 169, 7, 5, 11, 5, 20, 13, 11, 67, 80, 16, 128, 47, 108, 71, 0, 42, 42, 0, 20, 145, 16, 1, 18, 1, 14, 3, 19, 14,
+			15, 11, 19, 195, 161, 7, 195, 161, 20, 13, 7, 196, 4, 66, 143, 56, 13, 36, 68, 24, 18, 148, 4, 83, 108, 57, 47, 108, 23, 57,
+			108, 84, 112, 47, 114, 91, 39, 49, 0, 13, 81, 106, 97, 118, 195, 173, 116, 195, 161, 115, 111, 107, 32, 11, 200, 8, 150, 129, 48, 243,
+			77, 4, 192, 13, 12, 137, 195, 169, 18, 20, 5, 20, 20, 5, 13, 13, 7, 196, 13, 49, 82, 20, 13, 6, 195, 80, 19, 139, 13, 7,
+			196, 72, 243, 131, 76, 13, 0, 11, 136, 14, 195, 169, 26, 14, 195, 169, 11, 13, 13, 138, 19, 26, 195, 188, 12, 5, 20, 20, 5, 13,
+			13, 9, 134, 195, 169, 18, 20, 5, 13, 13, 17, 142, 14, 5, 8, 195, 169, 26, 19, 195, 169, 7, 5, 11, 5, 20, 13, 0, 22, 66,
+			25, 64, 83, 39, 52, 37, 50, 47, 12, 115, 55, 0, 44, 13, 81, 116, 195, 179, 108, 32, 21, 66, 25, 64, 83, 39, 52, 37, 50, 47,
+			50, 108, 49, 0, 44, 13, 81, 110, 97, 107, 32, 19, 66, 25, 64, 83, 39, 52, 37, 50, 47, 71, 108, 0, 44, 13, 81, 98, 97, 32,
+			19, 66, 25, 64, 83, 39, 52, 37, 50, 47, 39, 47, 0, 44, 13, 81, 111, 116, 32, 21, 66, 25, 64, 83, 39, 52, 37, 50, 47, 12,
+			108, 55, 0, 44, 13, 81, 116, 97, 108, 32, 12, 66, 25, 64, 83, 39, 52, 37, 50, 47, 0, 13, 31, 6, 5, 19, 195, 169, 10, 20,
+			109, 91, 113, 57, 47, 10, 6, 15, 55, 114, 47, 39, 49, 0, 13, 81, 108, 195, 161, 116, 111, 107, 32, 0, 24, 6, 195, 182, 12, 20,
+			5, 11, 110, 55, 47, 109, 49, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 11, 136, 3, 195, 173, 13, 5, 26, 20, 5, 13, 10,
+			199, 88, 19, 1, 44, 147, 133, 44, 13, 9, 134, 195, 169, 18, 4, 5, 11, 13, 0, 8, 133, 4, 195, 169, 12, 9, 13, 11, 200, 77,
+			162, 210, 37, 5, 2, 20, 224, 13, 16, 141, 20, 5, 12, 5, 16, 195, 173, 20, 5, 20, 20, 5, 13, 13, 7, 196, 4, 67, 137, 4,
+			13, 0, 34, 10, 6, 5, 12, 20, 195, 169, 20, 5, 12, 5, 83, 109, 55, 47, 113, 47, 109, 55, 109, 23, 84, 39, 55, 47, 0, 13,
+			81, 118, 111, 108, 116, 32, 8, 197, 36, 225, 21, 49, 64, 13, 6, 195, 77, 163, 210, 72, 0, 22, 147, 11, 195, 182, 20, 5, 12, 5,
+			26, 5, 20, 20, 19, 195, 169, 7, 5, 11, 5, 20, 13, 12, 137, 20, 195, 161, 13, 1, 4, 20, 1, 11, 13, 37, 5, 5, 12, 195,
+			169, 7, 109, 55, 113, 81, 15, 83, 37, 79, 109, 55, 65, 109, 91, 109, 50, 0, 13, 81, 102, 105, 103, 121, 101, 108, 109, 101, 115, 101,
+			110, 32, 8, 133, 5, 12, 195, 169, 7, 13, 9, 134, 22, 195, 169, 12, 5, 4, 13, 0, 13, 138, 19, 26, 195, 188, 12, 5, 20, 20,
+			5, 11, 13, 12, 201, 65, 32, 75, 80, 146, 213, 76, 16, 130, 13, 0, 17, 67, 13, 48, 75, 76, 108, 49, 23, 49, 37, 0, 13, 81,
+			107, 105, 32, 31, 67, 13, 48, 75, 76, 108, 49, 10, 6, 15, 65, 109, 81, 47, 109, 50, 12, 37, 0, 13, 81, 109, 101, 103, 116, 101,
+			110, 110, 105, 32, 18, 143, 13, 15, 18, 6, 15, 14, 4, 195, 173, 18, 15, 26, 20, 1, 11, 13, 27, 67, 13, 48, 75, 76, 108, 49,
+			23, 49, 113, 91, 118, 71, 12, 0, 13, 81, 107, 195, 169, 115, 197, 145, 98, 98, 32, 23, 67, 13, 48, 75, 76, 108, 49, 23, 108, 49,
+			12, 39, 52, 0, 13, 81, 97, 107, 107, 111, 114, 32, 23, 67, 13, 48, 75, 76, 108, 49, 23, 55, 109, 107, 109, 47, 0, 13, 81, 108,
+			101, 104, 101, 116, 32, 7, 196, 64, 84, 131, 20, 13, 12, 137, 19, 5, 7, 195, 173, 20, 5, 14, 9, 13, 10, 135, 195, 186, 10, 19,
+			195, 161, 7, 13, 16, 141, 8, 1, 14, 7, 19, 195, 186, 12, 25, 15, 26, 20, 1, 13, 10, 135, 6, 1, 11, 1, 4, 195, 179, 13,
+			14, 139, 9, 14, 4, 195, 173, 20, 15, 20, 20, 1, 11, 13, 6, 195, 13, 48, 75, 13, 0, 9, 134, 2, 195, 173, 26, 14, 9, 13,
+			8, 197, 52, 240, 137, 49, 64, 13, 6, 195, 13, 48, 74, 13, 0, 14, 139, 20, 1, 11, 1, 18, 195, 173, 20, 1, 14, 9, 13, 16,
+			141, 11, 195, 169, 19, 26, 195, 173, 20, 5, 20, 20, 5, 11, 13, 16, 141, 19, 26, 195, 161, 13, 195, 173, 20, 15, 20, 20, 1, 11,
+			13, 19, 66, 32, 16, 107, 108, 23, 49, 109, 55, 12, 0, 13, 81, 107, 101, 108, 108, 32, 14, 139, 11, 195, 169, 19, 26, 195, 173, 20,
+			5, 14, 9, 13, 9, 134, 195, 169, 18, 20, 5, 4, 13, 6, 194, 32, 16, 72, 8, 0, 20, 67, 24, 83, 0, 83, 109, 55, 10, 6,
+			15, 52, 114, 0, 13, 81, 114, 195, 161, 32, 30, 67, 24, 83, 0, 83, 109, 55, 23, 108, 6, 15, 91, 39, 52, 71, 108, 50, 0, 13,
+			82, 97, 32, 115, 111, 114, 98, 97, 110, 32, 15, 140, 5, 12, 8, 195, 161, 18, 195, 173, 20, 1, 14, 9, 13, 30, 67, 24, 83, 0,
+			83, 109, 55, 23, 108, 23, 55, 109, 84, 109, 81, 118, 0, 13, 82, 97, 32, 108, 101, 118, 101, 103, 197, 145, 32, 15, 140, 2, 9, 26,
+			20, 15, 19, 195, 173, 20, 1, 14, 9, 13, 6, 195, 32, 19, 0, 13, 6, 195, 24, 83, 0, 13, 0, 23, 68, 80, 84, 218, 36, 47,
+			109, 89, 37, 23, 65, 108, 57, 72, 0, 13, 81, 109, 97, 106, 100, 32, 46, 12, 19, 26, 195, 161, 26, 1, 12, 195, 169, 11, 15, 20,
+			89, 114, 88, 108, 55, 113, 49, 39, 47, 23, 84, 109, 89, 112, 47, 109, 50, 109, 0, 13, 81, 118, 101, 115, 122, 195, 173, 116, 101, 110,
+			101, 32, 9, 198, 77, 163, 205, 8, 21, 0, 20, 0, 8, 197, 52, 243, 132, 60, 176, 13, 8, 197, 28, 243, 132, 60, 176, 13, 6, 195,
+			32, 21, 0, 13, 6, 195, 24, 80, 146, 20, 0, 33, 74, 80, 20, 1, 77, 165, 1, 48, 21, 15, 16, 47, 108, 48, 108, 89, 47, 108,
+			55, 108, 47, 39, 72, 23, 37, 91, 0, 13, 81, 105, 115, 32, 18, 143, 11, 195, 169, 14, 25, 19, 26, 5, 18, 195, 173, 20, 5, 14,
+			9, 13, 12, 137, 16, 195, 169, 14, 20, 5, 11, 9, 7, 22, 11, 4, 195, 161, 19, 26, 114, 89, 0, 42, 42, 7, 132, 197, 145, 19,
+			26, 20, 7, 132, 195, 161, 16, 18, 20, 0, 10, 135, 6, 5, 11, 195, 188, 4, 20, 13, 10, 199, 88, 84, 218, 80, 85, 20, 20, 13,
+			11, 136, 22, 195, 161, 12, 20, 1, 14, 1, 13, 36, 71, 88, 84, 218, 80, 85, 20, 20, 84, 109, 89, 47, 109, 47, 12, 109, 23, 113,
+			55, 109, 47, 113, 47, 0, 13, 81, 195, 169, 108, 101, 116, 195, 169, 116, 32, 10, 135, 4, 5, 18, 195, 188, 12, 20, 13, 10, 135, 13,
+			5, 18, 195, 188, 12, 20, 13, 6, 195, 13, 48, 80, 13, 9, 134, 20, 197, 177, 14, 9, 11, 13, 11, 67, 80, 18, 128, 47, 108, 57,
+			0, 42, 42, 0, 10, 135, 195, 182, 22, 5, 26, 9, 11, 13, 20, 145, 195, 182, 19, 19, 26, 16, 15, 14, 20, 15, 19, 195, 173, 20,
+			1, 14, 9, 13, 19, 68, 56, 147, 131, 76, 50, 37, 50, 76, 23, 37, 91, 0, 13, 81, 105, 115, 32, 14, 139, 195, 161, 12, 20, 1,
+			12, 195, 161, 14, 15, 19, 13, 9, 134, 21, 20, 3, 195, 161, 14, 13, 7, 196, 76, 244, 130, 4, 13, 7, 196, 56, 147, 131, 76, 13,
+			0, 22, 69, 20, 209, 76, 80, 80, 109, 65, 109, 55, 47, 109, 23, 49, 37, 0, 13, 81, 107, 105, 32, 51, 73, 77, 161, 82, 88, 86,
+			133, 80, 82, 192, 89, 109, 52, 84, 109, 88, 109, 47, 109, 49, 23, 48, 114, 57, 114, 88, 107, 108, 47, 50, 108, 49, 0, 13, 81, 112,
+			195, 161, 108, 121, 195, 161, 122, 104, 97, 116, 110, 97, 107, 32, 15, 140, 19, 26, 195, 161, 26, 1, 12, 195, 169, 11, 15, 19, 13, 12,
+			137, 11, 9, 4, 5, 18, 195, 188, 12, 20, 13, 8, 197, 60, 193, 1, 56, 144, 13, 9, 134, 14, 195, 169, 26, 22, 5, 13, 8, 197,
+			60, 193, 1, 56, 144, 13, 6, 195, 24, 83, 142, 13, 8, 133, 3, 195, 169, 12, 20, 13, 0, 7, 132, 6, 9, 195, 186, 13, 15, 5,
+			95, 48, 77, 49, 15, 109, 88, 52, 109, 72, 37, 49, 0, 0, 6, 195, 72, 83, 132, 13, 10, 135, 13, 5, 19, 195, 169, 12, 20, 13,
+			15, 140, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 18, 1, 13, 10, 135, 13, 5, 19, 195, 169, 12, 20, 13, 6, 195, 52, 243, 132,
+			13, 14, 67, 29, 51, 64, 81, 113, 109, 91, 109, 65, 0, 42, 42, 0, 11, 136, 11, 195, 188, 20, 25, 195, 188, 20, 13, 14, 139, 11,
+			195, 182, 12, 20, 195, 182, 26, 20, 5, 11, 13, 7, 196, 88, 83, 5, 52, 13, 7, 196, 29, 32, 77, 52, 13, 0, 25, 67, 25, 85,
+			0, 83, 40, 47, 10, 6, 15, 52, 108, 57, 47, 108, 0, 13, 81, 114, 97, 106, 116, 97, 32, 6, 195, 25, 85, 0, 13, 0, 40, 70,
+			29, 144, 75, 72, 19, 128, 79, 108, 49, 52, 108, 50, 23, 55, 109, 89, 23, 113, 55, 113, 50, 49, 0, 13, 82, 108, 101, 115, 122, 32,
+			195, 169, 108, 195, 169, 110, 107, 32, 12, 137, 3, 19, 1, 16, 1, 4, 195, 169, 11, 13, 13, 138, 22, 1, 12, 1, 13, 9, 18, 197,
+			145, 12, 13, 9, 134, 195, 169, 16, 195, 188, 12, 13, 0, 17, 142, 2, 9, 26, 15, 14, 25, 195, 173, 20, 195, 169, 11, 15, 11, 13,
+			6, 195, 8, 83, 128, 72, 0, 36, 11, 6, 5, 10, 12, 5, 19, 26, 20, 197, 145, 11, 83, 109, 57, 55, 109, 89, 47, 118, 49, 23,
+			83, 109, 55, 113, 0, 13, 81, 102, 101, 108, 195, 169, 32, 16, 141, 8, 1, 14, 7, 19, 195, 186, 12, 25, 15, 26, 22, 1, 13, 24,
+			67, 32, 19, 135, 107, 108, 50, 81, 15, 65, 37, 108, 47, 12, 0, 13, 81, 109, 105, 97, 116, 116, 32, 7, 196, 40, 83, 5, 80, 13,
+			7, 196, 24, 83, 5, 48, 13, 6, 195, 32, 19, 135, 13, 0, 9, 134, 11, 195, 169, 18, 197, 145, 13, 42, 6, 12, 195, 169, 22, 197,
+			145, 55, 113, 84, 118, 107, 108, 91, 39, 50, 55, 115, 91, 114, 81, 39, 47, 0, 13, 81, 104, 97, 115, 111, 110, 108, 195, 179, 115, 195,
+			161, 103, 111, 116, 32, 15, 140, 6, 5, 12, 11, 5, 18, 195, 188, 12, 20, 5, 11, 13, 9, 134, 12, 195, 169, 22, 197, 145, 13, 8,
+			197, 24, 243, 148, 61, 48, 13, 10, 135, 10, 1, 14, 21, 195, 161, 18, 20, 0, 15, 140, 8, 1, 10, 12, 195, 169, 11, 20, 1, 12,
+			1, 14, 13, 17, 142, 11, 195, 169, 19, 26, 195, 188, 12, 195, 169, 11, 11, 5, 12, 13, 0, 6, 195, 88, 84, 128, 13, 39, 12, 2,
+			15, 14, 25, 15, 12, 195, 173, 20, 1, 14, 9, 71, 39, 67, 39, 55, 112, 47, 108, 50, 37, 23, 52, 108, 57, 47, 108, 0, 13, 81,
+			114, 97, 106, 116, 97, 32, 0, 11, 136, 8, 9, 2, 195, 161, 11, 1, 20, 13, 14, 139, 19, 26, 5, 18, 5, 20, 14, 195, 169, 14,
+			11, 13, 6, 195, 32, 20, 131, 13, 0, 9, 134, 14, 195, 161, 12, 1, 13, 13, 45, 73, 24, 242, 207, 104, 21, 15, 76, 19, 128, 83,
+			39, 49, 39, 88, 108, 47, 39, 91, 108, 50, 23, 65, 109, 81, 89, 117, 50, 37, 49, 0, 13, 81, 109, 101, 103, 115, 122, 197, 177, 110,
+			105, 107, 32, 16, 141, 13, 5, 7, 19, 26, 195, 179, 12, 1, 12, 20, 1, 20, 13, 11, 136, 195, 161, 12, 12, 20, 21, 14, 11, 13,
+			6, 195, 8, 83, 142, 13, 8, 133, 19, 195, 173, 14, 20, 13, 0, 17, 142, 13, 5, 7, 1, 12, 11, 15, 20, 195, 161, 19, 195, 161,
+			20, 13, 17, 142, 13, 5, 3, 8, 1, 14, 9, 26, 13, 21, 19, 195, 161, 20, 13, 71, 6, 195, 161, 12, 20, 1, 12, 114, 55, 47,
+			108, 55, 10, 6, 15, 49, 112, 50, 114, 55, 47, 10, 6, 15, 89, 39, 55, 81, 114, 55, 47, 108, 47, 114, 91, 39, 49, 108, 47, 0,
+			13, 82, 107, 195, 173, 110, 195, 161, 108, 116, 32, 115, 122, 111, 108, 103, 195, 161, 108, 116, 97, 116, 195, 161, 115, 111, 107, 97, 116, 32,
+			9, 134, 13, 5, 19, 195, 169, 12, 13, 9, 134, 195, 161, 12, 20, 1, 12, 13, 13, 138, 22, 1, 18, 195, 161, 26, 19, 12, 1, 20,
+			13, 12, 137, 5, 7, 25, 195, 188, 20, 20, 5, 19, 13, 9, 195, 28, 68, 0, 102, 17, 42, 42, 14, 67, 28, 68, 0, 75, 112, 72,
+			112, 48, 112, 0, 42, 42, 0, 9, 134, 195, 173, 18, 20, 1, 11, 13, 6, 195, 32, 18, 148, 13, 0, 34, 68, 8, 83, 142, 20, 71,
+			109, 50, 12, 109, 23, 116, 57, 72, 39, 50, 91, 114, 81, 0, 13, 81, 195, 186, 106, 100, 111, 110, 115, 195, 161, 103, 32, 18, 143, 6,
+			195, 161, 10, 4, 1, 12, 15, 13, 13, 5, 14, 20, 5, 19, 13, 28, 68, 8, 83, 142, 20, 71, 109, 50, 12, 109, 15, 71, 37, 89,
+			47, 39, 91, 0, 13, 81, 98, 105, 122, 116, 111, 115, 32, 11, 200, 32, 21, 1, 48, 243, 77, 4, 192, 13, 7, 196, 60, 227, 129, 56,
+			13, 16, 141, 11, 195, 188, 12, 195, 182, 14, 2, 195, 182, 26, 197, 145, 13, 15, 140, 6, 5, 12, 20, 195, 169, 20, 5, 12, 5, 9,
+			20, 13, 7, 196, 8, 83, 142, 20, 13, 10, 135, 20, 195, 182, 18, 20, 5, 11, 13, 9, 198, 28, 243, 132, 60, 197, 0, 13, 7, 196,
+			36, 227, 133, 56, 13, 0, 12, 3, 226, 132, 162, 84, 113, 72, 57, 109, 79, 0, 12, 201, 81, 83, 1, 40, 67, 206, 61, 48, 64, 13,
+			22, 6, 195, 173, 18, 20, 1, 13, 112, 52, 47, 108, 65, 23, 55, 109, 0, 13, 81, 108, 101, 32, 12, 201, 81, 83, 1, 40, 67, 206,
+			61, 48, 64, 13, 12, 137, 20, 195, 182, 18, 20, 195, 169, 14, 20, 13, 9, 134, 195, 173, 18, 20, 1, 13, 13, 11, 136, 22, 195, 161,
+			7, 25, 195, 179, 11, 13, 12, 137, 20, 195, 182, 18, 20, 195, 169, 14, 20, 13, 0, 7, 66, 17, 160, 120, 113, 0, 36, 70, 64, 84,
+			131, 44, 244, 128, 48, 109, 52, 119, 49, 39, 52, 15, 10, 49, 113, 89, 111, 55, 47, 0, 13, 81, 107, 195, 169, 115, 122, 195, 188, 108,
+			116, 32, 0, 6, 195, 8, 83, 148, 13, 0, 33, 7, 22, 195, 161, 7, 10, 21, 11, 84, 114, 81, 57, 40, 49, 10, 6, 15, 90, 109,
+			71, 52, 109, 0, 13, 81, 122, 115, 101, 98, 114, 101, 32, 7, 196, 4, 227, 153, 36, 13, 14, 139, 22, 195, 169, 4, 5, 11, 5, 26,
+			20, 5, 11, 13, 6, 195, 64, 20, 139, 13, 0, 8, 197, 4, 210, 65, 81, 64, 13, 36, 69, 24, 83, 5, 49, 64, 83, 109, 55, 109,
+			55, 47, 23, 84, 39, 55, 50, 108, 23, 65, 109, 81, 0, 13, 82, 118, 111, 108, 110, 97, 32, 109, 101, 103, 32, 17, 142, 11, 5, 26,
+			4, 5, 13, 195, 169, 14, 25, 5, 26, 20, 5, 13, 20, 145, 9, 14, 6, 18, 1, 19, 20, 18, 21, 11, 20, 195, 186, 18, 195, 161,
+			20, 13, 16, 141, 8, 1, 19, 26, 14, 195, 161, 12, 1, 20, 20, 1, 12, 13, 20, 145, 19, 26, 195, 161, 12, 12, 195, 161, 19, 8,
+			5, 12, 25, 5, 11, 5, 20, 13, 8, 197, 24, 83, 5, 49, 64, 13, 0, 24, 6, 14, 195, 161, 12, 1, 4, 50, 114, 55, 108, 72,
+			23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 6, 195, 56, 85, 133, 13, 0, 30, 67, 24, 83, 148, 83, 109, 50, 47, 23, 108, 6,
+			15, 107, 109, 57, 109, 47, 0, 13, 82, 97, 32, 104, 101, 108, 121, 101, 116, 32, 6, 195, 24, 83, 148, 13, 12, 201, 32, 19, 12, 5,
+			68, 218, 61, 69, 0, 13, 10, 199, 24, 243, 148, 61, 48, 66, 8, 13, 23, 67, 96, 149, 128, 47, 37, 88, 109, 50, 50, 113, 79, 12,
+			109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 12, 137, 16, 18, 15, 2, 12, 195, 169, 13, 1, 13, 14, 139, 11, 195, 169, 18, 4, 5,
+			26, 20, 195, 169, 11, 13, 0, 11, 136, 20, 5, 14, 14, 9, 195, 188, 11, 13, 31, 5, 14, 25, 195, 186, 12, 67, 116, 55, 15, 89,
+			109, 52, 109, 48, 113, 47, 0, 13, 81, 115, 122, 101, 114, 101, 112, 195, 169, 116, 32, 13, 138, 11, 9, 20, 195, 182, 12, 20, 5, 14,
+			9, 13, 8, 197, 49, 149, 75, 5, 64, 13, 8, 133, 14, 25, 195, 186, 12, 13, 8, 133, 8, 195, 186, 19, 20, 13, 0, 5, 194, 20,
+			144, 72, 21, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 47, 0, 44, 13, 81, 116, 32, 23, 66, 12, 208, 119, 109, 50,
+			47, 37, 65, 113, 47, 109, 52, 109, 91, 0, 44, 13, 81, 101, 115, 32, 24, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52,
+			67, 37, 0, 44, 13, 81, 110, 121, 105, 32, 28, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 67, 37, 52, 109, 0, 44,
+			13, 81, 110, 121, 105, 114, 101, 32, 23, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 52, 109, 0, 44, 13, 81, 114, 101,
+			32, 16, 66, 12, 208, 119, 109, 50, 47, 37, 65, 113, 47, 109, 52, 0, 13, 0, 0, 17, 68, 77, 165, 147, 104, 101, 115, 122, 118, 195,
+			169, 101, 115, 122, 0, 29, 39, 68, 20, 195, 5, 56, 109, 55, 12, 109, 50, 23, 55, 113, 47, 52, 109, 107, 39, 88, 39, 47, 12, 0,
+			13, 81, 108, 195, 169, 116, 114, 101, 104, 111, 122, 111, 116, 116, 32, 47, 68, 20, 195, 5, 56, 109, 55, 12, 109, 50, 10, 6, 15, 107,
+			37, 52, 72, 109, 47, 12, 113, 49, 10, 6, 15, 65, 109, 81, 0, 13, 82, 104, 105, 114, 100, 101, 116, 116, 195, 169, 107, 32, 109, 101,
+			103, 32, 47, 11, 19, 26, 195, 161, 13, 15, 12, 14, 21, 14, 11, 89, 114, 65, 39, 55, 50, 40, 50, 49, 23, 49, 109, 55, 12, 23,
+			108, 88, 88, 108, 55, 0, 13, 82, 107, 101, 108, 108, 32, 97, 122, 122, 97, 108, 32, 7, 196, 88, 85, 9, 44, 13, 26, 70, 24, 150,
+			133, 80, 81, 0, 83, 37, 88, 109, 47, 109, 72, 15, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 7, 196, 20, 195, 5, 56, 13, 7,
+			196, 32, 21, 14, 4, 13, 7, 196, 4, 130, 15, 104, 13, 7, 196, 21, 49, 84, 80, 13, 7, 196, 20, 195, 5, 56, 13, 0, 21, 69,
+			80, 84, 218, 36, 176, 47, 109, 89, 37, 49, 23, 49, 37, 0, 13, 81, 107, 105, 32, 8, 197, 28, 243, 132, 60, 208, 13, 8, 197, 52,
+			243, 132, 60, 208, 13, 8, 197, 80, 84, 218, 36, 176, 13, 0, 9, 198, 65, 33, 77, 36, 84, 148, 13, 6, 195, 48, 22, 129, 13, 9,
+			134, 14, 25, 195, 173, 12, 20, 13, 0, 17, 142, 2, 5, 6, 5, 10, 5, 26, 195, 169, 19, 195, 169, 9, 7, 13, 9, 134, 18, 195,
+			161, 10, 21, 11, 13, 10, 135, 14, 195, 182, 22, 5, 12, 20, 13, 10, 199, 24, 243, 25, 80, 21, 10, 4, 13, 0, 11, 200, 8, 85,
+			133, 104, 85, 20, 20, 176, 13, 9, 134, 20, 5, 12, 195, 169, 14, 20, 0, 8, 197, 80, 148, 218, 80, 16, 13, 8, 197, 32, 148, 218,
+			36, 176, 13, 10, 6, 95, 35, 45, 9, 11, 9, 37, 0, 0, 14, 139, 4, 195, 182, 14, 20, 195, 182, 20, 20, 5, 13, 13, 0, 37,
+			71, 20, 118, 69, 80, 83, 69, 56, 109, 79, 109, 47, 109, 65, 109, 50, 23, 84, 113, 81, 88, 109, 47, 12, 0, 13, 81, 118, 195, 169,
+			103, 122, 101, 116, 116, 32, 14, 203, 44, 243, 80, 5, 66, 66, 36, 194, 83, 20, 176, 13, 10, 199, 24, 83, 5, 41, 65, 84, 80, 13,
+			11, 136, 22, 195, 169, 4, 5, 12, 5, 13, 13, 0, 14, 139, 2, 5, 14, 25, 15, 13, 195, 161, 19, 15, 11, 13, 7, 196, 32, 83,
+			25, 20, 13, 10, 135, 20, 195, 161, 18, 10, 21, 11, 13, 0, 45, 13, 5, 7, 25, 5, 19, 195, 188, 12, 5, 20, 20, 5, 12, 109,
+			79, 12, 109, 91, 111, 55, 109, 47, 12, 109, 55, 23, 89, 109, 65, 71, 109, 50, 0, 13, 81, 115, 122, 101, 109, 98, 101, 110, 32, 14,
+			139, 6, 5, 12, 195, 188, 12, 5, 20, 195, 169, 14, 13, 10, 135, 19, 26, 195, 169, 12, 5, 14, 13, 10, 6, 95, 35, 45, 9, 11,
+			5, 109, 0, 0, 18, 143, 9, 14, 6, 18, 1, 19, 20, 18, 21, 11, 20, 195, 186, 18, 1, 13, 12, 137, 19, 26, 195, 161, 14, 4,
+			195, 169, 11, 13, 0, 9, 198, 24, 243, 148, 61, 48, 75, 13, 13, 138, 11, 195, 182, 26, 195, 182, 12, 20, 5, 11, 13, 12, 137, 5,
+			19, 20, 195, 169, 10, 195, 169, 14, 22, 9, 134, 13, 195, 161, 10, 21, 19, 20, 0, 14, 139, 4, 195, 182, 14, 20, 195, 182, 20, 20,
+			5, 11, 13, 0, 12, 137, 5, 12, 14, 195, 182, 11, 195, 169, 20, 13, 38, 6, 195, 182, 18, 195, 182, 13, 110, 52, 110, 65, 23, 108,
+			6, 23, 89, 114, 65, 39, 65, 52, 108, 0, 13, 82, 97, 32, 115, 122, 195, 161, 109, 111, 109, 114, 97, 32, 17, 142, 6, 9, 14, 1,
+			14, 19, 26, 195, 173, 18, 15, 26, 22, 1, 13, 12, 201, 8, 150, 143, 57, 149, 1, 48, 19, 128, 13, 9, 134, 20, 21, 4, 14, 195,
+			161, 13, 11, 136, 22, 9, 19, 19, 26, 195, 188, 11, 13, 10, 6, 95, 35, 45, 9, 11, 1, 108, 0, 0, 16, 141, 13, 197, 177, 11,
+			195, 182, 4, 20, 5, 20, 20, 5, 11, 13, 15, 140, 7, 195, 169, 16, 5, 12, 195, 169, 19, 8, 5, 26, 13, 9, 198, 44, 86, 132,
+			40, 83, 128, 13, 15, 3, 95, 50, 17, 49, 109, 47, 12, 109, 72, 37, 49, 109, 0, 0, 15, 140, 22, 195, 161, 12, 1, 19, 26, 20,
+			195, 169, 11, 1, 13, 14, 139, 11, 195, 188, 12, 4, 195, 182, 20, 20, 5, 20, 13, 6, 195, 60, 64, 64, 13, 14, 139, 18, 5, 14,
+			4, 5, 12, 5, 20, 195, 169, 20, 13, 10, 199, 44, 20, 3, 76, 243, 1, 80, 13, 6, 195, 60, 64, 64, 13, 0, 0, 22, 3, 226,
+			128, 166, 10, 48, 2, 39, 50, 47, 48, 2, 39, 50, 47, 48, 2, 39, 50, 47, 0, 9, 134, 22, 5, 14, 14, 195, 169, 13, 16, 141,
+			1, 12, 1, 16, 195, 182, 20, 12, 5, 20, 195, 169, 20, 13, 6, 195, 20, 165, 0, 13, 8, 133, 2, 195, 186, 10, 20, 13, 0, 9,
+			198, 84, 69, 129, 72, 244, 192, 13, 0, 14, 139, 5, 13, 12, 195, 169, 11, 5, 26, 20, 5, 20, 13, 10, 199, 28, 243, 132, 60, 194,
+			149, 44, 13, 0, 31, 11, 6, 18, 9, 19, 19, 195, 173, 20, 195, 169, 19, 83, 52, 37, 91, 12, 112, 47, 113, 91, 23, 37, 91, 0,
+			13, 81, 105, 115, 32, 11, 5, 95, 35, 45, 5, 9, 109, 37, 0, 21, 13, 3, 95, 49, 15, 109, 79, 12, 109, 72, 37, 49, 0, 0,
+			0, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 118, 97, 108, 0, 44, 29, 42, 81, 118, 97, 108, 32, 29, 67,
+			57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 116, 195, 179, 108, 0, 44, 29, 42, 81, 116, 195, 179, 108, 32, 23, 67, 57,
+			97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 116, 0, 44, 29, 42, 81, 116, 32, 23, 67, 57, 97, 1, 101, 110, 118, 195, 169,
+			100, 195, 169, 195, 161, 115, 0, 44, 29, 42, 81, 115, 32, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 110, 97,
+			107, 0, 44, 29, 42, 81, 110, 97, 107, 32, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 104, 111, 122, 0, 44,
+			29, 42, 81, 104, 111, 122, 32, 29, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 195, 179, 108, 0, 44, 29, 42,
+			81, 98, 195, 179, 108, 32, 27, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 97, 110, 0, 44, 29, 42, 81, 98,
+			97, 110, 32, 25, 67, 57, 97, 1, 101, 110, 118, 195, 169, 100, 195, 169, 195, 161, 98, 97, 0, 44, 29, 42, 81, 98, 97, 32, 27, 66,
+			21, 160, 109, 88, 10, 6, 15, 84, 108, 55, 108, 65, 37, 47, 0, 13, 81, 118, 97, 108, 97, 109, 105, 116, 32, 10, 135, 197, 145, 18,
+			14, 1, 7, 25, 13, 15, 66, 21, 160, 109, 88, 23, 108, 88, 0, 13, 81, 97, 122, 32, 35, 66, 21, 160, 109, 88, 10, 6, 15, 108,
+			6, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 13, 82, 97, 32, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 5, 194, 21, 160, 13,
+			15, 67, 57, 97, 1, 109, 50, 84, 113, 72, 113, 108, 0, 42, 42, 15, 8, 95, 35, 45, 195, 169, 8, 5, 26, 113, 107, 109, 88, 0,
+			16, 3, 95, 51, 17, 107, 108, 52, 10, 65, 108, 72, 37, 49, 108, 0, 0, 10, 3, 226, 130, 172, 109, 40, 52, 39, 0, 36, 71, 72,
+			83, 132, 77, 161, 82, 80, 52, 109, 50, 119, 109, 52, 47, 10, 6, 15, 49, 113, 89, 112, 47, 0, 13, 81, 107, 195, 169, 115, 122, 195,
+			173, 116, 32, 41, 12, 22, 5, 26, 5, 20, 197, 145, 19, 195, 169, 7, 9, 84, 109, 88, 109, 47, 118, 91, 113, 81, 37, 23, 47, 108,
+			81, 57, 108, 37, 0, 13, 81, 116, 97, 103, 106, 97, 105, 32, 17, 142, 19, 26, 195, 161, 13, 195, 173, 20, 8, 1, 20, 21, 14, 11,
+			13, 9, 198, 24, 150, 133, 80, 225, 75, 13, 6, 195, 60, 179, 212, 13, 10, 199, 72, 83, 132, 77, 161, 82, 80, 13, 0, 10, 135, 12,
+			195, 161, 14, 3, 15, 11, 13, 7, 196, 20, 227, 153, 36, 13, 6, 131, 10, 195, 179, 13, 0, 19, 67, 21, 165, 0, 109, 89, 47, 10,
+			6, 15, 108, 88, 0, 13, 81, 97, 122, 32, 21, 67, 21, 165, 0, 109, 89, 47, 23, 49, 109, 55, 12, 0, 13, 81, 107, 101, 108, 108,
+			32, 8, 197, 24, 244, 137, 57, 64, 13, 12, 137, 2, 1, 10, 15, 11, 18, 195, 179, 12, 13, 8, 197, 37, 51, 69, 73, 64, 13, 6,
+			195, 21, 165, 0, 13, 0, 13, 138, 22, 9, 12, 195, 161, 7, 18, 195, 179, 12, 13, 9, 198, 77, 161, 77, 24, 241, 192, 13, 6, 195,
+			64, 144, 201, 13, 12, 137, 13, 197, 177, 11, 195, 182, 4, 9, 11, 13, 9, 3, 95, 49, 5, 109, 79, 12, 0, 0, 14, 139, 22, 195,
+			169, 4, 5, 12, 5, 13, 13, 5, 12, 13, 12, 201, 61, 4, 133, 56, 68, 218, 21, 37, 0, 13, 12, 137, 13, 21, 14, 11, 195, 161,
+			8, 15, 26, 13, 13, 138, 5, 13, 12, 195, 169, 11, 19, 26, 9, 11, 13, 11, 136, 19, 26, 5, 13, 195, 169, 12, 25, 13, 6, 195,
+			80, 17, 192, 13, 0, 10, 135, 195, 188, 12, 195, 188, 14, 11, 13, 14, 3, 95, 50, 15, 49, 109, 47, 12, 109, 72, 37, 49, 0, 0,
+			8, 197, 56, 83, 90, 21, 64, 13, 9, 134, 18, 195, 161, 26, 14, 9, 13, 13, 138, 22, 195, 169, 12, 5, 13, 195, 169, 14, 25, 13,
+			13, 138, 8, 1, 19, 26, 14, 195, 161, 12, 14, 9, 13, 0, 13, 138, 8, 15, 26, 1, 4, 195, 169, 11, 15, 20, 13, 9, 3, 95,
+			50, 1, 49, 113, 47, 0, 0, 20, 67, 80, 20, 148, 47, 108, 52, 47, 23, 39, 47, 12, 0, 13, 81, 111, 116, 116, 32, 15, 140, 12,
+			5, 7, 5, 14, 5, 18, 195, 161, 12, 14, 9, 13, 9, 134, 10, 195, 161, 18, 195, 179, 13, 14, 139, 10, 195, 161, 18, 1, 4, 195,
+			169, 11, 15, 20, 13, 6, 195, 80, 20, 148, 13, 6, 195, 56, 82, 192, 13, 0, 22, 68, 40, 83, 26, 36, 57, 109, 55, 88, 37, 10,
+			6, 15, 108, 88, 0, 13, 81, 97, 122, 32, 7, 196, 88, 85, 14, 36, 13, 7, 196, 40, 83, 26, 36, 13, 10, 135, 22, 5, 12, 195,
+			188, 14, 11, 13, 6, 195, 88, 84, 147, 13, 0, 8, 197, 81, 81, 20, 60, 176, 76, 8, 197, 88, 19, 142, 4, 176, 13, 0, 9, 198,
+			85, 64, 90, 56, 18, 192, 13, 9, 198, 8, 19, 139, 56, 18, 192, 13, 12, 201, 88, 148, 218, 60, 230, 85, 48, 224, 75, 13, 31, 70,
+			72, 144, 68, 56, 18, 192, 51, 37, 108, 72, 50, 108, 49, 23, 84, 37, 89, 12, 108, 0, 13, 81, 118, 105, 115, 115, 122, 97, 32, 9,
+			198, 5, 163, 203, 56, 18, 192, 13, 9, 198, 32, 19, 135, 104, 146, 192, 13, 9, 198, 52, 243, 132, 41, 82, 192, 13, 9, 198, 32, 19,
+			135, 104, 146, 192, 13, 9, 134, 6, 195, 161, 10, 12, 20, 13, 10, 3, 95, 50, 5, 49, 109, 47, 12, 0, 0, 26, 5, 8, 195, 186,
+			19, 26, 107, 116, 89, 23, 113, 84, 71, 109, 50, 0, 13, 81, 195, 169, 118, 98, 101, 110, 32, 15, 140, 11, 195, 182, 18, 195, 188, 12,
+			13, 195, 169, 14, 25, 13, 20, 145, 13, 5, 7, 6, 9, 7, 25, 5, 12, 195, 169, 19, 195, 169, 8, 5, 26, 13, 15, 140, 11, 9,
+			8, 1, 19, 26, 14, 195, 161, 12, 14, 9, 13, 14, 139, 2, 15, 18, 195, 173, 20, 195, 169, 11, 15, 20, 13, 11, 136, 19, 26, 195,
+			179, 12, 20, 1, 13, 13, 8, 133, 8, 195, 186, 19, 26, 13, 6, 195, 88, 84, 148, 13, 0, 42, 8, 2, 5, 3, 19, 195, 188, 12,
+			20, 71, 109, 76, 111, 55, 47, 23, 113, 52, 47, 113, 49, 113, 50, 109, 49, 0, 13, 81, 195, 169, 114, 116, 195, 169, 107, 195, 169, 110,
+			101, 107, 32, 12, 137, 10, 5, 12, 19, 26, 195, 179, 18, 1, 13, 11, 200, 24, 83, 9, 76, 209, 82, 56, 144, 13, 15, 3, 95, 51,
+			15, 107, 108, 52, 10, 65, 108, 72, 37, 49, 0, 11, 4, 95, 15, 18, 4, 109, 72, 37, 49, 0, 0, 8, 197, 81, 81, 14, 4, 176,
+			76, 13, 138, 11, 195, 182, 26, 16, 15, 14, 20, 10, 1, 13, 8, 197, 81, 81, 14, 4, 176, 13, 11, 136, 18, 5, 13, 195, 169, 12,
+			9, 11, 13, 0, 13, 66, 33, 80, 104, 117, 110, 0, 44, 29, 81, 110, 32, 29, 66, 37, 48, 37, 91, 23, 114, 55, 112, 80, 12, 114,
+			49, 0, 13, 81, 195, 161, 108, 108, 195, 173, 116, 106, 195, 161, 107, 32, 29, 66, 37, 48, 37, 91, 23, 84, 113, 81, 109, 88, 47, 113,
+			49, 0, 13, 81, 118, 195, 169, 103, 101, 122, 116, 195, 169, 107, 32, 40, 66, 37, 48, 37, 91, 23, 108, 55, 114, 47, 114, 65, 108, 89,
+			47, 39, 47, 12, 108, 0, 13, 81, 97, 108, 195, 161, 116, 195, 161, 109, 97, 115, 122, 116, 111, 116, 116, 97, 32, 28, 66, 37, 48, 37,
+			91, 23, 84, 37, 47, 108, 80, 12, 114, 49, 0, 13, 81, 118, 105, 116, 97, 116, 106, 195, 161, 107, 32, 27, 66, 37, 48, 37, 91, 23,
+			108, 55, 114, 112, 52, 47, 108, 0, 13, 81, 97, 108, 195, 161, 195, 173, 114, 116, 97, 32, 30, 66, 37, 48, 37, 91, 23, 65, 109, 81,
+			109, 65, 55, 112, 47, 37, 0, 13, 81, 109, 101, 103, 101, 109, 108, 195, 173, 116, 105, 32, 22, 66, 37, 48, 37, 91, 23, 65, 113, 52,
+			37, 49, 0, 13, 81, 109, 195, 169, 114, 105, 107, 32, 27, 66, 37, 48, 37, 91, 23, 47, 110, 34, 47, 113, 50, 47, 0, 13, 81, 116,
+			195, 182, 114, 116, 195, 169, 110, 116, 32, 25, 66, 37, 48, 37, 91, 23, 71, 109, 89, 113, 55, 47, 0, 13, 81, 98, 101, 115, 122, 195,
+			169, 108, 116, 32, 54, 66, 37, 48, 37, 91, 10, 6, 15, 55, 109, 107, 109, 47, 10, 6, 15, 76, 108, 47, 55, 108, 49, 39, 89, 47,
+			108, 47, 50, 37, 0, 13, 82, 108, 101, 104, 101, 116, 32, 99, 115, 97, 116, 108, 97, 107, 111, 122, 116, 97, 116, 110, 105, 32, 45, 66,
+			37, 48, 37, 91, 10, 6, 15, 55, 109, 107, 109, 47, 10, 6, 15, 71, 118, 84, 112, 47, 109, 50, 37, 0, 13, 82, 108, 101, 104, 101,
+			116, 32, 98, 197, 145, 118, 195, 173, 116, 101, 110, 105, 32, 45, 66, 37, 48, 37, 91, 10, 6, 15, 55, 109, 107, 109, 47, 10, 6, 15,
+			107, 108, 89, 50, 114, 55, 50, 37, 0, 13, 82, 108, 101, 104, 101, 116, 32, 104, 97, 115, 122, 110, 195, 161, 108, 110, 105, 32, 33, 66,
+			37, 48, 37, 91, 10, 6, 15, 47, 108, 55, 114, 55, 107, 108, 47, 115, 0, 13, 81, 116, 97, 108, 195, 161, 108, 104, 97, 116, 195, 179,
+			32, 31, 66, 37, 48, 37, 91, 10, 6, 15, 57, 109, 79, 109, 89, 47, 111, 49, 0, 13, 81, 106, 101, 103, 121, 101, 122, 116, 195, 188,
+			107, 32, 25, 66, 37, 48, 37, 91, 10, 6, 15, 84, 108, 50, 12, 108, 49, 0, 13, 81, 118, 97, 110, 110, 97, 107, 32, 36, 66, 37,
+			48, 37, 91, 10, 6, 15, 65, 109, 81, 65, 40, 47, 108, 80, 12, 114, 49, 0, 13, 81, 109, 101, 103, 109, 117, 116, 97, 116, 106, 195,
+			161, 107, 32, 40, 66, 37, 48, 37, 91, 10, 6, 15, 49, 37, 109, 81, 113, 89, 112, 47, 109, 47, 12, 109, 0, 13, 81, 107, 105, 101,
+			103, 195, 169, 115, 122, 195, 173, 116, 101, 116, 116, 101, 32, 37, 66, 37, 48, 37, 91, 10, 6, 15, 52, 109, 50, 72, 109, 55, 49, 109,
+			89, 47, 109, 49, 0, 13, 81, 114, 101, 110, 100, 101, 108, 107, 101, 122, 116, 101, 107, 32, 34, 66, 37, 48, 37, 91, 6, 15, 49, 110,
+			89, 110, 50, 107, 109, 47, 118, 0, 13, 81, 107, 195, 182, 115, 122, 195, 182, 110, 104, 101, 116, 197, 145, 32, 33, 66, 37, 48, 37, 91,
+			10, 6, 15, 112, 47, 113, 55, 107, 109, 47, 37, 49, 0, 13, 81, 195, 173, 116, 195, 169, 108, 104, 101, 116, 105, 107, 32, 38, 66, 37,
+			48, 37, 91, 10, 6, 15, 49, 39, 50, 119, 109, 50, 47, 52, 114, 55, 50, 37, 0, 13, 81, 107, 111, 110, 99, 101, 110, 116, 114, 195,
+			161, 108, 110, 105, 32, 22, 66, 37, 48, 37, 91, 10, 6, 15, 114, 52, 40, 55, 0, 13, 81, 195, 161, 114, 117, 108, 32, 23, 66, 37,
+			48, 37, 91, 10, 6, 15, 47, 37, 55, 39, 91, 0, 13, 81, 116, 105, 108, 111, 115, 32, 29, 66, 37, 48, 37, 91, 10, 6, 15, 111,
+			79, 109, 55, 47, 109, 49, 0, 13, 81, 195, 188, 103, 121, 101, 108, 116, 101, 107, 32, 22, 66, 37, 48, 37, 91, 10, 6, 55, 109, 50,
+			12, 109, 0, 13, 81, 108, 101, 110, 110, 101, 32, 35, 66, 37, 48, 37, 91, 10, 6, 15, 84, 114, 55, 108, 89, 47, 39, 47, 12, 108,
+			0, 13, 81, 118, 195, 161, 108, 97, 115, 122, 116, 111, 116, 116, 97, 32, 24, 66, 37, 48, 37, 91, 10, 6, 15, 55, 114, 88, 108, 72,
+			0, 13, 81, 108, 195, 161, 122, 97, 100, 32, 18, 66, 37, 48, 37, 91, 10, 6, 15, 113, 52, 0, 13, 81, 195, 169, 114, 32, 25, 66,
+			37, 48, 37, 91, 10, 6, 15, 107, 108, 47, 39, 47, 12, 0, 13, 81, 104, 97, 116, 111, 116, 116, 32, 32, 66, 37, 48, 37, 91, 10,
+			6, 15, 89, 111, 49, 91, 113, 81, 109, 91, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 32, 29, 66, 37, 48, 37,
+			91, 23, 89, 109, 52, 109, 47, 50, 113, 49, 0, 13, 81, 115, 122, 101, 114, 101, 116, 110, 195, 169, 107, 32, 39, 66, 37, 48, 37, 91,
+			23, 109, 79, 12, 111, 47, 65, 117, 49, 110, 72, 37, 49, 0, 13, 81, 101, 103, 121, 195, 188, 116, 116, 109, 197, 177, 107, 195, 182, 100,
+			105, 107, 32, 28, 66, 37, 48, 37, 91, 23, 57, 109, 55, 109, 88, 47, 113, 49, 0, 13, 81, 106, 101, 108, 101, 122, 116, 195, 169, 107,
+			32, 34, 66, 37, 48, 37, 91, 23, 89, 111, 49, 110, 91, 109, 71, 12, 109, 49, 0, 13, 81, 115, 122, 197, 177, 107, 195, 182, 115, 101,
+			98, 98, 101, 107, 32, 35, 66, 37, 48, 37, 91, 23, 49, 37, 57, 109, 55, 110, 55, 107, 109, 47, 118, 0, 13, 81, 107, 105, 106, 101,
+			108, 195, 182, 108, 104, 101, 116, 197, 145, 32, 34, 66, 37, 48, 37, 91, 23, 107, 108, 89, 50, 114, 55, 107, 108, 47, 115, 0, 13, 81,
+			104, 97, 115, 122, 110, 195, 161, 108, 104, 97, 116, 195, 179, 32, 36, 66, 37, 48, 37, 91, 23, 107, 108, 89, 50, 114, 55, 107, 108, 47,
+			115, 49, 0, 13, 81, 104, 97, 115, 122, 110, 195, 161, 108, 104, 97, 116, 195, 179, 107, 32, 35, 66, 37, 48, 37, 91, 23, 65, 109, 81,
+			89, 109, 52, 109, 89, 47, 113, 49, 0, 13, 81, 109, 101, 103, 115, 122, 101, 114, 101, 122, 116, 195, 169, 107, 32, 26, 66, 37, 48, 37,
+			91, 23, 55, 109, 55, 110, 84, 37, 49, 0, 13, 81, 108, 101, 108, 195, 182, 118, 105, 107, 32, 30, 66, 37, 48, 37, 91, 23, 47, 114,
+			65, 39, 81, 108, 80, 12, 108, 0, 13, 81, 116, 195, 161, 109, 111, 103, 97, 116, 106, 97, 32, 39, 66, 37, 48, 37, 91, 23, 109, 52,
+			109, 72, 65, 113, 67, 109, 88, 107, 109, 47, 37, 0, 13, 81, 101, 114, 101, 100, 109, 195, 169, 110, 121, 101, 122, 104, 101, 116, 105, 32,
+			23, 66, 37, 48, 37, 91, 23, 84, 39, 55, 47, 108, 49, 0, 13, 81, 118, 111, 108, 116, 97, 107, 32, 26, 66, 37, 48, 37, 91, 23,
+			49, 37, 72, 109, 52, 111, 55, 0, 13, 81, 107, 105, 100, 101, 114, 195, 188, 108, 32, 31, 66, 37, 48, 37, 91, 10, 6, 15, 83, 109,
+			55, 84, 109, 47, 107, 109, 47, 0, 13, 81, 102, 101, 108, 118, 101, 116, 104, 101, 116, 32, 42, 66, 37, 48, 37, 91, 23, 52, 109, 65,
+			113, 67, 49, 109, 72, 107, 109, 47, 111, 50, 49, 0, 13, 81, 114, 101, 109, 195, 169, 110, 121, 107, 101, 100, 104, 101, 116, 195, 188, 110,
+			107, 32, 18, 66, 37, 48, 37, 91, 23, 55, 109, 89, 0, 13, 81, 108, 101, 115, 122, 32, 30, 66, 37, 48, 37, 91, 23, 83, 109, 55,
+			65, 109, 52, 111, 55, 47, 0, 13, 81, 102, 101, 108, 109, 101, 114, 195, 188, 108, 116, 32, 38, 66, 37, 48, 37, 91, 23, 52, 114, 84,
+			37, 55, 114, 81, 112, 47, 39, 47, 12, 0, 13, 81, 114, 195, 161, 118, 105, 108, 195, 161, 103, 195, 173, 116, 111, 116, 116, 32, 67, 66,
+			37, 48, 37, 91, 23, 83, 37, 88, 109, 47, 107, 109, 47, 50, 109, 49, 23, 108, 6, 15, 79, 115, 79, 89, 109, 52, 109, 49, 113, 52,
+			47, 0, 13, 83, 102, 105, 122, 101, 116, 104, 101, 116, 110, 101, 107, 32, 97, 32, 103, 121, 195, 179, 103, 121, 115, 122, 101, 114, 101, 107,
+			195, 169, 114, 116, 32, 29, 66, 37, 48, 37, 91, 23, 47, 108, 52, 47, 108, 55, 65, 108, 88, 0, 13, 81, 116, 97, 114, 116, 97, 108,
+			109, 97, 122, 32, 24, 66, 37, 48, 37, 91, 23, 83, 39, 57, 50, 108, 49, 0, 13, 81, 102, 111, 108, 121, 110, 97, 107, 32, 21, 66,
+			37, 48, 37, 91, 23, 110, 52, 110, 65, 0, 13, 81, 195, 182, 114, 195, 182, 109, 32, 23, 66, 37, 48, 37, 91, 23, 71, 40, 49, 12,
+			108, 50, 0, 13, 81, 98, 117, 107, 107, 97, 110, 32, 29, 66, 37, 48, 37, 91, 23, 107, 37, 114, 67, 39, 55, 39, 65, 0, 13, 81,
+			104, 105, 195, 161, 110, 121, 111, 108, 111, 109, 32, 19, 66, 37, 48, 37, 91, 23, 55, 109, 47, 12, 0, 13, 81, 108, 101, 116, 116, 32,
+			19, 66, 37, 48, 37, 91, 23, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 36, 66, 37, 48, 37, 91, 23, 65, 113, 52, 91,
+			113, 49, 55, 118, 72, 37, 49, 0, 13, 81, 109, 195, 169, 114, 115, 195, 169, 107, 108, 197, 145, 100, 105, 107, 32, 33, 66, 37, 48, 37,
+			91, 23, 49, 112, 91, 113, 52, 107, 109, 47, 37, 49, 0, 13, 81, 107, 195, 173, 115, 195, 169, 114, 104, 101, 116, 105, 107, 32, 26, 66,
+			37, 48, 37, 91, 23, 49, 37, 84, 114, 52, 50, 37, 0, 13, 81, 107, 105, 118, 195, 161, 114, 110, 105, 32, 28, 66, 37, 48, 37, 91,
+			23, 83, 109, 57, 55, 118, 72, 37, 49, 0, 13, 81, 102, 101, 106, 108, 197, 145, 100, 105, 107, 32, 22, 66, 37, 48, 37, 91, 23, 84,
+			114, 55, 37, 49, 0, 13, 81, 118, 195, 161, 108, 105, 107, 32, 20, 66, 37, 48, 37, 91, 23, 83, 111, 81, 12, 0, 13, 81, 102, 195,
+			188, 103, 103, 32, 27, 66, 37, 48, 37, 91, 23, 84, 114, 52, 107, 108, 47, 115, 0, 13, 81, 118, 195, 161, 114, 104, 97, 116, 195, 179,
+			32, 25, 66, 37, 48, 37, 91, 23, 71, 109, 37, 49, 47, 108, 47, 0, 13, 81, 98, 101, 105, 107, 116, 97, 116, 32, 26, 66, 37, 48,
+			37, 91, 23, 65, 109, 50, 109, 49, 111, 55, 0, 13, 81, 109, 101, 110, 101, 107, 195, 188, 108, 32, 20, 66, 37, 48, 37, 91, 23, 52,
+			115, 55, 108, 0, 13, 81, 114, 195, 179, 108, 97, 32, 38, 66, 37, 48, 37, 91, 23, 49, 37, 109, 81, 113, 89, 112, 47, 109, 47, 12,
+			109, 0, 13, 81, 107, 105, 101, 103, 195, 169, 115, 122, 195, 173, 116, 101, 116, 116, 101, 32, 16, 66, 37, 48, 37, 91, 23, 108, 88, 6,
+			0, 13, 81, 97, 122, 32, 33, 66, 37, 48, 37, 91, 23, 65, 109, 81, 65, 108, 52, 108, 79, 12, 39, 50, 0, 13, 81, 109, 101, 103,
+			109, 97, 114, 97, 100, 106, 111, 110, 32, 36, 66, 37, 48, 37, 91, 23, 83, 109, 57, 55, 109, 89, 47, 109, 47, 12, 109, 49, 0, 13,
+			81, 102, 101, 106, 108, 101, 115, 122, 116, 101, 116, 116, 101, 107, 32, 31, 66, 37, 48, 37, 91, 15, 107, 6, 108, 57, 55, 108, 50, 72,
+			115, 49, 0, 13, 81, 104, 97, 106, 108, 97, 110, 100, 195, 179, 107, 32, 10, 135, 195, 186, 19, 26, 20, 1, 13, 13, 24, 66, 37, 48,
+			37, 91, 23, 40, 79, 108, 50, 108, 88, 0, 13, 81, 117, 103, 121, 97, 110, 97, 122, 32, 40, 66, 37, 48, 37, 91, 23, 49, 108, 47,
+			108, 89, 47, 52, 115, 83, 114, 107, 39, 88, 0, 13, 81, 107, 97, 116, 97, 115, 122, 116, 114, 195, 179, 102, 195, 161, 104, 111, 122, 32,
+			16, 141, 6, 5, 12, 8, 197, 145, 20, 1, 11, 1, 18, 195, 179, 13, 33, 66, 37, 48, 37, 91, 23, 83, 39, 81, 55, 108, 55, 49,
+			39, 88, 39, 65, 0, 13, 81, 102, 111, 103, 108, 97, 108, 107, 111, 122, 111, 109, 32, 36, 66, 37, 48, 37, 91, 23, 109, 55, 118, 83,
+			39, 52, 72, 40, 55, 107, 108, 47, 0, 13, 81, 101, 108, 197, 145, 102, 111, 114, 100, 117, 108, 104, 97, 116, 32, 37, 66, 37, 48, 37,
+			91, 23, 49, 113, 48, 88, 118, 72, 107, 109, 47, 50, 109, 49, 0, 13, 81, 107, 195, 169, 112, 122, 197, 145, 100, 104, 101, 116, 110, 101,
+			107, 32, 21, 66, 37, 48, 37, 91, 23, 55, 109, 107, 109, 47, 0, 13, 81, 108, 101, 104, 101, 116, 32, 25, 66, 37, 48, 37, 91, 23,
+			49, 109, 88, 109, 55, 47, 109, 0, 13, 81, 107, 101, 122, 101, 108, 116, 101, 32, 29, 66, 37, 48, 37, 91, 23, 89, 111, 55, 109, 47,
+			109, 47, 12, 0, 13, 81, 115, 122, 195, 188, 108, 101, 116, 101, 116, 116, 32, 80, 66, 37, 48, 37, 91, 23, 49, 37, 47, 110, 55, 47,
+			107, 109, 47, 12, 113, 49, 23, 84, 39, 55, 50, 108, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 49, 109, 47, 0, 13, 84, 107,
+			105, 116, 195, 182, 108, 116, 104, 101, 116, 116, 195, 169, 107, 32, 118, 111, 108, 110, 97, 32, 97, 32, 107, 195, 169, 114, 100, 197, 145, 195,
+			173, 118, 101, 107, 101, 116, 32, 36, 66, 37, 48, 37, 91, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 47, 0, 13, 82, 97, 32,
+			107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116, 32, 26, 66, 37, 48, 37, 91, 23, 83, 109, 50, 12, 114, 55, 12, 0, 13, 81,
+			102, 101, 110, 110, 195, 161, 108, 108, 32, 36, 66, 37, 48, 37, 91, 23, 109, 55, 118, 83, 39, 52, 72, 40, 55, 50, 108, 49, 0, 13,
+			81, 101, 108, 197, 145, 102, 111, 114, 100, 117, 108, 110, 97, 107, 32, 29, 66, 37, 48, 37, 91, 23, 83, 109, 55, 52, 108, 49, 47, 108,
+			65, 0, 13, 81, 102, 101, 108, 114, 97, 107, 116, 97, 109, 32, 35, 66, 37, 48, 37, 91, 15, 83, 109, 55, 109, 57, 47, 49, 109, 89,
+			47, 109, 65, 0, 13, 81, 102, 101, 108, 101, 106, 116, 107, 101, 122, 116, 101, 109, 32, 22, 66, 37, 48, 37, 91, 15, 52, 109, 76, 109,
+			81, 0, 13, 81, 114, 101, 99, 115, 101, 103, 32, 14, 139, 1, 11, 20, 9, 22, 195, 161, 12, 20, 1, 13, 13, 10, 135, 11, 5, 26,
+			195, 169, 2, 5, 13, 28, 66, 37, 48, 37, 91, 15, 84, 114, 55, 47, 39, 88, 37, 49, 0, 13, 81, 118, 195, 161, 108, 116, 111, 122,
+			105, 107, 32, 40, 66, 37, 48, 37, 91, 15, 49, 109, 55, 12, 15, 83, 37, 88, 109, 47, 50, 37, 111, 49, 0, 13, 82, 107, 101, 108,
+			108, 32, 102, 105, 122, 101, 116, 110, 105, 195, 188, 107, 32, 29, 66, 37, 48, 37, 91, 15, 109, 55, 37, 91, 65, 109, 52, 47, 109, 0,
+			13, 81, 101, 108, 105, 115, 109, 101, 114, 116, 101, 32, 23, 66, 37, 48, 37, 91, 10, 6, 15, 108, 49, 108, 47, 12, 0, 13, 81, 97,
+			107, 97, 100, 116, 32, 9, 198, 52, 20, 129, 16, 226, 64, 13, 9, 198, 44, 146, 149, 80, 226, 64, 13, 9, 198, 24, 150, 133, 80, 226,
+			64, 13, 9, 198, 52, 20, 129, 16, 226, 64, 13, 9, 198, 52, 243, 132, 80, 18, 192, 13, 9, 198, 36, 225, 21, 48, 226, 64, 13, 9,
+			134, 1, 2, 2, 195, 179, 12, 13, 5, 194, 37, 48, 13, 6, 195, 56, 82, 201, 13, 5, 194, 37, 48, 72, 0, 10, 199, 57, 147, 205,
+			61, 37, 76, 80, 13, 13, 138, 11, 195, 169, 16, 5, 26, 14, 195, 169, 11, 13, 49, 8, 3, 195, 169, 12, 15, 11, 18, 1, 119, 113,
+			55, 39, 49, 52, 108, 23, 107, 108, 89, 50, 114, 55, 107, 108, 47, 50, 114, 49, 0, 13, 81, 104, 97, 115, 122, 110, 195, 161, 108, 104,
+			97, 116, 110, 195, 161, 107, 32, 13, 138, 8, 1, 19, 26, 14, 195, 161, 12, 15, 11, 13, 0, 16, 141, 11, 9, 16, 18, 195, 179, 2,
+			195, 161, 12, 20, 1, 13, 13, 7, 196, 52, 20, 129, 16, 13, 9, 134, 20, 5, 18, 195, 169, 14, 13, 0, 13, 138, 20, 195, 182, 18,
+			20, 195, 169, 14, 14, 5, 13, 11, 136, 19, 26, 195, 179, 12, 20, 1, 11, 13, 13, 138, 8, 1, 19, 26, 14, 195, 161, 12, 15, 13,
+			13, 11, 135, 5, 12, 5, 10, 195, 169, 14, 20, 13, 0, 17, 142, 8, 1, 12, 12, 7, 1, 20, 195, 179, 11, 20, 195, 179, 12, 13,
+			9, 198, 21, 49, 84, 8, 83, 128, 13, 9, 198, 80, 83, 5, 24, 243, 128, 13, 14, 139, 6, 9, 7, 25, 5, 12, 13, 195, 169, 2,
+			5, 13, 10, 3, 95, 51, 5, 107, 114, 52, 65, 0, 0, 13, 138, 8, 197, 145, 2, 195, 182, 18, 195, 182, 7, 13, 28, 153, 1, 11,
+			1, 4, 195, 161, 12, 25, 13, 5, 14, 20, 5, 19, 195, 173, 20, 195, 169, 19, 195, 169, 8, 5, 26, 13, 11, 136, 5, 7, 25, 19,
+			195, 169, 7, 5, 13, 10, 199, 52, 20, 129, 17, 69, 78, 44, 13, 10, 199, 24, 244, 137, 57, 69, 78, 44, 13, 11, 136, 20, 195, 161,
+			18, 15, 12, 14, 9, 13, 0, 16, 141, 11, 9, 11, 195, 169, 18, 4, 5, 26, 14, 195, 169, 13, 13, 11, 136, 7, 25, 5, 14, 7,
+			195, 188, 12, 13, 8, 133, 20, 5, 22, 197, 145, 13, 0, 15, 140, 18, 5, 11, 12, 195, 161, 13, 3, 19, 195, 173, 11, 13, 8, 197,
+			80, 21, 129, 49, 144, 13, 0, 39, 6, 9, 19, 13, 195, 169, 20, 37, 91, 65, 113, 47, 10, 6, 15, 83, 109, 55, 65, 109, 52, 111,
+			55, 47, 0, 13, 81, 102, 101, 108, 109, 101, 114, 195, 188, 108, 116, 32, 22, 66, 20, 192, 109, 55, 23, 48, 113, 50, 89, 47, 0, 13,
+			81, 112, 195, 169, 110, 122, 116, 32, 27, 66, 20, 192, 109, 55, 23, 108, 6, 15, 83, 113, 52, 83, 37, 0, 13, 82, 97, 32, 102, 195,
+			169, 114, 102, 105, 32, 27, 66, 20, 192, 109, 55, 23, 65, 37, 50, 72, 109, 50, 49, 37, 0, 13, 81, 109, 105, 110, 100, 101, 110, 107,
+			105, 32, 25, 66, 20, 192, 109, 55, 10, 6, 15, 50, 109, 49, 47, 109, 49, 0, 13, 81, 110, 101, 107, 116, 101, 107, 32, 35, 66, 20,
+			192, 109, 55, 6, 23, 108, 6, 15, 52, 109, 50, 72, 118, 52, 110, 49, 0, 13, 82, 97, 32, 114, 101, 110, 100, 197, 145, 114, 195, 182,
+			107, 32, 30, 67, 25, 84, 129, 83, 40, 52, 108, 23, 72, 39, 55, 81, 39, 49, 108, 47, 0, 13, 81, 100, 111, 108, 103, 111, 107, 97,
+			116, 32, 30, 6, 9, 19, 13, 195, 169, 20, 37, 91, 65, 113, 47, 23, 109, 55, 109, 52, 109, 72, 0, 13, 81, 101, 108, 101, 114, 101,
+			100, 32, 6, 195, 25, 84, 129, 13, 14, 139, 22, 195, 161, 19, 195, 161, 18, 15, 12, 14, 9, 13, 5, 194, 20, 192, 13, 14, 66, 36,
+			64, 37, 72, 118, 91, 109, 71, 12, 0, 25, 9, 14, 3, 95, 54, 17, 107, 108, 47, 39, 72, 37, 49, 108, 0, 0, 15, 140, 5, 12,
+			12, 5, 14, 197, 145, 18, 9, 26, 14, 9, 13, 8, 133, 7, 18, 195, 179, 6, 13, 9, 3, 95, 50, 48, 107, 116, 89, 0, 0, 14,
+			139, 5, 12, 18, 5, 14, 4, 5, 26, 195, 169, 19, 13, 12, 137, 4, 15, 11, 20, 15, 18, 14, 197, 145, 13, 14, 139, 19, 5, 12,
+			5, 10, 20, 5, 26, 195, 169, 19, 13, 0, 13, 138, 14, 195, 169, 16, 19, 26, 5, 18, 197, 177, 13, 20, 145, 9, 14, 4, 195, 173,
+			20, 22, 195, 161, 14, 25, 15, 11, 18, 195, 179, 12, 13, 30, 69, 4, 192, 80, 84, 192, 108, 55, 108, 48, 40, 55, 23, 84, 109, 50,
+			12, 37, 109, 0, 13, 81, 118, 101, 110, 110, 105, 101, 32, 8, 197, 8, 83, 142, 20, 64, 13, 8, 197, 4, 192, 80, 84, 192, 13, 11,
+			136, 4, 195, 182, 14, 20, 195, 169, 19, 13, 0, 14, 139, 11, 195, 182, 19, 26, 195, 182, 14, 195, 182, 13, 13, 0, 9, 134, 195, 169,
+			18, 20, 9, 11, 13, 10, 199, 80, 84, 133, 53, 68, 197, 56, 13, 9, 134, 14, 195, 169, 26, 9, 11, 13, 0, 44, 11, 22, 9, 19,
+			19, 26, 1, 5, 19, 195, 169, 19, 84, 37, 89, 12, 108, 109, 91, 113, 91, 23, 107, 108, 47, 114, 91, 108, 37, 47, 0, 13, 81, 104,
+			97, 116, 195, 161, 115, 97, 105, 116, 32, 27, 7, 14, 25, 195, 173, 12, 9, 11, 67, 112, 55, 37, 49, 15, 108, 52, 52, 108, 0, 13,
+			81, 97, 114, 114, 97, 32, 11, 200, 36, 229, 5, 72, 225, 84, 20, 224, 13, 14, 68, 29, 148, 197, 88, 79, 109, 91, 109, 84, 0, 42,
+			42, 11, 5, 95, 35, 45, 1, 9, 108, 37, 0, 21, 12, 3, 95, 53, 15, 110, 47, 110, 72, 37, 49, 0, 0, 0, 9, 198, 80, 18,
+			193, 72, 160, 64, 13, 9, 198, 4, 212, 21, 48, 192, 64, 13, 9, 134, 14, 25, 195, 186, 10, 20, 13, 13, 4, 95, 13, 3, 14, 65,
+			108, 49, 52, 39, 50, 0, 14, 3, 95, 55, 17, 107, 109, 47, 109, 72, 37, 49, 109, 0, 0, 13, 138, 20, 195, 182, 18, 20, 195, 169,
+			14, 9, 11, 13, 0, 11, 200, 77, 161, 75, 80, 244, 146, 4, 192, 13, 10, 135, 18, 195, 169, 7, 9, 5, 11, 13, 0, 9, 134, 6,
+			197, 145, 26, 14, 9, 13, 23, 67, 37, 69, 0, 37, 47, 12, 23, 91, 109, 50, 49, 37, 0, 13, 81, 115, 101, 110, 107, 105, 32, 17,
+			67, 37, 69, 0, 37, 47, 12, 23, 37, 91, 0, 13, 81, 105, 115, 32, 29, 67, 37, 69, 0, 37, 47, 12, 23, 39, 55, 84, 108, 91,
+			47, 108, 65, 0, 13, 81, 111, 108, 118, 97, 115, 116, 97, 109, 32, 23, 67, 37, 69, 0, 37, 47, 12, 55, 114, 47, 12, 108, 0, 13,
+			81, 108, 195, 161, 116, 116, 97, 32, 9, 134, 14, 195, 169, 26, 14, 9, 13, 6, 195, 37, 69, 0, 13, 8, 133, 5, 12, 195, 182, 12,
+			13, 0, 0, 9, 134, 15, 12, 3, 19, 195, 179, 13, 14, 203, 60, 179, 211, 80, 83, 5, 24, 243, 142, 4, 192, 13, 12, 201, 52, 81,
+			212, 21, 68, 218, 21, 69, 0, 13, 0, 10, 135, 14, 25, 21, 7, 22, 195, 179, 13, 12, 201, 8, 83, 211, 105, 67, 212, 80, 160, 73,
+			13, 12, 137, 2, 15, 20, 18, 195, 161, 14, 25, 1, 13, 13, 3, 95, 54, 15, 107, 108, 47, 39, 72, 37, 49, 0, 0, 13, 138, 20,
+			195, 182, 18, 20, 195, 169, 14, 14, 9, 13, 40, 13, 11, 9, 1, 4, 195, 161, 19, 15, 11, 2, 195, 179, 12, 49, 37, 108, 72, 114,
+			91, 39, 49, 71, 115, 55, 23, 108, 107, 39, 88, 0, 13, 81, 97, 104, 104, 111, 122, 32, 13, 138, 20, 195, 182, 18, 20, 195, 169, 14,
+			14, 9, 13, 0, 17, 142, 16, 9, 12, 12, 1, 14, 1, 20, 15, 11, 2, 195, 179, 12, 13, 0, 9, 198, 32, 20, 141, 4, 66, 75,
+			13, 0, 6, 195, 24, 84, 211, 13, 0, 8, 197, 24, 241, 206, 4, 176, 76, 8, 197, 88, 149, 20, 20, 208, 13, 8, 197, 44, 83, 5,
+			80, 144, 13, 13, 138, 8, 195, 161, 20, 18, 195, 161, 14, 25, 1, 13, 8, 197, 60, 179, 218, 104, 16, 13, 8, 133, 4, 195, 186, 12,
+			20, 13, 0, 9, 198, 8, 195, 203, 44, 242, 192, 13, 6, 195, 44, 20, 0, 13, 0, 16, 141, 5, 19, 26, 11, 195, 182, 26, 195, 182,
+			11, 195, 182, 14, 13, 11, 136, 13, 5, 7, 25, 195, 169, 2, 5, 13, 10, 199, 32, 85, 9, 48, 20, 15, 44, 13, 6, 195, 24, 84,
+			212, 13, 0, 9, 198, 80, 84, 218, 80, 85, 0, 13, 7, 196, 44, 84, 133, 76, 13, 7, 196, 44, 84, 133, 76, 13, 13, 3, 95, 55,
+			15, 107, 109, 47, 109, 72, 37, 49, 0, 0, 12, 201, 72, 17, 193, 77, 162, 207, 16, 226, 64, 13, 13, 138, 8, 1, 19, 26, 14, 195,
+			161, 12, 10, 1, 13, 11, 136, 20, 195, 161, 18, 7, 25, 1, 11, 13, 8, 197, 84, 115, 210, 56, 144, 13, 6, 195, 60, 179, 218, 13,
+			0, 7, 66, 29, 144, 79, 113, 0, 14, 139, 16, 18, 5, 6, 5, 18, 195, 161, 12, 10, 1, 13, 9, 198, 32, 21, 129, 104, 146, 192,
+			13, 9, 198, 4, 176, 82, 56, 18, 192, 13, 9, 198, 44, 86, 133, 48, 226, 64, 13, 9, 198, 56, 85, 133, 104, 146, 192, 13, 9, 198,
+			24, 241, 193, 16, 226, 64, 13, 12, 137, 4, 15, 12, 7, 15, 26, 195, 179, 11, 13, 9, 134, 14, 25, 195, 186, 12, 20, 13, 14, 3,
+			95, 49, 17, 109, 79, 12, 109, 72, 37, 49, 109, 0, 0, 13, 138, 14, 195, 182, 22, 5, 11, 19, 26, 9, 11, 13, 11, 136, 3, 19,
+			5, 18, 195, 169, 2, 5, 13, 12, 201, 32, 20, 132, 88, 84, 133, 44, 85, 0, 13, 14, 203, 80, 20, 1, 77, 165, 1, 48, 21, 21,
+			56, 176, 13, 9, 198, 52, 241, 5, 48, 193, 75, 13, 17, 142, 195, 169, 18, 20, 5, 12, 13, 5, 26, 14, 195, 188, 14, 11, 13, 10,
+			199, 77, 161, 82, 21, 1, 76, 80, 13, 13, 138, 20, 195, 182, 18, 5, 11, 19, 26, 9, 11, 13, 10, 135, 12, 195, 179, 7, 15, 20,
+			20, 13, 10, 135, 19, 26, 195, 161, 12, 12, 20, 13, 0, 10, 135, 11, 12, 195, 179, 14, 15, 11, 13, 32, 6, 195, 186, 10, 1, 2,
+			2, 116, 57, 108, 71, 12, 23, 83, 109, 55, 108, 72, 108, 47, 0, 13, 81, 102, 101, 108, 97, 100, 97, 116, 32, 7, 196, 80, 84, 133,
+			80, 13, 12, 137, 3, 5, 12, 12, 195, 161, 11, 18, 1, 13, 16, 141, 195, 161, 12, 12, 195, 161, 19, 16, 15, 14, 20, 10, 1, 13,
+			8, 133, 22, 195, 169, 7, 5, 13, 0, 32, 10, 8, 1, 20, 195, 161, 18, 15, 26, 26, 1, 107, 108, 47, 114, 52, 39, 88, 88, 108,
+			23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 17, 142, 22, 9, 26, 19, 7, 195, 161, 12, 1, 20, 15, 11, 18, 1, 13, 13, 138,
+			11, 195, 173, 22, 195, 161, 14, 3, 19, 9, 13, 0, 14, 139, 12, 195, 182, 11, 195, 169, 19, 5, 11, 18, 5, 13, 52, 13, 13, 5,
+			7, 14, 195, 182, 22, 5, 11, 19, 26, 9, 11, 65, 109, 81, 50, 110, 84, 109, 49, 89, 37, 49, 23, 108, 23, 83, 109, 55, 107, 118,
+			88, 109, 47, 0, 13, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 9, 134, 195, 188, 7, 25, 5, 20, 13, 12, 137, 5,
+			12, 22, 195, 169, 7, 26, 9, 11, 13, 18, 143, 8, 15, 26, 26, 195, 161, 20, 1, 18, 20, 15, 26, 195, 179, 9, 13, 9, 134, 6,
+			195, 169, 14, 25, 20, 13, 9, 3, 95, 55, 5, 107, 109, 47, 0, 0, 13, 138, 5, 18, 197, 145, 19, 195, 182, 4, 9, 11, 13, 10,
+			199, 24, 83, 18, 4, 181, 1, 52, 13, 15, 140, 195, 169, 16, 195, 188, 12, 5, 20, 195, 169, 2, 5, 13, 15, 140, 11, 195, 169, 18,
+			4, 195, 169, 19, 5, 11, 18, 5, 13, 13, 138, 22, 195, 161, 18, 8, 1, 20, 195, 179, 11, 13, 0, 11, 200, 77, 1, 67, 36, 98,
+			75, 85, 48, 13, 60, 13, 8, 195, 161, 12, 195, 179, 26, 1, 20, 15, 11, 18, 1, 107, 114, 55, 115, 88, 108, 47, 39, 49, 52, 108,
+			23, 76, 108, 47, 55, 108, 49, 39, 88, 107, 108, 47, 40, 50, 49, 0, 13, 81, 99, 115, 97, 116, 108, 97, 107, 111, 122, 104, 97, 116,
+			117, 110, 107, 32, 7, 196, 32, 83, 25, 80, 13, 7, 196, 24, 243, 25, 80, 13, 15, 3, 95, 48, 15, 50, 6, 40, 55, 55, 108, 72,
+			37, 49, 0, 0, 22, 67, 20, 225, 0, 116, 57, 91, 4, 39, 52, 0, 44, 82, 111, 102, 32, 108, 105, 110, 101, 32, 17, 142, 5, 12,
+			22, 195, 169, 7, 26, 195, 169, 19, 195, 169, 2, 5, 13, 8, 195, 37, 5, 22, 17, 42, 42, 0, 18, 143, 195, 169, 12, 5, 12, 13,
+			9, 19, 26, 5, 18, 5, 11, 18, 5, 13, 14, 139, 22, 1, 18, 9, 195, 161, 14, 19, 19, 195, 161, 13, 5, 194, 44, 32, 13, 10,
+			135, 19, 26, 197, 177, 18, 197, 145, 13, 10, 135, 19, 26, 195, 179, 12, 14, 9, 13, 5, 194, 20, 224, 13, 5, 194, 20, 224, 72, 16,
+			66, 44, 32, 49, 110, 52, 111, 55, 71, 109, 55, 111, 55, 0, 25, 0, 10, 199, 4, 192, 80, 61, 165, 1, 52, 13, 10, 199, 28, 243,
+			132, 60, 197, 1, 52, 13, 14, 139, 19, 26, 1, 2, 2, 22, 195, 161, 14, 25, 20, 13, 15, 140, 6, 5, 12, 5, 12, 197, 145, 19,
+			195, 169, 7, 5, 13, 15, 4, 95, 48, 90, 53, 89, 114, 88, 109, 88, 52, 109, 72, 0, 13, 3, 95, 51, 88, 107, 108, 52, 65, 37,
+			50, 119, 0, 0, 16, 141, 12, 5, 22, 5, 26, 195, 169, 14, 25, 5, 12, 14, 9, 13, 7, 196, 20, 197, 133, 44, 13, 12, 137, 12,
+			5, 7, 25, 197, 145, 26, 14, 9, 13, 12, 137, 2, 1, 2, 18, 195, 161, 12, 14, 9, 13, 7, 196, 104, 21, 129, 72, 13, 7, 132,
+			20, 195, 169, 12, 20, 15, 4, 95, 48, 90, 52, 47, 112, 88, 109, 88, 52, 109, 72, 0, 9, 3, 95, 48, 67, 89, 114, 88, 0, 0,
+			10, 135, 195, 188, 12, 10, 195, 182, 14, 13, 9, 134, 22, 195, 169, 12, 20, 5, 13, 18, 4, 95, 48, 90, 55, 47, 112, 88, 65, 37,
+			55, 37, 39, 65, 39, 72, 0, 0, 14, 139, 22, 5, 19, 26, 20, 5, 19, 195, 169, 7, 5, 13, 9, 198, 52, 20, 129, 17, 96, 64,
+			13, 9, 198, 16, 20, 129, 9, 32, 64, 13, 15, 4, 95, 48, 90, 54, 65, 37, 55, 37, 39, 65, 39, 72, 0, 0, 15, 140, 11, 9,
+			16, 18, 195, 179, 2, 195, 161, 12, 14, 9, 13, 57, 15, 195, 161, 12, 12, 195, 161, 19, 16, 15, 14, 20, 15, 13, 1, 20, 114, 55,
+			12, 114, 91, 48, 39, 50, 47, 39, 65, 108, 47, 23, 107, 108, 50, 81, 39, 89, 47, 108, 47, 39, 65, 0, 13, 81, 104, 97, 110, 103,
+			111, 122, 116, 97, 116, 111, 109, 32, 15, 140, 12, 5, 8, 5, 20, 197, 145, 19, 195, 169, 7, 5, 13, 8, 133, 9, 4, 195, 169, 14,
+			22, 12, 4, 95, 48, 90, 49, 47, 37, 88, 109, 72, 0, 0, 10, 135, 13, 15, 19, 14, 195, 169, 11, 13, 9, 198, 52, 147, 132, 20,
+			229, 0, 13, 24, 5, 14, 195, 169, 8, 1, 50, 113, 107, 108, 15, 84, 109, 55, 109, 0, 13, 81, 118, 101, 108, 101, 32, 10, 135, 18,
+			195, 169, 19, 26, 5, 11, 13, 12, 137, 11, 9, 1, 2, 195, 161, 12, 20, 1, 13, 9, 198, 52, 147, 132, 20, 229, 0, 11, 16, 3,
+			95, 57, 15, 49, 37, 55, 109, 50, 119, 109, 72, 37, 49, 0, 0, 10, 135, 11, 195, 182, 26, 2, 5, 14, 13, 28, 7, 11, 195, 182,
+			26, 2, 5, 14, 49, 110, 88, 71, 109, 50, 10, 6, 15, 91, 109, 65, 0, 13, 81, 115, 101, 109, 32, 45, 70, 72, 81, 199, 20, 196,
+			133, 52, 109, 81, 12, 109, 55, 52, 36, 23, 113, 71, 52, 109, 72, 107, 109, 47, 111, 50, 49, 0, 13, 81, 195, 169, 98, 114, 101, 100,
+			104, 101, 116, 195, 188, 110, 107, 32, 35, 70, 72, 81, 199, 20, 196, 133, 52, 109, 81, 12, 109, 55, 52, 109, 23, 65, 109, 81, 107, 108,
+			55, 47, 0, 13, 81, 109, 101, 103, 104, 97, 108, 116, 32, 13, 138, 8, 9, 195, 161, 14, 25, 15, 12, 20, 1, 13, 12, 4, 95, 48,
+			90, 51, 109, 88, 52, 109, 72, 0, 0, 47, 9, 8, 5, 12, 25, 195, 169, 14, 5, 11, 107, 109, 57, 113, 50, 109, 49, 23, 65, 109,
+			81, 47, 108, 55, 114, 55, 114, 91, 108, 0, 13, 81, 109, 101, 103, 116, 97, 108, 195, 161, 108, 195, 161, 115, 97, 32, 14, 139, 22, 195,
+			161, 12, 1, 19, 26, 15, 12, 20, 1, 13, 17, 66, 37, 96, 50, 113, 79, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 12, 4, 95,
+			48, 90, 50, 89, 114, 88, 108, 72, 0, 0, 7, 195, 88, 243, 20, 13, 22, 28, 67, 88, 243, 20, 84, 39, 55, 47, 10, 6, 15, 107,
+			108, 55, 39, 47, 12, 0, 13, 81, 104, 97, 108, 111, 116, 116, 32, 25, 67, 88, 243, 20, 84, 39, 55, 47, 10, 6, 15, 39, 57, 108,
+			50, 0, 13, 81, 111, 108, 121, 97, 110, 32, 36, 67, 88, 243, 20, 84, 39, 55, 47, 10, 6, 15, 109, 55, 83, 39, 81, 55, 108, 55,
+			84, 108, 0, 13, 81, 101, 108, 102, 111, 103, 108, 97, 108, 118, 97, 32, 9, 134, 14, 197, 145, 14, 5, 11, 13, 39, 71, 24, 241, 204,
+			4, 197, 1, 44, 83, 39, 81, 55, 108, 55, 47, 108, 49, 10, 6, 15, 114, 55, 12, 114, 91, 47, 0, 13, 81, 195, 161, 108, 108, 195,
+			161, 115, 116, 32, 22, 67, 88, 243, 20, 84, 39, 55, 47, 15, 109, 52, 52, 109, 0, 13, 81, 101, 114, 114, 101, 32, 15, 140, 11, 9,
+			6, 15, 7, 195, 161, 19, 15, 12, 20, 1, 13, 6, 195, 44, 81, 4, 20, 0, 14, 139, 9, 7, 195, 169, 14, 25, 5, 9, 14, 5,
+			11, 13, 11, 136, 8, 195, 161, 26, 2, 195, 179, 12, 13, 12, 137, 5, 12, 195, 161, 18, 21, 12, 20, 1, 13, 10, 135, 8, 9, 20,
+			20, 195, 169, 11, 13, 0, 14, 3, 226, 136, 158, 84, 109, 81, 47, 109, 55, 109, 50, 0, 38, 10, 12, 5, 8, 5, 20, 197, 145, 22,
+			195, 169, 55, 109, 107, 109, 47, 118, 84, 113, 23, 47, 113, 47, 109, 55, 109, 0, 13, 81, 116, 195, 169, 116, 101, 108, 101, 32, 14, 139,
+			4, 18, 195, 161, 7, 195, 161, 2, 2, 1, 14, 13, 8, 197, 72, 18, 207, 81, 64, 13, 36, 10, 12, 5, 8, 5, 20, 197, 145, 22,
+			195, 169, 55, 109, 107, 109, 47, 118, 84, 113, 23, 47, 109, 50, 12, 113, 0, 13, 81, 116, 101, 110, 110, 195, 169, 32, 23, 67, 88, 84,
+			218, 84, 109, 89, 23, 52, 113, 89, 47, 0, 13, 81, 114, 195, 169, 115, 122, 116, 32, 15, 140, 8, 1, 12, 12, 7, 1, 20, 195, 179,
+			14, 1, 11, 13, 28, 69, 4, 227, 153, 37, 64, 108, 67, 67, 37, 47, 47, 40, 72, 40, 50, 49, 0, 76, 81, 116, 117, 100, 117, 110,
+			107, 32, 13, 138, 15, 18, 4, 9, 2, 195, 161, 12, 20, 1, 13, 10, 135, 9, 4, 5, 10, 195, 169, 14, 13, 6, 195, 88, 84, 218,
+			13, 10, 135, 197, 145, 19, 26, 195, 169, 14, 20, 0, 14, 139, 195, 169, 18, 20, 195, 169, 11, 5, 12, 20, 5, 13, 0, 15, 3, 226,
+			137, 160, 50, 109, 65, 109, 79, 109, 50, 55, 118, 0, 19, 67, 9, 81, 192, 71, 40, 81, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110,
+			32, 13, 138, 14, 25, 15, 13, 20, 1, 20, 195, 179, 11, 13, 10, 135, 13, 195, 182, 7, 195, 188, 12, 13, 0, 53, 11, 3, 19, 197,
+			145, 4, 10, 195, 169, 14, 5, 11, 76, 118, 79, 12, 113, 50, 109, 49, 23, 109, 55, 49, 109, 52, 111, 55, 113, 91, 113, 52, 109, 0,
+			13, 81, 101, 108, 107, 101, 114, 195, 188, 108, 195, 169, 115, 195, 169, 114, 101, 32, 13, 138, 195, 182, 22, 5, 26, 5, 20, 2, 5, 14,
+			13, 14, 139, 13, 5, 8, 5, 20, 14, 195, 169, 14, 5, 11, 13, 14, 139, 11, 195, 182, 26, 195, 182, 12, 20, 195, 169, 11, 13, 10,
+			135, 10, 195, 161, 18, 21, 14, 11, 13, 13, 138, 1, 4, 195, 179, 26, 195, 161, 19, 195, 186, 13, 11, 136, 14, 195, 169, 12, 11, 195,
+			188, 12, 13, 0, 12, 3, 226, 136, 154, 79, 110, 49, 57, 109, 55, 0, 8, 197, 8, 243, 20, 61, 64, 13, 18, 143, 15, 18, 19, 26,
+			195, 161, 7, 18, 195, 169, 19, 26, 2, 5, 14, 13, 9, 198, 44, 148, 129, 44, 21, 1, 13, 15, 140, 20, 1, 12, 195, 161, 12, 8,
+			1, 20, 195, 179, 11, 13, 6, 195, 32, 148, 218, 13, 0, 14, 139, 18, 195, 182, 7, 26, 195, 173, 20, 5, 14, 9, 13, 5, 194, 36,
+			112, 13, 14, 3, 95, 52, 17, 50, 109, 79, 109, 72, 37, 49, 109, 0, 0, 6, 195, 44, 83, 12, 13, 24, 67, 44, 83, 12, 49, 109,
+			55, 12, 23, 84, 109, 50, 12, 37, 0, 13, 81, 118, 101, 110, 110, 105, 32, 28, 67, 44, 83, 12, 49, 109, 55, 12, 23, 83, 39, 81,
+			108, 72, 50, 37, 0, 13, 81, 102, 111, 103, 97, 100, 110, 105, 32, 25, 67, 44, 83, 12, 49, 109, 55, 12, 23, 49, 110, 47, 50, 37,
+			0, 13, 81, 107, 195, 182, 116, 110, 105, 32, 32, 67, 44, 83, 12, 49, 109, 55, 12, 23, 39, 49, 47, 108, 47, 50, 37, 40, 49, 0,
+			13, 81, 111, 107, 116, 97, 116, 110, 105, 117, 107, 32, 32, 67, 44, 83, 12, 49, 109, 55, 12, 23, 107, 108, 52, 119, 39, 55, 50, 37,
+			108, 0, 13, 81, 104, 97, 114, 99, 111, 108, 110, 105, 97, 32, 17, 142, 5, 12, 4, 195, 182, 14, 20, 195, 182, 20, 20, 195, 169, 11,
+			13, 12, 201, 72, 16, 143, 76, 179, 196, 61, 69, 0, 13, 6, 195, 40, 83, 0, 13, 6, 195, 52, 244, 212, 13, 0, 12, 137, 2, 5,
+			19, 26, 195, 169, 12, 14, 9, 13, 7, 196, 48, 244, 14, 36, 13, 0, 8, 197, 8, 19, 139, 40, 16, 13, 17, 142, 20, 21, 12, 1,
+			10, 4, 15, 14, 195, 173, 20, 1, 14, 9, 13, 8, 197, 37, 51, 69, 72, 144, 13, 13, 138, 195, 161, 20, 16, 1, 11, 15, 12, 14,
+			9, 13, 9, 198, 28, 243, 132, 60, 195, 137, 13, 9, 198, 28, 243, 132, 60, 194, 129, 13, 8, 197, 77, 161, 82, 80, 80, 13, 7, 132,
+			6, 195, 161, 11, 13, 0, 31, 67, 48, 20, 0, 55, 108, 48, 9, 15, 47, 109, 47, 109, 57, 113, 52, 109, 0, 13, 81, 116, 101, 116,
+			101, 106, 195, 169, 114, 101, 32, 6, 195, 48, 20, 0, 13, 7, 132, 6, 195, 161, 10, 13, 7, 195, 56, 242, 1, 72, 8, 0, 15, 140,
+			19, 26, 1, 2, 195, 161, 12, 25, 15, 26, 14, 9, 13, 21, 146, 13, 5, 7, 22, 195, 161, 19, 195, 161, 18, 15, 12, 8, 1, 20,
+			195, 179, 11, 13, 15, 140, 18, 195, 161, 2, 5, 19, 26, 195, 169, 12, 14, 9, 13, 12, 201, 24, 83, 1, 16, 21, 15, 44, 21, 0,
+			13, 10, 199, 40, 21, 129, 76, 243, 10, 4, 13, 11, 136, 195, 161, 6, 1, 1, 58, 6, 1, 42, 0, 11, 200, 60, 197, 129, 76, 112,
+			84, 88, 16, 13, 22, 147, 13, 15, 2, 9, 12, 19, 26, 15, 12, 7, 195, 161, 12, 20, 1, 20, 195, 179, 11, 13, 9, 134, 11, 195,
+			161, 15, 19, 26, 13, 0, 11, 3, 226, 136, 146, 65, 37, 50, 40, 89, 0, 9, 198, 64, 244, 148, 60, 195, 137, 13, 8, 197, 20, 165,
+			5, 56, 144, 13, 0, 10, 135, 22, 195, 169, 7, 26, 5, 13, 13, 15, 140, 9, 14, 4, 195, 173, 20, 195, 161, 19, 11, 15, 18, 13,
+			13, 3, 95, 53, 17, 110, 47, 110, 72, 37, 49, 109, 0, 0, 9, 134, 6, 197, 145, 14, 5, 11, 13, 13, 138, 14, 25, 195, 186, 10,
+			20, 1, 14, 1, 11, 13, 10, 199, 52, 81, 205, 60, 225, 10, 4, 13, 8, 133, 9, 4, 195, 169, 26, 13, 10, 135, 3, 19, 9, 14,
+			195, 161, 12, 13, 9, 3, 95, 49, 48, 47, 112, 88, 0, 0, 11, 200, 76, 84, 139, 20, 229, 5, 56, 144, 13, 7, 196, 16, 149, 129,
+			80, 13, 7, 132, 8, 195, 169, 20, 13, 0, 15, 140, 11, 5, 18, 195, 188, 12, 14, 195, 169, 14, 5, 11, 13, 7, 132, 6, 197, 145,
+			19, 13, 11, 136, 10, 195, 161, 20, 19, 26, 9, 11, 13, 6, 195, 41, 85, 0, 13, 0, 11, 136, 13, 5, 13, 2, 18, 195, 161, 14,
+			13, 9, 134, 195, 169, 16, 195, 173, 20, 13, 12, 4, 8, 195, 169, 22, 107, 113, 84, 0, 42, 42, 0, 19, 71, 44, 147, 15, 29, 32,
+			77, 52, 107, 105, 108, 111, 103, 114, 97, 109, 0, 29, 27, 4, 5, 19, 197, 145, 109, 91, 118, 23, 52, 113, 89, 113, 47, 0, 13, 81,
+			114, 195, 169, 115, 122, 195, 169, 116, 32, 29, 4, 5, 19, 197, 145, 109, 91, 118, 23, 48, 39, 50, 80, 108, 37, 50, 0, 13, 81, 112,
+			111, 110, 116, 106, 97, 105, 110, 32, 11, 136, 20, 195, 161, 18, 8, 5, 12, 25, 13, 7, 132, 5, 19, 197, 145, 13, 0, 14, 139, 11,
+			15, 18, 13, 195, 161, 14, 25, 14, 1, 11, 13, 27, 4, 6, 197, 145, 20, 83, 118, 47, 23, 84, 114, 52, 40, 50, 49, 0, 13, 81,
+			118, 195, 161, 114, 117, 110, 107, 32, 15, 140, 18, 5, 14, 4, 19, 26, 5, 18, 18, 197, 145, 12, 13, 15, 140, 19, 26, 5, 13, 20,
+			1, 14, 195, 186, 22, 1, 12, 13, 7, 132, 12, 195, 169, 16, 13, 7, 132, 6, 197, 145, 20, 13, 7, 132, 6, 195, 161, 20, 13, 13,
+			3, 95, 52, 15, 50, 109, 79, 109, 72, 37, 49, 0, 18, 4, 95, 48, 90, 56, 89, 114, 88, 65, 37, 55, 37, 39, 65, 39, 72, 0,
+			0, 12, 137, 8, 1, 19, 15, 14, 12, 195, 173, 20, 13, 15, 140, 20, 1, 18, 20, 1, 12, 13, 195, 161, 14, 1, 11, 13, 9, 134,
+			12, 5, 12, 11, 197, 177, 13, 13, 138, 8, 1, 20, 195, 161, 18, 9, 4, 197, 145, 13, 0, 9, 198, 20, 195, 65, 72, 17, 20, 13,
+			13, 138, 18, 195, 169, 19, 26, 5, 19, 195, 188, 12, 13, 16, 141, 16, 18, 15, 7, 18, 1, 13, 10, 195, 161, 14, 1, 11, 13, 12,
+			201, 64, 19, 129, 77, 162, 207, 16, 224, 75, 13, 10, 135, 6, 195, 188, 7, 7, 197, 145, 13, 12, 137, 1, 11, 20, 21, 195, 161, 12,
+			9, 19, 13, 13, 138, 14, 25, 21, 7, 4, 195, 173, 10, 1, 20, 13, 0, 15, 140, 9, 18, 195, 161, 14, 25, 195, 173, 20, 1, 14,
+			9, 13, 9, 198, 16, 243, 7, 61, 162, 75, 13, 12, 3, 95, 55, 88, 107, 109, 47, 84, 109, 50, 0, 0, 22, 5, 195, 169, 12, 20,
+			5, 113, 55, 47, 109, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 10, 135, 18, 5, 195, 161, 12, 9, 19, 13, 7, 196, 64, 81,
+			9, 28, 13, 49, 70, 88, 148, 218, 60, 229, 0, 84, 37, 89, 39, 50, 47, 23, 109, 55, 109, 50, 81, 109, 72, 107, 109, 47, 109, 47,
+			55, 109, 50, 0, 13, 81, 101, 108, 101, 110, 103, 101, 100, 104, 101, 116, 101, 116, 108, 101, 110, 32, 23, 70, 88, 148, 218, 60, 229, 0,
+			84, 37, 89, 39, 50, 47, 23, 108, 88, 0, 13, 81, 97, 122, 32, 25, 150, 18, 5, 14, 4, 19, 26, 5, 18, 20, 5, 12, 5, 16,
+			195, 173, 20, 195, 169, 19, 11, 15, 18, 13, 50, 70, 88, 148, 218, 60, 229, 0, 84, 37, 89, 39, 50, 47, 23, 108, 89, 47, 23, 47,
+			108, 48, 108, 89, 47, 108, 55, 47, 108, 65, 0, 13, 82, 97, 122, 116, 32, 116, 97, 112, 97, 115, 122, 116, 97, 108, 116, 97, 109, 32,
+			9, 198, 88, 148, 218, 60, 229, 0, 13, 7, 196, 52, 20, 16, 4, 13, 7, 196, 44, 20, 20, 4, 13, 0, 17, 142, 6, 5, 12, 20,
+			5, 12, 5, 16, 195, 173, 20, 5, 14, 9, 13, 8, 197, 44, 20, 10, 60, 224, 13, 9, 198, 4, 192, 75, 84, 195, 137, 13, 0, 18,
+			143, 13, 5, 7, 22, 1, 12, 195, 179, 19, 195, 173, 20, 1, 14, 9, 13, 44, 7, 195, 161, 12, 12, 1, 13, 9, 114, 55, 12, 108,
+			65, 37, 10, 6, 15, 47, 114, 65, 39, 81, 108, 47, 114, 91, 108, 0, 13, 81, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 97,
+			32, 18, 4, 14, 195, 169, 26, 50, 113, 88, 23, 49, 37, 0, 13, 81, 107, 105, 32, 11, 136, 13, 195, 179, 4, 19, 26, 5, 18, 13,
+			10, 135, 7, 25, 195, 182, 18, 7, 25, 13, 9, 198, 88, 149, 1, 81, 64, 64, 13, 9, 198, 81, 81, 1, 81, 64, 64, 13, 7, 132,
+			14, 195, 169, 26, 13, 7, 132, 22, 195, 173, 26, 13, 0, 10, 199, 65, 35, 202, 20, 181, 10, 20, 13, 0, 22, 68, 81, 33, 78, 16,
+			47, 52, 109, 50, 72, 10, 6, 15, 108, 88, 0, 13, 81, 97, 122, 32, 0, 13, 138, 11, 195, 182, 22, 5, 20, 5, 12, 20, 5, 13,
+			9, 134, 6, 195, 182, 12, 195, 169, 13, 0, 20, 66, 37, 128, 49, 37, 55, 109, 50, 119, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32,
+			9, 5, 95, 35, 45, 9, 11, 15, 0, 0, 6, 195, 44, 83, 20, 13, 6, 195, 24, 243, 20, 13, 0, 9, 198, 104, 18, 140, 61, 69,
+			0, 13, 0, 12, 137, 6, 5, 12, 195, 161, 18, 18, 1, 12, 13, 11, 136, 5, 18, 197, 145, 19, 26, 1, 11, 13, 11, 136, 13, 1,
+			7, 195, 161, 14, 1, 11, 13, 14, 139, 20, 5, 18, 195, 188, 12, 5, 20, 195, 169, 14, 13, 7, 132, 8, 195, 173, 7, 13, 8, 197,
+			44, 20, 15, 81, 64, 13, 0, 12, 137, 12, 1, 11, 14, 195, 161, 14, 1, 11, 13, 20, 145, 8, 1, 10, 12, 195, 169, 11, 20, 1,
+			12, 1, 14, 10, 1, 9, 14, 11, 13, 9, 198, 88, 85, 5, 81, 65, 64, 13, 12, 5, 95, 35, 45, 9, 7, 113, 37, 81, 0, 21,
+			0, 13, 138, 9, 4, 197, 145, 19, 26, 1, 11, 15, 11, 13, 0, 9, 198, 77, 162, 210, 37, 5, 0, 13, 9, 198, 77, 162, 210, 37,
+			5, 0, 13, 16, 141, 2, 5, 6, 15, 12, 25, 195, 161, 19, 15, 12, 20, 1, 13, 0, 15, 140, 4, 15, 12, 7, 15, 26, 14, 195,
+			161, 14, 1, 11, 13, 15, 140, 13, 5, 7, 15, 12, 4, 195, 161, 19, 14, 1, 11, 13, 11, 136, 12, 195, 161, 19, 26, 12, 195, 179,
+			13, 9, 198, 76, 244, 143, 104, 21, 1, 13, 13, 138, 13, 5, 7, 22, 195, 169, 4, 5, 14, 9, 13, 0, 20, 145, 6, 5, 12, 8,
+			1, 19, 26, 14, 195, 161, 12, 195, 179, 11, 14, 1, 11, 13, 29, 66, 52, 16, 65, 108, 15, 72, 113, 55, 109, 55, 118, 47, 12, 0,
+			13, 81, 100, 195, 169, 108, 101, 108, 197, 145, 116, 116, 32, 19, 144, 195, 161, 12, 12, 1, 13, 20, 9, 20, 11, 195, 161, 18, 2, 1,
+			14, 13, 27, 66, 52, 16, 65, 108, 15, 72, 113, 55, 40, 47, 114, 50, 0, 13, 81, 100, 195, 169, 108, 117, 116, 195, 161, 110, 32, 5,
+			194, 52, 16, 13, 19, 66, 36, 144, 49, 109, 47, 12, 118, 84, 109, 55, 0, 44, 42, 81, 101, 108, 32, 21, 2, 48, 48, 50, 40, 55,
+			12, 108, 50, 40, 55, 12, 114, 50, 0, 44, 81, 32, 110, 32, 26, 2, 48, 48, 50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 47, 115,
+			55, 0, 44, 81, 32, 116, 195, 179, 108, 32, 21, 2, 48, 48, 50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 91, 0, 44, 81, 32, 115,
+			32, 23, 2, 48, 48, 50, 40, 55, 12, 108, 50, 40, 55, 12, 114, 37, 81, 0, 44, 81, 32, 105, 103, 32, 15, 3, 95, 56, 17, 67,
+			39, 55, 119, 108, 72, 37, 49, 108, 0, 0, 22, 67, 52, 134, 128, 109, 101, 103, 97, 104, 101, 114, 99, 101, 110, 0, 44, 29, 81, 101,
+			110, 32, 23, 67, 52, 134, 128, 109, 101, 103, 97, 104, 101, 114, 99, 101, 110, 0, 44, 29, 42, 81, 101, 110, 32, 13, 138, 6, 9, 26,
+			5, 20, 14, 9, 195, 188, 11, 13, 11, 3, 95, 49, 88, 47, 37, 88, 109, 50, 0, 0, 8, 133, 195, 169, 12, 22, 5, 13, 10, 135,
+			1, 4, 8, 1, 20, 195, 179, 13, 0, 8, 197, 24, 241, 212, 60, 176, 76, 11, 136, 22, 195, 169, 7, 195, 169, 9, 7, 13, 8, 197,
+			45, 83, 3, 76, 16, 13, 68, 69, 29, 145, 78, 28, 80, 79, 109, 50, 81, 109, 15, 55, 113, 81, 65, 39, 88, 81, 114, 91, 52, 108,
+			23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 13, 82, 108, 195, 169, 103, 109, 111, 122, 103, 195, 161, 115, 114, 97, 32, 115,
+			122, 195, 161, 109, 195, 173, 116, 104, 97, 116, 117, 110, 107, 32, 19, 144, 5, 13, 2, 5, 18, 20, 195, 161, 18, 19, 1, 9, 11, 14,
+			1, 11, 13, 11, 136, 12, 195, 161, 20, 20, 21, 14, 11, 13, 0, 50, 9, 22, 195, 161, 18, 8, 1, 20, 195, 179, 84, 114, 52, 107,
+			108, 47, 115, 23, 108, 55, 108, 49, 40, 55, 114, 91, 114, 52, 115, 55, 0, 13, 81, 97, 108, 97, 107, 117, 108, 195, 161, 115, 195, 161,
+			114, 195, 179, 108, 32, 12, 137, 8, 1, 12, 12, 8, 1, 20, 195, 179, 13, 30, 9, 22, 195, 161, 18, 8, 1, 20, 195, 179, 84, 114,
+			52, 107, 108, 47, 115, 23, 109, 91, 118, 0, 13, 81, 101, 115, 197, 145, 32, 12, 137, 22, 195, 161, 18, 8, 1, 20, 195, 179, 13, 9,
+			198, 20, 208, 133, 73, 33, 76, 13, 9, 198, 32, 246, 142, 37, 82, 192, 13, 12, 137, 22, 195, 161, 18, 8, 1, 20, 195, 179, 13, 0,
+			23, 4, 195, 186, 7, 25, 116, 79, 10, 6, 15, 83, 109, 91, 47, 0, 13, 81, 102, 101, 115, 116, 32, 38, 4, 195, 186, 7, 25, 116,
+			79, 10, 6, 15, 113, 52, 47, 109, 55, 65, 109, 89, 47, 109, 65, 0, 13, 81, 195, 169, 114, 116, 101, 108, 109, 101, 122, 116, 101, 109,
+			32, 36, 4, 195, 186, 7, 25, 116, 79, 10, 6, 15, 113, 52, 47, 109, 55, 65, 109, 88, 109, 65, 0, 13, 81, 195, 169, 114, 116, 101,
+			108, 109, 101, 122, 101, 109, 32, 10, 199, 16, 243, 7, 61, 163, 212, 80, 13, 10, 199, 24, 83, 1, 16, 21, 15, 44, 13, 22, 4, 195,
+			186, 7, 25, 116, 79, 23, 107, 37, 89, 37, 0, 13, 81, 104, 105, 115, 122, 105, 32, 10, 199, 20, 211, 5, 28, 85, 14, 36, 13, 7,
+			132, 195, 186, 7, 25, 13, 0, 12, 137, 2, 5, 19, 26, 195, 169, 12, 22, 5, 13, 11, 200, 36, 225, 193, 80, 192, 78, 84, 176, 13,
+			9, 134, 195, 169, 12, 195, 169, 14, 13, 7, 132, 14, 195, 169, 12, 13, 0, 8, 197, 81, 33, 78, 16, 144, 13, 15, 140, 195, 161, 12,
+			12, 195, 173, 20, 8, 1, 20, 195, 179, 13, 8, 197, 81, 81, 14, 36, 16, 13, 8, 197, 44, 20, 20, 4, 176, 13, 0, 16, 141, 22,
+			9, 26, 19, 7, 195, 161, 12, 8, 1, 20, 195, 179, 13, 50, 9, 195, 161, 12, 12, 10, 1, 14, 1, 11, 114, 57, 57, 108, 50, 108,
+			49, 23, 52, 109, 50, 72, 109, 55, 49, 109, 88, 113, 91, 52, 109, 0, 13, 81, 114, 101, 110, 100, 101, 108, 107, 101, 122, 195, 169, 115,
+			114, 101, 32, 6, 131, 12, 197, 145, 13, 17, 2, 49, 48, 47, 112, 88, 88, 109, 55, 0, 44, 81, 32, 101, 108, 32, 15, 2, 49, 48,
+			47, 37, 88, 109, 47, 0, 44, 81, 32, 116, 32, 23, 2, 49, 48, 47, 112, 89, 12, 109, 52, 109, 91, 0, 44, 81, 32, 115, 122, 101,
+			114, 101, 115, 32, 19, 2, 49, 48, 47, 112, 89, 12, 109, 52, 0, 44, 81, 32, 115, 122, 101, 114, 32, 17, 3, 95, 57, 17, 49, 37,
+			55, 109, 50, 119, 109, 72, 37, 49, 109, 0, 0, 10, 199, 20, 194, 83, 52, 84, 148, 20, 13, 9, 134, 10, 195, 179, 14, 1, 11, 13,
+			8, 133, 195, 169, 12, 19, 26, 13, 30, 2, 49, 51, 116, 105, 122, 101, 110, 104, 97, 114, 109, 97, 100, 105, 107, 195, 161, 105, 103, 0,
+			44, 21, 29, 81, 32, 105, 103, 32, 11, 3, 95, 50, 88, 107, 40, 89, 39, 50, 0, 0, 11, 136, 2, 5, 19, 26, 195, 169, 12, 20,
+			13, 11, 136, 2, 5, 19, 26, 195, 169, 12, 20, 13, 10, 135, 12, 195, 161, 20, 20, 21, 11, 13, 11, 136, 2, 5, 19, 26, 195, 169,
+			12, 20, 13, 7, 132, 14, 195, 169, 16, 13, 7, 196, 29, 147, 210, 76, 13, 7, 132, 20, 195, 169, 20, 13, 0, 20, 67, 49, 53, 0,
+			101, 108, 101, 115, 116, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 20, 67, 49, 53, 0, 101, 108, 101, 115, 116, 195, 169, 107, 0, 44,
+			29, 42, 81, 107, 32, 15, 140, 19, 26, 195, 188, 12, 5, 19, 19, 5, 14, 5, 11, 13, 7, 132, 18, 195, 169, 19, 13, 14, 67, 49,
+			53, 0, 109, 55, 109, 91, 47, 113, 0, 42, 42, 0, 13, 202, 88, 243, 129, 80, 179, 218, 104, 19, 129, 44, 13, 16, 141, 18, 5, 14,
+			4, 197, 145, 18, 195, 182, 11, 14, 5, 11, 13, 12, 137, 9, 20, 195, 169, 12, 20, 195, 169, 11, 13, 7, 132, 22, 195, 169, 18, 13,
+			0, 10, 199, 88, 19, 1, 52, 149, 133, 48, 13, 11, 136, 20, 5, 18, 10, 5, 4, 197, 145, 13, 12, 137, 19, 20, 195, 173, 12, 21,
+			19, 195, 186, 13, 11, 136, 2, 195, 161, 14, 20, 1, 14, 9, 13, 0, 11, 136, 8, 9, 20, 5, 12, 195, 169, 20, 13, 11, 136, 195,
+			169, 12, 5, 20, 195, 169, 20, 13, 10, 135, 19, 26, 195, 173, 14, 5, 19, 13, 8, 133, 22, 195, 169, 12, 9, 13, 8, 133, 22, 195,
+			169, 12, 9, 13, 29, 2, 49, 54, 116, 105, 122, 101, 110, 104, 97, 116, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32,
+			105, 103, 32, 14, 3, 95, 56, 15, 67, 39, 55, 119, 108, 72, 37, 49, 0, 0, 14, 139, 9, 14, 20, 195, 169, 26, 5, 20, 2, 5,
+			14, 13, 46, 6, 6, 5, 12, 8, 197, 145, 83, 109, 55, 107, 118, 23, 55, 109, 89, 23, 83, 109, 55, 109, 47, 12, 111, 50, 49, 0,
+			13, 82, 108, 101, 115, 122, 32, 102, 101, 108, 101, 116, 116, 195, 188, 110, 107, 32, 38, 6, 6, 5, 12, 8, 197, 145, 83, 109, 55, 107,
+			118, 23, 84, 108, 55, 115, 89, 112, 50, 117, 0, 13, 81, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 32, 16, 141, 195, 169,
+			19, 26, 18, 5, 22, 195, 169, 20, 5, 12, 20, 13, 13, 138, 19, 26, 195, 161, 14, 4, 195, 169, 11, 1, 13, 11, 136, 12, 5, 14,
+			14, 195, 169, 14, 11, 13, 6, 195, 9, 84, 218, 13, 0, 24, 66, 52, 32, 109, 101, 103, 97, 98, 195, 161, 106, 116, 116, 97, 108, 0,
+			44, 29, 42, 81, 97, 108, 32, 31, 7, 22, 5, 26, 5, 20, 197, 145, 84, 109, 88, 109, 47, 118, 23, 50, 118, 50, 109, 49, 0, 13,
+			81, 110, 197, 145, 110, 101, 107, 32, 15, 140, 5, 12, 12, 5, 14, 20, 195, 169, 20, 2, 5, 14, 13, 10, 135, 19, 26, 195, 188, 12,
+			197, 145, 13, 10, 135, 22, 5, 26, 5, 20, 197, 145, 13, 14, 139, 11, 5, 4, 22, 5, 26, 13, 195, 169, 14, 25, 13, 7, 132, 20,
+			195, 169, 18, 13, 7, 132, 14, 195, 169, 22, 13, 7, 132, 8, 195, 173, 18, 13, 15, 66, 52, 32, 65, 109, 81, 108, 71, 114, 57, 47,
+			0, 42, 42, 17, 2, 50, 48, 107, 116, 89, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 25, 2, 50, 48, 104, 117, 115, 122, 97, 100,
+			105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 22, 2, 50, 48, 104, 117, 115, 122, 97, 100, 105, 107, 97, 105, 0,
+			44, 21, 29, 81, 32, 105, 32, 31, 2, 49, 56, 116, 105, 122, 101, 110, 110, 121, 111, 108, 99, 97, 100, 105, 107, 195, 161, 105, 103, 0,
+			44, 21, 29, 81, 32, 105, 103, 32, 0, 9, 198, 41, 85, 15, 81, 64, 75, 13, 22, 5, 16, 195, 169, 14, 26, 48, 113, 50, 88, 15,
+			84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 17, 142, 5, 24, 16, 5, 4, 195, 173, 3, 9, 195, 179, 14, 1, 11, 13, 10, 135, 9,
+			4, 5, 10, 195, 169, 20, 13, 16, 141, 11, 195, 182, 18, 14, 25, 5, 26, 5, 20, 2, 5, 14, 13, 8, 133, 16, 195, 169, 14, 26,
+			13, 31, 2, 50, 51, 104, 117, 115, 122, 111, 110, 104, 97, 114, 109, 97, 100, 105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105,
+			103, 32, 0, 14, 139, 3, 19, 9, 14, 195, 161, 12, 10, 21, 14, 11, 13, 7, 196, 25, 35, 206, 80, 13, 7, 132, 20, 197, 145, 12,
+			13, 0, 12, 137, 22, 5, 26, 195, 169, 18, 195, 169, 20, 13, 13, 138, 14, 5, 22, 5, 26, 8, 5, 20, 197, 145, 13, 12, 137, 20,
+			1, 14, 4, 195, 173, 10, 1, 20, 13, 7, 195, 44, 101, 0, 13, 42, 8, 133, 19, 195, 169, 18, 20, 13, 0, 19, 144, 20, 21, 4,
+			1, 20, 195, 161, 12, 12, 1, 16, 15, 20, 2, 1, 14, 13, 34, 6, 6, 5, 12, 197, 145, 12, 83, 109, 55, 118, 55, 10, 6, 15,
+			50, 113, 88, 88, 111, 49, 0, 13, 81, 110, 195, 169, 122, 122, 195, 188, 107, 32, 16, 141, 9, 14, 20, 5, 18, 14, 5, 20, 5, 26,
+			195, 169, 19, 13, 7, 132, 20, 195, 161, 14, 13, 9, 134, 6, 5, 12, 197, 145, 12, 13, 12, 7, 95, 35, 45, 9, 11, 5, 9, 109,
+			37, 0, 0, 10, 135, 22, 15, 12, 20, 195, 161, 12, 72, 10, 199, 77, 163, 198, 81, 97, 82, 20, 13, 33, 71, 32, 149, 129, 80, 19,
+			15, 76, 107, 37, 84, 108, 47, 108, 55, 39, 91, 23, 55, 109, 50, 12, 109, 0, 13, 81, 108, 101, 110, 110, 101, 32, 10, 199, 60, 179,
+			218, 32, 21, 20, 4, 13, 7, 132, 18, 195, 161, 13, 13, 7, 132, 18, 195, 161, 13, 13, 14, 67, 77, 64, 128, 91, 108, 47, 110, 71,
+			12, 37, 0, 25, 0, 33, 6, 5, 7, 195, 169, 19, 26, 109, 81, 113, 89, 23, 49, 109, 55, 12, 109, 65, 109, 91, 0, 13, 81, 107,
+			101, 108, 108, 101, 109, 101, 115, 32, 7, 132, 18, 197, 145, 12, 13, 18, 3, 95, 63, 63, 49, 108, 52, 108, 49, 47, 109, 34, 15, 49,
+			115, 72, 0, 30, 2, 50, 54, 104, 117, 115, 122, 111, 110, 104, 97, 116, 111, 100, 105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32,
+			105, 103, 32, 11, 6, 95, 35, 45, 195, 161, 14, 114, 50, 0, 0, 17, 142, 12, 195, 169, 20, 5, 19, 195, 173, 20, 13, 195, 169, 14,
+			25, 13, 11, 136, 12, 195, 169, 20, 5, 26, 9, 11, 13, 11, 136, 12, 195, 169, 20, 5, 26, 9, 11, 13, 0, 9, 198, 45, 34, 84,
+			36, 176, 64, 13, 13, 138, 195, 182, 20, 12, 5, 20, 20, 197, 145, 12, 13, 13, 138, 22, 1, 12, 12, 195, 179, 11, 11, 1, 12, 13,
+			13, 138, 16, 195, 161, 18, 20, 15, 11, 11, 1, 12, 13, 12, 137, 195, 169, 18, 20, 195, 169, 11, 5, 11, 13, 12, 66, 53, 32, 65,
+			37, 89, 47, 109, 52, 0, 25, 21, 2, 51, 48, 107, 108, 52, 65, 37, 50, 119, 12, 108, 55, 0, 44, 81, 32, 97, 108, 32, 22, 2,
+			51, 48, 107, 108, 52, 65, 37, 50, 119, 12, 108, 55, 0, 44, 81, 32, 99, 97, 108, 32, 25, 2, 51, 48, 104, 97, 114, 109, 105, 110,
+			99, 97, 100, 105, 107, 97, 105, 0, 44, 21, 29, 81, 32, 105, 32, 28, 2, 51, 48, 104, 97, 114, 109, 105, 110, 99, 97, 100, 105, 107,
+			195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 32, 2, 50, 56, 104, 117, 115, 122, 111, 110, 110, 121, 111, 108, 99, 97, 100,
+			105, 107, 195, 161, 105, 103, 0, 44, 21, 29, 81, 32, 105, 103, 32, 0, 20, 145, 3, 19, 1, 16, 1, 4, 195, 169, 11, 18, 5, 14,
+			4, 19, 26, 5, 18, 13, 12, 3, 95, 52, 88, 50, 109, 79, 84, 109, 50, 0, 0, 30, 70, 52, 83, 12, 21, 69, 0, 65, 109, 55,
+			12, 109, 47, 12, 23, 84, 39, 55, 50, 108, 0, 13, 81, 118, 111, 108, 110, 97, 32, 40, 11, 8, 21, 12, 12, 1, 4, 195, 169, 11,
+			15, 11, 107, 40, 55, 12, 108, 72, 113, 49, 39, 49, 23, 76, 40, 48, 114, 50, 0, 13, 81, 99, 115, 117, 112, 195, 161, 110, 32, 24,
+			70, 52, 83, 12, 21, 69, 0, 65, 109, 55, 12, 109, 47, 12, 23, 108, 88, 0, 13, 81, 97, 122, 32, 38, 6, 1, 12, 1, 16, 195,
+			186, 108, 55, 108, 48, 116, 10, 6, 15, 52, 109, 50, 119, 109, 52, 109, 50, 0, 13, 81, 114, 101, 110, 100, 115, 122, 101, 114, 101, 110,
+			32, 34, 9, 195, 169, 16, 195, 188, 12, 5, 20, 5, 113, 48, 111, 55, 109, 47, 109, 23, 109, 55, 118, 47, 12, 0, 13, 81, 101, 108,
+			197, 145, 116, 116, 32, 18, 143, 4, 9, 195, 161, 11, 20, 195, 188, 14, 20, 5, 20, 195, 169, 19, 13, 9, 134, 1, 12, 1, 16, 195,
+			186, 13, 12, 137, 195, 161, 12, 4, 15, 26, 1, 20, 1, 13, 6, 131, 12, 195, 179, 13, 9, 198, 52, 83, 12, 21, 69, 0, 13, 0,
+			19, 144, 8, 1, 12, 195, 161, 12, 2, 195, 188, 14, 20, 5, 20, 195, 169, 19, 13, 50, 8, 9, 19, 11, 15, 12, 195, 161, 11, 37,
+			91, 49, 39, 55, 114, 49, 23, 65, 111, 49, 110, 47, 12, 109, 47, 113, 91, 113, 47, 0, 13, 81, 109, 197, 177, 107, 195, 182, 100, 116,
+			101, 116, 195, 169, 115, 195, 169, 116, 32, 8, 197, 8, 195, 199, 61, 64, 13, 7, 132, 1, 4, 195, 179, 13, 7, 132, 8, 195, 161, 7,
+			13, 0, 11, 136, 13, 1, 7, 195, 161, 8, 15, 26, 13, 14, 139, 6, 15, 12, 25, 195, 179, 9, 18, 1, 20, 1, 13, 11, 136, 16,
+			15, 14, 20, 10, 195, 161, 14, 13, 13, 138, 11, 15, 18, 195, 186, 1, 11, 11, 1, 12, 13, 10, 135, 13, 195, 161, 19, 26, 14, 9,
+			13, 0, 70, 10, 19, 26, 5, 14, 22, 5, 4, 197, 145, 11, 89, 109, 50, 84, 109, 72, 118, 49, 23, 49, 110, 52, 113, 71, 109, 50,
+			23, 48, 52, 115, 71, 114, 55, 50, 114, 49, 23, 49, 37, 0, 13, 83, 107, 195, 182, 114, 195, 169, 98, 101, 110, 32, 112, 114, 195, 179,
+			98, 195, 161, 108, 110, 195, 161, 107, 32, 107, 105, 32, 11, 136, 11, 195, 188, 12, 4, 5, 14, 9, 13, 0, 14, 139, 11, 5, 18, 5,
+			19, 11, 5, 4, 197, 145, 11, 13, 7, 132, 18, 195, 161, 4, 13, 0, 53, 73, 80, 20, 148, 4, 195, 65, 44, 176, 76, 47, 108, 52,
+			47, 108, 55, 65, 108, 49, 12, 108, 55, 10, 6, 15, 49, 108, 48, 76, 39, 55, 108, 47, 71, 108, 50, 0, 13, 81, 107, 97, 112, 99,
+			115, 111, 108, 97, 116, 98, 97, 110, 32, 13, 138, 13, 5, 7, 195, 169, 18, 20, 5, 14, 9, 13, 11, 136, 13, 5, 14, 20, 195, 188,
+			14, 11, 13, 8, 197, 80, 21, 129, 77, 160, 20, 0, 27, 6, 18, 195, 182, 22, 9, 4, 52, 110, 84, 37, 72, 23, 108, 107, 39, 88,
+			0, 13, 81, 97, 104, 104, 111, 122, 32, 9, 134, 18, 195, 182, 22, 9, 4, 13, 26, 66, 48, 80, 55, 109, 10, 6, 15, 84, 39, 49,
+			91, 114, 47, 0, 13, 81, 118, 111, 107, 115, 195, 161, 116, 32, 19, 144, 7, 25, 195, 179, 7, 25, 21, 12, 195, 161, 19, 195, 161, 8,
+			15, 26, 13, 29, 66, 48, 80, 55, 109, 23, 83, 39, 81, 23, 83, 40, 47, 50, 37, 0, 13, 82, 102, 111, 103, 32, 102, 117, 116, 110,
+			105, 32, 6, 195, 5, 2, 129, 13, 22, 194, 48, 80, 13, 82, 107, 101, 108, 108, 32, 115, 122, 195, 182, 103, 101, 122, 110, 101, 109, 32,
+			17, 142, 16, 15, 12, 7, 195, 161, 18, 13, 5, 19, 20, 5, 18, 20, 13, 7, 132, 12, 195, 161, 2, 13, 5, 194, 56, 16, 72, 5,
+			194, 48, 80, 13, 5, 194, 36, 176, 13, 20, 2, 52, 48, 50, 109, 79, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0,
+			22, 147, 16, 195, 169, 14, 26, 9, 14, 20, 195, 169, 26, 5, 20, 5, 11, 20, 197, 145, 12, 13, 11, 3, 95, 53, 88, 110, 47, 84,
+			109, 50, 0, 0, 10, 135, 15, 18, 19, 26, 195, 161, 7, 13, 30, 7, 15, 18, 19, 26, 195, 161, 7, 10, 39, 52, 89, 114, 81, 23,
+			83, 110, 55, 113, 0, 13, 81, 102, 195, 182, 108, 195, 169, 32, 8, 133, 20, 195, 169, 22, 5, 13, 7, 196, 32, 149, 20, 20, 13, 0,
+			8, 197, 76, 82, 148, 36, 176, 13, 11, 136, 8, 1, 19, 15, 14, 12, 195, 179, 13, 8, 197, 24, 241, 206, 36, 16, 13, 17, 142, 15,
+			16, 20, 9, 13, 1, 12, 9, 26, 195, 161, 12, 14, 9, 13, 0, 45, 67, 56, 20, 0, 50, 108, 48, 23, 108, 55, 108, 47, 12, 23,
+			47, 40, 72, 108, 47, 39, 91, 40, 55, 47, 0, 13, 82, 97, 108, 97, 116, 116, 32, 116, 117, 100, 97, 116, 111, 115, 117, 108, 116, 32,
+			50, 67, 56, 20, 0, 50, 108, 48, 23, 40, 47, 114, 50, 23, 89, 111, 55, 109, 47, 109, 47, 12, 23, 65, 109, 81, 0, 13, 83, 117,
+			116, 195, 161, 110, 32, 115, 122, 195, 188, 108, 101, 116, 101, 116, 116, 32, 109, 101, 103, 32, 19, 67, 56, 20, 0, 50, 108, 48, 10, 6,
+			15, 37, 91, 0, 13, 81, 105, 115, 32, 12, 137, 2, 9, 26, 1, 11, 15, 4, 195, 179, 13, 12, 137, 20, 195, 161, 18, 15, 12, 21,
+			14, 11, 13, 6, 195, 56, 20, 0, 13, 0, 12, 201, 37, 51, 69, 72, 85, 5, 44, 85, 0, 13, 22, 6, 20, 195, 161, 10, 1, 11,
+			47, 114, 57, 108, 49, 23, 37, 91, 0, 13, 81, 105, 115, 32, 9, 198, 28, 243, 132, 60, 195, 203, 13, 10, 199, 40, 21, 129, 76, 243,
+			14, 36, 13, 10, 199, 77, 160, 86, 5, 163, 212, 80, 13, 13, 138, 19, 195, 186, 10, 20, 8, 1, 20, 195, 179, 13, 13, 138, 7, 25,
+			1, 18, 1, 16, 15, 4, 195, 179, 13, 20, 67, 36, 146, 64, 107, 114, 52, 39, 65, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0,
+			25, 150, 20, 195, 182, 18, 22, 195, 169, 14, 25, 10, 1, 22, 1, 19, 12, 1, 20, 195, 161, 8, 15, 26, 13, 9, 198, 88, 243, 129,
+			48, 21, 0, 13, 11, 200, 44, 145, 137, 104, 85, 14, 36, 80, 13, 39, 11, 10, 195, 161, 18, 21, 12, 195, 169, 11, 15, 19, 57, 114,
+			52, 40, 55, 113, 49, 39, 91, 23, 109, 55, 109, 65, 109, 49, 0, 13, 81, 101, 108, 101, 109, 101, 107, 32, 54, 11, 13, 9, 12, 12,
+			9, 195, 161, 18, 4, 15, 19, 65, 37, 55, 37, 114, 52, 72, 39, 91, 23, 50, 113, 48, 89, 114, 65, 55, 114, 55, 114, 91, 0, 13,
+			81, 110, 195, 169, 112, 115, 122, 195, 161, 109, 108, 195, 161, 108, 195, 161, 115, 32, 23, 148, 195, 182, 14, 11, 15, 18, 13, 195, 161, 14,
+			25, 26, 1, 20, 15, 11, 14, 195, 161, 12, 13, 18, 6, 195, 161, 14, 20, 19, 26, 114, 109, 50, 47, 113, 109, 89, 0, 42, 42, 0,
+			12, 137, 195, 169, 18, 11, 5, 26, 5, 20, 20, 13, 9, 198, 28, 243, 132, 60, 195, 205, 13, 9, 134, 22, 195, 161, 12, 14, 1, 13,
+			9, 134, 13, 5, 12, 12, 195, 169, 13, 0, 7, 132, 12, 195, 161, 26, 13, 48, 70, 32, 149, 129, 80, 19, 0, 107, 37, 84, 108, 47,
+			108, 55, 23, 37, 55, 12, 109, 47, 113, 49, 109, 91, 113, 84, 109, 55, 0, 13, 81, 105, 108, 108, 101, 116, 195, 169, 107, 101, 115, 195,
+			169, 118, 101, 108, 32, 49, 15, 2, 197, 177, 14, 3, 19, 5, 12, 5, 11, 13, 195, 169, 14, 25, 71, 111, 50, 76, 109, 55, 109, 49,
+			65, 113, 67, 10, 6, 15, 79, 108, 50, 116, 57, 108, 0, 13, 81, 103, 121, 97, 110, 195, 186, 106, 97, 32, 16, 141, 8, 1, 19, 26,
+			14, 195, 161, 12, 8, 1, 20, 195, 179, 13, 13, 138, 5, 12, 197, 145, 6, 15, 18, 4, 21, 12, 13, 12, 137, 20, 5, 18, 13, 195,
+			169, 11, 5, 11, 13, 16, 141, 8, 1, 19, 26, 14, 195, 161, 12, 8, 1, 20, 195, 179, 13, 9, 198, 32, 149, 129, 80, 19, 0, 13,
+			19, 2, 53, 48, 110, 47, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0, 34, 4, 9, 4, 197, 145, 37, 72, 118, 23,
+			84, 108, 55, 115, 89, 112, 50, 117, 0, 13, 81, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 32, 30, 4, 9, 4, 197, 145,
+			37, 72, 118, 23, 84, 114, 52, 107, 108, 47, 115, 0, 13, 81, 118, 195, 161, 114, 104, 97, 116, 195, 179, 32, 13, 138, 16, 15, 14, 20,
+			10, 195, 161, 14, 1, 11, 13, 21, 4, 9, 4, 197, 145, 37, 72, 118, 23, 55, 109, 89, 0, 13, 81, 108, 101, 115, 122, 32, 15, 140,
+			11, 5, 18, 195, 188, 12, 5, 20, 5, 11, 2, 5, 13, 15, 140, 5, 12, 195, 169, 18, 195, 169, 19, 195, 169, 18, 5, 13, 15, 140,
+			7, 25, 197, 177, 10, 20, 197, 145, 14, 5, 22, 5, 13, 7, 132, 9, 4, 197, 145, 13, 12, 3, 95, 54, 88, 107, 108, 47, 84, 108,
+			50, 0, 0, 22, 4, 12, 195, 161, 20, 55, 114, 47, 23, 65, 108, 57, 72, 0, 13, 81, 109, 97, 106, 100, 32, 14, 139, 195, 182, 12,
+			20, 195, 182, 26, 14, 195, 169, 11, 13, 17, 142, 8, 1, 19, 26, 14, 195, 161, 12, 1, 20, 1, 11, 15, 18, 13, 7, 132, 12, 195,
+			161, 20, 13, 7, 132, 8, 195, 161, 20, 13, 0, 8, 197, 44, 21, 137, 13, 48, 13, 13, 138, 195, 188, 26, 12, 5, 20, 5, 11, 2,
+			5, 13, 16, 141, 18, 195, 161, 11, 195, 169, 18, 4, 5, 26, 5, 20, 20, 13, 0, 11, 136, 8, 1, 20, 195, 161, 19, 195, 186, 13,
+			13, 138, 10, 15, 7, 11, 195, 182, 18, 18, 5, 12, 13, 12, 137, 4, 195, 182, 14, 20, 5, 14, 5, 11, 13, 12, 137, 195, 182, 14,
+			195, 182, 11, 14, 5, 11, 13, 18, 143, 13, 5, 7, 9, 19, 13, 5, 18, 195, 169, 19, 195, 169, 18, 5, 13, 10, 135, 19, 26, 195,
+			161, 14, 14, 9, 13, 7, 132, 10, 195, 161, 18, 13, 0, 13, 138, 11, 195, 182, 22, 5, 20, 5, 12, 9, 11, 13, 26, 67, 76, 83,
+			64, 91, 109, 65, 23, 49, 109, 52, 111, 55, 47, 0, 13, 81, 107, 101, 114, 195, 188, 108, 116, 32, 12, 137, 3, 19, 9, 14, 195, 161,
+			12, 19, 26, 13, 19, 67, 76, 83, 64, 91, 109, 65, 23, 83, 39, 81, 0, 13, 81, 102, 111, 103, 32, 31, 67, 76, 83, 64, 91, 109,
+			65, 10, 6, 15, 71, 37, 89, 47, 39, 91, 108, 49, 0, 13, 81, 98, 105, 122, 116, 111, 115, 97, 107, 32, 19, 67, 76, 83, 64, 91,
+			109, 65, 10, 6, 15, 108, 88, 0, 13, 81, 97, 122, 32, 32, 67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 65, 40, 47, 108, 80, 12,
+			114, 49, 0, 13, 81, 109, 117, 116, 97, 116, 106, 195, 161, 107, 32, 25, 67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 65, 109, 52, 109,
+			49, 0, 13, 81, 109, 101, 114, 101, 107, 32, 42, 67, 76, 83, 64, 91, 109, 65, 10, 6, 15, 51, 37, 108, 72, 50, 108, 49, 23, 84,
+			37, 89, 12, 108, 0, 13, 82, 114, 105, 97, 100, 110, 97, 107, 32, 118, 105, 115, 115, 122, 97, 32, 40, 67, 76, 83, 64, 91, 109, 65,
+			23, 109, 65, 55, 112, 47, 109, 47, 12, 23, 108, 52, 52, 108, 0, 13, 82, 101, 109, 108, 195, 173, 116, 101, 116, 116, 32, 97, 114, 114,
+			97, 32, 54, 67, 76, 83, 64, 91, 109, 65, 23, 57, 109, 55, 109, 50, 47, 113, 49, 47, 109, 55, 109, 50, 23, 110, 89, 12, 109, 81,
+			0, 13, 82, 106, 101, 108, 101, 110, 116, 195, 169, 107, 116, 101, 108, 101, 110, 32, 195, 182, 115, 115, 122, 101, 103, 32, 23, 67, 76, 83,
+			64, 91, 109, 65, 23, 47, 40, 47, 12, 108, 0, 13, 81, 116, 117, 100, 116, 97, 32, 21, 67, 76, 83, 64, 91, 109, 65, 23, 49, 109,
+			55, 12, 0, 13, 81, 107, 101, 108, 108, 32, 26, 67, 76, 83, 64, 91, 109, 65, 23, 49, 37, 88, 114, 52, 47, 0, 13, 81, 107, 105,
+			122, 195, 161, 114, 116, 32, 26, 6, 8, 9, 2, 195, 161, 19, 107, 37, 71, 114, 91, 23, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108,
+			116, 32, 41, 67, 76, 83, 64, 91, 109, 65, 23, 47, 40, 47, 12, 108, 49, 23, 65, 39, 50, 72, 108, 50, 37, 0, 13, 82, 116, 117,
+			100, 116, 97, 107, 32, 109, 111, 110, 100, 97, 110, 105, 32, 65, 67, 76, 83, 64, 91, 109, 65, 23, 83, 37, 79, 109, 55, 65, 109, 89,
+			47, 109, 47, 109, 47, 12, 23, 107, 108, 50, 81, 57, 109, 55, 88, 113, 91, 0, 13, 82, 102, 105, 103, 121, 101, 108, 109, 101, 122, 116,
+			101, 116, 101, 116, 116, 32, 104, 97, 110, 103, 106, 101, 108, 122, 195, 169, 115, 32, 66, 67, 76, 83, 64, 91, 109, 65, 23, 114, 55, 12,
+			23, 65, 115, 79, 12, 40, 49, 71, 108, 50, 23, 109, 55, 12, 109, 50, 118, 52, 37, 88, 50, 37, 0, 13, 83, 195, 161, 108, 108, 32,
+			109, 195, 179, 100, 106, 117, 107, 98, 97, 110, 32, 101, 108, 108, 101, 110, 197, 145, 114, 105, 122, 110, 105, 32, 19, 67, 76, 83, 64, 91,
+			109, 65, 65, 109, 79, 0, 13, 81, 109, 101, 103, 121, 32, 35, 67, 76, 83, 64, 91, 109, 65, 15, 108, 55, 49, 108, 55, 65, 108, 88,
+			50, 108, 49, 0, 13, 81, 97, 108, 107, 97, 108, 109, 97, 122, 110, 97, 107, 32, 24, 67, 76, 83, 64, 91, 109, 65, 15, 47, 110, 65,
+			37, 49, 0, 13, 81, 116, 195, 182, 109, 105, 107, 32, 15, 140, 195, 169, 16, 195, 188, 12, 5, 20, 5, 11, 2, 5, 13, 6, 195, 76,
+			83, 64, 13, 0, 7, 196, 32, 85, 5, 80, 13, 11, 136, 9, 14, 20, 195, 169, 26, 5, 20, 13, 32, 68, 32, 85, 5, 80, 107, 109,
+			47, 109, 47, 23, 107, 108, 89, 50, 114, 55, 47, 0, 13, 81, 104, 97, 115, 122, 110, 195, 161, 108, 116, 32, 11, 136, 11, 22, 195, 179,
+			20, 195, 161, 20, 13, 14, 139, 11, 5, 12, 12, 5, 14, 195, 169, 14, 5, 11, 13, 7, 196, 20, 197, 133, 80, 13, 7, 196, 20, 197,
+			133, 80, 13, 22, 147, 4, 9, 1, 7, 14, 15, 19, 26, 20, 9, 26, 195, 161, 12, 8, 1, 20, 195, 179, 13, 10, 134, 8, 1, 2,
+			195, 161, 18, 72, 8, 0, 17, 142, 16, 15, 12, 7, 195, 161, 18, 13, 5, 19, 20, 5, 18, 5, 13, 0, 22, 147, 22, 195, 169, 12,
+			5, 13, 195, 169, 14, 25, 5, 26, 195, 169, 19, 195, 169, 18, 5, 13, 53, 14, 11, 195, 182, 12, 20, 19, 195, 169, 7, 5, 11, 11,
+			5, 12, 49, 110, 55, 76, 113, 81, 109, 49, 12, 109, 55, 23, 83, 111, 81, 12, 23, 110, 89, 12, 109, 0, 13, 82, 102, 195, 188, 103,
+			103, 32, 195, 182, 115, 115, 122, 101, 32, 9, 198, 28, 243, 132, 60, 195, 196, 13, 20, 2, 54, 48, 107, 108, 47, 84, 108, 50, 12, 108,
+			55, 0, 44, 81, 32, 97, 108, 32, 0, 13, 138, 9, 12, 12, 5, 20, 195, 169, 11, 5, 19, 13, 15, 140, 3, 19, 195, 182, 11, 11,
+			5, 14, 195, 169, 19, 5, 13, 31, 67, 4, 131, 204, 108, 107, 39, 55, 23, 84, 108, 50, 23, 48, 113, 50, 88, 0, 13, 82, 118, 97,
+			110, 32, 112, 195, 169, 110, 122, 32, 11, 136, 13, 5, 7, 12, 5, 16, 197, 145, 13, 10, 135, 195, 173, 22, 5, 11, 5, 20, 13, 14,
+			67, 36, 195, 0, 37, 55, 55, 109, 47, 84, 109, 0, 25, 0, 11, 136, 16, 15, 14, 20, 10, 195, 161, 20, 13, 35, 7, 11, 9, 1,
+			4, 195, 161, 19, 49, 37, 108, 72, 114, 91, 23, 119, 113, 61, 57, 108, 37, 47, 0, 13, 81, 99, 195, 169, 108, 106, 97, 105, 116, 32,
+			12, 137, 11, 195, 182, 20, 8, 5, 20, 197, 145, 13, 26, 7, 11, 9, 1, 4, 195, 161, 19, 49, 37, 108, 72, 114, 91, 23, 55, 109,
+			89, 0, 81, 108, 101, 115, 122, 32, 12, 137, 3, 19, 9, 14, 195, 161, 12, 14, 9, 13, 12, 137, 195, 169, 18, 20, 8, 5, 20, 197,
+			145, 13, 16, 141, 6, 5, 12, 8, 1, 19, 26, 14, 195, 161, 12, 14, 9, 13, 10, 135, 11, 9, 1, 4, 195, 161, 19, 13, 12, 137,
+			11, 195, 182, 20, 8, 5, 20, 197, 145, 13, 12, 137, 11, 195, 169, 18, 8, 5, 20, 197, 145, 13, 7, 132, 4, 197, 145, 12, 13, 0,
+			44, 9, 20, 5, 18, 13, 195, 169, 11, 5, 20, 47, 109, 52, 65, 113, 49, 109, 47, 23, 84, 114, 91, 114, 52, 39, 55, 39, 49, 0,
+			13, 81, 118, 195, 161, 115, 195, 161, 114, 111, 108, 111, 107, 32, 37, 9, 22, 195, 161, 12, 20, 15, 26, 1, 20, 84, 114, 55, 47, 39,
+			88, 108, 47, 23, 109, 91, 109, 47, 113, 50, 0, 13, 81, 101, 115, 101, 116, 195, 169, 110, 32, 12, 201, 24, 241, 204, 4, 194, 207, 104,
+			243, 64, 13, 12, 137, 22, 195, 161, 12, 20, 15, 26, 1, 20, 13, 13, 138, 5, 12, 20, 195, 161, 18, 15, 12, 14, 9, 13, 13, 138,
+			5, 12, 195, 169, 18, 8, 5, 20, 197, 145, 13, 8, 133, 22, 195, 169, 18, 20, 13, 0, 14, 139, 5, 12, 197, 145, 195, 169, 12, 5,
+			20, 197, 177, 13, 12, 137, 14, 15, 18, 13, 195, 161, 12, 9, 19, 13, 17, 142, 5, 12, 197, 145, 195, 173, 18, 195, 161, 19, 15, 11,
+			1, 20, 13, 17, 142, 11, 195, 169, 18, 4, 197, 145, 195, 173, 22, 5, 11, 5, 20, 13, 12, 7, 95, 35, 45, 9, 11, 1, 9, 108,
+			37, 0, 0, 38, 10, 6, 5, 12, 195, 161, 12, 12, 195, 161, 19, 83, 109, 55, 114, 55, 12, 114, 91, 23, 89, 109, 52, 37, 50, 47,
+			0, 13, 81, 115, 122, 101, 114, 105, 110, 116, 32, 15, 140, 11, 9, 19, 26, 197, 177, 18, 8, 5, 20, 197, 145, 13, 10, 199, 80, 84,
+			141, 20, 195, 133, 44, 13, 10, 135, 13, 5, 12, 12, 197, 145, 12, 13, 0, 16, 141, 195, 182, 19, 26, 20, 195, 182, 14, 26, 195, 169,
+			19, 5, 13, 15, 140, 11, 195, 182, 26, 16, 15, 14, 20, 10, 195, 161, 20, 13, 28, 4, 195, 173, 18, 20, 112, 52, 47, 23, 49, 110,
+			67, 84, 109, 47, 0, 13, 81, 107, 195, 182, 110, 121, 118, 101, 116, 32, 40, 72, 60, 197, 129, 76, 21, 12, 4, 224, 39, 55, 84, 108,
+			91, 108, 47, 55, 108, 50, 23, 55, 109, 84, 113, 55, 52, 109, 0, 13, 81, 108, 101, 118, 195, 169, 108, 114, 101, 32, 16, 141, 5, 13,
+			12, 195, 169, 11, 5, 26, 20, 5, 20, 197, 145, 13, 11, 136, 2, 195, 169, 18, 195, 169, 18, 20, 13, 16, 141, 11, 195, 182, 19, 26,
+			195, 182, 14, 8, 5, 20, 197, 145, 13, 7, 132, 195, 173, 18, 20, 13, 7, 132, 2, 197, 145, 12, 72, 0, 47, 8, 20, 1, 18, 20,
+			10, 195, 161, 11, 47, 108, 52, 80, 114, 49, 23, 48, 52, 39, 71, 55, 113, 65, 114, 91, 50, 108, 49, 0, 13, 81, 112, 114, 111, 98,
+			108, 195, 169, 109, 195, 161, 115, 110, 97, 107, 32, 10, 135, 1, 26, 21, 20, 195, 161, 14, 13, 12, 137, 19, 26, 5, 18, 22, 20, 197,
+			145, 12, 13, 16, 141, 11, 195, 169, 18, 4, 197, 145, 195, 173, 22, 195, 169, 20, 13, 16, 141, 19, 26, 1, 2, 1, 4, 19, 195, 161,
+			7, 195, 161, 20, 13, 12, 137, 11, 1, 12, 11, 21, 12, 195, 161, 12, 13, 15, 140, 20, 195, 182, 18, 12, 5, 19, 26, 20, 195, 169,
+			19, 13, 9, 198, 16, 243, 7, 61, 163, 137, 13, 8, 133, 6, 195, 182, 12, 4, 13, 11, 136, 20, 1, 18, 20, 10, 195, 161, 11, 13,
+			0, 13, 138, 11, 5, 4, 22, 195, 169, 195, 169, 18, 20, 13, 13, 138, 22, 1, 12, 1, 13, 9, 195, 169, 18, 20, 13, 30, 6, 13,
+			9, 195, 169, 18, 20, 65, 37, 113, 52, 47, 15, 84, 108, 50, 15, 108, 88, 0, 13, 82, 118, 97, 110, 32, 97, 122, 32, 17, 142, 9,
+			14, 20, 5, 18, 6, 195, 169, 19, 26, 5, 11, 5, 20, 13, 24, 6, 13, 9, 195, 169, 18, 20, 65, 37, 113, 52, 47, 15, 50, 109,
+			65, 0, 13, 81, 110, 101, 109, 32, 13, 202, 57, 146, 76, 5, 66, 207, 104, 21, 15, 44, 13, 7, 132, 8, 195, 161, 26, 13, 9, 134,
+			5, 18, 18, 197, 145, 12, 13, 20, 2, 55, 48, 107, 109, 47, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 0, 30, 6,
+			22, 195, 161, 12, 9, 11, 84, 114, 55, 37, 49, 23, 108, 6, 15, 119, 113, 81, 0, 13, 82, 97, 32, 99, 195, 169, 103, 32, 13, 138,
+			11, 1, 16, 8, 1, 20, 10, 195, 161, 11, 13, 9, 134, 22, 195, 161, 12, 9, 11, 13, 8, 133, 22, 195, 169, 19, 26, 13, 9, 134,
+			22, 195, 169, 12, 9, 11, 13, 8, 133, 18, 195, 169, 19, 26, 13, 13, 3, 95, 56, 88, 67, 39, 55, 119, 84, 108, 50, 0, 0, 19,
+			144, 195, 161, 12, 12, 195, 161, 19, 16, 15, 14, 20, 10, 21, 11, 1, 20, 13, 12, 137, 13, 15, 14, 4, 1, 14, 195, 161, 13, 13,
+			11, 136, 20, 5, 18, 22, 18, 197, 145, 12, 13, 12, 137, 19, 26, 5, 18, 19, 26, 195, 161, 13, 13, 9, 198, 44, 86, 132, 21, 69,
+			0, 13, 15, 140, 12, 195, 169, 16, 195, 169, 19, 5, 11, 11, 5, 12, 13, 0, 19, 144, 3, 19, 1, 16, 1, 4, 195, 169, 11, 8,
+			21, 12, 12, 195, 161, 19, 13, 9, 134, 12, 195, 161, 14, 25, 1, 13, 11, 136, 195, 169, 18, 11, 5, 26, 9, 11, 13, 16, 141, 11,
+			195, 169, 16, 26, 195, 169, 19, 5, 11, 11, 5, 12, 13, 8, 133, 18, 195, 169, 19, 20, 13, 0, 17, 142, 195, 169, 12, 13, 195, 169,
+			14, 25, 195, 169, 20, 197, 145, 12, 13, 13, 138, 13, 15, 4, 5, 12, 12, 2, 197, 145, 12, 13, 10, 135, 19, 5, 7, 195, 173, 20,
+			9, 13, 10, 135, 11, 195, 161, 18, 20, 25, 1, 13, 13, 138, 8, 5, 12, 25, 195, 169, 18, 197, 145, 12, 13, 12, 136, 8, 195, 169,
+			20, 6, 197, 145, 14, 20, 22, 0, 16, 141, 20, 195, 182, 18, 22, 195, 169, 14, 25, 5, 11, 5, 14, 13, 16, 141, 12, 5, 10, 195,
+			161, 20, 19, 26, 195, 179, 8, 15, 26, 13, 16, 141, 19, 26, 15, 18, 195, 173, 20, 195, 161, 19, 195, 161, 14, 13, 14, 139, 16, 5,
+			20, 197, 145, 6, 9, 18, 197, 145, 12, 13, 14, 139, 8, 5, 12, 25, 26, 5, 20, 195, 169, 18, 20, 13, 14, 139, 18, 5, 14, 4,
+			10, 195, 169, 18, 197, 145, 12, 13, 0, 15, 140, 6, 5, 12, 195, 188, 12, 5, 20, 2, 197, 145, 12, 13, 14, 139, 11, 5, 26, 5,
+			12, 8, 5, 20, 197, 145, 11, 13, 18, 143, 8, 1, 19, 26, 14, 195, 161, 12, 8, 1, 20, 10, 195, 161, 11, 13, 13, 138, 1, 12,
+			11, 1, 20, 18, 195, 169, 19, 26, 13, 7, 196, 85, 64, 83, 80, 13, 0, 13, 138, 5, 18, 5, 4, 13, 195, 169, 14, 25, 5, 13,
+			8, 197, 44, 86, 132, 21, 64, 13, 15, 140, 19, 11, 195, 161, 12, 195, 161, 26, 20, 195, 161, 11, 13, 0, 30, 66, 44, 144, 49, 37,
+			23, 84, 39, 55, 47, 23, 112, 52, 84, 108, 0, 13, 82, 118, 111, 108, 116, 32, 195, 173, 114, 118, 97, 32, 39, 66, 44, 144, 49, 37,
+			23, 49, 109, 55, 12, 23, 47, 109, 52, 57, 109, 72, 50, 37, 109, 0, 13, 82, 107, 101, 108, 108, 32, 116, 101, 114, 106, 101, 100, 110,
+			105, 101, 32, 35, 66, 44, 144, 49, 37, 23, 49, 109, 55, 12, 23, 65, 39, 50, 72, 108, 50, 37, 0, 13, 82, 107, 101, 108, 108, 32,
+			109, 111, 110, 100, 97, 110, 105, 32, 32, 66, 44, 144, 49, 37, 10, 6, 15, 108, 88, 10, 6, 15, 110, 47, 55, 109, 47, 0, 13, 82,
+			97, 122, 32, 195, 182, 116, 108, 101, 116, 32, 29, 66, 44, 144, 10, 49, 37, 15, 83, 39, 81, 15, 112, 52, 50, 37, 0, 13, 82, 102,
+			111, 103, 32, 195, 173, 114, 110, 105, 32, 21, 66, 44, 144, 49, 37, 15, 47, 40, 79, 12, 108, 0, 13, 81, 116, 117, 100, 106, 97, 32,
+			25, 66, 44, 144, 49, 37, 55, 109, 107, 109, 47, 108, 88, 0, 13, 82, 108, 101, 104, 101, 116, 32, 97, 122, 32, 17, 142, 19, 26, 5,
+			13, 5, 20, 5, 19, 5, 11, 2, 197, 145, 12, 13, 17, 142, 18, 195, 169, 19, 26, 12, 5, 20, 5, 9, 18, 197, 145, 12, 13, 13,
+			138, 195, 169, 16, 195, 173, 20, 195, 169, 19, 20, 13, 5, 194, 44, 144, 13, 21, 2, 56, 48, 67, 39, 55, 119, 84, 108, 50, 12, 108,
+			55, 0, 44, 81, 32, 97, 108, 32, 0, 45, 16, 11, 195, 182, 12, 20, 19, 195, 169, 7, 22, 5, 20, 195, 169, 19, 9, 49, 110, 55,
+			76, 113, 81, 84, 109, 47, 113, 91, 37, 23, 91, 39, 52, 39, 50, 0, 13, 81, 115, 111, 114, 111, 110, 32, 37, 8, 195, 169, 18, 20,
+			5, 12, 13, 5, 113, 52, 47, 109, 55, 65, 109, 23, 83, 109, 55, 52, 115, 50, 37, 0, 13, 81, 102, 101, 108, 114, 195, 179, 110, 105,
+			32, 18, 143, 5, 12, 20, 197, 177, 14, 195, 169, 19, 195, 169, 18, 197, 145, 12, 13, 11, 136, 195, 169, 18, 20, 5, 12, 13, 5, 13,
+			15, 3, 95, 57, 88, 49, 37, 55, 109, 50, 119, 84, 109, 50, 0, 0, 7, 196, 56, 20, 10, 4, 13, 8, 133, 8, 195, 173, 18, 5,
+			13, 8, 133, 22, 195, 169, 22, 5, 13, 12, 5, 95, 35, 45, 18, 5, 113, 52, 109, 0, 21, 0, 11, 136, 12, 5, 19, 26, 195, 188,
+			14, 11, 72, 12, 137, 11, 5, 26, 5, 12, 195, 169, 19, 20, 13, 8, 197, 72, 18, 148, 4, 208, 13, 13, 138, 20, 195, 161, 18, 7,
+			25, 1, 12, 14, 9, 13, 16, 141, 195, 186, 10, 18, 1, 11, 5, 26, 4, 195, 169, 19, 20, 13, 8, 197, 8, 83, 142, 20, 208, 13,
+			0, 21, 146, 16, 15, 12, 7, 195, 161, 18, 13, 5, 19, 20, 5, 18, 5, 11, 11, 5, 12, 13, 0, 10, 199, 80, 84, 150, 21, 161,
+			84, 20, 13, 15, 7, 95, 35, 45, 20, 197, 145, 12, 113, 47, 118, 55, 0, 21, 0, 73, 21, 1, 11, 1, 4, 195, 161, 12, 25, 13,
+			5, 14, 20, 5, 19, 195, 173, 20, 195, 169, 19, 9, 108, 49, 108, 72, 114, 57, 65, 109, 50, 47, 109, 91, 112, 47, 113, 91, 37, 10,
+			6, 15, 109, 55, 84, 114, 52, 114, 91, 39, 49, 50, 108, 49, 0, 13, 81, 101, 108, 118, 195, 161, 114, 195, 161, 115, 111, 107, 110, 97,
+			107, 32, 7, 196, 44, 20, 19, 104, 13, 7, 132, 14, 195, 161, 12, 13, 12, 5, 95, 35, 45, 18, 1, 114, 52, 108, 0, 21, 0, 32,
+			8, 8, 1, 10, 20, 10, 195, 161, 11, 107, 108, 57, 80, 114, 49, 23, 84, 113, 81, 52, 109, 0, 13, 81, 118, 195, 169, 103, 114, 101,
+			32, 13, 138, 5, 12, 22, 195, 169, 7, 5, 26, 26, 5, 13, 23, 69, 80, 20, 148, 40, 16, 47, 108, 34, 80, 108, 10, 6, 15, 109,
+			55, 0, 13, 81, 101, 108, 32, 39, 69, 8, 243, 20, 60, 176, 71, 39, 55, 47, 39, 49, 10, 6, 15, 108, 57, 114, 50, 55, 108, 47,
+			108, 37, 0, 13, 81, 97, 106, 195, 161, 110, 108, 97, 116, 97, 105, 32, 40, 9, 22, 5, 22, 197, 145, 11, 11, 5, 12, 84, 109, 84,
+			118, 49, 12, 109, 55, 23, 49, 110, 47, 109, 50, 72, 118, 0, 13, 81, 107, 195, 182, 116, 101, 110, 100, 197, 145, 32, 31, 10, 20, 195,
+			161, 13, 1, 19, 26, 20, 10, 1, 47, 114, 65, 108, 89, 80, 108, 23, 108, 55, 114, 0, 13, 81, 97, 108, 195, 161, 32, 35, 10, 20,
+			195, 182, 2, 2, 14, 25, 9, 18, 5, 47, 110, 71, 67, 37, 52, 109, 23, 79, 109, 50, 81, 109, 0, 13, 81, 103, 121, 101, 110, 103,
+			101, 32, 15, 140, 20, 195, 182, 18, 5, 11, 19, 26, 195, 188, 14, 11, 13, 8, 197, 80, 20, 148, 40, 16, 13, 9, 198, 77, 161, 82,
+			21, 163, 137, 13, 8, 197, 48, 83, 142, 36, 80, 13, 0, 9, 198, 57, 147, 205, 84, 226, 192, 13, 13, 138, 22, 1, 12, 1, 11, 9,
+			20, 197, 145, 12, 13, 13, 138, 11, 195, 169, 18, 4, 5, 26, 5, 20, 20, 13, 12, 137, 19, 195, 186, 10, 20, 10, 195, 161, 11, 13,
+			23, 2, 57, 48, 49, 37, 55, 109, 50, 119, 84, 109, 50, 12, 109, 55, 0, 44, 81, 32, 101, 108, 32, 15, 8, 95, 35, 45, 195, 161,
+			8, 15, 26, 114, 107, 39, 88, 0, 13, 7, 95, 35, 45, 195, 169, 18, 5, 113, 52, 109, 0, 0, 15, 140, 8, 195, 169, 20, 22, 195,
+			169, 7, 195, 169, 18, 5, 13, 15, 140, 13, 195, 169, 18, 20, 195, 169, 11, 195, 169, 18, 5, 13, 9, 198, 24, 241, 193, 48, 213, 75,
+			13, 10, 135, 12, 5, 195, 161, 12, 12, 20, 13, 9, 198, 73, 81, 193, 48, 208, 83, 13, 14, 139, 22, 195, 169, 4, 5, 11, 5, 26,
+			5, 20, 20, 13, 13, 138, 19, 26, 195, 161, 18, 13, 1, 26, 9, 11, 13, 0, 11, 136, 16, 5, 18, 3, 18, 197, 145, 12, 22, 11,
+			136, 195, 169, 18, 4, 5, 11, 5, 12, 13, 35, 6, 19, 15, 18, 195, 161, 14, 91, 39, 52, 114, 50, 23, 49, 37, 72, 109, 52, 111,
+			55, 47, 0, 13, 81, 107, 105, 100, 101, 114, 195, 188, 108, 116, 32, 66, 7, 20, 21, 4, 20, 195, 161, 11, 47, 40, 47, 12, 114, 49,
+			23, 83, 39, 52, 72, 112, 47, 108, 50, 37, 23, 108, 23, 49, 113, 52, 72, 118, 112, 84, 109, 47, 0, 13, 83, 102, 111, 114, 100, 195,
+			173, 116, 97, 110, 105, 32, 97, 32, 107, 195, 169, 114, 100, 197, 145, 195, 173, 118, 101, 116, 32, 60, 6, 15, 18, 2, 195, 161, 14, 39,
+			52, 71, 114, 50, 23, 84, 37, 49, 47, 39, 52, 23, 65, 37, 50, 37, 89, 47, 109, 52, 109, 55, 50, 110, 49, 0, 13, 82, 118, 105,
+			107, 116, 111, 114, 32, 109, 105, 110, 105, 115, 122, 116, 101, 114, 101, 108, 110, 195, 182, 107, 32, 10, 135, 20, 21, 4, 20, 195, 161, 11,
+			13, 7, 196, 12, 149, 137, 48, 13, 9, 134, 19, 15, 18, 195, 161, 14, 13, 0, 13, 138, 195, 182, 18, 195, 182, 13, 195, 169, 18, 5,
+			13, 12, 137, 19, 5, 7, 195, 173, 20, 5, 20, 20, 13, 7, 132, 14, 197, 145, 19, 13, 9, 198, 44, 81, 22, 21, 163, 133, 13, 5,
+			130, 57, 53, 13, 15, 140, 8, 1, 19, 26, 14, 195, 161, 12, 10, 195, 161, 11, 13, 15, 140, 19, 26, 15, 12, 7, 195, 161, 12, 10,
+			195, 161, 11, 13, 12, 137, 4, 5, 18, 195, 173, 20, 5, 20, 20, 13, 8, 133, 197, 145, 11, 5, 20, 13, 8, 197, 32, 83, 25, 21,
+			48, 76, 0, 12, 137, 18, 5, 14, 4, 5, 12, 197, 145, 11, 13, 9, 134, 6, 15, 7, 195, 161, 20, 13, 10, 135, 8, 5, 22, 195,
+			173, 20, 9, 13, 13, 138, 19, 26, 195, 188, 12, 5, 20, 5, 20, 20, 13, 12, 137, 19, 26, 195, 161, 13, 12, 195, 161, 11, 13, 9,
+			134, 20, 5, 8, 195, 161, 20, 13, 7, 132, 26, 195, 161, 18, 13, 7, 132, 22, 195, 161, 18, 13, 12, 6, 95, 35, 45, 195, 161, 20,
+			114, 47, 0, 21, 0, 31, 8, 12, 195, 169, 16, 195, 169, 19, 5, 55, 113, 48, 113, 91, 109, 23, 109, 55, 12, 109, 50, 0, 13, 81,
+			101, 108, 108, 101, 110, 32, 46, 71, 77, 161, 82, 88, 86, 133, 80, 89, 109, 52, 84, 109, 88, 109, 47, 10, 6, 15, 65, 117, 49, 110,
+			47, 12, 109, 47, 12, 109, 0, 13, 81, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 116, 101, 32, 37, 8, 2, 195, 169, 18, 12, 5,
+			20, 9, 71, 113, 52, 55, 109, 47, 37, 23, 72, 112, 57, 108, 49, 52, 108, 0, 13, 81, 100, 195, 173, 106, 97, 107, 114, 97, 32, 30,
+			71, 24, 244, 132, 84, 194, 1, 80, 83, 39, 52, 72, 40, 55, 107, 108, 47, 23, 109, 55, 118, 0, 13, 81, 101, 108, 197, 145, 32, 14,
+			139, 6, 18, 9, 19, 19, 195, 173, 20, 5, 20, 20, 13, 10, 199, 77, 161, 82, 88, 86, 133, 80, 13, 8, 133, 19, 26, 197, 145, 18,
+			13, 12, 137, 20, 1, 22, 1, 19, 26, 195, 161, 14, 20, 0, 12, 137, 11, 195, 169, 18, 4, 195, 169, 19, 5, 13, 11, 136, 195, 169,
+			12, 197, 145, 11, 5, 20, 13, 14, 139, 2, 195, 173, 18, 195, 161, 12, 20, 195, 161, 11, 13, 16, 141, 8, 195, 161, 12, 195, 179, 26,
+			1, 20, 15, 11, 2, 1, 13, 7, 132, 14, 197, 145, 20, 13, 0, 15, 140, 6, 9, 14, 15, 13, 195, 173, 20, 19, 195, 161, 11, 13,
+			16, 141, 13, 197, 177, 11, 195, 182, 4, 20, 5, 20, 5, 20, 20, 13, 0, 22, 67, 40, 240, 130, 57, 39, 71, 12, 23, 84, 39, 55,
+			47, 0, 13, 81, 118, 111, 108, 116, 32, 38, 67, 40, 240, 130, 57, 39, 71, 12, 10, 6, 15, 47, 114, 65, 39, 81, 108, 47, 114, 91,
+			108, 0, 13, 81, 116, 195, 161, 109, 111, 103, 97, 116, 195, 161, 115, 97, 32, 47, 70, 48, 82, 5, 80, 85, 20, 55, 109, 107, 109, 47,
+			109, 47, 12, 23, 84, 37, 90, 81, 114, 55, 50, 37, 23, 108, 89, 47, 0, 13, 82, 118, 105, 122, 115, 103, 195, 161, 108, 110, 105, 32,
+			97, 122, 116, 32, 36, 70, 48, 82, 5, 80, 85, 20, 55, 109, 107, 109, 47, 109, 47, 12, 23, 89, 114, 65, 114, 52, 108, 0, 13, 81,
+			115, 122, 195, 161, 109, 195, 161, 114, 97, 32, 17, 142, 20, 195, 182, 18, 20, 195, 169, 14, 8, 5, 20, 5, 20, 20, 13, 18, 143, 13,
+			5, 7, 5, 12, 197, 145, 26, 195, 169, 19, 195, 169, 18, 5, 13, 12, 137, 11, 195, 169, 18, 14, 195, 188, 14, 11, 13, 9, 198, 48,
+			82, 5, 80, 85, 20, 13, 6, 195, 40, 240, 130, 13, 0, 42, 11, 6, 21, 14, 11, 3, 9, 195, 179, 11, 1, 20, 83, 40, 50, 49,
+			119, 37, 115, 49, 108, 47, 23, 109, 55, 12, 114, 47, 115, 0, 13, 81, 101, 108, 108, 195, 161, 116, 195, 179, 32, 14, 139, 195, 161, 12,
+			12, 1, 16, 15, 20, 195, 161, 20, 13, 9, 134, 5, 13, 12, 197, 145, 19, 13, 14, 139, 6, 21, 14, 11, 3, 9, 195, 179, 11, 1,
+			20, 13, 14, 139, 10, 5, 12, 26, 195, 169, 19, 5, 11, 5, 20, 13, 10, 135, 195, 186, 20, 10, 195, 161, 20, 13, 10, 135, 195, 186,
+			20, 10, 195, 161, 20, 13, 14, 139, 195, 188, 26, 5, 14, 5, 20, 5, 11, 5, 20, 13, 17, 142, 11, 9, 6, 15, 7, 195, 161, 19,
+			15, 12, 20, 195, 161, 11, 13, 8, 133, 6, 195, 182, 14, 14, 13, 0, 16, 141, 20, 195, 182, 14, 11, 18, 5, 20, 5, 8, 5, 20,
+			9, 13, 14, 139, 1, 12, 11, 1, 12, 13, 1, 26, 195, 161, 19, 13, 12, 137, 11, 195, 169, 16, 26, 195, 169, 19, 5, 13, 12, 137,
+			6, 9, 26, 5, 20, 195, 169, 19, 5, 13, 11, 136, 11, 195, 179, 4, 15, 11, 1, 20, 13, 40, 7, 6, 5, 12, 8, 197, 145, 19,
+			83, 109, 55, 107, 118, 91, 23, 37, 72, 118, 89, 108, 49, 71, 108, 50, 0, 13, 81, 105, 100, 197, 145, 115, 122, 97, 107, 98, 97, 110,
+			32, 45, 7, 6, 5, 12, 8, 197, 145, 19, 83, 109, 55, 107, 118, 91, 23, 47, 109, 52, 111, 55, 109, 47, 109, 49, 23, 37, 91, 0,
+			13, 82, 116, 101, 114, 195, 188, 108, 101, 116, 101, 107, 32, 105, 115, 32, 12, 137, 22, 5, 26, 5, 20, 195, 169, 19, 5, 13, 15, 140,
+			20, 5, 18, 195, 188, 12, 5, 20, 5, 11, 5, 20, 13, 15, 140, 13, 197, 177, 22, 5, 12, 5, 20, 5, 11, 5, 20, 13, 10, 135,
+			6, 5, 12, 8, 197, 145, 19, 13, 12, 137, 11, 195, 169, 16, 26, 195, 169, 19, 5, 13, 0, 53, 15, 20, 5, 12, 5, 16, 195, 188,
+			12, 195, 169, 19, 5, 11, 5, 14, 47, 109, 55, 109, 48, 111, 55, 113, 91, 109, 49, 109, 50, 10, 6, 15, 72, 39, 55, 81, 39, 88,
+			37, 49, 0, 13, 81, 100, 111, 108, 103, 111, 122, 105, 107, 32, 48, 13, 195, 186, 10, 195, 173, 20, 195, 161, 19, 15, 11, 1, 20, 116,
+			57, 112, 47, 114, 91, 39, 49, 108, 47, 15, 71, 109, 84, 109, 88, 109, 47, 50, 37, 0, 13, 81, 98, 101, 118, 101, 122, 101, 116, 110,
+			105, 32, 12, 137, 4, 9, 195, 161, 11, 15, 11, 1, 20, 13, 16, 141, 8, 1, 19, 26, 14, 195, 161, 12, 195, 179, 11, 1, 20, 13,
+			11, 136, 9, 19, 11, 15, 12, 195, 161, 19, 13, 7, 196, 48, 20, 15, 44, 13, 15, 140, 19, 5, 7, 195, 173, 20, 5, 14, 195, 188,
+			14, 11, 13, 12, 137, 6, 195, 161, 10, 12, 10, 195, 161, 20, 13, 12, 137, 16, 15, 19, 26, 20, 10, 195, 161, 20, 13, 8, 133, 19,
+			26, 195, 169, 11, 13, 7, 196, 57, 145, 82, 80, 13, 11, 6, 95, 35, 45, 195, 169, 14, 113, 50, 0, 0, 14, 139, 7, 1, 18, 1,
+			14, 20, 195, 161, 12, 14, 9, 13, 22, 147, 11, 5, 26, 4, 5, 13, 195, 169, 14, 25, 5, 26, 195, 169, 19, 195, 169, 18, 5, 13,
+			22, 5, 20, 197, 177, 14, 20, 47, 117, 50, 47, 10, 6, 15, 49, 37, 0, 13, 81, 107, 105, 32, 20, 5, 20, 197, 177, 14, 20, 47,
+			117, 50, 47, 23, 109, 55, 0, 13, 81, 101, 108, 32, 14, 139, 13, 197, 177, 11, 195, 182, 4, 195, 169, 19, 5, 13, 8, 197, 32, 83,
+			25, 20, 64, 13, 8, 133, 20, 197, 177, 14, 20, 13, 12, 137, 10, 21, 20, 20, 1, 20, 195, 161, 19, 13, 12, 137, 195, 186, 10, 195,
+			173, 20, 195, 161, 19, 13, 8, 133, 20, 195, 169, 18, 20, 13, 8, 133, 8, 195, 173, 18, 20, 13, 8, 133, 20, 197, 177, 14, 20, 13,
+			0, 18, 143, 13, 195, 179, 4, 15, 19, 195, 173, 20, 195, 161, 19, 195, 161, 20, 13, 7, 132, 4, 195, 173, 10, 13, 14, 139, 3, 19,
+			15, 16, 15, 18, 20, 10, 195, 161, 20, 13, 15, 140, 6, 18, 9, 19, 19, 195, 173, 20, 195, 169, 19, 5, 13, 49, 11, 11, 9, 1,
+			4, 195, 161, 19, 15, 11, 1, 20, 49, 37, 108, 72, 114, 91, 39, 49, 108, 47, 23, 48, 52, 109, 83, 109, 52, 114, 61, 57, 108, 0,
+			13, 81, 112, 114, 101, 102, 101, 114, 195, 161, 108, 106, 97, 32, 18, 143, 6, 5, 10, 12, 5, 19, 26, 20, 195, 169, 19, 5, 11, 5,
+			20, 13, 14, 139, 12, 195, 169, 16, 195, 169, 19, 5, 11, 5, 20, 13, 18, 143, 6, 5, 12, 16, 21, 8, 195, 173, 20, 195, 161, 19,
+			195, 161, 20, 13, 19, 144, 11, 195, 182, 12, 20, 19, 195, 169, 7, 22, 5, 20, 195, 169, 19, 5, 13, 13, 138, 21, 20, 1, 19, 195,
+			173, 20, 195, 161, 19, 13, 9, 134, 16, 195, 169, 14, 26, 20, 13, 8, 133, 20, 197, 145, 12, 5, 13, 0, 15, 140, 11, 195, 169, 18,
+			4, 195, 169, 19, 5, 11, 5, 20, 13, 15, 140, 2, 5, 6, 15, 12, 25, 195, 161, 19, 195, 161, 20, 13, 52, 6, 11, 195, 169, 18,
+			20, 5, 49, 113, 52, 47, 109, 10, 6, 15, 83, 109, 55, 23, 65, 116, 55, 47, 10, 6, 15, 107, 113, 47, 109, 50, 0, 13, 83, 102,
+			101, 108, 32, 109, 195, 186, 108, 116, 32, 104, 195, 169, 116, 101, 110, 32, 19, 144, 13, 195, 179, 4, 15, 19, 195, 173, 20, 195, 161, 19,
+			15, 11, 1, 20, 13, 9, 134, 11, 195, 169, 18, 20, 5, 13, 13, 4, 95, 15, 7, 15, 107, 39, 52, 81, 39, 49, 0, 0, 34, 70,
+			80, 83, 10, 21, 49, 78, 47, 109, 55, 57, 109, 91, 109, 50, 23, 107, 111, 57, 113, 50, 0, 13, 81, 104, 195, 188, 108, 121, 195, 169,
+			110, 32, 16, 141, 11, 195, 169, 19, 26, 195, 188, 12, 195, 169, 11, 5, 20, 13, 10, 135, 2, 5, 12, 197, 145, 12, 5, 13, 11, 200,
+			5, 52, 218, 60, 227, 153, 4, 192, 13, 20, 145, 5, 12, 197, 145, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 20, 13, 7,
+			196, 36, 65, 74, 20, 13, 16, 141, 19, 26, 195, 161, 14, 4, 195, 169, 11, 21, 11, 1, 20, 13, 15, 140, 2, 5, 195, 161, 12, 12,
+			195, 173, 20, 195, 161, 19, 13, 16, 141, 11, 195, 169, 19, 26, 195, 188, 12, 195, 169, 11, 5, 20, 13, 20, 145, 19, 26, 15, 12, 7,
+			195, 161, 12, 20, 1, 20, 195, 161, 19, 195, 161, 20, 13, 0, 17, 142, 9, 4, 197, 145, 10, 195, 161, 18, 195, 161, 19, 195, 161, 20,
+			13, 21, 146, 19, 26, 15, 12, 7, 195, 161, 12, 20, 1, 20, 195, 161, 19, 15, 11, 1, 20, 13, 44, 18, 19, 26, 15, 12, 7, 195,
+			161, 12, 20, 1, 20, 195, 161, 19, 15, 11, 1, 20, 89, 39, 55, 81, 114, 55, 47, 108, 47, 114, 91, 39, 49, 108, 47, 23, 37, 91,
+			0, 13, 81, 105, 115, 32, 11, 136, 195, 173, 7, 195, 169, 18, 20, 5, 13, 21, 146, 3, 19, 1, 20, 12, 1, 11, 15, 26, 20, 1,
+			20, 195, 161, 19, 195, 161, 20, 13, 11, 136, 195, 173, 7, 195, 169, 18, 20, 5, 13, 8, 133, 19, 26, 195, 169, 12, 13, 0, 18, 143,
+			22, 195, 161, 12, 1, 19, 26, 20, 195, 161, 19, 15, 11, 1, 20, 13, 22, 147, 13, 5, 7, 22, 195, 161, 12, 20, 15, 26, 20, 1,
+			20, 195, 161, 19, 195, 161, 20, 13, 18, 143, 11, 195, 182, 26, 22, 195, 169, 12, 5, 13, 195, 169, 14, 25, 20, 13, 9, 198, 52, 243,
+			137, 80, 244, 128, 13, 22, 147, 22, 9, 19, 19, 26, 1, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 20, 13, 0, 10, 199,
+			77, 163, 198, 81, 97, 82, 80, 13, 10, 199, 28, 243, 132, 60, 197, 21, 44, 13, 10, 199, 32, 19, 135, 77, 161, 82, 80, 13, 11, 136,
+			22, 195, 169, 12, 9, 20, 5, 11, 13, 6, 195, 88, 243, 148, 13, 6, 195, 88, 243, 148, 13, 0, 19, 68, 57, 145, 76, 88, 67, 109,
+			55, 84, 23, 37, 91, 0, 13, 81, 105, 115, 32, 11, 200, 65, 35, 199, 72, 19, 77, 4, 192, 13, 12, 137, 8, 9, 20, 20, 195, 169,
+			20, 5, 11, 13, 7, 132, 20, 195, 186, 12, 13, 0, 8, 197, 32, 83, 25, 21, 64, 13, 8, 197, 77, 161, 77, 21, 64, 13, 9, 198,
+			4, 192, 84, 80, 144, 75, 13, 8, 197, 40, 21, 149, 49, 64, 13, 0, 19, 144, 22, 1, 12, 195, 179, 19, 26, 195, 173, 14, 197, 177,
+			20, 12, 5, 14, 13, 31, 7, 13, 9, 12, 12, 9, 195, 179, 65, 37, 55, 37, 115, 23, 83, 39, 52, 37, 50, 47, 0, 13, 81, 102,
+			111, 114, 105, 110, 116, 32, 12, 201, 36, 225, 193, 80, 192, 78, 84, 176, 129, 13, 0, 27, 152, 7, 25, 195, 179, 7, 25, 19, 26, 5,
+			18, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 195, 161, 20, 13, 9, 198, 20, 195, 79, 56, 69, 1, 13, 7, 195, 52, 147, 148,
+			102, 13, 7, 195, 52, 147, 148, 13, 23, 0, 10, 135, 13, 5, 7, 195, 169, 18, 9, 13, 0, 11, 136, 12, 195, 169, 20, 5, 26, 14,
+			9, 13, 13, 138, 19, 26, 5, 13, 20, 1, 14, 195, 186, 11, 13, 6, 131, 195, 161, 14, 72, 18, 69, 88, 68, 218, 77, 160, 84, 113,
+			72, 113, 109, 89, 109, 89, 0, 42, 42, 0, 20, 66, 56, 80, 50, 109, 23, 50, 113, 88, 88, 0, 13, 81, 110, 195, 169, 122, 122, 32,
+			24, 66, 56, 80, 50, 109, 10, 6, 15, 47, 109, 50, 12, 113, 0, 13, 81, 116, 101, 110, 110, 195, 169, 32, 14, 139, 11, 5, 18, 5,
+			19, 197, 145, 10, 195, 188, 11, 13, 9, 198, 85, 64, 90, 61, 69, 0, 13, 9, 198, 32, 83, 25, 21, 69, 0, 13, 5, 194, 56, 80,
+			13, 0, 22, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 32, 67, 52, 18, 132, 65,
+			108, 57, 72, 10, 6, 15, 65, 117, 49, 110, 72, 50, 37, 0, 13, 81, 109, 197, 177, 107, 195, 182, 100, 110, 105, 32, 34, 67, 52, 18,
+			132, 65, 108, 57, 72, 10, 6, 15, 55, 109, 107, 109, 47, 118, 84, 113, 0, 13, 81, 108, 101, 104, 101, 116, 197, 145, 118, 195, 169, 32,
+			40, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 65, 109, 81, 47, 109, 49, 37, 50, 47, 109, 50, 37, 0, 13, 81, 109, 101, 103,
+			116, 101, 107, 105, 110, 116, 101, 110, 105, 32, 33, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 107, 108, 55, 81, 108, 47, 50, 37,
+			0, 13, 81, 104, 97, 108, 108, 103, 97, 116, 110, 105, 32, 26, 67, 52, 18, 132, 65, 108, 57, 72, 10, 6, 15, 52, 108, 57, 47, 108,
+			0, 13, 81, 114, 97, 106, 116, 97, 32, 15, 140, 195, 169, 18, 4, 5, 11, 5, 19, 19, 195, 169, 7, 13, 6, 195, 52, 18, 132, 13,
+			0, 10, 135, 195, 161, 18, 21, 12, 14, 9, 13, 9, 134, 8, 195, 169, 20, 5, 14, 13, 7, 196, 44, 20, 14, 36, 13, 7, 196, 57,
+			145, 76, 80, 13, 6, 131, 195, 161, 13, 13, 15, 4, 95, 50, 17, 24, 65, 114, 91, 39, 72, 37, 49, 108, 0, 0, 40, 69, 20, 195,
+			5, 56, 144, 109, 55, 12, 109, 50, 37, 23, 83, 109, 55, 12, 113, 48, 113, 91, 52, 109, 0, 13, 81, 102, 101, 108, 108, 195, 169, 112,
+			195, 169, 115, 114, 101, 32, 8, 197, 88, 19, 1, 44, 144, 13, 10, 135, 6, 195, 169, 18, 6, 9, 14, 13, 8, 197, 28, 243, 66, 72,
+			16, 13, 0, 35, 5, 195, 169, 22, 18, 5, 113, 84, 52, 109, 10, 6, 15, 49, 113, 89, 111, 55, 50, 109, 0, 13, 81, 107, 195, 169,
+			115, 122, 195, 188, 108, 110, 101, 32, 8, 133, 195, 169, 22, 18, 5, 13, 11, 136, 3, 19, 195, 182, 11, 11, 5, 14, 13, 10, 135, 20,
+			21, 4, 10, 195, 161, 11, 13, 10, 135, 20, 21, 4, 10, 195, 161, 11, 13, 6, 131, 197, 145, 11, 13, 7, 131, 197, 145, 11, 13, 8,
+			0, 14, 139, 20, 195, 188, 14, 20, 5, 20, 195, 169, 19, 20, 13, 12, 201, 72, 83, 132, 20, 194, 197, 104, 83, 0, 13, 14, 139, 6,
+			5, 12, 12, 195, 169, 16, 195, 169, 19, 20, 13, 0, 10, 135, 195, 169, 12, 5, 20, 2, 5, 13, 9, 134, 10, 15, 7, 195, 161, 14,
+			13, 12, 137, 19, 26, 195, 161, 14, 10, 195, 161, 11, 13, 8, 133, 20, 195, 161, 14, 3, 13, 7, 132, 18, 195, 186, 4, 13, 7, 196,
+			77, 161, 80, 80, 20, 0, 20, 145, 8, 1, 12, 195, 161, 12, 2, 195, 188, 14, 20, 5, 20, 195, 169, 19, 20, 13, 13, 138, 7, 25,
+			195, 161, 18, 20, 10, 195, 161, 11, 13, 12, 201, 29, 145, 82, 52, 82, 197, 44, 85, 0, 13, 24, 149, 2, 197, 177, 14, 3, 19, 5,
+			12, 5, 11, 13, 195, 169, 14, 25, 5, 11, 195, 169, 18, 20, 13, 0, 15, 66, 49, 144, 109, 55, 55, 37, 48, 89, 37, 55, 39, 50,
+			0, 21, 146, 5, 7, 25, 195, 188, 20, 20, 13, 197, 177, 11, 195, 182, 4, 195, 169, 19, 20, 13, 11, 136, 12, 5, 12, 11, 195, 169,
+			19, 26, 13, 9, 198, 4, 64, 84, 60, 176, 84, 13, 9, 198, 88, 19, 1, 44, 149, 0, 13, 7, 132, 2, 197, 145, 18, 13, 5, 194,
+			61, 48, 72, 8, 132, 2, 195, 161, 18, 72, 8, 0, 34, 8, 12, 195, 161, 20, 19, 26, 9, 11, 55, 114, 119, 12, 37, 49, 10, 6,
+			15, 47, 109, 107, 114, 47, 0, 13, 81, 116, 101, 104, 195, 161, 116, 32, 31, 3, 195, 161, 20, 114, 47, 23, 108, 6, 23, 72, 52, 114,
+			84, 114, 47, 0, 13, 82, 97, 32, 100, 114, 195, 161, 118, 195, 161, 116, 32, 10, 135, 11, 195, 182, 26, 197, 177, 12, 13, 11, 136, 12,
+			195, 161, 20, 19, 26, 9, 11, 13, 6, 131, 197, 145, 20, 13, 6, 131, 195, 161, 20, 13, 15, 7, 95, 35, 45, 18, 197, 145, 12, 113,
+			52, 118, 55, 0, 21, 0, 12, 137, 19, 26, 195, 161, 14, 20, 195, 161, 11, 13, 24, 68, 36, 225, 21, 48, 37, 50, 72, 40, 55, 23,
+			65, 108, 57, 72, 0, 13, 81, 109, 97, 106, 100, 32, 11, 200, 32, 83, 25, 21, 69, 5, 76, 80, 13, 38, 68, 36, 225, 21, 48, 37,
+			50, 72, 40, 55, 23, 108, 6, 15, 83, 109, 55, 107, 118, 88, 109, 47, 0, 13, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116,
+			32, 16, 141, 2, 9, 26, 20, 15, 19, 195, 173, 20, 10, 195, 161, 11, 13, 7, 196, 24, 150, 133, 80, 13, 12, 137, 10, 195, 161, 18,
+			1, 4, 195, 169, 11, 13, 11, 136, 8, 5, 12, 25, 18, 197, 145, 12, 13, 13, 4, 95, 48, 77, 52, 71, 37, 55, 55, 37, 115, 0,
+			0, 34, 9, 4, 195, 182, 14, 20, 195, 182, 20, 20, 72, 110, 50, 47, 110, 47, 12, 23, 108, 52, 52, 115, 55, 0, 13, 81, 97, 114,
+			114, 195, 179, 108, 32, 14, 139, 2, 5, 22, 195, 169, 20, 5, 12, 8, 5, 26, 13, 12, 137, 195, 169, 22, 5, 11, 2, 197, 145, 12,
+			13, 15, 140, 13, 21, 14, 11, 1, 20, 195, 161, 18, 19, 1, 9, 13, 12, 201, 40, 21, 129, 76, 192, 84, 60, 176, 84, 13, 12, 137,
+			195, 169, 22, 5, 11, 2, 197, 145, 12, 13, 6, 131, 197, 145, 18, 13, 12, 137, 4, 195, 182, 14, 20, 195, 182, 20, 20, 13, 0, 14,
+			139, 2, 195, 188, 14, 20, 5, 19, 19, 195, 169, 11, 13, 13, 138, 12, 5, 11, 195, 182, 20, 195, 182, 20, 20, 13, 10, 135, 6, 15,
+			18, 18, 195, 161, 19, 13, 13, 4, 95, 48, 77, 50, 65, 37, 55, 55, 37, 115, 0, 0, 14, 139, 22, 195, 169, 12, 5, 11, 5, 4,
+			5, 20, 20, 13, 10, 135, 6, 195, 169, 18, 6, 9, 20, 13, 10, 135, 8, 9, 195, 161, 14, 25, 20, 13, 6, 195, 88, 243, 128, 13,
+			6, 195, 52, 147, 132, 13, 15, 4, 95, 48, 77, 51, 65, 37, 55, 55, 37, 114, 52, 72, 0, 0, 9, 134, 13, 195, 169, 20, 5, 18,
+			13, 11, 136, 15, 12, 4, 1, 12, 195, 161, 20, 13, 12, 137, 20, 5, 8, 5, 20, 10, 195, 188, 11, 13, 11, 136, 11, 5, 18, 195,
+			188, 12, 5, 20, 13, 11, 136, 7, 195, 169, 16, 5, 11, 5, 20, 13, 9, 198, 24, 241, 193, 48, 208, 90, 13, 0, 45, 13, 5, 12,
+			12, 5, 14, 197, 145, 18, 26, 195, 182, 20, 20, 109, 55, 12, 109, 50, 110, 52, 88, 110, 47, 12, 23, 109, 79, 91, 113, 81, 109, 0,
+			13, 81, 101, 103, 121, 115, 195, 169, 103, 101, 32, 12, 137, 9, 4, 5, 7, 5, 19, 195, 173, 20, 13, 9, 134, 11, 195, 169, 16, 5,
+			19, 13, 11, 4, 95, 48, 77, 49, 109, 88, 109, 52, 0, 0, 9, 134, 10, 15, 7, 195, 161, 20, 13, 9, 134, 10, 195, 182, 8, 5,
+			20, 13, 61, 16, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 10, 195, 161, 8, 15, 26, 48, 52, 39, 71, 55, 113, 65, 114, 57, 114,
+			107, 39, 88, 23, 107, 108, 91, 39, 50, 55, 112, 47, 39, 47, 12, 108, 0, 13, 81, 104, 97, 115, 111, 110, 108, 195, 173, 116, 111, 116,
+			116, 97, 32, 9, 134, 195, 161, 18, 195, 161, 20, 13, 10, 135, 20, 1, 18, 20, 195, 161, 19, 13, 13, 138, 195, 173, 7, 195, 169, 18,
+			5, 20, 5, 20, 13, 9, 134, 12, 195, 161, 14, 25, 20, 13, 13, 4, 95, 2, 18, 22, 83, 113, 55, 49, 110, 52, 0, 0, 8, 67,
+			17, 164, 192, 75, 113, 0, 14, 139, 10, 15, 7, 19, 195, 169, 18, 20, 197, 145, 20, 13, 18, 143, 20, 5, 12, 5, 16, 8, 5, 12,
+			25, 195, 169, 18, 197, 145, 12, 13, 22, 147, 19, 5, 7, 195, 169, 4, 5, 19, 26, 11, 195, 182, 26, 195, 182, 11, 11, 5, 12, 13,
+			18, 143, 10, 5, 12, 5, 14, 12, 195, 169, 20, 195, 169, 18, 197, 145, 12, 13, 6, 195, 8, 244, 128, 13, 0, 16, 141, 195, 169, 18,
+			20, 5, 12, 13, 5, 26, 26, 195, 188, 11, 13, 43, 11, 5, 7, 25, 5, 19, 195, 188, 12, 5, 20, 9, 109, 79, 12, 109, 91, 111,
+			55, 109, 47, 37, 23, 84, 109, 88, 109, 47, 118, 49, 0, 13, 81, 118, 101, 122, 101, 116, 197, 145, 107, 32, 9, 198, 48, 82, 5, 77,
+			49, 78, 13, 9, 198, 72, 244, 211, 104, 16, 130, 13, 15, 140, 22, 195, 161, 12, 20, 1, 11, 15, 26, 8, 1, 20, 13, 0, 12, 201,
+			29, 145, 82, 52, 82, 197, 36, 177, 84, 13, 16, 141, 9, 19, 13, 5, 18, 197, 145, 19, 5, 9, 11, 5, 20, 13, 10, 135, 19, 26,
+			195, 169, 16, 5, 14, 13, 0, 24, 70, 4, 192, 75, 84, 197, 0, 108, 55, 108, 49, 40, 55, 47, 23, 49, 37, 0, 13, 81, 107, 105,
+			32, 14, 139, 22, 195, 161, 12, 1, 19, 26, 20, 195, 161, 19, 13, 11, 136, 8, 195, 161, 2, 15, 18, 195, 186, 13, 13, 138, 9, 19,
+			11, 15, 12, 195, 161, 11, 1, 20, 13, 9, 134, 19, 26, 195, 161, 14, 20, 13, 11, 136, 19, 26, 195, 169, 12, 195, 169, 14, 13, 14,
+			139, 5, 7, 25, 5, 14, 18, 21, 8, 195, 161, 19, 22, 0, 22, 147, 20, 5, 22, 195, 169, 11, 5, 14, 25, 19, 195, 169, 7, 195,
+			169, 18, 197, 145, 12, 13, 14, 139, 195, 161, 12, 12, 15, 13, 195, 161, 14, 25, 20, 13, 18, 143, 2, 9, 12, 12, 5, 14, 20, 25,
+			197, 177, 26, 5, 20, 5, 20, 13, 14, 139, 11, 5, 4, 195, 169, 12, 25, 5, 11, 5, 20, 13, 10, 135, 22, 195, 161, 12, 12, 1,
+			12, 13, 7, 132, 8, 195, 186, 19, 13, 8, 133, 19, 26, 195, 173, 14, 13, 0, 7, 196, 24, 241, 207, 44, 76, 6, 195, 52, 148, 133,
+			13, 12, 137, 13, 15, 14, 4, 1, 14, 195, 169, 11, 13, 7, 196, 77, 161, 82, 80, 13, 0, 47, 13, 16, 18, 15, 2, 12, 195, 169,
+			13, 195, 161, 11, 1, 20, 48, 52, 39, 71, 55, 113, 65, 114, 49, 108, 47, 23, 49, 108, 48, 108, 52, 81, 108, 47, 0, 13, 81, 107,
+			97, 112, 97, 114, 103, 97, 116, 32, 26, 69, 4, 192, 75, 84, 192, 108, 55, 108, 49, 40, 55, 23, 65, 108, 57, 72, 0, 13, 81, 109,
+			97, 106, 100, 32, 16, 141, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 11, 1, 20, 13, 16, 141, 8, 1, 14, 7, 13, 9, 14, 20,
+			195, 161, 11, 1, 20, 13, 16, 141, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 195, 161, 20, 13, 8, 197, 4, 192, 75, 84, 192, 13,
+			16, 141, 6, 15, 18, 4, 195, 173, 20, 195, 161, 19, 195, 161, 20, 13, 12, 137, 6, 5, 12, 20, 195, 169, 20, 5, 12, 13, 0, 16,
+			141, 12, 195, 182, 22, 195, 182, 12, 4, 195, 182, 26, 197, 145, 13, 6, 131, 195, 169, 7, 13, 12, 201, 72, 83, 132, 77, 161, 82, 20,
+			180, 133, 13, 6, 131, 195, 169, 7, 13, 0, 19, 144, 13, 5, 7, 14, 25, 9, 12, 22, 195, 161, 14, 21, 12, 195, 161, 19, 13, 9,
+			198, 13, 51, 205, 4, 116, 129, 13, 0, 17, 142, 22, 9, 12, 195, 161, 7, 8, 195, 161, 2, 15, 18, 195, 186, 13, 11, 200, 29, 145,
+			82, 20, 177, 75, 20, 224, 13, 7, 196, 76, 83, 77, 36, 13, 0, 8, 197, 5, 163, 203, 5, 64, 13, 42, 69, 24, 83, 5, 81, 64,
+			83, 109, 55, 109, 47, 12, 23, 37, 91, 23, 65, 109, 81, 89, 117, 50, 37, 49, 0, 13, 82, 105, 115, 32, 109, 101, 103, 115, 122, 197,
+			177, 110, 105, 107, 32, 8, 197, 24, 83, 5, 81, 64, 13, 17, 9, 95, 35, 45, 195, 169, 14, 195, 169, 12, 113, 50, 113, 55, 0, 21,
+			0, 21, 146, 195, 182, 14, 11, 15, 18, 13, 195, 161, 14, 25, 26, 1, 20, 15, 11, 1, 20, 13, 12, 137, 11, 195, 169, 18, 4, 5,
+			26, 20, 5, 13, 9, 134, 19, 26, 195, 161, 12, 12, 13, 13, 67, 61, 68, 0, 115, 47, 113, 48, 113, 0, 42, 42, 7, 132, 10, 195,
+			186, 14, 20, 13, 7, 95, 35, 45, 195, 161, 9, 7, 114, 37, 81, 0, 0, 19, 67, 61, 69, 0, 39, 47, 12, 23, 84, 108, 50, 0,
+			13, 81, 118, 97, 110, 32, 13, 138, 7, 25, 195, 182, 20, 195, 182, 18, 20, 5, 13, 6, 195, 61, 69, 0, 13, 6, 195, 56, 245, 128,
+			20, 0, 7, 196, 24, 241, 207, 52, 13, 7, 196, 48, 20, 15, 80, 13, 7, 132, 10, 195, 186, 12, 20, 0, 0, 18, 66, 64, 48, 112,
+			195, 169, 99, 195, 169, 115, 0, 44, 29, 42, 81, 115, 32, 17, 66, 64, 48, 112, 195, 169, 99, 195, 169, 110, 0, 44, 29, 81, 110, 32,
+			18, 66, 64, 48, 112, 195, 169, 99, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 18, 66, 64, 48, 112, 195, 169, 99, 195, 169, 107, 0,
+			44, 29, 42, 81, 107, 32, 32, 7, 22, 5, 20, 20, 195, 188, 11, 84, 109, 47, 12, 111, 49, 10, 6, 15, 113, 89, 52, 109, 0, 13,
+			81, 195, 169, 115, 122, 114, 101, 32, 7, 132, 2, 195, 173, 26, 13, 9, 198, 88, 82, 5, 77, 49, 64, 13, 5, 194, 52, 144, 13, 20,
+			66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 47, 0, 44, 13, 81, 116, 32, 22, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47,
+			109, 52, 109, 91, 0, 44, 13, 81, 101, 115, 32, 23, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 67, 37, 0, 44, 13, 81,
+			110, 121, 105, 32, 27, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 67, 37, 52, 109, 0, 44, 13, 81, 110, 121, 105, 114, 101,
+			32, 22, 66, 44, 208, 49, 37, 55, 115, 65, 113, 47, 109, 52, 52, 109, 0, 44, 13, 81, 114, 101, 32, 15, 66, 44, 208, 49, 37, 55,
+			115, 65, 113, 47, 109, 52, 0, 13, 0, 31, 6, 19, 26, 195, 161, 13, 1, 89, 114, 65, 108, 23, 76, 110, 49, 12, 109, 50, 0, 13,
+			81, 99, 115, 195, 182, 107, 107, 101, 110, 32, 36, 67, 44, 86, 132, 49, 109, 88, 72, 23, 108, 6, 23, 83, 109, 55, 107, 118, 88, 109,
+			47, 0, 13, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 9, 134, 19, 26, 195, 161, 13, 1, 13, 6, 195, 44, 86, 132,
+			13, 0, 11, 200, 44, 85, 133, 72, 81, 5, 81, 64, 13, 11, 200, 76, 146, 197, 72, 81, 5, 81, 64, 13, 0, 8, 197, 32, 21, 14,
+			4, 176, 13, 12, 201, 4, 194, 193, 48, 208, 90, 61, 69, 0, 13, 0, 43, 11, 12, 5, 8, 5, 20, 197, 145, 19, 195, 169, 7, 55,
+			109, 107, 109, 47, 118, 91, 113, 81, 15, 84, 108, 50, 15, 108, 52, 52, 108, 0, 13, 82, 118, 97, 110, 32, 97, 114, 114, 97, 32, 10,
+			135, 11, 195, 169, 18, 12, 5, 11, 13, 9, 198, 8, 150, 148, 61, 48, 84, 13, 14, 139, 12, 5, 8, 5, 20, 197, 145, 19, 195, 169,
+			7, 13, 10, 135, 12, 5, 14, 14, 195, 169, 11, 13, 0, 22, 67, 52, 149, 0, 65, 37, 47, 23, 109, 89, 109, 55, 0, 13, 81, 101,
+			115, 122, 101, 108, 32, 38, 67, 52, 149, 0, 65, 37, 47, 10, 6, 15, 84, 114, 55, 47, 39, 89, 47, 108, 47, 50, 37, 0, 13, 81,
+			118, 195, 161, 108, 116, 111, 122, 116, 97, 116, 110, 105, 32, 6, 195, 8, 244, 148, 13, 6, 195, 52, 149, 0, 13, 0, 7, 196, 24, 241,
+			206, 36, 13, 11, 200, 80, 20, 148, 32, 21, 14, 4, 176, 13, 31, 68, 24, 241, 202, 4, 83, 39, 81, 57, 108, 10, 6, 15, 113, 52,
+			47, 109, 50, 37, 0, 13, 81, 195, 169, 114, 116, 101, 110, 105, 32, 40, 68, 24, 241, 202, 4, 83, 39, 81, 57, 108, 23, 109, 52, 109,
+			72, 65, 113, 67, 109, 88, 50, 37, 0, 13, 81, 101, 114, 101, 100, 109, 195, 169, 110, 121, 101, 122, 110, 105, 32, 10, 135, 6, 195, 161,
+			10, 12, 2, 1, 13, 11, 200, 72, 83, 132, 77, 161, 82, 72, 80, 13, 7, 196, 24, 241, 202, 4, 13, 0, 8, 197, 44, 85, 25, 20,
+			112, 13, 8, 197, 8, 18, 129, 36, 208, 13, 8, 197, 77, 160, 86, 4, 176, 13, 0, 12, 137, 20, 1, 7, 195, 161, 12, 12, 1, 13,
+			13, 12, 137, 11, 5, 26, 5, 12, 197, 145, 10, 5, 13, 13, 138, 22, 195, 161, 19, 195, 161, 18, 15, 12, 20, 13, 7, 132, 2, 195,
+			173, 18, 13, 0, 14, 203, 20, 195, 85, 48, 20, 218, 80, 245, 20, 84, 176, 13, 14, 203, 24, 83, 15, 49, 96, 83, 32, 21, 14, 4,
+			176, 13, 10, 199, 80, 84, 150, 21, 161, 84, 80, 13, 10, 135, 12, 5, 14, 14, 195, 169, 12, 13, 11, 136, 22, 195, 169, 12, 20, 195,
+			169, 11, 13, 10, 135, 195, 169, 10, 6, 195, 169, 12, 22, 0, 11, 136, 11, 195, 182, 20, 195, 182, 20, 20, 13, 15, 140, 11, 15, 14,
+			3, 5, 14, 20, 18, 195, 161, 12, 20, 13, 6, 131, 14, 197, 145, 13, 0, 6, 131, 195, 173, 18, 13, 12, 137, 11, 195, 188, 12, 4,
+			195, 182, 20, 20, 13, 8, 133, 19, 26, 195, 169, 16, 13, 0, 12, 6, 95, 35, 45, 195, 169, 20, 113, 47, 0, 21, 0, 10, 135, 11,
+			195, 169, 16, 12, 5, 20, 13, 0, 15, 140, 14, 5, 22, 5, 12, 197, 145, 11, 14, 195, 169, 12, 13, 60, 8, 6, 5, 12, 195, 188,
+			12, 5, 20, 83, 109, 55, 111, 55, 109, 47, 23, 108, 49, 108, 72, 114, 57, 65, 109, 50, 47, 109, 91, 12, 113, 81, 113, 47, 0, 13,
+			81, 97, 107, 97, 100, 195, 161, 108, 121, 109, 101, 110, 116, 101, 115, 115, 195, 169, 103, 195, 169, 116, 32, 11, 136, 6, 5, 12, 195, 188,
+			12, 5, 20, 13, 28, 8, 6, 5, 12, 195, 188, 12, 5, 20, 83, 109, 55, 111, 55, 109, 47, 23, 84, 108, 50, 0, 13, 81, 118, 97,
+			110, 32, 9, 134, 6, 5, 8, 195, 169, 18, 13, 10, 135, 19, 26, 195, 179, 22, 195, 161, 13, 7, 132, 6, 195, 182, 12, 13, 0, 12,
+			137, 20, 5, 19, 20, 195, 188, 12, 5, 20, 13, 8, 133, 19, 26, 195, 169, 20, 13, 0, 13, 138, 195, 173, 20, 195, 169, 12, 5, 20,
+			5, 20, 13, 13, 138, 6, 5, 12, 195, 188, 12, 5, 20, 5, 20, 13, 9, 134, 19, 5, 7, 195, 173, 20, 13, 8, 133, 12, 195, 161,
+			14, 25, 13, 0, 11, 136, 11, 1, 16, 14, 195, 161, 14, 11, 13, 24, 3, 195, 182, 20, 110, 47, 23, 49, 110, 52, 111, 55, 0, 13,
+			81, 107, 195, 182, 114, 195, 188, 108, 32, 14, 139, 20, 5, 18, 22, 5, 26, 5, 20, 195, 169, 20, 13, 14, 139, 11, 195, 169, 20, 19,
+			195, 169, 7, 5, 9, 20, 13, 0, 18, 143, 11, 195, 169, 20, 19, 195, 169, 7, 2, 5, 5, 19, 20, 5, 13, 13, 12, 137, 9, 19,
+			13, 5, 18, 20, 195, 188, 11, 13, 14, 139, 11, 18, 9, 20, 9, 11, 21, 19, 19, 195, 161, 13, 11, 136, 1, 10, 195, 161, 14, 12,
+			1, 20, 13, 11, 4, 95, 49, 15, 24, 109, 55, 91, 118, 0, 0, 35, 8, 11, 15, 18, 13, 195, 161, 14, 25, 49, 39, 52, 65, 114,
+			67, 23, 49, 110, 88, 110, 47, 12, 0, 13, 81, 107, 195, 182, 122, 195, 182, 116, 116, 32, 15, 140, 5, 7, 25, 195, 169, 18, 20, 5,
+			12, 13, 197, 177, 13, 0, 6, 131, 195, 182, 19, 72, 0, 12, 137, 14, 1, 7, 25, 11, 15, 18, 195, 186, 13, 14, 139, 195, 169, 12,
+			5, 20, 195, 169, 22, 195, 169, 20, 13, 13, 138, 2, 1, 10, 11, 5, 22, 5, 18, 197, 145, 13, 8, 133, 195, 161, 18, 195, 186, 13,
+			0, 15, 140, 11, 195, 169, 14, 25, 19, 26, 5, 18, 195, 173, 20, 13, 0, 16, 141, 13, 1, 18, 1, 4, 22, 195, 161, 14, 25, 1,
+			9, 20, 13, 19, 144, 20, 5, 12, 10, 5, 19, 195, 173, 20, 13, 195, 169, 14, 25, 197, 177, 13, 8, 133, 4, 195, 182, 14, 20, 13,
+			0, 0, 11, 136, 10, 195, 161, 18, 1, 20, 15, 11, 13, 6, 195, 40, 241, 192, 13, 8, 133, 19, 26, 195, 179, 18, 72, 0, 22, 147,
+			8, 1, 19, 26, 14, 195, 161, 12, 8, 1, 20, 1, 20, 12, 1, 14, 14, 195, 161, 13, 6, 195, 40, 241, 193, 13, 0, 0, 0, 6,
+			195, 24, 241, 192, 13, 36, 67, 24, 241, 192, 83, 39, 81, 23, 108, 6, 15, 71, 37, 88, 39, 76, 12, 114, 81, 0, 13, 82, 97, 32,
+			98, 105, 122, 111, 116, 116, 115, 195, 161, 103, 32, 29, 67, 24, 241, 192, 83, 39, 81, 23, 107, 108, 34, 119, 39, 55, 50, 37, 0, 13,
+			81, 104, 97, 114, 99, 111, 108, 110, 105, 32, 0, 6, 195, 24, 241, 193, 13, 15, 140, 5, 21, 18, 195, 179, 16, 195, 161, 2, 195, 179,
+			12, 13, 8, 133, 18, 195, 161, 14, 11, 13, 6, 195, 52, 17, 193, 13, 0, 42, 3, 195, 169, 14, 113, 50, 15, 37, 91, 15, 65, 109,
+			81, 76, 37, 50, 114, 55, 47, 108, 65, 0, 13, 82, 105, 115, 32, 109, 101, 103, 99, 115, 105, 110, 195, 161, 108, 116, 97, 109, 32, 16,
+			3, 195, 169, 14, 113, 50, 15, 37, 91, 0, 13, 81, 105, 115, 32, 12, 137, 6, 21, 14, 11, 3, 9, 195, 179, 20, 13, 9, 134, 11,
+			9, 12, 195, 179, 19, 13, 6, 131, 195, 169, 14, 13, 8, 133, 19, 26, 195, 179, 20, 13, 6, 131, 195, 169, 14, 13, 0, 15, 140, 11,
+			195, 188, 12, 6, 195, 182, 12, 4, 195, 182, 14, 13, 9, 198, 40, 83, 26, 21, 69, 0, 13, 5, 194, 72, 16, 13, 0, 7, 132, 10,
+			195, 179, 11, 13, 6, 131, 195, 169, 12, 13, 0, 7, 132, 20, 195, 179, 12, 13, 0, 8, 197, 36, 195, 5, 80, 144, 13, 22, 5, 1,
+			12, 195, 179, 12, 108, 55, 115, 55, 10, 6, 15, 108, 88, 0, 13, 81, 97, 122, 32, 35, 69, 88, 19, 1, 52, 144, 84, 108, 55, 108,
+			65, 37, 15, 48, 52, 39, 71, 55, 113, 65, 108, 0, 13, 81, 112, 114, 111, 98, 108, 195, 169, 109, 97, 32, 8, 197, 88, 19, 1, 52,
+			144, 13, 8, 197, 25, 85, 14, 4, 176, 13, 8, 197, 64, 243, 148, 40, 16, 13, 8, 133, 1, 12, 195, 179, 12, 13, 0, 15, 140, 8,
+			195, 188, 12, 25, 195, 169, 19, 11, 5, 4, 10, 13, 9, 198, 24, 150, 133, 80, 82, 192, 13, 9, 198, 88, 84, 147, 20, 230, 64, 13,
+			9, 198, 60, 179, 218, 80, 18, 192, 13, 9, 198, 80, 17, 202, 4, 149, 0, 13, 9, 198, 88, 83, 5, 80, 82, 192, 13, 14, 67, 48,
+			212, 0, 109, 55, 109, 65, 48, 113, 0, 42, 42, 0, 23, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 0, 13, 81, 107, 195,
+			182, 122, 195, 169, 32, 43, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 23, 109, 65, 109, 55, 49, 109, 72, 37, 49, 0, 13,
+			82, 107, 195, 182, 122, 195, 169, 32, 101, 109, 101, 108, 107, 101, 100, 105, 107, 32, 46, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88,
+			110, 47, 12, 23, 89, 115, 52, 115, 72, 37, 49, 0, 13, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 115, 122, 195, 179, 114, 195, 179,
+			100, 105, 107, 32, 70, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 113, 23, 76, 110, 49, 12, 109, 50, 23, 108, 23, 107, 118, 65,
+			113, 52, 91, 113, 49, 55, 109, 47, 0, 13, 84, 107, 195, 182, 122, 195, 169, 32, 99, 115, 195, 182, 107, 107, 101, 110, 32, 97, 32, 104,
+			197, 145, 109, 195, 169, 114, 115, 195, 169, 107, 108, 101, 116, 32, 41, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 110, 47, 12, 23,
+			108, 55, 108, 49, 40, 55, 0, 13, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 97, 108, 97, 107, 117, 108, 32, 74, 67, 24, 242, 192,
+			83, 39, 49, 23, 83, 110, 55, 113, 23, 109, 65, 109, 55, 49, 109, 72, 37, 49, 23, 108, 23, 107, 118, 65, 113, 52, 91, 113, 49, 55,
+			109, 47, 0, 13, 84, 102, 195, 182, 108, 195, 169, 32, 101, 109, 101, 108, 107, 101, 100, 105, 107, 32, 97, 32, 104, 197, 145, 109, 195, 169,
+			114, 115, 195, 169, 107, 108, 101, 116, 32, 45, 67, 24, 242, 192, 83, 39, 49, 23, 49, 110, 88, 110, 47, 12, 23, 84, 114, 51, 107, 108,
+			47, 115, 0, 13, 82, 107, 195, 182, 122, 195, 182, 116, 116, 32, 118, 195, 161, 114, 104, 97, 116, 195, 179, 32, 6, 195, 24, 242, 192, 13,
+			15, 140, 3, 19, 195, 188, 20, 195, 182, 18, 20, 195, 182, 11, 20, 0, 16, 141, 6, 5, 12, 13, 15, 14, 4, 1, 14, 195, 161, 14,
+			11, 13, 6, 195, 24, 241, 217, 13, 10, 135, 20, 195, 182, 14, 11, 18, 5, 13, 12, 137, 1, 10, 195, 161, 14, 12, 10, 21, 11, 13,
+			7, 132, 10, 195, 179, 12, 13, 7, 132, 6, 195, 169, 12, 13, 6, 131, 195, 169, 9, 72, 7, 132, 18, 195, 179, 12, 13, 0, 24, 3,
+			195, 169, 22, 113, 84, 23, 109, 55, 47, 109, 55, 47, 0, 13, 81, 101, 108, 116, 101, 108, 116, 32, 22, 3, 195, 169, 22, 113, 84, 23,
+			108, 55, 108, 47, 12, 0, 13, 81, 97, 108, 97, 116, 116, 32, 31, 69, 77, 160, 86, 4, 208, 89, 108, 84, 108, 65, 15, 57, 114, 52,
+			114, 91, 108, 0, 13, 81, 106, 195, 161, 114, 195, 161, 115, 97, 32, 12, 201, 77, 161, 82, 21, 1, 76, 56, 82, 192, 13, 8, 197, 80,
+			17, 202, 4, 144, 13, 6, 131, 195, 169, 22, 13, 8, 133, 19, 26, 195, 179, 12, 13, 12, 137, 12, 195, 161, 20, 19, 26, 15, 20, 20,
+			13, 6, 131, 195, 182, 14, 13, 0, 7, 66, 57, 144, 109, 67, 0, 9, 198, 52, 20, 129, 16, 242, 192, 13, 10, 135, 22, 195, 161, 7,
+			195, 179, 11, 13, 41, 5, 195, 169, 7, 18, 5, 113, 81, 52, 109, 23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 13, 81,
+			115, 122, 195, 161, 109, 195, 173, 116, 104, 97, 116, 117, 110, 107, 32, 9, 198, 88, 19, 1, 52, 149, 0, 13, 9, 198, 24, 243, 25, 56,
+			18, 192, 13, 9, 134, 5, 14, 14, 195, 169, 12, 13, 0, 26, 71, 32, 83, 25, 21, 161, 84, 80, 107, 109, 57, 109, 88, 109, 47, 12,
+			23, 49, 37, 0, 13, 81, 107, 105, 32, 10, 199, 80, 145, 210, 37, 51, 133, 44, 13, 14, 139, 8, 1, 20, 195, 161, 18, 15, 26, 15,
+			20, 20, 13, 7, 132, 12, 195, 179, 7, 13, 9, 134, 11, 195, 182, 26, 195, 169, 13, 0, 15, 140, 7, 15, 14, 4, 15, 12, 1, 20,
+			20, 195, 179, 12, 13, 15, 140, 16, 195, 169, 12, 4, 195, 161, 11, 20, 195, 179, 12, 13, 13, 138, 12, 5, 7, 9, 14, 11, 195, 161,
+			2, 2, 13, 15, 140, 11, 15, 18, 12, 195, 161, 20, 15, 26, 15, 20, 20, 13, 15, 204, 40, 83, 5, 57, 66, 197, 104, 129, 84, 56,
+			82, 192, 13, 12, 136, 11, 195, 182, 26, 195, 182, 20, 20, 72, 22, 0, 23, 3, 195, 169, 18, 113, 52, 23, 84, 113, 81, 109, 47, 0,
+			13, 81, 118, 195, 169, 103, 101, 116, 32, 18, 3, 195, 169, 18, 113, 52, 10, 6, 15, 109, 55, 0, 13, 81, 101, 108, 32, 11, 136, 10,
+			195, 161, 18, 1, 20, 1, 9, 13, 12, 137, 11, 15, 18, 195, 161, 2, 195, 179, 12, 13, 12, 201, 72, 83, 132, 77, 161, 82, 56, 82,
+			192, 13, 11, 136, 195, 173, 18, 195, 161, 19, 18, 1, 13, 12, 137, 8, 9, 2, 195, 161, 26, 15, 20, 20, 13, 6, 131, 195, 169, 18,
+			13, 0, 42, 10, 4, 15, 12, 7, 15, 11, 18, 195, 179, 12, 72, 39, 55, 81, 39, 49, 52, 115, 55, 23, 71, 109, 89, 113, 55, 109,
+			49, 0, 13, 81, 98, 101, 115, 122, 195, 169, 108, 101, 107, 32, 17, 3, 195, 169, 19, 113, 91, 23, 57, 115, 0, 13, 81, 106, 195, 179,
+			32, 26, 3, 195, 169, 19, 113, 91, 23, 83, 108, 48, 108, 72, 39, 91, 0, 13, 81, 102, 97, 112, 97, 100, 111, 115, 32, 34, 3, 195,
+			169, 19, 113, 91, 23, 71, 39, 89, 12, 108, 50, 47, 115, 108, 49, 0, 13, 81, 98, 111, 115, 115, 122, 97, 110, 116, 195, 179, 97, 107,
+			32, 13, 138, 9, 14, 4, 9, 195, 161, 2, 195, 179, 12, 13, 19, 144, 22, 195, 161, 12, 20, 15, 26, 195, 169, 11, 15, 14, 25, 1,
+			2, 2, 13, 25, 3, 195, 169, 19, 113, 91, 65, 115, 79, 12, 114, 47, 0, 13, 81, 109, 195, 179, 100, 106, 195, 161, 116, 32, 9, 134,
+			9, 14, 4, 195, 173, 20, 13, 8, 131, 195, 169, 19, 72, 12, 22, 18, 4, 95, 3, 9, 18, 119, 37, 52, 49, 40, 65, 83, 55, 109,
+			49, 89, 0, 0, 19, 5, 19, 26, 195, 173, 22, 89, 112, 84, 23, 109, 55, 0, 13, 81, 101, 108, 32, 13, 138, 22, 195, 161, 18, 15,
+			19, 195, 161, 2, 1, 13, 9, 134, 8, 15, 26, 26, 195, 161, 13, 0, 54, 11, 3, 19, 1, 16, 1, 4, 195, 169, 11, 18, 1, 76,
+			108, 48, 108, 72, 113, 49, 52, 108, 23, 91, 37, 50, 76, 23, 49, 37, 55, 114, 47, 114, 91, 0, 13, 82, 115, 105, 110, 99, 115, 32,
+			107, 105, 108, 195, 161, 116, 195, 161, 115, 32, 15, 140, 195, 161, 12, 12, 1, 16, 15, 20, 18, 195, 179, 12, 13, 7, 196, 52, 81, 217,
+			20, 13, 7, 196, 53, 83, 139, 4, 13, 19, 144, 11, 1, 12, 195, 179, 26, 11, 15, 4, 195, 161, 19, 20, 195, 179, 12, 13, 0, 15,
+			140, 20, 1, 14, 195, 161, 3, 19, 1, 4, 195, 179, 9, 13, 12, 137, 22, 195, 169, 20, 5, 12, 195, 169, 20, 13, 16, 141, 6, 15,
+			7, 12, 1, 12, 20, 1, 11, 18, 195, 179, 12, 13, 6, 131, 195, 179, 14, 72, 0, 17, 3, 95, 194, 183, 49, 110, 88, 113, 48, 91,
+			118, 48, 39, 50, 47, 0, 9, 134, 11, 5, 26, 195, 169, 20, 13, 10, 135, 8, 9, 20, 20, 195, 188, 11, 13, 17, 142, 11, 1, 16,
+			1, 3, 9, 20, 195, 161, 19, 18, 195, 179, 12, 13, 8, 133, 14, 5, 22, 197, 177, 13, 10, 135, 8, 9, 20, 20, 195, 188, 11, 13,
+			0, 32, 7, 5, 19, 195, 169, 12, 25, 20, 109, 91, 113, 57, 47, 10, 6, 15, 55, 114, 47, 39, 49, 0, 13, 81, 108, 195, 161, 116,
+			111, 107, 32, 10, 135, 5, 18, 5, 10, 195, 169, 20, 13, 18, 143, 20, 195, 161, 18, 19, 1, 19, 8, 195, 161, 26, 2, 195, 179, 12,
+			13, 18, 143, 19, 26, 5, 13, 16, 15, 14, 20, 10, 195, 161, 2, 195, 179, 12, 13, 10, 199, 52, 243, 132, 4, 229, 78, 44, 13, 9,
+			134, 11, 195, 169, 18, 14, 9, 13, 8, 133, 19, 26, 195, 182, 18, 72, 0, 11, 136, 19, 26, 5, 18, 22, 195, 169, 20, 13, 0, 19,
+			3, 95, 194, 178, 65, 114, 91, 39, 72, 37, 49, 107, 108, 47, 84, 114, 67, 0, 19, 144, 11, 195, 182, 26, 195, 169, 16, 16, 15, 14,
+			20, 10, 195, 161, 2, 1, 13, 12, 137, 19, 26, 5, 13, 195, 169, 12, 25, 20, 13, 11, 136, 5, 12, 12, 195, 161, 20, 14, 9, 13,
+			9, 134, 2, 195, 161, 14, 9, 11, 13, 11, 136, 11, 5, 18, 195, 188, 12, 14, 9, 13, 0, 20, 3, 95, 194, 179, 107, 108, 34, 65,
+			108, 72, 37, 49, 107, 108, 47, 84, 114, 67, 0, 42, 8, 19, 26, 15, 13, 15, 18, 195, 186, 89, 39, 65, 39, 52, 116, 23, 84, 39,
+			55, 47, 23, 55, 114, 47, 50, 37, 0, 13, 82, 118, 111, 108, 116, 32, 108, 195, 161, 116, 110, 105, 32, 21, 146, 5, 12, 2, 15, 3,
+			19, 195, 161, 20, 195, 161, 19, 15, 11, 18, 195, 179, 12, 13, 12, 137, 5, 7, 25, 19, 26, 5, 18, 197, 177, 13, 14, 4, 195, 182,
+			26, 22, 110, 88, 84, 109, 79, 0, 25, 9, 0, 14, 139, 19, 26, 195, 161, 13, 195, 173, 20, 8, 1, 20, 13, 12, 137, 5, 12, 197,
+			145, 19, 26, 195, 182, 18, 13, 14, 139, 18, 5, 14, 4, 19, 26, 5, 18, 195, 169, 20, 13, 14, 139, 22, 195, 169, 12, 5, 13, 195,
+			169, 14, 25, 20, 13, 10, 199, 40, 21, 129, 76, 243, 20, 4, 13, 6, 195, 56, 244, 192, 72, 11, 67, 65, 54, 148, 48, 89, 12, 47,
+			0, 41, 0, 44, 12, 11, 195, 182, 26, 12, 5, 13, 195, 169, 14, 25, 20, 49, 110, 88, 55, 109, 65, 113, 67, 47, 23, 108, 72, 39,
+			47, 12, 23, 49, 37, 0, 13, 82, 97, 100, 111, 116, 116, 32, 107, 105, 32, 14, 139, 10, 15, 7, 19, 26, 1, 2, 195, 161, 12, 25,
+			13, 12, 137, 22, 195, 161, 12, 20, 15, 26, 9, 11, 13, 0, 9, 198, 48, 81, 217, 20, 225, 75, 13, 0, 16, 141, 19, 195, 169, 18,
+			195, 188, 12, 195, 169, 11, 5, 14, 25, 13, 9, 198, 52, 81, 212, 20, 197, 0, 13, 8, 133, 12, 195, 161, 7, 25, 13, 0, 10, 199,
+			77, 163, 210, 84, 194, 143, 56, 13, 9, 198, 48, 81, 143, 29, 147, 137, 13, 11, 136, 11, 5, 4, 22, 197, 177, 5, 11, 13, 10, 199,
+			24, 19, 129, 80, 146, 213, 76, 13, 14, 4, 95, 19, 20, 11, 114, 47, 107, 116, 88, 114, 91, 0, 15, 7, 95, 35, 45, 18, 195, 179,
+			12, 114, 52, 115, 55, 0, 21, 0, 16, 3, 95, 194, 173, 55, 114, 79, 49, 110, 47, 118, 57, 109, 55, 0, 63, 14, 5, 7, 25, 195,
+			169, 18, 20, 5, 12, 13, 197, 177, 5, 14, 109, 79, 12, 113, 52, 47, 109, 55, 65, 117, 109, 50, 23, 65, 109, 81, 114, 55, 12, 108,
+			48, 112, 47, 39, 47, 12, 108, 0, 13, 81, 109, 101, 103, 195, 161, 108, 108, 97, 112, 195, 173, 116, 111, 116, 116, 97, 32, 33, 72, 48,
+			82, 5, 80, 85, 12, 20, 224, 55, 109, 107, 109, 47, 109, 47, 55, 109, 50, 23, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32,
+			12, 137, 7, 25, 195, 161, 18, 20, 195, 179, 11, 13, 7, 132, 20, 195, 182, 12, 13, 0, 8, 133, 1, 4, 195, 179, 20, 13, 11, 4,
+			95, 1, 3, 21, 113, 55, 109, 91, 0, 0, 22, 3, 95, 194, 171, 71, 109, 55, 91, 118, 71, 108, 55, 37, 72, 113, 88, 118, 57, 109,
+			55, 0, 44, 70, 52, 81, 5, 72, 33, 64, 65, 109, 72, 109, 52, 71, 109, 23, 47, 109, 52, 109, 55, 113, 91, 113, 71, 109, 50, 0,
+			13, 81, 116, 101, 114, 101, 108, 195, 169, 115, 195, 169, 98, 101, 110, 32, 9, 134, 11, 195, 179, 4, 15, 20, 13, 13, 138, 3, 5, 12,
+			12, 195, 161, 18, 195, 179, 12, 13, 6, 131, 195, 179, 19, 72, 0, 22, 4, 20, 195, 182, 11, 47, 110, 49, 23, 37, 81, 108, 88, 0,
+			13, 81, 105, 103, 97, 122, 32, 15, 140, 20, 1, 18, 20, 195, 179, 26, 11, 15, 4, 9, 11, 13, 11, 136, 8, 195, 179, 14, 1, 16,
+			9, 7, 13, 0, 40, 70, 40, 241, 207, 44, 32, 78, 57, 39, 81, 39, 49, 71, 108, 50, 23, 37, 55, 12, 109, 47, 113, 49, 109, 91,
+			0, 13, 81, 105, 108, 108, 101, 116, 195, 169, 107, 101, 115, 32, 15, 140, 8, 1, 12, 195, 161, 12, 195, 161, 18, 195, 179, 12, 13, 11,
+			136, 8, 195, 179, 14, 1, 16, 15, 20, 13, 7, 132, 10, 195, 179, 20, 13, 7, 132, 18, 195, 182, 12, 13, 0, 12, 137, 7, 25, 195,
+			161, 18, 20, 195, 179, 20, 13, 16, 141, 20, 1, 18, 20, 195, 161, 19, 195, 161, 18, 195, 179, 12, 13, 11, 136, 10, 5, 12, 195, 182,
+			12, 14, 9, 13, 0, 20, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 47, 0, 44, 13, 81, 116, 32, 22, 66, 52, 208, 65,
+			37, 55, 37, 65, 113, 47, 109, 52, 109, 91, 0, 44, 13, 81, 101, 115, 32, 27, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52,
+			67, 37, 52, 109, 0, 44, 13, 81, 110, 121, 105, 114, 101, 32, 23, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 67, 37, 0,
+			44, 13, 81, 110, 121, 105, 32, 15, 66, 52, 208, 65, 37, 55, 37, 65, 113, 47, 109, 52, 0, 13, 0, 16, 3, 95, 194, 164, 48, 113,
+			50, 88, 50, 109, 65, 57, 109, 55, 0, 0, 19, 144, 5, 12, 6, 15, 7, 1, 4, 195, 161, 19, 195, 161, 18, 195, 179, 12, 13, 10,
+			135, 22, 195, 161, 12, 14, 9, 1, 13, 30, 67, 40, 241, 201, 57, 39, 81, 37, 23, 89, 110, 84, 109, 81, 109, 47, 0, 13, 81, 115,
+			122, 195, 182, 118, 101, 103, 101, 116, 32, 34, 67, 40, 241, 201, 57, 39, 81, 37, 15, 55, 113, 48, 113, 91, 109, 49, 109, 47, 0, 13,
+			81, 108, 195, 169, 112, 195, 169, 115, 101, 107, 101, 116, 32, 14, 139, 14, 25, 195, 186, 10, 20, 195, 179, 26, 14, 9, 13, 0, 8, 197,
+			76, 82, 148, 20, 208, 13, 8, 197, 32, 83, 25, 20, 176, 13, 16, 141, 6, 15, 18, 18, 195, 161, 19, 11, 195, 179, 4, 15, 20, 13,
+			8, 197, 56, 82, 212, 20, 176, 13, 0, 9, 198, 48, 84, 218, 56, 82, 192, 72, 9, 198, 44, 84, 133, 76, 146, 192, 13, 9, 198, 4,
+			230, 65, 28, 242, 192, 13, 9, 198, 24, 82, 211, 104, 146, 192, 13, 10, 135, 22, 195, 169, 7, 26, 9, 11, 13, 9, 198, 72, 244, 211,
+			104, 18, 192, 13, 0, 11, 3, 95, 194, 160, 89, 115, 49, 110, 88, 0, 10, 199, 21, 49, 84, 20, 176, 133, 56, 13, 10, 135, 12, 195,
+			161, 20, 15, 20, 20, 13, 10, 4, 95, 18, 14, 7, 49, 110, 52, 0, 0, 16, 3, 95, 194, 161, 108, 55, 91, 115, 37, 50, 72, 109,
+			49, 89, 0, 7, 3, 95, 195, 169, 113, 0, 14, 139, 195, 182, 19, 19, 26, 5, 22, 5, 20, 14, 9, 13, 8, 133, 19, 26, 195, 182,
+			7, 13, 7, 132, 2, 195, 179, 12, 72, 0, 8, 197, 52, 83, 148, 20, 208, 13, 12, 137, 7, 25, 195, 161, 18, 20, 15, 20, 20, 13,
+			8, 133, 11, 195, 188, 26, 4, 13, 0, 13, 138, 9, 18, 195, 161, 14, 25, 20, 195, 179, 12, 13, 11, 136, 9, 4, 197, 145, 19, 5,
+			2, 2, 13, 12, 137, 11, 195, 169, 18, 195, 169, 19, 18, 5, 13, 46, 10, 20, 1, 18, 11, 195, 173, 20, 15, 20, 20, 47, 108, 52,
+			49, 112, 47, 39, 47, 12, 15, 10, 37, 72, 118, 57, 114, 52, 114, 91, 0, 13, 81, 105, 100, 197, 145, 106, 195, 161, 114, 195, 161, 115,
+			32, 9, 198, 53, 85, 1, 80, 226, 64, 13, 10, 135, 1, 4, 195, 179, 4, 9, 11, 13, 9, 198, 52, 240, 137, 48, 242, 192, 13, 9,
+			134, 1, 18, 18, 195, 179, 12, 13, 9, 134, 1, 18, 18, 195, 179, 12, 13, 0, 12, 137, 4, 18, 195, 161, 7, 195, 161, 2, 2, 13,
+			50, 11, 20, 195, 161, 13, 15, 7, 1, 20, 15, 20, 20, 47, 114, 65, 39, 81, 108, 47, 39, 47, 12, 23, 49, 37, 108, 72, 114, 91,
+			23, 55, 109, 89, 0, 13, 82, 107, 105, 97, 100, 195, 161, 115, 32, 108, 101, 115, 122, 32, 14, 139, 20, 195, 161, 13, 15, 7, 1, 20,
+			15, 20, 20, 13, 10, 199, 77, 161, 82, 88, 86, 142, 36, 13, 0, 11, 200, 24, 241, 207, 73, 99, 211, 60, 208, 13, 16, 141, 9, 14,
+			20, 195, 169, 26, 13, 195, 169, 14, 25, 5, 11, 13, 12, 137, 20, 195, 161, 18, 15, 12, 195, 179, 11, 13, 7, 196, 72, 17, 193, 16,
+			13, 7, 196, 20, 225, 197, 52, 13, 0, 12, 201, 8, 150, 143, 57, 145, 193, 80, 226, 64, 13, 11, 136, 8, 195, 179, 14, 1, 16, 10,
+			1, 13, 12, 137, 11, 15, 18, 195, 161, 18, 195, 179, 12, 13, 11, 136, 5, 12, 195, 169, 7, 7, 195, 169, 13, 13, 138, 5, 18, 197,
+			145, 12, 20, 5, 20, 9, 11, 13, 12, 201, 60, 64, 70, 36, 118, 69, 48, 226, 64, 13, 9, 134, 5, 12, 14, 195, 182, 11, 13, 0,
+			15, 140, 12, 5, 7, 4, 18, 195, 161, 7, 195, 161, 2, 2, 13, 9, 134, 14, 195, 169, 14, 9, 20, 13, 13, 138, 20, 195, 169, 13,
+			195, 161, 18, 195, 179, 12, 13, 12, 137, 195, 161, 12, 12, 195, 173, 20, 10, 1, 13, 0, 9, 198, 77, 161, 82, 20, 195, 69, 13, 33,
+			11, 11, 1, 20, 15, 14, 195, 161, 18, 195, 179, 12, 49, 108, 47, 39, 50, 114, 52, 115, 55, 23, 84, 108, 50, 0, 13, 81, 118, 97,
+			110, 32, 14, 139, 11, 1, 20, 15, 14, 195, 161, 18, 195, 179, 12, 13, 17, 142, 4, 21, 16, 12, 9, 11, 195, 161, 3, 9, 195, 179,
+			18, 1, 13, 14, 139, 6, 15, 18, 18, 195, 161, 19, 2, 195, 179, 12, 13, 13, 138, 22, 9, 12, 195, 161, 7, 195, 161, 2, 1, 13,
+			0, 17, 142, 12, 5, 7, 6, 5, 12, 20, 197, 177, 14, 197, 145, 2, 2, 13, 26, 68, 44, 144, 211, 36, 49, 37, 76, 37, 10, 6,
+			15, 108, 107, 39, 88, 0, 13, 81, 97, 104, 104, 111, 122, 32, 19, 144, 8, 195, 161, 26, 19, 26, 1, 2, 195, 161, 12, 25, 20, 195,
+			179, 12, 13, 14, 139, 8, 1, 19, 26, 14, 195, 161, 12, 14, 15, 13, 13, 0, 20, 69, 84, 37, 78, 81, 80, 117, 98, 117, 110, 116,
+			117, 110, 0, 44, 29, 81, 110, 32, 56, 14, 6, 5, 12, 8, 1, 19, 26, 14, 195, 161, 12, 195, 179, 11, 83, 109, 55, 107, 108, 89,
+			50, 114, 55, 115, 49, 23, 55, 109, 47, 110, 55, 47, 113, 91, 109, 37, 47, 0, 13, 81, 108, 101, 116, 195, 182, 108, 116, 195, 169, 115,
+			101, 105, 116, 32, 12, 137, 195, 169, 12, 13, 195, 169, 14, 25, 20, 13, 45, 14, 6, 5, 12, 8, 1, 19, 26, 14, 195, 161, 12, 195,
+			179, 11, 83, 109, 55, 107, 108, 89, 50, 114, 55, 115, 49, 23, 57, 110, 50, 12, 109, 49, 0, 13, 81, 106, 195, 182, 110, 110, 101, 107,
+			32, 16, 141, 8, 15, 14, 12, 1, 16, 10, 195, 161, 18, 195, 179, 12, 13, 16, 141, 22, 195, 161, 12, 12, 1, 12, 1, 20, 2, 195,
+			179, 12, 13, 16, 141, 5, 12, 12, 195, 161, 20, 15, 7, 1, 20, 15, 20, 20, 13, 0, 6, 195, 21, 161, 75, 13, 17, 142, 16, 18,
+			15, 2, 12, 195, 169, 13, 195, 161, 18, 195, 179, 12, 13, 0, 10, 199, 32, 19, 12, 61, 69, 1, 52, 13, 13, 138, 11, 195, 182, 20,
+			5, 12, 5, 26, 14, 9, 13, 6, 195, 88, 19, 12, 13, 0, 14, 139, 11, 195, 182, 26, 12, 5, 11, 5, 4, 197, 145, 13, 43, 11,
+			14, 5, 13, 26, 5, 20, 11, 195, 182, 26, 9, 50, 109, 65, 88, 109, 47, 49, 110, 88, 37, 23, 89, 108, 71, 84, 114, 67, 0, 13,
+			81, 115, 122, 97, 98, 118, 195, 161, 110, 121, 32, 44, 11, 14, 5, 13, 26, 5, 20, 11, 195, 182, 26, 9, 50, 109, 65, 88, 109, 47,
+			49, 110, 88, 37, 23, 89, 108, 71, 84, 114, 67, 0, 13, 81, 115, 122, 97, 98, 98, 118, 195, 161, 110, 121, 32, 6, 195, 4, 32, 129,
+			13, 11, 136, 11, 195, 169, 19, 26, 195, 173, 20, 13, 9, 134, 195, 169, 18, 10, 5, 14, 13, 14, 4, 95, 50, 15, 24, 65, 114, 91,
+			39, 72, 37, 49, 0, 0, 19, 144, 14, 25, 21, 7, 195, 161, 12, 12, 15, 13, 195, 161, 14, 25, 2, 1, 13, 0, 37, 67, 13, 80,
+			195, 119, 40, 119, 12, 23, 49, 111, 55, 83, 110, 55, 72, 52, 118, 55, 0, 13, 81, 107, 195, 188, 108, 102, 195, 182, 108, 100, 114, 197,
+			145, 108, 32, 6, 195, 13, 80, 195, 13, 9, 198, 32, 21, 143, 57, 64, 64, 13, 11, 136, 22, 5, 18, 26, 9, 195, 179, 14, 13, 25,
+			7, 195, 182, 12, 10, 195, 169, 11, 110, 57, 57, 113, 49, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 10, 135, 13, 195, 169, 18,
+			14, 5, 11, 13, 9, 134, 195, 169, 10, 10, 5, 12, 13, 10, 135, 195, 161, 12, 12, 14, 1, 11, 13, 14, 6, 95, 35, 45, 22, 5,
+			12, 113, 84, 109, 55, 0, 21, 0, 12, 137, 11, 195, 169, 16, 5, 11, 2, 5, 14, 22, 15, 7, 95, 35, 45, 20, 195, 179, 12, 114,
+			47, 115, 55, 0, 21, 0, 19, 144, 2, 197, 177, 14, 3, 19, 5, 12, 5, 11, 13, 195, 169, 14, 25, 20, 13, 7, 196, 80, 244, 148,
+			4, 13, 7, 196, 80, 84, 150, 20, 13, 0, 10, 135, 195, 188, 7, 25, 2, 5, 14, 13, 13, 138, 19, 26, 195, 161, 13, 15, 12, 14,
+			1, 11, 13, 10, 135, 19, 26, 195, 161, 13, 15, 14, 13, 8, 197, 72, 144, 211, 4, 160, 13, 0, 9, 198, 32, 144, 130, 4, 229, 0,
+			13, 34, 7, 12, 195, 161, 20, 195, 179, 11, 55, 114, 47, 115, 49, 23, 89, 114, 65, 114, 52, 108, 0, 13, 81, 115, 122, 195, 161, 109,
+			195, 161, 114, 97, 32, 9, 198, 4, 35, 1, 45, 32, 64, 13, 11, 136, 20, 21, 4, 195, 161, 19, 195, 186, 13, 10, 135, 20, 5, 20,
+			20, 195, 169, 11, 13, 14, 139, 8, 1, 19, 26, 14, 195, 161, 12, 14, 1, 11, 13, 0, 9, 134, 7, 195, 161, 18, 4, 1, 13, 15,
+			140, 22, 195, 161, 19, 195, 161, 18, 15, 12, 14, 1, 11, 13, 10, 199, 53, 83, 139, 4, 129, 76, 100, 13, 10, 135, 19, 26, 195, 161,
+			13, 15, 12, 13, 12, 137, 22, 195, 182, 12, 7, 25, 2, 5, 14, 13, 19, 134, 12, 195, 161, 20, 20, 1, 13, 81, 112, 101, 116, 197,
+			145, 102, 105, 116, 32, 6, 195, 21, 33, 68, 13, 14, 139, 18, 1, 14, 7, 10, 1, 9, 20, 195, 179, 12, 13, 9, 134, 195, 169, 18,
+			26, 5, 13, 13, 9, 134, 12, 195, 161, 20, 20, 1, 13, 6, 131, 195, 188, 12, 13, 6, 195, 80, 83, 20, 13, 0, 11, 200, 9, 81,
+			1, 64, 84, 212, 20, 224, 13, 0, 12, 137, 16, 15, 19, 26, 20, 18, 195, 179, 12, 13, 12, 137, 13, 195, 186, 12, 20, 18, 195, 179,
+			12, 13, 16, 141, 11, 15, 12, 12, 195, 169, 7, 195, 161, 9, 22, 1, 12, 13, 13, 138, 18, 5, 14, 4, 197, 145, 18, 14, 5, 11,
+			13, 8, 197, 24, 241, 207, 81, 64, 13, 13, 138, 195, 173, 20, 195, 169, 12, 20, 195, 169, 11, 13, 0, 15, 140, 6, 5, 12, 2, 15,
+			14, 20, 195, 161, 19, 195, 186, 13, 17, 142, 195, 169, 18, 20, 5, 19, 195, 173, 20, 197, 145, 22, 5, 12, 13, 7, 132, 10, 195, 182,
+			14, 13, 7, 132, 8, 195, 182, 26, 13, 13, 4, 95, 1, 3, 50, 49, 109, 47, 12, 118, 91, 0, 0, 18, 143, 9, 12, 12, 5, 20,
+			195, 169, 11, 5, 19, 195, 169, 22, 5, 12, 13, 10, 135, 12, 195, 161, 20, 195, 179, 20, 13, 18, 143, 19, 5, 7, 195, 173, 20, 19,
+			195, 169, 7, 195, 169, 22, 5, 12, 13, 13, 138, 5, 12, 13, 5, 19, 195, 169, 12, 20, 5, 13, 6, 195, 88, 145, 4, 13, 0, 19,
+			144, 11, 195, 182, 26, 195, 182, 19, 19, 195, 169, 7, 195, 169, 22, 5, 12, 13, 14, 139, 11, 18, 9, 20, 9, 26, 195, 161, 12, 20,
+			1, 13, 0, 11, 136, 19, 26, 195, 161, 12, 12, 14, 9, 13, 9, 198, 4, 64, 75, 61, 162, 75, 13, 17, 142, 11, 15, 14, 3, 5,
+			14, 20, 18, 195, 161, 12, 14, 1, 11, 13, 17, 142, 8, 1, 10, 12, 195, 169, 11, 20, 1, 12, 1, 14, 15, 11, 13, 0, 9, 198,
+			77, 160, 66, 61, 69, 0, 13, 23, 148, 8, 15, 26, 26, 195, 161, 10, 195, 161, 18, 21, 12, 195, 161, 19, 15, 11, 2, 1, 14, 13,
+			9, 134, 195, 169, 18, 26, 5, 4, 13, 5, 194, 72, 80, 13, 9, 66, 60, 176, 39, 49, 0, 42, 42, 11, 67, 52, 148, 211, 65, 37,
+			89, 12, 0, 25, 0, 10, 135, 19, 26, 195, 161, 13, 15, 20, 13, 0, 16, 141, 195, 169, 18, 20, 195, 169, 11, 5, 12, 10, 195, 188,
+			11, 13, 6, 195, 76, 242, 1, 13, 15, 140, 22, 9, 26, 19, 7, 195, 161, 12, 1, 20, 15, 20, 13, 0, 8, 197, 81, 81, 20, 84,
+			176, 13, 20, 145, 11, 195, 169, 19, 26, 195, 188, 12, 195, 169, 11, 5, 11, 14, 195, 169, 12, 13, 10, 135, 13, 21, 19, 26, 195, 161,
+			10, 13, 15, 140, 2, 9, 26, 15, 14, 25, 195, 173, 20, 1, 14, 9, 13, 8, 197, 52, 20, 139, 60, 208, 13, 0, 9, 198, 80, 82,
+			5, 80, 82, 192, 13, 0, 6, 195, 60, 181, 0, 20, 0, 15, 140, 19, 26, 1, 2, 195, 161, 12, 25, 26, 195, 179, 20, 13, 0, 40,
+			69, 56, 85, 133, 104, 144, 50, 109, 84, 109, 88, 37, 23, 47, 40, 55, 108, 57, 72, 39, 50, 39, 91, 108, 0, 13, 81, 116, 117, 108,
+			97, 106, 100, 111, 110, 111, 115, 97, 32, 30, 67, 21, 161, 82, 109, 88, 109, 52, 23, 83, 39, 52, 37, 50, 47, 39, 47, 0, 13, 81,
+			102, 111, 114, 105, 110, 116, 111, 116, 32, 26, 67, 21, 161, 82, 109, 88, 109, 52, 23, 83, 39, 52, 37, 50, 47, 0, 13, 81, 102, 111,
+			114, 105, 110, 116, 32, 8, 197, 40, 81, 217, 20, 144, 13, 16, 141, 6, 195, 188, 7, 7, 5, 20, 12, 5, 14, 195, 188, 12, 13, 9,
+			198, 80, 82, 5, 80, 225, 75, 13, 9, 198, 48, 82, 5, 80, 225, 75, 13, 0, 15, 3, 95, 203, 135, 55, 109, 83, 109, 55, 113, 67,
+			112, 55, 0, 9, 198, 29, 144, 75, 61, 34, 64, 13, 0, 14, 139, 195, 169, 18, 4, 5, 11, 5, 9, 22, 5, 12, 13, 14, 139, 5,
+			12, 197, 145, 6, 15, 18, 4, 21, 12, 20, 13, 15, 140, 11, 195, 182, 22, 5, 20, 11, 5, 26, 14, 5, 11, 13, 18, 4, 95, 56,
+			48, 15, 67, 39, 55, 119, 84, 108, 50, 108, 72, 37, 49, 0, 0, 11, 200, 40, 83, 12, 20, 209, 90, 80, 80, 13, 33, 68, 52, 17,
+			193, 16, 65, 108, 81, 108, 72, 23, 109, 79, 109, 50, 109, 91, 109, 50, 0, 13, 81, 101, 103, 121, 101, 110, 101, 115, 101, 110, 32, 14,
+			139, 11, 9, 2, 195, 169, 11, 195, 188, 12, 22, 5, 13, 15, 140, 11, 9, 1, 4, 195, 161, 19, 195, 161, 22, 1, 12, 13, 11, 200,
+			77, 163, 198, 81, 97, 82, 20, 144, 13, 7, 196, 52, 17, 193, 16, 13, 0, 12, 3, 95, 194, 186, 91, 39, 34, 89, 114, 65, 0, 9,
+			134, 20, 15, 10, 195, 161, 19, 13, 0, 23, 3, 95, 194, 187, 71, 109, 55, 91, 118, 57, 39, 71, 71, 37, 72, 113, 88, 118, 57, 109,
+			55, 0, 17, 142, 20, 1, 18, 20, 15, 26, 195, 169, 11, 195, 161, 22, 1, 12, 13, 37, 9, 6, 15, 18, 4, 195, 173, 20, 22, 1,
+			83, 39, 52, 72, 112, 47, 84, 108, 23, 108, 6, 23, 89, 115, 47, 0, 13, 82, 97, 32, 115, 122, 195, 179, 116, 32, 13, 138, 22, 195,
+			161, 12, 20, 15, 26, 15, 20, 20, 13, 12, 137, 10, 195, 161, 20, 19, 26, 1, 14, 1, 13, 15, 140, 6, 15, 18, 13, 195, 161, 10,
+			195, 161, 2, 1, 14, 13, 0, 0, 16, 3, 95, 194, 185, 109, 55, 89, 118, 107, 108, 47, 84, 114, 67, 0, 17, 142, 20, 195, 161, 18,
+			19, 1, 4, 1, 12, 15, 13, 2, 1, 14, 13, 19, 144, 13, 5, 3, 8, 1, 14, 9, 26, 13, 21, 19, 195, 161, 22, 1, 12, 13,
+			0, 53, 10, 19, 26, 5, 13, 195, 169, 12, 25, 5, 19, 89, 109, 65, 113, 57, 109, 91, 23, 71, 109, 114, 55, 12, 37, 47, 114, 91,
+			39, 49, 108, 47, 0, 13, 81, 98, 101, 195, 161, 108, 108, 195, 173, 116, 195, 161, 115, 111, 107, 97, 116, 32, 15, 140, 22, 195, 169, 12,
+			5, 13, 195, 169, 14, 25, 5, 13, 13, 11, 136, 10, 5, 12, 12, 5, 7, 197, 177, 13, 9, 198, 53, 85, 1, 80, 224, 75, 13, 0,
+			10, 67, 56, 21, 15, 50, 114, 47, 115, 0, 21, 146, 22, 195, 169, 7, 18, 5, 8, 1, 10, 20, 195, 161, 19, 195, 161, 22, 1, 12,
+			13, 14, 139, 13, 5, 7, 14, 195, 169, 26, 26, 195, 188, 11, 13, 10, 135, 18, 195, 179, 12, 21, 14, 11, 13, 0, 7, 131, 195, 186,
+			20, 20, 13, 0, 6, 195, 32, 83, 25, 13, 23, 148, 8, 15, 26, 26, 195, 161, 10, 195, 161, 18, 21, 12, 195, 161, 19, 195, 161, 22,
+			1, 12, 13, 6, 195, 32, 83, 25, 13, 6, 195, 32, 83, 25, 13, 0, 45, 8, 195, 169, 18, 9, 14, 20, 197, 145, 113, 52, 37, 50,
+			47, 118, 23, 49, 113, 52, 72, 113, 91, 109, 49, 71, 109, 50, 0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 101, 107, 98, 101, 110,
+			32, 35, 69, 32, 83, 25, 20, 224, 107, 109, 57, 109, 50, 23, 49, 37, 107, 108, 79, 12, 114, 49, 0, 13, 81, 107, 105, 104, 97, 103,
+			121, 106, 195, 161, 107, 32, 45, 8, 195, 169, 18, 9, 14, 20, 197, 145, 113, 52, 37, 50, 47, 118, 23, 83, 52, 37, 91, 12, 112, 47,
+			113, 91, 109, 49, 0, 13, 81, 102, 114, 105, 115, 115, 195, 173, 116, 195, 169, 115, 101, 107, 32, 15, 140, 8, 9, 22, 1, 20, 1, 12,
+			15, 19, 19, 195, 161, 13, 11, 136, 195, 169, 18, 9, 14, 20, 197, 145, 13, 8, 197, 32, 83, 25, 20, 224, 13, 10, 135, 13, 5, 14,
+			20, 195, 169, 14, 13, 6, 131, 195, 186, 18, 13, 0, 12, 137, 11, 5, 22, 5, 18, 195, 169, 11, 5, 13, 14, 139, 14, 195, 182, 22,
+			5, 11, 5, 4, 195, 169, 19, 13, 14, 139, 14, 5, 21, 18, 15, 12, 195, 179, 7, 21, 19, 13, 10, 135, 22, 195, 161, 18, 14, 1,
+			11, 13, 10, 135, 10, 195, 161, 18, 14, 1, 11, 13, 10, 135, 14, 195, 169, 26, 14, 5, 11, 13, 8, 133, 18, 195, 179, 12, 1, 13,
+			14, 6, 95, 35, 45, 22, 1, 12, 114, 84, 108, 55, 0, 21, 0, 9, 198, 24, 83, 12, 20, 195, 137, 13, 17, 142, 10, 5, 12, 5,
+			14, 20, 197, 145, 19, 195, 169, 7, 197, 177, 13, 0, 13, 138, 197, 145, 19, 26, 9, 14, 20, 195, 169, 14, 13, 30, 10, 8, 1, 19,
+			26, 14, 195, 161, 12, 19, 26, 107, 108, 89, 50, 114, 55, 89, 15, 83, 109, 55, 0, 13, 81, 102, 101, 108, 32, 13, 138, 8, 1, 19,
+			26, 14, 195, 161, 12, 19, 26, 13, 14, 139, 195, 169, 16, 195, 173, 20, 195, 169, 19, 197, 177, 13, 7, 132, 195, 169, 10, 20, 13, 15,
+			8, 95, 35, 45, 195, 161, 22, 1, 12, 114, 84, 108, 55, 0, 15, 8, 95, 35, 45, 195, 169, 22, 5, 12, 113, 84, 109, 55, 0, 0,
+			11, 2, 195, 151, 47, 108, 55, 48, 108, 91, 0, 9, 198, 48, 85, 20, 21, 65, 75, 13, 10, 135, 20, 1, 14, 4, 195, 173, 10, 13,
+			8, 197, 24, 145, 217, 20, 192, 13, 12, 201, 57, 146, 76, 5, 66, 207, 105, 64, 64, 13, 14, 139, 195, 161, 12, 12, 1, 13, 15, 11,
+			2, 1, 14, 13, 0, 16, 141, 6, 5, 10, 12, 5, 19, 26, 20, 195, 169, 19, 197, 177, 13, 13, 138, 8, 15, 18, 4, 195, 161, 9,
+			22, 1, 12, 13, 47, 10, 9, 4, 197, 145, 14, 11, 195, 169, 14, 20, 37, 72, 118, 50, 49, 113, 50, 47, 23, 108, 6, 15, 83, 109,
+			55, 107, 118, 88, 109, 47, 0, 13, 82, 97, 32, 102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 11, 136, 14, 5, 22, 195, 169, 2, 5,
+			14, 13, 14, 139, 20, 195, 182, 18, 5, 11, 5, 4, 14, 5, 11, 13, 10, 135, 22, 195, 161, 12, 14, 1, 11, 13, 0, 16, 141, 5,
+			12, 13, 195, 169, 12, 5, 20, 5, 11, 2, 5, 14, 13, 12, 137, 12, 1, 16, 10, 195, 161, 2, 1, 14, 13, 12, 137, 19, 26, 15,
+			2, 195, 161, 2, 1, 14, 13, 12, 137, 20, 195, 169, 13, 195, 161, 2, 1, 14, 13, 14, 139, 9, 18, 195, 161, 14, 25, 195, 161, 22,
+			1, 12, 13, 0, 6, 195, 88, 149, 1, 13, 15, 140, 19, 26, 195, 182, 22, 5, 7, 195, 169, 22, 5, 12, 13, 13, 138, 21, 4, 22,
+			1, 18, 195, 161, 2, 1, 14, 13, 12, 201, 40, 83, 5, 57, 66, 197, 105, 65, 75, 13, 7, 132, 4, 195, 186, 12, 13, 0, 14, 139,
+			5, 7, 195, 169, 19, 26, 195, 169, 2, 5, 14, 13, 16, 141, 11, 9, 22, 195, 169, 20, 5, 12, 195, 169, 22, 5, 12, 13, 0, 26,
+			70, 56, 85, 133, 105, 65, 64, 50, 109, 84, 109, 89, 47, 109, 23, 108, 89, 47, 0, 13, 81, 97, 122, 116, 32, 17, 142, 11, 195, 173,
+			14, 195, 161, 12, 1, 20, 195, 161, 22, 1, 12, 13, 26, 70, 56, 85, 133, 105, 65, 64, 50, 109, 84, 109, 89, 47, 109, 23, 65, 109,
+			81, 0, 13, 81, 109, 101, 103, 32, 19, 144, 20, 195, 161, 18, 7, 25, 1, 12, 195, 161, 19, 15, 11, 2, 1, 14, 13, 10, 135, 20,
+			1, 14, 21, 12, 195, 179, 13, 9, 198, 56, 85, 133, 105, 65, 64, 13, 9, 198, 8, 194, 75, 45, 33, 64, 13, 10, 135, 13, 195, 169,
+			12, 20, 195, 179, 13, 9, 198, 80, 20, 148, 61, 69, 0, 13, 8, 133, 6, 195, 169, 14, 25, 13, 0, 18, 143, 8, 1, 19, 26, 14,
+			195, 161, 12, 1, 20, 195, 161, 22, 1, 12, 13, 15, 140, 2, 9, 26, 15, 14, 25, 195, 173, 20, 195, 169, 11, 13, 18, 143, 2, 5,
+			13, 21, 20, 1, 20, 195, 161, 19, 195, 161, 22, 1, 12, 13, 11, 136, 195, 169, 18, 20, 10, 195, 188, 11, 13, 6, 195, 12, 243, 20,
+			13, 0, 12, 201, 57, 146, 76, 5, 66, 207, 105, 64, 75, 13, 19, 144, 5, 12, 15, 19, 26, 12, 1, 20, 195, 161, 19, 195, 161, 22,
+			1, 12, 13, 19, 144, 1, 12, 11, 1, 12, 13, 1, 26, 195, 161, 19, 195, 161, 22, 1, 12, 13, 32, 67, 32, 85, 5, 107, 109, 47,
+			109, 23, 107, 108, 89, 50, 114, 55, 39, 65, 0, 13, 81, 104, 97, 115, 122, 110, 195, 161, 108, 111, 109, 32, 11, 136, 6, 18, 9, 19,
+			19, 195, 188, 12, 13, 17, 142, 5, 12, 12, 195, 161, 20, 195, 161, 19, 195, 161, 2, 1, 14, 13, 15, 140, 12, 195, 169, 16, 195, 169,
+			19, 11, 195, 169, 14, 20, 13, 0, 11, 2, 194, 167, 89, 6, 108, 49, 108, 89, 0, 9, 2, 195, 159, 21, 100, 101, 0, 10, 32, 69,
+			81, 81, 15, 81, 64, 47, 40, 72, 39, 47, 12, 23, 48, 37, 107, 109, 50, 12, 37, 0, 13, 81, 112, 105, 104, 101, 110, 110, 105, 32,
+			18, 143, 20, 5, 19, 26, 20, 5, 12, 195, 169, 19, 195, 169, 2, 5, 14, 13, 20, 145, 11, 15, 18, 12, 195, 161, 20, 15, 26, 195,
+			161, 19, 195, 161, 22, 1, 12, 13, 9, 198, 20, 195, 69, 57, 66, 75, 13, 9, 198, 80, 82, 201, 57, 66, 75, 13, 8, 197, 81, 81,
+			15, 81, 64, 13, 0, 22, 66, 76, 80, 91, 109, 23, 71, 112, 52, 39, 65, 0, 13, 81, 98, 195, 173, 114, 111, 109, 32, 21, 66, 76,
+			80, 91, 109, 23, 49, 108, 48, 50, 37, 0, 13, 81, 107, 97, 112, 110, 105, 32, 29, 66, 76, 80, 91, 109, 23, 113, 52, 47, 109, 47,
+			12, 113, 49, 0, 13, 81, 195, 169, 114, 116, 101, 116, 116, 195, 169, 107, 32, 24, 66, 76, 80, 91, 109, 10, 6, 15, 47, 52, 113, 83,
+			108, 0, 13, 81, 116, 114, 195, 169, 102, 97, 32, 27, 66, 76, 80, 91, 109, 23, 76, 37, 50, 114, 55, 39, 49, 0, 13, 81, 99, 115,
+			105, 110, 195, 161, 108, 111, 107, 32, 23, 66, 76, 80, 91, 109, 23, 84, 109, 47, 12, 109, 65, 0, 13, 81, 118, 101, 116, 116, 101, 109,
+			32, 12, 137, 11, 195, 182, 26, 195, 182, 20, 20, 9, 13, 5, 194, 56, 240, 72, 5, 194, 76, 80, 13, 0, 0, 9, 198, 20, 209, 76,
+			21, 65, 78, 13, 11, 200, 40, 21, 129, 76, 192, 84, 61, 64, 13, 11, 200, 32, 20, 207, 56, 192, 84, 61, 64, 13, 0, 8, 197, 88,
+			243, 20, 4, 176, 13, 0, 12, 137, 10, 195, 161, 20, 19, 26, 1, 14, 9, 13, 13, 138, 8, 9, 18, 4, 5, 20, 14, 195, 169, 4,
+			13, 10, 135, 11, 195, 169, 18, 14, 5, 11, 13, 0, 10, 135, 9, 4, 197, 145, 22, 5, 12, 13, 10, 199, 72, 81, 201, 77, 165, 5,
+			72, 13, 9, 134, 12, 195, 169, 20, 18, 5, 13, 0, 14, 2, 194, 174, 71, 109, 57, 109, 79, 88, 109, 47, 12, 0, 5, 130, 195, 166,
+			43, 35, 68, 32, 246, 142, 4, 107, 39, 88, 50, 108, 23, 65, 109, 81, 39, 55, 72, 114, 91, 47, 0, 13, 81, 109, 101, 103, 111, 108,
+			100, 195, 161, 115, 116, 32, 12, 137, 195, 169, 12, 22, 5, 26, 14, 5, 11, 13, 28, 4, 195, 169, 12, 20, 113, 55, 47, 6, 23, 91,
+			39, 49, 114, 37, 81, 0, 13, 81, 115, 111, 107, 195, 161, 105, 103, 32, 12, 137, 11, 5, 18, 195, 188, 12, 14, 5, 11, 13, 9, 134,
+			6, 195, 169, 12, 19, 26, 13, 7, 132, 195, 169, 12, 20, 13, 0, 5, 130, 195, 167, 43, 29, 7, 19, 26, 195, 179, 12, 19, 26, 89,
+			115, 55, 89, 23, 107, 39, 88, 88, 114, 0, 13, 81, 104, 111, 122, 122, 195, 161, 32, 8, 197, 32, 17, 217, 88, 16, 13, 9, 198, 32,
+			148, 218, 37, 65, 75, 13, 10, 135, 19, 26, 195, 179, 12, 19, 26, 13, 17, 3, 21, 46, 14, 116, 79, 50, 109, 84, 109, 88, 109, 47,
+			12, 0, 25, 17, 3, 195, 186, 14, 116, 79, 50, 109, 84, 109, 88, 109, 47, 12, 0, 25, 0, 15, 2, 194, 172, 55, 39, 81, 37, 49,
+			108, 37, 50, 109, 65, 0, 5, 130, 195, 164, 43, 9, 134, 195, 169, 20, 5, 12, 20, 13, 43, 8, 195, 186, 10, 15, 14, 14, 1, 14,
+			116, 57, 39, 50, 12, 108, 50, 23, 47, 109, 55, 109, 48, 112, 47, 109, 47, 12, 0, 13, 81, 116, 101, 108, 101, 112, 195, 173, 116, 101,
+			116, 116, 32, 9, 198, 80, 84, 150, 21, 162, 64, 13, 9, 198, 32, 19, 12, 41, 82, 192, 13, 10, 135, 2, 195, 186, 10, 14, 1, 11,
+			13, 10, 135, 22, 5, 20, 20, 195, 169, 11, 13, 15, 140, 8, 1, 20, 195, 179, 1, 14, 25, 1, 7, 195, 186, 13, 10, 135, 22, 9,
+			20, 20, 195, 169, 11, 13, 9, 198, 80, 21, 129, 77, 162, 64, 20, 0, 9, 135, 5, 7, 25, 195, 188, 20, 20, 24, 67, 48, 85, 20,
+			55, 109, 47, 12, 23, 84, 39, 55, 50, 108, 0, 13, 81, 118, 111, 108, 110, 97, 32, 22, 67, 48, 85, 20, 55, 109, 47, 12, 23, 81,
+			39, 50, 72, 0, 13, 81, 103, 111, 110, 100, 32, 6, 195, 48, 85, 20, 13, 0, 7, 196, 72, 149, 11, 4, 13, 14, 139, 195, 173, 20,
+			195, 169, 12, 20, 5, 20, 22, 5, 13, 24, 68, 56, 82, 197, 16, 50, 109, 49, 109, 72, 15, 49, 109, 55, 12, 0, 13, 81, 107, 101,
+			108, 108, 32, 36, 72, 77, 163, 198, 81, 97, 82, 20, 176, 89, 39, 83, 47, 84, 109, 52, 109, 49, 15, 108, 52, 114, 67, 108, 0, 13,
+			81, 97, 114, 195, 161, 110, 121, 97, 32, 10, 135, 19, 26, 195, 179, 12, 22, 1, 13, 7, 196, 56, 82, 197, 16, 13, 0, 28, 3, 195,
+			186, 10, 116, 57, 10, 6, 15, 108, 71, 55, 108, 49, 39, 47, 0, 13, 81, 97, 98, 108, 97, 107, 111, 116, 32, 31, 3, 195, 186, 10,
+			116, 57, 23, 65, 109, 81, 39, 55, 72, 114, 91, 47, 0, 13, 81, 109, 101, 103, 111, 108, 100, 195, 161, 115, 116, 32, 31, 69, 8, 150,
+			148, 61, 48, 71, 37, 89, 47, 39, 91, 23, 89, 109, 52, 37, 50, 47, 0, 13, 81, 115, 122, 101, 114, 105, 110, 116, 32, 21, 3, 195,
+			186, 10, 116, 57, 15, 108, 57, 47, 115, 0, 13, 81, 97, 106, 116, 195, 179, 32, 8, 197, 8, 150, 148, 61, 48, 13, 8, 133, 195, 173,
+			22, 5, 20, 13, 6, 131, 195, 186, 10, 13, 0, 15, 140, 16, 15, 12, 9, 20, 9, 11, 195, 161, 2, 1, 14, 13, 14, 139, 8, 9,
+			195, 161, 14, 25, 15, 26, 14, 1, 11, 13, 13, 138, 22, 5, 18, 26, 9, 195, 179, 22, 1, 12, 13, 12, 138, 22, 5, 18, 26, 9,
+			195, 179, 22, 1, 12, 16, 141, 9, 14, 20, 15, 14, 195, 161, 3, 9, 195, 179, 10, 1, 13, 9, 198, 80, 84, 150, 21, 161, 84, 13,
+			11, 136, 9, 14, 1, 11, 20, 195, 173, 22, 13, 15, 140, 12, 9, 19, 20, 195, 161, 10, 195, 161, 2, 1, 14, 13, 15, 140, 8, 5,
+			12, 25, 19, 26, 195, 173, 14, 195, 169, 14, 13, 16, 141, 19, 26, 5, 13, 12, 195, 169, 12, 20, 5, 20, 22, 5, 13, 11, 136, 20,
+			5, 19, 20, 22, 195, 169, 18, 13, 0, 18, 2, 194, 169, 119, 39, 48, 37, 52, 37, 81, 107, 47, 20, 57, 109, 55, 0, 10, 199, 13,
+			51, 205, 4, 113, 193, 48, 13, 0, 13, 2, 194, 182, 71, 109, 49, 109, 88, 72, 113, 91, 0, 11, 136, 16, 21, 19, 26, 20, 195, 173,
+			20, 13, 7, 196, 52, 17, 193, 52, 13, 7, 132, 4, 195, 188, 8, 13, 0, 13, 138, 18, 5, 13, 195, 169, 12, 10, 195, 188, 11, 13,
+			44, 8, 11, 15, 18, 195, 161, 2, 2, 9, 49, 39, 52, 114, 71, 12, 37, 23, 109, 55, 49, 113, 48, 88, 109, 55, 113, 91, 0, 13,
+			81, 101, 108, 107, 195, 169, 112, 122, 101, 108, 195, 169, 115, 32, 12, 137, 13, 195, 169, 18, 5, 20, 195, 169, 20, 13, 0, 17, 142, 195,
+			169, 20, 5, 12, 8, 15, 18, 4, 195, 179, 22, 1, 12, 13, 14, 139, 8, 1, 14, 7, 10, 5, 12, 26, 195, 169, 19, 13, 10, 135,
+			12, 195, 169, 16, 195, 169, 19, 13, 12, 137, 13, 195, 169, 18, 20, 195, 169, 11, 5, 13, 9, 198, 56, 85, 133, 104, 85, 20, 13, 10,
+			135, 11, 5, 12, 20, 195, 169, 19, 13, 5, 194, 60, 224, 13, 13, 66, 64, 192, 48, 113, 55, 72, 114, 40, 55, 0, 25, 0, 7, 2,
+			194, 181, 65, 117, 0, 6, 195, 4, 176, 68, 13, 9, 134, 6, 195, 169, 18, 6, 9, 13, 11, 136, 11, 195, 169, 18, 4, 195, 169, 19,
+			13, 0, 16, 141, 5, 12, 197, 145, 18, 5, 10, 5, 12, 26, 195, 169, 19, 13, 7, 196, 8, 195, 203, 44, 13, 14, 139, 13, 9, 14,
+			197, 145, 19, 195, 169, 7, 197, 177, 13, 9, 134, 6, 1, 12, 195, 161, 14, 13, 8, 133, 19, 26, 197, 177, 11, 13, 9, 196, 33, 49,
+			16, 4, 17, 42, 42, 0, 15, 140, 13, 5, 14, 14, 25, 9, 19, 195, 169, 7, 197, 177, 13, 30, 5, 11, 195, 161, 18, 20, 49, 114,
+			52, 47, 10, 6, 15, 39, 49, 39, 88, 50, 108, 0, 13, 81, 111, 107, 111, 122, 110, 97, 32, 16, 141, 20, 195, 182, 18, 20, 195, 169,
+			14, 5, 20, 195, 169, 20, 13, 8, 133, 5, 12, 197, 145, 12, 13, 10, 135, 12, 9, 19, 20, 195, 161, 14, 13, 9, 134, 1, 4, 10,
+			195, 161, 11, 13, 8, 133, 5, 12, 197, 145, 12, 13, 8, 133, 11, 195, 161, 18, 20, 13, 8, 133, 6, 195, 186, 10, 20, 13, 8, 133,
+			5, 12, 197, 145, 12, 13, 0, 8, 2, 194, 176, 83, 39, 49, 0, 11, 2, 194, 176, 83, 39, 49, 57, 109, 55, 0, 0, 14, 2, 194,
+			177, 48, 55, 40, 89, 65, 37, 50, 40, 89, 0, 5, 130, 195, 169, 14, 38, 70, 24, 244, 137, 57, 64, 129, 83, 39, 52, 37, 50, 47,
+			71, 108, 23, 49, 109, 52, 111, 55, 50, 109, 49, 0, 13, 81, 107, 101, 114, 195, 188, 108, 110, 101, 107, 32, 12, 137, 16, 1, 12, 5,
+			20, 20, 195, 161, 14, 13, 9, 134, 12, 195, 161, 20, 15, 13, 13, 11, 136, 13, 15, 14, 4, 10, 195, 161, 11, 13, 5, 130, 195, 169,
+			72, 0, 15, 2, 194, 190, 107, 114, 52, 39, 65, 50, 109, 79, 109, 72, 0, 12, 137, 22, 9, 20, 1, 20, 10, 195, 161, 11, 13, 9,
+			134, 3, 195, 169, 12, 195, 186, 13, 7, 132, 195, 182, 14, 20, 13, 0, 10, 2, 195, 183, 39, 89, 47, 114, 91, 0, 13, 138, 9, 7,
+			1, 26, 15, 12, 10, 195, 161, 11, 13, 13, 138, 11, 9, 8, 1, 7, 25, 10, 195, 161, 11, 13, 12, 137, 19, 26, 195, 179, 12, 20,
+			195, 161, 12, 13, 13, 138, 20, 195, 161, 13, 1, 4, 10, 195, 161, 11, 13, 12, 137, 16, 21, 12, 195, 179, 22, 5, 18, 20, 13, 8,
+			133, 2, 195, 169, 18, 20, 13, 8, 197, 32, 149, 20, 20, 64, 13, 13, 138, 12, 195, 161, 20, 19, 26, 15, 20, 15, 11, 13, 0, 10,
+			2, 194, 188, 50, 109, 79, 109, 72, 0, 8, 133, 19, 26, 195, 161, 13, 13, 9, 134, 5, 2, 2, 197, 145, 12, 13, 0, 8, 2, 194,
+			189, 83, 113, 55, 0, 6, 195, 81, 81, 4, 13, 54, 71, 81, 83, 1, 40, 67, 206, 80, 47, 40, 55, 108, 57, 72, 39, 50, 47, 23,
+			84, 113, 72, 118, 23, 47, 110, 52, 84, 113, 67, 109, 49, 0, 13, 82, 118, 195, 169, 100, 197, 145, 32, 116, 195, 182, 114, 118, 195, 169,
+			110, 121, 101, 107, 32, 15, 140, 22, 9, 26, 19, 7, 195, 161, 12, 10, 195, 161, 11, 13, 15, 140, 1, 12, 11, 1, 12, 13, 1, 26,
+			26, 195, 161, 11, 13, 11, 136, 18, 195, 186, 7, 20, 195, 161, 11, 13, 11, 136, 13, 15, 14, 4, 20, 195, 161, 11, 13, 0, 46, 5,
+			195, 169, 22, 9, 7, 113, 84, 37, 81, 23, 55, 109, 89, 23, 47, 114, 65, 39, 81, 108, 47, 39, 47, 12, 0, 13, 82, 108, 101, 115,
+			122, 32, 116, 195, 161, 109, 111, 103, 97, 116, 111, 116, 116, 32, 13, 138, 12, 195, 169, 16, 8, 5, 19, 19, 5, 14, 13, 11, 136, 20,
+			5, 18, 22, 2, 197, 145, 12, 13, 8, 133, 19, 18, 195, 161, 3, 13, 14, 4, 95, 3, 5, 4, 119, 113, 72, 37, 55, 55, 109, 0,
+			19, 67, 88, 146, 73, 67, 39, 55, 119, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 0, 37, 10, 8, 1, 10, 20, 15, 20, 20, 195,
+			161, 11, 107, 108, 57, 47, 39, 47, 12, 114, 49, 23, 84, 113, 81, 52, 109, 0, 13, 81, 118, 195, 169, 103, 114, 101, 32, 13, 138, 7,
+			15, 14, 4, 15, 12, 20, 195, 161, 11, 13, 47, 69, 20, 208, 133, 73, 64, 109, 65, 71, 109, 52, 47, 23, 49, 37, 65, 109, 50, 109,
+			49, 112, 47, 109, 47, 12, 109, 49, 0, 13, 81, 107, 105, 109, 101, 110, 101, 107, 195, 173, 116, 101, 116, 116, 101, 107, 32, 37, 6, 22,
+			9, 12, 195, 161, 7, 84, 37, 55, 114, 81, 15, 72, 37, 76, 118, 91, 113, 81, 109, 0, 13, 81, 100, 105, 99, 115, 197, 145, 115, 195,
+			169, 103, 101, 32, 13, 138, 20, 195, 161, 13, 1, 4, 20, 195, 161, 11, 13, 8, 197, 80, 149, 11, 61, 64, 13, 13, 138, 20, 1, 18,
+			20, 15, 20, 20, 195, 161, 11, 13, 0, 9, 198, 32, 149, 129, 80, 19, 20, 13, 0, 5, 130, 195, 177, 43, 22, 148, 1, 11, 1, 4,
+			195, 161, 12, 25, 13, 5, 14, 20, 5, 19, 195, 173, 20, 195, 169, 19, 13, 138, 7, 15, 13, 2, 15, 12, 14, 195, 161, 13, 13, 14,
+			139, 18, 195, 169, 19, 26, 195, 169, 2, 197, 145, 12, 13, 42, 8, 1, 12, 1, 16, 21, 12, 195, 179, 108, 55, 108, 48, 40, 55, 115,
+			23, 47, 110, 52, 47, 113, 50, 109, 47, 109, 0, 13, 81, 116, 195, 182, 114, 116, 195, 169, 110, 101, 116, 101, 32, 13, 138, 20, 9, 19,
+			26, 20, 5, 12, 197, 145, 9, 13, 14, 203, 80, 20, 1, 77, 165, 1, 48, 21, 20, 4, 192, 13, 9, 198, 80, 84, 150, 21, 165, 133,
+			13, 8, 133, 19, 20, 195, 161, 2, 13, 15, 4, 95, 12, 9, 7, 55, 37, 81, 108, 47, 116, 52, 108, 0, 0, 34, 8, 10, 5, 12,
+			26, 195, 169, 19, 20, 57, 109, 55, 88, 113, 91, 47, 10, 6, 15, 108, 72, 50, 108, 49, 0, 13, 81, 97, 100, 110, 97, 107, 32, 9,
+			134, 26, 195, 161, 16, 15, 18, 13, 10, 135, 195, 161, 12, 12, 14, 9, 1, 13, 0, 11, 136, 4, 195, 182, 14, 20, 5, 14, 9, 13,
+			9, 134, 19, 1, 10, 20, 195, 179, 13, 8, 133, 19, 26, 195, 161, 4, 13, 6, 195, 88, 19, 0, 13, 0, 40, 15, 195, 161, 12, 12,
+			1, 16, 195, 173, 20, 15, 20, 20, 195, 161, 11, 114, 55, 12, 108, 48, 112, 47, 39, 47, 12, 114, 49, 23, 65, 109, 81, 0, 13, 81,
+			109, 101, 103, 32, 9, 198, 64, 20, 129, 77, 165, 0, 13, 9, 198, 44, 83, 20, 21, 69, 0, 13, 9, 134, 20, 195, 169, 7, 5, 4,
+			13, 5, 194, 80, 80, 13, 0, 21, 5, 195, 169, 22, 5, 14, 113, 84, 109, 50, 23, 114, 47, 0, 13, 81, 195, 161, 116, 32, 13, 138,
+			5, 12, 4, 195, 182, 14, 20, 5, 14, 9, 13, 15, 140, 11, 9, 22, 5, 20, 14, 9, 22, 1, 12, 195, 179, 13, 18, 67, 88, 146,
+			64, 107, 113, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 10, 135, 11, 195, 182, 20, 14, 9, 5, 13, 11, 200, 52, 147, 137,
+			77, 165, 5, 73, 64, 13, 0, 8, 197, 88, 243, 20, 4, 208, 72, 8, 197, 64, 84, 131, 72, 80, 22, 28, 67, 4, 176, 82, 108, 49,
+			108, 52, 23, 84, 108, 55, 108, 65, 37, 47, 0, 13, 81, 118, 97, 108, 97, 109, 105, 116, 32, 20, 145, 2, 5, 18, 5, 14, 4, 5,
+			26, 11, 5, 4, 195, 169, 19, 19, 5, 12, 13, 28, 69, 32, 18, 148, 40, 16, 107, 108, 57, 80, 108, 23, 84, 113, 81, 52, 109, 0,
+			13, 81, 118, 195, 169, 103, 114, 101, 32, 36, 13, 18, 5, 14, 4, 5, 12, 11, 5, 26, 195, 169, 19, 20, 51, 109, 50, 72, 109, 55,
+			49, 109, 88, 113, 91, 47, 23, 37, 91, 0, 13, 81, 105, 115, 32, 34, 67, 4, 176, 82, 108, 49, 108, 52, 10, 6, 15, 108, 6, 15,
+			79, 114, 52, 47, 115, 0, 13, 82, 97, 32, 103, 121, 195, 161, 114, 116, 195, 179, 32, 43, 69, 88, 243, 148, 4, 176, 84, 39, 50, 47,
+			108, 49, 23, 83, 109, 55, 109, 55, 118, 91, 113, 81, 51, 109, 0, 13, 81, 102, 101, 108, 101, 108, 197, 145, 115, 115, 195, 169, 103, 114,
+			101, 32, 29, 67, 4, 176, 82, 108, 6, 49, 108, 52, 23, 65, 108, 52, 108, 72, 50, 37, 0, 13, 81, 109, 97, 114, 97, 100, 110, 105,
+			32, 8, 197, 88, 243, 20, 4, 208, 13, 8, 197, 32, 20, 131, 60, 176, 13, 12, 201, 88, 148, 197, 48, 177, 68, 21, 69, 0, 13, 10,
+			135, 3, 5, 12, 12, 195, 161, 14, 13, 7, 132, 195, 169, 22, 1, 13, 8, 197, 40, 83, 26, 20, 208, 13, 6, 195, 4, 176, 82, 13,
+			8, 133, 12, 197, 145, 20, 20, 13, 0, 5, 130, 195, 184, 43, 9, 198, 40, 241, 213, 56, 176, 84, 13, 16, 141, 22, 195, 169, 7, 18,
+			5, 8, 1, 10, 20, 1, 14, 9, 13, 16, 141, 11, 195, 182, 26, 12, 5, 11, 5, 4, 20, 5, 20, 9, 13, 21, 146, 2, 5, 195,
+			161, 12, 12, 195, 173, 20, 195, 161, 19, 15, 11, 14, 195, 161, 12, 13, 11, 136, 15, 12, 3, 19, 195, 179, 2, 2, 13, 9, 198, 52,
+			17, 213, 56, 176, 84, 13, 0, 30, 71, 52, 147, 137, 77, 165, 5, 72, 65, 37, 50, 37, 89, 47, 109, 52, 15, 84, 39, 55, 47, 0,
+			13, 81, 118, 111, 108, 116, 32, 9, 134, 19, 26, 195, 179, 2, 1, 13, 14, 139, 20, 1, 18, 20, 8, 1, 20, 14, 195, 161, 4, 13,
+			10, 199, 65, 35, 199, 72, 19, 66, 4, 13, 10, 199, 52, 147, 137, 77, 165, 5, 72, 13, 0, 41, 68, 52, 17, 193, 76, 65, 108, 81,
+			108, 91, 23, 107, 118, 65, 113, 52, 91, 113, 49, 55, 109, 47, 0, 13, 81, 104, 197, 145, 109, 195, 169, 114, 115, 195, 169, 107, 108, 101,
+			116, 32, 12, 137, 20, 5, 8, 5, 20, 14, 195, 169, 11, 13, 7, 196, 52, 17, 193, 76, 13, 7, 196, 24, 241, 214, 4, 13, 7, 196,
+			32, 246, 142, 36, 13, 7, 196, 32, 246, 142, 36, 13, 0, 13, 138, 11, 9, 19, 6, 9, 195, 186, 14, 1, 11, 13, 32, 69, 81, 81,
+			20, 4, 176, 47, 40, 47, 12, 108, 49, 23, 65, 39, 50, 72, 108, 50, 37, 0, 13, 81, 109, 111, 110, 100, 97, 110, 105, 32, 7, 132,
+			195, 169, 22, 5, 13, 8, 133, 19, 195, 188, 12, 20, 13, 9, 134, 18, 195, 179, 12, 21, 11, 13, 8, 133, 6, 195, 169, 12, 20, 13,
+			0, 12, 137, 16, 5, 18, 5, 13, 195, 169, 18, 5, 13, 15, 140, 13, 195, 169, 12, 25, 19, 195, 169, 7, 2, 5, 14, 13, 14, 139,
+			22, 195, 161, 12, 12, 1, 12, 14, 9, 21, 11, 13, 8, 133, 2, 195, 169, 18, 5, 13, 11, 136, 19, 26, 195, 179, 12, 10, 15, 14,
+			13, 14, 139, 6, 18, 9, 19, 19, 195, 188, 12, 14, 5, 11, 13, 11, 136, 11, 15, 18, 195, 161, 2, 1, 14, 13, 9, 134, 19, 26,
+			195, 179, 12, 20, 13, 18, 4, 195, 186, 46, 14, 116, 79, 50, 109, 84, 109, 88, 109, 47, 12, 0, 25, 0, 6, 195, 81, 81, 0, 13,
+			13, 138, 16, 195, 169, 12, 4, 195, 161, 26, 26, 1, 13, 14, 139, 22, 195, 169, 20, 5, 12, 195, 169, 22, 5, 12, 13, 50, 9, 11,
+			195, 182, 18, 195, 169, 2, 5, 14, 49, 110, 52, 113, 71, 109, 50, 23, 48, 52, 115, 71, 114, 55, 50, 114, 49, 23, 49, 37, 0, 13,
+			82, 112, 114, 195, 179, 98, 195, 161, 108, 110, 195, 161, 107, 32, 107, 105, 32, 34, 67, 80, 85, 20, 47, 109, 47, 12, 23, 108, 88, 10,
+			6, 15, 111, 79, 71, 109, 50, 0, 13, 82, 97, 122, 32, 195, 188, 103, 121, 98, 101, 110, 32, 45, 9, 11, 195, 182, 18, 195, 169, 2,
+			5, 14, 49, 110, 52, 113, 71, 109, 50, 23, 37, 91, 23, 84, 37, 47, 108, 47, 39, 47, 12, 0, 13, 82, 105, 115, 32, 118, 105, 116,
+			97, 116, 111, 116, 116, 32, 12, 137, 11, 195, 182, 18, 195, 186, 20, 15, 14, 13, 34, 71, 48, 81, 129, 29, 147, 212, 80, 55, 109, 83,
+			108, 79, 39, 47, 12, 23, 65, 37, 50, 72, 109, 50, 0, 13, 81, 109, 105, 110, 100, 101, 110, 32, 9, 198, 4, 64, 75, 61, 163, 137,
+			13, 14, 139, 195, 182, 14, 13, 1, 7, 195, 161, 22, 1, 12, 13, 9, 134, 2, 195, 173, 18, 10, 1, 13, 6, 195, 81, 81, 0, 13,
+			6, 195, 80, 85, 20, 13, 11, 67, 72, 19, 64, 52, 108, 65, 0, 42, 42, 0, 12, 137, 22, 195, 161, 4, 15, 12, 14, 1, 11, 13,
+			44, 9, 7, 25, 197, 145, 26, 20, 195, 169, 11, 79, 118, 88, 47, 113, 49, 23, 83, 109, 55, 72, 39, 55, 81, 39, 88, 50, 37, 0,
+			13, 81, 102, 101, 108, 100, 111, 108, 103, 111, 122, 110, 105, 32, 10, 135, 22, 5, 26, 195, 169, 18, 5, 13, 7, 196, 24, 241, 193, 80,
+			13, 11, 200, 80, 243, 1, 44, 241, 20, 4, 176, 13, 7, 196, 24, 18, 193, 16, 13, 0, 11, 136, 19, 26, 5, 13, 195, 169, 18, 5,
+			13, 0, 54, 9, 5, 12, 12, 5, 14, 195, 169, 18, 5, 109, 55, 12, 109, 50, 113, 52, 109, 23, 37, 91, 23, 71, 37, 89, 47, 39,
+			91, 112, 47, 108, 50, 114, 0, 13, 82, 105, 115, 32, 98, 105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 195, 161, 32, 12, 137, 9, 11,
+			15, 14, 10, 195, 161, 18, 1, 13, 12, 137, 13, 195, 179, 4, 10, 195, 161, 18, 1, 13, 0, 10, 199, 13, 48, 80, 60, 194, 1, 80,
+			13, 15, 140, 195, 188, 26, 5, 13, 5, 12, 20, 5, 20, 9, 11, 13, 10, 199, 20, 195, 153, 21, 35, 137, 20, 13, 10, 199, 80, 84,
+			218, 80, 82, 197, 80, 13, 6, 195, 88, 149, 20, 13, 11, 136, 13, 195, 161, 18, 3, 9, 21, 19, 20, 0, 28, 5, 195, 169, 22, 5,
+			19, 113, 84, 109, 91, 23, 109, 65, 71, 109, 52, 47, 0, 13, 81, 101, 109, 98, 101, 114, 116, 32, 26, 5, 195, 169, 22, 5, 19, 113,
+			84, 109, 91, 23, 109, 65, 71, 109, 52, 0, 13, 81, 101, 109, 98, 101, 114, 32, 29, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23,
+			49, 37, 91, 83, 37, 116, 0, 13, 81, 107, 105, 115, 102, 105, 195, 186, 32, 23, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 83,
+			37, 116, 0, 13, 81, 102, 105, 195, 186, 32, 30, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 49, 37, 91, 55, 114, 67, 0, 13,
+			81, 107, 105, 115, 108, 195, 161, 110, 121, 32, 24, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 55, 114, 67, 0, 13, 81, 108, 195,
+			161, 110, 121, 32, 21, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 50, 118, 0, 13, 81, 110, 197, 145, 32, 27, 5, 195, 169, 22,
+			5, 19, 113, 84, 109, 91, 23, 83, 113, 52, 83, 37, 0, 13, 81, 102, 195, 169, 114, 102, 105, 32, 31, 5, 195, 169, 22, 5, 19, 113,
+			84, 109, 91, 23, 49, 37, 91, 83, 37, 116, 47, 0, 13, 81, 107, 105, 115, 102, 105, 195, 186, 116, 32, 25, 5, 195, 169, 22, 5, 19,
+			113, 84, 109, 91, 23, 83, 37, 116, 47, 0, 13, 81, 102, 105, 195, 186, 116, 32, 32, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23,
+			49, 37, 91, 55, 114, 67, 47, 0, 13, 81, 107, 105, 115, 108, 195, 161, 110, 121, 116, 32, 26, 5, 195, 169, 22, 5, 19, 113, 84, 109,
+			91, 23, 55, 114, 67, 47, 0, 13, 81, 108, 195, 161, 110, 121, 116, 32, 25, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 50, 118,
+			52, 109, 0, 13, 81, 110, 197, 145, 114, 101, 32, 31, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 83, 113, 52, 83, 37, 52, 108,
+			0, 13, 81, 102, 195, 169, 114, 102, 105, 114, 97, 32, 31, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 49, 37, 91, 83, 37, 116,
+			47, 0, 13, 81, 107, 105, 115, 102, 105, 195, 186, 116, 32, 29, 5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 49, 37, 91, 83, 37,
+			116, 0, 13, 81, 107, 105, 115, 102, 105, 195, 186, 32, 17, 142, 11, 195, 182, 26, 16, 15, 14, 20, 10, 195, 161, 2, 1, 14, 13, 36,
+			5, 195, 169, 22, 5, 19, 113, 84, 109, 91, 23, 47, 114, 65, 39, 81, 108, 47, 114, 91, 0, 13, 81, 116, 195, 161, 109, 111, 103, 97,
+			116, 195, 161, 115, 32, 19, 144, 20, 5, 12, 5, 16, 195, 173, 20, 195, 169, 19, 195, 169, 22, 5, 12, 13, 32, 5, 195, 169, 22, 5,
+			19, 113, 84, 109, 91, 15, 49, 39, 52, 114, 71, 115, 55, 0, 13, 81, 107, 111, 114, 195, 161, 98, 195, 179, 108, 32, 31, 5, 195, 169,
+			22, 5, 19, 113, 84, 109, 91, 15, 79, 109, 52, 109, 49, 109, 47, 0, 13, 81, 103, 121, 101, 114, 101, 107, 101, 116, 32, 9, 198, 64,
+			243, 148, 40, 18, 78, 13, 8, 133, 9, 4, 197, 145, 19, 13, 8, 133, 195, 169, 22, 5, 19, 13, 7, 196, 56, 82, 197, 52, 13, 0,
+			12, 137, 8, 1, 4, 10, 195, 161, 18, 1, 20, 13, 37, 10, 6, 5, 12, 5, 20, 20, 195, 188, 14, 11, 83, 109, 55, 109, 47, 12,
+			111, 50, 49, 23, 108, 88, 23, 113, 81, 0, 13, 82, 97, 122, 32, 195, 169, 103, 32, 15, 140, 12, 5, 22, 5, 7, 197, 145, 10, 195,
+			169, 18, 5, 13, 0, 56, 11, 19, 26, 195, 188, 11, 19, 195, 169, 7, 5, 19, 89, 111, 49, 91, 113, 81, 109, 91, 23, 37, 50, 47,
+			113, 89, 49, 109, 72, 113, 91, 109, 49, 109, 47, 0, 13, 81, 105, 110, 116, 195, 169, 122, 107, 101, 100, 195, 169, 115, 101, 107, 101, 116,
+			32, 46, 9, 20, 195, 182, 18, 22, 195, 169, 14, 25, 47, 110, 52, 84, 113, 67, 10, 10, 47, 109, 52, 84, 109, 88, 109, 47, 113, 71,
+			109, 0, 13, 81, 116, 101, 114, 118, 101, 122, 101, 116, 195, 169, 98, 101, 32, 53, 9, 20, 195, 182, 18, 22, 195, 169, 14, 25, 47, 110,
+			52, 84, 113, 67, 23, 49, 39, 50, 119, 109, 48, 119, 37, 115, 57, 114, 52, 115, 55, 0, 13, 81, 107, 111, 110, 99, 101, 112, 99, 105,
+			195, 179, 106, 195, 161, 114, 195, 179, 108, 32, 12, 137, 11, 195, 169, 16, 26, 5, 12, 14, 9, 13, 14, 139, 12, 5, 8, 5, 20, 19,
+			195, 169, 7, 5, 19, 13, 12, 137, 20, 195, 182, 18, 22, 195, 169, 14, 25, 13, 9, 198, 77, 161, 82, 104, 85, 20, 13, 9, 134, 19,
+			195, 186, 12, 25, 20, 13, 0, 17, 142, 6, 9, 14, 1, 14, 19, 26, 195, 173, 18, 15, 26, 26, 1, 13, 10, 199, 52, 81, 198, 36,
+			118, 69, 48, 13, 27, 5, 21, 20, 195, 161, 14, 40, 47, 114, 50, 23, 50, 113, 88, 50, 37, 0, 13, 81, 110, 195, 169, 122, 110, 105,
+			32, 9, 134, 12, 195, 161, 20, 14, 9, 13, 9, 133, 21, 20, 195, 161, 14, 13, 22, 9, 134, 14, 25, 195, 161, 18, 9, 20, 0, 35,
+			67, 5, 36, 129, 108, 52, 52, 108, 10, 6, 15, 47, 110, 52, 109, 49, 109, 72, 50, 37, 0, 13, 81, 116, 195, 182, 114, 101, 107, 101,
+			100, 110, 105, 32, 30, 67, 5, 36, 129, 108, 52, 52, 108, 10, 6, 15, 49, 113, 52, 57, 111, 49, 0, 13, 81, 107, 195, 169, 114, 106,
+			195, 188, 107, 32, 36, 7, 19, 26, 9, 14, 20, 197, 177, 89, 37, 50, 47, 117, 23, 83, 109, 55, 107, 118, 88, 109, 47, 0, 13, 81,
+			102, 101, 108, 104, 197, 145, 122, 101, 116, 32, 30, 67, 5, 36, 129, 108, 52, 52, 108, 23, 57, 40, 47, 39, 47, 12, 108, 65, 0, 13,
+			81, 106, 117, 116, 111, 116, 116, 97, 109, 32, 37, 67, 5, 36, 129, 108, 52, 52, 108, 23, 84, 39, 50, 108, 47, 49, 39, 88, 115, 108,
+			50, 0, 13, 81, 118, 111, 110, 97, 116, 107, 111, 122, 195, 179, 97, 110, 32, 18, 67, 5, 36, 129, 108, 52, 52, 108, 23, 37, 91, 0,
+			13, 81, 105, 115, 32, 45, 67, 5, 36, 129, 108, 52, 52, 108, 23, 49, 109, 55, 12, 23, 39, 72, 108, 83, 37, 79, 109, 55, 50, 37,
+			0, 13, 82, 107, 101, 108, 108, 32, 111, 100, 97, 102, 105, 103, 121, 101, 108, 110, 105, 32, 7, 196, 80, 18, 193, 72, 13, 16, 141, 4,
+			195, 182, 14, 20, 195, 182, 20, 20, 195, 188, 14, 11, 13, 14, 139, 2, 5, 19, 26, 5, 18, 26, 195, 169, 19, 5, 13, 11, 136, 19,
+			5, 7, 195, 169, 12, 25, 20, 13, 6, 195, 21, 36, 133, 13, 6, 195, 5, 36, 129, 13, 0, 8, 197, 32, 20, 131, 60, 192, 13, 11,
+			136, 5, 12, 10, 195, 161, 18, 14, 9, 13, 9, 134, 195, 169, 18, 26, 9, 11, 13, 9, 134, 3, 195, 169, 7, 5, 11, 13, 8, 133,
+			10, 195, 161, 18, 20, 13, 0, 13, 138, 7, 25, 1, 14, 195, 186, 10, 195, 161, 20, 13, 46, 4, 195, 169, 18, 22, 113, 52, 84, 23,
+			108, 6, 15, 55, 37, 50, 40, 49, 89, 23, 65, 109, 55, 12, 109, 47, 12, 0, 13, 83, 97, 32, 108, 105, 110, 117, 120, 32, 109, 101,
+			108, 108, 101, 116, 116, 32, 26, 6, 1, 26, 195, 169, 18, 20, 108, 88, 113, 52, 47, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108,
+			116, 32, 14, 139, 20, 5, 19, 26, 20, 5, 12, 195, 188, 14, 11, 13, 7, 132, 195, 169, 18, 22, 13, 14, 139, 6, 5, 10, 12, 5,
+			19, 26, 20, 195, 169, 19, 13, 20, 145, 13, 5, 7, 2, 195, 188, 14, 20, 5, 20, 195, 169, 19, 195, 169, 18, 5, 13, 9, 134, 1,
+			26, 195, 169, 18, 20, 13, 0, 56, 11, 11, 195, 182, 12, 20, 19, 195, 169, 7, 5, 20, 49, 110, 55, 76, 113, 81, 109, 47, 23, 57,
+			109, 55, 109, 50, 47, 23, 89, 114, 65, 40, 49, 52, 108, 0, 13, 82, 106, 101, 108, 101, 110, 116, 32, 115, 122, 195, 161, 109, 117, 107,
+			114, 97, 32, 14, 139, 18, 195, 169, 19, 26, 12, 5, 20, 5, 9, 20, 13, 10, 199, 65, 35, 199, 72, 19, 79, 44, 13, 21, 146, 13,
+			5, 7, 19, 26, 195, 188, 14, 20, 5, 20, 195, 169, 19, 195, 169, 18, 5, 13, 0, 7, 196, 4, 176, 82, 80, 13, 15, 140, 22, 195,
+			161, 12, 20, 15, 26, 1, 20, 1, 9, 20, 13, 7, 196, 52, 245, 15, 72, 13, 7, 196, 32, 246, 148, 4, 13, 7, 132, 195, 169, 18,
+			20, 13, 7, 196, 56, 82, 201, 44, 13, 0, 10, 135, 9, 7, 1, 26, 195, 161, 14, 13, 13, 138, 7, 15, 14, 4, 15, 12, 10, 195,
+			161, 11, 13, 13, 138, 20, 1, 7, 12, 1, 12, 10, 195, 161, 11, 13, 10, 135, 14, 25, 1, 18, 195, 161, 14, 20, 0, 9, 134, 5,
+			26, 195, 169, 18, 20, 13, 13, 138, 3, 195, 173, 13, 195, 169, 20, 197, 145, 12, 13, 13, 138, 6, 15, 18, 9, 14, 20, 195, 169, 18,
+			20, 13, 43, 10, 6, 15, 18, 9, 14, 20, 195, 169, 18, 20, 83, 39, 52, 37, 50, 47, 113, 52, 47, 23, 109, 55, 84, 37, 107, 109,
+			47, 118, 0, 13, 81, 101, 108, 118, 105, 104, 101, 116, 197, 145, 32, 10, 135, 19, 26, 197, 177, 18, 9, 11, 13, 30, 6, 5, 26, 195,
+			169, 18, 20, 109, 88, 113, 52, 47, 15, 84, 108, 50, 15, 108, 88, 0, 13, 82, 118, 97, 110, 32, 97, 122, 32, 17, 142, 195, 188, 7,
+			25, 14, 195, 182, 11, 19, 195, 169, 7, 5, 20, 13, 0, 45, 15, 20, 5, 22, 195, 169, 11, 5, 14, 25, 19, 195, 169, 7, 5, 20,
+			47, 109, 84, 113, 49, 109, 67, 91, 113, 81, 109, 47, 23, 84, 113, 81, 109, 88, 0, 13, 81, 118, 195, 169, 103, 101, 122, 32, 9, 134,
+			2, 195, 161, 18, 11, 9, 13, 0, 39, 5, 22, 1, 12, 195, 179, 84, 108, 55, 115, 23, 47, 52, 111, 49, 12, 110, 88, 113, 91, 47,
+			0, 13, 81, 116, 114, 195, 188, 107, 107, 195, 182, 122, 195, 169, 115, 116, 32, 11, 136, 8, 1, 19, 26, 14, 195, 161, 12, 13, 8, 133,
+			22, 1, 12, 195, 179, 13, 6, 195, 21, 53, 5, 22, 0, 17, 142, 19, 26, 1, 2, 195, 161, 12, 25, 15, 26, 26, 195, 161, 11, 13,
+			13, 138, 1, 12, 1, 16, 15, 26, 20, 195, 161, 11, 13, 17, 142, 19, 26, 195, 182, 22, 5, 20, 20, 19, 195, 169, 7, 5, 11, 13,
+			13, 138, 11, 195, 182, 20, 8, 5, 20, 197, 145, 11, 13, 8, 133, 13, 195, 161, 19, 20, 13, 17, 9, 95, 35, 45, 195, 161, 14, 195,
+			161, 12, 114, 50, 114, 55, 0, 21, 0, 13, 138, 5, 7, 25, 13, 195, 161, 19, 19, 1, 12, 13, 0, 14, 139, 18, 195, 169, 19, 26,
+			195, 169, 18, 197, 145, 12, 13, 0, 10, 135, 12, 195, 169, 16, 14, 9, 5, 13, 10, 135, 1, 18, 195, 161, 14, 25, 1, 13, 16, 67,
+			44, 98, 201, 49, 114, 109, 83, 49, 114, 37, 0, 17, 42, 42, 0, 42, 6, 15, 16, 3, 9, 195, 179, 39, 48, 119, 37, 115, 23, 71,
+			109, 49, 108, 48, 76, 39, 55, 114, 91, 108, 0, 13, 81, 98, 101, 107, 97, 112, 99, 115, 111, 108, 195, 161, 115, 97, 32, 24, 6, 15,
+			16, 3, 9, 195, 179, 39, 48, 119, 37, 115, 15, 50, 109, 65, 0, 13, 81, 110, 101, 109, 32, 0, 36, 10, 5, 12, 14, 195, 169, 26,
+			195, 169, 19, 20, 109, 55, 50, 113, 88, 113, 91, 47, 23, 49, 113, 52, 109, 49, 0, 13, 81, 107, 195, 169, 114, 101, 107, 32, 10, 135,
+			14, 5, 11, 195, 188, 14, 11, 13, 11, 5, 95, 49, 77, 49, 5, 109, 88, 52, 0, 0, 14, 139, 8, 195, 161, 12, 195, 179, 26, 1,
+			20, 15, 20, 13, 0, 36, 68, 80, 85, 20, 20, 47, 109, 47, 12, 109, 23, 84, 37, 55, 114, 81, 39, 91, 12, 114, 0, 13, 81, 118,
+			105, 108, 195, 161, 103, 111, 115, 115, 195, 161, 32, 29, 68, 4, 192, 84, 80, 108, 55, 108, 47, 12, 23, 49, 113, 89, 111, 55, 0, 13,
+			81, 107, 195, 169, 115, 122, 195, 188, 108, 32, 34, 68, 4, 192, 84, 80, 108, 55, 108, 47, 12, 15, 72, 39, 55, 81, 39, 89, 47, 108,
+			49, 0, 13, 81, 100, 111, 108, 103, 111, 122, 116, 97, 107, 32, 10, 135, 11, 195, 169, 18, 14, 9, 5, 13, 19, 144, 8, 1, 19, 26,
+			14, 195, 161, 12, 1, 20, 195, 161, 195, 169, 18, 20, 13, 7, 196, 88, 85, 20, 20, 13, 7, 196, 80, 85, 20, 20, 13, 7, 196, 4,
+			192, 84, 80, 13, 0, 11, 136, 15, 4, 1, 195, 173, 18, 14, 9, 13, 10, 135, 8, 195, 161, 20, 195, 161, 14, 13, 13, 138, 16, 1,
+			18, 20, 195, 173, 3, 9, 195, 179, 13, 0, 21, 146, 13, 5, 7, 9, 14, 4, 195, 173, 20, 195, 161, 19, 195, 161, 195, 169, 18, 20,
+			13, 12, 137, 11, 195, 182, 22, 5, 20, 14, 9, 5, 13, 13, 138, 20, 1, 12, 195, 161, 12, 14, 195, 161, 4, 13, 9, 198, 24, 81,
+			5, 104, 85, 0, 13, 13, 138, 5, 12, 20, 195, 169, 18, 195, 169, 19, 20, 13, 11, 136, 12, 195, 161, 20, 20, 195, 161, 14, 13, 7,
+			132, 20, 197, 177, 26, 13, 10, 135, 11, 1, 16, 10, 195, 161, 11, 13, 0, 43, 6, 9, 4, 197, 145, 18, 5, 37, 72, 118, 52, 109,
+			23, 89, 114, 65, 112, 47, 107, 108, 47, 40, 50, 49, 0, 13, 81, 115, 122, 195, 161, 109, 195, 173, 116, 104, 97, 116, 117, 110, 107, 32,
+			42, 6, 9, 4, 197, 145, 18, 5, 37, 72, 118, 52, 109, 23, 84, 108, 50, 23, 49, 37, 55, 114, 47, 114, 91, 0, 13, 82, 118, 97,
+			110, 32, 107, 105, 108, 195, 161, 116, 195, 161, 115, 32, 9, 198, 25, 85, 20, 5, 67, 137, 13, 9, 198, 25, 85, 20, 5, 66, 129, 13,
+			0, 10, 135, 11, 9, 22, 195, 169, 22, 5, 13, 44, 6, 195, 179, 18, 195, 161, 14, 115, 52, 114, 50, 10, 6, 15, 71, 109, 55, 111,
+			55, 10, 6, 15, 65, 108, 52, 108, 72, 0, 13, 82, 98, 101, 108, 195, 188, 108, 32, 109, 97, 114, 97, 100, 32, 11, 200, 40, 83, 5,
+			57, 65, 84, 80, 80, 13, 7, 132, 195, 182, 12, 20, 13, 8, 133, 13, 195, 161, 18, 3, 20, 15, 5, 95, 49, 77, 49, 15, 109, 88,
+			52, 109, 72, 37, 49, 0, 0, 8, 197, 21, 54, 142, 20, 176, 13, 32, 6, 195, 169, 12, 197, 145, 11, 113, 55, 118, 49, 23, 107, 109,
+			57, 88, 109, 47, 109, 0, 13, 81, 104, 101, 108, 121, 122, 101, 116, 101, 32, 10, 135, 12, 195, 161, 2, 195, 161, 14, 13, 24, 69, 81,
+			81, 20, 4, 208, 47, 40, 47, 12, 108, 65, 23, 65, 109, 81, 0, 13, 81, 109, 101, 103, 32, 8, 197, 72, 80, 211, 20, 112, 13, 8,
+			197, 32, 17, 217, 80, 16, 13, 11, 136, 22, 9, 12, 195, 161, 7, 2, 1, 13, 17, 9, 95, 35, 45, 195, 169, 20, 197, 145, 12, 113,
+			47, 118, 55, 0, 21, 0, 9, 198, 88, 17, 217, 84, 226, 192, 13, 9, 198, 64, 144, 67, 60, 176, 84, 13, 9, 198, 88, 17, 217, 84,
+			226, 192, 13, 12, 137, 19, 26, 195, 161, 13, 15, 13, 18, 1, 13, 17, 142, 195, 188, 12, 4, 195, 182, 7, 195, 169, 12, 195, 169, 19,
+			20, 13, 14, 139, 195, 161, 12, 12, 195, 173, 20, 10, 195, 161, 11, 13, 0, 7, 2, 95, 1, 108, 12, 0, 9, 134, 22, 9, 20, 195,
+			161, 9, 13, 10, 199, 52, 81, 207, 48, 64, 78, 36, 13, 19, 144, 8, 195, 161, 20, 20, 195, 169, 18, 20, 195, 161, 18, 15, 12, 195,
+			179, 13, 9, 134, 2, 195, 173, 18, 14, 1, 13, 11, 136, 12, 195, 161, 20, 20, 195, 161, 11, 13, 11, 136, 18, 195, 179, 12, 1, 20,
+			15, 11, 13, 9, 134, 12, 195, 161, 20, 10, 1, 13, 0, 9, 134, 19, 15, 6, 197, 145, 18, 13, 7, 196, 76, 242, 193, 80, 13, 16,
+			141, 13, 1, 7, 25, 1, 18, 195, 161, 26, 26, 195, 161, 11, 13, 11, 200, 20, 208, 133, 72, 82, 206, 20, 176, 13, 8, 133, 5, 18,
+			197, 145, 19, 13, 0, 32, 9, 5, 13, 12, 195, 173, 20, 5, 20, 20, 109, 65, 55, 112, 47, 109, 47, 12, 23, 108, 52, 52, 108, 0,
+			13, 81, 97, 114, 114, 97, 32, 13, 138, 5, 12, 13, 15, 14, 4, 20, 195, 161, 11, 13, 37, 9, 5, 13, 12, 195, 173, 20, 5, 20,
+			20, 109, 65, 55, 112, 47, 109, 47, 12, 23, 119, 37, 49, 71, 109, 50, 0, 13, 81, 99, 105, 107, 107, 98, 101, 110, 32, 41, 9, 5,
+			13, 12, 195, 173, 20, 5, 20, 20, 109, 65, 55, 112, 47, 109, 47, 12, 23, 89, 109, 52, 84, 109, 88, 109, 47, 0, 13, 81, 115, 122,
+			101, 114, 118, 101, 122, 101, 116, 32, 11, 136, 12, 1, 11, 195, 161, 19, 2, 1, 13, 9, 134, 195, 179, 18, 195, 161, 19, 13, 0, 14,
+			139, 3, 19, 9, 14, 195, 161, 12, 20, 195, 161, 11, 13, 9, 198, 77, 163, 203, 80, 19, 64, 13, 17, 142, 6, 5, 12, 5, 19, 195,
+			169, 7, 195, 169, 20, 197, 145, 12, 13, 9, 134, 22, 9, 20, 195, 161, 20, 13, 14, 139, 10, 1, 22, 1, 19, 15, 12, 20, 195, 161,
+			11, 13, 0, 6, 2, 95, 5, 109, 0, 10, 199, 20, 208, 133, 72, 82, 197, 80, 13, 17, 142, 13, 5, 7, 13, 5, 14, 20, 195, 169,
+			19, 195, 169, 18, 5, 13, 28, 71, 8, 150, 143, 56, 230, 65, 48, 71, 37, 88, 39, 67, 67, 108, 55, 10, 6, 15, 108, 88, 0, 13,
+			81, 97, 122, 32, 10, 199, 16, 243, 7, 60, 178, 193, 48, 13, 10, 199, 20, 208, 133, 72, 82, 197, 80, 13, 0, 33, 9, 5, 12, 10,
+			195, 161, 18, 195, 161, 19, 109, 55, 57, 114, 52, 114, 91, 23, 37, 50, 72, 40, 55, 0, 13, 81, 105, 110, 100, 117, 108, 32, 16, 141,
+			19, 26, 195, 188, 11, 19, 195, 169, 7, 5, 19, 5, 11, 13, 12, 137, 5, 12, 10, 195, 161, 18, 195, 161, 19, 13, 18, 143, 6, 5,
+			10, 12, 5, 19, 26, 20, 195, 169, 19, 195, 169, 18, 5, 13, 0, 16, 141, 11, 195, 188, 12, 6, 195, 182, 12, 4, 18, 197, 145, 12,
+			13, 11, 136, 5, 13, 5, 12, 195, 169, 19, 5, 13, 17, 142, 18, 5, 14, 4, 5, 12, 11, 5, 26, 195, 169, 19, 5, 11, 13, 0,
+			18, 143, 5, 12, 21, 20, 1, 19, 195, 173, 20, 15, 20, 20, 195, 161, 11, 13, 47, 14, 19, 26, 15, 6, 20, 22, 5, 18, 5, 11,
+			18, 197, 145, 12, 89, 39, 83, 47, 84, 109, 52, 109, 49, 52, 118, 55, 23, 84, 108, 50, 23, 89, 115, 0, 13, 82, 118, 97, 110, 32,
+			115, 122, 195, 179, 32, 9, 134, 3, 195, 169, 7, 5, 20, 13, 28, 10, 20, 195, 182, 18, 22, 195, 169, 14, 25, 20, 47, 110, 52, 84,
+			113, 67, 47, 23, 37, 91, 0, 13, 81, 105, 115, 32, 13, 138, 20, 195, 182, 18, 22, 195, 169, 14, 25, 20, 13, 9, 198, 52, 243, 132,
+			40, 19, 64, 13, 14, 139, 195, 169, 19, 26, 10, 195, 161, 18, 195, 161, 19, 13, 46, 15, 19, 26, 195, 179, 11, 1, 16, 3, 19, 15,
+			12, 1, 20, 15, 11, 89, 115, 49, 108, 48, 76, 39, 55, 108, 47, 39, 49, 23, 84, 108, 50, 12, 108, 49, 0, 13, 81, 118, 97, 110,
+			110, 97, 107, 32, 56, 11, 9, 4, 197, 145, 10, 195, 161, 18, 195, 161, 19, 37, 72, 118, 57, 114, 52, 114, 91, 23, 55, 109, 89, 23,
+			108, 23, 57, 109, 55, 12, 109, 65, 88, 118, 0, 13, 83, 108, 101, 115, 122, 32, 97, 32, 106, 101, 108, 108, 101, 109, 122, 197, 145, 32,
+			10, 135, 18, 1, 2, 12, 195, 161, 19, 13, 13, 202, 64, 148, 218, 80, 243, 25, 60, 178, 193, 48, 13, 9, 134, 195, 179, 18, 195, 161,
+			20, 13, 16, 141, 6, 15, 18, 4, 21, 12, 1, 20, 19, 26, 195, 161, 13, 13, 0, 14, 139, 6, 15, 12, 25, 1, 13, 1, 20, 195,
+			161, 20, 13, 13, 138, 10, 5, 12, 5, 14, 20, 195, 169, 19, 5, 13, 25, 7, 19, 26, 1, 22, 195, 161, 20, 89, 108, 84, 114, 47,
+			23, 91, 109, 65, 0, 13, 81, 115, 101, 109, 32, 13, 138, 13, 5, 7, 7, 25, 197, 145, 26, 14, 9, 13, 13, 138, 14, 195, 182, 22,
+			5, 12, 195, 169, 19, 5, 13, 9, 134, 1, 4, 195, 161, 19, 1, 13, 0, 9, 198, 88, 243, 20, 5, 67, 203, 72, 12, 137, 5, 12,
+			12, 195, 161, 20, 195, 161, 19, 13, 11, 136, 18, 195, 169, 20, 5, 7, 5, 20, 13, 15, 140, 4, 195, 182, 14, 20, 195, 169, 19, 5,
+			11, 5, 20, 13, 11, 136, 16, 12, 195, 161, 26, 195, 161, 20, 13, 11, 136, 11, 1, 16, 21, 10, 195, 161, 20, 13, 0, 16, 205, 80,
+			20, 137, 24, 16, 211, 60, 208, 71, 60, 178, 193, 48, 13, 7, 196, 76, 244, 143, 56, 13, 12, 201, 32, 19, 135, 61, 165, 1, 80, 243,
+			64, 13, 11, 136, 11, 195, 182, 20, 195, 169, 19, 5, 13, 10, 135, 22, 195, 161, 18, 10, 21, 11, 13, 12, 201, 24, 83, 142, 4, 176,
+			68, 80, 19, 64, 13, 19, 144, 13, 5, 7, 19, 5, 7, 195, 173, 20, 195, 169, 19, 195, 169, 18, 5, 13, 32, 8, 11, 9, 1, 4,
+			195, 161, 19, 1, 49, 37, 108, 72, 114, 91, 108, 23, 55, 109, 107, 109, 47, 0, 13, 81, 108, 101, 104, 101, 116, 32, 12, 137, 22, 1,
+			7, 25, 15, 14, 195, 161, 20, 13, 0, 47, 70, 80, 17, 202, 4, 148, 129, 47, 108, 81, 57, 108, 37, 52, 108, 23, 84, 39, 50, 108,
+			47, 49, 39, 88, 12, 108, 50, 108, 49, 0, 13, 81, 118, 111, 110, 97, 116, 107, 111, 122, 122, 97, 110, 97, 107, 32, 14, 139, 7, 25,
+			15, 18, 19, 195, 173, 20, 195, 161, 19, 13, 10, 135, 22, 195, 161, 12, 1, 19, 26, 13, 14, 139, 20, 195, 161, 13, 15, 7, 1, 20,
+			195, 161, 19, 13, 0, 9, 134, 26, 195, 161, 18, 21, 12, 13, 0, 19, 67, 85, 48, 64, 117, 115, 195, 161, 98, 97, 0, 44, 29, 42,
+			81, 98, 97, 32, 21, 67, 85, 48, 64, 117, 115, 195, 161, 98, 97, 110, 0, 44, 29, 42, 81, 98, 97, 110, 32, 25, 67, 85, 48, 64,
+			117, 115, 195, 161, 195, 169, 118, 97, 108, 0, 44, 29, 42, 81, 195, 169, 118, 97, 108, 32, 21, 67, 85, 48, 64, 117, 115, 195, 161, 110,
+			97, 107, 0, 44, 29, 42, 81, 110, 97, 107, 32, 23, 67, 85, 48, 64, 117, 115, 195, 161, 98, 195, 179, 108, 0, 44, 29, 42, 81, 98,
+			195, 179, 108, 32, 7, 2, 95, 19, 109, 91, 0, 14, 139, 5, 12, 4, 195, 182, 14, 20, 195, 169, 19, 5, 13, 10, 199, 24, 83, 153,
+			20, 113, 84, 36, 13, 16, 141, 20, 195, 186, 12, 12, 195, 169, 16, 20, 195, 188, 14, 11, 13, 10, 199, 16, 243, 7, 61, 163, 129, 44,
+			13, 6, 195, 57, 146, 84, 13, 6, 195, 104, 18, 148, 13, 10, 4, 95, 50, 48, 5, 107, 40, 89, 0, 0, 9, 198, 32, 19, 65, 72,
+			16, 130, 13, 17, 142, 13, 5, 7, 195, 161, 12, 12, 1, 16, 15, 4, 195, 161, 19, 13, 49, 14, 13, 5, 7, 195, 161, 12, 12, 1,
+			16, 15, 4, 195, 161, 19, 65, 109, 81, 114, 55, 12, 108, 48, 39, 72, 114, 91, 23, 49, 110, 47, 107, 109, 47, 118, 0, 13, 81, 107,
+			195, 182, 116, 104, 101, 116, 197, 145, 32, 57, 14, 13, 5, 7, 195, 161, 12, 12, 1, 16, 15, 4, 195, 161, 19, 65, 109, 81, 114, 55,
+			12, 108, 48, 39, 72, 114, 91, 23, 37, 91, 23, 89, 111, 55, 109, 47, 109, 47, 12, 0, 13, 82, 105, 115, 32, 115, 122, 195, 188, 108,
+			101, 116, 101, 116, 116, 32, 16, 141, 11, 21, 12, 20, 195, 186, 18, 195, 161, 10, 195, 161, 20, 13, 12, 68, 65, 52, 218, 80, 48, 89,
+			12, 47, 0, 41, 0, 27, 152, 19, 1, 10, 20, 195, 179, 20, 195, 161, 10, 195, 169, 11, 15, 26, 20, 1, 20, 195, 179, 10, 195, 161,
+			14, 13, 9, 134, 26, 195, 161, 18, 20, 1, 13, 9, 134, 22, 195, 161, 18, 20, 1, 13, 0, 7, 66, 77, 160, 109, 89, 0, 0, 17,
+			142, 19, 1, 10, 195, 161, 20, 15, 19, 19, 195, 161, 7, 15, 11, 13, 0, 20, 145, 11, 195, 182, 20, 5, 12, 5, 26, 5, 20, 20,
+			19, 195, 169, 7, 5, 20, 13, 0, 21, 146, 11, 15, 14, 6, 9, 7, 21, 18, 195, 161, 3, 9, 195, 179, 10, 195, 161, 20, 13, 8,
+			197, 24, 18, 149, 49, 64, 13, 9, 198, 64, 192, 84, 24, 244, 141, 13, 8, 197, 52, 20, 129, 17, 64, 13, 0, 12, 137, 8, 195, 169,
+			20, 6, 197, 145, 9, 7, 22, 0, 6, 195, 88, 83, 0, 13, 0, 17, 142, 1, 4, 15, 20, 20, 19, 195, 161, 7, 1, 9, 8, 15,
+			26, 13, 12, 137, 22, 9, 7, 25, 195, 161, 26, 14, 9, 13, 10, 135, 20, 5, 7, 25, 195, 188, 11, 13, 0, 15, 140, 20, 5, 14,
+			14, 9, 22, 1, 12, 195, 179, 14, 11, 13, 11, 136, 195, 173, 18, 14, 195, 161, 14, 11, 13, 6, 195, 48, 83, 142, 13, 0, 35, 70,
+			80, 83, 69, 77, 49, 64, 47, 109, 65, 109, 91, 12, 109, 23, 109, 55, 23, 116, 57, 52, 108, 0, 13, 82, 101, 108, 32, 195, 186, 106,
+			114, 97, 32, 9, 134, 22, 195, 169, 4, 5, 4, 13, 13, 138, 10, 5, 12, 5, 14, 20, 195, 169, 19, 20, 13, 9, 198, 77, 161, 77,
+			52, 83, 0, 13, 7, 132, 195, 169, 19, 26, 13, 5, 194, 80, 144, 13, 11, 66, 92, 48, 84, 113, 119, 113, 0, 42, 42, 0, 21, 67,
+			8, 18, 128, 71, 108, 57, 10, 6, 15, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 19, 67, 8, 18, 128, 71, 108, 57, 10, 6, 15,
+			108, 88, 0, 13, 81, 97, 122, 32, 47, 71, 65, 35, 199, 72, 19, 79, 80, 48, 52, 39, 81, 52, 108, 65, 39, 47, 23, 37, 50, 72,
+			112, 47, 108, 50, 114, 50, 108, 49, 0, 13, 81, 105, 110, 100, 195, 173, 116, 97, 110, 195, 161, 110, 97, 107, 32, 20, 67, 8, 18, 128,
+			71, 108, 57, 15, 84, 39, 55, 47, 0, 81, 118, 111, 108, 116, 32, 10, 135, 11, 195, 182, 26, 195, 188, 12, 13, 43, 71, 65, 35, 199,
+			72, 19, 79, 80, 48, 52, 39, 81, 52, 108, 65, 39, 47, 15, 47, 109, 89, 47, 109, 55, 111, 50, 49, 0, 13, 81, 116, 101, 115, 122,
+			116, 101, 108, 195, 188, 110, 107, 32, 6, 195, 8, 18, 128, 13, 10, 135, 11, 195, 182, 26, 195, 188, 12, 13, 15, 4, 95, 50, 48, 17,
+			107, 40, 89, 108, 72, 37, 49, 108, 0, 0, 11, 200, 24, 243, 25, 4, 208, 84, 61, 64, 13, 20, 68, 4, 178, 207, 72, 108, 49, 12,
+			39, 52, 23, 37, 91, 0, 13, 81, 105, 115, 32, 7, 196, 4, 178, 207, 72, 13, 0, 20, 5, 4, 197, 145, 12, 20, 72, 118, 55, 47,
+			23, 71, 109, 0, 13, 81, 98, 101, 32, 10, 135, 22, 195, 161, 7, 25, 19, 26, 13, 11, 136, 12, 195, 161, 20, 10, 195, 161, 11, 13,
+			12, 137, 4, 195, 182, 14, 20, 195, 169, 19, 20, 13, 11, 136, 12, 195, 161, 20, 10, 195, 161, 11, 13, 8, 133, 4, 197, 145, 12, 20,
+			13, 0, 13, 138, 10, 195, 179, 19, 26, 195, 161, 7, 15, 20, 13, 26, 70, 88, 86, 133, 80, 146, 192, 84, 109, 88, 109, 47, 37, 49,
+			10, 6, 15, 109, 55, 0, 13, 81, 101, 108, 32, 9, 198, 84, 118, 65, 56, 22, 128, 13, 12, 137, 6, 5, 10, 12, 197, 145, 4, 9,
+			11, 13, 12, 137, 11, 5, 26, 4, 197, 145, 4, 9, 11, 13, 0, 9, 198, 4, 194, 193, 48, 208, 83, 13, 17, 142, 3, 19, 195, 188,
+			20, 195, 182, 18, 20, 195, 182, 11, 9, 7, 22, 0, 13, 2, 95, 34, 37, 72, 113, 88, 118, 57, 109, 55, 0, 15, 140, 2, 195, 173,
+			18, 195, 179, 19, 195, 161, 7, 15, 20, 13, 14, 139, 10, 1, 22, 1, 19, 15, 12, 10, 195, 161, 11, 13, 10, 135, 6, 1, 10, 20,
+			195, 161, 11, 13, 10, 135, 8, 15, 26, 20, 195, 161, 11, 13, 15, 140, 2, 9, 26, 15, 20, 20, 19, 195, 161, 7, 15, 20, 13, 13,
+			138, 20, 21, 12, 1, 10, 4, 15, 14, 195, 186, 13, 7, 196, 52, 17, 213, 44, 13, 0, 17, 2, 95, 33, 83, 109, 55, 49, 37, 114,
+			55, 47, 115, 57, 109, 55, 0, 28, 69, 4, 176, 82, 60, 176, 108, 49, 108, 52, 39, 49, 23, 55, 109, 50, 12, 37, 0, 13, 81, 108,
+			101, 110, 110, 105, 32, 16, 141, 5, 12, 12, 5, 14, 197, 145, 18, 26, 195, 169, 19, 20, 13, 32, 69, 4, 176, 82, 40, 16, 108, 49,
+			108, 52, 57, 108, 23, 107, 108, 57, 47, 108, 50, 37, 0, 13, 81, 104, 97, 106, 116, 97, 110, 105, 32, 9, 134, 21, 20, 195, 161, 14,
+			1, 13, 8, 197, 4, 176, 82, 40, 16, 13, 11, 136, 22, 195, 161, 18, 20, 195, 161, 11, 13, 0, 7, 66, 81, 144, 80, 113, 0, 10,
+			135, 2, 5, 195, 173, 18, 22, 1, 13, 11, 136, 21, 4, 22, 1, 18, 195, 161, 14, 13, 17, 142, 8, 1, 19, 15, 14, 12, 195, 179,
+			19, 195, 161, 7, 15, 20, 13, 12, 137, 6, 195, 169, 14, 25, 5, 19, 5, 11, 13, 9, 134, 1, 14, 14, 195, 161, 12, 13, 10, 135,
+			12, 5, 195, 173, 18, 22, 1, 13, 0, 13, 2, 95, 39, 108, 48, 39, 89, 47, 52, 115, 83, 0, 28, 8, 20, 195, 169, 13, 195, 161,
+			10, 1, 47, 113, 65, 114, 57, 108, 23, 55, 109, 89, 0, 13, 81, 108, 101, 115, 122, 32, 16, 141, 20, 195, 161, 18, 7, 25, 1, 12,
+			195, 161, 19, 15, 14, 13, 11, 136, 20, 195, 169, 13, 195, 161, 10, 1, 13, 6, 195, 28, 243, 132, 13, 6, 195, 21, 49, 84, 13, 6,
+			195, 28, 243, 132, 13, 6, 195, 8, 19, 128, 72, 6, 195, 40, 19, 128, 20, 0, 28, 8, 6, 195, 182, 12, 195, 182, 20, 20, 83, 110,
+			55, 110, 47, 12, 23, 114, 55, 12, 0, 13, 81, 195, 161, 108, 108, 32, 7, 196, 12, 145, 201, 80, 13, 15, 140, 11, 22, 1, 12, 9,
+			6, 9, 11, 195, 161, 12, 20, 13, 20, 145, 13, 5, 7, 19, 26, 195, 161, 13, 12, 195, 161, 12, 20, 1, 20, 14, 9, 13, 25, 8,
+			6, 195, 182, 12, 195, 182, 20, 20, 83, 110, 55, 110, 47, 12, 23, 37, 91, 0, 13, 81, 105, 115, 32, 13, 138, 6, 5, 10, 22, 1,
+			4, 195, 161, 19, 26, 13, 6, 195, 21, 50, 75, 13, 11, 136, 6, 195, 182, 12, 195, 182, 20, 20, 13, 11, 136, 13, 195, 182, 7, 195,
+			182, 20, 20, 13, 10, 135, 10, 195, 186, 12, 9, 21, 19, 20, 0, 8, 197, 44, 243, 79, 49, 144, 13, 11, 136, 12, 5, 195, 173, 18,
+			195, 161, 19, 13, 20, 145, 20, 195, 161, 13, 15, 7, 1, 20, 15, 20, 20, 19, 195, 161, 7, 15, 20, 13, 16, 9, 95, 35, 45, 195,
+			169, 18, 197, 145, 12, 113, 52, 118, 55, 0, 14, 4, 95, 50, 48, 15, 107, 40, 89, 108, 72, 37, 49, 0, 0, 41, 74, 4, 192, 80,
+			4, 230, 65, 28, 242, 210, 4, 108, 55, 108, 48, 108, 67, 108, 81, 39, 49, 52, 108, 23, 49, 113, 67, 109, 91, 0, 13, 81, 107, 195,
+			169, 110, 121, 101, 115, 32, 16, 141, 20, 195, 161, 18, 7, 25, 1, 12, 195, 161, 19, 15, 11, 13, 50, 73, 20, 193, 75, 81, 35, 206,
+			36, 181, 83, 109, 55, 109, 49, 47, 52, 39, 50, 37, 49, 40, 91, 23, 84, 114, 55, 47, 39, 88, 108, 47, 114, 47, 0, 13, 81, 118,
+			195, 161, 108, 116, 111, 122, 97, 116, 195, 161, 116, 32, 14, 139, 195, 188, 26, 5, 13, 13, 195, 179, 4, 2, 1, 13, 16, 141, 2, 5,
+			18, 5, 14, 4, 5, 26, 195, 169, 19, 5, 11, 13, 9, 198, 5, 163, 206, 8, 19, 128, 13, 0, 7, 195, 88, 19, 128, 13, 22, 21,
+			67, 88, 19, 128, 84, 108, 50, 10, 6, 15, 37, 47, 12, 0, 13, 81, 105, 116, 116, 32, 32, 67, 88, 19, 128, 84, 108, 50, 23, 89,
+			111, 49, 91, 113, 81, 109, 65, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 109, 32, 18, 67, 88, 19, 128, 84, 108, 50,
+			23, 52, 114, 0, 13, 81, 114, 195, 161, 32, 23, 67, 88, 19, 128, 84, 108, 50, 23, 37, 72, 109, 57, 109, 0, 13, 81, 105, 100, 101,
+			106, 101, 32, 14, 139, 18, 195, 169, 19, 26, 5, 13, 18, 197, 145, 12, 13, 10, 135, 20, 15, 18, 20, 195, 161, 20, 13, 0, 18, 143,
+			8, 1, 14, 7, 19, 195, 186, 12, 25, 15, 26, 20, 195, 161, 11, 13, 27, 67, 8, 19, 139, 71, 108, 50, 49, 23, 91, 109, 81, 112,
+			47, 37, 0, 13, 81, 115, 101, 103, 195, 173, 116, 105, 32, 11, 136, 16, 195, 169, 12, 4, 195, 161, 20, 13, 9, 134, 16, 15, 8, 195,
+			161, 18, 13, 11, 136, 197, 145, 18, 195, 182, 11, 5, 20, 13, 15, 140, 20, 195, 169, 20, 5, 12, 195, 169, 18, 197, 145, 12, 13, 9,
+			134, 19, 26, 20, 195, 161, 18, 13, 6, 195, 64, 84, 131, 13, 12, 4, 95, 3, 1, 16, 50, 6, 108, 79, 23, 0, 10, 135, 10, 195,
+			186, 14, 9, 21, 19, 20, 0, 17, 2, 95, 41, 57, 6, 39, 71, 88, 114, 52, 115, 57, 109, 55, 0, 27, 38, 67, 5, 163, 206, 108,
+			88, 39, 50, 10, 6, 15, 81, 39, 50, 72, 39, 55, 49, 39, 72, 50, 37, 0, 13, 81, 103, 111, 110, 100, 111, 108, 107, 111, 100, 110,
+			105, 32, 12, 137, 8, 1, 12, 195, 161, 12, 195, 161, 20, 13, 6, 195, 5, 163, 206, 13, 9, 134, 3, 195, 173, 13, 197, 177, 13, 0,
+			17, 2, 95, 40, 71, 6, 108, 55, 88, 114, 52, 115, 57, 109, 55, 0, 27, 37, 70, 20, 208, 133, 72, 83, 128, 109, 65, 71, 109, 52,
+			109, 50, 23, 91, 109, 81, 112, 47, 107, 109, 47, 0, 13, 81, 115, 101, 103, 195, 173, 116, 104, 101, 116, 32, 6, 195, 44, 244, 129, 13,
+			34, 9, 13, 5, 7, 15, 12, 4, 195, 161, 19, 65, 109, 81, 39, 55, 72, 114, 91, 15, 48, 109, 72, 37, 81, 0, 13, 81, 112, 101,
+			100, 105, 103, 32, 12, 137, 13, 5, 7, 15, 12, 4, 195, 161, 19, 13, 9, 198, 20, 208, 133, 72, 83, 128, 13, 9, 198, 88, 86, 133,
+			80, 129, 84, 13, 0, 6, 195, 76, 244, 128, 13, 11, 67, 8, 20, 128, 71, 108, 52, 0, 42, 42, 0, 9, 2, 95, 46, 48, 39, 50,
+			47, 0, 11, 200, 24, 243, 25, 4, 208, 84, 61, 48, 13, 11, 136, 11, 1, 13, 5, 18, 195, 161, 20, 13, 15, 140, 20, 195, 182, 18,
+			20, 195, 169, 14, 5, 20, 5, 20, 13, 11, 136, 195, 182, 14, 195, 182, 11, 5, 20, 13, 15, 140, 5, 19, 26, 11, 195, 182, 26, 195,
+			182, 11, 5, 20, 13, 13, 138, 16, 1, 18, 1, 13, 195, 169, 20, 5, 18, 13, 8, 133, 195, 169, 18, 20, 5, 13, 15, 140, 9, 14,
+			4, 195, 173, 20, 22, 195, 161, 14, 25, 20, 13, 13, 138, 11, 195, 182, 14, 25, 22, 20, 195, 161, 18, 13, 6, 195, 5, 163, 203, 13,
+			11, 136, 20, 5, 18, 195, 188, 12, 5, 20, 13, 0, 12, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 27, 20, 145, 12, 5, 8, 5,
+			20, 197, 145, 19, 195, 169, 7, 5, 9, 18, 197, 145, 12, 13, 19, 144, 19, 26, 5, 13, 195, 169, 12, 25, 12, 5, 195, 173, 18, 195,
+			161, 19, 13, 12, 201, 61, 69, 8, 60, 229, 1, 48, 19, 128, 13, 16, 140, 20, 5, 18, 13, 195, 169, 19, 26, 5, 20, 5, 19, 72,
+			65, 0, 10, 2, 95, 44, 84, 109, 89, 122, 118, 0, 15, 140, 8, 195, 161, 20, 20, 195, 169, 18, 20, 195, 161, 18, 13, 13, 138, 6,
+			15, 18, 13, 195, 161, 10, 195, 161, 20, 13, 0, 6, 195, 81, 68, 192, 13, 22, 147, 11, 1, 18, 12, 5, 14, 4, 195, 173, 20, 195,
+			169, 19, 5, 11, 2, 197, 145, 12, 13, 8, 133, 195, 173, 18, 19, 26, 13, 6, 195, 8, 18, 148, 13, 12, 67, 53, 36, 192, 65, 37,
+			89, 37, 89, 0, 25, 6, 195, 49, 68, 192, 20, 10, 2, 95, 51, 107, 114, 52, 39, 65, 0, 0, 15, 140, 18, 195, 161, 7, 25, 195,
+			186, 10, 20, 8, 1, 20, 13, 9, 198, 52, 17, 193, 76, 16, 130, 13, 14, 139, 8, 1, 19, 26, 14, 195, 161, 12, 10, 21, 11, 13,
+			9, 198, 29, 147, 210, 76, 16, 130, 13, 8, 133, 195, 173, 18, 20, 1, 13, 10, 2, 95, 50, 49, 109, 47, 12, 118, 0, 0, 12, 137,
+			8, 1, 19, 26, 14, 195, 161, 12, 4, 13, 11, 136, 195, 182, 20, 12, 5, 20, 5, 11, 13, 8, 197, 61, 69, 8, 60, 224, 13, 8,
+			133, 20, 195, 182, 18, 20, 13, 11, 136, 20, 197, 145, 12, 5, 20, 5, 11, 13, 7, 2, 95, 49, 109, 79, 0, 0, 17, 142, 11, 195,
+			188, 12, 195, 182, 14, 2, 19, 195, 169, 7, 5, 20, 13, 12, 137, 12, 5, 14, 14, 195, 169, 20, 5, 11, 13, 6, 195, 4, 69, 1,
+			13, 10, 2, 95, 48, 50, 40, 55, 55, 108, 0, 0, 9, 134, 15, 11, 15, 26, 195, 179, 13, 16, 141, 11, 195, 182, 18, 14, 25, 5,
+			26, 5, 20, 8, 5, 26, 13, 8, 2, 95, 55, 107, 113, 121, 0, 0, 8, 2, 95, 54, 107, 108, 121, 0, 0, 8, 197, 80, 84, 133,
+			53, 64, 13, 9, 198, 88, 19, 1, 32, 245, 129, 13, 8, 197, 76, 83, 139, 37, 64, 13, 7, 2, 95, 53, 110, 121, 0, 0, 21, 146,
+			11, 195, 182, 20, 5, 12, 5, 26, 5, 20, 20, 19, 195, 169, 7, 195, 169, 20, 13, 9, 198, 88, 86, 133, 77, 49, 64, 13, 19, 144,
+			8, 1, 19, 26, 14, 195, 161, 12, 8, 1, 20, 1, 20, 12, 1, 14, 13, 8, 2, 95, 52, 50, 113, 79, 0, 0, 16, 2, 95, 59,
+			48, 39, 50, 47, 39, 91, 84, 109, 89, 122, 118, 0, 9, 134, 195, 161, 20, 12, 1, 7, 13, 15, 140, 8, 9, 7, 1, 14, 25, 19,
+			26, 195, 161, 12, 1, 13, 0, 15, 2, 95, 58, 49, 109, 47, 12, 118, 91, 48, 39, 50, 47, 0, 0, 19, 144, 19, 26, 195, 161, 13,
+			195, 173, 20, 195, 179, 7, 195, 169, 16, 5, 11, 13, 11, 2, 95, 57, 49, 37, 55, 109, 50, 119, 0, 0, 23, 9, 5, 7, 25, 5,
+			26, 19, 195, 169, 7, 101, 103, 103, 121, 101, 115, 115, 195, 169, 103, 0, 29, 32, 70, 24, 244, 137, 57, 67, 212, 83, 39, 52, 37, 50,
+			47, 39, 47, 23, 113, 52, 50, 109, 49, 0, 13, 81, 195, 169, 114, 110, 101, 107, 32, 9, 198, 24, 244, 137, 57, 67, 212, 13, 9, 2,
+			95, 56, 67, 39, 55, 119, 0, 0, 13, 2, 95, 63, 49, 113, 52, 72, 118, 57, 109, 55, 0, 13, 138, 22, 5, 19, 26, 20, 5, 19,
+			195, 169, 7, 13, 10, 199, 57, 145, 82, 80, 84, 197, 36, 13, 6, 195, 32, 86, 128, 13, 0, 10, 2, 95, 62, 50, 108, 79, 39, 71,
+			0, 12, 137, 10, 195, 161, 18, 22, 195, 161, 14, 25, 13, 7, 196, 45, 83, 3, 76, 13, 7, 196, 41, 85, 14, 36, 13, 11, 200, 77,
+			161, 80, 80, 83, 66, 21, 32, 20, 0, 8, 197, 40, 83, 26, 36, 176, 13, 8, 197, 24, 83, 18, 4, 176, 13, 25, 6, 18, 195, 169,
+			19, 26, 5, 52, 113, 89, 109, 15, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 9, 134, 18, 195, 169, 19, 26, 5, 13, 0,
+			11, 2, 95, 60, 49, 37, 91, 91, 109, 71, 0, 6, 195, 88, 150, 133, 13, 11, 136, 195, 188, 14, 14, 5, 16, 5, 14, 13, 53, 9,
+			20, 1, 14, 195, 161, 3, 19, 15, 11, 47, 108, 50, 114, 76, 39, 49, 23, 49, 113, 52, 72, 113, 91, 113, 52, 118, 55, 23, 37, 91,
+			0, 13, 82, 107, 195, 169, 114, 100, 195, 169, 115, 195, 169, 114, 197, 145, 108, 32, 105, 115, 32, 14, 139, 5, 12, 197, 145, 11, 5, 18,
+			5, 19, 14, 9, 13, 0, 17, 142, 4, 9, 19, 26, 20, 18, 9, 2, 195, 186, 3, 9, 195, 179, 13, 12, 201, 65, 35, 199, 72, 19,
+			79, 44, 21, 0, 13, 9, 198, 48, 20, 20, 61, 3, 203, 13, 6, 195, 57, 145, 76, 13, 0, 13, 138, 15, 19, 26, 20, 195, 161, 12,
+			25, 15, 14, 13, 8, 133, 8, 195, 161, 26, 1, 13, 11, 200, 44, 145, 15, 48, 115, 218, 80, 16, 13, 12, 137, 22, 5, 26, 5, 20,
+			197, 145, 10, 5, 13, 10, 135, 12, 195, 161, 20, 10, 21, 11, 13, 8, 133, 195, 173, 18, 22, 1, 13, 0, 8, 197, 80, 20, 148, 60,
+			176, 13, 44, 69, 56, 17, 217, 72, 16, 50, 108, 79, 52, 108, 10, 6, 15, 84, 108, 50, 10, 6, 15, 114, 55, 112, 47, 84, 108, 0,
+			13, 82, 118, 97, 110, 32, 195, 161, 108, 108, 195, 173, 116, 118, 97, 32, 12, 137, 9, 18, 195, 161, 14, 25, 21, 12, 20, 13, 9, 134,
+			20, 195, 161, 22, 18, 1, 13, 8, 197, 77, 161, 82, 16, 16, 20, 0, 26, 5, 6, 195, 188, 7, 7, 83, 111, 81, 12, 23, 110, 89,
+			12, 109, 0, 13, 81, 195, 182, 115, 115, 122, 101, 32, 22, 3, 18, 195, 161, 52, 114, 23, 37, 81, 113, 67, 0, 13, 81, 105, 103, 195,
+			169, 110, 121, 32, 31, 3, 18, 195, 161, 52, 114, 23, 89, 111, 49, 91, 113, 81, 109, 65, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195,
+			169, 103, 101, 109, 32, 8, 133, 6, 195, 188, 7, 7, 13, 6, 131, 18, 195, 161, 13, 0, 30, 10, 20, 5, 18, 195, 188, 12, 5, 20,
+			5, 11, 47, 109, 52, 111, 55, 109, 47, 109, 49, 23, 37, 91, 0, 13, 81, 105, 115, 32, 24, 5, 5, 7, 195, 169, 18, 109, 81, 113,
+			52, 23, 84, 39, 55, 47, 0, 13, 81, 118, 111, 108, 116, 32, 15, 140, 19, 26, 1, 11, 195, 169, 18, 20, 197, 145, 10, 5, 13, 11,
+			136, 6, 15, 18, 13, 195, 161, 10, 1, 13, 15, 140, 13, 5, 7, 1, 12, 11, 15, 20, 195, 179, 10, 1, 13, 10, 199, 80, 85, 20,
+			20, 147, 133, 44, 13, 0, 12, 137, 18, 1, 11, 20, 195, 161, 18, 18, 1, 13, 0, 13, 138, 19, 5, 7, 195, 173, 20, 5, 14, 195,
+			169, 13, 12, 201, 13, 51, 205, 4, 115, 203, 32, 246, 128, 13, 0, 0, 10, 135, 12, 195, 169, 16, 8, 5, 20, 13, 15, 140, 16, 18,
+			15, 2, 12, 195, 169, 13, 195, 161, 10, 1, 13, 10, 135, 22, 195, 161, 12, 8, 1, 20, 13, 14, 139, 13, 197, 177, 11, 195, 182, 4,
+			195, 182, 20, 20, 13, 0, 20, 145, 6, 18, 1, 11, 3, 9, 195, 179, 22, 5, 26, 5, 20, 197, 145, 10, 5, 13, 40, 7, 22, 5,
+			7, 25, 195, 188, 11, 84, 109, 79, 111, 49, 10, 6, 15, 83, 37, 79, 109, 55, 109, 65, 71, 109, 0, 13, 81, 102, 105, 103, 121, 101,
+			108, 101, 109, 98, 101, 32, 6, 195, 88, 144, 195, 13, 0, 33, 4, 95, 226, 128, 163, 107, 114, 52, 39, 65, 89, 110, 81, 108, 55, 108,
+			49, 116, 83, 109, 55, 91, 39, 52, 39, 55, 114, 91, 57, 109, 55, 0, 12, 201, 37, 35, 196, 4, 195, 205, 8, 19, 128, 13, 9, 134,
+			20, 197, 177, 14, 197, 145, 13, 0, 15, 4, 95, 226, 128, 162, 55, 37, 91, 47, 108, 57, 109, 55, 0, 13, 138, 195, 169, 18, 20, 5,
+			12, 13, 195, 169, 20, 13, 13, 138, 11, 5, 18, 5, 19, 26, 20, 195, 188, 12, 13, 9, 134, 195, 182, 20, 12, 5, 20, 13, 9, 134,
+			195, 161, 12, 12, 1, 20, 13, 11, 136, 20, 195, 161, 14, 25, 195, 169, 18, 13, 10, 135, 8, 195, 169, 20, 6, 197, 145, 20, 0, 17,
+			142, 195, 182, 19, 19, 26, 5, 6, 195, 188, 7, 7, 195, 169, 19, 13, 25, 4, 195, 179, 20, 1, 115, 47, 108, 23, 47, 108, 52, 47,
+			115, 0, 13, 81, 116, 97, 114, 116, 195, 179, 32, 13, 138, 11, 9, 20, 195, 182, 12, 20, 195, 169, 19, 13, 16, 141, 16, 15, 12, 7,
+			195, 161, 18, 13, 5, 19, 20, 5, 18, 13, 10, 135, 195, 161, 12, 12, 8, 1, 20, 13, 10, 135, 11, 195, 169, 18, 8, 5, 20, 13,
+			9, 132, 195, 179, 20, 1, 13, 20, 22, 0, 7, 196, 24, 241, 211, 104, 76, 0, 43, 69, 32, 241, 217, 4, 224, 107, 39, 79, 108, 50,
+			23, 83, 39, 81, 23, 84, 113, 81, 88, 118, 72, 50, 37, 0, 13, 82, 102, 111, 103, 32, 118, 195, 169, 103, 122, 197, 145, 100, 110, 105,
+			32, 13, 138, 11, 195, 188, 12, 6, 195, 182, 12, 4, 9, 13, 8, 197, 77, 64, 66, 36, 192, 13, 12, 137, 10, 195, 161, 20, 19, 26,
+			8, 1, 20, 13, 12, 137, 11, 5, 18, 195, 188, 12, 8, 5, 20, 13, 16, 141, 5, 12, 197, 145, 6, 15, 18, 4, 21, 12, 8, 1,
+			20, 13, 8, 197, 37, 69, 8, 60, 224, 13, 0, 19, 4, 95, 226, 128, 166, 48, 39, 50, 47, 48, 39, 50, 47, 48, 39, 50, 47, 0,
+			13, 138, 5, 19, 26, 11, 195, 182, 26, 195, 169, 20, 13, 27, 6, 18, 195, 169, 19, 26, 20, 52, 113, 89, 47, 23, 84, 109, 50, 12,
+			37, 0, 13, 81, 118, 101, 110, 110, 105, 32, 24, 6, 18, 195, 169, 19, 26, 20, 52, 113, 89, 47, 23, 84, 109, 89, 0, 13, 81, 118,
+			101, 115, 122, 32, 13, 138, 22, 195, 161, 12, 20, 15, 26, 8, 1, 20, 13, 29, 6, 18, 195, 169, 19, 26, 20, 52, 113, 89, 47, 23,
+			84, 109, 47, 12, 109, 49, 0, 13, 81, 118, 101, 116, 116, 101, 107, 32, 14, 139, 18, 5, 14, 4, 5, 12, 11, 5, 26, 197, 145, 13,
+			9, 134, 9, 18, 195, 161, 14, 20, 13, 9, 134, 18, 195, 169, 19, 26, 20, 13, 0, 19, 67, 85, 48, 128, 195, 186, 101, 115, 98, 195,
+			169, 116, 0, 44, 29, 81, 116, 32, 19, 67, 85, 48, 128, 195, 186, 101, 115, 98, 195, 169, 110, 0, 44, 29, 81, 110, 32, 20, 67, 85,
+			48, 128, 195, 186, 101, 115, 98, 195, 169, 110, 0, 44, 29, 42, 81, 110, 32, 9, 134, 22, 1, 12, 195, 179, 11, 13, 6, 195, 16, 80,
+			192, 20, 0, 20, 145, 22, 9, 19, 19, 26, 1, 195, 161, 12, 12, 195, 173, 20, 1, 14, 195, 161, 13, 14, 139, 15, 16, 5, 18, 195,
+			161, 20, 15, 18, 15, 11, 13, 6, 131, 18, 195, 179, 13, 6, 195, 76, 242, 203, 13, 0, 15, 4, 95, 226, 128, 155, 37, 72, 113, 88,
+			118, 57, 109, 55, 0, 16, 141, 13, 5, 14, 14, 25, 9, 19, 195, 169, 7, 195, 169, 20, 13, 9, 134, 12, 195, 182, 11, 20, 5, 13,
+			7, 132, 19, 26, 195, 179, 13, 0, 15, 4, 95, 226, 128, 154, 37, 72, 113, 88, 118, 57, 109, 55, 0, 9, 198, 84, 118, 65, 56, 148,
+			192, 13, 34, 10, 20, 21, 4, 15, 13, 195, 161, 19, 21, 12, 47, 40, 72, 39, 65, 114, 91, 40, 55, 23, 49, 109, 55, 12, 0, 13,
+			81, 107, 101, 108, 108, 32, 30, 5, 1, 16, 18, 195, 179, 108, 48, 52, 115, 10, 6, 15, 72, 39, 55, 81, 39, 49, 0, 13, 81, 100,
+			111, 108, 103, 111, 107, 32, 56, 14, 19, 26, 5, 18, 5, 12, 22, 195, 169, 14, 25, 5, 9, 20, 89, 109, 52, 109, 55, 84, 113, 67,
+			109, 37, 47, 23, 65, 109, 81, 109, 52, 118, 91, 112, 47, 84, 109, 0, 13, 81, 109, 101, 103, 101, 114, 197, 145, 115, 195, 173, 116, 118,
+			101, 32, 11, 136, 2, 15, 12, 25, 7, 195, 179, 14, 13, 0, 25, 4, 95, 226, 128, 153, 57, 39, 71, 12, 39, 55, 72, 108, 55, 37,
+			37, 72, 113, 88, 118, 57, 109, 55, 0, 6, 195, 36, 65, 64, 13, 15, 140, 13, 1, 18, 1, 4, 22, 195, 161, 14, 25, 1, 9, 13,
+			13, 138, 20, 21, 4, 15, 13, 195, 161, 19, 21, 11, 13, 13, 138, 13, 195, 169, 18, 5, 20, 197, 177, 5, 11, 13, 6, 195, 36, 65,
+			64, 13, 0, 24, 4, 95, 226, 128, 152, 71, 108, 55, 39, 55, 72, 108, 55, 37, 37, 72, 113, 88, 118, 57, 109, 55, 0, 0, 15, 4,
+			95, 226, 128, 159, 37, 72, 113, 88, 118, 57, 109, 55, 0, 12, 137, 13, 195, 169, 18, 6, 195, 182, 12, 4, 13, 9, 198, 24, 148, 148,
+			5, 69, 1, 13, 0, 15, 4, 95, 226, 128, 158, 37, 72, 113, 88, 118, 57, 109, 55, 0, 0, 15, 4, 95, 226, 128, 157, 37, 72, 113,
+			88, 118, 57, 109, 55, 0, 19, 2, 95, 91, 67, 6, 37, 47, 115, 89, 110, 81, 55, 109, 47, 109, 91, 0, 27, 9, 134, 22, 195, 161,
+			18, 15, 19, 13, 0, 15, 4, 95, 226, 128, 156, 37, 72, 113, 88, 118, 57, 109, 55, 0, 20, 67, 4, 194, 71, 108, 55, 37, 81, 23,
+			84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 10, 135, 8, 1, 26, 195, 161, 14, 11, 13, 18, 143, 6, 5, 12, 19, 26, 195, 179, 12,
+			1, 12, 195, 161, 19, 15, 11, 13, 6, 195, 76, 244, 147, 13, 0, 18, 4, 95, 226, 128, 147, 81, 39, 50, 72, 39, 55, 108, 47, 57,
+			109, 55, 0, 16, 141, 22, 195, 161, 12, 1, 19, 26, 1, 9, 2, 195, 179, 12, 13, 15, 140, 22, 195, 161, 12, 12, 1, 12, 11, 15,
+			26, 195, 179, 13, 9, 134, 22, 195, 161, 18, 14, 9, 13, 6, 195, 80, 84, 150, 13, 0, 35, 70, 21, 49, 84, 48, 81, 192, 109, 91,
+			109, 47, 55, 109, 81, 23, 109, 55, 113, 52, 107, 109, 47, 0, 13, 81, 101, 108, 195, 169, 114, 104, 101, 116, 32, 9, 198, 77, 161, 77,
+			64, 243, 148, 13, 9, 134, 12, 5, 7, 195, 179, 20, 13, 6, 195, 32, 81, 217, 13, 17, 66, 88, 144, 107, 108, 47, 12, 108, 55, 0,
+			44, 42, 81, 97, 108, 32, 0, 14, 2, 95, 95, 108, 55, 114, 107, 116, 88, 114, 91, 0, 27, 30, 67, 76, 242, 192, 91, 39, 49, 23,
+			47, 111, 52, 109, 55, 65, 109, 47, 0, 13, 81, 116, 195, 188, 114, 101, 108, 109, 101, 116, 32, 13, 138, 13, 15, 14, 4, 1, 14, 195,
+			161, 14, 11, 13, 6, 195, 76, 242, 192, 13, 20, 4, 95, 51, 48, 17, 107, 108, 52, 10, 65, 37, 50, 119, 108, 72, 37, 49, 108, 0,
+			0, 11, 200, 84, 118, 65, 56, 18, 203, 61, 32, 13, 41, 6, 7, 195, 169, 16, 5, 14, 81, 113, 48, 109, 50, 23, 89, 111, 49, 91,
+			113, 81, 109, 91, 109, 49, 0, 13, 81, 115, 122, 195, 188, 107, 115, 195, 169, 103, 101, 115, 101, 107, 32, 24, 6, 7, 195, 169, 16, 5,
+			14, 81, 113, 48, 109, 50, 15, 83, 40, 47, 0, 13, 81, 102, 117, 116, 32, 9, 134, 7, 195, 169, 16, 5, 14, 13, 7, 196, 25, 85,
+			14, 36, 13, 10, 135, 15, 12, 3, 19, 195, 179, 11, 13, 9, 134, 20, 195, 161, 22, 15, 14, 13, 0, 19, 2, 95, 93, 88, 6, 114,
+			52, 115, 89, 110, 81, 55, 109, 47, 109, 91, 0, 27, 9, 134, 22, 195, 161, 18, 15, 13, 13, 10, 135, 22, 195, 161, 12, 10, 15, 14,
+			13, 0, 38, 67, 56, 17, 217, 50, 108, 79, 10, 6, 15, 65, 109, 81, 55, 109, 48, 109, 47, 113, 91, 47, 0, 13, 81, 109, 101, 103,
+			108, 101, 112, 101, 116, 195, 169, 115, 116, 32, 9, 198, 8, 85, 5, 28, 82, 192, 13, 9, 198, 64, 147, 12, 4, 224, 84, 13, 9, 198,
+			20, 195, 69, 56, 226, 64, 13, 14, 139, 20, 1, 12, 195, 161, 12, 13, 195, 161, 14, 25, 13, 6, 195, 56, 17, 217, 13, 0, 6, 195,
+			4, 64, 84, 13, 6, 195, 64, 84, 148, 13, 9, 134, 13, 195, 186, 12, 9, 11, 13, 6, 195, 76, 244, 148, 13, 6, 195, 56, 18, 192,
+			13, 0, 17, 4, 95, 226, 128, 148, 49, 84, 37, 52, 47, 65, 112, 50, 40, 89, 0, 11, 200, 24, 83, 153, 20, 113, 84, 88, 80, 13,
+			12, 137, 8, 1, 20, 195, 161, 12, 25, 2, 1, 13, 10, 135, 195, 161, 12, 12, 195, 179, 11, 13, 9, 134, 10, 195, 161, 18, 19, 26,
+			13, 13, 138, 11, 195, 182, 22, 5, 20, 197, 145, 5, 14, 13, 0, 23, 69, 77, 163, 203, 80, 16, 89, 39, 49, 47, 108, 23, 65, 109,
+			81, 0, 13, 81, 109, 101, 103, 32, 41, 6, 13, 195, 179, 4, 10, 1, 65, 115, 79, 12, 108, 23, 65, 109, 81, 84, 114, 55, 47, 39,
+			88, 37, 49, 0, 13, 81, 109, 101, 103, 118, 195, 161, 108, 116, 111, 122, 105, 107, 32, 13, 138, 5, 12, 195, 169, 18, 195, 169, 19, 18,
+			5, 13, 38, 69, 44, 86, 133, 48, 144, 49, 109, 88, 109, 55, 37, 23, 108, 6, 23, 88, 109, 50, 113, 49, 109, 47, 0, 13, 82, 97,
+			32, 122, 101, 110, 195, 169, 107, 101, 116, 32, 13, 138, 5, 12, 11, 5, 18, 195, 188, 12, 10, 5, 13, 12, 137, 8, 1, 19, 26, 14,
+			195, 161, 12, 20, 13, 8, 197, 4, 176, 82, 80, 16, 13, 12, 201, 72, 83, 132, 20, 194, 197, 104, 146, 192, 13, 12, 201, 24, 145, 217,
+			20, 195, 69, 76, 82, 192, 13, 9, 134, 10, 195, 161, 18, 14, 1, 13, 8, 197, 80, 20, 148, 60, 208, 13, 8, 197, 32, 149, 20, 20,
+			208, 13, 9, 134, 22, 195, 182, 12, 7, 25, 13, 0, 10, 2, 95, 96, 47, 39, 65, 48, 108, 0, 6, 195, 8, 18, 201, 13, 35, 70,
+			20, 208, 133, 72, 82, 192, 109, 65, 71, 109, 52, 109, 49, 23, 89, 114, 65, 114, 52, 108, 0, 13, 81, 115, 122, 195, 161, 109, 195, 161,
+			114, 97, 32, 9, 198, 48, 85, 143, 56, 226, 64, 13, 11, 136, 18, 195, 169, 19, 26, 195, 169, 14, 13, 0, 13, 138, 18, 195, 169, 19,
+			26, 12, 5, 20, 5, 11, 13, 10, 199, 60, 181, 1, 80, 226, 85, 44, 13, 10, 199, 80, 83, 5, 24, 243, 143, 44, 13, 0, 11, 200,
+			44, 83, 5, 80, 177, 90, 36, 176, 13, 12, 137, 2, 195, 186, 10, 20, 1, 20, 10, 1, 13, 0, 9, 134, 4, 195, 182, 6, 197, 145,
+			13, 13, 138, 195, 188, 7, 25, 22, 195, 169, 4, 10, 5, 13, 11, 136, 22, 195, 169, 7, 26, 195, 169, 19, 13, 19, 4, 95, 51, 48,
+			15, 107, 108, 52, 10, 65, 37, 50, 119, 108, 72, 37, 49, 0, 0, 17, 142, 20, 21, 12, 1, 10, 4, 15, 14, 15, 19, 20, 195, 179,
+			12, 13, 9, 198, 61, 37, 143, 77, 48, 76, 13, 13, 138, 3, 19, 15, 13, 1, 7, 18, 195, 179, 12, 13, 0, 10, 199, 40, 83, 12,
+			20, 113, 197, 48, 13, 18, 143, 6, 5, 12, 195, 188, 12, 22, 9, 26, 19, 7, 195, 161, 12, 20, 13, 0, 45, 13, 11, 1, 20, 5,
+			7, 195, 179, 18, 9, 195, 161, 2, 1, 49, 108, 47, 109, 81, 115, 52, 37, 114, 71, 108, 23, 91, 39, 52, 39, 55, 39, 65, 0, 13,
+			81, 115, 111, 114, 111, 108, 111, 109, 32, 10, 135, 11, 195, 182, 20, 195, 169, 19, 13, 8, 133, 197, 145, 18, 26, 9, 13, 7, 196, 80,
+			81, 217, 20, 13, 43, 76, 36, 225, 143, 72, 208, 84, 36, 181, 83, 56, 18, 192, 37, 50, 83, 39, 52, 10, 65, 108, 47, 37, 49, 40,
+			91, 50, 108, 49, 15, 49, 109, 55, 12, 0, 13, 81, 107, 101, 108, 108, 32, 15, 140, 20, 1, 12, 195, 161, 12, 11, 15, 26, 15, 20,
+			20, 13, 8, 133, 195, 169, 18, 26, 9, 13, 0, 9, 134, 1, 18, 195, 161, 14, 25, 13, 36, 8, 14, 5, 22, 5, 12, 195, 169, 19,
+			50, 109, 84, 109, 55, 113, 91, 23, 47, 113, 65, 114, 57, 108, 0, 13, 81, 116, 195, 169, 109, 195, 161, 106, 97, 32, 9, 134, 10, 195,
+			161, 18, 14, 9, 13, 0, 10, 135, 2, 5, 195, 173, 18, 14, 9, 13, 18, 143, 195, 161, 12, 12, 1, 20, 20, 1, 18, 20, 195, 161,
+			19, 18, 1, 13, 13, 138, 18, 195, 169, 19, 26, 12, 5, 20, 5, 20, 13, 9, 134, 195, 182, 19, 195, 169, 20, 13, 12, 4, 95, 7,
+			18, 22, 47, 39, 65, 48, 108, 0, 0, 9, 198, 44, 83, 12, 20, 225, 75, 13, 18, 143, 19, 26, 195, 169, 11, 8, 195, 161, 26, 195,
+			161, 2, 195, 179, 12, 13, 10, 135, 11, 195, 182, 18, 195, 169, 20, 13, 11, 136, 12, 195, 169, 14, 25, 5, 7, 5, 13, 10, 135, 10,
+			195, 161, 18, 8, 1, 20, 13, 10, 135, 11, 195, 182, 18, 195, 169, 20, 13, 0, 9, 198, 72, 83, 132, 20, 197, 0, 13, 11, 136, 18,
+			195, 169, 19, 26, 195, 169, 20, 13, 12, 137, 19, 15, 11, 1, 19, 195, 161, 7, 1, 13, 12, 137, 10, 5, 12, 12, 5, 13, 26, 197,
+			145, 13, 9, 134, 13, 195, 179, 4, 15, 14, 13, 0, 10, 135, 8, 15, 19, 19, 26, 195, 186, 13, 20, 145, 9, 14, 20, 195, 169, 26,
+			13, 195, 169, 14, 25, 5, 11, 14, 195, 169, 12, 13, 15, 140, 5, 12, 11, 195, 169, 16, 26, 5, 12, 195, 169, 19, 13, 8, 197, 44,
+			81, 4, 20, 224, 22, 0, 6, 195, 88, 17, 217, 72, 17, 142, 7, 25, 197, 177, 18, 197, 145, 4, 195, 169, 19, 5, 9, 20, 13, 12,
+			201, 52, 147, 137, 77, 165, 5, 72, 225, 75, 13, 6, 195, 24, 17, 217, 13, 7, 195, 88, 17, 217, 76, 8, 0, 10, 135, 8, 195, 179,
+			2, 15, 18, 20, 13, 14, 139, 22, 5, 26, 5, 20, 195, 169, 19, 195, 169, 20, 13, 0, 13, 138, 19, 26, 195, 179, 12, 1, 12, 10,
+			15, 14, 13, 10, 135, 15, 16, 3, 9, 195, 179, 11, 13, 10, 135, 22, 9, 4, 5, 195, 179, 11, 13, 11, 200, 37, 51, 69, 72, 85,
+			12, 20, 224, 13, 7, 196, 21, 164, 133, 56, 13, 10, 135, 11, 195, 182, 4, 195, 182, 19, 13, 0, 16, 141, 13, 197, 177, 11, 195, 182,
+			4, 195, 169, 19, 195, 169, 20, 13, 0, 9, 198, 24, 20, 1, 16, 244, 192, 13, 13, 138, 5, 12, 1, 4, 195, 179, 20, 195, 179, 12,
+			13, 21, 66, 97, 96, 47, 37, 88, 109, 50, 110, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 9, 198, 81, 81, 10, 4, 224,
+			75, 13, 48, 15, 10, 5, 12, 5, 14, 20, 11, 5, 26, 195, 169, 19, 195, 169, 20, 57, 109, 55, 109, 50, 47, 49, 109, 88, 113, 91,
+			113, 47, 23, 84, 114, 52, 57, 40, 49, 0, 13, 81, 118, 195, 161, 114, 106, 117, 107, 32, 18, 143, 20, 5, 12, 10, 5, 19, 195, 173,
+			20, 195, 169, 19, 195, 169, 20, 13, 10, 199, 36, 225, 15, 44, 243, 20, 4, 13, 12, 137, 19, 26, 195, 161, 12, 12, 10, 15, 14, 13,
+			0, 11, 200, 65, 35, 199, 72, 19, 66, 4, 224, 13, 10, 135, 12, 195, 169, 14, 25, 5, 7, 13, 0, 43, 73, 44, 20, 3, 76, 243,
+			1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 79, 108, 50, 116, 52, 115, 55, 0, 13, 81, 103, 121, 97, 110, 195,
+			186, 114, 195, 179, 108, 32, 45, 73, 44, 20, 3, 76, 243, 1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 47, 109,
+			52, 84, 109, 49, 52, 118, 55, 0, 13, 81, 116, 101, 114, 118, 101, 107, 114, 197, 145, 108, 32, 41, 73, 44, 20, 3, 76, 243, 1, 80,
+			244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 107, 112, 52, 109, 49, 109, 47, 0, 13, 81, 104, 195, 173, 114, 101, 107, 101,
+			116, 32, 58, 73, 44, 20, 3, 76, 243, 1, 80, 244, 192, 49, 108, 48, 76, 39, 55, 108, 47, 39, 91, 23, 71, 37, 88, 39, 67, 47,
+			108, 55, 108, 50, 91, 114, 81, 39, 49, 0, 13, 81, 98, 105, 122, 111, 110, 121, 116, 97, 108, 97, 110, 115, 195, 161, 103, 111, 107, 32,
+			12, 201, 44, 20, 3, 76, 243, 1, 80, 244, 192, 13, 8, 197, 76, 241, 15, 73, 64, 13, 0, 36, 6, 13, 195, 179, 4, 15, 20, 65,
+			115, 72, 39, 47, 23, 84, 114, 55, 108, 89, 47, 39, 65, 0, 13, 81, 118, 195, 161, 108, 97, 115, 122, 116, 111, 109, 32, 43, 70, 44,
+			83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 36, 23, 71, 37, 89, 47, 39, 89, 112, 47, 108, 50, 37, 0, 13, 81, 98, 105, 122,
+			116, 111, 115, 195, 173, 116, 97, 110, 105, 32, 34, 70, 44, 83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 23, 83, 37, 88, 109,
+			47, 50, 37, 0, 13, 81, 102, 105, 122, 101, 116, 110, 105, 32, 39, 70, 44, 83, 12, 20, 225, 64, 49, 109, 55, 12, 109, 50, 109, 23,
+			108, 6, 15, 48, 52, 39, 81, 52, 108, 65, 0, 13, 82, 97, 32, 112, 114, 111, 103, 114, 97, 109, 32, 37, 70, 44, 83, 12, 20, 225,
+			64, 49, 109, 55, 12, 109, 50, 109, 15, 49, 110, 84, 109, 47, 50, 37, 109, 0, 13, 81, 107, 195, 182, 118, 101, 116, 110, 105, 101, 32,
+			13, 202, 4, 194, 193, 48, 208, 90, 61, 69, 1, 44, 13, 17, 142, 2, 9, 26, 15, 20, 20, 19, 195, 161, 7, 20, 195, 179, 12, 13,
+			9, 198, 44, 83, 12, 20, 225, 64, 13, 0, 18, 2, 95, 123, 49, 6, 109, 88, 72, 118, 49, 108, 48, 76, 39, 91, 0, 27, 12, 4,
+			95, 4, 9, 1, 47, 52, 113, 65, 108, 0, 0, 15, 140, 20, 195, 182, 18, 22, 195, 169, 14, 14, 25, 5, 12, 13, 0, 20, 4, 95,
+			226, 128, 179, 72, 40, 48, 55, 108, 108, 48, 39, 89, 47, 52, 115, 83, 0, 8, 197, 105, 82, 1, 57, 64, 13, 0, 15, 4, 95, 226,
+			128, 178, 108, 48, 39, 89, 47, 52, 115, 83, 0, 10, 135, 11, 9, 195, 173, 18, 14, 9, 13, 0, 10, 199, 28, 243, 132, 60, 197, 78,
+			44, 13, 7, 132, 195, 179, 18, 1, 13, 0, 14, 4, 95, 226, 128, 176, 109, 88, 52, 109, 55, 113, 49, 0, 22, 68, 36, 112, 90, 4,
+			37, 81, 108, 88, 108, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 15, 140, 11, 195, 188, 12, 195, 182, 14, 1, 4, 195, 179, 20,
+			13, 0, 16, 2, 95, 125, 84, 6, 113, 81, 49, 108, 48, 76, 39, 91, 0, 27, 35, 12, 7, 5, 14, 5, 18, 195, 161, 3, 9, 195,
+			179, 19, 81, 109, 50, 109, 52, 114, 119, 37, 115, 91, 10, 6, 15, 39, 49, 0, 13, 81, 111, 107, 32, 12, 137, 195, 182, 18, 195, 182,
+			11, 195, 182, 12, 13, 9, 134, 2, 195, 161, 3, 19, 9, 13, 15, 140, 7, 5, 14, 5, 18, 195, 161, 3, 9, 195, 179, 19, 13, 9,
+			134, 195, 161, 12, 12, 10, 1, 13, 8, 197, 48, 18, 206, 4, 176, 13, 8, 197, 44, 81, 4, 36, 112, 22, 0, 20, 2, 95, 124, 83,
+			111, 81, 12, 118, 55, 109, 81, 109, 91, 84, 39, 50, 108, 55, 0, 9, 198, 32, 145, 199, 100, 82, 192, 13, 9, 198, 44, 86, 133, 48,
+			146, 192, 13, 9, 198, 40, 21, 129, 76, 192, 84, 13, 9, 198, 77, 68, 133, 77, 54, 128, 13, 0, 13, 138, 22, 195, 169, 7, 26, 197,
+			145, 4, 9, 11, 13, 15, 140, 195, 182, 19, 19, 26, 5, 10, 195, 182, 14, 14, 9, 13, 0, 11, 200, 8, 84, 218, 21, 33, 90, 56,
+			144, 13, 33, 72, 53, 85, 1, 80, 179, 218, 36, 176, 65, 40, 47, 108, 47, 49, 39, 88, 37, 49, 10, 6, 15, 65, 109, 81, 0, 13,
+			81, 109, 101, 103, 32, 11, 200, 88, 243, 129, 80, 179, 218, 56, 16, 13, 11, 200, 4, 192, 75, 84, 195, 137, 84, 176, 13, 11, 136, 9,
+			7, 195, 169, 14, 25, 5, 12, 13, 11, 200, 88, 243, 129, 80, 179, 218, 36, 176, 13, 11, 200, 53, 85, 1, 80, 179, 218, 36, 176, 13,
+			0, 22, 6, 13, 195, 161, 19, 18, 1, 65, 114, 91, 52, 108, 23, 37, 91, 0, 13, 81, 105, 115, 32, 11, 136, 9, 7, 195, 169, 14,
+			25, 5, 11, 13, 9, 134, 22, 195, 161, 18, 10, 1, 13, 10, 135, 9, 14, 11, 195, 161, 2, 2, 13, 12, 137, 1, 7, 7, 195, 179,
+			4, 15, 20, 20, 13, 12, 137, 195, 173, 18, 195, 179, 4, 15, 20, 20, 13, 0, 7, 66, 105, 48, 90, 113, 0, 9, 198, 88, 17, 217,
+			80, 242, 192, 13, 14, 139, 1, 12, 10, 1, 19, 19, 195, 161, 7, 18, 1, 13, 10, 135, 22, 9, 20, 195, 161, 2, 1, 13, 9, 198,
+			60, 197, 129, 76, 226, 64, 13, 18, 70, 53, 97, 217, 61, 54, 128, 109, 65, 84, 113, 79, 113, 39, 109, 89, 0, 0, 10, 199, 48, 83,
+			79, 56, 64, 78, 36, 13, 10, 135, 10, 5, 12, 195, 182, 12, 20, 13, 11, 136, 5, 19, 26, 11, 195, 182, 26, 5, 13, 22, 147, 20,
+			195, 182, 18, 22, 195, 169, 14, 25, 10, 1, 22, 1, 19, 12, 1, 20, 15, 20, 13, 11, 136, 9, 18, 15, 4, 195, 161, 2, 1, 13,
+			15, 140, 2, 195, 173, 18, 195, 179, 19, 195, 161, 7, 18, 1, 13, 10, 135, 8, 195, 173, 22, 15, 20, 20, 13, 0, 27, 5, 5, 12,
+			19, 197, 145, 109, 55, 91, 118, 10, 6, 15, 113, 84, 109, 50, 0, 13, 81, 195, 169, 118, 101, 110, 32, 38, 5, 5, 12, 19, 197, 145,
+			109, 55, 91, 118, 23, 91, 39, 52, 71, 108, 50, 114, 55, 12, 115, 0, 13, 81, 115, 111, 114, 98, 97, 110, 195, 161, 108, 108, 195, 179,
+			32, 57, 72, 24, 83, 13, 85, 64, 84, 56, 144, 83, 109, 55, 65, 40, 47, 108, 47, 50, 37, 23, 108, 6, 15, 47, 114, 52, 79, 108,
+			55, 114, 91, 39, 49, 39, 50, 0, 13, 82, 97, 32, 116, 195, 161, 114, 103, 121, 97, 108, 195, 161, 115, 111, 107, 111, 110, 32, 8, 133,
+			5, 12, 19, 197, 145, 13, 11, 200, 81, 83, 1, 40, 242, 206, 4, 176, 13, 7, 196, 88, 148, 197, 48, 13, 0, 12, 137, 21, 14, 9,
+			195, 179, 2, 195, 179, 12, 13, 31, 10, 19, 26, 195, 161, 13, 21, 14, 11, 18, 1, 89, 114, 65, 40, 50, 49, 52, 108, 10, 6, 15,
+			108, 88, 0, 13, 81, 97, 122, 32, 12, 201, 24, 144, 84, 4, 195, 203, 56, 18, 192, 13, 12, 137, 9, 14, 4, 195, 173, 20, 15, 20,
+			20, 13, 13, 138, 19, 26, 195, 161, 13, 21, 14, 11, 18, 1, 13, 12, 201, 16, 243, 7, 61, 166, 129, 56, 18, 192, 13, 13, 138, 9,
+			18, 195, 161, 14, 25, 195, 161, 2, 1, 13, 0, 13, 138, 3, 19, 1, 12, 195, 179, 4, 15, 20, 20, 13, 59, 12, 10, 5, 12, 5,
+			14, 20, 197, 145, 19, 5, 2, 2, 57, 109, 55, 109, 50, 47, 118, 91, 109, 71, 12, 23, 76, 108, 48, 108, 72, 113, 49, 107, 40, 55,
+			12, 114, 91, 0, 13, 81, 99, 115, 97, 112, 97, 100, 195, 169, 107, 104, 117, 108, 108, 195, 161, 115, 32, 17, 198, 72, 244, 211, 105, 83,
+			0, 13, 81, 102, 117, 116, 111, 116, 116, 32, 15, 140, 6, 9, 14, 1, 14, 19, 26, 195, 173, 18, 15, 26, 13, 16, 141, 19, 26, 5,
+			18, 11, 5, 26, 5, 20, 197, 177, 5, 11, 13, 0, 19, 144, 14, 25, 9, 12, 22, 195, 161, 14, 15, 19, 19, 195, 161, 7, 18, 1,
+			13, 13, 138, 5, 19, 26, 11, 195, 182, 26, 195, 182, 11, 13, 14, 139, 11, 15, 18, 195, 161, 2, 2, 18, 195, 179, 12, 13, 14, 139,
+			19, 26, 195, 161, 13, 195, 173, 20, 15, 20, 20, 13, 0, 47, 13, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 18, 1, 47, 114,
+			65, 39, 81, 108, 47, 114, 91, 52, 108, 23, 57, 39, 81, 39, 91, 40, 55, 47, 0, 13, 81, 106, 111, 103, 111, 115, 117, 108, 116, 32,
+			21, 6, 11, 195, 182, 14, 25, 22, 49, 110, 67, 84, 23, 37, 91, 0, 13, 81, 105, 115, 32, 20, 145, 13, 5, 7, 11, 195, 182, 26,
+			5, 12, 195, 173, 20, 195, 169, 19, 18, 5, 13, 0, 9, 198, 80, 20, 148, 4, 195, 65, 13, 11, 136, 20, 5, 18, 22, 195, 188, 14,
+			11, 13, 7, 132, 11, 195, 169, 11, 13, 0, 41, 16, 12, 5, 7, 11, 195, 169, 14, 25, 5, 12, 13, 5, 19, 5, 2, 2, 55, 109,
+			81, 49, 113, 67, 109, 55, 65, 109, 91, 109, 71, 12, 23, 108, 88, 0, 13, 81, 97, 122, 32, 18, 143, 20, 1, 18, 20, 195, 179, 26,
+			11, 15, 4, 195, 161, 19, 18, 1, 13, 0, 9, 134, 20, 195, 182, 13, 9, 11, 13, 19, 144, 14, 25, 9, 12, 22, 195, 161, 14, 195,
+			173, 20, 195, 161, 19, 18, 1, 13, 0, 8, 133, 195, 188, 26, 5, 13, 13, 10, 135, 6, 195, 169, 12, 14, 5, 11, 13, 9, 134, 14,
+			195, 169, 22, 5, 14, 13, 9, 134, 20, 195, 169, 18, 5, 14, 13, 0, 24, 6, 8, 195, 173, 18, 5, 13, 107, 112, 52, 109, 65, 23,
+			84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 10, 135, 12, 195, 169, 16, 10, 5, 14, 13, 0, 34, 9, 10, 195, 182, 8, 5, 20, 14,
+			5, 11, 57, 110, 107, 109, 47, 50, 109, 49, 23, 89, 115, 71, 108, 0, 13, 81, 115, 122, 195, 179, 98, 97, 32, 11, 136, 195, 169, 22,
+			5, 11, 2, 5, 14, 13, 12, 137, 13, 197, 177, 19, 15, 18, 14, 1, 11, 13, 9, 134, 13, 197, 177, 22, 5, 12, 13, 6, 195, 57,
+			147, 205, 13, 0, 16, 67, 53, 54, 144, 101, 109, 101, 115, 122, 112, 195, 169, 0, 29, 42, 9, 198, 44, 84, 133, 77, 65, 75, 13, 9,
+			134, 8, 195, 173, 18, 5, 11, 13, 13, 138, 13, 197, 177, 11, 195, 182, 4, 14, 5, 11, 13, 11, 136, 11, 195, 182, 22, 5, 20, 20,
+			5, 13, 9, 134, 197, 145, 18, 14, 5, 11, 13, 7, 132, 11, 195, 169, 13, 13, 6, 195, 53, 64, 64, 17, 0, 26, 5, 22, 195, 161,
+			7, 25, 84, 114, 79, 23, 113, 81, 109, 47, 12, 0, 13, 81, 195, 169, 103, 101, 116, 116, 32, 41, 10, 13, 5, 7, 25, 195, 169, 11,
+			2, 5, 14, 65, 109, 79, 113, 49, 71, 109, 50, 23, 84, 114, 52, 107, 108, 47, 115, 0, 13, 81, 118, 195, 161, 114, 104, 97, 116, 195,
+			179, 32, 10, 135, 20, 5, 18, 13, 195, 169, 11, 13, 15, 140, 20, 195, 161, 18, 19, 1, 4, 1, 12, 13, 1, 20, 13, 13, 138, 15,
+			18, 19, 26, 195, 161, 7, 2, 1, 14, 13, 8, 133, 22, 195, 161, 7, 25, 13, 7, 196, 48, 18, 201, 44, 13, 0, 9, 198, 32, 20,
+			131, 60, 195, 137, 13, 12, 137, 195, 186, 7, 25, 20, 197, 177, 14, 20, 13, 13, 138, 7, 25, 195, 161, 18, 20, 15, 20, 20, 1, 13,
+			6, 195, 88, 148, 218, 13, 9, 134, 20, 195, 161, 18, 7, 25, 13, 7, 132, 13, 195, 169, 7, 13, 18, 143, 3, 19, 195, 188, 20, 195,
+			182, 18, 20, 195, 182, 11, 195, 182, 14, 22, 0, 14, 139, 20, 1, 19, 26, 195, 173, 20, 15, 20, 20, 1, 13, 12, 137, 20, 21, 4,
+			10, 195, 161, 20, 15, 11, 13, 17, 66, 97, 128, 107, 116, 89, 12, 108, 55, 0, 44, 42, 81, 97, 108, 32, 23, 67, 97, 98, 73, 47,
+			37, 88, 109, 50, 107, 113, 47, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 34, 71, 32, 18, 148, 61, 69, 1, 44, 107, 108, 57,
+			47, 39, 47, 12, 108, 49, 23, 84, 113, 81, 52, 109, 0, 13, 81, 118, 195, 169, 103, 114, 101, 32, 13, 138, 19, 26, 195, 188, 12, 5,
+			20, 14, 5, 11, 13, 14, 203, 65, 35, 199, 72, 19, 74, 4, 146, 203, 4, 192, 13, 69, 13, 195, 186, 20, 13, 21, 20, 1, 20, 195,
+			179, 2, 1, 14, 116, 47, 65, 40, 47, 108, 47, 115, 71, 108, 50, 23, 37, 91, 23, 108, 89, 47, 23, 47, 108, 50, 114, 76, 39, 57,
+			57, 57, 114, 49, 0, 13, 83, 105, 115, 32, 97, 122, 116, 32, 116, 97, 110, 195, 161, 99, 115, 111, 108, 106, 195, 161, 107, 32, 16, 141,
+			12, 195, 161, 20, 15, 7, 1, 20, 195, 179, 2, 1, 14, 13, 10, 199, 16, 243, 7, 61, 165, 1, 44, 13, 6, 195, 85, 64, 76, 13,
+			0, 14, 139, 11, 195, 182, 22, 5, 20, 5, 12, 14, 5, 11, 13, 40, 14, 19, 26, 5, 18, 26, 197, 145, 4, 195, 169, 19, 2, 5,
+			14, 89, 109, 52, 88, 118, 72, 113, 91, 71, 109, 50, 23, 49, 109, 55, 12, 0, 13, 81, 107, 101, 108, 108, 32, 13, 138, 195, 169, 12,
+			5, 20, 195, 169, 2, 5, 14, 13, 13, 138, 20, 5, 13, 5, 20, 197, 145, 2, 5, 14, 13, 11, 136, 5, 19, 26, 11, 195, 182, 26,
+			20, 13, 22, 67, 97, 134, 0, 107, 108, 52, 65, 37, 50, 119, 12, 35, 55, 0, 44, 42, 81, 97, 108, 32, 0, 7, 195, 48, 84, 218,
+			72, 22, 30, 67, 48, 84, 218, 55, 109, 89, 23, 108, 57, 114, 50, 55, 39, 47, 12, 0, 13, 81, 97, 106, 195, 161, 110, 108, 111, 116,
+			116, 32, 25, 8, 8, 9, 19, 19, 26, 195, 188, 11, 107, 37, 89, 12, 111, 49, 23, 109, 55, 0, 13, 81, 101, 108, 32, 9, 134, 22,
+			195, 161, 7, 14, 9, 13, 13, 138, 20, 195, 161, 13, 15, 7, 1, 20, 20, 1, 13, 11, 136, 22, 195, 169, 12, 10, 195, 188, 11, 13,
+			8, 133, 6, 195, 188, 19, 20, 13, 0, 63, 14, 20, 5, 18, 22, 5, 26, 195, 169, 19, 195, 169, 22, 5, 12, 47, 109, 34, 84, 109,
+			88, 113, 91, 113, 84, 109, 55, 23, 83, 39, 81, 55, 108, 55, 49, 39, 88, 115, 23, 119, 113, 81, 0, 13, 82, 102, 111, 103, 108, 97,
+			108, 107, 111, 122, 195, 179, 32, 99, 195, 169, 103, 32, 9, 198, 37, 51, 69, 73, 97, 64, 13, 9, 198, 80, 83, 5, 57, 65, 64, 13,
+			12, 4, 95, 35, 51, 50, 89, 115, 49, 110, 88, 0, 0, 12, 201, 32, 149, 129, 80, 179, 218, 61, 69, 0, 13, 17, 142, 11, 195, 169,
+			16, 26, 197, 145, 4, 8, 5, 20, 14, 5, 11, 13, 16, 141, 20, 5, 18, 5, 12, 195, 169, 19, 195, 169, 2, 5, 14, 13, 16, 141,
+			13, 195, 169, 18, 20, 195, 169, 11, 195, 169, 2, 5, 14, 13, 0, 10, 135, 20, 197, 145, 12, 195, 188, 11, 13, 0, 18, 143, 20, 195,
+			182, 18, 20, 195, 169, 14, 5, 20, 195, 169, 2, 5, 14, 13, 18, 143, 13, 5, 7, 11, 195, 182, 20, 195, 169, 19, 195, 169, 2, 5,
+			14, 13, 18, 143, 19, 195, 188, 12, 12, 25, 5, 19, 26, 20, 197, 145, 2, 5, 14, 13, 11, 136, 9, 7, 1, 26, 19, 195, 161, 7,
+			13, 0, 21, 146, 22, 9, 19, 19, 26, 1, 20, 195, 169, 18, 195, 169, 19, 195, 169, 22, 5, 12, 13, 12, 137, 2, 5, 12, 197, 145,
+			12, 195, 188, 11, 13, 9, 198, 40, 83, 5, 105, 65, 64, 13, 9, 198, 44, 20, 3, 76, 243, 20, 13, 0, 9, 198, 8, 83, 69, 57,
+			65, 75, 13, 9, 134, 195, 169, 12, 14, 5, 11, 13, 13, 138, 8, 5, 12, 25, 26, 5, 20, 195, 188, 11, 13, 10, 135, 11, 195, 173,
+			22, 195, 188, 12, 13, 11, 136, 14, 195, 169, 8, 195, 161, 14, 25, 13, 23, 67, 97, 98, 64, 47, 37, 88, 109, 50, 107, 108, 47, 12,
+			108, 55, 0, 44, 42, 81, 97, 108, 32, 26, 67, 97, 98, 64, 47, 37, 88, 109, 50, 107, 108, 47, 39, 72, 37, 49, 37, 81, 0, 44,
+			42, 81, 105, 103, 32, 0, 7, 196, 21, 164, 133, 76, 13, 11, 200, 77, 160, 86, 5, 160, 84, 61, 64, 13, 18, 143, 13, 9, 14, 9,
+			19, 26, 20, 5, 18, 5, 12, 14, 195, 182, 11, 13, 12, 137, 2, 195, 188, 14, 20, 5, 20, 14, 9, 13, 26, 67, 96, 150, 0, 47,
+			37, 88, 109, 50, 49, 37, 55, 109, 50, 119, 12, 109, 55, 0, 44, 42, 81, 101, 108, 32, 0, 9, 134, 12, 195, 169, 16, 22, 5, 13,
+			12, 137, 15, 18, 19, 26, 195, 161, 7, 15, 20, 13, 8, 197, 64, 243, 148, 60, 176, 13, 0, 9, 198, 32, 83, 25, 21, 162, 64, 13,
+			9, 198, 40, 83, 5, 57, 66, 64, 13, 0, 11, 136, 6, 5, 8, 195, 169, 18, 2, 5, 13, 13, 138, 13, 21, 14, 11, 195, 161, 19,
+			14, 1, 11, 13, 15, 140, 22, 195, 161, 12, 20, 15, 26, 20, 1, 20, 14, 9, 13, 14, 139, 7, 1, 26, 4, 1, 19, 195, 161, 7,
+			15, 20, 13, 13, 138, 22, 195, 161, 12, 12, 1, 12, 14, 1, 11, 13, 10, 135, 20, 1, 12, 195, 161, 12, 20, 13, 8, 133, 6, 15,
+			11, 195, 186, 13, 10, 199, 20, 197, 5, 72, 161, 68, 80, 13, 6, 195, 64, 84, 212, 13, 8, 195, 53, 66, 64, 17, 42, 42, 0, 12,
+			137, 19, 26, 5, 18, 26, 197, 145, 10, 5, 13, 11, 136, 10, 15, 7, 195, 161, 22, 1, 12, 13, 18, 143, 18, 5, 14, 4, 5, 12,
+			12, 5, 14, 5, 19, 19, 195, 169, 7, 13, 0, 10, 135, 16, 15, 12, 3, 195, 161, 14, 13, 31, 9, 11, 195, 169, 19, 26, 195, 188,
+			12, 20, 49, 113, 89, 111, 55, 47, 23, 52, 115, 55, 108, 0, 13, 81, 114, 195, 179, 108, 97, 32, 12, 137, 20, 195, 169, 13, 195, 161,
+			22, 1, 12, 13, 8, 197, 28, 22, 132, 4, 112, 13, 9, 198, 52, 81, 212, 84, 66, 129, 13, 9, 198, 24, 241, 204, 4, 194, 129, 13,
+			16, 141, 13, 195, 169, 12, 20, 195, 179, 19, 195, 161, 7, 15, 20, 13, 11, 136, 20, 195, 173, 16, 21, 19, 15, 11, 13, 12, 137, 11,
+			9, 20, 1, 12, 195, 161, 12, 20, 13, 12, 137, 11, 195, 169, 19, 26, 195, 188, 12, 20, 13, 7, 132, 11, 195, 169, 19, 13, 9, 134,
+			195, 182, 19, 19, 26, 5, 13, 0, 64, 17, 195, 161, 12, 12, 1, 13, 20, 9, 20, 11, 195, 161, 18, 19, 195, 161, 7, 35, 55, 12,
+			108, 65, 47, 37, 47, 49, 114, 52, 91, 114, 81, 23, 47, 109, 34, 84, 109, 88, 109, 47, 113, 52, 118, 55, 0, 13, 81, 116, 101, 114,
+			118, 101, 122, 101, 116, 195, 169, 114, 197, 145, 108, 32, 6, 195, 4, 67, 129, 13, 9, 198, 32, 148, 132, 21, 66, 64, 13, 9, 198, 52,
+			243, 132, 81, 82, 192, 13, 7, 132, 11, 195, 169, 18, 13, 0, 12, 137, 20, 5, 18, 13, 195, 169, 2, 5, 14, 13, 9, 198, 40, 83,
+			5, 57, 66, 75, 13, 13, 138, 9, 19, 11, 15, 12, 195, 161, 19, 15, 11, 13, 13, 67, 5, 67, 64, 114, 47, 113, 109, 65, 0, 42,
+			42, 0, 9, 134, 195, 173, 7, 195, 169, 18, 13, 13, 138, 19, 5, 18, 5, 7, 195, 169, 2, 5, 14, 13, 10, 135, 2, 5, 14, 14,
+			195, 188, 11, 13, 17, 142, 11, 9, 195, 161, 12, 12, 195, 173, 20, 195, 161, 19, 15, 14, 13, 11, 136, 22, 1, 12, 195, 179, 19, 21,
+			12, 13, 15, 140, 20, 1, 18, 20, 1, 12, 13, 195, 161, 22, 1, 12, 13, 11, 136, 4, 18, 195, 161, 7, 21, 12, 20, 13, 7, 132,
+			11, 195, 169, 16, 13, 0, 17, 67, 80, 84, 218, 47, 109, 89, 15, 49, 37, 0, 13, 81, 107, 105, 32, 17, 142, 11, 195, 182, 18, 195,
+			188, 12, 13, 195, 169, 14, 25, 5, 9, 13, 6, 195, 80, 84, 218, 13, 0, 20, 145, 2, 9, 26, 15, 14, 25, 20, 1, 12, 1, 14,
+			19, 195, 161, 7, 15, 11, 13, 13, 138, 195, 182, 18, 195, 182, 11, 195, 182, 12, 20, 13, 13, 138, 11, 195, 182, 26, 20, 21, 4, 15,
+			20, 20, 13, 9, 198, 20, 118, 69, 80, 83, 64, 13, 0, 10, 199, 77, 162, 210, 37, 5, 5, 80, 13, 0, 18, 143, 13, 5, 7, 19,
+			26, 15, 18, 195, 173, 20, 195, 161, 19, 15, 11, 13, 19, 144, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 195, 161, 22, 1, 12,
+			13, 12, 137, 13, 197, 177, 11, 195, 182, 4, 197, 145, 13, 7, 132, 11, 195, 169, 20, 13, 0, 20, 145, 20, 1, 12, 195, 161, 12, 11,
+			15, 26, 195, 179, 10, 195, 161, 22, 1, 12, 13, 18, 143, 13, 1, 7, 25, 1, 18, 15, 18, 19, 26, 195, 161, 7, 15, 14, 13, 12,
+			137, 22, 1, 19, 195, 161, 18, 14, 1, 16, 20, 0, 21, 146, 195, 161, 12, 12, 1, 13, 20, 9, 20, 11, 195, 161, 18, 195, 161, 22,
+			1, 12, 13, 19, 144, 11, 195, 182, 26, 12, 5, 13, 195, 169, 14, 25, 195, 169, 2, 5, 14, 13, 7, 132, 7, 195, 161, 26, 13, 6,
+			195, 4, 67, 137, 13, 0, 11, 136, 9, 10, 5, 19, 26, 20, 197, 145, 13, 40, 8, 11, 195, 182, 18, 195, 188, 12, 9, 49, 110, 52,
+			111, 55, 37, 23, 110, 89, 12, 109, 81, 71, 118, 55, 0, 13, 81, 195, 182, 115, 115, 122, 101, 103, 98, 197, 145, 108, 32, 24, 4, 5,
+			12, 195, 169, 109, 55, 113, 23, 84, 109, 47, 37, 49, 0, 13, 81, 118, 101, 116, 105, 107, 32, 7, 132, 5, 12, 195, 169, 13, 0, 7,
+			196, 81, 81, 15, 44, 76, 44, 6, 18, 1, 14, 7, 195, 186, 52, 108, 50, 81, 116, 23, 47, 37, 89, 47, 84, 37, 91, 109, 55, 118,
+			57, 109, 0, 13, 81, 116, 105, 115, 122, 116, 118, 105, 115, 101, 108, 197, 145, 106, 101, 32, 11, 136, 22, 195, 161, 7, 25, 1, 9, 20,
+			13, 0, 12, 201, 24, 145, 217, 20, 195, 69, 105, 65, 84, 13, 16, 141, 22, 195, 169, 12, 5, 13, 195, 169, 14, 25, 195, 169, 20, 13,
+			0, 0, 10, 135, 2, 1, 14, 195, 161, 14, 20, 13, 9, 134, 195, 173, 18, 14, 1, 11, 13, 11, 136, 20, 195, 161, 13, 1, 4, 20,
+			1, 13, 6, 195, 9, 34, 84, 13, 10, 135, 6, 18, 195, 161, 19, 26, 20, 13, 0, 13, 138, 195, 161, 12, 12, 195, 161, 19, 2, 1,
+			14, 13, 8, 133, 14, 195, 161, 12, 1, 13, 0, 41, 8, 11, 195, 182, 14, 25, 22, 5, 11, 49, 110, 67, 84, 109, 49, 23, 55, 114,
+			47, 107, 108, 47, 39, 108, 49, 0, 13, 81, 108, 195, 161, 116, 104, 97, 116, 195, 179, 97, 107, 32, 26, 69, 44, 148, 197, 8, 32, 49,
+			37, 91, 12, 109, 71, 12, 23, 109, 91, 118, 0, 13, 81, 101, 115, 197, 145, 32, 13, 138, 5, 13, 12, 195, 173, 20, 5, 20, 20, 5,
+			13, 11, 136, 195, 161, 18, 21, 12, 14, 1, 11, 13, 11, 136, 11, 195, 182, 14, 25, 22, 5, 11, 13, 0, 11, 136, 22, 9, 20, 195,
+			161, 2, 1, 14, 13, 33, 70, 60, 193, 1, 49, 32, 64, 39, 55, 72, 108, 55, 52, 108, 6, 15, 71, 40, 49, 12, 108, 50, 0, 13,
+			81, 98, 117, 107, 107, 97, 110, 32, 14, 139, 8, 15, 26, 26, 195, 161, 20, 5, 20, 20, 5, 13, 13, 138, 20, 1, 18, 9, 6, 195,
+			161, 22, 1, 12, 13, 12, 137, 12, 195, 169, 20, 5, 26, 14, 5, 11, 13, 14, 139, 195, 161, 12, 12, 195, 173, 20, 15, 20, 20, 1,
+			13, 9, 198, 60, 193, 1, 49, 32, 64, 13, 0, 14, 139, 4, 15, 2, 195, 161, 19, 195, 161, 22, 1, 12, 13, 12, 137, 6, 15, 18,
+			13, 195, 161, 2, 1, 14, 13, 16, 141, 11, 195, 169, 18, 4, 195, 169, 19, 5, 11, 2, 5, 14, 13, 51, 9, 6, 15, 18, 13, 195,
+			161, 2, 1, 14, 83, 39, 52, 65, 114, 71, 108, 50, 23, 108, 6, 15, 47, 109, 52, 84, 109, 88, 109, 47, 71, 109, 50, 0, 13, 82,
+			97, 32, 116, 101, 114, 118, 101, 122, 101, 116, 98, 101, 110, 32, 6, 195, 20, 197, 128, 13, 9, 198, 29, 144, 76, 60, 115, 211, 13, 16,
+			141, 11, 21, 20, 1, 20, 195, 161, 19, 15, 11, 2, 1, 14, 13, 8, 4, 95, 35, 45, 5, 109, 0, 0, 32, 7, 19, 26, 195, 179,
+			12, 195, 179, 89, 115, 55, 115, 23, 72, 110, 50, 47, 113, 91, 0, 13, 81, 100, 195, 182, 110, 116, 195, 169, 115, 32, 14, 139, 20, 195,
+			161, 18, 7, 25, 1, 12, 14, 1, 11, 13, 38, 7, 19, 26, 195, 179, 12, 195, 179, 89, 115, 55, 115, 23, 57, 108, 84, 108, 91, 55,
+			108, 47, 39, 47, 0, 13, 81, 106, 97, 118, 97, 115, 108, 97, 116, 111, 116, 32, 13, 138, 11, 5, 18, 5, 20, 195, 169, 2, 5, 14,
+			13, 7, 196, 81, 81, 15, 52, 13, 10, 135, 19, 26, 195, 179, 12, 195, 179, 13, 0, 14, 139, 8, 1, 20, 195, 161, 19, 195, 161, 2,
+			1, 14, 13, 15, 140, 195, 182, 19, 19, 26, 5, 195, 188, 12, 14, 5, 11, 13, 8, 197, 20, 193, 71, 21, 64, 13, 8, 197, 40, 241,
+			193, 37, 64, 13, 16, 141, 18, 195, 169, 19, 26, 12, 5, 7, 195, 169, 22, 5, 12, 13, 8, 197, 57, 147, 205, 77, 160, 13, 9, 134,
+			20, 195, 182, 13, 14, 9, 13, 8, 197, 41, 85, 15, 81, 64, 13, 0, 15, 140, 195, 169, 18, 20, 5, 12, 13, 195, 169, 2, 5, 14,
+			13, 18, 143, 11, 9, 5, 7, 195, 169, 19, 26, 195, 173, 20, 5, 20, 20, 5, 13, 15, 140, 21, 20, 1, 12, 22, 195, 161, 14, 25,
+			2, 1, 14, 13, 12, 137, 19, 26, 5, 18, 4, 195, 161, 9, 7, 22, 0, 72, 73, 24, 83, 142, 80, 20, 148, 61, 69, 0, 83, 109,
+			50, 12, 47, 108, 52, 47, 39, 47, 12, 23, 37, 91, 49, 39, 55, 114, 49, 23, 65, 111, 49, 110, 47, 12, 109, 47, 113, 91, 113, 47,
+			0, 13, 82, 105, 115, 107, 111, 108, 195, 161, 107, 32, 109, 197, 177, 107, 195, 182, 100, 116, 101, 116, 195, 169, 115, 195, 169, 116, 32, 16,
+			141, 20, 5, 11, 9, 14, 20, 5, 20, 195, 169, 2, 5, 14, 13, 13, 138, 9, 7, 1, 26, 19, 195, 161, 7, 15, 19, 13, 16, 141,
+			2, 197, 177, 14, 20, 5, 20, 20, 195, 169, 2, 5, 14, 13, 9, 134, 22, 5, 12, 195, 188, 11, 13, 6, 195, 29, 5, 64, 17, 9,
+			4, 95, 35, 45, 1, 108, 0, 21, 0, 0, 8, 197, 4, 64, 84, 61, 64, 13, 11, 136, 14, 25, 195, 186, 10, 20, 195, 179, 13, 16,
+			141, 22, 195, 161, 12, 20, 15, 26, 1, 20, 2, 195, 179, 12, 13, 20, 145, 19, 20, 18, 1, 20, 195, 169, 7, 9, 195, 161, 10, 195,
+			161, 22, 1, 12, 13, 11, 136, 19, 26, 20, 18, 195, 161, 10, 11, 13, 0, 19, 144, 11, 195, 169, 16, 22, 9, 19, 5, 12, 5, 20,
+			195, 169, 2, 5, 14, 13, 19, 144, 1, 12, 11, 1, 12, 13, 1, 26, 195, 161, 19, 195, 161, 2, 1, 14, 13, 12, 137, 10, 5, 12,
+			5, 14, 19, 195, 169, 7, 13, 12, 137, 8, 5, 12, 25, 9, 19, 195, 169, 7, 13, 0, 28, 5, 20, 195, 182, 2, 2, 47, 110, 71,
+			12, 23, 39, 52, 89, 114, 81, 0, 13, 81, 111, 114, 115, 122, 195, 161, 103, 32, 79, 5, 20, 195, 182, 2, 2, 47, 110, 71, 12, 23,
+			107, 109, 57, 109, 50, 23, 89, 108, 49, 108, 72, 39, 88, 37, 49, 23, 83, 109, 55, 23, 108, 23, 83, 109, 55, 107, 118, 88, 109, 47,
+			0, 13, 85, 104, 101, 108, 121, 101, 110, 32, 115, 122, 97, 107, 97, 100, 111, 122, 105, 107, 32, 102, 101, 108, 32, 97, 32, 102, 101, 108,
+			104, 197, 145, 122, 101, 116, 32, 49, 5, 20, 195, 182, 2, 2, 47, 110, 71, 12, 23, 83, 109, 55, 107, 118, 23, 84, 108, 55, 115, 89,
+			112, 50, 117, 0, 13, 82, 102, 101, 108, 104, 197, 145, 32, 118, 97, 108, 195, 179, 115, 122, 195, 173, 110, 197, 177, 32, 26, 67, 85, 64,
+			84, 40, 47, 108, 47, 15, 49, 108, 48, 39, 47, 12, 0, 13, 81, 107, 97, 112, 111, 116, 116, 32, 8, 133, 20, 195, 182, 2, 2, 13,
+			0, 9, 198, 80, 17, 207, 104, 21, 0, 13, 6, 195, 85, 64, 83, 13, 7, 196, 4, 197, 68, 80, 13, 7, 196, 81, 81, 10, 4, 13,
+			9, 134, 14, 25, 1, 11, 195, 186, 13, 7, 196, 81, 81, 14, 36, 13, 0, 8, 197, 48, 84, 218, 20, 176, 72, 26, 5, 22, 195, 161,
+			12, 20, 84, 114, 55, 47, 23, 84, 39, 55, 50, 108, 0, 13, 81, 118, 111, 108, 110, 97, 32, 8, 197, 80, 81, 217, 20, 176, 13, 22,
+			133, 22, 195, 161, 12, 20, 13, 81, 104, 105, 118, 97, 116, 97, 108, 111, 115, 115, 195, 161, 32, 9, 134, 11, 195, 182, 26, 2, 5, 13,
+			8, 133, 22, 195, 161, 12, 20, 13, 0, 9, 198, 4, 176, 82, 41, 82, 192, 13, 0, 12, 137, 195, 179, 18, 195, 161, 11, 2, 1, 14,
+			13, 12, 137, 22, 9, 12, 195, 161, 7, 2, 1, 14, 13, 9, 134, 195, 182, 14, 14, 5, 11, 13, 6, 195, 32, 244, 16, 13, 10, 4,
+			95, 35, 45, 9, 109, 37, 0, 21, 0, 43, 68, 80, 17, 202, 4, 47, 108, 81, 57, 108, 23, 37, 91, 23, 76, 108, 47, 55, 108, 49,
+			39, 88, 37, 49, 0, 13, 82, 105, 115, 32, 99, 115, 97, 116, 108, 97, 107, 111, 122, 105, 107, 32, 7, 196, 80, 17, 202, 4, 13, 11,
+			200, 52, 243, 132, 32, 21, 10, 84, 176, 13, 0, 10, 135, 11, 195, 169, 18, 10, 5, 14, 13, 12, 137, 195, 169, 18, 4, 5, 11, 5,
+			12, 20, 13, 14, 139, 5, 12, 5, 13, 26, 197, 145, 11, 2, 5, 14, 13, 9, 134, 19, 195, 161, 22, 2, 1, 13, 12, 201, 28, 243,
+			132, 60, 192, 84, 80, 19, 0, 13, 15, 140, 20, 5, 19, 20, 195, 188, 12, 5, 20, 14, 5, 11, 13, 9, 134, 13, 195, 186, 12, 22,
+			1, 13, 8, 197, 88, 148, 211, 104, 16, 13, 0, 10, 135, 22, 9, 20, 195, 161, 10, 1, 13, 15, 140, 19, 26, 195, 182, 22, 5, 7,
+			5, 11, 2, 5, 14, 13, 42, 8, 6, 5, 12, 195, 169, 2, 5, 14, 83, 109, 55, 113, 71, 109, 50, 23, 114, 55, 107, 108, 47, 6,
+			15, 71, 6, 109, 0, 13, 82, 195, 161, 108, 108, 104, 97, 116, 32, 98, 101, 32, 0, 23, 7, 19, 26, 195, 179, 22, 1, 12, 89, 115,
+			84, 108, 55, 23, 108, 88, 0, 13, 81, 97, 122, 32, 16, 141, 11, 15, 14, 3, 5, 16, 3, 9, 195, 179, 2, 1, 14, 13, 10, 135,
+			19, 26, 195, 179, 22, 1, 12, 13, 16, 141, 8, 5, 12, 25, 19, 195, 169, 7, 5, 11, 2, 5, 14, 13, 10, 135, 19, 26, 195, 179,
+			22, 1, 12, 13, 7, 132, 1, 12, 195, 161, 13, 0, 31, 70, 77, 163, 198, 81, 97, 82, 89, 39, 83, 47, 84, 109, 52, 23, 50, 109,
+			84, 113, 47, 0, 13, 81, 110, 101, 118, 195, 169, 116, 32, 12, 137, 14, 1, 16, 20, 195, 161, 18, 2, 1, 13, 11, 200, 53, 85, 15,
+			28, 21, 10, 84, 176, 13, 11, 200, 24, 83, 11, 21, 33, 83, 56, 144, 13, 11, 200, 20, 193, 143, 28, 17, 20, 4, 176, 13, 0, 9,
+			134, 11, 5, 26, 4, 197, 145, 13, 0, 17, 142, 22, 195, 173, 22, 13, 195, 161, 14, 25, 1, 9, 22, 1, 12, 13, 19, 144, 10, 15,
+			7, 19, 26, 1, 2, 195, 161, 12, 25, 15, 11, 2, 1, 14, 13, 0, 14, 203, 57, 145, 82, 76, 19, 153, 4, 115, 203, 72, 16, 13,
+			10, 199, 24, 147, 13, 20, 178, 197, 48, 13, 10, 199, 77, 161, 82, 36, 229, 5, 52, 13, 9, 134, 20, 195, 173, 16, 21, 19, 13, 0,
+			12, 137, 11, 195, 182, 20, 5, 14, 4, 197, 145, 13, 11, 136, 6, 5, 8, 195, 169, 18, 5, 20, 13, 0, 13, 138, 6, 5, 12, 195,
+			188, 7, 25, 5, 12, 9, 13, 12, 201, 57, 146, 76, 5, 66, 207, 104, 245, 20, 13, 0, 13, 138, 22, 195, 169, 4, 5, 12, 13, 195,
+			169, 20, 13, 13, 138, 19, 26, 195, 161, 13, 12, 195, 161, 9, 20, 13, 9, 198, 4, 194, 207, 80, 245, 20, 13, 0, 0, 27, 68, 81,
+			81, 20, 4, 47, 40, 47, 12, 108, 6, 15, 84, 39, 55, 50, 108, 0, 13, 81, 118, 111, 108, 110, 97, 32, 47, 12, 11, 195, 169, 18,
+			4, 197, 145, 195, 173, 22, 5, 20, 49, 113, 52, 72, 118, 112, 84, 109, 47, 23, 49, 113, 89, 112, 47, 109, 50, 37, 0, 13, 81, 107,
+			195, 169, 115, 122, 195, 173, 116, 101, 110, 105, 32, 49, 12, 11, 195, 169, 18, 4, 197, 145, 195, 173, 22, 5, 20, 49, 113, 52, 72, 118,
+			112, 84, 109, 47, 23, 49, 113, 89, 112, 47, 109, 50, 109, 49, 0, 13, 81, 107, 195, 169, 115, 122, 195, 173, 116, 101, 110, 101, 107, 32,
+			9, 198, 12, 146, 204, 60, 229, 0, 13, 15, 140, 11, 195, 169, 18, 4, 197, 145, 195, 173, 22, 5, 20, 13, 7, 196, 81, 81, 20, 4,
+			13, 8, 133, 6, 5, 12, 195, 169, 13, 0, 8, 197, 48, 84, 218, 20, 192, 72, 9, 198, 24, 244, 132, 84, 195, 137, 13, 11, 136, 20,
+			1, 18, 20, 19, 195, 161, 11, 13, 24, 149, 195, 188, 7, 25, 6, 5, 12, 5, 11, 36, 21, 14, 19, 20, 18, 5, 19, 19, 5, 14,
+			4, 13, 9, 198, 24, 83, 20, 20, 227, 137, 13, 9, 198, 32, 83, 25, 21, 163, 137, 13, 9, 198, 24, 244, 132, 84, 195, 137, 13, 9,
+			198, 32, 83, 25, 21, 163, 137, 13, 13, 138, 19, 26, 1, 11, 195, 169, 18, 20, 197, 145, 13, 0, 36, 7, 5, 12, 14, 195, 182, 11,
+			9, 109, 55, 50, 110, 49, 37, 23, 48, 39, 89, 47, 52, 115, 55, 0, 13, 81, 112, 111, 115, 122, 116, 114, 195, 179, 108, 32, 27, 9,
+			2, 195, 161, 14, 20, 19, 195, 161, 11, 71, 114, 50, 76, 114, 49, 23, 118, 47, 0, 13, 81, 197, 145, 116, 32, 7, 132, 13, 195, 161,
+			10, 20, 0, 0, 13, 138, 195, 161, 12, 12, 1, 16, 15, 20, 195, 186, 13, 7, 196, 84, 118, 65, 56, 13, 23, 7, 195, 161, 19, 20,
+			195, 161, 11, 114, 91, 47, 114, 49, 23, 109, 55, 0, 13, 81, 101, 108, 32, 7, 196, 40, 241, 207, 44, 13, 0, 16, 141, 5, 7, 195,
+			169, 19, 26, 19, 195, 169, 7, 195, 169, 20, 13, 11, 136, 8, 195, 173, 22, 10, 195, 161, 11, 13, 38, 69, 12, 146, 204, 60, 224, 119,
+			37, 49, 55, 39, 50, 23, 47, 108, 55, 114, 55, 107, 108, 47, 115, 0, 13, 81, 116, 97, 108, 195, 161, 108, 104, 97, 116, 195, 179, 32,
+			13, 138, 11, 195, 169, 18, 4, 195, 169, 19, 5, 13, 13, 8, 197, 48, 81, 217, 20, 224, 13, 0, 12, 137, 11, 195, 173, 19, 195, 169,
+			18, 9, 11, 13, 17, 142, 5, 12, 8, 5, 12, 25, 5, 26, 195, 169, 19, 195, 169, 20, 13, 0, 16, 141, 5, 7, 25, 5, 26, 20,
+			5, 20, 195, 169, 19, 5, 14, 13, 16, 141, 5, 7, 25, 5, 26, 20, 5, 20, 195, 169, 19, 5, 14, 13, 36, 13, 5, 7, 25, 5,
+			26, 20, 5, 20, 195, 169, 19, 5, 14, 109, 79, 12, 109, 89, 47, 109, 47, 113, 91, 109, 50, 23, 37, 91, 0, 13, 81, 105, 115, 32,
+			13, 138, 10, 1, 22, 195, 173, 20, 10, 195, 161, 11, 13, 13, 138, 10, 1, 22, 195, 173, 20, 10, 195, 161, 11, 13, 0, 14, 139, 13,
+			15, 14, 4, 8, 1, 20, 14, 195, 161, 11, 13, 0, 9, 198, 24, 148, 148, 5, 69, 129, 13, 8, 197, 64, 144, 67, 61, 64, 13, 13,
+			138, 11, 195, 169, 18, 4, 195, 169, 19, 5, 9, 13, 0, 17, 142, 7, 25, 195, 179, 7, 25, 19, 26, 5, 18, 2, 197, 145, 12, 13,
+			16, 141, 20, 5, 12, 5, 16, 195, 188, 12, 195, 169, 19, 5, 11, 13, 0, 10, 135, 1, 12, 22, 195, 161, 19, 20, 13, 14, 139, 11,
+			195, 169, 18, 4, 195, 169, 19, 19, 5, 12, 13, 0, 7, 196, 40, 241, 207, 52, 13, 8, 133, 14, 197, 145, 14, 9, 13, 11, 136, 18,
+			195, 186, 7, 195, 161, 19, 20, 13, 0, 30, 10, 11, 1, 20, 5, 7, 195, 179, 18, 9, 1, 49, 108, 47, 109, 81, 115, 52, 37, 108,
+			23, 37, 91, 0, 13, 81, 105, 115, 32, 13, 138, 11, 1, 20, 5, 7, 195, 179, 18, 9, 1, 13, 19, 144, 20, 195, 161, 10, 195, 169,
+			11, 15, 26, 20, 1, 20, 20, 195, 161, 11, 13, 11, 136, 22, 15, 12, 14, 195, 161, 14, 11, 13, 0, 14, 139, 13, 5, 7, 7, 25,
+			197, 145, 26, 14, 9, 5, 13, 9, 198, 20, 194, 78, 17, 83, 20, 13, 13, 138, 5, 12, 10, 195, 161, 18, 195, 161, 19, 20, 13, 0,
+			13, 138, 8, 1, 19, 26, 14, 195, 161, 12, 195, 179, 13, 0, 9, 198, 40, 83, 5, 44, 85, 0, 13, 25, 68, 36, 198, 69, 56, 37,
+			57, 109, 50, 10, 6, 15, 71, 39, 55, 47, 0, 13, 81, 98, 111, 108, 116, 32, 31, 68, 60, 198, 65, 56, 39, 57, 108, 50, 10, 6,
+			15, 49, 113, 52, 72, 113, 91, 0, 13, 81, 107, 195, 169, 114, 100, 195, 169, 115, 32, 11, 136, 19, 20, 18, 195, 161, 6, 15, 20, 13,
+			23, 68, 36, 198, 69, 56, 37, 57, 109, 50, 15, 89, 113, 48, 0, 13, 81, 115, 122, 195, 169, 112, 32, 9, 134, 22, 195, 169, 7, 5,
+			26, 13, 7, 196, 60, 198, 65, 56, 13, 13, 4, 95, 49, 17, 24, 109, 55, 91, 109, 57, 109, 0, 0, 27, 69, 57, 146, 84, 56, 144,
+			67, 37, 47, 50, 37, 23, 108, 49, 12, 39, 52, 0, 13, 81, 97, 107, 107, 111, 114, 32, 8, 197, 57, 146, 84, 40, 16, 13, 8, 197,
+			88, 84, 218, 20, 208, 13, 43, 12, 11, 9, 19, 26, 15, 12, 7, 195, 161, 12, 195, 179, 49, 37, 89, 39, 55, 81, 114, 55, 115, 23,
+			57, 114, 52, 108, 47, 108, 37, 0, 13, 81, 106, 195, 161, 114, 97, 116, 97, 105, 32, 15, 140, 11, 9, 19, 26, 15, 12, 7, 195, 161,
+			12, 195, 179, 13, 0, 11, 136, 195, 188, 12, 195, 169, 19, 5, 14, 13, 8, 133, 4, 9, 195, 161, 11, 13, 9, 198, 16, 243, 7, 84,
+			176, 84, 13, 0, 12, 137, 12, 1, 11, 195, 161, 19, 2, 1, 14, 13, 29, 6, 13, 195, 161, 19, 9, 11, 65, 114, 91, 37, 49, 10,
+			6, 15, 47, 113, 65, 108, 0, 13, 81, 116, 195, 169, 109, 97, 32, 10, 199, 77, 160, 75, 61, 37, 143, 76, 13, 0, 40, 6, 18, 195,
+			169, 7, 5, 14, 52, 113, 81, 109, 50, 23, 49, 37, 47, 108, 55, 114, 55, 47, 114, 49, 0, 13, 81, 107, 105, 116, 97, 108, 195, 161,
+			108, 116, 195, 161, 107, 32, 13, 138, 195, 182, 19, 19, 26, 5, 7, 2, 5, 14, 13, 41, 68, 40, 241, 210, 4, 57, 39, 81, 52, 108,
+			23, 84, 114, 55, 47, 39, 89, 47, 108, 47, 39, 47, 12, 0, 13, 81, 118, 195, 161, 108, 116, 111, 122, 116, 97, 116, 111, 116, 116, 32,
+			11, 136, 5, 26, 5, 12, 197, 145, 20, 20, 13, 11, 200, 88, 148, 197, 48, 177, 68, 36, 176, 13, 11, 200, 88, 148, 197, 48, 177, 68,
+			36, 176, 13, 8, 133, 195, 173, 18, 10, 1, 13, 7, 196, 4, 67, 212, 80, 13, 0, 11, 136, 22, 195, 161, 18, 10, 195, 161, 11, 13,
+			13, 138, 13, 195, 169, 18, 14, 195, 182, 11, 5, 9, 13, 8, 197, 72, 82, 140, 36, 176, 13, 12, 137, 13, 9, 12, 12, 9, 195, 161,
+			18, 4, 13, 35, 9, 13, 9, 12, 12, 9, 195, 161, 18, 4, 65, 37, 55, 37, 114, 52, 72, 23, 83, 39, 52, 37, 50, 47, 0, 13,
+			81, 102, 111, 114, 105, 110, 116, 32, 8, 197, 52, 144, 84, 80, 16, 13, 8, 197, 81, 81, 10, 84, 176, 13, 8, 197, 44, 86, 132, 80,
+			80, 13, 8, 197, 52, 243, 132, 40, 16, 13, 0, 14, 139, 7, 25, 195, 179, 7, 25, 20, 15, 18, 14, 1, 13, 52, 8, 195, 161, 7,
+			195, 161, 2, 1, 14, 114, 81, 114, 71, 108, 50, 15, 91, 37, 50, 76, 15, 55, 109, 76, 109, 52, 113, 55, 50, 37, 0, 13, 82, 115,
+			105, 110, 99, 115, 32, 108, 101, 99, 115, 101, 114, 195, 169, 108, 110, 105, 32, 7, 132, 11, 195, 161, 18, 13, 12, 4, 13, 195, 161, 22,
+			65, 114, 84, 0, 42, 42, 0, 12, 137, 13, 21, 14, 11, 195, 161, 2, 1, 14, 13, 14, 139, 20, 5, 12, 5, 6, 15, 14, 195, 161,
+			12, 20, 13, 12, 137, 12, 9, 19, 20, 195, 161, 2, 1, 14, 13, 17, 142, 6, 15, 18, 18, 195, 161, 19, 11, 195, 179, 4, 14, 1,
+			11, 13, 7, 132, 5, 12, 197, 145, 13, 7, 132, 5, 12, 197, 145, 13, 0, 13, 138, 9, 19, 11, 15, 12, 195, 161, 2, 1, 14, 13,
+			7, 132, 19, 195, 173, 16, 13, 0, 11, 136, 20, 5, 19, 19, 26, 195, 188, 11, 13, 31, 11, 195, 182, 14, 13, 1, 7, 195, 161, 2,
+			1, 14, 110, 50, 65, 108, 81, 114, 71, 108, 50, 23, 108, 88, 0, 13, 81, 97, 122, 32, 49, 4, 13, 195, 161, 19, 65, 114, 91, 23,
+			89, 109, 65, 55, 113, 55, 109, 47, 109, 47, 23, 49, 110, 84, 109, 47, 0, 13, 82, 115, 122, 101, 109, 108, 195, 169, 108, 101, 116, 101,
+			116, 32, 107, 195, 182, 118, 101, 116, 32, 20, 4, 13, 195, 161, 19, 65, 114, 91, 23, 91, 109, 65, 0, 13, 81, 115, 101, 109, 32, 27,
+			4, 13, 195, 161, 19, 65, 114, 91, 23, 81, 113, 48, 12, 109, 55, 0, 13, 81, 103, 195, 169, 112, 112, 101, 108, 32, 14, 139, 195, 169,
+			18, 4, 5, 11, 195, 169, 2, 5, 14, 13, 14, 139, 195, 169, 18, 4, 5, 11, 195, 169, 2, 5, 14, 13, 7, 132, 13, 195, 161, 19,
+			13, 0, 25, 4, 13, 195, 161, 18, 65, 114, 52, 10, 6, 15, 108, 48, 52, 115, 0, 13, 81, 97, 112, 114, 195, 179, 32, 32, 4, 13,
+			195, 161, 18, 65, 114, 52, 10, 6, 15, 109, 55, 113, 52, 47, 113, 49, 0, 13, 81, 101, 108, 195, 169, 114, 116, 195, 169, 107, 32, 50,
+			4, 13, 195, 161, 18, 65, 114, 52, 10, 6, 15, 49, 109, 84, 113, 91, 71, 113, 10, 6, 15, 107, 108, 55, 12, 108, 50, 37, 0, 13,
+			82, 107, 101, 118, 195, 169, 115, 98, 195, 169, 32, 104, 97, 108, 108, 97, 110, 105, 32, 35, 4, 13, 195, 161, 18, 65, 114, 52, 23, 55,
+			109, 107, 109, 76, 12, 113, 81, 109, 91, 0, 13, 81, 108, 101, 104, 101, 116, 115, 195, 169, 103, 101, 115, 32, 33, 4, 13, 195, 161, 18,
+			65, 114, 52, 23, 65, 109, 81, 89, 39, 49, 39, 47, 12, 0, 13, 81, 109, 101, 103, 115, 122, 111, 107, 111, 116, 116, 32, 28, 6, 2,
+			5, 12, 195, 188, 12, 71, 109, 55, 111, 55, 23, 65, 108, 52, 108, 72, 0, 13, 81, 109, 97, 114, 97, 100, 32, 33, 4, 13, 195, 161,
+			18, 65, 114, 52, 23, 49, 39, 52, 114, 71, 52, 115, 55, 0, 13, 81, 107, 111, 114, 195, 161, 98, 98, 114, 195, 179, 108, 32, 24, 4,
+			13, 195, 161, 18, 65, 114, 52, 15, 91, 39, 49, 108, 47, 0, 13, 81, 115, 111, 107, 97, 116, 32, 9, 134, 6, 5, 12, 195, 188, 12,
+			13, 13, 138, 2, 5, 12, 5, 19, 26, 195, 179, 12, 20, 13, 9, 134, 2, 5, 12, 195, 188, 12, 13, 17, 142, 13, 197, 177, 11, 195,
+			182, 4, 195, 169, 19, 18, 197, 145, 12, 13, 7, 132, 13, 195, 161, 18, 13, 0, 18, 143, 2, 195, 182, 14, 7, 195, 169, 19, 26, 197,
+			145, 2, 197, 145, 12, 13, 10, 199, 13, 51, 206, 80, 242, 193, 80, 13, 0, 12, 137, 22, 5, 19, 26, 197, 145, 4, 14, 9, 13, 19,
+			144, 11, 195, 169, 19, 26, 195, 173, 20, 195, 169, 19, 195, 169, 22, 5, 12, 13, 11, 136, 11, 195, 182, 14, 25, 22, 5, 20, 13, 11,
+			136, 20, 195, 161, 13, 15, 7, 1, 20, 13, 16, 141, 6, 18, 1, 11, 3, 9, 195, 179, 10, 195, 161, 18, 1, 13, 7, 196, 53, 85,
+			1, 80, 13, 0, 9, 134, 12, 195, 169, 16, 14, 9, 13, 8, 133, 19, 26, 195, 188, 12, 13, 0, 25, 70, 32, 19, 135, 104, 245, 20,
+			107, 108, 50, 81, 88, 39, 47, 12, 23, 109, 55, 0, 13, 81, 101, 108, 32, 27, 70, 32, 19, 135, 104, 245, 20, 107, 108, 50, 81, 88,
+			39, 47, 12, 10, 6, 15, 109, 55, 0, 13, 81, 101, 108, 32, 9, 198, 77, 161, 76, 48, 83, 64, 13, 41, 7, 12, 1, 11, 195, 161,
+			19, 1, 55, 108, 49, 114, 91, 108, 23, 79, 40, 55, 12, 108, 47, 12, 23, 49, 37, 0, 13, 82, 103, 121, 117, 108, 108, 97, 100, 116,
+			32, 107, 105, 32, 10, 135, 5, 12, 14, 195, 182, 11, 5, 13, 23, 6, 22, 195, 169, 7, 5, 20, 84, 113, 81, 109, 47, 23, 113, 52,
+			0, 13, 81, 195, 169, 114, 32, 13, 138, 2, 1, 18, 195, 161, 20, 10, 195, 161, 20, 13, 9, 134, 22, 195, 169, 7, 5, 20, 13, 11,
+			136, 15, 11, 20, 195, 179, 2, 5, 18, 20, 0, 32, 67, 4, 210, 84, 108, 65, 37, 47, 23, 107, 108, 89, 50, 114, 55, 39, 49, 0,
+			13, 81, 104, 97, 115, 122, 110, 195, 161, 108, 111, 107, 32, 18, 143, 8, 1, 10, 12, 195, 169, 11, 20, 1, 12, 1, 14, 14, 1, 12,
+			13, 11, 136, 19, 26, 1, 2, 195, 161, 12, 25, 13, 14, 67, 16, 228, 192, 72, 113, 109, 50, 109, 91, 0, 42, 42, 0, 11, 136, 14,
+			195, 169, 26, 5, 7, 5, 20, 13, 11, 136, 13, 195, 179, 4, 10, 195, 161, 20, 13, 0, 13, 138, 20, 195, 161, 13, 15, 7, 1, 20,
+			14, 9, 13, 11, 136, 20, 195, 182, 13, 5, 7, 5, 11, 13, 9, 198, 44, 81, 22, 20, 224, 197, 13, 12, 137, 16, 195, 161, 18, 20,
+			10, 195, 161, 20, 13, 11, 136, 19, 26, 197, 177, 18, 197, 145, 11, 13, 8, 133, 22, 195, 161, 18, 20, 13, 0, 10, 135, 13, 195, 169,
+			4, 9, 21, 13, 13, 12, 137, 13, 21, 20, 1, 20, 10, 195, 161, 11, 13, 9, 198, 4, 192, 80, 40, 18, 84, 13, 0, 14, 139, 4,
+			195, 182, 14, 20, 195, 169, 19, 195, 169, 20, 13, 10, 199, 65, 35, 196, 84, 49, 82, 20, 13, 18, 143, 8, 1, 19, 15, 14, 12, 195,
+			173, 20, 7, 1, 20, 14, 15, 4, 13, 0, 16, 141, 11, 15, 18, 12, 195, 161, 20, 15, 26, 195, 161, 19, 1, 13, 14, 139, 22, 195,
+			161, 18, 8, 1, 20, 195, 179, 1, 11, 13, 14, 139, 12, 195, 161, 20, 8, 1, 20, 195, 179, 1, 11, 13, 10, 135, 195, 173, 18, 14,
+			195, 161, 11, 13, 11, 200, 32, 83, 25, 104, 85, 2, 20, 224, 13, 0, 15, 140, 20, 195, 161, 13, 15, 7, 1, 20, 14, 195, 161, 11,
+			13, 15, 140, 15, 12, 22, 1, 19, 8, 1, 20, 10, 195, 161, 11, 13, 16, 141, 6, 5, 12, 5, 12, 197, 145, 19, 195, 169, 7, 5,
+			20, 13, 14, 139, 22, 1, 19, 195, 161, 18, 14, 1, 16, 15, 14, 22, 0, 60, 14, 10, 5, 12, 5, 14, 20, 197, 145, 19, 195, 169,
+			7, 5, 20, 57, 109, 55, 109, 50, 47, 118, 91, 113, 81, 109, 47, 23, 47, 40, 55, 108, 57, 72, 39, 50, 112, 47, 108, 50, 37, 0,
+			13, 81, 116, 117, 108, 97, 106, 100, 111, 110, 195, 173, 116, 97, 110, 105, 32, 33, 11, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 13,
+			48, 52, 39, 71, 55, 113, 65, 114, 65, 23, 84, 108, 50, 0, 13, 81, 118, 97, 110, 32, 16, 141, 19, 26, 195, 182, 22, 5, 20, 19,
+			195, 169, 7, 5, 11, 13, 42, 8, 1, 12, 1, 16, 10, 195, 161, 14, 108, 55, 108, 48, 57, 114, 50, 23, 112, 47, 113, 55, 49, 109,
+			88, 109, 55, 0, 13, 81, 195, 173, 116, 195, 169, 108, 107, 101, 122, 101, 108, 32, 37, 11, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161,
+			13, 48, 52, 39, 71, 55, 113, 65, 114, 65, 15, 108, 49, 108, 47, 12, 0, 13, 81, 97, 107, 97, 100, 116, 32, 16, 141, 20, 1, 12,
+			195, 161, 12, 8, 1, 20, 195, 179, 1, 11, 13, 11, 136, 1, 12, 1, 16, 10, 195, 161, 14, 13, 0, 12, 137, 6, 9, 26, 9, 11,
+			21, 13, 195, 186, 13, 13, 138, 2, 15, 18, 195, 173, 20, 10, 195, 161, 11, 13, 18, 143, 5, 12, 12, 5, 14, 197, 145, 18, 26, 195,
+			169, 19, 195, 169, 20, 13, 0, 14, 139, 16, 18, 15, 2, 12, 195, 169, 13, 195, 161, 11, 13, 19, 144, 11, 9, 20, 5, 18, 10, 5,
+			19, 26, 20, 195, 169, 19, 195, 169, 20, 13, 7, 196, 40, 241, 207, 80, 13, 7, 196, 40, 241, 207, 80, 13, 0, 8, 197, 88, 242, 211,
+			61, 64, 13, 15, 140, 6, 5, 12, 12, 195, 169, 16, 195, 169, 19, 5, 11, 13, 0, 0, 12, 201, 52, 81, 212, 20, 129, 84, 21, 69,
+			0, 13, 11, 136, 11, 9, 10, 195, 182, 14, 14, 9, 13, 15, 67, 4, 68, 204, 114, 72, 113, 109, 91, 109, 55, 0, 42, 42, 0, 41,
+			70, 24, 82, 140, 21, 69, 0, 83, 109, 57, 55, 109, 47, 12, 10, 6, 15, 48, 52, 39, 119, 109, 89, 12, 39, 52, 0, 13, 81, 112,
+			114, 111, 99, 101, 115, 115, 122, 111, 114, 32, 49, 11, 20, 1, 14, 195, 173, 20, 1, 14, 4, 195, 179, 47, 108, 50, 112, 47, 108, 50,
+			72, 115, 23, 37, 91, 65, 109, 52, 109, 47, 109, 49, 109, 47, 0, 13, 81, 105, 115, 109, 101, 114, 101, 116, 101, 107, 101, 116, 32, 17,
+			142, 13, 5, 7, 2, 195, 173, 26, 8, 1, 20, 195, 179, 1, 14, 13, 11, 200, 32, 243, 20, 80, 84, 212, 21, 64, 13, 14, 139, 9,
+			14, 20, 15, 14, 195, 161, 3, 9, 195, 179, 13, 14, 139, 22, 1, 19, 195, 161, 18, 14, 1, 16, 9, 7, 22, 0, 8, 197, 56, 17,
+			217, 61, 64, 13, 13, 138, 20, 195, 182, 18, 197, 145, 4, 14, 9, 5, 13, 16, 141, 16, 18, 9, 15, 18, 9, 20, 195, 161, 19, 19,
+			1, 12, 13, 0, 13, 138, 20, 21, 4, 8, 1, 20, 14, 195, 161, 4, 13, 17, 142, 20, 195, 161, 13, 15, 7, 1, 20, 195, 161, 19,
+			19, 1, 12, 13, 17, 142, 1, 12, 11, 1, 12, 13, 1, 26, 195, 161, 19, 19, 1, 12, 13, 12, 137, 7, 1, 26, 4, 1, 19, 195,
+			161, 7, 13, 13, 138, 5, 12, 12, 195, 161, 20, 195, 161, 19, 20, 13, 0, 23, 7, 11, 195, 182, 18, 195, 188, 12, 49, 110, 52, 111,
+			55, 23, 37, 91, 0, 13, 81, 105, 115, 32, 13, 138, 6, 195, 161, 18, 1, 19, 26, 20, 195, 179, 13, 17, 142, 18, 5, 7, 9, 19,
+			26, 20, 18, 195, 161, 3, 9, 195, 179, 13, 13, 138, 1, 14, 9, 13, 195, 161, 3, 9, 195, 179, 13, 14, 139, 195, 161, 20, 195, 161,
+			12, 12, 195, 161, 19, 20, 13, 12, 135, 11, 195, 182, 18, 195, 188, 12, 13, 20, 22, 0, 52, 12, 20, 195, 161, 13, 15, 7, 1, 20,
+			195, 161, 19, 20, 47, 114, 65, 39, 81, 108, 47, 114, 91, 47, 23, 71, 37, 89, 47, 39, 91, 112, 47, 108, 50, 37, 0, 13, 81, 98,
+			105, 122, 116, 111, 115, 195, 173, 116, 97, 110, 105, 32, 15, 140, 1, 12, 11, 1, 12, 13, 1, 26, 195, 161, 19, 20, 13, 15, 140, 20,
+			195, 161, 13, 15, 7, 1, 20, 195, 161, 19, 20, 13, 11, 136, 11, 195, 169, 19, 26, 195, 188, 12, 13, 15, 140, 7, 25, 15, 18, 19,
+			195, 173, 20, 195, 161, 19, 20, 13, 11, 136, 11, 195, 169, 19, 26, 195, 188, 12, 13, 0, 8, 197, 88, 19, 12, 88, 16, 13, 10, 135,
+			9, 18, 15, 4, 195, 161, 14, 13, 16, 141, 19, 26, 9, 7, 15, 18, 195, 173, 20, 195, 161, 19, 20, 13, 8, 197, 24, 241, 202, 84,
+			176, 13, 16, 141, 13, 5, 7, 2, 195, 173, 26, 1, 20, 195, 161, 19, 20, 13, 8, 197, 20, 192, 68, 56, 144, 13, 15, 140, 9, 14,
+			6, 15, 18, 13, 195, 161, 3, 9, 195, 179, 13, 8, 133, 14, 197, 145, 20, 20, 13, 0, 9, 198, 88, 243, 20, 84, 226, 192, 72, 30,
+			6, 5, 12, 197, 145, 20, 20, 109, 55, 118, 47, 12, 23, 49, 110, 88, 110, 55, 0, 13, 81, 107, 195, 182, 122, 195, 182, 108, 32, 39,
+			6, 5, 12, 197, 145, 20, 20, 109, 55, 118, 47, 12, 23, 48, 40, 71, 55, 37, 49, 114, 55, 47, 108, 0, 13, 81, 112, 117, 98, 108,
+			105, 107, 195, 161, 108, 116, 97, 32, 8, 133, 195, 173, 18, 15, 11, 13, 17, 142, 19, 26, 1, 2, 195, 161, 12, 25, 15, 26, 195, 161,
+			19, 20, 13, 17, 142, 20, 1, 18, 20, 195, 179, 26, 11, 15, 4, 195, 161, 19, 20, 13, 17, 142, 10, 1, 22, 1, 4, 1, 12, 13,
+			1, 26, 195, 161, 19, 20, 13, 12, 137, 15, 12, 22, 1, 19, 19, 195, 161, 11, 13, 11, 136, 19, 26, 5, 18, 4, 195, 161, 14, 22,
+			11, 134, 5, 12, 197, 145, 20, 20, 20, 22, 13, 0, 18, 143, 13, 5, 7, 195, 161, 12, 12, 1, 16, 15, 4, 195, 161, 19, 20, 13,
+			17, 142, 11, 15, 14, 6, 9, 7, 21, 18, 195, 161, 3, 9, 195, 179, 13, 18, 143, 14, 25, 9, 12, 22, 195, 161, 14, 195, 173, 20,
+			195, 161, 19, 20, 13, 0, 14, 139, 8, 1, 12, 12, 7, 1, 20, 20, 195, 161, 11, 13, 30, 68, 52, 144, 84, 80, 65, 37, 108, 47,
+			12, 23, 84, 108, 50, 23, 112, 79, 0, 13, 82, 118, 97, 110, 32, 195, 173, 103, 121, 32, 11, 200, 53, 83, 139, 4, 145, 5, 40, 80,
+			13, 43, 7, 6, 15, 7, 10, 195, 161, 11, 83, 39, 81, 57, 114, 49, 23, 109, 55, 12, 109, 50, 118, 52, 37, 88, 50, 37, 0, 13,
+			81, 101, 108, 108, 101, 110, 197, 145, 114, 105, 122, 110, 105, 32, 34, 68, 52, 144, 84, 80, 65, 6, 37, 108, 47, 12, 15, 67, 39, 65,
+			39, 88, 50, 108, 49, 0, 13, 81, 110, 121, 111, 109, 111, 122, 110, 97, 107, 32, 38, 68, 52, 144, 84, 80, 65, 37, 108, 47, 12, 23,
+			47, 37, 55, 47, 108, 49, 39, 88, 50, 108, 49, 0, 13, 81, 116, 105, 108, 116, 97, 107, 111, 122, 110, 97, 107, 32, 11, 200, 32, 17,
+			19, 21, 33, 71, 8, 80, 13, 12, 137, 11, 195, 182, 12, 20, 197, 145, 18, 5, 13, 10, 135, 6, 15, 7, 10, 195, 161, 11, 13, 10,
+			135, 195, 173, 18, 10, 195, 161, 11, 13, 7, 196, 52, 144, 84, 80, 13, 0, 15, 140, 11, 195, 169, 16, 5, 19, 19, 195, 169, 7, 5,
+			11, 13, 30, 8, 13, 195, 161, 19, 15, 4, 9, 11, 65, 114, 91, 39, 72, 37, 49, 23, 109, 55, 109, 65, 0, 13, 81, 101, 108, 101,
+			109, 32, 8, 197, 52, 240, 211, 60, 176, 13, 11, 136, 11, 195, 169, 16, 5, 19, 5, 11, 13, 15, 140, 11, 195, 169, 16, 22, 9, 19,
+			5, 12, 197, 145, 11, 13, 10, 135, 195, 161, 12, 12, 10, 15, 14, 13, 0, 16, 141, 2, 9, 26, 15, 14, 25, 195, 173, 20, 10, 195,
+			161, 11, 13, 35, 70, 81, 81, 10, 84, 226, 192, 47, 40, 79, 12, 40, 50, 49, 23, 47, 110, 55, 47, 109, 50, 37, 0, 13, 81, 116,
+			195, 182, 108, 116, 101, 110, 105, 32, 11, 136, 11, 1, 16, 3, 19, 195, 161, 14, 13, 13, 7, 95, 35, 45, 195, 161, 18, 1, 114, 52,
+			108, 0, 0, 10, 135, 19, 16, 195, 179, 18, 15, 12, 13, 13, 138, 19, 26, 195, 179, 18, 195, 179, 4, 9, 11, 13, 11, 136, 9, 18,
+			15, 4, 195, 161, 18, 1, 13, 11, 136, 13, 1, 16, 16, 195, 161, 18, 1, 13, 16, 141, 6, 5, 10, 12, 5, 19, 26, 20, 195, 169,
+			19, 5, 14, 13, 13, 138, 20, 21, 4, 8, 1, 20, 10, 195, 161, 11, 13, 0, 11, 200, 52, 81, 214, 21, 54, 142, 20, 176, 13, 7,
+			196, 36, 198, 69, 80, 13, 14, 139, 10, 5, 12, 5, 14, 20, 195, 169, 19, 5, 11, 13, 15, 140, 6, 5, 12, 195, 188, 12, 5, 20,
+			18, 197, 145, 12, 13, 0, 6, 20, 244, 0, 0, 0, 81, 1, 0, 0, 251, 0, 0, 0, 113, 1, 0, 0, 0, 0, 0, 0, 6, 18,
+			66, 98, 0, 99, 0, 100, 0, 102, 0, 103, 0, 104, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 112, 0, 115, 0, 116, 0, 114,
+			0, 118, 0, 119, 0, 122, 0, 7, 6, 99, 104, 0, 4, 1, 169, 195, 122, 115, 3, 76, 0, 8, 105, 122, 2, 121, 0, 4, 101, 8,
+			169, 195, 122, 115, 2, 110, 121, 3, 76, 113, 0, 195, 169, 8, 169, 195, 122, 115, 2, 110, 121, 0, 1, 110, 188, 195, 109, 2, 101, 110,
+			3, 99, 0, 4, 1, 97, 99, 114, 97, 2, 111, 110, 3, 107, 0, 1, 97, 100, 108, 97, 98, 2, 105, 110, 0, 1, 97, 106, 2, 116,
+			0, 1, 97, 109, 2, 105, 97, 118, 101, 108, 108, 0, 1, 97, 109, 2, 105, 110, 195, 161, 0, 1, 97, 110, 97, 109, 108, 97, 0, 1,
+			101, 109, 2, 97, 0, 1, 101, 116, 0, 1, 105, 116, 122, 115, 105, 100, 2, 111, 110, 0, 1, 105, 116, 122, 115, 111, 110, 111, 114, 107,
+			2, 111, 110, 0, 1, 105, 122, 115, 112, 0, 1, 111, 115, 97, 109, 2, 105, 115, 116, 17, 65, 0, 1, 111, 122, 97, 109, 2, 105, 115,
+			0, 1, 111, 122, 97, 109, 2, 105, 122, 109, 0, 1, 114, 97, 2, 97, 105, 107, 117, 115, 0, 1, 114, 97, 2, 105, 116, 101, 107, 116,
+			195, 186, 0, 1, 114, 97, 2, 105, 118, 195, 161, 108, 0, 1, 114, 97, 2, 195, 173, 118, 0, 1, 114, 97, 103, 105, 108, 111, 0, 1,
+			114, 97, 110, 97, 2, 105, 0, 1, 114, 97, 110, 111, 109, 2, 105, 0, 1, 114, 97, 114, 101, 105, 104, 2, 105, 0, 1, 114, 111, 2,
+			195, 173, 100, 101, 97, 0, 1, 121, 122, 115, 112, 0, 8, 114, 97, 2, 105, 109, 195, 169, 0, 8, 114, 111, 2, 105, 100, 101, 0, 4,
+			1, 101, 99, 2, 101, 116, 3, 107, 12, 0, 1, 101, 112, 103, 101, 108, 2, 101, 115, 0, 1, 105, 114, 116, 115, 2, 101, 108, 0, 8,
+			101, 112, 0, 7, 6, 100, 122, 0, 4, 1, 97, 122, 161, 195, 122, 115, 2, 101, 110, 101, 3, 72, 88, 0, 1, 101, 114, 122, 101, 2,
+			101, 110, 101, 0, 1, 103, 97, 114, 97, 109, 115, 2, 195, 182, 108, 100, 0, 1, 169, 195, 118, 110, 111, 104, 2, 195, 161, 115, 122, 108,
+			195, 179, 0, 1, 169, 195, 122, 115, 101, 98, 2, 97, 118, 97, 114, 0, 4, 115, 3, 75, 0, 115, 1, 17, 67, 0, 115, 1, 97, 2,
+			17, 65, 0, 115, 2, 17, 67, 0, 4, 115, 1, 97, 114, 97, 104, 97, 109, 2, 17, 65, 3, 75, 12, 0, 115, 1, 101, 110, 101, 109,
+			2, 17, 65, 0, 115, 1, 105, 114, 98, 2, 17, 65, 0, 115, 5, 1, 1, 111, 98, 109, 97, 107, 2, 17, 65, 0, 115, 8, 111, 100,
+			2, 17, 65, 0, 4, 1, 145, 197, 108, 101, 100, 101, 122, 115, 3, 88, 0, 1, 145, 197, 108, 101, 116, 101, 118, 182, 195, 107, 0, 1,
+			145, 197, 114, 169, 195, 107, 0, 1, 145, 197, 116, 101, 103, 101, 116, 110, 101, 109, 0, 1, 145, 197, 116, 101, 103, 101, 121, 110, 101, 102,
+			0, 1, 177, 197, 114, 177, 197, 121, 103, 2, 105, 107, 0, 1, 179, 195, 103, 111, 102, 2, 195, 179, 0, 1, 179, 195, 108, 108, 105, 118,
+			0, 1, 179, 195, 108, 111, 107, 114, 117, 98, 0, 1, 179, 195, 108, 111, 107, 116, 105, 116, 0, 1, 179, 195, 108, 161, 195, 98, 109, 105,
+			104, 0, 1, 179, 195, 108, 161, 195, 98, 111, 100, 0, 1, 179, 195, 108, 161, 195, 112, 97, 107, 0, 1, 179, 195, 112, 97, 114, 97, 104,
+			0, 1, 179, 195, 112, 111, 108, 0, 1, 179, 195, 114, 97, 107, 97, 0, 1, 179, 195, 115, 114, 111, 98, 0, 1, 179, 195, 116, 97, 103,
+			108, 108, 97, 104, 0, 1, 179, 195, 116, 97, 103, 110, 105, 114, 0, 1, 179, 195, 116, 97, 103, 110, 161, 195, 114, 0, 1, 179, 195, 116,
+			97, 103, 111, 112, 97, 116, 0, 1, 145, 197, 108, 101, 100, 101, 122, 115, 2, 107, 195, 182, 3, 89, 0, 4, 1, 101, 114, 169, 195, 107,
+			3, 119, 0, 1, 101, 114, 169, 195, 109, 2, 107, 0, 1, 179, 195, 2, 107, 111, 100, 0, 1, 179, 195, 103, 111, 102, 2, 107, 111, 100,
+			0, 1, 179, 195, 122, 186, 195, 104, 0, 8, 179, 195, 2, 107, 111, 0, 4, 3, 120, 12, 0, 0, 1, 17, 65, 2, 17, 65, 0, 1,
+			101, 2, 195, 169, 115, 0, 1, 101, 2, 197, 145, 0, 7, 6, 103, 121, 0, 115, 3, 76, 0, 115, 1, 17, 65, 2, 17, 65, 3, 76,
+			12, 0, 4, 3, 79, 0, 1, 97, 2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 97, 2, 115, 101, 106, 0, 1, 97, 2, 115, 195, 169,
+			114, 195, 188, 108, 0, 1, 97, 102, 2, 115, 195, 169, 114, 195, 188, 108, 0, 1, 97, 110, 2, 115, 97, 108, 108, 195, 179, 0, 1, 97,
+			110, 2, 115, 97, 114, 108, 195, 179, 0, 1, 97, 110, 2, 115, 101, 98, 101, 115, 0, 1, 97, 110, 2, 115, 105, 101, 116, 0, 1, 97,
+			110, 2, 115, 105, 107, 101, 114, 0, 1, 97, 110, 2, 115, 111, 107, 195, 161, 114, 97, 0, 1, 97, 110, 2, 115, 116, 114, 97, 116, 195,
+			169, 103, 105, 97, 0, 1, 97, 110, 2, 115, 116, 195, 173, 108, 0, 1, 97, 110, 2, 115, 195, 161, 103, 0, 1, 97, 110, 2, 115, 195,
+			161, 112, 0, 1, 101, 2, 101, 115, 45, 101, 103, 121, 101, 100, 195, 188, 108, 0, 1, 101, 2, 106, 101, 103, 121, 197, 177, 0, 1, 101,
+			2, 106, 101, 108, 101, 110, 116, 195, 169, 115, 197, 177, 0, 1, 101, 2, 115, 97, 114, 107, 195, 186, 0, 1, 101, 2, 115, 101, 106, 116,
+			197, 177, 0, 1, 101, 2, 115, 111, 114, 0, 1, 101, 2, 115, 195, 173, 110, 197, 177, 0, 1, 101, 104, 2, 115, 195, 169, 103, 0, 1,
+			101, 106, 2, 101, 110, 107, 195, 169, 110, 116, 0, 1, 101, 106, 2, 101, 122, 116, 101, 0, 1, 101, 106, 2, 195, 169, 114, 116, 0, 1,
+			101, 106, 100, 169, 195, 118, 2, 115, 116, 114, 97, 116, 195, 169, 0, 1, 110, 182, 195, 121, 103, 2, 115, 111, 114, 0, 1, 111, 104, 2,
 			115, 101, 0, 1, 111, 104, 101, 115, 2, 115, 101, 0, 1, 114, 161, 195, 116, 2, 106, 117, 116, 97, 108, 0, 1, 114, 161, 195, 116, 2,
 			115, 111, 114, 0, 1, 114, 161, 195, 116, 2, 115, 111, 114, 111, 122, 97, 116, 0, 1, 161, 195, 2, 115, 111, 114, 0, 1, 161, 195, 108,
 			2, 115, 195, 161, 0, 1, 161, 195, 118, 116, 169, 195, 2, 106, 97, 118, 195, 173, 116, 0, 1, 169, 195, 110, 2, 106, 101, 103, 121, 0,
@@ -30162,1094 +20335,827 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			2, 105, 107, 0, 8, 173, 195, 2, 106, 195, 161, 114, 0, 106, 1, 17, 67, 0, 4, 1, 101, 2, 45, 101, 103, 121, 3, 79, 12, 0,
 			1, 101, 2, 97, 114, 195, 161, 110, 116, 0, 1, 101, 2, 97, 122, 111, 110, 0, 1, 101, 2, 101, 108, 197, 145, 114, 101, 0, 1, 101,
 			2, 101, 109, 98, 101, 114, 0, 1, 101, 2, 101, 110, 107, 195, 169, 110, 116, 0, 1, 101, 2, 101, 110, 114, 97, 110, 103, 0, 1, 101,
-			2, 101, 110, 115, 195, 186, 108, 121, 0, 1, 101, 2, 101, 115, 195, 173, 116, 0, 1, 101, 2, 101, 115, 195, 188, 108, 101, 116, 0, 1,
-			101, 2, 101, 116, 195, 169, 114, 116, 0, 1, 101, 2, 101, 122, 107, 101, 100, 0, 1, 101, 2, 101, 122, 116, 101, 116, 0, 1, 101, 2,
-			105, 100, 101, 106, 197, 177, 0, 1, 101, 2, 105, 114, 195, 161, 110, 121, 195, 186, 0, 1, 101, 2, 195, 161, 108, 116, 97, 108, 195, 161,
-			110, 0, 1, 101, 2, 195, 169, 106, 115, 122, 97, 107, 0, 1, 101, 2, 195, 169, 114, 116, 0, 1, 101, 2, 195, 169, 114, 116, 101, 108,
-			109, 197, 177, 0, 1, 101, 2, 195, 186, 116, 116, 97, 108, 0, 1, 101, 45, 109, 101, 110, 2, 101, 122, 0, 1, 101, 45, 109, 101, 110,
-			2, 105, 107, 0, 1, 101, 45, 109, 101, 110, 2, 195, 188, 116, 116, 0, 1, 101, 97, 114, 106, 186, 195, 2, 101, 115, 195, 173, 116, 0,
-			1, 101, 99, 110, 105, 109, 114, 97, 104, 2, 101, 100, 105, 107, 0, 1, 101, 101, 108, 101, 98, 2, 101, 122, 0, 1, 101, 101, 122, 115,
-			115, 182, 195, 2, 101, 115, 195, 173, 116, 0, 1, 101, 103, 101, 109, 108, 169, 195, 102, 2, 101, 122, 0, 1, 101, 105, 107, 2, 101, 122,
-			0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 100, 105, 107, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 100, 115, 122, 101, 114, 0, 1,
-			101, 110, 101, 122, 105, 116, 2, 101, 110, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 115, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101,
-			116, 0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 100, 0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 100, 105, 107, 0, 1, 101,
-			110, 111, 122, 115, 117, 104, 2, 101, 115, 0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 122, 0, 1, 101, 116, 101, 108, 188, 195, 112,
-			169, 195, 2, 195, 188, 116, 116, 0, 1, 101, 122, 161, 195, 122, 115, 2, 101, 100, 105, 107, 0, 1, 101, 122, 161, 195, 122, 115, 2, 101,
-			115, 0, 8, 101, 2, 97, 98, 108, 97, 107, 0, 8, 101, 2, 101, 108, 0, 8, 101, 2, 101, 115, 0, 8, 101, 2, 101, 116, 32, 0,
-			8, 101, 2, 101, 116, 108, 101, 110, 0, 8, 101, 2, 101, 122, 0, 8, 101, 2, 101, 122, 109, 195, 169, 110, 121, 0, 8, 101, 2, 105,
-			100, 197, 145, 0, 8, 101, 2, 105, 107, 0, 8, 101, 2, 111, 108, 100, 97, 108, 0, 8, 101, 2, 195, 161, 103, 121, 0, 8, 101, 2,
-			195, 169, 32, 0, 8, 101, 2, 195, 169, 118, 0, 8, 101, 2, 195, 179, 114, 195, 161, 0, 8, 101, 2, 195, 182, 110, 116, 101, 116, 0,
-			8, 101, 2, 195, 182, 115, 115, 122, 101, 103, 0, 8, 101, 2, 195, 188, 116, 0, 8, 101, 45, 116, 110, 105, 109, 2, 195, 169, 32, 0,
-			8, 101, 103, 101, 109, 2, 101, 122, 0, 8, 101, 107, 101, 122, 115, 105, 104, 2, 101, 0, 8, 101, 110, 111, 122, 115, 117, 104, 2, 101,
-			0, 8, 101, 114, 101, 122, 115, 121, 103, 101, 2, 101, 0, 106, 1, 17, 65, 2, 17, 65, 0, 106, 1, 97, 104, 0, 106, 1, 101, 2,
-			101, 108, 101, 110, 116, 195, 169, 115, 197, 177, 3, 79, 57, 0, 4, 115, 122, 3, 79, 89, 0, 115, 122, 1, 17, 65, 2, 17, 65, 0,
-			115, 122, 1, 97, 110, 2, 97, 0, 4, 115, 1, 101, 2, 195, 161, 118, 3, 79, 91, 0, 115, 1, 101, 2, 195, 169, 103, 0, 115, 1,
-			101, 2, 195, 173, 107, 0, 115, 1, 186, 195, 2, 101, 0, 115, 8, 173, 195, 2, 101, 0, 7, 6, 115, 115, 0, 4, 122, 1, 97, 2,
-			105, 115, 122, 116, 101, 110, 115, 3, 89, 0, 122, 1, 97, 2, 105, 115, 122, 116, 195, 161, 108, 0, 122, 1, 97, 107, 2, 195, 173, 114,
-			111, 122, 0, 122, 1, 97, 109, 2, 195, 173, 114, 111, 122, 0, 122, 1, 97, 112, 2, 195, 173, 114, 111, 122, 0, 122, 1, 111, 114, 105,
-			112, 2, 107, 97, 0, 122, 2, 18, 66, 0, 122, 2, 45, 18, 66, 0, 122, 8, 97, 2, 105, 115, 122, 116, 0, 122, 8, 101, 2, 101,
-			110, 99, 105, 0, 122, 8, 101, 122, 115, 101, 110, 2, 101, 114, 0, 4, 1, 117, 105, 98, 117, 110, 97, 100, 3, 89, 12, 0, 1, 117,
-			116, 110, 101, 118, 117, 106, 0, 8, 101, 107, 2, 101, 108, 114, 105, 110, 103, 0, 122, 1, 97, 118, 97, 116, 2, 97, 0, 122, 1, 97,
-			118, 107, 2, 105, 97, 107, 195, 169, 114, 0, 122, 1, 97, 118, 108, 111, 0, 122, 1, 97, 118, 109, 97, 104, 0, 122, 1, 97, 118, 114,
-			111, 115, 2, 195, 161, 107, 0, 122, 1, 97, 118, 117, 107, 2, 97, 108, 0, 122, 1, 97, 118, 117, 121, 110, 0, 122, 1, 97, 118, 121,
-			116, 111, 107, 0, 122, 1, 97, 118, 186, 195, 121, 110, 0, 122, 1, 101, 108, 169, 195, 108, 182, 195, 102, 2, 101, 109, 0, 122, 1, 101,
-			117, 108, 98, 2, 97, 108, 0, 122, 1, 101, 118, 2, 197, 145, 107, 0, 122, 1, 101, 118, 101, 108, 101, 98, 2, 101, 110, 0, 122, 1,
-			101, 118, 121, 110, 182, 195, 107, 2, 195, 169, 0, 122, 1, 111, 114, 2, 97, 98, 98, 0, 122, 1, 117, 105, 98, 117, 110, 97, 100, 0,
-			122, 1, 117, 116, 110, 101, 118, 117, 106, 0, 122, 1, 161, 195, 100, 97, 118, 0, 122, 1, 161, 195, 114, 103, 117, 116, 105, 109, 2, 97,
-			108, 0, 122, 1, 169, 195, 114, 101, 103, 110, 101, 116, 2, 195, 188, 114, 107, 0, 122, 8, 97, 108, 101, 109, 2, 195, 173, 110, 0, 122,
-			8, 97, 118, 97, 114, 0, 122, 8, 97, 118, 114, 111, 115, 0, 122, 8, 97, 118, 117, 115, 2, 97, 0, 122, 8, 97, 118, 121, 116, 97,
-			107, 0, 122, 8, 169, 195, 110, 101, 112, 2, 195, 173, 110, 0, 122, 114, 3, 89, 52, 0, 122, 98, 3, 89, 71, 0, 4, 1, 117, 109,
-			2, 111, 108, 105, 110, 3, 89, 122, 0, 122, 0, 4, 1, 117, 116, 108, 101, 2, 111, 108, 3, 91, 0, 1, 145, 197, 108, 101, 108, 101,
-			102, 2, 195, 169, 103, 0, 1, 188, 195, 108, 112, 2, 122, 115, 0, 2, 18, 66, 0, 2, 45, 18, 66, 0, 4, 1, 105, 114, 102, 2,
-			122, 195, 182, 108, 3, 91, 12, 0, 1, 161, 195, 110, 97, 98, 98, 111, 114, 0, 114, 3, 91, 52, 0, 98, 3, 91, 71, 0, 4, 122,
-			1, 97, 100, 161, 195, 110, 3, 91, 89, 0, 122, 1, 97, 103, 97, 109, 2, 105, 110, 116, 0, 122, 1, 97, 103, 97, 109, 2, 195, 161,
-			114, 195, 186, 0, 122, 1, 97, 103, 111, 102, 0, 122, 1, 97, 103, 111, 102, 2, 101, 103, 0, 122, 1, 97, 103, 114, 111, 104, 0, 122,
-			1, 97, 103, 117, 108, 2, 101, 114, 197, 177, 0, 122, 1, 97, 104, 114, 182, 195, 115, 0, 122, 1, 97, 107, 2, 195, 169, 107, 0, 122,
-			1, 97, 107, 97, 107, 0, 122, 1, 97, 107, 97, 107, 2, 195, 169, 107, 0, 122, 1, 97, 107, 104, 169, 195, 109, 2, 101, 114, 0, 122,
-			1, 97, 107, 108, 108, 101, 109, 0, 122, 1, 97, 107, 114, 97, 102, 2, 101, 109, 0, 122, 1, 97, 107, 114, 97, 102, 2, 101, 114, 197,
-			177, 0, 122, 1, 97, 107, 114, 97, 102, 2, 117, 107, 0, 122, 1, 97, 107, 114, 97, 102, 2, 195, 188, 114, 107, 0, 122, 1, 97, 107,
-			114, 97, 102, 2, 197, 145, 108, 197, 145, 0, 122, 1, 97, 108, 105, 121, 110, 0, 122, 1, 97, 109, 114, 161, 195, 104, 0, 122, 1, 97,
-			109, 114, 161, 195, 104, 2, 97, 98, 0, 122, 1, 97, 109, 114, 161, 195, 104, 2, 195, 161, 109, 0, 122, 1, 97, 109, 114, 161, 195, 104,
-			2, 195, 182, 0, 122, 1, 97, 115, 2, 101, 109, 0, 122, 1, 97, 115, 2, 105, 107, 108, 0, 122, 1, 97, 115, 2, 105, 109, 98, 0,
-			122, 1, 97, 115, 2, 111, 98, 111, 114, 0, 122, 1, 97, 115, 2, 111, 98, 114, 0, 122, 1, 97, 115, 97, 118, 2, 97, 107, 0, 122,
-			1, 97, 116, 116, 111, 108, 97, 104, 0, 122, 1, 97, 116, 117, 0, 122, 1, 97, 116, 117, 2, 101, 114, 0, 122, 1, 97, 116, 117, 2,
-			105, 110, 116, 0, 122, 1, 97, 116, 117, 2, 111, 108, 103, 0, 122, 1, 97, 116, 117, 2, 195, 161, 108, 0, 122, 1, 97, 116, 117, 2,
-			195, 161, 109, 0, 122, 1, 97, 118, 109, 97, 104, 2, 197, 145, 107, 101, 0, 122, 1, 97, 118, 114, 97, 122, 115, 0, 122, 1, 97, 122,
-			114, 111, 98, 2, 197, 145, 114, 0, 122, 1, 97, 122, 161, 195, 122, 115, 0, 122, 1, 101, 98, 98, 182, 195, 116, 2, 195, 161, 109, 0,
-			122, 1, 101, 98, 101, 119, 0, 122, 1, 101, 100, 101, 122, 105, 116, 0, 122, 1, 101, 100, 101, 122, 105, 116, 2, 195, 161, 108, 108, 195,
-			161, 115, 0, 122, 1, 101, 100, 108, 182, 195, 122, 2, 195, 188, 114, 107, 0, 122, 1, 101, 100, 108, 182, 195, 122, 2, 195, 188, 114, 107,
-			101, 0, 122, 1, 101, 100, 169, 195, 2, 195, 161, 106, 0, 122, 1, 101, 100, 169, 195, 2, 195, 188, 108, 0, 122, 1, 101, 103, 169, 195,
-			115, 100, 108, 182, 195, 122, 0, 122, 1, 101, 103, 169, 195, 115, 114, 101, 116, 115, 101, 109, 0, 122, 1, 101, 104, 114, 101, 116, 0, 122,
-			1, 101, 104, 169, 195, 2, 195, 161, 106, 0, 122, 1, 101, 104, 169, 195, 109, 0, 122, 1, 101, 105, 114, 97, 99, 0, 122, 1, 101, 106,
-			108, 101, 116, 0, 122, 1, 101, 107, 101, 110, 169, 195, 0, 122, 1, 101, 107, 169, 195, 2, 195, 179, 0, 122, 1, 101, 107, 169, 195, 2,
-			195, 179, 108, 0, 122, 1, 101, 107, 169, 195, 107, 2, 195, 188, 114, 107, 0, 122, 1, 101, 108, 2, 97, 98, 0, 122, 1, 101, 108, 101,
-			100, 101, 102, 2, 195, 161, 114, 110, 121, 0, 122, 1, 101, 108, 101, 102, 106, 101, 116, 2, 195, 161, 106, 0, 122, 1, 101, 108, 169, 195,
-			2, 101, 109, 0, 122, 1, 101, 108, 169, 195, 122, 115, 0, 122, 1, 101, 108, 182, 195, 107, 0, 122, 1, 101, 108, 182, 195, 107, 2, 101,
-			109, 0, 122, 1, 101, 109, 101, 110, 2, 195, 173, 118, 0, 122, 1, 101, 109, 101, 110, 2, 197, 145, 114, 109, 0, 122, 1, 101, 109, 121,
-			108, 101, 115, 2, 197, 145, 107, 101, 0, 122, 1, 101, 110, 101, 121, 103, 101, 0, 122, 1, 101, 110, 101, 121, 103, 101, 2, 195, 161, 108,
-			0, 122, 1, 101, 112, 101, 122, 115, 2, 111, 109, 98, 97, 116, 0, 122, 1, 101, 114, 100, 101, 109, 2, 195, 169, 107, 0, 122, 1, 101,
-			114, 101, 118, 2, 197, 145, 107, 101, 0, 122, 1, 101, 114, 101, 122, 115, 145, 197, 108, 0, 122, 1, 101, 114, 169, 195, 104, 101, 102, 2,
-			195, 188, 114, 107, 0, 122, 1, 101, 114, 169, 195, 104, 101, 102, 2, 197, 145, 107, 101, 0, 122, 1, 101, 114, 169, 195, 118, 2, 195, 161,
-			106, 0, 122, 1, 101, 115, 99, 169, 195, 109, 0, 122, 1, 101, 115, 182, 195, 114, 182, 195, 118, 2, 197, 145, 107, 101, 0, 122, 1, 101,
-			116, 101, 108, 101, 121, 103, 188, 195, 2, 111, 98, 0, 122, 1, 101, 116, 101, 122, 114, 101, 122, 115, 2, 101, 114, 0, 122, 1, 101, 116,
-			110, 101, 104, 0, 122, 1, 101, 116, 110, 169, 195, 107, 110, 182, 195, 0, 122, 1, 101, 116, 114, 169, 195, 118, 2, 195, 161, 122, 97, 100,
-			0, 122, 1, 101, 116, 114, 169, 195, 118, 2, 197, 145, 108, 197, 145, 0, 122, 1, 101, 116, 116, 101, 107, 0, 122, 1, 101, 117, 108, 98,
-			0, 122, 1, 101, 118, 100, 101, 110, 2, 195, 188, 114, 107, 0, 122, 1, 101, 118, 101, 108, 0, 122, 1, 101, 118, 101, 108, 2, 101, 100,
-			0, 122, 1, 101, 118, 121, 110, 182, 195, 107, 0, 122, 1, 101, 118, 121, 110, 182, 195, 107, 2, 101, 107, 0, 122, 1, 101, 118, 173, 195,
-			109, 100, 108, 182, 195, 102, 0, 122, 1, 101, 118, 177, 197, 109, 100, 108, 182, 195, 102, 0, 122, 1, 101, 118, 177, 197, 109, 122, 169, 195,
-			107, 0, 122, 1, 101, 121, 103, 101, 2, 195, 161, 109, 0, 122, 1, 101, 121, 103, 101, 104, 2, 195, 182, 103, 0, 122, 1, 101, 121, 103,
-			169, 195, 110, 0, 122, 1, 101, 121, 108, 101, 107, 107, 105, 112, 2, 195, 161, 114, 110, 121, 0, 122, 1, 101, 121, 110, 101, 104, 114, 182,
-			195, 118, 2, 197, 145, 107, 101, 0, 122, 1, 101, 121, 110, 169, 195, 122, 115, 114, 101, 0, 122, 1, 101, 122, 115, 145, 197, 0, 122, 1,
-			101, 122, 115, 173, 195, 100, 0, 122, 1, 101, 122, 188, 195, 116, 2, 101, 109, 0, 122, 1, 105, 107, 2, 101, 98, 0, 122, 1, 105, 107,
-			2, 101, 100, 0, 122, 1, 105, 107, 2, 101, 107, 101, 0, 122, 1, 105, 107, 2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 105, 107,
-			2, 101, 114, 197, 177, 0, 122, 1, 105, 107, 2, 111, 98, 0, 122, 1, 105, 107, 2, 195, 161, 109, 0, 122, 1, 105, 107, 2, 195, 169,
-			107, 0, 122, 1, 105, 107, 2, 195, 179, 116, 195, 161, 114, 0, 122, 1, 105, 108, 161, 195, 105, 99, 111, 122, 115, 0, 122, 1, 105, 108,
-			161, 195, 114, 117, 116, 108, 117, 107, 0, 122, 1, 105, 109, 97, 104, 2, 195, 173, 110, 0, 122, 1, 105, 109, 97, 114, 105, 112, 0, 122,
-			1, 105, 109, 97, 114, 105, 112, 2, 101, 114, 197, 177, 0, 122, 1, 105, 110, 114, 111, 107, 105, 110, 117, 0, 122, 1, 105, 115, 99, 111,
-			107, 2, 101, 114, 101, 112, 0, 122, 1, 105, 116, 115, 101, 112, 0, 122, 1, 105, 116, 169, 195, 102, 0, 122, 1, 105, 116, 169, 195, 102,
-			2, 101, 114, 197, 177, 0, 122, 1, 105, 118, 182, 195, 116, 0, 122, 1, 105, 118, 182, 195, 116, 2, 195, 186, 114, 0, 122, 1, 105, 120,
-			97, 116, 0, 122, 1, 105, 122, 161, 195, 98, 0, 122, 1, 105, 122, 161, 195, 102, 0, 122, 1, 105, 122, 161, 195, 111, 2, 101, 114, 197,
-			177, 0, 122, 1, 105, 122, 161, 195, 114, 102, 2, 101, 114, 197, 177, 0, 122, 1, 105, 122, 173, 195, 108, 97, 110, 97, 0, 122, 1, 105,
-			122, 173, 195, 114, 107, 0, 122, 1, 105, 122, 179, 195, 100, 0, 122, 1, 105, 122, 179, 195, 104, 99, 105, 122, 115, 112, 0, 122, 1, 110,
-			97, 116, 115, 110, 111, 107, 0, 122, 1, 110, 101, 100, 105, 99, 110, 105, 0, 122, 1, 110, 101, 100, 105, 122, 101, 114, 0, 122, 1, 110,
-			101, 105, 108, 107, 2, 111, 102, 116, 0, 122, 1, 110, 101, 110, 105, 116, 110, 111, 107, 0, 122, 1, 110, 101, 118, 108, 111, 118, 101, 0,
-			122, 1, 110, 161, 195, 109, 114, 111, 102, 2, 105, 110, 116, 0, 122, 1, 110, 161, 195, 114, 103, 105, 109, 101, 0, 122, 1, 110, 161, 195,
-			116, 117, 109, 0, 122, 1, 111, 99, 114, 97, 0, 122, 1, 111, 99, 114, 97, 104, 0, 122, 1, 111, 100, 97, 121, 110, 161, 195, 104, 0,
-			122, 1, 111, 100, 108, 111, 115, 122, 0, 122, 1, 111, 102, 2, 195, 173, 110, 0, 122, 1, 111, 103, 110, 161, 195, 108, 0, 122, 1, 111,
-			103, 111, 108, 97, 121, 103, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 2, 195, 188, 114,
-			107, 101, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 2, 197, 145, 107, 101, 0, 122, 1, 111, 107, 2, 97, 114, 118, 0, 122, 1, 111,
-			107, 97, 108, 2, 195, 161, 109, 0, 122, 1, 111, 107, 105, 98, 117, 107, 0, 122, 1, 111, 107, 108, 105, 121, 103, 0, 122, 1, 111, 107,
-			110, 117, 98, 114, 101, 118, 0, 122, 1, 111, 107, 116, 105, 116, 2, 111, 108, 103, 0, 122, 1, 111, 107, 161, 195, 98, 117, 116, 2, 101,
-			108, 0, 122, 1, 111, 107, 161, 195, 114, 0, 122, 1, 111, 107, 169, 195, 116, 161, 195, 106, 0, 122, 1, 111, 107, 179, 195, 105, 102, 2,
-			101, 107, 114, 0, 122, 1, 111, 108, 161, 195, 112, 2, 101, 110, 0, 122, 1, 111, 108, 169, 195, 99, 110, 161, 195, 112, 0, 122, 1, 111,
-			109, 97, 108, 108, 105, 118, 0, 122, 1, 111, 109, 97, 108, 108, 105, 118, 2, 195, 169, 107, 0, 122, 1, 111, 109, 111, 108, 112, 109, 101,
-			116, 2, 97, 107, 0, 122, 1, 111, 109, 114, 111, 107, 0, 122, 1, 111, 112, 97, 108, 2, 195, 161, 114, 0, 122, 1, 111, 112, 186, 195,
-			112, 2, 195, 186, 110, 121, 111, 103, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 107, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 114,
-			105, 97, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 114, 105, 195, 161, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 114, 105, 195, 161,
-			106, 195, 186, 0, 122, 1, 111, 114, 97, 109, 0, 122, 1, 111, 114, 97, 118, 97, 122, 2, 195, 188, 114, 0, 122, 1, 111, 114, 97, 118,
-			117, 102, 0, 122, 1, 111, 114, 97, 118, 117, 102, 2, 101, 107, 195, 169, 114, 0, 122, 1, 111, 114, 105, 112, 2, 101, 109, 0, 122, 1,
-			111, 114, 105, 112, 97, 112, 0, 122, 1, 111, 114, 111, 112, 145, 197, 108, 0, 122, 1, 111, 114, 111, 116, 111, 109, 0, 122, 1, 111, 114,
-			111, 116, 111, 109, 2, 101, 109, 195, 188, 118, 101, 103, 0, 122, 1, 111, 114, 111, 116, 111, 109, 2, 195, 161, 110, 0, 122, 1, 111, 114,
-			111, 122, 115, 2, 101, 114, 197, 177, 0, 122, 1, 111, 114, 161, 195, 112, 107, 169, 195, 114, 101, 107, 0, 122, 1, 111, 114, 161, 195, 116,
-			118, 121, 110, 182, 195, 107, 0, 122, 1, 111, 114, 161, 195, 118, 2, 101, 114, 0, 122, 1, 111, 114, 161, 195, 118, 2, 105, 108, 117, 101,
-			116, 116, 0, 122, 1, 111, 114, 161, 195, 118, 2, 195, 169, 112, 101, 0, 122, 1, 111, 114, 173, 195, 115, 122, 2, 195, 161, 106, 0, 122,
-			1, 111, 114, 173, 195, 115, 122, 2, 195, 169, 110, 0, 122, 1, 111, 114, 179, 195, 107, 2, 101, 110, 0, 122, 1, 111, 115, 122, 186, 195,
-			114, 0, 122, 1, 111, 116, 97, 107, 97, 108, 0, 122, 1, 111, 116, 105, 112, 114, 161, 195, 107, 0, 122, 1, 111, 116, 108, 161, 195, 116,
-			2, 195, 161, 114, 110, 121, 0, 122, 1, 111, 116, 122, 105, 98, 0, 122, 1, 111, 118, 114, 111, 0, 122, 1, 111, 118, 114, 111, 2, 97,
-			107, 195, 169, 114, 116, 197, 145, 0, 122, 1, 111, 118, 114, 111, 2, 101, 109, 195, 169, 108, 121, 0, 122, 1, 111, 118, 114, 111, 2, 101,
-			114, 0, 122, 1, 111, 118, 114, 111, 2, 101, 114, 0, 122, 1, 111, 118, 114, 111, 2, 195, 161, 122, 0, 122, 1, 111, 118, 114, 111, 2,
-			195, 182, 118, 101, 116, 115, 195, 169, 103, 0, 122, 1, 111, 121, 103, 97, 102, 2, 101, 110, 116, 0, 122, 1, 111, 121, 108, 161, 195, 103,
-			114, 101, 116, 122, 115, 101, 0, 122, 1, 111, 121, 110, 97, 114, 97, 2, 197, 145, 107, 101, 0, 122, 1, 114, 101, 118, 2, 97, 107, 0,
-			122, 1, 114, 101, 118, 2, 101, 114, 0, 122, 1, 114, 101, 118, 2, 101, 114, 122, 0, 122, 1, 114, 111, 98, 2, 101, 109, 0, 122, 1,
-			114, 111, 98, 2, 195, 179, 114, 0, 122, 1, 114, 111, 115, 2, 101, 114, 197, 177, 0, 122, 1, 114, 111, 121, 103, 2, 197, 177, 114, 0,
-			122, 1, 114, 145, 197, 145, 197, 108, 101, 2, 101, 114, 197, 177, 0, 122, 1, 114, 161, 195, 116, 2, 101, 107, 195, 169, 114, 0, 122, 1,
-			114, 161, 195, 116, 2, 101, 114, 0, 122, 1, 114, 161, 195, 116, 2, 111, 109, 115, 122, 195, 169, 100, 0, 122, 1, 114, 161, 195, 116, 2,
-			195, 182, 118, 101, 0, 122, 1, 114, 161, 195, 116, 114, 111, 107, 0, 122, 1, 117, 100, 179, 195, 105, 114, 101, 112, 0, 122, 1, 117, 103,
-			161, 195, 109, 0, 122, 1, 117, 103, 179, 195, 103, 97, 100, 101, 112, 0, 122, 1, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 111, 98,
-			0, 122, 1, 117, 103, 179, 195, 108, 97, 116, 97, 107, 2, 195, 161, 109, 0, 122, 1, 117, 103, 179, 195, 108, 105, 112, 101, 0, 122, 1,
-			117, 103, 179, 195, 108, 111, 104, 99, 105, 122, 115, 112, 0, 122, 1, 117, 103, 179, 195, 108, 111, 114, 111, 101, 116, 101, 109, 0, 122, 1,
-			117, 107, 105, 109, 97, 110, 105, 100, 0, 122, 1, 117, 107, 105, 110, 111, 114, 116, 107, 101, 108, 101, 0, 122, 1, 117, 107, 105, 114, 116,
-			110, 105, 0, 122, 1, 117, 107, 105, 115, 122, 117, 109, 0, 122, 1, 117, 107, 105, 116, 101, 116, 110, 105, 122, 115, 0, 122, 1, 117, 107,
-			105, 116, 122, 115, 117, 107, 97, 0, 122, 1, 117, 108, 107, 105, 99, 0, 122, 1, 117, 108, 173, 195, 116, 115, 0, 122, 1, 117, 108, 179,
-			195, 112, 0, 122, 1, 117, 109, 116, 105, 114, 0, 122, 1, 117, 109, 116, 105, 114, 2, 97, 98, 0, 122, 1, 117, 109, 122, 97, 103, 114,
-			111, 0, 122, 1, 117, 109, 122, 105, 107, 101, 116, 97, 107, 2, 101, 114, 197, 177, 0, 122, 1, 117, 109, 122, 105, 108, 97, 116, 105, 112,
-			97, 107, 0, 122, 1, 117, 109, 122, 105, 114, 117, 116, 0, 122, 1, 117, 109, 122, 105, 116, 117, 97, 0, 122, 1, 117, 110, 105, 99, 105,
-			114, 0, 122, 1, 117, 110, 161, 195, 108, 117, 2, 195, 161, 122, 97, 100, 0, 122, 1, 117, 110, 179, 195, 107, 97, 105, 100, 0, 122, 1,
-			117, 110, 179, 195, 114, 116, 0, 122, 1, 117, 112, 97, 107, 0, 122, 1, 117, 112, 105, 116, 2, 195, 161, 109, 0, 122, 1, 117, 112, 173,
-			195, 116, 0, 122, 1, 117, 114, 112, 105, 99, 0, 122, 1, 117, 114, 116, 105, 99, 0, 122, 1, 117, 114, 173, 195, 118, 0, 122, 1, 117,
-			114, 179, 195, 107, 0, 122, 1, 117, 115, 179, 195, 109, 2, 101, 114, 0, 122, 1, 117, 116, 105, 98, 97, 104, 2, 101, 114, 197, 177, 0,
-			122, 1, 117, 116, 107, 97, 116, 0, 122, 1, 117, 116, 107, 101, 102, 102, 101, 0, 122, 1, 117, 116, 107, 105, 108, 102, 110, 111, 107, 0,
-			122, 1, 117, 116, 110, 105, 114, 105, 98, 97, 108, 0, 122, 1, 117, 116, 110, 105, 114, 105, 98, 97, 108, 2, 101, 114, 0, 122, 1, 117,
-			116, 120, 101, 116, 0, 122, 1, 117, 116, 122, 115, 101, 103, 0, 122, 1, 117, 116, 161, 195, 107, 105, 100, 110, 105, 122, 115, 0, 122, 1,
-			117, 116, 173, 195, 114, 0, 122, 1, 117, 120, 117, 108, 0, 122, 1, 117, 122, 108, 117, 112, 0, 122, 1, 117, 122, 108, 117, 112, 2, 195,
-			161, 109, 0, 122, 1, 117, 122, 114, 117, 107, 0, 122, 1, 117, 122, 115, 115, 97, 98, 0, 122, 1, 117, 122, 169, 195, 106, 0, 122, 1,
-			145, 197, 2, 97, 114, 118, 0, 122, 1, 145, 197, 2, 195, 161, 114, 109, 0, 122, 1, 145, 197, 2, 195, 182, 114, 110, 121, 0, 122, 1,
-			145, 197, 2, 195, 188, 108, 101, 0, 122, 1, 145, 197, 2, 195, 188, 108, 197, 145, 0, 122, 1, 145, 197, 104, 2, 101, 114, 101, 108, 0,
-			122, 1, 145, 197, 104, 2, 101, 114, 101, 112, 0, 122, 1, 145, 197, 108, 109, 101, 2, 101, 114, 197, 177, 0, 122, 1, 145, 197, 108, 188,
-			195, 112, 101, 114, 2, 116, 114, 195, 161, 106, 107, 0, 122, 1, 145, 197, 108, 188, 195, 112, 101, 114, 2, 195, 161, 114, 110, 121, 0, 122,
-			1, 145, 197, 110, 107, 101, 116, 0, 122, 1, 145, 197, 112, 105, 99, 0, 122, 1, 145, 197, 116, 110, 101, 109, 0, 122, 1, 145, 197, 116,
-			188, 195, 0, 122, 1, 145, 197, 122, 101, 118, 101, 0, 122, 1, 161, 195, 98, 97, 122, 115, 106, 173, 195, 100, 0, 122, 1, 161, 195, 100,
-			97, 0, 122, 1, 161, 195, 100, 97, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 100, 97, 2, 195, 188, 110, 101, 116, 0, 122, 1, 161,
-			195, 100, 97, 122, 161, 195, 108, 0, 122, 1, 161, 195, 100, 105, 115, 122, 100, 0, 122, 1, 161, 195, 100, 108, 111, 103, 101, 109, 0, 122,
-			1, 161, 195, 100, 110, 111, 109, 0, 122, 1, 161, 195, 100, 111, 108, 108, 161, 195, 122, 115, 0, 122, 1, 161, 195, 100, 111, 112, 97, 108,
-			108, 161, 195, 103, 101, 109, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 100, 111, 118, 2, 105, 110, 116, 0, 122, 1, 161, 195, 100, 114,
-			161, 195, 115, 99, 2, 195, 179, 108, 0, 122, 1, 161, 195, 100, 117, 116, 0, 122, 1, 161, 195, 100, 117, 116, 2, 105, 110, 116, 0, 122,
-			1, 161, 195, 100, 117, 116, 2, 111, 109, 106, 0, 122, 1, 161, 195, 100, 179, 195, 122, 115, 2, 105, 0, 122, 1, 161, 195, 100, 186, 195,
-			106, 0, 122, 1, 161, 195, 101, 116, 2, 101, 114, 118, 0, 122, 1, 161, 195, 102, 2, 101, 114, 0, 122, 1, 161, 195, 103, 108, 97, 115,
-			114, 161, 195, 116, 2, 195, 161, 109, 98, 97, 0, 122, 1, 161, 195, 103, 110, 111, 114, 111, 122, 115, 0, 122, 1, 161, 195, 103, 110, 111,
-			122, 114, 111, 98, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 110, 161, 195, 114, 2, 101, 114, 0, 122, 1, 161, 195, 103, 111, 104,
-			117, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 111, 112, 105, 115, 99, 0, 122, 1, 161, 195, 103, 111, 116, 116, 97, 107, 0,
-			122, 1, 161, 195, 103, 111, 118, 161, 195, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 114, 111, 102, 2, 101, 114, 0, 122,
-			1, 161, 195, 103, 114, 161, 195, 115, 0, 122, 1, 161, 195, 103, 122, 111, 109, 0, 122, 1, 161, 195, 103, 161, 195, 118, 0, 122, 1, 161,
-			195, 103, 186, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 104, 108, 161, 195, 109, 0, 122, 1, 161, 195, 104, 117, 114, 2, 101,
-			107, 101, 114, 101, 0, 122, 1, 161, 195, 104, 117, 114, 2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 161, 195, 104, 117, 114, 2, 111,
-			98, 0, 122, 1, 161, 195, 106, 161, 195, 102, 2, 101, 114, 0, 122, 1, 161, 195, 107, 97, 108, 0, 122, 1, 161, 195, 107, 97, 108, 2,
-			101, 110, 0, 122, 1, 161, 195, 107, 105, 114, 112, 97, 112, 0, 122, 1, 161, 195, 107, 110, 111, 115, 0, 122, 1, 161, 195, 107, 111, 122,
-			115, 2, 101, 114, 0, 122, 1, 161, 195, 107, 111, 122, 115, 2, 195, 161, 109, 0, 122, 1, 161, 195, 107, 117, 98, 0, 122, 1, 161, 195,
-			108, 97, 114, 97, 121, 110, 0, 122, 1, 161, 195, 108, 97, 116, 117, 0, 122, 1, 161, 195, 108, 97, 116, 117, 2, 101, 114, 197, 177, 0,
-			122, 1, 161, 195, 108, 103, 97, 110, 111, 118, 0, 122, 1, 161, 195, 108, 106, 97, 104, 2, 195, 182, 103, 0, 122, 1, 161, 195, 108, 107,
-			117, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108, 108, 97, 118, 0, 122, 1, 161, 195, 108, 108, 97, 118, 2, 97, 98, 0,
-			122, 1, 161, 195, 108, 108, 161, 195, 0, 122, 1, 161, 195, 108, 108, 161, 195, 2, 195, 182, 103, 0, 122, 1, 161, 195, 108, 108, 161, 195,
-			110, 101, 108, 108, 101, 2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 161, 195, 108, 109, 97, 114, 161, 195, 0, 122, 1, 161, 195, 108,
-			109, 97, 122, 115, 117, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108, 109, 111, 2, 97, 103, 0, 122, 1, 161, 195, 108, 109,
-			111, 101, 122, 115, 115, 182, 195, 0, 122, 1, 161, 195, 108, 109, 161, 195, 108, 108, 105, 118, 0, 122, 1, 161, 195, 108, 109, 161, 195, 116,
-			2, 195, 169, 107, 0, 122, 1, 161, 195, 108, 111, 98, 111, 100, 0, 122, 1, 161, 195, 108, 111, 103, 110, 161, 195, 108, 0, 122, 1, 161,
-			195, 108, 111, 107, 114, 111, 104, 0, 122, 1, 161, 195, 108, 111, 114, 97, 115, 122, 2, 101, 114, 0, 122, 1, 161, 195, 108, 111, 114, 111,
-			115, 108, 101, 102, 0, 122, 1, 161, 195, 108, 111, 115, 112, 97, 116, 0, 122, 1, 161, 195, 108, 111, 116, 108, 101, 0, 122, 1, 161, 195,
-			108, 114, 97, 122, 97, 112, 0, 122, 1, 161, 195, 108, 114, 111, 116, 103, 101, 109, 0, 122, 1, 161, 195, 108, 114, 111, 116, 105, 118, 0,
-			122, 1, 161, 195, 108, 116, 179, 195, 112, 0, 122, 1, 161, 195, 108, 117, 100, 110, 161, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161,
-			195, 108, 117, 103, 161, 195, 116, 2, 97, 98, 195, 161, 108, 121, 0, 122, 1, 161, 195, 108, 117, 106, 161, 195, 2, 101, 114, 197, 177, 0,
-			122, 1, 161, 195, 108, 117, 110, 97, 116, 0, 122, 1, 161, 195, 108, 117, 115, 114, 161, 195, 116, 0, 122, 1, 161, 195, 108, 161, 195, 116,
-			105, 98, 109, 111, 114, 116, 0, 122, 1, 161, 195, 108, 161, 195, 116, 110, 161, 195, 107, 0, 122, 1, 161, 195, 108, 161, 195, 118, 111, 116,
-			101, 116, 0, 122, 1, 161, 195, 108, 179, 195, 122, 115, 2, 97, 98, 97, 100, 0, 122, 1, 161, 195, 108, 186, 195, 121, 110, 0, 122, 1,
-			161, 195, 109, 2, 101, 114, 0, 122, 1, 161, 195, 109, 2, 111, 114, 0, 122, 1, 161, 195, 109, 2, 197, 145, 114, 0, 122, 1, 161, 195,
-			109, 108, 97, 2, 195, 188, 114, 107, 0, 122, 1, 161, 195, 109, 108, 97, 2, 195, 188, 114, 107, 101, 0, 122, 1, 161, 195, 109, 111, 108,
-			108, 161, 195, 0, 122, 1, 161, 195, 109, 111, 116, 161, 195, 108, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 109, 111, 121, 110, 0, 122,
-			1, 161, 195, 109, 111, 121, 110, 2, 97, 98, 0, 122, 1, 161, 195, 109, 111, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 109,
-			121, 103, 101, 0, 122, 1, 161, 195, 109, 173, 195, 114, 112, 0, 122, 1, 161, 195, 110, 97, 98, 98, 111, 100, 0, 122, 1, 161, 195, 110,
-			97, 98, 98, 111, 108, 0, 122, 1, 161, 195, 110, 97, 98, 98, 111, 114, 0, 122, 1, 161, 195, 110, 97, 98, 98, 111, 114, 2, 101, 114,
-			0, 122, 1, 161, 195, 110, 97, 98, 98, 111, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 104, 111, 114, 0, 122, 1,
-			161, 195, 110, 97, 104, 117, 122, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 107, 107, 105, 121, 110, 2, 101, 114, 0, 122, 1,
-			161, 195, 110, 97, 108, 108, 105, 118, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 116, 116, 97, 115, 99, 2, 101, 114, 197, 177,
-			0, 122, 1, 161, 195, 110, 103, 161, 195, 109, 0, 122, 1, 161, 195, 110, 111, 118, 0, 122, 1, 161, 195, 110, 111, 118, 108, 101, 102, 0,
-			122, 1, 161, 195, 110, 114, 97, 98, 2, 197, 145, 107, 0, 122, 1, 161, 195, 110, 114, 161, 195, 112, 2, 195, 169, 107, 0, 122, 1, 161,
-			195, 110, 169, 195, 122, 115, 2, 101, 107, 0, 122, 1, 161, 195, 112, 97, 107, 2, 197, 145, 108, 197, 145, 0, 122, 1, 161, 195, 112, 97,
-			115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 112, 97, 115, 99, 2, 195, 161, 109, 0, 122, 1, 161, 195, 112, 109, 161, 195, 108,
-			0, 122, 1, 161, 195, 114, 97, 112, 97, 107, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 97, 118, 97, 107, 2, 101, 114, 197, 177,
-			0, 122, 1, 161, 195, 114, 97, 118, 97, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 103, 117, 0, 122, 1, 161, 195, 114,
-			103, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 111, 115, 122, 117, 0, 122, 1, 161, 195, 114, 114, 97, 118, 0, 122, 1, 161,
-			195, 114, 114, 111, 102, 145, 197, 114, 101, 0, 122, 1, 161, 195, 114, 161, 195, 106, 0, 122, 1, 161, 195, 114, 161, 195, 106, 2, 101, 114,
-			197, 177, 0, 122, 1, 161, 195, 114, 161, 195, 106, 2, 111, 108, 103, 195, 161, 108, 97, 116, 0, 122, 1, 161, 195, 114, 173, 195, 0, 122,
+			2, 101, 110, 115, 195, 186, 108, 121, 0, 1, 101, 2, 101, 115, 195, 188, 108, 101, 116, 0, 1, 101, 2, 101, 116, 195, 169, 114, 116, 0,
+			1, 101, 2, 101, 122, 107, 101, 100, 0, 1, 101, 2, 101, 122, 116, 101, 116, 0, 1, 101, 2, 105, 100, 101, 106, 197, 177, 0, 1, 101,
+			2, 105, 114, 195, 161, 110, 121, 195, 186, 0, 1, 101, 2, 195, 161, 108, 116, 97, 108, 195, 161, 110, 0, 1, 101, 2, 195, 169, 106, 115,
+			122, 97, 107, 0, 1, 101, 2, 195, 169, 114, 116, 0, 1, 101, 2, 195, 169, 114, 116, 101, 108, 109, 197, 177, 0, 1, 101, 2, 195, 186,
+			116, 116, 97, 108, 0, 1, 101, 45, 109, 101, 110, 2, 101, 122, 0, 1, 101, 45, 109, 101, 110, 2, 105, 107, 0, 1, 101, 45, 109, 101,
+			110, 2, 195, 188, 116, 116, 0, 1, 101, 97, 114, 106, 186, 195, 2, 101, 115, 195, 173, 116, 0, 1, 101, 99, 110, 105, 109, 114, 97, 104,
+			2, 101, 100, 105, 107, 0, 1, 101, 101, 108, 101, 98, 2, 101, 122, 0, 1, 101, 101, 122, 115, 115, 182, 195, 2, 101, 115, 195, 173, 116,
+			0, 1, 101, 103, 101, 109, 108, 169, 195, 102, 2, 101, 122, 0, 1, 101, 105, 107, 2, 101, 122, 0, 1, 101, 110, 101, 122, 105, 116, 2,
+			101, 100, 105, 107, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 100, 115, 122, 101, 114, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 110,
+			0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 115, 0, 1, 101, 110, 101, 122, 105, 116, 2, 101, 116, 0, 1, 101, 110, 111, 122, 115, 117,
+			104, 2, 101, 100, 0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 100, 105, 107, 0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 115,
+			0, 1, 101, 110, 111, 122, 115, 117, 104, 2, 101, 122, 0, 1, 101, 116, 101, 108, 188, 195, 112, 169, 195, 2, 195, 188, 116, 116, 0, 1,
+			101, 122, 161, 195, 122, 115, 2, 101, 100, 105, 107, 0, 1, 101, 122, 161, 195, 122, 115, 2, 101, 115, 0, 8, 101, 2, 97, 98, 108, 97,
+			107, 0, 8, 101, 2, 101, 108, 0, 8, 101, 2, 101, 115, 0, 8, 101, 2, 101, 116, 32, 0, 8, 101, 2, 101, 116, 108, 101, 110, 0,
+			8, 101, 2, 101, 122, 0, 8, 101, 2, 101, 122, 109, 195, 169, 110, 121, 0, 8, 101, 2, 105, 100, 197, 145, 0, 8, 101, 2, 105, 107,
+			0, 8, 101, 2, 111, 108, 100, 97, 108, 0, 8, 101, 2, 195, 161, 103, 121, 0, 8, 101, 2, 195, 169, 32, 0, 8, 101, 2, 195, 169,
+			118, 0, 8, 101, 2, 195, 179, 114, 195, 161, 0, 8, 101, 2, 195, 182, 110, 116, 101, 116, 0, 8, 101, 2, 195, 182, 115, 115, 122, 101,
+			103, 0, 8, 101, 2, 195, 188, 116, 0, 8, 101, 45, 116, 110, 105, 109, 2, 195, 169, 32, 0, 8, 101, 103, 101, 109, 2, 101, 122, 0,
+			8, 101, 107, 101, 122, 115, 105, 104, 2, 101, 0, 8, 101, 110, 111, 122, 115, 117, 104, 2, 101, 0, 8, 101, 114, 101, 122, 115, 121, 103,
+			101, 2, 101, 0, 106, 1, 17, 65, 2, 17, 65, 0, 106, 1, 97, 104, 0, 106, 1, 101, 2, 101, 108, 101, 110, 116, 195, 169, 115, 197,
+			177, 3, 79, 57, 0, 4, 115, 122, 3, 79, 89, 0, 115, 122, 1, 17, 65, 2, 17, 65, 0, 115, 122, 1, 97, 110, 2, 97, 0, 4,
+			115, 1, 101, 2, 195, 161, 118, 3, 79, 91, 0, 115, 1, 101, 2, 195, 169, 103, 0, 115, 1, 101, 2, 195, 173, 107, 0, 115, 1, 186,
+			195, 2, 101, 0, 115, 8, 173, 195, 2, 101, 0, 7, 6, 115, 115, 0, 4, 122, 1, 97, 2, 105, 115, 122, 116, 101, 110, 115, 3, 89,
+			0, 122, 1, 97, 2, 105, 115, 122, 116, 195, 161, 108, 0, 122, 1, 97, 107, 2, 195, 173, 114, 111, 122, 0, 122, 1, 97, 109, 2, 195,
+			173, 114, 111, 122, 0, 122, 1, 97, 112, 2, 195, 173, 114, 111, 122, 0, 122, 1, 111, 114, 105, 112, 2, 107, 97, 0, 122, 2, 18, 66,
+			0, 122, 2, 45, 18, 66, 0, 122, 8, 97, 2, 105, 115, 122, 116, 0, 122, 8, 101, 2, 101, 110, 99, 105, 0, 122, 8, 101, 122, 115,
+			101, 110, 2, 101, 114, 0, 4, 1, 117, 105, 98, 117, 110, 97, 100, 3, 89, 12, 0, 1, 117, 116, 110, 101, 118, 117, 106, 0, 8, 101,
+			107, 2, 101, 108, 114, 105, 110, 103, 0, 122, 1, 97, 118, 97, 116, 2, 97, 0, 122, 1, 97, 118, 107, 2, 105, 97, 107, 195, 169, 114,
+			0, 122, 1, 97, 118, 108, 111, 0, 122, 1, 97, 118, 109, 97, 104, 0, 122, 1, 97, 118, 114, 111, 115, 2, 195, 161, 107, 0, 122, 1,
+			97, 118, 117, 121, 110, 0, 122, 1, 97, 118, 121, 116, 111, 107, 0, 122, 1, 97, 118, 186, 195, 121, 110, 0, 122, 1, 101, 108, 169, 195,
+			108, 182, 195, 102, 2, 101, 109, 0, 122, 1, 117, 105, 98, 117, 110, 97, 100, 0, 122, 1, 117, 116, 110, 101, 118, 117, 106, 0, 122, 8,
+			97, 108, 101, 109, 2, 195, 173, 110, 0, 122, 8, 97, 118, 97, 114, 0, 122, 8, 97, 118, 114, 111, 115, 0, 122, 8, 97, 118, 117, 115,
+			2, 97, 0, 122, 8, 169, 195, 110, 101, 112, 2, 195, 173, 110, 0, 122, 114, 3, 89, 52, 0, 122, 98, 3, 89, 71, 0, 4, 1, 117,
+			109, 2, 111, 108, 105, 110, 3, 89, 122, 0, 122, 0, 4, 1, 117, 116, 108, 101, 2, 111, 108, 3, 91, 0, 1, 145, 197, 108, 101, 108,
+			101, 102, 2, 195, 169, 103, 0, 1, 188, 195, 108, 112, 2, 122, 115, 0, 2, 18, 66, 0, 2, 45, 18, 66, 0, 4, 1, 105, 114, 102,
+			2, 122, 195, 182, 108, 3, 91, 12, 0, 1, 161, 195, 110, 97, 98, 98, 111, 114, 0, 114, 3, 91, 52, 0, 98, 3, 91, 71, 0, 4,
+			122, 1, 97, 103, 97, 109, 2, 195, 161, 114, 195, 186, 3, 91, 89, 0, 122, 1, 97, 103, 111, 102, 2, 101, 103, 0, 122, 1, 97, 103,
+			117, 108, 2, 101, 114, 197, 177, 0, 122, 1, 97, 107, 2, 195, 169, 107, 0, 122, 1, 97, 107, 97, 107, 2, 195, 169, 107, 0, 122, 1,
+			97, 107, 114, 97, 102, 2, 101, 109, 0, 122, 1, 97, 107, 114, 97, 102, 2, 101, 114, 197, 177, 0, 122, 1, 97, 107, 114, 97, 102, 2,
+			117, 107, 0, 122, 1, 97, 107, 114, 97, 102, 2, 195, 188, 114, 107, 0, 122, 1, 97, 107, 114, 97, 102, 2, 197, 145, 108, 197, 145, 0,
+			122, 1, 97, 109, 114, 161, 195, 104, 2, 97, 98, 0, 122, 1, 97, 109, 114, 161, 195, 104, 2, 195, 161, 109, 0, 122, 1, 97, 109, 114,
+			161, 195, 104, 2, 195, 182, 0, 122, 1, 97, 115, 2, 101, 109, 0, 122, 1, 97, 115, 97, 118, 2, 97, 107, 0, 122, 1, 97, 116, 116,
+			111, 108, 97, 104, 0, 122, 1, 97, 116, 117, 2, 101, 114, 0, 122, 1, 97, 116, 117, 2, 105, 110, 116, 0, 122, 1, 97, 116, 117, 2,
+			111, 108, 103, 0, 122, 1, 97, 116, 117, 2, 195, 161, 108, 0, 122, 1, 97, 116, 117, 2, 195, 161, 109, 0, 122, 1, 97, 118, 109, 97,
+			104, 2, 197, 145, 107, 101, 0, 122, 1, 97, 122, 114, 111, 98, 2, 197, 145, 114, 0, 122, 1, 101, 98, 98, 182, 195, 116, 2, 195, 161,
+			109, 0, 122, 1, 101, 100, 101, 122, 105, 116, 2, 195, 161, 108, 108, 195, 161, 115, 0, 122, 1, 101, 100, 108, 182, 195, 122, 2, 195, 188,
+			114, 107, 0, 122, 1, 101, 100, 108, 182, 195, 122, 2, 195, 188, 114, 107, 101, 0, 122, 1, 101, 100, 169, 195, 2, 195, 161, 106, 0, 122,
+			1, 101, 100, 169, 195, 2, 195, 188, 108, 0, 122, 1, 101, 104, 169, 195, 2, 195, 161, 106, 0, 122, 1, 101, 104, 169, 195, 109, 0, 122,
+			1, 101, 107, 169, 195, 2, 195, 179, 0, 122, 1, 101, 107, 169, 195, 2, 195, 179, 108, 0, 122, 1, 101, 107, 169, 195, 107, 2, 195, 188,
+			114, 107, 0, 122, 1, 101, 108, 101, 100, 101, 102, 2, 195, 161, 114, 110, 121, 0, 122, 1, 101, 108, 101, 102, 106, 101, 116, 2, 195, 161,
+			106, 0, 122, 1, 101, 108, 169, 195, 2, 101, 109, 0, 122, 1, 101, 108, 182, 195, 107, 2, 101, 109, 0, 122, 1, 101, 109, 101, 110, 2,
+			195, 173, 118, 0, 122, 1, 101, 109, 101, 110, 2, 197, 145, 114, 109, 0, 122, 1, 101, 109, 121, 108, 101, 115, 2, 197, 145, 107, 101, 0,
+			122, 1, 101, 110, 101, 121, 103, 101, 0, 122, 1, 101, 110, 101, 121, 103, 101, 2, 195, 161, 108, 0, 122, 1, 101, 112, 101, 122, 115, 2,
+			111, 109, 98, 97, 116, 0, 122, 1, 101, 114, 100, 101, 109, 2, 195, 169, 107, 0, 122, 1, 101, 114, 101, 118, 2, 197, 145, 107, 101, 0,
+			122, 1, 101, 114, 101, 122, 115, 145, 197, 108, 0, 122, 1, 101, 114, 169, 195, 104, 101, 102, 2, 195, 188, 114, 107, 0, 122, 1, 101, 114,
+			169, 195, 104, 101, 102, 2, 197, 145, 107, 101, 0, 122, 1, 101, 114, 169, 195, 118, 2, 195, 161, 106, 0, 122, 1, 101, 115, 99, 169, 195,
+			109, 0, 122, 1, 101, 115, 182, 195, 114, 182, 195, 118, 2, 197, 145, 107, 101, 0, 122, 1, 101, 116, 101, 108, 101, 121, 103, 188, 195, 2,
+			111, 98, 0, 122, 1, 101, 116, 101, 122, 114, 101, 122, 115, 2, 101, 114, 0, 122, 1, 101, 116, 114, 169, 195, 118, 2, 195, 161, 122, 97,
+			100, 0, 122, 1, 101, 116, 114, 169, 195, 118, 2, 197, 145, 108, 197, 145, 0, 122, 1, 101, 118, 100, 101, 110, 2, 195, 188, 114, 107, 0,
+			122, 1, 101, 118, 101, 108, 2, 101, 100, 0, 122, 1, 101, 118, 121, 110, 182, 195, 107, 0, 122, 1, 101, 118, 121, 110, 182, 195, 107, 2,
+			101, 107, 0, 122, 1, 101, 121, 103, 101, 104, 2, 195, 182, 103, 0, 122, 1, 101, 121, 108, 101, 107, 107, 105, 112, 2, 195, 161, 114, 110,
+			121, 0, 122, 1, 101, 121, 110, 101, 104, 114, 182, 195, 118, 2, 197, 145, 107, 101, 0, 122, 1, 101, 122, 115, 145, 197, 0, 122, 1, 101,
+			122, 188, 195, 116, 2, 101, 109, 0, 122, 1, 105, 107, 2, 101, 98, 0, 122, 1, 105, 107, 2, 101, 100, 0, 122, 1, 105, 107, 2, 101,
+			107, 114, 195, 169, 110, 121, 0, 122, 1, 105, 107, 2, 101, 114, 197, 177, 0, 122, 1, 105, 107, 2, 111, 98, 0, 122, 1, 105, 107, 2,
+			195, 161, 109, 0, 122, 1, 105, 107, 2, 195, 169, 107, 0, 122, 1, 105, 107, 2, 195, 179, 116, 195, 161, 114, 0, 122, 1, 105, 109, 97,
+			114, 105, 112, 2, 101, 114, 197, 177, 0, 122, 1, 105, 115, 99, 111, 107, 2, 101, 114, 101, 112, 0, 122, 1, 105, 116, 169, 195, 102, 2,
+			101, 114, 197, 177, 0, 122, 1, 105, 118, 182, 195, 116, 0, 122, 1, 105, 118, 182, 195, 116, 2, 195, 186, 114, 0, 122, 1, 105, 122, 161,
+			195, 98, 0, 122, 1, 105, 122, 161, 195, 111, 2, 101, 114, 197, 177, 0, 122, 1, 105, 122, 161, 195, 114, 102, 2, 101, 114, 197, 177, 0,
+			122, 1, 110, 101, 105, 108, 107, 2, 111, 102, 116, 0, 122, 1, 111, 99, 114, 97, 104, 0, 122, 1, 111, 100, 108, 111, 115, 122, 0, 122,
+			1, 111, 103, 111, 108, 97, 121, 103, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 2, 195,
+			188, 114, 107, 101, 0, 122, 1, 111, 103, 161, 195, 108, 105, 118, 2, 197, 145, 107, 101, 0, 122, 1, 111, 107, 2, 97, 114, 118, 0, 122,
+			1, 111, 107, 97, 108, 2, 195, 161, 109, 0, 122, 1, 111, 107, 116, 105, 116, 2, 111, 108, 103, 195, 161, 108, 0, 122, 1, 111, 107, 161,
+			195, 98, 117, 116, 2, 101, 108, 0, 122, 1, 111, 107, 179, 195, 105, 102, 2, 101, 107, 114, 0, 122, 1, 111, 108, 169, 195, 99, 110, 161,
+			195, 112, 0, 122, 1, 111, 109, 97, 108, 108, 105, 118, 0, 122, 1, 111, 109, 97, 108, 108, 105, 118, 2, 195, 169, 107, 0, 122, 1, 111,
+			109, 111, 108, 112, 109, 101, 116, 2, 97, 107, 0, 122, 1, 111, 109, 114, 111, 107, 0, 122, 1, 111, 112, 97, 108, 2, 195, 161, 114, 0,
+			122, 1, 111, 112, 186, 195, 112, 2, 195, 186, 110, 121, 111, 103, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 107, 0, 122, 1, 111, 114,
+			97, 107, 2, 195, 169, 114, 105, 97, 0, 122, 1, 111, 114, 97, 107, 2, 195, 169, 114, 105, 195, 161, 0, 122, 1, 111, 114, 97, 107, 2,
+			195, 169, 114, 105, 195, 161, 106, 195, 186, 0, 122, 1, 111, 114, 97, 109, 0, 122, 1, 111, 114, 97, 118, 97, 122, 2, 195, 188, 114, 0,
+			122, 1, 111, 114, 97, 118, 117, 102, 2, 101, 107, 195, 169, 114, 0, 122, 1, 111, 114, 105, 112, 2, 101, 109, 0, 122, 1, 111, 114, 105,
+			112, 97, 112, 0, 122, 1, 111, 114, 111, 112, 145, 197, 108, 0, 122, 1, 111, 114, 111, 116, 111, 109, 2, 101, 109, 195, 188, 118, 101, 103,
+			0, 122, 1, 111, 114, 111, 116, 111, 109, 2, 195, 161, 110, 0, 122, 1, 111, 114, 111, 122, 115, 2, 101, 114, 197, 177, 0, 122, 1, 111,
+			114, 161, 195, 118, 2, 101, 114, 0, 122, 1, 111, 114, 161, 195, 118, 2, 105, 108, 117, 101, 116, 116, 0, 122, 1, 111, 114, 161, 195, 118,
+			2, 195, 169, 112, 101, 0, 122, 1, 111, 114, 173, 195, 115, 122, 2, 195, 161, 106, 0, 122, 1, 111, 114, 173, 195, 115, 122, 2, 195, 169,
+			110, 0, 122, 1, 111, 116, 108, 161, 195, 116, 2, 195, 161, 114, 110, 121, 0, 122, 1, 111, 118, 114, 111, 2, 97, 107, 195, 169, 114, 116,
+			197, 145, 0, 122, 1, 111, 118, 114, 111, 2, 101, 109, 195, 169, 108, 121, 0, 122, 1, 111, 118, 114, 111, 2, 101, 114, 0, 122, 1, 111,
+			118, 114, 111, 2, 101, 114, 0, 122, 1, 111, 118, 114, 111, 2, 195, 161, 122, 0, 122, 1, 111, 118, 114, 111, 2, 195, 182, 118, 101, 116,
+			115, 195, 169, 103, 0, 122, 1, 111, 121, 103, 97, 102, 2, 101, 110, 116, 0, 122, 1, 111, 121, 110, 97, 114, 97, 2, 197, 145, 107, 101,
+			0, 122, 1, 114, 101, 118, 2, 97, 107, 0, 122, 1, 114, 101, 118, 2, 101, 114, 122, 0, 122, 1, 114, 111, 98, 2, 101, 109, 0, 122,
+			1, 114, 111, 98, 2, 195, 179, 114, 0, 122, 1, 114, 111, 115, 2, 101, 114, 197, 177, 0, 122, 1, 114, 111, 121, 103, 2, 197, 177, 114,
+			0, 122, 1, 114, 145, 197, 145, 197, 108, 101, 2, 101, 114, 197, 177, 0, 122, 1, 114, 161, 195, 116, 2, 101, 107, 195, 169, 114, 0, 122,
+			1, 114, 161, 195, 116, 2, 101, 114, 0, 122, 1, 114, 161, 195, 116, 2, 111, 109, 115, 122, 195, 169, 100, 0, 122, 1, 114, 161, 195, 116,
+			2, 195, 182, 118, 101, 0, 122, 1, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 111, 98, 0, 122, 1, 117, 103, 179, 195, 108, 97, 116,
+			97, 107, 2, 195, 161, 109, 0, 122, 1, 117, 107, 105, 115, 122, 117, 109, 0, 122, 1, 117, 109, 116, 105, 114, 2, 97, 98, 0, 122, 1,
+			117, 109, 122, 105, 107, 101, 116, 97, 107, 2, 101, 114, 197, 177, 0, 122, 1, 117, 110, 161, 195, 108, 117, 2, 195, 161, 122, 97, 100, 0,
+			122, 1, 117, 112, 97, 107, 0, 122, 1, 117, 112, 105, 116, 2, 195, 161, 109, 0, 122, 1, 117, 116, 105, 98, 97, 104, 2, 101, 114, 197,
+			177, 0, 122, 1, 117, 116, 110, 105, 114, 105, 98, 97, 108, 2, 101, 114, 0, 122, 1, 117, 116, 161, 195, 107, 105, 100, 110, 105, 122, 115,
+			0, 122, 1, 117, 120, 117, 108, 0, 122, 1, 117, 122, 108, 117, 112, 2, 195, 161, 109, 0, 122, 1, 145, 197, 2, 97, 114, 118, 0, 122,
+			1, 145, 197, 2, 195, 161, 114, 109, 0, 122, 1, 145, 197, 2, 195, 182, 114, 110, 121, 0, 122, 1, 145, 197, 2, 195, 188, 108, 101, 0,
+			122, 1, 145, 197, 2, 195, 188, 108, 197, 145, 0, 122, 1, 145, 197, 104, 2, 101, 114, 101, 108, 0, 122, 1, 145, 197, 104, 2, 101, 114,
+			101, 112, 0, 122, 1, 145, 197, 108, 188, 195, 112, 101, 114, 2, 116, 114, 195, 161, 106, 107, 0, 122, 1, 145, 197, 108, 188, 195, 112, 101,
+			114, 2, 195, 161, 114, 110, 121, 0, 122, 1, 145, 197, 112, 105, 99, 0, 122, 1, 161, 195, 100, 97, 2, 101, 114, 197, 177, 0, 122, 1,
+			161, 195, 100, 97, 2, 195, 188, 110, 101, 116, 0, 122, 1, 161, 195, 100, 97, 122, 161, 195, 108, 0, 122, 1, 161, 195, 100, 111, 112, 97,
+			108, 108, 161, 195, 103, 101, 109, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 100, 111, 118, 2, 105, 110, 116, 0, 122, 1, 161, 195, 100,
+			114, 161, 195, 115, 99, 2, 195, 179, 108, 0, 122, 1, 161, 195, 100, 117, 116, 2, 105, 110, 116, 0, 122, 1, 161, 195, 100, 117, 116, 2,
+			111, 109, 106, 0, 122, 1, 161, 195, 100, 179, 195, 122, 115, 2, 105, 0, 122, 1, 161, 195, 101, 116, 2, 101, 114, 118, 0, 122, 1, 161,
+			195, 103, 108, 97, 115, 114, 161, 195, 116, 2, 195, 161, 109, 98, 97, 0, 122, 1, 161, 195, 103, 110, 111, 114, 111, 122, 115, 0, 122, 1,
+			161, 195, 103, 110, 111, 122, 114, 111, 98, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 110, 161, 195, 114, 2, 101, 114, 0, 122, 1,
+			161, 195, 103, 111, 104, 117, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 111, 116, 116, 97, 107, 0, 122, 1, 161, 195, 103, 111,
+			118, 161, 195, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 103, 114, 161, 195, 115, 0, 122, 1, 161, 195, 103, 122, 111, 109, 0,
+			122, 1, 161, 195, 103, 186, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 104, 108, 161, 195, 109, 0, 122, 1, 161, 195, 104, 117,
+			114, 2, 101, 107, 101, 114, 101, 0, 122, 1, 161, 195, 104, 117, 114, 2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 161, 195, 104, 117,
+			114, 2, 111, 98, 0, 122, 1, 161, 195, 106, 161, 195, 102, 2, 101, 114, 0, 122, 1, 161, 195, 107, 97, 108, 2, 101, 110, 0, 122, 1,
+			161, 195, 107, 105, 114, 112, 97, 112, 0, 122, 1, 161, 195, 107, 110, 111, 115, 0, 122, 1, 161, 195, 107, 111, 122, 115, 2, 101, 114, 0,
+			122, 1, 161, 195, 107, 111, 122, 115, 2, 195, 161, 109, 0, 122, 1, 161, 195, 108, 97, 116, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161,
+			195, 108, 106, 97, 104, 2, 195, 182, 103, 0, 122, 1, 161, 195, 108, 107, 117, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108,
+			108, 97, 118, 2, 97, 98, 0, 122, 1, 161, 195, 108, 108, 161, 195, 0, 122, 1, 161, 195, 108, 108, 161, 195, 2, 195, 182, 103, 0, 122,
+			1, 161, 195, 108, 108, 161, 195, 110, 101, 108, 108, 101, 2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 161, 195, 108, 109, 97, 122, 115,
+			117, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108, 109, 111, 2, 97, 103, 0, 122, 1, 161, 195, 108, 109, 161, 195, 116, 2,
+			195, 169, 107, 0, 122, 1, 161, 195, 108, 114, 111, 116, 105, 118, 0, 122, 1, 161, 195, 108, 116, 179, 195, 112, 0, 122, 1, 161, 195, 108,
+			117, 100, 110, 161, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108, 117, 103, 161, 195, 116, 2, 97, 98, 195, 161, 108, 121, 0,
+			122, 1, 161, 195, 108, 117, 106, 161, 195, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 108, 179, 195, 122, 115, 2, 97, 98, 97, 100, 0,
+			122, 1, 161, 195, 109, 2, 101, 114, 0, 122, 1, 161, 195, 109, 2, 111, 114, 0, 122, 1, 161, 195, 109, 2, 197, 145, 114, 0, 122, 1,
+			161, 195, 109, 108, 97, 2, 195, 188, 114, 107, 0, 122, 1, 161, 195, 109, 108, 97, 2, 195, 188, 114, 107, 101, 0, 122, 1, 161, 195, 109,
+			111, 116, 161, 195, 108, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 109, 111, 121, 110, 2, 97, 98, 0, 122, 1, 161, 195, 109, 111, 121,
+			110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 98, 98, 111, 114, 2, 101, 114, 0, 122, 1, 161, 195, 110, 97, 98, 98, 111,
+			115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 104, 117, 122, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97, 107,
+			107, 105, 121, 110, 2, 101, 114, 0, 122, 1, 161, 195, 110, 97, 108, 108, 105, 118, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 97,
+			116, 116, 97, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 110, 103, 161, 195, 109, 0, 122, 1, 161, 195, 110, 114, 97, 98, 2,
+			197, 145, 107, 0, 122, 1, 161, 195, 110, 114, 161, 195, 112, 2, 195, 169, 107, 0, 122, 1, 161, 195, 110, 169, 195, 122, 115, 2, 101, 107,
+			0, 122, 1, 161, 195, 112, 97, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 112, 97, 115, 99, 2, 195, 161, 109, 0, 122, 1,
+			161, 195, 114, 97, 112, 97, 107, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 97, 118, 97, 107, 2, 101, 114, 197, 177, 0, 122, 1,
+			161, 195, 114, 97, 118, 97, 115, 99, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 103, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161,
+			195, 114, 161, 195, 106, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 114, 161, 195, 106, 2, 111, 108, 103, 195, 161, 108, 97, 116, 0, 122,
 			1, 161, 195, 114, 173, 195, 2, 97, 107, 195, 169, 114, 0, 122, 1, 161, 195, 114, 173, 195, 145, 197, 108, 101, 2, 101, 114, 0, 122, 1,
-			161, 195, 114, 179, 195, 0, 122, 1, 161, 195, 114, 186, 195, 122, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 115, 97, 118, 108, 111,
-			0, 122, 1, 161, 195, 116, 97, 103, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 97, 103, 122, 97, 103, 105, 0, 122, 1, 161,
-			195, 116, 97, 104, 0, 122, 1, 161, 195, 116, 97, 104, 2, 195, 188, 110, 101, 0, 122, 1, 161, 195, 116, 97, 108, 107, 97, 122, 0, 122,
-			1, 161, 195, 116, 97, 108, 108, 97, 118, 2, 101, 114, 0, 122, 1, 161, 195, 116, 97, 116, 107, 111, 0, 122, 1, 161, 195, 116, 97, 116,
-			107, 111, 2, 101, 114, 0, 122, 1, 161, 195, 116, 97, 116, 108, 161, 195, 103, 108, 111, 122, 115, 0, 122, 1, 161, 195, 116, 97, 116, 117,
-			107, 0, 122, 1, 161, 195, 116, 97, 116, 122, 111, 107, 116, 97, 108, 105, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 97,
-			118, 105, 104, 0, 122, 1, 161, 195, 116, 97, 118, 105, 104, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 105, 99, 97, 112, 97, 107,
-			0, 122, 1, 161, 195, 116, 105, 100, 105, 118, 107, 105, 108, 0, 122, 1, 161, 195, 116, 105, 108, 97, 101, 114, 0, 122, 1, 161, 195, 116,
-			105, 114, 111, 105, 114, 112, 0, 122, 1, 161, 195, 116, 105, 114, 111, 116, 117, 97, 0, 122, 1, 161, 195, 116, 105, 116, 110, 101, 100, 105,
-			0, 122, 1, 161, 195, 116, 105, 118, 105, 116, 97, 101, 114, 107, 0, 122, 1, 161, 195, 116, 105, 118, 105, 116, 107, 97, 0, 122, 1, 161,
-			195, 116, 106, 97, 104, 0, 122, 1, 161, 195, 116, 106, 97, 104, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 106, 186, 195, 121, 103,
-			2, 97, 98, 195, 161, 108, 121, 0, 122, 1, 161, 195, 116, 108, 111, 107, 105, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 108,
-			161, 195, 118, 0, 122, 1, 161, 195, 116, 110, 97, 98, 98, 111, 114, 0, 122, 1, 161, 195, 116, 110, 105, 116, 116, 97, 107, 0, 122, 1,
-			161, 195, 116, 110, 161, 195, 114, 0, 122, 1, 161, 195, 116, 110, 161, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 111, 107,
-			108, 97, 0, 122, 1, 161, 195, 116, 114, 97, 116, 97, 103, 97, 109, 0, 122, 1, 161, 195, 116, 114, 97, 116, 110, 97, 98, 114, 97, 107,
-			0, 122, 1, 161, 195, 116, 114, 97, 116, 114, 101, 122, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 114, 97, 116, 122, 161, 195,
-			104, 0, 122, 1, 161, 195, 116, 114, 105, 2, 195, 169, 108, 0, 122, 1, 161, 195, 116, 114, 161, 195, 121, 103, 0, 122, 1, 161, 195, 116,
-			115, 111, 112, 0, 122, 1, 161, 195, 116, 122, 115, 97, 108, 161, 195, 118, 0, 122, 1, 161, 195, 116, 161, 195, 108, 2, 195, 182, 103, 0,
-			122, 1, 161, 195, 116, 161, 195, 108, 108, 101, 0, 122, 1, 161, 195, 116, 161, 195, 108, 108, 101, 2, 101, 114, 0, 122, 1, 161, 195, 116,
-			173, 195, 100, 110, 105, 0, 122, 1, 161, 195, 116, 173, 195, 100, 114, 111, 102, 0, 122, 1, 161, 195, 116, 173, 195, 115, 97, 116, 117, 0,
-			122, 1, 161, 195, 116, 173, 195, 115, 97, 116, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 118, 108, 97, 2, 101, 103, 0, 122, 1,
-			161, 195, 118, 111, 114, 0, 122, 1, 161, 195, 118, 173, 195, 104, 0, 122, 1, 161, 195, 118, 173, 195, 104, 105, 107, 0, 122, 1, 161, 195,
-			118, 173, 195, 118, 0, 122, 1, 161, 195, 121, 103, 97, 102, 0, 122, 1, 161, 195, 121, 108, 111, 102, 2, 101, 114, 0, 122, 1, 161, 195,
-			121, 108, 117, 103, 0, 122, 1, 161, 195, 121, 110, 161, 195, 104, 2, 97, 103, 0, 122, 1, 161, 195, 121, 116, 114, 161, 195, 104, 2, 195,
-			161, 114, 110, 121, 0, 122, 1, 161, 195, 122, 97, 109, 108, 97, 107, 108, 97, 0, 122, 1, 161, 195, 122, 97, 116, 117, 2, 101, 114, 0,
-			122, 1, 161, 195, 122, 97, 116, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 122, 103, 110, 97, 104, 0, 122, 1, 161, 195, 122, 111,
-			103, 108, 111, 100, 105, 107, 0, 122, 1, 161, 195, 122, 111, 107, 97, 114, 179, 195, 122, 115, 2, 195, 161, 109, 0, 122, 1, 161, 195, 122,
-			111, 107, 107, 97, 115, 0, 122, 1, 161, 195, 122, 111, 107, 108, 97, 108, 103, 111, 102, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 122,
-			111, 107, 108, 97, 108, 108, 161, 195, 118, 0, 122, 1, 161, 195, 122, 111, 107, 108, 161, 195, 98, 179, 195, 114, 112, 0, 122, 1, 161, 195,
-			122, 111, 107, 116, 97, 116, 117, 109, 0, 122, 1, 161, 195, 122, 111, 107, 116, 97, 118, 105, 104, 0, 122, 1, 161, 195, 122, 114, 161, 195,
-			103, 117, 115, 0, 122, 1, 161, 195, 122, 115, 116, 161, 195, 106, 0, 122, 1, 161, 195, 122, 115, 161, 195, 109, 2, 101, 114, 197, 177, 0,
-			122, 1, 161, 195, 122, 161, 195, 98, 109, 111, 98, 0, 122, 1, 161, 195, 122, 161, 195, 102, 0, 122, 1, 169, 195, 100, 101, 107, 101, 108,
-			122, 182, 195, 107, 0, 122, 1, 169, 195, 100, 101, 107, 108, 101, 109, 101, 0, 122, 1, 169, 195, 100, 101, 115, 101, 122, 115, 169, 195, 114,
-			0, 122, 1, 169, 195, 100, 101, 122, 115, 0, 122, 1, 169, 195, 100, 122, 101, 107, 0, 122, 1, 169, 195, 100, 145, 197, 108, 101, 118, 177,
-			197, 109, 0, 122, 1, 169, 195, 100, 145, 197, 108, 106, 101, 102, 0, 122, 1, 169, 195, 100, 145, 197, 122, 114, 101, 122, 115, 0, 122, 1,
-			169, 195, 100, 145, 197, 122, 114, 101, 122, 115, 2, 101, 0, 122, 1, 169, 195, 100, 182, 195, 107, 108, 145, 197, 114, 101, 0, 122, 1, 169,
-			195, 100, 182, 195, 107, 177, 197, 109, 0, 122, 1, 169, 195, 102, 182, 195, 100, 0, 122, 1, 169, 195, 103, 101, 98, 101, 108, 0, 122, 1,
-			169, 195, 103, 101, 99, 114, 101, 115, 0, 122, 1, 169, 195, 103, 101, 118, 101, 115, 99, 0, 122, 1, 169, 195, 103, 110, 101, 108, 2, 97,
-			98, 195, 161, 108, 121, 0, 122, 1, 169, 195, 103, 110, 101, 114, 0, 122, 1, 169, 195, 103, 110, 101, 114, 2, 101, 114, 197, 177, 0, 122,
-			1, 169, 195, 103, 110, 101, 115, 114, 101, 118, 0, 122, 1, 169, 195, 103, 110, 101, 122, 103, 169, 195, 2, 101, 114, 197, 177, 0, 122, 1,
-			169, 195, 103, 114, 101, 112, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 114, 101, 115, 99, 105, 115, 99, 0, 122, 1, 169, 195, 103,
-			114, 182, 195, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 114, 182, 195, 100, 0, 122, 1, 169, 195, 103, 114, 182, 195, 100, 121, 110,
-			110, 101, 109, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 122, 101, 114, 2, 195, 161, 109, 0, 122, 1, 169, 195, 103, 145, 197, 98,
-			2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 169, 195, 2, 97, 98, 195, 161, 108, 121, 0, 122, 1, 169, 195, 103, 169, 195, 2, 97,
-			103, 0, 122, 1, 169, 195, 103, 182, 195, 102, 182, 195, 114, 0, 122, 1, 169, 195, 103, 182, 195, 102, 188, 195, 98, 0, 122, 1, 169, 195,
-			103, 182, 195, 104, 182, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 182, 195, 121, 110, 0, 122, 1, 169, 195, 103, 182, 195,
-			122, 115, 115, 188, 195, 116, 0, 122, 1, 169, 195, 107, 2, 101, 114, 0, 122, 1, 169, 195, 107, 2, 195, 161, 110, 0, 122, 1, 169, 195,
-			107, 2, 195, 161, 114, 0, 122, 1, 169, 195, 107, 2, 195, 186, 114, 195, 161, 115, 0, 122, 1, 169, 195, 107, 182, 195, 108, 2, 101, 114,
-			197, 177, 0, 122, 1, 169, 195, 107, 182, 195, 108, 2, 195, 161, 109, 0, 122, 1, 169, 195, 108, 101, 100, 110, 101, 114, 0, 122, 1, 169,
-			195, 108, 101, 107, 169, 195, 122, 114, 169, 195, 2, 105, 110, 116, 0, 122, 1, 169, 195, 108, 101, 108, 122, 115, 169, 195, 0, 122, 1, 169,
-			195, 108, 101, 108, 182, 195, 0, 122, 1, 169, 195, 108, 101, 109, 101, 2, 101, 114, 0, 122, 1, 169, 195, 108, 101, 112, 105, 114, 105, 99,
-			0, 122, 1, 169, 195, 108, 101, 114, 101, 122, 115, 2, 101, 116, 116, 0, 122, 1, 169, 195, 108, 101, 115, 105, 118, 100, 110, 111, 103, 2,
-			101, 114, 0, 122, 1, 169, 195, 108, 101, 118, 114, 169, 195, 0, 122, 1, 169, 195, 108, 101, 118, 177, 197, 109, 0, 122, 1, 169, 195, 108,
-			107, 182, 195, 121, 110, 182, 195, 107, 2, 195, 169, 108, 0, 122, 1, 169, 195, 108, 108, 101, 103, 182, 195, 122, 115, 2, 101, 114, 197, 177,
-			0, 122, 1, 169, 195, 108, 109, 182, 195, 0, 122, 1, 169, 195, 108, 116, 169, 195, 109, 115, 105, 0, 122, 1, 169, 195, 108, 121, 110, 169,
-			195, 118, 114, 182, 195, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 108, 145, 197, 100, 2, 97, 98, 0, 122, 1, 169, 195, 108, 145, 197,
-			100, 2, 195, 182, 103, 0, 122, 1, 169, 195, 108, 169, 195, 97, 122, 115, 115, 105, 118, 0, 122, 1, 169, 195, 108, 169, 195, 98, 2, 97,
-			108, 97, 103, 0, 122, 1, 169, 195, 108, 169, 195, 98, 2, 195, 182, 118, 0, 122, 1, 169, 195, 108, 169, 195, 122, 115, 101, 98, 108, 101,
-			0, 122, 1, 169, 195, 108, 177, 197, 121, 103, 0, 122, 1, 169, 195, 108, 182, 195, 108, 101, 106, 0, 122, 1, 169, 195, 108, 188, 195, 0,
-			122, 1, 169, 195, 108, 188, 195, 2, 97, 107, 0, 122, 1, 169, 195, 108, 188, 195, 107, 101, 110, 101, 109, 2, 101, 114, 197, 177, 0, 122,
-			1, 169, 195, 108, 188, 195, 112, 101, 108, 101, 116, 0, 122, 1, 169, 195, 108, 188, 195, 112, 101, 108, 101, 116, 2, 101, 114, 0, 122, 1,
-			169, 195, 108, 188, 195, 112, 101, 108, 101, 116, 2, 105, 115, 122, 0, 122, 1, 169, 195, 108, 188, 195, 112, 101, 114, 2, 101, 114, 0, 122,
-			1, 169, 195, 109, 114, 101, 116, 0, 122, 1, 169, 195, 110, 101, 98, 98, 105, 108, 0, 122, 1, 169, 195, 110, 101, 107, 107, 182, 195, 122,
-			2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 110, 101, 108, 101, 106, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 110, 101, 115, 114, 182,
-			195, 112, 0, 122, 1, 169, 195, 112, 101, 108, 2, 101, 114, 0, 122, 1, 169, 195, 114, 2, 101, 108, 101, 0, 122, 1, 169, 195, 114, 101,
-			118, 114, 161, 195, 0, 122, 1, 169, 195, 114, 112, 2, 97, 107, 0, 122, 1, 169, 195, 114, 112, 2, 101, 114, 0, 122, 1, 169, 195, 114,
-			114, 161, 195, 0, 122, 1, 169, 195, 114, 169, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 114, 177, 197, 116, 0, 122, 1, 169,
-			195, 114, 177, 197, 122, 115, 0, 122, 1, 169, 195, 114, 182, 195, 116, 0, 122, 1, 169, 195, 114, 182, 195, 116, 2, 195, 182, 103, 0, 122,
-			1, 169, 195, 114, 182, 195, 116, 105, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 114, 182, 195, 116, 116, 161, 195, 0, 122, 1, 169,
-			195, 115, 101, 0, 122, 1, 169, 195, 115, 101, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 115, 101, 2, 195, 182, 103, 0, 122, 1, 169,
-			195, 115, 101, 114, 101, 107, 0, 122, 1, 169, 195, 116, 101, 100, 114, 105, 104, 0, 122, 1, 169, 195, 116, 101, 100, 114, 105, 104, 2, 101,
-			114, 118, 101, 0, 122, 1, 169, 195, 116, 101, 100, 114, 105, 104, 2, 195, 182, 118, 101, 103, 0, 122, 1, 169, 195, 116, 101, 103, 169, 195,
-			98, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 101, 107, 101, 102, 2, 195, 188, 114, 107, 0, 122, 1, 169, 195, 116, 101, 108, 188,
-			195, 122, 115, 2, 97, 98, 0, 122, 1, 169, 195, 116, 101, 108, 188, 195, 122, 115, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 101, 112,
-			101, 108, 103, 101, 109, 0, 122, 1, 169, 195, 116, 101, 112, 101, 108, 103, 101, 109, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 101,
-			116, 2, 101, 0, 122, 1, 169, 195, 116, 101, 116, 108, 101, 100, 110, 101, 114, 2, 101, 114, 0, 122, 1, 169, 195, 116, 101, 122, 101, 118,
-			0, 122, 1, 169, 195, 116, 106, 101, 108, 2, 195, 182, 103, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 0, 122, 1, 169, 195, 116, 108,
-			182, 195, 116, 2, 97, 98, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 2, 97, 98, 195, 161, 108, 121, 111, 122, 0, 122, 1, 169, 195,
-			116, 108, 182, 195, 116, 2, 97, 107, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 108,
-			182, 195, 116, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 109, 101, 114, 101, 116, 0, 122, 1, 169, 195, 116, 110, 101, 108, 101, 106, 0,
-			122, 1, 169, 195, 116, 110, 101, 108, 101, 106, 2, 105, 110, 116, 0, 122, 1, 169, 195, 116, 110, 105, 104, 182, 195, 107, 2, 101, 114, 197,
-			177, 0, 122, 1, 169, 195, 116, 114, 101, 115, 0, 122, 1, 169, 195, 116, 114, 169, 195, 115, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116,
-			122, 115, 101, 106, 114, 101, 103, 0, 122, 1, 169, 195, 116, 122, 115, 101, 108, 106, 101, 102, 0, 122, 1, 169, 195, 116, 122, 115, 101, 118,
-			169, 195, 116, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 173, 195, 112, 169, 195, 2, 97, 98, 0, 122, 1, 169, 195, 116, 173, 195,
-			114, 101, 107, 0, 122, 1, 169, 195, 116, 173, 195, 114, 101, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 173, 195, 115, 101,
-			108, 101, 116, 105, 104, 0, 122, 1, 169, 195, 116, 173, 195, 115, 145, 197, 114, 101, 0, 122, 1, 169, 195, 116, 177, 197, 102, 2, 97, 103,
-			0, 122, 1, 169, 195, 116, 177, 197, 104, 0, 122, 1, 169, 195, 116, 182, 195, 107, 0, 122, 1, 169, 195, 116, 188, 195, 2, 101, 114, 197,
-			177, 0, 122, 1, 169, 195, 116, 188, 195, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 188, 195, 97, 116, 106, 97, 114, 2, 101, 114, 0,
-			122, 1, 169, 195, 118, 101, 116, 108, 101, 102, 0, 122, 1, 169, 195, 118, 182, 195, 108, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 118,
-			182, 195, 108, 2, 195, 161, 109, 0, 122, 1, 169, 195, 118, 182, 195, 108, 121, 108, 111, 116, 122, 115, 105, 112, 2, 101, 114, 197, 177, 0,
-			122, 1, 169, 195, 118, 182, 195, 122, 115, 0, 122, 1, 169, 195, 122, 100, 101, 0, 122, 1, 169, 195, 122, 101, 99, 110, 101, 102, 107, 117,
-			98, 0, 122, 1, 169, 195, 122, 101, 103, 114, 169, 195, 109, 0, 122, 1, 169, 195, 122, 101, 106, 101, 102, 105, 107, 0, 122, 1, 169, 195,
-			122, 101, 107, 101, 108, 188, 195, 121, 103, 0, 122, 1, 169, 195, 122, 101, 107, 108, 101, 100, 110, 101, 114, 2, 101, 114, 0, 122, 1, 169,
-			195, 122, 101, 107, 169, 195, 102, 0, 122, 1, 169, 195, 122, 101, 108, 101, 118, 101, 108, 0, 122, 1, 169, 195, 122, 101, 112, 169, 195, 107,
-			101, 108, 0, 122, 1, 169, 195, 122, 101, 118, 114, 101, 116, 0, 122, 1, 169, 195, 122, 103, 169, 195, 108, 0, 122, 1, 169, 195, 122, 108,
-			101, 106, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 122, 110, 182, 195, 116, 103, 182, 195, 114, 0, 122, 1, 169, 195, 122, 114, 145, 197,
-			110, 101, 108, 108, 101, 0, 122, 1, 169, 195, 122, 114, 169, 195, 0, 122, 1, 169, 195, 122, 115, 116, 101, 109, 0, 122, 1, 169, 195, 122,
-			121, 103, 101, 106, 2, 101, 114, 0, 122, 1, 169, 195, 122, 145, 197, 102, 0, 122, 1, 169, 195, 122, 145, 197, 107, 114, 169, 195, 109, 0,
-			122, 1, 169, 195, 122, 145, 197, 116, 114, 101, 102, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 122, 182, 195, 100, 108, 182, 195, 118, 182,
-			195, 108, 0, 122, 1, 169, 195, 122, 182, 195, 107, 116, 188, 195, 0, 122, 1, 169, 195, 122, 182, 195, 116, 110, 182, 195, 0, 122, 1, 179,
-			195, 100, 97, 0, 122, 1, 179, 195, 100, 97, 2, 195, 161, 109, 108, 97, 0, 122, 1, 179, 195, 103, 117, 114, 0, 122, 1, 179, 195, 105,
+			161, 195, 114, 186, 195, 122, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 97, 103, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161,
+			195, 116, 97, 104, 2, 195, 188, 110, 101, 0, 122, 1, 161, 195, 116, 97, 108, 108, 97, 118, 2, 101, 114, 0, 122, 1, 161, 195, 116, 97,
+			116, 122, 111, 107, 116, 97, 108, 105, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 97, 118, 105, 104, 2, 101, 114, 197, 177,
+			0, 122, 1, 161, 195, 116, 106, 97, 104, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 106, 186, 195, 121, 103, 2, 97, 98, 195, 161,
+			108, 121, 0, 122, 1, 161, 195, 116, 108, 111, 107, 105, 115, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 110, 161, 195, 114, 0, 122,
+			1, 161, 195, 116, 110, 161, 195, 114, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 116, 114, 105, 2, 195, 169, 108, 0, 122, 1, 161, 195,
+			116, 161, 195, 108, 2, 195, 182, 103, 0, 122, 1, 161, 195, 116, 161, 195, 108, 108, 101, 2, 101, 114, 0, 122, 1, 161, 195, 116, 173, 195,
+			115, 97, 116, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 118, 108, 97, 2, 101, 103, 0, 122, 1, 161, 195, 118, 173, 195, 104, 105,
+			107, 0, 122, 1, 161, 195, 121, 110, 161, 195, 104, 2, 97, 103, 0, 122, 1, 161, 195, 121, 116, 114, 161, 195, 104, 2, 195, 161, 114, 110,
+			121, 0, 122, 1, 161, 195, 122, 97, 116, 117, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 122, 111, 107, 97, 114, 179, 195, 122, 115, 2,
+			195, 161, 109, 0, 122, 1, 161, 195, 122, 111, 107, 108, 97, 108, 103, 111, 102, 2, 101, 114, 197, 177, 0, 122, 1, 161, 195, 122, 114, 161,
+			195, 103, 117, 115, 0, 122, 1, 169, 195, 100, 145, 197, 122, 114, 101, 122, 115, 2, 101, 0, 122, 1, 169, 195, 103, 110, 101, 108, 2, 97,
+			98, 195, 161, 108, 121, 0, 122, 1, 169, 195, 103, 110, 101, 114, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 110, 101, 122, 103, 169,
+			195, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 114, 101, 112, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 114, 182, 195, 2,
+			101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 114, 182, 195, 100, 0, 122, 1, 169, 195, 103, 114, 182, 195, 100, 121, 110, 110, 101, 109, 2,
+			101, 114, 197, 177, 0, 122, 1, 169, 195, 103, 122, 101, 114, 2, 195, 161, 109, 0, 122, 1, 169, 195, 103, 145, 197, 98, 2, 101, 114, 197,
+			177, 0, 122, 1, 169, 195, 103, 169, 195, 2, 97, 98, 195, 161, 108, 121, 0, 122, 1, 169, 195, 103, 169, 195, 2, 97, 103, 0, 122, 1,
+			169, 195, 103, 182, 195, 104, 182, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 107, 2, 195, 186, 114, 195, 161, 115, 0, 122, 1,
+			169, 195, 107, 182, 195, 108, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 107, 182, 195, 108, 2, 195, 161, 109, 0, 122, 1, 169, 195, 108,
+			101, 107, 169, 195, 122, 114, 169, 195, 2, 105, 110, 116, 0, 122, 1, 169, 195, 108, 101, 109, 101, 2, 101, 114, 0, 122, 1, 169, 195, 108,
+			101, 114, 101, 122, 115, 2, 101, 116, 116, 0, 122, 1, 169, 195, 108, 101, 115, 105, 118, 100, 110, 111, 103, 2, 101, 114, 0, 122, 1, 169,
+			195, 108, 107, 182, 195, 121, 110, 182, 195, 107, 2, 195, 169, 108, 0, 122, 1, 169, 195, 108, 108, 101, 103, 182, 195, 122, 115, 2, 101, 114,
+			197, 177, 0, 122, 1, 169, 195, 108, 121, 110, 169, 195, 118, 114, 182, 195, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 108, 145, 197, 100,
+			2, 195, 182, 103, 0, 122, 1, 169, 195, 108, 169, 195, 98, 2, 97, 108, 97, 103, 0, 122, 1, 169, 195, 108, 169, 195, 98, 2, 195, 182,
+			118, 0, 122, 1, 169, 195, 108, 188, 195, 2, 97, 107, 0, 122, 1, 169, 195, 108, 188, 195, 107, 101, 110, 101, 109, 2, 101, 114, 197, 177,
+			0, 122, 1, 169, 195, 108, 188, 195, 112, 101, 108, 101, 116, 2, 101, 114, 0, 122, 1, 169, 195, 108, 188, 195, 112, 101, 114, 2, 101, 114,
+			0, 122, 1, 169, 195, 110, 101, 107, 107, 182, 195, 122, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 110, 101, 108, 101, 106, 2, 101, 114,
+			197, 177, 0, 122, 1, 169, 195, 114, 112, 2, 101, 114, 0, 122, 1, 169, 195, 114, 169, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169,
+			195, 114, 182, 195, 116, 2, 195, 182, 103, 0, 122, 1, 169, 195, 114, 182, 195, 116, 105, 107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195,
+			115, 101, 2, 195, 182, 103, 0, 122, 1, 169, 195, 115, 101, 114, 101, 107, 0, 122, 1, 169, 195, 116, 101, 100, 114, 105, 104, 2, 101, 114,
+			118, 101, 0, 122, 1, 169, 195, 116, 101, 100, 114, 105, 104, 2, 195, 182, 118, 101, 103, 0, 122, 1, 169, 195, 116, 101, 103, 169, 195, 98,
+			2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 101, 107, 101, 102, 2, 195, 188, 114, 107, 0, 122, 1, 169, 195, 116, 101, 108, 188, 195,
+			122, 115, 2, 97, 98, 0, 122, 1, 169, 195, 116, 101, 112, 101, 108, 103, 101, 109, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 101,
+			116, 2, 101, 0, 122, 1, 169, 195, 116, 101, 116, 108, 101, 100, 110, 101, 114, 2, 101, 114, 0, 122, 1, 169, 195, 116, 106, 101, 108, 2,
+			195, 182, 103, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 2, 97, 98, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 2, 97, 98, 195,
+			161, 108, 121, 111, 122, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 108, 182, 195, 116,
+			2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 110, 101, 108, 101, 106, 2, 105, 110, 116, 0, 122, 1, 169, 195, 116, 110, 105, 104, 182, 195,
+			107, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 114, 101, 115, 0, 122, 1, 169, 195, 116, 114, 169, 195, 115, 2, 195, 161, 109, 0,
+			122, 1, 169, 195, 116, 122, 115, 101, 118, 169, 195, 116, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 173, 195, 114, 101, 107, 0, 122,
+			1, 169, 195, 116, 173, 195, 114, 101, 121, 110, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 177, 197, 102, 2, 97, 103, 0, 122, 1,
+			169, 195, 116, 182, 195, 107, 0, 122, 1, 169, 195, 116, 188, 195, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 116, 188, 195, 2, 195, 161,
+			109, 0, 122, 1, 169, 195, 116, 188, 195, 97, 116, 106, 97, 114, 2, 101, 114, 0, 122, 1, 169, 195, 118, 182, 195, 108, 2, 101, 114, 197,
+			177, 0, 122, 1, 169, 195, 118, 182, 195, 108, 121, 108, 111, 116, 122, 115, 105, 112, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 122, 101,
+			107, 108, 101, 100, 110, 101, 114, 2, 101, 114, 0, 122, 1, 169, 195, 122, 108, 101, 106, 2, 101, 114, 197, 177, 0, 122, 1, 169, 195, 122,
+			145, 197, 116, 114, 101, 102, 2, 101, 114, 197, 177, 0, 122, 1, 179, 195, 100, 97, 2, 195, 161, 109, 108, 97, 0, 122, 1, 179, 195, 105,
 			99, 161, 195, 107, 105, 110, 117, 109, 109, 111, 107, 2, 111, 98, 0, 122, 1, 179, 195, 105, 100, 161, 195, 114, 2, 101, 114, 101, 112, 0,
-			122, 1, 179, 195, 105, 100, 161, 195, 114, 2, 111, 98, 0, 122, 1, 179, 195, 106, 97, 104, 2, 108, 101, 110, 103, 0, 122, 1, 179, 195,
-			106, 97, 104, 114, 177, 197, 0, 122, 1, 179, 195, 107, 105, 115, 99, 0, 122, 1, 179, 195, 107, 105, 115, 99, 2, 195, 161, 109, 0, 122,
-			1, 179, 195, 108, 122, 115, 161, 195, 122, 0, 122, 1, 179, 195, 110, 111, 118, 2, 101, 114, 101, 110, 195, 161, 100, 0, 122, 1, 179, 195,
-			112, 109, 97, 107, 0, 122, 1, 179, 195, 114, 186, 195, 122, 115, 2, 101, 109, 0, 122, 1, 179, 195, 116, 111, 102, 0, 122, 1, 179, 195,
-			116, 117, 97, 0, 122, 1, 179, 195, 116, 117, 97, 2, 101, 109, 195, 188, 118, 101, 103, 0, 122, 1, 179, 195, 118, 186, 195, 102, 0, 122,
-			1, 179, 195, 118, 186, 195, 102, 2, 101, 114, 115, 122, 0, 122, 1, 179, 195, 118, 186, 195, 102, 2, 105, 109, 0, 122, 1, 179, 195, 121,
-			110, 97, 0, 122, 1, 179, 195, 121, 110, 117, 98, 0, 122, 1, 182, 195, 107, 182, 195, 116, 115, 188, 195, 0, 122, 1, 182, 195, 108, 182,
-			195, 102, 106, 101, 116, 2, 195, 161, 106, 0, 122, 1, 182, 195, 114, 107, 182, 195, 2, 101, 107, 195, 169, 114, 0, 122, 1, 182, 195, 114,
-			145, 197, 107, 2, 101, 103, 0, 122, 1, 182, 195, 114, 145, 197, 122, 115, 2, 195, 173, 118, 0, 122, 1, 182, 195, 114, 182, 195, 107, 2,
-			101, 0, 122, 1, 182, 195, 114, 182, 195, 118, 2, 101, 109, 0, 122, 1, 182, 195, 116, 110, 182, 195, 107, 0, 122, 1, 182, 195, 116, 110,
-			182, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 182, 195, 118, 116, 182, 195, 0, 122, 1, 182, 195, 118, 177, 197, 104, 2, 101, 109, 197,
-			177, 0, 122, 1, 186, 195, 100, 2, 97, 107, 195, 161, 108, 108, 0, 122, 1, 186, 195, 104, 2, 97, 102, 116, 0, 122, 1, 186, 195, 104,
-			2, 101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 186, 195, 104, 2, 101, 107, 116, 0, 122, 1, 186, 195, 104, 2, 101, 108, 101, 116, 0,
-			122, 1, 186, 195, 104, 2, 101, 109, 108, 0, 122, 1, 186, 195, 104, 2, 101, 114, 0, 122, 1, 186, 195, 104, 2, 105, 110, 116, 0, 122,
-			1, 186, 195, 104, 2, 195, 161, 108, 0, 122, 1, 186, 195, 104, 2, 195, 161, 108, 108, 195, 173, 116, 0, 122, 1, 186, 195, 104, 2, 195,
-			182, 114, 110, 121, 0, 122, 1, 186, 195, 104, 2, 195, 188, 107, 115, 195, 169, 0, 122, 1, 186, 195, 121, 103, 161, 195, 0, 122, 1, 188,
-			195, 108, 112, 2, 101, 114, 197, 177, 0, 122, 2, 195, 173, 110, 197, 177, 0, 122, 2, 195, 188, 114, 107, 0, 122, 2, 197, 145, 107, 101,
-			0, 122, 8, 97, 100, 114, 111, 0, 122, 8, 97, 107, 97, 107, 2, 195, 179, 0, 122, 8, 97, 107, 114, 97, 102, 2, 105, 103, 0, 122,
-			8, 97, 107, 114, 97, 102, 2, 195, 161, 106, 0, 122, 8, 97, 110, 105, 0, 122, 8, 97, 115, 2, 101, 103, 0, 122, 8, 97, 115, 2,
-			195, 161, 114, 110, 121, 0, 122, 8, 97, 116, 117, 115, 97, 118, 0, 122, 8, 97, 118, 109, 97, 104, 2, 195, 188, 114, 107, 101, 0, 122,
-			8, 101, 100, 169, 195, 2, 101, 115, 122, 116, 101, 115, 116, 0, 122, 8, 101, 103, 169, 195, 115, 99, 110, 101, 122, 115, 2, 197, 177, 122,
-			0, 122, 8, 101, 107, 101, 114, 101, 107, 2, 195, 169, 107, 0, 122, 8, 101, 109, 101, 110, 0, 122, 8, 101, 110, 101, 109, 101, 107, 0,
-			122, 8, 101, 110, 169, 195, 109, 0, 122, 8, 101, 114, 101, 118, 0, 122, 8, 101, 116, 110, 101, 104, 2, 97, 107, 0, 122, 8, 101, 122,
-			115, 101, 109, 2, 195, 188, 114, 0, 122, 8, 105, 102, 107, 97, 98, 0, 122, 8, 105, 107, 2, 101, 114, 115, 122, 0, 122, 8, 105, 107,
-			2, 195, 161, 108, 108, 195, 161, 0, 122, 8, 105, 107, 2, 195, 169, 114, 105, 0, 122, 8, 105, 107, 2, 195, 182, 118, 0, 122, 8, 105,
-			112, 115, 161, 195, 106, 2, 111, 98, 0, 122, 8, 105, 114, 103, 105, 116, 0, 122, 8, 105, 114, 145, 197, 107, 0, 122, 8, 105, 115, 97,
-			104, 2, 97, 103, 0, 122, 8, 111, 98, 109, 111, 103, 0, 122, 8, 111, 103, 97, 121, 103, 97, 2, 101, 114, 103, 0, 122, 8, 111, 103,
-			161, 195, 108, 105, 118, 2, 101, 109, 0, 122, 8, 111, 107, 2, 101, 109, 0, 122, 8, 111, 107, 2, 101, 114, 0, 122, 8, 111, 107, 105,
-			109, 0, 122, 8, 111, 107, 111, 0, 122, 8, 111, 107, 122, 115, 105, 112, 0, 122, 8, 111, 109, 97, 122, 115, 0, 122, 8, 111, 109, 161,
-			195, 118, 0, 122, 8, 111, 112, 97, 107, 0, 122, 8, 111, 112, 97, 110, 2, 111, 98, 0, 122, 8, 111, 114, 161, 195, 118, 0, 122, 8,
-			111, 114, 161, 195, 118, 2, 195, 169, 108, 0, 122, 8, 111, 121, 103, 110, 111, 114, 0, 122, 8, 114, 101, 118, 2, 101, 114, 0, 122, 8,
-			114, 111, 115, 2, 97, 98, 0, 122, 8, 114, 111, 115, 2, 101, 115, 122, 195, 169, 108, 121, 0, 122, 8, 114, 111, 121, 103, 0, 122, 8,
-			114, 161, 195, 104, 0, 122, 8, 114, 161, 195, 116, 2, 111, 98, 0, 122, 8, 114, 161, 195, 121, 110, 2, 101, 114, 197, 177, 0, 122, 8,
-			117, 100, 108, 111, 107, 2, 101, 0, 122, 8, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 101, 114, 0, 122, 8, 117, 107, 101, 104, 2,
-			97, 103, 0, 122, 8, 117, 107, 179, 195, 109, 0, 122, 8, 117, 112, 173, 195, 116, 2, 195, 161, 109, 0, 122, 8, 117, 112, 173, 195, 116,
-			2, 195, 182, 118, 101, 103, 0, 122, 8, 117, 114, 173, 195, 118, 2, 101, 114, 0, 122, 8, 117, 116, 107, 97, 116, 110, 111, 107, 0, 122,
-			8, 117, 122, 110, 101, 122, 115, 110, 111, 107, 0, 122, 8, 145, 197, 2, 101, 108, 108, 0, 122, 8, 145, 197, 2, 101, 114, 197, 177, 0,
-			122, 8, 145, 197, 2, 105, 0, 122, 8, 145, 197, 2, 108, 195, 161, 118, 0, 122, 8, 145, 197, 2, 111, 107, 195, 161, 0, 122, 8, 145,
-			197, 2, 195, 169, 107, 0, 122, 8, 145, 197, 104, 0, 122, 8, 161, 195, 102, 2, 195, 173, 110, 0, 122, 8, 161, 195, 103, 97, 99, 97,
-			107, 2, 101, 114, 0, 122, 8, 161, 195, 103, 114, 111, 102, 0, 122, 8, 161, 195, 107, 97, 108, 0, 122, 8, 161, 195, 107, 97, 114, 0,
-			122, 8, 161, 195, 108, 97, 2, 111, 108, 103, 0, 122, 8, 161, 195, 108, 179, 195, 122, 115, 0, 122, 8, 161, 195, 109, 2, 195, 179, 0,
-			122, 8, 161, 195, 109, 111, 108, 108, 97, 118, 0, 122, 8, 161, 195, 109, 111, 121, 110, 2, 105, 110, 0, 122, 8, 161, 195, 114, 114, 111,
-			102, 0, 122, 8, 161, 195, 115, 0, 122, 8, 161, 195, 115, 122, 179, 195, 114, 2, 197, 145, 107, 0, 122, 8, 161, 195, 116, 97, 104, 2,
-			101, 114, 0, 122, 8, 161, 195, 116, 110, 97, 107, 114, 111, 104, 2, 101, 114, 0, 122, 8, 161, 195, 116, 114, 111, 112, 0, 122, 8, 161,
-			195, 116, 161, 195, 108, 2, 195, 182, 103, 0, 122, 8, 161, 195, 118, 108, 105, 122, 115, 0, 122, 8, 169, 195, 99, 101, 114, 2, 195, 161,
-			114, 195, 186, 0, 122, 8, 169, 195, 100, 101, 107, 108, 101, 122, 173, 195, 104, 0, 122, 8, 169, 195, 103, 169, 195, 0, 122, 8, 169, 195,
-			107, 112, 105, 115, 99, 0, 122, 8, 169, 195, 107, 169, 195, 98, 0, 122, 8, 169, 195, 114, 2, 101, 114, 197, 177, 0, 122, 8, 169, 195,
-			116, 101, 100, 108, 188, 195, 107, 0, 122, 8, 169, 195, 116, 101, 116, 110, 188, 195, 116, 105, 107, 0, 122, 8, 169, 195, 116, 101, 118, 0,
-			122, 8, 169, 195, 116, 106, 101, 108, 0, 122, 8, 169, 195, 116, 173, 195, 114, 101, 107, 2, 97, 103, 0, 122, 8, 169, 195, 116, 177, 197,
-			102, 0, 122, 8, 169, 195, 118, 101, 107, 0, 122, 8, 169, 195, 118, 101, 107, 2, 101, 114, 0, 122, 8, 169, 195, 122, 101, 100, 110, 101,
-			114, 101, 98, 2, 101, 0, 122, 8, 179, 195, 105, 100, 2, 105, 108, 195, 161, 0, 122, 8, 179, 195, 106, 0, 122, 8, 179, 195, 106, 97,
-			104, 0, 122, 8, 179, 195, 110, 111, 118, 2, 105, 118, 0, 122, 8, 179, 195, 116, 173, 195, 114, 105, 112, 2, 101, 0, 122, 8, 182, 195,
-			114, 107, 182, 195, 2, 101, 103, 0, 122, 8, 182, 195, 114, 107, 182, 195, 2, 101, 107, 101, 114, 101, 0, 122, 8, 182, 195, 114, 107, 188,
-			195, 116, 0, 122, 8, 182, 195, 114, 182, 195, 107, 2, 105, 103, 0, 122, 8, 182, 195, 114, 182, 195, 118, 0, 122, 8, 186, 195, 104, 2,
-			97, 108, 111, 110, 110, 97, 0, 122, 8, 186, 195, 104, 2, 105, 103, 101, 116, 0, 122, 8, 186, 195, 104, 2, 195, 173, 110, 0, 122, 8,
-			186, 195, 104, 2, 195, 182, 118, 0, 7, 6, 115, 122, 0, 4, 3, 89, 0, 1, 97, 118, 97, 114, 2, 195, 161, 114, 0, 1, 97, 118,
-			97, 116, 2, 195, 161, 114, 97, 0, 1, 97, 118, 97, 116, 2, 195, 161, 114, 195, 179, 108, 0, 1, 100, 110, 101, 114, 2, 101, 114, 101,
-			116, 197, 145, 0, 1, 101, 122, 110, 169, 195, 112, 2, 107, 0, 1, 182, 195, 109, 182, 195, 115, 99, 2, 195, 182, 108, 0, 1, 100, 110,
-			101, 114, 2, 101, 114, 3, 89, 12, 0, 4, 116, 1, 97, 114, 97, 112, 2, 115, 101, 103, 103, 3, 89, 47, 0, 116, 1, 101, 98, 122,
-			97, 2, 115, 105, 115, 97, 107, 0, 116, 1, 101, 114, 101, 107, 2, 115, 111, 114, 0, 116, 1, 101, 114, 101, 107, 2, 115, 122, 101, 114,
-			0, 116, 1, 117, 121, 110, 2, 115, 195, 188, 118, 101, 103, 0, 4, 116, 115, 122, 3, 89, 47, 89, 0, 116, 115, 122, 1, 97, 114, 97,
-			112, 2, 97, 103, 0, 116, 115, 122, 1, 97, 114, 97, 112, 2, 97, 110, 100, 195, 161, 108, 0, 116, 115, 122, 1, 97, 114, 97, 112, 2,
-			101, 107, 0, 116, 115, 122, 1, 101, 114, 101, 107, 2, 97, 108, 97, 0, 116, 115, 122, 1, 101, 114, 101, 107, 2, 101, 0, 116, 115, 122,
-			1, 101, 116, 2, 101, 122, 111, 110, 0, 116, 115, 122, 1, 105, 108, 2, 101, 109, 101, 107, 0, 116, 115, 122, 1, 105, 108, 2, 101, 114,
-			197, 177, 0, 116, 115, 122, 1, 105, 116, 97, 98, 2, 101, 114, 197, 177, 0, 116, 115, 122, 8, 97, 109, 97, 100, 0, 4, 116, 115, 122,
-			101, 1, 105, 116, 97, 98, 2, 103, 195, 169, 3, 89, 47, 89, 109, 0, 116, 115, 122, 101, 1, 105, 116, 101, 109, 97, 0, 116, 115, 122,
-			101, 1, 111, 114, 100, 2, 114, 122, 197, 145, 0, 116, 115, 122, 101, 8, 97, 107, 0, 4, 116, 115, 1, 97, 108, 97, 109, 2, 117, 103,
-			97, 108, 3, 89, 47, 91, 0, 116, 115, 1, 97, 108, 108, 97, 98, 2, 195, 186, 108, 121, 0, 116, 115, 1, 97, 114, 97, 112, 2, 97,
-			108, 195, 161, 0, 116, 115, 1, 97, 114, 97, 112, 2, 101, 114, 101, 0, 116, 115, 1, 97, 114, 97, 112, 2, 105, 104, 101, 100, 0, 116,
-			115, 1, 97, 114, 97, 112, 2, 111, 110, 107, 0, 116, 115, 1, 97, 114, 97, 112, 2, 111, 114, 98, 0, 116, 115, 1, 97, 114, 97, 112,
-			2, 111, 114, 115, 0, 116, 115, 1, 97, 114, 97, 112, 2, 117, 104, 97, 110, 0, 116, 115, 1, 97, 114, 97, 112, 2, 195, 188, 116, 101,
-			0, 116, 115, 1, 101, 116, 2, 111, 114, 111, 122, 0, 116, 115, 8, 97, 109, 97, 100, 0, 116, 115, 8, 101, 116, 2, 111, 114, 0, 116,
-			115, 3, 89, 76, 12, 0, 116, 115, 122, 97, 3, 89, 119, 108, 0, 116, 115, 122, 101, 3, 89, 119, 109, 0, 115, 1, 169, 195, 103, 101,
-			2, 195, 169, 103, 3, 91, 0, 4, 115, 1, 97, 103, 105, 2, 195, 161, 103, 111, 115, 3, 91, 12, 0, 115, 1, 169, 195, 107, 103, 101,
-			108, 2, 195, 169, 103, 101, 115, 0, 1, 97, 118, 2, 97, 98, 108, 3, 91, 15, 88, 0, 4, 1, 97, 118, 2, 195, 161, 112, 111, 114,
-			3, 91, 88, 0, 1, 97, 118, 2, 195, 161, 114, 0, 1, 111, 114, 97, 109, 2, 117, 103, 0, 1, 161, 195, 108, 108, 97, 104, 2, 97,
-			118, 97, 114, 0, 1, 161, 195, 108, 108, 161, 195, 110, 101, 108, 108, 101, 2, 195, 179, 110, 0, 1, 161, 195, 121, 108, 107, 161, 195, 102,
-			2, 101, 110, 101, 0, 1, 169, 195, 114, 2, 195, 161, 114, 195, 161, 115, 0, 1, 169, 195, 118, 101, 2, 97, 118, 97, 114, 0, 1, 179,
-			195, 110, 111, 118, 2, 101, 110, 101, 0, 1, 182, 195, 114, 182, 195, 107, 2, 117, 103, 0, 2, 97, 99, 115, 107, 0, 2, 97, 118, 97,
-			114, 0, 2, 195, 182, 108, 100, 0, 4, 115, 1, 97, 118, 2, 97, 110, 195, 169, 114, 3, 91, 90, 0, 115, 1, 97, 118, 2, 195, 173,
-			114, 0, 115, 1, 101, 118, 121, 110, 101, 2, 105, 110, 0, 115, 1, 101, 122, 105, 118, 2, 101, 109, 0, 115, 1, 161, 195, 107, 110, 111,
-			115, 2, 101, 109, 108, 0, 115, 1, 161, 195, 116, 2, 105, 110, 0, 115, 1, 169, 195, 116, 114, 101, 115, 2, 105, 114, 0, 115, 1, 169,
-			195, 116, 114, 101, 115, 2, 195, 173, 114, 0, 115, 2, 195, 161, 107, 0, 7, 6, 116, 106, 0, 4, 1, 97, 104, 2, 101, 103, 121, 197,
-			177, 3, 47, 57, 0, 1, 97, 108, 108, 161, 195, 2, 195, 179, 108, 195, 169, 116, 0, 1, 97, 108, 111, 100, 110, 111, 103, 2, 101, 108,
-			0, 1, 97, 108, 117, 103, 110, 97, 104, 2, 97, 118, 195, 173, 116, 0, 1, 97, 108, 117, 103, 110, 97, 104, 2, 101, 108, 0, 1, 97,
-			109, 97, 121, 108, 111, 102, 2, 101, 108, 0, 1, 97, 110, 111, 118, 2, 101, 103, 103, 121, 0, 1, 97, 110, 111, 118, 2, 101, 103, 121,
-			0, 1, 97, 112, 97, 115, 99, 2, 101, 108, 0, 1, 97, 112, 97, 115, 99, 2, 195, 161, 116, 195, 169, 107, 0, 1, 97, 122, 97, 118,
-			97, 122, 115, 2, 101, 103, 0, 1, 97, 122, 97, 118, 97, 122, 115, 2, 111, 103, 0, 1, 97, 122, 111, 103, 108, 111, 100, 2, 97, 118,
-			195, 173, 116, 0, 1, 101, 108, 98, 98, 182, 195, 116, 2, 195, 182, 118, 101, 100, 101, 108, 0, 1, 101, 108, 101, 116, 122, 115, 105, 116,
-			2, 101, 103, 121, 0, 1, 101, 108, 114, 169, 195, 98, 2, 101, 103, 121, 0, 1, 101, 108, 169, 195, 2, 101, 108, 0, 1, 101, 108, 169,
-			195, 2, 195, 161, 114, 97, 100, 195, 169, 107, 0, 1, 101, 108, 188, 195, 114, 101, 116, 2, 101, 108, 195, 182, 108, 0, 1, 101, 109, 169,
-			195, 110, 2, 117, 104, 195, 161, 0, 1, 101, 110, 101, 109, 2, 101, 103, 103, 121, 0, 1, 101, 110, 101, 109, 2, 101, 103, 121, 0, 1,
-			101, 110, 101, 122, 188, 195, 2, 101, 108, 0, 1, 101, 110, 114, 101, 116, 110, 105, 2, 101, 103, 121, 0, 1, 101, 110, 188, 195, 122, 115,
-			2, 101, 108, 0, 1, 101, 115, 101, 2, 111, 103, 0, 1, 101, 122, 101, 106, 101, 102, 2, 101, 108, 0, 1, 101, 122, 114, 169, 195, 122,
-			182, 195, 107, 2, 97, 118, 195, 173, 0, 1, 101, 122, 115, 169, 195, 109, 114, 101, 116, 2, 111, 103, 0, 1, 101, 122, 115, 169, 195, 109,
-			114, 101, 116, 2, 195, 161, 114, 0, 1, 101, 122, 115, 169, 195, 109, 114, 101, 116, 2, 195, 161, 116, 195, 169, 107, 0, 1, 101, 122, 121,
-			108, 101, 104, 2, 101, 108, 0, 1, 101, 122, 177, 197, 121, 116, 110, 101, 108, 108, 105, 98, 2, 101, 108, 0, 1, 101, 122, 177, 197, 121,
-			116, 110, 101, 108, 108, 105, 98, 2, 195, 161, 116, 195, 169, 0, 1, 108, 111, 104, 2, 195, 161, 116, 195, 169, 107, 0, 1, 110, 97, 107,
-			107, 111, 114, 2, 195, 161, 114, 97, 100, 195, 169, 107, 0, 1, 110, 101, 122, 115, 2, 97, 107, 97, 98, 0, 1, 110, 101, 122, 115, 2,
-			195, 161, 110, 111, 115, 0, 1, 110, 111, 114, 102, 2, 195, 161, 114, 0, 1, 110, 111, 115, 99, 2, 195, 161, 116, 195, 169, 107, 0, 1,
-			111, 112, 97, 108, 108, 161, 195, 2, 97, 118, 117, 108, 0, 1, 111, 112, 97, 108, 108, 161, 195, 2, 101, 108, 0, 1, 114, 111, 112, 115,
-			2, 195, 161, 116, 195, 169, 107, 0, 1, 114, 188, 195, 107, 2, 101, 108, 0, 1, 115, 101, 116, 2, 195, 161, 116, 195, 169, 107, 0, 1,
-			115, 188, 195, 122, 101, 2, 101, 108, 118, 0, 1, 122, 115, 182, 195, 114, 182, 195, 107, 2, 195, 161, 114, 0, 1, 161, 195, 2, 117, 115,
-			115, 0, 1, 161, 195, 2, 117, 116, 0, 1, 161, 195, 2, 195, 161, 114, 0, 1, 161, 195, 2, 195, 182, 0, 1, 161, 195, 2, 195, 182,
-			104, 101, 0, 1, 161, 195, 2, 195, 182, 110, 0, 1, 161, 195, 2, 195, 182, 115, 115, 122, 0, 1, 161, 195, 2, 195, 182, 116, 0, 1,
-			169, 195, 104, 2, 101, 103, 121, 197, 177, 0, 1, 169, 195, 107, 2, 101, 103, 121, 197, 177, 0, 1, 169, 195, 107, 2, 195, 161, 116, 115,
-			122, 109, 0, 1, 169, 195, 107, 105, 112, 2, 195, 161, 116, 115, 122, 0, 1, 169, 195, 108, 2, 111, 103, 111, 115, 117, 108, 116, 115, 195,
-			161, 103, 0, 1, 169, 195, 110, 101, 122, 2, 195, 161, 116, 115, 122, 0, 1, 179, 195, 107, 115, 2, 117, 104, 195, 161, 115, 122, 0, 1,
-			179, 195, 112, 2, 101, 0, 1, 182, 195, 2, 101, 103, 121, 197, 177, 0, 1, 186, 195, 2, 97, 118, 195, 173, 0, 1, 186, 195, 2, 101,
-			108, 122, 195, 169, 115, 0, 1, 186, 195, 2, 101, 108, 122, 197, 145, 0, 1, 186, 195, 2, 111, 103, 0, 2, 101, 108, 0, 8, 97, 122,
-			161, 195, 108, 98, 161, 195, 116, 2, 101, 103, 121, 0, 8, 101, 108, 101, 116, 122, 115, 105, 116, 2, 101, 108, 0, 8, 101, 108, 122, 115,
-			169, 195, 107, 2, 101, 108, 101, 110, 0, 8, 110, 97, 122, 115, 101, 100, 2, 195, 161, 114, 109, 0, 8, 122, 115, 101, 114, 101, 107, 2,
-			195, 161, 0, 8, 122, 115, 169, 195, 118, 2, 195, 179, 115, 108, 0, 8, 161, 195, 2, 101, 108, 101, 110, 116, 107, 101, 122, 0, 8, 161,
-			195, 2, 117, 0, 8, 161, 195, 2, 195, 182, 106, 0, 4, 195, 161, 116, 115, 115, 122, 1, 161, 195, 3, 47, 57, 114, 119, 12, 0, 195,
-			161, 116, 115, 122, 1, 161, 195, 0, 4, 1, 17, 67, 3, 80, 0, 1, 110, 111, 115, 99, 0, 1, 114, 188, 195, 107, 0, 1, 115, 188,
-			195, 122, 101, 0, 4, 1, 17, 65, 2, 17, 65, 3, 80, 12, 0, 1, 101, 108, 122, 188, 195, 0, 1, 161, 195, 103, 2, 195, 161, 114,
-			0, 1, 161, 195, 104, 2, 195, 161, 114, 0, 1, 161, 195, 108, 114, 111, 107, 2, 195, 161, 114, 97, 0, 1, 161, 195, 114, 97, 98, 2,
-			195, 161, 114, 0, 7, 6, 116, 115, 0, 4, 122, 1, 97, 100, 97, 3, 47, 89, 0, 122, 1, 97, 100, 97, 2, 111, 108, 103, 195, 161,
-			108, 116, 97, 116, 0, 122, 1, 97, 104, 2, 195, 161, 122, 0, 122, 1, 97, 108, 117, 100, 110, 105, 2, 195, 179, 0, 122, 1, 101, 108,
-			98, 98, 182, 195, 116, 2, 111, 108, 0, 122, 1, 101, 108, 188, 195, 115, 99, 101, 98, 2, 195, 179, 0, 122, 1, 101, 110, 2, 111, 0,
-			122, 1, 101, 110, 101, 109, 2, 195, 169, 108, 0, 122, 1, 101, 116, 101, 114, 101, 122, 115, 2, 111, 108, 103, 195, 161, 108, 97, 116, 0,
-			122, 1, 101, 122, 109, 101, 110, 2, 111, 0, 122, 1, 105, 104, 2, 101, 0, 122, 1, 105, 104, 2, 195, 179, 0, 122, 1, 106, 101, 115,
-			2, 195, 182, 0, 122, 1, 110, 97, 108, 2, 195, 179, 0, 122, 1, 110, 101, 98, 2, 111, 114, 117, 108, 0, 122, 1, 110, 101, 122, 115,
-			2, 111, 98, 114, 111, 107, 0, 122, 1, 110, 101, 122, 115, 2, 195, 169, 107, 0, 122, 1, 110, 111, 114, 102, 2, 111, 108, 103, 195, 161,
-			108, 0, 122, 1, 110, 111, 115, 99, 2, 195, 169, 110, 0, 122, 1, 110, 161, 195, 112, 2, 195, 169, 108, 0, 122, 1, 111, 112, 97, 121,
-			103, 0, 122, 1, 114, 101, 107, 2, 111, 109, 115, 122, 195, 169, 100, 0, 122, 1, 114, 111, 112, 115, 2, 111, 108, 103, 195, 161, 108, 0,
-			122, 1, 114, 188, 195, 107, 2, 195, 179, 0, 122, 1, 161, 195, 2, 97, 0, 122, 1, 161, 195, 2, 101, 0, 122, 1, 161, 195, 2, 111,
-			107, 0, 122, 1, 161, 195, 2, 195, 182, 0, 122, 1, 161, 195, 2, 195, 186, 0, 122, 1, 161, 195, 2, 197, 145, 0, 122, 1, 161, 195,
-			2, 197, 177, 0, 122, 1, 161, 195, 98, 97, 107, 2, 195, 169, 0, 122, 1, 161, 195, 104, 2, 195, 169, 108, 0, 122, 1, 161, 195, 108,
-			2, 101, 0, 122, 1, 161, 195, 108, 2, 101, 114, 195, 169, 115, 122, 0, 122, 1, 161, 195, 122, 115, 115, 97, 112, 2, 195, 169, 108, 0,
-			122, 1, 169, 195, 104, 2, 195, 161, 122, 0, 122, 1, 169, 195, 107, 2, 101, 114, 101, 112, 0, 122, 1, 169, 195, 107, 2, 195, 161, 122,
-			0, 122, 1, 169, 195, 107, 2, 195, 173, 110, 0, 122, 1, 169, 195, 108, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 182, 195, 115, 2,
-			197, 145, 107, 101, 0, 122, 1, 179, 195, 107, 115, 2, 111, 107, 110, 121, 0, 122, 1, 179, 195, 114, 100, 2, 197, 145, 114, 0, 122, 1,
-			182, 195, 2, 195, 161, 122, 0, 122, 1, 186, 195, 2, 111, 114, 111, 115, 0, 122, 1, 186, 195, 2, 195, 169, 108, 0, 122, 2, 97, 0,
-			122, 2, 101, 0, 122, 2, 195, 161, 0, 122, 8, 97, 104, 2, 111, 98, 0, 122, 8, 97, 104, 99, 2, 111, 98, 0, 122, 8, 161, 195,
-			2, 111, 108, 103, 195, 161, 108, 0, 122, 8, 161, 195, 2, 111, 114, 111, 110, 103, 0, 122, 8, 161, 195, 2, 111, 114, 117, 108, 116, 0,
-			122, 8, 161, 195, 2, 111, 114, 195, 173, 116, 0, 122, 8, 169, 195, 104, 2, 111, 98, 0, 122, 8, 169, 195, 107, 2, 111, 98, 0, 122,
-			8, 179, 195, 112, 2, 195, 169, 107, 0, 122, 8, 182, 195, 2, 111, 98, 0, 122, 195, 169, 1, 169, 195, 122, 115, 3, 47, 89, 113, 0,
-			4, 1, 97, 100, 97, 3, 47, 91, 0, 1, 97, 100, 97, 108, 101, 102, 2, 111, 114, 0, 1, 97, 104, 2, 195, 161, 118, 0, 1, 97,
-			108, 108, 161, 195, 2, 101, 114, 101, 103, 0, 1, 97, 108, 111, 100, 110, 111, 103, 2, 111, 114, 0, 1, 97, 108, 114, 111, 107, 97, 121,
-			103, 2, 111, 114, 111, 122, 0, 1, 97, 108, 117, 100, 122, 111, 109, 2, 111, 0, 1, 97, 108, 161, 195, 103, 115, 122, 105, 118, 2, 111,
-			114, 0, 1, 97, 108, 161, 195, 103, 115, 122, 105, 118, 2, 111, 114, 111, 122, 97, 0, 1, 97, 109, 97, 121, 108, 111, 102, 2, 195, 161,
-			118, 0, 1, 97, 110, 97, 103, 97, 100, 2, 101, 106, 0, 1, 97, 114, 105, 108, 101, 102, 2, 195, 161, 118, 0, 1, 97, 122, 97, 118,
-			97, 122, 115, 2, 111, 0, 1, 97, 122, 161, 195, 108, 98, 161, 195, 116, 2, 111, 114, 0, 1, 101, 103, 105, 122, 115, 2, 101, 106, 0,
-			1, 101, 103, 105, 122, 115, 2, 111, 0, 1, 101, 103, 105, 122, 115, 2, 111, 114, 0, 1, 101, 108, 101, 118, 177, 197, 109, 2, 111, 0,
-			1, 101, 108, 101, 118, 177, 197, 109, 2, 195, 161, 118, 0, 1, 101, 108, 101, 121, 103, 101, 107, 2, 195, 169, 114, 0, 1, 101, 108, 114,
-			169, 195, 115, 173, 195, 107, 2, 111, 114, 111, 122, 97, 116, 0, 1, 101, 108, 121, 110, 169, 195, 114, 101, 109, 2, 111, 114, 0, 1, 101,
-			108, 122, 188, 195, 2, 111, 114, 0, 1, 101, 108, 188, 195, 112, 169, 195, 2, 97, 114, 111, 107, 0, 1, 101, 108, 188, 195, 112, 169, 195,
-			2, 97, 114, 111, 107, 0, 1, 101, 108, 188, 195, 114, 101, 116, 2, 195, 161, 118, 0, 1, 101, 108, 188, 195, 115, 99, 101, 98, 2, 195,
-			169, 0, 1, 101, 110, 2, 101, 0, 1, 101, 110, 2, 195, 161, 116, 111, 114, 0, 1, 101, 110, 101, 109, 2, 111, 114, 0, 1, 101, 118,
-			182, 195, 122, 115, 2, 97, 112, 107, 0, 1, 101, 122, 109, 101, 110, 2, 116, 114, 97, 116, 195, 169, 0, 1, 101, 122, 188, 195, 102, 97,
-			107, 110, 117, 109, 2, 97, 98, 108, 0, 1, 105, 98, 2, 101, 98, 101, 115, 115, 195, 169, 103, 0, 1, 105, 109, 2, 101, 0, 1, 108,
-			97, 98, 111, 107, 2, 117, 103, 195, 161, 114, 0, 1, 108, 111, 104, 2, 195, 161, 112, 97, 100, 116, 0, 1, 110, 105, 109, 2, 101, 109,
-			0, 1, 110, 111, 115, 99, 2, 195, 169, 114, 0, 1, 110, 161, 195, 114, 111, 107, 2, 101, 0, 1, 111, 98, 111, 114, 2, 111, 102, 0,
-			1, 111, 111, 98, 2, 111, 114, 114, 101, 110, 100, 0, 1, 111, 112, 97, 108, 108, 161, 195, 2, 111, 114, 0, 1, 114, 97, 112, 2, 195,
-			161, 118, 0, 1, 114, 161, 195, 112, 2, 97, 106, 116, 195, 179, 0, 1, 114, 161, 195, 122, 2, 111, 114, 195, 186, 0, 1, 115, 101, 116,
-			2, 195, 169, 114, 0, 1, 117, 99, 110, 117, 104, 2, 195, 161, 103, 0, 1, 122, 115, 101, 116, 2, 111, 114, 0, 1, 161, 195, 2, 101,
-			103, 195, 173, 116, 0, 1, 161, 195, 2, 101, 106, 108, 101, 0, 1, 161, 195, 2, 111, 114, 0, 1, 161, 195, 2, 117, 103, 0, 1, 161,
-			195, 2, 117, 104, 0, 1, 161, 195, 2, 117, 114, 0, 1, 161, 195, 2, 195, 169, 0, 1, 161, 195, 2, 195, 182, 112, 114, 197, 145, 0,
-			1, 161, 195, 2, 195, 182, 112, 195, 182, 114, 0, 1, 161, 195, 2, 195, 188, 108, 116, 0, 1, 161, 195, 2, 195, 188, 116, 0, 1, 161,
-			195, 2, 195, 188, 118, 195, 173, 116, 0, 1, 161, 195, 103, 2, 195, 188, 108, 108, 121, 101, 100, 0, 1, 169, 195, 107, 2, 97, 114, 107,
-			195, 186, 0, 1, 169, 195, 107, 2, 97, 114, 111, 107, 0, 1, 169, 195, 107, 2, 101, 98, 101, 115, 115, 195, 169, 103, 101, 115, 0, 1,
-			169, 195, 107, 2, 111, 114, 0, 1, 169, 195, 107, 2, 195, 161, 118, 0, 1, 169, 195, 114, 182, 195, 115, 2, 101, 98, 0, 1, 179, 195,
-			107, 115, 2, 97, 112, 107, 97, 0, 1, 179, 195, 114, 100, 2, 195, 182, 118, 195, 169, 110, 110, 121, 0, 1, 179, 195, 114, 100, 2, 195,
-			182, 118, 195, 169, 110, 121, 0, 1, 179, 195, 122, 111, 98, 2, 111, 0, 1, 186, 195, 107, 2, 117, 103, 0, 8, 161, 195, 2, 111, 100,
-			111, 114, 0, 8, 186, 195, 2, 195, 161, 118, 0, 4, 1, 106, 3, 76, 0, 1, 110, 101, 109, 2, 118, 195, 161, 114, 0, 1, 110, 182,
-			195, 100, 2, 195, 182, 110, 0, 2, 32, 14, 128, 128, 130, 0, 2, 97, 0, 2, 101, 0, 2, 111, 0, 2, 117, 0, 2, 195, 161, 0,
-			2, 195, 169, 0, 4, 1, 97, 108, 108, 161, 195, 2, 195, 161, 103, 3, 76, 12, 0, 1, 97, 108, 117, 109, 0, 1, 101, 104, 101, 108,
-			2, 195, 169, 103, 0, 1, 101, 104, 101, 116, 2, 195, 169, 103, 0, 1, 101, 105, 115, 0, 1, 101, 107, 188, 195, 115, 2, 195, 169, 103,
-			0, 1, 101, 108, 106, 101, 102, 2, 195, 169, 103, 0, 1, 101, 109, 169, 195, 110, 2, 195, 169, 103, 0, 1, 101, 114, 101, 109, 115, 105,
-			2, 195, 169, 103, 0, 1, 101, 114, 169, 195, 2, 195, 169, 103, 0, 1, 101, 118, 101, 110, 2, 195, 169, 103, 0, 1, 101, 118, 182, 195,
-			107, 2, 195, 169, 103, 0, 1, 101, 118, 182, 195, 122, 115, 2, 195, 169, 103, 0, 1, 101, 122, 101, 108, 101, 116, 182, 195, 107, 2, 195,
-			169, 103, 0, 1, 101, 122, 105, 102, 2, 195, 169, 103, 0, 1, 101, 122, 109, 101, 110, 0, 1, 105, 103, 101, 115, 2, 195, 169, 0, 1,
-			111, 116, 97, 103, 111, 109, 161, 195, 116, 2, 195, 161, 103, 0, 1, 111, 122, 105, 98, 2, 195, 161, 103, 0, 1, 117, 99, 110, 117, 104,
-			2, 195, 161, 103, 0, 1, 161, 195, 2, 195, 179, 0, 1, 161, 195, 106, 97, 115, 2, 195, 161, 103, 0, 1, 161, 195, 112, 97, 2, 195,
-			161, 103, 0, 1, 161, 195, 114, 97, 98, 0, 1, 169, 195, 107, 2, 195, 169, 103, 0, 1, 169, 195, 109, 101, 122, 115, 2, 195, 169, 103,
-			0, 1, 169, 195, 114, 2, 195, 169, 103, 0, 1, 169, 195, 116, 182, 195, 115, 2, 195, 169, 103, 0, 1, 169, 195, 118, 2, 195, 169, 103,
-			0, 1, 173, 195, 103, 101, 115, 0, 1, 173, 195, 108, 108, 161, 195, 0, 1, 173, 195, 114, 111, 122, 115, 2, 97, 0, 1, 173, 195, 114,
-			188, 195, 2, 101, 0, 1, 177, 197, 102, 0, 1, 177, 197, 104, 0, 1, 182, 195, 116, 182, 195, 107, 2, 195, 169, 103, 0, 8, 161, 195,
-			104, 2, 195, 161, 103, 0, 100, 3, 76, 72, 0, 195, 182, 3, 76, 110, 0, 195, 188, 3, 76, 111, 0, 4, 122, 1, 101, 109, 2, 118,
-			101, 3, 119, 0, 122, 1, 101, 109, 101, 108, 2, 118, 195, 169, 110, 0, 122, 1, 161, 195, 106, 2, 104, 97, 115, 115, 0, 122, 1, 161,
-			195, 106, 2, 104, 97, 116, 0, 122, 1, 161, 195, 106, 2, 109, 0, 122, 1, 161, 195, 106, 2, 118, 0, 4, 115, 122, 1, 97, 108, 108,
-			97, 104, 2, 111, 110, 3, 119, 12, 0, 115, 122, 1, 101, 109, 2, 101, 0, 115, 122, 1, 101, 109, 2, 195, 188, 107, 0, 115, 122, 1,
-			161, 195, 106, 0, 115, 122, 1, 161, 195, 108, 2, 97, 110, 97, 107, 0, 115, 122, 1, 161, 195, 108, 2, 111, 110, 0, 115, 122, 8, 161,
-			195, 108, 2, 195, 169, 107, 0, 122, 1, 97, 108, 108, 97, 104, 2, 97, 0, 122, 1, 97, 108, 108, 97, 104, 2, 105, 107, 0, 122, 1,
-			101, 105, 115, 0, 122, 1, 101, 109, 2, 101, 0, 122, 1, 101, 109, 2, 101, 116, 0, 122, 1, 101, 109, 2, 105, 107, 0, 122, 1, 101,
-			116, 0, 122, 1, 161, 195, 106, 2, 17, 65, 0, 122, 1, 161, 195, 106, 2, 111, 107, 0, 122, 1, 161, 195, 108, 2, 17, 65, 0, 122,
-			1, 169, 195, 104, 2, 101, 114, 0, 122, 1, 169, 195, 107, 2, 101, 114, 0, 122, 1, 182, 195, 2, 195, 182, 114, 0, 122, 1, 182, 195,
-			112, 2, 101, 110, 0, 122, 2, 32, 14, 128, 128, 131, 0, 122, 2, 111, 0, 122, 2, 195, 169, 0, 122, 2, 197, 145, 0, 122, 195, 179,
-			2, 32, 14, 128, 128, 132, 3, 119, 12, 115, 0, 7, 6, 116, 116, 0, 4, 1, 97, 108, 97, 2, 106, 195, 161, 114, 3, 47, 0, 1,
-			101, 107, 105, 114, 107, 2, 106, 195, 161, 116, 0, 1, 101, 107, 105, 114, 107, 2, 106, 195, 161, 116, 0, 1, 111, 108, 97, 104, 2, 115,
-			195, 161, 112, 97, 100, 0, 1, 111, 116, 161, 195, 108, 108, 101, 2, 106, 111, 103, 0, 1, 145, 197, 110, 108, 101, 102, 2, 106, 195, 161,
-			116, 115, 122, 195, 179, 0, 1, 182, 195, 108, 188, 195, 122, 115, 110, 110, 101, 98, 2, 106, 101, 108, 109, 101, 122, 0, 4, 3, 47, 12,
-			0, 1, 101, 122, 101, 121, 108, 101, 104, 2, 114, 197, 145, 108, 0, 1, 122, 115, 101, 114, 101, 107, 2, 197, 177, 122, 0, 1, 169, 195,
-			122, 115, 2, 114, 97, 110, 99, 115, 195, 173, 114, 0, 103, 121, 3, 47, 12, 79, 0, 114, 3, 47, 52, 0, 4, 115, 2, 195, 161, 3,
-			76, 12, 0, 115, 2, 195, 169, 0, 4, 106, 3, 80, 12, 0, 121, 0, 121, 106, 0, 115, 122, 1, 101, 109, 2, 101, 116, 3, 119, 12,
-			0, 7, 6, 116, 121, 0, 1, 110, 101, 122, 115, 100, 110, 105, 109, 3, 47, 37, 0, 2, 97, 114, 100, 3, 47, 57, 0, 7, 6, 195,
-			161, 0, 3, 114, 0, 105, 103, 1, 21, 2, 32, 14, 128, 192, 131, 3, 114, 37, 81, 0, 116, 195, 179, 108, 1, 21, 2, 32, 14, 128,
-			192, 132, 3, 114, 47, 115, 55, 0, 110, 97, 107, 1, 21, 2, 32, 14, 128, 192, 132, 3, 114, 50, 108, 49, 0, 114, 97, 1, 21, 2,
-			32, 14, 128, 192, 131, 3, 114, 52, 108, 0, 98, 97, 110, 1, 21, 2, 32, 14, 128, 192, 132, 3, 114, 71, 108, 50, 0, 7, 6, 195,
-			169, 0, 3, 113, 0, 105, 2, 195, 169, 3, 113, 12, 112, 0, 105, 103, 1, 21, 2, 32, 14, 128, 192, 131, 3, 113, 37, 81, 0, 116,
-			197, 145, 108, 1, 21, 2, 32, 14, 128, 192, 132, 3, 113, 47, 118, 55, 0, 110, 101, 107, 1, 21, 2, 32, 14, 128, 192, 132, 3, 113,
-			50, 109, 49, 0, 114, 101, 1, 21, 2, 32, 14, 128, 192, 131, 3, 113, 52, 109, 0, 98, 101, 110, 1, 21, 2, 32, 14, 128, 192, 132,
-			3, 113, 71, 109, 50, 0, 104, 115, 195, 169, 103, 3, 113, 91, 113, 81, 0, 104, 115, 195, 169, 103, 103, 3, 113, 91, 113, 81, 12, 0,
-			7, 6, 195, 171, 0, 3, 110, 0, 7, 6, 195, 173, 0, 4, 1, 116, 2, 122, 101, 110, 3, 37, 0, 1, 116, 2, 122, 101, 115, 0,
-			1, 116, 2, 122, 101, 116, 0, 1, 118, 2, 122, 101, 110, 0, 1, 118, 2, 122, 195, 169, 114, 101, 0, 1, 122, 115, 2, 118, 97, 116,
-			110, 0, 1, 122, 115, 2, 118, 97, 116, 195, 161, 115, 0, 1, 122, 115, 2, 118, 101, 0, 8, 116, 2, 122, 195, 188, 107, 0, 8, 118,
-			2, 122, 105, 0, 8, 122, 115, 2, 110, 195, 169, 115, 115, 122, 0, 8, 122, 115, 2, 110, 195, 169, 115, 122, 0, 8, 122, 115, 2, 118,
-			97, 116, 116, 97, 107, 0, 8, 122, 115, 2, 118, 97, 116, 116, 195, 161, 107, 107, 0, 8, 122, 115, 2, 118, 97, 116, 195, 179, 0, 8,
-			122, 115, 103, 101, 109, 2, 118, 97, 116, 116, 97, 0, 116, 115, 122, 1, 100, 97, 98, 97, 122, 115, 3, 37, 119, 12, 0, 4, 3, 112,
-			0, 1, 116, 2, 122, 101, 115, 122, 0, 1, 118, 2, 122, 101, 110, 101, 114, 0, 1, 122, 115, 2, 118, 101, 108, 0, 1, 122, 115, 2,
-			118, 101, 109, 101, 108, 0, 1, 122, 115, 2, 118, 101, 109, 195, 169, 115, 122, 116, 0, 1, 122, 115, 2, 118, 101, 114, 101, 0, 1, 122,
-			115, 2, 118, 101, 114, 195, 169, 0, 1, 122, 115, 2, 118, 101, 114, 197, 145, 0, 1, 122, 115, 2, 118, 101, 118, 197, 145, 0, 1, 122,
-			115, 115, 101, 99, 101, 114, 2, 118, 101, 0, 1, 122, 115, 115, 101, 114, 103, 97, 2, 118, 0, 1, 122, 115, 115, 101, 114, 103, 111, 114,
-			112, 2, 118, 101, 0, 1, 122, 115, 115, 101, 114, 112, 120, 101, 2, 118, 0, 8, 118, 2, 122, 105, 195, 179, 0, 116, 115, 3, 112, 76,
-			12, 0, 116, 115, 100, 3, 112, 76, 72, 0, 116, 115, 122, 1, 122, 115, 101, 118, 3, 112, 119, 12, 0, 7, 6, 195, 179, 0, 3, 115,
-			0, 7, 6, 195, 182, 0, 3, 110, 0, 7, 6, 195, 186, 0, 4, 1, 104, 2, 103, 111, 109, 3, 40, 0, 1, 104, 2, 115, 122, 97,
-			110, 0, 1, 104, 2, 115, 122, 97, 115, 0, 1, 104, 2, 115, 122, 97, 116, 0, 8, 104, 2, 103, 103, 121, 0, 8, 104, 2, 103, 111,
-			99, 115, 0, 8, 104, 2, 103, 121, 0, 4, 3, 116, 0, 1, 104, 2, 115, 122, 97, 110, 110, 121, 0, 7, 6, 195, 188, 0, 3, 111,
-			0, 116, 116, 2, 18, 66, 3, 111, 47, 0, 116, 116, 3, 111, 47, 12, 0, 116, 116, 114, 3, 111, 47, 52, 0, 116, 116, 98, 3, 111,
-			47, 71, 0, 116, 116, 121, 2, 18, 66, 3, 111, 80, 0, 116, 116, 121, 3, 111, 80, 12, 0, 116, 116, 121, 114, 3, 111, 80, 52, 0,
-			116, 116, 121, 98, 3, 111, 80, 71, 0, 7, 6, 197, 145, 0, 3, 118, 0, 7, 6, 197, 177, 0, 4, 1, 116, 2, 122, 105, 106, 195,
-			161, 116, 195, 169, 107, 3, 111, 0, 8, 116, 2, 110, 106, 195, 182, 110, 0, 8, 116, 2, 110, 195, 169, 115, 0, 3, 117, 0, 7, 6,
-			97, 0, 8, 2, 32, 3, 2, 108, 0, 108, 1, 45, 32, 48, 48, 15, 2, 32, 3, 88, 108, 55, 0, 3, 108, 0, 108, 1, 45, 32,
-			48, 48, 48, 2, 32, 3, 108, 55, 0, 104, 104, 111, 122, 3, 108, 107, 39, 88, 0, 7, 6, 98, 0, 4, 1, 45, 98, 3, 0, 1,
-			45, 98, 98, 3, 0, 4, 3, 71, 0, 98, 2, 18, 66, 0, 98, 2, 45, 18, 66, 0, 4, 2, 45, 98, 3, 71, 12, 0, 98, 0,
-			98, 2, 45, 98, 0, 105, 122, 2, 17, 65, 3, 71, 37, 88, 4, 0, 98, 114, 3, 71, 52, 0, 98, 106, 3, 71, 57, 0, 97, 110,
-			1, 21, 2, 32, 14, 128, 192, 131, 3, 71, 108, 50, 0, 97, 116, 116, 104, 105, 195, 161, 110, 121, 8, 3, 71, 108, 80, 12, 114, 67,
-			37, 0, 101, 110, 1, 21, 2, 32, 14, 128, 128, 131, 3, 71, 109, 50, 0, 105, 101, 100, 101, 114, 109, 101, 105, 101, 114, 5, 1, 3,
-			71, 112, 72, 109, 52, 65, 114, 57, 109, 52, 0, 7, 6, 99, 0, 4, 1, 45, 99, 3, 0, 4, 1, 45, 99, 99, 3, 0, 4, 99,
-			115, 1, 45, 115, 99, 3, 0, 4, 99, 115, 1, 45, 115, 99, 99, 3, 0, 4, 115, 1, 45, 99, 3, 0, 4, 115, 1, 45, 115, 99,
-			3, 0, 115, 1, 45, 115, 99, 99, 3, 0, 107, 5, 1, 8, 111, 116, 115, 2, 104, 111, 108, 109, 3, 49, 0, 4, 99, 115, 1, 45,
-			99, 99, 3, 76, 0, 99, 115, 2, 18, 66, 0, 99, 115, 2, 45, 18, 66, 0, 115, 0, 115, 1, 45, 99, 99, 0, 115, 1, 105, 118,
-			97, 107, 2, 122, 0, 115, 1, 105, 118, 97, 107, 2, 122, 195, 161, 116, 111, 110, 121, 0, 115, 1, 105, 118, 100, 110, 101, 122, 115, 2,
-			122, 97, 98, 0, 115, 1, 108, 117, 107, 2, 122, 101, 110, 0, 115, 1, 108, 117, 107, 2, 122, 195, 182, 114, 103, 0, 115, 1, 108, 182,
-			195, 109, 188, 195, 121, 103, 2, 122, 115, 0, 115, 1, 110, 105, 108, 105, 98, 2, 122, 195, 182, 114, 0, 115, 1, 110, 105, 108, 105, 107,
-			2, 122, 195, 182, 114, 0, 115, 1, 110, 161, 195, 108, 122, 115, 111, 114, 111, 2, 111, 114, 0, 115, 1, 110, 161, 195, 116, 2, 105, 0,
-			115, 1, 110, 161, 195, 116, 2, 105, 99, 115, 0, 115, 1, 110, 161, 195, 116, 105, 116, 0, 115, 1, 110, 161, 195, 116, 161, 195, 115, 2,
-			97, 112, 0, 115, 1, 111, 112, 97, 107, 2, 122, 195, 161, 114, 0, 115, 1, 114, 169, 195, 2, 195, 173, 112, 116, 101, 0, 115, 1, 117,
-			112, 97, 112, 0, 115, 1, 161, 195, 107, 114, 97, 98, 2, 122, 101, 110, 0, 115, 1, 161, 195, 112, 97, 108, 97, 107, 2, 122, 111, 110,
-			0, 115, 1, 161, 195, 116, 114, 97, 107, 2, 122, 195, 161, 112, 111, 0, 115, 8, 108, 111, 112, 97, 107, 0, 4, 99, 115, 3, 76, 12,
-			0, 99, 115, 2, 45, 99, 99, 115, 0, 99, 115, 2, 45, 99, 115, 0, 115, 1, 161, 195, 114, 97, 98, 2, 195, 161, 103, 116, 97, 0,
-			115, 2, 45, 99, 99, 115, 0, 115, 2, 45, 99, 115, 0, 99, 115, 114, 3, 76, 52, 0, 115, 122, 1, 161, 195, 112, 97, 108, 97, 107,
-			2, 101, 110, 3, 76, 88, 0, 4, 99, 115, 2, 45, 115, 122, 3, 76, 89, 0, 115, 2, 45, 115, 122, 0, 115, 122, 115, 3, 76, 90,
-			0, 4, 3, 119, 0, 1, 97, 108, 97, 109, 2, 99, 115, 0, 1, 97, 108, 97, 109, 2, 115, 195, 161, 0, 1, 97, 108, 97, 109, 2,
-			115, 195, 188, 108, 0, 1, 97, 114, 116, 97, 109, 2, 115, 111, 114, 0, 1, 97, 122, 97, 108, 0, 1, 101, 114, 101, 112, 2, 99, 115,
-			0, 1, 101, 114, 101, 112, 2, 115, 195, 188, 116, 0, 1, 101, 114, 116, 101, 107, 2, 99, 115, 0, 1, 101, 114, 116, 101, 107, 2, 115,
-			111, 0, 1, 108, 105, 102, 2, 99, 115, 105, 122, 0, 1, 108, 111, 112, 2, 115, 111, 0, 1, 108, 111, 121, 110, 2, 99, 115, 97, 116,
-			0, 1, 108, 111, 121, 110, 2, 115, 97, 114, 107, 0, 1, 108, 111, 121, 110, 2, 115, 101, 98, 0, 1, 108, 111, 121, 110, 2, 115, 101,
-			106, 0, 1, 108, 111, 121, 110, 2, 115, 117, 103, 0, 1, 110, 97, 104, 117, 115, 0, 1, 110, 101, 99, 105, 108, 2, 115, 195, 169, 114,
-			116, 195, 169, 115, 0, 1, 110, 101, 108, 105, 107, 2, 99, 115, 97, 116, 111, 114, 110, 0, 1, 110, 101, 108, 105, 107, 2, 115, 99, 104,
-			105, 108, 108, 0, 1, 110, 101, 108, 105, 107, 2, 115, 195, 161, 118, 0, 1, 110, 101, 121, 103, 101, 102, 0, 1, 110, 101, 121, 110, 173,
-			195, 2, 115, 195, 169, 103, 0, 1, 110, 105, 109, 114, 97, 104, 2, 115, 111, 114, 0, 1, 110, 105, 114, 101, 103, 0, 1, 110, 111, 98,
-			97, 114, 97, 103, 2, 115, 101, 114, 0, 1, 110, 111, 103, 114, 97, 121, 110, 2, 99, 115, 0, 1, 110, 111, 106, 102, 105, 2, 99, 115,
-			97, 112, 0, 1, 110, 111, 110, 97, 116, 2, 99, 115, 0, 1, 110, 111, 114, 97, 118, 100, 117, 2, 115, 101, 114, 0, 1, 110, 161, 195,
-			108, 2, 99, 115, 0, 1, 110, 161, 195, 108, 2, 115, 101, 98, 0, 1, 110, 161, 195, 108, 2, 115, 111, 114, 0, 1, 110, 161, 195, 116,
-			2, 99, 115, 0, 1, 110, 161, 195, 116, 2, 115, 0, 1, 110, 182, 195, 108, 188, 195, 107, 2, 115, 195, 169, 0, 1, 111, 98, 114, 161,
-			195, 2, 99, 115, 195, 186, 99, 115, 0, 1, 111, 98, 114, 161, 195, 2, 115, 117, 100, 0, 1, 111, 122, 115, 2, 115, 101, 103, 195, 169,
-			108, 121, 0, 1, 114, 97, 2, 99, 115, 111, 110, 0, 1, 114, 97, 100, 117, 107, 2, 115, 111, 114, 111, 122, 97, 116, 0, 1, 114, 97,
-			104, 2, 99, 115, 101, 108, 101, 107, 0, 1, 114, 97, 104, 2, 99, 115, 111, 112, 111, 114, 116, 0, 1, 114, 97, 107, 2, 115, 111, 114,
-			0, 1, 114, 101, 110, 2, 115, 116, 195, 179, 108, 97, 0, 1, 114, 101, 112, 106, 106, 117, 2, 99, 115, 0, 1, 114, 111, 112, 2, 115,
-			122, 0, 1, 114, 111, 112, 2, 115, 195, 169, 0, 1, 114, 169, 195, 2, 115, 111, 100, 114, 0, 1, 114, 169, 195, 98, 2, 99, 115, 117,
-			116, 0, 1, 114, 169, 195, 98, 2, 115, 195, 188, 118, 101, 103, 0, 1, 114, 169, 195, 100, 105, 108, 2, 99, 115, 0, 1, 117, 100, 114,
-			161, 195, 112, 2, 99, 115, 0, 1, 161, 195, 110, 114, 111, 116, 2, 115, 111, 114, 0, 1, 161, 195, 112, 2, 115, 195, 179, 0, 1, 169,
-			195, 116, 105, 110, 97, 122, 115, 2, 99, 115, 0, 1, 179, 195, 98, 114, 161, 195, 2, 99, 115, 195, 186, 99, 115, 0, 1, 179, 195, 104,
-			111, 98, 2, 115, 97, 112, 107, 0, 1, 179, 195, 104, 111, 98, 2, 115, 105, 112, 107, 0, 1, 179, 195, 108, 97, 116, 114, 97, 109, 0,
-			1, 179, 195, 114, 97, 100, 2, 99, 115, 0, 1, 179, 195, 114, 107, 111, 112, 2, 99, 115, 0, 1, 179, 195, 114, 107, 111, 112, 2, 115,
-			195, 161, 0, 8, 97, 105, 112, 2, 99, 115, 97, 114, 110, 111, 107, 0, 8, 97, 108, 97, 109, 2, 115, 105, 118, 195, 173, 116, 0, 8,
-			101, 103, 101, 106, 0, 8, 108, 105, 102, 2, 99, 115, 195, 173, 107, 0, 8, 108, 111, 112, 2, 99, 115, 97, 116, 0, 8, 110, 97, 98,
-			97, 108, 0, 8, 110, 101, 106, 169, 195, 107, 0, 8, 110, 101, 108, 105, 107, 2, 99, 115, 111, 109, 195, 179, 0, 8, 110, 101, 108, 105,
-			107, 2, 99, 115, 195, 182, 118, 0, 8, 110, 105, 114, 112, 2, 115, 195, 169, 103, 0, 8, 110, 111, 103, 114, 105, 118, 2, 115, 195, 161,
-			103, 0, 8, 110, 111, 106, 186, 195, 0, 8, 110, 169, 195, 109, 108, 101, 2, 115, 195, 169, 103, 0, 8, 114, 97, 2, 115, 101, 98, 0,
-			8, 114, 97, 2, 115, 195, 169, 114, 195, 188, 108, 0, 8, 114, 101, 110, 2, 115, 116, 195, 179, 108, 195, 161, 0, 8, 114, 169, 195, 2,
-			99, 115, 0, 8, 114, 169, 195, 2, 115, 97, 108, 97, 107, 0, 8, 114, 169, 195, 2, 115, 97, 114, 117, 0, 8, 114, 169, 195, 2, 115,
-			97, 115, 0, 8, 114, 169, 195, 2, 115, 101, 108, 121, 0, 8, 114, 169, 195, 2, 115, 105, 115, 97, 107, 0, 8, 114, 169, 195, 2, 115,
-			195, 173, 112, 0, 8, 117, 114, 117, 107, 0, 8, 161, 195, 107, 97, 2, 115, 195, 182, 118, 0, 8, 161, 195, 107, 161, 195, 2, 115, 195,
-			182, 118, 0, 8, 161, 195, 114, 2, 115, 195, 161, 103, 0, 8, 169, 195, 108, 106, 101, 102, 0, 8, 179, 195, 104, 111, 98, 2, 115, 122,
-			0, 8, 179, 195, 107, 2, 99, 115, 111, 109, 195, 179, 0, 8, 179, 195, 108, 97, 112, 2, 115, 195, 161, 103, 0, 99, 1, 101, 104, 2,
-			115, 97, 106, 116, 0, 99, 2, 18, 66, 0, 99, 2, 45, 18, 66, 0, 99, 2, 45, 99, 99, 115, 0, 99, 2, 45, 99, 115, 0, 99,
-			8, 105, 118, 2, 115, 111, 114, 0, 122, 1, 19, 0, 122, 8, 110, 105, 2, 195, 169, 100, 0, 4, 2, 45, 99, 3, 119, 12, 0, 99,
-			0, 99, 2, 45, 99, 0, 99, 114, 3, 119, 52, 0, 4, 2, 45, 99, 115, 3, 119, 76, 0, 99, 115, 1, 110, 101, 99, 105, 108, 0,
-			4, 99, 115, 122, 3, 119, 89, 0, 99, 115, 122, 0, 115, 122, 0, 115, 8, 179, 195, 104, 111, 98, 3, 119, 91, 0, 115, 111, 114, 8,
-			114, 97, 104, 3, 119, 91, 39, 52, 0, 7, 6, 100, 0, 4, 1, 45, 100, 3, 0, 4, 1, 45, 100, 100, 3, 0, 1, 114, 111, 107,
-			101, 114, 2, 115, 101, 98, 101, 115, 115, 195, 169, 103, 3, 0, 116, 1, 122, 101, 107, 3, 47, 0, 4, 116, 3, 47, 12, 0, 116, 2,
-			115, 122, 0, 116, 116, 0, 116, 116, 1, 101, 108, 108, 188, 195, 102, 2, 195, 169, 0, 116, 115, 122, 195, 169, 3, 47, 12, 89, 113, 0,
-			110, 121, 1, 110, 105, 109, 3, 67, 0, 4, 3, 72, 0, 1, 97, 98, 97, 122, 115, 2, 106, 101, 103, 0, 1, 97, 98, 97, 122, 115,
-			2, 115, 97, 106, 116, 0, 1, 97, 98, 97, 122, 115, 2, 115, 116, 114, 97, 110, 100, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 101,
-			108, 108, 101, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 101, 109, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 101, 110, 116, 0, 1,
-			97, 98, 97, 122, 115, 2, 115, 122, 101, 114, 101, 108, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 111, 102, 116, 0, 1, 97, 98, 97,
-			122, 115, 2, 115, 122, 111, 109, 98, 97, 116, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 195, 161, 106, 195, 186, 0, 1, 97, 98, 97,
-			122, 115, 2, 115, 122, 195, 161, 108, 108, 195, 161, 115, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 195, 179, 108, 0, 1, 97, 99, 110,
-			105, 109, 114, 97, 104, 2, 115, 122, 101, 0, 1, 97, 104, 2, 106, 195, 161, 114, 97, 116, 0, 1, 97, 104, 2, 115, 101, 103, 195, 169,
-			100, 0, 1, 97, 104, 2, 115, 111, 114, 0, 1, 97, 104, 2, 115, 122, 101, 114, 116, 195, 161, 0, 1, 97, 104, 2, 115, 122, 105, 110,
-			0, 1, 97, 104, 145, 197, 102, 2, 115, 101, 103, 195, 169, 100, 0, 1, 97, 109, 114, 97, 104, 2, 115, 111, 114, 0, 1, 97, 109, 114,
-			97, 104, 2, 115, 122, 105, 110, 116, 0, 1, 97, 109, 114, 97, 104, 2, 115, 122, 195, 161, 110, 100, 195, 169, 107, 0, 1, 97, 109, 114,
-			97, 104, 2, 115, 122, 195, 161, 122, 0, 1, 97, 112, 2, 115, 111, 114, 0, 1, 97, 112, 2, 115, 122, 101, 114, 197, 177, 0, 1, 97,
-			112, 2, 115, 122, 111, 109, 115, 122, 195, 169, 0, 1, 97, 112, 2, 115, 122, 197, 145, 110, 121, 0, 1, 97, 118, 2, 115, 122, 101, 100,
-			101, 114, 0, 1, 97, 118, 2, 115, 122, 101, 103, 102, 0, 1, 97, 118, 2, 115, 122, 101, 114, 197, 177, 0, 1, 97, 118, 2, 115, 122,
-			105, 108, 118, 0, 1, 97, 118, 2, 115, 122, 116, 114, 195, 161, 106, 107, 0, 1, 97, 118, 2, 115, 122, 195, 161, 108, 108, 195, 173, 0,
-			1, 97, 118, 2, 115, 122, 195, 179, 106, 0, 1, 97, 118, 2, 115, 122, 197, 145, 0, 1, 97, 118, 2, 115, 195, 161, 102, 114, 0, 1,
-			97, 118, 2, 116, 121, 195, 186, 107, 0, 1, 97, 122, 161, 195, 122, 115, 2, 115, 122, 101, 109, 108, 101, 0, 1, 97, 122, 161, 195, 122,
-			115, 2, 115, 122, 105, 110, 116, 0, 1, 97, 122, 161, 195, 122, 115, 2, 115, 122, 195, 161, 109, 0, 1, 101, 101, 119, 116, 2, 115, 97,
-			112, 107, 0, 1, 101, 101, 119, 116, 2, 115, 122, 195, 182, 118, 101, 116, 0, 1, 101, 114, 122, 101, 2, 115, 101, 103, 195, 169, 0, 1,
-			101, 114, 122, 101, 2, 115, 122, 101, 109, 0, 1, 101, 114, 122, 101, 2, 115, 122, 101, 114, 116, 101, 0, 1, 101, 114, 122, 101, 2, 115,
-			122, 105, 110, 0, 1, 101, 114, 122, 101, 2, 115, 122, 195, 161, 0, 1, 101, 114, 122, 101, 2, 122, 195, 161, 115, 122, 108, 0, 1, 101,
-			121, 103, 101, 2, 115, 122, 195, 161, 109, 0, 1, 101, 121, 103, 101, 110, 2, 115, 122, 195, 161, 122, 0, 1, 101, 121, 103, 101, 110, 2,
-			115, 122, 195, 169, 108, 0, 1, 101, 122, 105, 116, 2, 115, 122, 101, 100, 0, 1, 101, 122, 105, 116, 2, 115, 122, 195, 161, 109, 0, 1,
-			101, 122, 105, 116, 2, 115, 122, 195, 161, 122, 0, 1, 103, 97, 114, 97, 109, 115, 2, 115, 122, 195, 173, 110, 0, 1, 105, 112, 105, 108,
-			2, 115, 122, 105, 110, 116, 0, 1, 105, 118, 182, 195, 114, 2, 115, 111, 114, 111, 122, 0, 1, 105, 118, 182, 195, 114, 2, 122, 195, 161,
-			114, 0, 1, 105, 118, 182, 195, 114, 2, 122, 195, 161, 114, 108, 97, 116, 0, 1, 106, 97, 102, 2, 116, 121, 195, 186, 107, 0, 1, 108,
-			111, 98, 111, 107, 2, 115, 122, 195, 182, 103, 0, 1, 108, 111, 104, 2, 115, 122, 111, 110, 100, 0, 1, 108, 111, 104, 2, 115, 122, 112,
-			117, 116, 110, 121, 105, 107, 0, 1, 108, 111, 104, 2, 115, 195, 188, 0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 103, 195, 169, 108, 121,
-			0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 114, 107, 101, 0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 114, 122, 195, 169, 0, 1, 108,
-			182, 195, 102, 2, 115, 122, 101, 114, 197, 177, 0, 1, 108, 182, 195, 102, 2, 115, 122, 111, 114, 111, 115, 0, 1, 108, 182, 195, 102, 2,
-			115, 122, 195, 173, 110, 101, 107, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 173, 110, 195, 169, 0, 1, 108, 182, 195, 102, 2, 115, 122,
-			195, 173, 110, 197, 177, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 182, 107, 197, 145, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 188,
-			114, 107, 0, 1, 108, 182, 195, 102, 2, 115, 195, 161, 110, 99, 0, 1, 108, 182, 195, 102, 2, 115, 195, 161, 118, 0, 1, 108, 182, 195,
-			122, 2, 115, 97, 112, 107, 0, 1, 108, 182, 195, 122, 2, 115, 122, 101, 109, 0, 1, 108, 182, 195, 122, 2, 115, 122, 195, 173, 110, 0,
-			1, 108, 182, 195, 122, 2, 115, 195, 161, 118, 0, 1, 110, 97, 108, 97, 107, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 110, 97, 108,
-			97, 107, 2, 115, 122, 101, 114, 0, 1, 110, 97, 108, 97, 107, 2, 115, 122, 101, 114, 101, 112, 0, 1, 110, 97, 108, 116, 101, 104, 115,
-			2, 115, 122, 105, 103, 101, 0, 1, 110, 97, 114, 116, 115, 2, 115, 122, 101, 116, 116, 0, 1, 110, 97, 114, 116, 115, 2, 115, 122, 101,
-			122, 111, 110, 0, 1, 110, 101, 114, 2, 115, 122, 97, 0, 1, 110, 101, 114, 2, 115, 122, 101, 114, 101, 116, 197, 145, 0, 1, 110, 101,
-			114, 2, 122, 97, 118, 97, 114, 0, 1, 110, 101, 115, 99, 2, 115, 195, 169, 114, 116, 195, 169, 115, 0, 1, 110, 105, 109, 2, 106, 111,
-			98, 98, 97, 110, 0, 1, 110, 111, 107, 97, 118, 2, 115, 122, 0, 1, 110, 182, 195, 114, 145, 197, 98, 2, 115, 122, 101, 0, 1, 111,
-			115, 114, 111, 98, 2, 115, 122, 0, 1, 111, 115, 161, 195, 109, 2, 115, 111, 114, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 97, 107,
-			195, 161, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 97, 118, 97, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 101, 114, 101, 112, 0,
-			1, 111, 115, 161, 195, 109, 2, 115, 122, 105, 110, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 195, 188, 108, 195, 182, 116, 116, 0, 1,
-			114, 97, 100, 110, 97, 116, 115, 2, 106, 101, 103, 121, 0, 1, 114, 97, 107, 2, 115, 117, 0, 1, 114, 97, 107, 2, 115, 122, 101, 114,
-			197, 177, 0, 1, 114, 97, 107, 2, 115, 122, 195, 173, 106, 0, 1, 114, 111, 102, 2, 106, 195, 161, 110, 111, 115, 0, 1, 114, 111, 104,
-			2, 115, 122, 195, 169, 107, 0, 1, 114, 111, 104, 2, 115, 122, 195, 173, 0, 1, 114, 111, 106, 102, 2, 115, 122, 101, 114, 197, 177, 0,
-			1, 114, 111, 107, 101, 114, 2, 115, 101, 98, 101, 115, 115, 195, 169, 103, 0, 1, 114, 111, 107, 101, 114, 2, 115, 117, 103, 195, 161, 114,
-			0, 1, 114, 111, 107, 101, 114, 2, 115, 122, 101, 114, 0, 1, 114, 111, 107, 101, 114, 2, 115, 122, 101, 114, 107, 101, 122, 0, 1, 114,
-			111, 107, 101, 114, 2, 115, 122, 101, 122, 111, 0, 1, 114, 111, 107, 101, 114, 2, 115, 122, 105, 110, 116, 0, 1, 114, 111, 107, 107, 97,
-			2, 106, 195, 161, 116, 115, 122, 0, 1, 114, 161, 195, 105, 108, 105, 109, 2, 115, 122, 111, 114, 0, 1, 114, 161, 195, 122, 97, 104, 2,
-			106, 195, 161, 116, 195, 169, 107, 0, 1, 114, 161, 195, 122, 110, 97, 109, 2, 115, 122, 111, 98, 0, 1, 114, 169, 195, 116, 2, 115, 122,
-			111, 107, 110, 121, 0, 1, 114, 169, 195, 116, 2, 115, 122, 195, 173, 106, 0, 1, 114, 169, 195, 116, 2, 115, 195, 169, 114, 195, 188, 108,
-			0, 1, 145, 197, 108, 101, 2, 115, 122, 101, 114, 118, 0, 1, 145, 197, 114, 101, 2, 115, 122, 101, 114, 197, 177, 0, 1, 145, 197, 115,
-			99, 2, 115, 122, 101, 114, 197, 177, 0, 1, 161, 195, 107, 114, 161, 195, 2, 115, 122, 101, 114, 197, 177, 0, 1, 161, 195, 108, 97, 115,
-			99, 2, 106, 111, 103, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115, 101, 103, 195, 173, 116, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115,
-			122, 101, 114, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115, 122, 101, 114, 101, 116, 197, 145, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115,
-			122, 111, 99, 105, 111, 108, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115, 122, 116, 111, 114, 0, 1, 161, 195, 110, 0, 1, 161, 195, 110,
-			2, 115, 117, 104, 111, 103, 0, 1, 161, 195, 110, 2, 115, 122, 101, 114, 100, 0, 1, 161, 195, 110, 2, 115, 122, 105, 108, 195, 161, 110,
-			0, 1, 161, 195, 110, 2, 115, 122, 195, 169, 107, 0, 1, 161, 195, 110, 2, 115, 122, 195, 182, 118, 101, 0, 1, 161, 195, 110, 2, 115,
-			122, 197, 145, 110, 121, 101, 0, 1, 161, 195, 110, 2, 115, 195, 173, 112, 0, 1, 161, 195, 110, 114, 101, 104, 2, 115, 122, 0, 1, 161,
-			195, 112, 114, 161, 195, 2, 115, 195, 161, 118, 0, 1, 161, 195, 112, 114, 161, 195, 2, 115, 195, 161, 118, 0, 1, 161, 195, 112, 114, 161,
-			195, 2, 122, 195, 161, 115, 122, 108, 195, 179, 0, 1, 161, 195, 114, 161, 195, 121, 110, 2, 115, 122, 101, 114, 101, 0, 1, 161, 195, 118,
-			2, 115, 122, 195, 179, 122, 97, 0, 1, 161, 195, 122, 115, 105, 108, 97, 112, 2, 115, 111, 114, 0, 1, 169, 195, 98, 101, 2, 106, 101,
-			103, 0, 1, 169, 195, 108, 101, 115, 99, 2, 115, 111, 0, 1, 169, 195, 118, 2, 106, 101, 103, 103, 121, 0, 1, 169, 195, 118, 2, 106,
-			101, 103, 121, 0, 1, 169, 195, 118, 110, 111, 104, 2, 115, 101, 114, 101, 103, 0, 1, 169, 195, 118, 115, 2, 122, 115, 101, 98, 0, 1,
-			169, 195, 118, 121, 103, 188, 195, 2, 106, 101, 108, 0, 1, 169, 195, 122, 115, 101, 98, 2, 106, 97, 118, 195, 173, 116, 0, 1, 169, 195,
-			122, 115, 101, 98, 2, 106, 101, 108, 0, 1, 169, 195, 122, 115, 101, 98, 2, 115, 101, 98, 101, 115, 115, 195, 169, 103, 0, 1, 169, 195,
-			122, 115, 101, 98, 2, 115, 116, 195, 173, 108, 117, 115, 0, 1, 169, 195, 122, 115, 101, 98, 2, 115, 122, 105, 110, 0, 1, 169, 195, 122,
-			115, 101, 98, 2, 122, 97, 103, 121, 0, 1, 169, 195, 122, 115, 109, 111, 122, 115, 2, 106, 111, 103, 0, 1, 169, 195, 122, 115, 109, 111,
-			122, 115, 2, 115, 111, 114, 0, 1, 173, 195, 104, 2, 115, 122, 101, 114, 0, 1, 173, 195, 104, 2, 115, 122, 101, 114, 107, 101, 122, 101,
-			116, 0, 1, 179, 195, 104, 2, 115, 122, 197, 145, 114, 0, 1, 179, 195, 106, 2, 115, 122, 105, 118, 195, 161, 114, 0, 1, 179, 195, 107,
-			2, 106, 101, 108, 0, 1, 179, 195, 107, 2, 115, 111, 114, 0, 1, 179, 195, 107, 2, 115, 122, 101, 114, 107, 101, 0, 1, 179, 195, 107,
-			2, 115, 122, 195, 179, 0, 1, 179, 195, 107, 2, 115, 122, 195, 182, 118, 101, 0, 1, 179, 195, 109, 2, 106, 97, 118, 97, 115, 108, 97,
-			116, 0, 1, 179, 195, 109, 2, 115, 111, 114, 0, 1, 179, 195, 114, 112, 97, 2, 115, 122, 0, 1, 179, 195, 116, 97, 107, 2, 115, 117,
-			103, 195, 161, 114, 0, 1, 179, 195, 116, 117, 2, 106, 101, 108, 195, 182, 108, 0, 1, 179, 195, 116, 117, 2, 115, 122, 101, 114, 118, 0,
-			1, 179, 195, 122, 105, 112, 101, 2, 115, 122, 101, 114, 0, 1, 179, 195, 122, 105, 112, 101, 2, 115, 122, 101, 114, 101, 112, 0, 1, 182,
-			195, 107, 2, 115, 122, 105, 114, 195, 169, 110, 0, 1, 182, 195, 107, 2, 115, 122, 105, 116, 195, 161, 108, 195, 161, 115, 0, 1, 182, 195,
-			116, 182, 195, 2, 115, 122, 195, 188, 108, 195, 182, 0, 1, 186, 195, 108, 2, 122, 115, 195, 173, 114, 0, 1, 186, 195, 114, 2, 115, 122,
-			101, 114, 197, 177, 0, 8, 97, 104, 2, 106, 195, 161, 116, 195, 169, 107, 0, 8, 97, 104, 2, 115, 122, 101, 114, 0, 8, 97, 104, 2,
-			115, 122, 195, 161, 108, 108, 0, 8, 97, 109, 114, 97, 104, 2, 115, 122, 195, 188, 108, 0, 8, 97, 118, 2, 115, 122, 97, 103, 0, 8,
-			97, 118, 2, 115, 122, 97, 109, 0, 8, 97, 118, 2, 115, 122, 101, 114, 98, 0, 8, 97, 118, 2, 115, 122, 195, 161, 114, 110, 121, 0,
-			8, 103, 97, 114, 97, 109, 115, 2, 115, 122, 0, 8, 108, 111, 104, 2, 115, 97, 114, 108, 195, 179, 0, 8, 108, 182, 195, 102, 2, 115,
-			122, 101, 108, 108, 101, 0, 8, 108, 182, 195, 102, 2, 115, 122, 101, 114, 122, 0, 8, 108, 182, 195, 102, 2, 115, 122, 105, 103, 101, 116,
-			0, 8, 108, 182, 195, 102, 2, 115, 122, 117, 114, 111, 107, 0, 8, 108, 182, 195, 102, 2, 115, 122, 195, 173, 110, 0, 8, 108, 182, 195,
-			102, 2, 115, 122, 195, 188, 108, 116, 0, 8, 110, 101, 114, 2, 106, 101, 108, 0, 8, 110, 111, 103, 2, 115, 122, 101, 114, 0, 8, 114,
-			97, 107, 2, 115, 122, 195, 186, 114, 0, 8, 114, 111, 104, 2, 115, 122, 101, 107, 0, 8, 114, 161, 195, 105, 108, 105, 98, 2, 115, 122,
-			111, 0, 8, 114, 169, 195, 116, 2, 122, 115, 101, 98, 0, 8, 122, 188, 195, 107, 2, 115, 122, 101, 108, 108, 0, 8, 161, 195, 110, 2,
-			115, 122, 101, 103, 0, 8, 161, 195, 110, 2, 115, 195, 182, 118, 0, 8, 161, 195, 114, 2, 115, 195, 179, 122, 0, 8, 179, 195, 107, 2,
-			115, 122, 111, 98, 0, 8, 182, 195, 107, 2, 115, 122, 101, 114, 197, 177, 0, 8, 182, 195, 107, 2, 115, 122, 195, 188, 114, 107, 0, 8,
-			186, 195, 108, 2, 115, 122, 111, 107, 195, 161, 115, 0, 100, 1, 97, 104, 2, 32, 14, 128, 128, 130, 0, 100, 2, 18, 66, 0, 100, 2,
-			45, 18, 66, 0, 4, 2, 45, 100, 3, 72, 12, 0, 100, 0, 100, 1, 161, 195, 110, 0, 100, 2, 45, 100, 0, 111, 98, 101, 114, 109,
-			97, 110, 110, 3, 72, 39, 71, 12, 109, 52, 65, 108, 50, 0, 100, 114, 3, 72, 52, 0, 100, 98, 3, 72, 71, 0, 122, 1, 101, 101,
-			119, 116, 2, 97, 107, 3, 72, 88, 0, 4, 115, 122, 1, 97, 2, 195, 173, 3, 72, 89, 0, 115, 122, 1, 101, 101, 119, 116, 2, 111,
-			107, 0, 115, 122, 1, 110, 101, 114, 2, 101, 114, 105, 110, 116, 0, 115, 122, 1, 110, 101, 114, 116, 101, 110, 101, 109, 2, 101, 114, 197,
-			177, 0, 115, 122, 1, 169, 195, 0, 115, 122, 2, 97, 0, 115, 122, 2, 195, 161, 0, 115, 122, 8, 110, 101, 114, 2, 101, 114, 101, 116,
-			101, 116, 0, 115, 122, 8, 110, 101, 114, 116, 2, 101, 0, 195, 188, 104, 116, 197, 145, 108, 3, 72, 111, 47, 118, 55, 0, 195, 188, 104,
-			98, 101, 3, 72, 111, 71, 109, 0, 195, 188, 104, 118, 101, 108, 3, 72, 111, 84, 109, 55, 0, 105, 101, 115, 101, 108, 5, 1, 3, 72,
-			112, 88, 109, 55, 0, 4, 100, 122, 115, 2, 18, 66, 3, 75, 0, 100, 122, 115, 2, 45, 18, 66, 0, 4, 100, 122, 115, 1, 105, 114,
-			98, 2, 101, 108, 3, 75, 12, 0, 122, 115, 1, 111, 98, 109, 97, 107, 0, 4, 115, 1, 17, 67, 3, 76, 0, 115, 2, 17, 67, 0,
-			4, 115, 1, 17, 65, 2, 17, 65, 3, 76, 12, 0, 115, 1, 169, 195, 108, 101, 115, 99, 2, 195, 169, 103, 0, 116, 115, 0, 106, 1,
-			17, 67, 3, 79, 0, 4, 106, 3, 79, 12, 0, 106, 1, 17, 65, 2, 17, 65, 0, 4, 115, 122, 3, 119, 0, 115, 122, 1, 110, 101,
-			114, 2, 101, 114, 105, 110, 116, 101, 103, 114, 195, 161, 99, 105, 195, 179, 0, 115, 122, 2, 17, 67, 0, 115, 122, 8, 110, 111, 109, 2,
-			97, 0, 4, 115, 122, 1, 97, 2, 17, 65, 3, 119, 12, 0, 115, 122, 1, 101, 2, 17, 65, 0, 115, 122, 1, 111, 2, 17, 65, 0,
-			115, 122, 1, 179, 195, 0, 115, 122, 1, 182, 195, 116, 182, 195, 2, 195, 182, 114, 0, 115, 122, 2, 32, 14, 128, 128, 131, 0, 100, 122,
-			2, 18, 66, 3, 120, 0, 7, 6, 101, 0, 108, 1, 45, 32, 48, 48, 48, 2, 32, 3, 51, 109, 55, 0, 3, 109, 0, 108, 1, 45,
-			32, 48, 48, 48, 48, 48, 48, 2, 32, 3, 109, 55, 0, 103, 121, 101, 122, 115, 195, 169, 103, 3, 109, 79, 12, 109, 91, 91, 113, 81,
-			0, 103, 121, 101, 122, 115, 195, 169, 103, 103, 3, 109, 79, 12, 109, 91, 91, 113, 81, 12, 0, 104, 104, 101, 122, 8, 3, 109, 107, 109,
-			88, 0, 7, 6, 102, 0, 4, 3, 83, 0, 102, 1, 97, 2, 195, 169, 108, 0, 102, 1, 101, 2, 97, 106, 116, 0, 102, 1, 101, 2,
-			195, 169, 108, 0, 102, 2, 18, 66, 0, 102, 2, 45, 18, 66, 0, 102, 114, 3, 83, 52, 0, 102, 98, 3, 83, 71, 0, 195, 188, 104,
-			114, 101, 114, 5, 1, 3, 83, 117, 52, 109, 52, 0, 7, 6, 103, 0, 4, 1, 45, 103, 3, 0, 4, 121, 1, 45, 103, 3, 0, 4,
-			121, 1, 45, 103, 103, 3, 0, 121, 1, 45, 121, 103, 3, 0, 107, 3, 49, 12, 0, 104, 1, 169, 195, 2, 97, 106, 108, 97, 3, 49,
-			107, 0, 4, 103, 121, 1, 101, 109, 2, 18, 66, 3, 79, 0, 103, 121, 1, 101, 109, 2, 45, 18, 66, 0, 103, 121, 1, 101, 109, 2,
-			109, 97, 103, 0, 103, 121, 2, 18, 66, 0, 103, 121, 2, 45, 18, 66, 0, 4, 103, 121, 3, 79, 12, 0, 103, 121, 1, 101, 108, 101,
-			2, 101, 108, 0, 103, 121, 1, 101, 108, 101, 2, 195, 169, 0, 103, 121, 1, 101, 109, 2, 32, 14, 128, 128, 131, 0, 103, 121, 1, 101,
-			109, 2, 45, 103, 121, 0, 103, 121, 1, 101, 109, 2, 97, 115, 122, 0, 103, 121, 1, 101, 109, 2, 101, 108, 0, 103, 121, 1, 101, 109,
-			2, 101, 109, 0, 103, 121, 1, 101, 109, 2, 101, 115, 0, 103, 121, 1, 101, 109, 2, 101, 116, 0, 103, 121, 1, 101, 109, 2, 105, 108,
-			108, 0, 103, 121, 1, 101, 109, 2, 195, 173, 122, 0, 103, 121, 1, 101, 109, 2, 195, 182, 110, 116, 101, 0, 103, 121, 1, 101, 109, 2,
-			195, 188, 108, 116, 101, 116, 0, 103, 121, 8, 101, 109, 2, 101, 110, 32, 0, 103, 121, 106, 1, 111, 114, 2, 195, 169, 107, 0, 121, 2,
-			45, 103, 121, 0, 4, 103, 121, 114, 3, 79, 52, 0, 103, 121, 114, 1, 101, 109, 0, 4, 103, 121, 98, 3, 79, 71, 0, 103, 121, 98,
-			1, 101, 109, 0, 4, 3, 81, 0, 1, 97, 108, 97, 122, 115, 2, 103, 121, 97, 107, 111, 114, 0, 1, 97, 108, 97, 122, 115, 2, 103,
-			121, 195, 161, 114, 0, 1, 97, 108, 97, 122, 115, 2, 103, 121, 197, 177, 106, 116, 0, 1, 97, 108, 97, 122, 115, 103, 110, 97, 104, 2,
-			103, 121, 0, 1, 97, 108, 108, 105, 115, 99, 2, 103, 121, 0, 1, 97, 108, 116, 161, 195, 2, 103, 121, 0, 1, 97, 109, 2, 103, 121,
-			195, 161, 114, 0, 1, 97, 116, 2, 103, 121, 195, 188, 108, 0, 1, 97, 116, 2, 103, 121, 197, 177, 108, 0, 1, 97, 116, 103, 169, 195,
-			118, 2, 103, 121, 0, 1, 97, 121, 108, 179, 195, 104, 2, 103, 121, 0, 1, 97, 121, 108, 179, 195, 104, 2, 103, 121, 117, 108, 0, 1,
-			97, 121, 110, 97, 2, 103, 121, 0, 1, 97, 121, 110, 97, 2, 103, 121, 195, 161, 114, 0, 1, 97, 121, 110, 97, 2, 103, 121, 197, 145,
-			122, 0, 1, 97, 121, 110, 97, 2, 103, 121, 197, 177, 106, 116, 0, 1, 97, 121, 110, 97, 105, 100, 97, 104, 2, 103, 121, 195, 161, 114,
-			0, 1, 101, 100, 105, 2, 103, 121, 0, 1, 101, 103, 2, 103, 121, 195, 161, 114, 0, 1, 101, 108, 2, 103, 121, 0, 1, 101, 108, 101,
-			118, 121, 103, 101, 2, 103, 121, 0, 1, 101, 108, 122, 115, 169, 195, 114, 2, 103, 121, 0, 1, 101, 109, 2, 103, 121, 0, 1, 101, 114,
-			101, 115, 2, 103, 121, 0, 1, 101, 114, 101, 115, 2, 103, 121, 197, 177, 106, 0, 1, 101, 114, 101, 121, 110, 2, 103, 121, 0, 1, 101,
-			114, 169, 195, 102, 2, 103, 121, 0, 1, 101, 114, 169, 195, 109, 2, 103, 121, 0, 1, 101, 114, 188, 195, 99, 114, 97, 2, 103, 121, 117,
-			108, 108, 97, 100, 195, 161, 115, 0, 1, 101, 116, 101, 98, 2, 103, 121, 0, 1, 101, 116, 169, 195, 114, 2, 103, 121, 0, 1, 101, 118,
-			182, 195, 122, 115, 2, 103, 121, 197, 177, 106, 116, 0, 1, 101, 118, 188, 195, 2, 103, 121, 0, 1, 101, 121, 108, 169, 195, 98, 2, 103,
-			121, 0, 1, 101, 121, 110, 145, 197, 122, 115, 2, 103, 121, 0, 1, 101, 122, 145, 197, 116, 2, 103, 121, 0, 1, 105, 103, 169, 195, 118,
-			2, 103, 121, 0, 1, 105, 103, 169, 195, 118, 2, 103, 121, 195, 182, 0, 1, 110, 97, 104, 2, 103, 121, 0, 1, 110, 97, 104, 2, 103,
-			121, 97, 107, 111, 114, 0, 1, 110, 97, 108, 114, 97, 98, 2, 103, 121, 0, 1, 110, 97, 114, 97, 104, 2, 103, 121, 0, 1, 110, 101,
-			108, 122, 115, 2, 103, 121, 0, 1, 110, 105, 2, 103, 121, 195, 161, 114, 0, 1, 110, 105, 112, 109, 182, 195, 100, 2, 103, 121, 0, 1,
-			110, 105, 112, 112, 111, 100, 2, 103, 121, 0, 1, 110, 117, 108, 112, 117, 107, 2, 103, 121, 195, 161, 114, 0, 1, 110, 161, 195, 114, 101,
-			109, 117, 98, 2, 103, 121, 0, 1, 111, 100, 161, 195, 98, 2, 103, 121, 0, 1, 111, 102, 2, 103, 121, 97, 108, 117, 0, 1, 111, 102,
-			2, 103, 121, 195, 182, 0, 1, 111, 102, 2, 103, 121, 197, 177, 114, 197, 177, 0, 1, 111, 106, 2, 103, 121, 97, 107, 111, 114, 0, 1,
-			111, 106, 2, 103, 121, 195, 188, 109, 0, 1, 111, 106, 2, 103, 121, 197, 177, 106, 116, 0, 1, 111, 108, 97, 121, 103, 2, 103, 121, 0,
-			1, 111, 108, 161, 195, 122, 2, 103, 121, 0, 1, 111, 114, 100, 2, 103, 121, 0, 1, 111, 114, 111, 104, 2, 103, 121, 0, 1, 111, 114,
-			112, 2, 103, 121, 97, 107, 0, 1, 111, 121, 110, 186, 195, 122, 115, 2, 103, 121, 0, 1, 114, 117, 116, 97, 109, 97, 114, 100, 2, 103,
-			121, 0, 1, 117, 114, 2, 103, 121, 97, 110, 116, 0, 1, 161, 195, 108, 105, 118, 2, 103, 121, 0, 1, 161, 195, 108, 105, 118, 2, 103,
-			121, 197, 177, 108, 195, 182, 108, 0, 1, 161, 195, 114, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161, 195, 114, 105, 118, 2, 103, 121, 0,
-			1, 161, 195, 115, 97, 107, 116, 105, 114, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161, 195, 115, 97, 116, 122, 115, 105, 116, 2, 103, 121,
-			0, 1, 161, 195, 115, 100, 161, 195, 109, 105, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161, 195, 115, 103, 111, 100, 108, 111, 98, 2, 103,
-			121, 0, 1, 161, 195, 115, 103, 117, 122, 97, 104, 2, 103, 121, 0, 1, 161, 195, 115, 105, 107, 117, 99, 2, 103, 121, 0, 1, 161, 195,
-			115, 106, 186, 195, 2, 103, 121, 0, 1, 161, 195, 115, 109, 111, 114, 97, 98, 2, 103, 121, 0, 1, 161, 195, 115, 115, 111, 103, 161, 195,
-			108, 105, 118, 2, 103, 121, 0, 1, 161, 195, 115, 115, 111, 110, 111, 122, 97, 2, 103, 121, 0, 1, 161, 195, 115, 115, 161, 195, 109, 2,
-			103, 121, 0, 1, 161, 195, 115, 116, 116, 111, 122, 105, 98, 2, 103, 121, 0, 1, 161, 195, 122, 115, 114, 111, 2, 103, 121, 97, 114, 97,
-			112, 111, 100, 0, 1, 161, 195, 122, 115, 114, 111, 2, 103, 121, 197, 177, 108, 195, 169, 115, 0, 1, 169, 195, 99, 2, 103, 121, 105, 108,
-			0, 1, 169, 195, 99, 2, 103, 121, 197, 177, 114, 0, 1, 169, 195, 100, 110, 101, 118, 2, 103, 121, 0, 1, 169, 195, 106, 2, 103, 121,
-			197, 177, 114, 0, 1, 169, 195, 106, 177, 197, 109, 2, 103, 121, 195, 161, 114, 0, 1, 169, 195, 108, 2, 103, 121, 195, 161, 114, 0, 1,
-			169, 195, 108, 2, 103, 121, 195, 182, 107, 0, 1, 169, 195, 115, 101, 108, 101, 2, 103, 121, 0, 1, 169, 195, 115, 101, 121, 108, 188, 195,
-			104, 2, 103, 121, 0, 1, 169, 195, 115, 103, 101, 116, 101, 98, 2, 103, 121, 0, 1, 169, 195, 115, 105, 103, 169, 195, 114, 2, 103, 121,
-			197, 177, 106, 116, 0, 1, 169, 195, 115, 107, 182, 195, 114, 182, 195, 2, 103, 121, 0, 1, 169, 195, 115, 108, 101, 102, 2, 103, 121, 0,
-			1, 169, 195, 115, 110, 101, 108, 108, 101, 2, 103, 121, 0, 1, 169, 195, 115, 110, 182, 195, 122, 182, 195, 107, 2, 103, 121, 0, 1, 169,
-			195, 115, 115, 101, 98, 101, 115, 2, 103, 121, 0, 1, 169, 195, 115, 115, 101, 100, 169, 195, 2, 103, 121, 0, 1, 169, 195, 115, 115, 101,
-			107, 101, 100, 114, 169, 195, 2, 103, 121, 0, 1, 169, 195, 115, 115, 101, 108, 101, 116, 182, 195, 107, 2, 103, 121, 97, 107, 0, 1, 169,
-			195, 115, 115, 101, 112, 169, 195, 110, 2, 103, 121, 0, 1, 169, 195, 115, 115, 101, 114, 173, 195, 104, 2, 103, 121, 0, 1, 169, 195, 115,
-			116, 101, 104, 101, 116, 2, 103, 121, 0, 1, 169, 195, 115, 116, 101, 118, 182, 195, 122, 115, 2, 103, 121, 0, 1, 169, 195, 115, 116, 101,
-			122, 109, 101, 110, 2, 103, 121, 0, 1, 169, 195, 115, 116, 108, 188, 195, 122, 115, 101, 102, 2, 103, 121, 0, 1, 169, 195, 115, 116, 110,
-			101, 122, 115, 2, 103, 121, 0, 1, 169, 195, 115, 116, 122, 115, 105, 116, 2, 103, 121, 0, 1, 169, 195, 115, 121, 103, 101, 2, 103, 121,
-			0, 1, 169, 195, 115, 177, 197, 104, 2, 103, 121, 0, 1, 169, 195, 118, 2, 103, 121, 97, 110, 116, 0, 1, 182, 195, 100, 2, 103, 121,
-			97, 112, 106, 195, 186, 0, 1, 182, 195, 100, 2, 103, 121, 195, 161, 114, 0, 1, 182, 195, 100, 114, 182, 195, 2, 103, 121, 0, 1, 182,
-			195, 122, 115, 2, 103, 121, 111, 114, 115, 0, 1, 182, 195, 122, 115, 2, 103, 121, 195, 161, 114, 0, 8, 97, 109, 2, 103, 121, 197, 177,
-			106, 116, 0, 8, 97, 121, 103, 97, 2, 103, 121, 0, 8, 101, 122, 115, 2, 103, 121, 195, 161, 114, 0, 8, 110, 161, 195, 108, 2, 103,
-			121, 0, 8, 111, 108, 2, 103, 121, 197, 177, 106, 116, 0, 8, 169, 195, 106, 2, 103, 121, 195, 161, 114, 0, 8, 169, 195, 115, 101, 108,
-			101, 102, 2, 103, 121, 105, 108, 107, 111, 115, 0, 103, 1, 117, 103, 2, 111, 108, 0, 103, 2, 18, 66, 0, 103, 2, 45, 18, 66, 0,
-			4, 2, 45, 103, 3, 81, 12, 0, 103, 0, 103, 1, 101, 108, 2, 114, 111, 116, 101, 115, 122, 107, 0, 103, 114, 3, 81, 52, 0, 103,
-			98, 3, 81, 71, 0, 4, 2, 45, 103, 121, 3, 81, 79, 0, 103, 2, 45, 103, 121, 0, 111, 101, 116, 104, 5, 1, 8, 3, 81, 118,
-			47, 109, 0, 7, 6, 104, 0, 4, 1, 101, 115, 99, 2, 98, 195, 161, 110, 121, 97, 3, 0, 4, 8, 101, 115, 99, 2, 111, 114, 115,
-			122, 195, 161, 103, 3, 0, 4, 8, 101, 115, 99, 2, 115, 122, 108, 111, 118, 195, 161, 107, 3, 0, 4, 8, 117, 106, 2, 107, 111, 108,
-			98, 3, 0, 4, 8, 117, 106, 2, 115, 97, 106, 116, 3, 0, 4, 8, 117, 106, 2, 115, 122, 195, 161, 114, 110, 121, 195, 169, 107, 3,
-			0, 8, 117, 106, 2, 116, 101, 110, 121, 195, 169, 115, 122, 3, 0, 4, 3, 107, 0, 104, 1, 101, 100, 110, 105, 109, 2, 101, 122, 0,
-			104, 2, 45, 18, 66, 0, 101, 114, 116, 122, 3, 107, 109, 52, 119, 0, 7, 6, 105, 0, 4, 3, 37, 0, 1, 21, 2, 32, 14, 128,
-			128, 129, 0, 103, 1, 21, 2, 32, 14, 128, 128, 130, 3, 37, 81, 0, 104, 111, 122, 1, 21, 2, 32, 14, 128, 192, 132, 3, 37, 107,
-			39, 88, 0, 7, 6, 106, 0, 4, 3, 57, 0, 106, 2, 18, 66, 0, 106, 2, 45, 18, 66, 0, 106, 114, 3, 57, 52, 0, 106, 98,
-			3, 57, 71, 0, 97, 118, 195, 173, 116, 115, 8, 3, 57, 108, 84, 112, 76, 12, 0, 97, 118, 195, 173, 116, 115, 100, 8, 3, 57, 108,
-			84, 112, 76, 72, 0, 195, 169, 105, 103, 1, 21, 2, 32, 14, 128, 128, 132, 3, 57, 113, 37, 81, 0, 195, 169, 116, 197, 145, 108, 1,
-			21, 2, 32, 14, 128, 128, 133, 3, 57, 113, 47, 118, 55, 0, 195, 169, 110, 101, 107, 1, 21, 2, 32, 14, 128, 128, 133, 3, 57, 113,
-			50, 109, 49, 0, 195, 169, 114, 101, 1, 21, 2, 32, 14, 128, 128, 132, 3, 57, 113, 52, 109, 0, 195, 169, 118, 101, 108, 1, 21, 2,
-			32, 14, 128, 128, 133, 3, 57, 113, 84, 109, 55, 0, 195, 161, 105, 103, 1, 21, 2, 32, 14, 128, 192, 132, 3, 57, 114, 37, 81, 0,
-			195, 161, 116, 195, 179, 108, 1, 21, 2, 32, 14, 128, 192, 133, 3, 57, 114, 47, 115, 55, 0, 195, 161, 110, 97, 107, 1, 21, 2, 32,
-			14, 128, 192, 133, 3, 57, 114, 50, 108, 49, 0, 195, 161, 114, 97, 1, 21, 2, 32, 14, 128, 192, 132, 3, 57, 114, 52, 108, 0, 195,
-			161, 98, 97, 110, 1, 21, 2, 32, 14, 128, 192, 133, 3, 57, 114, 71, 108, 50, 0, 195, 161, 118, 97, 108, 1, 21, 2, 32, 14, 128,
-			192, 133, 3, 57, 114, 84, 108, 55, 0, 7, 6, 107, 0, 4, 1, 45, 107, 3, 0, 1, 45, 107, 107, 3, 0, 4, 3, 49, 0, 107,
-			2, 18, 66, 0, 107, 2, 45, 18, 66, 0, 195, 182, 122, 116, 195, 161, 114, 115, 97, 115, 195, 161, 103, 8, 3, 49, 6, 110, 89, 47,
-			114, 52, 91, 108, 91, 114, 81, 0, 195, 182, 122, 116, 195, 161, 114, 115, 97, 115, 195, 161, 103, 103, 8, 3, 49, 6, 110, 89, 47, 114,
-			52, 91, 108, 91, 114, 81, 12, 0, 4, 2, 45, 107, 3, 49, 12, 0, 107, 0, 107, 2, 17, 67, 0, 107, 2, 45, 107, 0, 107, 8,
-			169, 195, 116, 161, 195, 106, 2, 108, 105, 101, 110, 115, 0, 111, 115, 115, 117, 116, 104, 3, 49, 39, 91, 116, 47, 0, 111, 115, 115, 117,
-			116, 104, 116, 3, 49, 39, 91, 116, 47, 12, 0, 111, 115, 115, 117, 116, 104, 106, 3, 49, 39, 91, 116, 80, 12, 0, 107, 114, 3, 49,
-			52, 0, 107, 106, 3, 49, 57, 0, 107, 98, 3, 49, 71, 0, 195, 182, 122, 8, 3, 49, 110, 88, 0, 195, 182, 122, 116, 8, 3, 49,
-			110, 89, 47, 0, 195, 182, 122, 112, 111, 110, 116, 3, 49, 110, 89, 48, 39, 50, 47, 0, 195, 182, 122, 112, 111, 110, 116, 116, 3, 49,
-			110, 89, 48, 39, 50, 47, 12, 0, 195, 182, 122, 112, 111, 110, 116, 106, 3, 49, 110, 89, 48, 39, 50, 80, 0, 195, 182, 122, 115, 195,
-			169, 103, 103, 3, 49, 110, 91, 12, 113, 81, 12, 0, 195, 182, 122, 115, 195, 169, 103, 3, 49, 110, 91, 91, 113, 81, 0, 195, 169, 115,
-			122, 115, 195, 169, 103, 3, 49, 113, 91, 91, 113, 81, 0, 195, 169, 115, 122, 115, 195, 169, 103, 103, 3, 49, 113, 91, 91, 113, 81, 12,
-			0, 7, 6, 108, 0, 4, 3, 55, 0, 1, 101, 2, 106, 117, 115, 0, 1, 101, 2, 106, 117, 116, 0, 1, 101, 2, 106, 195, 161, 116,
-			115, 122, 0, 1, 101, 102, 2, 106, 97, 118, 195, 173, 116, 0, 1, 101, 102, 2, 106, 101, 103, 121, 0, 1, 101, 102, 2, 106, 101, 108,
-			101, 110, 0, 1, 101, 102, 2, 106, 111, 103, 111, 115, 195, 173, 116, 0, 1, 101, 102, 2, 106, 117, 0, 1, 101, 102, 2, 106, 195, 161,
-			114, 0, 1, 101, 102, 2, 106, 195, 182, 0, 1, 106, 161, 195, 102, 0, 1, 169, 195, 118, 101, 108, 2, 108, 121, 117, 107, 0, 1, 169,
-			195, 121, 110, 2, 108, 121, 117, 107, 0, 1, 169, 195, 122, 115, 2, 106, 101, 103, 121, 0, 1, 169, 195, 122, 115, 2, 106, 195, 161, 114,
-			0, 1, 188, 195, 102, 2, 108, 121, 117, 107, 0, 1, 188, 195, 116, 122, 115, 101, 114, 101, 107, 2, 106, 0, 8, 169, 195, 102, 2, 106,
-			111, 98, 98, 0, 108, 1, 101, 2, 105, 112, 115, 122, 0, 108, 1, 101, 116, 97, 103, 97, 98, 2, 105, 122, 0, 108, 1, 101, 116, 110,
-			105, 2, 105, 103, 101, 0, 108, 1, 105, 109, 2, 105, 0, 108, 2, 18, 66, 0, 108, 2, 45, 18, 66, 0, 4, 1, 182, 195, 107, 182,
-			195, 2, 106, 111, 103, 3, 55, 12, 0, 1, 186, 195, 116, 2, 106, 0, 4, 121, 1, 17, 67, 2, 32, 3, 55, 37, 0, 121, 8, 104,
-			116, 169, 195, 107, 0, 108, 114, 3, 55, 52, 0, 4, 108, 121, 1, 101, 117, 109, 97, 122, 115, 3, 55, 55, 37, 0, 121, 1, 101, 117,
-			109, 97, 122, 115, 0, 4, 106, 1, 101, 2, 195, 161, 114, 3, 55, 57, 0, 106, 8, 97, 116, 2, 195, 161, 110, 0, 106, 8, 101, 2,
-			195, 182, 0, 108, 98, 3, 55, 71, 0, 4, 108, 1, 161, 195, 2, 106, 3, 57, 0, 108, 121, 2, 45, 18, 66, 0, 121, 0, 4, 1,
-			97, 108, 106, 161, 195, 102, 2, 106, 3, 57, 57, 0, 1, 169, 195, 99, 2, 106, 195, 161, 0, 106, 1, 101, 107, 0, 106, 1, 101, 114,
-			169, 195, 98, 0, 106, 1, 169, 195, 122, 115, 101, 98, 0, 108, 121, 0, 4, 106, 1, 111, 100, 110, 111, 103, 3, 57, 57, 57, 0, 106,
-			1, 161, 195, 110, 106, 97, 115, 0, 108, 106, 0, 4, 106, 3, 61, 57, 0, 106, 1, 17, 65, 2, 17, 65, 0, 7, 6, 109, 0, 4,
-			3, 65, 0, 109, 1, 111, 107, 2, 117, 110, 105, 0, 109, 2, 18, 66, 0, 109, 2, 45, 18, 66, 0, 7, 6, 110, 0, 39, 69, 109,
-			3, 11, 6, 109, 55, 55, 47, 4, 113, 4, 109, 91, 0, 4, 3, 50, 0, 1, 97, 108, 116, 97, 103, 110, 105, 2, 106, 111, 103, 0,
-			1, 97, 108, 116, 97, 103, 110, 105, 2, 110, 121, 105, 108, 0, 1, 97, 116, 2, 110, 121, 111, 109, 100, 0, 1, 101, 98, 121, 108, 101,
-			104, 2, 106, 195, 161, 114, 0, 1, 101, 98, 122, 182, 195, 107, 2, 106, 195, 161, 114, 0, 1, 101, 98, 145, 197, 102, 2, 106, 195, 161,
-			114, 0, 1, 101, 108, 108, 101, 2, 106, 97, 118, 97, 108, 108, 116, 0, 1, 101, 108, 108, 101, 2, 106, 97, 118, 97, 115, 108, 97, 116,
-			0, 1, 101, 108, 108, 101, 2, 106, 101, 103, 121, 0, 1, 101, 108, 108, 101, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 101, 108, 108,
-			111, 112, 2, 106, 101, 108, 101, 110, 0, 1, 101, 108, 169, 195, 2, 106, 195, 161, 114, 0, 1, 101, 118, 116, 182, 195, 2, 121, 97, 114,
-			100, 0, 1, 101, 118, 121, 103, 101, 110, 2, 121, 97, 114, 100, 0, 1, 101, 121, 103, 101, 2, 106, 111, 103, 195, 186, 0, 1, 101, 121,
-			103, 110, 105, 0, 1, 101, 122, 110, 97, 107, 115, 2, 110, 121, 0, 1, 105, 97, 107, 111, 107, 2, 110, 121, 0, 1, 105, 98, 97, 107,
-			2, 110, 121, 195, 173, 108, 0, 1, 105, 102, 114, 111, 109, 2, 110, 121, 0, 1, 105, 122, 110, 101, 98, 2, 110, 121, 0, 1, 111, 98,
-			114, 97, 107, 2, 110, 121, 0, 1, 111, 100, 106, 97, 108, 117, 116, 2, 106, 111, 103, 0, 1, 111, 101, 116, 110, 97, 112, 2, 110, 121,
-			0, 1, 111, 102, 101, 108, 101, 116, 2, 110, 121, 0, 1, 111, 102, 111, 114, 107, 105, 109, 2, 110, 121, 195, 173, 108, 195, 161, 115, 0,
-			1, 111, 105, 2, 110, 121, 0, 1, 111, 108, 98, 97, 115, 2, 110, 121, 0, 1, 111, 110, 161, 195, 107, 2, 106, 111, 103, 0, 1, 111,
-			112, 117, 107, 2, 110, 121, 0, 1, 111, 114, 101, 112, 2, 106, 101, 103, 121, 0, 1, 111, 114, 107, 105, 109, 2, 110, 121, 0, 1, 111,
-			114, 116, 107, 101, 108, 101, 2, 110, 121, 0, 1, 111, 114, 116, 107, 101, 108, 101, 2, 110, 121, 0, 1, 111, 114, 116, 117, 101, 110, 2,
-			110, 121, 0, 1, 111, 116, 97, 114, 97, 109, 2, 110, 121, 0, 1, 111, 116, 101, 98, 2, 106, 195, 161, 114, 100, 97, 0, 1, 111, 121,
-			103, 97, 2, 106, 195, 161, 116, 115, 122, 0, 1, 111, 121, 103, 97, 118, 2, 106, 111, 103, 0, 1, 111, 121, 103, 97, 118, 2, 110, 121,
-			0, 1, 111, 121, 103, 97, 118, 2, 110, 121, 105, 108, 97, 116, 107, 111, 122, 97, 116, 0, 1, 111, 122, 115, 97, 104, 2, 106, 195, 161,
-			114, 0, 1, 111, 122, 115, 97, 104, 2, 110, 121, 0, 1, 111, 122, 115, 161, 195, 118, 2, 110, 121, 0, 1, 145, 197, 115, 169, 195, 107,
-			2, 106, 195, 182, 118, 197, 145, 0, 1, 161, 195, 98, 2, 110, 121, 195, 173, 114, 101, 0, 1, 161, 195, 101, 99, 179, 195, 2, 106, 195,
-			161, 114, 0, 1, 161, 195, 103, 97, 109, 2, 106, 101, 108, 108, 101, 103, 0, 1, 161, 195, 103, 97, 109, 2, 106, 111, 103, 0, 1, 161,
-			195, 103, 97, 109, 2, 110, 121, 97, 114, 0, 1, 161, 195, 103, 97, 109, 2, 110, 121, 101, 108, 0, 1, 161, 195, 105, 100, 101, 109, 2,
-			110, 121, 0, 1, 161, 195, 108, 101, 99, 114, 111, 112, 2, 110, 121, 0, 1, 161, 195, 108, 122, 115, 111, 114, 111, 2, 110, 121, 111, 109,
-			0, 1, 161, 195, 114, 103, 105, 108, 105, 102, 2, 110, 121, 101, 108, 0, 1, 161, 195, 116, 117, 2, 110, 121, 111, 109, 0, 1, 161, 195,
-			118, 105, 116, 110, 101, 122, 115, 2, 110, 121, 0, 1, 161, 195, 122, 97, 107, 2, 110, 121, 0, 1, 169, 195, 103, 105, 120, 111, 2, 110,
-			121, 0, 1, 169, 195, 122, 114, 97, 2, 110, 121, 0, 1, 169, 195, 122, 115, 2, 106, 101, 108, 101, 107, 0, 1, 169, 195, 122, 115, 2,
-			110, 121, 111, 109, 0, 1, 169, 195, 122, 115, 2, 110, 121, 111, 109, 0, 1, 169, 195, 122, 115, 2, 110, 121, 111, 109, 0, 1, 173, 195,
-			122, 115, 2, 106, 101, 108, 101, 115, 0, 1, 173, 195, 122, 115, 2, 106, 101, 108, 122, 195, 169, 115, 0, 1, 173, 195, 122, 115, 2, 106,
-			195, 161, 116, 0, 1, 173, 195, 122, 115, 2, 106, 195, 179, 122, 97, 110, 0, 1, 173, 195, 122, 115, 2, 110, 121, 111, 109, 0, 1, 177,
-			197, 98, 2, 106, 101, 108, 0, 1, 182, 195, 2, 106, 101, 108, 195, 182, 108, 0, 1, 182, 195, 2, 106, 195, 161, 114, 195, 179, 0, 1,
-			182, 195, 108, 188, 195, 107, 2, 106, 195, 161, 114, 97, 0, 1, 182, 195, 115, 99, 108, 182, 195, 107, 2, 106, 101, 103, 121, 122, 0, 1,
-			182, 195, 115, 99, 108, 182, 195, 107, 2, 110, 121, 0, 1, 182, 195, 115, 99, 108, 182, 195, 107, 2, 110, 121, 97, 107, 0, 2, 103, 0,
-			2, 107, 0, 8, 101, 108, 108, 101, 2, 106, 97, 118, 0, 8, 101, 108, 116, 101, 116, 101, 104, 100, 100, 101, 102, 2, 106, 101, 108, 108,
-			101, 0, 8, 105, 122, 115, 2, 106, 195, 161, 116, 115, 122, 0, 8, 177, 197, 98, 2, 110, 121, 111, 109, 0, 8, 182, 195, 2, 110, 121,
-			111, 109, 0, 8, 182, 195, 2, 110, 121, 117, 103, 0, 110, 1, 111, 107, 2, 101, 107, 116, 111, 114, 0, 110, 2, 18, 66, 0, 110, 2,
-			45, 18, 66, 0, 101, 109, 45, 108, 116, 115, 3, 50, 6, 109, 65, 15, 11, 6, 109, 55, 55, 47, 4, 113, 4, 109, 91, 0, 110, 114,
-			3, 50, 52, 0, 106, 1, 105, 122, 110, 101, 98, 3, 50, 57, 0, 4, 110, 121, 1, 161, 195, 103, 97, 109, 2, 117, 103, 100, 195, 173,
-			106, 3, 50, 67, 0, 110, 121, 2, 101, 108, 118, 0, 110, 121, 2, 101, 108, 118, 0, 110, 98, 3, 50, 71, 0, 121, 108, 111, 110, 5,
-			1, 8, 3, 50, 109, 57, 55, 39, 50, 0, 101, 109, 8, 2, 45, 3, 50, 109, 65, 0, 108, 1, 161, 195, 106, 97, 3, 55, 12, 0,
-			108, 106, 1, 161, 195, 106, 97, 3, 57, 12, 0, 2, 112, 3, 65, 0, 4, 106, 1, 101, 104, 105, 112, 2, 32, 14, 128, 128, 130, 3,
-			67, 0, 106, 1, 105, 2, 101, 107, 99, 105, 195, 179, 0, 110, 121, 1, 101, 109, 2, 111, 114, 115, 122, 195, 161, 103, 0, 110, 121, 1,
-			105, 2, 101, 107, 99, 105, 195, 179, 0, 110, 121, 2, 18, 66, 0, 110, 121, 2, 45, 18, 66, 0, 110, 121, 2, 99, 115, 0, 110, 121,
-			8, 101, 109, 2, 97, 115, 115, 122, 0, 121, 0, 121, 1, 101, 115, 114, 101, 118, 2, 106, 111, 103, 0, 121, 1, 101, 115, 114, 101, 118,
-			2, 106, 195, 161, 116, 115, 122, 0, 121, 1, 101, 115, 114, 101, 118, 2, 106, 195, 161, 116, 195, 169, 107, 0, 121, 1, 114, 161, 195, 2,
-			106, 195, 161, 116, 195, 169, 0, 121, 1, 145, 197, 122, 101, 109, 2, 106, 0, 121, 1, 161, 195, 104, 111, 100, 2, 106, 195, 182, 118, 0,
-			121, 1, 161, 195, 105, 104, 2, 106, 0, 121, 1, 161, 195, 107, 114, 111, 122, 115, 111, 98, 2, 106, 101, 108, 101, 116, 0, 121, 1, 161,
-			195, 109, 111, 108, 108, 161, 195, 2, 106, 101, 108, 0, 121, 1, 161, 195, 109, 114, 111, 107, 2, 106, 97, 118, 97, 115, 108, 97, 116, 0,
-			121, 1, 161, 195, 109, 114, 111, 107, 2, 106, 101, 108, 101, 110, 116, 195, 169, 115, 0, 121, 1, 161, 195, 109, 116, 111, 107, 108, 97, 2,
-			106, 0, 121, 1, 161, 195, 114, 105, 2, 106, 101, 108, 0, 121, 1, 161, 195, 114, 116, 111, 98, 2, 106, 195, 161, 116, 195, 169, 107, 0,
-			121, 1, 161, 195, 118, 114, 161, 195, 118, 105, 122, 115, 2, 106, 195, 161, 116, 115, 122, 0, 121, 1, 169, 195, 100, 105, 2, 106, 101, 108,
-			0, 121, 1, 169, 195, 102, 2, 106, 101, 108, 0, 121, 1, 169, 195, 103, 101, 108, 2, 106, 195, 161, 114, 0, 121, 1, 169, 195, 103, 105,
-			2, 106, 111, 103, 0, 121, 1, 169, 195, 109, 100, 101, 114, 101, 2, 106, 0, 121, 1, 169, 195, 109, 101, 114, 101, 121, 110, 2, 106, 195,
-			161, 116, 195, 169, 107, 0, 121, 1, 169, 195, 109, 101, 115, 101, 2, 106, 101, 108, 0, 121, 1, 169, 195, 109, 116, 173, 195, 115, 101, 106,
-			108, 101, 116, 2, 106, 0, 121, 1, 169, 195, 109, 116, 173, 195, 115, 101, 106, 108, 101, 116, 2, 106, 97, 118, 117, 0, 121, 1, 169, 195,
-			118, 114, 182, 195, 116, 2, 106, 97, 118, 97, 0, 121, 1, 169, 195, 118, 122, 115, 169, 195, 114, 2, 106, 101, 103, 121, 0, 121, 8, 101,
-			109, 2, 97, 115, 115, 122, 0, 110, 121, 1, 182, 195, 107, 2, 101, 108, 118, 3, 67, 12, 0, 110, 121, 114, 3, 67, 52, 0, 4, 106,
-			3, 67, 67, 0, 110, 121, 0, 121, 106, 0, 110, 121, 98, 3, 67, 71, 0, 118, 100, 97, 8, 2, 45, 3, 109, 50, 84, 113, 72, 113,
-			114, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 4, 1, 45, 112, 3, 0, 1, 45, 112, 112, 3, 0, 4, 3, 48, 0, 112,
-			2, 18, 66, 0, 112, 2, 45, 18, 66, 0, 2, 118, 3, 48, 10, 0, 4, 2, 45, 112, 3, 48, 12, 0, 112, 0, 112, 2, 17, 67,
-			0, 111, 116, 115, 100, 97, 109, 5, 1, 8, 3, 48, 39, 119, 72, 114, 65, 0, 112, 114, 3, 48, 52, 0, 112, 98, 3, 48, 71, 0,
-			7, 6, 113, 0, 4, 3, 49, 84, 0, 117, 0, 7, 6, 114, 0, 4, 2, 99, 99, 3, 51, 0, 2, 114, 0, 101, 1, 21, 2, 32,
-			14, 128, 128, 130, 3, 51, 109, 0, 4, 3, 52, 0, 1, 114, 0, 114, 1, 97, 2, 111, 103, 195, 161, 110, 115, 0, 114, 1, 101, 116,
-			2, 105, 101, 114, 0, 114, 1, 101, 116, 2, 111, 114, 105, 0, 114, 1, 105, 2, 105, 116, 195, 161, 0, 114, 1, 111, 107, 2, 101, 112,
-			101, 116, 195, 161, 0, 114, 1, 117, 107, 110, 111, 107, 2, 101, 110, 0, 114, 2, 18, 66, 0, 114, 2, 45, 18, 66, 0, 114, 8, 97,
-			2, 111, 103, 97, 110, 99, 105, 0, 109, 3, 52, 10, 65, 0, 4, 105, 99, 104, 97, 5, 1, 8, 2, 114, 100, 3, 52, 37, 99, 114,
-			0, 105, 99, 104, 195, 161, 8, 2, 114, 100, 0, 114, 114, 3, 52, 52, 0, 114, 98, 3, 52, 71, 0, 97, 1, 21, 2, 32, 14, 128,
-			128, 130, 3, 52, 108, 0, 7, 6, 115, 0, 122, 1, 45, 115, 3, 0, 5, 1, 1, 108, 101, 104, 2, 105, 110, 107, 105, 3, 88, 0,
-			4, 1, 108, 101, 103, 110, 101, 3, 89, 0, 5, 1, 1, 117, 105, 98, 117, 110, 97, 100, 0, 5, 1, 1, 117, 116, 110, 101, 118, 117,
-			106, 0, 122, 1, 45, 115, 110, 100, 0, 2, 45, 115, 122, 3, 89, 12, 0, 4, 108, 111, 5, 1, 8, 111, 3, 89, 55, 115, 0, 108,
-			195, 179, 5, 1, 8, 111, 0, 4, 101, 109, 109, 101, 108, 119, 101, 105, 115, 8, 3, 89, 109, 65, 65, 109, 55, 84, 109, 57, 89, 0,
-			101, 109, 109, 101, 108, 119, 101, 105, 115, 115, 8, 0, 101, 109, 109, 101, 108, 119, 101, 105, 195, 159, 8, 0, 97, 97, 114, 5, 1, 8,
-			3, 89, 114, 52, 0, 4, 3, 91, 0, 1, 97, 107, 114, 97, 102, 2, 115, 122, 197, 145, 114, 0, 1, 97, 118, 2, 115, 0, 1, 100,
-			108, 182, 195, 102, 2, 195, 161, 110, 99, 0, 1, 101, 110, 101, 121, 103, 101, 2, 122, 195, 161, 114, 0, 1, 101, 110, 103, 161, 195, 109,
-			0, 1, 101, 117, 108, 98, 2, 122, 101, 110, 0, 1, 101, 117, 108, 98, 2, 122, 111, 110, 0, 1, 101, 121, 110, 110, 101, 122, 115, 2,
-			122, 115, 195, 161, 0, 1, 101, 122, 110, 169, 195, 112, 0, 1, 105, 107, 2, 115, 122, 101, 110, 116, 0, 1, 105, 107, 2, 115, 122, 105,
-			103, 101, 116, 0, 1, 105, 107, 2, 115, 122, 197, 145, 108, 197, 145, 0, 1, 105, 107, 2, 122, 115, 105, 100, 195, 161, 0, 1, 105, 107,
-			2, 122, 115, 105, 100, 195, 179, 0, 1, 105, 120, 97, 108, 97, 103, 0, 1, 105, 122, 161, 195, 102, 2, 122, 195, 161, 114, 0, 1, 111,
-			103, 111, 108, 97, 121, 103, 2, 122, 195, 161, 115, 122, 108, 195, 179, 0, 1, 111, 107, 110, 117, 98, 114, 101, 118, 2, 122, 101, 110, 0,
-			1, 111, 107, 111, 116, 2, 122, 195, 161, 115, 122, 108, 0, 1, 111, 108, 169, 195, 99, 110, 161, 195, 112, 0, 1, 111, 114, 161, 195, 118,
-			2, 122, 97, 106, 0, 1, 111, 114, 161, 195, 118, 2, 122, 115, 0, 1, 111, 116, 161, 195, 110, 161, 195, 114, 103, 0, 1, 111, 118, 114,
-			111, 2, 122, 115, 101, 98, 0, 1, 111, 121, 110, 111, 103, 97, 114, 100, 0, 1, 111, 122, 115, 161, 195, 98, 108, 111, 107, 0, 1, 114,
-			161, 195, 116, 114, 111, 107, 2, 122, 101, 110, 0, 1, 117, 100, 108, 111, 107, 0, 1, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 115,
-			122, 116, 114, 195, 161, 106, 107, 0, 1, 117, 107, 101, 122, 115, 2, 122, 101, 110, 0, 1, 117, 109, 116, 105, 114, 2, 122, 97, 106, 0,
-			1, 117, 109, 116, 105, 114, 2, 122, 97, 118, 97, 114, 0, 1, 117, 112, 173, 195, 116, 2, 122, 117, 98, 0, 1, 117, 114, 179, 195, 107,
-			2, 122, 101, 110, 0, 1, 117, 116, 107, 105, 108, 102, 110, 111, 107, 2, 122, 195, 179, 110, 0, 1, 117, 122, 115, 115, 97, 98, 2, 122,
-			101, 110, 0, 1, 145, 197, 2, 115, 122, 97, 118, 97, 0, 1, 145, 197, 2, 115, 122, 101, 110, 116, 0, 1, 145, 197, 2, 115, 122, 195,
-			161, 106, 0, 1, 145, 197, 2, 115, 122, 195, 161, 109, 0, 1, 145, 197, 2, 115, 122, 195, 179, 0, 1, 145, 197, 121, 110, 114, 101, 145,
-			197, 116, 106, 101, 0, 1, 161, 195, 100, 97, 104, 2, 115, 122, 97, 103, 0, 1, 161, 195, 102, 2, 115, 122, 195, 161, 114, 195, 186, 0,
-			1, 161, 195, 103, 122, 111, 109, 2, 122, 97, 118, 97, 0, 1, 161, 195, 105, 114, 179, 195, 0, 1, 161, 195, 106, 111, 116, 0, 1, 161,
-			195, 107, 115, 117, 112, 0, 1, 161, 195, 108, 100, 97, 112, 0, 1, 161, 195, 108, 108, 97, 104, 2, 122, 97, 118, 97, 114, 0, 1, 161,
-			195, 108, 117, 107, 105, 109, 2, 122, 97, 99, 115, 0, 1, 161, 195, 110, 97, 98, 98, 111, 114, 0, 1, 161, 195, 110, 97, 98, 98, 111,
-			114, 2, 122, 97, 106, 0, 1, 161, 195, 114, 114, 111, 102, 145, 197, 114, 101, 2, 122, 97, 98, 195, 161, 108, 0, 1, 161, 195, 116, 105,
-			116, 110, 101, 100, 105, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 116, 114, 97, 116, 97, 103, 97, 109, 2, 122, 97, 118, 97, 114, 0,
-			1, 161, 195, 116, 161, 195, 108, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 118, 108, 97, 2, 122, 97, 118, 97, 0, 1, 161, 195, 121,
-			108, 107, 161, 195, 102, 2, 122, 101, 110, 0, 1, 161, 195, 122, 97, 109, 108, 97, 107, 108, 97, 2, 115, 122, 101, 114, 118, 101, 114, 0,
-			1, 161, 195, 122, 111, 103, 108, 111, 100, 108, 101, 102, 0, 1, 169, 195, 100, 101, 107, 108, 101, 115, 105, 118, 2, 122, 97, 118, 97, 0,
-			1, 169, 195, 100, 114, 169, 195, 107, 0, 1, 169, 195, 100, 182, 195, 107, 177, 197, 109, 2, 122, 97, 118, 97, 0, 1, 169, 195, 103, 101,
-			107, 101, 114, 98, 0, 1, 169, 195, 108, 101, 109, 114, 101, 116, 0, 1, 169, 195, 108, 188, 195, 112, 101, 108, 101, 116, 2, 122, 195, 179,
-			110, 0, 1, 169, 195, 112, 169, 195, 108, 0, 1, 169, 195, 114, 182, 195, 116, 2, 122, 195, 179, 110, 0, 1, 169, 195, 116, 188, 195, 2,
-			122, 195, 161, 112, 0, 1, 169, 195, 122, 101, 100, 101, 102, 0, 1, 169, 195, 122, 103, 169, 195, 118, 0, 1, 179, 195, 103, 117, 114, 2,
-			122, 195, 161, 114, 106, 0, 1, 179, 195, 116, 97, 108, 117, 109, 2, 122, 101, 110, 0, 1, 179, 195, 118, 186, 195, 102, 2, 122, 101, 110,
-			195, 169, 0, 1, 182, 195, 114, 182, 195, 107, 2, 115, 122, 101, 103, 0, 1, 186, 195, 104, 2, 115, 122, 97, 103, 0, 8, 101, 118, 177,
-			197, 109, 145, 197, 107, 2, 115, 122, 0, 8, 105, 107, 2, 115, 122, 195, 173, 110, 0, 8, 105, 107, 2, 122, 111, 109, 98, 111, 114, 0,
-			8, 105, 108, 105, 112, 0, 8, 111, 108, 97, 116, 122, 115, 97, 0, 8, 111, 114, 105, 112, 0, 8, 117, 103, 114, 161, 195, 0, 8, 161,
-			195, 100, 97, 2, 122, 195, 161, 114, 0, 8, 161, 195, 100, 108, 161, 195, 0, 8, 161, 195, 107, 110, 117, 109, 0, 8, 161, 195, 108, 173,
-			195, 121, 110, 0, 8, 169, 195, 108, 182, 195, 107, 114, 182, 195, 112, 2, 115, 122, 0, 8, 169, 195, 114, 145, 197, 108, 2, 115, 122, 0,
-			8, 169, 195, 122, 112, 169, 195, 107, 0, 8, 169, 195, 122, 115, 116, 101, 116, 0, 8, 179, 195, 118, 186, 195, 102, 2, 122, 101, 110, 101,
-			0, 8, 182, 195, 114, 182, 195, 107, 2, 115, 122, 97, 107, 195, 161, 108, 0, 8, 182, 195, 114, 182, 195, 118, 0, 104, 5, 1, 8, 97,
-			119, 2, 105, 110, 103, 0, 4, 115, 122, 8, 161, 195, 110, 114, 97, 98, 2, 195, 188, 114, 107, 101, 3, 91, 89, 0, 115, 122, 8, 161,
-			195, 118, 108, 97, 2, 195, 188, 107, 115, 195, 169, 0, 1, 105, 107, 2, 101, 98, 98, 3, 91, 91, 0, 7, 6, 116, 0, 4, 1, 45,
-			116, 3, 0, 4, 1, 45, 116, 116, 3, 0, 4, 121, 1, 45, 116, 3, 0, 4, 121, 1, 45, 116, 116, 3, 0, 121, 1, 45, 121, 116,
-			3, 0, 4, 3, 47, 0, 1, 45, 2, 32, 0, 1, 97, 99, 117, 116, 2, 115, 122, 195, 169, 112, 0, 1, 97, 104, 2, 99, 101, 108,
-			108, 0, 1, 97, 108, 100, 97, 112, 2, 115, 122, 197, 145, 110, 121, 0, 1, 97, 108, 108, 161, 195, 2, 99, 105, 114, 107, 0, 1, 97,
-			108, 108, 161, 195, 2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 97, 108, 108, 161, 195, 2, 115, 122, 197, 145, 114, 0, 1, 97, 108, 111,
-			100, 110, 111, 103, 2, 115, 122, 111, 110, 100, 0, 1, 97, 108, 111, 121, 116, 97, 112, 2, 115, 101, 108, 121, 0, 1, 97, 109, 97, 107,
-			2, 106, 195, 182, 118, 101, 100, 101, 108, 0, 1, 97, 112, 97, 115, 99, 2, 115, 122, 111, 108, 103, 0, 1, 97, 114, 161, 195, 106, 2,
-			115, 122, 111, 108, 103, 195, 161, 108, 0, 1, 97, 118, 105, 100, 2, 99, 105, 107, 107, 0, 1, 97, 118, 105, 100, 2, 99, 105, 114, 107,
-			0, 1, 97, 118, 105, 100, 2, 115, 122, 195, 169, 112, 0, 1, 97, 122, 115, 111, 109, 2, 115, 101, 106, 116, 0, 1, 97, 122, 115, 116,
-			161, 195, 108, 2, 106, 195, 179, 105, 110, 0, 1, 97, 122, 161, 195, 108, 98, 161, 195, 116, 2, 99, 101, 108, 108, 0, 1, 97, 122, 179,
-			195, 108, 161, 195, 104, 2, 115, 101, 109, 108, 101, 103, 101, 115, 0, 1, 101, 106, 97, 108, 105, 118, 2, 115, 122, 195, 169, 107, 0, 1,
-			101, 108, 101, 115, 99, 108, 182, 195, 98, 2, 115, 97, 118, 97, 0, 1, 101, 108, 101, 116, 122, 115, 105, 116, 2, 106, 101, 103, 103, 121,
-			0, 1, 101, 108, 103, 182, 195, 122, 115, 2, 115, 122, 111, 98, 0, 1, 101, 108, 121, 103, 188, 195, 2, 115, 122, 111, 98, 0, 1, 101,
-			108, 122, 188, 195, 2, 115, 122, 111, 98, 0, 1, 101, 108, 169, 195, 2, 115, 111, 114, 118, 97, 115, 122, 0, 1, 101, 108, 169, 195, 2,
-			115, 122, 111, 109, 106, 0, 1, 101, 108, 188, 195, 112, 169, 195, 2, 115, 122, 111, 98, 114, 195, 161, 0, 1, 101, 108, 188, 195, 114, 101,
-			116, 2, 99, 195, 169, 108, 0, 1, 101, 109, 114, 101, 112, 2, 115, 122, 101, 114, 197, 177, 0, 1, 101, 110, 2, 99, 0, 1, 101, 110,
-			114, 101, 116, 110, 105, 2, 106, 111, 103, 0, 1, 101, 115, 101, 2, 115, 122, 195, 169, 116, 118, 195, 161, 0, 1, 101, 116, 114, 169, 195,
-			115, 173, 195, 107, 2, 115, 122, 195, 161, 122, 97, 100, 0, 1, 101, 116, 182, 195, 107, 2, 115, 122, 195, 161, 109, 0, 1, 101, 118, 182,
-			195, 122, 115, 2, 115, 195, 161, 118, 0, 1, 101, 122, 101, 106, 101, 102, 2, 99, 195, 173, 109, 0, 1, 101, 122, 101, 106, 101, 102, 2,
-			115, 111, 114, 0, 1, 101, 122, 109, 101, 110, 2, 115, 122, 195, 173, 110, 0, 1, 101, 122, 115, 116, 101, 109, 2, 115, 111, 114, 0, 1,
-			101, 122, 121, 103, 169, 195, 110, 2, 99, 101, 110, 116, 105, 0, 1, 105, 98, 2, 115, 122, 195, 169, 108, 101, 115, 0, 1, 105, 102, 97,
-			114, 103, 2, 99, 101, 114, 117, 122, 0, 1, 105, 108, 101, 2, 115, 122, 111, 108, 103, 0, 1, 105, 110, 161, 195, 114, 103, 2, 115, 122,
-			111, 98, 0, 1, 105, 112, 114, 161, 195, 107, 2, 115, 122, 197, 145, 110, 121, 0, 1, 105, 122, 105, 118, 2, 115, 122, 111, 98, 0, 1,
-			106, 97, 115, 2, 115, 97, 108, 195, 161, 116, 0, 1, 106, 101, 115, 2, 115, 122, 105, 110, 116, 101, 0, 1, 106, 101, 115, 2, 115, 197,
-			177, 114, 197, 177, 0, 1, 107, 101, 114, 105, 100, 2, 115, 122, 111, 114, 122, 97, 0, 1, 108, 97, 122, 115, 97, 2, 106, 101, 103, 0,
-			1, 108, 161, 195, 110, 122, 115, 97, 104, 2, 99, 105, 107, 107, 0, 1, 110, 97, 107, 107, 111, 114, 2, 115, 101, 103, 195, 173, 116, 0,
-			1, 110, 101, 122, 115, 2, 115, 122, 111, 98, 0, 1, 110, 111, 106, 97, 118, 2, 115, 122, 111, 114, 111, 115, 0, 1, 110, 111, 114, 102,
-			2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 110, 111, 115, 99, 2, 115, 111, 118, 195, 161, 0, 1, 110, 111, 115, 99, 2, 115, 111, 118,
+			122, 1, 179, 195, 105, 100, 161, 195, 114, 2, 111, 98, 0, 122, 1, 179, 195, 107, 105, 115, 99, 0, 122, 1, 179, 195, 107, 105, 115, 99,
+			2, 195, 161, 109, 0, 122, 1, 179, 195, 110, 111, 118, 2, 101, 114, 101, 110, 195, 161, 100, 0, 122, 1, 179, 195, 112, 109, 97, 107, 0,
+			122, 1, 179, 195, 114, 186, 195, 122, 115, 2, 101, 109, 0, 122, 1, 179, 195, 116, 117, 97, 2, 101, 109, 195, 188, 118, 101, 103, 0, 122,
+			1, 179, 195, 118, 186, 195, 102, 2, 101, 114, 115, 122, 0, 122, 1, 179, 195, 118, 186, 195, 102, 2, 105, 109, 0, 122, 1, 182, 195, 108,
+			182, 195, 102, 106, 101, 116, 2, 195, 161, 106, 0, 122, 1, 182, 195, 114, 107, 182, 195, 2, 101, 107, 195, 169, 114, 0, 122, 1, 182, 195,
+			114, 145, 197, 122, 115, 2, 195, 173, 118, 0, 122, 1, 182, 195, 114, 182, 195, 118, 2, 101, 109, 0, 122, 1, 182, 195, 116, 110, 182, 195,
+			107, 0, 122, 1, 182, 195, 116, 110, 182, 195, 107, 2, 101, 114, 197, 177, 0, 122, 1, 182, 195, 118, 177, 197, 104, 2, 101, 109, 197, 177,
+			0, 122, 1, 186, 195, 100, 2, 97, 107, 195, 161, 108, 108, 0, 122, 1, 186, 195, 104, 2, 97, 102, 116, 0, 122, 1, 186, 195, 104, 2,
+			101, 107, 114, 195, 169, 110, 121, 0, 122, 1, 186, 195, 104, 2, 101, 108, 101, 116, 0, 122, 1, 186, 195, 104, 2, 195, 161, 108, 108, 195,
+			173, 116, 0, 122, 1, 186, 195, 121, 103, 161, 195, 0, 122, 1, 188, 195, 108, 112, 2, 101, 114, 197, 177, 0, 122, 2, 195, 173, 110, 197,
+			177, 0, 122, 8, 97, 100, 114, 111, 0, 122, 8, 97, 107, 97, 107, 2, 195, 179, 0, 122, 8, 97, 107, 114, 97, 102, 2, 105, 103, 0,
+			122, 8, 97, 107, 114, 97, 102, 2, 195, 161, 106, 0, 122, 8, 97, 110, 105, 0, 122, 8, 97, 115, 2, 101, 103, 0, 122, 8, 97, 115,
+			2, 195, 161, 114, 110, 121, 0, 122, 8, 97, 116, 117, 115, 97, 118, 0, 122, 8, 97, 118, 109, 97, 104, 2, 195, 188, 114, 107, 101, 0,
+			122, 8, 101, 100, 169, 195, 2, 101, 115, 122, 116, 101, 115, 116, 0, 122, 8, 101, 103, 169, 195, 115, 99, 110, 101, 122, 115, 2, 197, 177,
+			122, 0, 122, 8, 101, 107, 101, 114, 101, 107, 2, 195, 169, 107, 0, 122, 8, 101, 109, 101, 110, 0, 122, 8, 101, 110, 101, 109, 101, 107,
+			0, 122, 8, 101, 110, 169, 195, 109, 0, 122, 8, 101, 114, 101, 118, 0, 122, 8, 101, 116, 110, 101, 104, 2, 97, 107, 0, 122, 8, 101,
+			122, 115, 101, 109, 2, 195, 188, 114, 0, 122, 8, 105, 102, 107, 97, 98, 0, 122, 8, 105, 107, 2, 195, 161, 108, 108, 195, 161, 0, 122,
+			8, 105, 112, 115, 161, 195, 106, 2, 111, 98, 0, 122, 8, 105, 114, 103, 105, 116, 0, 122, 8, 105, 114, 145, 197, 107, 0, 122, 8, 105,
+			115, 97, 104, 2, 97, 103, 0, 122, 8, 111, 98, 109, 111, 103, 0, 122, 8, 111, 103, 97, 121, 103, 97, 2, 101, 114, 103, 0, 122, 8,
+			111, 103, 161, 195, 108, 105, 118, 2, 101, 109, 0, 122, 8, 111, 107, 2, 101, 109, 0, 122, 8, 111, 107, 105, 109, 0, 122, 8, 111, 107,
+			122, 115, 105, 112, 0, 122, 8, 111, 109, 97, 122, 115, 0, 122, 8, 111, 109, 161, 195, 118, 0, 122, 8, 111, 112, 97, 107, 0, 122, 8,
+			111, 112, 97, 110, 2, 111, 98, 0, 122, 8, 111, 114, 161, 195, 118, 0, 122, 8, 111, 114, 161, 195, 118, 2, 195, 169, 108, 0, 122, 8,
+			111, 121, 103, 110, 111, 114, 0, 122, 8, 114, 101, 118, 2, 101, 114, 0, 122, 8, 114, 111, 115, 2, 101, 115, 122, 195, 169, 108, 121, 0,
+			122, 8, 114, 111, 121, 103, 0, 122, 8, 114, 161, 195, 104, 0, 122, 8, 114, 161, 195, 116, 2, 111, 98, 0, 122, 8, 114, 161, 195, 121,
+			110, 2, 101, 114, 197, 177, 0, 122, 8, 117, 100, 108, 111, 107, 2, 101, 0, 122, 8, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 101,
+			114, 0, 122, 8, 117, 107, 101, 104, 2, 97, 103, 0, 122, 8, 117, 107, 179, 195, 109, 0, 122, 8, 117, 112, 173, 195, 116, 2, 195, 161,
+			109, 0, 122, 8, 117, 112, 173, 195, 116, 2, 195, 182, 118, 101, 103, 0, 122, 8, 117, 114, 173, 195, 118, 2, 101, 114, 0, 122, 8, 145,
+			197, 2, 101, 108, 108, 0, 122, 8, 145, 197, 2, 101, 114, 197, 177, 0, 122, 8, 145, 197, 2, 105, 0, 122, 8, 145, 197, 2, 111, 107,
+			195, 161, 0, 122, 8, 145, 197, 2, 195, 169, 107, 0, 122, 8, 145, 197, 104, 0, 122, 8, 161, 195, 102, 2, 195, 173, 110, 0, 122, 8,
+			161, 195, 103, 97, 99, 97, 107, 2, 101, 114, 0, 122, 8, 161, 195, 103, 114, 111, 102, 0, 122, 8, 161, 195, 107, 97, 108, 0, 122, 8,
+			161, 195, 107, 97, 114, 0, 122, 8, 161, 195, 108, 97, 2, 111, 108, 103, 0, 122, 8, 161, 195, 108, 179, 195, 122, 115, 0, 122, 8, 161,
+			195, 109, 2, 195, 179, 0, 122, 8, 161, 195, 109, 111, 108, 108, 97, 118, 0, 122, 8, 161, 195, 114, 114, 111, 102, 0, 122, 8, 161, 195,
+			115, 0, 122, 8, 161, 195, 115, 122, 179, 195, 114, 2, 197, 145, 107, 0, 122, 8, 161, 195, 116, 97, 104, 2, 101, 114, 0, 122, 8, 161,
+			195, 116, 110, 97, 107, 114, 111, 104, 2, 101, 114, 0, 122, 8, 161, 195, 116, 114, 111, 112, 0, 122, 8, 161, 195, 116, 161, 195, 108, 2,
+			195, 182, 103, 0, 122, 8, 161, 195, 118, 108, 105, 122, 115, 0, 122, 8, 169, 195, 99, 101, 114, 2, 195, 161, 114, 195, 186, 0, 122, 8,
+			169, 195, 100, 101, 107, 108, 101, 122, 173, 195, 104, 0, 122, 8, 169, 195, 103, 169, 195, 0, 122, 8, 169, 195, 107, 112, 105, 115, 99, 0,
+			122, 8, 169, 195, 107, 169, 195, 98, 0, 122, 8, 169, 195, 114, 2, 101, 114, 197, 177, 0, 122, 8, 169, 195, 116, 101, 100, 108, 188, 195,
+			107, 0, 122, 8, 169, 195, 116, 101, 116, 110, 188, 195, 116, 105, 107, 0, 122, 8, 169, 195, 116, 101, 118, 0, 122, 8, 169, 195, 116, 106,
+			101, 108, 0, 122, 8, 169, 195, 116, 173, 195, 114, 101, 107, 2, 97, 103, 0, 122, 8, 169, 195, 118, 101, 107, 0, 122, 8, 169, 195, 118,
+			101, 107, 2, 101, 114, 0, 122, 8, 169, 195, 122, 101, 100, 110, 101, 114, 101, 98, 2, 101, 0, 122, 8, 179, 195, 106, 0, 122, 8, 179,
+			195, 106, 97, 104, 0, 122, 8, 179, 195, 116, 173, 195, 114, 105, 112, 2, 101, 0, 122, 8, 182, 195, 114, 107, 182, 195, 2, 101, 103, 0,
+			122, 8, 182, 195, 114, 107, 182, 195, 2, 101, 107, 101, 114, 101, 0, 122, 8, 182, 195, 114, 107, 188, 195, 116, 0, 122, 8, 182, 195, 114,
+			182, 195, 107, 2, 105, 103, 0, 122, 8, 182, 195, 114, 182, 195, 118, 0, 122, 8, 186, 195, 104, 2, 97, 108, 111, 110, 110, 97, 0, 122,
+			8, 186, 195, 104, 2, 105, 103, 101, 116, 0, 122, 8, 186, 195, 104, 2, 195, 173, 110, 0, 7, 6, 115, 122, 0, 4, 3, 89, 0, 1,
+			97, 118, 97, 114, 2, 195, 161, 114, 0, 1, 97, 118, 97, 116, 2, 195, 161, 114, 97, 0, 1, 100, 110, 101, 114, 2, 101, 114, 101, 116,
+			197, 145, 0, 1, 100, 110, 101, 114, 2, 101, 114, 3, 89, 12, 0, 4, 116, 1, 97, 114, 97, 112, 2, 115, 101, 103, 103, 3, 89, 47,
+			0, 116, 1, 101, 98, 122, 97, 2, 115, 105, 115, 97, 107, 0, 116, 1, 101, 114, 101, 107, 2, 115, 111, 114, 0, 116, 1, 101, 114, 101,
+			107, 2, 115, 122, 101, 114, 0, 116, 1, 117, 121, 110, 2, 115, 195, 188, 118, 101, 103, 0, 4, 116, 115, 122, 3, 89, 47, 89, 0, 116,
+			115, 122, 1, 97, 114, 97, 112, 2, 97, 103, 0, 116, 115, 122, 1, 97, 114, 97, 112, 2, 97, 110, 100, 195, 161, 108, 0, 116, 115, 122,
+			1, 97, 114, 97, 112, 2, 101, 107, 0, 116, 115, 122, 1, 101, 114, 101, 107, 2, 101, 0, 116, 115, 122, 1, 105, 108, 2, 101, 114, 197,
+			177, 0, 116, 115, 122, 1, 105, 116, 97, 98, 2, 101, 114, 197, 177, 0, 116, 115, 122, 8, 97, 109, 97, 100, 0, 4, 116, 115, 122, 101,
+			1, 105, 116, 97, 98, 2, 103, 195, 169, 3, 89, 47, 89, 109, 0, 116, 115, 122, 101, 1, 105, 116, 101, 109, 97, 0, 116, 115, 122, 101,
+			1, 111, 114, 100, 2, 114, 122, 197, 145, 0, 116, 115, 122, 101, 8, 97, 107, 0, 4, 116, 115, 1, 97, 108, 97, 109, 2, 117, 103, 97,
+			108, 3, 89, 47, 91, 0, 116, 115, 1, 97, 114, 97, 112, 2, 105, 104, 101, 100, 0, 116, 115, 1, 97, 114, 97, 112, 2, 111, 110, 107,
+			0, 116, 115, 1, 97, 114, 97, 112, 2, 111, 114, 115, 0, 116, 115, 1, 97, 114, 97, 112, 2, 117, 104, 97, 110, 0, 116, 115, 1, 97,
+			114, 97, 112, 2, 195, 188, 116, 101, 0, 116, 115, 1, 101, 116, 2, 111, 114, 111, 122, 0, 116, 115, 8, 97, 109, 97, 100, 0, 116, 115,
+			3, 89, 76, 12, 0, 116, 115, 122, 97, 3, 89, 119, 108, 0, 116, 115, 122, 101, 3, 89, 119, 109, 0, 115, 1, 169, 195, 103, 101, 2,
+			195, 169, 103, 3, 91, 0, 4, 115, 1, 97, 103, 105, 2, 195, 161, 103, 111, 115, 3, 91, 12, 0, 115, 1, 169, 195, 107, 103, 101, 108,
+			2, 195, 169, 103, 101, 115, 0, 1, 97, 118, 2, 97, 98, 108, 3, 91, 15, 88, 0, 4, 1, 97, 118, 2, 195, 161, 112, 111, 114, 3,
+			91, 88, 0, 1, 97, 118, 2, 195, 161, 114, 0, 1, 111, 114, 97, 109, 2, 117, 103, 0, 1, 161, 195, 108, 108, 97, 104, 2, 97, 118,
+			97, 114, 0, 1, 161, 195, 121, 108, 107, 161, 195, 102, 2, 101, 110, 101, 0, 1, 169, 195, 118, 101, 2, 97, 118, 97, 114, 0, 1, 179,
+			195, 110, 111, 118, 2, 101, 110, 101, 0, 1, 182, 195, 114, 182, 195, 107, 2, 117, 103, 0, 2, 97, 99, 115, 107, 0, 2, 195, 182, 108,
+			100, 0, 4, 115, 1, 97, 118, 2, 97, 110, 195, 169, 114, 3, 91, 90, 0, 115, 1, 97, 118, 2, 195, 173, 114, 0, 115, 1, 101, 122,
+			105, 118, 2, 101, 109, 0, 115, 1, 161, 195, 107, 110, 111, 115, 2, 101, 109, 108, 0, 115, 1, 161, 195, 116, 2, 105, 110, 0, 115, 1,
+			169, 195, 116, 114, 101, 115, 2, 195, 173, 114, 0, 115, 2, 195, 161, 107, 0, 7, 6, 116, 106, 0, 4, 1, 97, 104, 2, 101, 103, 121,
+			197, 177, 3, 47, 57, 0, 1, 97, 108, 108, 161, 195, 2, 195, 179, 108, 195, 169, 116, 0, 1, 97, 108, 111, 100, 110, 111, 103, 2, 101,
+			108, 0, 1, 97, 108, 117, 103, 110, 97, 104, 2, 97, 118, 195, 173, 116, 0, 1, 97, 108, 117, 103, 110, 97, 104, 2, 101, 108, 0, 1,
+			97, 109, 97, 121, 108, 111, 102, 2, 101, 108, 0, 1, 97, 110, 111, 118, 2, 101, 103, 121, 0, 1, 97, 112, 97, 115, 99, 2, 101, 108,
+			0, 1, 97, 112, 97, 115, 99, 2, 195, 161, 116, 195, 169, 107, 0, 1, 97, 122, 111, 103, 108, 111, 100, 2, 97, 118, 195, 173, 116, 0,
+			1, 101, 108, 98, 98, 182, 195, 116, 2, 195, 182, 118, 101, 100, 101, 108, 0, 1, 101, 108, 101, 116, 122, 115, 105, 116, 2, 101, 103, 121,
+			0, 1, 101, 108, 114, 169, 195, 98, 2, 101, 103, 121, 0, 1, 101, 108, 169, 195, 2, 101, 108, 0, 1, 101, 108, 169, 195, 2, 195, 161,
+			114, 97, 100, 195, 169, 107, 0, 1, 101, 108, 188, 195, 114, 101, 116, 2, 101, 108, 195, 182, 108, 0, 1, 101, 109, 169, 195, 110, 2, 117,
+			104, 195, 161, 0, 1, 101, 110, 101, 109, 2, 101, 103, 103, 121, 0, 1, 101, 110, 101, 109, 2, 101, 103, 121, 0, 1, 101, 110, 101, 122,
+			188, 195, 2, 101, 108, 0, 1, 101, 110, 114, 101, 116, 110, 105, 2, 101, 103, 121, 0, 1, 101, 110, 188, 195, 122, 115, 2, 101, 108, 0,
+			1, 101, 115, 101, 2, 111, 103, 0, 1, 101, 122, 101, 106, 101, 102, 2, 101, 108, 0, 1, 101, 122, 114, 169, 195, 122, 182, 195, 107, 2,
+			97, 118, 195, 173, 0, 1, 101, 122, 115, 169, 195, 109, 114, 101, 116, 2, 111, 103, 0, 1, 101, 122, 115, 169, 195, 109, 114, 101, 116, 2,
+			195, 161, 114, 0, 1, 101, 122, 115, 169, 195, 109, 114, 101, 116, 2, 195, 161, 116, 195, 169, 107, 0, 1, 101, 122, 121, 108, 101, 104, 2,
+			101, 108, 0, 1, 101, 122, 177, 197, 121, 116, 110, 101, 108, 108, 105, 98, 2, 101, 108, 0, 1, 108, 111, 104, 2, 195, 161, 116, 195, 169,
+			107, 0, 1, 110, 97, 107, 107, 111, 114, 2, 195, 161, 114, 97, 100, 195, 169, 107, 0, 1, 110, 101, 122, 115, 2, 97, 107, 97, 98, 0,
+			1, 110, 101, 122, 115, 2, 195, 161, 110, 111, 115, 0, 1, 110, 111, 114, 102, 2, 195, 161, 114, 0, 1, 110, 111, 115, 99, 2, 195, 161,
+			116, 195, 169, 107, 0, 1, 111, 112, 97, 108, 108, 161, 195, 2, 97, 118, 117, 108, 0, 1, 111, 112, 97, 108, 108, 161, 195, 2, 101, 108,
+			0, 1, 114, 111, 112, 115, 2, 195, 161, 116, 195, 169, 107, 0, 1, 114, 188, 195, 107, 2, 101, 108, 0, 1, 115, 101, 116, 2, 195, 161,
+			116, 195, 169, 107, 0, 1, 115, 188, 195, 122, 101, 2, 101, 108, 118, 0, 1, 122, 115, 182, 195, 114, 182, 195, 107, 2, 195, 161, 114, 0,
+			1, 161, 195, 2, 117, 115, 115, 0, 1, 161, 195, 2, 117, 116, 0, 1, 161, 195, 2, 195, 161, 114, 0, 1, 161, 195, 2, 195, 182, 0,
+			1, 161, 195, 2, 195, 182, 104, 101, 0, 1, 161, 195, 2, 195, 182, 110, 0, 1, 161, 195, 2, 195, 182, 115, 115, 122, 0, 1, 161, 195,
+			2, 195, 182, 116, 0, 1, 169, 195, 104, 2, 101, 103, 121, 197, 177, 0, 1, 169, 195, 107, 2, 101, 103, 121, 197, 177, 0, 1, 169, 195,
+			107, 105, 112, 2, 195, 161, 116, 115, 122, 0, 1, 169, 195, 108, 2, 111, 103, 111, 115, 117, 108, 116, 115, 195, 161, 103, 0, 1, 169, 195,
+			110, 101, 122, 2, 195, 161, 116, 115, 122, 0, 1, 179, 195, 107, 115, 2, 117, 104, 195, 161, 115, 122, 0, 1, 179, 195, 112, 2, 101, 0,
+			1, 182, 195, 2, 101, 103, 121, 197, 177, 0, 1, 186, 195, 2, 97, 118, 195, 173, 0, 1, 186, 195, 2, 101, 108, 122, 195, 169, 115, 0,
+			1, 186, 195, 2, 101, 108, 122, 197, 145, 0, 1, 186, 195, 2, 111, 103, 0, 2, 101, 108, 0, 8, 97, 122, 161, 195, 108, 98, 161, 195,
+			116, 2, 101, 103, 121, 0, 8, 101, 108, 101, 116, 122, 115, 105, 116, 2, 101, 108, 0, 8, 101, 108, 122, 115, 169, 195, 107, 2, 101, 108,
+			101, 110, 0, 8, 110, 97, 122, 115, 101, 100, 2, 195, 161, 114, 109, 0, 8, 122, 115, 101, 114, 101, 107, 2, 195, 161, 0, 8, 122, 115,
+			169, 195, 118, 2, 195, 179, 115, 108, 0, 8, 161, 195, 2, 101, 108, 101, 110, 116, 107, 101, 122, 0, 8, 161, 195, 2, 117, 0, 8, 161,
+			195, 2, 195, 182, 106, 0, 4, 195, 161, 116, 115, 115, 122, 1, 161, 195, 3, 47, 57, 114, 119, 12, 0, 195, 161, 116, 115, 122, 1, 161,
+			195, 0, 4, 1, 17, 67, 3, 80, 0, 1, 110, 111, 115, 99, 0, 1, 114, 188, 195, 107, 0, 1, 115, 188, 195, 122, 101, 0, 4, 1,
+			17, 65, 2, 17, 65, 3, 80, 12, 0, 1, 101, 108, 122, 188, 195, 0, 1, 161, 195, 103, 2, 195, 161, 114, 0, 1, 161, 195, 104, 2,
+			195, 161, 114, 0, 1, 161, 195, 108, 114, 111, 107, 2, 195, 161, 114, 97, 0, 1, 161, 195, 114, 97, 98, 2, 195, 161, 114, 0, 7, 6,
+			116, 115, 0, 4, 122, 1, 97, 100, 97, 3, 47, 89, 0, 122, 1, 97, 100, 97, 2, 111, 108, 103, 195, 161, 108, 116, 97, 116, 0, 122,
+			1, 97, 104, 2, 195, 161, 122, 0, 122, 1, 97, 108, 117, 100, 110, 105, 2, 195, 179, 0, 122, 1, 101, 108, 98, 98, 182, 195, 116, 2,
+			111, 108, 0, 122, 1, 101, 108, 188, 195, 115, 99, 101, 98, 2, 195, 179, 0, 122, 1, 101, 110, 2, 111, 0, 122, 1, 101, 110, 101, 109,
+			2, 195, 169, 108, 0, 122, 1, 101, 116, 101, 114, 101, 122, 115, 2, 111, 108, 103, 195, 161, 108, 97, 116, 0, 122, 1, 101, 122, 109, 101,
+			110, 2, 111, 0, 122, 1, 105, 104, 2, 101, 0, 122, 1, 105, 104, 2, 195, 179, 0, 122, 1, 106, 101, 115, 2, 195, 182, 0, 122, 1,
+			110, 97, 108, 2, 195, 179, 0, 122, 1, 110, 101, 98, 2, 111, 114, 117, 108, 0, 122, 1, 110, 101, 122, 115, 2, 111, 98, 114, 111, 107,
+			0, 122, 1, 110, 101, 122, 115, 2, 195, 169, 107, 0, 122, 1, 110, 111, 114, 102, 2, 111, 108, 103, 195, 161, 108, 0, 122, 1, 110, 111,
+			115, 99, 2, 195, 169, 110, 0, 122, 1, 110, 161, 195, 112, 2, 195, 169, 108, 0, 122, 1, 111, 112, 97, 121, 103, 0, 122, 1, 114, 101,
+			107, 2, 111, 109, 115, 122, 195, 169, 100, 0, 122, 1, 114, 111, 112, 115, 2, 111, 108, 103, 195, 161, 108, 0, 122, 1, 114, 188, 195, 107,
+			2, 195, 179, 0, 122, 1, 161, 195, 2, 97, 0, 122, 1, 161, 195, 2, 101, 0, 122, 1, 161, 195, 2, 111, 107, 0, 122, 1, 161, 195,
+			2, 195, 182, 0, 122, 1, 161, 195, 2, 195, 186, 0, 122, 1, 161, 195, 2, 197, 145, 0, 122, 1, 161, 195, 2, 197, 177, 0, 122, 1,
+			161, 195, 98, 97, 107, 2, 195, 169, 0, 122, 1, 161, 195, 104, 2, 195, 169, 108, 0, 122, 1, 161, 195, 108, 2, 101, 0, 122, 1, 161,
+			195, 108, 2, 101, 114, 195, 169, 115, 122, 0, 122, 1, 161, 195, 122, 115, 115, 97, 112, 2, 195, 169, 108, 0, 122, 1, 169, 195, 104, 2,
+			195, 161, 122, 0, 122, 1, 169, 195, 107, 2, 101, 114, 101, 112, 0, 122, 1, 169, 195, 107, 2, 195, 161, 122, 0, 122, 1, 169, 195, 107,
+			2, 195, 173, 110, 0, 122, 1, 169, 195, 108, 2, 195, 161, 109, 0, 122, 1, 169, 195, 116, 182, 195, 115, 2, 197, 145, 107, 101, 0, 122,
+			1, 179, 195, 107, 115, 2, 111, 107, 110, 121, 0, 122, 1, 179, 195, 114, 100, 2, 197, 145, 114, 0, 122, 1, 182, 195, 2, 195, 161, 122,
+			0, 122, 1, 186, 195, 2, 111, 114, 111, 115, 0, 122, 1, 186, 195, 2, 195, 169, 108, 0, 122, 2, 97, 0, 122, 2, 101, 0, 122, 2,
+			195, 161, 0, 122, 8, 97, 104, 2, 111, 98, 0, 122, 8, 97, 104, 99, 2, 111, 98, 0, 122, 8, 161, 195, 2, 111, 108, 103, 195, 161,
+			108, 0, 122, 8, 161, 195, 2, 111, 114, 111, 110, 103, 0, 122, 8, 161, 195, 2, 111, 114, 117, 108, 116, 0, 122, 8, 161, 195, 2, 111,
+			114, 195, 173, 116, 0, 122, 8, 169, 195, 104, 2, 111, 98, 0, 122, 8, 169, 195, 107, 2, 111, 98, 0, 122, 8, 179, 195, 112, 2, 195,
+			169, 107, 0, 122, 8, 182, 195, 2, 111, 98, 0, 122, 195, 169, 1, 169, 195, 122, 115, 3, 47, 89, 113, 0, 4, 1, 97, 100, 97, 3,
+			47, 91, 0, 1, 97, 100, 97, 108, 101, 102, 2, 111, 114, 0, 1, 97, 104, 2, 195, 161, 118, 0, 1, 97, 108, 108, 161, 195, 2, 101,
+			114, 101, 103, 0, 1, 97, 108, 111, 100, 110, 111, 103, 2, 111, 114, 0, 1, 97, 108, 114, 111, 107, 97, 121, 103, 2, 111, 114, 111, 122,
+			0, 1, 97, 108, 117, 100, 122, 111, 109, 2, 111, 0, 1, 97, 108, 161, 195, 103, 115, 122, 105, 118, 2, 111, 114, 0, 1, 97, 108, 161,
+			195, 103, 115, 122, 105, 118, 2, 111, 114, 111, 122, 97, 0, 1, 97, 109, 97, 121, 108, 111, 102, 2, 195, 161, 118, 0, 1, 97, 110, 97,
+			103, 97, 100, 2, 101, 106, 0, 1, 97, 114, 105, 108, 101, 102, 2, 195, 161, 118, 0, 1, 97, 122, 161, 195, 108, 98, 161, 195, 116, 2,
+			111, 114, 0, 1, 101, 103, 105, 122, 115, 2, 111, 114, 0, 1, 101, 108, 101, 118, 177, 197, 109, 2, 111, 0, 1, 101, 108, 101, 118, 177,
+			197, 109, 2, 195, 161, 118, 0, 1, 101, 108, 101, 121, 103, 101, 107, 2, 195, 169, 114, 0, 1, 101, 108, 114, 169, 195, 115, 173, 195, 107,
+			2, 111, 114, 111, 122, 97, 116, 0, 1, 101, 108, 122, 188, 195, 2, 111, 114, 0, 1, 101, 108, 188, 195, 112, 169, 195, 2, 97, 114, 111,
+			107, 0, 1, 101, 108, 188, 195, 112, 169, 195, 2, 97, 114, 111, 107, 0, 1, 101, 108, 188, 195, 114, 101, 116, 2, 195, 161, 118, 0, 1,
+			101, 108, 188, 195, 115, 99, 101, 98, 2, 195, 169, 0, 1, 101, 110, 2, 101, 0, 1, 101, 110, 2, 195, 161, 116, 111, 114, 0, 1, 101,
+			110, 101, 109, 2, 111, 114, 0, 1, 101, 118, 182, 195, 122, 115, 2, 97, 112, 107, 0, 1, 101, 122, 109, 101, 110, 2, 116, 114, 97, 116,
+			195, 169, 0, 1, 101, 122, 188, 195, 102, 97, 107, 110, 117, 109, 2, 97, 98, 108, 0, 1, 105, 98, 2, 101, 98, 101, 115, 115, 195, 169,
+			103, 0, 1, 105, 109, 2, 101, 0, 1, 108, 97, 98, 111, 107, 2, 117, 103, 195, 161, 114, 0, 1, 108, 111, 104, 2, 195, 161, 112, 97,
+			100, 116, 0, 1, 110, 105, 109, 2, 101, 109, 0, 1, 110, 111, 115, 99, 2, 195, 169, 114, 0, 1, 110, 161, 195, 114, 111, 107, 2, 101,
+			0, 1, 111, 98, 111, 114, 2, 111, 102, 0, 1, 111, 111, 98, 2, 111, 114, 114, 101, 110, 100, 0, 1, 111, 112, 97, 108, 108, 161, 195,
+			2, 111, 114, 0, 1, 114, 97, 112, 2, 195, 161, 118, 0, 1, 114, 161, 195, 112, 2, 97, 106, 116, 195, 179, 0, 1, 114, 161, 195, 122,
+			2, 111, 114, 195, 186, 0, 1, 115, 101, 116, 2, 195, 169, 114, 0, 1, 117, 99, 110, 117, 104, 2, 195, 161, 103, 0, 1, 122, 115, 101,
+			116, 2, 111, 114, 0, 1, 161, 195, 2, 101, 103, 195, 173, 116, 0, 1, 161, 195, 2, 101, 106, 108, 101, 0, 1, 161, 195, 2, 111, 114,
+			0, 1, 161, 195, 2, 117, 103, 0, 1, 161, 195, 2, 117, 104, 0, 1, 161, 195, 2, 117, 114, 0, 1, 161, 195, 2, 195, 169, 0, 1,
+			161, 195, 2, 195, 182, 112, 114, 197, 145, 0, 1, 161, 195, 2, 195, 182, 112, 195, 182, 114, 0, 1, 161, 195, 2, 195, 188, 108, 116, 0,
+			1, 161, 195, 2, 195, 188, 116, 0, 1, 161, 195, 2, 195, 188, 118, 195, 173, 116, 0, 1, 161, 195, 103, 2, 195, 188, 108, 108, 121, 101,
+			100, 0, 1, 169, 195, 107, 2, 97, 114, 107, 195, 186, 0, 1, 169, 195, 107, 2, 97, 114, 111, 107, 0, 1, 169, 195, 107, 2, 101, 98,
+			101, 115, 115, 195, 169, 103, 101, 115, 0, 1, 169, 195, 107, 2, 111, 114, 0, 1, 169, 195, 107, 2, 195, 161, 118, 0, 1, 169, 195, 114,
+			182, 195, 115, 2, 101, 98, 0, 1, 179, 195, 107, 115, 2, 97, 112, 107, 97, 0, 1, 179, 195, 114, 100, 2, 195, 182, 118, 195, 169, 110,
+			110, 121, 0, 1, 179, 195, 114, 100, 2, 195, 182, 118, 195, 169, 110, 121, 0, 1, 179, 195, 122, 111, 98, 2, 111, 0, 1, 186, 195, 107,
+			2, 117, 103, 0, 8, 161, 195, 2, 111, 100, 111, 114, 0, 8, 186, 195, 2, 195, 161, 118, 0, 4, 1, 106, 3, 76, 0, 1, 110, 101,
+			109, 2, 118, 195, 161, 114, 0, 1, 110, 182, 195, 100, 2, 195, 182, 110, 0, 2, 32, 14, 128, 128, 130, 0, 2, 97, 0, 2, 101, 0,
+			2, 111, 0, 2, 117, 0, 2, 195, 161, 0, 2, 195, 169, 0, 4, 1, 97, 108, 108, 161, 195, 2, 195, 161, 103, 3, 76, 12, 0, 1,
+			97, 108, 117, 109, 0, 1, 101, 104, 101, 108, 2, 195, 169, 103, 0, 1, 101, 104, 101, 116, 2, 195, 169, 103, 0, 1, 101, 105, 115, 0,
+			1, 101, 107, 188, 195, 115, 2, 195, 169, 103, 0, 1, 101, 108, 106, 101, 102, 2, 195, 169, 103, 0, 1, 101, 109, 169, 195, 110, 2, 195,
+			169, 103, 0, 1, 101, 114, 101, 109, 115, 105, 2, 195, 169, 103, 0, 1, 101, 114, 169, 195, 2, 195, 169, 103, 0, 1, 101, 118, 101, 110,
+			2, 195, 169, 103, 0, 1, 101, 118, 182, 195, 107, 2, 195, 169, 103, 0, 1, 101, 118, 182, 195, 122, 115, 2, 195, 169, 103, 0, 1, 101,
+			122, 101, 108, 101, 116, 182, 195, 107, 2, 195, 169, 103, 0, 1, 101, 122, 105, 102, 2, 195, 169, 103, 0, 1, 101, 122, 109, 101, 110, 0,
+			1, 105, 103, 101, 115, 2, 195, 169, 0, 1, 111, 116, 97, 103, 111, 109, 161, 195, 116, 2, 195, 161, 103, 0, 1, 111, 122, 105, 98, 2,
+			195, 161, 103, 0, 1, 117, 99, 110, 117, 104, 2, 195, 161, 103, 0, 1, 161, 195, 2, 195, 179, 0, 1, 161, 195, 106, 97, 115, 2, 195,
+			161, 103, 0, 1, 161, 195, 112, 97, 2, 195, 161, 103, 0, 1, 161, 195, 114, 97, 98, 0, 1, 169, 195, 107, 2, 195, 169, 103, 0, 1,
+			169, 195, 109, 101, 122, 115, 2, 195, 169, 103, 0, 1, 169, 195, 114, 2, 195, 169, 103, 0, 1, 169, 195, 116, 182, 195, 115, 2, 195, 169,
+			103, 0, 1, 169, 195, 118, 2, 195, 169, 103, 0, 1, 173, 195, 103, 101, 115, 0, 1, 173, 195, 108, 108, 161, 195, 0, 1, 173, 195, 114,
+			111, 122, 115, 2, 97, 0, 1, 173, 195, 114, 188, 195, 2, 101, 0, 1, 177, 197, 102, 0, 1, 177, 197, 104, 0, 1, 182, 195, 116, 182,
+			195, 107, 2, 195, 169, 103, 0, 8, 161, 195, 104, 2, 195, 161, 103, 0, 100, 3, 76, 72, 0, 195, 182, 3, 76, 110, 0, 195, 188, 3,
+			76, 111, 0, 4, 122, 1, 101, 109, 2, 118, 101, 3, 119, 0, 122, 1, 101, 109, 101, 108, 2, 118, 195, 169, 110, 0, 122, 1, 161, 195,
+			106, 2, 104, 97, 115, 115, 0, 122, 1, 161, 195, 106, 2, 104, 97, 116, 0, 122, 1, 161, 195, 106, 2, 109, 0, 122, 1, 161, 195, 106,
+			2, 118, 0, 4, 115, 122, 1, 97, 108, 108, 97, 104, 2, 111, 110, 3, 119, 12, 0, 115, 122, 1, 101, 109, 2, 101, 0, 115, 122, 1,
+			101, 109, 2, 195, 188, 107, 0, 115, 122, 1, 161, 195, 106, 0, 115, 122, 1, 161, 195, 108, 2, 97, 110, 97, 107, 0, 115, 122, 1, 161,
+			195, 108, 2, 111, 110, 0, 115, 122, 8, 161, 195, 108, 2, 195, 169, 107, 0, 122, 1, 97, 108, 108, 97, 104, 2, 97, 0, 122, 1, 97,
+			108, 108, 97, 104, 2, 105, 107, 0, 122, 1, 101, 105, 115, 0, 122, 1, 101, 109, 2, 101, 0, 122, 1, 101, 109, 2, 101, 116, 0, 122,
+			1, 101, 109, 2, 105, 107, 0, 122, 1, 101, 116, 0, 122, 1, 161, 195, 106, 2, 17, 65, 0, 122, 1, 161, 195, 106, 2, 111, 107, 0,
+			122, 1, 161, 195, 108, 2, 17, 65, 0, 122, 1, 169, 195, 104, 2, 101, 114, 0, 122, 1, 169, 195, 107, 2, 101, 114, 0, 122, 1, 182,
+			195, 2, 195, 182, 114, 0, 122, 1, 182, 195, 112, 2, 101, 110, 0, 122, 2, 32, 14, 128, 128, 131, 0, 122, 2, 111, 0, 122, 2, 195,
+			169, 0, 122, 2, 197, 145, 0, 122, 195, 179, 2, 32, 14, 128, 128, 132, 3, 119, 12, 115, 0, 7, 6, 116, 116, 0, 4, 1, 97, 108,
+			97, 2, 106, 195, 161, 114, 3, 47, 0, 1, 101, 107, 105, 114, 107, 2, 106, 195, 161, 116, 0, 1, 101, 107, 105, 114, 107, 2, 106, 195,
+			161, 116, 0, 1, 111, 108, 97, 104, 2, 115, 195, 161, 112, 97, 100, 0, 1, 182, 195, 108, 188, 195, 122, 115, 110, 110, 101, 98, 2, 106,
+			101, 108, 109, 101, 122, 0, 4, 3, 47, 12, 0, 1, 101, 122, 101, 121, 108, 101, 104, 2, 114, 197, 145, 108, 0, 1, 122, 115, 101, 114,
+			101, 107, 2, 197, 177, 122, 0, 1, 169, 195, 122, 115, 2, 114, 97, 110, 99, 115, 195, 173, 114, 0, 103, 121, 3, 47, 12, 79, 0, 114,
+			3, 47, 52, 0, 4, 115, 2, 195, 161, 3, 76, 12, 0, 115, 2, 195, 169, 0, 4, 106, 3, 80, 12, 0, 121, 0, 121, 106, 0, 115,
+			122, 1, 101, 109, 2, 101, 116, 3, 119, 12, 0, 7, 6, 116, 121, 0, 1, 110, 101, 122, 115, 100, 110, 105, 109, 3, 47, 37, 0, 2,
+			97, 114, 100, 3, 47, 57, 0, 7, 6, 195, 161, 0, 3, 114, 0, 105, 103, 1, 21, 2, 32, 14, 128, 192, 131, 3, 114, 37, 81, 0,
+			116, 195, 179, 108, 1, 21, 2, 32, 14, 128, 192, 132, 3, 114, 47, 115, 55, 0, 110, 97, 107, 1, 21, 2, 32, 14, 128, 192, 132, 3,
+			114, 50, 108, 49, 0, 114, 97, 1, 21, 2, 32, 14, 128, 192, 131, 3, 114, 52, 108, 0, 98, 97, 110, 1, 21, 2, 32, 14, 128, 192,
+			132, 3, 114, 71, 108, 50, 0, 7, 6, 195, 169, 0, 3, 113, 0, 105, 2, 195, 169, 3, 113, 12, 112, 0, 105, 103, 1, 21, 2, 32,
+			14, 128, 192, 131, 3, 113, 37, 81, 0, 116, 197, 145, 108, 1, 21, 2, 32, 14, 128, 192, 132, 3, 113, 47, 118, 55, 0, 110, 101, 107,
+			1, 21, 2, 32, 14, 128, 192, 132, 3, 113, 50, 109, 49, 0, 114, 101, 1, 21, 2, 32, 14, 128, 192, 131, 3, 113, 52, 109, 0, 98,
+			101, 110, 1, 21, 2, 32, 14, 128, 192, 132, 3, 113, 71, 109, 50, 0, 104, 115, 195, 169, 103, 3, 113, 91, 113, 81, 0, 104, 115, 195,
+			169, 103, 103, 3, 113, 91, 113, 81, 12, 0, 7, 6, 195, 171, 0, 3, 110, 0, 7, 6, 195, 173, 0, 4, 1, 116, 2, 122, 101, 110,
+			3, 37, 0, 1, 116, 2, 122, 101, 115, 0, 1, 116, 2, 122, 101, 116, 0, 1, 118, 2, 122, 101, 110, 0, 1, 118, 2, 122, 195, 169,
+			114, 101, 0, 1, 122, 115, 2, 118, 97, 116, 110, 0, 1, 122, 115, 2, 118, 97, 116, 195, 161, 115, 0, 1, 122, 115, 2, 118, 101, 0,
+			8, 116, 2, 122, 195, 188, 107, 0, 8, 118, 2, 122, 105, 0, 8, 122, 115, 2, 110, 195, 169, 115, 115, 122, 0, 8, 122, 115, 2, 110,
+			195, 169, 115, 122, 0, 8, 122, 115, 2, 118, 97, 116, 116, 97, 107, 0, 8, 122, 115, 2, 118, 97, 116, 116, 195, 161, 107, 107, 0, 8,
+			122, 115, 2, 118, 97, 116, 195, 179, 0, 8, 122, 115, 103, 101, 109, 2, 118, 97, 116, 116, 97, 0, 116, 115, 122, 1, 100, 97, 98, 97,
+			122, 115, 3, 37, 119, 12, 0, 4, 3, 112, 0, 1, 116, 2, 122, 101, 115, 122, 0, 1, 122, 115, 2, 118, 101, 108, 0, 1, 122, 115,
+			2, 118, 101, 109, 195, 169, 115, 122, 116, 0, 1, 122, 115, 115, 101, 114, 103, 97, 2, 118, 0, 8, 118, 2, 122, 105, 195, 179, 0, 116,
+			115, 3, 112, 76, 12, 0, 116, 115, 100, 3, 112, 76, 72, 0, 116, 115, 122, 1, 122, 115, 101, 118, 3, 112, 119, 12, 0, 7, 6, 195,
+			179, 0, 3, 115, 0, 7, 6, 195, 182, 0, 3, 110, 0, 7, 6, 195, 186, 0, 4, 1, 104, 2, 103, 111, 109, 3, 40, 0, 1, 104,
+			2, 115, 122, 97, 110, 0, 1, 104, 2, 115, 122, 97, 115, 0, 1, 104, 2, 115, 122, 97, 116, 0, 8, 104, 2, 103, 103, 121, 0, 8,
+			104, 2, 103, 111, 99, 115, 0, 8, 104, 2, 103, 121, 0, 4, 3, 116, 0, 1, 104, 2, 115, 122, 97, 110, 110, 121, 0, 7, 6, 195,
+			188, 0, 3, 111, 0, 116, 116, 2, 18, 66, 3, 111, 47, 0, 116, 116, 3, 111, 47, 12, 0, 116, 116, 114, 3, 111, 47, 52, 0, 116,
+			116, 98, 3, 111, 47, 71, 0, 116, 116, 121, 2, 18, 66, 3, 111, 80, 0, 116, 116, 121, 3, 111, 80, 12, 0, 116, 116, 121, 114, 3,
+			111, 80, 52, 0, 116, 116, 121, 98, 3, 111, 80, 71, 0, 7, 6, 197, 145, 0, 3, 118, 0, 7, 6, 197, 177, 0, 4, 1, 116, 2,
+			122, 105, 106, 195, 161, 116, 195, 169, 107, 3, 111, 0, 8, 116, 2, 110, 106, 195, 182, 110, 0, 8, 116, 2, 110, 195, 169, 115, 0, 3,
+			117, 0, 7, 6, 97, 0, 8, 2, 32, 3, 2, 108, 0, 108, 1, 45, 32, 48, 48, 15, 2, 32, 3, 88, 108, 55, 0, 3, 108, 0,
+			108, 1, 45, 32, 48, 48, 48, 2, 32, 3, 108, 55, 0, 104, 104, 111, 122, 3, 108, 107, 39, 88, 0, 7, 6, 98, 0, 4, 1, 45,
+			98, 3, 0, 1, 45, 98, 98, 3, 0, 4, 3, 71, 0, 98, 2, 18, 66, 0, 98, 2, 45, 18, 66, 0, 4, 2, 45, 98, 3, 71,
+			12, 0, 98, 0, 98, 2, 45, 98, 0, 105, 122, 2, 17, 65, 3, 71, 37, 88, 4, 0, 98, 114, 3, 71, 52, 0, 98, 106, 3, 71,
+			57, 0, 97, 110, 1, 21, 2, 32, 14, 128, 192, 131, 3, 71, 108, 50, 0, 97, 116, 116, 104, 105, 195, 161, 110, 121, 8, 3, 71, 108,
+			80, 12, 114, 67, 37, 0, 101, 110, 1, 21, 2, 32, 14, 128, 128, 131, 3, 71, 109, 50, 0, 105, 101, 100, 101, 114, 109, 101, 105, 101,
+			114, 5, 1, 3, 71, 112, 72, 109, 52, 65, 114, 57, 109, 52, 0, 7, 6, 99, 0, 4, 1, 45, 99, 3, 0, 4, 1, 45, 99, 99,
+			3, 0, 4, 99, 115, 1, 45, 115, 99, 3, 0, 4, 99, 115, 1, 45, 115, 99, 99, 3, 0, 4, 115, 1, 45, 99, 3, 0, 4, 115,
+			1, 45, 115, 99, 3, 0, 115, 1, 45, 115, 99, 99, 3, 0, 107, 5, 1, 8, 111, 116, 115, 2, 104, 111, 108, 109, 3, 49, 0, 4,
+			99, 115, 1, 45, 99, 99, 3, 76, 0, 99, 115, 2, 18, 66, 0, 99, 115, 2, 45, 18, 66, 0, 115, 0, 115, 1, 45, 99, 99, 0,
+			115, 1, 105, 118, 97, 107, 2, 122, 0, 115, 1, 105, 118, 97, 107, 2, 122, 195, 161, 116, 111, 110, 121, 0, 115, 1, 108, 117, 107, 2,
+			122, 195, 182, 114, 103, 0, 115, 1, 108, 182, 195, 109, 188, 195, 121, 103, 2, 122, 115, 0, 115, 1, 110, 105, 108, 105, 98, 2, 122, 195,
+			182, 114, 0, 115, 1, 110, 105, 108, 105, 107, 2, 122, 195, 182, 114, 0, 115, 1, 110, 161, 195, 116, 2, 105, 99, 115, 0, 115, 1, 110,
+			161, 195, 116, 161, 195, 115, 2, 97, 112, 0, 115, 1, 114, 169, 195, 2, 195, 173, 112, 116, 101, 0, 115, 1, 117, 112, 97, 112, 0, 115,
+			1, 161, 195, 116, 114, 97, 107, 2, 122, 195, 161, 112, 111, 0, 4, 99, 115, 3, 76, 12, 0, 99, 115, 2, 45, 99, 99, 115, 0, 99,
+			115, 2, 45, 99, 115, 0, 115, 1, 161, 195, 114, 97, 98, 2, 195, 161, 103, 116, 97, 0, 115, 2, 45, 99, 99, 115, 0, 115, 2, 45,
+			99, 115, 0, 99, 115, 114, 3, 76, 52, 0, 115, 122, 1, 161, 195, 112, 97, 108, 97, 107, 2, 101, 110, 3, 76, 88, 0, 4, 99, 115,
+			2, 45, 115, 122, 3, 76, 89, 0, 115, 2, 45, 115, 122, 0, 115, 122, 115, 3, 76, 90, 0, 4, 3, 119, 0, 1, 97, 108, 97, 109,
+			2, 115, 195, 161, 0, 1, 97, 108, 97, 109, 2, 115, 195, 188, 108, 0, 1, 97, 122, 97, 108, 0, 1, 101, 114, 101, 112, 2, 99, 115,
+			0, 1, 101, 114, 101, 112, 2, 115, 195, 188, 116, 0, 1, 108, 105, 102, 2, 99, 115, 105, 122, 0, 1, 108, 111, 112, 2, 115, 111, 0,
+			1, 108, 111, 121, 110, 2, 115, 101, 98, 0, 1, 110, 97, 104, 117, 115, 0, 1, 110, 101, 99, 105, 108, 2, 115, 195, 169, 114, 116, 195,
+			169, 115, 0, 1, 110, 101, 108, 105, 107, 2, 99, 115, 97, 116, 111, 114, 110, 0, 1, 110, 101, 108, 105, 107, 2, 115, 99, 104, 105, 108,
+			108, 0, 1, 110, 101, 108, 105, 107, 2, 115, 195, 161, 118, 0, 1, 110, 101, 121, 103, 101, 102, 0, 1, 110, 101, 121, 110, 173, 195, 2,
+			115, 195, 169, 103, 0, 1, 110, 105, 114, 101, 103, 0, 1, 110, 111, 98, 97, 114, 97, 103, 2, 115, 101, 114, 0, 1, 110, 111, 103, 114,
+			97, 121, 110, 2, 99, 115, 0, 1, 110, 111, 114, 97, 118, 100, 117, 2, 115, 101, 114, 0, 1, 110, 161, 195, 108, 2, 99, 115, 0, 1,
+			110, 161, 195, 116, 2, 99, 115, 0, 1, 110, 161, 195, 116, 2, 115, 0, 1, 110, 182, 195, 108, 188, 195, 107, 2, 115, 195, 169, 0, 1,
+			111, 98, 114, 161, 195, 2, 99, 115, 195, 186, 99, 115, 0, 1, 111, 98, 114, 161, 195, 2, 115, 117, 100, 0, 1, 111, 122, 115, 2, 115,
+			101, 103, 195, 169, 108, 121, 0, 1, 114, 97, 2, 99, 115, 111, 110, 0, 1, 114, 97, 100, 117, 107, 2, 115, 111, 114, 111, 122, 97, 116,
+			0, 1, 114, 97, 104, 2, 99, 115, 101, 108, 101, 107, 0, 1, 114, 97, 104, 2, 99, 115, 111, 112, 111, 114, 116, 0, 1, 114, 101, 110,
+			2, 115, 116, 195, 179, 108, 97, 0, 1, 114, 111, 112, 2, 115, 122, 0, 1, 114, 111, 112, 2, 115, 195, 169, 0, 1, 114, 169, 195, 2,
+			115, 111, 100, 114, 0, 1, 114, 169, 195, 98, 2, 99, 115, 117, 116, 0, 1, 114, 169, 195, 98, 2, 115, 195, 188, 118, 101, 103, 0, 1,
+			161, 195, 112, 2, 115, 195, 179, 0, 1, 169, 195, 116, 105, 110, 97, 122, 115, 2, 99, 115, 0, 1, 179, 195, 98, 114, 161, 195, 2, 99,
+			115, 195, 186, 99, 115, 0, 1, 179, 195, 104, 111, 98, 2, 115, 97, 112, 107, 0, 1, 179, 195, 104, 111, 98, 2, 115, 105, 112, 107, 0,
+			1, 179, 195, 108, 97, 116, 114, 97, 109, 0, 1, 179, 195, 114, 107, 111, 112, 2, 99, 115, 0, 8, 97, 105, 112, 2, 99, 115, 97, 114,
+			110, 111, 107, 0, 8, 97, 108, 97, 109, 2, 115, 105, 118, 195, 173, 116, 0, 8, 101, 103, 101, 106, 0, 8, 108, 105, 102, 2, 99, 115,
+			195, 173, 107, 0, 8, 108, 111, 112, 2, 99, 115, 97, 116, 0, 8, 110, 97, 98, 97, 108, 0, 8, 110, 101, 106, 169, 195, 107, 0, 8,
+			110, 101, 108, 105, 107, 2, 99, 115, 111, 109, 195, 179, 0, 8, 110, 101, 108, 105, 107, 2, 99, 115, 195, 182, 118, 0, 8, 110, 105, 114,
+			112, 2, 115, 195, 169, 103, 0, 8, 110, 111, 103, 114, 105, 118, 2, 115, 195, 161, 103, 0, 8, 110, 111, 106, 186, 195, 0, 8, 110, 169,
+			195, 109, 108, 101, 2, 115, 195, 169, 103, 0, 8, 114, 97, 2, 115, 101, 98, 0, 8, 114, 97, 2, 115, 195, 169, 114, 195, 188, 108, 0,
+			8, 114, 101, 110, 2, 115, 116, 195, 179, 108, 195, 161, 0, 8, 114, 169, 195, 2, 99, 115, 0, 8, 114, 169, 195, 2, 115, 97, 108, 97,
+			107, 0, 8, 114, 169, 195, 2, 115, 97, 115, 0, 8, 114, 169, 195, 2, 115, 101, 108, 121, 0, 8, 114, 169, 195, 2, 115, 105, 115, 97,
+			107, 0, 8, 114, 169, 195, 2, 115, 195, 173, 112, 0, 8, 117, 114, 117, 107, 0, 8, 161, 195, 107, 97, 2, 115, 195, 182, 118, 0, 8,
+			161, 195, 107, 161, 195, 2, 115, 195, 182, 118, 0, 8, 161, 195, 114, 2, 115, 195, 161, 103, 0, 8, 169, 195, 108, 106, 101, 102, 0, 8,
+			179, 195, 104, 111, 98, 2, 115, 122, 0, 8, 179, 195, 107, 2, 99, 115, 111, 109, 195, 179, 0, 8, 179, 195, 108, 97, 112, 2, 115, 195,
+			161, 103, 0, 99, 2, 18, 66, 0, 99, 2, 45, 18, 66, 0, 99, 2, 45, 99, 99, 115, 0, 99, 2, 45, 99, 115, 0, 99, 8, 105,
+			118, 2, 115, 111, 114, 0, 122, 1, 19, 0, 122, 8, 110, 105, 2, 195, 169, 100, 0, 4, 2, 45, 99, 3, 119, 12, 0, 99, 0, 99,
+			2, 45, 99, 0, 99, 114, 3, 119, 52, 0, 4, 2, 45, 99, 115, 3, 119, 76, 0, 99, 115, 1, 110, 101, 99, 105, 108, 0, 115, 122,
+			3, 119, 89, 0, 115, 8, 179, 195, 104, 111, 98, 3, 119, 91, 0, 115, 111, 114, 8, 114, 97, 104, 3, 119, 91, 39, 52, 0, 7, 6,
+			100, 0, 4, 1, 45, 100, 3, 0, 4, 1, 45, 100, 100, 3, 0, 1, 114, 111, 107, 101, 114, 2, 115, 101, 98, 101, 115, 115, 195, 169,
+			103, 3, 0, 116, 1, 122, 101, 107, 3, 47, 0, 4, 116, 3, 47, 12, 0, 116, 2, 115, 122, 0, 116, 116, 0, 116, 116, 1, 101, 108,
+			108, 188, 195, 102, 2, 195, 169, 0, 116, 115, 122, 195, 169, 3, 47, 12, 89, 113, 0, 110, 121, 1, 110, 105, 109, 3, 67, 0, 4, 3,
+			72, 0, 1, 97, 98, 97, 122, 115, 2, 106, 101, 103, 0, 1, 97, 98, 97, 122, 115, 2, 115, 116, 114, 97, 110, 100, 0, 1, 97, 98,
+			97, 122, 115, 2, 115, 122, 101, 108, 108, 101, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 101, 110, 116, 0, 1, 97, 98, 97, 122, 115,
+			2, 115, 122, 101, 114, 101, 108, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 111, 102, 116, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122,
+			111, 109, 98, 97, 116, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 195, 161, 106, 195, 186, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122,
+			195, 161, 108, 108, 195, 161, 115, 0, 1, 97, 98, 97, 122, 115, 2, 115, 122, 195, 179, 108, 0, 1, 97, 104, 2, 106, 195, 161, 114, 97,
+			116, 0, 1, 97, 104, 2, 115, 101, 103, 195, 169, 100, 0, 1, 97, 104, 2, 115, 111, 114, 0, 1, 97, 104, 2, 115, 122, 101, 114, 116,
+			195, 161, 0, 1, 97, 104, 2, 115, 122, 105, 110, 0, 1, 97, 104, 145, 197, 102, 2, 115, 101, 103, 195, 169, 100, 0, 1, 97, 109, 114,
+			97, 104, 2, 115, 111, 114, 0, 1, 97, 109, 114, 97, 104, 2, 115, 122, 105, 110, 116, 0, 1, 97, 109, 114, 97, 104, 2, 115, 122, 195,
+			161, 122, 0, 1, 97, 112, 2, 115, 111, 114, 0, 1, 97, 112, 2, 115, 122, 101, 114, 197, 177, 0, 1, 97, 112, 2, 115, 122, 197, 145,
+			110, 121, 0, 1, 97, 118, 2, 115, 122, 101, 100, 101, 114, 0, 1, 97, 118, 2, 115, 122, 101, 103, 102, 0, 1, 97, 118, 2, 115, 122,
+			101, 114, 197, 177, 0, 1, 97, 118, 2, 115, 122, 105, 108, 118, 0, 1, 97, 118, 2, 115, 122, 116, 114, 195, 161, 106, 107, 0, 1, 97,
+			118, 2, 115, 122, 195, 179, 106, 0, 1, 97, 118, 2, 115, 122, 197, 145, 0, 1, 97, 118, 2, 115, 195, 161, 102, 114, 0, 1, 97, 122,
+			161, 195, 122, 115, 2, 115, 122, 101, 109, 108, 101, 0, 1, 97, 122, 161, 195, 122, 115, 2, 115, 122, 105, 110, 116, 0, 1, 97, 122, 161,
+			195, 122, 115, 2, 115, 122, 195, 161, 109, 0, 1, 101, 101, 119, 116, 2, 115, 97, 112, 107, 0, 1, 101, 101, 119, 116, 2, 115, 122, 195,
+			182, 118, 101, 116, 0, 1, 101, 114, 122, 101, 2, 115, 101, 103, 195, 169, 0, 1, 101, 114, 122, 101, 2, 115, 122, 101, 109, 0, 1, 101,
+			114, 122, 101, 2, 115, 122, 101, 114, 116, 101, 0, 1, 101, 114, 122, 101, 2, 115, 122, 105, 110, 0, 1, 101, 114, 122, 101, 2, 115, 122,
+			195, 161, 0, 1, 101, 114, 122, 101, 2, 122, 195, 161, 115, 122, 108, 0, 1, 101, 121, 103, 101, 110, 2, 115, 122, 195, 161, 122, 0, 1,
+			101, 121, 103, 101, 110, 2, 115, 122, 195, 169, 108, 0, 1, 101, 122, 105, 116, 2, 115, 122, 195, 161, 109, 0, 1, 101, 122, 105, 116, 2,
+			115, 122, 195, 161, 122, 0, 1, 103, 97, 114, 97, 109, 115, 2, 115, 122, 195, 173, 110, 0, 1, 105, 118, 182, 195, 114, 2, 115, 111, 114,
+			111, 122, 0, 1, 105, 118, 182, 195, 114, 2, 122, 195, 161, 114, 0, 1, 105, 118, 182, 195, 114, 2, 122, 195, 161, 114, 108, 97, 116, 0,
+			1, 106, 97, 102, 2, 116, 121, 195, 186, 107, 0, 1, 108, 111, 98, 111, 107, 2, 115, 122, 195, 182, 103, 0, 1, 108, 111, 104, 2, 115,
+			195, 188, 0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 103, 195, 169, 108, 121, 0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 114, 107, 101,
+			0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 114, 122, 195, 169, 0, 1, 108, 182, 195, 102, 2, 115, 122, 101, 114, 197, 177, 0, 1, 108,
+			182, 195, 102, 2, 115, 122, 111, 114, 111, 115, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 173, 110, 101, 107, 0, 1, 108, 182, 195, 102,
+			2, 115, 122, 195, 173, 110, 195, 169, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 173, 110, 197, 177, 0, 1, 108, 182, 195, 102, 2, 115,
+			122, 195, 182, 107, 197, 145, 0, 1, 108, 182, 195, 102, 2, 115, 122, 195, 188, 114, 107, 0, 1, 108, 182, 195, 102, 2, 115, 195, 161, 110,
+			99, 0, 1, 108, 182, 195, 102, 2, 115, 195, 161, 118, 0, 1, 108, 182, 195, 122, 2, 115, 97, 112, 107, 0, 1, 108, 182, 195, 122, 2,
+			115, 122, 101, 109, 0, 1, 108, 182, 195, 122, 2, 115, 122, 195, 173, 110, 0, 1, 108, 182, 195, 122, 2, 115, 195, 161, 118, 0, 1, 110,
+			97, 108, 97, 107, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 110, 97, 108, 97, 107, 2, 115, 122, 101, 114, 0, 1, 110, 97, 108, 97,
+			107, 2, 115, 122, 101, 114, 101, 112, 0, 1, 110, 97, 114, 116, 115, 2, 115, 122, 101, 122, 111, 110, 0, 1, 110, 101, 114, 2, 115, 122,
+			97, 0, 1, 110, 101, 114, 2, 115, 122, 101, 114, 101, 116, 197, 145, 0, 1, 110, 101, 114, 2, 122, 97, 118, 97, 114, 0, 1, 110, 101,
+			115, 99, 2, 115, 195, 169, 114, 116, 195, 169, 115, 0, 1, 110, 105, 109, 2, 106, 111, 98, 98, 97, 110, 0, 1, 111, 115, 114, 111, 98,
+			2, 115, 122, 0, 1, 111, 115, 161, 195, 109, 2, 115, 111, 114, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 97, 107, 195, 161, 0, 1,
+			111, 115, 161, 195, 109, 2, 115, 122, 101, 114, 101, 112, 0, 1, 111, 115, 161, 195, 109, 2, 115, 122, 105, 110, 0, 1, 111, 115, 161, 195,
+			109, 2, 115, 122, 195, 188, 108, 195, 182, 116, 116, 0, 1, 114, 97, 100, 110, 97, 116, 115, 2, 106, 101, 103, 121, 0, 1, 114, 97, 107,
+			2, 115, 117, 0, 1, 114, 97, 107, 2, 115, 122, 101, 114, 197, 177, 0, 1, 114, 97, 107, 2, 115, 122, 195, 173, 106, 0, 1, 114, 111,
+			102, 2, 106, 195, 161, 110, 111, 115, 0, 1, 114, 111, 104, 2, 115, 122, 195, 169, 107, 0, 1, 114, 111, 104, 2, 115, 122, 195, 173, 0,
+			1, 114, 111, 106, 102, 2, 115, 122, 101, 114, 197, 177, 0, 1, 114, 111, 107, 101, 114, 2, 115, 101, 98, 101, 115, 115, 195, 169, 103, 0,
+			1, 114, 111, 107, 101, 114, 2, 115, 117, 103, 195, 161, 114, 0, 1, 114, 111, 107, 101, 114, 2, 115, 122, 101, 114, 107, 101, 122, 0, 1,
+			114, 111, 107, 101, 114, 2, 115, 122, 105, 110, 116, 0, 1, 114, 161, 195, 105, 108, 105, 109, 2, 115, 122, 111, 114, 0, 1, 114, 161, 195,
+			122, 97, 104, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 114, 161, 195, 122, 110, 97, 109, 2, 115, 122, 111, 98, 0, 1, 114, 169, 195,
+			116, 2, 115, 122, 111, 107, 110, 121, 0, 1, 114, 169, 195, 116, 2, 115, 122, 195, 173, 106, 0, 1, 114, 169, 195, 116, 2, 115, 195, 169,
+			114, 195, 188, 108, 0, 1, 145, 197, 114, 101, 2, 115, 122, 101, 114, 197, 177, 0, 1, 161, 195, 108, 97, 115, 99, 2, 106, 111, 103, 0,
+			1, 161, 195, 108, 97, 115, 99, 2, 115, 101, 103, 195, 173, 116, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115, 122, 101, 114, 101, 116, 197,
+			145, 0, 1, 161, 195, 108, 97, 115, 99, 2, 115, 122, 111, 99, 105, 111, 108, 0, 1, 161, 195, 110, 0, 1, 161, 195, 110, 2, 115, 117,
+			104, 111, 103, 0, 1, 161, 195, 110, 2, 115, 122, 101, 114, 100, 0, 1, 161, 195, 110, 2, 115, 122, 105, 108, 195, 161, 110, 0, 1, 161,
+			195, 110, 2, 115, 122, 195, 169, 107, 0, 1, 161, 195, 110, 2, 115, 122, 195, 182, 118, 101, 0, 1, 161, 195, 110, 2, 115, 122, 197, 145,
+			110, 121, 101, 0, 1, 161, 195, 110, 2, 115, 195, 173, 112, 0, 1, 161, 195, 110, 114, 101, 104, 2, 115, 122, 0, 1, 161, 195, 112, 114,
+			161, 195, 2, 115, 195, 161, 118, 0, 1, 161, 195, 112, 114, 161, 195, 2, 115, 195, 161, 118, 0, 1, 161, 195, 112, 114, 161, 195, 2, 122,
+			195, 161, 115, 122, 108, 195, 179, 0, 1, 161, 195, 118, 2, 115, 122, 195, 179, 122, 97, 0, 1, 161, 195, 122, 115, 105, 108, 97, 112, 2,
+			115, 111, 114, 0, 1, 169, 195, 98, 101, 2, 106, 101, 103, 0, 1, 169, 195, 108, 101, 115, 99, 2, 115, 111, 0, 1, 169, 195, 118, 2,
+			106, 101, 103, 121, 0, 1, 169, 195, 118, 110, 111, 104, 2, 115, 101, 114, 101, 103, 0, 1, 169, 195, 118, 121, 103, 188, 195, 2, 106, 101,
+			108, 0, 1, 169, 195, 122, 115, 101, 98, 2, 106, 97, 118, 195, 173, 116, 0, 1, 169, 195, 122, 115, 101, 98, 2, 106, 101, 108, 0, 1,
+			169, 195, 122, 115, 101, 98, 2, 115, 101, 98, 101, 115, 115, 195, 169, 103, 0, 1, 169, 195, 122, 115, 101, 98, 2, 115, 116, 195, 173, 108,
+			117, 115, 0, 1, 169, 195, 122, 115, 101, 98, 2, 115, 122, 105, 110, 0, 1, 169, 195, 122, 115, 101, 98, 2, 122, 97, 103, 121, 0, 1,
+			169, 195, 122, 115, 109, 111, 122, 115, 2, 115, 111, 114, 0, 1, 173, 195, 104, 2, 115, 122, 101, 114, 0, 1, 173, 195, 104, 2, 115, 122,
+			101, 114, 107, 101, 122, 101, 116, 0, 1, 179, 195, 104, 2, 115, 122, 197, 145, 114, 0, 1, 179, 195, 106, 2, 115, 122, 105, 118, 195, 161,
+			114, 0, 1, 179, 195, 107, 2, 106, 101, 108, 0, 1, 179, 195, 107, 2, 115, 111, 114, 0, 1, 179, 195, 107, 2, 115, 122, 101, 114, 107,
+			101, 0, 1, 179, 195, 107, 2, 115, 122, 195, 179, 0, 1, 179, 195, 109, 2, 106, 97, 118, 97, 115, 108, 97, 116, 0, 1, 179, 195, 109,
+			2, 115, 111, 114, 0, 1, 179, 195, 114, 112, 97, 2, 115, 122, 0, 1, 179, 195, 116, 97, 107, 2, 115, 117, 103, 195, 161, 114, 0, 1,
+			179, 195, 116, 117, 2, 106, 101, 108, 195, 182, 108, 0, 1, 179, 195, 116, 117, 2, 115, 122, 101, 114, 118, 0, 1, 179, 195, 122, 105, 112,
+			101, 2, 115, 122, 101, 114, 0, 1, 179, 195, 122, 105, 112, 101, 2, 115, 122, 101, 114, 101, 112, 0, 1, 182, 195, 107, 2, 115, 122, 105,
+			114, 195, 169, 110, 0, 1, 182, 195, 107, 2, 115, 122, 105, 116, 195, 161, 108, 195, 161, 115, 0, 1, 182, 195, 116, 182, 195, 2, 115, 122,
+			195, 188, 108, 195, 182, 0, 1, 186, 195, 108, 2, 122, 115, 195, 173, 114, 0, 8, 97, 104, 2, 106, 195, 161, 116, 195, 169, 107, 0, 8,
+			97, 104, 2, 115, 122, 101, 114, 0, 8, 97, 104, 2, 115, 122, 195, 161, 108, 108, 0, 8, 97, 109, 114, 97, 104, 2, 115, 122, 195, 188,
+			108, 0, 8, 97, 118, 2, 115, 122, 97, 103, 0, 8, 97, 118, 2, 115, 122, 97, 109, 0, 8, 97, 118, 2, 115, 122, 195, 161, 114, 110,
+			121, 0, 8, 103, 97, 114, 97, 109, 115, 2, 115, 122, 0, 8, 108, 111, 104, 2, 115, 97, 114, 108, 195, 179, 0, 8, 108, 182, 195, 102,
+			2, 115, 122, 101, 108, 108, 101, 0, 8, 108, 182, 195, 102, 2, 115, 122, 101, 114, 122, 0, 8, 108, 182, 195, 102, 2, 115, 122, 105, 103,
+			101, 116, 0, 8, 108, 182, 195, 102, 2, 115, 122, 117, 114, 111, 107, 0, 8, 108, 182, 195, 102, 2, 115, 122, 195, 173, 110, 0, 8, 108,
+			182, 195, 102, 2, 115, 122, 195, 188, 108, 116, 0, 8, 110, 101, 114, 2, 106, 101, 108, 0, 8, 110, 111, 103, 2, 115, 122, 101, 114, 0,
+			8, 114, 97, 107, 2, 115, 122, 195, 186, 114, 0, 8, 114, 111, 104, 2, 115, 122, 101, 107, 0, 8, 114, 161, 195, 105, 108, 105, 98, 2,
+			115, 122, 111, 0, 8, 114, 169, 195, 116, 2, 122, 115, 101, 98, 0, 8, 122, 188, 195, 107, 2, 115, 122, 101, 108, 108, 0, 8, 161, 195,
+			110, 2, 115, 195, 182, 118, 0, 8, 161, 195, 114, 2, 115, 195, 179, 122, 0, 8, 179, 195, 107, 2, 115, 122, 111, 98, 0, 8, 182, 195,
+			107, 2, 115, 122, 101, 114, 197, 177, 0, 8, 182, 195, 107, 2, 115, 122, 195, 188, 114, 107, 0, 8, 186, 195, 108, 2, 115, 122, 111, 107,
+			195, 161, 115, 0, 100, 1, 97, 104, 2, 32, 14, 128, 128, 130, 0, 100, 2, 18, 66, 0, 100, 2, 45, 18, 66, 0, 4, 2, 45, 100,
+			3, 72, 12, 0, 100, 0, 100, 1, 161, 195, 110, 0, 100, 2, 45, 100, 0, 111, 98, 101, 114, 109, 97, 110, 110, 3, 72, 39, 71, 12,
+			109, 52, 65, 108, 50, 0, 100, 114, 3, 72, 52, 0, 100, 98, 3, 72, 71, 0, 122, 1, 101, 101, 119, 116, 2, 97, 107, 3, 72, 88,
+			0, 4, 115, 122, 1, 97, 2, 195, 173, 3, 72, 89, 0, 115, 122, 1, 101, 101, 119, 116, 2, 111, 107, 0, 115, 122, 1, 110, 101, 114,
+			2, 101, 114, 105, 110, 116, 0, 115, 122, 1, 110, 101, 114, 116, 101, 110, 101, 109, 2, 101, 114, 197, 177, 0, 115, 122, 1, 169, 195, 0,
+			115, 122, 2, 97, 0, 115, 122, 2, 195, 161, 0, 115, 122, 8, 110, 101, 114, 2, 101, 114, 101, 116, 101, 116, 0, 195, 188, 104, 116, 197,
+			145, 108, 3, 72, 111, 47, 118, 55, 0, 195, 188, 104, 98, 101, 3, 72, 111, 71, 109, 0, 195, 188, 104, 118, 101, 108, 3, 72, 111, 84,
+			109, 55, 0, 105, 101, 115, 101, 108, 5, 1, 3, 72, 112, 88, 109, 55, 0, 4, 100, 122, 115, 2, 18, 66, 3, 75, 0, 100, 122, 115,
+			2, 45, 18, 66, 0, 4, 100, 122, 115, 1, 105, 114, 98, 2, 101, 108, 3, 75, 12, 0, 122, 115, 1, 111, 98, 109, 97, 107, 0, 4,
+			115, 1, 17, 67, 3, 76, 0, 115, 2, 17, 67, 0, 4, 115, 1, 17, 65, 2, 17, 65, 3, 76, 12, 0, 115, 1, 169, 195, 108, 101,
+			115, 99, 2, 195, 169, 103, 0, 116, 115, 0, 106, 1, 17, 67, 3, 79, 0, 4, 106, 3, 79, 12, 0, 106, 1, 17, 65, 2, 17, 65,
+			0, 4, 115, 122, 3, 119, 0, 115, 122, 1, 110, 101, 114, 2, 101, 114, 105, 110, 116, 101, 103, 114, 195, 161, 99, 105, 195, 179, 0, 115,
+			122, 2, 17, 67, 0, 115, 122, 8, 110, 111, 109, 2, 97, 0, 4, 115, 122, 1, 97, 2, 17, 65, 3, 119, 12, 0, 115, 122, 1, 101,
+			2, 17, 65, 0, 115, 122, 1, 111, 2, 17, 65, 0, 115, 122, 1, 179, 195, 0, 115, 122, 1, 182, 195, 116, 182, 195, 2, 195, 182, 114,
+			0, 115, 122, 2, 32, 14, 128, 128, 131, 0, 100, 122, 2, 18, 66, 3, 120, 0, 7, 6, 101, 0, 108, 1, 45, 32, 48, 48, 48, 2,
+			32, 3, 51, 109, 55, 0, 3, 109, 0, 108, 1, 45, 32, 48, 48, 48, 48, 48, 48, 2, 32, 3, 109, 55, 0, 103, 121, 101, 122, 115,
+			195, 169, 103, 8, 3, 109, 79, 12, 109, 91, 91, 113, 81, 0, 103, 121, 101, 122, 115, 195, 169, 103, 103, 8, 3, 109, 79, 12, 109, 91,
+			91, 113, 81, 12, 0, 104, 104, 101, 122, 8, 3, 109, 107, 109, 88, 0, 7, 6, 102, 0, 4, 3, 83, 0, 102, 1, 97, 2, 195, 169,
+			108, 0, 102, 1, 101, 2, 97, 106, 116, 0, 102, 1, 101, 2, 195, 169, 108, 0, 102, 2, 18, 66, 0, 102, 2, 45, 18, 66, 0, 102,
+			114, 3, 83, 52, 0, 102, 98, 3, 83, 71, 0, 195, 188, 104, 114, 101, 114, 5, 1, 3, 83, 117, 52, 109, 52, 0, 7, 6, 103, 0,
+			4, 1, 45, 103, 3, 0, 4, 121, 1, 45, 103, 3, 0, 4, 121, 1, 45, 103, 103, 3, 0, 121, 1, 45, 121, 103, 3, 0, 107, 3,
+			49, 12, 0, 104, 1, 169, 195, 2, 97, 106, 108, 97, 3, 49, 107, 0, 4, 103, 121, 1, 101, 109, 2, 18, 66, 3, 79, 0, 103, 121,
+			1, 101, 109, 2, 45, 18, 66, 0, 103, 121, 1, 101, 109, 2, 109, 97, 103, 0, 103, 121, 2, 18, 66, 0, 103, 121, 2, 45, 18, 66,
+			0, 4, 103, 121, 3, 79, 12, 0, 103, 121, 1, 101, 108, 101, 2, 195, 169, 0, 103, 121, 1, 101, 109, 2, 32, 14, 128, 128, 131, 0,
+			103, 121, 1, 101, 109, 2, 45, 103, 121, 0, 103, 121, 1, 101, 109, 2, 101, 108, 0, 103, 121, 1, 101, 109, 2, 101, 109, 0, 103, 121,
+			1, 101, 109, 2, 101, 115, 0, 103, 121, 1, 101, 109, 2, 101, 116, 0, 103, 121, 1, 101, 109, 2, 195, 173, 122, 0, 103, 121, 8, 101,
+			109, 2, 101, 110, 32, 0, 103, 121, 106, 1, 111, 114, 2, 195, 169, 107, 0, 121, 2, 45, 103, 121, 0, 4, 103, 121, 114, 3, 79, 52,
+			0, 103, 121, 114, 1, 101, 109, 0, 4, 103, 121, 98, 3, 79, 71, 0, 103, 121, 98, 1, 101, 109, 0, 4, 3, 81, 0, 1, 97, 116,
+			2, 103, 121, 197, 177, 108, 0, 1, 97, 121, 108, 179, 195, 104, 2, 103, 121, 117, 108, 0, 1, 97, 121, 110, 97, 2, 103, 121, 195, 161,
+			114, 0, 1, 97, 121, 110, 97, 2, 103, 121, 197, 145, 122, 0, 1, 97, 121, 110, 97, 2, 103, 121, 197, 177, 106, 116, 0, 1, 97, 121,
+			110, 97, 105, 100, 97, 104, 2, 103, 121, 195, 161, 114, 0, 1, 101, 100, 105, 2, 103, 121, 0, 1, 101, 108, 2, 103, 121, 0, 1, 101,
+			109, 2, 103, 121, 0, 1, 101, 114, 101, 115, 2, 103, 121, 197, 177, 106, 0, 1, 101, 114, 101, 121, 110, 2, 103, 121, 0, 1, 101, 114,
+			169, 195, 109, 2, 103, 121, 0, 1, 101, 114, 188, 195, 99, 114, 97, 2, 103, 121, 117, 108, 108, 97, 100, 195, 161, 115, 0, 1, 101, 116,
+			101, 98, 2, 103, 121, 195, 179, 103, 121, 195, 161, 115, 122, 0, 1, 101, 118, 182, 195, 122, 115, 2, 103, 121, 197, 177, 106, 116, 0, 1,
+			101, 118, 188, 195, 2, 103, 121, 0, 1, 101, 121, 108, 169, 195, 98, 2, 103, 121, 197, 177, 106, 116, 0, 1, 105, 103, 169, 195, 118, 2,
+			103, 121, 97, 0, 1, 105, 103, 169, 195, 118, 2, 103, 121, 195, 182, 0, 1, 110, 97, 104, 2, 103, 121, 97, 107, 111, 114, 0, 1, 110,
+			117, 108, 112, 117, 107, 2, 103, 121, 195, 161, 114, 0, 1, 111, 100, 161, 195, 98, 2, 103, 121, 0, 1, 111, 102, 2, 103, 121, 97, 108,
+			117, 0, 1, 111, 102, 2, 103, 121, 195, 182, 0, 1, 111, 102, 2, 103, 121, 197, 177, 114, 197, 177, 0, 1, 111, 106, 2, 103, 121, 97,
+			107, 111, 114, 0, 1, 111, 108, 161, 195, 122, 2, 103, 121, 0, 1, 111, 114, 100, 2, 103, 121, 97, 110, 195, 186, 0, 1, 111, 114, 112,
+			2, 103, 121, 97, 107, 0, 1, 161, 195, 108, 105, 118, 2, 103, 121, 0, 1, 161, 195, 108, 105, 118, 2, 103, 121, 197, 177, 108, 195, 182,
+			108, 0, 1, 161, 195, 114, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161, 195, 114, 105, 118, 2, 103, 121, 0, 1, 161, 195, 115, 97, 107,
+			116, 105, 114, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161, 195, 115, 100, 161, 195, 109, 105, 2, 103, 121, 197, 177, 106, 116, 0, 1, 161,
+			195, 115, 115, 111, 103, 161, 195, 108, 105, 118, 2, 103, 121, 0, 1, 161, 195, 122, 115, 114, 111, 2, 103, 121, 97, 114, 97, 112, 111, 100,
+			0, 1, 161, 195, 122, 115, 114, 111, 2, 103, 121, 197, 177, 108, 195, 169, 115, 0, 1, 169, 195, 100, 110, 101, 118, 2, 103, 121, 0, 1,
+			169, 195, 106, 177, 197, 109, 2, 103, 121, 195, 161, 114, 0, 1, 169, 195, 108, 2, 103, 121, 195, 182, 107, 0, 1, 169, 195, 115, 101, 108,
+			101, 2, 103, 121, 0, 1, 169, 195, 115, 105, 103, 169, 195, 114, 2, 103, 121, 197, 177, 106, 116, 0, 1, 169, 195, 115, 108, 101, 102, 2,
+			103, 121, 0, 1, 169, 195, 115, 115, 101, 108, 101, 116, 182, 195, 107, 2, 103, 121, 97, 107, 0, 1, 169, 195, 115, 116, 110, 101, 122, 115,
+			2, 103, 121, 0, 1, 182, 195, 100, 2, 103, 121, 97, 112, 106, 195, 186, 0, 1, 182, 195, 122, 115, 2, 103, 121, 195, 161, 114, 0, 8,
+			97, 121, 103, 97, 2, 103, 121, 0, 8, 110, 161, 195, 108, 2, 103, 121, 0, 8, 111, 108, 2, 103, 121, 197, 177, 106, 116, 0, 8, 169,
+			195, 106, 2, 103, 121, 195, 161, 114, 0, 8, 169, 195, 115, 101, 108, 101, 102, 2, 103, 121, 105, 108, 107, 111, 115, 0, 103, 1, 117, 103,
+			2, 111, 108, 0, 103, 2, 18, 66, 0, 103, 2, 45, 18, 66, 0, 4, 2, 45, 103, 3, 81, 12, 0, 103, 0, 103, 1, 101, 108, 2,
+			114, 111, 116, 101, 115, 122, 107, 0, 103, 114, 3, 81, 52, 0, 103, 98, 3, 81, 71, 0, 4, 2, 45, 103, 121, 3, 81, 79, 0, 103,
+			2, 45, 103, 121, 0, 111, 101, 116, 104, 5, 1, 8, 3, 81, 118, 47, 109, 0, 7, 6, 104, 0, 4, 1, 101, 115, 99, 2, 98, 195,
+			161, 110, 121, 97, 3, 0, 4, 8, 101, 115, 99, 2, 111, 114, 115, 122, 195, 161, 103, 3, 0, 4, 8, 101, 115, 99, 2, 115, 122, 108,
+			111, 118, 195, 161, 107, 3, 0, 4, 8, 117, 106, 2, 107, 111, 108, 98, 3, 0, 4, 8, 117, 106, 2, 115, 97, 106, 116, 3, 0, 4,
+			8, 117, 106, 2, 115, 122, 195, 161, 114, 110, 121, 195, 169, 107, 3, 0, 8, 117, 106, 2, 116, 101, 110, 121, 195, 169, 115, 122, 3, 0,
+			4, 3, 107, 0, 104, 1, 101, 100, 110, 105, 109, 2, 101, 122, 0, 104, 2, 45, 18, 66, 0, 101, 114, 116, 122, 3, 107, 109, 52, 119,
+			0, 7, 6, 105, 0, 4, 3, 37, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 103, 1, 21, 2, 32, 14, 128, 128, 130, 3, 37, 81,
+			0, 104, 111, 122, 1, 21, 2, 32, 14, 128, 192, 132, 3, 37, 107, 39, 88, 0, 7, 6, 106, 0, 4, 3, 57, 0, 106, 2, 18, 66,
+			0, 106, 2, 45, 18, 66, 0, 106, 114, 3, 57, 52, 0, 106, 98, 3, 57, 71, 0, 97, 118, 195, 173, 116, 115, 8, 3, 57, 108, 84,
+			112, 76, 12, 0, 97, 118, 195, 173, 116, 115, 100, 8, 3, 57, 108, 84, 112, 76, 72, 0, 195, 169, 105, 103, 1, 21, 2, 32, 14, 128,
+			128, 132, 3, 57, 113, 37, 81, 0, 195, 169, 116, 197, 145, 108, 1, 21, 2, 32, 14, 128, 128, 133, 3, 57, 113, 47, 118, 55, 0, 195,
+			169, 110, 101, 107, 1, 21, 2, 32, 14, 128, 128, 133, 3, 57, 113, 50, 109, 49, 0, 195, 169, 114, 101, 1, 21, 2, 32, 14, 128, 128,
+			132, 3, 57, 113, 52, 109, 0, 195, 169, 118, 101, 108, 1, 21, 2, 32, 14, 128, 128, 133, 3, 57, 113, 84, 109, 55, 0, 195, 161, 105,
+			103, 1, 21, 2, 32, 14, 128, 192, 132, 3, 57, 114, 37, 81, 0, 195, 161, 116, 195, 179, 108, 1, 21, 2, 32, 14, 128, 192, 133, 3,
+			57, 114, 47, 115, 55, 0, 195, 161, 110, 97, 107, 1, 21, 2, 32, 14, 128, 192, 133, 3, 57, 114, 50, 108, 49, 0, 195, 161, 114, 97,
+			1, 21, 2, 32, 14, 128, 192, 132, 3, 57, 114, 52, 108, 0, 195, 161, 98, 97, 110, 1, 21, 2, 32, 14, 128, 192, 133, 3, 57, 114,
+			71, 108, 50, 0, 195, 161, 118, 97, 108, 1, 21, 2, 32, 14, 128, 192, 133, 3, 57, 114, 84, 108, 55, 0, 7, 6, 107, 0, 4, 1,
+			45, 107, 3, 0, 1, 45, 107, 107, 3, 0, 4, 3, 49, 0, 107, 2, 18, 66, 0, 107, 2, 45, 18, 66, 0, 195, 182, 122, 116, 195,
+			161, 114, 115, 97, 115, 195, 161, 103, 8, 3, 49, 6, 110, 89, 47, 114, 52, 91, 108, 91, 114, 81, 0, 195, 182, 122, 116, 195, 161, 114,
+			115, 97, 115, 195, 161, 103, 103, 8, 3, 49, 6, 110, 89, 47, 114, 52, 91, 108, 91, 114, 81, 12, 0, 4, 2, 45, 107, 3, 49, 12,
+			0, 107, 0, 107, 2, 17, 67, 0, 107, 2, 45, 107, 0, 107, 8, 169, 195, 116, 161, 195, 106, 2, 108, 105, 101, 110, 115, 0, 111, 115,
+			115, 117, 116, 104, 3, 49, 39, 91, 116, 47, 0, 111, 115, 115, 117, 116, 104, 116, 3, 49, 39, 91, 116, 47, 12, 0, 111, 115, 115, 117,
+			116, 104, 106, 3, 49, 39, 91, 116, 80, 12, 0, 107, 114, 3, 49, 52, 0, 107, 106, 3, 49, 57, 0, 107, 98, 3, 49, 71, 0, 195,
+			182, 122, 8, 3, 49, 110, 88, 0, 195, 182, 122, 116, 8, 3, 49, 110, 89, 47, 0, 195, 182, 122, 112, 111, 110, 116, 3, 49, 110, 89,
+			48, 39, 50, 47, 0, 195, 182, 122, 112, 111, 110, 116, 116, 3, 49, 110, 89, 48, 39, 50, 47, 12, 0, 195, 182, 122, 112, 111, 110, 116,
+			106, 3, 49, 110, 89, 48, 39, 50, 80, 0, 195, 182, 122, 115, 195, 169, 103, 3, 49, 110, 91, 91, 113, 81, 0, 195, 169, 115, 122, 115,
+			195, 169, 103, 3, 49, 113, 91, 91, 113, 81, 0, 195, 169, 115, 122, 115, 195, 169, 103, 103, 3, 49, 113, 91, 91, 113, 81, 12, 0, 7,
+			6, 108, 0, 4, 3, 55, 0, 1, 101, 2, 106, 117, 115, 0, 1, 101, 2, 106, 117, 116, 0, 1, 101, 2, 106, 195, 161, 116, 115, 122,
+			0, 1, 101, 102, 2, 106, 97, 118, 195, 173, 116, 0, 1, 101, 102, 2, 106, 101, 103, 121, 0, 1, 101, 102, 2, 106, 101, 108, 101, 110,
+			0, 1, 101, 102, 2, 106, 111, 103, 111, 115, 195, 173, 116, 0, 1, 101, 102, 2, 106, 117, 0, 1, 101, 102, 2, 106, 195, 161, 114, 0,
+			1, 101, 102, 2, 106, 195, 182, 0, 1, 106, 161, 195, 102, 0, 1, 169, 195, 122, 115, 2, 106, 101, 103, 121, 0, 1, 169, 195, 122, 115,
+			2, 106, 195, 161, 114, 0, 1, 188, 195, 116, 122, 115, 101, 114, 101, 107, 2, 106, 0, 8, 169, 195, 102, 2, 106, 111, 98, 98, 0, 108,
+			1, 101, 2, 105, 112, 115, 122, 0, 108, 1, 101, 116, 97, 103, 97, 98, 2, 105, 122, 0, 108, 1, 101, 116, 110, 105, 2, 105, 103, 101,
+			0, 108, 1, 105, 109, 2, 105, 0, 108, 2, 18, 66, 0, 108, 2, 45, 18, 66, 0, 4, 1, 182, 195, 107, 182, 195, 2, 106, 111, 103,
+			3, 55, 12, 0, 1, 186, 195, 116, 2, 106, 0, 4, 121, 1, 17, 67, 2, 32, 3, 55, 37, 0, 121, 8, 104, 116, 169, 195, 107, 0,
+			108, 114, 3, 55, 52, 0, 4, 108, 121, 1, 101, 117, 109, 97, 122, 115, 3, 55, 55, 37, 0, 121, 1, 101, 117, 109, 97, 122, 115, 0,
+			4, 106, 1, 101, 2, 195, 161, 114, 3, 55, 57, 0, 106, 8, 97, 116, 2, 195, 161, 110, 0, 106, 8, 101, 2, 195, 182, 0, 108, 98,
+			3, 55, 71, 0, 4, 108, 1, 161, 195, 2, 106, 3, 57, 0, 108, 121, 2, 45, 18, 66, 0, 121, 0, 4, 1, 97, 108, 106, 161, 195,
+			102, 2, 106, 3, 57, 57, 0, 1, 169, 195, 99, 2, 106, 195, 161, 0, 106, 1, 101, 107, 0, 106, 1, 101, 114, 169, 195, 98, 0, 106,
+			1, 169, 195, 122, 115, 101, 98, 0, 108, 121, 0, 4, 106, 1, 111, 100, 110, 111, 103, 3, 57, 57, 57, 0, 106, 1, 161, 195, 110, 106,
+			97, 115, 0, 108, 106, 0, 4, 106, 3, 61, 57, 0, 106, 1, 17, 65, 2, 17, 65, 0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 1,
+			111, 107, 2, 117, 110, 105, 0, 109, 2, 18, 66, 0, 109, 2, 45, 18, 66, 0, 7, 6, 110, 0, 4, 3, 50, 0, 1, 97, 108, 116,
+			97, 103, 110, 105, 2, 106, 111, 103, 0, 1, 101, 98, 121, 108, 101, 104, 2, 106, 195, 161, 114, 0, 1, 101, 98, 122, 182, 195, 107, 2,
+			106, 195, 161, 114, 0, 1, 101, 98, 145, 197, 102, 2, 106, 195, 161, 114, 0, 1, 101, 108, 108, 101, 2, 106, 97, 118, 97, 108, 108, 116,
+			0, 1, 101, 108, 108, 101, 2, 106, 97, 118, 97, 115, 108, 97, 116, 0, 1, 101, 108, 108, 101, 2, 106, 101, 103, 121, 0, 1, 101, 108,
+			108, 101, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 101, 108, 108, 111, 112, 2, 106, 101, 108, 101, 110, 0, 1, 101, 108, 169, 195, 2,
+			106, 195, 161, 114, 0, 1, 101, 118, 116, 182, 195, 2, 121, 97, 114, 100, 0, 1, 101, 118, 121, 103, 101, 110, 2, 121, 97, 114, 100, 0,
+			1, 101, 121, 103, 101, 2, 106, 111, 103, 195, 186, 0, 1, 101, 121, 103, 110, 105, 0, 1, 105, 98, 97, 107, 2, 110, 121, 195, 173, 108,
+			0, 1, 111, 100, 106, 97, 108, 117, 116, 2, 106, 111, 103, 0, 1, 111, 102, 111, 114, 107, 105, 109, 2, 110, 121, 195, 173, 108, 195, 161,
+			115, 0, 1, 111, 114, 101, 112, 2, 106, 101, 103, 121, 0, 1, 111, 116, 101, 98, 2, 106, 195, 161, 114, 100, 97, 0, 1, 111, 121, 103,
+			97, 118, 2, 106, 111, 103, 0, 1, 111, 121, 103, 97, 118, 2, 110, 121, 105, 108, 97, 116, 107, 111, 122, 97, 116, 0, 1, 145, 197, 115,
+			169, 195, 107, 2, 106, 195, 182, 118, 197, 145, 0, 1, 161, 195, 101, 99, 179, 195, 2, 106, 195, 161, 114, 0, 1, 161, 195, 103, 97, 109,
+			2, 106, 101, 108, 108, 101, 103, 0, 1, 161, 195, 103, 97, 109, 2, 106, 111, 103, 0, 1, 161, 195, 103, 97, 109, 2, 110, 121, 101, 108,
+			0, 1, 161, 195, 108, 122, 115, 111, 114, 111, 2, 110, 121, 111, 109, 0, 1, 161, 195, 114, 103, 105, 108, 105, 102, 2, 110, 121, 101, 108,
+			0, 1, 161, 195, 116, 117, 2, 110, 121, 111, 109, 0, 1, 173, 195, 122, 115, 2, 106, 101, 108, 122, 195, 169, 115, 0, 1, 173, 195, 122,
+			115, 2, 106, 195, 161, 116, 0, 1, 173, 195, 122, 115, 2, 106, 195, 179, 122, 97, 110, 0, 1, 173, 195, 122, 115, 2, 110, 121, 111, 109,
+			0, 1, 177, 197, 98, 2, 106, 101, 108, 0, 1, 182, 195, 2, 106, 101, 108, 195, 182, 108, 0, 1, 182, 195, 2, 106, 195, 161, 114, 195,
+			179, 0, 1, 182, 195, 115, 99, 108, 182, 195, 107, 2, 106, 101, 103, 121, 122, 0, 2, 103, 0, 2, 107, 0, 8, 101, 108, 108, 101, 2,
+			106, 97, 118, 0, 8, 101, 108, 116, 101, 116, 101, 104, 100, 100, 101, 102, 2, 106, 101, 108, 108, 101, 0, 8, 105, 122, 115, 2, 106, 195,
+			161, 116, 115, 122, 0, 8, 177, 197, 98, 2, 110, 121, 111, 109, 0, 8, 182, 195, 2, 110, 121, 111, 109, 0, 110, 1, 111, 107, 2, 101,
+			107, 116, 111, 114, 0, 110, 2, 18, 66, 0, 110, 2, 45, 18, 66, 0, 110, 114, 3, 50, 52, 0, 106, 1, 105, 122, 110, 101, 98, 3,
+			50, 57, 0, 110, 121, 1, 161, 195, 103, 97, 109, 2, 117, 103, 100, 195, 173, 106, 3, 50, 67, 0, 110, 98, 3, 50, 71, 0, 121, 108,
+			111, 110, 5, 1, 8, 3, 50, 109, 57, 55, 39, 50, 0, 101, 109, 8, 2, 45, 3, 50, 109, 65, 0, 108, 1, 161, 195, 106, 97, 3,
+			55, 12, 0, 108, 106, 1, 161, 195, 106, 97, 3, 57, 12, 0, 2, 112, 3, 65, 0, 4, 106, 1, 101, 104, 105, 112, 2, 32, 14, 128,
+			128, 130, 3, 67, 0, 106, 1, 105, 2, 101, 107, 99, 105, 195, 179, 0, 110, 121, 1, 101, 109, 2, 111, 114, 115, 122, 195, 161, 103, 0,
+			110, 121, 1, 105, 2, 101, 107, 99, 105, 195, 179, 0, 110, 121, 2, 18, 66, 0, 110, 121, 2, 45, 18, 66, 0, 110, 121, 2, 99, 115,
+			0, 110, 121, 8, 101, 109, 2, 97, 115, 115, 122, 0, 121, 0, 121, 1, 101, 115, 114, 101, 118, 2, 106, 111, 103, 0, 121, 1, 101, 115,
+			114, 101, 118, 2, 106, 195, 161, 116, 195, 169, 107, 0, 121, 1, 145, 197, 122, 101, 109, 2, 106, 0, 121, 1, 161, 195, 105, 104, 2, 106,
+			0, 121, 1, 161, 195, 109, 111, 108, 108, 161, 195, 2, 106, 101, 108, 0, 121, 1, 161, 195, 109, 114, 111, 107, 2, 106, 97, 118, 97, 115,
+			108, 97, 116, 0, 121, 1, 161, 195, 109, 114, 111, 107, 2, 106, 101, 108, 101, 110, 116, 195, 169, 115, 0, 121, 1, 161, 195, 109, 116, 111,
+			107, 108, 97, 2, 106, 0, 121, 1, 161, 195, 114, 105, 2, 106, 101, 108, 0, 121, 1, 161, 195, 114, 116, 111, 98, 2, 106, 195, 161, 116,
+			195, 169, 107, 0, 121, 1, 161, 195, 118, 114, 161, 195, 118, 105, 122, 115, 2, 106, 195, 161, 116, 115, 122, 0, 121, 1, 169, 195, 100, 105,
+			2, 106, 101, 108, 0, 121, 1, 169, 195, 102, 2, 106, 101, 108, 0, 121, 1, 169, 195, 109, 100, 101, 114, 101, 2, 106, 0, 121, 1, 169,
+			195, 109, 101, 114, 101, 121, 110, 2, 106, 195, 161, 116, 195, 169, 107, 0, 121, 1, 169, 195, 109, 101, 115, 101, 2, 106, 101, 108, 0, 121,
+			1, 169, 195, 109, 116, 173, 195, 115, 101, 106, 108, 101, 116, 2, 106, 97, 118, 117, 0, 121, 1, 169, 195, 118, 114, 182, 195, 116, 2, 106,
+			97, 118, 97, 0, 121, 8, 101, 109, 2, 97, 115, 115, 122, 0, 110, 121, 114, 3, 67, 52, 0, 4, 106, 3, 67, 67, 0, 110, 121, 0,
+			121, 106, 0, 110, 121, 98, 3, 67, 71, 0, 118, 100, 97, 8, 2, 45, 3, 109, 50, 84, 113, 72, 113, 114, 0, 7, 6, 111, 0, 3,
+			39, 0, 7, 6, 112, 0, 4, 1, 45, 112, 3, 0, 1, 45, 112, 112, 3, 0, 4, 3, 48, 0, 112, 2, 18, 66, 0, 112, 2, 45,
+			18, 66, 0, 2, 118, 3, 48, 10, 0, 4, 2, 45, 112, 3, 48, 12, 0, 112, 0, 112, 2, 17, 67, 0, 111, 116, 115, 100, 97, 109,
+			5, 1, 8, 3, 48, 39, 119, 72, 114, 65, 0, 112, 114, 3, 48, 52, 0, 112, 98, 3, 48, 71, 0, 7, 6, 113, 0, 4, 3, 49,
+			84, 0, 117, 0, 7, 6, 114, 0, 4, 2, 99, 99, 3, 51, 0, 2, 114, 0, 101, 1, 21, 2, 32, 14, 128, 128, 130, 3, 51, 109,
+			0, 4, 3, 52, 0, 1, 114, 0, 114, 1, 97, 2, 111, 103, 195, 161, 110, 115, 0, 114, 1, 101, 116, 2, 105, 101, 114, 0, 114, 1,
+			101, 116, 2, 111, 114, 105, 0, 114, 1, 105, 2, 105, 116, 195, 161, 0, 114, 1, 111, 107, 2, 101, 112, 101, 116, 195, 161, 0, 114, 1,
+			117, 107, 110, 111, 107, 2, 101, 110, 0, 114, 2, 18, 66, 0, 114, 2, 45, 18, 66, 0, 114, 8, 97, 2, 111, 103, 97, 110, 99, 105,
+			0, 109, 3, 52, 10, 65, 0, 4, 105, 99, 104, 97, 5, 1, 8, 2, 114, 100, 3, 52, 37, 99, 114, 0, 105, 99, 104, 195, 161, 8,
+			2, 114, 100, 0, 114, 114, 3, 52, 52, 0, 114, 98, 3, 52, 71, 0, 97, 1, 21, 2, 32, 14, 128, 128, 130, 3, 52, 108, 0, 7,
+			6, 115, 0, 122, 1, 45, 115, 3, 0, 5, 1, 1, 108, 101, 104, 2, 105, 110, 107, 105, 3, 88, 0, 4, 1, 108, 101, 103, 110, 101,
+			3, 89, 0, 5, 1, 1, 117, 105, 98, 117, 110, 97, 100, 0, 5, 1, 1, 117, 116, 110, 101, 118, 117, 106, 0, 122, 1, 45, 115, 110,
+			100, 0, 2, 45, 115, 122, 3, 89, 12, 0, 4, 108, 111, 5, 1, 8, 111, 3, 89, 55, 115, 0, 108, 195, 179, 5, 1, 8, 111, 0,
+			4, 101, 109, 109, 101, 108, 119, 101, 105, 115, 8, 3, 89, 109, 65, 65, 109, 55, 84, 109, 57, 89, 0, 101, 109, 109, 101, 108, 119, 101,
+			105, 115, 115, 8, 0, 101, 109, 109, 101, 108, 119, 101, 105, 195, 159, 8, 0, 97, 97, 114, 5, 1, 8, 3, 89, 114, 52, 0, 4, 3,
+			91, 0, 1, 97, 107, 114, 97, 102, 2, 115, 122, 197, 145, 114, 0, 1, 97, 118, 2, 115, 0, 1, 100, 108, 182, 195, 102, 2, 195, 161,
+			110, 99, 0, 1, 101, 110, 103, 161, 195, 109, 0, 1, 101, 121, 110, 110, 101, 122, 115, 2, 122, 115, 195, 161, 0, 1, 101, 122, 110, 169,
+			195, 112, 0, 1, 105, 107, 2, 115, 122, 101, 110, 116, 0, 1, 105, 107, 2, 115, 122, 105, 103, 101, 116, 0, 1, 105, 107, 2, 115, 122,
+			197, 145, 108, 197, 145, 0, 1, 105, 107, 2, 122, 115, 105, 100, 195, 161, 0, 1, 105, 107, 2, 122, 115, 105, 100, 195, 179, 0, 1, 105,
+			120, 97, 108, 97, 103, 0, 1, 111, 103, 111, 108, 97, 121, 103, 2, 122, 195, 161, 115, 122, 108, 195, 179, 0, 1, 111, 107, 111, 116, 2,
+			122, 195, 161, 115, 122, 108, 0, 1, 111, 108, 169, 195, 99, 110, 161, 195, 112, 0, 1, 111, 114, 161, 195, 118, 2, 122, 97, 106, 0, 1,
+			111, 114, 161, 195, 118, 2, 122, 115, 0, 1, 111, 116, 161, 195, 110, 161, 195, 114, 103, 0, 1, 111, 121, 110, 111, 103, 97, 114, 100, 0,
+			1, 117, 100, 108, 111, 107, 0, 1, 117, 103, 179, 195, 103, 97, 100, 101, 112, 2, 115, 122, 116, 114, 195, 161, 106, 107, 0, 1, 117, 109,
+			116, 105, 114, 2, 122, 97, 106, 0, 1, 117, 109, 116, 105, 114, 2, 122, 97, 118, 97, 114, 0, 1, 117, 112, 173, 195, 116, 2, 122, 117,
+			98, 0, 1, 145, 197, 121, 110, 114, 101, 145, 197, 116, 106, 101, 0, 1, 161, 195, 100, 97, 104, 2, 115, 122, 97, 103, 0, 1, 161, 195,
+			102, 2, 115, 122, 195, 161, 114, 195, 186, 0, 1, 161, 195, 103, 122, 111, 109, 2, 122, 97, 118, 97, 0, 1, 161, 195, 105, 114, 179, 195,
+			0, 1, 161, 195, 106, 111, 116, 0, 1, 161, 195, 107, 115, 117, 112, 0, 1, 161, 195, 108, 100, 97, 112, 0, 1, 161, 195, 108, 108, 97,
+			104, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 110, 97, 98, 98, 111, 114, 0, 1, 161, 195, 110, 97, 98, 98, 111, 114, 2, 122, 97,
+			106, 0, 1, 161, 195, 114, 114, 111, 102, 145, 197, 114, 101, 2, 122, 97, 98, 195, 161, 108, 0, 1, 161, 195, 116, 105, 116, 110, 101, 100,
+			105, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 116, 114, 97, 116, 97, 103, 97, 109, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 116,
+			161, 195, 108, 2, 122, 97, 118, 97, 114, 0, 1, 161, 195, 118, 108, 97, 2, 122, 97, 118, 97, 0, 1, 161, 195, 121, 108, 107, 161, 195,
+			102, 2, 122, 101, 110, 0, 1, 161, 195, 122, 97, 109, 108, 97, 107, 108, 97, 2, 115, 122, 101, 114, 118, 101, 114, 0, 1, 169, 195, 100,
+			101, 107, 108, 101, 115, 105, 118, 2, 122, 97, 118, 97, 0, 1, 169, 195, 100, 182, 195, 107, 177, 197, 109, 2, 122, 97, 118, 97, 0, 1,
+			169, 195, 103, 101, 107, 101, 114, 98, 0, 1, 169, 195, 108, 101, 109, 114, 101, 116, 0, 1, 169, 195, 112, 169, 195, 108, 0, 1, 169, 195,
+			116, 188, 195, 2, 122, 195, 161, 112, 0, 1, 169, 195, 122, 101, 100, 101, 102, 0, 1, 182, 195, 114, 182, 195, 107, 2, 115, 122, 101, 103,
+			0, 1, 186, 195, 104, 2, 115, 122, 97, 103, 0, 8, 101, 118, 177, 197, 109, 145, 197, 107, 2, 115, 122, 0, 8, 105, 107, 2, 122, 111,
+			109, 98, 111, 114, 0, 8, 105, 108, 105, 112, 0, 8, 111, 108, 97, 116, 122, 115, 97, 0, 8, 111, 114, 105, 112, 0, 8, 117, 103, 114,
+			161, 195, 0, 8, 161, 195, 100, 108, 161, 195, 0, 8, 161, 195, 107, 110, 117, 109, 0, 8, 161, 195, 108, 173, 195, 121, 110, 0, 8, 169,
+			195, 108, 182, 195, 107, 114, 182, 195, 112, 2, 115, 122, 0, 8, 169, 195, 114, 145, 197, 108, 2, 115, 122, 0, 8, 169, 195, 122, 112, 169,
+			195, 107, 0, 8, 169, 195, 122, 115, 116, 101, 116, 0, 8, 179, 195, 118, 186, 195, 102, 2, 122, 101, 110, 101, 0, 8, 182, 195, 114, 182,
+			195, 107, 2, 115, 122, 97, 107, 195, 161, 108, 0, 8, 182, 195, 114, 182, 195, 118, 0, 104, 5, 1, 8, 97, 119, 2, 105, 110, 103, 0,
+			4, 115, 122, 8, 161, 195, 110, 114, 97, 98, 2, 195, 188, 114, 107, 101, 3, 91, 89, 0, 115, 122, 8, 161, 195, 118, 108, 97, 2, 195,
+			188, 107, 115, 195, 169, 0, 1, 105, 107, 2, 101, 98, 98, 3, 91, 91, 0, 7, 6, 116, 0, 4, 1, 45, 116, 3, 0, 4, 1, 45,
+			116, 116, 3, 0, 4, 121, 1, 45, 116, 3, 0, 4, 121, 1, 45, 116, 116, 3, 0, 121, 1, 45, 121, 116, 3, 0, 4, 3, 47, 0,
+			1, 45, 2, 32, 0, 1, 97, 99, 117, 116, 2, 115, 122, 195, 169, 112, 0, 1, 97, 104, 2, 99, 101, 108, 108, 0, 1, 97, 108, 100,
+			97, 112, 2, 115, 122, 197, 145, 110, 121, 0, 1, 97, 108, 108, 161, 195, 2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 97, 108, 108, 161,
+			195, 2, 115, 122, 197, 145, 114, 0, 1, 97, 108, 111, 121, 116, 97, 112, 2, 115, 101, 108, 121, 0, 1, 97, 112, 97, 115, 99, 2, 115,
+			122, 111, 108, 103, 0, 1, 97, 114, 161, 195, 106, 2, 115, 122, 111, 108, 103, 195, 161, 108, 0, 1, 97, 118, 105, 100, 2, 99, 105, 107,
+			107, 0, 1, 97, 118, 105, 100, 2, 115, 122, 195, 169, 112, 0, 1, 97, 122, 161, 195, 108, 98, 161, 195, 116, 2, 99, 101, 108, 108, 0,
+			1, 97, 122, 179, 195, 108, 161, 195, 104, 2, 115, 101, 109, 108, 101, 103, 101, 115, 0, 1, 101, 108, 101, 115, 99, 108, 182, 195, 98, 2,
+			115, 97, 118, 97, 0, 1, 101, 108, 103, 182, 195, 122, 115, 2, 115, 122, 111, 98, 0, 1, 101, 108, 121, 103, 188, 195, 2, 115, 122, 111,
+			98, 0, 1, 101, 108, 122, 188, 195, 2, 115, 122, 111, 98, 0, 1, 101, 108, 169, 195, 2, 115, 111, 114, 118, 97, 115, 122, 0, 1, 101,
+			108, 169, 195, 2, 115, 122, 111, 109, 106, 0, 1, 101, 108, 188, 195, 114, 101, 116, 2, 99, 195, 169, 108, 0, 1, 101, 109, 114, 101, 112,
+			2, 115, 122, 101, 114, 197, 177, 0, 1, 101, 110, 2, 99, 0, 1, 101, 116, 114, 169, 195, 115, 173, 195, 107, 2, 115, 122, 195, 161, 122,
+			97, 100, 0, 1, 101, 116, 182, 195, 107, 2, 115, 122, 195, 161, 109, 0, 1, 101, 118, 182, 195, 122, 115, 2, 115, 195, 161, 118, 0, 1,
+			101, 122, 101, 106, 101, 102, 2, 99, 195, 173, 109, 0, 1, 101, 122, 101, 106, 101, 102, 2, 115, 111, 114, 0, 1, 101, 122, 109, 101, 110,
+			2, 115, 122, 195, 173, 110, 0, 1, 101, 122, 121, 103, 169, 195, 110, 2, 99, 101, 110, 116, 105, 0, 1, 105, 102, 97, 114, 103, 2, 99,
+			101, 114, 117, 122, 0, 1, 105, 108, 101, 2, 115, 122, 111, 108, 103, 0, 1, 105, 112, 114, 161, 195, 107, 2, 115, 122, 197, 145, 110, 121,
+			0, 1, 105, 122, 105, 118, 2, 115, 122, 111, 98, 0, 1, 108, 97, 122, 115, 97, 2, 106, 101, 103, 0, 1, 108, 161, 195, 110, 122, 115,
+			97, 104, 2, 99, 105, 107, 107, 0, 1, 110, 97, 107, 107, 111, 114, 2, 115, 101, 103, 195, 173, 116, 0, 1, 110, 111, 106, 97, 118, 2,
+			115, 122, 111, 114, 111, 115, 0, 1, 110, 111, 114, 102, 2, 115, 101, 98, 195, 169, 115, 122, 0, 1, 110, 111, 115, 99, 2, 115, 111, 118,
 			195, 161, 110, 121, 0, 1, 110, 111, 115, 99, 2, 115, 195, 161, 114, 103, 97, 0, 1, 110, 161, 195, 102, 101, 108, 101, 2, 115, 122, 197,
 			145, 114, 0, 1, 110, 161, 195, 109, 169, 195, 121, 103, 2, 115, 122, 111, 108, 105, 0, 1, 111, 98, 111, 114, 2, 115, 122, 111, 110, 100,
-			0, 1, 114, 101, 99, 110, 111, 107, 2, 106, 101, 103, 0, 1, 114, 111, 107, 122, 115, 101, 2, 115, 122, 111, 108, 103, 195, 161, 108, 0,
-			1, 114, 111, 112, 111, 115, 99, 2, 115, 111, 114, 115, 111, 108, 0, 1, 114, 111, 112, 115, 2, 99, 101, 110, 116, 0, 1, 114, 111, 112,
-			115, 2, 115, 195, 169, 114, 0, 1, 114, 161, 195, 112, 2, 115, 122, 195, 169, 107, 104, 195, 161, 122, 0, 1, 114, 161, 195, 122, 2, 115,
-			122, 195, 169, 107, 0, 1, 115, 188, 195, 122, 101, 2, 115, 97, 114, 107, 0, 1, 115, 188, 195, 122, 101, 2, 115, 122, 111, 98, 0, 1,
-			115, 188, 195, 122, 101, 2, 115, 122, 195, 169, 108, 0, 1, 115, 188, 195, 122, 101, 2, 115, 122, 197, 145, 107, 101, 0, 1, 115, 188, 195,
-			122, 101, 2, 115, 122, 197, 145, 114, 0, 1, 117, 109, 97, 109, 2, 115, 122, 197, 145, 114, 0, 1, 117, 109, 97, 112, 2, 99, 195, 169,
-			114, 0, 1, 117, 109, 97, 112, 2, 115, 122, 111, 107, 0, 1, 122, 115, 101, 116, 2, 99, 105, 107, 107, 0, 1, 122, 115, 101, 116, 2,
-			99, 105, 107, 108, 0, 1, 122, 115, 101, 116, 2, 99, 195, 169, 108, 0, 1, 122, 115, 101, 116, 2, 106, 195, 161, 114, 109, 0, 1, 122,
-			115, 101, 116, 2, 106, 195, 161, 116, 195, 169, 107, 0, 1, 122, 115, 105, 108, 2, 99, 105, 112, 101, 108, 0, 1, 122, 115, 114, 97, 107,
-			2, 106, 195, 161, 114, 97, 116, 0, 1, 161, 195, 2, 99, 97, 112, 108, 97, 116, 0, 1, 161, 195, 2, 99, 105, 107, 195, 161, 122, 0,
-			1, 161, 195, 2, 99, 195, 173, 109, 0, 1, 161, 195, 102, 122, 115, 111, 102, 2, 106, 195, 182, 118, 101, 100, 101, 108, 0, 1, 161, 195,
-			106, 97, 115, 2, 115, 122, 101, 109, 195, 169, 0, 1, 161, 195, 106, 97, 115, 2, 115, 122, 101, 114, 197, 177, 0, 1, 161, 195, 107, 97,
-			108, 112, 2, 99, 195, 169, 103, 0, 1, 161, 195, 107, 111, 114, 98, 2, 115, 101, 108, 121, 0, 1, 161, 195, 107, 111, 114, 98, 2, 115,
-			122, 0, 1, 161, 195, 108, 114, 97, 107, 115, 2, 115, 122, 195, 173, 110, 0, 1, 161, 195, 114, 97, 98, 2, 115, 122, 101, 114, 101, 110,
-			0, 1, 161, 195, 118, 105, 118, 2, 115, 122, 195, 179, 0, 1, 169, 195, 107, 110, 101, 122, 105, 116, 2, 115, 122, 195, 169, 108, 0, 1,
-			169, 195, 110, 105, 114, 97, 108, 107, 2, 115, 122, 0, 1, 169, 195, 116, 182, 195, 115, 2, 115, 122, 111, 98, 0, 1, 169, 195, 122, 115,
-			2, 115, 117, 103, 195, 161, 114, 0, 1, 169, 195, 122, 115, 2, 115, 122, 111, 114, 116, 195, 173, 114, 0, 1, 169, 195, 122, 115, 2, 115,
-			122, 111, 114, 195, 173, 116, 0, 1, 169, 195, 122, 115, 2, 115, 195, 182, 112, 195, 182, 114, 0, 1, 179, 195, 112, 2, 115, 101, 108, 101,
-			106, 116, 0, 1, 182, 195, 2, 121, 97, 114, 100, 0, 2, 99, 115, 0, 8, 97, 108, 108, 161, 195, 2, 115, 122, 111, 98, 0, 8, 101,
-			108, 103, 101, 122, 115, 2, 115, 122, 0, 8, 102, 97, 116, 2, 115, 101, 108, 121, 0, 8, 105, 115, 122, 161, 195, 112, 2, 115, 122, 0,
-			8, 106, 97, 115, 2, 115, 122, 195, 173, 110, 0, 8, 110, 111, 122, 115, 105, 118, 2, 115, 122, 111, 108, 103, 195, 161, 108, 0, 8, 111,
-			98, 111, 114, 2, 115, 122, 111, 102, 116, 118, 101, 0, 8, 114, 97, 112, 2, 115, 122, 195, 169, 108, 0, 8, 114, 111, 112, 115, 2, 99,
-			195, 169, 108, 0, 8, 115, 101, 2, 115, 122, 195, 169, 108, 0, 8, 115, 101, 116, 2, 115, 122, 197, 145, 114, 0, 8, 145, 197, 114, 2,
-			115, 122, 197, 145, 107, 0, 8, 161, 195, 2, 115, 122, 111, 108, 103, 195, 161, 108, 116, 97, 116, 0, 8, 169, 195, 104, 2, 99, 111, 108,
-			0, 8, 169, 195, 107, 2, 115, 122, 195, 169, 108, 0, 8, 169, 195, 116, 182, 195, 115, 2, 115, 122, 197, 145, 107, 0, 8, 179, 195, 112,
-			2, 115, 122, 111, 108, 103, 195, 161, 108, 0, 104, 1, 97, 2, 195, 169, 110, 0, 116, 1, 182, 195, 100, 108, 188, 195, 107, 2, 103, 121,
-			197, 177, 108, 0, 116, 2, 18, 66, 0, 116, 2, 45, 18, 66, 0, 116, 8, 111, 114, 102, 2, 195, 173, 114, 0, 4, 2, 45, 116, 3,
-			47, 12, 0, 116, 2, 45, 116, 0, 4, 121, 1, 114, 97, 109, 115, 182, 195, 114, 182, 195, 118, 3, 47, 37, 0, 121, 1, 122, 115, 111,
-			110, 0, 121, 8, 97, 107, 2, 110, 0, 116, 106, 8, 111, 2, 195, 161, 114, 3, 47, 57, 0, 4, 115, 122, 1, 161, 195, 2, 111, 114,
-			122, 195, 161, 115, 3, 47, 89, 0, 115, 122, 8, 186, 195, 2, 195, 169, 107, 0, 101, 114, 109, 195, 169, 115, 122, 101, 116, 101, 115, 3,
-			47, 109, 52, 65, 113, 89, 109, 47, 109, 91, 0, 104, 195, 182, 107, 195, 182, 108, 121, 3, 47, 110, 49, 110, 55, 37, 0, 8, 2, 32,
-			3, 47, 113, 0, 195, 179, 108, 1, 21, 2, 32, 14, 128, 192, 131, 3, 47, 115, 55, 0, 197, 145, 108, 1, 21, 2, 32, 14, 128, 192,
-			131, 3, 47, 118, 55, 0, 4, 115, 1, 105, 115, 97, 122, 161, 195, 104, 2, 97, 3, 76, 12, 0, 115, 1, 169, 195, 107, 169, 195, 98,
-			101, 122, 115, 115, 182, 195, 2, 101, 0, 115, 8, 105, 107, 97, 122, 115, 2, 111, 110, 0, 4, 116, 121, 2, 18, 66, 3, 80, 0, 121,
-			0, 121, 106, 1, 17, 67, 0, 4, 2, 45, 116, 121, 3, 80, 12, 0, 116, 2, 45, 116, 121, 0, 121, 2, 45, 116, 121, 0, 121, 106,
-			1, 17, 65, 2, 17, 65, 0, 4, 115, 122, 1, 101, 109, 2, 118, 195, 169, 110, 121, 3, 119, 0, 115, 122, 1, 101, 116, 2, 104, 0,
-			115, 122, 1, 161, 195, 106, 2, 100, 0, 115, 122, 1, 161, 195, 108, 2, 118, 97, 0, 115, 122, 2, 104, 0, 4, 99, 3, 119, 12, 0,
-			115, 115, 122, 1, 161, 195, 108, 105, 107, 2, 195, 169, 107, 0, 115, 122, 1, 97, 108, 108, 97, 104, 2, 195, 161, 110, 97, 107, 0, 115,
-			122, 1, 97, 108, 108, 97, 104, 2, 195, 179, 100, 0, 115, 122, 1, 101, 109, 2, 105, 116, 101, 107, 0, 115, 122, 8, 182, 195, 107, 2,
-			101, 114, 0, 7, 6, 117, 0, 3, 40, 0, 1, 116, 101, 106, 118, 111, 122, 115, 2, 110, 105, 195, 179, 3, 116, 0, 7, 6, 118, 0,
-			3, 84, 0, 101, 114, 115, 97, 105, 108, 108, 101, 115, 5, 1, 8, 3, 84, 109, 52, 89, 114, 57, 0, 8, 2, 32, 3, 84, 113, 0,
-			7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 8, 2, 32, 3, 37, 49, 89, 0, 3, 49, 89, 0, 7, 6, 121, 0, 4, 3, 37,
-			0, 1, 25, 2, 25, 0, 8, 3, 57, 0, 97, 114, 100, 3, 57, 108, 52, 72, 0, 97, 114, 100, 100, 3, 57, 108, 52, 72, 12, 0,
-			7, 6, 122, 0, 4, 3, 88, 0, 1, 97, 109, 108, 97, 104, 0, 1, 97, 114, 161, 195, 122, 115, 2, 115, 195, 188, 108, 116, 0, 1,
-			101, 109, 101, 108, 0, 1, 101, 109, 101, 108, 2, 115, 108, 195, 161, 0, 1, 101, 109, 101, 108, 2, 115, 116, 195, 186, 0, 1, 101, 109,
-			101, 108, 2, 115, 122, 101, 114, 122, 0, 1, 101, 109, 101, 110, 0, 1, 106, 97, 114, 2, 115, 97, 0, 1, 106, 97, 114, 2, 115, 107,
-			105, 99, 0, 1, 106, 97, 114, 2, 115, 111, 114, 0, 1, 106, 97, 114, 2, 115, 116, 0, 1, 110, 169, 195, 112, 0, 1, 114, 111, 116,
-			2, 115, 195, 161, 103, 0, 1, 117, 97, 108, 97, 107, 2, 115, 195, 161, 103, 0, 1, 145, 197, 2, 115, 97, 108, 195, 161, 116, 0, 1,
-			145, 197, 2, 115, 195, 173, 114, 195, 161, 0, 1, 145, 197, 2, 115, 195, 182, 114, 195, 169, 116, 0, 1, 145, 197, 103, 2, 115, 117, 103,
-			195, 161, 114, 0, 1, 145, 197, 103, 2, 115, 195, 173, 112, 0, 1, 161, 195, 103, 2, 99, 115, 197, 145, 0, 1, 161, 195, 103, 2, 115,
-			101, 98, 0, 1, 161, 195, 103, 2, 115, 112, 114, 97, 0, 1, 161, 195, 103, 2, 115, 116, 101, 114, 0, 1, 161, 195, 103, 2, 115, 117,
-			103, 0, 1, 161, 195, 103, 2, 115, 195, 161, 116, 0, 1, 161, 195, 103, 2, 115, 195, 173, 112, 0, 1, 161, 195, 103, 2, 115, 195, 186,
-			114, 0, 1, 161, 195, 103, 2, 115, 195, 188, 116, 0, 1, 161, 195, 103, 2, 115, 197, 177, 114, 0, 1, 161, 195, 103, 2, 122, 115, 195,
-			161, 109, 0, 1, 161, 195, 104, 2, 115, 97, 114, 107, 111, 116, 0, 1, 161, 195, 104, 2, 115, 97, 114, 111, 107, 0, 1, 161, 195, 104,
-			2, 115, 111, 0, 1, 161, 195, 104, 114, 179, 195, 107, 2, 115, 195, 161, 0, 1, 161, 195, 112, 111, 116, 0, 1, 161, 195, 118, 2, 115,
-			195, 169, 114, 0, 1, 161, 195, 118, 116, 110, 111, 115, 99, 0, 1, 169, 195, 104, 101, 110, 2, 115, 195, 186, 108, 121, 0, 1, 169, 195,
-			104, 101, 110, 2, 115, 195, 186, 108, 121, 195, 186, 0, 1, 169, 195, 107, 2, 115, 101, 98, 0, 1, 169, 195, 107, 2, 115, 122, 0, 1,
-			169, 195, 107, 2, 115, 195, 169, 114, 195, 188, 108, 0, 1, 169, 195, 107, 2, 122, 115, 105, 98, 98, 97, 100, 195, 161, 115, 0, 1, 169,
-			195, 109, 2, 115, 195, 182, 114, 0, 1, 169, 195, 114, 2, 115, 97, 114, 107, 0, 1, 169, 195, 114, 2, 115, 97, 118, 0, 1, 169, 195,
-			114, 2, 115, 101, 114, 108, 101, 103, 0, 1, 169, 195, 114, 2, 115, 101, 114, 112, 101, 110, 121, 197, 145, 0, 1, 169, 195, 114, 2, 115,
-			105, 112, 107, 0, 1, 169, 195, 114, 2, 115, 105, 115, 97, 107, 0, 1, 169, 195, 114, 2, 115, 111, 100, 0, 1, 169, 195, 114, 2, 115,
-			111, 100, 114, 111, 110, 121, 0, 1, 169, 195, 114, 2, 115, 195, 161, 114, 107, 195, 161, 0, 1, 169, 195, 114, 2, 115, 195, 173, 112, 0,
-			1, 169, 195, 114, 2, 122, 115, 97, 110, 0, 1, 173, 195, 99, 101, 114, 112, 2, 115, 195, 169, 103, 0, 1, 173, 195, 116, 2, 115, 99,
-			104, 0, 1, 173, 195, 116, 2, 115, 101, 98, 0, 1, 173, 195, 116, 2, 115, 195, 161, 118, 0, 1, 173, 195, 118, 0, 1, 173, 195, 118,
-			2, 122, 115, 111, 110, 103, 0, 1, 173, 195, 118, 2, 122, 115, 195, 161, 107, 0, 1, 173, 195, 118, 114, 161, 195, 2, 115, 195, 186, 106,
-			0, 1, 177, 197, 116, 0, 1, 177, 197, 116, 2, 122, 115, 195, 161, 107, 0, 1, 177, 197, 122, 115, 2, 115, 195, 188, 108, 116, 0, 1,
-			179, 195, 108, 97, 107, 0, 1, 179, 195, 114, 116, 97, 109, 2, 115, 97, 112, 107, 0, 1, 179, 195, 114, 116, 97, 109, 2, 115, 105, 112,
-			107, 0, 1, 179, 195, 114, 116, 97, 109, 2, 122, 115, 195, 161, 107, 0, 1, 182, 195, 107, 122, 101, 2, 115, 111, 114, 0, 1, 182, 195,
-			107, 122, 101, 2, 115, 195, 161, 118, 0, 1, 182, 195, 107, 122, 115, 101, 0, 1, 182, 195, 107, 122, 115, 101, 2, 115, 111, 114, 0, 1,
-			182, 195, 107, 122, 115, 101, 2, 115, 195, 161, 118, 0, 8, 110, 111, 114, 98, 0, 8, 114, 111, 98, 2, 122, 115, 195, 173, 114, 0, 8,
-			145, 197, 2, 115, 101, 98, 0, 8, 145, 197, 2, 115, 117, 116, 0, 8, 145, 197, 103, 0, 8, 145, 197, 103, 2, 115, 195, 188, 118, 195,
-			182, 108, 116, 0, 8, 161, 195, 108, 2, 115, 101, 98, 0, 8, 161, 195, 108, 2, 115, 195, 179, 104, 0, 8, 161, 195, 122, 115, 2, 115,
-			111, 114, 0, 8, 169, 195, 109, 2, 115, 101, 114, 0, 8, 169, 195, 109, 2, 115, 195, 161, 114, 103, 0, 8, 169, 195, 116, 105, 118, 0,
-			8, 173, 195, 116, 2, 115, 104, 105, 108, 108, 0, 8, 173, 195, 116, 2, 115, 111, 114, 0, 8, 173, 195, 116, 2, 115, 111, 117, 0, 8,
-			173, 195, 116, 2, 122, 115, 195, 161, 107, 0, 8, 173, 195, 118, 2, 115, 0, 8, 177, 197, 116, 2, 122, 115, 111, 110, 103, 108, 197, 145,
-			114, 0, 99, 1, 161, 195, 109, 2, 115, 122, 0, 99, 1, 169, 195, 109, 2, 115, 122, 0, 122, 1, 161, 195, 121, 103, 105, 118, 2, 195,
-			161, 108, 108, 0, 122, 2, 98, 0, 122, 2, 116, 0, 122, 2, 118, 0, 4, 115, 122, 3, 88, 89, 0, 115, 122, 8, 161, 195, 103, 2,
-			195, 161, 109, 108, 97, 0, 115, 122, 8, 161, 195, 103, 2, 195, 161, 109, 108, 195, 161, 0, 4, 115, 1, 97, 103, 2, 195, 161, 103, 3,
-			88, 91, 0, 115, 1, 145, 197, 2, 117, 116, 97, 0, 115, 8, 161, 195, 118, 2, 111, 114, 0, 115, 8, 169, 195, 104, 101, 110, 2, 101,
-			108, 121, 0, 115, 8, 169, 195, 114, 2, 195, 179, 0, 4, 1, 97, 2, 116, 3, 89, 0, 1, 97, 2, 116, 195, 161, 110, 0, 1, 97,
-			109, 108, 97, 107, 108, 97, 2, 107, 111, 0, 1, 101, 2, 116, 0, 1, 101, 100, 110, 101, 114, 2, 107, 101, 100, 0, 1, 101, 106, 101,
-			102, 101, 98, 2, 116, 101, 0, 1, 101, 106, 101, 102, 101, 108, 2, 116, 101, 0, 1, 101, 106, 101, 102, 101, 108, 2, 116, 195, 169, 107,
-			0, 1, 101, 107, 2, 100, 116, 0, 1, 101, 118, 114, 101, 122, 115, 2, 107, 101, 100, 0, 1, 101, 121, 103, 101, 2, 107, 101, 0, 1,
-			101, 121, 103, 101, 2, 116, 101, 0, 1, 101, 121, 108, 101, 104, 2, 107, 101, 0, 1, 101, 121, 108, 101, 104, 2, 107, 101, 100, 0, 1,
-			105, 98, 2, 116, 97, 116, 0, 1, 105, 98, 2, 116, 111, 110, 115, 0, 1, 105, 98, 2, 116, 111, 115, 0, 1, 110, 169, 195, 112, 2,
-			116, 0, 1, 110, 169, 195, 112, 2, 116, 195, 161, 114, 0, 1, 111, 98, 111, 100, 2, 116, 0, 1, 111, 98, 111, 107, 2, 116, 0, 1,
-			111, 102, 111, 112, 2, 107, 111, 100, 0, 1, 111, 103, 108, 111, 100, 2, 116, 0, 1, 111, 103, 110, 97, 104, 2, 116, 0, 1, 111, 103,
-			111, 98, 2, 116, 195, 161, 107, 0, 1, 111, 104, 2, 116, 97, 0, 1, 111, 104, 2, 116, 195, 161, 0, 1, 111, 107, 97, 108, 116, 97,
-			115, 99, 2, 116, 97, 0, 1, 111, 107, 97, 108, 116, 97, 115, 99, 2, 116, 111, 107, 0, 1, 111, 107, 108, 97, 108, 103, 111, 102, 2,
-			116, 0, 1, 111, 107, 108, 161, 195, 108, 97, 116, 2, 116, 0, 1, 111, 107, 111, 2, 116, 0, 1, 111, 107, 116, 97, 110, 111, 118, 2,
-			116, 97, 0, 1, 111, 107, 116, 97, 116, 105, 118, 2, 116, 0, 1, 111, 107, 169, 195, 100, 110, 161, 195, 106, 97, 2, 116, 0, 1, 111,
-			107, 169, 195, 106, 161, 195, 116, 2, 116, 97, 115, 115, 0, 1, 111, 107, 169, 195, 106, 161, 195, 116, 2, 116, 97, 116, 0, 1, 111, 114,
-			161, 195, 116, 97, 104, 2, 116, 0, 1, 111, 116, 108, 161, 195, 118, 2, 116, 97, 115, 115, 0, 1, 111, 116, 108, 161, 195, 118, 2, 116,
-			97, 116, 0, 1, 111, 116, 114, 97, 116, 2, 107, 0, 1, 111, 116, 114, 97, 116, 2, 116, 0, 1, 111, 116, 122, 115, 111, 2, 107, 111,
-			100, 0, 1, 111, 121, 110, 161, 195, 105, 104, 2, 116, 0, 1, 111, 121, 110, 161, 195, 109, 108, 117, 110, 97, 116, 2, 116, 0, 1, 145,
-			197, 108, 101, 100, 101, 122, 115, 2, 107, 195, 182, 0, 1, 145, 197, 108, 108, 101, 122, 115, 2, 116, 101, 116, 0, 1, 145, 197, 116, 106,
-			101, 114, 2, 107, 195, 182, 0, 1, 145, 197, 116, 106, 101, 114, 2, 116, 0, 1, 145, 197, 121, 103, 2, 107, 195, 182, 100, 0, 1, 145,
-			197, 121, 103, 2, 116, 0, 1, 161, 195, 98, 105, 104, 2, 116, 97, 116, 0, 1, 161, 195, 104, 2, 116, 97, 114, 116, 195, 161, 115, 0,
-			1, 161, 195, 107, 99, 111, 107, 2, 116, 97, 0, 1, 161, 195, 114, 2, 107, 195, 179, 100, 0, 1, 161, 195, 114, 97, 121, 103, 97, 109,
-			2, 107, 111, 100, 0, 1, 161, 195, 114, 97, 121, 103, 97, 109, 2, 116, 0, 1, 161, 195, 116, 122, 115, 105, 116, 2, 116, 0, 1, 169,
-			195, 116, 110, 105, 2, 107, 101, 100, 0, 1, 169, 195, 116, 110, 105, 2, 116, 0, 1, 173, 195, 118, 2, 115, 122, 105, 110, 116, 0, 1,
-			179, 195, 116, 106, 186, 195, 121, 110, 2, 107, 111, 0, 1, 179, 195, 116, 114, 97, 116, 2, 107, 0, 1, 179, 195, 116, 114, 97, 116, 2,
-			116, 0, 1, 182, 195, 98, 110, 182, 195, 108, 188, 195, 107, 2, 116, 101, 116, 0, 1, 182, 195, 100, 108, 188, 195, 2, 116, 0, 1, 182,
-			195, 107, 103, 101, 100, 105, 2, 112, 111, 110, 0, 1, 182, 195, 107, 103, 169, 195, 115, 122, 115, 169, 195, 103, 101, 2, 112, 111, 110, 116,
-			0, 1, 182, 195, 107, 109, 101, 122, 115, 2, 116, 0, 1, 182, 195, 107, 115, 99, 161, 195, 110, 97, 116, 2, 116, 195, 161, 114, 115, 97,
-			115, 195, 161, 103, 0, 1, 182, 195, 107, 122, 115, 101, 2, 116, 0, 1, 182, 195, 116, 108, 182, 195, 2, 107, 195, 182, 0, 1, 182, 195,
-			116, 108, 182, 195, 2, 116, 101, 0, 1, 182, 195, 116, 108, 182, 195, 107, 2, 107, 195, 182, 100, 0, 1, 182, 195, 116, 182, 195, 107, 2,
-			107, 195, 182, 0, 1, 182, 195, 116, 182, 195, 107, 2, 116, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2, 107, 111, 0, 1, 186, 195, 115,
-			99, 186, 195, 98, 2, 107, 111, 100, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2, 116, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2, 116,
-			97, 116, 0, 4, 115, 122, 1, 161, 195, 122, 115, 2, 111, 114, 3, 89, 12, 0, 115, 122, 1, 173, 195, 116, 2, 101, 114, 0, 115, 122,
-			1, 173, 195, 118, 2, 105, 110, 116, 101, 115, 0, 115, 122, 1, 177, 197, 116, 2, 101, 114, 195, 169, 115, 115, 122, 0, 115, 122, 1, 177,
-			197, 116, 2, 101, 114, 195, 169, 115, 122, 0, 4, 115, 3, 90, 0, 115, 1, 105, 114, 2, 122, 97, 98, 0, 115, 1, 161, 195, 122, 115,
-			115, 97, 109, 2, 122, 117, 104, 0, 115, 8, 110, 169, 195, 112, 2, 101, 100, 0, 115, 8, 111, 114, 2, 122, 97, 98, 195, 161, 108, 0,
-			4, 115, 122, 115, 1, 111, 114, 2, 101, 109, 3, 90, 12, 0, 122, 115, 0, 4, 115, 122, 1, 114, 182, 195, 100, 2, 195, 182, 114, 3,
-			90, 88, 0, 115, 122, 1, 114, 182, 195, 116, 2, 195, 161, 115, 122, 108, 195, 179, 0, 4, 1, 169, 195, 104, 101, 110, 2, 115, 195, 169,
-			3, 91, 0, 115, 1, 105, 114, 2, 116, 0, 115, 1, 161, 195, 114, 97, 100, 2, 102, 195, 169, 115, 122, 101, 107, 0, 115, 1, 161, 195,
-			114, 97, 103, 2, 116, 195, 161, 114, 111, 108, 195, 179, 0, 4, 115, 1, 97, 103, 2, 195, 161, 103, 3, 91, 91, 0, 115, 1, 97, 103,
-			105, 2, 195, 161, 103, 0, 115, 1, 97, 114, 161, 195, 122, 115, 2, 195, 161, 103, 0, 4, 1, 108, 97, 119, 2, 101, 114, 3, 119, 0,
-			1, 179, 195, 103, 111, 102, 2, 107, 111, 100, 0, 4, 105, 112, 112, 122, 195, 161, 114, 3, 119, 37, 48, 88, 114, 52, 0, 105, 112, 122,
-			195, 161, 114, 0, 195, 188, 114, 105, 99, 104, 8, 3, 119, 111, 52, 37, 0, 7, 6, 0, 195, 177, 3, 67, 0, 36, 3, 72, 39, 55,
-			55, 114, 52, 0, 195, 167, 3, 76, 0, 195, 159, 3, 89, 0, 4, 195, 164, 3, 109, 0, 195, 166, 0, 195, 184, 3, 110, 0, 7, 0,
-			0};
-		autoFileInMemory espeakdata_dicts28 = FileInMemory_createWithData (113340, reinterpret_cast<const char *> (&espeakdata_dicts28_data), 
-			U"espeak-1.48.04-source/espeak-data/hu_dict", 
+			0, 1, 114, 111, 112, 115, 2, 99, 101, 110, 116, 0, 1, 114, 161, 195, 112, 2, 115, 122, 195, 169, 107, 104, 195, 161, 122, 0, 1, 114,
+			161, 195, 122, 2, 115, 122, 195, 169, 107, 0, 1, 115, 188, 195, 122, 101, 2, 115, 97, 114, 107, 0, 1, 115, 188, 195, 122, 101, 2, 115,
+			122, 111, 98, 0, 1, 115, 188, 195, 122, 101, 2, 115, 122, 195, 169, 108, 0, 1, 115, 188, 195, 122, 101, 2, 115, 122, 197, 145, 107, 101,
+			0, 1, 115, 188, 195, 122, 101, 2, 115, 122, 197, 145, 114, 0, 1, 117, 109, 97, 109, 2, 115, 122, 197, 145, 114, 0, 1, 117, 109, 97,
+			112, 2, 99, 195, 169, 114, 0, 1, 117, 109, 97, 112, 2, 115, 122, 111, 107, 0, 1, 122, 115, 101, 116, 2, 99, 105, 107, 107, 0, 1,
+			122, 115, 101, 116, 2, 99, 195, 169, 108, 0, 1, 122, 115, 105, 108, 2, 99, 105, 112, 101, 108, 0, 1, 161, 195, 2, 99, 97, 112, 108,
+			97, 116, 0, 1, 161, 195, 2, 99, 105, 107, 195, 161, 122, 0, 1, 161, 195, 2, 99, 195, 173, 109, 0, 1, 161, 195, 106, 97, 115, 2,
+			115, 122, 101, 109, 195, 169, 0, 1, 161, 195, 106, 97, 115, 2, 115, 122, 101, 114, 197, 177, 0, 1, 161, 195, 107, 97, 108, 112, 2, 99,
+			195, 169, 103, 0, 1, 161, 195, 107, 111, 114, 98, 2, 115, 101, 108, 121, 0, 1, 161, 195, 107, 111, 114, 98, 2, 115, 122, 0, 1, 161,
+			195, 108, 114, 97, 107, 115, 2, 115, 122, 195, 173, 110, 0, 1, 161, 195, 118, 105, 118, 2, 115, 122, 195, 179, 0, 1, 169, 195, 107, 110,
+			101, 122, 105, 116, 2, 115, 122, 195, 169, 108, 0, 1, 169, 195, 116, 182, 195, 115, 2, 115, 122, 111, 98, 0, 1, 169, 195, 122, 115, 2,
+			115, 117, 103, 195, 161, 114, 0, 1, 169, 195, 122, 115, 2, 115, 122, 111, 114, 116, 195, 173, 114, 0, 1, 169, 195, 122, 115, 2, 115, 122,
+			111, 114, 195, 173, 116, 0, 1, 169, 195, 122, 115, 2, 115, 195, 182, 112, 195, 182, 114, 0, 1, 179, 195, 112, 2, 115, 101, 108, 101, 106,
+			116, 0, 1, 182, 195, 2, 121, 97, 114, 100, 0, 2, 99, 115, 0, 8, 97, 108, 108, 161, 195, 2, 115, 122, 111, 98, 0, 8, 101, 108,
+			103, 101, 122, 115, 2, 115, 122, 0, 8, 102, 97, 116, 2, 115, 101, 108, 121, 0, 8, 105, 115, 122, 161, 195, 112, 2, 115, 122, 0, 8,
+			106, 97, 115, 2, 115, 122, 195, 173, 110, 0, 8, 110, 111, 122, 115, 105, 118, 2, 115, 122, 111, 108, 103, 195, 161, 108, 0, 8, 111, 98,
+			111, 114, 2, 115, 122, 111, 102, 116, 118, 101, 0, 8, 114, 97, 112, 2, 115, 122, 195, 169, 108, 0, 8, 114, 111, 112, 115, 2, 99, 195,
+			169, 108, 0, 8, 115, 101, 2, 115, 122, 195, 169, 108, 0, 8, 115, 101, 116, 2, 115, 122, 197, 145, 114, 0, 8, 145, 197, 114, 2, 115,
+			122, 197, 145, 107, 0, 8, 161, 195, 2, 115, 122, 111, 108, 103, 195, 161, 108, 116, 97, 116, 0, 8, 169, 195, 104, 2, 99, 111, 108, 0,
+			8, 169, 195, 107, 2, 115, 122, 195, 169, 108, 0, 8, 169, 195, 116, 182, 195, 115, 2, 115, 122, 197, 145, 107, 0, 8, 179, 195, 112, 2,
+			115, 122, 111, 108, 103, 195, 161, 108, 0, 104, 1, 97, 2, 195, 169, 110, 0, 116, 1, 182, 195, 100, 108, 188, 195, 107, 2, 103, 121, 197,
+			177, 108, 0, 116, 2, 18, 66, 0, 116, 2, 45, 18, 66, 0, 116, 8, 111, 114, 102, 2, 195, 173, 114, 0, 4, 2, 45, 116, 3, 47,
+			12, 0, 116, 2, 45, 116, 0, 4, 121, 1, 114, 97, 109, 115, 182, 195, 114, 182, 195, 118, 3, 47, 37, 0, 121, 1, 122, 115, 111, 110,
+			0, 121, 8, 97, 107, 2, 110, 0, 116, 106, 8, 111, 2, 195, 161, 114, 3, 47, 57, 0, 115, 122, 8, 186, 195, 2, 195, 169, 107, 3,
+			47, 89, 0, 101, 114, 109, 195, 169, 115, 122, 101, 116, 101, 115, 3, 47, 109, 52, 65, 113, 89, 109, 47, 109, 91, 0, 104, 195, 182, 107,
+			195, 182, 108, 121, 3, 47, 110, 49, 110, 55, 37, 0, 8, 2, 32, 3, 47, 113, 0, 195, 179, 108, 1, 21, 2, 32, 14, 128, 192, 131,
+			3, 47, 115, 55, 0, 197, 145, 108, 1, 21, 2, 32, 14, 128, 192, 131, 3, 47, 118, 55, 0, 4, 115, 1, 105, 115, 97, 122, 161, 195,
+			104, 2, 97, 3, 76, 12, 0, 115, 1, 169, 195, 107, 169, 195, 98, 101, 122, 115, 115, 182, 195, 2, 101, 0, 115, 8, 105, 107, 97, 122,
+			115, 2, 111, 110, 0, 4, 116, 121, 2, 18, 66, 3, 80, 0, 121, 0, 121, 106, 1, 17, 67, 0, 4, 2, 45, 116, 121, 3, 80, 12,
+			0, 116, 2, 45, 116, 121, 0, 121, 2, 45, 116, 121, 0, 121, 106, 1, 17, 65, 2, 17, 65, 0, 4, 115, 122, 1, 101, 109, 2, 118,
+			195, 169, 110, 121, 3, 119, 0, 115, 122, 1, 101, 116, 2, 104, 0, 115, 122, 1, 161, 195, 106, 2, 100, 0, 115, 122, 1, 161, 195, 108,
+			2, 118, 97, 0, 115, 122, 2, 104, 0, 4, 99, 3, 119, 12, 0, 115, 115, 122, 1, 161, 195, 108, 105, 107, 2, 195, 169, 107, 0, 115,
+			122, 1, 97, 108, 108, 97, 104, 2, 195, 161, 110, 97, 107, 0, 115, 122, 1, 97, 108, 108, 97, 104, 2, 195, 179, 100, 0, 115, 122, 1,
+			101, 109, 2, 105, 116, 101, 107, 0, 115, 122, 8, 182, 195, 107, 2, 101, 114, 0, 7, 6, 117, 0, 3, 40, 0, 1, 116, 101, 106, 118,
+			111, 122, 115, 2, 110, 105, 195, 179, 3, 116, 0, 7, 6, 118, 0, 3, 84, 0, 101, 114, 115, 97, 105, 108, 108, 101, 115, 5, 1, 8,
+			3, 84, 109, 52, 89, 114, 57, 0, 8, 2, 32, 3, 84, 113, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 8, 2, 32, 3,
+			37, 49, 89, 0, 3, 49, 89, 0, 7, 6, 121, 0, 4, 3, 37, 0, 1, 25, 2, 25, 0, 8, 3, 57, 0, 97, 114, 100, 3, 57,
+			108, 52, 72, 0, 97, 114, 100, 100, 3, 57, 108, 52, 72, 12, 0, 7, 6, 122, 0, 4, 3, 88, 0, 1, 97, 114, 161, 195, 122, 115,
+			2, 115, 195, 188, 108, 116, 0, 1, 101, 109, 101, 108, 2, 115, 116, 195, 186, 0, 1, 101, 109, 101, 108, 2, 115, 122, 101, 114, 122, 0,
+			1, 101, 109, 101, 110, 0, 1, 110, 169, 195, 112, 0, 1, 114, 111, 116, 2, 115, 195, 161, 103, 0, 1, 117, 97, 108, 97, 107, 2, 115,
+			195, 161, 103, 0, 1, 145, 197, 2, 115, 195, 182, 114, 195, 169, 116, 0, 1, 145, 197, 103, 2, 115, 117, 103, 195, 161, 114, 0, 1, 145,
+			197, 103, 2, 115, 195, 173, 112, 0, 1, 161, 195, 103, 2, 99, 115, 197, 145, 0, 1, 161, 195, 103, 2, 115, 112, 114, 97, 0, 1, 161,
+			195, 103, 2, 115, 117, 103, 0, 1, 161, 195, 104, 2, 115, 97, 114, 107, 111, 116, 0, 1, 161, 195, 104, 2, 115, 97, 114, 111, 107, 0,
+			1, 161, 195, 104, 2, 115, 111, 0, 1, 161, 195, 104, 114, 179, 195, 107, 2, 115, 195, 161, 0, 1, 161, 195, 112, 111, 116, 0, 1, 161,
+			195, 118, 116, 110, 111, 115, 99, 0, 1, 169, 195, 104, 101, 110, 2, 115, 195, 186, 108, 121, 0, 1, 169, 195, 104, 101, 110, 2, 115, 195,
+			186, 108, 121, 195, 186, 0, 1, 169, 195, 107, 2, 115, 101, 98, 0, 1, 169, 195, 107, 2, 115, 122, 0, 1, 169, 195, 107, 2, 115, 195,
+			169, 114, 195, 188, 108, 0, 1, 169, 195, 107, 2, 122, 115, 105, 98, 98, 97, 100, 195, 161, 115, 0, 1, 169, 195, 109, 2, 115, 195, 182,
+			114, 0, 1, 169, 195, 114, 2, 115, 97, 114, 107, 0, 1, 169, 195, 114, 2, 115, 97, 118, 0, 1, 169, 195, 114, 2, 115, 101, 114, 108,
+			101, 103, 0, 1, 169, 195, 114, 2, 115, 101, 114, 112, 101, 110, 121, 197, 145, 0, 1, 169, 195, 114, 2, 115, 105, 112, 107, 0, 1, 169,
+			195, 114, 2, 115, 105, 115, 97, 107, 0, 1, 169, 195, 114, 2, 115, 111, 100, 0, 1, 169, 195, 114, 2, 115, 111, 100, 114, 111, 110, 121,
+			0, 1, 169, 195, 114, 2, 115, 195, 161, 114, 107, 195, 161, 0, 1, 169, 195, 114, 2, 115, 195, 173, 112, 0, 1, 173, 195, 99, 101, 114,
+			112, 2, 115, 195, 169, 103, 0, 1, 173, 195, 116, 2, 115, 195, 161, 118, 0, 1, 173, 195, 118, 114, 161, 195, 2, 115, 195, 186, 106, 0,
+			1, 177, 197, 116, 0, 1, 177, 197, 116, 2, 122, 115, 195, 161, 107, 0, 1, 177, 197, 122, 115, 2, 115, 195, 188, 108, 116, 0, 1, 179,
+			195, 108, 97, 107, 0, 1, 179, 195, 114, 116, 97, 109, 2, 115, 97, 112, 107, 0, 1, 179, 195, 114, 116, 97, 109, 2, 115, 105, 112, 107,
+			0, 1, 179, 195, 114, 116, 97, 109, 2, 122, 115, 195, 161, 107, 0, 1, 182, 195, 107, 122, 101, 2, 115, 111, 114, 0, 1, 182, 195, 107,
+			122, 101, 2, 115, 195, 161, 118, 0, 1, 182, 195, 107, 122, 115, 101, 2, 115, 111, 114, 0, 1, 182, 195, 107, 122, 115, 101, 2, 115, 195,
+			161, 118, 0, 8, 110, 111, 114, 98, 0, 8, 114, 111, 98, 2, 122, 115, 195, 173, 114, 0, 8, 145, 197, 2, 115, 101, 98, 0, 8, 145,
+			197, 2, 115, 117, 116, 0, 8, 145, 197, 103, 0, 8, 145, 197, 103, 2, 115, 195, 188, 118, 195, 182, 108, 116, 0, 8, 161, 195, 108, 2,
+			115, 101, 98, 0, 8, 161, 195, 108, 2, 115, 195, 179, 104, 0, 8, 161, 195, 122, 115, 2, 115, 111, 114, 0, 8, 169, 195, 109, 2, 115,
+			101, 114, 0, 8, 169, 195, 109, 2, 115, 195, 161, 114, 103, 0, 8, 169, 195, 116, 105, 118, 0, 8, 173, 195, 116, 2, 115, 104, 105, 108,
+			108, 0, 8, 173, 195, 116, 2, 115, 111, 114, 0, 8, 173, 195, 116, 2, 115, 111, 117, 0, 8, 173, 195, 116, 2, 122, 115, 195, 161, 107,
+			0, 8, 173, 195, 118, 2, 115, 0, 8, 177, 197, 116, 2, 122, 115, 111, 110, 103, 108, 197, 145, 114, 0, 99, 1, 161, 195, 109, 2, 115,
+			122, 0, 99, 1, 169, 195, 109, 2, 115, 122, 0, 122, 1, 161, 195, 121, 103, 105, 118, 2, 195, 161, 108, 108, 0, 122, 2, 98, 0, 122,
+			2, 116, 0, 122, 2, 118, 0, 4, 115, 122, 3, 88, 89, 0, 115, 122, 8, 161, 195, 103, 2, 195, 161, 109, 108, 97, 0, 115, 122, 8,
+			161, 195, 103, 2, 195, 161, 109, 108, 195, 161, 0, 4, 115, 1, 97, 103, 2, 195, 161, 103, 3, 88, 91, 0, 115, 1, 145, 197, 2, 117,
+			116, 97, 0, 115, 8, 161, 195, 118, 2, 111, 114, 0, 115, 8, 169, 195, 104, 101, 110, 2, 101, 108, 121, 0, 115, 8, 169, 195, 114, 2,
+			195, 179, 0, 4, 1, 97, 2, 116, 3, 89, 0, 1, 97, 2, 116, 195, 161, 110, 0, 1, 97, 109, 108, 97, 107, 108, 97, 2, 107, 111,
+			0, 1, 101, 2, 116, 0, 1, 101, 100, 110, 101, 114, 2, 107, 101, 100, 0, 1, 101, 106, 101, 102, 101, 98, 2, 116, 101, 0, 1, 101,
+			106, 101, 102, 101, 108, 2, 116, 101, 0, 1, 101, 106, 101, 102, 101, 108, 2, 116, 195, 169, 107, 0, 1, 101, 107, 2, 100, 116, 0, 1,
+			101, 118, 114, 101, 122, 115, 2, 107, 101, 100, 0, 1, 101, 121, 103, 101, 2, 107, 101, 0, 1, 101, 121, 103, 101, 2, 116, 101, 0, 1,
+			101, 121, 108, 101, 104, 2, 107, 101, 0, 1, 101, 121, 108, 101, 104, 2, 107, 101, 100, 0, 1, 105, 98, 2, 116, 97, 116, 0, 1, 105,
+			98, 2, 116, 111, 110, 115, 0, 1, 105, 98, 2, 116, 111, 115, 0, 1, 110, 169, 195, 112, 2, 116, 0, 1, 110, 169, 195, 112, 2, 116,
+			195, 161, 114, 0, 1, 111, 98, 111, 100, 2, 116, 0, 1, 111, 98, 111, 107, 2, 116, 0, 1, 111, 102, 111, 112, 2, 107, 111, 100, 0,
+			1, 111, 103, 108, 111, 100, 2, 116, 0, 1, 111, 103, 110, 97, 104, 2, 116, 0, 1, 111, 103, 111, 98, 2, 116, 195, 161, 107, 0, 1,
+			111, 104, 2, 116, 97, 0, 1, 111, 104, 2, 116, 195, 161, 0, 1, 111, 107, 97, 108, 116, 97, 115, 99, 2, 116, 97, 0, 1, 111, 107,
+			97, 108, 116, 97, 115, 99, 2, 116, 111, 107, 0, 1, 111, 107, 108, 97, 108, 103, 111, 102, 2, 116, 0, 1, 111, 107, 108, 161, 195, 108,
+			97, 116, 2, 116, 0, 1, 111, 107, 111, 2, 116, 0, 1, 111, 107, 116, 97, 110, 111, 118, 2, 116, 97, 0, 1, 111, 107, 116, 97, 116,
+			105, 118, 2, 116, 0, 1, 111, 107, 169, 195, 100, 110, 161, 195, 106, 97, 2, 116, 0, 1, 111, 107, 169, 195, 106, 161, 195, 116, 2, 116,
+			97, 115, 115, 0, 1, 111, 107, 169, 195, 106, 161, 195, 116, 2, 116, 97, 116, 0, 1, 111, 114, 161, 195, 116, 97, 104, 2, 116, 0, 1,
+			111, 116, 108, 161, 195, 118, 2, 116, 97, 115, 115, 0, 1, 111, 116, 108, 161, 195, 118, 2, 116, 97, 116, 0, 1, 111, 116, 114, 97, 116,
+			2, 107, 0, 1, 111, 116, 114, 97, 116, 2, 116, 0, 1, 111, 116, 122, 115, 111, 2, 107, 111, 100, 0, 1, 111, 121, 110, 161, 195, 105,
+			104, 2, 116, 0, 1, 111, 121, 110, 161, 195, 109, 108, 117, 110, 97, 116, 2, 116, 0, 1, 145, 197, 108, 101, 100, 101, 122, 115, 2, 107,
+			195, 182, 0, 1, 145, 197, 108, 108, 101, 122, 115, 2, 116, 101, 116, 0, 1, 145, 197, 116, 106, 101, 114, 2, 107, 195, 182, 0, 1, 145,
+			197, 116, 106, 101, 114, 2, 116, 0, 1, 145, 197, 121, 103, 2, 107, 195, 182, 100, 0, 1, 145, 197, 121, 103, 2, 116, 0, 1, 161, 195,
+			98, 105, 104, 2, 116, 97, 116, 0, 1, 161, 195, 104, 2, 116, 97, 114, 116, 195, 161, 115, 0, 1, 161, 195, 107, 99, 111, 107, 2, 116,
+			97, 0, 1, 161, 195, 114, 2, 107, 195, 179, 100, 0, 1, 161, 195, 114, 97, 121, 103, 97, 109, 2, 107, 111, 100, 0, 1, 161, 195, 114,
+			97, 121, 103, 97, 109, 2, 116, 0, 1, 161, 195, 116, 122, 115, 105, 116, 2, 116, 0, 1, 169, 195, 116, 110, 105, 2, 107, 101, 100, 0,
+			1, 169, 195, 116, 110, 105, 2, 116, 0, 1, 173, 195, 118, 2, 115, 122, 105, 110, 116, 0, 1, 179, 195, 116, 106, 186, 195, 121, 110, 2,
+			107, 111, 0, 1, 179, 195, 116, 114, 97, 116, 2, 107, 0, 1, 179, 195, 116, 114, 97, 116, 2, 116, 0, 1, 182, 195, 98, 110, 182, 195,
+			108, 188, 195, 107, 2, 116, 101, 116, 0, 1, 182, 195, 100, 108, 188, 195, 2, 116, 0, 1, 182, 195, 107, 103, 101, 100, 105, 2, 112, 111,
+			110, 0, 1, 182, 195, 107, 109, 101, 122, 115, 2, 116, 0, 1, 182, 195, 107, 115, 99, 161, 195, 110, 97, 116, 2, 116, 195, 161, 114, 115,
+			97, 115, 195, 161, 103, 0, 1, 182, 195, 107, 122, 115, 101, 2, 116, 0, 1, 182, 195, 116, 108, 182, 195, 2, 107, 195, 182, 0, 1, 182,
+			195, 116, 108, 182, 195, 2, 116, 101, 0, 1, 182, 195, 116, 108, 182, 195, 107, 2, 107, 195, 182, 100, 0, 1, 182, 195, 116, 182, 195, 107,
+			2, 107, 195, 182, 0, 1, 182, 195, 116, 182, 195, 107, 2, 116, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2, 107, 111, 0, 1, 186, 195,
+			115, 99, 186, 195, 98, 2, 107, 111, 100, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2, 116, 0, 1, 186, 195, 115, 99, 186, 195, 98, 2,
+			116, 97, 116, 0, 4, 115, 122, 1, 161, 195, 122, 115, 2, 111, 114, 3, 89, 12, 0, 115, 122, 1, 173, 195, 116, 2, 101, 114, 0, 115,
+			122, 1, 173, 195, 118, 2, 105, 110, 116, 101, 115, 0, 115, 122, 1, 177, 197, 116, 2, 101, 114, 195, 169, 115, 115, 122, 0, 115, 122, 1,
+			177, 197, 116, 2, 101, 114, 195, 169, 115, 122, 0, 4, 115, 3, 90, 0, 115, 8, 110, 169, 195, 112, 2, 101, 100, 0, 115, 8, 111, 114,
+			2, 122, 97, 98, 195, 161, 108, 0, 4, 115, 122, 115, 1, 111, 114, 2, 101, 109, 3, 90, 12, 0, 122, 115, 0, 115, 122, 1, 114, 182,
+			195, 116, 2, 195, 161, 115, 122, 108, 195, 179, 3, 90, 88, 0, 4, 1, 169, 195, 104, 101, 110, 2, 115, 195, 169, 3, 91, 0, 115, 1,
+			105, 114, 2, 116, 0, 115, 1, 161, 195, 114, 97, 100, 2, 102, 195, 169, 115, 122, 101, 107, 0, 115, 1, 161, 195, 114, 97, 103, 2, 116,
+			195, 161, 114, 111, 108, 195, 179, 0, 4, 115, 1, 97, 103, 2, 195, 161, 103, 3, 91, 91, 0, 115, 1, 97, 103, 105, 2, 195, 161, 103,
+			0, 115, 8, 97, 114, 161, 195, 122, 115, 2, 195, 161, 103, 0, 4, 1, 108, 97, 119, 2, 101, 114, 3, 119, 0, 1, 179, 195, 103, 111,
+			102, 2, 107, 111, 100, 0, 4, 105, 112, 112, 122, 195, 161, 114, 3, 119, 37, 48, 88, 114, 52, 0, 105, 112, 122, 195, 161, 114, 0, 195,
+			188, 114, 105, 99, 104, 8, 3, 119, 111, 52, 37, 0, 7, 6, 0, 195, 177, 3, 67, 0, 36, 3, 72, 39, 55, 55, 114, 52, 0, 195,
+			167, 3, 76, 0, 195, 159, 3, 89, 0, 4, 195, 164, 3, 109, 0, 195, 166, 0, 195, 184, 3, 110, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts25 = FileInMemory_createWithData (112825, reinterpret_cast<const char *> (&espeakdata_dicts25_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/hu_dict", 
 			U"hu");
-		my addItem_move (espeakdata_dicts28.move());
+		Collection_addItem (me.peek(), espeakdata_dicts25.transfer());
 
-		static unsigned char espeakdata_dicts29_data[3401] = {
-			0, 4, 0, 0, 252, 9, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 0, 6, 65, 8, 71, 37, 0, 0, 0,
-			0, 0, 6, 65, 12, 89, 37, 0, 0, 0, 0, 0, 6, 65, 16, 72, 37, 0, 0, 0, 0, 18, 4, 95, 100, 112, 116, 10, 89, 47,
-			39, 69, 35, 49, 6, 36, 55, 10, 0, 0, 5, 65, 20, 36, 0, 0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 9, 134,
-			213, 164, 213, 184, 214, 130, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 36, 72, 39, 55, 35, 34, 0, 0, 15, 1, 37, 213,
-			191, 213, 184, 213, 175, 213, 184, 213, 189, 0, 29, 0, 0, 0, 0, 0, 21, 1, 42, 213, 161, 213, 189, 213, 191, 213, 178, 213, 161, 213,
-			182, 213, 171, 213, 183, 0, 29, 0, 21, 1, 43, 213, 163, 213, 184, 214, 130, 213, 180, 213, 161, 214, 128, 213, 161, 213, 174, 0, 29, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 61, 213, 176, 213, 161, 213, 190, 213, 161, 213, 189,
-			213, 161, 214, 128, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 213, 175, 213, 161, 214, 128, 213, 184, 213, 178, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 213, 164, 213, 184, 214, 130, 214,
-			132, 76, 11, 136, 213, 164, 213, 184, 214, 130, 214, 132, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 213, 182, 213, 161, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 213, 167, 214, 128, 76, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			7, 132, 213, 184, 214, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 9, 4, 213, 184, 213, 190, 39, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 10,
-			213, 184, 213, 190, 214, 132, 213, 165, 214, 128, 39, 84, 115, 36, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 51, 88,
-			57, 36, 34, 36, 89, 6, 40, 50, 0, 0, 13, 3, 95, 48, 67, 107, 35, 34, 57, 6, 40, 34, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 213, 165, 213, 182, 214, 132, 76, 0, 0, 11, 136, 213, 180, 213, 165, 213, 182,
-			214, 132, 76, 0, 0, 13, 138, 213, 182, 214, 128, 213, 161, 213, 182, 214, 132, 76, 0, 11, 3, 95, 49, 48, 47, 6, 35, 89, 13, 0,
+		static unsigned char espeakdata_dicts26_data[2436] = {
+			0, 4, 0, 0, 114, 6, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 0, 6, 65, 8, 71, 37, 0, 0, 0,
+			0, 0, 6, 65, 12, 89, 37, 0, 0, 0, 0, 0, 6, 65, 16, 72, 37, 0, 0, 0, 0, 0, 5, 65, 20, 36, 0, 0, 0, 0,
+			0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 4, 16, 20, 10, 89, 47, 39, 69, 35,
+			49, 6, 36, 55, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3,
+			95, 51, 88, 57, 36, 34, 36, 89, 6, 40, 50, 0, 0, 13, 3, 95, 48, 67, 107, 35, 34, 57, 6, 40, 34, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 48, 47, 6, 35, 89, 13, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 55, 88, 57, 36, 39, 25, 35, 50, 35, 89, 6, 40, 50, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 88, 47, 35, 89, 50, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 11, 3, 95, 50, 88, 115, 89, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 63,
@@ -31260,178 +21166,153 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 50, 65, 37, 55, 6, 39, 50, 0, 0, 0, 0, 13, 4, 95, 48, 77, 49, 107, 35, 88,
 			6, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 213, 180, 213, 171, 76, 0, 0, 0, 0, 0, 0, 7, 132, 213, 164, 213,
-			161, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 99, 97, 112, 65, 4, 36, 117, 23, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 194, 171, 118, 35, 49, 4, 36, 34, 25, 13,
-			15, 71, 6, 35, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 213, 165, 214, 132, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 19, 3, 95, 194, 187, 118, 35, 49, 4, 36, 34, 25, 13, 15, 113, 6, 35, 49, 0, 0, 0, 0, 0, 9, 134, 213, 175, 213, 161,
-			213, 180, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 213, 165, 213, 190, 76,
-			0, 0, 0, 9, 134, 213, 176, 213, 165, 213, 191, 76, 7, 132, 213, 165, 213, 189, 76, 0, 0, 0, 0, 0, 7, 132, 213, 165, 213, 182,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 214, 138, 57, 36, 50, 25, 35, 65, 50,
-			6, 35, 0, 0, 0, 0, 15, 3, 95, 214, 137, 84, 36, 34, 75, 35, 49, 6, 36, 47, 0, 0, 0, 0, 0, 8, 3, 95, 214, 133,
-			39, 0, 101, 9, 3, 95, 214, 133, 6, 39, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 10, 3, 95, 213, 168, 6, 13, 25, 0, 101, 9, 3, 95, 213, 168, 6, 13, 12, 0, 0, 8, 3, 95, 213, 167, 36, 0, 101,
-			9, 3, 95, 213, 167, 6, 36, 12, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 213, 161, 110, 71, 0, 101, 8, 3, 95, 213, 161, 35,
-			12, 0, 0, 0, 12, 3, 95, 213, 159, 48, 35, 47, 6, 37, 58, 0, 0, 15, 3, 95, 213, 158, 107, 35, 34, 114, 35, 49, 6, 35,
-			50, 0, 0, 10, 3, 95, 213, 157, 71, 6, 40, 25, 0, 0, 19, 3, 95, 213, 156, 71, 35, 114, 35, 49, 35, 50, 118, 35, 49, 6,
-			35, 50, 0, 0, 11, 3, 95, 213, 155, 91, 6, 36, 91, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2,
-			95, 41, 113, 35, 49, 35, 81, 4, 37, 117, 13, 15, 113, 6, 35, 49, 0, 0, 19, 2, 95, 40, 113, 35, 49, 35, 81, 4, 37, 117,
-			13, 15, 71, 6, 35, 114, 0, 0, 0, 13, 2, 95, 46, 65, 37, 75, 35, 49, 6, 36, 47, 0, 0, 8, 2, 95, 45, 81, 37, 117,
-			0, 0, 14, 2, 95, 44, 89, 47, 39, 34, 35, 49, 6, 36, 47, 0, 0, 11, 2, 95, 51, 57, 36, 34, 6, 36, 115, 0, 0, 11,
-			2, 95, 50, 57, 36, 34, 49, 6, 40, 0, 0, 9, 2, 95, 49, 65, 6, 36, 49, 0, 0, 10, 2, 95, 48, 88, 13, 69, 6, 39,
-			0, 0, 9, 2, 95, 55, 57, 6, 39, 25, 0, 0, 9, 2, 95, 54, 84, 6, 36, 114, 0, 0, 10, 2, 95, 53, 107, 6, 37, 50,
-			81, 0, 0, 10, 2, 95, 52, 118, 6, 39, 34, 89, 0, 0, 9, 2, 214, 135, 57, 36, 84, 0, 101, 9, 2, 214, 135, 57, 6, 36,
-			84, 0, 0, 14, 2, 95, 58, 84, 36, 34, 75, 35, 49, 6, 36, 47, 0, 8, 2, 214, 134, 83, 36, 0, 101, 8, 2, 214, 134, 83,
-			6, 13, 0, 0, 9, 2, 95, 57, 6, 37, 50, 13, 0, 0, 8, 2, 95, 56, 6, 40, 25, 0, 8, 2, 214, 132, 115, 36, 0, 101,
-			8, 2, 214, 132, 115, 6, 13, 0, 0, 9, 2, 214, 131, 113, 108, 34, 0, 101, 8, 2, 214, 131, 113, 6, 13, 0, 0, 9, 2, 214,
-			130, 107, 108, 50, 0, 101, 8, 2, 214, 130, 6, 40, 12, 0, 0, 8, 2, 214, 129, 114, 39, 0, 101, 8, 2, 214, 129, 114, 6, 13,
-			0, 0, 8, 2, 214, 128, 34, 36, 0, 101, 8, 2, 214, 128, 34, 6, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 9, 134, 213, 184, 214, 128, 213, 168, 76, 0, 5, 130, 213, 167, 76, 0, 8, 2, 213, 166, 88, 35, 0, 101, 8, 2,
-			213, 166, 88, 6, 13, 0, 0, 9, 2, 213, 165, 57, 36, 76, 0, 101, 8, 2, 213, 165, 57, 6, 36, 0, 0, 8, 2, 213, 164, 72,
-			35, 0, 101, 8, 2, 213, 164, 72, 6, 13, 0, 0, 9, 2, 213, 163, 81, 37, 65, 0, 101, 8, 2, 213, 163, 81, 6, 13, 0, 0,
-			9, 2, 213, 162, 71, 36, 50, 0, 101, 8, 2, 213, 162, 71, 6, 13, 0, 0, 0, 0, 9, 2, 213, 175, 49, 36, 50, 0, 101, 8,
-			2, 213, 175, 49, 6, 13, 0, 0, 8, 2, 213, 174, 117, 35, 0, 101, 8, 2, 213, 174, 117, 6, 13, 0, 0, 8, 2, 213, 173, 106,
-			36, 0, 101, 8, 2, 213, 173, 106, 6, 13, 0, 0, 9, 2, 213, 172, 55, 108, 50, 0, 101, 8, 2, 213, 172, 55, 6, 13, 0, 0,
-			9, 2, 213, 171, 37, 50, 37, 0, 101, 8, 2, 213, 171, 6, 37, 12, 0, 0, 8, 2, 213, 170, 90, 36, 0, 101, 8, 2, 213, 170,
-			90, 6, 13, 0, 0, 8, 2, 213, 169, 25, 39, 0, 101, 8, 2, 213, 169, 25, 6, 13, 0, 0, 0, 8, 2, 213, 183, 91, 35, 0,
-			101, 8, 2, 213, 183, 91, 6, 13, 0, 0, 8, 2, 213, 182, 50, 40, 0, 101, 8, 2, 213, 182, 50, 6, 13, 0, 0, 8, 2, 213,
-			181, 107, 37, 0, 101, 8, 2, 213, 181, 57, 6, 13, 0, 0, 9, 2, 213, 180, 65, 36, 50, 0, 101, 8, 2, 213, 180, 65, 6, 13,
-			0, 0, 8, 2, 213, 179, 76, 36, 0, 101, 8, 2, 213, 179, 76, 6, 13, 0, 0, 9, 2, 213, 178, 54, 35, 47, 0, 101, 8, 2,
-			213, 178, 54, 6, 13, 0, 0, 8, 2, 213, 177, 116, 35, 0, 101, 8, 2, 213, 177, 116, 6, 13, 0, 0, 8, 2, 213, 176, 107, 39,
-			0, 101, 8, 2, 213, 176, 107, 6, 13, 0, 0, 9, 2, 213, 191, 47, 108, 50, 0, 101, 8, 2, 213, 191, 47, 6, 13, 0, 0, 9,
-			2, 213, 190, 84, 36, 84, 0, 101, 8, 2, 213, 190, 84, 6, 13, 0, 0, 8, 2, 213, 189, 89, 36, 0, 101, 8, 2, 213, 189, 89,
-			6, 13, 0, 0, 8, 2, 213, 188, 52, 35, 0, 101, 8, 2, 213, 188, 52, 6, 13, 0, 0, 8, 2, 213, 187, 75, 36, 0, 101, 8,
-			2, 213, 187, 75, 6, 13, 0, 0, 8, 2, 213, 186, 48, 36, 0, 101, 8, 2, 213, 186, 48, 6, 13, 0, 0, 8, 2, 213, 185, 118,
-			35, 0, 101, 8, 2, 213, 185, 118, 6, 13, 0, 0, 8, 2, 213, 184, 84, 39, 0, 101, 8, 2, 213, 184, 84, 6, 39, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 134, 213, 161, 213, 181, 213, 164, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 213, 161, 213, 181, 213, 189, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 213, 161, 213, 181, 213, 182, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 213, 171, 213, 189, 213, 175, 76, 28, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 18, 66, 213, 162, 0, 213, 163, 0, 213, 169, 0, 213, 175, 0, 213, 186, 0, 213, 191, 0, 214, 132, 0,
-			7, 6, 18, 67, 213, 184, 214, 130, 213, 181, 0, 213, 184, 214, 130, 0, 213, 161, 213, 181, 0, 213, 171, 214, 130, 0, 213, 171, 213, 181,
-			0, 213, 184, 213, 181, 0, 213, 161, 0, 213, 165, 0, 213, 168, 0, 213, 171, 0, 213, 184, 0, 214, 133, 0, 7, 6, 20, 0, 0, 0,
-			135, 5, 0, 0, 101, 5, 130, 5, 0, 0, 0, 0, 6, 1, 50, 0, 4, 3, 35, 0, 213, 181, 5, 1, 2, 32, 0, 213, 181, 3,
-			110, 0, 7, 6, 1, 51, 0, 3, 71, 0, 8, 2, 17, 66, 3, 71, 13, 0, 7, 6, 1, 52, 0, 3, 81, 0, 8, 2, 17, 66,
-			3, 81, 13, 0, 7, 6, 1, 53, 0, 3, 72, 0, 8, 2, 17, 66, 3, 72, 13, 0, 7, 6, 1, 54, 0, 3, 36, 0, 213, 161,
-			3, 57, 35, 0, 8, 3, 57, 36, 0, 214, 133, 3, 57, 39, 0, 7, 6, 1, 55, 0, 8, 2, 18, 66, 12, 3, 13, 88, 0, 3,
-			88, 0, 8, 2, 17, 66, 3, 88, 13, 0, 7, 6, 1, 56, 0, 3, 36, 0, 214, 133, 3, 109, 0, 213, 181, 3, 111, 0, 7, 6,
-			1, 57, 0, 3, 13, 0, 7, 6, 1, 58, 0, 3, 25, 0, 8, 2, 17, 66, 3, 25, 13, 0, 7, 6, 1, 59, 0, 3, 90, 0,
-			7, 6, 1, 60, 0, 3, 37, 0, 214, 130, 2, 32, 3, 37, 84, 0, 214, 130, 3, 108, 0, 213, 181, 2, 25, 3, 112, 0, 7, 6,
-			1, 61, 0, 3, 55, 0, 8, 2, 17, 66, 3, 55, 13, 0, 7, 6, 1, 62, 0, 3, 106, 0, 7, 6, 1, 63, 0, 3, 117, 0,
-			8, 2, 17, 66, 3, 117, 13, 0, 7, 6, 1, 64, 0, 3, 49, 0, 8, 2, 17, 66, 3, 49, 13, 0, 7, 6, 1, 65, 0, 3,
-			107, 0, 8, 2, 17, 66, 3, 107, 13, 0, 7, 6, 1, 66, 0, 3, 116, 0, 8, 2, 17, 66, 3, 116, 13, 0, 7, 6, 1, 67,
-			0, 3, 54, 0, 8, 2, 17, 66, 3, 54, 13, 0, 7, 6, 1, 68, 0, 3, 76, 0, 8, 2, 17, 66, 3, 76, 13, 0, 7, 6,
-			1, 69, 0, 1, 17, 67, 2, 32, 3, 13, 65, 0, 4, 3, 65, 0, 1, 18, 67, 2, 32, 0, 8, 2, 17, 66, 3, 65, 13, 0,
-			7, 6, 1, 70, 0, 3, 57, 0, 8, 2, 17, 66, 3, 57, 13, 0, 5, 1, 8, 3, 107, 0, 5, 1, 8, 2, 17, 66, 3, 107,
-			13, 0, 7, 6, 1, 71, 0, 1, 17, 67, 2, 32, 3, 13, 50, 0, 4, 3, 50, 0, 1, 18, 67, 2, 32, 0, 8, 2, 17, 66,
-			3, 50, 13, 0, 7, 6, 1, 72, 0, 8, 2, 213, 191, 3, 13, 91, 0, 3, 91, 0, 8, 2, 17, 66, 3, 91, 13, 0, 7, 6,
-			1, 73, 0, 4, 3, 39, 0, 213, 181, 5, 1, 2, 32, 0, 213, 181, 1, 17, 65, 3, 39, 57, 0, 214, 130, 3, 40, 0, 213, 181,
-			3, 40, 57, 0, 214, 130, 2, 17, 65, 3, 84, 0, 8, 3, 84, 39, 0, 7, 6, 1, 74, 0, 3, 118, 0, 8, 2, 17, 66, 3,
-			118, 13, 0, 7, 6, 1, 75, 0, 3, 48, 0, 8, 2, 17, 66, 3, 48, 13, 0, 7, 6, 1, 76, 0, 3, 75, 0, 8, 2, 17,
-			66, 3, 75, 13, 0, 7, 6, 1, 77, 0, 5, 1, 1, 18, 67, 2, 18, 67, 3, 16, 0, 3, 51, 0, 8, 2, 17, 66, 3, 51,
-			13, 0, 7, 6, 1, 78, 0, 8, 2, 18, 66, 12, 3, 13, 89, 0, 3, 89, 0, 8, 2, 17, 66, 3, 89, 13, 0, 7, 6, 1,
-			79, 0, 3, 84, 0, 8, 2, 17, 66, 3, 84, 13, 0, 7, 6, 1, 80, 0, 3, 47, 0, 8, 2, 17, 66, 3, 47, 13, 0, 7,
-			6, 1, 81, 0, 1, 17, 67, 2, 32, 3, 13, 34, 0, 4, 3, 34, 0, 1, 18, 67, 2, 32, 0, 5, 1, 1, 18, 67, 2, 18,
-			67, 0, 8, 2, 17, 66, 3, 34, 13, 0, 7, 6, 1, 82, 0, 3, 114, 0, 8, 2, 17, 66, 3, 114, 13, 0, 7, 6, 1, 83,
-			0, 3, 84, 0, 8, 2, 17, 66, 3, 84, 13, 0, 7, 6, 1, 84, 0, 3, 113, 0, 8, 2, 17, 66, 3, 113, 13, 0, 7, 6,
-			1, 85, 0, 3, 115, 0, 8, 2, 17, 66, 3, 115, 13, 0, 7, 6, 1, 86, 0, 3, 39, 0, 7, 6, 1, 87, 0, 3, 83, 0,
-			8, 2, 17, 66, 3, 83, 13, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts29 = FileInMemory_createWithData (3400, reinterpret_cast<const char *> (&espeakdata_dicts29_data), 
-			U"espeak-1.48.04-source/espeak-data/hy_dict", 
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 3, 95, 214, 133, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 3, 95, 213, 168, 6, 13, 25, 0, 0, 7, 3, 95, 213, 167, 36, 0, 0, 0, 0, 0, 0, 0, 8, 3, 95, 213, 161,
+			110, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 3, 1, 16, 65, 4, 36,
+			117, 23, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 95, 51, 57, 36, 34, 6, 36, 115, 0, 0, 11, 2, 95, 50, 57, 36, 34, 49,
+			6, 40, 0, 0, 9, 2, 95, 49, 65, 6, 36, 49, 0, 0, 10, 2, 95, 48, 88, 13, 69, 6, 39, 0, 0, 9, 2, 95, 55, 57,
+			6, 39, 25, 0, 0, 9, 2, 95, 54, 84, 6, 36, 114, 0, 0, 10, 2, 95, 53, 107, 6, 37, 50, 81, 0, 0, 10, 2, 95, 52,
+			76, 6, 39, 34, 89, 0, 0, 0, 7, 2, 214, 134, 83, 36, 0, 0, 9, 2, 95, 57, 6, 37, 50, 13, 0, 0, 8, 2, 95, 56,
+			6, 40, 25, 0, 7, 2, 214, 132, 115, 36, 0, 0, 8, 2, 214, 131, 113, 108, 34, 0, 0, 8, 2, 214, 130, 107, 108, 50, 0, 0,
+			7, 2, 214, 129, 117, 39, 0, 0, 7, 2, 214, 128, 34, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 7, 2, 213, 166, 88, 35, 0, 0, 8, 2, 213, 165, 57, 36, 76, 0, 0, 7, 2, 213, 164, 72, 35, 0, 0, 8, 2,
+			213, 163, 81, 37, 65, 0, 0, 8, 2, 213, 162, 71, 36, 50, 0, 0, 0, 0, 8, 2, 213, 175, 49, 36, 50, 0, 0, 7, 2, 213,
+			174, 117, 35, 0, 0, 7, 2, 213, 173, 106, 36, 0, 0, 8, 2, 213, 172, 55, 108, 50, 0, 0, 8, 2, 213, 171, 37, 50, 37, 0,
+			0, 7, 2, 213, 170, 90, 36, 0, 0, 7, 2, 213, 169, 25, 39, 0, 0, 0, 7, 2, 213, 183, 91, 35, 0, 0, 7, 2, 213, 182,
+			50, 40, 0, 0, 7, 2, 213, 181, 107, 37, 0, 0, 8, 2, 213, 180, 65, 36, 50, 0, 0, 7, 2, 213, 179, 80, 36, 0, 0, 8,
+			2, 213, 178, 54, 35, 72, 0, 0, 7, 2, 213, 177, 116, 35, 0, 0, 7, 2, 213, 176, 107, 39, 0, 0, 8, 2, 213, 191, 47, 108,
+			50, 0, 0, 8, 2, 213, 190, 84, 36, 84, 0, 0, 7, 2, 213, 189, 89, 36, 0, 0, 7, 2, 213, 188, 69, 35, 0, 0, 7, 2,
+			213, 187, 75, 36, 0, 0, 7, 2, 213, 186, 48, 36, 0, 0, 7, 2, 213, 185, 76, 35, 0, 0, 7, 2, 213, 184, 84, 39, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 18, 66, 213, 162, 0, 213, 163, 0, 213, 169, 0, 213, 175, 0, 213, 186, 0, 213, 191, 0, 214, 132, 0, 7, 6, 18, 67, 213, 184,
+			214, 130, 0, 213, 161, 213, 181, 0, 213, 171, 214, 130, 0, 213, 171, 213, 181, 0, 213, 184, 213, 181, 0, 7, 6, 20, 0, 0, 135, 5,
+			0, 0, 101, 5, 130, 5, 0, 0, 0, 0, 6, 1, 50, 0, 4, 3, 35, 0, 213, 181, 2, 32, 0, 213, 181, 3, 110, 0, 7, 6,
+			1, 51, 0, 3, 71, 0, 8, 2, 17, 67, 3, 71, 13, 0, 7, 6, 1, 52, 0, 3, 81, 0, 8, 2, 17, 67, 3, 81, 13, 0,
+			7, 6, 1, 53, 0, 3, 72, 0, 8, 2, 17, 67, 3, 72, 13, 0, 7, 6, 1, 54, 0, 3, 36, 0, 213, 161, 3, 57, 35, 0,
+			8, 3, 57, 36, 0, 214, 133, 3, 57, 39, 0, 7, 6, 1, 55, 0, 8, 2, 18, 66, 3, 13, 88, 0, 3, 88, 0, 8, 2, 17,
+			67, 3, 88, 13, 0, 7, 6, 1, 56, 0, 3, 36, 0, 214, 133, 3, 109, 0, 213, 181, 3, 111, 0, 7, 6, 1, 57, 0, 3, 13,
+			0, 7, 6, 1, 58, 0, 3, 25, 0, 8, 2, 17, 67, 3, 25, 13, 0, 7, 6, 1, 59, 0, 3, 90, 0, 7, 6, 1, 60, 0,
+			3, 37, 0, 214, 130, 2, 32, 3, 37, 84, 0, 214, 130, 3, 108, 0, 213, 181, 3, 112, 0, 7, 6, 1, 61, 0, 3, 55, 0, 8,
+			2, 17, 67, 3, 55, 13, 0, 7, 6, 1, 62, 0, 3, 106, 0, 7, 6, 1, 63, 0, 3, 117, 0, 8, 2, 17, 67, 3, 117, 13,
+			0, 7, 6, 1, 64, 0, 3, 49, 0, 8, 2, 17, 67, 3, 49, 13, 0, 7, 6, 1, 65, 0, 3, 107, 0, 8, 2, 17, 67, 3,
+			107, 13, 0, 7, 6, 1, 66, 0, 3, 116, 0, 8, 2, 17, 67, 3, 116, 13, 0, 7, 6, 1, 67, 0, 3, 54, 0, 8, 2, 17,
+			67, 3, 54, 13, 0, 7, 6, 1, 68, 0, 3, 80, 0, 8, 2, 17, 67, 3, 80, 13, 0, 7, 6, 1, 69, 0, 1, 17, 67, 2,
+			32, 3, 13, 65, 0, 4, 3, 65, 0, 1, 18, 67, 2, 32, 0, 8, 2, 17, 67, 3, 65, 13, 0, 7, 6, 1, 70, 0, 3, 107,
+			0, 8, 2, 17, 67, 3, 107, 13, 0, 7, 6, 1, 71, 0, 1, 17, 67, 2, 32, 3, 13, 50, 0, 4, 3, 50, 0, 1, 18, 67,
+			2, 32, 0, 8, 2, 17, 67, 3, 50, 13, 0, 7, 6, 1, 72, 0, 8, 2, 213, 191, 3, 13, 91, 0, 3, 91, 0, 8, 2, 17,
+			67, 3, 91, 13, 0, 7, 6, 1, 73, 0, 4, 3, 39, 0, 213, 181, 2, 32, 0, 213, 181, 1, 17, 65, 3, 39, 57, 0, 214, 130,
+			3, 40, 0, 213, 181, 3, 40, 57, 0, 214, 130, 2, 17, 65, 3, 84, 0, 8, 3, 84, 39, 0, 7, 6, 1, 74, 0, 3, 76, 0,
+			8, 2, 17, 67, 3, 76, 13, 0, 7, 6, 1, 75, 0, 3, 48, 0, 8, 2, 17, 67, 3, 48, 13, 0, 7, 6, 1, 76, 0, 3,
+			75, 0, 8, 2, 17, 67, 3, 75, 13, 0, 7, 6, 1, 77, 0, 3, 69, 0, 8, 2, 17, 67, 3, 69, 13, 0, 7, 6, 1, 78,
+			0, 8, 2, 18, 66, 3, 13, 89, 0, 3, 89, 0, 8, 2, 17, 67, 3, 89, 13, 0, 7, 6, 1, 79, 0, 3, 84, 0, 8, 2,
+			17, 67, 3, 84, 13, 0, 7, 6, 1, 80, 0, 3, 47, 0, 8, 2, 17, 67, 3, 47, 13, 0, 7, 6, 1, 81, 0, 1, 17, 67,
+			2, 32, 3, 13, 34, 0, 4, 3, 34, 0, 1, 18, 67, 2, 32, 0, 8, 2, 17, 67, 3, 34, 13, 0, 7, 6, 1, 82, 0, 3,
+			114, 0, 8, 2, 17, 67, 3, 114, 13, 0, 7, 6, 1, 83, 0, 3, 84, 0, 8, 2, 17, 67, 3, 84, 13, 0, 7, 6, 1, 84,
+			0, 8, 2, 17, 67, 3, 48, 6, 13, 0, 3, 113, 0, 7, 6, 1, 85, 0, 3, 115, 0, 8, 2, 17, 67, 3, 115, 13, 0, 7,
+			6, 1, 86, 0, 3, 39, 0, 7, 6, 1, 87, 0, 3, 83, 0, 8, 2, 17, 67, 3, 83, 13, 0, 7, 6, 0, 36, 3, 72, 39,
+			55, 13, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts26 = FileInMemory_createWithData (2435, reinterpret_cast<const char *> (&espeakdata_dicts26_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/hy_dict", 
 			U"hy");
-		my addItem_move (espeakdata_dicts29.move());
+		Collection_addItem (me.peek(), espeakdata_dicts26.transfer());
 
-		static unsigned char espeakdata_dicts30_data[3083] = {
-			0, 4, 0, 0, 29, 10, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 7, 196, 84, 229, 21, 44, 72, 0, 6,
-			65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12, 76, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 7, 196, 77, 80,
-			84, 84, 72, 0, 0, 14, 4, 95, 100, 112, 116, 10, 49, 4, 39, 65, 35, 10, 0, 0, 5, 65, 20, 36, 0, 0, 0, 0, 0, 6,
-			65, 24, 109, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 11, 1,
-			35, 48, 6, 35, 81, 35, 51, 0, 27, 0, 5, 65, 36, 37, 0, 0, 12, 1, 37, 48, 13, 52, 89, 6, 109, 50, 0, 27, 0, 14,
-			1, 38, 47, 4, 35, 50, 72, 35, 72, 6, 35, 50, 0, 0, 0, 6, 65, 40, 75, 36, 0, 0, 0, 12, 1, 42, 71, 6, 37, 50,
-			47, 35, 68, 0, 27, 0, 12, 1, 43, 47, 6, 35, 65, 71, 35, 107, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 18, 1,
-			47, 81, 4, 35, 52, 37, 89, 15, 65, 6, 37, 52, 37, 68, 0, 27, 0, 13, 4, 95, 100, 105, 97, 6, 40, 65, 55, 114, 47, 0,
-			6, 65, 48, 109, 55, 0, 0, 0, 0, 0, 6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6, 65, 56, 109, 50, 0, 0, 0, 0, 0,
-			5, 65, 60, 39, 0, 0, 17, 1, 61, 89, 4, 35, 65, 35, 15, 72, 6, 109, 68, 35, 50, 0, 27, 0, 0, 0, 12, 1, 64, 35,
-			15, 49, 6, 109, 110, 50, 81, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 37, 0, 0, 0, 0, 0, 6, 65,
-			72, 109, 51, 0, 0, 0, 0, 11, 4, 95, 100, 111, 116, 72, 6, 110, 47, 0, 0, 6, 65, 76, 109, 89, 0, 0, 0, 0, 0, 6,
-			65, 80, 47, 36, 0, 0, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88, 83, 36, 0, 0, 0, 0, 0, 12, 1,
-			92, 6, 71, 109, 49, 89, 55, 109, 91, 0, 6, 65, 92, 58, 36, 0, 0, 0, 15, 1, 94, 47, 4, 35, 50, 72, 35, 47, 6, 39,
-			48, 37, 0, 0, 0, 15, 4, 95, 49, 77, 49, 89, 13, 34, 6, 37, 71, 40, 10, 0, 7, 65, 96, 109, 49, 89, 0, 0, 15, 4,
-			95, 49, 77, 50, 89, 13, 75, 6, 40, 47, 35, 10, 0, 0, 16, 4, 95, 49, 77, 51, 89, 13, 65, 6, 37, 55, 57, 35, 51, 0,
-			0, 0, 6, 65, 100, 57, 36, 0, 0, 0, 0, 0, 7, 65, 104, 88, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6, 37, 55, 72, 36, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6,
-			37, 55, 72, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 64, 17, 1, 72,
-			0, 0, 0, 0, 0, 14, 4, 95, 109, 99, 110, 65, 6, 35, 49, 52, 110, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 144, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 19, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 64, 85, 72, 0, 0, 0, 0, 0, 0, 6, 195, 76, 19,
-			135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 111, 103, 111, 6, 110,
-			81, 39, 50, 109, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 100, 19, 135, 72, 6, 195, 32, 19, 135, 72,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 98, 114, 118, 71, 52, 6, 37, 12, 84, 0, 0, 0, 0, 0, 18, 4, 95, 97,
-			99, 50, 72, 40, 71, 13, 55, 35, 49, 57, 6, 40, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 16, 3, 95, 51, 88, 47, 6, 37, 81, 35, 48, 40, 55, 40, 107, 0, 0, 13, 3, 95, 48, 67, 51, 6, 35,
-			47, 40, 89, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 67, 89, 13, 52, 6, 35, 47, 40, 89, 23, 0, 0, 0,
-			12, 68, 8, 80, 197, 44, 71, 109, 76, 124, 19, 0, 12, 68, 8, 80, 133, 44, 71, 109, 71, 124, 19, 0, 0, 0, 0, 0, 20, 3,
-			95, 49, 57, 89, 13, 65, 71, 6, 37, 55, 35, 50, 71, 13, 55, 35, 89, 0, 0, 19, 3, 95, 49, 56, 72, 13, 55, 6, 35, 48,
-			35, 50, 71, 13, 55, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49, 89, 6, 13, 71, 13, 55, 35, 89, 0, 0,
-			14, 3, 95, 49, 48, 89, 13, 48, 6, 40, 55, 40, 107, 0, 0, 16, 3, 95, 49, 51, 47, 6, 37, 81, 35, 71, 13, 55, 35, 89,
-			0, 0, 15, 3, 95, 49, 50, 72, 6, 40, 35, 71, 13, 55, 35, 89, 0, 0, 16, 3, 95, 49, 53, 55, 6, 37, 65, 35, 71, 13,
-			55, 35, 89, 0, 0, 17, 3, 95, 49, 52, 6, 13, 65, 48, 35, 47, 71, 13, 55, 35, 89, 0, 0, 17, 3, 95, 49, 55, 47, 6,
-			40, 75, 40, 107, 71, 13, 55, 35, 89, 0, 0, 16, 3, 95, 49, 54, 6, 13, 50, 35, 65, 71, 13, 55, 35, 89, 0, 0, 8, 197,
-			4, 64, 76, 4, 128, 72, 0, 17, 3, 95, 55, 88, 47, 6, 40, 75, 40, 107, 48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 198, 16, 20, 137, 64, 17, 1, 72, 0, 0, 0, 0, 13, 4, 95, 97, 99, 117, 35, 49, 57, 6, 40, 47, 0, 0, 0,
-			0, 8, 66, 44, 80, 49, 13, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 50, 88, 72, 6, 40, 35, 48, 40, 55,
-			40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 20, 137, 72, 0, 0, 0, 0, 0, 17, 3, 95, 63, 63, 49, 4, 39,
-			72, 36, 107, 6, 40, 52, 40, 83, 0, 0, 0, 0, 17, 3, 95, 52, 88, 6, 109, 65, 48, 35, 47, 48, 40, 55, 40, 107, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 53, 88, 55, 6, 37, 65, 35, 48, 40, 55, 40, 107, 0, 0, 0, 12, 4, 95, 114, 110,
-			103, 52, 6, 37, 68, 81, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 54, 88, 6, 109, 50, 35, 65, 48, 40, 55, 40, 107, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 56, 88, 72, 13, 55, 6, 35, 48, 35, 50, 48, 40,
-			55, 40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 57, 88, 89, 13, 65, 71, 6, 37, 55, 35, 50, 48, 40, 55, 40,
-			107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 115, 116, 107, 89, 47, 51, 6, 39, 49, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 99, 105,
-			114, 47, 6, 39, 48, 37, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 50, 75, 6, 40, 47, 35, 10, 0, 0, 14, 4, 95, 48, 77,
-			51, 65, 6, 37, 55, 57, 35, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 51, 6, 37, 71, 40, 10, 0, 0, 0, 0, 0, 0, 7,
-			196, 8, 18, 23, 4, 72, 0, 0, 0, 0, 0, 14, 4, 95, 108, 105, 103, 72, 6, 117, 81, 51, 35, 83, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 14, 4, 95, 99, 101, 100, 89, 13, 72, 6, 37, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4,
-			95, 99, 97, 112, 71, 6, 109, 89, 35, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 103, 114,
-			118, 81, 52, 6, 35, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 194, 163, 48, 39, 50, 89,
-			47, 6, 109, 52, 55, 37, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 198, 76, 80, 129, 28, 18, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 17, 2, 95, 34, 47, 4, 35, 50, 72, 35, 49, 6, 40, 47, 37, 48, 0, 0, 17, 2, 95, 33, 47, 4, 35, 50, 72, 35,
-			15, 89, 6, 109, 52, 40, 0, 0, 0, 19, 2, 95, 39, 49, 4, 40, 47, 37, 48, 15, 47, 6, 40, 68, 81, 35, 55, 0, 0, 0,
-			0, 0, 0, 0, 18, 2, 95, 41, 49, 4, 40, 52, 40, 68, 15, 47, 6, 40, 47, 40, 48, 0, 0, 17, 2, 95, 40, 49, 4, 40,
-			52, 40, 68, 15, 71, 6, 40, 49, 35, 0, 0, 10, 67, 64, 84, 128, 48, 13, 34, 0, 72, 0, 11, 2, 95, 46, 47, 6, 37, 47,
-			37, 19, 0, 0, 17, 2, 95, 45, 47, 4, 35, 50, 72, 35, 107, 6, 40, 71, 40, 68, 0, 0, 10, 2, 95, 44, 49, 6, 39, 65,
-			35, 0, 0, 10, 2, 95, 51, 47, 6, 37, 81, 35, 0, 0, 9, 2, 95, 50, 72, 6, 40, 35, 0, 0, 10, 2, 95, 49, 89, 6,
-			35, 47, 40, 0, 0, 9, 2, 95, 48, 50, 6, 39, 55, 0, 0, 11, 2, 95, 55, 47, 6, 40, 75, 40, 107, 0, 0, 10, 2, 95,
-			54, 6, 13, 50, 35, 65, 0, 0, 10, 2, 95, 53, 55, 6, 37, 65, 35, 0, 0, 11, 2, 95, 52, 6, 13, 65, 48, 35, 47, 0,
-			0, 17, 2, 95, 59, 47, 4, 37, 47, 37, 19, 15, 49, 6, 39, 65, 35, 0, 0, 16, 2, 95, 58, 47, 4, 37, 47, 37, 19, 15,
-			72, 6, 40, 35, 0, 0, 14, 2, 95, 57, 89, 13, 65, 71, 6, 37, 55, 35, 50, 0, 0, 13, 2, 95, 56, 72, 13, 55, 6, 35,
-			48, 35, 50, 0, 0, 17, 2, 95, 63, 47, 4, 35, 50, 72, 35, 15, 47, 6, 35, 67, 35, 0, 0, 17, 2, 95, 62, 55, 4, 109,
-			71, 37, 107, 15, 72, 6, 35, 52, 37, 0, 0, 0, 17, 2, 95, 60, 49, 4, 40, 52, 35, 68, 15, 72, 6, 35, 52, 37, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 91, 49, 4,
-			40, 52, 40, 68, 15, 89, 6, 37, 49, 40, 0, 0, 0, 0, 0, 18, 2, 95, 95, 81, 4, 35, 52, 37, 89, 15, 71, 6, 35, 58,
-			35, 107, 0, 0, 0, 24, 2, 95, 93, 49, 4, 40, 52, 40, 68, 15, 89, 4, 37, 49, 40, 15, 47, 6, 40, 47, 40, 48, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76, 109,
-			49, 0, 0, 0, 0, 0, 0, 0, 20, 2, 95, 123, 49, 4, 40, 52, 40, 68, 15, 49, 40, 52, 6, 35, 58, 35, 55, 0, 0, 0,
-			0, 0, 0, 0, 27, 2, 95, 125, 49, 4, 40, 52, 40, 68, 15, 49, 40, 52, 4, 35, 58, 35, 55, 15, 47, 6, 40, 47, 40, 48,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 8, 82, 193, 76, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 19, 1, 32, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 197, 64, 84, 129, 56, 112, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_dicts27_data[3083] = {
+			0, 4, 0, 0, 29, 10, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0,
+			0, 0, 6, 65, 12, 76, 36, 0, 0, 0, 13, 4, 95, 8, 1, 3, 107, 6, 35, 76, 109, 49, 0, 0, 0, 6, 65, 16, 72, 36,
+			0, 0, 0, 0, 0, 5, 65, 20, 36, 0, 0, 0, 0, 0, 6, 65, 24, 109, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0,
+			0, 6, 195, 76, 19, 135, 72, 0, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 11, 1, 35, 48, 6, 35, 81, 35, 51, 0, 27,
+			0, 5, 65, 36, 37, 0, 0, 12, 1, 37, 48, 13, 52, 89, 6, 109, 50, 0, 27, 0, 14, 1, 38, 47, 4, 35, 50, 72, 35, 72,
+			6, 35, 50, 0, 0, 12, 68, 8, 80, 133, 44, 71, 109, 71, 124, 19, 0, 0, 6, 65, 40, 75, 36, 0, 0, 0, 12, 1, 42, 71,
+			6, 37, 50, 47, 35, 68, 0, 27, 0, 12, 1, 43, 47, 6, 35, 65, 71, 35, 107, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0,
+			0, 18, 1, 47, 81, 4, 35, 52, 37, 89, 15, 65, 6, 37, 52, 37, 68, 0, 27, 0, 6, 65, 48, 109, 55, 0, 0, 0, 0, 0,
+			6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6, 65, 56, 109, 50, 0, 0, 0, 0, 0, 5, 65, 60, 39, 0, 0, 17, 1, 61, 89,
+			4, 35, 65, 35, 15, 72, 6, 109, 68, 35, 50, 0, 27, 0, 0, 0, 12, 1, 64, 35, 15, 49, 6, 109, 110, 50, 81, 0, 6, 65,
+			64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 37, 0, 0, 0, 0, 0, 6, 65, 72, 109, 51, 0, 0, 0, 0, 0, 6, 65,
+			76, 109, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88,
+			83, 36, 0, 0, 0, 0, 0, 12, 1, 92, 6, 71, 109, 49, 89, 55, 109, 91, 0, 6, 65, 92, 58, 36, 0, 0, 0, 15, 1, 94,
+			47, 4, 35, 50, 72, 35, 47, 6, 39, 48, 37, 0, 0, 0, 15, 4, 95, 49, 77, 49, 89, 13, 34, 6, 37, 71, 40, 10, 0, 7,
+			65, 96, 109, 49, 89, 0, 0, 15, 4, 95, 49, 77, 50, 89, 13, 75, 6, 40, 47, 35, 10, 0, 0, 16, 4, 95, 49, 77, 51, 89,
+			13, 65, 6, 37, 55, 57, 35, 51, 0, 0, 0, 6, 65, 100, 57, 36, 0, 0, 0, 0, 0, 7, 65, 104, 88, 109, 47, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6, 37, 55, 72, 36, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 64, 17, 1, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 4, 95, 4, 16, 20, 10, 49, 4, 39, 65, 35, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 19,
+			1, 32, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 19,
+			128, 72, 0, 6, 195, 32, 19, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 20, 137, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 8, 18, 23, 4, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 14, 4, 95, 13, 3, 14, 65, 6, 35, 49, 52, 110, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 51, 88, 47, 6, 37, 81, 35, 48, 40, 55, 40, 107,
+			0, 0, 13, 3, 95, 48, 67, 51, 6, 35, 47, 40, 89, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 67, 89, 13,
+			52, 6, 35, 47, 40, 89, 23, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 49, 57, 89, 13, 65, 71, 6, 37, 55, 35, 50, 71, 13,
+			55, 35, 89, 0, 0, 19, 3, 95, 49, 56, 72, 13, 55, 6, 35, 48, 35, 50, 71, 13, 55, 35, 89, 0, 0, 0, 0, 0, 0, 0,
+			0, 14, 3, 95, 49, 49, 89, 6, 13, 71, 13, 55, 35, 89, 0, 0, 14, 3, 95, 49, 48, 89, 13, 48, 6, 40, 55, 40, 107, 0,
+			0, 16, 3, 95, 49, 51, 47, 6, 37, 81, 35, 71, 13, 55, 35, 89, 0, 0, 15, 3, 95, 49, 50, 72, 6, 40, 35, 71, 13, 55,
+			35, 89, 0, 0, 16, 3, 95, 49, 53, 55, 6, 37, 65, 35, 71, 13, 55, 35, 89, 0, 0, 17, 3, 95, 49, 52, 6, 13, 65, 48,
+			35, 47, 71, 13, 55, 35, 89, 0, 0, 17, 3, 95, 49, 55, 47, 6, 40, 75, 40, 107, 71, 13, 55, 35, 89, 0, 0, 16, 3, 95,
+			49, 54, 6, 13, 50, 35, 65, 71, 13, 55, 35, 89, 0, 0, 0, 17, 3, 95, 55, 88, 47, 6, 40, 75, 40, 107, 48, 40, 55, 40,
+			107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 44, 80, 49, 13, 0, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 3, 95, 50, 88, 72, 6, 40, 35, 48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 17, 3, 95, 63, 63, 49, 4, 39, 72, 36, 107, 6, 40, 52, 40, 83, 0, 0, 0, 0, 17, 3, 95, 52, 88, 6, 109, 65,
+			48, 35, 47, 48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 53, 88, 55, 6, 37, 65, 35, 48, 40, 55,
+			40, 107, 0, 0, 0, 0, 9, 198, 76, 80, 129, 28, 18, 64, 72, 0, 0, 0, 0, 0, 16, 3, 95, 54, 88, 6, 109, 50, 35, 65,
+			48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 56, 88, 72, 13, 55,
+			6, 35, 48, 35, 50, 48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 57, 88, 89, 13, 65, 71, 6, 37,
+			55, 35, 50, 48, 40, 55, 40, 107, 0, 0, 0, 0, 0, 0, 7, 196, 77, 80, 84, 84, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 15, 7, 15, 6, 110, 81, 39, 50, 109, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 100, 19, 135, 72, 13, 4, 95, 48, 77, 50, 75, 6, 40, 47,
+			35, 10, 0, 0, 14, 4, 95, 48, 77, 51, 65, 6, 37, 55, 57, 35, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 51, 6, 37, 71,
+			40, 10, 0, 0, 13, 4, 95, 2, 18, 22, 71, 52, 6, 37, 12, 84, 0, 0, 0, 0, 0, 0, 0, 12, 68, 8, 80, 197, 44, 71,
+			109, 76, 124, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+			4, 95, 3, 9, 18, 47, 6, 39, 48, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 19, 20, 11,
+			89, 47, 51, 6, 39, 49, 0, 0, 0, 13, 4, 95, 1, 3, 21, 35, 49, 57, 6, 40, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 12, 4, 95, 18, 14, 7, 52, 6, 37, 68, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 1, 3, 50, 72, 40, 71, 13, 55, 35, 49, 57, 6, 40, 47, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198,
+			16, 20, 137, 64, 17, 1, 72, 0, 0, 0, 0, 0, 0, 16, 2, 194, 163, 48, 39, 50, 89, 47, 6, 109, 52, 55, 37, 68, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 3, 5, 4, 89, 13,
+			72, 6, 37, 55, 35, 0, 0, 0, 0, 14, 4, 95, 12, 9, 7, 72, 6, 117, 81, 51, 35, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 8, 82, 193, 76, 66, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 0, 0, 0, 8, 197, 64, 84, 129, 56, 112, 66, 0, 0, 0, 7, 196, 84, 229, 21, 44,
+			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 17, 2, 95, 34, 47, 4, 35, 50, 72, 35, 49, 6, 40, 47, 37, 48, 0, 0, 17, 2, 95, 33, 47, 4, 35, 50,
+			72, 35, 15, 89, 6, 109, 52, 40, 0, 0, 0, 19, 2, 95, 39, 49, 4, 40, 47, 37, 48, 15, 47, 6, 40, 68, 81, 35, 55, 0,
+			0, 0, 0, 0, 0, 13, 4, 95, 3, 1, 16, 71, 6, 109, 89, 35, 51, 0, 0, 18, 2, 95, 41, 49, 4, 40, 52, 40, 68, 15,
+			47, 6, 40, 47, 40, 48, 0, 0, 17, 2, 95, 40, 49, 4, 40, 52, 40, 68, 15, 71, 6, 40, 49, 35, 0, 0, 10, 67, 64, 84,
+			128, 48, 13, 34, 0, 72, 0, 11, 2, 95, 46, 47, 6, 37, 47, 37, 19, 0, 0, 17, 2, 95, 45, 47, 4, 35, 50, 72, 35, 107,
+			6, 40, 71, 40, 68, 0, 0, 10, 2, 95, 44, 49, 6, 39, 65, 35, 0, 0, 10, 2, 95, 51, 47, 6, 37, 81, 35, 0, 0, 9,
+			2, 95, 50, 72, 6, 40, 35, 0, 0, 10, 2, 95, 49, 89, 6, 35, 47, 40, 0, 0, 9, 2, 95, 48, 50, 6, 39, 55, 0, 0,
+			11, 2, 95, 55, 47, 6, 40, 75, 40, 107, 0, 0, 10, 2, 95, 54, 6, 13, 50, 35, 65, 0, 0, 10, 2, 95, 53, 55, 6, 37,
+			65, 35, 0, 0, 11, 2, 95, 52, 6, 13, 65, 48, 35, 47, 0, 0, 17, 2, 95, 59, 47, 4, 37, 47, 37, 19, 15, 49, 6, 39,
+			65, 35, 0, 0, 16, 2, 95, 58, 47, 4, 37, 47, 37, 19, 15, 72, 6, 40, 35, 0, 0, 14, 2, 95, 57, 89, 13, 65, 71, 6,
+			37, 55, 35, 50, 0, 0, 13, 2, 95, 56, 72, 13, 55, 6, 35, 48, 35, 50, 0, 0, 17, 2, 95, 63, 47, 4, 35, 50, 72, 35,
+			15, 47, 6, 35, 67, 35, 0, 0, 17, 2, 95, 62, 55, 4, 109, 71, 37, 107, 15, 72, 6, 35, 52, 37, 0, 0, 0, 17, 2, 95,
+			60, 49, 4, 40, 52, 35, 68, 15, 72, 6, 35, 52, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 11, 4, 95, 4, 15, 20, 72, 6, 110, 47, 0, 0, 0, 0, 17, 2, 95, 91, 49, 4, 40, 52, 40, 68,
+			15, 89, 6, 37, 49, 40, 0, 0, 0, 0, 0, 18, 2, 95, 95, 81, 4, 35, 52, 37, 89, 15, 71, 6, 35, 58, 35, 107, 0, 0,
+			0, 24, 2, 95, 93, 49, 4, 40, 52, 40, 68, 15, 89, 4, 37, 49, 40, 15, 47, 6, 40, 47, 40, 48, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 7, 18, 22, 81, 52, 6, 35, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 20, 2, 95, 123, 49, 4, 40, 52, 40, 68, 15, 49, 40, 52, 6, 35, 58, 35, 55, 0, 13, 4, 95, 4, 9, 1, 6,
+			40, 65, 55, 114, 47, 0, 0, 0, 0, 0, 0, 0, 27, 2, 95, 125, 49, 4, 40, 52, 40, 68, 15, 49, 40, 52, 4, 35, 58, 35,
+			55, 15, 47, 6, 40, 47, 40, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 64, 85, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 197, 4, 64, 76, 4, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 4, 1, 32, 17, 65, 3, 23, 35, 0, 1, 97, 0, 1, 117, 97, 0, 3, 35,
 			0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 4, 101, 2, 110, 3, 71, 13, 0, 101, 8, 2, 21, 21, 0,
 			7, 6, 99, 0, 3, 76, 0, 104, 3, 106, 0, 7, 6, 100, 0, 3, 72, 0, 106, 3, 75, 0, 7, 6, 101, 0, 4, 1, 32, 17,
@@ -31449,2314 +21330,1702 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			8, 3, 88, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3, 0, 42,
 			42, 3, 0, 42, 1, 42, 42, 2, 32, 3, 24, 0, 45, 8, 32, 2, 32, 15, 3, 47, 4, 35, 50, 72, 35, 49, 6, 40, 52, 35,
 			68, 0, 42, 3, 71, 6, 37, 50, 47, 35, 68, 0, 36, 3, 72, 110, 55, 35, 51, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts30 = FileInMemory_createWithData (3082, reinterpret_cast<const char *> (&espeakdata_dicts30_data), 
-			U"espeak-1.48.04-source/espeak-data/id_dict", 
+		autoFileInMemory espeakdata_dicts27 = FileInMemory_createWithData (3082, reinterpret_cast<const char *> (&espeakdata_dicts27_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/id_dict", 
 			U"id");
-		my addItem_move (espeakdata_dicts30.move());
+		Collection_addItem (me.peek(), espeakdata_dicts27.transfer());
 
-		static unsigned char espeakdata_dicts31_data[5401] = {
-			0, 4, 0, 0, 192, 15, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 101, 105, 103, 105, 195, 176, 76, 9, 134, 118, 111, 114, 117, 195,
-			176, 72, 0, 0, 9, 198, 25, 32, 77, 32, 167, 0, 28, 0, 7, 65, 8, 71, 57, 112, 0, 0, 0, 0, 0, 7, 65, 12, 89, 57,
-			112, 0, 0, 0, 0, 0, 7, 65, 16, 72, 57, 112, 0, 0, 0, 0, 6, 195, 53, 83, 148, 76, 15, 4, 95, 100, 112, 116, 10, 49,
-			4, 114, 65, 65, 35, 10, 0, 0, 12, 137, 104, 195, 182, 102, 195, 176, 117, 195, 176, 72, 8, 133, 195, 190, 105, 116, 116, 76, 0, 0,
-			0, 9, 134, 195, 161, 195, 176, 117, 114, 8, 0, 6, 65, 24, 111, 83, 0, 0, 0, 0, 0, 7, 65, 28, 81, 57, 112, 0, 6, 195,
-			53, 83, 149, 76, 0, 0, 0, 0, 6, 65, 32, 107, 126, 0, 0, 0, 0, 5, 194, 58, 32, 8, 9, 1, 35, 65, 109, 55, 55, 35,
-			0, 0, 0, 6, 195, 25, 197, 77, 76, 11, 136, 195, 190, 101, 105, 114, 114, 97, 114, 76, 0, 6, 65, 112, 126, 0, 49, 4, 193, 112,
-			76, 5, 193, 112, 76, 28, 0, 0, 8, 65, 40, 57, 6, 115, 86, 0, 0, 0, 0, 9, 1, 43, 71, 55, 6, 116, 89, 0, 0, 7,
-			65, 44, 49, 6, 126, 0, 0, 0, 0, 12, 1, 47, 89, 49, 125, 89, 72, 138, 109, 81, 0, 0, 6, 65, 48, 111, 137, 0, 0, 0,
-			0, 0, 6, 65, 52, 111, 65, 0, 0, 7, 196, 53, 83, 132, 84, 76, 0, 0, 0, 6, 65, 56, 111, 50, 0, 7, 132, 195, 190, 97,
-			117, 76, 7, 132, 195, 190, 97, 117, 72, 0, 0, 0, 0, 0, 19, 1, 61, 89, 6, 113, 65, 35, 89, 111, 65, 65, 4, 111, 34, 138,
-			49, 109, 0, 0, 0, 0, 7, 65, 64, 48, 57, 112, 0, 0, 0, 6, 195, 53, 83, 128, 76, 9, 134, 117, 114, 195, 176, 117, 109, 72,
-			0, 0, 6, 65, 68, 49, 116, 0, 0, 0, 0, 0, 7, 65, 72, 111, 34, 138, 0, 0, 0, 7, 132, 195, 190, 105, 103, 76, 0, 0,
-			6, 65, 76, 111, 89, 0, 0, 0, 0, 0, 7, 65, 80, 47, 57, 112, 0, 0, 0, 0, 6, 195, 28, 20, 212, 76, 0, 0, 0, 0,
-			0, 7, 65, 88, 84, 35, 83, 0, 0, 0, 0, 0, 16, 65, 92, 47, 84, 6, 120, 84, 35, 55, 72, 84, 4, 35, 83, 0, 6, 195,
-			21, 37, 21, 72, 0, 7, 196, 32, 147, 149, 52, 76, 0, 8, 133, 195, 190, 105, 110, 110, 76, 0, 0, 7, 65, 96, 112, 101, 89, 0,
-			0, 18, 4, 95, 49, 77, 50, 124, 50, 15, 65, 6, 109, 72, 55, 57, 127, 50, 0, 0, 0, 0, 16, 65, 100, 6, 117, 83, 89, 37,
-			55, 114, 50, 15, 4, 110, 0, 49, 0, 0, 0, 0, 8, 65, 104, 89, 112, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 195, 26, 34, 203, 76, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 54, 83, 129, 72, 76, 0, 0, 6, 194,
-			4, 96, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 82, 192,
-			28, 8, 196, 25, 148, 137, 72, 76, 8, 9, 134, 195, 190, 195, 173, 110, 97, 76, 0, 10, 135, 195, 190, 195, 173, 110, 117, 109, 76, 0,
-			0, 0, 0, 0, 0, 6, 195, 50, 82, 193, 8, 0, 0, 7, 196, 78, 83, 129, 72, 76, 0, 0, 6, 195, 52, 147, 142, 76, 22, 4,
-			95, 50, 77, 50, 47, 84, 6, 122, 34, 138, 15, 65, 6, 109, 72, 55, 57, 127, 50, 0, 0, 0, 0, 6, 195, 25, 32, 77, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 17, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 32, 19, 12, 156, 107, 35, 55,
-			55, 127, 0, 0, 0, 9, 134, 195, 190, 101, 115, 115, 105, 76, 9, 134, 195, 190, 101, 115, 115, 105, 76, 0, 0, 0, 0, 0, 8, 197,
-			56, 242, 203, 85, 32, 76, 0, 0, 7, 196, 53, 147, 132, 36, 76, 0, 9, 134, 195, 190, 101, 115, 115, 97, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 5, 194, 21, 32, 72, 0, 9, 134, 118, 101, 114, 195, 176, 97, 72, 0, 0, 6, 195, 20, 225, 1, 8, 0,
-			0, 6, 195, 21, 37, 0, 72, 0, 0, 0, 0, 6, 195, 56, 82, 64, 76, 9, 134, 195, 190, 101, 115, 115, 117, 76, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 54, 83, 137, 72, 76, 0, 0, 6, 195, 76, 147, 142, 76, 23, 4, 95, 51, 77, 50,
-			87, 138, 57, 6, 126, 34, 138, 15, 65, 6, 109, 72, 55, 57, 127, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 135, 102, 101, 110, 103, 117, 195, 176, 76, 0, 0, 7, 195, 25, 39, 0, 76, 28, 0, 0, 0, 0, 0, 0, 6, 195, 28, 21, 0,
-			76, 0, 0, 0, 0, 7, 196, 88, 244, 129, 72, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 20, 96, 76, 8, 0, 0, 10, 135,
-			195, 190, 195, 173, 110, 97, 114, 76, 0, 9, 134, 195, 190, 101, 116, 116, 97, 76, 0, 0, 0, 7, 196, 32, 147, 142, 4, 76, 0, 0,
-			0, 0, 7, 132, 104, 105, 195, 176, 76, 0, 8, 197, 53, 83, 132, 84, 208, 76, 0, 9, 134, 104, 97, 102, 105, 195, 176, 72, 8, 133,
-			195, 190, 101, 115, 115, 76, 0, 0, 0, 8, 197, 28, 81, 206, 84, 208, 28, 0, 6, 195, 32, 147, 142, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 196, 53, 83, 137, 72, 76, 0, 0, 8, 197, 53, 147, 132, 84, 208, 76, 0, 0, 6, 195, 32, 147, 128, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 33, 97, 82, 76, 8, 0, 6, 195, 32, 19, 129, 76, 0, 0, 0, 9, 134, 109, 117,
-			110, 105, 195, 176, 76, 6, 195, 54, 83, 128, 76, 0, 0, 7, 196, 28, 85, 21, 52, 76, 0, 0, 6, 195, 32, 19, 142, 72, 0, 0,
-			0, 6, 195, 28, 85, 0, 76, 0, 0, 0, 8, 133, 195, 190, 101, 105, 109, 76, 8, 133, 195, 190, 101, 105, 109, 76, 0, 0, 0, 0,
-			0, 0, 0, 8, 133, 195, 190, 101, 105, 114, 76, 8, 133, 195, 190, 101, 105, 114, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			65, 148, 108, 0, 49, 5, 193, 148, 76, 28, 0, 0, 6, 195, 32, 147, 129, 76, 0, 0, 5, 194, 78, 160, 76, 0, 6, 195, 78, 83,
-			128, 76, 0, 0, 0, 8, 133, 118, 97, 114, 195, 176, 72, 0, 6, 195, 34, 163, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 196, 113, 69, 9, 72, 76, 0, 0, 0, 0, 12, 68, 53, 147, 12, 4, 65, 109, 55, 55, 35, 0, 0, 0, 0,
-			0, 12, 68, 8, 243, 12, 4, 71, 114, 55, 55, 35, 0, 0, 0, 0, 6, 195, 88, 84, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 196, 32, 81, 149, 72, 72, 7, 196, 32, 147, 129, 72, 76, 0, 9, 134, 109, 101, 195, 176, 97, 110, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 20, 224, 76, 8, 0, 16, 3, 95, 51, 88, 87, 138, 57, 6, 126, 47, 37, 38, 4, 117,
-			0, 0, 15, 3, 95, 48, 67, 107, 6, 117, 50, 72, 14, 16, 117, 86, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 244, 129, 76,
-			0, 20, 3, 95, 49, 67, 6, 123, 107, 72, 15, 107, 6, 117, 50, 72, 14, 51, 35, 86, 0, 0, 0, 0, 0, 9, 198, 56, 242, 203,
-			85, 37, 0, 76, 0, 8, 133, 118, 101, 114, 195, 176, 72, 0, 13, 3, 95, 49, 57, 50, 6, 108, 72, 57, 125, 50, 0, 0, 12, 3,
-			95, 49, 56, 6, 126, 72, 57, 125, 50, 0, 0, 20, 3, 95, 50, 67, 47, 84, 6, 120, 15, 107, 6, 117, 50, 72, 14, 51, 117, 86,
-			0, 0, 0, 0, 0, 0, 9, 198, 56, 242, 203, 72, 20, 128, 76, 0, 14, 3, 95, 49, 49, 6, 111, 72, 55, 111, 84, 4, 117, 0,
-			0, 11, 3, 95, 49, 48, 47, 6, 108, 38, 117, 0, 0, 21, 3, 95, 51, 67, 87, 138, 57, 6, 116, 15, 107, 6, 117, 50, 72, 14,
-			51, 117, 86, 0, 14, 3, 95, 49, 51, 87, 138, 6, 111, 107, 72, 125, 50, 0, 0, 11, 3, 95, 49, 50, 47, 6, 127, 105, 83, 0,
-			0, 13, 3, 95, 49, 53, 83, 6, 109, 65, 47, 125, 50, 0, 0, 15, 3, 95, 49, 52, 83, 57, 6, 127, 34, 138, 47, 125, 50, 0,
-			0, 13, 3, 95, 49, 55, 89, 6, 130, 72, 57, 125, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 111, 101, 89, 72, 125, 50, 0, 0,
-			0, 15, 3, 95, 55, 88, 89, 57, 6, 120, 47, 37, 38, 4, 117, 0, 0, 24, 3, 95, 52, 67, 83, 57, 6, 120, 100, 117, 34, 138,
-			15, 107, 6, 117, 50, 72, 14, 51, 117, 86, 0, 0, 0, 0, 7, 195, 32, 167, 0, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 28, 85, 1, 76, 0, 0, 10, 3, 95, 49, 102, 6, 123, 107, 72, 0, 0, 0, 0, 0, 0, 0, 7, 196, 28, 85, 21, 72, 76,
-			0, 0, 9, 198, 56, 242, 203, 72, 148, 128, 76, 10, 3, 95, 50, 102, 47, 84, 6, 120, 0, 0, 0, 15, 3, 95, 50, 88, 47, 6,
-			117, 107, 72, 117, 100, 4, 117, 0, 0, 0, 0, 0, 6, 195, 32, 147, 149, 76, 0, 0, 11, 3, 95, 51, 102, 87, 138, 57, 6, 116,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 63, 63, 47, 6, 125, 81, 107, 134, 0, 0, 14, 3, 95, 52, 102, 83, 57, 6, 120,
-			100, 117, 34, 138, 0, 0, 0, 18, 3, 95, 52, 88, 83, 57, 6, 120, 16, 51, 117, 47, 4, 37, 38, 117, 0, 0, 0, 0, 0, 10,
-			135, 110, 111, 107, 107, 117, 195, 176, 76, 0, 0, 8, 133, 195, 190, 105, 195, 176, 72, 0, 0, 15, 3, 95, 53, 88, 83, 6, 109, 65,
-			47, 37, 38, 4, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 54, 88, 89, 6, 111, 101, 89, 72, 37, 38, 4, 117, 0,
-			0, 0, 0, 0, 7, 195, 76, 83, 64, 76, 28, 0, 0, 0, 5, 194, 77, 192, 76, 0, 0, 0, 8, 197, 56, 242, 203, 72, 16, 76,
-			0, 0, 0, 0, 7, 196, 78, 83, 149, 52, 76, 7, 196, 54, 83, 149, 52, 76, 0, 0, 16, 3, 95, 56, 88, 6, 125, 107, 72, 35,
-			47, 4, 37, 38, 117, 0, 0, 0, 6, 195, 32, 147, 147, 76, 0, 0, 0, 0, 0, 9, 134, 103, 101, 116, 105, 195, 176, 76, 0, 16,
-			3, 95, 57, 88, 50, 6, 108, 38, 117, 47, 4, 37, 38, 117, 0, 0, 6, 195, 54, 83, 129, 76, 0, 0, 0, 0, 0, 0, 0, 7,
-			196, 77, 83, 85, 72, 76, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 136, 112, 72, 0, 0, 10, 135, 195, 190, 101, 115, 115, 105, 114,
-			76, 0, 0, 7, 196, 88, 81, 206, 4, 8, 7, 196, 88, 81, 206, 4, 8, 7, 196, 52, 147, 142, 4, 76, 0, 0, 0, 0, 0, 7,
-			196, 113, 69, 21, 52, 76, 0, 8, 132, 109, 101, 195, 176, 76, 28, 0, 0, 0, 0, 8, 132, 118, 105, 195, 176, 76, 28, 7, 132, 118,
-			105, 195, 176, 72, 0, 0, 7, 196, 32, 147, 142, 36, 76, 0, 0, 11, 136, 118, 101, 114, 195, 176, 105, 195, 176, 72, 0, 6, 195, 21,
-			37, 77, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 6, 109, 72, 55, 57, 127, 50, 0, 0, 0, 0,
-			14, 4, 95, 48, 77, 49, 87, 6, 116, 89, 117, 50, 72, 0, 0, 0, 8, 197, 24, 83, 135, 84, 208, 76, 0, 0, 0, 0, 7, 195,
-			54, 117, 0, 76, 28, 6, 195, 88, 244, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 149, 20, 76,
-			0, 0, 0, 0, 0, 0, 6, 195, 29, 197, 21, 76, 0, 0, 0, 0, 0, 0, 0, 10, 135, 195, 190, 101, 115, 115, 97, 114, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 145, 192, 76, 0, 0, 0, 0, 0, 0, 0, 6, 194, 60, 112, 76, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 99, 97, 112, 89, 72, 6, 127, 34, 138, 72, 0, 0, 0, 0, 8, 133, 195, 190, 97,
-			110, 110, 76, 0, 0, 5, 194, 25, 240, 76, 5, 194, 25, 240, 76, 10, 135, 104, 97, 102, 195, 176, 105, 114, 72, 11, 136, 195, 190, 101,
-			115, 115, 97, 114, 105, 76, 0, 0, 0, 17, 3, 95, 195, 189, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 108, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 52, 147, 12, 36, 8, 0, 0, 0, 0, 0, 0, 7, 3, 95, 195, 173, 108, 0, 0, 7, 196, 33,
-			99, 210, 80, 8, 0, 0, 0, 10, 135, 195, 190, 101, 105, 114, 114, 97, 76, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 95, 195, 161,
-			126, 0, 9, 134, 195, 190, 101, 103, 97, 114, 8, 10, 135, 195, 190, 101, 105, 114, 114, 105, 76, 0, 0, 6, 195, 113, 69, 9, 76, 7,
-			196, 20, 145, 213, 52, 76, 0, 0, 0, 0, 0, 0, 6, 195, 54, 83, 147, 76, 0, 0, 0, 0, 0, 0, 7, 196, 53, 83, 132, 36,
-			76, 0, 0, 0, 0, 0, 7, 196, 100, 178, 213, 72, 76, 7, 196, 60, 178, 213, 72, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 6, 195, 28, 81, 206, 28, 0, 0, 0, 0, 6, 195, 100, 98, 82, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
-			20, 145, 193, 76, 0, 0, 6, 195, 21, 37, 64, 72, 0, 0, 0, 0, 0, 8, 197, 53, 147, 132, 37, 32, 76, 0, 6, 195, 53, 83,
-			137, 76, 0, 0, 0, 8, 197, 52, 147, 142, 5, 32, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 2, 195, 176, 112, 86, 0, 0, 0, 11, 2, 195, 190, 87, 6, 114, 34, 72, 134, 0, 0, 0, 0, 17, 2,
-			195, 189, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 108, 0, 49, 0, 8, 197, 53, 83, 132, 37, 32, 76, 0, 0, 0, 0, 10, 135,
-			195, 190, 101, 115, 115, 117, 109, 76, 8, 197, 32, 147, 142, 5, 32, 76, 0, 0, 7, 196, 24, 83, 135, 84, 76, 0, 7, 196, 29, 197,
-			21, 52, 76, 0, 10, 135, 104, 195, 182, 102, 195, 176, 117, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 195,
-			190, 101, 110, 110, 97, 110, 76, 0, 0, 0, 0, 0, 9, 134, 118, 101, 114, 105, 195, 176, 72, 0, 10, 135, 109, 121, 110, 100, 117, 195,
-			176, 76, 10, 135, 109, 117, 110, 100, 117, 195, 176, 76, 10, 135, 118, 97, 114, 195, 176, 115, 116, 72, 7, 131, 97, 195, 176, 76, 28, 0,
-			0, 0, 0, 8, 196, 20, 101, 9, 72, 76, 8, 0, 0, 0, 0, 0, 10, 135, 118, 101, 114, 195, 176, 117, 109, 72, 0, 0, 8, 133,
-			117, 114, 195, 176, 117, 72, 0, 0, 0, 0, 0, 0, 0, 10, 135, 118, 101, 114, 195, 176, 117, 114, 72, 0, 0, 0, 0, 6, 195, 54,
-			83, 149, 76, 0, 0, 0, 8, 133, 195, 190, 195, 173, 110, 76, 0, 0, 0, 0, 6, 195, 32, 81, 128, 72, 0, 7, 196, 52, 147, 142,
-			36, 76, 0, 0, 0, 7, 195, 80, 147, 0, 76, 28, 0, 0, 8, 133, 101, 114, 117, 195, 176, 72, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 88, 244, 148, 76, 13, 2, 95, 34, 79, 122, 89, 35, 55, 119, 107, 71, 0, 0, 23, 2, 95, 33, 6, 117, 107, 71, 138, 127, 48,
-			117, 50, 35, 51, 65, 4, 111, 34, 138, 49, 109, 0, 0, 0, 0, 13, 2, 95, 38, 115, 100, 65, 111, 34, 138, 49, 109, 0, 0, 0,
-			13, 2, 95, 36, 72, 6, 114, 72, 55, 35, 34, 138, 0, 24, 4, 95, 52, 77, 50, 83, 57, 6, 128, 16, 35, 34, 138, 15, 65, 6,
-			109, 72, 55, 57, 127, 50, 0, 0, 6, 195, 88, 244, 149, 72, 6, 195, 77, 99, 192, 8, 12, 137, 195, 190, 101, 115, 115, 97, 114, 97,
-			114, 76, 0, 0, 18, 2, 95, 41, 89, 84, 6, 110, 57, 109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 10, 2, 95, 40, 89, 84, 110,
-			57, 109, 0, 0, 0, 15, 2, 95, 46, 48, 6, 40, 136, 107, 81, 72, 117, 34, 138, 0, 0, 15, 2, 95, 45, 71, 35, 50, 72, 89,
-			72, 34, 138, 109, 81, 0, 0, 11, 2, 95, 44, 49, 6, 114, 65, 65, 35, 0, 0, 6, 195, 88, 20, 128, 72, 11, 2, 95, 51, 87,
-			138, 6, 108, 34, 138, 0, 0, 11, 2, 95, 50, 72, 84, 6, 124, 34, 138, 0, 0, 9, 2, 95, 49, 6, 123, 72, 50, 0, 0, 9,
-			2, 95, 48, 50, 6, 40, 137, 0, 0, 9, 2, 95, 55, 89, 57, 6, 120, 0, 0, 10, 2, 95, 54, 89, 6, 112, 101, 89, 0, 0,
-			9, 2, 95, 53, 83, 6, 109, 65, 0, 0, 9, 134, 102, 195, 161, 105, 195, 176, 76, 14, 2, 95, 52, 83, 57, 6, 128, 16, 51, 109,
-			34, 138, 0, 0, 10, 135, 103, 195, 161, 116, 117, 195, 176, 76, 6, 195, 56, 83, 65, 8, 16, 2, 95, 59, 89, 6, 112, 65, 37, 49,
-			4, 114, 65, 65, 35, 0, 0, 10, 135, 195, 190, 97, 110, 110, 105, 103, 8, 18, 2, 95, 58, 72, 84, 6, 108, 48, 40, 136, 107, 81,
-			72, 117, 34, 138, 0, 0, 10, 2, 95, 57, 50, 6, 108, 38, 117, 0, 0, 10, 2, 95, 56, 6, 125, 107, 72, 35, 0, 0, 23, 2,
-			95, 63, 89, 71, 6, 117, 34, 72, 134, 37, 68, 81, 4, 35, 65, 111, 34, 138, 49, 109, 0, 0, 20, 2, 95, 62, 6, 114, 72, 81,
-			55, 114, 84, 109, 55, 4, 115, 49, 35, 89, 72, 0, 0, 0, 12, 2, 95, 60, 114, 72, 81, 55, 114, 84, 109, 0, 0, 11, 136, 104,
-			195, 182, 102, 195, 176, 117, 109, 72, 8, 197, 4, 227, 129, 73, 48, 8, 0, 7, 196, 53, 147, 132, 84, 76, 6, 195, 113, 69, 21, 76,
-			0, 0, 0, 0, 0, 0, 6, 195, 88, 244, 142, 76, 0, 0, 0, 0, 7, 132, 195, 190, 195, 186, 72, 0, 8, 133, 195, 190, 195, 166,
-			114, 76, 8, 133, 195, 190, 195, 166, 114, 72, 0, 0, 0, 0, 0, 0, 7, 132, 195, 190, 195, 179, 8, 0, 0, 0, 7, 196, 88, 244,
-			149, 52, 72, 0, 9, 198, 56, 242, 203, 85, 35, 128, 76, 0, 0, 15, 2, 95, 91, 107, 114, 34, 72, 134, 81, 55, 114, 84, 109, 0,
-			0, 0, 0, 0, 16, 2, 95, 95, 117, 50, 72, 109, 51, 89, 72, 34, 138, 109, 81, 0, 0, 9, 133, 195, 190, 118, 195, 173, 76, 8,
-			6, 195, 76, 149, 20, 76, 6, 195, 52, 149, 20, 76, 8, 133, 195, 190, 118, 195, 173, 76, 0, 23, 2, 95, 93, 107, 6, 114, 34, 72,
-			134, 81, 55, 114, 84, 109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 20, 2, 95, 92, 6, 120, 84, 117, 101, 72, 89, 49, 4, 125, 89,
-			72, 138, 109, 81, 0, 0, 0, 0, 7, 196, 34, 129, 149, 52, 72, 0, 0, 7, 132, 195, 190, 195, 161, 76, 7, 132, 195, 190, 195, 161,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 115, 195, 173, 195, 176, 97, 110, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 15, 2, 95, 123, 89, 55, 130, 84, 117, 89, 84, 109, 57, 109, 0, 0, 0, 16, 2, 95, 121, 6, 117, 83, 89, 37, 55, 114, 50,
-			15, 4, 110, 0, 0, 9, 134, 102, 195, 166, 114, 195, 176, 76, 6, 194, 84, 208, 76, 28, 0, 0, 0, 24, 2, 95, 125, 89, 55, 6,
-			130, 84, 117, 89, 84, 4, 109, 57, 109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 0, 7, 196, 32, 147, 137, 72, 76, 0, 0, 10, 5,
-			95, 48, 97, 110, 100, 115, 100, 0, 0, 0, 0, 7, 196, 53, 83, 149, 52, 76, 7, 196, 53, 83, 149, 52, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 19, 132, 4, 28, 0, 0, 0, 0, 0, 6, 194, 112, 224, 76, 8, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 178, 201, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 244, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 104, 97, 102,
-			195, 176, 105, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 132, 101, 195, 176, 97, 76, 8, 0, 0, 0, 0, 0, 0, 6, 195,
-			113, 69, 0, 76, 8, 133, 195, 190, 97, 195, 176, 76, 8, 133, 195, 190, 97, 195, 176, 72, 0, 0, 10, 135, 117, 114, 195, 176, 117, 195,
-			176, 72, 10, 135, 195, 161, 116, 116, 117, 195, 176, 76, 0, 0, 6, 194, 169, 32, 76, 28, 0, 0, 0, 0, 7, 196, 88, 20, 147, 80,
-			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 26,
-			34, 203, 77, 64, 76, 0, 0, 0, 9, 134, 109, 117, 110, 117, 195, 176, 76, 0, 8, 196, 84, 225, 9, 72, 72, 28, 0, 6, 195, 78,
-			83, 129, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 195, 173, 0, 195, 189, 0, 195, 166, 0, 101, 0, 105, 0, 121, 0,
-			106, 0, 7, 6, 18, 67, 195, 190, 0, 99, 0, 102, 0, 104, 0, 107, 0, 112, 0, 116, 0, 120, 0, 115, 0, 7, 6, 18, 68, 112,
-			0, 116, 0, 107, 0, 7, 6, 20, 120, 0, 0, 0, 120, 0, 122, 0, 0, 0, 0, 0, 6, 195, 161, 0, 2, 17, 67, 17, 67, 3,
-			125, 0, 4, 3, 126, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 166, 0, 2, 17, 67, 17, 67, 3, 121, 0, 4, 3, 122, 0, 2,
-			17, 69, 17, 68, 0, 7, 6, 195, 169, 0, 2, 17, 67, 17, 67, 3, 57, 111, 0, 4, 3, 57, 112, 0, 2, 17, 69, 17, 68, 0,
-			7, 6, 195, 173, 0, 2, 17, 67, 17, 67, 3, 37, 0, 4, 3, 108, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 176, 0, 3, 86,
-			0, 4, 2, 17, 66, 3, 87, 0, 2, 32, 32, 0, 7, 6, 195, 179, 0, 2, 17, 67, 17, 67, 3, 127, 0, 4, 3, 128, 0, 2,
-			17, 69, 17, 68, 0, 7, 6, 195, 182, 0, 8, 2, 21, 14, 128, 132, 129, 3, 4, 120, 0, 2, 17, 67, 17, 67, 3, 119, 0, 4,
-			3, 120, 0, 2, 17, 69, 17, 68, 0, 4, 2, 110, 103, 3, 129, 0, 2, 110, 103, 0, 7, 6, 195, 186, 0, 2, 17, 67, 17, 67,
-			3, 40, 0, 4, 3, 116, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 189, 0, 2, 17, 67, 17, 67, 3, 37, 0, 4, 3, 108, 0,
-			2, 17, 69, 17, 68, 0, 7, 6, 195, 190, 0, 3, 87, 0, 7, 6, 97, 0, 108, 8, 2, 21, 14, 128, 132, 130, 3, 4, 113, 55,
-			0, 4, 2, 17, 67, 17, 67, 3, 35, 0, 8, 2, 108, 108, 12, 0, 4, 3, 113, 0, 2, 17, 69, 17, 68, 0, 4, 2, 110, 103,
-			3, 125, 0, 2, 110, 107, 0, 117, 2, 17, 67, 17, 67, 3, 129, 0, 4, 117, 3, 130, 0, 117, 2, 17, 69, 17, 68, 0, 7, 6,
-			98, 0, 4, 3, 71, 0, 98, 0, 7, 6, 99, 0, 3, 49, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 7, 6, 100, 0, 4, 3,
-			72, 0, 100, 0, 7, 6, 101, 0, 2, 17, 67, 17, 67, 3, 111, 0, 4, 3, 112, 0, 2, 17, 69, 17, 68, 0, 4, 2, 110, 103,
-			3, 123, 0, 2, 110, 107, 0, 105, 2, 17, 67, 17, 67, 0, 121, 2, 17, 67, 17, 67, 0, 4, 105, 3, 124, 0, 105, 2, 17, 69,
-			17, 68, 0, 121, 0, 121, 2, 17, 69, 17, 68, 0, 103, 105, 3, 124, 57, 109, 0, 7, 6, 102, 0, 110, 100, 3, 65, 47, 0, 4,
-			1, 21, 2, 108, 3, 71, 0, 1, 21, 2, 110, 0, 4, 3, 83, 0, 102, 0, 4, 1, 17, 65, 2, 17, 65, 3, 84, 0, 1, 108,
-			2, 17, 65, 0, 110, 116, 3, 133, 71, 47, 0, 7, 6, 103, 0, 4, 1, 161, 195, 2, 97, 3, 0, 4, 1, 161, 195, 2, 117, 3,
-			0, 4, 1, 179, 195, 2, 97, 3, 0, 4, 1, 179, 195, 2, 117, 3, 0, 4, 1, 186, 195, 2, 97, 3, 0, 1, 186, 195, 2, 117,
-			3, 0, 4, 1, 17, 65, 2, 105, 3, 57, 0, 1, 17, 65, 2, 106, 0, 4, 2, 105, 3, 79, 0, 8, 2, 101, 0, 8, 2, 105,
-			0, 8, 2, 195, 166, 0, 8, 2, 195, 173, 0, 106, 0, 106, 8, 0, 4, 3, 81, 0, 1, 17, 65, 2, 108, 0, 1, 17, 65, 2,
-			110, 0, 8, 0, 103, 0, 110, 2, 32, 3, 81, 134, 0, 4, 1, 17, 65, 2, 97, 3, 100, 0, 1, 17, 65, 2, 114, 0, 1, 17,
-			65, 2, 117, 0, 1, 17, 65, 2, 195, 176, 0, 4, 2, 32, 3, 101, 0, 2, 115, 0, 116, 3, 101, 72, 0, 7, 6, 104, 0, 118,
-			3, 49, 84, 0, 106, 3, 99, 0, 108, 3, 105, 0, 3, 107, 0, 110, 3, 107, 134, 0, 114, 3, 107, 138, 0, 7, 6, 105, 0, 4,
-			1, 25, 2, 110, 103, 3, 37, 0, 1, 25, 2, 110, 107, 0, 2, 17, 67, 17, 67, 3, 109, 0, 4, 3, 110, 0, 2, 17, 69, 17,
-			68, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 2, 116, 3, 47, 0, 8, 3, 49, 0, 2, 18, 66, 3, 79, 0, 4, 8,
-			2, 18, 66, 3, 80, 0, 106, 0, 4, 3, 81, 0, 2, 25, 0, 2, 115, 3, 101, 0, 2, 107, 3, 107, 0, 7, 6, 108, 0, 3,
-			55, 0, 108, 3, 72, 55, 0, 4, 2, 17, 66, 29, 3, 105, 0, 2, 32, 0, 4, 108, 2, 17, 66, 29, 3, 137, 0, 108, 2, 32,
-			0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 2, 25, 0, 1, 17, 66, 3, 107, 133, 0, 2, 18, 68, 3, 133, 0, 7, 6, 110, 0,
-			4, 3, 50, 0, 110, 2, 25, 0, 110, 3, 50, 12, 0, 2, 103, 105, 3, 67, 0, 2, 103, 3, 68, 0, 103, 2, 32, 3, 68, 81,
-			0, 4, 110, 1, 105, 101, 3, 72, 50, 0, 110, 1, 117, 97, 0, 110, 1, 121, 101, 0, 110, 1, 161, 195, 0, 110, 1, 166, 195, 0,
-			110, 1, 169, 195, 0, 110, 1, 173, 195, 0, 110, 1, 179, 195, 0, 110, 1, 186, 195, 0, 110, 1, 189, 195, 0, 1, 17, 66, 3, 107,
-			134, 0, 2, 18, 68, 3, 134, 0, 107, 2, 105, 3, 135, 79, 0, 2, 107, 3, 136, 0, 103, 116, 2, 25, 3, 136, 72, 0, 1, 17,
-			65, 2, 107, 3, 136, 107, 0, 7, 6, 111, 0, 2, 17, 67, 17, 67, 3, 114, 0, 4, 3, 115, 0, 2, 17, 69, 17, 68, 0, 4,
-			2, 110, 103, 3, 127, 0, 2, 110, 107, 0, 4, 2, 103, 105, 3, 131, 0, 2, 103, 106, 0, 7, 6, 112, 0, 8, 3, 48, 0, 3,
-			71, 0, 4, 2, 107, 3, 83, 0, 2, 115, 0, 2, 116, 0, 112, 3, 107, 71, 0, 7, 6, 113, 0, 3, 49, 84, 0, 7, 6, 114,
-			0, 1, 17, 67, 3, 14, 51, 0, 1, 17, 65, 2, 17, 65, 3, 16, 51, 0, 2, 32, 3, 23, 51, 0, 4, 3, 23, 52, 0, 8,
-			0, 2, 18, 67, 3, 34, 138, 0, 114, 3, 51, 16, 51, 0, 110, 3, 51, 72, 134, 0, 108, 2, 17, 66, 3, 51, 137, 0, 1, 108,
-			3, 69, 51, 0, 108, 3, 72, 55, 0, 7, 6, 115, 0, 3, 89, 0, 115, 3, 89, 139, 0, 4, 104, 2, 32, 3, 91, 0, 104, 8,
-			0, 7, 6, 116, 0, 8, 3, 47, 0, 3, 72, 0, 4, 104, 2, 32, 3, 87, 0, 104, 8, 0, 4, 2, 108, 3, 107, 72, 0, 2,
-			110, 0, 116, 0, 7, 6, 117, 0, 4, 1, 25, 2, 110, 103, 3, 40, 0, 1, 25, 2, 110, 107, 0, 1, 21, 2, 110, 117, 109, 32,
-			3, 114, 0, 2, 17, 67, 17, 67, 3, 117, 0, 4, 3, 118, 0, 2, 17, 69, 17, 68, 0, 4, 2, 103, 105, 3, 132, 0, 2, 103,
-			106, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 4, 3, 49, 89, 0, 122, 0, 7, 6, 121,
-			0, 4, 1, 25, 2, 110, 103, 3, 37, 0, 1, 25, 2, 110, 107, 0, 2, 17, 67, 17, 67, 3, 109, 0, 4, 3, 110, 0, 2, 17,
-			69, 17, 68, 0, 7, 6, 122, 0, 122, 3, 47, 89, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 114, 55, 55, 35, 34, 0, 7, 0,
-			0};
-		autoFileInMemory espeakdata_dicts31 = FileInMemory_createWithData (5400, reinterpret_cast<const char *> (&espeakdata_dicts31_data), 
-			U"espeak-1.48.04-source/espeak-data/is_dict", 
+		static unsigned char espeakdata_dicts28_data[5469] = {
+			0, 4, 0, 0, 1, 16, 0, 0, 0, 0, 0, 0, 0, 8, 132, 5, 195, 176, 1, 76, 8, 0, 0, 0, 8, 196, 25, 148, 137, 72,
+			76, 8, 0, 7, 65, 8, 71, 57, 112, 0, 0, 0, 9, 134, 13, 195, 173, 14, 21, 13, 76, 0, 0, 7, 65, 12, 89, 57, 112, 0,
+			0, 0, 0, 6, 195, 20, 225, 1, 8, 0, 7, 65, 16, 72, 57, 112, 0, 6, 195, 76, 147, 142, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 65, 24, 111, 83, 0, 8, 197, 28, 81, 206, 84, 208, 28, 0, 0, 0, 0, 7, 65, 28, 81, 57, 112, 0, 0, 0, 0, 0,
+			6, 65, 32, 107, 126, 0, 0, 0, 0, 9, 1, 35, 65, 109, 55, 55, 35, 0, 0, 0, 0, 9, 134, 8, 195, 182, 6, 21, 13, 72,
+			0, 0, 8, 65, 40, 57, 6, 115, 86, 0, 0, 0, 0, 9, 1, 43, 71, 55, 6, 116, 89, 0, 0, 7, 65, 44, 49, 6, 126, 0,
+			0, 0, 0, 12, 1, 47, 89, 49, 125, 89, 72, 138, 109, 81, 0, 0, 6, 65, 48, 111, 137, 0, 8, 133, 195, 190, 1, 195, 176, 76,
+			8, 133, 195, 190, 1, 195, 176, 72, 0, 9, 134, 5, 9, 7, 9, 195, 176, 76, 0, 10, 135, 21, 18, 195, 176, 21, 195, 176, 72, 0,
+			0, 6, 65, 52, 111, 65, 0, 12, 137, 8, 195, 182, 6, 195, 176, 21, 195, 176, 72, 8, 133, 5, 18, 21, 195, 176, 72, 0, 0, 0,
+			7, 196, 52, 147, 142, 4, 76, 10, 135, 195, 190, 5, 9, 18, 18, 1, 76, 0, 6, 65, 56, 111, 50, 0, 6, 131, 6, 195, 166, 76,
+			6, 131, 6, 195, 166, 76, 10, 5, 95, 48, 1, 14, 4, 115, 100, 0, 0, 0, 0, 0, 0, 19, 1, 61, 89, 6, 113, 65, 35, 89,
+			111, 65, 65, 4, 111, 34, 138, 49, 109, 0, 0, 0, 10, 135, 195, 190, 5, 9, 18, 18, 9, 76, 0, 7, 65, 64, 48, 57, 112, 0,
+			0, 0, 6, 195, 53, 83, 128, 76, 0, 7, 196, 52, 147, 12, 36, 8, 0, 6, 65, 68, 49, 116, 0, 0, 0, 0, 0, 7, 65, 72,
+			111, 34, 138, 0, 6, 195, 100, 98, 82, 28, 0, 0, 0, 6, 195, 53, 83, 137, 76, 0, 6, 65, 76, 111, 89, 0, 8, 197, 53, 147,
+			132, 37, 32, 76, 0, 0, 0, 8, 132, 13, 195, 179, 20, 76, 28, 0, 7, 65, 80, 47, 57, 112, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 196, 52, 147, 142, 36, 76, 0, 7, 65, 88, 84, 35, 83, 0, 0, 0, 0, 0, 16, 65, 92, 47, 84, 6, 120, 84, 35, 55, 72,
+			84, 4, 35, 83, 0, 0, 0, 0, 0, 7, 65, 96, 112, 101, 89, 0, 0, 18, 4, 95, 49, 77, 50, 124, 50, 15, 65, 6, 109, 72,
+			55, 57, 127, 50, 0, 0, 0, 0, 16, 65, 100, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 110, 0, 14, 0, 0, 9, 134, 195, 190,
+			5, 19, 19, 9, 76, 9, 134, 195, 190, 5, 19, 19, 9, 76, 0, 0, 8, 65, 104, 89, 112, 47, 35, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 9, 134, 195, 190, 5, 19, 19, 21, 76, 0, 8, 196, 84, 225, 9, 72, 72, 28, 0, 0, 0, 6, 195, 53, 83, 148,
+			76, 0, 6, 195, 53, 83, 149, 76, 0, 0, 0, 0, 0, 0, 0, 6, 195, 28, 20, 212, 76, 9, 134, 195, 190, 5, 19, 19, 1, 76,
+			0, 9, 134, 13, 195, 173, 14, 9, 18, 76, 0, 0, 6, 194, 4, 96, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 7,
+			195, 161, 20, 21, 13, 76, 0, 0, 0, 0, 10, 135, 22, 1, 18, 195, 176, 19, 20, 72, 0, 0, 0, 0, 10, 135, 6, 195, 169, 11,
+			11, 19, 20, 76, 0, 0, 0, 0, 6, 195, 5, 82, 192, 28, 0, 7, 196, 32, 147, 142, 4, 76, 0, 8, 197, 53, 83, 132, 84, 208,
+			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 4, 95, 50, 77, 50, 47, 84, 6, 122, 34, 138, 15, 65, 6, 109, 72, 55, 57, 127,
+			50, 0, 0, 0, 12, 68, 8, 243, 12, 4, 71, 114, 55, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 8, 133, 195, 190, 9, 14, 14, 76, 0, 7, 196, 77, 83, 85, 72, 76, 0, 0, 0, 0, 7, 196, 32, 147, 142, 36, 76, 0, 0,
+			0, 6, 195, 32, 149, 20, 76, 0, 0, 0, 0, 0, 9, 134, 13, 195, 173, 14, 1, 18, 76, 0, 0, 0, 0, 9, 134, 195, 161, 195,
+			176, 21, 18, 8, 0, 0, 0, 0, 0, 0, 5, 194, 21, 32, 72, 0, 0, 0, 0, 0, 6, 195, 21, 37, 0, 72, 0, 0, 8, 197,
+			32, 147, 142, 5, 32, 76, 0, 0, 6, 195, 56, 82, 64, 76, 0, 0, 0, 0, 0, 10, 135, 22, 5, 18, 195, 176, 21, 13, 72, 15,
+			4, 95, 4, 16, 20, 10, 49, 4, 114, 65, 65, 35, 10, 0, 0, 8, 133, 195, 190, 9, 20, 20, 76, 0, 0, 0, 6, 195, 56, 83,
+			65, 8, 0, 8, 197, 4, 227, 129, 73, 48, 8, 7, 132, 195, 190, 1, 21, 76, 7, 132, 195, 190, 1, 21, 72, 0, 0, 0, 0, 0,
+			9, 198, 56, 242, 203, 85, 35, 128, 76, 23, 4, 95, 51, 77, 50, 87, 138, 57, 6, 126, 34, 138, 15, 65, 6, 109, 72, 55, 57, 127,
+			50, 0, 0, 0, 7, 196, 32, 147, 137, 72, 76, 0, 10, 135, 22, 5, 18, 195, 176, 21, 18, 72, 0, 8, 133, 6, 195, 161, 21, 13,
+			76, 0, 0, 7, 196, 32, 19, 132, 4, 28, 0, 0, 0, 0, 7, 132, 8, 9, 195, 176, 76, 0, 0, 0, 7, 132, 195, 190, 9, 7,
+			76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 28, 21, 0, 76, 0, 7, 132, 195, 161, 20, 20, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 194, 20, 96, 76, 8, 0, 0, 8, 133, 13, 195, 173, 14, 21, 76, 0, 0, 0, 0, 0, 9, 134, 19, 195, 173,
+			14, 21, 13, 76, 0, 6, 195, 32, 17, 129, 72, 10, 135, 195, 190, 195, 173, 14, 21, 13, 76, 8, 133, 13, 195, 173, 14, 19, 76, 0,
+			0, 0, 0, 0, 10, 135, 6, 5, 14, 7, 21, 195, 176, 76, 0, 8, 132, 22, 9, 195, 176, 76, 28, 7, 132, 22, 9, 195, 176, 72,
+			0, 0, 0, 0, 8, 133, 7, 195, 161, 20, 21, 76, 0, 6, 195, 32, 147, 142, 76, 0, 0, 0, 8, 133, 13, 195, 173, 14, 1, 76,
+			0, 6, 195, 32, 19, 142, 72, 0, 6, 195, 32, 19, 129, 76, 0, 0, 0, 0, 6, 195, 32, 147, 129, 76, 0, 6, 195, 32, 147, 128,
+			76, 0, 0, 0, 6, 195, 88, 84, 129, 72, 0, 0, 7, 196, 32, 81, 149, 72, 72, 7, 196, 32, 147, 129, 72, 76, 0, 0, 0, 0,
+			0, 0, 6, 195, 32, 147, 149, 76, 0, 0, 0, 0, 0, 0, 11, 136, 22, 5, 18, 195, 176, 9, 195, 176, 72, 6, 195, 32, 147, 147,
+			76, 0, 0, 9, 134, 8, 1, 6, 9, 195, 176, 72, 0, 0, 0, 8, 197, 56, 242, 203, 72, 16, 76, 6, 195, 28, 85, 0, 76, 0,
+			0, 0, 8, 133, 19, 195, 173, 14, 1, 76, 0, 9, 134, 195, 190, 195, 173, 14, 1, 76, 0, 0, 8, 132, 8, 10, 195, 161, 76, 28,
+			0, 0, 0, 0, 0, 8, 133, 12, 195, 173, 11, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 24, 83, 135, 84, 76, 0, 10, 3, 95, 49, 6, 6, 123, 107, 72, 0, 0, 9, 134, 7, 5, 20, 9, 195, 176, 76, 0, 0, 8,
+			196, 20, 101, 9, 72, 76, 8, 0, 0, 0, 0, 0, 10, 3, 95, 50, 6, 47, 84, 6, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			11, 3, 95, 51, 6, 87, 138, 57, 6, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 52, 6, 83, 57, 6, 120, 100, 117,
+			34, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 147,
+			149, 52, 76, 0, 0, 6, 194, 20, 224, 76, 8, 0, 16, 3, 95, 51, 88, 87, 138, 57, 6, 126, 47, 37, 38, 4, 117, 0, 0, 15,
+			3, 95, 48, 67, 107, 6, 117, 50, 72, 14, 16, 117, 86, 0, 0, 9, 134, 195, 161, 20, 20, 21, 13, 76, 0, 0, 0, 0, 0, 0,
+			0, 20, 3, 95, 49, 67, 6, 123, 107, 72, 15, 107, 6, 117, 50, 72, 14, 51, 35, 86, 0, 0, 8, 197, 56, 242, 203, 85, 32, 76,
+			0, 0, 0, 9, 198, 56, 242, 203, 85, 37, 0, 76, 0, 0, 13, 3, 95, 49, 57, 50, 6, 108, 72, 57, 125, 50, 0, 0, 12, 3,
+			95, 49, 56, 6, 126, 72, 57, 125, 50, 0, 0, 7, 196, 88, 244, 129, 72, 76, 20, 3, 95, 50, 67, 47, 84, 6, 120, 15, 107, 6,
+			117, 50, 72, 14, 51, 117, 86, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49, 6, 111, 72, 55, 111, 84, 4, 117, 0, 0, 11,
+			3, 95, 49, 48, 47, 6, 108, 38, 117, 0, 0, 21, 3, 95, 51, 67, 87, 138, 57, 6, 116, 15, 107, 6, 117, 50, 72, 14, 51, 117,
+			86, 0, 14, 3, 95, 49, 51, 87, 138, 6, 111, 107, 72, 125, 50, 0, 0, 11, 3, 95, 49, 50, 47, 6, 127, 105, 83, 0, 0, 13,
+			3, 95, 49, 53, 83, 6, 109, 65, 47, 125, 50, 0, 0, 15, 3, 95, 49, 52, 83, 57, 6, 127, 34, 138, 47, 125, 50, 0, 0, 13,
+			3, 95, 49, 55, 89, 6, 130, 72, 57, 125, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 111, 101, 89, 72, 125, 50, 0, 0, 11, 136,
+			195, 190, 5, 9, 18, 18, 1, 18, 76, 0, 15, 3, 95, 55, 88, 89, 57, 6, 120, 47, 37, 38, 4, 117, 0, 0, 9, 134, 195, 161,
+			20, 20, 9, 18, 76, 24, 3, 95, 52, 67, 83, 57, 6, 120, 100, 117, 34, 138, 15, 107, 6, 117, 50, 72, 14, 51, 117, 86, 0, 0,
+			0, 0, 0, 0, 0, 6, 195, 28, 85, 1, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 195, 190, 5, 9, 13, 76, 8,
+			133, 195, 190, 5, 9, 13, 76, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 50, 88, 47, 6, 117, 107, 72, 117, 100, 4, 117, 0, 0,
+			0, 0, 0, 0, 9, 134, 19, 195, 173, 14, 1, 18, 76, 0, 10, 135, 195, 190, 195, 173, 14, 1, 18, 76, 0, 0, 8, 133, 195, 190,
+			5, 9, 18, 76, 8, 133, 195, 190, 5, 9, 18, 72, 0, 7, 196, 33, 99, 210, 80, 8, 0, 0, 7, 132, 6, 195, 166, 18, 76, 0,
+			0, 12, 3, 95, 63, 63, 47, 6, 125, 81, 107, 134, 0, 0, 0, 0, 18, 3, 95, 52, 88, 83, 57, 6, 120, 16, 51, 117, 47, 4,
+			37, 38, 117, 0, 0, 0, 8, 197, 52, 147, 142, 5, 32, 76, 0, 0, 14, 6, 8, 1, 12, 12, 195, 179, 107, 35, 55, 55, 127, 0,
+			0, 0, 0, 0, 15, 3, 95, 53, 88, 83, 6, 109, 65, 47, 37, 38, 4, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95,
+			54, 88, 89, 6, 111, 101, 89, 72, 37, 38, 4, 117, 0, 0, 0, 0, 0, 7, 195, 76, 83, 64, 76, 28, 6, 195, 52, 149, 20, 76,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 56, 88, 6, 125, 107, 72, 35, 47, 4, 37, 38, 117, 0, 0, 0,
+			0, 0, 10, 135, 14, 15, 11, 11, 21, 195, 176, 76, 0, 0, 0, 0, 16, 3, 95, 57, 88, 50, 6, 108, 38, 117, 47, 4, 37, 38,
+			117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 142, 76, 0, 0, 0,
+			9, 134, 13, 5, 195, 176, 1, 14, 8, 0, 0, 0, 0, 0, 0, 9, 134, 13, 21, 14, 9, 195, 176, 76, 9, 134, 22, 5, 18, 9,
+			195, 176, 72, 0, 0, 8, 133, 195, 190, 5, 19, 19, 76, 0, 7, 131, 195, 161, 14, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 132, 8, 195, 186, 14, 72, 0, 0, 7, 196, 28, 85, 21, 52, 76, 0, 0, 15, 4, 95, 48, 77, 50, 65, 6, 109, 72, 55, 57,
+			127, 50, 0, 0, 0, 0, 14, 4, 95, 48, 77, 49, 87, 6, 116, 89, 117, 50, 72, 0, 0, 0, 0, 12, 68, 53, 147, 12, 4, 65,
+			109, 55, 55, 35, 0, 0, 0, 9, 198, 56, 242, 203, 72, 20, 128, 76, 0, 6, 195, 88, 244, 128, 76, 0, 7, 196, 28, 85, 21, 72,
+			76, 6, 195, 88, 244, 129, 76, 0, 0, 9, 198, 56, 242, 203, 72, 148, 128, 76, 6, 131, 195, 169, 7, 72, 0, 0, 8, 132, 13, 5,
+			195, 176, 76, 28, 0, 0, 0, 0, 0, 8, 133, 195, 190, 9, 195, 176, 72, 0, 0, 0, 6, 131, 14, 195, 169, 8, 0, 0, 0, 0,
+			7, 196, 88, 81, 206, 4, 8, 7, 196, 88, 81, 206, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 100, 178,
+			213, 72, 76, 7, 196, 60, 178, 213, 72, 76, 0, 6, 195, 28, 81, 206, 28, 0, 0, 0, 7, 196, 53, 83, 132, 36, 76, 0, 0, 0,
+			6, 195, 52, 145, 192, 76, 0, 6, 195, 20, 145, 193, 76, 0, 8, 197, 53, 83, 132, 37, 32, 76, 0, 0, 9, 134, 8, 1, 6, 195,
+			176, 9, 72, 0, 0, 8, 133, 22, 5, 18, 195, 176, 72, 0, 6, 194, 60, 112, 76, 8, 0, 6, 195, 88, 244, 148, 76, 0, 6, 195,
+			88, 244, 149, 72, 0, 0, 0, 0, 0, 6, 195, 88, 244, 142, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 195,
+			189, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 108, 0, 0, 11, 136, 6, 18, 1, 13, 8, 10, 195, 161, 28, 0, 0, 9, 134, 22,
+			5, 18, 195, 176, 1, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 22, 1, 18, 195, 176, 72, 0, 0, 0, 7, 3, 95,
+			195, 173, 108, 0, 0, 0, 0, 0, 7, 196, 53, 83, 132, 84, 76, 0, 0, 8, 133, 21, 18, 195, 176, 21, 72, 0, 0, 6, 195, 21,
+			37, 21, 72, 0, 10, 135, 8, 1, 6, 195, 176, 9, 18, 72, 0, 0, 0, 7, 3, 95, 195, 161, 126, 0, 0, 0, 0, 0, 8, 133,
+			6, 195, 169, 11, 11, 76, 0, 0, 0, 0, 0, 0, 0, 9, 134, 195, 190, 5, 20, 20, 1, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 196, 53, 83, 137, 72, 76, 0, 0, 0, 0, 0, 0, 0, 8, 133, 195, 190, 1, 14, 14, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 7, 131, 195, 186, 18, 76, 28, 0, 0, 8, 133, 195, 190, 195, 173, 14, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
+			21, 37, 64, 72, 0, 0, 0, 0, 0, 6, 195, 21, 37, 77, 72, 0, 10, 135, 195, 190, 5, 14, 14, 1, 14, 76, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 2, 195, 161, 126, 0, 14, 5, 130, 195, 161, 76, 6, 130, 195, 161, 76, 28, 0, 0, 0, 0, 7, 2,
+			195, 173, 108, 0, 14, 6, 130, 195, 173, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 195, 176, 112, 86, 0, 0,
+			0, 11, 2, 195, 190, 87, 6, 114, 34, 72, 134, 0, 0, 0, 0, 17, 2, 195, 189, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 108,
+			0, 14, 0, 0, 11, 136, 195, 190, 5, 19, 19, 1, 18, 9, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 88, 244,
+			149, 52, 72, 0, 0, 0, 8, 133, 195, 190, 195, 166, 18, 76, 12, 137, 195, 190, 5, 19, 19, 1, 18, 1, 18, 76, 8, 133, 195, 190,
+			195, 166, 18, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 88, 20, 147, 80, 72, 0, 0, 10, 135, 195, 190, 1, 14, 14, 9,
+			7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 195, 190, 5, 7, 1, 18, 8, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 53, 147, 132, 36, 76, 0, 10, 135, 19, 195, 173, 195, 176, 1, 14, 8, 0, 0, 6, 195,
+			32, 81, 128, 72, 0, 0, 0, 0, 10, 135, 13, 25, 14, 4, 21, 195, 176, 76, 10, 135, 13, 21, 14, 4, 21, 195, 176, 76, 10, 135,
+			7, 195, 161, 20, 21, 195, 176, 76, 10, 135, 195, 161, 20, 20, 21, 195, 176, 76, 7, 195, 80, 147, 0, 76, 28, 7, 131, 1, 195, 176,
+			76, 28, 0, 0, 16, 2, 95, 25, 6, 117, 83, 89, 37, 55, 114, 50, 15, 4, 110, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95,
+			34, 79, 122, 89, 35, 55, 119, 107, 71, 0, 0, 23, 2, 95, 33, 6, 117, 107, 71, 138, 127, 48, 117, 50, 35, 51, 65, 4, 111, 34,
+			138, 49, 109, 0, 0, 0, 0, 13, 2, 95, 38, 115, 100, 65, 111, 34, 138, 49, 109, 0, 0, 10, 135, 195, 190, 5, 19, 19, 9, 18,
+			76, 0, 13, 2, 95, 36, 72, 6, 114, 72, 55, 35, 34, 138, 0, 24, 4, 95, 52, 77, 50, 83, 57, 6, 128, 16, 35, 34, 138, 15,
+			65, 6, 109, 72, 55, 57, 127, 50, 0, 0, 6, 195, 77, 99, 192, 8, 0, 14, 4, 95, 3, 1, 16, 89, 72, 6, 127, 34, 138, 72,
+			0, 0, 18, 2, 95, 41, 89, 84, 6, 110, 57, 109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 10, 2, 95, 40, 89, 84, 110, 57, 109,
+			0, 0, 0, 15, 2, 95, 46, 48, 6, 40, 136, 107, 81, 72, 117, 34, 138, 0, 0, 15, 2, 95, 45, 71, 35, 50, 72, 89, 72, 34,
+			138, 109, 81, 0, 0, 11, 2, 95, 44, 49, 6, 114, 65, 65, 35, 0, 0, 6, 195, 88, 20, 128, 72, 11, 2, 95, 51, 87, 138, 6,
+			108, 34, 138, 0, 0, 11, 2, 95, 50, 72, 84, 6, 124, 34, 138, 0, 0, 9, 2, 95, 49, 6, 123, 72, 50, 0, 0, 9, 2, 95,
+			48, 50, 6, 40, 137, 0, 0, 9, 2, 95, 55, 89, 57, 6, 120, 0, 0, 10, 2, 95, 54, 89, 6, 112, 101, 89, 0, 0, 9, 2,
+			95, 53, 83, 6, 109, 65, 0, 0, 9, 134, 6, 195, 161, 9, 195, 176, 76, 14, 2, 95, 52, 83, 57, 6, 128, 16, 51, 109, 34, 138,
+			0, 0, 16, 2, 95, 59, 89, 6, 112, 65, 37, 49, 4, 114, 65, 65, 35, 0, 0, 18, 2, 95, 58, 72, 84, 6, 108, 48, 40, 136,
+			107, 81, 72, 117, 34, 138, 0, 0, 10, 2, 95, 57, 50, 6, 108, 38, 117, 0, 0, 9, 134, 13, 21, 14, 21, 195, 176, 76, 10, 2,
+			95, 56, 6, 125, 107, 72, 35, 0, 0, 23, 2, 95, 63, 89, 71, 6, 117, 34, 72, 134, 37, 68, 81, 4, 35, 65, 111, 34, 138, 49,
+			109, 0, 0, 20, 2, 95, 62, 6, 114, 72, 81, 55, 114, 84, 109, 55, 4, 115, 49, 35, 89, 72, 0, 0, 8, 197, 24, 83, 135, 84,
+			208, 76, 0, 12, 2, 95, 60, 114, 72, 81, 55, 114, 84, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 132, 6, 18, 195, 161,
+			76, 28, 0, 7, 196, 20, 145, 213, 52, 76, 0, 0, 7, 132, 195, 190, 195, 186, 72, 0, 0, 0, 0, 0, 0, 0, 7, 132, 195, 190,
+			195, 179, 8, 0, 0, 0, 0, 0, 0, 15, 2, 95, 91, 107, 114, 34, 72, 134, 81, 55, 114, 84, 109, 0, 0, 0, 0, 9, 134, 6,
+			195, 166, 18, 195, 176, 76, 0, 16, 2, 95, 95, 117, 50, 72, 109, 51, 89, 72, 34, 138, 109, 81, 0, 0, 0, 23, 2, 95, 93, 107,
+			6, 114, 34, 72, 134, 81, 55, 114, 84, 109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 20, 2, 95, 92, 6, 120, 84, 117, 101, 72, 89,
+			49, 4, 125, 89, 72, 138, 109, 81, 0, 0, 0, 7, 196, 53, 147, 132, 84, 76, 0, 0, 0, 7, 132, 195, 190, 195, 161, 76, 7, 132,
+			195, 190, 195, 161, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 133, 195, 190, 22, 195, 173, 76, 8, 8, 133, 195, 190, 22, 195, 173,
+			76, 0, 0, 0, 0, 0, 0, 6, 195, 20, 178, 201, 76, 0, 0, 0, 0, 0, 15, 2, 95, 123, 89, 55, 130, 84, 117, 89, 84, 109,
+			57, 109, 0, 0, 0, 0, 6, 194, 84, 208, 76, 28, 0, 0, 0, 24, 2, 95, 125, 89, 55, 6, 130, 84, 117, 89, 84, 4, 109, 57,
+			109, 55, 6, 115, 49, 35, 89, 72, 0, 0, 0, 0, 0, 0, 10, 135, 8, 195, 182, 6, 195, 176, 21, 72, 6, 131, 19, 195, 161, 76,
+			10, 135, 195, 190, 5, 19, 19, 21, 13, 76, 0, 0, 0, 0, 0, 0, 0, 6, 131, 19, 195, 186, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 25, 32, 77, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 53, 147, 132, 84, 208, 76, 0, 0, 0,
+			0, 7, 195, 33, 97, 82, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 13, 195, 173, 14, 76, 0, 0, 0, 0, 7, 132,
+			19, 195, 173, 14, 76, 0, 0, 0, 0, 0, 11, 136, 8, 195, 182, 6, 195, 176, 21, 13, 72, 0, 0, 0, 0, 0, 8, 133, 195, 161,
+			20, 20, 9, 76, 0, 0, 0, 0, 8, 133, 195, 161, 20, 20, 21, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 21, 18, 195, 176, 21,
+			13, 72, 0, 0, 6, 195, 76, 149, 20, 76, 0, 0, 10, 135, 195, 190, 5, 19, 19, 1, 18, 76, 0, 0, 0, 7, 196, 53, 83, 149,
+			52, 76, 7, 196, 53, 83, 149, 52, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 22,
+			15, 18, 21, 195, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 195, 173, 0, 195, 189, 0, 195, 166, 0, 101,
+			0, 105, 0, 121, 0, 106, 0, 7, 6, 18, 67, 195, 190, 0, 99, 0, 102, 0, 104, 0, 107, 0, 112, 0, 116, 0, 120, 0, 115, 0,
+			7, 6, 18, 68, 112, 0, 116, 0, 107, 0, 7, 6, 20, 0, 0, 0, 120, 0, 0, 0, 120, 0, 122, 0, 0, 0, 0, 0, 6, 195,
+			161, 0, 2, 17, 67, 17, 67, 3, 125, 0, 4, 3, 126, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 166, 0, 2, 17, 67, 17, 67,
+			3, 121, 0, 4, 3, 122, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 169, 0, 2, 17, 67, 17, 67, 3, 57, 111, 0, 4, 3, 57,
+			112, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 173, 0, 2, 17, 67, 17, 67, 3, 37, 0, 4, 3, 108, 0, 2, 17, 69, 17, 68,
+			0, 7, 6, 195, 176, 0, 3, 86, 0, 4, 2, 17, 66, 3, 87, 0, 2, 32, 32, 0, 7, 6, 195, 179, 0, 2, 17, 67, 17, 67,
+			3, 127, 0, 4, 3, 128, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 182, 0, 8, 2, 21, 14, 128, 132, 129, 3, 4, 120, 0, 2,
+			17, 67, 17, 67, 3, 119, 0, 4, 3, 120, 0, 2, 17, 69, 17, 68, 0, 4, 2, 110, 103, 3, 129, 0, 2, 110, 103, 0, 7, 6,
+			195, 186, 0, 2, 17, 67, 17, 67, 3, 40, 0, 4, 3, 116, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 189, 0, 2, 17, 67, 17,
+			67, 3, 37, 0, 4, 3, 108, 0, 2, 17, 69, 17, 68, 0, 7, 6, 195, 190, 0, 3, 87, 0, 7, 6, 97, 0, 108, 8, 2, 21,
+			14, 128, 132, 130, 3, 4, 113, 55, 0, 4, 2, 17, 67, 17, 67, 3, 35, 0, 8, 2, 108, 108, 12, 0, 4, 3, 113, 0, 2, 17,
+			69, 17, 68, 0, 4, 2, 110, 103, 3, 125, 0, 2, 110, 107, 0, 117, 2, 17, 67, 17, 67, 3, 129, 0, 4, 117, 3, 130, 0, 117,
+			2, 17, 69, 17, 68, 0, 7, 6, 98, 0, 4, 3, 71, 0, 98, 0, 7, 6, 99, 0, 3, 49, 0, 4, 2, 101, 3, 89, 0, 2,
+			105, 0, 7, 6, 100, 0, 4, 3, 72, 0, 100, 0, 7, 6, 101, 0, 2, 17, 67, 17, 67, 3, 111, 0, 4, 3, 112, 0, 2, 17,
+			69, 17, 68, 0, 4, 2, 110, 103, 3, 123, 0, 2, 110, 107, 0, 105, 2, 17, 67, 17, 67, 0, 121, 2, 17, 67, 17, 67, 0, 4,
+			105, 3, 124, 0, 105, 2, 17, 69, 17, 68, 0, 121, 0, 121, 2, 17, 69, 17, 68, 0, 103, 105, 3, 124, 57, 109, 0, 7, 6, 102,
+			0, 110, 100, 3, 65, 47, 0, 4, 1, 21, 2, 108, 3, 71, 0, 1, 21, 2, 110, 0, 4, 3, 83, 0, 102, 0, 4, 1, 17, 65,
+			2, 17, 65, 3, 84, 0, 1, 108, 2, 17, 65, 0, 110, 116, 3, 133, 71, 47, 0, 7, 6, 103, 0, 4, 1, 161, 195, 2, 97, 3,
+			0, 4, 1, 161, 195, 2, 117, 3, 0, 4, 1, 179, 195, 2, 97, 3, 0, 4, 1, 179, 195, 2, 117, 3, 0, 4, 1, 186, 195, 2,
+			97, 3, 0, 1, 186, 195, 2, 117, 3, 0, 4, 1, 17, 65, 2, 105, 3, 57, 0, 1, 17, 65, 2, 106, 0, 4, 2, 105, 3, 79,
+			0, 8, 2, 101, 0, 8, 2, 105, 0, 8, 2, 195, 166, 0, 8, 2, 195, 173, 0, 106, 0, 106, 8, 0, 4, 3, 81, 0, 1, 17,
+			65, 2, 108, 0, 1, 17, 65, 2, 110, 0, 8, 0, 103, 0, 110, 2, 32, 3, 81, 134, 0, 4, 1, 17, 65, 2, 97, 3, 100, 0,
+			1, 17, 65, 2, 114, 0, 1, 17, 65, 2, 117, 0, 1, 17, 65, 2, 195, 176, 0, 4, 2, 32, 3, 101, 0, 2, 115, 0, 116, 3,
+			101, 72, 0, 7, 6, 104, 0, 118, 3, 49, 84, 0, 106, 3, 99, 0, 108, 3, 105, 0, 3, 107, 0, 110, 3, 107, 134, 0, 114, 3,
+			107, 138, 0, 7, 6, 105, 0, 4, 1, 25, 2, 110, 103, 3, 37, 0, 1, 25, 2, 110, 107, 0, 2, 17, 67, 17, 67, 3, 109, 0,
+			4, 3, 110, 0, 2, 17, 69, 17, 68, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 2, 116, 3, 47, 0, 8, 3, 49, 0,
+			2, 18, 66, 3, 79, 0, 4, 8, 2, 18, 66, 3, 80, 0, 106, 0, 4, 3, 81, 0, 2, 25, 0, 2, 115, 3, 101, 0, 2, 107,
+			3, 107, 0, 7, 6, 108, 0, 3, 55, 0, 108, 3, 72, 55, 0, 4, 2, 17, 66, 29, 3, 105, 0, 2, 32, 0, 4, 108, 2, 17,
+			66, 29, 3, 137, 0, 108, 2, 32, 0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 2, 25, 0, 1, 17, 66, 3, 107, 133, 0, 2, 18,
+			68, 3, 133, 0, 7, 6, 110, 0, 4, 3, 50, 0, 110, 2, 25, 0, 110, 3, 50, 12, 0, 2, 103, 105, 3, 67, 0, 2, 103, 3,
+			68, 0, 103, 2, 32, 3, 68, 81, 0, 4, 110, 1, 105, 101, 3, 72, 50, 0, 110, 1, 117, 97, 0, 110, 1, 121, 101, 0, 110, 1,
+			161, 195, 0, 110, 1, 166, 195, 0, 110, 1, 169, 195, 0, 110, 1, 173, 195, 0, 110, 1, 179, 195, 0, 110, 1, 186, 195, 0, 110, 1,
+			189, 195, 0, 1, 17, 66, 3, 107, 134, 0, 2, 18, 68, 3, 134, 0, 107, 2, 105, 3, 135, 79, 0, 2, 107, 3, 136, 0, 103, 116,
+			2, 25, 3, 136, 72, 0, 1, 17, 65, 2, 107, 3, 136, 107, 0, 7, 6, 111, 0, 2, 17, 67, 17, 67, 3, 114, 0, 4, 3, 115,
+			0, 2, 17, 69, 17, 68, 0, 4, 2, 110, 103, 3, 127, 0, 2, 110, 107, 0, 4, 2, 103, 105, 3, 131, 0, 2, 103, 106, 0, 7,
+			6, 112, 0, 8, 3, 48, 0, 3, 71, 0, 4, 2, 107, 3, 83, 0, 2, 115, 0, 2, 116, 0, 112, 3, 107, 71, 0, 7, 6, 113,
+			0, 3, 49, 84, 0, 7, 6, 114, 0, 1, 17, 67, 3, 14, 51, 0, 1, 17, 65, 2, 17, 65, 3, 16, 51, 0, 2, 32, 3, 23,
+			51, 0, 4, 3, 23, 52, 0, 8, 0, 2, 18, 67, 3, 34, 138, 0, 114, 3, 51, 16, 51, 0, 110, 3, 51, 72, 134, 0, 108, 2,
+			17, 66, 3, 51, 137, 0, 1, 108, 3, 69, 51, 0, 108, 3, 72, 55, 0, 7, 6, 115, 0, 3, 89, 0, 115, 3, 89, 139, 0, 4,
+			104, 2, 32, 3, 91, 0, 104, 8, 0, 7, 6, 116, 0, 8, 3, 47, 0, 3, 72, 0, 4, 104, 2, 32, 3, 87, 0, 104, 8, 0,
+			4, 2, 108, 3, 107, 72, 0, 2, 110, 0, 116, 0, 7, 6, 117, 0, 4, 1, 25, 2, 110, 103, 3, 40, 0, 1, 25, 2, 110, 107,
+			0, 1, 21, 2, 110, 117, 109, 32, 3, 114, 0, 2, 17, 67, 17, 67, 3, 117, 0, 4, 3, 118, 0, 2, 17, 69, 17, 68, 0, 4,
+			2, 103, 105, 3, 132, 0, 2, 103, 106, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 4, 3,
+			49, 89, 0, 122, 0, 7, 6, 121, 0, 4, 1, 25, 2, 110, 103, 3, 37, 0, 1, 25, 2, 110, 107, 0, 2, 17, 67, 17, 67, 3,
+			109, 0, 4, 3, 110, 0, 2, 17, 69, 17, 68, 0, 7, 6, 122, 0, 122, 3, 47, 89, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72,
+			114, 55, 55, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts28 = FileInMemory_createWithData (5468, reinterpret_cast<const char *> (&espeakdata_dicts28_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/is_dict", 
 			U"is");
-		my addItem_move (espeakdata_dicts31.move());
+		Collection_addItem (me.peek(), espeakdata_dicts28.transfer());
 
-		static unsigned char espeakdata_dicts32_data[61802] = {
-			0, 4, 0, 0, 171, 222, 0, 0, 15, 204, 72, 243, 66, 36, 53, 66, 61, 69, 1, 20, 68, 128, 15, 8, 197, 52, 244, 134, 20, 208,
-			15, 8, 197, 28, 144, 67, 60, 208, 65, 0, 11, 199, 5, 100, 133, 8, 33, 82, 60, 76, 15, 9, 198, 5, 165, 5, 12, 130, 64, 15,
-			0, 7, 196, 21, 35, 201, 56, 67, 0, 9, 198, 72, 148, 5, 80, 84, 140, 66, 9, 198, 25, 34, 71, 28, 84, 140, 65, 6, 195, 52,
-			83, 128, 16, 0, 8, 197, 88, 84, 143, 48, 144, 65, 8, 197, 5, 35, 79, 16, 144, 15, 0, 10, 199, 72, 148, 207, 49, 49, 82, 60,
-			66, 10, 199, 60, 48, 207, 73, 49, 82, 60, 66, 10, 199, 12, 243, 77, 37, 49, 82, 60, 66, 10, 199, 5, 52, 213, 57, 49, 82, 60,
-			66, 10, 199, 4, 48, 207, 73, 49, 82, 60, 66, 9, 198, 16, 147, 206, 36, 114, 64, 67, 9, 198, 21, 84, 143, 64, 82, 64, 68, 9,
-			198, 5, 84, 208, 36, 50, 64, 67, 7, 65, 4, 35, 12, 0, 49, 10, 199, 76, 20, 133, 8, 33, 82, 60, 78, 4, 193, 4, 76, 7,
-			196, 25, 33, 68, 16, 16, 0, 15, 69, 5, 0, 84, 36, 80, 35, 48, 35, 47, 6, 37, 36, 0, 9, 68, 5, 4, 12, 20, 21, 0,
-			47, 7, 196, 85, 50, 78, 36, 65, 7, 196, 80, 244, 142, 36, 16, 8, 196, 5, 32, 200, 20, 66, 15, 0, 8, 197, 12, 17, 5, 72,
-			80, 66, 8, 197, 56, 20, 15, 48, 144, 65, 21, 71, 44, 147, 15, 52, 85, 18, 36, 49, 37, 55, 6, 39, 65, 36, 47, 14, 16, 37,
-			0, 10, 199, 12, 19, 73, 48, 193, 82, 36, 67, 8, 197, 64, 81, 9, 56, 80, 66, 10, 69, 37, 2, 15, 56, 80, 21, 0, 47, 8,
-			197, 88, 244, 212, 72, 144, 76, 8, 197, 56, 244, 212, 72, 144, 76, 8, 197, 80, 83, 129, 12, 80, 66, 9, 197, 76, 81, 5, 72, 80,
-			66, 16, 9, 198, 72, 149, 137, 56, 50, 84, 66, 9, 197, 64, 245, 5, 72, 80, 66, 16, 9, 197, 64, 241, 5, 72, 80, 66, 16, 9,
-			197, 64, 84, 15, 48, 144, 65, 15, 10, 199, 61, 37, 15, 81, 65, 82, 36, 15, 10, 199, 52, 19, 77, 36, 97, 82, 36, 66, 6, 195,
-			48, 240, 128, 15, 8, 197, 48, 83, 206, 104, 144, 15, 8, 197, 20, 227, 210, 52, 80, 16, 8, 197, 20, 225, 193, 28, 80, 67, 8, 197,
-			12, 20, 207, 48, 144, 65, 8, 197, 12, 19, 210, 48, 80, 65, 0, 9, 198, 52, 19, 132, 4, 210, 64, 65, 9, 198, 48, 81, 199, 36,
-			210, 64, 65, 9, 198, 24, 244, 142, 4, 50, 64, 66, 9, 198, 20, 66, 70, 36, 50, 64, 67, 9, 198, 72, 245, 133, 76, 50, 64, 15,
-			9, 198, 56, 149, 5, 72, 242, 64, 16, 9, 198, 12, 243, 12, 20, 114, 64, 15, 9, 198, 12, 85, 14, 36, 50, 64, 15, 9, 198, 5,
-			4, 15, 28, 114, 64, 15, 0, 9, 198, 104, 16, 195, 5, 34, 65, 67, 13, 202, 52, 243, 148, 21, 5, 76, 12, 144, 78, 60, 68, 6,
-			65, 8, 71, 37, 0, 9, 198, 80, 83, 199, 60, 226, 65, 68, 8, 197, 76, 80, 143, 72, 112, 16, 9, 198, 72, 19, 143, 12, 50, 9,
-			15, 8, 197, 60, 32, 140, 36, 112, 15, 8, 197, 48, 85, 20, 36, 112, 66, 9, 198, 24, 147, 143, 12, 50, 9, 15, 6, 195, 20, 69,
-			73, 15, 9, 198, 8, 80, 195, 5, 34, 65, 67, 0, 7, 196, 4, 115, 210, 4, 67, 0, 8, 197, 56, 144, 207, 48, 16, 66, 8, 197,
-			88, 244, 212, 72, 16, 76, 8, 197, 56, 244, 212, 72, 16, 76, 8, 197, 56, 21, 83, 20, 16, 65, 8, 197, 52, 148, 212, 72, 16, 66,
-			7, 196, 24, 147, 79, 56, 66, 8, 197, 12, 20, 148, 4, 208, 65, 8, 197, 4, 115, 211, 80, 16, 65, 0, 7, 196, 76, 17, 193, 12,
-			66, 10, 199, 65, 35, 211, 36, 81, 213, 60, 15, 7, 196, 5, 165, 5, 12, 15, 0, 8, 197, 60, 229, 1, 56, 240, 66, 16, 69, 72,
-			84, 212, 36, 240, 14, 16, 36, 89, 47, 6, 37, 39, 0, 19, 70, 24, 20, 141, 4, 50, 69, 83, 35, 14, 16, 65, 35, 76, 6, 37,
-			36, 0, 8, 197, 5, 65, 78, 20, 240, 67, 6, 65, 12, 76, 37, 0, 10, 199, 20, 229, 21, 76, 144, 83, 80, 68, 16, 204, 12, 243,
-			148, 4, 50, 9, 48, 243, 69, 81, 34, 64, 68, 15, 0, 10, 199, 65, 33, 67, 37, 2, 84, 4, 66, 9, 198, 88, 144, 68, 61, 69,
-			0, 16, 6, 195, 72, 81, 206, 16, 0, 8, 197, 17, 80, 137, 80, 16, 65, 13, 68, 57, 147, 15, 56, 50, 6, 117, 55, 39, 50, 0,
-			6, 195, 80, 241, 128, 15, 8, 197, 52, 20, 147, 36, 16, 65, 7, 196, 48, 147, 79, 56, 66, 0, 10, 199, 88, 19, 12, 20, 51, 210,
-			76, 16, 0, 8, 197, 64, 21, 129, 56, 240, 66, 8, 197, 56, 85, 129, 56, 240, 66, 8, 197, 16, 149, 129, 56, 240, 66, 7, 65, 16,
-			73, 37, 12, 0, 9, 198, 76, 147, 132, 72, 243, 69, 65, 8, 197, 73, 80, 146, 36, 48, 66, 8, 197, 57, 80, 204, 20, 240, 65, 9,
-			198, 25, 37, 84, 80, 244, 201, 15, 12, 201, 16, 85, 84, 21, 35, 211, 80, 243, 73, 15, 0, 7, 196, 72, 147, 150, 36, 66, 10, 198,
-			64, 148, 143, 76, 48, 70, 66, 15, 9, 198, 64, 20, 129, 29, 32, 70, 66, 7, 196, 20, 66, 76, 20, 66, 0, 11, 200, 64, 84, 147,
-			20, 117, 73, 80, 16, 66, 9, 198, 12, 130, 65, 52, 147, 143, 65, 8, 197, 72, 81, 201, 56, 80, 66, 11, 70, 24, 16, 197, 8, 243,
-			203, 21, 0, 47, 12, 201, 81, 84, 130, 61, 97, 78, 80, 243, 0, 15, 11, 200, 64, 81, 15, 28, 83, 133, 76, 144, 67, 11, 200, 60,
-			229, 15, 28, 83, 133, 76, 144, 67, 8, 197, 56, 84, 212, 48, 80, 66, 8, 197, 52, 242, 5, 48, 144, 16, 11, 200, 52, 85, 1, 24,
-			243, 133, 76, 144, 15, 8, 197, 21, 84, 143, 64, 144, 15, 9, 197, 21, 69, 15, 72, 80, 65, 15, 8, 197, 20, 195, 209, 84, 144, 15,
-			10, 199, 12, 243, 73, 57, 65, 82, 56, 67, 8, 197, 12, 84, 193, 72, 80, 65, 8, 197, 4, 227, 205, 20, 144, 67, 0, 10, 199, 5,
-			4, 1, 73, 49, 82, 60, 66, 13, 4, 95, 100, 112, 116, 48, 6, 40, 50, 47, 39, 0, 9, 198, 81, 34, 69, 56, 226, 64, 15, 9,
-			198, 76, 48, 80, 60, 194, 64, 65, 9, 198, 72, 145, 15, 48, 98, 64, 15, 9, 198, 29, 80, 82, 4, 226, 64, 67, 9, 198, 20, 227,
-			133, 4, 66, 64, 66, 6, 195, 12, 84, 212, 16, 0, 18, 65, 20, 37, 89, 48, 6, 37, 49, 12, 0, 81, 115, 112, 101, 97, 107, 32,
-			7, 65, 20, 36, 12, 0, 49, 5, 193, 20, 76, 28, 8, 197, 21, 51, 198, 4, 112, 66, 8, 197, 12, 243, 12, 20, 112, 15, 0, 10,
-			198, 36, 225, 5, 8, 149, 0, 66, 16, 9, 198, 21, 0, 82, 12, 130, 65, 67, 9, 198, 21, 0, 71, 56, 85, 76, 65, 6, 195, 21,
-			0, 64, 15, 10, 199, 12, 20, 144, 36, 225, 84, 36, 16, 0, 9, 198, 5, 32, 129, 80, 22, 0, 67, 6, 195, 100, 241, 0, 15, 0,
-			12, 201, 72, 16, 195, 60, 115, 9, 21, 33, 64, 66, 13, 202, 5, 101, 129, 57, 64, 71, 28, 144, 78, 60, 67, 9, 198, 72, 144, 83,
-			76, 85, 20, 15, 12, 201, 65, 33, 77, 36, 192, 213, 61, 33, 64, 15, 9, 198, 60, 193, 79, 16, 245, 20, 16, 9, 198, 12, 19, 1,
-			76, 85, 20, 15, 0, 19, 70, 65, 35, 212, 20, 147, 133, 48, 14, 16, 39, 47, 36, 6, 37, 50, 36, 0, 11, 200, 5, 69, 18, 5,
-			97, 82, 76, 240, 67, 8, 65, 24, 36, 83, 83, 36, 0, 9, 198, 76, 81, 206, 5, 98, 65, 67, 9, 198, 76, 20, 148, 61, 34, 65,
-			67, 9, 198, 28, 84, 135, 61, 98, 65, 15, 9, 198, 12, 19, 148, 61, 34, 65, 67, 0, 10, 199, 76, 244, 212, 20, 225, 82, 20, 67,
-			9, 198, 77, 84, 16, 61, 53, 0, 16, 10, 199, 52, 83, 132, 20, 193, 86, 36, 15, 0, 15, 68, 64, 245, 197, 72, 48, 6, 35, 12,
-			58, 36, 14, 16, 0, 14, 203, 88, 147, 12, 4, 208, 83, 76, 20, 135, 36, 16, 68, 7, 196, 72, 245, 15, 72, 15, 7, 196, 64, 20,
-			5, 72, 65, 7, 196, 52, 20, 197, 72, 66, 7, 196, 52, 16, 197, 72, 65, 0, 9, 198, 21, 81, 197, 56, 243, 0, 68, 10, 199, 5,
-			85, 15, 24, 240, 213, 76, 15, 7, 196, 5, 83, 15, 76, 67, 0, 9, 198, 76, 19, 135, 84, 147, 129, 65, 9, 198, 72, 147, 143, 52,
-			147, 129, 66, 9, 198, 12, 243, 210, 16, 147, 129, 66, 19, 70, 4, 225, 18, 20, 147, 129, 35, 50, 72, 14, 16, 36, 6, 37, 50, 35,
-			0, 9, 198, 12, 144, 83, 13, 83, 129, 66, 18, 70, 12, 17, 134, 20, 147, 129, 49, 35, 83, 12, 109, 6, 37, 50, 35, 0, 6, 65,
-			28, 75, 37, 0, 10, 199, 12, 20, 148, 5, 1, 83, 80, 16, 6, 195, 5, 101, 137, 66, 0, 0, 13, 68, 28, 147, 201, 72, 75, 39,
-			6, 37, 14, 16, 0, 23, 69, 12, 20, 9, 80, 16, 49, 6, 35, 48, 37, 47, 35, 15, 49, 36, 0, 81, 99, 104, 101, 32, 20, 69,
-			12, 20, 9, 80, 16, 49, 6, 35, 48, 37, 47, 35, 15, 35, 0, 81, 97, 32, 8, 197, 88, 19, 21, 80, 16, 65, 9, 198, 65, 33,
-			83, 80, 19, 143, 65, 9, 198, 37, 52, 9, 72, 19, 143, 66, 9, 198, 36, 226, 90, 36, 19, 143, 66, 9, 198, 20, 229, 78, 12, 147,
-			143, 66, 9, 198, 5, 4, 1, 36, 19, 143, 66, 14, 69, 49, 82, 71, 36, 16, 55, 40, 6, 37, 75, 35, 0, 9, 198, 25, 84, 195,
-			36, 19, 143, 66, 14, 68, 52, 18, 197, 72, 65, 6, 118, 49, 109, 14, 16, 0, 10, 199, 88, 243, 20, 4, 209, 84, 72, 66, 7, 196,
-			85, 52, 193, 56, 65, 7, 196, 81, 84, 129, 56, 66, 6, 195, 80, 243, 128, 15, 10, 199, 80, 16, 200, 36, 209, 84, 72, 66, 7, 196,
-			72, 148, 193, 56, 65, 10, 199, 64, 192, 78, 36, 209, 84, 72, 66, 10, 199, 64, 83, 148, 4, 209, 84, 72, 66, 8, 197, 56, 245, 77,
-			20, 16, 16, 10, 199, 52, 147, 12, 36, 209, 84, 72, 66, 8, 197, 48, 148, 19, 36, 16, 65, 6, 195, 16, 243, 128, 16, 7, 196, 12,
-			244, 197, 56, 16, 10, 199, 12, 83, 148, 36, 209, 84, 72, 66, 8, 197, 5, 3, 212, 20, 208, 15, 0, 10, 199, 21, 48, 204, 84, 64,
-			78, 60, 66, 7, 196, 12, 243, 73, 76, 65, 0, 11, 200, 76, 51, 206, 24, 147, 129, 56, 240, 66, 11, 200, 25, 83, 154, 36, 243, 129,
-			56, 240, 67, 11, 200, 12, 243, 210, 16, 147, 129, 56, 240, 66, 8, 65, 32, 35, 49, 12, 35, 0, 12, 201, 21, 53, 5, 57, 50, 77,
-			21, 68, 128, 67, 9, 198, 12, 19, 12, 37, 35, 197, 66, 0, 0, 9, 198, 76, 83, 66, 72, 19, 143, 65, 9, 198, 56, 243, 73, 56,
-			19, 143, 65, 9, 198, 52, 84, 137, 80, 19, 143, 65, 10, 198, 48, 21, 143, 72, 19, 143, 66, 16, 9, 197, 28, 241, 5, 72, 80, 66,
-			16, 9, 198, 16, 83, 143, 80, 147, 143, 66, 9, 198, 49, 84, 195, 36, 19, 143, 66, 9, 198, 9, 80, 195, 36, 19, 143, 66, 8, 197,
-			84, 197, 9, 52, 144, 65, 11, 200, 24, 245, 15, 12, 19, 69, 72, 16, 67, 8, 197, 16, 80, 201, 56, 80, 66, 8, 197, 88, 243, 20,
-			72, 144, 16, 9, 197, 88, 81, 5, 72, 80, 66, 16, 8, 197, 80, 84, 195, 32, 144, 15, 8, 197, 28, 19, 1, 80, 144, 65, 8, 197,
-			20, 36, 137, 16, 144, 15, 8, 197, 16, 241, 193, 48, 144, 65, 15, 69, 5, 84, 201, 48, 144, 35, 40, 88, 6, 37, 55, 37, 0, 8,
-			197, 5, 52, 197, 16, 144, 15, 8, 197, 4, 229, 5, 52, 144, 15, 0, 9, 198, 73, 81, 199, 36, 226, 64, 65, 9, 198, 52, 83, 147,
-			36, 194, 64, 66, 7, 194, 58, 32, 76, 28, 46, 15, 1, 35, 49, 35, 50, 76, 36, 55, 55, 36, 47, 12, 39, 0, 13, 201, 88, 83,
-			148, 72, 147, 15, 69, 82, 64, 66, 15, 9, 198, 72, 150, 154, 60, 194, 64, 66, 9, 198, 72, 85, 20, 36, 98, 76, 67, 11, 200, 52,
-			86, 154, 60, 114, 79, 72, 224, 16, 12, 201, 16, 85, 84, 21, 35, 206, 60, 210, 64, 15, 0, 9, 198, 24, 244, 141, 36, 50, 5, 66,
-			17, 65, 36, 6, 117, 15, 83, 39, 50, 0, 81, 112, 104, 111, 110, 101, 32, 5, 193, 36, 76, 46, 26, 73, 72, 240, 195, 5, 32, 73,
-			56, 243, 1, 14, 16, 39, 49, 12, 35, 51, 35, 6, 37, 50, 110, 55, 35, 0, 9, 198, 64, 147, 143, 12, 50, 9, 15, 6, 195, 48,
-			84, 205, 15, 0, 6, 195, 37, 0, 64, 13, 15, 1, 37, 48, 36, 14, 16, 76, 6, 36, 50, 47, 39, 0, 27, 9, 198, 64, 148, 143,
-			77, 49, 78, 66, 7, 196, 28, 243, 7, 36, 15, 7, 196, 9, 37, 83, 36, 66, 0, 18, 70, 64, 83, 147, 36, 19, 79, 48, 36, 50,
-			89, 37, 6, 35, 65, 39, 0, 15, 69, 80, 149, 15, 48, 144, 47, 6, 37, 47, 39, 55, 37, 0, 9, 198, 24, 16, 197, 88, 19, 79,
-			67, 15, 5, 97, 118, 114, 195, 178, 108, 84, 14, 16, 6, 110, 0, 76, 6, 1, 38, 10, 36, 0, 8, 197, 72, 148, 15, 48, 144, 65,
-			8, 197, 61, 35, 211, 20, 144, 67, 11, 200, 16, 144, 201, 4, 227, 143, 88, 80, 15, 11, 200, 13, 33, 86, 4, 192, 207, 72, 80, 15,
-			8, 197, 5, 161, 71, 48, 144, 15, 0, 9, 198, 48, 19, 149, 76, 82, 64, 67, 0, 9, 198, 76, 36, 137, 28, 21, 9, 65, 13, 65,
-			40, 6, 37, 15, 55, 6, 40, 50, 81, 35, 0, 6, 195, 76, 240, 201, 15, 9, 198, 64, 84, 144, 21, 69, 65, 15, 10, 198, 48, 147,
-			143, 48, 85, 77, 66, 15, 0, 7, 196, 96, 147, 5, 52, 15, 10, 199, 76, 81, 9, 12, 84, 201, 52, 15, 9, 198, 72, 16, 129, 72,
-			32, 82, 66, 10, 199, 65, 83, 3, 32, 84, 137, 4, 66, 10, 199, 28, 243, 9, 5, 33, 9, 4, 68, 7, 196, 24, 195, 197, 52, 15,
-			11, 199, 5, 21, 73, 48, 81, 201, 4, 67, 15, 11, 200, 4, 224, 84, 72, 240, 195, 60, 192, 15, 0, 7, 196, 88, 17, 201, 56, 66,
-			16, 1, 42, 35, 89, 47, 36, 14, 16, 6, 37, 89, 49, 39, 0, 27, 9, 198, 65, 84, 144, 85, 33, 79, 66, 11, 200, 48, 18, 71,
-			84, 81, 204, 36, 16, 15, 10, 199, 16, 244, 15, 48, 21, 143, 72, 16, 10, 199, 12, 20, 212, 20, 195, 15, 56, 67, 12, 200, 8, 244,
-			135, 61, 49, 83, 36, 16, 67, 15, 10, 198, 5, 33, 197, 57, 65, 79, 66, 15, 0, 9, 198, 5, 85, 15, 56, 243, 64, 67, 8, 1,
-			43, 48, 57, 40, 0, 27, 9, 198, 65, 35, 194, 48, 83, 64, 15, 9, 198, 36, 229, 5, 72, 147, 64, 65, 9, 198, 21, 48, 78, 80,
-			83, 64, 15, 0, 14, 69, 76, 50, 65, 80, 240, 91, 37, 6, 35, 47, 110, 0, 7, 196, 56, 81, 193, 48, 65, 8, 197, 28, 148, 129,
-			56, 240, 65, 8, 197, 24, 16, 195, 36, 240, 77, 9, 65, 44, 49, 35, 48, 12, 35, 0, 9, 198, 77, 3, 212, 61, 35, 128, 16, 11,
-			199, 29, 35, 211, 76, 243, 79, 16, 67, 15, 7, 196, 28, 80, 133, 48, 15, 12, 201, 20, 224, 201, 12, 195, 208, 20, 66, 65, 69, 0,
-			9, 198, 76, 98, 76, 4, 227, 192, 65, 9, 198, 76, 98, 68, 36, 227, 192, 65, 9, 198, 76, 98, 68, 4, 227, 192, 65, 9, 198, 72,
-			83, 132, 4, 227, 192, 65, 9, 198, 64, 20, 148, 4, 227, 192, 65, 9, 198, 64, 20, 140, 36, 227, 192, 65, 9, 198, 64, 20, 140, 4,
-			227, 192, 65, 9, 198, 64, 17, 200, 36, 227, 192, 65, 17, 70, 36, 229, 137, 4, 227, 192, 37, 50, 84, 6, 37, 35, 50, 39, 0, 9,
-			198, 16, 85, 137, 4, 227, 192, 65, 9, 198, 8, 20, 212, 4, 227, 192, 65, 17, 70, 5, 101, 137, 4, 227, 192, 35, 84, 12, 6, 37,
-			35, 50, 39, 0, 9, 198, 52, 243, 132, 4, 227, 192, 66, 9, 198, 16, 16, 201, 4, 227, 192, 66, 9, 198, 4, 244, 212, 4, 227, 192,
-			67, 23, 73, 24, 148, 195, 32, 145, 84, 80, 147, 192, 83, 37, 89, 49, 37, 36, 47, 12, 6, 37, 39, 0, 9, 198, 5, 100, 129, 56,
-			227, 192, 76, 17, 70, 88, 82, 67, 60, 195, 192, 84, 109, 6, 37, 49, 39, 55, 39, 0, 7, 196, 52, 241, 5, 52, 15, 9, 198, 8,
-			148, 212, 20, 48, 192, 16, 10, 198, 4, 227, 205, 4, 195, 192, 66, 15, 7, 196, 4, 192, 193, 52, 65, 0, 0, 9, 1, 47, 89, 55,
-			35, 91, 0, 27, 8, 197, 56, 80, 212, 60, 224, 15, 0, 9, 198, 76, 48, 76, 64, 149, 1, 65, 16, 4, 95, 100, 105, 97, 72, 57,
-			36, 51, 6, 36, 12, 88, 126, 0, 8, 65, 48, 109, 55, 55, 36, 0, 8, 196, 80, 83, 133, 16, 65, 15, 9, 198, 64, 148, 143, 48,
-			148, 201, 66, 10, 199, 64, 84, 146, 20, 112, 85, 96, 66, 9, 198, 16, 144, 71, 56, 244, 201, 65, 8, 196, 12, 83, 133, 16, 65, 15,
-			7, 196, 12, 19, 129, 16, 65, 0, 7, 196, 65, 33, 67, 36, 15, 7, 196, 16, 145, 67, 36, 15, 0, 9, 198, 77, 101, 79, 80, 19,
-			143, 65, 9, 198, 77, 2, 69, 28, 19, 143, 65, 9, 198, 76, 99, 206, 16, 147, 143, 65, 9, 198, 72, 149, 9, 72, 19, 143, 66, 9,
-			198, 16, 81, 9, 12, 19, 143, 65, 9, 198, 4, 195, 5, 56, 19, 143, 66, 9, 198, 64, 17, 15, 88, 19, 143, 67, 10, 67, 40, 21,
-			211, 75, 39, 12, 89, 0, 0, 0, 9, 198, 76, 99, 210, 104, 21, 9, 65, 8, 65, 52, 109, 65, 65, 36, 0, 9, 198, 77, 66, 71,
-			52, 21, 5, 65, 7, 196, 76, 16, 129, 80, 65, 9, 198, 72, 241, 9, 80, 244, 137, 16, 12, 201, 65, 35, 211, 80, 17, 133, 72, 84,
-			201, 67, 7, 196, 52, 243, 137, 80, 65, 8, 197, 45, 32, 75, 61, 112, 66, 10, 199, 24, 147, 1, 57, 68, 143, 64, 66, 0, 12, 201,
-			21, 52, 12, 36, 50, 84, 4, 227, 192, 66, 10, 199, 76, 145, 206, 61, 34, 76, 20, 67, 10, 199, 76, 96, 82, 24, 19, 12, 36, 67,
-			10, 199, 52, 16, 210, 60, 51, 211, 52, 15, 0, 19, 72, 8, 21, 68, 20, 192, 73, 72, 80, 71, 110, 72, 55, 6, 109, 14, 16, 0,
-			0, 19, 70, 65, 34, 86, 4, 54, 64, 48, 14, 16, 6, 35, 37, 84, 35, 88, 37, 0, 10, 198, 16, 80, 197, 8, 19, 0, 66, 15,
-			0, 9, 198, 80, 241, 204, 36, 84, 133, 65, 9, 198, 72, 147, 65, 56, 84, 133, 67, 10, 198, 12, 243, 80, 36, 84, 133, 65, 16, 9,
-			198, 12, 241, 204, 36, 84, 133, 65, 9, 198, 8, 19, 66, 4, 114, 65, 66, 11, 70, 76, 241, 148, 92, 20, 133, 21, 0, 47, 16, 70,
-			32, 20, 132, 92, 20, 133, 6, 35, 34, 72, 122, 36, 51, 0, 8, 65, 56, 109, 50, 50, 36, 0, 9, 198, 81, 32, 77, 21, 166, 128,
-			15, 9, 198, 76, 98, 78, 80, 84, 133, 66, 0, 10, 199, 61, 38, 137, 57, 83, 214, 36, 15, 12, 201, 24, 20, 141, 4, 49, 85, 80,
-			144, 192, 67, 11, 199, 12, 84, 150, 21, 65, 82, 36, 66, 15, 0, 8, 196, 21, 52, 5, 72, 65, 15, 0, 0, 7, 65, 60, 110, 12,
-			0, 49, 5, 193, 60, 76, 28, 12, 201, 65, 35, 212, 60, 208, 82, 80, 148, 133, 67, 6, 195, 28, 84, 213, 66, 9, 198, 24, 245, 15,
-			48, 148, 201, 66, 12, 201, 12, 147, 145, 84, 19, 148, 20, 227, 137, 15, 0, 11, 1, 61, 40, 81, 58, 35, 55, 36, 0, 27, 6, 195,
-			61, 0, 67, 66, 0, 9, 198, 76, 99, 210, 104, 147, 143, 65, 9, 198, 72, 145, 21, 12, 19, 143, 66, 9, 198, 36, 229, 137, 80, 147,
-			143, 66, 9, 198, 36, 229, 137, 16, 147, 143, 66, 9, 198, 28, 83, 73, 80, 147, 143, 65, 8, 197, 21, 52, 18, 36, 208, 66, 9, 198,
-			21, 48, 76, 80, 19, 143, 66, 9, 198, 5, 52, 213, 52, 19, 143, 66, 9, 198, 5, 36, 137, 88, 147, 143, 66, 8, 197, 76, 50, 5,
-			72, 208, 16, 8, 197, 20, 208, 140, 20, 208, 15, 0, 10, 199, 80, 84, 141, 36, 224, 78, 60, 65, 9, 198, 72, 85, 9, 56, 243, 0,
-			67, 6, 195, 64, 145, 84, 15, 9, 198, 12, 192, 85, 76, 243, 0, 65, 0, 11, 200, 12, 243, 150, 21, 36, 201, 56, 240, 66, 8, 197,
-			5, 69, 18, 36, 48, 66, 13, 1, 64, 49, 37, 6, 39, 76, 12, 39, 55, 35, 0, 6, 65, 64, 48, 37, 0, 7, 196, 104, 83, 137,
-			80, 15, 0, 18, 70, 72, 144, 86, 88, 147, 192, 14, 16, 37, 35, 84, 12, 6, 126, 110, 0, 9, 198, 9, 35, 206, 104, 83, 192, 65,
-			0, 14, 69, 28, 147, 201, 72, 80, 75, 39, 6, 37, 51, 109, 0, 9, 198, 8, 21, 20, 21, 35, 15, 65, 8, 197, 64, 21, 18, 36,
-			80, 65, 0, 10, 199, 72, 148, 213, 60, 226, 78, 60, 67, 10, 199, 21, 53, 5, 56, 64, 78, 60, 66, 10, 199, 12, 243, 15, 52, 32,
-			78, 60, 67, 10, 199, 12, 243, 15, 52, 32, 78, 60, 67, 9, 198, 88, 19, 132, 4, 194, 64, 65, 9, 198, 29, 84, 208, 36, 226, 64,
-			65, 9, 198, 17, 84, 15, 56, 66, 64, 15, 11, 200, 12, 148, 131, 60, 49, 78, 81, 32, 15, 9, 198, 12, 129, 82, 4, 66, 64, 65,
-			7, 196, 4, 229, 65, 44, 66, 0, 6, 65, 68, 49, 40, 0, 9, 198, 60, 211, 212, 80, 84, 137, 15, 9, 198, 37, 51, 212, 80, 84,
-			137, 15, 9, 198, 29, 32, 84, 80, 84, 137, 66, 6, 195, 12, 244, 205, 15, 6, 195, 12, 244, 205, 15, 9, 198, 12, 19, 69, 24, 149,
-			5, 66, 8, 197, 9, 32, 68, 37, 0, 65, 0, 7, 196, 4, 226, 77, 20, 65, 7, 196, 80, 83, 149, 20, 15, 7, 196, 65, 35, 195,
-			36, 15, 7, 196, 5, 144, 77, 20, 67, 0, 11, 68, 49, 80, 229, 4, 21, 101, 115, 0, 47, 11, 200, 72, 80, 201, 65, 35, 195, 32,
-			80, 66, 7, 195, 84, 224, 64, 77, 46, 9, 198, 4, 229, 8, 20, 210, 83, 65, 0, 0, 7, 196, 4, 198, 129, 48, 65, 11, 67, 41,
-			84, 137, 57, 6, 40, 51, 126, 0, 9, 198, 65, 34, 78, 12, 148, 9, 65, 8, 65, 72, 109, 51, 16, 36, 0, 7, 196, 76, 83, 69,
-			48, 15, 9, 198, 64, 83, 133, 48, 244, 5, 66, 9, 198, 61, 69, 15, 80, 148, 9, 66, 6, 195, 61, 4, 9, 15, 6, 195, 40, 84,
-			201, 15, 9, 198, 12, 20, 21, 48, 85, 9, 16, 9, 198, 4, 229, 9, 48, 244, 5, 66, 0, 10, 199, 81, 32, 77, 60, 113, 201, 4,
-			15, 11, 200, 65, 33, 71, 4, 230, 137, 60, 192, 68, 10, 199, 64, 144, 195, 5, 33, 9, 4, 67, 7, 196, 64, 19, 129, 52, 65, 6,
-			195, 21, 133, 18, 15, 10, 199, 16, 241, 9, 12, 84, 201, 52, 15, 7, 196, 16, 147, 129, 52, 65, 0, 11, 200, 52, 19, 135, 36, 21,
-			15, 36, 16, 16, 11, 200, 52, 19, 9, 56, 51, 206, 36, 16, 68, 11, 200, 12, 19, 80, 36, 67, 199, 48, 144, 15, 0, 13, 72, 92,
-			20, 200, 36, 225, 212, 60, 224, 21, 0, 47, 10, 199, 65, 34, 78, 12, 148, 9, 60, 66, 10, 198, 52, 81, 5, 76, 147, 64, 66, 16,
-			13, 68, 32, 19, 142, 60, 35, 50, 50, 39, 0, 76, 32, 30, 4, 95, 100, 111, 116, 48, 6, 40, 50, 47, 39, 15, 89, 4, 39, 84,
-			14, 16, 35, 89, 49, 14, 16, 6, 37, 47, 12, 39, 0, 15, 204, 64, 244, 148, 4, 83, 9, 12, 245, 20, 21, 34, 64, 15, 9, 198,
-			8, 192, 83, 24, 83, 64, 15, 0, 8, 65, 76, 36, 89, 89, 36, 0, 9, 198, 12, 243, 148, 61, 35, 128, 16, 0, 9, 198, 88, 19,
-			7, 4, 227, 192, 65, 9, 198, 81, 35, 214, 36, 227, 192, 65, 9, 198, 80, 84, 212, 4, 227, 192, 65, 9, 198, 77, 0, 82, 48, 147,
-			143, 65, 9, 198, 77, 0, 82, 48, 19, 143, 65, 9, 198, 76, 84, 150, 36, 227, 192, 65, 9, 198, 76, 84, 150, 4, 227, 192, 65, 10,
-			198, 76, 81, 206, 4, 227, 192, 65, 15, 9, 198, 72, 84, 212, 4, 227, 192, 65, 9, 198, 72, 81, 206, 4, 227, 192, 65, 9, 198, 65,
-			33, 71, 4, 227, 192, 65, 9, 198, 64, 83, 147, 36, 227, 192, 65, 9, 198, 64, 20, 211, 4, 227, 192, 65, 9, 198, 29, 34, 68, 36,
-			227, 192, 65, 9, 198, 29, 34, 68, 4, 227, 192, 65, 9, 198, 16, 85, 20, 36, 227, 192, 65, 9, 198, 12, 21, 83, 4, 227, 192, 65,
-			9, 198, 9, 37, 67, 36, 227, 192, 65, 17, 70, 4, 149, 84, 4, 227, 192, 35, 57, 6, 40, 47, 35, 50, 39, 0, 12, 201, 77, 0,
-			90, 36, 244, 12, 4, 227, 192, 68, 9, 198, 76, 245, 146, 4, 227, 192, 66, 9, 198, 76, 244, 211, 4, 227, 192, 66, 9, 198, 76, 243,
-			4, 4, 227, 192, 66, 9, 198, 72, 246, 154, 4, 227, 192, 66, 9, 198, 72, 244, 211, 4, 227, 192, 66, 9, 198, 72, 241, 146, 4, 227,
-			192, 66, 9, 198, 64, 243, 154, 4, 227, 192, 66, 9, 198, 52, 244, 211, 4, 227, 192, 66, 17, 70, 52, 243, 154, 4, 227, 192, 65, 110,
-			50, 128, 6, 35, 50, 39, 0, 9, 198, 52, 243, 147, 4, 227, 192, 66, 9, 198, 48, 243, 135, 4, 227, 192, 66, 9, 198, 24, 244, 211,
-			4, 227, 192, 66, 9, 198, 16, 244, 154, 4, 227, 192, 66, 9, 198, 12, 244, 147, 4, 227, 192, 66, 11, 70, 77, 0, 78, 37, 50, 0,
-			21, 0, 47, 6, 195, 77, 0, 64, 13, 8, 197, 77, 0, 84, 60, 192, 65, 8, 197, 77, 0, 76, 5, 64, 65, 9, 198, 77, 0, 71,
-			56, 243, 0, 66, 12, 201, 77, 0, 67, 12, 19, 129, 64, 243, 9, 67, 11, 200, 77, 0, 67, 12, 17, 143, 72, 224, 16, 7, 196, 72,
-			16, 197, 52, 15, 9, 198, 65, 33, 70, 21, 69, 0, 15, 10, 199, 61, 35, 199, 20, 225, 83, 36, 67, 9, 198, 12, 20, 5, 48, 195,
-			192, 16, 0, 6, 195, 80, 241, 192, 15, 6, 195, 48, 241, 192, 15, 0, 13, 202, 80, 84, 141, 60, 83, 5, 81, 68, 137, 12, 15, 12,
-			201, 76, 245, 20, 60, 213, 76, 80, 148, 12, 67, 0, 6, 65, 80, 47, 37, 0, 11, 200, 12, 243, 69, 28, 194, 65, 57, 48, 67, 0,
-			15, 70, 12, 130, 67, 4, 115, 192, 76, 37, 49, 35, 81, 39, 0, 21, 71, 77, 68, 129, 80, 81, 201, 20, 89, 47, 14, 16, 35, 47,
-			36, 75, 6, 37, 36, 0, 9, 198, 76, 145, 5, 72, 83, 192, 66, 7, 196, 76, 81, 199, 36, 15, 9, 198, 64, 148, 137, 80, 243, 192,
-			66, 9, 198, 56, 144, 207, 48, 19, 192, 67, 7, 196, 52, 241, 199, 36, 15, 14, 68, 48, 81, 199, 36, 55, 6, 36, 75, 12, 4, 37,
-			0, 11, 200, 25, 32, 78, 12, 240, 143, 48, 192, 16, 7, 196, 16, 19, 129, 20, 65, 9, 198, 4, 192, 137, 72, 83, 192, 66, 0, 11,
-			200, 72, 148, 207, 49, 97, 82, 48, 16, 66, 14, 68, 9, 35, 206, 104, 71, 14, 16, 6, 39, 50, 128, 0, 6, 195, 76, 147, 192, 66,
-			10, 199, 64, 145, 84, 72, 20, 143, 40, 15, 6, 195, 60, 33, 83, 15, 6, 195, 21, 83, 128, 65, 0, 11, 199, 36, 225, 204, 60, 32,
-			78, 60, 66, 16, 10, 199, 72, 245, 15, 64, 192, 78, 60, 67, 10, 199, 8, 243, 15, 28, 224, 78, 60, 67, 6, 195, 80, 129, 84, 15,
-			9, 198, 52, 20, 141, 37, 35, 204, 67, 9, 198, 36, 229, 5, 73, 3, 204, 67, 0, 9, 198, 88, 83, 12, 21, 68, 137, 16, 7, 196,
-			72, 241, 201, 80, 65, 10, 199, 69, 80, 68, 73, 84, 15, 48, 67, 12, 201, 65, 50, 67, 61, 50, 78, 80, 84, 201, 67, 7, 196, 61,
-			52, 197, 80, 15, 7, 196, 36, 212, 5, 80, 65, 7, 196, 24, 16, 197, 80, 15, 12, 201, 5, 48, 204, 21, 2, 79, 16, 245, 0, 68,
-			0, 9, 198, 16, 83, 9, 52, 149, 0, 66, 9, 198, 65, 35, 211, 80, 21, 0, 65, 9, 198, 20, 211, 212, 36, 51, 206, 66, 10, 199,
-			8, 148, 197, 77, 66, 76, 20, 67, 9, 198, 5, 3, 211, 80, 21, 0, 66, 0, 6, 195, 20, 226, 64, 66, 0, 29, 67, 33, 69, 16,
-			6, 35, 49, 12, 35, 47, 4, 37, 12, 47, 4, 37, 12, 48, 6, 37, 12, 10, 0, 81, 58, 47, 47, 32, 12, 201, 72, 16, 132, 60,
-			208, 78, 104, 144, 64, 68, 9, 198, 28, 194, 67, 21, 35, 204, 67, 0, 6, 65, 88, 84, 40, 0, 6, 195, 89, 81, 21, 66, 7, 196,
-			21, 84, 143, 64, 15, 9, 198, 12, 130, 65, 88, 20, 137, 65, 6, 195, 8, 244, 201, 15, 0, 11, 200, 16, 148, 206, 21, 147, 1, 56,
-			64, 65, 10, 199, 84, 225, 9, 12, 84, 201, 52, 15, 10, 199, 76, 245, 133, 73, 161, 78, 20, 66, 0, 11, 200, 76, 20, 146, 4, 49,
-			78, 36, 16, 15, 0, 17, 4, 95, 49, 77, 52, 40, 50, 71, 37, 55, 37, 6, 39, 50, 36, 0, 0, 12, 1, 92, 71, 35, 49, 89,
-			55, 35, 91, 0, 27, 14, 65, 92, 72, 6, 39, 48, 12, 57, 35, 84, 6, 40, 0, 6, 195, 80, 81, 213, 66, 7, 196, 52, 245, 5,
-			48, 66, 7, 196, 8, 85, 5, 48, 15, 0, 7, 196, 12, 84, 129, 52, 65, 0, 0, 10, 199, 72, 148, 1, 28, 130, 78, 60, 66, 10,
-			199, 16, 81, 9, 12, 130, 78, 60, 65, 10, 199, 4, 113, 86, 60, 194, 78, 60, 66, 9, 198, 76, 244, 18, 4, 34, 84, 66, 9, 198,
-			72, 85, 18, 60, 98, 84, 65, 9, 198, 65, 33, 84, 21, 34, 84, 66, 6, 195, 48, 145, 84, 15, 8, 196, 8, 244, 132, 60, 65, 15,
-			0, 12, 200, 52, 145, 204, 36, 244, 137, 56, 240, 66, 16, 13, 4, 95, 49, 77, 49, 65, 6, 37, 55, 55, 36, 0, 8, 65, 96, 6,
-			37, 49, 89, 0, 7, 196, 76, 243, 9, 80, 65, 0, 9, 198, 5, 97, 86, 4, 211, 192, 75, 9, 198, 21, 32, 86, 4, 211, 192, 67,
-			5, 194, 4, 64, 76, 17, 4, 95, 49, 77, 50, 40, 50, 65, 37, 55, 37, 6, 39, 50, 36, 0, 7, 196, 29, 35, 211, 36, 15, 7,
-			196, 5, 35, 211, 36, 15, 9, 198, 5, 32, 143, 72, 83, 192, 66, 0, 18, 4, 95, 49, 77, 51, 40, 50, 65, 37, 55, 37, 6, 35,
-			51, 72, 39, 0, 0, 10, 199, 76, 100, 149, 81, 66, 78, 60, 65, 10, 199, 36, 212, 5, 28, 226, 78, 60, 66, 9, 198, 65, 35, 212,
-			61, 66, 80, 66, 15, 204, 61, 52, 201, 16, 244, 133, 17, 85, 20, 5, 50, 64, 65, 0, 12, 65, 100, 6, 37, 48, 89, 37, 55, 39,
-			50, 0, 6, 195, 61, 51, 73, 15, 6, 195, 36, 243, 137, 15, 6, 195, 36, 65, 9, 66, 7, 196, 4, 115, 210, 16, 65, 0, 18, 70,
-			76, 245, 86, 20, 226, 82, 89, 40, 84, 109, 50, 6, 37, 14, 16, 0, 7, 196, 77, 83, 12, 4, 76, 7, 196, 16, 83, 12, 4, 76,
-			7, 196, 16, 19, 12, 4, 76, 8, 197, 81, 84, 143, 48, 64, 15, 9, 197, 56, 147, 82, 60, 64, 66, 15, 0, 10, 199, 21, 38, 133,
-			28, 245, 137, 56, 67, 9, 198, 12, 244, 144, 61, 33, 79, 66, 9, 198, 12, 19, 3, 5, 33, 79, 66, 0, 17, 70, 12, 243, 137, 84,
-			112, 64, 49, 6, 39, 50, 57, 40, 81, 35, 0, 8, 197, 81, 34, 79, 56, 96, 16, 9, 198, 76, 99, 199, 48, 144, 64, 15, 7, 196,
-			76, 35, 195, 12, 16, 9, 198, 72, 243, 65, 56, 144, 64, 67, 9, 198, 25, 32, 84, 80, 83, 80, 15, 7, 196, 12, 20, 1, 12, 66,
-			9, 198, 4, 65, 83, 52, 144, 64, 67, 0, 10, 67, 64, 192, 89, 48, 55, 6, 119, 0, 8, 65, 104, 128, 109, 47, 35, 0, 6, 195,
-			72, 241, 9, 15, 7, 196, 8, 147, 206, 16, 16, 0, 9, 198, 48, 16, 146, 4, 67, 210, 65, 13, 68, 5, 97, 82, 20, 35, 84, 6,
-			36, 51, 36, 0, 8, 197, 88, 242, 86, 60, 64, 15, 9, 198, 76, 245, 20, 61, 163, 206, 15, 9, 198, 49, 80, 201, 25, 81, 192, 66,
-			7, 196, 29, 33, 86, 20, 15, 11, 200, 12, 243, 5, 77, 65, 82, 60, 192, 68, 0, 6, 195, 64, 244, 192, 15, 6, 195, 21, 84, 128,
-			65, 0, 9, 198, 77, 84, 195, 37, 64, 64, 65, 9, 198, 64, 19, 16, 37, 64, 64, 65, 9, 198, 4, 34, 76, 37, 64, 64, 66, 21,
-			71, 25, 32, 78, 12, 148, 195, 60, 83, 14, 16, 35, 50, 89, 6, 37, 89, 49, 39, 0, 9, 198, 4, 193, 197, 9, 32, 64, 65, 8,
-			197, 64, 192, 67, 20, 32, 15, 9, 198, 64, 147, 69, 57, 65, 76, 67, 7, 196, 61, 69, 9, 12, 15, 7, 196, 56, 147, 69, 28, 15,
-			9, 198, 24, 84, 143, 12, 144, 64, 15, 9, 197, 12, 244, 132, 60, 32, 65, 16, 9, 198, 8, 20, 130, 21, 32, 64, 66, 9, 198, 8,
-			16, 195, 5, 32, 64, 67, 11, 200, 4, 192, 66, 5, 53, 18, 60, 224, 66, 0, 6, 195, 20, 32, 133, 76, 6, 195, 61, 32, 193, 16,
-			9, 198, 16, 148, 208, 72, 244, 201, 15, 9, 198, 9, 34, 78, 16, 148, 201, 65, 6, 195, 8, 16, 129, 66, 9, 198, 5, 48, 193, 48,
-			17, 128, 66, 0, 16, 70, 76, 50, 65, 56, 67, 192, 91, 37, 6, 35, 50, 72, 110, 0, 9, 198, 76, 19, 22, 36, 227, 192, 65, 9,
-			198, 76, 19, 22, 4, 227, 192, 65, 9, 198, 60, 97, 146, 4, 227, 192, 65, 9, 198, 81, 33, 86, 4, 227, 192, 66, 9, 198, 76, 244,
-			18, 4, 227, 192, 66, 20, 71, 12, 20, 132, 36, 16, 200, 20, 49, 35, 14, 16, 72, 6, 37, 35, 49, 36, 0, 6, 195, 5, 68, 0,
-			13, 17, 70, 88, 16, 213, 60, 195, 192, 84, 35, 49, 6, 40, 110, 55, 39, 0, 10, 199, 80, 85, 18, 5, 3, 196, 20, 66, 8, 197,
-			77, 2, 78, 60, 192, 65, 9, 198, 12, 244, 146, 21, 69, 0, 15, 9, 198, 12, 147, 133, 80, 80, 192, 15, 0, 11, 200, 52, 243, 148,
-			21, 97, 82, 16, 80, 16, 11, 200, 4, 116, 143, 76, 148, 212, 20, 208, 15, 0, 10, 199, 77, 80, 129, 13, 21, 69, 60, 66, 6, 195,
-			64, 241, 84, 15, 0, 10, 198, 64, 19, 132, 61, 50, 65, 66, 15, 9, 198, 52, 147, 149, 80, 243, 9, 66, 9, 198, 48, 21, 82, 5,
-			50, 65, 67, 9, 198, 20, 113, 77, 60, 226, 65, 68, 11, 200, 12, 130, 82, 60, 112, 76, 20, 240, 67, 9, 198, 4, 226, 82, 36, 66,
-			65, 68, 10, 198, 4, 208, 146, 61, 50, 65, 66, 15, 6, 195, 4, 32, 129, 66, 0, 7, 196, 80, 83, 80, 36, 15, 8, 197, 8, 83,
-			9, 4, 192, 67, 8, 197, 4, 113, 82, 60, 192, 66, 0, 18, 70, 76, 50, 65, 81, 34, 67, 91, 37, 35, 47, 14, 16, 6, 126, 76,
-			0, 11, 200, 52, 243, 148, 21, 97, 82, 16, 144, 16, 12, 200, 24, 244, 211, 4, 49, 83, 36, 16, 67, 15, 11, 200, 12, 83, 148, 61,
-			2, 69, 16, 144, 15, 6, 195, 4, 81, 0, 15, 0, 10, 199, 64, 84, 147, 64, 144, 193, 12, 67, 9, 198, 25, 32, 84, 36, 50, 68,
-			67, 8, 197, 21, 48, 71, 60, 224, 66, 0, 9, 198, 80, 144, 149, 72, 243, 128, 67, 10, 198, 80, 83, 5, 28, 243, 128, 66, 15, 9,
-			198, 76, 147, 131, 72, 243, 128, 65, 8, 196, 72, 81, 15, 96, 66, 15, 11, 200, 64, 148, 143, 80, 80, 206, 36, 48, 15, 9, 198, 64,
-			80, 195, 36, 243, 9, 15, 6, 195, 60, 35, 9, 66, 11, 200, 20, 115, 195, 20, 229, 18, 36, 48, 15, 9, 198, 4, 229, 9, 24, 243,
-			128, 66, 0, 0, 8, 196, 80, 83, 133, 72, 66, 46, 8, 196, 76, 243, 129, 72, 65, 46, 7, 196, 76, 243, 129, 72, 15, 7, 196, 16,
-			147, 129, 72, 65, 6, 195, 4, 85, 0, 15, 0, 12, 201, 4, 113, 201, 84, 225, 197, 72, 225, 64, 66, 9, 197, 64, 244, 144, 61, 32,
-			65, 16, 12, 201, 12, 148, 212, 36, 97, 76, 48, 80, 64, 67, 10, 198, 5, 85, 15, 77, 67, 208, 68, 15, 0, 18, 70, 29, 80, 82,
-			16, 20, 128, 81, 58, 35, 14, 16, 72, 6, 35, 51, 0, 11, 70, 81, 113, 69, 80, 84, 128, 21, 0, 47, 9, 198, 64, 243, 9, 52,
-			84, 128, 66, 9, 198, 52, 85, 1, 52, 84, 128, 66, 0, 10, 199, 36, 225, 15, 56, 84, 201, 4, 67, 13, 70, 8, 245, 81, 84, 85,
-			0, 21, 102, 114, 0, 47, 7, 196, 81, 34, 66, 84, 66, 14, 203, 64, 20, 129, 48, 193, 76, 21, 2, 80, 20, 64, 69, 6, 195, 5,
-			32, 66, 65, 10, 199, 4, 224, 83, 80, 20, 201, 4, 67, 0, 8, 196, 88, 17, 133, 72, 65, 47, 6, 195, 52, 84, 192, 15, 10, 198,
-			36, 115, 5, 76, 144, 83, 66, 15, 10, 199, 13, 34, 83, 80, 241, 143, 72, 66, 7, 196, 8, 21, 129, 72, 65, 0, 7, 196, 72, 148,
-			15, 76, 15, 12, 201, 64, 144, 195, 60, 195, 205, 36, 226, 64, 67, 9, 198, 61, 53, 18, 60, 115, 212, 15, 7, 196, 56, 245, 5, 76,
-			15, 11, 200, 8, 21, 20, 36, 32, 76, 20, 224, 16, 0, 8, 197, 76, 85, 146, 21, 48, 15, 9, 197, 52, 82, 206, 21, 48, 66, 15,
-			0, 17, 70, 12, 83, 19, 37, 84, 192, 123, 109, 55, 89, 57, 6, 40, 89, 0, 13, 202, 88, 19, 4, 60, 32, 137, 4, 65, 78, 20,
-			67, 8, 196, 76, 84, 193, 52, 65, 15, 6, 195, 60, 209, 82, 65, 9, 198, 5, 85, 15, 9, 84, 192, 65, 0, 9, 1, 126, 47, 37,
-			55, 72, 36, 0, 10, 199, 80, 21, 82, 36, 19, 143, 88, 15, 0, 10, 199, 16, 80, 149, 81, 66, 78, 60, 66, 10, 199, 4, 113, 86,
-			60, 192, 78, 60, 66, 17, 4, 95, 116, 108, 100, 49, 39, 50, 15, 47, 6, 37, 55, 72, 36, 0, 8, 197, 52, 22, 154, 36, 224, 66,
-			8, 197, 8, 243, 132, 20, 224, 16, 0, 11, 200, 72, 17, 134, 61, 38, 137, 56, 240, 66, 11, 200, 28, 149, 68, 36, 50, 9, 56, 240,
-			65, 22, 72, 16, 80, 77, 9, 83, 1, 56, 240, 72, 36, 6, 35, 65, 71, 40, 55, 35, 50, 39, 0, 11, 200, 12, 243, 134, 21, 35,
-			65, 56, 240, 66, 11, 200, 76, 50, 78, 80, 147, 12, 36, 240, 67, 9, 68, 80, 245, 67, 32, 21, 0, 47, 7, 196, 88, 243, 73, 80,
-			65, 12, 201, 64, 84, 132, 5, 49, 5, 24, 241, 213, 15, 8, 197, 16, 147, 206, 37, 48, 66, 0, 9, 198, 24, 244, 211, 36, 211, 192,
-			77, 16, 70, 76, 49, 73, 12, 51, 192, 91, 109, 6, 37, 49, 12, 39, 0, 8, 197, 52, 243, 15, 12, 128, 15, 9, 198, 4, 229, 5,
-			48, 19, 192, 67, 0, 9, 198, 77, 101, 79, 80, 19, 15, 65, 11, 200, 72, 144, 193, 64, 149, 15, 48, 16, 67, 0, 7, 196, 64, 147,
-			5, 60, 65, 9, 198, 52, 85, 1, 64, 243, 148, 15, 8, 197, 52, 16, 200, 36, 224, 65, 7, 196, 36, 243, 1, 60, 67, 0, 9, 198,
-			88, 19, 7, 60, 115, 9, 15, 6, 195, 72, 83, 137, 16, 9, 198, 64, 20, 129, 85, 37, 9, 67, 0, 9, 198, 88, 192, 68, 36, 210,
-			82, 67, 8, 196, 8, 145, 206, 20, 66, 15, 0, 10, 199, 72, 148, 195, 84, 245, 5, 72, 66, 10, 199, 65, 33, 84, 20, 225, 5, 72,
-			66, 10, 199, 65, 33, 83, 8, 149, 5, 72, 66, 10, 199, 4, 48, 201, 64, 149, 5, 72, 66, 0, 7, 196, 85, 48, 133, 12, 15, 10,
-			199, 72, 240, 195, 5, 49, 67, 12, 16, 7, 196, 72, 144, 133, 12, 15, 7, 196, 60, 131, 73, 12, 15, 12, 201, 52, 81, 137, 77, 67,
-			198, 20, 193, 64, 67, 8, 197, 45, 84, 149, 52, 32, 65, 10, 199, 28, 245, 20, 5, 49, 67, 12, 16, 10, 198, 12, 243, 135, 73, 80,
-			64, 65, 15, 9, 198, 4, 113, 78, 104, 144, 64, 67, 0, 12, 201, 12, 21, 5, 73, 2, 76, 48, 20, 128, 65, 6, 195, 81, 83, 201,
-			76, 6, 195, 52, 81, 9, 15, 0, 7, 196, 60, 197, 18, 20, 76, 7, 196, 88, 84, 142, 20, 66, 11, 200, 76, 20, 132, 4, 224, 80,
-			4, 192, 67, 8, 197, 60, 210, 67, 36, 64, 67, 0, 11, 200, 24, 244, 142, 37, 68, 137, 12, 144, 67, 10, 199, 52, 243, 148, 61, 33,
-			129, 56, 66, 11, 200, 52, 243, 66, 5, 35, 195, 12, 144, 15, 6, 195, 21, 97, 64, 15, 0, 9, 198, 52, 244, 141, 61, 32, 64, 65,
-			7, 196, 4, 65, 9, 12, 66, 8, 197, 52, 144, 210, 60, 32, 65, 15, 69, 12, 194, 67, 34, 32, 49, 55, 37, 12, 91, 6, 36, 0,
-			6, 195, 64, 83, 12, 16, 11, 200, 5, 34, 83, 80, 244, 211, 20, 224, 67, 0, 9, 198, 88, 84, 195, 36, 50, 5, 66, 6, 195, 5,
-			48, 197, 66, 0, 7, 196, 77, 67, 210, 52, 16, 8, 197, 76, 48, 84, 60, 192, 65, 11, 199, 20, 212, 5, 16, 240, 204, 20, 66, 15,
-			10, 199, 12, 19, 142, 36, 32, 76, 20, 66, 10, 199, 12, 19, 80, 4, 226, 76, 20, 67, 0, 7, 196, 61, 33, 129, 56, 65, 7, 196,
-			60, 49, 65, 56, 66, 0, 17, 70, 16, 245, 206, 48, 240, 68, 72, 35, 122, 50, 55, 6, 110, 72, 0, 8, 197, 84, 226, 83, 60, 224,
-			66, 8, 197, 52, 20, 131, 60, 224, 66, 0, 9, 198, 52, 19, 22, 4, 114, 65, 66, 9, 198, 76, 195, 214, 20, 226, 65, 15, 9, 198,
-			76, 83, 5, 84, 50, 65, 66, 9, 198, 72, 243, 65, 56, 66, 65, 67, 9, 198, 65, 35, 211, 60, 66, 65, 67, 9, 198, 64, 20, 129,
-			80, 242, 65, 16, 9, 198, 60, 211, 212, 61, 2, 65, 68, 9, 198, 28, 20, 129, 57, 162, 65, 67, 9, 198, 24, 243, 7, 5, 34, 65,
-			67, 9, 198, 24, 19, 1, 76, 50, 65, 67, 9, 198, 21, 84, 137, 80, 210, 65, 68, 9, 198, 9, 83, 7, 5, 34, 65, 67, 0, 7,
-			196, 61, 4, 137, 52, 66, 5, 194, 16, 16, 76, 8, 197, 81, 33, 77, 36, 192, 66, 6, 195, 64, 83, 142, 16, 7, 196, 52, 240, 200,
-			36, 15, 7, 196, 28, 129, 68, 36, 15, 0, 9, 198, 80, 19, 135, 4, 226, 67, 67, 9, 198, 76, 243, 12, 21, 66, 67, 16, 7, 196,
-			64, 84, 133, 104, 16, 9, 198, 52, 18, 69, 85, 66, 67, 66, 0, 8, 197, 80, 84, 146, 20, 224, 16, 8, 197, 80, 20, 144, 4, 224,
-			66, 8, 197, 72, 17, 204, 4, 224, 66, 8, 197, 64, 192, 84, 36, 224, 65, 9, 197, 12, 243, 147, 60, 224, 65, 15, 8, 197, 12, 148,
-			205, 60, 224, 66, 9, 197, 12, 83, 148, 36, 224, 65, 15, 8, 197, 12, 20, 212, 36, 224, 65, 8, 197, 12, 20, 140, 36, 224, 66, 0,
-			6, 195, 16, 19, 0, 76, 10, 199, 12, 20, 193, 80, 145, 76, 48, 16, 0, 6, 195, 61, 32, 70, 65, 9, 198, 16, 84, 15, 76, 149,
-			0, 66, 10, 198, 4, 225, 68, 16, 245, 0, 66, 15, 0, 10, 199, 16, 148, 201, 57, 65, 71, 72, 66, 7, 196, 81, 83, 133, 72, 65,
-			7, 196, 88, 148, 201, 72, 66, 7, 195, 76, 19, 15, 66, 15, 6, 195, 8, 85, 0, 15, 0, 13, 202, 72, 20, 211, 60, 210, 71, 48,
-			144, 78, 60, 67, 10, 199, 36, 229, 18, 36, 228, 197, 12, 66, 0, 9, 198, 65, 33, 78, 16, 84, 128, 65, 9, 198, 16, 84, 201, 16,
-			84, 128, 66, 16, 70, 52, 145, 204, 36, 244, 128, 65, 37, 61, 6, 110, 14, 16, 0, 9, 198, 81, 32, 73, 48, 84, 128, 65, 9, 198,
-			77, 67, 208, 64, 84, 128, 65, 18, 70, 77, 1, 78, 12, 84, 128, 89, 48, 6, 36, 50, 89, 36, 14, 16, 0, 9, 198, 65, 33, 77,
-			36, 84, 128, 65, 18, 70, 25, 33, 69, 104, 84, 128, 83, 14, 16, 6, 37, 128, 109, 14, 16, 0, 9, 198, 12, 128, 82, 80, 84, 128,
-			65, 18, 70, 9, 35, 215, 76, 84, 128, 71, 14, 16, 6, 35, 58, 88, 109, 34, 0, 9, 198, 80, 81, 15, 24, 244, 128, 66, 6, 195,
-			77, 67, 205, 15, 6, 195, 76, 241, 9, 15, 9, 198, 76, 51, 210, 64, 244, 128, 65, 9, 198, 76, 50, 76, 36, 20, 128, 67, 9, 198,
-			72, 144, 207, 88, 84, 128, 66, 6, 195, 60, 115, 9, 15, 9, 198, 52, 85, 1, 24, 244, 128, 66, 9, 198, 21, 32, 137, 88, 244, 128,
-			66, 10, 198, 20, 48, 197, 80, 84, 128, 66, 15, 0, 10, 198, 37, 3, 195, 72, 149, 0, 66, 15, 16, 70, 64, 130, 76, 37, 4, 192,
-			83, 6, 37, 55, 37, 48, 89, 0, 10, 199, 81, 35, 214, 5, 35, 194, 20, 15, 12, 200, 80, 83, 5, 56, 49, 70, 4, 192, 67, 15,
-			9, 198, 64, 20, 129, 8, 149, 0, 66, 12, 200, 52, 84, 197, 56, 49, 70, 4, 192, 67, 15, 9, 198, 13, 33, 83, 12, 149, 0, 65,
-			9, 198, 12, 243, 131, 61, 36, 192, 16, 0, 7, 196, 72, 81, 197, 72, 65, 14, 68, 92, 21, 5, 72, 84, 6, 35, 47, 109, 14, 16,
-			0, 9, 198, 5, 97, 83, 76, 147, 79, 76, 7, 196, 104, 17, 193, 72, 65, 6, 195, 88, 241, 11, 15, 7, 196, 80, 241, 1, 72, 65,
-			12, 201, 72, 240, 195, 4, 115, 15, 72, 147, 211, 16, 7, 196, 24, 241, 5, 72, 65, 7, 196, 24, 145, 193, 72, 65, 10, 199, 5, 32,
-			207, 8, 19, 5, 56, 16, 7, 196, 4, 225, 143, 72, 65, 0, 8, 67, 92, 19, 12, 21, 0, 47, 7, 196, 64, 244, 143, 76, 16, 6,
-			195, 64, 243, 12, 16, 6, 195, 64, 243, 12, 16, 11, 200, 64, 144, 78, 80, 84, 146, 20, 224, 16, 9, 198, 4, 210, 71, 16, 19, 0,
-			66, 0, 9, 198, 64, 243, 9, 56, 243, 73, 15, 12, 201, 5, 34, 83, 80, 241, 201, 80, 243, 133, 68, 12, 201, 4, 225, 204, 61, 48,
-			83, 76, 243, 133, 67, 0, 11, 199, 65, 50, 67, 60, 195, 199, 36, 66, 47, 7, 196, 64, 83, 132, 36, 66, 9, 198, 24, 147, 15, 9,
-			84, 192, 65, 8, 197, 21, 64, 78, 60, 192, 67, 9, 198, 12, 148, 18, 21, 52, 192, 15, 0, 7, 196, 52, 18, 15, 56, 66, 6, 195,
-			21, 48, 67, 15, 11, 200, 12, 21, 1, 77, 68, 143, 24, 80, 66, 0, 8, 197, 76, 19, 148, 20, 224, 65, 7, 196, 49, 85, 5, 60,
-			65, 0, 9, 198, 104, 84, 134, 4, 194, 85, 67, 0, 9, 198, 65, 33, 80, 61, 53, 0, 16, 8, 197, 64, 84, 137, 64, 192, 65, 0,
-			9, 198, 21, 49, 71, 84, 19, 143, 66, 9, 198, 16, 84, 143, 28, 19, 143, 65, 9, 198, 28, 147, 210, 16, 19, 143, 66, 9, 198, 12,
-			147, 210, 48, 19, 143, 66, 11, 200, 76, 19, 9, 76, 49, 78, 16, 144, 16, 14, 203, 69, 80, 84, 80, 244, 132, 36, 49, 83, 36, 208,
-			15, 10, 199, 21, 21, 73, 48, 21, 5, 72, 67, 11, 200, 4, 229, 9, 56, 49, 78, 16, 144, 15, 0, 8, 197, 76, 244, 135, 60, 224,
-			65, 8, 197, 64, 192, 84, 4, 224, 65, 9, 198, 28, 148, 143, 77, 64, 84, 66, 6, 195, 13, 33, 68, 15, 9, 197, 8, 245, 133, 28,
-			224, 65, 15, 0, 9, 198, 4, 48, 213, 52, 243, 9, 66, 0, 14, 68, 44, 21, 9, 4, 49, 6, 35, 12, 47, 37, 35, 0, 7, 196,
-			64, 145, 67, 20, 15, 10, 199, 64, 20, 129, 64, 83, 132, 36, 68, 7, 196, 12, 19, 9, 4, 66, 7, 196, 8, 19, 9, 4, 66, 0,
-			9, 198, 77, 65, 78, 16, 19, 143, 65, 9, 198, 65, 33, 71, 32, 147, 143, 65, 9, 198, 60, 48, 213, 64, 19, 143, 65, 9, 198, 52,
-			244, 212, 72, 147, 143, 65, 9, 198, 13, 80, 201, 56, 19, 143, 66, 11, 200, 25, 83, 210, 36, 193, 71, 28, 80, 16, 10, 199, 4, 229,
-			9, 12, 19, 69, 72, 67, 0, 10, 198, 88, 21, 20, 20, 225, 64, 65, 9, 9, 198, 76, 83, 137, 61, 33, 64, 15, 9, 198, 76, 20,
-			211, 60, 225, 64, 65, 10, 199, 65, 83, 148, 5, 49, 67, 12, 16, 10, 198, 64, 144, 67, 21, 33, 64, 66, 16, 9, 198, 64, 19, 12,
-			5, 33, 64, 65, 9, 198, 52, 20, 141, 61, 33, 64, 65, 9, 198, 52, 17, 206, 21, 65, 64, 15, 9, 198, 33, 80, 72, 36, 225, 64,
-			67, 9, 198, 24, 243, 7, 61, 33, 64, 65, 10, 199, 16, 241, 5, 12, 19, 133, 76, 15, 9, 198, 16, 144, 66, 21, 65, 64, 15, 9,
-			198, 12, 20, 131, 5, 33, 64, 65, 9, 198, 4, 229, 9, 61, 1, 64, 66, 9, 198, 4, 195, 5, 28, 129, 64, 65, 0, 11, 200, 65,
-			35, 211, 20, 117, 79, 56, 240, 66, 22, 72, 64, 22, 137, 20, 229, 1, 56, 240, 48, 35, 123, 37, 6, 36, 50, 47, 35, 50, 39, 0,
-			11, 200, 12, 243, 147, 20, 229, 1, 56, 240, 66, 11, 200, 77, 84, 150, 60, 197, 1, 56, 240, 67, 11, 200, 77, 80, 141, 60, 229, 1,
-			56, 240, 67, 14, 203, 64, 84, 195, 61, 35, 195, 12, 130, 65, 56, 240, 69, 11, 200, 12, 148, 205, 60, 229, 1, 56, 240, 67, 12, 201,
-			64, 21, 5, 72, 227, 211, 80, 84, 128, 67, 21, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 49, 14, 16, 110, 89, 39, 83, 47,
-			0, 12, 201, 53, 83, 20, 37, 3, 5, 96, 84, 128, 15, 9, 198, 52, 243, 132, 60, 193, 128, 15, 9, 198, 48, 19, 132, 60, 193, 128,
-			15, 8, 196, 24, 84, 143, 16, 66, 15, 12, 201, 4, 225, 204, 61, 48, 83, 76, 243, 137, 67, 0, 13, 68, 36, 229, 137, 4, 126, 50,
-			84, 6, 126, 35, 0, 14, 68, 12, 21, 9, 4, 49, 6, 35, 12, 47, 37, 35, 0, 13, 66, 17, 32, 72, 39, 47, 12, 39, 8, 34,
-			0, 24, 6, 195, 81, 35, 214, 15, 7, 196, 76, 83, 3, 20, 16, 9, 198, 16, 144, 80, 5, 51, 206, 65, 7, 196, 8, 17, 9, 4,
-			66, 9, 198, 4, 32, 129, 56, 67, 206, 16, 0, 8, 197, 12, 149, 137, 48, 80, 66, 0, 18, 71, 76, 50, 65, 13, 21, 73, 60, 91,
-			4, 35, 49, 122, 6, 126, 110, 0, 9, 198, 28, 197, 84, 36, 225, 64, 65, 9, 198, 72, 243, 65, 28, 227, 204, 67, 9, 198, 52, 19,
-			132, 36, 35, 204, 66, 0, 10, 67, 52, 17, 5, 65, 6, 118, 72, 0, 8, 67, 25, 33, 69, 21, 0, 47, 6, 195, 76, 81, 5, 15,
-			9, 198, 24, 147, 9, 77, 65, 73, 67, 0, 10, 199, 5, 49, 18, 84, 32, 76, 20, 66, 9, 198, 76, 240, 130, 61, 33, 192, 16, 7,
-			196, 53, 84, 197, 36, 66, 10, 199, 20, 195, 5, 56, 144, 200, 20, 15, 0, 7, 196, 77, 67, 210, 56, 16, 6, 195, 65, 35, 211, 15,
-			0, 7, 196, 88, 243, 20, 60, 16, 9, 198, 48, 21, 20, 61, 50, 64, 15, 8, 197, 12, 243, 15, 56, 224, 16, 0, 8, 197, 4, 198,
-			129, 56, 240, 65, 12, 201, 69, 80, 84, 81, 35, 210, 84, 245, 5, 15, 9, 198, 60, 208, 89, 100, 17, 9, 66, 6, 195, 5, 33, 65,
-			65, 0, 5, 194, 4, 144, 76, 5, 194, 12, 80, 76, 7, 196, 61, 33, 133, 36, 66, 9, 198, 48, 19, 131, 21, 69, 0, 16, 11, 200,
-			36, 228, 197, 81, 66, 67, 36, 64, 68, 9, 198, 13, 35, 195, 21, 69, 0, 16, 9, 198, 8, 240, 195, 21, 69, 0, 16, 0, 9, 198,
-			76, 98, 79, 72, 19, 143, 66, 9, 198, 65, 33, 78, 16, 19, 143, 65, 17, 70, 28, 147, 201, 88, 19, 143, 75, 39, 6, 37, 84, 35,
-			50, 39, 0, 9, 198, 5, 69, 9, 72, 19, 143, 66, 9, 198, 4, 115, 211, 80, 19, 143, 67, 11, 200, 36, 225, 207, 72, 66, 71, 36,
-			16, 67, 11, 199, 24, 245, 15, 12, 243, 15, 72, 67, 47, 11, 200, 61, 37, 15, 16, 244, 211, 36, 16, 68, 11, 200, 25, 32, 78, 12,
-			130, 71, 36, 16, 66, 11, 200, 12, 244, 142, 84, 51, 208, 36, 16, 15, 11, 200, 12, 244, 18, 60, 192, 76, 36, 16, 68, 9, 198, 12,
-			243, 80, 72, 84, 211, 15, 0, 8, 197, 88, 86, 154, 20, 224, 65, 6, 195, 73, 83, 212, 15, 8, 197, 72, 83, 132, 36, 224, 65, 6,
-			195, 69, 83, 212, 15, 6, 195, 61, 35, 208, 15, 8, 197, 12, 243, 15, 72, 224, 16, 0, 10, 67, 104, 243, 205, 128, 40, 12, 65, 0,
-			6, 195, 76, 83, 137, 15, 9, 198, 61, 69, 15, 8, 243, 137, 15, 10, 198, 56, 83, 65, 80, 241, 9, 67, 15, 8, 197, 12, 244, 142,
-			20, 240, 65, 8, 197, 8, 244, 142, 20, 240, 65, 0, 10, 199, 28, 19, 12, 37, 3, 204, 36, 66, 15, 4, 95, 109, 99, 110, 65, 6,
-			35, 49, 14, 16, 39, 50, 0, 13, 202, 81, 32, 78, 76, 48, 85, 12, 20, 201, 4, 68, 10, 199, 64, 83, 148, 5, 3, 204, 36, 66,
-			9, 198, 16, 80, 213, 8, 149, 0, 66, 8, 197, 16, 19, 13, 5, 64, 65, 9, 198, 12, 243, 147, 84, 85, 0, 15, 10, 199, 5, 33,
-			207, 77, 67, 204, 36, 67, 0, 9, 198, 76, 84, 1, 72, 19, 143, 66, 9, 198, 72, 148, 195, 32, 147, 143, 65, 9, 198, 65, 33, 83,
-			76, 147, 143, 65, 9, 198, 64, 244, 15, 48, 19, 143, 65, 9, 198, 36, 225, 1, 28, 19, 143, 66, 9, 198, 36, 212, 1, 72, 19, 143,
-			66, 9, 198, 24, 145, 213, 72, 19, 143, 66, 12, 201, 12, 243, 132, 37, 98, 68, 21, 35, 0, 67, 9, 198, 4, 48, 207, 16, 19, 143,
-			66, 9, 198, 77, 3, 206, 28, 19, 143, 66, 9, 198, 64, 147, 218, 104, 19, 143, 67, 20, 70, 37, 1, 82, 48, 147, 139, 4, 37, 48,
-			36, 34, 15, 55, 6, 37, 50, 49, 0, 7, 196, 88, 243, 69, 72, 65, 7, 196, 76, 19, 65, 72, 65, 12, 201, 60, 67, 206, 80, 245,
-			5, 12, 226, 67, 15, 6, 195, 12, 85, 0, 15, 7, 196, 12, 19, 65, 72, 65, 7, 196, 4, 192, 207, 88, 15, 0, 13, 202, 5, 52,
-			197, 73, 32, 71, 48, 144, 78, 60, 67, 13, 202, 52, 243, 148, 20, 208, 82, 12, 144, 78, 60, 68, 10, 198, 9, 80, 197, 24, 19, 0,
-			66, 15, 9, 198, 5, 85, 15, 29, 37, 64, 68, 0, 9, 198, 72, 80, 213, 64, 84, 128, 66, 9, 198, 52, 17, 199, 36, 244, 128, 66,
-			9, 198, 81, 114, 84, 80, 84, 128, 65, 9, 198, 76, 48, 78, 56, 84, 128, 65, 9, 198, 64, 20, 148, 56, 84, 128, 65, 9, 198, 52,
-			243, 137, 80, 244, 128, 65, 9, 198, 16, 244, 16, 48, 84, 128, 65, 6, 195, 77, 83, 201, 76, 9, 198, 56, 144, 207, 80, 84, 128, 66,
-			9, 198, 52, 17, 199, 36, 244, 128, 16, 9, 198, 52, 16, 207, 52, 84, 128, 67, 9, 198, 41, 80, 90, 20, 148, 128, 65, 9, 198, 12,
-			243, 137, 24, 84, 128, 66, 9, 198, 12, 20, 9, 56, 84, 128, 16, 0, 10, 69, 77, 68, 133, 21, 64, 21, 0, 47, 12, 201, 65, 35,
-			208, 20, 65, 85, 80, 144, 192, 67, 10, 199, 52, 83, 16, 60, 209, 78, 20, 66, 11, 199, 52, 19, 3, 21, 50, 78, 20, 66, 16, 12,
-			201, 20, 194, 79, 12, 83, 148, 72, 144, 192, 15, 0, 8, 196, 20, 193, 193, 72, 65, 46, 8, 196, 21, 36, 143, 72, 65, 47, 10, 199,
-			76, 84, 150, 60, 100, 133, 56, 16, 9, 198, 64, 83, 1, 88, 84, 135, 16, 7, 196, 12, 83, 148, 72, 15, 11, 200, 8, 192, 84, 80,
-			242, 68, 20, 144, 68, 11, 200, 5, 53, 5, 72, 242, 68, 20, 144, 69, 7, 196, 4, 225, 207, 72, 65, 0, 8, 197, 21, 48, 71, 21,
-			32, 66, 15, 69, 28, 86, 83, 21, 32, 81, 6, 117, 88, 109, 14, 16, 0, 8, 197, 12, 243, 132, 61, 32, 65, 8, 197, 81, 85, 20,
-			61, 32, 16, 9, 198, 65, 35, 208, 4, 227, 204, 67, 8, 197, 48, 19, 135, 85, 32, 66, 9, 197, 24, 244, 198, 61, 32, 65, 15, 9,
-			197, 24, 244, 134, 61, 32, 65, 16, 9, 198, 16, 245, 129, 16, 243, 0, 66, 8, 197, 12, 243, 132, 61, 32, 15, 8, 197, 12, 19, 134,
-			61, 32, 65, 10, 199, 4, 229, 9, 4, 84, 133, 60, 67, 0, 12, 201, 64, 197, 82, 36, 243, 73, 12, 145, 0, 69, 9, 198, 88, 84,
-			148, 20, 36, 128, 65, 7, 196, 52, 244, 143, 48, 66, 9, 198, 12, 20, 193, 56, 245, 128, 15, 7, 196, 8, 20, 143, 48, 66, 9, 198,
-			5, 3, 208, 81, 145, 205, 66, 0, 8, 197, 76, 48, 80, 60, 192, 65, 10, 198, 65, 35, 212, 21, 84, 192, 65, 15, 7, 196, 52, 81,
-			204, 36, 15, 8, 197, 12, 244, 16, 60, 192, 15, 7, 196, 12, 243, 5, 36, 66, 0, 11, 200, 5, 34, 83, 80, 241, 129, 56, 80, 67,
-			12, 200, 4, 112, 77, 20, 227, 143, 56, 80, 67, 15, 0, 8, 197, 76, 50, 5, 72, 224, 16, 0, 9, 198, 76, 241, 199, 36, 16, 197,
-			66, 18, 70, 16, 148, 208, 36, 16, 197, 72, 37, 89, 48, 37, 6, 35, 76, 36, 0, 9, 198, 80, 19, 69, 72, 144, 197, 67, 7, 196,
-			20, 208, 143, 48, 15, 9, 198, 12, 243, 80, 48, 144, 197, 15, 0, 8, 197, 104, 244, 16, 60, 192, 15, 8, 197, 56, 84, 208, 60, 192,
-			15, 8, 197, 40, 244, 16, 60, 192, 15, 14, 68, 12, 243, 21, 36, 49, 39, 55, 6, 40, 12, 37, 0, 0, 10, 199, 64, 84, 134, 61,
-			35, 69, 72, 66, 8, 196, 80, 83, 69, 56, 65, 15, 6, 195, 29, 33, 67, 15, 10, 199, 12, 244, 15, 48, 147, 69, 72, 67, 0, 7,
-			196, 37, 96, 78, 60, 66, 20, 71, 9, 37, 88, 20, 195, 5, 76, 71, 14, 16, 40, 49, 89, 6, 109, 55, 12, 0, 9, 196, 5, 97,
-			86, 60, 78, 15, 32, 12, 201, 81, 34, 78, 37, 64, 80, 60, 194, 64, 67, 8, 197, 72, 149, 15, 72, 224, 16, 6, 195, 65, 33, 68,
-			15, 14, 203, 36, 51, 211, 36, 67, 196, 20, 48, 69, 17, 32, 15, 8, 197, 12, 20, 144, 36, 224, 65, 6, 195, 9, 33, 68, 15, 9,
-			198, 4, 84, 143, 77, 64, 84, 66, 0, 6, 195, 80, 16, 137, 66, 6, 195, 20, 35, 0, 15, 0, 14, 68, 76, 241, 137, 4, 89, 39,
-			83, 6, 37, 35, 0, 41, 14, 68, 4, 84, 133, 4, 35, 6, 109, 12, 51, 36, 35, 0, 6, 195, 88, 243, 22, 15, 8, 196, 76, 241,
-			137, 4, 65, 15, 6, 195, 76, 83, 22, 16, 7, 196, 61, 52, 143, 20, 65, 6, 195, 52, 243, 22, 15, 8, 196, 52, 84, 201, 4, 65,
-			15, 8, 196, 12, 241, 201, 4, 65, 15, 0, 9, 198, 21, 52, 15, 76, 149, 15, 66, 10, 199, 64, 244, 148, 4, 192, 133, 72, 66, 10,
-			199, 52, 243, 143, 4, 192, 133, 72, 67, 6, 195, 52, 240, 64, 15, 10, 199, 52, 19, 143, 16, 244, 5, 72, 67, 0, 10, 198, 48, 81,
-			199, 21, 33, 64, 65, 15, 9, 198, 5, 100, 133, 77, 65, 64, 76, 9, 198, 4, 32, 137, 5, 65, 64, 76, 9, 198, 76, 20, 133, 77,
-			65, 64, 76, 10, 198, 17, 84, 129, 57, 65, 64, 76, 28, 9, 198, 88, 19, 12, 21, 97, 64, 15, 9, 198, 84, 224, 78, 36, 209, 64,
-			66, 9, 198, 81, 32, 77, 37, 65, 64, 65, 9, 198, 76, 244, 135, 21, 33, 64, 16, 9, 198, 52, 84, 211, 21, 33, 64, 66, 9, 198,
-			12, 144, 204, 61, 1, 64, 15, 9, 198, 8, 84, 135, 21, 33, 64, 66, 9, 198, 5, 3, 195, 61, 1, 64, 66, 0, 11, 200, 72, 148,
-			18, 20, 225, 1, 56, 240, 66, 11, 200, 65, 33, 83, 20, 229, 9, 56, 240, 66, 11, 200, 65, 33, 83, 20, 229, 1, 56, 240, 66, 11,
-			200, 64, 84, 147, 37, 53, 1, 56, 240, 66, 11, 200, 36, 224, 207, 57, 68, 129, 56, 240, 66, 11, 200, 88, 19, 4, 61, 53, 1, 56,
-			240, 67, 11, 200, 12, 245, 133, 72, 50, 65, 56, 240, 67, 11, 200, 16, 80, 201, 52, 243, 143, 56, 240, 68, 11, 200, 12, 243, 80, 5,
-			68, 143, 56, 240, 67, 9, 198, 52, 243, 148, 60, 113, 201, 15, 7, 196, 52, 85, 15, 16, 15, 12, 201, 36, 229, 15, 56, 20, 149, 52,
-			244, 137, 16, 9, 198, 24, 149, 15, 24, 17, 201, 66, 7, 196, 17, 33, 83, 16, 15, 0, 7, 196, 76, 243, 137, 4, 65, 13, 68, 64,
-			21, 137, 4, 48, 35, 84, 6, 37, 35, 0, 13, 68, 61, 101, 137, 4, 6, 39, 84, 12, 37, 35, 0, 11, 68, 52, 245, 83, 20, 65,
-			35, 40, 89, 0, 7, 196, 96, 83, 137, 4, 67, 6, 195, 65, 35, 214, 15, 6, 195, 65, 35, 214, 15, 7, 196, 64, 147, 131, 20, 66,
-			7, 196, 64, 84, 195, 20, 16, 7, 196, 61, 53, 9, 4, 65, 13, 68, 61, 33, 201, 4, 6, 110, 14, 16, 75, 35, 0, 7, 196, 48,
-			145, 86, 20, 15, 9, 198, 16, 84, 196, 20, 211, 206, 15, 7, 196, 4, 33, 9, 4, 66, 0, 14, 67, 100, 245, 64, 21, 0, 47, 81,
-			116, 117, 98, 101, 32, 6, 195, 21, 33, 0, 16, 0, 17, 70, 4, 113, 78, 104, 145, 64, 35, 75, 36, 50, 123, 6, 37, 36, 0, 9,
-			198, 72, 19, 69, 77, 49, 64, 15, 9, 198, 5, 37, 5, 72, 147, 204, 67, 0, 6, 195, 5, 33, 69, 65, 6, 195, 48, 241, 5, 15,
-			9, 198, 8, 84, 135, 20, 113, 201, 16, 9, 198, 5, 3, 195, 72, 145, 128, 66, 0, 19, 71, 8, 244, 206, 36, 16, 200, 20, 71, 39,
-			88, 50, 6, 37, 35, 49, 36, 0, 7, 65, 132, 6, 109, 0, 77, 10, 199, 21, 21, 73, 88, 240, 200, 20, 66, 9, 198, 5, 50, 78,
-			13, 35, 206, 66, 0, 10, 199, 77, 81, 4, 36, 16, 207, 56, 66, 11, 200, 64, 245, 1, 52, 241, 193, 48, 80, 67, 6, 195, 64, 145,
-			64, 15, 11, 200, 5, 34, 83, 80, 245, 5, 48, 80, 67, 0, 12, 201, 4, 113, 201, 84, 225, 197, 72, 192, 64, 66, 7, 196, 80, 19,
-			148, 60, 76, 20, 71, 12, 20, 129, 36, 34, 67, 60, 49, 35, 51, 35, 6, 37, 71, 37, 49, 39, 0, 0, 7, 196, 40, 84, 207, 48,
-			15, 0, 5, 194, 24, 16, 76, 6, 194, 16, 80, 76, 46, 5, 194, 20, 48, 15, 0, 22, 72, 41, 81, 207, 76, 192, 86, 36, 16, 57,
-			40, 81, 39, 88, 55, 6, 35, 84, 37, 35, 0, 11, 67, 32, 18, 64, 6, 35, 57, 0, 76, 32, 6, 195, 56, 82, 64, 76, 11, 200,
-			80, 20, 129, 57, 64, 83, 36, 16, 67, 11, 200, 48, 84, 212, 72, 145, 207, 56, 144, 66, 11, 200, 16, 148, 12, 60, 208, 90, 36, 16,
-			68, 11, 200, 12, 244, 205, 60, 115, 206, 36, 16, 68, 0, 6, 195, 89, 83, 212, 15, 9, 198, 72, 85, 15, 72, 34, 68, 16, 6, 195,
-			57, 83, 212, 15, 0, 7, 195, 16, 83, 0, 76, 46, 9, 198, 28, 19, 132, 60, 193, 137, 15, 0, 15, 69, 45, 85, 193, 37, 64, 49,
-			122, 6, 109, 12, 37, 74, 0, 13, 202, 36, 212, 18, 20, 225, 9, 80, 244, 137, 4, 69, 8, 197, 72, 148, 207, 49, 64, 15, 13, 202,
-			53, 84, 201, 12, 245, 5, 72, 20, 9, 4, 70, 8, 197, 28, 130, 79, 81, 64, 16, 8, 197, 17, 32, 71, 85, 64, 66, 13, 202, 16,
-			17, 200, 21, 36, 143, 80, 148, 9, 4, 69, 8, 197, 13, 84, 195, 85, 64, 65, 13, 202, 12, 129, 77, 36, 245, 5, 72, 20, 9, 4,
-			70, 0, 18, 67, 16, 18, 64, 72, 6, 35, 37, 15, 49, 36, 0, 81, 99, 104, 101, 32, 12, 67, 16, 18, 64, 72, 6, 35, 12, 37,
-			0, 49, 6, 195, 16, 18, 64, 76, 10, 199, 77, 68, 129, 64, 147, 205, 8, 16, 0, 8, 197, 88, 84, 195, 61, 96, 65, 13, 201, 88,
-			19, 12, 20, 52, 143, 76, 144, 64, 67, 15, 6, 195, 81, 35, 212, 15, 8, 197, 81, 34, 69, 17, 32, 15, 12, 201, 80, 16, 200, 36,
-			48, 82, 16, 144, 64, 68, 8, 197, 69, 80, 76, 61, 32, 16, 9, 197, 64, 84, 137, 21, 32, 65, 16, 12, 201, 56, 80, 210, 60, 208,
-			78, 104, 144, 64, 68, 8, 197, 52, 244, 195, 61, 96, 15, 12, 201, 52, 148, 193, 57, 68, 143, 64, 144, 64, 68, 8, 197, 52, 20, 195,
-			5, 32, 65, 9, 197, 44, 84, 139, 101, 32, 65, 16, 12, 201, 36, 68, 143, 80, 84, 129, 64, 144, 64, 69, 12, 201, 28, 195, 211, 76,
-			243, 1, 48, 144, 64, 68, 10, 199, 24, 197, 77, 20, 225, 15, 76, 15, 12, 201, 24, 149, 15, 80, 84, 129, 64, 144, 64, 69, 8, 197,
-			20, 194, 83, 37, 32, 67, 12, 201, 16, 148, 208, 5, 33, 85, 56, 144, 64, 69, 8, 197, 16, 147, 69, 81, 32, 65, 8, 197, 12, 244,
-			211, 61, 96, 65, 12, 201, 12, 193, 80, 80, 243, 65, 56, 144, 64, 68, 12, 201, 12, 148, 195, 5, 80, 193, 76, 144, 64, 68, 12, 201,
-			12, 130, 82, 60, 208, 78, 104, 144, 64, 68, 10, 199, 12, 83, 148, 72, 145, 149, 28, 66, 12, 201, 9, 32, 68, 36, 48, 82, 16, 144,
-			64, 68, 12, 201, 5, 37, 5, 80, 84, 129, 64, 144, 64, 69, 12, 201, 4, 226, 83, 61, 68, 143, 64, 144, 64, 69, 0, 11, 200, 65,
-			35, 212, 20, 113, 193, 56, 240, 66, 11, 200, 21, 49, 82, 12, 149, 9, 56, 240, 66, 11, 200, 21, 49, 82, 12, 149, 1, 56, 240, 66,
-			11, 200, 12, 243, 85, 56, 144, 193, 56, 240, 66, 11, 200, 12, 21, 1, 48, 241, 193, 56, 240, 66, 11, 200, 4, 97, 146, 60, 229, 9,
-			56, 240, 66, 11, 200, 52, 243, 148, 21, 48, 193, 56, 240, 67, 11, 200, 52, 19, 205, 21, 69, 1, 56, 240, 68, 15, 204, 76, 240, 201,
-			4, 193, 5, 52, 240, 210, 5, 162, 65, 70, 12, 201, 76, 50, 9, 88, 83, 143, 28, 194, 65, 15, 12, 201, 69, 80, 76, 76, 149, 143,
-			28, 194, 65, 15, 11, 200, 4, 192, 137, 28, 224, 83, 20, 112, 67, 0, 8, 197, 77, 84, 195, 37, 64, 65, 13, 202, 81, 32, 71, 36,
-			51, 205, 52, 81, 9, 4, 15, 11, 199, 64, 84, 147, 20, 99, 206, 20, 66, 15, 6, 195, 21, 33, 66, 65, 8, 197, 21, 2, 82, 61,
-			64, 15, 8, 197, 16, 148, 133, 81, 64, 15, 9, 198, 12, 243, 131, 72, 85, 0, 15, 8, 197, 5, 162, 77, 85, 64, 65, 8, 197, 4,
-			48, 197, 81, 64, 16, 0, 0, 8, 197, 48, 81, 199, 21, 32, 65, 8, 197, 76, 128, 75, 21, 32, 65, 8, 197, 40, 240, 203, 21, 32,
-			65, 9, 197, 20, 66, 84, 61, 32, 65, 47, 8, 197, 9, 83, 139, 21, 32, 65, 9, 197, 52, 243, 15, 81, 32, 65, 15, 9, 198, 21,
-			84, 143, 64, 243, 0, 68, 9, 197, 8, 244, 198, 61, 32, 65, 15, 8, 197, 4, 197, 1, 37, 32, 66, 0, 12, 201, 12, 20, 212, 20,
-			192, 201, 88, 149, 0, 67, 0, 7, 196, 104, 85, 71, 52, 65, 9, 198, 64, 83, 148, 4, 115, 206, 66, 0, 6, 195, 84, 243, 64, 15,
-			6, 195, 65, 33, 71, 15, 11, 200, 28, 192, 85, 12, 241, 129, 56, 80, 67, 7, 195, 21, 53, 0, 16, 46, 0, 6, 195, 85, 48, 76,
-			65, 9, 198, 16, 144, 129, 81, 66, 84, 66, 10, 198, 13, 35, 199, 36, 243, 0, 65, 15, 9, 198, 12, 243, 135, 20, 226, 84, 66, 0,
-			11, 200, 24, 244, 141, 36, 51, 204, 36, 240, 68, 0, 11, 68, 88, 242, 76, 108, 21, 102, 114, 0, 47, 6, 194, 4, 192, 76, 46, 6,
-			194, 20, 64, 76, 28, 6, 195, 52, 83, 142, 16, 7, 196, 29, 85, 5, 36, 66, 0, 13, 201, 8, 20, 130, 4, 34, 69, 80, 243, 0,
-			67, 15, 0, 10, 199, 76, 51, 208, 64, 144, 78, 60, 65, 10, 199, 76, 48, 77, 8, 144, 78, 60, 65, 10, 199, 36, 229, 137, 16, 144,
-			78, 60, 66, 10, 199, 5, 101, 129, 48, 112, 78, 60, 66, 10, 199, 5, 52, 193, 48, 112, 78, 60, 66, 10, 199, 5, 4, 15, 28, 114,
-			78, 60, 66, 10, 199, 4, 97, 133, 72, 208, 78, 60, 66, 10, 199, 52, 244, 195, 32, 144, 78, 60, 67, 10, 199, 52, 20, 147, 12, 144,
-			78, 60, 66, 9, 198, 64, 244, 201, 48, 194, 80, 66, 8, 196, 48, 19, 132, 60, 66, 15, 12, 201, 12, 243, 80, 72, 21, 133, 56, 66,
-			84, 67, 0, 7, 195, 61, 101, 137, 65, 15, 9, 198, 16, 148, 208, 20, 225, 9, 15, 6, 195, 4, 65, 9, 66, 0, 14, 68, 104, 18,
-			82, 4, 128, 35, 6, 37, 12, 51, 35, 0, 9, 198, 81, 34, 85, 53, 98, 82, 66, 7, 196, 80, 83, 80, 20, 15, 6, 195, 57, 83,
-			214, 15, 7, 196, 4, 195, 208, 20, 65, 0, 8, 197, 76, 21, 21, 72, 80, 65, 8, 197, 72, 83, 79, 72, 80, 65, 8, 197, 81, 32,
-			66, 20, 16, 65, 9, 197, 80, 83, 133, 72, 16, 65, 15, 9, 197, 76, 19, 15, 52, 80, 67, 15, 8, 197, 72, 240, 195, 36, 16, 15,
-			9, 197, 48, 84, 15, 72, 80, 65, 15, 16, 69, 29, 80, 73, 56, 16, 81, 58, 35, 6, 37, 12, 50, 35, 0, 9, 197, 24, 83, 79,
-			72, 80, 65, 15, 8, 197, 24, 80, 195, 36, 16, 15, 8, 197, 24, 80, 130, 72, 80, 15, 8, 197, 16, 80, 143, 48, 80, 65, 8, 197,
-			12, 244, 195, 36, 16, 15, 8, 197, 12, 240, 195, 36, 16, 15, 8, 197, 12, 19, 129, 64, 80, 65, 8, 197, 8, 240, 195, 36, 16, 15,
-			9, 197, 4, 193, 83, 36, 16, 66, 15, 8, 197, 4, 148, 143, 48, 80, 15, 8, 197, 4, 32, 129, 100, 80, 67, 0, 10, 198, 72, 240,
-			149, 72, 83, 148, 67, 15, 10, 199, 57, 84, 129, 52, 147, 137, 76, 66, 7, 196, 56, 83, 73, 12, 66, 0, 11, 200, 77, 84, 211, 20,
-			117, 65, 56, 240, 66, 11, 200, 52, 20, 212, 85, 32, 129, 56, 240, 66, 11, 200, 36, 224, 193, 77, 68, 129, 56, 240, 66, 11, 200, 16,
-			148, 212, 85, 32, 129, 56, 240, 66, 11, 200, 12, 243, 148, 20, 225, 193, 56, 240, 66, 11, 200, 12, 243, 147, 20, 117, 65, 56, 240, 66,
-			11, 200, 12, 243, 131, 49, 81, 1, 56, 240, 66, 11, 200, 5, 4, 18, 21, 166, 137, 56, 240, 66, 11, 200, 4, 113, 201, 61, 35, 137,
-			56, 240, 66, 11, 200, 4, 52, 85, 37, 53, 1, 56, 240, 66, 11, 200, 64, 145, 82, 4, 225, 197, 48, 240, 66, 8, 197, 65, 35, 198,
-			84, 112, 65, 0, 9, 68, 76, 182, 80, 20, 21, 0, 47, 7, 196, 77, 83, 12, 20, 76, 7, 196, 16, 19, 12, 20, 76, 7, 196, 76,
-			244, 18, 4, 65, 11, 200, 80, 244, 131, 32, 144, 82, 60, 192, 67, 7, 196, 61, 98, 76, 20, 66, 5, 194, 21, 64, 15, 0, 9, 198,
-			28, 148, 143, 48, 19, 79, 66, 8, 197, 28, 83, 143, 88, 16, 65, 8, 197, 21, 3, 195, 32, 80, 65, 8, 197, 76, 20, 133, 80, 80,
-			78, 9, 197, 81, 35, 193, 16, 80, 65, 15, 8, 197, 81, 32, 66, 36, 16, 66, 15, 69, 80, 82, 83, 80, 16, 47, 109, 6, 37, 89,
-			47, 35, 0, 8, 197, 56, 243, 131, 32, 80, 66, 11, 200, 28, 147, 143, 28, 83, 133, 76, 144, 67, 8, 197, 16, 83, 79, 56, 80, 15,
-			8, 197, 12, 19, 137, 48, 80, 66, 8, 197, 8, 244, 206, 36, 16, 15, 8, 197, 5, 32, 193, 16, 80, 65, 8, 197, 4, 195, 15, 72,
-			16, 16, 0, 12, 201, 77, 97, 71, 48, 144, 84, 61, 50, 64, 66, 12, 201, 77, 64, 66, 36, 194, 84, 61, 50, 64, 67, 12, 201, 65,
-			50, 67, 60, 50, 78, 21, 50, 64, 15, 12, 201, 64, 19, 9, 56, 113, 78, 21, 50, 64, 67, 7, 196, 61, 37, 9, 12, 66, 12, 201,
-			52, 20, 148, 37, 35, 204, 60, 114, 64, 15, 12, 201, 4, 225, 201, 60, 113, 78, 21, 50, 64, 67, 0, 13, 67, 5, 50, 65, 7, 35,
-			12, 88, 37, 2, 35, 0, 8, 197, 64, 83, 70, 36, 112, 15, 6, 195, 52, 18, 5, 66, 9, 198, 24, 147, 15, 76, 241, 128, 66, 0,
-			10, 199, 37, 4, 15, 13, 32, 84, 20, 66, 27, 74, 24, 20, 141, 4, 49, 85, 80, 144, 200, 20, 83, 35, 14, 16, 65, 35, 76, 6,
-			36, 58, 47, 37, 49, 36, 0, 10, 199, 76, 16, 197, 72, 67, 212, 20, 15, 9, 198, 65, 35, 212, 21, 69, 0, 15, 7, 196, 65, 33,
-			86, 36, 15, 6, 195, 25, 33, 78, 16, 10, 199, 24, 147, 15, 81, 65, 84, 20, 15, 9, 198, 16, 148, 208, 21, 69, 0, 15, 10, 199,
-			12, 130, 82, 61, 3, 212, 20, 15, 10, 199, 12, 83, 148, 85, 34, 80, 20, 66, 0, 11, 200, 76, 245, 20, 61, 3, 211, 80, 80, 67,
-			8, 197, 72, 20, 1, 12, 144, 66, 6, 195, 77, 3, 211, 15, 11, 200, 72, 81, 133, 72, 83, 132, 84, 208, 15, 11, 200, 61, 4, 18,
-			36, 209, 78, 80, 80, 15, 7, 196, 52, 241, 193, 56, 65, 7, 196, 12, 241, 129, 56, 65, 7, 196, 5, 33, 193, 56, 65, 8, 197, 4,
-			194, 83, 20, 144, 67, 0, 7, 196, 76, 144, 77, 60, 76, 6, 195, 76, 85, 76, 66, 8, 196, 44, 20, 15, 44, 66, 15, 0, 8, 197,
-			16, 144, 193, 56, 240, 65, 9, 198, 104, 243, 198, 36, 194, 65, 68, 10, 198, 88, 19, 19, 21, 50, 65, 66, 15, 9, 198, 81, 32, 71,
-			20, 66, 65, 15, 8, 197, 65, 35, 206, 4, 240, 15, 10, 198, 52, 17, 206, 21, 50, 65, 66, 15, 9, 198, 16, 148, 212, 60, 226, 65,
-			67, 8, 197, 12, 20, 129, 12, 240, 67, 9, 198, 5, 49, 137, 77, 50, 65, 67, 0, 6, 194, 12, 144, 76, 46, 6, 195, 28, 243, 142,
-			16, 0, 8, 197, 25, 81, 193, 12, 144, 66, 11, 70, 92, 148, 133, 48, 84, 211, 21, 0, 47, 8, 197, 5, 97, 83, 76, 144, 76, 9,
-			197, 80, 83, 133, 72, 144, 65, 15, 9, 198, 76, 244, 16, 72, 84, 211, 15, 8, 197, 76, 83, 73, 16, 144, 67, 6, 195, 72, 244, 211,
-			16, 6, 195, 72, 244, 211, 16, 7, 196, 65, 33, 90, 104, 15, 8, 197, 16, 241, 9, 12, 144, 16, 8, 197, 12, 83, 143, 8, 144, 15,
-			8, 197, 8, 19, 129, 72, 144, 65, 0, 9, 198, 76, 145, 68, 37, 66, 64, 65, 10, 199, 61, 69, 5, 56, 112, 78, 60, 66, 10, 199,
-			24, 83, 9, 12, 144, 78, 60, 67, 9, 198, 80, 83, 132, 36, 226, 64, 65, 6, 195, 77, 67, 208, 15, 9, 198, 76, 148, 148, 61, 34,
-			64, 65, 9, 198, 76, 147, 5, 57, 162, 64, 15, 6, 195, 52, 244, 212, 16, 9, 198, 24, 244, 195, 5, 34, 64, 65, 11, 198, 12, 243,
-			12, 60, 66, 64, 66, 15, 46, 9, 198, 12, 19, 69, 17, 34, 64, 15, 9, 198, 8, 84, 130, 21, 34, 64, 65, 0, 8, 197, 72, 245,
-			137, 28, 240, 66, 8, 197, 73, 83, 12, 36, 240, 66, 15, 68, 76, 85, 21, 64, 89, 4, 36, 47, 15, 6, 35, 48, 0, 8, 197, 25,
-			84, 143, 56, 240, 73, 12, 201, 76, 50, 9, 104, 241, 146, 20, 226, 65, 68, 9, 198, 20, 227, 129, 28, 243, 128, 66, 9, 198, 16, 80,
-			193, 64, 243, 9, 66, 0, 10, 199, 84, 48, 201, 16, 84, 148, 36, 66, 8, 197, 13, 34, 67, 21, 64, 15, 9, 198, 4, 48, 207, 48,
-			149, 0, 66, 0, 0, 8, 197, 104, 147, 135, 5, 32, 65, 6, 195, 88, 84, 208, 15, 9, 197, 80, 244, 148, 61, 32, 65, 16, 6, 195,
-			65, 35, 212, 15, 9, 198, 64, 147, 133, 72, 243, 0, 67, 9, 198, 64, 20, 129, 8, 243, 0, 66, 8, 197, 52, 20, 148, 61, 32, 65,
-			8, 197, 12, 20, 211, 5, 32, 65, 8, 197, 5, 32, 137, 81, 32, 65, 0, 11, 200, 81, 32, 78, 76, 149, 1, 56, 240, 65, 11, 200,
-			76, 244, 146, 20, 113, 193, 56, 240, 66, 11, 200, 72, 145, 213, 5, 33, 1, 56, 240, 66, 14, 203, 72, 145, 9, 52, 83, 147, 36, 243,
-			129, 56, 240, 69, 11, 200, 72, 144, 200, 36, 81, 1, 56, 240, 66, 11, 200, 72, 144, 193, 72, 144, 193, 56, 240, 66, 11, 200, 65, 35,
-			214, 88, 81, 1, 56, 240, 66, 11, 200, 64, 244, 211, 20, 113, 193, 56, 240, 66, 22, 72, 36, 229, 133, 37, 48, 193, 56, 240, 37, 50,
-			84, 36, 6, 37, 89, 49, 35, 50, 39, 0, 11, 200, 36, 228, 212, 5, 84, 129, 56, 240, 66, 11, 200, 36, 228, 85, 4, 68, 129, 56,
-			240, 66, 11, 200, 16, 84, 15, 76, 149, 1, 56, 240, 66, 11, 200, 4, 194, 77, 20, 229, 1, 56, 240, 67, 6, 195, 20, 32, 137, 77,
-			6, 195, 20, 115, 9, 76, 7, 196, 61, 97, 83, 80, 15, 9, 198, 61, 69, 15, 80, 148, 0, 66, 8, 197, 36, 194, 5, 85, 48, 16,
-			8, 197, 16, 145, 83, 37, 48, 15, 0, 10, 199, 65, 34, 77, 5, 97, 82, 20, 67, 8, 197, 72, 145, 197, 81, 64, 15, 9, 198, 64,
-			243, 9, 77, 65, 78, 66, 8, 197, 60, 113, 197, 81, 64, 15, 8, 197, 52, 19, 77, 85, 64, 66, 8, 197, 16, 145, 133, 81, 64, 15,
-			10, 199, 12, 20, 193, 48, 35, 210, 20, 66, 10, 199, 4, 65, 77, 64, 145, 82, 20, 66, 0, 14, 68, 84, 225, 5, 72, 6, 35, 50,
-			72, 36, 14, 16, 0, 7, 196, 48, 245, 133, 72, 65, 7, 196, 20, 229, 5, 72, 65, 7, 196, 4, 101, 5, 72, 65, 7, 196, 64, 145,
-			68, 72, 15, 7, 196, 44, 81, 137, 72, 15, 8, 196, 16, 80, 143, 72, 65, 15, 7, 196, 12, 147, 137, 72, 65, 11, 200, 8, 20, 137,
-			80, 243, 133, 76, 144, 15, 0, 12, 201, 36, 229, 129, 28, 130, 84, 61, 50, 64, 67, 8, 197, 72, 240, 203, 21, 32, 65, 17, 69, 72,
-			19, 135, 21, 32, 14, 16, 6, 36, 50, 75, 36, 14, 16, 0, 8, 197, 52, 20, 139, 21, 32, 65, 8, 197, 40, 17, 213, 5, 32, 65,
-			14, 69, 32, 16, 203, 21, 32, 6, 35, 49, 36, 14, 16, 0, 8, 197, 28, 147, 135, 21, 32, 65, 8, 197, 12, 240, 203, 21, 32, 65,
-			6, 195, 88, 243, 12, 16, 12, 201, 80, 84, 141, 60, 113, 78, 21, 50, 64, 67, 10, 199, 77, 84, 5, 72, 99, 21, 60, 66, 12, 201,
-			61, 53, 5, 60, 113, 78, 21, 50, 64, 68, 12, 201, 52, 85, 1, 52, 244, 134, 61, 50, 64, 67, 8, 197, 52, 20, 141, 5, 32, 65,
-			12, 201, 20, 193, 84, 81, 35, 204, 37, 50, 64, 67, 9, 198, 13, 34, 83, 76, 243, 0, 66, 0, 10, 199, 52, 20, 148, 36, 226, 84,
-			80, 67, 7, 196, 13, 84, 15, 48, 65, 0, 6, 195, 5, 97, 78, 16, 0, 10, 199, 16, 148, 195, 72, 147, 73, 56, 66, 8, 197, 84,
-			97, 137, 12, 144, 66, 11, 200, 52, 243, 148, 20, 193, 80, 72, 80, 15, 7, 196, 28, 146, 143, 56, 66, 8, 197, 12, 19, 66, 72, 144,
-			66, 8, 197, 12, 19, 4, 20, 144, 66, 0, 9, 198, 64, 244, 148, 4, 210, 64, 65, 9, 198, 12, 84, 131, 5, 50, 64, 65, 7, 196,
-			52, 85, 5, 60, 65, 9, 198, 76, 19, 147, 13, 34, 84, 65, 9, 198, 72, 147, 129, 76, 50, 84, 66, 9, 198, 21, 52, 12, 36, 50,
-			84, 66, 7, 196, 4, 197, 133, 60, 65, 0, 8, 197, 88, 243, 1, 56, 240, 65, 10, 199, 21, 48, 204, 84, 65, 82, 48, 66, 8, 197,
-			5, 81, 213, 72, 240, 65, 9, 198, 88, 240, 193, 8, 243, 9, 66, 15, 69, 21, 52, 5, 4, 176, 37, 89, 48, 6, 37, 49, 12, 0,
-			9, 198, 4, 225, 137, 64, 243, 9, 66, 0, 6, 195, 80, 243, 142, 16, 7, 196, 20, 194, 77, 36, 65, 0, 8, 197, 76, 243, 65, 48,
-			144, 65, 8, 197, 76, 100, 133, 28, 144, 15, 11, 200, 64, 244, 212, 21, 34, 79, 72, 144, 16, 9, 198, 64, 84, 134, 84, 112, 83, 65,
-			8, 197, 57, 83, 69, 72, 144, 65, 11, 200, 52, 147, 12, 20, 98, 79, 72, 144, 16, 12, 200, 16, 147, 143, 12, 81, 129, 48, 144, 67,
-			15, 11, 200, 9, 32, 67, 32, 144, 197, 72, 144, 66, 0, 12, 201, 52, 17, 18, 21, 0, 84, 72, 144, 64, 67, 9, 198, 13, 34, 77,
-			36, 226, 64, 65, 6, 195, 56, 80, 128, 15, 6, 195, 28, 243, 137, 15, 6, 195, 24, 80, 128, 15, 7, 196, 12, 19, 1, 60, 66, 9,
-			198, 8, 148, 197, 57, 162, 64, 15, 0, 9, 198, 88, 83, 148, 20, 227, 137, 15, 8, 197, 77, 65, 82, 20, 240, 65, 12, 201, 48, 84,
-			15, 77, 3, 206, 16, 147, 9, 15, 9, 198, 12, 243, 150, 60, 115, 9, 15, 0, 8, 197, 72, 84, 21, 80, 16, 65, 8, 197, 61, 52,
-			9, 80, 16, 65, 8, 197, 5, 32, 143, 72, 80, 65, 13, 69, 21, 21, 73, 64, 80, 109, 49, 6, 37, 48, 0, 8, 197, 52, 83, 148,
-			72, 80, 76, 8, 197, 104, 244, 16, 36, 16, 66, 8, 197, 72, 85, 15, 72, 80, 65, 8, 197, 64, 84, 147, 36, 16, 65, 8, 197, 52,
-			241, 204, 36, 80, 15, 8, 197, 52, 84, 211, 36, 16, 66, 8, 197, 48, 241, 199, 36, 16, 15, 8, 197, 24, 243, 12, 36, 16, 66, 8,
-			197, 24, 241, 199, 36, 16, 15, 8, 197, 21, 21, 73, 64, 80, 65, 8, 197, 12, 246, 79, 80, 80, 15, 8, 197, 12, 244, 16, 36, 16,
-			15, 8, 197, 12, 130, 69, 76, 80, 15, 9, 197, 8, 84, 212, 36, 80, 65, 16, 8, 197, 5, 64, 76, 36, 16, 67, 8, 197, 5, 32,
-			143, 72, 80, 67, 0, 7, 196, 4, 229, 9, 12, 66, 0, 8, 197, 12, 243, 150, 60, 48, 65, 6, 195, 73, 80, 64, 66, 6, 195, 56,
-			85, 77, 65, 6, 195, 29, 35, 205, 16, 8, 197, 17, 81, 207, 56, 112, 15, 0, 7, 196, 28, 83, 196, 20, 15, 6, 195, 25, 35, 196,
-			15, 13, 201, 16, 144, 207, 80, 147, 5, 16, 243, 137, 68, 15, 7, 196, 12, 243, 132, 20, 66, 0, 8, 197, 5, 33, 201, 56, 16, 65,
-			8, 197, 80, 83, 210, 36, 80, 67, 8, 197, 77, 64, 84, 84, 16, 65, 14, 73, 76, 50, 15, 64, 83, 136, 5, 81, 82, 21, 0, 47,
-			8, 197, 69, 81, 76, 48, 16, 76, 8, 197, 88, 147, 137, 48, 80, 66, 8, 197, 88, 83, 148, 72, 80, 15, 8, 197, 77, 97, 86, 36,
-			16, 15, 8, 197, 77, 1, 67, 36, 80, 15, 8, 197, 76, 147, 143, 64, 80, 15, 8, 197, 76, 83, 137, 48, 80, 66, 8, 197, 69, 82,
-			69, 80, 80, 15, 8, 197, 61, 53, 9, 48, 80, 66, 8, 197, 52, 84, 143, 64, 80, 65, 9, 197, 52, 83, 79, 72, 80, 65, 15, 8,
-			197, 48, 147, 79, 56, 80, 15, 9, 197, 48, 83, 85, 72, 80, 65, 15, 9, 197, 44, 20, 129, 80, 80, 67, 15, 8, 197, 21, 67, 201,
-			48, 80, 65, 8, 197, 12, 20, 137, 80, 80, 67, 8, 197, 8, 242, 5, 52, 80, 15, 8, 197, 8, 144, 137, 80, 80, 65, 8, 197, 5,
-			160, 82, 36, 16, 67, 8, 197, 5, 96, 82, 36, 16, 67, 8, 197, 4, 229, 5, 72, 16, 66, 0, 7, 196, 72, 85, 143, 12, 65, 9,
-			198, 24, 147, 15, 77, 49, 78, 66, 5, 194, 21, 96, 15, 6, 195, 20, 32, 146, 15, 0, 11, 67, 77, 2, 69, 89, 48, 6, 37, 36,
-			0, 11, 67, 69, 82, 65, 49, 58, 6, 37, 35, 0, 9, 198, 52, 144, 210, 61, 67, 205, 66, 8, 197, 24, 244, 141, 36, 48, 66, 9,
-			198, 12, 20, 135, 20, 114, 5, 15, 11, 67, 9, 82, 65, 71, 6, 40, 37, 35, 0, 0, 10, 199, 72, 145, 213, 72, 114, 84, 4, 66,
-			10, 199, 64, 20, 148, 20, 50, 80, 4, 66, 10, 199, 56, 80, 197, 77, 50, 84, 4, 66, 6, 195, 33, 67, 76, 13, 10, 199, 76, 147,
-			66, 36, 243, 148, 20, 16, 7, 196, 72, 145, 83, 36, 15, 11, 199, 64, 20, 148, 20, 227, 208, 20, 66, 15, 11, 199, 64, 20, 148, 20,
-			50, 80, 20, 66, 16, 6, 195, 12, 243, 12, 16, 6, 195, 12, 243, 12, 16, 10, 199, 5, 32, 201, 65, 33, 84, 20, 15, 0, 8, 197,
-			72, 17, 9, 12, 144, 66, 8, 197, 104, 19, 143, 8, 144, 15, 8, 197, 88, 243, 19, 12, 144, 15, 8, 197, 64, 84, 211, 36, 208, 15,
-			11, 200, 36, 229, 5, 73, 4, 133, 80, 80, 66, 9, 197, 20, 225, 129, 76, 144, 65, 15, 8, 197, 8, 145, 78, 56, 144, 15, 8, 197,
-			4, 229, 15, 56, 144, 15, 8, 197, 4, 224, 84, 20, 208, 15, 0, 9, 198, 76, 53, 83, 4, 210, 64, 65, 9, 198, 64, 84, 140, 60,
-			209, 78, 16, 10, 199, 52, 20, 143, 8, 241, 21, 60, 15, 9, 198, 52, 19, 132, 61, 35, 0, 65, 9, 198, 52, 17, 206, 21, 50, 64,
-			15, 9, 198, 12, 20, 147, 60, 194, 64, 66, 6, 195, 9, 33, 78, 16, 9, 198, 4, 224, 76, 37, 50, 64, 66, 9, 198, 4, 211, 210,
-			61, 50, 64, 16, 0, 8, 197, 64, 17, 193, 56, 240, 65, 8, 197, 56, 81, 193, 56, 240, 65, 8, 197, 48, 81, 193, 56, 240, 65, 8,
-			197, 61, 69, 1, 56, 240, 66, 8, 197, 24, 16, 197, 88, 240, 78, 8, 197, 20, 32, 133, 72, 240, 77, 18, 70, 81, 85, 20, 5, 98,
-			65, 47, 40, 47, 12, 35, 84, 6, 37, 35, 0, 6, 195, 5, 97, 192, 13, 9, 198, 81, 84, 135, 61, 98, 65, 15, 9, 198, 80, 147,
-			148, 61, 34, 65, 67, 9, 198, 80, 84, 148, 20, 226, 65, 67, 9, 198, 80, 83, 211, 60, 98, 65, 68, 7, 196, 76, 147, 85, 56, 66,
-			8, 196, 76, 81, 1, 56, 65, 15, 9, 198, 76, 21, 18, 5, 2, 65, 67, 9, 198, 76, 19, 79, 28, 114, 65, 15, 6, 195, 61, 162,
-			65, 66, 9, 198, 52, 244, 195, 61, 98, 65, 15, 9, 198, 52, 243, 146, 61, 98, 65, 15, 9, 198, 52, 84, 211, 20, 226, 65, 15, 9,
-			198, 52, 17, 83, 81, 34, 65, 67, 9, 198, 48, 244, 133, 28, 114, 65, 15, 9, 198, 37, 51, 212, 61, 2, 65, 68, 9, 198, 36, 228,
-			207, 56, 226, 65, 15, 9, 198, 36, 98, 71, 20, 226, 65, 68, 9, 198, 28, 20, 132, 20, 226, 65, 15, 9, 198, 24, 84, 146, 61, 98,
-			65, 67, 20, 70, 24, 20, 141, 4, 50, 65, 83, 35, 14, 16, 65, 35, 76, 6, 37, 12, 35, 0, 9, 198, 21, 131, 198, 61, 34, 65,
-			68, 9, 198, 20, 66, 84, 61, 34, 65, 68, 9, 198, 16, 240, 146, 84, 114, 65, 66, 9, 198, 16, 144, 82, 12, 130, 65, 67, 9, 198,
-			12, 244, 211, 21, 34, 65, 66, 10, 198, 12, 19, 66, 60, 114, 65, 66, 15, 11, 67, 9, 81, 64, 71, 6, 40, 12, 36, 0, 0, 10,
-			199, 104, 145, 207, 81, 65, 82, 36, 15, 7, 196, 8, 86, 154, 36, 15, 0, 9, 198, 12, 130, 65, 52, 19, 143, 65, 8, 197, 77, 80,
-			140, 36, 208, 66, 11, 200, 24, 144, 77, 52, 145, 133, 72, 144, 66, 6, 195, 76, 84, 211, 15, 9, 198, 61, 37, 15, 81, 66, 67, 15,
-			9, 198, 20, 193, 84, 81, 34, 67, 15, 11, 200, 12, 20, 15, 48, 149, 133, 72, 144, 67, 9, 198, 5, 85, 5, 57, 66, 67, 15, 9,
-			198, 5, 85, 5, 57, 66, 67, 15, 8, 197, 5, 37, 5, 52, 144, 15, 8, 197, 4, 192, 193, 48, 144, 65, 0, 11, 68, 12, 129, 67,
-			44, 76, 109, 49, 12, 0, 9, 198, 5, 100, 133, 77, 66, 64, 76, 8, 66, 32, 16, 35, 0, 76, 32, 6, 194, 16, 144, 76, 46, 9,
-			198, 88, 145, 9, 29, 32, 70, 66, 10, 198, 80, 83, 5, 29, 32, 70, 66, 15, 9, 198, 77, 1, 84, 81, 34, 64, 15, 6, 195, 76,
-			243, 142, 16, 10, 198, 76, 83, 142, 61, 34, 64, 65, 15, 9, 198, 52, 243, 132, 61, 98, 64, 67, 10, 198, 36, 229, 143, 49, 80, 210,
-			66, 15, 5, 194, 20, 112, 15, 6, 195, 12, 243, 142, 16, 9, 198, 12, 20, 131, 21, 34, 64, 65, 0, 8, 197, 88, 17, 1, 56, 240,
-			65, 8, 197, 13, 33, 65, 56, 240, 65, 8, 197, 13, 80, 129, 56, 240, 66, 8, 197, 5, 36, 137, 28, 240, 66, 19, 70, 65, 35, 198,
-			21, 162, 69, 48, 14, 16, 39, 83, 36, 123, 6, 37, 36, 0, 18, 70, 20, 51, 206, 60, 210, 69, 36, 49, 39, 50, 39, 65, 6, 37,
-			36, 0, 9, 198, 4, 227, 205, 4, 194, 69, 68, 8, 197, 24, 80, 197, 72, 240, 65, 6, 195, 25, 82, 64, 76, 6, 195, 80, 243, 137,
-			15, 6, 195, 28, 83, 137, 15, 6, 195, 21, 33, 77, 65, 0, 9, 198, 12, 243, 80, 48, 85, 0, 15, 7, 196, 12, 19, 148, 84, 66,
-			0, 6, 195, 24, 85, 0, 15, 6, 195, 5, 65, 79, 65, 6, 195, 4, 245, 0, 15, 0, 7, 196, 65, 33, 83, 76, 15, 0, 9, 198,
-			12, 144, 83, 13, 83, 133, 66, 7, 196, 88, 81, 15, 88, 65, 7, 196, 81, 34, 79, 72, 16, 12, 201, 76, 245, 20, 60, 147, 147, 36,
-			83, 69, 15, 9, 198, 60, 224, 207, 28, 83, 133, 67, 0, 17, 70, 16, 148, 199, 84, 145, 0, 72, 37, 88, 81, 122, 6, 37, 72, 0,
-			10, 199, 76, 49, 71, 48, 145, 82, 20, 65, 6, 195, 72, 244, 208, 15, 10, 199, 52, 19, 5, 77, 49, 82, 20, 15, 10, 199, 12, 20,
-			193, 80, 244, 146, 20, 16, 10, 199, 8, 83, 133, 77, 49, 82, 20, 15, 0, 6, 195, 76, 243, 143, 77, 11, 200, 36, 51, 206, 61, 53,
-			1, 76, 144, 67, 0, 5, 194, 25, 80, 76, 9, 198, 104, 17, 193, 72, 243, 0, 67, 9, 198, 60, 211, 137, 80, 83, 0, 67, 9, 198,
-			12, 147, 206, 16, 243, 0, 16, 0, 7, 196, 88, 148, 5, 72, 65, 6, 195, 88, 83, 128, 16, 7, 196, 76, 148, 193, 72, 65, 7, 196,
-			56, 17, 9, 72, 66, 12, 201, 52, 243, 148, 21, 97, 82, 28, 147, 133, 16, 7, 196, 52, 148, 197, 72, 65, 7, 196, 48, 21, 5, 72,
-			65, 7, 196, 37, 81, 197, 72, 65, 7, 196, 12, 84, 193, 72, 65, 0, 12, 67, 89, 83, 204, 84, 40, 6, 39, 55, 0, 76, 7, 196,
-			77, 67, 194, 36, 15, 9, 198, 65, 35, 208, 61, 53, 0, 16, 12, 201, 16, 17, 200, 21, 36, 143, 80, 148, 0, 67, 9, 198, 12, 243,
-			80, 61, 53, 0, 16, 9, 198, 12, 243, 80, 61, 53, 0, 16, 6, 195, 8, 243, 12, 16, 0, 8, 197, 24, 83, 9, 12, 144, 66, 11,
-			200, 16, 148, 208, 36, 16, 197, 72, 80, 67, 10, 199, 88, 19, 4, 37, 51, 212, 80, 16, 8, 197, 80, 17, 4, 20, 144, 66, 12, 200,
-			77, 68, 129, 64, 245, 5, 72, 80, 67, 16, 8, 197, 76, 144, 129, 72, 144, 65, 9, 197, 76, 83, 143, 56, 144, 65, 15, 8, 197, 76,
-			51, 210, 12, 144, 16, 11, 200, 64, 192, 83, 52, 241, 5, 76, 208, 15, 8, 197, 52, 244, 137, 56, 144, 65, 8, 197, 52, 81, 9, 84,
-			208, 15, 10, 199, 36, 212, 5, 72, 97, 84, 80, 15, 8, 197, 8, 19, 19, 4, 208, 65, 0, 12, 201, 76, 19, 80, 36, 84, 132, 5,
-			33, 78, 16, 9, 198, 61, 52, 197, 69, 82, 64, 15, 9, 198, 21, 49, 71, 21, 50, 64, 15, 9, 198, 16, 144, 76, 37, 50, 64, 66,
-			6, 195, 5, 33, 78, 16, 9, 198, 4, 210, 76, 61, 50, 64, 15, 9, 198, 4, 208, 146, 61, 50, 64, 15, 0, 8, 197, 72, 80, 193,
-			56, 240, 65, 8, 197, 16, 245, 9, 56, 240, 65, 8, 197, 16, 245, 1, 56, 240, 65, 8, 197, 8, 20, 193, 56, 240, 65, 9, 197, 88,
-			145, 193, 56, 240, 67, 15, 7, 196, 80, 245, 1, 56, 65, 7, 196, 76, 21, 1, 56, 65, 7, 196, 72, 84, 201, 56, 65, 6, 195, 72,
-			83, 128, 16, 9, 197, 65, 35, 212, 20, 240, 65, 15, 6, 195, 52, 243, 128, 15, 0, 10, 199, 60, 193, 129, 81, 67, 210, 36, 67, 10,
-			199, 60, 226, 67, 60, 99, 210, 36, 67, 10, 199, 52, 243, 132, 4, 67, 210, 36, 16, 0, 9, 198, 77, 84, 5, 72, 19, 143, 65, 9,
-			198, 72, 148, 1, 28, 19, 143, 66, 9, 198, 37, 52, 9, 72, 147, 143, 66, 9, 198, 29, 80, 82, 16, 19, 143, 65, 9, 198, 16, 83,
-			143, 80, 19, 143, 66, 8, 197, 5, 4, 137, 80, 144, 65, 9, 198, 88, 148, 195, 36, 19, 143, 66, 9, 198, 81, 35, 206, 80, 19, 143,
-			66, 9, 198, 72, 244, 195, 36, 19, 143, 66, 9, 198, 24, 148, 195, 36, 19, 143, 66, 9, 198, 12, 144, 195, 36, 19, 143, 66, 9, 198,
-			8, 20, 195, 36, 19, 143, 66, 8, 197, 61, 52, 9, 80, 144, 65, 9, 198, 37, 1, 82, 80, 243, 143, 67, 8, 197, 5, 65, 78, 20,
-			144, 67, 8, 197, 88, 149, 133, 72, 144, 65, 8, 197, 76, 81, 9, 12, 144, 16, 11, 200, 72, 244, 1, 48, 240, 197, 72, 144, 67, 11,
-			200, 64, 193, 67, 61, 69, 5, 72, 144, 15, 8, 197, 64, 83, 15, 76, 144, 16, 11, 200, 56, 85, 82, 61, 69, 5, 72, 144, 15, 8,
-			197, 52, 147, 143, 72, 144, 16, 8, 197, 48, 144, 133, 72, 144, 65, 8, 197, 21, 81, 133, 52, 144, 15, 8, 197, 5, 48, 197, 76, 144,
-			15, 11, 200, 4, 226, 83, 61, 69, 5, 72, 144, 15, 8, 197, 4, 225, 197, 48, 144, 65, 0, 9, 198, 104, 19, 154, 36, 32, 82, 65,
-			12, 201, 12, 20, 130, 60, 226, 70, 21, 34, 64, 67, 11, 66, 16, 160, 72, 37, 15, 75, 6, 118, 0, 12, 201, 80, 148, 193, 56, 245,
-			20, 21, 34, 64, 15, 10, 199, 76, 245, 20, 60, 35, 211, 12, 15, 9, 198, 76, 20, 211, 60, 226, 64, 65, 9, 198, 76, 20, 141, 5,
-			66, 64, 65, 9, 198, 72, 147, 131, 61, 66, 64, 15, 12, 201, 48, 84, 9, 16, 245, 20, 21, 34, 64, 15, 9, 198, 28, 84, 212, 85,
-			34, 64, 65, 9, 198, 20, 224, 207, 49, 2, 64, 15, 5, 194, 20, 128, 16, 9, 198, 8, 243, 142, 4, 224, 82, 66, 9, 198, 8, 21,
-			20, 21, 34, 64, 66, 9, 198, 8, 17, 206, 60, 194, 64, 66, 0, 8, 197, 88, 81, 1, 56, 240, 65, 8, 197, 8, 17, 1, 56, 240,
-			65, 8, 197, 64, 84, 193, 72, 240, 65, 6, 195, 60, 52, 128, 13, 6, 195, 88, 84, 128, 16, 6, 195, 88, 84, 128, 16, 9, 198, 65,
-			35, 211, 12, 83, 137, 15, 6, 195, 61, 36, 192, 16, 6, 195, 61, 36, 192, 16, 6, 195, 56, 84, 128, 16, 7, 196, 4, 195, 69, 56,
-			16, 0, 10, 199, 37, 48, 210, 37, 98, 84, 36, 66, 10, 199, 80, 84, 129, 64, 85, 84, 36, 67, 6, 195, 21, 51, 196, 15, 0, 7,
-			196, 84, 48, 201, 16, 66, 9, 198, 81, 85, 5, 48, 19, 143, 66, 9, 198, 76, 147, 85, 48, 19, 143, 65, 9, 198, 36, 229, 137, 80,
-			19, 143, 66, 9, 198, 28, 83, 73, 80, 19, 143, 65, 9, 198, 16, 84, 137, 88, 147, 143, 66, 7, 196, 16, 80, 201, 16, 66, 12, 201,
-			5, 4, 18, 60, 98, 84, 80, 147, 143, 67, 12, 71, 20, 194, 90, 4, 33, 84, 32, 21, 0, 47, 0, 13, 202, 64, 84, 195, 60, 192,
-			78, 12, 144, 78, 60, 68, 6, 195, 29, 81, 82, 16, 0, 6, 195, 76, 244, 201, 15, 0, 6, 195, 13, 35, 196, 15, 6, 195, 9, 35,
-			196, 15, 0, 14, 69, 76, 50, 65, 72, 80, 91, 37, 6, 35, 51, 36, 0, 11, 200, 21, 52, 18, 36, 209, 82, 76, 144, 66, 7, 196,
-			16, 149, 137, 16, 66, 7, 196, 72, 84, 197, 16, 15, 8, 197, 52, 243, 129, 16, 80, 65, 10, 199, 28, 19, 66, 4, 51, 210, 80, 16,
-			8, 197, 20, 195, 1, 16, 80, 65, 0, 6, 195, 37, 65, 82, 65, 11, 200, 52, 243, 148, 21, 161, 77, 60, 192, 15, 0, 12, 201, 36,
-			212, 5, 73, 65, 82, 72, 149, 1, 67, 6, 195, 20, 195, 1, 76, 6, 195, 64, 83, 129, 16, 6, 195, 52, 243, 5, 15, 10, 199, 52,
-			81, 193, 12, 243, 15, 56, 15, 6, 195, 52, 19, 5, 15, 0, 13, 68, 20, 230, 137, 52, 36, 50, 128, 6, 37, 65, 0, 16, 70, 100,
-			241, 200, 61, 84, 148, 6, 57, 39, 81, 40, 34, 47, 0, 7, 196, 64, 193, 83, 36, 15, 9, 198, 28, 20, 196, 61, 69, 0, 16, 7,
-			196, 21, 81, 5, 52, 15, 0, 15, 69, 61, 1, 82, 4, 144, 39, 48, 109, 51, 6, 35, 37, 0, 9, 198, 52, 20, 141, 61, 33, 79,
-			66, 8, 197, 24, 19, 5, 12, 144, 15, 14, 203, 20, 193, 84, 81, 35, 205, 4, 115, 133, 80, 80, 15, 7, 196, 9, 81, 129, 48, 65,
-			10, 198, 8, 243, 148, 20, 35, 203, 65, 15, 0, 14, 68, 76, 144, 78, 60, 89, 6, 37, 35, 50, 39, 0, 76, 9, 198, 88, 144, 146,
-			4, 99, 206, 66, 9, 198, 52, 20, 129, 80, 131, 206, 67, 13, 68, 12, 144, 78, 60, 76, 6, 37, 35, 50, 39, 0, 9, 198, 4, 224,
-			66, 5, 50, 64, 66, 0, 18, 70, 28, 194, 67, 20, 210, 65, 81, 55, 37, 76, 36, 65, 6, 37, 35, 0, 6, 195, 4, 195, 5, 76,
-			6, 195, 32, 149, 128, 13, 6, 195, 84, 245, 128, 15, 6, 195, 72, 83, 133, 16, 10, 198, 56, 244, 150, 20, 114, 65, 66, 15, 6, 195,
-			56, 243, 133, 15, 6, 195, 24, 19, 133, 66, 6, 195, 21, 35, 197, 15, 7, 195, 16, 83, 133, 66, 15, 9, 198, 12, 83, 143, 52, 19,
-			137, 66, 6, 195, 12, 83, 133, 16, 9, 198, 5, 36, 143, 76, 50, 65, 15, 9, 198, 5, 3, 195, 72, 149, 9, 66, 9, 198, 4, 225,
-			207, 76, 50, 65, 15, 9, 198, 4, 208, 90, 104, 243, 137, 66, 0, 7, 196, 65, 33, 71, 36, 15, 10, 199, 12, 243, 73, 56, 99, 210,
-			52, 67, 10, 199, 12, 20, 1, 56, 227, 210, 36, 66, 0, 17, 70, 76, 50, 65, 88, 19, 143, 91, 37, 6, 35, 84, 35, 50, 39, 0,
-			9, 198, 21, 48, 76, 80, 147, 143, 66, 11, 200, 76, 48, 78, 16, 147, 129, 88, 144, 66, 9, 198, 76, 20, 131, 60, 96, 71, 66, 8,
-			197, 72, 147, 69, 16, 144, 15, 11, 200, 64, 19, 142, 60, 48, 200, 36, 16, 15, 11, 200, 52, 244, 19, 84, 84, 212, 36, 16, 66, 23,
-			72, 52, 20, 195, 4, 197, 67, 36, 16, 65, 35, 89, 49, 35, 55, 40, 76, 6, 37, 12, 35, 0, 11, 200, 52, 19, 1, 88, 241, 204,
-			36, 16, 15, 8, 197, 24, 19, 69, 16, 144, 15, 11, 200, 16, 145, 1, 76, 48, 76, 36, 16, 68, 0, 12, 201, 76, 83, 5, 104, 147,
-			206, 4, 194, 64, 68, 5, 194, 28, 80, 15, 8, 197, 24, 244, 16, 60, 192, 15, 6, 66, 20, 144, 118, 0, 12, 201, 12, 20, 212, 20,
-			196, 197, 65, 34, 64, 15, 0, 12, 201, 20, 193, 84, 81, 35, 196, 61, 69, 0, 16, 6, 195, 8, 243, 0, 15, 0, 9, 198, 49, 80,
-			201, 4, 227, 192, 66, 11, 200, 88, 19, 2, 72, 85, 133, 56, 224, 16, 10, 199, 77, 2, 78, 21, 67, 204, 36, 66, 6, 195, 64, 84,
-			212, 16, 9, 198, 52, 243, 143, 64, 244, 212, 16, 9, 198, 48, 20, 9, 16, 83, 192, 66, 6, 195, 13, 33, 84, 15, 0, 9, 198, 88,
-			241, 204, 36, 19, 143, 65, 9, 198, 77, 69, 68, 36, 19, 143, 65, 9, 198, 76, 83, 66, 72, 147, 143, 65, 9, 198, 76, 48, 77, 8,
-			147, 143, 65, 9, 198, 76, 21, 21, 72, 19, 143, 65, 9, 198, 52, 84, 137, 80, 147, 143, 65, 9, 198, 52, 19, 131, 32, 147, 143, 65,
-			9, 198, 36, 224, 201, 16, 19, 143, 65, 9, 198, 36, 211, 65, 28, 147, 128, 66, 18, 70, 29, 80, 73, 88, 19, 143, 81, 58, 35, 6,
-			37, 84, 35, 50, 39, 0, 9, 198, 21, 50, 83, 80, 19, 143, 66, 9, 198, 20, 193, 71, 28, 19, 143, 66, 9, 198, 4, 195, 5, 56,
-			147, 143, 66, 9, 198, 72, 144, 195, 36, 19, 143, 66, 9, 198, 64, 144, 195, 36, 19, 143, 66, 9, 198, 56, 240, 195, 36, 19, 143, 66,
-			6, 195, 28, 85, 0, 15, 0, 6, 195, 65, 35, 194, 15, 7, 196, 48, 84, 143, 76, 16, 9, 198, 4, 195, 15, 16, 243, 0, 66, 0,
-			9, 198, 72, 149, 133, 16, 84, 133, 67, 12, 201, 64, 145, 84, 72, 20, 5, 73, 162, 65, 68, 14, 202, 56, 16, 149, 12, 241, 15, 56,
-			244, 207, 72, 68, 15, 12, 201, 52, 84, 137, 80, 240, 210, 5, 162, 65, 69, 9, 198, 13, 34, 83, 4, 244, 133, 66, 12, 201, 5, 34,
-			83, 80, 240, 210, 5, 162, 65, 69, 10, 199, 5, 34, 83, 80, 17, 207, 72, 67, 0, 10, 198, 48, 147, 65, 77, 51, 204, 67, 16, 0,
-			10, 198, 64, 81, 199, 36, 244, 128, 66, 15, 11, 70, 12, 193, 65, 56, 84, 128, 21, 0, 47, 7, 196, 64, 148, 143, 64, 15, 10, 198,
-			37, 51, 208, 80, 84, 128, 66, 15, 11, 67, 9, 82, 79, 71, 6, 40, 37, 39, 0, 9, 198, 4, 229, 9, 12, 148, 0, 66, 0, 15,
-			70, 12, 128, 78, 56, 83, 0, 76, 6, 35, 50, 36, 55, 0, 11, 200, 64, 244, 148, 36, 48, 201, 60, 192, 67, 0, 9, 198, 52, 20,
-			195, 32, 84, 129, 65, 7, 196, 4, 192, 207, 72, 66, 8, 197, 4, 35, 205, 5, 48, 66, 0, 7, 196, 76, 83, 3, 36, 16, 13, 202,
-			52, 20, 147, 36, 51, 214, 21, 65, 82, 20, 15, 6, 195, 37, 51, 204, 65, 9, 198, 8, 243, 129, 77, 51, 204, 67, 7, 196, 8, 193,
-			86, 36, 15, 0, 8, 197, 72, 81, 21, 12, 144, 65, 6, 195, 88, 243, 7, 15, 10, 199, 65, 33, 68, 36, 193, 84, 80, 15, 7, 196,
-			52, 19, 149, 48, 66, 6, 195, 49, 83, 199, 15, 7, 196, 8, 20, 137, 48, 66, 0, 9, 198, 76, 147, 148, 21, 50, 64, 65, 9, 198,
-			72, 81, 199, 37, 49, 78, 16, 9, 198, 37, 3, 198, 37, 50, 64, 66, 9, 198, 5, 3, 198, 37, 50, 64, 66, 0, 9, 198, 72, 243,
-			80, 21, 37, 9, 65, 18, 70, 16, 21, 1, 8, 20, 197, 72, 35, 47, 35, 71, 6, 109, 37, 88, 0, 8, 197, 4, 53, 76, 20, 240,
-			66, 0, 17, 70, 61, 1, 82, 4, 147, 192, 39, 48, 36, 51, 6, 35, 57, 39, 0, 11, 199, 52, 144, 210, 60, 99, 206, 36, 66, 16,
-			10, 199, 81, 33, 78, 80, 83, 142, 36, 15, 7, 196, 80, 19, 1, 52, 65, 9, 198, 77, 68, 133, 57, 83, 192, 15, 7, 196, 76, 19,
-			1, 52, 66, 7, 196, 28, 243, 5, 52, 15, 13, 202, 20, 193, 84, 81, 35, 198, 61, 33, 83, 36, 15, 0, 6, 195, 21, 35, 199, 65,
-			8, 197, 5, 69, 9, 52, 144, 65, 8, 197, 16, 148, 206, 21, 144, 65, 6, 195, 104, 83, 135, 15, 6, 195, 48, 243, 135, 15, 9, 198,
-			48, 148, 85, 36, 112, 83, 67, 6, 195, 17, 35, 199, 15, 8, 197, 16, 243, 143, 72, 144, 67, 7, 196, 12, 19, 129, 48, 66, 8, 197,
-			8, 19, 1, 4, 208, 65, 0, 9, 198, 76, 20, 133, 77, 66, 64, 78, 9, 198, 105, 80, 195, 5, 34, 64, 65, 10, 199, 88, 84, 154,
-			20, 115, 137, 76, 15, 11, 200, 65, 35, 212, 61, 53, 5, 48, 192, 16, 7, 196, 21, 84, 133, 44, 65, 9, 198, 9, 80, 195, 5, 34,
-			64, 65, 9, 198, 4, 192, 193, 57, 64, 82, 66, 0, 6, 195, 72, 224, 64, 13, 8, 197, 88, 149, 18, 20, 240, 65, 0, 7, 196, 76,
-			84, 137, 20, 65, 6, 195, 80, 243, 4, 15, 6, 195, 76, 243, 4, 15, 7, 196, 61, 53, 9, 20, 65, 7, 196, 28, 244, 135, 4, 16,
-			18, 70, 25, 37, 83, 12, 147, 192, 83, 14, 16, 40, 91, 6, 37, 12, 39, 0, 7, 196, 12, 19, 143, 4, 15, 7, 196, 8, 240, 195,
-			4, 16, 0, 9, 198, 77, 64, 77, 8, 80, 195, 16, 7, 196, 76, 50, 5, 16, 15, 9, 198, 28, 243, 1, 76, 80, 195, 16, 0, 6,
-			195, 64, 21, 82, 66, 0, 11, 200, 72, 81, 201, 77, 68, 129, 56, 240, 66, 11, 200, 72, 19, 12, 20, 229, 9, 56, 240, 66, 11, 200,
-			72, 19, 12, 20, 229, 1, 56, 240, 66, 11, 200, 36, 195, 21, 77, 68, 129, 56, 240, 66, 11, 200, 12, 243, 150, 21, 36, 193, 56, 240,
-			66, 9, 198, 65, 34, 78, 12, 148, 5, 65, 18, 8, 95, 98, 114, 97, 105, 108, 108, 101, 71, 14, 16, 6, 117, 55, 55, 0, 6, 195,
-			60, 192, 64, 66, 9, 198, 12, 19, 12, 36, 244, 5, 66, 0, 6, 195, 64, 83, 132, 16, 7, 196, 12, 244, 147, 4, 16, 6, 195, 8,
-			243, 132, 15, 7, 196, 8, 241, 213, 20, 66, 0, 0, 7, 195, 61, 1, 82, 65, 16, 7, 195, 21, 65, 82, 65, 16, 6, 195, 37, 1,
-			82, 65, 6, 195, 24, 81, 18, 15, 0, 11, 67, 40, 243, 5, 57, 6, 110, 55, 36, 0, 6, 195, 4, 195, 1, 76, 11, 3, 226, 130,
-			172, 6, 36, 40, 51, 39, 0, 10, 199, 81, 34, 65, 80, 131, 15, 56, 65, 10, 199, 65, 35, 211, 21, 36, 9, 56, 66, 6, 195, 60,
-			65, 64, 15, 6, 195, 48, 83, 129, 16, 6, 195, 40, 243, 5, 15, 6, 195, 28, 147, 5, 66, 6, 195, 16, 243, 129, 66, 10, 199, 12,
-			130, 76, 36, 17, 207, 56, 67, 0, 7, 196, 76, 17, 193, 52, 65, 11, 200, 64, 21, 76, 36, 192, 84, 36, 224, 68, 10, 199, 25, 33,
-			67, 12, 85, 20, 20, 16, 0, 11, 200, 88, 83, 148, 37, 49, 84, 80, 80, 15, 11, 200, 65, 32, 83, 76, 149, 5, 48, 80, 66, 6,
-			195, 56, 245, 83, 66, 7, 196, 4, 225, 197, 48, 65, 0, 7, 196, 85, 48, 78, 60, 65, 12, 201, 72, 147, 131, 61, 36, 133, 72, 192,
-			64, 66, 0, 7, 195, 104, 19, 133, 66, 15, 6, 195, 60, 193, 64, 66, 6, 195, 36, 243, 133, 15, 6, 195, 20, 195, 5, 16, 6, 195,
-			8, 81, 192, 15, 0, 9, 198, 64, 241, 206, 4, 227, 192, 66, 7, 196, 64, 81, 199, 36, 15, 0, 11, 67, 56, 85, 211, 50, 37, 6,
-			40, 89, 0, 11, 200, 77, 84, 18, 20, 208, 90, 36, 16, 68, 11, 200, 77, 2, 65, 56, 21, 15, 36, 16, 16, 11, 200, 72, 17, 9,
-			12, 241, 129, 56, 144, 67, 11, 200, 61, 38, 137, 88, 80, 195, 32, 144, 15, 11, 200, 56, 147, 134, 60, 208, 78, 36, 16, 68, 11, 200,
-			52, 83, 1, 56, 51, 206, 36, 16, 68, 6, 195, 29, 33, 83, 15, 11, 200, 12, 21, 129, 48, 48, 86, 36, 16, 68, 0, 10, 199, 20,
-			48, 197, 57, 68, 137, 12, 15, 6, 195, 5, 50, 78, 65, 0, 11, 67, 8, 16, 153, 71, 6, 109, 71, 126, 0, 7, 195, 12, 243, 0,
-			76, 46, 11, 3, 226, 130, 164, 55, 126, 14, 16, 35, 0, 7, 196, 64, 193, 90, 104, 15, 6, 195, 60, 66, 64, 15, 6, 195, 12, 194,
-			64, 65, 0, 9, 198, 77, 65, 83, 21, 35, 192, 65, 9, 198, 28, 241, 18, 4, 227, 192, 66, 6, 195, 64, 244, 212, 16, 0, 11, 70,
-			40, 16, 203, 76, 243, 128, 21, 0, 47, 9, 198, 29, 32, 78, 16, 147, 128, 65, 15, 4, 95, 111, 103, 111, 39, 81, 6, 39, 12, 50,
-			36, 49, 0, 9, 198, 64, 243, 9, 28, 243, 128, 66, 9, 198, 61, 69, 1, 28, 243, 128, 66, 9, 198, 52, 19, 1, 64, 83, 128, 16,
-			9, 198, 52, 16, 195, 32, 147, 128, 65, 7, 196, 28, 148, 5, 80, 15, 7, 196, 24, 81, 193, 80, 65, 6, 195, 12, 245, 0, 15, 6,
-			195, 12, 245, 0, 15, 7, 196, 12, 244, 5, 80, 15, 7, 196, 5, 48, 197, 80, 15, 9, 198, 5, 4, 137, 12, 83, 128, 16, 0, 12,
-			68, 40, 80, 78, 76, 75, 37, 12, 50, 89, 0, 12, 201, 96, 83, 143, 28, 195, 211, 76, 144, 64, 68, 6, 195, 80, 243, 6, 15, 12,
-			201, 80, 84, 141, 60, 51, 208, 64, 144, 64, 15, 12, 201, 76, 84, 211, 84, 241, 143, 8, 144, 64, 68, 12, 201, 76, 51, 210, 12, 144,
-			84, 60, 144, 64, 16, 13, 202, 64, 145, 90, 60, 83, 5, 81, 68, 137, 12, 15, 10, 198, 20, 224, 197, 24, 19, 0, 66, 15, 12, 201,
-			12, 20, 16, 20, 195, 1, 56, 144, 64, 68, 12, 201, 5, 163, 207, 77, 1, 82, 52, 144, 64, 69, 12, 201, 5, 84, 212, 72, 19, 1,
-			76, 144, 64, 68, 12, 201, 4, 229, 15, 56, 243, 65, 76, 144, 64, 68, 12, 201, 4, 229, 9, 52, 21, 5, 72, 144, 64, 68, 0, 11,
-			200, 36, 224, 193, 72, 144, 193, 56, 240, 66, 11, 200, 16, 149, 129, 72, 144, 193, 56, 240, 66, 11, 200, 4, 195, 1, 72, 114, 9, 56,
-			240, 66, 10, 67, 28, 194, 64, 61, 37, 0, 46, 76, 9, 198, 88, 84, 148, 20, 36, 133, 65, 9, 198, 56, 245, 133, 52, 36, 133, 15,
-			6, 195, 52, 242, 192, 15, 9, 198, 52, 19, 137, 12, 243, 73, 15, 8, 197, 44, 18, 82, 61, 48, 66, 9, 198, 16, 144, 197, 52, 36,
-			133, 15, 9, 198, 12, 243, 15, 76, 147, 73, 66, 8, 197, 12, 21, 67, 5, 48, 65, 0, 6, 195, 80, 85, 84, 65, 10, 199, 21, 85,
-			9, 25, 35, 206, 20, 67, 10, 199, 17, 32, 71, 4, 210, 78, 20, 67, 6, 195, 13, 33, 80, 15, 10, 199, 12, 243, 12, 4, 113, 78,
-			20, 66, 10, 199, 12, 192, 90, 60, 209, 78, 20, 66, 0, 7, 196, 16, 81, 9, 80, 65, 7, 196, 12, 149, 137, 80, 65, 0, 6, 195,
-			65, 35, 198, 24, 11, 200, 12, 83, 133, 72, 83, 148, 60, 192, 15, 0, 12, 201, 88, 84, 137, 24, 144, 193, 80, 148, 201, 68, 12, 201,
-			65, 50, 67, 60, 19, 129, 48, 148, 201, 68, 0, 7, 196, 64, 84, 137, 52, 66, 7, 196, 20, 195, 199, 36, 15, 6, 195, 12, 240, 136,
-			16, 11, 200, 5, 32, 201, 16, 144, 67, 60, 224, 67, 0, 7, 196, 32, 245, 5, 48, 66, 8, 196, 64, 85, 1, 48, 65, 15, 11, 200,
-			21, 32, 84, 61, 53, 5, 56, 80, 67, 7, 195, 21, 3, 195, 65, 15, 0, 14, 68, 72, 22, 154, 60, 14, 16, 6, 35, 128, 12, 39,
-			0, 9, 198, 20, 193, 77, 61, 50, 78, 67, 0, 20, 71, 28, 19, 15, 65, 0, 78, 60, 81, 108, 55, 6, 39, 48, 12, 35, 50, 39,
-			0, 11, 70, 20, 225, 204, 37, 50, 0, 21, 0, 47, 6, 195, 81, 85, 21, 66, 10, 199, 12, 243, 2, 72, 144, 207, 56, 67, 12, 201,
-			4, 65, 78, 60, 148, 15, 24, 148, 201, 69, 0, 9, 198, 24, 244, 141, 36, 227, 192, 65, 9, 198, 20, 229, 18, 4, 227, 192, 65, 9,
-			198, 12, 244, 141, 4, 227, 192, 66, 9, 198, 65, 35, 211, 20, 194, 84, 66, 9, 198, 65, 35, 208, 61, 50, 84, 66, 7, 196, 48, 85,
-			67, 36, 65, 7, 196, 37, 51, 1, 52, 66, 9, 198, 36, 227, 143, 13, 83, 192, 15, 7, 196, 24, 243, 133, 52, 15, 9, 198, 16, 148,
-			195, 5, 2, 84, 66, 9, 198, 16, 83, 79, 13, 34, 84, 66, 9, 198, 12, 243, 80, 61, 50, 84, 66, 0, 8, 197, 76, 145, 14, 21,
-			144, 65, 11, 200, 76, 83, 73, 12, 84, 131, 32, 144, 16, 6, 195, 64, 243, 3, 15, 6, 195, 12, 243, 135, 15, 0, 10, 199, 36, 225,
-			81, 84, 149, 143, 12, 67, 5, 194, 36, 64, 13, 15, 3, 95, 50, 49, 84, 6, 36, 50, 47, 6, 40, 50, 39, 0, 5, 194, 20, 192,
-			16, 0, 6, 195, 24, 84, 192, 15, 6, 195, 17, 83, 205, 15, 9, 198, 12, 19, 16, 21, 53, 9, 67, 0, 9, 198, 76, 244, 141, 4,
-			227, 192, 66, 9, 198, 28, 246, 154, 4, 227, 192, 66, 7, 196, 56, 83, 12, 4, 76, 15, 3, 95, 50, 51, 84, 36, 50, 47, 37, 47,
-			51, 6, 36, 0, 7, 196, 88, 84, 18, 20, 15, 7, 196, 48, 147, 12, 4, 66, 7, 196, 48, 84, 18, 20, 15, 7, 196, 20, 227, 206,
-			20, 15, 7, 196, 5, 33, 78, 20, 16, 7, 196, 4, 112, 86, 20, 65, 0, 9, 198, 77, 84, 5, 72, 19, 128, 65, 9, 198, 37, 51,
-			195, 72, 243, 128, 66, 9, 198, 28, 20, 143, 24, 19, 128, 66, 7, 196, 24, 147, 206, 16, 16, 0, 18, 3, 95, 50, 53, 84, 36, 50,
-			47, 37, 76, 6, 37, 50, 49, 58, 109, 0, 7, 196, 77, 4, 133, 12, 15, 7, 196, 21, 67, 137, 12, 15, 0, 11, 200, 65, 35, 214,
-			20, 225, 193, 56, 240, 66, 11, 200, 12, 243, 150, 20, 225, 193, 56, 240, 66, 20, 3, 95, 50, 52, 84, 36, 50, 47, 37, 49, 58, 6,
-			35, 47, 12, 14, 16, 39, 0, 13, 202, 80, 145, 204, 5, 68, 9, 48, 84, 197, 72, 15, 6, 195, 72, 84, 192, 16, 0, 9, 68, 17,
-			34, 86, 20, 21, 0, 47, 17, 3, 95, 50, 55, 84, 36, 50, 47, 37, 89, 6, 109, 47, 12, 36, 0, 6, 195, 80, 244, 132, 16, 8,
-			197, 76, 147, 12, 4, 32, 65, 10, 199, 56, 80, 210, 60, 195, 199, 36, 15, 6, 195, 48, 244, 132, 16, 0, 15, 3, 95, 50, 54, 84,
-			36, 50, 47, 37, 89, 6, 109, 57, 0, 9, 198, 4, 193, 197, 56, 144, 128, 15, 0, 9, 198, 12, 83, 5, 9, 32, 64, 65, 9, 198,
-			52, 19, 148, 61, 96, 64, 65, 15, 4, 95, 98, 114, 118, 71, 14, 16, 6, 36, 12, 84, 36, 0, 9, 198, 88, 83, 149, 77, 64, 64,
-			67, 7, 196, 81, 34, 65, 12, 65, 9, 198, 64, 241, 5, 77, 64, 64, 67, 12, 201, 52, 243, 148, 20, 114, 79, 72, 114, 64, 16, 7,
-			196, 52, 241, 15, 12, 15, 0, 8, 67, 56, 85, 192, 21, 0, 47, 6, 195, 21, 52, 197, 76, 6, 195, 100, 241, 192, 15, 13, 202, 77,
-			3, 1, 56, 51, 143, 64, 193, 85, 72, 67, 9, 198, 65, 33, 78, 76, 147, 5, 15, 6, 195, 64, 244, 5, 15, 10, 198, 36, 83, 80,
-			76, 19, 5, 65, 15, 7, 196, 4, 229, 9, 24, 65, 9, 198, 4, 227, 137, 8, 19, 5, 66, 0, 7, 196, 64, 243, 12, 36, 15, 12,
-			200, 52, 243, 148, 20, 66, 83, 60, 224, 66, 15, 10, 199, 20, 51, 211, 37, 53, 5, 52, 15, 12, 201, 16, 147, 137, 81, 35, 198, 20,
-			227, 204, 69, 0, 9, 198, 24, 16, 195, 36, 19, 79, 76, 9, 198, 81, 34, 71, 48, 145, 128, 65, 0, 9, 68, 100, 18, 15, 60, 21,
-			0, 47, 23, 4, 95, 97, 99, 50, 72, 6, 39, 48, 12, 37, 38, 39, 23, 35, 49, 6, 40, 12, 47, 39, 0, 7, 196, 88, 145, 5,
-			60, 65, 0, 6, 195, 24, 20, 133, 77, 6, 195, 61, 52, 193, 16, 6, 195, 8, 84, 133, 16, 0, 9, 198, 64, 84, 134, 21, 69, 0,
-			15, 8, 197, 56, 83, 77, 20, 224, 16, 8, 197, 52, 21, 18, 60, 224, 15, 8, 197, 20, 117, 77, 20, 224, 66, 0, 6, 195, 16, 241,
-			0, 15, 6, 195, 13, 33, 83, 15, 0, 8, 197, 64, 83, 132, 60, 192, 15, 10, 199, 64, 20, 142, 5, 52, 207, 76, 67, 8, 197, 52,
-			81, 15, 48, 192, 16, 5, 194, 20, 208, 15, 0, 6, 195, 52, 84, 137, 66, 6, 195, 16, 243, 0, 15, 10, 199, 16, 83, 9, 4, 229,
-			79, 88, 15, 8, 197, 13, 34, 83, 61, 0, 15, 12, 201, 12, 243, 148, 72, 245, 133, 73, 50, 65, 67, 0, 9, 198, 64, 20, 146, 36,
-			50, 68, 67, 10, 199, 44, 19, 80, 84, 50, 5, 4, 16, 8, 197, 32, 145, 82, 60, 224, 66, 0, 7, 196, 36, 224, 201, 80, 65, 10,
-			199, 72, 85, 18, 60, 116, 129, 16, 66, 7, 196, 61, 32, 137, 80, 65, 7, 196, 36, 228, 201, 80, 65, 9, 198, 12, 243, 148, 20, 212,
-			0, 15, 9, 198, 8, 20, 207, 16, 147, 128, 66, 9, 198, 5, 32, 207, 76, 83, 128, 16, 0, 7, 196, 56, 81, 213, 76, 15, 9, 198,
-			8, 83, 133, 88, 243, 0, 15, 0, 11, 200, 81, 32, 80, 5, 52, 193, 56, 240, 66, 11, 200, 76, 244, 148, 20, 113, 201, 56, 240, 66,
-			11, 200, 76, 241, 4, 37, 49, 129, 56, 240, 66, 11, 200, 12, 243, 148, 36, 229, 73, 56, 240, 66, 11, 200, 12, 243, 148, 36, 229, 65,
-			56, 240, 66, 11, 200, 12, 243, 80, 48, 85, 1, 56, 240, 66, 18, 3, 226, 128, 176, 48, 4, 109, 14, 16, 15, 65, 6, 37, 55, 55,
-			109, 0, 9, 198, 88, 83, 148, 21, 50, 77, 15, 8, 197, 80, 131, 204, 61, 48, 16, 7, 196, 80, 19, 129, 72, 65, 9, 198, 77, 1,
-			67, 84, 197, 77, 65, 12, 201, 64, 192, 78, 80, 17, 197, 56, 85, 0, 15, 7, 196, 57, 83, 69, 72, 65, 7, 196, 56, 83, 66, 72,
-			15, 13, 201, 29, 80, 82, 16, 144, 82, 20, 114, 65, 67, 15, 7, 196, 20, 195, 5, 72, 16, 15, 204, 13, 34, 83, 80, 19, 12, 61,
-			65, 82, 5, 2, 65, 70, 7, 196, 12, 243, 133, 72, 65, 10, 198, 12, 83, 148, 21, 50, 77, 66, 15, 6, 195, 5, 67, 205, 65, 0,
-			13, 202, 36, 229, 5, 72, 48, 80, 20, 66, 78, 36, 68, 10, 199, 77, 80, 131, 60, 228, 195, 36, 15, 6, 195, 16, 246, 0, 15, 9,
-			198, 16, 147, 199, 56, 85, 0, 15, 0, 12, 201, 16, 80, 207, 53, 4, 137, 52, 19, 143, 67, 9, 198, 77, 3, 201, 48, 84, 128, 65,
-			9, 198, 44, 20, 200, 52, 148, 128, 65, 6, 195, 4, 195, 15, 76, 12, 201, 80, 80, 200, 56, 144, 207, 48, 244, 128, 15, 7, 196, 77,
-			67, 208, 64, 16, 8, 196, 28, 243, 73, 80, 65, 16, 9, 198, 20, 97, 137, 52, 84, 128, 66, 9, 198, 16, 244, 137, 24, 244, 128, 66,
-			7, 196, 12, 20, 21, 80, 66, 0, 8, 197, 88, 147, 131, 37, 64, 65, 0, 10, 199, 64, 147, 214, 36, 113, 201, 56, 67, 7, 196, 12,
-			245, 133, 72, 65, 7, 196, 8, 21, 133, 72, 65, 0, 9, 198, 76, 147, 149, 21, 52, 192, 15, 6, 195, 37, 64, 76, 65, 0, 9, 198,
-			64, 243, 9, 20, 68, 128, 15, 9, 198, 61, 69, 1, 20, 68, 128, 15, 7, 196, 20, 227, 195, 32, 15, 9, 198, 16, 144, 77, 21, 68,
-			128, 65, 14, 202, 12, 195, 210, 4, 209, 133, 56, 144, 207, 48, 69, 15, 10, 199, 5, 144, 84, 60, 195, 1, 32, 68, 0, 8, 197, 4,
-			229, 9, 12, 128, 66, 7, 196, 72, 21, 5, 60, 65, 12, 201, 65, 35, 198, 60, 225, 9, 52, 85, 18, 67, 12, 201, 12, 149, 15, 76,
-			50, 5, 48, 85, 18, 67, 8, 197, 4, 225, 84, 60, 192, 67, 0, 7, 196, 4, 67, 210, 56, 16, 0, 12, 201, 12, 243, 148, 72, 17,
-			4, 36, 51, 192, 67, 10, 199, 12, 243, 148, 84, 208, 67, 20, 67, 7, 196, 77, 81, 204, 36, 76, 9, 198, 36, 212, 12, 36, 50, 84,
-			66, 10, 198, 12, 243, 135, 73, 83, 192, 65, 15, 6, 195, 5, 50, 76, 66, 0, 15, 68, 28, 208, 73, 48, 75, 126, 15, 65, 6, 36,
-			37, 55, 0, 7, 196, 76, 243, 65, 48, 65, 9, 198, 64, 19, 131, 72, 80, 83, 65, 0, 8, 197, 80, 244, 142, 60, 192, 16, 8, 196,
-			76, 243, 5, 60, 65, 15, 9, 198, 76, 241, 199, 36, 244, 142, 16, 8, 197, 56, 17, 148, 60, 192, 66, 8, 197, 52, 22, 154, 60, 192,
-			66, 7, 195, 21, 3, 206, 65, 15, 6, 195, 12, 83, 142, 16, 6, 195, 5, 67, 206, 65, 9, 198, 4, 197, 15, 24, 244, 142, 16, 0,
-			14, 3, 95, 51, 88, 47, 14, 16, 6, 36, 50, 47, 35, 0, 6, 195, 104, 85, 137, 15, 11, 200, 64, 83, 15, 64, 243, 142, 21, 48,
-			15, 6, 195, 61, 48, 192, 15, 0, 9, 198, 88, 83, 135, 4, 227, 192, 65, 9, 198, 52, 19, 131, 4, 227, 192, 65, 9, 198, 28, 147,
-			195, 4, 227, 192, 65, 7, 196, 4, 226, 84, 4, 66, 15, 69, 16, 144, 77, 36, 224, 72, 37, 6, 35, 65, 37, 50, 0, 9, 198, 4,
-			48, 193, 57, 67, 192, 66, 13, 3, 95, 48, 67, 76, 6, 36, 50, 47, 39, 0, 76, 8, 197, 64, 17, 18, 60, 224, 66, 7, 196, 32,
-			84, 150, 20, 66, 9, 198, 12, 20, 137, 61, 66, 80, 67, 0, 13, 202, 65, 50, 67, 61, 65, 82, 5, 1, 85, 80, 69, 9, 198, 48,
-			244, 133, 16, 19, 128, 67, 9, 198, 44, 128, 77, 76, 147, 128, 66, 9, 198, 37, 4, 201, 48, 243, 128, 65, 9, 198, 12, 20, 15, 49,
-			83, 199, 15, 9, 198, 8, 20, 153, 80, 243, 128, 65, 0, 8, 197, 64, 83, 148, 60, 64, 15, 7, 196, 64, 16, 197, 12, 15, 9, 198,
-			36, 225, 197, 57, 80, 64, 15, 8, 197, 12, 243, 135, 20, 64, 15, 9, 198, 8, 243, 135, 36, 244, 142, 16, 0, 6, 195, 81, 32, 64,
-			76, 6, 195, 88, 245, 9, 15, 0, 6, 195, 76, 244, 132, 16, 11, 200, 64, 246, 154, 4, 225, 200, 21, 32, 66, 7, 196, 64, 83, 142,
-			20, 16, 11, 200, 52, 22, 154, 4, 48, 200, 21, 32, 66, 9, 198, 24, 84, 212, 37, 96, 76, 65, 0, 17, 4, 95, 48, 90, 51, 65,
-			37, 55, 55, 6, 36, 88, 37, 65, 37, 0, 12, 201, 76, 19, 148, 4, 32, 82, 8, 20, 128, 67, 9, 198, 5, 4, 9, 60, 208, 128,
-			16, 0, 24, 70, 76, 81, 213, 37, 64, 64, 89, 36, 81, 58, 6, 37, 47, 35, 15, 72, 35, 0, 81, 100, 97, 32, 8, 197, 77, 82,
-			67, 36, 64, 67, 9, 198, 56, 81, 210, 37, 64, 64, 66, 12, 201, 76, 83, 80, 72, 85, 133, 72, 65, 64, 16, 7, 196, 76, 21, 143,
-			12, 65, 9, 198, 72, 19, 80, 60, 195, 0, 16, 9, 198, 56, 81, 210, 37, 64, 64, 67, 12, 201, 52, 20, 131, 36, 20, 9, 20, 65,
-			64, 15, 12, 201, 21, 2, 71, 48, 245, 20, 36, 65, 64, 15, 12, 201, 12, 243, 148, 72, 244, 9, 20, 65, 64, 15, 12, 201, 12, 20,
-			212, 20, 197, 133, 72, 65, 64, 16, 9, 197, 5, 4, 18, 60, 64, 66, 15, 0, 6, 195, 80, 244, 129, 66, 6, 195, 76, 84, 129, 16,
-			10, 199, 69, 80, 78, 80, 243, 69, 56, 16, 7, 196, 12, 243, 15, 8, 65, 9, 198, 5, 52, 197, 52, 35, 5, 67, 0, 7, 196, 24,
-			241, 204, 36, 15, 10, 198, 20, 211, 69, 57, 64, 76, 65, 15, 7, 196, 16, 241, 204, 36, 15, 0, 15, 3, 226, 136, 158, 37, 50, 83,
-			37, 50, 6, 126, 47, 39, 0, 11, 200, 65, 35, 194, 61, 48, 201, 16, 80, 15, 11, 199, 16, 145, 78, 12, 81, 129, 48, 66, 15, 0,
-			12, 67, 9, 83, 206, 71, 40, 6, 39, 50, 0, 76, 9, 68, 76, 224, 67, 44, 21, 0, 47, 8, 197, 88, 145, 206, 60, 192, 66, 8,
-			197, 88, 22, 154, 60, 192, 66, 6, 195, 64, 246, 154, 16, 8, 197, 24, 20, 147, 4, 192, 65, 8, 197, 12, 20, 211, 4, 192, 65, 0,
-			9, 198, 60, 32, 140, 36, 114, 9, 65, 8, 67, 92, 21, 133, 21, 0, 47, 6, 195, 21, 52, 193, 76, 20, 3, 226, 137, 160, 50, 39,
-			50, 15, 40, 81, 58, 6, 35, 55, 36, 15, 4, 35, 0, 9, 198, 88, 148, 201, 28, 245, 9, 15, 6, 195, 72, 244, 133, 15, 6, 195,
-			44, 244, 133, 66, 6, 195, 12, 244, 133, 15, 11, 200, 12, 243, 148, 72, 17, 82, 20, 240, 67, 6, 195, 8, 244, 133, 15, 0, 7, 196,
-			16, 81, 204, 36, 76, 7, 196, 16, 17, 204, 36, 76, 8, 197, 61, 34, 71, 4, 224, 66, 8, 197, 24, 83, 19, 36, 224, 65, 9, 197,
-			9, 33, 71, 4, 224, 65, 15, 0, 24, 3, 226, 136, 154, 89, 4, 109, 67, 39, 15, 72, 4, 37, 15, 14, 16, 35, 72, 6, 37, 76,
-			36, 0, 0, 6, 194, 48, 16, 76, 46, 16, 3, 95, 49, 57, 72, 37, 76, 35, 50, 50, 6, 39, 84, 36, 0, 8, 197, 88, 83, 148,
-			60, 192, 15, 12, 201, 64, 243, 148, 20, 192, 78, 16, 243, 6, 15, 8, 197, 12, 148, 15, 48, 192, 16, 8, 197, 12, 22, 154, 60, 192,
-			66, 8, 197, 4, 212, 15, 48, 192, 16, 0, 14, 3, 95, 49, 56, 72, 37, 76, 6, 110, 47, 12, 39, 0, 9, 198, 64, 145, 15, 12,
-			50, 9, 15, 9, 198, 36, 224, 207, 49, 83, 69, 66, 0, 6, 195, 21, 98, 84, 65, 8, 197, 16, 243, 13, 4, 224, 15, 0, 9, 198,
-			88, 147, 12, 5, 35, 211, 15, 6, 195, 80, 245, 15, 66, 6, 195, 80, 245, 15, 15, 8, 196, 60, 96, 78, 80, 65, 15, 19, 70, 29,
-			32, 84, 84, 149, 15, 81, 14, 16, 35, 47, 6, 40, 37, 47, 39, 0, 0, 6, 195, 80, 244, 130, 16, 9, 198, 52, 19, 5, 88, 243,
-			0, 15, 9, 198, 12, 147, 133, 12, 197, 66, 67, 0, 7, 195, 4, 115, 9, 76, 46, 6, 195, 12, 245, 9, 15, 6, 195, 8, 19, 9,
-			66, 0, 10, 199, 16, 85, 5, 72, 210, 78, 4, 66, 9, 198, 76, 240, 195, 61, 36, 192, 16, 9, 198, 72, 147, 131, 61, 36, 192, 16,
-			9, 198, 72, 147, 66, 61, 36, 192, 16, 9, 198, 72, 84, 208, 60, 228, 192, 15, 9, 198, 64, 84, 131, 61, 36, 192, 16, 9, 198, 61,
-			35, 5, 4, 228, 192, 16, 6, 195, 21, 50, 84, 65, 9, 198, 16, 148, 195, 61, 36, 192, 16, 0, 26, 73, 36, 229, 1, 73, 50, 65,
-			88, 19, 143, 37, 50, 47, 35, 14, 16, 89, 37, 6, 35, 84, 35, 50, 39, 0, 17, 70, 73, 144, 78, 4, 148, 128, 14, 16, 6, 117,
-			35, 50, 36, 51, 0, 12, 201, 60, 197, 18, 20, 211, 206, 80, 19, 143, 68, 12, 201, 60, 197, 18, 20, 211, 206, 16, 19, 143, 68, 9,
-			198, 77, 64, 82, 80, 84, 128, 65, 11, 70, 77, 1, 65, 44, 84, 128, 21, 0, 47, 9, 198, 76, 178, 80, 64, 84, 128, 65, 9, 198,
-			64, 242, 78, 80, 84, 128, 65, 9, 198, 52, 19, 129, 28, 84, 128, 65, 9, 198, 24, 194, 80, 64, 84, 128, 65, 9, 198, 13, 32, 67,
-			44, 84, 128, 65, 11, 3, 226, 136, 146, 65, 6, 109, 50, 39, 0, 9, 198, 105, 80, 195, 32, 84, 128, 65, 9, 198, 76, 115, 205, 8,
-			84, 128, 65, 9, 198, 76, 50, 79, 64, 84, 128, 65, 9, 198, 76, 19, 79, 88, 20, 128, 67, 9, 198, 64, 20, 1, 88, 84, 128, 66,
-			9, 198, 36, 68, 143, 88, 244, 128, 66, 9, 198, 16, 82, 79, 80, 20, 128, 66, 9, 198, 12, 19, 15, 28, 84, 128, 66, 0, 16, 3,
-			95, 50, 57, 84, 36, 50, 47, 37, 50, 6, 110, 84, 36, 0, 13, 3, 95, 49, 49, 6, 40, 50, 72, 37, 76, 37, 0, 9, 198, 4,
-			229, 9, 64, 21, 18, 66, 0, 7, 196, 56, 145, 197, 72, 65, 17, 70, 88, 241, 1, 24, 243, 133, 84, 6, 39, 72, 35, 83, 39, 50,
-			0, 8, 196, 76, 149, 1, 72, 65, 46, 16, 3, 95, 50, 56, 84, 6, 36, 50, 47, 6, 110, 47, 12, 39, 0, 12, 3, 95, 49, 48,
-			72, 37, 6, 36, 76, 37, 0, 9, 198, 80, 148, 201, 24, 243, 133, 66, 7, 196, 76, 149, 1, 72, 66, 10, 198, 64, 243, 5, 76, 147,
-			133, 66, 16, 10, 198, 52, 16, 197, 16, 243, 133, 66, 15, 9, 198, 37, 4, 15, 52, 83, 133, 66, 9, 198, 28, 19, 1, 80, 243, 133,
-			66, 8, 196, 21, 69, 1, 72, 65, 15, 9, 198, 16, 21, 80, 32, 147, 133, 68, 9, 198, 12, 193, 79, 52, 83, 133, 66, 0, 7, 196,
-			4, 114, 84, 36, 65, 15, 3, 95, 49, 51, 47, 14, 16, 6, 36, 72, 37, 76, 37, 0, 8, 196, 20, 35, 204, 36, 65, 15, 0, 13,
-			3, 95, 49, 50, 72, 6, 39, 72, 37, 76, 37, 0, 12, 200, 76, 245, 20, 61, 33, 9, 56, 80, 66, 16, 9, 198, 64, 19, 16, 20,
-			36, 128, 65, 6, 195, 12, 84, 131, 16, 6, 195, 12, 84, 131, 16, 0, 8, 197, 56, 21, 137, 28, 128, 65, 15, 3, 95, 49, 53, 49,
-			122, 6, 37, 65, 72, 37, 76, 37, 0, 18, 4, 95, 99, 121, 114, 76, 126, 51, 6, 37, 55, 12, 126, 49, 110, 9, 0, 8, 197, 52,
-			84, 212, 60, 192, 16, 8, 197, 12, 147, 212, 60, 192, 65, 8, 197, 12, 83, 148, 60, 192, 15, 0, 18, 3, 95, 49, 52, 49, 122, 35,
-			47, 12, 6, 110, 51, 72, 37, 76, 37, 0, 8, 196, 80, 85, 1, 56, 65, 15, 7, 196, 12, 244, 137, 104, 65, 0, 17, 3, 95, 49,
-			55, 72, 37, 76, 35, 89, 12, 6, 109, 47, 12, 36, 0, 11, 200, 81, 32, 80, 21, 163, 197, 17, 32, 15, 10, 199, 52, 19, 5, 8,
-			243, 7, 20, 15, 11, 200, 13, 80, 143, 81, 64, 69, 17, 32, 15, 8, 197, 9, 80, 195, 36, 224, 65, 0, 13, 3, 95, 49, 54, 89,
-			6, 36, 72, 37, 76, 37, 0, 6, 195, 88, 84, 135, 16, 6, 195, 76, 244, 135, 16, 6, 195, 8, 244, 135, 16, 0, 8, 197, 64, 246,
-			154, 60, 192, 66, 6, 195, 48, 241, 26, 16, 7, 196, 44, 22, 65, 44, 66, 12, 201, 24, 243, 148, 4, 225, 76, 36, 49, 64, 16, 9,
-			197, 20, 227, 149, 64, 192, 65, 15, 0, 15, 3, 95, 55, 88, 89, 36, 47, 12, 6, 35, 50, 47, 35, 0, 7, 196, 88, 83, 5, 56,
-			16, 10, 199, 80, 83, 5, 12, 19, 69, 72, 67, 7, 196, 64, 19, 5, 56, 16, 7, 196, 52, 16, 201, 56, 65, 7, 196, 8, 19, 5,
-			56, 16, 0, 18, 70, 52, 81, 9, 5, 49, 84, 65, 6, 109, 72, 37, 35, 89, 36, 47, 0, 8, 197, 81, 34, 84, 60, 224, 65, 7,
-			196, 80, 19, 9, 4, 66, 7, 196, 76, 147, 73, 4, 65, 7, 196, 64, 243, 9, 4, 66, 7, 196, 52, 81, 9, 4, 15, 7, 196, 21,
-			67, 137, 4, 66, 7, 196, 17, 83, 9, 4, 66, 0, 24, 73, 12, 128, 78, 76, 243, 142, 36, 84, 128, 91, 4, 35, 68, 89, 6, 110,
-			50, 37, 36, 14, 16, 0, 9, 197, 76, 193, 83, 36, 16, 65, 15, 12, 201, 12, 20, 212, 72, 243, 9, 8, 84, 128, 67, 9, 198, 4,
-			229, 9, 17, 35, 199, 15, 0, 10, 198, 56, 85, 20, 5, 33, 64, 65, 15, 9, 198, 56, 84, 212, 61, 33, 64, 65, 9, 198, 52, 20,
-			148, 37, 33, 64, 65, 9, 198, 52, 19, 12, 5, 33, 64, 65, 9, 198, 49, 81, 213, 9, 33, 64, 65, 9, 198, 36, 228, 213, 9, 33,
-			64, 65, 9, 198, 12, 83, 5, 9, 33, 64, 65, 10, 198, 12, 80, 210, 61, 1, 64, 65, 15, 9, 198, 12, 20, 212, 61, 33, 64, 65,
-			0, 11, 200, 25, 83, 154, 36, 243, 137, 56, 240, 67, 11, 200, 12, 148, 131, 60, 225, 9, 56, 240, 66, 11, 200, 52, 243, 154, 4, 208,
-			129, 56, 240, 67, 9, 198, 80, 83, 199, 56, 145, 5, 15, 9, 198, 65, 32, 83, 76, 81, 5, 15, 9, 198, 48, 144, 207, 52, 81, 5,
-			15, 0, 12, 201, 81, 32, 83, 12, 83, 132, 4, 227, 192, 66, 12, 201, 76, 99, 210, 8, 144, 201, 4, 227, 192, 65, 12, 201, 76, 51,
-			210, 4, 113, 201, 4, 227, 192, 66, 12, 201, 64, 20, 148, 20, 50, 80, 4, 227, 192, 66, 12, 201, 21, 98, 68, 20, 230, 137, 4, 227,
-			192, 67, 12, 201, 16, 240, 213, 52, 83, 148, 4, 227, 192, 67, 12, 201, 12, 243, 134, 72, 243, 148, 36, 227, 192, 66, 12, 201, 12, 243,
-			80, 72, 83, 132, 4, 227, 192, 66, 13, 68, 5, 101, 137, 4, 35, 84, 12, 6, 125, 35, 0, 12, 201, 76, 19, 132, 88, 144, 201, 4,
-			227, 192, 67, 12, 201, 76, 19, 132, 88, 144, 201, 4, 227, 192, 67, 7, 196, 76, 81, 9, 4, 15, 7, 196, 52, 19, 9, 4, 66, 7,
-			196, 48, 19, 73, 4, 65, 7, 196, 28, 243, 9, 4, 66, 0, 12, 201, 77, 147, 148, 32, 84, 201, 104, 84, 128, 67, 24, 73, 72, 240,
-			203, 20, 97, 76, 48, 84, 128, 14, 16, 110, 49, 83, 6, 36, 55, 12, 36, 14, 16, 0, 9, 198, 81, 32, 83, 12, 244, 147, 16, 0,
-			9, 198, 16, 148, 207, 72, 66, 78, 66, 11, 199, 12, 244, 132, 20, 227, 206, 76, 67, 15, 18, 70, 4, 208, 133, 17, 81, 64, 35, 65,
-			71, 36, 72, 6, 40, 12, 36, 0, 0, 18, 70, 12, 242, 78, 12, 145, 1, 49, 39, 6, 37, 50, 76, 37, 47, 35, 0, 23, 73, 36,
-			212, 5, 4, 50, 13, 20, 229, 0, 37, 65, 48, 6, 37, 76, 65, 4, 36, 50, 74, 0, 6, 195, 24, 21, 5, 77, 6, 195, 88, 21,
-			5, 66, 9, 198, 76, 128, 78, 28, 128, 73, 66, 6, 195, 72, 85, 5, 16, 8, 197, 37, 51, 212, 61, 0, 66, 8, 197, 21, 83, 79,
-			49, 0, 15, 0, 10, 199, 81, 33, 78, 80, 84, 201, 52, 15, 7, 196, 76, 209, 71, 52, 15, 0, 6, 195, 12, 243, 147, 15, 0, 9,
-			197, 76, 244, 150, 60, 192, 66, 16, 8, 197, 8, 17, 206, 60, 192, 66, 0, 14, 4, 95, 97, 99, 117, 35, 49, 6, 40, 12, 47, 39,
-			0, 13, 67, 65, 37, 65, 48, 14, 16, 6, 40, 12, 35, 0, 6, 195, 56, 245, 133, 15, 6, 195, 48, 85, 133, 15, 9, 198, 12, 19,
-			3, 5, 33, 69, 66, 0, 8, 197, 76, 195, 199, 4, 224, 15, 9, 198, 24, 20, 195, 21, 69, 0, 16, 9, 198, 24, 16, 195, 21, 69,
-			0, 16, 9, 198, 12, 243, 132, 61, 69, 0, 16, 0, 0, 21, 71, 29, 80, 73, 76, 48, 78, 60, 81, 122, 35, 6, 37, 12, 89, 49,
-			35, 50, 39, 0, 6, 194, 52, 16, 76, 28, 9, 198, 16, 148, 208, 72, 86, 154, 15, 9, 198, 12, 149, 20, 4, 227, 214, 15, 8, 197,
-			8, 246, 154, 60, 192, 15, 0, 8, 197, 36, 225, 15, 48, 240, 66, 6, 195, 24, 243, 0, 15, 0, 8, 197, 56, 84, 211, 84, 224, 78,
-			10, 199, 52, 84, 131, 4, 230, 137, 4, 67, 9, 198, 52, 19, 147, 84, 85, 0, 15, 8, 197, 48, 148, 212, 60, 224, 66, 10, 199, 37,
-			3, 212, 21, 35, 73, 4, 68, 10, 199, 28, 84, 129, 72, 50, 9, 4, 67, 10, 199, 28, 83, 212, 21, 35, 73, 4, 68, 10, 199, 24,
-			147, 1, 80, 83, 9, 4, 68, 10, 199, 24, 83, 143, 12, 244, 9, 4, 15, 10, 199, 21, 51, 212, 72, 244, 9, 4, 68, 10, 199, 21,
-			5, 1, 72, 50, 9, 4, 67, 10, 199, 21, 2, 76, 21, 52, 201, 4, 68, 10, 199, 16, 148, 204, 21, 52, 201, 4, 67, 10, 198, 16,
-			81, 137, 12, 149, 0, 65, 15, 10, 199, 12, 20, 15, 12, 50, 9, 4, 15, 10, 199, 5, 64, 82, 5, 52, 201, 4, 68, 20, 71, 4,
-			48, 193, 16, 83, 73, 4, 35, 49, 12, 35, 72, 6, 109, 65, 37, 35, 0, 0, 7, 196, 77, 65, 80, 64, 16, 7, 196, 76, 52, 143,
-			80, 15, 15, 203, 52, 243, 143, 12, 245, 9, 48, 81, 15, 56, 144, 69, 15, 6, 195, 24, 245, 0, 15, 19, 70, 24, 244, 148, 84, 149,
-			15, 83, 110, 14, 16, 47, 6, 40, 37, 47, 39, 0, 7, 196, 12, 20, 143, 80, 15, 7, 196, 12, 19, 129, 64, 65, 7, 196, 12, 19,
-			129, 64, 65, 0, 8, 197, 80, 83, 196, 61, 64, 66, 8, 197, 21, 35, 196, 61, 64, 66, 0, 7, 196, 76, 21, 21, 72, 65, 6, 195,
-			56, 84, 9, 15, 6, 195, 28, 245, 9, 15, 6, 195, 13, 83, 201, 15, 7, 196, 12, 19, 69, 72, 65, 0, 12, 201, 36, 228, 213, 16,
-			144, 201, 4, 227, 192, 66, 12, 201, 12, 21, 1, 48, 241, 200, 36, 227, 192, 66, 12, 201, 76, 147, 80, 48, 144, 201, 4, 227, 192, 67,
-			12, 201, 64, 81, 5, 52, 243, 148, 4, 227, 192, 68, 12, 201, 24, 81, 5, 72, 144, 201, 4, 227, 192, 68, 16, 69, 92, 17, 206, 21,
-			32, 84, 6, 35, 81, 50, 109, 14, 16, 0, 10, 69, 17, 34, 86, 21, 32, 21, 0, 47, 8, 197, 80, 84, 133, 9, 32, 65, 8, 197,
-			72, 149, 18, 61, 96, 15, 8, 197, 21, 51, 206, 21, 32, 66, 11, 200, 12, 192, 77, 36, 67, 198, 61, 32, 67, 9, 198, 4, 229, 9,
-			16, 245, 0, 66, 0, 12, 201, 36, 229, 5, 73, 4, 133, 80, 19, 143, 66, 11, 200, 12, 19, 131, 20, 195, 1, 52, 144, 66, 12, 201,
-			60, 197, 18, 4, 211, 206, 80, 19, 143, 68, 12, 201, 60, 197, 18, 4, 211, 206, 16, 19, 143, 68, 12, 201, 12, 149, 18, 4, 211, 206,
-			80, 19, 143, 68, 9, 198, 77, 3, 206, 76, 244, 128, 65, 17, 70, 76, 51, 207, 80, 84, 128, 89, 49, 6, 40, 47, 109, 14, 16, 0,
-			9, 198, 77, 64, 70, 24, 244, 128, 65, 9, 198, 52, 243, 143, 52, 84, 128, 66, 9, 198, 16, 83, 9, 8, 84, 128, 66, 10, 198, 12,
-			240, 207, 52, 84, 128, 66, 16, 0, 9, 198, 64, 84, 133, 80, 243, 0, 66, 8, 197, 48, 145, 86, 37, 64, 66, 9, 198, 37, 3, 195,
-			20, 229, 18, 15, 8, 197, 16, 149, 137, 21, 64, 15, 0, 12, 3, 95, 50, 88, 84, 6, 36, 50, 47, 57, 0, 7, 196, 80, 85, 67,
-			72, 65, 9, 198, 12, 20, 148, 60, 48, 201, 15, 0, 8, 197, 8, 21, 20, 21, 32, 65, 17, 69, 93, 34, 84, 21, 32, 84, 14, 16,
-			6, 117, 47, 36, 14, 16, 0, 9, 197, 76, 83, 12, 21, 32, 65, 47, 16, 69, 72, 80, 68, 21, 32, 14, 16, 6, 37, 72, 109, 14,
-			16, 0, 9, 197, 52, 147, 12, 21, 32, 65, 46, 14, 69, 48, 80, 68, 21, 32, 55, 37, 72, 109, 14, 16, 0, 8, 197, 32, 149, 12,
-			21, 32, 65, 27, 67, 12, 19, 12, 49, 6, 39, 55, 15, 89, 6, 36, 50, 47, 109, 14, 16, 0, 81, 99, 101, 110, 116, 101, 114, 32,
-			7, 196, 72, 148, 5, 36, 66, 10, 198, 60, 211, 137, 9, 84, 192, 65, 15, 10, 199, 37, 4, 15, 64, 245, 1, 52, 67, 7, 196, 20,
-			36, 133, 36, 66, 7, 196, 5, 52, 193, 36, 66, 6, 195, 5, 51, 204, 65, 0, 9, 198, 88, 145, 207, 56, 245, 128, 15, 12, 201, 64,
-			20, 129, 12, 85, 1, 52, 243, 0, 69, 7, 196, 61, 36, 207, 48, 16, 7, 196, 56, 84, 143, 48, 65, 11, 199, 36, 68, 143, 12, 81,
-			129, 48, 67, 15, 9, 198, 12, 21, 20, 20, 68, 128, 65, 0, 8, 197, 64, 145, 206, 60, 192, 66, 8, 197, 52, 84, 195, 4, 192, 66,
-			10, 199, 12, 19, 142, 4, 195, 206, 28, 15, 0, 0, 8, 197, 61, 34, 71, 36, 224, 66, 7, 196, 24, 244, 212, 36, 76, 17, 3, 226,
-			136, 171, 37, 50, 47, 36, 81, 14, 16, 6, 35, 55, 36, 0, 12, 201, 76, 245, 20, 61, 4, 143, 16, 245, 20, 16, 7, 196, 48, 241,
-			204, 36, 15, 8, 197, 16, 243, 13, 20, 224, 15, 10, 199, 12, 129, 76, 36, 49, 82, 36, 66, 0, 14, 203, 16, 144, 201, 5, 52, 197,
-			81, 65, 83, 36, 208, 15, 0, 10, 199, 65, 35, 208, 4, 112, 78, 60, 66, 10, 199, 65, 35, 195, 85, 32, 78, 60, 66, 10, 199, 36,
-			229, 5, 57, 66, 78, 60, 66, 10, 199, 5, 83, 69, 57, 64, 78, 60, 67, 10, 199, 12, 244, 131, 32, 144, 78, 60, 67, 20, 71, 4,
-			225, 204, 36, 48, 78, 60, 35, 68, 81, 55, 37, 49, 6, 35, 50, 39, 0, 8, 197, 52, 145, 206, 60, 192, 65, 8, 197, 16, 243, 142,
-			60, 192, 15, 0, 11, 200, 64, 85, 15, 56, 50, 65, 56, 240, 67, 13, 72, 88, 145, 5, 60, 112, 77, 21, 48, 21, 0, 47, 6, 195,
-			52, 144, 64, 76, 6, 195, 80, 20, 137, 66, 6, 195, 52, 244, 137, 16, 7, 196, 48, 147, 69, 56, 65, 10, 199, 12, 83, 148, 72, 243,
-			69, 72, 66, 6, 195, 8, 240, 64, 15, 0, 8, 197, 25, 83, 13, 36, 224, 65, 7, 196, 24, 244, 211, 20, 77, 10, 198, 81, 34, 86,
-			20, 225, 84, 66, 15, 7, 196, 80, 83, 137, 4, 15, 7, 196, 64, 243, 131, 20, 15, 7, 196, 52, 17, 137, 4, 65, 10, 198, 48, 147,
-			134, 60, 227, 196, 67, 15, 7, 196, 24, 244, 147, 20, 16, 8, 197, 24, 83, 77, 36, 224, 65, 7, 196, 8, 244, 133, 4, 65, 7, 196,
-			4, 194, 67, 20, 66, 0, 10, 199, 64, 83, 148, 5, 67, 5, 80, 15, 10, 199, 52, 20, 129, 80, 243, 133, 80, 15, 7, 196, 12, 243,
-			79, 16, 65, 9, 198, 12, 147, 79, 48, 18, 83, 67, 10, 199, 4, 224, 76, 24, 16, 133, 80, 15, 0, 24, 70, 76, 81, 213, 37, 65,
-			64, 89, 36, 81, 58, 6, 37, 47, 36, 15, 72, 35, 0, 81, 100, 97, 32, 11, 199, 72, 148, 197, 73, 96, 78, 60, 66, 16, 10, 199,
-			72, 145, 149, 28, 144, 78, 60, 66, 10, 199, 48, 19, 69, 57, 64, 78, 60, 66, 10, 199, 36, 229, 133, 57, 66, 78, 60, 66, 10, 199,
-			12, 194, 67, 12, 130, 78, 60, 65, 10, 199, 5, 69, 5, 77, 66, 78, 60, 66, 10, 199, 4, 32, 129, 56, 67, 206, 60, 67, 10, 199,
-			88, 80, 195, 32, 144, 78, 60, 67, 9, 198, 76, 240, 210, 5, 65, 64, 65, 10, 199, 36, 225, 15, 77, 64, 78, 60, 67, 10, 199, 28,
-			21, 143, 73, 32, 78, 60, 67, 9, 198, 9, 83, 7, 5, 33, 64, 65, 9, 198, 5, 97, 86, 5, 65, 64, 75, 9, 198, 21, 32, 86,
-			5, 65, 64, 67, 9, 198, 89, 83, 20, 85, 33, 64, 65, 9, 198, 85, 33, 84, 21, 33, 64, 67, 9, 198, 77, 64, 84, 21, 33, 64,
-			66, 9, 198, 76, 147, 131, 61, 1, 64, 65, 9, 198, 61, 69, 15, 9, 33, 64, 16, 9, 198, 52, 85, 20, 21, 33, 64, 15, 9, 198,
-			52, 85, 5, 61, 33, 64, 66, 9, 198, 48, 16, 200, 21, 65, 64, 15, 9, 198, 13, 32, 84, 21, 33, 64, 66, 6, 195, 8, 83, 22,
-			16, 0, 6, 195, 21, 52, 201, 76, 6, 195, 44, 80, 64, 16, 0, 21, 72, 20, 148, 197, 56, 131, 215, 21, 32, 117, 88, 36, 50, 6,
-			35, 58, 109, 14, 16, 0, 14, 3, 95, 63, 63, 89, 6, 37, 65, 71, 39, 55, 39, 0, 7, 196, 76, 145, 80, 20, 15, 7, 196, 52,
-			19, 137, 4, 66, 7, 196, 44, 83, 137, 4, 15, 7, 196, 8, 145, 201, 4, 65, 0, 6, 195, 48, 244, 143, 76, 7, 195, 48, 244, 143,
-			76, 46, 10, 199, 12, 19, 80, 4, 115, 143, 48, 67, 0, 12, 66, 53, 32, 65, 126, 89, 47, 36, 34, 0, 24, 6, 195, 13, 35, 214,
-			15, 18, 70, 12, 147, 65, 9, 81, 64, 76, 37, 65, 35, 71, 6, 40, 12, 36, 0, 0, 6, 195, 52, 145, 64, 76, 15, 3, 95, 52,
-			88, 49, 122, 35, 51, 6, 35, 68, 47, 35, 0, 6, 195, 16, 245, 5, 15, 6, 195, 12, 245, 5, 15, 0, 9, 198, 76, 244, 208, 21,
-			69, 0, 15, 7, 196, 76, 16, 133, 36, 66, 0, 6, 195, 21, 3, 211, 15, 9, 198, 12, 81, 129, 48, 241, 128, 66, 0, 22, 72, 5,
-			85, 15, 88, 82, 67, 60, 192, 35, 40, 47, 39, 84, 36, 6, 37, 49, 39, 55, 0, 0, 6, 195, 64, 21, 133, 66, 6, 195, 60, 193,
-			192, 15, 6, 195, 56, 241, 64, 66, 6, 195, 56, 241, 64, 15, 6, 195, 8, 245, 133, 15, 0, 8, 197, 4, 112, 68, 21, 160, 67, 0,
-			9, 198, 61, 4, 15, 76, 84, 143, 66, 7, 196, 16, 148, 15, 48, 66, 12, 201, 16, 83, 65, 72, 85, 5, 36, 243, 128, 16, 0, 10,
-			199, 65, 35, 196, 84, 48, 78, 60, 66, 10, 199, 16, 85, 5, 77, 66, 78, 60, 66, 10, 199, 4, 48, 197, 81, 66, 78, 60, 66, 6,
-			194, 48, 80, 76, 46, 15, 4, 95, 115, 117, 98, 48, 6, 36, 72, 37, 76, 36, 15, 0, 0, 11, 200, 72, 20, 16, 61, 37, 9, 56,
-			240, 66, 11, 200, 36, 228, 212, 4, 195, 9, 56, 240, 66, 16, 3, 95, 53, 88, 76, 37, 50, 49, 122, 6, 35, 50, 47, 35, 0, 6,
-			195, 28, 243, 0, 15, 0, 20, 71, 4, 229, 9, 64, 21, 9, 20, 35, 50, 47, 37, 48, 35, 47, 6, 37, 36, 0, 9, 198, 81, 32,
-			78, 76, 149, 0, 65, 13, 202, 77, 3, 5, 56, 243, 69, 28, 19, 9, 4, 69, 10, 199, 64, 20, 135, 32, 83, 9, 4, 67, 10, 199,
-			61, 37, 15, 64, 81, 9, 4, 68, 9, 198, 60, 36, 207, 48, 85, 0, 15, 10, 199, 56, 21, 77, 4, 50, 9, 4, 68, 10, 199, 48,
-			243, 66, 5, 33, 9, 4, 67, 10, 199, 16, 148, 212, 72, 241, 137, 4, 67, 10, 199, 16, 145, 204, 61, 52, 201, 4, 67, 11, 200, 5,
-			32, 201, 88, 84, 195, 61, 96, 67, 10, 199, 4, 227, 210, 21, 52, 201, 4, 68, 10, 199, 4, 208, 140, 36, 244, 9, 4, 68, 0, 10,
-			198, 64, 84, 148, 4, 229, 15, 76, 28, 14, 4, 95, 114, 110, 103, 35, 50, 6, 36, 55, 55, 39, 0, 6, 195, 48, 85, 0, 15, 6,
-			195, 28, 245, 0, 15, 0, 10, 199, 81, 32, 68, 84, 48, 78, 60, 66, 10, 199, 12, 243, 80, 4, 144, 78, 60, 66, 10, 199, 4, 67,
-			208, 21, 34, 78, 60, 66, 10, 199, 76, 50, 83, 12, 144, 78, 60, 66, 20, 71, 5, 33, 79, 64, 192, 78, 60, 35, 51, 109, 39, 48,
-			55, 6, 35, 50, 39, 0, 9, 198, 52, 19, 148, 36, 51, 210, 66, 9, 198, 8, 240, 66, 16, 147, 0, 67, 8, 197, 4, 226, 67, 21,
-			64, 15, 0, 11, 200, 80, 83, 5, 24, 243, 129, 56, 240, 66, 6, 195, 76, 82, 64, 76, 6, 195, 52, 18, 64, 76, 7, 195, 88, 242,
-			64, 76, 46, 7, 195, 56, 242, 64, 76, 46, 6, 195, 64, 84, 9, 15, 9, 198, 21, 2, 71, 72, 17, 133, 66, 9, 198, 5, 4, 18,
-			60, 48, 201, 15, 0, 9, 198, 28, 147, 214, 4, 226, 76, 67, 16, 69, 92, 19, 26, 21, 32, 84, 6, 35, 55, 123, 109, 14, 16, 0,
-			8, 197, 88, 19, 26, 21, 32, 65, 10, 198, 80, 83, 5, 80, 86, 20, 67, 15, 9, 198, 48, 19, 80, 72, 81, 0, 15, 9, 197, 16,
-			243, 12, 5, 32, 65, 15, 13, 202, 12, 130, 85, 76, 21, 133, 12, 50, 9, 4, 15, 6, 195, 5, 163, 212, 15, 0, 7, 195, 64, 84,
-			143, 65, 15, 22, 72, 56, 81, 204, 36, 113, 78, 104, 16, 50, 36, 81, 55, 37, 75, 6, 36, 50, 123, 35, 0, 11, 200, 81, 33, 68,
-			36, 49, 83, 36, 208, 15, 10, 199, 80, 240, 207, 24, 84, 143, 48, 68, 8, 196, 72, 240, 143, 80, 66, 15, 0, 10, 199, 88, 19, 12,
-			20, 195, 206, 28, 15, 8, 197, 76, 245, 137, 21, 64, 66, 8, 197, 64, 192, 67, 37, 64, 65, 8, 197, 61, 37, 137, 21, 64, 15, 8,
-			197, 56, 20, 195, 37, 64, 65, 8, 197, 48, 20, 195, 37, 64, 65, 8, 197, 36, 228, 197, 81, 64, 15, 8, 197, 5, 52, 197, 81, 64,
-			15, 8, 197, 5, 52, 5, 81, 64, 15, 8, 197, 4, 97, 133, 81, 64, 15, 0, 15, 3, 95, 54, 88, 89, 36, 89, 89, 6, 35, 50,
-			47, 35, 0, 9, 198, 37, 3, 212, 4, 192, 77, 67, 7, 196, 24, 83, 20, 72, 16, 6, 195, 8, 243, 64, 15, 0, 8, 197, 4, 67,
-			208, 21, 32, 66, 16, 69, 92, 19, 20, 21, 32, 84, 6, 35, 55, 47, 36, 14, 16, 0, 14, 68, 4, 84, 133, 36, 35, 6, 109, 12,
-			51, 109, 37, 0, 9, 197, 80, 84, 212, 21, 32, 65, 47, 16, 69, 52, 18, 76, 21, 32, 65, 6, 109, 37, 55, 36, 14, 16, 0, 8,
-			197, 44, 147, 12, 21, 32, 65, 8, 197, 12, 19, 80, 21, 32, 65, 8, 197, 8, 242, 76, 21, 32, 65, 7, 196, 5, 100, 133, 36, 66,
-			7, 196, 76, 20, 133, 36, 78, 9, 197, 80, 83, 80, 21, 32, 65, 15, 8, 197, 53, 84, 212, 21, 32, 66, 9, 197, 52, 85, 5, 61,
-			32, 66, 16, 8, 197, 52, 16, 193, 9, 32, 65, 8, 197, 20, 193, 84, 81, 32, 15, 8, 197, 20, 193, 84, 81, 32, 15, 0, 7, 196,
-			80, 81, 207, 48, 65, 0, 6, 195, 64, 86, 154, 15, 7, 196, 8, 244, 146, 60, 16, 0, 7, 196, 28, 147, 210, 56, 16, 6, 195, 4,
-			131, 192, 66, 0, 7, 196, 56, 241, 77, 36, 15, 0, 7, 196, 80, 148, 143, 48, 66, 11, 200, 52, 147, 12, 20, 99, 199, 48, 144, 15,
-			0, 10, 199, 80, 84, 141, 36, 226, 78, 60, 65, 10, 199, 72, 145, 78, 81, 34, 78, 60, 66, 10, 199, 72, 144, 133, 48, 192, 78, 60,
-			66, 10, 199, 36, 229, 5, 57, 64, 78, 60, 66, 10, 199, 20, 194, 77, 36, 224, 78, 60, 66, 13, 68, 16, 144, 78, 60, 72, 6, 37,
-			35, 50, 39, 0, 10, 199, 52, 243, 143, 64, 192, 78, 60, 67, 10, 199, 52, 19, 148, 61, 96, 78, 60, 67, 6, 194, 36, 192, 76, 46,
-			9, 198, 12, 16, 193, 76, 83, 142, 16, 0, 11, 200, 52, 147, 149, 12, 50, 65, 56, 240, 67, 11, 200, 12, 20, 15, 72, 50, 65, 56,
-			240, 67, 0, 14, 68, 76, 144, 84, 20, 89, 37, 6, 35, 47, 36, 0, 76, 8, 196, 72, 243, 12, 20, 66, 15, 12, 201, 20, 210, 67,
-			72, 148, 20, 60, 98, 84, 68, 9, 198, 20, 193, 84, 81, 35, 196, 15, 8, 196, 20, 48, 84, 20, 65, 15, 0, 15, 69, 29, 82, 78,
-			20, 16, 81, 58, 37, 50, 6, 36, 35, 0, 8, 197, 8, 80, 197, 72, 16, 65, 8, 197, 5, 97, 83, 80, 80, 76, 8, 197, 5, 97,
-			83, 80, 80, 78, 8, 197, 69, 81, 83, 80, 80, 76, 8, 197, 104, 145, 207, 80, 80, 15, 8, 197, 85, 67, 208, 36, 16, 67, 8, 197,
-			84, 33, 82, 80, 16, 67, 8, 197, 52, 81, 15, 48, 80, 65, 10, 199, 36, 224, 207, 57, 53, 69, 80, 15, 8, 197, 16, 147, 195, 48,
-			80, 65, 8, 197, 12, 195, 196, 36, 16, 15, 11, 200, 12, 20, 18, 36, 99, 199, 48, 144, 15, 0, 10, 199, 72, 148, 201, 20, 64, 78,
-			60, 66, 10, 199, 36, 229, 133, 57, 64, 78, 60, 66, 10, 199, 12, 148, 131, 60, 192, 78, 60, 65, 10, 199, 5, 69, 5, 77, 64, 78,
-			60, 66, 7, 196, 65, 34, 69, 28, 15, 0, 11, 200, 4, 195, 15, 28, 114, 65, 56, 240, 66, 11, 200, 52, 21, 18, 36, 50, 65, 56,
-			240, 67, 8, 197, 88, 84, 195, 36, 48, 66, 9, 198, 76, 19, 21, 16, 80, 201, 15, 8, 197, 64, 243, 12, 36, 48, 15, 6, 195, 60,
-			145, 9, 66, 8, 197, 52, 243, 12, 36, 48, 66, 8, 197, 36, 225, 207, 72, 112, 16, 8, 197, 21, 2, 76, 60, 112, 66, 0, 7, 196,
-			56, 83, 12, 20, 76, 7, 196, 16, 83, 12, 20, 76, 9, 198, 76, 19, 134, 72, 243, 148, 66, 0, 11, 200, 16, 148, 212, 36, 229, 5,
-			76, 144, 66, 8, 197, 5, 81, 213, 72, 16, 65, 8, 197, 84, 197, 9, 52, 80, 65, 8, 197, 24, 16, 197, 88, 16, 78, 8, 197, 88,
-			240, 130, 36, 16, 15, 8, 197, 88, 148, 137, 48, 80, 66, 8, 197, 72, 240, 130, 36, 16, 15, 8, 197, 72, 22, 154, 36, 16, 66, 8,
-			197, 72, 16, 193, 48, 80, 65, 8, 197, 64, 84, 195, 32, 80, 15, 8, 197, 64, 22, 154, 36, 16, 66, 8, 197, 52, 147, 9, 80, 80,
-			65, 9, 197, 48, 16, 195, 32, 80, 66, 15, 11, 200, 24, 149, 15, 12, 83, 143, 76, 144, 16, 8, 197, 21, 66, 79, 64, 80, 66, 8,
-			197, 21, 35, 69, 80, 80, 15, 6, 195, 21, 21, 79, 15, 8, 197, 17, 34, 79, 64, 80, 65, 9, 197, 16, 80, 193, 16, 80, 65, 15,
-			8, 197, 8, 148, 5, 16, 80, 65, 11, 200, 8, 147, 211, 36, 229, 5, 76, 144, 67, 8, 197, 5, 34, 69, 80, 80, 15, 8, 197, 5,
-			3, 210, 36, 16, 67, 0, 12, 201, 72, 244, 208, 36, 115, 9, 61, 50, 64, 16, 8, 196, 20, 51, 15, 28, 65, 15, 12, 201, 16, 144,
-			201, 5, 52, 197, 81, 65, 64, 15, 12, 201, 5, 32, 201, 16, 147, 195, 21, 50, 64, 68, 0, 14, 3, 95, 56, 88, 39, 47, 12, 6,
-			35, 50, 47, 35, 0, 6, 195, 104, 241, 64, 15, 8, 197, 84, 226, 86, 60, 48, 66, 13, 201, 81, 33, 66, 5, 49, 76, 20, 114, 5,
-			67, 16, 0, 10, 199, 77, 66, 76, 60, 32, 84, 20, 66, 10, 199, 60, 211, 218, 36, 115, 212, 20, 15, 7, 196, 36, 209, 78, 36, 15,
-			10, 199, 16, 148, 207, 56, 84, 212, 4, 68, 9, 198, 12, 244, 208, 21, 69, 0, 15, 7, 196, 5, 32, 66, 36, 65, 0, 8, 197, 77,
-			3, 5, 56, 144, 15, 8, 197, 64, 84, 135, 4, 208, 65, 6, 195, 13, 35, 211, 15, 6, 195, 8, 244, 147, 16, 0, 9, 198, 72, 149,
-			133, 73, 50, 64, 66, 9, 198, 81, 33, 86, 37, 48, 78, 67, 9, 198, 81, 32, 86, 21, 50, 64, 15, 9, 198, 21, 129, 82, 21, 50,
-			64, 66, 0, 8, 197, 5, 4, 129, 56, 240, 65, 8, 197, 4, 198, 137, 56, 240, 65, 9, 198, 76, 147, 148, 60, 226, 65, 67, 9, 198,
-			76, 19, 13, 60, 66, 65, 67, 7, 196, 72, 144, 201, 56, 65, 7, 196, 52, 242, 197, 56, 15, 0, 6, 195, 69, 81, 76, 76, 7, 196,
-			4, 48, 82, 36, 65, 0, 8, 197, 88, 149, 129, 12, 144, 66, 9, 197, 88, 144, 193, 72, 144, 66, 46, 8, 197, 80, 19, 73, 28, 144,
-			66, 9, 197, 64, 80, 193, 72, 144, 65, 15, 8, 197, 48, 16, 207, 56, 144, 65, 8, 197, 37, 69, 9, 72, 144, 65, 8, 197, 5, 48,
-			193, 72, 144, 65, 0, 10, 199, 77, 84, 195, 37, 64, 78, 60, 65, 10, 199, 65, 35, 208, 36, 226, 78, 60, 66, 9, 198, 49, 80, 213,
-			9, 34, 64, 65, 7, 194, 32, 240, 15, 76, 32, 5, 194, 52, 80, 76, 9, 198, 104, 147, 135, 5, 34, 64, 65, 9, 198, 80, 147, 132,
-			5, 34, 64, 65, 9, 198, 80, 20, 148, 5, 34, 64, 65, 11, 200, 65, 33, 83, 85, 4, 15, 77, 64, 16, 9, 198, 65, 33, 83, 21,
-			2, 64, 15, 11, 200, 64, 84, 141, 4, 100, 143, 77, 64, 65, 9, 198, 16, 148, 208, 5, 34, 64, 65, 9, 198, 5, 52, 197, 57, 162,
-			64, 15, 0, 11, 200, 4, 194, 77, 20, 229, 9, 56, 240, 67, 21, 72, 21, 85, 9, 12, 130, 65, 56, 240, 36, 58, 72, 37, 49, 37,
-			6, 35, 50, 39, 0, 14, 3, 95, 57, 88, 50, 39, 84, 6, 35, 50, 47, 35, 0, 9, 198, 36, 208, 146, 60, 115, 9, 15, 0, 29,
-			75, 88, 148, 213, 4, 194, 90, 104, 22, 137, 60, 224, 84, 37, 88, 111, 35, 55, 37, 128, 12, 35, 123, 37, 6, 110, 50, 0, 10, 199,
-			61, 53, 18, 60, 115, 212, 36, 15, 9, 198, 13, 35, 206, 61, 67, 208, 66, 9, 198, 5, 96, 77, 64, 244, 212, 16, 9, 198, 4, 194,
-			81, 84, 245, 0, 66, 0, 10, 198, 76, 179, 208, 20, 195, 211, 65, 16, 14, 203, 64, 144, 83, 81, 34, 78, 61, 1, 78, 36, 16, 69,
-			9, 198, 53, 85, 1, 28, 83, 128, 66, 9, 198, 16, 148, 25, 48, 243, 128, 65, 0, 10, 199, 16, 148, 195, 85, 64, 78, 60, 66, 10,
-			199, 12, 243, 147, 60, 192, 78, 60, 66, 10, 199, 4, 67, 208, 21, 32, 78, 60, 66, 9, 198, 80, 245, 15, 28, 243, 0, 67, 8, 197,
-			76, 81, 213, 37, 64, 65, 8, 197, 72, 145, 15, 81, 64, 16, 9, 197, 16, 84, 208, 61, 64, 65, 15, 9, 198, 12, 19, 12, 36, 49,
-			66, 15, 0, 11, 200, 16, 84, 15, 76, 149, 9, 56, 240, 66, 7, 196, 52, 83, 66, 72, 15, 0, 8, 197, 53, 83, 214, 21, 32, 66,
-			16, 69, 88, 18, 78, 21, 32, 84, 6, 117, 50, 36, 14, 16, 0, 46, 9, 197, 80, 83, 133, 9, 32, 65, 15, 8, 197, 72, 148, 18,
-			61, 96, 15, 9, 198, 37, 4, 15, 48, 149, 0, 66, 8, 197, 28, 19, 66, 21, 32, 65, 8, 197, 25, 83, 133, 9, 32, 65, 6, 195,
-			21, 51, 208, 15, 9, 198, 12, 244, 9, 48, 245, 0, 15, 8, 197, 12, 21, 20, 5, 32, 65, 10, 199, 12, 21, 5, 12, 129, 83, 36,
-			15, 9, 198, 5, 50, 78, 80, 245, 0, 66, 10, 199, 4, 229, 9, 13, 33, 83, 36, 15, 9, 198, 4, 208, 82, 12, 244, 132, 67, 0,
-			22, 72, 88, 148, 213, 4, 194, 90, 104, 16, 84, 37, 88, 111, 35, 55, 6, 37, 128, 12, 35, 0, 12, 201, 12, 20, 193, 52, 20, 131,
-			36, 19, 143, 68, 11, 200, 81, 84, 144, 36, 195, 209, 84, 144, 15, 0, 12, 201, 16, 148, 212, 36, 225, 213, 21, 33, 64, 66, 15, 3,
-			95, 63, 65, 55, 36, 47, 12, 6, 36, 12, 51, 35, 0, 9, 198, 85, 50, 71, 56, 243, 0, 67, 9, 198, 72, 243, 66, 60, 81, 18,
-			15, 12, 201, 64, 243, 148, 5, 52, 201, 21, 97, 64, 15, 8, 197, 64, 84, 141, 85, 64, 65, 8, 197, 36, 225, 133, 81, 64, 15, 12,
-			201, 24, 245, 15, 76, 147, 148, 21, 50, 64, 67, 8, 197, 20, 97, 133, 81, 64, 15, 8, 197, 16, 84, 213, 21, 64, 15, 10, 198, 12,
-			241, 199, 36, 243, 0, 65, 15, 9, 198, 12, 20, 137, 56, 243, 0, 66, 0, 17, 206, 12, 243, 148, 72, 17, 4, 37, 53, 9, 56, 117,
-			65, 56, 240, 68, 8, 196, 36, 229, 5, 72, 65, 46, 7, 196, 80, 83, 80, 72, 15, 7, 196, 76, 16, 137, 72, 66, 7, 196, 56, 245,
-			133, 72, 65, 7, 196, 16, 145, 68, 72, 15, 7, 196, 4, 229, 5, 72, 65, 0, 8, 197, 52, 85, 20, 21, 32, 65, 16, 69, 77, 2,
-			68, 21, 32, 89, 48, 6, 117, 72, 36, 14, 16, 0, 9, 197, 76, 149, 20, 21, 32, 65, 47, 9, 197, 76, 148, 212, 21, 32, 65, 47,
-			9, 197, 76, 85, 20, 21, 32, 65, 47, 8, 197, 72, 18, 68, 21, 32, 65, 9, 197, 64, 244, 212, 21, 32, 65, 47, 9, 197, 52, 148,
-			212, 21, 32, 65, 47, 9, 197, 24, 243, 4, 21, 32, 65, 47, 8, 197, 8, 149, 20, 21, 32, 65, 9, 198, 81, 32, 78, 76, 85, 20,
-			15, 8, 197, 77, 81, 200, 21, 32, 65, 8, 197, 64, 243, 4, 21, 32, 15, 8, 197, 56, 148, 16, 85, 32, 66, 8, 197, 48, 85, 20,
-			21, 32, 15, 8, 197, 37, 51, 194, 5, 32, 66, 8, 197, 28, 19, 66, 5, 32, 65, 8, 197, 12, 243, 12, 21, 32, 15, 0, 11, 200,
-			64, 21, 15, 28, 83, 133, 76, 144, 67, 11, 200, 53, 85, 1, 28, 83, 133, 76, 144, 67, 12, 200, 48, 84, 9, 48, 83, 85, 72, 80,
-			67, 15, 10, 199, 36, 229, 18, 60, 67, 212, 80, 16, 0, 9, 198, 12, 244, 5, 73, 66, 78, 67, 6, 195, 52, 246, 154, 16, 9, 198,
-			12, 20, 148, 61, 50, 64, 15, 0, 6, 195, 80, 16, 149, 66, 9, 198, 12, 244, 132, 60, 115, 9, 15, 8, 197, 12, 194, 80, 20, 240,
-			65, 10, 199, 8, 20, 137, 12, 83, 148, 72, 15, 0, 9, 198, 77, 1, 71, 56, 84, 140, 65, 14, 4, 95, 115, 117, 112, 6, 35, 48,
-			37, 76, 36, 15, 0, 9, 197, 48, 85, 129, 57, 160, 65, 15, 8, 197, 8, 84, 207, 105, 160, 16, 0, 13, 4, 95, 115, 116, 107, 71,
-			6, 35, 51, 16, 35, 0, 8, 197, 76, 49, 80, 76, 144, 15, 8, 197, 52, 147, 69, 76, 144, 15, 11, 200, 36, 209, 78, 61, 69, 5,
-			72, 144, 15, 11, 200, 21, 65, 82, 61, 69, 5, 72, 144, 15, 11, 200, 12, 243, 5, 61, 69, 5, 72, 144, 15, 7, 196, 9, 35, 204,
-			48, 16, 0, 9, 198, 16, 148, 5, 56, 65, 82, 66, 9, 198, 12, 243, 147, 36, 65, 82, 66, 9, 198, 40, 83, 142, 36, 97, 82, 65,
-			9, 198, 28, 19, 135, 77, 65, 82, 65, 9, 198, 21, 132, 12, 61, 33, 82, 66, 10, 198, 81, 33, 86, 21, 34, 64, 65, 15, 9, 198,
-			72, 149, 133, 72, 33, 82, 66, 9, 198, 36, 228, 213, 9, 34, 64, 65, 9, 198, 36, 228, 197, 81, 66, 64, 15, 0, 9, 198, 12, 20,
-			9, 80, 243, 9, 66, 6, 194, 36, 224, 76, 46, 5, 194, 60, 32, 15, 6, 195, 24, 244, 146, 16, 0, 10, 199, 12, 243, 134, 36, 64,
-			84, 36, 66, 9, 67, 92, 80, 128, 58, 109, 71, 0, 6, 195, 72, 240, 128, 15, 6, 195, 8, 240, 128, 15, 0, 10, 199, 36, 65, 78,
-			80, 146, 201, 80, 68, 0, 8, 197, 64, 20, 146, 60, 48, 65, 8, 197, 48, 244, 147, 36, 48, 16, 8, 197, 48, 84, 211, 36, 48, 15,
-			8, 197, 12, 20, 212, 36, 112, 66, 0, 13, 68, 20, 193, 78, 4, 6, 109, 55, 109, 50, 35, 0, 7, 196, 24, 244, 212, 20, 77, 7,
-			196, 52, 83, 148, 20, 16, 7, 196, 25, 35, 196, 20, 15, 0, 14, 69, 76, 244, 8, 36, 16, 89, 110, 83, 6, 37, 35, 0, 8, 197,
-			52, 241, 5, 56, 16, 65, 8, 197, 4, 209, 76, 36, 16, 66, 10, 69, 28, 243, 199, 48, 80, 21, 0, 47, 8, 197, 88, 244, 212, 72,
-			80, 76, 8, 197, 56, 244, 212, 72, 80, 76, 6, 195, 77, 80, 64, 76, 12, 201, 88, 147, 12, 5, 50, 77, 37, 84, 192, 69, 8, 197,
-			76, 147, 132, 36, 16, 66, 6, 195, 76, 80, 128, 15, 9, 197, 76, 51, 210, 104, 80, 66, 15, 8, 197, 76, 19, 132, 36, 16, 66, 17,
-			206, 72, 243, 66, 36, 51, 211, 36, 67, 196, 20, 48, 69, 17, 32, 15, 8, 197, 60, 209, 76, 36, 16, 67, 7, 196, 36, 224, 213, 8,
-			65, 8, 197, 24, 83, 20, 72, 80, 16, 8, 197, 12, 244, 142, 20, 16, 65, 6, 195, 12, 80, 128, 15, 8, 197, 4, 65, 15, 52, 80,
-			15, 0, 8, 196, 52, 17, 207, 28, 66, 15, 0, 7, 196, 84, 35, 204, 16, 15, 6, 195, 64, 241, 9, 15, 6, 195, 61, 35, 0, 16,
-			12, 200, 29, 32, 78, 60, 195, 5, 73, 48, 67, 16, 0, 7, 196, 76, 83, 154, 4, 77, 7, 196, 88, 84, 132, 20, 16, 10, 199, 64,
-			84, 137, 77, 64, 83, 36, 66, 10, 199, 52, 85, 1, 77, 64, 83, 36, 66, 9, 198, 12, 20, 146, 60, 64, 78, 66, 0, 8, 197, 64,
-			21, 18, 36, 16, 65, 16, 69, 85, 1, 1, 80, 80, 35, 48, 15, 72, 6, 36, 37, 47, 0, 8, 197, 81, 34, 65, 16, 80, 65, 8,
-			197, 64, 83, 15, 64, 80, 65, 8, 197, 61, 99, 214, 36, 16, 67, 8, 197, 37, 35, 206, 36, 16, 67, 8, 197, 36, 194, 65, 16, 80,
-			66, 8, 197, 28, 149, 82, 36, 16, 66, 7, 196, 28, 83, 73, 56, 65, 8, 197, 24, 81, 5, 48, 80, 16, 8, 197, 20, 113, 82, 36,
-			16, 66, 8, 197, 17, 34, 65, 16, 80, 65, 8, 197, 12, 129, 79, 64, 80, 65, 8, 197, 8, 17, 9, 48, 80, 66, 0, 0, 8, 197,
-			53, 85, 1, 56, 240, 65, 9, 197, 5, 97, 77, 52, 240, 78, 32, 7, 196, 80, 83, 80, 48, 15, 0, 10, 199, 72, 144, 66, 36, 194,
-			84, 4, 67, 10, 199, 80, 19, 12, 60, 98, 84, 20, 66, 10, 199, 76, 21, 5, 48, 194, 84, 20, 66, 7, 196, 72, 243, 154, 36, 66,
-			7, 196, 72, 240, 130, 36, 15, 7, 196, 72, 16, 130, 36, 66, 10, 199, 12, 243, 80, 61, 50, 84, 20, 66, 7, 196, 8, 240, 130, 36,
-			15, 0, 8, 197, 24, 16, 197, 88, 144, 78, 6, 195, 77, 81, 64, 76, 8, 197, 80, 21, 1, 72, 144, 65, 11, 200, 77, 84, 5, 73,
-			53, 9, 80, 80, 66, 8, 197, 36, 225, 133, 72, 144, 65, 11, 200, 25, 32, 84, 21, 35, 137, 80, 16, 68, 11, 200, 20, 211, 196, 36,
-			19, 9, 76, 144, 67, 8, 197, 4, 210, 68, 20, 144, 67, 0, 11, 70, 24, 19, 148, 5, 54, 64, 21, 0, 47, 13, 201, 52, 144, 210,
-			61, 52, 15, 73, 83, 64, 66, 15, 9, 198, 28, 197, 67, 61, 50, 64, 15, 9, 198, 16, 147, 195, 21, 50, 64, 66, 9, 198, 13, 33,
-			77, 37, 50, 64, 65, 0, 8, 197, 44, 147, 79, 56, 240, 66, 7, 195, 56, 83, 0, 76, 46, 9, 198, 72, 20, 19, 60, 66, 65, 67,
-			9, 198, 65, 35, 198, 21, 162, 65, 67, 6, 195, 56, 83, 0, 16, 9, 198, 52, 241, 5, 77, 66, 65, 66, 9, 198, 24, 84, 137, 80,
-			242, 65, 16, 9, 198, 20, 229, 1, 49, 2, 65, 67, 9, 198, 13, 35, 195, 21, 98, 65, 67, 12, 201, 12, 147, 145, 84, 19, 148, 21,
-			50, 77, 15, 9, 198, 12, 20, 208, 21, 34, 65, 66, 9, 198, 4, 195, 5, 29, 34, 65, 67, 0, 6, 194, 56, 80, 76, 46, 6, 194,
-			48, 144, 76, 46, 6, 194, 36, 240, 76, 46, 7, 196, 16, 17, 142, 36, 66, 0, 7, 196, 64, 242, 197, 72, 65, 8, 197, 76, 147, 21,
-			72, 144, 65, 8, 197, 72, 245, 1, 72, 144, 65, 7, 196, 65, 34, 79, 72, 16, 7, 196, 64, 193, 85, 72, 65, 7, 196, 52, 84, 197,
-			72, 65, 8, 197, 36, 228, 207, 52, 208, 16, 8, 197, 28, 84, 146, 20, 144, 66, 8, 197, 12, 21, 1, 72, 144, 65, 0, 9, 198, 53,
-			83, 214, 37, 66, 64, 66, 9, 198, 88, 147, 129, 88, 147, 0, 67, 9, 198, 77, 68, 143, 57, 162, 64, 15, 9, 198, 25, 84, 142, 5,
-			34, 64, 65, 9, 198, 8, 148, 212, 85, 34, 64, 65, 9, 198, 5, 48, 204, 21, 2, 64, 15, 0, 18, 70, 76, 147, 80, 5, 66, 69,
-			89, 37, 65, 48, 35, 47, 6, 37, 36, 0, 19, 70, 24, 84, 146, 61, 98, 69, 83, 109, 51, 16, 39, 84, 6, 37, 2, 109, 0, 10,
-			67, 69, 81, 73, 49, 122, 36, 57, 0, 9, 198, 65, 35, 199, 20, 226, 69, 15, 0, 9, 198, 36, 228, 207, 48, 149, 0, 66, 9, 198,
-			36, 51, 211, 4, 81, 18, 15, 10, 198, 12, 19, 21, 52, 85, 0, 67, 16, 0, 8, 196, 72, 17, 1, 72, 65, 47, 7, 196, 61, 33,
-			5, 72, 65, 6, 195, 77, 82, 64, 76, 10, 67, 13, 82, 64, 49, 6, 40, 57, 0, 7, 196, 80, 21, 1, 72, 65, 10, 199, 80, 20,
-			211, 4, 209, 84, 72, 66, 7, 196, 80, 20, 9, 72, 65, 8, 196, 64, 80, 207, 72, 65, 15, 7, 196, 64, 21, 5, 72, 65, 10, 199,
-			61, 37, 15, 12, 83, 148, 72, 15, 10, 199, 52, 85, 1, 12, 83, 148, 72, 15, 7, 196, 36, 229, 133, 72, 16, 7, 196, 36, 225, 133,
-			72, 65, 7, 196, 12, 144, 197, 72, 65, 7, 196, 5, 52, 207, 72, 65, 7, 196, 5, 33, 1, 72, 65, 0, 8, 196, 76, 85, 133, 76,
-			65, 15, 6, 195, 52, 83, 148, 16, 6, 195, 52, 83, 148, 16, 6, 195, 12, 84, 16, 16, 9, 198, 8, 84, 148, 36, 243, 0, 66, 9,
-			198, 4, 84, 143, 76, 243, 0, 67, 0, 7, 196, 36, 225, 84, 80, 15, 0, 10, 199, 65, 33, 86, 20, 65, 82, 20, 67, 19, 71, 36,
-			225, 197, 28, 225, 82, 20, 37, 50, 75, 36, 67, 6, 109, 51, 36, 0, 11, 199, 5, 67, 79, 76, 97, 82, 20, 67, 15, 22, 4, 95,
-			99, 105, 114, 76, 37, 38, 14, 16, 49, 39, 50, 83, 55, 6, 36, 89, 89, 39, 0, 10, 199, 76, 85, 20, 20, 208, 146, 20, 15, 9,
-			198, 65, 33, 83, 80, 149, 0, 65, 10, 199, 64, 84, 137, 25, 32, 83, 36, 66, 10, 199, 64, 20, 129, 25, 32, 83, 36, 66, 11, 199,
-			8, 83, 22, 20, 65, 82, 20, 67, 16, 0, 10, 199, 80, 85, 18, 4, 209, 84, 72, 66, 7, 196, 64, 17, 201, 56, 65, 8, 196, 12,
-			21, 5, 56, 66, 16, 6, 195, 8, 243, 128, 15, 0, 12, 201, 5, 4, 1, 73, 65, 78, 21, 33, 64, 68, 15, 4, 95, 48, 77, 52,
-			71, 37, 55, 37, 6, 39, 50, 37, 0, 9, 198, 76, 83, 73, 72, 85, 20, 15, 9, 198, 76, 51, 210, 72, 85, 20, 15, 12, 201, 64,
-			244, 148, 61, 97, 78, 21, 33, 64, 15, 11, 200, 64, 243, 1, 72, 147, 69, 81, 32, 67, 9, 198, 64, 20, 129, 64, 85, 20, 15, 11,
-			200, 21, 52, 15, 76, 147, 69, 81, 32, 67, 11, 200, 12, 19, 15, 72, 147, 69, 81, 32, 67, 0, 8, 197, 16, 19, 137, 48, 240, 66,
-			9, 198, 81, 34, 67, 21, 50, 77, 15, 7, 196, 77, 65, 76, 48, 16, 9, 198, 64, 243, 9, 13, 35, 205, 66, 12, 201, 21, 51, 211,
-			12, 129, 76, 21, 68, 128, 67, 9, 198, 4, 208, 90, 104, 243, 133, 66, 10, 199, 4, 52, 85, 20, 67, 212, 80, 16, 0, 19, 70, 4,
-			198, 133, 36, 209, 82, 35, 55, 123, 6, 35, 37, 65, 36, 14, 16, 0, 9, 198, 81, 84, 142, 61, 97, 82, 66, 10, 198, 72, 84, 15,
-			73, 65, 82, 66, 47, 9, 198, 65, 83, 12, 61, 97, 82, 66, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6, 39, 50, 37, 0, 12,
-			201, 88, 83, 148, 72, 147, 15, 69, 83, 192, 66, 0, 11, 200, 16, 83, 9, 57, 21, 69, 72, 80, 66, 8, 197, 64, 20, 137, 28, 144,
-			66, 6, 195, 56, 243, 128, 76, 8, 197, 28, 83, 133, 76, 144, 65, 16, 4, 95, 48, 77, 51, 65, 37, 55, 37, 6, 35, 51, 72, 37,
-			0, 8, 197, 76, 147, 148, 60, 208, 65, 6, 195, 76, 83, 128, 16, 8, 197, 72, 144, 143, 76, 144, 15, 8, 197, 64, 243, 80, 20, 144,
-			66, 8, 197, 60, 211, 137, 84, 208, 15, 6, 195, 56, 243, 128, 15, 8, 197, 52, 20, 133, 52, 208, 16, 11, 200, 52, 19, 9, 56, 53,
-			79, 72, 80, 15, 8, 197, 48, 148, 1, 72, 144, 65, 6, 195, 24, 243, 128, 15, 8, 197, 12, 243, 147, 12, 144, 15, 8, 197, 12, 147,
-			137, 76, 144, 65, 6, 195, 12, 83, 128, 16, 8, 197, 9, 83, 20, 20, 144, 66, 11, 200, 8, 21, 20, 36, 53, 79, 72, 80, 15, 8,
-			197, 5, 84, 207, 56, 144, 15, 0, 12, 201, 88, 145, 5, 60, 48, 77, 21, 32, 64, 68, 9, 198, 104, 19, 66, 21, 50, 64, 15, 9,
-			198, 76, 147, 80, 61, 50, 64, 15, 9, 198, 61, 37, 5, 57, 50, 64, 15, 9, 198, 52, 19, 142, 61, 50, 64, 15, 9, 198, 16, 145,
-			82, 21, 50, 64, 65, 9, 198, 12, 243, 131, 21, 50, 64, 15, 0, 8, 197, 61, 53, 1, 56, 240, 66, 11, 67, 52, 83, 149, 65, 109,
-			50, 6, 40, 0, 12, 4, 95, 48, 77, 49, 65, 6, 37, 55, 35, 0, 0, 6, 195, 104, 80, 146, 15, 7, 196, 65, 35, 218, 36, 66,
-			5, 194, 60, 64, 15, 10, 199, 12, 20, 142, 37, 99, 210, 36, 66, 7, 196, 5, 52, 18, 36, 66, 0, 8, 197, 36, 212, 1, 72, 144,
-			65, 11, 200, 9, 83, 206, 5, 36, 143, 80, 144, 15, 8, 197, 8, 21, 78, 20, 144, 67, 0, 24, 70, 76, 81, 213, 37, 66, 64, 89,
-			36, 81, 58, 6, 37, 47, 37, 15, 72, 35, 0, 81, 100, 97, 32, 13, 202, 52, 243, 148, 20, 114, 79, 72, 64, 78, 60, 68, 9, 198,
-			81, 33, 86, 37, 34, 64, 65, 9, 198, 80, 84, 129, 64, 85, 84, 67, 9, 198, 64, 244, 212, 21, 34, 64, 65, 9, 198, 64, 18, 12,
-			5, 98, 64, 65, 9, 198, 52, 86, 133, 57, 162, 64, 15, 0, 9, 198, 88, 244, 129, 28, 147, 137, 66, 9, 198, 25, 83, 7, 20, 230,
-			137, 15, 0, 10, 199, 76, 21, 5, 48, 194, 84, 36, 66, 6, 195, 61, 97, 82, 65, 7, 196, 76, 19, 79, 4, 15, 7, 196, 28, 227,
-			205, 20, 15, 13, 68, 9, 81, 201, 20, 71, 40, 75, 7, 37, 36, 0, 0, 6, 195, 52, 20, 143, 66, 6, 195, 52, 20, 143, 15, 6,
-			195, 24, 244, 128, 16, 6, 195, 12, 84, 128, 16, 6, 195, 12, 84, 128, 16, 0, 0, 12, 71, 52, 16, 201, 57, 67, 211, 32, 21, 0,
-			47, 9, 198, 24, 16, 197, 88, 21, 5, 67, 9, 198, 37, 51, 195, 72, 21, 5, 66, 8, 197, 36, 229, 18, 36, 112, 66, 0, 5, 194,
-			61, 64, 15, 10, 199, 61, 2, 83, 80, 241, 15, 52, 67, 12, 200, 52, 243, 148, 20, 209, 83, 60, 192, 67, 15, 10, 199, 52, 144, 210,
-			60, 51, 211, 52, 15, 9, 198, 48, 83, 208, 60, 193, 0, 15, 9, 198, 37, 51, 204, 4, 35, 206, 15, 0, 18, 4, 95, 108, 105, 103,
-			55, 4, 36, 81, 35, 47, 6, 40, 12, 51, 35, 0, 8, 197, 64, 147, 1, 16, 80, 65, 8, 197, 25, 80, 201, 48, 80, 66, 6, 195,
-			8, 245, 128, 15, 6, 195, 8, 245, 128, 15, 9, 198, 4, 113, 83, 36, 192, 79, 68, 0, 13, 70, 8, 244, 132, 20, 21, 88, 21, 102,
-			114, 0, 47, 0, 9, 198, 29, 32, 84, 84, 149, 1, 66, 8, 196, 12, 81, 129, 48, 65, 15, 0, 7, 196, 61, 69, 9, 52, 65, 8,
-			197, 80, 145, 80, 60, 192, 15, 9, 198, 80, 84, 146, 4, 227, 214, 15, 7, 196, 76, 50, 5, 52, 15, 7, 196, 65, 34, 65, 52, 65,
-			8, 197, 64, 147, 154, 60, 192, 66, 10, 199, 64, 20, 133, 56, 50, 9, 52, 15, 7, 196, 61, 69, 9, 52, 15, 9, 198, 24, 244, 211,
-			4, 227, 214, 15, 10, 199, 24, 83, 77, 36, 226, 76, 20, 67, 0, 16, 69, 64, 245, 18, 4, 144, 48, 39, 47, 14, 16, 6, 35, 57,
-			0, 8, 197, 76, 99, 199, 28, 144, 15, 8, 197, 76, 83, 5, 56, 144, 15, 6, 195, 56, 245, 128, 15, 8, 197, 52, 19, 132, 20, 144,
-			66, 8, 197, 16, 83, 5, 8, 144, 15, 8, 197, 12, 147, 133, 76, 144, 15, 11, 200, 5, 85, 5, 57, 66, 67, 32, 80, 15, 0, 10,
-			199, 52, 244, 141, 61, 32, 78, 60, 65, 10, 199, 16, 149, 133, 57, 66, 78, 60, 66, 10, 199, 16, 85, 5, 77, 64, 78, 60, 66, 10,
-			199, 12, 243, 80, 21, 64, 78, 60, 66, 10, 199, 5, 36, 133, 77, 66, 78, 60, 66, 0, 15, 69, 76, 50, 65, 56, 240, 91, 6, 37,
-			38, 35, 50, 39, 0, 9, 198, 85, 53, 1, 76, 50, 65, 65, 11, 200, 80, 84, 129, 64, 85, 84, 36, 48, 67, 10, 199, 76, 245, 20,
-			61, 3, 211, 80, 16, 7, 196, 73, 80, 133, 48, 66, 9, 198, 72, 245, 133, 76, 50, 65, 15, 11, 200, 12, 144, 204, 60, 52, 143, 77,
-			48, 67, 9, 198, 4, 229, 9, 88, 20, 137, 66, 13, 201, 4, 211, 137, 60, 49, 78, 80, 84, 201, 68, 15, 19, 70, 4, 195, 208, 20,
-			50, 65, 35, 55, 39, 48, 36, 76, 6, 37, 12, 35, 0, 9, 198, 4, 192, 200, 36, 210, 65, 66, 0, 6, 194, 52, 144, 76, 46, 9,
-			198, 88, 147, 12, 5, 51, 210, 67, 7, 196, 72, 244, 211, 36, 16, 9, 198, 65, 35, 201, 21, 69, 0, 15, 9, 198, 65, 35, 196, 61,
-			69, 0, 16, 10, 199, 52, 148, 129, 24, 147, 210, 36, 16, 8, 197, 52, 145, 15, 48, 192, 16, 9, 198, 13, 35, 205, 60, 99, 210, 66,
-			9, 198, 12, 20, 144, 60, 99, 210, 66, 0, 14, 68, 80, 147, 69, 72, 47, 6, 117, 65, 36, 14, 16, 0, 9, 198, 88, 145, 5, 61,
-			65, 67, 15, 7, 196, 80, 19, 65, 72, 65, 11, 200, 64, 20, 146, 60, 48, 200, 36, 16, 15, 11, 200, 60, 194, 71, 5, 32, 200, 36,
-			16, 68, 7, 196, 56, 85, 84, 72, 65, 9, 198, 52, 20, 211, 5, 35, 211, 15, 9, 198, 28, 148, 19, 61, 65, 67, 15, 6, 195, 28,
-			86, 128, 16, 9, 198, 20, 209, 82, 61, 65, 67, 15, 9, 198, 16, 148, 195, 61, 65, 67, 15, 7, 196, 16, 147, 69, 72, 65, 7, 196,
-			16, 19, 65, 72, 65, 0, 12, 201, 69, 80, 68, 72, 145, 143, 28, 194, 64, 15, 10, 199, 52, 245, 15, 13, 35, 211, 76, 67, 9, 198,
-			28, 192, 68, 36, 243, 0, 66, 6, 195, 12, 244, 20, 15, 10, 199, 9, 33, 78, 80, 243, 137, 12, 16, 0, 9, 197, 16, 19, 12, 5,
-			48, 65, 41, 9, 198, 12, 148, 131, 84, 149, 9, 66, 9, 198, 60, 224, 207, 28, 83, 137, 67, 9, 198, 52, 243, 143, 24, 244, 128, 66,
-			12, 201, 52, 144, 210, 60, 49, 70, 4, 194, 65, 69, 11, 200, 52, 81, 193, 21, 51, 198, 4, 112, 68, 9, 198, 48, 243, 137, 12, 84,
-			128, 66, 14, 203, 36, 195, 21, 52, 147, 143, 80, 80, 206, 36, 48, 15, 8, 197, 28, 243, 129, 73, 48, 66, 6, 195, 21, 21, 73, 15,
-			9, 198, 16, 144, 83, 64, 244, 128, 66, 12, 201, 12, 147, 145, 84, 81, 143, 28, 194, 69, 15, 0, 12, 201, 88, 149, 15, 72, 50, 9,
-			4, 227, 192, 68, 10, 199, 24, 83, 77, 36, 226, 76, 36, 67, 10, 199, 12, 21, 1, 48, 241, 200, 36, 66, 10, 199, 104, 20, 15, 80,
-			80, 200, 36, 15, 10, 199, 72, 19, 143, 12, 50, 9, 4, 15, 11, 199, 64, 243, 9, 56, 84, 201, 4, 67, 15, 10, 199, 52, 243, 129,
-			72, 50, 9, 4, 67, 10, 199, 52, 86, 154, 4, 68, 137, 4, 67, 10, 199, 4, 209, 84, 72, 244, 9, 4, 68, 0, 10, 199, 29, 32,
-			86, 36, 209, 84, 72, 66, 7, 196, 21, 53, 5, 72, 65, 7, 196, 21, 49, 68, 72, 15, 0, 21, 72, 56, 243, 73, 56, 21, 9, 60,
-			224, 50, 39, 65, 126, 50, 6, 36, 91, 39, 50, 0, 9, 198, 12, 244, 148, 37, 51, 204, 67, 6, 195, 12, 244, 148, 16, 9, 198, 9,
-			85, 1, 56, 243, 0, 67, 0, 9, 198, 16, 80, 193, 16, 84, 133, 67, 9, 198, 5, 101, 129, 48, 84, 133, 67, 9, 198, 4, 48, 193,
-			16, 84, 133, 67, 8, 196, 88, 83, 133, 80, 65, 15, 10, 199, 81, 84, 130, 60, 113, 84, 80, 15, 9, 198, 76, 19, 80, 21, 148, 133,
-			66, 7, 196, 65, 33, 84, 80, 15, 7, 196, 64, 20, 143, 64, 15, 0, 17, 71, 12, 128, 77, 64, 17, 206, 20, 91, 35, 65, 48, 6,
-			35, 67, 0, 10, 199, 80, 84, 212, 36, 211, 206, 20, 15, 9, 198, 80, 83, 195, 72, 149, 0, 66, 9, 198, 12, 19, 69, 72, 245, 0,
-			15, 9, 198, 4, 208, 68, 21, 84, 192, 16, 0, 11, 200, 13, 84, 146, 36, 53, 76, 84, 208, 66, 6, 195, 104, 243, 128, 15, 0, 0,
-			8, 197, 12, 243, 148, 72, 240, 65, 9, 197, 53, 81, 199, 36, 240, 66, 15, 8, 197, 28, 197, 84, 20, 240, 65, 0, 7, 196, 80, 245,
-			5, 52, 15, 6, 195, 24, 244, 142, 16, 7, 196, 4, 211, 210, 36, 16, 0, 10, 198, 64, 19, 13, 5, 33, 83, 67, 15, 11, 200, 36,
-			224, 213, 73, 50, 79, 56, 80, 15, 15, 69, 21, 53, 1, 76, 144, 6, 109, 89, 47, 35, 88, 37, 0, 0, 10, 199, 72, 145, 78, 81,
-			32, 78, 60, 66, 10, 199, 5, 4, 18, 61, 98, 78, 60, 66, 7, 196, 16, 19, 12, 60, 76, 9, 198, 76, 147, 134, 37, 50, 64, 65,
-			9, 198, 69, 80, 68, 73, 84, 12, 65, 9, 198, 65, 35, 212, 21, 50, 64, 65, 9, 198, 37, 3, 212, 21, 50, 64, 66, 9, 198, 16,
-			144, 84, 21, 50, 64, 66, 0, 8, 197, 61, 38, 129, 56, 240, 66, 6, 195, 5, 100, 155, 76, 9, 198, 81, 34, 83, 76, 147, 128, 65,
-			9, 198, 64, 148, 143, 88, 19, 128, 66, 9, 198, 64, 84, 147, 36, 19, 128, 67, 9, 198, 52, 81, 193, 24, 243, 128, 66, 8, 197, 48,
-			145, 206, 20, 240, 65, 9, 198, 4, 197, 1, 48, 83, 128, 16, 0, 14, 67, 85, 49, 82, 6, 57, 40, 89, 36, 14, 16, 0, 47, 9,
-			198, 20, 48, 197, 81, 67, 192, 8, 9, 198, 4, 48, 197, 81, 67, 192, 15, 0, 8, 197, 80, 83, 129, 12, 144, 66, 11, 200, 77, 84,
-			5, 73, 53, 9, 80, 144, 66, 6, 195, 84, 144, 192, 13, 8, 197, 72, 81, 9, 56, 144, 65, 6, 195, 28, 80, 192, 15, 8, 197, 4,
-			97, 143, 72, 144, 65, 8, 197, 4, 50, 5, 56, 144, 15, 0, 10, 199, 72, 148, 213, 49, 66, 78, 60, 66, 10, 199, 65, 33, 80, 5,
-			32, 78, 60, 66, 20, 71, 48, 145, 86, 37, 66, 78, 60, 55, 37, 6, 109, 84, 37, 47, 37, 50, 39, 0, 9, 198, 76, 20, 211, 5,
-			34, 64, 65, 10, 199, 4, 225, 15, 73, 32, 78, 60, 67, 10, 199, 52, 83, 15, 29, 32, 78, 60, 67, 9, 198, 76, 147, 133, 17, 34,
-			64, 15, 9, 198, 9, 83, 7, 5, 34, 64, 65, 0, 11, 200, 5, 4, 15, 28, 114, 65, 56, 240, 66, 7, 196, 4, 97, 137, 16, 66,
-			11, 200, 29, 32, 77, 76, 50, 65, 56, 240, 66, 11, 200, 24, 147, 1, 12, 50, 65, 56, 240, 67, 10, 199, 65, 33, 86, 20, 225, 9,
-			80, 66, 11, 200, 4, 208, 146, 61, 50, 65, 56, 240, 67, 7, 196, 60, 97, 137, 16, 15, 0, 13, 68, 61, 101, 137, 20, 6, 39, 84,
-			12, 37, 36, 0, 17, 70, 4, 48, 207, 84, 229, 0, 35, 49, 12, 6, 35, 122, 50, 47, 0, 6, 195, 85, 65, 82, 65, 10, 199, 56,
-			21, 70, 72, 17, 200, 36, 65, 6, 195, 52, 85, 18, 16, 7, 196, 24, 244, 131, 4, 16, 10, 199, 4, 116, 137, 24, 241, 204, 36, 15,
-			0, 10, 199, 72, 148, 18, 37, 53, 9, 56, 66, 10, 199, 52, 17, 206, 21, 68, 143, 56, 65, 0, 9, 198, 24, 20, 142, 21, 51, 204,
-			67, 0, 9, 198, 81, 33, 83, 21, 69, 5, 15, 7, 196, 4, 192, 133, 16, 15, 0, 13, 202, 12, 20, 212, 72, 245, 137, 48, 192, 82,
-			36, 67, 9, 198, 4, 225, 18, 60, 114, 78, 66, 0, 6, 195, 72, 241, 192, 15, 0, 9, 198, 9, 34, 65, 57, 163, 204, 67, 0, 14,
-			73, 5, 4, 12, 36, 48, 84, 36, 243, 128, 21, 0, 47, 9, 198, 5, 69, 9, 88, 149, 1, 68, 0, 7, 196, 16, 80, 201, 52, 65,
-			7, 196, 76, 240, 195, 36, 15, 10, 199, 52, 84, 197, 56, 50, 9, 52, 15, 0, 10, 199, 80, 149, 149, 12, 243, 15, 72, 67, 6, 195,
-			60, 209, 192, 13, 10, 198, 80, 84, 143, 48, 65, 71, 66, 15, 9, 198, 52, 145, 206, 4, 225, 71, 66, 9, 198, 52, 86, 154, 4, 225,
-			71, 66, 0, 10, 199, 16, 149, 133, 57, 64, 78, 60, 66, 10, 199, 5, 36, 133, 77, 64, 78, 60, 66, 10, 199, 25, 32, 83, 81, 83,
-			206, 60, 66, 14, 4, 95, 99, 101, 100, 76, 36, 72, 6, 37, 61, 35, 0, 0, 9, 198, 36, 195, 21, 52, 147, 128, 66, 9, 198, 20,
-			208, 82, 28, 147, 128, 66, 6, 195, 104, 243, 133, 16, 10, 198, 88, 145, 197, 88, 19, 128, 66, 15, 6, 195, 64, 83, 0, 16, 6, 195,
-			64, 83, 0, 16, 9, 198, 64, 81, 1, 88, 83, 128, 16, 10, 198, 61, 33, 193, 56, 243, 128, 65, 16, 9, 198, 52, 21, 1, 64, 19,
-			128, 67, 9, 198, 37, 51, 211, 64, 147, 128, 67, 11, 200, 28, 83, 195, 20, 229, 18, 36, 48, 15, 9, 198, 24, 83, 143, 52, 83, 128,
-			66, 9, 198, 21, 69, 1, 28, 243, 128, 66, 10, 198, 21, 4, 201, 48, 243, 128, 65, 15, 11, 200, 12, 243, 131, 20, 229, 18, 36, 48,
-			15, 9, 198, 8, 20, 137, 80, 243, 128, 66, 0, 24, 70, 76, 81, 213, 37, 67, 192, 89, 36, 81, 58, 6, 37, 47, 39, 15, 72, 35,
-			0, 81, 100, 97, 32, 9, 198, 76, 81, 213, 37, 67, 192, 36, 9, 198, 65, 33, 83, 21, 35, 192, 65, 13, 68, 49, 82, 71, 36, 55,
-			122, 6, 37, 75, 37, 0, 0, 11, 200, 77, 68, 129, 56, 117, 82, 36, 16, 67, 6, 195, 64, 81, 0, 15, 12, 200, 52, 144, 210, 60,
-			225, 83, 36, 16, 67, 15, 7, 195, 44, 20, 15, 66, 15, 11, 200, 37, 1, 82, 80, 84, 141, 36, 16, 68, 11, 200, 16, 83, 79, 13,
-			32, 90, 36, 16, 68, 11, 200, 13, 80, 149, 49, 65, 82, 36, 16, 67, 11, 200, 12, 21, 20, 37, 97, 82, 36, 16, 67, 10, 199, 8,
-			192, 83, 80, 244, 15, 72, 66, 11, 200, 4, 115, 210, 4, 99, 194, 36, 16, 69, 11, 200, 4, 34, 79, 81, 35, 198, 36, 16, 69, 0,
-			10, 199, 80, 243, 12, 21, 32, 78, 60, 65, 10, 199, 72, 148, 1, 73, 64, 78, 60, 66, 10, 199, 16, 80, 201, 25, 32, 78, 60, 66,
-			12, 201, 76, 245, 20, 61, 52, 5, 12, 145, 64, 15, 6, 195, 65, 33, 84, 15, 6, 195, 48, 85, 20, 15, 6, 195, 28, 85, 20, 15,
-			0, 9, 198, 65, 35, 211, 76, 147, 69, 65, 7, 132, 112, 105, 195, 185, 76, 7, 196, 80, 16, 201, 80, 65, 7, 196, 72, 80, 201, 80,
-			65, 8, 197, 32, 83, 12, 5, 48, 66, 9, 198, 21, 21, 65, 56, 147, 69, 66, 0, 10, 199, 64, 81, 15, 24, 147, 9, 4, 68, 10,
-			199, 56, 144, 207, 52, 81, 9, 4, 15, 10, 199, 37, 51, 212, 72, 244, 9, 4, 68, 9, 198, 5, 4, 15, 76, 149, 0, 66, 0, 23,
-			72, 16, 83, 79, 13, 32, 90, 36, 80, 72, 36, 65, 39, 49, 14, 16, 35, 123, 6, 37, 36, 0, 10, 199, 88, 19, 19, 5, 52, 201,
-			56, 66, 0, 15, 204, 81, 35, 205, 8, 240, 201, 80, 244, 5, 56, 144, 64, 70, 0, 7, 196, 88, 148, 201, 80, 65, 10, 199, 69, 80,
-			82, 80, 148, 143, 48, 67, 9, 198, 4, 229, 9, 80, 84, 201, 66, 7, 196, 4, 211, 5, 80, 15, 8, 197, 4, 64, 77, 5, 48, 67,
-			0, 10, 199, 72, 144, 197, 88, 84, 142, 20, 66, 0, 6, 195, 52, 147, 192, 76, 6, 195, 36, 35, 64, 13, 0, 17, 4, 95, 99, 97,
-			112, 65, 35, 57, 6, 40, 89, 49, 39, 55, 35, 0, 0, 7, 196, 36, 225, 137, 48, 66, 7, 196, 64, 245, 1, 48, 65, 13, 202, 12,
-			243, 148, 72, 244, 207, 28, 113, 84, 80, 15, 9, 198, 12, 243, 12, 61, 21, 73, 15, 0, 18, 70, 80, 81, 78, 4, 113, 82, 47, 37,
-			50, 6, 119, 75, 36, 14, 16, 0, 7, 196, 76, 244, 131, 36, 16, 9, 198, 36, 225, 197, 57, 83, 192, 15, 6, 195, 8, 244, 142, 16,
-			0, 10, 69, 76, 210, 76, 21, 144, 21, 0, 47, 9, 198, 8, 83, 12, 61, 97, 83, 15, 0, 9, 198, 37, 53, 9, 81, 82, 84, 68,
-			20, 71, 4, 195, 15, 57, 64, 78, 60, 35, 55, 12, 39, 50, 47, 6, 35, 50, 39, 0, 8, 196, 76, 245, 20, 60, 65, 16, 8, 196,
-			72, 243, 132, 60, 66, 15, 10, 198, 36, 224, 207, 28, 226, 84, 66, 15, 10, 198, 4, 48, 210, 20, 66, 84, 66, 16, 0, 9, 198, 8,
-			20, 212, 36, 19, 128, 66, 0, 9, 198, 24, 244, 211, 21, 35, 192, 77, 23, 3, 95, 194, 183, 48, 6, 40, 50, 47, 39, 15, 76, 36,
-			50, 47, 14, 16, 6, 35, 55, 36, 0, 5, 194, 60, 128, 15, 9, 198, 5, 3, 211, 81, 35, 198, 66, 0, 11, 200, 60, 97, 133, 73,
-			67, 199, 48, 144, 66, 21, 3, 95, 194, 180, 35, 76, 12, 6, 109, 50, 47, 39, 15, 35, 49, 6, 40, 47, 39, 0, 11, 200, 80, 244,
-			142, 4, 37, 79, 56, 144, 15, 6, 195, 72, 244, 192, 15, 11, 200, 64, 243, 148, 72, 83, 79, 48, 144, 66, 10, 199, 36, 229, 5, 72,
-			209, 90, 104, 15, 6, 195, 8, 244, 192, 15, 0, 10, 199, 72, 148, 213, 60, 224, 78, 60, 67, 11, 199, 72, 148, 197, 73, 98, 78, 60,
-			66, 16, 10, 199, 72, 145, 137, 85, 64, 78, 60, 66, 20, 71, 48, 145, 86, 37, 64, 78, 60, 55, 37, 6, 109, 84, 37, 47, 35, 50,
-			39, 0, 10, 199, 48, 19, 69, 57, 66, 78, 60, 66, 10, 199, 4, 195, 5, 28, 130, 78, 60, 66, 9, 198, 60, 115, 137, 80, 83, 80,
-			15, 13, 202, 52, 20, 129, 12, 19, 1, 28, 243, 137, 76, 15, 7, 196, 5, 81, 1, 12, 67, 9, 198, 5, 32, 200, 21, 66, 80, 66,
-			0, 11, 200, 73, 84, 212, 36, 50, 65, 56, 240, 67, 11, 200, 52, 243, 148, 36, 50, 65, 56, 240, 67, 11, 200, 8, 20, 137, 76, 50,
-			65, 56, 240, 67, 6, 131, 95, 195, 186, 43, 0, 8, 197, 52, 17, 18, 36, 64, 66, 8, 197, 80, 19, 12, 20, 64, 66, 7, 196, 76,
-			145, 86, 20, 15, 9, 198, 64, 193, 85, 72, 144, 192, 65, 9, 198, 60, 208, 133, 48, 144, 192, 67, 9, 198, 21, 21, 73, 88, 240, 192,
-			66, 9, 198, 16, 243, 69, 56, 144, 192, 16, 6, 195, 12, 85, 18, 16, 0, 12, 201, 36, 229, 5, 73, 97, 78, 28, 19, 143, 67, 12,
-			201, 24, 84, 146, 4, 115, 211, 80, 19, 143, 68, 26, 73, 52, 86, 154, 61, 51, 208, 72, 19, 143, 65, 36, 128, 12, 39, 89, 39, 48,
-			14, 16, 6, 35, 50, 39, 0, 6, 195, 12, 84, 192, 15, 0, 6, 131, 95, 195, 185, 43, 10, 199, 88, 83, 131, 21, 51, 1, 60, 67,
-			8, 197, 8, 20, 142, 4, 32, 65, 0, 9, 198, 56, 240, 195, 36, 243, 1, 66, 6, 195, 52, 147, 73, 66, 9, 198, 36, 68, 143, 48,
-			148, 201, 66, 9, 198, 36, 68, 143, 24, 240, 128, 66, 0, 23, 71, 64, 145, 82, 49, 82, 71, 36, 48, 37, 2, 36, 14, 16, 15, 55,
-			40, 6, 37, 75, 37, 0, 19, 71, 28, 144, 78, 49, 82, 71, 36, 75, 35, 50, 55, 40, 6, 37, 75, 37, 0, 7, 196, 52, 242, 82,
-			20, 67, 8, 197, 48, 19, 80, 4, 64, 65, 7, 196, 28, 245, 20, 4, 16, 13, 68, 12, 144, 78, 20, 76, 6, 37, 35, 50, 36, 0,
-			0, 12, 201, 9, 35, 195, 12, 244, 212, 20, 195, 0, 16, 0, 18, 70, 28, 83, 210, 28, 144, 64, 75, 109, 6, 39, 12, 14, 16, 75,
-			35, 0, 9, 198, 28, 83, 133, 76, 144, 64, 66, 10, 198, 4, 193, 83, 76, 144, 64, 66, 41, 17, 70, 24, 147, 15, 88, 144, 64, 83,
-			37, 55, 39, 84, 6, 125, 35, 0, 9, 198, 88, 80, 195, 32, 144, 64, 15, 9, 198, 88, 19, 5, 72, 144, 64, 66, 9, 198, 81, 84,
-			131, 32, 144, 64, 66, 9, 198, 80, 85, 20, 60, 144, 64, 16, 9, 198, 76, 50, 79, 88, 144, 64, 66, 9, 198, 72, 244, 193, 48, 144,
-			64, 67, 9, 198, 64, 149, 5, 12, 144, 64, 15, 9, 198, 64, 20, 129, 88, 144, 64, 67, 9, 198, 52, 20, 207, 88, 144, 64, 15, 9,
-			198, 24, 244, 195, 32, 144, 64, 66, 9, 198, 12, 240, 195, 32, 144, 64, 15, 9, 198, 12, 84, 131, 32, 144, 64, 16, 8, 197, 12, 20,
-			131, 4, 224, 65, 9, 198, 5, 53, 18, 4, 112, 76, 66, 9, 198, 4, 195, 5, 48, 144, 64, 67, 9, 198, 4, 193, 83, 76, 144, 64,
-			67, 9, 198, 4, 48, 193, 16, 144, 64, 67, 9, 198, 4, 32, 129, 16, 144, 64, 67, 0, 22, 67, 12, 240, 193, 49, 4, 39, 49, 35,
-			49, 6, 39, 55, 35, 0, 81, 99, 111, 108, 97, 32, 6, 131, 95, 195, 178, 43, 9, 198, 76, 244, 137, 76, 243, 5, 66, 9, 198, 52,
-			20, 195, 32, 147, 5, 66, 9, 198, 36, 225, 133, 16, 83, 5, 16, 9, 198, 12, 19, 12, 36, 51, 5, 65, 9, 198, 4, 65, 82, 8,
-			19, 5, 66, 0, 6, 131, 95, 195, 179, 43, 0, 7, 195, 28, 229, 64, 13, 42, 6, 195, 81, 33, 83, 15, 6, 195, 81, 33, 83, 15,
-			0, 15, 204, 88, 83, 148, 37, 21, 65, 81, 68, 133, 76, 147, 64, 15, 8, 197, 12, 243, 132, 60, 224, 16, 0, 22, 3, 95, 194, 166,
-			71, 6, 35, 51, 16, 35, 15, 89, 48, 36, 123, 12, 6, 35, 47, 35, 0, 6, 195, 48, 243, 0, 15, 9, 198, 16, 147, 211, 13, 84,
-			137, 66, 0, 9, 198, 36, 224, 207, 73, 3, 210, 66, 9, 198, 12, 243, 12, 60, 51, 192, 65, 9, 198, 12, 243, 12, 4, 35, 210, 66,
-			9, 198, 72, 241, 18, 36, 115, 192, 66, 6, 194, 48, 240, 76, 46, 8, 197, 100, 18, 23, 20, 128, 66, 8, 197, 81, 32, 70, 36, 192,
-			66, 7, 196, 80, 84, 208, 36, 15, 9, 198, 77, 81, 134, 21, 69, 0, 15, 7, 196, 72, 243, 12, 36, 66, 7, 196, 64, 244, 16, 36,
-			16, 8, 197, 13, 33, 83, 60, 192, 66, 7, 196, 12, 243, 12, 36, 15, 0, 7, 196, 24, 16, 133, 72, 65, 6, 131, 95, 195, 172, 43,
-			6, 195, 48, 241, 0, 15, 10, 198, 12, 147, 133, 8, 246, 0, 67, 15, 0, 10, 199, 88, 147, 131, 60, 192, 78, 60, 65, 10, 199, 72,
-			149, 18, 61, 98, 78, 60, 66, 6, 131, 95, 195, 173, 43, 0, 11, 200, 12, 243, 134, 21, 35, 73, 56, 240, 66, 11, 200, 8, 242, 67,
-			61, 69, 9, 56, 240, 67, 11, 200, 4, 97, 146, 21, 69, 9, 56, 240, 66, 8, 197, 81, 33, 86, 21, 48, 15, 10, 199, 77, 1, 82,
-			52, 144, 201, 16, 67, 8, 197, 60, 34, 68, 61, 48, 16, 6, 195, 24, 244, 137, 66, 7, 195, 24, 244, 137, 15, 46, 7, 196, 21, 53,
-			5, 80, 15, 8, 197, 8, 147, 199, 5, 48, 67, 7, 196, 5, 53, 1, 80, 65, 0, 15, 70, 8, 80, 84, 48, 84, 192, 71, 126, 47,
-			39, 55, 89, 0, 21, 71, 64, 84, 137, 64, 86, 137, 20, 48, 36, 14, 16, 37, 48, 36, 123, 6, 37, 36, 0, 10, 199, 12, 21, 5,
-			28, 244, 137, 20, 68, 9, 198, 72, 83, 211, 80, 21, 0, 66, 6, 195, 72, 16, 66, 66, 9, 198, 64, 84, 137, 52, 85, 18, 66, 10,
-			198, 24, 193, 71, 36, 20, 192, 65, 15, 9, 198, 4, 197, 9, 52, 85, 18, 66, 0, 20, 67, 92, 81, 75, 58, 4, 37, 49, 10, 6,
-			36, 50, 72, 0, 81, 101, 110, 100, 32, 6, 131, 95, 195, 168, 43, 7, 196, 76, 147, 143, 72, 16, 6, 195, 48, 245, 0, 15, 6, 195,
-			36, 193, 79, 65, 7, 195, 28, 241, 207, 66, 15, 7, 196, 8, 22, 129, 72, 66, 0, 6, 131, 95, 195, 169, 43, 9, 198, 5, 84, 212,
-			72, 19, 0, 67, 0, 9, 198, 81, 34, 77, 21, 68, 128, 65, 7, 196, 76, 147, 69, 80, 15, 6, 195, 56, 83, 73, 15, 8, 197, 52,
-			17, 18, 5, 48, 66, 10, 198, 28, 83, 205, 21, 68, 128, 66, 15, 9, 198, 21, 48, 77, 21, 68, 128, 66, 0, 9, 198, 76, 84, 85,
-			4, 196, 192, 66, 10, 199, 76, 16, 210, 36, 193, 71, 36, 15, 10, 199, 65, 34, 86, 36, 193, 71, 36, 15, 6, 195, 64, 131, 206, 15,
-			10, 199, 8, 17, 206, 61, 33, 71, 36, 15, 0, 10, 199, 16, 241, 5, 12, 17, 68, 72, 15, 0, 0, 0, 7, 196, 88, 244, 199, 36,
-			15, 8, 197, 25, 32, 71, 60, 192, 65, 0, 10, 69, 16, 81, 74, 5, 144, 21, 0, 47, 6, 131, 95, 195, 160, 43, 7, 196, 76, 84,
-			133, 56, 16, 0, 9, 198, 8, 19, 131, 60, 208, 84, 65, 6, 131, 95, 195, 161, 43, 12, 201, 76, 84, 211, 4, 229, 5, 76, 147, 64,
-			15, 6, 195, 76, 51, 204, 16, 12, 201, 36, 225, 137, 56, 149, 5, 76, 147, 64, 15, 12, 201, 16, 144, 201, 61, 69, 5, 76, 147, 64,
-			15, 0, 6, 195, 76, 20, 155, 78, 11, 200, 64, 16, 137, 48, 195, 206, 37, 48, 15, 7, 196, 28, 19, 65, 48, 65, 10, 198, 8, 145,
-			78, 80, 147, 128, 65, 15, 9, 198, 8, 22, 65, 52, 243, 128, 67, 0, 9, 198, 56, 20, 195, 61, 53, 0, 16, 7, 196, 12, 244, 20,
-			36, 15, 0, 0, 24, 72, 56, 85, 211, 48, 85, 20, 21, 32, 50, 57, 40, 88, 55, 12, 6, 36, 47, 12, 36, 14, 16, 0, 19, 70,
-			36, 229, 5, 72, 225, 84, 6, 37, 50, 47, 36, 14, 16, 50, 109, 47, 0, 11, 200, 12, 243, 148, 72, 243, 12, 21, 32, 66, 11, 200,
-			52, 243, 148, 20, 51, 211, 5, 32, 67, 11, 200, 24, 83, 137, 12, 245, 20, 21, 32, 15, 11, 200, 8, 19, 5, 56, 245, 20, 21, 32,
-			15, 0, 6, 195, 60, 195, 73, 15, 6, 195, 8, 241, 77, 15, 0, 9, 198, 36, 224, 193, 64, 16, 192, 67, 9, 198, 88, 19, 19, 20,
-			48, 192, 16, 9, 198, 80, 83, 5, 52, 16, 192, 15, 8, 197, 72, 20, 19, 60, 64, 66, 8, 197, 72, 20, 19, 60, 64, 15, 9, 198,
-			65, 35, 211, 20, 48, 192, 16, 10, 199, 64, 80, 197, 56, 81, 200, 36, 15, 7, 196, 56, 147, 194, 20, 65, 9, 198, 36, 65, 78, 80,
-			144, 192, 15, 9, 198, 21, 84, 137, 48, 240, 192, 67, 10, 199, 12, 83, 148, 60, 48, 200, 36, 15, 7, 196, 12, 20, 146, 20, 66, 9,
-			198, 4, 229, 9, 48, 240, 192, 66, 9, 198, 4, 225, 137, 48, 240, 192, 66, 0, 7, 195, 21, 32, 64, 77, 46, 0, 17, 70, 52, 246,
-			137, 48, 192, 64, 65, 39, 128, 6, 37, 55, 12, 35, 0, 9, 198, 76, 51, 205, 60, 64, 64, 65, 7, 196, 76, 20, 129, 28, 65, 7,
-			196, 16, 84, 143, 28, 65, 8, 197, 8, 19, 194, 4, 32, 67, 0, 6, 195, 77, 35, 0, 13, 6, 195, 56, 243, 73, 15, 0, 10, 199,
-			76, 16, 210, 36, 98, 67, 36, 67, 11, 67, 52, 86, 154, 65, 6, 109, 128, 12, 0, 6, 195, 52, 86, 154, 15, 10, 199, 52, 19, 12,
-			60, 96, 71, 36, 66, 8, 197, 12, 243, 77, 60, 64, 15, 0, 7, 196, 64, 21, 9, 56, 65, 8, 196, 24, 83, 73, 56, 65, 16, 0,
-			9, 198, 36, 212, 5, 72, 144, 64, 66, 7, 196, 88, 84, 147, 60, 77, 9, 198, 88, 149, 15, 72, 144, 64, 16, 9, 198, 88, 144, 193,
-			72, 144, 64, 66, 9, 198, 88, 83, 129, 72, 144, 64, 67, 9, 198, 88, 19, 9, 28, 144, 64, 66, 9, 198, 84, 52, 143, 56, 144, 64,
-			67, 10, 198, 80, 148, 133, 76, 144, 64, 66, 15, 9, 198, 80, 84, 129, 64, 144, 64, 67, 9, 198, 77, 3, 199, 48, 144, 64, 15, 9,
-			198, 76, 147, 79, 56, 144, 64, 67, 10, 198, 76, 147, 5, 76, 144, 64, 66, 15, 18, 70, 76, 81, 5, 12, 144, 64, 89, 36, 72, 36,
-			76, 6, 37, 12, 35, 0, 9, 198, 76, 19, 65, 72, 144, 64, 67, 9, 198, 72, 244, 207, 48, 144, 64, 67, 10, 198, 64, 243, 5, 76,
-			144, 64, 66, 15, 9, 198, 64, 193, 83, 80, 144, 64, 65, 8, 197, 56, 245, 77, 20, 224, 66, 9, 198, 52, 243, 143, 16, 144, 64, 67,
-			10, 198, 52, 19, 5, 76, 144, 64, 66, 15, 9, 198, 28, 19, 5, 72, 144, 64, 66, 9, 198, 21, 81, 197, 56, 144, 64, 15, 9, 198,
-			21, 81, 143, 72, 144, 64, 68, 9, 198, 20, 208, 143, 48, 144, 64, 67, 9, 197, 16, 20, 137, 20, 224, 67, 16, 9, 198, 12, 243, 69,
-			16, 144, 64, 15, 8, 197, 12, 194, 77, 20, 224, 65, 9, 198, 5, 68, 143, 24, 144, 64, 67, 0, 12, 201, 84, 197, 18, 5, 65, 82,
-			72, 83, 128, 16, 6, 195, 12, 80, 193, 15, 0, 15, 69, 4, 149, 84, 4, 192, 35, 57, 6, 40, 47, 35, 55, 0, 7, 196, 37, 64,
-			76, 100, 65, 7, 196, 88, 81, 204, 36, 15, 8, 197, 77, 2, 71, 60, 192, 65, 7, 196, 76, 241, 204, 36, 15, 7, 196, 53, 81, 148,
-			36, 66, 8, 197, 21, 48, 200, 36, 192, 15, 9, 198, 16, 243, 3, 21, 69, 0, 16, 6, 195, 12, 241, 206, 15, 8, 197, 9, 37, 71,
-			60, 192, 65, 0, 8, 196, 76, 83, 15, 56, 66, 15, 7, 196, 48, 147, 73, 56, 65, 0, 8, 197, 80, 84, 141, 36, 224, 65, 8, 197,
-			21, 48, 77, 36, 224, 66, 10, 199, 12, 243, 1, 9, 35, 196, 60, 67, 8, 197, 64, 84, 132, 60, 224, 16, 0, 14, 69, 8, 16, 203,
-			85, 0, 71, 36, 49, 6, 35, 48, 0, 15, 67, 64, 16, 197, 21, 0, 47, 81, 109, 97, 107, 101, 114, 32, 9, 198, 80, 243, 20, 20,
-			50, 9, 15, 6, 195, 52, 243, 0, 15, 6, 195, 52, 243, 0, 15, 9, 198, 52, 19, 15, 12, 50, 9, 15, 0, 9, 66, 60, 176, 39,
-			49, 6, 118, 0, 9, 198, 81, 32, 68, 61, 69, 0, 16, 8, 66, 72, 80, 14, 16, 36, 0, 10, 66, 72, 80, 14, 16, 6, 109, 0,
-			41, 8, 197, 52, 19, 16, 20, 192, 16, 12, 201, 20, 225, 5, 12, 20, 201, 48, 192, 66, 68, 12, 201, 12, 19, 80, 60, 64, 82, 76,
-			81, 192, 67, 13, 202, 12, 19, 15, 49, 162, 79, 12, 244, 148, 20, 16, 8, 196, 8, 17, 204, 36, 66, 46, 0, 7, 196, 21, 52, 197,
-			72, 65, 7, 196, 61, 48, 193, 72, 65, 7, 196, 48, 20, 197, 72, 65, 7, 196, 81, 80, 133, 72, 65, 7, 196, 80, 84, 197, 72, 65,
-			7, 196, 61, 48, 193, 72, 15, 6, 195, 52, 241, 0, 15, 6, 195, 52, 241, 0, 15, 7, 196, 4, 192, 133, 72, 65, 0, 13, 202, 72,
-			20, 16, 72, 84, 197, 57, 66, 78, 60, 67, 15, 70, 52, 144, 200, 4, 83, 0, 65, 6, 117, 49, 110, 55, 0, 7, 196, 80, 84, 133,
-			76, 15, 7, 196, 77, 68, 133, 76, 15, 9, 198, 76, 243, 1, 72, 243, 0, 67, 9, 198, 64, 243, 9, 28, 19, 0, 66, 7, 196, 52,
-			244, 133, 76, 15, 7, 196, 12, 240, 129, 76, 15, 0, 18, 70, 36, 224, 85, 29, 84, 128, 37, 50, 6, 35, 122, 81, 40, 14, 16, 0,
-			0, 9, 198, 4, 225, 197, 48, 84, 192, 65, 25, 70, 12, 128, 82, 48, 84, 192, 21, 102, 114, 0, 47, 81, 98, 97, 117, 100, 101, 108,
-			97, 105, 114, 101, 32, 9, 198, 88, 243, 20, 52, 85, 18, 65, 10, 198, 80, 83, 5, 52, 85, 18, 66, 15, 9, 198, 76, 50, 5, 48,
-			85, 18, 65, 9, 198, 64, 20, 129, 52, 85, 18, 66, 10, 199, 64, 20, 129, 16, 148, 197, 4, 67, 6, 195, 52, 240, 66, 66, 9, 198,
-			36, 228, 85, 36, 85, 0, 15, 9, 198, 16, 244, 201, 52, 85, 18, 66, 9, 198, 5, 69, 9, 52, 148, 192, 65, 10, 199, 4, 229, 9,
-			4, 84, 133, 4, 67, 9, 198, 4, 229, 5, 72, 244, 192, 65, 0, 7, 195, 21, 34, 64, 77, 46, 6, 195, 52, 245, 0, 15, 6, 195,
-			52, 245, 0, 15, 17, 70, 24, 18, 67, 12, 130, 79, 83, 35, 6, 37, 49, 12, 37, 39, 0, 0, 9, 198, 16, 81, 9, 12, 19, 0,
-			65, 6, 195, 60, 34, 84, 65, 9, 198, 52, 85, 1, 56, 243, 0, 67, 7, 196, 24, 83, 137, 76, 16, 0, 0, 21, 71, 20, 209, 82,
-			28, 83, 131, 100, 36, 65, 6, 36, 14, 16, 75, 36, 50, 89, 37, 0, 9, 198, 52, 19, 16, 20, 228, 192, 16, 0, 6, 195, 104, 80,
-			195, 16, 6, 195, 80, 240, 195, 16, 6, 195, 76, 80, 195, 16, 6, 195, 72, 80, 195, 16, 8, 196, 61, 33, 9, 56, 65, 16, 6, 195,
-			48, 80, 195, 16, 6, 195, 12, 80, 195, 16, 6, 195, 8, 80, 195, 16, 0, 8, 197, 24, 20, 195, 36, 224, 65, 0, 12, 201, 76, 19,
-			22, 4, 67, 210, 20, 115, 128, 15, 9, 198, 69, 80, 82, 21, 50, 77, 16, 9, 198, 57, 85, 143, 48, 243, 133, 15, 9, 198, 52, 83,
-			15, 52, 19, 133, 66, 9, 198, 12, 21, 133, 16, 147, 133, 16, 9, 198, 4, 229, 9, 28, 243, 133, 66, 9, 198, 4, 50, 5, 52, 83,
-			133, 66, 0, 13, 70, 52, 243, 147, 36, 85, 82, 21, 102, 114, 0, 47, 8, 197, 77, 1, 67, 60, 192, 15, 13, 202, 16, 144, 201, 4,
-			227, 143, 88, 84, 201, 52, 15, 8, 197, 4, 192, 207, 60, 192, 65, 0, 11, 67, 64, 144, 67, 48, 57, 6, 35, 76, 0, 18, 70, 12,
-			245, 83, 12, 245, 83, 49, 4, 40, 89, 15, 49, 6, 40, 89, 0, 6, 195, 77, 83, 192, 76, 14, 3, 95, 194, 184, 76, 36, 72, 6,
-			37, 61, 37, 35, 0, 0, 8, 197, 20, 194, 77, 36, 224, 66, 14, 68, 4, 84, 133, 60, 35, 6, 109, 12, 51, 109, 39, 0, 8, 197,
-			80, 147, 137, 4, 224, 66, 6, 195, 80, 83, 204, 66, 6, 195, 64, 19, 204, 65, 12, 201, 20, 193, 84, 81, 35, 206, 88, 243, 20, 68,
-			8, 197, 16, 84, 205, 4, 224, 15, 8, 197, 8, 83, 148, 60, 224, 15, 0, 0, 10, 199, 77, 84, 5, 72, 98, 67, 20, 67, 12, 71,
-			20, 195, 209, 84, 83, 131, 20, 21, 0, 47, 10, 199, 64, 243, 148, 20, 98, 67, 20, 16, 10, 199, 12, 243, 147, 20, 194, 67, 20, 16,
-			10, 199, 12, 20, 142, 20, 98, 67, 20, 16, 10, 199, 5, 4, 5, 56, 66, 67, 20, 67, 0, 0, 11, 200, 12, 243, 80, 72, 83, 132,
-			21, 32, 66, 13, 72, 52, 19, 131, 32, 84, 212, 21, 32, 21, 0, 47, 11, 200, 64, 85, 18, 60, 194, 70, 21, 32, 67, 10, 199, 57,
-			83, 195, 12, 147, 206, 60, 15, 22, 72, 92, 147, 131, 32, 84, 212, 21, 32, 58, 37, 50, 76, 6, 36, 89, 47, 36, 14, 16, 0, 11,
-			200, 81, 84, 130, 60, 19, 2, 21, 32, 67, 11, 200, 20, 224, 78, 80, 147, 205, 21, 32, 68, 11, 200, 12, 243, 148, 72, 19, 2, 21,
-			32, 66, 0, 9, 198, 12, 243, 12, 60, 50, 9, 65, 10, 199, 64, 148, 201, 77, 68, 129, 80, 66, 7, 196, 64, 17, 207, 16, 15, 9,
-			198, 52, 150, 20, 20, 50, 9, 15, 9, 198, 52, 17, 206, 20, 230, 137, 15, 9, 198, 48, 21, 82, 20, 230, 137, 15, 10, 199, 24, 147,
-			15, 77, 68, 129, 80, 66, 8, 196, 12, 130, 79, 16, 66, 15, 9, 198, 4, 229, 9, 21, 35, 197, 15, 0, 12, 201, 72, 149, 133, 56,
-			66, 67, 4, 227, 192, 66, 12, 201, 72, 84, 212, 72, 147, 135, 4, 227, 192, 66, 12, 201, 36, 229, 5, 72, 84, 211, 4, 227, 192, 67,
-			12, 201, 16, 147, 69, 57, 66, 67, 4, 227, 192, 66, 12, 201, 12, 244, 212, 72, 147, 135, 4, 227, 192, 66, 12, 201, 12, 243, 148, 20,
-			212, 12, 4, 227, 192, 66, 12, 201, 12, 243, 132, 37, 98, 68, 4, 227, 192, 67, 12, 201, 12, 243, 131, 20, 229, 18, 4, 227, 192, 66,
-			12, 201, 76, 20, 129, 28, 246, 154, 4, 227, 192, 68, 12, 201, 65, 32, 83, 12, 244, 147, 4, 227, 192, 67, 7, 196, 4, 32, 137, 4,
-			76, 6, 195, 60, 196, 0, 13, 15, 4, 95, 103, 114, 118, 81, 14, 16, 6, 35, 12, 84, 36, 0, 7, 196, 80, 244, 211, 20, 16, 9,
-			198, 64, 147, 194, 8, 144, 192, 16, 7, 196, 61, 52, 201, 4, 66, 0, 0, 18, 70, 20, 225, 82, 28, 145, 64, 36, 50, 36, 14, 16,
-			75, 6, 37, 36, 0, 9, 198, 64, 243, 12, 36, 49, 64, 15, 9, 198, 21, 49, 81, 84, 145, 64, 15, 9, 198, 21, 2, 84, 60, 209,
-			64, 66, 9, 198, 16, 83, 148, 36, 49, 64, 15, 9, 198, 12, 240, 195, 36, 113, 64, 15, 0, 18, 70, 12, 242, 78, 12, 145, 5, 49,
-			110, 37, 50, 76, 6, 37, 72, 36, 0, 9, 198, 64, 19, 1, 52, 81, 5, 15, 9, 198, 28, 195, 212, 80, 145, 5, 15, 9, 198, 20,
-			228, 195, 32, 81, 5, 67, 9, 198, 12, 243, 3, 32, 145, 5, 15, 0, 13, 68, 4, 228, 201, 4, 6, 35, 50, 89, 37, 35, 0, 5,
-			194, 77, 64, 24, 9, 198, 24, 19, 13, 20, 229, 0, 15, 7, 196, 12, 244, 9, 4, 15, 7, 196, 4, 228, 201, 4, 65, 0, 0, 9,
-			198, 77, 80, 195, 84, 33, 64, 65, 10, 198, 76, 241, 143, 12, 193, 64, 65, 15, 8, 197, 24, 147, 195, 36, 224, 66, 10, 198, 24, 145,
-			83, 60, 193, 64, 65, 15, 9, 198, 24, 145, 78, 36, 193, 64, 66, 10, 198, 16, 145, 1, 12, 129, 64, 67, 15, 9, 198, 12, 83, 12,
-			60, 193, 64, 16, 8, 197, 4, 194, 77, 20, 224, 16, 9, 198, 4, 147, 15, 12, 129, 64, 15, 0, 9, 198, 20, 97, 137, 12, 16, 201,
-			67, 6, 195, 57, 97, 1, 13, 9, 198, 64, 84, 195, 32, 144, 201, 15, 0, 0, 8, 197, 12, 149, 137, 48, 144, 66, 16, 69, 9, 37,
-			83, 36, 144, 71, 14, 16, 40, 88, 6, 37, 57, 0, 11, 70, 9, 84, 201, 56, 84, 211, 21, 0, 47, 0, 10, 199, 72, 21, 150, 37,
-			50, 78, 60, 66, 10, 69, 65, 149, 8, 60, 224, 21, 0, 47, 7, 196, 77, 83, 12, 60, 76, 8, 197, 12, 19, 129, 4, 224, 65, 0,
-			6, 195, 56, 243, 0, 15, 9, 198, 52, 20, 211, 20, 230, 137, 15, 6, 195, 16, 241, 197, 15, 9, 198, 12, 130, 67, 32, 144, 137, 67,
-			0, 8, 197, 77, 66, 77, 60, 192, 65, 8, 66, 56, 240, 50, 110, 0, 9, 5, 194, 76, 80, 76, 24, 2, 194, 164, 89, 6, 37, 65,
-			71, 39, 55, 39, 15, 72, 37, 15, 84, 6, 35, 55, 40, 47, 35, 0, 5, 194, 60, 208, 15, 9, 198, 36, 209, 78, 60, 99, 210, 67,
-			6, 195, 20, 97, 66, 15, 8, 197, 12, 83, 66, 4, 192, 65, 7, 196, 4, 50, 5, 36, 66, 0, 7, 196, 77, 84, 5, 72, 65, 7,
-			195, 12, 144, 79, 9, 8, 6, 195, 56, 241, 0, 15, 7, 196, 4, 224, 207, 72, 16, 0, 20, 71, 29, 80, 73, 76, 51, 206, 60, 81,
-			40, 35, 6, 37, 89, 49, 39, 50, 39, 0, 9, 197, 8, 19, 142, 21, 32, 65, 47, 8, 197, 52, 20, 141, 61, 32, 65, 8, 197, 12,
-			84, 130, 21, 32, 65, 8, 197, 12, 19, 9, 9, 32, 65, 0, 14, 2, 194, 163, 89, 47, 36, 34, 55, 6, 37, 50, 35, 0, 12, 201,
-			72, 17, 9, 61, 65, 82, 5, 2, 65, 70, 12, 201, 65, 50, 67, 61, 65, 82, 5, 2, 65, 69, 12, 201, 65, 32, 78, 61, 65, 82,
-			5, 2, 65, 69, 12, 201, 37, 1, 82, 52, 85, 18, 61, 2, 65, 69, 12, 201, 24, 148, 201, 61, 65, 82, 5, 2, 65, 70, 7, 196,
-			16, 85, 143, 80, 15, 12, 201, 13, 35, 205, 61, 65, 82, 5, 2, 65, 69, 9, 198, 12, 244, 144, 61, 33, 65, 66, 12, 201, 5, 35,
-			205, 5, 65, 82, 5, 2, 65, 70, 0, 12, 201, 72, 144, 76, 48, 16, 195, 36, 227, 192, 67, 24, 73, 36, 225, 140, 84, 83, 154, 4,
-			227, 192, 37, 50, 83, 55, 40, 6, 109, 50, 123, 35, 50, 39, 0, 12, 201, 36, 224, 207, 73, 3, 210, 4, 227, 192, 66, 12, 201, 12,
-			243, 12, 4, 35, 210, 4, 227, 192, 66, 9, 198, 5, 69, 15, 56, 149, 0, 66, 14, 68, 40, 84, 154, 84, 57, 6, 109, 14, 16, 123,
-			40, 0, 12, 201, 25, 32, 78, 12, 84, 195, 4, 227, 192, 67, 19, 71, 12, 243, 80, 4, 115, 137, 20, 49, 39, 65, 48, 35, 67, 6,
-			37, 36, 0, 10, 199, 80, 83, 195, 72, 22, 137, 4, 68, 8, 197, 77, 2, 82, 37, 64, 65, 10, 199, 76, 147, 131, 72, 243, 137, 4,
-			67, 10, 199, 64, 148, 143, 52, 19, 137, 4, 68, 10, 199, 64, 19, 1, 28, 243, 137, 4, 68, 8, 197, 61, 4, 15, 77, 64, 16, 10,
-			199, 56, 244, 141, 4, 225, 9, 4, 67, 10, 199, 52, 243, 143, 80, 243, 137, 4, 68, 9, 198, 36, 195, 5, 12, 149, 0, 66, 13, 202,
-			28, 194, 80, 80, 241, 15, 57, 66, 68, 36, 15, 9, 198, 21, 64, 77, 64, 84, 192, 65, 8, 197, 21, 2, 84, 21, 64, 66, 9, 198,
-			21, 2, 67, 20, 229, 18, 15, 10, 198, 17, 33, 78, 28, 245, 0, 66, 15, 10, 199, 12, 243, 80, 4, 115, 137, 4, 67, 10, 199, 12,
-			147, 195, 36, 20, 137, 4, 67, 10, 199, 5, 84, 212, 72, 20, 201, 4, 67, 10, 199, 5, 37, 5, 52, 148, 201, 4, 67, 10, 199, 4,
-			225, 137, 28, 243, 137, 4, 68, 9, 198, 4, 225, 18, 20, 148, 192, 66, 0, 35, 2, 194, 161, 48, 6, 40, 50, 47, 39, 15, 36, 89,
-			49, 55, 35, 65, 35, 47, 6, 37, 84, 39, 15, 14, 16, 39, 84, 109, 91, 6, 35, 47, 39, 0, 6, 195, 80, 80, 207, 16, 7, 196,
-			76, 21, 9, 72, 65, 6, 195, 56, 245, 0, 15, 6, 195, 56, 245, 0, 15, 0, 8, 197, 64, 83, 132, 21, 32, 65, 8, 197, 52, 244,
-			132, 21, 32, 65, 16, 69, 72, 245, 84, 21, 32, 14, 16, 6, 40, 47, 109, 14, 16, 0, 6, 195, 76, 51, 212, 15, 9, 198, 76, 50,
-			65, 8, 243, 0, 65, 8, 197, 64, 193, 84, 81, 32, 15, 7, 196, 12, 130, 69, 76, 15, 8, 197, 8, 20, 130, 5, 32, 65, 0, 11,
-			67, 12, 149, 25, 89, 6, 37, 47, 126, 0, 6, 195, 77, 83, 0, 76, 6, 195, 80, 83, 73, 15, 10, 199, 29, 82, 68, 37, 166, 143,
-			48, 67, 10, 199, 29, 81, 82, 72, 18, 79, 48, 16, 0, 6, 194, 77, 80, 76, 46, 8, 197, 28, 85, 20, 37, 64, 65, 8, 197, 8,
-			21, 20, 37, 64, 65, 0, 6, 195, 64, 145, 71, 15, 6, 195, 60, 209, 71, 15, 14, 203, 36, 229, 5, 48, 194, 71, 32, 83, 154, 36,
-			16, 15, 0, 8, 197, 76, 20, 147, 36, 224, 65, 9, 198, 52, 243, 148, 72, 80, 76, 16, 8, 197, 52, 19, 135, 4, 224, 65, 0, 6,
-			195, 105, 83, 21, 66, 9, 198, 24, 19, 148, 60, 48, 201, 15, 0, 13, 202, 77, 4, 137, 28, 147, 206, 5, 67, 211, 36, 67, 13, 70,
-			80, 18, 76, 48, 85, 82, 21, 102, 114, 0, 47, 7, 195, 20, 32, 78, 65, 15, 9, 198, 16, 148, 208, 61, 53, 0, 16, 0, 9, 198,
-			12, 130, 69, 76, 84, 143, 65, 13, 2, 194, 169, 49, 6, 39, 48, 37, 34, 117, 47, 0, 6, 195, 60, 225, 71, 15, 7, 195, 20, 225,
-			71, 65, 15, 0, 10, 199, 72, 144, 133, 48, 194, 78, 60, 66, 10, 199, 65, 33, 86, 20, 64, 78, 60, 66, 10, 199, 64, 244, 212, 84,
-			192, 78, 60, 66, 10, 199, 36, 228, 197, 29, 80, 78, 60, 66, 10, 199, 4, 97, 133, 72, 210, 78, 60, 66, 16, 2, 194, 182, 48, 35,
-			51, 6, 35, 81, 14, 16, 35, 83, 39, 0, 8, 197, 52, 243, 135, 61, 160, 15, 8, 197, 52, 20, 146, 60, 224, 66, 8, 197, 28, 20,
-			154, 60, 224, 66, 8, 197, 16, 20, 147, 20, 224, 65, 0, 11, 200, 16, 243, 85, 76, 227, 214, 5, 48, 15, 0, 7, 196, 56, 81, 204,
-			36, 76, 0, 6, 195, 4, 32, 192, 13, 0, 10, 199, 72, 148, 197, 72, 32, 78, 60, 66, 10, 199, 36, 212, 5, 28, 224, 78, 60, 66,
-			10, 199, 5, 52, 207, 52, 210, 78, 60, 66, 10, 199, 4, 227, 149, 56, 50, 78, 60, 66, 10, 199, 76, 245, 20, 61, 67, 206, 60, 67,
-			10, 199, 52, 243, 4, 61, 96, 78, 60, 67, 23, 72, 88, 145, 5, 60, 208, 75, 21, 32, 84, 37, 72, 109, 39, 65, 6, 118, 49, 36,
-			14, 16, 0, 0, 10, 199, 36, 229, 5, 73, 4, 133, 80, 66, 10, 199, 80, 84, 141, 61, 53, 1, 80, 66, 10, 199, 36, 224, 207, 53,
-			3, 5, 80, 15, 11, 199, 16, 148, 195, 72, 81, 9, 80, 66, 16, 6, 195, 16, 80, 201, 15, 9, 198, 5, 65, 78, 60, 193, 128, 15,
-			0, 13, 2, 194, 176, 81, 14, 16, 6, 35, 12, 72, 37, 0, 7, 196, 64, 20, 137, 4, 66, 7, 196, 61, 32, 201, 4, 16, 7, 196,
-			52, 148, 201, 4, 65, 8, 196, 24, 245, 133, 4, 65, 15, 9, 198, 16, 149, 20, 60, 225, 192, 15, 7, 196, 12, 21, 133, 4, 65, 24,
-			73, 5, 85, 15, 88, 82, 67, 60, 195, 192, 35, 40, 47, 39, 84, 109, 6, 37, 49, 39, 55, 39, 0, 7, 196, 5, 36, 9, 4, 66,
-			0, 0, 9, 198, 88, 149, 20, 36, 209, 64, 65, 9, 198, 20, 208, 143, 48, 145, 64, 67, 19, 2, 194, 190, 47, 14, 16, 6, 36, 15,
-			49, 40, 6, 35, 14, 16, 47, 37, 0, 9, 198, 88, 84, 142, 36, 49, 64, 66, 9, 198, 80, 245, 82, 56, 81, 64, 16, 9, 198, 52,
-			17, 15, 56, 145, 64, 67, 9, 198, 36, 228, 201, 20, 209, 64, 15, 9, 198, 12, 244, 142, 36, 49, 64, 66, 9, 198, 4, 229, 9, 56,
-			241, 64, 66, 0, 6, 195, 85, 35, 0, 13, 37, 2, 194, 191, 48, 6, 40, 50, 47, 39, 15, 37, 50, 47, 36, 51, 16, 39, 81, 35,
-			47, 6, 37, 84, 39, 15, 14, 16, 39, 84, 109, 91, 6, 35, 47, 39, 0, 0, 16, 2, 194, 188, 40, 50, 15, 49, 40, 6, 35, 14,
-			16, 47, 39, 0, 9, 198, 69, 80, 68, 72, 145, 192, 66, 7, 196, 48, 81, 199, 20, 16, 14, 68, 37, 48, 73, 4, 37, 88, 35, 6,
-			37, 12, 35, 0, 9, 198, 24, 149, 15, 24, 17, 192, 66, 7, 196, 24, 84, 137, 4, 65, 9, 198, 12, 243, 135, 72, 81, 192, 15, 9,
-			198, 5, 52, 1, 72, 17, 192, 66, 0, 14, 2, 194, 189, 40, 50, 15, 65, 6, 109, 128, 12, 39, 0, 0, 9, 198, 24, 16, 195, 36,
-			225, 64, 66, 9, 198, 16, 84, 143, 28, 129, 64, 65, 9, 198, 5, 100, 133, 8, 33, 64, 76, 9, 198, 76, 20, 133, 8, 33, 64, 78,
-			9, 198, 88, 84, 135, 36, 225, 64, 16, 9, 198, 81, 34, 80, 60, 65, 64, 65, 9, 198, 76, 245, 20, 36, 193, 64, 66, 10, 198, 64,
-			243, 12, 36, 225, 64, 65, 15, 9, 198, 64, 84, 137, 12, 193, 64, 65, 9, 198, 56, 145, 86, 60, 193, 64, 15, 9, 198, 52, 148, 137,
-			4, 65, 64, 66, 10, 198, 28, 147, 214, 4, 225, 64, 65, 16, 9, 198, 20, 113, 77, 60, 225, 64, 15, 9, 198, 16, 19, 79, 12, 193,
-			64, 65, 9, 198, 12, 243, 147, 60, 193, 64, 15, 9, 198, 12, 84, 131, 36, 225, 64, 16, 9, 198, 12, 20, 205, 20, 225, 64, 65, 8,
-			196, 12, 17, 206, 60, 66, 15, 9, 198, 4, 227, 198, 20, 193, 64, 66, 0, 9, 198, 13, 33, 68, 21, 32, 201, 65, 6, 195, 72, 129,
-			65, 16, 6, 195, 20, 65, 65, 16, 8, 196, 12, 81, 15, 48, 65, 15, 7, 196, 5, 33, 79, 48, 66, 6, 195, 4, 193, 65, 65, 0,
-			13, 68, 48, 144, 197, 36, 55, 37, 76, 6, 109, 37, 0, 9, 198, 72, 148, 208, 21, 69, 0, 15, 9, 198, 12, 243, 12, 21, 69, 0,
-			15, 0, 9, 198, 5, 97, 83, 76, 84, 143, 76, 5, 130, 195, 177, 43, 0, 10, 199, 72, 21, 150, 37, 48, 78, 60, 66, 10, 199, 5,
-			36, 133, 12, 130, 78, 60, 66, 10, 199, 4, 97, 129, 76, 50, 78, 60, 66, 11, 200, 88, 84, 212, 20, 224, 78, 61, 96, 15, 11, 200,
-			88, 84, 143, 48, 19, 149, 61, 96, 15, 12, 201, 69, 82, 78, 16, 144, 197, 76, 147, 64, 15, 6, 195, 36, 211, 204, 65, 11, 200, 12,
-			21, 5, 56, 19, 149, 61, 96, 15, 0, 24, 67, 80, 83, 0, 47, 4, 109, 55, 15, 35, 84, 6, 37, 84, 38, 12, 0, 81, 97, 118,
-			105, 118, 32, 14, 73, 80, 133, 78, 16, 84, 130, 37, 33, 0, 21, 0, 47, 12, 67, 64, 17, 197, 48, 6, 109, 37, 75, 0, 47, 6,
-			195, 80, 83, 0, 16, 7, 196, 76, 83, 79, 48, 65, 7, 196, 12, 241, 15, 48, 16, 6, 195, 8, 17, 197, 66, 0, 5, 194, 80, 80,
-			76, 5, 194, 80, 80, 15, 9, 198, 77, 84, 5, 72, 147, 210, 16, 9, 198, 77, 65, 83, 36, 51, 210, 66, 9, 198, 36, 229, 5, 72,
-			147, 210, 16, 6, 195, 28, 193, 66, 15, 9, 198, 12, 20, 142, 37, 99, 210, 66, 9, 198, 5, 85, 15, 52, 86, 154, 15, 0, 7, 195,
-			12, 242, 64, 76, 46, 6, 195, 80, 80, 203, 15, 0, 10, 199, 64, 21, 20, 36, 224, 78, 60, 65, 21, 71, 36, 68, 143, 64, 192, 78,
-			60, 37, 72, 14, 16, 39, 48, 55, 6, 35, 50, 39, 0, 11, 200, 81, 32, 78, 76, 148, 212, 61, 32, 66, 9, 197, 76, 84, 150, 21,
-			32, 65, 47, 15, 69, 9, 81, 134, 21, 32, 71, 6, 35, 83, 36, 14, 16, 0, 8, 197, 104, 83, 154, 21, 32, 65, 8, 197, 80, 20,
-			148, 5, 32, 65, 8, 197, 76, 83, 137, 61, 32, 65, 8, 197, 76, 83, 137, 61, 32, 15, 8, 197, 65, 35, 212, 37, 32, 65, 8, 197,
-			64, 147, 214, 21, 32, 66, 8, 197, 64, 84, 146, 21, 32, 66, 8, 197, 52, 83, 136, 37, 32, 66, 8, 197, 36, 229, 5, 29, 32, 65,
-			7, 196, 21, 100, 143, 76, 15, 8, 197, 12, 244, 146, 21, 32, 65, 8, 197, 12, 20, 144, 5, 32, 65, 8, 197, 9, 84, 130, 21, 32,
-			65, 8, 197, 8, 84, 130, 21, 32, 65, 0, 8, 67, 80, 80, 77, 21, 0, 47, 8, 197, 76, 21, 18, 5, 0, 65, 7, 196, 4, 115,
-			211, 80, 16, 0, 10, 199, 64, 84, 137, 64, 86, 137, 4, 68, 20, 71, 24, 147, 15, 76, 241, 137, 20, 83, 37, 55, 39, 88, 39, 83,
-			6, 37, 36, 0, 10, 199, 8, 150, 154, 5, 36, 137, 4, 67, 8, 197, 80, 20, 129, 57, 64, 65, 10, 199, 77, 68, 133, 81, 67, 201,
-			4, 16, 10, 199, 76, 96, 67, 80, 84, 137, 4, 66, 10, 199, 76, 81, 199, 36, 245, 137, 4, 67, 8, 197, 72, 148, 207, 73, 64, 16,
-			10, 199, 37, 51, 208, 76, 81, 137, 4, 68, 10, 199, 24, 245, 15, 28, 83, 137, 4, 68, 10, 199, 24, 147, 15, 76, 241, 137, 4, 68,
-			10, 199, 20, 194, 79, 24, 19, 137, 4, 69, 9, 197, 12, 243, 80, 85, 64, 65, 15, 10, 199, 12, 16, 137, 56, 245, 137, 4, 68, 10,
-			199, 4, 229, 9, 52, 17, 137, 4, 67, 8, 197, 4, 213, 76, 21, 64, 15, 6, 195, 4, 209, 66, 15, 0, 10, 67, 24, 18, 64, 83,
-			6, 35, 37, 0, 6, 195, 16, 82, 64, 76, 7, 195, 48, 82, 64, 76, 46, 14, 203, 5, 48, 201, 84, 112, 67, 5, 1, 76, 48, 144,
-			16, 0, 9, 197, 64, 84, 132, 21, 32, 65, 15, 20, 71, 36, 229, 1, 76, 144, 77, 60, 37, 50, 47, 35, 88, 37, 6, 35, 65, 39,
-			0, 8, 197, 52, 20, 212, 21, 32, 65, 8, 197, 33, 83, 148, 21, 32, 65, 17, 69, 12, 83, 148, 21, 32, 89, 6, 36, 50, 47, 109,
-			14, 16, 0, 47, 9, 197, 104, 81, 134, 37, 32, 65, 15, 8, 197, 77, 1, 84, 81, 32, 15, 8, 197, 72, 147, 142, 61, 96, 15, 13,
-			202, 20, 193, 84, 81, 35, 212, 20, 51, 137, 12, 15, 8, 197, 12, 19, 148, 21, 32, 65, 8, 197, 12, 17, 134, 5, 32, 65, 0, 9,
-			198, 52, 16, 197, 48, 192, 73, 67, 10, 199, 77, 2, 78, 5, 166, 143, 48, 67, 9, 198, 76, 147, 129, 48, 81, 133, 15, 10, 199, 28,
-			244, 135, 60, 230, 143, 48, 67, 7, 196, 13, 33, 83, 80, 16, 9, 198, 12, 20, 146, 60, 48, 201, 15, 7, 196, 5, 34, 83, 80, 65,
-			12, 201, 4, 229, 18, 61, 3, 211, 60, 98, 65, 69, 9, 198, 4, 224, 71, 72, 17, 133, 66, 0, 13, 202, 76, 50, 9, 105, 163, 198,
-			72, 83, 137, 4, 68, 6, 194, 81, 80, 76, 46, 6, 195, 88, 84, 154, 16, 8, 197, 77, 81, 5, 77, 64, 66, 8, 197, 77, 81, 4,
-			37, 64, 65, 8, 197, 72, 148, 15, 77, 64, 16, 8, 197, 72, 81, 4, 37, 64, 65, 8, 197, 65, 83, 16, 37, 64, 65, 9, 198, 52,
-			243, 143, 48, 149, 0, 66, 8, 197, 16, 84, 15, 77, 64, 16, 9, 197, 13, 33, 68, 37, 64, 65, 16, 8, 197, 12, 243, 80, 37, 64,
-			65, 9, 198, 12, 131, 210, 104, 245, 192, 66, 8, 197, 8, 148, 15, 77, 64, 16, 0, 9, 197, 8, 83, 131, 34, 16, 76, 28, 6, 195,
-			76, 243, 64, 15, 0, 12, 201, 28, 83, 133, 72, 22, 137, 60, 225, 64, 15, 0, 21, 71, 16, 85, 18, 4, 144, 137, 48, 72, 36, 47,
-			14, 16, 35, 6, 37, 71, 37, 55, 0, 6, 195, 80, 83, 85, 66, 9, 198, 73, 80, 197, 48, 192, 73, 67, 7, 196, 72, 81, 207, 48,
-			65, 7, 196, 52, 241, 207, 48, 66, 9, 198, 48, 245, 26, 61, 32, 73, 67, 7, 196, 48, 241, 15, 48, 65, 0, 18, 71, 76, 50, 65,
-			13, 21, 73, 36, 91, 4, 35, 49, 122, 6, 126, 57, 0, 7, 196, 5, 100, 129, 36, 78, 7, 196, 76, 20, 129, 36, 66, 6, 195, 76,
-			147, 206, 66, 8, 197, 21, 100, 133, 85, 128, 65, 0, 18, 70, 41, 85, 133, 57, 69, 83, 57, 40, 84, 6, 36, 50, 47, 40, 89, 0,
-			6, 195, 12, 145, 67, 15, 9, 198, 8, 20, 201, 48, 85, 83, 16, 0, 6, 195, 80, 80, 204, 15, 8, 197, 64, 243, 9, 105, 160, 65,
-			8, 196, 56, 20, 132, 60, 66, 15, 0, 9, 198, 12, 84, 142, 60, 32, 137, 15, 0, 23, 72, 16, 148, 212, 72, 144, 149, 37, 64, 72,
-			37, 89, 47, 14, 16, 37, 71, 40, 6, 37, 47, 0, 0, 10, 199, 76, 147, 135, 32, 147, 218, 104, 16, 0, 9, 198, 64, 84, 137, 20,
-			113, 84, 15, 12, 201, 12, 243, 134, 72, 21, 5, 72, 226, 84, 67, 0, 8, 197, 72, 144, 197, 72, 48, 16, 8, 197, 65, 35, 210, 60,
-			112, 65, 10, 199, 56, 245, 20, 21, 65, 77, 64, 15, 10, 199, 52, 85, 1, 8, 243, 9, 80, 67, 8, 197, 36, 208, 143, 12, 48, 16,
-			0, 8, 196, 5, 97, 84, 20, 78, 32, 9, 198, 81, 84, 130, 60, 96, 78, 67, 7, 196, 76, 85, 20, 20, 15, 7, 196, 64, 84, 212,
-			20, 15, 6, 195, 36, 48, 82, 65, 7, 196, 5, 65, 76, 20, 65, 6, 195, 4, 48, 82, 65, 0, 8, 197, 77, 84, 5, 72, 16, 65,
-			15, 69, 4, 225, 77, 36, 80, 35, 50, 36, 65, 6, 37, 36, 0, 14, 69, 12, 128, 78, 12, 80, 91, 6, 35, 12, 50, 89, 0, 8,
-			197, 88, 241, 204, 36, 16, 16, 8, 197, 76, 241, 204, 36, 16, 15, 8, 197, 72, 20, 1, 12, 80, 66, 8, 197, 65, 35, 195, 56, 80,
-			15, 8, 197, 56, 147, 137, 88, 80, 65, 8, 197, 52, 147, 208, 36, 16, 67, 8, 197, 24, 241, 204, 36, 16, 15, 8, 197, 12, 19, 143,
-			56, 80, 65, 8, 197, 5, 32, 197, 56, 80, 65, 0, 9, 198, 76, 244, 130, 37, 67, 204, 67, 12, 201, 76, 80, 207, 56, 67, 199, 20,
-			226, 84, 68, 7, 196, 24, 21, 9, 12, 66, 0, 6, 195, 80, 243, 73, 15, 9, 198, 52, 147, 12, 21, 50, 77, 15, 8, 197, 36, 212,
-			9, 20, 112, 15, 8, 197, 20, 227, 212, 20, 48, 15, 8, 197, 16, 144, 76, 60, 112, 65, 0, 7, 196, 5, 97, 86, 4, 78, 11, 200,
-			81, 85, 20, 61, 52, 15, 73, 64, 67, 7, 196, 64, 145, 68, 20, 15, 7, 196, 64, 83, 12, 20, 16, 14, 68, 24, 18, 78, 4, 83,
-			35, 6, 37, 12, 50, 35, 0, 10, 199, 4, 195, 15, 9, 35, 199, 36, 66, 0, 9, 197, 80, 83, 133, 72, 80, 66, 16, 8, 197, 80,
-			19, 65, 72, 16, 66, 8, 197, 64, 17, 15, 88, 16, 65, 16, 69, 60, 227, 9, 56, 80, 4, 39, 50, 15, 55, 6, 117, 50, 0, 8,
-			197, 5, 97, 83, 76, 80, 76, 8, 197, 5, 100, 133, 80, 80, 76, 8, 197, 88, 83, 133, 72, 80, 15, 6, 195, 76, 244, 147, 16, 9,
-			197, 64, 20, 133, 72, 80, 66, 16, 8, 197, 36, 68, 143, 64, 80, 65, 8, 197, 28, 83, 133, 88, 80, 15, 8, 197, 28, 19, 69, 80,
-			80, 15, 8, 197, 25, 81, 193, 12, 80, 66, 9, 197, 12, 240, 204, 20, 16, 65, 15, 8, 197, 12, 130, 83, 76, 16, 66, 9, 197, 8,
-			243, 7, 36, 16, 65, 15, 8, 197, 4, 224, 78, 36, 16, 67, 9, 197, 4, 193, 82, 36, 16, 66, 16, 8, 197, 4, 115, 206, 36, 16,
-			67, 0, 8, 197, 76, 50, 5, 73, 160, 16, 0, 15, 69, 36, 16, 207, 64, 240, 37, 6, 35, 49, 39, 48, 39, 0, 11, 67, 20, 194,
-			65, 36, 55, 6, 37, 35, 0, 9, 198, 76, 53, 82, 72, 147, 5, 66, 11, 67, 76, 50, 69, 91, 6, 37, 2, 36, 0, 8, 197, 5,
-			100, 133, 52, 240, 78, 8, 197, 76, 20, 133, 52, 240, 78, 9, 198, 81, 34, 83, 12, 83, 5, 65, 10, 198, 37, 51, 211, 12, 83, 5,
-			66, 15, 15, 69, 24, 197, 73, 16, 240, 83, 55, 6, 40, 37, 72, 39, 0, 9, 198, 24, 80, 130, 72, 147, 5, 66, 6, 195, 8, 18,
-			193, 66, 6, 195, 4, 34, 65, 66, 0, 6, 195, 48, 83, 206, 16, 6, 195, 20, 65, 78, 15, 6, 195, 4, 193, 78, 16, 0, 9, 197,
-			88, 83, 133, 80, 144, 65, 15, 8, 197, 76, 19, 5, 52, 144, 15, 8, 197, 29, 32, 70, 20, 208, 15, 8, 197, 12, 16, 195, 4, 208,
-			65, 8, 197, 4, 193, 83, 76, 144, 15, 8, 197, 4, 115, 129, 80, 144, 65, 0, 9, 198, 21, 2, 83, 60, 66, 64, 67, 9, 198, 85,
-			52, 197, 28, 194, 64, 15, 9, 198, 80, 85, 84, 60, 226, 64, 65, 9, 198, 77, 1, 67, 12, 130, 64, 15, 6, 195, 64, 242, 0, 15,
-			8, 197, 53, 83, 148, 5, 160, 66, 9, 198, 21, 2, 83, 60, 66, 64, 15, 11, 200, 12, 130, 69, 76, 19, 149, 61, 96, 15, 0, 9,
-			198, 104, 19, 132, 60, 32, 137, 15, 12, 201, 81, 33, 78, 80, 17, 21, 21, 50, 77, 15, 7, 195, 76, 18, 197, 66, 15, 6, 195, 64,
-			243, 0, 15, 0, 9, 198, 16, 85, 5, 13, 67, 210, 66, 9, 198, 16, 85, 5, 13, 67, 210, 66, 6, 194, 76, 144, 76, 46, 7, 196,
-			76, 84, 18, 36, 15, 9, 198, 12, 84, 131, 60, 49, 66, 15, 9, 198, 12, 20, 131, 60, 99, 210, 66, 7, 196, 5, 96, 82, 36, 65,
-			0, 8, 197, 77, 3, 199, 48, 144, 15, 8, 197, 64, 244, 212, 84, 208, 65, 9, 198, 60, 198, 78, 80, 131, 211, 65, 7, 196, 28, 83,
-			133, 72, 65, 8, 197, 21, 34, 84, 20, 208, 15, 7, 196, 12, 83, 66, 72, 15, 8, 197, 9, 35, 199, 48, 144, 15, 0, 8, 197, 12,
-			244, 142, 21, 32, 65, 8, 197, 88, 84, 148, 61, 96, 65, 9, 198, 85, 38, 149, 48, 82, 64, 67, 8, 197, 64, 19, 132, 5, 32, 65,
-			9, 198, 60, 195, 15, 48, 18, 64, 67, 9, 198, 56, 148, 195, 20, 210, 64, 15, 6, 195, 52, 16, 84, 66, 10, 198, 21, 52, 197, 72,
-			50, 64, 65, 15, 8, 197, 20, 194, 88, 37, 32, 67, 9, 197, 16, 21, 150, 21, 32, 66, 16, 8, 197, 12, 19, 1, 9, 32, 65, 9,
-			198, 9, 84, 195, 20, 210, 64, 15, 9, 198, 5, 51, 79, 56, 82, 64, 67, 6, 195, 4, 224, 80, 65, 6, 195, 4, 112, 84, 65, 9,
-			198, 4, 100, 129, 28, 243, 0, 16, 0, 0, 12, 201, 4, 195, 15, 57, 64, 78, 4, 227, 192, 67, 13, 202, 80, 83, 78, 61, 52, 15,
-			56, 66, 76, 36, 15, 8, 197, 80, 81, 84, 21, 64, 15, 6, 195, 64, 244, 0, 15, 8, 197, 20, 209, 82, 37, 64, 66, 8, 197, 5,
-			65, 76, 21, 64, 15, 0, 8, 196, 72, 245, 133, 72, 65, 46, 9, 198, 52, 147, 137, 52, 22, 0, 67, 7, 196, 8, 145, 143, 72, 65,
-			0, 8, 197, 80, 83, 132, 21, 32, 65, 8, 197, 72, 83, 132, 21, 32, 65, 8, 197, 104, 244, 212, 21, 32, 65, 8, 197, 76, 53, 84,
-			21, 32, 65, 16, 69, 41, 83, 137, 61, 32, 57, 6, 40, 50, 37, 39, 14, 16, 0, 6, 195, 80, 83, 80, 15, 8, 197, 80, 19, 129,
-			29, 32, 65, 7, 196, 76, 51, 210, 76, 16, 9, 198, 64, 20, 129, 8, 244, 132, 16, 8, 197, 56, 81, 210, 5, 32, 66, 8, 197, 48,
-			22, 154, 5, 32, 65, 9, 197, 12, 243, 131, 5, 96, 65, 15, 0, 15, 69, 92, 147, 132, 61, 112, 122, 6, 126, 50, 72, 110, 122, 0,
-			6, 195, 36, 229, 137, 66, 0, 9, 198, 24, 147, 9, 65, 2, 78, 67, 15, 4, 95, 103, 117, 114, 81, 6, 111, 13, 65, 111, 49, 37,
-			0, 9, 198, 81, 34, 71, 20, 210, 78, 66, 8, 197, 76, 48, 80, 37, 64, 65, 11, 199, 64, 20, 133, 57, 65, 83, 36, 66, 15, 9,
-			197, 52, 245, 13, 61, 64, 66, 15, 6, 195, 48, 83, 78, 15, 9, 198, 21, 32, 67, 48, 149, 0, 66, 8, 197, 4, 112, 80, 37, 64,
-			66, 0, 0, 12, 201, 76, 19, 22, 4, 51, 206, 16, 245, 20, 16, 9, 198, 65, 35, 211, 64, 85, 20, 15, 11, 200, 52, 243, 148, 20,
-			97, 76, 81, 32, 16, 9, 198, 12, 21, 1, 48, 85, 20, 15, 0, 17, 70, 21, 48, 204, 4, 208, 73, 36, 89, 49, 55, 35, 65, 6,
-			117, 0, 9, 198, 37, 3, 208, 61, 64, 77, 67, 0, 9, 198, 65, 35, 195, 20, 65, 82, 66, 9, 198, 4, 48, 197, 56, 65, 82, 66,
-			10, 198, 80, 132, 137, 48, 193, 82, 65, 47, 10, 198, 72, 80, 207, 72, 65, 82, 66, 47, 7, 196, 76, 17, 207, 52, 65, 9, 198, 8,
-			244, 195, 60, 225, 82, 16, 0, 7, 196, 88, 20, 133, 56, 16, 9, 198, 76, 20, 146, 4, 37, 83, 65, 9, 198, 5, 32, 200, 36, 195,
-			195, 66, 0, 7, 196, 61, 52, 197, 60, 65, 9, 198, 60, 113, 197, 8, 34, 64, 15, 9, 198, 12, 240, 195, 36, 66, 64, 15, 0, 6,
-			195, 9, 80, 149, 66, 0, 11, 200, 80, 84, 154, 60, 113, 78, 37, 64, 67, 10, 199, 64, 244, 148, 61, 35, 211, 20, 15, 7, 196, 48,
-			84, 18, 36, 15, 10, 199, 8, 244, 135, 61, 35, 211, 20, 15, 13, 202, 8, 147, 212, 85, 32, 129, 104, 147, 206, 20, 15, 0, 24, 72,
-			84, 226, 86, 21, 36, 201, 81, 144, 57, 40, 50, 37, 84, 6, 36, 14, 16, 89, 37, 47, 126, 0, 7, 196, 52, 16, 193, 12, 66, 8,
-			197, 20, 193, 85, 76, 144, 66, 8, 197, 12, 19, 69, 72, 144, 65, 0, 9, 198, 52, 20, 137, 56, 18, 64, 67, 9, 198, 81, 33, 68,
-			36, 50, 64, 16, 8, 197, 72, 149, 15, 12, 48, 16, 6, 195, 44, 240, 128, 15, 8, 197, 24, 83, 142, 20, 48, 15, 6, 195, 12, 240,
-			128, 15, 9, 198, 12, 147, 9, 20, 114, 64, 15, 9, 198, 4, 211, 210, 72, 82, 64, 67, 0, 7, 196, 76, 19, 132, 20, 66, 7, 196,
-			12, 244, 148, 20, 16, 0, 8, 197, 77, 64, 84, 84, 80, 65, 9, 197, 36, 229, 5, 72, 80, 66, 16, 8, 197, 5, 96, 82, 36, 80,
-			67, 10, 69, 60, 97, 137, 12, 80, 21, 0, 47, 8, 197, 69, 81, 76, 48, 80, 76, 8, 197, 72, 245, 133, 72, 80, 16, 8, 197, 72,
-			81, 21, 12, 80, 65, 8, 197, 72, 17, 9, 12, 80, 66, 8, 197, 65, 33, 77, 36, 16, 65, 8, 197, 48, 245, 133, 72, 80, 16, 8,
-			197, 36, 225, 68, 36, 16, 15, 8, 197, 24, 83, 9, 12, 80, 66, 9, 197, 16, 245, 133, 72, 80, 66, 16, 8, 197, 13, 33, 77, 36,
-			16, 65, 8, 197, 8, 245, 67, 48, 80, 67, 9, 197, 8, 84, 212, 36, 16, 65, 16, 8, 197, 8, 20, 212, 36, 16, 65, 8, 197, 5,
-			32, 207, 72, 80, 65, 0, 9, 198, 60, 32, 140, 36, 112, 78, 65, 7, 196, 64, 84, 133, 28, 65, 0, 6, 195, 81, 80, 64, 76, 9,
-			2, 209, 135, 21, 114, 117, 0, 47, 8, 197, 37, 3, 212, 20, 48, 15, 14, 202, 32, 84, 129, 12, 193, 79, 64, 243, 9, 76, 67, 16,
-			15, 204, 5, 32, 201, 12, 243, 134, 72, 21, 5, 72, 226, 84, 69, 0, 10, 199, 72, 148, 5, 80, 84, 147, 36, 66, 10, 199, 5, 52,
-			213, 52, 84, 147, 36, 66, 9, 2, 209, 134, 21, 114, 117, 0, 47, 8, 196, 20, 194, 84, 20, 65, 16, 0, 15, 69, 77, 2, 65, 12,
-			80, 89, 48, 37, 6, 35, 76, 36, 0, 8, 197, 24, 243, 12, 36, 80, 66, 16, 69, 5, 4, 137, 48, 80, 35, 48, 14, 16, 6, 37,
-			55, 109, 0, 8, 197, 4, 210, 67, 32, 80, 66, 14, 69, 12, 128, 78, 28, 80, 76, 6, 109, 37, 50, 75, 0, 9, 2, 209, 133, 21,
-			114, 117, 0, 47, 8, 197, 80, 83, 210, 36, 16, 67, 8, 197, 76, 83, 80, 72, 80, 15, 8, 197, 72, 85, 133, 72, 80, 16, 8, 197,
-			61, 52, 9, 80, 80, 15, 8, 197, 56, 18, 65, 16, 80, 65, 8, 197, 48, 85, 137, 80, 16, 67, 8, 197, 32, 243, 143, 72, 80, 67,
-			8, 197, 25, 80, 211, 36, 16, 65, 8, 197, 25, 34, 71, 36, 16, 65, 9, 197, 16, 240, 204, 20, 16, 65, 15, 8, 197, 4, 193, 78,
-			36, 16, 15, 8, 197, 4, 32, 90, 36, 16, 67, 0, 7, 196, 25, 83, 77, 60, 76, 9, 2, 209, 132, 21, 114, 117, 0, 47, 9, 198,
-			53, 83, 20, 37, 3, 0, 65, 0, 8, 197, 16, 81, 1, 48, 240, 65, 15, 68, 9, 34, 65, 56, 71, 14, 16, 6, 35, 37, 35, 50,
-			0, 7, 196, 4, 192, 213, 56, 78, 6, 2, 209, 131, 40, 0, 7, 196, 48, 19, 79, 56, 66, 11, 67, 28, 194, 65, 61, 6, 37, 12,
-			35, 0, 7, 196, 16, 243, 73, 56, 65, 0, 9, 2, 209, 130, 21, 114, 117, 0, 47, 7, 196, 72, 80, 130, 36, 16, 8, 196, 64, 83,
-			206, 36, 65, 46, 7, 196, 56, 83, 142, 36, 15, 0, 9, 2, 209, 129, 21, 114, 117, 0, 47, 9, 197, 48, 83, 85, 72, 144, 65, 15,
-			8, 197, 28, 16, 129, 48, 144, 65, 8, 197, 25, 84, 148, 20, 144, 66, 8, 197, 21, 48, 200, 36, 208, 15, 0, 9, 198, 88, 84, 135,
-			36, 226, 64, 65, 9, 198, 76, 245, 20, 36, 194, 64, 66, 16, 70, 28, 147, 214, 4, 226, 64, 75, 6, 39, 84, 35, 50, 37, 0, 9,
-			2, 209, 128, 21, 114, 117, 0, 47, 9, 198, 64, 149, 5, 28, 194, 64, 15, 9, 198, 52, 243, 15, 12, 130, 64, 15, 6, 195, 36, 51,
-			206, 15, 9, 198, 29, 32, 68, 60, 194, 64, 65, 9, 198, 12, 19, 142, 60, 34, 64, 15, 0, 8, 67, 52, 146, 197, 21, 0, 47, 10,
-			67, 76, 50, 65, 91, 6, 126, 35, 0, 6, 195, 81, 81, 64, 76, 9, 2, 209, 143, 21, 114, 117, 0, 47, 6, 195, 88, 83, 0, 16,
-			6, 195, 88, 83, 0, 16, 8, 196, 76, 83, 73, 56, 65, 16, 7, 196, 56, 243, 73, 56, 65, 9, 198, 52, 19, 143, 12, 50, 9, 15,
-			0, 9, 2, 209, 142, 21, 114, 117, 0, 47, 7, 196, 4, 194, 66, 36, 65, 0, 8, 197, 69, 81, 71, 48, 144, 76, 9, 2, 209, 141,
-			21, 114, 117, 0, 47, 9, 198, 81, 33, 77, 21, 166, 128, 15, 9, 198, 80, 243, 13, 21, 166, 128, 15, 8, 197, 73, 85, 5, 56, 144,
-			15, 9, 198, 72, 83, 9, 28, 147, 211, 16, 8, 197, 64, 20, 143, 16, 144, 66, 8, 197, 64, 20, 143, 16, 144, 15, 8, 197, 21, 49,
-			77, 64, 144, 15, 8, 197, 13, 84, 131, 84, 208, 65, 8, 197, 12, 83, 148, 72, 144, 15, 8, 197, 5, 85, 1, 72, 144, 65, 0, 9,
-			198, 77, 64, 78, 48, 86, 64, 65, 9, 68, 40, 19, 69, 76, 21, 0, 47, 5, 194, 88, 80, 76, 6, 194, 80, 144, 76, 46, 15, 2,
-			209, 140, 57, 36, 34, 15, 65, 6, 39, 55, 12, 36, 0, 9, 198, 64, 148, 133, 56, 82, 64, 67, 9, 198, 64, 83, 137, 76, 243, 0,
-			66, 9, 198, 61, 35, 204, 60, 114, 64, 15, 8, 196, 28, 83, 133, 76, 65, 15, 9, 198, 24, 144, 193, 72, 243, 0, 67, 9, 198, 12,
-			20, 133, 28, 114, 64, 16, 9, 198, 12, 19, 129, 104, 82, 64, 67, 9, 198, 12, 19, 79, 76, 50, 64, 15, 9, 198, 8, 148, 143, 12,
-			50, 64, 15, 9, 198, 8, 19, 19, 4, 210, 64, 65, 9, 198, 4, 208, 146, 60, 114, 64, 15, 9, 198, 4, 195, 15, 28, 114, 64, 15,
-			0, 9, 2, 209, 139, 57, 36, 34, 112, 0, 7, 196, 76, 145, 193, 72, 65, 6, 195, 28, 243, 77, 16, 6, 195, 28, 227, 205, 15, 9,
-			198, 28, 147, 143, 12, 50, 9, 15, 10, 198, 8, 80, 84, 72, 150, 0, 65, 16, 0, 15, 2, 209, 138, 57, 109, 34, 15, 20, 72, 6,
-			40, 51, 35, 0, 14, 202, 52, 243, 148, 20, 51, 205, 64, 21, 18, 36, 67, 15, 0, 9, 2, 209, 137, 21, 114, 117, 0, 47, 6, 195,
-			88, 85, 0, 15, 0, 9, 198, 40, 243, 129, 80, 128, 78, 65, 9, 2, 209, 136, 21, 114, 117, 0, 47, 9, 198, 80, 85, 18, 4, 81,
-			18, 15, 7, 196, 8, 245, 133, 76, 15, 0, 7, 195, 49, 82, 64, 76, 46, 8, 196, 76, 245, 5, 72, 66, 16, 7, 196, 52, 241, 207,
-			72, 65, 7, 196, 52, 81, 193, 72, 65, 0, 8, 67, 12, 128, 84, 21, 0, 47, 15, 2, 95, 34, 84, 37, 51, 81, 39, 55, 36, 47,
-			12, 36, 0, 10, 199, 20, 229, 21, 76, 144, 83, 52, 67, 10, 199, 8, 243, 129, 12, 243, 19, 36, 15, 10, 199, 4, 229, 9, 76, 84,
-			19, 36, 15, 0, 23, 2, 95, 33, 48, 4, 40, 50, 47, 39, 36, 89, 49, 55, 35, 65, 35, 47, 6, 37, 84, 39, 0, 7, 196, 20,
-			193, 84, 80, 15, 0, 12, 201, 36, 229, 18, 5, 97, 68, 21, 33, 64, 68, 14, 73, 76, 128, 75, 21, 52, 5, 5, 33, 64, 21, 0,
-			47, 12, 201, 64, 243, 9, 52, 84, 212, 61, 33, 64, 67, 12, 201, 64, 144, 90, 104, 21, 15, 73, 33, 64, 16, 10, 199, 24, 147, 129,
-			48, 35, 210, 28, 16, 11, 200, 16, 244, 16, 36, 244, 5, 81, 64, 15, 12, 201, 8, 245, 76, 21, 85, 5, 72, 147, 206, 16, 0, 7,
-			195, 12, 243, 128, 76, 46, 15, 2, 95, 39, 35, 48, 6, 110, 89, 47, 51, 39, 83, 39, 0, 14, 203, 88, 147, 12, 5, 96, 76, 48,
-			83, 15, 56, 112, 15, 7, 196, 73, 81, 137, 56, 65, 9, 198, 64, 19, 5, 52, 243, 133, 15, 9, 198, 48, 83, 211, 80, 83, 133, 66,
-			9, 198, 24, 147, 5, 52, 243, 133, 15, 9, 198, 16, 147, 143, 52, 83, 133, 66, 9, 198, 12, 194, 83, 80, 83, 133, 65, 8, 196, 8,
-			85, 15, 56, 66, 15, 0, 9, 2, 209, 146, 72, 57, 109, 12, 0, 11, 200, 77, 1, 83, 76, 147, 69, 81, 32, 66, 9, 198, 52, 243,
-			143, 64, 85, 20, 15, 9, 198, 36, 225, 9, 72, 85, 20, 15, 9, 198, 9, 32, 67, 12, 85, 20, 16, 0, 8, 197, 16, 83, 79, 56,
-			144, 65, 6, 195, 4, 210, 67, 66, 9, 2, 209, 145, 21, 114, 117, 0, 47, 8, 197, 52, 18, 79, 72, 144, 16, 8, 197, 16, 83, 79,
-			56, 144, 67, 8, 197, 12, 84, 131, 32, 144, 16, 8, 197, 8, 244, 135, 32, 144, 16, 8, 197, 5, 33, 193, 48, 144, 67, 8, 197, 5,
-			32, 77, 20, 144, 67, 0, 9, 198, 72, 148, 207, 49, 97, 82, 66, 9, 198, 72, 85, 143, 49, 97, 82, 66, 20, 70, 12, 243, 80, 85,
-			65, 82, 49, 39, 65, 48, 57, 6, 40, 47, 36, 14, 16, 0, 9, 198, 85, 48, 133, 12, 130, 64, 15, 9, 198, 77, 65, 70, 4, 226,
-			64, 65, 6, 195, 72, 245, 26, 15, 9, 198, 72, 85, 143, 49, 97, 82, 15, 9, 198, 64, 243, 3, 21, 97, 82, 66, 9, 198, 52, 20,
-			195, 4, 194, 64, 65, 9, 198, 36, 224, 197, 56, 66, 64, 15, 9, 198, 16, 80, 197, 56, 226, 64, 15, 9, 198, 12, 144, 204, 4, 66,
-			64, 65, 9, 198, 4, 65, 78, 60, 209, 82, 67, 9, 198, 4, 48, 197, 28, 194, 64, 15, 0, 7, 195, 21, 35, 192, 77, 46, 8, 197,
-			69, 81, 83, 80, 240, 76, 7, 196, 5, 4, 5, 56, 16, 0, 9, 198, 65, 33, 79, 12, 53, 80, 66, 0, 8, 197, 72, 147, 73, 56,
-			144, 65, 21, 2, 95, 41, 49, 57, 4, 40, 88, 35, 48, 35, 51, 6, 36, 50, 47, 36, 88, 37, 0, 8, 197, 81, 83, 137, 76, 144,
-			65, 14, 203, 61, 98, 68, 21, 3, 211, 37, 162, 79, 56, 80, 15, 8, 197, 61, 32, 77, 4, 144, 67, 0, 9, 2, 209, 156, 49, 57,
-			109, 12, 0, 22, 2, 95, 40, 35, 48, 4, 36, 51, 47, 35, 48, 35, 51, 6, 36, 50, 47, 36, 88, 37, 0, 6, 195, 76, 245, 146,
-			16, 9, 198, 16, 244, 143, 80, 82, 64, 67, 0, 9, 198, 65, 35, 198, 84, 114, 9, 65, 9, 198, 16, 144, 76, 60, 114, 9, 65, 7,
-			195, 64, 84, 128, 76, 46, 8, 2, 209, 155, 78, 109, 12, 0, 0, 13, 68, 4, 228, 201, 20, 6, 35, 50, 89, 37, 36, 0, 11, 2,
-			95, 46, 48, 40, 50, 47, 39, 0, 27, 9, 198, 76, 243, 15, 64, 16, 192, 67, 9, 198, 56, 83, 199, 72, 80, 192, 15, 9, 198, 20,
-			225, 137, 80, 85, 84, 67, 0, 12, 201, 52, 144, 200, 20, 192, 78, 28, 83, 15, 67, 6, 195, 12, 147, 225, 76, 14, 2, 95, 45, 47,
-			14, 16, 35, 47, 12, 37, 50, 39, 0, 9, 198, 5, 32, 200, 20, 192, 79, 67, 0, 13, 2, 95, 44, 84, 6, 37, 51, 81, 39, 55,
-			35, 0, 6, 195, 4, 49, 82, 65, 0, 9, 2, 95, 51, 47, 51, 6, 36, 0, 10, 198, 65, 33, 83, 8, 149, 5, 65, 15, 9, 198,
-			24, 147, 1, 72, 85, 5, 15, 15, 69, 12, 243, 137, 84, 112, 49, 6, 39, 50, 37, 40, 75, 0, 9, 198, 12, 243, 80, 61, 53, 5,
-			16, 9, 198, 4, 229, 9, 24, 21, 5, 66, 0, 13, 68, 21, 67, 137, 20, 36, 47, 50, 6, 125, 36, 0, 14, 203, 64, 244, 148, 4,
-			51, 206, 80, 18, 78, 21, 32, 68, 9, 2, 95, 50, 72, 6, 40, 36, 0, 10, 199, 76, 16, 195, 5, 35, 211, 36, 15, 10, 199, 28,
-			19, 1, 81, 67, 211, 36, 15, 13, 202, 12, 20, 212, 20, 197, 5, 72, 210, 78, 36, 67, 9, 198, 8, 84, 148, 60, 193, 0, 15, 0,
-			9, 2, 95, 49, 6, 40, 50, 39, 0, 6, 195, 80, 244, 147, 16, 8, 197, 56, 243, 65, 16, 80, 65, 9, 198, 52, 243, 143, 64, 16,
-			203, 67, 7, 196, 12, 244, 133, 16, 65, 12, 201, 8, 244, 135, 61, 48, 84, 60, 195, 0, 16, 0, 12, 67, 72, 246, 154, 14, 16, 6,
-			110, 128, 12, 0, 11, 2, 95, 48, 128, 6, 36, 51, 39, 0, 76, 6, 195, 72, 246, 154, 16, 9, 198, 52, 147, 137, 28, 243, 6, 67,
-			9, 198, 9, 32, 71, 4, 66, 78, 67, 0, 9, 198, 24, 16, 201, 48, 149, 1, 66, 10, 67, 32, 243, 69, 107, 39, 12, 65, 0, 11,
-			2, 95, 55, 89, 6, 109, 47, 12, 36, 0, 9, 198, 52, 240, 207, 56, 84, 201, 66, 9, 198, 20, 211, 211, 80, 20, 201, 66, 6, 195,
-			4, 195, 197, 15, 7, 195, 4, 147, 69, 66, 15, 0, 9, 198, 80, 83, 148, 4, 227, 192, 65, 9, 198, 76, 83, 148, 4, 227, 192, 65,
-			9, 198, 64, 244, 148, 36, 227, 192, 65, 9, 198, 52, 243, 148, 4, 227, 192, 65, 9, 198, 12, 243, 132, 60, 227, 192, 66, 9, 198, 64,
-			16, 201, 4, 227, 192, 66, 9, 198, 8, 244, 132, 4, 227, 192, 66, 9, 198, 4, 48, 201, 4, 227, 192, 66, 9, 198, 48, 243, 148, 4,
-			227, 192, 66, 9, 2, 95, 54, 89, 6, 109, 57, 0, 9, 198, 57, 83, 129, 80, 18, 192, 67, 13, 202, 57, 80, 204, 20, 244, 201, 57,
-			65, 83, 36, 68, 8, 197, 52, 243, 154, 60, 224, 66, 9, 198, 12, 244, 146, 61, 69, 0, 16, 0, 12, 2, 95, 53, 76, 6, 37, 50,
-			49, 122, 36, 0, 16, 3, 95, 98, 110, 71, 109, 50, 81, 35, 55, 6, 109, 88, 36, 0, 8, 197, 80, 130, 69, 76, 144, 15, 9, 198,
-			72, 82, 77, 64, 145, 71, 15, 8, 197, 48, 243, 135, 32, 144, 15, 7, 195, 20, 209, 83, 65, 15, 0, 7, 196, 56, 83, 12, 60, 76,
-			14, 2, 95, 52, 49, 122, 6, 35, 47, 12, 14, 16, 39, 0, 9, 198, 24, 244, 196, 36, 227, 214, 15, 9, 198, 20, 227, 133, 76, 147,
-			64, 15, 0, 13, 5, 115, 97, 114, 195, 178, 89, 35, 51, 6, 110, 0, 9, 2, 208, 183, 21, 114, 117, 0, 47, 20, 2, 95, 59, 48,
-			4, 40, 50, 47, 39, 36, 84, 6, 37, 51, 81, 39, 55, 35, 0, 9, 198, 105, 80, 195, 32, 84, 137, 65, 9, 198, 28, 21, 68, 20,
-			230, 137, 15, 9, 198, 25, 37, 77, 20, 230, 137, 15, 6, 195, 16, 243, 65, 15, 9, 198, 8, 147, 1, 80, 84, 137, 66, 12, 201, 5,
-			3, 195, 5, 64, 83, 80, 20, 201, 68, 6, 195, 4, 227, 193, 15, 0, 9, 2, 208, 182, 21, 114, 117, 0, 47, 15, 2, 95, 58, 72,
-			4, 40, 36, 48, 6, 40, 50, 47, 37, 0, 7, 196, 80, 20, 211, 36, 66, 7, 196, 76, 84, 19, 36, 15, 13, 202, 64, 20, 148, 20,
-			227, 199, 20, 225, 83, 36, 68, 11, 200, 12, 20, 212, 20, 195, 149, 61, 96, 15, 8, 197, 5, 69, 15, 72, 224, 16, 0, 8, 67, 40,
-			16, 203, 21, 0, 47, 16, 70, 12, 128, 80, 48, 147, 128, 76, 6, 35, 48, 55, 37, 68, 0, 10, 2, 95, 57, 50, 6, 110, 84, 36,
-			0, 9, 2, 208, 181, 21, 114, 117, 0, 47, 8, 197, 76, 148, 212, 20, 208, 15, 9, 198, 76, 147, 134, 61, 35, 211, 15, 10, 199, 76,
-			81, 206, 5, 3, 211, 80, 16, 10, 199, 24, 84, 146, 4, 115, 211, 80, 16, 7, 196, 12, 16, 129, 48, 65, 0, 17, 70, 16, 148, 208,
-			48, 22, 64, 72, 37, 89, 48, 55, 6, 36, 37, 0, 10, 2, 95, 56, 6, 110, 47, 12, 39, 0, 9, 2, 208, 180, 21, 114, 117, 0,
-			47, 10, 198, 76, 241, 204, 36, 243, 0, 65, 15, 9, 198, 28, 243, 5, 4, 67, 210, 68, 8, 197, 12, 20, 211, 60, 192, 66, 0, 9,
-			2, 208, 179, 21, 114, 117, 0, 47, 24, 2, 95, 63, 48, 4, 40, 50, 47, 39, 37, 50, 47, 36, 51, 39, 81, 35, 47, 6, 37, 84,
-			39, 0, 6, 195, 76, 243, 77, 16, 7, 196, 64, 19, 73, 72, 66, 10, 199, 60, 113, 201, 28, 147, 210, 56, 16, 6, 195, 56, 245, 137,
-			15, 0, 12, 201, 4, 195, 15, 57, 64, 78, 36, 227, 192, 67, 10, 199, 8, 150, 154, 5, 36, 137, 20, 67, 10, 199, 4, 52, 143, 8,
-			22, 137, 4, 68, 12, 67, 24, 144, 84, 83, 6, 37, 35, 74, 0, 46, 9, 2, 208, 178, 21, 114, 117, 0, 47, 18, 2, 95, 62, 49,
-			57, 4, 40, 88, 35, 6, 35, 50, 81, 39, 55, 39, 0, 10, 199, 96, 83, 143, 24, 240, 137, 4, 68, 6, 195, 76, 85, 20, 15, 6,
-			195, 76, 85, 20, 15, 6, 195, 72, 85, 20, 15, 10, 199, 12, 16, 200, 21, 52, 201, 4, 67, 0, 12, 201, 36, 212, 12, 20, 209, 78,
-			80, 19, 143, 67, 12, 201, 5, 4, 1, 73, 65, 78, 28, 19, 143, 67, 12, 201, 84, 197, 18, 4, 211, 206, 80, 19, 143, 68, 12, 201,
-			84, 197, 18, 4, 211, 206, 16, 19, 143, 68, 12, 201, 76, 244, 18, 4, 211, 206, 16, 19, 143, 68, 12, 201, 64, 20, 146, 60, 48, 200,
-			36, 19, 143, 68, 9, 2, 208, 177, 21, 114, 117, 0, 47, 7, 196, 76, 49, 76, 80, 16, 6, 195, 72, 245, 0, 15, 7, 196, 69, 82,
-			69, 80, 15, 8, 196, 16, 80, 137, 80, 65, 16, 7, 195, 12, 130, 79, 66, 15, 7, 196, 12, 19, 143, 64, 15, 7, 196, 8, 144, 137,
-			80, 65, 0, 9, 2, 208, 176, 21, 114, 117, 0, 47, 19, 2, 95, 60, 35, 48, 4, 36, 51, 47, 35, 6, 35, 50, 81, 39, 55, 39,
-			0, 6, 195, 76, 227, 194, 15, 10, 199, 12, 243, 12, 20, 195, 206, 28, 15, 0, 9, 67, 8, 243, 205, 71, 40, 65, 0, 9, 2, 208,
-			191, 21, 114, 117, 0, 47, 8, 196, 61, 101, 133, 72, 66, 16, 10, 198, 61, 69, 5, 56, 84, 133, 67, 16, 7, 196, 60, 225, 193, 72,
-			65, 9, 198, 52, 148, 197, 72, 84, 133, 67, 9, 198, 12, 21, 1, 48, 148, 201, 66, 0, 6, 2, 208, 190, 110, 0, 6, 195, 64, 244,
-			16, 16, 9, 198, 56, 144, 197, 72, 21, 0, 66, 0, 9, 2, 208, 189, 21, 114, 117, 0, 47, 7, 196, 52, 84, 137, 80, 65, 7, 196,
-			4, 208, 137, 80, 65, 0, 9, 2, 208, 188, 21, 114, 117, 0, 47, 14, 2, 95, 64, 49, 37, 6, 39, 76, 12, 39, 55, 35, 0, 0,
-			8, 197, 17, 80, 137, 80, 240, 65, 14, 203, 76, 245, 20, 61, 0, 82, 4, 116, 129, 24, 144, 68, 9, 2, 208, 187, 21, 114, 117, 0,
-			47, 8, 197, 77, 80, 137, 80, 240, 65, 10, 198, 65, 35, 199, 56, 244, 201, 65, 15, 9, 198, 64, 20, 129, 48, 148, 201, 66, 9, 198,
-			52, 20, 133, 81, 66, 77, 16, 9, 198, 4, 224, 67, 48, 20, 201, 66, 9, 198, 4, 210, 76, 12, 20, 133, 66, 8, 197, 4, 52, 85,
-			20, 240, 65, 0, 9, 198, 21, 97, 82, 21, 53, 0, 65, 9, 198, 5, 48, 201, 4, 227, 192, 66, 9, 198, 64, 21, 18, 60, 227, 192,
-			66, 9, 198, 4, 32, 137, 4, 227, 192, 65, 9, 2, 208, 186, 21, 114, 117, 0, 47, 18, 70, 4, 32, 129, 36, 227, 192, 35, 71, 12,
-			35, 6, 37, 12, 50, 39, 0, 0, 16, 2, 208, 185, 6, 126, 15, 20, 71, 14, 16, 6, 36, 84, 36, 0, 9, 197, 56, 244, 212, 60,
-			144, 65, 16, 7, 196, 56, 80, 149, 48, 16, 6, 195, 28, 147, 199, 16, 8, 197, 24, 243, 79, 72, 144, 65, 8, 197, 21, 53, 15, 56,
-			144, 65, 8, 197, 21, 21, 73, 16, 144, 15, 0, 10, 199, 65, 35, 214, 60, 48, 78, 60, 65, 10, 199, 28, 149, 68, 36, 48, 78, 60,
-			65, 10, 199, 4, 195, 1, 12, 50, 78, 60, 66, 9, 198, 76, 50, 9, 48, 193, 82, 65, 7, 196, 16, 83, 12, 60, 76, 20, 2, 208,
-			184, 57, 36, 34, 112, 15, 20, 40, 49, 14, 16, 6, 35, 37, 50, 110, 0, 6, 195, 80, 244, 142, 16, 9, 198, 52, 243, 135, 60, 194,
-			64, 15, 9, 198, 8, 240, 195, 4, 225, 82, 16, 9, 198, 8, 20, 130, 4, 225, 82, 16, 0, 12, 201, 88, 84, 137, 24, 144, 193, 80,
-			20, 201, 68, 8, 197, 88, 244, 212, 72, 240, 76, 8, 197, 56, 244, 212, 72, 240, 76, 9, 198, 64, 244, 137, 24, 84, 137, 66, 6, 195,
-			64, 84, 149, 66, 9, 198, 8, 243, 7, 32, 84, 137, 65, 0, 18, 70, 72, 82, 78, 88, 147, 192, 14, 16, 36, 37, 50, 84, 6, 37,
-			39, 0, 9, 198, 4, 209, 82, 36, 115, 192, 66, 9, 198, 4, 32, 137, 4, 211, 192, 76, 10, 198, 4, 32, 137, 4, 211, 192, 76, 32,
-			0, 8, 197, 84, 243, 73, 56, 144, 65, 10, 198, 80, 83, 5, 24, 243, 128, 66, 15, 9, 198, 72, 19, 65, 16, 19, 128, 67, 9, 198,
-			25, 32, 83, 76, 147, 128, 65, 0, 10, 199, 5, 84, 208, 36, 48, 78, 60, 65, 9, 198, 12, 244, 142, 36, 50, 64, 66, 6, 195, 20,
-			65, 82, 65, 0, 6, 195, 16, 224, 64, 13, 30, 4, 95, 226, 128, 161, 49, 14, 16, 6, 39, 76, 36, 15, 55, 35, 47, 6, 37, 50,
-			35, 15, 72, 6, 110, 48, 12, 37, 35, 0, 0, 8, 196, 24, 84, 137, 20, 65, 15, 22, 4, 95, 226, 128, 160, 49, 14, 16, 6, 39,
-			76, 36, 15, 55, 35, 47, 6, 37, 50, 35, 0, 6, 195, 76, 227, 196, 15, 0, 7, 196, 77, 2, 69, 16, 15, 0, 17, 70, 12, 128,
-			77, 64, 147, 206, 76, 6, 109, 65, 48, 37, 39, 50, 0, 6, 195, 88, 85, 18, 16, 9, 198, 20, 225, 15, 13, 34, 78, 66, 0, 6,
-			195, 85, 48, 128, 13, 13, 3, 95, 101, 108, 81, 14, 16, 6, 36, 49, 110, 0, 6, 195, 80, 80, 192, 15, 6, 195, 16, 80, 192, 15,
-			0, 10, 199, 20, 225, 137, 80, 85, 83, 36, 67, 10, 199, 13, 34, 83, 61, 53, 15, 52, 66, 0, 10, 199, 4, 208, 82, 60, 115, 143,
-			48, 67, 29, 4, 95, 226, 128, 155, 84, 37, 51, 81, 39, 55, 6, 109, 47, 12, 35, 15, 89, 37, 50, 6, 37, 89, 47, 14, 16, 35,
-			0, 7, 195, 20, 97, 83, 65, 15, 6, 195, 12, 193, 83, 15, 10, 199, 9, 35, 206, 12, 130, 79, 48, 66, 7, 196, 5, 36, 133, 16,
-			15, 6, 195, 4, 193, 83, 15, 0, 12, 201, 76, 83, 5, 104, 147, 206, 4, 193, 64, 68, 28, 4, 95, 226, 128, 154, 84, 37, 51, 81,
-			39, 55, 6, 109, 47, 12, 35, 15, 37, 50, 15, 71, 6, 35, 89, 89, 39, 0, 12, 201, 52, 243, 148, 21, 49, 71, 4, 193, 64, 67,
-			0, 18, 70, 28, 22, 154, 21, 69, 1, 81, 35, 128, 12, 6, 109, 47, 12, 35, 0, 8, 67, 80, 147, 69, 21, 0, 47, 6, 195, 12,
-			243, 69, 76, 6, 195, 80, 243, 69, 66, 7, 195, 60, 35, 197, 65, 15, 6, 195, 12, 195, 197, 15, 0, 9, 198, 81, 84, 130, 36, 227,
-			192, 65, 9, 198, 81, 84, 130, 4, 227, 192, 65, 9, 198, 72, 81, 199, 4, 227, 192, 65, 9, 198, 64, 83, 147, 4, 227, 192, 65, 9,
-			198, 48, 81, 199, 4, 227, 192, 65, 9, 198, 48, 19, 131, 36, 227, 192, 65, 9, 198, 28, 20, 130, 4, 227, 192, 65, 9, 198, 12, 84,
-			131, 4, 227, 192, 65, 9, 198, 8, 240, 195, 36, 227, 192, 65, 9, 198, 80, 244, 195, 4, 227, 192, 66, 9, 198, 72, 241, 206, 4, 227,
-			192, 66, 9, 198, 52, 244, 135, 4, 227, 192, 66, 9, 198, 52, 148, 195, 4, 227, 192, 66, 9, 198, 28, 16, 130, 4, 227, 192, 66, 9,
-			198, 12, 244, 154, 4, 227, 192, 66, 9, 198, 12, 243, 154, 4, 227, 192, 66, 7, 196, 64, 241, 199, 36, 15, 7, 196, 12, 147, 133, 52,
-			65, 0, 7, 196, 13, 80, 213, 48, 66, 0, 10, 199, 76, 48, 82, 36, 48, 78, 60, 65, 10, 199, 36, 225, 143, 72, 210, 78, 60, 66,
-			10, 199, 12, 243, 150, 60, 48, 78, 60, 65, 10, 199, 5, 69, 5, 56, 112, 78, 60, 66, 10, 199, 76, 245, 146, 5, 67, 206, 60, 67,
-			13, 68, 61, 163, 206, 60, 39, 128, 6, 39, 50, 39, 0, 10, 199, 52, 144, 210, 61, 67, 206, 60, 67, 15, 3, 95, 103, 117, 81, 40,
-			75, 35, 51, 6, 35, 47, 37, 0, 37, 4, 95, 226, 128, 158, 72, 4, 110, 48, 12, 37, 36, 15, 84, 37, 14, 16, 81, 39, 55, 6,
-			109, 47, 12, 36, 15, 37, 50, 15, 71, 6, 35, 89, 89, 39, 0, 7, 196, 64, 243, 148, 60, 15, 9, 198, 20, 225, 137, 76, 83, 64,
-			15, 10, 198, 4, 229, 9, 76, 243, 64, 67, 15, 0, 28, 67, 12, 129, 64, 49, 36, 15, 49, 6, 35, 48, 37, 47, 35, 50, 39, 0,
-			81, 99, 97, 112, 105, 116, 97, 110, 111, 32, 9, 198, 12, 17, 204, 36, 20, 137, 65, 7, 195, 12, 129, 64, 76, 28, 20, 2, 95, 91,
-			35, 48, 6, 36, 51, 47, 35, 49, 122, 6, 35, 72, 14, 16, 35, 0, 6, 195, 16, 81, 192, 15, 9, 198, 13, 81, 204, 36, 84, 137,
-			65, 0, 9, 198, 8, 84, 135, 4, 211, 192, 65, 16, 70, 24, 148, 195, 32, 147, 192, 83, 6, 37, 89, 49, 37, 39, 0, 9, 198, 5,
-			100, 133, 52, 211, 192, 76, 9, 198, 76, 20, 133, 52, 211, 192, 76, 9, 198, 80, 84, 146, 20, 211, 212, 15, 0, 6, 195, 76, 241, 0,
-			15, 10, 199, 64, 19, 12, 4, 229, 79, 80, 15, 10, 199, 61, 34, 84, 80, 84, 143, 64, 67, 10, 198, 60, 210, 67, 72, 243, 128, 65,
-			15, 10, 199, 5, 85, 15, 64, 147, 15, 80, 15, 0, 10, 199, 16, 149, 133, 56, 112, 78, 60, 66, 10, 199, 5, 101, 133, 56, 112, 78,
-			60, 66, 9, 66, 88, 144, 84, 37, 0, 76, 46, 5, 194, 84, 176, 13, 9, 198, 76, 48, 78, 16, 19, 0, 65, 12, 201, 24, 21, 20,
-			37, 52, 5, 12, 145, 64, 15, 29, 74, 12, 244, 148, 60, 50, 82, 13, 82, 84, 60, 49, 110, 14, 16, 47, 39, 76, 37, 14, 16, 49,
-			6, 40, 37, 47, 39, 0, 0, 18, 2, 95, 95, 89, 39, 47, 12, 39, 55, 37, 50, 36, 6, 35, 47, 39, 0, 8, 197, 65, 35, 212,
-			5, 48, 65, 6, 195, 60, 130, 64, 15, 8, 197, 28, 243, 142, 21, 48, 15, 8, 197, 24, 17, 68, 37, 48, 15, 0, 12, 201, 72, 147,
-			135, 72, 22, 137, 4, 227, 192, 66, 12, 201, 16, 85, 5, 72, 210, 78, 4, 227, 192, 66, 12, 201, 12, 243, 134, 36, 117, 82, 36, 227,
-			192, 67, 12, 201, 12, 243, 131, 20, 229, 18, 36, 227, 192, 66, 10, 199, 4, 227, 129, 52, 20, 137, 4, 68, 10, 67, 92, 21, 20, 84,
-			35, 74, 12, 0, 21, 71, 76, 16, 210, 21, 53, 9, 20, 89, 35, 49, 14, 16, 36, 89, 47, 6, 37, 36, 0, 10, 199, 28, 243, 129,
-			73, 68, 137, 4, 67, 20, 71, 5, 85, 15, 56, 243, 73, 20, 35, 40, 47, 39, 50, 39, 65, 6, 37, 36, 0, 13, 2, 95, 94, 49,
-			35, 48, 12, 40, 76, 12, 39, 0, 10, 199, 76, 52, 137, 88, 19, 137, 4, 67, 6, 195, 72, 245, 20, 16, 10, 199, 65, 34, 71, 36,
-			243, 137, 4, 67, 10, 199, 64, 192, 78, 5, 33, 201, 4, 66, 10, 199, 52, 148, 207, 28, 147, 137, 4, 68, 10, 199, 52, 145, 204, 36,
-			244, 137, 4, 67, 10, 199, 52, 144, 83, 80, 83, 137, 4, 68, 10, 199, 48, 81, 193, 80, 244, 137, 4, 68, 6, 195, 16, 145, 84, 15,
-			10, 199, 13, 34, 79, 28, 83, 137, 4, 68, 13, 202, 12, 149, 137, 80, 21, 133, 12, 50, 9, 4, 15, 10, 199, 9, 34, 83, 28, 245,
-			137, 4, 15, 6, 195, 8, 145, 84, 15, 10, 198, 8, 18, 129, 104, 85, 0, 67, 16, 0, 7, 196, 20, 48, 201, 80, 65, 19, 2, 95,
-			93, 49, 57, 4, 40, 88, 35, 49, 122, 6, 35, 72, 14, 16, 35, 0, 7, 196, 13, 80, 137, 80, 65, 7, 196, 12, 21, 5, 80, 15,
-			9, 198, 4, 225, 137, 5, 32, 79, 67, 0, 9, 198, 76, 52, 149, 64, 243, 0, 65, 21, 4, 95, 226, 128, 150, 72, 4, 39, 48, 12,
-			37, 35, 15, 71, 6, 35, 51, 16, 35, 0, 6, 195, 28, 195, 194, 15, 6, 195, 8, 83, 66, 15, 10, 198, 5, 53, 78, 12, 147, 206,
-			67, 16, 0, 25, 4, 95, 226, 128, 149, 71, 6, 35, 51, 16, 35, 15, 39, 51, 37, 128, 110, 50, 47, 6, 35, 55, 36, 0, 7, 196,
-			88, 84, 208, 72, 15, 8, 197, 72, 148, 207, 73, 48, 16, 8, 197, 72, 144, 207, 73, 48, 16, 7, 196, 52, 244, 212, 72, 16, 9, 198,
-			12, 84, 129, 56, 84, 201, 66, 0, 8, 67, 8, 81, 80, 21, 0, 47, 6, 195, 85, 5, 80, 65, 6, 195, 12, 193, 84, 15, 0, 7,
-			196, 16, 145, 201, 80, 65, 12, 3, 95, 97, 114, 6, 35, 51, 35, 71, 110, 0, 7, 2, 95, 97, 35, 12, 0, 10, 199, 69, 80, 68,
-			72, 148, 15, 48, 67, 9, 198, 52, 19, 20, 20, 212, 0, 15, 8, 196, 48, 80, 201, 80, 65, 16, 7, 196, 21, 84, 137, 80, 65, 8,
-			197, 20, 226, 201, 17, 80, 15, 7, 196, 5, 67, 5, 80, 15, 7, 196, 4, 67, 69, 80, 15, 0, 8, 67, 40, 22, 154, 21, 0, 47,
-			13, 2, 95, 96, 71, 35, 49, 48, 14, 16, 117, 65, 0, 10, 198, 104, 84, 16, 20, 194, 78, 65, 15, 6, 195, 4, 50, 78, 65, 0,
-			12, 201, 36, 229, 18, 5, 69, 5, 56, 84, 133, 68, 6, 195, 64, 21, 21, 66, 12, 201, 12, 20, 212, 20, 197, 133, 80, 84, 133, 15,
-			0, 9, 198, 77, 83, 206, 4, 227, 192, 65, 9, 198, 77, 65, 70, 4, 227, 192, 65, 9, 198, 12, 20, 141, 20, 195, 192, 66, 9, 198,
-			8, 243, 26, 4, 227, 192, 66, 7, 196, 20, 54, 133, 52, 15, 0, 7, 2, 95, 101, 36, 12, 0, 7, 196, 76, 81, 9, 48, 66, 7,
-			196, 8, 85, 9, 48, 16, 0, 10, 199, 36, 225, 15, 77, 50, 78, 60, 66, 10, 199, 21, 52, 18, 36, 208, 78, 60, 66, 10, 199, 4,
-			195, 15, 28, 114, 78, 60, 66, 7, 196, 24, 19, 142, 60, 77, 9, 198, 76, 48, 76, 36, 113, 82, 66, 9, 198, 65, 33, 67, 4, 209,
-			82, 66, 9, 198, 56, 144, 207, 16, 83, 64, 15, 9, 198, 28, 84, 143, 48, 19, 64, 66, 12, 201, 20, 225, 15, 76, 50, 5, 48, 85,
-			18, 67, 7, 195, 20, 50, 74, 65, 16, 9, 198, 4, 208, 76, 28, 19, 64, 66, 0, 6, 195, 48, 83, 192, 16, 9, 198, 12, 128, 77,
-			8, 84, 153, 16, 0, 9, 198, 72, 245, 21, 48, 83, 192, 66, 7, 196, 64, 148, 129, 52, 65, 9, 198, 20, 212, 9, 72, 83, 192, 66,
-			0, 9, 198, 12, 19, 69, 73, 83, 128, 65, 7, 2, 95, 105, 37, 12, 0, 0, 10, 199, 72, 148, 213, 49, 64, 78, 60, 66, 10, 199,
-			4, 195, 1, 72, 112, 78, 60, 66, 10, 199, 76, 81, 207, 57, 160, 78, 60, 67, 10, 199, 9, 37, 83, 12, 144, 78, 60, 66, 10, 199,
-			9, 33, 83, 12, 144, 78, 60, 66, 7, 196, 64, 83, 1, 28, 65, 7, 196, 52, 86, 9, 12, 16, 7, 196, 16, 83, 5, 28, 65, 0,
-			9, 198, 4, 229, 9, 48, 244, 9, 66, 6, 195, 76, 244, 192, 13, 7, 2, 95, 111, 39, 12, 0, 6, 195, 12, 244, 192, 15, 0, 9,
-			198, 8, 83, 133, 16, 144, 192, 67, 9, 198, 49, 81, 15, 88, 144, 192, 67, 9, 198, 24, 81, 5, 72, 144, 192, 67, 9, 198, 104, 20,
-			133, 88, 144, 192, 15, 9, 198, 81, 34, 67, 32, 80, 192, 15, 7, 196, 64, 145, 86, 20, 15, 10, 198, 60, 197, 18, 20, 211, 196, 67,
-			15, 9, 198, 20, 229, 5, 72, 144, 192, 16, 9, 198, 20, 193, 71, 36, 16, 192, 67, 7, 196, 9, 33, 86, 20, 15, 0, 10, 199, 16,
-			148, 193, 8, 147, 9, 80, 67, 10, 199, 77, 65, 82, 20, 245, 9, 64, 67, 0, 8, 197, 12, 243, 134, 36, 64, 66, 9, 198, 64, 148,
-			212, 60, 192, 64, 66, 9, 198, 4, 227, 205, 4, 192, 64, 66, 14, 3, 95, 104, 101, 36, 71, 14, 16, 6, 117, 49, 110, 0, 8, 197,
-			80, 244, 130, 36, 64, 16, 0, 7, 196, 76, 52, 143, 24, 15, 9, 198, 52, 85, 1, 80, 84, 201, 66, 12, 201, 24, 244, 129, 52, 147,
-			137, 24, 84, 137, 68, 9, 198, 4, 224, 77, 56, 84, 201, 66, 10, 199, 4, 193, 5, 8, 20, 129, 56, 68, 0, 10, 67, 40, 244, 226,
-			21, 101, 115, 0, 47, 13, 68, 64, 244, 212, 4, 48, 6, 110, 89, 47, 35, 0, 7, 196, 80, 243, 22, 20, 15, 10, 199, 76, 83, 5,
-			84, 50, 68, 20, 66, 9, 198, 76, 48, 82, 64, 19, 148, 65, 9, 198, 72, 145, 146, 20, 65, 0, 16, 9, 198, 5, 32, 193, 56, 113,
-			76, 66, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76, 36, 49, 0, 0, 9, 198, 64, 84, 149, 28, 144, 64, 66, 9, 198, 28, 147,
-			210, 28, 144, 64, 65, 18, 70, 72, 144, 86, 88, 144, 64, 14, 16, 37, 35, 84, 12, 6, 125, 35, 0, 9, 198, 52, 16, 197, 72, 144,
-			64, 66, 9, 198, 36, 66, 79, 104, 144, 64, 68, 9, 198, 104, 83, 143, 8, 144, 64, 15, 9, 198, 81, 32, 78, 88, 144, 64, 66, 9,
-			198, 76, 147, 143, 64, 144, 64, 15, 9, 198, 72, 81, 193, 48, 144, 64, 67, 9, 198, 65, 83, 9, 104, 144, 64, 67, 9, 198, 64, 83,
-			148, 5, 67, 0, 65, 9, 198, 64, 83, 148, 5, 67, 0, 15, 9, 198, 52, 148, 197, 72, 144, 64, 66, 9, 198, 36, 225, 129, 52, 144,
-			64, 66, 9, 198, 25, 83, 137, 88, 144, 64, 67, 9, 198, 24, 21, 71, 48, 144, 64, 66, 9, 198, 21, 161, 67, 32, 144, 64, 67, 9,
-			198, 21, 84, 129, 76, 144, 64, 67, 9, 198, 21, 81, 15, 12, 144, 64, 15, 9, 198, 21, 52, 5, 72, 144, 64, 66, 6, 195, 16, 246,
-			154, 16, 9, 198, 16, 21, 1, 72, 144, 64, 67, 9, 198, 13, 84, 129, 104, 144, 64, 67, 9, 198, 12, 20, 143, 56, 144, 64, 67, 9,
-			198, 12, 19, 15, 72, 144, 64, 67, 9, 198, 5, 64, 83, 76, 144, 64, 67, 9, 198, 5, 53, 5, 72, 144, 64, 66, 9, 198, 5, 37,
-			5, 72, 144, 64, 66, 9, 198, 5, 35, 79, 56, 144, 64, 67, 9, 198, 5, 34, 84, 52, 144, 64, 67, 10, 198, 5, 33, 5, 76, 144,
-			64, 66, 15, 9, 198, 5, 32, 197, 88, 144, 64, 15, 9, 198, 4, 209, 71, 48, 144, 64, 15, 9, 198, 4, 192, 129, 56, 144, 64, 67,
-			9, 198, 4, 84, 143, 88, 144, 64, 67, 9, 198, 4, 32, 129, 104, 144, 64, 67, 0, 0, 8, 197, 80, 147, 80, 4, 224, 65, 7, 196,
-			73, 83, 212, 36, 15, 9, 198, 72, 17, 206, 5, 65, 76, 16, 8, 197, 64, 21, 20, 36, 224, 65, 8, 197, 36, 229, 15, 72, 224, 16,
-			9, 198, 12, 243, 134, 21, 69, 0, 15, 0, 7, 2, 95, 117, 40, 12, 0, 0, 10, 199, 9, 32, 67, 12, 144, 78, 60, 66, 8, 197,
-			80, 19, 148, 4, 192, 65, 9, 198, 16, 243, 9, 4, 227, 214, 15, 8, 197, 13, 35, 212, 4, 192, 65, 8, 197, 12, 243, 132, 36, 192,
-			15, 8, 197, 5, 84, 133, 60, 192, 67, 0, 8, 67, 92, 245, 192, 21, 0, 47, 20, 2, 95, 123, 35, 48, 4, 36, 51, 47, 35, 81,
-			14, 16, 6, 35, 83, 12, 35, 0, 11, 200, 64, 145, 86, 21, 1, 76, 4, 112, 67, 7, 195, 52, 244, 197, 66, 15, 7, 196, 21, 34,
-			90, 104, 65, 6, 195, 16, 244, 197, 15, 9, 198, 8, 20, 149, 52, 147, 137, 66, 0, 20, 4, 95, 226, 128, 188, 36, 89, 49, 55, 35,
-			65, 35, 123, 37, 6, 110, 50, 36, 0, 7, 196, 80, 85, 20, 36, 15, 9, 198, 52, 20, 129, 52, 19, 192, 67, 10, 199, 36, 229, 5,
-			72, 209, 68, 36, 15, 8, 197, 24, 19, 3, 60, 224, 66, 9, 198, 8, 19, 131, 60, 227, 212, 15, 0, 9, 198, 12, 144, 83, 13, 83,
-			128, 79, 21, 4, 95, 226, 128, 179, 72, 6, 110, 48, 12, 37, 39, 15, 6, 35, 48, 37, 76, 36, 0, 12, 201, 88, 147, 12, 5, 52,
-			5, 12, 147, 211, 16, 6, 195, 80, 241, 0, 15, 15, 203, 12, 243, 80, 85, 64, 90, 36, 243, 129, 48, 80, 69, 16, 0, 9, 198, 77,
-			1, 90, 104, 19, 0, 65, 10, 199, 72, 147, 65, 56, 112, 78, 60, 66, 16, 3, 95, 106, 97, 75, 35, 48, 12, 39, 50, 6, 36, 88,
-			109, 0, 14, 4, 95, 226, 128, 178, 48, 14, 16, 6, 37, 65, 37, 0, 10, 199, 72, 147, 143, 64, 149, 5, 12, 15, 7, 196, 64, 243,
-			9, 76, 16, 9, 198, 64, 144, 90, 104, 243, 0, 66, 10, 199, 12, 147, 143, 64, 149, 5, 12, 15, 10, 199, 5, 32, 201, 64, 83, 1,
-			28, 67, 0, 7, 196, 104, 81, 137, 72, 65, 7, 196, 88, 147, 143, 88, 15, 9, 198, 80, 148, 129, 56, 226, 65, 67, 10, 198, 61, 37,
-			5, 57, 50, 65, 66, 15, 7, 195, 60, 20, 201, 65, 15, 9, 198, 52, 243, 133, 28, 194, 65, 15, 7, 196, 48, 144, 133, 72, 65, 7,
-			196, 48, 144, 133, 72, 65, 7, 196, 48, 16, 129, 72, 65, 9, 198, 28, 19, 66, 85, 50, 65, 66, 9, 198, 21, 2, 70, 4, 226, 65,
-			68, 9, 198, 16, 144, 67, 60, 226, 65, 68, 11, 200, 12, 84, 131, 61, 2, 84, 20, 48, 15, 9, 198, 12, 19, 148, 4, 36, 137, 65,
-			10, 199, 12, 19, 12, 36, 116, 129, 24, 66, 9, 198, 5, 4, 129, 77, 50, 65, 67, 9, 198, 4, 224, 82, 12, 130, 65, 67, 18, 70,
-			4, 195, 5, 49, 82, 65, 35, 55, 55, 109, 55, 6, 40, 37, 35, 0, 0, 12, 201, 72, 17, 4, 61, 4, 9, 4, 227, 192, 66, 12,
-			201, 16, 148, 212, 36, 225, 213, 4, 227, 192, 66, 15, 70, 5, 96, 78, 12, 84, 192, 35, 84, 6, 35, 50, 89, 0, 14, 3, 95, 107,
-			111, 49, 39, 34, 36, 6, 35, 50, 110, 0, 9, 198, 72, 80, 193, 72, 81, 0, 15, 6, 195, 64, 85, 20, 15, 6, 195, 36, 49, 84,
-			65, 9, 198, 5, 161, 79, 81, 35, 208, 67, 0, 12, 201, 36, 212, 12, 20, 209, 78, 80, 147, 143, 67, 9, 198, 21, 48, 83, 64, 84,
-			128, 66, 14, 3, 95, 107, 110, 49, 6, 35, 50, 12, 35, 72, 35, 0, 19, 2, 95, 125, 49, 57, 4, 40, 88, 35, 81, 14, 16, 6,
-			35, 83, 12, 35, 0, 6, 195, 80, 245, 0, 15, 7, 196, 28, 83, 73, 80, 65, 0, 6, 195, 80, 244, 0, 15, 10, 199, 77, 64, 78,
-			37, 51, 1, 60, 67, 9, 198, 52, 243, 5, 12, 243, 0, 15, 9, 198, 52, 148, 212, 72, 19, 0, 66, 0, 11, 70, 24, 148, 133, 24,
-			246, 0, 21, 0, 47, 10, 199, 88, 19, 16, 4, 229, 5, 56, 16, 10, 199, 76, 21, 143, 72, 115, 129, 56, 67, 8, 197, 12, 244, 148,
-			21, 48, 66, 0, 22, 4, 95, 226, 128, 180, 47, 14, 16, 6, 37, 48, 55, 39, 15, 6, 35, 48, 37, 76, 36, 0, 6, 195, 36, 98,
-			84, 65, 23, 73, 28, 84, 143, 28, 194, 70, 36, 51, 192, 75, 109, 51, 39, 61, 6, 37, 83, 37, 49, 39, 0, 9, 198, 21, 2, 84,
-			72, 149, 0, 66, 9, 198, 12, 243, 80, 36, 85, 0, 15, 9, 198, 4, 193, 129, 8, 85, 0, 15, 0, 7, 196, 48, 147, 73, 80, 65,
-			6, 195, 64, 84, 195, 15, 6, 195, 64, 84, 195, 15, 6, 195, 12, 244, 195, 15, 6, 195, 8, 244, 195, 15, 0, 16, 3, 95, 107, 97,
-			75, 36, 110, 14, 16, 75, 6, 35, 50, 110, 0, 6, 195, 28, 246, 154, 16, 0, 0, 9, 198, 76, 81, 213, 60, 227, 192, 65, 9, 198,
-			76, 19, 20, 4, 227, 192, 65, 9, 198, 76, 19, 16, 4, 227, 192, 65, 9, 198, 13, 33, 68, 4, 227, 192, 65, 9, 198, 8, 19, 12,
-			4, 227, 192, 65, 9, 198, 4, 114, 84, 36, 227, 192, 65, 9, 198, 4, 114, 84, 4, 227, 192, 65, 9, 198, 76, 20, 129, 56, 227, 192,
-			78, 9, 198, 72, 148, 208, 61, 53, 0, 16, 9, 197, 64, 243, 12, 36, 224, 65, 15, 8, 197, 9, 32, 68, 4, 224, 65, 0, 0, 9,
-			198, 64, 243, 9, 24, 83, 64, 15, 11, 199, 64, 193, 88, 36, 115, 1, 76, 65, 15, 9, 198, 52, 16, 193, 16, 19, 64, 67, 0, 10,
-			199, 65, 35, 205, 21, 69, 5, 72, 66, 10, 199, 12, 243, 142, 21, 69, 5, 72, 66, 9, 198, 80, 83, 5, 24, 147, 13, 67, 9, 198,
-			52, 147, 12, 20, 227, 137, 15, 10, 199, 20, 194, 67, 61, 69, 5, 72, 15, 10, 199, 12, 20, 212, 20, 195, 1, 72, 67, 0, 5, 130,
-			105, 58, 49, 8, 196, 24, 244, 211, 36, 77, 15, 9, 198, 81, 34, 80, 61, 53, 0, 16, 10, 199, 76, 83, 5, 84, 50, 68, 36, 66,
-			8, 197, 64, 144, 68, 20, 224, 66, 8, 197, 16, 243, 6, 36, 224, 66, 0, 10, 198, 12, 83, 1, 16, 243, 128, 65, 16, 0, 6, 194,
-			84, 224, 76, 46, 10, 199, 81, 32, 84, 4, 194, 65, 76, 67, 8, 197, 65, 35, 198, 36, 192, 66, 11, 200, 65, 34, 77, 60, 113, 78,
-			37, 64, 67, 7, 195, 4, 211, 210, 66, 16, 0, 10, 199, 12, 243, 77, 21, 69, 5, 72, 66, 10, 199, 4, 193, 88, 4, 225, 5, 72,
-			67, 10, 199, 64, 20, 211, 20, 113, 197, 72, 67, 10, 199, 77, 84, 16, 61, 37, 5, 72, 66, 9, 198, 81, 34, 70, 60, 115, 9, 15,
-			7, 196, 80, 83, 5, 24, 65, 10, 199, 77, 64, 84, 60, 193, 5, 72, 15, 10, 199, 72, 147, 80, 72, 245, 133, 72, 66, 0, 7, 196,
-			76, 51, 208, 4, 16, 7, 196, 76, 16, 200, 4, 66, 9, 198, 12, 83, 148, 72, 144, 192, 15, 9, 198, 4, 224, 67, 60, 225, 0, 15,
-			0, 10, 199, 88, 145, 5, 60, 51, 9, 64, 68, 10, 199, 64, 20, 211, 5, 65, 77, 64, 15, 0, 8, 197, 76, 244, 146, 36, 64, 66,
-			8, 197, 16, 145, 134, 36, 64, 66, 9, 198, 13, 33, 77, 60, 224, 64, 66, 9, 197, 64, 84, 131, 34, 32, 76, 28, 8, 197, 80, 244,
-			144, 20, 64, 15, 10, 199, 80, 83, 5, 88, 145, 5, 60, 67, 8, 197, 64, 84, 137, 60, 64, 66, 7, 196, 49, 83, 65, 12, 66, 8,
-			197, 12, 244, 146, 36, 64, 66, 0, 9, 198, 84, 226, 86, 60, 50, 5, 66, 6, 195, 25, 32, 64, 76, 14, 3, 95, 109, 108, 65, 35,
-			55, 6, 117, 55, 35, 65, 0, 7, 196, 77, 68, 143, 24, 15, 12, 201, 56, 144, 193, 72, 17, 213, 20, 228, 197, 16, 10, 199, 5, 32,
-			207, 12, 244, 197, 56, 16, 0, 10, 199, 4, 225, 18, 60, 209, 68, 4, 66, 10, 199, 81, 33, 80, 64, 145, 68, 20, 15, 10, 199, 80,
-			144, 133, 72, 144, 68, 20, 67, 8, 196, 76, 86, 154, 20, 66, 15, 7, 196, 65, 35, 214, 20, 15, 7, 196, 64, 193, 66, 20, 15, 9,
-			198, 24, 192, 77, 20, 224, 192, 16, 8, 196, 12, 17, 134, 20, 66, 15, 10, 199, 5, 32, 200, 36, 209, 68, 20, 15, 0, 13, 3, 95,
-			111, 114, 39, 12, 51, 6, 37, 35, 12, 0, 11, 200, 88, 83, 15, 12, 148, 5, 16, 80, 67, 0, 14, 3, 95, 104, 121, 35, 14, 16,
-			65, 6, 36, 50, 110, 0, 9, 198, 76, 51, 210, 16, 144, 64, 66, 9, 198, 73, 85, 5, 56, 144, 64, 15, 9, 198, 65, 32, 83, 76,
-			80, 64, 65, 9, 198, 64, 243, 9, 104, 144, 64, 67, 9, 198, 64, 20, 143, 16, 144, 64, 67, 9, 198, 61, 37, 9, 28, 144, 64, 66,
-			9, 198, 56, 145, 197, 72, 144, 64, 66, 9, 198, 52, 83, 15, 16, 144, 64, 67, 9, 198, 52, 21, 5, 72, 144, 64, 66, 9, 198, 48,
-			149, 1, 56, 144, 64, 67, 9, 198, 48, 81, 193, 104, 144, 64, 67, 10, 198, 16, 243, 15, 52, 144, 64, 66, 15, 8, 197, 12, 244, 146,
-			20, 64, 15, 9, 198, 8, 20, 143, 56, 144, 64, 67, 9, 198, 5, 53, 5, 56, 144, 64, 67, 9, 198, 5, 33, 207, 88, 144, 64, 15,
-			9, 198, 4, 227, 211, 52, 144, 64, 67, 9, 198, 4, 193, 207, 88, 144, 64, 15, 0, 10, 199, 80, 83, 196, 61, 50, 65, 56, 69, 12,
-			201, 72, 243, 80, 37, 48, 193, 80, 243, 5, 67, 7, 196, 72, 85, 9, 56, 65, 6, 195, 61, 68, 133, 16, 7, 196, 48, 19, 73, 56,
-			65, 0, 14, 69, 12, 131, 208, 36, 224, 91, 39, 48, 6, 109, 68, 0, 7, 196, 60, 48, 200, 36, 15, 0, 9, 198, 12, 144, 83, 13,
-			83, 143, 66, 0, 12, 201, 12, 243, 148, 72, 17, 4, 36, 50, 64, 67, 8, 197, 28, 83, 148, 36, 192, 66, 8, 197, 88, 19, 132, 4,
-			192, 65, 9, 197, 76, 241, 199, 60, 192, 66, 16, 8, 197, 76, 19, 132, 4, 192, 65, 12, 201, 69, 80, 84, 80, 244, 132, 36, 50, 64,
-			16, 7, 196, 52, 16, 193, 60, 66, 7, 196, 12, 16, 193, 60, 66, 11, 200, 4, 52, 85, 4, 100, 133, 16, 64, 16, 0, 18, 70, 28,
-			20, 129, 57, 162, 69, 81, 35, 51, 35, 50, 123, 6, 37, 36, 0, 19, 70, 12, 20, 133, 77, 66, 69, 49, 35, 14, 16, 36, 89, 47,
-			6, 37, 36, 0, 18, 70, 4, 211, 137, 77, 66, 69, 35, 65, 50, 37, 89, 47, 6, 37, 36, 0, 6, 195, 65, 84, 133, 77, 8, 197,
-			8, 147, 212, 61, 0, 66, 0, 7, 196, 20, 66, 76, 36, 65, 8, 197, 64, 20, 212, 20, 224, 65, 8, 197, 12, 241, 207, 72, 224, 16,
-			8, 197, 5, 32, 71, 60, 224, 67, 8, 197, 4, 48, 197, 56, 224, 16, 0, 9, 198, 4, 193, 197, 9, 34, 67, 15, 0, 10, 199, 64,
-			147, 129, 12, 245, 5, 12, 15, 9, 198, 52, 144, 200, 36, 83, 0, 66, 6, 195, 48, 84, 194, 15, 9, 198, 28, 144, 82, 4, 37, 66,
-			67, 8, 197, 24, 244, 131, 60, 192, 16, 8, 197, 24, 16, 137, 60, 192, 66, 8, 197, 12, 84, 131, 60, 192, 16, 10, 199, 8, 144, 140,
-			36, 245, 5, 12, 15, 0, 7, 196, 80, 19, 15, 72, 16, 9, 198, 76, 145, 206, 61, 34, 65, 67, 12, 201, 76, 51, 5, 72, 241, 5,
-			72, 210, 65, 68, 9, 198, 56, 85, 83, 81, 34, 65, 65, 9, 198, 20, 229, 18, 61, 2, 65, 67, 9, 198, 20, 211, 198, 36, 194, 65,
-			68, 10, 198, 12, 147, 9, 20, 114, 65, 67, 15, 10, 198, 4, 48, 68, 20, 210, 65, 67, 15, 0, 6, 195, 36, 210, 84, 65, 9, 198,
-			69, 80, 76, 12, 244, 192, 15, 9, 198, 60, 198, 77, 64, 244, 192, 65, 9, 198, 52, 20, 137, 64, 244, 192, 15, 9, 198, 8, 243, 129,
-			72, 48, 68, 66, 9, 198, 4, 229, 9, 28, 20, 192, 67, 9, 198, 4, 211, 210, 28, 244, 192, 67, 0, 6, 195, 104, 85, 0, 15, 11,
-			200, 80, 20, 132, 36, 116, 129, 16, 144, 66, 0, 13, 202, 72, 20, 16, 72, 84, 197, 57, 64, 78, 60, 67, 6, 195, 84, 244, 0, 15,
-			7, 196, 8, 243, 143, 76, 15, 0, 7, 196, 52, 150, 5, 72, 65, 7, 196, 8, 246, 5, 72, 65, 12, 201, 64, 84, 195, 5, 52, 197,
-			72, 243, 9, 67, 7, 196, 12, 243, 15, 72, 16, 0, 34, 77, 60, 194, 71, 60, 65, 78, 17, 35, 199, 48, 147, 205, 4, 110, 55, 37,
-			81, 39, 72, 36, 50, 72, 14, 16, 39, 61, 6, 37, 110, 65, 35, 0, 6, 195, 20, 66, 84, 65, 10, 198, 12, 244, 141, 60, 228, 192,
-			66, 15, 7, 196, 12, 244, 134, 84, 66, 6, 195, 4, 226, 84, 65, 6, 195, 4, 194, 84, 65, 10, 198, 4, 65, 5, 8, 149, 0, 66,
-			16, 9, 198, 4, 52, 143, 8, 21, 0, 66, 0, 10, 198, 61, 35, 211, 12, 244, 0, 66, 15, 9, 198, 36, 224, 197, 57, 68, 128, 15,
-			9, 198, 21, 128, 197, 57, 68, 128, 15, 12, 201, 12, 192, 86, 36, 49, 77, 8, 19, 0, 67, 0, 10, 199, 72, 145, 80, 36, 195, 199,
-			60, 67, 12, 3, 95, 104, 105, 107, 6, 126, 50, 72, 37, 0, 0, 9, 198, 56, 244, 207, 12, 243, 73, 15, 0, 10, 199, 24, 245, 15,
-			29, 32, 70, 4, 66, 8, 197, 81, 32, 80, 4, 224, 65, 11, 200, 60, 197, 18, 20, 240, 197, 4, 224, 68, 8, 197, 28, 144, 86, 20,
-			224, 16, 6, 195, 20, 67, 204, 15, 8, 197, 4, 229, 5, 56, 224, 16, 0, 9, 198, 88, 148, 201, 80, 19, 143, 65, 9, 198, 76, 84,
-			1, 72, 147, 143, 66, 9, 198, 52, 19, 135, 36, 19, 143, 65, 9, 198, 20, 48, 197, 16, 19, 143, 66, 9, 198, 16, 145, 201, 80, 19,
-			143, 65, 9, 198, 16, 80, 201, 16, 19, 143, 66, 9, 198, 12, 130, 85, 16, 19, 143, 65, 9, 198, 48, 20, 131, 36, 19, 143, 66, 9,
-			198, 12, 244, 131, 36, 19, 143, 66, 9, 198, 76, 83, 73, 80, 243, 143, 67, 11, 200, 5, 32, 200, 20, 243, 15, 28, 144, 67, 9, 198,
-			72, 80, 201, 65, 35, 195, 66, 0, 8, 197, 12, 243, 147, 60, 192, 66, 12, 201, 77, 66, 76, 61, 3, 201, 16, 82, 64, 69, 8, 197,
-			76, 84, 137, 60, 192, 66, 12, 200, 28, 195, 194, 36, 49, 70, 4, 192, 67, 15, 12, 200, 21, 65, 82, 60, 49, 70, 4, 192, 68, 15,
-			0, 20, 71, 64, 16, 197, 52, 18, 197, 72, 48, 118, 89, 65, 6, 118, 49, 109, 14, 16, 0, 6, 195, 81, 83, 192, 76, 9, 198, 5,
-			52, 197, 52, 147, 137, 66, 0, 9, 198, 104, 145, 199, 85, 32, 84, 65, 8, 197, 88, 20, 133, 56, 224, 16, 8, 197, 52, 243, 20, 20,
-			224, 16, 9, 197, 24, 195, 210, 36, 224, 65, 16, 8, 197, 16, 144, 67, 60, 224, 66, 9, 198, 12, 244, 129, 105, 160, 84, 66, 8, 197,
-			12, 19, 73, 60, 224, 65, 0, 9, 198, 56, 21, 137, 28, 19, 143, 65, 9, 198, 36, 225, 9, 12, 19, 143, 65, 9, 198, 5, 36, 133,
-			12, 19, 143, 66, 12, 201, 69, 80, 68, 72, 147, 1, 80, 84, 128, 67, 7, 195, 21, 36, 143, 66, 15, 0, 8, 197, 104, 240, 195, 60,
-			192, 15, 8, 197, 76, 84, 150, 4, 192, 66, 8, 197, 72, 240, 195, 60, 192, 15, 8, 197, 64, 83, 132, 84, 192, 15, 10, 199, 52, 147,
-			132, 5, 81, 193, 76, 65, 8, 197, 9, 81, 134, 4, 192, 65, 0, 11, 199, 12, 243, 150, 21, 37, 5, 72, 66, 47, 22, 71, 32, 19,
-			66, 85, 33, 197, 72, 107, 35, 65, 71, 6, 40, 14, 16, 81, 36, 14, 16, 0, 21, 71, 12, 243, 148, 4, 147, 133, 72, 49, 39, 50,
-			47, 6, 118, 50, 109, 14, 16, 0, 47, 10, 199, 9, 83, 12, 16, 246, 133, 72, 66, 6, 195, 64, 84, 201, 15, 10, 199, 56, 242, 67,
-			5, 69, 1, 72, 67, 11, 200, 24, 245, 15, 72, 149, 15, 12, 48, 16, 10, 199, 12, 243, 5, 61, 69, 5, 72, 15, 0, 12, 201, 72,
-			17, 134, 36, 117, 82, 4, 227, 192, 67, 12, 201, 12, 243, 134, 36, 117, 82, 4, 227, 192, 67, 11, 70, 16, 81, 129, 84, 197, 0, 21,
-			0, 47, 7, 196, 24, 83, 3, 20, 16, 0, 0, 17, 70, 65, 83, 9, 104, 145, 64, 48, 40, 55, 37, 123, 6, 37, 36, 0, 9, 198,
-			52, 16, 197, 72, 145, 64, 66, 17, 70, 36, 66, 79, 104, 145, 64, 37, 72, 37, 39, 123, 6, 125, 36, 0, 9, 198, 65, 33, 67, 60,
-			49, 64, 15, 9, 198, 64, 19, 148, 4, 195, 206, 67, 12, 201, 61, 33, 129, 56, 245, 18, 60, 98, 64, 15, 10, 198, 5, 85, 15, 56,
-			241, 64, 67, 15, 0, 10, 198, 88, 84, 218, 65, 33, 77, 66, 16, 9, 198, 52, 84, 137, 77, 65, 77, 15, 6, 195, 21, 52, 192, 16,
-			0, 10, 199, 88, 84, 195, 61, 98, 76, 20, 67, 9, 198, 76, 147, 129, 28, 241, 192, 15, 9, 198, 56, 21, 70, 72, 17, 192, 65, 14,
-			68, 49, 80, 201, 4, 55, 40, 76, 6, 37, 12, 35, 0, 0, 11, 200, 80, 83, 73, 77, 67, 195, 48, 80, 66, 12, 201, 65, 35, 212,
-			60, 49, 82, 20, 36, 128, 67, 0, 9, 198, 72, 85, 143, 12, 129, 64, 65, 9, 198, 24, 21, 9, 12, 129, 64, 66, 9, 198, 100, 19,
-			213, 56, 65, 64, 68, 9, 198, 80, 244, 130, 60, 193, 64, 16, 9, 198, 76, 84, 150, 36, 193, 64, 66, 10, 198, 52, 81, 193, 12, 193,
-			64, 65, 15, 9, 198, 48, 84, 85, 36, 193, 64, 15, 9, 198, 21, 65, 79, 12, 193, 64, 66, 9, 198, 21, 34, 71, 60, 225, 64, 66,
-			9, 198, 16, 147, 205, 20, 65, 64, 15, 9, 198, 13, 84, 212, 60, 65, 64, 15, 9, 198, 8, 21, 9, 12, 193, 64, 65, 9, 198, 4,
-			225, 77, 60, 225, 64, 15, 9, 198, 4, 65, 76, 36, 225, 64, 16, 0, 8, 67, 9, 149, 5, 21, 0, 47, 6, 195, 13, 5, 64, 13,
-			15, 67, 93, 117, 192, 6, 84, 40, 6, 84, 40, 6, 84, 40, 0, 0, 13, 68, 5, 48, 201, 36, 6, 35, 89, 49, 126, 37, 0, 9,
-			198, 65, 35, 199, 21, 69, 0, 15, 9, 198, 64, 19, 131, 21, 69, 0, 16, 0, 9, 198, 76, 32, 82, 8, 19, 143, 65, 9, 198, 72,
-			148, 5, 80, 19, 143, 66, 9, 198, 72, 80, 201, 80, 19, 143, 65, 9, 198, 52, 244, 212, 72, 19, 143, 65, 9, 198, 17, 80, 137, 80,
-			19, 143, 65, 9, 198, 12, 19, 66, 36, 19, 143, 65, 9, 198, 5, 96, 78, 104, 19, 143, 66, 9, 198, 4, 195, 5, 28, 19, 143, 66,
-			9, 198, 52, 19, 131, 36, 19, 143, 66, 12, 201, 76, 52, 137, 12, 50, 9, 60, 194, 79, 68, 11, 200, 80, 244, 142, 5, 33, 67, 12,
-			144, 15, 7, 196, 24, 83, 143, 48, 66, 10, 199, 20, 195, 5, 77, 3, 206, 80, 15, 0, 9, 198, 52, 85, 20, 21, 35, 0, 65, 7,
-			196, 21, 32, 78, 60, 65, 9, 198, 64, 19, 13, 4, 227, 214, 15, 0, 11, 200, 72, 147, 143, 52, 147, 129, 56, 240, 66, 12, 200, 52,
-			145, 204, 36, 244, 129, 56, 240, 66, 16, 11, 200, 16, 84, 201, 16, 84, 137, 56, 240, 66, 11, 200, 16, 84, 201, 16, 84, 129, 56, 240,
-			66, 12, 200, 12, 243, 135, 48, 240, 129, 56, 240, 66, 16, 11, 67, 41, 85, 133, 57, 6, 40, 84, 36, 0, 12, 201, 36, 226, 78, 80,
-			84, 146, 61, 69, 0, 16, 10, 199, 12, 20, 15, 48, 21, 143, 72, 16, 0, 13, 68, 61, 35, 65, 36, 39, 14, 16, 65, 6, 117, 0,
-			10, 199, 80, 84, 1, 56, 80, 200, 36, 15, 9, 198, 77, 3, 5, 56, 66, 68, 15, 10, 199, 52, 144, 210, 60, 98, 76, 52, 67, 12,
-			201, 24, 243, 148, 4, 224, 70, 72, 81, 4, 16, 0, 9, 198, 76, 98, 79, 72, 147, 143, 66, 9, 198, 65, 33, 83, 76, 19, 143, 65,
-			9, 198, 5, 69, 9, 72, 147, 143, 66, 7, 196, 16, 80, 143, 48, 65, 9, 198, 8, 20, 137, 80, 243, 143, 67, 12, 201, 76, 83, 142,
-			4, 50, 5, 72, 144, 128, 68, 7, 196, 76, 80, 207, 48, 15, 7, 196, 64, 240, 207, 48, 66, 19, 70, 12, 148, 131, 84, 149, 15, 76,
-			37, 14, 16, 49, 6, 40, 37, 47, 39, 0, 0, 12, 201, 72, 144, 197, 88, 149, 15, 72, 144, 64, 69, 15, 3, 95, 109, 121, 71, 37,
-			14, 16, 65, 6, 35, 50, 110, 0, 16, 3, 95, 115, 105, 89, 126, 68, 81, 35, 55, 6, 36, 88, 36, 0, 5, 194, 88, 240, 15, 0,
-			7, 196, 84, 192, 197, 72, 65, 7, 196, 72, 83, 79, 72, 65, 12, 201, 37, 3, 195, 48, 244, 137, 17, 34, 65, 69, 12, 201, 25, 32,
-			78, 12, 144, 67, 61, 37, 0, 16, 11, 200, 21, 35, 69, 56, 85, 84, 36, 48, 67, 10, 198, 4, 48, 78, 80, 241, 9, 67, 15, 0,
-			10, 199, 12, 243, 80, 4, 114, 78, 36, 66, 8, 197, 92, 21, 20, 61, 32, 16, 8, 197, 80, 19, 77, 5, 32, 65, 8, 197, 76, 145,
-			206, 61, 32, 16, 6, 195, 20, 66, 80, 65, 0, 16, 70, 76, 50, 65, 80, 244, 128, 91, 37, 35, 47, 6, 39, 51, 0, 6, 195, 88,
-			245, 0, 15, 11, 200, 80, 85, 18, 5, 32, 200, 36, 16, 67, 9, 198, 76, 83, 65, 24, 244, 128, 66, 11, 200, 64, 244, 148, 4, 99,
-			199, 48, 144, 15, 11, 200, 64, 19, 147, 64, 84, 141, 36, 16, 67, 7, 196, 36, 115, 143, 80, 15, 9, 198, 36, 115, 137, 80, 244, 128,
-			65, 12, 201, 36, 68, 143, 20, 193, 84, 81, 34, 67, 15, 12, 201, 24, 245, 15, 20, 193, 84, 81, 34, 67, 15, 11, 200, 21, 35, 212,
-			60, 208, 78, 36, 16, 69, 0, 8, 197, 61, 68, 129, 57, 64, 65, 8, 197, 52, 83, 69, 57, 64, 15, 9, 198, 9, 33, 83, 4, 243,
-			0, 66, 9, 198, 8, 144, 84, 32, 195, 206, 65, 0, 9, 198, 76, 20, 146, 60, 50, 0, 66, 0, 9, 198, 64, 19, 148, 60, 99, 204,
-			66, 15, 69, 64, 192, 89, 21, 32, 48, 55, 6, 118, 109, 14, 16, 0, 8, 197, 76, 49, 84, 81, 32, 15, 9, 198, 76, 19, 79, 76,
-			21, 0, 66, 8, 197, 21, 48, 69, 17, 32, 15, 7, 196, 13, 80, 195, 84, 66, 6, 195, 8, 83, 212, 15, 9, 198, 5, 69, 5, 56,
-			67, 204, 15, 6, 195, 4, 34, 84, 65, 0, 9, 198, 64, 84, 144, 21, 69, 79, 15, 0, 8, 197, 88, 83, 132, 37, 64, 65, 8, 197,
-			24, 84, 142, 21, 64, 66, 0, 10, 199, 88, 84, 208, 5, 50, 65, 56, 67, 0, 11, 67, 52, 18, 76, 65, 6, 36, 37, 55, 0, 9,
-			3, 95, 108, 111, 55, 6, 114, 0, 10, 199, 76, 83, 69, 77, 65, 78, 20, 66, 7, 196, 12, 21, 1, 36, 66, 0, 11, 200, 64, 84,
-			141, 21, 69, 9, 52, 144, 66, 0, 8, 196, 72, 244, 197, 60, 65, 15, 0, 11, 200, 36, 228, 212, 4, 195, 1, 56, 240, 66, 11, 200,
-			21, 48, 83, 64, 84, 129, 56, 240, 66, 24, 72, 84, 197, 18, 5, 53, 79, 56, 240, 40, 55, 47, 14, 16, 35, 15, 89, 40, 6, 110,
-			50, 39, 0, 9, 198, 64, 192, 83, 52, 241, 9, 15, 9, 198, 52, 81, 193, 64, 241, 9, 15, 0, 12, 201, 72, 17, 199, 37, 83, 135,
-			4, 227, 192, 66, 10, 199, 80, 148, 129, 64, 145, 68, 36, 15, 10, 199, 64, 147, 142, 37, 1, 68, 36, 66, 8, 197, 12, 243, 15, 28,
-			224, 15, 9, 198, 5, 32, 71, 61, 53, 0, 16, 0, 7, 196, 4, 148, 143, 48, 66, 0, 13, 201, 24, 245, 15, 72, 84, 15, 73, 65,
-			82, 68, 47, 12, 3, 95, 116, 97, 47, 6, 35, 65, 126, 55, 0, 8, 197, 52, 83, 147, 60, 192, 15, 12, 201, 12, 130, 85, 16, 147,
-			5, 81, 65, 82, 15, 8, 197, 12, 19, 132, 20, 192, 16, 0, 6, 195, 80, 84, 201, 15, 9, 198, 36, 225, 133, 48, 144, 197, 67, 9,
-			198, 20, 97, 137, 12, 16, 197, 67, 6, 195, 16, 84, 201, 15, 9, 198, 12, 244, 5, 64, 241, 9, 15, 9, 198, 5, 37, 5, 24, 144,
-			197, 16, 0, 8, 196, 76, 84, 137, 4, 65, 16, 8, 196, 76, 84, 201, 4, 65, 15, 7, 196, 72, 84, 201, 4, 65, 7, 196, 52, 244,
-			137, 4, 66, 11, 199, 28, 85, 19, 20, 208, 78, 36, 66, 15, 6, 195, 24, 85, 68, 65, 7, 196, 5, 33, 5, 4, 65, 0, 7, 196,
-			81, 34, 79, 16, 65, 0, 16, 70, 12, 128, 82, 48, 145, 64, 76, 6, 35, 14, 16, 55, 37, 0, 18, 70, 64, 20, 143, 16, 145, 64,
-			48, 35, 14, 16, 39, 72, 6, 37, 36, 0, 17, 70, 52, 83, 15, 16, 145, 64, 65, 36, 55, 39, 72, 6, 37, 36, 0, 9, 198, 48,
-			16, 210, 36, 209, 64, 65, 10, 199, 8, 83, 133, 24, 144, 201, 60, 67, 13, 3, 95, 116, 101, 47, 6, 109, 55, 40, 81, 40, 0, 9,
-			198, 76, 241, 134, 36, 49, 64, 15, 9, 198, 76, 85, 20, 36, 209, 64, 65, 9, 198, 76, 81, 213, 4, 49, 64, 66, 10, 198, 76, 50,
-			5, 81, 66, 78, 65, 16, 9, 198, 64, 84, 142, 36, 49, 64, 66, 9, 198, 61, 33, 70, 36, 49, 64, 16, 9, 198, 56, 20, 148, 20,
-			49, 64, 15, 9, 198, 52, 20, 211, 36, 209, 64, 65, 9, 198, 37, 53, 18, 36, 49, 64, 65, 6, 195, 28, 147, 214, 16, 6, 195, 28,
-			83, 214, 65, 9, 198, 24, 244, 142, 4, 49, 64, 66, 9, 198, 5, 52, 201, 20, 209, 64, 15, 0, 6, 195, 76, 144, 64, 76, 10, 67,
-			12, 144, 64, 76, 6, 37, 35, 0, 12, 201, 65, 35, 195, 20, 66, 77, 20, 229, 0, 15, 0, 15, 68, 52, 20, 137, 4, 65, 35, 14,
-			16, 6, 37, 38, 35, 0, 7, 196, 80, 240, 137, 4, 66, 9, 198, 77, 68, 143, 48, 17, 192, 65, 7, 196, 52, 84, 211, 20, 15, 10,
-			199, 36, 225, 129, 57, 66, 76, 20, 67, 9, 198, 28, 149, 71, 28, 147, 204, 65, 7, 196, 24, 240, 137, 4, 66, 9, 198, 16, 80, 193,
-			48, 241, 192, 66, 9, 198, 12, 21, 1, 48, 241, 192, 66, 11, 199, 12, 17, 15, 56, 81, 200, 20, 66, 15, 0, 11, 200, 65, 35, 195,
-			60, 228, 207, 48, 80, 15, 9, 198, 36, 68, 143, 12, 244, 147, 16, 11, 200, 12, 243, 12, 20, 224, 200, 36, 208, 15, 0, 9, 198, 9,
-			32, 83, 36, 193, 64, 66, 9, 198, 49, 83, 65, 12, 129, 64, 66, 9, 198, 16, 83, 5, 28, 129, 64, 65, 16, 70, 9, 32, 73, 48,
-			193, 64, 71, 14, 16, 35, 37, 55, 12, 0, 9, 198, 80, 84, 211, 36, 193, 64, 15, 9, 198, 80, 83, 198, 4, 225, 64, 66, 9, 198,
-			77, 84, 146, 20, 225, 64, 16, 9, 198, 76, 147, 132, 60, 225, 64, 65, 9, 198, 76, 84, 211, 36, 193, 64, 15, 10, 198, 76, 83, 133,
-			28, 129, 64, 65, 15, 9, 198, 64, 244, 131, 36, 193, 64, 66, 9, 198, 64, 83, 147, 36, 193, 64, 15, 9, 198, 52, 83, 147, 36, 193,
-			64, 66, 10, 198, 52, 83, 78, 60, 225, 64, 65, 15, 10, 198, 28, 147, 214, 36, 225, 64, 65, 16, 9, 198, 21, 48, 200, 36, 225, 64,
-			15, 9, 198, 12, 244, 148, 36, 193, 64, 66, 9, 198, 12, 194, 77, 20, 225, 64, 65, 10, 198, 12, 86, 129, 56, 225, 64, 65, 16, 9,
-			198, 4, 229, 5, 56, 225, 64, 16, 0, 9, 198, 52, 16, 195, 4, 33, 73, 67, 6, 195, 20, 209, 64, 15, 10, 199, 16, 80, 193, 52,
-			84, 143, 56, 66, 7, 196, 8, 80, 82, 56, 16, 0, 9, 198, 16, 144, 76, 21, 69, 0, 15, 0, 0, 11, 200, 21, 33, 207, 77, 65,
-			82, 60, 192, 68, 0, 11, 200, 16, 148, 212, 85, 32, 137, 56, 240, 66, 11, 200, 12, 20, 130, 60, 115, 129, 56, 240, 67, 6, 195, 96,
-			211, 0, 13, 10, 199, 80, 83, 5, 48, 21, 143, 72, 16, 6, 195, 64, 241, 64, 15, 10, 199, 28, 149, 76, 36, 19, 143, 88, 15, 10,
-			199, 12, 244, 148, 20, 229, 79, 88, 15, 10, 199, 12, 20, 193, 80, 83, 143, 88, 15, 0, 9, 198, 12, 243, 132, 37, 98, 68, 67, 0,
-			7, 196, 4, 225, 207, 48, 65, 0, 12, 201, 80, 80, 206, 60, 52, 129, 104, 144, 64, 68, 10, 199, 64, 243, 9, 20, 68, 137, 12, 15,
-			12, 201, 56, 20, 131, 60, 193, 83, 76, 144, 64, 68, 12, 201, 52, 84, 207, 64, 245, 1, 52, 144, 64, 68, 12, 201, 48, 144, 193, 57,
-			68, 143, 64, 144, 64, 68, 12, 201, 12, 21, 1, 64, 193, 83, 76, 144, 64, 68, 12, 201, 12, 20, 148, 60, 208, 78, 104, 144, 64, 68,
-			12, 201, 5, 85, 15, 12, 81, 129, 48, 144, 64, 70, 0, 11, 200, 64, 243, 9, 80, 80, 206, 36, 48, 15, 11, 200, 53, 83, 20, 36,
-			85, 14, 36, 48, 15, 12, 201, 24, 243, 148, 4, 226, 71, 61, 33, 0, 16, 11, 200, 16, 145, 76, 21, 69, 18, 36, 48, 15, 0, 9,
-			197, 80, 84, 211, 21, 32, 65, 15, 8, 197, 76, 84, 211, 21, 32, 15, 8, 197, 12, 19, 80, 61, 32, 65, 10, 199, 8, 244, 195, 36,
-			208, 78, 36, 66, 0, 7, 196, 104, 83, 15, 80, 15, 11, 200, 93, 80, 200, 21, 33, 82, 36, 16, 67, 7, 196, 77, 1, 79, 80, 15,
-			7, 196, 64, 243, 9, 64, 65, 9, 198, 37, 51, 212, 72, 244, 0, 66, 11, 200, 37, 3, 195, 60, 225, 18, 36, 16, 68, 11, 200, 37,
-			1, 82, 81, 35, 198, 36, 16, 68, 11, 200, 37, 1, 82, 76, 243, 142, 36, 16, 68, 7, 196, 24, 147, 15, 80, 15, 11, 200, 9, 84,
-			143, 13, 32, 90, 36, 16, 68, 0, 9, 198, 36, 229, 9, 80, 243, 0, 66, 8, 197, 72, 80, 204, 85, 64, 65, 8, 197, 28, 147, 206,
-			5, 64, 65, 7, 195, 20, 53, 66, 65, 15, 10, 198, 5, 85, 15, 13, 67, 206, 67, 15, 8, 197, 5, 52, 207, 73, 64, 16, 0, 9,
-			198, 36, 224, 207, 57, 48, 201, 15, 11, 200, 28, 84, 211, 61, 0, 76, 20, 224, 16, 15, 204, 8, 21, 18, 4, 51, 205, 36, 243, 65,
-			12, 130, 65, 71, 7, 196, 4, 226, 68, 72, 65, 0, 8, 197, 64, 83, 133, 81, 32, 65, 9, 198, 92, 147, 1, 56, 245, 192, 67, 8,
-			197, 81, 32, 70, 61, 32, 16, 8, 197, 80, 83, 80, 61, 32, 65, 8, 197, 80, 83, 80, 61, 32, 15, 9, 198, 52, 20, 133, 52, 245,
-			0, 15, 8, 197, 24, 84, 133, 81, 32, 65, 8, 197, 13, 33, 77, 21, 32, 65, 8, 197, 8, 20, 129, 81, 32, 65, 13, 202, 8, 19,
-			14, 20, 245, 5, 72, 20, 9, 4, 70, 0, 7, 196, 60, 48, 213, 64, 65, 18, 71, 28, 130, 65, 12, 50, 79, 48, 81, 126, 35, 76,
-			12, 6, 39, 55, 0, 7, 196, 64, 147, 15, 80, 15, 7, 196, 64, 83, 15, 80, 15, 9, 198, 61, 37, 15, 56, 245, 128, 15, 0, 8,
-			197, 76, 148, 15, 57, 64, 15, 8, 197, 64, 84, 132, 37, 64, 65, 9, 197, 48, 84, 1, 57, 64, 65, 15, 8, 197, 36, 225, 68, 37,
-			64, 66, 8, 197, 28, 147, 204, 37, 64, 65, 8, 197, 16, 80, 210, 21, 64, 15, 0, 13, 202, 36, 51, 211, 37, 65, 84, 72, 17, 68,
-			72, 15, 10, 199, 16, 241, 5, 12, 17, 207, 56, 67, 11, 199, 5, 48, 197, 57, 50, 79, 56, 68, 16, 0, 0, 6, 195, 48, 85, 67,
-			65, 10, 199, 36, 229, 5, 73, 50, 78, 16, 67, 0, 0, 11, 200, 36, 229, 18, 20, 48, 201, 56, 240, 66, 6, 195, 21, 67, 128, 15,
-			7, 195, 4, 195, 192, 66, 15, 0, 0, 7, 196, 52, 84, 207, 48, 65, 7, 196, 8, 245, 15, 48, 65, 7, 196, 8, 148, 15, 48, 66,
-			0, 6, 195, 36, 115, 210, 65, 7, 196, 77, 65, 67, 12, 16, 7, 196, 52, 19, 1, 28, 65, 9, 198, 48, 147, 73, 81, 35, 198, 66,
-			7, 196, 24, 243, 1, 28, 65, 7, 196, 12, 147, 69, 28, 65, 10, 199, 5, 64, 82, 28, 21, 9, 76, 66, 0, 8, 197, 84, 36, 137,
-			4, 48, 67, 9, 198, 77, 66, 80, 20, 225, 9, 15, 6, 195, 64, 241, 77, 15, 6, 195, 56, 241, 77, 15, 10, 199, 29, 80, 82, 16,
-			20, 143, 8, 15, 6, 195, 20, 196, 192, 16, 8, 197, 12, 244, 205, 36, 48, 15, 9, 198, 12, 243, 80, 20, 225, 9, 15, 0, 7, 196,
-			76, 145, 84, 20, 76, 9, 198, 77, 3, 210, 60, 98, 84, 66, 10, 199, 72, 144, 195, 60, 35, 206, 36, 15, 7, 196, 65, 33, 84, 20,
-			15, 9, 198, 13, 80, 213, 72, 34, 84, 66, 0, 8, 197, 88, 19, 5, 72, 80, 66, 8, 197, 49, 80, 201, 56, 80, 66, 8, 197, 69,
-			81, 83, 80, 16, 76, 8, 197, 80, 244, 129, 12, 80, 66, 8, 197, 48, 21, 82, 20, 16, 65, 8, 197, 13, 80, 133, 8, 80, 15, 8,
-			197, 12, 83, 9, 56, 80, 16, 9, 197, 8, 241, 77, 36, 16, 66, 15, 8, 197, 5, 81, 213, 72, 80, 65, 0, 7, 196, 20, 228, 137,
-			12, 66, 12, 201, 65, 32, 84, 61, 97, 67, 12, 130, 64, 15, 12, 201, 12, 243, 12, 21, 97, 67, 12, 130, 64, 15, 0, 9, 198, 12,
-			20, 9, 80, 243, 1, 66, 9, 198, 76, 147, 143, 56, 147, 73, 66, 6, 195, 52, 145, 73, 76, 8, 197, 80, 80, 206, 36, 48, 15, 8,
-			197, 64, 144, 206, 36, 48, 66, 8, 197, 48, 84, 194, 36, 48, 15, 8, 197, 8, 16, 200, 20, 48, 15, 8, 197, 4, 224, 76, 60, 112,
-			66, 0, 10, 199, 9, 84, 143, 13, 32, 84, 20, 66, 11, 68, 76, 210, 76, 20, 88, 65, 117, 55, 0, 10, 199, 81, 33, 83, 76, 85,
-			20, 20, 15, 10, 199, 64, 243, 9, 13, 32, 84, 20, 66, 9, 198, 64, 81, 1, 28, 241, 192, 15, 9, 198, 64, 19, 12, 5, 99, 204,
-			67, 10, 199, 24, 147, 15, 13, 32, 84, 20, 66, 7, 196, 21, 33, 68, 20, 15, 10, 199, 5, 36, 15, 13, 32, 84, 20, 66, 0, 18,
-			70, 76, 53, 83, 36, 19, 79, 89, 49, 40, 88, 37, 6, 35, 65, 39, 0, 8, 197, 52, 147, 9, 80, 16, 65, 8, 197, 5, 35, 73,
-			16, 16, 66, 8, 197, 24, 84, 137, 80, 16, 66, 14, 69, 65, 86, 154, 48, 80, 48, 6, 35, 123, 39, 55, 0, 9, 197, 88, 243, 5,
-			72, 80, 66, 16, 8, 197, 88, 149, 129, 12, 80, 66, 8, 197, 88, 84, 129, 12, 80, 66, 9, 197, 76, 20, 5, 72, 80, 66, 16, 8,
-			197, 64, 243, 73, 12, 80, 16, 8, 197, 48, 145, 213, 72, 80, 65, 8, 197, 48, 21, 82, 36, 16, 67, 8, 197, 28, 244, 135, 36, 16,
-			65, 8, 197, 24, 244, 135, 36, 16, 65, 8, 197, 24, 84, 137, 80, 16, 67, 15, 69, 21, 52, 197, 72, 80, 6, 109, 89, 89, 36, 51,
-			36, 0, 9, 197, 16, 161, 77, 8, 80, 66, 15, 8, 197, 12, 244, 143, 56, 80, 15, 8, 197, 12, 83, 9, 8, 80, 65, 8, 197, 8,
-			244, 135, 36, 16, 65, 9, 197, 8, 84, 143, 36, 16, 65, 16, 8, 197, 4, 212, 5, 72, 80, 66, 8, 197, 4, 195, 21, 12, 80, 65,
-			0, 7, 196, 12, 81, 21, 60, 15, 0, 17, 70, 76, 50, 65, 8, 147, 5, 91, 37, 6, 35, 71, 37, 55, 36, 0, 13, 3, 95, 122,
-			104, 76, 126, 50, 6, 36, 88, 109, 0, 9, 197, 80, 83, 133, 72, 240, 65, 15, 7, 196, 64, 84, 149, 56, 66, 6, 195, 20, 213, 64,
-			66, 0, 0, 9, 198, 12, 20, 137, 12, 19, 15, 65, 8, 197, 65, 35, 197, 52, 144, 15, 8, 197, 56, 80, 195, 32, 144, 15, 8, 197,
-			12, 245, 20, 36, 208, 15, 8, 197, 12, 240, 195, 32, 144, 15, 8, 197, 5, 49, 80, 76, 144, 15, 0, 9, 198, 77, 84, 211, 36, 66,
-			64, 66, 9, 198, 81, 34, 80, 60, 194, 64, 65, 10, 198, 76, 84, 85, 4, 226, 64, 65, 15, 9, 198, 65, 33, 71, 4, 66, 64, 67,
-			11, 200, 64, 243, 9, 77, 66, 82, 60, 192, 68, 9, 198, 64, 192, 84, 4, 226, 64, 65, 9, 198, 64, 84, 20, 36, 66, 64, 15, 10,
-			199, 64, 83, 148, 5, 65, 85, 12, 67, 9, 198, 36, 225, 207, 8, 34, 64, 15, 0, 11, 200, 72, 81, 201, 77, 68, 137, 56, 240, 66,
-			8, 197, 64, 20, 129, 56, 240, 65, 11, 200, 12, 20, 9, 80, 243, 1, 56, 240, 66, 8, 197, 48, 144, 129, 56, 240, 65, 18, 70, 5,
-			49, 137, 77, 50, 69, 35, 89, 83, 37, 89, 12, 6, 37, 36, 0, 7, 196, 61, 33, 193, 56, 65, 7, 196, 8, 16, 197, 56, 16, 0,
-			7, 196, 5, 97, 86, 36, 78, 9, 198, 77, 81, 15, 88, 84, 212, 15, 12, 200, 64, 84, 143, 56, 244, 208, 61, 32, 67, 15, 13, 68,
-			24, 145, 82, 36, 83, 37, 6, 36, 51, 37, 0, 0, 9, 198, 16, 145, 201, 80, 19, 15, 65, 12, 201, 5, 101, 129, 57, 64, 71, 28,
-			147, 143, 67, 8, 197, 5, 97, 83, 80, 144, 78, 8, 197, 69, 81, 83, 80, 144, 76, 8, 197, 76, 83, 77, 4, 144, 66, 8, 197, 76,
-			51, 199, 48, 144, 15, 8, 197, 52, 243, 143, 52, 144, 15, 8, 197, 52, 85, 15, 16, 144, 15, 8, 197, 52, 83, 133, 12, 208, 15, 8,
-			197, 16, 144, 68, 20, 208, 15, 0, 9, 198, 76, 52, 143, 24, 243, 0, 65, 9, 198, 56, 240, 195, 36, 243, 0, 15, 9, 198, 56, 16,
-			129, 80, 82, 64, 67, 10, 198, 12, 21, 5, 12, 243, 0, 67, 15, 9, 198, 4, 84, 143, 28, 83, 0, 67, 0, 14, 68, 92, 17, 133,
-			72, 84, 6, 35, 83, 36, 14, 16, 0, 9, 198, 77, 1, 67, 12, 130, 65, 15, 10, 199, 72, 240, 149, 77, 65, 90, 104, 15, 7, 196,
-			64, 245, 133, 72, 65, 9, 198, 64, 192, 84, 4, 226, 65, 67, 9, 198, 13, 84, 212, 60, 66, 65, 15, 9, 198, 12, 243, 77, 20, 66,
-			65, 15, 6, 195, 12, 84, 201, 15, 9, 198, 12, 19, 66, 60, 66, 65, 15, 9, 198, 4, 227, 205, 4, 194, 65, 68, 0, 24, 72, 80,
-			84, 141, 36, 224, 84, 61, 32, 47, 36, 14, 16, 65, 37, 50, 6, 36, 47, 110, 14, 16, 0, 17, 6, 95, 114, 111, 109, 97, 110, 14,
-			16, 110, 65, 6, 35, 50, 39, 0, 8, 197, 77, 83, 195, 21, 32, 65, 8, 197, 77, 64, 83, 21, 32, 16, 10, 199, 72, 150, 154, 36,
-			51, 206, 36, 66, 8, 197, 64, 20, 212, 61, 32, 16, 9, 198, 36, 225, 15, 52, 149, 0, 66, 9, 198, 21, 49, 82, 12, 149, 0, 66,
-			0, 11, 200, 52, 149, 15, 12, 243, 132, 72, 144, 15, 10, 199, 48, 144, 193, 57, 68, 143, 64, 66, 0, 8, 197, 16, 148, 208, 85, 64,
-			65, 0, 7, 196, 24, 147, 143, 72, 16, 7, 196, 12, 19, 143, 88, 65, 0, 15, 69, 80, 22, 76, 61, 32, 47, 6, 119, 55, 39, 14,
-			16, 0, 8, 197, 81, 34, 77, 21, 32, 65, 8, 197, 81, 34, 70, 61, 32, 65, 9, 198, 72, 80, 193, 64, 149, 0, 66, 8, 197, 37,
-			51, 205, 21, 32, 66, 10, 199, 28, 194, 67, 60, 194, 83, 36, 66, 8, 197, 9, 83, 7, 5, 32, 65, 0, 7, 196, 72, 83, 79, 80,
-			15, 10, 199, 8, 19, 131, 5, 35, 212, 80, 16, 0, 16, 3, 95, 116, 105, 47, 37, 81, 14, 16, 6, 37, 50, 126, 35, 0, 8, 197,
-			72, 83, 132, 37, 64, 65, 8, 197, 65, 35, 198, 21, 64, 15, 0, 9, 3, 95, 116, 104, 47, 6, 117, 0, 13, 202, 21, 48, 67, 37,
-			51, 212, 80, 17, 68, 72, 15, 0, 10, 199, 64, 244, 211, 20, 65, 82, 20, 67, 10, 199, 52, 19, 148, 20, 225, 82, 20, 67, 6, 195,
-			4, 68, 204, 13, 9, 198, 81, 32, 83, 8, 244, 132, 16, 9, 198, 77, 64, 82, 61, 53, 0, 65, 10, 199, 76, 83, 73, 9, 33, 86,
-			20, 15, 0, 6, 18, 66, 195, 160, 0, 195, 178, 0, 195, 179, 0, 195, 185, 0, 97, 0, 111, 0, 117, 0, 7, 6, 18, 67, 195, 169,
-			0, 195, 168, 0, 101, 0, 7, 6, 18, 68, 98, 0, 100, 0, 103, 0, 108, 0, 109, 0, 110, 0, 114, 0, 118, 0, 7, 6, 18, 69,
-			103, 108, 105, 101, 108, 111, 0, 103, 108, 105, 101, 108, 97, 0, 103, 108, 105, 101, 108, 105, 0, 103, 108, 105, 101, 108, 101, 0, 103, 108,
-			105, 101, 110, 101, 0, 109, 101, 108, 111, 0, 116, 101, 108, 111, 0, 115, 101, 108, 111, 0, 99, 101, 108, 111, 0, 118, 101, 108, 111, 0,
-			109, 101, 108, 97, 0, 116, 101, 108, 97, 0, 115, 101, 108, 97, 0, 99, 101, 108, 97, 0, 118, 101, 108, 97, 0, 109, 101, 108, 105, 0,
-			116, 101, 108, 105, 0, 115, 101, 108, 105, 0, 99, 101, 108, 105, 0, 118, 101, 108, 105, 0, 109, 101, 108, 101, 0, 116, 101, 108, 101, 0,
-			115, 101, 108, 101, 0, 99, 101, 108, 101, 0, 118, 101, 108, 101, 0, 109, 101, 110, 101, 0, 116, 101, 110, 101, 0, 115, 101, 110, 101, 0,
-			99, 101, 110, 101, 0, 118, 101, 110, 101, 0, 103, 108, 105, 0, 109, 105, 0, 116, 105, 0, 108, 111, 0, 108, 97, 0, 108, 101, 0, 115,
-			105, 0, 99, 105, 0, 118, 105, 0, 108, 105, 0, 110, 101, 0, 7, 6, 18, 81, 48, 48, 0, 48, 49, 0, 48, 50, 0, 48, 51, 0,
-			48, 52, 0, 48, 53, 0, 48, 54, 0, 48, 55, 0, 48, 56, 0, 48, 57, 0, 49, 48, 0, 49, 49, 0, 49, 50, 0, 49, 51, 0,
-			49, 52, 0, 49, 53, 0, 49, 54, 0, 49, 55, 0, 49, 56, 0, 49, 57, 0, 50, 48, 0, 50, 49, 0, 50, 50, 0, 50, 51, 0,
-			48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 7, 6, 18, 82, 48, 0, 49, 0, 50, 0,
-			51, 0, 52, 0, 53, 0, 7, 6, 195, 160, 0, 3, 7, 35, 0, 117, 3, 7, 35, 2, 40, 0, 111, 2, 32, 24, 3, 7, 114, 0,
-			105, 2, 25, 3, 7, 117, 0, 7, 6, 97, 0, 4, 1, 21, 2, 98, 105, 108, 101, 32, 3, 6, 35, 0, 1, 21, 2, 103, 103, 105,
-			110, 101, 32, 0, 2, 105, 115, 109, 111, 32, 0, 2, 116, 116, 101, 114, 17, 65, 32, 0, 116, 101, 2, 18, 69, 32, 3, 6, 35, 47,
-			36, 0, 110, 100, 101, 114, 1, 21, 2, 18, 69, 32, 3, 6, 35, 50, 72, 109, 14, 16, 0, 109, 111, 1, 21, 2, 18, 69, 32, 3,
-			6, 35, 65, 39, 0, 118, 97, 110, 111, 2, 32, 3, 6, 35, 84, 35, 50, 39, 0, 4, 1, 21, 2, 99, 17, 65, 32, 3, 8, 35,
-			0, 1, 21, 2, 99, 104, 101, 32, 0, 4, 3, 35, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 105, 21, 2, 32, 14,
-			128, 192, 129, 0, 2, 105, 115, 116, 17, 65, 32, 0, 117, 3, 35, 2, 40, 0, 110, 99, 104, 39, 8, 2, 14, 129, 132, 133, 3, 35,
-			50, 49, 0, 108, 108, 39, 8, 2, 14, 129, 132, 132, 3, 35, 55, 55, 0, 101, 8, 2, 114, 3, 35, 109, 0, 111, 2, 32, 24, 3,
-			114, 0, 105, 2, 25, 3, 117, 0, 7, 6, 98, 0, 98, 97, 110, 111, 2, 32, 3, 8, 71, 12, 35, 50, 39, 0, 3, 71, 0, 98,
-			3, 71, 12, 0, 7, 6, 99, 0, 99, 104, 105, 97, 110, 111, 1, 17, 65, 2, 32, 3, 8, 49, 12, 37, 35, 50, 39, 0, 104, 105,
-			97, 110, 111, 2, 32, 3, 8, 49, 37, 35, 50, 39, 0, 111, 1, 21, 2, 108, 17, 65, 32, 3, 8, 49, 39, 0, 99, 105, 97, 110,
-			111, 2, 32, 3, 8, 76, 12, 35, 50, 39, 0, 105, 97, 110, 111, 2, 32, 3, 8, 76, 35, 50, 39, 0, 101, 1, 17, 65, 21, 21,
-			2, 17, 65, 32, 3, 8, 76, 109, 0, 4, 3, 49, 0, 104, 1, 115, 2, 17, 65, 0, 104, 2, 17, 71, 0, 4, 99, 3, 49, 12,
-			0, 99, 104, 2, 17, 71, 0, 107, 0, 113, 117, 3, 49, 12, 122, 0, 4, 2, 17, 71, 3, 76, 0, 39, 8, 2, 14, 129, 132, 130,
-			0, 104, 2, 97, 0, 104, 2, 111, 0, 104, 2, 117, 0, 105, 2, 17, 65, 0, 4, 99, 2, 17, 71, 3, 76, 12, 0, 99, 105, 2,
-			17, 65, 0, 7, 6, 100, 0, 4, 101, 114, 1, 17, 65, 17, 65, 104, 99, 2, 18, 69, 32, 3, 8, 72, 36, 14, 16, 0, 101, 114,
-			1, 101, 114, 2, 18, 69, 32, 0, 101, 114, 101, 1, 110, 3, 8, 72, 36, 51, 36, 0, 101, 114, 1, 105, 99, 2, 18, 69, 32, 3,
-			8, 72, 109, 14, 16, 0, 4, 3, 72, 0, 39, 8, 2, 14, 129, 132, 130, 0, 111, 110, 97, 2, 18, 69, 32, 3, 72, 6, 39, 50,
-			35, 0, 100, 3, 72, 12, 0, 97, 108, 108, 39, 8, 2, 14, 129, 132, 133, 3, 72, 35, 55, 55, 0, 101, 108, 108, 39, 8, 2, 14,
-			129, 132, 133, 3, 72, 36, 55, 55, 0, 111, 110, 97, 116, 2, 17, 71, 32, 3, 72, 39, 50, 6, 35, 47, 0, 7, 6, 101, 0, 4,
-			1, 21, 2, 115, 105, 109, 17, 65, 32, 3, 6, 36, 0, 1, 21, 2, 118, 111, 108, 17, 65, 32, 0, 2, 109, 111, 110, 17, 65, 32,
-			0, 105, 1, 114, 2, 32, 3, 6, 36, 37, 0, 116, 101, 2, 18, 69, 32, 3, 6, 36, 47, 36, 0, 110, 100, 101, 114, 1, 17, 67,
-			2, 18, 69, 32, 3, 6, 36, 50, 72, 36, 14, 16, 0, 118, 97, 110, 111, 2, 32, 3, 6, 36, 84, 35, 50, 39, 0, 115, 115, 101,
-			114, 2, 18, 69, 32, 3, 6, 36, 89, 12, 36, 51, 0, 4, 1, 17, 65, 2, 114, 32, 3, 6, 109, 0, 1, 21, 2, 114, 114, 105,
-			109, 111, 32, 0, 114, 100, 101, 114, 1, 17, 67, 2, 18, 69, 32, 3, 6, 109, 14, 16, 72, 36, 14, 16, 0, 99, 99, 111, 8, 2,
-			18, 69, 3, 6, 109, 49, 12, 39, 0, 103, 103, 105, 97, 1, 17, 67, 17, 67, 2, 110, 111, 32, 3, 6, 109, 75, 12, 35, 0, 1,
-			21, 2, 99, 105, 32, 3, 8, 36, 0, 4, 1, 17, 67, 2, 114, 101, 32, 3, 8, 109, 0, 1, 17, 67, 11, 2, 114, 17, 65, 32,
-			0, 4, 3, 36, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 102, 2, 114, 109, 0, 1, 104, 2, 115, 115, 0, 1, 109,
-			2, 115, 115, 0, 1, 109, 21, 2, 110, 116, 17, 65, 32, 0, 2, 110, 103, 17, 65, 32, 0, 2, 114, 115, 105, 32, 24, 0, 2, 115,
-			115, 97, 32, 0, 2, 116, 116, 17, 65, 32, 0, 2, 122, 122, 17, 65, 32, 0, 8, 17, 67, 115, 2, 115, 115, 0, 4, 1, 99, 2,
-			116, 116, 17, 65, 32, 3, 109, 0, 1, 103, 2, 110, 101, 0, 1, 103, 103, 2, 114, 111, 32, 0, 1, 114, 2, 109, 0, 2, 17, 65,
-			0, 2, 17, 67, 11, 17, 65, 32, 0, 2, 17, 67, 32, 0, 2, 17, 67, 105, 17, 67, 17, 65, 32, 0, 2, 17, 67, 117, 108, 17,
-			65, 32, 0, 2, 108, 0, 2, 108, 108, 117, 0, 2, 110, 17, 65, 32, 0, 2, 110, 17, 67, 17, 65, 32, 0, 2, 114, 0, 2, 115,
-			116, 0, 2, 116, 105, 0, 2, 116, 114, 0, 2, 116, 116, 105, 21, 0, 2, 118, 105, 32, 0, 2, 118, 111, 32, 0, 2, 122, 17, 65,
-			0, 8, 114, 0, 105, 2, 25, 3, 109, 57, 0, 7, 6, 102, 0, 4, 1, 17, 65, 2, 101, 114, 111, 32, 3, 8, 83, 0, 1, 17,
-			65, 21, 2, 105, 108, 111, 32, 0, 3, 83, 0, 102, 3, 83, 12, 0, 7, 6, 103, 0, 108, 105, 101, 114, 1, 21, 2, 18, 69, 32,
-			3, 8, 61, 109, 14, 16, 0, 103, 101, 114, 1, 21, 2, 18, 69, 32, 3, 8, 75, 12, 36, 14, 16, 0, 101, 114, 1, 17, 67, 17,
-			65, 2, 18, 69, 32, 3, 8, 75, 36, 14, 16, 0, 117, 101, 114, 1, 21, 2, 18, 69, 32, 3, 8, 81, 111, 36, 14, 16, 0, 4,
-			108, 2, 105, 3, 61, 0, 108, 2, 195, 172, 0, 108, 105, 2, 17, 65, 0, 110, 3, 67, 0, 110, 1, 97, 2, 17, 65, 32, 3, 67,
-			12, 0, 110, 1, 21, 2, 17, 65, 32, 3, 67, 38, 0, 4, 2, 17, 71, 3, 75, 0, 105, 1, 110, 2, 97, 32, 0, 105, 2, 17,
-			65, 0, 105, 117, 114, 97, 8, 2, 18, 69, 32, 3, 75, 6, 111, 51, 35, 0, 4, 105, 1, 111, 108, 2, 101, 32, 3, 75, 6, 125,
-			0, 105, 2, 97, 32, 0, 195, 172, 2, 97, 32, 0, 4, 103, 2, 17, 71, 3, 75, 12, 0, 103, 105, 2, 17, 65, 0, 4, 3, 81,
-			0, 104, 0, 103, 3, 81, 12, 0, 108, 8, 3, 81, 55, 0, 117, 2, 17, 65, 3, 81, 58, 0, 7, 6, 104, 0, 3, 0, 4, 97,
-			8, 3, 107, 6, 35, 0, 195, 160, 8, 0, 7, 6, 105, 0, 4, 1, 108, 2, 17, 65, 3, 2, 37, 0, 1, 114, 2, 17, 65, 0,
-			4, 1, 21, 2, 98, 105, 108, 101, 32, 3, 6, 37, 0, 1, 21, 2, 100, 101, 114, 101, 32, 0, 1, 100, 110, 97, 17, 67, 21, 21,
-			2, 110, 101, 32, 0, 2, 17, 67, 99, 97, 110, 111, 32, 0, 2, 97, 99, 17, 65, 32, 0, 2, 97, 115, 105, 32, 0, 2, 102, 105,
-			99, 97, 110, 111, 32, 0, 2, 103, 101, 110, 17, 65, 32, 0, 4, 97, 1, 29, 2, 32, 3, 6, 37, 35, 0, 97, 1, 102, 97, 2,
-			32, 0, 97, 1, 110, 111, 102, 2, 32, 0, 97, 1, 112, 111, 99, 115, 2, 32, 0, 97, 1, 114, 101, 2, 32, 0, 97, 1, 114, 111,
-			103, 2, 32, 0, 97, 1, 114, 116, 101, 109, 2, 32, 0, 97, 1, 116, 2, 32, 0, 97, 100, 1, 17, 67, 2, 17, 71, 32, 3, 6,
-			37, 35, 72, 0, 4, 101, 1, 102, 97, 2, 32, 3, 6, 37, 36, 0, 101, 1, 114, 101, 2, 32, 0, 101, 1, 114, 116, 101, 109, 2,
-			32, 0, 101, 1, 116, 2, 32, 0, 101, 8, 17, 67, 2, 32, 0, 116, 101, 2, 18, 69, 32, 3, 6, 37, 47, 36, 0, 110, 97, 115,
-			2, 32, 3, 6, 37, 50, 35, 89, 0, 102, 105, 99, 104, 105, 110, 111, 2, 32, 3, 6, 37, 83, 37, 49, 37, 50, 39, 0, 118, 97,
-			110, 111, 2, 32, 3, 6, 37, 84, 35, 50, 39, 0, 118, 101, 114, 2, 18, 69, 32, 3, 6, 37, 84, 109, 14, 16, 0, 115, 115, 97,
-			110, 111, 2, 32, 3, 6, 37, 89, 12, 35, 50, 39, 0, 115, 115, 101, 114, 111, 1, 21, 2, 32, 14, 128, 192, 134, 3, 6, 37, 89,
-			89, 36, 34, 39, 0, 115, 115, 105, 109, 1, 21, 2, 17, 65, 32, 3, 6, 37, 89, 89, 37, 65, 0, 4, 1, 17, 67, 17, 67, 17,
-			67, 17, 65, 2, 99, 97, 110, 111, 32, 3, 8, 37, 0, 1, 21, 2, 99, 17, 65, 32, 0, 1, 21, 2, 99, 104, 17, 65, 32, 0,
-			1, 21, 2, 100, 17, 65, 32, 0, 1, 21, 2, 103, 17, 65, 32, 0, 1, 21, 2, 109, 17, 65, 32, 0, 1, 98, 2, 108, 101, 32,
-			0, 1, 99, 2, 108, 17, 65, 32, 0, 1, 103, 2, 108, 17, 65, 32, 0, 1, 109, 2, 108, 101, 32, 0, 1, 112, 2, 116, 101, 32,
-			0, 1, 114, 17, 67, 97, 108, 2, 109, 17, 65, 32, 0, 1, 115, 115, 2, 108, 17, 65, 32, 0, 2, 108, 17, 65, 32, 0, 97, 1,
-			21, 2, 32, 3, 8, 37, 2, 35, 0, 111, 1, 21, 2, 32, 14, 128, 192, 129, 3, 8, 37, 2, 39, 0, 111, 110, 111, 1, 21, 2,
-			32, 3, 8, 37, 39, 50, 39, 0, 4, 110, 1, 103, 21, 2, 17, 71, 32, 3, 8, 37, 50, 0, 110, 1, 109, 17, 67, 2, 17, 71,
-			32, 0, 110, 1, 109, 105, 2, 17, 71, 32, 0, 4, 110, 101, 1, 99, 2, 32, 3, 8, 37, 50, 36, 0, 110, 101, 1, 100, 2, 32,
-			0, 4, 3, 37, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 21, 2, 17, 65, 110, 116, 101, 32, 0, 1, 114, 2, 109,
-			97, 32, 0, 1, 114, 116, 2, 99, 17, 71, 32, 0, 2, 111, 0, 2, 195, 178, 0, 2, 195, 179, 0, 195, 160, 1, 21, 2, 32, 3,
-			37, 6, 35, 0, 4, 101, 1, 21, 2, 114, 17, 65, 32, 3, 37, 6, 109, 0, 195, 169, 1, 21, 2, 114, 17, 65, 32, 0, 118, 101,
-			114, 1, 100, 2, 18, 69, 32, 3, 37, 84, 6, 109, 14, 16, 0, 4, 1, 18, 67, 2, 12, 3, 57, 0, 1, 97, 2, 12, 0, 1,
-			111, 2, 12, 0, 1, 160, 195, 2, 12, 0, 2, 17, 65, 0, 7, 6, 106, 0, 117, 97, 110, 8, 3, 21, 101, 115, 0, 1, 21, 2,
-			32, 3, 57, 0, 3, 75, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3, 49, 12, 0, 7, 6, 108, 0, 4, 3, 55, 0, 39, 8, 2,
-			14, 129, 132, 130, 0, 108, 2, 32, 0, 97, 115, 99, 105, 97, 2, 18, 69, 32, 3, 55, 6, 35, 91, 35, 0, 108, 2, 17, 67, 3,
-			55, 10, 0, 7, 6, 109, 0, 98, 97, 110, 111, 2, 32, 3, 8, 65, 71, 35, 50, 39, 0, 4, 3, 65, 0, 39, 8, 2, 14, 129,
-			132, 130, 0, 101, 116, 116, 101, 114, 2, 18, 69, 32, 3, 65, 6, 36, 47, 47, 36, 14, 16, 0, 105, 1, 17, 65, 2, 97, 32, 3,
-			65, 6, 37, 0, 101, 122, 122, 39, 8, 2, 14, 129, 132, 133, 3, 65, 109, 128, 12, 0, 7, 6, 110, 0, 100, 111, 2, 18, 69, 32,
-			3, 8, 50, 72, 39, 0, 101, 1, 17, 65, 2, 17, 65, 32, 3, 8, 50, 109, 0, 4, 3, 50, 0, 2, 103, 17, 71, 0, 101, 116,
-			116, 101, 114, 2, 18, 69, 32, 3, 50, 6, 109, 47, 12, 36, 14, 16, 0, 101, 97, 110, 99, 104, 39, 8, 2, 14, 129, 132, 135, 3,
-			50, 36, 35, 50, 49, 0, 101, 108, 108, 39, 8, 2, 14, 129, 132, 133, 3, 50, 36, 55, 55, 0, 122, 8, 17, 65, 122, 2, 17, 65,
-			3, 50, 128, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 4, 1, 21, 2, 103, 110, 111, 108, 111, 32, 3, 6, 39,
-			0, 1, 21, 2, 110, 122, 111, 108, 111, 32, 0, 1, 117, 2, 110, 111, 32, 0, 110, 100, 101, 114, 1, 17, 67, 2, 18, 69, 32, 3,
-			6, 39, 50, 72, 109, 14, 16, 0, 118, 97, 110, 111, 2, 32, 3, 6, 39, 84, 35, 50, 39, 0, 118, 101, 114, 2, 18, 69, 32, 3,
-			6, 39, 84, 109, 14, 16, 0, 115, 97, 110, 111, 2, 32, 3, 6, 39, 88, 35, 50, 39, 0, 4, 1, 21, 2, 102, 111, 110, 17, 65,
-			32, 3, 6, 110, 0, 1, 21, 2, 103, 114, 97, 102, 111, 32, 0, 1, 21, 2, 108, 111, 103, 111, 32, 0, 1, 21, 2, 109, 101, 116,
-			114, 111, 32, 0, 1, 21, 2, 110, 111, 109, 111, 32, 0, 1, 108, 2, 103, 105, 99, 111, 32, 0, 2, 17, 67, 17, 67, 97, 110, 111,
-			32, 0, 2, 17, 67, 17, 67, 105, 99, 97, 110, 111, 32, 0, 2, 103, 101, 110, 17, 65, 32, 0, 2, 112, 111, 108, 17, 65, 32, 0,
-			2, 115, 116, 114, 97, 99, 17, 65, 32, 0, 4, 1, 21, 2, 100, 105, 32, 3, 8, 39, 0, 1, 21, 2, 100, 111, 32, 0, 1, 114,
-			100, 2, 109, 111, 32, 0, 1, 118, 2, 108, 17, 65, 32, 0, 4, 1, 17, 67, 17, 67, 2, 108, 17, 65, 32, 3, 8, 110, 0, 1,
-			21, 2, 108, 111, 32, 0, 1, 21, 2, 110, 111, 32, 0, 1, 100, 110, 2, 108, 17, 65, 32, 0, 1, 105, 99, 2, 108, 17, 65, 32,
-			0, 1, 115, 110, 2, 108, 17, 65, 32, 0, 4, 3, 39, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 99, 115, 2, 108,
-			116, 17, 65, 32, 0, 1, 102, 2, 114, 109, 17, 65, 32, 0, 1, 105, 2, 110, 101, 0, 1, 105, 2, 115, 111, 32, 0, 1, 105, 21,
-			2, 32, 14, 128, 192, 129, 0, 1, 114, 17, 65, 2, 115, 115, 17, 65, 32, 0, 2, 110, 105, 32, 0, 2, 114, 17, 71, 32, 0, 105,
-			2, 111, 32, 3, 39, 2, 126, 0, 105, 2, 115, 17, 67, 17, 65, 32, 3, 39, 6, 37, 0, 4, 1, 21, 2, 108, 17, 65, 32, 3,
-			110, 0, 1, 21, 2, 108, 105, 17, 65, 32, 0, 1, 21, 2, 109, 97, 32, 0, 1, 21, 2, 109, 111, 32, 0, 1, 99, 2, 108, 116,
-			17, 65, 32, 0, 1, 99, 115, 2, 112, 17, 65, 32, 0, 1, 105, 0, 1, 105, 2, 108, 17, 65, 32, 0, 1, 109, 2, 98, 105, 108,
-			101, 0, 1, 110, 103, 2, 108, 97, 32, 0, 1, 117, 2, 108, 17, 65, 32, 0, 1, 118, 2, 108, 116, 17, 65, 32, 0, 2, 17, 67,
-			11, 17, 65, 32, 0, 2, 17, 67, 17, 65, 17, 67, 17, 65, 32, 0, 2, 17, 67, 17, 67, 32, 0, 2, 17, 67, 114, 0, 2, 99,
-			97, 32, 0, 2, 99, 111, 32, 0, 2, 108, 29, 0, 2, 108, 105, 0, 2, 110, 105, 0, 2, 111, 0, 2, 114, 0, 2, 115, 105, 32,
-			0, 2, 115, 115, 0, 2, 115, 116, 0, 2, 116, 116, 111, 108, 0, 2, 122, 17, 65, 0, 105, 3, 110, 2, 126, 0, 118, 101, 114, 1,
-			100, 2, 18, 69, 32, 3, 110, 84, 6, 109, 14, 16, 0, 7, 6, 112, 0, 1, 109, 21, 2, 101, 114, 17, 71, 32, 3, 8, 48, 0,
-			3, 48, 0, 112, 3, 48, 12, 0, 110, 8, 2, 21, 21, 3, 50, 0, 115, 8, 2, 17, 65, 21, 3, 89, 0, 7, 6, 113, 0, 3,
-			49, 0, 117, 3, 49, 122, 0, 117, 101, 115, 116, 39, 8, 2, 14, 129, 132, 134, 3, 49, 122, 36, 89, 47, 0, 117, 101, 108, 108, 39,
-			8, 2, 14, 129, 132, 134, 3, 49, 122, 109, 55, 55, 0, 7, 6, 114, 0, 4, 1, 17, 65, 2, 32, 3, 8, 14, 16, 0, 1, 21,
-			2, 18, 69, 32, 0, 4, 3, 14, 16, 0, 1, 17, 67, 0, 2, 32, 0, 8, 0, 97, 105, 1, 17, 67, 2, 32, 3, 14, 16, 6,
-			117, 0, 1, 17, 65, 2, 17, 65, 3, 51, 0, 97, 105, 1, 17, 65, 2, 32, 3, 51, 6, 117, 0, 114, 3, 51, 16, 0, 114, 97,
-			105, 2, 32, 3, 51, 16, 6, 117, 0, 7, 6, 115, 0, 99, 97, 110, 111, 1, 17, 65, 2, 32, 3, 8, 89, 49, 35, 50, 39, 0,
-			99, 104, 105, 97, 110, 111, 1, 17, 65, 2, 32, 3, 8, 89, 49, 37, 35, 50, 39, 0, 99, 105, 97, 110, 111, 2, 32, 3, 8, 91,
-			35, 50, 39, 0, 99, 101, 114, 1, 21, 2, 18, 69, 32, 3, 8, 91, 109, 14, 16, 0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 0,
-			2, 18, 68, 0, 105, 97, 1, 21, 2, 32, 3, 88, 6, 37, 35, 0, 105, 101, 1, 21, 2, 32, 3, 88, 6, 37, 36, 0, 105, 195,
-			160, 1, 21, 3, 88, 37, 6, 35, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 1, 107, 0, 1, 108, 0, 1, 112,
-			0, 2, 99, 0, 2, 102, 0, 2, 107, 0, 2, 112, 0, 2, 113, 0, 2, 116, 0, 2, 120, 0, 8, 0, 105, 97, 1, 17, 67, 21,
-			3, 89, 6, 37, 35, 0, 115, 1, 17, 65, 2, 17, 65, 3, 89, 12, 0, 111, 116, 116, 111, 8, 2, 14, 129, 132, 133, 3, 89, 39,
-			47, 12, 39, 0, 117, 108, 108, 39, 8, 2, 14, 129, 132, 133, 3, 89, 40, 55, 55, 0, 99, 104, 2, 17, 71, 3, 89, 49, 0, 115,
-			3, 89, 89, 0, 4, 99, 2, 17, 71, 3, 91, 0, 99, 105, 2, 17, 65, 0, 104, 1, 17, 65, 2, 17, 65, 0, 104, 1, 25, 0,
-			104, 2, 25, 0, 99, 105, 2, 195, 172, 3, 91, 2, 37, 0, 99, 105, 105, 3, 91, 37, 57, 0, 7, 6, 116, 0, 116, 1, 21, 2,
-			97, 110, 111, 32, 3, 8, 47, 12, 0, 3, 47, 0, 116, 3, 47, 12, 0, 116, 111, 114, 105, 97, 1, 97, 2, 32, 3, 47, 12, 39,
-			51, 6, 37, 35, 0, 116, 111, 114, 105, 101, 1, 97, 2, 32, 3, 47, 12, 39, 51, 6, 126, 36, 0, 114, 105, 97, 1, 97, 21, 2,
-			32, 3, 47, 14, 16, 6, 37, 35, 0, 114, 105, 101, 1, 97, 21, 2, 32, 3, 47, 14, 16, 6, 37, 36, 0, 7, 6, 117, 0, 4,
-			1, 21, 2, 99, 111, 108, 111, 32, 3, 6, 40, 0, 1, 21, 2, 100, 105, 110, 17, 71, 32, 0, 2, 105, 116, 111, 32, 0, 114, 97,
-			1, 17, 67, 2, 18, 69, 32, 3, 6, 40, 51, 35, 0, 98, 97, 110, 111, 2, 32, 3, 6, 40, 71, 35, 50, 39, 0, 100, 101, 114,
-			2, 18, 69, 32, 3, 6, 40, 72, 109, 14, 16, 0, 118, 97, 110, 111, 2, 32, 3, 6, 40, 84, 35, 50, 39, 0, 4, 1, 17, 67,
-			11, 17, 65, 2, 17, 65, 32, 3, 8, 40, 0, 1, 21, 2, 108, 17, 65, 32, 0, 1, 21, 21, 2, 17, 65, 32, 0, 4, 3, 40,
-			0, 1, 108, 25, 2, 17, 65, 0, 1, 114, 25, 2, 17, 65, 0, 110, 39, 8, 2, 14, 129, 132, 131, 3, 40, 50, 0, 114, 97, 108,
-			2, 17, 71, 32, 3, 40, 51, 6, 35, 55, 0, 8, 2, 17, 65, 3, 122, 0, 7, 6, 118, 0, 105, 1, 17, 67, 2, 17, 65, 32,
-			3, 8, 84, 126, 0, 3, 84, 0, 118, 3, 84, 12, 0, 118, 105, 2, 17, 65, 3, 84, 12, 37, 0, 105, 1, 17, 67, 2, 17, 65,
-			3, 84, 126, 0, 7, 6, 119, 0, 3, 122, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 2, 25, 3, 37, 0, 3, 57,
-			0, 7, 6, 122, 0, 122, 1, 21, 2, 97, 110, 111, 32, 3, 8, 123, 12, 0, 4, 122, 97, 1, 21, 21, 2, 18, 69, 32, 3, 8,
-			128, 12, 35, 0, 122, 97, 1, 105, 2, 110, 111, 32, 0, 3, 123, 0, 122, 1, 17, 65, 2, 17, 65, 3, 123, 12, 0, 105, 111, 110,
-			2, 17, 65, 32, 3, 123, 37, 6, 110, 50, 0, 105, 111, 110, 97, 2, 18, 69, 32, 3, 123, 37, 6, 110, 50, 35, 0, 105, 111, 110,
-			97, 2, 116, 105, 32, 3, 123, 37, 110, 50, 6, 35, 0, 105, 111, 110, 97, 108, 2, 17, 71, 32, 3, 123, 37, 110, 50, 6, 35, 55,
-			0, 4, 2, 18, 66, 17, 65, 3, 128, 0, 8, 2, 17, 65, 17, 67, 0, 8, 2, 17, 71, 0, 8, 17, 65, 2, 17, 65, 17, 67,
-			0, 4, 122, 1, 17, 65, 17, 67, 2, 97, 114, 17, 67, 3, 128, 12, 0, 122, 1, 105, 108, 21, 2, 17, 65, 0, 122, 8, 17, 65,
-			2, 17, 65, 0, 122, 97, 1, 105, 21, 2, 116, 105, 32, 3, 128, 12, 6, 35, 0, 7, 6, 206, 0, 4, 172, 3, 6, 35, 55, 83,
-			35, 10, 0, 177, 0, 183, 3, 6, 36, 12, 47, 35, 15, 81, 14, 16, 6, 36, 49, 35, 0, 174, 3, 6, 36, 12, 47, 35, 15, 81,
-			14, 16, 6, 36, 49, 35, 10, 0, 191, 3, 6, 39, 65, 126, 49, 14, 16, 39, 50, 10, 0, 181, 3, 6, 109, 48, 89, 126, 55, 39,
-			50, 0, 173, 3, 6, 109, 48, 89, 126, 55, 39, 50, 10, 0, 184, 3, 47, 6, 36, 12, 47, 35, 15, 81, 14, 16, 6, 36, 49, 35,
-			10, 0, 186, 3, 49, 6, 35, 48, 12, 35, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 190, 3, 49, 89, 6, 126, 15, 81, 14, 16,
-			6, 36, 49, 35, 10, 0, 189, 3, 50, 6, 57, 40, 12, 10, 0, 187, 3, 55, 6, 35, 65, 71, 72, 35, 10, 0, 188, 3, 65, 6,
-			57, 40, 12, 10, 0, 178, 3, 71, 6, 36, 47, 35, 10, 0, 180, 3, 72, 6, 109, 55, 47, 35, 10, 0, 179, 3, 81, 6, 35, 65,
-			12, 35, 10, 0, 4, 175, 3, 126, 6, 39, 47, 35, 10, 0, 185, 0, 182, 3, 128, 6, 36, 47, 35, 15, 81, 14, 16, 6, 36, 49,
-			35, 0, 7, 6, 207, 0, 140, 3, 6, 39, 65, 126, 49, 14, 16, 39, 50, 10, 0, 4, 133, 3, 6, 126, 48, 89, 126, 55, 39, 50,
-			10, 0, 141, 0, 129, 3, 14, 16, 6, 110, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 4, 137, 3, 39, 65, 6, 36, 81, 35, 10,
-			0, 142, 0, 132, 3, 47, 6, 35, 40, 10, 0, 128, 3, 48, 6, 126, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 136, 3, 48, 89,
-			6, 126, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 135, 3, 49, 6, 126, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 134, 3, 83,
-			6, 126, 15, 81, 14, 16, 6, 36, 49, 35, 10, 0, 4, 130, 3, 89, 6, 126, 81, 65, 35, 10, 0, 131, 0, 7, 6, 0, 33, 1,
-			19, 3, 0, 195, 161, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0, 4, 195, 172, 3, 7, 37, 0, 195, 173, 0, 195, 179, 3, 7, 39,
-			0, 195, 179, 105, 3, 7, 39, 126, 0, 4, 195, 185, 3, 7, 40, 0, 195, 186, 0, 195, 168, 3, 7, 109, 0, 195, 168, 105, 2, 25,
-			3, 7, 109, 57, 0, 195, 178, 3, 7, 110, 0, 195, 178, 105, 3, 7, 110, 126, 0, 195, 169, 105, 2, 25, 3, 7, 118, 0, 4, 45,
-			1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 58, 8, 32, 18, 81, 2, 32, 18, 82, 15, 32,
-			3, 10, 3, 109, 10, 0, 33, 3, 10, 48, 6, 40, 50, 47, 39, 36, 89, 49, 55, 35, 65, 35, 47, 6, 37, 84, 39, 10, 0, 45,
-			8, 32, 2, 32, 15, 3, 65, 36, 50, 39, 0, 4, 103, 110, 3, 67, 0, 195, 177, 0, 36, 3, 72, 6, 39, 55, 55, 35, 51, 39,
-			0, 44, 1, 15, 2, 15, 3, 84, 6, 37, 14, 16, 81, 39, 55, 35, 0, 194, 167, 3, 89, 36, 123, 37, 6, 39, 50, 36, 0, 7,
-			0, 0};
-		autoFileInMemory espeakdata_dicts32 = FileInMemory_createWithData (61801, reinterpret_cast<const char *> (&espeakdata_dicts32_data), 
-			U"espeak-1.48.04-source/espeak-data/it_dict", 
+		static unsigned char espeakdata_dicts29_data[43393] = {
+			0, 4, 0, 0, 251, 159, 0, 0, 0, 9, 198, 5, 97, 86, 4, 227, 192, 72, 17, 70, 88, 16, 213, 60, 195, 192, 84, 35, 49, 6,
+			40, 110, 55, 39, 0, 0, 10, 199, 56, 80, 210, 60, 195, 199, 36, 20, 0, 6, 195, 52, 83, 128, 21, 0, 6, 195, 60, 35, 9, 66,
+			0, 7, 65, 4, 35, 12, 0, 14, 4, 193, 4, 72, 9, 197, 64, 244, 144, 61, 32, 65, 21, 9, 198, 8, 192, 83, 24, 83, 64, 20,
+			0, 9, 198, 80, 144, 149, 72, 243, 128, 67, 10, 198, 80, 83, 5, 28, 243, 128, 66, 20, 9, 198, 76, 147, 131, 72, 243, 128, 65, 9,
+			198, 5, 48, 193, 48, 17, 128, 66, 9, 198, 4, 229, 9, 24, 243, 128, 66, 0, 10, 199, 88, 243, 20, 4, 209, 84, 72, 66, 10, 199,
+			80, 84, 1, 56, 80, 200, 36, 20, 10, 199, 64, 192, 78, 36, 209, 84, 72, 66, 10, 199, 64, 83, 148, 4, 209, 84, 72, 66, 9, 198,
+			60, 211, 212, 80, 84, 137, 20, 10, 199, 52, 147, 12, 36, 209, 84, 72, 66, 6, 195, 48, 240, 128, 20, 9, 198, 37, 51, 212, 80, 84,
+			137, 20, 9, 198, 29, 32, 84, 80, 84, 137, 66, 10, 199, 12, 83, 148, 36, 209, 84, 72, 66, 0, 9, 198, 76, 245, 20, 61, 163, 206,
+			20, 7, 196, 72, 144, 133, 12, 20, 12, 200, 64, 84, 143, 56, 244, 208, 61, 32, 67, 20, 0, 6, 65, 8, 71, 37, 0, 13, 202, 16,
+			144, 201, 4, 227, 143, 88, 84, 201, 52, 20, 9, 197, 12, 243, 147, 60, 224, 65, 20, 8, 197, 12, 148, 205, 60, 224, 66, 9, 197, 12,
+			83, 148, 36, 224, 65, 20, 8, 197, 12, 20, 140, 36, 224, 66, 0, 9, 198, 72, 144, 207, 88, 84, 128, 66, 0, 9, 198, 65, 35, 211,
+			12, 83, 137, 20, 11, 199, 64, 84, 147, 20, 99, 206, 20, 66, 20, 0, 9, 198, 76, 241, 199, 36, 244, 142, 21, 9, 198, 4, 197, 15,
+			24, 244, 142, 21, 0, 6, 65, 12, 76, 37, 0, 8, 197, 88, 86, 154, 20, 224, 65, 8, 197, 72, 83, 132, 36, 224, 65, 8, 197, 12,
+			244, 142, 20, 240, 65, 8, 197, 12, 243, 15, 72, 224, 21, 8, 197, 12, 149, 137, 48, 80, 66, 8, 197, 8, 244, 142, 20, 240, 65, 0,
+			9, 198, 88, 144, 68, 61, 69, 0, 21, 9, 198, 52, 17, 199, 36, 244, 128, 21, 9, 198, 48, 21, 20, 61, 50, 64, 20, 9, 198, 12,
+			20, 9, 56, 84, 128, 21, 0, 13, 4, 95, 8, 1, 3, 107, 6, 35, 76, 36, 49, 0, 6, 195, 80, 241, 128, 20, 10, 199, 24, 147,
+			1, 80, 83, 9, 4, 68, 10, 199, 16, 148, 204, 21, 52, 201, 4, 67, 0, 11, 200, 64, 20, 133, 77, 65, 83, 36, 80, 68, 7, 196,
+			48, 145, 86, 20, 20, 7, 196, 40, 84, 207, 48, 20, 11, 200, 20, 211, 196, 36, 19, 9, 76, 144, 67, 11, 200, 13, 84, 150, 36, 194,
+			78, 20, 240, 67, 0, 6, 65, 16, 72, 37, 0, 12, 201, 76, 19, 148, 4, 32, 82, 8, 20, 128, 67, 8, 197, 69, 80, 76, 61, 32,
+			21, 9, 197, 64, 84, 137, 21, 32, 65, 21, 6, 195, 52, 83, 142, 21, 8, 197, 21, 2, 82, 61, 64, 20, 8, 197, 16, 148, 133, 81,
+			64, 20, 0, 6, 195, 77, 3, 211, 20, 9, 198, 76, 244, 130, 37, 67, 204, 67, 0, 12, 201, 81, 84, 130, 61, 97, 78, 80, 243, 0,
+			20, 10, 198, 61, 69, 5, 56, 84, 133, 67, 21, 10, 199, 56, 244, 141, 4, 225, 9, 4, 67, 9, 198, 52, 148, 197, 72, 84, 133, 67,
+			0, 11, 200, 52, 243, 148, 20, 51, 211, 5, 32, 67, 0, 7, 65, 20, 36, 12, 0, 14, 5, 193, 20, 72, 8, 6, 195, 80, 243, 142,
+			21, 8, 197, 36, 194, 5, 85, 48, 21, 16, 69, 29, 80, 73, 56, 16, 81, 58, 35, 6, 37, 12, 50, 35, 0, 8, 197, 16, 145, 83,
+			37, 48, 20, 12, 201, 12, 19, 80, 60, 64, 82, 76, 81, 192, 67, 0, 6, 195, 21, 0, 64, 20, 9, 198, 64, 19, 12, 5, 99, 204,
+			67, 10, 198, 36, 225, 5, 8, 149, 0, 66, 21, 9, 198, 24, 147, 15, 76, 241, 128, 66, 9, 198, 21, 0, 82, 12, 130, 65, 67, 9,
+			198, 21, 0, 71, 56, 85, 76, 65, 9, 198, 20, 227, 129, 28, 243, 128, 66, 0, 6, 195, 100, 241, 0, 20, 10, 199, 81, 32, 84, 4,
+			194, 65, 76, 67, 10, 199, 52, 83, 132, 20, 193, 86, 36, 20, 10, 199, 52, 19, 77, 36, 97, 82, 36, 66, 10, 199, 48, 144, 193, 57,
+			68, 143, 64, 66, 6, 195, 25, 35, 196, 20, 0, 11, 67, 69, 82, 65, 49, 58, 6, 37, 35, 0, 11, 200, 12, 243, 143, 76, 49, 82,
+			48, 16, 66, 6, 195, 80, 243, 137, 20, 7, 196, 72, 145, 83, 36, 20, 0, 8, 65, 24, 36, 83, 83, 36, 0, 8, 197, 88, 243, 19,
+			12, 144, 20, 8, 197, 77, 1, 67, 36, 80, 20, 8, 197, 76, 83, 137, 48, 80, 66, 8, 197, 52, 84, 211, 36, 16, 66, 8, 197, 52,
+			84, 143, 64, 80, 65, 8, 197, 48, 241, 199, 36, 16, 20, 8, 197, 48, 147, 79, 56, 80, 20, 9, 197, 44, 20, 129, 80, 80, 67, 20,
+			8, 197, 24, 241, 199, 36, 16, 20, 8, 197, 21, 67, 201, 48, 80, 65, 8, 197, 5, 64, 76, 36, 16, 67, 8, 197, 4, 229, 15, 56,
+			144, 20, 0, 9, 198, 77, 84, 16, 61, 53, 0, 21, 9, 198, 52, 17, 206, 21, 50, 64, 20, 9, 198, 12, 20, 147, 60, 194, 64, 66,
+			9, 198, 4, 224, 76, 37, 50, 64, 66, 0, 10, 198, 88, 19, 19, 21, 50, 65, 66, 20, 10, 198, 52, 17, 206, 21, 50, 65, 66, 20,
+			10, 199, 36, 212, 5, 72, 97, 84, 80, 20, 9, 198, 16, 148, 212, 60, 226, 65, 67, 9, 198, 12, 83, 143, 52, 19, 137, 66, 6, 195,
+			9, 35, 196, 20, 9, 198, 4, 208, 90, 104, 243, 137, 66, 0, 7, 196, 64, 193, 83, 36, 20, 9, 198, 21, 81, 197, 56, 243, 0, 68,
+			11, 200, 12, 20, 15, 48, 149, 133, 72, 144, 67, 0, 6, 65, 28, 75, 37, 0, 8, 197, 52, 243, 129, 16, 80, 65, 8, 197, 24, 244,
+			16, 60, 192, 20, 8, 197, 24, 19, 5, 12, 144, 20, 8, 197, 20, 195, 1, 16, 80, 65, 9, 198, 4, 229, 9, 17, 35, 199, 20, 0,
+			13, 202, 77, 3, 1, 56, 51, 143, 64, 193, 85, 72, 67, 6, 195, 48, 243, 135, 20, 10, 198, 37, 51, 208, 80, 84, 128, 66, 20, 9,
+			198, 4, 224, 66, 5, 50, 64, 66, 0, 14, 203, 88, 147, 12, 5, 96, 76, 48, 83, 15, 56, 112, 20, 10, 199, 81, 33, 78, 80, 84,
+			201, 52, 20, 6, 195, 80, 243, 128, 20, 10, 199, 80, 83, 5, 12, 19, 69, 72, 67, 6, 195, 16, 243, 128, 21, 10, 199, 12, 21, 5,
+			12, 129, 83, 36, 20, 9, 198, 4, 208, 90, 104, 243, 133, 66, 0, 11, 200, 77, 84, 5, 73, 53, 9, 80, 80, 66, 11, 200, 52, 147,
+			12, 20, 99, 199, 48, 144, 20, 6, 195, 16, 243, 129, 66, 11, 200, 12, 243, 148, 72, 17, 82, 20, 240, 67, 0, 8, 65, 32, 35, 49,
+			12, 35, 0, 12, 201, 12, 20, 212, 72, 243, 9, 8, 84, 128, 67, 0, 9, 198, 64, 243, 9, 28, 243, 128, 66, 9, 198, 52, 16, 195,
+			32, 147, 128, 65, 9, 198, 5, 4, 137, 12, 83, 128, 21, 0, 6, 195, 80, 244, 132, 21, 6, 195, 48, 244, 132, 21, 0, 8, 196, 56,
+			83, 12, 4, 72, 28, 15, 1, 35, 49, 35, 50, 76, 36, 55, 55, 36, 47, 12, 39, 0, 7, 196, 64, 243, 12, 36, 20, 7, 196, 56,
+			81, 213, 76, 20, 6, 195, 52, 84, 137, 66, 7, 196, 48, 147, 12, 4, 66, 6, 195, 5, 67, 205, 65, 0, 6, 195, 5, 67, 206, 65,
+			7, 65, 36, 37, 12, 0, 14, 5, 193, 36, 72, 9, 8, 197, 88, 147, 131, 37, 64, 65, 8, 197, 76, 147, 12, 4, 32, 65, 6, 195,
+			64, 246, 154, 21, 6, 195, 5, 67, 206, 66, 0, 15, 1, 37, 48, 36, 14, 16, 76, 6, 36, 50, 47, 39, 0, 27, 9, 198, 81, 34,
+			71, 48, 145, 128, 65, 9, 198, 8, 20, 207, 16, 147, 128, 66, 9, 198, 5, 32, 207, 76, 83, 128, 21, 0, 6, 1, 38, 10, 36, 0,
+			10, 199, 80, 16, 200, 36, 209, 84, 72, 66, 9, 198, 76, 98, 78, 80, 84, 133, 66, 10, 199, 65, 35, 211, 36, 81, 213, 60, 20, 0,
+			6, 195, 80, 244, 129, 66, 7, 196, 64, 83, 142, 20, 21, 0, 8, 65, 40, 75, 36, 12, 57, 0, 6, 195, 80, 244, 130, 21, 9, 198,
+			64, 83, 1, 88, 84, 135, 21, 8, 197, 12, 148, 15, 48, 192, 21, 8, 197, 4, 212, 15, 48, 192, 21, 0, 9, 198, 76, 115, 205, 8,
+			84, 128, 65, 10, 198, 72, 240, 149, 72, 83, 148, 67, 20, 9, 198, 72, 147, 66, 61, 36, 192, 21, 9, 198, 64, 20, 1, 88, 84, 128,
+			66, 7, 195, 12, 148, 143, 66, 20, 0, 14, 1, 42, 35, 89, 47, 36, 51, 37, 89, 49, 39, 0, 27, 10, 199, 77, 68, 129, 64, 147,
+			205, 8, 21, 9, 198, 60, 224, 207, 28, 83, 133, 67, 9, 198, 16, 148, 208, 20, 225, 9, 20, 0, 8, 1, 43, 48, 57, 40, 0, 27,
+			7, 196, 80, 19, 9, 4, 66, 7, 196, 64, 243, 9, 4, 66, 7, 196, 52, 81, 9, 4, 20, 0, 8, 197, 36, 225, 15, 48, 240, 66,
+			9, 65, 44, 49, 35, 48, 12, 35, 0, 8, 197, 80, 84, 133, 9, 32, 65, 9, 197, 76, 193, 83, 36, 16, 65, 20, 8, 197, 48, 148,
+			212, 60, 224, 66, 8, 197, 21, 51, 206, 21, 32, 66, 8, 197, 8, 246, 154, 60, 192, 20, 0, 6, 195, 48, 244, 143, 72, 7, 195, 48,
+			244, 143, 76, 9, 9, 198, 16, 83, 9, 8, 84, 128, 66, 0, 10, 1, 46, 48, 40, 50, 47, 39, 0, 27, 10, 199, 69, 80, 78, 80,
+			243, 69, 56, 21, 9, 198, 60, 224, 207, 28, 83, 137, 67, 0, 9, 1, 47, 89, 55, 35, 91, 0, 27, 7, 196, 80, 83, 137, 4, 20,
+			7, 196, 76, 145, 80, 20, 20, 8, 196, 76, 83, 142, 60, 66, 20, 7, 196, 76, 16, 133, 36, 66, 11, 200, 64, 21, 15, 28, 83, 133,
+			76, 144, 67, 11, 200, 53, 85, 1, 28, 83, 133, 76, 144, 67, 7, 196, 52, 17, 137, 4, 65, 11, 200, 25, 32, 84, 21, 35, 137, 80,
+			16, 68, 11, 200, 21, 52, 15, 76, 147, 69, 81, 32, 67, 11, 200, 12, 20, 18, 36, 99, 199, 48, 144, 20, 0, 8, 65, 48, 109, 55,
+			55, 36, 0, 8, 197, 36, 228, 197, 81, 64, 20, 0, 9, 198, 64, 20, 129, 8, 244, 132, 21, 0, 6, 195, 69, 81, 76, 72, 10, 199,
+			88, 83, 131, 21, 51, 1, 60, 67, 10, 199, 12, 243, 80, 4, 115, 137, 4, 67, 0, 8, 196, 56, 83, 12, 20, 72, 28, 11, 200, 16,
+			244, 16, 36, 244, 5, 81, 64, 20, 7, 196, 5, 32, 66, 36, 65, 0, 8, 65, 52, 109, 65, 65, 36, 0, 8, 197, 12, 195, 196, 36,
+			16, 20, 0, 9, 198, 53, 85, 1, 28, 83, 128, 66, 12, 201, 24, 244, 129, 52, 147, 137, 24, 84, 137, 68, 9, 198, 16, 148, 25, 48,
+			243, 128, 65, 0, 10, 199, 72, 150, 154, 36, 51, 206, 36, 66, 6, 195, 52, 83, 148, 21, 6, 195, 52, 83, 148, 21, 0, 10, 67, 69,
+			81, 73, 49, 122, 36, 57, 0, 7, 196, 72, 243, 154, 36, 66, 7, 196, 72, 240, 130, 36, 20, 7, 196, 72, 16, 130, 36, 66, 7, 196,
+			64, 193, 85, 72, 65, 7, 196, 52, 84, 197, 72, 65, 7, 196, 36, 225, 84, 80, 20, 10, 198, 16, 80, 197, 8, 19, 0, 66, 20, 7,
+			196, 8, 240, 130, 36, 20, 0, 8, 197, 24, 16, 197, 88, 144, 76, 8, 65, 56, 109, 50, 50, 36, 0, 8, 197, 64, 83, 15, 64, 80,
+			65, 0, 9, 198, 28, 197, 67, 61, 50, 64, 20, 9, 198, 13, 33, 77, 37, 50, 64, 65, 0, 14, 1, 58, 72, 4, 40, 36, 48, 6,
+			40, 50, 47, 37, 0, 10, 199, 77, 81, 4, 36, 16, 207, 56, 66, 10, 199, 65, 33, 68, 36, 193, 84, 80, 20, 9, 198, 5, 49, 137,
+			77, 50, 65, 67, 0, 11, 200, 28, 147, 143, 28, 83, 133, 76, 144, 67, 9, 198, 20, 193, 77, 61, 50, 78, 67, 0, 7, 65, 60, 110,
+			12, 0, 14, 9, 198, 64, 84, 148, 4, 229, 15, 8, 5, 193, 60, 72, 8, 9, 198, 81, 32, 83, 12, 244, 147, 21, 8, 197, 76, 99,
+			199, 28, 144, 20, 8, 197, 76, 83, 5, 56, 144, 20, 8, 197, 64, 147, 1, 16, 80, 65, 8, 197, 52, 145, 15, 48, 192, 21, 8, 197,
+			52, 19, 132, 20, 144, 66, 8, 197, 36, 229, 18, 36, 112, 66, 8, 197, 25, 80, 201, 48, 80, 66, 8, 197, 16, 83, 5, 8, 144, 20,
+			8, 197, 12, 147, 133, 76, 144, 20, 0, 11, 1, 61, 40, 81, 58, 35, 55, 36, 0, 27, 6, 195, 61, 0, 67, 66, 9, 198, 52, 243,
+			143, 24, 244, 128, 66, 9, 198, 48, 243, 137, 12, 84, 128, 66, 9, 198, 16, 144, 83, 64, 244, 128, 66, 0, 9, 198, 81, 34, 67, 21,
+			50, 77, 20, 10, 199, 12, 83, 148, 72, 243, 69, 72, 66, 0, 9, 198, 72, 85, 9, 56, 243, 0, 67, 11, 200, 24, 149, 15, 12, 83,
+			143, 76, 144, 21, 9, 198, 12, 192, 85, 76, 243, 0, 65, 9, 198, 5, 3, 211, 81, 35, 198, 66, 7, 196, 4, 192, 133, 16, 20, 0,
+			13, 1, 64, 49, 37, 6, 39, 76, 12, 39, 55, 35, 0, 13, 1, 64, 49, 37, 6, 39, 76, 12, 39, 55, 35, 0, 6, 65, 64, 48,
+			37, 0, 0, 9, 198, 64, 81, 1, 88, 83, 128, 21, 10, 198, 61, 33, 193, 56, 243, 128, 65, 21, 9, 198, 52, 21, 1, 64, 19, 128,
+			67, 9, 198, 37, 51, 211, 64, 147, 128, 67, 0, 9, 198, 4, 210, 76, 12, 20, 133, 66, 0, 0, 6, 65, 68, 49, 40, 0, 9, 198,
+			72, 80, 201, 65, 35, 195, 66, 6, 195, 52, 86, 154, 20, 8, 197, 9, 32, 68, 37, 0, 65, 0, 0, 7, 195, 84, 224, 64, 72, 9,
+			6, 195, 60, 34, 84, 65, 0, 8, 196, 76, 83, 15, 56, 66, 20, 7, 196, 61, 48, 193, 72, 20, 7, 196, 12, 240, 129, 76, 20, 7,
+			196, 4, 192, 133, 72, 65, 0, 8, 65, 72, 109, 51, 16, 36, 0, 8, 197, 64, 84, 132, 60, 224, 21, 8, 197, 52, 19, 16, 20, 192,
+			21, 0, 9, 198, 88, 19, 19, 20, 48, 192, 21, 6, 195, 80, 240, 195, 21, 9, 198, 64, 244, 201, 48, 194, 80, 66, 9, 198, 4, 229,
+			5, 72, 244, 192, 65, 0, 9, 198, 77, 1, 67, 84, 197, 77, 65, 10, 199, 76, 84, 150, 60, 100, 133, 56, 21, 10, 199, 72, 240, 195,
+			5, 49, 67, 12, 21, 10, 199, 52, 243, 143, 4, 192, 133, 72, 67, 10, 199, 24, 197, 77, 20, 225, 15, 76, 20, 0, 7, 196, 4, 32,
+			137, 4, 76, 12, 200, 80, 83, 5, 56, 49, 70, 4, 192, 67, 20, 7, 196, 76, 19, 13, 36, 66, 12, 200, 52, 84, 197, 56, 49, 70,
+			4, 192, 67, 20, 6, 195, 16, 241, 197, 20, 0, 8, 65, 76, 36, 89, 89, 36, 0, 9, 198, 77, 64, 77, 8, 80, 195, 21, 12, 201,
+			65, 35, 208, 20, 65, 85, 80, 144, 192, 67, 8, 197, 52, 20, 141, 61, 32, 65, 8, 197, 28, 85, 20, 37, 64, 65, 6, 195, 20, 97,
+			66, 20, 8, 197, 12, 83, 66, 4, 192, 65, 8, 197, 12, 19, 129, 4, 224, 65, 8, 197, 12, 19, 9, 9, 32, 65, 8, 197, 8, 21,
+			20, 37, 64, 65, 8, 197, 8, 20, 130, 21, 32, 65, 0, 8, 197, 77, 0, 84, 60, 192, 65, 8, 197, 77, 0, 76, 5, 64, 65, 9,
+			198, 77, 0, 71, 56, 243, 0, 66, 12, 201, 77, 0, 67, 12, 19, 129, 64, 243, 9, 67, 11, 200, 77, 0, 67, 12, 17, 143, 72, 224,
+			21, 9, 198, 65, 33, 70, 21, 69, 0, 20, 9, 198, 64, 147, 194, 8, 144, 192, 21, 7, 195, 20, 225, 71, 65, 20, 10, 198, 16, 145,
+			1, 12, 129, 64, 67, 20, 9, 198, 12, 83, 12, 60, 193, 64, 21, 9, 198, 4, 147, 15, 12, 129, 64, 20, 0, 6, 195, 80, 241, 192,
+			20, 6, 195, 48, 241, 192, 20, 6, 195, 36, 211, 204, 65, 10, 199, 12, 19, 80, 4, 115, 143, 48, 67, 0, 11, 200, 64, 84, 141, 4,
+			100, 143, 77, 64, 65, 7, 196, 61, 32, 201, 4, 21, 7, 196, 21, 100, 143, 76, 20, 7, 196, 12, 241, 15, 48, 21, 0, 6, 65, 80,
+			47, 37, 0, 10, 198, 80, 84, 143, 48, 65, 71, 66, 20, 8, 197, 80, 20, 148, 5, 32, 65, 8, 197, 77, 81, 5, 77, 64, 66, 6,
+			195, 76, 147, 206, 66, 8, 197, 72, 148, 15, 77, 64, 21, 8, 197, 65, 35, 212, 37, 32, 65, 8, 197, 64, 84, 146, 21, 32, 66, 9,
+			198, 52, 86, 154, 4, 225, 71, 66, 8, 197, 36, 229, 5, 29, 32, 65, 8, 197, 21, 100, 133, 85, 128, 65, 8, 197, 16, 84, 15, 77,
+			64, 21, 8, 197, 12, 244, 146, 21, 32, 66, 8, 197, 8, 148, 15, 77, 64, 21, 0, 9, 198, 81, 34, 80, 60, 65, 64, 65, 10, 198,
+			28, 147, 214, 4, 225, 64, 65, 21, 9, 198, 12, 243, 134, 36, 225, 64, 66, 9, 198, 12, 131, 210, 104, 245, 192, 66, 13, 202, 12, 130,
+			85, 76, 21, 133, 12, 50, 9, 4, 20, 13, 202, 8, 19, 14, 20, 245, 5, 72, 20, 9, 4, 70, 0, 6, 195, 76, 147, 192, 66, 10,
+			199, 76, 147, 131, 72, 243, 137, 4, 67, 9, 198, 64, 84, 195, 32, 144, 201, 20, 10, 199, 64, 19, 1, 28, 243, 137, 4, 68, 9, 198,
+			52, 240, 207, 56, 84, 201, 66, 6, 195, 21, 83, 128, 65, 9, 198, 20, 211, 211, 80, 20, 201, 66, 10, 199, 12, 147, 195, 36, 20, 137,
+			4, 67, 10, 199, 4, 225, 137, 28, 243, 137, 4, 68, 6, 195, 4, 224, 80, 65, 0, 7, 195, 76, 18, 197, 66, 20, 7, 196, 64, 83,
+			12, 20, 21, 0, 9, 197, 80, 83, 133, 72, 80, 66, 21, 12, 201, 28, 83, 133, 72, 22, 137, 60, 225, 64, 20, 8, 197, 12, 20, 1,
+			12, 80, 66, 12, 201, 5, 48, 204, 21, 2, 79, 16, 245, 0, 68, 0, 9, 198, 77, 1, 67, 12, 130, 64, 20, 9, 198, 65, 35, 211,
+			80, 21, 0, 65, 9, 198, 21, 32, 129, 12, 83, 192, 66, 9, 198, 5, 3, 211, 80, 21, 0, 66, 0, 9, 198, 77, 1, 67, 12, 130,
+			65, 20, 6, 195, 20, 226, 64, 66, 9, 198, 12, 19, 66, 60, 66, 65, 20, 0, 11, 200, 80, 85, 18, 5, 32, 200, 36, 16, 67, 7,
+			196, 76, 19, 148, 20, 66, 7, 196, 72, 80, 130, 36, 21, 11, 200, 65, 35, 195, 60, 228, 207, 48, 80, 20, 7, 196, 56, 83, 142, 36,
+			20, 9, 198, 20, 211, 212, 36, 51, 206, 66, 7, 195, 12, 147, 197, 66, 20, 0, 6, 65, 88, 84, 40, 0, 8, 197, 72, 149, 15, 12,
+			48, 21, 8, 197, 72, 85, 133, 72, 80, 21, 8, 197, 36, 225, 68, 36, 16, 20, 8, 197, 28, 16, 129, 48, 144, 65, 8, 197, 13, 84,
+			131, 84, 208, 65, 8, 197, 5, 4, 137, 48, 80, 66, 0, 6, 195, 80, 244, 147, 21, 12, 201, 76, 50, 9, 104, 241, 146, 20, 226, 65,
+			68, 9, 198, 52, 243, 15, 12, 130, 64, 20, 9, 198, 29, 32, 68, 60, 194, 64, 65, 9, 198, 12, 19, 142, 60, 34, 64, 20, 0, 9,
+			198, 81, 32, 71, 20, 66, 65, 20, 0, 8, 196, 56, 83, 12, 60, 72, 28, 17, 4, 95, 49, 77, 52, 40, 50, 71, 37, 55, 37, 6,
+			39, 50, 36, 0, 11, 200, 28, 192, 85, 12, 241, 129, 56, 80, 67, 11, 200, 12, 244, 142, 84, 51, 208, 36, 16, 20, 11, 200, 12, 244,
+			18, 60, 192, 76, 36, 16, 68, 7, 196, 12, 16, 129, 48, 65, 7, 196, 4, 208, 137, 80, 65, 0, 12, 1, 92, 71, 35, 49, 89, 55,
+			35, 91, 0, 27, 14, 65, 92, 72, 6, 39, 48, 12, 57, 35, 84, 6, 40, 0, 6, 195, 80, 244, 142, 21, 8, 197, 80, 130, 69, 76,
+			144, 20, 8, 197, 76, 148, 212, 20, 208, 20, 8, 197, 56, 243, 65, 16, 80, 65, 8, 197, 48, 243, 135, 32, 144, 20, 8, 197, 12, 20,
+			211, 60, 192, 66, 8, 197, 5, 69, 15, 72, 224, 21, 0, 9, 198, 76, 243, 15, 64, 16, 192, 67, 9, 198, 57, 83, 129, 80, 18, 192,
+			67, 9, 198, 56, 83, 199, 72, 80, 192, 20, 6, 195, 28, 147, 199, 21, 7, 195, 20, 97, 83, 65, 20, 0, 0, 7, 196, 64, 243, 148,
+			60, 20, 11, 200, 65, 35, 194, 61, 48, 201, 16, 80, 20, 0, 13, 4, 95, 49, 77, 49, 65, 6, 37, 55, 55, 36, 0, 8, 65, 96,
+			6, 37, 49, 89, 0, 8, 197, 28, 243, 142, 21, 48, 20, 8, 197, 20, 226, 201, 17, 80, 20, 6, 195, 16, 246, 154, 21, 9, 198, 4,
+			113, 83, 36, 192, 79, 68, 0, 6, 194, 4, 64, 72, 28, 17, 4, 95, 49, 77, 50, 40, 50, 65, 37, 55, 37, 6, 39, 50, 36, 0,
+			9, 198, 21, 81, 193, 56, 83, 192, 67, 0, 18, 4, 95, 49, 77, 51, 40, 50, 65, 37, 55, 37, 6, 35, 51, 72, 39, 0, 10, 199,
+			36, 224, 207, 53, 3, 5, 80, 20, 6, 195, 36, 98, 84, 65, 9, 198, 12, 130, 67, 32, 144, 137, 67, 9, 198, 12, 128, 77, 8, 84,
+			153, 21, 9, 198, 12, 21, 1, 48, 148, 201, 66, 0, 7, 196, 104, 81, 137, 72, 65, 7, 196, 80, 243, 22, 20, 20, 7, 196, 73, 83,
+			212, 36, 20, 7, 196, 64, 243, 9, 76, 21, 7, 195, 60, 20, 201, 65, 20, 7, 196, 48, 144, 133, 72, 65, 7, 196, 48, 144, 133, 72,
+			65, 7, 196, 48, 16, 129, 72, 65, 6, 195, 16, 244, 197, 20, 9, 198, 9, 32, 71, 4, 66, 78, 67, 9, 198, 8, 20, 130, 4, 225,
+			82, 21, 0, 12, 65, 100, 6, 37, 48, 89, 37, 55, 39, 50, 0, 7, 195, 4, 211, 210, 66, 21, 0, 9, 198, 52, 20, 129, 52, 19,
+			192, 67, 0, 10, 199, 64, 147, 142, 37, 1, 68, 36, 66, 9, 198, 64, 20, 129, 85, 37, 9, 67, 9, 198, 36, 225, 133, 48, 144, 197,
+			67, 9, 198, 24, 245, 15, 48, 148, 201, 66, 11, 199, 5, 48, 197, 57, 50, 79, 56, 68, 21, 6, 195, 4, 226, 84, 65, 0, 7, 196,
+			80, 19, 15, 72, 21, 7, 196, 65, 35, 214, 20, 20, 8, 196, 12, 17, 134, 20, 66, 20, 0, 10, 65, 104, 72, 88, 36, 12, 47, 35,
+			0, 8, 197, 24, 244, 131, 60, 192, 21, 8, 197, 12, 244, 146, 20, 64, 20, 12, 201, 12, 243, 134, 72, 21, 5, 72, 226, 84, 67, 8,
+			197, 12, 241, 207, 72, 224, 21, 8, 197, 12, 84, 131, 60, 192, 21, 8, 197, 5, 32, 71, 60, 224, 67, 8, 197, 4, 48, 197, 56, 224,
+			21, 0, 9, 198, 4, 211, 210, 28, 244, 192, 67, 0, 6, 195, 64, 244, 192, 20, 10, 199, 57, 84, 129, 52, 147, 137, 76, 66, 10, 199,
+			52, 19, 143, 16, 244, 5, 72, 67, 0, 7, 196, 21, 32, 78, 60, 72, 12, 201, 52, 81, 9, 80, 84, 146, 4, 225, 79, 68, 7, 196,
+			13, 80, 195, 84, 66, 15, 204, 5, 32, 201, 12, 243, 134, 72, 21, 5, 72, 226, 84, 69, 0, 8, 197, 92, 21, 20, 61, 32, 21, 8,
+			197, 88, 83, 132, 37, 64, 65, 8, 197, 80, 19, 77, 5, 32, 65, 9, 198, 76, 20, 131, 60, 96, 71, 66, 6, 195, 28, 147, 214, 21,
+			8, 197, 24, 84, 142, 21, 64, 66, 12, 201, 20, 194, 79, 12, 83, 148, 72, 144, 192, 20, 0, 9, 198, 48, 84, 85, 36, 193, 64, 20,
+			9, 198, 13, 84, 212, 60, 65, 64, 20, 9, 198, 12, 244, 146, 21, 69, 0, 20, 9, 198, 4, 225, 77, 60, 225, 64, 20, 9, 198, 4,
+			65, 76, 36, 225, 64, 21, 0, 10, 199, 81, 84, 130, 60, 113, 84, 80, 20, 9, 198, 81, 33, 83, 21, 69, 5, 20, 10, 199, 80, 240,
+			207, 24, 84, 143, 48, 68, 10, 199, 52, 84, 131, 4, 230, 137, 4, 67, 10, 199, 36, 229, 5, 72, 209, 90, 104, 20, 10, 199, 28, 84,
+			129, 72, 50, 9, 4, 67, 10, 199, 24, 83, 143, 12, 244, 9, 4, 20, 10, 199, 21, 51, 212, 72, 244, 9, 4, 68, 10, 199, 21, 2,
+			76, 21, 52, 201, 4, 68, 12, 201, 20, 225, 5, 12, 20, 201, 48, 192, 66, 68, 10, 199, 12, 20, 15, 12, 50, 9, 4, 20, 9, 198,
+			5, 69, 9, 88, 149, 1, 68, 10, 199, 5, 64, 82, 5, 52, 201, 4, 68, 0, 7, 196, 64, 243, 9, 64, 65, 7, 196, 64, 147, 15,
+			80, 20, 7, 196, 64, 83, 15, 80, 20, 0, 9, 198, 52, 145, 206, 4, 225, 71, 66, 12, 201, 52, 20, 131, 36, 20, 9, 20, 65, 64,
+			20, 8, 197, 36, 225, 68, 37, 64, 66, 8, 197, 12, 19, 80, 61, 32, 65, 0, 9, 198, 80, 84, 211, 36, 193, 64, 20, 9, 198, 80,
+			83, 198, 4, 225, 64, 66, 9, 198, 76, 84, 211, 36, 193, 64, 20, 9, 198, 28, 147, 214, 36, 225, 64, 21, 0, 10, 198, 65, 35, 199,
+			56, 244, 201, 65, 20, 10, 199, 8, 244, 135, 61, 35, 211, 20, 20, 9, 198, 4, 224, 67, 48, 20, 201, 66, 6, 195, 4, 81, 0, 20,
+			0, 7, 196, 77, 65, 67, 12, 21, 7, 196, 61, 33, 193, 56, 65, 7, 196, 21, 33, 68, 20, 20, 10, 198, 5, 53, 78, 12, 147, 206,
+			67, 21, 0, 9, 197, 88, 243, 5, 72, 80, 66, 21, 8, 197, 88, 84, 129, 12, 80, 66, 8, 197, 48, 21, 82, 20, 16, 65, 8, 197,
+			12, 244, 205, 36, 48, 20, 8, 197, 12, 244, 143, 56, 80, 20, 0, 9, 198, 81, 34, 80, 60, 194, 64, 65, 12, 201, 65, 50, 67, 61,
+			50, 78, 80, 84, 201, 67, 12, 201, 65, 50, 67, 60, 19, 129, 48, 148, 201, 68, 9, 198, 65, 33, 71, 4, 66, 64, 67, 9, 198, 64,
+			192, 84, 4, 226, 64, 65, 9, 198, 64, 81, 1, 28, 241, 192, 20, 0, 10, 199, 80, 83, 5, 88, 145, 5, 60, 67, 9, 198, 64, 192,
+			84, 4, 226, 65, 67, 9, 198, 52, 16, 195, 4, 33, 73, 67, 10, 199, 29, 80, 82, 16, 20, 143, 8, 20, 9, 198, 13, 84, 212, 60,
+			66, 65, 20, 9, 198, 12, 243, 77, 20, 66, 65, 20, 10, 199, 8, 144, 140, 36, 245, 5, 12, 20, 9, 198, 4, 227, 205, 4, 194, 65,
+			68, 6, 195, 4, 85, 0, 20, 0, 7, 196, 72, 147, 150, 36, 66, 11, 200, 64, 19, 147, 64, 84, 141, 36, 16, 67, 7, 196, 25, 33,
+			68, 16, 21, 11, 200, 21, 35, 212, 60, 208, 78, 36, 16, 69, 8, 196, 5, 32, 200, 20, 66, 20, 0, 9, 197, 76, 81, 5, 72, 80,
+			66, 21, 8, 197, 76, 80, 143, 72, 112, 21, 12, 201, 65, 32, 84, 61, 97, 67, 12, 130, 64, 20, 9, 197, 64, 245, 5, 72, 80, 66,
+			21, 9, 197, 64, 241, 5, 72, 80, 66, 21, 8, 197, 60, 32, 140, 36, 112, 20, 8, 197, 57, 80, 204, 20, 240, 65, 23, 73, 28, 84,
+			143, 28, 194, 70, 36, 51, 192, 75, 109, 51, 39, 61, 6, 37, 83, 37, 49, 39, 0, 8, 197, 21, 84, 143, 64, 144, 20, 8, 197, 20,
+			225, 193, 28, 80, 67, 12, 201, 12, 243, 12, 21, 97, 67, 12, 130, 64, 20, 0, 9, 198, 81, 34, 69, 56, 226, 64, 20, 9, 198, 76,
+			48, 80, 60, 194, 64, 65, 9, 198, 29, 80, 82, 4, 226, 64, 67, 9, 198, 20, 227, 133, 4, 66, 64, 66, 12, 201, 4, 229, 18, 61,
+			3, 211, 60, 98, 65, 69, 0, 9, 198, 80, 84, 148, 20, 226, 65, 67, 9, 198, 80, 83, 211, 60, 98, 65, 68, 6, 195, 52, 84, 192,
+			20, 9, 198, 36, 228, 207, 56, 226, 65, 20, 9, 198, 28, 20, 132, 20, 226, 65, 20, 0, 7, 196, 76, 16, 129, 80, 65, 7, 196, 65,
+			33, 67, 36, 20, 7, 196, 52, 243, 137, 80, 65, 7, 196, 52, 241, 5, 52, 20, 7, 196, 28, 80, 133, 48, 20, 0, 8, 197, 56, 80,
+			212, 60, 224, 20, 0, 6, 195, 60, 33, 83, 20, 13, 202, 12, 20, 212, 20, 197, 5, 72, 210, 78, 36, 67, 9, 198, 8, 148, 212, 20,
+			48, 192, 21, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 6, 195, 80, 129, 84, 20, 0, 7, 196, 80, 83, 149, 20, 20, 11, 200, 64,
+			83, 15, 64, 243, 142, 21, 48, 20, 7, 196, 5, 144, 77, 20, 67, 0, 15, 204, 8, 21, 18, 4, 51, 205, 36, 243, 65, 12, 130, 65,
+			71, 0, 9, 198, 76, 145, 5, 72, 83, 192, 66, 9, 198, 56, 144, 207, 48, 19, 192, 67, 9, 198, 4, 192, 137, 72, 83, 192, 66, 0,
+			10, 199, 76, 16, 195, 5, 35, 211, 36, 20, 10, 199, 28, 19, 1, 81, 67, 211, 36, 20, 9, 198, 4, 224, 77, 56, 84, 201, 66, 0,
+			7, 196, 61, 69, 9, 12, 20, 9, 198, 8, 244, 195, 60, 225, 82, 21, 0, 8, 197, 81, 34, 79, 56, 96, 21, 0, 9, 198, 49, 80,
+			201, 25, 81, 192, 66, 29, 74, 12, 244, 148, 60, 50, 82, 13, 82, 84, 60, 49, 110, 14, 16, 47, 39, 76, 37, 14, 16, 49, 6, 40,
+			37, 47, 39, 0, 9, 198, 8, 16, 195, 5, 32, 64, 67, 0, 10, 199, 16, 80, 193, 52, 84, 143, 56, 66, 0, 7, 196, 88, 83, 148,
+			36, 21, 7, 196, 80, 241, 1, 72, 65, 7, 196, 77, 67, 210, 52, 21, 7, 196, 24, 241, 5, 72, 65, 7, 196, 4, 225, 143, 72, 65,
+			0, 8, 197, 84, 226, 83, 60, 224, 66, 6, 195, 61, 32, 70, 65, 8, 197, 52, 20, 131, 60, 224, 66, 0, 9, 198, 24, 147, 15, 9,
+			84, 192, 65, 9, 198, 16, 144, 129, 81, 66, 84, 66, 0, 10, 199, 77, 84, 5, 72, 99, 21, 60, 66, 6, 195, 69, 83, 212, 20, 10,
+			199, 65, 83, 148, 5, 49, 67, 12, 21, 9, 198, 56, 245, 133, 52, 36, 133, 20, 6, 195, 21, 97, 64, 20, 6, 195, 13, 33, 68, 20,
+			10, 199, 5, 33, 207, 77, 67, 204, 36, 67, 10, 199, 4, 48, 201, 64, 149, 5, 72, 66, 0, 7, 196, 88, 243, 20, 60, 21, 7, 196,
+			77, 67, 210, 56, 21, 11, 200, 8, 21, 20, 36, 32, 76, 20, 224, 21, 7, 196, 8, 17, 9, 4, 66, 0, 8, 197, 81, 85, 20, 61,
+			32, 21, 6, 195, 52, 243, 22, 20, 8, 197, 16, 19, 13, 5, 64, 65, 8, 197, 12, 243, 15, 56, 224, 21, 8, 197, 12, 19, 134, 61,
+			32, 65, 0, 10, 198, 65, 35, 212, 21, 84, 192, 65, 20, 12, 201, 48, 84, 15, 77, 3, 206, 16, 147, 9, 20, 9, 198, 33, 80, 72,
+			36, 225, 64, 67, 6, 195, 29, 33, 67, 20, 12, 201, 12, 147, 145, 84, 19, 148, 20, 227, 137, 20, 9, 198, 12, 20, 131, 5, 33, 64,
+			65, 0, 10, 199, 64, 20, 135, 32, 83, 9, 4, 67, 10, 199, 52, 144, 210, 60, 51, 211, 52, 20, 9, 198, 24, 83, 9, 12, 149, 1,
+			68, 10, 199, 8, 20, 137, 12, 83, 148, 72, 20, 0, 7, 196, 96, 83, 137, 4, 67, 11, 200, 81, 33, 68, 36, 49, 83, 36, 208, 20,
+			7, 196, 76, 243, 137, 4, 66, 7, 196, 61, 53, 9, 4, 65, 7, 196, 4, 33, 9, 4, 66, 0, 17, 70, 24, 18, 67, 12, 130, 79,
+			83, 35, 6, 37, 49, 12, 37, 39, 0, 9, 198, 20, 209, 82, 61, 65, 67, 20, 8, 197, 4, 197, 1, 37, 32, 66, 0, 9, 198, 4,
+			32, 137, 5, 65, 64, 76, 7, 194, 16, 16, 72, 9, 28, 9, 198, 81, 32, 77, 37, 65, 64, 65, 9, 198, 76, 244, 135, 21, 33, 64,
+			21, 9, 198, 52, 84, 211, 21, 33, 64, 66, 9, 198, 48, 81, 199, 21, 33, 64, 20, 9, 198, 8, 84, 135, 21, 33, 64, 66, 0, 9,
+			198, 88, 83, 15, 12, 149, 1, 68, 10, 199, 77, 68, 133, 81, 67, 201, 4, 21, 10, 199, 24, 245, 15, 28, 83, 137, 4, 68, 10, 199,
+			20, 194, 79, 24, 19, 137, 4, 69, 14, 203, 16, 144, 201, 5, 52, 197, 81, 65, 83, 36, 208, 20, 0, 10, 67, 20, 115, 9, 36, 61,
+			37, 0, 76, 11, 200, 88, 84, 143, 48, 19, 149, 61, 96, 20, 7, 196, 61, 37, 9, 12, 66, 7, 196, 44, 81, 137, 72, 20, 8, 196,
+			16, 80, 143, 72, 65, 20, 7, 196, 12, 241, 129, 56, 65, 11, 200, 12, 21, 5, 56, 19, 149, 61, 96, 20, 7, 196, 5, 33, 193, 56,
+			65, 0, 6, 195, 16, 19, 0, 72, 9, 197, 48, 84, 15, 72, 80, 65, 20, 9, 197, 24, 83, 79, 72, 80, 65, 20, 8, 197, 16, 241,
+			9, 12, 144, 21, 8, 197, 12, 83, 143, 8, 144, 20, 8, 197, 8, 244, 206, 36, 16, 20, 8, 197, 8, 19, 129, 72, 144, 65, 6, 195,
+			5, 97, 78, 21, 0, 11, 198, 12, 243, 12, 60, 66, 64, 66, 20, 9, 9, 198, 76, 148, 148, 61, 34, 64, 65, 12, 201, 69, 80, 84,
+			81, 35, 210, 84, 245, 5, 20, 9, 198, 24, 244, 195, 5, 34, 64, 65, 9, 198, 16, 84, 15, 76, 149, 0, 66, 9, 198, 12, 243, 12,
+			60, 66, 64, 20, 9, 198, 12, 19, 69, 17, 34, 64, 20, 10, 198, 4, 225, 68, 16, 245, 0, 66, 20, 0, 9, 198, 80, 83, 199, 60,
+			226, 65, 68, 10, 199, 72, 147, 80, 72, 245, 133, 72, 66, 10, 199, 52, 144, 210, 60, 98, 76, 52, 67, 10, 199, 28, 149, 76, 36, 19,
+			143, 88, 20, 11, 199, 28, 85, 19, 20, 208, 78, 36, 66, 20, 9, 198, 28, 83, 65, 81, 34, 65, 67, 10, 199, 12, 147, 143, 64, 149,
+			5, 12, 20, 6, 195, 8, 85, 0, 20, 9, 198, 8, 80, 195, 5, 34, 65, 67, 10, 199, 5, 64, 82, 28, 21, 9, 76, 66, 0, 7,
+			196, 88, 81, 15, 88, 65, 8, 196, 76, 81, 1, 56, 65, 20, 11, 200, 64, 244, 148, 4, 99, 199, 48, 144, 20, 6, 195, 61, 162, 65,
+			66, 7, 196, 56, 17, 9, 72, 66, 7, 196, 37, 81, 197, 72, 65, 0, 8, 197, 24, 16, 197, 88, 240, 76, 8, 197, 20, 32, 133, 72,
+			240, 72, 8, 197, 4, 192, 193, 48, 144, 65, 0, 10, 198, 76, 83, 142, 61, 34, 64, 65, 20, 9, 198, 64, 20, 129, 8, 149, 0, 66,
+			9, 198, 13, 33, 83, 12, 149, 0, 65, 9, 198, 12, 20, 131, 21, 34, 64, 65, 0, 9, 198, 81, 84, 135, 61, 98, 65, 20, 9, 198,
+			52, 244, 195, 61, 98, 65, 20, 9, 198, 52, 17, 83, 81, 34, 65, 67, 9, 198, 21, 131, 198, 61, 34, 65, 68, 9, 198, 20, 66, 84,
+			61, 34, 65, 68, 6, 195, 13, 33, 84, 20, 0, 7, 196, 65, 33, 71, 36, 20, 6, 195, 52, 243, 5, 20, 11, 200, 36, 51, 206, 61,
+			53, 1, 76, 144, 67, 9, 198, 8, 243, 142, 4, 224, 82, 66, 9, 198, 4, 210, 71, 16, 19, 0, 66, 0, 12, 201, 81, 34, 78, 37,
+			64, 80, 60, 194, 64, 67, 8, 197, 72, 147, 69, 16, 144, 20, 6, 195, 24, 81, 18, 20, 8, 197, 24, 19, 69, 16, 144, 20, 12, 201,
+			12, 20, 212, 20, 196, 197, 65, 34, 64, 20, 0, 13, 201, 81, 33, 66, 5, 49, 76, 20, 114, 5, 67, 21, 9, 198, 81, 32, 78, 76,
+			85, 20, 20, 6, 195, 29, 33, 83, 20, 0, 6, 195, 64, 244, 212, 21, 11, 199, 16, 145, 78, 12, 81, 129, 48, 66, 20, 6, 195, 13,
+			33, 80, 20, 0, 12, 201, 76, 245, 20, 60, 53, 84, 4, 225, 79, 68, 7, 196, 76, 50, 5, 16, 20, 7, 196, 5, 48, 197, 80, 20,
+			0, 0, 26, 73, 72, 240, 195, 5, 32, 73, 56, 243, 1, 14, 16, 39, 49, 12, 35, 51, 35, 6, 37, 50, 110, 55, 35, 0, 9, 198,
+			65, 35, 211, 64, 85, 20, 20, 9, 198, 65, 33, 80, 61, 53, 0, 21, 6, 195, 13, 33, 83, 20, 0, 9, 198, 104, 19, 132, 60, 32,
+			137, 20, 0, 7, 196, 88, 145, 5, 60, 65, 7, 196, 81, 34, 65, 12, 65, 7, 196, 77, 67, 208, 64, 21, 7, 196, 52, 148, 212, 4,
+			66, 9, 198, 52, 147, 137, 28, 243, 6, 67, 7, 196, 5, 33, 78, 20, 21, 0, 12, 201, 76, 19, 22, 4, 51, 206, 16, 245, 20, 21,
+			24, 73, 5, 85, 15, 88, 82, 67, 60, 195, 192, 35, 40, 47, 39, 84, 109, 6, 37, 49, 39, 55, 39, 0, 0, 9, 198, 64, 243, 9,
+			20, 68, 128, 20, 9, 198, 16, 144, 77, 21, 68, 128, 66, 0, 10, 199, 76, 83, 69, 77, 65, 78, 20, 66, 9, 198, 36, 224, 207, 57,
+			48, 201, 20, 0, 7, 195, 4, 115, 9, 72, 9, 7, 196, 12, 243, 15, 8, 65, 0, 8, 197, 88, 145, 206, 60, 192, 66, 8, 197, 24,
+			83, 19, 36, 224, 65, 9, 197, 9, 33, 71, 4, 224, 65, 20, 0, 0, 10, 199, 65, 33, 83, 8, 149, 5, 72, 66, 9, 198, 16, 144,
+			197, 52, 36, 133, 20, 10, 199, 12, 20, 193, 80, 244, 146, 20, 21, 0, 6, 195, 72, 85, 5, 21, 6, 195, 56, 84, 9, 20, 7, 196,
+			52, 19, 9, 4, 66, 7, 196, 28, 243, 9, 4, 66, 0, 8, 197, 80, 83, 196, 61, 64, 66, 9, 197, 76, 244, 150, 60, 192, 66, 21,
+			8, 197, 76, 195, 199, 4, 224, 20, 8, 197, 72, 149, 18, 61, 96, 20, 8, 197, 21, 35, 196, 61, 64, 66, 6, 195, 8, 83, 22, 21,
+			8, 197, 8, 17, 206, 60, 192, 66, 0, 9, 198, 24, 84, 212, 37, 96, 76, 65, 13, 202, 20, 193, 84, 81, 35, 212, 20, 51, 137, 12,
+			20, 9, 198, 12, 20, 212, 61, 33, 64, 65, 0, 10, 199, 48, 243, 66, 5, 33, 9, 4, 67, 0, 6, 195, 80, 21, 1, 66, 7, 196,
+			64, 243, 131, 20, 20, 6, 195, 64, 148, 9, 66, 11, 200, 52, 22, 154, 4, 48, 200, 21, 32, 66, 7, 196, 52, 19, 137, 4, 66, 7,
+			196, 44, 83, 137, 4, 20, 0, 9, 197, 80, 83, 80, 21, 32, 65, 20, 9, 197, 52, 85, 5, 61, 32, 66, 21, 0, 5, 194, 4, 144,
+			72, 9, 198, 48, 19, 131, 21, 69, 0, 21, 9, 198, 13, 35, 195, 21, 69, 0, 21, 9, 198, 8, 240, 195, 21, 69, 0, 21, 0, 10,
+			199, 24, 84, 146, 4, 115, 211, 80, 21, 9, 198, 4, 229, 9, 24, 21, 5, 66, 0, 7, 196, 76, 16, 137, 72, 66, 8, 196, 72, 243,
+			12, 20, 66, 20, 7, 196, 65, 34, 69, 28, 20, 0, 12, 201, 64, 243, 9, 52, 84, 212, 61, 33, 64, 67, 8, 197, 48, 16, 207, 56,
+			144, 65, 8, 197, 36, 225, 207, 72, 112, 21, 8, 197, 21, 2, 76, 60, 112, 66, 8, 197, 16, 147, 195, 48, 80, 65, 0, 9, 198, 104,
+			147, 135, 5, 34, 64, 65, 9, 198, 104, 145, 199, 85, 32, 84, 65, 9, 198, 16, 80, 213, 8, 149, 0, 66, 9, 198, 12, 243, 147, 84,
+			85, 0, 20, 0, 9, 198, 76, 81, 206, 5, 98, 65, 67, 9, 198, 76, 20, 148, 61, 34, 65, 67, 10, 199, 64, 243, 9, 13, 32, 84,
+			20, 66, 9, 198, 28, 84, 135, 61, 98, 65, 20, 6, 195, 12, 85, 0, 20, 9, 198, 12, 19, 148, 61, 34, 65, 67, 11, 199, 12, 17,
+			15, 56, 81, 200, 20, 66, 20, 0, 11, 200, 93, 80, 200, 21, 33, 82, 36, 16, 67, 11, 200, 80, 83, 73, 77, 67, 195, 48, 80, 66,
+			11, 200, 64, 243, 9, 80, 80, 206, 36, 48, 20, 11, 200, 37, 3, 195, 60, 225, 18, 36, 16, 68, 11, 200, 37, 1, 82, 81, 35, 198,
+			36, 16, 68, 7, 196, 36, 225, 133, 72, 65, 7, 196, 25, 35, 196, 20, 20, 11, 200, 16, 145, 76, 21, 69, 18, 36, 48, 20, 7, 196,
+			16, 17, 142, 36, 66, 11, 200, 12, 84, 131, 61, 2, 84, 20, 48, 20, 11, 200, 9, 84, 143, 13, 32, 90, 36, 16, 68, 10, 198, 9,
+			80, 197, 24, 19, 0, 66, 20, 0, 8, 197, 76, 147, 21, 72, 144, 65, 8, 197, 72, 245, 1, 72, 144, 65, 8, 197, 61, 99, 214, 36,
+			16, 67, 9, 198, 52, 18, 69, 85, 66, 67, 66, 8, 197, 28, 84, 146, 20, 144, 66, 8, 197, 12, 21, 1, 72, 144, 65, 0, 12, 201,
+			60, 67, 206, 80, 242, 65, 81, 34, 65, 70, 9, 198, 5, 48, 204, 21, 2, 64, 20, 0, 9, 198, 81, 85, 20, 5, 98, 65, 8, 9,
+			198, 81, 85, 20, 5, 98, 65, 67, 9, 198, 80, 147, 148, 61, 34, 65, 67, 9, 198, 76, 21, 18, 5, 2, 65, 67, 10, 199, 21, 21,
+			73, 48, 21, 5, 72, 67, 9, 198, 12, 244, 211, 21, 34, 65, 66, 9, 198, 5, 3, 195, 72, 149, 9, 66, 0, 7, 196, 76, 50, 5,
+			52, 20, 7, 196, 72, 244, 211, 36, 21, 7, 196, 65, 34, 65, 52, 65, 11, 200, 64, 193, 67, 61, 69, 5, 72, 144, 20, 7, 196, 61,
+			69, 9, 52, 20, 7, 196, 21, 49, 68, 72, 20, 9, 198, 16, 245, 129, 16, 243, 0, 66, 11, 200, 16, 148, 12, 60, 208, 90, 36, 16,
+			68, 8, 196, 12, 81, 129, 48, 65, 20, 11, 200, 4, 226, 83, 61, 69, 5, 72, 144, 20, 0, 8, 197, 80, 145, 80, 60, 192, 20, 8,
+			197, 64, 147, 154, 60, 192, 66, 0, 12, 201, 72, 17, 9, 61, 65, 82, 5, 2, 65, 70, 12, 201, 65, 50, 67, 61, 65, 82, 5, 2,
+			65, 69, 12, 201, 65, 32, 78, 61, 65, 82, 5, 2, 65, 69, 12, 201, 64, 84, 195, 5, 52, 197, 72, 243, 9, 67, 12, 201, 24, 148,
+			201, 61, 65, 82, 5, 2, 65, 70, 12, 201, 13, 35, 205, 61, 65, 82, 5, 2, 65, 69, 12, 201, 5, 35, 205, 5, 65, 82, 5, 2,
+			65, 70, 9, 198, 4, 208, 68, 21, 84, 192, 21, 0, 0, 10, 198, 80, 83, 5, 52, 85, 18, 66, 20, 9, 198, 16, 244, 201, 52, 85,
+			18, 66, 0, 15, 204, 13, 34, 83, 80, 19, 12, 61, 65, 82, 5, 2, 65, 70, 0, 0, 14, 203, 69, 80, 84, 80, 244, 132, 36, 49,
+			83, 36, 208, 20, 9, 198, 52, 20, 133, 81, 66, 77, 21, 9, 198, 12, 84, 142, 60, 32, 137, 20, 0, 7, 196, 80, 84, 208, 36, 20,
+			7, 196, 76, 147, 143, 72, 21, 7, 196, 72, 243, 12, 36, 66, 6, 195, 56, 83, 73, 20, 7, 196, 12, 243, 12, 36, 20, 0, 8, 197,
+			80, 19, 12, 20, 64, 66, 6, 195, 64, 131, 206, 20, 6, 195, 20, 35, 0, 20, 0, 9, 198, 81, 34, 77, 21, 68, 128, 65, 9, 198,
+			76, 240, 201, 21, 64, 64, 67, 9, 198, 64, 149, 5, 12, 144, 64, 20, 9, 198, 64, 20, 129, 88, 144, 64, 67, 9, 198, 36, 68, 143,
+			24, 240, 128, 66, 0, 12, 201, 64, 243, 148, 20, 192, 78, 16, 243, 6, 20, 6, 195, 52, 240, 64, 20, 0, 7, 196, 24, 83, 137, 76,
+			21, 0, 9, 198, 5, 97, 83, 76, 147, 79, 72, 12, 201, 56, 20, 131, 60, 193, 83, 76, 144, 64, 68, 6, 195, 52, 240, 66, 66, 12,
+			201, 48, 144, 193, 57, 68, 143, 64, 144, 64, 68, 8, 197, 21, 48, 200, 36, 192, 20, 9, 197, 16, 20, 137, 20, 224, 67, 21, 8, 197,
+			12, 194, 77, 20, 224, 65, 12, 201, 12, 21, 1, 64, 193, 83, 76, 144, 64, 68, 8, 197, 9, 37, 71, 60, 192, 65, 0, 9, 198, 88,
+			83, 129, 72, 144, 64, 67, 9, 198, 88, 19, 9, 28, 144, 64, 66, 9, 198, 84, 52, 143, 56, 144, 64, 67, 10, 198, 76, 147, 5, 76,
+			144, 64, 66, 20, 18, 70, 76, 81, 5, 12, 144, 64, 89, 36, 72, 36, 76, 6, 37, 12, 35, 0, 10, 198, 64, 243, 5, 76, 144, 64,
+			66, 20, 10, 198, 52, 19, 5, 76, 144, 64, 66, 20, 9, 198, 12, 243, 69, 16, 144, 64, 20, 0, 9, 198, 88, 83, 148, 20, 227, 137,
+			20, 10, 199, 64, 83, 148, 5, 3, 204, 36, 66, 10, 199, 52, 83, 16, 60, 209, 78, 20, 66, 10, 199, 52, 19, 5, 77, 49, 82, 20,
+			20, 6, 195, 21, 33, 0, 21, 10, 199, 8, 83, 133, 77, 49, 82, 20, 20, 0, 6, 195, 105, 83, 21, 66, 7, 196, 80, 244, 211, 20,
+			21, 8, 196, 76, 244, 201, 4, 65, 20, 7, 196, 4, 50, 5, 36, 66, 0, 8, 197, 61, 4, 15, 77, 64, 21, 8, 197, 52, 243, 135,
+			61, 160, 20, 12, 201, 28, 195, 211, 76, 243, 1, 48, 144, 64, 68, 8, 197, 24, 147, 195, 36, 224, 66, 8, 197, 21, 2, 84, 21, 64,
+			66, 12, 201, 12, 148, 195, 5, 80, 193, 76, 144, 64, 68, 8, 197, 8, 20, 130, 5, 32, 65, 8, 197, 4, 194, 77, 20, 224, 21, 0,
+			6, 195, 64, 145, 71, 20, 9, 198, 21, 2, 84, 60, 209, 64, 66, 0, 6, 195, 64, 145, 64, 20, 9, 198, 52, 17, 206, 20, 230, 137,
+			20, 0, 14, 68, 37, 48, 73, 4, 37, 88, 35, 6, 37, 12, 35, 0, 9, 198, 13, 35, 205, 60, 99, 210, 66, 8, 196, 12, 81, 15,
+			48, 65, 20, 7, 196, 5, 33, 79, 48, 66, 0, 8, 197, 72, 148, 207, 73, 64, 21, 8, 197, 64, 243, 9, 105, 160, 65, 0, 5, 194,
+			24, 16, 76, 6, 194, 16, 80, 72, 9, 9, 198, 80, 245, 82, 56, 81, 64, 21, 9, 198, 60, 193, 65, 12, 81, 64, 67, 13, 202, 53,
+			84, 201, 12, 245, 5, 72, 20, 9, 4, 70, 5, 194, 20, 48, 20, 13, 202, 12, 129, 77, 36, 245, 5, 72, 20, 9, 4, 70, 9, 198,
+			5, 65, 78, 60, 193, 128, 20, 0, 9, 67, 32, 18, 64, 35, 57, 0, 72, 7, 195, 56, 82, 64, 72, 28, 10, 199, 76, 81, 199, 36,
+			245, 137, 4, 67, 9, 198, 64, 19, 1, 52, 81, 5, 20, 10, 199, 24, 147, 15, 76, 241, 137, 4, 68, 9, 198, 12, 243, 80, 61, 53,
+			5, 21, 10, 199, 12, 16, 137, 56, 245, 137, 4, 68, 10, 199, 4, 229, 9, 52, 17, 137, 4, 67, 6, 195, 4, 112, 84, 65, 0, 7,
+			196, 64, 84, 212, 20, 20, 7, 196, 5, 97, 86, 4, 72, 7, 196, 5, 97, 84, 20, 72, 8, 196, 77, 66, 76, 20, 66, 20, 6, 195,
+			36, 229, 137, 66, 9, 198, 24, 244, 196, 36, 227, 214, 20, 7, 196, 8, 145, 143, 72, 65, 7, 196, 5, 96, 82, 36, 65, 7, 196, 5,
+			65, 76, 20, 65, 0, 7, 195, 16, 83, 0, 72, 9, 8, 197, 77, 3, 199, 48, 144, 20, 9, 198, 72, 82, 77, 64, 145, 71, 20, 8,
+			197, 65, 35, 195, 56, 80, 20, 12, 201, 29, 80, 82, 16, 19, 9, 56, 81, 64, 67, 9, 197, 12, 240, 204, 20, 16, 65, 20, 8, 197,
+			9, 35, 199, 48, 144, 20, 9, 197, 8, 243, 7, 36, 16, 65, 20, 8, 197, 4, 224, 78, 36, 16, 67, 9, 197, 4, 193, 82, 36, 16,
+			66, 21, 0, 9, 198, 9, 84, 195, 20, 210, 64, 20, 0, 6, 195, 16, 18, 64, 72, 10, 199, 88, 84, 195, 61, 98, 76, 20, 67, 0,
+			7, 196, 25, 83, 77, 60, 72, 16, 4, 95, 4, 16, 20, 10, 84, 6, 37, 51, 81, 39, 55, 35, 0, 7, 196, 76, 19, 132, 20, 66,
+			11, 200, 64, 81, 15, 28, 83, 133, 76, 144, 67, 11, 200, 61, 32, 200, 36, 64, 67, 20, 80, 67, 11, 200, 52, 85, 1, 24, 243, 133,
+			76, 144, 20, 0, 8, 197, 69, 81, 71, 48, 144, 72, 8, 197, 80, 83, 210, 36, 16, 67, 12, 201, 77, 66, 76, 61, 3, 201, 16, 82,
+			64, 69, 8, 197, 73, 85, 5, 56, 144, 20, 8, 197, 72, 80, 76, 80, 16, 67, 8, 197, 64, 20, 143, 16, 144, 66, 8, 197, 64, 20,
+			143, 16, 144, 20, 8, 197, 48, 245, 133, 72, 80, 21, 8, 197, 48, 85, 137, 80, 16, 67, 8, 197, 37, 3, 212, 20, 48, 20, 10, 198,
+			36, 115, 5, 76, 144, 83, 66, 20, 8, 197, 24, 83, 9, 12, 80, 66, 8, 197, 21, 48, 200, 36, 208, 20, 9, 197, 16, 245, 133, 72,
+			80, 66, 21, 9, 198, 12, 244, 144, 61, 33, 79, 66, 8, 197, 12, 83, 148, 72, 144, 20, 8, 197, 8, 245, 67, 48, 80, 67, 8, 197,
+			5, 85, 1, 72, 144, 65, 0, 9, 198, 65, 35, 208, 4, 227, 204, 67, 9, 198, 12, 243, 131, 72, 85, 0, 20, 9, 198, 12, 20, 133,
+			28, 114, 64, 21, 9, 198, 8, 19, 19, 4, 210, 64, 65, 9, 198, 4, 195, 15, 28, 114, 64, 20, 0, 9, 198, 76, 19, 79, 28, 114,
+			65, 20, 6, 195, 72, 85, 20, 20, 11, 199, 64, 20, 148, 20, 50, 80, 20, 66, 21, 9, 198, 48, 244, 133, 28, 114, 65, 20, 20, 70,
+			24, 20, 141, 4, 50, 65, 83, 35, 14, 16, 65, 35, 76, 6, 37, 12, 35, 0, 9, 198, 16, 240, 146, 84, 114, 65, 66, 0, 7, 196,
+			80, 20, 211, 36, 66, 7, 196, 69, 82, 69, 80, 20, 6, 195, 48, 19, 69, 66, 9, 198, 21, 84, 143, 64, 243, 0, 68, 8, 196, 16,
+			80, 137, 80, 65, 21, 11, 200, 12, 244, 205, 60, 115, 206, 36, 16, 68, 7, 196, 8, 144, 137, 80, 65, 11, 200, 5, 34, 83, 80, 241,
+			129, 56, 80, 67, 6, 195, 4, 227, 193, 20, 0, 9, 198, 24, 16, 195, 36, 19, 79, 76, 6, 195, 88, 85, 18, 21, 8, 197, 52, 243,
+			154, 60, 224, 66, 12, 201, 12, 20, 212, 20, 192, 201, 88, 149, 0, 67, 0, 9, 198, 76, 83, 73, 72, 85, 20, 20, 9, 198, 64, 20,
+			129, 64, 85, 20, 20, 9, 198, 20, 227, 133, 76, 147, 64, 20, 0, 6, 195, 21, 53, 0, 9, 6, 195, 84, 243, 64, 20, 10, 199, 64,
+			20, 129, 25, 32, 83, 36, 66, 10, 199, 52, 85, 1, 12, 83, 148, 72, 20, 6, 195, 21, 53, 0, 21, 6, 195, 16, 145, 84, 20, 0,
+			7, 196, 88, 84, 208, 72, 20, 7, 196, 77, 2, 69, 16, 20, 6, 195, 64, 21, 21, 66, 7, 195, 60, 35, 197, 65, 20, 7, 196, 52,
+			244, 212, 72, 21, 7, 196, 13, 80, 213, 48, 66, 10, 198, 13, 35, 199, 36, 243, 0, 65, 20, 7, 196, 12, 147, 133, 52, 65, 0, 8,
+			197, 72, 148, 207, 73, 48, 21, 8, 197, 72, 144, 207, 73, 48, 21, 6, 195, 8, 83, 66, 20, 0, 6, 194, 4, 192, 72, 9, 6, 194,
+			20, 64, 72, 8, 9, 198, 52, 243, 143, 64, 85, 20, 20, 10, 198, 4, 229, 9, 76, 243, 64, 67, 20, 0, 13, 201, 8, 20, 130, 4,
+			34, 69, 80, 243, 0, 67, 20, 0, 12, 68, 64, 244, 212, 4, 48, 110, 89, 47, 35, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55,
+			72, 36, 0, 7, 196, 88, 147, 143, 88, 20, 7, 196, 64, 83, 1, 28, 65, 7, 196, 16, 83, 5, 28, 65, 7, 196, 9, 33, 86, 20,
+			20, 0, 8, 197, 64, 21, 20, 36, 224, 65, 8, 197, 36, 229, 15, 72, 224, 21, 8, 197, 12, 243, 132, 36, 192, 20, 0, 9, 198, 104,
+			83, 143, 8, 144, 64, 20, 12, 201, 81, 33, 78, 80, 17, 21, 21, 50, 77, 20, 9, 198, 24, 21, 71, 48, 144, 64, 66, 9, 198, 12,
+			20, 143, 56, 144, 64, 67, 9, 198, 5, 64, 83, 76, 144, 64, 67, 9, 198, 5, 34, 84, 52, 144, 64, 67, 9, 198, 5, 32, 197, 88,
+			144, 64, 20, 9, 198, 4, 209, 71, 48, 144, 64, 20, 9, 198, 4, 84, 143, 88, 144, 64, 67, 0, 10, 199, 80, 83, 196, 61, 50, 65,
+			56, 69, 10, 199, 76, 83, 73, 9, 33, 86, 20, 20, 10, 198, 48, 147, 143, 48, 85, 77, 66, 20, 10, 199, 20, 195, 5, 77, 3, 206,
+			80, 20, 10, 199, 12, 20, 15, 48, 21, 143, 72, 21, 0, 7, 196, 80, 83, 5, 24, 65, 7, 196, 49, 83, 65, 12, 66, 7, 196, 12,
+			243, 15, 72, 21, 7, 196, 8, 243, 143, 76, 20, 7, 196, 4, 225, 18, 20, 66, 0, 12, 201, 80, 80, 206, 60, 52, 129, 104, 144, 64,
+			68, 9, 197, 76, 241, 199, 60, 192, 66, 21, 8, 197, 64, 84, 137, 60, 64, 66, 12, 201, 12, 20, 148, 60, 208, 78, 104, 144, 64, 68,
+			0, 9, 198, 61, 37, 9, 28, 144, 64, 66, 5, 194, 21, 64, 20, 10, 198, 12, 244, 141, 60, 228, 192, 66, 20, 9, 198, 8, 20, 143,
+			56, 144, 64, 67, 9, 198, 5, 33, 207, 88, 144, 64, 20, 0, 10, 199, 81, 35, 214, 5, 35, 194, 20, 20, 10, 199, 80, 84, 129, 64,
+			85, 84, 36, 67, 10, 199, 64, 20, 129, 64, 83, 132, 36, 68, 10, 199, 52, 19, 3, 21, 50, 78, 20, 21, 0, 11, 200, 76, 20, 132,
+			4, 224, 80, 4, 192, 67, 14, 68, 49, 80, 201, 4, 55, 40, 76, 6, 37, 12, 35, 0, 7, 196, 36, 115, 143, 80, 20, 7, 196, 24,
+			83, 143, 48, 66, 7, 196, 24, 83, 3, 20, 21, 0, 8, 197, 76, 49, 84, 81, 32, 20, 12, 201, 52, 148, 193, 57, 68, 143, 64, 144,
+			64, 68, 8, 197, 52, 83, 69, 57, 64, 20, 9, 198, 12, 147, 79, 48, 18, 83, 67, 12, 201, 12, 130, 82, 60, 208, 78, 104, 144, 64,
+			68, 12, 201, 4, 226, 83, 61, 68, 143, 64, 144, 64, 69, 0, 9, 198, 69, 80, 68, 73, 84, 12, 65, 9, 198, 65, 35, 212, 21, 69,
+			0, 20, 9, 198, 16, 148, 208, 21, 69, 0, 20, 0, 16, 67, 5, 101, 128, 97, 118, 118, 111, 99, 97, 116, 111, 0, 25, 29, 10, 199,
+			56, 21, 77, 4, 50, 9, 4, 68, 9, 198, 29, 32, 84, 84, 149, 1, 67, 6, 195, 24, 85, 68, 65, 0, 7, 196, 104, 83, 15, 80,
+			20, 7, 196, 88, 147, 133, 4, 65, 7, 196, 81, 34, 79, 16, 65, 11, 200, 81, 32, 80, 21, 163, 197, 17, 32, 20, 7, 196, 80, 147,
+			133, 4, 65, 9, 198, 80, 84, 146, 4, 227, 214, 20, 7, 196, 48, 147, 133, 4, 65, 7, 196, 24, 240, 137, 4, 66, 7, 196, 24, 147,
+			15, 80, 20, 11, 200, 12, 192, 77, 36, 67, 198, 61, 32, 67, 0, 8, 197, 72, 80, 204, 85, 64, 65, 8, 197, 28, 147, 206, 5, 64,
+			65, 8, 197, 13, 33, 77, 21, 32, 65, 0, 6, 194, 12, 144, 76, 9, 9, 198, 5, 52, 201, 20, 209, 64, 20, 0, 0, 7, 196, 5,
+			97, 86, 36, 72, 7, 196, 52, 19, 1, 28, 65, 9, 198, 28, 243, 5, 4, 67, 210, 68, 7, 196, 24, 243, 1, 28, 65, 7, 196, 24,
+			147, 143, 72, 21, 7, 196, 12, 81, 21, 60, 20, 0, 12, 201, 76, 245, 20, 60, 213, 76, 80, 148, 12, 67, 8, 197, 76, 83, 77, 4,
+			144, 66, 8, 197, 76, 51, 199, 48, 144, 20, 8, 197, 52, 85, 15, 16, 144, 20, 8, 197, 48, 21, 82, 36, 16, 67, 8, 197, 24, 84,
+			137, 80, 16, 67, 8, 197, 12, 245, 20, 36, 208, 20, 8, 197, 5, 81, 213, 72, 80, 65, 0, 9, 198, 56, 16, 129, 80, 82, 64, 67,
+			9, 198, 4, 48, 207, 48, 149, 0, 66, 0, 0, 7, 196, 85, 50, 78, 36, 65, 9, 198, 64, 147, 133, 72, 243, 0, 67, 9, 198, 64,
+			20, 129, 8, 243, 0, 66, 7, 196, 12, 243, 15, 56, 66, 11, 200, 12, 243, 12, 20, 224, 200, 36, 208, 20, 6, 195, 5, 101, 137, 66,
+			0, 9, 197, 64, 84, 15, 48, 144, 65, 20, 9, 198, 61, 69, 15, 80, 148, 0, 66, 8, 197, 12, 84, 193, 72, 80, 65, 8, 197, 12,
+			20, 207, 48, 144, 65, 8, 197, 12, 20, 148, 4, 208, 65, 0, 9, 198, 56, 149, 5, 72, 242, 64, 21, 9, 198, 52, 19, 133, 28, 114,
+			64, 67, 0, 6, 195, 64, 145, 84, 20, 9, 198, 52, 19, 137, 12, 243, 73, 20, 9, 198, 12, 243, 15, 76, 147, 73, 66, 0, 7, 196,
+			104, 83, 137, 80, 20, 7, 196, 96, 147, 5, 52, 20, 9, 198, 88, 144, 146, 4, 99, 206, 66, 8, 196, 80, 83, 133, 16, 65, 20, 7,
+			196, 28, 243, 7, 36, 20, 9, 198, 13, 34, 83, 76, 243, 0, 66, 8, 196, 12, 83, 133, 16, 65, 20, 7, 196, 12, 19, 129, 16, 65,
+			11, 200, 4, 192, 137, 28, 224, 83, 20, 112, 67, 0, 9, 198, 64, 84, 134, 84, 112, 83, 65, 19, 70, 29, 32, 84, 84, 149, 15, 81,
+			14, 16, 35, 47, 6, 40, 37, 47, 39, 0, 12, 201, 16, 147, 137, 81, 35, 198, 20, 227, 204, 69, 0, 10, 198, 4, 227, 205, 4, 195,
+			192, 66, 20, 9, 198, 5, 100, 129, 56, 227, 192, 72, 9, 198, 77, 3, 212, 61, 35, 128, 21, 9, 198, 36, 229, 5, 72, 147, 64, 65,
+			13, 201, 29, 80, 82, 16, 144, 82, 20, 114, 65, 67, 20, 13, 202, 12, 19, 15, 49, 162, 79, 12, 244, 148, 20, 21, 0, 6, 195, 48,
+			145, 84, 20, 10, 199, 36, 224, 207, 57, 53, 69, 80, 20, 9, 198, 21, 21, 65, 56, 147, 69, 66, 0, 12, 68, 32, 19, 142, 60, 35,
+			50, 50, 39, 0, 72, 6, 195, 89, 81, 21, 66, 7, 196, 76, 243, 9, 80, 65, 7, 196, 65, 35, 195, 36, 20, 7, 196, 64, 19, 129,
+			52, 65, 7, 196, 16, 147, 129, 52, 65, 7, 196, 16, 19, 129, 20, 65, 0, 0, 9, 198, 52, 243, 148, 72, 80, 76, 21, 9, 198, 12,
+			243, 148, 61, 35, 128, 21, 0, 6, 195, 61, 32, 193, 21, 10, 199, 77, 1, 82, 52, 144, 201, 16, 67, 6, 195, 61, 51, 73, 20, 6,
+			195, 36, 243, 137, 20, 10, 199, 4, 195, 15, 9, 35, 199, 36, 66, 0, 9, 198, 81, 34, 71, 20, 210, 78, 66, 9, 198, 76, 48, 76,
+			36, 113, 82, 66, 9, 198, 65, 33, 67, 4, 209, 82, 66, 6, 195, 56, 80, 128, 20, 6, 195, 24, 80, 128, 20, 0, 7, 196, 16, 83,
+			12, 4, 72, 7, 196, 16, 19, 12, 4, 72, 7, 196, 81, 34, 66, 84, 66, 8, 196, 80, 83, 133, 72, 65, 20, 7, 196, 76, 243, 129,
+			72, 20, 7, 196, 64, 147, 5, 60, 65, 7, 196, 36, 243, 1, 60, 67, 12, 201, 36, 225, 137, 56, 149, 5, 76, 147, 64, 20, 7, 196,
+			29, 33, 86, 20, 20, 7, 196, 16, 147, 129, 72, 65, 8, 196, 5, 97, 82, 20, 66, 21, 0, 13, 202, 64, 20, 148, 20, 227, 199, 20,
+			225, 83, 36, 68, 8, 197, 52, 16, 200, 36, 224, 65, 0, 9, 198, 81, 32, 83, 8, 244, 132, 21, 9, 198, 76, 99, 199, 48, 144, 64,
+			20, 6, 195, 72, 83, 137, 21, 9, 198, 64, 243, 9, 52, 84, 128, 66, 9, 198, 52, 85, 1, 52, 84, 128, 66, 9, 198, 4, 65, 83,
+			52, 144, 64, 67, 0, 6, 195, 73, 80, 64, 66, 10, 199, 12, 20, 144, 36, 225, 84, 36, 21, 0, 7, 196, 88, 148, 201, 72, 66, 12,
+			201, 65, 35, 212, 60, 208, 82, 80, 148, 133, 67, 7, 196, 64, 83, 132, 36, 66, 11, 200, 25, 32, 78, 12, 240, 143, 48, 192, 21, 11,
+			200, 12, 243, 5, 77, 65, 82, 60, 192, 68, 11, 200, 4, 192, 66, 5, 53, 18, 60, 224, 66, 0, 9, 198, 64, 243, 9, 56, 243, 73,
+			20, 8, 197, 64, 192, 84, 4, 224, 65, 8, 197, 64, 84, 137, 64, 192, 65, 9, 197, 8, 245, 133, 28, 224, 65, 20, 0, 9, 198, 80,
+			81, 15, 24, 244, 128, 66, 9, 198, 76, 51, 210, 64, 244, 128, 65, 9, 198, 52, 85, 1, 24, 244, 128, 66, 5, 194, 21, 96, 20, 9,
+			198, 4, 113, 78, 104, 144, 64, 67, 0, 6, 195, 61, 35, 208, 20, 10, 199, 36, 229, 18, 36, 228, 197, 12, 66, 10, 199, 21, 85, 9,
+			25, 35, 206, 20, 67, 10, 199, 16, 83, 9, 4, 229, 79, 88, 20, 10, 199, 5, 32, 207, 8, 19, 5, 56, 21, 0, 7, 196, 5, 97,
+			86, 60, 72, 7, 196, 76, 83, 3, 20, 21, 7, 196, 20, 208, 143, 48, 20, 7, 196, 12, 243, 5, 36, 66, 7, 196, 12, 19, 9, 4,
+			66, 7, 196, 8, 19, 9, 4, 66, 0, 0, 6, 195, 80, 16, 137, 66, 9, 198, 76, 240, 130, 61, 33, 192, 21, 9, 198, 60, 115, 137,
+			80, 83, 80, 20, 9, 198, 52, 19, 132, 61, 35, 0, 65, 13, 202, 12, 243, 148, 20, 212, 15, 72, 19, 133, 60, 68, 9, 198, 12, 20,
+			193, 56, 245, 128, 20, 0, 10, 199, 80, 85, 18, 4, 209, 84, 72, 66, 11, 199, 64, 243, 9, 56, 84, 201, 4, 67, 20, 11, 67, 9,
+			81, 64, 71, 6, 40, 12, 36, 0, 0, 11, 200, 64, 243, 1, 72, 147, 69, 81, 32, 67, 7, 196, 64, 147, 131, 20, 66, 7, 196, 52,
+			85, 15, 16, 20, 8, 196, 48, 19, 132, 60, 66, 20, 7, 196, 17, 33, 83, 16, 20, 11, 200, 13, 80, 143, 81, 64, 69, 17, 32, 20,
+			7, 196, 13, 35, 195, 20, 66, 9, 198, 12, 20, 131, 60, 99, 210, 66, 0, 8, 197, 81, 34, 69, 17, 32, 20, 12, 201, 12, 243, 148,
+			72, 244, 9, 20, 65, 64, 20, 8, 197, 4, 48, 197, 81, 64, 21, 0, 7, 66, 32, 16, 35, 0, 72, 7, 194, 16, 144, 72, 9, 28,
+			13, 202, 81, 32, 71, 36, 51, 205, 52, 81, 9, 4, 20, 5, 194, 20, 112, 20, 9, 198, 5, 3, 195, 72, 145, 128, 66, 0, 6, 195,
+			25, 82, 64, 72, 10, 199, 96, 83, 143, 24, 240, 137, 4, 68, 10, 199, 4, 229, 9, 4, 84, 133, 4, 67, 0, 7, 196, 16, 19, 12,
+			20, 72, 7, 196, 61, 98, 76, 20, 66, 9, 198, 12, 243, 80, 48, 85, 0, 20, 7, 196, 12, 19, 1, 60, 66, 0, 9, 197, 81, 35,
+			193, 16, 80, 65, 20, 8, 197, 77, 65, 82, 20, 240, 65, 8, 197, 64, 83, 70, 36, 112, 20, 8, 197, 56, 243, 131, 32, 80, 66, 6,
+			195, 24, 85, 0, 20, 9, 197, 21, 3, 195, 32, 80, 67, 20, 8, 197, 12, 19, 66, 72, 144, 66, 8, 197, 12, 19, 4, 20, 144, 66,
+			6, 195, 4, 245, 0, 20, 18, 70, 4, 195, 5, 49, 82, 65, 35, 55, 55, 109, 55, 6, 40, 37, 35, 0, 9, 197, 4, 193, 83, 36,
+			16, 66, 20, 0, 6, 195, 56, 85, 77, 65, 6, 195, 29, 35, 205, 21, 11, 67, 9, 82, 65, 71, 6, 40, 37, 35, 0, 0, 10, 199,
+			61, 37, 15, 81, 65, 82, 36, 20, 10, 199, 8, 148, 197, 77, 66, 76, 20, 67, 10, 199, 5, 85, 15, 24, 240, 213, 76, 20, 0, 7,
+			196, 81, 34, 79, 72, 21, 7, 196, 77, 67, 194, 36, 20, 11, 200, 76, 147, 85, 49, 64, 78, 20, 240, 67, 11, 200, 16, 144, 201, 4,
+			227, 143, 88, 80, 20, 7, 196, 12, 243, 132, 20, 66, 11, 200, 12, 19, 80, 36, 67, 199, 48, 144, 20, 12, 200, 8, 244, 135, 61, 49,
+			83, 36, 16, 67, 20, 7, 196, 4, 229, 9, 12, 66, 0, 8, 197, 104, 244, 16, 36, 16, 66, 8, 197, 76, 144, 129, 72, 144, 65, 8,
+			197, 76, 51, 210, 12, 144, 21, 10, 198, 64, 19, 132, 61, 50, 65, 66, 20, 8, 197, 52, 244, 137, 56, 144, 65, 8, 197, 24, 243, 12,
+			36, 16, 66, 8, 197, 12, 244, 16, 36, 16, 20, 8, 197, 8, 20, 137, 48, 80, 66, 10, 198, 4, 208, 146, 61, 50, 65, 66, 20, 0,
+			6, 195, 72, 83, 133, 20, 5, 194, 25, 80, 72, 9, 198, 104, 17, 193, 72, 243, 0, 67, 7, 195, 80, 19, 133, 66, 20, 9, 198, 61,
+			52, 197, 69, 82, 64, 20, 9, 198, 60, 211, 137, 80, 83, 0, 67, 9, 198, 21, 49, 71, 21, 50, 64, 20, 9, 198, 12, 147, 206, 16,
+			243, 0, 21, 9, 198, 4, 210, 76, 61, 50, 64, 20, 9, 198, 4, 208, 146, 61, 50, 64, 20, 0, 10, 199, 88, 84, 154, 20, 115, 137,
+			76, 20, 6, 195, 88, 83, 128, 21, 10, 199, 77, 3, 206, 80, 19, 133, 60, 66, 6, 195, 13, 35, 196, 20, 0, 6, 195, 104, 83, 135,
+			20, 7, 196, 80, 19, 1, 52, 65, 7, 196, 76, 83, 3, 36, 21, 7, 196, 76, 19, 1, 52, 66, 9, 198, 65, 35, 208, 61, 53, 0,
+			21, 23, 72, 52, 20, 195, 4, 197, 67, 36, 16, 65, 35, 89, 49, 35, 55, 40, 76, 6, 37, 12, 35, 0, 7, 196, 28, 243, 5, 52,
+			20, 11, 200, 25, 83, 210, 36, 193, 71, 28, 80, 21, 11, 200, 21, 32, 84, 61, 53, 5, 56, 80, 67, 12, 201, 16, 17, 200, 21, 36,
+			143, 80, 148, 0, 67, 9, 198, 12, 243, 80, 61, 53, 0, 21, 9, 198, 12, 243, 80, 61, 53, 0, 21, 11, 200, 12, 21, 1, 77, 68,
+			143, 24, 80, 66, 7, 196, 12, 19, 129, 48, 66, 11, 67, 9, 82, 79, 71, 6, 40, 37, 39, 0, 0, 9, 198, 64, 243, 5, 76, 147,
+			133, 21, 6, 195, 64, 21, 82, 66, 12, 201, 52, 85, 1, 52, 244, 134, 61, 50, 64, 67, 9, 198, 37, 4, 15, 52, 83, 133, 66, 0,
+			9, 198, 80, 84, 129, 64, 85, 84, 67, 6, 195, 36, 243, 133, 20, 18, 70, 25, 37, 83, 12, 147, 192, 83, 14, 16, 40, 91, 6, 37,
+			12, 39, 0, 0, 10, 199, 80, 20, 211, 4, 209, 84, 72, 66, 6, 195, 72, 83, 128, 21, 10, 199, 64, 20, 133, 56, 50, 9, 52, 20,
+			14, 203, 61, 98, 68, 21, 3, 211, 37, 162, 79, 56, 80, 20, 6, 195, 52, 243, 128, 20, 10, 199, 4, 229, 9, 13, 33, 83, 36, 20,
+			0, 7, 196, 28, 244, 135, 4, 21, 7, 196, 24, 243, 133, 52, 20, 7, 196, 16, 81, 9, 80, 65, 7, 196, 12, 19, 143, 4, 20, 0,
+			13, 201, 52, 144, 210, 61, 52, 15, 73, 83, 64, 66, 20, 9, 198, 4, 229, 9, 28, 243, 133, 66, 9, 198, 4, 229, 9, 21, 35, 197,
+			20, 0, 9, 198, 37, 51, 195, 72, 243, 128, 66, 9, 198, 28, 20, 143, 24, 19, 128, 66, 5, 194, 20, 128, 21, 7, 195, 16, 20, 133,
+			66, 20, 6, 195, 8, 84, 133, 21, 9, 198, 5, 53, 18, 4, 112, 76, 66, 0, 6, 195, 88, 84, 128, 21, 6, 195, 88, 84, 128, 21,
+			6, 195, 61, 36, 192, 21, 6, 195, 61, 36, 192, 21, 6, 195, 56, 84, 128, 21, 0, 7, 196, 80, 19, 129, 72, 65, 8, 196, 76, 243,
+			5, 60, 65, 20, 7, 196, 57, 83, 69, 72, 65, 9, 198, 48, 147, 73, 81, 35, 198, 66, 7, 196, 20, 195, 5, 72, 21, 7, 196, 12,
+			243, 133, 72, 65, 7, 196, 4, 229, 9, 24, 65, 0, 8, 197, 80, 244, 142, 60, 192, 21, 12, 201, 76, 19, 22, 4, 67, 210, 20, 115,
+			128, 20, 8, 197, 64, 17, 18, 60, 224, 66, 8, 197, 56, 17, 148, 60, 192, 66, 8, 197, 52, 22, 154, 60, 192, 66, 0, 6, 195, 104,
+			85, 137, 20, 6, 195, 64, 20, 133, 66, 9, 198, 28, 194, 67, 21, 35, 204, 67, 9, 198, 20, 97, 137, 52, 84, 128, 66, 9, 198, 16,
+			244, 137, 24, 244, 128, 66, 0, 10, 199, 76, 245, 133, 73, 161, 78, 20, 66, 11, 199, 64, 193, 88, 36, 115, 1, 76, 65, 20, 0, 6,
+			195, 88, 84, 135, 21, 7, 196, 88, 83, 5, 56, 21, 7, 196, 64, 19, 5, 56, 21, 7, 196, 8, 19, 5, 56, 21, 11, 200, 4, 52,
+			85, 4, 100, 133, 16, 64, 21, 0, 9, 198, 61, 69, 15, 8, 243, 137, 20, 9, 197, 20, 227, 149, 64, 192, 65, 20, 0, 9, 198, 36,
+			225, 197, 57, 80, 64, 20, 9, 198, 16, 82, 79, 80, 20, 128, 66, 9, 198, 5, 4, 9, 60, 208, 128, 21, 0, 10, 199, 16, 241, 5,
+			12, 19, 133, 76, 20, 10, 199, 4, 65, 77, 64, 145, 82, 20, 66, 0, 7, 196, 72, 148, 5, 36, 66, 9, 198, 28, 20, 196, 61, 69,
+			0, 21, 7, 196, 20, 36, 133, 36, 66, 11, 200, 12, 83, 133, 72, 83, 148, 60, 192, 20, 7, 196, 12, 19, 129, 64, 65, 7, 196, 12,
+			19, 129, 64, 65, 7, 196, 5, 52, 193, 36, 66, 11, 200, 5, 34, 83, 80, 244, 211, 20, 224, 67, 0, 8, 197, 48, 145, 86, 37, 64,
+			66, 8, 197, 16, 149, 137, 21, 64, 20, 6, 195, 13, 35, 214, 20, 8, 197, 4, 112, 68, 21, 160, 67, 0, 9, 198, 88, 145, 207, 56,
+			245, 128, 20, 6, 195, 80, 20, 137, 66, 6, 195, 64, 21, 133, 66, 6, 195, 52, 244, 137, 21, 18, 70, 4, 208, 133, 17, 81, 64, 35,
+			65, 71, 36, 72, 6, 40, 12, 36, 0, 0, 6, 195, 84, 245, 128, 20, 9, 198, 52, 20, 211, 5, 35, 211, 20, 0, 7, 196, 76, 20,
+			133, 36, 72, 6, 195, 13, 35, 211, 20, 7, 196, 12, 244, 133, 4, 65, 11, 200, 12, 19, 15, 72, 147, 69, 81, 32, 67, 7, 196, 8,
+			244, 133, 4, 65, 0, 9, 198, 76, 147, 129, 48, 81, 133, 20, 8, 197, 61, 37, 137, 21, 64, 20, 6, 195, 52, 246, 154, 21, 9, 197,
+			16, 243, 12, 5, 32, 65, 20, 8, 197, 5, 52, 197, 81, 64, 20, 8, 197, 5, 52, 5, 81, 64, 20, 8, 197, 4, 97, 133, 81, 64,
+			20, 0, 6, 66, 20, 144, 118, 0, 6, 195, 80, 16, 149, 66, 5, 194, 28, 80, 20, 18, 70, 12, 147, 65, 9, 81, 64, 76, 37, 65,
+			35, 71, 6, 40, 12, 36, 0, 9, 198, 8, 19, 131, 60, 227, 212, 20, 9, 198, 5, 161, 79, 81, 35, 208, 67, 0, 9, 198, 76, 147,
+			134, 61, 35, 211, 20, 10, 199, 20, 210, 67, 72, 19, 137, 4, 68, 12, 201, 20, 193, 84, 81, 35, 196, 61, 69, 0, 21, 6, 195, 8,
+			243, 0, 20, 0, 7, 196, 16, 83, 12, 20, 72, 8, 196, 20, 51, 15, 28, 65, 20, 7, 196, 9, 35, 204, 48, 21, 0, 8, 197, 88,
+			148, 137, 48, 80, 66, 8, 197, 85, 67, 208, 36, 16, 67, 8, 197, 84, 33, 82, 80, 16, 67, 8, 197, 64, 243, 12, 36, 48, 20, 8,
+			197, 52, 243, 12, 36, 48, 66, 6, 195, 28, 85, 0, 20, 8, 197, 21, 66, 79, 64, 80, 66, 8, 197, 17, 34, 79, 64, 80, 65, 8,
+			197, 5, 34, 69, 80, 80, 20, 0, 9, 198, 52, 20, 141, 37, 35, 204, 67, 9, 198, 36, 229, 5, 73, 3, 204, 67, 9, 198, 12, 20,
+			148, 61, 50, 64, 20, 9, 198, 4, 195, 15, 16, 243, 0, 66, 0, 10, 199, 4, 193, 5, 8, 20, 129, 56, 68, 0, 7, 196, 88, 84,
+			132, 20, 21, 11, 200, 88, 83, 15, 12, 148, 5, 16, 80, 67, 7, 196, 65, 34, 79, 72, 21, 9, 198, 5, 50, 78, 13, 35, 206, 66,
+			0, 6, 195, 104, 80, 146, 20, 12, 201, 88, 83, 148, 72, 147, 15, 69, 82, 64, 20, 8, 197, 72, 144, 143, 76, 144, 20, 8, 197, 64,
+			243, 80, 20, 144, 66, 8, 197, 60, 209, 76, 36, 16, 67, 8, 197, 24, 81, 5, 48, 80, 21, 8, 197, 12, 147, 137, 76, 144, 65, 8,
+			197, 5, 84, 207, 56, 144, 20, 9, 198, 4, 229, 9, 12, 148, 0, 66, 8, 197, 4, 209, 76, 36, 16, 67, 0, 9, 198, 76, 147, 80,
+			61, 50, 64, 20, 9, 198, 52, 19, 142, 61, 50, 64, 20, 9, 198, 12, 243, 131, 21, 50, 64, 20, 0, 10, 199, 48, 149, 15, 72, 19,
+			133, 60, 67, 15, 203, 12, 243, 80, 85, 64, 90, 36, 243, 129, 48, 80, 69, 21, 0, 7, 196, 16, 19, 12, 60, 72, 8, 196, 88, 83,
+			133, 80, 65, 20, 11, 200, 65, 32, 83, 76, 149, 5, 48, 80, 66, 11, 200, 64, 244, 212, 21, 34, 79, 72, 144, 21, 7, 196, 56, 85,
+			84, 72, 65, 11, 200, 52, 147, 12, 20, 98, 79, 72, 144, 21, 11, 200, 8, 192, 84, 80, 242, 68, 20, 144, 68, 11, 200, 5, 53, 5,
+			72, 242, 68, 20, 144, 69, 12, 201, 4, 225, 204, 61, 48, 83, 76, 243, 137, 67, 0, 9, 198, 80, 148, 201, 24, 243, 133, 66, 9, 198,
+			64, 244, 193, 52, 147, 133, 67, 8, 197, 28, 243, 129, 73, 48, 66, 0, 9, 198, 4, 48, 197, 81, 67, 192, 20, 9, 198, 20, 48, 197,
+			81, 67, 192, 8, 9, 198, 81, 34, 83, 76, 147, 128, 65, 9, 198, 64, 148, 143, 88, 19, 128, 66, 9, 198, 64, 84, 147, 36, 19, 128,
+			67, 9, 198, 52, 81, 193, 24, 243, 128, 66, 13, 202, 12, 243, 148, 72, 244, 207, 28, 113, 84, 80, 20, 9, 198, 4, 197, 1, 48, 83,
+			128, 21, 0, 10, 199, 4, 224, 76, 24, 16, 133, 80, 20, 0, 7, 196, 24, 244, 131, 4, 21, 7, 196, 88, 148, 201, 80, 65, 7, 196,
+			76, 244, 131, 36, 21, 8, 196, 72, 243, 132, 60, 66, 20, 9, 198, 21, 2, 67, 20, 229, 18, 20, 12, 201, 4, 225, 204, 61, 48, 83,
+			76, 243, 133, 67, 7, 196, 4, 211, 5, 80, 20, 0, 8, 197, 32, 83, 12, 5, 48, 66, 0, 9, 198, 24, 244, 211, 21, 35, 192, 72,
+			0, 6, 195, 76, 51, 204, 21, 0, 7, 196, 76, 84, 133, 56, 21, 0, 9, 198, 20, 97, 137, 12, 16, 197, 67, 0, 6, 195, 60, 195,
+			73, 20, 10, 198, 24, 193, 71, 36, 20, 192, 65, 20, 9, 198, 21, 21, 73, 88, 240, 192, 66, 0, 6, 195, 64, 19, 204, 65, 6, 195,
+			60, 192, 64, 66, 10, 199, 12, 19, 12, 36, 116, 129, 24, 66, 0, 13, 68, 4, 84, 133, 60, 35, 6, 109, 51, 36, 39, 0, 6, 195,
+			104, 80, 195, 21, 7, 196, 80, 84, 133, 76, 20, 7, 196, 76, 20, 129, 28, 65, 6, 195, 72, 80, 195, 21, 11, 200, 65, 33, 71, 4,
+			230, 137, 60, 192, 68, 7, 196, 52, 244, 133, 76, 20, 9, 198, 16, 84, 196, 20, 211, 206, 20, 7, 196, 16, 84, 143, 28, 65, 6, 195,
+			8, 80, 195, 21, 0, 8, 197, 80, 147, 137, 4, 224, 66, 12, 201, 24, 20, 141, 4, 49, 85, 80, 144, 192, 67, 8, 197, 8, 83, 148,
+			60, 224, 20, 0, 9, 198, 65, 35, 211, 20, 194, 84, 66, 9, 198, 65, 35, 211, 20, 48, 192, 21, 9, 198, 65, 35, 208, 61, 50, 84,
+			66, 9, 198, 12, 243, 80, 61, 50, 84, 66, 9, 198, 5, 69, 9, 52, 148, 192, 65, 0, 6, 195, 76, 51, 212, 20, 10, 199, 64, 244,
+			148, 4, 192, 133, 72, 66, 6, 195, 60, 65, 64, 20, 10, 199, 28, 245, 20, 5, 49, 67, 12, 21, 10, 199, 4, 229, 9, 4, 84, 133,
+			60, 67, 0, 7, 196, 61, 52, 201, 4, 66, 9, 198, 12, 16, 193, 76, 83, 142, 21, 0, 6, 195, 88, 84, 154, 21, 8, 197, 12, 84,
+			130, 21, 32, 65, 0, 0, 6, 195, 60, 193, 64, 66, 10, 199, 52, 243, 129, 72, 50, 9, 4, 67, 6, 195, 8, 81, 192, 20, 0, 7,
+			196, 76, 20, 129, 36, 72, 11, 200, 65, 33, 83, 85, 4, 15, 77, 64, 21, 7, 196, 64, 20, 137, 4, 66, 8, 196, 56, 20, 132, 60,
+			66, 20, 8, 196, 24, 245, 133, 4, 65, 20, 7, 196, 13, 33, 83, 80, 21, 7, 196, 12, 21, 133, 4, 65, 9, 198, 12, 20, 142, 37,
+			99, 210, 66, 7, 196, 5, 34, 83, 80, 65, 0, 9, 198, 73, 80, 197, 48, 192, 73, 67, 6, 195, 28, 193, 66, 20, 8, 197, 12, 20,
+			144, 5, 32, 65, 0, 9, 198, 76, 20, 133, 8, 33, 64, 72, 10, 198, 64, 192, 67, 12, 129, 64, 66, 20, 9, 198, 52, 148, 137, 4,
+			65, 64, 66, 6, 195, 9, 80, 149, 66, 0, 7, 195, 12, 243, 0, 72, 9, 10, 3, 226, 130, 164, 55, 37, 34, 35, 0, 10, 199, 77,
+			65, 82, 20, 245, 9, 64, 67, 9, 198, 72, 83, 9, 28, 147, 211, 21, 6, 195, 60, 66, 64, 20, 6, 195, 12, 194, 64, 65, 0, 7,
+			196, 28, 83, 133, 72, 65, 7, 196, 88, 20, 133, 56, 21, 7, 196, 61, 52, 197, 60, 65, 9, 198, 28, 144, 82, 4, 37, 66, 67, 0,
+			8, 197, 88, 241, 204, 36, 16, 20, 8, 197, 88, 83, 133, 72, 80, 20, 12, 201, 52, 243, 148, 21, 49, 71, 4, 193, 64, 67, 8, 197,
+			36, 212, 9, 20, 112, 20, 8, 197, 24, 241, 204, 36, 16, 20, 8, 197, 16, 144, 76, 60, 112, 66, 6, 195, 12, 245, 0, 20, 6, 195,
+			12, 245, 0, 20, 0, 9, 198, 60, 113, 197, 8, 34, 64, 20, 11, 67, 28, 194, 65, 61, 6, 37, 12, 35, 0, 10, 198, 20, 224, 197,
+			24, 19, 0, 66, 20, 9, 198, 12, 240, 195, 36, 66, 64, 20, 0, 10, 67, 28, 194, 64, 61, 37, 0, 9, 72, 10, 199, 76, 50, 9,
+			5, 98, 84, 84, 67, 6, 195, 52, 242, 192, 20, 0, 7, 196, 28, 83, 133, 76, 65, 7, 196, 64, 84, 133, 28, 65, 9, 198, 64, 83,
+			148, 4, 115, 206, 66, 11, 200, 48, 18, 71, 84, 81, 204, 36, 16, 20, 0, 8, 197, 61, 52, 9, 80, 80, 20, 12, 201, 61, 33, 129,
+			56, 245, 18, 60, 98, 64, 20, 8, 197, 52, 241, 204, 36, 16, 20, 8, 197, 52, 18, 79, 72, 144, 21, 8, 197, 13, 33, 77, 36, 16,
+			65, 9, 197, 8, 84, 212, 36, 16, 65, 21, 8, 197, 5, 33, 193, 48, 144, 67, 8, 197, 5, 32, 77, 20, 144, 67, 0, 9, 198, 85,
+			48, 133, 12, 130, 64, 20, 9, 198, 52, 20, 195, 4, 194, 64, 65, 0, 10, 199, 76, 147, 66, 36, 243, 148, 20, 21, 0, 7, 196, 16,
+			83, 12, 60, 72, 11, 200, 52, 244, 19, 84, 84, 212, 36, 16, 66, 7, 196, 52, 84, 137, 80, 65, 11, 200, 52, 19, 1, 88, 241, 204,
+			36, 16, 20, 7, 196, 12, 244, 133, 16, 65, 6, 195, 12, 193, 83, 20, 7, 196, 12, 19, 143, 64, 20, 0, 9, 198, 4, 229, 9, 88,
+			20, 137, 66, 0, 9, 198, 4, 32, 137, 4, 211, 192, 76, 9, 198, 4, 32, 137, 4, 211, 192, 72, 10, 198, 80, 83, 5, 24, 243, 128,
+			66, 20, 9, 198, 72, 19, 65, 16, 19, 128, 67, 9, 198, 25, 32, 83, 76, 147, 128, 65, 0, 10, 199, 72, 85, 18, 60, 116, 129, 16,
+			66, 10, 199, 29, 32, 86, 36, 209, 84, 72, 66, 6, 195, 12, 193, 84, 20, 0, 7, 196, 24, 19, 142, 60, 76, 7, 196, 64, 148, 129,
+			52, 65, 0, 12, 201, 76, 245, 20, 21, 36, 129, 56, 83, 192, 67, 9, 198, 4, 50, 5, 52, 83, 133, 66, 0, 15, 3, 95, 50, 49,
+			84, 6, 36, 50, 47, 6, 40, 50, 39, 0, 10, 198, 60, 197, 18, 20, 211, 196, 67, 20, 7, 195, 52, 244, 197, 66, 20, 9, 198, 20,
+			212, 9, 72, 83, 192, 66, 5, 194, 20, 192, 21, 0, 6, 195, 24, 84, 192, 20, 0, 7, 196, 76, 52, 143, 24, 20, 0, 8, 197, 65,
+			35, 198, 36, 192, 66, 8, 197, 64, 144, 68, 20, 224, 66, 8, 197, 16, 243, 6, 36, 224, 66, 0, 9, 198, 104, 20, 133, 88, 144, 192,
+			20, 9, 198, 72, 85, 18, 60, 98, 84, 65, 9, 198, 20, 229, 5, 72, 144, 192, 21, 9, 198, 20, 193, 71, 36, 16, 192, 67, 0, 6,
+			195, 72, 84, 192, 21, 0, 8, 196, 76, 86, 154, 20, 66, 20, 7, 196, 12, 244, 134, 84, 66, 8, 196, 12, 20, 142, 20, 66, 20, 7,
+			196, 8, 243, 148, 4, 66, 0, 8, 197, 76, 84, 150, 4, 192, 66, 9, 197, 24, 195, 210, 36, 224, 65, 21, 0, 15, 4, 95, 13, 3,
+			14, 65, 6, 35, 49, 14, 16, 39, 50, 0, 0, 6, 195, 100, 241, 192, 20, 10, 199, 12, 20, 9, 80, 19, 133, 60, 67, 6, 195, 8,
+			83, 212, 20, 0, 7, 196, 12, 21, 1, 36, 66, 7, 195, 9, 84, 143, 66, 20, 7, 196, 4, 148, 143, 48, 66, 0, 8, 197, 100, 241,
+			213, 73, 64, 20, 8, 197, 76, 145, 206, 61, 32, 21, 12, 201, 76, 80, 207, 56, 67, 199, 20, 226, 84, 68, 9, 198, 12, 20, 148, 60,
+			48, 201, 20, 0, 9, 198, 80, 244, 130, 60, 193, 64, 21, 9, 198, 76, 147, 129, 28, 241, 192, 20, 9, 198, 56, 21, 70, 72, 17, 192,
+			65, 9, 198, 16, 147, 205, 20, 65, 64, 20, 0, 10, 199, 72, 19, 143, 12, 50, 9, 4, 20, 10, 199, 69, 80, 82, 80, 148, 143, 48,
+			67, 10, 199, 52, 86, 154, 4, 68, 137, 4, 67, 10, 199, 4, 209, 84, 72, 244, 9, 4, 68, 0, 9, 198, 77, 65, 83, 36, 51, 210,
+			66, 9, 198, 64, 84, 134, 21, 69, 0, 20, 7, 196, 52, 244, 137, 4, 66, 9, 198, 36, 229, 5, 72, 147, 210, 21, 7, 196, 8, 245,
+			15, 48, 65, 7, 196, 8, 148, 15, 48, 66, 0, 15, 69, 80, 84, 211, 21, 32, 47, 36, 89, 89, 6, 109, 51, 0, 8, 197, 80, 84,
+			211, 21, 32, 65, 8, 197, 76, 84, 211, 21, 32, 20, 8, 197, 28, 147, 204, 37, 64, 65, 9, 198, 24, 19, 148, 60, 48, 201, 20, 6,
+			195, 16, 241, 0, 20, 8, 197, 16, 80, 210, 21, 64, 20, 0, 9, 198, 92, 147, 1, 56, 245, 192, 67, 9, 198, 80, 84, 146, 20, 211,
+			212, 20, 9, 198, 77, 68, 143, 48, 17, 192, 65, 10, 198, 76, 83, 133, 28, 129, 64, 65, 20, 9, 198, 64, 244, 131, 36, 193, 64, 66,
+			9, 198, 64, 83, 147, 36, 193, 64, 20, 9, 198, 61, 37, 15, 56, 245, 128, 20, 9, 198, 52, 83, 147, 36, 193, 64, 66, 10, 198, 52,
+			83, 78, 60, 225, 64, 65, 20, 5, 194, 20, 208, 20, 13, 202, 12, 149, 137, 80, 21, 133, 12, 50, 9, 4, 20, 0, 10, 199, 69, 80,
+			68, 72, 148, 15, 48, 67, 10, 199, 64, 244, 148, 61, 35, 211, 20, 20, 10, 199, 64, 20, 211, 5, 65, 77, 64, 20, 6, 195, 16, 243,
+			0, 20, 8, 197, 13, 34, 83, 61, 0, 20, 0, 11, 200, 81, 85, 20, 61, 52, 15, 73, 64, 67, 7, 196, 64, 245, 133, 72, 65, 7,
+			196, 21, 35, 201, 56, 67, 7, 196, 12, 19, 143, 88, 65, 0, 6, 195, 72, 81, 206, 21, 8, 197, 64, 243, 73, 12, 80, 21, 8, 197,
+			60, 225, 83, 80, 16, 67, 8, 197, 48, 145, 213, 72, 80, 65, 9, 197, 16, 161, 77, 8, 80, 66, 20, 9, 198, 12, 243, 148, 20, 212,
+			0, 20, 8, 197, 12, 83, 9, 8, 80, 65, 9, 198, 12, 20, 21, 48, 85, 9, 21, 8, 197, 4, 224, 76, 60, 112, 66, 0, 9, 198,
+			77, 81, 15, 88, 84, 212, 20, 9, 198, 8, 83, 133, 88, 243, 0, 20, 9, 198, 5, 165, 5, 12, 130, 64, 20, 0, 10, 199, 80, 21,
+			82, 36, 19, 143, 88, 20, 12, 201, 64, 192, 78, 80, 17, 197, 56, 85, 0, 20, 10, 199, 61, 38, 137, 57, 83, 214, 36, 20, 10, 199,
+			13, 34, 83, 80, 241, 143, 72, 66, 0, 7, 196, 85, 52, 193, 56, 65, 7, 196, 72, 245, 15, 72, 20, 9, 198, 72, 16, 129, 72, 32,
+			82, 66, 11, 200, 64, 145, 86, 21, 1, 76, 4, 112, 67, 7, 196, 64, 20, 5, 72, 65, 11, 200, 52, 149, 15, 12, 243, 132, 72, 144,
+			20, 6, 195, 16, 246, 0, 20, 9, 198, 16, 147, 199, 56, 85, 0, 20, 0, 8, 197, 88, 243, 20, 72, 144, 21, 12, 201, 64, 144, 195,
+			60, 195, 205, 36, 226, 64, 67, 8, 197, 20, 227, 210, 52, 80, 21, 8, 197, 20, 36, 137, 16, 144, 20, 8, 197, 16, 241, 193, 48, 144,
+			65, 8, 197, 12, 19, 210, 48, 80, 65, 8, 197, 5, 3, 212, 20, 208, 20, 8, 197, 4, 229, 5, 52, 144, 20, 0, 9, 198, 72, 150,
+			154, 60, 194, 64, 66, 0, 10, 199, 60, 226, 67, 60, 99, 210, 36, 67, 19, 70, 24, 244, 148, 84, 149, 15, 83, 110, 14, 16, 47, 6,
+			40, 37, 47, 39, 0, 0, 12, 200, 77, 68, 129, 64, 245, 5, 72, 80, 67, 21, 0, 9, 198, 36, 68, 143, 48, 148, 201, 66, 6, 195,
+			21, 133, 18, 20, 0, 6, 195, 40, 84, 201, 20, 9, 198, 13, 85, 1, 56, 83, 192, 66, 9, 198, 9, 35, 206, 104, 83, 192, 65, 0,
+			0, 9, 198, 72, 149, 133, 72, 33, 82, 66, 7, 196, 61, 52, 197, 80, 20, 7, 196, 52, 245, 5, 48, 66, 7, 196, 36, 212, 5, 80,
+			65, 7, 196, 29, 35, 211, 36, 20, 11, 200, 12, 144, 204, 60, 52, 143, 77, 48, 67, 7, 196, 12, 84, 129, 52, 65, 8, 196, 8, 244,
+			132, 60, 66, 20, 7, 196, 8, 85, 5, 48, 20, 7, 196, 5, 35, 211, 36, 20, 9, 198, 4, 197, 9, 52, 85, 18, 66, 0, 0, 6,
+			195, 72, 241, 9, 20, 9, 198, 5, 32, 143, 72, 83, 192, 66, 0, 14, 3, 95, 51, 88, 47, 14, 16, 6, 36, 50, 47, 35, 0, 6,
+			195, 61, 48, 192, 20, 0, 12, 3, 95, 48, 67, 76, 6, 36, 50, 47, 39, 0, 7, 196, 72, 148, 15, 76, 20, 7, 196, 64, 84, 133,
+			104, 21, 7, 196, 56, 245, 5, 76, 20, 7, 196, 8, 21, 129, 72, 65, 12, 201, 5, 3, 195, 5, 64, 83, 80, 20, 201, 68, 13, 201,
+			4, 211, 137, 60, 49, 78, 80, 84, 201, 68, 20, 0, 8, 197, 64, 192, 67, 20, 32, 20, 8, 197, 52, 243, 15, 12, 128, 20, 8, 197,
+			52, 22, 154, 36, 224, 66, 8, 197, 8, 243, 132, 20, 224, 21, 0, 17, 70, 12, 83, 19, 37, 84, 192, 123, 109, 55, 89, 57, 6, 40,
+			89, 0, 9, 198, 76, 244, 18, 4, 34, 84, 66, 9, 198, 24, 84, 143, 12, 144, 64, 20, 9, 198, 12, 147, 133, 80, 80, 192, 20, 9,
+			198, 5, 85, 15, 9, 84, 192, 65, 0, 0, 6, 195, 88, 241, 11, 20, 9, 198, 81, 34, 85, 53, 98, 82, 66, 7, 196, 64, 244, 143,
+			76, 21, 11, 200, 52, 86, 154, 60, 114, 79, 72, 224, 21, 7, 196, 52, 18, 15, 56, 66, 0, 17, 4, 95, 48, 90, 51, 65, 37, 55,
+			55, 6, 36, 88, 37, 65, 37, 0, 12, 201, 72, 16, 132, 60, 208, 78, 104, 144, 64, 68, 8, 197, 21, 64, 78, 60, 192, 67, 0, 17,
+			4, 95, 48, 90, 50, 76, 36, 50, 47, 6, 36, 88, 37, 65, 37, 0, 6, 195, 76, 81, 5, 20, 9, 198, 72, 19, 80, 60, 195, 0,
+			21, 0, 6, 195, 73, 83, 212, 20, 0, 9, 198, 88, 145, 9, 29, 32, 70, 66, 15, 204, 72, 243, 66, 36, 53, 66, 61, 69, 1, 20,
+			68, 128, 20, 7, 196, 52, 244, 143, 48, 66, 14, 68, 12, 243, 21, 36, 49, 39, 55, 6, 40, 12, 37, 0, 7, 196, 12, 83, 148, 72,
+			20, 7, 196, 8, 20, 143, 48, 66, 0, 6, 195, 88, 243, 22, 20, 6, 195, 76, 83, 22, 21, 8, 197, 48, 19, 135, 85, 32, 66, 9,
+			197, 24, 244, 198, 61, 32, 65, 20, 9, 197, 24, 244, 134, 61, 32, 65, 21, 8, 197, 12, 243, 132, 61, 32, 20, 0, 9, 198, 64, 19,
+			12, 5, 33, 64, 65, 9, 198, 52, 243, 132, 60, 193, 128, 20, 9, 198, 48, 19, 132, 60, 193, 128, 20, 9, 198, 24, 243, 7, 61, 33,
+			64, 65, 9, 198, 5, 85, 15, 29, 37, 64, 68, 9, 198, 4, 229, 9, 61, 1, 64, 66, 9, 198, 4, 195, 5, 28, 129, 64, 65, 0,
+			6, 195, 89, 83, 212, 20, 6, 195, 65, 33, 68, 20, 10, 199, 64, 81, 15, 24, 147, 9, 4, 68, 6, 195, 57, 83, 212, 20, 10, 199,
+			44, 19, 80, 84, 50, 5, 4, 21, 0, 7, 196, 65, 33, 90, 104, 20, 6, 195, 65, 33, 71, 20, 7, 196, 61, 33, 201, 4, 65, 0,
+			10, 198, 65, 33, 83, 8, 149, 5, 65, 20, 12, 201, 64, 244, 148, 61, 97, 78, 21, 33, 64, 20, 6, 195, 57, 83, 214, 20, 9, 198,
+			36, 225, 137, 56, 149, 1, 68, 8, 197, 28, 130, 79, 81, 64, 21, 8, 197, 12, 244, 211, 61, 96, 65, 0, 6, 194, 48, 16, 72, 9,
+			16, 3, 95, 49, 57, 72, 37, 76, 35, 50, 50, 6, 39, 84, 36, 0, 9, 198, 84, 224, 78, 36, 209, 64, 66, 13, 202, 77, 3, 5,
+			56, 243, 69, 28, 19, 9, 4, 69, 6, 195, 52, 18, 5, 66, 9, 198, 5, 3, 195, 61, 1, 64, 66, 0, 14, 3, 95, 49, 56, 72,
+			37, 76, 6, 110, 47, 12, 39, 0, 6, 195, 88, 243, 12, 21, 6, 195, 88, 84, 208, 20, 10, 199, 72, 240, 149, 77, 65, 90, 104, 20,
+			6, 195, 52, 244, 212, 21, 10, 199, 52, 148, 207, 28, 147, 137, 4, 68, 0, 7, 196, 28, 146, 143, 56, 66, 7, 196, 12, 147, 137, 72,
+			65, 7, 196, 4, 197, 133, 60, 65, 0, 8, 197, 76, 243, 65, 48, 144, 65, 8, 197, 76, 100, 133, 28, 144, 20, 8, 197, 57, 83, 69,
+			72, 144, 65, 12, 201, 20, 193, 84, 81, 35, 206, 88, 243, 20, 68, 8, 197, 12, 19, 129, 64, 80, 65, 0, 9, 198, 52, 19, 5, 88,
+			243, 0, 20, 9, 198, 8, 148, 197, 57, 162, 64, 20, 0, 10, 199, 88, 19, 16, 4, 229, 5, 56, 21, 10, 199, 76, 145, 206, 61, 34,
+			76, 20, 67, 10, 199, 72, 147, 143, 64, 149, 5, 12, 20, 10, 199, 64, 145, 84, 72, 20, 143, 40, 20, 6, 195, 8, 243, 12, 21, 0,
+			7, 196, 88, 148, 5, 72, 65, 7, 196, 80, 245, 1, 56, 65, 7, 196, 76, 21, 1, 56, 65, 7, 196, 64, 84, 140, 20, 66, 7, 196,
+			48, 21, 5, 72, 65, 7, 196, 12, 19, 148, 84, 66, 0, 8, 197, 4, 229, 5, 72, 16, 66, 8, 197, 69, 81, 76, 48, 16, 72, 8,
+			197, 88, 149, 133, 72, 144, 65, 9, 197, 88, 145, 193, 56, 240, 67, 20, 8, 197, 76, 81, 9, 12, 144, 21, 9, 197, 65, 35, 212, 20,
+			240, 65, 20, 8, 197, 52, 81, 9, 84, 208, 20, 8, 197, 17, 81, 207, 56, 112, 20, 8, 197, 12, 246, 79, 80, 80, 20, 9, 197, 12,
+			84, 193, 72, 240, 67, 20, 8, 197, 5, 32, 143, 72, 80, 67, 8, 197, 4, 225, 197, 48, 144, 65, 0, 13, 3, 95, 49, 49, 6, 40,
+			50, 72, 37, 76, 37, 0, 9, 198, 76, 20, 141, 5, 66, 64, 65, 9, 198, 64, 149, 20, 60, 226, 64, 65, 6, 195, 52, 19, 5, 20,
+			6, 195, 52, 19, 5, 66, 9, 198, 28, 84, 212, 85, 34, 64, 65, 9, 198, 8, 21, 20, 21, 34, 64, 66, 9, 198, 8, 17, 206, 60,
+			194, 64, 66, 0, 16, 3, 95, 50, 56, 84, 6, 36, 50, 47, 6, 110, 47, 12, 39, 0, 12, 3, 95, 49, 48, 72, 37, 6, 36, 76,
+			37, 0, 10, 199, 77, 80, 129, 13, 21, 69, 60, 66, 14, 203, 64, 144, 83, 81, 34, 78, 61, 1, 78, 36, 16, 70, 9, 198, 61, 37,
+			15, 81, 66, 67, 20, 9, 198, 20, 193, 84, 81, 34, 67, 20, 0, 15, 3, 95, 49, 51, 47, 14, 16, 6, 36, 72, 37, 76, 37, 0,
+			6, 195, 88, 243, 7, 20, 11, 200, 72, 17, 9, 12, 241, 129, 56, 144, 67, 7, 196, 64, 148, 143, 64, 20, 7, 196, 52, 19, 149, 48,
+			66, 11, 200, 12, 130, 82, 60, 112, 76, 20, 240, 67, 0, 13, 3, 95, 49, 50, 72, 6, 39, 72, 37, 76, 37, 0, 9, 198, 16, 147,
+			211, 13, 84, 137, 66, 9, 198, 4, 229, 9, 80, 84, 201, 66, 8, 197, 4, 35, 205, 5, 48, 66, 0, 15, 3, 95, 49, 53, 49, 122,
+			6, 37, 65, 72, 37, 76, 37, 0, 9, 198, 77, 68, 133, 57, 83, 192, 20, 6, 195, 40, 243, 5, 20, 12, 201, 36, 68, 143, 20, 193,
+			84, 81, 34, 67, 20, 0, 18, 3, 95, 49, 52, 49, 122, 35, 47, 12, 6, 110, 51, 72, 37, 76, 37, 0, 10, 199, 52, 84, 197, 56,
+			50, 9, 52, 20, 0, 7, 196, 12, 244, 147, 4, 21, 17, 3, 95, 49, 55, 72, 37, 76, 35, 89, 12, 6, 109, 47, 12, 36, 0, 9,
+			198, 72, 243, 66, 60, 81, 18, 20, 15, 204, 64, 244, 148, 4, 83, 9, 12, 245, 20, 21, 34, 64, 20, 8, 196, 64, 85, 1, 48, 65,
+			20, 7, 196, 64, 84, 137, 52, 66, 9, 198, 64, 84, 137, 52, 85, 18, 66, 7, 196, 28, 148, 5, 80, 20, 7, 196, 12, 244, 5, 80,
+			20, 16, 204, 12, 243, 148, 4, 50, 9, 48, 243, 69, 81, 34, 64, 68, 20, 9, 198, 12, 20, 146, 60, 64, 78, 66, 0, 13, 3, 95,
+			49, 54, 89, 6, 36, 72, 37, 76, 37, 0, 9, 198, 76, 244, 137, 76, 243, 5, 66, 9, 198, 25, 37, 77, 20, 230, 137, 20, 9, 198,
+			12, 20, 146, 60, 48, 201, 20, 9, 198, 12, 19, 12, 36, 51, 5, 65, 0, 6, 195, 61, 52, 193, 21, 9, 198, 12, 21, 1, 48, 85,
+			20, 20, 0, 15, 3, 95, 55, 88, 89, 36, 47, 12, 6, 35, 50, 47, 35, 0, 0, 7, 196, 77, 81, 204, 36, 72, 7, 196, 72, 21,
+			5, 60, 65, 7, 196, 52, 241, 15, 12, 20, 7, 196, 48, 84, 18, 20, 20, 7, 196, 8, 21, 133, 72, 65, 0, 9, 198, 64, 83, 133,
+			48, 244, 5, 66, 9, 198, 4, 229, 9, 48, 244, 5, 66, 8, 197, 4, 225, 84, 60, 192, 67, 0, 6, 195, 88, 245, 9, 20, 9, 198,
+			88, 20, 137, 21, 64, 64, 68, 9, 198, 76, 147, 149, 21, 52, 192, 20, 9, 198, 65, 35, 212, 61, 66, 80, 66, 9, 198, 65, 33, 84,
+			21, 34, 84, 66, 9, 198, 61, 69, 1, 20, 68, 128, 20, 0, 9, 198, 65, 84, 144, 85, 33, 79, 66, 0, 8, 196, 80, 85, 1, 56,
+			65, 20, 7, 196, 76, 149, 1, 72, 66, 7, 196, 32, 84, 150, 20, 66, 0, 8, 197, 64, 83, 148, 60, 64, 20, 8, 197, 52, 84, 212,
+			60, 192, 21, 9, 198, 28, 19, 132, 60, 193, 137, 20, 8, 197, 12, 83, 148, 60, 192, 20, 0, 10, 198, 80, 83, 5, 80, 86, 20, 67,
+			20, 13, 67, 65, 37, 65, 48, 14, 16, 6, 40, 12, 35, 0, 9, 198, 64, 19, 16, 20, 36, 128, 65, 13, 202, 28, 194, 80, 80, 241,
+			15, 57, 66, 68, 36, 20, 9, 198, 16, 83, 79, 13, 34, 84, 66, 0, 8, 197, 37, 51, 212, 61, 0, 66, 8, 197, 21, 83, 79, 49,
+			0, 20, 0, 10, 198, 80, 83, 5, 29, 32, 70, 66, 20, 7, 196, 76, 81, 9, 4, 20, 7, 196, 76, 52, 143, 80, 20, 11, 200, 65,
+			35, 212, 61, 53, 5, 48, 192, 21, 7, 196, 61, 36, 207, 48, 21, 7, 196, 56, 84, 143, 48, 65, 7, 196, 12, 20, 143, 80, 20, 0,
+			9, 198, 24, 16, 197, 88, 21, 5, 76, 9, 198, 80, 83, 199, 56, 145, 5, 20, 9, 198, 37, 51, 195, 72, 21, 5, 66, 0, 10, 198,
+			56, 85, 20, 5, 33, 64, 65, 20, 9, 198, 52, 19, 12, 5, 33, 64, 65, 9, 198, 36, 228, 213, 9, 33, 64, 65, 9, 198, 25, 83,
+			133, 9, 33, 64, 65, 0, 10, 199, 76, 245, 20, 61, 3, 211, 80, 21, 10, 199, 56, 144, 207, 52, 81, 9, 4, 20, 0, 7, 196, 8,
+			244, 146, 60, 21, 11, 200, 64, 246, 154, 4, 225, 200, 21, 32, 66, 7, 196, 24, 244, 147, 20, 21, 7, 196, 24, 83, 20, 72, 21, 9,
+			198, 24, 20, 195, 21, 69, 0, 21, 9, 198, 24, 16, 195, 21, 69, 0, 21, 9, 198, 12, 243, 132, 61, 69, 0, 21, 0, 9, 198, 52,
+			150, 20, 20, 50, 9, 20, 9, 198, 36, 65, 78, 80, 149, 1, 68, 12, 201, 16, 144, 201, 5, 52, 197, 81, 65, 64, 20, 8, 197, 4,
+			226, 67, 21, 64, 20, 0, 5, 194, 52, 16, 8, 9, 198, 89, 83, 20, 85, 33, 64, 65, 9, 198, 85, 33, 84, 21, 33, 64, 67, 9,
+			198, 77, 64, 84, 21, 33, 64, 66, 9, 198, 76, 147, 131, 61, 1, 64, 65, 9, 198, 52, 85, 20, 21, 33, 64, 20, 9, 198, 52, 85,
+			5, 61, 33, 64, 66, 9, 198, 13, 32, 84, 21, 33, 64, 66, 0, 10, 199, 76, 52, 137, 88, 19, 137, 4, 67, 10, 199, 65, 34, 71,
+			36, 243, 137, 4, 67, 10, 199, 64, 192, 78, 5, 33, 201, 4, 66, 10, 199, 52, 144, 83, 80, 83, 137, 4, 68, 6, 195, 24, 243, 0,
+			20, 10, 199, 13, 34, 79, 28, 83, 137, 4, 68, 10, 199, 12, 20, 15, 48, 147, 133, 4, 67, 0, 10, 198, 76, 50, 5, 81, 66, 78,
+			65, 21, 7, 196, 56, 245, 133, 72, 65, 9, 198, 52, 19, 147, 84, 85, 0, 20, 10, 198, 16, 81, 137, 12, 149, 0, 65, 20, 7, 196,
+			4, 229, 5, 72, 65, 0, 9, 198, 81, 34, 70, 60, 115, 9, 20, 9, 198, 80, 83, 5, 24, 147, 13, 67, 8, 197, 76, 49, 80, 76,
+			144, 20, 8, 197, 72, 240, 130, 36, 16, 20, 8, 197, 52, 147, 69, 76, 144, 20, 8, 197, 52, 81, 15, 48, 80, 65, 6, 195, 24, 245,
+			0, 20, 12, 201, 24, 243, 148, 4, 224, 70, 72, 81, 4, 21, 8, 197, 12, 194, 80, 20, 240, 65, 0, 10, 198, 81, 33, 86, 21, 34,
+			64, 65, 20, 9, 198, 36, 228, 213, 9, 34, 64, 65, 9, 198, 36, 228, 197, 81, 66, 64, 20, 9, 198, 12, 244, 129, 105, 160, 84, 66,
+			0, 10, 199, 77, 64, 84, 60, 193, 5, 72, 20, 10, 199, 52, 147, 132, 5, 81, 193, 76, 65, 10, 199, 24, 147, 15, 13, 32, 84, 20,
+			66, 10, 199, 21, 38, 133, 28, 245, 137, 56, 67, 6, 195, 12, 84, 16, 21, 10, 199, 8, 19, 131, 5, 35, 212, 80, 21, 0, 7, 196,
+			76, 83, 154, 4, 8, 7, 196, 80, 21, 1, 72, 65, 7, 196, 80, 20, 9, 72, 65, 7, 196, 77, 65, 76, 48, 21, 8, 196, 76, 85,
+			133, 76, 65, 20, 11, 200, 76, 20, 146, 4, 49, 78, 36, 16, 20, 7, 196, 65, 35, 218, 36, 66, 7, 196, 64, 21, 5, 72, 65, 7,
+			196, 52, 83, 148, 20, 21, 7, 196, 36, 229, 133, 72, 21, 11, 200, 24, 245, 15, 72, 149, 15, 12, 48, 21, 7, 196, 12, 21, 5, 56,
+			21, 7, 196, 5, 52, 207, 72, 65, 9, 198, 4, 229, 9, 16, 245, 0, 66, 0, 8, 197, 60, 211, 137, 84, 208, 20, 9, 198, 60, 208,
+			89, 100, 17, 9, 66, 9, 198, 52, 147, 149, 80, 243, 9, 66, 9, 198, 28, 20, 129, 57, 162, 65, 67, 8, 197, 24, 83, 20, 72, 80,
+			21, 8, 197, 12, 20, 212, 36, 112, 66, 8, 197, 8, 21, 78, 20, 144, 67, 0, 9, 198, 81, 33, 86, 37, 34, 64, 65, 9, 198, 64,
+			244, 212, 21, 34, 64, 65, 9, 198, 64, 84, 133, 80, 243, 0, 66, 9, 198, 52, 86, 133, 57, 162, 64, 20, 0, 12, 3, 95, 50, 88,
+			84, 6, 36, 50, 47, 57, 0, 10, 199, 81, 33, 78, 80, 83, 142, 36, 20, 10, 199, 12, 130, 82, 61, 3, 212, 20, 20, 0, 7, 196,
+			80, 245, 5, 52, 20, 11, 200, 77, 84, 18, 20, 208, 90, 36, 16, 68, 7, 196, 64, 20, 143, 64, 20, 11, 200, 56, 85, 82, 61, 69,
+			5, 72, 144, 20, 11, 200, 12, 21, 129, 48, 48, 86, 36, 16, 68, 0, 12, 201, 80, 148, 193, 56, 245, 20, 21, 34, 64, 20, 12, 201,
+			64, 20, 129, 12, 85, 1, 52, 243, 0, 69, 12, 201, 48, 84, 9, 16, 245, 20, 21, 34, 64, 20, 9, 198, 4, 227, 137, 8, 19, 5,
+			66, 0, 9, 198, 76, 51, 210, 72, 85, 20, 20, 0, 6, 195, 65, 33, 84, 20, 10, 199, 64, 84, 137, 77, 64, 83, 36, 66, 10, 199,
+			52, 85, 1, 77, 64, 83, 36, 66, 10, 199, 37, 4, 15, 64, 245, 1, 52, 67, 11, 199, 36, 68, 143, 12, 81, 129, 48, 67, 20, 6,
+			195, 28, 85, 20, 20, 9, 198, 8, 83, 12, 61, 97, 83, 20, 0, 6, 195, 81, 33, 83, 20, 6, 195, 81, 33, 83, 20, 9, 198, 76,
+			50, 5, 48, 85, 18, 65, 7, 196, 64, 245, 1, 48, 65, 7, 196, 60, 97, 137, 16, 20, 12, 200, 29, 32, 78, 60, 195, 5, 73, 48,
+			67, 21, 0, 12, 201, 88, 83, 148, 72, 147, 15, 69, 83, 192, 66, 9, 198, 80, 243, 20, 20, 50, 9, 20, 9, 198, 52, 19, 15, 12,
+			50, 9, 20, 9, 198, 36, 225, 133, 16, 83, 5, 21, 6, 195, 12, 85, 18, 21, 0, 6, 195, 52, 147, 73, 66, 9, 198, 36, 225, 197,
+			57, 83, 192, 20, 0, 6, 195, 52, 144, 64, 72, 12, 201, 12, 149, 15, 76, 50, 5, 48, 85, 18, 67, 12, 201, 12, 130, 85, 16, 147,
+			5, 81, 65, 82, 20, 6, 195, 8, 240, 64, 20, 0, 7, 196, 28, 245, 20, 4, 21, 7, 196, 12, 244, 20, 36, 20, 7, 196, 8, 22,
+			129, 72, 66, 0, 8, 197, 25, 32, 71, 60, 192, 65, 0, 9, 198, 88, 19, 5, 72, 144, 64, 66, 9, 198, 76, 84, 85, 4, 196, 192,
+			66, 6, 195, 56, 243, 73, 20, 9, 198, 52, 20, 207, 88, 144, 64, 20, 10, 198, 28, 83, 205, 21, 68, 128, 66, 20, 9, 198, 21, 48,
+			77, 21, 68, 128, 66, 9, 198, 8, 243, 129, 72, 48, 68, 66, 6, 195, 8, 241, 77, 20, 0, 10, 199, 88, 84, 208, 5, 50, 65, 56,
+			68, 10, 199, 76, 96, 82, 24, 19, 12, 36, 67, 6, 195, 44, 80, 64, 21, 10, 199, 12, 20, 212, 20, 195, 15, 56, 67, 0, 14, 3,
+			95, 63, 63, 89, 6, 37, 65, 71, 39, 55, 39, 0, 7, 196, 12, 20, 146, 20, 66, 11, 200, 4, 224, 84, 72, 240, 195, 60, 192, 20,
+			0, 12, 201, 21, 53, 5, 57, 50, 77, 21, 68, 128, 67, 0, 9, 198, 88, 144, 193, 72, 144, 64, 67, 9, 198, 88, 149, 15, 72, 144,
+			64, 21, 10, 198, 80, 148, 133, 76, 144, 64, 66, 20, 13, 202, 52, 20, 147, 36, 51, 214, 21, 65, 82, 20, 20, 9, 198, 28, 19, 5,
+			72, 144, 64, 66, 9, 198, 21, 81, 197, 56, 144, 64, 20, 9, 198, 21, 81, 143, 72, 144, 64, 68, 0, 6, 195, 52, 145, 64, 72, 15,
+			3, 95, 52, 88, 49, 122, 35, 51, 6, 35, 50, 47, 35, 0, 10, 199, 77, 2, 78, 21, 67, 204, 36, 66, 14, 203, 64, 20, 129, 48,
+			193, 76, 21, 2, 80, 20, 64, 69, 10, 199, 52, 81, 193, 12, 243, 15, 56, 20, 0, 9, 198, 76, 244, 208, 21, 69, 0, 20, 6, 195,
+			60, 209, 71, 20, 7, 196, 16, 85, 143, 80, 20, 7, 196, 12, 244, 9, 4, 20, 0, 8, 197, 77, 2, 82, 37, 64, 65, 8, 197, 64,
+			193, 84, 81, 32, 20, 9, 198, 64, 145, 15, 12, 50, 9, 20, 9, 198, 25, 83, 7, 20, 230, 137, 20, 12, 201, 12, 20, 16, 20, 195,
+			1, 56, 144, 64, 68, 12, 201, 5, 163, 207, 77, 1, 82, 52, 144, 64, 69, 12, 201, 5, 84, 212, 72, 19, 1, 76, 144, 64, 68, 0,
+			9, 198, 64, 243, 12, 36, 49, 64, 20, 0, 10, 199, 61, 2, 83, 80, 241, 15, 52, 67, 6, 195, 60, 193, 192, 20, 6, 195, 56, 241,
+			64, 20, 6, 195, 56, 241, 64, 66, 0, 15, 204, 81, 35, 205, 8, 240, 201, 80, 244, 5, 56, 144, 64, 70, 7, 196, 48, 241, 15, 48,
+			65, 9, 198, 36, 209, 78, 60, 99, 210, 67, 7, 196, 24, 84, 137, 4, 65, 9, 198, 12, 19, 12, 36, 49, 66, 20, 0, 12, 201, 76,
+			245, 20, 61, 52, 5, 12, 145, 64, 20, 12, 201, 64, 243, 148, 5, 52, 201, 21, 97, 64, 20, 8, 197, 53, 83, 148, 5, 160, 66, 9,
+			197, 48, 85, 129, 57, 64, 65, 20, 9, 197, 12, 243, 80, 85, 64, 65, 20, 8, 197, 4, 213, 76, 21, 64, 20, 0, 6, 194, 48, 80,
+			72, 9, 9, 198, 52, 17, 15, 56, 145, 64, 67, 9, 198, 36, 228, 201, 20, 209, 64, 20, 9, 198, 16, 149, 20, 60, 225, 192, 20, 13,
+			202, 16, 17, 200, 21, 36, 143, 80, 148, 9, 4, 69, 0, 16, 3, 95, 53, 88, 76, 37, 50, 49, 122, 6, 35, 50, 47, 35, 0, 10,
+			199, 88, 145, 5, 60, 51, 9, 64, 68, 10, 199, 52, 145, 204, 36, 244, 137, 4, 67, 6, 195, 52, 16, 84, 66, 6, 195, 28, 243, 0,
+			20, 10, 199, 9, 34, 83, 28, 245, 137, 4, 20, 0, 7, 196, 77, 33, 84, 20, 72, 9, 198, 81, 32, 78, 76, 149, 0, 65, 7, 196,
+			77, 70, 76, 20, 66, 11, 200, 65, 34, 77, 60, 113, 78, 37, 64, 67, 9, 198, 64, 19, 13, 4, 227, 214, 20, 9, 198, 60, 36, 207,
+			48, 85, 0, 20, 7, 196, 48, 84, 18, 36, 20, 7, 196, 24, 21, 9, 12, 66, 0, 6, 195, 72, 245, 26, 20, 8, 197, 72, 20, 1,
+			12, 80, 66, 9, 198, 56, 244, 207, 12, 243, 73, 20, 6, 195, 48, 85, 0, 20, 6, 195, 28, 245, 0, 20, 12, 201, 24, 21, 20, 37,
+			52, 5, 12, 145, 64, 20, 8, 197, 20, 193, 85, 76, 144, 66, 10, 198, 12, 147, 9, 20, 114, 65, 67, 20, 8, 197, 12, 19, 69, 72,
+			144, 65, 8, 197, 4, 115, 206, 36, 16, 67, 10, 198, 4, 48, 78, 80, 241, 9, 67, 20, 0, 9, 198, 81, 33, 68, 36, 50, 64, 21,
+			9, 198, 12, 147, 9, 20, 114, 64, 20, 9, 198, 8, 240, 66, 16, 147, 0, 67, 9, 198, 4, 211, 210, 72, 82, 64, 67, 0, 9, 198,
+			24, 16, 197, 88, 19, 79, 76, 6, 195, 76, 82, 64, 72, 7, 195, 88, 242, 64, 76, 9, 7, 195, 56, 242, 64, 76, 9, 10, 199, 16,
+			244, 15, 48, 21, 143, 72, 21, 10, 199, 5, 36, 15, 13, 32, 84, 20, 66, 0, 12, 200, 5, 69, 18, 5, 97, 82, 76, 240, 28, 67,
+			8, 196, 76, 245, 5, 72, 66, 21, 11, 200, 60, 229, 15, 28, 83, 133, 76, 144, 67, 11, 200, 52, 19, 135, 36, 21, 15, 36, 16, 21,
+			11, 200, 52, 19, 9, 56, 51, 206, 36, 16, 68, 9, 198, 48, 19, 80, 72, 81, 0, 20, 11, 200, 29, 32, 77, 36, 224, 67, 20, 80,
+			67, 11, 200, 13, 33, 86, 4, 192, 207, 72, 80, 20, 7, 196, 12, 244, 148, 20, 21, 7, 196, 8, 245, 133, 76, 20, 8, 196, 8, 85,
+			15, 56, 66, 20, 0, 8, 197, 69, 81, 76, 48, 80, 72, 8, 197, 72, 17, 9, 12, 80, 66, 9, 198, 64, 20, 129, 80, 242, 65, 21,
+			8, 197, 25, 80, 211, 36, 16, 65, 8, 197, 25, 34, 71, 36, 16, 65, 9, 198, 24, 19, 1, 76, 50, 65, 67, 9, 198, 21, 84, 137,
+			80, 210, 65, 68, 8, 197, 5, 32, 207, 72, 80, 65, 9, 198, 5, 3, 208, 81, 145, 205, 66, 8, 197, 4, 193, 78, 36, 16, 20, 0,
+			9, 198, 16, 244, 143, 80, 82, 64, 67, 7, 195, 4, 147, 69, 66, 20, 0, 15, 3, 95, 54, 88, 89, 36, 89, 89, 6, 35, 50, 47,
+			35, 0, 10, 199, 88, 19, 4, 37, 51, 212, 80, 21, 10, 199, 80, 85, 18, 5, 3, 196, 20, 66, 6, 195, 76, 85, 20, 20, 6, 195,
+			76, 85, 20, 20, 6, 195, 8, 243, 64, 20, 0, 11, 200, 77, 2, 65, 56, 21, 15, 36, 16, 21, 11, 200, 64, 192, 83, 52, 241, 5,
+			76, 208, 20, 7, 196, 56, 80, 149, 48, 21, 11, 200, 52, 83, 1, 56, 51, 206, 36, 16, 68, 0, 0, 9, 198, 4, 32, 137, 4, 227,
+			192, 76, 6, 195, 12, 195, 197, 20, 18, 70, 4, 32, 129, 36, 227, 192, 35, 71, 12, 35, 6, 37, 12, 50, 39, 0, 0, 6, 195, 85,
+			5, 80, 65, 6, 195, 72, 245, 20, 21, 10, 199, 64, 84, 137, 25, 32, 83, 36, 66, 10, 199, 61, 37, 15, 12, 83, 148, 72, 20, 14,
+			203, 36, 229, 5, 48, 194, 71, 32, 83, 154, 36, 16, 20, 9, 198, 8, 20, 201, 48, 85, 83, 21, 6, 195, 4, 131, 192, 66, 0, 9,
+			198, 64, 20, 129, 52, 85, 18, 66, 11, 200, 64, 16, 137, 48, 195, 206, 37, 48, 20, 7, 196, 21, 34, 90, 104, 65, 7, 196, 20, 54,
+			133, 52, 20, 7, 196, 12, 21, 5, 80, 20, 7, 196, 8, 85, 9, 48, 21, 0, 6, 195, 28, 195, 194, 20, 0, 6, 194, 36, 192, 72,
+			9, 9, 198, 56, 144, 207, 16, 83, 64, 20, 9, 198, 20, 225, 137, 80, 85, 84, 67, 0, 12, 201, 65, 35, 198, 60, 225, 9, 52, 85,
+			18, 67, 0, 9, 198, 72, 85, 143, 49, 97, 82, 20, 9, 198, 64, 243, 3, 21, 97, 82, 66, 11, 200, 16, 243, 85, 76, 227, 214, 5,
+			48, 20, 9, 198, 12, 243, 132, 60, 210, 78, 66, 0, 9, 197, 64, 243, 12, 36, 224, 65, 20, 8, 197, 9, 32, 68, 4, 224, 65, 0,
+			6, 195, 61, 68, 133, 21, 9, 198, 52, 148, 197, 72, 144, 64, 66, 9, 198, 25, 83, 137, 88, 144, 64, 67, 9, 198, 21, 81, 15, 12,
+			144, 64, 20, 9, 198, 16, 21, 1, 72, 144, 64, 67, 9, 198, 13, 84, 129, 104, 144, 64, 67, 9, 198, 12, 19, 15, 72, 144, 64, 67,
+			9, 198, 5, 37, 5, 72, 144, 64, 66, 9, 198, 5, 35, 79, 56, 144, 64, 67, 9, 198, 4, 192, 129, 56, 144, 64, 67, 9, 198, 4,
+			32, 129, 104, 144, 64, 67, 0, 10, 199, 64, 83, 148, 5, 65, 85, 12, 67, 9, 198, 5, 33, 78, 4, 49, 79, 67, 0, 12, 201, 56,
+			144, 193, 72, 17, 213, 20, 228, 197, 21, 12, 201, 16, 85, 84, 21, 35, 211, 80, 243, 73, 20, 0, 8, 197, 81, 32, 80, 4, 224, 65,
+			8, 197, 80, 244, 144, 20, 64, 20, 8, 197, 76, 84, 137, 60, 192, 66, 8, 197, 28, 144, 86, 20, 224, 21, 8, 197, 12, 244, 146, 36,
+			64, 66, 9, 198, 12, 19, 16, 21, 53, 9, 67, 8, 197, 4, 229, 5, 56, 224, 21, 0, 9, 198, 76, 51, 210, 16, 144, 64, 66, 9,
+			198, 64, 243, 9, 104, 144, 64, 67, 9, 198, 56, 145, 197, 72, 144, 64, 66, 9, 198, 52, 21, 5, 72, 144, 64, 66, 9, 198, 48, 149,
+			1, 56, 144, 64, 67, 9, 198, 48, 81, 193, 104, 144, 64, 67, 9, 198, 36, 212, 12, 36, 50, 84, 66, 0, 14, 3, 95, 56, 88, 39,
+			47, 12, 6, 35, 50, 47, 35, 0, 6, 195, 104, 241, 64, 20, 0, 11, 200, 88, 19, 2, 72, 85, 133, 56, 224, 21, 11, 200, 64, 244,
+			148, 36, 48, 201, 60, 192, 67, 11, 200, 64, 21, 76, 36, 192, 84, 36, 224, 68, 9, 198, 12, 244, 208, 21, 69, 0, 20, 0, 12, 201,
+			96, 83, 143, 28, 195, 211, 76, 144, 64, 68, 12, 201, 80, 84, 141, 60, 51, 208, 64, 144, 64, 20, 12, 201, 76, 84, 211, 84, 241, 143,
+			8, 144, 64, 68, 8, 197, 61, 68, 129, 57, 64, 65, 8, 197, 21, 48, 69, 17, 32, 20, 12, 201, 4, 229, 9, 52, 21, 5, 72, 144,
+			64, 68, 0, 9, 198, 65, 33, 67, 60, 49, 64, 20, 10, 198, 5, 85, 15, 56, 241, 64, 67, 20, 0, 10, 199, 37, 51, 212, 72, 244,
+			9, 4, 68, 0, 7, 196, 80, 240, 137, 4, 66, 7, 196, 77, 1, 79, 80, 20, 7, 196, 52, 84, 131, 20, 66, 0, 8, 197, 80, 83,
+			80, 61, 32, 65, 8, 197, 80, 83, 80, 61, 32, 20, 8, 197, 5, 52, 207, 73, 64, 21, 0, 5, 194, 32, 240, 72, 6, 195, 52, 145,
+			73, 72, 9, 198, 76, 81, 213, 4, 49, 64, 66, 9, 198, 61, 33, 70, 36, 49, 64, 21, 6, 195, 56, 241, 77, 20, 0, 14, 3, 95,
+			57, 88, 50, 39, 84, 6, 35, 50, 47, 35, 0, 10, 199, 81, 32, 84, 80, 244, 137, 4, 67, 9, 198, 60, 198, 78, 80, 131, 211, 65,
+			10, 199, 48, 81, 193, 80, 244, 137, 4, 68, 0, 7, 196, 65, 33, 84, 20, 20, 11, 200, 12, 20, 212, 20, 195, 149, 61, 96, 20, 9,
+			198, 4, 194, 81, 84, 245, 0, 66, 0, 8, 197, 88, 84, 143, 48, 144, 65, 8, 197, 80, 244, 129, 12, 80, 66, 8, 197, 52, 244, 134,
+			20, 208, 20, 8, 197, 28, 244, 135, 36, 16, 65, 8, 197, 28, 144, 67, 60, 208, 65, 8, 197, 24, 244, 135, 36, 16, 65, 8, 197, 13,
+			80, 133, 8, 80, 20, 8, 197, 5, 35, 79, 16, 144, 20, 0, 9, 198, 80, 245, 15, 28, 243, 0, 67, 0, 10, 199, 81, 33, 83, 76,
+			85, 20, 20, 20, 11, 199, 12, 84, 150, 21, 65, 82, 36, 66, 20, 0, 11, 200, 84, 226, 86, 21, 36, 201, 80, 16, 69, 9, 198, 37,
+			4, 15, 48, 149, 0, 66, 9, 198, 12, 244, 9, 48, 245, 0, 20, 9, 198, 5, 50, 78, 80, 245, 0, 66, 0, 9, 197, 88, 81, 5,
+			72, 80, 66, 21, 8, 197, 56, 245, 77, 20, 16, 21, 10, 198, 56, 244, 150, 20, 114, 65, 66, 20, 8, 197, 48, 148, 19, 36, 16, 65,
+			12, 201, 16, 85, 84, 21, 35, 206, 60, 210, 64, 20, 0, 15, 3, 95, 63, 65, 55, 36, 47, 12, 6, 36, 12, 51, 35, 0, 9, 198,
+			85, 50, 71, 56, 243, 0, 67, 10, 198, 12, 241, 199, 36, 243, 0, 65, 20, 9, 198, 12, 85, 14, 36, 50, 64, 20, 9, 198, 12, 20,
+			137, 56, 243, 0, 66, 9, 198, 5, 4, 15, 28, 114, 64, 20, 0, 10, 199, 12, 83, 148, 72, 145, 149, 28, 66, 0, 9, 198, 37, 51,
+			204, 4, 35, 206, 20, 7, 196, 9, 37, 83, 36, 66, 0, 12, 201, 52, 243, 148, 20, 114, 79, 72, 114, 64, 21, 8, 197, 45, 32, 75,
+			61, 112, 66, 0, 0, 0, 8, 196, 72, 81, 15, 96, 66, 20, 0, 6, 195, 60, 209, 82, 65, 0, 9, 198, 12, 20, 5, 48, 195, 192,
+			21, 13, 202, 57, 80, 204, 20, 244, 201, 57, 65, 83, 36, 68, 0, 7, 194, 36, 224, 72, 28, 9, 18, 66, 36, 224, 37, 50, 15, 49,
+			122, 4, 37, 0, 8, 81, 99, 117, 105, 32, 5, 194, 60, 32, 20, 12, 201, 20, 225, 15, 76, 50, 5, 48, 85, 18, 67, 0, 9, 67,
+			92, 80, 128, 58, 109, 71, 0, 15, 204, 88, 83, 148, 37, 21, 65, 81, 68, 133, 76, 147, 64, 20, 12, 201, 76, 245, 20, 60, 147, 147,
+			36, 83, 69, 20, 6, 195, 72, 240, 128, 20, 6, 195, 8, 240, 128, 20, 0, 7, 196, 77, 83, 12, 4, 72, 6, 195, 77, 67, 205, 20,
+			12, 201, 76, 84, 211, 4, 229, 5, 76, 147, 64, 20, 0, 8, 197, 21, 48, 71, 60, 224, 66, 8, 197, 8, 83, 9, 4, 192, 67, 8,
+			197, 4, 113, 82, 60, 192, 66, 0, 9, 198, 76, 50, 76, 36, 20, 128, 67, 9, 198, 21, 32, 137, 88, 244, 128, 66, 10, 198, 20, 48,
+			197, 80, 84, 128, 66, 20, 9, 198, 12, 243, 15, 56, 144, 64, 67, 0, 6, 195, 77, 80, 64, 72, 15, 4, 95, 15, 7, 15, 39, 81,
+			6, 39, 12, 50, 36, 49, 0, 6, 195, 76, 80, 128, 20, 6, 195, 12, 80, 128, 20, 10, 199, 12, 20, 212, 20, 195, 1, 72, 67, 10,
+			199, 5, 32, 201, 64, 83, 1, 28, 67, 0, 7, 196, 85, 48, 133, 12, 20, 7, 196, 84, 226, 84, 4, 67, 6, 195, 76, 83, 137, 20,
+			11, 200, 64, 243, 9, 77, 66, 82, 60, 192, 68, 7, 196, 60, 131, 73, 12, 20, 0, 6, 195, 81, 35, 214, 20, 8, 197, 81, 33, 77,
+			36, 192, 66, 8, 197, 80, 84, 146, 20, 224, 21, 8, 197, 80, 20, 144, 4, 224, 66, 8, 197, 72, 17, 204, 4, 224, 66, 8, 197, 64,
+			192, 84, 36, 224, 65, 6, 195, 61, 35, 0, 21, 8, 197, 12, 20, 212, 36, 224, 65, 0, 6, 195, 65, 35, 211, 20, 9, 198, 56, 144,
+			207, 80, 84, 128, 66, 9, 198, 41, 80, 90, 20, 148, 128, 65, 0, 6, 195, 81, 35, 212, 20, 0, 11, 200, 80, 244, 131, 32, 144, 82,
+			60, 192, 67, 7, 196, 53, 84, 197, 36, 66, 11, 200, 36, 228, 197, 81, 66, 67, 36, 64, 68, 8, 196, 24, 84, 143, 16, 66, 20, 0,
+			14, 73, 4, 48, 197, 48, 84, 129, 80, 244, 128, 21, 0, 10, 6, 195, 65, 35, 214, 20, 6, 195, 65, 35, 214, 20, 8, 197, 52, 20,
+			195, 5, 32, 65, 8, 197, 20, 194, 83, 37, 32, 67, 8, 197, 16, 147, 69, 81, 32, 65, 8, 197, 5, 162, 77, 85, 64, 65, 0, 9,
+			198, 13, 35, 206, 61, 67, 208, 66, 12, 201, 12, 20, 212, 20, 197, 133, 80, 84, 133, 20, 0, 6, 195, 77, 81, 64, 72, 6, 195, 77,
+			67, 208, 20, 6, 195, 65, 35, 212, 20, 10, 199, 52, 19, 5, 8, 243, 7, 20, 20, 10, 199, 5, 144, 84, 60, 195, 1, 32, 68, 11,
+			199, 4, 48, 193, 16, 83, 73, 4, 67, 20, 0, 11, 200, 77, 1, 83, 76, 147, 69, 81, 32, 66, 7, 196, 61, 97, 83, 80, 20, 9,
+			198, 16, 243, 9, 4, 227, 214, 20, 8, 196, 12, 241, 201, 4, 65, 20, 9, 198, 5, 85, 15, 52, 86, 154, 20, 0, 8, 195, 56, 83,
+			0, 72, 28, 9, 9, 197, 80, 244, 148, 61, 32, 65, 21, 8, 197, 72, 145, 197, 81, 64, 20, 6, 195, 56, 83, 0, 21, 8, 197, 16,
+			145, 133, 81, 64, 20, 8, 197, 12, 20, 211, 5, 32, 65, 8, 197, 5, 32, 137, 81, 32, 65, 0, 7, 194, 56, 80, 72, 28, 9, 9,
+			66, 48, 144, 55, 37, 0, 76, 9, 6, 194, 36, 240, 76, 9, 0, 6, 195, 76, 85, 76, 66, 10, 199, 52, 243, 143, 80, 243, 137, 4,
+			68, 14, 203, 36, 51, 211, 36, 67, 196, 20, 48, 69, 17, 32, 20, 0, 7, 196, 77, 83, 12, 20, 72, 15, 68, 104, 18, 82, 4, 72,
+			88, 35, 6, 37, 12, 51, 35, 0, 9, 198, 88, 147, 129, 88, 147, 0, 67, 7, 196, 65, 33, 86, 36, 20, 7, 196, 65, 33, 83, 76,
+			20, 7, 196, 56, 83, 73, 12, 66, 8, 196, 44, 20, 15, 44, 66, 20, 6, 195, 28, 83, 137, 20, 11, 200, 20, 224, 78, 80, 147, 205,
+			21, 32, 68, 11, 200, 12, 130, 69, 76, 19, 149, 61, 96, 20, 0, 9, 198, 24, 16, 197, 88, 19, 143, 76, 8, 197, 25, 84, 143, 56,
+			240, 72, 8, 197, 81, 32, 66, 20, 16, 65, 8, 197, 72, 240, 195, 36, 16, 20, 8, 197, 64, 84, 131, 32, 80, 66, 8, 197, 24, 80,
+			195, 36, 16, 20, 8, 197, 12, 244, 195, 36, 16, 20, 8, 197, 12, 240, 195, 36, 16, 20, 8, 197, 8, 240, 195, 36, 16, 20, 8, 197,
+			5, 32, 193, 16, 80, 65, 8, 197, 4, 194, 83, 20, 144, 67, 0, 17, 206, 72, 243, 66, 36, 51, 211, 36, 67, 196, 20, 48, 69, 17,
+			32, 20, 9, 198, 36, 228, 207, 48, 149, 0, 66, 10, 198, 12, 19, 21, 52, 85, 0, 67, 21, 0, 6, 195, 77, 82, 64, 72, 10, 199,
+			104, 145, 207, 81, 65, 82, 36, 20, 10, 199, 80, 144, 133, 72, 144, 68, 20, 67, 10, 199, 76, 21, 143, 72, 115, 129, 56, 67, 10, 199,
+			36, 225, 129, 57, 66, 76, 20, 67, 10, 199, 5, 32, 201, 65, 33, 84, 20, 20, 0, 9, 198, 64, 84, 140, 60, 209, 78, 21, 7, 196,
+			48, 84, 143, 76, 21, 11, 200, 21, 35, 69, 56, 85, 84, 36, 48, 67, 9, 198, 8, 84, 148, 36, 243, 0, 66, 9, 198, 4, 84, 143,
+			76, 243, 0, 67, 0, 8, 197, 104, 19, 143, 8, 144, 20, 8, 197, 88, 83, 148, 72, 80, 20, 8, 197, 76, 147, 143, 64, 80, 20, 8,
+			197, 72, 84, 213, 52, 80, 67, 6, 195, 65, 35, 194, 20, 8, 197, 64, 84, 147, 36, 16, 65, 8, 197, 61, 53, 9, 48, 80, 66, 9,
+			197, 48, 83, 85, 72, 80, 65, 20, 9, 197, 36, 67, 206, 20, 240, 66, 20, 6, 195, 29, 81, 82, 21, 9, 197, 20, 225, 129, 76, 144,
+			65, 20, 9, 198, 13, 33, 84, 4, 49, 79, 66, 9, 197, 12, 20, 201, 56, 240, 67, 20, 8, 197, 12, 20, 137, 80, 80, 67, 8, 197,
+			8, 145, 78, 56, 144, 20, 0, 9, 198, 65, 33, 83, 80, 149, 0, 65, 14, 202, 32, 84, 129, 12, 193, 79, 64, 243, 9, 76, 67, 21,
+			6, 195, 17, 35, 199, 20, 9, 198, 4, 211, 210, 61, 50, 64, 21, 0, 9, 198, 64, 243, 9, 13, 35, 205, 66, 14, 203, 20, 193, 84,
+			81, 35, 205, 4, 115, 133, 80, 80, 20, 6, 195, 8, 243, 128, 20, 10, 199, 5, 3, 204, 48, 147, 133, 60, 67, 0, 15, 4, 95, 48,
+			77, 52, 71, 37, 55, 37, 6, 39, 50, 37, 0, 11, 200, 61, 37, 15, 16, 244, 211, 36, 16, 68, 6, 195, 56, 243, 133, 20, 11, 200,
+			25, 32, 78, 12, 130, 71, 36, 16, 66, 7, 196, 12, 149, 137, 80, 65, 6, 195, 12, 83, 133, 21, 11, 200, 9, 83, 206, 5, 36, 143,
+			80, 144, 20, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6, 39, 50, 37, 0, 6, 195, 56, 245, 83, 66, 9, 198, 48, 20,
+			9, 16, 83, 192, 66, 7, 195, 21, 3, 195, 65, 20, 9, 198, 20, 193, 84, 81, 35, 196, 20, 0, 16, 4, 95, 48, 77, 51, 65, 37,
+			55, 37, 6, 35, 51, 72, 37, 0, 6, 195, 76, 83, 128, 21, 11, 199, 64, 20, 133, 57, 65, 83, 36, 66, 20, 9, 198, 64, 19, 5,
+			52, 243, 133, 20, 6, 195, 56, 243, 128, 20, 6, 195, 24, 243, 128, 20, 9, 198, 24, 147, 5, 52, 243, 133, 20, 9, 198, 12, 194, 83,
+			80, 83, 133, 65, 6, 195, 12, 83, 128, 21, 6, 195, 8, 243, 132, 20, 0, 7, 196, 8, 240, 195, 4, 21, 7, 196, 12, 20, 21, 80,
+			66, 0, 12, 4, 95, 48, 77, 49, 65, 6, 37, 55, 35, 0, 7, 195, 21, 3, 206, 65, 20, 6, 195, 12, 83, 142, 21, 0, 15, 4,
+			95, 2, 18, 22, 71, 14, 16, 6, 36, 12, 84, 36, 0, 9, 198, 61, 69, 1, 28, 243, 128, 66, 5, 194, 60, 64, 20, 9, 198, 52,
+			19, 1, 64, 83, 128, 21, 0, 9, 198, 76, 147, 132, 72, 243, 69, 65, 11, 199, 16, 148, 195, 72, 81, 9, 80, 66, 21, 9, 198, 12,
+			19, 12, 37, 35, 197, 66, 0, 7, 196, 12, 244, 137, 104, 65, 0, 8, 197, 64, 83, 132, 60, 192, 20, 8, 197, 52, 81, 15, 48, 192,
+			21, 8, 197, 32, 145, 82, 60, 224, 66, 0, 9, 198, 105, 80, 195, 32, 84, 128, 65, 9, 198, 72, 84, 208, 60, 228, 192, 20, 9, 198,
+			36, 68, 143, 88, 244, 128, 66, 6, 195, 12, 84, 131, 21, 6, 195, 12, 84, 131, 21, 6, 195, 8, 244, 135, 21, 0, 6, 195, 24, 244,
+			128, 21, 9, 198, 13, 34, 83, 4, 244, 133, 66, 6, 195, 12, 84, 128, 21, 6, 195, 12, 84, 128, 21, 0, 6, 195, 76, 84, 129, 21,
+			7, 196, 77, 65, 80, 64, 21, 6, 195, 72, 244, 133, 20, 7, 196, 64, 16, 197, 12, 20, 6, 195, 52, 20, 129, 66, 7, 196, 24, 241,
+			204, 36, 20, 9, 198, 24, 147, 15, 77, 49, 78, 66, 7, 196, 16, 241, 204, 36, 20, 6, 195, 8, 244, 133, 20, 0, 8, 197, 88, 83,
+			148, 60, 192, 20, 12, 201, 69, 80, 68, 72, 147, 1, 80, 84, 128, 67, 8, 197, 16, 243, 13, 4, 224, 20, 8, 197, 12, 22, 154, 60,
+			192, 66, 0, 5, 194, 61, 64, 20, 9, 198, 52, 243, 143, 52, 84, 128, 66, 9, 198, 48, 83, 208, 60, 193, 0, 20, 0, 6, 195, 8,
+			245, 128, 20, 6, 195, 8, 245, 128, 20, 0, 7, 196, 76, 147, 73, 4, 65, 8, 196, 72, 240, 143, 80, 66, 20, 6, 195, 56, 245, 133,
+			20, 0, 8, 197, 76, 245, 137, 21, 64, 66, 12, 201, 53, 83, 20, 37, 3, 5, 96, 84, 128, 20, 12, 201, 20, 210, 67, 72, 148, 20,
+			60, 98, 84, 68, 0, 13, 202, 88, 19, 4, 60, 32, 137, 4, 65, 78, 20, 67, 9, 198, 76, 19, 134, 72, 243, 148, 66, 6, 195, 21,
+			3, 211, 20, 0, 10, 199, 88, 19, 12, 20, 195, 206, 28, 20, 6, 195, 56, 245, 128, 20, 9, 198, 52, 147, 12, 21, 50, 77, 20, 10,
+			199, 37, 3, 212, 21, 35, 73, 4, 68, 10, 199, 28, 83, 212, 21, 35, 73, 4, 68, 9, 198, 21, 2, 71, 72, 17, 133, 66, 0, 7,
+			196, 16, 148, 15, 48, 66, 6, 195, 8, 245, 133, 20, 0, 9, 197, 80, 83, 133, 9, 32, 65, 20, 9, 197, 48, 85, 129, 57, 160, 65,
+			20, 8, 197, 36, 225, 133, 81, 64, 20, 8, 197, 20, 97, 133, 81, 64, 20, 8, 197, 16, 84, 213, 21, 64, 20, 8, 197, 8, 84, 207,
+			105, 160, 21, 0, 6, 194, 52, 144, 76, 9, 9, 198, 65, 35, 201, 21, 69, 0, 20, 9, 198, 65, 35, 196, 61, 69, 0, 21, 6, 195,
+			21, 21, 79, 20, 9, 198, 12, 81, 129, 48, 241, 128, 66, 6, 195, 8, 244, 147, 21, 0, 10, 199, 77, 2, 78, 5, 166, 143, 48, 67,
+			10, 199, 64, 148, 143, 52, 19, 137, 4, 68, 10, 199, 28, 244, 135, 60, 230, 143, 48, 67, 6, 195, 28, 86, 128, 21, 9, 198, 12, 130,
+			65, 88, 20, 137, 65, 10, 199, 12, 20, 148, 5, 1, 83, 80, 21, 9, 198, 4, 224, 71, 72, 17, 133, 66, 0, 7, 131, 14, 195, 169,
+			8, 9, 7, 196, 36, 209, 78, 36, 20, 9, 198, 28, 192, 68, 36, 243, 0, 66, 0, 8, 197, 88, 84, 195, 36, 48, 66, 8, 197, 77,
+			3, 5, 56, 144, 20, 8, 197, 64, 84, 195, 32, 80, 20, 6, 195, 24, 244, 146, 21, 8, 197, 21, 35, 69, 80, 80, 20, 8, 197, 8,
+			148, 5, 16, 80, 65, 0, 9, 198, 81, 32, 86, 21, 50, 64, 20, 9, 198, 21, 129, 82, 21, 50, 64, 66, 0, 20, 71, 60, 194, 77,
+			64, 144, 68, 20, 39, 55, 37, 65, 48, 6, 37, 35, 72, 36, 0, 14, 203, 64, 149, 67, 12, 129, 80, 21, 33, 133, 81, 64, 20, 9,
+			198, 52, 144, 210, 61, 67, 205, 66, 10, 199, 5, 32, 207, 12, 244, 197, 56, 21, 0, 7, 196, 84, 35, 204, 16, 20, 9, 198, 72, 81,
+			199, 37, 49, 78, 21, 7, 196, 65, 33, 84, 80, 20, 11, 200, 52, 243, 148, 20, 193, 80, 72, 80, 20, 8, 196, 52, 17, 207, 28, 66,
+			20, 6, 195, 21, 21, 73, 20, 9, 198, 9, 85, 1, 56, 243, 0, 67, 0, 8, 197, 81, 34, 65, 16, 80, 65, 8, 197, 80, 21, 1,
+			72, 144, 65, 8, 197, 76, 147, 132, 36, 16, 66, 8, 197, 36, 228, 207, 52, 208, 21, 8, 197, 36, 225, 133, 72, 144, 65, 6, 195, 24,
+			244, 142, 21, 8, 197, 17, 34, 65, 16, 80, 65, 8, 197, 4, 210, 68, 20, 144, 67, 0, 9, 198, 80, 83, 195, 72, 149, 0, 66, 6,
+			195, 52, 20, 143, 20, 6, 195, 52, 20, 143, 66, 9, 198, 16, 147, 195, 21, 50, 64, 66, 9, 198, 12, 19, 69, 72, 245, 0, 20, 0,
+			6, 195, 104, 243, 128, 20, 10, 199, 80, 19, 12, 60, 98, 84, 20, 66, 10, 199, 12, 243, 80, 61, 50, 84, 20, 66, 0, 7, 196, 76,
+			19, 79, 4, 20, 7, 196, 73, 80, 133, 48, 66, 11, 200, 64, 245, 1, 52, 241, 193, 48, 80, 67, 9, 198, 37, 3, 195, 20, 229, 18,
+			20, 11, 200, 36, 209, 78, 61, 69, 5, 72, 144, 20, 11, 200, 21, 65, 82, 61, 69, 5, 72, 144, 20, 9, 198, 16, 148, 208, 72, 86,
+			154, 20, 11, 200, 8, 147, 211, 36, 229, 5, 76, 144, 67, 11, 200, 5, 34, 83, 80, 245, 5, 48, 80, 67, 0, 12, 201, 72, 244, 208,
+			36, 115, 9, 61, 50, 64, 21, 6, 195, 8, 244, 142, 21, 12, 201, 5, 32, 201, 16, 147, 195, 21, 50, 64, 68, 0, 12, 201, 12, 243,
+			148, 72, 245, 133, 73, 50, 65, 67, 0, 10, 199, 52, 20, 129, 80, 243, 133, 80, 20, 9, 198, 48, 83, 211, 80, 83, 133, 66, 9, 198,
+			16, 147, 143, 52, 83, 133, 66, 9, 198, 8, 243, 7, 32, 84, 137, 65, 0, 6, 195, 104, 243, 133, 21, 7, 195, 24, 244, 137, 20, 9,
+			7, 196, 76, 240, 195, 36, 20, 6, 195, 24, 244, 137, 66, 0, 12, 201, 16, 83, 65, 72, 85, 5, 36, 243, 128, 21, 0, 10, 198, 88,
+			145, 197, 88, 19, 128, 66, 20, 9, 198, 24, 83, 143, 52, 83, 128, 66, 9, 198, 21, 69, 1, 28, 243, 128, 66, 10, 198, 21, 4, 201,
+			48, 243, 128, 65, 20, 9, 198, 8, 20, 137, 80, 243, 128, 66, 0, 6, 195, 28, 80, 192, 20, 0, 7, 196, 81, 80, 133, 72, 65, 7,
+			196, 52, 242, 82, 20, 67, 13, 68, 12, 144, 78, 20, 76, 6, 37, 35, 50, 36, 0, 0, 8, 197, 81, 32, 70, 36, 192, 66, 8, 197,
+			13, 33, 83, 60, 192, 66, 8, 197, 12, 243, 132, 60, 224, 21, 0, 6, 195, 76, 80, 195, 21, 9, 198, 64, 193, 85, 72, 144, 192, 65,
+			6, 195, 12, 80, 195, 21, 0, 10, 199, 80, 83, 5, 48, 21, 143, 72, 21, 10, 199, 36, 229, 5, 73, 50, 78, 16, 67, 0, 6, 195,
+			12, 80, 193, 20, 7, 196, 88, 81, 204, 36, 20, 7, 196, 76, 241, 204, 36, 20, 11, 200, 60, 197, 18, 20, 240, 197, 4, 224, 68, 7,
+			196, 53, 81, 148, 36, 66, 7, 196, 48, 147, 73, 56, 65, 0, 12, 201, 76, 83, 142, 4, 50, 5, 72, 144, 128, 68, 7, 195, 20, 32,
+			78, 65, 20, 12, 201, 12, 243, 80, 72, 21, 133, 56, 66, 84, 67, 0, 6, 195, 60, 225, 71, 20, 9, 198, 36, 65, 78, 80, 144, 192,
+			20, 9, 198, 21, 64, 77, 64, 84, 192, 65, 9, 198, 4, 229, 9, 48, 240, 192, 66, 9, 198, 4, 225, 18, 20, 148, 192, 66, 0, 9,
+			198, 76, 19, 80, 21, 148, 133, 66, 6, 195, 72, 241, 192, 20, 0, 7, 196, 77, 83, 12, 60, 72, 0, 8, 197, 104, 83, 154, 21, 32,
+			65, 9, 198, 88, 147, 12, 5, 35, 211, 20, 8, 197, 9, 84, 130, 21, 32, 65, 8, 197, 8, 84, 130, 21, 32, 65, 0, 10, 198, 24,
+			145, 83, 60, 193, 64, 65, 20, 9, 198, 24, 145, 78, 36, 193, 64, 66, 0, 14, 5, 19, 1, 18, 195, 178, 89, 108, 34, 6, 110, 0,
+			72, 10, 199, 21, 5, 1, 72, 50, 9, 4, 67, 0, 7, 196, 76, 83, 79, 48, 65, 6, 195, 72, 129, 65, 21, 7, 196, 48, 81, 199,
+			20, 21, 0, 8, 197, 76, 48, 80, 37, 64, 65, 6, 195, 64, 83, 0, 21, 6, 195, 64, 83, 0, 21, 9, 197, 52, 245, 13, 61, 64,
+			66, 20, 12, 201, 21, 2, 71, 48, 245, 20, 36, 65, 64, 20, 8, 197, 12, 19, 1, 9, 32, 65, 8, 197, 4, 112, 80, 37, 64, 66,
+			0, 9, 198, 5, 100, 133, 8, 33, 64, 72, 9, 198, 88, 84, 135, 36, 225, 64, 21, 9, 198, 76, 245, 20, 36, 193, 64, 66, 9, 198,
+			24, 149, 15, 24, 17, 192, 66, 9, 198, 16, 19, 79, 12, 193, 64, 65, 9, 198, 12, 84, 131, 36, 225, 64, 21, 9, 198, 12, 20, 205,
+			20, 225, 64, 65, 9, 198, 4, 227, 198, 20, 193, 64, 66, 0, 6, 195, 64, 81, 0, 20, 9, 198, 16, 144, 71, 56, 244, 201, 66, 0,
+			11, 200, 88, 84, 212, 20, 224, 78, 61, 96, 20, 7, 196, 76, 145, 193, 72, 65, 7, 196, 64, 145, 68, 20, 20, 11, 200, 12, 148, 131,
+			60, 49, 78, 81, 32, 20, 6, 195, 4, 34, 65, 66, 0, 8, 197, 5, 97, 83, 76, 80, 72, 9, 197, 88, 83, 133, 80, 144, 65, 20,
+			8, 197, 76, 241, 204, 36, 16, 20, 8, 197, 76, 19, 5, 52, 144, 20, 8, 197, 72, 144, 197, 72, 48, 21, 8, 197, 64, 244, 212, 84,
+			208, 65, 8, 197, 36, 208, 143, 12, 48, 21, 8, 197, 36, 68, 143, 64, 80, 65, 8, 197, 28, 83, 133, 88, 80, 20, 8, 197, 28, 19,
+			69, 80, 80, 20, 8, 197, 25, 81, 193, 12, 80, 66, 8, 197, 21, 34, 84, 20, 208, 20, 8, 197, 4, 193, 83, 76, 144, 20, 8, 197,
+			4, 115, 129, 80, 144, 65, 0, 9, 198, 88, 83, 133, 72, 66, 64, 67, 9, 198, 85, 52, 197, 28, 194, 64, 20, 9, 198, 80, 85, 84,
+			60, 226, 64, 65, 9, 198, 77, 3, 5, 56, 66, 68, 20, 9, 198, 28, 149, 71, 28, 147, 204, 65, 9, 198, 21, 2, 83, 60, 66, 64,
+			20, 9, 198, 5, 4, 15, 76, 149, 0, 66, 0, 9, 198, 104, 243, 198, 36, 194, 65, 68, 10, 199, 72, 144, 195, 60, 35, 206, 36, 20,
+			10, 199, 12, 83, 148, 85, 34, 80, 20, 66, 0, 8, 196, 64, 83, 206, 36, 65, 9, 11, 200, 80, 20, 132, 36, 116, 129, 16, 144, 66,
+			8, 196, 76, 83, 73, 56, 65, 21, 7, 196, 64, 19, 73, 72, 66, 6, 195, 56, 245, 137, 20, 7, 196, 56, 243, 73, 56, 65, 7, 196,
+			52, 16, 193, 12, 66, 11, 200, 8, 20, 137, 80, 243, 133, 76, 144, 20, 0, 8, 197, 76, 83, 80, 72, 80, 20, 6, 195, 72, 246, 154,
+			21, 8, 197, 65, 33, 77, 36, 16, 65, 9, 197, 48, 83, 85, 72, 144, 65, 20, 8, 197, 32, 243, 143, 72, 80, 67, 8, 197, 25, 84,
+			148, 20, 144, 66, 8, 197, 24, 83, 142, 20, 48, 20, 8, 197, 8, 20, 212, 36, 16, 65, 8, 197, 4, 194, 78, 20, 16, 66, 0, 9,
+			198, 64, 149, 5, 28, 194, 64, 20, 12, 201, 52, 144, 210, 60, 49, 70, 4, 194, 65, 69, 0, 6, 195, 52, 147, 192, 72, 9, 198, 76,
+			147, 148, 60, 226, 65, 67, 9, 198, 76, 19, 13, 60, 66, 65, 67, 10, 199, 20, 195, 5, 56, 144, 200, 20, 20, 0, 9, 198, 81, 33,
+			86, 37, 48, 78, 67, 12, 200, 16, 147, 143, 12, 81, 129, 48, 144, 67, 20, 0, 0, 22, 4, 95, 3, 9, 18, 76, 37, 38, 14, 16,
+			49, 39, 50, 83, 55, 6, 36, 89, 89, 39, 0, 0, 9, 198, 105, 80, 195, 32, 84, 137, 65, 10, 199, 77, 80, 131, 60, 228, 195, 36,
+			20, 9, 198, 8, 147, 1, 80, 84, 137, 66, 0, 7, 196, 64, 241, 199, 36, 20, 9, 198, 8, 240, 195, 4, 225, 82, 21, 0, 8, 133,
+			19, 1, 18, 195, 160, 72, 9, 198, 76, 20, 146, 4, 37, 83, 65, 0, 9, 198, 5, 100, 133, 52, 211, 192, 72, 9, 198, 76, 20, 133,
+			52, 211, 192, 72, 10, 198, 60, 210, 67, 72, 243, 128, 65, 20, 5, 194, 60, 128, 20, 6, 195, 8, 244, 195, 20, 0, 10, 67, 36, 20,
+			192, 37, 35, 88, 0, 65, 6, 195, 72, 244, 192, 20, 10, 199, 52, 85, 1, 8, 243, 9, 80, 67, 6, 195, 8, 244, 192, 20, 0, 7,
+			196, 52, 86, 9, 12, 21, 0, 8, 197, 24, 19, 3, 60, 224, 66, 0, 9, 198, 81, 34, 67, 32, 80, 192, 20, 9, 198, 13, 80, 213,
+			72, 34, 84, 66, 9, 198, 4, 229, 9, 28, 20, 192, 67, 0, 10, 199, 80, 148, 129, 64, 145, 68, 36, 20, 10, 199, 16, 241, 5, 12,
+			17, 207, 56, 67, 6, 195, 12, 84, 192, 20, 10, 199, 12, 20, 193, 48, 35, 210, 20, 66, 9, 198, 5, 37, 5, 24, 144, 197, 21, 6,
+			195, 4, 34, 84, 65, 0, 7, 196, 76, 51, 208, 4, 21, 6, 131, 95, 195, 185, 43, 7, 196, 84, 192, 197, 72, 65, 7, 196, 76, 16,
+			200, 4, 66, 6, 195, 72, 244, 197, 66, 7, 196, 72, 83, 79, 72, 65, 7, 196, 64, 193, 66, 20, 20, 7, 196, 60, 48, 200, 36, 20,
+			7, 196, 52, 16, 193, 60, 66, 7, 196, 12, 16, 193, 60, 66, 0, 8, 197, 64, 20, 212, 20, 224, 65, 9, 198, 60, 211, 199, 20, 225,
+			79, 67, 8, 197, 24, 16, 137, 60, 192, 66, 0, 9, 198, 76, 83, 65, 24, 244, 128, 66, 9, 198, 36, 115, 137, 80, 244, 128, 65, 0,
+			13, 4, 95, 19, 20, 11, 71, 6, 35, 51, 16, 35, 0, 12, 201, 9, 35, 195, 12, 244, 212, 20, 195, 0, 21, 0, 7, 196, 76, 80,
+			207, 48, 20, 7, 196, 64, 240, 207, 48, 66, 0, 14, 4, 95, 1, 3, 21, 35, 49, 6, 40, 12, 47, 39, 0, 6, 131, 95, 195, 178,
+			43, 8, 197, 64, 84, 132, 37, 64, 65, 6, 195, 28, 83, 214, 65, 0, 6, 131, 95, 195, 179, 43, 9, 198, 100, 19, 213, 56, 65, 64,
+			68, 9, 198, 21, 65, 79, 12, 193, 64, 66, 9, 198, 8, 21, 9, 12, 193, 64, 65, 0, 10, 199, 64, 81, 9, 5, 68, 137, 4, 67,
+			0, 9, 198, 81, 84, 130, 60, 96, 78, 67, 7, 196, 72, 83, 79, 80, 20, 6, 195, 12, 84, 201, 20, 7, 196, 5, 33, 5, 4, 65,
+			7, 196, 4, 225, 207, 48, 66, 0, 8, 197, 77, 64, 83, 21, 32, 21, 12, 201, 76, 83, 80, 72, 85, 133, 72, 65, 64, 21, 6, 195,
+			48, 243, 0, 20, 0, 6, 194, 48, 240, 72, 9, 9, 198, 77, 81, 134, 21, 69, 0, 20, 9, 198, 76, 147, 132, 60, 225, 64, 65, 9,
+			198, 12, 194, 77, 20, 225, 64, 65, 0, 6, 131, 95, 195, 172, 43, 10, 199, 80, 83, 195, 72, 22, 137, 4, 68, 6, 195, 48, 241, 0,
+			20, 9, 198, 25, 37, 84, 80, 244, 201, 20, 10, 198, 12, 147, 133, 8, 246, 0, 67, 20, 6, 195, 12, 84, 212, 21, 10, 199, 5, 84,
+			212, 72, 20, 201, 4, 67, 10, 199, 5, 37, 5, 52, 148, 201, 4, 67, 0, 12, 201, 88, 147, 12, 5, 52, 5, 12, 147, 211, 21, 7,
+			196, 52, 16, 197, 72, 65, 7, 196, 8, 16, 197, 56, 21, 0, 8, 197, 69, 81, 83, 80, 16, 72, 8, 197, 88, 149, 129, 12, 80, 66,
+			8, 197, 65, 35, 197, 52, 144, 20, 8, 197, 56, 80, 195, 32, 144, 20, 8, 197, 52, 83, 133, 12, 208, 20, 8, 197, 24, 148, 195, 32,
+			144, 66, 8, 197, 21, 52, 197, 72, 80, 20, 8, 197, 16, 144, 68, 20, 208, 20, 8, 197, 12, 240, 195, 32, 144, 20, 9, 197, 8, 241,
+			77, 36, 16, 66, 20, 8, 197, 5, 81, 1, 12, 80, 67, 8, 197, 5, 49, 80, 76, 144, 20, 8, 197, 4, 212, 5, 72, 80, 66, 8,
+			197, 4, 195, 21, 12, 80, 65, 0, 10, 198, 76, 84, 85, 4, 226, 64, 65, 20, 9, 198, 72, 83, 211, 80, 21, 0, 66, 9, 198, 64,
+			84, 20, 36, 66, 64, 20, 9, 198, 36, 225, 207, 8, 34, 64, 20, 0, 14, 4, 95, 18, 14, 7, 35, 50, 6, 36, 55, 55, 39, 0,
+			6, 131, 95, 195, 168, 43, 10, 199, 81, 33, 80, 64, 145, 68, 20, 20, 10, 199, 76, 16, 197, 72, 67, 212, 20, 20, 9, 198, 52, 84,
+			211, 20, 226, 65, 20, 6, 195, 48, 245, 0, 20, 9, 198, 36, 98, 71, 20, 226, 65, 68, 9, 198, 16, 144, 82, 12, 130, 65, 67, 10,
+			199, 12, 244, 148, 20, 229, 79, 88, 20, 10, 199, 8, 244, 195, 36, 208, 78, 36, 66, 10, 199, 5, 32, 200, 36, 209, 68, 20, 20, 0,
+			6, 131, 95, 195, 169, 43, 7, 196, 48, 147, 79, 56, 66, 6, 195, 28, 84, 213, 66, 12, 201, 12, 20, 148, 36, 192, 71, 36, 225, 79,
+			68, 9, 198, 5, 84, 212, 72, 19, 0, 67, 0, 8, 197, 4, 115, 211, 80, 16, 65, 8, 197, 88, 244, 212, 72, 16, 72, 8, 197, 56,
+			244, 212, 72, 16, 72, 9, 198, 80, 19, 135, 4, 226, 67, 67, 8, 197, 61, 33, 9, 56, 80, 21, 8, 197, 52, 242, 5, 48, 144, 21,
+			8, 197, 20, 195, 209, 84, 144, 20, 8, 197, 4, 227, 205, 20, 144, 67, 0, 9, 198, 72, 145, 15, 48, 98, 64, 20, 9, 198, 72, 85,
+			15, 72, 34, 68, 21, 9, 198, 5, 37, 5, 72, 147, 204, 67, 0, 29, 67, 33, 69, 16, 6, 35, 49, 12, 35, 47, 4, 37, 12, 47,
+			4, 37, 12, 48, 6, 37, 12, 10, 0, 81, 58, 47, 47, 32, 9, 198, 72, 20, 19, 60, 66, 65, 67, 9, 198, 24, 149, 15, 24, 17,
+			201, 66, 10, 199, 12, 20, 142, 37, 99, 210, 36, 66, 0, 7, 196, 72, 241, 201, 80, 65, 7, 196, 24, 16, 197, 80, 20, 7, 196, 16,
+			145, 67, 36, 20, 11, 200, 12, 83, 148, 61, 2, 69, 16, 144, 20, 6, 195, 8, 244, 201, 20, 7, 196, 4, 192, 193, 52, 65, 12, 200,
+			4, 112, 77, 20, 227, 143, 56, 80, 67, 20, 0, 0, 0, 6, 131, 95, 195, 160, 43, 9, 198, 76, 19, 21, 16, 80, 201, 20, 9, 198,
+			52, 85, 1, 80, 84, 201, 66, 0, 12, 68, 48, 81, 199, 36, 55, 36, 75, 6, 37, 0, 10, 198, 104, 84, 16, 20, 194, 78, 65, 20,
+			7, 196, 76, 81, 199, 36, 20, 7, 196, 72, 16, 197, 52, 20, 7, 196, 52, 241, 199, 36, 20, 0, 9, 197, 52, 82, 206, 21, 48, 66,
+			20, 6, 195, 5, 32, 66, 65, 0, 9, 198, 64, 148, 137, 80, 243, 192, 66, 9, 198, 56, 20, 195, 61, 53, 0, 21, 0, 10, 199, 64,
+			148, 201, 77, 68, 129, 80, 66, 10, 199, 24, 147, 15, 77, 68, 129, 80, 66, 9, 198, 9, 34, 78, 16, 148, 201, 65, 0, 6, 195, 20,
+			32, 133, 72, 7, 196, 104, 17, 193, 72, 65, 7, 196, 80, 83, 80, 36, 20, 6, 195, 76, 241, 9, 20, 9, 198, 64, 20, 129, 29, 32,
+			70, 66, 6, 195, 60, 115, 9, 20, 7, 196, 24, 145, 193, 72, 65, 6, 195, 4, 32, 129, 66, 0, 8, 197, 77, 2, 78, 60, 192, 65,
+			0, 9, 198, 8, 20, 130, 21, 32, 64, 66, 9, 198, 77, 3, 210, 60, 98, 84, 66, 12, 201, 64, 84, 132, 5, 49, 5, 24, 241, 213,
+			20, 9, 198, 48, 144, 133, 73, 64, 64, 67, 9, 198, 12, 148, 18, 21, 52, 192, 20, 0, 7, 195, 21, 32, 64, 72, 9, 9, 198, 88,
+			84, 148, 20, 36, 133, 65, 6, 195, 64, 83, 12, 21, 0, 6, 195, 77, 83, 201, 72, 9, 198, 64, 243, 9, 77, 65, 78, 66, 7, 196,
+			61, 33, 129, 56, 65, 7, 196, 60, 49, 65, 56, 66, 7, 196, 52, 240, 200, 36, 20, 7, 196, 28, 129, 68, 36, 20, 11, 200, 21, 33,
+			207, 77, 65, 82, 60, 192, 68, 8, 196, 8, 145, 206, 20, 66, 20, 7, 196, 4, 225, 207, 72, 65, 7, 196, 4, 192, 207, 88, 20, 0,
+			8, 197, 76, 48, 84, 60, 192, 65, 12, 201, 65, 35, 212, 60, 49, 82, 20, 36, 128, 67, 0, 9, 198, 88, 84, 148, 20, 36, 128, 65,
+			0, 10, 199, 52, 245, 15, 13, 35, 211, 76, 67, 0, 7, 196, 64, 145, 67, 20, 20, 7, 196, 61, 33, 133, 36, 66, 6, 195, 5, 33,
+			65, 65, 0, 12, 201, 52, 19, 5, 88, 243, 5, 57, 160, 64, 8, 8, 197, 88, 84, 195, 61, 96, 65, 6, 195, 21, 33, 66, 65, 9,
+			197, 8, 244, 198, 61, 32, 65, 20, 0, 23, 4, 95, 1, 3, 50, 72, 6, 39, 48, 12, 37, 38, 39, 23, 35, 49, 6, 40, 12, 47,
+			39, 0, 9, 198, 76, 83, 137, 61, 33, 64, 20, 9, 198, 52, 20, 141, 61, 33, 64, 65, 9, 198, 16, 243, 3, 21, 69, 0, 21, 9,
+			198, 16, 144, 66, 21, 65, 64, 20, 0, 10, 199, 61, 37, 15, 64, 81, 9, 4, 68, 0, 6, 195, 20, 32, 137, 72, 7, 196, 64, 145,
+			68, 72, 20, 11, 200, 5, 32, 201, 88, 84, 195, 61, 96, 67, 0, 6, 195, 52, 243, 0, 20, 6, 195, 52, 243, 0, 20, 8, 197, 52,
+			20, 141, 5, 32, 65, 8, 197, 13, 34, 67, 21, 64, 20, 0, 9, 198, 5, 100, 133, 77, 65, 64, 72, 9, 198, 17, 84, 129, 57, 65,
+			64, 8, 9, 198, 81, 32, 68, 61, 69, 0, 21, 6, 195, 72, 244, 211, 21, 6, 195, 72, 244, 211, 21, 0, 9, 198, 77, 66, 71, 52,
+			21, 5, 65, 6, 195, 72, 244, 208, 20, 6, 195, 52, 241, 0, 20, 6, 195, 52, 241, 0, 20, 10, 199, 37, 51, 208, 76, 81, 137, 4,
+			68, 9, 198, 20, 228, 195, 32, 81, 5, 67, 9, 198, 12, 243, 85, 56, 149, 1, 68, 0, 7, 196, 76, 144, 77, 60, 72, 8, 196, 76,
+			244, 18, 4, 76, 28, 7, 196, 80, 83, 80, 20, 20, 9, 198, 76, 243, 1, 72, 243, 0, 67, 9, 198, 64, 243, 9, 28, 19, 0, 66,
+			7, 196, 52, 241, 193, 56, 65, 6, 195, 21, 33, 77, 65, 0, 8, 197, 4, 195, 15, 72, 16, 21, 8, 197, 5, 97, 83, 76, 144, 72,
+			8, 197, 81, 32, 66, 36, 16, 66, 8, 197, 76, 83, 73, 16, 144, 67, 9, 197, 76, 19, 15, 52, 80, 67, 20, 8, 197, 65, 35, 206,
+			4, 240, 20, 6, 195, 20, 32, 146, 20, 8, 197, 12, 20, 129, 12, 240, 67, 6, 195, 5, 33, 78, 21, 9, 198, 4, 193, 197, 9, 34,
+			67, 20, 0, 9, 198, 76, 147, 5, 57, 162, 64, 20, 6, 195, 76, 84, 211, 20, 9, 198, 52, 243, 143, 64, 244, 212, 21, 9, 198, 36,
+			228, 85, 36, 85, 0, 20, 9, 198, 8, 84, 130, 21, 34, 64, 65, 0, 7, 195, 21, 34, 64, 72, 9, 10, 199, 56, 242, 67, 5, 69,
+			1, 72, 67, 6, 195, 52, 245, 0, 20, 6, 195, 52, 245, 0, 20, 6, 195, 12, 243, 12, 21, 6, 195, 12, 243, 12, 21, 10, 199, 12,
+			20, 193, 80, 83, 143, 88, 20, 9, 198, 12, 20, 135, 20, 114, 5, 20, 10, 199, 12, 20, 1, 56, 227, 210, 36, 66, 9, 198, 4, 225,
+			137, 64, 243, 9, 66, 0, 7, 196, 76, 147, 85, 56, 66, 7, 196, 72, 85, 143, 12, 65, 9, 198, 52, 85, 1, 56, 243, 0, 67, 7,
+			196, 8, 86, 154, 36, 20, 7, 196, 4, 192, 207, 72, 66, 0, 8, 197, 64, 84, 211, 36, 208, 20, 9, 198, 52, 20, 141, 61, 33, 79,
+			66, 8, 197, 12, 130, 69, 76, 80, 20, 8, 197, 5, 160, 82, 36, 16, 67, 8, 197, 5, 96, 82, 36, 16, 67, 8, 197, 5, 37, 5,
+			52, 144, 20, 8, 197, 4, 224, 84, 20, 208, 20, 0, 9, 198, 5, 100, 133, 77, 66, 64, 72, 9, 198, 77, 1, 84, 81, 34, 64, 20,
+			14, 202, 56, 16, 149, 12, 241, 15, 56, 244, 207, 72, 68, 20, 9, 198, 52, 243, 132, 61, 98, 64, 67, 0, 12, 201, 76, 19, 80, 36,
+			84, 132, 5, 33, 78, 21, 9, 198, 65, 35, 199, 20, 226, 69, 20, 9, 198, 13, 35, 195, 21, 98, 65, 67, 9, 198, 12, 244, 132, 60,
+			115, 9, 20, 0, 7, 196, 76, 144, 78, 60, 72, 11, 200, 52, 19, 9, 56, 53, 79, 72, 80, 20, 11, 200, 48, 84, 212, 72, 145, 207,
+			56, 144, 66, 12, 201, 24, 245, 15, 20, 193, 84, 81, 34, 67, 20, 7, 196, 24, 81, 193, 80, 65, 7, 196, 21, 81, 5, 52, 20, 6,
+			195, 12, 243, 1, 66, 13, 68, 12, 144, 78, 60, 76, 6, 37, 35, 50, 39, 0, 7, 196, 9, 81, 129, 48, 65, 0, 0, 0, 6, 195,
+			77, 83, 192, 72, 9, 198, 81, 34, 83, 12, 83, 5, 65, 6, 195, 76, 243, 4, 20, 9, 198, 52, 20, 211, 20, 230, 137, 20, 10, 198,
+			37, 51, 211, 12, 83, 5, 66, 20, 9, 198, 24, 80, 130, 72, 147, 5, 66, 10, 199, 20, 51, 211, 37, 53, 5, 52, 20, 9, 198, 5,
+			4, 18, 60, 48, 201, 20, 0, 7, 196, 76, 17, 193, 52, 65, 7, 196, 64, 81, 199, 36, 20, 7, 196, 61, 32, 137, 80, 65, 7, 196,
+			4, 225, 197, 48, 65, 7, 196, 4, 225, 197, 48, 65, 0, 0, 0, 10, 199, 65, 34, 86, 36, 193, 71, 36, 20, 9, 198, 64, 147, 143,
+			12, 50, 9, 20, 10, 199, 8, 17, 206, 61, 33, 71, 36, 20, 0, 7, 196, 88, 84, 18, 20, 20, 8, 196, 60, 96, 78, 80, 65, 20,
+			7, 196, 24, 147, 206, 16, 21, 7, 196, 20, 227, 206, 20, 20, 6, 195, 12, 245, 9, 20, 6, 195, 8, 19, 9, 66, 7, 196, 4, 112,
+			86, 20, 65, 0, 8, 197, 56, 83, 77, 20, 224, 21, 8, 197, 52, 21, 18, 60, 224, 20, 8, 197, 20, 117, 77, 20, 224, 66, 10, 198,
+			5, 33, 197, 57, 65, 79, 66, 20, 0, 9, 198, 64, 241, 5, 77, 64, 64, 67, 0, 10, 199, 76, 83, 5, 84, 50, 68, 36, 66, 9,
+			198, 52, 81, 193, 64, 241, 9, 20, 10, 199, 20, 194, 67, 61, 69, 5, 72, 20, 9, 198, 12, 243, 150, 60, 115, 9, 20, 0, 7, 196,
+			16, 81, 204, 36, 72, 7, 196, 16, 17, 204, 36, 72, 7, 196, 76, 21, 143, 12, 65, 7, 195, 72, 20, 5, 66, 20, 6, 195, 56, 21,
+			9, 66, 6, 195, 28, 245, 9, 20, 6, 195, 13, 83, 201, 20, 0, 8, 197, 88, 22, 154, 60, 192, 66, 8, 197, 61, 34, 71, 4, 224,
+			66, 8, 197, 24, 20, 147, 4, 192, 65, 8, 197, 12, 20, 211, 4, 192, 65, 0, 9, 198, 81, 34, 78, 37, 64, 64, 67, 9, 198, 24,
+			19, 13, 20, 229, 0, 20, 9, 198, 12, 243, 135, 20, 226, 84, 66, 9, 198, 12, 21, 20, 20, 68, 128, 65, 0, 9, 198, 24, 147, 9,
+			77, 65, 73, 67, 0, 6, 195, 24, 21, 5, 76, 6, 195, 88, 21, 5, 66, 7, 196, 76, 209, 71, 52, 20, 6, 195, 64, 84, 9, 20,
+			7, 196, 48, 19, 73, 4, 65, 0, 9, 198, 88, 145, 5, 61, 65, 67, 20, 8, 197, 52, 16, 193, 9, 32, 65, 9, 198, 28, 148, 19,
+			61, 65, 67, 20, 8, 197, 20, 193, 84, 81, 32, 20, 8, 197, 20, 193, 84, 81, 32, 20, 0, 9, 198, 52, 20, 148, 37, 33, 64, 65,
+			9, 198, 49, 81, 213, 9, 33, 64, 65, 9, 198, 12, 83, 5, 9, 33, 64, 65, 0, 10, 199, 76, 81, 206, 5, 3, 211, 80, 21, 9,
+			198, 65, 32, 83, 76, 81, 5, 20, 9, 198, 48, 144, 207, 52, 81, 5, 20, 10, 199, 20, 229, 21, 76, 144, 83, 52, 68, 10, 199, 16,
+			148, 212, 72, 241, 137, 4, 67, 9, 198, 12, 19, 148, 4, 36, 137, 65, 9, 198, 12, 19, 1, 52, 149, 1, 68, 0, 7, 196, 80, 83,
+			80, 72, 20, 12, 201, 72, 240, 195, 4, 115, 15, 72, 147, 211, 21, 6, 195, 72, 21, 5, 66, 9, 198, 20, 225, 15, 13, 34, 78, 66,
+			7, 196, 16, 145, 68, 72, 20, 6, 195, 12, 245, 5, 20, 7, 196, 12, 243, 79, 16, 65, 7, 196, 8, 145, 201, 4, 65, 7, 196, 4,
+			194, 67, 20, 66, 0, 8, 197, 77, 81, 200, 21, 32, 65, 8, 197, 72, 148, 18, 61, 96, 20, 8, 197, 72, 145, 15, 81, 64, 21, 12,
+			201, 64, 144, 90, 104, 21, 15, 73, 33, 64, 21, 6, 195, 56, 243, 0, 20, 8, 197, 37, 51, 194, 5, 32, 66, 8, 197, 12, 243, 12,
+			21, 32, 20, 0, 7, 66, 56, 240, 50, 110, 0, 9, 198, 5, 97, 86, 5, 65, 64, 72, 9, 198, 21, 32, 86, 5, 65, 64, 72, 5,
+			194, 76, 80, 8, 9, 198, 61, 69, 15, 9, 33, 64, 21, 5, 194, 60, 208, 20, 0, 9, 198, 65, 34, 78, 12, 148, 9, 65, 9, 198,
+			72, 19, 143, 12, 50, 9, 20, 9, 198, 65, 34, 78, 12, 148, 9, 66, 10, 199, 64, 243, 148, 20, 98, 67, 20, 21, 6, 195, 56, 241,
+			0, 20, 9, 198, 28, 195, 212, 80, 145, 5, 20, 10, 199, 16, 241, 5, 12, 17, 68, 72, 20, 10, 199, 12, 243, 147, 20, 194, 67, 20,
+			21, 9, 198, 12, 19, 69, 24, 149, 5, 66, 10, 199, 5, 4, 5, 56, 66, 67, 20, 67, 0, 7, 196, 72, 144, 201, 56, 65, 8, 196,
+			64, 80, 207, 72, 65, 20, 7, 196, 52, 242, 197, 56, 20, 8, 196, 20, 48, 84, 20, 65, 20, 7, 196, 12, 144, 197, 72, 65, 7, 196,
+			5, 33, 1, 72, 65, 7, 196, 4, 48, 82, 36, 65, 0, 9, 197, 88, 144, 193, 72, 144, 65, 9, 8, 197, 5, 97, 83, 80, 80, 72,
+			8, 197, 5, 97, 83, 80, 80, 72, 8, 197, 69, 81, 83, 80, 80, 72, 14, 2, 194, 163, 89, 47, 36, 34, 55, 6, 37, 50, 35, 0,
+			8, 197, 104, 145, 207, 80, 80, 20, 8, 197, 88, 240, 130, 36, 16, 20, 8, 197, 84, 226, 86, 60, 48, 66, 8, 197, 80, 19, 73, 28,
+			144, 66, 12, 201, 65, 33, 77, 36, 192, 213, 61, 33, 64, 20, 8, 197, 64, 84, 135, 4, 208, 65, 9, 197, 64, 80, 193, 72, 144, 65,
+			20, 8, 197, 37, 69, 9, 72, 144, 65, 8, 197, 5, 48, 193, 72, 144, 65, 0, 9, 198, 80, 147, 132, 5, 34, 64, 65, 9, 198, 80,
+			20, 148, 5, 34, 64, 65, 9, 198, 65, 33, 83, 21, 2, 64, 20, 9, 198, 36, 195, 5, 12, 149, 0, 66, 13, 202, 36, 51, 211, 37,
+			65, 84, 72, 17, 68, 72, 20, 10, 198, 17, 33, 78, 28, 245, 0, 66, 20, 9, 198, 16, 148, 208, 5, 34, 64, 65, 9, 198, 5, 52,
+			197, 57, 162, 64, 20, 0, 10, 198, 88, 84, 218, 65, 33, 77, 66, 21, 10, 199, 76, 83, 5, 84, 50, 68, 20, 66, 6, 195, 56, 245,
+			0, 20, 6, 195, 56, 245, 0, 20, 9, 198, 52, 243, 146, 61, 98, 65, 20, 9, 198, 37, 51, 212, 61, 2, 65, 68, 9, 198, 24, 84,
+			146, 61, 98, 65, 67, 6, 195, 12, 244, 20, 20, 9, 198, 12, 244, 5, 64, 241, 9, 20, 0, 16, 7, 3, 12, 9, 3, 8, 195, 169,
+			49, 55, 37, 12, 91, 36, 0, 7, 196, 80, 83, 80, 48, 20, 9, 198, 76, 50, 65, 8, 243, 0, 65, 11, 200, 72, 244, 1, 48, 240,
+			197, 72, 144, 67, 11, 200, 53, 83, 20, 36, 85, 14, 36, 48, 20, 11, 200, 37, 1, 82, 76, 243, 142, 36, 16, 68, 7, 196, 28, 83,
+			73, 56, 65, 0, 8, 197, 5, 97, 77, 52, 240, 72, 6, 195, 77, 83, 0, 72, 8, 197, 88, 244, 212, 72, 80, 72, 8, 197, 56, 244,
+			212, 72, 80, 72, 9, 198, 76, 243, 12, 21, 66, 67, 21, 8, 197, 37, 35, 206, 36, 16, 67, 8, 197, 4, 65, 15, 52, 80, 20, 0,
+			6, 194, 77, 80, 72, 9, 9, 198, 77, 68, 143, 57, 162, 64, 20, 12, 201, 64, 145, 84, 72, 20, 5, 73, 162, 65, 68, 12, 201, 52,
+			84, 137, 80, 240, 210, 5, 162, 65, 69, 12, 201, 37, 1, 82, 52, 85, 18, 61, 2, 65, 69, 9, 198, 25, 84, 142, 5, 34, 64, 65,
+			9, 198, 8, 148, 212, 85, 34, 64, 65, 12, 201, 5, 34, 83, 80, 240, 210, 5, 162, 65, 69, 0, 9, 198, 65, 35, 198, 21, 162, 65,
+			67, 9, 198, 64, 244, 134, 37, 34, 65, 67, 9, 198, 52, 241, 5, 77, 66, 65, 66, 6, 195, 48, 85, 20, 20, 9, 198, 20, 229, 1,
+			49, 2, 65, 67, 9, 198, 12, 20, 208, 21, 34, 65, 66, 9, 198, 4, 195, 5, 29, 34, 65, 67, 0, 7, 196, 80, 16, 201, 80, 65,
+			7, 196, 72, 80, 201, 80, 65, 9, 198, 36, 51, 211, 4, 81, 18, 20, 7, 196, 28, 227, 205, 20, 20, 0, 15, 204, 76, 240, 201, 4,
+			193, 5, 52, 240, 210, 5, 162, 65, 70, 9, 198, 12, 20, 15, 49, 83, 199, 20, 0, 9, 198, 36, 225, 9, 72, 85, 20, 20, 9, 198,
+			16, 148, 208, 61, 53, 0, 21, 9, 198, 9, 32, 67, 12, 85, 20, 21, 0, 13, 2, 194, 169, 49, 6, 39, 48, 37, 34, 117, 47, 0,
+			9, 198, 85, 65, 78, 76, 147, 5, 67, 9, 198, 52, 19, 143, 12, 50, 9, 20, 0, 0, 6, 195, 72, 16, 66, 66, 0, 12, 201, 72,
+			243, 80, 37, 48, 193, 80, 243, 5, 67, 9, 198, 60, 193, 79, 16, 245, 20, 21, 9, 198, 12, 19, 1, 76, 85, 20, 20, 0, 0, 7,
+			196, 64, 244, 16, 36, 21, 6, 195, 21, 32, 133, 66, 0, 8, 197, 100, 18, 23, 20, 128, 66, 8, 197, 12, 20, 131, 4, 224, 65, 0,
+			7, 2, 195, 168, 109, 0, 72, 9, 198, 76, 50, 79, 88, 144, 64, 66, 9, 198, 12, 84, 131, 32, 144, 64, 21, 9, 198, 4, 195, 5,
+			48, 144, 64, 67, 9, 198, 4, 193, 83, 76, 144, 64, 67, 0, 9, 198, 16, 80, 193, 64, 243, 9, 66, 0, 8, 196, 8, 17, 204, 36,
+			66, 9, 8, 196, 88, 84, 147, 60, 76, 28, 6, 195, 80, 83, 73, 20, 7, 196, 76, 21, 9, 72, 65, 7, 196, 64, 21, 9, 56, 65,
+			7, 196, 56, 147, 194, 20, 65, 8, 196, 24, 83, 73, 56, 65, 21, 7, 196, 12, 130, 78, 20, 66, 7, 196, 12, 130, 69, 76, 20, 12,
+			68, 8, 17, 204, 36, 71, 35, 61, 6, 37, 0, 0, 8, 197, 77, 2, 71, 60, 192, 65, 8, 197, 72, 20, 19, 60, 64, 66, 8, 197,
+			72, 20, 19, 60, 64, 20, 12, 201, 65, 50, 67, 32, 144, 84, 72, 144, 64, 67, 8, 197, 56, 245, 77, 20, 224, 66, 8, 197, 8, 19,
+			194, 4, 32, 67, 0, 9, 198, 80, 84, 129, 64, 144, 64, 67, 9, 198, 77, 3, 199, 48, 144, 64, 20, 9, 198, 76, 147, 79, 56, 144,
+			64, 67, 9, 198, 76, 19, 147, 13, 34, 84, 65, 9, 198, 76, 19, 65, 72, 144, 64, 67, 9, 198, 52, 243, 143, 16, 144, 64, 67, 9,
+			198, 21, 52, 12, 36, 50, 84, 66, 9, 198, 20, 208, 143, 48, 144, 64, 67, 9, 198, 5, 68, 143, 24, 144, 64, 67, 0, 8, 67, 4,
+			49, 64, 21, 0, 10, 10, 199, 76, 85, 20, 20, 208, 146, 20, 20, 9, 198, 36, 208, 146, 60, 115, 9, 20, 0, 14, 4, 95, 3, 5,
+			4, 76, 36, 72, 6, 37, 61, 35, 0, 9, 198, 88, 147, 12, 5, 51, 210, 67, 6, 195, 80, 83, 85, 66, 8, 196, 12, 130, 79, 16,
+			66, 20, 15, 204, 4, 229, 9, 65, 50, 67, 32, 144, 84, 72, 144, 64, 69, 0, 13, 201, 88, 19, 12, 20, 52, 143, 76, 144, 64, 67,
+			20, 8, 197, 80, 20, 129, 57, 64, 65, 8, 197, 77, 1, 84, 81, 32, 20, 12, 201, 56, 80, 210, 60, 208, 78, 104, 144, 64, 68, 12,
+			201, 36, 68, 143, 80, 84, 129, 64, 144, 64, 69, 12, 201, 24, 149, 15, 80, 84, 129, 64, 144, 64, 69, 12, 201, 16, 148, 208, 5, 33,
+			85, 56, 144, 64, 69, 12, 201, 12, 193, 80, 80, 243, 65, 56, 144, 64, 68, 8, 197, 12, 19, 148, 21, 32, 65, 8, 197, 12, 17, 134,
+			5, 32, 65, 12, 201, 5, 37, 5, 80, 84, 129, 64, 144, 64, 69, 0, 9, 198, 72, 148, 208, 21, 69, 0, 20, 9, 198, 16, 83, 148,
+			36, 49, 64, 20, 9, 198, 12, 243, 12, 21, 69, 0, 20, 0, 18, 4, 95, 12, 9, 7, 55, 4, 36, 81, 35, 47, 6, 40, 12, 51,
+			35, 0, 6, 195, 80, 83, 80, 20, 9, 198, 48, 21, 82, 20, 230, 137, 20, 10, 199, 36, 67, 204, 5, 68, 137, 4, 68, 9, 198, 28,
+			147, 143, 12, 50, 9, 20, 10, 199, 4, 227, 210, 21, 52, 201, 4, 68, 10, 199, 4, 208, 140, 36, 244, 9, 4, 68, 0, 7, 196, 76,
+			51, 210, 76, 21, 9, 198, 12, 84, 131, 60, 49, 66, 20, 8, 196, 12, 17, 206, 60, 66, 20, 0, 6, 195, 80, 83, 0, 21, 8, 197,
+			56, 81, 210, 5, 32, 66, 6, 195, 48, 83, 78, 20, 6, 195, 36, 48, 82, 65, 8, 197, 5, 65, 76, 21, 64, 20, 6, 195, 4, 48,
+			82, 65, 0, 5, 194, 80, 80, 20, 0, 7, 195, 12, 242, 64, 72, 9, 10, 199, 56, 245, 20, 21, 65, 77, 64, 20, 9, 198, 24, 147,
+			143, 12, 50, 9, 20, 10, 199, 20, 229, 21, 76, 144, 83, 80, 68, 10, 199, 12, 20, 142, 20, 98, 67, 20, 21, 0, 7, 196, 4, 224,
+			200, 20, 8, 11, 200, 80, 84, 154, 60, 113, 78, 37, 64, 67, 7, 196, 76, 85, 20, 20, 20, 7, 196, 76, 84, 18, 36, 20, 7, 196,
+			52, 81, 193, 72, 65, 6, 195, 28, 243, 77, 21, 6, 195, 28, 227, 205, 20, 14, 68, 24, 18, 78, 4, 83, 35, 6, 37, 12, 50, 35,
+			0, 0, 8, 197, 5, 100, 133, 52, 240, 72, 8, 197, 76, 20, 133, 52, 240, 72, 8, 197, 76, 21, 18, 5, 0, 65, 8, 197, 29, 32,
+			70, 20, 208, 20, 15, 69, 24, 197, 73, 16, 240, 83, 55, 6, 40, 37, 72, 39, 0, 8, 197, 20, 227, 212, 20, 48, 20, 8, 197, 12,
+			19, 143, 56, 80, 65, 8, 197, 12, 16, 195, 4, 208, 65, 0, 9, 198, 85, 38, 149, 48, 82, 64, 67, 13, 202, 81, 32, 78, 76, 48,
+			85, 12, 20, 201, 4, 68, 9, 198, 60, 195, 15, 48, 18, 64, 67, 9, 198, 56, 148, 195, 20, 210, 64, 20, 10, 198, 21, 52, 197, 72,
+			50, 64, 65, 20, 9, 198, 5, 51, 79, 56, 82, 64, 67, 0, 6, 195, 24, 18, 64, 76, 6, 195, 16, 82, 64, 72, 7, 195, 48, 82,
+			64, 76, 9, 10, 199, 64, 243, 9, 20, 68, 137, 12, 20, 10, 199, 24, 147, 15, 81, 65, 84, 20, 20, 10, 198, 12, 19, 66, 60, 114,
+			65, 66, 20, 0, 7, 196, 84, 197, 18, 4, 66, 6, 195, 76, 243, 77, 21, 7, 196, 60, 225, 193, 72, 65, 7, 196, 48, 19, 79, 56,
+			66, 7, 196, 16, 243, 73, 56, 65, 7, 196, 4, 194, 66, 36, 65, 0, 6, 195, 76, 227, 194, 20, 8, 197, 72, 245, 133, 72, 80, 21,
+			8, 197, 72, 81, 21, 12, 80, 65, 12, 201, 69, 80, 84, 80, 244, 132, 36, 50, 64, 21, 9, 198, 64, 19, 131, 72, 80, 83, 65, 8,
+			197, 21, 49, 77, 64, 144, 20, 9, 197, 16, 240, 204, 20, 16, 65, 20, 6, 195, 4, 49, 82, 65, 0, 8, 67, 4, 49, 83, 21, 0,
+			10, 6, 194, 81, 80, 76, 9, 9, 198, 64, 148, 133, 56, 82, 64, 67, 9, 198, 61, 35, 204, 60, 114, 64, 20, 9, 198, 52, 243, 143,
+			48, 149, 0, 66, 9, 198, 12, 19, 129, 104, 82, 64, 67, 9, 198, 12, 19, 79, 76, 50, 64, 20, 9, 198, 8, 148, 143, 12, 50, 64,
+			20, 9, 198, 4, 208, 146, 60, 114, 64, 20, 0, 10, 199, 77, 66, 76, 60, 32, 84, 20, 66, 6, 195, 76, 243, 64, 20, 9, 198, 24,
+			84, 137, 80, 242, 65, 21, 6, 195, 8, 145, 84, 20, 0, 11, 200, 80, 20, 129, 57, 64, 83, 36, 16, 67, 7, 196, 76, 84, 19, 36,
+			20, 11, 200, 76, 19, 9, 76, 49, 78, 16, 144, 21, 7, 196, 13, 80, 137, 80, 65, 9, 198, 4, 229, 9, 64, 21, 18, 66, 11, 200,
+			4, 229, 9, 56, 49, 78, 16, 144, 20, 9, 198, 4, 225, 18, 60, 114, 78, 66, 0, 7, 195, 20, 50, 74, 65, 21, 6, 195, 4, 50,
+			78, 65, 0, 10, 198, 48, 147, 134, 60, 227, 196, 67, 20, 0, 6, 195, 76, 227, 196, 20, 6, 195, 64, 85, 20, 20, 10, 199, 36, 65,
+			78, 80, 146, 201, 80, 68, 6, 195, 36, 49, 84, 65, 11, 199, 12, 244, 132, 20, 227, 206, 76, 67, 20, 10, 199, 12, 19, 142, 4, 195,
+			206, 28, 20, 10, 199, 4, 229, 9, 76, 84, 19, 36, 20, 0, 5, 195, 12, 243, 69, 9, 198, 88, 243, 20, 52, 85, 18, 65, 7, 196,
+			28, 83, 73, 80, 65, 0, 8, 197, 12, 244, 148, 21, 48, 66, 0, 9, 198, 20, 225, 137, 76, 83, 64, 20, 0, 9, 198, 88, 83, 12,
+			21, 68, 137, 21, 10, 199, 80, 84, 141, 61, 53, 1, 80, 66, 0, 7, 196, 80, 85, 20, 36, 20, 10, 198, 64, 148, 143, 76, 48, 70,
+			66, 20, 7, 196, 8, 243, 66, 20, 66, 0, 8, 197, 80, 244, 130, 36, 64, 21, 8, 197, 80, 147, 80, 4, 224, 65, 8, 197, 80, 19,
+			148, 4, 192, 65, 12, 201, 69, 82, 78, 16, 144, 197, 76, 147, 64, 20, 8, 197, 13, 35, 212, 4, 192, 65, 8, 197, 5, 84, 133, 60,
+			192, 67, 0, 9, 198, 76, 147, 143, 64, 144, 64, 20, 9, 198, 72, 149, 137, 56, 50, 84, 66, 9, 198, 65, 83, 9, 104, 144, 64, 67,
+			9, 198, 36, 225, 129, 52, 144, 64, 66, 9, 198, 21, 128, 197, 57, 68, 128, 20, 9, 198, 21, 84, 129, 76, 144, 64, 67, 9, 198, 21,
+			52, 5, 72, 144, 64, 66, 9, 198, 5, 53, 5, 72, 144, 64, 66, 10, 198, 5, 33, 5, 76, 144, 64, 66, 20, 0, 0, 7, 196, 72,
+			85, 9, 56, 65, 8, 196, 52, 22, 154, 20, 66, 20, 7, 196, 48, 19, 73, 56, 65, 0, 8, 197, 88, 19, 132, 4, 192, 65, 8, 197,
+			76, 19, 132, 4, 192, 65, 12, 201, 52, 84, 207, 64, 245, 1, 52, 144, 64, 68, 12, 201, 5, 85, 15, 12, 81, 129, 48, 144, 64, 70,
+			0, 9, 198, 73, 85, 5, 56, 144, 64, 20, 9, 198, 72, 147, 129, 76, 50, 84, 66, 9, 198, 65, 32, 83, 76, 80, 64, 65, 9, 198,
+			64, 20, 143, 16, 144, 64, 67, 9, 198, 24, 192, 77, 20, 224, 192, 21, 7, 195, 21, 36, 143, 66, 20, 10, 198, 16, 243, 15, 52, 144,
+			64, 66, 20, 9, 198, 5, 53, 5, 56, 144, 64, 67, 9, 198, 4, 193, 207, 88, 144, 64, 20, 0, 10, 199, 76, 53, 79, 48, 16, 149,
+			76, 67, 0, 9, 198, 24, 244, 211, 4, 227, 214, 20, 9, 198, 12, 20, 144, 60, 99, 210, 66, 7, 196, 4, 226, 68, 72, 65, 0, 8,
+			197, 81, 32, 70, 61, 32, 21, 12, 201, 80, 16, 200, 36, 48, 82, 16, 144, 64, 68, 12, 201, 52, 148, 195, 20, 195, 1, 56, 80, 64,
+			67, 7, 195, 20, 53, 66, 65, 20, 12, 201, 9, 32, 68, 36, 48, 82, 16, 144, 64, 68, 0, 6, 195, 48, 85, 67, 65, 0, 10, 199,
+			16, 145, 204, 61, 52, 201, 4, 67, 0, 6, 195, 64, 242, 0, 20, 7, 196, 8, 80, 82, 56, 21, 0, 8, 197, 81, 34, 77, 21, 32,
+			65, 8, 197, 81, 34, 70, 61, 32, 65, 6, 195, 64, 243, 0, 20, 8, 197, 37, 51, 205, 21, 32, 66, 8, 197, 16, 148, 208, 85, 64,
+			65, 8, 197, 9, 83, 7, 5, 32, 65, 0, 6, 194, 76, 144, 76, 9, 9, 198, 76, 241, 134, 36, 49, 64, 20, 9, 198, 64, 84, 142,
+			36, 49, 64, 66, 9, 198, 56, 20, 148, 20, 49, 64, 20, 9, 198, 52, 20, 211, 36, 209, 64, 65, 9, 198, 37, 53, 18, 36, 49, 64,
+			65, 9, 198, 24, 244, 142, 4, 49, 64, 66, 0, 10, 199, 76, 96, 67, 80, 84, 137, 4, 66, 10, 199, 29, 82, 68, 37, 166, 143, 48,
+			67, 10, 199, 29, 81, 82, 72, 18, 79, 48, 21, 0, 13, 68, 24, 145, 82, 36, 83, 6, 37, 36, 51, 37, 0, 7, 196, 64, 84, 149,
+			56, 66, 7, 196, 12, 243, 73, 76, 65, 7, 196, 12, 147, 69, 28, 65, 9, 198, 4, 100, 129, 28, 243, 0, 21, 0, 8, 197, 5, 97,
+			83, 80, 144, 72, 8, 197, 69, 81, 83, 80, 144, 72, 8, 197, 52, 243, 143, 52, 144, 20, 8, 197, 48, 84, 194, 36, 48, 20, 8, 197,
+			12, 83, 9, 56, 80, 21, 8, 197, 8, 244, 135, 36, 16, 65, 0, 9, 198, 76, 19, 85, 72, 18, 64, 67, 6, 195, 64, 244, 0, 20,
+			9, 198, 5, 69, 5, 56, 67, 204, 20, 0, 9, 198, 52, 147, 137, 52, 22, 0, 67, 10, 199, 25, 33, 67, 12, 85, 20, 20, 21, 9,
+			198, 5, 36, 143, 76, 50, 65, 20, 9, 198, 4, 225, 207, 76, 50, 65, 20, 0, 11, 200, 88, 83, 148, 37, 49, 84, 80, 80, 20, 7,
+			196, 80, 244, 142, 36, 21, 9, 198, 52, 20, 129, 80, 131, 206, 67, 7, 196, 24, 147, 79, 56, 66, 7, 196, 20, 66, 76, 20, 66, 0,
+			8, 197, 88, 244, 212, 72, 144, 72, 8, 197, 56, 244, 212, 72, 144, 72, 8, 197, 73, 80, 146, 36, 48, 66, 8, 197, 56, 84, 212, 48,
+			80, 66, 8, 197, 52, 20, 147, 36, 16, 65, 9, 197, 21, 69, 15, 72, 80, 65, 20, 8, 197, 21, 51, 198, 4, 112, 66, 8, 197, 12,
+			243, 12, 20, 112, 20, 8, 197, 12, 80, 201, 80, 16, 67, 9, 198, 12, 20, 148, 4, 49, 79, 66, 0, 9, 198, 72, 245, 133, 76, 50,
+			64, 20, 14, 202, 52, 243, 148, 20, 51, 205, 64, 21, 18, 36, 67, 20, 9, 198, 52, 19, 132, 36, 35, 204, 66, 9, 198, 21, 32, 67,
+			48, 149, 0, 66, 0, 7, 2, 95, 1, 35, 12, 0, 14, 203, 88, 147, 12, 4, 208, 83, 76, 20, 135, 36, 16, 68, 9, 198, 85, 53,
+			1, 76, 50, 65, 65, 9, 198, 72, 245, 133, 76, 50, 65, 20, 20, 71, 12, 20, 129, 36, 34, 67, 60, 49, 35, 51, 35, 6, 37, 71,
+			37, 49, 39, 0, 10, 199, 12, 19, 142, 36, 32, 76, 20, 66, 10, 199, 12, 19, 80, 4, 226, 76, 20, 67, 19, 70, 4, 195, 208, 20,
+			50, 65, 35, 55, 39, 48, 36, 76, 6, 37, 12, 35, 0, 0, 11, 200, 80, 83, 80, 61, 32, 78, 20, 240, 67, 7, 196, 24, 195, 197,
+			52, 20, 0, 12, 201, 52, 20, 148, 37, 35, 204, 60, 114, 64, 20, 0, 17, 70, 88, 82, 67, 60, 195, 192, 84, 109, 6, 37, 49, 39,
+			55, 39, 0, 9, 198, 65, 35, 194, 48, 83, 64, 20, 9, 198, 21, 48, 78, 80, 83, 64, 20, 0, 7, 2, 95, 5, 36, 12, 0, 10,
+			199, 20, 225, 137, 80, 85, 83, 36, 67, 0, 7, 196, 88, 243, 73, 80, 65, 7, 196, 76, 83, 69, 48, 20, 0, 8, 197, 16, 147, 206,
+			37, 48, 66, 0, 7, 2, 95, 9, 37, 12, 0, 9, 198, 64, 84, 137, 20, 113, 84, 20, 0, 10, 199, 61, 35, 199, 20, 225, 83, 36,
+			67, 6, 195, 36, 65, 9, 66, 6, 195, 8, 16, 129, 66, 0, 7, 2, 95, 15, 110, 12, 0, 6, 195, 44, 240, 128, 20, 6, 195, 12,
+			240, 128, 20, 0, 7, 196, 76, 35, 195, 12, 21, 7, 196, 56, 147, 69, 28, 20, 6, 195, 21, 48, 67, 20, 12, 201, 16, 144, 201, 61,
+			69, 5, 76, 147, 64, 20, 8, 196, 12, 131, 195, 60, 66, 20, 7, 196, 8, 147, 206, 16, 21, 0, 8, 197, 88, 242, 86, 60, 64, 20,
+			8, 197, 76, 244, 135, 60, 224, 65, 6, 195, 64, 83, 142, 21, 0, 9, 198, 72, 243, 65, 56, 144, 64, 67, 9, 198, 12, 243, 131, 61,
+			36, 192, 21, 0, 6, 195, 81, 80, 64, 72, 10, 199, 12, 192, 90, 60, 209, 78, 20, 66, 10, 198, 8, 243, 148, 20, 35, 203, 65, 20,
+			0, 7, 196, 88, 243, 69, 72, 65, 7, 196, 88, 84, 142, 20, 66, 8, 196, 80, 83, 69, 56, 65, 20, 7, 196, 76, 19, 65, 72, 65,
+			12, 200, 52, 243, 148, 20, 66, 83, 60, 224, 66, 20, 7, 196, 52, 81, 204, 36, 20, 7, 196, 13, 83, 133, 60, 65, 7, 196, 12, 19,
+			65, 72, 65, 0, 8, 197, 104, 244, 16, 60, 192, 20, 12, 201, 80, 80, 200, 56, 144, 207, 48, 244, 128, 20, 8, 197, 72, 149, 15, 72,
+			224, 21, 8, 197, 60, 210, 67, 36, 64, 67, 8, 197, 56, 84, 208, 60, 192, 20, 8, 197, 45, 84, 149, 52, 32, 65, 8, 197, 40, 244,
+			16, 60, 192, 20, 9, 198, 12, 243, 12, 61, 21, 73, 20, 8, 197, 12, 20, 144, 36, 224, 65, 0, 9, 198, 53, 83, 20, 37, 3, 0,
+			65, 9, 198, 52, 16, 207, 52, 84, 128, 67, 9, 198, 12, 243, 137, 24, 84, 128, 66, 10, 198, 12, 243, 135, 73, 80, 64, 65, 20, 9,
+			198, 4, 208, 82, 12, 244, 132, 67, 0, 10, 199, 104, 20, 15, 80, 80, 200, 36, 20, 10, 199, 9, 33, 78, 80, 243, 137, 12, 21, 10,
+			199, 4, 229, 9, 12, 19, 69, 72, 67, 0, 11, 200, 64, 144, 78, 80, 84, 146, 20, 224, 21, 0, 7, 2, 95, 21, 40, 12, 0, 9,
+			198, 88, 83, 148, 21, 50, 77, 20, 9, 197, 44, 84, 139, 101, 32, 65, 21, 9, 198, 12, 83, 148, 21, 50, 77, 20, 0, 9, 198, 12,
+			243, 137, 84, 113, 64, 65, 0, 6, 195, 81, 81, 64, 72, 6, 195, 88, 83, 0, 21, 6, 195, 88, 83, 0, 21, 10, 199, 12, 16, 200,
+			21, 52, 201, 4, 67, 0, 7, 196, 64, 84, 195, 20, 21, 8, 196, 52, 84, 201, 4, 65, 20, 0, 8, 197, 104, 147, 135, 5, 32, 65,
+			8, 197, 60, 113, 197, 81, 64, 20, 8, 197, 52, 20, 148, 61, 32, 65, 8, 197, 52, 19, 77, 85, 64, 66, 6, 195, 28, 243, 142, 21,
+			0, 6, 194, 80, 144, 76, 9, 9, 198, 72, 19, 69, 77, 49, 64, 20, 9, 198, 64, 83, 137, 76, 243, 0, 66, 6, 195, 61, 101, 137,
+			20, 9, 198, 24, 144, 193, 72, 243, 0, 67, 6, 195, 4, 65, 9, 66, 0, 10, 199, 5, 100, 133, 8, 33, 82, 60, 72, 10, 199, 28,
+			243, 9, 5, 33, 9, 4, 68, 10, 198, 8, 80, 84, 72, 150, 0, 65, 21, 11, 199, 5, 21, 73, 48, 81, 201, 4, 67, 20, 0, 6,
+			195, 76, 243, 143, 72, 6, 195, 76, 243, 143, 72, 7, 196, 4, 195, 69, 56, 21, 0, 6, 195, 88, 85, 0, 20, 8, 197, 80, 17, 4,
+			20, 144, 66, 6, 195, 76, 243, 142, 21, 9, 197, 76, 83, 143, 56, 144, 65, 20, 9, 198, 28, 19, 66, 85, 50, 65, 66, 8, 197, 16,
+			83, 79, 56, 80, 20, 6, 195, 12, 243, 142, 21, 8, 197, 12, 19, 137, 48, 80, 66, 9, 198, 5, 4, 129, 77, 50, 65, 67, 0, 6,
+			195, 28, 243, 137, 20, 9, 198, 16, 144, 76, 37, 50, 64, 66, 0, 7, 195, 49, 82, 64, 76, 9, 10, 199, 77, 64, 78, 37, 51, 1,
+			60, 67, 10, 199, 64, 20, 142, 5, 52, 207, 76, 67, 10, 199, 52, 20, 143, 8, 241, 21, 60, 20, 9, 198, 48, 148, 85, 36, 112, 83,
+			67, 9, 198, 21, 53, 18, 4, 225, 79, 66, 10, 199, 12, 243, 2, 72, 144, 207, 56, 67, 0, 15, 2, 95, 34, 84, 37, 51, 81, 39,
+			55, 36, 47, 12, 36, 0, 11, 200, 37, 53, 1, 57, 64, 78, 20, 16, 67, 7, 196, 28, 83, 196, 20, 20, 7, 196, 8, 193, 86, 36,
+			20, 0, 23, 2, 95, 33, 48, 4, 40, 50, 47, 39, 36, 89, 49, 55, 35, 65, 35, 47, 6, 37, 84, 39, 0, 8, 197, 88, 149, 18,
+			20, 240, 65, 8, 197, 88, 147, 137, 48, 80, 66, 12, 201, 80, 84, 141, 60, 113, 78, 21, 50, 64, 67, 8, 197, 69, 82, 69, 80, 80,
+			20, 12, 201, 61, 53, 5, 60, 113, 78, 21, 50, 64, 68, 9, 197, 52, 83, 79, 72, 80, 65, 20, 12, 201, 20, 193, 84, 81, 35, 204,
+			37, 50, 64, 67, 8, 197, 8, 242, 5, 52, 80, 20, 8, 197, 8, 144, 137, 80, 80, 65, 8, 197, 8, 19, 1, 4, 208, 65, 0, 6,
+			195, 64, 83, 129, 21, 6, 195, 4, 195, 5, 72, 11, 67, 20, 195, 1, 36, 55, 55, 35, 0, 76, 6, 195, 81, 85, 21, 66, 9, 198,
+			76, 147, 148, 21, 50, 64, 65, 9, 198, 37, 3, 198, 37, 50, 64, 66, 6, 195, 24, 19, 133, 66, 6, 195, 21, 35, 197, 20, 7, 195,
+			16, 83, 133, 66, 20, 9, 198, 5, 3, 198, 37, 50, 64, 66, 0, 8, 195, 12, 243, 128, 72, 8, 9, 15, 2, 95, 39, 35, 48, 6,
+			110, 89, 47, 51, 39, 83, 39, 0, 6, 195, 80, 85, 84, 65, 10, 199, 76, 21, 5, 48, 194, 84, 20, 66, 6, 195, 12, 240, 136, 21,
+			0, 12, 68, 40, 80, 78, 76, 75, 37, 12, 50, 88, 0, 7, 196, 72, 84, 197, 16, 20, 11, 200, 64, 243, 148, 72, 83, 79, 48, 144,
+			66, 11, 200, 64, 20, 146, 60, 48, 200, 36, 16, 20, 12, 200, 48, 84, 9, 48, 83, 85, 72, 80, 67, 20, 7, 196, 37, 51, 1, 52,
+			66, 11, 200, 21, 65, 82, 60, 113, 78, 20, 240, 68, 7, 196, 20, 195, 199, 36, 20, 6, 195, 12, 243, 135, 20, 0, 10, 198, 52, 16,
+			197, 16, 243, 133, 66, 20, 8, 197, 44, 18, 82, 61, 48, 66, 9, 198, 28, 19, 1, 80, 243, 133, 66, 12, 201, 24, 245, 15, 76, 147,
+			148, 21, 50, 64, 67, 9, 198, 16, 21, 80, 32, 147, 133, 68, 9, 198, 13, 81, 204, 36, 84, 137, 65, 9, 198, 12, 193, 79, 52, 83,
+			133, 66, 8, 197, 12, 21, 67, 5, 48, 65, 9, 198, 5, 52, 197, 52, 35, 5, 67, 6, 195, 5, 50, 78, 65, 0, 6, 195, 48, 83,
+			129, 21, 6, 195, 4, 195, 1, 72, 7, 195, 104, 19, 133, 66, 20, 6, 195, 20, 195, 5, 21, 0, 7, 195, 21, 35, 192, 72, 9, 6,
+			195, 64, 83, 132, 21, 6, 195, 5, 50, 76, 66, 0, 6, 195, 4, 195, 15, 72, 17, 4, 95, 3, 1, 16, 65, 35, 57, 6, 40, 89,
+			49, 39, 55, 35, 0, 7, 196, 76, 243, 65, 48, 65, 7, 196, 56, 83, 66, 72, 20, 8, 196, 28, 243, 73, 80, 65, 21, 7, 196, 20,
+			227, 195, 32, 20, 7, 196, 8, 241, 213, 20, 66, 9, 198, 4, 65, 78, 60, 209, 82, 67, 0, 21, 2, 95, 41, 49, 57, 4, 40, 88,
+			35, 48, 35, 51, 6, 36, 50, 47, 36, 88, 37, 0, 8, 197, 80, 131, 204, 61, 48, 21, 9, 198, 12, 21, 133, 16, 147, 133, 21, 0,
+			6, 195, 24, 20, 133, 76, 10, 198, 4, 48, 193, 57, 67, 192, 76, 28, 22, 2, 95, 40, 35, 48, 4, 36, 51, 47, 35, 48, 35, 51,
+			6, 36, 50, 47, 36, 88, 37, 0, 9, 198, 48, 244, 133, 16, 19, 128, 67, 9, 198, 44, 128, 77, 76, 147, 128, 66, 9, 198, 37, 4,
+			201, 48, 243, 128, 65, 13, 202, 20, 193, 84, 81, 35, 198, 61, 33, 83, 36, 20, 9, 198, 8, 20, 153, 80, 243, 128, 65, 0, 8, 195,
+			64, 84, 128, 72, 8, 9, 10, 199, 76, 81, 9, 12, 84, 201, 52, 20, 6, 195, 21, 50, 84, 65, 10, 199, 12, 243, 73, 57, 65, 82,
+			56, 67, 0, 7, 196, 77, 4, 133, 12, 20, 6, 195, 76, 244, 135, 21, 7, 196, 52, 16, 201, 56, 65, 7, 196, 21, 67, 137, 12, 20,
+			8, 196, 20, 35, 204, 36, 65, 20, 0, 14, 2, 95, 45, 47, 14, 16, 35, 47, 12, 37, 50, 39, 0, 12, 201, 84, 197, 18, 5, 65,
+			82, 72, 83, 128, 21, 8, 197, 81, 34, 84, 60, 224, 65, 8, 197, 64, 246, 154, 60, 192, 66, 0, 13, 2, 95, 44, 84, 6, 37, 51,
+			81, 39, 55, 35, 0, 9, 198, 76, 240, 195, 61, 36, 192, 21, 9, 198, 76, 50, 79, 64, 84, 128, 65, 9, 198, 76, 19, 79, 88, 20,
+			128, 67, 9, 198, 72, 147, 131, 61, 36, 192, 21, 13, 202, 65, 50, 67, 61, 65, 82, 5, 1, 85, 80, 69, 9, 198, 64, 84, 131, 61,
+			36, 192, 21, 9, 198, 61, 35, 5, 4, 228, 192, 21, 6, 195, 44, 244, 133, 66, 9, 198, 16, 148, 195, 61, 36, 192, 21, 6, 195, 12,
+			244, 133, 20, 9, 198, 12, 19, 15, 28, 84, 128, 66, 9, 198, 4, 193, 197, 56, 144, 128, 20, 0, 9, 2, 95, 51, 47, 51, 6, 36,
+			0, 6, 195, 76, 244, 132, 21, 10, 199, 12, 243, 12, 4, 113, 78, 20, 66, 0, 9, 2, 95, 50, 72, 6, 40, 36, 0, 7, 196, 76,
+			21, 21, 72, 65, 7, 196, 48, 147, 69, 56, 65, 6, 195, 12, 243, 147, 20, 7, 196, 12, 19, 69, 72, 65, 9, 198, 8, 84, 148, 60,
+			193, 0, 20, 0, 9, 2, 95, 49, 6, 40, 50, 39, 0, 8, 197, 77, 82, 67, 36, 64, 66, 6, 195, 64, 86, 154, 20, 8, 197, 52,
+			145, 206, 60, 192, 65, 8, 197, 24, 83, 77, 36, 224, 65, 8, 197, 16, 243, 142, 60, 192, 20, 12, 201, 8, 244, 135, 61, 48, 84, 60,
+			195, 0, 21, 9, 197, 5, 4, 18, 60, 64, 66, 20, 0, 11, 2, 95, 48, 72, 88, 6, 36, 51, 39, 0, 9, 198, 77, 64, 70, 24,
+			244, 128, 65, 6, 195, 48, 85, 133, 20, 10, 198, 12, 240, 207, 52, 84, 128, 66, 21, 0, 11, 2, 95, 55, 89, 6, 109, 47, 12, 36,
+			0, 10, 199, 24, 244, 141, 4, 194, 84, 4, 68, 6, 195, 5, 163, 212, 20, 0, 7, 196, 5, 100, 133, 36, 72, 9, 2, 95, 54, 89,
+			6, 109, 57, 0, 7, 196, 80, 148, 143, 48, 66, 7, 195, 64, 84, 143, 66, 20, 7, 196, 21, 67, 137, 4, 66, 7, 196, 17, 83, 9,
+			4, 66, 9, 198, 12, 244, 146, 61, 69, 0, 21, 0, 12, 2, 95, 53, 76, 6, 37, 50, 49, 122, 36, 0, 8, 197, 64, 192, 67, 37,
+			64, 65, 8, 197, 56, 20, 195, 37, 64, 65, 8, 197, 48, 20, 195, 37, 64, 65, 0, 13, 2, 95, 52, 49, 122, 6, 35, 47, 12, 51,
+			39, 0, 9, 198, 76, 48, 82, 64, 19, 148, 65, 13, 202, 8, 147, 212, 85, 32, 129, 104, 147, 206, 20, 20, 0, 9, 198, 5, 97, 83,
+			76, 84, 143, 72, 20, 2, 95, 59, 48, 4, 40, 50, 47, 39, 36, 84, 6, 37, 51, 81, 39, 55, 35, 0, 0, 7, 196, 52, 83, 66,
+			72, 20, 12, 201, 12, 147, 145, 84, 19, 148, 21, 50, 77, 20, 0, 10, 2, 95, 57, 50, 6, 110, 84, 36, 0, 8, 197, 64, 84, 141,
+			85, 64, 65, 8, 197, 28, 19, 66, 21, 32, 65, 8, 197, 12, 21, 20, 5, 32, 65, 0, 10, 2, 95, 56, 6, 110, 47, 12, 39, 0,
+			10, 198, 76, 241, 204, 36, 243, 0, 65, 20, 9, 198, 52, 85, 1, 64, 243, 148, 20, 10, 198, 5, 85, 15, 77, 67, 208, 68, 20, 0,
+			24, 2, 95, 63, 48, 4, 40, 50, 47, 39, 37, 50, 47, 36, 51, 39, 81, 35, 47, 6, 37, 84, 39, 0, 10, 199, 64, 20, 129, 16,
+			148, 197, 4, 67, 0, 18, 2, 95, 62, 49, 57, 4, 40, 88, 35, 6, 35, 50, 81, 39, 55, 39, 0, 11, 200, 81, 84, 130, 60, 19,
+			2, 21, 32, 67, 9, 198, 64, 148, 143, 77, 49, 78, 66, 11, 200, 12, 243, 148, 72, 19, 2, 21, 32, 66, 10, 198, 5, 85, 15, 13,
+			67, 206, 67, 20, 0, 9, 198, 77, 66, 80, 20, 225, 9, 20, 6, 195, 72, 245, 0, 20, 8, 197, 72, 16, 193, 48, 80, 65, 9, 197,
+			64, 144, 195, 32, 80, 66, 20, 10, 198, 61, 37, 5, 57, 50, 65, 66, 20, 8, 197, 52, 147, 9, 80, 80, 65, 8, 197, 48, 148, 1,
+			72, 144, 65, 9, 197, 48, 16, 195, 32, 80, 66, 20, 8, 197, 28, 83, 133, 76, 144, 20, 9, 197, 16, 80, 193, 16, 80, 65, 20, 8,
+			197, 12, 243, 147, 12, 144, 20, 9, 198, 12, 243, 80, 20, 225, 9, 20, 8, 197, 9, 83, 20, 20, 144, 66, 0, 19, 2, 95, 60, 35,
+			48, 4, 36, 51, 47, 35, 6, 35, 50, 81, 39, 55, 39, 0, 9, 198, 104, 19, 66, 21, 50, 64, 20, 9, 198, 61, 37, 5, 57, 50,
+			64, 20, 9, 198, 16, 145, 82, 21, 50, 64, 65, 0, 6, 195, 12, 244, 148, 21, 0, 7, 196, 80, 19, 65, 72, 65, 11, 200, 72, 85,
+			20, 36, 194, 78, 20, 240, 67, 9, 198, 56, 144, 197, 72, 21, 0, 66, 7, 196, 16, 147, 69, 72, 65, 11, 200, 16, 145, 1, 76, 48,
+			76, 36, 16, 68, 7, 196, 16, 19, 65, 72, 65, 11, 200, 9, 32, 67, 32, 144, 197, 72, 144, 66, 7, 196, 4, 211, 210, 36, 21, 0,
+			8, 197, 76, 81, 9, 48, 80, 66, 8, 197, 76, 19, 132, 36, 16, 66, 12, 201, 65, 50, 67, 60, 50, 78, 21, 50, 64, 20, 8, 197,
+			64, 20, 146, 60, 48, 65, 12, 201, 64, 19, 9, 56, 113, 78, 21, 50, 64, 67, 8, 197, 48, 244, 147, 36, 48, 21, 8, 197, 48, 145,
+			206, 20, 240, 65, 8, 197, 48, 84, 211, 36, 48, 20, 9, 198, 48, 21, 82, 5, 50, 65, 67, 8, 197, 36, 194, 65, 16, 80, 66, 8,
+			197, 21, 53, 1, 76, 144, 65, 8, 197, 12, 244, 142, 20, 16, 65, 8, 197, 12, 129, 79, 64, 80, 65, 8, 197, 8, 17, 9, 48, 80,
+			66, 12, 201, 4, 225, 201, 60, 113, 78, 21, 50, 64, 67, 0, 9, 198, 76, 147, 134, 37, 50, 64, 65, 9, 198, 65, 35, 212, 21, 50,
+			64, 65, 9, 198, 37, 3, 212, 21, 50, 64, 66, 9, 198, 16, 144, 84, 21, 50, 64, 66, 9, 198, 9, 34, 65, 57, 163, 204, 67, 0,
+			10, 199, 12, 244, 15, 48, 147, 69, 72, 67, 0, 9, 196, 76, 245, 20, 60, 76, 28, 21, 11, 200, 80, 244, 142, 4, 37, 79, 56, 144,
+			20, 15, 204, 61, 52, 201, 16, 244, 133, 17, 85, 20, 5, 50, 64, 65, 11, 200, 60, 194, 71, 5, 32, 200, 36, 16, 68, 11, 200, 12,
+			243, 5, 61, 69, 5, 72, 144, 20, 9, 198, 8, 243, 135, 36, 244, 142, 21, 11, 200, 5, 85, 5, 57, 66, 67, 32, 80, 20, 0, 9,
+			198, 64, 244, 137, 24, 84, 137, 66, 9, 198, 36, 224, 207, 49, 83, 69, 66, 0, 9, 198, 8, 20, 212, 36, 19, 128, 66, 0, 14, 203,
+			5, 48, 201, 84, 112, 67, 5, 1, 76, 48, 144, 21, 0, 7, 196, 88, 244, 199, 36, 20, 7, 196, 76, 147, 69, 80, 20, 12, 201, 72,
+			240, 195, 4, 114, 79, 88, 147, 133, 21, 12, 201, 52, 243, 148, 21, 97, 82, 28, 147, 133, 21, 6, 195, 36, 193, 79, 65, 7, 195, 28,
+			241, 207, 66, 20, 7, 196, 28, 19, 65, 48, 65, 12, 201, 5, 34, 83, 80, 241, 201, 80, 243, 133, 68, 0, 8, 133, 1, 22, 18, 195,
+			160, 72, 8, 197, 81, 33, 86, 21, 48, 20, 9, 198, 69, 80, 82, 21, 50, 77, 21, 8, 197, 60, 34, 68, 61, 48, 21, 9, 198, 52,
+			83, 15, 52, 19, 133, 66, 8, 197, 8, 147, 199, 5, 48, 67, 0, 10, 198, 8, 145, 78, 80, 147, 128, 65, 20, 9, 198, 8, 22, 65,
+			52, 243, 128, 67, 0, 10, 199, 76, 20, 133, 8, 33, 82, 60, 72, 10, 199, 84, 225, 9, 12, 84, 201, 52, 20, 6, 195, 80, 83, 204,
+			66, 10, 199, 52, 19, 12, 60, 96, 71, 36, 66, 0, 7, 196, 80, 84, 197, 72, 65, 7, 196, 77, 68, 133, 76, 20, 6, 195, 48, 80,
+			195, 21, 12, 201, 36, 229, 15, 56, 20, 149, 52, 244, 137, 21, 0, 8, 197, 48, 19, 80, 4, 64, 65, 8, 197, 16, 84, 205, 4, 224,
+			20, 6, 195, 12, 241, 206, 20, 9, 198, 5, 52, 197, 52, 147, 137, 66, 0, 9, 198, 60, 208, 133, 48, 144, 192, 67, 9, 198, 16, 243,
+			69, 56, 144, 192, 21, 0, 10, 199, 81, 34, 65, 80, 131, 15, 56, 65, 6, 195, 80, 80, 192, 20, 9, 198, 28, 243, 1, 76, 80, 195,
+			21, 6, 195, 16, 80, 192, 20, 10, 199, 12, 130, 76, 36, 17, 207, 56, 67, 0, 6, 195, 80, 80, 207, 21, 12, 200, 28, 195, 194, 36,
+			49, 70, 4, 192, 67, 20, 12, 200, 21, 65, 82, 60, 49, 70, 4, 192, 68, 20, 7, 196, 4, 224, 207, 72, 21, 0, 9, 198, 80, 19,
+			69, 72, 144, 197, 67, 8, 197, 52, 20, 146, 60, 224, 66, 8, 197, 28, 20, 154, 60, 224, 66, 8, 197, 16, 20, 147, 20, 224, 65, 8,
+			197, 12, 243, 77, 60, 64, 20, 9, 198, 8, 84, 135, 20, 113, 201, 21, 0, 13, 202, 80, 84, 141, 60, 83, 5, 81, 68, 137, 12, 20,
+			9, 198, 80, 83, 5, 52, 16, 192, 20, 9, 198, 21, 84, 137, 48, 240, 192, 67, 9, 198, 4, 225, 137, 48, 240, 192, 66, 0, 10, 199,
+			88, 19, 19, 5, 52, 201, 56, 66, 6, 195, 80, 80, 204, 20, 10, 199, 16, 148, 207, 72, 66, 78, 20, 21, 0, 7, 196, 5, 100, 129,
+			36, 72, 30, 4, 95, 4, 15, 20, 48, 6, 40, 50, 47, 39, 15, 89, 4, 39, 84, 14, 16, 35, 89, 49, 14, 16, 6, 37, 47, 12,
+			39, 0, 6, 195, 80, 80, 203, 20, 9, 198, 52, 19, 148, 36, 51, 210, 66, 9, 198, 12, 147, 133, 12, 197, 66, 67, 0, 8, 197, 77,
+			81, 4, 37, 64, 65, 8, 197, 76, 83, 137, 61, 32, 20, 8, 197, 76, 83, 137, 61, 32, 65, 8, 197, 72, 147, 142, 61, 96, 20, 8,
+			197, 72, 81, 4, 37, 64, 65, 8, 197, 65, 83, 16, 37, 64, 65, 8, 197, 64, 147, 214, 21, 32, 66, 8, 197, 52, 83, 136, 37, 32,
+			66, 9, 197, 13, 33, 68, 37, 64, 65, 21, 8, 197, 12, 243, 80, 37, 64, 65, 0, 10, 198, 76, 241, 143, 12, 193, 64, 65, 20, 6,
+			195, 20, 65, 65, 21, 6, 195, 16, 80, 201, 20, 6, 195, 8, 17, 197, 66, 6, 195, 4, 193, 65, 65, 0, 14, 5, 1, 22, 18, 195,
+			178, 108, 84, 34, 6, 110, 0, 72, 7, 195, 12, 129, 64, 72, 8, 20, 2, 95, 91, 35, 48, 6, 36, 51, 47, 35, 49, 122, 6, 35,
+			72, 14, 16, 35, 0, 10, 199, 64, 19, 12, 4, 229, 79, 80, 20, 9, 198, 52, 243, 143, 64, 16, 203, 67, 6, 195, 16, 81, 192, 20,
+			10, 199, 13, 34, 83, 61, 53, 15, 52, 66, 6, 195, 4, 193, 64, 66, 0, 9, 198, 77, 84, 5, 72, 147, 210, 21, 6, 195, 76, 244,
+			147, 21, 7, 196, 52, 148, 201, 4, 65, 7, 196, 12, 83, 66, 72, 20, 7, 196, 5, 36, 9, 4, 66, 12, 201, 4, 65, 78, 60, 148,
+			15, 24, 148, 201, 69, 0, 6, 195, 76, 241, 0, 20, 8, 197, 76, 50, 5, 73, 160, 21, 9, 198, 64, 148, 143, 48, 148, 201, 66, 8,
+			197, 64, 19, 132, 5, 32, 65, 6, 195, 48, 83, 206, 21, 8, 197, 20, 194, 88, 37, 32, 67, 6, 195, 20, 65, 78, 20, 9, 197, 16,
+			21, 150, 21, 32, 66, 21, 9, 197, 12, 243, 131, 5, 96, 65, 20, 6, 195, 4, 193, 78, 21, 0, 8, 198, 69, 80, 76, 12, 129, 64,
+			9, 66, 88, 144, 84, 37, 0, 76, 9, 9, 198, 76, 48, 78, 16, 19, 0, 65, 9, 198, 69, 80, 68, 72, 145, 192, 66, 9, 198, 64,
+			243, 12, 36, 225, 64, 20, 9, 198, 64, 84, 137, 12, 193, 64, 65, 9, 198, 56, 145, 86, 60, 193, 64, 20, 9, 198, 20, 113, 77, 60,
+			225, 64, 20, 9, 198, 12, 243, 147, 60, 193, 64, 20, 9, 198, 12, 243, 135, 72, 81, 192, 20, 6, 195, 8, 18, 193, 66, 9, 198, 5,
+			52, 1, 72, 17, 192, 66, 0, 8, 67, 12, 128, 84, 21, 0, 10, 16, 2, 95, 95, 6, 40, 50, 72, 36, 51, 89, 49, 39, 51, 36,
+			0, 10, 199, 65, 83, 3, 32, 84, 137, 4, 66, 9, 198, 64, 85, 20, 36, 225, 79, 66, 6, 195, 60, 130, 64, 20, 0, 13, 2, 95,
+			94, 49, 35, 48, 12, 40, 76, 12, 39, 0, 7, 196, 20, 193, 84, 80, 20, 10, 198, 8, 18, 129, 104, 85, 0, 67, 21, 7, 196, 5,
+			4, 5, 56, 21, 0, 8, 197, 5, 100, 133, 80, 80, 72, 8, 197, 69, 81, 83, 80, 240, 72, 19, 2, 95, 93, 49, 57, 4, 40, 88,
+			35, 49, 122, 6, 35, 72, 14, 16, 35, 0, 9, 198, 80, 148, 129, 56, 226, 65, 67, 9, 197, 64, 20, 133, 72, 80, 66, 21, 8, 197,
+			52, 147, 208, 36, 16, 67, 8, 197, 48, 147, 73, 80, 80, 65, 6, 195, 36, 51, 206, 20, 9, 198, 16, 144, 67, 60, 226, 65, 68, 8,
+			197, 16, 83, 79, 56, 144, 67, 8, 197, 12, 84, 131, 32, 144, 21, 8, 197, 8, 244, 135, 32, 144, 21, 0, 9, 198, 77, 65, 70, 4,
+			226, 64, 65, 6, 195, 64, 84, 149, 66, 9, 198, 36, 224, 197, 56, 66, 64, 20, 9, 198, 16, 80, 197, 56, 226, 64, 20, 9, 198, 12,
+			144, 204, 4, 66, 64, 65, 9, 198, 4, 48, 197, 28, 194, 64, 20, 0, 9, 198, 12, 243, 80, 72, 84, 211, 20, 6, 195, 4, 194, 64,
+			66, 0, 11, 200, 76, 83, 73, 12, 84, 131, 32, 144, 21, 12, 201, 76, 50, 9, 88, 83, 143, 28, 194, 65, 20, 12, 201, 69, 80, 76,
+			76, 149, 143, 28, 194, 65, 20, 11, 200, 64, 19, 142, 60, 48, 200, 36, 16, 20, 11, 200, 36, 229, 5, 73, 4, 133, 80, 80, 66, 8,
+			196, 20, 194, 84, 20, 65, 21, 7, 195, 12, 130, 79, 66, 20, 0, 8, 197, 88, 244, 212, 72, 240, 72, 8, 197, 56, 244, 212, 72, 240,
+			72, 6, 195, 76, 245, 146, 21, 9, 197, 56, 244, 212, 60, 144, 65, 21, 8, 197, 56, 18, 65, 16, 80, 65, 9, 198, 52, 19, 20, 20,
+			212, 0, 20, 8, 197, 24, 243, 79, 72, 144, 65, 8, 197, 21, 53, 15, 56, 144, 65, 8, 197, 21, 21, 73, 16, 144, 20, 9, 198, 20,
+			113, 77, 60, 226, 65, 68, 9, 198, 4, 226, 82, 36, 66, 65, 68, 0, 13, 2, 95, 96, 71, 35, 49, 48, 14, 16, 117, 65, 0, 12,
+			201, 60, 67, 206, 80, 245, 5, 12, 226, 67, 20, 9, 198, 52, 243, 135, 60, 194, 64, 20, 9, 198, 5, 96, 77, 64, 244, 212, 21, 0,
+			0, 11, 200, 80, 84, 129, 64, 85, 84, 36, 48, 67, 8, 196, 48, 80, 201, 80, 65, 21, 11, 200, 36, 229, 5, 72, 194, 78, 20, 16,
+			67, 7, 196, 21, 84, 137, 80, 65, 12, 201, 20, 224, 201, 12, 195, 208, 20, 66, 65, 69, 12, 201, 12, 147, 145, 84, 81, 143, 28, 194,
+			69, 20, 7, 196, 5, 67, 5, 80, 20, 6, 195, 4, 193, 83, 20, 7, 196, 4, 67, 69, 80, 20, 0, 8, 197, 65, 35, 212, 5, 48,
+			65, 6, 195, 28, 246, 154, 21, 8, 197, 24, 17, 68, 37, 48, 20, 6, 195, 20, 65, 82, 65, 0, 10, 198, 81, 34, 86, 20, 225, 84,
+			66, 20, 9, 198, 72, 245, 21, 48, 83, 192, 66, 9, 198, 52, 81, 9, 12, 83, 192, 66, 9, 198, 24, 244, 129, 56, 83, 192, 66, 0,
+			10, 199, 64, 83, 148, 5, 67, 5, 80, 20, 6, 195, 48, 83, 192, 21, 0, 12, 201, 65, 35, 211, 80, 17, 133, 72, 84, 201, 67, 6,
+			195, 64, 84, 195, 20, 6, 195, 64, 84, 195, 20, 6, 195, 12, 244, 195, 20, 7, 196, 5, 36, 133, 16, 20, 0, 9, 198, 72, 241, 9,
+			80, 244, 137, 21, 9, 198, 57, 85, 143, 48, 243, 133, 20, 0, 15, 4, 95, 7, 18, 22, 81, 14, 16, 6, 35, 12, 84, 36, 0, 6,
+			195, 12, 244, 193, 66, 10, 198, 12, 83, 1, 16, 243, 128, 65, 21, 0, 10, 199, 28, 194, 67, 60, 194, 83, 36, 66, 6, 195, 20, 66,
+			84, 65, 9, 198, 12, 241, 84, 4, 225, 79, 67, 9, 198, 12, 21, 20, 4, 225, 79, 66, 6, 195, 4, 194, 84, 65, 0, 11, 200, 12,
+			243, 69, 28, 194, 65, 57, 48, 67, 0, 8, 197, 104, 240, 195, 60, 192, 20, 8, 197, 88, 20, 133, 56, 224, 21, 8, 197, 72, 240, 195,
+			60, 192, 20, 8, 197, 64, 83, 132, 84, 192, 20, 8, 197, 52, 243, 20, 20, 224, 21, 6, 195, 48, 84, 194, 20, 8, 197, 16, 144, 67,
+			60, 224, 66, 8, 197, 12, 19, 73, 60, 224, 65, 8, 197, 9, 81, 134, 4, 192, 65, 0, 9, 198, 69, 80, 76, 12, 244, 192, 20, 7,
+			195, 65, 84, 133, 66, 20, 9, 198, 60, 198, 77, 64, 244, 192, 65, 9, 198, 52, 20, 137, 64, 244, 192, 20, 0, 6, 195, 20, 66, 80,
+			65, 10, 199, 17, 32, 71, 4, 210, 78, 20, 67, 0, 7, 196, 77, 68, 143, 24, 20, 8, 196, 72, 244, 197, 60, 65, 20, 9, 198, 72,
+			145, 146, 20, 65, 0, 21, 11, 200, 5, 32, 201, 16, 144, 67, 60, 224, 67, 0, 9, 198, 104, 84, 134, 4, 194, 85, 67, 8, 197, 52,
+			83, 147, 60, 192, 20, 9, 198, 12, 243, 80, 48, 144, 197, 20, 8, 197, 12, 243, 15, 28, 224, 20, 8, 197, 12, 19, 132, 20, 192, 21,
+			0, 6, 195, 65, 84, 137, 66, 6, 195, 64, 84, 201, 20, 9, 198, 64, 83, 148, 5, 67, 0, 20, 9, 198, 64, 83, 148, 5, 67, 0,
+			65, 9, 198, 12, 83, 148, 72, 144, 192, 20, 0, 0, 7, 196, 52, 84, 207, 48, 65, 13, 201, 16, 144, 207, 80, 147, 5, 16, 243, 137,
+			68, 20, 9, 198, 12, 243, 134, 21, 69, 0, 20, 0, 8, 197, 76, 148, 15, 57, 64, 20, 9, 198, 76, 128, 78, 28, 128, 73, 66, 9,
+			198, 64, 20, 129, 48, 148, 201, 66, 9, 197, 48, 84, 1, 57, 64, 65, 20, 0, 6, 195, 80, 84, 201, 20, 9, 198, 76, 84, 150, 36,
+			193, 64, 66, 10, 198, 52, 81, 193, 12, 193, 64, 65, 20, 9, 198, 21, 34, 71, 60, 225, 64, 66, 6, 195, 16, 84, 201, 20, 0, 20,
+			2, 95, 123, 35, 48, 4, 36, 51, 47, 35, 81, 14, 16, 6, 35, 83, 12, 35, 0, 16, 4, 95, 4, 9, 1, 72, 57, 36, 51, 6,
+			36, 12, 88, 126, 0, 10, 199, 76, 147, 135, 32, 147, 218, 104, 21, 10, 199, 5, 85, 15, 64, 147, 15, 80, 20, 9, 198, 5, 32, 200,
+			20, 192, 79, 67, 0, 8, 196, 76, 84, 201, 4, 65, 20, 7, 196, 72, 84, 201, 4, 65, 7, 196, 52, 84, 211, 20, 20, 0, 6, 195,
+			80, 241, 0, 20, 8, 197, 77, 83, 195, 21, 32, 65, 8, 197, 72, 83, 132, 37, 64, 65, 8, 197, 65, 35, 198, 21, 64, 20, 8, 197,
+			64, 20, 212, 61, 32, 21, 12, 201, 12, 20, 212, 20, 197, 133, 72, 65, 64, 21, 0, 9, 198, 77, 84, 146, 20, 225, 64, 21, 9, 198,
+			72, 85, 20, 36, 98, 76, 67, 9, 198, 64, 144, 90, 104, 243, 0, 67, 9, 198, 61, 53, 18, 60, 115, 212, 20, 9, 198, 28, 83, 148,
+			36, 193, 64, 66, 9, 198, 21, 48, 200, 36, 225, 64, 20, 9, 198, 16, 80, 201, 8, 83, 0, 67, 9, 198, 16, 80, 193, 48, 241, 192,
+			66, 9, 198, 12, 244, 148, 36, 193, 64, 66, 10, 198, 12, 86, 129, 56, 225, 64, 65, 21, 9, 198, 12, 21, 1, 48, 241, 192, 66, 9,
+			198, 4, 229, 5, 56, 225, 64, 21, 0, 0, 7, 196, 81, 84, 129, 56, 66, 7, 196, 72, 148, 193, 56, 65, 9, 198, 72, 80, 193, 72,
+			81, 0, 20, 7, 196, 52, 20, 197, 72, 66, 7, 196, 12, 244, 197, 56, 21, 7, 196, 5, 83, 15, 76, 67, 0, 19, 2, 95, 125, 49,
+			57, 4, 40, 88, 35, 81, 14, 16, 6, 35, 83, 12, 35, 0, 8, 197, 84, 36, 137, 4, 48, 67, 6, 195, 80, 245, 0, 20, 8, 197,
+			80, 84, 195, 32, 144, 20, 9, 197, 76, 20, 5, 72, 80, 66, 21, 9, 198, 52, 243, 133, 28, 194, 65, 20, 12, 201, 52, 81, 137, 77,
+			67, 198, 20, 193, 64, 67, 8, 197, 28, 19, 1, 80, 144, 65, 9, 198, 21, 2, 70, 4, 226, 65, 68, 8, 197, 5, 52, 197, 16, 144,
+			20, 9, 198, 4, 224, 82, 12, 130, 65, 67, 0, 6, 195, 80, 244, 0, 20, 9, 198, 52, 243, 5, 12, 243, 0, 20, 9, 198, 52, 148,
+			212, 72, 19, 0, 66, 6, 195, 20, 69, 73, 20, 0, 10, 199, 76, 245, 20, 60, 35, 211, 12, 20, 9, 198, 76, 244, 16, 72, 84, 211,
+			20, 10, 199, 64, 147, 129, 12, 245, 5, 12, 20, 11, 199, 64, 20, 148, 20, 227, 208, 20, 66, 20, 10, 199, 52, 243, 132, 4, 67, 210,
+			36, 21, 10, 199, 52, 20, 148, 36, 226, 84, 80, 67, 0, 8, 196, 21, 52, 5, 72, 65, 20, 11, 200, 61, 38, 137, 88, 80, 195, 32,
+			144, 20, 9, 198, 21, 2, 84, 72, 149, 0, 66, 9, 198, 12, 243, 80, 36, 85, 0, 20, 7, 196, 5, 165, 5, 12, 20, 7, 196, 4,
+			229, 65, 44, 66, 9, 198, 4, 193, 129, 8, 85, 0, 20, 7, 196, 4, 115, 210, 4, 67, 0, 8, 197, 80, 83, 129, 12, 80, 66, 9,
+			198, 76, 195, 214, 20, 226, 65, 20, 8, 197, 76, 50, 5, 72, 208, 21, 9, 198, 72, 243, 65, 56, 66, 65, 67, 9, 198, 65, 35, 211,
+			60, 66, 65, 67, 34, 77, 60, 194, 71, 60, 65, 78, 17, 35, 199, 48, 147, 205, 4, 110, 55, 37, 81, 39, 72, 36, 50, 72, 14, 16,
+			39, 61, 6, 37, 110, 65, 35, 0, 8, 197, 56, 21, 83, 20, 16, 65, 9, 198, 52, 243, 148, 60, 113, 201, 20, 8, 197, 52, 148, 212,
+			72, 16, 66, 8, 197, 48, 85, 20, 36, 112, 66, 8, 197, 20, 208, 140, 20, 208, 20, 0, 9, 198, 88, 19, 132, 4, 194, 64, 65, 6,
+			195, 80, 81, 213, 66, 6, 195, 76, 240, 201, 20, 6, 195, 48, 84, 205, 20, 9, 198, 29, 84, 208, 36, 226, 64, 65, 9, 198, 17, 84,
+			15, 56, 66, 64, 20, 6, 195, 12, 244, 201, 66, 9, 198, 12, 129, 82, 4, 66, 64, 65, 0, 10, 199, 24, 83, 77, 36, 226, 76, 20,
+			67, 10, 199, 13, 35, 211, 80, 16, 197, 60, 66, 0, 11, 200, 81, 84, 144, 36, 195, 209, 84, 144, 20, 9, 198, 72, 148, 208, 61, 53,
+			0, 21, 11, 200, 52, 243, 148, 21, 97, 82, 16, 80, 21, 11, 200, 37, 1, 82, 80, 84, 141, 36, 16, 68, 7, 196, 21, 84, 143, 64,
+			20, 0, 12, 201, 69, 80, 68, 72, 145, 143, 28, 194, 64, 20, 9, 198, 37, 3, 212, 4, 192, 77, 67, 0, 9, 198, 5, 97, 86, 4,
+			211, 192, 72, 9, 198, 21, 32, 86, 4, 211, 192, 72, 6, 195, 61, 4, 9, 20, 13, 202, 52, 20, 129, 12, 19, 1, 28, 243, 137, 76,
+			20, 6, 195, 12, 244, 205, 20, 6, 195, 12, 244, 205, 20, 0, 10, 199, 61, 34, 84, 80, 84, 143, 64, 67, 0, 9, 198, 81, 34, 80,
+			61, 53, 0, 21, 8, 196, 76, 84, 193, 52, 65, 20, 0, 8, 197, 76, 85, 146, 21, 48, 20, 9, 198, 16, 148, 208, 72, 244, 201, 20,
+			0, 9, 198, 24, 244, 211, 36, 211, 192, 72, 6, 194, 84, 224, 72, 9, 16, 70, 76, 49, 73, 12, 51, 192, 91, 109, 6, 37, 49, 12,
+			39, 0, 9, 198, 4, 229, 5, 48, 19, 192, 67, 0, 6, 195, 64, 243, 12, 21, 6, 195, 64, 243, 12, 21, 9, 198, 64, 84, 144, 21,
+			69, 79, 20, 19, 70, 12, 148, 131, 84, 149, 15, 76, 37, 14, 16, 49, 6, 40, 37, 47, 39, 0, 0, 7, 195, 76, 19, 15, 66, 20,
+			7, 196, 49, 85, 5, 60, 65, 9, 198, 4, 224, 67, 60, 225, 0, 20, 7, 196, 4, 115, 210, 16, 65, 0, 8, 197, 81, 84, 143, 48,
+			64, 20, 8, 197, 76, 19, 148, 20, 224, 65, 9, 197, 56, 147, 82, 60, 64, 66, 20, 9, 198, 52, 147, 12, 20, 227, 137, 20, 9, 197,
+			12, 244, 132, 60, 32, 65, 21, 0, 6, 195, 81, 83, 201, 72, 9, 198, 69, 80, 76, 37, 64, 64, 67, 6, 195, 52, 81, 9, 20, 6,
+			195, 5, 48, 197, 66, 0, 10, 199, 36, 229, 5, 72, 209, 68, 36, 20, 12, 201, 8, 245, 76, 21, 85, 5, 72, 147, 206, 21, 0, 0,
+			8, 197, 76, 50, 5, 72, 224, 21, 8, 197, 76, 48, 80, 60, 192, 65, 12, 201, 64, 244, 211, 36, 34, 76, 37, 64, 64, 69, 9, 198,
+			64, 80, 195, 36, 243, 9, 20, 10, 198, 56, 83, 65, 80, 241, 9, 67, 20, 8, 197, 12, 244, 16, 60, 192, 20, 0, 10, 198, 36, 224,
+			207, 28, 226, 84, 66, 20, 9, 198, 24, 20, 142, 21, 51, 204, 67, 9, 198, 5, 32, 200, 21, 66, 80, 66, 10, 198, 4, 48, 210, 20,
+			66, 84, 66, 21, 0, 10, 199, 80, 84, 212, 36, 211, 206, 20, 20, 10, 199, 61, 53, 18, 60, 115, 212, 36, 20, 10, 199, 52, 17, 206,
+			21, 68, 143, 56, 65, 10, 199, 16, 148, 207, 56, 84, 212, 4, 68, 9, 198, 16, 148, 195, 61, 65, 67, 20, 0, 7, 196, 104, 85, 71,
+			52, 65, 7, 196, 29, 85, 5, 36, 66, 0, 12, 201, 88, 147, 12, 5, 50, 77, 37, 84, 192, 68, 8, 197, 72, 148, 207, 49, 64, 20,
+			8, 197, 52, 244, 195, 61, 96, 20, 9, 197, 52, 243, 15, 81, 32, 65, 20, 8, 197, 17, 32, 71, 85, 64, 66, 8, 197, 13, 84, 195,
+			85, 64, 65, 0, 13, 202, 80, 83, 78, 61, 52, 15, 56, 66, 76, 36, 20, 9, 198, 76, 20, 211, 60, 225, 64, 65, 10, 198, 64, 144,
+			67, 21, 33, 64, 67, 21, 9, 198, 52, 17, 206, 21, 65, 64, 20, 7, 195, 48, 241, 5, 66, 20, 0, 10, 199, 9, 35, 206, 12, 130,
+			79, 48, 66, 6, 195, 9, 33, 68, 20, 8, 197, 8, 147, 212, 61, 0, 66, 9, 198, 4, 225, 137, 5, 32, 79, 67, 0, 7, 196, 61,
+			52, 143, 20, 65, 7, 196, 20, 194, 77, 36, 65, 7, 196, 13, 84, 15, 48, 65, 0, 9, 198, 64, 84, 144, 21, 69, 65, 20, 9, 198,
+			48, 245, 26, 61, 32, 73, 67, 6, 195, 25, 33, 78, 21, 0, 9, 198, 76, 20, 133, 77, 65, 64, 72, 9, 198, 88, 19, 12, 21, 97,
+			64, 20, 9, 198, 52, 144, 200, 36, 83, 0, 66, 14, 202, 12, 195, 210, 4, 209, 133, 56, 144, 207, 48, 69, 20, 9, 198, 12, 144, 204,
+			61, 1, 64, 20, 0, 10, 199, 69, 80, 68, 73, 84, 15, 48, 67, 10, 199, 64, 144, 195, 5, 33, 9, 4, 67, 10, 199, 52, 16, 210,
+			60, 51, 211, 52, 20, 0, 7, 196, 76, 148, 193, 72, 65, 7, 196, 72, 84, 201, 56, 65, 7, 196, 52, 148, 197, 72, 65, 7, 196, 12,
+			84, 193, 72, 65, 7, 195, 12, 17, 15, 66, 20, 6, 195, 5, 65, 79, 65, 7, 196, 4, 195, 208, 20, 65, 0, 6, 195, 104, 85, 0,
+			20, 15, 69, 80, 82, 83, 80, 16, 47, 109, 6, 37, 89, 47, 35, 0, 9, 198, 76, 145, 206, 61, 34, 65, 67, 8, 197, 64, 83, 15,
+			76, 144, 21, 9, 198, 56, 85, 83, 81, 34, 65, 65, 8, 197, 52, 147, 143, 72, 144, 21, 8, 197, 48, 144, 133, 72, 144, 65, 8, 197,
+			24, 80, 130, 72, 80, 20, 8, 197, 21, 81, 133, 52, 144, 20, 9, 198, 20, 229, 18, 61, 2, 65, 67, 9, 198, 20, 211, 198, 36, 194,
+			65, 68, 8, 197, 16, 80, 143, 48, 80, 65, 6, 195, 9, 33, 78, 21, 8, 197, 8, 19, 19, 4, 208, 65, 8, 197, 5, 48, 197, 76,
+			144, 20, 8, 197, 4, 148, 143, 48, 80, 20, 8, 197, 4, 32, 129, 100, 80, 67, 0, 6, 195, 84, 244, 0, 20, 9, 198, 76, 20, 211,
+			60, 226, 64, 65, 9, 198, 72, 147, 131, 61, 66, 64, 20, 9, 198, 20, 224, 207, 49, 2, 64, 20, 9, 198, 8, 243, 129, 77, 51, 204,
+			67, 0, 6, 195, 64, 84, 212, 21, 6, 195, 37, 51, 204, 65, 10, 199, 20, 48, 197, 57, 68, 137, 12, 20, 0, 11, 200, 80, 244, 142,
+			5, 33, 67, 12, 144, 20, 11, 200, 72, 81, 133, 72, 83, 132, 84, 208, 20, 11, 200, 61, 4, 18, 36, 209, 78, 80, 80, 20, 6, 195,
+			49, 83, 199, 20, 7, 196, 21, 84, 133, 44, 65, 10, 198, 4, 65, 5, 8, 149, 0, 66, 21, 9, 198, 4, 52, 143, 8, 21, 0, 66,
+			0, 8, 197, 77, 97, 86, 36, 16, 20, 8, 197, 72, 85, 15, 72, 80, 65, 10, 198, 61, 35, 211, 12, 244, 0, 66, 20, 8, 197, 24,
+			244, 141, 36, 48, 66, 9, 198, 24, 21, 20, 61, 34, 65, 67, 8, 197, 21, 21, 73, 64, 80, 65, 8, 197, 16, 243, 143, 72, 144, 67,
+			12, 201, 12, 192, 86, 36, 49, 77, 8, 19, 0, 67, 8, 197, 4, 53, 76, 20, 240, 66, 0, 9, 198, 76, 20, 133, 77, 66, 64, 72,
+			9, 198, 105, 80, 195, 5, 34, 64, 65, 13, 202, 80, 145, 204, 5, 68, 9, 48, 84, 197, 72, 20, 6, 195, 76, 244, 201, 20, 9, 198,
+			64, 147, 69, 57, 65, 76, 67, 9, 198, 28, 148, 143, 77, 64, 84, 66, 9, 198, 9, 80, 195, 5, 34, 64, 65, 0, 10, 198, 64, 19,
+			13, 5, 33, 83, 67, 20, 10, 199, 60, 211, 218, 36, 115, 212, 20, 20, 10, 199, 52, 148, 129, 24, 147, 210, 36, 21, 10, 199, 36, 229,
+			18, 60, 67, 212, 80, 21, 6, 195, 21, 51, 196, 20, 0, 6, 195, 64, 243, 3, 20, 7, 196, 64, 193, 90, 104, 20, 7, 196, 48, 85,
+			67, 36, 65, 12, 201, 37, 3, 195, 48, 244, 137, 17, 34, 65, 69, 11, 200, 16, 83, 79, 13, 32, 90, 36, 16, 68, 11, 200, 12, 21,
+			20, 37, 97, 82, 36, 16, 67, 11, 200, 8, 21, 20, 36, 53, 79, 72, 80, 20, 11, 200, 4, 116, 143, 76, 148, 212, 20, 208, 20, 0,
+			6, 195, 80, 243, 6, 20, 9, 198, 65, 33, 78, 76, 147, 5, 20, 6, 195, 61, 1, 82, 21, 9, 198, 28, 21, 68, 20, 230, 137, 20,
+			9, 198, 12, 84, 129, 56, 84, 201, 66, 0, 6, 195, 76, 19, 5, 66, 9, 198, 36, 227, 143, 13, 83, 192, 20, 6, 195, 28, 147, 5,
+			66, 10, 198, 20, 211, 69, 57, 64, 76, 65, 20, 0, 6, 195, 81, 83, 192, 72, 6, 195, 80, 243, 4, 20, 10, 199, 60, 113, 201, 28,
+			147, 210, 56, 21, 6, 195, 37, 64, 76, 65, 10, 199, 24, 147, 129, 48, 35, 210, 28, 21, 10, 199, 8, 243, 129, 12, 243, 19, 36, 20,
+			0, 7, 196, 36, 228, 201, 80, 65, 7, 196, 4, 67, 210, 56, 21, 0, 9, 198, 56, 240, 195, 36, 243, 1, 66, 9, 198, 52, 20, 195,
+			32, 147, 5, 66, 6, 195, 48, 241, 26, 21, 0, 11, 70, 36, 229, 5, 72, 225, 84, 21, 0, 10, 11, 67, 21, 52, 197, 36, 89, 89,
+			36, 0, 76, 6, 195, 64, 244, 5, 20, 6, 195, 17, 83, 205, 20, 10, 198, 12, 243, 135, 73, 83, 192, 65, 20, 0, 10, 199, 76, 16,
+			210, 36, 193, 71, 36, 20, 10, 199, 16, 241, 9, 12, 84, 201, 52, 20, 0, 6, 195, 80, 245, 15, 66, 6, 195, 80, 245, 15, 20, 7,
+			196, 44, 22, 65, 44, 66, 8, 196, 21, 69, 1, 72, 65, 20, 0, 9, 198, 64, 192, 83, 52, 241, 9, 20, 8, 197, 12, 147, 212, 60,
+			192, 65, 9, 198, 12, 19, 12, 36, 244, 5, 66, 8, 197, 9, 80, 195, 36, 224, 65, 0, 11, 67, 21, 52, 193, 36, 89, 89, 35, 0,
+			76, 9, 198, 88, 83, 149, 77, 64, 64, 67, 9, 198, 72, 17, 206, 5, 65, 76, 21, 10, 198, 48, 147, 65, 77, 51, 204, 67, 21, 13,
+			202, 21, 48, 67, 37, 51, 212, 80, 17, 68, 72, 20, 9, 198, 16, 148, 195, 5, 2, 84, 66, 0, 10, 199, 65, 35, 211, 21, 36, 9,
+			56, 66, 10, 199, 28, 19, 66, 4, 51, 210, 80, 21, 6, 195, 21, 52, 192, 21, 10, 199, 12, 243, 73, 56, 99, 210, 52, 67, 6, 195,
+			5, 51, 204, 65, 0, 7, 196, 24, 244, 212, 36, 72, 7, 196, 80, 85, 67, 72, 65, 7, 196, 48, 241, 204, 36, 20, 7, 196, 12, 244,
+			212, 4, 66, 0, 9, 198, 88, 19, 7, 60, 115, 9, 20, 8, 197, 52, 84, 195, 4, 192, 66, 8, 197, 16, 243, 13, 20, 224, 20, 8,
+			197, 12, 243, 135, 20, 64, 20, 0, 10, 198, 60, 211, 137, 9, 84, 192, 65, 20, 9, 198, 56, 81, 210, 37, 64, 64, 67, 9, 198, 12,
+			244, 148, 37, 51, 204, 67, 0, 15, 67, 93, 117, 192, 6, 84, 40, 6, 84, 40, 6, 84, 40, 0, 10, 199, 52, 243, 148, 61, 33, 129,
+			56, 66, 10, 199, 8, 192, 83, 80, 244, 15, 72, 66, 10, 199, 4, 116, 137, 24, 241, 204, 36, 20, 0, 7, 196, 80, 81, 207, 48, 65,
+			9, 198, 65, 35, 199, 21, 69, 0, 20, 9, 198, 64, 19, 131, 21, 69, 0, 21, 7, 196, 56, 241, 77, 36, 20, 7, 196, 28, 147, 210,
+			56, 21, 0, 8, 197, 53, 84, 212, 21, 32, 66, 9, 198, 48, 240, 193, 48, 149, 1, 68, 9, 198, 24, 147, 1, 72, 85, 5, 20, 9,
+			198, 12, 19, 3, 5, 33, 69, 66, 0, 11, 67, 21, 52, 201, 36, 89, 89, 37, 0, 76, 9, 198, 80, 84, 211, 21, 33, 64, 20, 9,
+			198, 56, 84, 212, 61, 33, 64, 65, 6, 195, 16, 245, 5, 20, 10, 198, 12, 80, 210, 61, 1, 64, 65, 20, 0, 12, 201, 36, 226, 78,
+			80, 84, 146, 61, 69, 0, 21, 6, 195, 21, 51, 208, 20, 10, 199, 12, 243, 12, 20, 195, 206, 28, 20, 0, 7, 196, 24, 244, 211, 20,
+			72, 11, 200, 52, 243, 148, 20, 97, 76, 81, 32, 21, 0, 8, 197, 76, 81, 213, 37, 64, 65, 8, 197, 64, 243, 4, 21, 32, 20, 9,
+			198, 61, 69, 15, 80, 148, 9, 66, 8, 197, 56, 148, 16, 85, 32, 66, 8, 197, 48, 85, 20, 21, 32, 20, 8, 197, 28, 19, 66, 5,
+			32, 65, 9, 197, 16, 84, 208, 61, 64, 65, 20, 0, 5, 194, 88, 240, 20, 6, 195, 60, 145, 9, 66, 9, 198, 48, 16, 200, 21, 65,
+			64, 20, 0, 11, 199, 29, 35, 211, 76, 243, 79, 16, 67, 20, 12, 201, 25, 32, 78, 12, 144, 67, 61, 37, 0, 21, 0, 7, 196, 76,
+			144, 84, 20, 72, 7, 196, 64, 17, 201, 56, 65, 11, 200, 24, 83, 137, 12, 245, 20, 21, 32, 20, 11, 200, 8, 19, 5, 56, 245, 20,
+			21, 32, 20, 7, 196, 5, 52, 18, 36, 66, 0, 8, 197, 24, 16, 197, 88, 16, 76, 6, 195, 88, 245, 0, 20, 8, 197, 76, 147, 148,
+			60, 208, 65, 8, 197, 72, 22, 154, 36, 16, 66, 8, 197, 64, 22, 154, 36, 16, 66, 9, 198, 52, 84, 137, 77, 65, 77, 20, 8, 197,
+			52, 20, 133, 52, 208, 21, 8, 197, 36, 212, 1, 72, 144, 65, 8, 197, 5, 3, 210, 36, 16, 67, 0, 6, 195, 64, 241, 9, 20, 9,
+			198, 64, 18, 12, 5, 98, 64, 65, 9, 198, 9, 33, 83, 4, 243, 0, 66, 0, 9, 198, 76, 20, 146, 60, 50, 0, 66, 9, 198, 5,
+			85, 5, 57, 66, 67, 20, 9, 198, 5, 85, 5, 57, 66, 67, 20, 0, 7, 196, 24, 244, 212, 20, 72, 9, 198, 76, 19, 79, 76, 21,
+			0, 66, 11, 200, 56, 147, 134, 60, 208, 78, 36, 16, 68, 7, 196, 36, 224, 213, 8, 65, 7, 196, 21, 53, 5, 72, 65, 9, 198, 4,
+			192, 193, 57, 64, 82, 66, 0, 9, 197, 12, 243, 148, 72, 240, 76, 28, 9, 197, 76, 51, 210, 104, 80, 66, 20, 8, 197, 72, 81, 9,
+			56, 144, 65, 9, 198, 60, 211, 212, 61, 2, 65, 68, 9, 197, 53, 81, 199, 36, 240, 66, 20, 8, 197, 28, 197, 84, 20, 240, 65, 8,
+			197, 28, 149, 82, 36, 16, 66, 9, 198, 24, 243, 7, 5, 34, 65, 67, 8, 197, 20, 113, 82, 36, 16, 66, 9, 198, 9, 83, 7, 5,
+			34, 65, 67, 8, 197, 4, 97, 143, 72, 144, 65, 8, 197, 4, 50, 5, 56, 144, 20, 0, 9, 198, 76, 147, 133, 17, 34, 64, 20, 9,
+			198, 9, 83, 7, 5, 34, 64, 65, 9, 198, 4, 84, 143, 77, 64, 84, 66, 0, 15, 203, 52, 243, 143, 12, 245, 9, 48, 81, 15, 56,
+			144, 69, 20, 10, 199, 4, 52, 85, 20, 67, 212, 80, 21, 0, 11, 200, 77, 68, 129, 56, 117, 82, 36, 16, 67, 11, 200, 52, 243, 148,
+			21, 97, 82, 16, 144, 21, 11, 200, 52, 243, 66, 5, 35, 195, 12, 144, 20, 7, 195, 44, 20, 15, 66, 20, 11, 200, 13, 80, 149, 49,
+			65, 82, 36, 16, 67, 11, 200, 4, 115, 210, 4, 99, 194, 36, 16, 69, 11, 200, 4, 34, 79, 81, 35, 198, 36, 16, 69, 0, 6, 195,
+			85, 65, 82, 65, 6, 195, 52, 85, 18, 21, 10, 198, 36, 83, 80, 76, 19, 5, 65, 20, 8, 197, 4, 64, 77, 5, 48, 67, 0, 0,
+			15, 204, 56, 85, 82, 61, 4, 201, 12, 130, 65, 81, 34, 65, 70, 14, 203, 36, 195, 21, 52, 147, 143, 80, 80, 206, 36, 48, 20, 0,
+			7, 196, 21, 53, 5, 80, 20, 7, 196, 5, 53, 1, 80, 65, 9, 198, 5, 32, 71, 61, 53, 0, 21, 0, 8, 197, 52, 17, 18, 5,
+			48, 66, 9, 198, 4, 65, 82, 8, 19, 5, 66, 0, 9, 198, 72, 144, 83, 76, 85, 20, 20, 0, 10, 199, 88, 19, 12, 20, 51, 210,
+			76, 21, 10, 199, 24, 147, 1, 57, 68, 143, 64, 66, 0, 7, 196, 76, 145, 86, 20, 20, 0, 8, 197, 77, 1, 67, 60, 192, 20, 12,
+			201, 76, 245, 20, 61, 4, 143, 16, 245, 20, 21, 8, 197, 24, 20, 195, 36, 224, 65, 8, 197, 12, 20, 195, 36, 224, 65, 8, 197, 8,
+			20, 142, 4, 32, 65, 8, 197, 4, 192, 207, 60, 192, 65, 0, 9, 198, 88, 80, 195, 32, 144, 64, 20, 9, 198, 81, 84, 131, 32, 144,
+			64, 66, 9, 198, 80, 85, 20, 60, 144, 64, 21, 9, 198, 72, 244, 193, 48, 144, 64, 67, 9, 198, 52, 19, 16, 20, 228, 192, 21, 9,
+			198, 24, 244, 195, 32, 144, 64, 66, 9, 198, 12, 240, 195, 32, 144, 64, 20, 9, 198, 12, 20, 137, 61, 66, 80, 67, 9, 198, 4, 48,
+			193, 16, 144, 64, 67, 9, 198, 4, 32, 129, 16, 144, 64, 67, 0, 6, 195, 76, 144, 64, 72, 10, 135, 2, 5, 14, 3, 8, 195, 168,
+			8, 10, 199, 65, 35, 208, 72, 145, 84, 4, 68, 12, 201, 65, 35, 195, 20, 66, 77, 20, 229, 0, 20, 0, 8, 196, 56, 81, 204, 36,
+			72, 28, 11, 200, 52, 243, 148, 21, 161, 77, 60, 192, 20, 9, 198, 16, 144, 80, 5, 51, 206, 66, 7, 196, 12, 244, 212, 36, 66, 9,
+			198, 4, 32, 129, 56, 67, 206, 21, 0, 8, 197, 76, 20, 147, 36, 224, 65, 8, 197, 52, 19, 135, 4, 224, 65, 12, 201, 4, 229, 15,
+			56, 243, 65, 76, 144, 64, 68, 0, 9, 198, 72, 244, 207, 48, 144, 64, 67, 9, 198, 64, 193, 83, 80, 144, 64, 65, 13, 202, 64, 145,
+			90, 60, 83, 5, 81, 68, 137, 12, 20, 0, 10, 198, 76, 179, 208, 20, 195, 211, 65, 21, 6, 195, 20, 209, 64, 20, 11, 199, 8, 83,
+			22, 20, 65, 82, 20, 67, 21, 0, 7, 196, 72, 81, 207, 48, 65, 7, 196, 64, 17, 207, 16, 20, 12, 200, 52, 243, 148, 20, 209, 83,
+			60, 192, 67, 20, 7, 196, 52, 241, 207, 48, 66, 9, 198, 16, 144, 76, 21, 69, 0, 20, 6, 195, 12, 145, 67, 20, 7, 196, 4, 228,
+			201, 4, 65, 7, 196, 4, 115, 211, 80, 21, 0, 9, 197, 104, 81, 134, 37, 32, 65, 20, 12, 201, 21, 51, 211, 12, 129, 76, 21, 68,
+			128, 67, 6, 195, 4, 209, 66, 20, 0, 9, 198, 21, 49, 81, 84, 145, 64, 20, 9, 198, 12, 240, 195, 36, 113, 64, 20, 0, 6, 195,
+			64, 241, 64, 20, 0, 7, 196, 76, 17, 207, 52, 65, 0, 8, 197, 88, 84, 148, 61, 96, 65, 8, 197, 80, 81, 84, 21, 64, 20, 8,
+			197, 80, 19, 129, 29, 32, 65, 8, 197, 48, 22, 154, 5, 32, 65, 12, 201, 24, 243, 148, 4, 225, 76, 36, 49, 64, 21, 8, 197, 20,
+			209, 82, 37, 64, 66, 9, 198, 12, 243, 3, 32, 145, 5, 20, 0, 9, 198, 88, 84, 142, 36, 49, 64, 66, 6, 195, 80, 243, 73, 20,
+			9, 198, 12, 244, 142, 36, 49, 64, 66, 9, 198, 4, 229, 9, 56, 241, 64, 66, 0, 10, 199, 81, 32, 77, 60, 113, 201, 4, 20, 12,
+			201, 24, 243, 148, 4, 226, 71, 61, 33, 0, 21, 9, 198, 12, 19, 3, 5, 33, 79, 66, 0, 7, 196, 73, 81, 137, 56, 65, 9, 198,
+			64, 19, 148, 4, 195, 206, 67, 7, 196, 52, 241, 207, 72, 65, 7, 196, 8, 21, 76, 20, 67, 0, 8, 197, 36, 229, 133, 12, 80, 8,
+			8, 197, 81, 83, 137, 76, 144, 65, 8, 197, 73, 81, 134, 36, 16, 66, 8, 197, 65, 35, 210, 60, 112, 65, 8, 197, 61, 32, 77, 4,
+			144, 67, 8, 197, 56, 147, 137, 88, 80, 65, 9, 198, 37, 51, 212, 72, 244, 0, 66, 8, 197, 12, 130, 83, 76, 16, 66, 8, 197, 5,
+			32, 197, 56, 80, 65, 10, 198, 4, 48, 68, 20, 210, 65, 67, 20, 0, 10, 135, 16, 5, 18, 3, 8, 195, 169, 8, 9, 198, 81, 33,
+			77, 21, 166, 128, 20, 9, 198, 80, 243, 13, 21, 166, 128, 20, 0, 6, 195, 64, 244, 16, 21, 11, 200, 28, 84, 211, 61, 0, 76, 20,
+			224, 21, 10, 199, 12, 243, 5, 61, 69, 5, 72, 20, 0, 7, 196, 76, 49, 76, 80, 21, 8, 196, 61, 101, 133, 72, 66, 21, 9, 198,
+			52, 20, 133, 52, 245, 0, 20, 10, 198, 36, 229, 143, 49, 80, 210, 66, 20, 7, 195, 20, 209, 83, 65, 20, 0, 8, 197, 84, 243, 73,
+			56, 144, 65, 9, 198, 76, 83, 5, 84, 50, 65, 66, 8, 197, 4, 52, 85, 20, 240, 65, 8, 197, 4, 32, 90, 36, 16, 67, 0, 6,
+			195, 16, 243, 65, 20, 6, 195, 4, 195, 197, 20, 0, 0, 12, 200, 52, 144, 210, 60, 225, 83, 36, 16, 67, 20, 11, 200, 36, 224, 213,
+			73, 50, 79, 56, 80, 20, 11, 200, 28, 83, 195, 20, 229, 18, 36, 48, 20, 11, 200, 12, 243, 131, 20, 229, 18, 36, 48, 20, 0, 0,
+			6, 195, 80, 243, 69, 66, 9, 198, 28, 84, 143, 48, 19, 64, 66, 13, 202, 12, 20, 212, 72, 245, 137, 48, 192, 82, 36, 67, 9, 198,
+			4, 208, 76, 28, 19, 64, 66, 0, 6, 195, 21, 67, 128, 20, 9, 198, 5, 32, 200, 36, 195, 195, 66, 7, 195, 4, 195, 192, 66, 20,
+			0, 7, 196, 24, 244, 211, 36, 72, 9, 198, 80, 85, 18, 4, 81, 18, 20, 0, 0, 9, 198, 76, 20, 129, 56, 227, 192, 72, 9, 198,
+			64, 243, 9, 24, 83, 64, 20, 9, 198, 52, 16, 193, 16, 19, 64, 67, 0, 6, 195, 20, 196, 192, 21, 6, 195, 20, 67, 204, 20, 9,
+			198, 4, 229, 8, 20, 210, 83, 65, 0, 7, 196, 64, 145, 86, 20, 20, 0, 9, 198, 8, 20, 149, 52, 147, 137, 66, 0, 9, 198, 81,
+			32, 78, 88, 144, 64, 66, 9, 198, 72, 81, 193, 48, 144, 64, 67, 9, 198, 36, 224, 197, 57, 68, 128, 20, 9, 198, 21, 161, 67, 32,
+			144, 64, 67, 0, 9, 198, 88, 147, 204, 4, 49, 79, 67, 10, 199, 76, 49, 71, 48, 145, 82, 20, 65, 10, 199, 5, 34, 83, 80, 17,
+			207, 72, 67, 0, 8, 196, 80, 145, 210, 20, 66, 20, 0, 12, 201, 76, 51, 210, 12, 144, 84, 60, 144, 64, 21, 9, 198, 4, 48, 213,
+			52, 243, 9, 66, 0, 9, 198, 52, 83, 15, 16, 144, 64, 67, 9, 198, 4, 227, 211, 52, 144, 64, 67, 9, 198, 4, 192, 149, 56, 80,
+			64, 66, 0, 10, 199, 72, 148, 18, 37, 53, 9, 56, 66, 10, 199, 64, 80, 197, 56, 81, 200, 36, 20, 10, 199, 36, 225, 197, 28, 225,
+			82, 20, 67, 6, 195, 20, 213, 64, 66, 10, 199, 12, 83, 148, 60, 48, 200, 36, 20, 0, 9, 198, 12, 149, 20, 4, 227, 214, 20, 0,
+			8, 197, 24, 84, 133, 81, 32, 65, 12, 201, 12, 148, 212, 36, 97, 76, 48, 80, 64, 67, 8, 197, 8, 20, 129, 81, 32, 65, 0, 0,
+			0, 0, 9, 198, 88, 147, 204, 4, 49, 69, 67, 0, 9, 198, 76, 85, 20, 36, 209, 64, 65, 9, 198, 76, 52, 143, 24, 243, 0, 65,
+			6, 195, 64, 241, 77, 20, 9, 198, 56, 240, 195, 36, 243, 0, 20, 9, 198, 25, 32, 84, 80, 83, 80, 20, 10, 198, 12, 21, 5, 12,
+			243, 0, 67, 20, 9, 198, 4, 84, 143, 28, 83, 0, 67, 0, 10, 199, 64, 84, 146, 20, 112, 85, 96, 66, 9, 198, 36, 68, 143, 12,
+			244, 147, 21, 10, 199, 4, 224, 83, 80, 20, 201, 4, 67, 0, 7, 196, 76, 145, 84, 20, 72, 9, 198, 36, 225, 15, 52, 149, 0, 66,
+			9, 198, 21, 49, 82, 12, 149, 0, 66, 7, 196, 12, 245, 80, 20, 67, 9, 198, 8, 144, 84, 32, 195, 206, 65, 0, 8, 197, 24, 16,
+			195, 36, 240, 76, 9, 198, 88, 148, 201, 28, 245, 9, 20, 8, 197, 80, 80, 206, 36, 48, 20, 8, 197, 72, 148, 15, 48, 144, 65, 8,
+			197, 64, 144, 206, 36, 48, 66, 8, 197, 61, 35, 211, 20, 144, 67, 9, 197, 8, 84, 143, 36, 16, 65, 21, 8, 197, 8, 16, 200, 20,
+			48, 20, 8, 197, 5, 161, 71, 48, 144, 20, 0, 9, 198, 81, 32, 77, 21, 166, 128, 20, 9, 198, 64, 20, 146, 36, 50, 68, 67, 9,
+			198, 48, 19, 149, 76, 82, 64, 67, 9, 198, 5, 32, 193, 56, 113, 76, 66, 0, 10, 199, 12, 129, 76, 36, 49, 82, 36, 66, 0, 11,
+			200, 76, 245, 20, 61, 33, 9, 56, 80, 21, 12, 201, 76, 51, 5, 72, 241, 5, 72, 210, 65, 68, 9, 198, 72, 80, 193, 64, 149, 0,
+			66, 11, 200, 52, 243, 69, 57, 64, 78, 20, 240, 67, 11, 200, 37, 53, 1, 57, 64, 78, 20, 240, 67, 0, 8, 197, 48, 83, 206, 104,
+			144, 20, 9, 198, 4, 192, 200, 36, 210, 65, 66, 0, 9, 198, 72, 243, 65, 28, 227, 204, 67, 9, 198, 12, 243, 12, 20, 114, 64, 20,
+			0, 6, 195, 64, 241, 84, 20, 11, 199, 20, 212, 5, 16, 240, 204, 20, 66, 20, 10, 199, 12, 20, 193, 80, 145, 76, 48, 21, 0, 9,
+			198, 77, 64, 82, 61, 53, 0, 65, 11, 200, 72, 83, 1, 80, 149, 137, 80, 16, 69, 11, 200, 64, 148, 143, 80, 80, 206, 36, 48, 20,
+			11, 200, 52, 81, 193, 21, 51, 198, 4, 112, 68, 12, 200, 24, 244, 211, 4, 49, 83, 36, 16, 67, 20, 11, 200, 20, 115, 195, 20, 229,
+			18, 36, 48, 20, 0, 6, 18, 66, 195, 160, 0, 195, 178, 0, 195, 179, 0, 195, 185, 0, 97, 0, 111, 0, 117, 0, 7, 6, 18, 67,
+			195, 169, 0, 195, 168, 0, 101, 0, 7, 6, 195, 160, 0, 3, 7, 35, 0, 117, 3, 7, 35, 2, 40, 0, 111, 2, 32, 24, 3, 7,
+			114, 0, 105, 2, 25, 3, 7, 117, 0, 7, 6, 97, 0, 4, 1, 21, 2, 98, 105, 108, 101, 32, 3, 6, 35, 0, 1, 21, 2, 103,
+			103, 105, 110, 101, 32, 0, 2, 116, 116, 101, 114, 17, 65, 32, 0, 118, 97, 110, 111, 1, 21, 2, 32, 14, 128, 128, 133, 3, 6, 35,
+			84, 35, 50, 39, 0, 4, 1, 21, 2, 99, 17, 65, 32, 3, 8, 35, 0, 1, 21, 2, 99, 104, 101, 32, 0, 4, 3, 35, 0, 1,
+			17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 105, 21, 2, 32, 14, 128, 192, 129, 0, 2, 105, 115, 109, 111, 32, 0, 2, 105, 115,
+			116, 17, 65, 32, 0, 117, 3, 35, 2, 40, 0, 111, 2, 32, 24, 3, 114, 0, 4, 101, 8, 2, 114, 3, 117, 0, 105, 2, 25, 0,
+			7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12, 0, 7, 6, 99, 0, 111, 1, 21, 2, 108, 17, 65, 32, 3, 8, 49, 39, 0, 4,
+			3, 49, 0, 104, 0, 4, 99, 3, 49, 12, 0, 99, 104, 0, 4, 2, 17, 71, 3, 76, 0, 2, 39, 0, 105, 2, 17, 65, 0, 4,
+			99, 2, 17, 71, 3, 76, 12, 0, 99, 105, 2, 17, 65, 0, 7, 6, 100, 0, 101, 114, 101, 1, 110, 3, 8, 72, 36, 51, 36, 0,
+			3, 72, 0, 100, 3, 72, 12, 0, 7, 6, 101, 0, 4, 1, 21, 2, 115, 105, 109, 111, 32, 3, 6, 36, 0, 1, 21, 2, 118, 111,
+			108, 17, 65, 32, 0, 2, 109, 111, 110, 17, 65, 32, 0, 4, 1, 17, 65, 2, 114, 32, 3, 6, 109, 0, 1, 21, 2, 114, 114, 105,
+			109, 111, 32, 0, 1, 21, 2, 99, 105, 32, 3, 8, 36, 0, 4, 1, 17, 67, 2, 114, 101, 32, 3, 8, 109, 0, 1, 17, 67, 11,
+			2, 114, 17, 65, 32, 0, 4, 3, 36, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 102, 2, 114, 109, 0, 1, 104, 2,
+			115, 115, 0, 1, 109, 2, 115, 115, 0, 1, 109, 21, 2, 110, 116, 17, 65, 32, 0, 1, 114, 17, 65, 21, 2, 32, 0, 2, 110, 103,
+			17, 65, 32, 0, 2, 114, 115, 105, 32, 24, 0, 2, 115, 115, 97, 32, 0, 2, 116, 116, 17, 65, 32, 0, 2, 122, 122, 17, 65, 32,
+			0, 8, 17, 67, 115, 2, 115, 115, 0, 4, 1, 99, 2, 116, 116, 17, 65, 32, 3, 109, 0, 1, 103, 2, 110, 101, 0, 1, 103, 103,
+			2, 114, 111, 32, 0, 1, 114, 2, 109, 0, 2, 17, 65, 0, 2, 17, 67, 11, 17, 65, 32, 0, 2, 17, 67, 32, 0, 2, 17, 67,
+			105, 17, 67, 17, 65, 32, 0, 2, 17, 67, 117, 108, 17, 65, 32, 0, 2, 108, 0, 2, 108, 108, 117, 0, 2, 110, 17, 65, 32, 0,
+			2, 110, 17, 67, 17, 65, 32, 0, 2, 114, 0, 2, 115, 116, 0, 2, 116, 105, 0, 2, 116, 114, 0, 2, 116, 116, 105, 21, 0, 2,
+			118, 105, 32, 0, 2, 118, 111, 32, 0, 2, 122, 17, 65, 0, 8, 114, 0, 105, 2, 25, 3, 109, 57, 0, 7, 6, 102, 0, 4, 1,
+			17, 65, 2, 101, 114, 111, 32, 3, 8, 83, 0, 1, 17, 65, 21, 2, 105, 108, 111, 32, 0, 3, 83, 0, 7, 6, 103, 0, 103, 101,
+			114, 1, 21, 2, 108, 111, 32, 3, 8, 75, 12, 36, 51, 0, 4, 108, 2, 105, 3, 61, 0, 108, 2, 195, 172, 0, 108, 105, 2, 17,
+			65, 0, 110, 3, 67, 0, 4, 2, 17, 71, 3, 75, 0, 105, 1, 110, 2, 97, 32, 0, 105, 2, 17, 65, 0, 4, 105, 2, 97, 32,
+			3, 75, 6, 125, 0, 195, 172, 2, 97, 32, 0, 4, 103, 2, 17, 71, 3, 75, 12, 0, 103, 105, 2, 17, 65, 0, 4, 3, 81, 0,
+			104, 0, 103, 3, 81, 12, 0, 108, 8, 3, 81, 55, 0, 117, 2, 17, 65, 3, 81, 58, 0, 7, 6, 104, 0, 3, 0, 4, 97, 8,
+			3, 107, 6, 35, 0, 195, 160, 8, 0, 7, 6, 105, 0, 4, 1, 108, 2, 17, 65, 3, 2, 37, 0, 1, 114, 2, 17, 65, 0, 4,
+			1, 21, 2, 98, 105, 108, 101, 32, 3, 6, 37, 0, 1, 21, 2, 100, 101, 114, 101, 32, 0, 2, 97, 99, 17, 65, 32, 0, 2, 97,
+			115, 105, 32, 0, 2, 103, 101, 110, 17, 65, 32, 0, 4, 97, 1, 29, 2, 32, 3, 6, 37, 35, 0, 97, 1, 102, 97, 2, 32, 0,
+			97, 1, 110, 111, 102, 2, 32, 0, 97, 1, 112, 111, 99, 115, 2, 32, 0, 97, 1, 114, 101, 2, 32, 0, 97, 1, 114, 111, 103, 2,
+			32, 0, 97, 1, 114, 116, 101, 109, 2, 32, 0, 97, 1, 116, 2, 32, 0, 110, 97, 115, 2, 32, 3, 6, 37, 50, 35, 89, 0, 115,
+			115, 101, 114, 111, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 37, 89, 89, 36, 34, 39, 0, 115, 115, 105, 109, 97, 1, 21, 2, 32,
+			14, 128, 128, 134, 3, 6, 37, 89, 89, 37, 65, 35, 0, 115, 115, 105, 109, 101, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 37, 89,
+			89, 37, 65, 36, 0, 115, 115, 105, 109, 105, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 37, 89, 89, 37, 65, 37, 0, 115, 115, 105,
+			109, 111, 1, 21, 2, 32, 14, 128, 128, 134, 3, 6, 37, 89, 89, 37, 65, 39, 0, 4, 1, 21, 2, 99, 17, 65, 32, 3, 8, 37,
+			0, 1, 21, 2, 99, 104, 17, 65, 32, 0, 1, 21, 2, 100, 17, 65, 32, 0, 1, 21, 2, 103, 17, 65, 32, 0, 1, 21, 2, 109,
+			97, 32, 0, 1, 21, 2, 109, 111, 32, 0, 1, 98, 2, 108, 101, 32, 0, 1, 99, 2, 108, 17, 65, 32, 0, 1, 103, 2, 108, 17,
+			65, 32, 0, 1, 109, 2, 108, 101, 32, 0, 1, 112, 2, 116, 101, 32, 0, 1, 114, 17, 67, 97, 108, 2, 109, 97, 32, 0, 1, 115,
+			115, 2, 108, 17, 65, 32, 0, 2, 108, 17, 65, 32, 0, 2, 110, 101, 32, 0, 97, 1, 21, 2, 32, 3, 8, 37, 2, 35, 0, 111,
+			1, 21, 2, 32, 14, 128, 192, 129, 3, 8, 37, 2, 39, 0, 4, 3, 37, 0, 1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1,
+			21, 2, 17, 65, 110, 116, 101, 32, 0, 1, 114, 2, 109, 97, 32, 0, 1, 114, 116, 2, 99, 101, 32, 0, 1, 116, 115, 2, 109, 97,
+			32, 0, 1, 122, 110, 101, 2, 109, 97, 32, 0, 2, 111, 0, 2, 195, 178, 0, 2, 195, 179, 0, 8, 17, 67, 2, 97, 0, 8, 17,
+			67, 2, 195, 160, 0, 195, 160, 1, 21, 2, 32, 3, 37, 6, 35, 0, 4, 101, 1, 21, 2, 114, 17, 65, 32, 3, 37, 6, 109, 0,
+			195, 168, 1, 21, 2, 114, 17, 65, 32, 0, 195, 169, 1, 21, 2, 114, 17, 65, 32, 0, 4, 1, 18, 67, 2, 12, 3, 57, 0, 1,
+			97, 2, 12, 0, 1, 111, 2, 12, 0, 1, 160, 195, 2, 12, 0, 2, 17, 65, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0,
+			3, 49, 0, 107, 3, 49, 12, 0, 7, 6, 108, 0, 4, 3, 55, 0, 108, 2, 32, 0, 108, 2, 17, 67, 3, 55, 10, 0, 7, 6,
+			109, 0, 3, 65, 0, 105, 1, 17, 65, 2, 97, 32, 3, 65, 6, 37, 0, 7, 6, 110, 0, 4, 3, 50, 0, 2, 103, 17, 71, 0,
+			4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 4, 1, 21, 2, 103, 110, 111, 108, 111, 32, 3, 6, 39, 0, 1, 21, 2,
+			110, 122, 111, 108, 111, 32, 0, 4, 1, 21, 2, 102, 111, 110, 111, 32, 3, 6, 110, 0, 1, 21, 2, 103, 114, 97, 102, 111, 32, 0,
+			1, 21, 2, 108, 111, 103, 111, 32, 0, 1, 21, 2, 109, 101, 116, 114, 111, 32, 0, 1, 21, 2, 110, 111, 109, 111, 32, 0, 1, 108,
+			2, 103, 105, 99, 111, 32, 0, 2, 103, 101, 110, 17, 65, 32, 0, 2, 112, 111, 108, 17, 65, 32, 0, 2, 115, 116, 114, 97, 99, 17,
+			65, 32, 0, 4, 1, 21, 2, 100, 105, 32, 3, 8, 39, 0, 1, 21, 2, 100, 111, 32, 0, 1, 114, 100, 2, 109, 111, 32, 0, 1,
+			118, 2, 108, 17, 65, 32, 0, 4, 1, 17, 67, 17, 67, 2, 108, 17, 65, 32, 3, 8, 110, 0, 1, 21, 2, 108, 111, 32, 0, 1,
+			100, 110, 2, 108, 17, 65, 32, 0, 1, 105, 99, 2, 108, 17, 65, 32, 0, 1, 115, 110, 2, 108, 17, 65, 32, 0, 4, 3, 39, 0,
+			1, 17, 67, 21, 2, 32, 14, 128, 192, 129, 0, 1, 99, 115, 2, 108, 116, 17, 65, 32, 0, 1, 102, 2, 114, 109, 17, 65, 32, 0,
+			1, 105, 2, 110, 101, 0, 1, 105, 2, 115, 111, 32, 0, 1, 105, 21, 2, 32, 14, 128, 192, 129, 0, 1, 114, 17, 65, 2, 115, 115,
+			17, 65, 32, 0, 2, 110, 105, 32, 0, 2, 114, 101, 32, 0, 105, 2, 111, 32, 3, 39, 2, 126, 0, 105, 2, 115, 17, 67, 17, 65,
+			32, 3, 39, 6, 37, 0, 4, 1, 21, 2, 108, 97, 32, 3, 110, 0, 1, 21, 2, 108, 105, 17, 65, 32, 0, 1, 21, 2, 109, 97,
+			32, 0, 1, 21, 2, 109, 111, 32, 0, 1, 99, 2, 108, 116, 17, 65, 32, 0, 1, 99, 115, 2, 112, 0, 1, 105, 0, 1, 105, 2,
+			108, 17, 65, 32, 0, 1, 109, 2, 98, 105, 108, 101, 0, 1, 110, 103, 2, 108, 97, 32, 0, 1, 117, 2, 108, 17, 65, 32, 0, 1,
+			118, 2, 108, 116, 0, 2, 17, 67, 11, 17, 65, 32, 0, 2, 17, 67, 17, 65, 17, 67, 17, 65, 32, 0, 2, 17, 67, 17, 67, 32,
+			0, 2, 17, 67, 114, 0, 2, 99, 97, 32, 0, 2, 99, 111, 32, 0, 2, 108, 29, 0, 2, 108, 105, 0, 2, 110, 105, 0, 2, 110,
+			111, 32, 0, 2, 111, 0, 2, 114, 0, 2, 115, 105, 32, 0, 2, 115, 115, 0, 2, 115, 116, 0, 2, 116, 116, 111, 108, 0, 2, 122,
+			17, 65, 0, 105, 3, 110, 2, 126, 0, 7, 6, 112, 0, 1, 109, 21, 2, 101, 114, 101, 32, 3, 8, 48, 0, 3, 48, 0, 112, 3,
+			48, 12, 0, 110, 8, 2, 21, 21, 3, 50, 0, 115, 8, 2, 17, 65, 21, 3, 89, 0, 7, 6, 113, 0, 4, 3, 49, 122, 0, 117,
+			0, 7, 6, 114, 0, 4, 3, 14, 16, 0, 1, 17, 67, 0, 8, 0, 1, 17, 65, 2, 17, 65, 3, 51, 0, 114, 3, 51, 16, 0,
+			7, 6, 115, 0, 1, 17, 65, 2, 17, 65, 3, 88, 0, 105, 97, 1, 21, 3, 88, 6, 37, 35, 0, 105, 195, 160, 1, 21, 3, 88,
+			37, 6, 35, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 1, 107, 0, 1, 108, 0, 1, 112, 0, 2, 99, 0, 2,
+			102, 0, 2, 107, 0, 2, 112, 0, 2, 113, 0, 2, 116, 0, 2, 120, 0, 8, 0, 105, 97, 1, 17, 67, 21, 3, 89, 6, 37, 35,
+			0, 99, 104, 2, 17, 71, 3, 89, 49, 0, 115, 3, 89, 89, 0, 4, 99, 2, 17, 71, 3, 91, 0, 99, 105, 2, 17, 65, 0, 104,
+			1, 25, 0, 104, 2, 25, 0, 4, 99, 105, 2, 105, 3, 91, 2, 37, 0, 99, 105, 2, 195, 172, 0, 7, 6, 116, 0, 3, 47, 0,
+			116, 3, 47, 12, 0, 7, 6, 117, 0, 4, 1, 21, 2, 99, 111, 108, 111, 32, 3, 6, 40, 0, 1, 21, 2, 100, 105, 110, 101, 32,
+			0, 2, 105, 116, 111, 32, 0, 1, 21, 2, 108, 17, 65, 32, 3, 8, 40, 0, 4, 3, 40, 0, 1, 108, 25, 2, 17, 65, 0, 1,
+			114, 25, 2, 17, 65, 0, 2, 17, 65, 3, 122, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 122, 0, 7, 6, 120, 0,
+			3, 49, 89, 0, 7, 6, 121, 0, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 4, 2, 18, 66, 17, 65, 3, 72, 88, 0,
+			8, 2, 105, 0, 8, 2, 195, 172, 0, 3, 123, 0, 122, 1, 17, 65, 3, 123, 12, 0, 7, 6, 0, 33, 1, 19, 3, 0, 195, 169,
+			3, 7, 36, 0, 195, 172, 3, 7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 179, 105, 3, 7, 39, 126, 0, 195, 185, 3, 7, 40, 0,
+			195, 168, 3, 7, 109, 0, 195, 168, 105, 2, 25, 3, 7, 109, 57, 0, 195, 178, 3, 7, 110, 0, 195, 178, 105, 3, 7, 110, 126, 0,
+			195, 169, 105, 2, 25, 3, 7, 118, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0,
+			33, 3, 10, 48, 6, 40, 50, 47, 39, 36, 89, 49, 55, 35, 65, 35, 47, 6, 37, 84, 39, 10, 0, 45, 8, 32, 2, 32, 15, 3,
+			65, 36, 50, 39, 0, 36, 3, 72, 39, 55, 55, 35, 34, 39, 0, 44, 2, 15, 3, 84, 6, 37, 34, 81, 39, 55, 35, 0, 194, 167,
+			3, 89, 36, 123, 37, 6, 39, 50, 36, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts29 = FileInMemory_createWithData (43392, reinterpret_cast<const char *> (&espeakdata_dicts29_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/it_dict", 
 			U"it");
-		my addItem_move (espeakdata_dicts32.move());
+		Collection_addItem (me.peek(), espeakdata_dicts29.transfer());
 
-		static unsigned char espeakdata_dicts33_data[2058] = {
+		static unsigned char espeakdata_dicts30_data[2058] = {
 			0, 4, 0, 0, 84, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 13, 0, 0, 0, 0, 0, 6, 65, 12,
-			91, 13, 0, 0, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 0, 10, 4, 95, 100, 112, 116, 48, 37, 10, 0, 0, 0, 0, 0,
-			0, 6, 65, 24, 83, 13, 0, 0, 0, 0, 0, 6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 10, 65, 32, 13, 107, 6, 13, 71, 40,
-			0, 0, 0, 0, 0, 7, 65, 36, 37, 9, 0, 72, 0, 0, 0, 0, 6, 65, 40, 90, 13, 0, 0, 0, 0, 0, 6, 65, 44, 49,
-			13, 0, 0, 0, 0, 0, 6, 65, 48, 55, 13, 0, 0, 0, 0, 0, 6, 65, 52, 65, 13, 0, 0, 0, 0, 0, 6, 65, 56, 50,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 13, 0, 0, 0, 0, 0, 9, 65, 68, 49, 6, 13, 71, 40, 0, 0,
-			0, 0, 0, 7, 132, 122, 111, 39, 101, 76, 6, 65, 72, 51, 13, 0, 0, 0, 0, 0, 6, 65, 76, 89, 13, 0, 0, 0, 0, 0,
-			6, 65, 80, 47, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 13, 0, 0, 0, 0, 0, 9, 65, 92, 84, 6, 13,
-			71, 40, 0, 0, 0, 0, 0, 6, 65, 96, 101, 13, 0, 0, 0, 0, 0, 8, 65, 100, 6, 13, 71, 40, 0, 0, 0, 0, 0, 6,
-			65, 104, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 99, 117, 39, 105, 91, 6, 40, 107, 37, 11, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 13, 4, 112, 111, 39, 117, 27, 48, 39, 107, 40, 0, 72, 0, 0, 0, 0, 13, 4, 110, 111, 39, 117, 27, 50, 39, 107,
-			40, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 112, 111, 39, 101, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 105,
-			106, 101, 39, 105, 27, 37, 90, 36, 107, 37, 0, 0, 0, 9, 66, 45, 80, 49, 40, 24, 0, 72, 0, 0, 0, 0, 0, 13, 4, 106,
-			97, 39, 97, 90, 6, 35, 107, 35, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
-			66, 56, 16, 50, 6, 35, 11, 0, 0, 10, 67, 8, 242, 64, 71, 112, 24, 0, 72, 0, 0, 0, 0, 10, 67, 44, 82, 64, 49, 111,
-			24, 0, 72, 10, 67, 56, 242, 64, 27, 50, 112, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 114, 117, 39, 101, 51, 6, 40,
-			107, 36, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 69, 36, 163, 206, 4, 144, 27, 37, 90, 39, 50, 6, 110, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 10, 67, 36, 160, 64, 27, 37, 90, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 36, 161, 64, 27, 37, 90,
-			36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 64, 82, 64, 48, 6, 111, 11, 0, 0, 0, 0, 6, 131, 101,
-			39, 111, 76, 0, 10, 67, 28, 242, 64, 27, 81, 112, 0, 72, 10, 67, 56, 18, 64, 50, 6, 110, 11, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 10, 67, 36, 163, 192, 27, 37, 90, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67,
-			88, 21, 64, 84, 108, 24, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 36, 161, 78, 4,
-			144, 27, 37, 90, 36, 50, 110, 0, 0, 0, 0, 0, 0, 0, 13, 68, 36, 224, 74, 4, 27, 37, 50, 35, 90, 35, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 2, 95, 51, 91, 37, 0, 0, 7, 2, 95, 50, 51, 36, 0, 0, 7, 2, 95, 49, 48, 35, 0, 0, 7, 2, 95, 48,
-			50, 39, 0, 0, 7, 2, 95, 55, 88, 36, 0, 0, 7, 2, 95, 54, 101, 35, 0, 0, 7, 2, 95, 53, 65, 40, 0, 0, 7, 2,
-			95, 52, 84, 39, 0, 0, 0, 0, 7, 2, 95, 57, 89, 39, 0, 0, 7, 2, 95, 56, 71, 37, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 15, 69, 36, 160, 78, 4, 144, 27, 37, 90, 35, 50, 6, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 97, 35, 71, 40, 0, 0, 0, 0, 0, 8,
-			2, 95, 101, 36, 71, 40, 0, 0, 0, 0, 0, 8, 2, 95, 105, 37, 71, 40, 0, 0, 0, 8, 2, 95, 111, 39, 71, 40, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 117, 40, 71, 40, 0, 0, 0, 0, 0, 0, 9, 66, 80, 240, 24, 47, 39, 0,
+			91, 13, 0, 0, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 0,
+			0, 6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 10, 65, 32, 13, 107, 6, 13, 71, 40, 0, 0, 0, 0, 0, 7, 65, 36, 37, 9,
+			0, 72, 0, 0, 0, 0, 6, 65, 40, 90, 13, 0, 0, 0, 0, 0, 6, 65, 44, 49, 13, 0, 0, 0, 0, 0, 6, 65, 48, 55,
+			13, 0, 0, 0, 0, 0, 6, 65, 52, 65, 13, 0, 0, 0, 0, 0, 6, 65, 56, 50, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 65, 64, 48, 13, 0, 0, 0, 0, 0, 9, 65, 68, 49, 6, 13, 71, 40, 0, 0, 0, 0, 0, 6, 65, 72, 51, 13, 0, 0,
+			0, 0, 0, 6, 65, 76, 89, 13, 0, 0, 0, 0, 0, 6, 65, 80, 47, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88,
+			84, 13, 0, 0, 0, 0, 0, 9, 65, 92, 84, 6, 13, 71, 40, 0, 0, 0, 0, 0, 6, 65, 96, 101, 13, 0, 0, 0, 0, 0,
+			8, 65, 100, 6, 13, 71, 40, 0, 0, 0, 0, 0, 6, 65, 104, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 4, 3, 21, 39, 9, 91, 6, 40, 107, 37, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 95, 4, 16, 20, 48, 37,
+			10, 0, 0, 0, 0, 0, 0, 7, 132, 16, 15, 39, 5, 76, 0, 0, 0, 0, 7, 132, 26, 15, 39, 5, 76, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 13, 4, 16, 15, 39, 21, 27, 48, 39, 107, 40, 0, 72, 0, 0, 0, 0, 13, 4, 14, 15, 39, 21,
+			27, 50, 39, 107, 40, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 69, 36, 163, 206, 4, 144, 27, 37, 90,
+			39, 50, 6, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 14, 69, 36, 161, 78, 4, 144, 27, 37, 90, 36, 50, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
+			4, 10, 1, 39, 1, 90, 6, 35, 107, 35, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 45, 80, 49, 40, 24, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 56, 16, 50, 6, 35, 11, 0, 0, 10, 67, 8, 242, 64, 71,
+			112, 24, 0, 72, 0, 0, 0, 0, 10, 67, 44, 82, 64, 49, 111, 24, 0, 72, 10, 67, 56, 242, 64, 27, 50, 112, 0, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 36, 160, 64, 27, 37, 90, 35,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 36, 161, 64, 27, 37, 90, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68,
+			36, 224, 74, 4, 27, 37, 50, 35, 90, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 18, 21, 39, 5, 51, 6, 40, 107,
+			36, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 9, 10, 5, 39, 9, 27, 37, 90, 36, 107, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 5, 39, 15, 76,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 64, 82, 64, 48, 6, 111, 11, 0, 0, 0, 0,
+			0, 10, 67, 28, 242, 64, 27, 81, 112, 0, 72, 10, 67, 56, 18, 64, 50, 6, 110, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			67, 36, 163, 192, 27, 37, 90, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 88, 21, 64,
+			84, 108, 24, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 1, 35, 71, 40, 0, 0, 0, 0, 0, 8,
+			2, 95, 5, 36, 71, 40, 0, 0, 0, 0, 8, 2, 95, 9, 37, 71, 40, 0, 0, 0, 8, 2, 95, 15, 39, 71, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 21, 40, 71, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 95, 51, 91, 37, 0, 0, 7, 2, 95, 50, 51, 36, 0, 0, 7, 2,
+			95, 49, 48, 35, 0, 0, 7, 2, 95, 48, 50, 39, 0, 0, 7, 2, 95, 55, 88, 36, 0, 0, 7, 2, 95, 54, 101, 35, 0, 0,
+			7, 2, 95, 53, 65, 40, 0, 0, 7, 2, 95, 52, 84, 39, 0, 0, 0, 0, 7, 2, 95, 57, 89, 39, 0, 0, 7, 2, 95, 56,
+			71, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 69, 36, 160, 78, 4, 144, 27, 37, 90, 35, 50, 6, 110, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 66, 80, 240, 24, 47, 39, 0,
 			72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33778,363 +23047,405 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121, 0, 3, 13, 0, 7, 6, 122, 0, 3, 88,
 			0, 7, 6, 0, 203, 136, 3, 6, 0, 39, 8, 2, 32, 3, 6, 13, 107, 13, 0, 4, 46, 3, 11, 0, 46, 2, 32, 14, 128, 128,
 			129, 0, 46, 8, 2, 21, 14, 128, 132, 129, 0, 39, 3, 107, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts33 = FileInMemory_createWithData (2057, reinterpret_cast<const char *> (&espeakdata_dicts33_data), 
-			U"espeak-1.48.04-source/espeak-data/jbo_dict", 
+		autoFileInMemory espeakdata_dicts30 = FileInMemory_createWithData (2057, reinterpret_cast<const char *> (&espeakdata_dicts30_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/jbo_dict", 
 			U"jbo");
-		my addItem_move (espeakdata_dicts33.move());
+		Collection_addItem (me.peek(), espeakdata_dicts30.transfer());
 
-		static unsigned char espeakdata_dicts34_data[3139] = {
-			0, 4, 0, 0, 170, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4,
-			95, 100, 112, 116, 65, 25, 36, 55, 37, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 33, 111, 6,
-			35, 101, 37, 55, 37, 89, 15, 50, 4, 37, 91, 35, 50, 37, 0, 0, 0, 12, 1, 35, 50, 6, 39, 65, 36, 34, 37, 0, 27, 0,
-			0, 13, 1, 37, 48, 34, 39, 109, 36, 50, 47, 37, 0, 27, 0, 6, 1, 38, 72, 35, 0, 0, 0, 0, 0, 16, 1, 42, 84, 35,
-			34, 84, 89, 49, 84, 55, 35, 84, 37, 0, 27, 0, 11, 1, 43, 48, 55, 37, 40, 89, 37, 0, 27, 0, 0, 0, 11, 1, 46, 112,
-			36, 34, 47, 37, 55, 37, 0, 0, 29, 1, 47, 65, 6, 35, 34, 109, 101, 50, 37, 84, 15, 72, 6, 35, 101, 34, 37, 55, 37, 15,
-			101, 6, 35, 88, 37, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 61, 47, 39, 55, 39, 71, 35,
-			0, 27, 0, 0, 0, 11, 1, 64, 111, 35, 100, 55, 40, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 10, 4, 95, 48, 67, 48, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 67, 33, 69, 16, 6, 36, 57, 76, 47, 37,
-			47, 37, 48, 107, 37, 10, 0, 81, 58, 47, 47, 32, 0, 6, 65, 88, 21, 0, 47, 0, 0, 0, 0, 29, 1, 92, 65, 6, 35, 34,
-			75, 84, 50, 37, 84, 15, 72, 6, 35, 101, 34, 37, 55, 37, 15, 101, 6, 35, 88, 37, 0, 27, 0, 0, 0, 0, 6, 65, 96, 21,
-			0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 225, 131, 147, 225, 131, 144, 72,
-			28, 0, 0, 12, 4, 95, 50, 67, 48, 39, 34, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 9, 3, 225, 131, 156, 50, 6, 13, 0, 0, 7, 3, 225, 131, 157, 39, 0, 0, 9, 3, 225, 131, 158, 48, 6, 13,
-			0, 0, 9, 3, 225, 131, 159, 90, 6, 13, 0, 0, 7, 3, 225, 131, 152, 37, 0, 0, 9, 3, 225, 131, 153, 49, 6, 13, 0, 0,
-			9, 3, 225, 131, 154, 55, 6, 13, 0, 0, 9, 3, 225, 131, 155, 65, 6, 13, 0, 0, 0, 9, 3, 225, 131, 149, 84, 6, 13, 0,
-			0, 9, 3, 225, 131, 150, 88, 6, 13, 0, 0, 9, 3, 225, 131, 151, 25, 6, 13, 0, 0, 7, 3, 225, 131, 144, 35, 0, 0, 9,
-			3, 225, 131, 145, 71, 6, 13, 0, 0, 9, 3, 225, 131, 146, 81, 6, 13, 0, 0, 9, 3, 225, 131, 147, 72, 6, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 225, 131, 184, 36, 55, 37, 83, 37,
-			0, 0, 0, 0, 9, 3, 225, 131, 181, 107, 39, 36, 0, 0, 9, 3, 225, 131, 180, 107, 35, 34, 0, 0, 10, 3, 225, 131, 183, 89,
-			107, 84, 35, 0, 0, 8, 3, 225, 131, 182, 83, 37, 0, 0, 8, 3, 225, 131, 177, 107, 36, 0, 0, 9, 3, 225, 131, 176, 107, 6,
-			13, 0, 0, 9, 3, 225, 131, 179, 84, 37, 36, 0, 13, 4, 95, 51, 67, 48, 89, 35, 65, 35, 89, 37, 0, 0, 9, 3, 225, 131,
-			178, 107, 37, 36, 0, 0, 9, 3, 225, 131, 173, 80, 6, 13, 0, 0, 9, 3, 225, 131, 172, 112, 6, 13, 0, 0, 9, 3, 225, 131,
-			175, 75, 6, 13, 0, 0, 9, 3, 225, 131, 174, 101, 6, 13, 0, 0, 9, 3, 225, 131, 169, 76, 6, 13, 0, 0, 9, 3, 225, 131,
-			168, 91, 6, 13, 0, 0, 9, 3, 225, 131, 171, 111, 6, 13, 0, 0, 9, 3, 225, 131, 170, 109, 6, 13, 0, 0, 9, 3, 225, 131,
-			165, 110, 6, 13, 0, 0, 9, 3, 225, 131, 164, 108, 6, 13, 0, 0, 9, 3, 225, 131, 167, 104, 6, 13, 0, 0, 9, 3, 225, 131,
-			166, 100, 6, 13, 0, 0, 9, 3, 225, 131, 161, 89, 6, 13, 0, 0, 9, 3, 225, 131, 160, 34, 6, 13, 0, 0, 7, 3, 225, 131,
-			163, 40, 0, 7, 3, 225, 131, 163, 40, 0, 0, 9, 3, 225, 131, 162, 47, 6, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 16, 5, 95, 48, 77, 50, 120, 65, 6, 37, 55, 37, 39, 50, 37, 0, 0, 0, 0, 13, 4, 95, 52, 67, 48, 39,
-			47, 101, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 48,
-			6, 39, 109, 37, 0, 0, 0, 14, 5, 95, 48, 77, 49, 120, 6, 35, 25, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 48, 90, 53, 65, 36, 6,
-			35, 89, 37, 35, 25, 35, 89, 36, 72, 37, 0, 13, 3, 95, 54, 48, 89, 6, 35, 65, 39, 112, 37, 0, 0, 20, 4, 95, 48, 90,
-			52, 65, 36, 6, 35, 25, 37, 35, 25, 35, 89, 36, 72, 37, 0, 8, 3, 95, 48, 67, 35, 89, 0, 0, 0, 19, 4, 95, 48, 90,
-			54, 65, 36, 65, 6, 37, 55, 37, 39, 50, 36, 72, 37, 0, 0, 15, 4, 95, 48, 90, 49, 65, 36, 6, 35, 25, 36, 72, 37, 0,
-			0, 0, 17, 4, 95, 48, 90, 51, 65, 36, 6, 35, 25, 35, 89, 36, 72, 37, 0, 0, 15, 4, 95, 48, 90, 50, 65, 36, 6, 35,
-			89, 36, 72, 37, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 53, 67, 48, 101, 6, 40, 25, 35, 89, 37, 0, 0, 0, 15, 3, 95,
-			49, 57, 109, 101, 34, 6, 35, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 56, 25, 84, 34, 6, 35, 65, 36, 47, 37, 0, 0, 10,
-			3, 95, 50, 67, 39, 34, 35, 89, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 49, 25, 6, 36, 34, 25, 65, 36, 47, 37, 0,
-			0, 10, 3, 95, 49, 48, 6, 35, 25, 37, 0, 0, 11, 3, 95, 51, 67, 89, 35, 65, 35, 89, 0, 13, 3, 95, 49, 51, 109, 6,
-			35, 65, 36, 47, 37, 0, 0, 14, 3, 95, 49, 50, 25, 6, 39, 34, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 53, 25, 101, 6,
-			40, 25, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 52, 25, 6, 39, 25, 101, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 55, 76,
-			84, 6, 37, 72, 65, 36, 47, 37, 0, 0, 16, 3, 95, 49, 54, 25, 6, 36, 110, 84, 89, 65, 36, 47, 37, 0, 0, 0, 0, 11,
-			3, 95, 52, 67, 39, 47, 101, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 53, 67, 101, 6, 40, 25, 35, 89, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 52, 48, 6, 39, 34, 65, 39, 112, 37, 0, 0, 13, 3, 95, 54, 67, 6, 36, 110, 84,
-			89, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 50, 88, 6, 39, 109, 0, 0, 13, 3, 95, 55, 67, 91, 84, 6, 37,
-			72, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 56, 67, 34, 84, 35, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 3, 95, 52, 88, 6, 39, 34, 65, 39, 112, 0, 0, 13, 3, 95, 57, 67, 109, 101, 34, 6, 35, 35, 89, 0, 0, 0, 0, 0,
-			15, 4, 95, 54, 67, 48, 6, 36, 110, 84, 89, 35, 89, 37, 0, 0, 0, 0, 14, 3, 95, 56, 48, 6, 39, 25, 101, 65, 39, 112,
-			37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 54, 88, 89, 6, 35, 65, 39, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 6, 39, 25, 101, 65, 39, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			4, 95, 55, 67, 48, 91, 84, 6, 37, 72, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4,
-			95, 48, 77, 50, 65, 6, 37, 55, 37, 39, 50, 0, 0, 0, 0, 12, 4, 95, 48, 77, 49, 6, 35, 25, 35, 89, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 56, 67, 48, 34, 84, 35, 35, 89, 37, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 15, 4, 95, 57, 67, 48, 109, 101, 34, 6, 35, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 95, 225, 131, 148, 36, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 71, 34, 14, 80, 104, 35, 55, 37, 0, 0, 0, 0, 14, 2, 95,
-			39, 35, 48, 39, 89, 47, 34, 39, 83, 37, 0, 0, 0, 0, 0, 0, 0, 34, 2, 95, 41, 65, 6, 35, 34, 75, 84, 36, 50, 35,
-			15, 65, 34, 14, 81, 84, 6, 35, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 35, 2, 95, 41, 65, 6, 35, 34, 75,
-			84, 36, 50, 35, 15, 108, 6, 37, 81, 40, 34, 4, 40, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 34, 2, 95,
-			40, 65, 6, 35, 34, 109, 101, 36, 50, 35, 15, 65, 34, 14, 81, 84, 6, 35, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37,
-			0, 35, 2, 95, 40, 65, 6, 35, 34, 109, 101, 36, 50, 35, 15, 108, 6, 37, 81, 40, 34, 4, 40, 55, 37, 15, 108, 34, 14, 76,
-			101, 6, 37, 55, 37, 0, 0, 0, 0, 9, 2, 95, 45, 47, 37, 34, 36, 0, 0, 10, 2, 95, 44, 65, 111, 37, 65, 36, 0, 0,
-			10, 2, 95, 51, 89, 6, 35, 65, 37, 0, 0, 9, 2, 95, 50, 6, 39, 34, 37, 0, 0, 10, 2, 95, 49, 6, 36, 34, 25, 37,
-			0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 37, 0, 0, 11, 2, 95, 55, 91, 84, 6, 37, 72, 37, 0, 0, 11, 2, 95, 54, 6,
-			36, 110, 84, 89, 37, 0, 0, 10, 2, 95, 53, 101, 6, 40, 25, 37, 0, 0, 10, 2, 95, 52, 6, 39, 25, 101, 37, 0, 0, 16,
-			2, 95, 59, 112, 36, 34, 47, 37, 55, 65, 111, 37, 65, 36, 0, 0, 14, 2, 95, 58, 39, 34, 112, 36, 34, 47, 37, 55, 37, 0,
-			0, 10, 2, 95, 57, 109, 101, 34, 6, 35, 0, 0, 9, 2, 95, 56, 34, 84, 6, 35, 0, 0, 21, 2, 95, 63, 49, 6, 37, 25,
-			101, 84, 37, 89, 15, 50, 4, 37, 91, 35, 50, 37, 0, 0, 11, 2, 95, 62, 65, 36, 47, 39, 71, 35, 0, 0, 0, 14, 2, 95,
-			60, 50, 35, 49, 55, 36, 71, 39, 71, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 37, 2, 95, 91, 65, 6, 35, 34, 109, 101, 36, 50, 35, 15, 49, 84, 6, 35, 72, 34, 35, 47, 4, 40,
-			55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 0, 0, 0, 0, 0, 35, 2, 95, 93, 65, 6, 35, 34, 75, 84, 36,
-			50, 35, 15, 108, 6, 37, 81, 40, 34, 4, 40, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 0, 0, 0, 0, 21,
-			2, 95, 96, 40, 49, 40, 100, 65, 35, 15, 35, 48, 39, 89, 47, 34, 39, 83, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 95, 48, 97, 110, 100, 72, 2,
-			35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 16, 6, 95, 114, 111, 109, 97, 110, 65, 6, 36, 89, 35, 65, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 1, 49, 0, 1, 45, 2, 32, 3, 2, 35, 0, 3, 35, 0, 7, 6, 1, 50, 0, 3, 71, 0, 7, 6, 1, 51, 0, 3, 81,
-			0, 7, 6, 1, 52, 0, 3, 72, 0, 7, 6, 1, 53, 0, 1, 45, 2, 32, 3, 2, 36, 0, 3, 36, 0, 7, 6, 1, 54, 0,
-			3, 84, 0, 7, 6, 1, 55, 0, 3, 88, 0, 7, 6, 1, 56, 0, 3, 25, 0, 7, 6, 1, 57, 0, 1, 45, 2, 32, 3, 2,
-			37, 0, 3, 37, 0, 7, 6, 1, 58, 0, 3, 49, 0, 7, 6, 1, 59, 0, 3, 55, 0, 7, 6, 1, 60, 0, 3, 65, 0, 7,
-			6, 1, 61, 0, 3, 50, 0, 7, 6, 1, 62, 0, 1, 45, 2, 32, 3, 2, 39, 0, 3, 39, 0, 7, 6, 1, 63, 0, 3, 48,
-			0, 7, 6, 1, 64, 0, 3, 90, 0, 7, 6, 1, 65, 0, 3, 34, 0, 1, 25, 2, 17, 67, 17, 67, 3, 34, 14, 0, 7, 6,
-			1, 66, 0, 3, 89, 0, 7, 6, 1, 67, 0, 3, 47, 0, 7, 6, 1, 68, 0, 1, 45, 2, 32, 3, 2, 40, 0, 3, 40, 0,
-			7, 6, 1, 69, 0, 3, 108, 0, 7, 6, 1, 70, 0, 3, 110, 0, 7, 6, 1, 71, 0, 3, 100, 0, 7, 6, 1, 72, 0, 3,
-			104, 0, 7, 6, 1, 73, 0, 3, 91, 0, 7, 6, 1, 74, 0, 3, 76, 0, 7, 6, 1, 75, 0, 3, 109, 0, 7, 6, 1, 76,
-			0, 3, 111, 0, 7, 6, 1, 77, 0, 3, 112, 0, 7, 6, 1, 78, 0, 3, 80, 0, 7, 6, 1, 79, 0, 3, 101, 0, 7, 6,
-			1, 80, 0, 3, 75, 0, 7, 6, 1, 81, 0, 3, 107, 0, 7, 6, 1, 82, 0, 3, 36, 57, 0, 7, 6, 1, 83, 0, 3, 57,
-			0, 7, 6, 1, 84, 0, 3, 58, 0, 7, 6, 1, 85, 0, 3, 101, 0, 7, 6, 1, 86, 0, 3, 39, 12, 0, 7, 6, 1, 87,
-			0, 3, 83, 0, 7, 6, 1, 88, 0, 3, 13, 0, 7, 6, 1, 89, 0, 3, 19, 0, 7, 6, 1, 90, 0, 3, 0, 7, 6, 1,
-			91, 0, 3, 0, 7, 6, 0, 36, 3, 72, 39, 55, 35, 34, 37, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts34 = FileInMemory_createWithData (3138, reinterpret_cast<const char *> (&espeakdata_dicts34_data), 
-			U"espeak-1.48.04-source/espeak-data/ka_dict", 
+		static unsigned char espeakdata_dicts31_data[3163] = {
+			0, 4, 0, 0, 158, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 33, 111, 6, 35, 101, 37, 55, 37, 89, 15, 50, 4, 37, 91, 35, 50,
+			37, 0, 0, 0, 12, 1, 35, 50, 6, 39, 65, 36, 34, 37, 0, 27, 0, 0, 13, 1, 37, 48, 34, 39, 109, 36, 50, 47, 37, 0,
+			27, 0, 6, 1, 38, 72, 35, 0, 0, 0, 0, 0, 16, 1, 42, 84, 35, 34, 84, 89, 49, 84, 55, 35, 84, 37, 0, 27, 0, 11,
+			1, 43, 48, 55, 37, 40, 89, 37, 0, 27, 0, 0, 0, 11, 1, 46, 112, 36, 34, 47, 37, 55, 37, 0, 0, 29, 1, 47, 65, 6,
+			35, 34, 109, 101, 50, 37, 84, 15, 72, 6, 35, 101, 34, 37, 55, 37, 15, 101, 6, 35, 88, 37, 0, 27, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 11, 5, 95, 48, 1, 14, 4, 72, 2, 35, 0, 0, 0, 0, 0, 0, 11, 1, 61, 47, 39, 55, 39, 71, 35, 0, 27,
+			0, 0, 0, 11, 1, 64, 111, 35, 100, 55, 40, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			4, 95, 48, 67, 48, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 92, 65, 6, 35, 34, 75,
+			84, 50, 37, 84, 15, 72, 6, 35, 101, 34, 37, 55, 37, 15, 101, 6, 35, 88, 37, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 225, 131, 147, 225, 131, 144, 72, 28, 0, 0, 12, 4, 95, 50,
+			67, 48, 39, 34, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 4, 16, 20, 65, 25, 36, 55, 37, 10, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 225, 131, 156, 50, 6, 13, 0, 0, 7, 3, 225, 131, 157, 39, 0, 0, 9, 3,
+			225, 131, 158, 48, 6, 13, 0, 0, 9, 3, 225, 131, 159, 90, 6, 13, 0, 0, 7, 3, 225, 131, 152, 37, 0, 0, 9, 3, 225, 131,
+			153, 49, 6, 13, 0, 0, 9, 3, 225, 131, 154, 55, 6, 13, 0, 0, 9, 3, 225, 131, 155, 65, 6, 13, 0, 0, 0, 9, 3, 225,
+			131, 149, 84, 6, 13, 0, 0, 9, 3, 225, 131, 150, 88, 6, 13, 0, 16, 5, 95, 48, 77, 50, 24, 65, 6, 37, 55, 37, 39, 50,
+			37, 0, 0, 9, 3, 225, 131, 151, 25, 6, 13, 0, 0, 7, 3, 225, 131, 144, 35, 0, 0, 9, 3, 225, 131, 145, 71, 6, 13, 0,
+			0, 9, 3, 225, 131, 146, 81, 6, 13, 0, 0, 9, 3, 225, 131, 147, 72, 6, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 95, 48, 77, 49, 24, 6, 35, 25, 35, 89, 37, 0, 0, 0, 11, 3, 225, 131,
+			184, 36, 55, 37, 83, 37, 0, 0, 0, 0, 9, 3, 225, 131, 181, 107, 39, 36, 0, 0, 9, 3, 225, 131, 180, 107, 35, 34, 0, 0,
+			10, 3, 225, 131, 183, 89, 107, 84, 35, 0, 0, 8, 3, 225, 131, 182, 83, 37, 0, 0, 8, 3, 225, 131, 177, 107, 36, 0, 0, 9,
+			3, 225, 131, 176, 107, 6, 13, 0, 0, 9, 3, 225, 131, 179, 84, 37, 36, 0, 13, 4, 95, 51, 67, 48, 89, 35, 65, 35, 89, 37,
+			0, 0, 9, 3, 225, 131, 178, 107, 37, 36, 0, 0, 9, 3, 225, 131, 173, 80, 6, 13, 0, 0, 9, 3, 225, 131, 172, 112, 6, 13,
+			0, 0, 9, 3, 225, 131, 175, 75, 6, 13, 0, 0, 9, 3, 225, 131, 174, 101, 6, 13, 0, 0, 9, 3, 225, 131, 169, 76, 6, 13,
+			0, 0, 9, 3, 225, 131, 168, 91, 6, 13, 0, 0, 9, 3, 225, 131, 171, 111, 6, 13, 0, 0, 9, 3, 225, 131, 170, 109, 6, 13,
+			0, 0, 9, 3, 225, 131, 165, 110, 6, 13, 0, 0, 9, 3, 225, 131, 164, 108, 6, 13, 0, 0, 9, 3, 225, 131, 167, 104, 6, 13,
+			0, 0, 9, 3, 225, 131, 166, 100, 6, 13, 0, 0, 9, 3, 225, 131, 161, 89, 6, 13, 0, 0, 9, 3, 225, 131, 160, 34, 6, 13,
+			0, 0, 7, 3, 225, 131, 163, 40, 0, 7, 3, 225, 131, 163, 40, 0, 0, 9, 3, 225, 131, 162, 47, 6, 13, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 52, 67, 48, 39, 47, 101, 35, 89, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 48, 6, 39, 109, 37, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 95, 18, 15, 13, 1, 14, 65, 6,
+			36, 89, 35, 65, 36, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 48, 90, 53, 65, 36, 6, 35, 89, 37, 35, 25, 35, 89, 36,
+			72, 37, 0, 13, 3, 95, 54, 48, 89, 6, 35, 65, 39, 112, 37, 0, 0, 20, 4, 95, 48, 90, 52, 65, 36, 6, 35, 25, 37, 35,
+			25, 35, 89, 36, 72, 37, 0, 8, 3, 95, 48, 67, 35, 89, 0, 0, 0, 19, 4, 95, 48, 90, 54, 65, 36, 65, 6, 37, 55, 37,
+			39, 50, 36, 72, 37, 0, 0, 15, 4, 95, 48, 90, 49, 65, 36, 6, 35, 25, 36, 72, 37, 0, 0, 0, 17, 4, 95, 48, 90, 51,
+			65, 36, 6, 35, 25, 35, 89, 36, 72, 37, 0, 0, 15, 4, 95, 48, 90, 50, 65, 36, 6, 35, 89, 36, 72, 37, 0, 0, 0, 0,
+			0, 0, 0, 14, 4, 95, 53, 67, 48, 101, 6, 40, 25, 35, 89, 37, 0, 0, 0, 15, 3, 95, 49, 57, 109, 101, 34, 6, 35, 65,
+			36, 47, 37, 0, 0, 15, 3, 95, 49, 56, 25, 84, 34, 6, 35, 65, 36, 47, 37, 0, 0, 10, 3, 95, 50, 67, 39, 34, 35, 89,
+			0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 49, 25, 6, 36, 34, 25, 65, 36, 47, 37, 0, 0, 10, 3, 95, 49, 48, 6, 35,
+			25, 37, 0, 0, 11, 3, 95, 51, 67, 89, 35, 65, 35, 89, 0, 13, 3, 95, 49, 51, 109, 6, 35, 65, 36, 47, 37, 0, 0, 14,
+			3, 95, 49, 50, 25, 6, 39, 34, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 53, 25, 101, 6, 40, 25, 65, 36, 47, 37, 0, 0,
+			15, 3, 95, 49, 52, 25, 6, 39, 25, 101, 65, 36, 47, 37, 0, 0, 15, 3, 95, 49, 55, 76, 84, 6, 37, 72, 65, 36, 47, 37,
+			0, 0, 16, 3, 95, 49, 54, 25, 6, 36, 110, 84, 89, 65, 36, 47, 37, 0, 0, 0, 0, 11, 3, 95, 52, 67, 39, 47, 101, 35,
+			89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 53, 67, 101, 6, 40, 25, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 13,
+			3, 95, 52, 48, 6, 39, 34, 65, 39, 112, 37, 0, 0, 13, 3, 95, 54, 67, 6, 36, 110, 84, 89, 35, 89, 0, 0, 0, 0, 0,
+			0, 0, 0, 9, 3, 95, 50, 88, 6, 39, 109, 0, 0, 13, 3, 95, 55, 67, 91, 84, 6, 37, 72, 35, 89, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 11, 3, 95, 56, 67, 34, 84, 35, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 88, 6, 39, 34,
+			65, 39, 112, 0, 0, 13, 3, 95, 57, 67, 109, 101, 34, 6, 35, 35, 89, 0, 0, 0, 0, 0, 15, 4, 95, 54, 67, 48, 6, 36,
+			110, 84, 89, 35, 89, 37, 0, 0, 0, 0, 14, 3, 95, 56, 48, 6, 39, 25, 101, 65, 39, 112, 37, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 12, 3, 95, 54, 88, 89, 6, 35, 65, 39, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			13, 3, 95, 56, 88, 6, 39, 25, 101, 65, 39, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 55, 67, 48, 91, 84, 6,
+			37, 72, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 6, 37, 55,
+			37, 39, 50, 0, 0, 0, 0, 12, 4, 95, 48, 77, 49, 6, 35, 25, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 4, 95, 56, 67, 48, 34, 84, 35, 35, 89, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 23, 67, 33, 69, 16, 6, 36, 57, 76, 47, 37, 47, 37, 48, 107, 37, 10, 0, 81, 58, 47, 47, 32, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 57, 67, 48, 109, 101, 34, 6, 35, 35, 89, 37,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 8, 4, 95, 225, 131, 148, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34,
+			71, 34, 14, 80, 104, 35, 55, 37, 0, 0, 0, 0, 14, 2, 95, 39, 35, 48, 39, 89, 47, 34, 39, 83, 37, 0, 0, 0, 0, 0,
+			0, 0, 34, 2, 95, 41, 65, 6, 35, 34, 75, 84, 36, 50, 35, 15, 65, 34, 14, 81, 84, 6, 35, 55, 37, 15, 108, 34, 14, 76,
+			101, 6, 37, 55, 37, 0, 35, 2, 95, 41, 65, 6, 35, 34, 75, 84, 36, 50, 35, 15, 108, 6, 37, 81, 40, 34, 4, 40, 55, 37,
+			15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 34, 2, 95, 40, 65, 6, 35, 34, 109, 101, 36, 50, 35, 15, 65, 34, 14, 81,
+			84, 6, 35, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 35, 2, 95, 40, 65, 6, 35, 34, 109, 101, 36, 50, 35, 15,
+			108, 6, 37, 81, 40, 34, 4, 40, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 0, 0, 9, 2, 95, 45, 47, 37,
+			34, 36, 0, 0, 10, 2, 95, 44, 65, 111, 37, 65, 36, 0, 0, 10, 2, 95, 51, 89, 6, 35, 65, 37, 0, 0, 9, 2, 95, 50,
+			6, 39, 34, 37, 0, 0, 10, 2, 95, 49, 6, 36, 34, 25, 37, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 37, 0, 0, 11, 2,
+			95, 55, 91, 84, 6, 37, 72, 37, 0, 0, 11, 2, 95, 54, 6, 36, 110, 84, 89, 37, 0, 0, 10, 2, 95, 53, 101, 6, 40, 25,
+			37, 0, 0, 10, 2, 95, 52, 6, 39, 25, 101, 37, 0, 0, 16, 2, 95, 59, 112, 36, 34, 47, 37, 55, 65, 111, 37, 65, 36, 0,
+			0, 14, 2, 95, 58, 39, 34, 112, 36, 34, 47, 37, 55, 37, 0, 0, 10, 2, 95, 57, 109, 101, 34, 6, 35, 0, 0, 9, 2, 95,
+			56, 34, 84, 6, 35, 0, 0, 21, 2, 95, 63, 49, 6, 37, 25, 101, 84, 37, 89, 15, 50, 4, 37, 91, 35, 50, 37, 0, 0, 11,
+			2, 95, 62, 65, 36, 47, 39, 71, 35, 0, 0, 0, 14, 2, 95, 60, 50, 35, 49, 55, 36, 71, 39, 71, 35, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 2, 95, 91, 65, 6, 35, 34, 109,
+			101, 36, 50, 35, 15, 49, 84, 6, 35, 72, 34, 35, 47, 4, 40, 55, 37, 15, 108, 34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 0,
+			0, 0, 0, 0, 35, 2, 95, 93, 65, 6, 35, 34, 75, 84, 36, 50, 35, 15, 108, 6, 37, 81, 40, 34, 4, 40, 55, 37, 15, 108,
+			34, 14, 76, 101, 6, 37, 55, 37, 0, 0, 0, 0, 0, 0, 21, 2, 95, 96, 40, 49, 40, 100, 65, 35, 15, 35, 48, 39, 89, 47,
+			34, 39, 83, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 81, 0, 1, 45, 2, 32, 3, 2, 35, 0,
+			3, 35, 0, 7, 6, 1, 82, 0, 3, 71, 0, 7, 6, 1, 83, 0, 3, 81, 0, 7, 6, 1, 84, 0, 3, 72, 0, 7, 6, 1,
+			85, 0, 1, 45, 2, 32, 3, 2, 36, 0, 3, 36, 0, 7, 6, 1, 86, 0, 3, 84, 0, 7, 6, 1, 87, 0, 3, 88, 0, 7,
+			6, 1, 88, 0, 3, 25, 0, 7, 6, 1, 89, 0, 1, 45, 2, 32, 3, 2, 37, 0, 3, 37, 0, 7, 6, 1, 90, 0, 3, 49,
+			0, 7, 6, 1, 91, 0, 3, 55, 0, 7, 6, 1, 92, 0, 3, 65, 0, 7, 6, 1, 93, 0, 3, 50, 0, 7, 6, 1, 94, 0,
+			1, 45, 2, 32, 3, 2, 39, 0, 3, 39, 0, 7, 6, 1, 95, 0, 3, 48, 0, 7, 6, 1, 96, 0, 3, 90, 0, 7, 6, 1,
+			97, 0, 3, 34, 0, 1, 25, 2, 17, 67, 17, 67, 3, 34, 14, 0, 7, 6, 1, 98, 0, 3, 89, 0, 7, 6, 1, 99, 0, 3,
+			47, 0, 7, 6, 1, 100, 0, 1, 45, 2, 32, 3, 2, 40, 0, 3, 40, 0, 7, 6, 1, 101, 0, 3, 108, 0, 7, 6, 1, 102,
+			0, 3, 110, 0, 7, 6, 1, 103, 0, 3, 100, 0, 7, 6, 1, 104, 0, 3, 104, 0, 7, 6, 1, 105, 0, 3, 91, 0, 7, 6,
+			1, 106, 0, 3, 76, 0, 7, 6, 1, 107, 0, 3, 109, 0, 7, 6, 1, 108, 0, 3, 111, 0, 7, 6, 1, 109, 0, 3, 112, 0,
+			7, 6, 1, 110, 0, 3, 80, 0, 7, 6, 1, 111, 0, 3, 101, 0, 7, 6, 1, 112, 0, 3, 75, 0, 7, 6, 1, 113, 0, 3,
+			107, 0, 7, 6, 1, 114, 0, 3, 36, 57, 0, 7, 6, 1, 115, 0, 3, 57, 0, 7, 6, 1, 116, 0, 3, 58, 0, 7, 6, 1,
+			117, 0, 3, 101, 0, 7, 6, 1, 118, 0, 3, 39, 12, 0, 7, 6, 1, 119, 0, 3, 83, 0, 7, 6, 1, 120, 0, 3, 13, 0,
+			7, 6, 1, 121, 0, 3, 19, 0, 7, 6, 1, 122, 0, 3, 0, 7, 6, 1, 123, 0, 3, 0, 7, 6, 208, 0, 3, 21, 114, 117,
+			0, 7, 6, 209, 0, 3, 21, 114, 117, 0, 7, 6, 210, 0, 3, 21, 114, 117, 0, 7, 6, 211, 0, 3, 21, 114, 117, 0, 7, 6,
+			0, 36, 3, 72, 39, 55, 35, 34, 37, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts31 = FileInMemory_createWithData (3162, reinterpret_cast<const char *> (&espeakdata_dicts31_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ka_dict", 
 			U"ka");
-		my addItem_move (espeakdata_dicts34.move());
+		Collection_addItem (me.peek(), espeakdata_dicts31.transfer());
+
+		static unsigned char espeakdata_dicts32_data[2024] = {
+			0, 4, 0, 0, 132, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 4, 16, 20, 10, 71, 4, 110, 47, 108, 50, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 48, 90, 53, 90, 6, 110, 88,
+			15, 65, 4, 109, 68, 50, 112, 50, 0, 11, 3, 95, 51, 88, 6, 39, 47, 109, 88, 0, 0, 18, 4, 95, 48, 90, 52, 6, 39, 50,
+			15, 65, 4, 109, 68, 50, 112, 50, 0, 10, 3, 95, 48, 67, 90, 6, 110, 88, 0, 0, 22, 4, 95, 48, 90, 55, 6, 39, 50, 15,
+			65, 37, 55, 55, 37, 4, 39, 50, 50, 112, 50, 0, 0, 18, 4, 95, 48, 90, 54, 65, 37, 55, 55, 37, 6, 39, 50, 50, 112, 50,
+			0, 0, 13, 4, 95, 48, 90, 49, 6, 39, 50, 50, 112, 50, 0, 0, 0, 14, 4, 95, 48, 90, 51, 65, 6, 109, 68, 50, 112, 50,
+			0, 0, 14, 4, 95, 48, 90, 50, 90, 6, 110, 88, 72, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 48, 90, 57, 65, 37, 55, 55, 37, 6, 112, 34, 72, 47, 112, 50, 0, 0, 23, 4, 95,
+			48, 90, 56, 90, 6, 110, 88, 15, 65, 37, 55, 55, 37, 6, 39, 50, 50, 112, 50, 0, 0, 0, 0, 13, 3, 95, 55, 88, 90, 6,
+			36, 47, 48, 108, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 49, 88, 6, 39, 50,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 90, 37, 6, 109, 34, 65, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 88, 104, 6, 109, 34, 109, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3,
+			95, 53, 88, 6, 36, 55, 38, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 54, 88, 6, 112, 55, 48, 109, 89, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 89, 6, 36, 49, 89, 36, 50, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 47, 6, 39, 104, 89, 112, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 55, 37, 6, 39, 50, 0, 0, 16, 4, 95, 48, 77, 51, 65, 37, 55, 55, 37,
+			6, 112, 34, 72, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 109, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 209, 135, 76, 36, 0, 0, 8, 2, 209, 134, 47, 89, 36, 0, 0, 7, 2, 209, 133,
+			106, 112, 0, 0, 7, 2, 209, 132, 114, 83, 0, 0, 0, 7, 2, 209, 130, 47, 36, 0, 0, 7, 2, 209, 129, 114, 89, 0, 0, 7,
+			2, 209, 128, 114, 34, 0, 0, 0, 0, 0, 15, 2, 209, 140, 90, 108, 68, 108, 91, 49, 36, 55, 108, 49, 0, 0, 0, 10, 2, 209,
+			138, 112, 57, 109, 34, 40, 0, 0, 8, 2, 209, 137, 91, 76, 35, 0, 0, 7, 2, 209, 136, 91, 35, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 7, 2, 210, 147, 116, 36, 0, 0, 0, 0, 0, 7, 2, 95, 51, 110, 91, 0, 0, 9, 2, 95, 50,
+			36, 49, 6, 108, 0, 0, 9, 2, 95, 49, 71, 6, 108, 34, 0, 0, 9, 2, 95, 48, 50, 6, 115, 55, 0, 0, 11, 2, 95, 55,
+			90, 6, 36, 47, 6, 108, 0, 7, 2, 210, 155, 104, 112, 0, 0, 10, 2, 95, 54, 112, 55, 47, 6, 109, 0, 0, 9, 2, 95, 53,
+			71, 6, 36, 89, 0, 0, 10, 2, 95, 52, 47, 6, 115, 34, 47, 0, 0, 7, 2, 208, 183, 88, 36, 0, 0, 7, 2, 208, 182, 90,
+			36, 0, 0, 11, 2, 95, 57, 47, 39, 116, 6, 109, 88, 0, 0, 11, 2, 95, 56, 89, 36, 81, 6, 108, 88, 0, 7, 2, 208, 180,
+			72, 36, 0, 0, 7, 2, 210, 163, 114, 68, 0, 7, 2, 208, 179, 81, 36, 0, 0, 7, 2, 208, 178, 84, 36, 0, 0, 7, 2, 208,
+			177, 71, 36, 0, 0, 0, 7, 2, 208, 191, 48, 36, 0, 0, 0, 7, 2, 208, 189, 114, 50, 0, 0, 7, 2, 208, 188, 114, 65, 0,
+			0, 7, 2, 208, 187, 114, 55, 0, 0, 7, 2, 208, 186, 49, 112, 0, 0, 12, 2, 208, 185, 104, 109, 89, 104, 112, 6, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 210, 187, 107, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 17, 0, 2, 208, 185, 3, 35, 0, 3, 112,
+			0, 7, 6, 1, 18, 0, 3, 71, 0, 7, 6, 1, 19, 0, 3, 84, 0, 7, 6, 1, 20, 0, 3, 81, 0, 7, 6, 1, 21, 0,
+			3, 72, 0, 7, 6, 1, 22, 0, 3, 36, 0, 7, 6, 1, 23, 0, 3, 90, 0, 7, 6, 1, 24, 0, 3, 88, 0, 7, 6, 1,
+			25, 0, 3, 37, 0, 7, 6, 1, 26, 0, 3, 57, 0, 7, 6, 1, 27, 0, 3, 49, 0, 7, 6, 1, 28, 0, 3, 55, 0, 7,
+			6, 1, 29, 0, 3, 65, 0, 7, 6, 1, 30, 0, 3, 50, 0, 7, 6, 1, 31, 0, 3, 39, 0, 7, 6, 1, 32, 0, 3, 48,
+			0, 7, 6, 1, 33, 0, 3, 34, 0, 7, 6, 1, 34, 0, 3, 89, 0, 7, 6, 1, 35, 0, 3, 47, 0, 7, 6, 1, 36, 0,
+			3, 40, 0, 4, 1, 17, 65, 3, 58, 0, 2, 17, 65, 0, 7, 6, 1, 37, 0, 3, 83, 0, 7, 6, 1, 38, 0, 3, 106, 0,
+			7, 6, 1, 39, 0, 3, 47, 89, 0, 7, 6, 1, 40, 0, 3, 76, 0, 7, 6, 1, 41, 0, 3, 91, 0, 7, 6, 1, 42, 0,
+			3, 91, 76, 0, 7, 6, 1, 44, 0, 3, 109, 0, 7, 6, 1, 46, 0, 3, 114, 0, 7, 6, 1, 47, 0, 3, 38, 40, 0, 7,
+			6, 1, 48, 0, 3, 38, 35, 0, 7, 6, 1, 50, 0, 3, 38, 39, 0, 7, 6, 1, 55, 0, 3, 108, 0, 7, 6, 1, 116, 0,
+			3, 116, 0, 7, 6, 1, 124, 0, 3, 104, 0, 7, 6, 210, 163, 0, 3, 68, 0, 7, 6, 210, 175, 0, 3, 110, 0, 7, 6, 210,
+			177, 0, 3, 111, 0, 7, 6, 210, 187, 0, 3, 107, 0, 7, 6, 211, 153, 0, 3, 113, 0, 7, 6, 211, 169, 0, 3, 115, 0, 7,
+			6, 0, 4, 209, 138, 3, 0, 209, 140, 3, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts32 = FileInMemory_createWithData (2023, reinterpret_cast<const char *> (&espeakdata_dicts32_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/kk_dict", 
+			U"kk");
+		Collection_addItem (me.peek(), espeakdata_dicts32.transfer());
 
-		static unsigned char espeakdata_dicts35_data[2646] = {
-			0, 4, 0, 0, 81, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 108, 0, 0, 0, 0, 0, 6, 65, 12,
-			89, 108, 0, 0, 0, 0, 0, 6, 65, 16, 72, 108, 0, 0, 0, 0, 13, 4, 95, 100, 112, 116, 49, 39, 65, 12, 35, 10, 0, 0,
-			0, 0, 0, 0, 6, 65, 24, 108, 83, 0, 0, 0, 0, 0, 6, 65, 28, 57, 37, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 40, 57, 108, 0, 0, 0, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65,
-			48, 108, 55, 0, 0, 0, 0, 0, 6, 65, 52, 108, 65, 0, 0, 0, 0, 0, 6, 65, 56, 108, 50, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 65, 64, 48, 108, 0, 0, 0, 0, 0, 6, 65, 68, 104, 35, 0, 0, 0, 0, 0, 6, 65, 72, 108, 34, 0, 0, 0,
-			0, 0, 6, 65, 76, 108, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84,
-			108, 0, 0, 0, 0, 21, 4, 95, 49, 77, 52, 6, 36, 12, 50, 15, 71, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 6, 65, 92,
-			58, 108, 0, 0, 0, 0, 0, 17, 4, 95, 49, 77, 49, 36, 72, 15, 47, 6, 40, 12, 89, 14, 50, 0, 7, 65, 96, 37, 49, 89,
-			0, 0, 21, 4, 95, 49, 77, 50, 6, 36, 12, 50, 15, 65, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 21, 4, 95, 49, 77, 51,
-			6, 36, 12, 50, 15, 65, 37, 55, 37, 57, 6, 35, 12, 72, 0, 0, 0, 0, 0, 0, 0, 6, 65, 104, 88, 108, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 51, 88, 111, 47, 34, 6, 110, 83,
-			47, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 95, 111,
-			114, 100, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4,
-			95, 49, 49, 111, 108, 55, 83, 72, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 12, 4, 95, 49, 48, 111, 47, 37, 13, 50, 115, 0, 0, 13, 4, 95, 49, 48, 110, 104, 6, 40, 55, 37, 47, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 50, 111, 47, 111, 55, 83, 72, 115, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 95, 55, 88, 111, 107, 110, 55, 83, 57, 6, 110, 34,
-			89, 36, 50, 89, 47, 113, 84, 13, 50, 13, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 88, 47, 51, 6, 110, 86, 84, 13, 0,
-			0, 14, 3, 95, 48, 67, 107, 6, 40, 50, 16, 13, 12, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49, 67, 36, 72,
-			15, 107, 6, 40, 50, 34, 13, 12, 86, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 57, 50, 6, 36, 72, 14, 50, 0, 0, 11,
-			3, 95, 49, 56, 6, 110, 72, 14, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 108, 55, 84, 13, 0, 0, 9,
-			3, 95, 49, 48, 47, 6, 37, 0, 0, 13, 3, 95, 49, 51, 47, 51, 6, 110, 72, 14, 50, 0, 0, 10, 3, 95, 49, 50, 47, 6,
-			111, 55, 0, 0, 13, 3, 95, 49, 53, 83, 6, 36, 65, 47, 14, 50, 0, 0, 14, 3, 95, 49, 52, 83, 57, 6, 39, 34, 72, 14,
-			50, 0, 0, 12, 3, 95, 49, 55, 89, 6, 114, 72, 14, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 35, 57, 89, 72, 14, 50, 0,
-			0, 0, 15, 3, 95, 55, 88, 107, 110, 55, 83, 57, 6, 110, 34, 89, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 111, 83, 114, 34,
-			89, 72, 115, 0, 0, 14, 3, 95, 49, 110, 35, 47, 6, 35, 12, 89, 108, 104, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50,
-			111, 110, 50, 13, 50, 0, 0, 13, 3, 95, 50, 110, 65, 6, 35, 34, 55, 40, 49, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95,
-			51, 111, 47, 34, 108, 72, 57, 115, 0, 0, 14, 3, 95, 51, 110, 48, 6, 37, 68, 35, 89, 40, 47, 0, 0, 0, 11, 3, 95, 50,
-			88, 47, 6, 113, 12, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 53, 111, 83, 108, 65, 47, 115,
-			0, 0, 14, 3, 95, 53, 110, 47, 6, 35, 105, 37, 65, 35, 47, 0, 0, 0, 11, 3, 95, 52, 88, 83, 6, 114, 12, 111, 0, 0,
-			0, 0, 0, 0, 11, 3, 95, 54, 111, 89, 57, 108, 72, 115, 0, 0, 16, 3, 95, 54, 110, 35, 34, 83, 6, 37, 50, 37, 105, 37,
-			47, 0, 0, 0, 14, 3, 95, 53, 88, 107, 110, 55, 6, 47, 16, 108, 89, 0, 0, 0, 0, 0, 0, 11, 3, 95, 55, 111, 89, 113,
-			84, 50, 115, 0, 0, 20, 3, 95, 55, 110, 35, 34, 83, 37, 50, 108, 104, 65, 6, 35, 34, 55, 40, 49, 0, 0, 0, 11, 3, 95,
-			54, 88, 47, 16, 6, 108, 89, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 48, 110, 50, 6, 40, 12, 55, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 11, 3, 95, 57, 111, 50, 37, 13, 50, 115, 0, 0, 17, 3, 95, 57, 110, 104, 40, 55, 37, 68, 37, 55, 6, 40, 35,
-			47, 0, 0, 0, 11, 3, 95, 56, 88, 83, 6, 37, 34, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 57, 88, 107, 110,
-			55, 83, 6, 108, 65, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 52, 111, 83, 57, 36, 111, 0,
-			0, 14, 3, 95, 52, 110, 89, 6, 37, 89, 35, 65, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 48, 77, 52, 71, 37, 55, 37, 57, 6, 39, 12, 50, 115, 0,
-			0, 21, 3, 95, 56, 110, 35, 34, 83, 37, 50, 108, 104, 48, 6, 37, 68, 35, 89, 40, 47, 0, 0, 10, 3, 95, 56, 111, 111, 47,
-			50, 115, 0, 17, 4, 95, 48, 77, 50, 65, 37, 55, 37, 57, 6, 39, 12, 50, 111, 0, 0, 17, 4, 95, 48, 77, 51, 65, 37, 55,
-			37, 57, 6, 35, 12, 72, 115, 0, 0, 0, 14, 4, 95, 48, 77, 49, 47, 6, 40, 12, 89, 14, 50, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 50, 88, 111, 47, 6, 113, 84,
-			13, 50, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 52, 88, 111, 83, 114, 111, 6, 47, 113, 84, 13, 50, 13, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 24, 4, 95, 53, 88, 111, 107, 110, 55, 47, 16, 6, 108, 89, 36, 50, 89, 47, 113, 84, 13, 50, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 51, 6, 36, 0, 0, 8, 2, 95, 50, 47, 6, 39, 0,
-			0, 8, 2, 95, 49, 6, 36, 50, 0, 0, 9, 2, 95, 48, 6, 50, 112, 55, 0, 0, 9, 2, 95, 55, 89, 6, 113, 58, 0, 0,
-			10, 2, 95, 54, 89, 6, 108, 100, 89, 0, 0, 9, 2, 95, 53, 83, 6, 108, 65, 0, 0, 9, 2, 95, 52, 83, 6, 37, 111, 0,
-			0, 0, 0, 8, 2, 95, 57, 50, 6, 37, 0, 0, 10, 2, 95, 56, 6, 112, 12, 72, 13, 0, 0, 0, 0, 0, 0, 0, 0, 21,
-			4, 95, 54, 88, 111, 47, 34, 6, 108, 89, 36, 50, 89, 47, 113, 84, 13, 50, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 5, 95, 48, 97, 110,
-			100, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 56, 88, 111, 83, 37, 34, 89, 36, 50, 89, 47, 113, 84, 13, 50, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 24, 4, 95, 57, 88, 111, 107, 110, 55, 83, 6, 108, 65, 89, 36, 50, 89, 47, 113, 84, 13, 50, 13, 0, 0, 0, 0, 0, 6,
-			18, 66, 110, 110, 103, 0, 110, 103, 0, 7, 6, 195, 165, 0, 3, 112, 0, 7, 6, 195, 166, 0, 3, 110, 0, 7, 6, 195, 184, 0,
-			3, 114, 0, 7, 6, 97, 0, 2, 17, 67, 17, 67, 3, 6, 35, 0, 4, 3, 35, 0, 2, 18, 66, 0, 4, 97, 3, 35, 12, 0,
-			97, 113, 0, 97, 114, 0, 105, 2, 32, 3, 109, 0, 116, 2, 32, 3, 110, 47, 0, 112, 2, 32, 3, 110, 48, 0, 107, 2, 32, 3,
-			110, 81, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 7, 6, 100, 0,
-			3, 72, 0, 7, 6, 101, 0, 2, 17, 67, 17, 67, 3, 6, 108, 0, 4, 3, 108, 0, 2, 18, 66, 0, 101, 3, 108, 12, 0, 7,
-			6, 102, 0, 3, 83, 0, 102, 3, 83, 12, 0, 7, 6, 103, 0, 103, 2, 105, 3, 99, 12, 0, 3, 100, 0, 103, 3, 101, 12, 0,
-			7, 6, 104, 0, 3, 107, 0, 104, 3, 107, 12, 0, 7, 6, 105, 0, 2, 17, 67, 17, 67, 3, 6, 37, 0, 4, 3, 37, 0, 2,
-			18, 66, 0, 105, 3, 37, 12, 0, 7, 6, 106, 0, 3, 57, 0, 106, 3, 57, 12, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3, 49,
-			12, 0, 7, 6, 108, 0, 3, 55, 0, 108, 3, 105, 0, 7, 6, 109, 0, 3, 65, 0, 109, 3, 65, 12, 0, 7, 6, 110, 0, 3,
-			50, 0, 110, 3, 50, 12, 0, 97, 3, 50, 35, 0, 97, 97, 3, 50, 35, 12, 0, 103, 3, 68, 0, 110, 103, 3, 68, 12, 0, 7,
-			6, 111, 0, 2, 17, 67, 17, 67, 3, 6, 39, 0, 4, 3, 39, 0, 2, 18, 66, 0, 111, 3, 39, 12, 0, 7, 6, 112, 0, 3,
-			48, 0, 112, 3, 48, 12, 0, 7, 6, 113, 0, 3, 104, 0, 113, 3, 104, 104, 0, 7, 6, 114, 0, 3, 34, 0, 108, 3, 34, 105,
-			0, 114, 3, 106, 12, 0, 7, 6, 115, 0, 3, 89, 0, 115, 3, 89, 12, 0, 7, 6, 116, 0, 3, 47, 0, 116, 3, 47, 12, 0,
-			1, 105, 2, 32, 3, 78, 0, 108, 3, 116, 0, 4, 2, 105, 3, 117, 0, 115, 0, 7, 6, 117, 0, 2, 17, 67, 17, 67, 3, 6,
-			40, 0, 4, 3, 40, 0, 2, 18, 66, 0, 117, 3, 40, 12, 0, 7, 6, 118, 0, 3, 84, 0, 118, 3, 84, 12, 0, 7, 6, 119,
-			0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 17, 67, 17, 67, 3, 6, 37, 0, 4, 1, 25,
-			2, 18, 66, 3, 37, 0, 1, 25, 2, 25, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 6, 39, 55,
-			35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts35 = FileInMemory_createWithData (2645, reinterpret_cast<const char *> (&espeakdata_dicts35_data), 
-			U"espeak-1.48.04-source/espeak-data/kl_dict", 
+		static unsigned char espeakdata_dicts33_data[1678] = {
+			0, 4, 0, 0, 44, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
+			89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0,
+			0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 40, 57, 36,
+			0, 0, 0, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65,
+			0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 7,
+			65, 68, 104, 35, 12, 0, 0, 0, 0, 0, 6, 65, 72, 36, 34, 0, 0, 0, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0,
+			6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 36, 0,
+			0, 0, 0, 0, 7, 65, 96, 37, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 4, 16, 20, 49, 39, 65, 12, 35, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 48, 104, 6, 40, 37, 55, 37, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 13, 2, 95, 51, 48, 6, 37, 68, 35, 89, 40, 47, 0, 0, 12, 2, 95, 50, 65, 6, 35, 34, 55, 40, 49,
+			0, 0, 13, 2, 95, 49, 35, 47, 6, 35, 12, 89, 36, 104, 0, 0, 11, 2, 95, 48, 50, 6, 40, 12, 55, 40, 0, 0, 19, 2,
+			95, 55, 35, 34, 83, 37, 50, 36, 104, 65, 6, 35, 34, 55, 40, 49, 0, 0, 15, 2, 95, 54, 35, 34, 83, 6, 37, 50, 37, 105,
+			37, 47, 0, 0, 13, 2, 95, 53, 47, 6, 35, 105, 37, 65, 35, 47, 0, 0, 13, 2, 95, 52, 89, 6, 37, 89, 35, 65, 35, 47,
+			0, 0, 0, 0, 16, 2, 95, 57, 104, 40, 55, 37, 68, 37, 55, 6, 40, 35, 47, 0, 0, 20, 2, 95, 56, 35, 34, 83, 37, 50,
+			36, 104, 48, 6, 37, 68, 35, 89, 40, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 195, 165, 0, 3, 111, 0, 7, 6, 195, 166, 0, 3, 109, 0, 7, 6, 195, 184, 0, 3, 110, 0, 7, 6, 97,
+			0, 3, 35, 0, 97, 3, 35, 12, 0, 105, 2, 32, 3, 108, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 4,
+			2, 101, 3, 89, 0, 2, 105, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 36, 0, 101, 3, 36, 12, 0, 7, 6, 102,
+			0, 3, 83, 0, 102, 3, 83, 12, 0, 7, 6, 103, 0, 103, 3, 99, 12, 0, 3, 100, 0, 7, 6, 104, 0, 3, 107, 0, 104, 3,
+			107, 12, 0, 7, 6, 105, 0, 3, 37, 0, 105, 3, 37, 12, 0, 7, 6, 106, 0, 3, 57, 0, 106, 3, 57, 12, 0, 7, 6, 107,
+			0, 3, 49, 0, 107, 3, 49, 12, 0, 7, 6, 108, 0, 3, 55, 0, 108, 3, 105, 0, 7, 6, 109, 0, 3, 65, 0, 109, 3, 65,
+			12, 0, 7, 6, 110, 0, 3, 50, 0, 110, 3, 50, 12, 0, 103, 3, 68, 0, 110, 103, 3, 68, 12, 0, 7, 6, 111, 0, 3, 39,
+			0, 111, 3, 39, 12, 0, 7, 6, 112, 0, 3, 48, 0, 3, 48, 12, 0, 7, 6, 113, 0, 3, 104, 0, 113, 3, 104, 12, 0, 7,
+			6, 114, 0, 3, 34, 0, 114, 3, 106, 12, 0, 7, 6, 115, 0, 3, 89, 0, 115, 3, 89, 12, 0, 7, 6, 116, 0, 3, 47, 0,
+			116, 3, 47, 12, 0, 108, 3, 112, 0, 115, 3, 113, 0, 7, 6, 117, 0, 3, 40, 0, 117, 3, 40, 12, 0, 7, 6, 118, 0, 3,
+			84, 0, 118, 3, 84, 12, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 25,
+			3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 6, 39, 55, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts33 = FileInMemory_createWithData (1677, reinterpret_cast<const char *> (&espeakdata_dicts33_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/kl_dict", 
 			U"kl");
-		my addItem_move (espeakdata_dicts35.move());
+		Collection_addItem (me.peek(), espeakdata_dicts33.transfer());
 
-		static unsigned char espeakdata_dicts36_data[5516] = {
+		static unsigned char espeakdata_dicts34_data[5368] = {
 			0, 4, 0, 0, 127, 17, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
 			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 11, 6, 224, 178, 149, 224, 179, 141, 37,
-			49, 0, 0, 16, 4, 95, 100, 112, 116, 10, 72, 6, 35, 93, 118, 65, 93, 35, 0, 0, 5, 65, 20, 112, 0, 0, 0, 0, 0, 6,
-			65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 16, 1, 33, 118,
-			89, 143, 35, 34, 57, 35, 143, 37, 50, 107, 36, 0, 0, 0, 0, 6, 65, 36, 118, 57, 0, 0, 13, 1, 37, 48, 34, 35, 47, 37,
-			93, 35, 47, 35, 0, 0, 9, 1, 38, 65, 35, 47, 47, 40, 0, 0, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 0, 0, 14, 1,
-			44, 35, 55, 48, 35, 84, 37, 34, 118, 65, 35, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 15, 1, 46, 48, 123, 34, 66, 35, 84,
-			37, 34, 118, 65, 35, 0, 0, 0, 6, 65, 48, 116, 55, 0, 0, 13, 1, 49, 49, 118, 55, 40, 0, 82, 47, 32, 52, 32, 13, 1,
-			49, 35, 34, 138, 35, 0, 82, 47, 32, 50, 32, 0, 0, 16, 1, 51, 65, 40, 49, 49, 118, 55, 40, 0, 82, 47, 32, 52, 32, 0,
-			6, 65, 52, 116, 65, 0, 0, 0, 0, 0, 6, 65, 56, 116, 50, 0, 0, 0, 0, 0, 5, 65, 60, 119, 0, 0, 0, 0, 0, 6,
-			65, 64, 48, 112, 0, 0, 15, 140, 224, 178, 164, 224, 178, 174, 224, 179, 141, 224, 178, 174, 72, 0, 0, 0, 7, 65, 68, 49, 57, 123,
-			0, 0, 0, 0, 0, 15, 140, 224, 178, 135, 224, 178, 181, 224, 178, 168, 224, 179, 129, 72, 6, 65, 72, 118, 34, 0, 0, 0, 0, 0,
-			6, 65, 76, 116, 89, 0, 0, 0, 0, 12, 4, 95, 48, 67, 48, 50, 6, 123, 34, 40, 0, 0, 6, 65, 80, 25, 112, 0, 0, 0,
-			25, 149, 224, 178, 134, 224, 178, 166, 224, 178, 190, 224, 178, 151, 224, 179, 141, 224, 178, 175, 224, 179, 130, 72, 8, 0, 0, 6, 65, 84,
-			57, 123, 0, 0, 0, 0, 21, 67, 33, 69, 16, 114, 76, 47, 112, 47, 112, 6, 48, 112, 10, 0, 81, 58, 47, 47, 32, 0, 6, 65,
-			88, 84, 112, 0, 0, 0, 0, 0, 11, 65, 92, 72, 35, 71, 35, 55, 57, 123, 0, 0, 0, 0, 0, 7, 65, 96, 116, 49, 89, 0,
-			0, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0, 15, 140, 224, 178, 135, 224, 178, 181, 224, 178, 179, 224, 179, 129, 72,
-			7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 178,
-			168, 224, 178, 168, 224, 179, 141, 224, 178, 168, 72, 0, 0, 0, 18, 143, 224, 178, 168, 224, 178, 191, 224, 178, 168, 224, 179, 141, 224, 178,
-			168, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 49, 67, 48, 50, 123, 34, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 14, 4, 95, 50, 67, 48, 6, 37, 50, 50, 123, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 178, 175, 224, 179, 141, 37, 57, 0, 0, 0, 0, 0, 11, 6, 224,
-			178, 173, 224, 179, 141, 37, 137, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 51, 67, 48, 65, 6, 40, 50, 50, 123, 34, 40, 0,
-			0, 0, 0, 0, 0, 11, 6, 224, 178, 179, 224, 179, 141, 37, 62, 0, 11, 6, 224, 178, 171, 224, 179, 141, 37, 136, 0, 0, 0, 0,
-			0, 11, 6, 224, 178, 177, 224, 179, 141, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 133, 224, 178, 181, 224, 179, 129,
-			72, 0, 0, 0, 15, 140, 224, 178, 185, 224, 178, 178, 224, 178, 181, 224, 179, 129, 72, 15, 140, 224, 178, 164, 224, 178, 190, 224, 178, 181,
-			224, 179, 129, 72, 15, 140, 224, 178, 168, 224, 178, 190, 224, 178, 181, 224, 179, 129, 72, 0, 0, 11, 6, 224, 178, 159, 224, 179, 141, 37,
-			139, 0, 0, 18, 143, 224, 178, 149, 224, 179, 134, 224, 178, 178, 224, 178, 181, 224, 179, 129, 72, 0, 0, 0, 11, 6, 224, 178, 157, 224,
-			179, 141, 37, 144, 0, 0, 0, 15, 140, 224, 178, 133, 224, 178, 168, 224, 179, 135, 224, 178, 149, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 11, 6, 224, 178, 163, 224, 179, 141, 37, 66, 0, 11, 6, 224, 178, 155, 224, 179, 141, 37, 143, 0, 0, 0, 0, 0, 11, 6,
-			224, 178, 185, 224, 179, 141, 37, 107, 0, 11, 6, 224, 178, 161, 224, 179, 141, 37, 140, 0, 11, 6, 224, 178, 153, 224, 179, 141, 37, 68,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 178, 167, 224, 179, 141, 37, 138, 0, 0, 0, 0, 0, 12, 137,
-			224, 178, 133, 224, 178, 181, 224, 178, 176, 72, 11, 6, 224, 178, 165, 224, 179, 141, 37, 25, 0, 0, 12, 137, 224, 178, 133, 224, 178, 181,
-			224, 178, 179, 72, 0, 0, 0, 14, 5, 95, 48, 77, 50, 120, 55, 6, 35, 49, 91, 35, 0, 0, 0, 0, 0, 12, 137, 224, 178, 133,
-			224, 178, 181, 224, 178, 168, 72, 0, 0, 0, 18, 143, 224, 178, 135, 224, 178, 181, 224, 179, 129, 224, 178, 151, 224, 178, 179, 72, 18, 143,
-			224, 178, 133, 224, 178, 181, 224, 179, 129, 224, 178, 151, 224, 178, 179, 72, 0, 0, 0, 0, 0, 0, 15, 140, 224, 178, 168, 224, 178, 174,
-			224, 179, 141, 224, 178, 174, 72, 0, 0, 0, 18, 143, 224, 178, 168, 224, 178, 191, 224, 178, 174, 224, 179, 141, 224, 178, 174, 72, 0, 0,
-			0, 0, 0, 19, 3, 95, 51, 57, 65, 6, 39, 84, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0, 18, 3, 95, 50, 49, 6, 113, 48,
-			12, 35, 6, 25, 12, 39, 50, 72, 40, 0, 0, 15, 140, 224, 178, 168, 224, 179, 128, 224, 178, 181, 224, 179, 129, 72, 16, 3, 95, 51,
-			56, 65, 6, 39, 84, 35, 25, 36, 50, 139, 40, 0, 0, 18, 3, 95, 50, 51, 113, 48, 12, 35, 6, 25, 12, 65, 6, 123, 34, 40,
-			0, 0, 15, 5, 95, 48, 77, 49, 120, 89, 6, 118, 84, 37, 34, 35, 0, 18, 3, 95, 50, 50, 113, 48, 12, 35, 6, 25, 12, 36,
-			34, 35, 140, 40, 0, 11, 6, 224, 178, 183, 224, 179, 141, 37, 93, 0, 0, 17, 3, 95, 50, 53, 113, 48, 12, 35, 6, 25, 12, 6,
-			134, 72, 40, 0, 0, 15, 140, 224, 178, 133, 224, 178, 181, 224, 178, 179, 224, 179, 129, 72, 19, 3, 95, 50, 52, 113, 48, 12, 35, 6,
-			25, 12, 50, 6, 118, 55, 49, 40, 0, 0, 16, 3, 95, 50, 55, 113, 48, 12, 35, 6, 25, 12, 114, 62, 40, 0, 0, 16, 3, 95,
-			50, 54, 113, 48, 12, 35, 6, 25, 12, 118, 34, 40, 0, 11, 6, 224, 178, 181, 224, 179, 141, 37, 84, 0, 0, 17, 3, 95, 51, 49,
-			65, 6, 39, 84, 35, 25, 12, 39, 50, 72, 40, 0, 0, 0, 17, 3, 95, 51, 51, 65, 6, 39, 84, 35, 25, 65, 6, 123, 34, 40,
-			0, 0, 17, 3, 95, 51, 50, 65, 6, 39, 84, 35, 25, 36, 34, 35, 140, 40, 0, 0, 16, 3, 95, 51, 53, 65, 6, 39, 84, 35,
-			25, 6, 134, 72, 40, 0, 0, 18, 3, 95, 51, 52, 65, 6, 39, 84, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 15, 3, 95, 51,
-			55, 65, 6, 39, 84, 35, 25, 114, 62, 40, 0, 0, 15, 3, 95, 51, 54, 65, 6, 39, 84, 35, 25, 118, 34, 40, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 55, 57, 116, 48, 12, 35, 25, 39, 65, 71, 35, 25, 12,
-			40, 0, 17, 3, 95, 54, 49, 35, 34, 35, 84, 35, 25, 12, 39, 50, 72, 40, 0, 0, 15, 3, 95, 55, 56, 116, 48, 12, 35, 25,
-			36, 50, 139, 40, 0, 14, 3, 95, 51, 88, 65, 6, 39, 84, 35, 25, 12, 40, 0, 0, 11, 3, 95, 48, 67, 50, 6, 123, 34, 118,
-			0, 17, 3, 95, 54, 51, 35, 34, 35, 84, 35, 25, 65, 6, 123, 34, 40, 0, 0, 17, 3, 95, 54, 50, 35, 34, 35, 84, 35, 25,
-			36, 34, 35, 140, 40, 0, 0, 15, 3, 95, 54, 53, 35, 34, 35, 84, 35, 25, 134, 72, 40, 0, 0, 18, 3, 95, 54, 52, 35, 34,
-			35, 84, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 15, 3, 95, 54, 55, 35, 34, 35, 84, 35, 25, 114, 62, 40, 0, 0, 15, 3,
-			95, 54, 54, 35, 34, 35, 84, 35, 25, 118, 34, 40, 0, 0, 16, 3, 95, 55, 49, 116, 48, 12, 35, 25, 12, 39, 50, 72, 40, 0,
-			0, 0, 10, 3, 95, 49, 67, 50, 123, 34, 118, 0, 16, 3, 95, 55, 51, 116, 48, 12, 35, 25, 65, 6, 123, 34, 40, 0, 0, 16,
-			3, 95, 55, 50, 116, 48, 12, 35, 25, 36, 34, 35, 140, 40, 0, 0, 14, 3, 95, 55, 53, 116, 48, 12, 35, 25, 134, 72, 40, 0,
-			0, 17, 3, 95, 55, 52, 116, 48, 12, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 13, 4, 95, 53, 67, 48, 6, 134, 50, 123, 34,
-			40, 0, 14, 3, 95, 55, 55, 116, 48, 12, 35, 25, 114, 62, 40, 0, 0, 14, 3, 95, 55, 54, 116, 48, 12, 35, 25, 118, 34, 40,
-			0, 0, 19, 3, 95, 49, 57, 107, 35, 6, 25, 12, 6, 39, 65, 71, 35, 25, 12, 40, 0, 0, 16, 3, 95, 49, 56, 107, 35, 72,
-			37, 50, 6, 36, 50, 139, 40, 0, 0, 13, 3, 95, 50, 67, 6, 37, 50, 50, 123, 34, 118, 0, 0, 0, 0, 0, 0, 0, 20, 3,
-			95, 50, 57, 113, 48, 12, 35, 6, 25, 12, 39, 65, 71, 35, 25, 12, 40, 0, 15, 3, 95, 49, 49, 107, 35, 50, 50, 6, 39, 50,
-			72, 40, 0, 0, 17, 3, 95, 50, 56, 113, 48, 12, 35, 6, 25, 12, 36, 50, 139, 40, 0, 0, 14, 3, 95, 51, 67, 65, 6, 40,
-			50, 50, 123, 34, 118, 0, 15, 3, 95, 49, 51, 107, 35, 72, 37, 65, 6, 123, 34, 40, 0, 0, 15, 3, 95, 49, 50, 107, 35, 50,
-			12, 36, 34, 35, 140, 40, 0, 0, 14, 3, 95, 49, 53, 107, 35, 72, 37, 50, 134, 72, 40, 0, 0, 16, 3, 95, 49, 52, 107, 35,
-			72, 37, 50, 6, 118, 55, 49, 40, 0, 0, 15, 3, 95, 49, 55, 107, 35, 72, 37, 50, 6, 114, 62, 40, 0, 0, 14, 3, 95, 49,
-			54, 107, 35, 72, 37, 50, 118, 34, 40, 0, 0, 0, 14, 3, 95, 55, 88, 6, 116, 48, 12, 35, 25, 12, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 21, 3, 95, 52, 57, 50, 6, 35, 55, 35, 84, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0, 0, 18, 3, 95, 52, 56,
-			50, 6, 35, 55, 35, 84, 35, 25, 36, 50, 139, 40, 0, 0, 12, 3, 95, 53, 67, 6, 134, 50, 123, 34, 118, 0, 0, 0, 0, 0,
-			0, 0, 17, 3, 95, 53, 57, 134, 84, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0, 19, 3, 95, 52, 49, 50, 6, 35, 55, 35, 84,
-			35, 25, 12, 39, 50, 72, 40, 0, 0, 14, 3, 95, 53, 56, 134, 84, 35, 25, 36, 50, 139, 40, 0, 12, 3, 95, 49, 88, 107, 6,
-			35, 25, 12, 40, 0, 0, 19, 3, 95, 52, 51, 50, 6, 35, 55, 35, 84, 35, 25, 65, 6, 123, 34, 40, 0, 0, 19, 3, 95, 52,
-			50, 50, 6, 35, 55, 35, 84, 35, 25, 36, 34, 35, 140, 40, 0, 0, 17, 3, 95, 52, 53, 50, 6, 35, 55, 35, 84, 35, 25, 134,
-			72, 40, 0, 0, 20, 3, 95, 52, 52, 50, 6, 35, 55, 35, 84, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 17, 3, 95, 52, 55,
-			50, 6, 35, 55, 35, 84, 35, 25, 114, 62, 40, 0, 0, 17, 3, 95, 52, 54, 50, 6, 35, 55, 35, 84, 35, 25, 118, 34, 40, 0,
-			0, 19, 3, 95, 54, 57, 35, 34, 35, 84, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0, 15, 3, 95, 53, 49, 134, 84, 35, 25, 12,
-			39, 50, 72, 40, 0, 0, 16, 3, 95, 54, 56, 35, 34, 35, 84, 35, 25, 36, 50, 139, 40, 0, 13, 3, 95, 50, 88, 113, 48, 12,
-			35, 25, 12, 40, 0, 0, 15, 3, 95, 53, 51, 134, 84, 35, 25, 65, 6, 123, 34, 40, 0, 0, 15, 3, 95, 53, 50, 134, 84, 35,
-			25, 36, 34, 35, 140, 40, 0, 0, 14, 3, 95, 53, 53, 134, 84, 35, 25, 6, 134, 72, 40, 0, 0, 16, 3, 95, 53, 52, 134, 84,
-			35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 13, 3, 95, 53, 55, 134, 84, 35, 25, 114, 62, 40, 0, 0, 13, 3, 95, 53, 54, 134,
-			84, 35, 25, 118, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 63, 63, 35, 49, 93, 35, 34, 35, 0, 0, 0, 18, 3,
-			95, 56, 57, 116, 65, 71, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0, 0, 15, 3, 95, 56, 56, 116, 65, 71, 35, 25, 36, 50, 139,
-			40, 0, 16, 3, 95, 52, 88, 50, 6, 35, 55, 35, 84, 35, 25, 12, 40, 0, 0, 15, 3, 95, 57, 67, 39, 65, 71, 35, 37, 50,
-			123, 34, 118, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 57, 57, 25, 6, 39, 65, 71, 35, 25, 39, 65, 71, 35, 25, 12, 40, 0,
-			16, 3, 95, 56, 49, 116, 65, 71, 35, 25, 12, 39, 50, 72, 40, 0, 0, 17, 3, 95, 57, 56, 25, 6, 39, 65, 71, 35, 25, 36,
-			50, 139, 40, 0, 13, 3, 95, 53, 88, 6, 134, 84, 35, 25, 12, 40, 0, 0, 16, 3, 95, 56, 51, 116, 65, 71, 35, 25, 65, 6,
-			123, 34, 40, 0, 0, 16, 3, 95, 56, 50, 116, 65, 71, 35, 25, 36, 34, 35, 140, 40, 0, 0, 14, 3, 95, 56, 53, 116, 65, 71,
-			35, 25, 134, 72, 40, 0, 0, 17, 3, 95, 56, 52, 116, 65, 71, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 14, 3, 95, 56, 55,
-			116, 65, 71, 35, 25, 114, 62, 40, 0, 0, 14, 3, 95, 56, 54, 116, 65, 71, 35, 25, 118, 34, 40, 0, 0, 18, 3, 95, 57, 49,
-			25, 6, 39, 65, 71, 35, 25, 12, 39, 50, 72, 40, 0, 0, 15, 3, 95, 54, 88, 6, 35, 34, 35, 84, 35, 25, 12, 40, 0, 0,
-			18, 3, 95, 57, 51, 25, 6, 39, 65, 71, 35, 25, 65, 6, 123, 34, 40, 0, 0, 19, 3, 95, 57, 50, 25, 6, 39, 65, 71, 35,
-			25, 12, 36, 34, 35, 140, 40, 0, 0, 16, 3, 95, 57, 53, 25, 6, 39, 65, 71, 35, 25, 134, 72, 40, 0, 0, 19, 3, 95, 57,
-			52, 25, 6, 39, 65, 71, 35, 25, 50, 6, 118, 55, 49, 40, 0, 0, 12, 137, 224, 178, 135, 224, 178, 181, 224, 179, 129, 72, 16, 3,
-			95, 57, 55, 25, 6, 39, 65, 71, 35, 25, 114, 62, 40, 0, 0, 16, 3, 95, 57, 54, 25, 6, 39, 65, 71, 35, 25, 118, 34, 40,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 179, 158, 224, 179, 141, 37, 83, 0, 11, 6, 224, 178, 150, 224, 179, 141, 37, 145,
-			0, 0, 0, 14, 3, 95, 56, 88, 6, 116, 65, 71, 35, 25, 12, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 57, 88,
-			25, 6, 39, 65, 71, 35, 25, 12, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224,
-			178, 181, 224, 178, 168, 72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224, 178, 181, 224, 178, 179, 72, 0, 12, 137, 224,
-			178, 135, 224, 178, 181, 224, 178, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4,
-			95, 48, 77, 52, 71, 6, 37, 55, 37, 39, 50, 0, 0, 0, 15, 4, 95, 48, 77, 50, 55, 6, 35, 49, 91, 35, 72, 35, 0, 0,
-			12, 4, 95, 48, 77, 51, 49, 6, 39, 139, 37, 0, 0, 0, 16, 4, 95, 48, 77, 49, 89, 6, 118, 84, 37, 34, 35, 72, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 224, 178, 136, 76, 0, 0, 6, 131, 224, 178, 134, 76, 0, 0,
-			8, 3, 224, 179, 140, 147, 135, 0, 0, 11, 3, 224, 179, 141, 84, 35, 47, 47, 40, 0, 0, 8, 3, 224, 179, 138, 18, 39, 0, 8,
-			3, 224, 178, 130, 35, 65, 0, 0, 9, 3, 224, 179, 139, 147, 119, 12, 0, 8, 3, 224, 178, 131, 35, 107, 0, 0, 8, 3, 224, 179,
-			136, 147, 134, 0, 0, 0, 8, 3, 224, 179, 134, 18, 36, 0, 0, 9, 3, 224, 179, 135, 147, 114, 12, 0, 0, 9, 3, 224, 179, 132,
-			147, 44, 12, 0, 0, 0, 9, 3, 224, 179, 130, 147, 123, 12, 0, 0, 9, 3, 224, 179, 131, 18, 34, 40, 0, 0, 9, 3, 224, 179,
-			128, 147, 112, 12, 0, 0, 8, 3, 224, 179, 129, 18, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 178, 135, 224, 178,
-			181, 224, 178, 176, 224, 179, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 67, 65, 101, 0, 48, 34, 134, 84, 35, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 178, 190, 147, 118, 12, 0, 0, 8, 3, 224, 178, 191, 18, 37, 0, 0, 11, 3, 224,
+			49, 0, 0, 0, 5, 65, 20, 112, 0, 0, 0, 0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65, 28, 75, 112, 0, 0,
+			0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 16, 1, 33, 118, 89, 144, 35, 34, 57, 35, 144, 37, 50, 107, 36, 0, 0, 0, 0, 6,
+			65, 36, 118, 57, 0, 0, 13, 1, 37, 48, 34, 35, 47, 37, 93, 35, 47, 35, 0, 0, 9, 1, 38, 65, 35, 47, 47, 40, 0, 0,
+			0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 0, 0, 14, 1, 44, 35, 55, 48, 35, 84, 37, 34, 118, 65, 35, 0, 7, 65, 44, 49,
+			114, 57, 0, 0, 0, 15, 1, 46, 48, 123, 34, 66, 35, 84, 37, 34, 118, 65, 35, 0, 0, 0, 6, 65, 48, 116, 55, 0, 0, 13,
+			1, 49, 49, 118, 55, 40, 0, 82, 47, 32, 52, 32, 13, 1, 49, 35, 34, 139, 35, 0, 82, 47, 32, 50, 32, 0, 0, 16, 1, 51,
+			65, 40, 49, 49, 118, 55, 40, 0, 82, 47, 32, 52, 32, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 0, 6, 65, 56, 116, 50, 0,
+			0, 0, 0, 0, 5, 65, 60, 119, 0, 0, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 15, 140, 224, 178, 164, 224, 178, 174, 224, 179,
+			141, 224, 178, 174, 72, 0, 0, 0, 7, 65, 68, 49, 57, 123, 0, 0, 0, 0, 0, 15, 140, 224, 178, 135, 224, 178, 181, 224, 178, 168,
+			224, 179, 129, 72, 6, 65, 72, 118, 34, 0, 0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 12, 4, 95, 48, 67, 48, 50,
+			6, 123, 34, 40, 0, 0, 6, 65, 80, 138, 112, 0, 0, 0, 25, 149, 224, 178, 134, 224, 178, 166, 224, 178, 190, 224, 178, 151, 224, 179,
+			141, 224, 178, 175, 224, 179, 130, 72, 8, 0, 0, 6, 65, 84, 57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0,
+			0, 11, 65, 92, 72, 35, 71, 35, 55, 57, 123, 0, 0, 0, 0, 0, 7, 65, 96, 116, 49, 89, 0, 0, 0, 0, 0, 7, 65, 100,
+			58, 118, 57, 0, 0, 0, 0, 0, 15, 140, 224, 178, 135, 224, 178, 181, 224, 178, 179, 224, 179, 129, 72, 7, 65, 104, 88, 116, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 178, 168, 224, 178, 168, 224, 179, 141,
+			224, 178, 168, 72, 0, 0, 0, 18, 143, 224, 178, 168, 224, 178, 191, 224, 178, 168, 224, 179, 141, 224, 178, 168, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 49, 67, 48, 50, 123, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95,
+			50, 67, 48, 6, 37, 50, 50, 123, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 4, 16, 20, 10, 72, 6, 35, 93,
+			118, 65, 93, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 95, 48,
+			77, 50, 24, 55, 6, 35, 49, 91, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 15, 5, 95, 48, 77, 49, 24, 89, 6, 118, 84, 37, 34, 35, 0, 11, 6, 224, 178, 175, 224, 179, 141, 37, 57,
+			0, 0, 0, 0, 0, 11, 6, 224, 178, 173, 224, 179, 141, 37, 137, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 51, 67, 48, 65,
+			6, 40, 50, 50, 123, 34, 40, 0, 0, 0, 0, 0, 0, 11, 6, 224, 178, 179, 224, 179, 141, 37, 62, 0, 11, 6, 224, 178, 171, 224,
+			179, 141, 37, 136, 0, 0, 0, 0, 0, 11, 6, 224, 178, 177, 224, 179, 141, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224,
+			178, 133, 224, 178, 181, 224, 179, 129, 72, 0, 0, 0, 15, 140, 224, 178, 185, 224, 178, 178, 224, 178, 181, 224, 179, 129, 72, 15, 140, 224,
+			178, 164, 224, 178, 190, 224, 178, 181, 224, 179, 129, 72, 15, 140, 224, 178, 168, 224, 178, 190, 224, 178, 181, 224, 179, 129, 72, 0, 0, 11,
+			6, 224, 178, 159, 224, 179, 141, 37, 140, 0, 0, 18, 143, 224, 178, 149, 224, 179, 134, 224, 178, 178, 224, 178, 181, 224, 179, 129, 72, 0,
+			0, 0, 11, 6, 224, 178, 157, 224, 179, 141, 37, 145, 0, 0, 0, 15, 140, 224, 178, 133, 224, 178, 168, 224, 179, 135, 224, 178, 149, 72,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 178, 163, 224, 179, 141, 37, 66, 0, 11, 6, 224, 178, 155, 224, 179, 141, 37,
+			144, 0, 0, 0, 0, 0, 11, 6, 224, 178, 185, 224, 179, 141, 37, 107, 0, 11, 6, 224, 178, 161, 224, 179, 141, 37, 141, 0, 11, 6,
+			224, 178, 153, 224, 179, 141, 37, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 178, 167, 224, 179, 141, 37,
+			141, 0, 0, 0, 0, 0, 12, 137, 224, 178, 133, 224, 178, 181, 224, 178, 176, 72, 11, 6, 224, 178, 165, 224, 179, 141, 37, 138, 0, 0,
+			12, 137, 224, 178, 133, 224, 178, 181, 224, 178, 179, 72, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 133, 224, 178, 181, 224, 178, 168,
+			72, 0, 0, 0, 18, 143, 224, 178, 135, 224, 178, 181, 224, 179, 129, 224, 178, 151, 224, 178, 179, 72, 18, 143, 224, 178, 133, 224, 178, 181,
+			224, 179, 129, 224, 178, 151, 224, 178, 179, 72, 0, 0, 0, 0, 0, 0, 15, 140, 224, 178, 168, 224, 178, 174, 224, 179, 141, 224, 178, 174,
+			72, 0, 0, 0, 18, 143, 224, 178, 168, 224, 178, 191, 224, 178, 174, 224, 179, 141, 224, 178, 174, 72, 0, 0, 0, 0, 0, 19, 3, 95,
+			51, 57, 65, 6, 39, 84, 35, 138, 39, 65, 71, 35, 138, 12, 40, 0, 18, 3, 95, 50, 49, 6, 113, 48, 12, 35, 6, 138, 12, 39,
+			50, 72, 40, 0, 0, 15, 140, 224, 178, 168, 224, 179, 128, 224, 178, 181, 224, 179, 129, 72, 16, 3, 95, 51, 56, 65, 6, 39, 84, 35,
+			138, 36, 50, 140, 40, 0, 0, 18, 3, 95, 50, 51, 113, 48, 12, 35, 6, 138, 12, 65, 6, 123, 34, 40, 0, 0, 18, 3, 95, 50,
+			50, 113, 48, 12, 35, 6, 138, 12, 36, 34, 35, 141, 40, 0, 11, 6, 224, 178, 183, 224, 179, 141, 37, 93, 0, 0, 17, 3, 95, 50,
+			53, 113, 48, 12, 35, 6, 138, 12, 6, 134, 72, 40, 0, 0, 15, 140, 224, 178, 133, 224, 178, 181, 224, 178, 179, 224, 179, 129, 72, 19,
+			3, 95, 50, 52, 113, 48, 12, 35, 6, 138, 12, 50, 6, 118, 55, 49, 40, 0, 0, 16, 3, 95, 50, 55, 113, 48, 12, 35, 6, 138,
+			12, 114, 62, 40, 0, 0, 16, 3, 95, 50, 54, 113, 48, 12, 35, 6, 138, 12, 118, 34, 40, 0, 11, 6, 224, 178, 181, 224, 179, 141,
+			37, 84, 0, 0, 17, 3, 95, 51, 49, 65, 6, 39, 84, 35, 138, 12, 39, 50, 72, 40, 0, 0, 0, 17, 3, 95, 51, 51, 65, 6,
+			39, 84, 35, 138, 65, 6, 123, 34, 40, 0, 0, 17, 3, 95, 51, 50, 65, 6, 39, 84, 35, 138, 36, 34, 35, 141, 40, 0, 0, 16,
+			3, 95, 51, 53, 65, 6, 39, 84, 35, 138, 6, 134, 72, 40, 0, 0, 18, 3, 95, 51, 52, 65, 6, 39, 84, 35, 138, 50, 6, 118,
+			55, 49, 40, 0, 0, 15, 3, 95, 51, 55, 65, 6, 39, 84, 35, 138, 114, 62, 40, 0, 0, 15, 3, 95, 51, 54, 65, 6, 39, 84,
+			35, 138, 118, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 55, 57, 116, 48,
+			12, 35, 138, 39, 65, 71, 35, 138, 12, 40, 0, 17, 3, 95, 54, 49, 35, 34, 35, 84, 35, 138, 12, 39, 50, 72, 40, 0, 0, 15,
+			3, 95, 55, 56, 116, 48, 12, 35, 138, 36, 50, 140, 40, 0, 14, 3, 95, 51, 88, 65, 6, 39, 84, 35, 138, 12, 40, 0, 0, 11,
+			3, 95, 48, 67, 50, 6, 123, 34, 118, 0, 17, 3, 95, 54, 51, 35, 34, 35, 84, 35, 138, 65, 6, 123, 34, 40, 0, 0, 17, 3,
+			95, 54, 50, 35, 34, 35, 84, 35, 138, 36, 34, 35, 141, 40, 0, 0, 15, 3, 95, 54, 53, 35, 34, 35, 84, 35, 138, 134, 72, 40,
+			0, 0, 18, 3, 95, 54, 52, 35, 34, 35, 84, 35, 138, 50, 6, 118, 55, 49, 40, 0, 0, 15, 3, 95, 54, 55, 35, 34, 35, 84,
+			35, 138, 114, 62, 40, 0, 0, 15, 3, 95, 54, 54, 35, 34, 35, 84, 35, 138, 118, 34, 40, 0, 0, 16, 3, 95, 55, 49, 116, 48,
+			12, 35, 138, 12, 39, 50, 72, 40, 0, 0, 0, 10, 3, 95, 49, 67, 50, 123, 34, 118, 0, 16, 3, 95, 55, 51, 116, 48, 12, 35,
+			138, 65, 6, 123, 34, 40, 0, 0, 16, 3, 95, 55, 50, 116, 48, 12, 35, 138, 36, 34, 35, 141, 40, 0, 0, 14, 3, 95, 55, 53,
+			116, 48, 12, 35, 138, 134, 72, 40, 0, 0, 17, 3, 95, 55, 52, 116, 48, 12, 35, 138, 50, 6, 118, 55, 49, 40, 0, 0, 13, 4,
+			95, 53, 67, 48, 6, 134, 50, 123, 34, 40, 0, 14, 3, 95, 55, 55, 116, 48, 12, 35, 138, 114, 62, 40, 0, 0, 14, 3, 95, 55,
+			54, 116, 48, 12, 35, 138, 118, 34, 40, 0, 0, 19, 3, 95, 49, 57, 107, 35, 6, 138, 12, 6, 39, 65, 71, 35, 138, 12, 40, 0,
+			0, 16, 3, 95, 49, 56, 107, 35, 72, 37, 50, 6, 36, 50, 140, 40, 0, 0, 13, 3, 95, 50, 67, 6, 37, 50, 50, 123, 34, 118,
+			0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 50, 57, 113, 48, 12, 35, 6, 138, 12, 39, 65, 71, 35, 138, 12, 40, 0, 15, 3, 95,
+			49, 49, 107, 35, 50, 50, 6, 39, 50, 72, 40, 0, 0, 17, 3, 95, 50, 56, 113, 48, 12, 35, 6, 138, 12, 36, 50, 140, 40, 0,
+			0, 14, 3, 95, 51, 67, 65, 6, 40, 50, 50, 123, 34, 118, 0, 15, 3, 95, 49, 51, 107, 35, 72, 37, 65, 6, 123, 34, 40, 0,
+			0, 15, 3, 95, 49, 50, 107, 35, 50, 12, 36, 34, 35, 141, 40, 0, 0, 14, 3, 95, 49, 53, 107, 35, 72, 37, 50, 134, 72, 40,
+			0, 0, 16, 3, 95, 49, 52, 107, 35, 72, 37, 50, 6, 118, 55, 49, 40, 0, 0, 15, 3, 95, 49, 55, 107, 35, 72, 37, 50, 6,
+			114, 62, 40, 0, 0, 14, 3, 95, 49, 54, 107, 35, 72, 37, 50, 118, 34, 40, 0, 0, 0, 14, 3, 95, 55, 88, 6, 116, 48, 12,
+			35, 138, 12, 40, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 52, 57, 50, 6, 35, 55, 35, 84, 35, 138, 39, 65, 71, 35, 138,
+			12, 40, 0, 0, 18, 3, 95, 52, 56, 50, 6, 35, 55, 35, 84, 35, 138, 36, 50, 140, 40, 0, 0, 12, 3, 95, 53, 67, 6, 134,
+			50, 123, 34, 118, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 53, 57, 134, 84, 35, 138, 39, 65, 71, 35, 138, 12, 40, 0, 19, 3,
+			95, 52, 49, 50, 6, 35, 55, 35, 84, 35, 138, 12, 39, 50, 72, 40, 0, 0, 14, 3, 95, 53, 56, 134, 84, 35, 138, 36, 50, 140,
+			40, 0, 12, 3, 95, 49, 88, 107, 6, 35, 138, 12, 40, 0, 0, 19, 3, 95, 52, 51, 50, 6, 35, 55, 35, 84, 35, 138, 65, 6,
+			123, 34, 40, 0, 0, 19, 3, 95, 52, 50, 50, 6, 35, 55, 35, 84, 35, 138, 36, 34, 35, 141, 40, 0, 0, 17, 3, 95, 52, 53,
+			50, 6, 35, 55, 35, 84, 35, 138, 134, 72, 40, 0, 0, 20, 3, 95, 52, 52, 50, 6, 35, 55, 35, 84, 35, 138, 50, 6, 118, 55,
+			49, 40, 0, 0, 17, 3, 95, 52, 55, 50, 6, 35, 55, 35, 84, 35, 138, 114, 62, 40, 0, 0, 17, 3, 95, 52, 54, 50, 6, 35,
+			55, 35, 84, 35, 138, 118, 34, 40, 0, 0, 19, 3, 95, 54, 57, 35, 34, 35, 84, 35, 138, 39, 65, 71, 35, 138, 12, 40, 0, 15,
+			3, 95, 53, 49, 134, 84, 35, 138, 12, 39, 50, 72, 40, 0, 0, 16, 3, 95, 54, 56, 35, 34, 35, 84, 35, 138, 36, 50, 140, 40,
+			0, 13, 3, 95, 50, 88, 113, 48, 12, 35, 138, 12, 40, 0, 0, 15, 3, 95, 53, 51, 134, 84, 35, 138, 65, 6, 123, 34, 40, 0,
+			0, 15, 3, 95, 53, 50, 134, 84, 35, 138, 36, 34, 35, 141, 40, 0, 0, 14, 3, 95, 53, 53, 134, 84, 35, 138, 6, 134, 72, 40,
+			0, 0, 16, 3, 95, 53, 52, 134, 84, 35, 138, 50, 6, 118, 55, 49, 40, 0, 0, 13, 3, 95, 53, 55, 134, 84, 35, 138, 114, 62,
+			40, 0, 0, 13, 3, 95, 53, 54, 134, 84, 35, 138, 118, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 63, 63, 35, 49,
+			93, 35, 34, 35, 0, 0, 0, 18, 3, 95, 56, 57, 116, 65, 71, 35, 138, 39, 65, 71, 35, 138, 12, 40, 0, 0, 15, 3, 95, 56,
+			56, 116, 65, 71, 35, 138, 36, 50, 140, 40, 0, 16, 3, 95, 52, 88, 50, 6, 35, 55, 35, 84, 35, 138, 12, 40, 0, 0, 15, 3,
+			95, 57, 67, 39, 65, 71, 35, 37, 50, 123, 34, 118, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 57, 57, 138, 6, 39, 65, 71, 35,
+			138, 39, 65, 71, 35, 138, 12, 40, 0, 16, 3, 95, 56, 49, 116, 65, 71, 35, 138, 12, 39, 50, 72, 40, 0, 0, 17, 3, 95, 57,
+			56, 138, 6, 39, 65, 71, 35, 138, 36, 50, 140, 40, 0, 13, 3, 95, 53, 88, 6, 134, 84, 35, 138, 12, 40, 0, 0, 16, 3, 95,
+			56, 51, 116, 65, 71, 35, 138, 65, 6, 123, 34, 40, 0, 0, 16, 3, 95, 56, 50, 116, 65, 71, 35, 138, 36, 34, 35, 141, 40, 0,
+			0, 14, 3, 95, 56, 53, 116, 65, 71, 35, 138, 134, 72, 40, 0, 0, 17, 3, 95, 56, 52, 116, 65, 71, 35, 138, 50, 6, 118, 55,
+			49, 40, 0, 0, 14, 3, 95, 56, 55, 116, 65, 71, 35, 138, 114, 62, 40, 0, 0, 14, 3, 95, 56, 54, 116, 65, 71, 35, 138, 118,
+			34, 40, 0, 0, 18, 3, 95, 57, 49, 138, 6, 39, 65, 71, 35, 138, 12, 39, 50, 72, 40, 0, 0, 15, 3, 95, 54, 88, 6, 35,
+			34, 35, 84, 35, 138, 12, 40, 0, 0, 18, 3, 95, 57, 51, 138, 6, 39, 65, 71, 35, 138, 65, 6, 123, 34, 40, 0, 0, 19, 3,
+			95, 57, 50, 138, 6, 39, 65, 71, 35, 138, 12, 36, 34, 35, 141, 40, 0, 0, 16, 3, 95, 57, 53, 138, 6, 39, 65, 71, 35, 138,
+			134, 72, 40, 0, 0, 19, 3, 95, 57, 52, 138, 6, 39, 65, 71, 35, 138, 50, 6, 118, 55, 49, 40, 0, 0, 12, 137, 224, 178, 135,
+			224, 178, 181, 224, 179, 129, 72, 16, 3, 95, 57, 55, 138, 6, 39, 65, 71, 35, 138, 114, 62, 40, 0, 0, 16, 3, 95, 57, 54, 138,
+			6, 39, 65, 71, 35, 138, 118, 34, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 179, 158, 224, 179, 141, 37, 83, 0, 11,
+			6, 224, 178, 150, 224, 179, 141, 37, 146, 0, 0, 0, 14, 3, 95, 56, 88, 6, 116, 65, 71, 35, 138, 12, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 3, 95, 57, 88, 138, 6, 39, 65, 71, 35, 138, 12, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 137, 224, 178, 135, 224, 178, 181, 224, 178, 168, 72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224, 178,
+			181, 224, 178, 179, 72, 0, 12, 137, 224, 178, 135, 224, 178, 181, 224, 178, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 39, 50, 0, 0, 0, 15, 4, 95, 48, 77, 50, 55,
+			6, 35, 49, 91, 35, 72, 35, 0, 0, 12, 4, 95, 48, 77, 51, 49, 6, 39, 140, 37, 0, 0, 0, 16, 4, 95, 48, 77, 49, 89,
+			6, 118, 84, 37, 34, 35, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 224, 178, 136, 76, 0,
+			0, 6, 131, 224, 178, 134, 76, 0, 0, 8, 3, 224, 179, 140, 148, 135, 0, 0, 11, 3, 224, 179, 141, 84, 35, 47, 47, 40, 0, 0,
+			8, 3, 224, 179, 138, 18, 39, 0, 8, 3, 224, 178, 130, 35, 65, 0, 0, 9, 3, 224, 179, 139, 148, 119, 12, 0, 8, 3, 224, 178,
+			131, 35, 107, 0, 0, 8, 3, 224, 179, 136, 148, 134, 0, 0, 0, 8, 3, 224, 179, 134, 18, 36, 0, 0, 9, 3, 224, 179, 135, 148,
+			114, 12, 0, 0, 9, 3, 224, 179, 132, 148, 44, 12, 0, 0, 0, 9, 3, 224, 179, 130, 148, 123, 12, 0, 0, 9, 3, 224, 179, 131,
+			18, 34, 40, 0, 0, 9, 3, 224, 179, 128, 148, 112, 12, 0, 0, 8, 3, 224, 179, 129, 18, 40, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 15, 140, 224, 178, 135, 224, 178, 181, 224, 178, 176, 224, 179, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 67, 65, 101, 0,
+			48, 34, 134, 84, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 178, 190, 148, 118, 12, 0, 0, 8, 3, 224,
+			178, 191, 18, 37, 0, 0, 21, 67, 33, 69, 16, 114, 76, 47, 112, 47, 112, 6, 48, 112, 10, 0, 81, 58, 47, 47, 32, 11, 3, 224,
 			178, 188, 50, 40, 49, 47, 35, 0, 0, 14, 3, 224, 178, 189, 35, 84, 35, 81, 34, 35, 107, 35, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 57, 67, 48, 39, 65, 71, 35, 37, 50, 123, 34, 40, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 190, 65,
 			40, 49, 49, 118, 55, 40, 0, 0, 13, 2, 195, 183, 137, 118, 81, 118, 49, 118, 34, 35, 0, 0, 9, 2, 194, 188, 49, 118, 55, 40,
-			0, 0, 9, 2, 194, 189, 35, 34, 138, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 2, 194, 189, 35, 34, 139, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 178, 136, 224, 178, 151, 72, 0, 0, 11, 6, 224, 178, 168, 224, 179, 141, 37, 50, 0,
 			0, 0, 0, 0, 11, 6, 224, 178, 174, 224, 179, 141, 37, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224,
 			178, 172, 224, 179, 141, 37, 71, 0, 11, 6, 224, 178, 164, 224, 179, 141, 37, 47, 0, 0, 0, 0, 0, 11, 6, 224, 178, 178, 224, 179,
 			141, 37, 55, 0, 11, 6, 224, 178, 170, 224, 179, 141, 37, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224,
-			178, 184, 224, 179, 141, 37, 89, 0, 11, 6, 224, 178, 176, 224, 179, 141, 37, 34, 0, 11, 6, 224, 178, 152, 224, 179, 141, 37, 146, 0,
+			178, 184, 224, 179, 141, 37, 89, 0, 11, 6, 224, 178, 176, 224, 179, 141, 37, 34, 0, 11, 6, 224, 178, 152, 224, 179, 141, 37, 147, 0,
 			0, 0, 15, 140, 224, 178, 133, 224, 178, 181, 224, 178, 168, 224, 179, 129, 72, 10, 2, 95, 51, 65, 6, 123, 34, 40, 0, 0, 11, 2,
-			95, 50, 6, 36, 34, 35, 140, 40, 0, 0, 21, 146, 224, 178, 175, 224, 178, 190, 224, 178, 181, 224, 179, 129, 224, 178, 166, 224, 179, 129,
+			95, 50, 6, 36, 34, 35, 141, 40, 0, 0, 21, 146, 224, 178, 175, 224, 178, 190, 224, 178, 181, 224, 179, 129, 224, 178, 166, 224, 179, 129,
 			72, 10, 2, 95, 49, 6, 39, 50, 72, 40, 0, 11, 6, 224, 178, 158, 224, 179, 141, 37, 67, 0, 0, 11, 2, 95, 48, 89, 6, 39,
 			50, 50, 36, 0, 0, 21, 146, 224, 178, 175, 224, 178, 190, 224, 178, 181, 224, 179, 129, 224, 178, 166, 224, 179, 135, 72, 9, 2, 95, 55,
 			6, 114, 62, 40, 0, 0, 9, 2, 95, 54, 6, 118, 34, 40, 0, 0, 12, 137, 224, 178, 135, 224, 178, 164, 224, 178, 176, 72, 9, 2,
 			95, 53, 6, 134, 72, 40, 0, 0, 11, 2, 95, 52, 50, 6, 118, 55, 49, 40, 0, 0, 0, 0, 13, 2, 95, 57, 6, 39, 65, 71,
-			35, 25, 12, 40, 0, 0, 10, 2, 95, 56, 6, 36, 50, 139, 40, 0, 0, 11, 2, 95, 63, 35, 49, 93, 35, 34, 35, 0, 0, 0,
+			35, 138, 12, 40, 0, 0, 10, 2, 95, 56, 6, 36, 50, 140, 40, 0, 0, 11, 2, 95, 63, 35, 49, 93, 35, 34, 35, 0, 0, 0,
 			11, 6, 224, 178, 156, 224, 179, 141, 37, 79, 0, 0, 0, 0, 14, 9, 224, 178, 156, 224, 178, 188, 224, 179, 141, 37, 88, 0, 14, 9,
-			224, 178, 171, 224, 178, 188, 224, 179, 141, 37, 83, 0, 0, 11, 6, 224, 178, 162, 224, 179, 141, 37, 142, 0, 11, 6, 224, 178, 154, 224,
+			224, 178, 171, 224, 178, 188, 224, 179, 141, 37, 83, 0, 0, 11, 6, 224, 178, 162, 224, 179, 141, 37, 143, 0, 11, 6, 224, 178, 154, 224,
 			179, 141, 37, 80, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224, 178, 166, 224, 179, 129, 72, 12, 137, 224, 178, 133, 224,
 			178, 166, 224, 179, 129, 72, 0, 0, 16, 140, 224, 178, 134, 224, 178, 166, 224, 178, 176, 224, 179, 134, 72, 8, 0, 0, 0, 11, 6, 224,
-			178, 160, 224, 179, 141, 37, 141, 0, 0, 0, 15, 140, 224, 178, 133, 224, 178, 181, 224, 178, 176, 224, 179, 129, 72, 15, 140, 224, 178, 168,
+			178, 160, 224, 179, 141, 37, 142, 0, 0, 0, 15, 140, 224, 178, 133, 224, 178, 181, 224, 178, 176, 224, 179, 129, 72, 15, 140, 224, 178, 168,
 			224, 179, 128, 224, 178, 168, 224, 179, 129, 72, 15, 140, 224, 178, 168, 224, 178, 190, 224, 178, 168, 224, 179, 129, 72, 0, 0, 11, 6, 224,
 			178, 166, 224, 179, 141, 37, 72, 0, 0, 19, 143, 224, 178, 174, 224, 178, 164, 224, 179, 141, 224, 178, 164, 224, 179, 129, 72, 8, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224, 178, 130, 224, 178, 166, 72, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 178, 135, 224, 178, 166, 224, 178, 176, 72, 12, 137, 224, 178, 133, 224, 178,
 			166, 224, 178, 176, 72, 11, 6, 224, 178, 182, 224, 179, 141, 37, 97, 0, 0, 28, 152, 224, 178, 134, 224, 178, 166, 224, 179, 141, 224, 178,
-			166, 224, 178, 176, 224, 178, 191, 224, 178, 130, 224, 178, 166, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 44, 19, 142, 4, 64, 64, 49, 35, 50, 50, 35, 140, 35, 0, 0,
+			166, 224, 178, 176, 224, 178, 191, 224, 178, 130, 224, 178, 166, 72, 8, 16, 70, 44, 19, 142, 4, 64, 64, 49, 35, 50, 50, 35, 141, 35,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34142,24 +23453,20 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 230, 12, 0, 0, 48, 0, 0, 0, 231, 12, 0, 0, 49, 0, 0, 0,
 			232, 12, 0, 0, 50, 0, 0, 0, 233, 12, 0, 0, 51, 0, 0, 0, 234, 12, 0, 0, 52, 0, 0, 0, 235, 12, 0, 0, 53, 0,
 			0, 0, 236, 12, 0, 0, 54, 0, 0, 0, 237, 12, 0, 0, 55, 0, 0, 0, 238, 12, 0, 0, 56, 0, 0, 0, 239, 12, 0, 0,
-			57, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 224, 178, 149, 0, 224, 178, 150, 0, 224, 178, 151, 0, 224, 178, 152, 0, 224, 178, 153,
-			0, 7, 6, 18, 67, 224, 178, 154, 0, 224, 178, 155, 0, 224, 178, 156, 0, 224, 178, 157, 0, 224, 178, 158, 0, 7, 6, 18, 68, 224,
-			178, 159, 0, 224, 178, 160, 0, 224, 178, 161, 0, 224, 178, 162, 0, 224, 178, 163, 0, 7, 6, 18, 69, 224, 178, 164, 0, 224, 178, 165,
-			0, 224, 178, 166, 0, 224, 178, 167, 0, 224, 178, 168, 0, 7, 6, 18, 70, 224, 178, 170, 0, 224, 178, 171, 0, 224, 178, 172, 0, 224,
-			178, 173, 0, 224, 178, 174, 0, 7, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7, 6, 1, 8, 0, 3, 37,
+			57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7, 6, 1, 8, 0, 3, 37,
 			0, 7, 6, 1, 9, 0, 3, 112, 0, 7, 6, 1, 10, 0, 3, 40, 0, 7, 6, 1, 11, 0, 3, 123, 0, 7, 6, 1, 12, 0,
 			3, 34, 40, 0, 7, 6, 1, 15, 0, 3, 36, 0, 7, 6, 1, 16, 0, 3, 114, 0, 7, 6, 1, 17, 0, 3, 134, 0, 7, 6,
 			1, 19, 0, 3, 39, 0, 7, 6, 1, 20, 0, 3, 119, 0, 7, 6, 1, 21, 0, 3, 135, 0, 7, 6, 1, 22, 0, 2, 17, 66,
-			3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66,
-			3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66,
+			3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66,
+			3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 147, 0, 3, 147, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66,
 			3, 68, 0, 3, 68, 35, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0, 3, 80, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66,
-			3, 143, 0, 3, 143, 35, 0, 7, 6, 1, 29, 0, 2, 17, 66, 3, 79, 0, 3, 79, 35, 0, 224, 178, 188, 2, 17, 66, 3, 88,
-			0, 224, 178, 188, 3, 88, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 35, 0, 7, 6, 1, 31, 0, 2, 17,
-			66, 3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 33, 0, 2, 17,
-			66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 35, 0, 2, 17,
-			66, 3, 142, 0, 3, 142, 35, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 2, 17,
-			66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 35, 0, 7, 6, 1, 39, 0, 2, 17,
-			66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 41, 0, 2, 17,
+			3, 144, 0, 3, 144, 35, 0, 7, 6, 1, 29, 0, 2, 17, 66, 3, 79, 0, 3, 79, 35, 0, 224, 178, 188, 2, 17, 66, 3, 88,
+			0, 224, 178, 188, 3, 88, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 31, 0, 2, 17,
+			66, 3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 33, 0, 2, 17,
+			66, 3, 142, 0, 3, 142, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 35, 0, 2, 17,
+			66, 3, 143, 0, 3, 143, 35, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 2, 17,
+			66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 39, 0, 2, 17,
+			66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 41, 0, 2, 17,
 			66, 3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 44, 0, 224, 178,
 			188, 2, 17, 66, 3, 83, 0, 224, 178, 188, 3, 83, 35, 0, 2, 17, 66, 3, 136, 0, 3, 136, 35, 0, 7, 6, 1, 45, 0, 2,
 			17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137, 35, 0, 7, 6, 1, 47, 0, 2,
@@ -34170,17 +23477,16 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			17, 66, 3, 93, 0, 3, 93, 35, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 58, 0, 2,
 			17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 95, 0, 2, 17, 66, 3, 83, 0, 3, 83, 35, 0, 7, 6, 1, 97, 0, 3,
 			44, 0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104, 105, 0, 7, 6, 224, 178, 0, 191, 3, 37,
-			0, 130, 2, 18, 69, 3, 50, 0, 130, 3, 65, 0, 130, 2, 18, 68, 3, 66, 0, 130, 2, 18, 67, 3, 67, 0, 130, 2, 18, 66,
-			3, 68, 0, 131, 3, 107, 0, 190, 3, 118, 0, 7, 6, 224, 179, 0, 141, 3, 0, 4, 149, 3, 12, 0, 150, 0, 131, 3, 34, 40,
-			0, 134, 3, 36, 0, 138, 3, 39, 0, 129, 3, 40, 0, 132, 3, 44, 12, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3, 119, 0,
-			130, 3, 123, 0, 136, 3, 134, 0, 140, 3, 135, 0, 7, 6, 0, 36, 3, 72, 119, 62, 35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts36 = FileInMemory_createWithData (5515, reinterpret_cast<const char *> (&espeakdata_dicts36_data), 
-			U"espeak-1.48.04-source/espeak-data/kn_dict", 
+			0, 130, 3, 65, 0, 131, 3, 107, 0, 190, 3, 118, 0, 7, 6, 224, 179, 0, 141, 3, 0, 4, 149, 3, 12, 0, 150, 0, 131, 3,
+			34, 40, 0, 134, 3, 36, 0, 138, 3, 39, 0, 129, 3, 40, 0, 132, 3, 44, 12, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3,
+			119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 140, 3, 135, 0, 7, 6, 0, 36, 3, 72, 119, 62, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts34 = FileInMemory_createWithData (5367, reinterpret_cast<const char *> (&espeakdata_dicts34_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/kn_dict", 
 			U"kn");
-		my addItem_move (espeakdata_dicts36.move());
+		Collection_addItem (me.peek(), espeakdata_dicts34.transfer());
 
-		static unsigned char espeakdata_dicts37_data[6463] = {
-			0, 4, 0, 0, 65, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_dicts35_data[6488] = {
+			0, 4, 0, 0, 75, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 48, 21, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 225,
 			132, 131, 225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 0, 29, 46, 21, 225, 132, 134, 225,
@@ -34190,396 +23496,397 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			133, 161, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 52, 24, 225, 132, 135, 225, 133, 174, 225, 132, 137, 225, 133, 181, 225, 134, 186,
 			225, 132, 131, 225, 133, 169, 225, 134, 175, 225, 132, 135, 225, 133, 174, 225, 132, 137, 225, 133, 181, 225, 134, 174, 225, 132, 132, 225, 133, 169,
 			225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 49, 77, 52, 81, 57, 6, 13, 68, 0,
-			0, 0, 0, 0, 12, 4, 95, 49, 77, 48, 76, 6, 107, 13, 50, 0, 0, 11, 4, 95, 49, 77, 49, 65, 6, 35, 50, 0, 0, 10,
-			4, 95, 49, 77, 50, 6, 13, 104, 0, 0, 10, 4, 95, 49, 77, 51, 78, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 225, 132,
-			132, 6, 115, 35, 68, 72, 4, 37, 104, 109, 118, 0, 0, 13, 3, 225, 132, 133, 16, 37, 38, 6, 109, 34, 34, 0, 0, 12, 3, 225,
-			132, 134, 65, 37, 38, 6, 109, 65, 0, 0, 12, 3, 225, 132, 135, 48, 37, 38, 6, 109, 48, 0, 0, 12, 3, 225, 132, 128, 81, 37,
-			57, 6, 13, 104, 0, 0, 16, 3, 225, 132, 129, 6, 115, 35, 68, 104, 4, 37, 57, 13, 104, 0, 0, 22, 6, 225, 132, 137, 225, 132,
-			135, 225, 132, 137, 225, 133, 181, 225, 132, 135, 225, 133, 161, 0, 29, 12, 3, 225, 132, 130, 50, 37, 38, 6, 109, 50, 0, 0, 12, 3,
-			225, 132, 131, 72, 37, 104, 6, 109, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 225, 132, 144,
-			47, 107, 37, 38, 6, 109, 112, 0, 0, 12, 3, 225, 132, 145, 114, 37, 38, 6, 109, 48, 0, 0, 34, 15, 225, 132, 144, 225, 133, 165,
-			225, 134, 186, 225, 132, 137, 225, 133, 166, 225, 132, 144, 225, 133, 165, 225, 134, 174, 225, 132, 138, 225, 133, 166, 0, 29, 12, 3, 225, 132,
-			146, 107, 37, 38, 6, 109, 112, 0, 0, 0, 12, 3, 225, 132, 140, 78, 37, 38, 6, 109, 47, 0, 0, 16, 3, 225, 132, 141, 6, 115,
-			35, 68, 77, 4, 37, 38, 109, 47, 0, 0, 39, 15, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 133, 178, 225, 134, 190, 225, 132, 131,
-			225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 178, 225, 134, 174, 0, 29, 13, 3, 225, 132, 142, 76, 107, 6, 37, 38, 109,
-			47, 0, 0, 12, 3, 225, 132, 143, 111, 37, 38, 6, 109, 49, 0, 0, 16, 3, 225, 132, 136, 6, 115, 35, 68, 71, 4, 37, 38, 109,
-			48, 0, 0, 12, 3, 225, 132, 137, 89, 37, 38, 6, 39, 112, 0, 0, 16, 3, 225, 132, 138, 6, 115, 35, 68, 89, 4, 37, 38, 39,
-			112, 0, 0, 52, 24, 225, 132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 128, 225, 133, 181, 225, 134, 186, 225, 132, 137, 225, 133, 166, 225,
-			132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 128, 225, 133, 181, 225, 134, 174, 225, 132, 138, 225, 133, 166, 0, 29, 11, 3, 225, 132, 139,
-			37, 38, 6, 109, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133, 169, 225, 134, 186, 225, 132, 131, 225, 133,
-			174, 225, 134, 168, 225, 132, 135, 225, 133, 169, 225, 134, 174, 225, 132, 132, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 46, 21, 225,
-			133, 181, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 132, 128, 225, 133, 174, 225, 134, 168, 225, 133, 181, 225, 134, 174, 225, 132, 141, 225,
-			133, 161, 225, 132, 128, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0, 40, 18, 225, 132, 144, 225, 133, 162, 225, 134, 186, 225, 132,
-			140, 225, 133, 174, 225, 134, 175, 225, 132, 144, 225, 133, 162, 225, 134, 174, 225, 132, 141, 225, 133, 174, 225, 134, 175, 0, 29, 0, 34, 15,
-			225, 132, 146, 225, 133, 162, 225, 134, 186, 225, 132, 137, 225, 133, 174, 225, 132, 146, 225, 133, 162, 225, 134, 174, 225, 132, 138, 225, 133, 174,
-			0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 34, 15, 225, 132, 146, 225, 133, 172, 225, 134, 186, 225, 132, 135, 225, 133, 162, 225, 132, 146,
-			225, 133, 176, 225, 134, 174, 225, 132, 136, 225, 133, 162, 0, 29, 0, 0, 40, 18, 225, 132, 144, 225, 133, 172, 225, 134, 186, 225, 132, 128,
-			225, 133, 161, 225, 134, 171, 225, 132, 144, 225, 133, 172, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 171, 0, 29, 40, 18, 225, 132,
-			142, 225, 133, 161, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 171, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 129, 225, 133,
-			161, 225, 134, 171, 0, 29, 40, 18, 225, 132, 128, 225, 133, 169, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 171, 225, 132, 128, 225,
-			133, 169, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 171, 0, 29, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133, 181, 225, 134,
-			186, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 135, 225, 133, 181, 225, 134, 171, 225, 132, 134, 225, 133, 174, 225, 134, 175, 0, 29,
-			0, 0, 0, 0, 46, 21, 225, 132, 130, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 134, 186, 225, 132, 135, 225, 133, 162, 225, 132, 130,
-			225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 134, 174, 225, 132, 136, 225, 133, 162, 0, 29, 0, 0, 52, 24, 225, 132, 134, 225, 133, 166,
-			225, 134, 186, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 134, 225, 133, 166, 225, 134, 171, 225, 132, 130,
-			225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 175, 0, 29, 0, 0, 46, 21, 225, 132, 146, 225, 133, 172, 225, 134, 186, 225, 132, 128,
-			225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 132, 146, 225, 133, 176, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 132, 133, 225, 133, 174,
-			0, 29, 0, 61, 27, 225, 132, 131, 225, 133, 169, 225, 132, 133, 225, 133, 181, 225, 132, 129, 225, 133, 162, 225, 134, 186, 225, 133, 167, 225,
-			134, 175, 225, 132, 131, 225, 133, 169, 225, 132, 133, 225, 133, 181, 225, 132, 129, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 167, 225,
-			134, 175, 0, 29, 0, 0, 0, 0, 46, 21, 225, 132, 135, 225, 133, 167, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 133, 225, 133,
-			181, 225, 132, 135, 225, 133, 167, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 132, 133, 225, 133, 181, 0, 29, 46, 21, 225, 132, 131, 225,
-			133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 140, 225, 133, 181, 225, 132, 131, 225, 133, 162, 225, 134, 174, 225, 132, 129, 225,
-			133, 161, 225, 132, 140, 225, 133, 181, 0, 29, 0, 0, 0, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 161,
-			225, 134, 171, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 141, 225, 133, 161, 225, 134, 171, 0, 29, 40, 18, 225, 132, 142, 225, 133,
-			161, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 134, 171, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 141, 225, 133, 161, 225, 134,
-			171, 0, 29, 0, 0, 0, 58, 27, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225,
-			132, 140, 225, 133, 181, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 132, 140, 225,
-			133, 181, 0, 29, 0, 0, 0, 0, 0, 58, 27, 225, 133, 174, 225, 132, 133, 225, 133, 165, 225, 134, 188, 225, 133, 181, 225, 134, 186, 225,
-			132, 137, 225, 133, 169, 225, 134, 168, 225, 133, 174, 225, 132, 133, 225, 133, 165, 225, 134, 188, 225, 133, 181, 225, 134, 174, 225, 132, 138, 225,
-			133, 169, 225, 134, 168, 0, 29, 0, 0, 0, 40, 18, 225, 132, 129, 225, 133, 162, 225, 134, 186, 225, 132, 134, 225, 133, 174, 225, 134, 168,
-			225, 132, 129, 225, 133, 162, 225, 134, 171, 225, 132, 134, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0, 0, 42, 18, 225, 132, 130,
-			225, 133, 162, 225, 134, 186, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 130, 225, 133, 162, 225, 134, 171, 203, 144, 225, 132, 134, 225,
-			133, 174, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 52, 24, 225, 133, 163, 225, 134, 188, 225, 132, 142, 225, 133, 181, 225, 134, 186,
-			225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 133, 163, 225, 134, 188, 225, 132, 142, 225, 133, 181, 225, 134, 171, 225, 132, 134, 225, 133, 174,
-			225, 134, 175, 0, 29, 54, 24, 225, 132, 134, 225, 133, 169, 225, 132, 128, 225, 133, 181, 225, 134, 186, 225, 132, 135, 225, 133, 174, 225, 134,
-			175, 225, 132, 134, 225, 133, 169, 203, 144, 225, 132, 128, 225, 133, 181, 225, 134, 174, 225, 132, 136, 225, 133, 174, 225, 134, 175, 0, 29, 0,
-			0, 0, 0, 40, 18, 225, 132, 143, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 185, 225, 132, 143, 225, 133, 181, 225,
-			134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 184, 0, 29, 0, 0, 0, 46, 21, 225, 132, 142, 225, 133, 166, 225, 134, 186, 225, 132, 135,
-			225, 133, 161, 225, 132, 143, 225, 133, 177, 225, 132, 142, 225, 133, 166, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 132, 143, 225, 133, 177,
-			0, 29, 0, 0, 42, 18, 225, 132, 137, 225, 133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 188, 225, 132, 137, 225, 133, 162,
-			225, 134, 174, 203, 144, 225, 132, 129, 225, 133, 161, 225, 134, 188, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 142, 225, 133, 169, 225, 134, 186, 225, 132, 128, 225, 133,
-			174, 225, 134, 168, 225, 132, 142, 225, 133, 169, 225, 134, 174, 225, 132, 129, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0, 0, 0,
-			46, 21, 225, 132, 140, 225, 133, 162, 225, 134, 186, 225, 132, 131, 225, 133, 165, 225, 132, 134, 225, 133, 181, 225, 132, 140, 225, 133, 162, 225,
-			134, 174, 225, 132, 132, 225, 133, 165, 225, 132, 134, 225, 133, 181, 0, 29, 0, 0, 0, 58, 27, 225, 132, 137, 225, 133, 165, 225, 134, 171,
-			225, 132, 140, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 174, 225, 134, 168, 225, 132, 137, 225, 133, 165, 225, 134, 171, 225, 132, 140,
-			225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 17, 3, 95, 51, 88, 89, 6, 35, 65, 11, 15, 89, 6, 37, 48, 11, 0, 0, 11, 3, 95, 48, 67, 48, 6, 108, 104,
-			11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 18, 3, 95, 55, 88, 76, 6, 107, 6, 37, 51, 11, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 88, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 50,
-			88, 6, 37, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95,
-			52, 88, 89, 6, 35, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 53, 88, 6, 39, 11, 15,
-			89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 54, 88, 57, 6, 40, 104, 11, 15, 89, 6, 37, 48, 11,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56, 88, 114, 6, 35, 51, 11, 15, 89, 6,
-			37, 48, 11, 0, 0, 0, 40, 18, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225, 132, 130, 225, 133, 181, 225, 133, 161, 225,
-			132, 133, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 0, 29, 0, 0, 0, 0, 0, 0, 16, 3, 95, 57, 88, 81, 6, 40,
-			11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 36, 15, 225, 132, 130, 225, 133, 162, 225, 134, 186, 225, 132, 128, 225,
-			133, 161, 225, 132, 130, 225, 133, 162, 225, 134, 174, 203, 144, 225, 132, 129, 225, 133, 161, 0, 29, 0, 0, 0, 0, 0, 0, 46, 21, 225,
-			132, 135, 225, 133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 135, 225, 133, 161, 225, 132, 131, 225,
-			133, 161, 225, 134, 174, 225, 132, 129, 225, 133, 161, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 81, 57, 6, 13, 68, 0, 0, 0, 10, 4, 95, 48,
-			77, 50, 6, 13, 104, 0, 0, 10, 4, 95, 48, 77, 51, 78, 6, 39, 0, 0, 12, 4, 95, 48, 77, 48, 76, 6, 107, 13, 50, 0,
-			0, 11, 4, 95, 48, 77, 49, 65, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 34, 15, 225, 132, 145, 225, 133, 181, 225, 134, 186,
-			225, 132, 128, 225, 133, 181, 225, 132, 145, 225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133, 181, 0, 29, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 15, 225, 132, 131, 225, 133, 162, 225, 134, 186, 225, 133, 181, 225, 135, 129, 225, 132, 131, 225,
-			133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 184, 0, 29, 37, 15, 225, 132, 129, 225, 133, 162, 225, 134, 186, 225, 133, 181,
-			225, 135, 129, 225, 132, 129, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 184, 0, 29, 0, 34, 15, 225, 132, 146, 225,
-			133, 172, 225, 134, 186, 225, 132, 137, 225, 133, 174, 225, 132, 146, 225, 133, 172, 225, 134, 174, 225, 132, 138, 225, 133, 174, 0, 29, 0, 34,
-			15, 225, 133, 181, 225, 134, 186, 225, 132, 134, 225, 133, 169, 225, 134, 183, 225, 133, 181, 225, 134, 171, 225, 132, 134, 225, 133, 169, 225, 134,
-			183, 0, 29, 0, 0, 0, 0, 49, 21, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 186, 225, 133, 181, 225, 135, 129,
-			225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 184, 0, 29, 0, 0, 0, 0,
-			31, 12, 225, 133, 173, 225, 134, 186, 225, 133, 181, 225, 134, 186, 225, 133, 173, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 174, 0,
-			29, 0, 0, 0, 0, 0, 46, 21, 225, 132, 140, 225, 133, 161, 225, 132, 133, 225, 133, 181, 225, 134, 186, 225, 132, 137, 225, 133, 166, 225,
-			132, 140, 225, 133, 161, 225, 132, 133, 225, 133, 181, 225, 134, 174, 225, 132, 138, 225, 133, 166, 0, 29, 0, 0, 0, 0, 49, 21, 225, 132,
-			135, 225, 133, 166, 225, 132, 128, 225, 133, 162, 225, 134, 186, 225, 133, 181, 225, 134, 186, 225, 132, 135, 225, 133, 166, 225, 132, 128, 225, 133,
-			162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 174, 0, 29, 46, 21, 225, 132, 128, 225, 133, 169, 225, 132, 133, 225, 133, 162, 225,
-			134, 186, 225, 132, 140, 225, 133, 162, 225, 132, 128, 225, 133, 169, 225, 132, 133, 225, 133, 162, 225, 134, 174, 225, 132, 141, 225, 133, 162, 0,
-			29, 0, 0, 0, 0, 52, 24, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225, 132, 134, 225, 133, 161, 225, 133, 179, 225, 134,
-			175, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 171, 225, 132, 134, 225, 133, 161, 225, 133, 179, 225, 134, 175, 0, 29, 0, 0, 0,
-			39, 15, 225, 132, 146, 225, 133, 174, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 146, 225, 133, 174, 225, 134, 171, 203, 144, 225, 132,
-			130, 225, 133, 181, 225, 134, 175, 0, 29, 39, 15, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 131, 225,
-			133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 0, 0, 0, 45, 18, 225, 133, 168, 225, 132, 137, 225,
-			133, 161, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 133, 168, 203, 144, 225, 132, 137, 225, 133, 161, 225, 134, 171, 225, 132, 130, 225, 133,
-			181, 225, 134, 175, 0, 29, 65, 18, 225, 132, 128, 225, 133, 161, 225, 133, 172, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 128, 225,
-			133, 161, 225, 133, 172, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 47, 225, 132, 128, 225, 133, 161, 225, 133, 176, 225, 134, 171,
-			225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 0, 40, 18, 225, 132, 146, 225, 133, 162, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225,
-			135, 128, 225, 132, 146, 225, 133, 162, 225, 134, 174, 225, 132, 136, 225, 133, 167, 225, 134, 174, 0, 29, 0, 0, 49, 21, 225, 132, 137, 225,
-			133, 161, 225, 132, 137, 225, 133, 161, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 137, 225, 133, 161, 225, 132, 137, 225, 133, 161, 225,
-			134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 49, 21, 225, 132, 131, 225, 133, 174, 225, 132, 133, 225, 133, 166, 225, 134, 186,
-			225, 133, 181, 225, 134, 175, 225, 132, 131, 225, 133, 174, 225, 132, 133, 225, 133, 166, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175,
-			0, 29, 0, 0, 0, 0, 0, 0, 0, 52, 24, 225, 132, 146, 225, 133, 167, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 132, 130, 225,
-			133, 179, 225, 134, 175, 225, 132, 146, 225, 133, 167, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 132, 130, 225, 133, 179, 225, 134, 175, 0,
-			29, 0, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 181, 225, 134, 175, 225, 132, 135, 225,
-			133, 162, 225, 134, 174, 225, 132, 129, 225, 133, 181, 225, 134, 175, 0, 29, 40, 18, 225, 132, 134, 225, 133, 162, 225, 134, 186, 225, 132, 131,
-			225, 133, 169, 225, 134, 175, 225, 132, 134, 225, 133, 162, 225, 134, 174, 225, 132, 132, 225, 133, 169, 225, 134, 175, 0, 29, 0, 0, 0, 34,
-			15, 225, 132, 137, 225, 133, 174, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 132, 137, 225, 133, 174, 225, 134, 174, 225, 132, 141, 225, 133,
-			161, 0, 29, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 169, 225, 134, 188, 225, 132, 142, 225, 133, 161, 225,
-			134, 174, 225, 132, 141, 225, 133, 169, 225, 134, 188, 0, 29, 0, 0, 0, 46, 21, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186,
-			225, 132, 135, 225, 133, 161, 225, 134, 188, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 188,
-			0, 29, 52, 24, 225, 132, 140, 225, 133, 169, 225, 132, 128, 225, 133, 162, 225, 134, 186, 225, 132, 137, 225, 133, 161, 225, 134, 175, 225, 132,
-			140, 225, 133, 169, 225, 132, 128, 225, 133, 162, 225, 134, 174, 225, 132, 138, 225, 133, 161, 225, 134, 175, 0, 29, 0, 40, 18, 225, 132, 143,
-			225, 133, 169, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 134, 188, 225, 132, 143, 225, 133, 169, 225, 134, 174, 225, 132, 136, 225, 133, 167,
-			225, 134, 188, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 89, 6, 35, 65, 11, 0, 0, 8, 2, 95, 50, 6,
-			37, 11, 0, 0, 9, 2, 95, 49, 6, 37, 51, 11, 0, 0, 10, 2, 95, 48, 57, 6, 13, 68, 11, 0, 0, 12, 2, 95, 55, 76,
-			6, 107, 6, 37, 51, 11, 0, 0, 10, 2, 95, 54, 57, 6, 40, 104, 11, 0, 0, 8, 2, 95, 53, 6, 39, 11, 0, 0, 40, 18,
-			225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 181, 225, 134, 184, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 141,
-			225, 133, 181, 225, 134, 184, 0, 29, 9, 2, 95, 52, 89, 6, 35, 11, 0, 0, 0, 0, 46, 21, 225, 133, 161, 225, 132, 133, 225, 133,
-			162, 225, 134, 186, 225, 132, 140, 225, 133, 181, 225, 134, 184, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 174, 225, 132, 141, 225, 133,
-			181, 225, 134, 184, 0, 29, 9, 2, 95, 57, 81, 6, 40, 11, 0, 0, 10, 2, 95, 56, 114, 6, 35, 51, 11, 0, 0, 0, 52, 24,
-			225, 132, 137, 225, 133, 172, 225, 134, 186, 225, 132, 140, 225, 133, 169, 225, 132, 128, 225, 133, 161, 225, 134, 168, 225, 132, 137, 225, 133, 176,
-			225, 134, 174, 225, 132, 141, 225, 133, 169, 225, 132, 128, 225, 133, 161, 225, 134, 168, 0, 29, 0, 0, 0, 63, 18, 225, 132, 128, 225, 133,
-			168, 225, 134, 186, 225, 132, 130, 225, 133, 161, 225, 134, 175, 225, 132, 128, 225, 133, 168, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 161,
-			225, 134, 175, 47, 225, 132, 128, 225, 133, 166, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 161, 225, 134, 175, 0, 29, 58, 27, 225, 132,
-			140, 225, 133, 165, 225, 134, 171, 225, 132, 137, 225, 133, 166, 225, 134, 186, 225, 132, 140, 225, 133, 181, 225, 134, 184, 225, 132, 140, 225, 133,
-			165, 225, 134, 171, 225, 132, 137, 225, 133, 166, 225, 134, 174, 225, 132, 141, 225, 133, 181, 225, 134, 184, 0, 29, 0, 0, 0, 0, 0, 0,
-			54, 24, 225, 132, 140, 225, 133, 166, 225, 132, 137, 225, 133, 161, 225, 134, 186, 225, 132, 130, 225, 133, 161, 225, 134, 175, 225, 132, 140, 225,
-			133, 166, 203, 144, 225, 132, 137, 225, 133, 161, 225, 134, 174, 225, 132, 130, 225, 133, 161, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 137, 225, 133, 166, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 188, 225, 132, 137,
-			225, 133, 166, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 188, 0, 29, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133, 162, 225,
-			134, 186, 225, 132, 135, 225, 133, 167, 225, 134, 188, 225, 132, 135, 225, 133, 162, 225, 134, 174, 225, 132, 136, 225, 133, 167, 225, 134, 188, 0,
-			29, 40, 18, 225, 132, 128, 225, 133, 177, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 134, 188, 225, 132, 128, 225, 133, 177, 225, 134, 174,
-			225, 132, 136, 225, 133, 167, 225, 134, 188, 0, 29, 40, 18, 225, 132, 128, 225, 133, 177, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134,
-			184, 225, 132, 128, 225, 133, 177, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 184, 0, 29, 0, 0, 52, 24, 225, 132, 134, 225, 133,
-			165, 225, 132, 133, 225, 133, 181, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 188, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133,
-			181, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 188, 0, 29, 52, 24, 225, 132, 144, 225, 133, 165, 225, 134, 186, 225, 132, 134, 225,
-			133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 188, 225, 132, 144, 225, 133, 165, 225, 134, 171, 225, 132, 134, 225, 133, 161, 225, 132, 131, 225,
-			133, 161, 225, 134, 188, 0, 29, 0, 0, 57, 24, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 133, 181, 225, 134, 184, 225, 132, 134, 225,
-			133, 161, 225, 134, 186, 225, 132, 131, 225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 181, 225, 134, 183, 225, 132, 134, 225, 133,
-			161, 225, 134, 174, 0, 29, 0, 60, 27, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 175, 225, 132, 134,
-			225, 133, 161, 225, 134, 188, 225, 132, 131, 225, 133, 177, 225, 134, 174, 203, 144, 225, 132, 129, 225, 133, 161, 225, 134, 175, 225, 132, 134, 225,
-			133, 161, 225, 134, 188, 0, 29, 0, 54, 24, 225, 132, 137, 225, 133, 161, 225, 132, 140, 225, 133, 161, 225, 134, 186, 225, 132, 135, 225, 133,
-			161, 225, 134, 184, 225, 132, 137, 225, 133, 161, 203, 144, 225, 132, 140, 225, 133, 161, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 184,
-			0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 30, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 225,
-			134, 186, 225, 132, 128, 225, 133, 181, 225, 132, 133, 225, 133, 179, 225, 134, 183, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 225,
-			134, 174, 225, 132, 129, 225, 133, 181, 225, 132, 133, 225, 133, 181, 225, 134, 183, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 15, 225, 132, 145, 225, 133, 181, 225, 134, 186, 225, 132, 131, 225,
-			133, 162, 225, 132, 145, 225, 133, 181, 225, 134, 174, 225, 132, 132, 225, 133, 162, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 21, 225, 132, 144, 225, 133, 172, 225, 134, 186,
-			225, 132, 134, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 132, 144, 225, 133, 172, 225, 134, 171, 203, 144, 225, 132, 134, 225, 133, 161, 225,
-			132, 133, 225, 133, 174, 47, 225, 132, 144, 225, 133, 176, 225, 134, 171, 203, 144, 225, 132, 134, 225, 133, 161, 225, 132, 133, 225, 133, 174, 0,
-			29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 6, 18, 66, 225, 134, 168, 0, 225, 134, 169, 0, 225,
-			134, 191, 0, 225, 134, 174, 0, 225, 135, 128, 0, 225, 134, 184, 0, 225, 135, 129, 0, 225, 134, 186, 0, 225, 134, 187, 0, 225, 134, 189,
-			0, 225, 134, 190, 0, 225, 134, 170, 0, 225, 134, 185, 0, 225, 134, 172, 0, 225, 134, 176, 0, 225, 134, 177, 0, 225, 134, 178, 0, 225,
-			134, 179, 0, 225, 134, 180, 0, 225, 134, 181, 0, 7, 6, 18, 67, 225, 133, 181, 0, 225, 133, 163, 0, 225, 133, 164, 0, 225, 133, 167,
-			0, 225, 133, 168, 0, 225, 133, 173, 0, 225, 133, 178, 0, 7, 6, 18, 68, 225, 135, 130, 0, 225, 134, 173, 0, 225, 134, 182, 0, 7,
-			6, 1, 1, 0, 8, 3, 81, 0, 3, 104, 0, 1, 18, 66, 3, 110, 0, 1, 18, 68, 3, 111, 0, 7, 6, 1, 2, 0, 3, 116,
-			0, 7, 6, 1, 3, 0, 3, 38, 50, 0, 7, 6, 1, 4, 0, 1, 18, 68, 3, 47, 107, 0, 4, 3, 72, 0, 8, 0, 1, 18,
-			66, 3, 112, 0, 7, 6, 1, 5, 0, 3, 112, 0, 7, 6, 1, 6, 0, 3, 16, 0, 2, 32, 3, 55, 0, 7, 6, 1, 7, 0,
-			3, 38, 65, 0, 7, 6, 1, 8, 0, 8, 3, 48, 0, 3, 71, 0, 1, 18, 66, 3, 113, 0, 1, 18, 68, 3, 114, 0, 7, 6,
-			1, 9, 0, 3, 113, 0, 7, 6, 1, 10, 0, 3, 89, 0, 1, 18, 66, 3, 115, 0, 7, 6, 1, 11, 0, 3, 115, 0, 7, 6,
-			1, 12, 0, 3, 37, 38, 6, 109, 68, 0, 7, 6, 1, 13, 0, 1, 18, 68, 3, 76, 107, 38, 0, 3, 77, 0, 8, 3, 78, 0,
-			1, 18, 66, 3, 117, 0, 7, 6, 1, 14, 0, 3, 6, 117, 0, 7, 6, 1, 15, 0, 3, 76, 107, 0, 7, 6, 1, 16, 0, 3,
-			111, 0, 7, 6, 1, 17, 0, 3, 47, 107, 0, 7, 6, 1, 18, 0, 3, 114, 0, 7, 6, 1, 19, 0, 4, 3, 107, 0, 8, 0,
-			7, 6, 1, 98, 0, 3, 35, 0, 7, 6, 1, 99, 0, 3, 108, 0, 7, 6, 1, 100, 0, 3, 57, 35, 0, 7, 6, 1, 101, 0,
-			3, 57, 108, 0, 7, 6, 1, 102, 0, 3, 13, 0, 7, 6, 1, 103, 0, 3, 36, 0, 7, 6, 1, 104, 0, 3, 57, 13, 0, 7,
-			6, 1, 105, 0, 3, 57, 36, 0, 7, 6, 1, 106, 0, 3, 39, 0, 7, 6, 1, 107, 0, 3, 58, 35, 0, 7, 6, 1, 108, 0,
-			3, 58, 108, 0, 7, 6, 1, 109, 0, 3, 58, 36, 0, 7, 6, 1, 110, 0, 3, 57, 39, 0, 7, 6, 1, 111, 0, 3, 40, 0,
-			7, 6, 1, 112, 0, 3, 58, 13, 0, 7, 6, 1, 113, 0, 3, 58, 36, 0, 7, 6, 1, 114, 0, 3, 58, 37, 0, 7, 6, 1,
-			115, 0, 3, 57, 40, 0, 7, 6, 1, 116, 0, 3, 109, 0, 7, 6, 1, 117, 0, 1, 17, 67, 3, 37, 0, 3, 109, 57, 0, 7,
-			6, 1, 118, 0, 3, 37, 0, 7, 6, 225, 134, 0, 168, 3, 104, 0, 168, 225, 132, 146, 3, 111, 0, 170, 3, 49, 0, 170, 2, 17,
-			65, 3, 49, 89, 0, 170, 225, 132, 146, 3, 111, 0, 169, 3, 49, 0, 169, 2, 17, 65, 3, 110, 0, 169, 225, 132, 146, 3, 111, 0,
-			191, 3, 49, 0, 191, 2, 17, 65, 3, 111, 0, 174, 225, 132, 146, 3, 47, 107, 0, 174, 225, 132, 130, 3, 50, 50, 0, 174, 225, 132,
-			134, 3, 65, 65, 0, 174, 2, 18, 67, 3, 77, 0, 174, 3, 118, 0, 184, 3, 48, 0, 184, 225, 132, 146, 3, 114, 0, 185, 3, 48,
-			0, 4, 185, 2, 17, 65, 3, 48, 115, 0, 185, 225, 132, 146, 0, 186, 225, 132, 130, 3, 50, 50, 0, 186, 225, 132, 134, 3, 65, 65,
-			0, 186, 2, 17, 65, 3, 89, 0, 186, 3, 112, 0, 186, 225, 132, 146, 3, 115, 0, 187, 225, 132, 130, 3, 50, 50, 0, 187, 225, 132,
-			134, 3, 65, 65, 0, 187, 3, 112, 0, 187, 2, 17, 65, 3, 115, 0, 189, 3, 47, 0, 189, 225, 132, 130, 3, 50, 50, 0, 189, 225,
-			132, 134, 3, 65, 65, 0, 189, 2, 17, 65, 3, 78, 0, 190, 3, 47, 0, 190, 225, 132, 130, 3, 50, 50, 0, 190, 225, 132, 134, 3,
-			65, 65, 0, 190, 2, 17, 65, 3, 78, 107, 0, 171, 3, 50, 0, 172, 3, 50, 0, 172, 2, 17, 65, 3, 50, 77, 0, 4, 173, 3,
-			50, 0, 173, 2, 17, 65, 0, 183, 3, 65, 0, 188, 3, 68, 0, 175, 2, 17, 65, 3, 16, 0, 175, 225, 132, 133, 3, 55, 0, 175,
-			3, 64, 0, 176, 3, 49, 0, 176, 2, 17, 65, 3, 55, 81, 0, 177, 2, 17, 65, 3, 55, 65, 0, 177, 3, 65, 0, 178, 3, 48,
-			0, 178, 2, 17, 65, 3, 55, 71, 0, 179, 3, 55, 0, 179, 2, 17, 65, 3, 55, 89, 0, 180, 3, 55, 0, 180, 2, 17, 65, 3,
-			55, 47, 107, 0, 181, 3, 48, 0, 181, 2, 17, 65, 3, 55, 114, 0, 182, 2, 17, 65, 3, 16, 0, 182, 3, 55, 0, 7, 6, 225,
-			135, 0, 128, 2, 17, 65, 3, 47, 107, 0, 128, 225, 132, 130, 3, 50, 50, 0, 128, 225, 132, 134, 3, 65, 65, 0, 128, 2, 18, 67,
-			3, 78, 107, 0, 128, 3, 112, 0, 129, 3, 48, 0, 129, 2, 17, 65, 3, 114, 0, 130, 2, 17, 65, 3, 0, 130, 3, 112, 0, 7,
-			6, 0, 4, 46, 3, 0, 203, 144, 3, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts37 = FileInMemory_createWithData (6462, reinterpret_cast<const char *> (&espeakdata_dicts37_data), 
-			U"espeak-1.48.04-source/espeak-data/ko_dict", 
+			0, 0, 0, 0, 13, 4, 95, 49, 77, 48, 76, 6, 107, 20, 13, 50, 0, 0, 11, 4, 95, 49, 77, 49, 65, 6, 35, 50, 0, 0,
+			10, 4, 95, 49, 77, 50, 6, 13, 104, 0, 0, 10, 4, 95, 49, 77, 51, 78, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 225,
+			132, 132, 6, 89, 20, 35, 68, 72, 4, 37, 104, 109, 72, 20, 0, 0, 13, 3, 225, 132, 133, 16, 37, 38, 6, 109, 34, 34, 0, 0,
+			12, 3, 225, 132, 134, 65, 37, 38, 6, 109, 65, 0, 0, 12, 3, 225, 132, 135, 48, 37, 38, 6, 109, 48, 0, 0, 12, 3, 225, 132,
+			128, 81, 37, 57, 6, 13, 104, 0, 0, 17, 3, 225, 132, 129, 6, 89, 20, 35, 68, 104, 4, 37, 57, 13, 104, 0, 0, 22, 6, 225,
+			132, 137, 225, 132, 135, 225, 132, 137, 225, 133, 181, 225, 132, 135, 225, 133, 161, 0, 29, 12, 3, 225, 132, 130, 50, 37, 38, 6, 109, 50,
+			0, 0, 13, 3, 225, 132, 131, 72, 37, 104, 6, 109, 72, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			13, 3, 225, 132, 144, 47, 107, 37, 38, 6, 109, 112, 0, 0, 12, 3, 225, 132, 145, 114, 37, 38, 6, 109, 48, 0, 0, 34, 15, 225,
+			132, 144, 225, 133, 165, 225, 134, 186, 225, 132, 137, 225, 133, 166, 225, 132, 144, 225, 133, 165, 225, 134, 174, 225, 132, 138, 225, 133, 166, 0,
+			29, 12, 3, 225, 132, 146, 107, 37, 38, 6, 109, 112, 0, 0, 0, 12, 3, 225, 132, 140, 78, 37, 38, 6, 109, 47, 0, 0, 17, 3,
+			225, 132, 141, 6, 89, 20, 35, 68, 77, 4, 37, 38, 109, 47, 0, 0, 39, 15, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 133, 178,
+			225, 134, 190, 225, 132, 131, 225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 178, 225, 134, 174, 0, 29, 14, 3, 225, 132, 142,
+			76, 107, 20, 6, 37, 38, 109, 47, 0, 0, 12, 3, 225, 132, 143, 111, 37, 38, 6, 109, 49, 0, 0, 17, 3, 225, 132, 136, 6, 89,
+			20, 35, 68, 71, 4, 37, 38, 109, 48, 0, 0, 12, 3, 225, 132, 137, 89, 37, 38, 6, 39, 112, 0, 0, 17, 3, 225, 132, 138, 6,
+			89, 20, 35, 68, 89, 4, 37, 38, 39, 112, 0, 0, 52, 24, 225, 132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 128, 225, 133, 181, 225,
+			134, 186, 225, 132, 137, 225, 133, 166, 225, 132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 128, 225, 133, 181, 225, 134, 174, 225, 132, 138, 225,
+			133, 166, 0, 29, 11, 3, 225, 132, 139, 37, 38, 6, 109, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133,
+			169, 225, 134, 186, 225, 132, 131, 225, 133, 174, 225, 134, 168, 225, 132, 135, 225, 133, 169, 225, 134, 174, 225, 132, 132, 225, 133, 174, 225, 134,
+			168, 0, 29, 0, 0, 0, 46, 21, 225, 133, 181, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 132, 128, 225, 133, 174, 225, 134, 168, 225,
+			133, 181, 225, 134, 174, 225, 132, 141, 225, 133, 161, 225, 132, 128, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0, 40, 18, 225, 132,
+			144, 225, 133, 162, 225, 134, 186, 225, 132, 140, 225, 133, 174, 225, 134, 175, 225, 132, 144, 225, 133, 162, 225, 134, 174, 225, 132, 141, 225, 133,
+			174, 225, 134, 175, 0, 29, 0, 34, 15, 225, 132, 146, 225, 133, 162, 225, 134, 186, 225, 132, 137, 225, 133, 174, 225, 132, 146, 225, 133, 162,
+			225, 134, 174, 225, 132, 138, 225, 133, 174, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 34, 15, 225, 132, 146, 225, 133, 172, 225, 134, 186,
+			225, 132, 135, 225, 133, 162, 225, 132, 146, 225, 133, 176, 225, 134, 174, 225, 132, 136, 225, 133, 162, 0, 29, 0, 0, 40, 18, 225, 132, 144,
+			225, 133, 172, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 171, 225, 132, 144, 225, 133, 172, 225, 134, 174, 225, 132, 129, 225, 133, 161,
+			225, 134, 171, 0, 29, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 134, 171, 225, 132, 142, 225, 133,
+			161, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 171, 0, 29, 40, 18, 225, 132, 128, 225, 133, 169, 225, 134, 186, 225, 132, 128, 225,
+			133, 161, 225, 134, 171, 225, 132, 128, 225, 133, 169, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 171, 0, 29, 0, 0, 0, 0, 40,
+			18, 225, 132, 135, 225, 133, 181, 225, 134, 186, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 135, 225, 133, 181, 225, 134, 171, 225, 132,
+			134, 225, 133, 174, 225, 134, 175, 0, 29, 0, 0, 0, 0, 46, 21, 225, 132, 130, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 134, 186,
+			225, 132, 135, 225, 133, 162, 225, 132, 130, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 134, 174, 225, 132, 136, 225, 133, 162, 0, 29, 0,
+			0, 52, 24, 225, 132, 134, 225, 133, 166, 225, 134, 186, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 134,
+			225, 133, 166, 225, 134, 171, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 175, 0, 29, 0, 0, 46, 21, 225, 132, 146,
+			225, 133, 172, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 132, 146, 225, 133, 176, 225, 134, 174, 225, 132, 129,
+			225, 133, 161, 225, 132, 133, 225, 133, 174, 0, 29, 0, 61, 27, 225, 132, 131, 225, 133, 169, 225, 132, 133, 225, 133, 181, 225, 132, 129, 225,
+			133, 162, 225, 134, 186, 225, 133, 167, 225, 134, 175, 225, 132, 131, 225, 133, 169, 225, 132, 133, 225, 133, 181, 225, 132, 129, 225, 133, 162, 225,
+			134, 171, 225, 132, 130, 225, 133, 167, 225, 134, 175, 0, 29, 0, 0, 0, 0, 46, 21, 225, 132, 135, 225, 133, 167, 225, 134, 186, 225, 132,
+			128, 225, 133, 161, 225, 132, 133, 225, 133, 181, 225, 132, 135, 225, 133, 167, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 132, 133, 225, 133,
+			181, 0, 29, 46, 21, 225, 132, 131, 225, 133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 140, 225, 133, 181, 225, 132, 131, 225,
+			133, 162, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 132, 140, 225, 133, 181, 0, 29, 0, 0, 0, 40, 18, 225, 132, 142, 225, 133, 161,
+			225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 134, 171, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 141, 225, 133, 161, 225, 134, 171,
+			0, 29, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 134, 171, 225, 132, 142, 225, 133, 161, 225, 134,
+			174, 225, 132, 141, 225, 133, 161, 225, 134, 171, 0, 29, 0, 0, 0, 58, 27, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225,
+			134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 140, 225, 133, 181, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 174, 225,
+			132, 129, 225, 133, 161, 225, 132, 140, 225, 133, 181, 0, 29, 0, 0, 0, 0, 0, 58, 27, 225, 133, 174, 225, 132, 133, 225, 133, 165, 225,
+			134, 188, 225, 133, 181, 225, 134, 186, 225, 132, 137, 225, 133, 169, 225, 134, 168, 225, 133, 174, 225, 132, 133, 225, 133, 165, 225, 134, 188, 225,
+			133, 181, 225, 134, 174, 225, 132, 138, 225, 133, 169, 225, 134, 168, 0, 29, 0, 0, 0, 40, 18, 225, 132, 129, 225, 133, 162, 225, 134, 186,
+			225, 132, 134, 225, 133, 174, 225, 134, 168, 225, 132, 129, 225, 133, 162, 225, 134, 171, 225, 132, 134, 225, 133, 174, 225, 134, 168, 0, 29, 0,
+			0, 0, 0, 0, 42, 18, 225, 132, 130, 225, 133, 162, 225, 134, 186, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 132, 130, 225, 133, 162,
+			225, 134, 171, 203, 144, 225, 132, 134, 225, 133, 174, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 52, 24, 225, 133, 163, 225, 134, 188,
+			225, 132, 142, 225, 133, 181, 225, 134, 186, 225, 132, 134, 225, 133, 174, 225, 134, 175, 225, 133, 163, 225, 134, 188, 225, 132, 142, 225, 133, 181,
+			225, 134, 171, 225, 132, 134, 225, 133, 174, 225, 134, 175, 0, 29, 54, 24, 225, 132, 134, 225, 133, 169, 225, 132, 128, 225, 133, 181, 225, 134,
+			186, 225, 132, 135, 225, 133, 174, 225, 134, 175, 225, 132, 134, 225, 133, 169, 203, 144, 225, 132, 128, 225, 133, 181, 225, 134, 174, 225, 132, 136,
+			225, 133, 174, 225, 134, 175, 0, 29, 0, 0, 0, 0, 40, 18, 225, 132, 143, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225,
+			134, 185, 225, 132, 143, 225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133, 161, 225, 134, 184, 0, 29, 0, 0, 0, 46, 21, 225, 132, 142,
+			225, 133, 166, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 132, 143, 225, 133, 177, 225, 132, 142, 225, 133, 166, 225, 134, 174, 225, 132, 136,
+			225, 133, 161, 225, 132, 143, 225, 133, 177, 0, 29, 0, 0, 42, 18, 225, 132, 137, 225, 133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 161,
+			225, 134, 188, 225, 132, 137, 225, 133, 162, 225, 134, 174, 203, 144, 225, 132, 129, 225, 133, 161, 225, 134, 188, 0, 29, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 142, 225, 133,
+			169, 225, 134, 186, 225, 132, 128, 225, 133, 174, 225, 134, 168, 225, 132, 142, 225, 133, 169, 225, 134, 174, 225, 132, 129, 225, 133, 174, 225, 134,
+			168, 0, 29, 0, 0, 0, 0, 0, 0, 46, 21, 225, 132, 140, 225, 133, 162, 225, 134, 186, 225, 132, 131, 225, 133, 165, 225, 132, 134, 225,
+			133, 181, 225, 132, 140, 225, 133, 162, 225, 134, 174, 225, 132, 132, 225, 133, 165, 225, 132, 134, 225, 133, 181, 0, 29, 0, 0, 0, 58, 27,
+			225, 132, 137, 225, 133, 165, 225, 134, 171, 225, 132, 140, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 174, 225, 134, 168, 225, 132, 137,
+			225, 133, 165, 225, 134, 171, 225, 132, 140, 225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133, 174, 225, 134, 168, 0, 29, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 51, 88, 89, 6, 35, 65, 11, 15, 89, 6, 37, 48, 11, 0, 0,
+			11, 3, 95, 48, 67, 48, 6, 108, 104, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 55, 88, 76, 6, 107, 6, 37, 51, 11, 89, 6, 37, 48, 11, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 88, 89, 6, 37, 48, 11, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 15, 3, 95, 50, 88, 6, 37, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 16, 3, 95, 52, 88, 89, 6, 35, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			15, 3, 95, 53, 88, 6, 39, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 54, 88, 57, 6,
+			40, 104, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56,
+			88, 114, 6, 35, 51, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 40, 18, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225,
+			132, 130, 225, 133, 181, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 0, 29, 0, 0, 0, 0, 0,
+			0, 16, 3, 95, 57, 88, 81, 6, 40, 11, 15, 89, 6, 37, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 36, 15, 225, 132, 130, 225,
+			133, 162, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225, 132, 130, 225, 133, 162, 225, 134, 174, 203, 144, 225, 132, 129, 225, 133, 161, 0, 29,
+			0, 0, 0, 0, 0, 0, 46, 21, 225, 132, 135, 225, 133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 186, 225, 132, 128, 225, 133, 161, 225,
+			132, 135, 225, 133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 174, 225, 132, 129, 225, 133, 161, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 81, 57, 6,
+			13, 68, 0, 0, 0, 10, 4, 95, 48, 77, 50, 6, 13, 104, 0, 0, 10, 4, 95, 48, 77, 51, 78, 6, 39, 0, 0, 13, 4, 95,
+			48, 77, 48, 76, 6, 107, 20, 13, 50, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 34,
+			15, 225, 132, 145, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 181, 225, 132, 145, 225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133,
+			181, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 15, 225, 132, 131, 225, 133, 162, 225, 134, 186,
+			225, 133, 181, 225, 135, 129, 225, 132, 131, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 184, 0, 29, 37, 15, 225, 132,
+			129, 225, 133, 162, 225, 134, 186, 225, 133, 181, 225, 135, 129, 225, 132, 129, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134,
+			184, 0, 29, 0, 34, 15, 225, 132, 146, 225, 133, 172, 225, 134, 186, 225, 132, 137, 225, 133, 174, 225, 132, 146, 225, 133, 172, 225, 134, 174,
+			225, 132, 138, 225, 133, 174, 0, 29, 0, 34, 15, 225, 133, 181, 225, 134, 186, 225, 132, 134, 225, 133, 169, 225, 134, 183, 225, 133, 181, 225,
+			134, 171, 225, 132, 134, 225, 133, 169, 225, 134, 183, 0, 29, 0, 0, 0, 0, 49, 21, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133,
+			174, 225, 134, 186, 225, 133, 181, 225, 135, 129, 225, 132, 130, 225, 133, 161, 225, 132, 134, 225, 133, 174, 225, 134, 171, 225, 132, 130, 225, 133,
+			181, 225, 134, 184, 0, 29, 0, 0, 0, 0, 31, 12, 225, 133, 173, 225, 134, 186, 225, 133, 181, 225, 134, 186, 225, 133, 173, 225, 134, 171,
+			225, 132, 130, 225, 133, 181, 225, 134, 174, 0, 29, 0, 0, 0, 0, 0, 46, 21, 225, 132, 140, 225, 133, 161, 225, 132, 133, 225, 133, 181,
+			225, 134, 186, 225, 132, 137, 225, 133, 166, 225, 132, 140, 225, 133, 161, 225, 132, 133, 225, 133, 181, 225, 134, 174, 225, 132, 138, 225, 133, 166,
+			0, 29, 0, 0, 0, 0, 49, 21, 225, 132, 135, 225, 133, 166, 225, 132, 128, 225, 133, 162, 225, 134, 186, 225, 133, 181, 225, 134, 186, 225,
+			132, 135, 225, 133, 166, 225, 132, 128, 225, 133, 162, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 174, 0, 29, 46, 21, 225, 132, 128,
+			225, 133, 169, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225, 132, 140, 225, 133, 162, 225, 132, 128, 225, 133, 169, 225, 132, 133, 225, 133, 162,
+			225, 134, 174, 225, 132, 141, 225, 133, 162, 0, 29, 0, 0, 0, 0, 52, 24, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225,
+			132, 134, 225, 133, 161, 225, 133, 179, 225, 134, 175, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 171, 225, 132, 134, 225, 133, 161, 225,
+			133, 179, 225, 134, 175, 0, 29, 0, 0, 0, 39, 15, 225, 132, 146, 225, 133, 174, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 146,
+			225, 133, 174, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 39, 15, 225, 132, 131, 225, 133, 177, 225, 134, 186,
+			225, 133, 181, 225, 134, 175, 225, 132, 131, 225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 0, 0,
+			0, 45, 18, 225, 133, 168, 225, 132, 137, 225, 133, 161, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 133, 168, 203, 144, 225, 132, 137, 225,
+			133, 161, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 65, 18, 225, 132, 128, 225, 133, 161, 225, 133, 172, 225, 134, 186,
+			225, 133, 181, 225, 134, 175, 225, 132, 128, 225, 133, 161, 225, 133, 172, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 47, 225, 132,
+			128, 225, 133, 161, 225, 133, 176, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 0, 40, 18, 225, 132, 146, 225, 133, 162,
+			225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 135, 128, 225, 132, 146, 225, 133, 162, 225, 134, 174, 225, 132, 136, 225, 133, 167, 225, 134, 174,
+			0, 29, 0, 0, 49, 21, 225, 132, 137, 225, 133, 161, 225, 132, 137, 225, 133, 161, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 137,
+			225, 133, 161, 225, 132, 137, 225, 133, 161, 225, 134, 171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 49, 21, 225, 132, 131, 225, 133,
+			174, 225, 132, 133, 225, 133, 166, 225, 134, 186, 225, 133, 181, 225, 134, 175, 225, 132, 131, 225, 133, 174, 225, 132, 133, 225, 133, 166, 225, 134,
+			171, 225, 132, 130, 225, 133, 181, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 0, 52, 24, 225, 132, 146, 225, 133, 167, 225, 134, 186,
+			225, 132, 135, 225, 133, 161, 225, 132, 130, 225, 133, 179, 225, 134, 175, 225, 132, 146, 225, 133, 167, 225, 134, 174, 225, 132, 136, 225, 133, 161,
+			225, 132, 130, 225, 133, 179, 225, 134, 175, 0, 29, 0, 0, 0, 0, 0, 40, 18, 225, 132, 135, 225, 133, 162, 225, 134, 186, 225, 132, 128,
+			225, 133, 181, 225, 134, 175, 225, 132, 135, 225, 133, 162, 225, 134, 174, 225, 132, 129, 225, 133, 181, 225, 134, 175, 0, 29, 40, 18, 225, 132,
+			134, 225, 133, 162, 225, 134, 186, 225, 132, 131, 225, 133, 169, 225, 134, 175, 225, 132, 134, 225, 133, 162, 225, 134, 174, 225, 132, 132, 225, 133,
+			169, 225, 134, 175, 0, 29, 0, 0, 0, 34, 15, 225, 132, 137, 225, 133, 174, 225, 134, 186, 225, 132, 140, 225, 133, 161, 225, 132, 137, 225,
+			133, 174, 225, 134, 174, 225, 132, 141, 225, 133, 161, 0, 29, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 169,
+			225, 134, 188, 225, 132, 142, 225, 133, 161, 225, 134, 174, 225, 132, 141, 225, 133, 169, 225, 134, 188, 0, 29, 0, 0, 0, 46, 21, 225, 133,
+			161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 188, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134,
+			174, 225, 132, 136, 225, 133, 161, 225, 134, 188, 0, 29, 52, 24, 225, 132, 140, 225, 133, 169, 225, 132, 128, 225, 133, 162, 225, 134, 186, 225,
+			132, 137, 225, 133, 161, 225, 134, 175, 225, 132, 140, 225, 133, 169, 225, 132, 128, 225, 133, 162, 225, 134, 174, 225, 132, 138, 225, 133, 161, 225,
+			134, 175, 0, 29, 0, 40, 18, 225, 132, 143, 225, 133, 169, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 134, 188, 225, 132, 143, 225, 133,
+			169, 225, 134, 174, 225, 132, 136, 225, 133, 167, 225, 134, 188, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 89, 6,
+			35, 65, 11, 0, 0, 8, 2, 95, 50, 6, 37, 11, 0, 0, 9, 2, 95, 49, 6, 37, 51, 11, 0, 0, 10, 2, 95, 48, 57, 6,
+			13, 68, 11, 0, 0, 12, 2, 95, 55, 76, 6, 107, 6, 37, 51, 11, 0, 0, 10, 2, 95, 54, 57, 6, 40, 104, 11, 0, 0, 8,
+			2, 95, 53, 6, 39, 11, 0, 0, 40, 18, 225, 132, 142, 225, 133, 161, 225, 134, 186, 225, 132, 140, 225, 133, 181, 225, 134, 184, 225, 132,
+			142, 225, 133, 161, 225, 134, 174, 225, 132, 141, 225, 133, 181, 225, 134, 184, 0, 29, 9, 2, 95, 52, 89, 6, 35, 11, 0, 0, 0, 0,
+			46, 21, 225, 133, 161, 225, 132, 133, 225, 133, 162, 225, 134, 186, 225, 132, 140, 225, 133, 181, 225, 134, 184, 225, 133, 161, 225, 132, 133, 225,
+			133, 162, 225, 134, 174, 225, 132, 141, 225, 133, 181, 225, 134, 184, 0, 29, 9, 2, 95, 57, 81, 6, 40, 11, 0, 0, 10, 2, 95, 56,
+			114, 6, 35, 51, 11, 0, 0, 0, 52, 24, 225, 132, 137, 225, 133, 172, 225, 134, 186, 225, 132, 140, 225, 133, 169, 225, 132, 128, 225, 133,
+			161, 225, 134, 168, 225, 132, 137, 225, 133, 176, 225, 134, 174, 225, 132, 141, 225, 133, 169, 225, 132, 128, 225, 133, 161, 225, 134, 168, 0, 29,
+			0, 0, 0, 63, 18, 225, 132, 128, 225, 133, 168, 225, 134, 186, 225, 132, 130, 225, 133, 161, 225, 134, 175, 225, 132, 128, 225, 133, 168, 225,
+			134, 171, 203, 144, 225, 132, 130, 225, 133, 161, 225, 134, 175, 47, 225, 132, 128, 225, 133, 166, 225, 134, 171, 203, 144, 225, 132, 130, 225, 133,
+			161, 225, 134, 175, 0, 29, 58, 27, 225, 132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 137, 225, 133, 166, 225, 134, 186, 225, 132, 140, 225,
+			133, 181, 225, 134, 184, 225, 132, 140, 225, 133, 165, 225, 134, 171, 225, 132, 137, 225, 133, 166, 225, 134, 174, 225, 132, 141, 225, 133, 181, 225,
+			134, 184, 0, 29, 0, 0, 0, 0, 0, 0, 54, 24, 225, 132, 140, 225, 133, 166, 225, 132, 137, 225, 133, 161, 225, 134, 186, 225, 132, 130,
+			225, 133, 161, 225, 134, 175, 225, 132, 140, 225, 133, 166, 203, 144, 225, 132, 137, 225, 133, 161, 225, 134, 174, 225, 132, 130, 225, 133, 161, 225,
+			134, 175, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 18, 225, 132, 137, 225, 133, 166, 225, 134, 186, 225, 132,
+			135, 225, 133, 161, 225, 134, 188, 225, 132, 137, 225, 133, 166, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 188, 0, 29, 0, 0, 0,
+			0, 40, 18, 225, 132, 135, 225, 133, 162, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 134, 188, 225, 132, 135, 225, 133, 162, 225, 134, 174,
+			225, 132, 136, 225, 133, 167, 225, 134, 188, 0, 29, 40, 18, 225, 132, 128, 225, 133, 177, 225, 134, 186, 225, 132, 135, 225, 133, 167, 225, 134,
+			188, 225, 132, 128, 225, 133, 177, 225, 134, 174, 225, 132, 136, 225, 133, 167, 225, 134, 188, 0, 29, 40, 18, 225, 132, 128, 225, 133, 177, 225,
+			134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 184, 225, 132, 128, 225, 133, 177, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 184, 0,
+			29, 0, 0, 52, 24, 225, 132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 188, 225,
+			132, 134, 225, 133, 165, 225, 132, 133, 225, 133, 181, 225, 134, 174, 225, 132, 136, 225, 133, 161, 225, 134, 188, 0, 29, 52, 24, 225, 132, 144,
+			225, 133, 165, 225, 134, 186, 225, 132, 134, 225, 133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 188, 225, 132, 144, 225, 133, 165, 225, 134, 171,
+			225, 132, 134, 225, 133, 161, 225, 132, 131, 225, 133, 161, 225, 134, 188, 0, 29, 0, 0, 57, 24, 225, 132, 131, 225, 133, 177, 225, 134, 186,
+			225, 133, 181, 225, 134, 184, 225, 132, 134, 225, 133, 161, 225, 134, 186, 225, 132, 131, 225, 133, 177, 225, 134, 171, 203, 144, 225, 132, 130, 225,
+			133, 181, 225, 134, 183, 225, 132, 134, 225, 133, 161, 225, 134, 174, 0, 29, 0, 60, 27, 225, 132, 131, 225, 133, 177, 225, 134, 186, 225, 132,
+			128, 225, 133, 161, 225, 134, 175, 225, 132, 134, 225, 133, 161, 225, 134, 188, 225, 132, 131, 225, 133, 177, 225, 134, 174, 203, 144, 225, 132, 129,
+			225, 133, 161, 225, 134, 175, 225, 132, 134, 225, 133, 161, 225, 134, 188, 0, 29, 0, 54, 24, 225, 132, 137, 225, 133, 161, 225, 132, 140, 225,
+			133, 161, 225, 134, 186, 225, 132, 135, 225, 133, 161, 225, 134, 184, 225, 132, 137, 225, 133, 161, 203, 144, 225, 132, 140, 225, 133, 161, 225, 134,
+			174, 225, 132, 136, 225, 133, 161, 225, 134, 184, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 30, 225, 132, 134,
+			225, 133, 165, 225, 132, 133, 225, 133, 181, 225, 134, 186, 225, 132, 128, 225, 133, 181, 225, 132, 133, 225, 133, 179, 225, 134, 183, 225, 132, 134,
+			225, 133, 165, 225, 132, 133, 225, 133, 181, 225, 134, 174, 225, 132, 129, 225, 133, 181, 225, 132, 133, 225, 133, 181, 225, 134, 183, 0, 29, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 15, 225, 132, 145,
+			225, 133, 181, 225, 134, 186, 225, 132, 131, 225, 133, 162, 225, 132, 145, 225, 133, 181, 225, 134, 174, 225, 132, 132, 225, 133, 162, 0, 29, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
+			21, 225, 132, 144, 225, 133, 172, 225, 134, 186, 225, 132, 134, 225, 133, 161, 225, 132, 133, 225, 133, 174, 225, 132, 144, 225, 133, 172, 225, 134,
+			171, 203, 144, 225, 132, 134, 225, 133, 161, 225, 132, 133, 225, 133, 174, 47, 225, 132, 144, 225, 133, 176, 225, 134, 171, 203, 144, 225, 132, 134,
+			225, 133, 161, 225, 132, 133, 225, 133, 174, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 0,
+			6, 18, 66, 225, 134, 168, 0, 225, 134, 169, 0, 225, 134, 191, 0, 225, 134, 174, 0, 225, 135, 128, 0, 225, 134, 184, 0, 225, 135, 129,
+			0, 225, 134, 186, 0, 225, 134, 187, 0, 225, 134, 189, 0, 225, 134, 190, 0, 225, 134, 170, 0, 225, 134, 185, 0, 225, 134, 172, 0, 225,
+			134, 176, 0, 225, 134, 177, 0, 225, 134, 178, 0, 225, 134, 179, 0, 225, 134, 180, 0, 225, 134, 181, 0, 7, 6, 18, 67, 225, 133, 181,
+			0, 225, 133, 163, 0, 225, 133, 164, 0, 225, 133, 167, 0, 225, 133, 168, 0, 225, 133, 173, 0, 225, 133, 178, 0, 7, 6, 18, 68, 225,
+			135, 130, 0, 225, 134, 173, 0, 225, 134, 182, 0, 7, 6, 1, 1, 0, 8, 3, 81, 0, 3, 104, 0, 1, 18, 66, 3, 110, 0, 1,
+			18, 68, 3, 111, 0, 7, 6, 1, 2, 0, 3, 104, 20, 0, 7, 6, 1, 3, 0, 3, 38, 50, 0, 7, 6, 1, 4, 0, 1, 18,
+			68, 3, 47, 107, 0, 4, 3, 72, 0, 8, 0, 1, 18, 66, 3, 112, 0, 7, 6, 1, 5, 0, 3, 112, 0, 7, 6, 1, 6, 0,
+			3, 16, 0, 2, 32, 3, 55, 0, 7, 6, 1, 7, 0, 3, 38, 65, 0, 7, 6, 1, 8, 0, 8, 3, 48, 0, 3, 71, 0, 1,
+			18, 66, 3, 113, 0, 1, 18, 68, 3, 114, 0, 7, 6, 1, 9, 0, 3, 113, 0, 7, 6, 1, 10, 0, 3, 89, 0, 1, 18, 66,
+			3, 89, 20, 0, 7, 6, 1, 11, 0, 3, 89, 20, 0, 7, 6, 1, 12, 0, 3, 37, 38, 6, 109, 68, 0, 7, 6, 1, 13, 0,
+			1, 18, 68, 3, 76, 107, 38, 0, 3, 77, 0, 8, 3, 78, 0, 1, 18, 66, 3, 78, 20, 0, 7, 6, 1, 14, 0, 3, 6, 78,
+			20, 0, 7, 6, 1, 15, 0, 3, 76, 107, 20, 0, 7, 6, 1, 16, 0, 3, 111, 0, 7, 6, 1, 17, 0, 3, 47, 107, 0, 7,
+			6, 1, 18, 0, 3, 114, 0, 7, 6, 1, 19, 0, 4, 3, 107, 0, 8, 0, 7, 6, 1, 98, 0, 3, 35, 0, 7, 6, 1, 99,
+			0, 3, 108, 0, 7, 6, 1, 100, 0, 3, 57, 35, 0, 7, 6, 1, 101, 0, 3, 57, 108, 0, 7, 6, 1, 102, 0, 3, 13, 0,
+			7, 6, 1, 103, 0, 3, 36, 0, 7, 6, 1, 104, 0, 3, 57, 13, 0, 7, 6, 1, 105, 0, 3, 57, 36, 0, 7, 6, 1, 106,
+			0, 3, 39, 0, 7, 6, 1, 107, 0, 3, 58, 35, 0, 7, 6, 1, 108, 0, 3, 58, 108, 0, 7, 6, 1, 109, 0, 3, 58, 36,
+			0, 7, 6, 1, 110, 0, 3, 57, 39, 0, 7, 6, 1, 111, 0, 3, 40, 0, 7, 6, 1, 112, 0, 3, 58, 13, 0, 7, 6, 1,
+			113, 0, 3, 58, 36, 0, 7, 6, 1, 114, 0, 3, 58, 37, 0, 7, 6, 1, 115, 0, 3, 57, 40, 0, 7, 6, 1, 116, 0, 3,
+			109, 0, 7, 6, 1, 117, 0, 1, 17, 67, 3, 37, 0, 3, 109, 57, 0, 7, 6, 1, 118, 0, 3, 37, 0, 7, 6, 225, 134, 0,
+			168, 3, 104, 0, 168, 225, 132, 146, 3, 111, 0, 170, 3, 49, 0, 170, 2, 17, 65, 3, 49, 89, 0, 170, 225, 132, 146, 3, 111, 0,
+			169, 3, 49, 0, 169, 2, 17, 65, 3, 110, 0, 169, 225, 132, 146, 3, 111, 0, 191, 3, 49, 0, 191, 2, 17, 65, 3, 111, 0, 174,
+			225, 132, 146, 3, 47, 107, 0, 174, 225, 132, 130, 3, 50, 50, 0, 174, 225, 132, 134, 3, 65, 65, 0, 174, 3, 72, 20, 0, 174, 2,
+			18, 67, 3, 77, 0, 184, 3, 48, 0, 184, 225, 132, 146, 3, 114, 0, 185, 3, 48, 0, 4, 185, 2, 17, 65, 3, 48, 89, 20, 0,
+			185, 225, 132, 146, 0, 186, 225, 132, 130, 3, 50, 50, 0, 186, 225, 132, 134, 3, 65, 65, 0, 186, 2, 17, 65, 3, 89, 0, 186, 225,
+			132, 146, 3, 89, 20, 0, 186, 3, 112, 0, 187, 225, 132, 130, 3, 50, 50, 0, 187, 225, 132, 134, 3, 65, 65, 0, 187, 2, 17, 65,
+			3, 89, 20, 0, 187, 3, 112, 0, 189, 3, 47, 0, 189, 225, 132, 130, 3, 50, 50, 0, 189, 225, 132, 134, 3, 65, 65, 0, 189, 2,
+			17, 65, 3, 78, 0, 190, 3, 47, 0, 190, 225, 132, 130, 3, 50, 50, 0, 190, 225, 132, 134, 3, 65, 65, 0, 190, 2, 17, 65, 3,
+			76, 107, 38, 0, 171, 3, 50, 0, 172, 3, 50, 0, 172, 2, 17, 65, 3, 50, 77, 0, 4, 173, 3, 50, 0, 173, 2, 17, 65, 0,
+			183, 3, 65, 0, 188, 3, 68, 0, 175, 2, 17, 65, 3, 16, 0, 175, 3, 34, 34, 0, 175, 225, 132, 133, 3, 55, 0, 176, 3, 49,
+			0, 176, 2, 17, 65, 3, 55, 81, 0, 177, 2, 17, 65, 3, 55, 65, 0, 177, 3, 65, 0, 178, 3, 48, 0, 178, 2, 17, 65, 3,
+			55, 71, 0, 179, 3, 55, 0, 179, 2, 17, 65, 3, 55, 89, 0, 180, 3, 55, 0, 180, 2, 17, 65, 3, 55, 47, 107, 0, 181, 3,
+			48, 0, 181, 2, 17, 65, 3, 55, 114, 0, 182, 2, 17, 65, 3, 16, 0, 182, 3, 55, 0, 7, 6, 225, 135, 0, 128, 2, 17, 65,
+			3, 47, 107, 0, 128, 225, 132, 130, 3, 50, 50, 0, 128, 225, 132, 134, 3, 65, 65, 0, 128, 2, 18, 67, 3, 76, 107, 38, 0, 128,
+			3, 112, 0, 129, 3, 48, 0, 129, 2, 17, 65, 3, 114, 0, 130, 2, 17, 65, 3, 0, 130, 3, 112, 0, 7, 6, 0, 4, 46, 3,
+			0, 203, 144, 3, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts35 = FileInMemory_createWithData (6487, reinterpret_cast<const char *> (&espeakdata_dicts35_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ko_dict", 
 			U"ko");
-		my addItem_move (espeakdata_dicts37.move());
+		Collection_addItem (me.peek(), espeakdata_dicts35.transfer());
 
-		static unsigned char espeakdata_dicts38_data[2269] = {
-			0, 4, 0, 0, 116, 7, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0,
-			0, 6, 65, 12, 75, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 6, 195, 92, 19, 128, 76, 0, 11, 4, 95, 100,
-			112, 116, 10, 101, 35, 55, 0, 0, 0, 0, 0, 0, 6, 65, 24, 83, 36, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0,
-			0, 0, 6, 65, 32, 107, 36, 0, 0, 0, 0, 0, 0, 8, 1, 37, 89, 109, 72, 36, 0, 0, 0, 0, 6, 65, 40, 90, 36, 0,
-			0, 0, 9, 1, 42, 89, 47, 36, 51, 49, 0, 0, 0, 6, 65, 44, 49, 36, 0, 0, 0, 0, 0, 6, 65, 48, 55, 36, 0, 0,
-			0, 0, 0, 6, 65, 52, 65, 36, 0, 0, 0, 0, 0, 6, 65, 56, 50, 36, 0, 0, 0, 6, 195, 44, 148, 128, 72, 0, 0, 0,
-			0, 0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 104, 36, 0, 0, 0, 0, 0, 6, 65, 72, 51, 36, 0, 0,
-			0, 0, 0, 6, 65, 76, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88,
-			84, 36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 36, 0, 0, 0, 0, 0, 6, 65, 96, 101, 36, 0, 13, 4, 95, 49, 77, 49, 107,
-			109, 88, 6, 35, 34, 0, 0, 14, 4, 95, 49, 77, 50, 65, 124, 55, 6, 57, 39, 50, 0, 0, 0, 0, 6, 65, 100, 57, 36, 0,
-			0, 0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 128, 76, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 5, 194, 16, 80, 72, 5, 194, 8, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 194, 4, 224, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 140, 76, 0, 0, 6, 194, 16, 144,
-			72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
-			21, 160, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 102, 51, 128, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 84, 192, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 18, 67, 33, 113, 0, 107, 109, 34, 15, 58, 109, 49, 37, 15, 72, 124, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			9, 3, 95, 51, 88, 89, 6, 37, 0, 0, 10, 3, 95, 48, 67, 89, 6, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3,
-			95, 49, 67, 89, 6, 109, 72, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 57, 50, 39, 88, 72, 6, 109, 107, 0, 0, 13, 3,
-			95, 49, 56, 107, 124, 90, 72, 6, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 49, 57, 35, 88, 72, 6, 125, 0,
-			0, 10, 3, 95, 49, 48, 72, 6, 109, 107, 0, 0, 12, 3, 95, 49, 51, 89, 36, 88, 72, 6, 125, 0, 0, 13, 3, 95, 49, 50,
-			72, 35, 50, 88, 72, 6, 125, 0, 0, 13, 3, 95, 49, 53, 48, 35, 50, 88, 72, 6, 125, 0, 0, 12, 3, 95, 49, 52, 76, 35,
-			51, 72, 6, 125, 0, 0, 13, 3, 95, 49, 55, 107, 124, 84, 72, 6, 109, 107, 0, 0, 13, 3, 95, 49, 54, 91, 35, 50, 88, 72,
-			6, 125, 0, 0, 0, 12, 3, 95, 55, 88, 107, 109, 83, 47, 6, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 7, 195, 4, 226, 137, 72, 8, 0, 0, 0, 0, 11, 3, 95, 50, 88, 71, 6, 124, 89, 47, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 63, 47, 37, 48, 35, 0, 0, 0, 0, 10, 3, 95, 52, 88,
-			76, 6, 124, 55, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 40, 144, 72, 0, 12, 3, 95, 53, 88, 48, 36, 50, 75, 6, 37, 0,
-			0, 0, 6, 195, 28, 245, 0, 72, 0, 0, 0, 0, 0, 0, 11, 3, 95, 54, 88, 91, 6, 36, 89, 47, 0, 0, 0, 5, 194, 94,
-			48, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 56, 88, 107, 36, 91, 47, 6, 36, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 52, 80, 76, 0, 10, 3, 95, 57, 88, 50, 6, 39, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 100, 19, 128, 72, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 124, 55, 6, 57, 39, 50, 0, 0, 0, 0, 13, 4,
-			95, 48, 77, 49, 107, 109, 88, 6, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 110, 101, 98, 195, 187, 65, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 99, 97, 112, 65, 36, 88, 37, 50, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 95, 195, 187, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3,
-			95, 195, 174, 37, 0, 0, 0, 0, 0, 7, 3, 95, 195, 170, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 72, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 5, 194, 140, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 50, 48, 76, 0, 0, 0, 0, 7, 2, 197, 159, 91, 36, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 80, 76, 0, 0, 0, 6, 130, 195, 187, 76, 8, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 13, 2, 95, 33, 71, 35, 50, 109, 91, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2,
-			95, 46, 101, 35, 55, 0, 0, 11, 2, 95, 45, 71, 109, 50, 72, 124, 49, 0, 0, 11, 2, 95, 44, 71, 36, 107, 50, 39, 49, 0,
-			0, 8, 2, 95, 51, 89, 6, 36, 0, 0, 8, 2, 95, 50, 72, 6, 111, 0, 0, 9, 2, 95, 49, 57, 6, 109, 49, 0, 0, 10,
-			2, 95, 48, 89, 6, 124, 83, 34, 0, 0, 10, 2, 95, 55, 107, 6, 109, 83, 47, 0, 0, 9, 2, 95, 54, 91, 6, 109, 91, 0,
-			0, 10, 2, 95, 53, 48, 6, 36, 50, 75, 0, 0, 9, 2, 95, 52, 75, 6, 35, 34, 0, 0, 14, 2, 95, 59, 101, 35, 55, 71,
-			36, 107, 50, 39, 49, 0, 0, 11, 2, 95, 58, 75, 39, 47, 101, 35, 55, 0, 0, 9, 2, 95, 57, 50, 6, 109, 107, 0, 0, 5,
-			194, 100, 16, 72, 5, 194, 92, 80, 76, 11, 2, 95, 56, 107, 6, 109, 57, 91, 47, 0, 0, 15, 2, 95, 63, 48, 124, 51, 89, 50,
-			37, 91, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 97, 35, 0, 0, 0, 0, 0, 5, 194, 94, 96, 76, 6,
-			2, 95, 101, 109, 0, 0, 0, 0, 0, 6, 2, 95, 105, 124, 0, 0, 0, 6, 2, 95, 111, 39, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 2, 95, 117, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 95, 48, 97, 110, 100, 10, 40,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 102, 48, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 195, 174, 0, 105, 121, 0, 195, 170, 0,
-			101, 119, 0, 101, 121, 0, 7, 6, 195, 167, 0, 3, 76, 0, 7, 6, 195, 170, 0, 1, 21, 2, 32, 14, 128, 128, 129, 3, 2, 36,
-			0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 36, 50, 0, 3, 36, 0, 7, 6, 195, 174, 0, 3, 37, 0, 7, 6, 195, 187,
-			0, 3, 40, 0, 7, 6, 197, 159, 0, 3, 91, 0, 7, 6, 97, 0, 1, 21, 2, 32, 14, 128, 128, 129, 3, 2, 35, 0, 110, 1,
-			21, 2, 32, 14, 128, 128, 130, 3, 2, 35, 50, 0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 75, 0, 7,
-			6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 109, 0, 119, 3, 115, 0, 121, 3, 118, 0, 2, 32, 3, 125, 0, 7, 6, 102, 0,
-			3, 83, 0, 7, 6, 103, 0, 2, 18, 66, 3, 79, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 124, 0,
-			7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0, 3, 49, 0, 2, 18, 66, 3, 80, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109,
-			0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3,
-			104, 0, 7, 6, 114, 0, 1, 17, 65, 2, 17, 65, 3, 16, 0, 4, 3, 51, 0, 114, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6,
-			116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 111, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0,
-			3, 101, 0, 119, 101, 3, 101, 58, 126, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72,
-			111, 55, 35, 34, 0, 195, 188, 3, 112, 0, 195, 182, 3, 124, 12, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts38 = FileInMemory_createWithData (2268, reinterpret_cast<const char *> (&espeakdata_dicts38_data), 
-			U"espeak-1.48.04-source/espeak-data/ku_dict", 
+		static unsigned char espeakdata_dicts36_data[2277] = {
+			0, 4, 0, 0, 124, 7, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0,
+			0, 6, 65, 12, 75, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 6, 195, 92, 19, 128, 76, 0, 0, 0, 0, 0,
+			0, 6, 65, 24, 83, 36, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 36, 0, 0, 0, 0,
+			0, 0, 8, 1, 37, 89, 109, 72, 36, 0, 0, 0, 0, 6, 65, 40, 90, 36, 0, 0, 0, 9, 1, 42, 89, 47, 36, 51, 49, 0,
+			0, 0, 6, 65, 44, 49, 36, 0, 0, 0, 0, 0, 6, 65, 48, 55, 36, 0, 0, 0, 0, 0, 6, 65, 52, 65, 36, 0, 0, 0,
+			0, 0, 6, 65, 56, 50, 36, 0, 10, 5, 95, 48, 1, 14, 4, 10, 40, 0, 0, 0, 6, 195, 44, 148, 128, 72, 0, 0, 0, 0,
+			0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 104, 36, 0, 0, 0, 0, 0, 6, 65, 72, 51, 36, 0, 0, 0,
+			0, 0, 6, 65, 76, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84,
+			36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 36, 0, 0, 0, 0, 0, 6, 65, 96, 101, 36, 0, 13, 4, 95, 49, 77, 49, 107, 109,
+			88, 6, 35, 34, 0, 0, 14, 4, 95, 49, 77, 50, 65, 124, 55, 6, 57, 39, 50, 0, 0, 0, 0, 6, 65, 100, 57, 36, 0, 0,
+			0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 23, 195, 174, 76, 0, 0, 0,
+			0, 6, 131, 23, 195, 170, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195,
+			4, 226, 137, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 72, 5, 194, 8, 144, 72, 0, 0, 0, 0, 0, 0, 11,
+			4, 95, 4, 16, 20, 10, 101, 35, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 25, 195, 170, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			194, 4, 224, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 16, 144, 72, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 21, 160, 76, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8,
+			84, 192, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 14, 5, 2, 195, 187, 65, 0, 0, 0, 18,
+			67, 33, 113, 0, 107, 109, 34, 15, 58, 109, 49, 37, 15, 72, 124, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95,
+			51, 88, 89, 6, 37, 0, 0, 10, 3, 95, 48, 67, 89, 6, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 49, 67,
+			89, 6, 109, 72, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 57, 50, 39, 88, 72, 6, 109, 107, 0, 0, 13, 3, 95, 49, 56,
+			107, 124, 90, 72, 6, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 49, 57, 35, 88, 72, 6, 125, 0, 0, 10, 3,
+			95, 49, 48, 72, 6, 109, 107, 0, 0, 12, 3, 95, 49, 51, 89, 36, 88, 72, 6, 125, 0, 0, 13, 3, 95, 49, 50, 72, 35, 50,
+			88, 72, 6, 125, 0, 0, 13, 3, 95, 49, 53, 48, 35, 50, 88, 72, 6, 125, 0, 0, 12, 3, 95, 49, 52, 76, 35, 51, 72, 6,
+			125, 0, 0, 13, 3, 95, 49, 55, 107, 124, 84, 72, 6, 109, 107, 0, 0, 13, 3, 95, 49, 54, 91, 35, 50, 88, 72, 6, 125, 0,
+			0, 0, 12, 3, 95, 55, 88, 107, 109, 83, 47, 6, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 131, 12, 195, 170, 76, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 88, 71, 6, 124, 89, 47, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 63, 47, 37, 48, 35, 0, 0, 0, 0, 10, 3, 95, 52, 88, 76, 6, 124, 55,
+			0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 40, 144, 72, 0, 12, 3, 95, 53, 88, 48, 36, 50, 75, 6, 37, 0, 0, 0, 6, 195,
+			28, 245, 0, 72, 0, 0, 0, 0, 0, 0, 11, 3, 95, 54, 88, 91, 6, 36, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 56, 88, 107, 36, 91, 47, 6, 36, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80,
+			76, 0, 10, 3, 95, 57, 88, 50, 6, 39, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 100, 19, 128, 72, 0,
+			0, 0, 14, 4, 95, 48, 77, 50, 65, 124, 55, 6, 57, 39, 50, 0, 0, 0, 0, 13, 4, 95, 48, 77, 49, 107, 109, 88, 6, 35,
+			34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 195, 170,
+			14, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 95, 195, 187, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 3, 95, 195, 174, 37, 0, 0, 0, 0, 0, 7, 3, 95, 195, 170, 36, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 72, 80, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 2, 195, 167, 76, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 197, 159, 91, 36, 0, 0, 0,
+			0, 5, 130, 195, 170, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 80, 76, 0, 0, 0, 6, 130,
+			195, 187, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0, 0, 0, 6, 2, 95, 5, 109, 0, 0, 0,
+			0, 6, 2, 95, 9, 124, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 21, 111,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 33, 71, 35, 50, 109, 91, 6, 35, 50, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 4, 95, 3, 1, 16, 65, 36, 88, 37, 50, 0, 0, 0, 0, 0, 8, 2, 95, 46, 101, 35, 55, 0, 0, 11, 2,
+			95, 45, 71, 109, 50, 72, 124, 49, 0, 0, 11, 2, 95, 44, 71, 36, 107, 50, 39, 49, 0, 0, 8, 2, 95, 51, 89, 6, 36, 0,
+			0, 8, 2, 95, 50, 72, 6, 111, 0, 0, 9, 2, 95, 49, 57, 6, 109, 49, 0, 0, 10, 2, 95, 48, 89, 6, 124, 83, 34, 0,
+			0, 10, 2, 95, 55, 107, 6, 109, 83, 47, 0, 0, 9, 2, 95, 54, 91, 6, 109, 91, 0, 0, 10, 2, 95, 53, 48, 6, 36, 50,
+			75, 0, 0, 9, 2, 95, 52, 75, 6, 35, 34, 0, 0, 14, 2, 95, 59, 101, 35, 55, 71, 36, 107, 50, 39, 49, 0, 0, 11, 2,
+			95, 58, 75, 39, 47, 101, 35, 55, 0, 0, 9, 2, 95, 57, 50, 6, 109, 107, 0, 0, 5, 194, 100, 16, 72, 5, 194, 92, 80, 76,
+			11, 2, 95, 56, 107, 6, 109, 57, 91, 47, 0, 0, 15, 2, 95, 63, 48, 124, 51, 89, 50, 37, 91, 6, 35, 50, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 25, 195, 170, 14, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 195,
+			174, 0, 105, 121, 0, 195, 170, 0, 101, 119, 0, 101, 121, 0, 7, 6, 195, 167, 0, 3, 76, 0, 7, 6, 195, 170, 0, 1, 21, 2,
+			32, 14, 128, 128, 129, 3, 2, 36, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 36, 50, 0, 3, 36, 0, 7, 6, 195, 174,
+			0, 3, 37, 0, 7, 6, 195, 187, 0, 3, 40, 0, 7, 6, 197, 159, 0, 3, 91, 0, 7, 6, 97, 0, 1, 21, 2, 32, 14, 128,
+			128, 129, 3, 2, 35, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 35, 50, 0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0,
+			7, 6, 99, 0, 3, 75, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 109, 0, 119, 3, 115, 0, 121, 3, 118, 0, 2,
+			32, 3, 125, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 2, 18, 66, 3, 79, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107,
+			0, 7, 6, 105, 0, 3, 124, 0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0, 3, 49, 0, 2, 18, 66, 3, 80, 0, 7, 6,
+			108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0,
+			3, 48, 0, 7, 6, 113, 0, 3, 104, 0, 7, 6, 114, 0, 1, 17, 65, 2, 17, 65, 3, 16, 0, 4, 3, 51, 0, 114, 0, 7,
+			6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 111, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119,
+			0, 3, 58, 0, 7, 6, 120, 0, 3, 101, 0, 119, 101, 3, 101, 58, 126, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3,
+			88, 0, 7, 6, 0, 36, 3, 72, 111, 55, 35, 34, 0, 195, 188, 3, 112, 0, 195, 182, 3, 124, 12, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts36 = FileInMemory_createWithData (2276, reinterpret_cast<const char *> (&espeakdata_dicts36_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ku_dict", 
 			U"ku");
-		my addItem_move (espeakdata_dicts38.move());
+		Collection_addItem (me.peek(), espeakdata_dicts36.transfer());
 
-		static unsigned char espeakdata_dicts39_data[3818] = {
-			0, 4, 0, 0, 55, 11, 0, 0, 7, 132, 102, 117, 196, 171, 72, 0, 0, 0, 0, 0, 4, 193, 4, 72, 5, 65, 4, 112, 0, 0,
-			7, 196, 65, 35, 208, 20, 72, 6, 131, 101, 196, 171, 72, 0, 0, 0, 6, 65, 8, 71, 113, 0, 0, 0, 0, 12, 201, 69, 81, 77,
-			4, 67, 79, 17, 83, 64, 8, 0, 6, 65, 12, 49, 113, 0, 0, 0, 0, 0, 6, 65, 16, 72, 113, 0, 0, 0, 6, 195, 21, 83,
-			64, 72, 0, 0, 4, 193, 20, 72, 5, 65, 20, 113, 0, 0, 0, 0, 0, 6, 65, 24, 108, 83, 0, 0, 0, 0, 0, 6, 65, 28,
-			81, 113, 0, 0, 0, 0, 0, 6, 65, 32, 107, 112, 0, 0, 0, 0, 0, 10, 65, 36, 6, 116, 50, 111, 89, 0, 41, 5, 65, 36,
-			114, 0, 0, 0, 0, 0, 0, 7, 196, 21, 66, 65, 52, 8, 0, 0, 0, 8, 197, 69, 80, 78, 16, 240, 8, 6, 65, 44, 49, 112,
-			0, 0, 0, 0, 0, 8, 197, 21, 34, 77, 85, 48, 72, 6, 65, 48, 108, 55, 0, 0, 0, 0, 0, 6, 65, 52, 108, 65, 0, 0,
-			0, 0, 0, 6, 65, 56, 108, 50, 0, 0, 0, 0, 0, 5, 65, 60, 115, 0, 0, 0, 8, 197, 25, 81, 82, 4, 208, 72, 0, 0,
-			6, 65, 64, 48, 113, 0, 0, 5, 194, 4, 32, 72, 0, 0, 0, 7, 65, 68, 49, 58, 116, 0, 0, 0, 0, 0, 6, 65, 72, 108,
-			34, 0, 0, 0, 0, 0, 6, 65, 76, 108, 89, 0, 0, 0, 0, 0, 7, 196, 69, 83, 193, 16, 8, 6, 65, 80, 47, 113, 0, 0,
-			5, 194, 4, 48, 72, 0, 0, 0, 5, 65, 84, 116, 0, 0, 0, 6, 195, 20, 149, 83, 72, 0, 0, 5, 65, 88, 116, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 65, 96, 108, 49, 89, 0, 0, 5, 194, 4, 64, 72, 0, 0, 0, 5, 65, 100, 114, 0, 0, 0, 0,
-			0, 9, 65, 104, 6, 88, 113, 47, 35, 0, 0, 5, 194, 5, 64, 8, 0, 0, 0, 0, 0, 0, 0, 6, 195, 69, 80, 69, 72, 6,
-			195, 69, 80, 69, 72, 0, 0, 0, 0, 6, 195, 76, 144, 137, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 85, 0,
-			8, 0, 0, 0, 0, 0, 0, 0, 7, 196, 37, 86, 20, 4, 72, 0, 0, 0, 0, 8, 133, 101, 114, 196, 129, 109, 72, 6, 131, 115,
-			117, 63, 72, 0, 0, 0, 6, 195, 65, 32, 69, 72, 0, 0, 7, 132, 101, 196, 171, 115, 72, 0, 0, 0, 0, 0, 0, 7, 196, 21,
-			32, 78, 80, 72, 0, 0, 0, 0, 9, 198, 65, 32, 69, 80, 84, 128, 72, 0, 0, 0, 0, 0, 0, 0, 8, 133, 101, 114, 196, 129,
-			115, 72, 0, 8, 133, 101, 114, 196, 129, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
-			20, 16, 72, 0, 0, 0, 0, 0, 0, 0, 9, 198, 65, 35, 208, 80, 84, 128, 72, 6, 195, 69, 80, 77, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 10, 135, 102, 117, 101, 114, 196, 129, 115, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 116, 117, 63, 72, 0, 0,
-			0, 6, 195, 21, 33, 193, 72, 0, 0, 0, 0, 0, 5, 194, 16, 80, 72, 0, 0, 0, 0, 10, 135, 118, 197, 141, 98, 196, 171, 115,
-			72, 0, 0, 0, 0, 5, 194, 21, 48, 72, 0, 0, 0, 0, 0, 6, 195, 21, 53, 0, 72, 0, 0, 0, 0, 11, 136, 102, 117, 196,
-			171, 115, 116, 196, 171, 72, 0, 0, 0, 0, 0, 11, 136, 102, 117, 196, 147, 114, 117, 110, 116, 72, 0, 0, 6, 194, 21, 64, 72, 28,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 33, 207, 8, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 132, 101, 114, 197, 141, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 147, 133, 72, 6, 195, 64,
-			243, 133, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 69, 83, 196, 8,
-			6, 195, 69, 83, 196, 72, 0, 0, 0, 6, 195, 52, 146, 9, 72, 0, 0, 0, 5, 194, 21, 128, 72, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 36, 33, 0, 6, 109, 71, 114, 15, 72, 4, 108, 65,
-			0, 0, 14, 66, 36, 32, 6, 109, 71, 114, 15, 72, 4, 108, 65, 0, 0, 6, 195, 56, 80, 192, 8, 0, 10, 135, 101, 114, 196, 129,
-			109, 117, 115, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 77, 83, 148, 60, 72, 0, 0, 0, 7, 132, 113, 117, 196, 171,
-			72, 0, 0, 0, 6, 195, 64, 244, 212, 72, 0, 0, 7, 196, 21, 53, 9, 76, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 137, 102, 117, 101, 114, 196, 129, 109, 117, 115, 72, 5, 194, 36, 64, 72, 0, 0, 0, 0, 12, 137, 102, 117, 101, 114, 196, 171,
-			109, 117, 115, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 68, 201, 8, 0, 0, 0, 0, 8, 197, 25,
-			82, 77, 85, 48, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 51, 88, 47, 14, 16, 114, 81, 6, 109, 50,
-			47, 112, 0, 0, 13, 3, 95, 48, 67, 49, 6, 108, 50, 47, 111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 21, 34, 83, 72, 0, 18, 3, 95, 49, 57, 116, 50, 72, 108, 58, 109, 81, 6, 109, 50, 47, 109, 0, 0, 19, 3, 95, 49,
-			56, 72, 111, 110, 72, 108, 58, 109, 81, 6, 109, 50, 47, 109, 0, 0, 6, 195, 21, 34, 84, 72, 0, 0, 7, 196, 64, 83, 133, 76,
-			72, 0, 0, 6, 195, 25, 82, 84, 72, 0, 0, 14, 3, 95, 49, 49, 6, 116, 50, 72, 108, 49, 109, 65, 0, 0, 12, 3, 95, 49,
-			48, 72, 6, 108, 49, 108, 65, 0, 0, 17, 3, 95, 49, 51, 47, 14, 16, 4, 113, 72, 6, 108, 49, 109, 65, 0, 9, 198, 65, 35,
-			208, 37, 84, 192, 72, 0, 15, 3, 95, 49, 50, 72, 111, 6, 110, 72, 108, 49, 109, 65, 0, 0, 17, 3, 95, 49, 53, 49, 58, 4,
-			114, 50, 72, 6, 108, 49, 109, 65, 0, 8, 133, 113, 117, 196, 129, 115, 72, 0, 20, 3, 95, 49, 52, 49, 58, 35, 47, 12, 58, 6,
-			110, 51, 72, 108, 49, 109, 65, 0, 0, 18, 3, 95, 49, 55, 89, 108, 48, 47, 6, 108, 50, 72, 108, 49, 109, 65, 0, 0, 14, 3,
-			95, 49, 54, 89, 6, 108, 72, 108, 49, 109, 65, 0, 0, 0, 18, 3, 95, 55, 88, 89, 108, 48, 47, 111, 112, 81, 6, 109, 50, 47,
-			112, 0, 0, 0, 0, 0, 9, 198, 69, 80, 77, 69, 80, 77, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 66, 36, 144,
-			72, 6, 111, 110, 0, 42, 7, 66, 36, 144, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 81, 32, 78, 76, 72, 0, 14,
-			3, 95, 50, 88, 58, 114, 81, 6, 109, 50, 47, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 5, 68, 72, 0, 11,
-			136, 102, 117, 196, 171, 115, 116, 105, 115, 72, 0, 0, 0, 9, 198, 25, 81, 82, 21, 83, 148, 72, 0, 0, 0, 19, 3, 95, 52, 88,
-			49, 58, 35, 72, 14, 16, 112, 81, 6, 109, 50, 47, 112, 0, 0, 0, 0, 0, 6, 195, 4, 229, 5, 72, 0, 10, 135, 102, 117, 101,
-			114, 196, 171, 115, 72, 0, 0, 0, 19, 3, 95, 53, 88, 49, 58, 114, 68, 49, 58, 112, 81, 6, 109, 50, 47, 112, 0, 0, 6, 131,
-			109, 196, 147, 72, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 54, 88, 89, 108, 49, 89, 112, 81, 6, 109, 50, 47, 112, 0, 0, 0,
-			0, 0, 6, 195, 20, 19, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 56, 88, 110, 49, 47, 115, 81,
-			6, 109, 50, 47, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 57, 88, 50, 115, 50, 112, 81, 6, 109, 50, 47, 112, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 229, 5, 72, 72, 0, 0, 0, 8, 133, 113, 117, 197, 141, 115, 72, 0, 0, 0, 0,
-			0, 5, 194, 60, 32, 72, 5, 194, 36, 224, 72, 5, 194, 36, 224, 72, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 25, 81, 82, 84,
-			229, 0, 72, 7, 196, 77, 84, 18, 4, 72, 0, 8, 197, 56, 19, 81, 84, 80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 12,
-			148, 131, 84, 208, 72, 0, 0, 0, 0, 0, 7, 196, 77, 83, 85, 76, 72, 0, 0, 0, 6, 195, 65, 35, 192, 72, 7, 132, 109, 101,
-			196, 171, 72, 0, 0, 0, 0, 6, 195, 77, 83, 64, 72, 6, 195, 13, 83, 64, 72, 5, 195, 56, 243, 128, 0, 0, 13, 4, 95, 48,
-			77, 49, 65, 6, 109, 55, 55, 108, 0, 0, 0, 0, 0, 6, 195, 80, 144, 137, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 197, 21, 34, 84, 37, 48, 72, 0, 0, 9, 134, 102, 117, 101, 114, 197, 141, 72, 0, 0, 0, 0, 0, 0,
-			9, 198, 76, 80, 213, 56, 69, 77, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 80, 128, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 56, 244, 212, 73, 83, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 5,
-			85, 5, 52, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 101, 197, 141, 114, 117, 109, 72, 0, 10, 135, 113,
-			117, 196, 129, 114, 117, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 88, 84, 147, 85, 48, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 37,
-			78, 80, 72, 0, 10, 199, 65, 35, 208, 80, 84, 133, 4, 8, 10, 199, 65, 32, 69, 80, 84, 133, 4, 72, 0, 6, 195, 36, 65, 79,
-			8, 0, 0, 0, 0, 9, 134, 101, 196, 129, 114, 117, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 80, 72, 0, 7, 196, 77, 84, 5, 72, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 196, 5, 68, 85, 36, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 77, 83, 148, 72, 8, 197, 77, 80, 148, 21, 32, 72, 0, 0, 0, 0, 0, 0, 10, 135, 101, 114, 196, 129,
-			116, 105, 115, 72, 0, 6, 195, 56, 19, 64, 8, 9, 198, 65, 35, 216, 36, 213, 83, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 36, 225, 146, 4, 72, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 36, 66, 66, 6, 114, 72, 109, 71, 111, 89, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 102, 117, 101, 114, 196, 129, 116, 105, 115, 72, 0, 0, 0, 0, 0,
-			0, 8, 197, 21, 53, 15, 80, 80, 72, 0, 0, 0, 7, 196, 84, 197, 18, 4, 72, 7, 196, 36, 229, 18, 4, 72, 7, 196, 21, 133,
-			18, 4, 72, 0, 8, 197, 12, 243, 148, 72, 16, 72, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 21, 65, 78, 36, 208, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 83, 64, 8, 0, 0, 0, 0, 6, 195, 64, 84, 128, 72, 0, 7,
-			196, 5, 68, 85, 20, 8, 0, 0, 0, 11, 2, 95, 51, 47, 14, 16, 4, 113, 89, 0, 0, 9, 2, 95, 50, 72, 6, 111, 110, 0,
-			0, 10, 2, 95, 49, 6, 116, 50, 111, 89, 0, 0, 11, 2, 95, 48, 50, 6, 111, 55, 55, 35, 0, 0, 12, 2, 95, 55, 89, 6,
-			108, 48, 47, 108, 65, 0, 0, 10, 2, 95, 54, 89, 4, 108, 49, 89, 0, 0, 13, 2, 95, 53, 49, 58, 6, 114, 68, 49, 58, 108,
-			0, 0, 14, 2, 95, 52, 49, 58, 6, 35, 47, 12, 111, 110, 51, 0, 0, 0, 0, 11, 2, 95, 57, 50, 6, 110, 58, 108, 65, 0,
-			0, 10, 2, 95, 56, 6, 110, 49, 47, 115, 0, 0, 8, 197, 69, 82, 66, 85, 48, 72, 0, 21, 2, 97, 46, 6, 35, 50, 47, 108,
-			15, 72, 6, 109, 38, 108, 65, 0, 81, 100, 46, 32, 29, 2, 97, 46, 35, 71, 15, 58, 51, 71, 4, 108, 15, 49, 110, 50, 72, 6,
-			114, 47, 35, 0, 82, 117, 46, 32, 99, 46, 32, 0, 7, 196, 65, 35, 213, 80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198,
-			88, 84, 212, 73, 83, 64, 72, 0, 0, 0, 0, 0, 0, 7, 196, 12, 148, 131, 4, 72, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135,
-			110, 197, 141, 98, 196, 171, 115, 72, 22, 2, 100, 46, 72, 4, 114, 89, 15, 65, 6, 112, 50, 109, 71, 111, 89, 0, 81, 77, 46, 32,
-			0, 0, 0, 0, 9, 198, 36, 64, 201, 72, 51, 192, 8, 0, 0, 11, 66, 88, 144, 89, 4, 108, 49, 89, 0, 42, 7, 66, 88, 144,
-			58, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 113, 117, 197, 141, 114, 117, 109, 72, 0, 0, 0, 0, 0, 0, 7, 196, 69,
-			80, 83, 36, 8, 0, 0, 0, 14, 67, 36, 68, 64, 114, 72, 6, 108, 65, 49, 58, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 105, 46, 4, 109, 72, 15, 108, 89, 47, 0, 81, 101, 46, 32, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 102, 117, 101, 114, 196, 171, 116, 105, 115, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 131, 116, 196, 147, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 101, 197, 141, 115, 72,
-			0, 0, 0, 0, 0, 0, 6, 195, 56, 148, 201, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 53, 5, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 226, 77, 8, 0, 0, 0, 0, 0, 0, 7, 132, 101, 196, 129, 115, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 105, 196, 171, 115, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
-			198, 69, 80, 77, 16, 149, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 53, 15, 72, 0, 6, 131, 101, 197,
-			141, 72, 0, 0, 0, 0, 6, 131, 101, 196, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197,
-			25, 81, 82, 37, 64, 72, 8, 197, 25, 81, 82, 5, 64, 72, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 226, 0, 0, 0,
+		static unsigned char espeakdata_dicts37_data[3818] = {
+			0, 4, 0, 0, 55, 11, 0, 0, 11, 136, 6, 21, 196, 171, 19, 20, 9, 19, 72, 0, 0, 0, 0, 6, 195, 76, 144, 137, 72, 6,
+			195, 69, 80, 69, 72, 6, 195, 69, 80, 69, 72, 0, 4, 193, 4, 72, 5, 65, 4, 112, 0, 0, 6, 131, 5, 196, 171, 72, 0, 7,
+			132, 6, 21, 196, 171, 72, 0, 7, 196, 37, 86, 20, 4, 72, 0, 6, 65, 8, 71, 113, 0, 0, 0, 0, 6, 195, 69, 80, 77, 72,
+			0, 6, 65, 12, 49, 113, 0, 0, 0, 0, 0, 6, 65, 16, 72, 113, 0, 0, 0, 10, 199, 65, 35, 208, 80, 84, 133, 4, 8, 6,
+			195, 21, 83, 64, 72, 0, 0, 4, 193, 20, 72, 5, 65, 20, 113, 0, 0, 0, 0, 6, 195, 76, 147, 133, 72, 6, 195, 64, 243, 133,
+			72, 0, 6, 65, 24, 108, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 113, 0, 0, 0, 0, 7, 196, 21, 53, 9, 76, 72, 0, 6,
+			65, 32, 107, 112, 0, 0, 0, 0, 6, 195, 21, 68, 201, 8, 0, 10, 65, 36, 6, 116, 50, 111, 89, 0, 41, 5, 65, 36, 114, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 136, 6, 21, 196, 147, 18, 21, 14, 20, 72, 0, 6, 65, 44, 49, 112, 0, 0, 0, 7, 132, 5,
+			196, 171, 19, 72, 0, 6, 195, 4, 229, 5, 72, 0, 6, 65, 48, 108, 55, 0, 0, 0, 10, 199, 65, 32, 69, 80, 84, 133, 4, 72,
+			0, 0, 6, 65, 52, 108, 65, 0, 0, 0, 0, 21, 2, 1, 46, 6, 35, 50, 47, 108, 15, 72, 6, 109, 38, 108, 65, 0, 81, 100,
+			46, 32, 29, 2, 1, 46, 35, 71, 15, 58, 51, 71, 4, 108, 15, 49, 110, 50, 72, 6, 114, 47, 35, 0, 82, 117, 46, 32, 99, 46,
+			32, 0, 6, 65, 56, 108, 50, 0, 0, 0, 0, 0, 5, 65, 60, 115, 0, 0, 0, 0, 0, 6, 65, 64, 48, 113, 0, 0, 10, 135,
+			6, 21, 5, 18, 196, 129, 19, 72, 5, 194, 4, 32, 72, 0, 0, 0, 7, 65, 68, 49, 58, 116, 0, 0, 0, 0, 0, 6, 65, 72,
+			108, 34, 0, 0, 0, 0, 0, 6, 65, 76, 108, 89, 0, 0, 0, 0, 22, 2, 4, 46, 72, 4, 114, 89, 15, 65, 6, 112, 50, 109,
+			71, 111, 89, 0, 81, 77, 46, 32, 0, 6, 65, 80, 47, 113, 0, 0, 5, 194, 4, 48, 72, 0, 0, 0, 5, 65, 84, 116, 0, 0,
+			0, 0, 0, 5, 65, 88, 116, 0, 0, 0, 0, 0, 8, 197, 69, 82, 66, 85, 48, 72, 0, 0, 0, 0, 7, 65, 96, 108, 49, 89,
+			0, 0, 9, 198, 36, 64, 201, 72, 51, 192, 8, 5, 194, 4, 64, 72, 0, 0, 0, 5, 65, 100, 114, 0, 0, 0, 0, 0, 9, 65,
+			104, 6, 88, 113, 47, 35, 0, 0, 5, 194, 5, 64, 8, 0, 0, 6, 195, 20, 226, 77, 8, 0, 0, 9, 198, 25, 81, 82, 21, 83,
+			148, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 65, 35, 208, 20, 72, 16, 2, 9, 46, 4, 109, 72, 15, 108, 89, 47,
+			0, 81, 101, 46, 32, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 85, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21,
+			32, 78, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 69, 83, 196, 8, 6,
+			195, 69, 83, 196, 72, 0, 0, 0, 0, 6, 195, 64, 244, 212, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 65, 35,
+			208, 37, 84, 192, 72, 0, 0, 7, 196, 81, 32, 78, 76, 72, 0, 0, 0, 0, 0, 0, 5, 194, 20, 16, 72, 0, 0, 0, 0, 0,
+			0, 7, 196, 77, 83, 85, 76, 72, 7, 196, 77, 84, 18, 4, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 21, 48, 72, 0,
+			0, 7, 196, 65, 35, 213, 80, 8, 0, 0, 0, 6, 195, 21, 53, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194,
+			21, 64, 72, 28, 0, 0, 0, 0, 0, 7, 132, 9, 196, 171, 19, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 21, 66, 65, 52, 8, 0, 0, 0, 0, 7, 196, 69, 83, 193, 16, 8, 0, 0, 0, 0, 0, 0, 9, 134, 6, 21, 5, 18, 197,
+			141, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 25, 82, 84, 72, 0, 8, 133, 5, 18, 196, 129, 13, 72, 7, 196, 64, 83, 133, 76, 72, 0, 0,
+			5, 194, 21, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 80, 144, 137, 72, 0, 0, 0,
+			8, 197, 21, 34, 84, 37, 48, 72, 0, 8, 133, 5, 18, 196, 129, 19, 72, 0, 0, 0, 8, 133, 5, 18, 196, 129, 20, 72, 15, 67,
+			36, 33, 0, 6, 109, 71, 114, 15, 72, 4, 108, 65, 0, 0, 14, 66, 36, 32, 6, 109, 71, 114, 15, 72, 4, 108, 65, 0, 0, 6,
+			195, 56, 80, 192, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 5, 18, 197, 141, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 12, 148, 131, 4, 72, 0, 0, 5, 194, 36, 64, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,
+			95, 51, 88, 47, 14, 16, 114, 81, 6, 109, 50, 47, 112, 0, 0, 13, 3, 95, 48, 67, 49, 6, 108, 50, 47, 111, 65, 0, 0, 0,
+			6, 195, 65, 32, 69, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 49, 57, 116, 50, 72, 108, 58, 109, 81,
+			6, 109, 50, 47, 109, 0, 0, 19, 3, 95, 49, 56, 72, 111, 110, 72, 108, 58, 109, 81, 6, 109, 50, 47, 109, 0, 0, 0, 0, 0,
+			0, 0, 0, 14, 3, 95, 49, 49, 6, 116, 50, 72, 108, 49, 109, 65, 0, 6, 195, 52, 146, 9, 72, 0, 12, 3, 95, 49, 48, 72,
+			6, 108, 49, 108, 65, 0, 0, 17, 3, 95, 49, 51, 47, 14, 16, 4, 113, 72, 6, 108, 49, 109, 65, 0, 0, 15, 3, 95, 49, 50,
+			72, 111, 6, 110, 72, 108, 49, 109, 65, 0, 0, 17, 3, 95, 49, 53, 49, 58, 4, 114, 50, 72, 6, 108, 49, 109, 65, 0, 0, 20,
+			3, 95, 49, 52, 49, 58, 35, 47, 12, 58, 6, 110, 51, 72, 108, 49, 109, 65, 0, 0, 18, 3, 95, 49, 55, 89, 108, 48, 47, 6,
+			108, 50, 72, 108, 49, 109, 65, 0, 0, 14, 3, 95, 49, 54, 89, 6, 108, 72, 108, 49, 109, 65, 0, 0, 0, 18, 3, 95, 55, 88,
+			89, 108, 48, 47, 111, 112, 81, 6, 109, 50, 47, 112, 0, 0, 6, 131, 19, 21, 63, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 195, 5, 5, 68, 72, 0, 0, 11, 136, 6, 21, 196, 171, 19, 20, 196, 171, 72, 0, 10, 66, 36, 144, 72, 6, 111, 110, 0,
+			42, 7, 66, 36, 144, 109, 109, 0, 0, 0, 7, 196, 36, 229, 5, 72, 72, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 50, 88, 58,
+			114, 81, 6, 109, 50, 47, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 37, 78, 80, 72, 0, 0,
+			0, 19, 3, 95, 52, 88, 49, 58, 35, 72, 14, 16, 112, 81, 6, 109, 50, 47, 112, 0, 0, 7, 196, 5, 68, 85, 36, 8, 0, 0,
+			0, 0, 0, 8, 197, 77, 80, 148, 21, 32, 72, 0, 0, 19, 3, 95, 53, 88, 49, 58, 114, 68, 49, 58, 112, 81, 6, 109, 50, 47,
+			112, 0, 0, 7, 196, 36, 225, 146, 4, 72, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 54, 88, 89, 108, 49, 89, 112, 81, 6, 109,
+			50, 47, 112, 0, 0, 7, 196, 5, 68, 85, 20, 8, 0, 0, 9, 198, 88, 84, 212, 73, 83, 64, 72, 0, 6, 195, 20, 19, 64, 72,
+			0, 7, 196, 69, 80, 83, 36, 8, 0, 0, 0, 0, 6, 131, 20, 21, 63, 72, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 56, 88,
+			110, 49, 47, 115, 81, 6, 109, 50, 47, 112, 0, 0, 0, 7, 132, 13, 5, 196, 171, 72, 0, 0, 0, 0, 0, 0, 16, 3, 95, 57,
+			88, 50, 115, 50, 112, 81, 6, 109, 50, 47, 112, 0, 0, 6, 131, 13, 196, 147, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20,
+			149, 83, 72, 0, 8, 197, 21, 34, 77, 85, 48, 72, 0, 0, 0, 10, 135, 5, 18, 196, 129, 13, 21, 19, 72, 0, 7, 132, 17, 21,
+			196, 171, 72, 0, 12, 137, 6, 21, 5, 18, 196, 129, 13, 21, 19, 72, 0, 5, 194, 60, 32, 72, 5, 194, 36, 224, 72, 5, 194, 36,
+			224, 72, 0, 0, 0, 12, 137, 6, 21, 5, 18, 196, 171, 13, 21, 19, 72, 0, 9, 198, 65, 32, 69, 80, 84, 128, 72, 0, 0, 0,
+			0, 9, 198, 25, 81, 82, 84, 229, 0, 72, 0, 0, 0, 0, 10, 135, 6, 21, 5, 18, 196, 171, 19, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 195, 65, 35, 192, 72, 0, 0, 0, 0, 6, 195, 77, 83, 64, 72, 6, 195, 13, 83, 64, 72, 5,
+			195, 56, 243, 128, 0, 8, 133, 17, 21, 197, 141, 19, 72, 0, 13, 4, 95, 48, 77, 49, 65, 6, 109, 55, 55, 108, 0, 8, 197, 25,
+			82, 77, 85, 48, 72, 0, 0, 0, 0, 12, 201, 69, 81, 77, 4, 67, 79, 17, 83, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 9, 198, 69, 80, 77, 69, 80, 77, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 12, 148, 131, 84, 208, 72, 0, 0,
+			0, 0, 0, 0, 0, 8, 133, 17, 21, 196, 129, 19, 72, 0, 0, 9, 198, 56, 244, 212, 73, 83, 64, 72, 0, 0, 0, 0, 0, 6,
+			195, 77, 80, 128, 72, 0, 0, 0, 0, 6, 195, 77, 83, 148, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
+			197, 21, 65, 78, 36, 208, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135,
+			14, 197, 141, 2, 196, 171, 19, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 76, 80, 213, 56, 69, 77, 72,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 7, 196, 77, 83, 148, 60, 72, 0, 0, 0, 6, 195, 21, 34, 84, 72, 0, 0, 0, 6, 195, 21, 34,
+			83, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 84,
+			197, 18, 4, 72, 7, 196, 36, 229, 18, 4, 72, 0, 8, 197, 21, 53, 15, 80, 80, 72, 8, 197, 12, 243, 148, 72, 16, 72, 0, 0,
+			0, 0, 0, 0, 6, 195, 56, 19, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 53, 5, 72, 0,
+			0, 9, 198, 69, 80, 77, 16, 149, 64, 8, 10, 135, 22, 197, 141, 2, 196, 171, 19, 72, 0, 0, 0, 8, 197, 25, 81, 82, 5, 64,
+			72, 0, 6, 195, 21, 53, 15, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134,
+			5, 197, 141, 18, 21, 13, 72, 0, 0, 0, 0, 0, 9, 198, 65, 35, 208, 80, 84, 128, 72, 0, 0, 0, 0, 6, 195, 21, 33, 193,
+			72, 0, 0, 6, 195, 21, 33, 207, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 17, 83, 64, 8,
+			0, 0, 0, 0, 6, 195, 64, 84, 128, 72, 0, 0, 0, 10, 135, 17, 21, 196, 129, 18, 21, 13, 72, 0, 11, 2, 95, 51, 47, 14,
+			16, 4, 113, 89, 0, 0, 9, 2, 95, 50, 72, 6, 111, 110, 0, 0, 10, 2, 95, 49, 6, 116, 50, 111, 89, 0, 0, 11, 2, 95,
+			48, 50, 6, 111, 55, 55, 35, 0, 0, 12, 2, 95, 55, 89, 6, 108, 48, 47, 108, 65, 0, 0, 10, 2, 95, 54, 89, 4, 108, 49,
+			89, 0, 0, 13, 2, 95, 53, 49, 58, 6, 114, 68, 49, 58, 108, 0, 0, 14, 2, 95, 52, 49, 58, 6, 35, 47, 12, 111, 110, 51,
+			0, 0, 0, 0, 11, 2, 95, 57, 50, 6, 110, 58, 108, 65, 0, 0, 10, 2, 95, 56, 6, 110, 49, 47, 115, 0, 0, 0, 0, 0,
+			10, 135, 17, 21, 197, 141, 18, 21, 13, 72, 0, 0, 0, 8, 197, 56, 19, 81, 84, 80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 36, 65, 79, 8, 0, 0, 0, 0, 7, 196, 77, 84, 5, 72, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67,
+			36, 66, 66, 6, 114, 72, 109, 71, 111, 89, 0, 0, 11, 66, 88, 144, 89, 4, 108, 49, 89, 0, 42, 7, 66, 88, 144, 58, 109, 0,
+			0, 0, 0, 9, 134, 5, 196, 129, 18, 21, 13, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 5, 196, 129, 19, 72, 0, 12, 137,
+			6, 21, 5, 18, 196, 171, 20, 9, 19, 72, 0, 0, 0, 0, 12, 137, 6, 21, 5, 18, 196, 129, 20, 9, 19, 72, 0, 14, 67, 36,
+			68, 64, 114, 72, 6, 108, 65, 49, 58, 108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 148, 201, 8, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 25, 81, 82, 4, 208, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 20, 196, 147, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 196, 5, 85, 5, 52, 8, 0, 7, 132, 5, 197, 141, 19, 72, 0, 0, 0, 0, 8, 197, 88, 84, 147, 85, 48, 72, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 133, 18, 4, 72, 0, 0, 0,
+			0, 0, 0, 0, 9, 198, 65, 35, 216, 36, 213, 83, 72, 0, 10, 135, 5, 18, 196, 129, 20, 9, 19, 72, 0, 0, 0, 0, 0, 0,
+			6, 131, 5, 196, 129, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 25, 81, 82, 37, 64, 72, 0, 6, 131, 5, 197,
+			141, 72, 0, 0, 0, 8, 197, 69, 80, 78, 16, 240, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 226, 0, 0, 0,
 			1, 1, 0, 0, 234, 0, 0, 0, 19, 1, 0, 0, 238, 0, 0, 0, 43, 1, 0, 0, 244, 0, 0, 0, 77, 1, 0, 0, 251, 0,
 			0, 0, 107, 1, 0, 0, 119, 1, 0, 0, 121, 0, 121, 0, 0, 0, 0, 0, 6, 18, 66, 97, 101, 0, 97, 117, 0, 101, 117, 0,
 			111, 101, 0, 121, 121, 0, 196, 129, 0, 196, 147, 0, 196, 171, 0, 197, 141, 0, 197, 171, 0, 195, 171, 0, 195, 188, 0, 195, 169, 0,
@@ -34612,735 +23919,635 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			4, 3, 58, 0, 8, 0, 118, 2, 12, 12, 12, 3, 58, 12, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 117, 0,
 			121, 3, 118, 0, 7, 6, 122, 0, 3, 88, 0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 12, 0, 122, 0, 7, 6, 0, 106, 3, 57,
 			0, 119, 3, 58, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts39 = FileInMemory_createWithData (3817, reinterpret_cast<const char *> (&espeakdata_dicts39_data), 
-			U"espeak-1.48.04-source/espeak-data/la_dict", 
+		autoFileInMemory espeakdata_dicts37 = FileInMemory_createWithData (3817, reinterpret_cast<const char *> (&espeakdata_dicts37_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/la_dict", 
 			U"la");
-		my addItem_move (espeakdata_dicts39.move());
-
-		static unsigned char espeakdata_dicts40_data[2871] = {
-			0, 4, 0, 0, 48, 8, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 6,
-			195, 21, 64, 192, 13, 0, 0, 8, 197, 13, 80, 78, 80, 240, 76, 6, 65, 12, 49, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36,
-			0, 0, 0, 6, 195, 76, 147, 128, 76, 0, 16, 4, 95, 100, 112, 116, 10, 84, 37, 52, 81, 6, 40, 55, 35, 0, 0, 4, 193, 20,
-			76, 0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 7, 65, 32, 107, 35,
-			91, 0, 0, 0, 0, 10, 1, 35, 81, 69, 37, 55, 57, 35, 0, 0, 10, 1, 36, 72, 39, 55, 35, 52, 89, 0, 0, 12, 1, 37,
-			48, 36, 52, 89, 36, 50, 47, 39, 0, 0, 7, 195, 12, 20, 128, 76, 28, 4, 193, 112, 43, 0, 0, 6, 65, 40, 90, 36, 0, 0,
-			0, 18, 1, 42, 89, 6, 37, 50, 57, 35, 72, 36, 89, 47, 6, 36, 55, 35, 0, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0,
-			0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65, 0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0,
-			0, 5, 193, 60, 76, 28, 0, 19, 1, 61, 89, 6, 37, 50, 57, 35, 72, 36, 36, 81, 6, 35, 55, 57, 35, 0, 0, 0, 0, 6,
-			65, 64, 48, 36, 0, 0, 0, 0, 0, 7, 65, 68, 49, 58, 35, 0, 0, 0, 6, 195, 4, 80, 192, 13, 0, 0, 6, 65, 72, 36,
-			52, 0, 0, 0, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 35, 0, 0, 0, 0, 0, 6, 65, 96, 36, 91, 0, 11, 4, 95, 49,
-			77, 49, 65, 6, 37, 55, 0, 0, 0, 0, 0, 6, 65, 100, 57, 35, 0, 0, 0, 6, 195, 48, 244, 192, 76, 0, 0, 6, 65, 104,
-			88, 36, 0, 0, 0, 6, 195, 64, 244, 192, 76, 0, 0, 6, 195, 21, 48, 197, 76, 0, 0, 0, 0, 0, 6, 194, 12, 16, 76, 28,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 20, 229, 18, 20,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 10, 66, 17, 32, 72, 39, 47, 39, 52, 0, 0, 0, 0, 0, 0, 0, 6, 195, 13, 80, 76, 76, 0, 0, 5, 194, 12,
-			80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 84,
-			131, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 80, 76, 5, 194, 20, 48, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 136, 43, 0, 0, 0, 5, 194, 12,
-			144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 48, 243, 135, 60, 76, 0, 6,
-			195, 64, 20, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 148, 43, 0, 0, 10, 3, 226, 130, 172, 115, 69, 39, 89, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 192, 76, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 5, 194, 20, 224, 76, 0, 13, 3, 95, 51, 88, 47, 69, 36, 72, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 3, 95, 49, 67, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 16, 76, 0, 0, 14, 3, 95,
-			50, 67, 72, 40, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 4, 193, 156, 43, 0, 0, 0, 0, 0, 15, 3, 95, 51, 67, 47, 69,
-			36, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 0, 9, 198, 64, 244, 148, 84, 113, 83, 15, 0, 0, 14, 3, 95, 55, 88, 89,
-			36, 47, 36, 72, 6, 36, 89, 0, 0, 18, 3, 95, 52, 67, 49, 58, 35, 47, 69, 39, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 17, 3, 95, 53, 67, 89, 37, 50, 49, 39, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 19, 4, 95, 97, 99,
-			117, 89, 37, 50, 57, 6, 36, 47, 35, 6, 35, 81, 40, 0, 0, 0, 0, 5, 194, 52, 16, 76, 0, 10, 3, 95, 49, 88, 72, 6,
-			36, 89, 0, 0, 14, 3, 95, 54, 67, 89, 36, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88,
-			72, 40, 72, 6, 36, 89, 0, 0, 16, 3, 95, 55, 67, 89, 36, 47, 36, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 15, 3, 95, 56, 67, 39, 47, 39, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 52, 88, 49,
-			58, 35, 47, 69, 39, 72, 6, 36, 89, 0, 0, 16, 3, 95, 57, 67, 50, 39, 84, 36, 89, 6, 36, 50, 47, 39, 0, 0, 0, 0,
-			6, 195, 4, 229, 5, 76, 0, 0, 0, 0, 15, 3, 95, 53, 88, 89, 37, 50, 49, 39, 72, 6, 36, 89, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 13, 3, 95, 54, 88, 89, 36, 89, 72, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 3, 95, 56, 88, 39, 47, 39, 72, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80, 76, 0, 14, 3,
-			95, 57, 88, 50, 39, 84, 36, 72, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 168, 43, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 77, 84, 18, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 39, 50, 0, 0, 0, 0, 11, 4, 95, 48, 77, 49,
-			65, 6, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 244, 192, 76, 6, 195, 56, 244, 192, 76, 6, 195, 77,
-			84, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 48, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 25, 32, 78,
-			76, 84, 192, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 76, 80, 76, 5, 194, 56, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 77, 80, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 5, 194, 60, 224, 76, 0, 0, 0, 0, 10, 2, 194, 176, 81, 34, 35, 72, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 81, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 76, 144, 76, 28, 0, 0, 0, 0, 0, 0, 7, 196, 24, 83, 9, 76, 15,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 243, 79, 76, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 12, 243, 148, 72,
-			16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 243, 128, 76, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 64, 84, 128, 76, 0, 10, 2, 95, 46, 48, 40, 50, 47, 39, 0, 0, 0, 12, 2, 95, 44, 84, 37, 52,
-			81, 40, 55, 35, 0, 0, 9, 2, 95, 51, 47, 69, 6, 36, 0, 0, 8, 2, 95, 50, 72, 6, 40, 0, 0, 8, 2, 95, 49, 6,
-			40, 50, 0, 0, 10, 2, 95, 48, 88, 6, 36, 34, 39, 0, 0, 10, 2, 95, 55, 89, 6, 36, 47, 36, 0, 0, 9, 2, 95, 54,
-			89, 6, 36, 89, 0, 0, 11, 2, 95, 53, 89, 6, 37, 50, 49, 39, 0, 0, 12, 2, 95, 52, 49, 58, 6, 35, 47, 69, 39, 0,
-			0, 18, 2, 95, 59, 48, 40, 50, 47, 39, 15, 84, 37, 52, 81, 40, 55, 35, 0, 0, 12, 2, 95, 58, 72, 40, 48, 40, 50, 47,
-			39, 0, 0, 10, 2, 95, 57, 50, 6, 39, 84, 36, 0, 0, 9, 2, 95, 56, 6, 39, 47, 39, 0, 0, 0, 0, 0, 0, 8, 197,
-			20, 225, 204, 21, 48, 15, 0, 0, 0, 0, 0, 0, 0, 7, 195, 4, 98, 78, 76, 28, 0, 0, 0, 0, 0, 6, 195, 4, 48, 192,
-			13, 0, 7, 196, 76, 148, 131, 4, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			7, 2, 95, 97, 6, 35, 0, 0, 0, 0, 0, 7, 2, 95, 101, 6, 36, 0, 0, 0, 0, 0, 0, 0, 7, 2, 95, 111, 6, 39,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 53, 1, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 53, 18, 4, 76, 0, 0, 0,
-			8, 197, 13, 80, 78, 16, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0,
-			0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20,
-			0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0,
-			6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0,
-			0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0,
-			0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20,
-			0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0,
-			6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0,
-			0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0,
-			0, 0, 0, 0, 6, 97, 0, 2, 17, 67, 29, 3, 6, 35, 0, 117, 2, 29, 3, 6, 114, 0, 105, 2, 29, 3, 6, 117, 0, 3,
-			35, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 7, 6, 100, 0, 3, 72,
-			0, 106, 3, 75, 0, 7, 6, 101, 0, 2, 17, 67, 29, 3, 6, 36, 0, 117, 2, 29, 3, 6, 115, 0, 4, 3, 36, 0, 105, 8,
-			0, 117, 3, 115, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0,
-			2, 17, 67, 29, 3, 6, 37, 0, 1, 21, 2, 17, 65, 32, 3, 8, 37, 0, 3, 37, 0, 4, 1, 17, 65, 2, 17, 65, 3, 57,
-			0, 1, 108, 17, 65, 2, 17, 65, 0, 1, 110, 17, 65, 2, 17, 65, 0, 8, 2, 17, 65, 0, 7, 6, 106, 0, 4, 3, 90, 0,
-			1, 17, 65, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 110, 8, 2, 101, 109, 3, 50, 0,
-			3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 4, 2, 99, 3, 68, 0, 2, 103, 0, 103, 2, 29, 0, 7, 6, 111, 0, 2, 17, 67,
-			29, 3, 6, 39, 0, 105, 2, 29, 3, 6, 120, 0, 4, 3, 39, 0, 117, 0, 105, 3, 120, 0, 7, 6, 112, 0, 8, 2, 115, 17,
-			65, 3, 0, 3, 48, 0, 114, 101, 8, 2, 105, 3, 48, 69, 36, 0, 114, 111, 8, 2, 105, 3, 48, 69, 39, 0, 104, 8, 3, 83,
-			0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0, 2, 17, 67, 3, 52, 0, 3, 69, 0, 101, 8, 2, 105, 3, 69, 36, 0, 7,
-			6, 115, 0, 1, 29, 2, 32, 14, 128, 128, 129, 3, 6, 36, 89, 0, 4, 3, 89, 0, 2, 32, 14, 128, 128, 129, 0, 2, 32, 28,
-			17, 12, 0, 117, 112, 114, 97, 8, 3, 89, 40, 48, 69, 35, 0, 7, 6, 116, 0, 3, 47, 0, 120, 3, 76, 0, 7, 6, 117, 0,
-			2, 17, 67, 29, 3, 6, 40, 0, 4, 1, 21, 2, 97, 32, 3, 8, 40, 0, 1, 21, 2, 101, 32, 0, 1, 21, 2, 111, 32, 0,
-			3, 40, 0, 4, 1, 17, 65, 2, 17, 65, 3, 58, 0, 1, 99, 2, 17, 65, 12, 0, 1, 103, 2, 17, 65, 12, 0, 8, 2, 17,
-			65, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 91, 0, 7, 6, 121, 0, 1, 17, 67,
-			2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 161, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0,
-			195, 173, 3, 7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 186, 3, 7, 40, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts40 = FileInMemory_createWithData (2870, reinterpret_cast<const char *> (&espeakdata_dicts40_data), 
-			U"espeak-1.48.04-source/espeak-data/lfn_dict", 
-			U"lfn");
-		my addItem_move (espeakdata_dicts40.move());
+		Collection_addItem (me.peek(), espeakdata_dicts37.transfer());
 
-		static unsigned char espeakdata_dicts41_data[5172] = {
-			0, 4, 0, 0, 74, 12, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 0, 7, 65, 8, 71, 38, 112, 0, 0,
-			0, 0, 0, 7, 65, 12, 133, 38, 112, 0, 0, 0, 0, 0, 6, 65, 16, 135, 112, 0, 0, 0, 0, 17, 4, 95, 100, 112, 116, 10,
-			49, 35, 71, 137, 6, 36, 137, 37, 89, 0, 0, 6, 65, 20, 36, 35, 0, 0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0,
-			0, 6, 65, 28, 81, 112, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 0, 13, 1, 36, 72, 6, 117, 137, 36, 34,
-			38, 37, 89, 0, 5, 65, 36, 37, 0, 0, 13, 1, 37, 48, 34, 6, 116, 133, 36, 50, 47, 121, 0, 0, 0, 0, 7, 65, 40, 57,
-			39, 47, 0, 0, 0, 14, 1, 42, 90, 84, 121, 81, 90, 72, 6, 118, 47, 112, 0, 0, 10, 1, 43, 48, 38, 137, 6, 40, 89, 0,
-			0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 25, 1, 47, 135, 36, 91, 37, 136, 6, 114, 136, 37, 89, 10, 71, 34, 119, 49, 38, 97,
-			50, 6, 115, 89, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 8, 197, 52, 19, 137, 52, 144, 67, 0, 0, 6, 65, 52, 36, 65, 0,
-			0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 5, 193, 60, 72, 8, 5, 65, 60, 117, 0, 0, 9, 1, 61, 137, 6,
-			115, 81, 40, 0, 0, 0, 0, 9, 1, 64, 6, 110, 47, 35, 9, 0, 7, 65, 64, 48, 38, 112, 0, 0, 0, 0, 0, 6, 65, 68,
-			49, 119, 0, 0, 0, 0, 0, 6, 65, 72, 36, 34, 0, 0, 0, 0, 14, 4, 95, 100, 111, 116, 47, 6, 35, 91, 49, 35, 89, 0,
-			0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0, 6, 65, 80, 134, 112, 0, 0, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0,
-			7, 65, 88, 84, 38, 112, 0, 0, 0, 0, 20, 4, 95, 49, 77, 52, 47, 34, 38, 37, 137, 37, 57, 6, 117, 50, 35, 89, 10, 0,
-			0, 24, 1, 92, 49, 121, 34, 38, 6, 114, 136, 37, 89, 10, 71, 34, 119, 49, 38, 97, 50, 6, 115, 89, 0, 16, 65, 92, 135, 84,
-			38, 6, 37, 81, 40, 71, 35, 10, 84, 112, 0, 0, 0, 0, 14, 67, 48, 145, 84, 137, 127, 47, 6, 118, 84, 38, 119, 0, 0, 19,
-			4, 95, 49, 77, 49, 47, 6, 119, 49, 89, 47, 35, 50, 134, 37, 89, 10, 0, 7, 65, 96, 37, 49, 89, 0, 0, 19, 4, 95, 49,
-			77, 50, 65, 38, 37, 137, 37, 57, 6, 117, 50, 35, 89, 10, 0, 0, 20, 4, 95, 49, 77, 51, 65, 38, 37, 137, 37, 57, 6, 109,
-			34, 72, 35, 89, 10, 0, 0, 0, 10, 65, 100, 115, 81, 34, 38, 36, 49, 0, 0, 0, 0, 0, 6, 65, 104, 94, 112, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 85, 0, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 7, 80, 108, 91, 10, 0, 0, 0, 0, 17, 69, 53, 83, 89, 76, 80,
-			65, 40, 65, 38, 115, 95, 6, 110, 10, 0, 0, 0, 0, 0, 6, 195, 9, 69, 128, 13, 10, 67, 80, 21, 64, 47, 108, 123, 10, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 66,
-			29, 32, 81, 34, 6, 108, 37, 49, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 53, 83,
-			73, 76, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 17, 160, 72, 88, 112, 0, 0, 0, 0,
-			0, 0, 12, 67, 52, 19, 133, 65, 35, 136, 6, 110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 8, 197, 76, 21, 137, 52, 144, 67, 8, 197, 80, 21, 137, 52, 144, 67, 0, 0, 7, 196, 80, 21, 177, 76, 66, 0, 0, 0,
-			0, 0, 0, 0, 6, 194, 37, 32, 72, 8, 0, 12, 3, 226, 130, 172, 6, 110, 40, 34, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 21, 177, 76, 66, 0, 0, 0, 17, 66, 20, 192, 36, 137, 36,
-			49, 47, 34, 39, 136, 37, 136, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 12, 19, 131, 20, 192, 21, 0, 47, 0, 18, 3, 95, 51, 88, 47, 34,
-			38, 6, 114, 89, 135, 36, 97, 37, 65, 47, 0, 0, 19, 5, 95, 48, 77, 66, 49, 47, 6, 119, 49, 89, 47, 35, 50, 78, 40, 10,
-			0, 12, 3, 95, 48, 67, 97, 37, 65, 47, 121, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 67, 97, 37, 65, 47,
-			35, 89, 10, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 49, 57, 72, 36, 84, 38, 115, 136, 6, 117, 137, 37, 49, 35, 0, 0, 17,
-			3, 95, 49, 56, 35, 91, 47, 124, 136, 6, 117, 137, 37, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 49, 49, 84, 38,
-			127, 50, 6, 124, 137, 37, 49, 35, 0, 0, 13, 3, 95, 49, 48, 135, 6, 36, 97, 37, 65, 47, 0, 0, 15, 3, 95, 49, 51, 47,
-			34, 38, 6, 115, 137, 37, 49, 35, 0, 0, 15, 3, 95, 49, 50, 72, 84, 38, 6, 115, 137, 37, 49, 35, 0, 0, 18, 3, 95, 49,
-			53, 48, 38, 36, 50, 49, 38, 6, 117, 137, 37, 49, 35, 0, 0, 19, 3, 95, 49, 52, 49, 38, 36, 47, 40, 34, 38, 6, 117, 137,
-			37, 49, 35, 0, 0, 18, 3, 95, 49, 55, 95, 36, 48, 134, 115, 136, 6, 117, 137, 37, 49, 35, 0, 0, 15, 3, 95, 49, 54, 97,
-			36, 97, 6, 117, 137, 37, 49, 35, 0, 0, 0, 22, 3, 95, 55, 88, 95, 36, 48, 38, 134, 6, 115, 50, 36, 94, 135, 36, 97, 37,
-			65, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 49, 37, 0, 13, 0, 0, 13, 67, 76, 21, 133, 89, 35, 84, 38,
-			6, 110, 10, 0, 13, 67, 80, 21, 133, 47, 35, 84, 38, 6, 110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
-			3, 95, 50, 88, 72, 84, 38, 6, 114, 135, 36, 97, 37, 65, 47, 0, 0, 10, 69, 72, 80, 68, 21, 32, 21, 0, 47, 20, 5, 95,
-			48, 77, 65, 49, 47, 6, 119, 49, 89, 47, 35, 50, 134, 37, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 22, 3, 95, 52, 88, 49, 38, 6, 113, 47, 40, 34, 38, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0,
-			0, 8, 66, 40, 144, 57, 114, 10, 0, 0, 22, 3, 95, 53, 88, 48, 38, 6, 110, 68, 38, 49, 38, 36, 94, 135, 36, 97, 37, 65,
-			47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 54, 88, 97, 6, 113, 97, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 66, 57, 32, 50, 6, 40, 65, 38, 36, 34, 38, 37, 89, 0, 0, 21,
-			3, 95, 56, 88, 35, 91, 47, 6, 118, 39, 136, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 11, 67, 41, 83, 83, 57, 118, 65,
-			89, 10, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 57, 88, 135, 36, 84, 38, 6, 115, 136, 36, 94, 135, 36, 97, 37, 65, 47, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 226, 153, 175, 72, 6, 127, 88, 35, 89, 0, 0, 0,
-			13, 3, 226, 153, 173, 71, 36, 65, 39, 55, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 53, 83, 83, 65, 118, 65, 89, 10,
-			0, 0, 0, 7, 66, 19, 144, 75, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 48, 77,
-			52, 47, 34, 38, 37, 137, 37, 57, 6, 117, 50, 121, 10, 0, 0, 0, 18, 4, 95, 48, 77, 50, 65, 38, 37, 137, 37, 57, 6, 117,
-			50, 121, 10, 0, 0, 11, 67, 52, 19, 128, 65, 108, 35, 50, 10, 0, 19, 4, 95, 48, 77, 51, 65, 38, 37, 137, 37, 57, 6, 109,
-			34, 72, 121, 10, 0, 0, 0, 18, 4, 95, 48, 77, 49, 47, 6, 119, 49, 89, 47, 35, 50, 78, 122, 10, 0, 0, 0, 13, 65, 180,
-			109, 10, 50, 117, 95, 6, 37, 136, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 179, 0, 13,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65,
-			188, 78, 112, 0, 0, 0, 0, 24, 3, 95, 194, 171, 55, 123, 90, 47, 6, 114, 50, 112, 89, 10, 49, 35, 71, 6, 118, 47, 112, 89,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 48, 245, 0, 55, 39, 47, 6, 115, 50, 119, 0, 0, 0, 0, 0, 0, 10, 69,
-			76, 52, 133, 20, 224, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95, 194, 187, 55, 123, 90, 47, 6, 114, 50, 112, 89, 10, 49, 35, 71,
-			6, 118, 47, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 167, 89,
-			6, 110, 49, 133, 37, 57, 35, 0, 6, 2, 196, 151, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 2,
-			194, 169, 123, 47, 39, 34, 6, 114, 50, 112, 89, 15, 47, 6, 122, 89, 112, 89, 0, 14, 65, 196, 36, 35, 10, 50, 117, 95, 6, 37,
-			136, 112, 0, 0, 16, 2, 194, 182, 48, 35, 34, 35, 81, 34, 6, 109, 83, 35, 89, 0, 0, 0, 0, 0, 0, 0, 14, 2, 194, 176,
-			55, 6, 108, 121, 48, 89, 50, 37, 89, 0, 0, 15, 2, 194, 177, 48, 55, 40, 89, 10, 65, 37, 50, 40, 89, 0, 0, 26, 2, 194,
-			190, 47, 34, 6, 115, 89, 15, 49, 38, 36, 134, 84, 38, 37, 34, 47, 6, 35, 72, 35, 137, 122, 0, 0, 6, 2, 196, 175, 115, 0,
-			0, 21, 2, 194, 188, 49, 38, 36, 134, 84, 38, 37, 34, 47, 6, 35, 72, 35, 137, 37, 89, 0, 0, 10, 2, 194, 189, 48, 6, 118,
-			89, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 197, 171, 119, 10, 37, 55, 81, 6, 117, 57, 37, 0, 0, 0, 0,
-			0, 0, 8, 66, 81, 80, 47, 118, 10, 0, 0, 0, 0, 14, 2, 197, 179, 119, 10, 50, 117, 95, 6, 37, 136, 112, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 17, 69, 52, 19, 153, 40, 80, 65, 35, 136, 115, 57, 38, 6, 110, 10, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 49, 69, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 67, 72, 18, 128, 34, 35, 57, 6, 116, 50, 35, 89, 0, 0,
-			0, 0, 0, 0, 22, 2, 95, 34, 134, 6, 127, 95, 39, 95, 39, 89, 10, 49, 35, 71, 6, 118, 47, 112, 89, 0, 0, 14, 2, 95,
-			33, 91, 123, 49, 47, 6, 118, 49, 35, 89, 0, 0, 0, 16, 2, 95, 39, 35, 48, 39, 89, 47, 34, 6, 116, 83, 35, 89, 0, 0,
-			0, 0, 0, 0, 0, 16, 2, 95, 41, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 16, 2, 95, 40, 95, 49, 38, 137,
-			6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 12, 2, 95, 46, 47, 6, 35, 91, 49, 35, 89, 0, 0, 11, 2, 95, 45, 65, 6, 114,
-			50, 40, 89, 0, 0, 14, 2, 95, 44, 49, 35, 71, 137, 6, 36, 137, 37, 89, 0, 0, 9, 2, 95, 51, 47, 34, 115, 89, 0, 0,
-			7, 2, 95, 50, 72, 40, 0, 0, 12, 2, 95, 49, 84, 38, 6, 127, 50, 35, 89, 0, 0, 11, 2, 95, 48, 50, 6, 40, 137, 37,
-			89, 0, 0, 13, 2, 95, 55, 95, 36, 48, 134, 115, 136, 6, 114, 0, 0, 10, 2, 95, 54, 97, 36, 91, 6, 114, 0, 0, 12, 2,
-			95, 53, 48, 38, 36, 50, 49, 6, 114, 0, 0, 13, 2, 95, 52, 49, 38, 36, 47, 40, 34, 6, 114, 0, 0, 19, 2, 95, 59, 49,
-			35, 71, 38, 137, 6, 36, 47, 35, 91, 49, 38, 37, 89, 0, 0, 17, 2, 95, 58, 135, 84, 38, 6, 114, 47, 35, 91, 49, 38, 37,
-			89, 0, 0, 12, 2, 95, 57, 135, 36, 84, 115, 136, 6, 114, 0, 0, 12, 2, 95, 56, 35, 91, 47, 124, 136, 6, 114, 0, 0, 15,
-			2, 95, 63, 49, 55, 123, 89, 47, 6, 118, 49, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 64, 6, 110, 47, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 212, 36, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 12,
-			243, 148, 36, 229, 69, 21, 0, 47, 27, 2, 95, 91, 55, 123, 90, 134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6, 110, 58,
-			89, 47, 35, 89, 0, 0, 0, 0, 0, 27, 2, 95, 95, 48, 35, 71, 34, 123, 49, 38, 6, 114, 65, 39, 10, 71, 34, 119, 49, 38,
-			97, 50, 6, 115, 89, 0, 0, 15, 2, 95, 94, 91, 35, 49, 50, 6, 114, 89, 10, 37, 91, 0, 0, 27, 2, 95, 93, 55, 123, 90,
-			134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 40, 148, 192, 57, 114, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 2, 95, 123,
-			34, 127, 89, 134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 0, 0, 0, 11, 2,
-			95, 126, 47, 6, 114, 55, 72, 112, 0, 0, 27, 2, 95, 125, 34, 127, 89, 134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6,
-			110, 58, 89, 47, 35, 89, 0, 0, 0, 11, 70, 24, 148, 133, 24, 246, 0, 21, 0, 47, 0, 0, 0, 0, 7, 196, 52, 19, 177, 76,
-			66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 92, 147,
-			132, 61, 116, 192, 21, 0, 47, 0, 0, 7, 196, 41, 83, 73, 76, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
-			71, 52, 17, 206, 36, 98, 69, 72, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 48, 226, 192, 13, 0, 0, 0, 0, 0, 6, 65, 228, 96, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
-			69, 76, 21, 153, 40, 80, 89, 35, 84, 38, 115, 57, 38, 6, 110, 10, 0, 0, 0, 0, 0, 17, 69, 41, 83, 89, 76, 80, 57, 40,
-			65, 38, 115, 95, 6, 110, 10, 0, 18, 69, 80, 21, 153, 40, 80, 47, 35, 84, 38, 115, 57, 38, 6, 110, 10, 0, 0, 0, 10, 67,
-			76, 21, 64, 89, 108, 123, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 100,
-			197, 190, 0, 197, 190, 0, 100, 122, 0, 98, 0, 100, 0, 103, 0, 122, 0, 104, 0, 7, 6, 18, 67, 197, 161, 0, 99, 104, 0, 196,
-			141, 0, 112, 0, 116, 0, 107, 0, 115, 0, 99, 0, 102, 0, 7, 6, 18, 69, 100, 197, 190, 0, 197, 190, 0, 100, 122, 0, 197, 161,
-			0, 99, 104, 0, 196, 141, 0, 98, 0, 100, 0, 103, 0, 122, 0, 104, 0, 112, 0, 116, 0, 107, 0, 115, 0, 99, 0, 102, 0, 108,
-			0, 109, 0, 110, 0, 114, 0, 106, 0, 118, 0, 7, 6, 18, 70, 196, 133, 0, 196, 153, 0, 196, 151, 0, 196, 175, 0, 197, 179, 0,
-			197, 171, 0, 97, 0, 101, 0, 105, 0, 121, 0, 111, 0, 117, 0, 7, 6, 18, 71, 196, 175, 0, 196, 153, 0, 196, 151, 0, 105, 0,
-			121, 0, 101, 0, 7, 6, 18, 75, 105, 117, 111, 115, 101, 0, 105, 97, 109, 115, 0, 105, 97, 105, 115, 0, 105, 117, 105, 0, 121, 106,
-			101, 0, 105, 97, 105, 0, 105, 197, 179, 0, 105, 117, 115, 0, 105, 115, 0, 105, 111, 0, 196, 175, 0, 105, 117, 0, 121, 106, 0, 121,
-			0, 7, 6, 18, 76, 105, 97, 109, 115, 0, 105, 97, 105, 115, 0, 105, 117, 111, 115, 0, 105, 97, 115, 0, 105, 117, 105, 0, 105, 196,
-			133, 0, 121, 106, 101, 0, 105, 97, 105, 0, 105, 197, 179, 0, 105, 117, 115, 0, 105, 111, 0, 105, 117, 0, 121, 106, 0, 121, 0, 7,
-			6, 18, 77, 117, 111, 115, 101, 0, 97, 109, 115, 0, 97, 105, 115, 0, 97, 115, 0, 117, 105, 0, 196, 133, 0, 97, 105, 0, 197, 179,
-			0, 117, 115, 0, 111, 0, 117, 0, 101, 0, 7, 6, 18, 78, 111, 109, 105, 115, 0, 111, 106, 101, 0, 111, 109, 115, 0, 111, 115, 101,
-			0, 111, 115, 0, 97, 105, 0, 196, 133, 0, 111, 106, 0, 111, 115, 0, 197, 179, 0, 97, 115, 0, 97, 0, 7, 6, 18, 79, 196, 151,
-			109, 105, 115, 0, 196, 151, 106, 101, 0, 196, 151, 109, 115, 0, 196, 151, 115, 101, 0, 196, 151, 115, 0, 196, 151, 106, 0, 105, 197, 179,
-			0, 196, 151, 109, 0, 196, 151, 0, 101, 105, 0, 196, 153, 0, 101, 0, 7, 6, 18, 86, 196, 141, 0, 116, 0, 7, 6, 18, 87, 100,
-			197, 190, 0, 100, 0, 7, 6, 196, 133, 0, 3, 109, 0, 7, 6, 196, 141, 0, 3, 76, 0, 2, 18, 71, 3, 78, 0, 7, 6, 196,
-			151, 0, 4, 3, 112, 0, 8, 112, 111, 107, 2, 196, 141, 105, 18, 78, 32, 0, 4, 1, 21, 2, 106, 18, 77, 32, 3, 112, 8, 0,
-			1, 21, 2, 106, 18, 78, 32, 0, 1, 21, 2, 110, 18, 77, 32, 0, 1, 21, 2, 110, 18, 79, 32, 0, 1, 21, 2, 196, 141, 105,
-			18, 78, 32, 0, 7, 6, 196, 153, 0, 3, 113, 0, 7, 6, 196, 175, 0, 3, 115, 0, 7, 6, 197, 161, 0, 2, 18, 66, 3, 90,
-			0, 4, 3, 91, 0, 197, 161, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 97, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7,
-			6, 197, 171, 0, 4, 1, 21, 2, 107, 197, 161, 18, 86, 18, 75, 32, 3, 118, 8, 40, 0, 1, 21, 2, 107, 197, 161, 18, 86, 18,
-			79, 32, 0, 3, 119, 0, 7, 6, 197, 179, 0, 3, 119, 0, 7, 6, 197, 190, 0, 115, 3, 89, 0, 4, 3, 90, 0, 197, 190, 0,
-			4, 2, 18, 67, 3, 91, 0, 2, 32, 0, 197, 161, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 96, 0, 2, 17, 67, 18, 71, 0,
-			2, 18, 71, 0, 7, 6, 97, 0, 4, 3, 35, 0, 2, 105, 122, 109, 18, 77, 32, 0, 4, 105, 1, 21, 2, 18, 86, 18, 75, 32,
-			3, 35, 8, 114, 0, 105, 1, 21, 2, 18, 86, 18, 79, 32, 0, 4, 105, 1, 21, 2, 110, 18, 75, 32, 3, 108, 8, 37, 0, 105,
-			1, 21, 2, 110, 18, 79, 32, 0, 105, 8, 109, 101, 190, 197, 2, 18, 86, 18, 75, 32, 0, 105, 8, 109, 101, 190, 197, 2, 18, 86,
-			18, 79, 32, 0, 105, 8, 116, 161, 197, 107, 117, 97, 2, 18, 86, 18, 75, 32, 0, 105, 8, 116, 161, 197, 107, 117, 97, 2, 18, 86,
-			18, 79, 32, 0, 2, 105, 107, 18, 78, 32, 3, 109, 0, 4, 105, 2, 18, 69, 3, 121, 0, 105, 2, 32, 0, 4, 117, 2, 18, 69,
-			3, 123, 0, 117, 2, 32, 0, 7, 6, 98, 0, 2, 18, 67, 3, 48, 0, 3, 71, 0, 4, 2, 17, 67, 18, 71, 3, 71, 38, 0,
-			2, 18, 71, 0, 7, 6, 99, 0, 104, 3, 101, 0, 104, 2, 18, 71, 3, 101, 38, 0, 3, 133, 0, 2, 18, 71, 3, 133, 38, 0,
-			7, 6, 100, 0, 4, 2, 18, 67, 3, 47, 0, 2, 32, 0, 3, 72, 0, 122, 3, 72, 88, 0, 122, 2, 18, 71, 3, 72, 94, 0,
-			197, 190, 3, 75, 0, 197, 190, 2, 18, 71, 3, 77, 0, 2, 18, 71, 3, 135, 0, 7, 6, 101, 0, 3, 36, 0, 105, 1, 21, 2,
-			118, 18, 78, 32, 3, 36, 8, 114, 0, 105, 3, 38, 122, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 18, 67, 3,
-			49, 0, 2, 32, 0, 4, 3, 81, 0, 103, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 97, 3, 36, 0, 3, 37, 0, 4,
-			97, 1, 99, 2, 99, 105, 106, 18, 78, 32, 3, 37, 57, 35, 0, 97, 1, 99, 2, 108, 18, 77, 32, 0, 2, 17, 65, 3, 38, 0,
-			4, 1, 97, 2, 107, 18, 78, 32, 3, 57, 37, 0, 1, 97, 2, 122, 109, 18, 77, 32, 0, 1, 111, 2, 107, 18, 78, 32, 0, 4,
-			101, 2, 197, 161, 107, 3, 57, 127, 0, 101, 8, 2, 118, 0, 101, 8, 2, 197, 161, 109, 0, 101, 1, 21, 2, 110, 18, 78, 32, 3,
-			114, 8, 36, 0, 4, 101, 3, 127, 0, 101, 8, 116, 117, 97, 106, 2, 110, 18, 78, 32, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6,
-			107, 0, 4, 3, 49, 0, 107, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 49, 38, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0,
-			2, 18, 66, 3, 81, 0, 7, 6, 108, 0, 3, 55, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 137, 0, 2, 17, 67, 18, 71, 0,
-			2, 18, 71, 0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 65, 38, 0, 2, 17, 67, 18,
-			71, 0, 2, 18, 71, 0, 7, 6, 110, 0, 4, 3, 50, 0, 110, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 136, 0, 2, 17, 67,
-			18, 71, 0, 2, 18, 71, 0, 7, 6, 111, 0, 1, 102, 2, 110, 18, 77, 32, 3, 116, 8, 0, 3, 117, 0, 2, 107, 197, 161, 110,
-			18, 75, 32, 3, 117, 8, 0, 7, 6, 112, 0, 4, 3, 48, 0, 112, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 48, 38, 0, 2,
-			17, 67, 18, 71, 0, 2, 18, 71, 0, 2, 18, 66, 3, 71, 0, 7, 6, 113, 0, 2, 18, 71, 3, 49, 38, 84, 38, 0, 3, 49,
-			84, 0, 7, 6, 114, 0, 4, 3, 34, 0, 114, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 34, 38, 0, 2, 17, 67, 18, 71, 0,
-			2, 18, 71, 0, 7, 6, 115, 0, 2, 18, 66, 3, 88, 0, 4, 3, 89, 0, 115, 0, 197, 161, 3, 91, 0, 4, 2, 17, 67, 17,
-			67, 18, 71, 3, 95, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 116, 0, 4, 3, 47, 0, 116, 0, 2, 18, 66, 3,
-			72, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 134, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 117, 0, 3, 40, 0,
-			111, 1, 21, 2, 109, 101, 110, 18, 79, 32, 3, 118, 8, 39, 0, 111, 3, 124, 0, 105, 3, 126, 0, 7, 6, 118, 0, 3, 84, 0,
-			2, 18, 71, 3, 84, 38, 0, 7, 6, 119, 0, 3, 84, 0, 2, 18, 71, 3, 84, 38, 0, 7, 6, 120, 0, 2, 18, 71, 3, 49,
-			38, 95, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 115, 0, 4, 1, 21, 2, 18, 86, 18, 75, 32, 3, 115, 8, 0, 1, 21, 2,
-			18, 86, 18, 79, 32, 0, 1, 21, 2, 98, 18, 78, 32, 0, 1, 21, 2, 98, 18, 79, 32, 0, 1, 109, 117, 21, 2, 110, 18, 77,
-			32, 0, 1, 110, 101, 21, 2, 98, 18, 79, 32, 0, 8, 112, 97, 2, 21, 0, 7, 6, 122, 0, 3, 88, 0, 2, 18, 67, 3, 89,
-			0, 2, 100, 197, 190, 3, 90, 0, 2, 196, 141, 3, 91, 0, 4, 2, 17, 67, 18, 71, 3, 94, 0, 2, 18, 71, 0, 7, 6, 206,
-			0, 177, 3, 6, 35, 55, 83, 35, 10, 0, 181, 3, 6, 36, 48, 95, 37, 55, 39, 50, 10, 0, 191, 3, 6, 39, 65, 38, 37, 49,
-			34, 39, 50, 10, 0, 183, 3, 36, 47, 35, 10, 0, 186, 3, 49, 6, 35, 48, 35, 10, 0, 190, 3, 49, 95, 6, 37, 10, 0, 185,
-			3, 57, 39, 47, 35, 10, 0, 188, 3, 65, 38, 6, 37, 10, 0, 178, 3, 71, 38, 6, 36, 47, 35, 10, 0, 179, 3, 81, 6, 109,
-			65, 35, 10, 0, 182, 3, 94, 6, 36, 47, 35, 10, 0, 184, 3, 134, 36, 47, 35, 10, 0, 180, 3, 135, 6, 36, 55, 47, 35, 10,
-			0, 189, 3, 136, 6, 37, 10, 0, 187, 3, 137, 6, 35, 65, 72, 35, 10, 0, 7, 6, 207, 0, 133, 3, 6, 37, 48, 95, 37, 55,
-			39, 50, 10, 0, 129, 3, 34, 6, 39, 10, 0, 137, 3, 39, 65, 6, 36, 81, 35, 10, 0, 132, 3, 47, 6, 128, 10, 0, 128, 3,
-			48, 38, 6, 115, 10, 0, 136, 3, 48, 95, 6, 37, 10, 0, 134, 3, 83, 38, 6, 37, 10, 0, 4, 130, 3, 95, 6, 37, 81, 65,
-			35, 10, 0, 131, 0, 135, 3, 101, 38, 6, 37, 10, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 4, 35, 1, 35, 3, 0, 4, 39,
-			3, 0, 4, 46, 1, 46, 3, 0, 58, 1, 32, 15, 2, 32, 15, 15, 32, 3, 0, 46, 2, 46, 3, 9, 0, 46, 3, 9, 47, 6,
-			35, 91, 49, 35, 89, 0, 33, 3, 9, 91, 123, 49, 47, 6, 118, 49, 35, 89, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10,
-			0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 35, 1, 35, 35, 2, 32, 3, 24, 0, 60, 61, 3, 65, 35, 96, 6, 123, 10, 35, 34,
-			71, 6, 108, 10, 55, 115, 81, 40, 0, 45, 8, 32, 2, 32, 15, 3, 65, 37, 50, 40, 89, 0, 62, 61, 3, 72, 123, 81, 38, 6,
-			123, 10, 35, 34, 71, 6, 108, 10, 137, 115, 81, 40, 0, 58, 3, 135, 84, 38, 6, 114, 47, 35, 97, 49, 38, 37, 89, 0, 33, 61,
-			3, 136, 36, 137, 6, 115, 81, 40, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts41 = FileInMemory_createWithData (5171, reinterpret_cast<const char *> (&espeakdata_dicts41_data), 
-			U"espeak-1.48.04-source/espeak-data/lt_dict", 
+		static unsigned char espeakdata_dicts38_data[5185] = {
+			0, 4, 0, 0, 87, 12, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 0, 0, 0, 7, 65, 8, 71, 38, 112, 0, 0,
+			0, 0, 0, 7, 65, 12, 133, 38, 112, 0, 0, 0, 0, 0, 6, 65, 16, 135, 112, 0, 0, 0, 0, 0, 6, 65, 20, 36, 35, 0,
+			0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 112, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0,
+			0, 0, 0, 0, 13, 1, 36, 72, 6, 117, 137, 36, 34, 38, 37, 89, 0, 5, 65, 36, 37, 0, 0, 13, 1, 37, 48, 34, 6, 116,
+			133, 36, 50, 47, 121, 0, 0, 0, 0, 7, 65, 40, 57, 39, 47, 0, 0, 0, 14, 1, 42, 90, 84, 121, 81, 90, 72, 6, 118, 47,
+			112, 0, 0, 10, 1, 43, 48, 38, 137, 6, 40, 89, 0, 13, 67, 76, 21, 133, 89, 35, 84, 38, 6, 110, 10, 0, 0, 6, 65, 44,
+			49, 35, 0, 0, 0, 0, 25, 1, 47, 135, 36, 91, 37, 136, 6, 114, 136, 37, 89, 10, 71, 34, 119, 49, 38, 97, 50, 6, 115, 89,
+			0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65, 0, 0, 11, 67, 53, 83, 83, 65, 118, 65, 89, 10, 0,
+			0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 5, 193, 60, 72, 8, 5, 65, 60, 117, 0, 0, 9, 1, 61, 137, 6, 115,
+			81, 40, 0, 0, 0, 0, 9, 1, 64, 6, 110, 47, 35, 9, 0, 7, 65, 64, 48, 38, 112, 0, 0, 0, 0, 0, 6, 65, 68, 49,
+			119, 0, 0, 0, 0, 0, 6, 65, 72, 36, 34, 0, 0, 0, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0, 6, 65, 80, 134,
+			112, 0, 0, 0, 11, 70, 12, 243, 148, 36, 229, 69, 21, 0, 10, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 7, 65, 88, 84,
+			38, 112, 0, 0, 0, 0, 20, 4, 95, 49, 77, 52, 47, 34, 38, 37, 137, 37, 57, 6, 117, 50, 35, 89, 10, 0, 0, 24, 1, 92,
+			49, 121, 34, 38, 6, 114, 136, 37, 89, 10, 71, 34, 119, 49, 38, 97, 50, 6, 115, 89, 0, 16, 65, 92, 135, 84, 38, 6, 37, 81,
+			40, 71, 35, 10, 84, 112, 0, 0, 0, 0, 0, 19, 4, 95, 49, 77, 49, 47, 6, 119, 49, 89, 47, 35, 50, 134, 37, 89, 10, 0,
+			7, 65, 96, 37, 49, 89, 0, 0, 19, 4, 95, 49, 77, 50, 65, 38, 37, 137, 37, 57, 6, 117, 50, 35, 89, 10, 0, 0, 20, 4,
+			95, 49, 77, 51, 65, 38, 37, 137, 37, 57, 6, 109, 34, 72, 35, 89, 10, 0, 0, 0, 10, 65, 100, 115, 81, 34, 38, 36, 49, 0,
+			0, 0, 0, 0, 6, 65, 104, 94, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 197, 52, 19, 137, 52, 144, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 195, 8, 85, 0, 72, 8, 0, 7, 196, 53, 83, 73, 76, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 72, 80, 68, 21, 32, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 17, 4, 95, 4, 16, 20, 10, 49, 35, 71, 137, 6, 36, 137, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 196, 41, 83, 73, 76, 66, 0, 0, 0, 0, 0, 0, 0, 6, 195, 9, 69, 128, 17, 10, 67, 80, 21,
+			64, 47, 108, 123, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 67, 48, 145, 84, 137, 127, 47,
+			6, 118, 84, 38, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 66, 29, 32, 81, 34, 6, 108, 37, 49, 119, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 69, 53, 83, 89, 76, 80, 65, 40, 65, 38, 115, 95, 6, 110, 10, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 12, 19, 131, 20, 192, 21, 0, 10, 0, 0, 0, 0, 0, 13,
+			67, 80, 21, 133, 47, 35, 84, 38, 6, 110, 10, 0, 8, 66, 17, 160, 72, 88, 112, 0, 0, 0, 0, 0, 0, 0, 11, 67, 41, 83,
+			83, 57, 118, 65, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 194, 37, 32, 72, 8, 0, 12, 3, 226, 130, 172, 6, 110, 40, 34, 35, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 20, 192, 36, 137, 36, 49, 47, 34, 39, 136, 37, 136, 37,
+			89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 9, 134, 19, 1, 22, 196, 153, 19, 66, 0, 0, 0, 0, 18, 3, 95, 51, 88, 47, 34, 38, 6, 114, 89, 135, 36, 97, 37, 65,
+			47, 0, 0, 19, 5, 95, 48, 77, 66, 49, 47, 6, 119, 49, 89, 47, 35, 50, 78, 40, 10, 0, 12, 3, 95, 48, 67, 97, 37, 65,
+			47, 121, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 67, 97, 37, 65, 47, 35, 89, 10, 0, 0, 0, 0, 0, 0,
+			0, 18, 3, 95, 49, 57, 72, 36, 84, 38, 115, 136, 6, 117, 137, 37, 49, 35, 0, 0, 17, 3, 95, 49, 56, 35, 91, 47, 124, 136,
+			6, 117, 137, 37, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 49, 49, 84, 38, 127, 50, 6, 124, 137, 37, 49, 35, 0,
+			0, 13, 3, 95, 49, 48, 135, 6, 36, 97, 37, 65, 47, 0, 0, 15, 3, 95, 49, 51, 47, 34, 38, 6, 115, 137, 37, 49, 35, 0,
+			0, 15, 3, 95, 49, 50, 72, 84, 38, 6, 115, 137, 37, 49, 35, 0, 0, 18, 3, 95, 49, 53, 48, 38, 36, 50, 49, 38, 6, 117,
+			137, 37, 49, 35, 0, 0, 19, 3, 95, 49, 52, 49, 38, 36, 47, 40, 34, 38, 6, 117, 137, 37, 49, 35, 0, 0, 18, 3, 95, 49,
+			55, 95, 36, 48, 134, 115, 136, 6, 117, 137, 37, 49, 35, 0, 0, 15, 3, 95, 49, 54, 97, 36, 97, 6, 117, 137, 37, 49, 35, 0,
+			0, 0, 22, 3, 95, 55, 88, 95, 36, 48, 38, 134, 6, 115, 50, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 195, 49, 37, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 50, 88, 72,
+			84, 38, 6, 114, 135, 36, 97, 37, 65, 47, 0, 0, 20, 5, 95, 48, 77, 65, 49, 47, 6, 119, 49, 89, 47, 35, 50, 134, 37, 89,
+			10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 76, 52, 133, 20, 224, 21, 0, 10, 0, 0, 0, 0, 0, 0, 22, 3, 95,
+			52, 88, 49, 38, 6, 113, 47, 40, 34, 38, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 40, 144,
+			57, 114, 10, 0, 0, 22, 3, 95, 53, 88, 48, 38, 6, 110, 68, 38, 49, 38, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 18, 3, 95, 54, 88, 97, 6, 113, 97, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 15, 66, 57, 32, 50, 6, 40, 65, 38, 36, 34, 38, 37, 89, 0, 0, 21, 3, 95, 56, 88, 35,
+			91, 47, 6, 118, 39, 136, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 57, 88, 135, 36,
+			84, 38, 6, 115, 136, 36, 94, 135, 36, 97, 37, 65, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			12, 3, 226, 153, 175, 72, 6, 127, 88, 35, 89, 0, 0, 0, 13, 3, 226, 153, 173, 71, 36, 65, 39, 55, 37, 89, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 67, 52, 19, 133, 65, 35, 136, 6,
+			110, 10, 0, 19, 4, 95, 48, 77, 52, 47, 34, 38, 37, 137, 37, 57, 6, 117, 50, 121, 10, 0, 0, 0, 18, 4, 95, 48, 77, 50,
+			65, 38, 37, 137, 37, 57, 6, 117, 50, 121, 10, 0, 0, 11, 67, 52, 19, 128, 65, 108, 35, 50, 10, 0, 19, 4, 95, 48, 77, 51,
+			65, 38, 37, 137, 37, 57, 6, 109, 34, 72, 121, 10, 0, 0, 0, 18, 4, 95, 48, 77, 49, 47, 6, 119, 49, 89, 47, 35, 50, 78,
+			122, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 179, 0, 17, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95, 194,
+			171, 55, 123, 90, 47, 6, 114, 50, 112, 89, 10, 49, 35, 71, 6, 118, 47, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 18, 69, 80,
+			21, 153, 40, 80, 47, 35, 84, 38, 115, 57, 38, 6, 110, 10, 0, 0, 0, 13, 67, 48, 245, 0, 55, 39, 47, 6, 115, 50, 119, 0,
+			0, 0, 0, 0, 0, 0, 9, 134, 20, 1, 22, 196, 153, 19, 66, 9, 134, 13, 1, 14, 196, 153, 19, 66, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95,
+			194, 187, 55, 123, 90, 47, 6, 114, 50, 112, 89, 10, 49, 35, 71, 6, 118, 47, 112, 89, 0, 0, 0, 0, 0, 0, 14, 2, 196, 133,
+			109, 10, 50, 117, 95, 6, 37, 136, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 196, 141, 78, 112, 0, 0, 0, 0, 0, 0,
+			0, 13, 2, 194, 167, 89, 6, 110, 49, 133, 37, 57, 35, 0, 6, 2, 196, 151, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 21, 2, 194, 169, 123, 47, 39, 34, 6, 114, 50, 112, 89, 15, 47, 6, 122, 89, 112, 89, 0, 15, 2, 196, 153, 36,
+			35, 10, 50, 117, 95, 6, 37, 136, 112, 0, 0, 16, 2, 194, 182, 48, 35, 34, 35, 81, 34, 6, 109, 83, 35, 89, 0, 0, 0, 0,
+			0, 0, 0, 14, 2, 194, 176, 55, 6, 108, 121, 48, 89, 50, 37, 89, 0, 0, 15, 2, 194, 177, 48, 55, 40, 89, 10, 65, 37, 50,
+			40, 89, 0, 0, 26, 2, 194, 190, 47, 34, 6, 115, 89, 15, 49, 38, 36, 134, 84, 38, 37, 34, 47, 6, 35, 72, 35, 137, 122, 0,
+			0, 6, 2, 196, 175, 115, 0, 0, 21, 2, 194, 188, 49, 38, 36, 134, 84, 38, 37, 34, 47, 6, 35, 72, 35, 137, 37, 89, 0, 0,
+			10, 2, 194, 189, 48, 6, 118, 89, 112, 0, 0, 0, 0, 0, 7, 2, 197, 161, 36, 91, 0, 0, 0, 0, 0, 0, 0, 14, 2, 197,
+			171, 119, 10, 37, 55, 81, 6, 117, 57, 37, 0, 0, 0, 0, 0, 0, 8, 66, 81, 80, 47, 118, 10, 0, 0, 0, 0, 14, 2, 197,
+			179, 119, 10, 50, 117, 95, 6, 37, 136, 112, 0, 0, 0, 0, 7, 2, 197, 190, 96, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 49, 69, 128, 17, 0, 0, 0, 0, 0, 0, 18, 69, 76, 21, 153, 40, 80, 89, 35, 84, 38, 115,
+			57, 38, 6, 110, 10, 0, 0, 0, 12, 71, 52, 17, 206, 36, 98, 69, 72, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 1, 197, 161, 108, 91, 10, 0, 0, 0, 0, 0, 0, 14, 67,
+			72, 18, 128, 34, 35, 57, 6, 116, 50, 35, 89, 0, 0, 0, 0, 0, 0, 22, 2, 95, 34, 134, 6, 127, 95, 39, 95, 39, 89, 10,
+			49, 35, 71, 6, 118, 47, 112, 89, 0, 0, 14, 2, 95, 33, 91, 123, 49, 47, 6, 118, 49, 35, 89, 0, 0, 0, 16, 2, 95, 39,
+			35, 48, 39, 89, 47, 34, 6, 116, 83, 35, 89, 0, 0, 0, 0, 0, 0, 0, 16, 2, 95, 41, 95, 49, 38, 137, 6, 110, 58, 89,
+			47, 35, 89, 0, 0, 16, 2, 95, 40, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 12, 2, 95, 46, 47, 6, 35,
+			91, 49, 35, 89, 0, 0, 11, 2, 95, 45, 65, 6, 114, 50, 40, 89, 0, 0, 14, 2, 95, 44, 49, 35, 71, 137, 6, 36, 137, 37,
+			89, 0, 0, 9, 2, 95, 51, 47, 34, 115, 89, 0, 0, 7, 2, 95, 50, 72, 40, 0, 0, 12, 2, 95, 49, 84, 38, 6, 127, 50,
+			35, 89, 0, 0, 11, 2, 95, 48, 50, 6, 40, 137, 37, 89, 0, 0, 13, 2, 95, 55, 95, 36, 48, 134, 115, 136, 6, 114, 0, 0,
+			10, 2, 95, 54, 97, 36, 91, 6, 114, 0, 0, 12, 2, 95, 53, 48, 38, 36, 50, 49, 6, 114, 0, 0, 13, 2, 95, 52, 49, 38,
+			36, 47, 40, 34, 6, 114, 0, 0, 19, 2, 95, 59, 49, 35, 71, 38, 137, 6, 36, 47, 35, 91, 49, 38, 37, 89, 0, 0, 17, 2,
+			95, 58, 135, 84, 38, 6, 114, 47, 35, 91, 49, 38, 37, 89, 0, 0, 12, 2, 95, 57, 135, 36, 84, 115, 136, 6, 114, 0, 0, 12,
+			2, 95, 56, 35, 91, 47, 124, 136, 6, 114, 0, 0, 15, 2, 95, 63, 49, 55, 123, 89, 47, 6, 118, 49, 35, 89, 0, 0, 0, 0,
+			0, 0, 0, 0, 9, 2, 95, 64, 6, 110, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 14, 4, 95, 4, 15, 20, 47, 6, 35, 91, 49, 35, 89, 0, 0, 0, 0, 27, 2, 95, 91, 55, 123, 90, 134, 6, 114, 38, 50,
+			37, 89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 0, 0, 27, 2, 95, 95, 48, 35, 71, 34, 123, 49, 38,
+			6, 114, 65, 39, 10, 71, 34, 119, 49, 38, 97, 50, 6, 115, 89, 0, 0, 15, 2, 95, 94, 91, 35, 49, 50, 6, 114, 89, 10, 37,
+			91, 0, 0, 27, 2, 95, 93, 55, 123, 90, 134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 92, 147, 132, 61, 116, 192, 21, 0, 10, 0, 10,
+			67, 40, 148, 192, 57, 114, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 2, 95, 123, 34, 127, 89, 134, 6, 114, 38, 50, 37,
+			89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 0, 0, 0, 0, 0, 11, 2, 95, 126, 47, 6, 114, 55, 72, 112, 0,
+			0, 27, 2, 95, 125, 34, 127, 89, 134, 6, 114, 38, 50, 37, 89, 10, 95, 49, 38, 137, 6, 110, 58, 89, 47, 35, 89, 0, 17, 69,
+			41, 83, 89, 76, 80, 57, 40, 65, 38, 115, 95, 6, 110, 10, 0, 0, 0, 11, 70, 24, 148, 133, 24, 246, 0, 21, 0, 10, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 197, 76, 21, 137, 52, 144, 67, 8, 197, 80, 21, 137, 52, 144, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 226, 192, 17, 0, 0, 17, 69, 52, 19, 153, 40,
+			80, 65, 35, 136, 115, 57, 38, 6, 110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 4, 197, 190, 75, 112,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 76, 21, 64, 89, 108, 123, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 100, 197, 190, 0, 197, 190, 0, 100, 122, 0, 98, 0, 100, 0, 103, 0, 122, 0,
+			104, 0, 7, 6, 18, 67, 197, 161, 0, 99, 104, 0, 196, 141, 0, 112, 0, 116, 0, 107, 0, 115, 0, 99, 0, 102, 0, 7, 6, 18,
+			69, 100, 197, 190, 0, 197, 190, 0, 100, 122, 0, 197, 161, 0, 99, 104, 0, 196, 141, 0, 98, 0, 100, 0, 103, 0, 122, 0, 104, 0,
+			112, 0, 116, 0, 107, 0, 115, 0, 99, 0, 102, 0, 108, 0, 109, 0, 110, 0, 114, 0, 106, 0, 118, 0, 7, 6, 18, 70, 196, 133,
+			0, 196, 153, 0, 196, 151, 0, 196, 175, 0, 197, 179, 0, 197, 171, 0, 97, 0, 101, 0, 105, 0, 121, 0, 111, 0, 117, 0, 7, 6,
+			18, 71, 196, 175, 0, 196, 153, 0, 196, 151, 0, 105, 0, 121, 0, 101, 0, 7, 6, 18, 75, 105, 117, 111, 115, 101, 0, 105, 97, 109,
+			115, 0, 105, 97, 105, 115, 0, 105, 117, 105, 0, 121, 106, 101, 0, 105, 97, 105, 0, 105, 197, 179, 0, 105, 117, 115, 0, 105, 115, 0,
+			105, 111, 0, 196, 175, 0, 105, 117, 0, 121, 106, 0, 121, 0, 7, 6, 18, 76, 105, 97, 109, 115, 0, 105, 97, 105, 115, 0, 105, 117,
+			111, 115, 0, 105, 97, 115, 0, 105, 117, 105, 0, 105, 196, 133, 0, 121, 106, 101, 0, 105, 97, 105, 0, 105, 197, 179, 0, 105, 117, 115,
+			0, 105, 111, 0, 105, 117, 0, 121, 106, 0, 121, 0, 7, 6, 18, 77, 117, 111, 115, 101, 0, 97, 109, 115, 0, 97, 105, 115, 0, 97,
+			115, 0, 117, 105, 0, 196, 133, 0, 97, 105, 0, 197, 179, 0, 117, 115, 0, 111, 0, 117, 0, 101, 0, 7, 6, 18, 78, 111, 109, 105,
+			115, 0, 111, 106, 101, 0, 111, 109, 115, 0, 111, 115, 101, 0, 111, 115, 0, 97, 105, 0, 196, 133, 0, 111, 106, 0, 111, 115, 0, 197,
+			179, 0, 97, 115, 0, 97, 0, 7, 6, 18, 79, 196, 151, 109, 105, 115, 0, 196, 151, 106, 101, 0, 196, 151, 109, 115, 0, 196, 151, 115,
+			101, 0, 196, 151, 115, 0, 196, 151, 106, 0, 105, 197, 179, 0, 196, 151, 109, 0, 196, 151, 0, 101, 105, 0, 196, 153, 0, 101, 0, 7,
+			6, 18, 86, 196, 141, 0, 116, 0, 7, 6, 18, 87, 100, 197, 190, 0, 100, 0, 7, 6, 196, 133, 0, 3, 109, 0, 7, 6, 196, 141,
+			0, 3, 76, 0, 2, 18, 71, 3, 78, 0, 7, 6, 196, 151, 0, 4, 3, 112, 0, 8, 112, 111, 107, 2, 196, 141, 105, 18, 78, 32,
+			0, 4, 1, 21, 2, 106, 18, 77, 32, 3, 112, 8, 0, 1, 21, 2, 106, 18, 78, 32, 0, 1, 21, 2, 110, 18, 77, 32, 0, 1,
+			21, 2, 110, 18, 79, 32, 0, 1, 21, 2, 196, 141, 105, 18, 78, 32, 0, 7, 6, 196, 153, 0, 3, 113, 0, 7, 6, 196, 175, 0,
+			3, 115, 0, 7, 6, 197, 161, 0, 2, 18, 66, 3, 90, 0, 4, 3, 91, 0, 197, 161, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3,
+			97, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 197, 171, 0, 4, 1, 21, 2, 107, 197, 161, 18, 86, 18, 75, 32, 3,
+			118, 8, 40, 0, 1, 21, 2, 107, 197, 161, 18, 86, 18, 79, 32, 0, 3, 119, 0, 7, 6, 197, 179, 0, 3, 119, 0, 7, 6, 197,
+			190, 0, 115, 3, 89, 0, 4, 3, 90, 0, 197, 190, 0, 4, 2, 18, 67, 3, 91, 0, 2, 32, 0, 197, 161, 0, 4, 2, 17, 67,
+			17, 67, 18, 71, 3, 96, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 97, 0, 4, 3, 35, 0, 2, 105, 122, 109, 18,
+			77, 32, 0, 4, 105, 1, 21, 2, 18, 86, 18, 75, 32, 3, 35, 8, 114, 0, 105, 1, 21, 2, 18, 86, 18, 79, 32, 0, 4, 105,
+			1, 21, 2, 110, 18, 75, 32, 3, 108, 8, 37, 0, 105, 1, 21, 2, 110, 18, 79, 32, 0, 105, 8, 109, 101, 190, 197, 2, 18, 86,
+			18, 75, 32, 0, 105, 8, 109, 101, 190, 197, 2, 18, 86, 18, 79, 32, 0, 105, 8, 116, 161, 197, 107, 117, 97, 2, 18, 86, 18, 75,
+			32, 0, 105, 8, 116, 161, 197, 107, 117, 97, 2, 18, 86, 18, 79, 32, 0, 2, 105, 107, 18, 78, 32, 3, 109, 0, 4, 105, 2, 18,
+			69, 3, 121, 0, 105, 2, 32, 0, 4, 117, 2, 18, 69, 3, 123, 0, 117, 2, 32, 0, 7, 6, 98, 0, 2, 18, 67, 3, 48, 0,
+			3, 71, 0, 4, 2, 17, 67, 18, 71, 3, 71, 38, 0, 2, 18, 71, 0, 7, 6, 99, 0, 104, 3, 101, 0, 104, 2, 18, 71, 3,
+			101, 38, 0, 3, 133, 0, 2, 18, 71, 3, 133, 38, 0, 7, 6, 100, 0, 4, 2, 18, 67, 3, 47, 0, 2, 32, 0, 3, 72, 0,
+			122, 3, 72, 88, 0, 122, 2, 18, 71, 3, 72, 94, 0, 197, 190, 3, 75, 0, 197, 190, 2, 18, 71, 3, 77, 0, 2, 18, 71, 3,
+			135, 0, 7, 6, 101, 0, 3, 36, 0, 105, 1, 21, 2, 118, 18, 78, 32, 3, 36, 8, 114, 0, 105, 3, 38, 122, 0, 7, 6, 102,
+			0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 18, 67, 3, 49, 0, 2, 32, 0, 4, 3, 81, 0, 103, 0, 7, 6, 104, 0, 3, 107,
+			0, 7, 6, 105, 0, 97, 3, 36, 0, 3, 37, 0, 4, 97, 1, 99, 2, 99, 105, 106, 18, 78, 32, 3, 37, 57, 35, 0, 97, 1,
+			99, 2, 108, 18, 77, 32, 0, 2, 17, 65, 3, 38, 0, 4, 1, 97, 2, 107, 18, 78, 32, 3, 57, 37, 0, 1, 97, 2, 122, 109,
+			18, 77, 32, 0, 1, 111, 2, 107, 18, 78, 32, 0, 4, 101, 2, 197, 161, 107, 3, 57, 127, 0, 101, 8, 2, 118, 0, 101, 8, 2,
+			197, 161, 109, 0, 101, 1, 21, 2, 110, 18, 78, 32, 3, 114, 8, 36, 0, 4, 101, 3, 127, 0, 101, 8, 116, 117, 97, 106, 2, 110,
+			18, 78, 32, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 4, 3, 49, 0, 107, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3,
+			49, 38, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 2, 18, 66, 3, 81, 0, 7, 6, 108, 0, 3, 55, 0, 4, 2, 17, 67,
+			17, 67, 18, 71, 3, 137, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 0, 4, 2, 17,
+			67, 17, 67, 18, 71, 3, 65, 38, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 110, 0, 4, 3, 50, 0, 110, 0, 4,
+			2, 17, 67, 17, 67, 18, 71, 3, 136, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 111, 0, 1, 102, 2, 110, 18, 77,
+			32, 3, 116, 8, 0, 3, 117, 0, 2, 107, 197, 161, 110, 18, 75, 32, 3, 117, 8, 0, 7, 6, 112, 0, 4, 3, 48, 0, 112, 0,
+			4, 2, 17, 67, 17, 67, 18, 71, 3, 48, 38, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 2, 18, 66, 3, 71, 0, 7, 6,
+			113, 0, 2, 18, 71, 3, 49, 38, 84, 38, 0, 3, 49, 84, 0, 7, 6, 114, 0, 4, 3, 34, 0, 114, 0, 4, 2, 17, 67, 17,
+			67, 18, 71, 3, 34, 38, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7, 6, 115, 0, 2, 18, 66, 3, 88, 0, 4, 3, 89,
+			0, 115, 0, 197, 161, 3, 91, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 95, 0, 2, 17, 67, 18, 71, 0, 2, 18, 71, 0, 7,
+			6, 116, 0, 4, 3, 47, 0, 116, 0, 2, 18, 66, 3, 72, 0, 4, 2, 17, 67, 17, 67, 18, 71, 3, 134, 0, 2, 17, 67, 18,
+			71, 0, 2, 18, 71, 0, 7, 6, 117, 0, 3, 40, 0, 111, 1, 21, 2, 109, 101, 110, 18, 79, 32, 3, 118, 8, 39, 0, 111, 3,
+			124, 0, 105, 3, 126, 0, 7, 6, 118, 0, 3, 84, 0, 2, 18, 71, 3, 84, 38, 0, 7, 6, 119, 0, 3, 84, 0, 2, 18, 71,
+			3, 84, 38, 0, 7, 6, 120, 0, 2, 18, 71, 3, 49, 38, 95, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 115, 0, 4, 1, 21,
+			2, 18, 86, 18, 75, 32, 3, 115, 8, 0, 1, 21, 2, 18, 86, 18, 79, 32, 0, 1, 21, 2, 98, 18, 78, 32, 0, 1, 21, 2,
+			98, 18, 79, 32, 0, 1, 109, 117, 21, 2, 110, 18, 77, 32, 0, 1, 110, 101, 21, 2, 98, 18, 79, 32, 0, 8, 112, 97, 2, 21,
+			0, 7, 6, 122, 0, 3, 88, 0, 2, 18, 67, 3, 89, 0, 2, 100, 197, 190, 3, 90, 0, 2, 196, 141, 3, 91, 0, 4, 2, 17,
+			67, 18, 71, 3, 94, 0, 2, 18, 71, 0, 7, 6, 206, 0, 177, 3, 6, 35, 55, 83, 35, 10, 0, 181, 3, 6, 36, 48, 95, 37,
+			55, 39, 50, 10, 0, 191, 3, 6, 39, 65, 38, 37, 49, 34, 39, 50, 10, 0, 183, 3, 36, 47, 35, 10, 0, 186, 3, 49, 6, 35,
+			48, 35, 10, 0, 190, 3, 49, 95, 6, 37, 10, 0, 185, 3, 57, 39, 47, 35, 10, 0, 188, 3, 65, 38, 6, 37, 10, 0, 178, 3,
+			71, 38, 6, 36, 47, 35, 10, 0, 179, 3, 81, 6, 109, 65, 35, 10, 0, 182, 3, 94, 6, 36, 47, 35, 10, 0, 184, 3, 134, 36,
+			47, 35, 10, 0, 180, 3, 135, 6, 36, 55, 47, 35, 10, 0, 189, 3, 136, 6, 37, 10, 0, 187, 3, 137, 6, 35, 65, 72, 35, 10,
+			0, 7, 6, 207, 0, 133, 3, 6, 37, 48, 95, 37, 55, 39, 50, 10, 0, 129, 3, 34, 6, 39, 10, 0, 137, 3, 39, 65, 6, 36,
+			81, 35, 10, 0, 132, 3, 47, 6, 128, 10, 0, 128, 3, 48, 38, 6, 115, 10, 0, 136, 3, 48, 95, 6, 37, 10, 0, 134, 3, 83,
+			38, 6, 37, 10, 0, 4, 130, 3, 95, 6, 37, 81, 65, 35, 10, 0, 131, 0, 135, 3, 101, 38, 6, 37, 10, 0, 7, 6, 0, 4,
+			33, 2, 33, 3, 0, 4, 35, 1, 35, 3, 0, 4, 39, 3, 0, 4, 46, 1, 46, 3, 0, 58, 1, 32, 15, 2, 32, 15, 15, 32,
+			3, 0, 46, 2, 46, 3, 9, 0, 46, 3, 9, 47, 6, 35, 91, 49, 35, 89, 0, 33, 3, 9, 91, 123, 49, 47, 6, 118, 49, 35,
+			89, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 35, 1, 35, 35, 2, 32, 3,
+			24, 0, 60, 61, 3, 65, 35, 96, 6, 123, 10, 35, 34, 71, 6, 108, 10, 55, 115, 81, 40, 0, 45, 8, 32, 2, 32, 15, 3, 65,
+			37, 50, 40, 89, 0, 62, 61, 3, 72, 123, 81, 38, 6, 123, 10, 35, 34, 71, 6, 108, 10, 137, 115, 81, 40, 0, 58, 3, 135, 84,
+			38, 6, 114, 47, 35, 97, 49, 38, 37, 89, 0, 33, 61, 3, 136, 36, 137, 6, 115, 81, 40, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts38 = FileInMemory_createWithData (5184, reinterpret_cast<const char *> (&espeakdata_dicts38_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/lt_dict", 
 			U"lt");
-		my addItem_move (espeakdata_dicts41.move());
+		Collection_addItem (me.peek(), espeakdata_dicts38.transfer());
 
-		static unsigned char espeakdata_dicts42_data[12294] = {
-			0, 4, 0, 0, 38, 18, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 7, 196, 5, 0, 75, 212, 72, 5, 194, 5, 0,
-			72, 0, 20, 67, 76, 16, 128, 89, 35, 71, 122, 72, 52, 108, 71, 35, 0, 44, 81, 98, 97, 32, 0, 0, 6, 65, 8, 71, 36, 0,
-			0, 0, 0, 0, 7, 196, 77, 64, 82, 64, 72, 6, 65, 12, 124, 36, 0, 0, 0, 0, 10, 199, 36, 226, 207, 28, 226, 84, 60, 15,
-			0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 14, 4, 95, 100, 112, 116, 49, 6, 39, 65, 35, 124, 10, 0, 0, 5, 65, 20, 36, 0,
-			0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 0, 6, 195, 12, 21, 82, 72, 0, 0, 12, 67, 76, 176, 84, 89, 49,
-			35, 47, 108, 47, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 9, 198, 76, 243, 6, 20, 78, 79, 15, 9, 198, 76, 243, 6, 20,
-			78, 79, 66, 0, 10, 1, 36, 72, 39, 55, 113, 52, 37, 0, 5, 65, 36, 37, 0, 0, 13, 1, 37, 48, 52, 39, 124, 36, 50, 47,
-			37, 0, 27, 0, 6, 1, 38, 40, 50, 0, 8, 1, 38, 11, 2, 40, 50, 0, 0, 0, 6, 65, 40, 57, 36, 0, 0, 0, 6, 195,
-			28, 20, 128, 72, 14, 1, 42, 88, 84, 116, 81, 88, 50, 108, 47, 36, 0, 27, 0, 7, 196, 9, 37, 78, 60, 15, 7, 196, 9, 32,
-			86, 60, 15, 9, 198, 64, 21, 137, 76, 19, 64, 66, 10, 1, 43, 48, 55, 40, 89, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0,
-			0, 19, 67, 76, 21, 128, 89, 35, 84, 122, 50, 108, 71, 35, 0, 44, 81, 98, 97, 32, 0, 15, 1, 47, 89, 55, 108, 48, 89, 84,
-			108, 47, 51, 35, 0, 27, 0, 13, 4, 95, 100, 105, 97, 6, 40, 65, 55, 118, 124, 0, 6, 65, 48, 36, 55, 0, 0, 9, 66, 49,
-			0, 55, 35, 48, 35, 0, 0, 0, 0, 6, 65, 52, 36, 65, 0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 5,
-			65, 60, 119, 0, 0, 13, 1, 61, 10, 84, 122, 50, 113, 72, 89, 10, 0, 27, 0, 0, 0, 7, 1, 64, 35, 47, 9, 0, 6, 65,
-			64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 115, 0, 0, 0, 0, 0, 7, 65, 72, 36, 51, 52, 0, 0, 5, 194, 5, 32,
-			72, 0, 0, 13, 4, 95, 100, 111, 116, 48, 6, 40, 50, 49, 124, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 7, 196, 64, 19,
-			142, 60, 15, 11, 195, 44, 21, 84, 66, 81, 107, 196, 129, 32, 11, 195, 44, 21, 84, 66, 81, 99, 105, 107, 32, 0, 6, 65, 80, 47,
-			109, 0, 0, 0, 0, 12, 137, 107, 111, 109, 117, 110, 105, 107, 196, 147, 68, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88,
-			84, 36, 0, 0, 0, 0, 0, 25, 1, 92, 6, 35, 48, 81, 52, 122, 88, 47, 113, 15, 89, 55, 6, 108, 48, 89, 84, 108, 47, 51,
-			35, 0, 13, 65, 92, 72, 40, 71, 40, 55, 47, 6, 84, 36, 0, 0, 0, 0, 0, 18, 4, 95, 49, 77, 49, 47, 6, 115, 49, 89,
-			47, 119, 12, 47, 37, 89, 0, 7, 65, 96, 37, 49, 89, 0, 0, 15, 4, 95, 49, 77, 50, 65, 6, 37, 55, 57, 114, 50, 89, 0,
-			0, 0, 0, 9, 65, 100, 37, 81, 52, 36, 49, 0, 0, 0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 0, 13, 67, 36, 84, 203, 122,
-			89, 49, 116, 47, 119, 47, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 8, 83, 132, 228, 240, 15, 0, 0, 0, 0, 0, 14, 4, 95,
-			48, 67, 111, 89, 6, 37, 65, 47, 116, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55,
-			72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 100, 196, 147, 196, 188, 72, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 33, 81, 207, 15, 7, 195, 8, 85, 0, 72, 8, 0, 0, 0, 0, 0, 7, 196, 64, 148, 141, 76, 72, 0,
-			0, 0, 0, 0, 0, 7, 132, 112, 196, 129, 114, 72, 0, 0, 0, 0, 0, 0, 0, 10, 199, 52, 144, 210, 61, 51, 198, 80, 15, 9,
-			198, 64, 19, 1, 36, 176, 77, 66, 0, 12, 66, 17, 32, 72, 39, 49, 47, 114, 52, 89, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64,
-			144, 78, 60, 66, 0, 0, 0, 9, 198, 5, 85, 15, 52, 245, 15, 15, 0, 9, 4, 95, 111, 114, 100, 116, 89, 0, 0, 0, 14, 4,
-			95, 109, 99, 110, 65, 6, 35, 49, 52, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 64, 145, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 21, 48, 72, 0,
-			0, 8, 197, 40, 80, 139, 85, 32, 66, 0, 0, 0, 6, 195, 84, 227, 192, 15, 6, 195, 104, 83, 64, 72, 0, 0, 0, 0, 0, 16,
-			3, 95, 35, 57, 47, 35, 71, 40, 55, 35, 47, 114, 52, 89, 0, 0, 0, 0, 8, 197, 76, 243, 133, 72, 16, 15, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 65, 52, 147, 13, 0, 0, 8, 197, 8, 243, 5, 72, 240, 15, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 112, 196, 147, 99, 72, 0, 0, 0, 0, 15, 67, 24, 80, 146, 83, 36, 71, 52, 40, 113,
-			52, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 118, 105, 197, 134, 197, 161, 72, 0, 0, 0, 0, 0, 0, 8, 197, 44, 22,
-			137, 56, 240, 15, 8, 197, 36, 225, 9, 28, 240, 15, 8, 197, 24, 144, 83, 44, 240, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 64, 20, 128, 72, 0, 0, 6, 195, 4, 227, 143, 15, 7, 196, 56, 82, 193, 16, 66, 0, 0, 0,
-			0, 0, 11, 66, 17, 160, 72, 88, 37, 65, 37, 89, 0, 8, 66, 17, 160, 72, 88, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			11, 195, 56, 86, 128, 66, 81, 107, 97, 100, 32, 0, 0, 0, 0, 6, 195, 8, 86, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			9, 198, 49, 83, 66, 4, 115, 192, 15, 0, 0, 0, 0, 0, 9, 198, 80, 146, 214, 36, 83, 128, 66, 9, 198, 4, 150, 150, 36, 83,
-			128, 66, 0, 0, 0, 0, 0, 0, 12, 67, 64, 17, 192, 48, 35, 81, 35, 89, 124, 0, 9, 3, 226, 130, 172, 117, 52, 114, 0, 9,
-			3, 226, 130, 172, 117, 51, 39, 0, 0, 0, 0, 0, 13, 3, 226, 130, 168, 52, 115, 48, 108, 57, 35, 89, 0, 0, 0, 0, 0, 12,
-			67, 64, 18, 192, 48, 35, 49, 113, 48, 36, 0, 0, 0, 7, 196, 80, 84, 1, 80, 66, 14, 4, 95, 111, 103, 111, 6, 39, 81, 39,
-			50, 36, 49, 0, 0, 0, 0, 10, 135, 103, 97, 108, 105, 102, 196, 147, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76,
-			19, 66, 60, 15, 0, 0, 9, 198, 52, 17, 83, 81, 35, 192, 15, 9, 198, 52, 17, 83, 81, 35, 192, 66, 0, 0, 0, 0, 0, 0,
-			13, 4, 95, 98, 114, 118, 6, 108, 89, 40, 65, 35, 0, 0, 0, 0, 0, 19, 4, 95, 97, 99, 50, 72, 6, 40, 71, 40, 55, 124,
-			35, 49, 57, 115, 47, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 24, 245, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
-			196, 19, 149, 68, 60, 15, 0, 0, 0, 7, 196, 81, 34, 75, 60, 15, 0, 17, 3, 95, 51, 88, 47, 51, 6, 108, 89, 72, 36, 89,
-			65, 37, 47, 0, 0, 13, 3, 95, 48, 67, 89, 6, 37, 65, 47, 37, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49,
-			67, 89, 6, 37, 65, 124, 0, 0, 0, 0, 0, 8, 197, 5, 37, 137, 20, 224, 66, 0, 0, 19, 3, 95, 49, 57, 72, 6, 36, 84,
-			37, 67, 48, 35, 72, 89, 65, 37, 47, 0, 0, 19, 3, 95, 49, 56, 6, 35, 89, 47, 119, 67, 48, 35, 72, 89, 65, 37, 47, 0,
-			0, 0, 12, 67, 48, 21, 0, 55, 35, 47, 108, 67, 40, 0, 0, 0, 0, 0, 12, 3, 226, 136, 146, 65, 108, 50, 40, 89, 89, 0,
-			0, 17, 3, 95, 49, 49, 84, 6, 122, 50, 48, 35, 72, 89, 65, 37, 47, 0, 0, 13, 3, 95, 49, 48, 72, 6, 36, 89, 65, 37,
-			47, 0, 0, 18, 3, 95, 49, 51, 47, 51, 6, 108, 89, 48, 35, 72, 89, 65, 37, 47, 0, 0, 17, 3, 95, 49, 50, 72, 6, 37,
-			84, 48, 35, 72, 89, 65, 37, 47, 0, 0, 17, 3, 95, 49, 53, 48, 6, 122, 124, 48, 35, 72, 89, 65, 37, 47, 0, 0, 18, 3,
-			95, 49, 52, 76, 6, 36, 47, 52, 48, 35, 72, 89, 65, 37, 47, 0, 0, 20, 3, 95, 49, 55, 89, 6, 36, 48, 47, 37, 67, 48,
-			35, 72, 89, 65, 37, 47, 0, 0, 17, 3, 95, 49, 54, 89, 6, 36, 91, 48, 35, 72, 89, 65, 37, 47, 0, 0, 7, 196, 16, 147,
-			135, 60, 15, 0, 19, 3, 95, 55, 88, 89, 6, 36, 48, 47, 37, 67, 72, 36, 89, 65, 37, 47, 0, 0, 0, 6, 195, 88, 85, 15,
-			15, 6, 195, 16, 84, 15, 15, 0, 0, 9, 198, 64, 20, 9, 48, 224, 77, 66, 0, 13, 3, 95, 49, 111, 48, 6, 37, 52, 65, 116,
-			89, 0, 0, 0, 8, 197, 40, 80, 139, 4, 64, 66, 0, 0, 0, 0, 8, 197, 65, 34, 69, 47, 80, 72, 0, 13, 4, 95, 97, 99,
-			117, 6, 35, 49, 57, 115, 47, 0, 0, 12, 3, 95, 50, 111, 6, 39, 47, 52, 116, 89, 0, 0, 0, 7, 196, 9, 37, 84, 60, 15,
-			17, 5, 112, 114, 45, 107, 115, 48, 52, 122, 49, 91, 50, 122, 49, 89, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 111, 47, 51,
-			6, 36, 91, 116, 89, 0, 0, 0, 10, 66, 49, 48, 55, 35, 47, 37, 0, 41, 0, 16, 3, 95, 50, 88, 72, 6, 37, 84, 72, 36,
-			89, 65, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 63, 63, 52, 35, 49, 89, 47, 88, 108,
-			65, 36, 0, 13, 3, 95, 53, 111, 48, 6, 122, 49, 47, 116, 89, 0, 0, 0, 14, 67, 40, 19, 150, 57, 35, 50, 84, 113, 52, 37,
-			89, 0, 5, 194, 37, 160, 72, 0, 17, 3, 95, 52, 88, 76, 6, 36, 47, 52, 72, 36, 89, 65, 37, 47, 0, 0, 0, 0, 0, 0,
-			13, 3, 95, 54, 111, 89, 6, 36, 89, 47, 116, 89, 0, 0, 0, 0, 17, 3, 95, 53, 88, 48, 6, 122, 124, 72, 4, 36, 89, 65,
-			37, 47, 0, 0, 0, 12, 4, 95, 114, 110, 103, 52, 6, 37, 50, 81, 0, 0, 0, 0, 15, 3, 95, 55, 111, 89, 6, 36, 48, 47,
-			108, 47, 116, 89, 0, 0, 0, 5, 194, 49, 80, 13, 0, 6, 195, 60, 67, 192, 15, 16, 3, 95, 54, 88, 89, 6, 36, 91, 72, 36,
-			89, 65, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 72, 85, 18, 60, 15, 0, 13, 67, 5, 4, 128, 35, 48, 52, 108, 55,
-			37, 89, 0, 0, 0, 0, 0, 0, 14, 3, 95, 57, 111, 72, 6, 36, 84, 108, 47, 116, 89, 0, 0, 0, 10, 66, 57, 32, 50, 40,
-			65, 40, 52, 0, 0, 18, 3, 95, 56, 88, 6, 35, 89, 47, 119, 67, 72, 36, 89, 65, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 18, 3, 95, 57, 88, 72, 6, 36, 84, 37, 67, 72, 36, 89, 65, 37, 47, 0, 0, 0, 0, 0, 0, 13, 4, 106, 197, 171, 108,
-			57, 115, 55, 37, 57, 89, 0, 0, 0, 13, 4, 106, 197, 171, 110, 57, 115, 50, 37, 57, 89, 0, 10, 3, 95, 63, 65, 71, 40, 52,
-			124, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 52, 111, 76, 6, 36, 47, 40, 51, 47, 116, 89, 0, 0, 13, 4, 95, 115, 116, 107,
-			89, 47, 34, 6, 114, 49, 0, 0, 0, 11, 3, 226, 153, 175, 72, 122, 12, 88, 89, 0, 0, 0, 12, 3, 226, 153, 173, 71, 36, 65,
-			114, 55, 89, 0, 0, 0, 0, 0, 0, 0, 12, 3, 97, 47, 115, 35, 49, 80, 37, 57, 40, 0, 0, 7, 132, 106, 197, 171, 115, 72,
-			0, 0, 7, 66, 19, 144, 75, 109, 0, 0, 0, 0, 0, 0, 5, 194, 64, 16, 72, 0, 12, 67, 64, 17, 0, 48, 35, 72, 119, 65,
-			36, 0, 0, 0, 0, 10, 135, 112, 111, 114, 116, 106, 196, 147, 66, 0, 12, 4, 197, 161, 196, 183, 91, 80, 37, 52, 35, 0, 0, 0,
-			0, 5, 194, 57, 80, 72, 19, 4, 95, 99, 105, 114, 72, 6, 37, 35, 49, 52, 37, 47, 37, 89, 49, 113, 0, 0, 6, 195, 61, 67,
-			192, 15, 21, 67, 52, 147, 128, 65, 37, 50, 37, 89, 47, 52, 37, 57, 35, 0, 44, 81, 106, 97, 32, 14, 67, 52, 147, 128, 65, 37,
-			50, 37, 65, 40, 65, 89, 0, 0, 0, 0, 14, 3, 95, 56, 111, 6, 35, 89, 47, 39, 47, 116, 89, 0, 15, 4, 95, 48, 77, 50,
-			65, 6, 37, 55, 57, 114, 50, 37, 0, 0, 0, 0, 8, 197, 72, 242, 207, 44, 240, 15, 17, 4, 95, 48, 77, 49, 47, 6, 115, 49,
-			89, 47, 119, 12, 91, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 48, 16, 129, 16, 72, 0, 0, 16, 4, 95, 108, 105, 103,
-			55, 6, 37, 81, 35, 47, 115, 52, 35, 0, 0, 0, 0, 0, 15, 67, 56, 245, 128, 50, 39, 84, 36, 65, 71, 52, 37, 89, 0, 0,
-			7, 196, 52, 85, 18, 60, 15, 0, 0, 0, 0, 0, 0, 10, 135, 97, 116, 101, 108, 106, 196, 147, 67, 0, 6, 195, 4, 150, 128, 72,
-			0, 0, 0, 0, 0, 0, 8, 197, 16, 243, 73, 56, 240, 15, 0, 0, 0, 0, 9, 134, 118, 105, 197, 134, 97, 115, 72, 0, 13, 67,
-			48, 21, 22, 55, 35, 47, 84, 122, 91, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 108, 196, 171, 100,
-			122, 72, 0, 14, 4, 95, 99, 101, 100, 89, 6, 36, 72, 108, 55, 35, 0, 0, 0, 0, 0, 6, 195, 65, 33, 84, 72, 0, 0, 0,
-			0, 0, 0, 0, 11, 136, 102, 114, 105, 107, 97, 115, 196, 147, 67, 0, 12, 4, 95, 99, 97, 112, 55, 122, 55, 116, 89, 0, 0, 0,
-			0, 0, 0, 0, 0, 12, 3, 95, 194, 180, 35, 49, 124, 36, 50, 124, 0, 0, 0, 0, 0, 14, 67, 56, 244, 192, 50, 119, 89, 118,
-			49, 40, 65, 89, 0, 0, 0, 0, 0, 6, 195, 72, 242, 211, 15, 6, 65, 188, 76, 36, 0, 0, 0, 0, 14, 3, 95, 194, 171, 48,
-			6, 109, 72, 37, 67, 35, 89, 0, 0, 16, 5, 100, 122, 196, 171, 118, 72, 88, 108, 84, 119, 57, 37, 89, 0, 0, 0, 27, 3, 95,
-			194, 166, 89, 6, 35, 72, 35, 55, 108, 47, 35, 15, 89, 47, 6, 113, 84, 89, 84, 108, 47, 52, 35, 0, 0, 0, 0, 0, 7, 196,
-			72, 19, 175, 60, 15, 0, 0, 6, 195, 48, 81, 207, 15, 0, 0, 0, 10, 135, 107, 97, 110, 97, 112, 196, 147, 67, 0, 0, 0, 7,
-			196, 188, 83, 12, 60, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
-			73, 2, 64, 13, 0, 12, 137, 116, 117, 114, 112, 114, 101, 116, 196, 171, 66, 0, 0, 0, 14, 67, 60, 181, 0, 39, 49, 47, 114, 71,
-			52, 37, 89, 0, 11, 136, 100, 101, 107, 111, 108, 116, 196, 147, 67, 0, 0, 0, 28, 3, 95, 194, 191, 6, 35, 48, 81, 52, 122, 88,
-			47, 113, 15, 57, 6, 118, 47, 113, 57, 40, 65, 88, 108, 65, 36, 0, 0, 0, 0, 0, 19, 3, 95, 194, 187, 48, 6, 109, 72, 37,
-			67, 35, 89, 15, 124, 6, 122, 47, 0, 0, 0, 0, 0, 9, 134, 116, 196, 129, 112, 97, 116, 66, 0, 0, 0, 0, 12, 4, 95, 103,
-			114, 118, 81, 52, 6, 113, 84, 0, 0, 6, 2, 196, 129, 113, 0, 0, 7, 2, 197, 134, 36, 67, 0, 0, 8, 2, 195, 151, 52, 117,
-			88, 0, 0, 9, 66, 77, 64, 89, 35, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 167, 89, 36, 49, 124, 37, 57, 35,
-			0, 0, 5, 194, 56, 240, 72, 0, 12, 67, 56, 241, 0, 50, 119, 72, 35, 61, 35, 0, 10, 2, 194, 165, 57, 109, 50, 35, 89, 0,
-			0, 10, 2, 194, 162, 124, 36, 50, 47, 37, 0, 0, 14, 4, 98, 45, 98, 97, 71, 122, 72, 52, 108, 71, 35, 0, 13, 2, 194, 163,
-			65, 113, 52, 124, 37, 67, 35, 89, 0, 6, 2, 196, 147, 109, 0, 0, 0, 0, 14, 2, 194, 174, 52, 36, 79, 37, 89, 47, 52, 109,
-			124, 0, 0, 7, 2, 197, 151, 36, 34, 0, 0, 0, 0, 0, 0, 0, 16, 2, 194, 169, 118, 47, 114, 52, 47, 122, 89, 108, 71, 35,
-			89, 0, 0, 14, 2, 194, 182, 48, 35, 52, 35, 81, 52, 113, 83, 89, 0, 0, 0, 0, 10, 2, 194, 181, 65, 37, 49, 51, 114, 0,
-			0, 0, 7, 2, 196, 163, 79, 36, 0, 0, 10, 2, 194, 176, 81, 52, 113, 72, 37, 0, 0, 15, 2, 194, 177, 48, 55, 40, 89, 65,
-			108, 50, 40, 89, 89, 0, 0, 23, 2, 194, 190, 47, 52, 6, 108, 89, 15, 124, 4, 36, 47, 40, 52, 47, 72, 35, 61, 35, 89, 0,
-			0, 10, 2, 195, 183, 72, 35, 55, 108, 124, 0, 0, 11, 66, 77, 96, 89, 84, 109, 47, 116, 89, 0, 17, 2, 194, 188, 124, 6, 36,
-			47, 40, 52, 47, 72, 4, 35, 61, 35, 0, 0, 9, 2, 194, 189, 48, 40, 89, 36, 0, 0, 7, 196, 24, 16, 212, 60, 15, 0, 6,
-			2, 196, 171, 108, 0, 0, 0, 0, 0, 7, 2, 196, 183, 80, 36, 0, 0, 0, 0, 0, 6, 2, 197, 171, 115, 0, 0, 0, 7, 195,
-			88, 18, 64, 72, 8, 0, 0, 0, 8, 197, 81, 84, 144, 5, 64, 66, 5, 194, 81, 80, 72, 7, 2, 196, 188, 36, 61, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 8, 197, 4, 64, 68, 228, 240, 15, 8, 197, 4, 64, 68, 228, 240, 66, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 6, 195, 88, 148, 147, 72, 0, 0, 0, 0, 0, 10, 199, 21, 52, 5, 72, 19, 148, 60, 15, 0, 0, 6, 195, 36, 82, 245, 72,
-			0, 0, 16, 67, 76, 84, 20, 89, 36, 48, 47, 36, 65, 71, 52, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 4,
-			146, 201, 16, 240, 15, 0, 0, 0, 0, 0, 6, 195, 52, 245, 15, 15, 6, 195, 52, 245, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 132, 109, 196, 147, 115, 72, 0, 0, 0, 0, 0, 0, 12, 67, 72, 18, 128, 52, 35, 57, 119, 50, 89, 0, 0,
-			0, 0, 0, 13, 67, 8, 146, 128, 71, 37, 57, 40, 91, 116, 89, 0, 12, 2, 95, 35, 34, 36, 89, 47, 108, 47, 36, 0, 0, 12,
-			2, 95, 34, 48, 109, 72, 37, 67, 35, 89, 0, 0, 16, 2, 95, 33, 37, 88, 89, 118, 49, 40, 65, 88, 108, 65, 36, 0, 0, 9,
-			198, 64, 21, 12, 4, 32, 78, 66, 0, 14, 2, 95, 39, 35, 48, 39, 89, 47, 34, 114, 83, 89, 0, 0, 0, 0, 0, 0, 0, 16,
-			2, 95, 41, 6, 122, 49, 35, 84, 35, 15, 124, 6, 122, 47, 0, 0, 11, 2, 95, 40, 6, 122, 49, 35, 84, 35, 0, 0, 0, 10,
-			2, 95, 46, 48, 40, 50, 49, 124, 0, 0, 11, 2, 95, 45, 65, 108, 50, 40, 89, 89, 0, 0, 10, 2, 95, 44, 49, 39, 65, 35,
-			124, 0, 0, 9, 2, 95, 51, 47, 51, 108, 89, 0, 0, 10, 2, 95, 50, 72, 6, 37, 84, 37, 0, 0, 10, 2, 95, 49, 84, 6,
-			122, 50, 89, 0, 0, 7, 196, 32, 19, 12, 60, 15, 11, 2, 95, 48, 50, 6, 40, 55, 55, 36, 0, 0, 13, 2, 95, 55, 89, 6,
-			36, 48, 47, 37, 67, 37, 0, 0, 10, 2, 95, 54, 89, 6, 36, 91, 37, 0, 0, 11, 136, 112, 105, 97, 110, 196, 171, 110, 111, 15,
-			10, 2, 95, 53, 48, 6, 122, 124, 37, 0, 0, 6, 195, 228, 16, 143, 15, 11, 2, 95, 52, 76, 6, 36, 47, 52, 37, 0, 0, 13,
-			2, 95, 59, 89, 36, 65, 37, 49, 114, 55, 89, 0, 0, 9, 2, 95, 58, 49, 114, 55, 89, 0, 0, 12, 2, 95, 57, 72, 6, 36,
-			84, 37, 67, 37, 0, 0, 12, 2, 95, 56, 6, 35, 89, 47, 119, 67, 37, 0, 0, 16, 2, 95, 63, 57, 118, 47, 113, 57, 40, 65,
-			88, 108, 65, 36, 0, 0, 17, 2, 95, 62, 55, 6, 122, 55, 113, 49, 89, 15, 48, 6, 35, 52, 0, 0, 0, 17, 2, 95, 60, 65,
-			6, 35, 88, 113, 49, 89, 15, 48, 6, 35, 52, 0, 0, 0, 0, 0, 7, 2, 95, 64, 35, 47, 0, 0, 0, 0, 0, 0, 8, 197,
-			44, 20, 212, 72, 240, 15, 0, 0, 0, 0, 0, 0, 6, 65, 212, 36, 91, 0, 0, 0, 15, 67, 16, 80, 192, 72, 36, 80, 36, 65,
-			71, 52, 37, 89, 0, 0, 0, 0, 5, 194, 85, 160, 72, 0, 0, 0, 0, 9, 198, 64, 20, 133, 80, 19, 64, 66, 0, 18, 2, 95,
-			91, 49, 84, 6, 35, 72, 52, 113, 47, 122, 49, 35, 84, 35, 0, 0, 0, 0, 15, 4, 95, 226, 128, 146, 72, 119, 65, 40, 88, 108,
-			65, 36, 0, 0, 20, 2, 95, 95, 48, 35, 89, 84, 108, 47, 52, 119, 57, 40, 65, 88, 108, 65, 36, 0, 0, 10, 2, 95, 94, 89,
-			35, 49, 50, 36, 0, 0, 23, 2, 95, 93, 49, 84, 6, 35, 72, 52, 113, 47, 122, 49, 35, 84, 35, 15, 124, 6, 122, 47, 0, 0,
-			27, 4, 95, 226, 128, 150, 72, 6, 40, 71, 40, 55, 124, 47, 113, 89, 47, 4, 113, 84, 89, 84, 108, 47, 52, 35, 0, 0, 15, 67,
-			24, 18, 192, 83, 35, 49, 40, 55, 47, 113, 47, 36, 0, 9, 134, 102, 111, 97, 106, 196, 147, 67, 0, 0, 0, 26, 2, 95, 96, 6,
-			35, 48, 81, 52, 122, 88, 47, 116, 89, 15, 6, 35, 48, 39, 89, 47, 52, 39, 83, 89, 0, 0, 0, 0, 0, 0, 0, 9, 198, 56,
-			84, 1, 72, 179, 192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76, 36, 49, 0, 0, 0,
-			0, 0, 0, 0, 16, 2, 95, 123, 83, 6, 37, 81, 115, 52, 122, 49, 35, 84, 35, 0, 0, 9, 198, 20, 208, 129, 72, 115, 192, 15,
-			0, 0, 0, 0, 10, 2, 95, 126, 47, 37, 55, 72, 36, 0, 0, 21, 2, 95, 125, 83, 6, 37, 81, 115, 52, 122, 49, 35, 84, 35,
-			15, 124, 6, 122, 47, 0, 0, 12, 137, 112, 114, 111, 116, 101, 197, 190, 196, 147, 67, 15, 2, 95, 124, 89, 47, 113, 84, 89, 84, 108,
-			47, 52, 35, 0, 0, 0, 0, 13, 138, 112, 97, 116, 105, 101, 197, 161, 196, 129, 109, 66, 0, 0, 0, 0, 0, 9, 198, 64, 17, 193,
-			48, 19, 64, 66, 0, 0, 0, 0, 6, 194, 84, 224, 72, 8, 0, 0, 0, 0, 0, 0, 0, 16, 67, 52, 18, 211, 65, 35, 49, 89,
-			37, 65, 113, 55, 116, 89, 0, 0, 7, 196, 44, 18, 193, 60, 15, 7, 196, 8, 147, 135, 60, 15, 7, 196, 44, 18, 193, 60, 66, 0,
-			0, 0, 0, 14, 4, 95, 35, 51, 50, 47, 40, 49, 91, 40, 65, 89, 0, 0, 0, 0, 0, 0, 7, 196, 56, 82, 213, 72, 66, 0,
-			0, 9, 198, 37, 67, 133, 45, 84, 128, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36,
-			229, 5, 72, 209, 67, 60, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 49, 101, 64, 13, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 8, 133, 118, 105, 197, 134, 97, 72, 0, 0, 8, 197, 80, 146, 208, 5, 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 44, 244, 53, 72, 0, 0, 0, 0, 8, 133, 118, 105, 197, 134, 105, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 65, 228, 90, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 81,
-			34, 77, 60, 15, 0, 0, 0, 0, 0, 0, 8, 197, 8, 19, 132, 228, 240, 15, 0, 0, 0, 13, 67, 64, 145, 77, 48, 122, 65, 109,
-			52, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 196, 56, 86, 137, 56, 67, 81, 107, 117, 114, 32, 0, 0, 6, 18, 66, 102,
-			0, 104, 0, 119, 0, 120, 0, 7, 6, 18, 67, 196, 141, 0, 196, 183, 0, 196, 188, 0, 197, 134, 0, 197, 190, 0, 7, 6, 18, 68,
-			105, 101, 109, 0, 97, 109, 0, 111, 115, 0, 196, 129, 0, 115, 0, 97, 0, 117, 0, 105, 0, 7, 6, 18, 69, 196, 129, 109, 0, 196,
-			129, 115, 0, 97, 115, 0, 97, 105, 0, 196, 129, 0, 117, 0, 97, 0, 7, 6, 18, 70, 105, 101, 109, 0, 105, 115, 0, 105, 109, 0,
-			111, 115, 0, 196, 171, 0, 105, 0, 7, 6, 18, 71, 196, 129, 0, 97, 0, 7, 6, 18, 72, 196, 147, 109, 0, 196, 147, 115, 0, 101,
-			115, 0, 101, 105, 0, 196, 147, 0, 101, 0, 105, 0, 117, 0, 7, 6, 18, 73, 97, 109, 105, 101, 115, 0, 97, 109, 196, 129, 115, 0,
-			97, 109, 97, 115, 0, 97, 109, 97, 0, 97, 109, 105, 0, 97, 109, 115, 0, 7, 6, 18, 74, 197, 161, 0, 115, 0, 7, 6, 18, 75,
-			116, 0, 100, 0, 106, 0, 7, 6, 18, 76, 105, 101, 109, 0, 111, 115, 0, 105, 0, 117, 0, 7, 6, 18, 77, 105, 101, 109, 0, 97,
-			109, 0, 111, 115, 0, 196, 129, 0, 115, 0, 7, 6, 18, 78, 196, 147, 0, 101, 0, 7, 6, 196, 129, 0, 3, 113, 0, 7, 6, 196,
-			141, 0, 3, 76, 0, 7, 6, 196, 147, 0, 3, 109, 0, 7, 6, 196, 163, 0, 3, 79, 0, 7, 6, 196, 171, 0, 3, 108, 0, 7,
-			6, 196, 183, 0, 3, 80, 0, 7, 6, 196, 188, 0, 4, 1, 107, 2, 117, 3, 55, 57, 0, 1, 107, 2, 117, 0, 3, 61, 0, 7,
-			6, 197, 134, 0, 3, 67, 0, 7, 6, 197, 141, 0, 3, 114, 0, 7, 6, 197, 151, 0, 3, 34, 0, 7, 6, 197, 161, 0, 3, 91,
-			0, 7, 6, 197, 171, 0, 3, 115, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 3, 35, 0, 112, 3, 35, 48, 0, 105,
-			3, 116, 0, 117, 3, 118, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 104, 3, 76, 0, 3, 124, 0, 4, 104, 1, 105, 114,
-			100, 105, 114, 102, 2, 115, 3, 124, 107, 0, 104, 1, 114, 101, 2, 101, 114, 99, 111, 103, 115, 0, 7, 6, 100, 0, 3, 72, 0, 7,
-			6, 101, 0, 3, 36, 0, 105, 3, 117, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 8, 2, 32, 3, 81, 35,
-			0, 1, 32, 32, 15, 15, 2, 32, 3, 81, 35, 72, 35, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 101, 3,
-			122, 0, 117, 3, 123, 0, 7, 6, 106, 0, 3, 57, 0, 196, 129, 8, 3, 57, 113, 0, 196, 129, 110, 111, 8, 3, 57, 113, 50, 119,
-			0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 108, 3, 55, 55, 12, 0, 7, 6, 109, 0, 3, 65, 0, 97, 122,
-			8, 3, 65, 35, 88, 0, 109, 3, 65, 65, 12, 0, 7, 6, 110, 0, 3, 50, 0, 110, 3, 50, 50, 12, 0, 4, 2, 103, 3, 68,
-			0, 2, 107, 0, 7, 6, 111, 0, 4, 1, 97, 2, 114, 3, 39, 0, 1, 97, 104, 0, 1, 98, 2, 98, 0, 1, 98, 2, 106, 18,
-			69, 32, 0, 1, 98, 2, 107, 115, 0, 1, 98, 2, 109, 98, 0, 1, 98, 2, 110, 196, 147, 0, 1, 98, 2, 114, 97, 107, 0, 1,
-			98, 2, 114, 97, 116, 0, 1, 98, 2, 114, 116, 0, 1, 98, 2, 116, 196, 129, 110, 0, 1, 98, 2, 196, 188, 197, 161, 0, 1, 98,
-			97, 2, 110, 0, 1, 98, 97, 2, 114, 0, 1, 98, 97, 107, 2, 116, 0, 1, 98, 97, 108, 2, 114, 97, 0, 1, 98, 97, 115, 2,
-			116, 0, 1, 98, 105, 114, 2, 110, 117, 107, 0, 1, 98, 109, 111, 0, 1, 98, 114, 97, 107, 0, 1, 98, 114, 117, 116, 0, 1, 99,
-			2, 108, 108, 0, 1, 99, 101, 109, 0, 1, 100, 2, 99, 0, 1, 100, 2, 100, 101, 107, 0, 1, 100, 2, 103, 109, 0, 1, 100, 2,
-			107, 117, 0, 1, 100, 2, 109, 105, 110, 0, 1, 100, 2, 109, 110, 18, 69, 32, 0, 1, 100, 2, 110, 107, 0, 1, 100, 2, 110, 110,
-			0, 1, 100, 2, 112, 0, 1, 100, 2, 114, 105, 0, 1, 100, 2, 116, 196, 129, 99, 0, 1, 100, 2, 116, 196, 147, 0, 1, 100, 2,
-			122, 0, 1, 100, 97, 2, 107, 0, 1, 100, 97, 2, 112, 0, 1, 100, 105, 101, 115, 112, 0, 1, 100, 105, 112, 115, 0, 1, 100, 110,
-			97, 109, 2, 108, 0, 1, 100, 111, 116, 114, 111, 2, 107, 0, 1, 101, 0, 1, 101, 163, 196, 0, 1, 102, 0, 1, 102, 2, 110, 111,
-			0, 1, 102, 2, 116, 111, 0, 1, 103, 2, 98, 101, 0, 1, 103, 2, 107, 0, 1, 103, 2, 110, 0, 1, 103, 2, 114, 105, 108, 0,
-			1, 103, 2, 116, 102, 0, 1, 103, 97, 2, 110, 196, 129, 0, 1, 103, 97, 102, 0, 1, 103, 105, 122, 2, 116, 18, 68, 32, 0, 1,
-			103, 110, 105, 114, 0, 1, 104, 0, 1, 105, 0, 1, 105, 2, 103, 0, 1, 105, 98, 0, 1, 105, 99, 2, 110, 0, 1, 105, 114, 116,
-			0, 1, 105, 115, 0, 1, 106, 2, 100, 101, 0, 1, 106, 2, 103, 0, 1, 106, 2, 110, 105, 0, 1, 106, 97, 109, 0, 1, 106, 102,
-			0, 1, 107, 2, 97, 108, 0, 1, 107, 2, 100, 101, 107, 0, 1, 107, 2, 100, 105, 102, 0, 1, 107, 2, 100, 196, 147, 0, 1, 107,
-			2, 101, 0, 1, 107, 2, 103, 110, 0, 1, 107, 2, 107, 111, 0, 1, 107, 2, 108, 97, 98, 0, 1, 107, 2, 108, 101, 0, 1, 107,
-			2, 108, 104, 0, 1, 107, 2, 108, 105, 0, 1, 107, 2, 108, 111, 0, 1, 107, 2, 108, 112, 0, 1, 107, 2, 108, 196, 129, 0, 1,
-			107, 2, 108, 196, 147, 0, 1, 107, 2, 108, 196, 171, 0, 1, 107, 2, 112, 101, 110, 0, 1, 107, 2, 112, 105, 106, 0, 1, 107, 2,
-			112, 117, 108, 196, 129, 0, 1, 107, 2, 112, 117, 108, 196, 147, 0, 1, 107, 2, 112, 196, 147, 17, 67, 0, 1, 107, 2, 112, 196, 147,
-			32, 0, 1, 107, 2, 114, 17, 65, 102, 0, 1, 107, 2, 114, 97, 0, 1, 107, 2, 114, 101, 106, 0, 1, 107, 2, 114, 101, 107, 0,
-			1, 107, 2, 114, 101, 108, 0, 1, 107, 2, 114, 101, 115, 0, 1, 107, 2, 114, 112, 0, 1, 107, 2, 114, 116, 0, 1, 107, 2, 114,
-			117, 109, 0, 1, 107, 2, 114, 117, 110, 0, 1, 107, 2, 114, 117, 112, 0, 1, 107, 2, 114, 118, 0, 1, 107, 2, 115, 105, 110, 0,
-			1, 107, 2, 115, 109, 0, 1, 107, 2, 115, 116, 196, 171, 109, 0, 1, 107, 2, 116, 97, 110, 0, 1, 107, 2, 116, 101, 0, 1, 107,
-			2, 116, 108, 0, 1, 107, 2, 116, 196, 147, 0, 1, 107, 2, 118, 0, 1, 107, 2, 196, 183, 0, 1, 107, 97, 2, 114, 0, 1, 107,
-			101, 100, 0, 1, 107, 105, 101, 108, 0, 1, 107, 105, 110, 0, 1, 107, 108, 97, 0, 1, 107, 111, 107, 2, 115, 0, 1, 107, 111, 115,
-			0, 1, 107, 111, 161, 197, 0, 1, 107, 114, 97, 110, 0, 1, 107, 114, 97, 115, 0, 1, 108, 2, 103, 97, 114, 0, 1, 108, 2, 106,
-			18, 71, 108, 0, 1, 108, 2, 107, 97, 108, 0, 1, 108, 2, 114, 110, 0, 1, 108, 2, 115, 106, 0, 1, 108, 2, 116, 18, 72, 32,
-			0, 1, 108, 2, 196, 163, 105, 122, 12, 0, 1, 108, 98, 2, 107, 0, 1, 108, 98, 2, 110, 0, 1, 108, 98, 2, 196, 183, 0, 1,
-			108, 101, 109, 2, 100, 114, 0, 1, 108, 101, 109, 2, 109, 0, 1, 108, 101, 118, 0, 1, 108, 102, 0, 1, 108, 103, 2, 98, 0, 1,
-			108, 103, 2, 109, 0, 1, 108, 103, 2, 114, 105, 0, 1, 108, 104, 2, 114, 111, 0, 1, 108, 105, 102, 0, 1, 108, 105, 112, 2, 116,
-			0, 1, 108, 107, 2, 122, 101, 116, 0, 1, 108, 111, 104, 0, 1, 108, 111, 107, 0, 1, 108, 112, 2, 109, 0, 1, 108, 112, 2, 118,
-			18, 68, 32, 0, 1, 108, 112, 115, 107, 101, 0, 1, 108, 115, 2, 118, 0, 1, 108, 115, 105, 100, 0, 1, 109, 2, 98, 0, 1, 109,
-			2, 100, 97, 108, 0, 1, 109, 2, 100, 101, 0, 1, 109, 2, 100, 105, 102, 0, 1, 109, 2, 100, 117, 0, 1, 109, 2, 100, 196, 129,
-			108, 0, 1, 109, 2, 108, 100, 0, 1, 109, 2, 108, 101, 0, 1, 109, 2, 108, 105, 0, 1, 109, 2, 108, 117, 0, 1, 109, 2, 109,
-			101, 110, 116, 0, 1, 109, 2, 110, 97, 114, 104, 0, 1, 109, 2, 110, 105, 116, 0, 1, 109, 2, 110, 111, 0, 1, 109, 2, 110, 115,
-			116, 0, 1, 109, 2, 110, 116, 0, 1, 109, 2, 112, 0, 1, 109, 2, 114, 97, 0, 1, 109, 2, 114, 102, 0, 1, 109, 2, 114, 115,
-			0, 1, 109, 2, 114, 196, 129, 0, 1, 109, 2, 116, 105, 0, 1, 109, 2, 116, 196, 171, 0, 1, 109, 2, 197, 161, 101, 0, 1, 109,
-			97, 2, 110, 0, 1, 109, 97, 2, 114, 0, 1, 109, 101, 100, 0, 1, 109, 105, 2, 110, 0, 1, 109, 114, 97, 104, 2, 110, 105, 122,
-			196, 147, 0, 1, 109, 114, 97, 104, 2, 110, 196, 147, 0, 1, 109, 115, 2, 196, 188, 0, 1, 109, 115, 105, 101, 115, 0, 1, 109, 115,
-			111, 2, 103, 0, 1, 109, 116, 97, 2, 115, 0, 1, 109, 117, 104, 0, 1, 110, 2, 107, 18, 75, 0, 1, 110, 2, 109, 101, 110, 0,
-			1, 110, 2, 109, 105, 110, 18, 71, 0, 1, 110, 2, 109, 105, 110, 18, 78, 0, 1, 110, 2, 114, 98, 0, 1, 110, 2, 114, 100, 0,
-			1, 110, 2, 114, 109, 0, 1, 110, 2, 114, 118, 0, 1, 110, 2, 116, 97, 114, 0, 1, 110, 2, 116, 196, 129, 114, 0, 1, 110, 2,
-			118, 18, 69, 32, 0, 1, 110, 2, 118, 97, 116, 0, 1, 110, 2, 118, 101, 108, 18, 72, 32, 0, 1, 110, 2, 118, 111, 0, 1, 110,
-			2, 118, 196, 129, 99, 105, 0, 1, 110, 97, 2, 108, 0, 1, 110, 97, 2, 109, 0, 1, 110, 97, 2, 110, 0, 1, 110, 97, 2, 116,
-			0, 1, 110, 97, 101, 107, 111, 0, 1, 110, 97, 114, 97, 112, 0, 1, 110, 101, 99, 115, 0, 1, 110, 101, 100, 0, 1, 110, 101, 102,
-			0, 1, 110, 101, 103, 0, 1, 110, 101, 116, 115, 2, 103, 0, 1, 110, 103, 0, 1, 110, 103, 97, 0, 1, 110, 105, 97, 107, 0, 1,
-			110, 105, 108, 2, 116, 105, 112, 0, 1, 110, 105, 109, 97, 0, 1, 110, 105, 118, 107, 101, 0, 1, 110, 111, 0, 1, 110, 111, 103, 0,
-			1, 110, 111, 109, 0, 1, 110, 111, 115, 0, 1, 110, 112, 105, 104, 0, 1, 110, 114, 97, 0, 1, 110, 116, 101, 0, 1, 112, 2, 100,
-			101, 0, 1, 112, 2, 101, 0, 1, 112, 2, 108, 97, 0, 1, 112, 2, 108, 101, 109, 0, 1, 112, 2, 108, 105, 0, 1, 112, 2, 108,
-			111, 0, 1, 112, 2, 108, 115, 116, 0, 1, 112, 2, 108, 196, 129, 0, 1, 112, 2, 108, 196, 171, 0, 1, 112, 2, 109, 101, 114, 0,
-			1, 112, 2, 109, 112, 0, 1, 112, 2, 110, 99, 0, 1, 112, 2, 112, 0, 1, 112, 2, 114, 99, 0, 1, 112, 2, 114, 111, 0, 1,
-			112, 2, 114, 116, 0, 1, 112, 2, 115, 116, 97, 109, 0, 1, 112, 2, 115, 116, 101, 109, 0, 1, 112, 2, 115, 116, 101, 110, 0, 1,
-			112, 2, 115, 116, 101, 114, 0, 1, 112, 2, 115, 116, 109, 0, 1, 112, 2, 115, 116, 115, 111, 0, 1, 112, 2, 115, 116, 117, 108, 0,
-			1, 112, 2, 116, 101, 110, 0, 1, 112, 2, 122, 0, 1, 112, 2, 196, 147, 0, 1, 112, 97, 2, 107, 0, 1, 112, 97, 2, 108, 0,
-			1, 112, 97, 2, 115, 116, 114, 111, 102, 0, 1, 112, 101, 2, 108, 0, 1, 112, 101, 2, 115, 18, 68, 32, 0, 1, 112, 101, 100, 0,
-			1, 112, 105, 104, 0, 1, 112, 105, 116, 0, 1, 112, 105, 116, 110, 97, 0, 1, 112, 111, 0, 1, 112, 111, 114, 112, 0, 1, 112, 114,
-			101, 116, 110, 105, 0, 1, 112, 115, 2, 110, 0, 1, 112, 115, 2, 114, 116, 0, 1, 112, 115, 101, 100, 0, 1, 112, 115, 105, 100, 0,
-			1, 114, 2, 108, 0, 1, 114, 2, 109, 97, 0, 1, 114, 2, 109, 98, 0, 1, 114, 2, 109, 196, 129, 0, 1, 114, 2, 114, 0, 1,
-			114, 2, 115, 105, 106, 0, 1, 114, 2, 115, 116, 98, 0, 1, 114, 2, 116, 101, 114, 0, 1, 114, 2, 116, 196, 147, 0, 1, 114, 97,
-			108, 111, 112, 0, 1, 114, 97, 109, 0, 1, 114, 97, 112, 2, 100, 0, 1, 114, 98, 2, 109, 0, 1, 114, 98, 2, 110, 0, 1, 114,
-			98, 2, 197, 161, 0, 1, 114, 100, 105, 104, 0, 1, 114, 101, 2, 103, 0, 1, 114, 101, 97, 2, 100, 0, 1, 114, 101, 97, 2, 102,
-			111, 0, 1, 114, 101, 97, 2, 115, 111, 0, 1, 114, 101, 116, 115, 0, 1, 114, 102, 2, 110, 0, 1, 114, 102, 97, 0, 1, 114, 103,
-			97, 0, 1, 114, 104, 2, 109, 0, 1, 114, 104, 2, 110, 111, 0, 1, 114, 104, 110, 105, 115, 0, 1, 114, 105, 98, 0, 1, 114, 105,
-			101, 110, 0, 1, 114, 105, 112, 0, 1, 114, 105, 190, 197, 0, 1, 114, 107, 2, 110, 197, 161, 0, 1, 114, 107, 2, 115, 0, 1, 114,
-			107, 97, 0, 1, 114, 111, 108, 104, 0, 1, 114, 111, 112, 0, 1, 114, 112, 2, 98, 0, 1, 114, 112, 2, 99, 0, 1, 114, 112, 2,
-			100, 0, 1, 114, 112, 2, 103, 110, 0, 1, 114, 112, 2, 103, 114, 0, 1, 114, 112, 2, 106, 0, 1, 114, 112, 2, 107, 0, 1, 114,
-			112, 2, 108, 101, 0, 1, 114, 112, 2, 109, 0, 1, 114, 112, 2, 112, 0, 1, 114, 112, 2, 115, 112, 0, 1, 114, 112, 2, 115, 116,
-			0, 1, 114, 112, 2, 116, 101, 0, 1, 114, 112, 2, 116, 111, 0, 1, 114, 112, 2, 118, 105, 110, 0, 1, 114, 112, 2, 118, 105, 122,
-			0, 1, 114, 112, 2, 118, 196, 171, 122, 0, 1, 114, 112, 2, 197, 190, 0, 1, 114, 112, 101, 0, 1, 114, 112, 109, 105, 0, 1, 114,
-			116, 2, 109, 0, 1, 114, 116, 2, 116, 0, 1, 114, 116, 101, 109, 0, 1, 114, 116, 101, 114, 0, 1, 114, 116, 105, 0, 1, 114, 116,
-			110, 105, 0, 1, 114, 116, 115, 97, 2, 110, 0, 1, 114, 116, 115, 107, 111, 0, 1, 115, 2, 99, 105, 0, 1, 115, 2, 107, 111, 0,
-			1, 115, 2, 107, 114, 0, 1, 115, 2, 108, 97, 114, 0, 1, 115, 2, 108, 102, 0, 1, 115, 2, 108, 105, 100, 0, 1, 115, 2, 108,
-			111, 196, 163, 0, 1, 115, 2, 108, 115, 116, 0, 1, 115, 2, 108, 116, 0, 1, 115, 2, 108, 118, 0, 1, 115, 2, 108, 196, 129, 114,
-			0, 1, 115, 2, 108, 196, 171, 100, 18, 68, 32, 0, 1, 115, 2, 108, 196, 171, 100, 196, 129, 0, 1, 115, 2, 110, 111, 0, 1, 115,
-			2, 110, 196, 129, 0, 1, 115, 2, 112, 114, 0, 1, 115, 2, 114, 0, 1, 115, 2, 118, 0, 1, 115, 97, 107, 110, 105, 0, 1, 115,
-			97, 114, 2, 108, 0, 1, 115, 98, 97, 2, 108, 0, 1, 115, 105, 2, 110, 0, 1, 115, 107, 101, 0, 1, 115, 110, 111, 107, 0, 1,
-			116, 2, 107, 115, 0, 1, 116, 2, 108, 101, 114, 0, 1, 116, 2, 109, 97, 115, 0, 1, 116, 2, 110, 0, 1, 116, 2, 110, 105, 122,
-			0, 1, 116, 2, 110, 110, 0, 1, 116, 2, 114, 0, 1, 116, 2, 114, 97, 0, 1, 116, 2, 114, 111, 0, 1, 116, 2, 114, 196, 129,
-			0, 1, 116, 2, 116, 196, 147, 109, 0, 1, 116, 97, 100, 0, 1, 116, 97, 109, 101, 110, 105, 107, 0, 1, 116, 101, 98, 0, 1, 116,
-			101, 103, 0, 1, 116, 101, 109, 2, 100, 0, 1, 116, 101, 110, 0, 1, 116, 101, 116, 2, 118, 0, 1, 116, 105, 99, 0, 1, 116, 105,
-			108, 0, 1, 116, 110, 97, 2, 108, 0, 1, 116, 110, 97, 2, 110, 0, 1, 116, 110, 97, 112, 0, 1, 116, 110, 101, 0, 1, 116, 110,
-			111, 0, 1, 116, 111, 102, 2, 103, 114, 0, 1, 116, 111, 109, 2, 100, 114, 111, 0, 1, 116, 111, 114, 112, 0, 1, 116, 112, 101, 2,
-			21, 0, 1, 116, 112, 105, 114, 107, 0, 1, 116, 114, 97, 107, 0, 1, 116, 114, 111, 0, 1, 116, 115, 2, 107, 104, 0, 1, 116, 115,
-			2, 109, 97, 116, 0, 1, 116, 115, 101, 114, 104, 0, 1, 116, 115, 105, 104, 0, 1, 116, 115, 105, 114, 97, 0, 1, 116, 115, 111, 2,
-			112, 18, 68, 32, 0, 1, 116, 117, 97, 2, 109, 0, 1, 116, 117, 97, 2, 114, 105, 0, 1, 116, 117, 108, 112, 2, 107, 0, 1, 118,
-			2, 98, 0, 1, 118, 2, 107, 97, 0, 1, 118, 2, 108, 100, 0, 1, 118, 2, 108, 101, 106, 0, 1, 118, 2, 108, 102, 0, 1, 118,
-			2, 108, 116, 0, 1, 118, 2, 108, 117, 0, 1, 118, 2, 108, 118, 0, 1, 118, 97, 102, 0, 1, 118, 97, 108, 115, 0, 1, 118, 97,
-			114, 98, 0, 1, 118, 101, 2, 108, 0, 1, 118, 105, 0, 1, 118, 105, 97, 114, 2, 32, 0, 1, 118, 107, 0, 1, 118, 110, 111, 107,
-			0, 1, 118, 114, 101, 110, 0, 1, 119, 0, 1, 120, 0, 1, 122, 2, 106, 18, 68, 32, 12, 0, 1, 122, 2, 110, 17, 65, 116, 111,
-			0, 1, 122, 2, 110, 100, 0, 1, 122, 97, 114, 0, 1, 122, 101, 109, 0, 1, 122, 105, 2, 108, 0, 1, 122, 110, 101, 0, 1, 161,
-			197, 2, 107, 0, 1, 161, 197, 2, 115, 101, 106, 0, 1, 190, 197, 2, 107, 101, 106, 0, 1, 190, 197, 2, 110, 103, 0, 1, 190, 197,
-			97, 109, 0, 1, 190, 197, 100, 2, 117, 108, 0, 2, 18, 66, 0, 2, 18, 71, 0, 2, 28, 17, 12, 12, 12, 12, 0, 2, 98, 97,
-			109, 0, 2, 98, 106, 101, 0, 2, 100, 105, 97, 0, 2, 105, 0, 2, 107, 101, 0, 2, 107, 115, 105, 0, 2, 107, 115, 111, 108, 0,
-			2, 107, 116, 0, 2, 107, 116, 111, 0, 2, 107, 117, 108, 0, 2, 107, 117, 112, 0, 2, 107, 196, 129, 108, 0, 2, 108, 101, 111, 0,
-			2, 108, 105, 103, 0, 2, 108, 105, 109, 112, 0, 2, 108, 111, 103, 0, 2, 108, 111, 196, 163, 0, 2, 108, 196, 171, 118, 0, 2, 109,
-			110, 105, 98, 0, 2, 109, 196, 129, 114, 0, 2, 110, 103, 0, 2, 110, 107, 111, 0, 2, 110, 111, 0, 2, 110, 116, 111, 0, 2, 112,
-			99, 0, 2, 112, 101, 114, 97, 116, 0, 2, 112, 111, 0, 2, 112, 116, 105, 107, 0, 2, 112, 116, 105, 109, 0, 2, 112, 116, 105, 115,
-			0, 2, 112, 116, 105, 196, 183, 0, 2, 114, 97, 110, 12, 0, 2, 114, 97, 116, 0, 2, 114, 100, 0, 2, 114, 103, 0, 2, 114, 104,
-			105, 100, 0, 2, 114, 105, 101, 110, 0, 2, 114, 105, 103, 0, 2, 114, 105, 196, 163, 0, 2, 114, 107, 0, 2, 114, 110, 105, 116, 0,
-			2, 114, 116, 111, 0, 2, 114, 196, 129, 107, 0, 2, 114, 196, 129, 116, 0, 2, 114, 196, 183, 0, 2, 115, 99, 105, 108, 0, 2, 115,
-			109, 111, 0, 2, 117, 0, 2, 122, 111, 110, 0, 8, 2, 98, 108, 105, 103, 0, 8, 2, 98, 115, 0, 8, 2, 100, 101, 107, 0, 8,
-			2, 107, 115, 97, 110, 18, 69, 32, 0, 8, 2, 107, 115, 102, 0, 8, 2, 108, 97, 102, 18, 68, 32, 0, 8, 2, 108, 103, 18, 69,
-			32, 0, 8, 2, 110, 100, 97, 116, 114, 0, 8, 2, 112, 101, 114, 0, 8, 2, 115, 107, 97, 114, 18, 68, 32, 0, 8, 2, 118, 196,
-			129, 99, 0, 8, 2, 196, 188, 101, 103, 18, 68, 32, 0, 8, 98, 2, 108, 196, 171, 100, 18, 68, 32, 0, 8, 98, 2, 116, 18, 72,
-			32, 0, 8, 100, 2, 103, 18, 68, 32, 0, 8, 100, 2, 107, 18, 68, 32, 0, 8, 100, 110, 105, 0, 8, 100, 129, 196, 2, 108, 102,
-			18, 68, 0, 8, 106, 2, 116, 18, 69, 32, 0, 8, 107, 2, 106, 18, 69, 0, 8, 107, 2, 114, 196, 129, 0, 8, 107, 105, 112, 0,
-			8, 107, 115, 97, 2, 108, 100, 18, 68, 32, 0, 8, 108, 2, 108, 105, 116, 18, 69, 32, 0, 8, 108, 2, 110, 0, 8, 108, 2, 116,
-			105, 197, 134, 18, 69, 0, 8, 108, 97, 2, 116, 0, 8, 108, 97, 103, 2, 112, 18, 68, 0, 8, 108, 105, 107, 0, 8, 109, 2, 110,
-			0, 8, 110, 2, 97, 115, 18, 68, 32, 0, 8, 110, 2, 116, 18, 69, 32, 0, 8, 110, 2, 118, 101, 109, 98, 0, 8, 110, 97, 110,
-			0, 8, 110, 101, 116, 115, 0, 8, 112, 2, 108, 105, 101, 100, 0, 8, 112, 2, 110, 105, 106, 18, 68, 32, 0, 8, 112, 2, 116, 97,
-			197, 161, 18, 69, 0, 8, 114, 2, 98, 101, 114, 116, 0, 8, 114, 2, 100, 101, 114, 105, 107, 18, 68, 32, 0, 8, 114, 2, 107, 196,
-			129, 100, 18, 72, 32, 0, 8, 114, 2, 122, 101, 116, 18, 72, 32, 0, 8, 114, 2, 122, 196, 171, 110, 18, 72, 32, 0, 8, 114, 97,
-			98, 2, 107, 0, 8, 114, 97, 98, 2, 109, 0, 8, 114, 97, 98, 2, 110, 17, 65, 0, 8, 114, 98, 2, 107, 196, 129, 116, 18, 68,
-			32, 0, 8, 114, 98, 108, 117, 2, 107, 18, 69, 32, 0, 8, 114, 99, 105, 109, 0, 8, 114, 103, 2, 122, 110, 105, 106, 0, 8, 114,
-			107, 105, 109, 2, 12, 0, 8, 114, 116, 2, 106, 0, 8, 116, 2, 110, 105, 106, 18, 69, 32, 0, 8, 116, 2, 112, 98, 0, 8, 116,
-			2, 112, 105, 110, 97, 109, 0, 8, 116, 2, 112, 109, 0, 8, 116, 2, 112, 196, 129, 122, 18, 68, 32, 0, 8, 116, 2, 114, 101, 0,
-			8, 116, 2, 114, 112, 17, 65, 100, 0, 8, 116, 2, 114, 116, 18, 72, 32, 0, 8, 116, 105, 118, 2, 108, 100, 18, 68, 32, 0, 8,
-			116, 107, 101, 104, 0, 8, 116, 110, 97, 2, 197, 134, 105, 110, 18, 69, 32, 0, 8, 116, 117, 97, 0, 8, 122, 101, 2, 116, 0, 8,
-			122, 105, 0, 8, 161, 197, 2, 114, 116, 18, 76, 0, 114, 112, 111, 1, 107, 3, 39, 34, 48, 39, 0, 4, 116, 111, 1, 108, 2, 32,
-			3, 39, 47, 39, 0, 116, 111, 8, 0, 116, 111, 1, 109, 3, 39, 47, 114, 0, 4, 112, 111, 1, 114, 116, 110, 97, 3, 39, 48, 39,
-			0, 112, 111, 8, 116, 2, 103, 0, 112, 111, 8, 116, 2, 108, 0, 112, 111, 8, 116, 2, 110, 0, 112, 116, 111, 8, 3, 39, 48, 47,
-			39, 0, 107, 97, 107, 111, 1, 107, 2, 108, 3, 39, 49, 35, 49, 114, 0, 107, 111, 107, 2, 18, 68, 32, 3, 39, 49, 39, 49, 0,
-			107, 111, 109, 111, 1, 108, 3, 39, 49, 39, 65, 39, 0, 107, 111, 100, 1, 114, 107, 3, 39, 49, 39, 72, 0, 4, 107, 111, 1, 114,
-			2, 112, 101, 3, 39, 49, 114, 0, 107, 111, 1, 116, 111, 114, 112, 0, 4, 110, 1, 107, 3, 39, 50, 0, 110, 8, 108, 107, 0, 4,
-			110, 111, 1, 107, 3, 39, 50, 39, 0, 110, 111, 8, 109, 0, 4, 110, 111, 1, 100, 3, 39, 50, 114, 0, 110, 111, 1, 107, 101, 0,
-			110, 111, 1, 114, 116, 115, 97, 0, 114, 111, 1, 107, 3, 39, 52, 39, 0, 114, 110, 111, 1, 112, 3, 39, 52, 50, 39, 0, 109, 1,
-			107, 3, 39, 65, 0, 4, 109, 111, 1, 104, 3, 39, 65, 39, 0, 109, 111, 1, 107, 0, 109, 111, 1, 116, 0, 109, 111, 116, 2, 111,
-			3, 39, 65, 39, 47, 0, 109, 111, 110, 111, 115, 111, 1, 108, 3, 39, 65, 39, 50, 6, 39, 89, 39, 0, 109, 112, 111, 1, 107, 3,
-			39, 65, 48, 39, 0, 110, 103, 111, 108, 111, 1, 109, 3, 39, 68, 81, 39, 55, 39, 0, 110, 103, 111, 1, 109, 3, 39, 68, 81, 114,
-			0, 98, 1, 107, 3, 39, 71, 0, 98, 111, 1, 114, 2, 116, 3, 39, 71, 39, 0, 100, 105, 111, 8, 3, 39, 72, 37, 114, 0, 4,
-			100, 111, 1, 106, 3, 39, 72, 39, 0, 100, 111, 1, 114, 2, 100, 101, 110, 0, 100, 111, 8, 0, 103, 111, 1, 108, 3, 39, 81, 39,
-			0, 118, 111, 1, 114, 112, 3, 39, 84, 39, 0, 118, 103, 111, 114, 111, 100, 1, 110, 3, 39, 84, 81, 39, 34, 39, 72, 0, 122, 111,
-			1, 108, 105, 102, 3, 39, 88, 114, 0, 115, 116, 111, 106, 1, 100, 3, 39, 89, 47, 39, 57, 0, 115, 102, 111, 1, 102, 3, 39, 89,
-			83, 114, 0, 4, 115, 111, 1, 98, 105, 114, 3, 39, 89, 114, 0, 115, 111, 1, 108, 105, 102, 0, 111, 3, 39, 114, 0, 4, 1, 98,
-			2, 108, 3, 114, 0, 1, 98, 2, 114, 115, 0, 1, 99, 114, 101, 104, 2, 103, 0, 1, 100, 101, 104, 2, 110, 0, 1, 100, 107, 101,
-			110, 97, 0, 1, 100, 110, 2, 109, 18, 68, 32, 0, 1, 100, 110, 111, 103, 2, 108, 0, 1, 100, 114, 2, 109, 18, 68, 32, 0, 1,
-			101, 100, 105, 118, 0, 1, 102, 2, 110, 105, 0, 1, 103, 2, 103, 0, 1, 103, 2, 110, 105, 106, 0, 1, 103, 2, 114, 105, 106, 0,
-			1, 103, 2, 116, 105, 107, 0, 1, 103, 2, 116, 105, 115, 0, 1, 103, 2, 196, 163, 0, 1, 103, 97, 2, 110, 0, 1, 103, 101, 2,
-			110, 0, 1, 103, 101, 98, 2, 110, 105, 0, 1, 103, 101, 108, 97, 2, 114, 0, 1, 103, 101, 116, 97, 107, 2, 114, 0, 1, 103, 114,
-			101, 110, 101, 0, 1, 103, 114, 117, 102, 2, 110, 0, 1, 105, 2, 100, 18, 72, 32, 0, 1, 105, 2, 110, 18, 72, 32, 0, 1, 105,
-			100, 97, 114, 0, 1, 105, 100, 105, 0, 1, 105, 100, 117, 97, 0, 1, 105, 114, 116, 97, 112, 0, 1, 105, 118, 97, 0, 1, 106, 108,
-			0, 1, 107, 2, 100, 18, 77, 32, 0, 1, 107, 2, 109, 18, 69, 32, 12, 0, 1, 107, 97, 108, 2, 110, 0, 1, 107, 110, 105, 115,
-			0, 1, 107, 115, 2, 112, 18, 68, 32, 0, 1, 107, 115, 2, 112, 105, 106, 18, 69, 32, 0, 1, 107, 115, 2, 112, 105, 115, 0, 1,
-			108, 2, 103, 12, 0, 1, 108, 2, 110, 0, 1, 108, 2, 196, 163, 0, 1, 108, 2, 196, 163, 12, 0, 1, 108, 97, 2, 103, 0, 1,
-			108, 97, 107, 2, 114, 0, 1, 108, 104, 2, 114, 0, 1, 108, 105, 2, 103, 0, 1, 108, 107, 105, 99, 0, 1, 108, 107, 108, 111, 102,
-			0, 1, 108, 111, 2, 110, 105, 106, 0, 1, 108, 111, 2, 110, 105, 115, 116, 0, 1, 108, 111, 115, 0, 1, 109, 2, 99, 97, 114, 0,
-			1, 109, 2, 100, 18, 69, 32, 0, 1, 109, 97, 110, 105, 100, 0, 1, 109, 101, 2, 99, 105, 0, 1, 109, 105, 101, 110, 112, 0, 1,
-			109, 114, 97, 104, 2, 110, 0, 1, 109, 115, 111, 0, 1, 110, 2, 100, 18, 72, 32, 0, 1, 110, 2, 109, 18, 68, 32, 0, 1, 110,
-			2, 109, 18, 72, 32, 0, 1, 110, 2, 109, 105, 106, 18, 69, 32, 0, 1, 110, 97, 2, 100, 0, 1, 110, 105, 107, 0, 1, 110, 112,
-			105, 104, 2, 122, 18, 72, 32, 0, 1, 112, 2, 108, 18, 68, 32, 0, 1, 112, 2, 108, 18, 72, 32, 0, 1, 112, 109, 111, 112, 0,
-			1, 114, 100, 2, 109, 18, 68, 0, 1, 114, 101, 97, 0, 1, 114, 101, 108, 107, 115, 0, 1, 114, 104, 2, 110, 0, 1, 114, 105, 101,
-			0, 1, 114, 107, 97, 109, 0, 1, 114, 107, 105, 2, 110, 0, 1, 114, 116, 2, 102, 18, 69, 32, 0, 1, 114, 116, 2, 112, 0, 1,
-			114, 116, 105, 2, 110, 0, 1, 114, 116, 107, 101, 108, 101, 0, 1, 114, 116, 110, 111, 107, 0, 1, 114, 117, 107, 2, 114, 18, 72, 32,
-			0, 1, 115, 2, 108, 111, 0, 1, 115, 2, 114, 18, 68, 32, 12, 0, 1, 115, 2, 114, 18, 72, 32, 12, 12, 0, 1, 115, 111, 114,
-			101, 97, 2, 108, 0, 1, 115, 112, 97, 114, 0, 1, 115, 114, 101, 112, 2, 110, 0, 1, 116, 2, 100, 18, 72, 32, 12, 0, 1, 116,
-			2, 108, 18, 69, 32, 12, 0, 1, 116, 2, 110, 105, 107, 18, 69, 32, 0, 1, 116, 2, 110, 105, 115, 107, 0, 1, 116, 2, 114, 18,
-			72, 32, 12, 12, 0, 1, 116, 21, 2, 114, 0, 1, 116, 97, 2, 109, 0, 1, 116, 97, 114, 97, 109, 0, 1, 116, 97, 114, 111, 0,
-			1, 116, 107, 111, 0, 1, 116, 108, 97, 100, 2, 110, 0, 1, 116, 110, 97, 2, 110, 18, 68, 32, 0, 1, 116, 110, 111, 112, 2, 110,
-			0, 1, 116, 111, 2, 112, 18, 68, 32, 0, 1, 116, 111, 102, 0, 1, 116, 111, 110, 111, 109, 2, 110, 0, 1, 116, 112, 2, 109, 18,
-			68, 32, 0, 1, 116, 117, 2, 112, 105, 0, 1, 117, 108, 102, 2, 114, 0, 1, 122, 2, 110, 0, 1, 122, 2, 114, 18, 68, 32, 12,
-			0, 1, 122, 2, 114, 18, 72, 32, 12, 12, 0, 1, 122, 105, 112, 101, 2, 100, 0, 2, 32, 0, 2, 108, 18, 68, 32, 12, 0, 2,
-			110, 18, 68, 32, 12, 0, 2, 112, 18, 68, 32, 12, 0, 2, 114, 18, 68, 32, 12, 0, 2, 122, 18, 68, 32, 0, 2, 122, 18, 72,
-			32, 12, 0, 8, 2, 109, 105, 0, 8, 2, 109, 115, 0, 8, 2, 112, 101, 114, 18, 69, 32, 0, 8, 100, 2, 122, 18, 69, 32, 12,
-			12, 0, 8, 101, 114, 101, 116, 115, 0, 8, 102, 2, 108, 105, 106, 18, 69, 32, 0, 8, 103, 105, 2, 114, 18, 68, 32, 0, 8, 106,
-			2, 103, 18, 68, 32, 0, 8, 107, 101, 0, 8, 108, 2, 197, 190, 18, 69, 32, 0, 8, 108, 103, 2, 114, 105, 106, 18, 69, 32, 0,
-			8, 109, 2, 110, 105, 107, 18, 69, 32, 0, 8, 109, 2, 122, 117, 0, 8, 109, 97, 114, 2, 110, 18, 69, 32, 0, 8, 109, 115, 2,
-			103, 18, 68, 32, 0, 8, 114, 97, 98, 2, 110, 18, 68, 32, 0, 8, 115, 107, 111, 2, 108, 18, 68, 32, 0, 8, 116, 2, 110, 117,
-			115, 18, 68, 32, 0, 8, 116, 2, 114, 105, 106, 18, 68, 32, 0, 8, 116, 110, 97, 102, 2, 109, 18, 68, 32, 0, 8, 116, 114, 97,
-			107, 2, 110, 18, 68, 32, 0, 108, 111, 1, 112, 2, 32, 3, 114, 55, 114, 0, 115, 116, 111, 112, 1, 116, 117, 97, 3, 114, 89, 47,
-			39, 48, 0, 4, 3, 119, 0, 1, 98, 2, 32, 0, 1, 98, 2, 108, 111, 197, 161, 0, 1, 98, 2, 108, 196, 171, 100, 18, 73, 32,
-			0, 1, 98, 2, 108, 196, 171, 106, 0, 1, 98, 2, 108, 196, 171, 115, 0, 1, 98, 2, 108, 196, 171, 116, 0, 1, 98, 2, 108, 196,
-			171, 197, 161, 0, 1, 98, 97, 118, 2, 108, 18, 72, 32, 0, 1, 98, 129, 196, 2, 108, 0, 1, 99, 2, 32, 0, 1, 100, 2, 32,
-			0, 1, 100, 2, 122, 18, 72, 32, 12, 12, 0, 1, 102, 114, 147, 196, 115, 0, 1, 103, 2, 32, 0, 1, 103, 2, 114, 111, 0, 1,
-			103, 97, 109, 2, 110, 0, 1, 103, 97, 118, 2, 110, 0, 1, 103, 105, 97, 100, 2, 110, 0, 1, 103, 105, 97, 109, 2, 110, 0, 1,
-			103, 105, 97, 122, 0, 1, 103, 108, 105, 2, 110, 18, 70, 32, 0, 1, 103, 111, 108, 115, 0, 1, 103, 114, 97, 109, 2, 110, 0, 1,
-			103, 117, 97, 2, 110, 0, 1, 103, 171, 196, 108, 0, 1, 106, 2, 32, 0, 1, 106, 2, 110, 18, 70, 32, 0, 1, 107, 2, 32, 0,
-			1, 107, 2, 107, 111, 103, 0, 1, 107, 2, 107, 116, 196, 147, 108, 0, 1, 107, 2, 110, 18, 70, 32, 0, 1, 107, 2, 112, 106, 0,
-			1, 107, 2, 112, 196, 147, 106, 18, 68, 32, 0, 1, 107, 2, 112, 196, 147, 106, 18, 69, 32, 0, 1, 107, 2, 114, 18, 70, 32, 12,
-			0, 1, 107, 2, 197, 134, 18, 70, 32, 0, 1, 107, 97, 114, 116, 0, 1, 107, 101, 105, 110, 0, 1, 107, 107, 105, 116, 2, 32, 0,
-			1, 107, 108, 97, 109, 2, 18, 75, 0, 1, 107, 108, 97, 161, 197, 0, 1, 107, 114, 147, 196, 112, 2, 110, 0, 1, 107, 114, 147, 196,
-			112, 2, 197, 134, 0, 1, 107, 115, 2, 108, 0, 1, 107, 115, 2, 108, 18, 69, 32, 0, 1, 107, 115, 97, 118, 0, 1, 107, 171, 197,
-			107, 0, 1, 108, 2, 32, 0, 1, 108, 2, 122, 18, 72, 32, 0, 1, 108, 103, 97, 2, 110, 18, 69, 32, 0, 1, 108, 103, 97, 110,
-			0, 1, 108, 103, 101, 2, 110, 0, 1, 108, 105, 97, 100, 2, 110, 0, 1, 108, 105, 100, 2, 110, 0, 1, 108, 105, 100, 2, 197, 134,
-			0, 1, 108, 105, 122, 2, 110, 0, 1, 108, 105, 122, 2, 197, 134, 0, 1, 108, 111, 107, 115, 2, 18, 74, 0, 1, 108, 111, 107, 115,
-			2, 18, 75, 0, 1, 108, 111, 115, 2, 115, 32, 0, 1, 108, 111, 115, 2, 116, 0, 1, 108, 111, 115, 2, 116, 32, 0, 1, 108, 111,
-			115, 2, 197, 161, 0, 1, 108, 115, 2, 103, 18, 68, 32, 0, 1, 108, 115, 2, 103, 111, 0, 1, 108, 147, 196, 2, 32, 0, 1, 108,
-			147, 196, 99, 0, 1, 108, 161, 197, 2, 103, 18, 68, 32, 0, 1, 109, 2, 32, 0, 1, 109, 105, 97, 122, 0, 1, 109, 115, 2, 107,
-			0, 1, 109, 115, 114, 101, 118, 0, 1, 109, 122, 105, 118, 0, 1, 110, 2, 32, 0, 1, 110, 2, 108, 105, 107, 0, 1, 110, 2, 109,
-			18, 69, 32, 0, 1, 110, 97, 161, 197, 0, 1, 110, 101, 116, 115, 2, 18, 74, 0, 1, 110, 101, 116, 115, 2, 18, 75, 0, 1, 110,
-			110, 97, 118, 0, 1, 112, 2, 32, 0, 1, 112, 2, 114, 97, 0, 1, 112, 2, 115, 116, 111, 0, 1, 112, 2, 115, 116, 196, 171, 0,
-			1, 114, 2, 32, 0, 1, 114, 2, 98, 101, 197, 190, 0, 1, 114, 2, 107, 116, 117, 0, 1, 114, 2, 122, 18, 72, 32, 0, 1, 114,
-			97, 98, 2, 107, 108, 0, 1, 114, 97, 98, 2, 107, 196, 188, 0, 1, 114, 98, 2, 32, 0, 1, 114, 100, 2, 32, 0, 1, 114, 103,
-			2, 122, 12, 0, 1, 114, 107, 2, 103, 0, 1, 114, 107, 2, 107, 111, 0, 1, 114, 107, 2, 112, 196, 188, 111, 0, 1, 114, 112, 97,
-			2, 99, 18, 72, 32, 0, 1, 114, 112, 97, 2, 107, 0, 1, 114, 116, 171, 196, 118, 115, 0, 1, 115, 2, 32, 0, 1, 115, 2, 108,
-			18, 68, 32, 0, 1, 115, 2, 108, 18, 70, 32, 0, 1, 115, 2, 108, 111, 116, 0, 1, 115, 2, 108, 111, 197, 161, 0, 1, 115, 2,
-			108, 196, 171, 18, 75, 0, 1, 116, 2, 32, 0, 1, 116, 2, 110, 18, 70, 32, 0, 1, 116, 2, 114, 110, 12, 0, 1, 116, 2, 114,
-			197, 134, 12, 0, 1, 116, 101, 105, 99, 2, 107, 0, 1, 116, 110, 97, 107, 0, 1, 116, 114, 111, 107, 2, 115, 32, 0, 1, 116, 114,
-			111, 112, 115, 0, 1, 116, 115, 2, 112, 111, 0, 1, 116, 117, 97, 188, 196, 0, 1, 116, 129, 196, 2, 32, 0, 1, 116, 147, 196, 2,
-			32, 0, 1, 116, 171, 196, 118, 2, 108, 18, 68, 32, 0, 1, 118, 2, 32, 0, 1, 118, 97, 0, 1, 118, 101, 105, 114, 0, 1, 118,
-			108, 97, 0, 1, 118, 129, 196, 108, 98, 0, 1, 118, 171, 196, 114, 98, 0, 1, 122, 2, 32, 0, 1, 122, 105, 98, 2, 18, 75, 12,
-			0, 1, 134, 197, 0, 1, 141, 196, 0, 1, 161, 197, 2, 32, 0, 1, 161, 197, 111, 2, 32, 0, 1, 161, 197, 117, 2, 32, 0, 1,
-			163, 196, 2, 32, 0, 1, 183, 196, 0, 1, 188, 196, 0, 1, 190, 197, 0, 2, 18, 67, 0, 2, 100, 101, 114, 101, 0, 2, 100, 101,
-			114, 196, 147, 0, 2, 110, 97, 107, 116, 32, 0, 2, 115, 32, 0, 2, 115, 116, 32, 0, 2, 116, 32, 12, 12, 0, 2, 116, 105, 101,
-			115, 32, 12, 0, 2, 197, 161, 115, 32, 0, 2, 197, 161, 197, 134, 0, 8, 2, 108, 18, 69, 32, 12, 0, 8, 2, 114, 18, 70, 32,
-			0, 8, 98, 2, 108, 97, 32, 0, 8, 98, 2, 108, 117, 0, 8, 98, 2, 108, 196, 129, 109, 32, 0, 8, 98, 2, 122, 18, 72, 32,
-			12, 0, 8, 98, 2, 122, 97, 32, 0, 8, 100, 2, 110, 18, 69, 32, 12, 12, 0, 8, 100, 171, 196, 112, 115, 2, 108, 18, 69, 32,
-			0, 8, 103, 2, 114, 97, 32, 0, 8, 103, 2, 114, 111, 115, 32, 12, 0, 8, 106, 2, 32, 0, 8, 106, 2, 122, 97, 32, 0, 8,
-			107, 2, 100, 18, 72, 32, 0, 8, 107, 2, 112, 18, 69, 32, 0, 8, 107, 2, 112, 196, 129, 32, 0, 8, 107, 2, 114, 18, 72, 32,
-			0, 8, 107, 2, 114, 97, 32, 0, 8, 107, 2, 114, 100, 105, 114, 0, 8, 107, 2, 114, 100, 122, 0, 8, 107, 2, 118, 196, 129, 114,
-			110, 18, 70, 32, 0, 8, 107, 101, 110, 2, 32, 0, 8, 107, 115, 2, 112, 18, 68, 32, 0, 8, 107, 115, 97, 112, 2, 112, 18, 68,
-			32, 0, 8, 108, 2, 103, 18, 68, 32, 0, 8, 108, 2, 110, 18, 72, 32, 0, 8, 108, 105, 112, 2, 116, 32, 0, 8, 108, 147, 196,
-			116, 2, 116, 117, 32, 0, 8, 109, 2, 100, 18, 72, 32, 0, 8, 109, 105, 97, 108, 2, 110, 18, 70, 32, 0, 8, 109, 117, 107, 2,
-			100, 18, 72, 32, 0, 8, 110, 2, 12, 0, 8, 112, 2, 108, 18, 70, 32, 0, 8, 112, 2, 108, 105, 101, 0, 8, 112, 2, 108, 105,
-			106, 18, 69, 32, 0, 8, 112, 2, 112, 18, 72, 32, 0, 8, 112, 2, 196, 188, 0, 8, 112, 129, 196, 114, 2, 32, 0, 8, 114, 2,
-			109, 18, 69, 32, 0, 8, 114, 101, 116, 115, 2, 115, 32, 0, 8, 114, 112, 2, 106, 196, 129, 109, 32, 0, 8, 114, 112, 2, 109, 32,
-			0, 8, 114, 112, 2, 109, 98, 0, 8, 114, 112, 2, 109, 101, 115, 0, 8, 114, 116, 115, 2, 112, 18, 68, 32, 0, 8, 114, 116, 115,
-			97, 107, 2, 108, 18, 70, 32, 0, 8, 116, 2, 12, 0, 8, 116, 2, 114, 101, 105, 122, 32, 0, 8, 116, 2, 114, 117, 100, 0, 8,
-			116, 2, 122, 105, 101, 109, 32, 0, 8, 116, 97, 100, 2, 115, 32, 0, 8, 116, 110, 111, 107, 2, 115, 32, 0, 8, 116, 110, 111, 108,
-			98, 2, 115, 32, 0, 8, 116, 115, 2, 114, 18, 72, 32, 0, 8, 116, 115, 97, 115, 2, 112, 97, 109, 32, 0, 8, 134, 197, 161, 197,
-			2, 114, 18, 70, 32, 0, 8, 161, 197, 2, 122, 105, 101, 109, 32, 0, 8, 183, 196, 161, 197, 2, 114, 18, 70, 32, 0, 116, 111, 2,
-			32, 3, 119, 47, 119, 0, 112, 8, 114, 116, 2, 18, 68, 32, 3, 119, 48, 0, 4, 112, 111, 1, 107, 3, 119, 48, 119, 0, 112, 111,
-			1, 116, 2, 116, 0, 112, 111, 1, 116, 2, 197, 161, 0, 108, 1, 112, 171, 196, 115, 2, 18, 68, 32, 3, 119, 55, 0, 4, 108, 111,
-			1, 107, 115, 3, 119, 55, 119, 0, 108, 111, 1, 108, 2, 18, 75, 0, 108, 111, 8, 108, 2, 18, 74, 0, 98, 111, 8, 114, 2, 116,
-			32, 3, 119, 71, 119, 0, 4, 100, 111, 1, 107, 2, 108, 3, 119, 72, 119, 0, 100, 111, 8, 2, 115, 32, 0, 103, 1, 114, 112, 115,
-			3, 119, 81, 0, 122, 111, 2, 108, 18, 68, 32, 3, 119, 88, 119, 0, 115, 116, 1, 114, 112, 115, 3, 119, 89, 47, 0, 115, 116, 111,
-			2, 18, 75, 3, 119, 89, 47, 119, 0, 7, 6, 112, 0, 3, 48, 0, 117, 115, 8, 3, 48, 40, 89, 0, 7, 6, 113, 0, 3, 49,
-			84, 0, 7, 6, 114, 0, 3, 52, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 1, 115, 2, 115, 3, 47, 12,
-			0, 111, 8, 2, 32, 3, 47, 119, 0, 7, 6, 117, 0, 3, 40, 0, 105, 3, 121, 0, 7, 6, 118, 0, 3, 84, 0, 105, 115, 8,
-			3, 84, 37, 89, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122,
-			0, 3, 88, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 4, 35, 1, 35, 3, 0, 4, 39, 3, 0, 4, 46, 1, 46, 3, 0, 58,
-			1, 32, 15, 2, 32, 15, 15, 32, 3, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 37, 88, 89, 118, 49, 40, 65, 88, 108, 65, 36,
-			9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 35, 1, 35, 35, 2, 32, 3,
-			24, 0, 58, 3, 49, 39, 55, 89, 0, 33, 61, 3, 50, 35, 84, 15, 84, 122, 50, 113, 72, 89, 0, 4, 35, 1, 32, 17, 65, 3,
-			52, 36, 89, 47, 108, 47, 36, 0, 35, 1, 32, 17, 67, 0, 62, 61, 3, 55, 6, 122, 55, 113, 49, 89, 15, 4, 84, 116, 15, 84,
-			6, 122, 50, 113, 72, 89, 0, 60, 61, 3, 65, 35, 88, 113, 49, 89, 15, 4, 84, 116, 15, 84, 6, 122, 50, 113, 72, 89, 0, 45,
-			8, 32, 2, 32, 15, 3, 65, 108, 50, 40, 89, 0, 36, 3, 72, 39, 55, 113, 34, 37, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts42 = FileInMemory_createWithData (12293, reinterpret_cast<const char *> (&espeakdata_dicts42_data), 
-			U"espeak-1.48.04-source/espeak-data/lv_dict", 
+		static unsigned char espeakdata_dicts39_data[12328] = {
+			0, 4, 0, 0, 72, 18, 0, 0, 0, 0, 11, 195, 44, 21, 84, 66, 81, 107, 196, 129, 32, 11, 195, 44, 21, 84, 66, 81, 99, 105,
+			107, 32, 0, 0, 0, 5, 65, 4, 35, 0, 0, 5, 194, 5, 0, 72, 0, 20, 67, 76, 16, 128, 89, 35, 71, 122, 72, 52, 108, 71,
+			35, 0, 44, 81, 98, 97, 32, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12, 124, 36, 0, 0, 0, 13, 4, 95,
+			8, 1, 3, 107, 6, 35, 76, 36, 49, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 5, 65, 20, 36, 0, 0, 0, 14,
+			4, 95, 48, 67, 15, 89, 6, 37, 65, 47, 116, 89, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			65, 32, 107, 35, 0, 0, 0, 0, 0, 10, 1, 36, 72, 39, 55, 113, 52, 37, 0, 5, 65, 36, 37, 0, 0, 13, 1, 37, 48, 52,
+			39, 124, 36, 50, 47, 37, 0, 27, 0, 6, 1, 38, 40, 50, 0, 8, 1, 38, 11, 2, 40, 50, 0, 0, 0, 6, 65, 40, 57, 36,
+			0, 0, 0, 9, 198, 64, 19, 1, 36, 176, 77, 66, 6, 195, 28, 20, 128, 72, 14, 1, 42, 88, 84, 116, 81, 88, 50, 108, 47, 36,
+			0, 27, 0, 10, 1, 43, 48, 55, 40, 89, 89, 0, 27, 0, 8, 197, 40, 80, 139, 4, 64, 66, 6, 65, 44, 49, 35, 0, 0, 0,
+			19, 67, 76, 21, 128, 89, 35, 84, 122, 50, 108, 71, 35, 0, 44, 81, 98, 97, 32, 0, 15, 1, 47, 89, 55, 108, 48, 89, 84, 108,
+			47, 51, 35, 0, 27, 0, 6, 65, 48, 36, 55, 0, 0, 9, 66, 49, 0, 55, 35, 48, 35, 0, 0, 0, 0, 6, 65, 52, 36, 65,
+			0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 7, 196, 48, 16, 129, 16, 72, 0, 5, 65, 60, 119, 0, 0, 13, 1,
+			61, 10, 84, 122, 50, 113, 72, 89, 10, 0, 27, 0, 0, 0, 9, 134, 6, 15, 1, 10, 196, 147, 67, 7, 1, 64, 35, 47, 9, 0,
+			6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 115, 0, 0, 0, 0, 0, 7, 65, 72, 36, 51, 52, 0, 0, 5, 194,
+			5, 32, 72, 0, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 109, 0, 0, 0, 11, 136, 16, 9, 1, 14,
+			196, 171, 14, 15, 20, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 25, 1, 92, 6,
+			35, 48, 81, 52, 122, 88, 47, 113, 15, 89, 55, 6, 108, 48, 89, 84, 108, 47, 51, 35, 0, 13, 65, 92, 72, 40, 71, 40, 55, 47,
+			6, 84, 36, 0, 0, 0, 0, 0, 18, 4, 95, 49, 77, 49, 47, 6, 115, 49, 89, 47, 119, 12, 47, 37, 89, 0, 7, 65, 96, 37,
+			49, 89, 0, 0, 15, 4, 95, 49, 77, 50, 65, 6, 37, 55, 57, 114, 50, 89, 0, 0, 0, 0, 9, 65, 100, 37, 81, 52, 36, 49,
+			0, 0, 9, 198, 20, 208, 129, 72, 115, 192, 20, 0, 0, 0, 6, 65, 104, 88, 36, 0, 0, 9, 198, 37, 67, 133, 45, 84, 128, 67,
+			0, 0, 0, 8, 197, 80, 146, 208, 5, 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 4, 197, 190, 21, 4, 15, 20, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 19, 142, 60, 20, 0, 0, 13, 67, 36, 84, 203, 122, 89, 49, 116, 47, 119, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 21, 52, 5, 72, 19, 148, 60, 20, 9, 134,
+			1, 16, 1, 11, 197, 161, 72, 0, 10, 135, 16, 18, 9, 5, 11, 197, 161, 72, 0, 0, 0, 7, 195, 8, 85, 0, 72, 8, 0, 0,
+			0, 6, 195, 4, 227, 143, 20, 0, 0, 0, 8, 133, 4, 196, 147, 196, 188, 72, 0, 0, 0, 12, 137, 11, 15, 13, 21, 14, 9, 11,
+			196, 147, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 85, 15, 20, 12, 66, 17, 32, 72, 39, 49, 47, 114, 52, 89,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 48, 21, 22, 55, 35, 47, 84, 122,
+			91, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 11, 15, 16, 197, 161, 72, 0, 6,
+			195, 64, 145, 64, 72, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 245, 15, 20, 6, 195, 52, 245, 15, 20, 0, 0, 14, 4, 95, 4,
+			16, 20, 49, 6, 39, 65, 35, 124, 10, 0, 0, 0, 5, 194, 21, 48, 72, 0, 0, 7, 196, 32, 19, 12, 60, 20, 0, 0, 0, 6,
+			195, 84, 227, 192, 20, 6, 195, 104, 83, 64, 72, 0, 0, 0, 0, 0, 16, 3, 95, 35, 57, 47, 35, 71, 40, 55, 35, 47, 114, 52,
+			89, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 36, 0, 0, 0, 0, 0, 7, 196, 8, 147, 135, 60, 20, 12, 137, 20, 21,
+			18, 16, 18, 5, 20, 196, 171, 66, 0, 0, 0, 0, 0, 9, 134, 18, 1, 14, 196, 141, 15, 20, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 81, 34, 77, 60, 20, 13, 67, 64, 145, 77, 48, 122, 65, 109, 52, 35, 65, 0, 0, 0, 0, 12, 67, 76, 176, 84, 89, 49, 35,
+			47, 108, 47, 0, 0, 0, 0, 10, 135, 7, 1, 12, 9, 6, 196, 147, 67, 0, 0, 7, 196, 9, 32, 86, 60, 20, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 76, 243, 133, 72, 16, 20,
+			15, 67, 24, 80, 146, 83, 36, 71, 52, 40, 113, 52, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 80, 146, 214, 36,
+			83, 128, 66, 9, 198, 4, 150, 150, 36, 83, 128, 66, 0, 0, 0, 0, 9, 198, 52, 17, 83, 81, 35, 192, 20, 9, 198, 52, 17, 83,
+			81, 35, 192, 66, 0, 6, 195, 64, 20, 128, 72, 0, 7, 196, 81, 34, 75, 60, 20, 0, 0, 0, 0, 7, 196, 16, 147, 135, 60, 20,
+			0, 0, 11, 66, 17, 160, 72, 88, 37, 65, 37, 89, 0, 8, 66, 17, 160, 72, 88, 109, 0, 0, 0, 0, 9, 134, 22, 9, 197, 134,
+			197, 161, 72, 0, 0, 0, 0, 0, 0, 11, 195, 56, 86, 128, 66, 81, 107, 97, 100, 32, 0, 0, 0, 0, 6, 195, 8, 86, 128, 72,
+			0, 0, 8, 197, 72, 242, 207, 44, 240, 20, 0, 0, 0, 10, 135, 1, 20, 5, 12, 10, 196, 147, 67, 0, 0, 0, 0, 0, 0, 7,
+			132, 16, 196, 129, 18, 72, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 15, 48, 6, 37, 52, 65, 116, 89, 0, 0, 0, 0, 12, 67,
+			64, 17, 192, 48, 35, 81, 35, 89, 124, 0, 9, 3, 226, 130, 172, 117, 52, 114, 0, 9, 3, 226, 130, 172, 117, 51, 39, 0, 0, 0,
+			0, 0, 13, 3, 226, 130, 168, 52, 115, 48, 108, 57, 35, 89, 0, 0, 12, 3, 95, 50, 15, 6, 39, 47, 52, 116, 89, 0, 0, 8,
+			197, 81, 84, 144, 5, 64, 66, 0, 0, 12, 67, 64, 18, 192, 48, 35, 49, 113, 48, 36, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51,
+			15, 47, 51, 6, 36, 91, 116, 89, 0, 9, 4, 95, 15, 18, 4, 116, 89, 0, 0, 0, 0, 0, 0, 0, 8, 133, 197, 190, 1, 2,
+			15, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 53, 15, 48, 6, 122, 49, 47, 116, 89, 0, 0, 0, 14, 4, 95,
+			13, 3, 14, 65, 6, 35, 49, 52, 39, 50, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 15, 89, 6, 36, 89, 47, 116, 89, 0,
+			0, 0, 0, 9, 134, 196, 141, 5, 12, 12, 15, 20, 0, 0, 0, 0, 0, 15, 3, 95, 55, 15, 89, 6, 36, 48, 47, 108, 47, 116,
+			89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 51, 88, 47, 51, 6, 108, 89, 72, 36, 89, 65, 37, 47, 0,
+			0, 9, 198, 64, 21, 12, 4, 32, 78, 66, 13, 3, 95, 48, 67, 89, 6, 37, 65, 47, 37, 10, 0, 0, 0, 0, 0, 7, 196, 64,
+			148, 141, 76, 72, 14, 3, 95, 57, 15, 72, 6, 36, 84, 108, 47, 116, 89, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 89, 6, 37,
+			65, 124, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 49, 57, 72, 6, 36, 84, 37, 67, 48, 35, 72, 89, 65, 37, 47, 0, 0, 19,
+			3, 95, 49, 56, 6, 35, 89, 47, 119, 67, 48, 35, 72, 89, 65, 37, 47, 0, 0, 0, 12, 67, 48, 21, 0, 55, 35, 47, 108, 67,
+			40, 0, 0, 0, 0, 0, 12, 3, 226, 136, 146, 65, 108, 50, 40, 89, 89, 0, 0, 17, 3, 95, 49, 49, 84, 6, 122, 50, 48, 35,
+			72, 89, 65, 37, 47, 0, 0, 13, 3, 95, 49, 48, 72, 6, 36, 89, 65, 37, 47, 0, 0, 18, 3, 95, 49, 51, 47, 51, 6, 108,
+			89, 48, 35, 72, 89, 65, 37, 47, 0, 0, 17, 3, 95, 49, 50, 72, 6, 37, 84, 48, 35, 72, 89, 65, 37, 47, 0, 0, 9, 198,
+			49, 83, 66, 4, 115, 192, 20, 17, 3, 95, 49, 53, 48, 6, 122, 124, 48, 35, 72, 89, 65, 37, 47, 0, 0, 18, 3, 95, 49, 52,
+			76, 6, 36, 47, 52, 48, 35, 72, 89, 65, 37, 47, 0, 0, 7, 196, 80, 84, 1, 80, 66, 15, 3, 95, 52, 15, 76, 6, 36, 47,
+			40, 51, 47, 116, 89, 0, 20, 3, 95, 49, 55, 89, 6, 36, 48, 47, 37, 67, 48, 35, 72, 89, 65, 37, 47, 0, 0, 7, 132, 16,
+			196, 147, 3, 72, 17, 3, 95, 49, 54, 89, 6, 36, 91, 48, 35, 72, 89, 65, 37, 47, 0, 0, 0, 19, 3, 95, 55, 88, 89, 6,
+			36, 48, 47, 37, 67, 72, 36, 89, 65, 37, 47, 0, 0, 6, 195, 24, 245, 15, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 66, 49, 48, 55, 35, 47, 37, 0, 41, 0, 16, 3, 95, 50, 88, 72, 6, 37,
+			84, 72, 36, 89, 65, 37, 47, 0, 0, 10, 135, 11, 1, 14, 1, 16, 196, 147, 67, 0, 0, 0, 6, 195, 65, 33, 84, 72, 0, 14,
+			3, 95, 56, 15, 6, 35, 89, 47, 39, 47, 116, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 63, 63, 52, 35, 49, 89,
+			47, 88, 108, 65, 36, 0, 0, 0, 5, 194, 37, 160, 72, 0, 17, 3, 95, 52, 88, 76, 6, 36, 47, 52, 72, 36, 89, 65, 37, 47,
+			0, 0, 12, 3, 1, 47, 19, 35, 49, 80, 37, 57, 40, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 76, 84, 20, 89, 36, 48, 47,
+			36, 65, 71, 52, 37, 89, 0, 17, 3, 95, 53, 88, 48, 6, 122, 124, 72, 4, 36, 89, 65, 37, 47, 0, 0, 0, 8, 197, 4, 146,
+			201, 16, 240, 20, 0, 0, 0, 0, 0, 5, 194, 49, 80, 17, 0, 6, 195, 60, 67, 192, 20, 16, 3, 95, 54, 88, 89, 6, 36, 91,
+			72, 36, 89, 65, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 5, 4, 128, 35, 48, 52, 108, 55, 37, 89, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 66, 57, 32, 50, 40, 65, 40, 52, 0, 0, 18, 3, 95, 56, 88, 6, 35, 89, 47, 119, 67, 72, 36, 89,
+			65, 37, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 57, 88, 72, 6, 36, 84, 37, 67, 72, 36, 89, 65, 37, 47, 0,
+			0, 12, 196, 56, 86, 137, 56, 67, 81, 107, 117, 114, 32, 0, 0, 0, 0, 7, 196, 77, 64, 82, 64, 72, 0, 0, 10, 3, 95, 63,
+			65, 71, 40, 52, 124, 0, 0, 0, 7, 196, 9, 37, 78, 60, 20, 0, 0, 0, 0, 0, 0, 0, 11, 3, 226, 153, 175, 72, 122, 12,
+			88, 89, 0, 0, 0, 12, 3, 226, 153, 173, 71, 36, 65, 114, 55, 89, 0, 0, 0, 0, 14, 4, 95, 15, 7, 15, 6, 39, 81, 39,
+			50, 36, 49, 0, 0, 0, 0, 0, 10, 199, 52, 144, 210, 61, 51, 198, 80, 20, 0, 0, 0, 0, 0, 0, 0, 5, 194, 64, 16, 72,
+			0, 12, 67, 64, 17, 0, 48, 35, 72, 119, 65, 36, 0, 0, 0, 8, 197, 8, 243, 5, 72, 240, 20, 0, 13, 4, 10, 197, 171, 14,
+			57, 115, 50, 37, 57, 89, 0, 0, 12, 4, 197, 161, 196, 183, 91, 80, 37, 52, 35, 0, 0, 13, 4, 10, 197, 171, 12, 57, 115, 55,
+			37, 57, 89, 0, 0, 8, 197, 44, 22, 137, 56, 240, 20, 8, 197, 36, 225, 9, 28, 240, 20, 8, 197, 24, 144, 83, 44, 240, 20, 0,
+			5, 194, 57, 80, 72, 0, 6, 195, 61, 67, 192, 20, 21, 67, 52, 147, 128, 65, 37, 50, 37, 89, 47, 52, 37, 57, 35, 0, 44, 81,
+			106, 97, 32, 14, 67, 52, 147, 128, 65, 37, 50, 37, 65, 40, 65, 89, 0, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 6, 37, 55,
+			57, 114, 50, 37, 0, 0, 0, 0, 17, 4, 95, 48, 77, 49, 47, 6, 115, 49, 89, 47, 119, 12, 91, 37, 0, 0, 13, 4, 95, 2,
+			18, 22, 6, 108, 89, 40, 65, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 10, 197, 171, 19, 72, 0, 7, 196, 9, 37,
+			84, 60, 20, 0, 0, 0, 15, 67, 56, 245, 128, 50, 39, 84, 36, 65, 71, 52, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135,
+			16, 15, 18, 20, 10, 196, 147, 66, 0, 6, 195, 4, 150, 128, 72, 0, 0, 0, 0, 0, 7, 196, 52, 85, 18, 60, 20, 0, 0, 10,
+			135, 2, 5, 14, 4, 197, 190, 15, 20, 10, 135, 2, 1, 14, 4, 197, 190, 15, 20, 0, 0, 0, 0, 6, 195, 72, 242, 211, 20, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 19, 15, 12, 6, 5, 4, 197, 190, 15, 20, 12, 137, 19, 15, 12,
+			6, 5, 4, 197, 190, 15, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 22, 9, 197, 134, 1, 72, 0, 0, 0, 0, 19,
+			4, 95, 3, 9, 18, 72, 6, 37, 35, 49, 52, 37, 47, 37, 89, 49, 113, 0, 0, 0, 0, 0, 8, 133, 22, 9, 197, 134, 9, 72,
+			0, 12, 3, 95, 194, 180, 35, 49, 124, 36, 50, 124, 0, 0, 7, 196, 56, 82, 213, 72, 66, 0, 0, 16, 67, 52, 18, 211, 65, 35,
+			49, 89, 37, 65, 113, 55, 116, 89, 0, 0, 14, 67, 56, 244, 192, 50, 119, 89, 118, 49, 40, 65, 89, 0, 0, 0, 0, 0, 13, 4,
+			95, 19, 20, 11, 89, 47, 34, 6, 114, 49, 0, 0, 0, 13, 4, 95, 1, 3, 21, 6, 35, 49, 57, 115, 47, 0, 0, 14, 3, 95,
+			194, 171, 48, 6, 109, 72, 37, 67, 35, 89, 0, 0, 9, 198, 64, 20, 9, 48, 224, 77, 66, 0, 0, 27, 3, 95, 194, 166, 89, 6,
+			35, 72, 35, 55, 108, 47, 35, 15, 89, 47, 6, 113, 84, 89, 84, 108, 47, 52, 35, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 18,
+			14, 7, 52, 6, 37, 50, 81, 0, 0, 0, 0, 0, 11, 136, 6, 18, 9, 11, 1, 19, 196, 147, 67, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 9, 198, 5, 85, 15, 52, 245, 15, 20, 0, 0, 0, 7, 196, 64, 144, 78, 60, 66, 0, 8, 197, 40,
+			80, 139, 85, 32, 66, 0, 19, 4, 95, 1, 3, 50, 72, 6, 40, 71, 40, 55, 124, 35, 49, 57, 115, 47, 0, 0, 16, 5, 4, 26,
+			196, 171, 22, 72, 88, 108, 84, 119, 57, 37, 89, 0, 0, 0, 0, 6, 195, 65, 52, 147, 17, 0, 6, 195, 73, 2, 64, 17, 0, 0,
+			0, 0, 14, 67, 60, 181, 0, 39, 49, 47, 114, 71, 52, 37, 89, 0, 11, 136, 4, 5, 11, 15, 12, 20, 196, 147, 67, 0, 0, 0,
+			28, 3, 95, 194, 191, 6, 35, 48, 81, 52, 122, 88, 47, 113, 15, 57, 6, 118, 47, 113, 57, 40, 65, 88, 108, 65, 36, 0, 0, 0,
+			7, 196, 56, 82, 193, 16, 66, 0, 0, 19, 3, 95, 194, 187, 48, 6, 109, 72, 37, 67, 35, 89, 15, 124, 6, 122, 47, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 2, 196, 129, 113, 0, 0, 7, 2, 197, 134, 36, 67, 0, 0, 8, 197, 5, 37, 137, 20, 224, 66,
+			8, 2, 195, 151, 52, 117, 88, 0, 0, 6, 195, 16, 84, 15, 20, 9, 66, 77, 64, 89, 35, 50, 47, 0, 0, 7, 2, 196, 141, 76,
+			36, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 167, 89, 36, 49, 124, 37, 57, 35, 0, 0, 5, 194, 56, 240, 72, 0, 12, 67, 56,
+			241, 0, 50, 119, 72, 35, 61, 35, 0, 10, 2, 194, 165, 57, 109, 50, 35, 89, 0, 0, 10, 2, 194, 162, 124, 36, 50, 47, 37, 0,
+			0, 13, 2, 194, 163, 65, 113, 52, 124, 37, 67, 35, 89, 0, 6, 2, 196, 147, 109, 0, 0, 0, 0, 14, 2, 194, 174, 52, 36, 79,
+			37, 89, 47, 52, 109, 124, 0, 0, 7, 2, 197, 151, 36, 34, 0, 0, 0, 0, 0, 0, 0, 16, 2, 194, 169, 118, 47, 114, 52, 47,
+			122, 89, 108, 71, 35, 89, 0, 0, 14, 2, 194, 182, 48, 35, 52, 35, 81, 52, 113, 83, 89, 0, 0, 0, 0, 10, 2, 194, 181, 65,
+			37, 49, 51, 114, 0, 0, 0, 7, 2, 196, 163, 79, 36, 0, 0, 10, 2, 194, 176, 81, 52, 113, 72, 37, 0, 0, 15, 2, 194, 177,
+			48, 55, 40, 89, 65, 108, 50, 40, 89, 89, 0, 0, 23, 2, 194, 190, 47, 52, 6, 108, 89, 15, 124, 4, 36, 47, 40, 52, 47, 72,
+			35, 61, 35, 89, 0, 0, 10, 2, 195, 183, 72, 35, 55, 108, 124, 0, 0, 11, 66, 77, 96, 89, 84, 109, 47, 116, 89, 0, 17, 2,
+			194, 188, 124, 6, 36, 47, 40, 52, 47, 72, 4, 35, 61, 35, 0, 0, 9, 2, 194, 189, 48, 40, 89, 36, 0, 0, 14, 4, 95, 3,
+			5, 4, 89, 6, 36, 72, 108, 55, 35, 0, 0, 6, 2, 196, 171, 108, 0, 0, 10, 135, 1, 4, 1, 4, 197, 190, 15, 20, 10, 135,
+			1, 4, 1, 4, 197, 190, 15, 66, 0, 16, 4, 95, 12, 9, 7, 55, 6, 37, 81, 35, 47, 115, 52, 35, 0, 7, 2, 197, 161, 36,
+			91, 0, 0, 7, 196, 24, 16, 212, 60, 20, 17, 5, 16, 18, 45, 11, 19, 48, 52, 122, 49, 91, 50, 122, 49, 89, 0, 0, 7, 2,
+			196, 183, 80, 36, 0, 0, 0, 0, 0, 6, 2, 197, 171, 115, 0, 0, 0, 7, 195, 88, 18, 64, 72, 8, 0, 0, 0, 5, 194, 81,
+			80, 72, 7, 2, 196, 188, 36, 61, 0, 0, 0, 0, 9, 134, 22, 9, 197, 134, 1, 19, 72, 0, 0, 0, 7, 2, 197, 190, 90, 36,
+			0, 0, 0, 9, 198, 64, 20, 133, 80, 19, 64, 66, 0, 0, 0, 0, 0, 0, 7, 196, 44, 18, 193, 60, 20, 7, 196, 44, 18, 193,
+			60, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 64, 21, 137, 76,
+			19, 64, 66, 0, 8, 133, 12, 196, 171, 4, 26, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 67, 72, 18, 128, 52, 35, 57, 119, 50, 89, 0, 0, 0, 0, 0, 13, 67, 8, 146, 128, 71, 37, 57, 40, 91, 116,
+			89, 0, 12, 2, 95, 35, 34, 36, 89, 47, 108, 47, 36, 0, 0, 12, 2, 95, 34, 48, 109, 72, 37, 67, 35, 89, 0, 0, 13, 138,
+			16, 1, 20, 9, 5, 197, 161, 196, 129, 13, 66, 16, 2, 95, 33, 37, 88, 89, 118, 49, 40, 65, 88, 108, 65, 36, 0, 0, 0, 14,
+			2, 95, 39, 35, 48, 39, 89, 47, 34, 114, 83, 89, 0, 0, 7, 196, 76, 19, 66, 60, 20, 0, 0, 9, 134, 20, 196, 129, 16, 1,
+			20, 66, 0, 0, 12, 4, 95, 3, 1, 16, 55, 122, 55, 116, 89, 0, 0, 16, 2, 95, 41, 6, 122, 49, 35, 84, 35, 15, 124, 6,
+			122, 47, 0, 0, 11, 2, 95, 40, 6, 122, 49, 35, 84, 35, 0, 0, 0, 10, 2, 95, 46, 48, 40, 50, 49, 124, 0, 0, 11, 2,
+			95, 45, 65, 108, 50, 40, 89, 89, 0, 0, 10, 2, 95, 44, 49, 39, 65, 35, 124, 0, 0, 9, 2, 95, 51, 47, 51, 108, 89, 0,
+			0, 10, 2, 95, 50, 72, 6, 37, 84, 37, 0, 0, 10, 2, 95, 49, 84, 6, 122, 50, 89, 0, 0, 11, 2, 95, 48, 50, 6, 40,
+			55, 55, 36, 0, 0, 13, 2, 95, 55, 89, 6, 36, 48, 47, 37, 67, 37, 0, 0, 7, 196, 72, 85, 18, 60, 20, 10, 2, 95, 54,
+			89, 6, 36, 91, 37, 0, 0, 14, 67, 40, 19, 150, 57, 35, 50, 84, 113, 52, 37, 89, 0, 10, 2, 95, 53, 48, 6, 122, 124, 37,
+			0, 0, 11, 2, 95, 52, 76, 6, 36, 47, 52, 37, 0, 0, 13, 2, 95, 59, 89, 36, 65, 37, 49, 114, 55, 89, 0, 0, 9, 2,
+			95, 58, 49, 114, 55, 89, 0, 0, 12, 2, 95, 57, 72, 6, 36, 84, 37, 67, 37, 0, 0, 12, 2, 95, 56, 6, 35, 89, 47, 119,
+			67, 37, 0, 0, 16, 2, 95, 63, 57, 118, 47, 113, 57, 40, 65, 88, 108, 65, 36, 0, 0, 17, 2, 95, 62, 55, 6, 122, 55, 113,
+			49, 89, 15, 48, 6, 35, 52, 0, 0, 0, 17, 2, 95, 60, 65, 6, 35, 88, 113, 49, 89, 15, 48, 6, 35, 52, 0, 0, 0, 0,
+			0, 12, 137, 16, 18, 15, 20, 5, 197, 190, 196, 147, 67, 7, 2, 95, 64, 35, 47, 0, 0, 0, 0, 0, 0, 0, 6, 195, 48, 81,
+			207, 20, 0, 0, 0, 0, 0, 0, 0, 15, 67, 16, 80, 192, 72, 36, 80, 36, 65, 71, 52, 37, 89, 0, 0, 0, 0, 5, 194, 85,
+			160, 72, 0, 0, 13, 4, 95, 4, 15, 20, 48, 6, 40, 50, 49, 124, 0, 0, 0, 0, 18, 2, 95, 91, 49, 84, 6, 35, 72, 52,
+			113, 47, 122, 49, 35, 84, 35, 0, 0, 6, 195, 88, 148, 147, 72, 0, 0, 15, 4, 95, 226, 128, 146, 72, 119, 65, 40, 88, 108, 65,
+			36, 0, 0, 20, 2, 95, 95, 48, 35, 89, 84, 108, 47, 52, 119, 57, 40, 65, 88, 108, 65, 36, 0, 0, 10, 2, 95, 94, 89, 35,
+			49, 50, 36, 0, 0, 23, 2, 95, 93, 49, 84, 6, 35, 72, 52, 113, 47, 122, 49, 35, 84, 35, 15, 124, 6, 122, 47, 0, 0, 27,
+			4, 95, 226, 128, 150, 72, 6, 40, 71, 40, 55, 124, 47, 113, 89, 47, 4, 113, 84, 89, 84, 108, 47, 52, 35, 0, 0, 15, 67, 24,
+			18, 192, 83, 35, 49, 40, 55, 47, 113, 47, 36, 0, 14, 4, 2, 45, 2, 1, 71, 122, 72, 52, 108, 71, 35, 0, 0, 0, 8, 197,
+			44, 20, 212, 72, 240, 20, 0, 26, 2, 95, 96, 6, 35, 48, 81, 52, 122, 88, 47, 116, 89, 15, 6, 35, 48, 39, 89, 47, 52, 39,
+			83, 89, 0, 0, 0, 0, 0, 9, 198, 56, 84, 1, 72, 179, 192, 67, 0, 0, 0, 0, 12, 4, 95, 7, 18, 22, 81, 52, 6, 113,
+			84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 9, 5, 11, 197, 161, 72, 0, 0, 0, 16, 2, 95, 123, 83, 6, 37,
+			81, 115, 52, 122, 49, 35, 84, 35, 0, 13, 4, 95, 4, 9, 1, 6, 40, 65, 55, 118, 124, 0, 0, 0, 0, 0, 10, 199, 36, 226,
+			207, 28, 226, 84, 60, 20, 0, 10, 2, 95, 126, 47, 37, 55, 72, 36, 0, 0, 21, 2, 95, 125, 83, 6, 37, 81, 115, 52, 122, 49,
+			35, 84, 35, 15, 124, 6, 122, 47, 0, 0, 15, 2, 95, 124, 89, 47, 113, 84, 89, 84, 108, 47, 52, 35, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 194, 84, 224, 72, 8, 0, 0, 6, 195, 33, 81, 207, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 14, 4, 95, 35, 51, 50, 47, 40, 49, 91, 40, 65, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36, 229, 5, 72,
+			209, 67, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 13, 196,
+			147, 19, 72, 0, 0, 6, 195, 49, 101, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 16, 243, 73, 56, 240, 20, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 4, 197, 190, 75, 109, 0, 0, 9, 198, 64, 17, 193, 48, 19, 64, 66, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 21, 82, 72, 0, 0, 0, 0,
+			6, 18, 66, 102, 0, 104, 0, 119, 0, 120, 0, 7, 6, 18, 67, 196, 141, 0, 196, 183, 0, 196, 188, 0, 197, 134, 0, 197, 190, 0,
+			7, 6, 18, 68, 105, 101, 109, 0, 97, 109, 0, 111, 115, 0, 196, 129, 0, 115, 0, 97, 0, 117, 0, 105, 0, 7, 6, 18, 69, 196,
+			129, 109, 0, 196, 129, 115, 0, 97, 115, 0, 97, 105, 0, 196, 129, 0, 117, 0, 97, 0, 7, 6, 18, 70, 105, 101, 109, 0, 105, 115,
+			0, 105, 109, 0, 111, 115, 0, 196, 171, 0, 105, 0, 7, 6, 18, 71, 196, 129, 0, 97, 0, 7, 6, 18, 72, 196, 147, 109, 0, 196,
+			147, 115, 0, 101, 115, 0, 101, 105, 0, 196, 147, 0, 101, 0, 105, 0, 117, 0, 7, 6, 18, 73, 97, 109, 105, 101, 115, 0, 97, 109,
+			196, 129, 115, 0, 97, 109, 97, 115, 0, 97, 109, 97, 0, 97, 109, 105, 0, 97, 109, 115, 0, 7, 6, 18, 74, 197, 161, 0, 115, 0,
+			7, 6, 18, 75, 116, 0, 100, 0, 106, 0, 7, 6, 18, 76, 105, 101, 109, 0, 111, 115, 0, 105, 0, 117, 0, 7, 6, 18, 77, 105,
+			101, 109, 0, 97, 109, 0, 111, 115, 0, 196, 129, 0, 115, 0, 7, 6, 18, 78, 196, 147, 0, 101, 0, 7, 6, 196, 129, 0, 3, 113,
+			0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 147, 0, 3, 109, 0, 7, 6, 196, 163, 0, 3, 79, 0, 7, 6, 196, 171, 0,
+			3, 108, 0, 7, 6, 196, 183, 0, 3, 80, 0, 7, 6, 196, 188, 0, 4, 1, 107, 2, 117, 3, 55, 57, 0, 1, 107, 2, 117, 0,
+			3, 61, 0, 7, 6, 197, 134, 0, 3, 67, 0, 7, 6, 197, 141, 0, 3, 114, 0, 7, 6, 197, 151, 0, 3, 34, 0, 7, 6, 197,
+			161, 0, 3, 91, 0, 7, 6, 197, 171, 0, 3, 115, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 3, 35, 0, 112, 3,
+			35, 48, 0, 105, 3, 116, 0, 117, 3, 118, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 104, 3, 76, 0, 3, 124, 0, 4,
+			104, 1, 105, 114, 100, 105, 114, 102, 2, 115, 3, 124, 107, 0, 104, 1, 114, 101, 2, 101, 114, 99, 111, 103, 115, 0, 7, 6, 100, 0,
+			3, 72, 0, 7, 6, 101, 0, 3, 36, 0, 105, 3, 117, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 8, 2,
+			32, 3, 81, 35, 0, 1, 32, 32, 15, 15, 2, 32, 3, 81, 35, 72, 35, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3,
+			37, 0, 101, 3, 122, 0, 117, 3, 123, 0, 7, 6, 106, 0, 3, 57, 0, 196, 129, 8, 3, 57, 113, 0, 196, 129, 110, 111, 8, 3,
+			57, 113, 50, 119, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 108, 3, 55, 55, 12, 0, 7, 6, 109, 0, 3,
+			65, 0, 97, 122, 8, 3, 65, 35, 88, 0, 109, 3, 65, 65, 12, 0, 7, 6, 110, 0, 3, 50, 0, 110, 3, 50, 50, 12, 0, 4,
+			2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 4, 1, 97, 2, 114, 3, 39, 0, 1, 97, 104, 0, 1, 98, 2, 98, 0, 1,
+			98, 2, 106, 18, 69, 32, 0, 1, 98, 2, 107, 115, 0, 1, 98, 2, 109, 98, 0, 1, 98, 2, 110, 196, 147, 0, 1, 98, 2, 114,
+			97, 107, 0, 1, 98, 2, 114, 97, 116, 0, 1, 98, 2, 114, 116, 0, 1, 98, 2, 116, 196, 129, 110, 0, 1, 98, 2, 196, 188, 197,
+			161, 0, 1, 98, 97, 2, 110, 0, 1, 98, 97, 2, 114, 0, 1, 98, 97, 107, 2, 116, 0, 1, 98, 97, 108, 2, 114, 97, 0, 1,
+			98, 97, 115, 2, 116, 0, 1, 98, 105, 114, 2, 110, 117, 107, 0, 1, 98, 109, 111, 0, 1, 98, 114, 97, 107, 0, 1, 98, 114, 117,
+			116, 0, 1, 99, 2, 108, 108, 0, 1, 99, 101, 109, 0, 1, 100, 2, 99, 0, 1, 100, 2, 100, 101, 107, 0, 1, 100, 2, 103, 109,
+			0, 1, 100, 2, 107, 117, 0, 1, 100, 2, 109, 105, 110, 0, 1, 100, 2, 109, 110, 18, 69, 32, 0, 1, 100, 2, 110, 107, 0, 1,
+			100, 2, 110, 110, 0, 1, 100, 2, 112, 0, 1, 100, 2, 114, 105, 0, 1, 100, 2, 116, 196, 129, 99, 0, 1, 100, 2, 116, 196, 147,
+			0, 1, 100, 2, 122, 0, 1, 100, 97, 2, 107, 0, 1, 100, 97, 2, 112, 0, 1, 100, 105, 101, 115, 112, 0, 1, 100, 105, 112, 115,
+			0, 1, 100, 110, 97, 109, 2, 108, 0, 1, 100, 111, 116, 114, 111, 2, 107, 0, 1, 101, 0, 1, 101, 163, 196, 0, 1, 102, 0, 1,
+			102, 2, 110, 111, 0, 1, 102, 2, 116, 111, 0, 1, 103, 2, 98, 101, 0, 1, 103, 2, 107, 0, 1, 103, 2, 110, 0, 1, 103, 2,
+			114, 105, 108, 0, 1, 103, 2, 116, 102, 0, 1, 103, 97, 2, 110, 196, 129, 0, 1, 103, 97, 102, 0, 1, 103, 105, 122, 2, 116, 18,
+			68, 32, 0, 1, 103, 110, 105, 114, 0, 1, 104, 0, 1, 105, 0, 1, 105, 2, 103, 0, 1, 105, 98, 0, 1, 105, 99, 2, 110, 0,
+			1, 105, 114, 116, 0, 1, 105, 115, 0, 1, 106, 2, 100, 101, 0, 1, 106, 2, 103, 0, 1, 106, 2, 110, 105, 0, 1, 106, 97, 109,
+			0, 1, 106, 102, 0, 1, 107, 2, 97, 108, 0, 1, 107, 2, 100, 101, 107, 0, 1, 107, 2, 100, 105, 102, 0, 1, 107, 2, 100, 196,
+			147, 0, 1, 107, 2, 101, 0, 1, 107, 2, 103, 110, 0, 1, 107, 2, 107, 111, 0, 1, 107, 2, 108, 97, 98, 0, 1, 107, 2, 108,
+			101, 0, 1, 107, 2, 108, 104, 0, 1, 107, 2, 108, 105, 0, 1, 107, 2, 108, 111, 0, 1, 107, 2, 108, 112, 0, 1, 107, 2, 108,
+			196, 129, 0, 1, 107, 2, 108, 196, 147, 0, 1, 107, 2, 108, 196, 171, 0, 1, 107, 2, 112, 101, 110, 0, 1, 107, 2, 112, 105, 106,
+			0, 1, 107, 2, 112, 117, 108, 196, 129, 0, 1, 107, 2, 112, 117, 108, 196, 147, 0, 1, 107, 2, 112, 196, 147, 17, 67, 0, 1, 107,
+			2, 112, 196, 147, 32, 0, 1, 107, 2, 114, 17, 65, 102, 0, 1, 107, 2, 114, 97, 0, 1, 107, 2, 114, 101, 106, 0, 1, 107, 2,
+			114, 101, 107, 0, 1, 107, 2, 114, 101, 108, 0, 1, 107, 2, 114, 101, 115, 0, 1, 107, 2, 114, 112, 0, 1, 107, 2, 114, 116, 0,
+			1, 107, 2, 114, 117, 109, 0, 1, 107, 2, 114, 117, 110, 0, 1, 107, 2, 114, 117, 112, 0, 1, 107, 2, 114, 118, 0, 1, 107, 2,
+			115, 105, 110, 0, 1, 107, 2, 115, 109, 0, 1, 107, 2, 115, 116, 196, 171, 109, 0, 1, 107, 2, 116, 97, 110, 0, 1, 107, 2, 116,
+			101, 0, 1, 107, 2, 116, 108, 0, 1, 107, 2, 116, 196, 147, 0, 1, 107, 2, 118, 0, 1, 107, 2, 196, 183, 0, 1, 107, 97, 2,
+			114, 0, 1, 107, 101, 100, 0, 1, 107, 105, 101, 108, 0, 1, 107, 105, 110, 0, 1, 107, 108, 97, 0, 1, 107, 111, 107, 2, 115, 0,
+			1, 107, 111, 115, 0, 1, 107, 111, 161, 197, 0, 1, 107, 114, 97, 110, 0, 1, 107, 114, 97, 115, 0, 1, 108, 2, 103, 97, 114, 0,
+			1, 108, 2, 106, 18, 71, 108, 0, 1, 108, 2, 107, 97, 108, 0, 1, 108, 2, 114, 110, 0, 1, 108, 2, 115, 106, 0, 1, 108, 2,
+			116, 18, 72, 32, 0, 1, 108, 2, 196, 163, 105, 122, 12, 0, 1, 108, 98, 2, 107, 0, 1, 108, 98, 2, 110, 0, 1, 108, 98, 2,
+			196, 183, 0, 1, 108, 101, 109, 2, 100, 114, 0, 1, 108, 101, 109, 2, 109, 0, 1, 108, 101, 118, 0, 1, 108, 102, 0, 1, 108, 103,
+			2, 98, 0, 1, 108, 103, 2, 109, 0, 1, 108, 103, 2, 114, 105, 0, 1, 108, 104, 2, 114, 111, 0, 1, 108, 105, 102, 0, 1, 108,
+			105, 112, 2, 116, 0, 1, 108, 107, 2, 122, 101, 116, 0, 1, 108, 111, 104, 0, 1, 108, 111, 107, 0, 1, 108, 112, 2, 109, 0, 1,
+			108, 112, 2, 118, 18, 68, 32, 0, 1, 108, 112, 115, 107, 101, 0, 1, 108, 115, 2, 118, 0, 1, 108, 115, 105, 100, 0, 1, 109, 2,
+			98, 0, 1, 109, 2, 100, 97, 108, 0, 1, 109, 2, 100, 101, 0, 1, 109, 2, 100, 105, 102, 0, 1, 109, 2, 100, 117, 0, 1, 109,
+			2, 100, 196, 129, 108, 0, 1, 109, 2, 108, 100, 0, 1, 109, 2, 108, 101, 0, 1, 109, 2, 108, 105, 0, 1, 109, 2, 108, 117, 0,
+			1, 109, 2, 109, 101, 110, 116, 0, 1, 109, 2, 110, 97, 114, 104, 0, 1, 109, 2, 110, 105, 116, 0, 1, 109, 2, 110, 111, 0, 1,
+			109, 2, 110, 115, 116, 0, 1, 109, 2, 110, 116, 0, 1, 109, 2, 112, 0, 1, 109, 2, 114, 97, 0, 1, 109, 2, 114, 102, 0, 1,
+			109, 2, 114, 115, 0, 1, 109, 2, 114, 196, 129, 0, 1, 109, 2, 116, 105, 0, 1, 109, 2, 116, 196, 171, 0, 1, 109, 2, 197, 161,
+			101, 0, 1, 109, 97, 2, 110, 0, 1, 109, 97, 2, 114, 0, 1, 109, 101, 100, 0, 1, 109, 105, 2, 110, 0, 1, 109, 114, 97, 104,
+			2, 110, 105, 122, 196, 147, 0, 1, 109, 114, 97, 104, 2, 110, 196, 147, 0, 1, 109, 115, 2, 196, 188, 0, 1, 109, 115, 105, 101, 115,
+			0, 1, 109, 115, 111, 2, 103, 0, 1, 109, 116, 97, 2, 115, 0, 1, 109, 117, 104, 0, 1, 110, 2, 107, 18, 75, 0, 1, 110, 2,
+			109, 101, 110, 0, 1, 110, 2, 109, 105, 110, 18, 71, 0, 1, 110, 2, 109, 105, 110, 18, 78, 0, 1, 110, 2, 114, 98, 0, 1, 110,
+			2, 114, 100, 0, 1, 110, 2, 114, 109, 0, 1, 110, 2, 114, 118, 0, 1, 110, 2, 116, 97, 114, 0, 1, 110, 2, 116, 196, 129, 114,
+			0, 1, 110, 2, 118, 18, 69, 32, 0, 1, 110, 2, 118, 97, 116, 0, 1, 110, 2, 118, 101, 108, 18, 72, 32, 0, 1, 110, 2, 118,
+			111, 0, 1, 110, 2, 118, 196, 129, 99, 105, 0, 1, 110, 97, 2, 108, 0, 1, 110, 97, 2, 109, 0, 1, 110, 97, 2, 110, 0, 1,
+			110, 97, 2, 116, 0, 1, 110, 97, 101, 107, 111, 0, 1, 110, 97, 114, 97, 112, 0, 1, 110, 101, 99, 115, 0, 1, 110, 101, 100, 0,
+			1, 110, 101, 102, 0, 1, 110, 101, 103, 0, 1, 110, 101, 116, 115, 2, 103, 0, 1, 110, 103, 0, 1, 110, 103, 97, 0, 1, 110, 105,
+			97, 107, 0, 1, 110, 105, 108, 2, 116, 105, 112, 0, 1, 110, 105, 109, 97, 0, 1, 110, 105, 118, 107, 101, 0, 1, 110, 111, 0, 1,
+			110, 111, 103, 0, 1, 110, 111, 109, 0, 1, 110, 111, 115, 0, 1, 110, 112, 105, 104, 0, 1, 110, 114, 97, 0, 1, 110, 116, 101, 0,
+			1, 112, 2, 100, 101, 0, 1, 112, 2, 101, 0, 1, 112, 2, 108, 97, 0, 1, 112, 2, 108, 101, 109, 0, 1, 112, 2, 108, 105, 0,
+			1, 112, 2, 108, 111, 0, 1, 112, 2, 108, 115, 116, 0, 1, 112, 2, 108, 196, 129, 0, 1, 112, 2, 108, 196, 171, 0, 1, 112, 2,
+			109, 101, 114, 0, 1, 112, 2, 109, 112, 0, 1, 112, 2, 110, 99, 0, 1, 112, 2, 112, 0, 1, 112, 2, 114, 99, 0, 1, 112, 2,
+			114, 111, 0, 1, 112, 2, 114, 116, 0, 1, 112, 2, 115, 116, 97, 109, 0, 1, 112, 2, 115, 116, 101, 109, 0, 1, 112, 2, 115, 116,
+			101, 110, 0, 1, 112, 2, 115, 116, 101, 114, 0, 1, 112, 2, 115, 116, 109, 0, 1, 112, 2, 115, 116, 115, 111, 0, 1, 112, 2, 115,
+			116, 117, 108, 0, 1, 112, 2, 116, 101, 110, 0, 1, 112, 2, 122, 0, 1, 112, 2, 196, 147, 0, 1, 112, 97, 2, 107, 0, 1, 112,
+			97, 2, 108, 0, 1, 112, 97, 2, 115, 116, 114, 111, 102, 0, 1, 112, 101, 2, 108, 0, 1, 112, 101, 2, 115, 18, 68, 32, 0, 1,
+			112, 101, 100, 0, 1, 112, 105, 104, 0, 1, 112, 105, 116, 0, 1, 112, 105, 116, 110, 97, 0, 1, 112, 111, 0, 1, 112, 111, 114, 112,
+			0, 1, 112, 114, 101, 116, 110, 105, 0, 1, 112, 115, 2, 110, 0, 1, 112, 115, 2, 114, 116, 0, 1, 112, 115, 101, 100, 0, 1, 112,
+			115, 105, 100, 0, 1, 114, 2, 108, 0, 1, 114, 2, 109, 97, 0, 1, 114, 2, 109, 98, 0, 1, 114, 2, 109, 196, 129, 0, 1, 114,
+			2, 114, 0, 1, 114, 2, 115, 105, 106, 0, 1, 114, 2, 115, 116, 98, 0, 1, 114, 2, 116, 101, 114, 0, 1, 114, 2, 116, 196, 147,
+			0, 1, 114, 97, 108, 111, 112, 0, 1, 114, 97, 109, 0, 1, 114, 97, 112, 2, 100, 0, 1, 114, 98, 2, 109, 0, 1, 114, 98, 2,
+			110, 0, 1, 114, 98, 2, 197, 161, 0, 1, 114, 100, 105, 104, 0, 1, 114, 101, 2, 103, 0, 1, 114, 101, 97, 2, 100, 0, 1, 114,
+			101, 97, 2, 102, 111, 0, 1, 114, 101, 97, 2, 115, 111, 0, 1, 114, 101, 116, 115, 0, 1, 114, 102, 2, 110, 0, 1, 114, 102, 97,
+			0, 1, 114, 103, 97, 0, 1, 114, 104, 2, 109, 0, 1, 114, 104, 2, 110, 111, 0, 1, 114, 104, 110, 105, 115, 0, 1, 114, 105, 98,
+			0, 1, 114, 105, 101, 110, 0, 1, 114, 105, 112, 0, 1, 114, 105, 190, 197, 0, 1, 114, 107, 2, 110, 197, 161, 0, 1, 114, 107, 2,
+			115, 0, 1, 114, 107, 97, 0, 1, 114, 111, 108, 104, 0, 1, 114, 111, 112, 0, 1, 114, 112, 2, 98, 0, 1, 114, 112, 2, 99, 0,
+			1, 114, 112, 2, 100, 0, 1, 114, 112, 2, 103, 110, 0, 1, 114, 112, 2, 103, 114, 0, 1, 114, 112, 2, 106, 0, 1, 114, 112, 2,
+			107, 0, 1, 114, 112, 2, 108, 101, 0, 1, 114, 112, 2, 109, 0, 1, 114, 112, 2, 112, 0, 1, 114, 112, 2, 115, 112, 0, 1, 114,
+			112, 2, 115, 116, 0, 1, 114, 112, 2, 116, 101, 0, 1, 114, 112, 2, 116, 111, 0, 1, 114, 112, 2, 118, 105, 110, 0, 1, 114, 112,
+			2, 118, 105, 122, 0, 1, 114, 112, 2, 118, 196, 171, 122, 0, 1, 114, 112, 2, 197, 190, 0, 1, 114, 112, 101, 0, 1, 114, 112, 109,
+			105, 0, 1, 114, 116, 2, 109, 0, 1, 114, 116, 2, 116, 0, 1, 114, 116, 101, 109, 0, 1, 114, 116, 101, 114, 0, 1, 114, 116, 105,
+			0, 1, 114, 116, 110, 105, 0, 1, 114, 116, 115, 97, 2, 110, 0, 1, 114, 116, 115, 107, 111, 0, 1, 115, 2, 99, 105, 0, 1, 115,
+			2, 107, 111, 0, 1, 115, 2, 107, 114, 0, 1, 115, 2, 108, 97, 114, 0, 1, 115, 2, 108, 102, 0, 1, 115, 2, 108, 105, 100, 0,
+			1, 115, 2, 108, 111, 196, 163, 0, 1, 115, 2, 108, 115, 116, 0, 1, 115, 2, 108, 116, 0, 1, 115, 2, 108, 118, 0, 1, 115, 2,
+			108, 196, 129, 114, 0, 1, 115, 2, 108, 196, 171, 100, 18, 68, 32, 0, 1, 115, 2, 108, 196, 171, 100, 196, 129, 0, 1, 115, 2, 110,
+			111, 0, 1, 115, 2, 110, 196, 129, 0, 1, 115, 2, 112, 114, 0, 1, 115, 2, 114, 0, 1, 115, 2, 118, 0, 1, 115, 97, 107, 110,
+			105, 0, 1, 115, 97, 114, 2, 108, 0, 1, 115, 98, 97, 2, 108, 0, 1, 115, 105, 2, 110, 0, 1, 115, 107, 101, 0, 1, 115, 110,
+			111, 107, 0, 1, 116, 2, 107, 115, 0, 1, 116, 2, 108, 101, 114, 0, 1, 116, 2, 109, 97, 115, 0, 1, 116, 2, 110, 0, 1, 116,
+			2, 110, 105, 122, 0, 1, 116, 2, 110, 110, 0, 1, 116, 2, 114, 0, 1, 116, 2, 114, 97, 0, 1, 116, 2, 114, 111, 0, 1, 116,
+			2, 114, 196, 129, 0, 1, 116, 2, 116, 196, 147, 109, 0, 1, 116, 97, 100, 0, 1, 116, 97, 109, 101, 110, 105, 107, 0, 1, 116, 101,
+			98, 0, 1, 116, 101, 103, 0, 1, 116, 101, 109, 2, 100, 0, 1, 116, 101, 110, 0, 1, 116, 101, 116, 2, 118, 0, 1, 116, 105, 99,
+			0, 1, 116, 105, 108, 0, 1, 116, 110, 97, 2, 108, 0, 1, 116, 110, 97, 2, 110, 0, 1, 116, 110, 97, 112, 0, 1, 116, 110, 101,
+			0, 1, 116, 110, 111, 0, 1, 116, 111, 102, 2, 103, 114, 0, 1, 116, 111, 109, 2, 100, 114, 111, 0, 1, 116, 111, 114, 112, 0, 1,
+			116, 112, 101, 2, 21, 0, 1, 116, 112, 105, 114, 107, 0, 1, 116, 114, 97, 107, 0, 1, 116, 114, 111, 0, 1, 116, 115, 2, 107, 104,
+			0, 1, 116, 115, 2, 109, 97, 116, 0, 1, 116, 115, 101, 114, 104, 0, 1, 116, 115, 105, 104, 0, 1, 116, 115, 105, 114, 97, 0, 1,
+			116, 115, 111, 2, 112, 18, 68, 32, 0, 1, 116, 117, 97, 2, 109, 0, 1, 116, 117, 97, 2, 114, 105, 0, 1, 116, 117, 108, 112, 2,
+			107, 0, 1, 118, 2, 98, 0, 1, 118, 2, 107, 97, 0, 1, 118, 2, 108, 100, 0, 1, 118, 2, 108, 101, 106, 0, 1, 118, 2, 108,
+			102, 0, 1, 118, 2, 108, 116, 0, 1, 118, 2, 108, 117, 0, 1, 118, 2, 108, 118, 0, 1, 118, 97, 102, 0, 1, 118, 97, 108, 115,
+			0, 1, 118, 97, 114, 98, 0, 1, 118, 101, 2, 108, 0, 1, 118, 105, 0, 1, 118, 105, 97, 114, 2, 32, 0, 1, 118, 107, 0, 1,
+			118, 110, 111, 107, 0, 1, 118, 114, 101, 110, 0, 1, 119, 0, 1, 120, 0, 1, 122, 2, 106, 18, 68, 32, 12, 0, 1, 122, 2, 110,
+			17, 65, 116, 111, 0, 1, 122, 2, 110, 100, 0, 1, 122, 97, 114, 0, 1, 122, 101, 109, 0, 1, 122, 105, 2, 108, 0, 1, 122, 110,
+			101, 0, 1, 161, 197, 2, 107, 0, 1, 161, 197, 2, 115, 101, 106, 0, 1, 190, 197, 2, 107, 101, 106, 0, 1, 190, 197, 2, 110, 103,
+			0, 1, 190, 197, 97, 109, 0, 1, 190, 197, 100, 2, 117, 108, 0, 2, 18, 66, 0, 2, 18, 71, 0, 2, 28, 17, 12, 12, 12, 12,
+			0, 2, 98, 97, 109, 0, 2, 98, 106, 101, 0, 2, 100, 105, 97, 0, 2, 105, 0, 2, 107, 101, 0, 2, 107, 115, 105, 0, 2, 107,
+			115, 111, 108, 0, 2, 107, 116, 0, 2, 107, 116, 111, 0, 2, 107, 117, 108, 0, 2, 107, 117, 112, 0, 2, 107, 196, 129, 108, 0, 2,
+			108, 101, 111, 0, 2, 108, 105, 103, 0, 2, 108, 105, 109, 112, 0, 2, 108, 111, 103, 0, 2, 108, 111, 196, 163, 0, 2, 108, 196, 171,
+			118, 0, 2, 109, 110, 105, 98, 0, 2, 109, 196, 129, 114, 0, 2, 110, 103, 0, 2, 110, 107, 111, 0, 2, 110, 111, 0, 2, 110, 116,
+			111, 0, 2, 112, 99, 0, 2, 112, 101, 114, 97, 116, 0, 2, 112, 111, 0, 2, 112, 116, 105, 107, 0, 2, 112, 116, 105, 109, 0, 2,
+			112, 116, 105, 115, 0, 2, 112, 116, 105, 196, 183, 0, 2, 114, 97, 110, 12, 0, 2, 114, 97, 116, 0, 2, 114, 100, 0, 2, 114, 103,
+			0, 2, 114, 104, 105, 100, 0, 2, 114, 105, 101, 110, 0, 2, 114, 105, 103, 0, 2, 114, 105, 196, 163, 0, 2, 114, 107, 0, 2, 114,
+			110, 105, 116, 0, 2, 114, 116, 111, 0, 2, 114, 196, 129, 107, 0, 2, 114, 196, 129, 116, 0, 2, 114, 196, 183, 0, 2, 115, 99, 105,
+			108, 0, 2, 115, 109, 111, 0, 2, 117, 0, 2, 122, 111, 110, 0, 8, 2, 98, 108, 105, 103, 0, 8, 2, 98, 115, 0, 8, 2, 100,
+			101, 107, 0, 8, 2, 107, 115, 97, 110, 18, 69, 32, 0, 8, 2, 107, 115, 102, 0, 8, 2, 108, 97, 102, 18, 68, 32, 0, 8, 2,
+			108, 103, 18, 69, 32, 0, 8, 2, 110, 100, 97, 116, 114, 0, 8, 2, 112, 101, 114, 0, 8, 2, 115, 107, 97, 114, 18, 68, 32, 0,
+			8, 2, 118, 196, 129, 99, 0, 8, 2, 196, 188, 101, 103, 18, 68, 32, 0, 8, 98, 2, 108, 196, 171, 100, 18, 68, 32, 0, 8, 98,
+			2, 116, 18, 72, 32, 0, 8, 100, 2, 103, 18, 68, 32, 0, 8, 100, 2, 107, 18, 68, 32, 0, 8, 100, 110, 105, 0, 8, 100, 129,
+			196, 2, 108, 102, 18, 68, 0, 8, 106, 2, 116, 18, 69, 32, 0, 8, 107, 2, 106, 18, 69, 0, 8, 107, 2, 114, 196, 129, 0, 8,
+			107, 105, 112, 0, 8, 107, 115, 97, 2, 108, 100, 18, 68, 32, 0, 8, 108, 2, 108, 105, 116, 18, 69, 32, 0, 8, 108, 2, 110, 0,
+			8, 108, 2, 116, 105, 197, 134, 18, 69, 0, 8, 108, 97, 2, 116, 0, 8, 108, 97, 103, 2, 112, 18, 68, 0, 8, 108, 105, 107, 0,
+			8, 109, 2, 110, 0, 8, 110, 2, 97, 115, 18, 68, 32, 0, 8, 110, 2, 116, 18, 69, 32, 0, 8, 110, 2, 118, 101, 109, 98, 0,
+			8, 110, 97, 110, 0, 8, 110, 101, 116, 115, 0, 8, 112, 2, 108, 105, 101, 100, 0, 8, 112, 2, 110, 105, 106, 18, 68, 32, 0, 8,
+			112, 2, 116, 97, 197, 161, 18, 69, 0, 8, 114, 2, 98, 101, 114, 116, 0, 8, 114, 2, 100, 101, 114, 105, 107, 18, 68, 32, 0, 8,
+			114, 2, 107, 196, 129, 100, 18, 72, 32, 0, 8, 114, 2, 122, 101, 116, 18, 72, 32, 0, 8, 114, 2, 122, 196, 171, 110, 18, 72, 32,
+			0, 8, 114, 97, 98, 2, 107, 0, 8, 114, 97, 98, 2, 109, 0, 8, 114, 97, 98, 2, 110, 17, 65, 0, 8, 114, 98, 2, 107, 196,
+			129, 116, 18, 68, 32, 0, 8, 114, 98, 108, 117, 2, 107, 18, 69, 32, 0, 8, 114, 99, 105, 109, 0, 8, 114, 103, 2, 122, 110, 105,
+			106, 0, 8, 114, 107, 105, 109, 2, 12, 0, 8, 114, 116, 2, 106, 0, 8, 116, 2, 110, 105, 106, 18, 69, 32, 0, 8, 116, 2, 112,
+			98, 0, 8, 116, 2, 112, 105, 110, 97, 109, 0, 8, 116, 2, 112, 109, 0, 8, 116, 2, 112, 196, 129, 122, 18, 68, 32, 0, 8, 116,
+			2, 114, 101, 0, 8, 116, 2, 114, 112, 17, 65, 100, 0, 8, 116, 2, 114, 116, 18, 72, 32, 0, 8, 116, 105, 118, 2, 108, 100, 18,
+			68, 32, 0, 8, 116, 107, 101, 104, 0, 8, 116, 110, 97, 2, 197, 134, 105, 110, 18, 69, 32, 0, 8, 116, 117, 97, 0, 8, 122, 101,
+			2, 116, 0, 8, 122, 105, 0, 8, 161, 197, 2, 114, 116, 18, 76, 0, 114, 112, 111, 1, 107, 3, 39, 34, 48, 39, 0, 4, 116, 111,
+			1, 108, 2, 32, 3, 39, 47, 39, 0, 116, 111, 8, 0, 116, 111, 1, 109, 3, 39, 47, 114, 0, 4, 112, 111, 1, 114, 116, 110, 97,
+			3, 39, 48, 39, 0, 112, 111, 8, 116, 2, 103, 0, 112, 111, 8, 116, 2, 108, 0, 112, 111, 8, 116, 2, 110, 0, 112, 116, 111, 8,
+			3, 39, 48, 47, 39, 0, 107, 97, 107, 111, 1, 107, 2, 108, 3, 39, 49, 35, 49, 114, 0, 107, 111, 107, 2, 18, 68, 32, 3, 39,
+			49, 39, 49, 0, 107, 111, 109, 111, 1, 108, 3, 39, 49, 39, 65, 39, 0, 107, 111, 100, 1, 114, 107, 3, 39, 49, 39, 72, 0, 4,
+			107, 111, 1, 114, 2, 112, 101, 3, 39, 49, 114, 0, 107, 111, 1, 116, 111, 114, 112, 0, 4, 110, 1, 107, 3, 39, 50, 0, 110, 8,
+			108, 107, 0, 4, 110, 111, 1, 107, 3, 39, 50, 39, 0, 110, 111, 8, 109, 0, 4, 110, 111, 1, 100, 3, 39, 50, 114, 0, 110, 111,
+			1, 107, 101, 0, 110, 111, 1, 114, 116, 115, 97, 0, 114, 111, 1, 107, 3, 39, 52, 39, 0, 114, 110, 111, 1, 112, 3, 39, 52, 50,
+			39, 0, 109, 1, 107, 3, 39, 65, 0, 4, 109, 111, 1, 104, 3, 39, 65, 39, 0, 109, 111, 1, 107, 0, 109, 111, 1, 116, 0, 109,
+			111, 116, 2, 111, 3, 39, 65, 39, 47, 0, 109, 111, 110, 111, 115, 111, 1, 108, 3, 39, 65, 39, 50, 6, 39, 89, 39, 0, 109, 112,
+			111, 1, 107, 3, 39, 65, 48, 39, 0, 110, 103, 111, 108, 111, 1, 109, 3, 39, 68, 81, 39, 55, 39, 0, 110, 103, 111, 1, 109, 3,
+			39, 68, 81, 114, 0, 98, 1, 107, 3, 39, 71, 0, 98, 111, 1, 114, 2, 116, 3, 39, 71, 39, 0, 100, 105, 111, 8, 3, 39, 72,
+			37, 114, 0, 4, 100, 111, 1, 106, 3, 39, 72, 39, 0, 100, 111, 1, 114, 2, 100, 101, 110, 0, 100, 111, 8, 0, 103, 111, 1, 108,
+			3, 39, 81, 39, 0, 118, 111, 1, 114, 112, 3, 39, 84, 39, 0, 118, 103, 111, 114, 111, 100, 1, 110, 3, 39, 84, 81, 39, 34, 39,
+			72, 0, 122, 111, 1, 108, 105, 102, 3, 39, 88, 114, 0, 115, 116, 111, 106, 1, 100, 3, 39, 89, 47, 39, 57, 0, 115, 102, 111, 1,
+			102, 3, 39, 89, 83, 114, 0, 4, 115, 111, 1, 98, 105, 114, 3, 39, 89, 114, 0, 115, 111, 1, 108, 105, 102, 0, 111, 3, 39, 114,
+			0, 4, 1, 98, 2, 108, 3, 114, 0, 1, 98, 2, 114, 115, 0, 1, 99, 114, 101, 104, 2, 103, 0, 1, 100, 101, 104, 2, 110, 0,
+			1, 100, 107, 101, 110, 97, 0, 1, 100, 110, 2, 109, 18, 68, 32, 0, 1, 100, 110, 111, 103, 2, 108, 0, 1, 100, 114, 2, 109, 18,
+			68, 32, 0, 1, 101, 100, 105, 118, 0, 1, 102, 2, 110, 105, 0, 1, 103, 2, 103, 0, 1, 103, 2, 110, 105, 106, 0, 1, 103, 2,
+			114, 105, 106, 0, 1, 103, 2, 116, 105, 107, 0, 1, 103, 2, 116, 105, 115, 0, 1, 103, 2, 196, 163, 0, 1, 103, 97, 2, 110, 0,
+			1, 103, 101, 2, 110, 0, 1, 103, 101, 98, 2, 110, 105, 0, 1, 103, 101, 108, 97, 2, 114, 0, 1, 103, 101, 116, 97, 107, 2, 114,
+			0, 1, 103, 114, 101, 110, 101, 0, 1, 103, 114, 117, 102, 2, 110, 0, 1, 105, 2, 100, 18, 72, 32, 0, 1, 105, 2, 110, 18, 72,
+			32, 0, 1, 105, 100, 97, 114, 0, 1, 105, 100, 105, 0, 1, 105, 100, 117, 97, 0, 1, 105, 114, 116, 97, 112, 0, 1, 105, 118, 97,
+			0, 1, 106, 108, 0, 1, 107, 2, 100, 18, 77, 32, 0, 1, 107, 2, 109, 18, 69, 32, 12, 0, 1, 107, 97, 108, 2, 110, 0, 1,
+			107, 110, 105, 115, 0, 1, 107, 115, 2, 112, 18, 68, 32, 0, 1, 107, 115, 2, 112, 105, 106, 18, 69, 32, 0, 1, 107, 115, 2, 112,
+			105, 115, 0, 1, 108, 2, 103, 12, 0, 1, 108, 2, 110, 0, 1, 108, 2, 196, 163, 0, 1, 108, 2, 196, 163, 12, 0, 1, 108, 97,
+			2, 103, 0, 1, 108, 97, 107, 2, 114, 0, 1, 108, 104, 2, 114, 0, 1, 108, 105, 2, 103, 0, 1, 108, 107, 105, 99, 0, 1, 108,
+			107, 108, 111, 102, 0, 1, 108, 111, 2, 110, 105, 106, 0, 1, 108, 111, 2, 110, 105, 115, 116, 0, 1, 108, 111, 115, 0, 1, 109, 2,
+			99, 97, 114, 0, 1, 109, 2, 100, 18, 69, 32, 0, 1, 109, 97, 110, 105, 100, 0, 1, 109, 101, 2, 99, 105, 0, 1, 109, 105, 101,
+			110, 112, 0, 1, 109, 114, 97, 104, 2, 110, 0, 1, 109, 115, 111, 0, 1, 110, 2, 100, 18, 72, 32, 0, 1, 110, 2, 109, 18, 68,
+			32, 0, 1, 110, 2, 109, 18, 72, 32, 0, 1, 110, 2, 109, 105, 106, 18, 69, 32, 0, 1, 110, 97, 2, 100, 0, 1, 110, 105, 107,
+			0, 1, 110, 112, 105, 104, 2, 122, 18, 72, 32, 0, 1, 112, 2, 108, 18, 68, 32, 0, 1, 112, 2, 108, 18, 72, 32, 0, 1, 112,
+			109, 111, 112, 0, 1, 114, 100, 2, 109, 18, 68, 0, 1, 114, 101, 97, 0, 1, 114, 101, 108, 107, 115, 0, 1, 114, 104, 2, 110, 0,
+			1, 114, 105, 101, 0, 1, 114, 107, 97, 109, 0, 1, 114, 107, 105, 2, 110, 0, 1, 114, 116, 2, 102, 18, 69, 32, 0, 1, 114, 116,
+			2, 112, 0, 1, 114, 116, 105, 2, 110, 0, 1, 114, 116, 107, 101, 108, 101, 0, 1, 114, 116, 110, 111, 107, 0, 1, 114, 117, 107, 2,
+			114, 18, 72, 32, 0, 1, 115, 2, 108, 111, 0, 1, 115, 2, 114, 18, 68, 32, 12, 0, 1, 115, 2, 114, 18, 72, 32, 12, 12, 0,
+			1, 115, 111, 114, 101, 97, 2, 108, 0, 1, 115, 112, 97, 114, 0, 1, 115, 114, 101, 112, 2, 110, 0, 1, 116, 2, 100, 18, 72, 32,
+			12, 0, 1, 116, 2, 108, 18, 69, 32, 12, 0, 1, 116, 2, 110, 105, 107, 18, 69, 32, 0, 1, 116, 2, 110, 105, 115, 107, 0, 1,
+			116, 2, 114, 18, 72, 32, 12, 12, 0, 1, 116, 21, 2, 114, 0, 1, 116, 97, 2, 109, 0, 1, 116, 97, 114, 97, 109, 0, 1, 116,
+			97, 114, 111, 0, 1, 116, 107, 111, 0, 1, 116, 108, 97, 100, 2, 110, 0, 1, 116, 110, 97, 2, 110, 18, 68, 32, 0, 1, 116, 110,
+			111, 112, 2, 110, 0, 1, 116, 111, 2, 112, 18, 68, 32, 0, 1, 116, 111, 102, 0, 1, 116, 111, 110, 111, 109, 2, 110, 0, 1, 116,
+			112, 2, 109, 18, 68, 32, 0, 1, 116, 117, 2, 112, 105, 0, 1, 117, 108, 102, 2, 114, 0, 1, 122, 2, 110, 0, 1, 122, 2, 114,
+			18, 68, 32, 12, 0, 1, 122, 2, 114, 18, 72, 32, 12, 12, 0, 1, 122, 105, 112, 101, 2, 100, 0, 2, 32, 0, 2, 108, 18, 68,
+			32, 12, 0, 2, 110, 18, 68, 32, 12, 0, 2, 112, 18, 68, 32, 12, 0, 2, 114, 18, 68, 32, 12, 0, 2, 122, 18, 68, 32, 0,
+			2, 122, 18, 72, 32, 12, 0, 8, 2, 109, 105, 0, 8, 2, 109, 115, 0, 8, 2, 112, 101, 114, 18, 69, 32, 0, 8, 100, 2, 122,
+			18, 69, 32, 12, 12, 0, 8, 101, 114, 101, 116, 115, 0, 8, 102, 2, 108, 105, 106, 18, 69, 32, 0, 8, 103, 105, 2, 114, 18, 68,
+			32, 0, 8, 106, 2, 103, 18, 68, 32, 0, 8, 107, 101, 0, 8, 108, 2, 197, 190, 18, 69, 32, 0, 8, 108, 103, 2, 114, 105, 106,
+			18, 69, 32, 0, 8, 109, 2, 110, 105, 107, 18, 69, 32, 0, 8, 109, 2, 122, 117, 0, 8, 109, 97, 114, 2, 110, 18, 69, 32, 0,
+			8, 109, 115, 2, 103, 18, 68, 32, 0, 8, 114, 97, 98, 2, 110, 18, 68, 32, 0, 8, 115, 107, 111, 2, 108, 18, 68, 32, 0, 8,
+			116, 2, 110, 117, 115, 18, 68, 32, 0, 8, 116, 2, 114, 105, 106, 18, 68, 32, 0, 8, 116, 110, 97, 102, 2, 109, 18, 68, 32, 0,
+			8, 116, 114, 97, 107, 2, 110, 18, 68, 32, 0, 108, 111, 1, 112, 2, 32, 3, 114, 55, 114, 0, 115, 116, 111, 112, 1, 116, 117, 97,
+			3, 114, 89, 47, 39, 48, 0, 4, 3, 119, 0, 1, 98, 2, 32, 0, 1, 98, 2, 108, 111, 197, 161, 0, 1, 98, 2, 108, 196, 171,
+			100, 18, 73, 32, 0, 1, 98, 2, 108, 196, 171, 106, 0, 1, 98, 2, 108, 196, 171, 115, 0, 1, 98, 2, 108, 196, 171, 116, 0, 1,
+			98, 2, 108, 196, 171, 197, 161, 0, 1, 98, 97, 118, 2, 108, 18, 72, 32, 0, 1, 98, 129, 196, 2, 108, 0, 1, 99, 2, 32, 0,
+			1, 100, 2, 32, 0, 1, 100, 2, 122, 18, 72, 32, 12, 12, 0, 1, 102, 114, 147, 196, 115, 0, 1, 103, 2, 32, 0, 1, 103, 2,
+			114, 111, 0, 1, 103, 97, 109, 2, 110, 0, 1, 103, 97, 118, 2, 110, 0, 1, 103, 105, 97, 100, 2, 110, 0, 1, 103, 105, 97, 109,
+			2, 110, 0, 1, 103, 105, 97, 122, 0, 1, 103, 108, 105, 2, 110, 18, 70, 32, 0, 1, 103, 111, 108, 115, 0, 1, 103, 114, 97, 109,
+			2, 110, 0, 1, 103, 117, 97, 2, 110, 0, 1, 103, 171, 196, 108, 0, 1, 106, 2, 32, 0, 1, 106, 2, 110, 18, 70, 32, 0, 1,
+			107, 2, 32, 0, 1, 107, 2, 107, 111, 103, 0, 1, 107, 2, 107, 116, 196, 147, 108, 0, 1, 107, 2, 110, 18, 70, 32, 0, 1, 107,
+			2, 112, 106, 0, 1, 107, 2, 112, 196, 147, 106, 18, 68, 32, 0, 1, 107, 2, 112, 196, 147, 106, 18, 69, 32, 0, 1, 107, 2, 114,
+			18, 70, 32, 12, 0, 1, 107, 2, 197, 134, 18, 70, 32, 0, 1, 107, 97, 114, 116, 0, 1, 107, 101, 105, 110, 0, 1, 107, 107, 105,
+			116, 2, 32, 0, 1, 107, 108, 97, 109, 2, 18, 75, 0, 1, 107, 108, 97, 161, 197, 0, 1, 107, 114, 147, 196, 112, 2, 110, 0, 1,
+			107, 114, 147, 196, 112, 2, 197, 134, 0, 1, 107, 115, 2, 108, 0, 1, 107, 115, 2, 108, 18, 69, 32, 0, 1, 107, 115, 97, 118, 0,
+			1, 107, 171, 197, 107, 0, 1, 108, 2, 32, 0, 1, 108, 2, 122, 18, 72, 32, 0, 1, 108, 103, 97, 2, 110, 18, 69, 32, 0, 1,
+			108, 103, 97, 110, 0, 1, 108, 103, 101, 2, 110, 0, 1, 108, 105, 97, 100, 2, 110, 0, 1, 108, 105, 100, 2, 110, 0, 1, 108, 105,
+			100, 2, 197, 134, 0, 1, 108, 105, 122, 2, 110, 0, 1, 108, 105, 122, 2, 197, 134, 0, 1, 108, 111, 107, 115, 2, 18, 74, 0, 1,
+			108, 111, 107, 115, 2, 18, 75, 0, 1, 108, 111, 115, 2, 115, 32, 0, 1, 108, 111, 115, 2, 116, 0, 1, 108, 111, 115, 2, 116, 32,
+			0, 1, 108, 111, 115, 2, 197, 161, 0, 1, 108, 115, 2, 103, 18, 68, 32, 0, 1, 108, 115, 2, 103, 111, 0, 1, 108, 147, 196, 2,
+			32, 0, 1, 108, 147, 196, 99, 0, 1, 108, 161, 197, 2, 103, 18, 68, 32, 0, 1, 109, 2, 32, 0, 1, 109, 105, 97, 122, 0, 1,
+			109, 115, 2, 107, 0, 1, 109, 115, 114, 101, 118, 0, 1, 109, 122, 105, 118, 0, 1, 110, 2, 32, 0, 1, 110, 2, 108, 105, 107, 0,
+			1, 110, 2, 109, 18, 69, 32, 0, 1, 110, 97, 161, 197, 0, 1, 110, 101, 116, 115, 2, 18, 74, 0, 1, 110, 101, 116, 115, 2, 18,
+			75, 0, 1, 110, 110, 97, 118, 0, 1, 112, 2, 32, 0, 1, 112, 2, 114, 97, 0, 1, 112, 2, 115, 116, 111, 0, 1, 112, 2, 115,
+			116, 196, 171, 0, 1, 114, 2, 32, 0, 1, 114, 2, 98, 101, 197, 190, 0, 1, 114, 2, 107, 116, 117, 0, 1, 114, 2, 122, 18, 72,
+			32, 0, 1, 114, 97, 98, 2, 107, 108, 0, 1, 114, 97, 98, 2, 107, 196, 188, 0, 1, 114, 98, 2, 32, 0, 1, 114, 100, 2, 32,
+			0, 1, 114, 103, 2, 122, 12, 0, 1, 114, 107, 2, 103, 0, 1, 114, 107, 2, 107, 111, 0, 1, 114, 107, 2, 112, 196, 188, 111, 0,
+			1, 114, 112, 97, 2, 99, 18, 72, 32, 0, 1, 114, 112, 97, 2, 107, 0, 1, 114, 116, 171, 196, 118, 115, 0, 1, 115, 2, 32, 0,
+			1, 115, 2, 108, 18, 68, 32, 0, 1, 115, 2, 108, 18, 70, 32, 0, 1, 115, 2, 108, 111, 116, 0, 1, 115, 2, 108, 111, 197, 161,
+			0, 1, 115, 2, 108, 196, 171, 18, 75, 0, 1, 116, 2, 32, 0, 1, 116, 2, 110, 18, 70, 32, 0, 1, 116, 2, 114, 110, 12, 0,
+			1, 116, 2, 114, 197, 134, 12, 0, 1, 116, 101, 105, 99, 2, 107, 0, 1, 116, 110, 97, 107, 0, 1, 116, 114, 111, 107, 2, 115, 32,
+			0, 1, 116, 114, 111, 112, 115, 0, 1, 116, 115, 2, 112, 111, 0, 1, 116, 117, 97, 188, 196, 0, 1, 116, 129, 196, 2, 32, 0, 1,
+			116, 147, 196, 2, 32, 0, 1, 116, 171, 196, 118, 2, 108, 18, 68, 32, 0, 1, 118, 2, 32, 0, 1, 118, 97, 0, 1, 118, 101, 105,
+			114, 0, 1, 118, 108, 97, 0, 1, 118, 129, 196, 108, 98, 0, 1, 118, 171, 196, 114, 98, 0, 1, 122, 2, 32, 0, 1, 122, 105, 98,
+			2, 18, 75, 12, 0, 1, 134, 197, 0, 1, 141, 196, 0, 1, 161, 197, 2, 32, 0, 1, 161, 197, 111, 2, 32, 0, 1, 161, 197, 117,
+			2, 32, 0, 1, 163, 196, 2, 32, 0, 1, 183, 196, 0, 1, 188, 196, 0, 1, 190, 197, 0, 2, 18, 67, 0, 2, 100, 101, 114, 101,
+			0, 2, 100, 101, 114, 196, 147, 0, 2, 110, 97, 107, 116, 32, 0, 2, 115, 32, 0, 2, 115, 116, 32, 0, 2, 116, 32, 12, 12, 0,
+			2, 116, 105, 101, 115, 32, 12, 0, 2, 197, 161, 115, 32, 0, 2, 197, 161, 197, 134, 0, 8, 2, 108, 18, 69, 32, 12, 0, 8, 2,
+			114, 18, 70, 32, 0, 8, 98, 2, 108, 97, 32, 0, 8, 98, 2, 108, 117, 0, 8, 98, 2, 108, 196, 129, 109, 32, 0, 8, 98, 2,
+			122, 18, 72, 32, 12, 0, 8, 98, 2, 122, 97, 32, 0, 8, 100, 2, 110, 18, 69, 32, 12, 12, 0, 8, 100, 171, 196, 112, 115, 2,
+			108, 18, 69, 32, 0, 8, 103, 2, 114, 97, 32, 0, 8, 103, 2, 114, 111, 115, 32, 12, 0, 8, 106, 2, 32, 0, 8, 106, 2, 122,
+			97, 32, 0, 8, 107, 2, 100, 18, 72, 32, 0, 8, 107, 2, 112, 18, 69, 32, 0, 8, 107, 2, 112, 196, 129, 32, 0, 8, 107, 2,
+			114, 18, 72, 32, 0, 8, 107, 2, 114, 97, 32, 0, 8, 107, 2, 114, 100, 105, 114, 0, 8, 107, 2, 114, 100, 122, 0, 8, 107, 2,
+			118, 196, 129, 114, 110, 18, 70, 32, 0, 8, 107, 101, 110, 2, 32, 0, 8, 107, 115, 2, 112, 18, 68, 32, 0, 8, 107, 115, 97, 112,
+			2, 112, 18, 68, 32, 0, 8, 108, 2, 103, 18, 68, 32, 0, 8, 108, 2, 110, 18, 72, 32, 0, 8, 108, 105, 112, 2, 116, 32, 0,
+			8, 108, 147, 196, 116, 2, 116, 117, 32, 0, 8, 109, 2, 100, 18, 72, 32, 0, 8, 109, 105, 97, 108, 2, 110, 18, 70, 32, 0, 8,
+			109, 117, 107, 2, 100, 18, 72, 32, 0, 8, 110, 2, 12, 0, 8, 112, 2, 108, 18, 70, 32, 0, 8, 112, 2, 108, 105, 101, 0, 8,
+			112, 2, 108, 105, 106, 18, 69, 32, 0, 8, 112, 2, 112, 18, 72, 32, 0, 8, 112, 2, 196, 188, 0, 8, 112, 129, 196, 114, 2, 32,
+			0, 8, 114, 2, 109, 18, 69, 32, 0, 8, 114, 101, 116, 115, 2, 115, 32, 0, 8, 114, 112, 2, 106, 196, 129, 109, 32, 0, 8, 114,
+			112, 2, 109, 32, 0, 8, 114, 112, 2, 109, 98, 0, 8, 114, 112, 2, 109, 101, 115, 0, 8, 114, 116, 115, 2, 112, 18, 68, 32, 0,
+			8, 114, 116, 115, 97, 107, 2, 108, 18, 70, 32, 0, 8, 116, 2, 12, 0, 8, 116, 2, 114, 101, 105, 122, 32, 0, 8, 116, 2, 114,
+			117, 100, 0, 8, 116, 2, 122, 105, 101, 109, 32, 0, 8, 116, 97, 100, 2, 115, 32, 0, 8, 116, 110, 111, 107, 2, 115, 32, 0, 8,
+			116, 110, 111, 108, 98, 2, 115, 32, 0, 8, 116, 115, 2, 114, 18, 72, 32, 0, 8, 116, 115, 97, 115, 2, 112, 97, 109, 32, 0, 8,
+			134, 197, 161, 197, 2, 114, 18, 70, 32, 0, 8, 161, 197, 2, 122, 105, 101, 109, 32, 0, 8, 183, 196, 161, 197, 2, 114, 18, 70, 32,
+			0, 116, 111, 2, 32, 3, 119, 47, 119, 0, 112, 8, 114, 116, 2, 18, 68, 32, 3, 119, 48, 0, 4, 112, 111, 1, 107, 3, 119, 48,
+			119, 0, 112, 111, 1, 116, 2, 116, 0, 112, 111, 1, 116, 2, 197, 161, 0, 108, 1, 112, 171, 196, 115, 2, 18, 68, 32, 3, 119, 55,
+			0, 4, 108, 111, 1, 107, 115, 3, 119, 55, 119, 0, 108, 111, 1, 108, 2, 18, 75, 0, 108, 111, 8, 108, 2, 18, 74, 0, 98, 111,
+			8, 114, 2, 116, 32, 3, 119, 71, 119, 0, 4, 100, 111, 1, 107, 2, 108, 3, 119, 72, 119, 0, 100, 111, 8, 2, 115, 32, 0, 103,
+			1, 114, 112, 115, 3, 119, 81, 0, 122, 111, 2, 108, 18, 68, 32, 3, 119, 88, 119, 0, 115, 116, 1, 114, 112, 115, 3, 119, 89, 47,
+			0, 115, 116, 111, 2, 18, 75, 3, 119, 89, 47, 119, 0, 7, 6, 112, 0, 3, 48, 0, 117, 115, 8, 3, 48, 40, 89, 0, 7, 6,
+			113, 0, 3, 49, 84, 0, 7, 6, 114, 0, 3, 52, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 1, 115, 2,
+			115, 3, 47, 12, 0, 111, 8, 2, 32, 3, 47, 119, 0, 7, 6, 117, 0, 3, 40, 0, 105, 3, 121, 0, 7, 6, 118, 0, 3, 84,
+			0, 105, 115, 8, 3, 84, 37, 89, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 57,
+			0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 4, 35, 1, 35, 3, 0, 4, 39, 3, 0, 4, 46, 1,
+			46, 3, 0, 58, 1, 32, 15, 2, 32, 15, 15, 32, 3, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 37, 88, 89, 118, 49, 40, 65,
+			88, 108, 65, 36, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 35, 1, 35,
+			35, 2, 32, 3, 24, 0, 58, 3, 49, 39, 55, 89, 0, 33, 61, 3, 50, 35, 84, 15, 84, 122, 50, 113, 72, 89, 0, 4, 35, 1,
+			32, 17, 65, 3, 52, 36, 89, 47, 108, 47, 36, 0, 35, 1, 32, 17, 67, 0, 62, 61, 3, 55, 6, 122, 55, 113, 49, 89, 15, 4,
+			84, 116, 15, 84, 6, 122, 50, 113, 72, 89, 0, 60, 61, 3, 65, 35, 88, 113, 49, 89, 15, 4, 84, 116, 15, 84, 6, 122, 50, 113,
+			72, 89, 0, 45, 8, 32, 2, 32, 15, 3, 65, 108, 50, 40, 89, 0, 36, 3, 72, 39, 55, 113, 34, 37, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts39 = FileInMemory_createWithData (12327, reinterpret_cast<const char *> (&espeakdata_dicts39_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/lv_dict", 
 			U"lv");
-		my addItem_move (espeakdata_dicts42.move());
+		Collection_addItem (me.peek(), espeakdata_dicts39.transfer());
 
-		static unsigned char espeakdata_dicts43_data[4946] = {
-			0, 4, 0, 0, 151, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4,
-			95, 100, 112, 116, 9, 88, 6, 35, 48, 37, 16, 49, 122, 10, 0, 0, 0, 0, 0, 13, 138, 208, 184, 208, 188, 208, 176, 208, 176, 209,
-			130, 76, 0, 0, 15, 140, 208, 189, 208, 181, 208, 188, 208, 176, 208, 176, 209, 130, 76, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 33,
-			6, 37, 88, 84, 138, 76, 50, 138, 49, 0, 0, 0, 11, 1, 35, 71, 14, 16, 6, 39, 57, 10, 0, 0, 0, 10, 1, 37, 48, 6,
-			39, 89, 47, 39, 0, 0, 7, 1, 38, 10, 6, 37, 0, 0, 0, 0, 0, 0, 8, 1, 43, 48, 55, 40, 89, 0, 0, 0, 0, 0,
-			11, 1, 47, 49, 14, 16, 6, 39, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 58, 72, 84, 36, 10, 47,
-			39, 76, 49, 37, 0, 0, 0, 0, 0, 0, 0, 8, 1, 64, 10, 6, 36, 47, 0, 0, 0, 0, 0, 7, 65, 68, 49, 84, 13, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 49, 77, 52, 71,
-			37, 55, 37, 6, 39, 50, 0, 0, 17, 65, 92, 72, 84, 39, 89, 47, 14, 16, 40, 49, 39, 15, 84, 13, 0, 0, 0, 16, 1, 94,
-			117, 6, 37, 34, 49, 40, 65, 83, 55, 36, 49, 89, 0, 0, 0, 7, 65, 96, 37, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 65, 104, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1,
-			126, 47, 6, 37, 55, 72, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 134, 208, 189, 208, 181, 208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 209, 129, 209, 130, 208, 181, 72, 0, 0,
-			0, 0, 13, 138, 208, 189, 208, 181, 209, 129, 209, 130, 208, 181, 76, 0, 0, 15, 140, 208, 189, 208, 181, 208, 188, 208, 176, 209, 130, 208,
-			181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 184, 208, 188, 208, 176, 209, 136, 76, 0, 0, 0,
-			0, 0, 0, 9, 134, 209, 129, 209, 131, 208, 188, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 138, 208, 189, 208, 181, 209, 129, 209, 131, 208, 188, 76, 0, 0, 0, 20, 3, 226, 132, 162, 48, 14, 16, 39, 37, 88, 84,
-			6, 39, 72, 37, 47, 36, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 189, 208, 181, 208, 179, 208, 190, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 186, 208, 190, 208, 179, 208, 190, 8, 0, 0, 0, 18, 3,
-			226, 128, 166, 47, 14, 16, 6, 37, 15, 47, 6, 39, 76, 49, 37, 0, 0, 19, 3, 226, 128, 161, 72, 84, 6, 39, 36, 50, 15, 49,
-			14, 16, 6, 89, 47, 0, 0, 11, 3, 226, 128, 160, 49, 14, 16, 89, 47, 0, 0, 0, 20, 3, 226, 128, 162, 81, 6, 39, 55, 36,
-			65, 35, 15, 47, 6, 39, 76, 49, 122, 0, 0, 0, 11, 3, 226, 130, 172, 6, 36, 84, 51, 39, 0, 0, 0, 0, 0, 0, 11, 136,
-			208, 184, 208, 188, 208, 176, 208, 188, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 208, 184, 208, 188, 208, 176,
+		static unsigned char espeakdata_dicts40_data[4946] = {
+			0, 4, 0, 0, 152, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 138, 208, 184, 208, 188, 208, 176, 208, 176, 209, 130, 76, 0, 0, 15, 140, 208, 189, 208, 181, 208, 188, 208, 176, 208, 176, 209,
+			130, 76, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 33, 6, 37, 88, 84, 138, 76, 50, 138, 49, 0, 0, 0, 11, 1, 35, 71, 14,
+			16, 6, 39, 57, 10, 0, 0, 0, 10, 1, 37, 48, 6, 39, 89, 47, 39, 0, 0, 7, 1, 38, 10, 6, 37, 0, 0, 0, 0, 0,
+			0, 8, 1, 43, 48, 55, 40, 89, 0, 0, 0, 0, 0, 11, 1, 47, 49, 14, 16, 6, 39, 88, 10, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 9, 5, 95, 48, 1, 14, 4, 37, 0, 0, 0, 13, 1, 58, 72, 84, 36, 10, 47, 39, 76, 49, 37, 0, 0, 0, 0,
+			0, 0, 0, 8, 1, 64, 10, 6, 36, 47, 0, 0, 0, 0, 0, 7, 65, 68, 49, 84, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 49, 77, 52, 71, 37, 55, 37, 6, 39, 50, 0, 0,
+			17, 65, 92, 72, 84, 39, 89, 47, 14, 16, 40, 49, 39, 15, 84, 13, 0, 0, 0, 16, 1, 94, 117, 6, 37, 34, 49, 40, 65, 83,
+			55, 36, 49, 89, 0, 0, 0, 7, 65, 96, 37, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 104, 88, 13, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6, 37, 55, 72, 122, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 189, 208, 181,
+			208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 4, 16, 20, 9, 88, 6, 35, 48, 37, 16, 49, 122, 10, 0, 0, 0, 0, 9, 134,
+			209, 129, 209, 130, 208, 181, 72, 0, 0, 0, 0, 13, 138, 208, 189, 208, 181, 209, 129, 209, 130, 208, 181, 76, 0, 0, 15, 140, 208, 189,
+			208, 181, 208, 188, 208, 176, 209, 130, 208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 184, 208,
+			188, 208, 176, 209, 136, 76, 0, 0, 0, 0, 0, 0, 9, 134, 209, 129, 209, 131, 208, 188, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 208, 189, 208, 181, 209, 129, 209, 131, 208, 188, 76, 0, 0, 0, 20, 3, 226,
+			132, 162, 48, 14, 16, 39, 37, 88, 84, 6, 39, 72, 37, 47, 36, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 189,
+			208, 181, 208, 179, 208, 190, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 186, 208, 190, 208,
+			179, 208, 190, 8, 0, 0, 0, 18, 3, 226, 128, 166, 47, 14, 16, 6, 37, 15, 47, 6, 39, 76, 49, 37, 0, 0, 19, 3, 226, 128,
+			161, 72, 84, 6, 39, 36, 50, 15, 49, 14, 16, 6, 89, 47, 0, 0, 11, 3, 226, 128, 160, 49, 14, 16, 89, 47, 0, 0, 0, 20,
+			3, 226, 128, 162, 81, 6, 39, 55, 36, 65, 35, 15, 47, 6, 39, 76, 49, 122, 0, 0, 0, 11, 3, 226, 130, 172, 6, 36, 84, 51,
+			39, 0, 0, 0, 0, 0, 0, 11, 136, 208, 184, 208, 188, 208, 176, 208, 188, 76, 0, 11, 3, 95, 49, 6, 6, 36, 72, 50, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 6, 72, 84, 6, 36, 0, 0, 0, 0, 0, 13, 138, 208, 184, 208, 188, 208, 176,
 			208, 188, 208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 14, 3, 226, 128, 176, 48, 14, 16, 6, 39, 65, 37, 55, 0, 0, 11, 136, 208, 189, 208, 181, 208, 188, 208, 176, 76, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 47, 14, 16, 6, 37, 109, 89, 109, 47, 0, 0, 11, 3, 95, 48, 67, 89,
@@ -35352,86 +24559,85 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			6, 35, 36, 89, 36, 47, 0, 0, 19, 3, 95, 49, 52, 76, 109, 47, 37, 34, 37, 50, 6, 35, 36, 89, 36, 47, 0, 0, 18, 3,
 			95, 49, 55, 89, 109, 72, 40, 65, 50, 6, 35, 36, 89, 36, 47, 0, 0, 16, 3, 95, 49, 54, 91, 109, 89, 50, 6, 35, 36, 89,
 			36, 47, 0, 0, 0, 17, 3, 95, 55, 88, 89, 109, 72, 6, 40, 65, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 102, 6, 36, 72, 50, 35, 0, 0, 0, 0, 13, 3, 95, 54, 67, 91, 6, 109, 89, 47,
-			6, 39, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 102, 72, 84, 6, 36, 0, 0, 0, 14, 3, 95, 50, 88, 72, 84, 6, 35, 109,
-			89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 63, 88, 50, 35, 49, 0, 0, 0, 0,
-			17, 3, 95, 52, 88, 76, 109, 47, 37, 44, 6, 37, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 53, 88,
-			48, 6, 109, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 186, 208, 190, 209, 152, 76, 0, 13, 3, 95, 54, 88,
-			91, 6, 109, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 56, 88, 39,
-			89, 6, 40, 65, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 57, 88, 72, 109, 84, 6, 109, 109, 89,
-			109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 63, 65, 71, 40, 49, 84, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 208, 184, 208, 187, 208, 184, 72, 8, 9, 134, 208, 184,
-			208, 187, 208, 184, 8, 0, 0, 0, 0, 0, 0, 11, 136, 208, 177, 208, 184, 208, 187, 208, 176, 72, 0, 0, 0, 0, 15, 4, 95, 48,
-			77, 52, 71, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 37, 6, 39, 50, 37, 0, 0, 16,
-			4, 95, 48, 77, 51, 65, 6, 37, 55, 37, 35, 34, 72, 138, 0, 0, 7, 132, 208, 187, 208, 184, 72, 0, 14, 4, 95, 48, 77, 49,
-			6, 37, 55, 57, 35, 72, 37, 0, 0, 11, 136, 208, 177, 208, 184, 208, 187, 208, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 184, 208, 188, 208, 176, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 3, 95, 194, 173, 48, 14, 16, 6, 37, 84, 14, 16, 36, 65, 36, 50,
-			122, 15, 117, 6, 44, 47, 6, 37, 76, 49, 122, 0, 0, 0, 24, 3, 95, 194, 171, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6,
-			35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 0, 9, 134, 208, 177, 208, 184, 208, 187, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 11, 136, 208, 189, 208, 181, 209, 129, 208, 181, 76, 0, 25, 3, 95, 194, 187, 88, 6, 35, 47, 84, 39, 51, 36, 50,
-			15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 11, 136, 208, 189, 208, 181, 209, 129, 208, 184, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 2, 195, 151, 48, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 194, 167, 72, 36, 55, 0, 0, 12, 2,
-			194, 164, 84, 6, 35, 55, 40, 47, 122, 0, 0, 0, 0, 0, 0, 0, 19, 2, 194, 174, 51, 6, 36, 81, 37, 89, 47, 14, 16, 35,
-			117, 138, 57, 122, 0, 0, 0, 0, 0, 0, 0, 16, 2, 194, 168, 48, 14, 16, 6, 37, 57, 36, 81, 55, 122, 89, 0, 0, 13, 138,
-			208, 184, 208, 188, 208, 176, 209, 130, 208, 181, 76, 21, 2, 194, 169, 6, 35, 84, 47, 39, 51, 89, 49, 122, 15, 48, 14, 16, 35, 84,
-			122, 0, 0, 9, 2, 194, 182, 76, 55, 36, 50, 0, 0, 7, 2, 194, 183, 48, 39, 0, 0, 0, 12, 2, 194, 181, 65, 6, 37, 49,
-			14, 16, 39, 0, 0, 19, 65, 200, 55, 13, 15, 89, 122, 15, 117, 6, 44, 47, 6, 37, 117, 39, 65, 0, 0, 0, 12, 2, 194, 176,
-			89, 47, 6, 36, 48, 36, 50, 0, 0, 0, 0, 15, 2, 195, 183, 48, 39, 72, 6, 36, 61, 4, 36, 50, 39, 0, 0, 0, 0, 0,
-			0, 12, 2, 194, 184, 89, 36, 72, 6, 37, 55, 122, 0, 0, 0, 9, 134, 209, 136, 209, 130, 208, 190, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 2, 203, 152, 71, 14, 16, 6, 36, 84, 37, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 2, 209, 135, 76, 13, 0, 0, 7, 2, 209, 134, 117, 13, 0, 0, 7, 2, 209, 133, 101, 13, 0, 0, 7, 2, 209,
-			132, 83, 13, 0, 0, 0, 7, 2, 209, 130, 47, 13, 0, 0, 7, 2, 209, 129, 89, 13, 0, 0, 7, 2, 209, 128, 51, 13, 0, 0,
-			0, 0, 0, 0, 0, 8, 132, 208, 183, 208, 176, 72, 28, 0, 0, 7, 2, 209, 136, 91, 13, 0, 0, 0, 14, 2, 95, 34, 50, 6,
-			35, 84, 39, 72, 50, 138, 49, 0, 0, 7, 2, 209, 149, 118, 13, 0, 0, 0, 15, 2, 95, 39, 6, 35, 48, 39, 89, 47, 14, 16,
-			39, 83, 0, 7, 2, 209, 147, 77, 13, 0, 0, 18, 2, 95, 38, 47, 6, 44, 81, 6, 39, 84, 89, 49, 39, 15, 6, 37, 0, 0,
-			0, 11, 2, 95, 36, 72, 6, 39, 55, 122, 51, 0, 0, 7, 2, 209, 159, 75, 13, 0, 0, 15, 2, 95, 42, 118, 84, 6, 36, 88,
-			72, 37, 76, 49, 122, 0, 15, 2, 95, 42, 118, 84, 6, 36, 88, 72, 37, 76, 49, 13, 0, 0, 25, 2, 95, 41, 88, 6, 35, 47,
-			84, 39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 24, 2, 95, 40, 6, 39, 47, 84, 39, 51, 36, 50,
-			122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 7, 2, 209, 156, 141, 13, 0, 0, 0, 11, 2, 95, 46, 47, 6, 39, 76, 49,
-			122, 0, 7, 2, 209, 154, 67, 13, 0, 0, 14, 2, 95, 45, 117, 6, 44, 47, 6, 37, 76, 49, 122, 0, 11, 2, 95, 45, 65, 6,
-			37, 50, 40, 89, 0, 7, 2, 209, 153, 61, 13, 0, 0, 13, 2, 95, 44, 88, 6, 35, 48, 37, 51, 49, 122, 0, 7, 2, 209, 152,
-			57, 136, 0, 0, 9, 2, 95, 51, 47, 51, 6, 37, 0, 0, 10, 2, 95, 50, 72, 6, 84, 6, 35, 0, 0, 10, 2, 95, 49, 6,
-			36, 72, 36, 50, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 122, 0, 0, 11, 2, 95, 55, 89, 6, 109, 72, 40, 65, 0, 0, 10,
-			2, 95, 54, 91, 6, 109, 89, 47, 0, 0, 9, 2, 95, 53, 48, 6, 109, 47, 0, 0, 12, 2, 95, 52, 76, 6, 109, 47, 138, 16,
-			138, 0, 0, 19, 2, 95, 59, 47, 6, 39, 76, 49, 122, 88, 4, 35, 48, 37, 51, 49, 35, 0, 7, 2, 208, 183, 88, 13, 0, 0,
-			7, 2, 208, 182, 90, 13, 0, 0, 7, 2, 208, 181, 109, 0, 49, 6, 130, 208, 181, 72, 28, 11, 2, 95, 57, 72, 6, 109, 84, 109,
-			47, 0, 0, 10, 2, 95, 56, 6, 39, 89, 40, 65, 0, 7, 2, 208, 180, 72, 13, 0, 0, 15, 2, 95, 63, 48, 34, 6, 35, 91,
-			35, 55, 50, 37, 49, 0, 7, 2, 208, 179, 81, 13, 0, 0, 18, 2, 95, 62, 48, 39, 81, 6, 39, 55, 36, 65, 39, 15, 6, 39,
-			72, 0, 7, 2, 208, 178, 84, 13, 0, 0, 13, 2, 95, 61, 6, 36, 72, 50, 122, 49, 84, 39, 0, 13, 2, 95, 61, 6, 36, 72,
-			50, 122, 49, 84, 39, 0, 7, 2, 208, 177, 71, 13, 0, 0, 7, 2, 208, 176, 35, 0, 49, 8, 2, 208, 176, 35, 0, 72, 8, 16,
-			2, 95, 60, 48, 6, 39, 65, 35, 55, 39, 15, 6, 39, 72, 0, 0, 7, 2, 208, 191, 48, 13, 0, 0, 0, 7, 2, 208, 189, 50,
-			13, 0, 0, 13, 138, 208, 189, 208, 181, 208, 188, 208, 176, 209, 136, 76, 18, 2, 95, 64, 47, 6, 44, 81, 6, 39, 84, 89, 49, 39,
-			15, 6, 35, 0, 7, 2, 208, 188, 65, 13, 0, 0, 7, 2, 208, 187, 55, 13, 0, 0, 7, 2, 208, 186, 49, 13, 0, 0, 0, 8,
-			2, 208, 184, 37, 10, 0, 49, 9, 2, 208, 184, 37, 9, 0, 72, 8, 13, 2, 92, 92, 71, 6, 109, 49, 89, 55, 109, 91, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 95, 226, 128, 154, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84,
-			39, 72, 50, 138, 49, 0, 0, 26, 4, 95, 226, 128, 153, 6, 36, 72, 37, 50, 36, 76, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50,
-			138, 49, 0, 0, 25, 4, 95, 226, 128, 152, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0,
-			0, 25, 4, 95, 226, 128, 158, 88, 35, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 32, 2, 95,
-			91, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 89, 51, 6, 36, 72, 50, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 26,
-			4, 95, 226, 128, 157, 88, 6, 35, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 25, 4, 95, 226,
-			128, 156, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 15, 4, 95, 226, 128, 147, 109, 50,
-			15, 117, 6, 44, 47, 122, 0, 0, 0, 10, 2, 95, 95, 117, 6, 44, 47, 122, 0, 0, 0, 33, 2, 95, 93, 88, 6, 35, 47, 84,
-			39, 51, 36, 50, 122, 15, 89, 51, 6, 36, 72, 50, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 0, 0, 15, 4, 95,
-			226, 128, 148, 109, 65, 15, 117, 6, 44, 47, 122, 0, 0, 13, 138, 208, 189, 208, 181, 209, 129, 208, 188, 208, 181, 76, 9, 134, 209, 129,
-			208, 188, 208, 181, 72, 0, 13, 2, 95, 96, 81, 14, 16, 6, 35, 84, 37, 89, 0, 0, 15, 140, 208, 189, 208, 181, 208, 188, 208, 176,
-			208, 188, 208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 208, 189, 208, 181, 208, 188, 208, 176, 208, 188, 76, 0,
-			0, 0, 0, 0, 25, 4, 95, 226, 128, 185, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0,
-			0, 0, 0, 32, 2, 95, 123, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 81, 6, 39, 55, 36, 65, 122, 15, 88, 6, 35, 81, 14,
-			16, 35, 72, 122, 0, 0, 0, 0, 0, 0, 0, 34, 2, 95, 125, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 81, 6, 39, 55,
-			36, 65, 35, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 21, 2, 95, 124, 84, 36, 51, 47, 37, 49, 35, 55, 50, 122,
-			15, 117, 6, 44, 47, 122, 0, 0, 7, 132, 209, 129, 208, 181, 72, 0, 0, 9, 5, 95, 48, 97, 110, 100, 37, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 209, 129, 208, 184, 72, 0, 0, 10, 4, 209, 129, 208, 190,
-			89, 10, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 177, 208, 181, 208, 176, 72, 0, 0, 0, 0, 17, 5, 95, 49, 77,
-			65, 51, 65, 6, 37, 55, 37, 35, 34, 72, 35, 0, 0, 15, 5, 95, 49, 77, 65, 50, 65, 37, 55, 37, 6, 39, 50, 0, 0, 15,
-			5, 95, 49, 77, 65, 49, 6, 37, 55, 57, 35, 72, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 132, 208, 178, 208, 190, 72, 28, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			20, 0, 0, 0, 97, 0, 0, 0, 48, 4, 0, 0, 98, 0, 0, 0, 49, 4, 0, 0, 99, 0, 0, 0, 70, 4, 0, 0, 7, 1,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 67, 91, 6, 109, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+			3, 95, 50, 88, 72, 84, 6, 35, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63,
+			63, 88, 50, 35, 49, 0, 0, 0, 0, 17, 3, 95, 52, 88, 76, 109, 47, 37, 44, 6, 37, 109, 89, 109, 47, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 3, 95, 53, 88, 48, 6, 109, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 186, 208, 190,
+			209, 152, 76, 0, 13, 3, 95, 54, 88, 91, 6, 109, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 16, 3, 95, 56, 88, 39, 89, 6, 40, 65, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95,
+			57, 88, 72, 109, 84, 6, 109, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 63, 65, 71, 40, 49, 84, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 208, 184, 208,
+			187, 208, 184, 72, 8, 9, 134, 208, 184, 208, 187, 208, 184, 8, 0, 0, 0, 0, 0, 0, 11, 136, 208, 177, 208, 184, 208, 187, 208, 176,
+			72, 0, 0, 0, 0, 15, 4, 95, 48, 77, 52, 71, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37,
+			55, 37, 6, 39, 50, 37, 0, 0, 16, 4, 95, 48, 77, 51, 65, 6, 37, 55, 37, 35, 34, 72, 138, 0, 0, 7, 132, 208, 187, 208,
+			184, 72, 0, 14, 4, 95, 48, 77, 49, 6, 37, 55, 57, 35, 72, 37, 0, 0, 11, 136, 208, 177, 208, 184, 208, 187, 208, 190, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 184, 208,
+			188, 208, 176, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 3, 95, 194, 173, 48, 14, 16,
+			6, 37, 84, 14, 16, 36, 65, 36, 50, 122, 15, 117, 6, 44, 47, 6, 37, 76, 49, 122, 0, 0, 0, 24, 3, 95, 194, 171, 6, 39,
+			47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 0, 9, 134, 208, 177, 208, 184, 208, 187, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 208, 189, 208, 181, 209, 129, 208, 181, 76, 0, 25, 3, 95, 194, 187,
+			88, 6, 35, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 11, 136, 208, 189, 208, 181, 209, 129,
+			208, 184, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 195, 151, 48, 6, 39, 0, 0, 0, 0, 20, 2, 197, 130, 55, 13, 15,
+			89, 122, 15, 117, 6, 44, 47, 6, 37, 117, 39, 65, 0, 0, 0, 0, 0, 0, 8, 2, 194, 167, 72, 36, 55, 0, 0, 12, 2, 194,
+			164, 84, 6, 35, 55, 40, 47, 122, 0, 0, 0, 0, 0, 0, 0, 19, 2, 194, 174, 51, 6, 36, 81, 37, 89, 47, 14, 16, 35, 117,
+			138, 57, 122, 0, 0, 0, 0, 0, 0, 0, 16, 2, 194, 168, 48, 14, 16, 6, 37, 57, 36, 81, 55, 122, 89, 0, 0, 13, 138, 208,
+			184, 208, 188, 208, 176, 209, 130, 208, 181, 76, 21, 2, 194, 169, 6, 35, 84, 47, 39, 51, 89, 49, 122, 15, 48, 14, 16, 35, 84, 122,
+			0, 0, 9, 2, 194, 182, 76, 55, 36, 50, 0, 0, 7, 2, 194, 183, 48, 39, 0, 0, 0, 12, 2, 194, 181, 65, 6, 37, 49, 14,
+			16, 39, 0, 0, 0, 0, 12, 2, 194, 176, 89, 47, 6, 36, 48, 36, 50, 0, 0, 0, 0, 15, 2, 195, 183, 48, 39, 72, 6, 36,
+			61, 4, 36, 50, 39, 0, 0, 0, 0, 0, 0, 12, 2, 194, 184, 89, 36, 72, 6, 37, 55, 122, 0, 0, 0, 9, 134, 209, 136, 209,
+			130, 208, 190, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 203, 152, 71, 14, 16, 6, 36, 84, 37, 89, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 209, 135, 76, 13, 0, 0, 7, 2, 209, 134, 117, 13, 0, 0, 7,
+			2, 209, 133, 101, 13, 0, 0, 7, 2, 209, 132, 83, 13, 0, 0, 0, 7, 2, 209, 130, 47, 13, 0, 0, 7, 2, 209, 129, 89, 13,
+			0, 0, 7, 2, 209, 128, 51, 13, 0, 0, 0, 0, 0, 0, 0, 8, 132, 208, 183, 208, 176, 72, 28, 0, 0, 7, 2, 209, 136, 91,
+			13, 0, 0, 0, 14, 2, 95, 34, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 7, 2, 209, 149, 118, 13, 0, 0, 0, 15, 2,
+			95, 39, 6, 35, 48, 39, 89, 47, 14, 16, 39, 83, 0, 7, 2, 209, 147, 77, 13, 0, 0, 18, 2, 95, 38, 47, 6, 44, 81, 6,
+			39, 84, 89, 49, 39, 15, 6, 37, 0, 0, 0, 11, 2, 95, 36, 72, 6, 39, 55, 122, 51, 0, 0, 7, 2, 209, 159, 75, 13, 0,
+			0, 15, 2, 95, 42, 118, 84, 6, 36, 88, 72, 37, 76, 49, 122, 0, 15, 2, 95, 42, 118, 84, 6, 36, 88, 72, 37, 76, 49, 13,
+			0, 0, 25, 2, 95, 41, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 24, 2,
+			95, 40, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 7, 2, 209, 156, 141, 13, 0, 0,
+			0, 11, 2, 95, 46, 47, 6, 39, 76, 49, 122, 0, 7, 2, 209, 154, 67, 13, 0, 0, 14, 2, 95, 45, 117, 6, 44, 47, 6, 37,
+			76, 49, 122, 0, 11, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 7, 2, 209, 153, 61, 13, 0, 0, 13, 2, 95, 44, 88, 6, 35,
+			48, 37, 51, 49, 122, 0, 7, 2, 209, 152, 57, 136, 0, 0, 9, 2, 95, 51, 47, 51, 6, 37, 0, 0, 10, 2, 95, 50, 72, 6,
+			84, 6, 35, 0, 0, 10, 2, 95, 49, 6, 36, 72, 36, 50, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 122, 0, 0, 11, 2, 95,
+			55, 89, 6, 109, 72, 40, 65, 0, 0, 10, 2, 95, 54, 91, 6, 109, 89, 47, 0, 0, 9, 2, 95, 53, 48, 6, 109, 47, 0, 0,
+			12, 2, 95, 52, 76, 6, 109, 47, 138, 16, 138, 0, 0, 19, 2, 95, 59, 47, 6, 39, 76, 49, 122, 88, 4, 35, 48, 37, 51, 49,
+			35, 0, 7, 2, 208, 183, 88, 13, 0, 0, 7, 2, 208, 182, 90, 13, 0, 0, 7, 2, 208, 181, 109, 0, 14, 6, 130, 208, 181, 72,
+			28, 11, 2, 95, 57, 72, 6, 109, 84, 109, 47, 0, 0, 10, 2, 95, 56, 6, 39, 89, 40, 65, 0, 7, 2, 208, 180, 72, 13, 0,
+			0, 15, 2, 95, 63, 48, 34, 6, 35, 91, 35, 55, 50, 37, 49, 0, 7, 2, 208, 179, 81, 13, 0, 0, 18, 2, 95, 62, 48, 39,
+			81, 6, 39, 55, 36, 65, 39, 15, 6, 39, 72, 0, 7, 2, 208, 178, 84, 13, 0, 0, 13, 2, 95, 61, 6, 36, 72, 50, 122, 49,
+			84, 39, 0, 13, 2, 95, 61, 6, 36, 72, 50, 122, 49, 84, 39, 0, 7, 2, 208, 177, 71, 13, 0, 0, 7, 2, 208, 176, 35, 0,
+			14, 8, 2, 208, 176, 35, 0, 72, 8, 16, 2, 95, 60, 48, 6, 39, 65, 35, 55, 39, 15, 6, 39, 72, 0, 0, 7, 2, 208, 191,
+			48, 13, 0, 0, 0, 7, 2, 208, 189, 50, 13, 0, 0, 13, 138, 208, 189, 208, 181, 208, 188, 208, 176, 209, 136, 76, 18, 2, 95, 64,
+			47, 6, 44, 81, 6, 39, 84, 89, 49, 39, 15, 6, 35, 0, 7, 2, 208, 188, 65, 13, 0, 0, 7, 2, 208, 187, 55, 13, 0, 0,
+			7, 2, 208, 186, 49, 13, 0, 0, 0, 8, 2, 208, 184, 37, 10, 0, 14, 9, 2, 208, 184, 37, 9, 0, 72, 8, 13, 2, 92, 92,
+			71, 6, 109, 49, 89, 55, 109, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 95, 226, 128, 154, 6, 39, 47,
+			84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 26, 4, 95, 226, 128, 153, 6, 36, 72, 37, 50, 36, 76,
+			36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 25, 4, 95, 226, 128, 152, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50,
+			6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 25, 4, 95, 226, 128, 158, 88, 35, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84,
+			39, 72, 50, 138, 49, 0, 0, 32, 2, 95, 91, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 89, 51, 6, 36, 72, 50, 122, 15, 88,
+			6, 35, 81, 14, 16, 35, 72, 122, 0, 26, 4, 95, 226, 128, 157, 88, 6, 35, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39,
+			72, 50, 138, 49, 0, 0, 25, 4, 95, 226, 128, 156, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50, 6, 35, 84, 39, 72, 50, 138, 49,
+			0, 0, 15, 4, 95, 226, 128, 147, 109, 50, 15, 117, 6, 44, 47, 122, 0, 0, 0, 10, 2, 95, 95, 117, 6, 44, 47, 122, 0, 0,
+			0, 33, 2, 95, 93, 88, 6, 35, 47, 84, 39, 51, 36, 50, 122, 15, 89, 51, 6, 36, 72, 50, 122, 15, 88, 6, 35, 81, 14, 16,
+			35, 72, 122, 0, 0, 0, 0, 15, 4, 95, 226, 128, 148, 109, 65, 15, 117, 6, 44, 47, 122, 0, 0, 13, 138, 208, 189, 208, 181, 209,
+			129, 208, 188, 208, 181, 76, 9, 134, 209, 129, 208, 188, 208, 181, 72, 0, 13, 2, 95, 96, 81, 14, 16, 6, 35, 84, 37, 89, 0, 0,
+			15, 140, 208, 189, 208, 181, 208, 188, 208, 176, 208, 188, 208, 181, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 208, 189,
+			208, 181, 208, 188, 208, 176, 208, 188, 76, 0, 0, 0, 0, 0, 25, 4, 95, 226, 128, 185, 6, 39, 47, 84, 39, 51, 36, 50, 15, 50,
+			6, 35, 84, 39, 72, 50, 138, 49, 0, 0, 0, 0, 0, 32, 2, 95, 123, 6, 39, 47, 84, 39, 51, 36, 50, 122, 15, 81, 6, 39,
+			55, 36, 65, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 0, 0, 0, 0, 0, 34, 2, 95, 125, 88, 6, 35, 47, 84,
+			39, 51, 36, 50, 122, 15, 81, 6, 39, 55, 36, 65, 35, 122, 15, 88, 6, 35, 81, 14, 16, 35, 72, 122, 0, 0, 21, 2, 95, 124,
+			84, 36, 51, 47, 37, 49, 35, 55, 50, 122, 15, 117, 6, 44, 47, 122, 0, 0, 7, 132, 209, 129, 208, 181, 72, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 209, 129, 208, 184, 72, 0, 0, 10, 4, 209, 129, 208,
+			190, 89, 10, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 208, 177, 208, 181, 208, 176, 72, 0, 0, 0, 0, 17, 5, 95, 49,
+			77, 65, 51, 65, 6, 37, 55, 37, 35, 34, 72, 35, 0, 0, 15, 5, 95, 49, 77, 65, 50, 65, 37, 55, 37, 6, 39, 50, 0, 0,
+			15, 5, 95, 49, 77, 65, 49, 6, 37, 55, 57, 35, 72, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 132, 208, 178, 208, 190, 72, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 20, 0, 0, 97, 0, 0, 0, 48, 4, 0, 0, 98, 0, 0, 0, 49, 4, 0, 0, 99, 0, 0, 0, 70, 4, 0, 0, 7, 1,
 			0, 0, 91, 4, 0, 0, 13, 1, 0, 0, 71, 4, 0, 0, 100, 0, 126, 1, 95, 4, 0, 0, 100, 0, 122, 0, 85, 4, 0, 0,
 			100, 0, 0, 0, 52, 4, 0, 0, 17, 1, 0, 0, 82, 4, 0, 0, 101, 0, 0, 0, 53, 4, 0, 0, 102, 0, 0, 0, 68, 4,
 			0, 0, 103, 0, 0, 0, 51, 4, 0, 0, 104, 0, 0, 0, 69, 4, 0, 0, 105, 0, 0, 0, 56, 4, 0, 0, 106, 0, 0, 0,
@@ -35441,17 +24647,17 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 0, 116, 0, 0, 0, 66, 4, 0, 0, 117, 0, 0, 0, 67, 4, 0, 0, 118, 0, 0, 0, 50, 4, 0, 0, 122, 0, 0, 0,
 			55, 4, 0, 0, 126, 1, 0, 0, 54, 4, 0, 0, 17, 1, 0, 0, 83, 4, 0, 0, 7, 1, 0, 0, 92, 4, 0, 0, 0, 0,
 			0, 0, 6, 196, 135, 0, 3, 78, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 145, 0, 3, 77, 0, 7, 6, 197, 161, 0,
-			3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 1, 17, 0, 3, 35, 0, 7, 6, 1, 18, 0, 3, 71, 0, 7, 6, 1,
-			19, 0, 2, 32, 3, 83, 0, 3, 84, 0, 7, 6, 1, 20, 0, 3, 81, 0, 7, 6, 1, 21, 0, 3, 72, 0, 7, 6, 1, 22,
-			0, 3, 36, 0, 7, 6, 1, 23, 0, 3, 90, 0, 7, 6, 1, 24, 0, 3, 88, 0, 7, 6, 1, 25, 0, 3, 37, 0, 8, 3,
-			37, 10, 0, 7, 6, 1, 27, 0, 3, 49, 0, 7, 6, 1, 28, 0, 3, 55, 0, 7, 6, 1, 29, 0, 3, 65, 0, 7, 6, 1,
-			30, 0, 3, 50, 0, 7, 6, 1, 31, 0, 3, 39, 0, 7, 6, 1, 32, 0, 3, 48, 0, 7, 6, 1, 33, 0, 1, 17, 67, 2,
+			3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 208, 176, 0, 3, 35, 0, 7, 6, 208, 177, 0, 3, 71, 0, 7, 6, 208,
+			178, 0, 2, 32, 3, 83, 0, 3, 84, 0, 7, 6, 208, 179, 0, 3, 81, 0, 7, 6, 208, 180, 0, 3, 72, 0, 7, 6, 208, 181,
+			0, 3, 36, 0, 7, 6, 208, 182, 0, 3, 90, 0, 7, 6, 208, 183, 0, 3, 88, 0, 7, 6, 208, 184, 0, 3, 37, 0, 8, 3,
+			37, 10, 0, 7, 6, 208, 186, 0, 3, 49, 0, 7, 6, 208, 187, 0, 3, 55, 0, 7, 6, 208, 188, 0, 3, 65, 0, 7, 6, 208,
+			189, 0, 3, 50, 0, 7, 6, 208, 190, 0, 3, 39, 0, 7, 6, 208, 191, 0, 3, 48, 0, 7, 6, 209, 128, 0, 1, 17, 67, 2,
 			17, 67, 3, 6, 34, 0, 1, 25, 2, 25, 3, 6, 44, 0, 1, 25, 2, 17, 65, 3, 14, 16, 0, 4, 3, 51, 0, 1, 17, 65,
-			2, 17, 65, 0, 2, 32, 0, 209, 128, 0, 7, 6, 1, 34, 0, 3, 89, 0, 7, 6, 1, 35, 0, 3, 47, 0, 7, 6, 1, 36,
-			0, 3, 40, 0, 7, 6, 1, 37, 0, 3, 83, 0, 7, 6, 1, 38, 0, 3, 107, 0, 7, 6, 1, 39, 0, 3, 117, 0, 7, 6,
-			1, 40, 0, 3, 78, 0, 7, 6, 1, 41, 0, 3, 91, 0, 7, 6, 1, 52, 0, 3, 77, 0, 7, 6, 1, 54, 0, 3, 118, 0,
-			7, 6, 1, 57, 0, 3, 57, 0, 7, 6, 1, 58, 0, 3, 61, 0, 7, 6, 1, 59, 0, 3, 67, 0, 7, 6, 1, 61, 0, 3,
-			141, 0, 7, 6, 1, 64, 0, 3, 75, 0, 7, 6, 97, 0, 3, 35, 0, 4, 2, 106, 3, 137, 0, 2, 114, 0, 7, 6, 98, 0,
+			2, 17, 65, 0, 2, 32, 0, 209, 128, 0, 7, 6, 209, 129, 0, 3, 89, 0, 7, 6, 209, 130, 0, 3, 47, 0, 7, 6, 209, 131,
+			0, 3, 40, 0, 7, 6, 209, 132, 0, 3, 83, 0, 7, 6, 209, 133, 0, 3, 107, 0, 7, 6, 209, 134, 0, 3, 117, 0, 7, 6,
+			209, 135, 0, 3, 78, 0, 7, 6, 209, 136, 0, 3, 91, 0, 7, 6, 209, 147, 0, 3, 77, 0, 7, 6, 209, 149, 0, 3, 118, 0,
+			7, 6, 209, 152, 0, 3, 57, 0, 7, 6, 209, 153, 0, 3, 61, 0, 7, 6, 209, 154, 0, 3, 67, 0, 7, 6, 209, 156, 0, 3,
+			141, 0, 7, 6, 209, 159, 0, 3, 75, 0, 7, 6, 97, 0, 3, 35, 0, 4, 2, 106, 3, 137, 0, 2, 114, 0, 7, 6, 98, 0,
 			3, 71, 0, 7, 6, 99, 0, 3, 117, 0, 7, 6, 100, 0, 3, 72, 0, 197, 190, 3, 75, 0, 122, 3, 118, 0, 7, 6, 101, 0,
 			120, 101, 1, 32, 46, 3, 2, 36, 49, 89, 36, 0, 4, 1, 106, 3, 36, 0, 2, 106, 0, 3, 109, 0, 7, 6, 102, 0, 3, 83,
 			0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 8, 3, 101, 0, 3, 107, 0, 7, 6, 105, 0, 110, 105, 1, 32, 46, 3, 2,
@@ -35480,572 +24686,272 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			1, 42, 42, 2, 32, 3, 24, 0, 61, 1, 61, 61, 2, 32, 0, 46, 3, 47, 39, 76, 49, 122, 0, 45, 8, 32, 2, 32, 15, 3,
 			65, 37, 50, 40, 89, 0, 36, 3, 72, 6, 39, 55, 122, 51, 0, 42, 3, 118, 84, 6, 36, 88, 72, 37, 76, 49, 122, 0, 195, 173,
 			3, 121, 0, 195, 169, 3, 123, 0, 195, 161, 3, 124, 0, 195, 179, 3, 125, 0, 195, 186, 3, 126, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts43 = FileInMemory_createWithData (4945, reinterpret_cast<const char *> (&espeakdata_dicts43_data), 
-			U"espeak-1.48.04-source/espeak-data/mk_dict", 
+		autoFileInMemory espeakdata_dicts40 = FileInMemory_createWithData (4945, reinterpret_cast<const char *> (&espeakdata_dicts40_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/mk_dict", 
 			U"mk");
-		my addItem_move (espeakdata_dicts43.move());
+		Collection_addItem (me.peek(), espeakdata_dicts40.transfer());
 
-		static unsigned char espeakdata_dicts44_data[4160] = {
-			0, 4, 0, 0, 179, 11, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
-			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 0, 18, 4, 95, 100, 112, 116, 10, 72,
-			6, 35, 97, 118, 65, 97, 13, 65, 10, 0, 0, 5, 65, 20, 112, 0, 0, 0, 0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0,
-			6, 65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 0, 0, 0, 6, 65, 36, 118, 57, 0, 0, 14, 1, 37,
-			97, 35, 47, 13, 65, 118, 50, 13, 65, 0, 27, 0, 14, 1, 38, 89, 35, 65, 40, 80, 80, 35, 57, 13, 65, 0, 0, 0, 7, 65,
-			40, 75, 114, 57, 0, 0, 0, 13, 1, 42, 35, 89, 47, 13, 34, 37, 89, 49, 0, 27, 0, 12, 1, 43, 49, 123, 139, 139, 13, 66,
-			13, 65, 0, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 0, 0, 6, 65, 48, 116, 55, 0, 0, 0, 0, 0, 6, 65, 52, 116, 65,
-			0, 0, 0, 0, 0, 6, 65, 56, 116, 50, 0, 0, 0, 0, 0, 5, 65, 60, 119, 0, 0, 9, 1, 61, 89, 35, 65, 13, 65, 0,
-			0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 123, 0, 0, 0, 0, 0, 6, 65, 72, 118, 51, 0,
-			0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 13, 4, 95, 48, 67, 48, 50, 6, 123, 34, 12, 148, 0, 0, 6, 65, 80,
-			25, 112, 0, 0, 0, 0, 0, 6, 65, 84, 57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 0, 11, 65, 92,
-			72, 109, 71, 109, 55, 57, 123, 0, 0, 0, 0, 0, 7, 65, 96, 116, 49, 89, 0, 0, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0,
-			0, 16, 4, 95, 54, 48, 102, 6, 35, 52, 40, 84, 35, 47, 37, 50, 0, 15, 4, 95, 51, 88, 102, 65, 6, 40, 48, 48, 35, 47,
-			47, 0, 0, 0, 0, 7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 49, 67, 48, 39, 34, 148,
-			50, 123, 34, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95,
-			55, 48, 102, 6, 36, 70, 40, 84, 35, 47, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 50, 67,
-			48, 37, 51, 148, 50, 50, 6, 123, 34, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 16, 4, 95, 49, 56, 102, 48, 35, 47, 37, 50, 6, 36, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95,
-			49, 57, 102, 48, 6, 35, 47, 47, 39, 65, 48, 6, 35, 47, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 224, 180, 179, 224, 181, 142, 10, 6, 148, 62, 0, 0, 0, 0,
-			0, 13, 6, 224, 180, 177, 224, 181, 142, 10, 6, 148, 51, 0, 0, 0, 0, 0, 15, 4, 95, 51, 67, 48, 65, 40, 50, 50, 6, 123,
-			34, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 180, 149, 224, 181, 142, 10, 37, 49, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 49, 48, 102, 48, 6, 35, 47, 37, 50, 0, 0, 0, 13, 6, 224, 180, 163, 224, 181, 142,
-			10, 6, 148, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 50, 102, 48, 6, 35, 50, 47,
-			34, 35, 66, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 51, 102, 48, 6, 35, 47, 37, 65, 123, 84, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 52, 102, 48, 6, 35, 47, 37, 50, 118, 55, 0, 0, 0, 0, 0, 0, 0, 0, 15, 5,
-			95, 48, 77, 50, 120, 55, 6, 35, 49, 93, 35, 65, 0, 0, 16, 4, 95, 49, 53, 102, 48, 35, 47, 37, 50, 6, 35, 112, 57, 0,
-			0, 0, 15, 4, 95, 52, 67, 48, 50, 6, 118, 50, 50, 123, 34, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 48, 37, 34, 148, 84, 35, 47, 148, 0, 0, 0, 15, 5, 95, 48, 77, 49, 120, 6, 118,
-			57, 37, 51, 35, 65, 0, 0, 15, 4, 95, 55, 88, 102, 6, 36, 70, 40, 84, 35, 47, 47, 0, 0, 0, 0, 0, 0, 14, 3, 95,
-			51, 48, 65, 6, 40, 48, 48, 35, 47, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 3, 95, 54, 48, 35, 52, 40, 84, 35, 47, 148, 0, 15, 3, 95, 51, 88, 65, 6, 40, 48, 48, 35, 47,
-			47, 37, 0, 0, 11, 3, 95, 48, 67, 50, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 55, 48, 36, 70, 6,
-			40, 84, 35, 47, 148, 0, 0, 14, 3, 95, 49, 67, 39, 34, 148, 50, 123, 139, 139, 37, 0, 0, 0, 0, 0, 13, 4, 95, 53, 67,
-			48, 35, 67, 57, 123, 34, 148, 0, 0, 0, 16, 3, 95, 49, 57, 48, 35, 47, 47, 39, 65, 48, 35, 47, 148, 0, 0, 16, 3, 95,
-			49, 56, 48, 35, 47, 37, 50, 6, 36, 139, 47, 148, 0, 0, 15, 3, 95, 50, 67, 37, 34, 40, 50, 50, 123, 139, 139, 37, 0, 0,
-			0, 0, 0, 0, 0, 15, 3, 95, 49, 49, 48, 35, 47, 37, 50, 39, 50, 50, 148, 0, 0, 11, 3, 95, 49, 48, 48, 35, 47, 47,
-			148, 0, 0, 14, 3, 95, 51, 67, 65, 40, 50, 50, 123, 139, 139, 37, 0, 0, 15, 3, 95, 49, 50, 48, 35, 50, 47, 34, 35, 66,
-			47, 148, 0, 0, 16, 3, 95, 49, 53, 48, 35, 47, 37, 50, 6, 35, 67, 80, 148, 0, 0, 0, 15, 3, 95, 49, 55, 48, 35, 47,
-			37, 50, 6, 114, 70, 148, 0, 0, 15, 3, 95, 49, 54, 48, 35, 47, 37, 50, 6, 118, 52, 148, 0, 0, 0, 15, 3, 95, 55, 88,
-			36, 70, 6, 40, 84, 35, 47, 47, 37, 0, 0, 15, 3, 95, 52, 67, 50, 6, 118, 50, 50, 123, 139, 139, 37, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 13, 3, 95, 53, 67, 35, 67, 57, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 10, 3, 95, 49, 102, 6, 39, 50,
-			50, 0, 0, 0, 14, 3, 95, 52, 48, 50, 6, 118, 48, 48, 35, 47, 148, 0, 10, 3, 95, 49, 88, 48, 35, 47, 37, 0, 0, 14,
-			3, 95, 54, 67, 35, 52, 40, 50, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 102, 6, 34, 13, 66, 72, 0, 0,
-			0, 12, 3, 95, 53, 48, 35, 50, 48, 35, 47, 148, 0, 14, 3, 95, 50, 88, 37, 34, 40, 84, 35, 47, 47, 37, 0, 0, 15, 3,
-			95, 55, 67, 36, 70, 6, 40, 50, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 102, 6, 37, 65, 123, 84, 0, 0,
-			0, 0, 13, 3, 95, 56, 67, 36, 66, 66, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 11, 3, 95, 52, 102, 6, 37, 50, 118, 55,
-			0, 0, 0, 14, 3, 95, 52, 88, 50, 118, 48, 48, 35, 47, 47, 37, 0, 0, 19, 3, 95, 57, 67, 47, 39, 62, 62, 6, 118, 57,
-			37, 51, 35, 47, 47, 37, 0, 0, 0, 0, 0, 14, 4, 95, 54, 67, 48, 35, 52, 40, 50, 123, 34, 148, 0, 0, 10, 3, 95, 53,
-			102, 6, 35, 112, 57, 0, 0, 0, 12, 3, 95, 56, 48, 36, 66, 48, 35, 47, 148, 0, 13, 3, 95, 53, 88, 35, 50, 48, 35, 47,
-			47, 37, 0, 0, 19, 3, 95, 56, 51, 36, 66, 48, 35, 47, 47, 37, 65, 6, 123, 50, 50, 148, 0, 0, 0, 0, 17, 3, 95, 56,
-			52, 36, 66, 48, 35, 47, 47, 37, 50, 118, 55, 148, 0, 0, 0, 9, 3, 95, 54, 102, 6, 118, 52, 0, 0, 0, 15, 3, 95, 57,
-			48, 47, 6, 39, 66, 66, 123, 34, 12, 148, 0, 14, 3, 95, 54, 88, 35, 52, 40, 84, 35, 47, 47, 37, 0, 0, 0, 0, 0, 0,
-			0, 9, 3, 95, 55, 102, 6, 114, 70, 0, 0, 0, 0, 0, 0, 16, 4, 95, 52, 48, 102, 50, 6, 118, 48, 48, 35, 47, 37, 50,
-			0, 11, 4, 95, 49, 88, 102, 48, 6, 35, 47, 0, 0, 0, 0, 10, 3, 95, 56, 102, 6, 36, 50, 50, 0, 0, 0, 12, 3, 95,
-			56, 88, 36, 66, 48, 35, 47, 47, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 57, 102, 39, 65, 48, 6, 35, 47, 37, 50, 0, 0,
-			0, 15, 3, 95, 57, 88, 47, 6, 39, 66, 66, 123, 139, 139, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 15, 3, 224, 181, 142, 143, 37, 62, 35, 143, 35, 34, 35, 65, 0, 0, 0, 8, 3, 224, 181, 140, 147, 135, 0, 0, 17, 3, 224,
-			181, 141, 143, 35, 50, 72, 34, 35, 49, 118, 34, 13, 65, 0, 0, 8, 3, 224, 181, 138, 18, 39, 0, 9, 3, 224, 180, 130, 6, 149,
-			65, 0, 0, 9, 3, 224, 181, 139, 147, 119, 12, 0, 14, 3, 224, 180, 131, 84, 37, 89, 35, 34, 81, 13, 65, 0, 0, 8, 3, 224,
-			181, 136, 147, 134, 0, 0, 0, 8, 3, 224, 181, 134, 18, 36, 0, 0, 9, 3, 224, 181, 135, 147, 114, 12, 0, 0, 10, 3, 224, 181,
-			132, 147, 34, 112, 12, 0, 0, 0, 9, 3, 224, 181, 130, 147, 123, 12, 0, 0, 9, 3, 224, 181, 131, 18, 34, 37, 0, 0, 9, 3,
-			224, 181, 128, 147, 112, 12, 0, 0, 15, 4, 95, 55, 67, 48, 36, 70, 6, 40, 50, 123, 34, 148, 0, 8, 3, 224, 181, 129, 18, 40,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 48, 77, 50, 55, 6, 35, 49, 93, 35, 139, 139, 37,
-			0, 0, 12, 4, 95, 48, 77, 51, 49, 6, 119, 139, 37, 0, 0, 0, 16, 4, 95, 48, 77, 49, 6, 118, 57, 37, 51, 35, 47, 47,
-			37, 0, 0, 15, 4, 95, 53, 48, 102, 6, 35, 50, 48, 35, 47, 37, 50, 0, 15, 4, 95, 50, 88, 102, 6, 37, 34, 40, 84, 35,
-			47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224,
-			181, 151, 147, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 180, 190, 147, 118, 12, 0, 0,
-			8, 3, 224, 180, 191, 18, 37, 0, 0, 0, 14, 3, 224, 180, 189, 35, 84, 35, 81, 34, 35, 107, 35, 0, 0, 0, 0, 0, 13, 4,
-			95, 56, 67, 48, 36, 66, 66, 123, 34, 148, 0, 0, 10, 3, 224, 181, 190, 10, 6, 148, 62, 0, 0, 9, 3, 224, 181, 191, 10, 37,
-			49, 0, 0, 10, 3, 224, 181, 188, 10, 6, 148, 51, 0, 0, 9, 3, 224, 181, 189, 10, 37, 55, 0, 0, 10, 3, 224, 181, 186, 10,
-			6, 148, 66, 0, 0, 9, 3, 224, 181, 187, 10, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 51,
-			102, 120, 65, 6, 123, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 57, 67, 48, 47,
-			39, 62, 62, 6, 118, 57, 37, 51, 35, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			4, 95, 52, 88, 102, 50, 6, 118, 48, 48, 35, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 52, 102, 120, 50, 6, 118, 55, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
-			4, 95, 56, 48, 102, 6, 36, 66, 48, 35, 47, 37, 50, 0, 14, 4, 95, 53, 88, 102, 6, 35, 50, 48, 35, 47, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 180, 178, 224, 181, 142, 10, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 18, 2, 95, 33, 118, 97, 80, 13, 34, 57, 35, 80, 37, 107, 50, 13, 65, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 15, 4, 95, 57, 48, 102, 47, 6, 39, 66, 66, 123, 34, 12, 0, 15, 4, 95, 54, 88, 102, 6, 35, 52, 40, 84, 35,
-			47, 47, 0, 0, 0, 10, 2, 95, 46, 71, 37, 50, 72, 40, 0, 0, 0, 12, 2, 95, 44, 35, 68, 49, 40, 97, 13, 65, 0, 0,
-			10, 2, 95, 51, 65, 123, 50, 50, 148, 0, 0, 10, 2, 95, 50, 34, 13, 66, 72, 148, 0, 0, 10, 2, 95, 49, 6, 39, 50, 50,
-			148, 0, 0, 12, 2, 95, 48, 48, 6, 123, 79, 57, 13, 65, 0, 0, 9, 2, 95, 55, 6, 114, 70, 148, 0, 0, 9, 2, 95, 54,
-			6, 118, 52, 148, 0, 0, 10, 2, 95, 53, 6, 35, 67, 80, 148, 0, 0, 9, 2, 95, 52, 50, 118, 55, 148, 0, 0, 11, 2, 95,
-			59, 34, 119, 138, 37, 50, 37, 0, 0, 0, 12, 2, 95, 57, 6, 39, 50, 48, 35, 47, 148, 0, 0, 10, 2, 95, 56, 6, 36, 139,
-			47, 148, 0, 0, 16, 2, 95, 63, 80, 119, 72, 57, 13, 80, 37, 107, 50, 13, 65, 0, 0, 12, 6, 224, 180, 168, 224, 181, 142, 10,
-			37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 50, 48, 102, 6,
-			37, 34, 40, 84, 35, 47, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 56, 88, 102, 6, 36, 66, 48, 35, 47, 47, 0, 0, 0, 0, 0, 16, 4, 95,
-			51, 48, 102, 65, 6, 40, 48, 48, 35, 47, 37, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 57, 88, 102, 47, 6, 39, 66, 66, 123, 139, 139, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 224, 180,
-			149, 224, 181, 141, 0, 224, 180, 154, 224, 181, 141, 0, 224, 180, 159, 224, 181, 141, 0, 224, 180, 164, 224, 181, 141, 0, 224, 180, 170, 224,
-			181, 141, 0, 32, 0, 7, 6, 20, 0, 0, 102, 13, 0, 0, 48, 0, 0, 0, 103, 13, 0, 0, 49, 0, 0, 0, 104, 13, 0, 0,
-			50, 0, 0, 0, 105, 13, 0, 0, 51, 0, 0, 0, 106, 13, 0, 0, 52, 0, 0, 0, 107, 13, 0, 0, 53, 0, 0, 0, 108, 13,
-			0, 0, 54, 0, 0, 0, 109, 13, 0, 0, 55, 0, 0, 0, 110, 13, 0, 0, 56, 0, 0, 0, 111, 13, 0, 0, 57, 0, 0, 0,
-			71, 13, 62, 13, 75, 13, 0, 0, 70, 13, 62, 13, 74, 13, 0, 0, 70, 13, 87, 13, 76, 13, 0, 0, 0, 0, 0, 0, 6, 1,
-			22, 0, 4, 1, 18, 66, 2, 17, 66, 3, 49, 0, 224, 181, 141, 0, 224, 181, 141, 224, 180, 149, 2, 17, 66, 3, 49, 12, 0, 224,
-			181, 141, 224, 180, 149, 3, 49, 12, 35, 0, 1, 18, 66, 3, 49, 35, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1,
-			23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1,
-			25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0, 7, 6, 1,
-			27, 0, 2, 17, 66, 3, 80, 0, 3, 80, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 143, 0, 3, 143, 35, 0, 7, 6, 1,
-			29, 0, 2, 17, 66, 3, 79, 0, 3, 79, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 35, 0, 7, 6, 1,
-			31, 0, 2, 17, 66, 3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 32, 0, 4, 1, 18, 66, 2, 17, 66, 3, 139, 0, 224, 181, 141,
-			0, 224, 181, 141, 224, 180, 159, 2, 17, 66, 3, 139, 12, 0, 224, 181, 141, 224, 180, 159, 3, 139, 12, 35, 0, 1, 18, 66, 3, 139,
-			35, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1,
-			34, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 35, 0, 2, 17, 66, 3, 142, 0, 3, 142, 35, 0, 7, 6, 1,
-			36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 4, 1, 18, 66, 2, 17, 66, 3, 47, 0, 224, 181, 141,
-			0, 224, 181, 141, 224, 180, 164, 2, 17, 66, 3, 47, 12, 0, 224, 181, 141, 224, 180, 164, 3, 47, 12, 35, 0, 1, 18, 66, 3, 47,
-			35, 0, 2, 17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 35, 0, 7, 6, 1,
-			39, 0, 2, 17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1,
-			41, 0, 2, 17, 66, 3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 43, 0, 4, 1, 18, 66, 2, 17, 66, 3, 48, 0, 224, 181, 141,
-			0, 224, 181, 141, 224, 180, 170, 2, 17, 66, 3, 48, 12, 0, 224, 181, 141, 224, 180, 170, 3, 48, 12, 35, 0, 1, 18, 66, 3, 48,
-			35, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 44, 0, 8, 138, 181, 224, 176, 180, 224, 141, 181, 224, 170, 180, 224,
-			2, 224, 180, 184, 224, 180, 176, 224, 181, 141, 3, 83, 35, 0, 2, 17, 66, 3, 136, 0, 3, 136, 35, 0, 7, 6, 1, 45, 0, 2,
-			17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137, 35, 0, 7, 6, 1, 47, 0, 2,
-			17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0, 3, 57, 35, 0, 7, 6, 1, 49, 0, 2,
-			17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 52, 0, 3, 52, 35, 0, 224, 181, 141, 224, 180, 177,
-			3, 139, 139, 0, 1, 141, 181, 224, 168, 180, 224, 3, 150, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 35, 0, 7,
-			6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 3, 62, 35, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 70, 0, 3, 70, 35, 0, 7,
-			6, 1, 54, 0, 2, 17, 66, 3, 84, 0, 3, 84, 35, 0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 97, 0, 3, 97, 35, 0, 7,
-			6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 35, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0, 3, 89, 35, 0, 7,
-			6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 123, 0, 3, 66, 0, 7, 6, 1, 124, 0, 3, 50, 0,
-			7, 6, 1, 125, 0, 3, 34, 0, 7, 6, 1, 126, 0, 3, 55, 0, 7, 6, 1, 127, 0, 3, 62, 0, 7, 6, 1, 128, 0, 3,
-			49, 0, 7, 6, 224, 180, 0, 189, 3, 0, 133, 3, 35, 0, 142, 3, 36, 0, 4, 135, 3, 37, 0, 191, 0, 142, 8, 3, 38, 36,
-			0, 143, 8, 3, 38, 114, 0, 146, 3, 39, 0, 137, 3, 40, 0, 139, 3, 51, 148, 0, 130, 3, 65, 0, 131, 3, 107, 0, 136, 3,
+		static unsigned char espeakdata_dicts41_data[3020] = {
+			0, 4, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
+			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 0, 0, 5, 65, 20, 112, 0, 0, 0,
+			0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 0,
+			0, 0, 6, 65, 36, 118, 57, 0, 0, 14, 1, 37, 97, 35, 47, 13, 65, 118, 50, 13, 65, 0, 27, 0, 14, 1, 38, 89, 35, 65,
+			40, 80, 80, 35, 57, 13, 65, 0, 0, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 13, 1, 42, 35, 89, 47, 13, 34, 37, 89, 49,
+			0, 27, 0, 12, 1, 43, 49, 123, 140, 140, 13, 66, 13, 65, 0, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 0, 0, 6, 65, 48,
+			116, 55, 0, 0, 0, 0, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 0, 6, 65, 56, 116, 50, 0, 0, 0, 0, 0, 5, 65, 60,
+			119, 0, 0, 9, 1, 61, 89, 35, 65, 13, 65, 0, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57,
+			123, 0, 0, 0, 0, 0, 6, 65, 72, 118, 51, 0, 0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47,
+			112, 0, 0, 0, 0, 0, 6, 65, 84, 57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 0, 11, 65, 92, 72,
+			109, 71, 109, 55, 57, 123, 0, 0, 0, 0, 0, 7, 65, 96, 116, 49, 89, 0, 0, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0,
+			0, 0, 0, 7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 18, 4, 95, 4, 16, 20, 10, 72, 6, 35, 97, 118, 65, 97, 13, 65, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 224, 180, 179, 224, 181, 142, 10, 6, 149, 62, 0, 0, 0, 0, 0, 13, 6, 224, 180, 177,
+			224, 181, 142, 10, 6, 149, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 180, 149, 224,
+			181, 142, 10, 37, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 224, 180, 163, 224, 181, 142, 10, 6, 149, 66,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 3, 95, 51, 88, 65, 6, 40, 48, 48, 35, 47, 0, 0, 10, 3, 95, 48, 67, 50, 6, 123, 51, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49, 57, 48, 6, 35, 47, 47, 39, 65, 48, 35, 47, 40, 0, 0, 16, 3,
+			95, 49, 56, 48, 6, 35, 47, 37, 50, 114, 140, 140, 149, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 49, 49, 48, 6, 35, 47,
+			37, 50, 39, 50, 50, 149, 0, 0, 12, 3, 95, 49, 48, 48, 6, 35, 47, 47, 149, 0, 0, 0, 16, 3, 95, 49, 50, 48, 6, 35,
+			50, 47, 34, 35, 66, 140, 149, 0, 0, 16, 3, 95, 49, 53, 48, 6, 35, 47, 37, 50, 35, 67, 80, 149, 0, 0, 0, 15, 3, 95,
+			49, 55, 48, 6, 35, 47, 37, 50, 114, 52, 149, 0, 0, 15, 3, 95, 49, 54, 48, 6, 35, 47, 37, 50, 35, 52, 149, 0, 0, 0,
+			13, 3, 95, 55, 88, 6, 36, 70, 40, 48, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
+			3, 95, 49, 88, 48, 6, 35, 47, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 50, 88, 6, 37, 34, 40, 48, 35, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 52, 88, 50, 6, 118, 55, 48, 48, 35, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 53, 88, 6, 35, 50, 48, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
+			3, 95, 54, 88, 6, 35, 52, 40, 48, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3,
+			95, 56, 88, 6, 36, 66, 48, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 47, 6, 39, 66, 66, 123, 52,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 224, 181, 142, 144, 37, 62, 35, 144, 35, 34, 35, 65,
+			0, 0, 0, 8, 3, 224, 181, 140, 148, 135, 0, 0, 17, 3, 224, 181, 141, 144, 35, 50, 72, 34, 35, 49, 118, 34, 13, 65, 0, 0,
+			8, 3, 224, 181, 138, 18, 39, 0, 9, 3, 224, 180, 130, 6, 150, 65, 0, 0, 9, 3, 224, 181, 139, 148, 119, 12, 0, 14, 3, 224,
+			180, 131, 84, 37, 89, 35, 34, 81, 13, 65, 0, 0, 8, 3, 224, 181, 136, 148, 134, 0, 0, 0, 8, 3, 224, 181, 134, 18, 36, 0,
+			0, 9, 3, 224, 181, 135, 148, 114, 12, 0, 0, 10, 3, 224, 181, 132, 148, 34, 112, 12, 0, 0, 0, 9, 3, 224, 181, 130, 148, 123,
+			12, 0, 0, 9, 3, 224, 181, 131, 18, 34, 37, 0, 0, 9, 3, 224, 181, 128, 148, 112, 12, 0, 0, 8, 3, 224, 181, 129, 18, 40,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 55, 6, 35, 49, 93, 35, 65, 0, 0,
+			12, 4, 95, 48, 77, 51, 49, 6, 119, 140, 37, 0, 0, 0, 14, 4, 95, 48, 77, 49, 6, 118, 57, 37, 51, 35, 65, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224, 181, 151, 148, 135,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 180, 190, 148, 118, 12, 0, 0, 8, 3, 224, 180,
+			191, 18, 37, 0, 0, 0, 14, 3, 224, 180, 189, 35, 84, 35, 81, 34, 35, 107, 35, 0, 0, 0, 0, 0, 0, 10, 3, 224, 181, 190,
+			10, 6, 149, 62, 0, 0, 9, 3, 224, 181, 191, 10, 37, 49, 0, 0, 10, 3, 224, 181, 188, 10, 6, 149, 51, 0, 0, 9, 3, 224,
+			181, 189, 10, 37, 55, 0, 0, 10, 3, 224, 181, 186, 10, 6, 149, 66, 0, 0, 9, 3, 224, 181, 187, 10, 37, 50, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 180,
+			178, 224, 181, 142, 10, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 95, 33, 118,
+			97, 80, 13, 34, 57, 35, 80, 37, 107, 50, 13, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 46, 71, 37,
+			50, 72, 40, 0, 0, 0, 12, 2, 95, 44, 35, 68, 49, 40, 97, 13, 65, 0, 0, 11, 2, 95, 51, 65, 6, 40, 50, 50, 149, 0,
+			0, 11, 2, 95, 50, 34, 6, 35, 66, 140, 149, 0, 0, 10, 2, 95, 49, 6, 39, 50, 50, 149, 0, 0, 12, 2, 95, 48, 48, 6,
+			123, 79, 57, 13, 65, 0, 0, 9, 2, 95, 55, 6, 114, 70, 149, 0, 0, 9, 2, 95, 54, 6, 35, 52, 149, 0, 0, 10, 2, 95,
+			53, 6, 35, 67, 80, 149, 0, 0, 10, 2, 95, 52, 50, 6, 118, 55, 149, 0, 0, 11, 2, 95, 59, 34, 119, 139, 37, 50, 37, 0,
+			0, 0, 12, 2, 95, 57, 6, 39, 50, 48, 35, 47, 149, 0, 0, 10, 2, 95, 56, 6, 36, 140, 140, 149, 0, 0, 16, 2, 95, 63,
+			80, 119, 72, 57, 13, 80, 37, 107, 50, 13, 65, 0, 0, 12, 6, 224, 180, 168, 224, 181, 142, 10, 37, 50, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 102, 13, 0, 0, 48, 0, 0, 0, 103, 13,
+			0, 0, 49, 0, 0, 0, 104, 13, 0, 0, 50, 0, 0, 0, 105, 13, 0, 0, 51, 0, 0, 0, 106, 13, 0, 0, 52, 0, 0, 0,
+			107, 13, 0, 0, 53, 0, 0, 0, 108, 13, 0, 0, 54, 0, 0, 0, 109, 13, 0, 0, 55, 0, 0, 0, 110, 13, 0, 0, 56, 0,
+			0, 0, 111, 13, 0, 0, 57, 0, 0, 0, 71, 13, 62, 13, 75, 13, 0, 0, 70, 13, 62, 13, 74, 13, 0, 0, 70, 13, 87, 13,
+			76, 13, 0, 0, 0, 0, 0, 0, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 23, 0, 2, 17, 66,
+			3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 25, 0, 2, 17, 66,
+			3, 147, 0, 3, 147, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0, 7, 6, 1, 27, 0, 2, 17, 66,
+			3, 80, 0, 3, 80, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 144, 0, 3, 144, 35, 0, 7, 6, 1, 29, 0, 2, 17, 66,
+			3, 79, 0, 3, 79, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 31, 0, 2, 17, 66,
+			3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 33, 0, 2, 17, 66,
+			3, 142, 0, 3, 142, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 35, 0, 2, 17, 66,
+			3, 143, 0, 3, 143, 35, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 2, 17, 66,
+			3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 39, 0, 2, 17, 66,
+			3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 41, 0, 2, 17, 66,
+			3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 44, 0, 2, 17, 66,
+			3, 48, 0, 8, 138, 181, 224, 176, 180, 224, 141, 181, 224, 170, 180, 224, 2, 224, 180, 184, 224, 180, 176, 224, 181, 141, 3, 83, 35, 0,
+			3, 136, 35, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0,
+			3, 137, 35, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0,
+			3, 57, 35, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 52, 0,
+			3, 52, 35, 0, 224, 181, 141, 224, 180, 177, 3, 140, 140, 0, 1, 141, 181, 224, 168, 180, 224, 3, 151, 0, 7, 6, 1, 51, 0, 2,
+			17, 66, 3, 55, 0, 3, 55, 35, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 3, 62, 35, 0, 7, 6, 1, 53, 0, 2,
+			17, 66, 3, 70, 0, 3, 70, 35, 0, 7, 6, 1, 54, 0, 2, 17, 66, 3, 84, 0, 3, 84, 35, 0, 7, 6, 1, 55, 0, 2,
+			17, 66, 3, 97, 0, 3, 97, 35, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 35, 0, 7, 6, 1, 57, 0, 2,
+			17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 123, 0, 3,
+			66, 0, 7, 6, 1, 124, 0, 3, 50, 0, 7, 6, 1, 125, 0, 3, 34, 0, 7, 6, 1, 126, 0, 3, 55, 0, 7, 6, 1, 127,
+			0, 3, 62, 0, 7, 6, 1, 128, 0, 3, 49, 0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104,
+			105, 0, 7, 6, 224, 180, 0, 189, 3, 0, 133, 3, 35, 0, 142, 3, 36, 0, 4, 135, 3, 37, 0, 191, 0, 142, 8, 3, 38, 36,
+			0, 143, 8, 3, 38, 114, 0, 146, 3, 39, 0, 137, 3, 40, 0, 139, 3, 51, 149, 0, 130, 3, 65, 0, 131, 3, 107, 0, 136, 3,
 			112, 0, 191, 2, 224, 180, 178, 224, 181, 141, 25, 3, 113, 0, 143, 3, 114, 0, 4, 134, 3, 118, 0, 190, 0, 147, 3, 119, 0, 138,
 			3, 123, 0, 144, 3, 134, 0, 148, 3, 135, 0, 7, 6, 224, 181, 0, 4, 141, 3, 0, 4, 141, 224, 181, 141, 3, 0, 142, 3, 0,
-			134, 3, 36, 0, 138, 3, 39, 0, 129, 3, 40, 0, 131, 3, 44, 0, 132, 3, 44, 12, 0, 160, 3, 51, 148, 12, 0, 161, 3, 55,
-			148, 12, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 4, 140, 3, 135, 0, 151, 0,
-			141, 2, 32, 3, 148, 0, 7, 6, 0, 36, 3, 72, 119, 62, 35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts44 = FileInMemory_createWithData (4159, reinterpret_cast<const char *> (&espeakdata_dicts44_data), 
-			U"espeak-1.48.04-source/espeak-data/ml_dict", 
+			134, 3, 36, 0, 138, 3, 39, 0, 129, 3, 40, 0, 131, 3, 44, 0, 132, 3, 44, 12, 0, 160, 3, 51, 149, 12, 0, 161, 3, 55,
+			149, 12, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 4, 140, 3, 135, 0, 151, 0,
+			141, 2, 32, 3, 149, 0, 7, 6, 0, 36, 3, 72, 119, 62, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts41 = FileInMemory_createWithData (3019, reinterpret_cast<const char *> (&espeakdata_dicts41_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ml_dict", 
 			U"ml");
-		my addItem_move (espeakdata_dicts44.move());
+		Collection_addItem (me.peek(), espeakdata_dicts41.transfer());
 
-		static unsigned char espeakdata_dicts45_data[12249] = {
-			0, 4, 0, 0, 220, 43, 0, 0, 0, 0, 0, 0, 15, 69, 44, 81, 78, 4, 208, 49, 13, 6, 13, 50, 35, 65, 0, 0, 18, 70,
-			80, 84, 130, 21, 48, 82, 47, 13, 51, 71, 6, 13, 89, 35, 34, 0, 6, 65, 4, 36, 12, 0, 0, 16, 69, 5, 0, 84, 4, 128,
-			35, 48, 13, 47, 6, 35, 107, 0, 8, 17, 70, 5, 0, 66, 36, 192, 64, 35, 48, 13, 71, 37, 55, 13, 0, 8, 0, 8, 197, 80,
-			85, 1, 64, 144, 8, 13, 69, 37, 2, 15, 56, 80, 117, 15, 83, 39, 50, 0, 0, 7, 196, 84, 229, 21, 44, 8, 13, 68, 76, 82,
-			129, 44, 89, 6, 13, 75, 35, 49, 0, 0, 7, 65, 8, 71, 37, 12, 0, 0, 18, 70, 44, 243, 80, 60, 225, 78, 49, 39, 65, 48,
-			6, 39, 50, 13, 50, 0, 18, 70, 76, 80, 133, 57, 64, 82, 89, 13, 71, 6, 13, 50, 47, 35, 34, 0, 0, 8, 197, 77, 84, 1,
-			100, 16, 8, 0, 0, 7, 65, 12, 89, 37, 12, 0, 0, 0, 0, 0, 7, 65, 16, 72, 37, 12, 0, 0, 0, 0, 8, 67, 20, 20,
-			212, 21, 0, 47, 13, 68, 76, 80, 129, 44, 89, 6, 13, 71, 35, 19, 0, 21, 4, 95, 100, 112, 116, 10, 48, 6, 13, 34, 48, 40,
-			55, 6, 40, 107, 35, 50, 10, 0, 0, 6, 65, 20, 37, 12, 0, 0, 13, 68, 36, 18, 84, 84, 57, 35, 6, 37, 47, 40, 0, 0,
-			0, 17, 70, 40, 83, 133, 72, 19, 0, 75, 109, 50, 6, 13, 51, 13, 55, 0, 19, 71, 8, 84, 148, 20, 224, 78, 28, 71, 13, 51,
-			47, 6, 13, 50, 35, 68, 0, 0, 6, 65, 24, 109, 83, 0, 0, 18, 70, 76, 83, 148, 36, 209, 78, 89, 109, 50, 47, 6, 37, 65,
-			13, 50, 0, 18, 70, 64, 83, 66, 21, 48, 82, 48, 13, 65, 71, 6, 13, 89, 35, 34, 0, 18, 70, 52, 83, 66, 21, 48, 82, 65,
-			13, 65, 71, 6, 13, 89, 35, 34, 0, 0, 9, 68, 64, 245, 197, 72, 21, 0, 47, 11, 67, 85, 66, 192, 40, 50, 47, 39, 19, 0,
-			0, 0, 7, 65, 28, 75, 37, 12, 0, 0, 13, 68, 44, 84, 138, 4, 49, 6, 13, 51, 75, 13, 0, 0, 0, 0, 6, 65, 32, 36,
-			76, 0, 0, 0, 0, 11, 70, 24, 148, 133, 24, 198, 64, 21, 0, 47, 13, 68, 5, 52, 5, 44, 6, 35, 89, 48, 124, 49, 0, 10,
-			1, 35, 48, 6, 35, 81, 35, 51, 0, 0, 5, 65, 36, 117, 0, 0, 12, 1, 37, 48, 13, 16, 51, 35, 47, 40, 89, 0, 0, 19,
-			1, 38, 109, 50, 15, 49, 6, 35, 65, 48, 13, 50, 37, 0, 81, 99, 111, 32, 8, 1, 38, 72, 6, 35, 50, 0, 0, 0, 15, 69,
-			77, 80, 138, 20, 176, 89, 6, 35, 71, 75, 124, 49, 0, 13, 68, 44, 82, 193, 48, 49, 6, 13, 49, 35, 55, 0, 6, 65, 40, 75,
-			36, 0, 0, 18, 70, 52, 22, 66, 4, 226, 192, 65, 6, 36, 37, 71, 6, 109, 50, 49, 0, 18, 70, 8, 84, 135, 20, 192, 82, 71,
-			13, 51, 81, 6, 13, 55, 35, 34, 0, 0, 0, 11, 1, 43, 80, 6, 35, 65, 48, 39, 34, 0, 0, 6, 65, 44, 49, 36, 0, 0,
-			0, 0, 10, 1, 47, 89, 47, 52, 6, 39, 49, 0, 0, 29, 76, 52, 83, 153, 20, 193, 83, 4, 146, 193, 56, 230, 65, 65, 13, 67,
-			13, 55, 13, 89, 117, 49, 6, 35, 50, 67, 13, 0, 18, 70, 8, 84, 144, 21, 53, 1, 71, 13, 51, 48, 6, 36, 89, 47, 35, 0,
-			13, 4, 95, 100, 105, 97, 6, 40, 65, 55, 114, 47, 0, 6, 65, 48, 109, 55, 0, 0, 0, 0, 11, 70, 12, 243, 80, 4, 230, 64,
-			21, 0, 47, 0, 15, 69, 80, 82, 206, 36, 176, 47, 6, 109, 49, 50, 37, 49, 0, 6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6,
-			65, 56, 109, 50, 0, 0, 0, 0, 0, 6, 65, 60, 39, 12, 0, 0, 16, 1, 61, 89, 4, 35, 65, 13, 15, 72, 6, 13, 68, 35,
-			50, 0, 0, 15, 69, 8, 19, 1, 16, 16, 71, 35, 55, 6, 35, 72, 35, 0, 0, 26, 73, 76, 84, 5, 73, 66, 77, 4, 224, 64,
-			89, 13, 48, 4, 13, 51, 47, 37, 65, 6, 35, 50, 13, 0, 8, 0, 12, 1, 64, 35, 15, 49, 6, 109, 110, 50, 81, 0, 7, 65,
-			64, 48, 37, 12, 0, 0, 0, 13, 67, 4, 33, 0, 6, 35, 71, 72, 40, 55, 0, 24, 0, 0, 8, 65, 68, 49, 57, 40, 12, 0,
-			0, 0, 0, 0, 6, 65, 72, 35, 34, 0, 0, 0, 8, 67, 80, 129, 64, 21, 0, 47, 0, 11, 4, 95, 100, 111, 116, 72, 6, 110,
-			47, 0, 0, 6, 65, 76, 109, 89, 0, 0, 0, 0, 0, 9, 198, 5, 64, 85, 65, 83, 128, 8, 14, 69, 12, 129, 82, 5, 48, 76,
-			6, 13, 34, 35, 89, 0, 7, 65, 80, 47, 37, 12, 0, 0, 0, 0, 0, 13, 68, 64, 84, 193, 80, 48, 6, 13, 89, 35, 47, 0,
-			13, 68, 20, 212, 1, 80, 6, 13, 65, 48, 35, 47, 0, 13, 68, 12, 84, 1, 80, 76, 6, 13, 48, 35, 47, 0, 7, 65, 84, 57,
-			40, 12, 0, 0, 0, 0, 0, 7, 65, 88, 84, 37, 12, 0, 0, 0, 0, 30, 76, 64, 84, 139, 20, 208, 129, 56, 112, 78, 57, 144,
-			64, 48, 13, 51, 49, 4, 13, 65, 71, 35, 68, 6, 35, 50, 67, 13, 0, 0, 13, 68, 44, 84, 193, 48, 49, 6, 13, 89, 35, 55,
-			0, 13, 65, 92, 72, 6, 35, 71, 13, 55, 37, 40, 12, 0, 0, 13, 68, 80, 84, 129, 52, 47, 6, 13, 51, 35, 65, 0, 0, 15,
-			1, 94, 47, 4, 35, 50, 72, 35, 47, 6, 39, 48, 37, 0, 0, 0, 18, 70, 52, 83, 133, 53, 0, 72, 65, 13, 50, 6, 13, 65,
-			48, 35, 107, 0, 17, 70, 52, 83, 133, 53, 0, 64, 65, 13, 50, 6, 13, 65, 48, 13, 0, 15, 4, 95, 49, 77, 49, 89, 13, 34,
-			6, 37, 71, 40, 10, 0, 7, 65, 96, 109, 49, 89, 0, 0, 15, 4, 95, 49, 77, 50, 89, 13, 75, 6, 40, 47, 13, 10, 0, 0,
-			16, 4, 95, 49, 77, 51, 89, 13, 71, 6, 37, 55, 37, 13, 50, 0, 0, 0, 6, 65, 100, 58, 117, 0, 0, 12, 68, 48, 81, 76,
-			4, 55, 6, 37, 55, 35, 0, 0, 0, 17, 70, 48, 83, 66, 4, 112, 64, 55, 13, 65, 71, 6, 35, 81, 35, 0, 0, 9, 68, 64,
-			245, 78, 16, 21, 0, 47, 7, 65, 104, 88, 109, 72, 0, 0, 0, 0, 17, 70, 52, 84, 132, 20, 176, 64, 65, 13, 51, 72, 6, 36,
-			49, 35, 0, 17, 70, 64, 84, 197, 73, 64, 64, 48, 13, 89, 6, 13, 51, 47, 13, 0, 17, 70, 8, 84, 197, 73, 64, 64, 71, 13,
-			89, 6, 13, 51, 47, 13, 0, 17, 70, 76, 82, 197, 72, 160, 64, 89, 13, 49, 6, 13, 51, 75, 13, 0, 19, 71, 64, 83, 135, 28,
-			84, 129, 44, 48, 13, 68, 81, 6, 13, 34, 35, 19, 0, 0, 0, 0, 9, 67, 100, 85, 192, 57, 37, 40, 0, 0, 0, 0, 0, 0,
-			15, 69, 77, 84, 131, 4, 160, 89, 6, 13, 51, 76, 35, 75, 0, 0, 0, 0, 0, 0, 0, 20, 71, 36, 225, 15, 56, 84, 201, 4,
-			37, 50, 72, 39, 50, 6, 118, 89, 37, 13, 0, 0, 0, 0, 9, 68, 76, 245, 84, 32, 21, 0, 47, 0, 0, 10, 1, 126, 47, 6,
-			37, 55, 72, 36, 0, 0, 13, 68, 44, 83, 1, 44, 49, 6, 13, 55, 35, 49, 0, 13, 4, 95, 116, 108, 100, 47, 6, 37, 55, 72,
-			13, 0, 0, 0, 0, 6, 195, 64, 144, 135, 13, 0, 0, 0, 6, 195, 4, 100, 0, 13, 0, 0, 10, 67, 77, 145, 68, 89, 6, 117,
-			72, 0, 17, 70, 80, 84, 135, 21, 48, 64, 47, 13, 51, 81, 6, 13, 89, 13, 0, 0, 12, 68, 29, 32, 78, 16, 81, 52, 109, 50,
-			72, 0, 0, 14, 68, 76, 84, 148, 4, 89, 6, 13, 34, 47, 13, 0, 8, 0, 20, 71, 44, 83, 5, 92, 21, 1, 56, 49, 13, 55,
-			36, 58, 6, 35, 47, 35, 50, 0, 0, 17, 70, 40, 83, 148, 21, 32, 64, 75, 13, 50, 47, 6, 13, 51, 13, 0, 25, 73, 16, 146,
-			197, 32, 83, 132, 4, 178, 64, 72, 37, 49, 4, 13, 107, 13, 50, 72, 6, 35, 49, 37, 0, 17, 70, 64, 83, 132, 21, 32, 64, 48,
-			13, 50, 72, 6, 13, 51, 13, 0, 0, 0, 0, 0, 0, 0, 0, 9, 68, 40, 20, 207, 56, 21, 0, 47, 0, 0, 0, 0, 13, 68,
-			16, 243, 1, 72, 72, 6, 110, 55, 13, 34, 0, 13, 68, 28, 83, 1, 72, 81, 6, 13, 55, 35, 34, 0, 0, 0, 17, 70, 60, 181,
-			15, 8, 84, 128, 39, 49, 47, 6, 39, 71, 13, 34, 0, 17, 70, 44, 244, 143, 56, 84, 128, 49, 39, 51, 6, 39, 50, 13, 34, 0,
-			17, 70, 16, 146, 197, 40, 20, 128, 72, 37, 49, 6, 13, 75, 35, 34, 0, 0, 0, 13, 68, 52, 85, 5, 72, 65, 6, 37, 47, 13,
-			34, 0, 19, 71, 16, 83, 132, 4, 225, 193, 56, 72, 109, 50, 72, 6, 35, 68, 35, 50, 0, 0, 22, 72, 76, 80, 129, 32, 17, 201,
-			4, 224, 89, 13, 71, 6, 35, 107, 19, 81, 37, 35, 50, 0, 8, 67, 92, 19, 12, 21, 0, 47, 23, 72, 64, 84, 147, 20, 66, 65,
-			4, 224, 48, 13, 51, 89, 4, 13, 72, 37, 6, 35, 35, 50, 0, 0, 0, 0, 20, 71, 44, 82, 5, 8, 21, 1, 56, 49, 13, 107,
-			36, 71, 6, 35, 47, 35, 50, 0, 0, 0, 0, 15, 69, 80, 83, 80, 4, 128, 47, 6, 13, 65, 48, 35, 107, 0, 0, 0, 0, 8,
-			67, 80, 243, 153, 21, 0, 47, 0, 0, 0, 0, 0, 13, 66, 17, 32, 72, 6, 39, 49, 47, 13, 51, 0, 24, 0, 0, 0, 11, 67,
-			4, 225, 1, 6, 35, 50, 72, 35, 0, 0, 15, 69, 76, 83, 66, 4, 128, 89, 6, 13, 65, 71, 35, 107, 0, 15, 69, 48, 83, 66,
-			4, 128, 55, 6, 13, 65, 71, 35, 107, 0, 15, 67, 17, 36, 0, 72, 35, 52, 37, 48, 6, 35, 72, 13, 0, 0, 0, 0, 6, 195,
-			64, 17, 1, 72, 13, 68, 12, 81, 193, 32, 76, 6, 13, 81, 35, 107, 0, 0, 0, 0, 0, 10, 69, 8, 244, 142, 20, 240, 21, 0,
-			47, 0, 14, 4, 95, 109, 99, 110, 65, 6, 35, 49, 52, 110, 50, 0, 0, 13, 68, 28, 83, 65, 72, 81, 6, 13, 65, 35, 34, 0,
-			0, 25, 73, 8, 82, 197, 72, 160, 83, 4, 208, 64, 71, 13, 49, 4, 13, 51, 75, 13, 89, 6, 35, 65, 13, 0, 0, 16, 70, 80,
-			83, 135, 44, 20, 128, 47, 6, 13, 68, 49, 35, 34, 0, 0, 11, 70, 72, 85, 84, 21, 36, 192, 21, 0, 47, 10, 69, 77, 68, 133,
-			21, 64, 21, 0, 47, 0, 0, 22, 72, 64, 84, 135, 60, 192, 75, 4, 224, 48, 13, 51, 81, 39, 55, 6, 35, 49, 35, 50, 0, 0,
-			0, 0, 7, 196, 56, 19, 85, 56, 8, 20, 71, 64, 84, 133, 53, 5, 65, 56, 48, 13, 51, 13, 65, 48, 6, 40, 35, 50, 0, 0,
-			18, 70, 8, 84, 148, 21, 64, 80, 71, 13, 51, 47, 6, 13, 47, 35, 48, 0, 0, 0, 0, 19, 71, 52, 83, 132, 20, 225, 193, 72,
-			65, 13, 50, 72, 6, 13, 68, 35, 34, 0, 14, 67, 8, 129, 0, 71, 6, 13, 51, 107, 35, 72, 0, 24, 0, 18, 70, 80, 84, 132,
-			20, 176, 84, 47, 13, 51, 72, 6, 13, 49, 35, 47, 0, 0, 0, 7, 196, 32, 19, 153, 4, 8, 0, 13, 72, 20, 229, 5, 73, 4,
-			137, 76, 80, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 16, 70, 44, 83, 66, 4, 225, 192, 49, 6, 13, 65, 71, 35, 68, 0, 0,
-			0, 0, 13, 68, 8, 81, 1, 32, 71, 6, 13, 72, 35, 107, 0, 0, 26, 73, 64, 84, 140, 20, 208, 129, 28, 16, 78, 48, 13, 51,
-			55, 4, 13, 65, 71, 35, 81, 6, 35, 35, 50, 0, 0, 0, 0, 0, 18, 70, 36, 228, 197, 57, 66, 70, 37, 50, 89, 6, 124, 50,
-			47, 37, 83, 0, 0, 0, 15, 69, 16, 242, 212, 61, 32, 72, 6, 39, 49, 47, 13, 34, 0, 0, 0, 0, 12, 71, 20, 69, 67, 5,
-			66, 79, 56, 21, 0, 47, 0, 19, 71, 8, 84, 148, 20, 112, 78, 28, 71, 6, 13, 51, 47, 13, 81, 35, 68, 0, 0, 7, 196, 52,
-			19, 1, 32, 8, 13, 68, 76, 19, 5, 32, 89, 6, 35, 55, 36, 107, 0, 13, 68, 80, 83, 1, 32, 47, 6, 13, 55, 35, 107, 0,
-			13, 68, 8, 83, 1, 32, 71, 6, 13, 55, 35, 107, 0, 0, 13, 68, 53, 83, 1, 36, 65, 40, 55, 6, 35, 37, 0, 0, 0, 0,
-			0, 0, 0, 15, 67, 52, 242, 4, 65, 39, 107, 6, 35, 65, 35, 72, 0, 24, 0, 0, 11, 70, 20, 225, 204, 4, 225, 0, 21, 0,
-			47, 0, 8, 197, 44, 85, 9, 44, 16, 8, 8, 197, 44, 84, 129, 56, 16, 8, 10, 69, 25, 32, 78, 12, 80, 21, 0, 47, 0, 0,
-			0, 13, 68, 80, 144, 82, 4, 47, 37, 6, 35, 51, 35, 0, 0, 15, 69, 76, 128, 70, 36, 80, 91, 35, 83, 6, 37, 19, 37, 0,
-			0, 0, 11, 67, 5, 50, 65, 35, 89, 6, 37, 35, 0, 0, 26, 73, 64, 83, 66, 20, 192, 74, 5, 32, 78, 48, 13, 65, 71, 4,
-			13, 55, 35, 75, 6, 35, 51, 35, 50, 0, 0, 9, 68, 84, 226, 79, 56, 21, 0, 47, 13, 72, 12, 243, 147, 61, 37, 9, 84, 208,
-			21, 0, 47, 0, 0, 17, 70, 52, 19, 1, 101, 50, 65, 65, 13, 55, 6, 36, 89, 37, 13, 0, 17, 70, 32, 80, 129, 80, 230, 65,
-			107, 109, 71, 6, 35, 47, 67, 13, 0, 0, 0, 24, 72, 84, 226, 86, 21, 36, 201, 80, 144, 57, 40, 50, 4, 37, 84, 13, 51, 89,
-			6, 37, 47, 37, 0, 0, 17, 70, 72, 80, 76, 37, 66, 64, 51, 37, 35, 55, 6, 37, 47, 37, 0, 25, 73, 64, 84, 147, 60, 224,
-			76, 37, 66, 64, 48, 13, 51, 89, 4, 13, 50, 35, 55, 6, 37, 47, 37, 0, 0, 0, 15, 69, 64, 133, 75, 21, 64, 48, 107, 6,
-			40, 49, 109, 47, 0, 0, 13, 68, 44, 82, 129, 72, 49, 6, 13, 75, 35, 34, 0, 0, 14, 69, 16, 83, 135, 5, 32, 72, 6, 13,
-			68, 35, 34, 0, 0, 0, 0, 0, 13, 68, 48, 84, 1, 76, 55, 6, 13, 48, 35, 89, 0, 0, 13, 68, 48, 83, 65, 32, 55, 6,
-			13, 65, 35, 107, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68, 72, 85, 1, 44, 34, 6, 13, 47, 35, 49, 0, 0, 0, 0, 0, 14,
-			69, 64, 85, 1, 56, 112, 48, 6, 13, 47, 35, 68, 0, 29, 67, 17, 147, 77, 72, 6, 40, 55, 37, 15, 57, 35, 50, 81, 15, 65,
-			35, 107, 6, 35, 15, 65, 6, 40, 55, 37, 13, 0, 0, 0, 15, 69, 80, 246, 79, 80, 16, 47, 39, 57, 6, 39, 47, 35, 0, 12,
-			67, 84, 211, 143, 6, 35, 65, 50, 39, 12, 0, 0, 0, 14, 69, 80, 81, 193, 56, 112, 47, 6, 13, 81, 35, 68, 0, 14, 69, 76,
-			81, 1, 56, 112, 89, 6, 13, 72, 35, 68, 0, 14, 69, 64, 81, 193, 56, 112, 48, 6, 13, 81, 35, 68, 0, 0, 0, 0, 13, 68,
-			76, 144, 149, 44, 89, 6, 36, 71, 39, 49, 0, 18, 70, 65, 33, 83, 36, 65, 78, 48, 51, 124, 89, 6, 37, 72, 13, 50, 0, 0,
-			9, 198, 52, 148, 193, 48, 230, 65, 8, 11, 67, 76, 82, 1, 89, 6, 36, 107, 35, 0, 18, 70, 88, 19, 5, 56, 50, 65, 84, 36,
-			55, 6, 13, 50, 89, 37, 35, 0, 0, 0, 0, 11, 194, 16, 144, 8, 81, 109, 97, 110, 97, 32, 5, 194, 16, 144, 72, 0, 0, 0,
-			0, 0, 18, 70, 8, 84, 132, 21, 0, 78, 71, 13, 51, 72, 6, 13, 48, 35, 50, 0, 0, 0, 9, 68, 72, 145, 200, 80, 21, 0,
-			47, 22, 72, 9, 83, 73, 65, 85, 5, 72, 16, 71, 40, 65, 37, 48, 6, 40, 47, 19, 51, 35, 0, 0, 13, 68, 44, 84, 129, 76,
-			49, 6, 13, 51, 35, 89, 0, 0, 0, 0, 0, 0, 7, 195, 16, 19, 128, 8, 72, 10, 67, 20, 243, 128, 6, 37, 39, 50, 0, 0,
-			11, 70, 16, 83, 141, 5, 34, 192, 21, 0, 47, 0, 14, 69, 9, 37, 78, 20, 144, 71, 6, 52, 40, 50, 117, 0, 0, 9, 198, 76,
-			84, 5, 73, 66, 64, 8, 18, 70, 28, 83, 69, 57, 64, 82, 81, 13, 65, 6, 13, 50, 47, 35, 34, 0, 18, 70, 80, 84, 147, 20,
-			64, 82, 47, 13, 51, 89, 6, 13, 72, 35, 34, 0, 16, 66, 32, 32, 107, 4, 35, 34, 37, 71, 6, 40, 55, 35, 50, 0, 0, 0,
-			0, 0, 0, 0, 10, 67, 48, 19, 132, 55, 109, 50, 72, 0, 0, 0, 0, 0, 18, 70, 80, 83, 69, 72, 195, 200, 47, 13, 65, 6,
-			13, 51, 55, 39, 107, 0, 0, 0, 0, 0, 0, 0, 16, 66, 12, 208, 89, 13, 50, 47, 37, 65, 6, 36, 47, 13, 34, 0, 0, 26,
-			73, 52, 19, 1, 101, 50, 65, 44, 147, 137, 65, 13, 55, 6, 36, 89, 37, 13, 15, 49, 6, 37, 50, 37, 0, 0, 8, 67, 92, 84,
-			212, 21, 0, 47, 0, 0, 0, 0, 17, 70, 52, 83, 133, 56, 112, 72, 65, 13, 50, 6, 13, 68, 35, 107, 0, 20, 71, 76, 82, 129,
-			33, 65, 82, 4, 89, 13, 75, 35, 107, 47, 6, 13, 51, 13, 0, 0, 0, 0, 6, 195, 5, 64, 85, 8, 0, 0, 16, 69, 53, 86,
-			137, 84, 208, 65, 6, 37, 40, 88, 37, 13, 65, 0, 0, 0, 18, 70, 52, 18, 143, 72, 149, 9, 65, 109, 75, 39, 34, 6, 37, 47,
-			37, 0, 0, 13, 68, 76, 83, 1, 52, 89, 6, 13, 55, 35, 65, 0, 13, 68, 44, 83, 1, 52, 49, 6, 13, 55, 35, 65, 0, 0,
-			6, 195, 76, 19, 135, 72, 0, 17, 70, 16, 145, 5, 56, 112, 82, 72, 37, 72, 6, 13, 68, 35, 34, 0, 0, 0, 0, 17, 70, 28,
-			19, 1, 44, 19, 128, 81, 35, 55, 6, 35, 49, 35, 50, 0, 0, 0, 0, 11, 67, 37, 3, 196, 117, 15, 48, 39, 72, 0, 25, 73,
-			8, 84, 141, 21, 54, 85, 5, 32, 84, 71, 13, 51, 65, 4, 13, 91, 40, 6, 35, 51, 35, 47, 0, 0, 12, 67, 21, 128, 207, 6,
-			109, 49, 89, 49, 39, 0, 0, 6, 194, 37, 32, 13, 24, 0, 11, 67, 44, 83, 129, 49, 6, 13, 50, 13, 0, 0, 0, 0, 0, 27,
-			74, 44, 80, 197, 52, 84, 140, 4, 225, 193, 56, 49, 13, 76, 4, 13, 51, 65, 13, 55, 6, 35, 68, 35, 50, 0, 0, 0, 23, 72,
-			44, 84, 197, 53, 80, 78, 100, 16, 49, 13, 89, 4, 13, 65, 40, 6, 13, 50, 67, 13, 0, 0, 27, 66, 12, 240, 49, 6, 35, 65,
-			48, 13, 50, 37, 15, 55, 37, 65, 6, 37, 47, 13, 72, 0, 81, 108, 116, 100, 32, 0, 0, 0, 9, 198, 52, 19, 1, 32, 19, 128,
-			8, 17, 70, 52, 84, 137, 12, 19, 128, 65, 6, 36, 34, 37, 49, 35, 50, 0, 13, 68, 80, 84, 1, 80, 47, 6, 13, 48, 35, 47,
-			0, 17, 70, 52, 83, 133, 44, 19, 128, 65, 13, 50, 6, 13, 49, 35, 50, 0, 13, 68, 44, 84, 193, 80, 49, 6, 13, 89, 35, 47,
-			0, 14, 4, 95, 111, 103, 111, 6, 110, 81, 39, 50, 109, 49, 0, 0, 0, 18, 70, 8, 84, 140, 21, 0, 83, 71, 13, 51, 55, 6,
-			13, 48, 35, 89, 0, 0, 8, 67, 48, 81, 148, 21, 0, 47, 17, 70, 44, 16, 137, 56, 85, 0, 49, 109, 71, 6, 37, 50, 13, 47,
-			0, 0, 13, 68, 76, 82, 193, 80, 89, 6, 13, 49, 35, 47, 0, 13, 68, 48, 82, 193, 80, 55, 6, 13, 49, 35, 47, 0, 13, 68,
-			16, 82, 193, 80, 72, 6, 13, 49, 35, 47, 0, 0, 16, 67, 65, 35, 198, 48, 34, 39, 83, 6, 36, 89, 13, 34, 0, 24, 0, 0,
-			0, 0, 0, 0, 0, 12, 195, 100, 19, 135, 8, 81, 109, 97, 110, 97, 32, 6, 195, 100, 19, 135, 72, 6, 195, 32, 19, 135, 72, 18,
-			70, 80, 84, 138, 20, 160, 83, 47, 13, 51, 75, 6, 13, 75, 35, 89, 0, 0, 0, 11, 67, 64, 20, 192, 48, 6, 35, 12, 89, 0,
-			0, 0, 11, 70, 52, 19, 1, 100, 19, 128, 21, 0, 47, 11, 70, 9, 34, 84, 4, 147, 128, 21, 0, 47, 0, 0, 0, 15, 69, 100,
-			16, 67, 60, 32, 57, 6, 35, 19, 49, 39, 71, 0, 13, 68, 64, 84, 212, 4, 48, 6, 36, 89, 47, 35, 0, 0, 0, 13, 4, 95,
-			98, 114, 118, 71, 52, 6, 37, 12, 84, 0, 0, 8, 67, 56, 85, 192, 21, 0, 47, 0, 0, 0, 18, 4, 95, 97, 99, 50, 72, 40,
-			71, 13, 55, 35, 49, 57, 6, 40, 47, 0, 0, 0, 0, 9, 68, 56, 244, 148, 32, 21, 0, 47, 25, 73, 44, 84, 197, 48, 19, 65,
-			80, 19, 128, 49, 13, 89, 4, 13, 55, 35, 65, 6, 35, 47, 35, 50, 0, 24, 73, 16, 148, 197, 28, 84, 129, 44, 19, 128, 72, 37,
-			89, 13, 81, 13, 51, 6, 13, 49, 35, 50, 0, 0, 0, 0, 9, 68, 52, 16, 193, 84, 21, 0, 47, 0, 11, 67, 8, 19, 139, 71,
-			6, 109, 50, 49, 0, 0, 13, 68, 44, 83, 1, 76, 49, 6, 13, 55, 35, 89, 0, 0, 10, 69, 76, 84, 137, 85, 48, 21, 0, 47,
-			18, 70, 80, 84, 140, 21, 0, 83, 47, 13, 51, 55, 6, 13, 48, 35, 89, 0, 13, 68, 8, 83, 129, 72, 71, 6, 13, 50, 35, 34,
-			0, 0, 18, 70, 80, 82, 206, 36, 176, 76, 47, 109, 49, 50, 6, 37, 49, 35, 55, 0, 0, 17, 70, 76, 80, 133, 56, 20, 128, 89,
-			13, 71, 6, 13, 50, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 70, 8, 84, 139, 21, 32, 83, 71, 13, 51, 49, 6, 13,
-			51, 35, 89, 0, 18, 70, 8, 19, 148, 21, 32, 83, 71, 35, 50, 47, 6, 13, 51, 35, 89, 0, 0, 12, 66, 20, 224, 6, 37, 50,
-			76, 36, 49, 0, 24, 0, 16, 3, 95, 51, 88, 47, 6, 37, 81, 13, 48, 40, 55, 39, 107, 0, 0, 16, 69, 76, 83, 1, 36, 224,
-			89, 13, 55, 6, 35, 37, 50, 0, 8, 13, 3, 95, 48, 67, 51, 6, 35, 47, 40, 89, 23, 0, 0, 9, 68, 81, 33, 78, 16, 21,
-			0, 47, 17, 70, 52, 20, 193, 44, 19, 128, 65, 35, 89, 6, 35, 49, 35, 50, 0, 0, 16, 70, 16, 149, 1, 57, 144, 64, 72, 37,
-			47, 6, 35, 67, 13, 0, 0, 0, 17, 70, 52, 83, 153, 4, 192, 72, 65, 13, 67, 6, 35, 55, 35, 107, 0, 0, 0, 0, 11, 67,
-			56, 244, 129, 50, 6, 39, 51, 35, 0, 11, 67, 16, 84, 129, 72, 6, 13, 51, 13, 0, 0, 9, 68, 16, 18, 76, 100, 21, 0, 47,
-			17, 70, 76, 85, 5, 56, 112, 72, 89, 13, 47, 6, 13, 68, 35, 107, 0, 15, 3, 95, 49, 67, 89, 13, 16, 6, 35, 47, 40, 89,
-			23, 0, 0, 18, 70, 16, 243, 69, 77, 66, 75, 72, 110, 65, 6, 109, 89, 47, 37, 49, 0, 0, 15, 69, 64, 84, 142, 4, 128, 48,
-			6, 13, 34, 50, 35, 107, 0, 12, 68, 8, 80, 197, 44, 71, 109, 76, 124, 19, 0, 12, 68, 8, 80, 133, 44, 71, 109, 71, 124, 19,
-			0, 0, 0, 21, 72, 44, 80, 129, 57, 144, 75, 4, 224, 49, 13, 71, 35, 67, 6, 35, 49, 35, 50, 0, 0, 0, 15, 69, 72, 83,
-			132, 4, 128, 51, 6, 13, 50, 72, 35, 107, 0, 20, 3, 95, 49, 57, 89, 13, 65, 71, 6, 37, 55, 35, 50, 71, 13, 55, 35, 89,
-			0, 0, 17, 3, 95, 49, 56, 55, 6, 35, 48, 35, 50, 71, 13, 55, 35, 89, 0, 0, 0, 21, 72, 16, 144, 133, 48, 83, 135, 29,
-			80, 72, 37, 71, 13, 55, 6, 13, 68, 81, 40, 0, 0, 13, 68, 44, 83, 65, 76, 49, 6, 13, 65, 35, 89, 0, 0, 0, 0, 11,
-			70, 77, 1, 65, 44, 84, 128, 21, 0, 47, 0, 21, 72, 76, 84, 197, 80, 83, 135, 4, 128, 89, 13, 89, 13, 47, 6, 13, 68, 35,
-			107, 0, 14, 3, 95, 49, 49, 89, 6, 13, 71, 13, 55, 35, 89, 0, 0, 12, 68, 76, 85, 1, 72, 89, 19, 47, 35, 34, 0, 17,
-			70, 16, 149, 5, 53, 0, 64, 72, 37, 47, 6, 13, 65, 48, 13, 0, 13, 68, 76, 81, 1, 72, 89, 6, 13, 72, 35, 34, 0, 14,
-			3, 95, 49, 48, 89, 13, 48, 6, 40, 55, 40, 107, 0, 0, 23, 72, 44, 80, 197, 48, 20, 149, 4, 224, 49, 13, 76, 4, 13, 55,
-			35, 51, 6, 40, 35, 50, 0, 16, 3, 95, 49, 51, 47, 6, 37, 81, 13, 71, 13, 55, 35, 89, 0, 0, 17, 70, 52, 83, 69, 28,
-			19, 135, 65, 13, 65, 6, 13, 81, 35, 68, 0, 15, 3, 95, 49, 50, 72, 6, 40, 13, 71, 13, 55, 35, 89, 0, 0, 13, 68, 64,
-			84, 129, 44, 48, 6, 36, 34, 35, 49, 0, 16, 3, 95, 49, 53, 55, 6, 37, 65, 13, 71, 13, 55, 35, 89, 0, 0, 6, 195, 85,
-			3, 64, 13, 17, 67, 76, 67, 128, 89, 13, 50, 72, 37, 52, 6, 37, 35, 50, 0, 24, 17, 3, 95, 49, 52, 6, 13, 65, 48, 35,
-			47, 71, 13, 55, 35, 89, 0, 0, 14, 69, 20, 225, 199, 4, 224, 6, 13, 68, 81, 35, 50, 0, 18, 3, 95, 49, 55, 47, 6, 40,
-			75, 2, 39, 107, 71, 13, 55, 35, 89, 0, 0, 25, 73, 44, 83, 69, 72, 65, 75, 4, 19, 128, 49, 13, 65, 4, 13, 51, 72, 36,
-			49, 6, 35, 35, 50, 0, 16, 3, 95, 49, 54, 6, 13, 50, 35, 65, 71, 13, 55, 35, 89, 0, 0, 8, 197, 4, 64, 76, 4, 128,
-			72, 15, 69, 21, 35, 208, 4, 128, 109, 34, 6, 39, 48, 35, 107, 0, 15, 69, 52, 83, 148, 4, 128, 65, 6, 13, 50, 47, 35, 107,
-			0, 11, 66, 32, 160, 107, 6, 35, 75, 37, 0, 24, 0, 19, 71, 64, 83, 135, 28, 83, 65, 72, 48, 13, 68, 81, 6, 13, 65, 35,
-			34, 0, 18, 3, 95, 55, 88, 47, 6, 40, 75, 2, 39, 107, 48, 40, 55, 39, 107, 0, 0, 9, 68, 52, 81, 9, 4, 21, 0, 47,
-			0, 0, 0, 17, 70, 64, 83, 153, 20, 192, 77, 48, 13, 67, 6, 13, 55, 35, 65, 0, 14, 67, 76, 68, 128, 89, 114, 72, 6, 35,
-			51, 13, 0, 24, 0, 0, 0, 13, 72, 28, 245, 133, 72, 227, 69, 57, 64, 21, 0, 47, 0, 9, 198, 16, 20, 137, 64, 17, 1, 72,
-			0, 0, 13, 68, 64, 80, 193, 32, 48, 6, 13, 76, 35, 107, 0, 0, 14, 73, 16, 148, 212, 72, 144, 149, 80, 147, 206, 21, 0, 47,
-			26, 73, 64, 84, 130, 20, 192, 78, 40, 16, 78, 48, 13, 51, 71, 4, 13, 55, 35, 50, 75, 6, 35, 35, 50, 0, 0, 13, 4, 95,
-			97, 99, 117, 35, 49, 57, 6, 40, 47, 0, 0, 0, 0, 8, 66, 44, 80, 49, 13, 0, 72, 0, 0, 0, 0, 0, 0, 0, 9, 68,
-			29, 35, 213, 64, 21, 0, 47, 17, 70, 76, 80, 133, 76, 20, 128, 89, 13, 71, 6, 13, 89, 35, 34, 0, 0, 19, 71, 64, 83, 133,
-			57, 64, 78, 28, 48, 13, 50, 6, 13, 50, 47, 35, 68, 0, 13, 68, 80, 81, 193, 76, 47, 6, 13, 81, 35, 89, 0, 0, 15, 3,
-			95, 50, 88, 72, 6, 40, 13, 48, 40, 55, 39, 107, 0, 0, 17, 70, 60, 211, 137, 9, 84, 192, 6, 39, 65, 50, 37, 71, 35, 89,
-			0, 0, 0, 0, 0, 8, 197, 8, 18, 11, 4, 224, 8, 0, 0, 0, 6, 195, 16, 20, 137, 72, 13, 68, 80, 83, 65, 56, 47, 6,
-			13, 65, 35, 50, 0, 0, 9, 68, 44, 244, 133, 4, 21, 0, 47, 0, 0, 0, 18, 70, 52, 85, 193, 72, 224, 73, 65, 13, 58, 35,
-			34, 50, 6, 35, 37, 0, 0, 21, 72, 8, 84, 148, 20, 225, 203, 5, 32, 71, 13, 51, 47, 6, 13, 68, 49, 35, 34, 0, 17, 3,
-			95, 63, 63, 49, 4, 39, 72, 36, 107, 6, 40, 52, 40, 83, 0, 0, 15, 67, 49, 65, 0, 55, 37, 65, 6, 37, 47, 13, 72, 0,
-			24, 0, 13, 66, 53, 32, 65, 6, 37, 89, 47, 13, 34, 0, 24, 0, 17, 3, 95, 52, 88, 6, 109, 65, 48, 35, 47, 48, 40, 55,
-			39, 107, 0, 0, 0, 20, 72, 80, 84, 133, 56, 113, 193, 57, 80, 47, 52, 13, 68, 81, 6, 35, 50, 40, 0, 17, 70, 56, 81, 193,
-			80, 145, 128, 50, 109, 81, 6, 13, 47, 37, 83, 0, 0, 0, 11, 67, 4, 181, 1, 6, 35, 49, 47, 35, 0, 0, 0, 0, 25, 73,
-			44, 85, 5, 57, 65, 82, 4, 208, 78, 49, 13, 47, 13, 50, 47, 13, 51, 6, 35, 65, 35, 50, 0, 0, 16, 3, 95, 53, 88, 55,
-			6, 37, 65, 13, 48, 40, 55, 39, 107, 0, 0, 0, 12, 4, 95, 114, 110, 103, 52, 6, 37, 68, 81, 0, 0, 18, 70, 65, 35, 198,
-			21, 51, 210, 48, 51, 39, 83, 6, 124, 89, 13, 34, 0, 0, 6, 195, 80, 20, 9, 8, 17, 70, 52, 83, 135, 20, 224, 73, 65, 13,
-			68, 13, 50, 6, 35, 37, 0, 0, 0, 13, 68, 80, 85, 1, 64, 47, 6, 13, 47, 35, 48, 0, 0, 0, 16, 3, 95, 54, 88, 6,
-			109, 50, 35, 65, 48, 40, 55, 39, 107, 0, 0, 11, 70, 76, 51, 212, 48, 19, 132, 21, 0, 47, 15, 69, 80, 80, 84, 21, 32, 47,
-			37, 6, 36, 47, 13, 34, 0, 0, 0, 19, 71, 16, 149, 5, 57, 64, 78, 28, 72, 37, 47, 6, 13, 50, 47, 35, 68, 0, 0, 0,
-			0, 0, 14, 66, 52, 64, 65, 39, 107, 6, 35, 65, 35, 72, 0, 24, 0, 9, 198, 76, 82, 9, 56, 113, 193, 8, 0, 11, 70, 37,
-			33, 76, 4, 225, 0, 21, 0, 47, 0, 15, 69, 16, 148, 133, 44, 16, 72, 37, 51, 6, 36, 49, 13, 0, 8, 197, 76, 83, 65, 76,
-			16, 8, 15, 69, 80, 84, 133, 76, 16, 47, 13, 52, 6, 37, 89, 35, 0, 10, 69, 29, 82, 78, 20, 16, 21, 0, 47, 0, 0, 14,
-			69, 44, 84, 15, 56, 112, 49, 6, 13, 48, 39, 68, 0, 0, 0, 0, 18, 70, 8, 84, 139, 21, 48, 78, 71, 13, 51, 49, 6, 13,
-			89, 35, 50, 0, 0, 10, 69, 8, 241, 73, 56, 112, 21, 0, 47, 17, 3, 95, 56, 88, 55, 6, 35, 48, 35, 50, 48, 40, 55, 39,
-			107, 0, 0, 0, 0, 18, 70, 80, 147, 132, 4, 176, 78, 47, 37, 50, 72, 6, 35, 49, 35, 50, 0, 0, 0, 0, 0, 14, 68, 53,
-			86, 137, 44, 65, 6, 37, 40, 88, 36, 49, 0, 0, 20, 3, 95, 57, 88, 89, 13, 65, 71, 6, 37, 55, 35, 50, 48, 40, 55, 39,
-			107, 0, 0, 0, 0, 13, 68, 40, 83, 1, 76, 75, 6, 13, 55, 35, 89, 0, 0, 18, 70, 16, 148, 197, 73, 64, 73, 72, 37, 89,
-			13, 51, 47, 6, 35, 37, 0, 0, 0, 0, 0, 0, 0, 0, 24, 73, 64, 83, 153, 20, 193, 83, 4, 144, 78, 48, 13, 67, 4, 13,
-			55, 13, 89, 6, 117, 35, 50, 0, 0, 0, 0, 13, 4, 95, 115, 116, 107, 89, 47, 51, 6, 39, 49, 0, 0, 18, 70, 56, 245, 133,
-			52, 33, 82, 50, 39, 84, 6, 109, 65, 71, 13, 34, 0, 13, 68, 48, 85, 1, 44, 55, 6, 13, 47, 35, 19, 0, 13, 68, 48, 85,
-			1, 44, 55, 6, 13, 47, 35, 49, 0, 0, 0, 26, 67, 100, 16, 128, 57, 35, 50, 81, 15, 35, 65, 35, 47, 15, 71, 13, 34, 107,
-			6, 39, 34, 65, 35, 47, 0, 0, 0, 14, 69, 76, 85, 15, 56, 112, 89, 13, 47, 6, 39, 68, 0, 0, 13, 68, 76, 84, 130, 4,
-			89, 6, 13, 51, 71, 13, 0, 0, 15, 69, 12, 81, 5, 72, 16, 76, 13, 72, 6, 13, 51, 13, 0, 0, 14, 73, 80, 80, 200, 56,
-			243, 15, 28, 145, 83, 21, 0, 47, 0, 0, 0, 15, 69, 104, 19, 66, 36, 16, 88, 6, 35, 65, 71, 37, 35, 0, 15, 69, 76, 81,
-			197, 72, 16, 89, 13, 81, 6, 13, 51, 13, 0, 0, 0, 0, 0, 15, 69, 80, 84, 139, 4, 208, 47, 6, 13, 51, 49, 35, 65, 0,
-			0, 0, 0, 0, 0, 9, 67, 12, 244, 144, 21, 0, 24, 47, 0, 0, 0, 0, 13, 72, 28, 83, 210, 28, 85, 15, 92, 224, 21, 0,
-			47, 0, 0, 26, 73, 44, 80, 133, 72, 177, 83, 4, 224, 78, 49, 13, 71, 4, 13, 51, 49, 13, 89, 6, 35, 50, 35, 50, 0, 13,
-			66, 53, 112, 65, 6, 36, 81, 35, 58, 35, 47, 0, 12, 4, 95, 99, 105, 114, 47, 6, 39, 48, 37, 0, 0, 18, 70, 72, 84, 21,
-			8, 194, 75, 51, 37, 48, 6, 35, 71, 55, 37, 19, 0, 0, 0, 0, 13, 4, 95, 48, 77, 50, 75, 6, 40, 47, 13, 10, 0, 0,
-			14, 4, 95, 48, 77, 51, 71, 6, 37, 55, 37, 13, 50, 0, 0, 0, 15, 74, 36, 229, 5, 72, 224, 84, 36, 243, 129, 48, 21, 0,
-			47, 13, 4, 95, 48, 77, 49, 51, 6, 37, 71, 40, 10, 0, 0, 0, 14, 69, 56, 81, 197, 72, 144, 50, 6, 13, 81, 52, 37, 0,
-			0, 0, 9, 68, 16, 21, 137, 16, 21, 0, 47, 0, 7, 196, 8, 18, 23, 4, 72, 0, 16, 67, 4, 148, 128, 21, 0, 47, 81, 102,
-			114, 97, 110, 99, 101, 32, 23, 67, 4, 148, 128, 6, 109, 12, 10, 6, 36, 12, 89, 37, 13, 10, 0, 81, 97, 115, 105, 97, 32, 0,
-			0, 0, 0, 14, 4, 95, 108, 105, 103, 72, 6, 117, 81, 51, 35, 83, 0, 0, 0, 0, 0, 0, 8, 67, 28, 148, 140, 21, 0, 47,
-			0, 0, 8, 66, 56, 112, 6, 13, 68, 0, 15, 66, 44, 208, 49, 37, 55, 39, 65, 6, 36, 47, 13, 34, 0, 0, 0, 0, 25, 73,
-			64, 84, 133, 53, 5, 65, 56, 230, 65, 48, 13, 51, 4, 13, 65, 48, 40, 6, 35, 50, 67, 13, 0, 0, 21, 71, 92, 146, 201, 64,
-			81, 9, 4, 58, 37, 49, 4, 37, 48, 6, 37, 72, 57, 35, 0, 11, 70, 4, 209, 82, 36, 48, 78, 21, 0, 47, 20, 71, 65, 85,
-			18, 4, 160, 89, 4, 48, 40, 47, 52, 13, 75, 6, 35, 57, 13, 0, 12, 71, 5, 84, 212, 72, 19, 9, 4, 21, 0, 47, 0, 0,
-			19, 71, 52, 83, 133, 57, 64, 78, 28, 65, 13, 50, 6, 13, 50, 47, 35, 68, 0, 18, 71, 64, 83, 153, 21, 32, 78, 28, 48, 13,
-			67, 6, 13, 34, 35, 68, 0, 0, 12, 71, 48, 149, 133, 73, 3, 207, 48, 21, 0, 47, 0, 7, 196, 44, 19, 1, 84, 8, 12, 71,
-			52, 83, 2, 61, 84, 142, 20, 21, 0, 47, 20, 71, 80, 84, 131, 20, 65, 82, 4, 47, 13, 51, 76, 13, 72, 6, 13, 51, 13, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 68, 44, 83, 129, 48, 49, 6, 13, 50, 35, 55, 0, 0, 0, 0, 0, 17, 70, 52, 83, 135, 28,
-			84, 193, 65, 13, 68, 81, 6, 13, 89, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 99, 101, 100, 89, 13,
-			72, 6, 37, 55, 35, 0, 0, 15, 67, 44, 243, 0, 49, 39, 55, 6, 39, 50, 13, 55, 0, 24, 0, 0, 0, 0, 0, 0, 11, 67,
-			32, 84, 143, 107, 6, 37, 52, 39, 0, 18, 70, 80, 84, 138, 20, 32, 75, 47, 13, 51, 75, 6, 13, 71, 35, 49, 0, 0, 0, 0,
-			21, 71, 57, 84, 136, 4, 194, 90, 4, 50, 4, 40, 51, 107, 35, 55, 6, 37, 88, 35, 0, 25, 73, 52, 83, 153, 20, 113, 82, 4,
-			176, 78, 65, 13, 67, 4, 13, 81, 13, 51, 6, 13, 49, 35, 50, 0, 0, 18, 70, 76, 84, 133, 57, 64, 75, 89, 13, 34, 6, 13,
-			50, 47, 35, 49, 0, 13, 69, 20, 225, 203, 5, 80, 6, 13, 68, 49, 114, 0, 0, 13, 4, 95, 99, 97, 112, 71, 6, 109, 89, 35,
-			51, 0, 0, 0, 26, 73, 16, 147, 1, 45, 48, 78, 4, 176, 78, 72, 37, 55, 4, 35, 49, 89, 35, 50, 6, 13, 49, 35, 50, 0,
-			0, 0, 0, 17, 70, 16, 146, 197, 76, 19, 128, 72, 37, 49, 6, 13, 89, 35, 50, 0, 0, 13, 68, 16, 83, 65, 52, 72, 6, 13,
-			65, 35, 65, 0, 0, 10, 69, 77, 145, 14, 21, 144, 21, 0, 47, 0, 0, 0, 0, 10, 67, 44, 84, 192, 49, 6, 36, 89, 0, 0,
-			18, 70, 80, 84, 139, 20, 224, 76, 47, 13, 51, 49, 6, 13, 50, 35, 55, 0, 0, 9, 198, 52, 19, 129, 44, 19, 1, 8, 0, 0,
-			0, 18, 70, 8, 84, 147, 4, 192, 72, 71, 13, 51, 89, 6, 35, 55, 35, 107, 0, 11, 67, 4, 225, 72, 6, 35, 50, 124, 107, 0,
-			17, 70, 52, 83, 153, 21, 48, 76, 65, 13, 67, 6, 13, 89, 35, 55, 0, 0, 24, 73, 44, 83, 69, 57, 65, 82, 36, 19, 128, 49,
-			13, 65, 4, 13, 50, 47, 52, 6, 37, 35, 50, 0, 25, 73, 64, 84, 5, 72, 146, 211, 4, 19, 128, 48, 13, 48, 4, 13, 51, 36,
-			49, 89, 6, 35, 35, 50, 0, 0, 0, 0, 0, 0, 15, 66, 52, 208, 65, 37, 55, 37, 65, 6, 36, 47, 13, 34, 0, 0, 8, 67,
-			65, 83, 139, 21, 0, 47, 0, 0, 0, 0, 0, 12, 67, 84, 226, 84, 57, 6, 40, 50, 37, 47, 0, 0, 0, 17, 70, 76, 80, 197,
-			64, 21, 0, 89, 13, 76, 6, 13, 48, 35, 47, 0, 0, 9, 67, 104, 243, 192, 88, 40, 12, 0, 0, 13, 68, 72, 17, 9, 60, 51,
-			6, 36, 72, 37, 39, 0, 0, 0, 0, 9, 68, 44, 20, 133, 56, 21, 0, 47, 0, 0, 17, 70, 20, 192, 75, 44, 19, 128, 109, 55,
-			6, 35, 49, 49, 35, 50, 0, 0, 10, 69, 76, 50, 15, 60, 192, 21, 0, 47, 0, 0, 11, 70, 36, 229, 5, 72, 225, 84, 21, 0,
-			47, 0, 0, 0, 0, 18, 70, 52, 83, 131, 20, 112, 72, 65, 13, 50, 76, 6, 13, 81, 35, 107, 0, 0, 0, 9, 68, 28, 83, 146,
-			20, 21, 0, 47, 13, 68, 16, 83, 132, 4, 72, 6, 13, 50, 72, 13, 0, 13, 68, 8, 83, 132, 4, 71, 6, 13, 50, 72, 13, 0,
-			0, 14, 67, 65, 65, 64, 48, 6, 34, 35, 37, 84, 13, 47, 0, 0, 18, 70, 4, 229, 71, 21, 32, 72, 35, 50, 6, 40, 81, 16,
-			51, 35, 107, 0, 13, 68, 40, 80, 129, 44, 75, 6, 13, 71, 35, 49, 0, 18, 70, 64, 83, 131, 20, 112, 72, 48, 13, 50, 76, 6,
-			13, 81, 35, 107, 0, 0, 0, 11, 67, 36, 209, 74, 6, 37, 65, 36, 75, 0, 0, 0, 13, 68, 80, 82, 193, 44, 47, 6, 13, 49,
-			35, 49, 0, 0, 0, 0, 13, 68, 48, 20, 197, 72, 55, 6, 36, 89, 13, 34, 0, 0, 11, 70, 52, 144, 200, 4, 83, 0, 21, 0,
-			47, 0, 0, 11, 70, 16, 245, 71, 48, 20, 192, 21, 0, 47, 0, 0, 18, 70, 56, 20, 201, 60, 224, 76, 50, 109, 91, 107, 6, 13,
-			50, 13, 55, 0, 0, 0, 0, 17, 70, 16, 148, 197, 72, 19, 135, 72, 37, 89, 6, 13, 51, 35, 68, 0, 0, 18, 70, 80, 84, 133,
-			56, 64, 72, 47, 13, 51, 6, 13, 50, 72, 35, 107, 0, 0, 24, 73, 8, 84, 147, 21, 53, 65, 36, 19, 128, 71, 13, 51, 89, 4,
-			13, 89, 40, 6, 117, 35, 50, 0, 25, 73, 44, 84, 5, 72, 48, 89, 4, 19, 128, 49, 13, 48, 4, 13, 51, 76, 35, 57, 6, 35,
-			35, 50, 0, 23, 73, 52, 83, 135, 20, 192, 75, 44, 19, 128, 65, 13, 68, 124, 55, 6, 35, 49, 49, 35, 50, 0, 24, 73, 44, 84,
-			197, 48, 20, 129, 76, 19, 128, 49, 13, 89, 13, 55, 35, 51, 6, 35, 89, 35, 50, 0, 0, 0, 0, 0, 0, 22, 72, 16, 148, 5,
-			72, 49, 80, 5, 64, 72, 37, 48, 13, 51, 76, 6, 13, 48, 35, 47, 0, 0, 0, 0, 20, 71, 8, 84, 148, 20, 212, 1, 80, 71,
-			13, 34, 47, 6, 13, 65, 48, 35, 47, 0, 0, 16, 70, 80, 83, 148, 4, 225, 192, 47, 6, 13, 50, 47, 35, 68, 0, 12, 4, 95,
-			103, 114, 118, 81, 52, 6, 35, 84, 0, 0, 0, 0, 6, 195, 44, 192, 201, 13, 0, 0, 0, 10, 69, 48, 243, 132, 60, 224, 21, 0,
-			47, 0, 11, 67, 36, 65, 65, 6, 117, 72, 37, 13, 0, 0, 17, 70, 16, 147, 5, 80, 18, 192, 72, 37, 55, 6, 13, 47, 35, 49,
-			0, 0, 0, 0, 0, 8, 197, 76, 19, 66, 36, 192, 8, 0, 0, 0, 17, 2, 194, 163, 48, 39, 50, 89, 47, 6, 109, 16, 51, 55,
-			37, 68, 0, 0, 20, 71, 44, 84, 138, 5, 48, 77, 4, 49, 13, 51, 75, 13, 89, 6, 35, 65, 13, 0, 17, 70, 76, 82, 197, 48,
-			20, 192, 89, 13, 49, 6, 13, 55, 35, 89, 0, 0, 0, 18, 70, 8, 84, 144, 20, 48, 72, 71, 13, 51, 48, 6, 13, 76, 35, 107,
-			0, 17, 70, 16, 146, 197, 56, 19, 0, 72, 37, 49, 6, 13, 50, 35, 55, 0, 0, 8, 67, 12, 149, 25, 21, 0, 47, 0, 14, 73,
-			20, 225, 201, 56, 81, 82, 36, 225, 192, 21, 0, 47, 23, 73, 41, 84, 149, 80, 84, 130, 4, 225, 192, 75, 40, 51, 40, 47, 6, 13,
-			51, 71, 35, 68, 0, 0, 0, 14, 69, 48, 83, 135, 4, 224, 55, 6, 13, 68, 35, 50, 0, 13, 68, 16, 84, 193, 44, 72, 6, 13,
-			89, 35, 49, 0, 14, 69, 16, 83, 135, 4, 224, 72, 6, 13, 68, 35, 50, 0, 0, 0, 0, 0, 0, 11, 70, 12, 243, 77, 21, 32,
-			197, 21, 0, 47, 0, 0, 0, 0, 0, 11, 70, 81, 32, 68, 36, 225, 192, 21, 0, 47, 16, 70, 8, 19, 139, 36, 225, 192, 71, 6,
-			109, 50, 49, 37, 68, 0, 0, 0, 0, 18, 70, 52, 83, 133, 72, 176, 77, 65, 13, 50, 6, 13, 51, 49, 35, 65, 0, 18, 70, 16,
-			149, 5, 72, 176, 77, 72, 37, 47, 6, 13, 51, 49, 35, 65, 0, 0, 0, 26, 74, 8, 84, 144, 20, 225, 193, 48, 19, 65, 56, 71,
-			13, 51, 48, 13, 68, 35, 55, 6, 35, 65, 35, 50, 0, 0, 0, 0, 0, 8, 67, 60, 225, 192, 110, 68, 0, 8, 67, 48, 81, 64,
-			21, 0, 47, 0, 0, 0, 0, 17, 70, 76, 80, 133, 48, 18, 0, 89, 13, 71, 6, 13, 55, 35, 107, 0, 0, 0, 0, 0, 0, 0,
-			0, 15, 69, 80, 83, 80, 5, 64, 47, 6, 13, 65, 48, 35, 47, 0, 15, 69, 76, 83, 80, 5, 64, 89, 6, 13, 65, 48, 35, 47,
-			0, 0, 14, 67, 12, 243, 64, 72, 6, 110, 47, 15, 49, 110, 65, 0, 0, 25, 73, 52, 83, 66, 21, 34, 84, 4, 133, 64, 65, 13,
-			65, 71, 4, 13, 51, 37, 47, 6, 35, 107, 40, 0, 0, 0, 0, 0, 0, 0, 0, 14, 68, 76, 80, 129, 8, 89, 6, 13, 71, 35,
-			71, 0, 8, 0, 0, 6, 195, 8, 17, 201, 8, 0, 0, 10, 69, 28, 83, 210, 28, 80, 21, 0, 47, 15, 69, 44, 19, 69, 72, 16,
-			49, 109, 65, 6, 13, 51, 13, 0, 0, 0, 0, 11, 70, 104, 80, 76, 4, 225, 0, 21, 0, 47, 0, 10, 69, 60, 227, 9, 56, 80,
-			21, 0, 47, 0, 0, 11, 67, 64, 82, 193, 48, 6, 13, 49, 13, 0, 0, 0, 11, 67, 20, 208, 83, 6, 13, 65, 35, 89, 0, 0,
-			0, 10, 69, 8, 20, 129, 12, 176, 21, 0, 47, 18, 70, 76, 83, 5, 76, 83, 65, 89, 13, 55, 13, 89, 6, 13, 65, 13, 0, 15,
-			69, 72, 83, 148, 4, 176, 34, 6, 13, 50, 47, 35, 49, 0, 15, 69, 72, 83, 148, 4, 176, 51, 6, 13, 50, 47, 35, 49, 0, 0,
-			5, 194, 76, 144, 72, 0, 17, 70, 64, 84, 193, 48, 18, 0, 48, 13, 89, 6, 35, 55, 35, 107, 0, 0, 17, 70, 16, 145, 201, 80,
-			19, 0, 72, 37, 75, 6, 37, 47, 13, 55, 0, 0, 9, 68, 12, 240, 83, 80, 21, 0, 47, 0, 0, 0, 10, 69, 80, 83, 132, 21,
-			32, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 27, 74, 52, 83, 153, 20, 192, 77, 5, 66, 193, 56, 65, 13, 67, 4, 13, 55, 35,
-			65, 6, 35, 47, 49, 35, 50, 0, 0, 0, 0, 0, 0, 17, 70, 16, 148, 129, 76, 18, 64, 72, 37, 51, 35, 89, 6, 35, 37, 0,
-			9, 198, 76, 80, 129, 28, 18, 64, 72, 0, 13, 68, 52, 84, 210, 4, 65, 6, 13, 89, 51, 13, 0, 0, 15, 69, 4, 113, 78, 16,
-			16, 35, 81, 6, 36, 50, 72, 35, 0, 0, 18, 70, 16, 83, 73, 44, 144, 78, 72, 13, 65, 37, 49, 6, 37, 35, 50, 0, 0, 0,
-			0, 15, 69, 92, 19, 137, 80, 16, 58, 35, 50, 6, 37, 47, 35, 0, 0, 0, 6, 195, 52, 18, 193, 8, 6, 195, 40, 146, 193, 8,
-			15, 196, 9, 82, 193, 56, 8, 81, 115, 97, 104, 97, 106, 97, 32, 0, 17, 70, 52, 83, 133, 44, 18, 192, 65, 13, 50, 6, 13, 49,
-			35, 49, 0, 0, 15, 69, 20, 229, 9, 80, 144, 109, 50, 47, 6, 37, 47, 37, 0, 0, 0, 0, 0, 15, 69, 76, 84, 148, 4, 144,
-			89, 13, 51, 47, 6, 35, 37, 0, 0, 12, 66, 72, 208, 51, 6, 37, 68, 81, 36, 47, 0, 0, 0, 17, 70, 52, 83, 5, 44, 21,
-			0, 65, 13, 55, 6, 13, 49, 35, 47, 0, 0, 0, 18, 70, 52, 84, 129, 36, 176, 78, 65, 13, 51, 35, 6, 37, 49, 35, 50, 0,
-			0, 0, 20, 71, 25, 33, 75, 84, 83, 147, 36, 83, 51, 37, 49, 40, 6, 13, 50, 89, 37, 0, 17, 2, 95, 34, 47, 4, 35, 50,
-			72, 35, 49, 6, 40, 47, 37, 48, 0, 0, 17, 70, 16, 148, 5, 28, 19, 135, 72, 37, 48, 6, 13, 81, 35, 68, 0, 17, 70, 64,
-			83, 69, 56, 19, 135, 48, 13, 65, 6, 13, 50, 35, 68, 0, 17, 2, 95, 33, 47, 4, 35, 50, 72, 35, 15, 89, 6, 109, 52, 40,
-			0, 0, 18, 70, 76, 84, 133, 52, 32, 78, 89, 13, 51, 6, 13, 65, 71, 35, 50, 0, 13, 68, 28, 84, 129, 44, 81, 6, 13, 34,
-			35, 19, 0, 0, 15, 69, 65, 35, 196, 84, 176, 48, 51, 6, 39, 72, 35, 49, 0, 19, 2, 95, 39, 49, 4, 40, 47, 37, 48, 15,
-			47, 6, 40, 68, 81, 35, 55, 0, 0, 0, 0, 0, 0, 12, 2, 95, 42, 71, 6, 37, 50, 47, 35, 68, 0, 0, 18, 2, 95, 41,
-			49, 4, 40, 52, 40, 68, 15, 47, 6, 40, 47, 40, 48, 0, 0, 17, 2, 95, 40, 49, 4, 40, 52, 40, 68, 15, 71, 6, 40, 49,
-			13, 0, 0, 10, 67, 64, 84, 128, 48, 13, 34, 0, 72, 0, 11, 2, 95, 46, 47, 6, 37, 47, 37, 19, 0, 0, 18, 70, 80, 84,
-			132, 21, 48, 75, 47, 13, 51, 72, 6, 13, 89, 35, 49, 0, 18, 70, 52, 83, 132, 21, 48, 75, 65, 13, 50, 72, 6, 13, 89, 35,
-			49, 0, 17, 2, 95, 45, 47, 4, 35, 50, 72, 35, 107, 6, 40, 71, 40, 68, 0, 0, 6, 195, 4, 112, 82, 8, 10, 2, 95, 44,
-			49, 6, 39, 65, 13, 0, 0, 10, 2, 95, 51, 47, 6, 37, 81, 13, 0, 0, 9, 2, 95, 50, 72, 6, 40, 13, 0, 0, 10, 2,
-			95, 49, 89, 6, 35, 47, 40, 0, 0, 11, 2, 95, 48, 49, 6, 39, 89, 39, 68, 0, 0, 15, 67, 76, 147, 69, 21, 0, 47, 81,
-			100, 97, 114, 98, 121, 32, 12, 2, 95, 55, 47, 6, 40, 75, 2, 39, 107, 0, 0, 13, 68, 4, 192, 149, 52, 6, 109, 55, 71, 13,
-			65, 0, 28, 75, 52, 83, 153, 20, 208, 149, 57, 146, 75, 4, 224, 65, 13, 67, 4, 13, 65, 71, 40, 67, 6, 37, 49, 35, 50, 0,
-			10, 2, 95, 54, 6, 13, 50, 35, 65, 0, 0, 10, 2, 95, 53, 55, 6, 37, 65, 13, 0, 0, 11, 2, 95, 52, 6, 13, 65, 48,
-			35, 47, 0, 0, 11, 195, 76, 19, 65, 8, 81, 97, 100, 97, 32, 17, 2, 95, 59, 47, 4, 37, 47, 37, 19, 15, 49, 6, 39, 65,
-			13, 0, 0, 16, 2, 95, 58, 47, 4, 37, 47, 37, 19, 15, 72, 6, 40, 13, 0, 0, 12, 71, 52, 85, 8, 60, 66, 83, 80, 21,
-			0, 47, 14, 2, 95, 57, 89, 13, 65, 71, 6, 37, 55, 35, 50, 0, 0, 11, 2, 95, 56, 55, 6, 35, 48, 35, 50, 0, 0, 17,
-			2, 95, 63, 47, 4, 35, 50, 72, 13, 15, 47, 6, 35, 67, 13, 0, 0, 17, 2, 95, 62, 55, 4, 109, 71, 37, 107, 15, 72, 6,
-			35, 52, 37, 0, 0, 11, 67, 20, 208, 75, 6, 13, 65, 35, 49, 0, 0, 11, 70, 16, 21, 137, 17, 51, 206, 21, 0, 47, 19, 70,
-			44, 82, 129, 100, 16, 78, 49, 4, 13, 75, 35, 57, 6, 35, 35, 50, 0, 17, 2, 95, 60, 49, 4, 40, 52, 35, 68, 15, 72, 6,
-			35, 52, 37, 0, 0, 11, 67, 20, 224, 77, 6, 13, 50, 35, 65, 0, 0, 7, 196, 92, 19, 1, 84, 8, 0, 0, 10, 67, 40, 80,
-			78, 75, 6, 37, 50, 0, 0, 26, 74, 52, 83, 153, 20, 193, 83, 4, 146, 193, 56, 65, 13, 67, 4, 13, 55, 13, 89, 6, 117, 49,
-			35, 50, 0, 0, 0, 0, 11, 70, 44, 147, 135, 16, 243, 64, 21, 0, 47, 0, 15, 69, 32, 83, 132, 4, 176, 107, 6, 13, 50, 72,
-			35, 19, 0, 0, 0, 17, 70, 80, 83, 5, 24, 243, 128, 47, 36, 55, 6, 37, 83, 39, 50, 0, 0, 20, 66, 100, 32, 57, 35, 50,
-			81, 15, 71, 13, 34, 107, 6, 39, 34, 65, 35, 47, 0, 0, 0, 0, 18, 70, 8, 84, 133, 57, 64, 75, 71, 13, 51, 6, 13, 50,
-			47, 35, 49, 0, 18, 70, 8, 84, 135, 21, 32, 75, 71, 13, 51, 81, 6, 13, 34, 35, 19, 0, 0, 0, 0, 13, 68, 80, 243, 135,
-			4, 47, 6, 39, 50, 81, 35, 0, 14, 73, 12, 243, 77, 60, 229, 197, 4, 197, 8, 21, 0, 47, 0, 0, 25, 73, 16, 148, 197, 48,
-			84, 193, 36, 176, 78, 72, 37, 89, 4, 13, 55, 13, 89, 6, 117, 49, 35, 50, 0, 0, 27, 74, 52, 83, 135, 20, 208, 129, 48, 146,
-			193, 56, 65, 13, 68, 4, 13, 65, 71, 35, 55, 6, 37, 49, 35, 50, 0, 0, 0, 0, 0, 11, 67, 80, 83, 65, 47, 6, 109, 65,
-			35, 0, 17, 2, 95, 91, 49, 4, 40, 52, 40, 68, 15, 89, 6, 37, 49, 40, 0, 0, 0, 9, 198, 52, 18, 21, 65, 83, 128, 8,
-			0, 0, 10, 69, 4, 148, 130, 85, 48, 21, 0, 47, 15, 69, 64, 83, 148, 5, 48, 48, 6, 13, 50, 47, 35, 89, 0, 15, 69, 44,
-			84, 148, 5, 48, 49, 6, 13, 51, 47, 35, 89, 0, 18, 2, 95, 95, 81, 4, 35, 52, 37, 89, 15, 71, 6, 35, 58, 35, 107, 0,
-			0, 20, 71, 56, 244, 212, 4, 193, 201, 4, 50, 39, 89, 47, 6, 35, 55, 75, 57, 35, 0, 19, 71, 44, 83, 80, 20, 227, 153, 4,
-			49, 109, 65, 48, 6, 36, 50, 67, 13, 0, 0, 13, 68, 64, 146, 197, 80, 48, 6, 37, 49, 109, 47, 0, 18, 70, 44, 82, 5, 56,
-			64, 75, 49, 13, 107, 6, 13, 50, 72, 35, 19, 0, 24, 2, 95, 93, 49, 4, 40, 52, 40, 68, 15, 89, 4, 37, 49, 40, 15, 47,
-			6, 40, 47, 40, 48, 0, 0, 18, 71, 52, 83, 153, 21, 32, 78, 28, 65, 13, 67, 6, 13, 34, 35, 68, 0, 6, 195, 12, 147, 66,
-			13, 13, 2, 95, 92, 6, 71, 109, 49, 89, 55, 109, 91, 0, 0, 17, 70, 76, 84, 21, 80, 82, 0, 89, 13, 48, 6, 40, 47, 36,
-			107, 0, 15, 69, 36, 225, 5, 45, 48, 6, 37, 50, 72, 109, 49, 89, 0, 0, 0, 13, 68, 16, 145, 201, 80, 72, 37, 6, 75, 37,
-			47, 0, 29, 75, 64, 84, 147, 20, 208, 129, 32, 19, 142, 100, 16, 48, 13, 51, 89, 4, 13, 65, 71, 35, 107, 6, 35, 50, 67, 13,
-			0, 0, 11, 67, 40, 22, 154, 75, 6, 109, 12, 89, 0, 0, 0, 0, 0, 0, 10, 67, 17, 83, 128, 72, 6, 40, 50, 0, 0, 0,
-			0, 0, 0, 13, 68, 80, 83, 80, 4, 47, 6, 13, 65, 48, 13, 0, 0, 0, 10, 69, 84, 226, 84, 20, 64, 21, 0, 47, 17, 70,
-			76, 83, 80, 20, 224, 64, 89, 13, 65, 48, 6, 13, 50, 13, 0, 17, 70, 16, 145, 5, 56, 64, 64, 72, 37, 72, 6, 13, 50, 72,
-			13, 0, 0, 18, 70, 65, 33, 83, 80, 20, 201, 48, 51, 109, 89, 47, 6, 35, 89, 37, 0, 0, 13, 68, 24, 83, 4, 4, 83, 6,
-			36, 55, 72, 35, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76, 109, 49, 0, 0, 9, 198, 52, 84, 203, 37, 5, 78, 8, 10,
-			69, 37, 51, 1, 56, 64, 21, 0, 47, 13, 68, 76, 145, 5, 44, 89, 6, 37, 72, 36, 49, 0, 15, 69, 8, 84, 136, 4, 64, 71,
-			6, 13, 51, 107, 35, 72, 0, 0, 11, 67, 28, 84, 193, 81, 6, 13, 89, 13, 0, 0, 0, 0, 0, 20, 2, 95, 123, 49, 4, 40,
-			52, 40, 68, 15, 49, 40, 52, 6, 35, 58, 35, 55, 0, 0, 0, 0, 13, 68, 64, 243, 9, 76, 48, 6, 39, 55, 37, 89, 0, 0,
-			0, 0, 18, 70, 80, 84, 140, 21, 64, 75, 47, 13, 51, 55, 6, 13, 47, 35, 49, 0, 27, 2, 95, 125, 49, 4, 40, 52, 40, 68,
-			15, 49, 40, 52, 4, 35, 58, 35, 55, 15, 47, 6, 40, 47, 40, 48, 0, 0, 25, 73, 44, 243, 80, 72, 82, 5, 57, 50, 70, 49,
-			39, 65, 48, 51, 37, 107, 6, 36, 50, 89, 37, 83, 0, 0, 0, 0, 0, 0, 20, 71, 64, 83, 5, 80, 18, 193, 56, 48, 13, 55,
-			13, 47, 6, 35, 49, 35, 50, 0, 0, 0, 0, 8, 67, 80, 245, 206, 21, 0, 47, 0, 0, 17, 70, 52, 83, 153, 20, 176, 84, 65,
-			13, 67, 6, 13, 49, 35, 47, 0, 17, 70, 52, 83, 135, 21, 48, 84, 65, 13, 68, 6, 13, 89, 35, 47, 0, 0, 0, 0, 0, 0,
-			0, 17, 70, 64, 82, 197, 72, 160, 64, 48, 13, 49, 6, 13, 51, 75, 13, 0, 17, 70, 8, 82, 197, 72, 160, 64, 71, 13, 49, 6,
-			13, 51, 75, 13, 0, 0, 10, 199, 76, 81, 1, 56, 114, 193, 56, 8, 20, 71, 44, 84, 133, 80, 18, 193, 56, 49, 13, 51, 13, 47,
-			6, 35, 49, 35, 50, 0, 0, 13, 68, 48, 147, 132, 4, 55, 6, 37, 50, 72, 35, 0, 0, 0, 17, 70, 104, 18, 193, 72, 144, 64,
-			88, 35, 49, 6, 35, 51, 57, 35, 0, 10, 69, 20, 69, 193, 72, 64, 21, 0, 47, 11, 70, 56, 145, 197, 72, 144, 64, 21, 0, 47,
-			11, 70, 40, 19, 65, 36, 48, 64, 21, 0, 47, 0, 19, 71, 52, 19, 1, 101, 50, 65, 56, 65, 13, 55, 6, 36, 89, 37, 13, 50,
-			0, 20, 71, 44, 84, 197, 8, 18, 193, 56, 49, 13, 89, 13, 71, 6, 35, 49, 35, 50, 0, 0, 0, 0, 0, 0, 17, 5, 109, 39,
-			115, 105, 97, 109, 97, 108, 97, 121, 115, 105, 97, 0, 29, 0, 0, 11, 70, 5, 36, 197, 56, 19, 0, 21, 0, 47, 13, 68, 80, 83,
-			137, 76, 47, 6, 109, 50, 37, 89, 0, 13, 68, 16, 84, 129, 76, 72, 6, 13, 51, 35, 89, 0, 9, 66, 100, 112, 57, 35, 50, 81,
-			0, 0, 13, 68, 8, 84, 193, 72, 71, 6, 13, 89, 35, 34, 0, 0, 17, 70, 76, 83, 5, 64, 20, 192, 89, 13, 55, 6, 13, 48,
-			35, 89, 0, 17, 70, 76, 83, 1, 72, 20, 192, 89, 13, 55, 6, 35, 51, 35, 89, 0, 0, 0, 9, 198, 92, 19, 1, 85, 5, 78,
-			8, 13, 68, 40, 82, 129, 76, 75, 6, 13, 75, 35, 89, 0, 0, 20, 71, 44, 80, 133, 8, 20, 193, 56, 49, 13, 71, 109, 71, 6,
-			35, 89, 35, 50, 0, 0, 0, 0, 0, 28, 74, 8, 84, 139, 21, 49, 77, 64, 21, 1, 56, 71, 13, 51, 49, 4, 13, 89, 13, 65,
-			48, 6, 35, 47, 35, 50, 0, 0, 9, 68, 53, 83, 20, 36, 21, 0, 47, 23, 72, 44, 82, 197, 12, 85, 193, 4, 224, 49, 13, 49,
-			4, 13, 76, 36, 58, 6, 35, 35, 50, 0, 23, 72, 44, 80, 197, 16, 84, 129, 4, 224, 49, 13, 76, 4, 13, 72, 13, 34, 6, 35,
-			35, 50, 0, 21, 72, 44, 84, 197, 77, 80, 73, 4, 224, 49, 13, 89, 13, 89, 40, 6, 117, 35, 50, 0, 0, 0, 0, 13, 68, 44,
-			84, 193, 56, 49, 6, 13, 89, 35, 50, 0, 13, 68, 44, 84, 193, 56, 49, 6, 13, 89, 35, 50, 0, 13, 68, 16, 84, 1, 56, 72,
-			6, 13, 48, 35, 50, 0, 0, 24, 73, 52, 83, 66, 4, 229, 5, 72, 20, 192, 65, 13, 65, 71, 35, 50, 47, 6, 13, 51, 35, 89,
-			0, 0, 0, 0, 0, 0, 8, 67, 21, 84, 143, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 75, 64, 84, 130,
-			20, 225, 1, 32, 20, 129, 4, 224, 48, 13, 51, 71, 13, 50, 72, 4, 13, 107, 35, 51, 6, 35, 35, 50, 0, 0, 32, 76, 8, 84,
-			144, 21, 35, 5, 52, 32, 71, 4, 19, 128, 71, 13, 51, 48, 13, 51, 55, 4, 13, 65, 71, 35, 81, 6, 35, 35, 50, 0, 0, 0,
-			0, 16, 70, 76, 18, 78, 80, 148, 192, 89, 6, 117, 50, 47, 37, 89, 0, 0, 12, 68, 44, 84, 129, 64, 49, 13, 51, 35, 48, 0,
-			0, 13, 68, 88, 148, 149, 76, 84, 6, 117, 51, 13, 89, 0, 13, 68, 48, 82, 193, 76, 55, 6, 13, 49, 35, 89, 0, 13, 68, 8,
-			82, 193, 76, 71, 6, 13, 49, 35, 89, 0, 0, 0, 0, 0, 0, 20, 71, 16, 145, 68, 5, 34, 193, 56, 72, 37, 109, 72, 6, 35,
-			51, 49, 35, 50, 0, 0, 9, 68, 84, 226, 84, 100, 21, 0, 47, 21, 71, 8, 20, 131, 20, 195, 206, 4, 71, 6, 35, 51, 89, 13,
-			55, 6, 39, 50, 35, 0, 0, 0, 14, 69, 80, 83, 135, 4, 128, 47, 6, 13, 68, 35, 107, 0, 0, 28, 74, 44, 84, 197, 40, 18,
-			20, 21, 32, 65, 56, 49, 13, 89, 13, 75, 4, 35, 107, 47, 13, 51, 6, 13, 35, 50, 0, 0, 0, 0, 0, 20, 71, 76, 84, 20,
-			20, 208, 133, 72, 89, 109, 48, 47, 6, 13, 65, 71, 13, 34, 0, 0, 13, 68, 60, 32, 77, 4, 39, 71, 6, 35, 65, 35, 0, 0,
-			0, 11, 70, 76, 84, 150, 36, 49, 64, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 19, 1, 32, 72,
-			0, 0, 0, 19, 71, 48, 83, 1, 44, 147, 153, 4, 55, 13, 55, 35, 49, 6, 37, 67, 13, 0, 0, 0, 0, 20, 72, 52, 83, 135,
-			20, 208, 129, 56, 112, 65, 13, 68, 6, 13, 65, 71, 35, 68, 0, 0, 0, 17, 70, 52, 83, 133, 80, 20, 0, 65, 13, 50, 6, 13,
-			47, 35, 48, 0, 0, 0, 0, 0, 0, 17, 70, 52, 18, 1, 80, 130, 82, 65, 35, 107, 6, 35, 47, 36, 34, 0, 0, 0, 0, 0,
-			0, 14, 69, 64, 83, 129, 56, 112, 48, 37, 50, 6, 109, 68, 0, 14, 69, 80, 83, 129, 56, 112, 47, 6, 13, 50, 35, 68, 0, 8,
-			197, 64, 84, 129, 56, 112, 66, 0, 13, 68, 24, 195, 210, 4, 83, 55, 6, 39, 34, 35, 0, 0, 15, 69, 104, 19, 5, 32, 16, 88,
-			35, 55, 6, 36, 107, 35, 0, 14, 69, 72, 19, 76, 20, 80, 51, 6, 35, 65, 55, 37, 0, 0, 0, 14, 69, 76, 84, 129, 56, 112,
-			89, 6, 13, 51, 35, 68, 0, 14, 69, 52, 83, 129, 56, 112, 65, 6, 13, 50, 35, 68, 0, 0, 13, 68, 5, 165, 82, 4, 35, 88,
-			6, 40, 52, 35, 0, 0, 0, 0, 13, 68, 80, 82, 193, 56, 47, 6, 13, 49, 35, 50, 0, 0, 0, 0, 0, 0, 0, 11, 70, 72,
-			84, 21, 8, 194, 67, 21, 0, 47, 0, 15, 66, 100, 208, 57, 35, 50, 81, 65, 6, 40, 55, 37, 13, 0, 0, 18, 70, 76, 85, 5,
-			48, 18, 0, 89, 13, 47, 6, 13, 55, 35, 107, 0, 8, 11, 67, 76, 84, 201, 89, 6, 36, 89, 37, 0, 17, 70, 52, 20, 193, 48,
-			18, 0, 65, 35, 89, 6, 35, 55, 35, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 70, 65, 35, 211, 64, 82, 192, 48, 51,
-			6, 39, 89, 48, 124, 49, 0, 0, 6, 97, 0, 4, 1, 21, 2, 107, 97, 104, 32, 3, 6, 13, 0, 1, 21, 2, 107, 97, 110, 32,
-			0, 1, 21, 2, 108, 97, 104, 32, 0, 1, 21, 2, 110, 121, 97, 32, 0, 1, 21, 2, 112, 117, 110, 32, 0, 1, 21, 2, 32, 3,
-			13, 0, 4, 1, 32, 17, 65, 3, 23, 35, 0, 1, 97, 0, 1, 117, 97, 0, 3, 35, 0, 117, 8, 3, 39, 0, 117, 3, 114, 0,
-			105, 3, 117, 0, 7, 6, 98, 0, 4, 3, 71, 0, 104, 8, 0, 101, 8, 2, 21, 21, 3, 71, 13, 0, 4, 101, 114, 8, 2, 17,
-			67, 97, 105, 29, 3, 71, 13, 51, 0, 101, 114, 8, 2, 17, 67, 97, 117, 29, 0, 101, 114, 8, 2, 21, 21, 0, 101, 114, 112, 101,
-			114, 8, 2, 21, 21, 3, 71, 13, 51, 48, 13, 51, 0, 101, 114, 107, 101, 8, 2, 21, 21, 3, 71, 13, 51, 49, 13, 0, 101, 114,
-			108, 101, 8, 2, 21, 21, 3, 71, 13, 51, 55, 13, 0, 101, 114, 115, 101, 8, 2, 21, 21, 3, 71, 13, 51, 89, 13, 0, 7, 6,
-			99, 0, 4, 3, 76, 0, 104, 0, 7, 6, 100, 0, 3, 72, 0, 106, 3, 75, 0, 7, 6, 101, 0, 4, 2, 17, 67, 17, 67, 17,
-			67, 117, 29, 3, 6, 13, 0, 2, 17, 67, 17, 67, 105, 29, 0, 2, 17, 67, 17, 67, 117, 29, 0, 2, 17, 67, 17, 67, 117, 29,
-			0, 2, 17, 67, 97, 105, 29, 0, 2, 17, 67, 105, 29, 0, 2, 17, 67, 117, 29, 0, 2, 110, 121, 117, 29, 0, 1, 109, 2, 32,
-			3, 13, 0, 4, 1, 32, 17, 65, 3, 23, 109, 0, 1, 101, 0, 4, 1, 17, 67, 2, 17, 67, 17, 67, 17, 67, 111, 17, 67, 107,
-			97, 110, 32, 3, 36, 0, 1, 17, 67, 17, 67, 101, 2, 29, 0, 1, 17, 67, 17, 67, 111, 2, 29, 0, 1, 17, 67, 101, 2, 29,
-			0, 1, 17, 67, 111, 2, 29, 0, 2, 17, 67, 101, 0, 2, 32, 0, 3, 109, 0, 8, 2, 17, 67, 111, 21, 3, 124, 0, 7, 6,
-			102, 0, 4, 3, 83, 0, 102, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 1, 21, 2, 17,
-			67, 110, 121, 97, 32, 3, 6, 36, 0, 4, 1, 32, 17, 65, 3, 23, 37, 0, 1, 105, 0, 4, 1, 21, 2, 17, 67, 17, 67, 97,
-			97, 110, 32, 3, 36, 0, 1, 21, 2, 17, 67, 29, 0, 3, 37, 0, 7, 6, 106, 0, 3, 75, 0, 7, 6, 107, 0, 2, 32, 3,
-			19, 0, 3, 49, 0, 1, 21, 21, 2, 97, 110, 110, 121, 97, 32, 3, 49, 6, 0, 101, 8, 2, 21, 21, 3, 49, 13, 0, 101, 115,
-			101, 8, 2, 21, 21, 3, 49, 13, 89, 13, 0, 104, 3, 101, 0, 7, 6, 108, 0, 4, 3, 55, 0, 108, 0, 7, 6, 109, 0, 3,
-			65, 0, 101, 8, 2, 21, 21, 3, 65, 13, 0, 101, 110, 101, 8, 2, 21, 21, 3, 65, 13, 50, 13, 0, 101, 109, 8, 2, 21, 21,
-			3, 65, 13, 65, 0, 101, 109, 112, 101, 8, 2, 21, 3, 65, 13, 65, 48, 13, 0, 101, 109, 112, 101, 110, 103, 101, 8, 2, 21, 21,
-			3, 65, 13, 65, 48, 13, 68, 13, 0, 101, 110, 103, 101, 8, 2, 21, 21, 3, 65, 13, 68, 13, 0, 7, 6, 110, 0, 3, 50, 0,
-			121, 3, 67, 0, 103, 3, 68, 0, 7, 6, 111, 0, 4, 1, 32, 17, 65, 3, 23, 39, 0, 1, 111, 0, 3, 39, 0, 101, 3, 40,
-			0, 2, 114, 3, 110, 0, 7, 6, 112, 0, 4, 3, 48, 0, 112, 0, 4, 101, 8, 2, 17, 67, 97, 105, 29, 3, 48, 13, 0, 101,
-			8, 2, 21, 21, 0, 101, 110, 101, 8, 2, 21, 21, 3, 48, 13, 50, 13, 0, 101, 110, 106, 101, 8, 2, 21, 21, 3, 48, 13, 50,
-			75, 13, 0, 101, 114, 115, 101, 8, 2, 21, 21, 3, 48, 13, 51, 89, 13, 0, 101, 109, 101, 8, 2, 21, 21, 3, 48, 13, 65, 13,
-			0, 101, 110, 103, 101, 8, 2, 21, 21, 3, 48, 13, 68, 13, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 58, 0, 7, 6, 114,
-			0, 1, 101, 2, 25, 3, 16, 34, 0, 4, 2, 25, 3, 34, 0, 2, 32, 0, 3, 51, 0, 7, 6, 115, 0, 4, 3, 89, 0, 115,
-			0, 4, 101, 8, 2, 17, 67, 97, 105, 29, 3, 89, 13, 0, 101, 8, 2, 21, 21, 0, 4, 104, 3, 91, 0, 106, 0, 121, 0, 7,
-			6, 116, 0, 3, 47, 0, 101, 114, 8, 2, 21, 3, 47, 6, 13, 16, 51, 0, 101, 114, 8, 2, 21, 21, 3, 47, 13, 16, 51, 0,
-			106, 3, 76, 0, 7, 6, 117, 0, 4, 1, 21, 2, 17, 67, 17, 67, 110, 121, 97, 32, 3, 6, 39, 0, 1, 21, 2, 17, 67, 110,
-			121, 97, 32, 0, 4, 1, 32, 17, 65, 3, 23, 40, 0, 1, 117, 0, 1, 21, 2, 17, 67, 29, 3, 39, 0, 3, 40, 0, 7, 6,
-			118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 3, 88, 0, 7, 6, 121, 0, 3, 57,
-			0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3, 0, 42, 42, 3, 0, 42, 1, 42, 42, 2, 32, 3,
-			24, 0, 45, 8, 32, 2, 32, 15, 3, 50, 6, 36, 81, 13, 47, 37, 83, 0, 42, 3, 71, 6, 37, 50, 47, 35, 68, 0, 36, 3,
-			72, 110, 55, 13, 51, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts45 = FileInMemory_createWithData (12248, reinterpret_cast<const char *> (&espeakdata_dicts45_data), 
-			U"espeak-1.48.04-source/espeak-data/ms_dict", 
-			U"ms");
-		my addItem_move (espeakdata_dicts45.move());
+		static unsigned char espeakdata_dicts42_data[4388] = {
+			0, 4, 0, 0, 189, 14, 0, 0, 0, 16, 70, 69, 81, 4, 36, 83, 64, 6, 13, 40, 72, 37, 12, 65, 0, 0, 0, 0, 0, 5,
+			65, 4, 35, 0, 0, 0, 0, 0, 10, 5, 7, 196, 167, 1, 24, 35, 91, 0, 6, 65, 8, 71, 13, 0, 0, 0, 0, 0, 6, 65,
+			12, 49, 35, 0, 0, 12, 5, 4, 9, 196, 161, 1, 72, 37, 75, 35, 0, 0, 0, 0, 7, 65, 16, 72, 36, 36, 0, 0, 0, 10,
+			67, 44, 145, 128, 99, 37, 12, 83, 0, 0, 0, 5, 65, 20, 36, 0, 0, 0, 0, 0, 8, 65, 24, 36, 83, 83, 36, 0, 0, 0,
+			0, 0, 6, 65, 28, 81, 126, 0, 0, 0, 10, 67, 92, 20, 84, 40, 35, 12, 47, 0, 0, 0, 8, 65, 32, 35, 49, 49, 35, 0,
+			0, 0, 0, 0, 19, 9, 20, 1, 7, 196, 167, 13, 9, 12, 24, 47, 35, 12, 65, 37, 55, 91, 0, 5, 65, 36, 37, 0, 0, 0,
+			0, 14, 7, 16, 15, 196, 161, 196, 161, 9, 39, 75, 37, 12, 0, 0, 17, 8, 20, 16, 15, 196, 161, 196, 161, 9, 47, 48, 39, 75,
+			37, 12, 0, 5, 65, 40, 126, 0, 0, 0, 11, 1, 42, 89, 47, 37, 55, 12, 35, 0, 27, 0, 10, 67, 92, 20, 129, 40, 35, 34,
+			35, 0, 10, 67, 92, 20, 129, 40, 35, 34, 35, 0, 16, 7, 20, 9, 5, 7, 196, 167, 9, 47, 37, 12, 112, 12, 0, 72, 9, 1,
+			43, 48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 6, 13, 0, 0, 0, 0, 16, 7, 20, 9, 5, 7, 196, 167, 21, 47, 37, 12,
+			40, 12, 0, 72, 9, 1, 47, 49, 118, 47, 12, 35, 0, 0, 8, 65, 48, 36, 55, 55, 36, 0, 0, 0, 0, 0, 8, 65, 52, 36,
+			65, 65, 36, 0, 0, 0, 0, 0, 8, 65, 56, 36, 50, 50, 36, 0, 0, 0, 0, 0, 5, 65, 60, 39, 0, 0, 12, 1, 61, 37,
+			12, 49, 58, 13, 55, 88, 0, 27, 0, 0, 0, 7, 1, 64, 10, 35, 47, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65,
+			68, 6, 13, 0, 0, 0, 0, 0, 8, 65, 72, 36, 34, 34, 36, 0, 0, 0, 0, 0, 14, 69, 44, 145, 78, 21, 64, 49, 37, 12,
+			50, 36, 47, 0, 8, 65, 76, 36, 89, 89, 36, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 12, 67, 36, 229, 9,
+			37, 50, 47, 37, 12, 0, 72, 0, 5, 65, 84, 40, 0, 5, 65, 84, 40, 0, 0, 0, 0, 17, 6, 22, 9, 196, 139, 9, 14, 84,
+			37, 12, 91, 13, 37, 12, 50, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 8, 1, 92, 49, 36, 50, 39, 0, 7, 65, 92,
+			40, 6, 13, 0, 0, 17, 70, 52, 147, 134, 48, 242, 192, 65, 37, 50, 83, 55, 39, 76, 36, 0, 0, 0, 0, 6, 132, 95, 49, 77,
+			49, 8, 65, 96, 36, 91, 91, 36, 0, 0, 0, 0, 0, 5, 65, 100, 111, 0, 0, 0, 0, 0, 8, 65, 104, 47, 89, 36, 36, 0,
+			0, 0, 15, 7, 1, 7, 196, 167, 13, 5, 12, 35, 12, 65, 36, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 10, 67, 53, 84, 128, 65, 40, 12, 34, 0, 0, 11, 68, 68, 16, 133, 48, 35, 71, 36, 55, 0, 12, 68, 68, 16, 133,
+			48, 35, 12, 71, 36, 55, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 52, 147, 139, 20, 162, 129, 65, 37, 50, 76, 114, 12, 35, 0, 15,
+			70, 52, 147, 139, 20, 162, 129, 65, 37, 50, 99, 114, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 50, 77, 49,
+			36, 55, 83, 114, 40, 50, 0, 0, 0, 13, 4, 95, 50, 77, 51, 88, 6, 13, 120, 81, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 5, 5, 196, 139, 196, 139, 101, 116, 83, 101, 116, 114, 97, 0, 29, 0, 0, 0, 0, 0, 0, 15, 5, 1,
+			196, 167, 14, 1, 35, 107, 6, 13, 50, 35, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70, 64, 84, 141, 21, 166, 128, 48, 36, 34, 65,
+			36, 47, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 51, 77, 51, 47, 55, 36, 47, 12, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 32, 146, 129, 37, 12, 35, 0, 72, 0, 0, 0,
+			0, 0, 0, 16, 8, 7, 196, 167, 1, 13, 9, 12, 20, 35, 65, 37, 55, 47, 0, 0, 10, 67, 8, 82, 142, 71, 114, 12, 50, 0,
+			10, 67, 8, 82, 142, 71, 114, 12, 50, 0, 0, 0, 9, 67, 16, 19, 128, 72, 35, 50, 0, 0, 0, 0, 0, 10, 67, 25, 84, 64,
+			83, 40, 6, 13, 0, 0, 0, 0, 0, 0, 15, 5, 9, 197, 188, 4, 1, 37, 12, 88, 6, 13, 72, 35, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 18, 66, 12, 208, 116, 83, 101, 110, 116, 105, 109, 39, 101, 116, 114, 105, 0, 29, 0, 0, 0, 0, 0, 0, 13,
+			68, 16, 20, 130, 4, 72, 35, 34, 12, 71, 35, 0, 0, 0, 0, 19, 8, 6, 9, 12, 45, 13, 9, 10, 1, 83, 37, 12, 45, 65,
+			37, 12, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 7, 7, 196, 167, 1, 13, 5, 12, 35, 12, 65, 36, 55,
+			0, 15, 7, 7, 196, 167, 1, 13, 5, 12, 35, 12, 65, 36, 55, 0, 14, 7, 7, 196, 167, 1, 13, 5, 12, 35, 65, 36, 55, 0,
+			0, 0, 0, 0, 10, 3, 226, 130, 172, 36, 58, 34, 39, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 24, 144, 83, 37, 12, 0, 0,
+			10, 67, 52, 244, 148, 65, 39, 34, 47, 0, 0, 0, 0, 0, 9, 67, 16, 18, 192, 72, 35, 49, 0, 0, 13, 68, 52, 147, 132, 84,
+			65, 37, 50, 72, 40, 12, 0, 0, 0, 0, 0, 13, 68, 76, 20, 133, 80, 89, 35, 12, 34, 36, 47, 0, 0, 0, 0, 0, 0, 14,
+			4, 95, 53, 77, 51, 107, 6, 13, 35, 65, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 8, 10, 1, 7, 196,
+			167, 13, 5, 12, 37, 35, 12, 65, 36, 55, 0, 0, 0, 0, 9, 67, 40, 85, 192, 126, 40, 12, 0, 0, 9, 67, 40, 82, 203, 126,
+			76, 36, 0, 0, 0, 0, 0, 0, 10, 67, 16, 21, 206, 72, 118, 12, 50, 0, 0, 0, 17, 8, 20, 1, 7, 196, 167, 8, 15, 13,
+			47, 35, 107, 39, 65, 0, 72, 0, 10, 67, 16, 21, 203, 72, 118, 12, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			67, 52, 133, 88, 65, 40, 12, 91, 0, 9, 67, 52, 133, 88, 65, 40, 91, 0, 14, 3, 95, 51, 88, 47, 55, 6, 13, 47, 37, 12,
+			50, 0, 0, 10, 3, 95, 48, 67, 65, 37, 12, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 49, 67, 65, 37, 12, 118,
+			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 57, 47, 89, 36, 47, 35, 91, 36, 0, 0, 14, 3, 95, 49, 56, 47, 65, 37, 50,
+			47, 35, 91, 36, 0, 0, 0, 0, 16, 7, 20, 1, 7, 196, 167, 14, 1, 47, 35, 50, 35, 12, 0, 72, 0, 0, 0, 0, 13, 3,
+			95, 49, 49, 107, 6, 13, 72, 35, 91, 36, 0, 0, 11, 3, 95, 49, 48, 35, 6, 13, 34, 35, 0, 0, 13, 3, 95, 49, 51, 47,
+			55, 36, 47, 35, 91, 36, 0, 0, 11, 3, 95, 49, 50, 47, 50, 35, 91, 36, 0, 0, 16, 3, 95, 49, 53, 107, 6, 13, 65, 37,
+			89, 47, 35, 91, 36, 0, 0, 14, 3, 95, 49, 52, 36, 34, 71, 35, 47, 35, 91, 36, 0, 0, 13, 3, 95, 49, 55, 89, 71, 35,
+			47, 35, 91, 36, 0, 0, 12, 3, 95, 49, 54, 89, 37, 47, 35, 91, 36, 0, 0, 0, 13, 3, 95, 55, 88, 89, 6, 13, 71, 114,
+			12, 50, 0, 0, 0, 0, 17, 7, 20, 1, 7, 196, 167, 8, 1, 47, 35, 107, 6, 13, 35, 0, 72, 0, 0, 0, 15, 8, 2, 226,
+			128, 153, 8, 5, 11, 11, 71, 36, 76, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 66, 52, 16, 57, 37, 89, 47, 35, 101,
+			0, 11, 66, 52, 16, 57, 34, 37, 72, 40, 101, 0, 10, 66, 52, 16, 49, 126, 50, 40, 101, 0, 9, 66, 52, 16, 49, 126, 50, 101,
+			0, 5, 194, 52, 16, 72, 0, 10, 67, 52, 19, 0, 65, 35, 55, 12, 0, 0, 0, 0, 14, 7, 7, 196, 167, 1, 14, 4, 21, 35,
+			50, 72, 40, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88, 39, 91, 36, 34, 37, 50, 0, 0, 0, 0, 20, 10, 13, 39, 7, 196,
+			167, 1, 14, 4, 21, 24, 65, 6, 35, 50, 72, 40, 91, 0, 0, 0, 0, 0, 14, 7, 7, 196, 167, 1, 14, 4, 9, 35, 50, 72,
+			37, 0, 0, 0, 15, 6, 196, 167, 4, 5, 10, 14, 107, 6, 13, 72, 114, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52,
+			88, 36, 34, 71, 112, 12, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 44, 112, 107, 105, 108, 111, 103, 114, 39, 97, 109, 58, 105,
+			0, 29, 0, 10, 67, 45, 83, 12, 80, 40, 55, 12, 0, 9, 67, 45, 83, 12, 65, 37, 50, 0, 11, 67, 45, 83, 12, 72, 35, 34,
+			71, 35, 0, 15, 3, 95, 53, 88, 107, 6, 13, 35, 65, 89, 37, 12, 50, 0, 0, 13, 8, 17, 9, 5, 7, 196, 167, 5, 4, 126,
+			72, 0, 0, 0, 0, 0, 0, 18, 8, 20, 9, 5, 7, 196, 167, 5, 11, 47, 37, 12, 35, 49, 36, 0, 72, 0, 0, 13, 3, 95,
+			54, 88, 89, 37, 47, 12, 37, 12, 50, 0, 0, 0, 0, 0, 9, 67, 68, 21, 20, 35, 47, 12, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 67, 80, 181, 78, 101, 37, 0, 0, 0, 15, 8, 7, 196, 167, 1, 14, 4, 8, 1, 35, 50, 12, 35, 0, 13, 3,
+			95, 56, 88, 47, 65, 36, 50, 37, 12, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 57, 88, 72, 4, 111, 72, 37, 50,
+			6, 37, 89, 114, 12, 50, 0, 0, 0, 0, 0, 0, 16, 4, 52, 48, 48, 48, 36, 34, 71, 35, 47, 36, 55, 36, 83, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 52, 147, 142, 65, 37, 50, 12, 0, 10, 67, 52, 147, 142, 107, 36, 65,
+			65, 0, 10, 67, 52, 147, 142, 83, 36, 57, 50, 0, 10, 67, 52, 147, 142, 65, 37, 12, 50, 0, 0, 0, 0, 12, 68, 37, 52, 201,
+			72, 37, 89, 12, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 48, 147, 0, 107, 37, 50, 50, 0, 11, 67, 48, 147,
+			0, 55, 37, 12, 55, 12, 0, 0, 17, 66, 52, 112, 109, 105, 108, 105, 103, 114, 39, 97, 109, 58, 105, 0, 29, 0, 0, 12, 68, 40,
+			145, 78, 4, 121, 36, 50, 35, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 50, 65, 6, 37, 55, 121,
+			50, 0, 0, 15, 4, 95, 48, 77, 51, 71, 37, 6, 55, 37, 6, 40, 50, 0, 0, 0, 10, 4, 95, 48, 77, 49, 36, 55, 83, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 9, 13, 9, 14, 7, 196, 167, 1, 10, 18, 65, 37, 12, 50, 112, 34, 0, 19, 9,
+			13, 9, 14, 7, 196, 167, 1, 10, 18, 65, 37, 12, 50, 112, 12, 34, 0, 0, 0, 0, 0, 0, 0, 0, 16, 66, 44, 208, 107, 105,
+			108, 111, 109, 39, 101, 116, 114, 105, 0, 29, 0, 0, 0, 0, 0, 0, 0, 17, 8, 20, 1, 7, 196, 167, 11, 15, 13, 47, 35, 49,
+			39, 65, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 68, 44, 145, 78, 84, 99, 126, 50, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 196, 161, 15, 75, 36, 39, 0, 0, 0, 0, 0, 0, 0, 30, 76, 37, 36, 133,
+			77, 1, 84, 80, 149, 129, 52, 83, 148, 37, 34, 12, 36, 89, 48, 36, 47, 37, 84, 35, 65, 36, 50, 47, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 66, 52, 192, 109, 105, 108, 105, 108, 39, 105, 116, 114, 105, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 16, 66, 52, 208, 109, 105, 108, 105, 109, 39, 101, 116, 114, 105, 0, 29, 0, 10, 67, 24, 244, 212, 83,
+			39, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 10, 9, 12, 45, 17, 21, 4, 4, 9, 5, 13, 37, 45,
+			72, 37, 12, 65, 12, 6, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 69, 34,
+			66, 34, 37, 12, 48, 0, 0, 8, 66, 80, 16, 47, 35, 12, 0, 0, 15, 70, 52, 133, 77, 36, 86, 0, 40, 65, 40, 65, 37, 91,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 196,
+			139, 76, 13, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194, 163, 89, 47, 36, 34, 55, 37, 50, 35, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 68, 37, 49, 133, 48, 37, 89, 83, 36, 55, 0, 0, 0, 0, 0, 0, 8, 2, 196, 167, 107, 6, 13, 0, 0, 0,
+			0, 0, 0, 0, 7, 2, 196, 161, 75, 36, 0, 0, 0, 0, 0, 18, 70, 52, 147, 130, 5, 36, 129, 65, 37, 50, 71, 35, 12, 34,
+			35, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 83, 77, 36, 65, 12, 0, 0, 14, 69, 44, 243,
+			148, 72, 16, 80, 39, 50, 47, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 67, 36, 181, 78, 37, 80, 40, 12, 50, 12, 0,
+			0, 15, 70, 16, 19, 23, 5, 21, 0, 72, 35, 55, 40, 35, 47, 0, 8, 2, 197, 188, 88, 6, 13, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 14, 68, 36, 229, 15, 52, 37, 12, 50, 47, 39, 65, 0, 72, 0, 15, 69, 52, 17, 23, 5, 32,
+			65, 35, 72, 40, 12, 35, 34, 0, 15, 69, 52, 17, 23, 5, 32, 65, 35, 72, 40, 35, 12, 34, 0, 0, 0, 0, 0, 0, 0, 0,
+			17, 70, 24, 194, 77, 44, 145, 78, 83, 55, 37, 50, 49, 37, 12, 65, 0, 17, 70, 24, 194, 77, 44, 145, 78, 83, 55, 37, 65, 49,
+			37, 50, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68, 36, 180, 197, 8, 37, 12, 49, 89, 36, 71, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 20, 1, 196, 167, 20, 47, 35, 107, 47, 0, 12, 5, 20, 1, 196, 167, 20, 47, 35,
+			107, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 35, 107, 35, 89, 107, 0, 0, 11, 2, 95, 34, 49, 58, 39,
+			110, 47, 89, 0, 0, 10, 67, 80, 213, 82, 47, 65, 40, 34, 0, 9, 2, 95, 33, 48, 40, 50, 47, 0, 0, 9, 67, 33, 83, 65,
+			40, 65, 35, 0, 11, 67, 33, 83, 65, 40, 12, 65, 35, 0, 72, 0, 11, 2, 95, 39, 35, 80, 80, 36, 50, 47, 0, 0, 6, 2,
+			95, 38, 40, 0, 0, 11, 4, 95, 52, 77, 51, 36, 34, 71, 35, 0, 17, 2, 95, 37, 48, 34, 39, 80, 36, 50, 47, 40, 35, 55,
+			37, 12, 0, 0, 13, 2, 95, 36, 72, 39, 55, 55, 35, 34, 40, 12, 0, 0, 0, 0, 14, 2, 95, 41, 48, 35, 34, 36, 50, 47,
+			36, 88, 37, 0, 0, 14, 2, 95, 40, 48, 35, 34, 36, 50, 47, 36, 88, 37, 0, 0, 0, 9, 2, 95, 46, 48, 40, 50, 47, 0,
+			0, 11, 2, 95, 45, 107, 35, 108, 83, 13, 50, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 12, 2, 95, 51, 47, 55, 37,
+			12, 36, 47, 35, 0, 0, 9, 2, 95, 50, 50, 114, 12, 50, 0, 0, 10, 67, 48, 82, 142, 55, 114, 50, 12, 0, 11, 2, 95, 49,
+			116, 12, 107, 6, 13, 72, 0, 0, 10, 2, 95, 48, 88, 6, 36, 16, 39, 0, 0, 10, 2, 95, 55, 89, 36, 71, 35, 12, 0, 0,
+			11, 2, 95, 54, 89, 37, 12, 47, 12, 35, 0, 0, 12, 2, 95, 53, 107, 6, 13, 35, 65, 89, 35, 0, 0, 9, 2, 95, 52, 36,
+			34, 71, 35, 0, 0, 16, 2, 95, 59, 89, 36, 65, 108, 49, 6, 39, 110, 55, 13, 50, 0, 0, 11, 2, 95, 58, 49, 39, 110, 55,
+			13, 50, 0, 0, 14, 2, 95, 57, 72, 111, 72, 37, 50, 6, 35, 89, 35, 0, 0, 13, 2, 95, 56, 47, 65, 37, 12, 50, 37, 12,
+			35, 0, 0, 15, 2, 95, 63, 65, 37, 89, 47, 39, 104, 89, 37, 57, 35, 0, 0, 10, 2, 95, 62, 35, 49, 71, 35, 34, 0, 0,
+			0, 9, 2, 95, 60, 37, 88, 6, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 2, 95, 91, 48, 35, 34, 36, 50, 47, 36, 88, 37, 0, 0, 0, 13, 69, 76, 82, 138, 21, 32, 89, 114,
+			12, 36, 34, 0, 0, 0, 13, 2, 95, 95, 35, 55, 35, 84, 37, 12, 84, 35, 0, 0, 0, 14, 2, 95, 93, 48, 35, 34, 36, 50,
+			47, 36, 88, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 96, 244, 148, 4,
+			91, 39, 34, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 95, 123, 35, 55, 49, 40, 35, 12, 55, 47, 39, 0, 0, 0, 0,
+			0, 0, 10, 67, 8, 148, 211, 71, 37, 89, 12, 0, 0, 15, 2, 95, 125, 55, 39, 48, 12, 40, 35, 12, 55, 47, 39, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 69, 28, 128, 78, 17, 80, 57, 49, 39, 55, 55, 107, 39, 65, 0, 0, 0, 0, 0,
+			0, 0, 0, 11, 68, 40, 148, 212, 4, 37, 89, 47, 35, 0, 18, 9, 7, 196, 167, 1, 12, 11, 5, 13, 13, 35, 55, 76, 36, 65,
+			12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 96, 144, 91, 37, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 10, 67, 37, 52, 193, 37, 89, 12, 35, 0, 0, 0, 0, 0, 0, 0, 12, 68, 8, 244, 212, 4, 71, 39,
+			89, 47, 35, 0, 0, 0, 9, 67, 33, 85, 193, 40, 12, 35, 0, 9, 67, 33, 85, 193, 40, 35, 0, 72, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 44, 145, 78, 99, 37, 12, 50, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 9, 7, 196, 167, 1, 14, 4, 8, 15,
+			13, 35, 50, 72, 39, 65, 0, 0, 0, 0, 16, 7, 50, 48, 48, 48, 48, 48, 48, 88, 6, 13, 120, 81, 36, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 51, 48, 48, 48, 47, 55, 36,
+			47, 12, 0, 0, 0, 0, 0, 0, 11, 5, 7, 196, 167, 1, 12, 35, 55, 12, 0, 0, 0, 0, 0, 6, 196, 139, 0, 3, 76, 13,
+			0, 97, 3, 76, 13, 35, 0, 101, 3, 76, 13, 36, 0, 105, 3, 76, 13, 37, 0, 119, 3, 76, 13, 40, 6, 13, 0, 7, 6, 196,
+			161, 0, 3, 75, 0, 111, 3, 75, 39, 0, 7, 6, 196, 167, 0, 3, 107, 0, 117, 3, 107, 12, 40, 12, 0, 116, 3, 107, 47, 0,
+			7, 6, 197, 188, 0, 3, 88, 6, 13, 0, 4, 97, 3, 88, 35, 0, 103, 196, 167, 0, 101, 3, 88, 36, 0, 105, 101, 3, 88, 37,
+			12, 36, 0, 7, 6, 97, 0, 3, 35, 0, 97, 3, 35, 12, 0, 120, 3, 35, 91, 0, 117, 3, 118, 0, 7, 6, 98, 0, 3, 71,
+			0, 101, 3, 71, 6, 13, 0, 98, 3, 71, 12, 0, 114, 3, 71, 34, 6, 13, 0, 105, 101, 3, 71, 37, 6, 13, 0, 105, 3, 71,
+			37, 12, 0, 7, 6, 99, 0, 3, 80, 0, 7, 6, 100, 0, 100, 3, 72, 12, 0, 3, 72, 36, 0, 7, 6, 101, 0, 3, 36, 0,
+			119, 3, 120, 0, 117, 3, 120, 12, 0, 7, 6, 102, 0, 3, 83, 0, 102, 3, 83, 12, 0, 111, 3, 83, 39, 0, 7, 6, 103, 0,
+			196, 167, 3, 12, 0, 3, 81, 0, 103, 3, 81, 12, 0, 105, 3, 81, 37, 12, 0, 101, 3, 81, 126, 0, 7, 6, 104, 0, 3, 12,
+			0, 7, 6, 105, 0, 101, 3, 37, 12, 0, 3, 108, 0, 117, 3, 108, 40, 0, 7, 6, 106, 0, 106, 3, 37, 12, 0, 97, 3, 37,
+			35, 0, 111, 3, 37, 39, 0, 3, 121, 0, 101, 3, 126, 0, 7, 6, 107, 0, 97, 3, 49, 35, 0, 4, 3, 49, 36, 0, 101, 0,
+			105, 3, 49, 37, 12, 0, 105, 101, 3, 49, 37, 12, 36, 0, 117, 3, 49, 40, 12, 0, 111, 3, 80, 39, 0, 7, 6, 108, 0, 3,
+			55, 0, 7, 6, 109, 0, 4, 2, 110, 3, 37, 65, 0, 2, 112, 0, 2, 114, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 117,
+			3, 50, 40, 12, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 4, 1, 109, 97, 104, 115, 2, 111, 3, 48, 12,
+			0, 1, 109, 97, 107, 2, 97, 110, 106, 0, 1, 109, 97, 115, 2, 111, 111, 0, 8, 97, 116, 111, 2, 97, 0, 8, 101, 108, 111, 2,
+			97, 0, 112, 0, 7, 6, 113, 0, 117, 3, 0, 3, 6, 13, 0, 97, 3, 35, 0, 101, 3, 36, 0, 111, 3, 39, 0, 7, 6, 114,
+			0, 3, 34, 0, 97, 3, 34, 35, 12, 0, 105, 101, 3, 34, 37, 12, 36, 0, 111, 3, 34, 39, 12, 0, 7, 6, 115, 0, 3, 89,
+			0, 4, 97, 113, 3, 89, 35, 0, 97, 113, 113, 0, 105, 101, 3, 89, 37, 12, 36, 0, 7, 6, 116, 0, 3, 47, 0, 116, 3, 47,
+			12, 0, 7, 6, 117, 0, 3, 40, 0, 120, 3, 40, 91, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 40, 0, 7, 6,
+			120, 0, 3, 91, 36, 0, 105, 101, 3, 91, 114, 12, 0, 7, 6, 121, 0, 3, 111, 0, 121, 3, 111, 12, 0, 105, 3, 117, 0, 195,
+			182, 3, 127, 0, 7, 6, 122, 0, 3, 47, 89, 36, 0, 104, 1, 25, 3, 90, 0, 7, 6, 0, 196, 139, 3, 76, 13, 0, 197, 188,
+			3, 88, 6, 13, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts42 = FileInMemory_createWithData (4387, reinterpret_cast<const char *> (&espeakdata_dicts42_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/mt_dict", 
+			U"mt");
+		Collection_addItem (me.peek(), espeakdata_dicts42.transfer());
 
-		static unsigned char espeakdata_dicts46_data[1535] = {
+		static unsigned char espeakdata_dicts43_data[1535] = {
 			0, 4, 0, 0, 251, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36098,108 +25004,108 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			0, 3, 57, 0, 7, 6, 122, 0, 3, 89, 0, 7, 6, 0, 35, 3, 9, 0, 107, 3, 49, 0, 114, 3, 51, 0, 119, 3, 58, 0,
 			98, 3, 71, 0, 100, 3, 72, 0, 103, 3, 81, 0, 102, 3, 83, 0, 118, 3, 84, 0, 4, 115, 3, 89, 0, 195, 167, 0, 106, 3,
 			101, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts46 = FileInMemory_createWithData (1534, reinterpret_cast<const char *> (&espeakdata_dicts46_data), 
-			U"espeak-1.48.04-source/espeak-data/nci_dict", 
+		autoFileInMemory espeakdata_dicts43 = FileInMemory_createWithData (1534, reinterpret_cast<const char *> (&espeakdata_dicts43_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/nci_dict", 
 			U"nci");
-		my addItem_move (espeakdata_dicts46.move());
+		Collection_addItem (me.peek(), espeakdata_dicts43.transfer());
 
-		static unsigned char espeakdata_dicts47_data[10818] = {
-			0, 4, 0, 0, 22, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4,
-			95, 100, 112, 116, 10, 25, 6, 119, 48, 55, 39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 129, 58, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 224, 164, 149,
-			224, 165, 135, 49, 6, 36, 4, 12, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 134, 224, 164, 185, 224, 165, 139, 72, 28, 0, 0, 0, 0, 0, 15, 6, 224, 164, 181, 224, 164, 168, 71, 6, 35, 6, 50, 111, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 224, 164, 181, 224, 164, 176, 58, 6, 35, 34, 13, 12, 0, 0, 0, 23, 12, 224, 164, 166,
-			224, 164, 191, 224, 164, 143, 224, 164, 168, 72, 6, 37, 57, 6, 36, 50, 111, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 164, 151, 224,
-			164, 188, 100, 13, 0, 0, 0, 0, 0, 11, 6, 224, 164, 149, 224, 164, 188, 104, 13, 0, 0, 0, 9, 134, 224, 164, 181, 224, 164, 190,
-			8, 0, 0, 0, 0, 0, 0, 15, 140, 224, 164, 133, 224, 164, 165, 224, 164, 181, 224, 164, 190, 8, 0, 0, 0, 0, 11, 6, 224, 164,
-			171, 224, 164, 188, 83, 13, 0, 0, 0, 0, 18, 9, 224, 164, 185, 224, 165, 129, 224, 164, 168, 107, 6, 40, 6, 50, 13, 0, 0, 0,
-			0, 0, 20, 9, 224, 164, 151, 224, 164, 143, 224, 164, 168, 81, 6, 109, 57, 6, 36, 50, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 18, 9, 224, 164, 184, 224, 165, 129, 224, 164, 150, 89, 6, 40, 8, 145, 13, 0, 0, 14, 6, 224, 164, 137, 224, 164, 170, 40,
-			6, 48, 13, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 224, 164, 150, 224, 164, 190, 224, 164, 143, 224, 164, 168, 145, 35, 57,
+		static unsigned char espeakdata_dicts44_data[10795] = {
+			0, 4, 0, 0, 22, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 3, 129, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 224, 164, 149, 224, 165, 135, 49, 6, 36, 4, 12, 0, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 134, 224, 164, 185, 224, 165, 139, 72, 28, 0, 0, 0, 0, 0,
+			15, 6, 224, 164, 181, 224, 164, 168, 71, 6, 35, 6, 50, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 224, 164, 181, 224, 164,
+			176, 58, 6, 35, 34, 13, 12, 0, 0, 0, 23, 12, 224, 164, 166, 224, 164, 191, 224, 164, 143, 224, 164, 168, 72, 6, 37, 57, 6, 36,
+			50, 111, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 164, 151, 224, 164, 188, 100, 13, 0, 0, 0, 0, 0, 11, 6, 224, 164, 149, 224,
+			164, 188, 104, 13, 0, 0, 0, 9, 134, 224, 164, 181, 224, 164, 190, 8, 0, 0, 0, 0, 0, 0, 15, 140, 224, 164, 133, 224, 164, 165,
+			224, 164, 181, 224, 164, 190, 8, 0, 0, 0, 0, 11, 6, 224, 164, 171, 224, 164, 188, 83, 13, 0, 0, 0, 0, 18, 9, 224, 164, 185,
+			224, 165, 129, 224, 164, 168, 107, 6, 40, 6, 50, 13, 0, 0, 0, 0, 0, 20, 9, 224, 164, 151, 224, 164, 143, 224, 164, 168, 81, 6,
+			109, 57, 6, 36, 50, 111, 0, 0, 0, 0, 15, 4, 95, 4, 16, 20, 10, 138, 6, 119, 48, 55, 39, 10, 0, 0, 0, 0, 0, 0,
+			0, 0, 18, 9, 224, 164, 184, 224, 165, 129, 224, 164, 150, 89, 6, 40, 8, 146, 13, 0, 0, 14, 6, 224, 164, 137, 224, 164, 170, 40,
+			6, 48, 13, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 224, 164, 150, 224, 164, 190, 224, 164, 143, 224, 164, 168, 146, 35, 57,
 			6, 36, 50, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 164, 161, 224, 164, 188, 70, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 9, 224, 164, 155, 224, 165, 129, 224, 164, 168, 143, 6, 40, 50, 6, 13, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 9, 224, 164, 155, 224, 165, 129, 224, 164, 168, 144, 6, 40, 50, 6, 13, 0, 0,
 			0, 0, 0, 20, 9, 224, 164, 173, 224, 164, 143, 224, 164, 168, 137, 6, 109, 57, 6, 36, 50, 111, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 13, 6, 224, 164, 133, 224, 164, 172, 109, 6, 71, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 19, 5, 95, 48, 77, 49, 48, 48, 13, 34, 6, 118, 34, 34, 72, 12, 138, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 19, 5, 95, 48, 77, 49, 48, 48, 13, 34, 6, 118, 34, 34, 72, 12, 139, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
 			3, 95, 51, 57, 122, 12, 50, 6, 35, 50, 6, 80, 6, 118, 55, 6, 112, 89, 0, 14, 3, 95, 50, 49, 114, 49, 12, 49, 6, 118,
 			112, 89, 0, 0, 12, 3, 95, 51, 56, 35, 34, 47, 6, 113, 89, 0, 10, 3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11, 3, 95,
 			50, 51, 47, 6, 114, 113, 89, 0, 0, 11, 3, 95, 50, 50, 71, 6, 118, 113, 89, 0, 0, 13, 3, 95, 50, 53, 48, 13, 80, 12,
 			6, 113, 89, 0, 0, 13, 3, 95, 50, 52, 80, 6, 120, 71, 6, 113, 89, 0, 0, 14, 3, 95, 50, 55, 89, 13, 47, 12, 6, 118,
-			113, 89, 0, 0, 14, 3, 95, 50, 54, 143, 13, 71, 6, 71, 6, 112, 89, 0, 0, 14, 3, 95, 51, 49, 114, 49, 13, 47, 12, 6,
+			113, 89, 0, 0, 14, 3, 95, 50, 54, 144, 13, 71, 6, 71, 6, 112, 89, 0, 0, 14, 3, 95, 51, 49, 114, 49, 13, 47, 12, 6,
 			113, 89, 0, 0, 10, 3, 95, 51, 48, 47, 6, 112, 89, 0, 0, 15, 3, 95, 51, 51, 47, 6, 114, 47, 6, 47, 6, 112, 89, 0,
 			0, 14, 3, 95, 51, 50, 71, 6, 35, 47, 12, 6, 113, 89, 0, 0, 12, 3, 95, 51, 53, 48, 127, 47, 6, 113, 89, 0, 0, 14,
 			3, 95, 51, 52, 80, 130, 4, 47, 6, 113, 12, 89, 0, 0, 12, 3, 95, 51, 55, 89, 127, 47, 6, 113, 89, 0, 0, 16, 3, 95,
-			51, 54, 143, 13, 12, 47, 6, 47, 6, 113, 12, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 12, 224, 164,
-			166, 224, 165, 129, 224, 164, 131, 224, 164, 150, 72, 6, 40, 5, 145, 13, 0, 0, 0, 0, 0, 14, 3, 95, 55, 57, 122, 6, 50, 6,
-			118, 89, 6, 112, 0, 16, 3, 95, 54, 49, 114, 49, 6, 35, 89, 13, 141, 6, 141, 112, 0, 0, 17, 3, 95, 55, 56, 35, 25, 107,
-			35, 47, 47, 12, 6, 109, 34, 12, 0, 11, 3, 95, 54, 48, 89, 6, 118, 141, 112, 0, 0, 11, 3, 95, 48, 67, 89, 6, 35, 57,
-			13, 0, 19, 3, 95, 54, 51, 47, 6, 34, 6, 112, 4, 89, 13, 141, 6, 141, 6, 112, 0, 0, 17, 3, 95, 54, 50, 71, 6, 115,
-			89, 13, 141, 6, 12, 141, 6, 112, 0, 0, 17, 3, 95, 54, 53, 48, 6, 127, 6, 89, 13, 141, 6, 141, 6, 112, 0, 0, 16, 3,
-			95, 54, 52, 80, 6, 120, 89, 13, 141, 6, 141, 6, 112, 0, 0, 18, 3, 95, 54, 55, 89, 6, 109, 47, 6, 89, 13, 141, 6, 141,
-			6, 112, 0, 0, 17, 3, 95, 54, 54, 143, 6, 116, 6, 89, 13, 141, 6, 141, 6, 112, 0, 0, 19, 3, 95, 55, 49, 114, 49, 6,
+			51, 54, 144, 13, 12, 47, 6, 47, 6, 113, 12, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 12, 224, 164,
+			166, 224, 165, 129, 224, 164, 131, 224, 164, 150, 72, 6, 40, 5, 146, 13, 0, 0, 0, 0, 0, 14, 3, 95, 55, 57, 122, 6, 50, 6,
+			118, 89, 6, 112, 0, 16, 3, 95, 54, 49, 114, 49, 6, 35, 89, 13, 142, 6, 142, 112, 0, 0, 17, 3, 95, 55, 56, 35, 138, 107,
+			35, 47, 47, 12, 6, 109, 34, 12, 0, 11, 3, 95, 54, 48, 89, 6, 118, 142, 112, 0, 0, 11, 3, 95, 48, 67, 89, 6, 35, 57,
+			13, 0, 19, 3, 95, 54, 51, 47, 6, 34, 6, 112, 4, 89, 13, 142, 6, 142, 6, 112, 0, 0, 17, 3, 95, 54, 50, 71, 6, 115,
+			89, 13, 142, 6, 12, 142, 6, 112, 0, 0, 17, 3, 95, 54, 53, 48, 6, 127, 6, 89, 13, 142, 6, 142, 6, 112, 0, 0, 16, 3,
+			95, 54, 52, 80, 6, 120, 89, 13, 142, 6, 142, 6, 112, 0, 0, 18, 3, 95, 54, 55, 89, 6, 109, 47, 6, 89, 13, 142, 6, 142,
+			6, 112, 0, 0, 17, 3, 95, 54, 54, 144, 6, 116, 6, 89, 13, 142, 6, 142, 6, 112, 0, 0, 19, 3, 95, 55, 49, 114, 49, 6,
 			35, 107, 6, 35, 47, 12, 6, 109, 34, 12, 0, 0, 17, 3, 95, 55, 48, 89, 6, 35, 47, 6, 47, 13, 34, 6, 112, 12, 0, 0,
 			17, 3, 95, 55, 51, 47, 113, 57, 35, 47, 47, 12, 6, 109, 34, 12, 0, 0, 17, 3, 95, 55, 50, 71, 13, 107, 6, 35, 47, 47,
-			6, 109, 34, 12, 0, 0, 17, 3, 95, 55, 53, 48, 35, 143, 4, 35, 47, 12, 6, 109, 34, 12, 0, 0, 16, 3, 95, 55, 52, 80,
+			6, 109, 34, 12, 0, 0, 17, 3, 95, 55, 53, 48, 35, 144, 4, 35, 47, 12, 6, 109, 34, 12, 0, 0, 16, 3, 95, 55, 52, 80,
 			120, 107, 35, 47, 12, 6, 109, 34, 12, 0, 0, 19, 3, 95, 55, 55, 89, 13, 47, 13, 107, 35, 47, 47, 12, 6, 109, 34, 12, 0,
-			0, 22, 3, 95, 55, 54, 143, 13, 6, 57, 6, 35, 107, 6, 35, 47, 6, 47, 6, 109, 34, 12, 0, 0, 15, 3, 95, 49, 57, 122,
-			12, 50, 50, 6, 118, 37, 6, 89, 0, 0, 13, 3, 95, 49, 56, 35, 6, 141, 6, 118, 34, 111, 0, 0, 0, 0, 0, 0, 0, 0,
-			16, 3, 95, 50, 57, 122, 12, 50, 6, 109, 50, 47, 6, 113, 89, 0, 14, 3, 95, 49, 49, 114, 6, 146, 6, 118, 34, 6, 109, 0,
-			0, 13, 3, 95, 50, 56, 35, 25, 12, 6, 118, 113, 89, 0, 10, 3, 95, 49, 48, 72, 6, 109, 89, 0, 0, 12, 3, 95, 49, 51,
+			0, 22, 3, 95, 55, 54, 144, 13, 6, 57, 6, 35, 107, 6, 35, 47, 6, 47, 6, 109, 34, 12, 0, 0, 15, 3, 95, 49, 57, 122,
+			12, 50, 50, 6, 118, 37, 6, 89, 0, 0, 13, 3, 95, 49, 56, 35, 6, 142, 6, 118, 34, 111, 0, 0, 0, 0, 0, 0, 0, 0,
+			16, 3, 95, 50, 57, 122, 12, 50, 6, 109, 50, 47, 6, 113, 89, 0, 14, 3, 95, 49, 49, 114, 6, 147, 6, 118, 34, 6, 109, 0,
+			0, 13, 3, 95, 50, 56, 35, 138, 12, 6, 118, 113, 89, 0, 10, 3, 95, 49, 48, 72, 6, 109, 89, 0, 0, 12, 3, 95, 49, 51,
 			47, 6, 114, 107, 34, 13, 0, 0, 11, 3, 95, 49, 50, 71, 6, 118, 34, 111, 0, 0, 13, 3, 95, 49, 53, 48, 6, 109, 50, 72,
-			34, 111, 0, 0, 11, 3, 95, 49, 52, 143, 6, 120, 72, 111, 0, 0, 12, 3, 95, 49, 55, 89, 6, 109, 47, 34, 111, 0, 0, 11,
-			3, 95, 49, 54, 89, 6, 119, 34, 111, 0, 0, 8, 3, 224, 164, 165, 25, 13, 0, 0, 10, 3, 224, 164, 164, 47, 13, 4, 0, 8,
-			8, 3, 224, 164, 164, 47, 13, 0, 0, 8, 3, 224, 164, 167, 138, 13, 0, 0, 8, 3, 224, 164, 166, 72, 13, 0, 0, 8, 3, 224,
-			164, 161, 140, 13, 0, 0, 8, 3, 224, 164, 160, 141, 13, 0, 0, 8, 3, 224, 164, 163, 66, 13, 0, 0, 8, 3, 224, 164, 162, 142,
-			13, 0, 0, 8, 3, 224, 164, 157, 144, 13, 0, 17, 3, 95, 52, 57, 122, 6, 50, 6, 35, 50, 6, 80, 6, 118, 89, 0, 0, 8,
-			3, 224, 164, 156, 79, 13, 0, 6, 131, 224, 165, 164, 8, 17, 3, 95, 52, 56, 35, 6, 141, 6, 80, 6, 118, 55, 6, 113, 89, 0,
-			0, 8, 3, 224, 164, 159, 139, 13, 0, 0, 17, 9, 224, 164, 184, 224, 164, 191, 224, 164, 164, 89, 6, 37, 47, 13, 0, 8, 3, 224,
-			164, 158, 67, 13, 0, 0, 8, 3, 224, 164, 153, 68, 13, 0, 0, 8, 3, 224, 164, 152, 146, 13, 0, 0, 8, 3, 224, 164, 155, 143,
+			34, 111, 0, 0, 11, 3, 95, 49, 52, 144, 6, 120, 72, 111, 0, 0, 12, 3, 95, 49, 55, 89, 6, 109, 47, 34, 111, 0, 0, 11,
+			3, 95, 49, 54, 89, 6, 119, 34, 111, 0, 0, 8, 3, 224, 164, 165, 138, 13, 0, 0, 10, 3, 224, 164, 164, 47, 13, 4, 0, 8,
+			8, 3, 224, 164, 164, 47, 13, 0, 0, 8, 3, 224, 164, 167, 139, 13, 0, 0, 8, 3, 224, 164, 166, 72, 13, 0, 0, 8, 3, 224,
+			164, 161, 141, 13, 0, 0, 8, 3, 224, 164, 160, 142, 13, 0, 0, 8, 3, 224, 164, 163, 66, 13, 0, 0, 8, 3, 224, 164, 162, 143,
+			13, 0, 0, 8, 3, 224, 164, 157, 145, 13, 0, 17, 3, 95, 52, 57, 122, 6, 50, 6, 35, 50, 6, 80, 6, 118, 89, 0, 0, 8,
+			3, 224, 164, 156, 79, 13, 0, 6, 131, 224, 165, 164, 8, 17, 3, 95, 52, 56, 35, 6, 142, 6, 80, 6, 118, 55, 6, 113, 89, 0,
+			0, 8, 3, 224, 164, 159, 140, 13, 0, 0, 17, 9, 224, 164, 184, 224, 164, 191, 224, 164, 164, 89, 6, 37, 47, 13, 0, 8, 3, 224,
+			164, 158, 67, 13, 0, 0, 8, 3, 224, 164, 153, 68, 13, 0, 0, 8, 3, 224, 164, 152, 147, 13, 0, 0, 8, 3, 224, 164, 155, 144,
 			13, 0, 0, 8, 3, 224, 164, 154, 80, 13, 0, 0, 9, 3, 224, 165, 157, 107, 34, 13, 0, 8, 3, 224, 164, 149, 49, 13, 0, 18,
-			3, 95, 53, 57, 122, 6, 50, 6, 109, 50, 6, 89, 6, 118, 141, 112, 0, 17, 3, 95, 52, 49, 36, 6, 12, 49, 80, 6, 118, 55,
-			6, 37, 89, 0, 0, 8, 3, 224, 165, 156, 34, 13, 0, 21, 3, 95, 53, 56, 35, 6, 50, 25, 12, 6, 118, 58, 13, 50, 6, 50,
+			3, 95, 53, 57, 122, 6, 50, 6, 109, 50, 6, 89, 6, 118, 142, 112, 0, 17, 3, 95, 52, 49, 36, 6, 12, 49, 80, 6, 118, 55,
+			6, 37, 89, 0, 0, 8, 3, 224, 165, 156, 34, 13, 0, 21, 3, 95, 53, 56, 35, 6, 50, 138, 12, 6, 118, 58, 13, 50, 6, 50,
 			6, 12, 109, 0, 12, 3, 95, 52, 48, 80, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 159, 57, 13, 0, 8, 3, 224, 164, 151,
 			81, 13, 0, 17, 3, 95, 52, 51, 47, 6, 34, 112, 80, 6, 118, 55, 6, 112, 89, 0, 0, 8, 3, 224, 165, 158, 83, 13, 0, 8,
-			3, 224, 164, 150, 145, 13, 0, 13, 3, 95, 52, 50, 71, 134, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 153, 101, 13, 0, 16,
+			3, 224, 164, 150, 146, 13, 0, 13, 3, 95, 52, 50, 71, 134, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 153, 101, 13, 0, 16,
 			3, 95, 52, 53, 48, 134, 6, 50, 47, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 152, 104, 13, 0, 14, 3, 95, 52, 52, 80,
-			120, 58, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 155, 88, 13, 0, 17, 3, 95, 52, 55, 89, 13, 6, 140, 80, 47, 118, 55,
-			6, 113, 89, 0, 0, 8, 3, 224, 165, 154, 100, 13, 0, 15, 3, 95, 52, 54, 143, 107, 113, 57, 118, 55, 6, 113, 89, 0, 0, 23,
+			120, 58, 118, 55, 6, 113, 89, 0, 0, 8, 3, 224, 165, 155, 88, 13, 0, 17, 3, 95, 52, 55, 89, 13, 6, 141, 80, 47, 118, 55,
+			6, 113, 89, 0, 0, 8, 3, 224, 165, 154, 100, 13, 0, 15, 3, 95, 52, 54, 144, 107, 113, 57, 118, 55, 6, 113, 89, 0, 0, 23,
 			3, 95, 54, 57, 122, 12, 50, 6, 35, 50, 6, 89, 6, 109, 47, 47, 6, 35, 34, 6, 112, 0, 18, 3, 95, 53, 49, 114, 49, 6,
-			118, 58, 109, 50, 6, 50, 12, 6, 109, 0, 0, 17, 3, 95, 54, 56, 35, 6, 141, 4, 89, 13, 141, 6, 141, 6, 112, 0, 12, 3,
+			118, 58, 109, 50, 6, 50, 12, 6, 109, 0, 0, 17, 3, 95, 54, 56, 35, 6, 142, 4, 89, 13, 142, 6, 142, 6, 112, 0, 12, 3,
 			95, 53, 48, 48, 13, 80, 6, 118, 89, 0, 0, 18, 3, 95, 53, 51, 47, 6, 34, 113, 12, 48, 6, 35, 50, 6, 50, 109, 0, 0,
 			17, 3, 95, 53, 50, 71, 6, 118, 58, 109, 50, 6, 50, 12, 6, 109, 0, 0, 17, 3, 95, 53, 53, 48, 6, 35, 80, 6, 48, 109,
 			50, 6, 50, 109, 0, 0, 16, 3, 95, 53, 52, 80, 6, 121, 123, 58, 109, 50, 6, 50, 109, 0, 0, 23, 3, 95, 53, 55, 89, 6,
-			109, 50, 6, 47, 12, 6, 118, 58, 13, 50, 6, 50, 6, 12, 109, 0, 0, 17, 3, 95, 53, 54, 143, 107, 13, 48, 12, 6, 109, 50,
+			109, 50, 6, 47, 12, 6, 118, 58, 13, 50, 6, 50, 6, 12, 109, 0, 0, 17, 3, 95, 53, 54, 144, 107, 13, 48, 12, 6, 109, 50,
 			6, 50, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 56, 57, 123, 50, 6, 118, 50, 6, 35, 71, 6, 71, 6, 114,
-			0, 0, 14, 3, 95, 56, 56, 35, 6, 141, 12, 118, 89, 6, 112, 0, 0, 0, 0, 8, 3, 224, 164, 185, 108, 13, 0, 0, 8, 3,
+			0, 0, 14, 3, 95, 56, 56, 35, 6, 142, 12, 118, 89, 6, 112, 0, 0, 0, 0, 8, 3, 224, 164, 185, 108, 13, 0, 0, 8, 3,
 			224, 164, 184, 89, 13, 0, 0, 0, 0, 8, 3, 224, 164, 181, 58, 13, 0, 19, 3, 95, 57, 57, 122, 12, 50, 6, 50, 6, 118, 50,
-			89, 107, 13, 57, 114, 0, 13, 3, 95, 56, 49, 114, 49, 6, 118, 89, 6, 112, 0, 0, 20, 3, 95, 57, 56, 35, 6, 50, 6, 141,
+			89, 107, 13, 57, 114, 0, 13, 3, 95, 56, 49, 114, 49, 6, 118, 89, 6, 112, 0, 0, 20, 3, 95, 57, 56, 35, 6, 50, 6, 142,
 			6, 118, 50, 13, 71, 6, 71, 6, 114, 0, 13, 3, 95, 56, 48, 35, 6, 89, 6, 89, 6, 112, 0, 0, 8, 3, 224, 164, 183, 93,
 			13, 0, 15, 3, 95, 56, 51, 47, 34, 113, 57, 6, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 182, 91, 13, 0, 12, 3, 95, 56,
 			50, 71, 134, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 177, 34, 13, 0, 15, 3, 95, 56, 53, 48, 6, 35, 80, 6, 118, 89, 6,
 			112, 0, 0, 7, 131, 224, 164, 176, 72, 8, 8, 3, 224, 164, 176, 34, 13, 0, 13, 3, 95, 56, 52, 80, 120, 34, 118, 89, 6, 112,
 			0, 0, 8, 3, 224, 164, 179, 62, 13, 0, 16, 3, 95, 56, 55, 89, 6, 109, 12, 47, 6, 118, 89, 6, 112, 0, 0, 8, 3, 224,
-			164, 178, 55, 13, 0, 14, 3, 95, 56, 54, 143, 13, 57, 6, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 173, 137, 13, 0, 17, 3,
+			164, 178, 55, 13, 0, 14, 3, 95, 56, 54, 144, 13, 57, 6, 118, 89, 6, 112, 0, 0, 8, 3, 224, 164, 173, 137, 13, 0, 17, 3,
 			95, 57, 49, 114, 49, 6, 118, 50, 13, 71, 6, 71, 6, 114, 0, 0, 8, 3, 224, 164, 172, 71, 13, 0, 13, 3, 95, 57, 48, 50,
 			13, 71, 6, 71, 6, 114, 0, 0, 8, 3, 224, 164, 175, 57, 13, 0, 19, 3, 95, 57, 51, 47, 34, 113, 57, 6, 118, 50, 13, 71,
 			6, 71, 6, 114, 0, 0, 11, 3, 224, 164, 174, 65, 111, 5, 0, 72, 28, 8, 3, 224, 164, 174, 65, 13, 0, 19, 3, 95, 57, 50,
 			71, 6, 35, 57, 6, 118, 50, 13, 71, 6, 71, 6, 114, 0, 0, 20, 3, 95, 57, 53, 48, 13, 50, 6, 80, 6, 118, 50, 13, 71,
 			6, 71, 6, 114, 0, 0, 8, 3, 224, 164, 168, 50, 13, 0, 18, 3, 95, 57, 52, 80, 120, 34, 6, 118, 50, 13, 71, 6, 71, 6,
 			114, 0, 0, 8, 3, 224, 164, 171, 136, 13, 0, 21, 3, 95, 57, 55, 89, 13, 50, 6, 47, 12, 6, 118, 50, 13, 71, 6, 71, 6,
-			114, 0, 0, 8, 3, 224, 164, 170, 48, 13, 0, 18, 3, 95, 57, 54, 143, 13, 57, 6, 118, 50, 13, 71, 6, 71, 6, 114, 0, 0,
+			114, 0, 0, 8, 3, 224, 164, 170, 48, 13, 0, 18, 3, 95, 57, 54, 144, 13, 57, 6, 118, 50, 13, 71, 6, 71, 6, 114, 0, 0,
 			0, 0, 0, 0, 0, 0, 42, 27, 224, 164, 176, 224, 164, 190, 224, 164, 183, 224, 165, 141, 224, 164, 159, 224, 165, 141, 224, 164, 176, 224,
-			164, 191, 224, 164, 175, 34, 6, 118, 91, 4, 139, 34, 113, 12, 57, 111, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			164, 191, 224, 164, 175, 34, 6, 118, 91, 4, 140, 34, 113, 12, 57, 111, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 56, 89, 107, 6, 35, 50, 4, 145, 13, 0, 0, 21, 4, 95, 48, 77, 57, 65,
-			6, 35, 107, 6, 118, 4, 89, 107, 6, 35, 50, 145, 13, 0, 0, 12, 4, 95, 48, 77, 54, 50, 6, 112, 55, 6, 0, 0, 14, 4,
+			0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 56, 89, 107, 6, 35, 50, 4, 146, 13, 0, 0, 21, 4, 95, 48, 77, 57, 65,
+			6, 35, 107, 6, 118, 4, 89, 107, 6, 35, 50, 146, 13, 0, 0, 12, 4, 95, 48, 77, 54, 50, 6, 112, 55, 6, 0, 0, 14, 4,
 			95, 48, 77, 55, 48, 6, 109, 72, 6, 65, 13, 0, 0, 12, 4, 95, 48, 77, 52, 6, 109, 34, 13, 71, 0, 0, 15, 4, 95, 48,
-			77, 53, 145, 6, 109, 34, 13, 71, 6, 109, 0, 0, 12, 4, 95, 48, 77, 50, 55, 6, 118, 145, 13, 0, 0, 15, 4, 95, 48, 77,
-			51, 49, 6, 35, 6, 34, 119, 140, 13, 0, 0, 0, 14, 4, 95, 48, 77, 49, 107, 13, 88, 6, 118, 34, 13, 0, 0, 0, 0, 0,
+			77, 53, 146, 6, 109, 34, 13, 71, 6, 109, 0, 0, 12, 4, 95, 48, 77, 50, 55, 6, 118, 146, 13, 0, 0, 15, 4, 95, 48, 77,
+			51, 49, 6, 35, 6, 34, 119, 141, 13, 0, 0, 0, 14, 4, 95, 48, 77, 49, 107, 13, 88, 6, 118, 34, 13, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36209,14 +25115,14 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			101, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 224, 164, 170, 224, 164,
 			176, 48, 6, 35, 34, 13, 4, 0, 0, 14, 6, 224, 164, 156, 224, 164, 181, 79, 6, 109, 84, 13, 0, 0, 0, 0, 16, 6, 224, 164,
 			164, 224, 164, 176, 47, 6, 35, 34, 13, 4, 0, 8, 0, 0, 0, 9, 134, 224, 164, 168, 224, 164, 191, 8, 0, 0, 0, 0, 0, 0,
-			0, 17, 9, 224, 164, 172, 224, 164, 190, 224, 164, 159, 71, 6, 118, 139, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6,
+			0, 17, 9, 224, 164, 172, 224, 164, 190, 224, 164, 159, 71, 6, 118, 140, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6,
 			224, 164, 156, 224, 164, 188, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
 			6, 224, 164, 134, 224, 164, 156, 118, 6, 79, 13, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 6, 112, 50, 0,
 			0, 10, 2, 95, 50, 72, 6, 123, 4, 112, 0, 0, 9, 2, 95, 49, 114, 6, 49, 6, 0, 0, 12, 2, 95, 48, 91, 6, 123, 50,
-			6, 50, 118, 0, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 8, 2, 95, 54, 143, 6, 111, 0, 0, 10, 2, 95, 53, 48, 6,
+			6, 50, 118, 0, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 8, 2, 95, 54, 144, 6, 111, 0, 0, 10, 2, 95, 53, 48, 6,
 			118, 50, 80, 0, 0, 10, 2, 95, 52, 80, 6, 118, 34, 12, 0, 0, 0, 0, 10, 2, 95, 57, 50, 6, 109, 6, 123, 0, 0, 8,
-			2, 95, 56, 6, 118, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			2, 95, 56, 6, 118, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 12, 224, 164, 185, 224, 165, 139, 224, 164, 135, 224, 164, 168, 107,
@@ -36329,4458 +25235,4270 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			58, 6, 37, 50, 6, 72, 6, 40, 0, 7, 6, 1, 4, 0, 4, 3, 58, 112, 89, 6, 109, 34, 4, 81, 13, 0, 8, 0, 1, 17,
 			67, 2, 32, 3, 108, 0, 4, 1, 17, 65, 2, 17, 65, 3, 108, 4, 0, 1, 17, 65, 2, 17, 67, 0, 1, 17, 65, 2, 32, 0,
 			1, 17, 67, 2, 17, 65, 0, 1, 17, 67, 2, 17, 67, 0, 7, 6, 1, 5, 0, 3, 126, 6, 0, 7, 6, 1, 6, 0, 3, 109,
-			0, 224, 164, 129, 3, 129, 6, 0, 7, 6, 1, 7, 0, 3, 118, 0, 224, 164, 129, 3, 128, 7, 0, 7, 6, 1, 8, 0, 3, 113,
-			0, 224, 164, 129, 3, 124, 6, 0, 7, 6, 1, 9, 0, 2, 32, 3, 112, 0, 3, 113, 12, 0, 224, 164, 129, 3, 124, 7, 0, 7,
-			6, 1, 10, 0, 3, 122, 0, 224, 164, 129, 3, 133, 6, 0, 7, 6, 1, 11, 0, 3, 122, 0, 224, 164, 129, 3, 133, 6, 0, 7,
-			6, 1, 12, 0, 3, 34, 113, 0, 7, 6, 1, 13, 0, 3, 55, 34, 113, 0, 7, 6, 1, 14, 0, 3, 116, 0, 7, 6, 1, 15,
-			0, 3, 36, 0, 224, 164, 129, 3, 126, 6, 0, 7, 6, 1, 16, 0, 3, 114, 0, 224, 164, 129, 3, 126, 6, 4, 0, 7, 6, 1,
-			17, 0, 224, 164, 129, 3, 127, 6, 0, 5, 2, 3, 134, 0, 3, 151, 0, 7, 6, 1, 18, 0, 3, 121, 0, 7, 6, 1, 19, 0,
-			3, 39, 0, 7, 6, 1, 20, 0, 3, 119, 0, 224, 164, 129, 3, 131, 6, 0, 7, 6, 1, 21, 0, 224, 164, 129, 3, 130, 6, 0,
-			5, 3, 3, 135, 0, 3, 152, 0, 7, 6, 1, 22, 0, 5, 1, 2, 32, 107, 3, 0, 2, 17, 66, 3, 49, 0, 2, 224, 165, 141,
-			224, 164, 149, 3, 49, 4, 0, 2, 224, 165, 141, 224, 164, 175, 3, 49, 12, 0, 3, 49, 109, 0, 4, 224, 164, 129, 3, 49, 129, 6,
-			0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 49, 148, 0, 7, 6, 1, 23, 0, 4, 2, 17, 66, 3, 145, 0, 5, 1, 2,
-			32, 0, 2, 224, 165, 141, 224, 164, 150, 3, 145, 4, 0, 3, 145, 109, 0, 4, 224, 164, 129, 3, 145, 129, 6, 0, 224, 165, 133, 0,
-			1, 141, 165, 224, 2, 32, 3, 145, 148, 0, 7, 6, 1, 24, 0, 4, 2, 17, 66, 3, 81, 0, 5, 1, 2, 32, 0, 2, 224, 165,
-			141, 224, 164, 151, 3, 81, 4, 0, 3, 81, 109, 0, 4, 224, 164, 129, 3, 81, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2,
-			32, 3, 81, 148, 0, 7, 6, 1, 25, 0, 4, 2, 17, 66, 3, 146, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 152, 3,
-			146, 4, 0, 3, 146, 109, 0, 4, 224, 164, 129, 3, 146, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 146, 148, 0,
-			7, 6, 1, 26, 0, 4, 2, 17, 66, 3, 68, 0, 2, 32, 0, 3, 68, 109, 0, 1, 141, 165, 224, 2, 32, 3, 68, 148, 0, 7,
-			6, 1, 27, 0, 4, 2, 17, 66, 3, 80, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 154, 3, 80, 4, 0, 2, 224, 165,
-			141, 224, 164, 175, 3, 80, 12, 0, 3, 80, 109, 0, 4, 224, 164, 129, 3, 80, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2,
-			32, 3, 80, 148, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 143, 0, 4, 1, 141, 165, 224, 2, 17, 67, 3, 143, 13, 0, 2, 32,
-			0, 3, 143, 109, 0, 4, 224, 164, 129, 3, 143, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 79, 0,
-			5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 156, 3, 79, 4, 0, 3, 79, 109, 0, 4, 224, 164, 129, 3, 79, 129, 6, 0, 224,
-			165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 79, 148, 0, 7, 6, 1, 30, 0, 2, 224, 165, 141, 224, 164, 157, 3, 79, 4, 0, 4,
-			2, 17, 66, 3, 144, 0, 2, 32, 0, 3, 144, 109, 0, 4, 224, 164, 129, 3, 144, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 31,
-			0, 2, 17, 66, 3, 67, 0, 2, 32, 3, 67, 13, 0, 1, 141, 165, 224, 156, 164, 224, 2, 32, 3, 67, 13, 12, 4, 0, 3, 67,
-			109, 0, 1, 141, 165, 224, 2, 32, 3, 67, 148, 0, 7, 6, 1, 32, 0, 4, 2, 17, 66, 3, 139, 0, 5, 1, 2, 32, 0, 4,
-			2, 224, 165, 141, 224, 164, 159, 3, 139, 4, 0, 2, 224, 165, 141, 224, 164, 160, 0, 2, 224, 165, 141, 224, 164, 175, 3, 139, 12, 0,
-			3, 139, 109, 0, 4, 224, 164, 129, 3, 139, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 139, 148, 0, 7, 6, 1,
-			33, 0, 4, 2, 17, 66, 3, 141, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 160, 3, 141, 4, 0, 3, 141, 109, 0, 4,
-			224, 164, 129, 3, 141, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 141, 148, 0, 7, 6, 1, 34, 0, 4, 2, 17,
-			66, 3, 140, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 161, 3, 140, 4, 0, 4, 2, 224, 165, 141, 224, 164, 175, 3, 140,
-			12, 0, 224, 164, 188, 2, 17, 66, 0, 4, 224, 164, 188, 224, 164, 129, 3, 140, 12, 129, 6, 0, 224, 164, 188, 224, 165, 133, 0, 3,
-			140, 109, 0, 224, 164, 188, 3, 140, 109, 12, 0, 4, 224, 164, 129, 3, 140, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32,
-			3, 140, 148, 0, 7, 6, 1, 35, 0, 4, 2, 17, 66, 3, 142, 0, 5, 1, 2, 32, 0, 224, 164, 188, 2, 17, 66, 0, 3, 142,
-			109, 0, 224, 164, 188, 3, 142, 109, 12, 0, 4, 224, 164, 129, 3, 142, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3,
-			142, 148, 0, 7, 6, 1, 36, 0, 4, 2, 17, 66, 3, 66, 0, 5, 1, 2, 32, 0, 2, 17, 67, 3, 66, 13, 0, 3, 66, 109,
-			0, 1, 141, 165, 224, 2, 32, 3, 66, 148, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 4, 2, 224, 165, 141, 224, 164, 164,
+			0, 224, 164, 129, 3, 129, 6, 0, 7, 6, 1, 7, 0, 3, 118, 0, 224, 164, 135, 3, 118, 113, 0, 224, 164, 137, 3, 118, 122, 0,
+			224, 164, 138, 3, 118, 122, 6, 0, 224, 164, 129, 3, 128, 7, 0, 7, 6, 1, 8, 0, 3, 113, 0, 224, 164, 129, 3, 124, 6, 0,
+			7, 6, 1, 9, 0, 2, 32, 3, 112, 0, 3, 113, 12, 0, 224, 164, 129, 3, 124, 7, 0, 7, 6, 1, 10, 0, 3, 122, 0, 224,
+			164, 129, 3, 133, 6, 0, 7, 6, 1, 11, 0, 3, 122, 0, 224, 164, 129, 3, 133, 6, 0, 7, 6, 1, 12, 0, 3, 34, 113, 0,
+			7, 6, 1, 13, 0, 3, 55, 34, 113, 0, 7, 6, 1, 14, 0, 3, 116, 0, 7, 6, 1, 15, 0, 3, 36, 0, 224, 164, 129, 3,
+			126, 6, 0, 7, 6, 1, 16, 0, 3, 114, 0, 224, 164, 129, 3, 126, 6, 4, 0, 7, 6, 1, 17, 0, 224, 164, 129, 3, 127, 6,
+			0, 5, 2, 3, 134, 0, 3, 152, 0, 7, 6, 1, 18, 0, 3, 121, 0, 7, 6, 1, 19, 0, 3, 39, 0, 7, 6, 1, 20, 0,
+			3, 119, 0, 224, 164, 129, 3, 131, 6, 0, 7, 6, 1, 21, 0, 224, 164, 129, 3, 130, 6, 0, 5, 3, 3, 135, 0, 3, 153, 0,
+			7, 6, 1, 22, 0, 5, 1, 2, 32, 107, 3, 0, 2, 17, 66, 3, 49, 0, 2, 224, 165, 141, 224, 164, 149, 3, 49, 4, 0, 2,
+			224, 165, 141, 224, 164, 175, 3, 49, 12, 0, 3, 49, 109, 0, 4, 224, 164, 129, 3, 49, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165,
+			224, 2, 32, 3, 49, 149, 0, 7, 6, 1, 23, 0, 4, 2, 17, 66, 3, 146, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164,
+			150, 3, 146, 4, 0, 3, 146, 109, 0, 4, 224, 164, 129, 3, 146, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 146,
+			149, 0, 7, 6, 1, 24, 0, 4, 2, 17, 66, 3, 81, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 151, 3, 81, 4, 0,
+			3, 81, 109, 0, 4, 224, 164, 129, 3, 81, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 81, 149, 0, 7, 6, 1,
+			25, 0, 4, 2, 17, 66, 3, 147, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 152, 3, 147, 4, 0, 3, 147, 109, 0, 4,
+			224, 164, 129, 3, 147, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 147, 149, 0, 7, 6, 1, 26, 0, 4, 2, 17,
+			66, 3, 68, 0, 2, 32, 0, 3, 68, 109, 0, 1, 141, 165, 224, 2, 32, 3, 68, 149, 0, 7, 6, 1, 27, 0, 4, 2, 17, 66,
+			3, 80, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 154, 3, 80, 4, 0, 2, 224, 165, 141, 224, 164, 175, 3, 80, 12, 0,
+			3, 80, 109, 0, 4, 224, 164, 129, 3, 80, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 80, 149, 0, 7, 6, 1,
+			28, 0, 2, 17, 66, 3, 144, 0, 4, 1, 141, 165, 224, 2, 17, 67, 3, 144, 13, 0, 2, 32, 0, 3, 144, 109, 0, 4, 224, 164,
+			129, 3, 144, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 79, 0, 5, 1, 2, 32, 0, 2, 224, 165,
+			141, 224, 164, 156, 3, 79, 4, 0, 3, 79, 109, 0, 4, 224, 164, 129, 3, 79, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2,
+			32, 3, 79, 149, 0, 7, 6, 1, 30, 0, 2, 224, 165, 141, 224, 164, 157, 3, 79, 4, 0, 4, 2, 17, 66, 3, 145, 0, 2, 32,
+			0, 3, 145, 109, 0, 4, 224, 164, 129, 3, 145, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 67, 0, 2,
+			32, 3, 67, 13, 0, 1, 141, 165, 224, 156, 164, 224, 2, 32, 3, 67, 13, 12, 4, 0, 3, 67, 109, 0, 1, 141, 165, 224, 2, 32,
+			3, 67, 149, 0, 7, 6, 1, 32, 0, 4, 2, 17, 66, 3, 140, 0, 5, 1, 2, 32, 0, 4, 2, 224, 165, 141, 224, 164, 159, 3,
+			140, 4, 0, 2, 224, 165, 141, 224, 164, 160, 0, 2, 224, 165, 141, 224, 164, 175, 3, 140, 12, 0, 3, 140, 109, 0, 4, 224, 164, 129,
+			3, 140, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 140, 149, 0, 7, 6, 1, 33, 0, 5, 1, 2, 32, 3, 140,
+			107, 0, 4, 224, 164, 129, 3, 140, 107, 129, 6, 0, 224, 165, 133, 0, 2, 17, 66, 3, 142, 0, 2, 224, 165, 141, 224, 164, 160, 3,
+			142, 4, 0, 3, 142, 109, 0, 1, 141, 165, 224, 2, 32, 3, 142, 149, 0, 7, 6, 1, 34, 0, 4, 2, 17, 66, 3, 141, 0, 5,
+			1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 161, 3, 141, 4, 0, 4, 2, 224, 165, 141, 224, 164, 175, 3, 141, 12, 0, 224, 164, 188,
+			2, 17, 66, 0, 4, 224, 164, 188, 224, 164, 129, 3, 141, 12, 129, 6, 0, 224, 164, 188, 224, 165, 133, 0, 3, 141, 109, 0, 224, 164,
+			188, 3, 141, 109, 12, 0, 4, 224, 164, 129, 3, 141, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 141, 149, 0, 7,
+			6, 1, 35, 0, 4, 5, 1, 2, 32, 3, 141, 107, 0, 224, 164, 188, 2, 17, 66, 0, 224, 164, 188, 3, 141, 107, 109, 12, 0, 4,
+			224, 164, 129, 3, 141, 107, 129, 6, 0, 224, 165, 133, 0, 2, 17, 66, 3, 143, 0, 3, 143, 109, 0, 1, 141, 165, 224, 2, 32, 3,
+			143, 149, 0, 7, 6, 1, 36, 0, 4, 2, 17, 66, 3, 66, 0, 5, 1, 2, 32, 0, 2, 17, 67, 3, 66, 13, 0, 3, 66, 109,
+			0, 1, 141, 165, 224, 2, 32, 3, 66, 149, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 4, 2, 224, 165, 141, 224, 164, 164,
 			3, 47, 4, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 175, 3, 47, 12, 0, 3, 47, 109, 0, 4, 224, 164, 129, 3, 47,
-			129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 47, 148, 0, 7, 6, 1, 38, 0, 4, 2, 17, 66, 3, 25, 0, 5,
-			1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 175, 3, 25, 4, 0, 3, 25, 109, 0, 4, 224, 164, 129, 3, 25, 129, 6, 0, 224, 165,
-			133, 0, 1, 141, 165, 224, 2, 32, 3, 25, 148, 0, 7, 6, 1, 39, 0, 4, 2, 17, 66, 3, 72, 0, 5, 1, 2, 32, 0, 2,
+			129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 47, 149, 0, 7, 6, 1, 38, 0, 4, 2, 17, 66, 3, 138, 0, 5,
+			1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 175, 3, 138, 4, 0, 3, 138, 109, 0, 4, 224, 164, 129, 3, 138, 129, 6, 0, 224, 165,
+			133, 0, 1, 141, 165, 224, 2, 32, 3, 138, 149, 0, 7, 6, 1, 39, 0, 4, 2, 17, 66, 3, 72, 0, 5, 1, 2, 32, 0, 2,
 			224, 165, 141, 224, 164, 166, 3, 72, 4, 0, 4, 2, 224, 165, 141, 224, 164, 167, 3, 72, 12, 0, 2, 224, 165, 141, 224, 164, 181, 0,
-			3, 72, 109, 0, 4, 224, 164, 129, 3, 72, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 72, 148, 0, 7, 6, 1,
-			40, 0, 4, 2, 17, 66, 3, 138, 0, 5, 1, 2, 32, 0, 3, 138, 109, 0, 4, 224, 164, 129, 3, 138, 129, 6, 0, 224, 165, 133,
-			0, 1, 141, 165, 224, 2, 32, 3, 138, 148, 0, 7, 6, 1, 41, 0, 4, 2, 17, 66, 3, 50, 0, 5, 1, 2, 32, 0, 2, 224,
+			3, 72, 109, 0, 4, 224, 164, 129, 3, 72, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 72, 149, 0, 7, 6, 1,
+			40, 0, 4, 2, 17, 66, 3, 139, 0, 5, 1, 2, 32, 0, 3, 139, 109, 0, 4, 224, 164, 129, 3, 139, 129, 6, 0, 224, 165, 133,
+			0, 1, 141, 165, 224, 2, 32, 3, 139, 149, 0, 7, 6, 1, 41, 0, 4, 2, 17, 66, 3, 50, 0, 5, 1, 2, 32, 0, 2, 224,
 			165, 141, 224, 164, 168, 3, 50, 4, 0, 4, 1, 136, 165, 224, 17, 67, 2, 32, 3, 50, 13, 0, 1, 143, 164, 224, 2, 32, 0, 1,
 			191, 164, 224, 166, 164, 224, 17, 66, 17, 67, 2, 32, 0, 1, 17, 66, 17, 67, 2, 224, 165, 129, 32, 3, 50, 40, 38, 0, 3, 50,
-			109, 0, 4, 224, 164, 129, 3, 50, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 50, 148, 0, 7, 6, 1, 42, 0,
+			109, 0, 4, 224, 164, 129, 3, 50, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 50, 149, 0, 7, 6, 1, 42, 0,
 			3, 50, 6, 35, 0, 7, 6, 1, 43, 0, 4, 2, 17, 66, 3, 48, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 170, 3,
 			48, 4, 0, 2, 224, 165, 141, 224, 164, 175, 3, 48, 12, 0, 3, 48, 109, 0, 4, 224, 164, 129, 3, 48, 129, 6, 0, 224, 165, 133,
-			0, 1, 141, 165, 224, 2, 32, 3, 48, 148, 0, 7, 6, 1, 44, 0, 4, 2, 17, 66, 3, 136, 0, 5, 1, 2, 32, 0, 2, 224,
+			0, 1, 141, 165, 224, 2, 32, 3, 48, 149, 0, 7, 6, 1, 44, 0, 4, 2, 17, 66, 3, 136, 0, 5, 1, 2, 32, 0, 2, 224,
 			165, 141, 224, 164, 168, 3, 136, 12, 0, 3, 136, 109, 0, 4, 224, 164, 129, 3, 136, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224,
-			2, 32, 3, 136, 148, 0, 7, 6, 1, 45, 0, 4, 2, 17, 66, 3, 71, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 172,
-			3, 71, 12, 0, 3, 71, 109, 0, 4, 224, 164, 129, 3, 71, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 71, 148,
-			0, 7, 6, 1, 46, 0, 1, 141, 165, 224, 2, 32, 3, 71, 107, 148, 0, 4, 2, 17, 66, 3, 137, 0, 5, 1, 2, 32, 0, 2,
-			224, 165, 141, 224, 164, 175, 3, 137, 4, 0, 3, 137, 109, 0, 4, 224, 164, 129, 3, 137, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1,
-			47, 0, 2, 17, 66, 3, 65, 0, 2, 224, 165, 141, 224, 164, 174, 3, 65, 4, 0, 2, 224, 165, 141, 224, 164, 175, 3, 65, 12, 0,
-			3, 65, 109, 0, 4, 224, 164, 129, 3, 65, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 65, 148, 0, 7, 6, 1,
-			48, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 5, 1, 2, 32, 3, 57, 111, 0, 4, 224, 164, 129, 3, 57, 129, 6, 0, 224,
-			165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 57, 148, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 224, 165, 141, 226, 128, 141,
-			3, 34, 6, 12, 0, 1, 141, 165, 224, 2, 99, 3, 34, 6, 84, 12, 0, 2, 224, 165, 141, 17, 67, 3, 34, 12, 0, 4, 1, 135,
-			165, 224, 17, 67, 2, 32, 3, 34, 13, 0, 1, 135, 165, 224, 17, 67, 2, 32, 0, 3, 34, 109, 0, 224, 164, 176, 2, 32, 3, 34,
-			110, 34, 111, 0, 4, 224, 164, 129, 3, 34, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 34, 6, 0, 3,
-			34, 6, 109, 0, 1, 141, 165, 224, 2, 32, 3, 34, 148, 0, 7, 6, 1, 51, 0, 4, 2, 17, 66, 3, 55, 0, 5, 1, 2, 32,
-			0, 2, 224, 165, 141, 224, 164, 178, 3, 55, 12, 0, 3, 55, 109, 0, 4, 224, 164, 129, 3, 55, 129, 6, 0, 224, 165, 133, 0, 1,
-			141, 165, 224, 2, 32, 3, 55, 148, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0,
-			3, 62, 109, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109, 0, 7,
-			6, 1, 54, 0, 1, 141, 165, 224, 167, 164, 224, 2, 32, 3, 6, 58, 109, 0, 8, 2, 17, 66, 3, 58, 0, 4, 1, 141, 165, 224,
-			17, 67, 3, 58, 6, 0, 1, 141, 165, 224, 167, 164, 224, 2, 17, 66, 0, 1, 141, 165, 224, 185, 164, 224, 0, 2, 17, 66, 0, 1,
-			141, 165, 224, 167, 164, 224, 2, 17, 67, 3, 58, 6, 109, 0, 4, 3, 58, 109, 0, 8, 0, 224, 164, 129, 8, 3, 58, 129, 6, 0,
-			8, 2, 224, 165, 141, 3, 84, 0, 4, 224, 164, 129, 3, 84, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 55, 0, 4, 2, 17, 66,
-			3, 91, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 154, 3, 91, 12, 0, 3, 91, 109, 0, 4, 224, 164, 129, 3, 91, 129,
-			6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 91, 148, 0, 7, 6, 1, 56, 0, 4, 2, 17, 66, 3, 93, 0, 5, 1,
-			2, 32, 0, 4, 2, 224, 165, 141, 224, 164, 159, 3, 93, 4, 0, 2, 224, 165, 141, 224, 164, 160, 0, 3, 93, 109, 0, 4, 224, 164,
-			129, 3, 93, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 93, 148, 0, 7, 6, 1, 57, 0, 4, 2, 17, 66, 3,
-			89, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 184, 3, 89, 4, 0, 3, 89, 109, 0, 1, 141, 165, 224, 2, 32, 3, 89,
-			148, 0, 4, 224, 164, 129, 3, 91, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 109, 0,
-			4, 224, 164, 129, 3, 107, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 107, 148, 0, 7, 6, 1, 62, 0, 4, 1,
-			17, 65, 3, 12, 8, 0, 1, 17, 67, 0, 3, 109, 6, 49, 6, 118, 34, 13, 0, 7, 6, 1, 63, 0, 1, 17, 67, 3, 118, 0,
-			3, 118, 4, 49, 6, 118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 128, 6, 0, 7, 6, 1, 64, 0, 3, 37, 6, 49, 6,
-			118, 12, 34, 13, 0, 1, 17, 67, 3, 113, 0, 224, 164, 129, 1, 17, 67, 3, 124, 6, 0, 7, 6, 1, 65, 0, 1, 17, 67, 2,
-			32, 3, 112, 0, 3, 112, 4, 8, 49, 6, 118, 12, 34, 13, 0, 1, 17, 67, 3, 113, 12, 0, 224, 164, 129, 1, 17, 67, 3, 124,
-			6, 0, 7, 6, 1, 66, 0, 1, 17, 67, 3, 40, 0, 1, 168, 164, 224, 133, 164, 224, 3, 40, 4, 20, 0, 3, 122, 6, 49, 6,
-			118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 133, 6, 0, 7, 6, 1, 67, 0, 3, 58, 123, 4, 8, 49, 6, 118, 12, 34,
-			13, 0, 1, 17, 67, 3, 123, 0, 224, 164, 129, 1, 17, 67, 3, 133, 6, 0, 7, 6, 1, 68, 0, 1, 17, 67, 3, 34, 6, 113,
-			0, 3, 34, 112, 4, 49, 6, 118, 34, 13, 0, 7, 6, 1, 69, 0, 1, 17, 67, 3, 34, 34, 6, 112, 4, 0, 3, 34, 34, 112,
-			4, 49, 6, 118, 34, 13, 0, 7, 6, 1, 70, 0, 3, 116, 4, 80, 112, 50, 6, 107, 13, 12, 0, 1, 17, 67, 3, 129, 6, 0,
-			7, 6, 1, 71, 0, 1, 17, 67, 3, 36, 0, 3, 36, 6, 49, 6, 118, 12, 34, 148, 0, 7, 6, 1, 72, 0, 1, 17, 67, 3,
-			114, 0, 3, 114, 6, 49, 6, 118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 126, 6, 0, 7, 6, 1, 73, 0, 1, 17, 67,
-			3, 115, 0, 224, 164, 129, 1, 17, 67, 3, 127, 6, 0, 5, 2, 1, 17, 67, 3, 134, 0, 3, 151, 12, 6, 49, 6, 118, 12, 34,
-			13, 0, 7, 6, 1, 74, 0, 1, 17, 67, 3, 118, 50, 0, 3, 120, 0, 7, 6, 1, 75, 0, 1, 17, 67, 3, 39, 0, 3, 39,
-			49, 6, 118, 12, 34, 13, 0, 7, 6, 1, 76, 0, 1, 17, 67, 3, 119, 0, 3, 119, 4, 49, 6, 118, 12, 34, 13, 0, 224, 164,
-			129, 1, 17, 67, 3, 131, 6, 0, 7, 6, 1, 77, 0, 1, 17, 67, 3, 120, 0, 3, 120, 40, 49, 118, 12, 34, 13, 0, 224, 164,
-			129, 1, 17, 67, 3, 130, 6, 0, 5, 3, 1, 17, 67, 3, 135, 0, 7, 6, 1, 78, 0, 1, 17, 67, 3, 0, 1, 17, 67, 2,
-			17, 67, 32, 3, 8, 0, 3, 107, 6, 109, 55, 110, 50, 6, 47, 111, 0, 7, 6, 1, 81, 0, 3, 131, 7, 65, 0, 7, 6, 1,
-			89, 0, 2, 17, 66, 3, 104, 0, 3, 104, 109, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 101, 0, 3, 101, 109, 0, 7, 6, 1,
-			91, 0, 2, 17, 66, 3, 100, 0, 3, 100, 109, 0, 7, 6, 1, 92, 0, 2, 17, 66, 3, 88, 0, 3, 88, 109, 0, 7, 6, 1,
-			93, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 70, 107, 0, 3, 70, 107, 109, 0, 7,
-			6, 1, 95, 0, 2, 17, 66, 3, 83, 0, 3, 83, 109, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 7,
-			6, 1, 97, 0, 3, 34, 34, 113, 12, 0, 7, 6, 1, 98, 0, 3, 55, 55, 34, 112, 0, 7, 6, 1, 99, 0, 3, 55, 6, 34,
-			112, 49, 6, 118, 12, 34, 13, 0, 7, 6, 1, 100, 0, 3, 55, 55, 6, 34, 112, 4, 49, 6, 118, 12, 34, 13, 12, 0, 7, 6,
-			1, 115, 0, 3, 129, 6, 0, 7, 6, 1, 124, 0, 2, 17, 66, 3, 100, 0, 3, 100, 109, 0, 7, 6, 1, 125, 0, 2, 17, 66,
-			3, 88, 0, 3, 88, 109, 0, 7, 6, 1, 127, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 128, 0, 2, 17, 66,
-			3, 71, 0, 3, 71, 13, 0, 7, 6, 43, 0, 3, 48, 55, 109, 89, 0, 4, 1, 32, 17, 65, 3, 79, 6, 39, 72, 80, 6, 37,
-			50, 107, 111, 0, 1, 32, 17, 67, 0, 2, 32, 17, 65, 0, 2, 32, 17, 67, 0, 7, 6, 45, 0, 4, 1, 32, 12, 3, 65, 6,
-			35, 37, 50, 109, 8, 89, 0, 1, 32, 61, 0, 1, 32, 166, 165, 224, 0, 1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1,
-			32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224, 0, 1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1,
-			32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 2, 32, 12, 0, 2, 32, 61, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167,
-			0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169, 0, 2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172,
-			0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174, 0, 2, 32, 224, 165, 175, 0, 3, 140, 57, 118, 91, 0, 7, 6, 61, 0, 4,
-			1, 32, 17, 65, 3, 71, 109, 34, 6, 118, 71, 35, 8, 34, 0, 1, 32, 17, 67, 0, 1, 32, 166, 165, 224, 0, 1, 32, 167, 165,
-			224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224, 0, 1, 32, 172, 165,
-			224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 2, 32, 17, 65, 0, 2, 32, 17, 67, 0,
-			2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169, 0, 2, 32, 224, 165, 170, 0,
-			2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174, 0, 2, 32, 224, 165, 175, 0,
-			3, 113, 6, 88, 4, 112, 49, 6, 58, 109, 6, 55, 0, 7, 6, 91, 0, 4, 2, 32, 17, 65, 3, 25, 6, 40, 55, 6, 39, 49,
-			6, 39, 89, 107, 139, 111, 89, 40, 34, 40, 0, 2, 32, 17, 67, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32,
-			224, 165, 168, 0, 2, 32, 224, 165, 169, 0, 2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32,
-			224, 165, 173, 0, 2, 32, 224, 165, 174, 0, 2, 32, 224, 165, 175, 0, 3, 55, 6, 36, 83, 47, 71, 34, 6, 35, 49, 6, 36, 47,
-			0, 7, 6, 93, 0, 4, 1, 32, 17, 65, 3, 25, 6, 40, 55, 6, 39, 49, 6, 39, 89, 107, 139, 111, 71, 6, 109, 50, 72, 111,
-			0, 1, 32, 17, 67, 0, 1, 32, 166, 165, 224, 0, 1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0,
-			1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224, 0, 1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0,
-			1, 32, 175, 165, 224, 0, 3, 34, 6, 35, 37, 47, 71, 34, 6, 35, 49, 6, 36, 47, 0, 7, 6, 123, 0, 3, 55, 6, 36, 83,
-			47, 71, 34, 6, 149, 89, 0, 4, 2, 32, 17, 65, 3, 71, 6, 118, 68, 81, 6, 36, 49, 6, 39, 89, 107, 141, 111, 89, 40, 34,
-			40, 0, 2, 32, 17, 67, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169,
-			0, 2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174,
-			0, 2, 32, 224, 165, 175, 0, 7, 6, 125, 0, 3, 34, 6, 134, 47, 71, 34, 6, 149, 89, 0, 4, 1, 32, 17, 65, 3, 71, 6,
-			118, 68, 81, 6, 36, 49, 6, 39, 89, 107, 141, 111, 71, 6, 109, 50, 72, 111, 0, 1, 32, 17, 67, 0, 1, 32, 166, 165, 224, 0,
-			1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224, 0,
-			1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 7, 6, 0, 224, 165, 148,
-			3, 4, 122, 72, 12, 138, 13, 34, 4, 13, 66, 13, 6, 109, 50, 47, 13, 0, 224, 165, 146, 3, 35, 6, 50, 6, 40, 72, 6, 109,
-			47, 47, 4, 13, 0, 37, 3, 48, 34, 109, 47, 37, 89, 107, 6, 84, 47, 0, 224, 165, 164, 3, 48, 40, 34, 6, 4, 66, 13, 4,
-			58, 6, 37, 34, 6, 118, 65, 0, 224, 165, 189, 3, 49, 4, 13, 66, 141, 13, 58, 6, 113, 34, 118, 65, 0, 224, 164, 188, 3, 50,
-			6, 40, 6, 49, 6, 47, 6, 118, 0, 224, 165, 165, 3, 72, 6, 112, 34, 146, 13, 4, 58, 6, 37, 34, 6, 118, 65, 0, 224, 165,
-			177, 3, 72, 109, 91, 13, 65, 35, 55, 13, 58, 111, 0, 36, 3, 72, 121, 55, 109, 0, 224, 165, 176, 3, 89, 35, 68, 49, 93, 114,
-			48, 13, 89, 6, 123, 80, 13, 49, 13, 0, 224, 165, 145, 3, 122, 72, 6, 109, 47, 47, 4, 13, 0, 224, 165, 147, 3, 122, 72, 12,
-			138, 13, 34, 4, 13, 66, 13, 118, 34, 6, 109, 65, 137, 13, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts47 = FileInMemory_createWithData (10817, reinterpret_cast<const char *> (&espeakdata_dicts47_data), 
-			U"espeak-1.48.04-source/espeak-data/ne_dict", 
+			2, 32, 3, 136, 149, 0, 7, 6, 1, 45, 0, 4, 2, 17, 66, 3, 71, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 172,
+			3, 71, 12, 0, 3, 71, 109, 0, 4, 224, 164, 129, 3, 71, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 71, 149,
+			0, 7, 6, 1, 46, 0, 4, 2, 17, 66, 3, 137, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 175, 3, 137, 4, 0, 3,
+			137, 109, 0, 4, 224, 164, 129, 3, 137, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 137, 149, 0, 7, 6, 1, 47,
+			0, 2, 17, 66, 3, 65, 0, 2, 224, 165, 141, 224, 164, 174, 3, 65, 4, 0, 2, 224, 165, 141, 224, 164, 175, 3, 65, 12, 0, 3,
+			65, 109, 0, 4, 224, 164, 129, 3, 65, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 65, 149, 0, 7, 6, 1, 48,
+			0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 5, 1, 2, 32, 3, 57, 111, 0, 4, 224, 164, 129, 3, 57, 129, 6, 0, 224, 165,
+			133, 0, 1, 141, 165, 224, 2, 32, 3, 57, 149, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 224, 165, 141, 226, 128, 141, 3,
+			34, 6, 12, 0, 1, 141, 165, 224, 2, 99, 3, 34, 6, 84, 12, 0, 2, 224, 165, 141, 17, 67, 3, 34, 12, 0, 4, 1, 135, 165,
+			224, 17, 67, 2, 32, 3, 34, 13, 0, 1, 135, 165, 224, 17, 67, 2, 32, 0, 3, 34, 109, 0, 224, 164, 176, 2, 32, 3, 34, 110,
+			34, 111, 0, 4, 224, 164, 129, 3, 34, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 34, 6, 0, 3, 34,
+			6, 109, 0, 1, 141, 165, 224, 2, 32, 3, 34, 149, 0, 7, 6, 1, 51, 0, 4, 2, 17, 66, 3, 55, 0, 5, 1, 2, 32, 0,
+			2, 224, 165, 141, 224, 164, 178, 3, 55, 12, 0, 3, 55, 109, 0, 4, 224, 164, 129, 3, 55, 129, 6, 0, 224, 165, 133, 0, 1, 141,
+			165, 224, 2, 32, 3, 55, 149, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3,
+			62, 109, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 62, 0, 1, 141, 165, 224, 2, 32, 3, 62, 13, 0, 3, 62, 109, 0, 7, 6,
+			1, 54, 0, 1, 141, 165, 224, 167, 164, 224, 2, 32, 3, 6, 58, 109, 0, 8, 2, 17, 66, 3, 58, 0, 4, 1, 141, 165, 224, 17,
+			67, 3, 58, 6, 0, 1, 141, 165, 224, 167, 164, 224, 2, 17, 66, 0, 1, 141, 165, 224, 185, 164, 224, 0, 2, 17, 66, 0, 1, 141,
+			165, 224, 167, 164, 224, 2, 17, 67, 3, 58, 6, 109, 0, 4, 3, 58, 109, 0, 8, 0, 224, 164, 129, 8, 3, 58, 129, 6, 0, 8,
+			2, 224, 165, 141, 3, 84, 0, 4, 224, 164, 129, 3, 84, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 55, 0, 4, 2, 17, 66, 3,
+			91, 0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 154, 3, 91, 12, 0, 3, 91, 109, 0, 4, 224, 164, 129, 3, 91, 129, 6,
+			0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 91, 149, 0, 7, 6, 1, 56, 0, 4, 2, 17, 66, 3, 93, 0, 5, 1, 2,
+			32, 0, 4, 2, 224, 165, 141, 224, 164, 159, 3, 93, 4, 0, 2, 224, 165, 141, 224, 164, 160, 0, 3, 93, 109, 0, 4, 224, 164, 129,
+			3, 93, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 93, 149, 0, 7, 6, 1, 57, 0, 4, 2, 17, 66, 3, 89,
+			0, 5, 1, 2, 32, 0, 2, 224, 165, 141, 224, 164, 184, 3, 89, 4, 0, 3, 89, 109, 0, 1, 141, 165, 224, 2, 32, 3, 89, 149,
+			0, 4, 224, 164, 129, 3, 91, 129, 6, 0, 224, 165, 133, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 109, 0, 4,
+			224, 164, 129, 3, 107, 129, 6, 0, 224, 165, 133, 0, 1, 141, 165, 224, 2, 32, 3, 107, 149, 0, 7, 6, 1, 62, 0, 4, 1, 17,
+			65, 3, 12, 8, 0, 1, 17, 67, 0, 3, 109, 6, 49, 6, 118, 34, 13, 0, 7, 6, 1, 63, 0, 1, 17, 67, 3, 118, 0, 3,
+			118, 4, 49, 6, 118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 128, 6, 0, 224, 164, 181, 3, 135, 0, 7, 6, 1, 64, 0,
+			3, 37, 6, 49, 6, 118, 12, 34, 13, 0, 1, 17, 67, 3, 113, 0, 224, 164, 129, 1, 17, 67, 3, 124, 6, 0, 7, 6, 1, 65,
+			0, 1, 17, 67, 2, 32, 3, 112, 0, 3, 112, 4, 8, 49, 6, 118, 12, 34, 13, 0, 1, 17, 67, 3, 113, 12, 0, 224, 164, 129,
+			1, 17, 67, 3, 124, 6, 0, 7, 6, 1, 66, 0, 1, 17, 67, 3, 40, 0, 1, 168, 164, 224, 133, 164, 224, 3, 40, 4, 20, 0,
+			3, 122, 6, 49, 6, 118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 133, 6, 0, 7, 6, 1, 67, 0, 3, 58, 123, 4, 8,
+			49, 6, 118, 12, 34, 13, 0, 1, 17, 67, 3, 123, 0, 224, 164, 129, 1, 17, 67, 3, 133, 6, 0, 7, 6, 1, 68, 0, 1, 17,
+			67, 3, 34, 6, 113, 0, 3, 34, 112, 4, 49, 6, 118, 34, 13, 0, 7, 6, 1, 69, 0, 1, 17, 67, 3, 34, 34, 6, 112, 4,
+			0, 3, 34, 34, 112, 4, 49, 6, 118, 34, 13, 0, 7, 6, 1, 70, 0, 3, 116, 4, 80, 112, 50, 6, 107, 13, 12, 0, 1, 17,
+			67, 3, 129, 6, 0, 7, 6, 1, 71, 0, 1, 17, 67, 3, 36, 0, 3, 36, 6, 49, 6, 118, 12, 34, 149, 0, 7, 6, 1, 72,
+			0, 1, 17, 67, 3, 114, 0, 3, 114, 6, 49, 6, 118, 12, 34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 126, 6, 0, 7, 6, 1,
+			73, 0, 1, 17, 67, 3, 115, 0, 224, 164, 129, 1, 17, 67, 3, 127, 6, 0, 5, 2, 1, 17, 67, 3, 134, 0, 3, 152, 12, 6,
+			49, 6, 118, 12, 34, 13, 0, 7, 6, 1, 74, 0, 1, 17, 67, 3, 118, 50, 0, 3, 120, 0, 7, 6, 1, 75, 0, 1, 17, 67,
+			3, 39, 0, 3, 39, 49, 6, 118, 12, 34, 13, 0, 7, 6, 1, 76, 0, 1, 17, 67, 3, 119, 0, 3, 119, 4, 49, 6, 118, 12,
+			34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 131, 6, 0, 7, 6, 1, 77, 0, 1, 17, 67, 3, 120, 0, 3, 120, 40, 49, 118, 12,
+			34, 13, 0, 224, 164, 129, 1, 17, 67, 3, 130, 6, 0, 5, 3, 1, 17, 67, 3, 135, 0, 7, 6, 1, 78, 0, 1, 17, 67, 3,
+			0, 1, 17, 67, 2, 17, 67, 32, 3, 8, 0, 3, 107, 6, 109, 55, 110, 50, 6, 47, 111, 0, 7, 6, 1, 81, 0, 3, 131, 7,
+			65, 0, 7, 6, 1, 89, 0, 2, 17, 66, 3, 104, 0, 3, 104, 109, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 101, 0, 3, 101,
+			109, 0, 7, 6, 1, 91, 0, 2, 17, 66, 3, 100, 0, 3, 100, 109, 0, 7, 6, 1, 92, 0, 2, 17, 66, 3, 88, 0, 3, 88,
+			109, 0, 7, 6, 1, 93, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 70, 107, 0, 3,
+			70, 107, 109, 0, 7, 6, 1, 95, 0, 2, 17, 66, 3, 83, 0, 3, 83, 109, 0, 7, 6, 1, 96, 0, 2, 17, 66, 3, 57, 0,
+			3, 57, 109, 0, 7, 6, 1, 97, 0, 3, 34, 34, 113, 12, 0, 7, 6, 1, 98, 0, 3, 55, 55, 34, 112, 0, 7, 6, 1, 99,
+			0, 3, 55, 6, 34, 112, 49, 6, 118, 12, 34, 13, 0, 7, 6, 1, 100, 0, 3, 55, 55, 6, 34, 112, 4, 49, 6, 118, 12, 34,
+			13, 12, 0, 7, 6, 1, 115, 0, 3, 129, 6, 0, 7, 6, 1, 124, 0, 2, 17, 66, 3, 100, 0, 3, 100, 109, 0, 7, 6, 1,
+			125, 0, 2, 17, 66, 3, 88, 0, 3, 88, 109, 0, 7, 6, 1, 127, 0, 2, 17, 66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1,
+			128, 0, 2, 17, 66, 3, 71, 0, 3, 71, 13, 0, 7, 6, 43, 0, 3, 48, 55, 109, 89, 0, 4, 1, 32, 17, 65, 3, 79, 6,
+			39, 72, 80, 6, 37, 50, 107, 111, 0, 1, 32, 17, 67, 0, 2, 32, 17, 65, 0, 2, 32, 17, 67, 0, 7, 6, 45, 0, 4, 1,
+			32, 12, 3, 65, 6, 35, 37, 50, 109, 8, 89, 0, 1, 32, 61, 0, 1, 32, 166, 165, 224, 0, 1, 32, 167, 165, 224, 0, 1, 32,
+			168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224, 0, 1, 32, 172, 165, 224, 0, 1, 32,
+			173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 2, 32, 12, 0, 2, 32, 61, 0, 2, 32, 224, 165, 166, 0,
+			2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169, 0, 2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0,
+			2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174, 0, 2, 32, 224, 165, 175, 0, 3, 141, 57, 118, 91, 0,
+			7, 6, 61, 0, 4, 1, 32, 17, 65, 3, 71, 109, 34, 6, 118, 71, 35, 8, 34, 0, 1, 32, 17, 67, 0, 1, 32, 166, 165, 224,
+			0, 1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165, 224,
+			0, 1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 2, 32, 17, 65, 0,
+			2, 32, 17, 67, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169, 0, 2,
+			32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174, 0, 2,
+			32, 224, 165, 175, 0, 3, 113, 6, 88, 4, 112, 49, 6, 58, 109, 6, 55, 0, 7, 6, 91, 0, 3, 55, 6, 36, 83, 47, 71, 34,
+			6, 35, 49, 6, 36, 47, 0, 4, 2, 32, 17, 65, 3, 138, 6, 40, 55, 6, 39, 49, 6, 39, 89, 107, 140, 111, 89, 40, 34, 40,
+			0, 2, 32, 17, 67, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0, 2, 32, 224, 165, 169, 0,
+			2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0, 2, 32, 224, 165, 174, 0,
+			2, 32, 224, 165, 175, 0, 7, 6, 93, 0, 3, 34, 6, 35, 37, 47, 71, 34, 6, 35, 49, 6, 36, 47, 0, 4, 1, 32, 17, 65,
+			3, 138, 6, 40, 55, 6, 39, 49, 6, 39, 89, 107, 140, 111, 71, 6, 109, 50, 72, 111, 0, 1, 32, 17, 67, 0, 1, 32, 166, 165,
+			224, 0, 1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1, 32, 171, 165,
+			224, 0, 1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 7, 6, 123, 0,
+			3, 55, 6, 36, 83, 47, 71, 34, 6, 150, 89, 0, 4, 2, 32, 17, 65, 3, 71, 6, 118, 68, 81, 6, 36, 49, 6, 39, 89, 107,
+			142, 111, 89, 40, 34, 40, 0, 2, 32, 17, 67, 0, 2, 32, 224, 165, 166, 0, 2, 32, 224, 165, 167, 0, 2, 32, 224, 165, 168, 0,
+			2, 32, 224, 165, 169, 0, 2, 32, 224, 165, 170, 0, 2, 32, 224, 165, 171, 0, 2, 32, 224, 165, 172, 0, 2, 32, 224, 165, 173, 0,
+			2, 32, 224, 165, 174, 0, 2, 32, 224, 165, 175, 0, 7, 6, 125, 0, 3, 34, 6, 134, 47, 71, 34, 6, 150, 89, 0, 4, 1, 32,
+			17, 65, 3, 71, 6, 118, 68, 81, 6, 36, 49, 6, 39, 89, 107, 142, 111, 71, 6, 109, 50, 72, 111, 0, 1, 32, 17, 67, 0, 1,
+			32, 166, 165, 224, 0, 1, 32, 167, 165, 224, 0, 1, 32, 168, 165, 224, 0, 1, 32, 169, 165, 224, 0, 1, 32, 170, 165, 224, 0, 1,
+			32, 171, 165, 224, 0, 1, 32, 172, 165, 224, 0, 1, 32, 173, 165, 224, 0, 1, 32, 174, 165, 224, 0, 1, 32, 175, 165, 224, 0, 7,
+			6, 0, 4, 224, 165, 145, 3, 0, 4, 224, 165, 147, 3, 0, 4, 224, 165, 148, 3, 0, 224, 165, 189, 3, 0, 37, 3, 48, 34, 109,
+			47, 37, 89, 107, 6, 84, 47, 0, 224, 165, 164, 3, 48, 40, 34, 6, 4, 66, 13, 4, 58, 6, 37, 34, 6, 118, 65, 0, 224, 164,
+			188, 3, 50, 6, 40, 6, 49, 6, 47, 6, 118, 0, 224, 165, 177, 3, 71, 6, 112, 50, 8, 72, 6, 123, 0, 224, 165, 165, 3, 72,
+			6, 39, 71, 6, 71, 111, 34, 111, 4, 58, 37, 34, 6, 118, 12, 65, 109, 0, 36, 3, 72, 121, 55, 109, 0, 224, 165, 176, 3, 109,
+			4, 50, 89, 107, 13, 0, 224, 165, 146, 3, 109, 72, 6, 119, 4, 34, 6, 36, 146, 6, 118, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts44 = FileInMemory_createWithData (10794, reinterpret_cast<const char *> (&espeakdata_dicts44_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ne_dict", 
 			U"ne");
-		my addItem_move (espeakdata_dicts47.move());
+		Collection_addItem (me.peek(), espeakdata_dicts44.transfer());
 
-		static unsigned char espeakdata_dicts48_data[27198] = {
-			0, 4, 0, 0, 8, 71, 0, 0, 0, 11, 200, 28, 81, 146, 37, 69, 85, 72, 64, 67, 0, 0, 19, 71, 25, 32, 78, 12, 130, 83,
-			20, 83, 34, 116, 6, 91, 37, 12, 88, 13, 0, 0, 0, 0, 0, 8, 197, 41, 83, 12, 36, 80, 72, 8, 197, 41, 83, 12, 36, 80,
-			72, 0, 13, 68, 8, 84, 137, 28, 71, 108, 12, 34, 13, 100, 0, 0, 6, 65, 8, 71, 119, 0, 0, 10, 199, 52, 20, 141, 60, 193,
-			85, 52, 15, 0, 7, 196, 72, 243, 65, 56, 66, 0, 0, 6, 65, 12, 89, 119, 0, 0, 0, 8, 197, 52, 22, 9, 52, 16, 65, 7,
-			196, 36, 166, 133, 72, 15, 0, 0, 6, 65, 16, 72, 119, 0, 0, 11, 68, 24, 144, 200, 20, 83, 37, 91, 13, 0, 0, 16, 70, 24,
-			16, 197, 8, 243, 203, 83, 111, 37, 89, 71, 40, 49, 0, 17, 67, 20, 83, 128, 119, 50, 15, 84, 116, 50, 0, 81, 118, 97, 110, 32,
-			15, 67, 20, 83, 128, 119, 50, 15, 113, 83, 0, 81, 111, 102, 32, 9, 67, 20, 83, 128, 119, 50, 0, 49, 9, 67, 20, 83, 128, 13,
-			50, 0, 46, 0, 13, 4, 95, 100, 112, 116, 10, 49, 6, 113, 65, 115, 0, 0, 16, 65, 20, 37, 12, 65, 119, 55, 0, 44, 81, 109,
-			97, 105, 108, 32, 5, 65, 20, 119, 0, 0, 18, 71, 76, 245, 66, 72, 85, 20, 20, 89, 40, 71, 34, 6, 111, 47, 13, 0, 10, 199,
-			52, 18, 143, 72, 85, 20, 20, 67, 16, 71, 12, 245, 67, 32, 85, 20, 20, 49, 40, 91, 6, 111, 47, 0, 16, 70, 21, 0, 85, 48,
-			85, 0, 119, 48, 122, 55, 6, 111, 47, 0, 0, 9, 67, 92, 146, 128, 85, 2, 123, 0, 9, 67, 28, 146, 128, 100, 2, 123, 0, 0,
-			0, 6, 65, 24, 111, 83, 0, 0, 0, 7, 196, 32, 20, 5, 72, 15, 0, 9, 198, 76, 227, 197, 104, 83, 0, 15, 9, 198, 45, 114,
-			83, 64, 83, 0, 15, 9, 198, 45, 34, 78, 44, 83, 0, 15, 0, 6, 65, 28, 100, 119, 0, 0, 0, 7, 196, 44, 85, 5, 56, 15,
-			6, 195, 44, 19, 128, 72, 0, 0, 12, 201, 36, 225, 197, 92, 146, 203, 20, 193, 0, 67, 6, 65, 32, 107, 115, 0, 0, 0, 0, 11,
-			1, 35, 107, 6, 111, 49, 57, 13, 0, 27, 0, 6, 65, 36, 37, 12, 0, 0, 34, 79, 104, 145, 75, 20, 226, 21, 37, 48, 133, 88,
-			19, 12, 36, 225, 192, 88, 37, 12, 49, 13, 50, 107, 124, 89, 71, 13, 84, 116, 55, 108, 68, 0, 13, 1, 37, 48, 14, 16, 122, 89,
-			6, 111, 50, 47, 0, 0, 0, 0, 7, 196, 72, 18, 197, 48, 15, 7, 196, 64, 82, 197, 48, 15, 7, 196, 32, 82, 197, 48, 15, 7,
-			196, 20, 146, 197, 48, 15, 7, 196, 8, 22, 133, 48, 15, 10, 198, 48, 147, 143, 48, 85, 77, 15, 66, 6, 65, 40, 57, 119, 0, 0,
-			0, 12, 201, 60, 225, 197, 48, 243, 198, 48, 146, 139, 67, 14, 1, 42, 89, 47, 6, 111, 16, 34, 111, 47, 38, 13, 0, 0, 9, 1,
-			43, 48, 55, 6, 110, 89, 0, 0, 7, 196, 104, 81, 197, 48, 15, 7, 196, 80, 17, 133, 48, 15, 7, 196, 72, 81, 197, 48, 15, 6,
-			65, 44, 49, 115, 0, 0, 8, 197, 64, 145, 80, 20, 192, 15, 8, 197, 44, 241, 80, 20, 192, 15, 8, 197, 76, 241, 80, 20, 192, 15,
-			8, 197, 49, 85, 20, 20, 192, 15, 0, 19, 72, 16, 84, 201, 48, 197, 83, 36, 80, 72, 111, 89, 108, 55, 109, 88, 37, 0, 8, 1,
-			46, 48, 110, 50, 47, 0, 0, 9, 1, 47, 89, 55, 6, 111, 91, 0, 0, 9, 3, 122, 39, 110, 88, 13, 50, 0, 13, 4, 95, 100,
-			105, 97, 6, 110, 65, 55, 125, 47, 0, 6, 65, 48, 111, 55, 0, 0, 21, 71, 64, 84, 137, 24, 84, 137, 20, 48, 108, 12, 34, 37,
-			83, 108, 12, 34, 6, 37, 0, 0, 8, 67, 40, 21, 211, 21, 0, 47, 0, 0, 6, 65, 52, 111, 65, 0, 0, 9, 198, 16, 243, 210,
-			16, 21, 0, 66, 6, 194, 104, 240, 46, 76, 0, 0, 0, 11, 70, 76, 241, 148, 92, 20, 133, 21, 0, 47, 11, 70, 32, 20, 132, 92,
-			20, 133, 21, 0, 47, 6, 65, 56, 111, 50, 0, 0, 10, 199, 12, 243, 15, 77, 49, 85, 52, 15, 0, 7, 196, 61, 32, 133, 72, 15,
-			0, 9, 198, 76, 227, 210, 44, 83, 0, 15, 14, 70, 76, 133, 70, 24, 83, 0, 91, 110, 83, 13, 55, 0, 9, 198, 81, 37, 70, 24,
-			83, 0, 15, 0, 7, 196, 44, 21, 133, 48, 15, 0, 7, 194, 61, 0, 46, 76, 28, 6, 195, 92, 16, 82, 8, 15, 1, 61, 100, 13,
-			55, 6, 123, 49, 47, 119, 49, 13, 50, 0, 0, 7, 196, 4, 226, 197, 72, 15, 0, 11, 199, 16, 241, 76, 52, 21, 9, 28, 66, 16,
-			0, 14, 69, 36, 211, 69, 57, 48, 108, 65, 6, 111, 50, 89, 0, 19, 1, 64, 9, 6, 115, 48, 13, 50, 89, 47, 4, 115, 34, 47,
-			38, 13, 9, 0, 6, 65, 64, 48, 119, 0, 0, 0, 12, 201, 76, 50, 1, 72, 210, 78, 44, 83, 0, 15, 0, 0, 6, 65, 68, 49,
-			109, 0, 0, 0, 0, 0, 10, 67, 56, 20, 201, 50, 116, 89, 37, 0, 7, 196, 104, 83, 69, 48, 15, 6, 65, 72, 111, 34, 0, 0,
-			6, 195, 60, 33, 82, 15, 0, 8, 67, 80, 129, 64, 86, 13, 0, 0, 12, 4, 95, 100, 111, 116, 48, 6, 110, 50, 47, 0, 0, 7,
-			196, 8, 81, 5, 48, 15, 7, 196, 20, 225, 197, 48, 15, 7, 65, 76, 111, 89, 0, 49, 0, 9, 198, 77, 0, 82, 80, 83, 0, 15,
-			8, 197, 77, 0, 84, 20, 192, 15, 9, 198, 77, 0, 84, 80, 84, 128, 15, 0, 0, 12, 201, 21, 80, 200, 5, 34, 83, 80, 145, 64,
-			68, 0, 7, 65, 80, 47, 119, 0, 49, 6, 65, 80, 47, 119, 0, 0, 0, 0, 0, 17, 70, 61, 1, 82, 21, 69, 5, 122, 48, 13,
-			34, 6, 111, 47, 13, 0, 9, 198, 9, 37, 78, 21, 69, 5, 66, 7, 196, 24, 16, 197, 80, 66, 6, 65, 84, 2, 109, 0, 0, 9,
-			198, 45, 114, 78, 80, 85, 0, 66, 7, 66, 85, 0, 21, 0, 47, 0, 0, 9, 198, 105, 113, 78, 16, 83, 0, 15, 9, 198, 64, 20,
-			129, 8, 83, 0, 15, 0, 14, 203, 45, 33, 68, 36, 85, 23, 4, 20, 132, 36, 112, 67, 10, 199, 44, 20, 130, 60, 226, 197, 48, 15,
-			6, 65, 88, 83, 119, 0, 0, 9, 198, 8, 18, 143, 56, 85, 0, 67, 5, 194, 5, 48, 15, 0, 0, 9, 198, 28, 145, 67, 32, 83,
-			0, 15, 0, 7, 196, 104, 85, 5, 48, 15, 7, 196, 44, 85, 5, 48, 15, 13, 68, 28, 84, 197, 48, 100, 119, 89, 13, 55, 0, 15,
-			8, 197, 13, 84, 150, 21, 48, 16, 12, 1, 92, 71, 6, 111, 49, 89, 55, 111, 91, 0, 6, 65, 92, 84, 119, 0, 0, 6, 195, 84,
-			145, 82, 15, 0, 0, 21, 72, 60, 225, 193, 77, 69, 146, 36, 160, 113, 50, 100, 116, 89, 47, 84, 34, 6, 123, 0, 0, 12, 68, 77,
-			82, 133, 80, 89, 109, 90, 6, 111, 0, 9, 68, 64, 21, 3, 32, 21, 0, 47, 7, 65, 96, 108, 49, 89, 0, 0, 15, 70, 40, 16,
-			209, 84, 85, 0, 90, 35, 49, 6, 111, 47, 0, 0, 0, 0, 5, 65, 100, 123, 0, 0, 0, 0, 18, 71, 92, 84, 212, 20, 194, 74,
-			44, 85, 111, 89, 47, 13, 55, 13, 49, 0, 9, 198, 77, 4, 143, 44, 177, 76, 15, 9, 198, 76, 210, 69, 77, 1, 76, 15, 9, 198,
-			81, 34, 65, 56, 113, 76, 15, 0, 7, 65, 104, 88, 111, 47, 0, 0, 8, 197, 28, 85, 201, 48, 64, 72, 0, 6, 195, 92, 20, 192,
-			15, 10, 199, 88, 243, 23, 5, 52, 197, 56, 15, 7, 195, 92, 20, 192, 72, 46, 0, 9, 198, 76, 50, 15, 24, 97, 76, 15, 0, 0,
-			8, 197, 8, 241, 77, 20, 192, 15, 8, 197, 28, 19, 77, 20, 192, 15, 6, 195, 61, 1, 78, 15, 12, 71, 52, 147, 11, 76, 128, 75,
-			20, 21, 0, 47, 0, 0, 8, 197, 92, 244, 132, 20, 224, 72, 0, 0, 8, 66, 12, 16, 49, 115, 0, 25, 0, 0, 0, 0, 0, 18,
-			69, 84, 37, 78, 81, 80, 40, 12, 6, 71, 40, 12, 50, 47, 40, 12, 0, 18, 4, 95, 48, 67, 111, 107, 6, 113, 50, 72, 111, 34,
-			47, 89, 47, 13, 0, 0, 9, 198, 88, 84, 132, 21, 35, 208, 67, 9, 198, 105, 112, 67, 33, 65, 76, 15, 9, 198, 44, 229, 80, 64,
-			83, 0, 15, 9, 198, 29, 33, 80, 64, 83, 0, 15, 8, 197, 48, 146, 141, 21, 32, 15, 0, 9, 198, 88, 195, 212, 80, 84, 128, 15,
-			9, 198, 76, 229, 71, 28, 84, 128, 15, 9, 198, 76, 227, 212, 80, 84, 128, 15, 9, 198, 76, 209, 76, 80, 84, 128, 15, 9, 198, 76,
-			194, 75, 44, 84, 128, 15, 9, 198, 76, 177, 76, 80, 84, 128, 15, 9, 198, 76, 50, 5, 52, 84, 128, 15, 9, 198, 65, 37, 76, 48,
-			84, 128, 15, 9, 198, 24, 195, 212, 80, 84, 128, 15, 9, 198, 24, 195, 196, 16, 84, 128, 15, 9, 198, 17, 32, 77, 52, 84, 128, 15,
-			9, 198, 9, 35, 197, 16, 84, 128, 15, 8, 197, 104, 242, 69, 81, 48, 66, 0, 0, 6, 195, 52, 84, 192, 15, 7, 196, 104, 85, 133,
-			72, 15, 7, 196, 48, 85, 133, 72, 15, 7, 196, 21, 33, 197, 72, 15, 7, 196, 16, 21, 133, 72, 15, 0, 11, 200, 92, 19, 147, 12,
-			128, 80, 20, 224, 66, 9, 198, 105, 114, 74, 52, 83, 0, 15, 9, 68, 76, 149, 5, 76, 21, 0, 47, 0, 13, 68, 5, 4, 137, 48,
-			115, 48, 34, 6, 108, 55, 0, 0, 8, 197, 52, 243, 77, 20, 192, 15, 0, 12, 68, 56, 16, 137, 40, 50, 35, 71, 6, 123, 0, 0,
-			8, 197, 44, 243, 132, 20, 224, 72, 22, 67, 56, 145, 84, 10, 50, 6, 37, 47, 15, 65, 4, 119, 34, 0, 81, 109, 101, 101, 114, 32,
-			11, 67, 56, 145, 84, 50, 4, 37, 47, 0, 9, 10, 67, 104, 144, 200, 88, 2, 108, 101, 0, 13, 4, 95, 116, 108, 100, 47, 6, 108,
-			55, 72, 13, 0, 0, 0, 8, 197, 44, 227, 203, 20, 192, 15, 8, 197, 29, 37, 87, 20, 192, 15, 0, 0, 8, 197, 32, 80, 130, 20,
-			224, 72, 0, 9, 198, 4, 211, 210, 21, 69, 5, 67, 0, 0, 10, 199, 44, 19, 5, 24, 21, 5, 72, 15, 0, 0, 0, 0, 0, 9,
-			198, 77, 68, 149, 36, 177, 76, 15, 0, 16, 70, 64, 148, 212, 4, 50, 5, 48, 37, 89, 47, 6, 116, 91, 0, 0, 8, 197, 72, 243,
-			77, 20, 192, 15, 8, 197, 32, 243, 77, 20, 192, 15, 0, 7, 196, 72, 81, 5, 56, 15, 0, 0, 0, 8, 197, 36, 164, 211, 20, 192,
-			15, 8, 197, 92, 145, 71, 20, 192, 15, 8, 197, 64, 241, 75, 20, 192, 15, 8, 197, 61, 32, 75, 20, 192, 15, 8, 197, 40, 241, 75,
-			20, 192, 15, 8, 197, 8, 85, 71, 20, 192, 15, 8, 197, 45, 33, 71, 20, 192, 15, 5, 194, 8, 80, 13, 0, 0, 0, 9, 198, 17,
-			147, 129, 77, 66, 69, 67, 0, 0, 7, 195, 16, 21, 0, 72, 8, 6, 195, 16, 21, 0, 72, 0, 9, 198, 88, 243, 210, 16, 81, 76,
-			65, 11, 68, 4, 195, 5, 76, 116, 55, 13, 89, 0, 13, 68, 4, 193, 21, 76, 116, 55, 72, 6, 110, 89, 0, 9, 198, 77, 66, 74,
-			25, 49, 76, 15, 9, 198, 77, 4, 129, 56, 177, 76, 15, 9, 198, 76, 50, 15, 52, 209, 76, 15, 7, 195, 92, 19, 148, 72, 8, 0,
-			9, 198, 60, 181, 15, 8, 84, 128, 66, 21, 72, 8, 194, 84, 104, 180, 137, 20, 112, 71, 55, 108, 47, 89, 49, 34, 37, 12, 81, 0,
-			9, 198, 88, 195, 203, 44, 84, 128, 15, 9, 198, 88, 194, 69, 28, 84, 128, 15, 9, 198, 77, 68, 143, 64, 84, 128, 15, 9, 198, 77,
-			67, 198, 24, 84, 128, 15, 9, 198, 77, 2, 74, 44, 84, 128, 15, 9, 198, 76, 195, 205, 52, 84, 128, 15, 9, 198, 76, 195, 197, 8,
-			84, 128, 15, 9, 198, 76, 194, 78, 28, 84, 128, 15, 9, 198, 76, 194, 74, 52, 84, 128, 15, 9, 198, 76, 193, 78, 80, 84, 128, 15,
-			9, 198, 76, 177, 69, 48, 84, 128, 15, 9, 198, 76, 163, 203, 44, 84, 128, 15, 9, 198, 65, 37, 73, 48, 84, 128, 15, 9, 198, 65,
-			35, 208, 64, 84, 128, 15, 9, 198, 64, 197, 78, 16, 84, 128, 15, 9, 198, 64, 192, 75, 44, 84, 128, 15, 9, 198, 64, 145, 78, 80,
-			84, 128, 15, 9, 198, 64, 19, 148, 76, 84, 128, 15, 9, 198, 52, 243, 147, 80, 84, 128, 15, 9, 198, 52, 81, 82, 16, 84, 128, 15,
-			9, 198, 52, 80, 78, 16, 84, 128, 15, 9, 198, 49, 81, 213, 8, 84, 128, 15, 9, 198, 45, 114, 74, 48, 84, 128, 15, 9, 198, 45,
-			112, 83, 80, 84, 128, 15, 9, 198, 44, 226, 75, 44, 84, 128, 15, 9, 198, 44, 224, 80, 64, 84, 128, 15, 9, 198, 44, 197, 73, 80,
-			84, 128, 15, 9, 198, 44, 195, 206, 80, 84, 128, 15, 9, 198, 44, 194, 69, 16, 84, 128, 15, 9, 198, 44, 193, 70, 24, 84, 128, 15,
-			9, 198, 44, 192, 80, 64, 84, 128, 15, 9, 198, 36, 226, 193, 16, 84, 128, 15, 9, 198, 29, 35, 206, 16, 84, 128, 15, 9, 198, 29,
-			34, 69, 56, 84, 128, 15, 9, 198, 28, 194, 77, 52, 84, 128, 15, 9, 198, 24, 195, 206, 44, 84, 128, 15, 17, 70, 24, 194, 82, 80,
-			84, 128, 83, 55, 110, 34, 47, 13, 34, 0, 15, 9, 198, 24, 194, 78, 80, 84, 128, 15, 9, 198, 24, 194, 75, 44, 84, 128, 15, 9,
-			198, 17, 37, 73, 48, 84, 128, 15, 9, 198, 12, 128, 82, 80, 84, 128, 15, 9, 198, 8, 194, 75, 44, 84, 128, 15, 9, 198, 8, 81,
-			78, 16, 84, 128, 15, 9, 198, 92, 19, 142, 20, 84, 128, 8, 0, 0, 7, 196, 92, 21, 5, 72, 15, 7, 196, 76, 81, 5, 72, 15,
-			7, 196, 48, 81, 197, 72, 15, 7, 196, 48, 17, 197, 72, 15, 7, 196, 28, 17, 5, 72, 15, 7, 196, 21, 69, 5, 72, 15, 0, 9,
-			198, 77, 68, 143, 53, 1, 76, 15, 9, 198, 44, 20, 9, 81, 65, 76, 15, 9, 198, 5, 3, 211, 80, 83, 0, 15, 17, 70, 40, 20,
-			146, 21, 65, 76, 90, 35, 34, 13, 47, 6, 111, 55, 0, 0, 0, 29, 75, 20, 193, 147, 80, 81, 5, 57, 67, 195, 33, 64, 4, 111,
-			55, 83, 6, 89, 47, 119, 72, 13, 50, 47, 39, 100, 47, 0, 8, 197, 92, 145, 77, 20, 192, 15, 8, 197, 77, 64, 77, 20, 192, 15,
-			8, 197, 72, 19, 77, 20, 192, 15, 8, 197, 64, 145, 77, 20, 192, 15, 0, 7, 196, 104, 85, 5, 56, 15, 0, 13, 69, 105, 82, 68,
-			20, 224, 88, 124, 72, 13, 50, 0, 0, 0, 14, 69, 16, 85, 1, 36, 192, 72, 119, 47, 6, 116, 57, 0, 8, 197, 80, 85, 71, 20,
-			192, 15, 8, 197, 44, 20, 19, 20, 192, 15, 8, 197, 33, 84, 211, 20, 192, 15, 8, 197, 45, 33, 75, 20, 192, 15, 8, 197, 32, 82,
-			75, 20, 192, 15, 9, 198, 64, 21, 18, 36, 245, 0, 67, 0, 10, 199, 76, 50, 18, 60, 82, 69, 72, 15, 10, 199, 20, 84, 135, 37,
-			53, 5, 72, 15, 0, 8, 197, 45, 83, 142, 20, 224, 72, 0, 0, 11, 68, 52, 148, 211, 20, 65, 108, 89, 13, 0, 0, 10, 199, 92,
-			81, 215, 36, 166, 133, 72, 15, 0, 9, 198, 53, 84, 197, 81, 65, 64, 66, 9, 198, 44, 242, 197, 81, 65, 64, 66, 0, 24, 73, 8,
-			245, 82, 28, 243, 132, 36, 84, 128, 71, 40, 34, 101, 6, 122, 50, 72, 37, 12, 13, 34, 0, 0, 7, 196, 89, 32, 71, 20, 15, 0,
-			0, 0, 9, 197, 104, 243, 1, 56, 112, 66, 8, 0, 0, 0, 0, 11, 67, 12, 17, 133, 49, 115, 83, 6, 119, 0, 0, 13, 69, 16,
-			145, 83, 20, 192, 72, 37, 88, 13, 55, 0, 8, 197, 77, 82, 203, 20, 192, 15, 8, 197, 72, 149, 19, 20, 192, 15, 6, 195, 104, 146,
-			142, 72, 6, 195, 104, 146, 142, 72, 0, 0, 9, 4, 95, 111, 114, 100, 72, 13, 0, 0, 0, 8, 197, 53, 84, 203, 21, 64, 66, 8,
-			197, 8, 241, 75, 21, 64, 66, 15, 4, 95, 109, 99, 110, 65, 6, 116, 49, 14, 16, 113, 50, 0, 0, 14, 67, 20, 230, 128, 111, 50,
-			88, 122, 84, 122, 34, 47, 0, 0, 9, 198, 105, 113, 78, 28, 83, 0, 15, 9, 198, 77, 68, 137, 8, 33, 76, 15, 17, 70, 76, 52,
-			129, 8, 33, 76, 89, 49, 34, 111, 71, 13, 55, 0, 15, 9, 198, 45, 112, 78, 76, 83, 0, 15, 9, 198, 9, 32, 66, 8, 83, 0,
-			15, 9, 198, 45, 33, 85, 64, 83, 0, 15, 8, 197, 76, 197, 73, 21, 32, 15, 8, 197, 52, 146, 141, 21, 32, 15, 8, 197, 44, 241,
-			84, 21, 32, 15, 8, 197, 24, 193, 77, 21, 32, 15, 0, 9, 198, 105, 112, 78, 28, 84, 128, 15, 9, 198, 81, 114, 84, 80, 84, 128,
-			15, 9, 198, 81, 33, 75, 44, 84, 128, 15, 9, 198, 77, 69, 77, 64, 84, 128, 15, 9, 198, 77, 67, 212, 80, 84, 128, 15, 9, 198,
-			77, 65, 75, 44, 84, 128, 15, 9, 198, 77, 65, 73, 28, 84, 128, 15, 9, 198, 77, 64, 75, 44, 84, 128, 15, 9, 198, 76, 195, 194,
-			8, 84, 128, 15, 9, 198, 76, 194, 74, 44, 84, 128, 15, 9, 198, 76, 194, 66, 8, 84, 128, 15, 9, 198, 72, 243, 211, 80, 84, 128,
-			15, 9, 198, 65, 35, 212, 76, 84, 128, 15, 9, 198, 57, 80, 200, 80, 84, 128, 15, 9, 198, 44, 244, 147, 80, 84, 128, 15, 9, 198,
-			32, 19, 83, 80, 84, 128, 15, 9, 198, 29, 34, 69, 64, 84, 128, 15, 9, 198, 28, 195, 197, 36, 84, 128, 15, 9, 198, 28, 194, 66,
-			8, 84, 128, 15, 9, 198, 17, 114, 78, 28, 84, 128, 15, 9, 198, 17, 33, 75, 44, 84, 128, 15, 9, 198, 17, 33, 73, 56, 84, 128,
-			15, 9, 198, 9, 35, 197, 36, 84, 128, 15, 9, 198, 8, 243, 19, 80, 84, 128, 15, 9, 198, 8, 197, 70, 24, 84, 128, 15, 0, 11,
-			200, 92, 19, 140, 84, 145, 5, 56, 64, 66, 0, 0, 9, 198, 28, 226, 70, 24, 83, 0, 15, 9, 198, 21, 2, 83, 80, 83, 0, 15,
-			8, 197, 76, 18, 203, 21, 32, 15, 8, 197, 64, 192, 71, 21, 32, 15, 8, 197, 64, 146, 203, 21, 32, 15, 8, 197, 44, 144, 203, 21,
-			32, 15, 8, 197, 32, 244, 139, 21, 32, 15, 8, 197, 32, 19, 135, 21, 32, 15, 0, 0, 8, 197, 16, 243, 77, 20, 192, 15, 0, 21,
-			72, 4, 48, 197, 77, 51, 201, 72, 80, 35, 49, 89, 111, 89, 58, 6, 35, 34, 13, 0, 0, 0, 0, 8, 197, 92, 148, 211, 20, 192,
-			15, 8, 197, 33, 85, 19, 20, 192, 15, 8, 197, 9, 84, 211, 20, 192, 15, 8, 197, 77, 65, 75, 20, 192, 15, 8, 197, 65, 82, 203,
-			20, 192, 15, 8, 197, 32, 241, 87, 20, 192, 8, 0, 0, 0, 0, 0, 13, 72, 20, 229, 5, 73, 4, 137, 76, 80, 21, 0, 47, 0,
-			16, 70, 104, 83, 26, 5, 65, 64, 88, 36, 55, 88, 35, 47, 13, 0, 11, 70, 52, 19, 23, 5, 33, 64, 21, 0, 47, 0, 18, 71,
-			4, 53, 9, 21, 5, 78, 80, 116, 49, 89, 37, 48, 110, 50, 47, 0, 0, 12, 68, 52, 20, 135, 20, 65, 116, 34, 90, 13, 0, 7,
-			66, 21, 32, 13, 34, 0, 0, 7, 195, 16, 145, 64, 72, 28, 0, 0, 0, 0, 0, 0, 0, 15, 66, 16, 80, 72, 13, 15, 119, 50,
-			0, 81, 101, 101, 110, 32, 7, 66, 16, 80, 72, 13, 0, 0, 0, 0, 9, 3, 109, 39, 110, 65, 13, 50, 0, 0, 14, 69, 9, 81,
-			7, 21, 64, 71, 110, 75, 6, 111, 47, 0, 8, 197, 24, 19, 19, 21, 64, 66, 15, 69, 12, 195, 211, 21, 64, 49, 55, 122, 88, 6,
-			111, 47, 0, 0, 11, 200, 36, 225, 143, 72, 208, 84, 36, 80, 67, 0, 8, 197, 88, 193, 73, 21, 32, 15, 8, 197, 57, 83, 77, 21,
-			32, 15, 8, 197, 49, 82, 77, 21, 32, 15, 8, 197, 17, 35, 205, 21, 32, 15, 0, 10, 67, 41, 84, 153, 90, 109, 34, 37, 0, 0,
-			5, 194, 21, 48, 15, 0, 0, 9, 198, 8, 146, 154, 36, 83, 132, 66, 8, 197, 104, 18, 203, 21, 32, 15, 8, 197, 92, 18, 203, 21,
-			32, 15, 8, 197, 77, 3, 203, 21, 32, 15, 8, 197, 64, 242, 203, 21, 32, 15, 8, 197, 52, 82, 203, 21, 32, 15, 8, 197, 48, 82,
-			203, 21, 32, 15, 8, 197, 44, 192, 71, 21, 32, 15, 8, 197, 44, 18, 203, 21, 32, 15, 8, 197, 40, 19, 139, 21, 32, 15, 8, 197,
-			40, 18, 203, 21, 32, 15, 8, 197, 33, 83, 139, 21, 32, 15, 8, 197, 32, 243, 135, 21, 32, 15, 8, 197, 32, 242, 203, 21, 32, 15,
-			8, 197, 32, 146, 203, 21, 32, 15, 8, 197, 32, 146, 135, 21, 32, 15, 8, 197, 9, 83, 139, 21, 32, 15, 8, 197, 8, 243, 139, 21,
-			32, 15, 8, 197, 8, 17, 199, 21, 32, 15, 14, 69, 104, 245, 193, 5, 32, 88, 122, 85, 6, 115, 34, 0, 0, 0, 0, 0, 0, 0,
-			22, 66, 4, 192, 116, 55, 9, 49, 6, 116, 57, 72, 116, 0, 44, 81, 113, 97, 101, 100, 97, 32, 0, 0, 0, 0, 0, 22, 72, 29,
-			32, 86, 20, 226, 1, 28, 80, 100, 34, 115, 84, 13, 50, 107, 6, 115, 100, 13, 0, 0, 12, 68, 28, 83, 9, 28, 100, 119, 55, 13,
-			100, 0, 0, 0, 22, 73, 9, 82, 84, 20, 228, 200, 84, 148, 192, 71, 124, 47, 13, 50, 89, 107, 6, 124, 89, 0, 22, 73, 8, 147,
-			142, 20, 228, 200, 84, 148, 192, 71, 108, 50, 13, 50, 89, 107, 6, 124, 89, 0, 9, 198, 12, 132, 137, 77, 65, 78, 15, 7, 196, 92,
-			147, 4, 20, 72, 0, 8, 197, 61, 3, 1, 28, 80, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 92, 147, 20, 72, 0, 0,
-			8, 197, 21, 66, 75, 21, 64, 67, 8, 197, 9, 34, 75, 21, 64, 66, 11, 70, 4, 225, 18, 60, 145, 0, 21, 0, 47, 0, 12, 201,
-			60, 225, 197, 72, 145, 70, 48, 146, 139, 67, 0, 9, 198, 9, 37, 83, 76, 83, 0, 15, 9, 198, 45, 112, 75, 44, 83, 0, 15, 9,
-			198, 29, 34, 69, 104, 83, 0, 15, 8, 197, 52, 20, 141, 21, 32, 15, 8, 197, 104, 246, 133, 21, 32, 66, 0, 0, 10, 199, 77, 3,
-			210, 80, 145, 86, 20, 66, 10, 66, 21, 80, 119, 10, 109, 12, 0, 13, 0, 7, 196, 80, 245, 133, 72, 15, 7, 196, 44, 21, 133, 72,
-			15, 7, 196, 20, 229, 5, 72, 15, 0, 9, 198, 77, 66, 69, 24, 83, 0, 15, 9, 198, 45, 34, 69, 8, 83, 0, 15, 8, 197, 104,
-			19, 135, 21, 32, 15, 8, 197, 88, 147, 135, 21, 32, 15, 8, 197, 80, 83, 135, 21, 32, 15, 8, 197, 77, 82, 75, 21, 32, 15, 8,
-			197, 76, 224, 75, 21, 32, 15, 8, 197, 44, 84, 139, 21, 32, 15, 8, 197, 44, 19, 139, 21, 32, 15, 8, 197, 40, 243, 135, 21, 32,
-			15, 8, 197, 32, 20, 139, 21, 32, 15, 8, 197, 16, 243, 139, 21, 32, 15, 8, 197, 8, 192, 75, 21, 32, 15, 0, 0, 18, 70, 92,
-			84, 133, 48, 65, 78, 85, 108, 12, 34, 13, 55, 72, 13, 50, 0, 0, 14, 68, 8, 84, 137, 56, 71, 108, 12, 34, 6, 108, 50, 0,
-			0, 0, 0, 0, 0, 0, 9, 198, 56, 17, 18, 84, 178, 197, 66, 12, 68, 8, 84, 212, 20, 71, 111, 89, 47, 13, 0, 0, 8, 197,
-			65, 33, 77, 36, 80, 65, 0, 0, 0, 0, 8, 197, 52, 148, 211, 36, 80, 65, 0, 0, 0, 10, 199, 52, 241, 9, 56, 85, 20, 20,
-			67, 0, 8, 197, 49, 144, 197, 84, 208, 15, 11, 200, 92, 20, 211, 21, 33, 84, 80, 80, 67, 20, 72, 12, 128, 77, 9, 33, 84, 80,
-			80, 91, 35, 65, 71, 34, 6, 111, 47, 13, 0, 0, 0, 12, 67, 8, 82, 1, 71, 119, 10, 107, 6, 115, 0, 0, 0, 0, 9, 198,
-			40, 19, 149, 5, 34, 64, 67, 10, 68, 12, 129, 67, 44, 76, 111, 49, 0, 0, 18, 70, 8, 16, 212, 21, 34, 69, 71, 116, 49, 47,
-			6, 108, 12, 34, 37, 0, 0, 9, 198, 52, 148, 196, 73, 82, 192, 65, 0, 6, 195, 16, 149, 0, 72, 0, 9, 198, 17, 112, 82, 72,
-			83, 0, 15, 11, 70, 52, 81, 9, 12, 19, 0, 21, 0, 47, 0, 7, 196, 72, 242, 197, 72, 15, 9, 67, 32, 146, 128, 107, 2, 123,
-			0, 0, 9, 198, 76, 50, 1, 88, 245, 0, 66, 16, 70, 12, 245, 80, 48, 85, 0, 49, 40, 48, 55, 6, 111, 47, 0, 16, 70, 52,
-			19, 131, 32, 85, 0, 65, 116, 50, 91, 6, 111, 47, 0, 15, 70, 13, 35, 195, 32, 85, 0, 49, 34, 113, 91, 6, 111, 0, 0, 0,
-			0, 7, 196, 80, 21, 5, 72, 15, 7, 196, 64, 84, 5, 72, 15, 7, 196, 44, 244, 5, 72, 15, 7, 196, 8, 85, 5, 72, 15, 0,
-			0, 0, 0, 7, 195, 8, 83, 128, 72, 46, 0, 0, 24, 73, 16, 145, 148, 60, 225, 197, 72, 147, 135, 72, 108, 83, 47, 4, 113, 68,
-			6, 119, 34, 108, 68, 0, 0, 0, 0, 0, 0, 0, 12, 201, 92, 19, 148, 72, 245, 87, 20, 225, 0, 66, 9, 198, 41, 80, 137, 48,
-			85, 77, 15, 0, 23, 67, 88, 243, 132, 84, 113, 50, 10, 47, 116, 10, 47, 13, 0, 82, 100, 97, 116, 32, 100, 101, 32, 0, 17, 71,
-			72, 240, 200, 20, 99, 210, 80, 34, 39, 91, 6, 83, 39, 34, 0, 0, 0, 0, 0, 7, 196, 88, 241, 197, 48, 15, 7, 196, 80, 81,
-			197, 48, 15, 7, 196, 56, 17, 197, 48, 15, 7, 196, 44, 81, 197, 48, 15, 7, 196, 32, 17, 197, 48, 15, 7, 196, 36, 161, 5, 48,
-			15, 0, 0, 0, 0, 11, 200, 52, 148, 211, 37, 52, 201, 64, 144, 67, 6, 195, 9, 33, 83, 15, 0, 8, 197, 52, 85, 19, 20, 192,
-			15, 7, 66, 28, 80, 100, 13, 0, 0, 0, 0, 7, 196, 8, 20, 133, 80, 66, 9, 198, 48, 243, 195, 32, 83, 128, 15, 0, 9, 198,
-			76, 224, 66, 8, 83, 0, 15, 9, 198, 76, 163, 197, 52, 83, 0, 15, 9, 198, 44, 224, 66, 8, 83, 0, 15, 9, 198, 29, 32, 66,
-			8, 83, 0, 15, 9, 198, 28, 243, 195, 32, 83, 0, 15, 9, 198, 17, 33, 85, 80, 83, 0, 15, 0, 0, 6, 195, 32, 80, 148, 72,
-			0, 10, 199, 56, 17, 5, 72, 128, 78, 16, 67, 17, 70, 16, 85, 197, 88, 84, 128, 72, 13, 6, 85, 119, 84, 13, 34, 0, 16, 70,
-			8, 245, 68, 60, 148, 128, 71, 40, 72, 58, 6, 115, 34, 0, 9, 198, 76, 195, 203, 44, 84, 128, 15, 9, 198, 76, 194, 68, 16, 84,
-			128, 15, 9, 198, 56, 144, 200, 80, 84, 128, 15, 9, 198, 44, 193, 68, 16, 84, 128, 15, 9, 198, 9, 32, 76, 48, 84, 128, 15, 9,
-			198, 77, 65, 76, 48, 84, 128, 15, 0, 9, 198, 77, 65, 67, 32, 83, 0, 15, 9, 198, 44, 226, 66, 8, 83, 0, 15, 9, 198, 25,
-			35, 205, 52, 83, 0, 15, 9, 198, 76, 50, 5, 16, 83, 0, 15, 8, 196, 12, 128, 79, 76, 15, 65, 0, 8, 197, 52, 20, 135, 21,
-			48, 16, 0, 10, 198, 28, 85, 197, 21, 53, 0, 72, 46, 0, 7, 196, 56, 85, 133, 48, 15, 7, 196, 44, 85, 133, 48, 15, 7, 196,
-			56, 21, 133, 48, 15, 0, 0, 11, 200, 52, 148, 214, 5, 69, 9, 56, 112, 65, 0, 0, 0, 0, 0, 12, 68, 76, 84, 137, 20, 89,
-			108, 12, 34, 37, 0, 0, 7, 196, 28, 82, 1, 16, 72, 0, 12, 201, 28, 83, 9, 40, 178, 5, 8, 33, 82, 15, 0, 0, 15, 70,
-			48, 21, 82, 20, 229, 0, 55, 122, 34, 6, 116, 67, 0, 13, 68, 88, 84, 147, 4, 84, 6, 111, 34, 88, 115, 0, 0, 6, 195, 104,
-			246, 143, 66, 0, 0, 16, 3, 226, 130, 172, 6, 121, 16, 122, 47, 4, 119, 49, 13, 50, 0, 0, 18, 71, 4, 211, 213, 72, 85, 20,
-			20, 115, 65, 40, 16, 6, 111, 47, 13, 0, 0, 7, 196, 72, 241, 5, 48, 15, 7, 196, 40, 241, 5, 48, 15, 7, 196, 4, 225, 197,
-			48, 15, 0, 0, 22, 73, 64, 244, 148, 20, 97, 85, 36, 195, 5, 48, 113, 34, 47, 13, 83, 6, 13, 57, 13, 0, 0, 26, 74, 84,
-			197, 18, 5, 98, 79, 48, 85, 20, 20, 110, 55, 47, 34, 115, 84, 37, 122, 55, 6, 111, 47, 13, 0, 0, 6, 195, 40, 245, 87, 72,
-			0, 0, 19, 72, 56, 243, 210, 16, 83, 9, 40, 176, 50, 122, 34, 72, 13, 55, 13, 49, 0, 0, 9, 198, 12, 16, 137, 56, 85, 0,
-			67, 0, 7, 196, 52, 245, 5, 80, 66, 9, 198, 81, 35, 203, 44, 83, 128, 15, 7, 196, 104, 241, 1, 80, 66, 17, 67, 32, 85, 0,
-			107, 13, 47, 15, 119, 50, 0, 81, 101, 101, 110, 32, 10, 67, 32, 85, 0, 107, 13, 47, 0, 46, 14, 4, 95, 111, 103, 111, 6, 122,
-			101, 122, 50, 111, 49, 0, 0, 16, 205, 64, 20, 148, 36, 165, 143, 61, 38, 137, 81, 65, 82, 76, 66, 9, 198, 45, 35, 197, 104, 83,
-			0, 15, 9, 198, 44, 194, 78, 28, 83, 0, 15, 0, 9, 198, 5, 66, 5, 56, 85, 77, 15, 0, 11, 67, 17, 81, 84, 72, 109, 6,
-			111, 47, 0, 9, 198, 44, 16, 137, 56, 85, 0, 67, 0, 7, 196, 72, 246, 133, 80, 66, 7, 196, 72, 18, 197, 80, 66, 7, 196, 44,
-			242, 197, 80, 66, 0, 11, 200, 36, 225, 210, 36, 164, 5, 56, 64, 66, 9, 198, 17, 35, 208, 64, 83, 0, 15, 9, 198, 77, 67, 208,
-			64, 83, 0, 15, 9, 198, 45, 34, 69, 28, 83, 0, 15, 6, 194, 37, 48, 72, 46, 0, 0, 9, 198, 77, 68, 133, 56, 113, 76, 15,
-			0, 11, 68, 49, 83, 131, 32, 55, 110, 50, 91, 0, 7, 196, 80, 149, 5, 48, 15, 7, 196, 56, 85, 5, 48, 15, 7, 196, 17, 85,
-			133, 48, 15, 7, 196, 52, 85, 5, 48, 15, 0, 0, 0, 0, 0, 7, 196, 4, 210, 78, 60, 65, 6, 195, 52, 146, 142, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 14, 4, 95, 98, 114, 118, 71, 14, 16, 6, 119, 84, 13, 0, 0, 8, 67, 56, 85, 192, 50, 127, 0, 9,
-			198, 12, 243, 148, 72, 243, 5, 66, 0, 0, 0, 8, 197, 53, 84, 141, 20, 192, 15, 18, 4, 95, 97, 99, 50, 72, 6, 110, 71, 111,
-			55, 6, 115, 37, 101, 109, 0, 0, 7, 196, 60, 81, 133, 56, 15, 0, 0, 0, 8, 197, 56, 20, 193, 4, 192, 66, 8, 197, 76, 145,
-			80, 20, 192, 15, 8, 197, 72, 147, 139, 20, 192, 15, 8, 197, 32, 18, 211, 20, 192, 15, 8, 197, 12, 148, 139, 20, 192, 15, 0, 0,
-			0, 9, 198, 52, 240, 200, 80, 83, 128, 72, 7, 196, 57, 81, 1, 80, 8, 0, 9, 198, 44, 227, 203, 44, 83, 0, 15, 0, 12, 68,
-			16, 147, 133, 72, 72, 37, 50, 6, 119, 0, 0, 0, 9, 198, 105, 112, 66, 8, 84, 128, 15, 9, 198, 92, 81, 76, 16, 84, 128, 15,
-			9, 198, 77, 5, 84, 80, 84, 128, 15, 9, 198, 77, 1, 84, 80, 84, 128, 15, 9, 198, 44, 193, 85, 52, 84, 128, 15, 9, 198, 44,
-			193, 84, 76, 84, 128, 15, 0, 0, 8, 197, 65, 35, 195, 21, 48, 66, 13, 68, 12, 245, 133, 72, 49, 110, 84, 13, 34, 0, 15, 0,
-			0, 9, 198, 52, 148, 194, 73, 82, 75, 65, 18, 71, 48, 81, 83, 72, 81, 197, 48, 55, 119, 89, 34, 119, 100, 13, 55, 0, 11, 199,
-			72, 81, 5, 44, 21, 133, 48, 15, 65, 0, 0, 8, 196, 92, 20, 133, 56, 72, 46, 0, 0, 7, 196, 92, 83, 69, 48, 15, 0, 8,
-			197, 56, 21, 143, 20, 192, 66, 8, 197, 80, 147, 135, 20, 192, 15, 8, 197, 52, 84, 135, 20, 192, 15, 8, 197, 44, 243, 139, 20, 192,
-			15, 8, 197, 28, 244, 135, 20, 192, 15, 8, 197, 52, 242, 203, 20, 192, 15, 6, 194, 20, 224, 72, 8, 0, 13, 3, 95, 51, 88, 72,
-			6, 111, 34, 47, 13, 101, 0, 0, 11, 68, 88, 84, 146, 20, 84, 111, 34, 13, 0, 23, 73, 4, 48, 197, 77, 51, 201, 72, 84, 192,
-			35, 49, 89, 111, 89, 58, 6, 35, 34, 13, 89, 0, 9, 198, 44, 192, 82, 36, 225, 84, 67, 14, 3, 95, 48, 67, 107, 6, 113, 50,
-			72, 13, 34, 47, 0, 0, 0, 8, 197, 104, 241, 207, 20, 64, 66, 0, 0, 6, 195, 92, 84, 132, 72, 0, 0, 0, 0, 0, 0, 8,
-			197, 53, 83, 77, 20, 192, 15, 8, 197, 49, 83, 77, 20, 192, 15, 8, 197, 45, 83, 77, 20, 192, 15, 0, 7, 196, 20, 97, 133, 56,
-			15, 0, 14, 69, 52, 85, 5, 20, 224, 65, 111, 47, 6, 119, 50, 0, 0, 6, 195, 25, 34, 83, 15, 0, 8, 197, 92, 19, 139, 20,
-			192, 15, 8, 197, 92, 18, 203, 20, 192, 15, 8, 197, 88, 193, 71, 20, 192, 15, 8, 197, 80, 147, 139, 20, 192, 15, 8, 197, 76, 146,
-			203, 20, 192, 15, 8, 197, 44, 147, 139, 20, 192, 15, 8, 197, 32, 18, 203, 20, 192, 15, 8, 197, 24, 243, 139, 20, 192, 15, 8, 197,
-			16, 148, 211, 20, 192, 15, 8, 197, 92, 242, 203, 20, 192, 15, 8, 197, 88, 83, 139, 20, 192, 15, 8, 197, 80, 80, 203, 20, 192, 15,
-			7, 66, 40, 80, 57, 13, 0, 15, 3, 95, 49, 57, 50, 6, 119, 100, 13, 50, 47, 37, 50, 0, 0, 22, 72, 16, 84, 207, 56, 64,
-			78, 45, 48, 72, 111, 89, 113, 50, 72, 6, 116, 68, 49, 89, 0, 12, 3, 95, 49, 56, 6, 116, 101, 47, 37, 50, 0, 0, 0, 0,
-			9, 198, 81, 33, 85, 104, 83, 0, 15, 9, 198, 45, 112, 66, 8, 83, 0, 15, 9, 198, 45, 33, 78, 28, 83, 0, 15, 9, 198, 44,
-			229, 84, 76, 83, 0, 15, 9, 198, 17, 37, 80, 64, 83, 0, 15, 0, 0, 9, 198, 64, 19, 70, 48, 85, 0, 66, 0, 9, 198, 105,
-			112, 77, 52, 84, 128, 15, 9, 198, 105, 112, 75, 44, 84, 128, 15, 9, 198, 104, 85, 82, 16, 84, 128, 15, 9, 198, 88, 194, 78, 16,
-			84, 128, 15, 9, 198, 88, 193, 75, 44, 84, 128, 15, 9, 198, 77, 67, 203, 44, 84, 128, 15, 9, 198, 76, 227, 197, 88, 84, 128, 15,
-			9, 198, 76, 226, 80, 64, 84, 128, 15, 9, 198, 76, 224, 85, 92, 84, 128, 15, 9, 198, 76, 197, 73, 52, 84, 128, 15, 9, 198, 76,
-			160, 67, 32, 84, 128, 15, 9, 198, 65, 82, 83, 80, 84, 128, 15, 9, 198, 65, 37, 84, 76, 84, 128, 15, 9, 198, 65, 35, 206, 44,
-			84, 128, 15, 9, 198, 64, 195, 197, 80, 84, 128, 15, 9, 198, 64, 19, 1, 88, 84, 128, 15, 9, 198, 49, 82, 83, 80, 84, 128, 15,
-			9, 198, 45, 33, 78, 80, 84, 128, 15, 9, 198, 45, 33, 78, 28, 84, 128, 15, 9, 198, 45, 32, 83, 76, 84, 128, 15, 9, 198, 45,
-			32, 65, 36, 84, 128, 15, 9, 198, 44, 241, 83, 80, 84, 128, 15, 9, 198, 44, 226, 83, 64, 84, 128, 15, 9, 198, 44, 226, 80, 64,
-			84, 128, 15, 9, 198, 44, 225, 85, 80, 84, 128, 15, 9, 198, 44, 193, 85, 80, 84, 128, 15, 9, 198, 44, 193, 80, 64, 84, 128, 15,
-			9, 198, 32, 241, 78, 16, 84, 128, 15, 9, 198, 32, 84, 143, 88, 84, 128, 15, 9, 198, 28, 197, 78, 16, 84, 128, 15, 9, 198, 24,
-			194, 80, 64, 84, 128, 15, 9, 198, 24, 192, 75, 44, 84, 128, 15, 9, 198, 17, 82, 83, 80, 84, 128, 15, 9, 198, 17, 32, 65, 36,
-			84, 128, 15, 9, 198, 12, 245, 78, 80, 84, 128, 15, 9, 198, 9, 35, 205, 52, 84, 128, 15, 9, 198, 9, 32, 78, 16, 84, 128, 15,
-			9, 198, 8, 197, 78, 16, 84, 128, 15, 9, 198, 8, 197, 66, 8, 84, 128, 15, 9, 198, 8, 197, 66, 8, 84, 128, 15, 0, 9, 198,
-			81, 114, 74, 24, 83, 0, 15, 9, 198, 76, 211, 203, 44, 83, 0, 15, 10, 3, 95, 49, 49, 6, 111, 55, 83, 0, 0, 7, 196, 44,
-			17, 5, 72, 15, 7, 196, 8, 245, 5, 72, 15, 10, 199, 8, 194, 75, 76, 83, 69, 56, 15, 10, 3, 95, 49, 48, 47, 6, 37, 50,
-			0, 0, 12, 68, 8, 85, 20, 100, 71, 111, 12, 47, 37, 0, 7, 196, 20, 227, 210, 52, 66, 14, 70, 12, 128, 83, 76, 148, 192, 91,
-			116, 89, 6, 37, 0, 13, 3, 95, 49, 51, 72, 6, 111, 34, 47, 37, 50, 0, 0, 10, 199, 77, 1, 75, 80, 18, 197, 48, 66, 19,
-			71, 52, 16, 84, 72, 81, 197, 48, 65, 115, 47, 34, 119, 100, 13, 55, 0, 16, 10, 199, 77, 1, 75, 80, 18, 197, 48, 15, 12, 3,
-			95, 49, 50, 47, 85, 6, 115, 55, 83, 0, 0, 8, 197, 65, 83, 77, 20, 192, 15, 8, 197, 52, 244, 141, 20, 192, 15, 8, 197, 104,
-			245, 133, 20, 192, 66, 13, 3, 95, 49, 53, 84, 6, 123, 83, 47, 37, 50, 0, 0, 11, 200, 89, 35, 213, 92, 83, 135, 20, 176, 17,
-			14, 3, 95, 49, 52, 83, 6, 108, 12, 34, 47, 37, 50, 0, 0, 9, 197, 56, 17, 9, 20, 224, 66, 46, 10, 199, 36, 225, 197, 88,
-			243, 7, 20, 67, 19, 71, 13, 84, 133, 81, 64, 71, 20, 49, 109, 34, 13, 47, 6, 115, 90, 13, 0, 15, 3, 95, 49, 55, 88, 6,
-			119, 84, 13, 50, 47, 37, 50, 0, 0, 8, 66, 136, 224, 111, 50, 0, 8, 13, 3, 95, 49, 54, 88, 6, 111, 89, 47, 37, 50, 0,
-			0, 15, 69, 36, 65, 65, 4, 192, 37, 72, 119, 57, 6, 115, 55, 0, 8, 197, 92, 146, 203, 20, 192, 15, 8, 197, 92, 17, 199, 20,
-			192, 15, 8, 197, 80, 242, 203, 20, 192, 15, 13, 69, 80, 16, 203, 20, 192, 47, 111, 49, 13, 55, 0, 8, 197, 72, 243, 147, 20, 192,
-			15, 8, 197, 72, 19, 147, 20, 192, 15, 8, 197, 64, 147, 139, 20, 192, 15, 8, 197, 52, 243, 139, 20, 192, 15, 8, 197, 52, 83, 135,
-			20, 192, 15, 8, 197, 33, 82, 75, 20, 192, 15, 8, 197, 16, 145, 199, 20, 192, 15, 8, 197, 8, 145, 199, 20, 192, 15, 8, 197, 76,
-			242, 203, 20, 192, 15, 8, 197, 44, 225, 75, 20, 192, 15, 0, 15, 3, 95, 55, 88, 88, 6, 119, 84, 13, 50, 47, 13, 101, 0, 0,
-			15, 69, 60, 49, 65, 4, 224, 122, 89, 119, 57, 6, 115, 50, 0, 13, 69, 52, 148, 211, 20, 224, 65, 108, 89, 13, 50, 0, 11, 68,
-			8, 82, 71, 20, 71, 111, 90, 13, 0, 0, 0, 13, 70, 48, 148, 197, 81, 65, 64, 21, 102, 114, 0, 47, 16, 70, 4, 53, 9, 21,
-			97, 64, 116, 49, 47, 6, 37, 84, 13, 0, 16, 70, 88, 81, 5, 81, 65, 64, 84, 13, 72, 6, 111, 47, 13, 0, 11, 70, 92, 80,
-			147, 37, 65, 64, 21, 0, 47, 9, 198, 8, 82, 1, 49, 97, 64, 8, 0, 0, 7, 196, 49, 32, 71, 20, 15, 7, 196, 17, 32, 71,
-			20, 15, 11, 200, 76, 241, 5, 52, 145, 84, 21, 32, 15, 13, 3, 95, 49, 111, 6, 108, 12, 34, 89, 47, 13, 0, 0, 0, 0, 8,
-			67, 76, 149, 5, 21, 0, 47, 0, 0, 0, 8, 197, 81, 82, 77, 20, 192, 15, 8, 197, 72, 146, 141, 20, 192, 15, 8, 197, 17, 82,
-			77, 20, 192, 15, 0, 13, 4, 95, 97, 99, 117, 6, 115, 37, 101, 4, 109, 0, 0, 12, 3, 95, 50, 111, 47, 85, 6, 119, 72, 13,
-			0, 0, 0, 8, 197, 64, 147, 135, 20, 192, 15, 8, 197, 40, 83, 135, 20, 192, 15, 8, 197, 32, 83, 135, 20, 192, 15, 8, 197, 24,
-			18, 203, 20, 192, 15, 8, 197, 17, 82, 75, 20, 192, 15, 8, 197, 9, 83, 135, 20, 192, 15, 8, 197, 8, 146, 203, 20, 192, 15, 8,
-			197, 8, 83, 135, 20, 192, 15, 8, 197, 80, 82, 203, 20, 192, 15, 8, 197, 16, 243, 135, 20, 192, 15, 0, 0, 10, 199, 81, 32, 86,
-			21, 53, 9, 20, 67, 9, 198, 44, 243, 80, 48, 245, 0, 66, 0, 9, 198, 52, 148, 203, 60, 244, 0, 65, 7, 196, 32, 81, 70, 80,
-			72, 0, 17, 71, 105, 82, 68, 20, 194, 74, 44, 88, 124, 72, 13, 55, 13, 49, 0, 9, 198, 76, 50, 15, 80, 83, 0, 15, 8, 197,
-			8, 19, 139, 21, 64, 66, 8, 197, 64, 147, 131, 21, 64, 66, 0, 21, 72, 44, 193, 73, 57, 161, 82, 36, 112, 49, 55, 123, 50, 88,
-			6, 119, 34, 13, 100, 0, 7, 196, 20, 211, 69, 72, 15, 0, 9, 198, 64, 244, 148, 72, 85, 0, 66, 8, 197, 52, 145, 90, 21, 32,
-			15, 8, 197, 44, 193, 86, 21, 32, 15, 7, 195, 8, 83, 148, 72, 46, 12, 3, 95, 51, 111, 72, 6, 111, 34, 72, 13, 0, 0, 11,
-			68, 76, 18, 78, 80, 21, 102, 114, 0, 47, 9, 198, 80, 82, 83, 80, 84, 128, 15, 9, 198, 77, 68, 133, 64, 84, 128, 15, 9, 198,
-			76, 227, 197, 64, 84, 128, 15, 9, 198, 52, 81, 83, 80, 84, 128, 15, 9, 198, 45, 113, 84, 80, 84, 128, 15, 9, 198, 45, 37, 73,
-			64, 84, 128, 15, 9, 198, 44, 227, 197, 36, 84, 128, 15, 9, 198, 44, 226, 83, 80, 84, 128, 15, 9, 198, 44, 226, 74, 64, 84, 128,
-			15, 9, 198, 44, 225, 84, 80, 84, 128, 15, 9, 198, 44, 194, 78, 44, 84, 128, 15, 9, 198, 28, 197, 73, 64, 84, 128, 15, 9, 198,
-			28, 194, 84, 80, 84, 128, 15, 9, 198, 28, 81, 83, 80, 84, 128, 15, 9, 198, 25, 34, 75, 44, 84, 128, 15, 9, 198, 24, 192, 68,
-			16, 84, 128, 15, 9, 198, 17, 33, 78, 104, 84, 128, 15, 9, 198, 12, 197, 83, 80, 84, 128, 15, 0, 9, 198, 45, 83, 147, 80, 83,
-			0, 15, 0, 7, 196, 61, 81, 5, 72, 15, 10, 69, 48, 20, 20, 61, 0, 21, 0, 47, 14, 3, 95, 50, 88, 47, 85, 6, 108, 50,
-			47, 13, 101, 0, 0, 8, 197, 92, 147, 4, 21, 32, 15, 8, 197, 88, 149, 20, 21, 32, 15, 8, 197, 72, 147, 12, 21, 32, 15, 8,
-			197, 72, 83, 12, 21, 32, 15, 8, 197, 44, 243, 4, 21, 32, 15, 8, 197, 44, 145, 80, 21, 32, 15, 8, 197, 44, 21, 20, 21, 32,
-			15, 8, 197, 32, 83, 4, 21, 32, 15, 8, 197, 17, 32, 68, 21, 32, 15, 8, 197, 16, 245, 20, 21, 32, 15, 8, 197, 16, 83, 12,
-			21, 32, 15, 0, 10, 199, 52, 148, 194, 4, 180, 197, 48, 65, 0, 8, 197, 33, 83, 77, 20, 192, 15, 0, 0, 0, 0, 8, 197, 92,
-			147, 139, 20, 192, 15, 8, 197, 92, 21, 87, 20, 192, 15, 8, 197, 76, 147, 135, 20, 192, 15, 8, 197, 72, 147, 135, 20, 192, 15, 8,
-			197, 56, 146, 203, 20, 192, 15, 8, 197, 52, 19, 135, 20, 192, 15, 8, 197, 32, 147, 139, 20, 192, 15, 8, 197, 28, 243, 199, 20, 192,
-			15, 8, 197, 80, 83, 135, 20, 192, 15, 8, 197, 44, 242, 203, 20, 192, 15, 0, 12, 201, 32, 81, 5, 57, 65, 78, 16, 17, 197, 15,
-			10, 199, 44, 241, 75, 20, 195, 197, 72, 15, 0, 16, 70, 76, 147, 8, 61, 81, 84, 89, 37, 55, 40, 6, 111, 47, 0, 0, 19, 71,
-			12, 20, 212, 4, 115, 133, 80, 49, 116, 89, 47, 116, 67, 6, 111, 47, 0, 0, 0, 16, 67, 9, 96, 128, 71, 123, 84, 6, 122, 34,
-			71, 119, 55, 47, 0, 0, 12, 3, 95, 53, 111, 84, 6, 123, 84, 72, 13, 0, 13, 3, 95, 63, 63, 89, 6, 37, 65, 71, 122, 55,
-			0, 0, 16, 70, 60, 228, 218, 20, 193, 128, 113, 50, 89, 6, 111, 55, 83, 0, 0, 0, 8, 67, 40, 241, 64, 75, 122, 0, 6, 195,
-			104, 245, 64, 72, 14, 3, 95, 52, 88, 83, 6, 108, 12, 34, 47, 13, 101, 0, 0, 0, 0, 0, 0, 7, 196, 56, 19, 205, 36, 66,
-			12, 3, 95, 54, 111, 88, 6, 111, 89, 72, 13, 0, 0, 0, 8, 66, 48, 80, 55, 13, 0, 46, 7, 194, 56, 16, 46, 76, 8, 8,
-			66, 36, 176, 2, 108, 49, 0, 18, 4, 95, 115, 117, 98, 89, 6, 110, 48, 89, 49, 34, 108, 48, 47, 15, 0, 0, 7, 195, 44, 210,
-			64, 13, 42, 13, 3, 95, 53, 88, 84, 6, 123, 83, 47, 13, 101, 0, 0, 0, 14, 4, 95, 114, 110, 103, 49, 6, 122, 16, 122, 50,
-			115, 0, 0, 9, 198, 44, 225, 85, 44, 83, 0, 15, 9, 198, 52, 148, 129, 8, 83, 0, 67, 8, 197, 12, 244, 147, 21, 64, 66, 8,
-			197, 64, 20, 139, 21, 64, 66, 0, 0, 9, 198, 52, 147, 129, 72, 85, 0, 67, 17, 70, 44, 194, 78, 44, 85, 0, 49, 55, 108, 68,
-			49, 6, 111, 47, 0, 8, 197, 104, 147, 22, 21, 32, 15, 8, 197, 76, 241, 90, 21, 32, 15, 8, 197, 76, 195, 214, 21, 32, 15, 8,
-			197, 65, 83, 22, 21, 32, 15, 8, 197, 64, 241, 78, 21, 32, 15, 8, 197, 44, 19, 22, 21, 32, 15, 11, 70, 21, 132, 12, 60, 149,
-			0, 21, 0, 47, 14, 3, 95, 55, 111, 88, 6, 119, 84, 13, 50, 72, 13, 0, 0, 0, 10, 199, 8, 19, 133, 56, 114, 68, 76, 17,
-			9, 198, 105, 114, 69, 8, 83, 0, 15, 9, 198, 65, 34, 69, 28, 83, 0, 15, 0, 13, 3, 95, 54, 88, 88, 6, 111, 89, 47, 13,
-			101, 0, 0, 9, 198, 52, 148, 211, 80, 19, 132, 65, 8, 197, 92, 148, 16, 21, 32, 15, 8, 197, 88, 241, 68, 21, 32, 15, 8, 197,
-			80, 83, 80, 21, 32, 15, 8, 197, 77, 81, 4, 21, 32, 15, 8, 197, 76, 244, 16, 21, 32, 15, 8, 197, 76, 145, 4, 21, 32, 15,
-			8, 197, 72, 145, 4, 21, 32, 15, 8, 197, 72, 81, 4, 21, 32, 15, 8, 197, 65, 84, 144, 21, 32, 15, 8, 197, 65, 32, 76, 21,
-			32, 15, 8, 197, 64, 241, 68, 21, 32, 15, 8, 197, 64, 20, 16, 21, 32, 15, 8, 197, 52, 244, 16, 21, 32, 15, 8, 197, 52, 244,
-			16, 21, 32, 15, 8, 197, 52, 241, 68, 21, 32, 15, 8, 197, 52, 241, 4, 21, 32, 15, 8, 197, 48, 241, 4, 21, 32, 15, 8, 197,
-			48, 241, 4, 21, 32, 15, 8, 197, 48, 145, 68, 21, 32, 15, 8, 197, 44, 195, 212, 21, 32, 15, 8, 197, 32, 19, 20, 21, 32, 15,
-			8, 197, 29, 32, 84, 21, 32, 15, 8, 197, 28, 241, 68, 21, 32, 15, 8, 197, 24, 243, 20, 21, 32, 15, 8, 197, 24, 147, 20, 21,
-			32, 15, 8, 197, 20, 83, 20, 21, 32, 15, 8, 197, 16, 20, 16, 21, 32, 15, 8, 197, 8, 17, 4, 21, 32, 15, 8, 197, 4, 50,
-			20, 21, 32, 15, 8, 197, 16, 147, 12, 21, 32, 15, 0, 10, 199, 76, 50, 18, 36, 178, 197, 48, 15, 0, 0, 9, 198, 56, 19, 1,
-			80, 145, 197, 66, 9, 198, 56, 17, 5, 48, 145, 197, 66, 18, 70, 41, 83, 69, 48, 17, 197, 90, 109, 65, 13, 55, 6, 115, 90, 13,
-			0, 17, 70, 17, 32, 73, 56, 17, 197, 72, 34, 111, 50, 6, 115, 90, 13, 0, 11, 70, 32, 243, 69, 64, 17, 197, 21, 0, 47, 0,
-			0, 0, 12, 201, 65, 35, 202, 20, 53, 9, 20, 193, 78, 67, 9, 198, 77, 4, 137, 56, 113, 82, 15, 0, 0, 0, 16, 69, 16, 19,
-			137, 12, 16, 72, 35, 50, 6, 37, 47, 89, 35, 0, 10, 69, 21, 48, 193, 64, 80, 21, 0, 47, 0, 0, 0, 0, 10, 69, 16, 83,
-			5, 80, 80, 21, 0, 47, 0, 22, 73, 77, 81, 134, 72, 17, 197, 81, 65, 64, 89, 109, 83, 34, 115, 90, 6, 111, 47, 13, 0, 21,
-			73, 52, 18, 83, 60, 227, 133, 81, 65, 64, 65, 111, 88, 113, 50, 6, 111, 47, 13, 0, 10, 66, 57, 32, 50, 110, 65, 13, 34, 0,
-			12, 6, 95, 111, 114, 100, 50, 48, 89, 47, 13, 0, 0, 6, 195, 60, 230, 133, 72, 13, 3, 95, 56, 88, 47, 6, 116, 101, 47, 13,
-			101, 0, 0, 0, 8, 197, 53, 84, 197, 84, 208, 15, 0, 0, 7, 196, 72, 82, 197, 56, 15, 6, 195, 16, 86, 133, 72, 0, 0, 0,
-			9, 198, 77, 3, 210, 80, 145, 70, 66, 7, 66, 52, 80, 65, 13, 0, 0, 15, 3, 95, 57, 88, 50, 6, 119, 81, 13, 50, 47, 13,
-			101, 0, 0, 16, 70, 12, 148, 131, 84, 149, 0, 89, 108, 34, 49, 40, 6, 37, 0, 0, 8, 195, 52, 85, 0, 46, 76, 28, 0, 14,
-			70, 76, 133, 84, 80, 83, 0, 91, 110, 47, 13, 55, 0, 16, 70, 12, 83, 129, 44, 83, 0, 89, 13, 50, 115, 49, 13, 55, 0, 8,
-			197, 92, 147, 139, 21, 64, 66, 8, 197, 64, 18, 203, 21, 64, 66, 8, 197, 45, 35, 203, 21, 64, 66, 0, 0, 8, 197, 104, 241, 78,
-			21, 32, 15, 8, 197, 89, 34, 74, 21, 32, 15, 8, 197, 76, 243, 66, 21, 32, 15, 8, 197, 44, 19, 70, 21, 32, 15, 0, 7, 196,
-			44, 20, 15, 80, 66, 0, 8, 197, 52, 19, 135, 5, 64, 17, 15, 69, 52, 83, 149, 21, 64, 65, 119, 50, 109, 6, 111, 47, 0, 12,
-			3, 95, 63, 65, 55, 6, 111, 47, 13, 34, 0, 0, 13, 68, 60, 213, 133, 72, 122, 65, 84, 6, 111, 34, 0, 7, 196, 60, 225, 5,
-			72, 15, 7, 196, 4, 225, 5, 72, 15, 0, 8, 197, 104, 243, 4, 21, 32, 15, 8, 197, 92, 84, 212, 21, 32, 15, 8, 197, 92, 20,
-			16, 21, 32, 15, 8, 197, 80, 85, 20, 21, 32, 15, 8, 197, 76, 241, 80, 21, 32, 15, 8, 197, 72, 20, 212, 21, 32, 15, 8, 197,
-			64, 244, 16, 21, 32, 15, 8, 197, 64, 243, 4, 21, 32, 15, 8, 197, 64, 145, 84, 21, 32, 15, 8, 197, 64, 145, 80, 21, 32, 15,
-			8, 197, 64, 84, 212, 21, 32, 15, 8, 197, 52, 245, 20, 21, 32, 15, 8, 197, 52, 145, 84, 21, 32, 15, 8, 197, 48, 85, 84, 21,
-			32, 15, 8, 197, 48, 85, 20, 21, 32, 15, 8, 197, 48, 84, 16, 21, 32, 15, 8, 197, 44, 85, 84, 21, 32, 15, 8, 197, 44, 85,
-			20, 21, 32, 15, 8, 197, 32, 245, 84, 21, 32, 15, 8, 197, 28, 147, 12, 21, 32, 15, 8, 197, 24, 243, 4, 21, 32, 15, 8, 197,
-			24, 241, 84, 21, 32, 15, 8, 197, 24, 21, 20, 21, 32, 15, 8, 197, 9, 83, 4, 21, 32, 15, 8, 197, 8, 243, 4, 21, 32, 15,
-			8, 197, 8, 149, 20, 21, 32, 15, 8, 197, 104, 149, 20, 21, 32, 15, 0, 0, 0, 0, 12, 3, 95, 52, 111, 84, 6, 37, 34, 72,
-			13, 0, 20, 4, 95, 115, 117, 112, 89, 6, 109, 48, 13, 34, 89, 49, 34, 108, 48, 47, 15, 0, 0, 14, 69, 77, 68, 133, 4, 208,
-			89, 47, 34, 37, 12, 65, 0, 14, 4, 95, 115, 116, 107, 89, 47, 14, 16, 6, 119, 48, 0, 0, 9, 198, 56, 245, 133, 52, 33, 82,
-			66, 9, 198, 16, 80, 197, 52, 33, 82, 66, 9, 198, 88, 192, 65, 56, 65, 82, 15, 9, 198, 76, 50, 9, 65, 1, 82, 15, 9, 198,
-			36, 224, 149, 72, 113, 82, 15, 0, 7, 194, 36, 224, 46, 76, 28, 0, 0, 0, 0, 12, 68, 88, 84, 148, 20, 84, 111, 34, 47, 13,
-			0, 0, 14, 69, 28, 243, 199, 48, 80, 81, 40, 12, 81, 13, 55, 0, 14, 69, 88, 84, 147, 80, 80, 84, 111, 34, 89, 47, 13, 0,
-			0, 12, 68, 8, 83, 137, 28, 71, 119, 50, 13, 100, 0, 0, 0, 0, 11, 200, 36, 225, 210, 20, 66, 100, 57, 64, 68, 16, 69, 36,
-			65, 65, 48, 80, 37, 72, 119, 57, 6, 115, 55, 13, 0, 14, 69, 21, 35, 211, 36, 80, 119, 34, 6, 122, 88, 37, 0, 0, 0, 15,
-			70, 28, 19, 65, 76, 50, 5, 100, 115, 65, 6, 116, 91, 0, 15, 74, 20, 229, 5, 73, 64, 73, 56, 209, 78, 80, 21, 0, 47, 0,
-			11, 199, 64, 85, 18, 60, 193, 85, 52, 15, 66, 0, 0, 0, 0, 0, 7, 196, 64, 242, 197, 72, 15, 0, 9, 198, 81, 35, 197, 80,
-			83, 0, 15, 9, 198, 77, 112, 70, 24, 83, 0, 15, 9, 198, 65, 37, 84, 80, 83, 0, 15, 0, 7, 196, 52, 240, 200, 80, 72, 0,
-			0, 7, 196, 80, 81, 5, 72, 15, 7, 196, 56, 81, 5, 72, 15, 7, 196, 56, 17, 5, 72, 15, 7, 196, 52, 17, 197, 72, 15, 7,
-			196, 48, 81, 5, 72, 15, 7, 196, 36, 210, 197, 72, 15, 7, 196, 36, 165, 133, 72, 15, 0, 9, 198, 33, 82, 67, 32, 83, 0, 15,
-			9, 198, 29, 82, 67, 32, 83, 0, 15, 9, 198, 17, 33, 77, 52, 83, 0, 15, 9, 198, 77, 65, 78, 28, 83, 0, 15, 0, 0, 20,
-			4, 95, 99, 105, 114, 89, 6, 108, 34, 49, 113, 50, 83, 55, 119, 49, 89, 13, 0, 0, 8, 195, 4, 19, 128, 46, 76, 28, 0, 14,
-			4, 95, 48, 77, 52, 71, 6, 37, 55, 57, 40, 50, 0, 0, 0, 9, 198, 44, 17, 1, 77, 65, 82, 66, 9, 198, 12, 128, 80, 37,
-			65, 82, 66, 9, 198, 76, 193, 67, 33, 65, 82, 15, 9, 198, 76, 50, 21, 81, 65, 82, 15, 9, 198, 76, 50, 9, 81, 65, 82, 15,
-			9, 198, 76, 50, 5, 81, 65, 82, 15, 9, 198, 44, 197, 73, 77, 65, 82, 15, 9, 198, 44, 149, 19, 12, 129, 82, 15, 9, 198, 76,
-			50, 5, 65, 1, 82, 15, 13, 3, 95, 56, 111, 6, 116, 101, 47, 89, 47, 13, 0, 14, 4, 95, 48, 77, 50, 65, 6, 37, 55, 57,
-			40, 50, 0, 0, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55, 57, 116, 34, 47, 0, 0, 0, 8, 197, 76, 19, 15, 52, 240, 65, 14,
-			4, 95, 48, 77, 49, 72, 6, 124, 88, 111, 50, 47, 0, 0, 0, 0, 0, 0, 6, 195, 61, 97, 82, 15, 11, 70, 92, 81, 75, 20,
-			225, 0, 21, 0, 47, 8, 195, 61, 97, 82, 46, 76, 8, 0, 0, 0, 0, 0, 15, 4, 95, 108, 105, 103, 55, 6, 37, 101, 115, 47,
-			109, 34, 0, 0, 0, 7, 196, 80, 18, 197, 48, 15, 7, 196, 72, 17, 133, 48, 15, 7, 196, 64, 81, 197, 48, 15, 7, 196, 44, 241,
-			197, 48, 15, 7, 196, 44, 18, 197, 48, 15, 7, 196, 40, 241, 133, 48, 15, 7, 196, 104, 245, 197, 48, 66, 0, 0, 0, 12, 68, 52,
-			85, 18, 60, 65, 119, 47, 34, 122, 0, 0, 7, 196, 76, 16, 133, 48, 15, 13, 68, 48, 16, 133, 48, 55, 119, 71, 13, 55, 0, 15,
-			7, 196, 44, 16, 133, 48, 15, 7, 196, 41, 80, 133, 48, 15, 7, 196, 80, 16, 133, 48, 66, 0, 8, 197, 25, 85, 19, 20, 192, 15,
-			0, 7, 196, 104, 243, 69, 72, 15, 7, 196, 32, 19, 69, 72, 15, 0, 9, 198, 52, 148, 207, 60, 116, 212, 65, 9, 198, 77, 64, 70,
-			24, 83, 0, 15, 9, 198, 76, 193, 85, 80, 83, 0, 15, 9, 198, 45, 32, 66, 8, 83, 0, 15, 9, 198, 25, 37, 84, 76, 83, 0,
-			15, 0, 9, 198, 81, 34, 76, 48, 84, 128, 15, 9, 198, 64, 197, 73, 104, 84, 128, 15, 9, 198, 64, 193, 84, 80, 84, 128, 15, 9,
-			198, 45, 37, 76, 48, 84, 128, 15, 9, 198, 44, 226, 69, 104, 84, 128, 15, 9, 198, 44, 193, 84, 80, 84, 128, 15, 9, 198, 44, 192,
-			68, 16, 84, 128, 15, 14, 70, 28, 81, 85, 92, 84, 128, 100, 126, 13, 34, 0, 15, 9, 198, 8, 192, 68, 16, 84, 128, 15, 15, 70,
-			81, 113, 65, 44, 84, 128, 47, 85, 37, 49, 13, 34, 0, 0, 10, 199, 92, 146, 201, 64, 81, 9, 4, 67, 19, 71, 21, 96, 78, 28,
-			83, 9, 20, 119, 84, 116, 68, 100, 6, 119, 55, 37, 0, 22, 73, 20, 83, 147, 28, 83, 9, 40, 180, 192, 119, 50, 89, 100, 13, 55,
-			6, 123, 49, 89, 0, 9, 198, 44, 245, 5, 48, 85, 0, 67, 0, 0, 13, 202, 60, 225, 197, 52, 18, 203, 20, 194, 74, 44, 67, 9,
-			198, 45, 34, 66, 8, 83, 0, 15, 9, 198, 9, 33, 73, 16, 83, 0, 15, 0, 7, 196, 56, 243, 133, 80, 66, 0, 18, 71, 12, 128,
-			77, 64, 17, 206, 20, 91, 116, 65, 48, 6, 116, 67, 13, 0, 0, 0, 0, 7, 196, 32, 85, 133, 48, 15, 12, 68, 28, 85, 133, 48,
-			100, 119, 84, 13, 55, 0, 0, 9, 198, 76, 50, 9, 48, 97, 82, 15, 9, 198, 76, 50, 9, 48, 65, 82, 15, 9, 198, 32, 84, 137,
-			56, 225, 82, 15, 0, 20, 71, 36, 225, 197, 56, 145, 85, 72, 108, 50, 88, 57, 13, 50, 57, 6, 121, 34, 0, 11, 70, 4, 148, 140,
-			36, 225, 83, 21, 0, 47, 0, 0, 7, 196, 44, 20, 133, 48, 15, 0, 21, 7, 115, 109, 115, 39, 106, 101, 115, 111, 89, 111, 65, 6,
-			111, 89, 10, 57, 13, 89, 0, 6, 194, 60, 96, 72, 8, 6, 194, 60, 96, 72, 8, 0, 0, 0, 17, 70, 44, 147, 147, 32, 20, 193,
-			49, 108, 50, 91, 6, 115, 89, 115, 0, 12, 201, 80, 81, 197, 56, 224, 84, 85, 84, 128, 68, 0, 0, 0, 0, 9, 198, 16, 148, 203,
-			21, 69, 5, 66, 9, 198, 12, 20, 211, 21, 69, 5, 66, 17, 70, 4, 226, 83, 21, 69, 5, 115, 50, 37, 88, 6, 111, 47, 13, 0,
-			0, 0, 0, 0, 7, 196, 104, 17, 5, 48, 15, 7, 196, 20, 226, 197, 48, 15, 0, 0, 6, 195, 52, 17, 192, 72, 0, 14, 4, 95,
-			99, 101, 100, 89, 6, 119, 72, 108, 55, 13, 0, 0, 14, 70, 12, 128, 78, 76, 243, 128, 91, 117, 89, 6, 118, 0, 9, 198, 76, 50,
-			5, 64, 83, 128, 15, 9, 198, 28, 83, 79, 28, 83, 128, 72, 0, 0, 0, 9, 198, 29, 35, 197, 104, 83, 0, 15, 0, 15, 69, 16,
-			149, 133, 73, 48, 72, 37, 84, 6, 111, 34, 89, 0, 7, 196, 60, 53, 5, 80, 66, 7, 196, 104, 245, 193, 80, 66, 7, 196, 60, 209,
-			1, 80, 8, 0, 0, 0, 9, 198, 36, 225, 197, 88, 19, 0, 67, 9, 198, 29, 35, 206, 16, 83, 0, 15, 8, 196, 104, 240, 76, 76,
-			66, 8, 0, 7, 196, 28, 22, 133, 80, 66, 7, 196, 64, 19, 5, 80, 66, 0, 0, 6, 195, 44, 211, 192, 13, 0, 9, 198, 77, 4,
-			133, 56, 177, 76, 15, 17, 4, 95, 99, 97, 112, 107, 6, 122, 83, 72, 55, 111, 47, 13, 34, 0, 0, 7, 196, 72, 21, 5, 48, 15,
-			0, 9, 198, 48, 21, 193, 4, 145, 82, 15, 0, 9, 198, 72, 84, 197, 73, 97, 83, 16, 11, 70, 92, 80, 147, 37, 65, 83, 21, 0,
-			47, 0, 0, 18, 70, 60, 49, 65, 56, 83, 128, 122, 89, 119, 57, 6, 115, 50, 13, 50, 0, 17, 70, 92, 20, 197, 52, 83, 128, 85,
-			115, 89, 13, 65, 13, 50, 0, 15, 9, 198, 44, 84, 147, 80, 83, 128, 15, 0, 0, 0, 11, 68, 104, 81, 100, 56, 88, 119, 13, 50,
-			0, 0, 0, 14, 69, 8, 85, 133, 56, 64, 71, 119, 84, 13, 50, 72, 0, 0, 21, 72, 12, 19, 79, 84, 99, 1, 28, 80, 49, 115,
-			65, 40, 83, 55, 6, 115, 90, 13, 0, 0, 0, 0, 14, 69, 8, 83, 129, 72, 64, 71, 13, 50, 116, 34, 47, 0, 8, 197, 28, 82,
-			213, 56, 64, 72, 0, 0, 0, 10, 199, 64, 19, 148, 60, 97, 133, 48, 15, 0, 8, 197, 92, 145, 66, 20, 192, 15, 8, 197, 65, 33,
-			86, 20, 192, 15, 8, 197, 28, 145, 66, 20, 192, 15, 8, 197, 93, 33, 86, 20, 192, 15, 8, 197, 76, 163, 198, 20, 192, 15, 0, 0,
-			0, 0, 8, 197, 81, 34, 80, 20, 192, 15, 0, 0, 9, 198, 76, 225, 85, 88, 83, 0, 15, 9, 198, 44, 194, 80, 64, 83, 0, 15,
-			9, 198, 29, 33, 78, 16, 83, 0, 15, 13, 68, 104, 244, 1, 76, 88, 122, 48, 6, 116, 89, 0, 0, 9, 198, 52, 148, 211, 80, 20,
-			0, 65, 7, 196, 16, 145, 69, 80, 66, 0, 0, 7, 196, 81, 82, 69, 72, 15, 7, 196, 49, 82, 69, 72, 15, 7, 196, 48, 22, 133,
-			72, 15, 0, 0, 0, 0, 0, 0, 0, 8, 197, 64, 241, 90, 20, 192, 15, 0, 0, 17, 71, 60, 244, 212, 20, 194, 74, 44, 122, 89,
-			47, 13, 55, 13, 49, 0, 0, 15, 70, 12, 130, 70, 24, 243, 128, 91, 37, 83, 6, 113, 50, 0, 7, 196, 104, 19, 69, 48, 15, 7,
-			196, 32, 83, 69, 48, 15, 0, 8, 197, 32, 241, 80, 20, 192, 15, 8, 197, 8, 82, 84, 20, 192, 15, 14, 69, 9, 33, 84, 20, 192,
-			71, 34, 13, 47, 111, 55, 0, 0, 0, 9, 198, 52, 20, 137, 60, 225, 84, 68, 17, 70, 64, 148, 212, 60, 193, 84, 48, 37, 89, 47,
-			122, 55, 6, 111, 0, 9, 198, 12, 244, 147, 20, 193, 84, 67, 17, 70, 64, 192, 78, 12, 129, 84, 48, 55, 116, 50, 91, 6, 111, 47,
-			0, 11, 200, 81, 35, 205, 64, 85, 20, 21, 32, 15, 11, 200, 76, 50, 18, 20, 85, 87, 21, 32, 15, 11, 200, 52, 147, 12, 36, 209,
-			84, 21, 32, 15, 0, 0, 14, 69, 36, 225, 210, 36, 64, 108, 68, 14, 16, 108, 47, 0, 0, 7, 196, 4, 196, 207, 24, 8, 0, 9,
-			198, 80, 84, 151, 36, 163, 0, 8, 0, 9, 3, 100, 39, 114, 72, 13, 34, 0, 0, 12, 68, 56, 17, 148, 4, 50, 116, 83, 47, 115,
-			0, 6, 195, 80, 241, 78, 8, 0, 0, 9, 198, 64, 20, 148, 36, 177, 76, 15, 11, 70, 72, 84, 197, 5, 32, 200, 21, 0, 47, 0,
-			10, 199, 76, 50, 18, 60, 212, 5, 48, 15, 18, 71, 12, 20, 146, 61, 84, 197, 48, 49, 115, 34, 40, 89, 6, 111, 55, 0, 0, 8,
-			197, 92, 82, 70, 20, 192, 15, 8, 197, 72, 241, 70, 20, 192, 15, 8, 197, 32, 82, 66, 20, 192, 15, 8, 197, 24, 241, 90, 20, 192,
-			15, 8, 197, 16, 241, 90, 20, 192, 15, 14, 69, 29, 32, 86, 20, 192, 100, 34, 111, 84, 13, 55, 0, 0, 0, 0, 8, 67, 72, 16,
-			197, 21, 0, 47, 0, 14, 69, 52, 148, 208, 20, 192, 65, 108, 89, 48, 13, 55, 0, 8, 197, 104, 241, 68, 20, 192, 15, 8, 197, 92,
-			147, 80, 20, 192, 15, 8, 197, 77, 64, 80, 20, 192, 15, 8, 197, 76, 20, 16, 20, 192, 15, 8, 197, 72, 241, 4, 20, 192, 15, 8,
-			197, 64, 241, 68, 20, 192, 15, 8, 197, 64, 147, 80, 20, 192, 15, 14, 69, 64, 17, 4, 20, 192, 48, 111, 72, 13, 55, 0, 15, 8,
-			197, 56, 84, 212, 20, 192, 15, 8, 197, 52, 148, 208, 20, 192, 15, 8, 197, 44, 244, 16, 20, 192, 15, 8, 197, 33, 84, 16, 20, 192,
-			15, 8, 197, 16, 243, 80, 20, 192, 15, 8, 197, 72, 241, 68, 20, 192, 15, 8, 197, 64, 84, 16, 20, 192, 15, 8, 197, 52, 145, 4,
-			20, 192, 15, 8, 197, 44, 84, 16, 20, 192, 15, 8, 197, 8, 241, 68, 20, 192, 15, 0, 7, 196, 48, 20, 197, 72, 15, 7, 196, 44,
-			84, 5, 72, 15, 7, 196, 28, 20, 5, 72, 15, 0, 9, 198, 88, 16, 78, 16, 83, 0, 15, 9, 198, 4, 208, 78, 16, 83, 0, 15,
-			0, 16, 70, 12, 245, 82, 21, 84, 128, 49, 40, 12, 34, 6, 121, 34, 0, 7, 195, 44, 227, 73, 13, 42, 0, 9, 198, 12, 128, 82,
-			28, 84, 192, 16, 5, 131, 239, 187, 191, 0, 12, 68, 8, 82, 197, 72, 71, 119, 49, 13, 34, 0, 7, 196, 104, 82, 197, 72, 15, 7,
-			196, 52, 242, 197, 72, 15, 0, 15, 70, 60, 194, 69, 76, 83, 0, 122, 55, 37, 89, 13, 55, 0, 9, 198, 8, 244, 147, 80, 83, 0,
-			15, 9, 198, 77, 67, 198, 24, 83, 0, 15, 0, 0, 9, 198, 81, 35, 205, 64, 85, 0, 66, 0, 0, 0, 0, 8, 197, 24, 241, 70,
-			20, 192, 15, 8, 197, 72, 241, 66, 20, 192, 15, 8, 197, 52, 85, 66, 20, 192, 15, 8, 197, 44, 145, 90, 20, 192, 15, 0, 0, 0,
-			0, 21, 71, 65, 34, 86, 36, 193, 71, 20, 48, 34, 37, 84, 37, 55, 6, 119, 90, 13, 0, 16, 8, 197, 80, 148, 16, 20, 192, 15,
-			8, 197, 80, 83, 80, 20, 192, 15, 8, 197, 72, 243, 80, 20, 192, 15, 8, 197, 72, 147, 80, 20, 192, 15, 8, 197, 48, 148, 208, 20,
-			192, 15, 8, 197, 32, 243, 80, 20, 192, 15, 8, 197, 24, 145, 68, 20, 192, 15, 8, 197, 76, 147, 80, 20, 192, 15, 20, 72, 80, 245,
-			82, 56, 148, 85, 21, 64, 47, 40, 34, 50, 37, 49, 6, 111, 47, 0, 18, 71, 61, 85, 9, 48, 192, 71, 20, 40, 47, 37, 57, 6,
-			115, 90, 13, 0, 0, 0, 21, 73, 72, 83, 129, 37, 52, 193, 56, 49, 64, 34, 111, 50, 119, 89, 6, 117, 89, 13, 0, 11, 200, 92,
-			16, 71, 32, 19, 26, 21, 32, 15, 0, 19, 71, 12, 16, 146, 36, 243, 5, 80, 49, 115, 71, 34, 37, 39, 55, 6, 111, 0, 0, 14,
-			4, 95, 103, 114, 118, 100, 14, 16, 6, 115, 84, 13, 0, 0, 0, 9, 198, 12, 242, 5, 76, 145, 64, 66, 0, 0, 7, 196, 29, 32,
-			71, 20, 15, 0, 0, 0, 6, 195, 57, 97, 1, 13, 0, 0, 0, 9, 198, 64, 243, 9, 28, 195, 212, 67, 0, 6, 195, 76, 17, 197,
-			15, 6, 195, 48, 17, 197, 15, 0, 8, 197, 44, 145, 84, 20, 192, 15, 7, 194, 60, 208, 46, 76, 28, 0, 0, 39, 79, 60, 225, 5,
-			72, 128, 78, 16, 83, 9, 56, 116, 206, 61, 64, 64, 4, 39, 50, 72, 13, 34, 6, 107, 116, 50, 72, 13, 55, 108, 68, 89, 4, 50,
-			122, 47, 115, 0, 8, 197, 105, 82, 86, 21, 32, 15, 8, 197, 56, 146, 150, 21, 32, 15, 8, 197, 49, 80, 130, 21, 32, 15, 8, 197,
-			48, 80, 130, 21, 32, 15, 8, 197, 33, 82, 86, 21, 32, 15, 8, 197, 32, 80, 130, 21, 32, 15, 8, 197, 12, 146, 134, 21, 32, 15,
-			8, 197, 8, 144, 130, 21, 32, 15, 6, 195, 105, 83, 20, 72, 0, 16, 70, 12, 243, 148, 61, 84, 128, 49, 122, 50, 47, 6, 40, 34,
-			0, 0, 8, 197, 76, 86, 20, 21, 64, 66, 15, 69, 76, 177, 76, 21, 64, 89, 49, 13, 55, 6, 111, 47, 0, 0, 12, 201, 48, 16,
-			71, 17, 33, 77, 64, 83, 0, 15, 7, 196, 52, 82, 69, 72, 15, 0, 9, 198, 77, 65, 77, 64, 83, 0, 15, 9, 198, 77, 2, 74,
-			8, 83, 0, 15, 9, 198, 45, 35, 206, 44, 83, 0, 15, 9, 198, 29, 34, 70, 24, 83, 0, 15, 9, 198, 17, 34, 66, 8, 83, 0,
-			15, 9, 198, 17, 33, 77, 64, 83, 0, 15, 8, 197, 104, 243, 132, 21, 32, 15, 8, 197, 104, 19, 132, 21, 32, 15, 8, 197, 88, 244,
-			132, 21, 32, 15, 8, 197, 73, 82, 84, 21, 32, 15, 14, 69, 64, 240, 200, 21, 32, 48, 113, 101, 13, 34, 0, 15, 8, 197, 64, 85,
-			84, 21, 32, 15, 8, 197, 52, 147, 132, 21, 32, 15, 8, 197, 44, 147, 132, 21, 32, 15, 8, 197, 16, 242, 212, 21, 32, 15, 8, 197,
-			8, 192, 68, 21, 32, 15, 10, 197, 104, 243, 132, 21, 32, 46, 76, 8, 0, 0, 20, 72, 88, 84, 135, 21, 162, 67, 33, 64, 84, 111,
-			34, 100, 13, 88, 108, 101, 47, 0, 8, 197, 8, 147, 10, 21, 64, 66, 0, 0, 8, 197, 64, 84, 146, 60, 224, 66, 8, 197, 4, 65,
-			77, 20, 224, 15, 8, 197, 80, 83, 154, 36, 160, 8, 0, 10, 199, 76, 50, 14, 4, 32, 133, 48, 15, 0, 8, 197, 44, 85, 86, 20,
-			192, 15, 8, 197, 17, 33, 86, 20, 192, 15, 8, 197, 32, 85, 86, 20, 192, 15, 0, 0, 13, 69, 92, 19, 135, 20, 224, 85, 116, 68,
-			13, 50, 0, 0, 0, 8, 197, 52, 84, 16, 20, 192, 15, 8, 197, 76, 85, 20, 20, 192, 15, 8, 197, 44, 85, 84, 20, 192, 15, 9,
-			198, 104, 242, 149, 37, 53, 0, 66, 8, 195, 88, 243, 210, 46, 76, 8, 0, 0, 0, 0, 11, 2, 194, 176, 100, 34, 115, 72, 13, 50,
-			0, 0, 0, 0, 9, 198, 104, 241, 15, 20, 225, 5, 66, 0, 9, 198, 56, 19, 1, 80, 145, 192, 66, 0, 0, 0, 9, 67, 36, 225,
-			197, 108, 68, 13, 0, 0, 0, 0, 0, 12, 67, 64, 17, 197, 21, 0, 47, 81, 117, 112, 32, 14, 67, 64, 17, 197, 21, 0, 47, 81,
-			100, 111, 119, 110, 32, 0, 10, 66, 80, 80, 47, 13, 0, 46, 76, 28, 0, 0, 8, 197, 80, 240, 130, 21, 32, 15, 8, 197, 77, 81,
-			134, 21, 32, 15, 8, 197, 73, 80, 130, 21, 32, 15, 8, 197, 65, 81, 134, 21, 32, 15, 8, 197, 64, 17, 134, 21, 32, 15, 8, 197,
-			48, 240, 130, 21, 32, 15, 8, 197, 48, 16, 130, 21, 32, 15, 8, 197, 44, 241, 134, 21, 32, 15, 8, 197, 44, 17, 134, 21, 32, 15,
-			8, 197, 28, 144, 130, 21, 32, 15, 8, 197, 28, 16, 130, 21, 32, 15, 8, 197, 16, 240, 130, 21, 32, 15, 8, 197, 16, 16, 130, 21,
-			32, 15, 8, 197, 9, 81, 134, 21, 32, 15, 0, 7, 196, 24, 17, 207, 80, 66, 0, 8, 197, 76, 84, 20, 21, 64, 66, 8, 197, 48,
-			19, 80, 21, 64, 66, 15, 69, 80, 242, 76, 21, 64, 47, 85, 116, 55, 6, 111, 47, 0, 8, 197, 60, 209, 76, 21, 64, 67, 8, 197,
-			8, 19, 12, 21, 64, 66, 8, 197, 4, 213, 76, 21, 64, 67, 0, 0, 9, 198, 77, 2, 69, 28, 83, 0, 15, 9, 198, 76, 50, 1,
-			44, 83, 0, 15, 9, 198, 9, 35, 196, 16, 83, 0, 15, 8, 197, 92, 147, 148, 21, 32, 15, 8, 197, 92, 146, 132, 21, 32, 15, 8,
-			197, 77, 67, 212, 21, 32, 15, 8, 197, 76, 192, 80, 21, 32, 15, 8, 197, 65, 35, 208, 21, 32, 15, 8, 197, 48, 20, 212, 21, 32,
-			15, 8, 197, 44, 192, 84, 21, 32, 15, 8, 197, 44, 83, 148, 21, 32, 15, 8, 197, 33, 82, 76, 21, 32, 15, 8, 197, 28, 148, 212,
-			21, 32, 15, 8, 197, 17, 113, 80, 21, 32, 15, 8, 197, 9, 83, 80, 21, 32, 15, 0, 0, 8, 197, 24, 195, 210, 21, 64, 66, 8,
-			197, 80, 245, 4, 5, 64, 8, 0, 0, 0, 0, 10, 199, 52, 21, 83, 60, 193, 85, 52, 15, 0, 17, 70, 5, 81, 213, 77, 69, 83,
-			125, 100, 6, 110, 89, 47, 110, 89, 0, 0, 0, 17, 70, 21, 21, 73, 64, 17, 197, 119, 49, 37, 48, 6, 115, 90, 13, 0, 17, 70,
-			12, 245, 82, 80, 17, 197, 49, 40, 34, 47, 6, 115, 90, 13, 0, 18, 70, 4, 212, 5, 72, 17, 197, 116, 65, 48, 13, 34, 6, 115,
-			90, 13, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 228, 192, 72, 0, 0, 0, 7, 196, 104, 241, 18, 4, 66, 0, 11, 68, 32, 83,
-			137, 56, 21, 102, 114, 0, 47, 8, 197, 81, 32, 76, 36, 80, 65, 7, 196, 80, 82, 197, 56, 15, 10, 69, 60, 227, 9, 56, 80, 21,
-			0, 47, 0, 6, 195, 4, 177, 76, 15, 0, 8, 197, 52, 243, 142, 36, 176, 15, 0, 0, 6, 195, 92, 245, 64, 72, 0, 0, 0, 0,
-			0, 9, 198, 52, 148, 129, 44, 83, 0, 15, 8, 197, 105, 113, 86, 21, 32, 15, 8, 197, 44, 192, 86, 21, 32, 15, 0, 0, 8, 197,
-			52, 148, 218, 37, 64, 65, 0, 7, 196, 104, 245, 133, 72, 8, 6, 195, 92, 21, 0, 72, 0, 8, 197, 105, 113, 84, 21, 32, 15, 8,
-			197, 104, 147, 132, 21, 32, 15, 8, 197, 92, 243, 132, 21, 32, 15, 8, 197, 92, 147, 132, 21, 32, 15, 8, 197, 81, 85, 20, 21, 32,
-			15, 8, 197, 80, 85, 84, 21, 32, 15, 8, 197, 76, 224, 84, 21, 32, 15, 8, 197, 73, 83, 132, 21, 32, 15, 8, 197, 64, 21, 80,
-			21, 32, 15, 8, 197, 48, 245, 84, 21, 32, 15, 8, 197, 48, 19, 132, 21, 32, 15, 8, 197, 48, 16, 200, 21, 32, 15, 8, 197, 32,
-			147, 132, 21, 32, 15, 8, 197, 16, 243, 132, 21, 32, 15, 8, 197, 16, 83, 132, 21, 32, 15, 8, 197, 8, 20, 212, 21, 32, 15, 0,
-			0, 15, 69, 9, 33, 86, 21, 64, 71, 34, 13, 84, 6, 111, 47, 0, 9, 198, 76, 145, 193, 72, 85, 0, 67, 8, 197, 77, 2, 78,
-			21, 64, 66, 0, 0, 0, 0, 18, 70, 92, 81, 9, 41, 97, 82, 85, 6, 111, 47, 123, 84, 13, 34, 0, 15, 9, 198, 76, 50, 18,
-			5, 1, 82, 15, 9, 198, 76, 50, 9, 41, 65, 82, 15, 9, 198, 64, 195, 197, 73, 65, 82, 15, 9, 198, 64, 193, 73, 77, 65, 82,
-			15, 9, 198, 28, 83, 79, 20, 65, 82, 15, 0, 13, 68, 8, 83, 137, 56, 71, 119, 50, 6, 37, 50, 0, 0, 0, 0, 0, 0, 6,
-			195, 32, 80, 128, 72, 0, 14, 203, 92, 16, 82, 76, 50, 9, 40, 227, 9, 40, 176, 66, 0, 8, 197, 4, 113, 78, 16, 16, 66, 0,
-			7, 195, 56, 16, 82, 46, 76, 6, 195, 32, 16, 82, 72, 0, 0, 0, 14, 69, 12, 19, 129, 16, 16, 49, 116, 50, 115, 72, 115, 0,
-			8, 197, 72, 81, 201, 52, 80, 66, 8, 197, 36, 230, 129, 28, 80, 15, 0, 0, 0, 11, 200, 4, 193, 88, 4, 225, 18, 38, 64, 67,
-			0, 0, 15, 70, 44, 83, 142, 20, 70, 64, 49, 111, 50, 13, 72, 111, 0, 12, 201, 12, 20, 130, 60, 194, 78, 21, 83, 64, 15, 0,
-			0, 0, 0, 9, 198, 45, 37, 73, 52, 83, 0, 15, 0, 7, 196, 104, 84, 5, 72, 15, 0, 0, 0, 9, 198, 93, 34, 69, 52, 83,
-			0, 15, 9, 198, 44, 197, 78, 28, 83, 0, 15, 9, 198, 25, 37, 77, 52, 83, 0, 15, 9, 198, 25, 34, 69, 52, 83, 0, 15, 9,
-			198, 5, 37, 9, 44, 83, 0, 15, 9, 198, 76, 50, 1, 52, 83, 0, 15, 0, 7, 196, 72, 17, 5, 72, 15, 7, 196, 60, 97, 133,
-			72, 15, 8, 195, 8, 146, 128, 46, 76, 8, 9, 67, 104, 146, 128, 88, 2, 123, 0, 9, 67, 40, 146, 128, 57, 2, 123, 0, 0, 9,
-			67, 12, 128, 84, 76, 111, 47, 0, 8, 67, 24, 16, 212, 21, 0, 47, 20, 2, 95, 34, 6, 115, 50, 107, 115, 55, 108, 50, 101, 89,
-			47, 119, 49, 13, 50, 0, 0, 18, 2, 95, 33, 6, 124, 47, 14, 16, 40, 48, 47, 4, 119, 49, 13, 50, 0, 0, 5, 194, 85, 112,
-			72, 0, 6, 195, 44, 243, 128, 72, 10, 67, 32, 83, 128, 107, 2, 111, 50, 0, 0, 0, 0, 17, 70, 56, 18, 82, 60, 34, 64, 50,
-			116, 57, 34, 6, 122, 71, 37, 0, 9, 198, 77, 4, 143, 21, 65, 82, 15, 9, 198, 77, 3, 9, 57, 65, 82, 15, 9, 198, 76, 229,
-			73, 77, 65, 82, 15, 9, 198, 76, 50, 15, 44, 177, 82, 15, 9, 198, 76, 50, 15, 25, 65, 82, 15, 9, 198, 76, 50, 1, 53, 1,
-			82, 15, 9, 198, 64, 147, 139, 77, 65, 82, 15, 9, 198, 64, 19, 137, 20, 177, 82, 15, 9, 198, 52, 19, 12, 61, 65, 82, 15, 9,
-			198, 44, 227, 197, 77, 65, 82, 15, 9, 198, 28, 194, 78, 77, 65, 82, 15, 9, 198, 24, 197, 73, 77, 65, 82, 15, 9, 198, 16, 81,
-			77, 77, 65, 82, 15, 20, 70, 12, 243, 80, 85, 65, 82, 49, 113, 65, 48, 57, 6, 40, 47, 13, 34, 0, 15, 9, 198, 8, 83, 5,
-			52, 209, 82, 15, 18, 70, 8, 85, 23, 21, 65, 82, 71, 111, 47, 85, 6, 119, 47, 13, 34, 0, 0, 7, 196, 92, 20, 5, 56, 15,
-			7, 195, 88, 19, 128, 46, 76, 0, 6, 195, 20, 65, 76, 15, 0, 18, 2, 95, 41, 107, 6, 115, 49, 57, 13, 89, 55, 6, 124, 47,
-			13, 50, 0, 0, 6, 195, 4, 65, 82, 15, 19, 2, 95, 40, 107, 6, 115, 49, 57, 13, 23, 6, 122, 48, 119, 50, 13, 50, 0, 0,
-			0, 18, 72, 20, 208, 143, 84, 50, 21, 85, 32, 117, 71, 40, 91, 6, 109, 34, 0, 0, 17, 2, 95, 45, 49, 6, 113, 48, 111, 55,
-			47, 4, 119, 49, 13, 50, 0, 0, 7, 195, 52, 16, 82, 72, 8, 10, 2, 95, 44, 49, 6, 113, 65, 115, 0, 0, 11, 70, 84, 197,
-			9, 52, 21, 5, 21, 0, 47, 9, 2, 95, 51, 72, 34, 6, 37, 0, 0, 12, 68, 8, 83, 7, 4, 71, 111, 55, 100, 115, 0, 9,
-			2, 95, 50, 47, 85, 6, 119, 0, 0, 6, 195, 28, 192, 83, 15, 8, 2, 95, 49, 6, 119, 50, 0, 0, 9, 2, 95, 48, 50, 6,
-			110, 55, 0, 0, 8, 67, 28, 19, 69, 21, 0, 47, 8, 67, 32, 243, 69, 21, 0, 47, 11, 2, 95, 55, 88, 6, 119, 84, 13, 50,
-			0, 0, 9, 2, 95, 54, 88, 6, 111, 89, 0, 0, 9, 2, 95, 53, 84, 6, 123, 83, 0, 0, 9, 2, 95, 52, 84, 6, 37, 34,
-			0, 0, 15, 2, 95, 59, 48, 6, 110, 50, 47, 49, 113, 65, 4, 115, 0, 0, 8, 197, 32, 84, 141, 4, 224, 65, 17, 2, 95, 58,
-			72, 6, 110, 71, 13, 55, 13, 48, 4, 110, 50, 47, 0, 0, 7, 196, 92, 17, 133, 48, 15, 7, 196, 24, 16, 133, 48, 15, 7, 196,
-			56, 240, 133, 48, 15, 7, 196, 48, 144, 133, 48, 66, 11, 2, 95, 57, 50, 6, 119, 100, 13, 50, 0, 0, 8, 197, 4, 212, 212, 20,
-			192, 15, 8, 197, 92, 144, 200, 20, 192, 15, 9, 198, 81, 35, 205, 52, 83, 0, 15, 9, 198, 77, 67, 205, 52, 83, 0, 15, 8, 197,
-			72, 240, 200, 20, 192, 15, 8, 197, 44, 149, 20, 20, 192, 15, 8, 197, 8, 245, 20, 20, 192, 15, 9, 198, 17, 35, 205, 52, 83, 0,
-			15, 7, 66, 92, 80, 85, 13, 0, 9, 2, 95, 56, 6, 116, 101, 47, 0, 0, 16, 2, 95, 63, 84, 14, 16, 6, 115, 101, 47, 119,
-			49, 13, 50, 0, 0, 0, 7, 196, 76, 18, 133, 80, 66, 8, 195, 84, 149, 0, 46, 76, 28, 0, 13, 202, 92, 84, 139, 81, 82, 71,
-			20, 194, 74, 44, 66, 9, 198, 81, 114, 78, 44, 83, 0, 15, 9, 198, 93, 35, 206, 28, 83, 0, 15, 0, 7, 196, 8, 82, 69, 72,
-			15, 0, 23, 73, 16, 19, 65, 76, 49, 82, 36, 225, 192, 72, 35, 65, 116, 38, 89, 6, 119, 34, 108, 68, 0, 9, 198, 88, 243, 210,
-			16, 21, 0, 8, 0, 0, 0, 24, 73, 36, 225, 143, 72, 208, 84, 36, 85, 133, 108, 50, 83, 113, 34, 65, 115, 47, 6, 37, 84, 13,
-			0, 0, 0, 7, 196, 88, 86, 133, 48, 15, 7, 196, 24, 86, 133, 48, 15, 7, 196, 52, 22, 133, 48, 15, 7, 196, 56, 246, 133, 48,
-			15, 9, 198, 17, 35, 207, 29, 65, 83, 16, 0, 9, 198, 76, 50, 15, 84, 65, 82, 15, 0, 18, 70, 24, 80, 146, 84, 20, 137, 83,
-			119, 71, 34, 109, 6, 115, 34, 37, 0, 0, 6, 195, 4, 65, 76, 15, 0, 7, 196, 64, 20, 133, 48, 15, 0, 0, 0, 0, 0, 6,
-			195, 20, 145, 82, 15, 0, 9, 198, 88, 147, 204, 21, 69, 5, 67, 16, 70, 72, 245, 76, 21, 69, 5, 34, 40, 55, 6, 111, 47, 13,
-			0, 9, 198, 72, 16, 204, 21, 69, 5, 66, 15, 70, 64, 240, 200, 21, 69, 5, 48, 113, 91, 6, 111, 47, 0, 16, 70, 52, 20, 85,
-			21, 69, 5, 65, 115, 49, 6, 111, 47, 13, 0, 16, 70, 12, 244, 85, 21, 69, 5, 49, 122, 49, 6, 111, 47, 13, 0, 0, 0, 0,
-			0, 8, 67, 80, 147, 69, 21, 0, 47, 0, 0, 7, 196, 45, 82, 197, 48, 15, 0, 9, 198, 53, 50, 210, 4, 19, 64, 65, 0, 6,
-			195, 104, 19, 0, 72, 6, 195, 88, 211, 65, 13, 0, 0, 9, 68, 13, 32, 83, 32, 21, 0, 47, 0, 9, 198, 77, 65, 71, 28, 83,
-			0, 15, 9, 198, 76, 210, 83, 64, 83, 0, 15, 9, 198, 76, 197, 78, 28, 83, 0, 15, 0, 21, 2, 95, 95, 55, 6, 108, 81, 111,
-			50, 47, 89, 47, 14, 16, 6, 119, 48, 57, 13, 0, 0, 10, 199, 76, 16, 210, 37, 53, 9, 20, 67, 9, 198, 45, 112, 82, 80, 85,
-			0, 66, 9, 198, 48, 22, 129, 72, 85, 0, 67, 0, 7, 196, 64, 146, 197, 80, 66, 7, 196, 48, 242, 197, 80, 66, 7, 196, 44, 17,
-			5, 80, 66, 7, 196, 12, 17, 5, 80, 66, 8, 196, 56, 17, 1, 80, 74, 8, 0, 9, 198, 45, 112, 82, 80, 83, 0, 15, 9, 198,
-			45, 32, 85, 92, 83, 0, 15, 9, 198, 44, 227, 194, 8, 83, 0, 15, 0, 8, 197, 8, 244, 132, 21, 48, 18, 7, 195, 60, 242, 192,
-			46, 76, 0, 0, 7, 196, 64, 148, 5, 80, 66, 12, 68, 28, 147, 5, 80, 90, 37, 55, 6, 111, 0, 12, 68, 24, 147, 5, 80, 83,
-			37, 55, 6, 119, 0, 0, 0, 6, 195, 33, 83, 128, 72, 0, 0, 7, 196, 36, 166, 133, 48, 15, 0, 9, 198, 44, 243, 73, 20, 177,
-			82, 15, 0, 0, 0, 7, 196, 56, 20, 5, 48, 15, 7, 196, 64, 244, 5, 48, 15, 7, 196, 48, 84, 5, 48, 15, 7, 196, 5, 4,
-			5, 48, 15, 0, 0, 0, 0, 0, 0, 7, 2, 95, 115, 111, 89, 0, 0, 9, 198, 92, 20, 133, 53, 1, 76, 15, 9, 198, 80, 83,
-			148, 4, 177, 76, 15, 0, 6, 195, 24, 193, 83, 15, 13, 4, 95, 104, 97, 99, 107, 6, 115, 76, 111, 49, 0, 0, 12, 69, 5, 35,
-			65, 56, 64, 21, 102, 114, 0, 47, 9, 68, 77, 1, 65, 44, 21, 0, 47, 0, 12, 68, 92, 19, 133, 56, 85, 115, 50, 13, 50, 0,
-			0, 9, 198, 76, 50, 1, 73, 33, 76, 15, 9, 198, 80, 84, 212, 36, 177, 76, 15, 9, 198, 60, 36, 212, 4, 177, 76, 15, 0, 9,
-			198, 88, 243, 12, 20, 66, 71, 66, 17, 70, 48, 85, 133, 56, 66, 71, 55, 119, 84, 13, 50, 72, 13, 100, 0, 0, 13, 69, 52, 241,
-			83, 20, 192, 65, 40, 88, 13, 55, 0, 8, 197, 104, 16, 130, 20, 192, 15, 8, 197, 92, 17, 134, 20, 192, 15, 8, 197, 81, 83, 142,
-			20, 192, 15, 8, 197, 76, 16, 130, 20, 192, 15, 8, 197, 72, 145, 134, 20, 192, 15, 8, 197, 72, 85, 90, 20, 192, 15, 8, 197, 72,
-			80, 130, 20, 192, 15, 8, 197, 65, 86, 154, 20, 192, 15, 8, 197, 64, 85, 90, 20, 192, 15, 8, 197, 44, 16, 130, 20, 192, 15, 8,
-			197, 28, 146, 154, 20, 192, 15, 8, 197, 28, 17, 134, 20, 192, 15, 8, 197, 17, 82, 86, 20, 192, 15, 8, 197, 16, 240, 130, 20, 192,
-			15, 8, 197, 9, 80, 130, 20, 192, 15, 8, 197, 8, 240, 130, 20, 192, 15, 8, 197, 8, 85, 90, 20, 192, 15, 8, 197, 8, 16, 130,
-			20, 192, 15, 8, 197, 72, 85, 90, 20, 192, 15, 8, 197, 52, 244, 154, 20, 192, 15, 8, 197, 17, 81, 134, 20, 192, 15, 8, 197, 37,
-			48, 66, 20, 192, 67, 7, 2, 95, 116, 47, 119, 0, 0, 6, 195, 92, 147, 0, 72, 18, 2, 95, 123, 84, 6, 37, 34, 49, 116, 50,
-			47, 13, 107, 4, 115, 49, 0, 0, 0, 0, 9, 198, 81, 34, 80, 64, 83, 0, 15, 9, 198, 77, 66, 80, 64, 83, 0, 15, 9, 198,
-			9, 35, 203, 44, 83, 0, 15, 8, 197, 76, 147, 148, 20, 192, 15, 9, 198, 64, 84, 137, 44, 83, 0, 15, 8, 197, 28, 244, 132, 20,
-			192, 15, 16, 70, 16, 80, 201, 8, 83, 0, 72, 119, 89, 37, 71, 111, 55, 0, 9, 68, 37, 65, 77, 76, 21, 0, 47, 0, 8, 197,
-			32, 241, 86, 21, 48, 16, 7, 196, 76, 240, 133, 72, 15, 0, 0, 9, 198, 76, 195, 196, 16, 84, 128, 15, 9, 198, 76, 195, 196, 16,
-			84, 128, 15, 9, 198, 44, 195, 196, 16, 84, 128, 15, 8, 195, 80, 245, 0, 46, 76, 8, 25, 2, 95, 125, 84, 6, 37, 34, 49, 116,
-			50, 47, 13, 107, 4, 115, 49, 89, 55, 6, 124, 47, 13, 50, 0, 0, 17, 70, 52, 148, 212, 72, 19, 0, 65, 37, 89, 47, 34, 6,
-			116, 55, 0, 9, 198, 81, 32, 80, 64, 83, 0, 15, 9, 198, 17, 33, 78, 80, 83, 0, 15, 0, 10, 67, 40, 241, 89, 75, 122, 58,
-			37, 0, 14, 69, 8, 83, 132, 21, 48, 71, 111, 50, 72, 13, 89, 0, 8, 197, 52, 241, 82, 5, 48, 15, 0, 0, 9, 198, 81, 33,
-			73, 80, 84, 128, 15, 9, 198, 44, 192, 85, 80, 84, 128, 15, 10, 5, 95, 48, 97, 110, 100, 111, 50, 0, 0, 0, 0, 9, 198, 28,
-			84, 5, 85, 1, 76, 15, 18, 70, 16, 148, 195, 37, 1, 76, 72, 108, 89, 6, 37, 48, 13, 55, 0, 15, 0, 0, 8, 197, 72, 144,
-			130, 20, 192, 15, 8, 197, 56, 85, 90, 20, 192, 15, 8, 197, 17, 80, 130, 20, 192, 15, 8, 197, 105, 82, 86, 20, 192, 15, 0, 10,
-			199, 76, 50, 18, 4, 225, 5, 72, 15, 0, 8, 197, 92, 147, 4, 20, 224, 72, 0, 0, 8, 197, 64, 83, 132, 20, 192, 15, 8, 197,
-			56, 16, 200, 20, 192, 15, 8, 197, 9, 82, 84, 20, 192, 15, 8, 197, 32, 83, 132, 20, 192, 15, 0, 10, 199, 77, 84, 16, 61, 37,
-			5, 72, 15, 10, 199, 76, 50, 21, 12, 133, 5, 72, 15, 10, 199, 76, 50, 18, 60, 178, 197, 72, 15, 0, 0, 0, 0, 15, 70, 72,
-			85, 129, 56, 50, 5, 34, 13, 84, 117, 50, 91, 0, 0, 0, 0, 0, 16, 205, 4, 50, 20, 21, 34, 204, 20, 147, 139, 36, 225, 5,
-			72, 15, 0, 9, 198, 77, 68, 149, 8, 33, 76, 15, 0, 0, 8, 197, 105, 112, 86, 20, 192, 15, 8, 197, 88, 146, 154, 20, 192, 15,
-			8, 197, 52, 244, 146, 20, 192, 15, 8, 197, 44, 244, 146, 20, 192, 15, 8, 197, 8, 244, 146, 20, 192, 15, 8, 197, 8, 20, 146, 20,
-			192, 15, 8, 197, 4, 20, 154, 20, 192, 15, 8, 197, 49, 82, 70, 20, 192, 15, 8, 197, 44, 84, 150, 20, 192, 15, 8, 197, 44, 83,
-			142, 20, 192, 15, 8, 197, 44, 244, 154, 20, 192, 15, 0, 9, 198, 76, 83, 4, 21, 34, 69, 65, 18, 70, 53, 148, 212, 21, 34, 69,
-			65, 108, 89, 47, 6, 108, 12, 34, 37, 0, 15, 67, 52, 148, 197, 65, 37, 88, 117, 0, 44, 81, 101, 110, 32, 9, 198, 36, 225, 21,
-			13, 66, 69, 66, 18, 70, 33, 148, 212, 21, 34, 69, 107, 108, 89, 47, 108, 12, 34, 6, 37, 0, 9, 198, 4, 211, 133, 77, 66, 69,
-			67, 8, 67, 8, 20, 197, 21, 0, 47, 0, 15, 69, 36, 229, 5, 72, 224, 108, 50, 47, 6, 111, 34, 50, 0, 8, 197, 104, 245, 68,
-			20, 224, 72, 8, 197, 32, 17, 4, 20, 224, 72, 0, 0, 8, 197, 92, 244, 148, 20, 192, 15, 8, 197, 92, 19, 132, 20, 192, 15, 8,
-			197, 80, 147, 148, 20, 192, 15, 8, 197, 52, 20, 148, 20, 192, 15, 9, 198, 45, 113, 66, 8, 83, 0, 15, 9, 198, 45, 34, 78, 28,
-			83, 0, 15, 8, 197, 28, 148, 208, 20, 192, 15, 8, 197, 105, 112, 84, 20, 192, 15, 8, 197, 52, 19, 148, 20, 192, 15, 8, 197, 32,
-			244, 212, 20, 192, 15, 8, 197, 16, 244, 144, 20, 192, 15, 8, 197, 16, 148, 212, 20, 192, 15, 7, 66, 104, 80, 88, 13, 0, 0, 7,
-			196, 65, 80, 133, 72, 15, 7, 196, 48, 244, 5, 72, 15, 7, 196, 44, 20, 5, 72, 15, 0, 15, 70, 49, 83, 131, 32, 84, 192, 55,
-			110, 50, 91, 13, 89, 0, 0, 9, 198, 77, 69, 73, 80, 84, 128, 15, 9, 198, 76, 50, 1, 80, 84, 128, 15, 9, 198, 8, 195, 197,
-			16, 84, 128, 15, 0, 9, 198, 88, 193, 85, 28, 83, 0, 15, 9, 198, 77, 69, 78, 80, 83, 0, 15, 0, 7, 196, 44, 242, 197, 72,
-			15, 7, 196, 32, 18, 197, 72, 15, 7, 196, 8, 18, 197, 72, 15, 0, 16, 70, 16, 245, 66, 48, 85, 0, 72, 40, 71, 55, 6, 111,
-			47, 0, 0, 0, 13, 72, 53, 83, 20, 37, 67, 213, 12, 128, 21, 0, 47, 0, 0, 16, 69, 21, 133, 5, 72, 224, 111, 49, 89, 47,
-			6, 111, 34, 50, 0, 9, 198, 76, 50, 9, 52, 209, 76, 15, 18, 70, 8, 83, 8, 4, 209, 76, 71, 6, 111, 55, 107, 115, 65, 13,
-			55, 0, 0, 24, 73, 36, 212, 18, 20, 115, 133, 72, 147, 135, 108, 65, 48, 34, 4, 111, 100, 50, 6, 119, 108, 68, 0, 0, 8, 197,
-			92, 84, 150, 20, 192, 15, 8, 197, 77, 82, 90, 20, 192, 15, 8, 197, 72, 241, 134, 20, 192, 15, 8, 197, 72, 17, 134, 20, 192, 15,
-			8, 197, 52, 241, 134, 20, 192, 15, 8, 197, 45, 113, 90, 20, 192, 15, 8, 197, 17, 82, 90, 20, 192, 15, 8, 197, 9, 81, 134, 20,
-			192, 15, 8, 197, 76, 224, 86, 20, 192, 15, 8, 197, 32, 244, 154, 20, 192, 15, 0, 10, 199, 56, 21, 149, 48, 32, 65, 72, 66, 10,
-			199, 16, 146, 196, 60, 83, 133, 72, 15, 0, 25, 73, 4, 65, 77, 8, 83, 133, 52, 83, 132, 115, 72, 13, 65, 71, 13, 50, 6, 119,
-			65, 13, 50, 72, 0, 8, 197, 105, 83, 12, 20, 224, 72, 0, 21, 73, 88, 84, 146, 20, 178, 74, 44, 84, 128, 84, 111, 34, 13, 49,
-			123, 49, 13, 34, 0, 12, 201, 64, 145, 84, 21, 1, 85, 80, 84, 128, 15, 12, 201, 12, 243, 147, 84, 210, 78, 16, 84, 128, 15, 12,
-			201, 5, 37, 9, 77, 66, 69, 44, 84, 128, 15, 0, 8, 197, 92, 83, 148, 20, 192, 15, 8, 197, 80, 244, 148, 20, 192, 15, 8, 197,
-			76, 146, 144, 20, 192, 15, 8, 197, 44, 20, 148, 20, 192, 15, 8, 197, 44, 19, 148, 20, 192, 15, 8, 197, 32, 20, 208, 20, 192, 15,
-			8, 197, 16, 20, 148, 20, 192, 15, 8, 197, 52, 244, 148, 20, 192, 15, 8, 197, 9, 82, 68, 20, 192, 15, 0, 16, 67, 57, 148, 192,
-			50, 123, 89, 72, 6, 124, 88, 111, 50, 47, 0, 19, 71, 92, 83, 9, 77, 112, 65, 72, 85, 111, 55, 108, 89, 58, 6, 115, 34, 0,
-			10, 199, 76, 50, 18, 36, 178, 197, 72, 15, 10, 199, 9, 83, 12, 16, 246, 133, 72, 15, 0, 0, 0, 9, 198, 36, 229, 129, 76, 145,
-			64, 66, 0, 7, 195, 17, 84, 192, 72, 8, 0, 9, 198, 104, 241, 1, 56, 145, 192, 66, 0, 0, 14, 70, 28, 245, 65, 12, 129, 64,
-			100, 40, 6, 116, 91, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 201, 153, 110, 14, 50, 0, 0, 8, 197, 88, 243, 132, 20, 192, 15,
-			8, 197, 88, 83, 132, 20, 192, 15, 8, 197, 81, 85, 20, 20, 192, 15, 8, 197, 80, 85, 84, 20, 192, 15, 9, 198, 76, 229, 70, 24,
-			83, 0, 15, 8, 197, 56, 85, 84, 20, 192, 15, 9, 198, 44, 229, 70, 24, 83, 0, 15, 8, 197, 44, 16, 200, 20, 192, 15, 8, 197,
-			32, 19, 132, 20, 192, 15, 8, 197, 8, 240, 200, 20, 192, 15, 8, 197, 28, 243, 132, 20, 192, 15, 0, 0, 9, 198, 29, 35, 197, 88,
-			84, 192, 16, 8, 197, 92, 241, 75, 21, 32, 15, 8, 197, 76, 209, 75, 21, 32, 15, 8, 197, 45, 32, 75, 21, 32, 15, 0, 0, 9,
-			198, 92, 244, 147, 80, 83, 0, 15, 14, 69, 64, 240, 200, 21, 64, 48, 113, 91, 6, 111, 47, 0, 0, 0, 10, 69, 64, 192, 89, 21,
-			32, 21, 0, 47, 0, 16, 70, 36, 225, 197, 8, 244, 135, 108, 68, 119, 71, 113, 34, 101, 0, 12, 201, 32, 243, 199, 17, 33, 77, 64,
-			83, 0, 15, 0, 8, 197, 52, 20, 141, 61, 64, 66, 8, 197, 76, 244, 130, 21, 64, 66, 14, 69, 88, 145, 206, 21, 64, 84, 108, 67,
-			6, 111, 47, 0, 0, 8, 3, 201, 153, 116, 13, 47, 0, 0, 9, 198, 76, 50, 21, 36, 97, 76, 15, 9, 198, 48, 21, 133, 56, 65,
-			76, 15, 9, 198, 44, 22, 149, 36, 97, 76, 15, 8, 197, 77, 65, 86, 20, 224, 15, 0, 15, 70, 13, 40, 67, 32, 84, 192, 49, 34,
-			111, 91, 13, 89, 0, 0, 8, 197, 92, 20, 146, 20, 192, 15, 8, 197, 52, 22, 154, 20, 192, 15, 8, 197, 44, 225, 86, 20, 192, 15,
-			8, 197, 44, 144, 130, 20, 192, 15, 8, 197, 32, 240, 130, 20, 192, 15, 0, 0, 13, 69, 8, 82, 76, 20, 224, 71, 123, 55, 13, 50,
-			0, 14, 69, 52, 148, 212, 20, 224, 65, 108, 89, 47, 13, 50, 0, 8, 197, 92, 147, 12, 20, 224, 72, 0, 0, 8, 197, 80, 144, 200,
-			20, 192, 15, 8, 197, 72, 85, 84, 20, 192, 15, 8, 197, 44, 193, 80, 20, 192, 15, 8, 197, 32, 16, 200, 20, 192, 15, 8, 197, 9,
-			83, 132, 20, 192, 15, 8, 197, 24, 148, 212, 20, 192, 15, 12, 201, 53, 81, 199, 20, 230, 137, 25, 65, 82, 15, 0, 10, 199, 76, 84,
-			20, 20, 208, 133, 72, 66, 0, 13, 68, 28, 83, 149, 4, 100, 119, 50, 109, 85, 115, 0, 0, 0, 17, 70, 72, 243, 65, 56, 49, 64,
-			34, 122, 65, 6, 117, 89, 13, 0, 16, 16, 70, 52, 21, 5, 72, 145, 64, 65, 115, 47, 6, 119, 34, 37, 0, 16, 70, 4, 66, 5,
-			76, 145, 64, 116, 47, 107, 6, 119, 88, 37, 0, 17, 70, 89, 34, 74, 4, 113, 64, 84, 34, 119, 57, 6, 115, 90, 13, 0, 17, 70,
-			52, 85, 18, 4, 113, 64, 65, 119, 47, 34, 6, 115, 90, 13, 0, 10, 198, 28, 84, 212, 4, 113, 64, 15, 66, 10, 198, 76, 243, 77,
-			36, 113, 64, 46, 76, 0, 0, 9, 198, 56, 17, 5, 48, 145, 192, 66, 9, 198, 52, 148, 211, 48, 17, 192, 65, 0, 0, 16, 70, 41,
-			84, 212, 36, 225, 64, 90, 109, 89, 47, 6, 37, 50, 0, 9, 198, 12, 128, 82, 4, 65, 64, 66, 10, 198, 4, 229, 5, 56, 225, 64,
-			66, 16, 11, 70, 60, 97, 140, 36, 225, 64, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 22, 72, 52, 147, 137, 77, 65, 82, 36, 80,
-			65, 37, 50, 108, 89, 47, 6, 108, 12, 34, 37, 0, 0, 9, 198, 88, 82, 9, 44, 83, 0, 15, 0, 0, 13, 69, 36, 225, 205, 5,
-			32, 108, 68, 65, 116, 34, 0, 13, 69, 52, 148, 211, 21, 32, 65, 108, 89, 13, 34, 0, 8, 197, 104, 82, 75, 21, 32, 15, 8, 197,
-			77, 64, 75, 21, 32, 15, 8, 197, 65, 33, 75, 21, 32, 15, 8, 197, 64, 82, 71, 21, 32, 15, 8, 197, 40, 241, 75, 21, 32, 15,
-			8, 197, 40, 85, 75, 21, 32, 15, 0, 0, 12, 69, 12, 128, 76, 21, 64, 91, 115, 55, 111, 0, 9, 198, 77, 2, 75, 44, 83, 0,
-			15, 9, 198, 65, 34, 75, 44, 83, 0, 15, 9, 198, 45, 33, 85, 44, 83, 0, 15, 9, 198, 81, 35, 197, 8, 83, 0, 15, 8, 197,
-			44, 20, 144, 21, 64, 66, 8, 197, 80, 16, 140, 21, 64, 66, 15, 69, 72, 81, 204, 21, 64, 34, 119, 100, 55, 6, 111, 47, 0, 13,
-			69, 12, 16, 200, 21, 64, 49, 116, 91, 6, 111, 0, 7, 196, 76, 147, 132, 76, 8, 0, 0, 16, 70, 12, 16, 129, 72, 85, 0, 49,
-			115, 71, 115, 34, 6, 111, 0, 8, 197, 92, 16, 73, 21, 32, 15, 8, 197, 80, 147, 77, 21, 32, 15, 8, 197, 48, 243, 77, 21, 32,
-			15, 8, 197, 48, 83, 77, 21, 32, 15, 8, 197, 48, 19, 77, 21, 32, 15, 8, 197, 44, 243, 77, 21, 32, 15, 6, 195, 45, 83, 148,
-			72, 0, 0, 14, 69, 9, 81, 134, 21, 64, 71, 109, 83, 6, 111, 47, 0, 8, 197, 76, 84, 150, 21, 64, 66, 8, 197, 12, 244, 150,
-			21, 64, 66, 8, 197, 76, 243, 142, 21, 64, 66, 8, 197, 44, 244, 142, 21, 64, 66, 8, 197, 12, 20, 142, 21, 64, 66, 0, 0, 20,
-			72, 12, 128, 77, 64, 145, 206, 60, 224, 91, 116, 65, 48, 37, 57, 6, 113, 50, 0, 7, 195, 104, 240, 76, 66, 46, 0, 0, 0, 0,
-			0, 0, 8, 195, 16, 243, 210, 46, 76, 28, 0, 20, 71, 72, 84, 197, 73, 99, 201, 72, 34, 119, 88, 111, 34, 84, 58, 6, 115, 34,
-			0, 0, 0, 15, 69, 8, 84, 137, 28, 80, 71, 108, 12, 34, 13, 100, 13, 0, 14, 69, 8, 83, 137, 28, 80, 71, 119, 50, 13, 100,
-			13, 0, 0, 0, 16, 70, 20, 228, 85, 141, 65, 64, 117, 49, 6, 111, 47, 13, 0, 16, 7, 195, 4, 196, 192, 72, 8, 0, 10, 199,
-			12, 128, 82, 48, 245, 20, 20, 66, 19, 71, 64, 148, 143, 84, 85, 20, 20, 48, 37, 16, 40, 85, 6, 111, 47, 13, 0, 18, 71, 21,
-			66, 81, 84, 85, 20, 20, 119, 47, 37, 49, 6, 111, 47, 13, 0, 10, 199, 21, 53, 1, 24, 85, 20, 20, 67, 17, 71, 12, 245, 82,
-			28, 85, 20, 20, 49, 40, 34, 90, 6, 111, 47, 0, 0, 8, 197, 52, 147, 137, 52, 16, 65, 0, 9, 198, 8, 241, 90, 20, 209, 78,
-			15, 0, 7, 196, 8, 18, 197, 56, 15, 0, 15, 70, 56, 85, 2, 60, 242, 192, 50, 111, 47, 71, 40, 49, 0, 0, 0, 0, 9, 198,
-			21, 132, 12, 61, 50, 69, 66, 7, 196, 104, 81, 197, 56, 15, 7, 196, 72, 81, 197, 56, 15, 7, 196, 40, 81, 197, 56, 15, 7, 196,
-			52, 241, 197, 56, 72, 0, 0, 0, 9, 198, 76, 211, 197, 104, 83, 0, 15, 9, 198, 76, 210, 75, 44, 83, 0, 15, 9, 198, 29, 37,
-			73, 104, 83, 0, 15, 0, 7, 196, 64, 245, 133, 72, 15, 0, 8, 197, 92, 82, 71, 21, 32, 15, 8, 197, 88, 243, 11, 21, 32, 15,
-			8, 197, 64, 145, 75, 21, 32, 15, 8, 197, 64, 21, 19, 21, 32, 15, 8, 197, 48, 21, 87, 21, 32, 15, 0, 0, 9, 198, 81, 35,
-			199, 28, 83, 0, 15, 14, 69, 80, 245, 80, 21, 64, 47, 40, 48, 6, 111, 47, 0, 8, 197, 88, 147, 204, 21, 64, 67, 14, 69, 64,
-			245, 76, 21, 64, 48, 40, 55, 6, 111, 47, 0, 0, 7, 196, 45, 82, 69, 72, 15, 0, 8, 197, 64, 241, 73, 21, 32, 15, 8, 197,
-			40, 19, 77, 21, 32, 15, 0, 7, 196, 92, 244, 132, 80, 72, 0, 0, 0, 16, 70, 73, 80, 146, 36, 82, 192, 34, 109, 71, 34, 6,
-			37, 49, 0, 0, 6, 18, 66, 103, 0, 107, 0, 7, 6, 18, 67, 100, 101, 110, 32, 0, 110, 101, 110, 32, 0, 100, 101, 32, 0, 116,
-			32, 0, 100, 32, 0, 32, 0, 7, 6, 98, 101, 0, 8, 2, 21, 14, 128, 132, 130, 3, 71, 13, 0, 122, 111, 101, 107, 101, 114, 115,
-			8, 2, 21, 14, 128, 132, 137, 3, 71, 13, 88, 6, 40, 49, 13, 34, 89, 0, 8, 2, 114, 101, 110, 3, 71, 108, 12, 0, 4, 2,
+		static unsigned char espeakdata_dicts45_data[21599] = {
+			0, 4, 0, 0, 41, 59, 0, 0, 0, 0, 0, 0, 0, 8, 197, 104, 242, 69, 81, 48, 66, 0, 10, 199, 44, 20, 130, 60, 226, 197,
+			48, 20, 10, 199, 52, 21, 83, 60, 193, 85, 52, 20, 0, 11, 70, 32, 20, 132, 92, 20, 133, 21, 0, 10, 7, 195, 92, 19, 148, 72,
+			8, 0, 0, 8, 197, 92, 145, 71, 20, 192, 20, 8, 197, 61, 32, 75, 20, 192, 20, 8, 197, 8, 85, 71, 20, 192, 20, 8, 197, 45,
+			33, 71, 20, 192, 20, 6, 65, 8, 71, 119, 0, 0, 9, 198, 76, 193, 78, 80, 84, 128, 20, 9, 198, 64, 197, 78, 16, 84, 128, 20,
+			9, 198, 44, 224, 80, 64, 84, 128, 20, 9, 198, 44, 192, 80, 64, 84, 128, 20, 9, 198, 12, 128, 82, 80, 84, 128, 20, 9, 198, 92,
+			19, 142, 20, 84, 128, 8, 0, 0, 11, 67, 12, 17, 133, 49, 115, 83, 6, 119, 0, 7, 196, 89, 32, 71, 20, 20, 0, 13, 69, 16,
+			145, 83, 20, 192, 72, 37, 88, 13, 55, 0, 24, 73, 8, 245, 82, 28, 243, 132, 36, 84, 128, 71, 40, 34, 101, 6, 122, 50, 72, 37,
+			12, 13, 34, 0, 8, 197, 77, 82, 203, 20, 192, 20, 8, 197, 72, 149, 19, 20, 192, 20, 9, 197, 104, 243, 1, 56, 112, 66, 8, 6,
+			65, 12, 89, 119, 0, 0, 9, 198, 57, 80, 200, 80, 84, 128, 20, 0, 13, 4, 95, 8, 1, 3, 107, 6, 115, 76, 111, 49, 0, 0,
+			11, 200, 89, 35, 213, 92, 83, 135, 20, 176, 22, 0, 8, 197, 49, 82, 77, 21, 32, 20, 6, 65, 16, 72, 119, 0, 0, 13, 202, 60,
+			225, 197, 52, 18, 203, 20, 194, 74, 44, 67, 0, 9, 67, 20, 83, 128, 13, 50, 0, 9, 0, 0, 8, 197, 52, 20, 141, 21, 32, 20,
+			16, 65, 20, 37, 12, 65, 119, 55, 0, 44, 81, 109, 97, 105, 108, 32, 5, 65, 20, 119, 0, 0, 16, 70, 21, 0, 85, 48, 85, 0,
+			119, 48, 122, 55, 6, 111, 47, 0, 0, 9, 67, 92, 146, 128, 85, 2, 123, 0, 9, 67, 28, 146, 128, 100, 2, 123, 0, 18, 4, 95,
+			48, 67, 15, 107, 6, 113, 50, 72, 111, 34, 47, 89, 47, 13, 0, 0, 0, 6, 65, 24, 111, 83, 0, 0, 0, 0, 9, 198, 76, 227,
+			197, 104, 83, 0, 20, 9, 198, 45, 114, 83, 64, 83, 0, 20, 9, 198, 45, 34, 78, 44, 83, 0, 20, 0, 8, 197, 52, 85, 19, 20,
+			192, 20, 6, 65, 28, 100, 119, 0, 0, 17, 70, 16, 85, 197, 88, 84, 128, 72, 13, 6, 85, 119, 84, 13, 34, 0, 16, 70, 8, 245,
+			68, 60, 148, 128, 71, 40, 72, 58, 6, 115, 34, 0, 9, 198, 76, 194, 68, 16, 84, 128, 20, 9, 198, 44, 193, 68, 16, 84, 128, 20,
+			0, 6, 195, 44, 19, 128, 72, 0, 0, 12, 201, 36, 225, 197, 92, 146, 203, 20, 193, 0, 67, 6, 65, 32, 107, 115, 0, 0, 9, 198,
+			64, 20, 148, 36, 177, 76, 20, 9, 198, 81, 35, 203, 44, 83, 128, 20, 0, 0, 11, 1, 35, 107, 6, 111, 49, 57, 13, 0, 27, 0,
+			6, 65, 36, 37, 12, 0, 0, 9, 198, 52, 240, 200, 80, 83, 128, 72, 13, 1, 37, 48, 14, 16, 122, 89, 6, 111, 50, 47, 0, 0,
+			0, 0, 8, 197, 92, 19, 139, 20, 192, 20, 8, 197, 88, 193, 71, 20, 192, 20, 8, 197, 44, 147, 139, 20, 192, 20, 8, 197, 32, 18,
+			203, 20, 192, 20, 8, 197, 92, 242, 203, 20, 192, 20, 8, 197, 80, 80, 203, 20, 192, 20, 6, 65, 40, 57, 119, 0, 0, 9, 198, 88,
+			194, 78, 16, 84, 128, 20, 9, 198, 76, 226, 80, 64, 84, 128, 20, 9, 198, 64, 19, 1, 88, 84, 128, 20, 9, 198, 44, 226, 80, 64,
+			84, 128, 20, 9, 198, 44, 193, 80, 64, 84, 128, 20, 9, 198, 32, 84, 143, 88, 84, 128, 20, 9, 198, 28, 197, 78, 16, 84, 128, 20,
+			9, 198, 24, 194, 80, 64, 84, 128, 20, 9, 198, 8, 197, 78, 16, 84, 128, 20, 0, 15, 1, 42, 89, 47, 6, 111, 16, 34, 111, 47,
+			38, 13, 0, 27, 0, 7, 196, 49, 32, 71, 20, 20, 7, 196, 17, 32, 71, 20, 20, 10, 1, 43, 48, 55, 6, 110, 89, 0, 27, 0,
+			8, 197, 64, 147, 135, 20, 192, 20, 8, 197, 40, 83, 135, 20, 192, 20, 8, 197, 32, 83, 135, 20, 192, 20, 8, 197, 24, 18, 203, 20,
+			192, 20, 8, 197, 17, 82, 75, 20, 192, 20, 8, 197, 9, 83, 135, 20, 192, 20, 8, 197, 8, 146, 203, 20, 192, 20, 8, 197, 8, 83,
+			135, 20, 192, 20, 8, 197, 80, 82, 203, 20, 192, 20, 8, 197, 16, 243, 135, 20, 192, 20, 6, 65, 44, 49, 115, 0, 0, 9, 198, 44,
+			225, 84, 80, 84, 128, 20, 9, 198, 28, 194, 84, 80, 84, 128, 20, 9, 198, 24, 192, 68, 16, 84, 128, 20, 0, 9, 1, 46, 48, 110,
+			50, 47, 0, 27, 0, 9, 1, 47, 89, 55, 6, 111, 91, 0, 0, 6, 65, 48, 111, 55, 0, 0, 0, 0, 0, 6, 65, 52, 111, 65,
+			0, 0, 9, 198, 16, 243, 210, 16, 21, 0, 66, 6, 194, 104, 240, 9, 76, 0, 0, 0, 10, 5, 95, 48, 1, 14, 4, 111, 50, 0,
+			6, 65, 56, 111, 50, 0, 0, 9, 198, 8, 146, 154, 36, 83, 132, 66, 0, 0, 9, 198, 76, 227, 210, 44, 83, 0, 20, 14, 70, 76,
+			133, 70, 24, 83, 0, 91, 110, 83, 13, 55, 0, 7, 196, 76, 16, 133, 48, 20, 13, 68, 48, 16, 133, 48, 55, 119, 71, 13, 55, 0,
+			20, 7, 196, 44, 16, 133, 48, 20, 9, 198, 81, 37, 70, 24, 83, 0, 20, 7, 196, 80, 16, 133, 48, 66, 7, 196, 104, 243, 69, 72,
+			20, 0, 8, 197, 25, 85, 19, 20, 192, 20, 0, 9, 198, 52, 148, 211, 80, 19, 132, 65, 9, 198, 64, 193, 84, 80, 84, 128, 20, 9,
+			198, 44, 193, 84, 80, 84, 128, 20, 9, 198, 44, 192, 68, 16, 84, 128, 20, 9, 198, 8, 192, 68, 16, 84, 128, 20, 15, 70, 81, 113,
+			65, 44, 84, 128, 47, 85, 37, 49, 13, 34, 0, 7, 194, 61, 0, 9, 76, 28, 0, 20, 71, 36, 225, 197, 56, 145, 85, 72, 108, 50,
+			88, 57, 13, 50, 57, 6, 121, 34, 0, 10, 199, 44, 241, 75, 20, 195, 197, 72, 20, 0, 0, 19, 1, 64, 9, 6, 115, 48, 13, 50,
+			89, 47, 4, 115, 34, 47, 38, 13, 9, 0, 6, 65, 64, 48, 119, 0, 0, 14, 70, 12, 128, 78, 76, 243, 128, 91, 117, 89, 6, 118,
+			0, 9, 198, 28, 83, 79, 28, 83, 128, 72, 0, 12, 201, 76, 50, 1, 72, 210, 78, 44, 83, 0, 20, 0, 13, 68, 104, 244, 1, 76,
+			88, 122, 48, 6, 116, 89, 0, 0, 6, 65, 68, 49, 109, 0, 0, 0, 17, 8, 3, 18, 195, 168, 3, 8, 5, 19, 49, 34, 111, 91,
+			13, 89, 0, 0, 0, 8, 197, 104, 241, 68, 20, 192, 20, 8, 197, 92, 147, 80, 20, 192, 20, 8, 197, 72, 241, 4, 20, 192, 20, 8,
+			197, 64, 241, 68, 20, 192, 20, 8, 197, 64, 147, 80, 20, 192, 20, 14, 69, 64, 17, 4, 20, 192, 48, 111, 72, 13, 55, 0, 20, 8,
+			197, 16, 243, 80, 20, 192, 20, 8, 197, 72, 241, 68, 20, 192, 20, 8, 197, 52, 145, 4, 20, 192, 20, 8, 197, 8, 241, 68, 20, 192,
+			20, 6, 65, 72, 111, 34, 0, 0, 16, 70, 12, 245, 82, 21, 84, 128, 49, 40, 12, 34, 6, 121, 34, 0, 0, 18, 71, 4, 53, 9,
+			21, 5, 78, 80, 116, 49, 89, 37, 48, 110, 50, 47, 0, 8, 67, 80, 129, 64, 86, 13, 0, 0, 6, 195, 76, 17, 197, 20, 7, 196,
+			29, 32, 71, 20, 20, 0, 8, 197, 44, 145, 84, 20, 192, 20, 8, 197, 12, 146, 134, 21, 32, 20, 6, 65, 76, 111, 89, 0, 0, 9,
+			198, 77, 0, 82, 80, 83, 0, 20, 8, 197, 77, 0, 84, 20, 192, 20, 0, 9, 198, 56, 19, 1, 80, 145, 197, 66, 0, 0, 8, 197,
+			24, 195, 210, 21, 64, 66, 6, 65, 80, 47, 119, 0, 0, 9, 198, 56, 19, 1, 80, 145, 192, 66, 0, 16, 70, 52, 20, 85, 21, 69,
+			5, 65, 115, 49, 6, 111, 47, 13, 0, 16, 70, 12, 244, 85, 21, 69, 5, 49, 122, 49, 6, 111, 47, 13, 0, 0, 0, 6, 65, 84,
+			2, 109, 0, 0, 9, 198, 45, 114, 78, 80, 85, 0, 66, 7, 66, 85, 0, 21, 0, 10, 0, 0, 9, 198, 105, 113, 78, 16, 83, 0,
+			20, 9, 198, 64, 20, 129, 8, 83, 0, 20, 0, 6, 65, 88, 83, 119, 0, 0, 9, 198, 8, 18, 143, 56, 85, 0, 67, 0, 0, 7,
+			196, 92, 17, 133, 48, 20, 9, 198, 28, 145, 67, 32, 83, 0, 20, 7, 196, 24, 16, 133, 48, 20, 7, 196, 56, 240, 133, 48, 20, 7,
+			196, 48, 144, 133, 48, 66, 0, 8, 197, 32, 84, 141, 4, 224, 65, 8, 197, 4, 212, 212, 20, 192, 20, 8, 197, 92, 144, 200, 20, 192,
+			20, 8, 197, 72, 240, 200, 20, 192, 20, 8, 197, 44, 149, 20, 20, 192, 20, 8, 197, 8, 245, 20, 20, 192, 20, 12, 1, 92, 71, 6,
+			111, 49, 89, 55, 111, 91, 0, 6, 65, 92, 84, 119, 0, 0, 0, 0, 0, 7, 65, 96, 108, 49, 89, 0, 0, 15, 70, 40, 16, 209,
+			84, 85, 0, 90, 35, 49, 6, 111, 47, 0, 0, 10, 199, 76, 50, 18, 60, 212, 5, 48, 20, 18, 71, 12, 20, 146, 61, 84, 197, 48,
+			49, 115, 34, 40, 89, 6, 111, 55, 0, 0, 7, 196, 76, 240, 133, 72, 20, 9, 198, 76, 50, 15, 84, 65, 82, 20, 9, 68, 77, 1,
+			65, 44, 21, 0, 10, 9, 68, 37, 65, 77, 76, 21, 0, 10, 0, 12, 69, 5, 35, 65, 56, 64, 21, 102, 114, 0, 10, 5, 65, 100,
+			123, 0, 0, 0, 0, 11, 200, 28, 81, 146, 37, 69, 85, 72, 64, 67, 0, 8, 197, 80, 147, 148, 20, 192, 20, 8, 197, 52, 19, 148,
+			20, 192, 20, 8, 197, 32, 244, 212, 20, 192, 20, 8, 197, 104, 245, 68, 20, 224, 72, 8, 197, 32, 17, 4, 20, 224, 72, 7, 65, 104,
+			88, 111, 47, 0, 0, 0, 7, 195, 92, 20, 192, 72, 9, 0, 0, 8, 197, 88, 243, 132, 20, 192, 20, 8, 197, 88, 83, 132, 20, 192,
+			20, 8, 197, 81, 85, 20, 20, 192, 20, 8, 197, 80, 85, 84, 20, 192, 20, 8, 197, 56, 85, 84, 20, 192, 20, 8, 197, 44, 16, 200,
+			20, 192, 20, 8, 197, 32, 19, 132, 20, 192, 20, 8, 197, 8, 240, 200, 20, 192, 20, 8, 197, 28, 243, 132, 20, 192, 20, 8, 197, 52,
+			20, 141, 61, 64, 66, 8, 197, 76, 244, 130, 21, 64, 66, 0, 14, 70, 28, 245, 65, 12, 129, 64, 100, 40, 6, 116, 91, 0, 0, 9,
+			198, 56, 17, 5, 48, 145, 197, 66, 0, 0, 13, 69, 52, 148, 211, 21, 32, 65, 108, 89, 13, 34, 0, 8, 197, 76, 84, 150, 21, 64,
+			66, 8, 195, 16, 243, 210, 9, 76, 28, 0, 9, 198, 56, 17, 5, 48, 145, 192, 66, 9, 198, 52, 148, 211, 48, 17, 192, 65, 0, 0,
+			0, 0, 0, 20, 71, 72, 84, 197, 73, 99, 201, 72, 34, 119, 88, 111, 34, 84, 58, 6, 115, 34, 0, 0, 9, 198, 44, 229, 80, 64,
+			83, 0, 20, 9, 198, 29, 33, 80, 64, 83, 0, 20, 0, 0, 0, 0, 9, 198, 105, 114, 74, 52, 83, 0, 20, 7, 196, 80, 17, 133,
+			48, 20, 0, 8, 197, 64, 145, 80, 20, 192, 20, 8, 197, 44, 241, 80, 20, 192, 20, 8, 197, 76, 241, 80, 20, 192, 20, 8, 197, 49,
+			85, 20, 20, 192, 20, 6, 195, 60, 33, 82, 20, 0, 0, 0, 9, 198, 56, 245, 133, 52, 33, 82, 66, 9, 198, 16, 80, 197, 52, 33,
+			82, 66, 7, 196, 8, 81, 5, 48, 20, 0, 23, 73, 4, 48, 197, 77, 51, 201, 72, 84, 192, 35, 49, 89, 111, 89, 58, 6, 35, 34,
+			13, 89, 0, 11, 70, 4, 148, 140, 36, 225, 83, 21, 0, 10, 0, 9, 198, 52, 20, 137, 60, 225, 84, 68, 0, 0, 7, 196, 21, 33,
+			197, 72, 20, 0, 9, 3, 13, 39, 14, 65, 13, 50, 0, 0, 0, 0, 7, 196, 28, 17, 5, 72, 20, 0, 0, 9, 198, 105, 112, 67,
+			33, 65, 76, 20, 0, 0, 11, 68, 52, 148, 211, 20, 65, 108, 89, 13, 0, 0, 8, 197, 76, 18, 203, 21, 32, 20, 0, 9, 198, 44,
+			242, 197, 81, 65, 64, 66, 0, 0, 0, 8, 197, 33, 83, 139, 21, 32, 20, 0, 5, 194, 8, 80, 17, 0, 39, 79, 60, 225, 5, 72,
+			128, 78, 16, 83, 9, 56, 116, 206, 61, 64, 64, 4, 39, 50, 72, 13, 34, 6, 107, 116, 50, 72, 13, 55, 108, 68, 89, 4, 50, 122,
+			47, 115, 0, 0, 7, 196, 20, 225, 5, 72, 20, 0, 0, 0, 7, 195, 16, 21, 0, 72, 8, 6, 195, 16, 21, 0, 72, 0, 12, 67,
+			8, 82, 1, 71, 119, 10, 107, 6, 115, 0, 0, 8, 197, 49, 144, 197, 84, 208, 20, 0, 9, 198, 40, 19, 149, 5, 34, 64, 67, 9,
+			198, 76, 50, 15, 24, 97, 76, 20, 0, 12, 201, 65, 35, 202, 20, 53, 9, 20, 193, 78, 67, 0, 9, 198, 5, 3, 211, 80, 83, 0,
+			20, 7, 196, 36, 161, 5, 48, 20, 0, 0, 9, 198, 44, 192, 82, 36, 225, 84, 67, 0, 0, 7, 196, 72, 241, 5, 48, 20, 7, 196,
+			40, 241, 5, 48, 20, 9, 198, 36, 224, 149, 72, 113, 82, 20, 7, 196, 28, 82, 1, 16, 72, 0, 0, 9, 198, 64, 21, 18, 36, 245,
+			0, 67, 17, 70, 64, 148, 212, 60, 193, 84, 48, 37, 89, 47, 122, 55, 6, 111, 0, 0, 0, 9, 198, 92, 81, 9, 41, 97, 82, 20,
+			9, 198, 28, 83, 79, 20, 65, 82, 20, 7, 196, 60, 81, 133, 56, 20, 0, 0, 0, 0, 7, 196, 44, 17, 5, 72, 20, 7, 196, 20,
+			97, 133, 56, 20, 0, 14, 69, 52, 85, 5, 20, 224, 65, 111, 47, 6, 119, 50, 0, 8, 197, 53, 83, 77, 20, 192, 20, 0, 9, 198,
+			76, 210, 69, 77, 1, 76, 20, 0, 0, 0, 8, 197, 81, 82, 77, 20, 192, 20, 8, 197, 72, 146, 141, 20, 192, 20, 8, 197, 17, 82,
+			77, 20, 192, 20, 8, 197, 8, 19, 139, 21, 64, 66, 8, 197, 64, 147, 131, 21, 64, 66, 8, 197, 92, 147, 4, 21, 32, 20, 8, 197,
+			44, 243, 4, 21, 32, 20, 8, 197, 44, 145, 80, 21, 32, 20, 8, 197, 32, 83, 4, 21, 32, 20, 8, 197, 16, 245, 20, 21, 32, 20,
+			0, 13, 70, 48, 148, 197, 81, 65, 64, 21, 102, 114, 0, 10, 0, 0, 0, 22, 73, 77, 81, 134, 72, 17, 197, 81, 65, 64, 89, 109,
+			83, 34, 115, 90, 6, 111, 47, 13, 0, 8, 197, 12, 244, 147, 21, 64, 66, 8, 197, 80, 83, 80, 21, 32, 20, 8, 197, 48, 241, 4,
+			21, 32, 20, 8, 197, 24, 147, 20, 21, 32, 20, 8, 197, 8, 17, 4, 21, 32, 20, 0, 0, 0, 7, 196, 60, 225, 5, 72, 20, 7,
+			196, 4, 225, 5, 72, 20, 0, 0, 0, 14, 67, 20, 230, 128, 111, 50, 88, 122, 84, 122, 34, 47, 0, 0, 9, 198, 105, 113, 78, 28,
+			83, 0, 20, 9, 198, 45, 112, 78, 76, 83, 0, 20, 9, 198, 9, 32, 66, 8, 83, 0, 20, 9, 198, 45, 33, 85, 64, 83, 0, 20,
+			7, 196, 80, 81, 5, 72, 20, 7, 196, 56, 81, 5, 72, 20, 7, 196, 56, 17, 5, 72, 20, 7, 196, 48, 81, 5, 72, 20, 0, 0,
+			0, 0, 7, 196, 72, 17, 133, 48, 20, 9, 198, 28, 226, 70, 24, 83, 0, 20, 9, 198, 21, 2, 83, 80, 83, 0, 20, 7, 196, 40,
+			241, 133, 48, 20, 0, 16, 205, 4, 50, 20, 21, 34, 204, 20, 147, 139, 36, 225, 5, 72, 20, 0, 0, 0, 7, 196, 104, 17, 5, 48,
+			20, 9, 198, 76, 193, 67, 33, 65, 82, 20, 7, 196, 60, 209, 1, 80, 8, 0, 0, 21, 7, 19, 13, 19, 39, 10, 5, 19, 111, 89,
+			111, 65, 6, 111, 89, 10, 57, 13, 89, 0, 0, 0, 7, 196, 81, 82, 69, 72, 20, 7, 196, 49, 82, 69, 72, 20, 0, 8, 197, 65,
+			33, 86, 20, 192, 20, 8, 197, 93, 33, 86, 20, 192, 20, 8, 197, 76, 163, 198, 20, 192, 20, 0, 9, 198, 76, 50, 9, 52, 209, 76,
+			20, 0, 0, 12, 68, 56, 17, 148, 4, 50, 116, 83, 47, 115, 0, 0, 8, 197, 72, 241, 70, 20, 192, 20, 8, 197, 32, 82, 66, 20,
+			192, 20, 8, 197, 16, 241, 90, 20, 192, 20, 0, 9, 198, 76, 50, 15, 52, 209, 76, 20, 7, 66, 21, 32, 13, 34, 0, 0, 6, 195,
+			105, 83, 20, 72, 7, 195, 16, 145, 64, 72, 28, 0, 0, 8, 197, 76, 86, 20, 21, 64, 66, 8, 197, 104, 243, 132, 21, 32, 20, 8,
+			197, 73, 82, 84, 21, 32, 20, 8, 197, 64, 85, 84, 21, 32, 20, 8, 197, 52, 147, 132, 21, 32, 20, 8, 197, 16, 242, 212, 21, 32,
+			20, 10, 197, 104, 243, 132, 21, 32, 9, 76, 8, 0, 0, 0, 9, 67, 36, 225, 197, 108, 68, 13, 0, 11, 200, 76, 241, 5, 52, 145,
+			84, 21, 32, 20, 0, 8, 197, 76, 84, 20, 21, 64, 66, 15, 69, 80, 242, 76, 21, 64, 47, 85, 116, 55, 6, 111, 47, 0, 8, 197,
+			60, 209, 76, 21, 64, 67, 8, 197, 92, 146, 132, 21, 32, 20, 8, 197, 48, 20, 212, 21, 32, 20, 8, 197, 28, 148, 212, 21, 32, 20,
+			0, 7, 66, 16, 80, 72, 13, 0, 0, 0, 11, 68, 32, 83, 137, 56, 21, 102, 114, 0, 10, 7, 196, 104, 245, 133, 72, 8, 0, 6,
+			195, 32, 16, 82, 72, 0, 0, 19, 71, 64, 148, 143, 84, 85, 20, 20, 48, 37, 16, 40, 85, 6, 111, 47, 13, 0, 10, 199, 21, 53,
+			1, 24, 85, 20, 20, 67, 0, 7, 196, 72, 17, 5, 72, 20, 7, 196, 60, 97, 133, 72, 20, 13, 4, 95, 4, 16, 20, 10, 49, 6,
+			113, 65, 115, 0, 0, 0, 26, 74, 84, 197, 18, 5, 98, 79, 48, 85, 20, 20, 110, 55, 47, 34, 115, 84, 37, 122, 55, 6, 111, 47,
+			13, 0, 0, 0, 12, 68, 8, 83, 7, 4, 71, 111, 55, 100, 115, 0, 7, 196, 76, 18, 133, 80, 66, 0, 0, 0, 0, 7, 196, 45,
+			82, 197, 48, 20, 7, 196, 44, 17, 5, 80, 66, 7, 196, 12, 17, 5, 80, 66, 8, 67, 80, 147, 69, 21, 0, 10, 9, 68, 13, 32,
+			83, 32, 21, 0, 10, 8, 196, 56, 17, 1, 80, 74, 8, 6, 195, 88, 211, 65, 17, 0, 0, 22, 66, 4, 192, 116, 55, 9, 49, 6,
+			116, 57, 72, 116, 0, 44, 81, 113, 97, 101, 100, 97, 32, 9, 198, 53, 50, 210, 4, 19, 64, 65, 0, 0, 12, 68, 92, 19, 133, 56,
+			85, 115, 50, 13, 50, 0, 13, 4, 95, 20, 12, 4, 47, 6, 108, 55, 72, 13, 0, 0, 13, 69, 52, 241, 83, 20, 192, 65, 40, 88,
+			13, 55, 0, 8, 197, 104, 16, 130, 20, 192, 20, 8, 197, 81, 83, 142, 20, 192, 20, 8, 197, 64, 85, 90, 20, 192, 20, 8, 197, 28,
+			146, 154, 20, 192, 20, 8, 197, 17, 82, 86, 20, 192, 20, 8, 197, 8, 240, 130, 20, 192, 20, 8, 197, 8, 16, 130, 20, 192, 20, 8,
+			197, 52, 244, 154, 20, 192, 20, 8, 197, 37, 48, 66, 20, 192, 67, 0, 9, 198, 44, 192, 85, 80, 84, 128, 20, 0, 10, 198, 48, 147,
+			143, 48, 85, 77, 20, 66, 0, 0, 8, 197, 105, 112, 86, 20, 192, 20, 8, 197, 44, 244, 146, 20, 192, 20, 8, 197, 8, 244, 146, 20,
+			192, 20, 8, 197, 8, 20, 146, 20, 192, 20, 8, 197, 49, 82, 70, 20, 192, 20, 8, 197, 44, 84, 150, 20, 192, 20, 8, 197, 44, 83,
+			142, 20, 192, 20, 0, 9, 198, 81, 34, 65, 56, 113, 76, 20, 0, 0, 11, 200, 92, 19, 140, 84, 145, 5, 56, 64, 66, 0, 14, 69,
+			64, 240, 200, 21, 64, 48, 113, 91, 6, 111, 47, 0, 10, 69, 64, 192, 89, 21, 32, 21, 0, 10, 0, 0, 0, 7, 196, 76, 147, 132,
+			76, 8, 0, 15, 69, 72, 81, 204, 21, 64, 34, 119, 100, 55, 6, 111, 47, 0, 8, 197, 92, 16, 73, 21, 32, 20, 8, 197, 48, 19,
+			77, 21, 32, 20, 0, 0, 0, 7, 196, 45, 82, 69, 72, 20, 0, 0, 11, 70, 4, 225, 18, 60, 145, 0, 21, 0, 10, 0, 18, 71,
+			21, 66, 81, 84, 85, 20, 20, 119, 47, 37, 49, 6, 111, 47, 13, 0, 0, 22, 72, 52, 147, 137, 77, 65, 82, 36, 80, 65, 37, 50,
+			108, 89, 47, 6, 108, 12, 34, 37, 0, 9, 198, 9, 37, 83, 76, 83, 0, 20, 9, 198, 45, 112, 75, 44, 83, 0, 20, 9, 198, 29,
+			34, 69, 104, 83, 0, 20, 0, 8, 197, 52, 22, 9, 52, 16, 65, 0, 10, 66, 21, 80, 119, 10, 109, 12, 0, 17, 0, 0, 9, 198,
+			77, 66, 69, 24, 83, 0, 20, 9, 198, 45, 34, 69, 8, 83, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 68, 56, 16, 137,
+			40, 50, 35, 71, 6, 123, 0, 0, 8, 197, 44, 227, 203, 20, 192, 20, 8, 197, 29, 37, 87, 20, 192, 20, 8, 197, 32, 80, 130, 20,
+			224, 72, 0, 9, 198, 88, 195, 212, 80, 84, 128, 20, 9, 198, 76, 227, 212, 80, 84, 128, 20, 9, 198, 76, 177, 76, 80, 84, 128, 20,
+			9, 198, 76, 50, 5, 52, 84, 128, 20, 9, 198, 24, 195, 212, 80, 84, 128, 20, 9, 198, 24, 195, 196, 16, 84, 128, 20, 9, 198, 9,
+			35, 197, 16, 84, 128, 20, 0, 0, 11, 68, 4, 195, 5, 76, 116, 55, 13, 89, 0, 13, 68, 4, 193, 21, 76, 116, 55, 72, 6, 110,
+			89, 0, 0, 8, 197, 44, 20, 19, 20, 192, 20, 8, 197, 33, 84, 211, 20, 192, 20, 8, 197, 45, 83, 142, 20, 224, 72, 0, 9, 198,
+			60, 181, 15, 8, 84, 128, 66, 9, 198, 77, 66, 74, 25, 49, 76, 20, 9, 198, 88, 194, 69, 28, 84, 128, 20, 9, 198, 77, 2, 74,
+			44, 84, 128, 20, 9, 198, 76, 195, 197, 8, 84, 128, 20, 9, 198, 52, 243, 147, 80, 84, 128, 20, 9, 198, 52, 81, 82, 16, 84, 128,
+			20, 9, 198, 52, 80, 78, 16, 84, 128, 20, 9, 198, 44, 226, 75, 44, 84, 128, 20, 9, 198, 24, 194, 75, 44, 84, 128, 20, 9, 198,
+			8, 194, 75, 44, 84, 128, 20, 9, 198, 8, 81, 78, 16, 84, 128, 20, 0, 0, 0, 8, 197, 76, 197, 73, 21, 32, 20, 8, 197, 52,
+			146, 141, 21, 32, 20, 8, 197, 44, 241, 84, 21, 32, 20, 0, 0, 0, 0, 0, 11, 70, 72, 84, 197, 5, 32, 200, 21, 0, 10, 0,
+			0, 7, 196, 92, 147, 4, 20, 72, 0, 8, 197, 61, 3, 1, 28, 80, 20, 6, 195, 16, 149, 0, 72, 0, 9, 198, 17, 112, 82, 72,
+			83, 0, 20, 11, 70, 52, 81, 9, 12, 19, 0, 21, 0, 10, 0, 18, 71, 76, 245, 66, 72, 85, 20, 20, 89, 40, 71, 34, 6, 111,
+			47, 13, 0, 10, 199, 52, 18, 143, 72, 85, 20, 20, 67, 16, 71, 12, 245, 67, 32, 85, 20, 20, 49, 40, 91, 6, 111, 47, 0, 9,
+			67, 32, 146, 128, 107, 2, 123, 0, 0, 9, 198, 76, 50, 1, 88, 245, 0, 66, 16, 70, 12, 245, 80, 48, 85, 0, 49, 40, 48, 55,
+			6, 111, 47, 0, 16, 70, 52, 19, 131, 32, 85, 0, 65, 116, 50, 91, 6, 111, 47, 0, 15, 70, 13, 35, 195, 32, 85, 0, 49, 34,
+			113, 91, 6, 111, 0, 0, 0, 9, 198, 77, 68, 149, 36, 177, 76, 20, 0, 0, 0, 0, 0, 11, 199, 64, 85, 18, 60, 193, 85, 52,
+			20, 66, 7, 195, 8, 83, 128, 72, 9, 0, 0, 0, 0, 0, 9, 198, 8, 83, 5, 52, 209, 82, 20, 0, 8, 197, 56, 21, 143, 20,
+			192, 66, 8, 197, 80, 147, 135, 20, 192, 20, 8, 197, 52, 84, 135, 20, 192, 20, 8, 197, 44, 243, 139, 20, 192, 20, 8, 197, 28, 244,
+			135, 20, 192, 20, 8, 197, 52, 242, 203, 20, 192, 20, 11, 70, 76, 241, 148, 92, 20, 133, 21, 0, 10, 0, 9, 198, 105, 112, 66, 8,
+			84, 128, 20, 9, 198, 77, 5, 84, 80, 84, 128, 20, 9, 198, 77, 1, 84, 80, 84, 128, 20, 9, 198, 44, 82, 76, 16, 84, 128, 20,
+			0, 12, 201, 92, 19, 148, 72, 245, 87, 20, 225, 0, 66, 0, 0, 13, 69, 52, 148, 211, 20, 224, 65, 108, 89, 13, 50, 0, 8, 197,
+			92, 146, 203, 20, 192, 20, 8, 197, 80, 242, 203, 20, 192, 20, 13, 69, 80, 16, 203, 20, 192, 47, 111, 49, 13, 55, 0, 8, 197, 16,
+			145, 199, 20, 192, 20, 8, 197, 44, 225, 75, 20, 192, 20, 0, 9, 198, 105, 112, 75, 44, 84, 128, 20, 9, 198, 49, 82, 83, 80, 84,
+			128, 20, 9, 198, 32, 241, 78, 16, 84, 128, 20, 9, 198, 24, 192, 75, 44, 84, 128, 20, 9, 198, 17, 82, 83, 80, 84, 128, 20, 9,
+			198, 12, 245, 78, 80, 84, 128, 20, 0, 7, 195, 8, 83, 148, 72, 9, 0, 0, 0, 0, 10, 199, 92, 146, 201, 64, 81, 9, 4, 67,
+			0, 0, 9, 198, 104, 241, 15, 20, 225, 5, 66, 0, 7, 66, 28, 80, 81, 13, 0, 0, 0, 0, 16, 69, 16, 19, 137, 12, 16, 72,
+			35, 50, 6, 37, 47, 89, 35, 0, 0, 9, 198, 76, 224, 66, 8, 83, 0, 20, 9, 198, 76, 163, 197, 52, 83, 0, 20, 9, 198, 44,
+			224, 66, 8, 83, 0, 20, 9, 198, 29, 32, 66, 8, 83, 0, 20, 9, 198, 28, 243, 195, 32, 83, 0, 20, 9, 198, 17, 33, 85, 80,
+			83, 0, 20, 0, 0, 12, 68, 8, 83, 137, 28, 71, 119, 50, 13, 100, 0, 0, 0, 9, 198, 77, 65, 67, 32, 83, 0, 20, 9, 198,
+			44, 226, 66, 8, 83, 0, 20, 9, 198, 25, 35, 205, 52, 83, 0, 20, 9, 198, 76, 50, 5, 16, 83, 0, 20, 0, 0, 7, 196, 56,
+			243, 133, 80, 66, 10, 198, 28, 85, 197, 21, 53, 0, 72, 9, 0, 0, 16, 70, 76, 147, 8, 61, 81, 84, 89, 37, 55, 40, 6, 111,
+			47, 0, 0, 0, 7, 196, 64, 19, 5, 80, 66, 0, 15, 69, 16, 149, 133, 73, 48, 72, 37, 84, 6, 111, 34, 89, 0, 0, 9, 198,
+			44, 84, 147, 80, 83, 128, 20, 0, 10, 199, 76, 50, 14, 4, 32, 133, 48, 20, 0, 0, 14, 69, 8, 83, 129, 72, 64, 71, 13, 50,
+			116, 34, 47, 0, 8, 197, 32, 241, 80, 20, 192, 20, 8, 197, 8, 82, 84, 20, 192, 20, 14, 69, 9, 33, 84, 20, 192, 71, 34, 13,
+			47, 111, 55, 0, 0, 9, 198, 76, 50, 21, 36, 97, 76, 20, 0, 0, 15, 70, 48, 21, 82, 20, 229, 0, 55, 122, 34, 6, 116, 67,
+			0, 7, 196, 44, 84, 5, 72, 20, 13, 3, 95, 49, 15, 6, 108, 12, 34, 89, 47, 13, 0, 0, 8, 197, 80, 148, 16, 20, 192, 20,
+			8, 197, 80, 83, 80, 20, 192, 20, 8, 197, 72, 147, 80, 20, 192, 20, 8, 197, 48, 148, 208, 20, 192, 20, 8, 197, 32, 243, 80, 20,
+			192, 20, 8, 197, 24, 145, 68, 20, 192, 20, 8, 197, 76, 147, 80, 20, 192, 20, 0, 17, 70, 76, 52, 129, 8, 33, 76, 89, 49, 34,
+			111, 71, 13, 55, 0, 20, 6, 195, 48, 17, 197, 20, 6, 195, 57, 97, 1, 17, 0, 14, 139, 9, 14, 7, 18, 5, 4, 9, 195, 171,
+			14, 20, 68, 16, 3, 226, 130, 172, 6, 121, 16, 122, 47, 4, 119, 49, 13, 50, 0, 0, 0, 9, 198, 16, 148, 203, 21, 69, 5, 66,
+			9, 198, 12, 20, 211, 21, 69, 5, 66, 8, 197, 8, 147, 10, 21, 64, 66, 8, 197, 105, 82, 86, 21, 32, 20, 8, 197, 49, 80, 130,
+			21, 32, 20, 8, 197, 48, 80, 130, 21, 32, 20, 8, 197, 33, 82, 86, 21, 32, 20, 8, 197, 8, 144, 130, 21, 32, 20, 11, 70, 32,
+			243, 69, 64, 17, 197, 21, 0, 10, 0, 12, 67, 64, 17, 197, 21, 0, 10, 81, 117, 112, 32, 14, 67, 64, 17, 197, 21, 0, 10, 81,
+			100, 111, 119, 110, 32, 0, 19, 71, 13, 84, 133, 81, 64, 71, 20, 49, 109, 34, 13, 47, 6, 115, 90, 13, 0, 0, 12, 3, 95, 50,
+			15, 47, 85, 6, 119, 72, 13, 0, 0, 0, 0, 0, 13, 68, 8, 83, 137, 56, 71, 119, 50, 6, 37, 50, 0, 9, 198, 12, 16, 137,
+			56, 85, 0, 67, 0, 10, 67, 32, 85, 0, 107, 13, 47, 0, 9, 0, 9, 198, 45, 35, 197, 104, 83, 0, 20, 9, 198, 44, 194, 78,
+			28, 83, 0, 20, 0, 16, 70, 24, 16, 197, 8, 243, 203, 83, 111, 37, 89, 71, 40, 49, 0, 10, 199, 76, 84, 20, 20, 208, 133, 72,
+			66, 0, 9, 198, 44, 16, 137, 56, 85, 0, 67, 7, 196, 92, 20, 5, 56, 20, 12, 3, 95, 51, 15, 72, 6, 111, 34, 72, 13, 0,
+			9, 4, 95, 15, 18, 4, 72, 13, 0, 0, 8, 197, 4, 113, 78, 16, 16, 66, 8, 197, 36, 230, 129, 28, 80, 20, 0, 9, 198, 17,
+			35, 208, 64, 83, 0, 20, 9, 198, 77, 67, 208, 64, 83, 0, 20, 6, 194, 37, 48, 72, 9, 0, 0, 7, 196, 64, 20, 133, 48, 20,
+			0, 0, 0, 0, 7, 196, 56, 20, 5, 48, 20, 7, 196, 64, 244, 5, 48, 20, 7, 196, 48, 84, 5, 48, 20, 7, 196, 64, 148, 5,
+			80, 66, 12, 68, 28, 147, 5, 80, 90, 37, 55, 6, 111, 0, 12, 68, 24, 147, 5, 80, 83, 37, 55, 6, 119, 0, 9, 198, 76, 50,
+			9, 48, 65, 82, 20, 0, 0, 0, 0, 0, 8, 197, 64, 83, 132, 20, 192, 20, 8, 197, 56, 16, 200, 20, 192, 20, 8, 197, 9, 82,
+			84, 20, 192, 20, 8, 197, 32, 83, 132, 20, 192, 20, 8, 197, 92, 147, 4, 20, 224, 72, 0, 9, 198, 77, 68, 149, 8, 33, 76, 20,
+			9, 198, 76, 195, 196, 16, 84, 128, 20, 9, 198, 44, 195, 196, 16, 84, 128, 20, 0, 0, 7, 196, 44, 20, 5, 72, 20, 12, 3, 95,
+			53, 15, 84, 6, 123, 84, 72, 13, 0, 0, 8, 197, 92, 83, 148, 20, 192, 20, 8, 197, 80, 244, 148, 20, 192, 20, 8, 197, 44, 20,
+			148, 20, 192, 20, 8, 197, 32, 20, 208, 20, 192, 20, 8, 197, 16, 20, 148, 20, 192, 20, 8, 197, 52, 244, 148, 20, 192, 20, 8, 197,
+			9, 82, 68, 20, 192, 20, 8, 197, 105, 83, 12, 20, 224, 72, 0, 15, 4, 95, 13, 3, 14, 65, 6, 116, 49, 14, 16, 113, 50, 0,
+			0, 8, 67, 56, 85, 192, 50, 127, 0, 0, 0, 17, 70, 4, 226, 83, 21, 69, 5, 115, 50, 37, 88, 6, 111, 47, 13, 0, 14, 69,
+			88, 145, 206, 21, 64, 84, 108, 67, 6, 111, 47, 0, 8, 197, 92, 241, 75, 21, 32, 20, 0, 0, 0, 12, 3, 95, 54, 15, 88, 6,
+			111, 89, 72, 13, 0, 0, 13, 69, 36, 225, 205, 5, 32, 108, 68, 65, 116, 34, 0, 8, 197, 12, 244, 150, 21, 64, 66, 8, 197, 76,
+			243, 142, 21, 64, 66, 8, 197, 64, 82, 71, 21, 32, 20, 8, 197, 40, 241, 75, 21, 32, 20, 0, 0, 0, 7, 196, 92, 244, 132, 80,
+			72, 0, 0, 16, 70, 73, 80, 146, 36, 82, 192, 34, 109, 71, 34, 6, 37, 49, 0, 9, 198, 44, 227, 203, 44, 83, 0, 20, 0, 19,
+			71, 92, 83, 9, 77, 112, 65, 72, 85, 111, 55, 108, 89, 58, 6, 115, 34, 0, 0, 13, 68, 8, 84, 137, 28, 71, 108, 12, 34, 13,
+			100, 0, 7, 196, 32, 20, 5, 72, 20, 7, 196, 44, 85, 5, 56, 20, 14, 3, 95, 55, 15, 88, 6, 119, 84, 13, 50, 72, 13, 0,
+			0, 8, 197, 41, 83, 12, 36, 80, 72, 8, 197, 41, 83, 12, 36, 80, 72, 0, 0, 0, 7, 196, 44, 21, 133, 48, 20, 0, 0, 0,
+			11, 199, 72, 81, 5, 44, 21, 133, 48, 20, 65, 0, 7, 196, 104, 85, 5, 48, 20, 7, 196, 44, 85, 5, 48, 20, 9, 68, 64, 21,
+			3, 32, 21, 0, 10, 0, 0, 9, 198, 12, 244, 147, 20, 193, 84, 67, 6, 194, 20, 224, 72, 8, 0, 13, 3, 95, 51, 88, 72, 6,
+			111, 34, 47, 13, 101, 0, 0, 7, 196, 104, 85, 133, 72, 20, 7, 196, 48, 85, 133, 72, 20, 7, 196, 16, 21, 133, 72, 20, 9, 68,
+			76, 149, 5, 76, 21, 0, 10, 14, 3, 95, 48, 67, 107, 6, 113, 50, 72, 111, 34, 47, 0, 0, 8, 197, 52, 243, 77, 20, 192, 20,
+			8, 197, 44, 243, 132, 20, 224, 72, 0, 0, 0, 21, 72, 60, 225, 193, 77, 69, 146, 36, 160, 113, 50, 100, 116, 89, 47, 84, 34, 6,
+			123, 0, 7, 196, 92, 21, 5, 72, 20, 7, 196, 104, 85, 5, 56, 20, 0, 8, 197, 64, 145, 77, 20, 192, 20, 0, 0, 17, 71, 72,
+			240, 200, 20, 99, 210, 80, 34, 39, 91, 6, 83, 39, 34, 0, 10, 199, 44, 19, 5, 24, 21, 5, 72, 20, 0, 0, 8, 197, 53, 84,
+			203, 21, 64, 66, 8, 197, 8, 241, 75, 21, 64, 66, 8, 197, 44, 144, 203, 21, 32, 20, 0, 9, 198, 53, 84, 197, 81, 65, 64, 66,
+			0, 0, 0, 21, 73, 52, 18, 83, 60, 227, 133, 81, 65, 64, 65, 111, 88, 113, 50, 6, 111, 47, 13, 0, 8, 197, 92, 18, 203, 21,
+			32, 20, 8, 197, 52, 82, 203, 21, 32, 20, 0, 7, 66, 40, 80, 57, 13, 0, 15, 3, 95, 49, 57, 50, 6, 119, 100, 13, 50, 47,
+			37, 50, 0, 0, 12, 3, 95, 49, 56, 6, 116, 101, 47, 37, 50, 0, 0, 14, 68, 8, 84, 137, 56, 71, 108, 12, 34, 6, 108, 50,
+			0, 7, 196, 80, 245, 133, 72, 20, 7, 196, 44, 21, 133, 72, 20, 7, 196, 20, 229, 5, 72, 20, 0, 0, 9, 198, 81, 33, 85, 104,
+			83, 0, 20, 9, 198, 45, 112, 66, 8, 83, 0, 20, 9, 198, 45, 33, 78, 28, 83, 0, 20, 9, 198, 44, 229, 84, 76, 83, 0, 20,
+			9, 198, 17, 37, 80, 64, 83, 0, 20, 0, 0, 9, 198, 64, 19, 70, 48, 85, 0, 66, 7, 196, 80, 21, 5, 72, 20, 7, 196, 64,
+			84, 5, 72, 20, 7, 196, 44, 244, 5, 72, 20, 7, 196, 8, 85, 5, 72, 20, 0, 0, 9, 198, 81, 114, 74, 24, 83, 0, 20, 9,
+			198, 76, 211, 203, 44, 83, 0, 20, 10, 3, 95, 49, 49, 6, 111, 55, 83, 0, 0, 10, 3, 95, 49, 48, 47, 6, 37, 50, 0, 0,
+			7, 196, 56, 85, 133, 48, 20, 7, 196, 44, 85, 133, 48, 20, 7, 196, 56, 21, 133, 48, 20, 7, 196, 8, 20, 133, 80, 66, 13, 3,
+			95, 49, 51, 72, 6, 111, 34, 47, 37, 50, 0, 0, 12, 3, 95, 49, 50, 47, 85, 6, 115, 55, 83, 0, 0, 13, 3, 95, 49, 53,
+			84, 6, 123, 83, 47, 37, 50, 0, 0, 14, 3, 95, 49, 52, 83, 6, 108, 12, 34, 47, 37, 50, 0, 0, 12, 68, 76, 84, 137, 20,
+			89, 108, 12, 34, 37, 0, 7, 196, 80, 149, 5, 48, 20, 7, 196, 56, 85, 5, 48, 20, 7, 196, 52, 85, 5, 48, 20, 7, 196, 52,
+			245, 5, 80, 66, 7, 196, 104, 241, 1, 80, 66, 12, 3, 95, 52, 15, 84, 6, 37, 34, 72, 13, 0, 15, 3, 95, 49, 55, 88, 6,
+			119, 84, 13, 50, 47, 37, 50, 0, 0, 13, 3, 95, 49, 54, 88, 6, 111, 89, 47, 37, 50, 0, 0, 0, 10, 199, 64, 19, 148, 60,
+			97, 133, 48, 20, 15, 3, 95, 55, 88, 88, 6, 119, 84, 13, 50, 47, 13, 101, 0, 0, 13, 68, 12, 245, 133, 72, 49, 110, 84, 13,
+			34, 0, 20, 8, 196, 92, 20, 133, 56, 72, 9, 0, 0, 0, 0, 7, 196, 8, 245, 5, 72, 20, 0, 8, 197, 104, 245, 133, 20, 192,
+			66, 8, 197, 104, 241, 207, 20, 64, 66, 0, 0, 0, 0, 0, 16, 70, 88, 81, 5, 81, 65, 64, 84, 13, 72, 6, 111, 47, 13, 0,
+			11, 70, 92, 80, 147, 37, 65, 64, 21, 0, 10, 0, 0, 0, 8, 197, 92, 148, 16, 21, 32, 20, 8, 197, 65, 84, 144, 21, 32, 20,
+			8, 197, 52, 244, 16, 21, 32, 20, 0, 0, 0, 13, 68, 60, 213, 133, 72, 122, 65, 84, 6, 111, 34, 0, 9, 198, 44, 243, 80, 48,
+			245, 0, 66, 0, 9, 198, 76, 83, 4, 21, 34, 69, 65, 15, 70, 72, 85, 129, 56, 50, 5, 34, 13, 84, 117, 50, 91, 0, 18, 70,
+			53, 148, 212, 21, 34, 69, 65, 108, 89, 47, 6, 108, 12, 34, 37, 0, 9, 198, 52, 148, 203, 60, 244, 0, 65, 18, 70, 33, 148, 212,
+			21, 34, 69, 107, 108, 89, 47, 108, 12, 34, 6, 37, 0, 0, 9, 198, 76, 50, 15, 80, 83, 0, 20, 0, 10, 199, 77, 84, 16, 61,
+			37, 5, 72, 20, 0, 9, 198, 64, 244, 148, 72, 85, 0, 66, 7, 196, 36, 165, 133, 72, 20, 0, 16, 70, 64, 148, 212, 4, 50, 5,
+			48, 37, 89, 47, 6, 116, 91, 0, 0, 9, 198, 45, 83, 147, 80, 83, 0, 20, 9, 198, 44, 20, 9, 81, 65, 76, 20, 0, 10, 69,
+			48, 20, 20, 61, 0, 21, 0, 10, 14, 3, 95, 50, 88, 47, 85, 6, 108, 50, 47, 13, 101, 0, 0, 7, 196, 32, 85, 133, 48, 20,
+			12, 68, 28, 85, 133, 48, 100, 119, 84, 13, 55, 0, 0, 9, 198, 12, 243, 148, 72, 243, 5, 66, 0, 0, 0, 7, 196, 72, 21, 5,
+			48, 20, 7, 196, 60, 53, 5, 80, 66, 9, 198, 76, 50, 21, 81, 65, 82, 20, 9, 198, 76, 50, 9, 81, 65, 82, 20, 13, 3, 95,
+			56, 15, 6, 116, 101, 47, 89, 47, 13, 0, 0, 0, 0, 0, 7, 196, 48, 22, 133, 72, 20, 9, 198, 28, 194, 78, 77, 65, 82, 20,
+			0, 0, 0, 16, 67, 9, 96, 128, 71, 123, 84, 6, 122, 34, 71, 119, 55, 47, 0, 0, 13, 3, 95, 63, 63, 89, 6, 37, 65, 71,
+			122, 55, 0, 0, 8, 197, 44, 145, 90, 20, 192, 20, 0, 0, 8, 67, 40, 241, 64, 75, 122, 0, 6, 195, 104, 245, 64, 72, 14, 3,
+			95, 52, 88, 83, 6, 108, 12, 34, 47, 13, 101, 0, 0, 0, 15, 69, 76, 177, 76, 21, 64, 89, 49, 13, 55, 6, 111, 47, 0, 8,
+			197, 88, 244, 132, 21, 32, 20, 8, 197, 44, 147, 132, 21, 32, 20, 8, 197, 8, 192, 68, 21, 32, 20, 0, 0, 0, 0, 8, 197, 4,
+			213, 76, 21, 64, 67, 8, 197, 44, 192, 84, 21, 32, 20, 0, 7, 194, 56, 16, 9, 76, 8, 8, 66, 36, 176, 2, 108, 49, 0, 0,
+			7, 195, 44, 210, 64, 17, 42, 13, 3, 95, 53, 88, 84, 6, 123, 83, 47, 13, 101, 0, 0, 7, 196, 104, 241, 18, 4, 66, 0, 0,
+			9, 198, 44, 225, 85, 44, 83, 0, 20, 9, 198, 52, 148, 129, 8, 83, 0, 67, 0, 17, 71, 12, 245, 82, 28, 85, 20, 20, 49, 40,
+			34, 90, 6, 111, 47, 0, 0, 9, 198, 52, 147, 129, 72, 85, 0, 67, 17, 70, 44, 194, 78, 44, 85, 0, 49, 55, 108, 68, 49, 6,
+			111, 47, 0, 11, 70, 21, 132, 12, 60, 149, 0, 21, 0, 10, 0, 7, 195, 52, 16, 82, 72, 8, 0, 9, 198, 105, 114, 69, 8, 83,
+			0, 20, 9, 198, 65, 34, 69, 28, 83, 0, 20, 0, 13, 3, 95, 54, 88, 88, 6, 111, 89, 47, 13, 101, 0, 0, 7, 196, 88, 86,
+			133, 48, 20, 7, 196, 24, 86, 133, 48, 20, 7, 196, 52, 22, 133, 48, 20, 7, 196, 56, 246, 133, 48, 20, 0, 6, 195, 20, 145, 82,
+			20, 0, 0, 11, 70, 92, 80, 147, 37, 65, 83, 21, 0, 10, 0, 7, 196, 36, 166, 133, 48, 20, 9, 198, 76, 50, 5, 81, 65, 82,
+			20, 0, 0, 10, 67, 40, 241, 89, 75, 122, 58, 37, 0, 0, 0, 0, 8, 197, 72, 144, 130, 20, 192, 20, 8, 197, 56, 85, 90, 20,
+			192, 20, 8, 197, 17, 80, 130, 20, 192, 20, 8, 197, 105, 82, 86, 20, 192, 20, 0, 9, 198, 80, 84, 212, 36, 177, 76, 20, 9, 198,
+			81, 33, 73, 80, 84, 128, 20, 0, 0, 0, 8, 197, 92, 84, 150, 20, 192, 20, 8, 197, 45, 113, 90, 20, 192, 20, 8, 197, 76, 224,
+			86, 20, 192, 20, 8, 197, 32, 244, 154, 20, 192, 20, 9, 198, 41, 80, 137, 48, 85, 77, 20, 0, 10, 66, 57, 32, 50, 110, 65, 13,
+			34, 0, 0, 10, 199, 92, 81, 215, 36, 166, 133, 72, 20, 13, 3, 95, 56, 88, 47, 6, 116, 101, 47, 13, 101, 0, 0, 0, 0, 0,
+			7, 195, 104, 240, 76, 66, 9, 0, 0, 8, 197, 44, 20, 144, 21, 64, 66, 8, 197, 80, 147, 77, 21, 32, 20, 8, 197, 48, 83, 77,
+			21, 32, 20, 0, 16, 70, 52, 21, 5, 72, 145, 64, 65, 115, 47, 6, 119, 34, 37, 0, 10, 198, 28, 84, 212, 4, 113, 64, 20, 66,
+			7, 66, 52, 80, 65, 13, 0, 0, 15, 3, 95, 57, 88, 50, 6, 119, 81, 13, 50, 47, 13, 101, 0, 0, 16, 70, 12, 148, 131, 84,
+			149, 0, 89, 108, 34, 49, 40, 6, 37, 0, 0, 14, 69, 8, 83, 137, 28, 80, 71, 119, 50, 13, 100, 13, 0, 8, 195, 52, 85, 0,
+			9, 76, 28, 0, 14, 70, 76, 133, 84, 80, 83, 0, 91, 110, 47, 13, 55, 0, 16, 70, 12, 83, 129, 44, 83, 0, 89, 13, 50, 115,
+			49, 13, 55, 0, 0, 10, 199, 12, 128, 82, 48, 245, 20, 20, 66, 10, 199, 9, 83, 12, 16, 246, 133, 72, 20, 0, 7, 196, 36, 166,
+			133, 72, 20, 0, 0, 9, 198, 77, 68, 133, 56, 113, 76, 20, 12, 3, 95, 63, 65, 55, 6, 111, 47, 13, 34, 0, 0, 0, 7, 196,
+			8, 22, 133, 48, 20, 13, 72, 20, 229, 5, 73, 4, 137, 76, 80, 21, 0, 10, 0, 6, 195, 84, 145, 82, 20, 0, 0, 0, 0, 0,
+			0, 7, 194, 36, 224, 9, 76, 28, 0, 0, 0, 16, 70, 36, 225, 197, 8, 244, 135, 108, 68, 119, 71, 113, 34, 101, 0, 0, 9, 198,
+			64, 19, 148, 76, 84, 128, 20, 9, 198, 44, 194, 69, 16, 84, 128, 20, 9, 198, 24, 195, 206, 44, 84, 128, 20, 0, 14, 4, 95, 15,
+			7, 15, 6, 122, 101, 122, 50, 111, 49, 0, 0, 0, 8, 197, 36, 164, 211, 20, 192, 20, 8, 197, 64, 241, 75, 20, 192, 20, 8, 197,
+			40, 241, 75, 20, 192, 20, 0, 9, 198, 105, 112, 78, 28, 84, 128, 20, 9, 198, 72, 243, 211, 80, 84, 128, 20, 9, 198, 28, 194, 66,
+			8, 84, 128, 20, 9, 198, 8, 243, 19, 80, 84, 128, 20, 0, 0, 0, 9, 198, 52, 148, 194, 73, 82, 75, 65, 8, 197, 57, 83, 77,
+			21, 32, 20, 0, 0, 10, 199, 36, 225, 197, 88, 243, 7, 20, 67, 0, 0, 0, 0, 29, 75, 20, 193, 147, 80, 81, 5, 57, 67, 195,
+			33, 64, 4, 111, 55, 83, 6, 89, 47, 119, 72, 13, 50, 47, 39, 100, 47, 0, 0, 12, 201, 60, 225, 197, 48, 243, 198, 48, 146, 139,
+			67, 9, 198, 81, 35, 197, 80, 83, 0, 20, 9, 198, 77, 112, 70, 24, 83, 0, 20, 9, 198, 65, 37, 84, 80, 83, 0, 20, 20, 72,
+			80, 245, 82, 56, 148, 85, 21, 64, 47, 40, 34, 50, 37, 49, 6, 111, 47, 0, 0, 0, 0, 10, 199, 52, 241, 9, 56, 85, 20, 20,
+			67, 0, 9, 198, 33, 82, 67, 32, 83, 0, 20, 9, 198, 29, 82, 67, 32, 83, 0, 20, 9, 198, 17, 33, 77, 52, 83, 0, 20, 9,
+			198, 77, 65, 78, 28, 83, 0, 20, 20, 72, 12, 128, 77, 9, 33, 84, 80, 80, 91, 35, 65, 71, 34, 6, 111, 47, 13, 0, 0, 8,
+			197, 52, 148, 211, 36, 80, 65, 0, 14, 139, 1, 12, 5, 24, 1, 14, 4, 18, 9, 195, 171, 67, 0, 23, 67, 88, 243, 132, 84, 113,
+			50, 10, 47, 116, 10, 47, 13, 0, 82, 100, 97, 116, 32, 100, 101, 32, 8, 195, 4, 19, 128, 9, 76, 28, 0, 7, 196, 72, 246, 133,
+			80, 66, 14, 4, 95, 48, 77, 52, 71, 6, 37, 55, 57, 40, 50, 0, 0, 6, 195, 52, 146, 142, 72, 0, 9, 198, 48, 243, 195, 32,
+			83, 128, 20, 6, 195, 104, 246, 143, 66, 6, 195, 40, 245, 87, 72, 14, 4, 95, 48, 77, 50, 65, 6, 37, 55, 57, 40, 50, 0, 0,
+			10, 199, 81, 32, 86, 21, 53, 9, 20, 67, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55, 57, 116, 34, 47, 0, 0, 0, 14, 4, 95,
+			48, 77, 49, 72, 6, 124, 88, 111, 50, 47, 0, 0, 14, 4, 95, 2, 18, 22, 71, 14, 16, 6, 119, 84, 13, 0, 0, 19, 71, 12,
+			16, 146, 36, 243, 5, 80, 49, 115, 71, 34, 37, 39, 55, 6, 111, 0, 0, 12, 68, 8, 85, 20, 100, 71, 111, 12, 47, 37, 0, 24,
+			73, 36, 212, 18, 20, 115, 133, 72, 147, 135, 108, 65, 48, 34, 4, 111, 100, 50, 6, 119, 108, 68, 0, 0, 8, 197, 56, 20, 193, 4,
+			192, 66, 8, 197, 76, 145, 80, 20, 192, 20, 8, 197, 72, 147, 139, 20, 192, 20, 8, 197, 32, 18, 211, 20, 192, 20, 8, 197, 12, 148,
+			139, 20, 192, 20, 0, 9, 198, 76, 160, 67, 32, 84, 128, 20, 9, 198, 44, 226, 83, 64, 84, 128, 20, 9, 198, 44, 225, 85, 80, 84,
+			128, 20, 9, 198, 44, 193, 85, 80, 84, 128, 20, 9, 198, 8, 197, 66, 8, 84, 128, 20, 11, 70, 92, 81, 75, 20, 225, 0, 21, 0,
+			10, 0, 6, 195, 92, 84, 132, 72, 0, 20, 72, 12, 128, 77, 64, 145, 206, 60, 224, 91, 116, 65, 48, 37, 57, 6, 113, 50, 0, 0,
+			8, 197, 92, 18, 203, 20, 192, 20, 8, 197, 80, 147, 139, 20, 192, 20, 8, 197, 76, 146, 203, 20, 192, 20, 8, 197, 24, 243, 139, 20,
+			192, 20, 8, 197, 16, 148, 211, 20, 192, 20, 8, 197, 88, 83, 139, 20, 192, 20, 0, 9, 198, 44, 226, 83, 80, 84, 128, 20, 9, 198,
+			12, 197, 83, 80, 84, 128, 20, 0, 0, 0, 8, 197, 104, 147, 22, 21, 32, 20, 8, 197, 8, 82, 82, 21, 32, 20, 0, 0, 0, 7,
+			196, 44, 20, 15, 80, 66, 0, 15, 69, 52, 83, 149, 21, 64, 65, 119, 50, 109, 6, 111, 47, 0, 8, 197, 76, 243, 66, 21, 32, 20,
+			0, 0, 19, 71, 25, 32, 78, 12, 130, 83, 20, 83, 34, 116, 6, 91, 37, 12, 88, 13, 0, 0, 9, 198, 77, 64, 70, 24, 83, 0,
+			20, 9, 198, 76, 193, 85, 80, 83, 0, 20, 9, 198, 45, 32, 66, 8, 83, 0, 20, 9, 198, 25, 37, 84, 76, 83, 0, 20, 0, 16,
+			205, 64, 20, 148, 36, 165, 143, 61, 38, 137, 81, 65, 82, 76, 66, 10, 69, 16, 83, 5, 80, 80, 21, 0, 10, 0, 9, 198, 44, 245,
+			5, 48, 85, 0, 67, 0, 0, 9, 198, 45, 34, 66, 8, 83, 0, 20, 9, 198, 9, 33, 73, 16, 83, 0, 20, 0, 0, 0, 0, 12,
+			68, 52, 85, 18, 60, 65, 119, 47, 34, 122, 0, 7, 196, 28, 22, 133, 80, 66, 7, 196, 41, 80, 133, 48, 20, 0, 0, 0, 18, 70,
+			24, 80, 146, 84, 20, 137, 83, 119, 71, 34, 109, 6, 115, 34, 37, 0, 19, 71, 12, 20, 212, 4, 115, 133, 80, 49, 116, 89, 47, 116,
+			67, 6, 111, 47, 0, 0, 0, 0, 9, 198, 76, 50, 5, 64, 83, 128, 20, 6, 194, 60, 96, 72, 8, 6, 194, 60, 96, 72, 8, 0,
+			0, 7, 195, 44, 227, 73, 17, 42, 0, 8, 197, 81, 34, 80, 20, 192, 20, 0, 9, 198, 48, 21, 133, 56, 65, 76, 20, 9, 198, 44,
+			22, 149, 36, 97, 76, 20, 0, 0, 0, 14, 69, 52, 148, 208, 20, 192, 65, 108, 89, 48, 13, 55, 0, 8, 197, 77, 64, 80, 20, 192,
+			20, 8, 197, 76, 20, 16, 20, 192, 20, 8, 197, 56, 84, 212, 20, 192, 20, 8, 197, 52, 148, 208, 20, 192, 20, 8, 197, 44, 244, 16,
+			20, 192, 20, 8, 197, 33, 84, 16, 20, 192, 20, 8, 197, 64, 84, 16, 20, 192, 20, 8, 197, 44, 84, 16, 20, 192, 20, 9, 3, 4,
+			39, 18, 72, 13, 34, 0, 0, 16, 70, 12, 243, 148, 61, 84, 128, 49, 122, 50, 47, 6, 40, 34, 0, 9, 198, 77, 68, 137, 8, 33,
+			76, 20, 0, 0, 0, 8, 197, 73, 80, 130, 21, 32, 20, 8, 197, 48, 240, 130, 21, 32, 20, 8, 197, 48, 16, 130, 21, 32, 20, 8,
+			197, 28, 144, 130, 21, 32, 20, 8, 197, 16, 240, 130, 21, 32, 20, 8, 197, 16, 16, 130, 21, 32, 20, 8, 195, 88, 243, 210, 9, 76,
+			8, 0, 0, 6, 195, 52, 17, 192, 72, 0, 0, 8, 197, 44, 192, 86, 21, 32, 20, 9, 3, 195, 169, 14, 111, 50, 0, 8, 0, 0,
+			17, 70, 61, 1, 82, 21, 69, 5, 122, 48, 13, 34, 6, 111, 47, 13, 0, 9, 198, 9, 37, 78, 21, 69, 5, 66, 18, 70, 4, 212,
+			5, 72, 17, 197, 116, 65, 48, 13, 34, 6, 115, 90, 13, 0, 0, 0, 0, 12, 201, 32, 81, 5, 57, 65, 78, 16, 17, 197, 20, 0,
+			9, 198, 56, 17, 18, 84, 178, 197, 66, 0, 9, 198, 36, 225, 197, 88, 19, 0, 67, 9, 198, 29, 35, 206, 16, 83, 0, 20, 0, 0,
+			0, 6, 195, 44, 211, 192, 17, 0, 0, 0, 20, 4, 95, 3, 9, 18, 89, 6, 108, 34, 49, 113, 50, 83, 55, 119, 49, 89, 13, 0,
+			0, 0, 0, 0, 0, 0, 7, 196, 65, 80, 133, 72, 20, 0, 8, 197, 76, 147, 148, 20, 192, 20, 8, 197, 28, 244, 132, 20, 192, 20,
+			0, 9, 198, 76, 50, 1, 80, 84, 128, 20, 0, 10, 199, 56, 21, 149, 48, 32, 65, 72, 66, 0, 15, 67, 52, 148, 197, 65, 37, 88,
+			117, 0, 44, 81, 101, 110, 32, 0, 8, 197, 92, 244, 148, 20, 192, 20, 8, 197, 92, 19, 132, 20, 192, 20, 8, 197, 52, 20, 148, 20,
+			192, 20, 8, 197, 28, 148, 208, 20, 192, 20, 8, 197, 105, 112, 84, 20, 192, 20, 8, 197, 16, 244, 144, 20, 192, 20, 8, 197, 16, 148,
+			212, 20, 192, 20, 0, 0, 6, 195, 45, 83, 148, 72, 14, 4, 95, 19, 20, 11, 89, 47, 14, 16, 6, 119, 48, 0, 0, 0, 13, 4,
+			95, 1, 3, 21, 6, 115, 37, 101, 4, 109, 0, 0, 9, 198, 104, 241, 1, 56, 145, 192, 66, 0, 16, 70, 72, 245, 76, 21, 69, 5,
+			34, 40, 55, 6, 111, 47, 13, 0, 17, 70, 17, 32, 73, 56, 17, 197, 72, 34, 111, 50, 6, 115, 90, 13, 0, 0, 0, 8, 197, 88,
+			243, 11, 21, 32, 20, 8, 197, 64, 145, 75, 21, 32, 20, 0, 0, 0, 9, 198, 76, 225, 85, 88, 83, 0, 20, 9, 198, 44, 194, 80,
+			64, 83, 0, 20, 9, 198, 29, 33, 78, 16, 83, 0, 20, 7, 196, 104, 81, 197, 56, 20, 7, 196, 72, 81, 197, 56, 20, 7, 196, 40,
+			81, 197, 56, 20, 7, 196, 52, 241, 197, 56, 72, 0, 9, 198, 88, 243, 12, 20, 66, 71, 66, 9, 198, 52, 148, 211, 80, 20, 0, 65,
+			0, 15, 70, 56, 85, 2, 60, 242, 192, 50, 111, 47, 71, 40, 49, 0, 0, 14, 4, 95, 18, 14, 7, 49, 6, 122, 16, 122, 50, 115,
+			0, 0, 7, 196, 61, 32, 133, 72, 20, 0, 0, 9, 198, 52, 148, 207, 60, 116, 212, 65, 0, 0, 11, 200, 36, 225, 143, 72, 208, 84,
+			36, 80, 67, 7, 196, 104, 81, 197, 48, 20, 7, 196, 72, 81, 197, 48, 20, 7, 196, 24, 16, 197, 80, 66, 9, 198, 88, 192, 65, 56,
+			65, 82, 20, 0, 0, 0, 0, 7, 196, 20, 225, 197, 48, 20, 0, 18, 69, 84, 37, 78, 81, 80, 40, 12, 6, 71, 40, 12, 50, 47,
+			40, 12, 0, 0, 0, 0, 7, 196, 48, 81, 197, 72, 20, 7, 196, 48, 17, 197, 72, 20, 0, 8, 197, 8, 241, 77, 20, 192, 20, 8,
+			197, 28, 19, 77, 20, 192, 20, 8, 197, 92, 244, 132, 20, 224, 72, 0, 9, 198, 28, 84, 5, 85, 1, 76, 20, 0, 0, 9, 198, 80,
+			84, 151, 36, 163, 0, 8, 0, 8, 197, 72, 243, 77, 20, 192, 20, 8, 197, 32, 243, 77, 20, 192, 20, 0, 0, 0, 11, 200, 92, 19,
+			147, 12, 128, 80, 20, 224, 66, 0, 8, 197, 40, 18, 203, 21, 32, 20, 8, 197, 32, 243, 135, 21, 32, 20, 8, 197, 9, 83, 139, 21,
+			32, 20, 14, 69, 104, 245, 193, 5, 32, 88, 122, 85, 6, 115, 34, 0, 0, 18, 4, 95, 1, 3, 50, 72, 6, 110, 71, 111, 55, 6,
+			115, 37, 101, 109, 0, 0, 0, 0, 8, 197, 9, 34, 75, 21, 64, 66, 8, 197, 44, 19, 139, 21, 32, 20, 8, 197, 16, 243, 139, 21,
+			32, 20, 0, 16, 70, 104, 83, 26, 5, 65, 64, 88, 36, 55, 88, 35, 47, 13, 0, 0, 0, 9, 198, 88, 16, 78, 16, 83, 0, 20,
+			9, 198, 4, 208, 78, 16, 83, 0, 20, 0, 0, 0, 0, 15, 70, 60, 194, 69, 76, 83, 0, 122, 55, 37, 89, 13, 55, 0, 10, 68,
+			12, 129, 67, 44, 76, 111, 49, 0, 11, 68, 12, 128, 79, 76, 101, 115, 113, 89, 0, 9, 198, 8, 244, 147, 80, 83, 0, 20, 9, 198,
+			77, 67, 198, 24, 83, 0, 20, 0, 0, 9, 198, 52, 148, 196, 73, 82, 192, 65, 9, 198, 81, 35, 205, 64, 85, 0, 66, 0, 15, 70,
+			28, 19, 65, 76, 50, 5, 100, 115, 65, 6, 116, 91, 0, 0, 7, 196, 88, 241, 197, 48, 20, 7, 196, 80, 81, 197, 48, 20, 7, 196,
+			56, 17, 197, 48, 20, 7, 196, 44, 81, 197, 48, 20, 7, 196, 32, 17, 197, 48, 20, 0, 0, 0, 0, 7, 196, 4, 225, 197, 48, 20,
+			9, 198, 64, 193, 73, 77, 65, 82, 20, 7, 196, 57, 81, 1, 80, 8, 0, 8, 197, 65, 35, 195, 21, 48, 66, 0, 0, 0, 0, 8,
+			197, 53, 84, 141, 20, 192, 20, 0, 9, 198, 76, 50, 1, 73, 33, 76, 20, 0, 0, 7, 196, 61, 81, 5, 72, 20, 7, 196, 32, 81,
+			70, 80, 72, 0, 8, 197, 49, 83, 77, 20, 192, 20, 8, 197, 45, 83, 77, 20, 192, 20, 0, 12, 6, 95, 15, 18, 4, 50, 48, 89,
+			47, 13, 0, 0, 0, 11, 68, 8, 82, 71, 20, 71, 111, 90, 13, 0, 0, 8, 197, 88, 241, 68, 21, 32, 20, 8, 197, 77, 81, 4,
+			21, 32, 20, 8, 197, 72, 81, 4, 21, 32, 20, 8, 197, 52, 241, 68, 21, 32, 20, 8, 197, 52, 241, 4, 21, 32, 20, 8, 197, 24,
+			243, 20, 21, 32, 20, 8, 197, 4, 50, 20, 21, 32, 20, 0, 9, 198, 8, 82, 1, 49, 97, 64, 8, 0, 0, 7, 196, 56, 19, 205,
+			36, 66, 0, 8, 197, 92, 147, 139, 21, 64, 66, 8, 197, 45, 35, 203, 21, 64, 66, 8, 197, 92, 84, 212, 21, 32, 20, 8, 197, 92,
+			20, 16, 21, 32, 20, 8, 197, 72, 20, 212, 21, 32, 20, 8, 197, 64, 145, 84, 21, 32, 20, 8, 197, 48, 84, 16, 21, 32, 20, 8,
+			197, 44, 85, 84, 21, 32, 20, 8, 197, 44, 85, 20, 21, 32, 20, 8, 197, 24, 243, 4, 21, 32, 20, 8, 197, 24, 241, 84, 21, 32,
+			20, 8, 197, 9, 83, 4, 21, 32, 20, 0, 7, 194, 60, 208, 9, 76, 28, 0, 0, 11, 200, 81, 35, 205, 64, 85, 20, 21, 32, 20,
+			7, 196, 52, 17, 197, 72, 20, 7, 196, 36, 210, 197, 72, 20, 7, 196, 72, 82, 197, 56, 20, 7, 196, 52, 240, 200, 80, 72, 6, 195,
+			60, 230, 133, 72, 0, 8, 197, 53, 84, 197, 84, 208, 20, 0, 0, 18, 70, 8, 16, 212, 21, 34, 69, 71, 116, 49, 47, 6, 108, 12,
+			34, 37, 0, 0, 9, 198, 77, 65, 77, 64, 83, 0, 20, 9, 198, 77, 2, 74, 8, 83, 0, 20, 9, 198, 45, 35, 206, 44, 83, 0,
+			20, 9, 198, 29, 34, 70, 24, 83, 0, 20, 9, 198, 17, 34, 66, 8, 83, 0, 20, 9, 198, 17, 33, 77, 64, 83, 0, 20, 0, 6,
+			195, 61, 97, 82, 20, 8, 195, 61, 97, 82, 9, 76, 8, 0, 9, 198, 77, 68, 143, 53, 1, 76, 20, 0, 10, 199, 20, 84, 135, 37,
+			53, 5, 72, 20, 0, 9, 198, 44, 17, 1, 77, 65, 82, 66, 7, 196, 80, 18, 197, 48, 20, 7, 196, 64, 81, 197, 48, 20, 7, 196,
+			44, 241, 197, 48, 20, 7, 196, 44, 18, 197, 48, 20, 7, 196, 104, 245, 197, 48, 66, 7, 196, 104, 245, 193, 80, 66, 0, 0, 0, 0,
+			7, 196, 16, 145, 69, 80, 66, 7, 196, 20, 226, 197, 48, 20, 9, 198, 77, 3, 9, 57, 65, 82, 20, 20, 70, 12, 243, 80, 85, 65,
+			82, 49, 113, 65, 48, 57, 6, 40, 47, 13, 34, 0, 20, 0, 17, 70, 5, 81, 213, 77, 69, 83, 125, 100, 6, 110, 89, 47, 110, 89,
+			0, 0, 9, 198, 104, 242, 149, 37, 53, 0, 66, 0, 0, 12, 68, 8, 82, 197, 72, 71, 119, 49, 13, 34, 0, 7, 196, 104, 82, 197,
+			72, 20, 7, 196, 52, 242, 197, 72, 20, 0, 8, 197, 92, 145, 66, 20, 192, 20, 8, 197, 28, 145, 66, 20, 192, 20, 0, 18, 70, 8,
+			83, 8, 4, 209, 76, 71, 6, 111, 55, 107, 115, 65, 13, 55, 0, 0, 0, 7, 196, 52, 82, 69, 72, 20, 0, 8, 197, 92, 82, 70,
+			20, 192, 20, 8, 197, 24, 241, 90, 20, 192, 20, 14, 69, 29, 32, 86, 20, 192, 100, 34, 111, 84, 13, 55, 0, 0, 0, 0, 7, 196,
+			24, 17, 207, 80, 66, 14, 4, 95, 3, 5, 4, 89, 6, 119, 72, 108, 55, 13, 0, 0, 8, 197, 8, 19, 12, 21, 64, 66, 8, 197,
+			92, 147, 148, 21, 32, 20, 0, 0, 15, 4, 95, 12, 9, 7, 55, 6, 37, 101, 115, 47, 109, 34, 0, 0, 0, 8, 197, 76, 224, 84,
+			21, 32, 20, 8, 197, 73, 83, 132, 21, 32, 20, 8, 197, 64, 21, 80, 21, 32, 20, 8, 197, 48, 245, 84, 21, 32, 20, 8, 197, 32,
+			147, 132, 21, 32, 20, 8, 197, 16, 243, 132, 21, 32, 20, 8, 197, 8, 20, 212, 21, 32, 20, 0, 9, 198, 64, 243, 9, 28, 195, 212,
+			67, 7, 194, 80, 80, 9, 76, 28, 0, 0, 7, 196, 80, 82, 197, 56, 20, 0, 21, 73, 72, 83, 129, 37, 52, 193, 56, 49, 64, 34,
+			111, 50, 119, 89, 6, 117, 89, 13, 0, 7, 195, 56, 16, 82, 9, 76, 0, 0, 0, 9, 198, 77, 2, 69, 28, 83, 0, 20, 9, 198,
+			76, 50, 1, 44, 83, 0, 20, 9, 198, 9, 35, 196, 16, 83, 0, 20, 9, 198, 16, 81, 77, 77, 64, 82, 20, 0, 0, 0, 0, 7,
+			196, 64, 146, 197, 80, 66, 7, 196, 48, 242, 197, 80, 66, 9, 198, 44, 197, 73, 77, 65, 82, 20, 0, 0, 0, 0, 9, 198, 76, 50,
+			1, 53, 1, 82, 20, 0, 14, 69, 8, 83, 132, 21, 48, 71, 111, 50, 72, 13, 89, 0, 0, 0, 0, 7, 196, 44, 242, 197, 72, 20,
+			7, 196, 8, 18, 197, 72, 20, 0, 8, 197, 92, 17, 134, 20, 192, 20, 8, 197, 76, 16, 130, 20, 192, 20, 8, 197, 72, 145, 134, 20,
+			192, 20, 8, 197, 72, 85, 90, 20, 192, 20, 8, 197, 72, 80, 130, 20, 192, 20, 8, 197, 65, 86, 154, 20, 192, 20, 8, 197, 44, 16,
+			130, 20, 192, 20, 8, 197, 28, 17, 134, 20, 192, 20, 8, 197, 16, 240, 130, 20, 192, 20, 8, 197, 9, 80, 130, 20, 192, 20, 8, 197,
+			8, 85, 90, 20, 192, 20, 8, 197, 72, 85, 90, 20, 192, 20, 8, 197, 17, 81, 134, 20, 192, 20, 0, 9, 198, 60, 36, 212, 4, 177,
+			76, 20, 0, 6, 195, 60, 228, 192, 72, 0, 0, 8, 197, 88, 146, 154, 20, 192, 20, 8, 197, 52, 244, 146, 20, 192, 20, 8, 197, 4,
+			20, 154, 20, 192, 20, 0, 9, 198, 77, 4, 143, 44, 177, 76, 20, 0, 0, 0, 8, 197, 80, 16, 140, 21, 64, 66, 8, 197, 48, 243,
+			77, 21, 32, 20, 8, 197, 44, 243, 77, 21, 32, 20, 0, 0, 6, 195, 92, 245, 64, 72, 0, 18, 72, 20, 208, 143, 84, 50, 21, 85,
+			32, 117, 71, 40, 91, 6, 109, 34, 0, 0, 8, 197, 88, 147, 204, 21, 64, 67, 8, 197, 64, 241, 73, 21, 32, 20, 8, 197, 40, 19,
+			77, 21, 32, 20, 0, 10, 198, 76, 243, 77, 36, 113, 64, 9, 76, 0, 0, 9, 198, 52, 148, 129, 44, 83, 0, 20, 7, 196, 8, 18,
+			197, 56, 20, 0, 8, 197, 52, 147, 137, 52, 16, 65, 0, 9, 198, 80, 83, 148, 4, 177, 76, 20, 0, 18, 71, 4, 211, 213, 72, 85,
+			20, 20, 115, 65, 40, 16, 6, 111, 47, 13, 0, 6, 195, 92, 21, 0, 72, 0, 7, 196, 72, 243, 65, 56, 66, 11, 200, 52, 148, 211,
+			37, 52, 201, 64, 144, 67, 11, 68, 24, 144, 200, 20, 83, 37, 91, 13, 0, 7, 196, 4, 226, 197, 72, 20, 0, 0, 9, 198, 76, 145,
+			193, 72, 85, 0, 67, 0, 0, 7, 196, 72, 18, 197, 48, 20, 7, 196, 64, 82, 197, 48, 20, 7, 196, 32, 82, 197, 48, 20, 7, 196,
+			20, 146, 197, 48, 20, 12, 68, 77, 82, 133, 80, 89, 109, 90, 6, 111, 0, 0, 0, 0, 10, 199, 8, 19, 133, 56, 114, 68, 76, 22,
+			10, 199, 76, 50, 18, 36, 178, 197, 48, 20, 22, 67, 56, 145, 84, 10, 50, 6, 37, 47, 15, 65, 4, 119, 34, 0, 81, 109, 101, 101,
+			114, 32, 11, 67, 56, 145, 84, 50, 4, 37, 47, 0, 11, 0, 7, 196, 104, 83, 69, 48, 20, 0, 0, 0, 0, 6, 195, 32, 80, 128,
+			72, 0, 0, 8, 197, 80, 85, 71, 20, 192, 20, 8, 197, 45, 33, 75, 20, 192, 20, 8, 197, 32, 82, 75, 20, 192, 20, 8, 197, 28,
+			85, 201, 48, 64, 72, 0, 9, 198, 76, 194, 78, 28, 84, 128, 20, 9, 198, 76, 177, 69, 48, 84, 128, 20, 9, 198, 36, 226, 193, 16,
+			84, 128, 20, 9, 198, 28, 194, 77, 52, 84, 128, 20, 0, 7, 2, 95, 19, 111, 89, 0, 0, 0, 8, 197, 92, 148, 211, 20, 192, 20,
+			8, 197, 33, 85, 19, 20, 192, 20, 8, 197, 9, 84, 211, 20, 192, 20, 8, 197, 77, 65, 75, 20, 192, 20, 8, 197, 65, 82, 203, 20,
+			192, 20, 6, 195, 104, 146, 142, 72, 8, 197, 32, 241, 87, 20, 192, 8, 6, 195, 104, 146, 142, 72, 0, 9, 198, 81, 114, 84, 80, 84,
+			128, 20, 9, 198, 77, 69, 77, 64, 84, 128, 20, 9, 198, 77, 67, 212, 80, 84, 128, 20, 9, 198, 77, 65, 75, 44, 84, 128, 20, 9,
+			198, 77, 65, 73, 28, 84, 128, 20, 9, 198, 76, 195, 194, 8, 84, 128, 20, 9, 198, 32, 19, 83, 80, 84, 128, 20, 0, 0, 0, 0,
+			7, 2, 95, 20, 47, 119, 0, 0, 0, 0, 8, 197, 104, 246, 133, 21, 32, 66, 0, 9, 198, 45, 37, 73, 52, 83, 0, 20, 0, 0,
+			0, 0, 9, 198, 93, 34, 69, 52, 83, 0, 20, 9, 198, 44, 197, 78, 28, 83, 0, 20, 9, 198, 25, 37, 77, 52, 83, 0, 20, 9,
+			198, 25, 34, 69, 52, 83, 0, 20, 9, 198, 5, 37, 9, 44, 83, 0, 20, 9, 198, 76, 50, 1, 52, 83, 0, 20, 0, 6, 195, 32,
+			80, 148, 72, 8, 195, 8, 146, 128, 9, 76, 8, 9, 67, 104, 146, 128, 88, 2, 123, 0, 9, 67, 40, 146, 128, 57, 2, 123, 0, 0,
+			11, 200, 92, 20, 211, 21, 33, 84, 80, 80, 67, 20, 2, 95, 34, 6, 115, 50, 107, 115, 55, 108, 50, 101, 89, 47, 119, 49, 13, 50,
+			0, 0, 18, 2, 95, 33, 6, 124, 47, 14, 16, 40, 48, 47, 4, 119, 49, 13, 50, 0, 0, 5, 194, 85, 112, 72, 0, 11, 67, 17,
+			81, 84, 72, 109, 6, 111, 47, 0, 6, 195, 44, 243, 128, 72, 10, 67, 32, 83, 128, 107, 2, 111, 50, 0, 0, 7, 196, 4, 210, 78,
+			60, 65, 7, 196, 72, 18, 197, 80, 66, 7, 196, 44, 242, 197, 80, 66, 0, 0, 0, 7, 195, 88, 19, 128, 9, 76, 0, 7, 196, 92,
+			83, 69, 48, 20, 17, 4, 95, 3, 1, 16, 107, 6, 122, 83, 72, 55, 111, 47, 13, 34, 0, 0, 12, 201, 12, 20, 130, 60, 194, 78,
+			21, 83, 64, 20, 18, 2, 95, 41, 107, 6, 115, 49, 57, 13, 89, 55, 6, 124, 47, 13, 50, 0, 0, 19, 2, 95, 40, 107, 6, 115,
+			49, 57, 13, 23, 6, 122, 48, 119, 50, 13, 50, 0, 0, 21, 71, 64, 84, 137, 24, 84, 137, 20, 48, 108, 12, 34, 37, 83, 108, 12,
+			34, 6, 37, 0, 10, 199, 52, 20, 141, 60, 193, 85, 52, 20, 0, 0, 8, 197, 92, 17, 199, 20, 192, 20, 8, 197, 72, 243, 147, 20,
+			192, 20, 8, 197, 72, 19, 147, 20, 192, 20, 8, 197, 64, 147, 139, 20, 192, 20, 8, 197, 52, 243, 139, 20, 192, 20, 8, 197, 52, 83,
+			135, 20, 192, 20, 8, 197, 33, 82, 75, 20, 192, 20, 8, 197, 8, 145, 199, 20, 192, 20, 8, 197, 76, 242, 203, 20, 192, 20, 17, 2,
+			95, 45, 49, 6, 113, 48, 111, 55, 47, 4, 119, 49, 13, 50, 0, 0, 9, 198, 76, 197, 73, 52, 84, 128, 20, 9, 198, 64, 195, 197,
+			80, 84, 128, 20, 9, 198, 44, 241, 83, 80, 84, 128, 20, 10, 2, 95, 44, 49, 6, 113, 65, 115, 0, 0, 6, 195, 48, 84, 128, 20,
+			9, 2, 95, 51, 72, 34, 6, 37, 0, 0, 11, 68, 76, 18, 78, 80, 21, 102, 114, 0, 10, 7, 196, 20, 211, 69, 72, 20, 9, 2,
+			95, 50, 47, 85, 6, 119, 0, 0, 8, 197, 92, 147, 139, 20, 192, 20, 8, 197, 92, 21, 87, 20, 192, 20, 8, 197, 76, 147, 135, 20,
+			192, 20, 8, 197, 72, 147, 135, 20, 192, 20, 8, 197, 56, 146, 203, 20, 192, 20, 8, 197, 52, 19, 135, 20, 192, 20, 8, 197, 32, 147,
+			139, 20, 192, 20, 8, 197, 80, 83, 135, 20, 192, 20, 8, 197, 44, 242, 203, 20, 192, 20, 12, 201, 12, 243, 147, 84, 210, 78, 16, 84,
+			128, 20, 8, 2, 95, 49, 6, 119, 50, 0, 0, 9, 198, 80, 82, 83, 80, 84, 128, 20, 9, 198, 52, 81, 83, 80, 84, 128, 20, 9,
+			198, 45, 113, 84, 80, 84, 128, 20, 9, 198, 44, 194, 78, 44, 84, 128, 20, 9, 198, 28, 81, 83, 80, 84, 128, 20, 9, 2, 95, 48,
+			50, 6, 110, 55, 0, 0, 11, 2, 95, 55, 88, 6, 119, 84, 13, 50, 0, 0, 9, 2, 95, 54, 88, 6, 111, 89, 0, 0, 8, 197,
+			65, 83, 22, 21, 32, 20, 8, 197, 44, 19, 22, 21, 32, 20, 9, 2, 95, 53, 84, 6, 123, 83, 0, 0, 9, 2, 95, 52, 84, 6,
+			37, 34, 0, 0, 15, 2, 95, 59, 48, 6, 110, 50, 47, 49, 113, 65, 4, 115, 0, 0, 17, 2, 95, 58, 72, 6, 110, 71, 13, 55,
+			13, 48, 4, 110, 50, 47, 0, 0, 8, 197, 52, 19, 135, 5, 64, 22, 8, 197, 44, 19, 70, 21, 32, 20, 11, 2, 95, 57, 50, 6,
+			119, 100, 13, 50, 0, 0, 9, 198, 88, 84, 132, 21, 35, 208, 67, 9, 198, 81, 35, 205, 52, 83, 0, 20, 9, 198, 77, 67, 205, 52,
+			83, 0, 20, 9, 198, 17, 35, 205, 52, 83, 0, 20, 6, 195, 16, 86, 133, 72, 7, 66, 92, 80, 85, 13, 0, 9, 2, 95, 56, 6,
+			116, 101, 47, 0, 0, 18, 71, 61, 85, 9, 48, 192, 71, 20, 40, 47, 37, 57, 6, 115, 90, 13, 0, 16, 2, 95, 63, 84, 14, 16,
+			6, 115, 101, 47, 119, 49, 13, 50, 0, 0, 7, 196, 64, 242, 197, 72, 20, 0, 8, 197, 76, 19, 15, 52, 240, 65, 8, 195, 84, 149,
+			0, 9, 76, 28, 0, 9, 198, 81, 114, 78, 44, 83, 0, 20, 9, 198, 93, 35, 206, 28, 83, 0, 20, 0, 0, 7, 196, 32, 19, 69,
+			72, 20, 9, 198, 88, 243, 210, 16, 21, 0, 8, 0, 0, 0, 0, 0, 0, 0, 14, 203, 92, 16, 82, 76, 50, 9, 40, 227, 9, 40,
+			176, 66, 10, 199, 52, 148, 194, 4, 180, 197, 48, 65, 0, 7, 196, 104, 19, 69, 48, 20, 7, 196, 32, 83, 69, 48, 20, 0, 0, 12,
+			201, 60, 225, 197, 72, 145, 70, 48, 146, 139, 67, 24, 73, 16, 145, 148, 60, 225, 197, 72, 147, 135, 72, 108, 83, 47, 4, 113, 68, 6,
+			119, 34, 108, 68, 0, 15, 70, 12, 130, 70, 24, 243, 128, 91, 37, 83, 6, 113, 50, 0, 0, 10, 199, 12, 243, 15, 77, 49, 85, 52,
+			20, 0, 7, 196, 48, 20, 197, 72, 20, 0, 8, 197, 72, 243, 80, 20, 192, 20, 8, 197, 28, 82, 213, 56, 64, 72, 0, 8, 67, 72,
+			16, 197, 21, 0, 10, 0, 0, 7, 196, 4, 196, 207, 24, 8, 0, 17, 70, 44, 147, 147, 32, 20, 193, 49, 108, 50, 91, 6, 115, 89,
+			115, 0, 13, 69, 92, 19, 135, 20, 224, 85, 116, 68, 13, 50, 0, 8, 197, 52, 84, 16, 20, 192, 20, 8, 197, 76, 85, 20, 20, 192,
+			20, 8, 197, 44, 85, 84, 20, 192, 20, 8, 197, 80, 83, 154, 36, 160, 8, 0, 0, 0, 12, 4, 95, 4, 15, 20, 48, 6, 110, 50,
+			47, 0, 0, 22, 73, 20, 83, 147, 28, 83, 9, 40, 180, 192, 119, 50, 89, 100, 13, 55, 6, 123, 49, 89, 0, 9, 198, 88, 147, 204,
+			21, 69, 5, 67, 9, 198, 72, 16, 204, 21, 69, 5, 66, 8, 197, 44, 241, 134, 21, 32, 20, 8, 197, 44, 17, 134, 21, 32, 20, 8,
+			197, 28, 16, 130, 21, 32, 20, 8, 197, 9, 81, 134, 21, 32, 20, 8, 197, 80, 245, 4, 5, 64, 8, 0, 15, 74, 20, 229, 5, 73,
+			64, 73, 56, 209, 78, 80, 21, 0, 10, 0, 6, 195, 104, 19, 0, 72, 0, 0, 15, 69, 9, 33, 86, 21, 64, 71, 34, 13, 84, 6,
+			111, 47, 0, 8, 197, 77, 2, 78, 21, 64, 66, 17, 70, 12, 245, 82, 80, 17, 197, 49, 40, 34, 47, 6, 115, 90, 13, 0, 8, 3,
+			201, 153, 14, 14, 50, 0, 0, 9, 198, 77, 65, 71, 28, 83, 0, 20, 9, 198, 76, 210, 83, 64, 83, 0, 20, 9, 198, 76, 197, 78,
+			28, 83, 0, 20, 0, 9, 67, 12, 128, 84, 76, 111, 47, 0, 6, 195, 20, 65, 76, 20, 8, 67, 24, 16, 212, 21, 0, 10, 21, 2,
+			95, 95, 55, 6, 108, 81, 111, 50, 47, 89, 47, 14, 16, 6, 119, 48, 57, 13, 0, 0, 9, 198, 45, 112, 82, 80, 85, 0, 66, 9,
+			198, 48, 22, 129, 72, 85, 0, 67, 0, 10, 69, 60, 227, 9, 56, 80, 21, 0, 10, 0, 17, 70, 56, 18, 82, 60, 34, 64, 50, 116,
+			57, 34, 6, 122, 71, 37, 0, 15, 70, 44, 83, 142, 20, 70, 64, 49, 111, 50, 13, 72, 111, 0, 9, 198, 45, 112, 82, 80, 83, 0,
+			20, 9, 198, 45, 32, 85, 92, 83, 0, 20, 9, 198, 44, 227, 194, 8, 83, 0, 20, 0, 6, 195, 4, 65, 76, 20, 7, 195, 60, 242,
+			192, 9, 76, 0, 0, 8, 197, 72, 81, 201, 52, 80, 66, 6, 195, 4, 65, 82, 20, 0, 0, 6, 195, 33, 83, 128, 72, 7, 3, 201,
+			153, 20, 47, 0, 0, 21, 72, 8, 194, 84, 104, 180, 137, 20, 112, 71, 55, 108, 47, 89, 49, 34, 37, 12, 81, 0, 7, 196, 5, 4,
+			5, 48, 20, 9, 198, 32, 84, 137, 56, 225, 82, 20, 0, 0, 0, 0, 0, 0, 14, 4, 95, 7, 18, 22, 100, 14, 16, 6, 115, 84,
+			13, 0, 0, 0, 0, 8, 197, 76, 146, 144, 20, 192, 20, 8, 197, 44, 19, 148, 20, 192, 20, 0, 9, 198, 77, 69, 73, 80, 84, 128,
+			20, 8, 67, 8, 20, 197, 21, 0, 10, 0, 0, 11, 200, 36, 225, 210, 36, 164, 5, 56, 64, 66, 0, 13, 69, 8, 82, 76, 20, 224,
+			71, 123, 55, 13, 50, 0, 14, 69, 52, 148, 212, 20, 224, 65, 108, 89, 47, 13, 50, 0, 8, 197, 80, 144, 200, 20, 192, 20, 8, 197,
+			72, 85, 84, 20, 192, 20, 8, 197, 44, 193, 80, 20, 192, 20, 8, 197, 32, 16, 200, 20, 192, 20, 8, 197, 9, 83, 132, 20, 192, 20,
+			8, 197, 24, 148, 212, 20, 192, 20, 8, 197, 92, 147, 12, 20, 224, 72, 0, 0, 0, 0, 12, 201, 80, 81, 197, 56, 224, 84, 85, 84,
+			128, 68, 15, 70, 64, 240, 200, 21, 69, 5, 48, 113, 91, 6, 111, 47, 0, 14, 69, 9, 81, 134, 21, 64, 71, 109, 83, 6, 111, 47,
+			0, 8, 197, 44, 244, 142, 21, 64, 66, 8, 197, 12, 20, 142, 21, 64, 66, 18, 70, 41, 83, 69, 48, 17, 197, 90, 109, 65, 13, 55,
+			6, 115, 90, 13, 0, 0, 0, 6, 195, 92, 147, 0, 72, 18, 2, 95, 123, 84, 6, 37, 34, 49, 116, 50, 47, 13, 107, 4, 115, 49,
+			0, 13, 4, 95, 4, 9, 1, 6, 110, 65, 55, 125, 47, 0, 0, 0, 9, 198, 4, 211, 210, 21, 69, 5, 67, 17, 70, 21, 21, 73,
+			64, 17, 197, 119, 49, 37, 48, 6, 115, 90, 13, 0, 8, 197, 48, 21, 87, 21, 32, 20, 0, 16, 70, 41, 84, 212, 36, 225, 64, 90,
+			109, 89, 47, 6, 37, 50, 0, 9, 198, 12, 128, 82, 4, 65, 64, 66, 9, 198, 81, 34, 80, 64, 83, 0, 20, 9, 198, 77, 66, 80,
+			64, 83, 0, 20, 9, 198, 9, 35, 203, 44, 83, 0, 20, 9, 198, 64, 84, 137, 44, 83, 0, 20, 16, 70, 16, 80, 201, 8, 83, 0,
+			72, 119, 89, 37, 71, 111, 55, 0, 11, 70, 60, 97, 140, 36, 225, 64, 21, 0, 10, 0, 0, 0, 8, 195, 80, 245, 0, 9, 76, 8,
+			25, 2, 95, 125, 84, 6, 37, 34, 49, 116, 50, 47, 13, 107, 4, 115, 49, 89, 55, 6, 124, 47, 13, 50, 0, 0, 17, 70, 52, 148,
+			212, 72, 19, 0, 65, 37, 89, 47, 34, 6, 116, 55, 0, 9, 198, 81, 32, 80, 64, 83, 0, 20, 9, 198, 17, 33, 78, 80, 83, 0,
+			20, 0, 0, 8, 67, 40, 21, 211, 21, 0, 10, 0, 0, 0, 0, 13, 68, 28, 84, 197, 48, 100, 119, 89, 13, 55, 0, 20, 0, 0,
+			10, 67, 56, 20, 201, 50, 116, 89, 37, 0, 0, 10, 67, 104, 144, 200, 88, 2, 108, 101, 0, 0, 13, 68, 5, 4, 137, 48, 115, 48,
+			34, 6, 108, 55, 0, 0, 6, 195, 61, 1, 78, 20, 0, 17, 70, 64, 192, 78, 12, 129, 84, 48, 55, 116, 50, 91, 6, 111, 47, 0,
+			0, 0, 7, 196, 21, 69, 5, 72, 20, 0, 8, 197, 92, 145, 77, 20, 192, 20, 8, 197, 77, 64, 77, 20, 192, 20, 8, 197, 72, 19,
+			77, 20, 192, 20, 0, 18, 70, 16, 148, 195, 37, 1, 76, 72, 108, 89, 6, 37, 48, 13, 55, 0, 20, 0, 10, 199, 56, 17, 5, 72,
+			128, 78, 16, 67, 0, 0, 8, 197, 16, 243, 77, 20, 192, 20, 0, 0, 0, 0, 14, 69, 9, 81, 7, 21, 64, 71, 110, 75, 6, 111,
+			47, 0, 8, 197, 24, 19, 19, 21, 64, 66, 15, 69, 12, 195, 211, 21, 64, 49, 55, 122, 88, 6, 111, 47, 0, 8, 197, 48, 82, 203,
+			21, 32, 20, 8, 197, 8, 17, 199, 21, 32, 20, 0, 0, 6, 195, 92, 147, 20, 72, 0, 0, 8, 197, 21, 66, 75, 21, 64, 67, 8,
+			197, 88, 147, 135, 21, 32, 20, 8, 197, 77, 82, 75, 21, 32, 20, 8, 197, 44, 84, 139, 21, 32, 20, 8, 197, 40, 243, 135, 21, 32,
+			20, 8, 197, 8, 192, 75, 21, 32, 20, 0, 9, 198, 45, 113, 66, 8, 83, 0, 20, 9, 198, 45, 34, 78, 28, 83, 0, 20, 11, 70,
+			52, 19, 23, 5, 33, 64, 21, 0, 10, 7, 66, 104, 80, 88, 13, 0, 0, 0, 0, 0, 9, 198, 88, 193, 85, 28, 83, 0, 20, 9,
+			198, 77, 69, 78, 80, 83, 0, 20, 0, 0, 11, 200, 52, 148, 214, 5, 69, 9, 56, 112, 65, 12, 68, 8, 84, 212, 20, 71, 111, 89,
+			47, 13, 0, 16, 70, 16, 245, 66, 48, 85, 0, 72, 40, 71, 55, 6, 111, 47, 0, 0, 9, 198, 17, 147, 129, 77, 66, 69, 67, 0,
+			0, 0, 7, 196, 17, 85, 133, 48, 20, 9, 198, 76, 50, 9, 65, 1, 82, 20, 0, 0, 0, 0, 0, 0, 0, 16, 67, 57, 148, 192,
+			50, 123, 89, 72, 6, 124, 88, 111, 50, 47, 0, 0, 7, 196, 20, 227, 210, 52, 66, 0, 9, 197, 56, 17, 9, 20, 224, 66, 9, 8,
+			197, 65, 83, 77, 20, 192, 20, 8, 197, 52, 244, 141, 20, 192, 20, 0, 14, 70, 12, 128, 83, 76, 148, 192, 91, 116, 89, 6, 37, 0,
+			0, 7, 195, 17, 84, 192, 72, 8, 0, 13, 72, 53, 83, 20, 37, 67, 213, 12, 128, 21, 0, 10, 0, 8, 197, 33, 83, 77, 20, 192,
+			20, 0, 8, 67, 76, 149, 5, 21, 0, 10, 0, 18, 71, 12, 128, 77, 64, 17, 206, 20, 91, 116, 65, 48, 6, 116, 67, 13, 0, 0,
+			0, 8, 197, 64, 20, 139, 21, 64, 66, 8, 197, 76, 145, 4, 21, 32, 20, 8, 197, 72, 145, 4, 21, 32, 20, 8, 197, 64, 241, 68,
+			21, 32, 20, 8, 197, 48, 145, 68, 21, 32, 20, 8, 197, 32, 19, 20, 21, 32, 20, 8, 197, 28, 241, 68, 21, 32, 20, 11, 70, 84,
+			197, 9, 52, 21, 5, 21, 0, 10, 0, 0, 0, 0, 8, 197, 64, 18, 203, 21, 64, 66, 8, 197, 104, 243, 4, 21, 32, 20, 8, 197,
+			80, 85, 20, 21, 32, 20, 8, 197, 64, 243, 4, 21, 32, 20, 8, 197, 52, 145, 84, 21, 32, 20, 8, 197, 48, 85, 84, 21, 32, 20,
+			8, 197, 48, 85, 20, 21, 32, 20, 8, 197, 8, 243, 4, 21, 32, 20, 8, 197, 8, 149, 20, 21, 32, 20, 0, 9, 198, 76, 229, 70,
+			24, 83, 0, 20, 9, 198, 44, 229, 70, 24, 83, 0, 20, 16, 70, 60, 228, 218, 20, 193, 128, 113, 50, 89, 6, 111, 55, 83, 0, 0,
+			0, 11, 200, 52, 147, 12, 36, 209, 84, 21, 32, 20, 0, 9, 198, 36, 225, 21, 13, 66, 69, 66, 9, 198, 4, 211, 133, 77, 66, 69,
+			67, 10, 69, 21, 48, 193, 64, 80, 21, 0, 10, 0, 9, 198, 92, 244, 147, 80, 83, 0, 20, 9, 198, 92, 20, 133, 53, 1, 76, 20,
+			0, 0, 0, 14, 69, 28, 243, 199, 48, 80, 81, 40, 12, 81, 13, 55, 0, 0, 17, 70, 40, 20, 146, 21, 65, 76, 90, 35, 34, 13,
+			47, 6, 111, 55, 0, 0, 0, 8, 196, 104, 240, 76, 76, 66, 8, 0, 0, 0, 10, 199, 77, 1, 75, 80, 18, 197, 48, 66, 10, 199,
+			77, 1, 75, 80, 18, 197, 48, 20, 0, 9, 198, 76, 229, 73, 77, 65, 82, 20, 9, 198, 64, 147, 139, 77, 65, 82, 20, 9, 198, 24,
+			197, 73, 77, 65, 82, 20, 0, 9, 3, 26, 39, 14, 88, 13, 50, 0, 0, 0, 0, 0, 14, 69, 8, 85, 133, 56, 64, 71, 119, 84,
+			13, 50, 72, 0, 8, 197, 24, 241, 70, 20, 192, 20, 8, 197, 72, 241, 66, 20, 192, 20, 8, 197, 52, 85, 66, 20, 192, 20, 9, 198,
+			5, 66, 5, 56, 85, 77, 20, 6, 195, 80, 241, 78, 8, 0, 0, 0, 0, 14, 69, 36, 225, 210, 36, 64, 108, 68, 14, 16, 108, 47,
+			0, 8, 197, 44, 85, 86, 20, 192, 20, 8, 197, 17, 33, 86, 20, 192, 20, 8, 197, 32, 85, 86, 20, 192, 20, 0, 9, 198, 77, 4,
+			129, 56, 177, 76, 20, 0, 0, 0, 8, 197, 48, 19, 80, 21, 64, 66, 8, 197, 44, 83, 148, 21, 32, 20, 8, 197, 9, 83, 80, 21,
+			32, 20, 0, 0, 0, 0, 8, 197, 52, 148, 218, 37, 64, 65, 23, 73, 16, 19, 65, 76, 49, 82, 36, 225, 192, 72, 35, 65, 116, 38,
+			89, 6, 119, 34, 108, 68, 0, 8, 197, 104, 147, 132, 21, 32, 20, 8, 197, 92, 243, 132, 21, 32, 20, 8, 197, 81, 85, 20, 21, 32,
+			20, 8, 197, 80, 85, 84, 21, 32, 20, 8, 197, 17, 112, 84, 21, 32, 20, 8, 197, 16, 83, 132, 21, 32, 20, 0, 9, 198, 88, 82,
+			9, 44, 83, 0, 20, 0, 0, 0, 12, 201, 21, 80, 200, 5, 34, 83, 80, 145, 64, 68, 0, 9, 198, 77, 2, 75, 44, 83, 0, 20,
+			9, 198, 65, 34, 75, 44, 83, 0, 20, 9, 198, 45, 33, 85, 44, 83, 0, 20, 9, 198, 81, 35, 197, 8, 83, 0, 20, 0, 0, 16,
+			70, 12, 16, 129, 72, 85, 0, 49, 115, 71, 115, 34, 6, 111, 0, 0, 14, 69, 12, 19, 129, 16, 16, 49, 116, 50, 115, 72, 115, 0,
+			0, 8, 67, 28, 19, 69, 21, 0, 10, 8, 67, 32, 243, 69, 21, 0, 10, 0, 34, 79, 104, 145, 75, 20, 226, 21, 37, 48, 133, 88,
+			19, 12, 36, 225, 192, 88, 37, 12, 49, 13, 50, 107, 124, 89, 71, 13, 84, 116, 55, 108, 68, 0, 0, 9, 198, 12, 128, 80, 37, 65,
+			82, 66, 0, 0, 0, 10, 199, 76, 16, 210, 37, 53, 9, 20, 67, 0, 0, 0, 0, 0, 0, 8, 197, 77, 82, 90, 20, 192, 20, 8,
+			197, 72, 241, 134, 20, 192, 20, 8, 197, 72, 17, 134, 20, 192, 20, 8, 197, 52, 241, 134, 20, 192, 20, 8, 197, 17, 82, 90, 20, 192,
+			20, 8, 197, 9, 81, 134, 20, 192, 20, 0, 0, 7, 195, 4, 196, 192, 72, 8, 0, 0, 8, 197, 92, 20, 146, 20, 192, 20, 8, 197,
+			52, 22, 154, 20, 192, 20, 8, 197, 44, 225, 86, 20, 192, 20, 8, 197, 44, 144, 130, 20, 192, 20, 8, 197, 32, 240, 130, 20, 192, 20,
+			8, 197, 77, 65, 86, 20, 224, 20, 0, 0, 0, 0, 12, 69, 12, 128, 76, 21, 64, 91, 115, 55, 111, 0, 13, 69, 12, 16, 200, 21,
+			64, 49, 116, 91, 6, 111, 0, 0, 0, 0, 0, 14, 69, 80, 245, 80, 21, 64, 47, 40, 48, 6, 111, 47, 0, 14, 69, 64, 245, 76,
+			21, 64, 48, 40, 55, 6, 111, 47, 0, 0, 9, 198, 76, 211, 197, 104, 83, 0, 20, 9, 198, 76, 210, 75, 44, 83, 0, 20, 9, 198,
+			29, 37, 73, 104, 83, 0, 20, 17, 70, 89, 34, 74, 4, 113, 64, 84, 34, 119, 57, 6, 115, 90, 13, 0, 17, 70, 52, 85, 18, 4,
+			113, 64, 65, 119, 47, 34, 6, 115, 90, 13, 0, 0, 12, 71, 52, 147, 11, 76, 128, 75, 20, 21, 0, 10, 0, 0, 15, 69, 8, 84,
+			137, 28, 80, 71, 108, 12, 34, 13, 100, 13, 0, 6, 195, 92, 16, 82, 8, 0, 9, 198, 81, 35, 199, 28, 83, 0, 20, 0, 0, 0,
+			0, 9, 198, 77, 4, 133, 56, 177, 76, 20, 0, 0, 21, 72, 4, 48, 197, 77, 51, 201, 72, 80, 35, 49, 89, 111, 89, 58, 6, 35,
+			34, 13, 0, 21, 72, 12, 19, 79, 84, 99, 1, 28, 80, 49, 115, 65, 40, 83, 55, 6, 115, 90, 13, 0, 0, 6, 18, 66, 103, 0,
+			107, 0, 7, 6, 98, 101, 0, 8, 2, 21, 14, 128, 132, 130, 3, 71, 13, 0, 8, 2, 114, 101, 110, 3, 71, 108, 12, 0, 4, 2,
 			108, 103, 3, 71, 111, 0, 8, 2, 17, 67, 11, 0, 8, 2, 17, 67, 17, 67, 101, 32, 0, 8, 2, 17, 67, 17, 67, 101, 110, 32,
 			0, 8, 2, 17, 67, 106, 101, 25, 0, 8, 2, 99, 17, 67, 0, 8, 2, 110, 103, 101, 108, 0, 8, 2, 114, 109, 0, 8, 2, 115,
 			116, 105, 97, 0, 105, 101, 8, 2, 114, 3, 71, 111, 37, 13, 0, 4, 8, 2, 17, 67, 101, 114, 32, 3, 71, 119, 0, 8, 2, 100,
 			101, 108, 0, 8, 2, 116, 101, 114, 0, 8, 2, 118, 101, 110, 32, 0, 8, 2, 122, 101, 109, 0, 8, 2, 122, 105, 103, 0, 101, 8,
 			2, 12, 0, 118, 101, 114, 8, 3, 71, 119, 84, 13, 34, 0, 117, 8, 3, 71, 121, 0, 4, 105, 8, 2, 100, 101, 3, 71, 123, 0,
-			105, 8, 2, 116, 101, 108, 0, 7, 6, 99, 104, 0, 101, 1, 10, 2, 32, 3, 8, 91, 0, 8, 2, 114, 105, 115, 116, 3, 49, 0,
-			4, 8, 2, 97, 100, 111, 114, 3, 76, 0, 8, 2, 97, 114, 116, 101, 114, 0, 8, 2, 105, 112, 0, 101, 114, 114, 121, 8, 3, 76,
-			111, 34, 37, 0, 4, 1, 97, 116, 101, 100, 3, 91, 0, 1, 110, 97, 108, 98, 0, 1, 110, 97, 118, 101, 114, 2, 101, 0, 1, 110,
-			117, 114, 98, 0, 1, 111, 114, 98, 2, 101, 0, 1, 111, 114, 98, 2, 117, 0, 1, 114, 97, 109, 0, 2, 195, 169, 0, 8, 0, 8,
-			111, 112, 2, 101, 0, 105, 8, 2, 99, 97, 110, 101, 3, 91, 2, 37, 0, 97, 117, 8, 2, 102, 102, 101, 3, 91, 2, 122, 0, 97,
-			112, 101, 114, 111, 110, 8, 3, 91, 4, 116, 48, 13, 34, 118, 50, 0, 97, 117, 8, 2, 118, 105, 110, 3, 91, 4, 122, 0, 101, 113,
-			117, 101, 8, 3, 91, 111, 49, 0, 111, 8, 2, 113, 117, 101, 3, 91, 113, 0, 97, 114, 103, 8, 2, 21, 3, 91, 116, 34, 90, 0,
-			97, 110, 103, 8, 2, 101, 3, 91, 117, 90, 0, 4, 3, 101, 0, 8, 2, 97, 111, 0, 8, 2, 97, 114, 105, 0, 8, 2, 101, 109,
-			105, 0, 8, 2, 108, 111, 0, 8, 2, 111, 108, 101, 0, 8, 2, 111, 114, 0, 8, 2, 114, 0, 7, 6, 101, 110, 0, 4, 116, 1,
-			21, 2, 32, 3, 6, 111, 50, 47, 0, 116, 1, 21, 2, 101, 32, 0, 116, 1, 21, 2, 101, 110, 32, 0, 116, 1, 21, 2, 101, 114,
-			32, 0, 116, 1, 21, 2, 101, 114, 101, 32, 0, 116, 1, 21, 2, 115, 116, 32, 0, 116, 1, 21, 2, 115, 116, 101, 32, 0, 116, 1,
-			103, 97, 0, 1, 10, 2, 101, 32, 28, 33, 14, 128, 129, 131, 3, 8, 13, 50, 13, 0, 1, 10, 2, 101, 110, 32, 28, 33, 14, 128,
-			129, 132, 3, 8, 13, 50, 13, 50, 0, 1, 10, 2, 116, 32, 28, 33, 14, 128, 129, 131, 3, 8, 13, 50, 47, 0, 100, 101, 1, 10,
-			2, 32, 14, 128, 128, 129, 3, 13, 0, 4, 1, 10, 2, 32, 14, 128, 208, 130, 3, 13, 50, 0, 1, 10, 2, 105, 115, 115, 101, 110,
-			32, 0, 1, 17, 67, 17, 65, 25, 2, 32, 14, 128, 129, 130, 0, 1, 100, 110, 97, 2, 32, 14, 128, 128, 130, 0, 1, 101, 105, 2,
-			32, 14, 128, 128, 130, 0, 1, 106, 17, 65, 25, 2, 32, 14, 128, 128, 130, 0, 1, 107, 105, 10, 2, 32, 14, 128, 128, 130, 0, 1,
-			108, 101, 2, 32, 12, 14, 128, 208, 130, 0, 1, 108, 108, 2, 32, 14, 128, 128, 131, 0, 1, 114, 101, 2, 32, 12, 14, 128, 208, 130,
-			0, 1, 120, 17, 65, 25, 2, 32, 14, 128, 128, 130, 0, 100, 101, 110, 1, 10, 2, 32, 14, 128, 128, 130, 0, 100, 1, 10, 2, 32,
-			3, 13, 50, 72, 0, 115, 1, 10, 2, 32, 14, 128, 192, 131, 3, 13, 50, 89, 0, 7, 6, 101, 114, 0, 4, 1, 21, 2, 105, 110,
-			103, 32, 3, 6, 108, 12, 34, 0, 1, 21, 2, 105, 110, 103, 101, 110, 32, 0, 101, 110, 2, 32, 3, 6, 108, 12, 34, 13, 50, 0,
-			101, 110, 100, 2, 32, 3, 6, 108, 12, 34, 13, 50, 72, 0, 4, 1, 10, 2, 32, 28, 33, 3, 8, 13, 34, 0, 1, 10, 2, 100,
-			32, 28, 33, 0, 1, 10, 2, 100, 101, 32, 28, 33, 0, 1, 10, 2, 100, 101, 110, 32, 28, 33, 0, 1, 10, 2, 100, 101, 114, 32,
+			105, 8, 2, 116, 101, 108, 0, 7, 6, 99, 104, 0, 101, 1, 10, 2, 32, 3, 8, 91, 0, 4, 8, 2, 97, 100, 111, 114, 3, 76,
+			0, 8, 2, 97, 114, 116, 101, 114, 0, 8, 2, 105, 112, 0, 101, 114, 114, 121, 8, 3, 76, 111, 34, 37, 0, 4, 1, 97, 116, 101,
+			100, 3, 91, 0, 1, 110, 97, 108, 98, 0, 1, 110, 97, 118, 101, 114, 2, 101, 0, 1, 110, 117, 114, 98, 0, 1, 111, 114, 98, 2,
+			101, 0, 1, 111, 114, 98, 2, 117, 0, 1, 114, 97, 109, 0, 2, 195, 169, 0, 8, 0, 8, 111, 112, 2, 101, 0, 105, 8, 2, 99,
+			97, 110, 101, 3, 91, 2, 37, 0, 97, 117, 8, 2, 102, 102, 101, 3, 91, 2, 122, 0, 97, 112, 101, 114, 111, 110, 8, 3, 91, 4,
+			116, 48, 13, 34, 118, 50, 0, 97, 117, 8, 2, 118, 105, 110, 3, 91, 4, 122, 0, 101, 113, 117, 101, 8, 3, 91, 111, 49, 0, 111,
+			8, 2, 113, 117, 101, 3, 91, 113, 0, 97, 114, 103, 8, 2, 21, 3, 91, 116, 34, 90, 0, 97, 110, 103, 8, 2, 101, 3, 91, 117,
+			90, 0, 4, 3, 101, 0, 8, 2, 97, 111, 0, 8, 2, 97, 114, 105, 0, 8, 2, 101, 109, 105, 0, 8, 2, 108, 111, 0, 8, 2,
+			111, 108, 101, 0, 8, 2, 111, 114, 0, 8, 2, 114, 0, 7, 6, 101, 114, 0, 4, 1, 21, 2, 105, 110, 103, 32, 3, 6, 108, 12,
+			34, 0, 1, 21, 2, 105, 110, 103, 101, 110, 32, 0, 101, 110, 2, 32, 3, 6, 108, 12, 34, 13, 50, 0, 4, 1, 10, 2, 32, 28,
+			33, 3, 8, 13, 34, 0, 1, 10, 2, 100, 32, 28, 33, 0, 1, 10, 2, 100, 101, 32, 28, 33, 0, 1, 10, 2, 100, 101, 110, 32,
 			28, 33, 0, 1, 10, 2, 101, 32, 28, 33, 0, 1, 10, 2, 101, 110, 32, 28, 33, 0, 1, 10, 2, 101, 110, 100, 32, 28, 33, 0,
-			1, 10, 2, 101, 110, 100, 101, 32, 28, 33, 0, 1, 10, 2, 105, 103, 32, 28, 33, 0, 1, 10, 2, 105, 103, 101, 32, 28, 33, 0,
-			1, 10, 2, 105, 110, 103, 32, 28, 33, 0, 1, 10, 2, 105, 110, 103, 101, 110, 32, 28, 33, 0, 1, 10, 2, 115, 116, 32, 28, 33,
-			0, 1, 10, 2, 115, 116, 101, 32, 28, 33, 0, 1, 10, 2, 116, 32, 28, 33, 0, 4, 1, 10, 2, 32, 3, 13, 34, 0, 1, 21,
-			2, 97, 97, 114, 32, 0, 1, 100, 110, 111, 104, 2, 100, 32, 0, 1, 108, 111, 116, 2, 97, 98, 101, 108, 0, 1, 115, 105, 109, 2,
-			97, 98, 101, 108, 0, 2, 105, 106, 32, 0, 105, 101, 2, 32, 3, 13, 34, 6, 37, 0, 101, 115, 1, 21, 2, 32, 14, 128, 208, 132,
-			3, 13, 34, 6, 111, 89, 0, 101, 115, 115, 101, 110, 1, 21, 2, 32, 14, 128, 192, 135, 3, 13, 34, 6, 111, 89, 13, 50, 0, 101,
-			1, 10, 2, 32, 3, 13, 34, 13, 0, 119, 105, 106, 115, 1, 10, 2, 32, 14, 136, 128, 134, 3, 13, 34, 85, 123, 89, 0, 97, 1,
-			10, 2, 32, 3, 13, 34, 115, 0, 8, 2, 21, 14, 128, 132, 130, 3, 111, 34, 0, 103, 101, 114, 8, 3, 111, 34, 100, 13, 34, 0,
-			1, 10, 2, 17, 67, 21, 3, 112, 34, 0, 7, 6, 101, 115, 0, 4, 1, 21, 2, 32, 14, 128, 208, 130, 3, 6, 111, 89, 0, 2,
-			32, 28, 20, 12, 0, 115, 101, 110, 1, 21, 2, 32, 14, 128, 208, 133, 3, 6, 111, 89, 13, 50, 0, 105, 115, 99, 104, 1, 21, 3,
-			6, 119, 88, 37, 89, 0, 4, 1, 17, 67, 17, 65, 25, 2, 32, 14, 128, 129, 130, 3, 13, 89, 0, 1, 21, 2, 32, 28, 33, 0,
-			4, 1, 21, 2, 32, 28, 18, 14, 128, 128, 129, 3, 89, 0, 1, 98, 109, 2, 32, 14, 128, 128, 129, 0, 1, 100, 102, 2, 32, 14,
-			128, 128, 129, 0, 1, 100, 110, 2, 32, 14, 128, 128, 129, 0, 1, 100, 114, 2, 32, 14, 128, 128, 129, 0, 1, 106, 21, 2, 32, 14,
-			128, 128, 129, 0, 1, 116, 103, 2, 32, 14, 128, 128, 129, 0, 1, 116, 108, 2, 32, 14, 128, 128, 129, 0, 1, 116, 109, 2, 32, 14,
-			128, 128, 129, 0, 1, 116, 110, 2, 32, 14, 128, 128, 129, 0, 1, 116, 119, 2, 32, 14, 128, 128, 129, 0, 1, 122, 21, 2, 32, 14,
-			128, 128, 129, 0, 1, 29, 2, 32, 3, 111, 89, 0, 2, 105, 101, 32, 3, 119, 88, 0, 7, 6, 103, 101, 0, 110, 114, 101, 3, 90,
-			117, 34, 13, 0, 110, 101, 114, 2, 97, 97, 108, 3, 100, 4, 119, 50, 13, 34, 0, 4, 2, 98, 105, 101, 100, 3, 100, 13, 0, 2,
-			115, 112, 114, 101, 107, 0, 2, 118, 97, 108, 0, 8, 2, 21, 14, 128, 132, 130, 0, 108, 105, 106, 107, 8, 3, 100, 13, 55, 123, 49,
-			0, 109, 101, 101, 110, 116, 101, 8, 2, 21, 14, 128, 132, 136, 3, 100, 13, 65, 6, 119, 50, 47, 13, 0, 98, 114, 117, 105, 107, 101,
-			114, 115, 8, 2, 21, 14, 128, 132, 138, 3, 100, 13, 71, 34, 6, 124, 49, 13, 34, 89, 0, 4, 8, 2, 107, 17, 67, 3, 100, 111,
-			0, 8, 2, 108, 17, 67, 0, 8, 2, 114, 17, 67, 0, 4, 2, 118, 101, 110, 100, 32, 3, 100, 119, 0, 2, 118, 101, 114, 0, 2,
-			118, 105, 110, 103, 0, 8, 2, 108, 101, 110, 18, 67, 0, 8, 2, 116, 101, 110, 18, 67, 0, 8, 2, 118, 101, 110, 0, 101, 8, 0,
-			117, 8, 3, 100, 121, 0, 105, 8, 3, 100, 123, 0, 7, 6, 111, 110, 0, 8, 2, 21, 14, 128, 132, 130, 3, 2, 113, 50, 0, 4,
-			103, 8, 2, 97, 97, 114, 110, 3, 4, 113, 50, 100, 6, 0, 103, 8, 2, 97, 110, 115, 0, 103, 8, 2, 114, 105, 106, 112, 98, 97,
-			97, 114, 0, 103, 8, 2, 114, 111, 110, 100, 0, 103, 8, 2, 117, 110, 115, 116, 105, 103, 0, 103, 8, 2, 117, 117, 114, 0, 103, 101,
-			8, 2, 21, 14, 128, 132, 132, 3, 4, 113, 50, 100, 13, 0, 100, 101, 114, 8, 2, 21, 14, 128, 132, 133, 3, 6, 113, 50, 72, 13,
-			34, 0, 8, 2, 116, 101, 21, 14, 128, 132, 130, 3, 113, 50, 0, 97, 97, 110, 8, 2, 21, 14, 128, 132, 133, 3, 113, 50, 6, 115,
-			50, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 113, 50, 47, 0, 100, 101, 114, 8, 3, 113, 50, 72, 13, 34, 0, 4, 103, 101, 8,
-			2, 100, 105, 101, 114, 116, 3, 113, 50, 100, 13, 0, 103, 101, 8, 2, 108, 111, 111, 102, 0, 103, 101, 8, 2, 108, 117, 107, 0, 103,
-			101, 8, 2, 109, 97, 107, 0, 103, 101, 8, 2, 110, 97, 100, 101, 0, 103, 101, 8, 2, 114, 105, 101, 102, 0, 103, 101, 8, 2, 118,
-			97, 108, 0, 7, 6, 114, 101, 0, 4, 8, 2, 99, 101, 110, 116, 3, 34, 13, 0, 8, 2, 99, 101, 112, 116, 0, 8, 2, 99, 101,
-			115, 0, 8, 2, 99, 108, 97, 109, 0, 8, 2, 103, 101, 101, 114, 0, 8, 2, 103, 101, 114, 101, 110, 0, 8, 2, 115, 101, 114, 118,
-			101, 32, 0, 109, 101, 2, 100, 105, 101, 3, 34, 13, 65, 6, 119, 0, 100, 97, 99, 116, 105, 101, 8, 2, 14, 128, 132, 136, 3, 34,
-			13, 72, 6, 116, 49, 89, 37, 0, 118, 97, 110, 99, 104, 3, 34, 13, 84, 117, 50, 91, 0, 99, 104, 101, 114, 99, 104, 3, 34, 13,
-			91, 111, 34, 91, 0, 103, 101, 114, 105, 110, 103, 8, 3, 34, 13, 100, 6, 108, 12, 34, 108, 68, 0, 103, 105, 115, 116, 101, 114, 8,
-			3, 34, 13, 100, 6, 108, 89, 47, 13, 34, 0, 8, 2, 99, 111, 114, 100, 3, 34, 36, 6, 0, 8, 2, 99, 101, 112, 116, 105, 101,
-			102, 3, 34, 119, 0, 112, 114, 101, 2, 115, 97, 105, 108, 108, 3, 34, 119, 48, 34, 119, 0, 103, 101, 108, 8, 3, 34, 119, 100, 13,
-			55, 0, 7, 6, 116, 101, 0, 103, 101, 110, 8, 2, 14, 128, 132, 133, 3, 47, 6, 119, 100, 13, 50, 0, 4, 8, 2, 103, 101, 108,
-			105, 106, 107, 14, 128, 132, 130, 3, 47, 13, 0, 8, 2, 103, 101, 109, 111, 101, 116, 14, 128, 132, 130, 0, 8, 2, 103, 111, 101, 100,
-			0, 8, 2, 104, 117, 105, 0, 8, 2, 107, 101, 101, 114, 0, 8, 2, 107, 111, 114, 116, 0, 8, 2, 108, 101, 117, 114, 0, 8, 2,
-			108, 111, 111, 114, 0, 8, 2, 109, 101, 101, 114, 0, 8, 2, 109, 105, 100, 100, 0, 8, 2, 110, 97, 0, 8, 2, 110, 101, 101, 114,
-			0, 8, 2, 114, 101, 99, 104, 116, 0, 8, 2, 115, 97, 109, 0, 8, 2, 118, 101, 101, 108, 0, 8, 2, 118, 101, 114, 103, 101, 101,
-			102, 14, 128, 132, 130, 0, 8, 2, 118, 111, 111, 114, 115, 99, 104, 105, 106, 110, 0, 8, 2, 118, 111, 114, 0, 8, 2, 118, 114, 101,
-			100, 0, 8, 2, 119, 101, 114, 107, 0, 114, 117, 103, 8, 2, 14, 128, 132, 133, 3, 47, 13, 34, 6, 110, 101, 0, 119, 101, 101, 103,
-			8, 2, 14, 128, 132, 134, 3, 47, 13, 85, 6, 119, 101, 0, 103, 101, 8, 2, 108, 105, 106, 107, 3, 47, 13, 100, 13, 0, 7, 6,
-			195, 170, 0, 3, 111, 0, 7, 6, 97, 0, 99, 104, 1, 109, 2, 105, 110, 3, 2, 115, 91, 0, 102, 102, 105, 99, 104, 8, 3, 2,
-			116, 83, 37, 91, 0, 105, 114, 101, 2, 32, 3, 6, 111, 12, 34, 13, 0, 105, 114, 2, 32, 3, 6, 111, 34, 0, 4, 1, 21, 2,
-			100, 101, 32, 3, 6, 115, 0, 1, 21, 2, 116, 97, 32, 0, 2, 116, 111, 114, 32, 0, 97, 2, 17, 67, 32, 0, 97, 2, 114, 100,
-			32, 0, 114, 105, 115, 2, 32, 3, 6, 115, 34, 108, 89, 0, 114, 105, 115, 115, 101, 110, 2, 32, 3, 6, 115, 34, 108, 89, 13, 50,
-			0, 97, 110, 8, 2, 21, 14, 128, 132, 131, 3, 6, 115, 50, 0, 98, 101, 108, 1, 21, 2, 32, 3, 6, 115, 71, 13, 55, 0, 98,
-			101, 108, 101, 1, 21, 2, 32, 3, 6, 115, 71, 13, 55, 13, 0, 103, 101, 2, 32, 3, 6, 115, 90, 13, 0, 99, 116, 105, 101, 8,
-			2, 21, 14, 128, 132, 133, 3, 6, 116, 49, 89, 37, 0, 4, 110, 116, 1, 21, 2, 32, 3, 6, 116, 50, 47, 0, 110, 116, 1, 21,
-			2, 101, 32, 0, 110, 116, 1, 21, 2, 101, 110, 32, 0, 110, 116, 1, 21, 2, 101, 114, 32, 0, 105, 108, 108, 101, 2, 32, 3, 6,
-			116, 57, 13, 0, 105, 108, 108, 101, 115, 2, 32, 3, 6, 116, 57, 13, 89, 0, 103, 110, 101, 1, 21, 2, 32, 3, 6, 116, 67, 13,
-			0, 102, 8, 2, 17, 67, 21, 14, 128, 132, 130, 3, 6, 116, 83, 0, 111, 2, 32, 3, 6, 125, 0, 1, 17, 67, 21, 21, 2, 32,
-			3, 8, 115, 0, 103, 101, 115, 2, 32, 14, 128, 128, 129, 3, 89, 0, 105, 8, 2, 109, 97, 98, 101, 108, 3, 111, 0, 4, 3, 115,
-			0, 1, 116, 2, 98, 108, 101, 97, 117, 0, 8, 2, 100, 114, 101, 115, 115, 12, 12, 12, 0, 97, 0, 97, 1, 122, 2, 109, 32, 0,
-			101, 0, 97, 114, 1, 10, 2, 32, 14, 128, 128, 131, 3, 115, 34, 0, 114, 101, 115, 1, 21, 2, 32, 3, 115, 34, 6, 111, 89, 0,
-			97, 114, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 115, 34, 47, 0, 4, 97, 105, 3, 115, 57, 0, 121, 0, 100, 114, 101, 115, 8,
-			2, 21, 14, 128, 132, 133, 3, 115, 72, 34, 6, 111, 89, 0, 102, 8, 2, 114, 105, 107, 97, 3, 115, 83, 0, 103, 101, 2, 32, 28,
-			17, 3, 115, 100, 13, 0, 4, 2, 17, 67, 25, 3, 116, 0, 2, 120, 0, 108, 108, 101, 115, 8, 2, 21, 14, 128, 132, 133, 3, 116,
-			55, 13, 88, 0, 105, 3, 116, 57, 0, 4, 99, 104, 116, 1, 109, 25, 2, 105, 103, 12, 3, 116, 101, 47, 0, 99, 104, 116, 1, 114,
-			107, 2, 105, 103, 12, 0, 99, 104, 116, 105, 103, 1, 21, 2, 32, 14, 128, 128, 134, 3, 116, 101, 47, 13, 100, 0, 4, 1, 98, 2,
-			98, 121, 3, 119, 0, 105, 1, 100, 2, 115, 121, 0, 99, 101, 1, 21, 2, 32, 3, 119, 89, 0, 105, 108, 1, 109, 3, 119, 108, 55,
-			0, 4, 117, 3, 125, 0, 117, 119, 0, 7, 6, 98, 0, 1, 98, 3, 0, 97, 97, 114, 1, 10, 2, 32, 14, 128, 128, 132, 3, 8,
-			71, 115, 34, 0, 97, 114, 101, 1, 10, 2, 32, 14, 128, 128, 132, 3, 8, 71, 115, 34, 13, 0, 8, 111, 2, 115, 116, 97, 107, 3,
-			48, 0, 115, 2, 32, 24, 3, 48, 89, 0, 3, 71, 0, 105, 106, 2, 122, 111, 110, 100, 3, 71, 2, 37, 0, 4, 111, 101, 107, 8,
-			2, 21, 14, 128, 132, 132, 3, 71, 6, 40, 49, 0, 111, 101, 107, 8, 2, 106, 101, 0, 105, 110, 110, 101, 110, 8, 2, 14, 128, 132,
-			134, 3, 71, 6, 108, 50, 13, 50, 0, 117, 117, 114, 116, 8, 2, 21, 21, 14, 128, 132, 133, 3, 71, 6, 109, 34, 47, 0, 111, 118,
-			101, 110, 8, 2, 14, 128, 132, 133, 3, 71, 6, 122, 84, 13, 50, 0, 105, 106, 8, 2, 17, 67, 21, 14, 128, 132, 131, 3, 71, 6,
-			123, 0, 117, 105, 116, 101, 110, 8, 2, 14, 128, 132, 134, 3, 71, 6, 124, 47, 13, 50, 0, 101, 108, 97, 115, 116, 105, 110, 103, 8,
-			2, 21, 14, 128, 132, 137, 3, 71, 13, 55, 6, 116, 89, 47, 108, 68, 0, 101, 108, 101, 105, 100, 115, 8, 2, 21, 14, 128, 132, 135,
-			3, 71, 13, 55, 6, 123, 47, 89, 0, 101, 100, 114, 105, 106, 102, 115, 8, 2, 21, 14, 128, 132, 136, 3, 71, 13, 72, 34, 6, 123,
-			83, 89, 0, 114, 97, 110, 100, 8, 3, 71, 34, 6, 116, 50, 72, 0, 114, 97, 105, 108, 108, 101, 8, 2, 21, 14, 128, 132, 135, 3,
-			71, 34, 6, 116, 57, 13, 0, 97, 97, 110, 3, 71, 115, 50, 0, 105, 106, 101, 101, 110, 8, 3, 71, 123, 6, 119, 50, 0, 7, 6,
-			99, 0, 4, 3, 49, 0, 107, 0, 111, 2, 110, 99, 101, 114, 116, 3, 49, 2, 113, 0, 111, 110, 99, 101, 110, 116, 114, 97, 116, 105,
-			101, 8, 2, 21, 14, 128, 132, 140, 3, 49, 113, 50, 89, 111, 50, 47, 34, 6, 115, 47, 89, 37, 0, 111, 110, 103, 114, 101, 115, 8,
-			3, 49, 113, 50, 100, 34, 6, 111, 89, 0, 111, 109, 112, 117, 116, 101, 114, 8, 2, 21, 14, 128, 132, 136, 3, 49, 113, 65, 48, 57,
-			6, 40, 47, 13, 34, 0, 111, 97, 99, 104, 3, 49, 122, 76, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2, 121, 0, 101, 115, 2,
-			32, 3, 89, 6, 111, 89, 0, 101, 2, 115, 32, 28, 33, 3, 89, 13, 0, 4, 105, 1, 21, 2, 101, 101, 108, 3, 91, 0, 105, 1,
-			21, 2, 101, 117, 115, 0, 105, 1, 21, 2, 101, 117, 122, 0, 105, 1, 21, 2, 195, 171, 0, 105, 2, 97, 0, 105, 2, 111, 0, 7,
-			6, 100, 0, 1, 100, 3, 0, 4, 2, 115, 116, 3, 47, 0, 116, 0, 106, 3, 47, 57, 0, 115, 2, 32, 24, 3, 47, 89, 0, 3,
-			72, 0, 111, 101, 108, 8, 2, 21, 14, 128, 132, 132, 3, 72, 6, 40, 55, 0, 4, 101, 8, 2, 103, 101, 101, 110, 3, 72, 13, 0,
-			101, 8, 2, 122, 101, 108, 102, 0, 106, 8, 3, 75, 0, 7, 6, 101, 0, 117, 109, 1, 115, 117, 109, 21, 2, 32, 3, 4, 119, 110,
-			65, 0, 4, 1, 21, 2, 114, 101, 110, 100, 101, 32, 3, 6, 108, 0, 1, 21, 2, 114, 101, 110, 100, 101, 110, 32, 0, 101, 1, 21,
-			2, 114, 32, 0, 101, 1, 21, 2, 114, 100, 32, 0, 101, 1, 21, 2, 114, 100, 101, 32, 0, 101, 1, 21, 2, 114, 100, 101, 110, 32,
-			0, 101, 1, 21, 2, 114, 116, 32, 0, 120, 101, 2, 32, 3, 6, 111, 49, 89, 13, 0, 108, 1, 21, 2, 32, 3, 6, 111, 55, 0,
-			4, 101, 1, 21, 2, 29, 32, 3, 6, 119, 0, 101, 1, 21, 2, 32, 0, 108, 101, 1, 10, 2, 32, 3, 6, 119, 55, 13, 0, 108,
-			101, 110, 1, 21, 2, 32, 3, 6, 119, 55, 13, 50, 0, 117, 109, 2, 32, 28, 17, 3, 6, 119, 110, 65, 0, 97, 2, 32, 3, 6,
-			119, 115, 0, 117, 114, 1, 21, 2, 32, 3, 6, 121, 34, 0, 117, 122, 101, 1, 105, 2, 32, 3, 6, 121, 88, 13, 0, 117, 122, 101,
-			114, 1, 105, 2, 32, 3, 6, 121, 88, 13, 34, 0, 117, 122, 101, 114, 101, 1, 105, 2, 32, 3, 6, 121, 88, 13, 34, 13, 0, 117,
-			115, 1, 105, 2, 32, 3, 6, 121, 89, 0, 117, 115, 116, 1, 105, 2, 32, 3, 6, 121, 89, 47, 0, 117, 115, 116, 101, 1, 105, 2,
-			32, 3, 6, 121, 89, 47, 13, 0, 97, 117, 3, 6, 122, 0, 105, 116, 1, 116, 105, 2, 32, 3, 6, 123, 47, 0, 4, 108, 1, 10,
-			2, 32, 28, 33, 3, 8, 13, 55, 0, 108, 1, 10, 2, 100, 101, 32, 28, 33, 0, 108, 1, 10, 2, 100, 101, 110, 32, 28, 33, 0,
-			108, 1, 10, 2, 101, 32, 28, 33, 0, 108, 1, 10, 2, 101, 110, 32, 28, 33, 0, 108, 1, 10, 2, 101, 110, 100, 32, 28, 33, 0,
-			108, 1, 10, 2, 105, 103, 32, 28, 33, 0, 108, 1, 10, 2, 105, 103, 101, 32, 28, 33, 0, 108, 1, 10, 2, 105, 110, 103, 32, 28,
-			33, 0, 108, 1, 10, 2, 105, 110, 103, 101, 110, 32, 28, 33, 0, 108, 1, 10, 2, 116, 32, 28, 33, 0, 97, 1, 110, 105, 108, 2,
-			32, 3, 8, 37, 57, 115, 0, 4, 1, 10, 2, 32, 3, 13, 0, 1, 10, 2, 109, 101, 110, 116, 0, 1, 10, 2, 110, 116, 105, 103,
-			0, 1, 17, 67, 10, 2, 32, 14, 128, 208, 129, 0, 1, 17, 67, 17, 65, 25, 2, 32, 14, 128, 129, 129, 0, 1, 99, 2, 32, 12,
-			12, 0, 1, 103, 105, 2, 32, 12, 14, 136, 208, 129, 0, 1, 106, 17, 65, 25, 2, 32, 14, 128, 128, 129, 0, 1, 107, 106, 105, 108,
-			2, 32, 14, 136, 128, 129, 0, 1, 108, 101, 2, 32, 12, 14, 128, 208, 129, 0, 1, 114, 101, 2, 32, 12, 14, 128, 208, 129, 0, 1,
-			115, 2, 99, 111, 110, 100, 0, 1, 115, 2, 99, 117, 117, 114, 0, 117, 105, 108, 108, 101, 3, 13, 6, 109, 0, 195, 175, 2, 12, 3,
-			13, 10, 108, 0, 116, 116, 101, 110, 1, 21, 2, 32, 14, 128, 128, 131, 3, 13, 50, 0, 108, 1, 112, 112, 97, 2, 32, 3, 13, 55,
-			0, 108, 105, 106, 107, 115, 1, 10, 3, 13, 55, 13, 49, 89, 0, 108, 100, 115, 1, 21, 2, 32, 3, 13, 55, 47, 89, 0, 108, 100,
-			1, 10, 2, 32, 3, 13, 55, 72, 0, 108, 1, 21, 2, 101, 110, 32, 28, 34, 3, 13, 64, 0, 109, 1, 10, 2, 32, 3, 13, 65,
-			0, 109, 101, 110, 1, 10, 2, 32, 28, 17, 3, 13, 65, 13, 50, 0, 1, 21, 2, 115, 32, 28, 34, 12, 14, 128, 128, 129, 3, 89,
-			0, 4, 2, 114, 3, 108, 12, 0, 101, 1, 104, 2, 114, 32, 0, 101, 2, 114, 0, 4, 1, 99, 2, 110, 116, 114, 117, 109, 3, 111,
-			0, 1, 100, 105, 2, 110, 116, 0, 1, 115, 101, 114, 112, 2, 110, 116, 0, 2, 17, 67, 25, 0, 2, 114, 116, 115, 15, 0, 2, 120,
-			0, 120, 112, 111, 115, 105, 116, 105, 101, 8, 3, 111, 49, 89, 48, 122, 88, 6, 37, 47, 89, 37, 0, 1, 10, 2, 110, 17, 66, 21,
-			3, 112, 0, 4, 1, 29, 3, 119, 0, 1, 99, 111, 114, 112, 2, 100, 117, 0, 8, 112, 2, 110, 105, 98, 101, 108, 0, 101, 0, 109,
-			1, 110, 114, 97, 97, 119, 3, 119, 65, 0, 100, 101, 110, 2, 32, 3, 119, 72, 13, 50, 0, 3, 120, 0, 117, 3, 121, 0, 105, 2,
-			12, 3, 123, 0, 101, 117, 119, 3, 126, 0, 7, 6, 102, 0, 1, 102, 3, 0, 3, 83, 0, 97, 109, 105, 108, 105, 101, 8, 2, 21,
-			14, 128, 132, 135, 3, 83, 115, 65, 6, 37, 55, 37, 0, 4, 2, 98, 3, 84, 0, 2, 100, 0, 7, 6, 103, 0, 110, 1, 105, 115,
-			2, 97, 3, 67, 0, 111, 111, 103, 8, 2, 101, 108, 3, 81, 40, 12, 81, 0, 4, 1, 101, 101, 108, 108, 111, 99, 3, 90, 0, 1,
-			114, 101, 110, 101, 2, 105, 101, 0, 2, 101, 101, 32, 0, 2, 195, 169, 0, 8, 111, 108, 2, 101, 101, 114, 0, 8, 111, 108, 2, 101,
-			114, 101, 110, 0, 105, 1, 21, 2, 101, 117, 115, 0, 105, 1, 21, 2, 101, 117, 122, 0, 4, 3, 100, 0, 103, 0, 97, 115, 116, 8,
-			2, 21, 3, 100, 6, 116, 89, 47, 0, 97, 115, 116, 101, 110, 8, 2, 21, 14, 128, 132, 134, 3, 100, 6, 116, 89, 47, 13, 50, 0,
-			105, 1, 105, 108, 101, 114, 2, 101, 117, 3, 100, 37, 57, 0, 1, 115, 3, 101, 0, 7, 6, 104, 0, 1, 17, 67, 2, 25, 3, 0,
-			3, 107, 0, 101, 114, 105, 110, 110, 8, 3, 107, 2, 111, 34, 108, 50, 0, 117, 108, 112, 8, 2, 21, 21, 14, 128, 132, 132, 3, 107,
-			6, 110, 55, 48, 0, 101, 114, 102, 115, 116, 8, 2, 21, 14, 128, 132, 134, 3, 107, 6, 111, 34, 83, 89, 47, 0, 101, 114, 115, 101,
-			110, 8, 3, 107, 6, 111, 34, 89, 13, 50, 0, 111, 110, 100, 101, 110, 8, 2, 21, 14, 128, 132, 134, 3, 107, 6, 113, 50, 72, 13,
-			50, 0, 97, 110, 100, 1, 17, 67, 2, 32, 14, 128, 128, 132, 3, 107, 6, 116, 50, 47, 0, 111, 111, 103, 116, 101, 8, 2, 21, 14,
-			128, 132, 134, 3, 107, 6, 122, 101, 47, 13, 0, 101, 114, 8, 2, 101, 110, 3, 107, 108, 12, 34, 0, 4, 101, 114, 8, 2, 21, 14,
-			128, 132, 131, 3, 107, 111, 34, 0, 101, 114, 8, 2, 100, 101, 114, 0, 101, 114, 8, 2, 100, 115, 0, 97, 110, 100, 105, 99, 97, 112,
-			8, 3, 107, 111, 50, 72, 37, 49, 111, 48, 0, 101, 105, 100, 1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 123, 47, 0, 7, 6, 105,
-			0, 4, 1, 109, 97, 102, 2, 108, 105, 101, 3, 6, 37, 0, 101, 1, 100, 2, 32, 0, 101, 1, 103, 2, 32, 0, 101, 1, 109, 2,
-			32, 0, 101, 1, 112, 2, 32, 0, 101, 2, 17, 67, 101, 32, 0, 101, 2, 17, 67, 101, 110, 32, 0, 101, 2, 17, 67, 101, 114, 32,
-			0, 101, 2, 17, 67, 101, 114, 101, 32, 0, 101, 2, 17, 67, 106, 101, 29, 32, 0, 101, 2, 17, 67, 115, 116, 101, 32, 0, 101, 2,
-			17, 67, 116, 106, 101, 29, 32, 0, 101, 2, 29, 0, 101, 2, 114, 100, 32, 0, 101, 2, 114, 101, 110, 32, 0, 195, 171, 110, 2, 32,
-			3, 6, 37, 13, 50, 0, 110, 101, 2, 32, 3, 6, 37, 50, 13, 0, 110, 101, 115, 2, 32, 3, 6, 37, 50, 13, 89, 0, 98, 101,
-			108, 1, 21, 2, 32, 3, 6, 37, 71, 13, 55, 0, 98, 101, 108, 101, 1, 21, 2, 32, 3, 6, 37, 71, 13, 55, 13, 0, 99, 101,
-			1, 114, 2, 32, 3, 6, 37, 89, 13, 0, 99, 101, 115, 1, 114, 2, 32, 3, 6, 37, 89, 13, 89, 0, 4, 110, 8, 2, 17, 67,
-			21, 14, 128, 132, 130, 3, 6, 108, 50, 0, 110, 8, 2, 97, 21, 14, 128, 132, 130, 0, 110, 110, 8, 2, 101, 114, 0, 115, 116, 1,
-			21, 2, 32, 3, 6, 108, 89, 47, 0, 115, 116, 101, 110, 1, 21, 2, 32, 3, 6, 108, 89, 47, 13, 50, 0, 115, 109, 101, 1, 21,
-			2, 32, 3, 6, 108, 89, 65, 13, 0, 4, 106, 1, 21, 2, 110, 32, 3, 6, 123, 0, 106, 2, 32, 0, 106, 2, 101, 32, 0, 106,
-			2, 101, 110, 0, 106, 2, 116, 106, 101, 29, 0, 103, 1, 21, 2, 32, 14, 128, 208, 130, 3, 8, 13, 100, 0, 103, 101, 114, 1, 21,
-			2, 32, 3, 8, 13, 100, 13, 34, 0, 103, 101, 114, 101, 1, 21, 2, 32, 3, 8, 13, 100, 13, 34, 13, 0, 103, 101, 110, 1, 21,
-			2, 32, 3, 8, 13, 100, 13, 50, 0, 103, 115, 116, 1, 21, 2, 32, 3, 8, 13, 100, 89, 47, 0, 103, 115, 116, 101, 1, 21, 2,
-			32, 3, 8, 13, 100, 89, 47, 13, 0, 4, 101, 1, 115, 110, 17, 65, 17, 67, 2, 32, 3, 8, 37, 0, 101, 1, 115, 115, 2, 32,
-			0, 101, 1, 115, 115, 17, 65, 17, 67, 2, 32, 0, 195, 171, 1, 115, 2, 32, 3, 8, 37, 13, 0, 99, 117, 115, 1, 10, 2, 32,
-			3, 8, 37, 49, 110, 89, 0, 4, 99, 97, 1, 10, 2, 32, 3, 8, 37, 49, 115, 0, 107, 97, 1, 10, 2, 32, 0, 4, 99, 111,
-			1, 10, 2, 32, 3, 8, 37, 49, 122, 0, 107, 111, 1, 10, 2, 32, 0, 115, 99, 104, 1, 21, 2, 32, 3, 8, 37, 89, 0, 115,
-			99, 104, 101, 1, 21, 2, 32, 3, 8, 37, 89, 13, 0, 99, 105, 1, 10, 2, 32, 3, 8, 37, 89, 37, 0, 117, 109, 1, 114, 17,
-			65, 2, 32, 3, 8, 37, 110, 65, 0, 97, 1, 114, 17, 65, 2, 32, 3, 8, 37, 115, 0, 103, 101, 1, 21, 2, 32, 14, 136, 128,
-			129, 3, 13, 0, 103, 101, 8, 2, 32, 3, 13, 100, 13, 0, 4, 3, 37, 0, 2, 99, 104, 101, 32, 0, 101, 0, 105, 0, 111, 2,
-			100, 101, 32, 3, 37, 6, 122, 0, 111, 100, 101, 115, 2, 32, 3, 37, 6, 122, 72, 13, 89, 0, 101, 117, 122, 101, 2, 32, 3, 37,
-			57, 6, 121, 88, 13, 0, 101, 117, 122, 101, 114, 2, 32, 3, 37, 57, 6, 121, 88, 13, 34, 0, 101, 117, 122, 101, 114, 101, 2, 32,
-			3, 37, 57, 6, 121, 88, 13, 34, 13, 0, 101, 117, 115, 2, 32, 3, 37, 57, 6, 121, 89, 0, 101, 117, 115, 116, 2, 32, 3, 37,
-			57, 6, 121, 89, 47, 0, 101, 117, 115, 116, 101, 2, 32, 3, 37, 57, 6, 121, 89, 47, 13, 0, 101, 117, 119, 3, 37, 58, 0, 111,
-			2, 110, 97, 103, 101, 3, 37, 113, 0, 101, 101, 3, 37, 119, 0, 4, 2, 17, 67, 25, 3, 108, 0, 2, 120, 0, 4, 110, 8, 2,
-			100, 111, 3, 108, 50, 0, 110, 8, 2, 102, 111, 114, 109, 97, 0, 110, 8, 2, 115, 99, 114, 105, 112, 0, 110, 110, 8, 2, 105, 103,
-			0, 110, 116, 101, 114, 8, 3, 108, 50, 47, 13, 34, 0, 110, 102, 111, 114, 109, 97, 116, 105, 101, 8, 2, 21, 14, 128, 132, 138, 3,
-			108, 50, 83, 113, 34, 65, 6, 115, 47, 89, 37, 0, 110, 103, 8, 2, 101, 17, 67, 32, 3, 108, 68, 0, 115, 2, 32, 3, 108, 89,
-			0, 106, 2, 12, 3, 123, 0, 7, 6, 106, 0, 3, 57, 0, 97, 97, 114, 8, 2, 21, 14, 128, 132, 132, 3, 57, 6, 115, 34, 0,
-			97, 97, 114, 2, 108, 105, 106, 107, 3, 57, 115, 34, 0, 111, 117, 2, 114, 110, 97, 3, 90, 40, 0, 7, 6, 107, 0, 1, 107, 3,
-			0, 3, 49, 0, 105, 110, 100, 101, 114, 8, 2, 21, 14, 128, 132, 134, 3, 49, 6, 108, 50, 72, 13, 34, 0, 101, 117, 122, 101, 8,
-			2, 21, 14, 128, 132, 133, 3, 49, 6, 121, 88, 13, 0, 111, 110, 105, 110, 103, 8, 3, 49, 6, 122, 50, 108, 68, 0, 114, 101, 100,
-			105, 101, 116, 8, 2, 21, 14, 128, 132, 135, 3, 49, 34, 13, 72, 6, 37, 47, 0, 111, 107, 107, 101, 114, 101, 108, 3, 49, 113, 49,
-			13, 34, 6, 111, 55, 0, 97, 108, 101, 8, 2, 110, 100, 101, 3, 49, 115, 55, 6, 111, 0, 97, 110, 116, 111, 111, 114, 8, 2, 21,
-			14, 128, 132, 135, 3, 49, 116, 50, 47, 6, 122, 34, 0, 111, 110, 105, 110, 103, 105, 110, 8, 3, 49, 122, 50, 108, 100, 6, 108, 50,
-			0, 2, 100, 3, 81, 0, 7, 6, 108, 0, 4, 1, 108, 3, 0, 108, 1, 105, 97, 116, 101, 100, 3, 0, 3, 55, 0, 105, 101, 102,
-			100, 101, 115, 8, 2, 21, 14, 128, 132, 135, 3, 55, 6, 37, 83, 72, 13, 89, 0, 101, 110, 116, 101, 8, 2, 21, 14, 128, 132, 133,
-			3, 55, 6, 111, 50, 47, 13, 0, 4, 97, 110, 100, 8, 2, 21, 14, 128, 132, 132, 3, 55, 6, 116, 50, 72, 0, 97, 110, 100, 8,
-			2, 101, 0, 105, 106, 107, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 13, 49, 0, 105, 106, 107, 101, 114, 1, 10, 2, 32, 14, 128,
-			128, 134, 3, 55, 13, 49, 13, 34, 0, 105, 106, 107, 101, 114, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 55, 13, 49, 13, 34, 13,
-			0, 105, 106, 107, 101, 110, 1, 10, 2, 32, 14, 128, 128, 134, 3, 55, 13, 49, 13, 50, 0, 105, 106, 107, 115, 116, 1, 10, 2, 32,
-			14, 128, 128, 134, 3, 55, 13, 49, 89, 47, 0, 105, 106, 107, 115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 55, 13, 49, 89,
-			47, 13, 0, 105, 106, 107, 104, 101, 100, 101, 110, 1, 10, 2, 32, 14, 128, 128, 137, 3, 55, 13, 49, 107, 119, 72, 13, 50, 0, 105,
-			106, 107, 104, 101, 105, 100, 1, 10, 2, 32, 14, 128, 128, 136, 3, 55, 13, 49, 107, 123, 47, 0, 97, 110, 103, 101, 8, 2, 21, 14,
-			128, 132, 133, 3, 55, 35, 68, 13, 0, 97, 97, 110, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 115, 50, 0, 111, 122, 101, 1, 21,
-			2, 32, 14, 128, 128, 132, 3, 55, 122, 88, 13, 0, 111, 122, 101, 110, 1, 21, 2, 32, 14, 128, 128, 133, 3, 55, 122, 88, 13, 50,
-			0, 111, 111, 115, 1, 21, 2, 32, 14, 128, 128, 132, 3, 55, 122, 89, 0, 111, 111, 103, 1, 21, 2, 32, 3, 55, 122, 101, 0, 7,
-			6, 109, 0, 1, 109, 3, 0, 3, 65, 0, 105, 8, 2, 115, 21, 3, 65, 2, 108, 0, 105, 115, 8, 2, 103, 117, 110, 3, 65, 2,
-			108, 89, 0, 4, 105, 115, 8, 2, 99, 111, 109, 109, 14, 128, 132, 131, 3, 65, 6, 108, 89, 0, 105, 115, 8, 2, 100, 97, 14, 128,
-			132, 131, 0, 105, 115, 8, 2, 103, 21, 14, 128, 132, 131, 0, 105, 115, 8, 2, 103, 101, 21, 14, 128, 132, 131, 0, 105, 115, 8, 2,
-			105, 110, 21, 14, 128, 132, 131, 0, 105, 115, 8, 2, 107, 108, 101, 117, 14, 128, 132, 131, 0, 105, 115, 8, 2, 108, 105, 101, 112, 14,
-			128, 132, 131, 0, 105, 115, 8, 2, 108, 111, 14, 128, 132, 131, 0, 105, 115, 8, 2, 116, 17, 65, 0, 105, 115, 118, 101, 114, 8, 2,
-			21, 3, 65, 6, 108, 89, 83, 13, 34, 0, 101, 101, 8, 2, 21, 14, 128, 132, 131, 3, 65, 6, 119, 0, 101, 110, 117, 2, 32, 3,
-			65, 13, 50, 109, 0, 105, 8, 2, 99, 114, 111, 3, 65, 37, 0, 4, 105, 115, 8, 2, 97, 110, 17, 67, 3, 65, 37, 88, 0, 105,
-			115, 8, 2, 195, 168, 0, 101, 101, 8, 2, 114, 17, 67, 3, 65, 108, 12, 0, 105, 108, 105, 101, 117, 8, 3, 65, 108, 55, 57, 6,
-			121, 0, 117, 122, 105, 101, 107, 8, 2, 21, 14, 128, 132, 134, 3, 65, 109, 88, 6, 37, 49, 0, 97, 110, 97, 103, 101, 109, 101, 110,
-			116, 3, 65, 115, 50, 108, 75, 65, 13, 50, 47, 0, 7, 6, 110, 0, 1, 110, 3, 0, 4, 3, 50, 0, 2, 103, 28, 19, 0, 2,
-			107, 28, 19, 0, 4, 97, 2, 116, 117, 114, 3, 50, 2, 115, 0, 97, 2, 118, 105, 103, 0, 97, 8, 2, 112, 111, 108, 17, 65, 0,
-			97, 8, 2, 118, 111, 108, 103, 21, 0, 97, 112, 111, 108, 101, 111, 110, 3, 50, 2, 115, 48, 122, 55, 13, 57, 113, 50, 0, 97, 8,
-			2, 114, 99, 3, 50, 2, 116, 0, 97, 114, 99, 105, 8, 2, 115, 3, 50, 2, 116, 34, 89, 108, 0, 105, 101, 117, 119, 115, 8, 2,
-			21, 14, 128, 132, 134, 3, 50, 6, 37, 58, 89, 0, 4, 97, 8, 2, 17, 67, 21, 21, 14, 128, 132, 130, 3, 50, 6, 115, 0, 97,
-			8, 2, 17, 67, 21, 24, 0, 97, 110, 111, 8, 2, 21, 14, 128, 132, 132, 3, 50, 6, 115, 50, 122, 0, 97, 106, 97, 97, 114, 115,
-			8, 2, 21, 14, 128, 132, 135, 3, 50, 6, 115, 57, 115, 34, 89, 0, 105, 115, 1, 21, 21, 2, 32, 14, 128, 128, 131, 3, 50, 108,
-			89, 0, 105, 115, 101, 110, 1, 21, 21, 2, 32, 14, 128, 128, 133, 3, 50, 108, 89, 13, 50, 0, 4, 97, 8, 2, 100, 101, 114, 3,
-			50, 115, 0, 97, 8, 2, 116, 105, 111, 110, 0, 97, 8, 2, 118, 114, 0, 97, 116, 117, 117, 114, 8, 3, 50, 115, 47, 6, 109, 34,
-			0, 97, 118, 105, 103, 97, 116, 105, 101, 8, 2, 21, 14, 128, 132, 137, 3, 50, 115, 84, 37, 100, 6, 115, 47, 89, 37, 0, 4, 97,
-			8, 2, 17, 67, 11, 3, 50, 116, 0, 97, 8, 2, 99, 104, 116, 0, 111, 111, 114, 100, 8, 2, 21, 14, 128, 132, 133, 3, 50, 122,
-			34, 72, 0, 111, 116, 105, 116, 105, 101, 8, 2, 21, 14, 128, 132, 135, 3, 50, 122, 47, 6, 37, 47, 89, 37, 0, 106, 3, 67, 0,
-			4, 2, 107, 3, 68, 0, 103, 0, 7, 6, 111, 0, 118, 101, 114, 8, 2, 21, 14, 128, 132, 132, 3, 4, 122, 84, 13, 34, 0, 101,
-			2, 29, 32, 3, 6, 40, 0, 105, 114, 2, 32, 3, 6, 85, 115, 34, 0, 112, 8, 2, 21, 21, 14, 128, 132, 130, 3, 6, 113, 48,
-			0, 110, 2, 32, 3, 6, 113, 50, 0, 110, 101, 110, 2, 32, 3, 6, 113, 50, 13, 50, 0, 4, 111, 2, 17, 67, 32, 3, 6, 122,
-			0, 111, 2, 29, 0, 4, 112, 8, 2, 101, 110, 101, 110, 12, 3, 6, 122, 48, 0, 112, 8, 2, 101, 114, 97, 0, 112, 101, 110, 8,
-			2, 21, 14, 128, 132, 132, 3, 6, 122, 48, 13, 50, 0, 112, 101, 110, 105, 110, 103, 115, 8, 2, 14, 128, 132, 136, 3, 6, 122, 48,
-			13, 50, 108, 68, 89, 0, 111, 110, 3, 6, 122, 50, 0, 118, 101, 114, 104, 101, 105, 100, 8, 3, 6, 122, 84, 13, 34, 107, 123, 47,
-			0, 1, 17, 67, 21, 21, 2, 32, 3, 8, 122, 0, 98, 115, 99, 2, 117, 3, 39, 48, 89, 49, 0, 4, 101, 3, 40, 0, 117, 1,
-			99, 2, 112, 117, 0, 117, 1, 100, 2, 98, 108, 117, 0, 117, 1, 114, 116, 2, 118, 97, 105, 108, 0, 117, 2, 99, 104, 101, 32, 0,
-			117, 2, 114, 97, 103, 101, 0, 117, 1, 116, 2, 114, 3, 40, 12, 0, 101, 105, 3, 40, 57, 0, 117, 118, 101, 2, 114, 116, 117, 3,
-			40, 84, 111, 0, 117, 115, 105, 97, 1, 104, 116, 110, 101, 3, 40, 90, 6, 116, 0, 117, 99, 104, 2, 101, 110, 32, 3, 40, 91, 0,
-			4, 105, 1, 99, 2, 102, 102, 117, 3, 85, 116, 0, 105, 1, 108, 112, 2, 116, 0, 4, 2, 17, 67, 25, 3, 113, 0, 2, 120, 0,
-			112, 8, 2, 116, 105, 111, 110, 3, 113, 48, 0, 112, 112, 101, 114, 8, 3, 113, 48, 13, 34, 0, 109, 103, 101, 118, 105, 110, 103, 3,
-			113, 65, 100, 6, 119, 84, 108, 68, 0, 102, 102, 105, 99, 101, 3, 113, 83, 13, 89, 0, 115, 2, 32, 3, 113, 89, 0, 111, 2, 114,
-			3, 114, 0, 4, 3, 122, 0, 1, 114, 112, 2, 103, 114, 97, 109, 0, 2, 114, 0, 111, 0, 111, 105, 3, 122, 57, 0, 118, 101, 114,
-			105, 103, 101, 110, 8, 3, 122, 84, 13, 34, 13, 100, 13, 50, 0, 111, 115, 116, 8, 2, 21, 14, 128, 132, 132, 3, 122, 89, 47, 0,
-			4, 117, 3, 125, 0, 117, 119, 0, 7, 6, 112, 0, 1, 112, 3, 0, 3, 48, 0, 97, 114, 97, 99, 104, 2, 117, 116, 3, 48, 4,
-			115, 34, 115, 91, 0, 111, 108, 105, 116, 105, 101, 8, 2, 21, 3, 48, 122, 55, 6, 37, 47, 89, 37, 0, 111, 108, 105, 116, 105, 101,
-			107, 8, 3, 48, 122, 55, 37, 47, 6, 37, 49, 0, 4, 104, 2, 25, 3, 83, 0, 104, 8, 0, 114, 111, 103, 114, 97, 109, 109, 97,
-			1, 21, 2, 32, 14, 128, 128, 135, 3, 122, 100, 34, 116, 65, 65, 35, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 1, 21, 2, 101,
-			101, 114, 0, 117, 1, 21, 2, 101, 114, 101, 110, 32, 0, 117, 101, 1, 21, 2, 32, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 114,
-			3, 16, 34, 0, 4, 3, 34, 0, 1, 17, 65, 2, 17, 65, 0, 1, 17, 67, 2, 17, 65, 0, 111, 117, 116, 101, 3, 34, 40, 47,
-			13, 0, 7, 6, 115, 0, 2, 115, 3, 0, 105, 101, 1, 114, 17, 65, 17, 67, 2, 32, 3, 8, 88, 37, 0, 1, 21, 2, 32, 28,
-			17, 3, 8, 89, 0, 101, 108, 1, 10, 2, 32, 3, 8, 89, 13, 55, 0, 101, 108, 101, 110, 1, 10, 2, 32, 3, 8, 89, 13, 55,
-			13, 50, 0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 0, 2, 98, 0, 2, 100, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128,
-			129, 0, 1, 97, 2, 32, 0, 8, 101, 114, 118, 2, 101, 0, 99, 2, 101, 0, 99, 2, 105, 0, 99, 104, 2, 32, 0, 99, 104, 2,
-			101, 32, 0, 99, 104, 2, 101, 114, 32, 0, 97, 109, 101, 110, 8, 2, 21, 14, 128, 132, 133, 3, 89, 6, 115, 65, 13, 50, 0, 99,
-			105, 101, 110, 99, 101, 3, 89, 35, 108, 13, 50, 89, 0, 116, 97, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 89, 47, 6, 115, 90,
-			13, 0, 116, 97, 114, 116, 8, 2, 21, 14, 128, 132, 133, 3, 89, 47, 6, 116, 34, 47, 0, 116, 97, 100, 115, 8, 2, 21, 14, 128,
-			132, 133, 3, 89, 47, 6, 116, 47, 89, 0, 116, 97, 110, 100, 97, 97, 114, 100, 8, 2, 21, 14, 128, 132, 137, 3, 89, 47, 6, 116,
-			50, 72, 115, 34, 47, 0, 116, 114, 97, 97, 116, 1, 21, 2, 32, 14, 128, 128, 134, 3, 89, 47, 34, 115, 47, 0, 112, 111, 114, 116,
-			8, 2, 21, 14, 128, 132, 133, 3, 89, 48, 6, 113, 34, 47, 0, 4, 99, 2, 111, 111, 112, 3, 89, 49, 0, 99, 2, 111, 112, 105,
-			0, 99, 97, 110, 8, 2, 18, 67, 3, 89, 49, 111, 50, 0, 106, 101, 1, 21, 2, 32, 3, 89, 57, 13, 0, 99, 104, 3, 89, 101,
-			0, 101, 114, 118, 105, 99, 101, 3, 89, 110, 84, 13, 89, 0, 105, 1, 17, 65, 2, 111, 3, 90, 0, 4, 99, 104, 8, 2, 110, 3,
-			91, 0, 104, 2, 25, 0, 104, 2, 111, 112, 0, 104, 8, 0, 105, 1, 21, 2, 111, 0, 106, 0, 115, 105, 1, 21, 2, 111, 0, 7,
-			6, 116, 0, 1, 116, 3, 0, 105, 101, 1, 115, 2, 32, 3, 8, 47, 37, 0, 105, 101, 2, 32, 3, 8, 47, 89, 37, 0, 4, 105,
-			101, 1, 99, 2, 32, 3, 8, 89, 37, 0, 105, 101, 1, 107, 2, 32, 0, 105, 101, 1, 112, 2, 32, 0, 4, 3, 47, 0, 1, 115,
-			2, 105, 12, 12, 0, 2, 104, 97, 97, 114, 0, 2, 104, 97, 118, 0, 100, 0, 104, 0, 104, 8, 0, 101, 97, 109, 8, 3, 47, 6,
-			37, 12, 65, 0, 111, 101, 8, 2, 21, 14, 128, 132, 131, 3, 47, 6, 40, 0, 114, 97, 110, 115, 8, 2, 21, 14, 128, 132, 133, 3,
-			47, 34, 4, 116, 50, 89, 0, 114, 97, 105, 110, 8, 3, 47, 34, 119, 50, 0, 101, 97, 109, 2, 32, 3, 47, 37, 12, 65, 0, 106,
-			3, 47, 38, 0, 111, 117, 99, 104, 2, 101, 3, 47, 40, 91, 0, 105, 101, 1, 97, 114, 99, 2, 32, 3, 47, 89, 6, 37, 0, 115,
-			106, 3, 76, 0, 4, 105, 1, 21, 2, 97, 3, 91, 0, 105, 1, 21, 2, 101, 117, 115, 0, 105, 1, 21, 2, 101, 117, 122, 0, 105,
-			1, 21, 2, 111, 110, 0, 105, 1, 21, 2, 195, 171, 0, 4, 105, 101, 101, 2, 108, 32, 3, 91, 6, 119, 0, 105, 195, 171, 2, 108,
-			101, 32, 0, 7, 6, 117, 0, 4, 2, 115, 105, 101, 32, 3, 6, 109, 0, 117, 2, 114, 32, 0, 116, 101, 1, 21, 2, 32, 3, 6,
-			109, 47, 0, 117, 108, 2, 32, 3, 6, 109, 55, 0, 105, 116, 8, 2, 21, 14, 128, 132, 131, 3, 6, 124, 47, 0, 4, 3, 109, 0,
-			117, 0, 119, 2, 17, 65, 3, 109, 58, 0, 4, 2, 17, 67, 25, 3, 110, 0, 2, 120, 0, 115, 2, 32, 3, 110, 89, 0, 105, 3,
-			124, 0, 119, 2, 25, 3, 127, 0, 7, 6, 118, 0, 1, 115, 3, 83, 0, 3, 84, 0, 97, 110, 8, 2, 21, 14, 128, 132, 131, 3,
-			84, 2, 116, 50, 0, 111, 111, 114, 8, 3, 84, 6, 114, 34, 0, 111, 111, 114, 116, 8, 2, 21, 14, 128, 132, 133, 3, 84, 6, 114,
-			34, 47, 0, 111, 111, 114, 106, 97, 97, 114, 115, 8, 2, 21, 14, 128, 132, 137, 3, 84, 6, 114, 34, 57, 115, 34, 89, 0, 101, 114,
-			8, 2, 21, 14, 128, 132, 131, 3, 84, 13, 34, 0, 101, 114, 107, 101, 101, 114, 115, 8, 2, 21, 14, 128, 132, 136, 3, 84, 13, 34,
-			49, 6, 108, 12, 34, 89, 0, 114, 105, 106, 119, 105, 108, 108, 105, 103, 101, 114, 115, 8, 2, 21, 14, 128, 132, 141, 3, 84, 34, 123,
-			85, 6, 108, 55, 13, 100, 13, 34, 89, 0, 101, 114, 8, 2, 101, 110, 25, 3, 84, 108, 12, 34, 0, 101, 114, 8, 2, 115, 105, 101,
-			32, 3, 84, 111, 34, 0, 101, 114, 100, 101, 114, 8, 3, 84, 111, 34, 72, 13, 34, 0, 97, 107, 97, 110, 116, 105, 101, 8, 2, 21,
-			14, 128, 132, 136, 3, 84, 115, 49, 6, 116, 50, 47, 89, 37, 0, 97, 110, 122, 101, 108, 102, 8, 2, 21, 14, 128, 132, 135, 3, 84,
-			116, 50, 88, 4, 111, 55, 83, 0, 97, 110, 103, 8, 3, 84, 116, 68, 0, 7, 6, 119, 0, 4, 2, 17, 67, 25, 3, 58, 0, 2,
-			29, 0, 114, 8, 2, 21, 3, 84, 34, 0, 3, 85, 0, 101, 114, 101, 108, 100, 8, 2, 21, 14, 128, 132, 134, 3, 85, 6, 108, 12,
-			34, 13, 55, 47, 0, 101, 101, 114, 115, 8, 2, 21, 14, 128, 132, 133, 3, 85, 6, 108, 12, 34, 89, 0, 105, 110, 116, 101, 114, 8,
-			2, 21, 14, 128, 132, 134, 3, 85, 6, 108, 50, 47, 13, 34, 0, 4, 101, 114, 107, 8, 2, 21, 14, 128, 132, 132, 3, 85, 6, 111,
-			34, 49, 0, 101, 114, 107, 8, 2, 101, 108, 0, 101, 114, 107, 8, 2, 105, 110, 103, 0, 101, 116, 115, 8, 2, 21, 14, 128, 132, 132,
-			3, 85, 6, 111, 47, 89, 0, 101, 103, 8, 2, 21, 14, 128, 132, 131, 3, 85, 6, 111, 100, 0, 97, 116, 101, 114, 8, 2, 21, 14,
-			128, 132, 133, 3, 85, 6, 115, 47, 13, 34, 0, 97, 110, 8, 2, 21, 14, 128, 132, 131, 3, 85, 6, 116, 50, 0, 97, 110, 8, 2,
-			18, 66, 21, 14, 128, 132, 131, 3, 85, 6, 116, 68, 0, 111, 111, 110, 8, 2, 21, 14, 128, 132, 132, 3, 85, 6, 122, 50, 0, 101,
-			115, 116, 8, 2, 21, 14, 128, 132, 132, 3, 85, 111, 89, 47, 0, 4, 97, 110, 8, 2, 100, 101, 108, 3, 85, 116, 50, 0, 97, 110,
-			110, 8, 2, 101, 101, 114, 0, 97, 110, 111, 114, 100, 101, 108, 105, 106, 107, 8, 3, 85, 116, 50, 23, 6, 113, 34, 72, 13, 55, 13,
-			49, 0, 97, 110, 116, 114, 111, 117, 119, 105, 103, 8, 3, 85, 116, 50, 47, 34, 6, 125, 13, 100, 0, 97, 110, 118, 111, 101, 103, 108,
-			105, 106, 107, 8, 3, 85, 116, 50, 84, 6, 40, 101, 55, 13, 49, 0, 97, 110, 115, 116, 97, 108, 116, 105, 103, 8, 3, 85, 116, 50,
-			89, 47, 6, 116, 55, 47, 13, 100, 0, 97, 110, 115, 109, 97, 107, 101, 108, 105, 106, 107, 8, 3, 85, 116, 50, 89, 65, 6, 115, 49,
-			13, 55, 13, 49, 0, 97, 110, 104, 111, 112, 105, 103, 8, 3, 85, 116, 50, 107, 6, 122, 48, 13, 100, 0, 97, 110, 8, 2, 107, 101,
-			108, 3, 85, 116, 68, 0, 4, 101, 103, 8, 2, 101, 32, 3, 85, 119, 100, 0, 101, 103, 8, 2, 101, 110, 0, 101, 103, 8, 2, 105,
-			110, 103, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 37, 0, 8, 2, 17, 65, 3, 57, 0, 4, 2, 17, 67, 25,
-			3, 108, 0, 2, 120, 0, 7, 6, 122, 0, 4, 1, 115, 3, 0, 2, 122, 3, 0, 3, 88, 0, 111, 103, 101, 8, 2, 21, 14, 128,
-			132, 132, 3, 88, 4, 122, 100, 13, 0, 101, 101, 8, 2, 21, 14, 128, 132, 131, 3, 88, 6, 119, 0, 111, 109, 101, 114, 8, 2, 21,
-			14, 128, 132, 133, 3, 88, 6, 122, 65, 13, 34, 0, 101, 108, 101, 2, 32, 14, 128, 128, 132, 3, 88, 119, 55, 13, 0, 117, 105, 100,
-			8, 2, 21, 14, 128, 132, 132, 3, 88, 124, 47, 0, 101, 101, 117, 119, 8, 3, 88, 126, 0, 101, 108, 102, 1, 21, 2, 32, 14, 128,
-			128, 132, 3, 89, 6, 111, 55, 83, 0, 7, 6, 0, 195, 168, 114, 101, 2, 32, 3, 6, 111, 34, 13, 0, 195, 169, 2, 32, 3, 6,
-			119, 0, 195, 171, 110, 1, 101, 105, 114, 101, 2, 32, 14, 128, 128, 130, 3, 13, 50, 0, 44, 2, 15, 3, 49, 6, 113, 65, 115, 0,
-			45, 8, 32, 2, 32, 15, 3, 65, 6, 108, 50, 0, 36, 3, 72, 6, 113, 55, 116, 34, 0, 39, 115, 1, 21, 2, 32, 14, 128, 128,
-			130, 3, 89, 0, 4, 195, 169, 3, 119, 0, 195, 169, 195, 169, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts48 = FileInMemory_createWithData (27197, reinterpret_cast<const char *> (&espeakdata_dicts48_data), 
-			U"espeak-1.48.04-source/espeak-data/nl_dict", 
+			1, 10, 2, 101, 110, 100, 101, 32, 28, 33, 0, 1, 10, 2, 105, 110, 103, 32, 28, 33, 0, 1, 10, 2, 105, 110, 103, 101, 110, 32,
+			28, 33, 0, 1, 10, 2, 116, 32, 28, 33, 0, 4, 1, 10, 2, 32, 3, 13, 34, 0, 1, 10, 2, 101, 110, 32, 28, 33, 0, 1,
+			21, 2, 97, 97, 114, 32, 0, 1, 108, 111, 116, 2, 97, 98, 101, 108, 0, 1, 115, 105, 109, 2, 97, 98, 101, 108, 0, 2, 105, 106,
+			32, 0, 105, 101, 2, 32, 3, 13, 34, 6, 37, 0, 101, 1, 10, 2, 32, 3, 13, 34, 13, 0, 97, 1, 10, 2, 32, 3, 13, 34,
+			115, 0, 8, 2, 21, 14, 128, 132, 130, 3, 111, 34, 0, 103, 101, 114, 8, 3, 111, 34, 100, 13, 34, 0, 1, 10, 2, 17, 67, 21,
+			3, 112, 34, 0, 7, 6, 111, 110, 0, 4, 103, 8, 2, 97, 97, 114, 110, 3, 4, 113, 50, 100, 6, 0, 103, 8, 2, 97, 110, 115,
+			0, 103, 8, 2, 114, 105, 106, 112, 98, 97, 97, 114, 0, 103, 8, 2, 114, 111, 110, 100, 0, 103, 8, 2, 117, 110, 115, 116, 105, 103,
+			0, 103, 8, 2, 117, 117, 114, 0, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 4, 113, 50, 100, 13, 0, 100, 101, 114, 8, 2, 21,
+			14, 128, 132, 133, 3, 6, 113, 50, 72, 13, 34, 0, 8, 2, 116, 101, 21, 14, 128, 132, 130, 3, 113, 50, 0, 97, 97, 110, 8, 2,
+			21, 14, 128, 132, 133, 3, 113, 50, 6, 115, 50, 0, 116, 8, 2, 21, 14, 128, 132, 131, 3, 113, 50, 47, 0, 100, 101, 114, 8, 3,
+			113, 50, 72, 13, 34, 0, 4, 103, 101, 8, 2, 100, 105, 101, 114, 116, 3, 113, 50, 100, 13, 0, 103, 101, 8, 2, 108, 111, 111, 102,
+			0, 103, 101, 8, 2, 108, 117, 107, 0, 103, 101, 8, 2, 109, 97, 107, 0, 103, 101, 8, 2, 110, 97, 100, 101, 0, 103, 101, 8, 2,
+			114, 105, 101, 102, 0, 103, 101, 8, 2, 118, 97, 108, 0, 7, 6, 114, 101, 0, 4, 8, 2, 99, 101, 110, 116, 3, 34, 13, 0, 8,
+			2, 99, 101, 112, 116, 0, 8, 2, 99, 108, 97, 109, 0, 8, 2, 103, 101, 101, 114, 0, 8, 2, 103, 101, 114, 101, 110, 0, 8, 2,
+			115, 101, 114, 118, 101, 32, 0, 8, 2, 99, 111, 114, 100, 3, 34, 36, 6, 0, 8, 2, 99, 101, 112, 116, 105, 101, 102, 3, 34, 119,
+			0, 112, 114, 101, 2, 115, 97, 105, 108, 108, 3, 34, 119, 48, 34, 119, 0, 7, 6, 116, 101, 0, 103, 101, 110, 8, 2, 14, 128, 132,
+			133, 3, 47, 6, 119, 100, 13, 50, 0, 4, 8, 2, 103, 101, 108, 105, 106, 107, 14, 128, 132, 130, 3, 47, 13, 0, 8, 2, 103, 101,
+			109, 111, 101, 116, 14, 128, 132, 130, 0, 8, 2, 103, 111, 101, 100, 0, 8, 2, 104, 117, 105, 0, 8, 2, 107, 101, 101, 114, 0, 8,
+			2, 107, 111, 114, 116, 0, 8, 2, 108, 101, 117, 114, 0, 8, 2, 108, 111, 111, 114, 0, 8, 2, 109, 101, 101, 114, 0, 8, 2, 109,
+			105, 100, 100, 0, 8, 2, 110, 97, 0, 8, 2, 110, 101, 101, 114, 0, 8, 2, 114, 101, 99, 104, 116, 0, 8, 2, 115, 97, 109, 0,
+			8, 2, 118, 101, 101, 108, 0, 8, 2, 118, 101, 114, 103, 101, 101, 102, 14, 128, 132, 130, 0, 8, 2, 118, 111, 111, 114, 115, 99, 104,
+			105, 106, 110, 0, 8, 2, 118, 111, 114, 0, 8, 2, 118, 114, 101, 100, 0, 8, 2, 119, 101, 114, 107, 0, 114, 117, 103, 8, 2, 14,
+			128, 132, 133, 3, 47, 13, 34, 6, 110, 101, 0, 119, 101, 101, 103, 8, 2, 14, 128, 132, 134, 3, 47, 13, 85, 6, 119, 101, 0, 7,
+			6, 97, 0, 99, 104, 1, 109, 2, 105, 110, 3, 2, 115, 91, 0, 102, 102, 105, 99, 104, 8, 3, 2, 116, 83, 37, 91, 0, 105, 114,
+			101, 2, 32, 3, 6, 111, 12, 34, 13, 0, 105, 114, 2, 32, 3, 6, 111, 34, 0, 4, 1, 21, 2, 100, 101, 32, 3, 6, 115, 0,
+			1, 21, 2, 116, 97, 32, 0, 2, 116, 111, 114, 32, 0, 97, 2, 17, 67, 32, 0, 97, 2, 114, 100, 32, 0, 114, 105, 115, 2, 32,
+			3, 6, 115, 34, 108, 89, 0, 114, 105, 115, 115, 101, 110, 2, 32, 3, 6, 115, 34, 108, 89, 13, 50, 0, 97, 110, 8, 2, 21, 14,
+			128, 132, 131, 3, 6, 115, 50, 0, 98, 101, 108, 1, 21, 2, 32, 3, 6, 115, 71, 13, 55, 0, 98, 101, 108, 101, 1, 21, 2, 32,
+			3, 6, 115, 71, 13, 55, 13, 0, 103, 101, 2, 32, 24, 3, 6, 115, 90, 13, 0, 4, 110, 116, 1, 21, 2, 32, 3, 6, 116, 50,
+			47, 0, 110, 116, 1, 21, 2, 101, 32, 0, 110, 116, 1, 21, 2, 101, 110, 32, 0, 110, 116, 1, 21, 2, 101, 114, 32, 0, 105, 108,
+			108, 101, 2, 32, 3, 6, 116, 57, 13, 0, 105, 108, 108, 101, 115, 2, 32, 3, 6, 116, 57, 13, 89, 0, 103, 110, 101, 1, 21, 2,
+			32, 3, 6, 116, 67, 13, 0, 102, 8, 2, 17, 67, 21, 14, 128, 132, 130, 3, 6, 116, 83, 0, 1, 17, 67, 21, 21, 2, 32, 3,
+			8, 115, 0, 103, 101, 115, 2, 32, 14, 128, 128, 129, 3, 89, 0, 105, 8, 2, 109, 97, 98, 101, 108, 3, 111, 0, 4, 3, 115, 0,
+			1, 116, 2, 98, 108, 101, 97, 117, 0, 97, 0, 97, 1, 122, 2, 109, 32, 0, 101, 0, 97, 114, 1, 21, 2, 32, 14, 128, 128, 131,
+			3, 115, 34, 0, 97, 114, 100, 1, 21, 2, 32, 14, 128, 128, 132, 3, 115, 34, 47, 0, 4, 97, 105, 3, 115, 57, 0, 121, 0, 103,
+			101, 2, 32, 28, 17, 3, 115, 100, 13, 0, 4, 2, 17, 67, 25, 3, 116, 0, 2, 120, 0, 4, 1, 98, 2, 98, 121, 3, 119, 0,
+			105, 1, 100, 2, 115, 121, 0, 105, 108, 1, 109, 3, 119, 108, 55, 0, 4, 117, 3, 125, 0, 117, 119, 0, 7, 6, 98, 0, 1, 98,
+			3, 0, 97, 97, 114, 1, 10, 2, 32, 14, 128, 128, 132, 3, 8, 71, 115, 34, 0, 97, 114, 101, 1, 10, 2, 32, 14, 128, 128, 132,
+			3, 8, 71, 115, 34, 13, 0, 8, 111, 2, 115, 116, 97, 107, 3, 48, 0, 115, 2, 32, 24, 3, 48, 89, 0, 3, 71, 0, 105, 106,
+			2, 122, 111, 110, 100, 3, 71, 2, 37, 0, 105, 110, 110, 101, 110, 8, 2, 14, 128, 132, 134, 3, 71, 6, 108, 50, 13, 50, 0, 117,
+			117, 114, 116, 8, 2, 21, 21, 14, 128, 132, 133, 3, 71, 6, 109, 34, 47, 0, 111, 118, 101, 110, 8, 2, 14, 128, 132, 133, 3, 71,
+			6, 122, 84, 13, 50, 0, 105, 106, 8, 2, 17, 67, 21, 14, 128, 132, 131, 3, 71, 6, 123, 0, 117, 105, 116, 101, 110, 8, 2, 14,
+			128, 132, 134, 3, 71, 6, 124, 47, 13, 50, 0, 114, 97, 110, 100, 8, 3, 71, 34, 6, 116, 50, 72, 0, 97, 97, 110, 3, 71, 115,
+			50, 0, 7, 6, 99, 0, 4, 3, 49, 0, 107, 0, 111, 2, 110, 99, 101, 114, 116, 3, 49, 2, 113, 0, 111, 110, 103, 114, 101, 115,
+			8, 3, 49, 113, 50, 100, 34, 6, 111, 89, 0, 111, 97, 99, 104, 3, 49, 122, 76, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2,
+			121, 0, 4, 105, 1, 21, 2, 101, 101, 108, 3, 91, 0, 105, 1, 21, 2, 101, 117, 115, 0, 105, 1, 21, 2, 101, 117, 122, 0, 105,
+			1, 21, 2, 195, 171, 0, 105, 2, 97, 0, 105, 2, 111, 0, 7, 6, 100, 0, 1, 100, 3, 0, 4, 2, 115, 116, 3, 47, 0, 116,
+			0, 106, 3, 47, 57, 0, 115, 2, 32, 24, 3, 47, 89, 0, 3, 72, 0, 4, 101, 8, 2, 103, 101, 101, 110, 3, 72, 13, 0, 101,
+			8, 2, 122, 101, 108, 102, 0, 106, 8, 3, 75, 0, 7, 6, 101, 0, 117, 109, 1, 115, 117, 109, 21, 2, 32, 3, 4, 119, 110, 65,
+			0, 4, 1, 21, 2, 114, 101, 110, 100, 101, 32, 3, 6, 108, 0, 1, 21, 2, 114, 101, 110, 100, 101, 110, 32, 0, 101, 1, 21, 2,
+			114, 32, 0, 101, 1, 21, 2, 114, 100, 32, 0, 101, 1, 21, 2, 114, 100, 101, 32, 0, 101, 1, 21, 2, 114, 100, 101, 110, 32, 0,
+			101, 1, 21, 2, 114, 116, 32, 0, 4, 110, 116, 1, 21, 2, 32, 3, 6, 111, 50, 47, 0, 110, 116, 1, 21, 2, 101, 32, 0, 110,
+			116, 1, 21, 2, 101, 110, 32, 0, 110, 116, 1, 21, 2, 101, 114, 32, 0, 110, 116, 1, 21, 2, 101, 114, 101, 32, 0, 110, 116, 1,
+			21, 2, 115, 116, 32, 0, 110, 116, 1, 21, 2, 115, 116, 101, 32, 0, 110, 116, 1, 103, 97, 0, 108, 1, 21, 2, 32, 3, 6, 111,
+			55, 0, 115, 1, 21, 2, 32, 14, 128, 208, 130, 3, 6, 111, 89, 0, 115, 115, 101, 110, 1, 21, 2, 32, 14, 128, 208, 133, 3, 6,
+			111, 89, 13, 50, 0, 4, 101, 1, 21, 2, 29, 32, 3, 6, 119, 0, 101, 1, 21, 2, 32, 0, 108, 101, 1, 10, 2, 32, 3, 6,
+			119, 55, 13, 0, 108, 101, 110, 1, 21, 2, 32, 3, 6, 119, 55, 13, 50, 0, 117, 109, 2, 32, 28, 17, 3, 6, 119, 110, 65, 0,
+			97, 2, 32, 3, 6, 119, 115, 0, 117, 114, 1, 21, 2, 32, 3, 6, 121, 34, 0, 117, 122, 101, 1, 105, 2, 32, 3, 6, 121, 88,
+			13, 0, 117, 122, 101, 114, 1, 105, 2, 32, 3, 6, 121, 88, 13, 34, 0, 117, 122, 101, 114, 101, 1, 105, 2, 32, 3, 6, 121, 88,
+			13, 34, 13, 0, 117, 115, 1, 105, 2, 32, 3, 6, 121, 89, 0, 117, 115, 116, 1, 105, 2, 32, 3, 6, 121, 89, 47, 0, 117, 115,
+			116, 101, 1, 105, 2, 32, 3, 6, 121, 89, 47, 13, 0, 97, 117, 2, 32, 3, 6, 122, 0, 105, 116, 1, 116, 105, 2, 32, 3, 6,
+			123, 47, 0, 110, 1, 10, 2, 101, 32, 28, 33, 14, 128, 129, 131, 3, 8, 13, 50, 13, 0, 110, 1, 10, 2, 101, 110, 32, 28, 33,
+			14, 128, 129, 132, 3, 8, 13, 50, 13, 50, 0, 110, 1, 10, 2, 116, 32, 28, 33, 14, 128, 129, 131, 3, 8, 13, 50, 47, 0, 4,
+			108, 1, 10, 2, 32, 28, 33, 3, 8, 13, 55, 0, 108, 1, 10, 2, 100, 101, 32, 28, 33, 0, 108, 1, 10, 2, 100, 101, 110, 32,
+			28, 33, 0, 108, 1, 10, 2, 101, 32, 28, 33, 0, 108, 1, 10, 2, 101, 110, 32, 28, 33, 0, 108, 1, 10, 2, 101, 110, 100, 32,
+			28, 33, 0, 108, 1, 10, 2, 105, 110, 103, 32, 28, 33, 0, 108, 1, 10, 2, 105, 110, 103, 101, 110, 32, 28, 33, 0, 108, 1, 10,
+			2, 116, 32, 28, 33, 0, 4, 1, 10, 2, 109, 101, 110, 116, 3, 13, 0, 1, 10, 2, 110, 105, 115, 115, 101, 110, 32, 0, 1, 17,
+			67, 10, 2, 32, 14, 128, 208, 129, 0, 1, 17, 67, 17, 65, 25, 2, 32, 14, 128, 129, 129, 0, 1, 103, 105, 2, 32, 12, 14, 128,
+			208, 129, 0, 1, 106, 17, 65, 25, 2, 32, 14, 128, 128, 129, 0, 1, 108, 101, 2, 32, 12, 14, 128, 208, 129, 0, 1, 114, 101, 2,
+			32, 12, 14, 128, 208, 129, 0, 1, 115, 2, 99, 111, 110, 100, 0, 1, 115, 2, 99, 117, 117, 114, 0, 2, 32, 0, 110, 100, 101, 1,
+			10, 2, 32, 14, 128, 128, 129, 0, 117, 105, 108, 108, 101, 3, 13, 6, 109, 0, 195, 175, 2, 12, 3, 13, 10, 108, 0, 114, 101, 115,
+			1, 21, 2, 32, 14, 128, 208, 132, 3, 13, 34, 6, 111, 89, 0, 114, 101, 115, 115, 101, 110, 1, 21, 2, 32, 14, 128, 192, 135, 3,
+			13, 34, 6, 111, 89, 13, 50, 0, 4, 110, 1, 10, 2, 32, 14, 128, 208, 130, 3, 13, 50, 0, 110, 1, 17, 67, 17, 65, 25, 2,
+			32, 14, 128, 129, 130, 0, 110, 1, 100, 110, 97, 2, 32, 14, 128, 128, 130, 0, 110, 1, 106, 17, 65, 25, 2, 32, 14, 128, 128, 130,
+			0, 110, 1, 108, 101, 2, 32, 12, 14, 128, 208, 130, 0, 110, 1, 108, 108, 2, 32, 14, 128, 128, 131, 0, 110, 1, 114, 101, 2, 32,
+			12, 14, 128, 208, 130, 0, 110, 100, 101, 110, 1, 10, 2, 32, 14, 128, 128, 130, 0, 116, 116, 101, 110, 1, 21, 2, 32, 14, 128, 128,
+			131, 0, 110, 100, 1, 10, 2, 32, 3, 13, 50, 72, 0, 110, 115, 1, 10, 2, 32, 14, 128, 192, 131, 3, 13, 50, 89, 0, 108, 105,
+			106, 107, 115, 1, 10, 3, 13, 55, 13, 49, 89, 0, 108, 100, 1, 10, 2, 32, 3, 13, 55, 72, 0, 109, 1, 10, 2, 32, 3, 13,
+			65, 0, 4, 115, 1, 17, 67, 17, 65, 25, 2, 32, 14, 128, 129, 130, 3, 13, 89, 0, 115, 1, 21, 2, 32, 28, 33, 0, 115, 1,
+			106, 21, 2, 32, 0, 4, 2, 114, 3, 108, 12, 0, 101, 2, 114, 0, 4, 1, 99, 2, 110, 116, 114, 117, 109, 3, 111, 0, 1, 100,
+			105, 2, 110, 116, 0, 1, 115, 101, 114, 112, 2, 110, 116, 0, 2, 17, 67, 25, 0, 2, 114, 116, 115, 15, 0, 2, 120, 0, 120, 112,
+			111, 115, 105, 116, 105, 101, 8, 3, 111, 49, 89, 48, 122, 88, 6, 37, 47, 89, 37, 0, 1, 10, 2, 110, 17, 66, 21, 3, 112, 0,
+			4, 1, 29, 3, 119, 0, 1, 99, 111, 114, 112, 2, 100, 117, 0, 8, 112, 2, 110, 105, 98, 101, 108, 0, 101, 0, 100, 101, 110, 3,
+			119, 72, 13, 50, 0, 3, 120, 0, 117, 3, 121, 0, 97, 117, 3, 122, 0, 105, 2, 12, 3, 123, 0, 101, 117, 119, 3, 126, 0, 7,
+			6, 102, 0, 1, 102, 3, 0, 3, 83, 0, 7, 6, 103, 0, 4, 105, 1, 21, 2, 101, 117, 115, 3, 90, 0, 105, 1, 21, 2, 101,
+			117, 122, 0, 4, 3, 100, 0, 103, 0, 101, 110, 101, 114, 2, 97, 97, 108, 3, 100, 4, 119, 50, 13, 34, 0, 4, 101, 2, 98, 105,
+			101, 100, 3, 100, 13, 0, 101, 2, 115, 112, 114, 101, 107, 0, 101, 2, 118, 97, 108, 0, 101, 8, 2, 21, 14, 128, 132, 130, 0, 101,
+			108, 105, 106, 107, 8, 3, 100, 13, 55, 123, 49, 0, 105, 1, 105, 108, 101, 114, 2, 101, 117, 3, 100, 37, 57, 0, 101, 8, 2, 114,
+			17, 67, 3, 100, 111, 0, 4, 101, 8, 2, 118, 101, 110, 3, 100, 119, 0, 101, 8, 2, 118, 101, 114, 0, 101, 8, 2, 118, 105, 110,
+			103, 0, 101, 101, 8, 0, 101, 117, 8, 3, 100, 121, 0, 1, 115, 3, 101, 0, 7, 6, 104, 0, 1, 17, 67, 2, 25, 3, 0, 3,
+			107, 0, 101, 114, 105, 110, 110, 8, 3, 107, 2, 111, 34, 108, 50, 0, 101, 114, 115, 101, 110, 8, 3, 107, 6, 111, 34, 89, 13, 50,
+			0, 101, 114, 8, 2, 101, 110, 3, 107, 108, 12, 34, 0, 101, 114, 8, 2, 21, 14, 128, 132, 131, 3, 107, 111, 34, 0, 101, 105, 100,
+			1, 10, 2, 32, 14, 128, 128, 132, 3, 107, 123, 47, 0, 7, 6, 105, 0, 4, 101, 1, 100, 2, 32, 3, 6, 37, 0, 101, 1, 103,
+			2, 32, 0, 101, 1, 109, 2, 32, 0, 101, 1, 112, 2, 32, 0, 101, 2, 17, 67, 101, 32, 0, 101, 2, 17, 67, 101, 110, 32, 0,
+			101, 2, 17, 67, 101, 114, 32, 0, 101, 2, 17, 67, 101, 114, 101, 32, 0, 101, 2, 17, 67, 106, 101, 29, 32, 0, 101, 2, 17, 67,
+			115, 116, 101, 32, 0, 101, 2, 17, 67, 116, 106, 101, 29, 32, 0, 101, 2, 29, 0, 101, 2, 114, 100, 32, 0, 101, 2, 114, 101, 110,
+			32, 0, 98, 101, 108, 1, 21, 2, 32, 3, 6, 37, 71, 13, 55, 0, 98, 101, 108, 101, 1, 21, 2, 32, 3, 6, 37, 71, 13, 55,
+			13, 0, 110, 110, 8, 2, 21, 14, 128, 132, 130, 3, 6, 108, 0, 110, 8, 2, 17, 67, 21, 14, 128, 132, 130, 3, 6, 108, 50, 0,
+			115, 116, 1, 21, 2, 32, 3, 6, 108, 89, 47, 0, 115, 116, 101, 110, 1, 21, 2, 32, 3, 6, 108, 89, 47, 13, 50, 0, 115, 109,
+			101, 1, 21, 2, 32, 3, 6, 108, 89, 65, 13, 0, 4, 106, 1, 21, 2, 110, 32, 3, 6, 123, 0, 106, 2, 32, 0, 106, 2, 101,
+			32, 0, 106, 2, 101, 110, 0, 106, 2, 116, 106, 101, 29, 0, 103, 101, 1, 21, 2, 32, 14, 128, 208, 131, 3, 8, 13, 100, 13, 0,
+			103, 101, 114, 1, 21, 2, 32, 3, 8, 13, 100, 13, 34, 0, 103, 101, 114, 101, 1, 21, 2, 32, 3, 8, 13, 100, 13, 34, 13, 0,
+			103, 101, 110, 1, 21, 2, 32, 3, 8, 13, 100, 13, 50, 0, 103, 115, 116, 1, 21, 2, 32, 3, 8, 13, 100, 89, 47, 0, 103, 115,
+			116, 101, 1, 21, 2, 32, 3, 8, 13, 100, 89, 47, 13, 0, 103, 1, 21, 2, 32, 14, 128, 208, 130, 3, 8, 13, 101, 0, 99, 117,
+			115, 1, 10, 2, 32, 3, 8, 37, 49, 110, 89, 0, 4, 99, 97, 1, 10, 2, 32, 3, 8, 37, 49, 115, 0, 107, 97, 1, 10, 2,
+			32, 0, 4, 99, 111, 1, 10, 2, 32, 3, 8, 37, 49, 122, 0, 107, 111, 1, 10, 2, 32, 0, 115, 99, 104, 1, 21, 2, 32, 3,
+			8, 37, 89, 0, 115, 99, 104, 101, 1, 21, 2, 32, 3, 8, 37, 89, 13, 0, 99, 105, 1, 10, 2, 32, 3, 8, 37, 89, 37, 0,
+			4, 3, 37, 0, 2, 99, 104, 101, 32, 0, 101, 0, 101, 117, 122, 101, 2, 32, 3, 37, 57, 6, 121, 88, 13, 0, 101, 117, 122, 101,
+			114, 2, 32, 3, 37, 57, 6, 121, 88, 13, 34, 0, 101, 117, 122, 101, 114, 101, 2, 32, 3, 37, 57, 6, 121, 88, 13, 34, 13, 0,
+			101, 117, 115, 2, 32, 3, 37, 57, 6, 121, 89, 0, 101, 117, 115, 116, 2, 32, 3, 37, 57, 6, 121, 89, 47, 0, 101, 117, 115, 116,
+			101, 2, 32, 3, 37, 57, 6, 121, 89, 47, 13, 0, 101, 117, 119, 3, 37, 58, 0, 111, 2, 110, 97, 103, 101, 3, 37, 113, 0, 101,
+			101, 3, 37, 119, 0, 4, 2, 17, 67, 25, 3, 108, 0, 2, 120, 0, 106, 2, 12, 3, 123, 0, 7, 6, 106, 0, 3, 57, 0, 111,
+			117, 2, 114, 110, 97, 3, 90, 40, 0, 7, 6, 107, 0, 1, 107, 3, 0, 3, 49, 0, 111, 110, 105, 110, 103, 8, 3, 49, 6, 122,
+			50, 108, 68, 0, 111, 107, 107, 101, 114, 101, 108, 3, 49, 113, 49, 13, 34, 6, 111, 55, 0, 97, 108, 101, 8, 2, 110, 100, 101, 3,
+			49, 115, 55, 6, 111, 0, 111, 110, 105, 110, 103, 105, 110, 8, 3, 49, 122, 50, 108, 100, 6, 108, 50, 0, 7, 6, 108, 0, 1, 108,
+			3, 0, 3, 55, 0, 105, 106, 107, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 13, 49, 0, 105, 106, 107, 101, 1, 10, 2, 32, 14,
+			128, 128, 133, 3, 55, 13, 49, 13, 0, 105, 106, 107, 101, 114, 1, 10, 2, 32, 14, 128, 128, 134, 3, 55, 13, 49, 13, 34, 0, 105,
+			106, 107, 101, 114, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 55, 13, 49, 13, 34, 13, 0, 105, 106, 107, 101, 110, 1, 10, 2, 32,
+			14, 128, 128, 134, 3, 55, 13, 49, 13, 50, 0, 105, 106, 107, 115, 116, 1, 10, 2, 32, 14, 128, 128, 134, 3, 55, 13, 49, 89, 47,
+			0, 105, 106, 107, 115, 116, 101, 1, 10, 2, 32, 14, 128, 128, 135, 3, 55, 13, 49, 89, 47, 13, 0, 105, 106, 107, 104, 101, 105, 100,
+			1, 10, 2, 32, 14, 128, 128, 136, 3, 55, 13, 49, 107, 123, 47, 0, 97, 110, 103, 101, 8, 2, 21, 14, 128, 132, 133, 3, 55, 35,
+			68, 13, 0, 97, 97, 110, 1, 10, 2, 32, 14, 128, 128, 132, 3, 55, 115, 50, 0, 111, 122, 101, 1, 21, 2, 32, 14, 128, 128, 132,
+			3, 55, 122, 88, 13, 0, 111, 122, 101, 110, 1, 21, 2, 32, 14, 128, 128, 133, 3, 55, 122, 88, 13, 50, 0, 111, 111, 115, 1, 21,
+			2, 32, 14, 128, 128, 132, 3, 55, 122, 89, 0, 111, 111, 103, 1, 21, 2, 32, 3, 55, 122, 101, 0, 7, 6, 109, 0, 1, 109, 3,
+			0, 3, 65, 0, 105, 8, 2, 115, 21, 3, 65, 2, 108, 0, 105, 115, 8, 2, 103, 117, 110, 3, 65, 2, 108, 89, 0, 4, 105, 115,
+			8, 2, 99, 111, 109, 109, 14, 128, 132, 131, 3, 65, 6, 108, 89, 0, 105, 115, 8, 2, 100, 97, 14, 128, 132, 131, 0, 105, 115, 8,
+			2, 103, 21, 14, 128, 132, 131, 0, 105, 115, 8, 2, 103, 101, 21, 14, 128, 132, 131, 0, 105, 115, 8, 2, 105, 110, 21, 14, 128, 132,
+			131, 0, 105, 115, 8, 2, 107, 108, 101, 117, 14, 128, 132, 131, 0, 105, 115, 8, 2, 108, 105, 101, 112, 14, 128, 132, 131, 0, 105, 115,
+			8, 2, 108, 111, 14, 128, 132, 131, 0, 105, 115, 8, 2, 116, 17, 65, 0, 105, 115, 118, 101, 114, 8, 2, 21, 3, 65, 6, 108, 89,
+			83, 13, 34, 0, 101, 101, 8, 2, 21, 14, 128, 132, 131, 3, 65, 6, 119, 0, 101, 110, 117, 2, 32, 3, 65, 13, 50, 109, 0, 4,
+			105, 115, 8, 2, 97, 110, 17, 67, 3, 65, 37, 88, 0, 105, 115, 8, 2, 195, 168, 0, 97, 110, 97, 103, 101, 109, 101, 110, 116, 3,
+			65, 115, 50, 108, 75, 65, 13, 50, 47, 0, 7, 6, 110, 0, 1, 110, 3, 0, 4, 3, 50, 0, 2, 103, 28, 19, 0, 2, 107, 28,
+			19, 0, 4, 97, 2, 116, 117, 114, 3, 50, 2, 115, 0, 97, 2, 118, 105, 103, 0, 97, 8, 2, 112, 111, 108, 17, 65, 0, 97, 8,
+			2, 118, 111, 108, 103, 21, 0, 97, 112, 111, 108, 101, 111, 110, 3, 50, 2, 115, 48, 122, 55, 13, 57, 113, 50, 0, 97, 8, 2, 114,
+			99, 3, 50, 2, 116, 0, 97, 114, 99, 105, 8, 2, 115, 3, 50, 2, 116, 34, 89, 108, 0, 105, 101, 117, 119, 115, 8, 2, 21, 14,
+			128, 132, 134, 3, 50, 6, 37, 58, 89, 0, 4, 97, 8, 2, 17, 67, 21, 21, 14, 128, 132, 130, 3, 50, 6, 115, 0, 97, 8, 2,
+			17, 67, 21, 24, 0, 97, 110, 111, 8, 2, 21, 14, 128, 132, 132, 3, 50, 6, 115, 50, 122, 0, 105, 115, 1, 21, 21, 2, 32, 14,
+			128, 128, 131, 3, 50, 108, 89, 0, 105, 115, 101, 110, 1, 21, 21, 2, 32, 14, 128, 128, 133, 3, 50, 108, 89, 13, 50, 0, 4, 97,
+			8, 2, 100, 101, 114, 3, 50, 115, 0, 97, 8, 2, 116, 105, 111, 110, 0, 97, 8, 2, 118, 114, 0, 97, 116, 117, 117, 114, 8, 3,
+			50, 115, 47, 6, 109, 34, 0, 4, 97, 8, 2, 17, 67, 11, 3, 50, 116, 0, 97, 8, 2, 99, 104, 116, 0, 111, 111, 114, 100, 8,
+			2, 21, 14, 128, 132, 133, 3, 50, 122, 34, 72, 0, 106, 3, 67, 0, 4, 2, 107, 3, 68, 0, 103, 0, 7, 6, 111, 0, 110, 8,
+			2, 21, 14, 128, 132, 130, 3, 2, 113, 50, 0, 118, 101, 114, 8, 2, 21, 14, 128, 132, 132, 3, 4, 122, 84, 13, 34, 0, 101, 2,
+			29, 32, 3, 6, 40, 0, 105, 114, 2, 32, 3, 6, 85, 115, 34, 0, 112, 8, 2, 21, 21, 14, 128, 132, 130, 3, 6, 113, 48, 0,
+			4, 111, 2, 17, 67, 32, 3, 6, 122, 0, 111, 2, 29, 0, 112, 8, 2, 101, 114, 97, 3, 6, 122, 48, 0, 112, 101, 110, 8, 2,
+			21, 14, 128, 132, 132, 3, 6, 122, 48, 13, 50, 0, 112, 101, 110, 105, 110, 103, 115, 8, 2, 14, 128, 132, 136, 3, 6, 122, 48, 13,
+			50, 108, 68, 89, 0, 111, 110, 3, 6, 122, 50, 0, 1, 17, 67, 21, 21, 2, 32, 3, 8, 122, 0, 98, 115, 99, 2, 117, 3, 39,
+			48, 89, 49, 0, 4, 101, 3, 40, 0, 117, 1, 99, 2, 112, 117, 0, 117, 1, 100, 2, 98, 108, 117, 0, 117, 1, 114, 116, 2, 118,
+			97, 105, 108, 0, 117, 2, 99, 104, 101, 32, 0, 117, 2, 114, 97, 103, 101, 0, 117, 1, 116, 2, 114, 3, 40, 12, 0, 101, 105, 3,
+			40, 57, 0, 117, 118, 101, 2, 114, 116, 117, 3, 40, 84, 111, 0, 117, 99, 104, 2, 101, 110, 32, 3, 40, 91, 0, 4, 105, 1, 99,
+			2, 102, 102, 117, 3, 85, 116, 0, 105, 1, 108, 112, 2, 116, 0, 4, 2, 17, 67, 25, 3, 113, 0, 2, 120, 0, 112, 8, 2, 116,
+			105, 111, 110, 3, 113, 48, 0, 111, 2, 114, 3, 114, 0, 4, 3, 122, 0, 1, 114, 112, 2, 103, 114, 97, 109, 0, 2, 114, 0, 111,
+			0, 111, 105, 3, 122, 57, 0, 111, 115, 116, 8, 2, 21, 14, 128, 132, 132, 3, 122, 89, 47, 0, 4, 117, 3, 125, 0, 117, 119, 0,
+			7, 6, 112, 0, 1, 112, 3, 0, 3, 48, 0, 97, 114, 97, 99, 104, 2, 117, 116, 3, 48, 4, 115, 34, 115, 91, 0, 111, 108, 105,
+			116, 105, 101, 8, 2, 21, 3, 48, 122, 55, 6, 37, 47, 89, 37, 0, 111, 108, 105, 116, 105, 101, 107, 8, 3, 48, 122, 55, 37, 47,
+			6, 37, 49, 0, 4, 104, 2, 25, 3, 83, 0, 104, 8, 0, 114, 111, 103, 114, 97, 109, 109, 97, 1, 21, 2, 32, 14, 128, 128, 135,
+			3, 122, 100, 34, 116, 65, 65, 35, 0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 1, 21, 2, 101, 101, 114, 0, 117, 1, 21, 2, 101,
+			114, 101, 110, 32, 0, 117, 101, 1, 21, 2, 32, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 114, 3, 16, 34, 0, 4, 3, 34, 0,
+			1, 17, 65, 2, 17, 65, 0, 1, 17, 67, 2, 17, 65, 0, 101, 118, 97, 110, 99, 104, 3, 34, 13, 84, 117, 50, 91, 0, 101, 99,
+			104, 101, 114, 99, 104, 3, 34, 13, 91, 111, 34, 91, 0, 111, 117, 116, 101, 3, 34, 40, 47, 13, 0, 7, 6, 115, 0, 2, 115, 3,
+			0, 101, 108, 1, 10, 2, 32, 3, 8, 89, 13, 55, 0, 101, 108, 101, 110, 1, 10, 2, 32, 3, 8, 89, 13, 55, 13, 50, 0, 4,
+			1, 17, 65, 2, 17, 65, 3, 88, 0, 2, 98, 0, 2, 100, 0, 4, 3, 89, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 8, 101,
+			114, 118, 2, 101, 0, 99, 0, 99, 104, 2, 32, 0, 99, 104, 2, 101, 32, 0, 116, 97, 110, 100, 97, 97, 114, 100, 8, 2, 21, 14,
+			128, 132, 137, 3, 89, 47, 6, 116, 50, 72, 115, 34, 47, 0, 116, 114, 97, 97, 116, 1, 21, 2, 32, 14, 128, 128, 134, 3, 89, 47,
+			34, 115, 47, 0, 4, 99, 2, 111, 111, 112, 3, 89, 49, 0, 99, 2, 111, 112, 105, 0, 106, 101, 1, 21, 2, 32, 3, 89, 57, 13,
+			0, 99, 104, 3, 89, 101, 0, 105, 1, 17, 65, 2, 111, 3, 90, 0, 4, 99, 104, 8, 2, 110, 3, 91, 0, 104, 2, 25, 0, 104,
+			8, 0, 105, 1, 21, 2, 111, 0, 106, 0, 115, 105, 1, 21, 2, 111, 0, 7, 6, 116, 0, 1, 116, 3, 0, 105, 101, 1, 115, 2,
+			32, 3, 8, 47, 37, 0, 105, 101, 2, 32, 3, 8, 47, 89, 37, 0, 4, 105, 101, 1, 99, 2, 32, 3, 8, 89, 37, 0, 105, 101,
+			1, 107, 2, 32, 0, 105, 101, 1, 112, 2, 32, 0, 4, 3, 47, 0, 1, 115, 2, 105, 12, 12, 0, 2, 104, 97, 97, 114, 0, 2,
+			104, 97, 118, 0, 100, 0, 104, 0, 104, 8, 0, 101, 97, 109, 8, 3, 47, 6, 37, 12, 65, 0, 111, 101, 8, 2, 21, 14, 128, 132,
+			131, 3, 47, 6, 40, 0, 114, 97, 110, 115, 8, 2, 21, 14, 128, 132, 133, 3, 47, 34, 4, 116, 50, 89, 0, 114, 97, 105, 110, 8,
+			3, 47, 34, 119, 50, 0, 101, 97, 109, 2, 32, 3, 47, 37, 12, 65, 0, 106, 3, 47, 38, 0, 111, 117, 99, 104, 2, 101, 3, 47,
+			40, 91, 0, 105, 101, 1, 97, 114, 99, 2, 32, 3, 47, 89, 6, 37, 0, 115, 106, 3, 76, 0, 4, 105, 1, 21, 2, 97, 3, 91,
+			0, 105, 1, 21, 2, 101, 117, 115, 0, 105, 1, 21, 2, 101, 117, 122, 0, 105, 1, 21, 2, 111, 110, 0, 105, 1, 21, 2, 195, 171,
+			0, 4, 105, 101, 101, 2, 108, 32, 3, 91, 6, 119, 0, 105, 195, 171, 2, 108, 101, 32, 0, 7, 6, 117, 0, 4, 2, 115, 105, 101,
+			32, 3, 6, 109, 0, 117, 2, 114, 32, 0, 116, 101, 1, 21, 2, 32, 3, 6, 109, 47, 0, 105, 116, 8, 2, 21, 14, 128, 132, 131,
+			3, 6, 124, 47, 0, 4, 3, 109, 0, 117, 0, 4, 2, 17, 67, 25, 3, 110, 0, 2, 120, 0, 105, 3, 124, 0, 4, 119, 3, 127,
+			0, 119, 2, 32, 0, 7, 6, 118, 0, 1, 115, 3, 83, 0, 3, 84, 0, 97, 110, 8, 2, 21, 14, 128, 132, 131, 3, 84, 2, 116,
+			50, 0, 111, 111, 114, 116, 8, 2, 21, 14, 128, 132, 133, 3, 84, 6, 114, 34, 47, 0, 101, 114, 8, 2, 21, 14, 128, 132, 131, 3,
+			84, 13, 34, 0, 101, 114, 103, 101, 8, 2, 108, 101, 3, 84, 13, 34, 100, 6, 119, 0, 101, 114, 8, 2, 115, 105, 101, 32, 3, 84,
+			111, 34, 0, 101, 114, 100, 101, 114, 8, 3, 84, 111, 34, 72, 13, 34, 0, 97, 110, 122, 101, 108, 102, 8, 2, 21, 14, 128, 132, 135,
+			3, 84, 116, 50, 88, 4, 111, 55, 83, 0, 97, 110, 103, 8, 3, 84, 116, 68, 0, 7, 6, 119, 0, 4, 2, 17, 67, 25, 3, 58,
+			0, 2, 29, 0, 114, 8, 3, 84, 34, 0, 3, 85, 0, 101, 103, 8, 2, 21, 14, 128, 132, 131, 3, 85, 6, 111, 100, 0, 97, 110,
+			8, 2, 21, 14, 128, 132, 131, 3, 85, 6, 116, 50, 0, 97, 110, 8, 2, 18, 66, 21, 14, 128, 132, 131, 3, 85, 6, 116, 68, 0,
+			101, 115, 116, 8, 2, 21, 14, 128, 132, 132, 3, 85, 111, 89, 47, 0, 4, 97, 110, 8, 2, 100, 101, 108, 3, 85, 116, 50, 0, 97,
+			110, 110, 8, 2, 101, 101, 114, 0, 97, 110, 111, 114, 100, 101, 108, 105, 106, 107, 8, 3, 85, 116, 50, 23, 6, 113, 34, 72, 13, 55,
+			13, 49, 0, 97, 110, 116, 114, 111, 117, 119, 105, 103, 8, 3, 85, 116, 50, 47, 34, 6, 125, 13, 100, 0, 97, 110, 118, 111, 101, 103,
+			108, 105, 106, 107, 8, 3, 85, 116, 50, 84, 6, 40, 101, 55, 13, 49, 0, 97, 110, 115, 116, 97, 108, 116, 105, 103, 8, 3, 85, 116,
+			50, 89, 47, 6, 116, 55, 47, 13, 100, 0, 97, 110, 115, 109, 97, 107, 101, 108, 105, 106, 107, 8, 3, 85, 116, 50, 89, 65, 6, 115,
+			49, 13, 55, 13, 49, 0, 97, 110, 104, 111, 112, 105, 103, 8, 3, 85, 116, 50, 107, 6, 122, 48, 13, 100, 0, 97, 110, 8, 2, 107,
+			101, 108, 3, 85, 116, 68, 0, 4, 101, 103, 8, 2, 101, 32, 3, 85, 119, 100, 0, 101, 103, 8, 2, 101, 110, 0, 7, 6, 120, 0,
+			3, 49, 89, 0, 7, 6, 121, 0, 3, 37, 0, 8, 2, 17, 65, 3, 57, 0, 4, 2, 17, 67, 25, 3, 108, 0, 2, 120, 0, 7,
+			6, 122, 0, 4, 1, 115, 3, 0, 2, 122, 3, 0, 3, 88, 0, 111, 103, 101, 8, 2, 21, 14, 128, 132, 132, 3, 88, 4, 39, 81,
+			13, 0, 101, 108, 101, 2, 32, 14, 128, 128, 132, 3, 88, 119, 55, 13, 0, 117, 105, 100, 8, 2, 21, 14, 128, 132, 132, 3, 88, 124,
+			47, 0, 101, 108, 102, 1, 21, 2, 32, 14, 128, 128, 132, 3, 89, 6, 111, 55, 83, 0, 7, 6, 0, 195, 168, 114, 101, 2, 32, 3,
+			6, 111, 34, 13, 0, 195, 169, 2, 32, 3, 6, 119, 0, 195, 171, 110, 1, 101, 105, 114, 101, 2, 32, 14, 128, 128, 130, 3, 13, 50,
+			0, 44, 2, 15, 3, 49, 6, 113, 65, 115, 0, 45, 8, 32, 2, 32, 15, 3, 65, 6, 108, 50, 0, 36, 3, 72, 6, 113, 55, 116,
+			34, 0, 39, 115, 1, 21, 2, 32, 14, 128, 128, 130, 3, 89, 0, 4, 195, 169, 3, 119, 0, 195, 169, 195, 169, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts45 = FileInMemory_createWithData (21598, reinterpret_cast<const char *> (&espeakdata_dicts45_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/nl_dict", 
 			U"nl");
-		my addItem_move (espeakdata_dicts48.move());
+		Collection_addItem (me.peek(), espeakdata_dicts45.transfer());
 
-		static unsigned char espeakdata_dicts49_data[4179] = {
-			0, 4, 0, 0, 227, 12, 0, 0, 0, 0, 0, 7, 195, 52, 83, 128, 72, 8, 0, 0, 5, 65, 4, 120, 0, 0, 0, 0, 0, 6,
-			65, 8, 71, 117, 0, 0, 0, 8, 197, 16, 84, 147, 60, 208, 8, 0, 0, 6, 65, 12, 89, 117, 0, 0, 0, 0, 0, 6, 65, 16,
-			72, 117, 0, 0, 0, 6, 195, 76, 147, 128, 76, 0, 12, 4, 95, 100, 112, 116, 49, 121, 65, 65, 119, 0, 0, 7, 196, 8, 194, 84,
-			80, 76, 0, 0, 0, 0, 6, 65, 24, 115, 83, 0, 0, 11, 67, 56, 241, 78, 50, 123, 12, 13, 50, 0, 0, 0, 0, 6, 65, 28,
-			81, 117, 0, 0, 0, 6, 195, 44, 19, 128, 76, 0, 0, 6, 65, 32, 107, 122, 0, 0, 0, 0, 15, 1, 35, 50, 125, 65, 65, 13,
-			51, 47, 115, 68, 50, 0, 27, 0, 6, 65, 36, 110, 0, 49, 5, 193, 36, 72, 28, 0, 14, 1, 37, 48, 51, 6, 124, 89, 6, 115,
-			50, 47, 0, 27, 0, 7, 1, 38, 121, 12, 81, 0, 0, 0, 6, 65, 40, 57, 117, 0, 0, 0, 11, 1, 42, 89, 95, 35, 51, 50,
-			108, 0, 27, 0, 9, 1, 43, 48, 55, 125, 89, 0, 27, 0, 6, 65, 44, 49, 122, 0, 0, 0, 15, 69, 77, 148, 212, 20, 208, 89,
-			111, 89, 47, 6, 117, 65, 0, 0, 14, 1, 47, 89, 49, 51, 121, 89, 47, 51, 13, 49, 0, 27, 0, 13, 4, 95, 100, 105, 97, 47,
-			51, 6, 117, 65, 119, 0, 6, 65, 48, 115, 55, 0, 0, 0, 0, 0, 6, 65, 52, 115, 65, 0, 0, 0, 0, 0, 6, 65, 56, 115,
-			50, 0, 0, 0, 0, 0, 0, 10, 1, 61, 35, 51, 55, 110, 49, 0, 27, 0, 0, 0, 13, 1, 64, 49, 51, 113, 55, 55, 119, 55,
-			83, 119, 0, 6, 65, 64, 48, 117, 0, 0, 0, 0, 0, 6, 65, 68, 49, 126, 0, 0, 0, 0, 6, 195, 76, 176, 76, 76, 0, 6,
-			65, 72, 116, 51, 0, 0, 0, 6, 195, 8, 193, 64, 76, 0, 0, 6, 65, 76, 115, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 117,
-			0, 0, 0, 6, 195, 52, 81, 192, 76, 0, 0, 0, 6, 195, 89, 228, 133, 76, 0, 0, 0, 6, 65, 88, 84, 117, 0, 0, 0, 0,
-			0, 22, 1, 92, 121, 65, 84, 115, 50, 72, 47, 15, 89, 49, 51, 121, 89, 47, 51, 13, 49, 0, 27, 14, 65, 92, 72, 6, 121, 71,
-			12, 115, 55, 4, 84, 117, 0, 0, 0, 15, 1, 94, 89, 109, 51, 49, 125, 65, 83, 55, 115, 49, 89, 0, 0, 0, 17, 4, 95, 49,
-			77, 49, 6, 115, 47, 15, 47, 6, 126, 89, 13, 50, 0, 7, 65, 96, 115, 49, 89, 0, 0, 21, 4, 95, 49, 77, 50, 6, 117, 50,
-			15, 65, 6, 109, 55, 55, 110, 38, 4, 124, 50, 0, 0, 6, 65, 120, 122, 0, 49, 5, 193, 120, 72, 28, 0, 0, 0, 0, 0, 0,
-			7, 65, 104, 89, 115, 47, 0, 0, 6, 194, 5, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95,
-			48, 67, 111, 107, 6, 125, 50, 72, 51, 13, 72, 108, 0, 0, 0, 0, 0, 7, 195, 32, 244, 192, 72, 8, 0, 0, 0, 0, 0, 13,
-			4, 95, 116, 108, 100, 47, 6, 109, 55, 72, 108, 0, 0, 0, 0, 0, 0, 0, 7, 196, 45, 83, 142, 20, 76, 0, 0, 0, 0, 6,
-			194, 5, 96, 72, 28, 7, 196, 16, 83, 142, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
-			196, 21, 69, 5, 72, 72, 8, 0, 0, 0, 0, 7, 195, 20, 227, 128, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 111, 114, 100, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 21, 32, 4, 116, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66,
-			16, 80, 72, 110, 0, 76, 0, 0, 0, 0, 0, 9, 67, 16, 85, 0, 72, 117, 0, 76, 0, 0, 0, 5, 194, 17, 80, 76, 0, 6,
-			195, 32, 19, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 57, 111, 50, 6, 109, 47, 12, 13, 50,
-			72, 108, 0, 0, 0, 0, 8, 66, 21, 64, 115, 47, 0, 72, 0, 8, 197, 76, 181, 76, 48, 80, 76, 0, 0, 0, 0, 4, 193, 136,
-			43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 84, 225, 5, 72, 28, 0, 0, 0, 0, 15, 4, 95, 49, 56, 111,
-			6, 119, 47, 12, 13, 50, 72, 108, 0, 0, 0, 0, 10, 67, 4, 225, 0, 108, 50, 72, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 89, 228, 148, 76, 0, 0, 0, 0, 0, 0, 6, 195, 76, 147, 133, 76, 0, 0, 0, 5, 194, 32, 16, 76, 5, 194, 16, 144,
-			76, 0, 0, 0, 0, 8, 196, 48, 19, 135, 76, 72, 8, 0, 0, 0, 0, 0, 6, 195, 16, 147, 128, 76, 6, 195, 32, 19, 128, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 20, 128, 72, 0, 0, 15, 4, 95, 49, 49, 111, 6, 115, 55, 55, 115, 84, 47, 108,
-			0, 0, 0, 0, 0, 6, 195, 89, 244, 148, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 144, 72, 0, 0, 6, 195, 89,
-			244, 133, 76, 0, 17, 4, 95, 49, 51, 111, 47, 51, 6, 115, 47, 12, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 197, 52, 83, 12, 60, 208, 8, 0, 0, 0, 0, 16, 4, 95, 49, 53, 111, 83, 6, 115, 65, 47, 13, 50, 72, 108,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 49, 50, 111, 47, 6, 121, 55, 84, 47, 108, 0, 0, 0, 6, 195, 16, 147, 133,
-			76, 6, 195, 52, 147, 133, 76, 10, 67, 40, 81, 192, 57, 116, 109, 0, 76, 0, 0, 7, 196, 60, 246, 13, 48, 13, 0, 0, 0, 0,
-			16, 4, 95, 49, 55, 111, 89, 6, 111, 47, 12, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 49, 52, 111,
-			83, 57, 6, 123, 51, 47, 13, 65, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95,
-			49, 54, 111, 89, 6, 115, 49, 89, 47, 13, 50, 72, 108, 0, 0, 0, 6, 195, 16, 84, 133, 76, 6, 195, 16, 84, 133, 76, 0, 0,
-			7, 195, 33, 98, 83, 72, 8, 0, 0, 0, 0, 0, 0, 8, 196, 20, 195, 5, 72, 72, 8, 0, 0, 0, 16, 5, 95, 48, 77, 49,
-			111, 47, 6, 126, 89, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 12, 19, 131, 20, 192, 21, 0, 47, 5, 194,
-			20, 224, 72, 0, 13, 3, 95, 51, 88, 47, 51, 6, 115, 47, 12, 110, 0, 0, 7, 196, 32, 83, 142, 20, 76, 13, 3, 95, 48, 67,
-			107, 6, 125, 50, 72, 51, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49, 67, 6, 115, 47, 15, 107, 6, 125, 50, 72,
-			51, 108, 0, 0, 0, 0, 6, 195, 8, 20, 133, 72, 0, 0, 0, 13, 3, 95, 49, 57, 50, 6, 109, 47, 12, 13, 50, 0, 0, 12,
-			3, 95, 49, 56, 6, 119, 47, 12, 13, 50, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 26, 148, 128, 8, 11, 3, 95, 49, 49, 6,
-			115, 55, 84, 108, 0, 0, 9, 3, 95, 49, 48, 47, 6, 110, 0, 0, 7, 196, 24, 244, 132, 36, 8, 14, 3, 95, 49, 51, 47, 51,
-			6, 115, 47, 12, 13, 50, 0, 0, 11, 3, 95, 49, 50, 47, 6, 121, 55, 84, 0, 0, 13, 3, 95, 49, 53, 83, 6, 115, 65, 47,
-			13, 50, 0, 0, 14, 3, 95, 49, 52, 83, 57, 6, 123, 51, 47, 13, 50, 0, 0, 13, 3, 95, 49, 55, 89, 6, 111, 47, 12, 13,
-			50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 115, 49, 89, 47, 13, 50, 0, 0, 0, 7, 196, 36, 227, 133, 56, 8, 6, 195, 61, 52,
-			192, 76, 12, 3, 95, 55, 88, 89, 6, 111, 47, 12, 110, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 111, 83, 6, 113, 51, 89, 47,
-			108, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 97, 99, 117, 120, 6, 49, 125, 47, 12, 0, 0, 12, 3, 95, 50, 111, 6, 119,
-			50, 72, 51, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 111, 47, 51, 6, 115, 72, 57, 108, 0, 0, 0, 6, 195,
-			10, 148, 128, 76, 0, 10, 3, 95, 50, 88, 95, 6, 126, 108, 0, 0, 10, 69, 72, 80, 68, 21, 32, 21, 0, 47, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 196, 16, 148, 211, 20, 76, 0, 0, 0, 0, 12, 3, 95, 53, 111, 83, 6, 115, 65, 47, 108, 0, 0, 0, 0,
-			12, 3, 95, 52, 88, 83, 6, 114, 51, 47, 110, 0, 0, 0, 6, 195, 32, 19, 147, 76, 0, 0, 10, 67, 56, 241, 64, 50, 123, 12,
-			108, 0, 0, 12, 3, 95, 54, 111, 91, 6, 115, 47, 12, 108, 0, 0, 0, 0, 12, 3, 95, 53, 88, 83, 6, 115, 65, 47, 110, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 89, 6, 115, 49, 89, 47, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 56, 88, 6, 121, 47, 12, 110, 0, 0, 0, 0, 6, 195, 85, 65, 78, 28, 0, 0, 0,
-			7, 195, 52, 81, 0, 72, 8, 0, 0, 12, 3, 95, 57, 88, 50, 6, 109, 47, 12, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 12, 3, 95, 52, 111, 83, 57, 6, 118, 51, 108, 0, 0, 0, 0, 6, 194, 36, 224, 72, 28, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 52, 83, 147, 8, 7, 195, 52, 83, 147, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 81, 0,
-			8, 0, 0, 0, 0, 0, 0, 0, 4, 193, 172, 43, 19, 4, 95, 99, 105, 114, 89, 6, 109, 51, 49, 125, 65, 83, 55, 115, 49, 89,
-			0, 0, 6, 195, 52, 147, 128, 76, 0, 0, 0, 14, 3, 95, 56, 111, 6, 121, 47, 12, 13, 50, 72, 108, 0, 19, 4, 95, 48, 77,
-			50, 65, 6, 109, 55, 55, 110, 38, 4, 124, 50, 13, 51, 0, 0, 0, 0, 13, 4, 95, 48, 77, 49, 47, 6, 126, 89, 13, 50, 0,
-			0, 0, 0, 0, 0, 6, 195, 61, 97, 82, 28, 0, 12, 67, 24, 244, 128, 83, 121, 34, 12, 0, 72, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 52, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 50, 88, 111, 95, 6, 126, 13, 50,
-			72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 99, 101, 100,
-			89, 6, 117, 72, 109, 55, 55, 108, 0, 0, 0, 6, 194, 60, 112, 72, 8, 0, 0, 6, 195, 32, 21, 20, 72, 6, 195, 16, 149, 20,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 116, 222, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 76, 52, 133, 20, 224, 21, 0, 47, 7, 3, 95,
-			195, 165, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196,
-			16, 84, 133, 76, 76, 0, 0, 0, 7, 195, 52, 245, 0, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			14, 4, 95, 103, 114, 118, 81, 51, 6, 120, 84, 110, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 60, 208,
-			72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 44, 243, 64, 49, 121, 65, 0, 7, 195, 76, 243, 64, 72, 8, 0,
-			0, 0, 0, 6, 195, 16, 83, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 77, 224, 72, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 195, 36, 178, 197, 72, 0, 5, 194, 76, 144, 76, 0, 0, 7, 195, 76, 19, 84, 72, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 69, 60, 97, 137, 12, 80, 121, 83, 83, 110, 89, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 195, 80, 147, 0, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 76, 181, 76, 48, 85, 0, 76,
-			13, 2, 95, 34, 119, 50, 83, 114, 51, 91, 13, 55, 0, 0, 15, 2, 95, 33, 126, 47, 51, 124, 48, 89, 47, 115, 68, 50, 0, 0,
-			0, 14, 2, 95, 39, 119, 48, 123, 89, 47, 51, 6, 124, 83, 0, 0, 0, 0, 11, 2, 95, 36, 72, 121, 55, 55, 120, 51, 0, 0,
-			6, 195, 16, 83, 128, 76, 0, 11, 2, 95, 42, 89, 95, 35, 51, 50, 108, 0, 0, 21, 2, 95, 41, 48, 35, 51, 35, 68, 47, 6,
-			117, 89, 15, 91, 55, 6, 125, 47, 12, 0, 0, 24, 2, 95, 40, 48, 35, 51, 35, 68, 47, 6, 117, 89, 15, 71, 13, 57, 6, 111,
-			50, 50, 13, 51, 0, 0, 9, 67, 32, 84, 128, 107, 116, 51, 0, 0, 12, 2, 95, 46, 48, 125, 68, 49, 47, 126, 65, 0, 0, 10,
-			2, 95, 45, 89, 47, 51, 117, 49, 0, 0, 10, 2, 95, 44, 49, 121, 65, 65, 119, 0, 0, 9, 67, 16, 84, 128, 72, 116, 51, 0,
-			6, 195, 88, 20, 128, 72, 9, 2, 95, 51, 47, 51, 6, 117, 0, 0, 8, 2, 95, 50, 47, 6, 124, 0, 0, 8, 2, 95, 49, 6,
-			117, 50, 0, 0, 9, 2, 95, 48, 50, 6, 125, 55, 0, 0, 8, 2, 95, 55, 91, 6, 126, 0, 0, 10, 2, 95, 54, 89, 6, 115,
-			49, 89, 0, 0, 9, 2, 95, 53, 83, 6, 115, 65, 0, 0, 10, 2, 95, 52, 83, 6, 110, 51, 115, 0, 0, 14, 2, 95, 59, 89,
-			117, 65, 110, 49, 124, 55, 121, 50, 0, 0, 10, 2, 95, 58, 49, 124, 55, 121, 50, 0, 0, 8, 2, 95, 57, 50, 6, 110, 0, 0,
-			10, 2, 95, 56, 6, 121, 47, 12, 108, 0, 0, 18, 2, 95, 63, 89, 48, 113, 51, 91, 65, 121, 55, 89, 47, 115, 68, 50, 0, 0,
-			13, 2, 95, 62, 89, 47, 113, 51, 13, 15, 115, 50, 0, 0, 10, 2, 95, 61, 35, 51, 55, 110, 49, 0, 0, 14, 2, 95, 60, 65,
-			109, 50, 72, 51, 108, 15, 115, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 11, 70, 12, 243, 148, 36, 229, 69, 21, 0, 47, 6, 195, 88, 147, 0, 76, 6, 195, 16, 81, 192, 76, 28, 2, 95,
-			91, 84, 6, 115, 50, 89, 47, 51, 108, 15, 107, 6, 120, 49, 117, 48, 35, 51, 35, 68, 47, 6, 117, 89, 0, 0, 0, 0, 5, 194,
-			88, 144, 76, 0, 6, 195, 8, 18, 192, 8, 8, 197, 32, 83, 142, 21, 48, 76, 15, 2, 95, 95, 125, 50, 72, 35, 51, 91, 47, 51,
-			13, 49, 0, 0, 6, 195, 76, 149, 20, 76, 6, 195, 52, 149, 20, 76, 0, 25, 2, 95, 93, 107, 6, 131, 51, 108, 15, 107, 6, 120,
-			49, 117, 48, 35, 51, 35, 68, 47, 6, 117, 89, 0, 0, 22, 2, 95, 92, 121, 65, 84, 115, 50, 72, 47, 15, 89, 49, 51, 121, 89,
-			47, 51, 13, 49, 0, 0, 0, 0, 0, 23, 2, 95, 96, 6, 121, 65, 84, 115, 50, 72, 47, 15, 119, 48, 123, 89, 47, 51, 6, 124,
-			83, 0, 0, 6, 195, 33, 83, 128, 76, 0, 0, 0, 0, 0, 0, 6, 2, 95, 105, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 24, 148, 133, 24, 246, 0, 21, 0, 47, 0, 0, 10, 5, 95, 48,
-			97, 110, 100, 124, 81, 0, 0, 0, 0, 0, 0, 0, 7, 196, 24, 244, 129, 56, 8, 10, 4, 95, 35, 48, 57, 47, 120, 71, 0, 0,
-			0, 0, 6, 195, 8, 194, 82, 76, 0, 0, 0, 0, 0, 7, 195, 25, 32, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95,
-			35, 51, 50, 65, 115, 55, 55, 121, 65, 51, 124, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 89, 228, 128, 76, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 71, 52, 17, 206, 36, 98, 69, 72, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 67, 48, 241, 64, 55, 124, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 83,
-			142, 21, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 65, 224, 72, 28, 0, 0, 7, 196, 16, 85, 20, 20, 76, 0, 0, 0,
-			0, 7, 196, 32, 17, 4, 20, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			195, 164, 0, 2, 17, 67, 17, 67, 3, 115, 0, 3, 116, 0, 7, 6, 195, 165, 0, 2, 17, 67, 17, 67, 3, 121, 0, 3, 122, 0,
-			101, 3, 122, 108, 0, 7, 6, 195, 166, 0, 2, 17, 67, 17, 67, 3, 35, 0, 3, 116, 0, 2, 114, 3, 118, 0, 7, 6, 195, 182,
-			0, 2, 17, 67, 17, 67, 3, 113, 0, 3, 114, 0, 7, 6, 195, 184, 0, 2, 17, 67, 17, 67, 3, 113, 0, 3, 114, 0, 121, 3,
-			131, 0, 7, 6, 97, 0, 4, 2, 17, 67, 3, 35, 0, 101, 2, 17, 67, 17, 67, 0, 101, 3, 118, 0, 4, 2, 17, 67, 17, 67,
-			3, 119, 0, 2, 32, 0, 3, 120, 0, 97, 2, 17, 67, 17, 67, 3, 121, 0, 97, 3, 122, 0, 105, 3, 127, 0, 117, 3, 132, 0,
-			7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12, 0, 101, 8, 2, 21, 3, 71, 13, 0, 7, 6, 99, 0, 3, 49, 0, 99, 3, 49,
-			12, 0, 4, 2, 101, 105, 3, 89, 0, 2, 105, 0, 2, 121, 0, 2, 195, 184, 121, 0, 8, 2, 101, 0, 104, 3, 91, 0, 7, 6,
-			100, 0, 1, 114, 2, 32, 3, 0, 3, 72, 0, 100, 3, 72, 12, 0, 101, 116, 1, 10, 2, 32, 3, 72, 108, 0, 7, 6, 101, 0,
-			1, 10, 2, 17, 67, 32, 3, 13, 0, 116, 1, 10, 2, 32, 3, 13, 47, 0, 110, 1, 10, 2, 32, 3, 13, 50, 0, 110, 115, 1,
-			10, 2, 32, 3, 13, 50, 89, 0, 115, 1, 10, 2, 32, 3, 13, 89, 0, 2, 114, 17, 67, 3, 35, 0, 1, 10, 2, 32, 3, 108,
-			0, 4, 1, 29, 2, 109, 32, 3, 115, 0, 2, 17, 67, 17, 67, 0, 110, 101, 1, 10, 2, 32, 3, 115, 50, 108, 0, 3, 117, 0,
-			105, 3, 128, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 101, 105, 3, 57, 0, 2, 105, 0, 2, 121, 0, 2, 195,
-			184, 121, 0, 106, 0, 2, 110, 3, 68, 0, 3, 81, 0, 103, 3, 81, 12, 0, 7, 6, 104, 0, 106, 3, 57, 0, 118, 3, 84, 0,
-			3, 107, 0, 7, 6, 105, 0, 4, 2, 17, 67, 17, 67, 3, 109, 0, 103, 1, 10, 2, 32, 0, 3, 110, 0, 7, 6, 106, 0, 3,
-			57, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3, 49, 12, 0, 4, 2, 101, 105, 3, 101, 0, 2, 105, 0, 2, 121, 0, 2, 195, 184,
-			121, 0, 106, 0, 7, 6, 108, 0, 4, 3, 55, 0, 108, 2, 25, 0, 100, 3, 55, 55, 0, 106, 3, 57, 0, 7, 6, 109, 0, 4,
-			3, 65, 0, 109, 2, 25, 0, 7, 6, 110, 0, 4, 3, 50, 0, 110, 2, 25, 0, 100, 3, 50, 50, 0, 4, 2, 107, 3, 68, 0,
-			103, 0, 7, 6, 111, 0, 2, 17, 67, 17, 67, 3, 121, 0, 101, 3, 121, 108, 0, 4, 2, 110, 100, 3, 123, 0, 2, 114, 116, 0,
-			2, 115, 116, 0, 4, 3, 124, 0, 1, 98, 2, 114, 100, 0, 101, 1, 98, 21, 2, 32, 0, 105, 3, 129, 0, 7, 6, 112, 0, 3,
-			48, 0, 112, 3, 48, 12, 0, 7, 6, 113, 0, 3, 49, 0, 113, 3, 49, 12, 0, 117, 3, 49, 58, 0, 7, 6, 114, 0, 3, 51,
-			0, 115, 2, 32, 3, 91, 0, 7, 6, 115, 0, 4, 3, 89, 0, 1, 17, 65, 2, 108, 17, 65, 0, 115, 2, 32, 0, 115, 3, 89,
-			89, 0, 4, 1, 114, 3, 91, 0, 2, 108, 0, 99, 104, 0, 106, 0, 107, 2, 101, 105, 0, 107, 2, 105, 0, 107, 2, 121, 0, 107,
-			2, 195, 184, 121, 0, 107, 106, 0, 7, 6, 116, 0, 3, 47, 0, 116, 3, 47, 12, 0, 105, 2, 111, 110, 3, 91, 0, 106, 3, 95,
-			0, 7, 6, 117, 0, 2, 17, 67, 17, 67, 3, 125, 0, 3, 126, 0, 105, 3, 130, 0, 7, 6, 118, 0, 4, 3, 84, 0, 118, 2,
-			32, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6, 120, 0, 2, 120, 3, 0, 3, 49, 89, 0, 8, 3, 89, 0, 7, 6, 121, 0, 2,
-			17, 67, 17, 67, 3, 111, 0, 3, 112, 0, 7, 6, 122, 0, 4, 122, 3, 88, 0, 122, 2, 32, 0, 3, 89, 0, 7, 6, 0, 4,
-			33, 1, 19, 3, 0, 46, 1, 46, 3, 0, 195, 169, 3, 6, 117, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 6, 126, 47, 51, 124,
-			48, 89, 47, 115, 68, 50, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 46,
-			3, 48, 125, 68, 49, 47, 126, 65, 0, 45, 8, 32, 2, 32, 15, 3, 65, 110, 50, 126, 89, 0, 36, 3, 72, 121, 55, 55, 120, 51,
-			0, 195, 188, 3, 112, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts49 = FileInMemory_createWithData (4178, reinterpret_cast<const char *> (&espeakdata_dicts49_data), 
-			U"espeak-1.48.04-source/espeak-data/no_dict", 
+		static unsigned char espeakdata_dicts46_data[4198] = {
+			0, 4, 0, 0, 246, 12, 0, 0, 0, 0, 0, 7, 195, 52, 83, 128, 72, 8, 0, 0, 5, 65, 4, 120, 0, 0, 0, 0, 0, 6,
+			65, 8, 71, 117, 0, 0, 0, 0, 0, 6, 65, 12, 89, 117, 0, 0, 0, 0, 0, 6, 65, 16, 72, 117, 0, 0, 0, 6, 195, 76,
+			147, 128, 76, 0, 0, 0, 0, 16, 4, 95, 48, 67, 15, 107, 6, 125, 50, 72, 51, 13, 72, 108, 0, 0, 6, 195, 76, 147, 133, 76,
+			0, 6, 65, 24, 115, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 117, 0, 0, 0, 6, 195, 44, 19, 128, 76, 0, 0, 6, 65, 32,
+			107, 122, 0, 0, 0, 0, 15, 1, 35, 50, 125, 65, 65, 13, 51, 47, 115, 68, 50, 0, 27, 0, 6, 65, 36, 110, 0, 14, 5, 193,
+			36, 72, 28, 0, 14, 1, 37, 48, 51, 6, 124, 89, 6, 115, 50, 47, 0, 27, 0, 7, 1, 38, 121, 12, 81, 0, 0, 0, 6, 65,
+			40, 57, 117, 0, 0, 0, 11, 1, 42, 89, 95, 35, 51, 50, 108, 0, 27, 0, 9, 1, 43, 48, 55, 125, 89, 0, 27, 0, 6, 65,
+			44, 49, 122, 0, 0, 0, 0, 14, 1, 47, 89, 49, 51, 121, 89, 47, 51, 13, 49, 0, 27, 0, 6, 65, 48, 115, 55, 0, 0, 0,
+			0, 0, 6, 65, 52, 115, 65, 0, 0, 6, 195, 52, 83, 147, 8, 7, 195, 52, 83, 147, 72, 8, 0, 0, 0, 10, 5, 95, 48, 1,
+			14, 4, 124, 81, 0, 6, 65, 56, 115, 50, 0, 0, 0, 0, 0, 0, 10, 1, 61, 35, 51, 55, 110, 49, 0, 27, 0, 0, 0, 13,
+			1, 64, 49, 51, 113, 55, 55, 119, 55, 83, 119, 0, 6, 65, 64, 48, 117, 0, 0, 0, 0, 0, 6, 65, 68, 49, 126, 0, 0, 0,
+			0, 0, 6, 65, 72, 116, 51, 0, 0, 0, 6, 195, 8, 193, 64, 76, 0, 0, 6, 65, 76, 115, 89, 0, 0, 0, 0, 0, 6, 65,
+			80, 47, 117, 0, 0, 0, 11, 70, 12, 243, 148, 36, 229, 69, 21, 0, 10, 6, 195, 52, 81, 192, 76, 0, 0, 0, 0, 0, 0, 6,
+			65, 88, 84, 117, 0, 0, 0, 0, 0, 22, 1, 92, 121, 65, 84, 115, 50, 72, 47, 15, 89, 49, 51, 121, 89, 47, 51, 13, 49, 0,
+			27, 14, 65, 92, 72, 6, 121, 71, 12, 115, 55, 4, 84, 117, 0, 0, 0, 15, 1, 94, 89, 109, 51, 49, 125, 65, 83, 55, 115, 49,
+			89, 0, 0, 0, 17, 4, 95, 49, 77, 49, 6, 115, 47, 15, 47, 6, 126, 89, 13, 50, 0, 7, 65, 96, 115, 49, 89, 0, 0, 21,
+			4, 95, 49, 77, 50, 6, 117, 50, 15, 65, 6, 109, 55, 55, 110, 38, 4, 124, 50, 0, 0, 0, 0, 6, 195, 8, 194, 82, 76, 0,
+			0, 0, 0, 7, 65, 104, 89, 115, 47, 0, 0, 6, 194, 5, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 83, 142, 21,
+			64, 76, 0, 0, 0, 7, 196, 32, 17, 4, 20, 72, 0, 0, 0, 0, 0, 0, 0, 7, 195, 32, 244, 192, 72, 8, 0, 0, 15, 69,
+			77, 148, 212, 20, 208, 89, 111, 89, 47, 6, 117, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 57, 15, 50,
+			6, 109, 47, 12, 13, 50, 72, 108, 0, 0, 0, 0, 6, 194, 5, 96, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196,
+			84, 225, 5, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 20, 227, 128, 72, 8, 15, 4, 95, 49, 56, 15, 6,
+			119, 47, 12, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 32, 83, 142, 20, 76, 0, 0, 0, 0, 0, 10,
+			69, 72, 80, 68, 21, 32, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32,
+			21, 20, 72, 6, 195, 16, 149, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 49, 15, 6, 115, 55, 55, 115, 84, 47,
+			108, 0, 0, 0, 0, 8, 66, 21, 32, 4, 116, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 16, 80, 72, 110, 0, 76, 0,
+			0, 0, 0, 0, 9, 67, 16, 85, 0, 72, 117, 0, 76, 17, 4, 95, 49, 51, 15, 47, 51, 6, 115, 47, 12, 13, 50, 72, 108, 0,
+			0, 12, 4, 95, 4, 16, 20, 49, 121, 65, 65, 119, 0, 0, 0, 5, 194, 17, 80, 76, 0, 6, 195, 32, 19, 64, 76, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 4, 95, 20, 12, 4, 47, 6, 109, 55, 72, 108, 0, 0, 0, 0, 16, 4, 95, 49, 53, 15, 83, 6,
+			115, 65, 47, 13, 50, 72, 108, 0, 0, 0, 0, 8, 66, 21, 64, 115, 47, 0, 72, 0, 0, 0, 0, 0, 14, 4, 95, 49, 50, 15,
+			47, 6, 121, 55, 84, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 49, 55, 15, 89, 6, 111, 47, 12, 13, 50, 72,
+			108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 176, 76, 76, 17, 4, 95, 49, 52, 15, 83, 57, 6, 123, 51, 47, 13, 65,
+			72, 108, 0, 0, 0, 0, 10, 67, 4, 225, 0, 108, 50, 72, 0, 9, 0, 0, 0, 0, 0, 0, 0, 7, 196, 16, 83, 142, 20, 76,
+			0, 0, 0, 0, 0, 17, 4, 95, 49, 54, 15, 89, 6, 115, 49, 89, 47, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 5, 194, 32,
+			16, 76, 5, 194, 16, 144, 76, 0, 0, 0, 0, 0, 0, 8, 196, 48, 19, 135, 76, 72, 8, 0, 0, 16, 5, 95, 48, 77, 49, 15,
+			47, 6, 126, 89, 13, 50, 72, 108, 0, 0, 6, 195, 16, 147, 128, 76, 6, 195, 32, 19, 128, 76, 0, 0, 0, 6, 195, 16, 147, 133,
+			76, 0, 0, 0, 0, 0, 6, 195, 32, 20, 128, 72, 0, 8, 196, 20, 195, 5, 72, 72, 8, 0, 10, 69, 12, 19, 131, 20, 192, 21,
+			0, 10, 0, 0, 0, 7, 196, 24, 244, 132, 36, 8, 7, 196, 36, 227, 133, 56, 8, 0, 0, 0, 0, 6, 195, 32, 19, 147, 76, 0,
+			0, 0, 0, 0, 0, 5, 194, 20, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 196, 16, 84, 133, 76, 76, 13, 3, 95, 49, 15, 83, 6, 113, 51, 89, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			67, 40, 81, 192, 57, 116, 109, 0, 76, 0, 12, 3, 95, 50, 15, 6, 119, 50, 72, 51, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			13, 3, 95, 51, 15, 47, 51, 6, 115, 72, 57, 108, 0, 11, 4, 95, 15, 18, 4, 13, 50, 72, 108, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 197, 32, 83, 142, 21, 48, 76, 0, 0, 0, 7, 196, 24, 244, 129, 56, 8, 0, 0, 0, 0, 12, 3, 95, 53, 15,
+			83, 6, 115, 65, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 54, 15, 91, 6, 115, 47, 12, 108, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 224, 72, 0, 13, 3, 95, 51, 88, 47, 51, 6, 115,
+			47, 12, 110, 0, 0, 13, 3, 95, 48, 67, 107, 6, 125, 50, 72, 51, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49,
+			67, 6, 115, 47, 15, 107, 6, 125, 50, 72, 51, 108, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 57, 50, 6, 109, 47, 12, 13,
+			50, 0, 0, 12, 3, 95, 49, 56, 6, 119, 47, 12, 13, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 115, 55,
+			84, 108, 0, 0, 9, 3, 95, 49, 48, 47, 6, 110, 0, 0, 14, 3, 95, 49, 51, 47, 51, 6, 115, 47, 12, 13, 50, 0, 0, 11,
+			3, 95, 49, 50, 47, 6, 121, 55, 84, 0, 0, 13, 3, 95, 49, 53, 83, 6, 115, 65, 47, 13, 50, 0, 0, 14, 3, 95, 49, 52,
+			83, 57, 6, 123, 51, 47, 13, 50, 0, 0, 12, 3, 95, 52, 15, 83, 57, 6, 118, 51, 108, 0, 13, 3, 95, 49, 55, 89, 6, 111,
+			47, 12, 13, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 115, 49, 89, 47, 13, 50, 0, 0, 0, 6, 195, 61, 52, 192, 76, 12, 3,
+			95, 55, 88, 89, 6, 111, 47, 12, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 10, 3, 95, 50, 88, 95, 6, 126, 108, 0, 0, 0, 0, 0, 0, 14, 3, 95, 56, 15, 6, 121, 47, 12, 13, 50,
+			72, 108, 0, 0, 0, 0, 0, 0, 10, 69, 76, 52, 133, 20, 224, 21, 0, 10, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 88, 83,
+			6, 114, 51, 47, 110, 0, 0, 0, 0, 0, 10, 67, 56, 241, 64, 50, 123, 12, 108, 0, 0, 0, 0, 0, 12, 3, 95, 53, 88, 83,
+			6, 115, 65, 47, 110, 0, 0, 0, 0, 0, 0, 0, 13, 69, 60, 97, 137, 12, 80, 121, 83, 83, 110, 89, 0, 0, 0, 13, 3, 95,
+			54, 88, 89, 6, 115, 49, 89, 47, 110, 0, 0, 0, 14, 4, 95, 50, 88, 15, 95, 6, 126, 13, 50, 72, 108, 0, 0, 7, 132, 22,
+			195, 165, 18, 76, 0, 6, 195, 52, 149, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 56, 88, 6, 121,
+			47, 12, 110, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 81, 0, 72, 8, 0, 0, 12, 3, 95, 57, 88, 50, 6, 109, 47, 12, 110,
+			0, 0, 7, 196, 16, 85, 20, 20, 76, 0, 11, 67, 56, 241, 78, 50, 123, 12, 13, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 6, 194, 36, 224, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
+			56, 81, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 128, 76, 0, 0, 0, 19, 4, 95, 48, 77, 50, 65, 6, 109,
+			55, 55, 110, 38, 4, 124, 50, 13, 51, 0, 0, 0, 6, 195, 52, 147, 133, 76, 7, 196, 60, 246, 13, 48, 17, 0, 13, 4, 95, 48,
+			77, 49, 47, 6, 126, 89, 13, 50, 0, 0, 0, 0, 0, 0, 0, 12, 67, 24, 244, 128, 83, 121, 34, 12, 0, 72, 8, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 60, 112, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 19, 4, 95, 3, 9, 18, 89, 6, 109, 51, 49, 125, 65, 83, 55, 115, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 1, 3, 21, 120, 6, 49, 125, 47, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 3, 95, 195, 165, 122, 0, 0, 0, 0, 0, 0, 0, 8, 133, 15, 7, 19, 195, 165, 28, 0, 0, 0, 0,
+			0, 0, 7, 196, 45, 83, 142, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 245, 0, 72,
+			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194,
+			60, 208, 72, 28, 0, 0, 0, 0, 0, 0, 0, 6, 195, 61, 97, 82, 28, 0, 0, 7, 2, 195, 165, 122, 0, 14, 6, 130, 195, 165,
+			72, 28, 0, 0, 0, 0, 0, 7, 131, 16, 195, 165, 72, 28, 0, 0, 0, 0, 0, 0, 0, 5, 130, 195, 169, 43, 0, 0, 0, 0,
+			0, 15, 4, 95, 3, 5, 4, 89, 6, 117, 72, 109, 55, 55, 108, 0, 0, 0, 0, 0, 0, 0, 7, 132, 2, 195, 184, 18, 76, 7,
+			132, 6, 195, 184, 18, 8, 5, 130, 195, 188, 43, 0, 0, 0, 0, 8, 133, 22, 195, 165, 18, 5, 76, 0, 0, 0, 0, 0, 9, 67,
+			44, 243, 64, 49, 121, 65, 0, 7, 195, 76, 243, 64, 72, 8, 0, 0, 0, 0, 6, 195, 16, 83, 64, 76, 0, 0, 0, 0, 0, 0,
+			8, 133, 22, 195, 165, 18, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 76, 0, 0, 0, 0,
+			0, 12, 71, 52, 17, 206, 36, 98, 69, 72, 21, 0, 10, 0, 0, 8, 197, 16, 84, 147, 60, 208, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 2, 95, 9, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 80, 147, 0, 72, 28, 0,
+			0, 0, 0, 0, 8, 133, 22, 195, 166, 18, 5, 76, 0, 8, 197, 76, 181, 76, 48, 80, 76, 0, 0, 0, 9, 198, 76, 181, 76, 48,
+			85, 0, 76, 13, 2, 95, 34, 119, 50, 83, 114, 51, 91, 13, 55, 0, 0, 8, 197, 52, 83, 12, 60, 208, 8, 15, 2, 95, 33, 126,
+			47, 51, 124, 48, 89, 47, 115, 68, 50, 0, 0, 0, 14, 2, 95, 39, 119, 48, 123, 89, 47, 51, 6, 124, 83, 0, 0, 0, 0, 11,
+			2, 95, 36, 72, 121, 55, 55, 120, 51, 0, 0, 6, 195, 16, 83, 128, 76, 0, 11, 2, 95, 42, 89, 95, 35, 51, 50, 108, 0, 0,
+			21, 2, 95, 41, 48, 35, 51, 35, 68, 47, 6, 117, 89, 15, 91, 55, 6, 125, 47, 12, 0, 0, 6, 195, 16, 84, 133, 76, 6, 195,
+			16, 84, 133, 76, 24, 2, 95, 40, 48, 35, 51, 35, 68, 47, 6, 117, 89, 15, 71, 13, 57, 6, 111, 50, 50, 13, 51, 0, 0, 9,
+			67, 32, 84, 128, 107, 116, 51, 0, 0, 12, 2, 95, 46, 48, 125, 68, 49, 47, 126, 65, 0, 0, 8, 133, 22, 195, 166, 18, 20, 72,
+			10, 2, 95, 45, 89, 47, 51, 117, 49, 0, 0, 6, 195, 8, 20, 133, 72, 10, 2, 95, 44, 49, 121, 65, 65, 119, 0, 0, 9, 67,
+			16, 84, 128, 72, 116, 51, 0, 6, 195, 88, 20, 128, 72, 9, 2, 95, 51, 47, 51, 6, 117, 0, 0, 8, 2, 95, 50, 47, 6, 124,
+			0, 0, 8, 2, 95, 49, 6, 117, 50, 0, 0, 9, 2, 95, 48, 50, 6, 125, 55, 0, 0, 8, 2, 95, 55, 91, 6, 126, 0, 0,
+			10, 2, 95, 54, 89, 6, 115, 49, 89, 0, 0, 9, 2, 95, 53, 83, 6, 115, 65, 0, 0, 10, 2, 95, 52, 83, 6, 110, 51, 115,
+			0, 0, 14, 2, 95, 59, 89, 117, 65, 110, 49, 124, 55, 121, 50, 0, 0, 10, 2, 95, 58, 49, 124, 55, 121, 50, 0, 0, 8, 2,
+			95, 57, 50, 6, 110, 0, 0, 10, 2, 95, 56, 6, 121, 47, 12, 108, 0, 0, 18, 2, 95, 63, 89, 48, 113, 51, 91, 65, 121, 55,
+			89, 47, 115, 68, 50, 0, 0, 13, 2, 95, 62, 89, 47, 113, 51, 13, 15, 115, 50, 0, 0, 10, 2, 95, 61, 35, 51, 55, 110, 49,
+			0, 0, 14, 2, 95, 60, 65, 109, 50, 72, 51, 108, 15, 115, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 88, 147, 0, 76, 6, 195, 16, 81, 192, 76, 28, 2, 95, 91, 84, 6, 115,
+			50, 89, 47, 51, 108, 15, 107, 6, 120, 49, 117, 48, 35, 51, 35, 68, 47, 6, 117, 89, 0, 0, 0, 0, 6, 195, 36, 178, 197, 72,
+			5, 194, 88, 144, 76, 0, 6, 195, 8, 18, 192, 8, 15, 2, 95, 95, 125, 50, 72, 35, 51, 91, 47, 51, 13, 49, 0, 0, 0, 25,
+			2, 95, 93, 107, 6, 131, 51, 108, 15, 107, 6, 120, 49, 117, 48, 35, 51, 35, 68, 47, 6, 117, 89, 0, 0, 22, 2, 95, 92, 121,
+			65, 84, 115, 50, 72, 47, 15, 89, 49, 51, 121, 89, 47, 51, 13, 49, 0, 0, 0, 0, 0, 23, 2, 95, 96, 6, 121, 65, 84, 115,
+			50, 72, 47, 15, 119, 48, 123, 89, 47, 51, 6, 124, 83, 0, 0, 6, 195, 33, 83, 128, 76, 0, 0, 0, 0, 0, 0, 0, 14, 4,
+			95, 7, 18, 22, 81, 51, 6, 120, 84, 110, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 4, 9,
+			1, 47, 51, 6, 117, 65, 119, 0, 0, 0, 0, 0, 0, 7, 196, 8, 194, 84, 80, 76, 0, 0, 0, 11, 70, 24, 148, 133, 24, 246,
+			0, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 7, 131, 19, 195, 165, 72, 8, 0, 10, 4, 95, 35, 48, 57, 47, 120, 71, 0, 0,
+			0, 0, 0, 0, 8, 196, 21, 69, 5, 72, 72, 8, 0, 0, 0, 7, 195, 25, 32, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 16,
+			4, 95, 35, 51, 50, 65, 115, 55, 55, 121, 65, 51, 124, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 7, 195, 33, 98, 83, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 16, 148,
+			211, 20, 76, 0, 6, 195, 85, 65, 78, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 9, 67, 48, 241, 64, 55, 124, 0, 41, 0, 0, 0, 0, 7, 195, 76, 19, 84, 72, 8, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 149, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 164, 0, 2, 17, 67, 17, 67, 3, 115, 0,
+			3, 116, 0, 7, 6, 195, 165, 0, 2, 17, 67, 17, 67, 3, 121, 0, 3, 122, 0, 101, 3, 122, 108, 0, 7, 6, 195, 166, 0, 2,
+			17, 67, 17, 67, 3, 35, 0, 3, 116, 0, 2, 114, 3, 118, 0, 7, 6, 195, 182, 0, 2, 17, 67, 17, 67, 3, 113, 0, 3, 114,
+			0, 7, 6, 195, 184, 0, 2, 17, 67, 17, 67, 3, 113, 0, 3, 114, 0, 121, 3, 131, 0, 7, 6, 97, 0, 4, 2, 17, 67, 3,
+			35, 0, 101, 2, 17, 67, 17, 67, 0, 101, 3, 118, 0, 4, 2, 17, 67, 17, 67, 3, 119, 0, 2, 32, 0, 3, 120, 0, 97, 2,
+			17, 67, 17, 67, 3, 121, 0, 97, 3, 122, 0, 105, 3, 127, 0, 117, 3, 132, 0, 7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12,
+			0, 101, 8, 2, 21, 3, 71, 13, 0, 7, 6, 99, 0, 3, 49, 0, 99, 3, 49, 12, 0, 4, 2, 101, 105, 3, 89, 0, 2, 105,
+			0, 2, 121, 0, 2, 195, 184, 121, 0, 8, 2, 101, 0, 104, 3, 91, 0, 7, 6, 100, 0, 1, 114, 2, 32, 3, 0, 3, 72, 0,
+			100, 3, 72, 12, 0, 101, 116, 1, 10, 2, 32, 3, 72, 108, 0, 7, 6, 101, 0, 1, 10, 2, 17, 67, 32, 3, 13, 0, 116, 1,
+			10, 2, 32, 3, 13, 47, 0, 110, 1, 10, 2, 32, 3, 13, 50, 0, 110, 115, 1, 10, 2, 32, 3, 13, 50, 89, 0, 115, 1, 10,
+			2, 32, 3, 13, 89, 0, 2, 114, 17, 67, 3, 35, 0, 1, 10, 2, 32, 3, 108, 0, 4, 1, 29, 2, 109, 32, 3, 115, 0, 2,
+			17, 67, 17, 67, 0, 110, 101, 1, 10, 2, 32, 3, 115, 50, 108, 0, 3, 117, 0, 105, 3, 128, 0, 7, 6, 102, 0, 3, 83, 0,
+			7, 6, 103, 0, 4, 2, 101, 105, 3, 57, 0, 2, 105, 0, 2, 121, 0, 2, 195, 184, 121, 0, 106, 0, 2, 110, 3, 68, 0, 3,
+			81, 0, 103, 3, 81, 12, 0, 7, 6, 104, 0, 106, 3, 57, 0, 118, 3, 84, 0, 3, 107, 0, 7, 6, 105, 0, 4, 2, 17, 67,
+			17, 67, 3, 109, 0, 103, 1, 10, 2, 32, 0, 3, 110, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3,
+			49, 12, 0, 4, 2, 101, 105, 3, 101, 0, 2, 105, 0, 2, 121, 0, 2, 195, 184, 121, 0, 106, 0, 7, 6, 108, 0, 4, 3, 55,
+			0, 108, 2, 25, 0, 100, 3, 55, 55, 0, 106, 3, 57, 0, 7, 6, 109, 0, 4, 3, 65, 0, 109, 2, 25, 0, 7, 6, 110, 0,
+			4, 3, 50, 0, 110, 2, 25, 0, 100, 3, 50, 50, 0, 4, 2, 107, 3, 68, 0, 103, 0, 7, 6, 111, 0, 2, 17, 67, 17, 67,
+			3, 121, 0, 101, 3, 121, 108, 0, 4, 2, 110, 100, 3, 123, 0, 2, 114, 116, 0, 2, 115, 116, 0, 4, 3, 124, 0, 1, 98, 2,
+			114, 100, 0, 101, 1, 98, 21, 2, 32, 0, 105, 3, 129, 0, 7, 6, 112, 0, 3, 48, 0, 112, 3, 48, 12, 0, 7, 6, 113, 0,
+			3, 49, 0, 113, 3, 49, 12, 0, 117, 3, 49, 58, 0, 7, 6, 114, 0, 3, 51, 0, 115, 2, 32, 3, 91, 0, 7, 6, 115, 0,
+			4, 3, 89, 0, 1, 17, 65, 2, 108, 17, 65, 0, 115, 2, 32, 0, 115, 3, 89, 89, 0, 4, 1, 114, 3, 91, 0, 2, 108, 0,
+			99, 104, 0, 106, 0, 107, 2, 101, 105, 0, 107, 2, 105, 0, 107, 2, 121, 0, 107, 2, 195, 184, 121, 0, 107, 106, 0, 7, 6, 116,
+			0, 3, 47, 0, 116, 3, 47, 12, 0, 105, 2, 111, 110, 3, 91, 0, 106, 3, 95, 0, 7, 6, 117, 0, 2, 17, 67, 17, 67, 3,
+			125, 0, 3, 126, 0, 105, 3, 130, 0, 7, 6, 118, 0, 4, 3, 84, 0, 118, 2, 32, 0, 7, 6, 119, 0, 3, 84, 0, 7, 6,
+			120, 0, 2, 120, 3, 0, 3, 49, 89, 0, 8, 3, 89, 0, 7, 6, 121, 0, 2, 17, 67, 17, 67, 3, 111, 0, 3, 112, 0, 7,
+			6, 122, 0, 4, 122, 3, 88, 0, 122, 2, 32, 0, 3, 89, 0, 7, 6, 0, 4, 33, 1, 19, 3, 0, 46, 1, 46, 3, 0, 195,
+			169, 3, 6, 117, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 6, 126, 47, 51, 124, 48, 89, 47, 115, 68, 50, 9, 0, 4, 45, 1,
+			32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 46, 3, 48, 125, 68, 49, 47, 126, 65, 0, 45, 8,
+			32, 2, 32, 15, 3, 65, 110, 50, 126, 89, 0, 36, 3, 72, 121, 55, 55, 120, 51, 0, 195, 188, 3, 112, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts46 = FileInMemory_createWithData (4197, reinterpret_cast<const char *> (&espeakdata_dicts46_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/no_dict", 
 			U"no");
-		my addItem_move (espeakdata_dicts49.move());
+		Collection_addItem (me.peek(), espeakdata_dicts46.transfer());
 
-		static unsigned char espeakdata_dicts50_data[4766] = {
-			0, 4, 0, 0, 2, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4,
-			95, 100, 112, 116, 10, 72, 13, 89, 13, 65, 55, 6, 119, 10, 0, 0, 0, 0, 0, 0, 0, 12, 6, 224, 172, 162, 224, 172, 188, 107,
-			70, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 36, 140, 121, 55, 35, 34, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 51, 57, 6, 109, 12, 50, 109, 76, 4, 35, 55, 37, 91, 0, 13, 3,
-			95, 50, 49, 6, 36, 49, 39, 4, 37, 91, 0, 0, 17, 3, 95, 51, 56, 6, 109, 12, 141, 109, 47, 4, 37, 34, 37, 91, 0, 13,
-			3, 95, 50, 48, 49, 6, 39, 70, 37, 4, 36, 0, 0, 12, 3, 95, 50, 51, 47, 6, 36, 58, 37, 91, 0, 0, 11, 3, 95, 50,
-			50, 71, 6, 35, 37, 91, 0, 0, 12, 3, 95, 50, 53, 48, 6, 109, 76, 37, 91, 0, 0, 12, 3, 95, 50, 52, 76, 6, 39, 71,
-			37, 91, 0, 0, 15, 3, 95, 50, 55, 91, 6, 109, 47, 36, 58, 4, 37, 91, 0, 0, 12, 3, 95, 50, 54, 149, 6, 109, 71, 37,
-			91, 0, 0, 16, 3, 95, 51, 49, 6, 36, 49, 109, 47, 4, 37, 34, 37, 91, 0, 0, 12, 3, 95, 51, 48, 47, 6, 37, 34, 37,
-			91, 0, 0, 13, 3, 95, 51, 51, 47, 6, 36, 58, 47, 37, 91, 0, 0, 13, 3, 95, 51, 50, 71, 6, 109, 12, 47, 37, 91, 0,
-			0, 17, 3, 95, 51, 53, 48, 6, 109, 4, 124, 47, 37, 34, 4, 37, 91, 0, 0, 16, 3, 95, 51, 52, 76, 6, 109, 40, 47, 4,
-			37, 34, 37, 91, 0, 0, 16, 3, 95, 51, 55, 91, 109, 6, 124, 47, 37, 34, 4, 37, 91, 0, 0, 13, 3, 95, 51, 54, 149, 6,
-			109, 12, 47, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 95, 224, 172, 144, 39, 57, 0, 0, 8, 4, 95, 224, 172, 147, 39,
-			0, 0, 0, 0, 0, 8, 4, 95, 224, 172, 143, 36, 0, 0, 0, 0, 0, 0, 15, 3, 95, 55, 57, 6, 109, 12, 50, 35, 4, 109,
-			91, 37, 0, 15, 3, 95, 54, 49, 6, 36, 49, 109, 91, 4, 109, 141, 37, 0, 0, 18, 3, 95, 55, 56, 6, 109, 12, 141, 6, 109,
-			89, 47, 109, 34, 4, 37, 0, 13, 3, 95, 54, 48, 91, 6, 35, 141, 37, 4, 36, 0, 0, 11, 3, 95, 48, 67, 91, 6, 109, 107,
-			39, 0, 15, 3, 95, 54, 51, 47, 6, 36, 58, 91, 109, 141, 4, 37, 0, 0, 14, 3, 95, 54, 50, 71, 6, 35, 91, 109, 141, 4,
-			37, 0, 0, 15, 3, 95, 54, 53, 48, 109, 6, 130, 91, 109, 141, 4, 37, 0, 0, 15, 3, 95, 54, 52, 76, 6, 109, 40, 91, 4,
-			109, 141, 37, 0, 0, 17, 3, 95, 54, 55, 91, 6, 109, 12, 47, 109, 91, 4, 109, 141, 37, 0, 0, 15, 3, 95, 54, 54, 149, 6,
-			109, 12, 91, 109, 141, 4, 37, 0, 0, 17, 3, 95, 55, 49, 36, 49, 6, 109, 12, 89, 47, 109, 34, 4, 37, 0, 0, 15, 3, 95,
-			55, 48, 91, 6, 109, 12, 47, 40, 34, 4, 37, 0, 0, 16, 3, 95, 55, 51, 47, 6, 36, 58, 89, 47, 109, 34, 4, 37, 0, 0,
-			15, 3, 95, 55, 50, 71, 6, 35, 89, 47, 109, 34, 4, 37, 0, 0, 18, 3, 95, 55, 53, 48, 109, 50, 76, 6, 109, 89, 47, 109,
-			34, 4, 37, 0, 0, 16, 3, 95, 55, 52, 76, 109, 6, 40, 89, 47, 109, 34, 4, 37, 0, 0, 19, 3, 95, 55, 55, 91, 6, 109,
-			12, 47, 6, 109, 89, 47, 109, 34, 4, 37, 0, 0, 16, 3, 95, 55, 54, 149, 109, 6, 109, 89, 47, 109, 34, 4, 37, 0, 0, 14,
-			3, 95, 49, 57, 6, 40, 50, 36, 58, 4, 37, 91, 0, 0, 14, 3, 95, 49, 56, 6, 109, 12, 141, 109, 16, 4, 121, 0, 0, 0,
-			0, 0, 0, 0, 0, 17, 3, 95, 50, 57, 6, 109, 12, 50, 109, 47, 4, 37, 34, 37, 91, 0, 13, 3, 95, 49, 49, 6, 36, 81,
-			35, 16, 12, 121, 0, 0, 14, 3, 95, 50, 56, 6, 109, 141, 36, 58, 4, 37, 91, 0, 11, 3, 95, 49, 48, 72, 6, 39, 91, 121,
-			0, 0, 12, 3, 95, 49, 51, 47, 6, 36, 58, 34, 121, 0, 0, 11, 3, 95, 49, 50, 71, 6, 35, 16, 121, 0, 0, 15, 3, 95,
-			49, 53, 48, 6, 109, 50, 72, 109, 16, 6, 121, 0, 0, 13, 3, 95, 49, 52, 76, 6, 121, 40, 72, 6, 121, 0, 0, 14, 3, 95,
-			49, 55, 91, 6, 109, 47, 109, 16, 4, 121, 0, 0, 14, 3, 95, 49, 54, 91, 6, 39, 107, 109, 45, 6, 121, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 15, 3, 95, 52, 57, 109, 12, 50, 6, 109, 50, 76, 35, 91, 0, 0, 11, 3, 224, 165, 164, 72, 109, 66, 140,
-			109, 0, 19, 3, 95, 52, 56, 6, 109, 12, 141, 6, 109, 76, 4, 35, 45, 4, 37, 91, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,
-			95, 53, 57, 6, 109, 12, 50, 109, 91, 6, 109, 141, 37, 0, 17, 3, 95, 52, 49, 6, 36, 49, 109, 76, 4, 35, 45, 4, 37, 91,
-			0, 0, 15, 3, 95, 53, 56, 6, 109, 12, 141, 35, 71, 4, 109, 50, 0, 13, 3, 95, 52, 48, 76, 6, 35, 45, 4, 37, 91, 0,
-			0, 18, 3, 95, 52, 51, 47, 6, 36, 58, 57, 109, 4, 35, 45, 4, 37, 91, 0, 0, 17, 3, 95, 52, 50, 71, 6, 109, 57, 109,
-			4, 35, 45, 4, 37, 91, 0, 0, 16, 3, 95, 52, 53, 48, 109, 6, 124, 76, 35, 45, 4, 37, 91, 0, 0, 17, 3, 95, 52, 52,
-			76, 6, 109, 40, 34, 4, 35, 45, 4, 37, 91, 0, 0, 18, 3, 95, 52, 55, 91, 6, 109, 47, 109, 76, 4, 35, 45, 4, 37, 91,
-			0, 0, 18, 3, 95, 52, 54, 149, 6, 109, 57, 109, 4, 35, 45, 4, 37, 91, 121, 0, 0, 18, 3, 95, 54, 57, 6, 109, 12, 50,
-			6, 109, 89, 47, 109, 34, 6, 37, 0, 14, 3, 95, 53, 49, 6, 36, 49, 35, 71, 4, 109, 50, 0, 0, 15, 3, 95, 54, 56, 6,
-			109, 70, 109, 91, 4, 109, 141, 37, 0, 13, 3, 95, 53, 48, 48, 6, 109, 12, 76, 35, 91, 0, 0, 13, 3, 95, 53, 51, 47, 6,
-			36, 58, 48, 109, 50, 0, 0, 11, 3, 95, 53, 50, 71, 6, 35, 40, 50, 0, 0, 17, 3, 95, 53, 53, 48, 6, 109, 12, 50, 76,
-			35, 71, 4, 109, 50, 0, 0, 15, 3, 95, 53, 52, 76, 6, 109, 12, 40, 71, 4, 109, 50, 0, 0, 15, 3, 95, 53, 55, 91, 6,
-			109, 47, 35, 71, 4, 109, 50, 0, 0, 13, 3, 95, 53, 54, 149, 6, 109, 12, 48, 109, 50, 0, 0, 15, 3, 224, 173, 141, 6, 107,
-			109, 55, 6, 109, 50, 47, 121, 0, 7, 3, 224, 172, 133, 121, 0, 0, 12, 3, 224, 173, 140, 6, 39, 58, 49, 35, 34, 0, 0, 14,
-			3, 224, 172, 135, 107, 34, 121, 91, 12, 39, 6, 37, 0, 0, 7, 3, 224, 172, 134, 35, 0, 0, 18, 3, 224, 172, 129, 76, 6, 121,
-			50, 72, 34, 39, 71, 37, 50, 72, 40, 0, 0, 12, 3, 224, 173, 136, 6, 39, 57, 49, 35, 34, 0, 0, 14, 3, 224, 172, 131, 71,
-			6, 37, 91, 121, 34, 81, 39, 0, 11, 3, 224, 173, 139, 6, 39, 49, 35, 34, 0, 0, 14, 3, 224, 172, 130, 6, 121, 50, 40, 91,
-			91, 121, 34, 0, 0, 17, 3, 95, 56, 57, 6, 109, 12, 50, 35, 50, 4, 109, 71, 36, 58, 0, 0, 15, 3, 95, 56, 56, 6, 109,
-			12, 141, 35, 4, 109, 91, 37, 0, 0, 11, 3, 224, 173, 135, 6, 36, 49, 35, 34, 0, 0, 0, 16, 3, 224, 173, 129, 107, 34, 121,
-			91, 12, 39, 40, 49, 35, 34, 0, 0, 15, 3, 224, 173, 128, 72, 6, 112, 34, 146, 37, 49, 35, 34, 0, 0, 12, 3, 224, 173, 131,
-			34, 6, 37, 49, 35, 34, 0, 0, 16, 3, 224, 173, 130, 72, 6, 112, 34, 146, 6, 40, 49, 35, 34, 0, 0, 18, 3, 95, 57, 57,
-			6, 109, 12, 50, 6, 36, 58, 91, 109, 47, 4, 39, 0, 15, 3, 95, 56, 49, 6, 36, 49, 35, 4, 109, 12, 91, 37, 0, 0, 27,
-			3, 95, 57, 56, 6, 109, 12, 141, 35, 50, 4, 109, 71, 36, 58, 109, 50, 6, 36, 58, 91, 109, 47, 4, 39, 0, 12, 3, 95, 56,
-			48, 6, 109, 12, 4, 91, 37, 0, 0, 18, 3, 95, 56, 51, 47, 6, 36, 58, 57, 109, 4, 35, 109, 91, 4, 37, 0, 0, 17, 3,
-			95, 56, 50, 71, 6, 109, 57, 109, 4, 35, 109, 91, 4, 37, 0, 0, 17, 3, 95, 56, 53, 48, 6, 109, 12, 50, 76, 35, 4, 109,
-			91, 37, 0, 0, 18, 3, 95, 56, 52, 76, 6, 109, 12, 40, 34, 4, 35, 109, 91, 4, 37, 0, 0, 15, 3, 95, 56, 55, 91, 6,
-			109, 47, 35, 4, 109, 91, 37, 0, 0, 17, 3, 95, 56, 54, 149, 6, 109, 57, 109, 4, 35, 109, 91, 4, 37, 0, 0, 16, 3, 95,
-			57, 49, 6, 36, 49, 35, 50, 4, 109, 71, 36, 58, 0, 0, 12, 3, 95, 57, 48, 50, 6, 109, 71, 36, 58, 0, 0, 20, 3, 95,
-			57, 51, 47, 6, 36, 58, 57, 109, 4, 35, 50, 109, 71, 4, 36, 58, 0, 0, 20, 3, 95, 57, 50, 71, 6, 109, 12, 57, 109, 4,
-			35, 50, 109, 71, 4, 36, 58, 0, 0, 18, 3, 95, 57, 53, 48, 6, 109, 50, 76, 35, 50, 4, 109, 71, 36, 58, 0, 0, 19, 3,
-			95, 57, 52, 76, 6, 109, 40, 34, 4, 35, 50, 109, 71, 4, 36, 58, 0, 0, 17, 3, 95, 57, 55, 91, 6, 109, 47, 35, 50, 4,
-			109, 71, 36, 58, 0, 0, 20, 3, 95, 57, 54, 149, 6, 109, 12, 57, 109, 4, 35, 50, 109, 71, 4, 36, 58, 0, 0, 8, 3, 224,
-			172, 165, 25, 121, 0, 0, 8, 3, 224, 172, 164, 47, 121, 0, 0, 8, 3, 224, 172, 167, 138, 121, 0, 0, 8, 3, 224, 172, 166, 72,
-			121, 0, 0, 8, 3, 224, 172, 161, 140, 121, 0, 0, 8, 3, 224, 172, 160, 141, 121, 0, 0, 9, 3, 224, 172, 163, 66, 6, 121, 0,
-			0, 8, 3, 224, 172, 162, 142, 121, 0, 0, 8, 3, 224, 172, 157, 144, 121, 0, 0, 8, 3, 224, 172, 156, 79, 121, 0, 0, 8, 3,
-			224, 172, 159, 139, 121, 0, 0, 10, 3, 224, 172, 158, 6, 37, 68, 130, 0, 0, 11, 3, 224, 172, 153, 6, 40, 68, 81, 130, 0, 0,
-			8, 3, 224, 172, 152, 146, 121, 0, 0, 9, 3, 224, 172, 155, 76, 107, 121, 0, 0, 8, 3, 224, 172, 154, 76, 121, 0, 0, 9, 3,
-			224, 173, 157, 107, 70, 121, 0, 8, 3, 224, 172, 149, 49, 121, 0, 0, 8, 3, 224, 172, 148, 39, 58, 0, 8, 3, 224, 173, 156, 70,
-			121, 0, 0, 8, 3, 224, 173, 159, 121, 57, 0, 8, 3, 224, 172, 151, 81, 121, 0, 0, 8, 3, 224, 172, 150, 145, 121, 0, 0, 0,
-			9, 3, 224, 172, 144, 39, 57, 0, 76, 0, 9, 3, 224, 172, 147, 39, 0, 76, 28, 0, 0, 0, 0, 8, 3, 224, 172, 143, 36, 0,
-			76, 0, 0, 14, 3, 224, 172, 137, 107, 34, 121, 91, 12, 39, 6, 40, 0, 0, 14, 3, 224, 172, 136, 72, 6, 112, 34, 146, 39, 6,
-			37, 0, 0, 8, 3, 224, 172, 139, 34, 37, 0, 0, 14, 3, 224, 172, 138, 72, 6, 112, 34, 146, 39, 6, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 11, 3, 224, 172, 190, 6, 35, 49, 35, 34, 0, 0, 17, 3, 224, 172, 191, 107, 34, 121, 91, 12, 39, 6, 37,
-			49, 35, 34, 0, 0, 12, 3, 224, 172, 188, 71, 6, 37, 50, 72, 40, 0, 0, 0, 0, 0, 16, 3, 224, 172, 184, 72, 4, 39, 50,
-			47, 36, 91, 12, 6, 121, 0, 0, 8, 3, 224, 172, 185, 107, 121, 0, 0, 17, 3, 224, 172, 182, 47, 4, 35, 55, 36, 71, 39, 91,
-			12, 6, 121, 0, 0, 18, 3, 224, 172, 183, 65, 4, 40, 138, 36, 50, 12, 39, 91, 12, 6, 121, 0, 0, 0, 8, 3, 224, 172, 181,
-			84, 121, 0, 0, 8, 3, 224, 172, 178, 55, 121, 0, 0, 0, 8, 3, 224, 172, 176, 34, 121, 0, 0, 0, 8, 3, 224, 172, 174, 65,
-			121, 0, 0, 9, 3, 224, 172, 175, 75, 6, 121, 0, 0, 8, 3, 224, 172, 172, 71, 121, 0, 0, 8, 3, 224, 172, 173, 137, 121, 0,
-			12, 4, 95, 48, 77, 52, 6, 109, 34, 109, 71, 0, 0, 8, 3, 224, 172, 170, 48, 121, 0, 13, 4, 95, 48, 77, 53, 145, 6, 109,
-			34, 109, 71, 0, 0, 8, 3, 224, 172, 171, 83, 121, 0, 13, 4, 95, 48, 77, 50, 55, 6, 109, 145, 145, 121, 0, 0, 9, 3, 224,
-			172, 168, 50, 6, 121, 0, 12, 4, 95, 48, 77, 51, 49, 6, 39, 139, 37, 0, 0, 0, 15, 4, 95, 48, 77, 49, 107, 6, 109, 79,
-			35, 16, 4, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 172, 161, 224, 172, 188,
-			70, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 44, 49, 39, 65, 35, 0, 0, 10, 2, 95, 51, 47, 6, 37, 50, 37, 0, 0, 9,
-			2, 95, 50, 72, 6, 40, 37, 0, 0, 11, 2, 95, 49, 6, 36, 6, 49, 6, 39, 0, 0, 11, 2, 95, 48, 91, 6, 123, 50, 57,
-			14, 0, 0, 10, 2, 95, 55, 91, 6, 35, 47, 39, 0, 0, 8, 2, 95, 54, 149, 6, 39, 0, 0, 11, 2, 95, 53, 48, 6, 35,
-			50, 76, 121, 0, 0, 10, 2, 95, 52, 76, 6, 35, 34, 37, 0, 0, 0, 0, 9, 2, 95, 57, 50, 6, 109, 121, 0, 0, 9, 2,
-			95, 56, 6, 35, 141, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 20, 102, 11, 0, 0, 48, 0, 0, 0, 103, 11, 0, 0, 49, 0, 0, 0, 104, 11, 0, 0, 50, 0, 0, 0, 105, 11, 0, 0,
-			51, 0, 0, 0, 106, 11, 0, 0, 52, 0, 0, 0, 107, 11, 0, 0, 53, 0, 0, 0, 108, 11, 0, 0, 54, 0, 0, 0, 109, 11,
-			0, 0, 55, 0, 0, 0, 110, 11, 0, 0, 56, 0, 0, 0, 111, 11, 0, 0, 57, 0, 0, 0, 33, 11, 60, 11, 92, 11, 0, 0,
-			34, 11, 60, 11, 93, 11, 0, 0, 0, 0, 0, 0, 6, 1, 58, 0, 2, 17, 66, 3, 84, 0, 3, 84, 109, 0, 7, 6, 1, 2,
-			0, 1, 17, 67, 3, 130, 0, 7, 6, 1, 3, 0, 4, 1, 17, 65, 3, 68, 0, 1, 17, 67, 0, 7, 6, 1, 4, 0, 3, 0,
-			2, 32, 3, 108, 0, 7, 6, 1, 6, 0, 3, 109, 0, 224, 172, 129, 3, 130, 0, 7, 6, 1, 7, 0, 3, 35, 0, 224, 172, 129,
-			3, 128, 0, 7, 6, 1, 8, 0, 3, 37, 0, 224, 172, 129, 3, 124, 0, 7, 6, 1, 9, 0, 3, 37, 0, 224, 172, 129, 3, 124,
-			0, 7, 6, 1, 10, 0, 3, 40, 0, 224, 172, 129, 3, 133, 0, 7, 6, 1, 11, 0, 3, 123, 0, 224, 172, 129, 3, 133, 0, 7,
-			6, 1, 12, 0, 3, 34, 40, 0, 224, 172, 129, 3, 34, 133, 0, 7, 6, 1, 13, 0, 3, 45, 34, 6, 37, 0, 7, 6, 1, 16,
-			0, 3, 36, 0, 224, 172, 129, 3, 126, 0, 7, 6, 1, 17, 0, 3, 39, 57, 0, 224, 172, 129, 3, 131, 57, 0, 7, 6, 1, 20,
-			0, 3, 39, 0, 224, 172, 129, 3, 131, 0, 7, 6, 1, 21, 0, 3, 39, 58, 0, 224, 172, 129, 3, 131, 58, 0, 7, 6, 1, 22,
-			0, 2, 17, 66, 3, 49, 0, 3, 49, 109, 0, 224, 173, 141, 224, 172, 183, 2, 17, 66, 3, 145, 145, 0, 224, 173, 141, 224, 172, 183,
-			3, 145, 145, 109, 0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 109, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81,
-			0, 3, 81, 109, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 109, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68,
-			0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 76, 0, 3, 76, 109, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 149,
-			0, 3, 149, 109, 0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 79, 0, 224, 173, 141, 224, 172, 172, 2, 17, 66, 0, 4, 3, 79,
-			109, 0, 224, 173, 141, 224, 172, 172, 0, 224, 173, 141, 224, 172, 158, 2, 17, 66, 3, 81, 81, 0, 224, 173, 141, 224, 172, 158, 3, 81,
-			81, 131, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 109, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 50, 0, 3,
-			50, 109, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 3, 139, 109, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 141, 0, 3,
-			141, 109, 0, 7, 6, 1, 34, 0, 224, 172, 188, 2, 17, 66, 3, 70, 0, 224, 172, 188, 3, 70, 109, 0, 2, 17, 66, 3, 140, 0,
-			3, 140, 109, 0, 7, 6, 1, 35, 0, 224, 172, 188, 2, 17, 66, 3, 107, 70, 0, 224, 172, 188, 3, 107, 70, 109, 0, 2, 17, 66,
-			3, 142, 0, 3, 142, 109, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 37, 0, 2, 17, 66,
-			3, 47, 0, 2, 32, 3, 47, 39, 0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 109, 0, 7, 6,
-			1, 39, 0, 2, 17, 66, 3, 72, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 109, 0, 7, 6,
-			1, 41, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 109, 0, 7, 6,
-			1, 44, 0, 2, 17, 66, 3, 136, 0, 3, 136, 109, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 109, 0, 7, 6,
-			1, 46, 0, 2, 17, 66, 3, 137, 0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 65, 0, 3, 65, 109, 0, 7, 6,
-			1, 48, 0, 224, 172, 188, 2, 17, 66, 3, 0, 1, 141, 173, 224, 2, 17, 66, 32, 3, 12, 0, 1, 141, 173, 224, 2, 32, 3, 12,
-			121, 0, 224, 172, 188, 8, 2, 17, 66, 3, 57, 0, 224, 172, 188, 3, 57, 109, 0, 2, 17, 66, 3, 75, 0, 3, 75, 109, 0, 4,
-			1, 141, 173, 224, 2, 17, 67, 3, 148, 0, 224, 172, 190, 1, 141, 173, 224, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 3,
-			34, 109, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 109, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 45, 0, 3,
-			45, 109, 0, 7, 6, 1, 54, 0, 2, 17, 66, 3, 58, 0, 3, 58, 109, 0, 7, 6, 1, 55, 0, 2, 224, 173, 141, 224, 172, 178,
-			3, 89, 0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 91, 0, 3, 91, 109, 0, 7, 6,
-			1, 57, 0, 4, 2, 224, 173, 141, 224, 172, 164, 3, 89, 0, 2, 224, 173, 141, 224, 172, 165, 0, 2, 224, 173, 141, 224, 172, 175, 0,
-			4, 2, 17, 66, 3, 91, 0, 224, 173, 141, 224, 172, 172, 8, 2, 17, 66, 0, 4, 3, 91, 109, 0, 224, 173, 141, 224, 172, 172, 8,
-			0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 2, 32, 3, 107, 39, 0, 3, 107, 109, 0, 7, 6, 1, 61, 0, 3, 0, 7,
-			6, 1, 63, 0, 1, 17, 67, 3, 35, 0, 224, 172, 129, 1, 17, 67, 3, 128, 0, 7, 6, 1, 64, 0, 1, 17, 67, 3, 37, 0,
-			224, 172, 129, 1, 17, 67, 3, 124, 0, 7, 6, 1, 65, 0, 1, 17, 67, 3, 37, 0, 224, 172, 129, 1, 17, 67, 3, 124, 0, 7,
-			6, 1, 66, 0, 1, 17, 67, 3, 40, 0, 224, 172, 129, 1, 17, 67, 3, 133, 0, 7, 6, 1, 67, 0, 1, 17, 67, 3, 123, 0,
-			224, 172, 129, 1, 17, 67, 3, 133, 12, 0, 7, 6, 1, 68, 0, 1, 17, 67, 3, 34, 6, 40, 0, 224, 172, 129, 1, 17, 67, 3,
-			34, 6, 133, 0, 7, 6, 1, 72, 0, 1, 17, 67, 3, 36, 0, 1, 17, 67, 3, 36, 58, 0, 224, 172, 129, 1, 17, 67, 3, 126,
-			0, 7, 6, 1, 73, 0, 1, 17, 67, 3, 39, 57, 0, 224, 172, 129, 1, 17, 67, 3, 131, 57, 0, 7, 6, 1, 76, 0, 1, 17,
-			67, 3, 39, 0, 224, 172, 129, 1, 17, 67, 3, 131, 0, 7, 6, 1, 77, 0, 1, 17, 67, 3, 39, 58, 0, 224, 172, 129, 1, 17,
-			67, 3, 131, 58, 0, 7, 6, 1, 78, 0, 1, 17, 67, 3, 0, 7, 6, 1, 79, 0, 3, 47, 0, 7, 6, 1, 93, 0, 2, 17,
-			66, 3, 70, 0, 3, 70, 109, 0, 7, 6, 1, 94, 0, 2, 17, 66, 3, 107, 70, 0, 2, 32, 3, 107, 70, 39, 0, 3, 107, 70,
-			109, 0, 7, 6, 1, 96, 0, 8, 2, 17, 66, 3, 57, 0, 2, 32, 3, 57, 39, 0, 3, 57, 109, 0, 7, 6, 0, 4, 224, 172,
-			139, 3, 44, 0, 224, 173, 131, 0, 224, 173, 132, 0, 224, 173, 160, 0, 4, 224, 172, 140, 3, 45, 0, 224, 173, 161, 0, 224, 173, 162,
-			0, 224, 173, 163, 0, 224, 165, 164, 3, 48, 6, 40, 34, 66, 6, 39, 109, 6, 37, 34, 35, 65, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts50 = FileInMemory_createWithData (4765, reinterpret_cast<const char *> (&espeakdata_dicts50_data), 
-			U"espeak-1.48.04-source/espeak-data/or_dict", 
-			U"or");
-		my addItem_move (espeakdata_dicts50.move());
+		static unsigned char espeakdata_dicts47_data[3416] = {
+			0, 4, 0, 0, 113, 11, 0, 0, 0, 0, 0, 0, 0, 22, 4, 95, 56, 77, 49, 72, 37, 49, 6, 36, 47, 36, 89, 37, 89, 58,
+			6, 35, 12, 37, 0, 5, 65, 4, 35, 0, 0, 33, 4, 95, 56, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106,
+			6, 39, 12, 55, 39, 89, 37, 89, 58, 6, 35, 12, 37, 0, 0, 0, 0, 9, 65, 8, 71, 37, 12, 37, 12, 0, 0, 0, 0, 0,
+			9, 65, 12, 89, 37, 12, 37, 12, 0, 0, 0, 0, 7, 196, 100, 16, 78, 36, 8, 0, 9, 65, 16, 72, 37, 12, 37, 12, 0, 0,
+			0, 0, 0, 8, 65, 20, 37, 12, 37, 12, 0, 0, 0, 0, 0, 8, 65, 24, 36, 12, 83, 40, 0, 0, 0, 0, 0, 9, 197, 12,
+			129, 78, 100, 80, 72, 28, 6, 65, 28, 111, 13, 0, 0, 0, 0, 6, 195, 100, 83, 129, 76, 0, 8, 65, 32, 36, 37, 76, 37, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 8, 65, 40, 75, 6, 36, 37, 0, 0, 0, 0, 0, 7, 65, 44, 49, 36, 37, 0, 0, 0, 0,
+			0, 8, 65, 48, 36, 12, 55, 37, 0, 0, 0, 0, 0, 8, 65, 52, 6, 36, 65, 40, 0, 0, 0, 0, 0, 8, 65, 56, 6, 36,
+			50, 37, 0, 0, 0, 0, 0, 8, 65, 60, 39, 12, 39, 12, 0, 0, 0, 0, 8, 196, 104, 83, 153, 20, 72, 28, 8, 196, 100, 83,
+			153, 20, 72, 28, 8, 196, 92, 83, 153, 20, 72, 28, 0, 10, 65, 64, 48, 6, 37, 12, 37, 12, 0, 0, 0, 0, 0, 7, 65, 68,
+			49, 57, 40, 0, 0, 0, 0, 0, 7, 65, 72, 35, 53, 36, 0, 0, 0, 0, 0, 9, 65, 76, 6, 36, 12, 89, 37, 0, 0, 0,
+			0, 0, 10, 65, 80, 47, 6, 37, 12, 37, 12, 0, 0, 0, 6, 195, 92, 19, 192, 76, 0, 0, 8, 65, 84, 40, 12, 40, 12, 0,
+			0, 0, 0, 7, 195, 80, 242, 193, 72, 28, 0, 10, 65, 88, 84, 6, 37, 12, 37, 12, 0, 0, 0, 0, 0, 16, 69, 76, 82, 207,
+			48, 240, 89, 36, 49, 6, 108, 12, 55, 108, 0, 11, 65, 92, 72, 35, 71, 35, 55, 57, 40, 0, 0, 0, 0, 6, 195, 92, 18, 197,
+			76, 0, 17, 4, 95, 49, 77, 49, 23, 6, 89, 20, 6, 37, 49, 36, 47, 36, 0, 10, 65, 96, 36, 49, 6, 36, 89, 36, 0, 0,
+			25, 4, 95, 49, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 55, 36, 49, 106, 6, 39, 12, 55, 39, 0, 0, 0, 6, 195, 76,
+			148, 201, 76, 0, 8, 65, 100, 58, 6, 35, 37, 0, 0, 0, 0, 0, 10, 65, 104, 88, 6, 36, 12, 47, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 5, 80, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			195, 32, 17, 9, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 147, 15, 76,
+			0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 112, 86, 100, 240, 8, 0, 0, 0, 0, 19, 4, 95, 50, 77, 49, 72, 37, 49, 6, 36,
+			47, 36, 48, 6, 36, 72, 37, 0, 0, 30, 4, 95, 50, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39,
+			12, 55, 39, 48, 6, 36, 72, 37, 0, 0, 0, 7, 196, 4, 145, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 32, 21,
+			1, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 8, 144, 72, 28, 0, 0, 0, 0, 0, 6, 195, 32, 146, 64, 72, 0, 19,
+			4, 95, 4, 16, 20, 83, 36, 12, 106, 36, 55, 40, 6, 35, 12, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95,
+			51, 77, 49, 72, 37, 49, 6, 36, 47, 36, 47, 6, 35, 12, 53, 39, 0, 0, 31, 4, 95, 51, 77, 50, 72, 37, 49, 6, 36, 47,
+			36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 47, 6, 35, 12, 53, 39, 0, 0, 0, 0, 0, 0, 0, 8, 196, 64, 147, 132,
+			36, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 37, 112, 80, 60, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 197, 89,
+			145, 78, 100, 80, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 53, 112, 64, 72, 28, 0, 0, 0, 13, 67, 80,
+			16, 129, 47, 10, 6, 35, 12, 71, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 45, 112, 76, 60, 8, 0, 0, 6,
+			194, 4, 240, 72, 8, 0, 0, 0, 9, 197, 53, 113, 78, 100, 80, 72, 28, 9, 197, 44, 21, 9, 44, 16, 72, 28, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 6, 195, 72, 83, 129, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 92, 19, 1, 44, 147, 137,
+			8, 0, 0, 0, 0, 0, 0, 17, 67, 41, 85, 64, 79, 4, 40, 12, 57, 35, 0, 8, 81, 121, 97, 32, 0, 8, 196, 80, 20, 129,
+			4, 76, 8, 10, 68, 80, 19, 135, 84, 91, 40, 0, 28, 0, 0, 0, 0, 0, 8, 197, 64, 19, 129, 64, 240, 8, 0, 0, 0, 0,
+			8, 197, 48, 18, 201, 56, 144, 8, 8, 197, 36, 225, 193, 92, 16, 8, 0, 6, 195, 100, 243, 129, 76, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 56, 224, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 133, 49, 5, 14, 25, 5, 72, 28,
+			0, 0, 6, 194, 24, 144, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 53, 77, 49, 72, 37, 49,
+			6, 36, 47, 36, 105, 6, 35, 12, 50, 39, 0, 0, 0, 0, 30, 4, 95, 53, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65,
+			35, 49, 106, 6, 39, 12, 55, 39, 105, 6, 35, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 51, 88, 65, 35, 89, 6, 39, 12, 65, 36,
+			47, 6, 35, 12, 53, 39, 0, 0, 14, 3, 95, 48, 67, 55, 36, 49, 106, 6, 39, 55, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 194, 48, 16, 72, 28, 0, 0, 19, 3, 95, 50, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 48, 36,
+			72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 51, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 47, 6, 35, 12, 53,
+			39, 0, 0, 0, 0, 21, 4, 95, 54, 77, 49, 72, 37, 49, 6, 36, 47, 36, 47, 89, 6, 36, 12, 55, 35, 0, 0, 7, 196, 45,
+			112, 89, 20, 8, 0, 0, 32, 4, 95, 54, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39,
+			47, 89, 6, 36, 12, 55, 35, 0, 0, 20, 3, 95, 55, 88, 65, 35, 89, 6, 39, 12, 65, 36, 91, 6, 40, 12, 48, 35, 0, 0,
+			19, 3, 95, 52, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95,
+			53, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 105, 6, 35, 12, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 88,
+			55, 36, 89, 6, 39, 12, 65, 36, 0, 0, 22, 3, 95, 54, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 47, 89, 6, 36, 12, 55,
+			35, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 50, 88, 65, 35, 89, 6, 39, 12, 65, 36, 48, 36, 72, 37, 0, 0, 20, 3,
+			95, 55, 67, 65, 35, 49, 106, 6, 39, 55, 39, 91, 6, 40, 12, 48, 35, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 73, 76,
+			0, 0, 22, 3, 95, 56, 67, 65, 35, 49, 106, 6, 39, 55, 39, 89, 37, 89, 58, 6, 35, 12, 37, 0, 0, 0, 0, 0, 0, 0,
+			0, 18, 3, 95, 52, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 42, 50, 36, 0, 0, 21, 3, 95, 57, 67, 65, 35, 49, 106, 6,
+			39, 55, 39, 89, 36, 67, 6, 35, 50, 36, 0, 0, 0, 0, 0, 0, 0, 6, 194, 56, 16, 72, 8, 0, 20, 3, 95, 53, 88, 65,
+			35, 89, 6, 39, 12, 65, 36, 105, 6, 35, 12, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 54, 88, 65, 35, 89,
+			6, 39, 12, 65, 36, 47, 89, 6, 36, 12, 55, 35, 0, 0, 0, 0, 0, 19, 4, 95, 55, 77, 49, 72, 37, 49, 6, 36, 47, 36,
+			91, 40, 12, 48, 35, 0, 0, 0, 0, 30, 4, 95, 55, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39,
+			12, 55, 39, 91, 40, 12, 48, 35, 0, 0, 10, 199, 36, 160, 80, 60, 181, 87, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,
+			95, 56, 88, 65, 35, 89, 6, 39, 12, 65, 36, 89, 37, 89, 58, 6, 35, 12, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3,
+			95, 57, 88, 65, 35, 89, 6, 39, 12, 65, 36, 89, 36, 67, 6, 35, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 64, 16, 72, 28, 6, 194, 64,
+			16, 72, 28, 0, 0, 0, 17, 69, 72, 19, 15, 44, 16, 53, 2, 35, 55, 6, 108, 12, 49, 35, 0, 0, 0, 0, 13, 68, 80, 128,
+			66, 4, 47, 6, 35, 12, 71, 35, 0, 0, 9, 197, 45, 112, 77, 8, 16, 72, 8, 0, 0, 7, 195, 52, 147, 128, 72, 28, 0, 6,
+			195, 92, 83, 129, 76, 6, 195, 8, 243, 129, 72, 16, 4, 95, 48, 77, 52, 23, 71, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 0,
+			16, 4, 95, 48, 77, 51, 23, 65, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 16, 4, 95, 48, 77, 49, 6, 89, 20, 6, 37, 49,
+			36, 47, 36, 0, 0, 0, 0, 8, 196, 8, 16, 68, 4, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 195, 100, 18, 197, 76, 0, 0, 0, 0, 0, 0, 12, 4, 95, 3, 9, 18, 49, 6, 36, 83, 35,
+			0, 32, 4, 95, 57, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 89, 36, 67, 6, 35,
+			50, 36, 0, 0, 0, 0, 21, 4, 95, 57, 77, 49, 72, 37, 49, 6, 36, 47, 36, 89, 36, 67, 6, 35, 50, 36, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 92, 85, 197, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45,
+			84, 213, 16, 144, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 225, 193, 60, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 147, 1, 72, 8, 0, 0,
+			0, 0, 7, 195, 8, 19, 9, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 45, 85, 193, 72, 8, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 40, 20, 15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 45, 80,
+			78, 104, 144, 64, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 92, 16, 72, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 36, 160, 80, 60, 8, 0, 0, 0, 0, 7, 195, 89, 144, 64, 72, 28, 0, 0, 0,
+			0, 22, 67, 45, 112, 64, 49, 58, 35, 15, 49, 4, 40, 58, 35, 0, 8, 81, 107, 117, 119, 97, 32, 7, 195, 45, 112, 64, 72, 28,
+			7, 195, 45, 112, 64, 72, 28, 0, 7, 196, 44, 148, 200, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 195, 45, 112, 79, 8, 0, 0, 0, 0, 0, 0, 6, 195, 48, 83, 129, 76, 28, 4, 95, 52, 77, 50, 72, 37, 49, 6, 36,
+			47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 42, 50, 36, 0, 0, 17, 4, 95, 52, 77, 49, 72, 37, 49, 6, 36, 47,
+			36, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 95, 51, 47, 6, 35, 12, 53, 39, 0, 0, 10, 2, 95, 50, 48,
+			6, 36, 72, 37, 0, 0, 8, 2, 95, 49, 47, 36, 36, 0, 0, 13, 2, 95, 48, 55, 36, 83, 6, 36, 12, 55, 35, 0, 0, 11,
+			2, 95, 55, 91, 6, 40, 12, 48, 35, 0, 0, 12, 2, 95, 54, 47, 89, 6, 36, 12, 55, 35, 0, 0, 11, 2, 95, 53, 105, 6,
+			35, 12, 50, 39, 0, 0, 9, 2, 95, 52, 6, 42, 50, 36, 0, 0, 0, 0, 12, 2, 95, 57, 89, 36, 67, 6, 35, 50, 36, 0,
+			0, 6, 194, 100, 16, 72, 28, 13, 2, 95, 56, 89, 37, 89, 58, 6, 35, 12, 37, 0, 0, 0, 0, 8, 197, 57, 146, 78, 100, 144,
+			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 8, 160, 64, 84, 84, 79, 6, 35, 0,
+			6, 195, 36, 192, 64, 8, 7, 195, 12, 128, 64, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 104, 16, 72, 28,
+			0, 0, 0, 8, 197, 64, 19, 79, 40, 16, 8, 0, 6, 195, 104, 18, 197, 76, 0, 7, 195, 36, 194, 64, 76, 8, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 20, 201, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 92, 19, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 195, 33, 82, 207, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 112, 67, 32, 240, 8, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 4, 208, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36, 194, 75, 92, 19, 66, 4, 8, 0, 0, 9, 198, 8, 17, 1, 48, 22, 65, 8,
+			0, 7, 195, 44, 19, 65, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 195, 100, 86, 69, 76, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 4, 3, 35, 0, 2, 32, 0, 8,
+			2, 17, 67, 0, 8, 17, 67, 0, 2, 115, 3, 35, 12, 0, 7, 6, 98, 0, 3, 82, 0, 7, 6, 99, 0, 3, 49, 0, 104, 3,
+			76, 0, 7, 6, 100, 0, 3, 72, 0, 104, 3, 86, 0, 7, 6, 101, 0, 3, 36, 0, 1, 115, 3, 37, 0, 101, 3, 37, 38, 36,
+			12, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 104, 3, 100, 0, 3, 106, 0, 8, 107, 3, 111, 0, 7, 6, 104, 0, 108,
+			3, 105, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 105, 3, 37, 12, 0, 7, 6, 106, 0, 3, 79, 0, 7, 6, 107, 0, 3,
+			49, 0, 104, 3, 101, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 4, 1, 25, 2, 21, 21, 3, 23, 65, 0, 1, 25, 2,
+			98, 21, 21, 0, 1, 25, 2, 118, 21, 21, 0, 1, 25, 2, 119, 21, 21, 0, 4, 1, 25, 2, 17, 67, 3, 41, 0, 8, 0, 4,
+			3, 65, 0, 2, 17, 65, 0, 7, 6, 110, 0, 8, 3, 42, 0, 4, 8, 2, 103, 3, 43, 0, 8, 2, 103, 21, 21, 0, 8, 2,
+			107, 0, 8, 2, 107, 21, 21, 0, 4, 3, 50, 0, 2, 17, 65, 0, 2, 21, 21, 0, 4, 2, 99, 104, 3, 67, 0, 2, 106, 0,
+			121, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 103, 0, 103, 39, 0, 7, 6, 111, 0, 111, 3, 39, 12, 0, 3, 108, 0, 7, 6,
+			112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0, 3, 53, 0, 7, 6, 115, 0, 3, 89, 0, 2, 101, 3, 89,
+			20, 0, 101, 8, 116, 3, 89, 37, 12, 0, 7, 6, 116, 0, 3, 47, 0, 115, 101, 110, 3, 47, 89, 6, 36, 12, 50, 0, 104, 3,
+			47, 107, 0, 108, 3, 105, 0, 108, 104, 3, 110, 0, 7, 6, 117, 0, 3, 40, 0, 4, 8, 100, 3, 40, 12, 0, 117, 0, 7, 6,
+			118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122,
+			0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3, 0, 42, 42, 3, 0, 42, 1, 42, 42, 2, 32, 3, 24, 0, 37, 3,
+			35, 89, 37, 55, 37, 65, 37, 35, 0, 195, 180, 3, 39, 0, 42, 3, 67, 39, 47, 35, 0, 36, 3, 72, 39, 55, 35, 0, 197, 161,
+			8, 116, 3, 76, 0, 4, 197, 161, 3, 91, 0, 197, 161, 8, 112, 2, 104, 0, 195, 170, 3, 109, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts47 = FileInMemory_createWithData (3415, reinterpret_cast<const char *> (&espeakdata_dicts47_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/nso_dict", 
+			U"nso");
+		Collection_addItem (me.peek(), espeakdata_dicts47.transfer());
 
-		static unsigned char espeakdata_dicts51_data[6173] = {
-			0, 4, 0, 0, 3, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 168, 164, 224, 169, 136,
-			224, 168, 168, 224, 169, 130, 224, 169, 176, 72, 0, 0, 0, 21, 12, 224, 168, 172, 224, 169, 139, 224, 168, 176, 224, 168, 161, 98, 111, 97,
-			114, 100, 0, 29, 0, 0, 0, 16, 4, 95, 100, 112, 116, 10, 72, 13, 89, 13, 65, 55, 6, 119, 0, 0, 0, 16, 140, 224, 168, 172,
-			224, 168, 191, 224, 168, 168, 224, 168, 190, 72, 8, 15, 140, 224, 168, 134, 224, 168, 170, 224, 168, 166, 224, 168, 190, 72, 0, 12, 137, 224,
-			168, 181, 224, 168, 191, 224, 168, 154, 72, 0, 0, 12, 137, 224, 168, 168, 224, 169, 130, 224, 169, 176, 72, 12, 137, 224, 168, 164, 224, 169,
-			130, 224, 169, 176, 72, 12, 137, 224, 168, 164, 224, 169, 130, 224, 169, 176, 72, 0, 0, 30, 18, 224, 168, 149, 224, 169, 128, 224, 168, 172,
-			224, 169, 139, 224, 168, 176, 224, 168, 161, 107, 101, 121, 98, 111, 97, 114, 100, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 137, 224, 168, 164, 224, 169, 177, 224, 168, 149, 72, 13, 1, 37, 48, 51, 6, 109, 47, 113, 91, 13, 47, 0, 0, 0, 0, 0, 0,
-			9, 1, 42, 47, 6, 35, 51, 35, 0, 0, 10, 1, 43, 79, 6, 109, 40, 65, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			15, 140, 224, 168, 164, 224, 169, 135, 224, 168, 176, 224, 168, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 61, 71, 13, 51, 6,
-			35, 71, 13, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 168, 176, 224, 168, 185, 224, 169, 128, 72,
-			0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 168, 176, 224, 168, 185, 224, 169, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 184,
-			224, 168, 190, 224, 168, 161, 224, 169, 128, 72, 0, 0, 0, 0, 0, 0, 21, 146, 224, 168, 164, 224, 169, 129, 224, 168, 185, 224, 168, 190,
-			224, 168, 161, 224, 169, 128, 72, 0, 15, 140, 224, 168, 184, 224, 168, 190, 224, 168, 161, 224, 169, 135, 72, 0, 0, 0, 15, 140, 224, 168,
-			181, 224, 168, 191, 224, 169, 177, 224, 168, 154, 72, 0, 0, 0, 21, 146, 224, 168, 164, 224, 169, 129, 224, 168, 185, 224, 168, 190, 224, 168,
-			161, 224, 169, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 168, 134, 224, 168, 170, 224, 168, 168, 224, 169, 130, 224,
-			169, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 155, 224, 168, 137, 224, 168, 168, 224, 169, 141, 224, 168, 185, 224,
-			168, 190, 224, 168, 130, 224, 168, 168, 224, 169, 130, 224, 169, 176, 72, 9, 134, 224, 168, 137, 224, 168, 185, 72, 9, 134, 224, 168, 137, 224,
-			168, 185, 72, 30, 155, 224, 168, 135, 224, 168, 168, 224, 169, 141, 224, 168, 185, 224, 168, 190, 224, 168, 130, 224, 168, 168, 224, 169, 130, 224,
-			169, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 168, 176, 224, 168, 185, 224, 168, 190, 72, 0, 0, 0, 0, 9, 134, 224,
-			168, 135, 224, 168, 185, 72, 9, 134, 224, 168, 135, 224, 168, 185, 72, 0, 0, 0, 0, 0, 36, 24, 224, 168, 184, 224, 169, 139, 224, 168,
-			171, 224, 168, 159, 224, 168, 181, 224, 168, 191, 224, 168, 133, 224, 168, 176, 115, 111, 102, 116, 119, 97, 114, 101, 0, 29, 0, 0, 15, 140,
-			224, 168, 184, 224, 168, 190, 224, 168, 161, 224, 168, 190, 72, 0, 0, 0, 0, 0, 0, 21, 146, 224, 168, 164, 224, 169, 129, 224, 168, 185,
-			224, 168, 190, 224, 168, 161, 224, 168, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 57, 132, 68, 47, 6, 35, 55, 37, 0, 10, 3, 95, 50, 49, 113, 49, 12, 37, 0,
-			0, 13, 3, 95, 51, 56, 109, 141, 6, 109, 47, 12, 37, 0, 10, 3, 95, 50, 48, 84, 6, 37, 108, 0, 0, 10, 3, 95, 50, 51,
-			47, 6, 36, 37, 0, 0, 19, 4, 95, 224, 168, 135, 6, 113, 51, 113, 15, 89, 113, 107, 6, 35, 51, 37, 0, 10, 3, 95, 50, 50,
-			71, 6, 35, 37, 0, 0, 18, 4, 95, 224, 168, 134, 6, 116, 51, 109, 15, 49, 109, 50, 50, 6, 35, 0, 12, 3, 95, 50, 53, 48,
-			6, 109, 80, 12, 37, 0, 0, 11, 3, 95, 50, 52, 80, 6, 121, 84, 37, 0, 0, 12, 3, 95, 50, 55, 89, 13, 47, 6, 35, 37,
-			0, 0, 12, 3, 95, 50, 54, 143, 6, 109, 71, 12, 37, 0, 0, 13, 3, 95, 51, 49, 113, 49, 6, 109, 47, 12, 37, 0, 0, 10,
-			3, 95, 51, 48, 47, 6, 37, 108, 0, 0, 12, 3, 95, 51, 51, 47, 6, 36, 47, 12, 37, 0, 0, 12, 3, 95, 51, 50, 71, 6,
-			109, 47, 12, 37, 0, 0, 12, 3, 95, 51, 53, 48, 6, 116, 68, 47, 37, 0, 0, 12, 3, 95, 51, 52, 80, 6, 121, 68, 47, 37,
-			0, 0, 12, 3, 95, 51, 55, 89, 6, 116, 68, 47, 37, 0, 0, 12, 3, 95, 51, 54, 143, 6, 109, 47, 12, 37, 0, 0, 0, 0,
-			0, 18, 143, 224, 168, 137, 224, 168, 184, 224, 168, 164, 224, 169, 139, 224, 168, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 3, 95, 55, 57, 122, 66, 6, 35, 89, 37, 0, 13, 3, 95, 54, 49, 113, 49, 6, 35, 108, 13, 139, 0, 0, 14, 3,
-			95, 55, 56, 109, 141, 6, 109, 47, 12, 13, 51, 0, 11, 3, 95, 54, 48, 89, 6, 109, 141, 12, 0, 0, 9, 3, 95, 48, 67, 89,
-			6, 121, 0, 14, 3, 95, 54, 51, 47, 13, 51, 6, 126, 108, 13, 139, 0, 0, 12, 3, 95, 54, 50, 71, 6, 35, 108, 13, 139, 0,
-			0, 12, 3, 95, 54, 53, 48, 6, 127, 108, 13, 139, 0, 0, 12, 3, 95, 54, 52, 80, 6, 130, 108, 13, 139, 0, 0, 14, 3, 95,
-			54, 55, 89, 13, 47, 6, 35, 108, 13, 139, 0, 0, 13, 3, 95, 54, 54, 143, 36, 6, 35, 108, 13, 139, 0, 0, 14, 3, 95, 55,
-			49, 113, 49, 6, 109, 47, 12, 13, 51, 0, 0, 13, 3, 95, 55, 48, 89, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 51,
-			47, 13, 108, 6, 36, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 50, 71, 13, 108, 6, 109, 47, 12, 13, 51, 0, 0, 9, 134, 224,
-			168, 166, 224, 169, 128, 72, 15, 3, 95, 55, 53, 48, 13, 79, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 52, 80, 121, 108,
-			6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 55, 89, 13, 47, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 54, 143,
-			113, 108, 6, 109, 47, 12, 13, 51, 0, 0, 11, 3, 95, 49, 57, 6, 122, 50, 50, 37, 0, 0, 9, 134, 224, 168, 166, 224, 169, 135,
-			72, 12, 3, 95, 49, 56, 109, 141, 6, 35, 51, 128, 0, 0, 19, 4, 95, 224, 168, 148, 6, 116, 51, 109, 15, 49, 109, 50, 121, 51,
-			6, 35, 0, 0, 0, 0, 0, 20, 4, 95, 224, 168, 144, 6, 116, 51, 109, 15, 72, 122, 55, 6, 35, 84, 35, 65, 0, 0, 17, 4,
-			95, 224, 168, 147, 6, 122, 51, 109, 15, 107, 39, 51, 6, 35, 0, 0, 13, 3, 95, 50, 57, 122, 50, 6, 109, 47, 12, 37, 0, 12,
-			3, 95, 49, 49, 81, 113, 6, 35, 51, 128, 0, 0, 11, 3, 95, 50, 56, 109, 141, 6, 35, 37, 0, 10, 3, 95, 49, 48, 72, 6,
-			109, 89, 0, 0, 11, 3, 95, 49, 51, 47, 6, 36, 51, 128, 0, 0, 18, 4, 95, 224, 168, 143, 6, 113, 51, 113, 15, 55, 6, 35,
-			84, 35, 65, 0, 11, 3, 95, 49, 50, 71, 6, 35, 51, 128, 0, 0, 14, 3, 95, 49, 53, 48, 6, 109, 50, 72, 13, 51, 128, 0,
-			0, 18, 4, 95, 224, 168, 137, 6, 122, 51, 109, 15, 6, 121, 50, 49, 35, 51, 0, 11, 3, 95, 49, 52, 80, 6, 121, 72, 128, 0,
-			0, 19, 4, 95, 224, 168, 136, 6, 113, 51, 113, 15, 71, 113, 107, 6, 35, 51, 37, 0, 13, 3, 95, 49, 55, 89, 13, 47, 6, 35,
-			51, 128, 0, 0, 11, 3, 95, 49, 54, 89, 6, 39, 62, 128, 0, 0, 21, 12, 224, 168, 136, 224, 168, 174, 224, 169, 135, 224, 168, 178,
-			101, 109, 97, 105, 108, 0, 29, 21, 4, 95, 224, 168, 138, 6, 122, 51, 109, 15, 72, 122, 55, 6, 116, 50, 49, 35, 51, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 13, 3, 95, 52, 57, 122, 50, 6, 109, 50, 79, 35, 0, 0, 12, 3, 224, 165, 164, 140, 6, 109, 50, 140,
-			37, 0, 15, 3, 95, 52, 56, 4, 13, 52, 13, 47, 6, 35, 55, 37, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 53, 57, 122,
-			66, 6, 35, 141, 0, 14, 3, 95, 52, 49, 113, 49, 13, 47, 6, 35, 55, 37, 0, 0, 16, 3, 95, 53, 56, 4, 13, 141, 13, 84,
-			6, 109, 50, 79, 35, 0, 11, 3, 95, 52, 48, 80, 6, 35, 55, 37, 0, 0, 15, 3, 95, 52, 51, 47, 13, 51, 13, 47, 6, 35,
-			55, 37, 0, 0, 12, 3, 95, 52, 50, 71, 36, 6, 35, 55, 37, 0, 0, 14, 3, 95, 52, 53, 48, 13, 50, 47, 6, 35, 55, 37,
-			0, 0, 13, 3, 95, 52, 52, 80, 122, 47, 6, 35, 55, 37, 0, 0, 14, 3, 95, 52, 55, 89, 13, 50, 47, 6, 35, 55, 37, 0,
-			0, 12, 3, 95, 52, 54, 143, 113, 6, 35, 55, 37, 0, 0, 14, 3, 95, 54, 57, 122, 66, 6, 109, 47, 12, 13, 51, 0, 16, 3,
-			95, 53, 49, 4, 13, 49, 13, 84, 6, 109, 50, 79, 35, 0, 0, 14, 3, 95, 54, 56, 4, 13, 141, 6, 35, 108, 13, 139, 0, 13,
-			3, 95, 53, 48, 48, 13, 50, 79, 6, 35, 108, 0, 0, 17, 3, 95, 53, 51, 47, 4, 13, 51, 13, 84, 6, 109, 50, 79, 35, 0,
-			0, 14, 3, 95, 53, 50, 71, 13, 84, 6, 109, 50, 79, 35, 0, 0, 17, 3, 95, 53, 53, 48, 4, 13, 80, 13, 84, 6, 109, 50,
-			79, 35, 0, 0, 14, 3, 95, 53, 52, 80, 122, 51, 6, 109, 50, 79, 35, 0, 0, 17, 3, 95, 53, 55, 89, 4, 13, 47, 13, 84,
-			6, 109, 50, 79, 35, 0, 0, 14, 3, 95, 53, 54, 143, 13, 48, 6, 109, 50, 79, 35, 0, 0, 0, 0, 9, 134, 224, 168, 166, 224,
-			168, 190, 72, 0, 0, 0, 0, 12, 3, 95, 63, 63, 6, 109, 145, 12, 13, 51, 0, 0, 0, 15, 140, 224, 168, 135, 224, 168, 184, 224,
-			168, 166, 224, 168, 190, 72, 15, 3, 95, 56, 57, 122, 50, 6, 35, 50, 13, 84, 4, 126, 0, 0, 12, 3, 95, 56, 56, 109, 141, 6,
-			35, 89, 37, 0, 0, 0, 0, 0, 12, 137, 224, 168, 164, 224, 169, 139, 224, 168, 130, 72, 0, 0, 0, 9, 134, 224, 168, 184, 224, 169,
-			128, 72, 16, 3, 95, 57, 57, 50, 13, 52, 6, 125, 50, 13, 84, 4, 126, 0, 15, 3, 95, 56, 49, 4, 113, 49, 113, 38, 6, 35,
-			89, 37, 0, 0, 14, 3, 95, 57, 56, 109, 141, 6, 35, 50, 13, 84, 126, 0, 11, 3, 95, 56, 48, 6, 109, 89, 89, 37, 0, 0,
-			16, 3, 95, 56, 51, 47, 4, 13, 51, 113, 38, 6, 35, 89, 37, 0, 0, 18, 143, 224, 168, 135, 224, 168, 184, 224, 168, 164, 224, 169,
-			139, 224, 168, 130, 72, 13, 3, 95, 56, 50, 71, 113, 38, 6, 35, 89, 37, 0, 0, 13, 3, 95, 56, 53, 48, 13, 80, 6, 35, 89,
-			37, 0, 0, 13, 3, 95, 56, 52, 80, 122, 51, 6, 35, 89, 37, 0, 0, 13, 3, 95, 56, 55, 89, 13, 47, 6, 35, 89, 37, 0,
-			0, 13, 3, 95, 56, 54, 143, 113, 38, 6, 35, 89, 37, 0, 0, 15, 3, 95, 57, 49, 113, 49, 6, 35, 50, 13, 84, 4, 126, 0,
-			0, 12, 3, 95, 57, 48, 50, 6, 109, 71, 12, 36, 0, 0, 16, 3, 95, 57, 51, 47, 13, 51, 6, 128, 50, 13, 84, 4, 126, 0,
-			0, 14, 3, 95, 57, 50, 71, 6, 35, 50, 13, 84, 4, 126, 0, 0, 16, 3, 95, 57, 53, 48, 13, 80, 6, 35, 50, 13, 84, 4,
-			126, 0, 0, 16, 3, 95, 57, 52, 80, 122, 51, 6, 35, 50, 13, 84, 4, 126, 0, 0, 15, 3, 95, 57, 55, 89, 13, 47, 6, 35,
-			50, 13, 84, 126, 0, 0, 14, 3, 95, 57, 54, 143, 113, 6, 35, 50, 13, 84, 126, 0, 0, 10, 3, 224, 168, 133, 6, 116, 51, 109,
-			0, 12, 3, 224, 169, 141, 107, 109, 55, 109, 50, 47, 0, 0, 13, 3, 224, 169, 140, 49, 109, 50, 6, 121, 51, 35, 0, 0, 0, 0,
-			0, 13, 3, 224, 169, 136, 72, 13, 55, 6, 35, 84, 128, 0, 0, 11, 3, 224, 169, 139, 107, 39, 51, 6, 35, 0, 12, 3, 224, 168,
-			131, 84, 37, 89, 35, 51, 81, 0, 0, 12, 3, 224, 168, 130, 71, 113, 50, 72, 6, 37, 0, 0, 0, 0, 11, 3, 224, 169, 135, 55,
-			6, 35, 84, 128, 0, 0, 0, 11, 3, 224, 169, 129, 121, 50, 49, 35, 51, 0, 0, 13, 3, 224, 169, 128, 71, 113, 107, 6, 35, 51,
-			37, 0, 0, 0, 15, 3, 224, 169, 130, 72, 122, 55, 6, 116, 50, 49, 35, 51, 0, 0, 9, 134, 224, 168, 184, 224, 168, 168, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 6, 109, 51, 13, 71, 0, 0, 13, 4, 95, 48, 77,
-			53, 145, 6, 109, 51, 13, 71, 0, 0, 12, 4, 95, 48, 77, 50, 55, 6, 109, 145, 12, 0, 0, 13, 4, 95, 48, 77, 51, 49, 6,
-			109, 51, 39, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 108, 13, 79, 6, 35, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3,
-			224, 168, 190, 49, 109, 50, 50, 6, 35, 0, 0, 13, 3, 224, 168, 191, 89, 113, 107, 6, 35, 51, 37, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 224, 169, 178, 6, 113, 51, 113, 0, 0, 10, 3, 224, 169, 179, 6,
-			122, 51, 109, 0, 0, 12, 3, 224, 169, 176, 47, 113, 48, 48, 6, 37, 0, 0, 11, 3, 224, 169, 177, 109, 72, 72, 109, 49, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 168, 174, 224, 169, 136, 224, 168, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 168, 185, 224, 168, 190, 224, 168,
-			130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 174, 224, 169, 135, 224, 168, 176, 224, 169, 135, 72, 0,
-			0, 0, 0, 0, 15, 140, 224, 168, 174, 224, 169, 135, 224, 168, 176, 224, 169, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 137, 224, 168, 184, 224, 168, 166, 224, 169,
-			128, 72, 0, 0, 5, 131, 239, 187, 191, 0, 15, 140, 224, 168, 137, 224, 168, 184, 224, 168, 166, 224, 169, 135, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 174, 224, 169, 135, 224, 168, 176, 224, 168, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 9, 134, 224, 168, 134, 224, 168, 170, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 137, 224, 168, 184, 224, 168, 166, 224, 168, 190, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 168, 137, 224, 168, 168, 224, 169, 141, 224, 168,
-			185, 224, 168, 190, 224, 168, 130, 224, 168, 166, 224, 169, 128, 72, 0, 0, 0, 27, 152, 224, 168, 137, 224, 168, 168, 224, 169, 141, 224, 168,
-			185, 224, 168, 190, 224, 168, 130, 224, 168, 166, 224, 169, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 168, 137, 224, 168, 168, 224, 169, 141, 224,
-			168, 185, 224, 168, 190, 224, 168, 130, 224, 168, 166, 224, 168, 190, 72, 27, 152, 224, 168, 135, 224, 168, 168, 224, 169, 141, 224, 168, 185, 224,
-			168, 190, 224, 168, 130, 224, 168, 166, 224, 168, 190, 72, 0, 0, 0, 0, 0, 18, 143, 224, 168, 174, 224, 169, 136, 224, 168, 168, 224, 169,
-			130, 224, 169, 176, 72, 9, 2, 95, 51, 47, 6, 125, 50, 0, 0, 8, 2, 95, 50, 72, 6, 39, 0, 0, 9, 2, 95, 49, 6, 113,
-			49, 12, 0, 0, 10, 2, 95, 48, 88, 6, 37, 51, 39, 0, 0, 10, 2, 95, 55, 89, 6, 109, 47, 12, 0, 0, 8, 2, 95, 54,
-			143, 6, 36, 0, 0, 24, 149, 224, 168, 164, 224, 169, 129, 224, 168, 185, 224, 168, 190, 224, 168, 168, 224, 169, 130, 224, 169, 176, 72, 10,
-			2, 95, 53, 48, 6, 109, 50, 79, 0, 0, 9, 2, 95, 52, 80, 6, 35, 51, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 130, 0,
-			0, 9, 2, 95, 56, 6, 109, 141, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 168, 164, 224, 169, 130, 224, 168, 184, 224, 169, 128, 224, 168, 130, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 168, 184,
-			224, 168, 190, 224, 168, 168, 224, 169, 130, 224, 169, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 133, 224, 168, 184,
-			224, 169, 128, 224, 168, 130, 72, 0, 0, 0, 0, 0, 0, 15, 140, 224, 168, 134, 224, 168, 170, 224, 168, 166, 224, 169, 128, 72, 0, 15,
-			140, 224, 168, 134, 224, 168, 170, 224, 168, 166, 224, 169, 135, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 137, 224, 168, 185, 224, 169, 136, 224, 168, 130, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 168, 185,
-			224, 168, 168, 72, 0, 0, 0, 0, 0, 9, 134, 224, 168, 185, 224, 169, 139, 72, 0, 0, 0, 9, 134, 224, 168, 185, 224, 169, 136, 72,
-			0, 0, 0, 6, 20, 0, 0, 0, 102, 10, 0, 0, 48, 0, 0, 0, 103, 10, 0, 0, 49, 0, 0, 0, 104, 10, 0, 0, 50, 0,
-			0, 0, 105, 10, 0, 0, 51, 0, 0, 0, 106, 10, 0, 0, 52, 0, 0, 0, 107, 10, 0, 0, 53, 0, 0, 0, 108, 10, 0, 0,
-			54, 0, 0, 0, 109, 10, 0, 0, 55, 0, 0, 0, 110, 10, 0, 0, 56, 0, 0, 0, 111, 10, 0, 0, 57, 0, 0, 0, 230, 10,
-			0, 0, 48, 0, 0, 0, 231, 10, 0, 0, 49, 0, 0, 0, 232, 10, 0, 0, 50, 0, 0, 0, 233, 10, 0, 0, 51, 0, 0, 0,
-			234, 10, 0, 0, 52, 0, 0, 0, 235, 10, 0, 0, 53, 0, 0, 0, 236, 10, 0, 0, 54, 0, 0, 0, 237, 10, 0, 0, 55, 0,
-			0, 0, 238, 10, 0, 0, 56, 0, 0, 0, 239, 10, 0, 0, 57, 0, 0, 0, 56, 10, 60, 10, 54, 10, 0, 0, 50, 10, 60, 10,
-			51, 10, 0, 0, 22, 10, 60, 10, 89, 10, 0, 0, 23, 10, 60, 10, 90, 10, 0, 0, 28, 10, 60, 10, 91, 10, 0, 0, 43, 10,
-			60, 10, 94, 10, 0, 0, 5, 10, 72, 10, 16, 10, 0, 0, 5, 10, 62, 10, 6, 10, 0, 0, 5, 10, 76, 10, 20, 10, 0, 0,
-			114, 10, 64, 10, 8, 10, 0, 0, 114, 10, 63, 10, 7, 10, 0, 0, 114, 10, 71, 10, 15, 10, 0, 0, 115, 10, 65, 10, 9, 10,
-			0, 0, 115, 10, 66, 10, 10, 10, 0, 0, 0, 0, 0, 0, 6, 1, 3, 0, 3, 68, 0, 7, 6, 1, 4, 0, 3, 107, 0, 7,
-			6, 1, 6, 0, 3, 4, 109, 0, 4, 224, 168, 130, 3, 129, 0, 224, 169, 176, 0, 7, 6, 1, 7, 0, 3, 35, 0, 4, 224, 168,
-			130, 3, 128, 0, 224, 169, 176, 0, 7, 6, 1, 8, 0, 3, 113, 0, 4, 224, 168, 130, 3, 125, 0, 224, 169, 176, 0, 7, 6, 1,
-			9, 0, 3, 37, 0, 4, 224, 168, 130, 3, 124, 0, 224, 169, 176, 0, 7, 6, 1, 10, 0, 3, 122, 0, 4, 224, 168, 130, 3, 132,
-			0, 224, 169, 176, 0, 7, 6, 1, 11, 0, 3, 40, 0, 4, 224, 168, 130, 3, 133, 0, 224, 169, 176, 0, 7, 6, 1, 16, 0, 3,
-			36, 0, 4, 224, 168, 130, 3, 126, 0, 224, 169, 176, 0, 7, 6, 1, 17, 0, 3, 116, 0, 4, 224, 168, 130, 3, 127, 0, 224, 169,
-			176, 0, 7, 6, 1, 20, 0, 3, 39, 0, 4, 224, 168, 130, 3, 131, 0, 224, 169, 176, 0, 7, 6, 1, 21, 0, 3, 121, 0, 4,
-			224, 168, 130, 3, 130, 0, 224, 169, 176, 0, 7, 6, 1, 22, 0, 4, 1, 21, 2, 32, 3, 49, 0, 2, 17, 66, 0, 4, 1, 177,
-			169, 224, 2, 17, 66, 3, 49, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 49, 12, 109, 0, 3, 49, 109, 0, 7,
-			6, 1, 23, 0, 4, 1, 21, 2, 32, 3, 145, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 145, 12, 0, 1, 177,
-			169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 145, 12, 109, 0, 3, 145, 109, 0, 7, 6, 1, 24, 0, 4, 1, 21, 2, 32, 3, 81,
-			0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 81, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 81,
-			12, 109, 0, 3, 81, 109, 0, 7, 6, 1, 25, 0, 8, 2, 17, 66, 3, 49, 148, 0, 8, 3, 49, 148, 109, 0, 4, 1, 21, 2,
-			32, 3, 146, 0, 2, 17, 66, 0, 3, 146, 109, 0, 7, 6, 1, 26, 0, 4, 1, 21, 2, 32, 3, 68, 0, 2, 17, 66, 0, 4,
-			1, 177, 169, 224, 2, 17, 66, 3, 68, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 68, 12, 109, 0, 3, 68, 109,
-			0, 7, 6, 1, 27, 0, 4, 1, 21, 2, 32, 3, 80, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 80, 12, 0,
-			1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 80, 12, 109, 0, 3, 80, 109, 0, 7, 6, 1, 28, 0, 4, 1, 21, 2, 32,
-			3, 143, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 143, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224,
-			3, 143, 12, 109, 0, 3, 143, 109, 0, 7, 6, 1, 29, 0, 4, 1, 21, 2, 32, 3, 79, 0, 2, 17, 66, 0, 4, 1, 177, 169,
-			224, 2, 17, 66, 3, 79, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 79, 12, 109, 0, 3, 79, 109, 0, 7, 6,
-			1, 30, 0, 8, 2, 17, 66, 3, 80, 148, 0, 8, 3, 80, 148, 109, 0, 4, 1, 21, 2, 32, 3, 144, 0, 2, 17, 66, 0, 3,
-			144, 109, 0, 7, 6, 1, 31, 0, 4, 1, 21, 2, 32, 3, 67, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 67,
-			12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 67, 12, 109, 0, 3, 67, 109, 0, 7, 6, 1, 32, 0, 4, 1, 21,
-			2, 32, 3, 139, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 139, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177,
-			169, 224, 3, 139, 12, 109, 0, 3, 139, 109, 0, 7, 6, 1, 33, 0, 4, 1, 21, 2, 32, 3, 141, 0, 2, 17, 66, 0, 4, 1,
-			177, 169, 224, 2, 17, 66, 3, 141, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 141, 12, 109, 0, 3, 141, 109, 0,
-			7, 6, 1, 34, 0, 4, 1, 21, 2, 32, 3, 140, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 140, 12, 0, 1,
-			177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 140, 12, 109, 0, 3, 140, 109, 0, 7, 6, 1, 35, 0, 8, 2, 17, 66, 3, 139,
-			0, 8, 3, 139, 148, 109, 0, 4, 1, 21, 2, 32, 3, 142, 0, 2, 17, 66, 0, 3, 142, 109, 0, 7, 6, 1, 36, 0, 4, 1,
-			21, 2, 32, 3, 66, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 66, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1,
-			177, 169, 224, 3, 66, 12, 109, 0, 3, 66, 109, 0, 7, 6, 1, 37, 0, 4, 1, 21, 2, 32, 3, 47, 0, 2, 17, 66, 0, 4,
-			1, 177, 169, 224, 2, 17, 66, 3, 47, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 47, 12, 109, 0, 3, 47, 109,
-			0, 7, 6, 1, 38, 0, 4, 1, 21, 2, 32, 3, 25, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 25, 12, 0,
-			1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 25, 12, 109, 0, 3, 25, 109, 0, 7, 6, 1, 39, 0, 4, 1, 21, 2, 32,
-			3, 72, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 72, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224,
-			3, 72, 12, 109, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 8, 2, 17, 66, 3, 47, 148, 0, 8, 3, 47, 148, 109, 0, 4, 1,
-			21, 2, 32, 3, 138, 0, 2, 17, 66, 0, 3, 138, 109, 0, 7, 6, 1, 41, 0, 4, 1, 21, 2, 32, 3, 50, 0, 2, 17, 66,
-			0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 50, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 50, 12, 109, 0, 3,
-			50, 109, 0, 7, 6, 1, 43, 0, 4, 1, 21, 2, 32, 3, 48, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 48,
-			12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 48, 12, 109, 0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 4, 1, 21,
-			2, 32, 3, 136, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 136, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177,
-			169, 224, 3, 136, 12, 109, 0, 3, 136, 109, 0, 7, 6, 1, 45, 0, 4, 1, 21, 2, 32, 3, 71, 0, 2, 17, 66, 0, 4, 1,
-			177, 169, 224, 2, 17, 66, 3, 71, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 71, 12, 109, 0, 3, 71, 109, 0,
-			7, 6, 1, 46, 0, 8, 2, 17, 66, 3, 48, 148, 0, 8, 3, 48, 148, 109, 0, 4, 1, 21, 2, 32, 3, 137, 0, 2, 17, 66,
-			0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 4, 1, 21, 2, 32, 3, 65, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66,
-			3, 65, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 65, 12, 109, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 4,
-			1, 21, 2, 32, 3, 57, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 57, 12, 0, 1, 177, 169, 224, 2, 32, 0,
-			1, 177, 169, 224, 3, 57, 12, 109, 0, 3, 57, 109, 0, 7, 6, 1, 49, 0, 4, 1, 21, 2, 32, 3, 34, 0, 2, 17, 66, 0,
-			4, 1, 177, 169, 224, 2, 17, 66, 3, 34, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 34, 12, 109, 0, 3, 34,
-			109, 0, 7, 6, 1, 51, 0, 4, 1, 21, 2, 32, 3, 55, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 55, 12,
-			0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 55, 12, 109, 0, 3, 55, 109, 0, 7, 6, 1, 52, 0, 4, 1, 21, 2,
-			32, 3, 62, 0, 2, 17, 66, 0, 3, 62, 109, 0, 7, 6, 1, 54, 0, 4, 1, 21, 2, 32, 3, 84, 0, 2, 17, 66, 0, 4,
-			1, 177, 169, 224, 2, 17, 66, 3, 84, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 84, 12, 109, 0, 3, 84, 109,
-			0, 7, 6, 1, 55, 0, 4, 1, 21, 2, 32, 3, 91, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 91, 12, 0,
-			1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 91, 12, 109, 0, 3, 91, 109, 0, 7, 6, 1, 57, 0, 4, 1, 21, 2, 32,
-			3, 89, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 89, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224,
-			3, 89, 12, 109, 0, 3, 89, 109, 0, 7, 6, 1, 58, 0, 4, 1, 21, 2, 32, 3, 108, 0, 2, 17, 66, 0, 3, 108, 109, 0,
-			7, 6, 1, 61, 0, 3, 0, 7, 6, 1, 63, 0, 3, 35, 0, 4, 224, 168, 130, 3, 128, 0, 224, 169, 176, 0, 7, 6, 1, 64,
-			0, 3, 113, 0, 4, 224, 168, 130, 3, 125, 0, 224, 169, 176, 0, 7, 6, 1, 65, 0, 3, 37, 0, 4, 224, 168, 130, 3, 124, 0,
-			224, 169, 176, 0, 7, 6, 1, 66, 0, 3, 122, 0, 4, 224, 168, 130, 3, 132, 0, 224, 169, 176, 0, 7, 6, 1, 67, 0, 3, 40,
-			0, 4, 224, 168, 130, 3, 133, 0, 224, 169, 176, 0, 7, 6, 1, 72, 0, 3, 36, 0, 4, 224, 168, 130, 3, 126, 0, 224, 169, 176,
-			0, 7, 6, 1, 73, 0, 3, 116, 0, 4, 224, 168, 130, 3, 127, 0, 224, 169, 176, 0, 7, 6, 1, 76, 0, 3, 39, 0, 4, 224,
-			168, 130, 3, 131, 0, 224, 169, 176, 0, 7, 6, 1, 77, 0, 3, 121, 0, 4, 224, 168, 130, 3, 130, 0, 224, 169, 176, 0, 7, 6,
-			1, 78, 0, 3, 0, 7, 6, 1, 90, 0, 4, 1, 21, 2, 32, 3, 101, 0, 2, 17, 66, 0, 3, 101, 109, 0, 7, 6, 1, 91,
-			0, 4, 1, 21, 2, 32, 3, 100, 0, 2, 17, 66, 0, 3, 100, 109, 0, 7, 6, 1, 92, 0, 4, 1, 21, 2, 32, 3, 88, 0,
-			2, 17, 66, 0, 3, 88, 109, 0, 7, 6, 1, 93, 0, 4, 1, 21, 2, 32, 3, 70, 0, 2, 17, 66, 0, 3, 70, 109, 0, 7,
-			6, 1, 95, 0, 4, 1, 21, 2, 32, 3, 83, 0, 2, 17, 66, 0, 3, 83, 109, 0, 7, 6, 1, 113, 0, 3, 50, 0, 7, 6,
-			1, 114, 0, 3, 0, 7, 6, 1, 115, 0, 3, 37, 0, 7, 6, 1, 116, 0, 3, 40, 0, 7, 6, 224, 171, 0, 160, 3, 44, 0,
-			7, 6, 0, 37, 3, 48, 109, 89, 116, 50, 47, 0, 36, 3, 72, 121, 55, 109, 51, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts51 = FileInMemory_createWithData (6172, reinterpret_cast<const char *> (&espeakdata_dicts51_data), 
-			U"espeak-1.48.04-source/espeak-data/pa_dict", 
+		static unsigned char espeakdata_dicts48_data[5257] = {
+			0, 4, 0, 0, 113, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 28, 18, 224, 168, 149, 224, 169, 128, 224, 168, 172, 224, 169, 139, 224, 168, 176, 224, 168, 161, 49, 6, 112, 71, 39,
+			51, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 24, 224, 168,
+			184, 224, 169, 139, 224, 168, 171, 224, 168, 159, 224, 168, 181, 224, 168, 191, 224, 168, 133, 224, 168, 176, 89, 6, 121, 83, 47, 58, 116, 51,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 4, 16, 20, 10, 72, 121, 138, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 51, 57, 122, 50, 13, 47, 6, 35, 55, 37,
+			0, 10, 3, 95, 50, 49, 113, 49, 12, 37, 0, 0, 13, 3, 95, 51, 56, 109, 142, 6, 109, 47, 12, 37, 0, 10, 3, 95, 50, 48,
+			84, 6, 37, 108, 0, 0, 10, 3, 95, 50, 51, 47, 6, 36, 37, 0, 0, 19, 4, 95, 224, 168, 135, 6, 113, 51, 113, 15, 89, 113,
+			107, 6, 35, 51, 37, 0, 10, 3, 95, 50, 50, 71, 6, 35, 37, 0, 0, 18, 4, 95, 224, 168, 134, 6, 116, 51, 109, 15, 49, 109,
+			50, 50, 6, 35, 0, 12, 3, 95, 50, 53, 48, 6, 109, 50, 145, 37, 0, 0, 11, 3, 95, 50, 52, 80, 6, 121, 84, 37, 0, 0,
+			12, 3, 95, 50, 55, 89, 13, 47, 6, 35, 37, 0, 0, 12, 3, 95, 50, 54, 144, 6, 109, 71, 12, 37, 0, 0, 13, 3, 95, 51,
+			49, 113, 49, 6, 109, 47, 12, 37, 0, 0, 10, 3, 95, 51, 48, 47, 6, 37, 108, 0, 0, 11, 3, 95, 51, 51, 47, 6, 36, 47,
+			37, 0, 0, 12, 3, 95, 51, 50, 71, 6, 109, 47, 12, 37, 0, 0, 11, 3, 95, 51, 53, 48, 6, 127, 47, 37, 0, 0, 11, 3,
+			95, 51, 52, 80, 6, 130, 47, 37, 0, 0, 11, 3, 95, 51, 55, 89, 6, 127, 47, 37, 0, 0, 12, 3, 95, 51, 54, 144, 6, 109,
+			47, 12, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 226, 130, 185, 34, 40, 48, 37, 0, 0, 0, 0,
+			0, 12, 3, 95, 55, 57, 122, 66, 6, 35, 89, 37, 0, 11, 3, 95, 54, 49, 113, 49, 6, 35, 142, 0, 0, 14, 3, 95, 55, 56,
+			109, 142, 6, 109, 47, 12, 13, 51, 0, 11, 3, 95, 54, 48, 89, 6, 109, 142, 12, 0, 0, 9, 3, 95, 48, 67, 89, 6, 121, 0,
+			13, 3, 95, 54, 51, 47, 13, 51, 6, 36, 142, 108, 0, 0, 11, 3, 95, 54, 50, 71, 6, 35, 142, 108, 0, 0, 10, 3, 95, 54,
+			53, 48, 6, 127, 142, 0, 0, 11, 3, 95, 54, 52, 80, 6, 121, 142, 108, 0, 0, 14, 3, 95, 54, 55, 89, 13, 47, 6, 35, 108,
+			13, 142, 0, 0, 11, 3, 95, 54, 54, 144, 113, 6, 35, 142, 0, 0, 15, 3, 95, 55, 49, 113, 49, 108, 6, 109, 47, 12, 13, 51,
+			0, 0, 11, 3, 224, 165, 132, 35, 72, 72, 35, 49, 0, 13, 3, 95, 55, 48, 89, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95,
+			55, 51, 47, 13, 108, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 50, 71, 13, 108, 6, 109, 47, 12, 13, 51, 0, 0, 16,
+			3, 95, 55, 53, 48, 13, 50, 79, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 52, 80, 121, 108, 6, 109, 47, 12, 13, 51,
+			0, 0, 15, 3, 95, 55, 55, 89, 13, 47, 6, 109, 47, 12, 13, 51, 0, 0, 15, 3, 95, 55, 54, 144, 113, 108, 6, 109, 47, 12,
+			13, 51, 0, 0, 10, 3, 95, 49, 57, 6, 122, 50, 37, 0, 0, 12, 3, 95, 49, 56, 109, 142, 6, 35, 51, 128, 0, 0, 19, 4,
+			95, 224, 168, 148, 6, 116, 51, 109, 15, 49, 109, 50, 121, 51, 6, 35, 0, 0, 0, 0, 0, 20, 4, 95, 224, 168, 144, 6, 116, 51,
+			109, 15, 72, 122, 55, 6, 35, 84, 35, 65, 0, 0, 17, 4, 95, 224, 168, 147, 6, 122, 51, 109, 15, 107, 39, 51, 6, 35, 0, 0,
+			13, 3, 95, 50, 57, 122, 50, 6, 109, 47, 12, 37, 0, 12, 3, 95, 49, 49, 81, 113, 6, 35, 51, 128, 0, 0, 11, 3, 95, 50,
+			56, 109, 142, 6, 35, 37, 0, 10, 3, 95, 49, 48, 72, 6, 109, 89, 0, 0, 11, 3, 95, 49, 51, 47, 6, 36, 51, 128, 0, 0,
+			18, 4, 95, 224, 168, 143, 6, 113, 51, 113, 15, 55, 6, 35, 84, 35, 65, 0, 11, 3, 95, 49, 50, 71, 6, 35, 51, 128, 0, 0,
+			14, 3, 95, 49, 53, 48, 6, 109, 50, 72, 13, 51, 128, 0, 0, 18, 4, 95, 224, 168, 137, 6, 122, 51, 109, 15, 6, 121, 50, 49,
+			35, 51, 0, 11, 3, 95, 49, 52, 80, 6, 121, 72, 128, 0, 0, 19, 4, 95, 224, 168, 136, 6, 113, 51, 113, 15, 71, 113, 107, 6,
+			35, 51, 37, 0, 13, 3, 95, 49, 55, 89, 13, 47, 6, 35, 51, 128, 0, 0, 11, 3, 95, 49, 54, 89, 6, 39, 62, 128, 0, 0,
+			20, 12, 224, 168, 136, 224, 168, 174, 224, 169, 135, 224, 168, 178, 6, 112, 65, 150, 55, 0, 21, 4, 95, 224, 168, 138, 6, 122, 51, 109,
+			15, 72, 122, 55, 6, 116, 50, 49, 35, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 57, 6, 122, 66, 125, 79, 35,
+			0, 0, 12, 3, 224, 165, 164, 141, 6, 109, 50, 141, 37, 0, 15, 3, 95, 52, 56, 109, 142, 12, 13, 47, 6, 35, 55, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 11, 3, 95, 53, 57, 122, 66, 6, 35, 142, 0, 14, 3, 95, 52, 49, 113, 49, 13, 47, 6, 35, 55, 37,
+			0, 0, 15, 3, 95, 53, 56, 6, 109, 142, 12, 13, 84, 125, 79, 35, 0, 11, 3, 95, 52, 48, 80, 6, 35, 55, 37, 0, 0, 15,
+			3, 95, 52, 51, 47, 13, 51, 13, 47, 6, 35, 55, 37, 0, 0, 13, 3, 95, 52, 50, 71, 13, 47, 6, 35, 55, 37, 0, 0, 16,
+			3, 95, 52, 53, 48, 13, 50, 79, 13, 47, 6, 35, 55, 37, 0, 0, 13, 3, 95, 52, 52, 80, 121, 47, 6, 35, 55, 37, 0, 0,
+			14, 3, 95, 52, 55, 89, 13, 50, 47, 6, 35, 55, 37, 0, 0, 12, 3, 95, 52, 54, 144, 113, 6, 35, 55, 37, 0, 0, 14, 3,
+			95, 54, 57, 122, 66, 6, 109, 47, 12, 13, 51, 0, 14, 3, 95, 53, 49, 6, 113, 49, 13, 84, 125, 79, 35, 0, 0, 12, 3, 95,
+			54, 56, 109, 142, 12, 6, 35, 142, 0, 13, 3, 95, 53, 48, 48, 13, 50, 79, 6, 35, 108, 0, 0, 15, 3, 95, 53, 51, 47, 6,
+			109, 51, 13, 84, 125, 79, 35, 0, 0, 13, 3, 95, 53, 50, 71, 6, 109, 84, 125, 79, 35, 0, 0, 15, 3, 95, 53, 53, 48, 6,
+			109, 80, 13, 84, 125, 79, 35, 0, 0, 13, 3, 95, 53, 52, 80, 6, 109, 51, 125, 79, 35, 0, 0, 15, 3, 95, 53, 55, 89, 6,
+			109, 47, 13, 84, 125, 79, 35, 0, 0, 13, 3, 95, 53, 54, 144, 6, 109, 48, 125, 79, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 15, 3, 95, 56, 57, 122, 66, 128, 50, 13, 84, 6, 36, 68, 0, 0, 12, 3, 95, 56, 56, 109, 142, 6, 35, 89, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 16, 3, 95, 57, 57, 50, 113, 51, 6, 109, 50, 50, 13, 84, 126, 0, 12, 3, 95, 56, 49, 113, 49, 6,
+			35, 89, 37, 0, 0, 14, 3, 95, 57, 56, 109, 142, 6, 35, 50, 13, 84, 126, 0, 11, 3, 95, 56, 48, 6, 109, 89, 89, 37, 0,
+			0, 14, 3, 95, 56, 51, 47, 13, 51, 13, 6, 35, 89, 37, 0, 0, 12, 3, 95, 56, 50, 71, 113, 6, 35, 89, 37, 0, 0, 14,
+			3, 95, 56, 53, 48, 13, 50, 79, 6, 35, 89, 37, 0, 0, 13, 3, 95, 56, 52, 80, 13, 51, 6, 35, 89, 37, 0, 0, 13, 3,
+			95, 56, 55, 89, 13, 47, 6, 35, 89, 37, 0, 0, 12, 3, 95, 56, 54, 144, 113, 6, 35, 89, 37, 0, 0, 16, 3, 95, 57, 49,
+			113, 49, 13, 6, 35, 50, 13, 84, 4, 126, 0, 0, 12, 3, 95, 57, 48, 50, 6, 109, 71, 12, 36, 0, 0, 16, 3, 95, 57, 51,
+			47, 13, 51, 13, 6, 35, 50, 13, 84, 126, 0, 0, 16, 3, 95, 57, 50, 71, 113, 38, 6, 35, 50, 13, 84, 4, 126, 0, 0, 15,
+			3, 95, 57, 53, 48, 13, 80, 6, 35, 50, 13, 84, 126, 0, 0, 15, 3, 95, 57, 52, 80, 13, 51, 6, 35, 50, 13, 84, 126, 0,
+			0, 15, 3, 95, 57, 55, 89, 13, 47, 6, 35, 50, 13, 84, 126, 0, 0, 14, 3, 95, 57, 54, 144, 113, 6, 35, 50, 13, 84, 126,
+			0, 0, 10, 3, 224, 168, 133, 6, 116, 51, 109, 0, 12, 3, 224, 169, 141, 107, 109, 55, 109, 50, 47, 0, 0, 13, 3, 224, 169, 140,
+			49, 109, 50, 6, 121, 51, 35, 0, 0, 0, 0, 0, 13, 3, 224, 169, 136, 72, 13, 55, 6, 35, 84, 128, 0, 0, 11, 3, 224, 169,
+			139, 107, 39, 51, 6, 35, 0, 12, 3, 224, 168, 131, 84, 37, 89, 35, 51, 81, 0, 0, 12, 3, 224, 168, 130, 71, 113, 50, 72, 6,
+			37, 0, 0, 0, 0, 11, 3, 224, 169, 135, 55, 6, 35, 84, 128, 0, 0, 0, 11, 3, 224, 169, 129, 121, 50, 49, 35, 51, 0, 0,
+			13, 3, 224, 169, 128, 71, 113, 107, 6, 35, 51, 37, 0, 0, 0, 15, 3, 224, 169, 130, 72, 122, 55, 6, 116, 50, 49, 35, 51, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 52, 6, 109, 51, 13, 71, 0, 0, 13, 4, 95,
+			48, 77, 53, 146, 6, 109, 51, 13, 71, 0, 0, 12, 4, 95, 48, 77, 50, 55, 6, 109, 146, 12, 0, 0, 13, 4, 95, 48, 77, 51,
+			49, 6, 109, 51, 39, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 108, 13, 79, 6, 35, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			12, 3, 224, 168, 190, 49, 109, 50, 50, 6, 35, 0, 0, 13, 3, 224, 168, 191, 89, 113, 107, 6, 35, 51, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 224, 169, 178, 6, 113, 51, 113, 0, 0, 10, 3, 224, 169,
+			179, 6, 122, 51, 109, 0, 0, 12, 3, 224, 169, 176, 47, 113, 48, 48, 6, 37, 0, 0, 11, 3, 224, 169, 177, 109, 72, 72, 109, 49,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
+			18, 224, 168, 181, 224, 169, 136, 224, 168, 172, 224, 168, 170, 224, 169, 135, 224, 168, 156, 58, 6, 116, 71, 48, 150, 75, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 25, 15, 224, 168, 184, 224, 168, 176, 224, 168, 149, 224, 168, 190, 224, 168, 176, 89, 51, 13, 49, 6, 35, 51,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 29, 18, 224, 168, 184, 224, 168, 176, 224, 168, 149, 224, 168, 190, 224, 168, 176, 224, 169, 128, 89, 51, 13, 49, 6, 35, 51, 37,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 6, 125, 50, 0, 0, 8, 2, 95, 50, 72,
+			6, 39, 0, 0, 9, 2, 95, 49, 6, 113, 49, 12, 0, 0, 10, 2, 95, 48, 88, 6, 37, 51, 39, 0, 0, 10, 2, 95, 55, 89,
+			6, 109, 47, 12, 0, 0, 8, 2, 95, 54, 144, 6, 36, 0, 0, 10, 2, 95, 53, 48, 6, 109, 50, 79, 0, 0, 9, 2, 95, 52,
+			80, 6, 35, 51, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 130, 0, 0, 9, 2, 95, 56, 6, 109, 142, 12, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 102, 10, 0, 0, 48, 0, 0, 0,
+			103, 10, 0, 0, 49, 0, 0, 0, 104, 10, 0, 0, 50, 0, 0, 0, 105, 10, 0, 0, 51, 0, 0, 0, 106, 10, 0, 0, 52, 0,
+			0, 0, 107, 10, 0, 0, 53, 0, 0, 0, 108, 10, 0, 0, 54, 0, 0, 0, 109, 10, 0, 0, 55, 0, 0, 0, 110, 10, 0, 0,
+			56, 0, 0, 0, 111, 10, 0, 0, 57, 0, 0, 0, 230, 10, 0, 0, 48, 0, 0, 0, 231, 10, 0, 0, 49, 0, 0, 0, 232, 10,
+			0, 0, 50, 0, 0, 0, 233, 10, 0, 0, 51, 0, 0, 0, 234, 10, 0, 0, 52, 0, 0, 0, 235, 10, 0, 0, 53, 0, 0, 0,
+			236, 10, 0, 0, 54, 0, 0, 0, 237, 10, 0, 0, 55, 0, 0, 0, 238, 10, 0, 0, 56, 0, 0, 0, 239, 10, 0, 0, 57, 0,
+			0, 0, 56, 10, 60, 10, 54, 10, 0, 0, 50, 10, 60, 10, 51, 10, 0, 0, 22, 10, 60, 10, 89, 10, 0, 0, 23, 10, 60, 10,
+			90, 10, 0, 0, 28, 10, 60, 10, 91, 10, 0, 0, 43, 10, 60, 10, 94, 10, 0, 0, 5, 10, 72, 10, 16, 10, 0, 0, 5, 10,
+			62, 10, 6, 10, 0, 0, 5, 10, 76, 10, 20, 10, 0, 0, 114, 10, 64, 10, 8, 10, 0, 0, 114, 10, 63, 10, 7, 10, 0, 0,
+			114, 10, 71, 10, 15, 10, 0, 0, 115, 10, 65, 10, 9, 10, 0, 0, 115, 10, 66, 10, 10, 10, 0, 0, 0, 0, 0, 0, 6, 1,
+			3, 0, 3, 68, 0, 7, 6, 1, 4, 0, 3, 107, 0, 7, 6, 1, 6, 0, 3, 4, 109, 0, 4, 224, 168, 130, 3, 129, 0, 224,
+			169, 176, 0, 7, 6, 1, 7, 0, 3, 35, 0, 4, 224, 168, 130, 3, 128, 0, 224, 169, 176, 0, 7, 6, 1, 8, 0, 3, 113, 0,
+			4, 224, 168, 130, 3, 125, 0, 224, 169, 176, 0, 7, 6, 1, 9, 0, 3, 37, 0, 4, 224, 168, 130, 3, 124, 0, 224, 169, 176, 0,
+			7, 6, 1, 10, 0, 3, 122, 0, 4, 224, 168, 130, 3, 132, 0, 224, 169, 176, 0, 7, 6, 1, 11, 0, 3, 40, 0, 4, 224, 168,
+			130, 3, 133, 0, 224, 169, 176, 0, 7, 6, 1, 16, 0, 3, 36, 0, 4, 224, 168, 130, 3, 126, 0, 224, 169, 176, 0, 7, 6, 1,
+			17, 0, 3, 116, 0, 4, 224, 168, 130, 3, 127, 0, 224, 169, 176, 0, 7, 6, 1, 20, 0, 3, 39, 0, 4, 224, 168, 130, 3, 131,
+			0, 224, 169, 176, 0, 7, 6, 1, 21, 0, 3, 121, 0, 4, 224, 168, 130, 3, 130, 0, 224, 169, 176, 0, 7, 6, 1, 22, 0, 4,
+			1, 21, 2, 32, 3, 49, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 49, 12, 0, 1, 177, 169, 224, 2, 32, 0,
+			1, 177, 169, 224, 3, 49, 12, 109, 0, 3, 49, 109, 0, 7, 6, 1, 23, 0, 4, 1, 21, 2, 32, 3, 146, 0, 2, 17, 66, 0,
+			4, 1, 177, 169, 224, 2, 17, 66, 3, 146, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 146, 12, 109, 0, 3, 146,
+			109, 0, 7, 6, 1, 24, 0, 4, 1, 21, 2, 32, 3, 81, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 81, 12,
+			0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 81, 12, 109, 0, 3, 81, 109, 0, 7, 6, 1, 25, 0, 8, 2, 17, 66,
+			3, 49, 149, 0, 8, 3, 49, 149, 109, 0, 4, 1, 21, 2, 32, 3, 147, 0, 2, 17, 66, 0, 3, 147, 109, 0, 7, 6, 1, 26,
+			0, 4, 1, 21, 2, 32, 3, 68, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 68, 12, 0, 1, 177, 169, 224, 2,
+			32, 0, 1, 177, 169, 224, 3, 68, 12, 109, 0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 4, 1, 21, 2, 32, 3, 80, 0, 2, 17,
+			66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 80, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 80, 12, 109, 0,
+			3, 80, 109, 0, 7, 6, 1, 28, 0, 4, 1, 21, 2, 32, 3, 144, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3,
+			144, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 144, 12, 109, 0, 3, 144, 109, 0, 7, 6, 1, 29, 0, 4, 1,
+			21, 2, 32, 3, 79, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 79, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1,
+			177, 169, 224, 3, 79, 12, 109, 0, 3, 79, 109, 0, 7, 6, 1, 30, 0, 8, 2, 17, 66, 3, 80, 149, 0, 8, 3, 80, 149, 109,
+			0, 4, 1, 21, 2, 32, 3, 145, 0, 2, 17, 66, 0, 3, 145, 109, 0, 7, 6, 1, 31, 0, 4, 1, 21, 2, 32, 3, 67, 0,
+			2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 67, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 67, 12,
+			109, 0, 3, 67, 109, 0, 7, 6, 1, 32, 0, 4, 1, 21, 2, 32, 3, 140, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17,
+			66, 3, 140, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 140, 12, 109, 0, 3, 140, 109, 0, 7, 6, 1, 33, 0,
+			4, 1, 21, 2, 32, 3, 142, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 142, 12, 0, 1, 177, 169, 224, 2, 32,
+			0, 1, 177, 169, 224, 3, 142, 12, 109, 0, 3, 142, 109, 0, 7, 6, 1, 34, 0, 4, 1, 21, 2, 32, 3, 141, 0, 2, 17, 66,
+			0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 141, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 141, 12, 109, 0, 3,
+			141, 109, 0, 7, 6, 1, 35, 0, 8, 2, 17, 66, 3, 140, 0, 8, 3, 140, 149, 109, 0, 4, 1, 21, 2, 32, 3, 143, 0, 2,
+			17, 66, 0, 3, 143, 109, 0, 7, 6, 1, 36, 0, 4, 1, 21, 2, 32, 3, 66, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2,
+			17, 66, 3, 66, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 66, 12, 109, 0, 3, 66, 109, 0, 7, 6, 1, 37,
+			0, 4, 1, 21, 2, 32, 3, 47, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 47, 12, 0, 1, 177, 169, 224, 2,
+			32, 0, 1, 177, 169, 224, 3, 47, 12, 109, 0, 3, 47, 109, 0, 7, 6, 1, 38, 0, 4, 1, 21, 2, 32, 3, 138, 0, 2, 17,
+			66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 138, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 138, 12, 109, 0,
+			3, 138, 109, 0, 7, 6, 1, 39, 0, 4, 1, 21, 2, 32, 3, 72, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3,
+			72, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 72, 12, 109, 0, 3, 72, 109, 0, 7, 6, 1, 40, 0, 8, 2,
+			17, 66, 3, 47, 149, 0, 8, 3, 47, 149, 109, 0, 4, 1, 21, 2, 32, 3, 139, 0, 2, 17, 66, 0, 3, 139, 109, 0, 7, 6,
+			1, 41, 0, 4, 1, 21, 2, 32, 3, 50, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 50, 12, 0, 1, 177, 169,
+			224, 2, 32, 0, 1, 177, 169, 224, 3, 50, 12, 109, 0, 3, 50, 109, 0, 7, 6, 1, 43, 0, 4, 1, 21, 2, 32, 3, 48, 0,
+			2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 48, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 48, 12,
+			109, 0, 3, 48, 109, 0, 7, 6, 1, 44, 0, 4, 1, 21, 2, 32, 3, 136, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17,
+			66, 3, 136, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 136, 12, 109, 0, 3, 136, 109, 0, 7, 6, 1, 45, 0,
+			4, 1, 21, 2, 32, 3, 71, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 71, 12, 0, 1, 177, 169, 224, 2, 32,
+			0, 1, 177, 169, 224, 3, 71, 12, 109, 0, 3, 71, 109, 0, 7, 6, 1, 46, 0, 8, 2, 17, 66, 3, 48, 149, 0, 8, 3, 48,
+			149, 109, 0, 4, 1, 21, 2, 32, 3, 137, 0, 2, 17, 66, 0, 3, 137, 109, 0, 7, 6, 1, 47, 0, 4, 1, 21, 2, 32, 3,
+			65, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 65, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3,
+			65, 12, 109, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 4, 1, 21, 2, 32, 3, 57, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224,
+			2, 17, 66, 3, 57, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 57, 12, 109, 0, 3, 57, 109, 0, 7, 6, 1,
+			49, 0, 4, 1, 21, 2, 32, 3, 51, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 51, 12, 0, 1, 177, 169, 224,
+			2, 32, 0, 1, 177, 169, 224, 3, 51, 12, 109, 0, 3, 51, 109, 0, 7, 6, 1, 51, 0, 4, 1, 21, 2, 32, 3, 55, 0, 2,
+			17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 55, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 55, 12, 109,
+			0, 3, 55, 109, 0, 7, 6, 1, 52, 0, 4, 1, 21, 2, 32, 3, 62, 0, 2, 17, 66, 0, 3, 62, 109, 0, 7, 6, 1, 54,
+			0, 4, 1, 21, 2, 32, 3, 84, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 84, 12, 0, 1, 177, 169, 224, 2,
+			32, 0, 1, 177, 169, 224, 3, 84, 12, 109, 0, 3, 84, 109, 0, 7, 6, 1, 55, 0, 4, 1, 21, 2, 32, 3, 91, 0, 2, 17,
+			66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3, 91, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 91, 12, 109, 0,
+			3, 91, 109, 0, 7, 6, 1, 57, 0, 4, 1, 21, 2, 32, 3, 89, 0, 2, 17, 66, 0, 4, 1, 177, 169, 224, 2, 17, 66, 3,
+			89, 12, 0, 1, 177, 169, 224, 2, 32, 0, 1, 177, 169, 224, 3, 89, 12, 109, 0, 3, 89, 109, 0, 7, 6, 1, 58, 0, 4, 1,
+			21, 2, 32, 3, 108, 0, 2, 17, 66, 0, 3, 108, 109, 0, 7, 6, 1, 61, 0, 3, 0, 7, 6, 1, 63, 0, 3, 35, 0, 4,
+			224, 168, 130, 3, 128, 0, 224, 169, 176, 0, 7, 6, 1, 64, 0, 3, 113, 0, 4, 224, 168, 130, 3, 125, 0, 224, 169, 176, 0, 7,
+			6, 1, 65, 0, 3, 37, 0, 4, 224, 168, 130, 3, 124, 0, 224, 169, 176, 0, 7, 6, 1, 66, 0, 3, 122, 0, 4, 224, 168, 130,
+			3, 132, 0, 224, 169, 176, 0, 7, 6, 1, 67, 0, 3, 40, 0, 4, 224, 168, 130, 3, 133, 0, 224, 169, 176, 0, 7, 6, 1, 72,
+			0, 3, 36, 0, 4, 224, 168, 130, 3, 126, 0, 224, 169, 176, 0, 7, 6, 1, 73, 0, 3, 116, 0, 4, 224, 168, 130, 3, 127, 0,
+			224, 169, 176, 0, 7, 6, 1, 76, 0, 3, 39, 0, 4, 224, 168, 130, 3, 131, 0, 224, 169, 176, 0, 7, 6, 1, 77, 0, 3, 121,
+			0, 4, 224, 168, 130, 3, 130, 0, 224, 169, 176, 0, 7, 6, 1, 78, 0, 3, 0, 7, 6, 1, 90, 0, 4, 1, 21, 2, 32, 3,
+			101, 0, 2, 17, 66, 0, 3, 101, 109, 0, 7, 6, 1, 91, 0, 4, 1, 21, 2, 32, 3, 100, 0, 2, 17, 66, 0, 3, 100, 109,
+			0, 7, 6, 1, 92, 0, 4, 1, 21, 2, 32, 3, 88, 0, 2, 17, 66, 0, 3, 88, 109, 0, 7, 6, 1, 93, 0, 4, 1, 21,
+			2, 32, 3, 52, 0, 2, 17, 66, 0, 3, 52, 109, 0, 7, 6, 1, 95, 0, 4, 1, 21, 2, 32, 3, 83, 0, 2, 17, 66, 0,
+			3, 83, 109, 0, 7, 6, 1, 113, 0, 3, 50, 0, 7, 6, 1, 114, 0, 3, 0, 7, 6, 1, 115, 0, 3, 37, 0, 7, 6, 1,
+			116, 0, 3, 40, 0, 7, 6, 224, 171, 0, 160, 3, 44, 0, 7, 6, 0, 37, 3, 48, 109, 89, 116, 50, 47, 0, 36, 3, 72, 121,
+			55, 109, 51, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts48 = FileInMemory_createWithData (5256, reinterpret_cast<const char *> (&espeakdata_dicts48_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/pa_dict", 
 			U"pa");
-		my addItem_move (espeakdata_dicts51.move());
+		Collection_addItem (me.peek(), espeakdata_dicts48.transfer());
+
+		static unsigned char espeakdata_dicts49_data[2134] = {
+			0, 4, 0, 0, 163, 6, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0,
+			0, 6, 65, 12, 89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 4, 193, 20, 76, 0, 0, 0, 0, 6,
+			65, 24, 109, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0, 0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 0, 5,
+			193, 36, 76, 8, 0, 0, 0, 0, 6, 65, 40, 57, 36, 0, 0, 0, 6, 195, 64, 244, 128, 76, 0, 0, 6, 65, 44, 49, 35, 0,
+			0, 0, 0, 0, 6, 65, 48, 109, 55, 0, 0, 0, 0, 0, 6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6, 65, 56, 109, 50, 0,
+			0, 0, 0, 0, 5, 193, 60, 76, 8, 0, 0, 0, 0, 6, 65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 112, 0, 0,
+			0, 0, 0, 6, 65, 72, 109, 51, 0, 0, 0, 0, 0, 6, 65, 76, 109, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 36, 0, 0, 0, 0, 0, 7, 65, 96,
+			109, 49, 89, 0, 0, 0, 0, 0, 11, 65, 100, 37, 81, 51, 6, 109, 49, 0, 14, 5, 193, 100, 72, 8, 0, 0, 0, 0, 7, 65,
+			104, 88, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 4,
+			16, 20, 10, 49, 110, 65, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 8, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 5, 194, 20, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 88, 47, 51, 6, 37, 50, 47, 35, 0, 0, 11,
+			3, 95, 48, 67, 89, 57, 6, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 3, 95, 49, 49, 72, 57, 36, 89, 6, 40, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 55, 88, 89,
+			36, 47, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 16, 8, 0, 11,
+			3, 95, 49, 88, 72, 57, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 45, 80, 76, 28, 0, 12, 3, 95, 50, 88, 71,
+			6, 37, 50, 47, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 52, 88, 49, 58, 35,
+			51, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 56, 16, 76, 0, 16, 3, 95, 53, 88, 89, 37, 50, 49, 58,
+			6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 54, 88, 89, 36, 89, 6, 36, 50, 47, 35, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 88, 39, 76, 6, 36, 50, 47, 35, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 3, 95, 57, 88, 50, 39, 71, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 12, 4, 95, 48, 77, 50, 65, 37, 6, 39, 50, 0, 0, 11, 195, 44, 83, 128, 72, 28, 81, 115, 117, 32, 0, 0, 11,
+			4, 95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52,
+			144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 244, 192,
+			76, 0, 0, 0, 0, 0, 0, 13, 4, 95, 1, 3, 21, 89, 49, 109, 51, 48, 37, 0, 0, 0, 0, 0, 7, 131, 195, 178, 6, 76,
+			8, 0, 5, 194, 48, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 244, 207, 76, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 80, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			5, 194, 77, 80, 76, 0, 0, 0, 0, 0, 5, 130, 195, 161, 43, 0, 0, 0, 0, 5, 130, 195, 173, 43, 0, 0, 0, 0, 5, 130,
+			195, 169, 43, 0, 0, 0, 0, 0, 0, 5, 130, 195, 179, 43, 0, 0, 8, 2, 195, 177, 36, 67, 36, 0, 0, 0, 0, 0, 0, 5,
+			130, 195, 186, 43, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 35, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0, 0, 0, 6,
+			2, 95, 5, 36, 0, 0, 0, 0, 6, 2, 95, 9, 37, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 12, 2, 95, 25, 37, 81, 51, 6, 109, 49, 0, 14, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 193, 213,
+			56, 76, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 83, 128, 76, 6, 195, 56, 19, 128, 76, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			2, 95, 51, 47, 51, 6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 39, 89, 0, 0, 9, 2, 95, 49, 6, 40, 50, 40, 0, 0,
+			10, 2, 95, 48, 88, 6, 36, 51, 39, 0, 0, 10, 2, 95, 55, 91, 6, 36, 47, 36, 0, 0, 10, 2, 95, 54, 89, 6, 109, 57,
+			89, 0, 0, 11, 2, 95, 53, 89, 6, 37, 50, 49, 40, 0, 0, 12, 2, 95, 52, 49, 58, 35, 47, 6, 36, 51, 0, 0, 0, 0,
+			11, 2, 95, 57, 50, 58, 6, 36, 71, 36, 0, 0, 9, 2, 95, 56, 6, 39, 76, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 7, 18, 22, 81, 51, 35, 84, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 4, 194, 80, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 84,
+			224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 80, 16, 129,
+			80, 16, 76, 0, 0, 6, 195, 4, 210, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 168, 0, 3, 6, 109, 0, 7, 6, 195,
+			177, 0, 3, 67, 0, 7, 6, 195, 178, 0, 3, 6, 110, 0, 7, 6, 195, 185, 0, 3, 113, 0, 105, 3, 113, 57, 0, 7, 6, 195,
+			188, 0, 3, 112, 0, 105, 3, 112, 57, 0, 7, 6, 97, 0, 3, 35, 0, 97, 3, 35, 12, 0, 105, 3, 117, 0, 7, 6, 98, 0,
+			3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 104, 3, 76, 0, 2, 17, 71, 3, 89, 0, 7, 6, 100, 0, 3, 72, 0, 106, 3, 75,
+			0, 7, 6, 101, 0, 3, 36, 0, 101, 3, 36, 12, 0, 117, 3, 36, 58, 0, 105, 3, 118, 0, 7, 6, 102, 0, 3, 83, 0, 7,
+			6, 103, 0, 4, 3, 81, 0, 117, 2, 17, 71, 0, 2, 17, 71, 3, 101, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3,
+			37, 0, 4, 1, 17, 65, 2, 25, 3, 57, 0, 2, 17, 65, 0, 106, 3, 118, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0,
+			3, 49, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 97, 110, 1, 10, 2, 32,
+			3, 50, 2, 35, 50, 0, 2, 32, 3, 68, 0, 7, 6, 111, 0, 3, 39, 0, 111, 3, 39, 12, 0, 117, 3, 39, 58, 0, 101, 3,
+			40, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 2, 17, 65, 3, 49, 58, 0, 117, 105, 3, 49, 58, 37,
+			0, 7, 6, 114, 0, 3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0,
+			3, 40, 0, 105, 3, 40, 57, 0, 2, 17, 65, 3, 58, 0, 117, 3, 112, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3,
+			58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 2, 17, 65, 3, 88, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57,
+			0, 7, 6, 122, 0, 3, 88, 0, 106, 3, 90, 0, 7, 6, 0, 195, 161, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0, 195, 173, 3,
+			7, 37, 0, 195, 179, 3, 7, 39, 0, 195, 186, 3, 7, 40, 0, 39, 3, 19, 0, 36, 3, 72, 110, 55, 110, 0, 195, 167, 3, 89,
+			0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts49 = FileInMemory_createWithData (2133, reinterpret_cast<const char *> (&espeakdata_dicts49_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/pap_dict", 
+			U"pap");
+		Collection_addItem (me.peek(), espeakdata_dicts49.transfer());
 
-		static unsigned char espeakdata_dicts52_data[2129] = {
-			0, 4, 0, 0, 158, 6, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 76, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0,
-			0, 6, 65, 12, 89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 12, 4, 95, 100, 112, 116, 10, 49, 110, 65,
-			108, 0, 0, 4, 193, 20, 76, 0, 0, 0, 0, 6, 65, 24, 109, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 36, 0, 0, 0, 0,
-			0, 6, 65, 32, 107, 35, 0, 0, 0, 0, 0, 5, 193, 36, 76, 8, 0, 0, 4, 193, 112, 43, 0, 0, 6, 65, 40, 57, 36, 0,
-			0, 0, 6, 195, 64, 244, 128, 76, 0, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65, 48, 109, 55, 0, 0, 0, 0, 0,
-			6, 65, 52, 109, 65, 0, 0, 0, 0, 0, 6, 65, 56, 109, 50, 0, 0, 0, 0, 0, 5, 193, 60, 76, 8, 0, 0, 0, 0, 6,
-			65, 64, 48, 36, 0, 0, 0, 0, 0, 6, 65, 68, 49, 112, 0, 0, 0, 6, 195, 8, 244, 207, 76, 0, 0, 6, 65, 72, 109, 51,
-			0, 0, 0, 0, 0, 6, 65, 76, 109, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			65, 88, 84, 36, 0, 0, 0, 0, 0, 6, 65, 92, 58, 36, 0, 0, 0, 0, 0, 7, 65, 96, 109, 49, 89, 0, 0, 0, 0, 0,
-			11, 65, 100, 37, 81, 51, 6, 109, 49, 0, 49, 5, 193, 100, 72, 8, 0, 0, 0, 0, 7, 65, 104, 88, 109, 47, 0, 0, 0, 0,
+		static unsigned char espeakdata_dicts50_data[39426] = {
+			0, 4, 0, 0, 34, 121, 0, 0, 0, 0, 0, 0, 0, 7, 132, 196, 135, 13, 9, 20, 12, 65, 4, 35, 55, 6, 35, 0, 81, 108,
+			97, 32, 5, 193, 4, 72, 28, 13, 138, 16, 9, 196, 153, 3, 9, 21, 19, 5, 20, 65, 0, 8, 133, 196, 135, 16, 15, 13, 20, 0,
+			0, 7, 196, 104, 194, 67, 104, 20, 10, 135, 4, 197, 186, 7, 14, 196, 133, 20, 0, 17, 142, 4, 26, 9, 5, 23, 9, 196, 153, 3,
+			9, 21, 19, 5, 20, 66, 6, 65, 8, 71, 109, 0, 0, 12, 137, 23, 3, 8, 18, 26, 3, 26, 196, 133, 20, 0, 7, 132, 4, 21,
+			197, 155, 20, 17, 71, 12, 128, 82, 52, 85, 83, 20, 91, 35, 51, 65, 109, 88, 0, 66, 15, 67, 21, 64, 192, 109, 117, 6, 109, 47,
+			109, 51, 35, 0, 24, 0, 7, 196, 92, 145, 83, 104, 20, 11, 67, 12, 17, 133, 49, 35, 83, 109, 0, 66, 16, 141, 4, 26, 9, 5,
+			23, 9, 196, 153, 196, 135, 19, 5, 20, 65, 0, 10, 135, 12, 197, 155, 14, 9, 19, 26, 20, 6, 65, 12, 117, 109, 0, 0, 9, 198,
+			76, 180, 154, 100, 54, 128, 20, 7, 132, 12, 5, 197, 186, 20, 0, 16, 71, 12, 130, 72, 84, 18, 21, 4, 76, 37, 58, 35, 58, 35,
+			0, 13, 4, 95, 8, 1, 3, 107, 6, 35, 76, 109, 49, 0, 0, 8, 133, 19, 16, 1, 197, 155, 20, 8, 133, 13, 18, 196, 133, 3,
+			20, 7, 132, 12, 5, 197, 188, 20, 0, 15, 69, 64, 242, 82, 61, 64, 48, 40, 58, 35, 51, 6, 111, 0, 6, 65, 16, 72, 109, 0,
+			0, 9, 134, 26, 4, 196, 133, 197, 188, 20, 10, 135, 20, 18, 26, 196, 133, 197, 155, 20, 10, 135, 19, 11, 18, 26, 196, 133, 3, 20,
+			10, 135, 18, 197, 188, 14, 196, 133, 3, 20, 9, 134, 4, 18, 196, 133, 197, 188, 20, 0, 9, 134, 19, 26, 3, 26, 196, 133, 20, 11,
+			136, 16, 19, 20, 18, 26, 196, 133, 3, 20, 0, 7, 196, 92, 145, 82, 104, 20, 7, 196, 76, 176, 77, 48, 20, 11, 68, 13, 84, 146,
+			100, 49, 35, 51, 112, 0, 0, 13, 138, 23, 3, 8, 18, 26, 3, 26, 196, 133, 3, 20, 8, 197, 53, 38, 133, 77, 160, 20, 8, 197,
+			29, 38, 133, 77, 160, 20, 11, 136, 3, 8, 18, 26, 3, 26, 196, 133, 20, 21, 65, 20, 37, 65, 109, 57, 55, 111, 84, 109, 0, 81,
+			109, 97, 105, 108, 111, 119, 101, 32, 25, 65, 20, 37, 65, 109, 57, 55, 111, 84, 109, 81, 111, 0, 81, 109, 97, 105, 108, 111, 119, 101,
+			103, 111, 32, 21, 65, 20, 37, 65, 109, 57, 55, 111, 84, 112, 0, 81, 109, 97, 105, 108, 111, 119, 121, 32, 19, 65, 20, 37, 65, 109,
+			57, 55, 111, 65, 0, 81, 109, 97, 105, 108, 111, 109, 32, 17, 65, 20, 37, 65, 109, 57, 55, 37, 0, 81, 109, 97, 105, 108, 105, 32,
+			17, 65, 20, 37, 65, 109, 57, 55, 109, 0, 81, 109, 97, 105, 108, 101, 32, 19, 65, 20, 37, 65, 109, 57, 55, 109, 65, 0, 81, 109,
+			97, 105, 108, 101, 109, 32, 17, 65, 20, 37, 65, 109, 57, 55, 35, 0, 81, 109, 97, 105, 108, 97, 32, 15, 65, 20, 37, 65, 109, 57,
+			55, 0, 81, 109, 97, 105, 108, 32, 5, 65, 20, 109, 0, 0, 0, 6, 195, 92, 146, 128, 20, 8, 133, 196, 135, 13, 9, 10, 20, 25,
+			67, 69, 82, 64, 49, 84, 37, 48, 51, 111, 49, 84, 111, 0, 67, 82, 112, 114, 111, 32, 113, 117, 111, 32, 0, 12, 137, 2, 197, 188,
+			4, 197, 188, 196, 133, 3, 20, 9, 198, 4, 33, 82, 16, 81, 78, 65, 12, 68, 72, 145, 200, 80, 51, 35, 57, 47, 0, 17, 0, 6,
+			65, 24, 109, 83, 0, 0, 11, 136, 26, 23, 9, 195, 179, 26, 197, 130, 20, 0, 8, 133, 26, 18, 1, 197, 186, 20, 8, 133, 23, 196,
+			153, 19, 26, 20, 0, 7, 196, 93, 160, 137, 40, 20, 7, 196, 44, 195, 137, 20, 20, 20, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88,
+			67, 38, 109, 0, 81, 110, 105, 101, 32, 21, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32,
+			20, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 84, 35, 89, 0, 81, 119, 97, 115, 32, 21, 68, 65, 38, 133, 104, 48, 91, 6, 109,
+			89, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 18, 68, 65, 38, 133, 104, 48, 91, 6, 109, 89, 47, 111, 0, 81, 116, 111, 32, 18,
+			68, 65, 38, 133, 104, 48, 91, 6, 109, 89, 47, 109, 0, 81, 116, 101, 32, 19, 68, 65, 38, 133, 104, 48, 91, 6, 109, 89, 47, 114,
+			0, 81, 116, 196, 133, 32, 21, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 20, 68, 65,
+			38, 133, 104, 48, 91, 6, 109, 88, 50, 35, 89, 0, 81, 110, 97, 115, 32, 0, 7, 132, 197, 188, 7, 1, 20, 10, 135, 197, 155, 13,
+			9, 5, 19, 26, 20, 7, 65, 28, 81, 57, 109, 0, 0, 10, 135, 11, 18, 26, 20, 21, 197, 155, 20, 10, 135, 2, 25, 197, 130, 1,
+			197, 155, 76, 0, 11, 136, 13, 9, 1, 197, 130, 1, 197, 155, 76, 0, 7, 196, 104, 64, 82, 104, 20, 9, 134, 18, 197, 188, 14, 9,
+			10, 20, 0, 6, 65, 32, 101, 35, 0, 0, 8, 133, 13, 11, 14, 196, 133, 20, 0, 9, 134, 4, 18, 23, 9, 196, 153, 20, 9, 134,
+			3, 26, 3, 26, 196, 133, 20, 0, 10, 135, 13, 19, 26, 3, 26, 196, 133, 20, 7, 196, 52, 179, 137, 40, 20, 8, 1, 35, 107, 35,
+			91, 0, 27, 0, 8, 197, 104, 36, 143, 13, 160, 20, 8, 197, 76, 53, 75, 73, 160, 20, 5, 193, 36, 72, 28, 0, 8, 133, 197, 188,
+			18, 196, 133, 20, 21, 6, 4, 195, 169, 10, 195, 160, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 101, 32, 20, 6, 4, 195, 169,
+			10, 195, 160, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 32, 12, 1, 37, 48, 51, 6, 111, 117, 109, 50, 47, 0, 0, 9, 134,
+			197, 188, 7, 14, 196, 133, 20, 6, 195, 105, 54, 80, 20, 7, 1, 38, 35, 50, 72, 0, 0, 9, 134, 26, 12, 1, 26, 197, 130, 20,
+			7, 196, 104, 64, 83, 104, 20, 7, 196, 44, 195, 137, 40, 20, 0, 9, 134, 26, 9, 197, 155, 196, 135, 20, 7, 65, 40, 57, 111, 47,
+			0, 0, 10, 135, 26, 12, 5, 197, 186, 196, 135, 20, 10, 135, 23, 12, 5, 197, 186, 196, 135, 20, 0, 9, 67, 76, 148, 128, 89, 109,
+			51, 0, 14, 1, 42, 81, 84, 38, 6, 35, 89, 47, 49, 35, 0, 27, 0, 12, 137, 23, 19, 9, 196, 133, 197, 155, 196, 135, 20, 9,
+			1, 43, 48, 55, 40, 89, 0, 27, 0, 8, 197, 80, 50, 14, 36, 160, 20, 8, 197, 76, 50, 14, 36, 160, 20, 6, 195, 28, 20, 130,
+			20, 12, 201, 12, 132, 137, 77, 67, 208, 32, 84, 128, 65, 6, 65, 44, 49, 35, 0, 0, 9, 134, 26, 23, 196, 133, 20, 16, 20, 0,
+			8, 133, 23, 18, 196, 133, 2, 20, 8, 133, 20, 18, 196, 133, 2, 20, 12, 137, 19, 20, 23, 9, 5, 18, 4, 197, 186, 20, 10, 199,
+			28, 83, 148, 48, 83, 65, 56, 65, 12, 1, 46, 49, 51, 6, 111, 48, 49, 35, 0, 27, 0, 8, 133, 20, 18, 196, 133, 3, 20, 8,
+			133, 20, 14, 196, 133, 3, 20, 8, 133, 16, 18, 196, 133, 3, 20, 8, 133, 16, 14, 196, 133, 3, 20, 9, 67, 76, 148, 133, 89, 37,
+			51, 0, 9, 1, 47, 89, 55, 109, 91, 0, 27, 0, 8, 197, 93, 50, 207, 13, 160, 20, 8, 133, 13, 18, 21, 197, 188, 20, 7, 132,
+			7, 14, 196, 133, 20, 6, 65, 48, 109, 55, 0, 0, 10, 135, 23, 16, 18, 26, 196, 133, 3, 20, 9, 134, 19, 197, 130, 21, 197, 188,
+			20, 8, 133, 12, 7, 14, 196, 133, 20, 9, 134, 11, 18, 196, 133, 197, 188, 20, 0, 10, 135, 16, 18, 26, 196, 133, 197, 188, 20, 0,
+			11, 136, 23, 16, 18, 26, 196, 133, 197, 188, 20, 8, 133, 23, 13, 195, 179, 23, 20, 8, 133, 20, 12, 196, 133, 3, 20, 10, 135, 4,
+			197, 186, 7, 14, 196, 153, 20, 0, 8, 197, 104, 65, 80, 13, 160, 20, 9, 134, 13, 4, 12, 196, 133, 3, 20, 9, 134, 12, 197, 188,
+			196, 133, 3, 20, 9, 134, 7, 197, 188, 196, 133, 3, 20, 6, 65, 52, 109, 65, 0, 0, 12, 137, 23, 3, 8, 18, 26, 3, 26, 196,
+			153, 20, 8, 133, 13, 11, 14, 196, 153, 20, 0, 9, 134, 19, 26, 3, 26, 196, 153, 20, 9, 134, 3, 26, 3, 26, 196, 153, 20, 0,
+			7, 196, 104, 211, 195, 104, 20, 10, 135, 13, 19, 26, 3, 26, 196, 153, 20, 7, 196, 9, 38, 141, 36, 20, 0, 11, 136, 3, 8, 18,
+			26, 3, 26, 196, 153, 20, 6, 65, 56, 109, 50, 0, 0, 9, 198, 92, 145, 83, 104, 54, 128, 20, 16, 66, 57, 0, 50, 35, 48, 91,
+			6, 112, 49, 58, 35, 72, 0, 24, 0, 8, 133, 23, 18, 1, 197, 186, 20, 0, 6, 195, 44, 20, 141, 20, 19, 67, 64, 246, 129, 48,
+			111, 88, 6, 35, 67, 37, 65, 0, 81, 110, 105, 109, 32, 20, 67, 64, 246, 129, 48, 111, 88, 6, 35, 67, 38, 114, 0, 81, 110, 105,
+			196, 133, 32, 20, 67, 64, 246, 129, 48, 111, 88, 6, 35, 65, 50, 114, 0, 81, 109, 110, 196, 133, 32, 30, 7, 13, 1, 9, 20, 18,
+			195, 169, 65, 109, 47, 51, 109, 72, 111, 47, 6, 109, 55, 0, 81, 100, 39, 104, 111, 116, 101, 108, 32, 0, 14, 65, 60, 6, 111, 84,
+			35, 89, 0, 81, 119, 97, 115, 32, 15, 65, 60, 6, 111, 47, 112, 65, 10, 0, 81, 116, 121, 109, 32, 15, 65, 60, 6, 111, 47, 112,
+			107, 0, 81, 116, 121, 99, 104, 32, 12, 65, 60, 6, 111, 47, 111, 0, 81, 116, 111, 32, 12, 65, 60, 6, 111, 47, 109, 0, 81, 116,
+			101, 32, 13, 65, 60, 6, 111, 47, 114, 0, 81, 116, 196, 133, 32, 15, 65, 60, 6, 111, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32,
+			14, 65, 60, 6, 111, 67, 38, 109, 0, 81, 110, 105, 101, 32, 14, 65, 60, 6, 111, 67, 37, 65, 0, 81, 110, 105, 109, 32, 16, 65,
+			60, 6, 111, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 14, 65, 60, 6, 111, 50, 35, 89, 0, 81, 110, 97, 115, 32, 16, 65,
+			60, 6, 111, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 4, 193, 60, 76, 0, 14, 1, 61, 51, 6, 40, 84, 50, 35, 15, 97,
+			109, 0, 27, 0, 0, 7, 196, 52, 179, 137, 20, 20, 0, 8, 133, 19, 20, 196, 133, 16, 20, 10, 1, 64, 65, 6, 35, 58, 48, 35,
+			0, 6, 65, 64, 48, 109, 0, 0, 9, 134, 23, 19, 20, 196, 133, 16, 20, 15, 70, 12, 128, 78, 76, 243, 128, 91, 35, 50, 89, 114,
+			0, 66, 0, 0, 0, 8, 197, 105, 114, 69, 77, 160, 20, 8, 197, 73, 114, 69, 77, 160, 20, 8, 197, 28, 226, 69, 77, 160, 20, 6,
+			65, 68, 49, 40, 0, 0, 0, 14, 67, 16, 240, 192, 72, 6, 111, 117, 109, 50, 47, 0, 24, 0, 9, 134, 23, 9, 12, 7, 197, 130,
+			20, 9, 134, 4, 14, 9, 15, 197, 130, 20, 0, 10, 135, 197, 155, 13, 9, 15, 197, 130, 20, 10, 135, 19, 20, 197, 130, 21, 3, 26,
+			20, 9, 134, 19, 16, 19, 15, 196, 135, 20, 10, 135, 19, 16, 197, 130, 21, 3, 26, 20, 9, 134, 197, 130, 7, 15, 196, 135, 20, 6,
+			65, 72, 109, 51, 0, 0, 10, 135, 23, 4, 26, 9, 15, 196, 135, 20, 9, 134, 197, 155, 3, 9, 5, 12, 20, 10, 135, 4, 197, 186,
+			7, 15, 196, 135, 20, 17, 70, 16, 85, 137, 12, 84, 192, 72, 37, 84, 35, 57, 89, 37, 89, 0, 0, 0, 0, 10, 135, 23, 196, 135,
+			23, 9, 3, 26, 20, 6, 195, 92, 34, 74, 20, 6, 65, 76, 109, 91, 0, 0, 7, 196, 77, 0, 82, 104, 20, 6, 195, 77, 0, 76,
+			20, 9, 198, 76, 180, 154, 101, 54, 128, 20, 0, 0, 21, 72, 13, 84, 146, 36, 53, 76, 84, 208, 49, 40, 51, 6, 37, 49, 40, 55,
+			40, 65, 0, 0, 8, 197, 80, 181, 201, 77, 160, 20, 9, 134, 197, 155, 3, 9, 5, 3, 20, 8, 197, 77, 161, 77, 73, 160, 20, 6,
+			65, 80, 47, 109, 0, 0, 0, 9, 134, 197, 188, 7, 14, 196, 153, 20, 7, 132, 13, 195, 179, 23, 20, 8, 133, 13, 9, 15, 197, 130,
+			20, 7, 195, 4, 226, 64, 76, 8, 0, 10, 135, 19, 26, 197, 130, 1, 2, 25, 20, 9, 198, 104, 208, 82, 77, 160, 218, 20, 6, 195,
+			77, 163, 9, 20, 7, 132, 19, 195, 179, 12, 20, 7, 196, 52, 145, 82, 104, 20, 9, 134, 197, 130, 7, 15, 197, 130, 20, 6, 195, 52,
+			226, 69, 72, 0, 7, 132, 26, 23, 196, 153, 20, 10, 135, 23, 12, 195, 179, 11, 197, 130, 20, 10, 135, 23, 4, 26, 9, 15, 197, 130,
+			20, 7, 132, 7, 14, 196, 153, 20, 10, 135, 4, 197, 186, 7, 15, 197, 130, 20, 10, 135, 3, 8, 3, 9, 15, 197, 130, 20, 0, 10,
+			135, 197, 155, 13, 9, 15, 196, 135, 20, 8, 133, 19, 26, 197, 130, 1, 20, 8, 133, 12, 7, 14, 196, 153, 20, 0, 6, 195, 93, 146,
+			128, 20, 12, 137, 23, 197, 155, 3, 9, 5, 11, 197, 130, 20, 0, 7, 196, 104, 161, 83, 104, 20, 9, 134, 16, 12, 23, 15, 197, 130,
+			20, 9, 198, 13, 162, 206, 36, 84, 218, 20, 0, 7, 65, 88, 83, 35, 58, 0, 0, 11, 136, 26, 23, 12, 195, 179, 11, 197, 130, 20,
+			7, 132, 11, 195, 179, 10, 20, 0, 14, 67, 52, 80, 192, 65, 109, 117, 109, 50, 35, 89, 0, 24, 0, 9, 134, 26, 4, 23, 195, 179,
+			10, 20, 15, 4, 95, 49, 77, 52, 71, 38, 6, 37, 55, 57, 111, 50, 0, 0, 12, 69, 40, 16, 203, 36, 80, 75, 109, 49, 37, 0,
+			13, 1, 92, 71, 6, 109, 49, 89, 55, 109, 91, 0, 27, 8, 65, 92, 84, 112, 0, 72, 14, 0, 8, 197, 93, 0, 84, 73, 160, 20,
+			0, 10, 1, 94, 72, 6, 35, 91, 109, 49, 0, 0, 7, 196, 104, 65, 82, 104, 20, 7, 196, 48, 115, 137, 20, 20, 0, 7, 132, 18,
+			23, 196, 133, 20, 6, 195, 52, 226, 74, 20, 16, 7, 4, 39, 1, 13, 15, 21, 18, 72, 35, 65, 40, 51, 0, 66, 11, 1, 96, 6,
+			35, 49, 117, 109, 50, 47, 0, 7, 65, 96, 37, 49, 89, 0, 14, 4, 95, 49, 77, 49, 47, 6, 112, 97, 111, 50, 117, 0, 0, 8,
+			133, 197, 188, 18, 196, 153, 20, 22, 66, 4, 64, 35, 72, 6, 111, 49, 40, 55, 111, 89, 0, 81, 111, 99, 117, 108, 111, 115, 32, 16,
+			66, 4, 64, 35, 72, 107, 6, 111, 49, 0, 81, 104, 111, 99, 32, 15, 4, 95, 49, 77, 50, 65, 38, 6, 37, 55, 57, 111, 50, 0,
+			0, 16, 4, 95, 49, 77, 51, 65, 38, 6, 37, 55, 57, 35, 51, 72, 0, 0, 22, 5, 16, 16, 197, 130, 11, 48, 111, 47, 48, 40,
+			58, 49, 6, 111, 84, 50, 37, 49, 0, 24, 0, 9, 134, 16, 12, 23, 15, 196, 135, 20, 9, 134, 13, 15, 197, 155, 196, 135, 20, 8,
+			197, 17, 33, 80, 13, 160, 20, 7, 132, 196, 135, 16, 1, 20, 10, 65, 100, 6, 37, 81, 51, 109, 49, 0, 0, 0, 0, 7, 132, 7,
+			15, 197, 132, 20, 22, 72, 13, 83, 66, 21, 35, 1, 56, 64, 49, 6, 35, 65, 71, 109, 51, 55, 109, 50, 72, 0, 0, 9, 134, 197,
+			188, 7, 15, 196, 135, 20, 10, 135, 26, 12, 196, 133, 11, 197, 130, 20, 9, 134, 23, 19, 9, 15, 196, 135, 20, 9, 134, 10, 5, 197,
+			155, 196, 135, 20, 8, 65, 104, 88, 112, 0, 72, 14, 0, 9, 134, 26, 13, 25, 197, 155, 12, 20, 10, 135, 26, 1, 10, 197, 155, 196,
+			135, 20, 10, 135, 23, 25, 10, 197, 155, 196, 135, 20, 11, 136, 23, 19, 9, 196, 133, 11, 197, 130, 20, 10, 135, 16, 12, 5, 197, 155,
+			196, 135, 20, 11, 136, 2, 18, 26, 13, 9, 15, 197, 130, 20, 0, 19, 67, 12, 148, 192, 117, 37, 89, 65, 6, 111, 55, 0, 81, 109,
+			111, 108, 108, 32, 18, 67, 12, 148, 192, 117, 37, 89, 72, 6, 40, 51, 0, 81, 100, 117, 114, 32, 0, 9, 134, 197, 155, 13, 9, 5,
+			10, 20, 14, 68, 5, 48, 201, 36, 6, 35, 89, 49, 109, 57, 0, 17, 0, 0, 0, 0, 0, 6, 195, 80, 240, 218, 20, 9, 134, 19,
+			3, 8, 197, 130, 15, 20, 0, 9, 198, 104, 210, 69, 73, 165, 192, 20, 10, 135, 19, 26, 3, 26, 196, 133, 3, 20, 0, 0, 9, 134,
+			197, 188, 7, 15, 197, 130, 20, 8, 133, 26, 13, 195, 179, 23, 20, 9, 134, 23, 19, 9, 15, 197, 130, 20, 7, 196, 48, 115, 137, 40,
+			20, 12, 137, 3, 8, 18, 26, 3, 26, 196, 133, 3, 20, 9, 134, 2, 12, 1, 11, 197, 130, 20, 16, 4, 9, 14, 197, 188, 37, 50,
+			90, 6, 112, 67, 109, 51, 0, 24, 0, 8, 197, 104, 210, 69, 73, 160, 20, 6, 195, 104, 193, 74, 20, 10, 135, 26, 2, 12, 1, 11,
+			197, 130, 20, 7, 132, 18, 23, 196, 153, 20, 0, 8, 133, 26, 197, 130, 15, 13, 20, 10, 135, 23, 5, 10, 197, 155, 196, 135, 20, 0,
+			10, 199, 92, 50, 18, 104, 50, 83, 104, 20, 11, 136, 20, 197, 130, 21, 197, 155, 196, 135, 20, 0, 9, 134, 26, 23, 9, 15, 197, 130,
+			20, 9, 134, 20, 197, 130, 21, 3, 26, 20, 7, 196, 77, 2, 83, 104, 20, 9, 134, 12, 196, 133, 11, 197, 130, 20, 9, 198, 17, 33,
+			206, 36, 84, 218, 20, 0, 6, 195, 104, 70, 66, 20, 13, 138, 19, 20, 18, 26, 196, 133, 197, 155, 196, 135, 20, 13, 138, 19, 16, 18,
+			26, 196, 133, 197, 155, 196, 135, 20, 13, 138, 3, 8, 18, 26, 196, 153, 197, 155, 196, 135, 20, 13, 69, 40, 19, 137, 12, 80, 75, 109,
+			67, 37, 89, 0, 0, 9, 198, 104, 116, 154, 21, 54, 128, 20, 9, 198, 76, 180, 154, 21, 54, 128, 20, 0, 9, 134, 19, 3, 8, 197,
+			130, 1, 20, 0, 6, 195, 104, 64, 77, 20, 9, 134, 196, 135, 23, 9, 3, 26, 20, 7, 196, 13, 161, 77, 84, 76, 0, 20, 1, 124,
+			49, 51, 4, 109, 89, 49, 35, 15, 48, 38, 111, 50, 6, 111, 84, 35, 0, 0, 8, 133, 19, 26, 197, 130, 25, 20, 9, 198, 44, 195,
+			137, 21, 54, 128, 20, 0, 10, 1, 126, 47, 6, 112, 55, 72, 35, 0, 0, 8, 133, 26, 13, 195, 179, 3, 20, 7, 132, 19, 196, 153,
+			16, 20, 0, 7, 132, 26, 23, 196, 133, 20, 6, 195, 104, 64, 74, 20, 0, 0, 0, 0, 9, 134, 26, 23, 9, 15, 196, 135, 20, 8,
+			197, 76, 50, 18, 85, 0, 20, 9, 134, 16, 1, 197, 155, 196, 135, 20, 0, 10, 135, 26, 5, 10, 197, 155, 196, 135, 20, 10, 135, 7,
+			18, 26, 13, 15, 196, 135, 20, 10, 135, 4, 15, 10, 197, 155, 196, 135, 20, 0, 11, 136, 23, 26, 5, 10, 197, 155, 196, 135, 20, 11,
+			136, 19, 9, 196, 133, 197, 155, 196, 135, 20, 0, 7, 196, 77, 162, 204, 36, 20, 12, 137, 16, 18, 26, 5, 10, 197, 155, 196, 135, 20,
+			7, 196, 17, 162, 65, 8, 20, 0, 8, 197, 104, 70, 137, 20, 192, 20, 8, 197, 77, 4, 201, 20, 160, 20, 0, 8, 133, 19, 20, 12,
+			196, 133, 20, 0, 0, 0, 0, 7, 132, 23, 15, 197, 186, 20, 0, 0, 9, 134, 26, 10, 1, 4, 197, 130, 20, 9, 134, 19, 26, 5,
+			4, 197, 130, 20, 7, 196, 29, 38, 141, 36, 20, 0, 11, 136, 23, 9, 12, 7, 197, 130, 2, 25, 20, 11, 136, 4, 14, 9, 15, 197,
+			130, 2, 25, 20, 10, 135, 23, 19, 26, 5, 4, 197, 130, 20, 8, 197, 76, 96, 74, 13, 160, 20, 10, 135, 16, 12, 195, 179, 20, 197,
+			130, 20, 0, 12, 137, 197, 155, 13, 9, 15, 197, 130, 2, 25, 20, 11, 136, 26, 2, 18, 26, 25, 4, 197, 130, 20, 11, 136, 23, 16,
+			12, 195, 179, 20, 197, 130, 20, 11, 136, 19, 16, 12, 195, 179, 20, 197, 130, 20, 11, 136, 7, 14, 9, 195, 179, 20, 197, 130, 20, 0,
+			0, 9, 134, 20, 23, 195, 179, 18, 26, 20, 0, 11, 136, 16, 12, 23, 15, 197, 130, 2, 25, 20, 10, 135, 11, 18, 26, 5, 16, 197,
+			130, 20, 0, 11, 136, 26, 23, 9, 195, 179, 4, 197, 130, 20, 0, 13, 138, 26, 23, 12, 195, 179, 11, 197, 130, 2, 25, 20, 0, 7,
+			196, 93, 2, 83, 104, 20, 0, 6, 195, 40, 81, 26, 20, 0, 0, 0, 33, 7, 3, 8, 1, 18, 7, 195, 169, 91, 35, 51, 90, 109,
+			72, 35, 83, 109, 51, 0, 68, 81, 100, 39, 97, 102, 102, 97, 105, 114, 101, 115, 32, 0, 8, 197, 76, 50, 12, 60, 208, 20, 6, 195,
+			29, 32, 74, 20, 6, 195, 13, 160, 74, 20, 0, 8, 133, 19, 20, 12, 196, 153, 20, 0, 0, 6, 195, 29, 32, 77, 20, 18, 72, 8,
+			80, 85, 40, 243, 1, 37, 48, 71, 111, 90, 111, 55, 6, 109, 0, 0, 0, 0, 9, 134, 19, 3, 8, 197, 130, 25, 20, 20, 71, 13,
+			80, 137, 13, 83, 21, 52, 49, 40, 71, 6, 37, 49, 40, 55, 40, 65, 0, 0, 7, 196, 77, 2, 69, 12, 20, 7, 196, 13, 162, 193,
+			40, 20, 0, 6, 195, 13, 165, 74, 20, 8, 197, 8, 16, 129, 12, 128, 66, 0, 0, 0, 7, 196, 64, 50, 1, 40, 20, 7, 196, 45,
+			32, 67, 104, 20, 0, 6, 195, 93, 165, 74, 20, 0, 13, 66, 17, 32, 72, 6, 111, 49, 47, 111, 51, 0, 24, 0, 0, 8, 133, 23,
+			4, 15, 196, 135, 20, 7, 196, 77, 162, 207, 48, 20, 8, 133, 11, 15, 16, 196, 135, 20, 0, 6, 195, 93, 38, 74, 20, 6, 195, 77,
+			166, 74, 20, 9, 134, 19, 11, 15, 16, 196, 135, 20, 8, 197, 9, 161, 21, 73, 160, 20, 0, 10, 135, 23, 26, 14, 9, 5, 196, 135,
+			20, 11, 136, 23, 26, 7, 1, 18, 4, 197, 186, 20, 11, 136, 197, 155, 23, 9, 19, 26, 3, 26, 20, 0, 8, 133, 23, 4, 15, 197,
+			130, 20, 8, 133, 16, 1, 4, 197, 130, 20, 7, 132, 11, 15, 197, 155, 20, 0, 9, 134, 19, 20, 25, 7, 197, 130, 20, 7, 196, 64,
+			197, 207, 52, 20, 7, 196, 17, 33, 207, 52, 20, 9, 134, 2, 12, 1, 4, 197, 130, 20, 0, 15, 140, 19, 3, 8, 197, 130, 25, 2,
+			25, 197, 155, 13, 25, 20, 10, 135, 26, 2, 12, 1, 4, 197, 130, 20, 10, 135, 23, 9, 196, 133, 4, 197, 130, 20, 8, 197, 12, 131,
+			85, 73, 160, 20, 21, 73, 88, 147, 129, 36, 116, 133, 81, 65, 64, 58, 37, 50, 109, 81, 34, 109, 47, 0, 67, 0, 11, 136, 26, 23,
+			9, 196, 133, 4, 197, 130, 20, 11, 136, 26, 13, 9, 195, 179, 20, 197, 130, 20, 11, 136, 23, 13, 9, 195, 179, 20, 197, 130, 20, 8,
+			133, 12, 197, 155, 14, 9, 20, 0, 6, 195, 13, 166, 64, 72, 0, 7, 196, 77, 4, 149, 40, 20, 9, 134, 11, 23, 9, 20, 197, 130,
+			20, 7, 196, 17, 38, 153, 40, 20, 7, 196, 17, 33, 193, 40, 20, 0, 10, 135, 197, 155, 12, 5, 16, 197, 130, 20, 0, 0, 13, 138,
+			26, 23, 9, 195, 179, 26, 197, 130, 2, 25, 20, 8, 133, 18, 1, 4, 197, 186, 20, 9, 134, 4, 197, 186, 7, 15, 13, 20, 0, 9,
+			134, 26, 10, 5, 4, 197, 186, 20, 0, 0, 12, 137, 2, 25, 197, 130, 25, 197, 155, 13, 25, 76, 0, 13, 138, 19, 26, 12, 9, 2,
+			25, 197, 155, 13, 25, 20, 13, 138, 13, 9, 1, 197, 130, 25, 197, 155, 13, 25, 76, 0, 13, 138, 19, 3, 8, 197, 130, 15, 19, 26,
+			3, 26, 20, 7, 196, 64, 50, 1, 52, 20, 0, 10, 135, 26, 23, 195, 179, 4, 197, 186, 20, 10, 135, 19, 26, 11, 15, 4, 197, 186,
+			20, 7, 195, 61, 32, 90, 72, 28, 0, 11, 136, 26, 197, 130, 21, 19, 26, 3, 26, 20, 0, 0, 7, 196, 80, 179, 137, 20, 20, 7,
+			196, 17, 33, 193, 52, 20, 7, 196, 13, 162, 193, 52, 20, 0, 11, 136, 26, 12, 1, 26, 197, 130, 2, 25, 20, 0, 12, 137, 26, 12,
+			196, 133, 11, 197, 130, 2, 25, 20, 0, 13, 138, 23, 19, 9, 196, 133, 11, 197, 130, 2, 25, 20, 13, 138, 2, 18, 26, 13, 9, 15,
+			197, 130, 2, 25, 20, 0, 7, 196, 93, 50, 69, 40, 20, 7, 196, 76, 50, 12, 4, 20, 0, 11, 136, 26, 23, 9, 15, 197, 130, 2,
+			25, 20, 11, 136, 12, 196, 133, 11, 197, 130, 2, 25, 20, 8, 197, 76, 50, 12, 5, 0, 20, 0, 8, 133, 7, 26, 9, 196, 133, 20,
+			6, 195, 60, 35, 203, 76, 0, 8, 133, 197, 155, 14, 9, 10, 20, 9, 134, 4, 197, 186, 7, 1, 13, 20, 0, 9, 134, 23, 196, 153,
+			4, 197, 186, 20, 9, 134, 19, 26, 25, 4, 197, 186, 20, 8, 133, 7, 26, 9, 196, 135, 20, 9, 134, 196, 135, 16, 1, 19, 26, 20,
+			10, 135, 11, 20, 195, 179, 18, 25, 13, 76, 0, 9, 134, 26, 19, 26, 25, 196, 135, 20, 10, 135, 26, 4, 18, 1, 4, 197, 186, 20,
+			9, 134, 26, 2, 9, 5, 197, 155, 20, 8, 197, 77, 162, 204, 36, 160, 20, 9, 134, 19, 11, 18, 25, 196, 135, 20, 9, 134, 16, 12,
+			23, 1, 196, 135, 20, 9, 134, 13, 197, 188, 25, 196, 135, 20, 9, 134, 13, 4, 12, 9, 196, 135, 20, 9, 134, 197, 130, 7, 1, 196,
+			135, 20, 0, 8, 133, 197, 188, 7, 15, 13, 20, 10, 135, 23, 26, 14, 9, 5, 197, 155, 20, 9, 134, 11, 18, 5, 197, 155, 12, 20,
+			10, 135, 4, 197, 186, 7, 1, 196, 135, 20, 11, 66, 13, 96, 89, 37, 84, 6, 37, 0, 17, 0, 9, 134, 197, 155, 16, 9, 196, 133,
+			20, 6, 195, 76, 48, 76, 20, 7, 132, 18, 25, 196, 135, 20, 7, 132, 16, 9, 196, 135, 20, 13, 138, 14, 9, 5, 11, 20, 195, 179,
+			18, 25, 13, 76, 0, 8, 133, 26, 13, 21, 197, 155, 20, 8, 133, 16, 19, 21, 196, 135, 20, 8, 133, 11, 18, 25, 196, 135, 20, 9,
+			134, 4, 197, 186, 7, 1, 10, 20, 0, 9, 134, 26, 197, 188, 25, 196, 135, 20, 10, 135, 26, 7, 195, 179, 4, 197, 186, 20, 9, 134,
+			23, 19, 26, 25, 196, 135, 20, 8, 197, 13, 160, 201, 77, 160, 20, 10, 135, 3, 8, 195, 179, 4, 197, 186, 20, 7, 195, 13, 166, 74,
+			72, 12, 0, 10, 135, 23, 4, 26, 9, 1, 196, 135, 20, 11, 136, 23, 3, 8, 195, 179, 4, 197, 186, 20, 10, 135, 197, 155, 13, 9,
+			1, 196, 135, 20, 11, 136, 19, 26, 11, 195, 179, 4, 197, 186, 20, 10, 135, 19, 16, 19, 9, 5, 196, 135, 20, 9, 134, 19, 197, 130,
+			25, 197, 132, 20, 11, 136, 19, 3, 8, 195, 179, 4, 197, 186, 20, 7, 132, 18, 25, 197, 130, 20, 7, 132, 16, 9, 197, 130, 20, 11,
+			136, 2, 197, 186, 4, 26, 9, 19, 26, 20, 0, 8, 133, 16, 19, 21, 197, 130, 20, 8, 133, 13, 9, 1, 197, 130, 20, 8, 133, 11,
+			18, 25, 197, 130, 20, 8, 133, 13, 9, 1, 197, 130, 76, 12, 137, 2, 196, 153, 4, 26, 9, 5, 19, 26, 76, 0, 9, 134, 26, 197,
+			188, 25, 197, 130, 20, 9, 134, 23, 19, 26, 25, 197, 130, 20, 9, 134, 197, 155, 3, 9, 21, 2, 20, 9, 134, 4, 14, 9, 1, 197,
+			130, 20, 6, 195, 13, 166, 77, 77, 0, 8, 133, 23, 19, 21, 197, 132, 20, 10, 135, 23, 4, 26, 9, 1, 197, 130, 20, 10, 135, 197,
+			155, 13, 9, 1, 197, 130, 20, 6, 195, 45, 38, 74, 20, 8, 133, 3, 26, 25, 197, 132, 20, 10, 135, 3, 8, 3, 9, 1, 197, 130,
+			20, 0, 9, 134, 26, 13, 9, 5, 197, 132, 20, 9, 134, 23, 20, 18, 25, 197, 132, 20, 7, 132, 20, 25, 197, 130, 20, 23, 66, 16,
+			80, 72, 109, 84, 111, 55, 6, 35, 57, 0, 81, 118, 111, 108, 97, 105, 108, 108, 101, 32, 25, 66, 16, 80, 72, 109, 55, 35, 65, 109,
+			88, 6, 114, 0, 82, 108, 97, 32, 109, 97, 105, 115, 111, 110, 32, 17, 66, 16, 80, 72, 109, 57, 40, 51, 109, 0, 81, 105, 117, 114,
+			101, 32, 19, 66, 16, 80, 72, 109, 83, 35, 49, 47, 111, 0, 81, 102, 97, 99, 116, 111, 32, 14, 70, 52, 21, 82, 36, 49, 64, 65,
+			111, 51, 37, 89, 0, 0, 0, 7, 196, 105, 114, 69, 40, 20, 9, 134, 26, 19, 26, 25, 197, 130, 20, 6, 195, 104, 67, 205, 20, 7,
+			196, 80, 179, 137, 40, 20, 7, 196, 77, 68, 149, 40, 20, 9, 134, 19, 11, 18, 25, 197, 130, 20, 9, 134, 16, 12, 23, 1, 197, 130,
+			20, 9, 134, 13, 197, 188, 25, 197, 130, 20, 9, 134, 13, 4, 12, 9, 197, 130, 20, 9, 134, 197, 130, 7, 1, 197, 130, 20, 0, 8,
+			197, 64, 50, 14, 36, 80, 20, 10, 135, 4, 197, 186, 7, 1, 197, 130, 20, 0, 0, 8, 133, 197, 188, 7, 1, 10, 20, 8, 133, 23,
+			9, 4, 197, 186, 20, 8, 133, 23, 1, 4, 197, 186, 20, 8, 133, 19, 1, 4, 197, 186, 20, 0, 9, 134, 26, 2, 21, 4, 197, 186,
+			20, 9, 134, 20, 18, 21, 4, 197, 186, 20, 9, 134, 19, 3, 5, 4, 197, 186, 20, 18, 4, 95, 4, 16, 20, 10, 48, 91, 109, 119,
+			6, 37, 50, 109, 49, 10, 0, 0, 10, 135, 19, 16, 196, 153, 4, 197, 186, 20, 10, 135, 19, 9, 196, 133, 4, 197, 186, 20, 0, 8,
+			133, 197, 188, 7, 1, 13, 20, 11, 136, 26, 2, 18, 26, 25, 4, 197, 186, 20, 9, 198, 104, 20, 19, 81, 38, 128, 20, 11, 136, 23,
+			19, 9, 196, 133, 4, 197, 186, 20, 9, 198, 77, 2, 69, 65, 38, 128, 20, 9, 198, 64, 244, 19, 81, 38, 128, 20, 0, 8, 133, 26,
+			197, 188, 21, 10, 20, 0, 7, 196, 40, 80, 149, 80, 66, 0, 7, 132, 13, 197, 188, 25, 20, 0, 11, 136, 19, 16, 18, 1, 23, 4,
+			197, 186, 20, 22, 67, 16, 145, 83, 116, 6, 37, 57, 109, 89, 6, 37, 51, 109, 0, 81, 105, 114, 97, 101, 32, 0, 6, 195, 104, 214,
+			76, 20, 9, 134, 197, 155, 16, 9, 196, 153, 20, 12, 137, 19, 11, 18, 26, 25, 23, 4, 197, 186, 20, 6, 195, 52, 243, 64, 20, 6,
+			195, 40, 83, 64, 20, 6, 195, 16, 19, 64, 20, 0, 7, 196, 105, 114, 69, 52, 20, 7, 196, 17, 162, 69, 48, 20, 0, 0, 0, 0,
+			7, 196, 76, 50, 12, 36, 20, 7, 196, 52, 67, 5, 40, 20, 7, 196, 40, 242, 131, 104, 20, 7, 196, 13, 160, 201, 40, 20, 7, 196,
+			12, 131, 5, 40, 20, 14, 4, 95, 20, 12, 4, 88, 47, 6, 112, 55, 72, 114, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 6,
+			195, 76, 181, 74, 20, 0, 0, 9, 134, 197, 155, 14, 9, 196, 133, 20, 6, 195, 76, 181, 76, 20, 8, 133, 14, 21, 4, 197, 186, 20,
+			7, 132, 2, 9, 196, 135, 20, 0, 7, 196, 93, 54, 153, 40, 20, 9, 134, 197, 155, 3, 9, 19, 26, 20, 8, 133, 19, 13, 21, 196,
+			135, 20, 8, 133, 7, 14, 9, 196, 135, 20, 8, 133, 3, 14, 9, 196, 135, 20, 12, 68, 5, 32, 213, 76, 35, 34, 49, 40, 89, 0,
+			0, 9, 134, 197, 188, 7, 1, 196, 135, 20, 10, 135, 26, 197, 130, 21, 4, 197, 186, 20, 6, 195, 92, 181, 74, 20, 9, 134, 197, 155,
+			14, 9, 196, 135, 20, 8, 197, 77, 68, 154, 21, 0, 20, 10, 135, 19, 20, 18, 21, 4, 197, 186, 20, 9, 134, 19, 20, 12, 9, 196,
+			135, 20, 9, 134, 11, 18, 196, 153, 196, 135, 20, 0, 10, 135, 23, 11, 18, 196, 153, 196, 135, 20, 10, 135, 19, 11, 18, 196, 153, 196,
+			135, 20, 8, 133, 11, 16, 9, 196, 133, 20, 0, 7, 132, 2, 25, 196, 135, 20, 14, 6, 3, 15, 21, 16, 195, 169, 49, 40, 48, 6,
+			109, 0, 7, 132, 2, 25, 196, 135, 76, 14, 67, 17, 97, 0, 72, 37, 84, 37, 72, 6, 37, 0, 17, 0, 8, 133, 23, 11, 21, 196,
+			135, 20, 8, 133, 19, 11, 21, 196, 135, 20, 8, 133, 14, 196, 153, 196, 135, 20, 8, 133, 11, 16, 9, 196, 135, 20, 7, 196, 29, 112,
+			82, 104, 20, 8, 133, 3, 12, 9, 196, 135, 20, 6, 195, 40, 83, 85, 72, 0, 9, 134, 26, 23, 9, 1, 196, 135, 20, 9, 134, 23,
+			19, 9, 1, 196, 135, 20, 8, 197, 77, 65, 82, 13, 160, 20, 6, 195, 76, 181, 66, 20, 8, 197, 64, 148, 218, 13, 160, 20, 0, 7,
+			132, 2, 25, 197, 130, 20, 7, 132, 2, 25, 197, 130, 76, 0, 8, 133, 23, 11, 21, 197, 130, 20, 8, 133, 19, 11, 21, 197, 130, 20,
+			8, 133, 11, 16, 9, 197, 130, 20, 11, 136, 7, 18, 26, 13, 9, 5, 196, 135, 20, 8, 133, 3, 12, 9, 197, 130, 20, 0, 12, 137,
+			16, 9, 15, 197, 130, 2, 25, 197, 155, 20, 9, 134, 26, 23, 9, 1, 197, 130, 20, 9, 134, 23, 19, 9, 1, 197, 130, 20, 12, 137,
+			11, 19, 26, 20, 1, 197, 130, 196, 135, 20, 0, 8, 133, 26, 19, 21, 197, 132, 20, 9, 134, 13, 11, 14, 196, 133, 3, 20, 0, 10,
+			135, 3, 26, 3, 26, 196, 133, 3, 20, 11, 136, 2, 18, 26, 13, 9, 1, 197, 130, 20, 7, 132, 2, 9, 197, 130, 20, 21, 66, 12,
+			144, 89, 37, 72, 109, 84, 6, 35, 68, 0, 81, 100, 101, 118, 97, 110, 116, 32, 6, 194, 12, 144, 72, 12, 0, 6, 195, 64, 145, 76,
+			20, 11, 136, 13, 19, 26, 3, 26, 196, 133, 3, 20, 8, 133, 7, 14, 9, 197, 130, 20, 8, 133, 3, 14, 9, 197, 130, 20, 0, 9,
+			134, 197, 188, 7, 1, 197, 130, 20, 7, 196, 104, 115, 137, 40, 20, 9, 134, 197, 155, 14, 9, 197, 130, 20, 9, 134, 19, 20, 12, 9,
+			197, 130, 20, 0, 0, 6, 195, 28, 20, 0, 20, 0, 0, 6, 195, 93, 38, 133, 20, 7, 196, 92, 179, 5, 40, 20, 9, 134, 16, 196,
+			153, 4, 197, 186, 20, 9, 134, 196, 135, 13, 9, 19, 26, 20, 0, 10, 135, 23, 16, 196, 153, 4, 197, 186, 20, 6, 195, 64, 145, 74,
+			20, 8, 197, 13, 162, 206, 36, 80, 20, 8, 197, 52, 22, 9, 52, 16, 65, 0, 8, 133, 13, 197, 155, 3, 9, 20, 0, 8, 133, 23,
+			197, 188, 25, 10, 20, 19, 71, 12, 244, 25, 72, 145, 200, 80, 49, 6, 111, 48, 112, 51, 35, 57, 47, 0, 0, 0, 10, 135, 197, 155,
+			16, 9, 5, 19, 26, 20, 0, 0, 0, 9, 198, 92, 50, 18, 104, 50, 74, 20, 0, 0, 0, 10, 67, 61, 32, 193, 111, 51, 49, 35,
+			0, 0, 7, 132, 13, 18, 196, 133, 20, 16, 70, 12, 128, 82, 52, 85, 82, 91, 35, 51, 65, 109, 51, 0, 66, 20, 67, 32, 16, 128,
+			107, 35, 71, 37, 55, 37, 47, 111, 84, 6, 35, 50, 112, 0, 24, 10, 135, 11, 20, 195, 179, 18, 26, 25, 76, 0, 7, 132, 23, 1,
+			197, 188, 20, 7, 196, 12, 131, 1, 40, 20, 0, 9, 134, 19, 11, 18, 26, 196, 133, 20, 0, 8, 133, 19, 11, 21, 197, 155, 20, 10,
+			135, 16, 19, 20, 18, 26, 196, 133, 20, 7, 132, 12, 9, 197, 186, 20, 8, 133, 11, 1, 18, 196, 135, 20, 13, 138, 14, 9, 5, 11,
+			20, 195, 179, 18, 26, 25, 76, 0, 7, 132, 23, 18, 196, 133, 20, 9, 134, 23, 9, 5, 18, 196, 135, 20, 7, 132, 197, 155, 12, 5,
+			20, 8, 133, 7, 18, 25, 197, 186, 20, 0, 9, 134, 23, 7, 18, 25, 197, 186, 20, 7, 132, 13, 1, 197, 188, 20, 7, 132, 12, 9,
+			197, 188, 20, 7, 196, 29, 32, 83, 104, 20, 0, 8, 197, 29, 38, 141, 36, 160, 20, 7, 132, 7, 1, 197, 155, 20, 0, 8, 133, 23,
+			13, 21, 197, 155, 20, 0, 0, 10, 135, 20, 18, 26, 196, 153, 197, 155, 20, 8, 133, 11, 16, 9, 196, 153, 20, 0, 13, 69, 77, 68,
+			133, 21, 64, 89, 47, 51, 37, 47, 0, 19, 67, 65, 3, 210, 48, 111, 72, 48, 111, 51, 6, 40, 76, 67, 37, 49, 0, 24, 0, 0,
+			9, 134, 197, 188, 18, 196, 133, 3, 20, 9, 134, 2, 18, 14, 196, 133, 3, 20, 0, 10, 135, 197, 188, 7, 14, 196, 133, 3, 20, 7,
+			196, 92, 179, 5, 64, 20, 10, 135, 20, 3, 8, 14, 196, 133, 3, 20, 16, 70, 24, 244, 151, 5, 33, 0, 83, 111, 51, 58, 109, 51,
+			72, 0, 0, 9, 134, 197, 155, 14, 9, 196, 153, 20, 10, 135, 19, 197, 130, 1, 2, 197, 130, 20, 0, 8, 133, 3, 12, 196, 133, 3,
+			20, 7, 195, 81, 147, 73, 72, 12, 0, 9, 134, 197, 155, 12, 196, 133, 3, 20, 0, 9, 198, 104, 211, 137, 20, 164, 218, 20, 10, 135,
+			197, 130, 197, 188, 196, 133, 3, 20, 7, 196, 45, 114, 67, 104, 20, 10, 135, 4, 18, 197, 188, 196, 133, 3, 20, 0, 8, 133, 23, 196,
+			133, 20, 16, 20, 24, 69, 65, 38, 133, 104, 80, 48, 91, 109, 88, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 20, 73,
+			72, 21, 1, 80, 245, 73, 48, 193, 64, 34, 35, 47, 35, 47, 40, 57, 0, 67, 0, 6, 195, 29, 35, 205, 20, 0, 8, 133, 23, 9,
+			5, 197, 186, 20, 6, 195, 64, 146, 128, 20, 6, 195, 16, 18, 128, 20, 6, 195, 40, 82, 128, 72, 0, 7, 196, 105, 54, 153, 40, 20,
+			7, 196, 76, 179, 5, 40, 20, 0, 14, 69, 52, 17, 1, 52, 80, 65, 35, 72, 6, 35, 65, 0, 12, 137, 16, 15, 14, 9, 5, 23,
+			1, 197, 188, 8, 0, 9, 198, 93, 54, 133, 64, 54, 128, 20, 6, 195, 13, 160, 201, 20, 0, 7, 132, 197, 155, 14, 9, 20, 9, 134,
+			19, 11, 23, 1, 197, 155, 20, 7, 195, 81, 147, 64, 72, 12, 18, 67, 57, 83, 64, 50, 40, 65, 55, 111, 49, 0, 81, 108, 111, 99,
+			107, 32, 0, 9, 134, 12, 197, 188, 25, 19, 26, 20, 0, 0, 0, 6, 195, 92, 181, 80, 20, 7, 132, 13, 18, 196, 153, 20, 18, 67,
+			52, 243, 128, 65, 114, 91, 109, 51, 0, 66, 81, 99, 104, 101, 114, 32, 18, 67, 52, 243, 128, 65, 111, 50, 35, 65, 37, 0, 67, 81,
+			97, 109, 105, 32, 0, 8, 133, 3, 14, 9, 196, 153, 20, 0, 6, 195, 77, 50, 74, 20, 0, 0, 17, 8, 3, 15, 12, 12, 195, 168,
+			7, 5, 49, 111, 55, 109, 90, 0, 66, 16, 67, 52, 116, 128, 65, 35, 81, 6, 37, 89, 47, 109, 51, 0, 24, 0, 7, 196, 93, 67,
+			195, 104, 20, 7, 196, 92, 116, 129, 40, 20, 22, 73, 52, 17, 5, 52, 242, 83, 20, 195, 5, 65, 35, 72, 65, 40, 35, 88, 6, 109,
+			55, 0, 12, 68, 17, 34, 86, 20, 72, 34, 35, 57, 84, 0, 0, 8, 197, 64, 50, 14, 36, 160, 20, 0, 9, 134, 23, 19, 11, 1,
+			197, 188, 20, 9, 134, 18, 26, 196, 153, 197, 188, 20, 0, 0, 9, 134, 23, 23, 9, 5, 197, 186, 20, 10, 135, 23, 23, 9, 5, 18,
+			196, 135, 20, 10, 135, 23, 7, 9, 196, 153, 196, 135, 20, 0, 9, 134, 19, 3, 8, 14, 196, 133, 20, 10, 135, 7, 12, 196, 153, 4,
+			197, 186, 20, 16, 3, 226, 132, 162, 47, 51, 6, 109, 57, 72, 65, 35, 51, 49, 0, 0, 8, 133, 26, 12, 15, 196, 135, 20, 9, 134,
+			16, 18, 196, 153, 197, 188, 20, 8, 133, 11, 15, 18, 196, 135, 20, 0, 11, 136, 23, 19, 26, 3, 26, 14, 196, 133, 20, 7, 132, 23,
+			18, 196, 153, 20, 9, 134, 19, 13, 196, 153, 196, 135, 20, 9, 134, 19, 11, 15, 18, 196, 135, 20, 8, 133, 18, 15, 4, 197, 186, 20,
+			9, 134, 12, 5, 197, 186, 196, 135, 20, 0, 9, 134, 18, 26, 196, 153, 197, 186, 20, 7, 196, 64, 50, 15, 52, 20, 7, 196, 12, 131,
+			1, 64, 20, 0, 0, 7, 132, 18, 196, 133, 2, 20, 12, 137, 7, 18, 26, 196, 133, 197, 186, 196, 135, 20, 0, 8, 133, 26, 12, 15,
+			197, 130, 20, 9, 134, 11, 12, 14, 196, 133, 3, 20, 13, 138, 4, 197, 186, 7, 14, 9, 196, 153, 196, 135, 20, 0, 7, 196, 104, 37,
+			82, 104, 20, 9, 198, 77, 3, 204, 77, 160, 218, 20, 9, 198, 76, 181, 201, 21, 32, 218, 20, 10, 135, 19, 3, 8, 14, 196, 133, 3,
+			20, 0, 9, 134, 19, 11, 18, 26, 196, 153, 20, 14, 6, 13, 195, 188, 19, 12, 9, 65, 40, 89, 55, 37, 0, 0, 10, 135, 16, 19,
+			20, 18, 26, 196, 153, 20, 5, 194, 8, 240, 8, 0, 8, 133, 26, 14, 15, 197, 130, 20, 9, 134, 18, 197, 188, 196, 133, 3, 20, 9,
+			134, 13, 197, 188, 196, 133, 3, 20, 0, 9, 134, 26, 23, 1, 18, 197, 130, 20, 9, 134, 26, 20, 1, 18, 197, 130, 20, 9, 134, 23,
+			20, 1, 18, 197, 130, 20, 9, 134, 23, 16, 1, 18, 197, 130, 20, 7, 132, 11, 1, 197, 188, 20, 0, 12, 69, 12, 130, 76, 48, 144,
+			76, 37, 55, 37, 0, 0, 0, 0, 7, 196, 52, 147, 3, 104, 20, 22, 72, 77, 1, 67, 36, 19, 9, 80, 80, 89, 48, 109, 89, 57,
+			35, 55, 37, 47, 6, 109, 0, 0, 0, 0, 0, 9, 134, 11, 15, 197, 132, 3, 26, 20, 12, 137, 13, 9, 5, 12, 9, 197, 155, 13,
+			25, 76, 0, 0, 9, 198, 4, 195, 9, 76, 243, 128, 65, 0, 0, 7, 196, 76, 181, 82, 92, 20, 0, 8, 197, 77, 163, 9, 9, 144,
+			20, 0, 9, 134, 26, 19, 20, 196, 133, 16, 20, 0, 6, 195, 92, 64, 64, 20, 6, 195, 17, 144, 128, 20, 0, 7, 196, 92, 54, 149,
+			40, 20, 7, 196, 81, 35, 195, 104, 20, 7, 196, 77, 67, 195, 104, 20, 0, 0, 6, 195, 77, 67, 9, 20, 8, 133, 16, 18, 15, 196,
+			135, 20, 0, 9, 134, 26, 7, 18, 15, 196, 135, 20, 7, 132, 19, 19, 196, 133, 20, 8, 133, 19, 196, 133, 3, 26, 20, 6, 195, 76,
+			64, 64, 17, 0, 9, 134, 26, 197, 130, 195, 179, 10, 20, 9, 134, 23, 11, 18, 195, 179, 10, 20, 9, 134, 19, 11, 18, 195, 179, 10,
+			20, 7, 196, 13, 161, 83, 104, 20, 0, 6, 195, 92, 193, 74, 20, 8, 197, 13, 162, 206, 36, 160, 20, 0, 8, 133, 26, 14, 15, 197,
+			155, 20, 8, 133, 26, 4, 15, 196, 135, 20, 8, 133, 19, 20, 15, 196, 135, 20, 6, 195, 16, 32, 77, 20, 16, 67, 57, 97, 1, 109,
+			50, 83, 35, 58, 72, 109, 6, 35, 0, 17, 0, 9, 134, 7, 15, 197, 155, 196, 135, 20, 0, 7, 196, 61, 53, 18, 104, 20, 10, 135,
+			11, 197, 130, 195, 179, 196, 135, 20, 0, 8, 197, 17, 37, 201, 77, 160, 20, 0, 12, 137, 16, 18, 26, 25, 10, 197, 155, 196, 135, 20,
+			21, 67, 64, 17, 197, 48, 109, 57, 75, 72, 6, 35, 58, 50, 0, 81, 100, 111, 119, 110, 32, 17, 67, 64, 17, 197, 48, 109, 57, 75,
+			6, 35, 48, 0, 81, 117, 112, 32, 0, 8, 133, 26, 4, 15, 197, 130, 20, 11, 136, 23, 19, 26, 3, 26, 14, 196, 153, 20, 6, 195,
+			92, 179, 208, 20, 8, 133, 20, 12, 15, 197, 130, 20, 8, 133, 19, 20, 15, 197, 130, 20, 0, 6, 195, 92, 193, 67, 20, 7, 196, 92,
+			68, 129, 64, 20, 0, 10, 135, 26, 18, 195, 179, 19, 197, 130, 20, 8, 197, 104, 116, 129, 77, 160, 20, 10, 135, 23, 18, 195, 179, 19,
+			197, 130, 20, 10, 135, 14, 9, 195, 179, 19, 197, 130, 20, 6, 195, 16, 32, 74, 20, 0, 11, 136, 23, 26, 18, 195, 179, 19, 197, 130,
+			20, 11, 136, 19, 20, 18, 26, 5, 7, 197, 130, 20, 5, 194, 40, 16, 76, 0, 9, 134, 26, 197, 130, 195, 179, 23, 20, 12, 137, 23,
+			26, 14, 9, 195, 179, 19, 197, 130, 20, 6, 195, 81, 146, 128, 20, 8, 133, 16, 18, 15, 197, 130, 20, 8, 133, 7, 1, 19, 197, 130,
+			20, 6, 195, 12, 194, 64, 20, 0, 13, 138, 26, 197, 188, 195, 179, 197, 130, 11, 197, 130, 20, 9, 134, 26, 7, 18, 15, 197, 130, 20,
+			7, 196, 104, 116, 129, 8, 20, 11, 136, 23, 3, 8, 197, 130, 15, 197, 132, 20, 7, 196, 53, 35, 195, 104, 20, 6, 195, 36, 50, 0,
+			72, 0, 0, 9, 198, 76, 50, 12, 36, 38, 64, 20, 9, 198, 80, 179, 137, 21, 54, 128, 20, 0, 0, 7, 196, 92, 19, 3, 104, 20,
+			7, 196, 77, 160, 218, 4, 20, 0, 0, 8, 133, 16, 18, 15, 197, 155, 20, 9, 198, 29, 38, 141, 37, 54, 128, 20, 0, 0, 12, 68,
+			40, 19, 133, 80, 75, 35, 50, 109, 47, 0, 0, 9, 134, 19, 3, 8, 14, 196, 153, 20, 6, 195, 64, 20, 154, 20, 13, 69, 16, 147,
+			135, 33, 144, 116, 37, 68, 81, 37, 0, 0, 6, 195, 80, 18, 201, 76, 0, 11, 136, 11, 20, 195, 179, 18, 5, 13, 21, 76, 10, 199,
+			12, 19, 129, 88, 84, 129, 48, 66, 0, 9, 198, 93, 38, 133, 77, 160, 218, 20, 7, 196, 92, 181, 82, 92, 20, 7, 196, 92, 116, 129,
+			52, 20, 12, 68, 12, 148, 131, 4, 117, 37, 51, 49, 35, 0, 0, 6, 195, 8, 80, 218, 20, 18, 4, 16, 197, 130, 11, 48, 40, 58,
+			49, 6, 111, 84, 50, 37, 49, 0, 24, 0, 14, 139, 14, 9, 5, 11, 20, 195, 179, 18, 5, 13, 21, 76, 9, 198, 61, 50, 69, 53,
+			49, 84, 65, 0, 0, 7, 196, 9, 35, 195, 104, 20, 0, 8, 133, 7, 4, 25, 197, 188, 8, 0, 0, 9, 134, 19, 11, 1, 18, 196,
+			135, 20, 9, 134, 16, 197, 130, 15, 196, 135, 20, 0, 10, 135, 23, 16, 197, 130, 15, 196, 135, 20, 10, 135, 19, 26, 3, 26, 15, 196,
+			135, 20, 10, 135, 19, 16, 197, 130, 15, 196, 135, 20, 0, 10, 135, 26, 197, 130, 196, 133, 3, 26, 20, 8, 197, 12, 128, 201, 20, 160,
+			20, 18, 70, 4, 225, 197, 48, 144, 193, 35, 50, 81, 109, 55, 37, 49, 35, 0, 66, 18, 67, 37, 65, 0, 37, 15, 47, 35, 49, 15,
+			72, 35, 55, 109, 57, 0, 24, 0, 8, 133, 23, 12, 15, 196, 135, 20, 15, 70, 29, 32, 69, 12, 20, 192, 81, 51, 109, 49, 35, 89,
+			0, 19, 4, 95, 13, 3, 14, 50, 35, 72, 49, 51, 109, 97, 55, 6, 111, 50, 109, 0, 0, 9, 134, 23, 18, 195, 179, 196, 135, 20,
+			7, 132, 197, 155, 16, 9, 20, 9, 67, 56, 85, 192, 67, 38, 40, 0, 19, 71, 21, 99, 204, 85, 66, 79, 56, 109, 84, 111, 55, 6,
+			40, 91, 112, 50, 0, 0, 10, 135, 26, 23, 18, 195, 179, 196, 135, 20, 10, 135, 23, 16, 1, 197, 155, 196, 135, 20, 7, 196, 92, 181,
+			82, 104, 20, 10, 135, 19, 16, 1, 197, 155, 196, 135, 20, 10, 135, 19, 11, 18, 195, 179, 196, 135, 20, 10, 135, 13, 197, 130, 195, 179,
+			196, 135, 20, 7, 196, 12, 131, 9, 64, 20, 0, 6, 195, 104, 224, 74, 20, 11, 136, 26, 13, 197, 130, 195, 179, 196, 135, 20, 11, 136,
+			23, 16, 12, 5, 197, 155, 196, 135, 20, 11, 136, 19, 16, 12, 5, 197, 155, 196, 135, 20, 11, 136, 19, 11, 197, 130, 195, 179, 196, 135,
+			20, 11, 136, 16, 195, 179, 10, 197, 155, 196, 135, 20, 6, 195, 12, 194, 74, 20, 15, 67, 45, 5, 0, 49, 35, 48, 6, 37, 47, 35,
+			50, 0, 24, 0, 6, 195, 104, 224, 77, 20, 12, 137, 20, 18, 26, 196, 133, 197, 155, 196, 135, 20, 12, 137, 16, 18, 26, 196, 133, 197,
+			155, 196, 135, 20, 8, 133, 7, 14, 196, 133, 3, 20, 21, 67, 37, 68, 0, 37, 15, 47, 109, 65, 40, 15, 48, 111, 72, 111, 71, 50,
+			109, 0, 24, 13, 67, 76, 52, 201, 89, 49, 6, 35, 88, 37, 0, 17, 0, 10, 135, 23, 26, 2, 18, 15, 197, 132, 20, 13, 138, 23,
+			16, 18, 26, 196, 133, 197, 155, 196, 135, 20, 8, 133, 23, 12, 15, 197, 130, 20, 8, 133, 19, 16, 15, 197, 130, 20, 10, 135, 19, 16,
+			197, 130, 15, 197, 132, 20, 9, 134, 12, 7, 14, 196, 133, 3, 20, 0, 9, 134, 26, 7, 1, 4, 197, 130, 20, 7, 196, 104, 68, 129,
+			64, 20, 9, 134, 18, 195, 179, 19, 197, 130, 20, 9, 134, 12, 196, 133, 7, 197, 130, 20, 7, 196, 12, 132, 129, 64, 20, 12, 68, 12,
+			148, 131, 20, 49, 37, 51, 49, 109, 0, 0, 10, 135, 26, 2, 9, 5, 7, 197, 130, 20, 10, 135, 23, 2, 9, 5, 7, 197, 130, 20,
+			0, 5, 194, 16, 240, 76, 0, 6, 195, 44, 192, 80, 20, 8, 133, 11, 9, 19, 197, 130, 20, 6, 195, 40, 84, 212, 76, 0, 9, 134,
+			26, 23, 9, 19, 197, 130, 20, 9, 134, 26, 14, 9, 11, 197, 130, 20, 9, 134, 26, 13, 25, 19, 197, 130, 20, 7, 196, 104, 116, 129,
+			40, 20, 9, 134, 19, 16, 1, 19, 197, 130, 20, 9, 134, 19, 11, 9, 19, 197, 130, 20, 9, 134, 13, 1, 18, 26, 197, 130, 20, 13,
+			5, 10, 15, 19, 195, 169, 107, 111, 88, 6, 109, 0, 0, 10, 135, 19, 26, 3, 26, 15, 197, 130, 20, 6, 195, 44, 193, 74, 20, 0,
+			11, 136, 20, 18, 26, 196, 133, 19, 197, 130, 20, 9, 198, 52, 179, 137, 21, 54, 128, 20, 9, 198, 48, 115, 137, 21, 54, 128, 20, 9,
+			198, 9, 35, 137, 21, 54, 128, 20, 0, 12, 137, 197, 188, 195, 179, 197, 130, 11, 197, 130, 20, 10, 135, 23, 197, 155, 3, 9, 5, 12,
+			20, 12, 137, 19, 20, 18, 26, 196, 133, 19, 197, 130, 20, 0, 9, 134, 197, 130, 196, 133, 3, 26, 20, 7, 196, 45, 2, 83, 104, 20,
+			7, 196, 17, 162, 79, 8, 20, 0, 10, 135, 23, 197, 130, 196, 133, 3, 26, 20, 11, 136, 11, 20, 195, 179, 18, 5, 7, 15, 76, 15,
+			69, 16, 85, 137, 12, 80, 72, 37, 84, 6, 35, 57, 89, 0, 0, 8, 133, 26, 18, 15, 197, 155, 20, 0, 8, 133, 26, 197, 188, 25,
+			10, 20, 9, 134, 23, 26, 14, 15, 197, 155, 20, 7, 132, 19, 19, 196, 153, 20, 0, 9, 134, 16, 197, 130, 1, 3, 26, 20, 9, 134,
+			12, 197, 155, 14, 9, 10, 20, 14, 139, 14, 9, 5, 11, 20, 195, 179, 18, 5, 7, 15, 76, 0, 6, 195, 92, 64, 74, 20, 10, 135,
+			19, 16, 197, 130, 1, 3, 26, 20, 6, 195, 48, 144, 218, 20, 0, 6, 195, 92, 64, 77, 20, 0, 9, 134, 23, 26, 13, 195, 179, 3,
+			20, 6, 195, 92, 193, 80, 20, 0, 7, 196, 104, 116, 129, 52, 20, 0, 6, 195, 52, 240, 218, 20, 6, 195, 16, 20, 218, 20, 0, 0,
+			11, 136, 19, 3, 8, 197, 130, 1, 2, 25, 20, 16, 3, 95, 51, 88, 47, 91, 112, 120, 6, 109, 97, 80, 38, 37, 0, 0, 0, 6,
+			195, 81, 32, 70, 20, 0, 7, 132, 197, 188, 21, 10, 20, 0, 7, 132, 20, 12, 196, 133, 20, 0, 8, 133, 13, 4, 12, 196, 133, 20,
+			7, 196, 16, 84, 3, 104, 20, 11, 200, 52, 21, 20, 21, 34, 15, 72, 224, 65, 0, 0, 8, 133, 23, 14, 15, 197, 155, 20, 0, 10,
+			135, 23, 197, 130, 195, 179, 197, 188, 20, 0, 7, 196, 12, 131, 21, 64, 20, 10, 3, 95, 49, 67, 89, 47, 6, 111, 0, 0, 0, 0,
+			8, 133, 10, 1, 4, 197, 130, 20, 0, 9, 134, 19, 9, 1, 4, 197, 130, 20, 9, 134, 18, 26, 5, 4, 197, 130, 20, 9, 134, 11,
+			18, 1, 4, 197, 130, 20, 9, 134, 3, 8, 21, 4, 197, 130, 20, 0, 10, 135, 26, 18, 26, 5, 4, 197, 130, 20, 10, 135, 23, 11,
+			18, 1, 4, 197, 130, 20, 10, 135, 19, 11, 18, 1, 4, 197, 130, 20, 10, 135, 19, 3, 8, 21, 4, 197, 130, 20, 10, 135, 11, 197,
+			130, 1, 4, 197, 130, 20, 6, 195, 40, 84, 218, 20, 10, 135, 2, 18, 26, 25, 4, 197, 130, 20, 0, 11, 136, 26, 7, 196, 153, 19,
+			20, 197, 130, 20, 6, 195, 64, 50, 1, 20, 5, 194, 40, 80, 20, 18, 3, 95, 49, 57, 120, 109, 84, 38, 109, 47, 50, 6, 35, 97,
+			119, 109, 0, 0, 12, 137, 26, 7, 14, 9, 195, 179, 20, 197, 130, 20, 12, 137, 23, 7, 14, 9, 195, 179, 20, 197, 130, 20, 16, 3,
+			95, 49, 56, 111, 97, 109, 65, 50, 6, 35, 97, 119, 109, 0, 0, 9, 134, 19, 9, 15, 4, 197, 130, 20, 9, 134, 2, 195, 179, 4,
+			197, 130, 20, 15, 3, 95, 50, 67, 72, 84, 38, 6, 109, 97, 80, 38, 109, 0, 0, 10, 135, 23, 19, 9, 15, 4, 197, 130, 20, 10,
+			135, 3, 8, 18, 25, 16, 197, 130, 20, 0, 11, 136, 19, 11, 18, 26, 5, 16, 197, 130, 20, 11, 136, 19, 3, 8, 18, 25, 16, 197,
+			130, 20, 0, 6, 195, 17, 32, 80, 20, 0, 9, 134, 18, 26, 5, 197, 186, 2, 20, 26, 68, 12, 20, 148, 20, 49, 35, 51, 47, 71,
+			55, 6, 35, 50, 91, 0, 81, 98, 108, 97, 110, 99, 104, 101, 32, 0, 8, 197, 40, 84, 212, 20, 208, 76, 0, 16, 3, 95, 49, 49,
+			57, 109, 72, 109, 50, 6, 35, 97, 119, 109, 0, 0, 13, 3, 95, 49, 48, 120, 6, 109, 97, 109, 67, 119, 0, 0, 8, 133, 13, 4,
+			12, 196, 153, 20, 8, 133, 4, 197, 186, 7, 1, 20, 13, 3, 95, 51, 67, 47, 91, 6, 112, 89, 47, 35, 0, 15, 3, 95, 49, 51,
+			47, 91, 112, 50, 6, 35, 97, 119, 109, 0, 0, 15, 3, 95, 49, 50, 72, 84, 35, 50, 6, 35, 97, 119, 109, 0, 0, 11, 136, 26,
+			23, 9, 196, 153, 11, 19, 26, 20, 16, 3, 95, 49, 53, 48, 57, 109, 47, 50, 6, 35, 97, 119, 109, 0, 0, 16, 3, 95, 49, 52,
+			76, 47, 109, 51, 50, 6, 35, 97, 119, 109, 0, 0, 17, 3, 95, 49, 55, 97, 109, 72, 109, 65, 50, 6, 35, 97, 119, 109, 0, 0,
+			15, 3, 95, 49, 54, 91, 109, 89, 50, 6, 35, 97, 119, 109, 0, 0, 0, 13, 67, 81, 148, 192, 47, 112, 97, 113, 117, 112, 0, 24,
+			18, 3, 95, 55, 88, 97, 109, 72, 109, 65, 120, 6, 109, 97, 111, 50, 47, 0, 0, 15, 3, 95, 52, 67, 76, 47, 6, 109, 51, 112,
+			89, 47, 35, 0, 0, 0, 9, 134, 19, 11, 1, 18, 197, 188, 20, 0, 6, 195, 93, 69, 76, 20, 10, 199, 13, 165, 5, 73, 148, 212,
+			4, 65, 0, 10, 135, 19, 11, 18, 26, 25, 196, 135, 20, 0, 0, 0, 10, 135, 26, 197, 130, 195, 179, 197, 188, 20, 0, 10, 135, 26,
+			7, 14, 9, 5, 196, 135, 20, 15, 3, 95, 53, 67, 48, 38, 6, 109, 67, 119, 89, 109, 47, 0, 0, 13, 138, 19, 3, 8, 197, 130,
+			25, 197, 155, 13, 25, 20, 8, 197, 64, 145, 80, 73, 160, 20, 0, 11, 136, 7, 197, 130, 1, 19, 26, 3, 26, 20, 0, 12, 137, 19,
+			16, 197, 130, 1, 19, 26, 3, 26, 20, 0, 9, 134, 19, 16, 1, 4, 197, 130, 20, 7, 196, 13, 162, 207, 52, 20, 0, 10, 135, 26,
+			19, 9, 1, 4, 197, 130, 20, 10, 135, 23, 19, 9, 1, 4, 197, 130, 20, 8, 197, 77, 2, 69, 13, 160, 20, 10, 135, 13, 9, 195,
+			179, 20, 197, 130, 20, 0, 11, 136, 19, 20, 18, 26, 25, 7, 197, 130, 20, 11, 136, 16, 18, 26, 196, 133, 4, 197, 130, 20, 5, 194,
+			52, 16, 20, 5, 194, 52, 16, 76, 0, 12, 137, 23, 16, 18, 26, 196, 133, 4, 197, 130, 20, 12, 137, 19, 16, 18, 26, 196, 133, 4,
+			197, 130, 20, 0, 7, 196, 81, 37, 193, 40, 20, 13, 3, 95, 54, 67, 91, 6, 109, 97, 89, 109, 47, 0, 0, 10, 135, 26, 19, 9,
+			15, 4, 197, 130, 20, 10, 135, 19, 11, 18, 26, 25, 197, 130, 20, 0, 11, 136, 23, 23, 9, 195, 179, 4, 197, 130, 20, 0, 7, 132,
+			197, 188, 18, 5, 20, 8, 197, 77, 160, 218, 101, 0, 20, 12, 137, 3, 8, 197, 130, 195, 179, 4, 197, 130, 20, 0, 9, 134, 23, 10,
+			5, 4, 197, 186, 20, 7, 196, 77, 160, 218, 100, 20, 9, 134, 19, 20, 21, 4, 197, 186, 20, 7, 196, 45, 37, 193, 92, 20, 0, 10,
+			135, 26, 23, 196, 153, 4, 197, 186, 20, 8, 197, 77, 160, 218, 60, 208, 20, 10, 135, 11, 197, 130, 1, 4, 197, 186, 20, 10, 135, 7,
+			197, 130, 1, 4, 197, 186, 20, 0, 14, 139, 19, 26, 197, 130, 25, 2, 25, 197, 155, 13, 25, 20, 14, 139, 19, 3, 8, 12, 9, 2,
+			25, 197, 155, 13, 25, 20, 11, 136, 26, 7, 197, 130, 1, 4, 197, 186, 20, 9, 134, 23, 18, 195, 179, 197, 188, 20, 0, 11, 136, 19,
+			26, 12, 9, 197, 155, 13, 25, 20, 7, 132, 20, 12, 196, 153, 20, 12, 137, 19, 26, 3, 26, 196, 153, 4, 197, 186, 20, 12, 137, 3,
+			8, 197, 130, 15, 19, 26, 3, 26, 20, 7, 195, 81, 144, 200, 72, 12, 15, 3, 95, 50, 88, 72, 84, 35, 120, 6, 109, 97, 119, 35,
+			0, 0, 16, 5, 95, 48, 77, 65, 49, 47, 112, 97, 6, 111, 50, 117, 109, 0, 15, 3, 95, 55, 67, 97, 6, 109, 72, 109, 65, 89,
+			109, 47, 0, 0, 0, 11, 136, 2, 197, 130, 25, 19, 26, 3, 26, 20, 18, 5, 95, 48, 77, 65, 51, 65, 38, 37, 55, 57, 6, 35,
+			51, 72, 112, 0, 0, 17, 70, 88, 20, 137, 21, 65, 83, 84, 35, 34, 57, 109, 47, 109, 0, 67, 17, 5, 95, 48, 77, 65, 50, 65,
+			38, 37, 55, 57, 6, 111, 50, 112, 0, 0, 7, 196, 81, 37, 193, 52, 20, 0, 17, 5, 95, 48, 77, 65, 52, 71, 38, 37, 55, 57,
+			6, 111, 50, 112, 0, 0, 0, 6, 195, 80, 176, 64, 20, 0, 14, 3, 95, 56, 67, 6, 111, 97, 109, 65, 89, 109, 47, 0, 0, 27,
+			69, 76, 52, 133, 20, 224, 89, 49, 51, 37, 50, 51, 6, 37, 72, 109, 34, 0, 81, 114, 101, 97, 100, 101, 114, 32, 0, 8, 133, 26,
+			2, 9, 196, 135, 20, 8, 133, 23, 2, 9, 196, 135, 20, 0, 9, 134, 23, 197, 188, 25, 196, 135, 20, 9, 134, 23, 26, 2, 9, 196,
+			135, 20, 8, 133, 11, 196, 133, 19, 26, 20, 8, 133, 10, 5, 4, 197, 186, 20, 9, 134, 4, 18, 7, 1, 196, 135, 20, 9, 134, 3,
+			26, 11, 1, 196, 135, 20, 0, 7, 196, 53, 37, 67, 104, 20, 9, 134, 197, 130, 1, 4, 197, 186, 20, 9, 134, 2, 18, 5, 4, 197,
+			186, 20, 12, 137, 10, 5, 19, 20, 5, 197, 155, 13, 25, 76, 12, 3, 95, 63, 63, 89, 112, 65, 71, 111, 55, 0, 0, 10, 135, 26,
+			23, 9, 5, 4, 197, 186, 20, 8, 197, 77, 160, 218, 84, 160, 20, 7, 132, 11, 21, 196, 135, 20, 0, 8, 133, 26, 9, 1, 196, 135,
+			20, 8, 133, 26, 2, 25, 196, 135, 20, 8, 133, 23, 18, 25, 196, 135, 20, 8, 133, 20, 12, 9, 196, 135, 20, 8, 133, 19, 26, 25,
+			196, 135, 20, 12, 137, 18, 197, 188, 14, 9, 196, 153, 196, 135, 20, 8, 133, 13, 9, 5, 196, 135, 20, 10, 135, 12, 197, 155, 14, 9,
+			196, 133, 20, 8, 133, 13, 9, 5, 196, 135, 76, 0, 12, 137, 19, 16, 18, 26, 196, 153, 4, 197, 186, 20, 9, 134, 12, 197, 188, 25,
+			196, 135, 20, 9, 134, 7, 14, 9, 5, 196, 135, 20, 9, 134, 4, 26, 9, 1, 196, 135, 20, 9, 134, 4, 14, 9, 5, 196, 135, 20,
+			17, 3, 95, 52, 88, 76, 47, 109, 51, 120, 6, 109, 97, 80, 38, 37, 0, 0, 10, 135, 23, 7, 14, 9, 5, 196, 135, 20, 10, 135,
+			197, 155, 13, 9, 5, 196, 135, 20, 10, 135, 19, 26, 11, 12, 9, 196, 135, 20, 10, 135, 19, 16, 197, 130, 25, 196, 135, 20, 7, 196,
+			76, 54, 133, 64, 20, 10, 135, 12, 197, 155, 14, 9, 196, 135, 20, 10, 135, 3, 8, 23, 9, 1, 196, 135, 20, 9, 134, 3, 8, 15,
+			4, 197, 186, 20, 10, 135, 3, 8, 3, 9, 5, 196, 135, 20, 9, 134, 2, 195, 179, 4, 197, 186, 20, 17, 3, 95, 57, 67, 120, 6,
+			109, 84, 38, 109, 67, 119, 89, 109, 47, 0, 0, 9, 134, 197, 188, 7, 14, 9, 5, 20, 10, 135, 26, 18, 195, 179, 4, 197, 186, 20,
+			8, 133, 26, 7, 1, 197, 132, 20, 10, 135, 19, 13, 18, 15, 4, 197, 186, 20, 10, 135, 19, 197, 130, 15, 4, 197, 186, 20, 11, 136,
+			16, 19, 20, 18, 26, 25, 196, 135, 20, 11, 136, 2, 197, 186, 4, 26, 9, 196, 135, 20, 10, 135, 2, 18, 195, 179, 4, 197, 186, 20,
+			0, 11, 136, 19, 13, 18, 195, 179, 4, 197, 186, 20, 7, 132, 11, 21, 197, 130, 20, 11, 136, 7, 197, 130, 195, 179, 4, 197, 186, 20,
+			0, 8, 133, 26, 9, 1, 197, 130, 20, 8, 133, 26, 2, 25, 197, 130, 20, 8, 133, 23, 18, 25, 197, 130, 20, 8, 133, 20, 12, 9,
+			197, 130, 20, 8, 133, 19, 26, 25, 197, 130, 20, 0, 7, 132, 19, 21, 197, 132, 20, 9, 134, 12, 197, 188, 25, 197, 130, 20, 9, 134,
+			4, 26, 9, 1, 197, 130, 20, 7, 196, 12, 132, 149, 64, 20, 0, 10, 135, 19, 26, 11, 12, 9, 197, 130, 20, 10, 135, 19, 16, 19,
+			9, 1, 197, 130, 20, 10, 135, 12, 197, 155, 14, 9, 197, 130, 20, 10, 135, 3, 8, 23, 9, 1, 197, 130, 20, 18, 67, 56, 17, 0,
+			50, 6, 35, 72, 84, 35, 89, 0, 81, 119, 97, 115, 32, 18, 67, 56, 17, 0, 50, 6, 35, 47, 47, 112, 65, 0, 81, 116, 121, 109,
+			32, 16, 67, 56, 17, 0, 50, 6, 35, 47, 47, 111, 0, 81, 116, 111, 32, 16, 67, 56, 17, 0, 50, 6, 35, 47, 47, 109, 0, 81,
+			116, 101, 32, 17, 67, 56, 17, 0, 50, 6, 35, 47, 47, 114, 0, 81, 116, 196, 133, 32, 18, 67, 56, 17, 0, 50, 6, 35, 72, 67,
+			38, 109, 0, 81, 110, 105, 101, 32, 19, 67, 56, 17, 0, 50, 6, 35, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 18, 67, 56,
+			17, 0, 50, 6, 35, 72, 67, 37, 65, 0, 81, 110, 105, 109, 32, 19, 67, 56, 17, 0, 50, 6, 35, 72, 67, 38, 114, 0, 81, 110,
+			105, 196, 133, 32, 18, 67, 56, 17, 0, 50, 6, 35, 72, 50, 35, 89, 0, 81, 110, 97, 115, 32, 6, 195, 56, 17, 0, 76, 0, 11,
+			136, 16, 19, 20, 18, 26, 25, 197, 130, 20, 11, 136, 2, 197, 186, 4, 26, 9, 197, 130, 20, 16, 66, 56, 16, 50, 6, 35, 84, 35,
+			89, 0, 81, 119, 97, 115, 32, 17, 66, 56, 16, 50, 6, 35, 47, 112, 65, 10, 0, 81, 116, 121, 109, 32, 17, 66, 56, 16, 50, 6,
+			35, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 14, 66, 56, 16, 50, 6, 35, 47, 111, 0, 81, 116, 111, 32, 14, 66, 56, 16, 50,
+			6, 35, 47, 109, 0, 81, 116, 101, 32, 15, 66, 56, 16, 50, 6, 35, 47, 114, 0, 81, 116, 196, 133, 32, 17, 66, 56, 16, 50, 6,
+			35, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 16, 66, 56, 16, 50, 6, 35, 67, 38, 109, 0, 81, 110, 105, 101, 32, 17, 66, 56,
+			16, 50, 6, 35, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 56, 16, 50, 6, 35, 67, 37, 65, 0, 81, 110, 105, 109, 32,
+			18, 66, 56, 16, 50, 6, 35, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 16, 66, 56, 16, 50, 6, 35, 50, 35, 89, 0, 81,
+			110, 97, 115, 32, 18, 66, 56, 16, 50, 6, 35, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 5, 194, 56, 16, 76, 0, 8, 133,
+			26, 2, 9, 197, 130, 20, 10, 135, 23, 16, 197, 130, 25, 197, 132, 20, 8, 133, 23, 2, 9, 197, 130, 20, 6, 195, 77, 69, 76, 20,
+			10, 135, 19, 16, 197, 130, 25, 197, 132, 20, 6, 195, 28, 243, 0, 20, 16, 71, 12, 128, 76, 48, 83, 135, 20, 76, 109, 55, 109, 50,
+			75, 0, 17, 3, 95, 53, 88, 48, 38, 109, 67, 120, 6, 109, 97, 111, 50, 47, 0, 0, 9, 134, 23, 197, 188, 25, 197, 130, 20, 9,
+			134, 23, 26, 2, 9, 197, 130, 20, 9, 134, 4, 18, 7, 1, 197, 130, 20, 9, 134, 3, 26, 11, 1, 197, 130, 20, 0, 6, 195, 65,
+			37, 74, 20, 0, 6, 195, 92, 67, 205, 20, 8, 133, 13, 9, 5, 197, 155, 20, 0, 0, 9, 134, 26, 14, 21, 4, 197, 186, 20, 7,
+			196, 77, 160, 82, 64, 20, 9, 134, 197, 130, 21, 4, 197, 186, 20, 9, 134, 2, 196, 133, 4, 197, 186, 20, 0, 10, 135, 26, 2, 18,
+			21, 4, 197, 186, 20, 10, 135, 23, 19, 20, 25, 4, 197, 186, 20, 6, 195, 81, 37, 74, 20, 10, 135, 19, 23, 196, 153, 4, 197, 186,
+			20, 10, 135, 197, 130, 1, 19, 26, 3, 26, 20, 10, 135, 2, 18, 26, 25, 4, 197, 186, 20, 12, 69, 60, 97, 137, 12, 80, 111, 83,
+			37, 89, 0, 0, 11, 136, 26, 18, 26, 196, 153, 4, 197, 186, 20, 11, 136, 16, 18, 26, 196, 153, 4, 197, 186, 20, 0, 12, 137, 23,
+			16, 18, 26, 196, 153, 4, 197, 186, 20, 12, 137, 19, 16, 18, 26, 196, 133, 4, 197, 186, 20, 15, 67, 81, 163, 128, 47, 111, 15, 88,
+			50, 35, 76, 112, 0, 24, 16, 3, 95, 54, 88, 91, 109, 96, 120, 6, 109, 97, 111, 50, 47, 0, 0, 9, 134, 197, 188, 7, 14, 9,
+			10, 20, 9, 134, 26, 18, 15, 4, 197, 186, 20, 9, 134, 23, 18, 15, 4, 197, 186, 20, 0, 10, 135, 23, 3, 8, 15, 4, 197, 186,
+			20, 0, 0, 6, 195, 52, 19, 64, 20, 6, 195, 52, 19, 64, 76, 0, 15, 70, 52, 243, 147, 36, 85, 82, 65, 109, 89, 57, 6, 109,
+			0, 0, 0, 6, 195, 16, 35, 205, 20, 0, 0, 0, 8, 133, 26, 14, 9, 197, 188, 20, 7, 132, 11, 21, 197, 155, 20, 0, 7, 132,
+			197, 188, 25, 10, 20, 8, 133, 26, 23, 1, 196, 135, 20, 8, 133, 20, 11, 1, 196, 135, 20, 8, 133, 19, 19, 1, 196, 135, 20, 8,
+			133, 18, 23, 1, 196, 135, 20, 6, 195, 52, 19, 89, 76, 0, 8, 133, 26, 12, 9, 197, 186, 20, 9, 134, 26, 7, 14, 9, 196, 135,
+			20, 9, 134, 20, 18, 23, 1, 196, 135, 20, 10, 135, 19, 20, 18, 26, 25, 197, 188, 20, 8, 133, 10, 21, 4, 197, 186, 20, 0, 9,
+			134, 26, 23, 9, 4, 197, 186, 20, 9, 134, 19, 196, 133, 4, 197, 186, 20, 10, 135, 13, 11, 14, 196, 133, 196, 135, 20, 9, 134, 2,
+			18, 21, 4, 197, 186, 20, 0, 8, 133, 26, 13, 1, 197, 188, 20, 10, 135, 26, 2, 196, 133, 4, 197, 186, 20, 11, 136, 197, 155, 23,
+			9, 196, 153, 196, 135, 20, 10, 135, 18, 26, 196, 133, 4, 197, 186, 20, 7, 132, 3, 21, 196, 135, 20, 0, 8, 133, 26, 18, 25, 196,
+			135, 20, 8, 133, 26, 7, 1, 197, 155, 20, 8, 133, 23, 16, 9, 196, 135, 20, 8, 133, 23, 9, 1, 196, 135, 20, 8, 133, 19, 16,
+			9, 196, 135, 20, 8, 133, 19, 9, 1, 196, 135, 20, 11, 136, 16, 18, 26, 196, 133, 4, 197, 186, 20, 8, 133, 16, 9, 1, 196, 135,
+			20, 12, 137, 4, 197, 188, 4, 197, 188, 25, 196, 135, 20, 11, 136, 2, 197, 130, 196, 133, 4, 197, 186, 20, 18, 67, 65, 38, 153, 48,
+			91, 6, 112, 84, 35, 89, 0, 81, 119, 97, 115, 32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 47, 112, 65, 0, 81, 116, 121, 109, 32,
+			19, 67, 65, 38, 153, 48, 91, 6, 112, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 47, 109,
+			57, 0, 81, 116, 101, 106, 32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 67, 37, 65, 0, 81, 110, 105, 109, 32, 20, 67, 65, 38, 153,
+			48, 91, 6, 112, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 19, 67, 65, 38, 153, 48, 91, 6, 112, 67, 37, 107, 0, 81, 110,
+			105, 99, 104, 32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 50, 35, 89, 0, 81, 110, 97, 115, 32, 20, 67, 65, 38, 153, 48, 91, 6,
+			112, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 6, 195, 65, 38, 153, 76, 0, 12, 137, 26, 2, 197, 130, 196, 133, 4, 197, 186,
+			20, 12, 137, 23, 16, 18, 26, 196, 133, 4, 197, 186, 20, 15, 67, 13, 68, 140, 49, 6, 111, 50, 47, 51, 111, 55, 0, 17, 17, 3,
+			95, 56, 88, 111, 97, 109, 65, 120, 6, 109, 97, 111, 50, 47, 0, 0, 9, 134, 26, 13, 18, 15, 197, 186, 20, 10, 135, 197, 155, 23,
+			9, 5, 196, 135, 20, 10, 135, 19, 26, 3, 26, 25, 196, 135, 20, 10, 135, 12, 7, 14, 9, 5, 196, 135, 20, 10, 135, 12, 7, 14,
+			196, 133, 196, 135, 20, 0, 11, 136, 26, 7, 23, 1, 197, 130, 196, 135, 20, 11, 136, 20, 3, 8, 14, 9, 5, 196, 135, 20, 10, 135,
+			13, 197, 155, 3, 9, 19, 26, 20, 0, 12, 137, 23, 19, 26, 3, 26, 196, 133, 196, 135, 20, 9, 134, 3, 8, 3, 5, 197, 132, 20,
+			9, 67, 12, 195, 213, 49, 55, 40, 0, 0, 8, 133, 26, 18, 25, 197, 130, 20, 8, 133, 23, 16, 9, 197, 130, 20, 8, 133, 23, 9,
+			1, 197, 130, 20, 8, 133, 19, 16, 9, 197, 130, 20, 8, 133, 19, 9, 1, 197, 130, 20, 8, 133, 16, 9, 1, 197, 130, 20, 26, 12,
+			19, 16, 195, 169, 3, 9, 1, 12, 9, 20, 195, 169, 89, 48, 109, 89, 57, 35, 55, 37, 47, 6, 109, 0, 0, 0, 10, 135, 12, 7,
+			14, 196, 133, 197, 130, 20, 0, 11, 136, 7, 18, 26, 13, 9, 1, 197, 130, 20, 5, 194, 36, 208, 72, 0, 8, 133, 197, 188, 25, 197,
+			130, 20, 8, 133, 26, 23, 1, 197, 130, 20, 12, 137, 23, 19, 26, 3, 26, 196, 133, 197, 130, 20, 8, 133, 20, 11, 1, 197, 130, 20,
+			8, 133, 19, 19, 1, 197, 130, 20, 8, 133, 18, 23, 1, 197, 130, 20, 19, 3, 95, 57, 88, 120, 109, 84, 38, 109, 67, 120, 6, 109,
+			97, 111, 50, 47, 0, 0, 9, 134, 26, 7, 14, 9, 197, 130, 20, 9, 134, 20, 18, 23, 1, 197, 130, 20, 7, 196, 17, 37, 201, 40,
+			20, 0, 10, 135, 13, 11, 14, 196, 133, 197, 130, 20, 6, 195, 52, 145, 74, 20, 13, 69, 24, 243, 132, 84, 80, 83, 114, 72, 6, 37,
+			0, 12, 69, 88, 243, 196, 60, 240, 84, 40, 72, 40, 0, 0, 9, 198, 65, 38, 153, 45, 38, 128, 20, 8, 133, 14, 9, 5, 197, 155,
+			20, 7, 132, 9, 4, 197, 186, 20, 0, 11, 136, 16, 9, 15, 197, 130, 2, 25, 13, 20, 6, 195, 52, 145, 76, 20, 12, 137, 4, 197,
+			188, 4, 197, 188, 25, 197, 130, 20, 0, 9, 134, 197, 155, 12, 5, 19, 26, 20, 0, 8, 197, 17, 33, 206, 36, 80, 20, 0, 5, 194,
+			53, 80, 72, 12, 3, 95, 63, 65, 55, 37, 47, 109, 51, 35, 0, 0, 0, 9, 134, 18, 195, 179, 4, 197, 186, 20, 0, 10, 135, 23,
+			18, 195, 179, 4, 197, 186, 20, 6, 195, 80, 176, 74, 20, 10, 135, 19, 3, 8, 15, 4, 197, 186, 20, 10, 135, 7, 18, 195, 179, 4,
+			197, 186, 20, 0, 6, 195, 80, 176, 77, 20, 11, 136, 19, 197, 130, 195, 179, 4, 197, 186, 20, 11, 136, 16, 197, 130, 195, 179, 4, 197,
+			186, 20, 10, 135, 12, 197, 155, 14, 9, 196, 153, 20, 0, 12, 137, 19, 16, 197, 130, 195, 179, 4, 197, 186, 20, 12, 137, 19, 3, 8,
+			197, 130, 15, 4, 197, 186, 20, 12, 137, 3, 8, 197, 130, 195, 179, 4, 197, 186, 20, 0, 13, 138, 19, 3, 8, 197, 130, 195, 179, 4,
+			197, 186, 20, 7, 196, 52, 20, 148, 92, 20, 0, 0, 0, 0, 0, 9, 134, 26, 7, 18, 25, 197, 186, 20, 0, 9, 134, 26, 23, 9,
+			5, 197, 155, 20, 6, 195, 105, 112, 66, 20, 10, 135, 19, 11, 15, 197, 132, 3, 26, 20, 0, 7, 132, 23, 5, 197, 186, 20, 0, 11,
+			136, 19, 20, 18, 26, 196, 153, 197, 155, 20, 9, 134, 18, 197, 188, 14, 196, 133, 20, 17, 4, 95, 15, 7, 15, 88, 111, 81, 6, 111,
+			50, 80, 38, 109, 65, 0, 0, 9, 134, 197, 188, 18, 5, 19, 26, 20, 6, 195, 104, 227, 205, 20, 0, 7, 132, 16, 14, 196, 133, 20,
+			0, 10, 135, 7, 23, 1, 197, 130, 196, 135, 20, 0, 6, 195, 93, 67, 208, 20, 10, 199, 52, 144, 210, 61, 51, 198, 80, 65, 0, 10,
+			135, 11, 20, 195, 179, 18, 196, 133, 76, 0, 6, 195, 105, 114, 74, 20, 8, 197, 92, 144, 200, 73, 160, 20, 13, 137, 16, 18, 26, 5,
+			3, 9, 5, 197, 188, 76, 8, 0, 11, 136, 23, 16, 5, 197, 130, 26, 197, 130, 20, 11, 136, 19, 16, 5, 197, 130, 26, 197, 130, 20,
+			0, 13, 138, 14, 9, 5, 11, 20, 195, 179, 18, 196, 133, 76, 0, 9, 134, 26, 13, 1, 18, 197, 130, 20, 6, 195, 17, 33, 193, 20,
+			0, 10, 135, 16, 5, 197, 130, 26, 197, 130, 20, 6, 195, 64, 19, 0, 20, 8, 197, 12, 128, 82, 13, 160, 20, 0, 0, 11, 136, 7,
+			18, 26, 13, 9, 196, 133, 3, 20, 0, 6, 195, 105, 114, 69, 20, 6, 195, 73, 114, 69, 20, 0, 8, 133, 19, 11, 1, 197, 188, 20,
+			0, 9, 198, 104, 226, 69, 52, 54, 128, 20, 11, 136, 26, 13, 9, 196, 153, 11, 3, 26, 20, 9, 198, 81, 35, 211, 104, 54, 128, 20,
+			0, 8, 133, 19, 11, 1, 197, 186, 20, 10, 199, 13, 165, 5, 73, 148, 212, 84, 65, 0, 7, 196, 9, 166, 67, 104, 20, 12, 68, 40,
+			84, 146, 100, 75, 109, 51, 112, 0, 9, 10, 68, 40, 84, 146, 100, 75, 109, 51, 0, 0, 0, 9, 134, 26, 2, 12, 9, 197, 188, 20,
+			15, 67, 65, 35, 195, 48, 34, 6, 111, 117, 109, 50, 47, 0, 24, 0, 0, 7, 196, 105, 112, 82, 104, 20, 7, 196, 76, 147, 210, 8,
+			20, 17, 4, 95, 48, 77, 52, 71, 38, 37, 55, 57, 6, 111, 50, 40, 83, 0, 0, 6, 195, 73, 114, 74, 20, 16, 67, 65, 35, 198,
+			48, 51, 111, 83, 6, 109, 89, 111, 51, 0, 24, 0, 9, 198, 52, 147, 137, 53, 83, 64, 65, 15, 70, 52, 21, 82, 20, 83, 128, 65,
+			111, 51, 6, 37, 50, 0, 17, 4, 95, 48, 77, 50, 65, 38, 37, 55, 57, 6, 111, 50, 40, 83, 0, 0, 9, 67, 88, 243, 128, 83,
+			111, 50, 0, 18, 4, 95, 48, 77, 51, 65, 38, 37, 55, 57, 6, 35, 51, 72, 40, 83, 0, 0, 0, 15, 4, 95, 48, 77, 49, 47,
+			112, 97, 6, 109, 50, 117, 112, 0, 0, 5, 194, 60, 64, 72, 14, 4, 95, 2, 18, 22, 71, 51, 6, 109, 84, 37, 89, 0, 0, 8,
+			133, 23, 12, 9, 197, 186, 20, 8, 133, 3, 5, 4, 197, 186, 20, 0, 9, 134, 26, 23, 9, 5, 197, 186, 20, 9, 134, 26, 19, 1,
+			4, 197, 186, 20, 9, 134, 23, 19, 1, 4, 197, 186, 20, 0, 8, 133, 26, 23, 1, 197, 188, 20, 9, 134, 197, 130, 11, 1, 196, 135,
+			20, 0, 8, 133, 2, 18, 14, 196, 133, 20, 0, 9, 134, 20, 3, 8, 14, 196, 133, 20, 9, 134, 19, 11, 12, 14, 196, 133, 20, 18,
+			71, 13, 35, 201, 77, 48, 78, 80, 49, 51, 40, 35, 89, 6, 35, 68, 0, 0, 6, 195, 104, 116, 129, 20, 9, 134, 7, 18, 15, 4,
+			197, 186, 20, 9, 134, 2, 18, 15, 4, 197, 186, 20, 0, 8, 133, 19, 13, 1, 197, 188, 20, 17, 8, 4, 5, 12, 39, 1, 18, 20,
+			5, 72, 109, 55, 6, 35, 51, 0, 0, 8, 133, 197, 130, 197, 188, 5, 20, 8, 133, 11, 12, 14, 196, 133, 20, 14, 3, 197, 155, 23,
+			97, 84, 38, 109, 50, 47, 112, 0, 24, 0, 9, 134, 16, 3, 8, 14, 196, 133, 20, 17, 70, 24, 16, 201, 20, 225, 9, 83, 35, 89,
+			57, 109, 50, 72, 37, 0, 0, 8, 133, 19, 19, 196, 133, 3, 20, 0, 7, 132, 16, 14, 196, 153, 20, 0, 11, 136, 26, 26, 9, 196,
+			133, 2, 197, 130, 20, 9, 134, 197, 130, 11, 1, 197, 132, 20, 0, 24, 3, 197, 155, 16, 97, 84, 38, 109, 50, 47, 109, 57, 15, 48,
+			35, 65, 38, 109, 67, 119, 37, 0, 24, 0, 9, 134, 26, 4, 1, 18, 197, 130, 20, 9, 134, 23, 4, 1, 18, 197, 130, 20, 6, 195,
+			81, 37, 193, 20, 9, 134, 197, 130, 11, 1, 197, 130, 20, 0, 10, 135, 26, 13, 1, 18, 26, 197, 130, 20, 0, 10, 135, 197, 155, 16,
+			9, 196, 133, 3, 20, 5, 194, 52, 144, 72, 0, 9, 134, 18, 197, 188, 14, 196, 153, 20, 11, 136, 12, 197, 155, 14, 9, 196, 133, 3,
+			20, 0, 0, 10, 135, 14, 9, 15, 197, 132, 3, 26, 20, 15, 69, 16, 83, 5, 80, 80, 72, 37, 55, 6, 109, 57, 47, 0, 0, 0,
+			0, 7, 196, 77, 1, 83, 104, 20, 0, 14, 69, 12, 194, 67, 32, 80, 49, 55, 37, 91, 6, 109, 0, 11, 136, 2, 25, 12, 9, 197,
+			155, 13, 25, 76, 0, 12, 137, 19, 3, 8, 12, 9, 197, 155, 13, 25, 20, 12, 137, 19, 26, 197, 130, 25, 197, 155, 13, 25, 20, 5,
+			194, 53, 144, 76, 0, 6, 195, 105, 112, 76, 20, 10, 135, 19, 16, 18, 196, 153, 197, 188, 20, 0, 0, 8, 133, 19, 11, 196, 133, 16,
+			20, 0, 9, 198, 52, 22, 9, 53, 83, 64, 65, 0, 9, 67, 61, 85, 0, 35, 58, 47, 0, 0, 0, 8, 197, 76, 180, 154, 101, 112,
+			20, 8, 133, 19, 9, 196, 133, 16, 20, 0, 0, 6, 195, 16, 192, 64, 72, 6, 195, 32, 64, 64, 17, 0, 7, 196, 77, 67, 9, 40,
+			20, 9, 134, 4, 18, 197, 188, 25, 10, 20, 13, 68, 88, 242, 76, 4, 84, 40, 35, 55, 35, 0, 67, 0, 9, 134, 26, 14, 9, 5,
+			197, 155, 20, 9, 134, 23, 14, 9, 5, 197, 155, 20, 9, 134, 23, 7, 18, 15, 196, 135, 20, 9, 134, 196, 135, 16, 15, 196, 135, 20,
+			9, 134, 3, 8, 12, 15, 196, 135, 20, 8, 197, 9, 38, 141, 36, 160, 20, 0, 10, 135, 19, 3, 8, 12, 15, 196, 135, 20, 7, 132,
+			16, 195, 179, 10, 20, 0, 7, 132, 12, 15, 196, 135, 20, 6, 195, 28, 224, 64, 20, 10, 135, 4, 26, 9, 5, 18, 197, 188, 20, 6,
+			195, 60, 224, 64, 76, 0, 9, 134, 26, 8, 1, 197, 132, 2, 20, 11, 136, 26, 4, 26, 9, 5, 18, 197, 188, 20, 0, 10, 135, 26,
+			13, 9, 5, 18, 197, 186, 20, 9, 134, 26, 197, 130, 15, 196, 135, 20, 8, 197, 77, 160, 218, 100, 160, 20, 9, 134, 19, 20, 18, 15,
+			196, 135, 20, 9, 134, 19, 16, 18, 15, 196, 135, 20, 8, 197, 76, 180, 154, 100, 160, 20, 8, 197, 17, 33, 206, 36, 160, 20, 9, 134,
+			2, 197, 130, 15, 196, 135, 20, 0, 7, 132, 12, 15, 197, 130, 20, 0, 0, 9, 134, 19, 16, 18, 15, 197, 130, 20, 7, 132, 18, 15,
+			197, 132, 20, 0, 6, 195, 52, 20, 154, 20, 0, 11, 136, 26, 14, 9, 195, 179, 19, 197, 130, 20, 11, 136, 23, 14, 9, 195, 179, 19,
+			197, 130, 20, 0, 6, 195, 60, 225, 64, 76, 0, 9, 134, 23, 7, 18, 15, 197, 130, 20, 7, 132, 20, 15, 197, 132, 20, 7, 196, 77,
+			3, 15, 52, 20, 9, 134, 18, 197, 188, 15, 197, 130, 20, 9, 134, 13, 9, 12, 11, 197, 130, 20, 9, 134, 13, 4, 12, 15, 197, 130,
+			20, 8, 133, 197, 130, 195, 179, 23, 20, 9, 134, 196, 135, 16, 15, 197, 130, 20, 9, 134, 3, 8, 12, 15, 197, 130, 20, 9, 198, 40,
+			243, 129, 80, 128, 78, 65, 0, 10, 135, 26, 13, 195, 179, 7, 197, 130, 20, 10, 135, 26, 13, 9, 12, 11, 197, 130, 20, 10, 135, 19,
+			3, 8, 12, 15, 197, 130, 20, 6, 195, 65, 53, 74, 20, 8, 197, 45, 2, 79, 73, 160, 20, 10, 135, 11, 12, 196, 153, 19, 197, 130,
+			20, 0, 11, 136, 23, 26, 13, 195, 179, 7, 197, 130, 20, 9, 134, 19, 20, 18, 15, 197, 132, 20, 11, 136, 19, 11, 12, 196, 153, 19,
+			197, 130, 20, 9, 134, 11, 197, 130, 15, 197, 132, 20, 9, 134, 3, 8, 18, 15, 197, 132, 20, 8, 133, 2, 18, 14, 196, 153, 20, 6,
+			194, 56, 144, 72, 23, 0, 6, 195, 104, 115, 204, 20, 6, 195, 80, 194, 64, 20, 10, 135, 19, 11, 197, 130, 15, 197, 132, 20, 9, 134,
+			19, 11, 12, 14, 196, 153, 20, 10, 135, 19, 3, 8, 18, 15, 197, 132, 20, 6, 195, 53, 146, 128, 20, 15, 70, 40, 80, 78, 21, 69,
+			5, 90, 35, 50, 6, 109, 47, 0, 0, 9, 134, 20, 1, 197, 132, 3, 26, 20, 6, 195, 28, 226, 69, 20, 0, 0, 9, 198, 76, 50,
+			12, 5, 54, 128, 20, 13, 5, 3, 1, 6, 195, 169, 49, 35, 83, 109, 0, 66, 0, 8, 133, 19, 20, 195, 179, 10, 20, 6, 195, 45,
+			82, 128, 20, 6, 195, 60, 226, 64, 76, 10, 199, 16, 148, 195, 61, 97, 82, 100, 66, 0, 6, 195, 80, 179, 205, 20, 0, 24, 69, 65,
+			38, 133, 16, 80, 48, 91, 109, 72, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 23, 69, 65, 38, 133, 16, 80, 48, 91,
+			109, 72, 6, 109, 65, 50, 114, 0, 81, 109, 110, 196, 133, 32, 0, 7, 132, 18, 195, 179, 2, 20, 11, 136, 3, 8, 197, 130, 5, 16,
+			3, 26, 20, 0, 8, 133, 23, 18, 195, 179, 2, 20, 0, 6, 195, 28, 224, 77, 20, 0, 8, 197, 65, 53, 18, 105, 144, 20, 6, 195,
+			28, 224, 74, 20, 0, 8, 133, 11, 12, 14, 196, 153, 20, 16, 4, 95, 3, 9, 18, 88, 72, 6, 35, 91, 80, 38, 109, 65, 0, 0,
+			8, 133, 26, 4, 195, 179, 2, 20, 9, 134, 16, 3, 8, 14, 196, 153, 20, 10, 199, 76, 145, 68, 20, 212, 197, 80, 65, 0, 7, 196,
+			92, 145, 76, 8, 20, 9, 198, 81, 38, 133, 77, 160, 218, 20, 0, 6, 195, 76, 229, 74, 20, 0, 0, 9, 134, 20, 3, 8, 14, 196,
+			153, 20, 7, 132, 2, 15, 196, 135, 20, 15, 67, 52, 193, 0, 65, 37, 55, 57, 35, 51, 72, 40, 83, 0, 0, 9, 134, 23, 18, 196,
+			153, 3, 26, 20, 6, 195, 80, 181, 201, 20, 7, 196, 76, 180, 153, 40, 20, 8, 133, 11, 14, 15, 196, 135, 20, 8, 133, 7, 18, 15,
+			196, 135, 20, 8, 133, 7, 14, 15, 196, 135, 20, 8, 133, 4, 2, 15, 196, 135, 20, 8, 133, 2, 18, 15, 196, 135, 20, 11, 68, 76,
+			48, 78, 20, 89, 49, 35, 50, 0, 0, 9, 134, 11, 197, 130, 15, 197, 155, 20, 9, 134, 7, 18, 26, 15, 196, 135, 20, 0, 0, 8,
+			133, 23, 16, 195, 179, 10, 20, 8, 133, 19, 16, 195, 179, 10, 20, 7, 132, 14, 15, 197, 155, 20, 7, 132, 4, 15, 196, 135, 20, 18,
+			71, 12, 128, 78, 80, 147, 12, 100, 91, 35, 50, 47, 37, 57, 37, 0, 67, 0, 7, 196, 45, 37, 83, 104, 20, 19, 67, 13, 84, 129,
+			49, 37, 51, 35, 89, 35, 111, 0, 81, 195, 167, 97, 111, 32, 11, 67, 40, 244, 197, 107, 111, 88, 6, 109, 0, 0, 9, 134, 23, 19,
+			20, 15, 196, 135, 20, 9, 134, 23, 16, 18, 15, 197, 155, 20, 9, 134, 19, 197, 130, 15, 196, 135, 20, 9, 134, 19, 11, 14, 15, 196,
+			135, 20, 9, 134, 16, 3, 8, 15, 196, 135, 20, 6, 195, 12, 226, 74, 20, 6, 195, 8, 240, 218, 20, 0, 10, 135, 26, 7, 197, 130,
+			15, 197, 155, 20, 7, 132, 4, 15, 197, 130, 20, 15, 70, 12, 128, 66, 48, 148, 192, 91, 35, 71, 55, 37, 0, 66, 0, 8, 133, 12,
+			5, 7, 197, 130, 20, 9, 134, 2, 196, 153, 4, 196, 133, 76, 17, 4, 95, 19, 20, 11, 89, 49, 51, 109, 97, 55, 6, 111, 50, 109,
+			0, 0, 9, 134, 23, 19, 20, 15, 197, 130, 20, 9, 134, 19, 197, 130, 15, 197, 130, 20, 9, 134, 16, 3, 8, 15, 197, 130, 20, 0,
+			10, 135, 23, 9, 196, 153, 4, 197, 130, 20, 6, 195, 28, 226, 74, 20, 8, 133, 2, 18, 15, 197, 132, 20, 14, 4, 95, 1, 3, 21,
+			10, 6, 111, 89, 47, 51, 109, 0, 0, 11, 136, 16, 18, 26, 196, 133, 7, 197, 130, 20, 20, 3, 95, 195, 179, 4, 40, 10, 49, 51,
+			109, 89, 49, 111, 84, 6, 35, 50, 109, 0, 0, 12, 137, 23, 16, 18, 26, 196, 133, 7, 197, 130, 20, 12, 137, 19, 16, 18, 26, 196,
+			133, 7, 197, 130, 20, 8, 133, 16, 1, 19, 197, 130, 20, 8, 133, 7, 18, 15, 197, 130, 20, 8, 133, 7, 14, 15, 197, 130, 20, 8,
+			133, 4, 2, 15, 197, 130, 20, 0, 9, 134, 26, 7, 1, 19, 197, 130, 20, 9, 134, 13, 195, 179, 7, 197, 130, 20, 9, 134, 7, 18,
+			26, 15, 197, 130, 20, 10, 135, 4, 197, 186, 7, 14, 9, 5, 20, 0, 10, 135, 23, 13, 1, 18, 26, 197, 130, 20, 10, 135, 4, 18,
+			197, 188, 15, 197, 130, 20, 0, 7, 132, 2, 195, 179, 10, 20, 0, 10, 135, 19, 16, 5, 197, 130, 197, 132, 20, 8, 133, 18, 196, 153,
+			3, 26, 20, 8, 133, 13, 196, 153, 3, 26, 20, 8, 133, 10, 196, 153, 3, 26, 20, 9, 134, 2, 197, 186, 4, 26, 9, 20, 9, 134,
+			13, 9, 1, 197, 130, 25, 76, 0, 9, 134, 26, 7, 14, 195, 179, 10, 20, 0, 9, 134, 19, 16, 18, 15, 197, 155, 20, 14, 69, 88,
+			149, 129, 12, 80, 84, 37, 84, 35, 76, 109, 0, 0, 11, 136, 23, 4, 26, 9, 196, 153, 3, 26, 20, 7, 132, 4, 195, 179, 10, 20,
+			0, 12, 137, 4, 197, 186, 23, 9, 196, 153, 3, 26, 20, 16, 4, 95, 18, 14, 7, 88, 49, 6, 40, 58, 80, 38, 109, 65, 0, 0,
+			9, 134, 4, 18, 196, 153, 3, 26, 20, 0, 9, 134, 7, 197, 130, 15, 197, 155, 20, 10, 135, 4, 197, 186, 7, 14, 9, 10, 20, 10,
+			135, 2, 18, 26, 196, 153, 3, 26, 20, 17, 70, 12, 243, 5, 76, 192, 87, 49, 111, 55, 109, 89, 55, 111, 58, 0, 0, 9, 67, 72,
+			240, 203, 34, 111, 49, 0, 17, 70, 4, 229, 8, 60, 230, 64, 109, 50, 47, 111, 50, 112, 0, 65, 9, 14, 70, 4, 229, 8, 60, 230,
+			64, 109, 50, 47, 111, 50, 0, 0, 8, 133, 26, 18, 195, 179, 2, 20, 0, 7, 196, 13, 166, 73, 52, 76, 0, 0, 0, 9, 134, 2,
+			196, 153, 4, 196, 153, 76, 0, 7, 132, 20, 196, 153, 16, 20, 10, 67, 64, 192, 89, 48, 55, 109, 57, 0, 0, 8, 197, 76, 180, 151,
+			5, 112, 20, 0, 0, 0, 10, 135, 19, 26, 197, 130, 25, 2, 25, 20, 7, 196, 93, 51, 149, 40, 20, 9, 198, 5, 32, 200, 37, 33,
+			74, 67, 0, 9, 134, 16, 9, 3, 8, 196, 135, 20, 0, 0, 0, 7, 196, 76, 176, 67, 104, 20, 0, 11, 136, 2, 197, 188, 4, 197,
+			188, 196, 133, 20, 0, 9, 134, 13, 14, 195, 179, 197, 188, 20, 8, 133, 11, 197, 130, 1, 13, 20, 0, 10, 135, 20, 18, 23, 195, 179,
+			197, 188, 20, 8, 133, 7, 14, 196, 153, 2, 20, 9, 134, 2, 25, 197, 130, 5, 13, 76, 0, 21, 67, 56, 17, 5, 50, 35, 72, 6,
+			109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 20, 67, 56, 17, 5, 50, 35, 72, 6, 109, 65, 50, 114, 0, 81, 109, 110, 196,
+			133, 32, 11, 136, 11, 20, 195, 179, 18, 25, 3, 8, 76, 14, 68, 52, 144, 77, 36, 65, 35, 57, 6, 35, 65, 37, 0, 13, 68, 20,
+			161, 67, 80, 37, 90, 6, 109, 49, 47, 0, 0, 10, 135, 26, 4, 5, 3, 8, 197, 130, 20, 6, 195, 52, 20, 218, 76, 0, 11, 136,
+			197, 155, 3, 9, 3, 8, 197, 130, 20, 21, 4, 95, 1, 3, 50, 101, 4, 40, 68, 81, 35, 51, 6, 40, 65, 55, 35, 58, 47, 0,
+			0, 9, 134, 12, 15, 197, 130, 2, 25, 20, 14, 139, 14, 9, 5, 11, 20, 195, 179, 18, 25, 3, 8, 76, 0, 10, 135, 26, 9, 15,
+			197, 130, 2, 25, 20, 10, 135, 26, 4, 15, 197, 130, 2, 25, 20, 10, 135, 20, 12, 15, 197, 130, 2, 25, 20, 10, 135, 19, 20, 15,
+			197, 130, 2, 25, 20, 10, 135, 14, 9, 11, 197, 130, 2, 25, 20, 0, 11, 136, 19, 16, 18, 15, 197, 130, 2, 25, 20, 11, 136, 4,
+			18, 7, 15, 197, 130, 2, 25, 20, 11, 136, 3, 26, 11, 15, 197, 130, 2, 25, 20, 8, 197, 104, 115, 210, 77, 160, 20, 6, 195, 44,
+			229, 74, 20, 10, 135, 3, 9, 5, 18, 16, 197, 130, 20, 0, 15, 66, 64, 144, 48, 109, 37, 38, 6, 109, 89, 0, 81, 115, 32, 12,
+			137, 26, 18, 195, 179, 19, 197, 130, 2, 25, 20, 12, 137, 23, 18, 195, 179, 19, 197, 130, 2, 25, 20, 12, 137, 19, 16, 19, 9, 15,
+			197, 130, 2, 25, 20, 12, 137, 19, 16, 9, 5, 11, 197, 130, 2, 25, 20, 12, 137, 14, 9, 195, 179, 19, 197, 130, 2, 25, 20, 12,
+			137, 3, 8, 23, 9, 15, 197, 130, 2, 25, 20, 11, 66, 60, 176, 111, 49, 6, 109, 57, 0, 42, 11, 66, 60, 176, 111, 49, 111, 58,
+			111, 0, 24, 6, 194, 80, 16, 72, 12, 0, 13, 138, 26, 14, 9, 195, 179, 19, 197, 130, 2, 25, 20, 13, 138, 23, 26, 18, 195, 179,
+			19, 197, 130, 2, 25, 20, 13, 138, 23, 14, 9, 195, 179, 19, 197, 130, 2, 25, 20, 13, 138, 19, 20, 18, 26, 5, 7, 197, 130, 2,
+			25, 20, 12, 137, 197, 155, 3, 9, 5, 18, 16, 197, 130, 20, 12, 137, 16, 9, 5, 18, 26, 3, 8, 197, 130, 20, 0, 14, 139, 23,
+			26, 14, 9, 195, 179, 19, 197, 130, 2, 25, 20, 9, 198, 93, 53, 18, 104, 83, 0, 20, 0, 15, 140, 26, 197, 188, 195, 179, 197, 130,
+			11, 197, 130, 2, 25, 20, 6, 195, 64, 197, 74, 20, 0, 0, 8, 133, 13, 18, 15, 197, 186, 20, 8, 133, 12, 197, 188, 25, 10, 20,
+			13, 138, 2, 196, 153, 4, 26, 9, 5, 3, 9, 5, 76, 0, 18, 72, 40, 16, 209, 84, 83, 9, 56, 80, 90, 35, 49, 55, 6, 37,
+			50, 0, 0, 6, 195, 65, 147, 0, 20, 12, 69, 12, 128, 82, 52, 80, 91, 35, 51, 65, 0, 19, 71, 8, 16, 203, 77, 0, 67, 20,
+			71, 6, 109, 49, 89, 48, 109, 57, 89, 0, 0, 9, 134, 26, 13, 195, 179, 197, 188, 20, 0, 10, 135, 23, 4, 18, 195, 179, 197, 188,
+			20, 0, 10, 67, 12, 243, 1, 49, 111, 55, 35, 0, 0, 10, 135, 19, 20, 23, 195, 179, 18, 26, 20, 0, 11, 136, 19, 20, 3, 8,
+			195, 179, 18, 26, 20, 9, 134, 3, 26, 197, 130, 1, 16, 20, 0, 0, 7, 196, 104, 36, 153, 48, 20, 0, 7, 2, 196, 135, 119, 110,
+			0, 0, 0, 13, 67, 52, 164, 128, 65, 6, 35, 57, 111, 51, 0, 24, 6, 2, 196, 133, 114, 0, 0, 0, 0, 8, 133, 197, 155, 12,
+			196, 133, 20, 0, 0, 7, 196, 104, 34, 69, 12, 20, 0, 8, 197, 76, 50, 12, 4, 160, 20, 9, 134, 197, 130, 11, 15, 196, 135, 20,
+			10, 2, 195, 151, 51, 6, 35, 88, 112, 0, 0, 10, 135, 14, 9, 5, 197, 155, 196, 135, 20, 11, 136, 11, 18, 26, 25, 23, 4, 197,
+			186, 20, 7, 2, 197, 132, 109, 67, 0, 0, 10, 135, 23, 26, 13, 195, 179, 197, 188, 20, 11, 136, 19, 3, 26, 25, 197, 155, 196, 135,
+			20, 11, 136, 7, 14, 9, 5, 197, 155, 196, 135, 20, 9, 134, 2, 25, 197, 130, 1, 13, 76, 10, 199, 5, 32, 200, 36, 66, 65, 44,
+			67, 5, 130, 196, 141, 43, 5, 130, 196, 141, 43, 0, 12, 137, 23, 7, 14, 9, 5, 197, 155, 196, 135, 20, 9, 134, 197, 130, 11, 15,
+			197, 130, 20, 9, 134, 3, 9, 3, 8, 197, 130, 20, 7, 2, 197, 130, 109, 58, 0, 0, 8, 197, 12, 128, 197, 77, 160, 20, 0, 11,
+			136, 7, 197, 130, 21, 3, 8, 197, 130, 20, 0, 9, 134, 23, 25, 197, 130, 2, 25, 20, 9, 134, 18, 25, 197, 130, 2, 25, 20, 9,
+			134, 16, 9, 197, 130, 2, 25, 20, 9, 134, 11, 21, 197, 130, 2, 25, 20, 0, 10, 135, 26, 9, 1, 197, 130, 2, 25, 20, 10, 135,
+			26, 2, 25, 197, 130, 2, 25, 20, 10, 135, 23, 18, 25, 197, 130, 2, 25, 20, 10, 135, 20, 12, 9, 197, 130, 2, 25, 20, 10, 135,
+			19, 26, 25, 197, 130, 2, 25, 20, 10, 135, 16, 19, 21, 197, 130, 2, 25, 20, 10, 135, 16, 18, 1, 197, 130, 2, 25, 20, 10, 135,
+			16, 12, 21, 197, 130, 2, 25, 20, 10, 135, 13, 9, 1, 197, 130, 2, 25, 20, 10, 135, 11, 18, 25, 197, 130, 2, 25, 20, 9, 134,
+			23, 197, 155, 3, 9, 2, 20, 7, 196, 81, 37, 207, 52, 20, 11, 68, 4, 194, 67, 20, 109, 55, 37, 89, 0, 0, 11, 136, 26, 197,
+			188, 25, 197, 130, 2, 25, 20, 11, 136, 26, 197, 188, 21, 197, 130, 2, 25, 20, 11, 136, 26, 7, 18, 1, 197, 130, 2, 25, 20, 11,
+			136, 23, 19, 26, 25, 197, 130, 2, 25, 20, 11, 136, 23, 7, 18, 1, 197, 130, 2, 25, 20, 11, 136, 19, 16, 18, 1, 197, 130, 2,
+			25, 20, 11, 136, 12, 197, 188, 25, 197, 130, 2, 25, 20, 11, 136, 4, 26, 9, 1, 197, 130, 2, 25, 20, 11, 136, 4, 14, 9, 1,
+			197, 130, 2, 25, 20, 11, 136, 3, 26, 3, 9, 197, 130, 2, 25, 20, 8, 197, 105, 115, 5, 13, 160, 20, 8, 197, 81, 38, 133, 77,
+			160, 20, 10, 135, 20, 196, 153, 3, 8, 197, 130, 20, 8, 197, 64, 50, 1, 77, 160, 20, 14, 2, 194, 167, 48, 35, 51, 6, 35, 81,
+			51, 35, 83, 0, 16, 2, 195, 159, 91, 4, 35, 34, 83, 109, 89, 10, 6, 109, 89, 0, 0, 12, 137, 23, 4, 26, 9, 1, 197, 130,
+			2, 25, 20, 12, 137, 197, 155, 13, 9, 1, 197, 130, 2, 25, 20, 12, 137, 19, 26, 11, 12, 9, 197, 130, 2, 25, 20, 12, 137, 19,
+			16, 19, 9, 1, 197, 130, 2, 25, 20, 12, 137, 19, 197, 130, 1, 2, 197, 130, 2, 25, 20, 12, 137, 12, 197, 155, 14, 9, 197, 130,
+			2, 25, 20, 12, 137, 3, 8, 23, 9, 1, 197, 130, 2, 25, 20, 12, 137, 3, 8, 3, 9, 1, 197, 130, 2, 25, 20, 12, 2, 194,
+			164, 84, 35, 55, 6, 40, 47, 35, 0, 0, 13, 138, 23, 16, 5, 197, 130, 26, 197, 130, 2, 25, 20, 13, 138, 19, 16, 5, 197, 130,
+			26, 197, 130, 2, 25, 20, 13, 138, 16, 19, 20, 18, 26, 25, 197, 130, 2, 25, 20, 13, 138, 3, 8, 18, 26, 3, 9, 197, 130, 2,
+			25, 20, 13, 138, 2, 197, 186, 4, 26, 9, 197, 130, 2, 25, 20, 8, 133, 21, 10, 4, 197, 186, 20, 8, 2, 194, 165, 57, 109, 50,
+			0, 0, 9, 134, 14, 1, 10, 4, 197, 186, 20, 33, 68, 12, 144, 197, 72, 117, 4, 37, 117, 109, 51, 49, 40, 65, 49, 6, 35, 58,
+			55, 109, 0, 82, 99, 117, 109, 32, 99, 97, 117, 108, 101, 32, 9, 2, 194, 162, 117, 109, 50, 47, 0, 0, 11, 136, 2, 197, 188, 4,
+			197, 188, 196, 153, 20, 9, 2, 194, 163, 83, 40, 50, 47, 0, 0, 15, 70, 12, 245, 78, 81, 38, 64, 49, 35, 50, 47, 51, 112, 0,
+			0, 25, 2, 194, 161, 111, 72, 84, 51, 4, 111, 47, 50, 112, 15, 84, 112, 49, 91, 6, 112, 49, 67, 37, 49, 0, 0, 7, 196, 92,
+			34, 69, 12, 20, 7, 196, 76, 180, 154, 100, 20, 11, 136, 13, 9, 1, 197, 188, 4, 197, 188, 20, 16, 7, 3, 12, 9, 3, 8, 195,
+			169, 49, 55, 37, 91, 6, 109, 0, 15, 2, 194, 174, 88, 35, 89, 76, 109, 90, 6, 111, 50, 112, 0, 5, 130, 195, 166, 43, 5, 130,
+			195, 166, 43, 0, 12, 137, 26, 13, 9, 15, 197, 188, 4, 197, 188, 20, 8, 197, 76, 180, 154, 101, 0, 20, 17, 2, 194, 175, 50, 35,
+			72, 49, 51, 109, 97, 55, 6, 109, 67, 109, 0, 0, 15, 70, 12, 130, 65, 57, 66, 64, 49, 57, 35, 50, 47, 37, 0, 13, 2, 194,
+			172, 50, 109, 81, 6, 35, 117, 57, 35, 0, 5, 130, 195, 164, 43, 5, 130, 195, 164, 43, 0, 5, 130, 195, 165, 43, 5, 130, 195, 165,
+			43, 0, 10, 135, 13, 9, 1, 197, 130, 5, 13, 76, 0, 8, 133, 11, 197, 130, 1, 16, 20, 25, 2, 194, 171, 83, 51, 35, 50, 117,
+			4, 40, 89, 80, 37, 15, 117, 40, 118, 6, 112, 89, 58, 40, 83, 0, 0, 12, 2, 194, 168, 6, 40, 65, 55, 35, 58, 47, 0, 0,
+			9, 134, 4, 15, 197, 130, 2, 25, 20, 13, 2, 195, 161, 35, 55, 6, 35, 0, 81, 108, 97, 32, 6, 2, 196, 153, 113, 0, 0, 10,
+			135, 26, 12, 15, 197, 130, 2, 25, 20, 10, 135, 23, 12, 15, 197, 130, 2, 25, 20, 10, 135, 23, 9, 15, 197, 130, 2, 25, 20, 10,
+			135, 19, 16, 15, 197, 130, 2, 25, 20, 10, 135, 19, 9, 15, 197, 130, 2, 25, 20, 10, 135, 16, 9, 15, 197, 130, 2, 25, 20, 10,
+			135, 12, 5, 7, 197, 130, 2, 25, 20, 12, 2, 194, 182, 35, 49, 6, 35, 48, 37, 47, 0, 0, 11, 136, 26, 7, 1, 4, 197, 130,
+			2, 25, 20, 11, 136, 23, 19, 20, 15, 197, 130, 2, 25, 20, 11, 136, 23, 12, 5, 11, 197, 130, 2, 25, 20, 11, 136, 20, 18, 23,
+			15, 197, 130, 2, 25, 20, 11, 136, 19, 197, 130, 15, 197, 130, 2, 25, 20, 11, 136, 18, 195, 179, 19, 197, 130, 2, 25, 20, 11, 136,
+			16, 9, 5, 11, 197, 130, 2, 25, 20, 11, 136, 16, 3, 8, 15, 197, 130, 2, 25, 20, 11, 136, 12, 196, 133, 7, 197, 130, 2, 25,
+			20, 9, 134, 26, 4, 197, 130, 1, 23, 20, 9, 134, 23, 19, 197, 130, 1, 23, 20, 15, 69, 64, 17, 197, 85, 0, 48, 109, 57, 75,
+			6, 35, 48, 0, 0, 12, 137, 26, 23, 12, 5, 11, 197, 130, 2, 25, 20, 12, 137, 26, 2, 9, 5, 7, 197, 130, 2, 25, 20, 12,
+			137, 23, 9, 196, 153, 4, 197, 130, 2, 25, 20, 12, 137, 23, 2, 9, 5, 7, 197, 130, 2, 25, 20, 5, 194, 60, 224, 76, 19, 2,
+			194, 180, 4, 111, 89, 47, 51, 112, 10, 6, 35, 49, 117, 109, 50, 47, 0, 0, 13, 138, 26, 26, 9, 196, 133, 2, 197, 130, 2, 25,
+			20, 13, 138, 23, 23, 9, 195, 179, 26, 197, 130, 2, 25, 20, 13, 138, 19, 20, 197, 130, 21, 11, 197, 130, 2, 25, 20, 13, 138, 16,
+			18, 26, 196, 133, 7, 197, 130, 2, 25, 20, 13, 138, 7, 18, 26, 13, 9, 15, 197, 130, 2, 25, 20, 7, 132, 23, 9, 196, 135, 20,
+			7, 132, 13, 25, 196, 135, 20, 9, 67, 88, 144, 64, 84, 37, 35, 0, 5, 130, 195, 173, 43, 5, 130, 195, 173, 43, 0, 14, 139, 23,
+			16, 18, 26, 196, 133, 7, 197, 130, 2, 25, 20, 14, 139, 197, 155, 13, 9, 5, 18, 4, 197, 130, 2, 25, 20, 14, 139, 19, 16, 18,
+			26, 196, 133, 7, 197, 130, 2, 25, 20, 7, 196, 105, 115, 5, 12, 20, 8, 133, 26, 12, 5, 196, 135, 20, 9, 134, 26, 5, 10, 4,
+			197, 186, 20, 9, 134, 26, 1, 10, 4, 197, 186, 20, 8, 133, 23, 26, 21, 196, 135, 20, 9, 134, 23, 25, 10, 4, 197, 186, 20, 9,
+			134, 23, 5, 10, 4, 197, 186, 20, 8, 133, 20, 18, 21, 196, 135, 20, 9, 134, 197, 155, 16, 9, 19, 26, 20, 8, 133, 16, 18, 21,
+			196, 135, 20, 7, 196, 16, 226, 69, 40, 20, 8, 133, 4, 196, 133, 196, 135, 20, 13, 2, 194, 178, 49, 84, 6, 35, 72, 51, 35, 47,
+			0, 0, 10, 135, 26, 14, 1, 10, 4, 197, 186, 20, 9, 134, 26, 13, 196, 133, 196, 135, 20, 6, 195, 104, 145, 74, 20, 9, 134, 23,
+			26, 12, 5, 196, 135, 20, 10, 135, 23, 26, 5, 10, 4, 197, 186, 20, 10, 135, 23, 20, 197, 130, 15, 3, 26, 20, 10, 135, 23, 197,
+			130, 195, 179, 3, 26, 20, 9, 134, 23, 3, 26, 21, 196, 135, 20, 10, 135, 19, 20, 197, 130, 15, 3, 26, 20, 9, 134, 11, 12, 196,
+			133, 196, 135, 20, 10, 135, 7, 18, 1, 14, 4, 197, 186, 20, 9, 134, 7, 9, 196, 133, 196, 135, 20, 9, 134, 3, 9, 196, 133, 196,
+			135, 20, 9, 134, 3, 8, 23, 25, 196, 135, 20, 21, 10, 22, 1, 18, 9, 195, 169, 20, 195, 169, 19, 84, 35, 34, 57, 109, 47, 109,
+			0, 67, 12, 2, 194, 179, 91, 6, 109, 97, 78, 35, 50, 0, 7, 2, 197, 155, 97, 37, 0, 0, 11, 136, 26, 23, 197, 130, 195, 179,
+			3, 26, 20, 11, 136, 26, 7, 18, 1, 14, 4, 197, 186, 20, 10, 135, 26, 7, 9, 196, 133, 196, 135, 20, 10, 135, 23, 26, 9, 196,
+			133, 196, 135, 20, 10, 135, 23, 7, 9, 196, 133, 196, 135, 20, 10, 135, 23, 3, 9, 196, 133, 196, 135, 20, 10, 135, 19, 11, 12, 196,
+			133, 196, 135, 20, 10, 135, 19, 3, 8, 23, 25, 196, 135, 20, 13, 2, 194, 176, 89, 47, 6, 111, 48, 38, 109, 67, 0, 0, 8, 133,
+			197, 188, 18, 25, 10, 20, 7, 132, 23, 25, 196, 135, 20, 11, 136, 197, 155, 3, 9, 196, 133, 196, 135, 20, 7, 132, 19, 25, 196, 135,
+			20, 15, 2, 194, 177, 48, 55, 40, 89, 65, 6, 37, 50, 40, 89, 0, 5, 130, 197, 153, 43, 5, 130, 197, 153, 43, 0, 8, 133, 16,
+			12, 21, 196, 135, 20, 10, 135, 7, 18, 26, 13, 9, 196, 133, 20, 16, 2, 194, 190, 47, 15, 91, 112, 76, 83, 6, 35, 51, 47, 109,
+			0, 5, 130, 195, 182, 43, 5, 130, 195, 182, 43, 0, 9, 134, 23, 7, 18, 1, 196, 135, 20, 9, 134, 20, 18, 26, 5, 196, 135, 20,
+			9, 134, 19, 20, 18, 1, 196, 135, 20, 9, 134, 19, 16, 18, 1, 196, 135, 20, 9, 134, 16, 18, 26, 5, 196, 135, 20, 13, 67, 85,
+			35, 0, 40, 109, 51, 6, 109, 55, 0, 17, 23, 2, 194, 191, 111, 72, 84, 51, 4, 111, 47, 50, 112, 15, 48, 112, 47, 35, 57, 67,
+			37, 49, 0, 13, 2, 195, 183, 120, 109, 55, 6, 109, 67, 38, 109, 0, 0, 7, 132, 23, 25, 197, 130, 20, 17, 2, 194, 188, 57, 109,
+			72, 50, 35, 76, 83, 6, 35, 51, 47, 35, 0, 0, 8, 133, 16, 12, 21, 197, 130, 20, 7, 195, 56, 145, 64, 72, 23, 6, 195, 56,
+			145, 64, 76, 16, 2, 194, 189, 57, 109, 72, 50, 35, 72, 51, 6, 40, 81, 35, 0, 0, 7, 132, 23, 9, 197, 132, 20, 9, 134, 23,
+			7, 18, 1, 197, 130, 20, 9, 134, 19, 16, 18, 1, 197, 130, 20, 7, 195, 80, 83, 85, 72, 12, 15, 4, 95, 3, 5, 4, 88, 117,
+			109, 116, 6, 37, 55, 114, 0, 0, 8, 197, 92, 116, 129, 77, 160, 20, 7, 132, 18, 197, 188, 25, 20, 32, 2, 194, 187, 48, 51, 6,
+			35, 84, 112, 15, 83, 51, 35, 50, 117, 4, 40, 89, 80, 37, 15, 117, 40, 118, 6, 112, 89, 58, 40, 83, 0, 0, 9, 134, 23, 197,
+			188, 5, 197, 132, 20, 7, 132, 23, 9, 197, 130, 20, 7, 132, 13, 25, 197, 130, 20, 13, 2, 194, 184, 117, 109, 116, 6, 37, 55, 55,
+			35, 0, 0, 8, 133, 23, 26, 21, 197, 130, 20, 8, 133, 20, 18, 21, 197, 130, 20, 8, 133, 16, 18, 21, 197, 130, 20, 8, 133, 4,
+			196, 133, 197, 130, 20, 16, 2, 194, 185, 57, 109, 72, 109, 50, 81, 6, 40, 51, 50, 109, 0, 5, 130, 195, 177, 43, 5, 130, 197, 161,
+			43, 5, 130, 195, 177, 43, 5, 130, 197, 161, 43, 16, 4, 95, 12, 9, 7, 55, 37, 81, 35, 47, 6, 40, 51, 35, 0, 0, 10, 135,
+			10, 1, 4, 197, 130, 2, 25, 20, 9, 134, 23, 3, 26, 21, 197, 130, 20, 9, 134, 18, 197, 188, 1, 197, 130, 20, 7, 132, 18, 1,
+			197, 132, 20, 7, 132, 13, 9, 197, 132, 20, 9, 134, 11, 12, 196, 133, 197, 130, 20, 9, 134, 7, 9, 196, 133, 197, 130, 20, 0, 11,
+			136, 26, 10, 1, 4, 197, 130, 2, 25, 20, 11, 136, 19, 26, 5, 4, 197, 130, 2, 25, 20, 11, 136, 19, 9, 1, 4, 197, 130, 2,
+			25, 20, 11, 136, 18, 26, 5, 4, 197, 130, 2, 25, 20, 11, 136, 11, 18, 1, 4, 197, 130, 2, 25, 20, 11, 136, 3, 8, 21, 4,
+			197, 130, 2, 25, 20, 10, 135, 26, 7, 9, 196, 133, 197, 130, 20, 8, 197, 93, 164, 149, 77, 160, 20, 10, 135, 23, 26, 9, 196, 133,
+			197, 130, 20, 10, 135, 23, 7, 9, 196, 133, 197, 130, 20, 10, 135, 23, 3, 9, 196, 133, 197, 130, 20, 8, 197, 77, 50, 69, 77, 160,
+			20, 10, 135, 19, 11, 12, 196, 133, 197, 130, 20, 8, 197, 76, 54, 133, 77, 160, 20, 8, 197, 64, 226, 69, 77, 160, 20, 8, 133, 16,
+			12, 21, 197, 132, 20, 7, 132, 12, 197, 188, 25, 20, 8, 197, 45, 2, 65, 73, 160, 20, 8, 197, 13, 162, 193, 77, 160, 20, 12, 201,
+			80, 133, 78, 16, 84, 130, 37, 33, 0, 65, 0, 12, 137, 26, 18, 26, 5, 4, 197, 130, 2, 25, 20, 12, 137, 26, 4, 5, 3, 8,
+			197, 130, 2, 25, 20, 12, 137, 23, 19, 26, 5, 4, 197, 130, 2, 25, 20, 12, 137, 23, 11, 18, 1, 4, 197, 130, 2, 25, 20, 12,
+			137, 19, 11, 18, 1, 4, 197, 130, 2, 25, 20, 12, 137, 19, 3, 8, 21, 4, 197, 130, 2, 25, 20, 12, 137, 16, 12, 195, 179, 20,
+			197, 130, 2, 25, 20, 12, 137, 11, 197, 130, 1, 4, 197, 130, 2, 25, 20, 12, 137, 2, 18, 26, 25, 4, 197, 130, 2, 25, 20, 8,
+			133, 197, 155, 12, 196, 153, 20, 11, 136, 197, 155, 3, 9, 196, 133, 197, 130, 20, 20, 66, 88, 16, 84, 35, 71, 6, 35, 68, 49, 0,
+			81, 98, 97, 110, 113, 117, 101, 32, 6, 194, 80, 80, 72, 12, 5, 130, 195, 188, 43, 5, 130, 195, 188, 43, 0, 13, 138, 26, 7, 196,
+			153, 19, 20, 197, 130, 2, 25, 20, 13, 138, 26, 2, 18, 26, 25, 4, 197, 130, 2, 25, 20, 13, 138, 23, 16, 12, 195, 179, 20, 197,
+			130, 2, 25, 20, 13, 138, 197, 155, 3, 9, 3, 8, 197, 130, 2, 25, 20, 13, 138, 19, 20, 196, 153, 3, 8, 197, 130, 2, 25, 20,
+			13, 138, 19, 16, 12, 195, 179, 20, 197, 130, 2, 25, 20, 13, 138, 7, 14, 9, 195, 179, 20, 197, 130, 2, 25, 20, 0, 14, 139, 26,
+			7, 14, 9, 195, 179, 20, 197, 130, 2, 25, 20, 14, 139, 23, 7, 14, 9, 195, 179, 20, 197, 130, 2, 25, 20, 14, 139, 197, 155, 13,
+			9, 15, 18, 4, 197, 130, 2, 25, 20, 7, 196, 92, 193, 67, 104, 20, 6, 195, 28, 227, 205, 20, 9, 134, 4, 15, 10, 4, 197, 186,
+			20, 7, 196, 81, 147, 11, 60, 76, 0, 15, 140, 19, 16, 9, 5, 18, 26, 3, 8, 197, 130, 2, 25, 20, 8, 197, 77, 68, 154, 100,
+			48, 20, 13, 69, 53, 81, 83, 48, 144, 65, 40, 89, 55, 37, 0, 12, 69, 28, 83, 210, 28, 80, 75, 111, 34, 75, 0, 0, 11, 136,
+			19, 16, 9, 5, 18, 4, 197, 186, 20, 11, 136, 16, 18, 26, 5, 10, 4, 197, 186, 20, 5, 130, 195, 184, 43, 5, 130, 195, 184, 43,
+			0, 0, 7, 196, 76, 145, 67, 104, 20, 0, 8, 197, 76, 179, 14, 36, 80, 20, 8, 197, 76, 50, 12, 4, 208, 20, 11, 2, 203, 135,
+			49, 6, 35, 51, 111, 50, 0, 0, 0, 0, 7, 196, 104, 161, 68, 104, 20, 0, 6, 195, 77, 84, 218, 20, 0, 0, 9, 134, 4, 21,
+			197, 130, 2, 25, 20, 9, 134, 2, 25, 197, 130, 2, 25, 20, 6, 195, 60, 227, 192, 76, 0, 10, 135, 197, 188, 21, 197, 130, 2, 25,
+			20, 10, 135, 26, 18, 25, 197, 130, 2, 25, 20, 10, 135, 26, 14, 1, 197, 130, 2, 25, 20, 10, 135, 23, 16, 9, 197, 130, 2, 25,
+			20, 10, 135, 23, 11, 21, 197, 130, 2, 25, 20, 10, 135, 23, 9, 1, 197, 130, 2, 25, 20, 10, 135, 23, 4, 15, 197, 130, 2, 25,
+			20, 10, 135, 19, 16, 9, 197, 130, 2, 25, 20, 10, 135, 19, 11, 21, 197, 130, 2, 25, 20, 10, 135, 19, 9, 1, 197, 130, 2, 25,
+			20, 10, 135, 16, 9, 1, 197, 130, 2, 25, 20, 10, 135, 16, 1, 4, 197, 130, 2, 25, 20, 10, 135, 11, 16, 9, 197, 130, 2, 25,
+			20, 10, 135, 7, 18, 1, 197, 130, 2, 25, 20, 10, 135, 7, 14, 1, 197, 130, 2, 25, 20, 10, 135, 4, 2, 1, 197, 130, 2, 25,
+			20, 10, 135, 3, 12, 9, 197, 130, 2, 25, 20, 7, 196, 92, 50, 69, 48, 20, 5, 130, 197, 190, 43, 5, 130, 197, 190, 43, 0, 11,
+			136, 26, 23, 9, 1, 197, 130, 2, 25, 20, 11, 136, 23, 19, 9, 1, 197, 130, 2, 25, 20, 11, 136, 20, 11, 23, 9, 197, 130, 2,
+			25, 20, 11, 136, 19, 20, 25, 7, 197, 130, 2, 25, 20, 11, 136, 19, 16, 1, 4, 197, 130, 2, 25, 20, 11, 136, 19, 197, 130, 1,
+			197, 130, 2, 25, 20, 11, 136, 197, 130, 11, 15, 197, 130, 2, 25, 20, 11, 136, 7, 18, 26, 1, 197, 130, 2, 25, 20, 11, 136, 4,
+			18, 23, 9, 197, 130, 2, 25, 20, 11, 136, 3, 9, 3, 8, 197, 130, 2, 25, 20, 11, 136, 2, 12, 1, 4, 197, 130, 2, 25, 20,
+			0, 12, 137, 26, 19, 9, 1, 4, 197, 130, 2, 25, 20, 12, 137, 26, 2, 12, 1, 4, 197, 130, 2, 25, 20, 12, 137, 23, 19, 9,
+			1, 4, 197, 130, 2, 25, 20, 12, 137, 23, 9, 196, 133, 4, 197, 130, 2, 25, 20, 12, 137, 19, 26, 3, 26, 1, 197, 130, 2, 25,
+			20, 12, 137, 13, 197, 155, 3, 9, 197, 130, 2, 25, 20, 12, 137, 13, 9, 195, 179, 20, 197, 130, 2, 25, 20, 12, 137, 12, 7, 14,
+			196, 133, 197, 130, 2, 25, 20, 9, 198, 92, 147, 133, 29, 33, 84, 67, 11, 66, 76, 128, 109, 89, 6, 101, 35, 0, 17, 8, 2, 197,
+			188, 96, 109, 47, 0, 0, 13, 138, 26, 23, 9, 196, 133, 4, 197, 130, 2, 25, 20, 13, 138, 26, 13, 9, 195, 179, 20, 197, 130, 2,
+			25, 20, 13, 138, 23, 13, 9, 195, 179, 20, 197, 130, 2, 25, 20, 13, 138, 19, 20, 18, 26, 25, 7, 197, 130, 2, 25, 20, 13, 138,
+			16, 18, 26, 196, 133, 4, 197, 130, 2, 25, 20, 13, 138, 7, 18, 26, 13, 9, 1, 197, 130, 2, 25, 20, 13, 138, 7, 197, 130, 21,
+			3, 8, 197, 130, 2, 25, 20, 13, 138, 2, 18, 26, 13, 9, 1, 197, 130, 2, 25, 20, 7, 132, 12, 1, 196, 135, 20, 7, 132, 4,
+			1, 196, 135, 20, 0, 14, 139, 23, 19, 26, 3, 26, 196, 133, 197, 130, 2, 25, 20, 14, 139, 23, 16, 18, 26, 196, 133, 4, 197, 130,
+			2, 25, 20, 14, 139, 197, 155, 13, 9, 1, 18, 4, 197, 130, 2, 25, 20, 14, 139, 19, 16, 18, 26, 196, 133, 4, 197, 130, 2, 25,
+			20, 8, 133, 26, 26, 21, 196, 135, 20, 8, 133, 26, 4, 21, 197, 155, 20, 8, 133, 23, 12, 5, 196, 135, 20, 8, 133, 19, 14, 21,
+			196, 135, 20, 8, 133, 18, 26, 21, 196, 135, 20, 8, 133, 16, 12, 5, 196, 135, 20, 8, 2, 197, 186, 90, 109, 47, 0, 0, 9, 134,
+			23, 19, 20, 1, 196, 135, 20, 9, 134, 19, 26, 16, 5, 196, 135, 20, 9, 134, 16, 3, 8, 1, 196, 135, 20, 10, 135, 197, 130, 197,
+			188, 5, 19, 26, 20, 9, 134, 196, 135, 16, 1, 196, 135, 20, 9, 134, 196, 135, 13, 9, 196, 135, 20, 9, 134, 3, 8, 12, 1, 196,
+			135, 20, 0, 10, 135, 23, 20, 18, 196, 133, 196, 135, 20, 10, 135, 20, 11, 14, 196, 133, 196, 135, 20, 10, 135, 19, 26, 3, 26, 21,
+			196, 135, 20, 10, 135, 19, 20, 18, 196, 133, 196, 135, 20, 10, 135, 19, 3, 8, 12, 1, 196, 135, 20, 10, 135, 2, 18, 14, 196, 133,
+			196, 135, 20, 0, 11, 136, 197, 188, 7, 14, 196, 133, 196, 135, 20, 7, 132, 23, 9, 197, 155, 20, 11, 136, 20, 3, 8, 14, 196, 133,
+			196, 135, 20, 11, 136, 19, 3, 8, 197, 130, 5, 197, 155, 20, 10, 199, 76, 50, 12, 5, 54, 131, 104, 20, 11, 136, 18, 197, 188, 14,
+			196, 133, 196, 135, 20, 7, 132, 16, 1, 197, 155, 20, 9, 134, 196, 135, 13, 9, 196, 133, 20, 7, 132, 2, 1, 196, 135, 20, 9, 198,
+			52, 18, 211, 36, 213, 77, 65, 0, 8, 133, 197, 188, 21, 196, 135, 20, 8, 133, 7, 18, 1, 196, 135, 20, 8, 133, 7, 14, 1, 196,
+			135, 20, 12, 137, 4, 197, 186, 7, 14, 196, 133, 196, 135, 20, 8, 133, 4, 2, 1, 196, 135, 20, 10, 135, 2, 18, 26, 13, 9, 196,
+			133, 20, 8, 133, 2, 18, 1, 196, 135, 20, 32, 68, 12, 130, 76, 36, 76, 4, 37, 55, 37, 49, 111, 50, 49, 6, 35, 34, 50, 109,
+			0, 82, 99, 111, 110, 32, 99, 97, 114, 110, 101, 32, 11, 68, 12, 130, 76, 36, 76, 37, 55, 37, 0, 6, 195, 9, 147, 9, 76, 0,
+			9, 134, 20, 11, 23, 9, 196, 135, 20, 9, 134, 19, 197, 130, 1, 196, 135, 20, 9, 134, 13, 18, 26, 5, 196, 135, 20, 9, 134, 7,
+			18, 26, 1, 196, 135, 20, 9, 134, 4, 18, 26, 5, 196, 135, 20, 6, 195, 16, 210, 74, 20, 0, 10, 135, 19, 26, 3, 26, 5, 196,
+			135, 20, 0, 8, 133, 197, 188, 21, 197, 130, 20, 9, 134, 20, 11, 23, 9, 196, 133, 20, 9, 134, 19, 26, 11, 12, 196, 133, 20, 8,
+			133, 7, 18, 1, 197, 130, 20, 8, 133, 7, 14, 1, 197, 130, 20, 8, 133, 4, 2, 1, 197, 130, 20, 0, 9, 134, 20, 11, 23, 9,
+			197, 130, 20, 9, 134, 19, 197, 130, 1, 197, 130, 20, 8, 133, 18, 23, 196, 133, 3, 20, 9, 134, 7, 18, 26, 1, 197, 130, 20, 7,
+			132, 7, 9, 197, 132, 20, 0, 8, 133, 16, 12, 5, 197, 132, 20, 0, 9, 134, 23, 19, 20, 1, 197, 132, 20, 9, 134, 197, 155, 23,
+			9, 197, 132, 20, 7, 132, 12, 1, 197, 130, 20, 7, 132, 4, 1, 197, 130, 20, 0, 8, 133, 26, 26, 21, 197, 130, 20, 8, 133, 19,
+			14, 21, 197, 130, 20, 0, 7, 196, 104, 116, 143, 52, 20, 9, 134, 23, 19, 20, 1, 197, 130, 20, 6, 195, 64, 197, 193, 20, 9, 134,
+			16, 3, 8, 1, 197, 130, 20, 9, 134, 13, 4, 12, 1, 197, 130, 20, 9, 134, 196, 135, 16, 1, 197, 130, 20, 9, 134, 196, 135, 13,
+			9, 197, 130, 20, 9, 134, 3, 8, 12, 1, 197, 130, 20, 0, 6, 195, 92, 19, 0, 20, 10, 135, 20, 11, 14, 196, 133, 197, 130, 20,
+			8, 197, 77, 161, 80, 13, 160, 20, 10, 135, 19, 26, 3, 26, 21, 197, 130, 20, 6, 195, 76, 147, 0, 20, 10, 135, 19, 3, 8, 12,
+			1, 197, 130, 20, 8, 197, 56, 148, 218, 13, 160, 20, 8, 133, 13, 195, 179, 4, 12, 20, 10, 135, 4, 18, 197, 188, 1, 197, 130, 20,
+			10, 135, 2, 18, 14, 196, 133, 197, 130, 20, 7, 132, 19, 9, 196, 153, 72, 0, 11, 136, 197, 188, 7, 14, 196, 133, 197, 130, 20, 11,
+			136, 20, 3, 8, 14, 196, 133, 197, 130, 20, 11, 136, 18, 197, 188, 14, 196, 133, 197, 130, 20, 7, 132, 18, 1, 197, 186, 20, 16, 66,
+			64, 240, 48, 6, 111, 84, 35, 89, 0, 81, 119, 97, 115, 32, 16, 66, 64, 240, 48, 6, 111, 47, 112, 65, 0, 81, 116, 121, 109, 32,
+			14, 66, 64, 240, 48, 6, 111, 47, 111, 0, 81, 116, 111, 32, 14, 66, 64, 240, 48, 6, 111, 47, 109, 0, 81, 116, 101, 32, 15, 66,
+			64, 240, 48, 6, 111, 47, 114, 0, 81, 116, 196, 133, 32, 16, 66, 64, 240, 48, 6, 111, 67, 38, 109, 0, 81, 110, 105, 101, 32, 17,
+			66, 64, 240, 48, 6, 111, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 64, 240, 48, 6, 111, 67, 37, 65, 0, 81, 110, 105,
+			109, 32, 18, 66, 64, 240, 48, 6, 111, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 16, 66, 64, 240, 48, 6, 111, 50, 35, 89,
+			0, 81, 110, 97, 115, 32, 18, 66, 64, 240, 48, 6, 111, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 5, 194, 64, 240, 76, 0,
+			12, 137, 4, 197, 186, 7, 14, 196, 133, 197, 130, 20, 18, 67, 64, 241, 0, 48, 6, 111, 72, 84, 35, 89, 0, 81, 119, 97, 115, 32,
+			18, 67, 64, 241, 0, 48, 6, 111, 47, 47, 112, 65, 0, 81, 116, 121, 109, 32, 16, 67, 64, 241, 0, 48, 6, 111, 47, 47, 111, 0,
+			81, 116, 111, 32, 16, 67, 64, 241, 0, 48, 6, 111, 47, 47, 109, 0, 81, 116, 101, 32, 17, 67, 64, 241, 0, 48, 6, 111, 47, 47,
+			114, 0, 81, 116, 196, 133, 32, 18, 67, 64, 241, 0, 48, 6, 111, 72, 67, 38, 109, 0, 81, 110, 105, 101, 32, 19, 67, 64, 241, 0,
+			48, 6, 111, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 18, 67, 64, 241, 0, 48, 6, 111, 72, 67, 37, 65, 0, 81, 110, 105,
+			109, 32, 19, 67, 64, 241, 0, 48, 6, 111, 72, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 18, 67, 64, 241, 0, 48, 6, 111, 72,
+			50, 35, 89, 0, 81, 110, 97, 115, 32, 6, 195, 64, 241, 0, 76, 19, 2, 203, 157, 101, 4, 40, 68, 81, 35, 51, 6, 40, 65, 55,
+			35, 58, 47, 0, 0, 9, 134, 20, 197, 130, 15, 3, 26, 20, 7, 196, 76, 180, 143, 8, 20, 6, 195, 53, 38, 133, 20, 9, 134, 197,
+			130, 197, 188, 25, 10, 20, 10, 135, 7, 18, 26, 13, 9, 196, 153, 20, 0, 8, 133, 4, 196, 133, 197, 188, 20, 12, 2, 203, 155, 111,
+			81, 6, 111, 50, 109, 49, 0, 0, 12, 2, 203, 152, 71, 51, 6, 109, 84, 37, 89, 0, 0, 19, 2, 203, 153, 81, 6, 40, 51, 50,
+			35, 10, 49, 51, 6, 111, 48, 49, 35, 0, 0, 9, 134, 197, 188, 7, 1, 19, 26, 20, 9, 134, 197, 155, 14, 9, 19, 26, 20, 10,
+			68, 8, 241, 85, 24, 71, 109, 83, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0, 0, 9, 67, 88, 145, 87, 84, 38, 40, 0,
+			0, 9, 134, 19, 26, 11, 12, 196, 153, 20, 0, 7, 196, 92, 145, 68, 104, 20, 0, 11, 136, 19, 3, 8, 197, 130, 15, 2, 25, 20,
+			12, 137, 15, 197, 155, 13, 9, 21, 19, 5, 20, 65, 13, 69, 40, 84, 147, 21, 144, 75, 109, 51, 88, 37, 0, 0, 6, 2, 95, 9,
+			37, 0, 0, 9, 134, 196, 135, 13, 9, 196, 153, 20, 14, 139, 19, 26, 5, 197, 155, 3, 9, 21, 19, 5, 20, 65, 0, 6, 2, 95,
+			15, 111, 0, 0, 9, 134, 26, 197, 130, 1, 197, 186, 20, 9, 134, 23, 197, 130, 1, 197, 186, 20, 7, 196, 28, 224, 83, 104, 20, 0,
+			8, 197, 4, 194, 83, 60, 224, 65, 0, 9, 134, 23, 9, 196, 133, 197, 188, 20, 0, 7, 132, 20, 18, 196, 133, 20, 7, 132, 16, 18,
+			196, 133, 20, 0, 18, 9, 4, 5, 12, 12, 39, 1, 18, 20, 5, 72, 109, 55, 6, 35, 51, 0, 10, 135, 10, 5, 19, 20, 5, 197,
+			155, 76, 0, 11, 136, 19, 20, 18, 26, 196, 133, 197, 155, 20, 9, 134, 4, 18, 7, 14, 196, 133, 20, 9, 134, 3, 26, 11, 14, 196,
+			133, 20, 0, 16, 70, 8, 16, 203, 92, 20, 132, 71, 109, 49, 58, 109, 51, 72, 0, 0, 9, 134, 19, 20, 197, 130, 21, 3, 20, 8,
+			133, 4, 197, 130, 21, 2, 20, 9, 134, 3, 8, 3, 196, 133, 3, 20, 7, 2, 95, 23, 84, 40, 0, 0, 0, 9, 134, 20, 11, 23,
+			9, 196, 153, 20, 6, 2, 95, 21, 40, 0, 0, 0, 0, 7, 196, 92, 116, 143, 52, 20, 10, 135, 197, 155, 14, 9, 196, 133, 3, 20,
+			10, 135, 196, 135, 13, 9, 196, 133, 3, 20, 8, 2, 95, 26, 88, 109, 47, 0, 0, 8, 197, 105, 112, 76, 13, 160, 20, 10, 135, 26,
+			7, 18, 25, 26, 197, 130, 20, 11, 136, 2, 18, 26, 13, 9, 196, 133, 3, 20, 13, 138, 10, 5, 19, 20, 5, 197, 155, 3, 9, 5,
+			76, 0, 8, 133, 11, 18, 1, 197, 155, 20, 10, 135, 2, 18, 26, 13, 9, 196, 153, 20, 0, 8, 133, 196, 135, 16, 1, 10, 20, 0,
+			7, 196, 92, 194, 67, 104, 20, 7, 196, 16, 32, 83, 104, 20, 10, 135, 2, 25, 197, 130, 5, 197, 155, 76, 11, 200, 52, 19, 132, 20,
+			192, 146, 61, 64, 65, 0, 10, 135, 26, 7, 197, 130, 21, 19, 26, 20, 0, 11, 136, 197, 188, 7, 14, 9, 5, 19, 26, 20, 9, 134,
+			26, 13, 18, 21, 197, 188, 20, 6, 195, 52, 67, 9, 20, 18, 67, 16, 82, 129, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 101,
+			32, 17, 67, 16, 82, 129, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 32, 9, 134, 11, 15, 12, 1, 197, 188, 66, 0, 10, 135,
+			26, 23, 9, 196, 133, 197, 188, 20, 8, 133, 26, 12, 5, 197, 186, 20, 8, 133, 23, 12, 5, 197, 186, 20, 6, 195, 48, 82, 128, 20,
+			6, 195, 8, 146, 128, 20, 7, 195, 80, 82, 128, 72, 12, 0, 7, 196, 104, 36, 143, 40, 20, 9, 134, 13, 197, 188, 25, 19, 26, 20,
+			8, 133, 196, 135, 16, 1, 13, 20, 14, 2, 95, 34, 117, 40, 118, 6, 112, 89, 58, 40, 83, 0, 0, 9, 198, 93, 54, 131, 104, 226,
+			69, 20, 10, 135, 4, 197, 186, 7, 1, 19, 26, 20, 11, 69, 69, 82, 67, 32, 80, 49, 37, 91, 0, 15, 2, 95, 33, 84, 112, 49,
+			91, 6, 112, 49, 67, 37, 49, 0, 0, 9, 198, 93, 64, 83, 104, 54, 128, 20, 9, 198, 44, 192, 83, 104, 54, 128, 20, 5, 194, 81,
+			144, 76, 0, 10, 135, 19, 20, 18, 26, 5, 197, 188, 20, 9, 67, 12, 243, 128, 49, 111, 50, 0, 14, 2, 95, 39, 35, 48, 6, 111,
+			89, 47, 51, 111, 83, 0, 0, 9, 198, 93, 54, 131, 104, 226, 74, 20, 7, 196, 92, 180, 143, 64, 20, 0, 0, 16, 67, 52, 195, 5,
+			65, 35, 72, 65, 40, 35, 88, 6, 109, 55, 0, 10, 67, 40, 19, 133, 75, 109, 57, 50, 0, 11, 2, 95, 36, 72, 6, 111, 55, 35,
+			51, 0, 0, 7, 195, 80, 83, 128, 72, 12, 0, 7, 196, 77, 3, 1, 52, 20, 12, 68, 4, 66, 69, 84, 35, 72, 57, 6, 109, 0,
+			7, 196, 52, 16, 201, 20, 76, 13, 4, 95, 3, 1, 16, 72, 6, 40, 90, 109, 10, 0, 0, 23, 73, 12, 147, 145, 84, 80, 197, 57,
+			67, 192, 76, 37, 50, 49, 58, 109, 76, 109, 50, 47, 111, 0, 15, 2, 95, 41, 48, 111, 50, 35, 84, 38, 6, 35, 97, 109, 0, 0,
+			6, 195, 92, 116, 129, 20, 11, 2, 95, 40, 50, 35, 84, 38, 35, 89, 0, 0, 8, 133, 11, 197, 130, 21, 10, 20, 0, 8, 133, 20,
+			11, 14, 196, 133, 20, 10, 135, 7, 18, 25, 197, 186, 196, 135, 20, 0, 11, 136, 26, 23, 9, 5, 197, 186, 196, 135, 20, 8, 133, 26,
+			14, 21, 197, 188, 20, 11, 136, 26, 7, 18, 25, 197, 186, 196, 135, 20, 11, 136, 23, 23, 9, 5, 197, 186, 196, 135, 20, 10, 135, 23,
+			9, 5, 197, 132, 3, 26, 20, 11, 136, 23, 7, 18, 25, 197, 186, 196, 135, 20, 8, 133, 13, 25, 197, 155, 12, 20, 13, 2, 95, 45,
+			65, 6, 112, 97, 55, 50, 37, 49, 0, 0, 11, 136, 26, 23, 9, 5, 197, 132, 3, 26, 20, 8, 133, 9, 197, 155, 196, 135, 20, 14,
+			2, 95, 44, 48, 91, 109, 119, 6, 37, 50, 109, 49, 0, 0, 7, 132, 4, 18, 196, 133, 20, 19, 71, 12, 19, 69, 52, 33, 82, 80,
+			49, 35, 65, 109, 65, 71, 6, 109, 51, 0, 9, 2, 95, 51, 47, 91, 6, 112, 0, 0, 10, 135, 26, 10, 5, 197, 155, 196, 135, 20,
+			10, 135, 23, 9, 5, 197, 186, 196, 135, 20, 11, 136, 19, 16, 18, 26, 196, 133, 197, 188, 20, 7, 196, 9, 35, 137, 40, 20, 8, 133,
+			13, 1, 10, 196, 133, 76, 27, 68, 76, 245, 78, 16, 89, 35, 58, 50, 72, 15, 75, 6, 40, 89, 109, 51, 0, 81, 106, 117, 105, 99,
+			101, 114, 32, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 8, 197, 76, 179, 14, 36, 160, 20, 8, 197, 76, 50, 12, 20, 160, 20, 11,
+			2, 95, 49, 57, 6, 109, 72, 109, 50, 0, 0, 11, 136, 197, 155, 23, 9, 15, 4, 3, 26, 20, 11, 2, 95, 48, 88, 6, 109, 51,
+			111, 12, 0, 0, 7, 132, 16, 18, 196, 153, 20, 6, 195, 45, 114, 76, 20, 11, 2, 95, 55, 97, 6, 109, 72, 109, 65, 0, 0, 10,
+			2, 95, 54, 91, 6, 109, 97, 119, 0, 0, 9, 134, 3, 26, 11, 14, 196, 153, 20, 11, 2, 95, 53, 48, 38, 6, 109, 67, 119, 0,
+			0, 11, 136, 23, 23, 9, 195, 179, 26, 197, 130, 20, 8, 133, 4, 13, 196, 133, 3, 20, 11, 2, 95, 52, 76, 47, 6, 109, 51, 112,
+			0, 0, 8, 133, 12, 1, 26, 197, 130, 20, 9, 134, 11, 16, 9, 196, 133, 3, 20, 13, 2, 95, 59, 97, 51, 6, 109, 72, 67, 37,
+			49, 0, 0, 9, 134, 23, 12, 1, 26, 197, 130, 20, 10, 135, 20, 11, 23, 9, 196, 133, 3, 20, 10, 135, 197, 155, 13, 9, 196, 133,
+			3, 20, 10, 135, 19, 26, 11, 12, 196, 133, 3, 20, 9, 134, 7, 18, 25, 26, 197, 130, 20, 10, 135, 4, 18, 23, 9, 196, 133, 3,
+			20, 9, 198, 12, 131, 1, 77, 160, 218, 20, 15, 2, 95, 58, 72, 84, 40, 49, 51, 6, 111, 48, 109, 49, 0, 0, 10, 135, 23, 9,
+			195, 179, 26, 197, 130, 20, 10, 135, 23, 7, 18, 25, 26, 197, 130, 20, 8, 197, 64, 197, 193, 77, 160, 20, 13, 2, 95, 57, 120, 6,
+			109, 84, 38, 109, 67, 119, 0, 0, 14, 139, 19, 3, 8, 197, 130, 25, 197, 155, 3, 9, 5, 20, 18, 66, 92, 80, 84, 6, 109, 65,
+			67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 16, 70, 12, 128, 82, 52, 19, 148, 91, 35, 51, 65, 35, 50, 0, 66, 5, 194, 92, 80,
+			72, 10, 2, 95, 56, 6, 111, 97, 109, 65, 0, 0, 19, 71, 12, 243, 131, 36, 84, 135, 20, 49, 111, 50, 89, 57, 6, 109, 51, 90,
+			0, 20, 2, 95, 63, 88, 50, 4, 35, 49, 15, 88, 35, 48, 112, 47, 6, 35, 67, 35, 0, 0, 9, 134, 26, 23, 196, 153, 197, 186,
+			20, 7, 196, 76, 179, 195, 104, 20, 13, 2, 95, 62, 58, 38, 6, 109, 68, 49, 91, 109, 0, 0, 12, 137, 26, 2, 197, 130, 1, 197,
+			186, 197, 132, 20, 0, 11, 136, 197, 155, 23, 9, 1, 4, 3, 26, 20, 9, 198, 64, 197, 83, 104, 54, 128, 20, 9, 198, 52, 20, 147,
+			104, 54, 128, 20, 12, 2, 95, 60, 65, 67, 6, 109, 57, 91, 109, 0, 0, 0, 7, 196, 105, 37, 83, 104, 20, 7, 196, 104, 35, 195,
+			104, 20, 7, 196, 12, 145, 82, 64, 20, 0, 0, 9, 198, 104, 226, 83, 104, 54, 128, 20, 9, 198, 12, 132, 154, 12, 146, 128, 20, 0,
+			7, 132, 20, 18, 196, 153, 20, 0, 7, 196, 76, 180, 143, 64, 20, 7, 132, 11, 196, 133, 16, 20, 7, 196, 9, 35, 137, 20, 20, 0,
+			9, 134, 4, 18, 7, 14, 196, 153, 20, 0, 9, 198, 61, 5, 9, 53, 83, 64, 65, 0, 6, 195, 93, 112, 76, 20, 0, 7, 196, 64,
+			21, 18, 104, 20, 0, 0, 6, 195, 104, 161, 77, 20, 8, 133, 23, 4, 21, 197, 155, 20, 8, 133, 16, 19, 15, 196, 135, 20, 10, 135,
+			4, 197, 188, 4, 197, 188, 25, 20, 10, 67, 12, 240, 193, 49, 111, 49, 35, 0, 0, 9, 134, 13, 1, 197, 155, 196, 135, 20, 9, 134,
+			4, 26, 9, 15, 196, 135, 20, 0, 10, 135, 3, 26, 25, 197, 155, 196, 135, 20, 0, 11, 136, 26, 13, 9, 5, 197, 155, 196, 135, 20,
+			11, 136, 26, 7, 196, 153, 197, 155, 196, 135, 20, 11, 136, 23, 13, 9, 5, 197, 155, 196, 135, 20, 11, 136, 23, 11, 18, 1, 197, 155,
+			196, 135, 20, 11, 136, 19, 20, 18, 5, 197, 155, 196, 135, 20, 11, 136, 19, 11, 18, 1, 197, 155, 196, 135, 20, 0, 8, 133, 26, 9,
+			15, 196, 135, 20, 12, 137, 26, 7, 14, 9, 5, 197, 155, 196, 135, 20, 12, 137, 23, 26, 14, 9, 5, 197, 155, 196, 135, 20, 10, 67,
+			88, 144, 197, 84, 37, 117, 109, 0, 9, 198, 4, 225, 197, 48, 84, 192, 65, 0, 9, 134, 16, 21, 197, 155, 196, 135, 20, 8, 133, 8,
+			1, 197, 132, 2, 20, 9, 134, 4, 18, 7, 15, 196, 135, 20, 9, 134, 3, 26, 11, 15, 196, 135, 20, 13, 67, 85, 48, 128, 40, 109,
+			89, 71, 6, 109, 0, 17, 0, 10, 135, 18, 195, 179, 197, 155, 196, 135, 20, 10, 135, 13, 9, 5, 197, 155, 196, 135, 20, 10, 135, 3,
+			8, 23, 9, 15, 196, 135, 20, 10, 135, 2, 195, 179, 197, 155, 196, 135, 20, 0, 11, 136, 26, 18, 195, 179, 197, 155, 196, 135, 20, 6,
+			195, 104, 34, 74, 20, 11, 136, 23, 18, 195, 179, 197, 155, 196, 135, 20, 0, 0, 8, 133, 26, 9, 15, 197, 130, 20, 8, 133, 14, 9,
+			11, 197, 130, 20, 14, 67, 20, 177, 192, 109, 49, 35, 81, 38, 6, 109, 0, 17, 19, 71, 25, 32, 78, 12, 148, 195, 60, 83, 51, 35,
+			50, 89, 37, 89, 49, 111, 0, 0, 9, 198, 77, 4, 154, 100, 180, 154, 20, 8, 133, 4, 18, 197, 188, 25, 20, 9, 134, 4, 18, 7,
+			15, 197, 130, 20, 9, 134, 3, 26, 11, 15, 197, 130, 20, 14, 4, 95, 4, 15, 20, 88, 49, 51, 111, 48, 49, 114, 0, 0, 10, 135,
+			19, 16, 19, 9, 15, 197, 130, 20, 10, 135, 19, 16, 9, 5, 11, 197, 130, 20, 10, 135, 3, 8, 23, 9, 15, 197, 130, 20, 0, 0,
+			6, 195, 104, 161, 64, 20, 7, 195, 4, 193, 64, 76, 28, 24, 2, 95, 91, 50, 4, 35, 84, 38, 35, 89, 15, 49, 84, 35, 72, 51,
+			35, 47, 6, 111, 84, 112, 0, 0, 9, 134, 26, 23, 25, 11, 197, 130, 20, 8, 133, 20, 11, 14, 196, 153, 20, 9, 134, 18, 26, 5,
+			11, 197, 130, 20, 9, 134, 4, 26, 9, 15, 197, 130, 20, 9, 134, 2, 18, 1, 11, 197, 130, 20, 0, 10, 135, 26, 18, 26, 5, 11,
+			197, 130, 20, 10, 135, 26, 2, 18, 1, 11, 197, 130, 20, 8, 197, 93, 160, 149, 73, 160, 20, 8, 197, 92, 180, 143, 13, 160, 20, 8,
+			197, 81, 37, 193, 77, 160, 20, 8, 197, 17, 33, 193, 77, 160, 20, 0, 6, 195, 64, 226, 69, 20, 16, 66, 104, 16, 88, 6, 35, 67,
+			38, 109, 0, 81, 110, 105, 101, 32, 17, 66, 104, 16, 88, 6, 35, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 104, 16, 88,
+			6, 35, 84, 35, 89, 0, 81, 119, 97, 115, 32, 16, 66, 104, 16, 88, 6, 35, 47, 112, 65, 0, 81, 116, 121, 109, 32, 14, 66, 104,
+			16, 88, 6, 35, 47, 111, 0, 81, 116, 111, 32, 14, 66, 104, 16, 88, 6, 35, 47, 109, 0, 81, 116, 101, 32, 15, 66, 104, 16, 88,
+			6, 35, 47, 114, 0, 81, 116, 196, 133, 32, 16, 66, 104, 16, 88, 6, 35, 67, 37, 65, 0, 81, 110, 105, 109, 32, 17, 66, 104, 16,
+			88, 6, 35, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 16, 66, 104, 16, 88, 6, 35, 50, 35, 89, 0, 81, 110, 97, 115, 32, 18,
+			66, 104, 16, 88, 6, 35, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 5, 194, 104, 16, 76, 0, 8, 133, 11, 18, 195, 179, 10,
+			20, 17, 2, 95, 95, 48, 111, 72, 49, 51, 109, 97, 55, 6, 109, 67, 109, 0, 0, 9, 134, 23, 11, 197, 130, 21, 10, 20, 7, 196,
+			80, 181, 201, 40, 20, 9, 134, 19, 11, 197, 130, 21, 10, 20, 18, 70, 64, 17, 197, 16, 245, 206, 48, 109, 57, 75, 72, 6, 35, 58,
+			50, 0, 0, 10, 135, 14, 9, 1, 197, 132, 3, 26, 20, 28, 69, 52, 18, 84, 72, 80, 65, 109, 47, 51, 109, 72, 111, 47, 6, 109,
+			55, 0, 81, 100, 39, 104, 111, 116, 101, 108, 32, 30, 2, 95, 93, 48, 51, 35, 84, 112, 15, 50, 4, 35, 84, 38, 35, 89, 15, 49,
+			84, 35, 72, 51, 35, 47, 6, 111, 84, 112, 0, 0, 9, 198, 77, 162, 204, 37, 54, 128, 20, 9, 198, 65, 53, 18, 105, 146, 128, 20,
+			10, 67, 40, 18, 197, 75, 109, 57, 49, 0, 0, 6, 195, 73, 146, 128, 20, 6, 195, 17, 82, 128, 20, 9, 67, 12, 243, 204, 49, 40,
+			55, 0, 0, 7, 196, 12, 145, 83, 104, 20, 12, 137, 2, 196, 153, 4, 26, 9, 5, 13, 25, 76, 8, 133, 2, 25, 197, 130, 1, 76,
+			0, 6, 195, 8, 16, 218, 20, 31, 69, 12, 128, 82, 28, 80, 91, 35, 51, 90, 109, 72, 35, 83, 109, 51, 0, 68, 81, 100, 39, 97,
+			102, 102, 97, 105, 114, 101, 115, 32, 0, 9, 198, 77, 160, 218, 101, 54, 128, 20, 8, 133, 2, 25, 197, 130, 15, 76, 0, 7, 132, 4,
+			18, 196, 153, 20, 0, 0, 6, 195, 64, 226, 74, 20, 0, 0, 0, 0, 0, 8, 133, 26, 23, 15, 196, 135, 20, 8, 133, 20, 11, 15,
+			196, 135, 20, 8, 133, 19, 19, 15, 196, 135, 20, 8, 133, 18, 23, 15, 196, 135, 20, 16, 70, 13, 84, 129, 12, 19, 192, 49, 37, 51,
+			35, 89, 35, 111, 0, 26, 67, 12, 244, 193, 49, 4, 111, 88, 35, 50, 6, 111, 89, 47, 51, 35, 0, 81, 110, 111, 115, 116, 114, 97,
+			32, 14, 4, 95, 7, 18, 22, 119, 6, 113, 91, 80, 38, 109, 0, 0, 9, 134, 21, 10, 197, 155, 196, 135, 20, 20, 67, 88, 148, 192,
+			84, 37, 88, 35, 84, 37, 0, 67, 82, 97, 32, 118, 105, 115, 32, 21, 67, 88, 148, 192, 84, 37, 88, 35, 84, 37, 0, 67, 82, 195,
+			160, 32, 118, 105, 115, 32, 0, 9, 134, 26, 13, 196, 153, 3, 26, 20, 7, 196, 12, 226, 83, 104, 20, 8, 133, 3, 8, 3, 196, 133,
+			20, 12, 68, 13, 83, 16, 4, 49, 40, 55, 48, 35, 0, 0, 11, 136, 26, 23, 9, 5, 197, 155, 196, 135, 20, 11, 136, 26, 14, 9,
+			5, 197, 155, 196, 135, 20, 11, 136, 23, 14, 9, 5, 197, 155, 196, 135, 20, 8, 197, 92, 70, 137, 20, 160, 20, 0, 12, 137, 23, 26,
+			18, 195, 179, 197, 155, 196, 135, 20, 8, 133, 23, 9, 15, 196, 135, 20, 8, 133, 19, 9, 15, 196, 135, 20, 8, 133, 16, 9, 15, 196,
+			135, 20, 6, 131, 19, 196, 133, 76, 0, 8, 133, 197, 188, 25, 3, 26, 20, 9, 134, 20, 18, 23, 15, 196, 135, 20, 9, 134, 16, 15,
+			197, 155, 196, 135, 20, 0, 10, 135, 23, 16, 21, 197, 155, 196, 135, 20, 10, 135, 19, 16, 21, 197, 155, 196, 135, 20, 10, 135, 16, 9,
+			5, 197, 155, 196, 135, 20, 10, 135, 14, 1, 10, 197, 155, 196, 135, 20, 10, 135, 11, 18, 1, 197, 155, 196, 135, 20, 0, 11, 136, 11,
+			197, 130, 1, 197, 155, 196, 135, 20, 8, 197, 12, 133, 201, 20, 160, 20, 0, 10, 135, 19, 3, 8, 197, 130, 15, 13, 20, 0, 8, 133,
+			23, 9, 15, 197, 130, 20, 8, 133, 19, 9, 15, 197, 130, 20, 8, 133, 16, 9, 15, 197, 130, 20, 6, 195, 8, 21, 192, 20, 0, 9,
+			134, 26, 13, 195, 179, 18, 26, 20, 9, 134, 23, 12, 5, 11, 197, 130, 20, 9, 134, 20, 18, 23, 15, 197, 130, 20, 9, 134, 16, 9,
+			5, 11, 197, 130, 20, 0, 10, 135, 26, 23, 12, 5, 11, 197, 130, 20, 6, 195, 48, 80, 218, 20, 0, 11, 136, 19, 20, 197, 130, 21,
+			11, 197, 130, 20, 11, 136, 7, 18, 26, 13, 9, 15, 197, 130, 20, 0, 8, 133, 26, 23, 15, 197, 130, 20, 8, 133, 20, 11, 15, 197,
+			130, 20, 12, 137, 197, 155, 13, 9, 5, 18, 4, 197, 130, 20, 8, 133, 19, 19, 15, 197, 130, 20, 8, 133, 18, 23, 15, 197, 130, 20,
+			21, 2, 95, 123, 50, 4, 35, 84, 38, 35, 89, 15, 49, 55, 35, 65, 51, 111, 84, 112, 0, 15, 4, 95, 4, 9, 1, 10, 6, 40,
+			65, 55, 35, 58, 47, 0, 0, 9, 198, 80, 50, 14, 36, 84, 218, 20, 9, 134, 19, 9, 5, 11, 197, 130, 20, 9, 198, 76, 50, 14,
+			36, 84, 218, 20, 9, 134, 13, 195, 179, 11, 197, 130, 20, 9, 134, 3, 9, 5, 11, 197, 130, 20, 9, 198, 12, 132, 154, 12, 148, 218,
+			20, 8, 133, 2, 25, 197, 130, 25, 76, 7, 195, 80, 81, 207, 72, 12, 0, 10, 135, 26, 13, 195, 179, 11, 197, 130, 20, 10, 135, 23,
+			3, 9, 5, 11, 197, 130, 20, 10, 135, 20, 197, 130, 21, 11, 197, 130, 20, 0, 9, 134, 20, 18, 23, 15, 197, 132, 20, 11, 136, 197,
+			155, 3, 9, 5, 11, 197, 130, 20, 9, 134, 4, 26, 23, 15, 197, 132, 20, 10, 135, 2, 196, 153, 4, 26, 9, 5, 76, 5, 194, 80,
+			240, 72, 0, 10, 135, 19, 20, 18, 23, 15, 197, 132, 20, 0, 7, 196, 104, 224, 67, 104, 20, 6, 195, 104, 32, 87, 20, 7, 196, 77,
+			4, 129, 92, 20, 7, 196, 25, 84, 131, 104, 20, 7, 196, 12, 194, 83, 104, 20, 0, 8, 197, 77, 160, 218, 4, 208, 20, 23, 73, 12,
+			130, 80, 64, 83, 132, 4, 193, 64, 76, 37, 48, 109, 50, 72, 109, 57, 55, 0, 65, 9, 21, 73, 12, 130, 80, 64, 83, 132, 4, 193,
+			64, 76, 37, 48, 109, 50, 72, 109, 57, 55, 0, 9, 134, 11, 20, 195, 179, 18, 1, 76, 28, 2, 95, 125, 48, 51, 35, 84, 112, 15,
+			50, 4, 35, 84, 38, 35, 89, 15, 49, 55, 35, 65, 51, 6, 111, 84, 112, 0, 0, 8, 133, 19, 11, 15, 197, 155, 20, 0, 0, 8,
+			133, 11, 197, 130, 15, 13, 20, 12, 137, 14, 9, 5, 11, 20, 195, 179, 18, 1, 76, 12, 67, 40, 21, 211, 75, 6, 109, 58, 89, 0,
+			17, 0, 10, 135, 19, 20, 18, 196, 153, 3, 26, 20, 10, 135, 19, 16, 197, 130, 15, 19, 26, 20, 6, 195, 72, 16, 218, 20, 9, 134,
+			11, 20, 195, 179, 18, 5, 76, 0, 9, 198, 77, 160, 218, 5, 54, 128, 20, 9, 198, 9, 38, 141, 37, 54, 128, 20, 5, 194, 93, 144,
+			76, 0, 6, 195, 12, 134, 76, 20, 0, 12, 137, 14, 9, 5, 11, 20, 195, 179, 18, 5, 76, 0, 0, 0, 0, 9, 198, 76, 179, 14,
+			36, 84, 218, 20, 9, 198, 64, 50, 14, 36, 84, 218, 20, 8, 133, 3, 8, 3, 196, 153, 20, 0, 0, 17, 70, 12, 16, 133, 72, 225,
+			84, 49, 35, 71, 109, 51, 50, 6, 109, 0, 0, 8, 133, 26, 197, 130, 1, 10, 20, 0, 9, 134, 23, 20, 18, 195, 179, 10, 20, 9,
+			134, 19, 20, 18, 195, 179, 10, 20, 0, 15, 70, 12, 243, 84, 21, 52, 197, 49, 114, 47, 6, 109, 89, 0, 0, 0, 8, 133, 23, 23,
+			15, 197, 186, 20, 0, 8, 133, 26, 197, 130, 1, 13, 20, 8, 133, 23, 197, 130, 1, 13, 20, 11, 136, 19, 20, 18, 23, 195, 179, 197,
+			188, 20, 8, 133, 12, 197, 188, 196, 133, 20, 7, 196, 17, 84, 3, 104, 20, 6, 195, 9, 32, 75, 20, 0, 0, 21, 67, 64, 241, 5,
+			48, 111, 72, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 20, 67, 64, 241, 5, 48, 111, 72, 6, 109, 65, 50, 114, 0,
+			81, 109, 110, 196, 133, 32, 0, 8, 133, 11, 195, 179, 18, 26, 20, 0, 0, 0, 10, 135, 16, 18, 15, 197, 130, 2, 25, 20, 10, 135,
+			13, 9, 15, 197, 130, 2, 25, 20, 10, 135, 7, 1, 19, 197, 130, 2, 25, 20, 11, 136, 19, 20, 196, 153, 3, 8, 197, 130, 20, 13,
+			4, 95, 35, 51, 50, 89, 48, 35, 117, 57, 35, 0, 0, 11, 136, 26, 23, 25, 11, 197, 130, 2, 25, 20, 11, 136, 26, 7, 18, 15,
+			197, 130, 2, 25, 20, 11, 136, 23, 7, 18, 15, 197, 130, 2, 25, 20, 11, 136, 18, 197, 188, 15, 197, 130, 2, 25, 20, 11, 136, 18,
+			26, 5, 11, 197, 130, 2, 25, 20, 11, 136, 13, 9, 12, 11, 197, 130, 2, 25, 20, 11, 136, 13, 4, 12, 15, 197, 130, 2, 25, 20,
+			11, 136, 197, 130, 7, 15, 197, 130, 2, 25, 20, 11, 136, 4, 26, 9, 15, 197, 130, 2, 25, 20, 11, 136, 196, 135, 16, 15, 197, 130,
+			2, 25, 20, 11, 136, 3, 8, 12, 15, 197, 130, 2, 25, 20, 11, 136, 2, 18, 1, 11, 197, 130, 2, 25, 20, 9, 134, 23, 26, 14,
+			195, 179, 23, 20, 12, 137, 197, 155, 13, 9, 15, 18, 4, 197, 130, 20, 15, 67, 85, 49, 192, 40, 10, 109, 89, 81, 38, 6, 109, 0,
+			17, 0, 12, 137, 26, 18, 26, 5, 11, 197, 130, 2, 25, 20, 12, 137, 26, 13, 195, 179, 7, 197, 130, 2, 25, 20, 12, 137, 26, 13,
+			9, 12, 11, 197, 130, 2, 25, 20, 12, 137, 26, 2, 18, 1, 11, 197, 130, 2, 25, 20, 12, 137, 23, 12, 195, 179, 11, 197, 130, 2,
+			25, 20, 12, 137, 23, 4, 26, 9, 15, 197, 130, 2, 25, 20, 12, 137, 19, 3, 8, 12, 15, 197, 130, 2, 25, 20, 12, 137, 11, 12,
+			196, 153, 19, 197, 130, 2, 25, 20, 12, 137, 4, 197, 186, 7, 15, 197, 130, 2, 25, 20, 12, 137, 3, 8, 3, 9, 15, 197, 130, 2,
+			25, 20, 13, 138, 19, 16, 9, 5, 18, 26, 3, 8, 197, 130, 20, 9, 134, 19, 5, 3, 8, 197, 130, 20, 9, 134, 16, 21, 3, 8,
+			197, 130, 20, 12, 137, 2, 25, 12, 9, 197, 155, 3, 9, 5, 76, 0, 13, 138, 19, 3, 8, 12, 9, 197, 155, 3, 9, 5, 20, 13,
+			138, 19, 26, 197, 130, 25, 197, 155, 3, 9, 5, 20, 13, 138, 23, 26, 13, 195, 179, 7, 197, 130, 2, 25, 20, 13, 138, 19, 11, 12,
+			196, 153, 19, 197, 130, 2, 25, 20, 8, 197, 92, 65, 80, 13, 160, 20, 13, 138, 2, 25, 197, 130, 25, 197, 155, 3, 9, 5, 76, 0,
+			14, 139, 19, 26, 12, 9, 2, 25, 197, 155, 3, 9, 5, 20, 14, 139, 23, 197, 155, 3, 9, 5, 11, 197, 130, 2, 25, 20, 17, 66,
+			104, 80, 88, 6, 109, 65, 50, 114, 0, 81, 109, 110, 196, 133, 32, 18, 66, 104, 80, 88, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110,
+			105, 101, 32, 14, 139, 13, 9, 1, 197, 130, 25, 197, 155, 3, 9, 5, 76, 0, 15, 140, 19, 26, 197, 130, 25, 2, 25, 197, 155, 3,
+			9, 5, 20, 15, 140, 19, 8, 197, 130, 25, 2, 25, 197, 155, 3, 9, 5, 20, 15, 140, 19, 3, 8, 12, 9, 2, 25, 197, 155, 3,
+			9, 5, 20, 11, 136, 19, 3, 8, 197, 130, 25, 2, 25, 20, 6, 195, 45, 2, 64, 20, 0, 13, 138, 26, 13, 9, 5, 18, 26, 3,
+			8, 197, 130, 20, 7, 196, 93, 4, 129, 92, 20, 10, 68, 12, 243, 84, 20, 49, 114, 47, 0, 11, 200, 76, 145, 68, 52, 149, 83, 21,
+			64, 65, 0, 10, 135, 197, 155, 12, 196, 153, 3, 26, 20, 0, 0, 0, 0, 6, 195, 77, 2, 74, 20, 0, 10, 135, 19, 3, 8, 197,
+			130, 5, 13, 20, 0, 14, 67, 52, 195, 128, 65, 37, 55, 57, 111, 50, 40, 83, 0, 0, 0, 8, 133, 26, 197, 130, 1, 16, 20, 6,
+			195, 93, 2, 74, 20, 6, 195, 9, 144, 218, 20, 9, 134, 11, 20, 195, 179, 18, 25, 76, 0, 0, 0, 12, 137, 14, 9, 5, 11, 20,
+			195, 179, 18, 25, 76, 0, 14, 69, 4, 225, 18, 21, 112, 109, 50, 72, 34, 57, 40, 0, 0, 0, 7, 132, 3, 12, 196, 133, 20, 0,
+			7, 196, 105, 38, 133, 12, 20, 7, 196, 93, 53, 1, 92, 20, 0, 6, 195, 105, 165, 74, 20, 9, 134, 197, 130, 197, 188, 196, 133, 20,
+			9, 134, 4, 18, 197, 188, 196, 133, 20, 10, 135, 11, 20, 195, 179, 18, 5, 10, 76, 0, 7, 131, 20, 196, 133, 72, 12, 0, 8, 133,
+			26, 23, 15, 197, 186, 20, 0, 8, 133, 18, 197, 188, 196, 133, 20, 8, 133, 13, 197, 188, 196, 133, 20, 10, 135, 13, 197, 155, 3, 9,
+			196, 135, 20, 13, 138, 14, 9, 5, 11, 20, 195, 179, 18, 5, 10, 76, 0, 6, 195, 105, 38, 74, 20, 6, 195, 45, 2, 74, 20, 6,
+			195, 33, 80, 218, 20, 0, 0, 8, 133, 26, 14, 1, 197, 130, 20, 0, 8, 133, 12, 197, 188, 196, 153, 20, 0, 9, 134, 23, 9, 197,
+			130, 2, 25, 20, 9, 134, 20, 25, 197, 130, 2, 25, 20, 9, 134, 13, 25, 197, 130, 2, 25, 20, 10, 135, 26, 13, 196, 133, 4, 18,
+			26, 20, 8, 197, 92, 145, 84, 73, 160, 20, 8, 197, 77, 68, 129, 77, 160, 20, 10, 135, 13, 197, 155, 3, 9, 197, 130, 20, 0, 10,
+			135, 26, 12, 1, 197, 130, 2, 25, 20, 10, 135, 26, 4, 1, 197, 130, 2, 25, 20, 10, 135, 26, 2, 9, 197, 130, 2, 25, 20, 10,
+			135, 23, 26, 21, 197, 130, 2, 25, 20, 10, 135, 23, 4, 1, 197, 130, 2, 25, 20, 10, 135, 23, 2, 9, 197, 130, 2, 25, 20, 10,
+			135, 20, 18, 21, 197, 130, 2, 25, 20, 10, 135, 16, 18, 21, 197, 130, 2, 25, 20, 10, 135, 4, 196, 133, 197, 130, 2, 25, 20, 10,
+			135, 3, 26, 21, 197, 130, 2, 25, 20, 0, 11, 136, 26, 19, 26, 25, 197, 130, 2, 25, 20, 11, 136, 26, 13, 1, 18, 197, 130, 2,
+			25, 20, 11, 136, 23, 197, 188, 25, 197, 130, 2, 25, 20, 11, 136, 23, 26, 2, 9, 197, 130, 2, 25, 20, 11, 136, 23, 3, 26, 21,
+			197, 130, 2, 25, 20, 11, 136, 19, 20, 18, 21, 197, 130, 2, 25, 20, 11, 136, 19, 16, 18, 21, 197, 130, 2, 25, 20, 11, 136, 19,
+			11, 18, 25, 197, 130, 2, 25, 20, 11, 136, 18, 197, 188, 1, 197, 130, 2, 25, 20, 11, 136, 16, 12, 23, 1, 197, 130, 2, 25, 20,
+			11, 136, 13, 197, 188, 25, 197, 130, 2, 25, 20, 11, 136, 13, 9, 196, 133, 197, 130, 2, 25, 20, 11, 136, 13, 4, 12, 9, 197, 130,
+			2, 25, 20, 11, 136, 197, 130, 7, 1, 197, 130, 2, 25, 20, 11, 136, 11, 12, 196, 133, 197, 130, 2, 25, 20, 11, 136, 7, 9, 196,
+			133, 197, 130, 2, 25, 20, 11, 136, 4, 18, 7, 1, 197, 130, 2, 25, 20, 11, 136, 3, 26, 11, 1, 197, 130, 2, 25, 20, 0, 12,
+			137, 19, 26, 12, 9, 197, 155, 3, 9, 5, 20, 12, 137, 26, 197, 188, 196, 133, 197, 130, 2, 25, 20, 12, 137, 26, 13, 9, 196, 133,
+			197, 130, 2, 25, 20, 12, 137, 26, 7, 18, 25, 26, 197, 130, 2, 25, 20, 12, 137, 26, 7, 9, 196, 133, 197, 130, 2, 25, 20, 12,
+			137, 23, 197, 188, 196, 133, 197, 130, 2, 25, 20, 12, 137, 23, 26, 9, 196, 133, 197, 130, 2, 25, 20, 12, 137, 23, 26, 4, 196, 133,
+			197, 130, 2, 25, 20, 12, 137, 23, 16, 9, 196, 133, 197, 130, 2, 25, 20, 12, 137, 23, 7, 9, 196, 133, 197, 130, 2, 25, 20, 12,
+			137, 23, 3, 9, 196, 133, 197, 130, 2, 25, 20, 12, 137, 19, 16, 9, 196, 133, 197, 130, 2, 25, 20, 12, 137, 19, 11, 12, 196, 133,
+			197, 130, 2, 25, 20, 12, 137, 16, 5, 197, 130, 26, 197, 130, 2, 25, 20, 12, 137, 4, 197, 186, 7, 1, 197, 130, 2, 25, 20, 10,
+			67, 12, 149, 15, 117, 37, 47, 111, 0, 19, 67, 12, 20, 19, 49, 35, 48, 89, 55, 111, 49, 0, 81, 108, 111, 99, 107, 32, 0, 13,
+			138, 23, 19, 16, 9, 196, 133, 197, 130, 2, 25, 20, 13, 138, 197, 155, 3, 9, 196, 133, 197, 130, 2, 25, 20, 8, 197, 104, 34, 69,
+			73, 160, 20, 8, 197, 77, 2, 69, 77, 160, 20, 13, 138, 13, 9, 5, 12, 9, 197, 155, 3, 9, 5, 76, 0, 14, 139, 23, 3, 8,
+			18, 26, 3, 9, 197, 130, 2, 25, 20, 0, 0, 8, 133, 197, 130, 11, 15, 13, 20, 0, 15, 69, 21, 48, 193, 64, 80, 109, 89, 49,
+			6, 109, 57, 48, 0, 0, 11, 136, 26, 10, 5, 197, 186, 4, 197, 186, 20, 0, 12, 137, 7, 14, 9, 5, 197, 186, 4, 197, 186, 20,
+			0, 7, 196, 64, 197, 193, 40, 20, 9, 134, 13, 197, 155, 3, 9, 10, 20, 0, 0, 10, 135, 19, 3, 8, 197, 130, 1, 13, 20, 0,
+			0, 7, 196, 64, 197, 193, 52, 20, 9, 134, 13, 196, 133, 4, 18, 26, 20, 7, 132, 197, 130, 1, 16, 20, 9, 198, 4, 195, 9, 77,
+			65, 82, 65, 0, 6, 195, 73, 144, 218, 20, 0, 10, 135, 26, 23, 15, 197, 130, 2, 25, 20, 10, 135, 26, 14, 15, 197, 130, 2, 25,
+			20, 10, 135, 20, 11, 15, 197, 130, 2, 25, 20, 10, 135, 19, 19, 15, 197, 130, 2, 25, 20, 10, 135, 18, 23, 15, 197, 130, 2, 25,
+			20, 10, 135, 16, 1, 19, 197, 130, 2, 25, 20, 10, 135, 12, 1, 26, 197, 130, 2, 25, 20, 10, 135, 11, 9, 19, 197, 130, 2, 25,
+			20, 10, 135, 7, 18, 15, 197, 130, 2, 25, 20, 10, 135, 7, 14, 15, 197, 130, 2, 25, 20, 10, 135, 4, 2, 15, 197, 130, 2, 25,
+			20, 8, 133, 197, 130, 26, 1, 23, 20, 15, 6, 22, 15, 9, 12, 195, 160, 84, 40, 35, 55, 35, 0, 67, 0, 11, 136, 197, 188, 7,
+			15, 197, 130, 2, 25, 20, 11, 136, 26, 23, 9, 19, 197, 130, 2, 25, 20, 11, 136, 26, 23, 1, 18, 197, 130, 2, 25, 20, 11, 136,
+			26, 20, 1, 18, 197, 130, 2, 25, 20, 11, 136, 26, 14, 9, 11, 197, 130, 2, 25, 20, 11, 136, 26, 13, 25, 19, 197, 130, 2, 25,
+			20, 11, 136, 26, 7, 1, 19, 197, 130, 2, 25, 20, 11, 136, 26, 4, 1, 18, 197, 130, 2, 25, 20, 11, 136, 23, 20, 1, 18, 197,
+			130, 2, 25, 20, 11, 136, 23, 19, 9, 15, 197, 130, 2, 25, 20, 11, 136, 23, 16, 1, 18, 197, 130, 2, 25, 20, 11, 136, 23, 12,
+			1, 26, 197, 130, 2, 25, 20, 11, 136, 23, 4, 1, 18, 197, 130, 2, 25, 20, 11, 136, 19, 16, 1, 19, 197, 130, 2, 25, 20, 11,
+			136, 19, 11, 9, 19, 197, 130, 2, 25, 20, 11, 136, 19, 9, 5, 11, 197, 130, 2, 25, 20, 11, 136, 13, 195, 179, 11, 197, 130, 2,
+			25, 20, 11, 136, 13, 195, 179, 7, 197, 130, 2, 25, 20, 11, 136, 13, 1, 18, 26, 197, 130, 2, 25, 20, 11, 136, 197, 130, 11, 1,
+			197, 130, 2, 25, 20, 11, 136, 7, 18, 26, 15, 197, 130, 2, 25, 20, 11, 136, 7, 18, 25, 26, 197, 130, 2, 25, 20, 11, 136, 3,
+			9, 5, 11, 197, 130, 2, 25, 20, 11, 136, 2, 12, 1, 11, 197, 130, 2, 25, 20, 0, 12, 137, 26, 13, 195, 179, 11, 197, 130, 2,
+			25, 20, 12, 137, 26, 13, 1, 18, 26, 197, 130, 2, 25, 20, 12, 137, 26, 2, 12, 1, 11, 197, 130, 2, 25, 20, 12, 137, 23, 13,
+			1, 18, 26, 197, 130, 2, 25, 20, 12, 137, 23, 9, 195, 179, 26, 197, 130, 2, 25, 20, 12, 137, 23, 7, 18, 25, 26, 197, 130, 2,
+			25, 20, 12, 137, 23, 3, 9, 5, 11, 197, 130, 2, 25, 20, 12, 137, 20, 197, 130, 21, 11, 197, 130, 2, 25, 20, 12, 137, 19, 26,
+			3, 26, 15, 197, 130, 2, 25, 20, 12, 137, 4, 18, 197, 188, 15, 197, 130, 2, 25, 20, 9, 134, 10, 196, 133, 20, 18, 26, 20, 7,
+			196, 12, 133, 193, 48, 20, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 38, 109, 0, 81, 110, 105, 101, 32, 21, 68, 65, 38,
+			133, 16, 48, 91, 6, 109, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 84, 35,
+			89, 0, 81, 119, 97, 115, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 112, 65, 0, 81, 116, 121, 109, 32, 21, 68, 65,
+			38, 133, 16, 48, 91, 6, 109, 47, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 18, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47,
+			111, 0, 81, 116, 111, 32, 18, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 109, 0, 81, 116, 101, 32, 19, 68, 65, 38, 133, 16,
+			48, 91, 6, 109, 47, 47, 114, 0, 81, 116, 196, 133, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 37, 65, 0, 81, 110,
+			105, 109, 32, 21, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 20, 68, 65, 38, 133, 16,
+			48, 91, 6, 109, 72, 50, 35, 89, 0, 81, 110, 97, 115, 32, 7, 196, 65, 38, 133, 16, 76, 0, 13, 138, 20, 18, 26, 196, 133, 19,
+			197, 130, 2, 25, 20, 13, 138, 197, 155, 3, 9, 5, 11, 197, 130, 2, 25, 20, 8, 197, 104, 208, 82, 81, 112, 20, 6, 195, 92, 145,
+			74, 20, 7, 132, 14, 21, 196, 135, 20, 0, 14, 139, 197, 188, 195, 179, 197, 130, 11, 197, 130, 2, 25, 20, 14, 139, 19, 20, 18, 26,
+			196, 133, 19, 197, 130, 2, 25, 20, 8, 133, 26, 12, 1, 196, 135, 20, 8, 133, 26, 4, 1, 196, 135, 20, 8, 133, 23, 4, 1, 196,
+			135, 20, 11, 136, 19, 16, 9, 196, 153, 20, 18, 26, 20, 8, 133, 13, 12, 5, 196, 135, 20, 8, 133, 13, 196, 133, 196, 135, 20, 6,
+			195, 12, 128, 197, 20, 0, 9, 134, 19, 20, 18, 21, 196, 135, 20, 9, 134, 19, 16, 18, 21, 196, 135, 20, 9, 134, 18, 197, 188, 5,
+			196, 135, 20, 9, 134, 16, 9, 196, 133, 196, 135, 20, 10, 199, 4, 212, 212, 21, 33, 1, 52, 65, 0, 10, 135, 26, 197, 188, 196, 133,
+			196, 135, 20, 10, 135, 26, 13, 9, 196, 133, 196, 135, 20, 10, 135, 23, 26, 4, 196, 133, 196, 135, 20, 10, 135, 23, 16, 9, 196, 133,
+			196, 135, 20, 10, 135, 19, 16, 9, 196, 133, 196, 135, 20, 8, 133, 197, 130, 11, 1, 13, 20, 7, 196, 52, 145, 76, 36, 76, 9, 198,
+			4, 194, 83, 80, 18, 82, 65, 0, 11, 136, 23, 19, 16, 9, 196, 133, 196, 135, 20, 10, 135, 10, 5, 197, 186, 4, 197, 186, 20, 0,
+			6, 195, 92, 145, 77, 20, 12, 137, 23, 3, 8, 18, 26, 3, 9, 196, 135, 20, 8, 133, 16, 18, 1, 196, 135, 20, 10, 67, 12, 149,
+			25, 117, 37, 47, 112, 0, 0, 9, 134, 197, 188, 18, 5, 196, 135, 20, 9, 134, 26, 197, 188, 21, 196, 135, 20, 9, 134, 26, 7, 18,
+			1, 196, 135, 20, 12, 137, 26, 2, 18, 21, 197, 186, 4, 197, 186, 20, 9, 134, 23, 18, 26, 5, 196, 135, 20, 8, 133, 197, 130, 11,
+			1, 10, 20, 12, 137, 4, 197, 186, 7, 14, 9, 5, 19, 26, 20, 9, 134, 3, 26, 3, 9, 196, 135, 20, 10, 67, 48, 240, 68, 55,
+			111, 58, 72, 0, 0, 9, 134, 19, 197, 130, 25, 19, 26, 20, 11, 136, 13, 9, 15, 197, 188, 4, 197, 188, 20, 13, 68, 24, 246, 69,
+			72, 83, 40, 35, 57, 6, 109, 0, 10, 67, 12, 144, 79, 76, 57, 35, 58, 0, 0, 11, 136, 3, 8, 18, 26, 3, 9, 196, 135, 20,
+			0, 0, 6, 195, 92, 145, 64, 20, 8, 133, 16, 18, 1, 197, 130, 20, 0, 9, 134, 26, 197, 188, 21, 197, 130, 20, 9, 134, 26, 7,
+			18, 1, 197, 130, 20, 8, 133, 18, 197, 188, 196, 153, 20, 9, 134, 3, 26, 3, 9, 197, 130, 20, 6, 195, 12, 145, 67, 20, 0, 8,
+			133, 26, 7, 9, 197, 132, 20, 8, 197, 77, 67, 9, 77, 160, 20, 0, 11, 136, 3, 8, 18, 26, 3, 9, 197, 130, 20, 0, 11, 136,
+			19, 9, 15, 4, 197, 130, 2, 25, 20, 11, 136, 19, 5, 3, 8, 197, 130, 2, 25, 20, 11, 136, 16, 21, 3, 8, 197, 130, 2, 25,
+			20, 11, 136, 2, 195, 179, 4, 197, 130, 2, 25, 20, 8, 133, 26, 12, 1, 197, 130, 20, 8, 133, 26, 4, 1, 197, 130, 20, 8, 133,
+			23, 4, 1, 197, 130, 20, 8, 133, 3, 26, 21, 197, 130, 20, 7, 132, 3, 12, 196, 153, 20, 0, 12, 137, 23, 19, 9, 15, 4, 197,
+			130, 2, 25, 20, 12, 137, 11, 18, 26, 5, 16, 197, 130, 2, 25, 20, 12, 137, 3, 9, 5, 18, 16, 197, 130, 2, 25, 20, 12, 137,
+			3, 8, 18, 25, 16, 197, 130, 2, 25, 20, 7, 196, 104, 112, 82, 8, 20, 7, 196, 81, 38, 133, 64, 20, 9, 134, 19, 20, 18, 21,
+			197, 130, 20, 9, 134, 19, 16, 18, 21, 197, 130, 20, 9, 134, 13, 9, 196, 133, 197, 130, 20, 7, 196, 45, 38, 133, 64, 20, 0, 13,
+			138, 26, 23, 9, 195, 179, 4, 197, 130, 2, 25, 20, 13, 138, 19, 11, 18, 26, 5, 16, 197, 130, 2, 25, 20, 13, 138, 19, 3, 8,
+			18, 25, 16, 197, 130, 2, 25, 20, 10, 135, 26, 197, 188, 196, 133, 197, 130, 20, 10, 135, 26, 13, 9, 196, 133, 197, 130, 20, 10, 135,
+			23, 197, 188, 196, 133, 197, 130, 20, 10, 135, 23, 26, 4, 196, 133, 197, 130, 20, 10, 135, 23, 16, 9, 196, 133, 197, 130, 20, 8, 197,
+			77, 2, 69, 73, 160, 20, 10, 135, 19, 16, 9, 196, 133, 197, 130, 20, 8, 197, 76, 180, 149, 77, 160, 20, 8, 197, 52, 67, 9, 77,
+			160, 20, 8, 197, 45, 38, 153, 13, 160, 20, 9, 134, 4, 18, 197, 188, 196, 153, 20, 0, 14, 139, 197, 155, 3, 9, 5, 18, 16, 197,
+			130, 2, 25, 20, 14, 139, 16, 9, 5, 18, 26, 3, 8, 197, 130, 2, 25, 20, 11, 136, 23, 19, 16, 9, 196, 133, 197, 130, 20, 0,
+			15, 140, 26, 13, 9, 5, 18, 26, 3, 8, 197, 130, 2, 25, 20, 12, 137, 23, 3, 8, 18, 26, 3, 9, 197, 130, 20, 10, 135, 3,
+			8, 18, 26, 1, 197, 132, 20, 0, 11, 200, 93, 54, 131, 104, 226, 69, 77, 160, 20, 11, 136, 19, 3, 8, 18, 26, 1, 197, 132, 20,
+			0, 10, 135, 19, 9, 5, 18, 4, 197, 186, 20, 18, 8, 3, 21, 18, 1, 195, 167, 1, 15, 49, 37, 51, 35, 89, 35, 111, 0, 0,
+			11, 136, 20, 23, 9, 5, 18, 4, 197, 186, 20, 0, 0, 0, 12, 137, 26, 13, 9, 1, 197, 188, 4, 197, 188, 20, 8, 197, 80, 50,
+			14, 36, 80, 20, 8, 197, 76, 50, 14, 36, 80, 20, 8, 197, 12, 132, 154, 12, 144, 20, 0, 9, 198, 105, 114, 67, 33, 38, 128, 20,
+			9, 198, 93, 160, 137, 21, 38, 128, 20, 10, 67, 32, 243, 69, 101, 111, 58, 65, 0, 0, 6, 195, 16, 243, 64, 20, 0, 9, 198, 65,
+			53, 18, 105, 148, 218, 20, 0, 9, 134, 12, 1, 197, 130, 2, 25, 20, 9, 134, 4, 1, 197, 130, 2, 25, 20, 9, 134, 2, 9, 197,
+			130, 2, 25, 20, 0, 10, 135, 197, 188, 25, 197, 130, 2, 25, 20, 10, 135, 26, 26, 21, 197, 130, 2, 25, 20, 10, 135, 26, 23, 1,
+			197, 130, 2, 25, 20, 10, 135, 26, 13, 25, 197, 130, 2, 25, 20, 10, 135, 23, 12, 1, 197, 130, 2, 25, 20, 10, 135, 20, 12, 1,
+			197, 130, 2, 25, 20, 10, 135, 20, 11, 1, 197, 130, 2, 25, 20, 10, 135, 19, 20, 1, 197, 130, 2, 25, 20, 10, 135, 19, 19, 1,
+			197, 130, 2, 25, 20, 10, 135, 19, 16, 1, 197, 130, 2, 25, 20, 10, 135, 19, 14, 21, 197, 130, 2, 25, 20, 10, 135, 18, 23, 1,
+			197, 130, 2, 25, 20, 10, 135, 11, 14, 21, 197, 130, 2, 25, 20, 10, 135, 10, 196, 133, 197, 130, 2, 25, 20, 10, 135, 7, 14, 9,
+			197, 130, 2, 25, 20, 10, 135, 3, 14, 9, 197, 130, 2, 25, 20, 0, 11, 136, 197, 188, 7, 1, 197, 130, 2, 25, 20, 11, 136, 26,
+			7, 14, 9, 197, 130, 2, 25, 20, 11, 136, 23, 19, 20, 1, 197, 130, 2, 25, 20, 11, 136, 23, 19, 14, 21, 197, 130, 2, 25, 20,
+			11, 136, 20, 18, 23, 1, 197, 130, 2, 25, 20, 11, 136, 197, 155, 14, 9, 197, 130, 2, 25, 20, 11, 136, 19, 20, 12, 9, 197, 130,
+			2, 25, 20, 11, 136, 16, 3, 8, 1, 197, 130, 2, 25, 20, 11, 136, 13, 4, 12, 1, 197, 130, 2, 25, 20, 11, 136, 11, 23, 9,
+			20, 197, 130, 2, 25, 20, 11, 136, 11, 197, 130, 21, 197, 130, 2, 25, 20, 11, 136, 196, 135, 16, 1, 197, 130, 2, 25, 20, 11, 136,
+			196, 135, 13, 9, 197, 130, 2, 25, 20, 11, 136, 3, 8, 12, 1, 197, 130, 2, 25, 20, 6, 195, 92, 19, 64, 72, 0, 12, 137, 26,
+			19, 9, 15, 4, 197, 130, 2, 25, 20, 12, 137, 26, 4, 10, 196, 133, 197, 130, 2, 25, 20, 12, 137, 23, 11, 197, 130, 21, 197, 130,
+			2, 25, 20, 12, 137, 20, 11, 14, 196, 133, 197, 130, 2, 25, 20, 12, 137, 20, 196, 153, 3, 8, 197, 130, 2, 25, 20, 12, 137, 197,
+			155, 12, 5, 16, 197, 130, 2, 25, 20, 12, 137, 19, 26, 3, 26, 21, 197, 130, 2, 25, 20, 12, 137, 19, 11, 18, 26, 25, 197, 130,
+			2, 25, 20, 12, 137, 19, 11, 197, 130, 21, 197, 130, 2, 25, 20, 12, 137, 19, 3, 8, 12, 1, 197, 130, 2, 25, 20, 12, 137, 13,
+			11, 14, 196, 133, 197, 130, 2, 25, 20, 12, 137, 4, 18, 197, 188, 1, 197, 130, 2, 25, 20, 12, 137, 2, 18, 14, 196, 133, 197, 130,
+			2, 25, 20, 0, 13, 138, 197, 188, 7, 14, 196, 133, 197, 130, 2, 25, 20, 13, 138, 23, 23, 9, 195, 179, 4, 197, 130, 2, 25, 20,
+			13, 138, 20, 3, 8, 14, 196, 133, 197, 130, 2, 25, 20, 13, 138, 18, 197, 188, 14, 196, 133, 197, 130, 2, 25, 20, 13, 138, 16, 3,
+			8, 14, 196, 133, 197, 130, 2, 25, 20, 13, 138, 4, 18, 7, 14, 196, 133, 197, 130, 2, 25, 20, 13, 138, 3, 26, 11, 14, 196, 133,
+			197, 130, 2, 25, 20, 9, 134, 197, 130, 197, 188, 196, 153, 20, 7, 132, 12, 5, 196, 135, 20, 0, 14, 139, 4, 197, 188, 4, 197, 188,
+			25, 197, 130, 2, 25, 20, 14, 139, 4, 197, 186, 7, 14, 196, 133, 197, 130, 2, 25, 20, 14, 139, 3, 8, 197, 130, 195, 179, 4, 197,
+			130, 2, 25, 20, 8, 133, 26, 23, 9, 196, 135, 20, 8, 133, 26, 13, 25, 196, 135, 20, 8, 133, 23, 12, 1, 196, 135, 20, 8, 133,
+			19, 20, 1, 196, 135, 20, 8, 133, 11, 14, 21, 196, 135, 20, 8, 133, 11, 12, 5, 196, 135, 20, 8, 133, 10, 196, 133, 196, 135, 20,
+			0, 9, 134, 26, 18, 26, 21, 196, 135, 20, 9, 134, 23, 19, 14, 21, 196, 135, 20, 9, 134, 23, 18, 26, 21, 196, 135, 20, 9, 134,
+			23, 16, 12, 5, 196, 135, 20, 9, 134, 19, 16, 12, 5, 196, 135, 20, 9, 134, 19, 11, 12, 5, 196, 135, 20, 9, 134, 16, 14, 196,
+			133, 196, 135, 20, 9, 134, 13, 4, 12, 5, 196, 135, 20, 9, 134, 11, 197, 130, 21, 196, 135, 20, 13, 67, 45, 4, 128, 49, 35, 48,
+			51, 35, 55, 0, 24, 0, 10, 135, 26, 4, 10, 196, 133, 196, 135, 20, 10, 135, 23, 11, 197, 130, 21, 196, 135, 20, 8, 133, 19, 19,
+			9, 196, 133, 20, 10, 135, 19, 11, 197, 130, 21, 196, 135, 20, 10, 135, 4, 18, 197, 188, 5, 196, 135, 20, 9, 198, 4, 192, 83, 80,
+			18, 82, 65, 0, 11, 136, 19, 20, 197, 130, 1, 13, 197, 155, 20, 11, 136, 19, 3, 8, 14, 196, 133, 196, 135, 20, 11, 136, 19, 3,
+			8, 197, 130, 1, 197, 155, 20, 10, 135, 16, 195, 179, 10, 4, 197, 186, 20, 11, 136, 16, 3, 8, 14, 196, 133, 196, 135, 20, 7, 132,
+			4, 21, 196, 135, 20, 11, 136, 4, 18, 7, 14, 196, 133, 196, 135, 20, 11, 136, 3, 26, 11, 14, 196, 133, 196, 135, 20, 0, 11, 136,
+			18, 197, 188, 14, 9, 5, 19, 26, 20, 11, 136, 16, 18, 26, 25, 10, 4, 197, 186, 20, 0, 10, 135, 197, 155, 3, 9, 5, 18, 16,
+			20, 9, 134, 16, 197, 130, 1, 196, 135, 20, 9, 134, 4, 18, 23, 9, 196, 135, 20, 0, 10, 135, 23, 16, 197, 130, 1, 196, 135, 20,
+			10, 135, 19, 26, 3, 26, 1, 196, 135, 20, 10, 135, 19, 16, 197, 130, 1, 196, 135, 20, 9, 134, 197, 130, 11, 1, 19, 26, 20, 11,
+			136, 7, 23, 9, 197, 188, 4, 197, 188, 20, 19, 67, 12, 131, 215, 76, 35, 58, 76, 35, 40, 0, 66, 81, 99, 104, 111, 119, 32, 0,
+			8, 197, 77, 68, 154, 20, 192, 20, 9, 134, 4, 18, 23, 9, 196, 133, 20, 0, 8, 133, 26, 23, 196, 133, 3, 20, 7, 132, 4, 21,
+			197, 130, 20, 0, 0, 9, 134, 4, 18, 23, 9, 197, 130, 20, 0, 8, 133, 26, 23, 9, 197, 132, 20, 10, 135, 19, 26, 3, 26, 1,
+			197, 130, 20, 8, 133, 19, 20, 1, 197, 132, 20, 9, 134, 18, 197, 188, 14, 9, 5, 20, 0, 9, 134, 197, 188, 197, 130, 15, 16, 20,
+			9, 134, 19, 6, 18, 21, 197, 132, 20, 14, 70, 12, 245, 20, 4, 113, 64, 49, 111, 47, 112, 75, 0, 15, 70, 12, 243, 12, 4, 113,
+			64, 49, 111, 55, 6, 35, 90, 0, 10, 135, 13, 9, 196, 153, 4, 26, 25, 76, 0, 8, 133, 26, 13, 25, 197, 130, 20, 8, 133, 23,
+			12, 1, 197, 130, 20, 8, 133, 20, 12, 1, 197, 130, 20, 12, 137, 197, 155, 13, 9, 1, 18, 4, 197, 130, 20, 8, 133, 19, 20, 1,
+			197, 130, 20, 8, 133, 19, 16, 1, 197, 130, 20, 8, 133, 11, 14, 21, 197, 130, 20, 8, 133, 10, 196, 133, 197, 130, 20, 18, 67, 12,
+			131, 208, 76, 111, 48, 89, 40, 37, 0, 81, 115, 117, 101, 121, 32, 0, 9, 134, 23, 19, 14, 21, 197, 130, 20, 7, 196, 93, 38, 133,
+			64, 20, 9, 134, 11, 197, 130, 21, 197, 130, 20, 0, 8, 133, 26, 18, 1, 197, 132, 20, 8, 197, 104, 210, 76, 13, 160, 20, 10, 135,
+			26, 4, 10, 196, 133, 197, 130, 20, 10, 135, 23, 11, 197, 130, 21, 197, 130, 20, 10, 135, 19, 11, 197, 130, 21, 197, 130, 20, 8, 197,
+			52, 150, 132, 73, 160, 20, 8, 197, 29, 86, 132, 73, 160, 20, 0, 9, 134, 19, 16, 12, 21, 197, 132, 20, 11, 136, 16, 3, 8, 14,
+			196, 133, 197, 130, 20, 11, 136, 4, 18, 7, 14, 196, 133, 197, 130, 20, 11, 136, 3, 26, 11, 14, 196, 133, 197, 130, 20, 14, 70, 12,
+			243, 12, 20, 113, 64, 49, 111, 55, 109, 75, 0, 0, 8, 197, 105, 54, 129, 73, 0, 20, 0, 7, 196, 104, 224, 83, 104, 20, 7, 196,
+			92, 64, 83, 104, 20, 12, 68, 12, 245, 80, 20, 49, 40, 48, 6, 109, 0, 7, 132, 20, 5, 197, 188, 8, 0, 9, 198, 93, 54, 131,
+			104, 84, 0, 20, 11, 136, 23, 19, 11, 18, 26, 5, 197, 155, 20, 6, 195, 76, 145, 74, 20, 10, 135, 4, 18, 197, 188, 25, 19, 26,
+			20, 0, 11, 136, 2, 18, 21, 197, 186, 4, 197, 186, 20, 0, 0, 8, 133, 23, 197, 130, 15, 13, 20, 7, 196, 80, 176, 83, 104, 20,
+			0, 8, 133, 16, 18, 1, 197, 188, 20, 0, 0, 7, 132, 197, 130, 11, 1, 20, 0, 0, 6, 18, 66, 107, 97, 99, 104, 0, 107, 196,
+			153, 0, 107, 196, 133, 0, 107, 111, 109, 0, 107, 97, 0, 107, 105, 0, 99, 101, 0, 107, 111, 0, 7, 6, 100, 103, 0, 4, 1, 101,
+			122, 114, 112, 3, 72, 81, 0, 8, 97, 110, 0, 8, 97, 110, 101, 105, 110, 0, 8, 97, 110, 111, 112, 0, 8, 97, 110, 111, 112, 101,
+			105, 110, 0, 8, 111, 0, 8, 111, 101, 105, 110, 0, 8, 111, 111, 112, 0, 8, 111, 111, 112, 101, 105, 110, 0, 8, 111, 112, 0, 8,
+			111, 112, 101, 105, 110, 0, 8, 111, 112, 111, 112, 0, 8, 111, 112, 111, 112, 101, 105, 110, 0, 4, 3, 75, 0, 101, 2, 32, 0, 7,
+			6, 111, 101, 0, 4, 1, 106, 2, 114, 3, 109, 0, 1, 106, 108, 0, 1, 115, 2, 114, 0, 1, 106, 99, 3, 111, 109, 0, 7, 6,
+			112, 104, 0, 3, 83, 0, 7, 6, 115, 104, 0, 4, 8, 105, 102, 2, 97, 114, 109, 111, 110, 3, 89, 101, 0, 8, 107, 101, 0, 8,
+			121, 100, 0, 3, 91, 0, 105, 114, 101, 3, 91, 35, 57, 109, 51, 0, 7, 6, 116, 104, 0, 4, 8, 3, 47, 0, 8, 101, 2, 97,
+			110, 97, 107, 0, 101, 8, 2, 32, 3, 72, 109, 0, 101, 119, 3, 83, 57, 40, 0, 117, 110, 100, 101, 114, 98, 105, 8, 2, 114, 100,
+			3, 83, 109, 50, 72, 109, 51, 71, 109, 0, 97, 110, 107, 8, 3, 83, 109, 68, 49, 0, 3, 89, 0, 2, 105, 101, 32, 3, 95, 0,
+			7, 6, 116, 122, 0, 2, 197, 130, 3, 47, 88, 0, 3, 117, 0, 7, 6, 195, 164, 0, 3, 109, 0, 7, 6, 195, 165, 0, 3, 111,
+			0, 7, 6, 195, 166, 0, 3, 109, 0, 7, 6, 195, 173, 0, 3, 37, 0, 2, 17, 65, 3, 37, 57, 0, 7, 6, 195, 177, 0, 3,
+			67, 0, 2, 17, 65, 3, 67, 38, 0, 7, 6, 195, 179, 0, 4, 1, 21, 2, 17, 67, 197, 130, 98, 121, 32, 3, 8, 40, 0, 1,
+			21, 2, 17, 67, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 197, 155, 32, 0, 3, 40, 0, 7, 6, 195,
+			182, 0, 3, 109, 0, 7, 6, 195, 184, 0, 3, 109, 0, 7, 6, 195, 188, 0, 3, 37, 0, 7, 6, 196, 133, 0, 4, 2, 108, 3,
+			111, 0, 2, 197, 130, 0, 4, 2, 99, 3, 111, 50, 0, 2, 100, 0, 2, 116, 0, 4, 2, 98, 3, 111, 65, 0, 2, 112, 0, 4,
+			2, 99, 105, 3, 111, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197, 186, 0, 2, 196, 135, 0, 4, 2, 103, 3, 111, 68, 0, 2, 107,
+			0, 3, 114, 0, 4, 2, 32, 3, 114, 10, 0, 2, 32, 17, 65, 0, 7, 6, 196, 135, 0, 3, 119, 0, 4, 2, 98, 3, 120, 0,
+			2, 103, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 153, 0, 4, 1, 105, 2, 116, 110, 97, 3, 109, 0, 2, 32, 0, 2,
+			108, 0, 2, 197, 130, 0, 2, 32, 17, 65, 3, 109, 10, 0, 4, 2, 99, 3, 109, 50, 0, 2, 100, 0, 2, 116, 0, 4, 2, 98,
+			3, 109, 65, 0, 2, 112, 0, 4, 2, 99, 105, 3, 109, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197, 186, 0, 2, 115, 105, 0, 2,
+			196, 135, 0, 2, 197, 155, 0, 196, 135, 2, 100, 122, 105, 101, 0, 4, 2, 103, 3, 109, 68, 0, 2, 107, 0, 3, 113, 0, 7, 6,
+			197, 130, 0, 2, 32, 3, 0, 3, 58, 0, 4, 1, 17, 65, 2, 32, 3, 58, 10, 0, 1, 115, 121, 109, 2, 32, 0, 98, 121, 109,
+			1, 21, 2, 32, 14, 128, 128, 129, 3, 65, 0, 98, 121, 197, 155, 1, 21, 2, 32, 14, 128, 128, 129, 3, 97, 0, 7, 6, 197, 132,
+			0, 3, 67, 0, 7, 6, 197, 153, 0, 3, 90, 0, 7, 6, 197, 155, 0, 196, 135, 2, 100, 122, 105, 101, 3, 96, 0, 3, 97, 0,
+			7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 186, 0, 3, 96, 0, 2, 32, 3, 97, 0, 7, 6, 197, 188, 0, 3, 90, 0, 2,
+			32, 3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 108, 108, 111, 119, 101, 101, 1, 104, 2, 110, 32, 3, 6, 35,
+			55, 111, 58, 112, 0, 4, 1, 21, 2, 197, 130, 98, 121, 32, 3, 8, 35, 0, 1, 21, 2, 197, 130, 98, 121, 109, 32, 0, 1, 21,
+			2, 197, 130, 98, 121, 197, 155, 32, 0, 1, 130, 197, 21, 2, 98, 121, 32, 0, 1, 130, 197, 21, 2, 98, 121, 109, 32, 0, 1, 130,
+			197, 21, 2, 98, 121, 197, 155, 32, 0, 3, 35, 0, 2, 32, 3, 35, 10, 0, 4, 105, 8, 107, 2, 114, 3, 35, 37, 0, 105, 8,
+			116, 108, 97, 2, 114, 0, 114, 99, 121, 8, 2, 21, 14, 129, 132, 132, 3, 35, 51, 117, 112, 0, 108, 108, 111, 119, 101, 101, 1, 104,
+			2, 110, 3, 35, 55, 111, 58, 112, 0, 101, 8, 2, 114, 17, 65, 3, 35, 109, 0, 4, 101, 2, 32, 3, 109, 0, 101, 8, 0, 105,
+			1, 17, 67, 2, 114, 0, 99, 107, 117, 2, 112, 3, 109, 49, 35, 0, 114, 99, 104, 105, 101, 8, 3, 109, 51, 76, 37, 0, 114, 99,
+			104, 105, 101, 8, 2, 17, 67, 3, 109, 51, 76, 38, 109, 0, 108, 8, 104, 2, 108, 3, 111, 0, 7, 6, 98, 0, 4, 2, 32, 3,
+			48, 0, 197, 130, 1, 97, 106, 2, 107, 17, 65, 0, 3, 71, 0, 2, 105, 3, 71, 38, 0, 105, 2, 17, 65, 3, 71, 38, 57, 0,
+			4, 101, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 3, 71, 109, 34, 81, 0, 195, 182, 114, 103, 1, 21, 21, 2, 32, 14, 129,
+			128, 132, 0, 195, 184, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 0, 111, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 3,
+			71, 111, 34, 81, 0, 7, 6, 99, 0, 104, 97, 2, 109, 112, 105, 3, 47, 90, 109, 0, 4, 1, 17, 65, 118, 3, 49, 0, 1, 101,
+			115, 111, 99, 2, 97, 110, 115, 0, 1, 105, 100, 2, 116, 17, 65, 0, 2, 97, 99, 105, 101, 32, 0, 2, 97, 108, 118, 0, 2, 97,
+			116, 32, 0, 2, 97, 116, 97, 32, 0, 2, 97, 116, 97, 109, 105, 32, 0, 2, 97, 116, 101, 109, 32, 0, 2, 97, 116, 111, 32, 0,
+			2, 97, 116, 111, 109, 32, 0, 2, 108, 105, 112, 0, 2, 111, 115, 101, 99, 97, 110, 115, 0, 2, 111, 115, 105, 110, 0, 2, 111, 116,
+			97, 110, 103, 0, 2, 115, 0, 8, 2, 97, 98, 101, 114, 110, 101, 116, 0, 8, 2, 97, 108, 101, 110, 100, 0, 8, 2, 97, 110, 0,
+			8, 2, 97, 112, 112, 0, 8, 2, 97, 112, 115, 32, 0, 8, 2, 97, 112, 115, 108, 111, 0, 8, 2, 97, 114, 97, 118, 0, 8, 2,
+			97, 114, 108, 0, 8, 2, 97, 114, 112, 0, 8, 2, 97, 114, 116, 0, 8, 2, 97, 114, 118, 0, 8, 2, 108, 17, 65, 0, 8, 2,
+			111, 109, 0, 8, 2, 111, 110, 17, 67, 0, 8, 2, 111, 114, 17, 67, 0, 8, 2, 111, 119, 98, 111, 0, 8, 2, 114, 0, 8, 2,
+			117, 109, 117, 108, 0, 8, 101, 100, 2, 111, 114, 0, 8, 110, 105, 108, 2, 111, 108, 110, 0, 8, 114, 97, 2, 97, 100, 105, 97, 32,
+			0, 8, 114, 97, 2, 97, 100, 105, 105, 32, 0, 8, 114, 97, 2, 97, 100, 105, 111, 32, 0, 8, 114, 97, 2, 97, 100, 105, 196, 133,
+			32, 0, 8, 114, 97, 2, 97, 100, 105, 196, 153, 32, 0, 8, 115, 105, 100, 2, 111, 0, 99, 2, 97, 99, 105, 101, 32, 0, 99, 2,
+			97, 116, 17, 65, 0, 99, 2, 97, 116, 32, 0, 99, 2, 97, 116, 97, 32, 0, 99, 2, 97, 116, 97, 109, 105, 32, 0, 99, 2, 97,
+			116, 101, 109, 32, 0, 99, 2, 97, 116, 111, 32, 0, 99, 2, 97, 116, 111, 109, 32, 0, 99, 8, 111, 109, 2, 17, 65, 0, 104, 8,
+			2, 114, 105, 115, 116, 111, 0, 107, 1, 17, 65, 118, 0, 107, 1, 111, 108, 2, 32, 0, 107, 1, 111, 108, 2, 97, 32, 0, 107, 1,
+			111, 108, 2, 105, 101, 109, 32, 0, 107, 1, 111, 108, 2, 117, 32, 0, 107, 8, 101, 100, 0, 107, 8, 111, 114, 2, 17, 65, 0, 4,
+			8, 2, 97, 109, 101, 109, 98, 101, 114, 116, 3, 49, 35, 0, 97, 108, 2, 108, 17, 65, 0, 97, 108, 121, 2, 112, 115, 3, 49, 35,
+			55, 37, 0, 97, 115, 99, 3, 49, 35, 89, 49, 0, 117, 114, 105, 101, 8, 3, 49, 37, 51, 37, 0, 114, 111, 105, 115, 115, 8, 3,
+			49, 51, 34, 40, 35, 89, 0, 114, 97, 99, 107, 3, 49, 51, 35, 49, 0, 114, 101, 101, 110, 114, 101, 97, 8, 115, 2, 100, 3, 49,
+			51, 37, 50, 51, 37, 0, 114, 101, 115, 99, 2, 101, 110, 100, 3, 49, 51, 109, 91, 76, 0, 108, 111, 119, 8, 2, 110, 3, 49, 55,
+			35, 58, 0, 108, 101, 97, 8, 2, 17, 67, 3, 49, 55, 37, 0, 108, 111, 105, 115, 8, 2, 111, 3, 49, 55, 40, 35, 88, 0, 108,
+			111, 99, 104, 8, 2, 97, 114, 100, 3, 49, 55, 111, 91, 0, 4, 97, 8, 2, 109, 3, 49, 109, 0, 117, 8, 2, 114, 108, 105, 0,
+			97, 108, 2, 108, 3, 49, 111, 0, 111, 112, 121, 119, 114, 105, 8, 2, 116, 3, 49, 111, 48, 112, 51, 35, 57, 0, 111, 99, 107, 8,
+			3, 49, 111, 49, 0, 111, 110, 99, 8, 2, 101, 114, 116, 3, 49, 111, 50, 76, 0, 111, 97, 99, 104, 8, 3, 49, 111, 58, 76, 0,
+			4, 99, 2, 105, 32, 3, 76, 0, 99, 2, 105, 97, 32, 0, 99, 2, 105, 99, 104, 32, 0, 99, 2, 105, 101, 103, 111, 32, 0, 99,
+			2, 105, 101, 109, 32, 0, 99, 2, 105, 101, 109, 117, 32, 0, 99, 2, 105, 105, 101, 32, 0, 99, 2, 105, 109, 32, 0, 99, 2, 105,
+			109, 105, 32, 0, 99, 2, 105, 110, 97, 32, 0, 99, 2, 105, 110, 101, 109, 32, 0, 99, 2, 105, 110, 105, 101, 32, 0, 99, 2, 105,
+			110, 111, 32, 0, 99, 2, 105, 111, 32, 0, 104, 1, 17, 65, 118, 0, 104, 8, 2, 105, 112, 0, 122, 0, 104, 97, 110, 2, 110, 101,
+			108, 3, 76, 35, 0, 104, 97, 114, 108, 101, 8, 2, 115, 3, 76, 35, 51, 55, 89, 0, 104, 111, 119, 8, 2, 100, 101, 114, 3, 76,
+			35, 58, 0, 104, 105, 101, 8, 2, 102, 3, 76, 37, 0, 104, 105, 112, 112, 101, 110, 100, 97, 108, 8, 2, 17, 65, 3, 76, 37, 48,
+			109, 50, 72, 109, 57, 55, 0, 105, 99, 8, 2, 101, 114, 111, 110, 3, 76, 37, 76, 0, 104, 97, 108, 108, 101, 110, 103, 8, 2, 101,
+			114, 3, 76, 109, 55, 109, 50, 75, 0, 8, 2, 105, 110, 101, 114, 3, 89, 0, 4, 105, 1, 114, 97, 2, 97, 32, 3, 89, 37, 57,
+			0, 105, 1, 114, 97, 2, 105, 32, 0, 105, 1, 114, 97, 2, 111, 32, 0, 105, 1, 114, 97, 2, 196, 133, 32, 0, 105, 1, 114, 97,
+			2, 196, 153, 32, 0, 4, 105, 1, 17, 65, 2, 97, 110, 97, 32, 3, 89, 57, 0, 105, 1, 17, 65, 2, 97, 110, 101, 109, 32, 0,
+			105, 1, 17, 65, 2, 97, 110, 105, 101, 32, 0, 105, 1, 17, 65, 2, 97, 110, 111, 32, 0, 105, 1, 17, 65, 2, 97, 110, 111, 119,
+			105, 32, 0, 105, 1, 105, 108, 2, 97, 32, 0, 105, 1, 105, 108, 2, 105, 32, 0, 105, 1, 105, 108, 2, 111, 32, 0, 105, 1, 105,
+			108, 2, 196, 133, 32, 0, 105, 1, 105, 108, 2, 196, 153, 32, 0, 4, 104, 2, 101, 114, 114, 3, 91, 0, 104, 2, 101, 118, 0, 104,
+			105, 99, 8, 2, 97, 103, 17, 65, 3, 91, 37, 49, 0, 104, 111, 112, 105, 8, 2, 110, 3, 91, 111, 48, 109, 0, 104, 2, 105, 3,
+			99, 0, 104, 3, 107, 0, 104, 105, 1, 121, 115, 112, 2, 97, 3, 107, 37, 0, 104, 105, 2, 17, 65, 3, 107, 57, 0, 4, 3, 117,
+			0, 1, 105, 118, 2, 101, 0, 8, 2, 105, 114, 0, 8, 2, 111, 109, 98, 101, 114, 0, 8, 2, 111, 109, 98, 114, 17, 65, 0, 8,
+			2, 111, 109, 105, 101, 115, 0, 8, 2, 111, 109, 105, 110, 117, 0, 4, 2, 105, 3, 119, 0, 105, 2, 17, 65, 0, 7, 6, 100, 0,
+			2, 32, 3, 47, 0, 3, 72, 0, 105, 2, 17, 65, 3, 72, 57, 0, 4, 197, 188, 8, 97, 110, 3, 72, 90, 0, 197, 188, 8, 97,
+			110, 111, 112, 0, 197, 188, 8, 111, 0, 197, 188, 8, 111, 112, 0, 4, 122, 105, 8, 97, 110, 2, 101, 109, 3, 72, 96, 0, 122, 105,
+			8, 111, 112, 2, 101, 109, 0, 197, 188, 3, 75, 0, 197, 188, 2, 32, 3, 76, 0, 2, 105, 3, 116, 0, 4, 105, 101, 115, 2, 101,
+			108, 3, 116, 37, 88, 0, 105, 101, 115, 2, 108, 17, 65, 0, 122, 2, 32, 3, 117, 0, 122, 3, 118, 0, 197, 186, 2, 32, 3, 119,
+			0, 4, 122, 2, 105, 3, 120, 0, 122, 105, 2, 17, 65, 0, 197, 186, 0, 7, 6, 101, 0, 4, 1, 21, 2, 17, 67, 197, 130, 98,
+			121, 32, 3, 8, 109, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 197, 155, 32,
+			0, 4, 105, 8, 2, 17, 67, 3, 35, 57, 0, 105, 8, 108, 107, 2, 110, 0, 4, 97, 1, 100, 2, 108, 101, 114, 3, 37, 0, 97,
+			1, 112, 115, 2, 107, 0, 97, 1, 116, 0, 97, 8, 17, 67, 2, 32, 0, 97, 8, 104, 2, 108, 101, 0, 97, 8, 108, 2, 100, 0,
+			101, 2, 110, 0, 101, 8, 17, 67, 2, 32, 0, 97, 108, 105, 116, 121, 1, 114, 2, 32, 3, 37, 6, 109, 55, 37, 47, 112, 0, 109,
+			97, 105, 108, 8, 3, 37, 65, 109, 57, 55, 0, 97, 115, 1, 108, 2, 105, 110, 3, 37, 88, 0, 4, 3, 109, 0, 97, 1, 114, 2,
+			103, 97, 110, 0, 97, 8, 104, 2, 100, 0, 2, 32, 17, 65, 3, 109, 10, 0, 97, 1, 116, 2, 116, 114, 3, 109, 35, 0, 97, 118,
+			121, 1, 104, 2, 25, 3, 109, 84, 37, 0, 1, 105, 2, 32, 3, 110, 0, 117, 2, 116, 115, 99, 104, 3, 111, 57, 0, 7, 6, 102,
+			0, 3, 83, 0, 105, 2, 17, 65, 3, 83, 38, 57, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 101, 110, 116, 108, 101, 109, 97, 110,
+			8, 3, 75, 109, 50, 47, 109, 55, 65, 109, 50, 0, 4, 101, 111, 114, 103, 105, 8, 2, 97, 32, 3, 75, 111, 51, 75, 57, 0, 101,
+			111, 114, 103, 105, 8, 2, 105, 32, 0, 101, 111, 114, 103, 105, 8, 2, 111, 32, 0, 101, 111, 114, 103, 105, 8, 2, 196, 133, 32, 0,
+			101, 111, 114, 103, 105, 8, 2, 196, 153, 32, 0, 4, 3, 81, 0, 104, 0, 2, 105, 3, 81, 38, 0, 105, 1, 105, 104, 2, 101, 3,
+			81, 57, 0, 197, 130, 2, 32, 3, 81, 58, 0, 97, 116, 101, 2, 115, 3, 81, 109, 57, 47, 0, 7, 6, 104, 0, 2, 105, 3, 99,
+			0, 3, 101, 0, 105, 2, 17, 65, 3, 101, 57, 0, 7, 6, 105, 0, 114, 101, 8, 102, 2, 102, 111, 120, 32, 3, 6, 35, 57, 109,
+			51, 0, 4, 1, 21, 2, 98, 121, 197, 155, 99, 105, 101, 32, 3, 8, 37, 0, 1, 21, 2, 98, 121, 197, 155, 109, 121, 32, 0, 1,
+			97, 100, 117, 21, 2, 18, 66, 32, 0, 1, 97, 104, 99, 21, 2, 18, 66, 32, 0, 1, 97, 122, 111, 21, 2, 18, 66, 32, 0, 1,
+			98, 97, 108, 21, 2, 18, 66, 32, 0, 1, 102, 97, 114, 21, 2, 18, 66, 32, 0, 1, 102, 105, 108, 21, 2, 18, 66, 32, 0, 1,
+			102, 111, 114, 21, 2, 18, 66, 32, 0, 1, 102, 121, 99, 21, 2, 18, 66, 32, 0, 1, 103, 97, 114, 21, 2, 18, 66, 32, 0, 1,
+			103, 111, 103, 21, 2, 18, 66, 32, 0, 1, 103, 111, 108, 2, 18, 66, 32, 0, 1, 103, 114, 117, 21, 2, 18, 66, 32, 0, 1, 104,
+			99, 121, 21, 2, 18, 66, 32, 0, 1, 108, 21, 2, 98, 121, 32, 0, 1, 108, 21, 2, 197, 155, 99, 105, 101, 32, 0, 1, 108, 21,
+			2, 197, 155, 109, 121, 32, 0, 1, 108, 97, 116, 21, 2, 18, 66, 32, 0, 1, 108, 98, 117, 21, 2, 18, 66, 32, 0, 1, 108, 107,
+			121, 21, 2, 18, 66, 32, 0, 1, 108, 111, 98, 21, 2, 18, 66, 32, 0, 1, 108, 111, 104, 21, 2, 18, 66, 32, 0, 1, 108, 112,
+			101, 21, 2, 18, 66, 32, 0, 1, 108, 117, 97, 21, 2, 18, 66, 32, 0, 1, 109, 97, 110, 21, 2, 18, 66, 32, 0, 1, 109, 97,
+			114, 21, 2, 18, 66, 32, 0, 1, 109, 101, 108, 21, 2, 18, 66, 32, 0, 1, 109, 101, 110, 21, 2, 18, 66, 32, 0, 1, 109, 101,
+			115, 21, 2, 18, 66, 32, 0, 1, 109, 105, 109, 2, 18, 66, 32, 0, 1, 109, 105, 110, 21, 2, 18, 66, 32, 0, 1, 109, 108, 97,
+			21, 2, 18, 66, 32, 0, 1, 109, 111, 107, 21, 2, 18, 66, 32, 0, 1, 109, 111, 110, 21, 2, 18, 66, 32, 0, 1, 109, 111, 114,
+			21, 2, 18, 66, 32, 0, 1, 109, 114, 101, 21, 2, 18, 66, 32, 0, 1, 109, 114, 111, 21, 2, 18, 66, 32, 0, 1, 109, 115, 106,
+			21, 2, 18, 66, 32, 0, 1, 109, 116, 121, 21, 2, 18, 66, 32, 0, 1, 110, 21, 2, 98, 121, 32, 0, 1, 110, 21, 2, 197, 155,
+			99, 105, 101, 32, 0, 1, 110, 97, 103, 21, 2, 18, 66, 32, 0, 1, 110, 97, 104, 21, 2, 18, 66, 32, 0, 1, 110, 97, 116, 21,
+			2, 18, 66, 32, 0, 1, 110, 97, 117, 21, 2, 18, 66, 32, 0, 1, 110, 101, 103, 21, 2, 18, 66, 32, 0, 1, 110, 104, 99, 21,
+			2, 18, 66, 32, 0, 1, 110, 105, 108, 21, 2, 18, 66, 32, 0, 1, 110, 111, 101, 21, 2, 18, 66, 32, 0, 1, 110, 111, 102, 21,
+			2, 18, 66, 32, 0, 1, 110, 111, 105, 21, 2, 18, 66, 32, 0, 1, 110, 111, 109, 21, 2, 18, 66, 32, 0, 1, 110, 111, 110, 21,
+			2, 18, 66, 32, 0, 1, 110, 111, 112, 21, 2, 18, 66, 32, 0, 1, 110, 111, 114, 21, 2, 18, 66, 32, 0, 1, 110, 111, 116, 2,
+			99, 101, 32, 0, 1, 110, 111, 116, 2, 107, 111, 32, 0, 1, 110, 111, 116, 2, 107, 196, 133, 32, 0, 1, 110, 111, 116, 2, 107, 196,
+			153, 32, 0, 1, 110, 111, 116, 97, 116, 2, 107, 97, 32, 0, 1, 110, 111, 116, 97, 116, 2, 107, 97, 99, 104, 32, 0, 1, 110, 111,
+			116, 97, 116, 2, 107, 105, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 97, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 97,
+			99, 104, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 105, 32, 0, 1, 110, 117, 109, 21, 2, 18, 66, 32, 0, 1, 111, 114, 101,
+			21, 2, 18, 66, 32, 0, 1, 112, 111, 114, 21, 2, 18, 66, 32, 0, 1, 112, 112, 105, 21, 2, 18, 66, 32, 0, 1, 119, 97, 108,
+			21, 2, 18, 66, 32, 0, 2, 197, 130, 98, 121, 32, 0, 2, 197, 130, 98, 121, 109, 32, 0, 2, 197, 130, 98, 121, 197, 155, 32, 0,
+			8, 109, 114, 101, 116, 2, 18, 66, 32, 0, 8, 109, 116, 121, 114, 2, 18, 66, 32, 0, 8, 110, 111, 116, 2, 107, 97, 32, 0, 8,
+			110, 111, 116, 2, 107, 97, 99, 104, 32, 0, 8, 110, 111, 116, 2, 107, 105, 32, 0, 8, 112, 101, 2, 18, 66, 0, 4, 97, 1, 17,
+			67, 21, 2, 197, 130, 121, 98, 121, 32, 3, 8, 38, 35, 0, 97, 1, 17, 67, 21, 2, 197, 130, 121, 98, 121, 197, 155, 99, 105, 101,
+			32, 0, 97, 1, 17, 67, 21, 2, 197, 130, 121, 98, 121, 197, 155, 109, 121, 32, 0, 4, 101, 1, 17, 67, 21, 2, 108, 105, 98, 121,
+			32, 3, 8, 38, 109, 0, 101, 1, 17, 67, 21, 2, 108, 105, 98, 121, 197, 155, 99, 105, 101, 32, 0, 101, 1, 17, 67, 21, 2, 108,
+			105, 98, 121, 197, 155, 109, 121, 32, 0, 8, 114, 100, 2, 118, 3, 35, 57, 0, 99, 8, 109, 2, 114, 111, 3, 35, 57, 49, 0, 109,
+			101, 8, 116, 3, 35, 57, 65, 0, 109, 101, 8, 116, 2, 114, 3, 35, 57, 65, 109, 0, 114, 101, 8, 102, 2, 102, 111, 3, 35, 57,
+			109, 51, 0, 4, 3, 37, 0, 8, 110, 105, 109, 111, 100, 2, 99, 101, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 97, 32,
+			12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 97, 99, 104, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 105, 32, 12, 12,
+			0, 8, 110, 105, 109, 111, 100, 2, 107, 111, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 111, 109, 32, 12, 12, 0, 8, 110,
+			105, 109, 111, 100, 2, 107, 196, 133, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 196, 153, 32, 12, 12, 0, 8, 110, 111, 114,
+			101, 119, 2, 99, 101, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 97, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107,
+			97, 99, 104, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 105, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 111, 32,
+			12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 111, 109, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 196, 133, 32, 12, 12,
+			0, 8, 110, 111, 114, 101, 119, 2, 107, 196, 153, 32, 12, 12, 0, 4, 105, 1, 107, 97, 114, 2, 32, 3, 37, 57, 37, 0, 105, 1,
+			109, 188, 197, 2, 32, 0, 1, 17, 67, 2, 17, 65, 3, 38, 0, 8, 108, 107, 2, 101, 3, 38, 37, 57, 0, 101, 1, 17, 67, 2,
+			32, 3, 38, 110, 0, 4, 1, 17, 65, 2, 17, 65, 3, 57, 0, 2, 17, 65, 32, 12, 0, 7, 6, 106, 0, 3, 57, 0, 8, 2,
+			105, 109, 3, 75, 0, 101, 97, 2, 110, 115, 3, 75, 37, 0, 4, 97, 99, 107, 8, 2, 32, 3, 75, 109, 49, 0, 97, 99, 107, 8,
+			2, 115, 0, 97, 99, 107, 8, 2, 121, 0, 97, 99, 107, 121, 8, 2, 32, 3, 75, 109, 49, 37, 0, 97, 109, 101, 115, 8, 3, 75,
+			109, 57, 65, 89, 0, 97, 109, 101, 115, 105, 8, 2, 101, 32, 3, 75, 109, 57, 65, 97, 0, 101, 102, 102, 8, 3, 75, 109, 83, 0,
+			97, 122, 122, 3, 75, 109, 88, 0, 97, 122, 122, 2, 32, 3, 75, 109, 89, 0, 111, 104, 110, 8, 3, 75, 111, 50, 0, 111, 110, 97,
+			116, 104, 8, 3, 75, 111, 50, 35, 47, 0, 111, 104, 110, 105, 8, 2, 101, 3, 75, 111, 67, 38, 0, 97, 99, 113, 117, 101, 115, 8,
+			3, 90, 35, 49, 0, 8, 2, 105, 109, 101, 110, 3, 107, 0, 7, 6, 107, 0, 3, 49, 0, 108, 111, 119, 8, 2, 110, 3, 49, 55,
+			35, 58, 0, 197, 130, 2, 32, 3, 49, 58, 0, 7, 6, 108, 0, 3, 55, 0, 2, 32, 3, 55, 10, 0, 105, 8, 111, 112, 2, 17,
+			65, 3, 55, 37, 0, 105, 2, 17, 65, 3, 55, 57, 0, 7, 6, 109, 0, 3, 65, 0, 2, 32, 3, 65, 10, 0, 106, 8, 2, 114,
+			17, 65, 3, 65, 35, 57, 111, 0, 105, 8, 101, 105, 122, 2, 17, 65, 3, 65, 38, 0, 105, 1, 17, 65, 2, 17, 65, 3, 65, 57,
+			0, 99, 8, 2, 14, 129, 132, 130, 3, 65, 109, 49, 0, 7, 6, 110, 0, 3, 50, 0, 2, 32, 3, 50, 10, 0, 116, 111, 110, 1,
+			17, 65, 21, 2, 32, 14, 129, 128, 132, 3, 50, 47, 111, 50, 0, 103, 1, 97, 2, 101, 108, 3, 50, 75, 0, 4, 111, 102, 102, 2,
+			32, 14, 129, 128, 132, 3, 50, 111, 84, 0, 111, 102, 102, 2, 97, 32, 0, 111, 102, 102, 2, 97, 99, 104, 32, 0, 111, 102, 102, 2,
+			97, 109, 105, 32, 0, 111, 102, 102, 2, 101, 109, 32, 0, 111, 102, 102, 2, 105, 101, 32, 0, 111, 102, 102, 2, 111, 109, 32, 0, 111,
+			102, 102, 2, 111, 119, 105, 32, 0, 111, 102, 102, 2, 117, 32, 0, 4, 2, 99, 105, 3, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197,
+			186, 0, 2, 105, 0, 2, 196, 135, 0, 4, 105, 2, 17, 65, 3, 67, 38, 0, 121, 2, 39, 101, 103, 111, 32, 0, 121, 2, 39, 101,
+			109, 117, 32, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 103, 116, 111, 110, 1, 17, 65, 21, 2, 32, 14, 129, 128, 133, 3, 68, 81,
+			47, 111, 50, 0, 7, 6, 111, 0, 117, 116, 8, 103, 97, 114, 2, 32, 3, 6, 40, 0, 119, 8, 100, 2, 110, 3, 35, 58, 0, 117,
+			116, 115, 105, 100, 8, 3, 35, 58, 117, 35, 57, 72, 0, 105, 8, 112, 2, 114, 111, 116, 17, 65, 3, 40, 58, 35, 0, 101, 116, 104,
+			3, 109, 47, 0, 3, 111, 0, 2, 32, 17, 65, 3, 111, 12, 10, 0, 116, 101, 98, 111, 111, 8, 110, 2, 17, 67, 3, 111, 58, 47,
+			71, 40, 0, 7, 6, 112, 0, 3, 48, 0, 4, 197, 130, 8, 2, 99, 3, 48, 40, 58, 49, 111, 84, 50, 37, 0, 197, 130, 8, 2,
+			107, 0, 4, 105, 8, 111, 107, 2, 17, 65, 3, 48, 57, 0, 105, 8, 111, 107, 111, 116, 111, 102, 2, 17, 65, 0, 4, 112, 197, 130,
+			8, 2, 99, 3, 48, 111, 47, 48, 40, 58, 49, 111, 84, 50, 37, 0, 112, 197, 130, 8, 2, 107, 0, 7, 6, 113, 0, 3, 49, 0,
+			117, 2, 17, 65, 3, 49, 84, 0, 7, 6, 114, 0, 4, 3, 51, 0, 1, 17, 65, 2, 122, 197, 130, 0, 1, 25, 2, 17, 65, 0,
+			1, 32, 17, 65, 2, 17, 65, 0, 1, 97, 109, 2, 122, 108, 105, 110, 0, 1, 97, 109, 2, 122, 110, 0, 1, 97, 109, 100, 111, 2,
+			122, 97, 0, 2, 122, 105, 0, 8, 97, 109, 97, 122, 2, 122, 97, 0, 8, 97, 109, 122, 2, 122, 97, 0, 8, 111, 98, 2, 122, 111,
+			106, 0, 114, 1, 17, 65, 2, 17, 65, 0, 121, 39, 2, 101, 0, 105, 2, 17, 65, 3, 51, 57, 0, 4, 122, 8, 105, 109, 2, 97,
+			32, 12, 12, 12, 3, 51, 88, 0, 122, 8, 105, 109, 2, 97, 99, 104, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 97, 109, 105, 32,
+			12, 12, 12, 0, 122, 8, 105, 109, 2, 111, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 111, 119, 105, 101, 32, 12, 12, 12, 0, 122,
+			8, 105, 109, 2, 121, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 195, 179, 119, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 196, 133,
+			32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 196, 153, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97, 32, 12, 12, 12, 0, 122, 8,
+			117, 109, 2, 97, 99, 104, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97, 109, 105, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97,
+			115, 105, 99, 104, 108, 0, 122, 8, 117, 109, 2, 111, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 111, 119, 105, 101, 32, 12, 12, 12,
+			0, 122, 8, 117, 109, 2, 121, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 195, 179, 119, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2,
+			196, 133, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 196, 153, 32, 12, 12, 12, 0, 4, 122, 2, 97, 110, 100, 3, 51, 117, 0, 122,
+			2, 105, 110, 105, 32, 0, 122, 2, 105, 110, 105, 99, 104, 32, 0, 122, 2, 105, 110, 105, 101, 103, 111, 32, 0, 122, 2, 105, 110, 105,
+			101, 109, 117, 32, 0, 122, 2, 105, 110, 105, 109, 32, 0, 122, 2, 105, 110, 105, 109, 105, 32, 0, 122, 2, 111, 110, 105, 32, 0, 122,
+			2, 111, 110, 105, 99, 104, 32, 0, 122, 2, 111, 110, 105, 101, 103, 111, 32, 0, 122, 2, 111, 110, 105, 101, 109, 117, 32, 0, 122, 2,
+			111, 110, 105, 109, 32, 0, 122, 2, 111, 110, 105, 109, 105, 32, 0, 122, 3, 90, 0, 4, 122, 1, 99, 2, 17, 65, 3, 91, 0, 122,
+			1, 102, 2, 17, 65, 0, 122, 1, 104, 0, 122, 1, 107, 0, 122, 1, 112, 0, 122, 1, 115, 2, 17, 65, 0, 122, 1, 116, 0, 122,
+			1, 122, 99, 2, 17, 65, 0, 122, 1, 122, 115, 2, 17, 65, 0, 122, 1, 135, 196, 2, 17, 65, 0, 122, 1, 155, 197, 2, 17, 65,
+			0, 122, 2, 32, 0, 7, 6, 115, 0, 4, 105, 1, 115, 2, 109, 97, 32, 3, 8, 37, 0, 105, 1, 115, 2, 109, 101, 109, 32, 0,
+			105, 1, 115, 2, 109, 105, 101, 32, 0, 105, 1, 115, 2, 109, 111, 32, 0, 4, 111, 110, 8, 101, 99, 108, 97, 115, 2, 32, 12, 12,
+			3, 8, 89, 111, 50, 0, 111, 110, 8, 105, 116, 97, 112, 2, 32, 12, 12, 0, 8, 97, 117, 113, 2, 105, 3, 88, 0, 3, 89, 0,
+			4, 105, 1, 107, 101, 108, 112, 2, 32, 3, 89, 37, 0, 105, 2, 98, 0, 105, 2, 99, 0, 105, 2, 100, 0, 105, 2, 102, 0, 105,
+			2, 103, 0, 105, 2, 104, 0, 105, 2, 108, 105, 107, 111, 0, 105, 2, 108, 108, 0, 105, 2, 108, 111, 115, 0, 105, 2, 108, 118, 0,
+			105, 2, 109, 0, 105, 2, 110, 103, 0, 105, 2, 110, 117, 115, 0, 105, 2, 113, 0, 105, 2, 114, 0, 105, 2, 116, 0, 105, 2, 118,
+			0, 105, 2, 120, 0, 105, 8, 107, 97, 109, 2, 32, 0, 116, 101, 105, 110, 1, 121, 3, 89, 47, 109, 37, 50, 0, 99, 104, 101, 114,
+			122, 3, 89, 49, 109, 51, 117, 0, 4, 105, 8, 97, 116, 115, 97, 110, 97, 2, 97, 32, 3, 89, 57, 0, 105, 8, 97, 116, 115, 97,
+			110, 97, 2, 105, 32, 0, 105, 8, 97, 116, 115, 97, 110, 97, 2, 111, 32, 0, 105, 8, 97, 116, 115, 97, 110, 97, 2, 196, 133, 32,
+			0, 105, 8, 97, 116, 115, 97, 110, 97, 2, 196, 153, 32, 0, 4, 99, 104, 1, 97, 112, 2, 97, 3, 89, 101, 0, 99, 104, 1, 101,
+			2, 97, 116, 111, 0, 99, 104, 2, 97, 98, 17, 65, 32, 0, 99, 104, 2, 97, 98, 32, 0, 99, 104, 2, 97, 98, 97, 109, 105, 32,
+			0, 99, 104, 2, 97, 98, 101, 109, 32, 0, 99, 104, 2, 97, 98, 105, 101, 32, 0, 99, 104, 2, 97, 98, 111, 109, 0, 99, 104, 2,
+			97, 98, 111, 115, 122, 0, 99, 104, 2, 97, 98, 111, 119, 17, 65, 0, 99, 104, 2, 97, 98, 195, 179, 0, 99, 104, 2, 97, 100, 122,
+			17, 65, 0, 99, 104, 2, 97, 100, 122, 107, 0, 99, 104, 2, 97, 109, 32, 0, 99, 104, 2, 97, 109, 105, 0, 99, 104, 2, 97, 109,
+			105, 17, 65, 0, 99, 104, 2, 97, 114, 97, 107, 116, 0, 99, 104, 2, 101, 100, 17, 65, 0, 99, 104, 2, 101, 100, 32, 0, 99, 104,
+			2, 101, 109, 97, 116, 0, 99, 104, 2, 105, 122, 109, 17, 65, 0, 99, 104, 2, 105, 122, 109, 32, 0, 99, 104, 2, 105, 122, 111, 0,
+			99, 104, 2, 108, 97, 108, 105, 0, 99, 104, 2, 108, 97, 110, 17, 65, 0, 99, 104, 2, 108, 97, 196, 135, 0, 99, 104, 2, 108, 97,
+			197, 130, 0, 99, 104, 2, 108, 101, 108, 105, 0, 99, 104, 2, 108, 117, 100, 110, 17, 65, 0, 99, 104, 2, 110, 105, 101, 32, 0, 99,
+			104, 2, 110, 105, 196, 153, 0, 99, 104, 2, 110, 196, 133, 0, 99, 104, 2, 110, 196, 153, 0, 99, 104, 2, 111, 100, 97, 99, 104, 32,
+			0, 99, 104, 2, 111, 100, 97, 109, 105, 32, 0, 99, 104, 2, 111, 100, 101, 107, 32, 0, 99, 104, 2, 111, 100, 107, 97, 0, 99, 104,
+			2, 111, 100, 107, 105, 0, 99, 104, 2, 111, 100, 107, 105, 101, 109, 32, 0, 99, 104, 2, 111, 100, 107, 111, 119, 0, 99, 104, 2, 111,
+			100, 107, 111, 119, 105, 32, 0, 99, 104, 2, 111, 100, 107, 117, 32, 0, 99, 104, 2, 111, 100, 107, 195, 179, 0, 99, 104, 2, 111, 100,
+			111, 119, 0, 99, 104, 2, 111, 100, 121, 32, 0, 99, 104, 2, 111, 100, 122, 105, 0, 99, 104, 2, 111, 100, 122, 196, 133, 0, 99, 104,
+			2, 111, 100, 122, 196, 153, 0, 99, 104, 2, 111, 100, 195, 179, 0, 99, 104, 2, 111, 114, 111, 119, 97, 0, 99, 104, 2, 111, 114, 122,
+			101, 0, 99, 104, 2, 111, 119, 17, 65, 0, 99, 104, 2, 111, 119, 97, 0, 99, 104, 2, 114, 111, 110, 17, 65, 0, 99, 104, 2, 114,
+			111, 110, 32, 0, 99, 104, 2, 114, 117, 112, 32, 0, 99, 104, 2, 114, 117, 112, 97, 108, 105, 0, 99, 104, 2, 114, 117, 112, 97, 110,
+			17, 65, 0, 99, 104, 2, 114, 117, 112, 97, 196, 135, 32, 0, 99, 104, 2, 114, 117, 112, 97, 197, 130, 0, 99, 104, 2, 114, 117, 112,
+			105, 17, 65, 0, 99, 104, 2, 114, 121, 112, 17, 65, 0, 99, 104, 2, 114, 121, 112, 108, 0, 99, 104, 2, 114, 121, 112, 197, 130, 0,
+			99, 104, 2, 114, 122, 17, 65, 0, 99, 104, 2, 117, 100, 110, 0, 99, 104, 2, 119, 121, 99, 105, 0, 99, 104, 2, 119, 121, 116, 17,
+			65, 0, 99, 104, 2, 121, 108, 17, 65, 0, 99, 104, 2, 121, 197, 130, 0, 99, 104, 2, 195, 179, 0, 99, 104, 2, 196, 133, 0, 99,
+			104, 2, 196, 153, 0, 99, 104, 2, 197, 130, 0, 99, 104, 8, 2, 101, 116, 121, 0, 99, 104, 8, 2, 101, 116, 121, 110, 0, 99, 104,
+			8, 2, 108, 101, 98, 32, 0, 99, 104, 8, 2, 108, 101, 98, 105, 0, 99, 104, 8, 2, 121, 108, 32, 0, 99, 104, 8, 119, 2, 111,
+			100, 0, 101, 110, 1, 21, 2, 32, 14, 129, 128, 131, 3, 89, 109, 50, 0, 111, 110, 1, 21, 2, 32, 14, 129, 128, 131, 3, 89, 111,
+			50, 0, 4, 99, 104, 3, 91, 0, 107, 106, 2, 17, 65, 0, 122, 0, 4, 116, 101, 105, 110, 3, 91, 47, 35, 57, 50, 0, 116, 101,
+			105, 110, 2, 32, 14, 129, 128, 133, 0, 99, 104, 119, 97, 114, 122, 3, 91, 84, 35, 51, 117, 0, 99, 104, 111, 101, 3, 91, 109, 0,
+			4, 101, 97, 8, 2, 110, 32, 3, 91, 111, 0, 101, 97, 8, 2, 110, 97, 32, 0, 101, 97, 8, 2, 110, 101, 109, 32, 0, 101, 97,
+			8, 2, 110, 105, 101, 32, 0, 101, 97, 8, 2, 110, 111, 119, 105, 32, 0, 101, 97, 8, 2, 110, 117, 32, 0, 4, 2, 105, 3, 97,
+			0, 105, 2, 17, 65, 0, 4, 105, 1, 117, 100, 2, 103, 114, 3, 97, 37, 0, 105, 2, 98, 114, 122, 0, 105, 2, 99, 17, 65, 0,
+			105, 2, 99, 104, 0, 105, 2, 99, 122, 0, 105, 2, 100, 108, 17, 65, 0, 105, 2, 100, 108, 32, 0, 105, 2, 100, 197, 130, 0, 105,
+			8, 2, 116, 17, 65, 0, 105, 8, 2, 116, 32, 0, 105, 8, 2, 116, 107, 0, 7, 6, 116, 0, 4, 3, 47, 0, 2, 114, 122, 0,
+			2, 115, 0, 111, 119, 110, 2, 32, 14, 129, 128, 132, 3, 47, 35, 58, 50, 0, 105, 2, 17, 65, 3, 47, 57, 0, 116, 104, 101, 119,
+			3, 89, 57, 40, 0, 2, 105, 3, 115, 0, 7, 6, 117, 0, 4, 1, 21, 2, 197, 130, 98, 121, 32, 3, 8, 40, 0, 1, 21, 2,
+			197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 197, 130, 98, 121, 197, 155, 32, 0, 110, 99, 104, 8, 108, 3, 35, 50, 76, 0, 4, 3,
+			40, 0, 1, 97, 110, 2, 99, 122, 0, 1, 97, 110, 2, 107, 0, 1, 97, 114, 97, 112, 0, 1, 97, 116, 101, 109, 0, 1, 101, 17,
+			67, 2, 109, 32, 0, 1, 101, 17, 67, 2, 115, 0, 8, 97, 122, 0, 8, 101, 105, 110, 0, 8, 101, 122, 114, 112, 0, 2, 32, 17,
+			65, 3, 40, 10, 0, 101, 116, 111, 111, 116, 104, 8, 108, 98, 3, 40, 47, 40, 83, 0, 115, 105, 99, 8, 109, 2, 97, 108, 32, 3,
+			57, 6, 40, 88, 37, 49, 0, 115, 105, 99, 8, 109, 2, 97, 108, 3, 57, 40, 88, 37, 49, 0, 4, 1, 97, 3, 58, 0, 1, 101,
+			0, 8, 97, 122, 2, 116, 111, 0, 105, 99, 107, 8, 98, 3, 58, 37, 49, 0, 7, 6, 118, 0, 105, 99, 101, 8, 2, 21, 14, 129,
+			132, 132, 3, 58, 37, 117, 109, 0, 4, 1, 102, 2, 17, 65, 3, 83, 0, 1, 104, 2, 17, 65, 0, 1, 107, 2, 17, 65, 0, 1,
+			112, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 1, 116, 2, 17, 65, 0, 2, 111, 108, 107, 115, 0, 3, 84, 0, 105, 108, 108, 101,
+			2, 32, 14, 129, 128, 133, 3, 84, 37, 55, 0, 7, 6, 119, 0, 2, 115, 107, 3, 10, 84, 0, 4, 114, 105, 103, 104, 3, 51, 35,
+			57, 0, 114, 105, 103, 104, 1, 17, 67, 0, 8, 2, 32, 3, 58, 0, 101, 101, 2, 107, 3, 58, 37, 0, 4, 8, 2, 32, 102, 3,
+			58, 109, 0, 8, 2, 32, 109, 110, 0, 97, 115, 104, 105, 8, 3, 58, 111, 91, 37, 0, 105, 110, 100, 111, 119, 8, 3, 58, 112, 50,
+			72, 111, 58, 0, 4, 1, 99, 2, 17, 65, 3, 83, 0, 1, 102, 2, 17, 65, 0, 1, 104, 2, 17, 65, 0, 1, 107, 2, 17, 65,
+			0, 1, 112, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 1, 116, 2, 17, 65, 0, 1, 122, 99, 2, 17, 65, 0, 1, 122, 115, 2,
+			17, 65, 0, 1, 135, 196, 2, 17, 65, 0, 1, 155, 197, 2, 17, 65, 0, 2, 32, 0, 8, 2, 32, 99, 0, 8, 2, 32, 104, 0,
+			8, 2, 32, 107, 0, 8, 2, 32, 112, 0, 8, 2, 32, 115, 0, 8, 2, 32, 116, 0, 3, 84, 0, 105, 99, 101, 8, 2, 21, 14,
+			129, 132, 132, 3, 84, 37, 117, 109, 0, 115, 122, 1, 114, 101, 105, 2, 17, 65, 3, 91, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7,
+			6, 121, 0, 4, 39, 1, 114, 2, 101, 103, 111, 32, 3, 0, 39, 1, 114, 2, 101, 109, 117, 32, 3, 0, 4, 1, 21, 2, 197, 130,
+			98, 121, 32, 3, 8, 112, 0, 1, 21, 2, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 197, 130, 98, 121, 197, 155, 32, 0, 1, 98,
+			101, 2, 197, 155, 99, 105, 101, 32, 0, 1, 98, 101, 2, 197, 155, 109, 121, 32, 0, 1, 100, 108, 97, 21, 2, 18, 66, 32, 0, 1,
+			100, 111, 108, 21, 2, 18, 66, 32, 0, 1, 100, 111, 116, 21, 2, 18, 66, 32, 0, 1, 100, 114, 111, 21, 2, 18, 66, 32, 0, 1,
+			114, 101, 109, 21, 2, 18, 66, 32, 0, 1, 114, 101, 116, 21, 2, 18, 66, 32, 0, 1, 114, 111, 102, 21, 2, 18, 66, 32, 0, 1,
+			114, 111, 103, 21, 2, 18, 66, 32, 0, 1, 114, 111, 116, 21, 2, 18, 66, 32, 0, 1, 114, 116, 101, 21, 2, 18, 66, 32, 0, 1,
+			114, 116, 107, 21, 2, 18, 66, 32, 0, 1, 114, 116, 112, 21, 2, 18, 66, 32, 0, 1, 115, 97, 108, 21, 2, 18, 66, 32, 0, 1,
+			115, 107, 101, 21, 2, 18, 66, 32, 0, 1, 116, 97, 98, 21, 2, 18, 66, 32, 0, 1, 116, 97, 105, 21, 2, 18, 66, 32, 0, 1,
+			116, 97, 109, 21, 2, 18, 66, 32, 0, 1, 116, 97, 114, 21, 2, 18, 66, 32, 0, 1, 116, 97, 116, 21, 2, 18, 66, 32, 0, 1,
+			116, 101, 97, 21, 2, 18, 66, 32, 0, 1, 116, 101, 99, 21, 2, 18, 66, 32, 0, 1, 116, 101, 100, 21, 2, 18, 66, 32, 0, 1,
+			116, 101, 103, 21, 2, 18, 66, 32, 0, 1, 116, 101, 104, 21, 2, 18, 66, 32, 0, 1, 116, 101, 108, 21, 2, 18, 66, 32, 0, 1,
+			116, 101, 109, 21, 2, 18, 66, 32, 0, 1, 116, 101, 110, 21, 2, 18, 66, 32, 0, 1, 116, 101, 111, 21, 2, 18, 66, 32, 0, 1,
+			116, 101, 114, 21, 2, 18, 66, 32, 0, 1, 116, 101, 116, 21, 2, 18, 66, 32, 0, 1, 116, 105, 108, 21, 2, 18, 66, 32, 0, 1,
+			116, 107, 97, 21, 2, 18, 66, 32, 0, 1, 116, 107, 101, 21, 2, 18, 66, 32, 0, 1, 116, 107, 114, 21, 2, 18, 66, 32, 0, 1,
+			116, 108, 97, 21, 2, 18, 66, 32, 0, 1, 116, 110, 97, 21, 2, 18, 66, 32, 0, 1, 116, 110, 101, 21, 2, 18, 66, 32, 0, 1,
+			116, 111, 98, 21, 2, 18, 66, 32, 0, 1, 116, 111, 105, 21, 2, 18, 66, 32, 0, 1, 116, 111, 110, 21, 2, 18, 66, 32, 0, 1,
+			116, 111, 114, 21, 2, 18, 66, 32, 0, 1, 116, 111, 122, 21, 2, 18, 66, 32, 0, 1, 116, 112, 101, 21, 2, 18, 66, 32, 0, 1,
+			116, 112, 105, 21, 2, 18, 66, 32, 0, 1, 116, 112, 111, 2, 18, 66, 32, 0, 1, 116, 115, 97, 21, 2, 18, 66, 32, 0, 1, 116,
+			115, 101, 21, 2, 18, 66, 32, 0, 1, 116, 115, 105, 21, 2, 18, 66, 32, 0, 1, 116, 115, 111, 21, 2, 18, 66, 32, 0, 1, 116,
+			115, 117, 21, 2, 18, 66, 32, 0, 1, 116, 115, 121, 21, 2, 18, 66, 32, 0, 1, 116, 117, 97, 21, 2, 18, 66, 32, 0, 1, 116,
+			117, 101, 21, 2, 18, 66, 32, 0, 1, 116, 121, 114, 21, 2, 18, 66, 32, 0, 1, 122, 101, 110, 21, 2, 18, 66, 32, 0, 1, 122,
+			105, 102, 2, 18, 66, 32, 0, 1, 130, 197, 21, 2, 98, 121, 32, 0, 1, 130, 197, 21, 2, 98, 121, 197, 155, 99, 105, 101, 32, 0,
+			1, 130, 197, 21, 2, 98, 121, 197, 155, 109, 121, 32, 0, 8, 98, 97, 2, 197, 155, 99, 105, 101, 32, 0, 8, 98, 97, 2, 197, 155,
+			109, 121, 32, 0, 8, 115, 97, 108, 107, 2, 18, 66, 32, 0, 8, 116, 97, 116, 115, 2, 18, 66, 32, 0, 8, 116, 101, 2, 18, 66,
+			32, 0, 8, 116, 107, 97, 114, 112, 2, 18, 66, 32, 0, 8, 116, 115, 105, 109, 2, 18, 66, 0, 8, 116, 121, 114, 107, 2, 18, 66,
+			32, 0, 4, 39, 1, 17, 67, 2, 101, 103, 111, 32, 3, 38, 0, 39, 1, 17, 67, 2, 101, 109, 117, 32, 0, 4, 1, 17, 65, 2,
+			17, 65, 3, 57, 0, 1, 17, 65, 2, 32, 0, 8, 2, 17, 65, 0, 4, 3, 112, 0, 8, 114, 111, 116, 115, 105, 104, 2, 107, 97,
+			12, 12, 0, 8, 114, 111, 116, 115, 105, 104, 2, 107, 111, 109, 12, 12, 0, 8, 114, 116, 101, 116, 2, 107, 97, 12, 12, 0, 8, 114,
+			116, 101, 116, 2, 107, 111, 109, 12, 12, 0, 8, 116, 97, 112, 2, 12, 12, 0, 2, 32, 17, 65, 3, 112, 10, 0, 7, 6, 122, 0,
+			4, 3, 88, 0, 8, 2, 32, 0, 8, 111, 114, 2, 105, 17, 67, 0, 4, 105, 8, 2, 17, 67, 3, 88, 10, 37, 0, 105, 8, 101,
+			105, 110, 2, 17, 67, 0, 122, 8, 2, 97, 32, 3, 88, 10, 88, 0, 4, 105, 1, 111, 109, 2, 108, 108, 3, 88, 37, 0, 105, 2,
+			17, 67, 0, 8, 2, 32, 109, 110, 3, 88, 109, 0, 4, 2, 32, 3, 89, 0, 8, 2, 32, 99, 0, 8, 2, 32, 102, 0, 8, 2,
+			32, 104, 0, 8, 2, 32, 107, 0, 8, 2, 32, 112, 0, 8, 2, 32, 115, 0, 8, 2, 32, 116, 0, 4, 2, 105, 3, 96, 0, 105,
+			2, 17, 65, 0, 4, 105, 2, 109, 12, 3, 96, 37, 0, 105, 8, 2, 112, 0, 4, 2, 105, 110, 105, 32, 3, 117, 0, 2, 105, 110,
+			105, 99, 104, 32, 0, 2, 105, 110, 105, 101, 103, 111, 32, 0, 2, 105, 110, 105, 101, 109, 117, 32, 0, 2, 105, 110, 105, 109, 32, 0,
+			2, 105, 110, 105, 109, 105, 32, 0, 122, 2, 97, 32, 0, 122, 2, 97, 99, 104, 32, 0, 122, 2, 97, 109, 105, 32, 0, 122, 2, 97,
+			110, 105, 32, 0, 122, 2, 97, 110, 105, 99, 104, 32, 0, 122, 2, 97, 110, 105, 101, 103, 111, 32, 0, 122, 2, 97, 110, 105, 101, 109,
+			117, 32, 0, 122, 2, 97, 110, 105, 109, 32, 0, 122, 2, 97, 110, 105, 109, 105, 32, 0, 122, 2, 105, 110, 105, 32, 0, 122, 2, 105,
+			110, 105, 99, 104, 32, 0, 122, 2, 105, 110, 105, 101, 103, 111, 32, 0, 122, 2, 105, 110, 105, 101, 109, 117, 32, 0, 122, 2, 105, 110,
+			105, 109, 32, 0, 122, 2, 105, 110, 105, 109, 105, 32, 0, 122, 2, 111, 32, 0, 122, 2, 111, 110, 105, 32, 0, 122, 2, 111, 110, 105,
+			99, 104, 32, 0, 122, 2, 111, 110, 105, 101, 103, 111, 32, 0, 122, 2, 111, 110, 105, 101, 109, 117, 32, 0, 122, 2, 111, 110, 105, 109,
+			32, 0, 122, 2, 111, 110, 105, 109, 105, 32, 0, 122, 2, 121, 32, 0, 122, 2, 195, 179, 119, 32, 0, 122, 2, 196, 153, 32, 0, 122,
+			8, 17, 65, 109, 2, 17, 65, 0, 122, 8, 105, 112, 0, 117, 114, 105, 8, 2, 99, 104, 3, 117, 40, 51, 112, 0, 7, 6, 126, 0,
+			3, 0, 7, 6, 0, 39, 97, 2, 32, 14, 128, 128, 130, 3, 35, 0, 39, 117, 2, 32, 14, 128, 128, 130, 3, 40, 0, 36, 3, 72,
+			111, 55, 35, 51, 0, 39, 101, 109, 2, 32, 14, 128, 128, 131, 3, 109, 65, 0, 39, 101, 109, 117, 2, 32, 14, 128, 128, 132, 3, 109,
+			65, 40, 0, 39, 101, 103, 111, 2, 32, 14, 128, 128, 132, 3, 109, 81, 111, 0, 39, 111, 119, 105, 2, 32, 14, 128, 128, 132, 3, 111,
+			84, 37, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts50 = FileInMemory_createWithData (39425, reinterpret_cast<const char *> (&espeakdata_dicts50_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/pl_dict", 
+			U"pl");
+		Collection_addItem (me.peek(), espeakdata_dicts50.transfer());
+
+		static unsigned char espeakdata_dicts51_data[2570] = {
+			0, 4, 0, 0, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 9, 5, 95, 48, 1, 14, 4, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 136, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 16, 144, 76, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
-			8, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 193, 213, 56, 76, 0, 0, 0,
-			0, 0, 0, 4, 193, 148, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 20, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 51, 88, 47, 51, 6, 37, 50, 47, 35, 0, 0, 11, 3, 95, 48, 67, 89,
-			57, 6, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 156, 43, 0, 0,
-			0, 13, 3, 95, 49, 49, 72, 57, 36, 89, 6, 40, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 55, 88, 89, 36,
-			47, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 97, 99, 117, 89, 49, 109, 51, 48,
-			37, 0, 0, 0, 0, 5, 194, 52, 16, 8, 0, 11, 3, 95, 49, 88, 72, 57, 6, 36, 89, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-			194, 45, 80, 76, 28, 0, 12, 3, 95, 50, 88, 71, 6, 37, 50, 47, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 15, 3, 95, 52, 88, 49, 58, 35, 51, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 56, 16,
-			76, 0, 16, 3, 95, 53, 88, 89, 37, 50, 49, 58, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 54,
-			88, 89, 36, 89, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56,
-			88, 39, 76, 6, 36, 50, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 57, 88, 50, 39, 71, 6, 36, 50, 47, 35,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 168, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 50, 65, 37, 6, 39, 50,
-			0, 0, 11, 195, 44, 83, 128, 72, 28, 81, 115, 117, 32, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 37, 55, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 244, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
-			48, 240, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 5, 194, 80, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 4, 95, 103, 114, 118, 81, 51, 35, 84, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 77, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2,
-			195, 177, 36, 67, 36, 0, 0, 0, 7, 131, 195, 178, 102, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 35, 192,
-			76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 80, 16, 129, 80, 16, 76, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 83, 128, 76, 6, 195, 56, 19, 128, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 47, 51, 6, 36, 89, 0, 0, 9, 2, 95, 50, 72, 6, 39, 89, 0, 0, 9,
-			2, 95, 49, 6, 40, 50, 40, 0, 0, 10, 2, 95, 48, 88, 6, 36, 51, 39, 0, 0, 10, 2, 95, 55, 91, 6, 36, 47, 36, 0,
-			0, 10, 2, 95, 54, 89, 6, 109, 57, 89, 0, 0, 11, 2, 95, 53, 89, 6, 37, 50, 49, 40, 0, 0, 12, 2, 95, 52, 49, 58,
-			35, 47, 6, 36, 51, 0, 0, 0, 0, 11, 2, 95, 57, 50, 58, 6, 36, 71, 36, 0, 0, 9, 2, 95, 56, 6, 39, 76, 39, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 97, 35, 0, 0, 0, 0, 0, 6, 2, 95, 101, 36, 0, 0, 0, 0, 0, 6,
-			2, 95, 105, 37, 0, 0, 0, 6, 2, 95, 111, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 95,
-			121, 37, 81, 51, 6, 109, 49, 0, 49, 0, 4, 194, 80, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			5, 194, 84, 224, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 4, 210, 64, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 168, 0, 3, 6, 109, 0, 7, 6, 195, 177, 0, 3, 67, 0,
-			7, 6, 195, 178, 0, 3, 6, 110, 0, 7, 6, 195, 185, 0, 3, 113, 0, 105, 3, 113, 57, 0, 7, 6, 195, 188, 0, 3, 112, 0,
-			105, 3, 112, 57, 0, 7, 6, 97, 0, 3, 35, 0, 97, 3, 35, 12, 0, 105, 3, 117, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6,
-			99, 0, 3, 49, 0, 104, 3, 76, 0, 2, 17, 71, 3, 89, 0, 7, 6, 100, 0, 3, 72, 0, 106, 3, 75, 0, 7, 6, 101, 0,
-			3, 36, 0, 101, 3, 36, 12, 0, 117, 3, 36, 58, 0, 105, 3, 118, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 3,
-			81, 0, 117, 2, 17, 71, 0, 2, 17, 71, 3, 101, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 4, 1, 17,
-			65, 2, 25, 3, 57, 0, 2, 17, 65, 0, 106, 3, 118, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6,
-			108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 97, 110, 1, 10, 2, 32, 3, 50, 2, 35, 50,
-			0, 2, 32, 3, 68, 0, 7, 6, 111, 0, 3, 39, 0, 111, 3, 39, 12, 0, 117, 3, 39, 58, 0, 101, 3, 40, 0, 7, 6, 112,
-			0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 2, 17, 65, 3, 49, 58, 0, 117, 105, 3, 49, 58, 37, 0, 7, 6, 114, 0,
-			3, 51, 0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 40, 0, 105, 3,
-			40, 57, 0, 2, 17, 65, 3, 58, 0, 117, 3, 112, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120,
-			0, 3, 49, 89, 0, 8, 2, 17, 65, 3, 88, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0,
-			3, 88, 0, 106, 3, 90, 0, 7, 6, 0, 195, 161, 3, 7, 35, 0, 195, 169, 3, 7, 36, 0, 195, 173, 3, 7, 37, 0, 195, 179,
-			3, 7, 39, 0, 195, 186, 3, 7, 40, 0, 39, 3, 19, 0, 36, 3, 72, 110, 55, 110, 0, 195, 167, 3, 89, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts52 = FileInMemory_createWithData (2128, reinterpret_cast<const char *> (&espeakdata_dicts52_data), 
-			U"espeak-1.48.04-source/espeak-data/pap_dict", 
-			U"pap");
-		my addItem_move (espeakdata_dicts52.move());
-
-		static unsigned char espeakdata_dicts53_data[34925] = {
-			0, 4, 0, 0, 141, 103, 0, 0, 0, 9, 198, 4, 194, 83, 80, 18, 82, 65, 9, 198, 4, 192, 83, 80, 18, 82, 65, 0, 7, 196,
-			17, 37, 201, 40, 15, 0, 8, 197, 77, 161, 80, 13, 160, 15, 8, 197, 56, 148, 218, 13, 160, 15, 0, 0, 6, 195, 184, 210, 64, 15,
-			12, 65, 4, 35, 55, 6, 35, 0, 81, 108, 97, 32, 5, 193, 4, 72, 28, 0, 0, 7, 196, 92, 179, 5, 40, 15, 6, 195, 28, 226,
-			114, 15, 13, 69, 40, 19, 137, 12, 80, 75, 109, 67, 37, 89, 0, 15, 69, 16, 85, 137, 12, 80, 72, 37, 84, 6, 35, 57, 89, 0,
-			0, 6, 195, 104, 193, 110, 15, 7, 196, 81, 121, 210, 104, 15, 6, 195, 80, 179, 238, 15, 6, 195, 65, 53, 110, 15, 6, 195, 52, 193,
-			110, 15, 6, 195, 52, 145, 76, 15, 6, 195, 44, 229, 110, 15, 6, 195, 44, 193, 110, 15, 7, 196, 45, 73, 210, 180, 76, 0, 6, 195,
-			93, 38, 133, 15, 6, 65, 8, 71, 109, 0, 0, 9, 198, 77, 64, 200, 157, 38, 128, 15, 9, 198, 77, 2, 113, 81, 38, 128, 15, 0,
-			7, 196, 77, 1, 114, 204, 15, 7, 196, 17, 162, 79, 8, 15, 15, 67, 21, 64, 192, 109, 117, 6, 109, 47, 109, 51, 35, 0, 24, 0,
-			7, 196, 224, 112, 83, 104, 15, 0, 8, 197, 104, 124, 149, 77, 160, 15, 6, 65, 12, 117, 109, 0, 0, 0, 6, 195, 104, 32, 87, 15,
-			8, 197, 52, 22, 9, 52, 16, 65, 0, 0, 6, 65, 16, 72, 109, 0, 0, 6, 195, 107, 35, 205, 15, 6, 195, 44, 193, 74, 15, 6,
-			195, 17, 43, 120, 15, 9, 198, 52, 145, 76, 39, 67, 89, 76, 0, 7, 196, 105, 114, 109, 224, 15, 7, 196, 104, 224, 67, 104, 15, 6,
-			195, 104, 64, 114, 15, 6, 195, 92, 192, 114, 15, 6, 195, 77, 64, 114, 15, 6, 195, 28, 224, 114, 15, 7, 196, 25, 84, 131, 104, 15,
-			6, 195, 16, 32, 114, 15, 8, 197, 13, 162, 206, 36, 80, 15, 7, 196, 12, 194, 83, 104, 15, 10, 68, 8, 241, 85, 24, 71, 109, 83,
-			0, 0, 6, 195, 76, 229, 110, 15, 18, 4, 95, 100, 112, 116, 10, 48, 91, 109, 119, 6, 37, 50, 109, 49, 10, 0, 0, 8, 197, 50,
-			209, 242, 9, 144, 15, 9, 198, 52, 179, 137, 21, 54, 128, 15, 9, 198, 48, 115, 137, 21, 54, 128, 15, 9, 198, 9, 35, 137, 21, 54,
-			128, 15, 21, 65, 20, 37, 65, 109, 57, 55, 111, 84, 109, 0, 81, 109, 97, 105, 108, 111, 119, 101, 32, 25, 65, 20, 37, 65, 109, 57,
-			55, 111, 84, 109, 81, 111, 0, 81, 109, 97, 105, 108, 111, 119, 101, 103, 111, 32, 21, 65, 20, 37, 65, 109, 57, 55, 111, 84, 112, 0,
-			81, 109, 97, 105, 108, 111, 119, 121, 32, 19, 65, 20, 37, 65, 109, 57, 55, 111, 65, 0, 81, 109, 97, 105, 108, 111, 109, 32, 17, 65,
-			20, 37, 65, 109, 57, 55, 37, 0, 81, 109, 97, 105, 108, 105, 32, 17, 65, 20, 37, 65, 109, 57, 55, 109, 0, 81, 109, 97, 105, 108,
-			101, 32, 19, 65, 20, 37, 65, 109, 57, 55, 109, 65, 0, 81, 109, 97, 105, 108, 101, 109, 32, 17, 65, 20, 37, 65, 109, 57, 55, 35,
-			0, 81, 109, 97, 105, 108, 97, 32, 15, 65, 20, 37, 65, 109, 57, 55, 0, 81, 109, 97, 105, 108, 32, 5, 65, 20, 109, 0, 0, 9,
-			198, 105, 41, 211, 200, 38, 64, 15, 9, 198, 104, 210, 109, 200, 38, 64, 15, 9, 198, 104, 203, 75, 200, 38, 64, 15, 9, 198, 93, 2,
-			109, 200, 38, 64, 15, 9, 198, 92, 201, 203, 200, 38, 64, 15, 9, 198, 92, 153, 218, 200, 38, 64, 15, 9, 198, 92, 156, 68, 200, 38,
-			64, 15, 9, 198, 92, 155, 68, 200, 38, 64, 15, 9, 198, 77, 2, 109, 200, 38, 64, 15, 9, 198, 52, 179, 173, 200, 38, 64, 15, 6,
-			195, 64, 145, 74, 15, 6, 195, 52, 145, 74, 15, 0, 6, 195, 93, 2, 114, 15, 6, 195, 92, 146, 128, 15, 7, 196, 80, 176, 83, 104,
-			15, 6, 195, 48, 22, 178, 15, 25, 67, 69, 82, 64, 49, 84, 37, 48, 51, 111, 49, 84, 111, 0, 67, 82, 112, 114, 111, 32, 113, 117,
-			111, 32, 0, 7, 196, 77, 4, 129, 92, 15, 0, 9, 198, 65, 38, 153, 45, 38, 128, 15, 6, 65, 24, 109, 83, 0, 0, 6, 195, 104,
-			70, 66, 15, 0, 0, 7, 196, 200, 176, 83, 104, 15, 0, 7, 65, 28, 81, 57, 109, 0, 0, 0, 8, 197, 77, 160, 218, 4, 208, 15,
-			0, 0, 8, 197, 209, 2, 69, 77, 160, 15, 6, 195, 208, 226, 64, 15, 6, 65, 32, 101, 35, 0, 0, 6, 195, 225, 146, 128, 15, 6,
-			195, 225, 82, 128, 15, 9, 198, 224, 115, 137, 21, 54, 128, 15, 0, 7, 196, 77, 2, 83, 104, 15, 6, 195, 75, 131, 173, 15, 8, 197,
-			17, 33, 206, 36, 80, 15, 0, 6, 195, 65, 51, 238, 15, 10, 199, 56, 145, 75, 82, 116, 133, 40, 76, 11, 200, 52, 21, 20, 21, 34,
-			15, 72, 224, 65, 8, 1, 35, 107, 35, 91, 0, 27, 0, 8, 197, 224, 112, 114, 9, 144, 15, 8, 197, 54, 113, 242, 9, 144, 15, 8,
-			197, 200, 176, 114, 9, 144, 15, 8, 197, 200, 112, 114, 9, 144, 15, 9, 198, 104, 116, 154, 21, 54, 128, 15, 9, 198, 76, 180, 154, 21,
-			54, 128, 15, 5, 193, 36, 72, 28, 0, 9, 198, 93, 161, 45, 200, 38, 64, 15, 9, 198, 93, 41, 211, 200, 38, 64, 15, 9, 198, 80,
-			179, 173, 200, 38, 64, 15, 9, 198, 208, 193, 80, 200, 38, 64, 15, 9, 198, 64, 201, 212, 200, 38, 64, 15, 9, 198, 64, 92, 154, 200,
-			38, 64, 15, 9, 198, 56, 153, 211, 200, 38, 64, 15, 9, 198, 55, 64, 201, 200, 38, 64, 15, 9, 198, 52, 153, 212, 200, 38, 64, 15,
-			9, 198, 47, 32, 68, 200, 38, 64, 15, 9, 198, 19, 113, 207, 200, 38, 64, 15, 9, 198, 17, 46, 15, 200, 38, 64, 15, 9, 198, 9,
-			35, 173, 200, 38, 64, 15, 9, 198, 4, 33, 82, 16, 81, 78, 65, 12, 1, 37, 48, 51, 6, 111, 117, 109, 50, 47, 0, 0, 22, 72,
-			77, 1, 67, 36, 19, 9, 80, 80, 89, 48, 109, 89, 57, 35, 55, 37, 47, 6, 109, 0, 12, 65, 112, 35, 55, 6, 35, 0, 81, 108,
-			97, 32, 7, 1, 38, 35, 50, 72, 0, 0, 6, 195, 52, 145, 110, 15, 6, 195, 29, 35, 238, 15, 6, 195, 52, 145, 110, 76, 0, 12,
-			201, 77, 2, 69, 73, 160, 200, 200, 38, 64, 15, 7, 65, 40, 57, 111, 47, 0, 0, 0, 9, 67, 76, 148, 128, 89, 109, 51, 0, 9,
-			67, 72, 240, 203, 34, 111, 49, 0, 14, 1, 42, 81, 84, 38, 6, 35, 89, 47, 49, 35, 0, 27, 0, 6, 195, 105, 124, 119, 15, 9,
-			1, 43, 48, 55, 40, 89, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 7, 196, 13, 166, 73, 52, 76, 0, 12, 1, 46, 49, 51, 6,
-			111, 48, 49, 35, 0, 27, 0, 9, 1, 47, 89, 55, 109, 91, 0, 27, 0, 6, 65, 48, 109, 55, 0, 15, 4, 95, 100, 105, 97, 10,
-			6, 40, 65, 55, 35, 58, 47, 0, 0, 6, 195, 224, 115, 205, 15, 0, 6, 195, 224, 115, 177, 15, 6, 195, 105, 112, 114, 15, 6, 195,
-			104, 144, 114, 15, 6, 195, 92, 144, 114, 15, 6, 195, 77, 48, 114, 15, 6, 195, 73, 112, 114, 15, 6, 195, 64, 144, 114, 15, 7, 196,
-			45, 2, 83, 104, 15, 12, 67, 40, 21, 211, 75, 6, 109, 58, 89, 0, 13, 0, 6, 195, 81, 43, 67, 15, 6, 195, 76, 213, 110, 15,
-			6, 195, 76, 181, 110, 15, 6, 195, 64, 235, 67, 15, 6, 195, 53, 43, 67, 15, 6, 195, 28, 235, 67, 15, 0, 8, 197, 10, 113, 50,
-			9, 144, 15, 6, 195, 104, 64, 77, 15, 9, 198, 77, 160, 218, 5, 54, 128, 15, 9, 198, 9, 38, 141, 37, 54, 128, 15, 10, 198, 65,
-			38, 133, 12, 145, 120, 76, 8, 6, 65, 52, 109, 65, 0, 0, 6, 195, 76, 145, 74, 15, 7, 196, 13, 161, 77, 84, 76, 0, 7, 196,
-			104, 224, 83, 104, 15, 8, 197, 104, 117, 193, 202, 224, 15, 7, 196, 92, 64, 83, 104, 15, 6, 195, 208, 226, 113, 15, 6, 195, 75, 131,
-			177, 15, 6, 195, 45, 38, 114, 15, 0, 9, 198, 45, 54, 148, 7, 43, 128, 15, 7, 196, 19, 113, 206, 196, 15, 0, 6, 195, 94, 213,
-			16, 15, 6, 65, 56, 109, 50, 0, 0, 16, 66, 57, 0, 50, 35, 48, 91, 6, 112, 49, 58, 35, 72, 0, 24, 0, 0, 0, 14, 65,
-			60, 6, 111, 84, 35, 89, 0, 81, 119, 97, 115, 32, 15, 65, 60, 6, 111, 47, 112, 65, 10, 0, 81, 116, 121, 109, 32, 15, 65, 60,
-			6, 111, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 12, 65, 60, 6, 111, 47, 111, 0, 81, 116, 111, 32, 12, 65, 60, 6, 111, 47,
-			109, 0, 81, 116, 101, 32, 13, 65, 60, 6, 111, 47, 114, 0, 81, 116, 196, 133, 32, 15, 65, 60, 6, 111, 67, 38, 114, 0, 81, 110,
-			105, 196, 133, 32, 14, 65, 60, 6, 111, 67, 38, 109, 0, 81, 110, 105, 101, 32, 14, 65, 60, 6, 111, 67, 37, 65, 0, 81, 110, 105,
-			109, 32, 16, 65, 60, 6, 111, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 14, 65, 60, 6, 111, 50, 35, 89, 0, 81, 110, 97,
-			115, 32, 16, 65, 60, 6, 111, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 4, 193, 60, 76, 0, 9, 198, 40, 84, 212, 23, 67,
-			89, 76, 14, 1, 61, 51, 6, 40, 84, 50, 35, 15, 97, 109, 0, 27, 0, 6, 195, 107, 134, 74, 15, 0, 7, 196, 79, 38, 83, 104,
-			15, 0, 8, 197, 51, 67, 137, 77, 160, 15, 10, 1, 64, 65, 6, 35, 58, 48, 35, 0, 6, 65, 64, 48, 109, 0, 0, 0, 0, 6,
-			195, 104, 195, 238, 15, 11, 200, 93, 54, 131, 104, 226, 69, 77, 160, 15, 6, 195, 65, 35, 238, 15, 6, 195, 44, 227, 238, 15, 17, 70,
-			4, 229, 8, 60, 230, 64, 109, 50, 47, 111, 50, 112, 0, 65, 46, 14, 70, 4, 229, 8, 60, 230, 64, 109, 50, 47, 111, 50, 0, 0,
-			9, 198, 64, 147, 242, 9, 147, 64, 15, 6, 195, 92, 64, 77, 15, 9, 198, 44, 195, 137, 21, 54, 128, 15, 6, 65, 68, 49, 40, 0,
-			0, 0, 14, 67, 16, 240, 192, 72, 6, 111, 117, 109, 50, 47, 0, 24, 0, 0, 6, 65, 72, 109, 51, 0, 0, 7, 196, 76, 180, 167,
-			184, 15, 0, 7, 196, 104, 124, 116, 184, 15, 7, 196, 83, 37, 116, 184, 15, 7, 196, 76, 155, 116, 184, 15, 9, 67, 88, 145, 87, 84,
-			38, 40, 0, 0, 14, 4, 95, 100, 111, 116, 88, 49, 51, 111, 48, 49, 114, 0, 0, 9, 198, 93, 4, 154, 183, 75, 128, 15, 6, 195,
-			77, 64, 115, 15, 6, 65, 76, 109, 89, 0, 0, 9, 198, 77, 0, 83, 200, 38, 64, 15, 8, 197, 77, 0, 114, 9, 144, 15, 9, 198,
-			77, 0, 68, 200, 38, 64, 15, 7, 196, 77, 0, 116, 184, 15, 6, 195, 77, 0, 116, 15, 7, 196, 77, 0, 83, 200, 15, 7, 196, 77,
-			0, 82, 104, 15, 6, 195, 77, 0, 114, 15, 6, 195, 77, 0, 76, 15, 7, 196, 77, 0, 68, 200, 15, 0, 0, 0, 6, 65, 80, 47,
-			109, 0, 0, 6, 195, 92, 64, 74, 15, 0, 7, 195, 4, 226, 64, 76, 8, 0, 8, 197, 48, 81, 242, 9, 144, 15, 6, 195, 105, 123,
-			67, 15, 6, 195, 77, 59, 67, 15, 6, 195, 73, 123, 67, 15, 7, 196, 52, 20, 148, 92, 15, 0, 7, 196, 105, 41, 211, 200, 15, 15,
-			70, 40, 80, 78, 21, 69, 5, 90, 35, 50, 6, 109, 47, 0, 0, 8, 197, 104, 226, 103, 79, 32, 15, 6, 195, 80, 176, 74, 15, 0,
-			6, 195, 93, 146, 128, 15, 0, 8, 197, 93, 164, 167, 210, 224, 15, 6, 195, 92, 193, 80, 15, 0, 9, 198, 77, 68, 154, 183, 75, 128,
-			15, 9, 198, 77, 4, 154, 183, 75, 128, 15, 7, 65, 88, 83, 35, 58, 0, 0, 0, 14, 67, 52, 80, 192, 65, 109, 117, 109, 50, 35,
-			89, 0, 24, 0, 7, 196, 73, 161, 119, 8, 15, 6, 195, 12, 134, 76, 15, 15, 4, 95, 49, 77, 52, 71, 38, 6, 37, 55, 57, 111,
-			50, 0, 0, 13, 1, 92, 71, 6, 109, 49, 89, 55, 109, 91, 0, 27, 8, 65, 92, 84, 112, 0, 72, 49, 0, 9, 198, 93, 0, 82,
-			200, 38, 64, 15, 7, 196, 104, 116, 129, 52, 15, 8, 197, 93, 0, 84, 73, 160, 15, 7, 196, 93, 0, 116, 184, 15, 7, 196, 93, 0,
-			82, 200, 15, 0, 10, 1, 94, 72, 6, 35, 91, 109, 49, 0, 0, 0, 6, 195, 80, 176, 77, 15, 11, 1, 96, 6, 35, 49, 117, 109,
-			50, 47, 0, 7, 65, 96, 37, 49, 89, 0, 14, 4, 95, 49, 77, 49, 47, 6, 112, 97, 111, 50, 117, 0, 0, 6, 195, 104, 64, 74,
-			15, 6, 195, 72, 16, 218, 15, 6, 195, 48, 144, 218, 15, 22, 66, 4, 64, 35, 72, 6, 111, 49, 40, 55, 111, 89, 0, 81, 111, 99,
-			117, 108, 111, 115, 32, 16, 66, 4, 64, 35, 72, 107, 6, 111, 49, 0, 81, 104, 111, 99, 32, 15, 4, 95, 49, 77, 50, 65, 38, 6,
-			37, 55, 57, 111, 50, 0, 0, 9, 198, 11, 17, 26, 36, 84, 218, 76, 4, 193, 120, 43, 4, 193, 120, 43, 16, 4, 95, 49, 77, 51,
-			65, 38, 6, 37, 55, 57, 35, 51, 72, 0, 0, 0, 10, 65, 100, 6, 37, 81, 51, 109, 49, 0, 0, 0, 6, 195, 224, 115, 173, 15,
-			7, 196, 105, 41, 244, 184, 15, 7, 196, 66, 114, 180, 184, 15, 0, 0, 7, 196, 104, 217, 199, 200, 15, 9, 198, 12, 132, 154, 199, 75,
-			128, 15, 10, 67, 64, 192, 89, 48, 55, 109, 57, 0, 8, 65, 104, 88, 112, 0, 72, 49, 0, 7, 196, 105, 116, 167, 184, 15, 6, 195,
-			74, 208, 128, 15, 9, 198, 13, 162, 206, 36, 84, 218, 15, 0, 19, 67, 12, 148, 192, 117, 37, 89, 65, 6, 111, 55, 0, 81, 109, 111,
-			108, 108, 32, 18, 67, 12, 148, 192, 117, 37, 89, 72, 6, 40, 51, 0, 81, 100, 117, 114, 32, 0, 19, 71, 25, 32, 78, 12, 148, 195,
-			60, 83, 51, 35, 50, 89, 37, 89, 49, 111, 0, 0, 6, 195, 104, 112, 115, 15, 10, 67, 61, 32, 193, 111, 51, 49, 35, 0, 0, 11,
-			200, 52, 19, 132, 20, 192, 146, 61, 64, 65, 0, 6, 195, 104, 194, 119, 15, 0, 7, 196, 95, 64, 201, 8, 15, 0, 0, 8, 197, 77,
-			162, 204, 180, 48, 15, 8, 197, 77, 160, 218, 180, 48, 15, 8, 197, 76, 180, 154, 180, 48, 15, 8, 197, 13, 160, 218, 180, 48, 15, 0,
-			7, 196, 93, 51, 149, 40, 15, 0, 7, 196, 80, 181, 201, 200, 15, 6, 195, 54, 113, 242, 15, 6, 195, 50, 209, 242, 15, 0, 9, 198,
-			93, 54, 131, 104, 226, 69, 15, 7, 196, 93, 41, 211, 200, 15, 7, 196, 56, 153, 211, 200, 15, 0, 8, 197, 93, 164, 167, 79, 32, 15,
-			8, 197, 81, 38, 173, 79, 32, 15, 6, 195, 81, 32, 70, 15, 8, 197, 76, 179, 49, 79, 32, 15, 6, 195, 203, 139, 67, 15, 7, 196,
-			17, 46, 45, 12, 15, 7, 196, 184, 210, 109, 12, 15, 0, 7, 196, 92, 145, 68, 104, 15, 7, 196, 76, 50, 50, 4, 15, 9, 198, 29,
-			38, 141, 38, 208, 192, 15, 13, 69, 40, 84, 147, 21, 144, 75, 109, 51, 88, 37, 0, 0, 0, 6, 195, 105, 114, 115, 15, 6, 195, 104,
-			114, 115, 15, 10, 199, 92, 50, 18, 104, 54, 173, 12, 15, 8, 197, 76, 180, 151, 5, 112, 15, 0, 6, 195, 95, 35, 205, 15, 8, 197,
-			65, 38, 173, 31, 32, 15, 0, 0, 6, 195, 201, 160, 87, 15, 0, 6, 195, 47, 32, 80, 15, 19, 71, 12, 244, 25, 72, 145, 200, 80,
-			49, 6, 111, 48, 112, 51, 35, 57, 47, 0, 9, 198, 63, 67, 73, 85, 49, 84, 65, 20, 1, 124, 49, 51, 4, 109, 89, 49, 35, 15,
-			48, 38, 111, 50, 6, 111, 84, 35, 0, 0, 0, 6, 195, 93, 41, 194, 15, 7, 196, 12, 131, 1, 40, 15, 10, 1, 126, 47, 6, 112,
-			55, 72, 35, 0, 0, 7, 196, 224, 115, 137, 40, 15, 14, 4, 95, 116, 108, 100, 88, 47, 6, 112, 55, 72, 114, 0, 0, 0, 6, 195,
-			52, 240, 218, 15, 6, 195, 16, 20, 218, 15, 13, 66, 209, 112, 97, 84, 38, 109, 50, 47, 112, 0, 24, 0, 9, 198, 19, 113, 206, 36,
-			84, 218, 15, 0, 16, 70, 12, 128, 82, 52, 19, 148, 91, 35, 51, 65, 35, 50, 0, 66, 4, 193, 124, 43, 4, 193, 124, 43, 0, 8,
-			197, 76, 50, 18, 85, 0, 15, 17, 70, 88, 20, 137, 137, 72, 147, 84, 35, 34, 57, 109, 47, 109, 0, 67, 0, 6, 195, 104, 217, 248,
-			15, 6, 195, 208, 203, 64, 15, 0, 7, 196, 93, 163, 103, 224, 15, 0, 6, 195, 225, 91, 128, 15, 6, 195, 42, 219, 128, 15, 6, 195,
-			18, 219, 128, 15, 23, 73, 12, 130, 80, 64, 83, 132, 4, 193, 64, 76, 37, 48, 109, 50, 72, 109, 57, 55, 0, 65, 46, 21, 73, 12,
-			130, 80, 64, 83, 132, 4, 193, 64, 76, 37, 48, 109, 50, 72, 109, 57, 55, 0, 0, 0, 9, 198, 209, 114, 79, 16, 54, 128, 15, 8,
-			197, 76, 50, 12, 62, 224, 15, 6, 195, 74, 112, 128, 15, 9, 198, 31, 32, 83, 104, 54, 128, 15, 0, 6, 195, 107, 133, 74, 15, 6,
-			195, 203, 139, 64, 15, 7, 196, 17, 162, 65, 8, 15, 0, 14, 69, 12, 194, 67, 34, 32, 49, 55, 37, 91, 6, 109, 0, 0, 7, 196,
-			93, 160, 137, 184, 15, 7, 196, 93, 38, 133, 184, 15, 0, 8, 197, 104, 70, 137, 20, 192, 15, 6, 195, 51, 67, 137, 15, 0, 7, 196,
-			28, 224, 83, 104, 15, 0, 7, 196, 104, 112, 83, 200, 15, 7, 196, 76, 147, 196, 200, 15, 7, 196, 64, 145, 75, 200, 15, 7, 196, 12,
-			144, 200, 200, 15, 10, 199, 5, 32, 200, 36, 66, 65, 44, 67, 0, 6, 195, 54, 113, 12, 15, 0, 8, 197, 93, 4, 154, 180, 48, 15,
-			7, 196, 77, 162, 204, 36, 15, 0, 8, 197, 76, 50, 18, 63, 48, 15, 0, 7, 196, 105, 112, 82, 200, 15, 7, 196, 93, 160, 137, 200,
-			15, 8, 197, 77, 4, 201, 20, 160, 15, 9, 198, 76, 50, 18, 104, 28, 192, 15, 0, 12, 201, 76, 50, 12, 36, 38, 116, 12, 145, 64,
-			15, 8, 197, 105, 50, 79, 19, 32, 15, 8, 197, 92, 208, 82, 107, 32, 15, 8, 197, 92, 70, 137, 63, 32, 15, 8, 197, 92, 70, 137,
-			7, 32, 15, 7, 196, 83, 16, 200, 200, 15, 8, 197, 77, 160, 218, 7, 32, 15, 8, 197, 77, 4, 201, 7, 32, 15, 7, 196, 45, 2,
-			109, 12, 15, 7, 196, 44, 195, 173, 12, 15, 8, 197, 12, 145, 82, 67, 32, 15, 8, 197, 12, 132, 153, 67, 32, 15, 8, 197, 12, 128,
-			201, 7, 32, 15, 7, 196, 12, 128, 237, 12, 15, 0, 7, 196, 224, 115, 173, 12, 15, 6, 195, 105, 112, 66, 15, 7, 196, 209, 2, 109,
-			12, 15, 8, 197, 208, 50, 67, 35, 32, 15, 0, 0, 10, 199, 104, 210, 69, 73, 160, 200, 200, 15, 8, 197, 11, 129, 56, 180, 48, 15,
-			0, 0, 8, 197, 105, 124, 167, 13, 160, 15, 9, 198, 105, 114, 69, 204, 54, 128, 15, 9, 198, 92, 70, 137, 196, 54, 128, 15, 9, 198,
-			12, 140, 133, 64, 54, 128, 15, 0, 6, 195, 105, 32, 119, 15, 6, 195, 93, 32, 119, 15, 6, 195, 76, 176, 119, 15, 0, 7, 196, 83,
-			35, 195, 104, 15, 0, 6, 195, 107, 32, 80, 15, 7, 196, 104, 34, 69, 208, 15, 8, 197, 45, 73, 210, 20, 160, 76, 0, 0, 7, 196,
-			104, 194, 67, 104, 15, 0, 8, 197, 29, 38, 141, 36, 160, 15, 0, 9, 198, 105, 114, 65, 200, 38, 64, 15, 9, 198, 105, 54, 153, 200,
-			38, 64, 15, 9, 198, 104, 226, 75, 200, 38, 64, 15, 9, 198, 104, 160, 68, 200, 38, 64, 15, 9, 198, 104, 115, 137, 200, 38, 64, 15,
-			9, 198, 93, 160, 137, 200, 38, 64, 15, 9, 198, 92, 193, 75, 200, 38, 64, 15, 9, 198, 92, 147, 7, 200, 38, 64, 15, 9, 198, 92,
-			116, 143, 200, 38, 64, 15, 9, 198, 80, 181, 201, 200, 38, 64, 15, 9, 198, 76, 50, 50, 100, 38, 64, 15, 9, 198, 64, 50, 15, 200,
-			38, 64, 15, 9, 198, 52, 147, 11, 200, 38, 64, 15, 9, 198, 45, 114, 84, 200, 38, 64, 15, 9, 198, 45, 32, 68, 200, 38, 64, 15,
-			9, 198, 17, 37, 201, 200, 38, 64, 15, 9, 198, 12, 131, 15, 200, 38, 64, 15, 6, 195, 76, 155, 80, 15, 0, 0, 0, 11, 200, 56,
-			145, 75, 82, 116, 133, 53, 80, 76, 8, 197, 4, 194, 83, 60, 224, 65, 0, 0, 6, 195, 93, 41, 248, 15, 6, 195, 55, 139, 64, 15,
-			6, 195, 51, 139, 64, 15, 0, 0, 7, 196, 80, 28, 195, 104, 15, 7, 196, 17, 44, 67, 104, 15, 0, 9, 198, 77, 163, 9, 208, 214,
-			64, 15, 6, 195, 107, 35, 238, 15, 7, 196, 77, 68, 143, 184, 15, 7, 196, 77, 4, 143, 184, 15, 7, 196, 76, 179, 210, 184, 15, 10,
-			199, 52, 144, 210, 61, 51, 198, 80, 65, 12, 201, 12, 132, 137, 77, 67, 208, 32, 84, 128, 65, 0, 13, 66, 17, 32, 72, 6, 111, 49,
-			47, 111, 51, 0, 24, 0, 6, 195, 93, 9, 202, 15, 9, 198, 65, 53, 18, 105, 155, 128, 15, 6, 195, 11, 17, 45, 76, 0, 6, 195,
-			104, 69, 116, 15, 0, 7, 196, 105, 114, 69, 208, 15, 7, 196, 93, 53, 1, 184, 15, 7, 196, 92, 226, 69, 208, 15, 7, 196, 81, 38,
-			133, 184, 15, 7, 196, 76, 179, 208, 184, 15, 7, 196, 65, 38, 133, 184, 15, 7, 196, 64, 197, 193, 184, 15, 7, 196, 64, 144, 200, 184,
-			15, 7, 196, 53, 38, 133, 184, 15, 7, 196, 29, 38, 129, 184, 15, 7, 196, 17, 38, 133, 184, 15, 21, 67, 64, 241, 5, 48, 111, 72,
-			6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 20, 67, 64, 241, 5, 48, 111, 72, 6, 109, 65, 50, 114, 0, 81, 109, 110,
-			196, 133, 32, 21, 67, 56, 17, 5, 50, 35, 72, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 20, 67, 56, 17, 5, 50,
-			35, 72, 6, 109, 65, 50, 114, 0, 81, 109, 110, 196, 133, 32, 0, 7, 196, 104, 18, 180, 184, 15, 8, 197, 12, 133, 201, 62, 224, 15,
-			0, 7, 196, 76, 188, 143, 204, 15, 6, 195, 29, 38, 119, 15, 7, 196, 29, 32, 83, 104, 15, 0, 7, 196, 93, 53, 15, 200, 15, 7,
-			196, 77, 4, 143, 200, 15, 6, 195, 79, 35, 242, 15, 7, 196, 76, 145, 75, 200, 15, 7, 196, 76, 80, 200, 200, 15, 8, 197, 53, 54,
-			131, 107, 16, 15, 8, 197, 9, 38, 141, 39, 16, 15, 0, 9, 198, 105, 112, 82, 200, 38, 64, 15, 9, 198, 104, 208, 82, 200, 38, 64,
-			15, 9, 198, 104, 116, 129, 200, 38, 64, 15, 9, 198, 93, 64, 82, 200, 38, 64, 15, 9, 198, 93, 53, 1, 200, 38, 64, 15, 9, 198,
-			93, 50, 79, 200, 38, 64, 15, 9, 198, 92, 192, 90, 200, 38, 64, 15, 9, 198, 92, 64, 82, 200, 38, 64, 15, 9, 198, 81, 37, 193,
-			200, 38, 64, 15, 9, 198, 77, 161, 68, 200, 38, 64, 15, 9, 198, 77, 70, 71, 200, 38, 64, 15, 9, 198, 77, 68, 149, 200, 38, 64,
-			15, 9, 198, 77, 4, 149, 200, 38, 64, 15, 9, 198, 76, 50, 50, 4, 38, 64, 15, 9, 198, 73, 161, 75, 200, 38, 64, 15, 9, 198,
-			64, 197, 207, 200, 38, 64, 15, 9, 198, 64, 197, 193, 200, 38, 64, 15, 9, 198, 52, 67, 15, 200, 38, 64, 15, 9, 198, 52, 20, 154,
-			200, 38, 64, 15, 9, 198, 29, 38, 143, 200, 38, 64, 15, 9, 198, 29, 38, 129, 200, 38, 64, 15, 9, 198, 17, 162, 79, 200, 38, 64,
-			15, 9, 198, 17, 33, 193, 200, 38, 64, 15, 9, 198, 16, 226, 79, 200, 38, 64, 15, 9, 198, 13, 162, 207, 200, 38, 64, 15, 9, 198,
-			12, 145, 75, 200, 38, 64, 15, 9, 198, 9, 32, 75, 200, 38, 64, 15, 11, 67, 12, 17, 133, 49, 35, 83, 109, 0, 66, 0, 14, 68,
-			52, 144, 77, 36, 65, 35, 57, 6, 35, 65, 37, 0, 0, 7, 196, 17, 84, 3, 104, 15, 7, 196, 16, 84, 3, 104, 15, 6, 195, 13,
-			166, 64, 72, 0, 7, 196, 93, 53, 1, 200, 15, 7, 196, 64, 197, 193, 200, 15, 7, 196, 52, 20, 154, 200, 15, 7, 196, 29, 38, 129,
-			200, 15, 0, 8, 197, 104, 210, 76, 47, 32, 15, 8, 197, 104, 36, 129, 47, 32, 15, 8, 197, 76, 50, 21, 19, 32, 15, 0, 8, 197,
-			77, 76, 67, 35, 32, 15, 19, 4, 95, 109, 99, 110, 50, 35, 72, 49, 51, 109, 97, 55, 6, 111, 50, 109, 0, 0, 8, 197, 12, 140,
-			167, 19, 32, 15, 0, 7, 196, 44, 252, 195, 104, 15, 0, 6, 195, 104, 227, 205, 15, 7, 196, 12, 131, 21, 64, 15, 0, 9, 198, 77,
-			172, 153, 208, 214, 64, 15, 8, 197, 185, 0, 114, 9, 144, 15, 7, 196, 104, 212, 149, 224, 15, 6, 195, 77, 172, 129, 15, 9, 198, 17,
-			33, 206, 36, 84, 218, 15, 7, 196, 185, 0, 83, 104, 15, 6, 195, 185, 0, 77, 15, 6, 195, 185, 0, 114, 15, 6, 195, 185, 0, 74,
-			15, 6, 195, 185, 0, 110, 15, 6, 195, 185, 0, 64, 15, 13, 69, 77, 68, 133, 21, 64, 89, 47, 51, 37, 47, 0, 0, 8, 197, 104,
-			44, 173, 19, 112, 15, 6, 195, 9, 32, 75, 15, 0, 7, 196, 93, 44, 67, 104, 15, 0, 0, 9, 198, 93, 50, 210, 104, 93, 0, 15,
-			0, 7, 196, 92, 156, 130, 100, 15, 7, 196, 64, 156, 130, 100, 15, 7, 196, 48, 252, 130, 100, 15, 7, 196, 48, 28, 130, 100, 15, 7,
-			196, 16, 252, 130, 100, 15, 7, 196, 16, 28, 130, 100, 15, 7, 196, 8, 156, 130, 100, 15, 7, 196, 92, 145, 83, 104, 15, 7, 196, 76,
-			50, 50, 100, 15, 0, 0, 9, 198, 76, 180, 154, 100, 54, 128, 15, 0, 0, 7, 196, 76, 176, 67, 104, 15, 0, 0, 8, 197, 76, 50,
-			12, 5, 0, 15, 18, 70, 4, 225, 197, 48, 144, 193, 35, 50, 81, 109, 55, 37, 49, 35, 0, 66, 6, 195, 28, 70, 120, 8, 0, 7,
-			196, 76, 176, 82, 224, 15, 19, 67, 65, 3, 210, 48, 111, 72, 48, 111, 51, 6, 40, 76, 67, 37, 49, 0, 24, 0, 0, 6, 195, 105,
-			35, 244, 15, 6, 195, 202, 208, 218, 15, 7, 196, 12, 131, 196, 220, 15, 0, 6, 195, 107, 134, 110, 15, 6, 195, 104, 226, 120, 15, 8,
-			197, 104, 224, 74, 19, 112, 15, 8, 197, 104, 68, 129, 19, 112, 15, 8, 197, 93, 161, 74, 19, 112, 15, 6, 195, 51, 134, 110, 15, 6,
-			195, 45, 44, 110, 15, 8, 197, 29, 32, 78, 19, 112, 15, 0, 9, 198, 104, 116, 129, 56, 77, 192, 15, 7, 196, 104, 35, 9, 224, 15,
-			6, 195, 29, 162, 109, 15, 11, 66, 13, 96, 89, 37, 84, 6, 37, 0, 13, 0, 0, 6, 195, 92, 213, 116, 15, 7, 196, 77, 166, 68,
-			220, 15, 8, 197, 45, 73, 210, 100, 208, 76, 0, 6, 195, 95, 134, 110, 15, 6, 195, 17, 33, 193, 15, 0, 0, 0, 6, 195, 95, 134,
-			114, 15, 9, 198, 92, 50, 18, 104, 50, 110, 15, 6, 195, 55, 134, 114, 15, 6, 195, 184, 210, 114, 15, 0, 0, 7, 196, 29, 38, 141,
-			36, 15, 23, 66, 16, 80, 72, 109, 84, 111, 55, 6, 35, 57, 0, 81, 118, 111, 108, 97, 105, 108, 108, 101, 32, 25, 66, 16, 80, 72,
-			109, 55, 35, 65, 109, 88, 6, 114, 0, 82, 108, 97, 32, 109, 97, 105, 115, 111, 110, 32, 17, 66, 16, 80, 72, 109, 57, 40, 51, 109,
-			0, 81, 105, 117, 114, 101, 32, 19, 66, 16, 80, 72, 109, 83, 35, 49, 47, 111, 0, 81, 102, 97, 99, 116, 111, 32, 23, 66, 209, 0,
-			97, 84, 38, 109, 50, 47, 109, 57, 15, 48, 35, 65, 38, 109, 67, 119, 37, 0, 24, 6, 195, 52, 20, 218, 76, 0, 9, 198, 92, 50,
-			18, 104, 50, 114, 15, 0, 6, 195, 107, 134, 114, 15, 6, 195, 93, 67, 208, 15, 6, 195, 51, 134, 114, 15, 0, 6, 195, 104, 208, 120,
-			15, 7, 196, 92, 179, 5, 64, 15, 6, 195, 65, 32, 120, 15, 7, 196, 51, 67, 137, 200, 15, 13, 68, 20, 161, 67, 80, 37, 90, 6,
-			109, 49, 47, 0, 0, 0, 0, 7, 196, 55, 64, 201, 40, 15, 0, 6, 195, 76, 208, 120, 15, 6, 195, 76, 176, 120, 15, 0, 9, 198,
-			93, 161, 193, 72, 77, 192, 15, 15, 69, 64, 242, 82, 61, 64, 48, 40, 58, 35, 51, 6, 111, 0, 0, 0, 8, 197, 76, 50, 50, 60,
-			208, 15, 7, 196, 76, 49, 68, 220, 15, 8, 197, 52, 144, 114, 20, 208, 76, 0, 7, 196, 95, 43, 67, 104, 15, 0, 6, 195, 105, 114,
-			74, 15, 0, 6, 195, 52, 243, 64, 15, 6, 195, 40, 83, 64, 15, 6, 195, 16, 19, 64, 15, 6, 195, 11, 17, 49, 76, 0, 6, 195,
-			104, 217, 195, 15, 8, 197, 92, 144, 200, 73, 160, 15, 0, 0, 13, 68, 88, 242, 76, 108, 84, 40, 35, 55, 35, 0, 67, 0, 0, 8,
-			197, 76, 96, 74, 13, 160, 15, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 17, 70, 24, 16, 201, 20, 225, 9, 83, 35, 89, 57, 109,
-			50, 72, 37, 0, 16, 7, 100, 39, 97, 109, 111, 117, 114, 72, 35, 65, 40, 51, 0, 66, 7, 195, 81, 147, 73, 72, 10, 0, 6, 195,
-			77, 50, 109, 15, 10, 68, 12, 243, 84, 20, 49, 114, 47, 0, 0, 8, 197, 77, 68, 154, 103, 128, 15, 6, 195, 17, 93, 0, 15, 0,
-			7, 196, 81, 37, 68, 220, 15, 7, 196, 77, 69, 68, 220, 15, 0, 8, 197, 77, 68, 154, 21, 0, 15, 0, 7, 196, 92, 180, 177, 184,
-			15, 7, 196, 81, 38, 177, 208, 15, 7, 196, 76, 180, 177, 184, 15, 6, 195, 52, 18, 173, 76, 0, 6, 195, 32, 28, 194, 15, 24, 69,
-			65, 38, 133, 104, 80, 48, 91, 109, 88, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 14, 67, 17, 97, 0, 72, 37, 84,
-			37, 72, 6, 37, 0, 13, 0, 6, 195, 107, 32, 119, 15, 7, 196, 92, 188, 149, 40, 15, 8, 197, 19, 129, 56, 102, 224, 15, 0, 6,
-			195, 55, 134, 110, 15, 6, 195, 184, 210, 110, 15, 0, 6, 195, 200, 176, 115, 15, 0, 6, 195, 92, 67, 242, 15, 0, 8, 197, 105, 112,
-			76, 13, 160, 15, 7, 196, 8, 192, 68, 200, 15, 0, 6, 195, 105, 114, 69, 15, 7, 196, 93, 163, 167, 92, 15, 7, 196, 76, 176, 77,
-			48, 15, 6, 195, 73, 114, 69, 15, 6, 195, 64, 50, 1, 15, 0, 6, 195, 18, 114, 128, 15, 21, 66, 12, 144, 89, 37, 72, 109, 84,
-			6, 35, 68, 0, 81, 100, 101, 118, 97, 110, 116, 32, 6, 194, 12, 144, 72, 10, 0, 6, 195, 105, 165, 114, 15, 7, 196, 93, 12, 153,
-			204, 15, 6, 195, 65, 37, 114, 15, 17, 67, 67, 34, 192, 48, 40, 58, 49, 6, 111, 84, 50, 37, 49, 0, 24, 0, 7, 196, 104, 160,
-			68, 200, 15, 8, 197, 92, 65, 80, 13, 160, 15, 0, 8, 197, 95, 134, 114, 9, 144, 15, 8, 197, 55, 134, 114, 9, 144, 15, 8, 197,
-			200, 179, 242, 9, 144, 15, 8, 197, 184, 210, 114, 9, 144, 15, 8, 197, 76, 180, 129, 19, 32, 15, 0, 9, 198, 64, 147, 242, 9, 157,
-			0, 15, 6, 195, 28, 20, 0, 15, 0, 0, 11, 200, 92, 50, 18, 104, 50, 114, 9, 144, 15, 7, 196, 104, 37, 68, 220, 15, 7, 196,
-			9, 37, 68, 220, 15, 7, 196, 9, 33, 68, 220, 15, 0, 0, 7, 196, 105, 123, 84, 64, 15, 0, 0, 6, 195, 95, 17, 55, 15, 6,
-			195, 67, 17, 55, 15, 0, 7, 196, 107, 43, 67, 104, 15, 0, 6, 195, 44, 195, 177, 15, 11, 68, 13, 84, 146, 100, 49, 35, 51, 112,
-			0, 0, 7, 196, 92, 145, 82, 104, 15, 9, 198, 77, 69, 201, 21, 33, 55, 15, 6, 195, 28, 29, 0, 15, 0, 8, 197, 53, 38, 133,
-			77, 160, 15, 8, 197, 29, 38, 133, 77, 160, 15, 8, 197, 12, 128, 82, 13, 160, 15, 0, 0, 7, 196, 92, 116, 143, 52, 15, 6, 195,
-			44, 229, 74, 15, 6, 195, 40, 84, 218, 15, 17, 71, 12, 128, 82, 52, 85, 83, 20, 91, 35, 51, 65, 109, 88, 0, 66, 0, 0, 8,
-			197, 104, 115, 210, 77, 160, 15, 6, 195, 52, 67, 9, 15, 20, 67, 32, 16, 128, 107, 35, 71, 37, 55, 37, 47, 111, 84, 6, 35, 50,
-			112, 0, 24, 0, 26, 68, 12, 20, 148, 20, 49, 35, 51, 47, 71, 55, 6, 35, 50, 91, 0, 81, 98, 108, 97, 110, 99, 104, 101, 32,
-			0, 12, 69, 12, 128, 82, 52, 80, 91, 35, 51, 65, 0, 0, 6, 195, 104, 64, 110, 15, 6, 195, 93, 2, 110, 15, 6, 195, 92, 227,
-			244, 15, 6, 195, 92, 192, 110, 15, 6, 195, 65, 44, 120, 15, 6, 195, 28, 224, 110, 15, 0, 6, 195, 29, 35, 205, 15, 0, 0, 11,
-			69, 69, 82, 67, 32, 80, 49, 37, 91, 0, 19, 71, 12, 19, 69, 52, 33, 82, 80, 49, 35, 65, 109, 65, 71, 6, 109, 51, 0, 14,
-			69, 52, 17, 1, 52, 80, 65, 35, 72, 6, 35, 65, 0, 0, 6, 195, 77, 64, 110, 15, 6, 195, 29, 162, 110, 15, 6, 195, 28, 226,
-			110, 15, 7, 196, 19, 113, 206, 180, 15, 6, 195, 16, 32, 110, 15, 0, 18, 67, 16, 82, 129, 72, 109, 90, 35, 84, 6, 37, 0, 81,
-			118, 117, 101, 32, 17, 67, 16, 82, 129, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 32, 0, 7, 196, 208, 193, 83, 104, 15, 8,
-			197, 45, 38, 148, 87, 64, 15, 6, 195, 17, 46, 25, 15, 0, 0, 0, 7, 196, 92, 194, 67, 104, 15, 6, 195, 80, 179, 242, 15, 6,
-			195, 52, 147, 242, 15, 7, 196, 45, 114, 67, 104, 15, 6, 195, 44, 148, 242, 15, 7, 196, 16, 32, 83, 104, 15, 0, 16, 70, 24, 244,
-			151, 5, 33, 0, 83, 111, 51, 58, 109, 51, 72, 0, 0, 0, 7, 196, 225, 156, 130, 100, 15, 7, 196, 225, 92, 130, 100, 15, 7, 196,
-			42, 220, 130, 100, 15, 7, 196, 18, 220, 130, 100, 15, 8, 197, 105, 114, 103, 107, 32, 15, 6, 195, 66, 114, 128, 15, 6, 195, 10, 114,
-			128, 15, 0, 6, 195, 76, 229, 114, 15, 6, 195, 65, 53, 114, 15, 6, 195, 64, 17, 50, 15, 6, 195, 44, 229, 114, 15, 6, 195, 40,
-			17, 50, 15, 6, 195, 28, 20, 242, 15, 6, 195, 13, 165, 114, 15, 0, 9, 198, 92, 188, 149, 200, 38, 64, 15, 9, 198, 83, 37, 75,
-			200, 38, 64, 15, 9, 198, 83, 16, 200, 200, 38, 64, 15, 9, 198, 208, 210, 79, 200, 38, 64, 15, 9, 198, 79, 32, 66, 200, 38, 64,
-			15, 9, 198, 76, 188, 149, 200, 38, 64, 15, 9, 198, 51, 67, 137, 200, 38, 64, 15, 9, 198, 19, 113, 193, 200, 38, 64, 15, 9, 198,
-			17, 46, 1, 200, 38, 64, 15, 0, 10, 199, 104, 36, 154, 100, 76, 130, 100, 15, 10, 199, 77, 68, 154, 100, 124, 130, 100, 15, 10, 199,
-			12, 132, 154, 12, 156, 130, 100, 15, 0, 7, 196, 93, 4, 129, 92, 15, 6, 195, 73, 172, 120, 15, 0, 12, 201, 104, 210, 69, 73, 160,
-			200, 200, 38, 64, 15, 6, 195, 64, 146, 128, 15, 6, 195, 16, 18, 128, 15, 6, 195, 40, 82, 128, 72, 0, 6, 195, 17, 32, 80, 15,
-			0, 8, 197, 52, 144, 114, 7, 64, 76, 12, 68, 72, 145, 200, 80, 51, 35, 57, 47, 0, 13, 0, 0, 7, 195, 81, 147, 64, 72, 10,
-			18, 67, 57, 83, 64, 50, 40, 65, 55, 111, 49, 0, 81, 108, 111, 99, 107, 32, 0, 6, 195, 95, 32, 119, 15, 6, 195, 80, 179, 177,
-			15, 7, 196, 76, 188, 149, 40, 15, 6, 195, 52, 179, 177, 15, 10, 199, 13, 165, 5, 73, 148, 212, 84, 65, 0, 8, 197, 40, 84, 212,
-			20, 208, 76, 0, 0, 7, 196, 105, 54, 153, 40, 15, 7, 196, 76, 179, 5, 40, 15, 18, 67, 52, 243, 128, 65, 114, 91, 109, 51, 0,
-			66, 81, 99, 104, 101, 114, 32, 18, 67, 52, 243, 128, 65, 111, 50, 35, 65, 37, 0, 67, 81, 97, 109, 105, 32, 0, 10, 199, 16, 148,
-			195, 61, 97, 82, 100, 66, 0, 9, 198, 104, 226, 69, 52, 54, 128, 15, 9, 198, 81, 35, 211, 104, 54, 128, 15, 0, 6, 195, 64, 197,
-			74, 15, 0, 8, 197, 224, 115, 242, 9, 144, 15, 8, 197, 74, 116, 242, 9, 144, 15, 8, 197, 200, 115, 242, 9, 144, 15, 8, 197, 28,
-			155, 114, 9, 144, 15, 7, 196, 93, 2, 83, 104, 15, 6, 195, 13, 160, 201, 15, 16, 67, 52, 116, 128, 65, 35, 81, 6, 37, 89, 47,
-			109, 51, 0, 24, 0, 9, 198, 104, 217, 203, 200, 38, 64, 15, 9, 198, 104, 217, 199, 200, 38, 64, 15, 9, 198, 104, 114, 109, 200, 38,
-			64, 15, 9, 198, 104, 66, 173, 200, 38, 64, 15, 9, 198, 93, 162, 109, 200, 38, 64, 15, 9, 198, 92, 114, 109, 200, 38, 64, 15, 9,
-			198, 92, 50, 109, 200, 38, 64, 15, 9, 198, 208, 210, 65, 200, 38, 64, 15, 9, 198, 76, 179, 45, 200, 38, 64, 15, 9, 198, 48, 115,
-			173, 200, 38, 64, 15, 9, 198, 44, 204, 83, 200, 38, 64, 15, 0, 10, 199, 77, 68, 154, 20, 124, 130, 100, 15, 10, 199, 76, 180, 154,
-			21, 12, 130, 100, 15, 10, 199, 76, 50, 18, 101, 12, 130, 100, 15, 10, 199, 65, 53, 18, 105, 156, 130, 100, 15, 10, 199, 29, 38, 141,
-			36, 252, 130, 100, 15, 10, 199, 29, 38, 141, 36, 28, 130, 100, 15, 10, 199, 9, 38, 141, 36, 252, 130, 100, 15, 10, 199, 9, 38, 141,
-			36, 28, 130, 100, 15, 0, 6, 195, 105, 112, 110, 15, 6, 195, 104, 144, 110, 15, 6, 195, 92, 144, 110, 15, 6, 195, 44, 20, 174, 15,
-			0, 6, 195, 224, 115, 238, 15, 7, 196, 76, 147, 210, 8, 15, 11, 200, 77, 161, 116, 12, 149, 83, 21, 64, 65, 9, 198, 52, 18, 211,
-			36, 213, 77, 65, 0, 7, 196, 44, 195, 137, 20, 15, 0, 8, 197, 105, 114, 69, 222, 224, 15, 16, 3, 226, 132, 162, 47, 51, 6, 109,
-			57, 72, 65, 35, 51, 49, 0, 0, 6, 195, 105, 114, 110, 15, 6, 195, 77, 48, 110, 15, 6, 195, 73, 112, 110, 15, 0, 0, 7, 196,
-			209, 2, 83, 104, 15, 0, 8, 197, 104, 116, 153, 222, 224, 15, 8, 197, 76, 50, 12, 60, 208, 15, 9, 198, 56, 145, 75, 82, 116, 173,
-			76, 0, 7, 196, 67, 41, 196, 220, 15, 0, 6, 195, 104, 227, 242, 15, 6, 195, 104, 195, 242, 15, 7, 196, 93, 160, 137, 40, 15, 6,
-			195, 65, 35, 242, 15, 6, 195, 29, 35, 242, 15, 10, 67, 12, 243, 1, 49, 111, 55, 35, 0, 0, 0, 9, 198, 93, 64, 83, 104, 54,
-			128, 15, 9, 198, 93, 54, 133, 64, 54, 128, 15, 9, 198, 44, 192, 83, 104, 54, 128, 15, 12, 68, 54, 180, 204, 36, 65, 40, 89, 55,
-			37, 0, 0, 6, 195, 77, 2, 74, 15, 6, 195, 40, 81, 26, 15, 5, 194, 8, 240, 8, 9, 198, 52, 147, 137, 53, 83, 64, 65, 0,
-			6, 195, 76, 181, 114, 15, 6, 195, 76, 144, 114, 15, 0, 0, 15, 70, 52, 21, 82, 20, 83, 128, 65, 111, 51, 6, 37, 50, 0, 0,
-			0, 0, 7, 196, 208, 226, 83, 104, 15, 0, 0, 7, 196, 104, 214, 116, 48, 15, 9, 198, 75, 131, 137, 21, 54, 128, 15, 0, 0, 12,
-			68, 40, 84, 146, 100, 75, 109, 51, 112, 0, 46, 10, 68, 40, 84, 146, 100, 75, 109, 51, 0, 0, 15, 67, 65, 35, 195, 48, 34, 6,
-			111, 117, 109, 50, 47, 0, 24, 0, 0, 7, 196, 104, 36, 143, 40, 15, 7, 196, 9, 166, 67, 104, 15, 20, 68, 65, 38, 133, 104, 48,
-			91, 6, 109, 88, 67, 38, 109, 0, 81, 110, 105, 101, 32, 21, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 67, 37, 107, 0, 81, 110,
-			105, 99, 104, 32, 20, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 84, 35, 89, 0, 81, 119, 97, 115, 32, 21, 68, 65, 38, 133, 104,
-			48, 91, 6, 109, 89, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 18, 68, 65, 38, 133, 104, 48, 91, 6, 109, 89, 47, 111, 0, 81,
-			116, 111, 32, 18, 68, 65, 38, 133, 104, 48, 91, 6, 109, 89, 47, 109, 0, 81, 116, 101, 32, 19, 68, 65, 38, 133, 104, 48, 91, 6,
-			109, 89, 47, 114, 0, 81, 116, 196, 133, 32, 21, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 67, 38, 114, 0, 81, 110, 105, 196, 133,
-			32, 20, 68, 65, 38, 133, 104, 48, 91, 6, 109, 88, 50, 35, 89, 0, 81, 110, 97, 115, 32, 0, 0, 0, 6, 195, 46, 114, 128, 15,
-			6, 195, 29, 32, 74, 15, 6, 195, 13, 160, 74, 15, 0, 6, 195, 92, 64, 64, 15, 6, 195, 80, 203, 64, 15, 6, 195, 17, 144, 128,
-			15, 6, 195, 12, 203, 64, 15, 0, 0, 6, 195, 77, 155, 128, 15, 6, 195, 57, 91, 128, 15, 6, 195, 53, 155, 128, 15, 0, 0, 6,
-			195, 104, 157, 46, 15, 6, 195, 67, 35, 238, 15, 6, 195, 200, 179, 238, 15, 6, 195, 200, 115, 238, 15, 6, 195, 40, 93, 46, 15, 6,
-			195, 28, 253, 46, 15, 6, 195, 11, 35, 238, 15, 6, 195, 76, 64, 64, 13, 0, 7, 196, 45, 32, 116, 184, 15, 7, 196, 52, 16, 201,
-			20, 76, 0, 4, 193, 148, 43, 4, 193, 148, 43, 0, 9, 198, 65, 38, 153, 43, 75, 128, 15, 9, 198, 65, 38, 133, 43, 75, 128, 15,
-			0, 6, 195, 79, 35, 238, 15, 6, 195, 64, 253, 46, 15, 6, 195, 52, 29, 46, 15, 22, 73, 52, 17, 5, 52, 242, 83, 20, 195, 5,
-			65, 35, 72, 65, 40, 35, 88, 6, 109, 55, 0, 0, 7, 196, 19, 113, 207, 184, 15, 0, 7, 196, 104, 36, 153, 48, 15, 6, 195, 93,
-			53, 115, 15, 0, 8, 197, 104, 147, 242, 9, 144, 15, 8, 197, 29, 35, 242, 9, 144, 15, 0, 16, 67, 52, 195, 5, 65, 35, 72, 65,
-			40, 35, 88, 6, 109, 55, 0, 10, 67, 40, 19, 133, 75, 109, 57, 50, 0, 0, 6, 195, 75, 131, 242, 15, 0, 0, 6, 195, 93, 2,
-			74, 15, 5, 194, 40, 16, 76, 0, 6, 195, 81, 146, 128, 15, 6, 195, 29, 32, 77, 15, 6, 195, 12, 194, 64, 15, 0, 6, 195, 224,
-			115, 242, 15, 6, 195, 92, 181, 80, 15, 8, 197, 92, 50, 50, 63, 48, 15, 6, 195, 200, 179, 242, 15, 6, 195, 200, 115, 242, 15, 6,
-			195, 36, 50, 0, 72, 0, 7, 196, 92, 180, 143, 64, 15, 7, 196, 83, 37, 75, 200, 15, 17, 4, 95, 111, 103, 111, 88, 111, 81, 6,
-			111, 50, 80, 38, 109, 65, 0, 0, 0, 9, 198, 95, 64, 201, 20, 188, 128, 15, 0, 0, 0, 16, 67, 65, 35, 198, 48, 51, 111, 83,
-			6, 109, 89, 111, 51, 0, 24, 0, 19, 71, 21, 99, 204, 85, 66, 79, 56, 109, 84, 111, 55, 6, 40, 91, 112, 50, 0, 0, 0, 8,
-			197, 19, 113, 206, 36, 160, 15, 0, 6, 195, 73, 114, 74, 15, 0, 7, 196, 105, 112, 82, 104, 15, 7, 196, 104, 64, 82, 104, 15, 15,
-			70, 12, 243, 84, 21, 52, 197, 49, 114, 47, 6, 109, 89, 0, 0, 0, 10, 199, 56, 145, 75, 82, 116, 154, 100, 76, 0, 0, 6, 195,
-			64, 235, 64, 15, 6, 195, 28, 235, 64, 15, 0, 6, 195, 225, 43, 64, 15, 0, 6, 195, 93, 155, 128, 15, 6, 195, 73, 155, 128, 15,
-			6, 195, 45, 91, 128, 15, 6, 195, 17, 91, 128, 15, 6, 195, 13, 91, 128, 15, 6, 195, 9, 155, 128, 15, 17, 70, 12, 243, 5, 76,
-			192, 87, 49, 111, 55, 109, 89, 55, 111, 58, 0, 6, 195, 9, 155, 128, 76, 0, 0, 6, 195, 64, 29, 46, 15, 6, 195, 52, 253, 46,
-			15, 0, 12, 68, 17, 34, 86, 20, 72, 34, 35, 57, 84, 0, 0, 9, 198, 12, 132, 154, 12, 155, 128, 15, 18, 67, 37, 65, 0, 37,
-			15, 47, 35, 49, 15, 72, 35, 55, 109, 57, 0, 24, 0, 7, 196, 105, 38, 133, 12, 15, 7, 196, 77, 2, 69, 12, 15, 6, 195, 64,
-			144, 110, 15, 6, 195, 45, 38, 110, 15, 14, 4, 95, 98, 114, 118, 71, 51, 6, 109, 84, 37, 89, 0, 0, 8, 197, 95, 64, 201, 20,
-			192, 15, 6, 195, 92, 116, 129, 15, 6, 195, 47, 35, 244, 15, 6, 195, 41, 81, 55, 15, 9, 67, 56, 85, 192, 67, 38, 40, 0, 10,
-			199, 28, 83, 148, 48, 83, 65, 56, 65, 0, 7, 196, 104, 128, 115, 8, 15, 0, 8, 197, 93, 161, 74, 210, 224, 15, 15, 67, 45, 5,
-			0, 49, 35, 48, 6, 37, 47, 35, 50, 0, 24, 10, 199, 12, 19, 129, 88, 84, 129, 48, 66, 0, 6, 195, 77, 50, 74, 15, 21, 67,
-			37, 68, 0, 37, 15, 47, 109, 65, 40, 15, 48, 111, 72, 111, 71, 50, 109, 0, 24, 21, 4, 95, 97, 99, 50, 101, 4, 40, 68, 81,
-			35, 51, 6, 40, 65, 55, 35, 58, 47, 0, 0, 6, 195, 80, 195, 242, 15, 7, 196, 52, 179, 137, 40, 15, 7, 196, 48, 115, 173, 12,
-			15, 0, 6, 195, 18, 222, 0, 15, 0, 7, 196, 104, 217, 203, 200, 15, 7, 196, 17, 46, 15, 200, 15, 10, 199, 52, 145, 76, 39, 64,
-			201, 20, 76, 0, 8, 197, 93, 50, 109, 47, 32, 15, 5, 194, 16, 240, 76, 8, 197, 8, 16, 129, 12, 128, 66, 0, 6, 195, 225, 43,
-			67, 15, 7, 196, 52, 67, 45, 12, 15, 7, 196, 13, 162, 193, 40, 15, 0, 7, 196, 208, 226, 109, 12, 15, 7, 196, 208, 210, 109, 12,
-			15, 7, 196, 75, 131, 173, 12, 15, 7, 196, 45, 114, 84, 200, 15, 0, 8, 197, 104, 35, 1, 19, 32, 15, 8, 197, 92, 180, 129, 19,
-			32, 15, 8, 197, 76, 50, 12, 63, 32, 15, 9, 198, 65, 53, 18, 106, 208, 192, 15, 9, 198, 53, 54, 131, 106, 208, 192, 15, 9, 198,
-			9, 38, 141, 38, 208, 192, 15, 0, 8, 197, 208, 50, 69, 47, 32, 15, 9, 198, 77, 4, 154, 100, 180, 154, 15, 0, 11, 200, 76, 140,
-			153, 9, 157, 3, 36, 80, 15, 14, 69, 4, 225, 18, 21, 112, 109, 50, 72, 34, 57, 40, 0, 0, 12, 68, 4, 66, 69, 84, 35, 72,
-			57, 6, 109, 0, 0, 7, 196, 95, 41, 195, 104, 15, 0, 0, 6, 195, 92, 193, 119, 15, 6, 195, 31, 35, 244, 15, 0, 7, 196, 104,
-			124, 143, 208, 15, 0, 0, 8, 197, 65, 53, 18, 107, 16, 15, 0, 6, 195, 105, 41, 194, 15, 6, 195, 104, 73, 194, 15, 7, 196, 92,
-			116, 129, 40, 15, 15, 70, 12, 243, 12, 132, 113, 64, 49, 111, 55, 109, 90, 0, 66, 0, 8, 197, 104, 36, 143, 13, 160, 15, 7, 196,
-			77, 3, 1, 52, 15, 8, 197, 76, 53, 75, 73, 160, 15, 8, 197, 64, 50, 14, 36, 160, 15, 6, 195, 44, 30, 0, 15, 0, 0, 6,
-			195, 13, 165, 74, 15, 6, 195, 9, 144, 218, 15, 0, 16, 3, 95, 51, 88, 47, 91, 112, 120, 6, 109, 97, 80, 38, 37, 0, 0, 6,
-			195, 72, 252, 192, 15, 6, 195, 72, 28, 192, 15, 6, 195, 52, 156, 192, 15, 0, 7, 196, 80, 181, 201, 180, 15, 7, 196, 17, 37, 201,
-			180, 15, 0, 6, 195, 54, 219, 128, 15, 6, 195, 39, 75, 128, 15, 10, 199, 64, 156, 67, 37, 84, 197, 80, 65, 0, 6, 195, 105, 115,
-			247, 15, 6, 195, 46, 212, 218, 15, 9, 198, 12, 132, 154, 13, 171, 64, 15, 0, 0, 9, 198, 80, 50, 14, 36, 91, 128, 15, 9, 198,
-			29, 38, 141, 36, 91, 128, 15, 7, 196, 9, 156, 133, 52, 76, 27, 68, 76, 245, 78, 16, 89, 35, 58, 50, 72, 15, 75, 6, 40, 89,
-			109, 51, 0, 81, 106, 117, 105, 99, 101, 114, 32, 0, 7, 196, 104, 34, 69, 12, 15, 6, 195, 81, 156, 128, 15, 9, 198, 209, 114, 65,
-			16, 54, 128, 15, 9, 198, 65, 53, 18, 105, 148, 218, 15, 6, 195, 53, 156, 128, 15, 0, 11, 200, 76, 50, 50, 100, 38, 116, 53, 144,
-			15, 6, 195, 104, 116, 129, 15, 6, 195, 47, 37, 74, 15, 6, 195, 40, 81, 55, 15, 6, 195, 12, 81, 55, 15, 0, 10, 3, 95, 49,
-			67, 89, 47, 6, 111, 0, 0, 0, 8, 197, 77, 172, 153, 9, 144, 15, 7, 196, 104, 210, 69, 204, 15, 0, 7, 196, 93, 67, 195, 104,
-			15, 7, 196, 44, 195, 137, 40, 15, 7, 196, 9, 35, 173, 12, 15, 0, 7, 196, 93, 64, 82, 200, 15, 7, 196, 92, 64, 82, 200, 15,
-			8, 197, 80, 181, 201, 180, 48, 15, 8, 197, 80, 50, 14, 180, 48, 15, 8, 197, 76, 50, 14, 180, 48, 15, 7, 196, 45, 32, 68, 200,
-			15, 8, 197, 17, 37, 201, 180, 48, 15, 0, 0, 6, 195, 105, 165, 74, 15, 5, 194, 40, 80, 15, 18, 3, 95, 49, 57, 120, 109, 84,
-			38, 109, 47, 50, 6, 35, 97, 119, 109, 0, 0, 8, 197, 93, 160, 146, 63, 48, 15, 9, 198, 64, 145, 82, 104, 50, 50, 15, 7, 196,
-			64, 50, 1, 40, 15, 7, 196, 52, 179, 173, 12, 15, 8, 197, 12, 132, 154, 7, 48, 15, 16, 3, 95, 49, 56, 111, 97, 109, 65, 50,
-			6, 35, 97, 119, 109, 0, 0, 7, 196, 105, 64, 82, 200, 15, 6, 195, 105, 54, 80, 15, 7, 196, 104, 192, 90, 200, 15, 7, 196, 104,
-			112, 68, 200, 15, 7, 196, 104, 64, 82, 200, 15, 8, 197, 76, 50, 12, 4, 160, 15, 7, 196, 29, 38, 90, 200, 15, 15, 3, 95, 50,
-			67, 72, 84, 38, 6, 109, 97, 80, 38, 109, 0, 0, 9, 198, 77, 172, 153, 208, 50, 69, 15, 8, 197, 104, 116, 153, 107, 32, 15, 8,
-			197, 104, 34, 69, 31, 32, 15, 8, 197, 93, 50, 79, 19, 32, 15, 8, 197, 92, 50, 69, 47, 32, 15, 8, 197, 76, 180, 154, 103, 32,
-			15, 8, 197, 51, 67, 137, 180, 48, 15, 8, 197, 45, 38, 133, 67, 32, 15, 8, 197, 12, 133, 201, 63, 32, 15, 8, 197, 12, 133, 201,
-			7, 32, 15, 8, 197, 12, 128, 201, 63, 32, 15, 0, 7, 196, 93, 53, 1, 92, 15, 0, 11, 200, 77, 172, 153, 9, 157, 3, 36, 80,
-			15, 0, 0, 9, 198, 76, 50, 50, 103, 67, 89, 15, 7, 196, 9, 156, 129, 52, 76, 0, 16, 3, 95, 49, 49, 57, 109, 72, 109, 50,
-			6, 35, 97, 119, 109, 0, 0, 6, 195, 107, 41, 248, 15, 6, 195, 95, 41, 248, 15, 6, 195, 92, 145, 119, 15, 6, 195, 92, 17, 55,
-			15, 13, 3, 95, 49, 48, 120, 6, 109, 97, 109, 67, 119, 0, 0, 6, 195, 93, 69, 76, 15, 9, 198, 11, 17, 26, 36, 83, 89, 76,
-			13, 3, 95, 51, 67, 47, 91, 6, 112, 89, 47, 35, 0, 15, 3, 95, 49, 51, 47, 91, 112, 50, 6, 35, 97, 119, 109, 0, 0, 8,
-			197, 77, 12, 129, 13, 160, 15, 8, 197, 76, 179, 243, 13, 160, 15, 8, 197, 56, 147, 243, 13, 160, 15, 7, 196, 17, 37, 201, 196, 15,
-			8, 197, 9, 38, 177, 13, 160, 15, 15, 3, 95, 49, 50, 72, 84, 35, 50, 6, 35, 97, 119, 109, 0, 0, 8, 197, 105, 38, 114, 9,
-			144, 15, 8, 197, 104, 227, 242, 9, 144, 15, 8, 197, 81, 37, 114, 9, 144, 15, 8, 197, 65, 35, 242, 9, 144, 15, 8, 197, 45, 2,
-			114, 9, 144, 15, 16, 3, 95, 49, 53, 48, 57, 109, 47, 50, 6, 35, 97, 119, 109, 0, 0, 7, 196, 104, 64, 83, 104, 15, 16, 3,
-			95, 49, 52, 76, 47, 109, 51, 50, 6, 35, 97, 119, 109, 0, 0, 17, 3, 95, 49, 55, 97, 109, 72, 109, 65, 50, 6, 35, 97, 119,
-			109, 0, 0, 15, 3, 95, 49, 54, 91, 109, 89, 50, 6, 35, 97, 119, 109, 0, 0, 6, 195, 93, 165, 74, 15, 7, 196, 13, 172, 129,
-			64, 15, 0, 6, 195, 225, 33, 64, 15, 7, 196, 45, 32, 67, 104, 15, 13, 67, 81, 148, 192, 47, 112, 97, 113, 117, 112, 0, 24, 18,
-			3, 95, 55, 88, 97, 109, 72, 109, 65, 120, 6, 109, 97, 111, 50, 47, 0, 0, 6, 195, 92, 156, 192, 15, 6, 195, 80, 252, 192, 15,
-			6, 195, 75, 139, 64, 15, 6, 195, 28, 252, 192, 15, 6, 195, 28, 156, 192, 15, 15, 3, 95, 52, 67, 76, 47, 6, 109, 51, 112, 89,
-			47, 35, 0, 0, 0, 6, 195, 76, 179, 244, 15, 0, 7, 196, 93, 163, 143, 208, 15, 9, 198, 93, 54, 131, 104, 235, 64, 15, 0, 6,
-			195, 224, 112, 77, 15, 7, 196, 93, 12, 143, 184, 15, 6, 195, 47, 32, 77, 15, 0, 8, 197, 76, 50, 15, 19, 112, 15, 0, 6, 195,
-			93, 156, 128, 15, 9, 198, 93, 54, 131, 104, 226, 74, 15, 6, 195, 92, 69, 116, 15, 6, 195, 73, 156, 128, 15, 6, 195, 45, 92, 128,
-			15, 6, 195, 17, 92, 128, 15, 6, 195, 9, 156, 128, 15, 6, 195, 9, 156, 128, 76, 0, 7, 196, 104, 226, 69, 208, 15, 6, 195, 208,
-			226, 74, 15, 0, 7, 196, 56, 145, 116, 184, 15, 15, 3, 95, 53, 67, 48, 38, 6, 109, 67, 119, 89, 109, 47, 0, 0, 7, 196, 80,
-			181, 201, 196, 15, 7, 196, 77, 162, 207, 48, 15, 7, 196, 11, 113, 26, 36, 15, 0, 8, 197, 92, 34, 114, 9, 144, 15, 8, 197, 80,
-			194, 114, 9, 144, 15, 8, 197, 80, 179, 242, 9, 144, 15, 8, 197, 76, 147, 242, 9, 144, 15, 8, 197, 52, 147, 242, 9, 144, 15, 8,
-			197, 44, 148, 242, 9, 144, 15, 8, 197, 28, 226, 114, 9, 144, 15, 8, 197, 12, 226, 114, 9, 144, 15, 7, 196, 93, 53, 1, 204, 15,
-			8, 197, 29, 38, 141, 39, 16, 15, 0, 6, 195, 12, 204, 64, 15, 22, 72, 77, 8, 131, 36, 19, 9, 82, 32, 89, 48, 109, 89, 57,
-			35, 55, 37, 47, 6, 109, 0, 14, 4, 95, 97, 99, 117, 10, 6, 111, 89, 47, 51, 109, 0, 0, 7, 196, 92, 192, 90, 200, 15, 8,
-			197, 80, 50, 14, 36, 160, 15, 7, 196, 77, 161, 68, 200, 15, 8, 197, 76, 50, 14, 36, 160, 15, 0, 7, 196, 19, 113, 207, 200, 15,
-			0, 6, 195, 227, 35, 208, 15, 6, 195, 105, 38, 74, 15, 7, 196, 77, 68, 143, 204, 15, 8, 197, 65, 38, 173, 19, 32, 15, 5, 194,
-			52, 16, 15, 6, 195, 45, 2, 74, 15, 5, 194, 52, 16, 76, 0, 0, 7, 196, 73, 161, 68, 200, 15, 7, 196, 65, 80, 200, 200, 15,
-			7, 196, 12, 133, 68, 200, 15, 4, 193, 160, 43, 4, 193, 160, 43, 13, 3, 95, 54, 67, 91, 6, 109, 97, 89, 109, 47, 0, 0, 8,
-			197, 105, 115, 5, 47, 32, 15, 8, 197, 105, 38, 133, 47, 32, 15, 8, 197, 105, 38, 133, 19, 32, 15, 8, 197, 104, 35, 1, 47, 32,
-			15, 8, 197, 92, 116, 153, 107, 32, 15, 8, 197, 92, 34, 69, 31, 32, 15, 8, 197, 77, 162, 204, 39, 32, 15, 8, 197, 77, 160, 218,
-			87, 32, 15, 8, 197, 77, 160, 218, 63, 32, 15, 8, 197, 77, 4, 201, 63, 32, 15, 8, 197, 77, 2, 69, 47, 32, 15, 8, 197, 76,
-			50, 12, 7, 32, 15, 7, 196, 12, 131, 1, 64, 15, 0, 8, 197, 105, 114, 109, 19, 32, 15, 6, 195, 28, 20, 130, 15, 0, 8, 197,
-			77, 160, 218, 101, 0, 15, 6, 195, 53, 35, 247, 15, 0, 7, 196, 104, 18, 132, 220, 15, 10, 199, 77, 2, 69, 73, 160, 200, 200, 15,
-			0, 8, 197, 76, 145, 82, 19, 112, 15, 0, 9, 198, 65, 38, 133, 40, 77, 192, 15, 6, 195, 56, 145, 116, 15, 6, 195, 52, 145, 116,
-			15, 0, 7, 196, 76, 181, 193, 208, 15, 15, 3, 95, 50, 88, 72, 84, 35, 120, 6, 109, 97, 119, 35, 0, 0, 7, 196, 105, 35, 196,
-			220, 15, 8, 197, 93, 163, 137, 23, 64, 15, 7, 196, 92, 82, 132, 220, 15, 7, 196, 9, 35, 196, 220, 15, 16, 5, 95, 48, 77, 65,
-			49, 47, 112, 97, 6, 111, 50, 117, 109, 0, 15, 3, 95, 55, 67, 97, 6, 109, 72, 109, 65, 89, 109, 47, 0, 0, 8, 197, 92, 145,
-			115, 13, 160, 15, 8, 197, 94, 229, 201, 13, 160, 15, 8, 197, 77, 76, 143, 13, 160, 15, 0, 8, 197, 104, 214, 114, 9, 144, 15, 8,
-			197, 104, 195, 242, 9, 144, 15, 8, 197, 93, 38, 114, 9, 144, 15, 8, 197, 80, 195, 242, 9, 144, 15, 8, 197, 77, 166, 114, 9, 144,
-			15, 8, 197, 77, 172, 129, 9, 144, 15, 8, 197, 45, 38, 114, 9, 144, 15, 8, 197, 28, 227, 242, 9, 144, 15, 18, 5, 95, 48, 77,
-			65, 51, 65, 38, 37, 55, 57, 6, 35, 51, 72, 112, 0, 0, 6, 195, 80, 204, 64, 15, 7, 196, 9, 35, 137, 40, 15, 17, 5, 95,
-			48, 77, 65, 50, 65, 38, 37, 55, 57, 6, 111, 50, 112, 0, 0, 8, 197, 76, 179, 14, 36, 160, 15, 8, 197, 76, 50, 12, 20, 160,
-			15, 7, 196, 64, 50, 15, 52, 15, 6, 195, 52, 30, 0, 15, 0, 17, 5, 95, 48, 77, 65, 52, 71, 38, 37, 55, 57, 6, 111, 50,
-			112, 0, 0, 6, 195, 93, 38, 74, 15, 6, 195, 77, 166, 74, 15, 0, 6, 195, 80, 176, 64, 15, 0, 6, 195, 200, 176, 77, 15, 8,
-			197, 9, 161, 21, 73, 160, 15, 11, 68, 4, 194, 67, 20, 109, 55, 37, 89, 0, 14, 3, 95, 56, 67, 6, 111, 97, 109, 65, 89, 109,
-			47, 0, 0, 6, 195, 45, 93, 0, 15, 10, 199, 76, 145, 68, 20, 212, 197, 80, 65, 0, 6, 195, 104, 227, 244, 15, 6, 195, 65, 35,
-			244, 15, 7, 196, 51, 67, 137, 180, 15, 0, 8, 197, 77, 68, 154, 23, 128, 15, 8, 197, 17, 162, 69, 75, 128, 15, 0, 7, 196, 104,
-			82, 132, 220, 15, 7, 196, 56, 18, 132, 220, 15, 6, 195, 203, 129, 64, 15, 6, 195, 45, 2, 109, 15, 12, 3, 95, 63, 63, 89, 112,
-			65, 71, 111, 55, 0, 0, 7, 196, 209, 114, 113, 184, 15, 8, 197, 76, 212, 143, 19, 112, 15, 0, 7, 196, 93, 50, 193, 224, 15, 9,
-			198, 81, 114, 69, 72, 77, 192, 15, 6, 195, 76, 181, 116, 15, 9, 198, 65, 38, 153, 40, 77, 192, 15, 7, 196, 11, 43, 68, 220, 15,
-			7, 196, 44, 243, 1, 224, 66, 0, 6, 195, 81, 37, 193, 15, 6, 195, 208, 226, 110, 15, 6, 195, 76, 220, 110, 15, 17, 3, 95, 52,
-			88, 76, 47, 109, 51, 120, 6, 109, 97, 80, 38, 37, 0, 0, 7, 196, 105, 114, 68, 220, 15, 7, 196, 92, 114, 113, 184, 15, 7, 196,
-			81, 37, 207, 52, 15, 7, 196, 77, 12, 153, 184, 15, 7, 196, 64, 197, 207, 52, 15, 7, 196, 55, 64, 201, 184, 15, 7, 196, 17, 33,
-			207, 52, 15, 17, 3, 95, 57, 67, 120, 6, 109, 84, 38, 109, 67, 119, 89, 109, 47, 0, 0, 7, 196, 105, 124, 68, 220, 15, 7, 196,
-			52, 144, 114, 100, 76, 0, 8, 197, 104, 38, 114, 9, 144, 15, 8, 197, 104, 34, 114, 9, 144, 15, 8, 197, 92, 181, 114, 9, 144, 15,
-			8, 197, 77, 2, 114, 9, 144, 15, 8, 197, 56, 146, 242, 9, 144, 15, 8, 197, 48, 22, 178, 9, 144, 15, 6, 195, 104, 217, 215, 15,
-			8, 197, 75, 131, 137, 198, 224, 15, 0, 6, 195, 64, 236, 64, 15, 9, 198, 19, 113, 206, 39, 27, 128, 15, 9, 67, 76, 148, 133, 89,
-			37, 51, 0, 0, 6, 195, 208, 226, 114, 15, 0, 18, 67, 56, 17, 0, 50, 6, 35, 72, 84, 35, 89, 0, 81, 119, 97, 115, 32, 18,
-			67, 56, 17, 0, 50, 6, 35, 47, 47, 112, 65, 0, 81, 116, 121, 109, 32, 16, 67, 56, 17, 0, 50, 6, 35, 47, 47, 111, 0, 81,
-			116, 111, 32, 16, 67, 56, 17, 0, 50, 6, 35, 47, 47, 109, 0, 81, 116, 101, 32, 17, 67, 56, 17, 0, 50, 6, 35, 47, 47, 114,
-			0, 81, 116, 196, 133, 32, 18, 67, 56, 17, 0, 50, 6, 35, 72, 67, 38, 109, 0, 81, 110, 105, 101, 32, 19, 67, 56, 17, 0, 50,
-			6, 35, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 18, 67, 56, 17, 0, 50, 6, 35, 72, 67, 37, 65, 0, 81, 110, 105, 109,
-			32, 19, 67, 56, 17, 0, 50, 6, 35, 72, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 18, 67, 56, 17, 0, 50, 6, 35, 72, 50,
-			35, 89, 0, 81, 110, 97, 115, 32, 6, 195, 56, 17, 0, 76, 0, 16, 66, 56, 16, 50, 6, 35, 84, 35, 89, 0, 81, 119, 97, 115,
-			32, 17, 66, 56, 16, 50, 6, 35, 47, 112, 65, 10, 0, 81, 116, 121, 109, 32, 17, 66, 56, 16, 50, 6, 35, 47, 112, 107, 0, 81,
-			116, 121, 99, 104, 32, 14, 66, 56, 16, 50, 6, 35, 47, 111, 0, 81, 116, 111, 32, 14, 66, 56, 16, 50, 6, 35, 47, 109, 0, 81,
-			116, 101, 32, 15, 66, 56, 16, 50, 6, 35, 47, 114, 0, 81, 116, 196, 133, 32, 17, 66, 56, 16, 50, 6, 35, 67, 38, 114, 0, 81,
-			110, 105, 196, 133, 32, 16, 66, 56, 16, 50, 6, 35, 67, 38, 109, 0, 81, 110, 105, 101, 32, 17, 66, 56, 16, 50, 6, 35, 67, 37,
-			107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 56, 16, 50, 6, 35, 67, 37, 65, 0, 81, 110, 105, 109, 32, 18, 66, 56, 16, 50, 6,
-			35, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 16, 66, 56, 16, 50, 6, 35, 50, 35, 89, 0, 81, 110, 97, 115, 32, 18, 66,
-			56, 16, 50, 6, 35, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 5, 194, 56, 16, 76, 0, 6, 195, 28, 243, 0, 15, 6, 195,
-			28, 236, 66, 15, 17, 3, 95, 53, 88, 48, 38, 109, 67, 120, 6, 109, 97, 111, 50, 47, 0, 0, 8, 197, 92, 145, 84, 73, 160, 15,
-			8, 197, 77, 68, 129, 77, 160, 15, 8, 197, 64, 145, 80, 73, 160, 15, 0, 16, 4, 95, 114, 110, 103, 88, 49, 6, 40, 58, 80, 38,
-			109, 65, 0, 0, 0, 0, 6, 195, 107, 32, 77, 15, 7, 196, 93, 48, 68, 220, 15, 7, 196, 93, 35, 196, 220, 15, 7, 196, 29, 35,
-			196, 220, 15, 6, 195, 9, 156, 129, 76, 0, 8, 197, 77, 162, 207, 19, 112, 15, 0, 9, 198, 104, 36, 154, 100, 77, 192, 15, 9, 198,
-			77, 2, 69, 72, 77, 192, 15, 0, 15, 67, 81, 163, 128, 47, 111, 15, 88, 50, 35, 76, 112, 0, 24, 6, 195, 76, 156, 64, 72, 16,
-			3, 95, 54, 88, 91, 109, 96, 120, 6, 109, 97, 111, 50, 47, 0, 0, 7, 196, 105, 48, 68, 220, 15, 7, 196, 92, 161, 68, 220, 15,
-			6, 195, 77, 67, 49, 15, 7, 196, 13, 162, 207, 52, 15, 0, 0, 4, 193, 164, 43, 4, 193, 164, 43, 0, 6, 195, 52, 19, 64, 15,
-			6, 195, 28, 236, 64, 15, 9, 198, 19, 117, 201, 196, 54, 128, 15, 8, 197, 12, 140, 167, 19, 112, 15, 6, 195, 52, 19, 64, 76, 0,
-			8, 197, 93, 50, 207, 13, 160, 15, 9, 198, 76, 50, 50, 156, 77, 192, 15, 6, 195, 48, 94, 0, 15, 6, 195, 45, 114, 76, 15, 6,
-			195, 19, 113, 193, 15, 0, 0, 6, 195, 33, 80, 218, 15, 0, 18, 72, 8, 80, 85, 40, 243, 1, 37, 48, 71, 111, 90, 111, 55, 6,
-			109, 0, 0, 8, 197, 12, 131, 85, 73, 160, 15, 8, 197, 12, 128, 197, 77, 160, 15, 0, 15, 69, 21, 48, 193, 64, 80, 109, 89, 49,
-			6, 109, 57, 48, 0, 0, 0, 7, 196, 77, 4, 177, 224, 15, 0, 7, 196, 104, 161, 68, 220, 15, 7, 196, 104, 114, 109, 184, 15, 7,
-			196, 52, 179, 173, 184, 15, 7, 196, 51, 67, 137, 184, 15, 6, 195, 48, 115, 173, 15, 0, 8, 197, 64, 50, 14, 182, 224, 15, 8, 197,
-			11, 113, 26, 38, 224, 15, 9, 198, 52, 144, 114, 103, 67, 89, 76, 15, 69, 16, 83, 5, 80, 80, 72, 37, 55, 6, 109, 57, 47, 0,
-			0, 9, 198, 93, 38, 133, 77, 160, 218, 15, 6, 195, 76, 144, 110, 15, 21, 73, 88, 147, 129, 36, 116, 133, 81, 65, 64, 58, 37, 50,
-			109, 81, 34, 109, 47, 0, 67, 0, 9, 198, 77, 12, 129, 77, 160, 218, 15, 17, 3, 95, 56, 88, 111, 97, 109, 65, 120, 6, 109, 97,
-			111, 50, 47, 0, 0, 7, 196, 93, 68, 167, 40, 15, 6, 195, 74, 113, 55, 15, 6, 195, 201, 81, 55, 15, 6, 195, 10, 113, 55, 15,
-			0, 8, 197, 80, 50, 14, 182, 224, 15, 8, 197, 76, 50, 14, 182, 224, 15, 0, 6, 195, 95, 129, 115, 15, 0, 7, 196, 104, 37, 82,
-			104, 15, 6, 195, 92, 195, 242, 15, 7, 196, 77, 76, 149, 12, 15, 11, 200, 56, 145, 75, 82, 116, 153, 12, 128, 76, 0, 8, 197, 64,
-			197, 193, 77, 160, 15, 0, 7, 196, 55, 64, 201, 200, 15, 19, 67, 12, 20, 19, 49, 35, 48, 89, 55, 111, 49, 0, 81, 108, 111, 99,
-			107, 32, 0, 8, 197, 11, 113, 26, 39, 32, 15, 5, 194, 36, 208, 72, 0, 8, 197, 208, 226, 114, 9, 144, 15, 8, 197, 47, 37, 114,
-			9, 144, 15, 6, 195, 81, 37, 114, 15, 8, 197, 77, 68, 151, 63, 48, 15, 7, 196, 77, 4, 149, 40, 15, 7, 196, 77, 12, 153, 204,
-			15, 7, 196, 17, 38, 153, 40, 15, 7, 196, 17, 33, 193, 40, 15, 19, 3, 95, 57, 88, 120, 109, 84, 38, 109, 67, 120, 6, 109, 97,
-			111, 50, 47, 0, 0, 9, 198, 104, 210, 76, 47, 32, 153, 15, 8, 197, 104, 34, 69, 73, 160, 15, 8, 197, 77, 2, 69, 77, 160, 15,
-			8, 197, 77, 2, 69, 13, 160, 15, 7, 196, 76, 144, 68, 200, 15, 0, 8, 197, 104, 65, 67, 35, 32, 15, 8, 197, 93, 50, 65, 19,
-			32, 15, 10, 67, 12, 149, 15, 117, 37, 47, 111, 0, 0, 11, 200, 64, 145, 82, 104, 50, 50, 9, 144, 15, 0, 0, 7, 196, 104, 229,
-			68, 220, 15, 16, 70, 8, 16, 203, 92, 20, 132, 71, 109, 49, 58, 109, 51, 72, 0, 0, 8, 197, 105, 114, 69, 19, 112, 15, 6, 195,
-			105, 112, 120, 15, 8, 197, 104, 36, 149, 19, 112, 15, 8, 197, 93, 53, 25, 19, 112, 15, 7, 196, 208, 204, 67, 104, 15, 8, 197, 77,
-			68, 149, 19, 112, 15, 7, 196, 12, 137, 196, 220, 15, 8, 197, 9, 38, 153, 19, 112, 15, 0, 9, 198, 92, 50, 18, 104, 50, 74, 15,
-			5, 194, 53, 80, 72, 12, 3, 95, 63, 65, 55, 37, 47, 109, 51, 35, 0, 0, 0, 7, 196, 93, 146, 132, 220, 15, 7, 196, 77, 68,
-			167, 40, 15, 6, 195, 78, 209, 55, 15, 7, 196, 16, 242, 132, 220, 15, 6, 195, 10, 209, 55, 15, 0, 6, 195, 203, 140, 64, 15, 12,
-			69, 12, 130, 76, 48, 144, 76, 37, 55, 37, 0, 0, 0, 9, 198, 76, 180, 154, 101, 113, 55, 15, 0, 8, 197, 104, 65, 80, 13, 160,
-			15, 0, 17, 4, 95, 115, 116, 107, 89, 49, 51, 109, 97, 55, 6, 111, 50, 109, 0, 0, 0, 7, 196, 81, 37, 193, 40, 15, 0, 8,
-			197, 105, 115, 5, 13, 160, 15, 8, 197, 81, 38, 133, 77, 160, 15, 8, 197, 64, 50, 1, 77, 160, 15, 0, 6, 195, 92, 64, 110, 15,
-			6, 195, 77, 2, 110, 15, 6, 195, 29, 32, 110, 15, 0, 6, 195, 48, 93, 238, 15, 0, 0, 6, 195, 78, 208, 218, 15, 0, 6, 195,
-			105, 38, 110, 15, 6, 195, 104, 213, 116, 15, 6, 195, 104, 192, 110, 15, 6, 195, 104, 38, 110, 15, 6, 195, 104, 34, 110, 15, 6, 195,
-			93, 38, 110, 15, 7, 196, 92, 34, 69, 12, 15, 6, 195, 92, 34, 110, 15, 6, 195, 80, 194, 110, 15, 6, 195, 77, 166, 110, 15, 6,
-			195, 76, 147, 238, 15, 6, 195, 65, 32, 110, 15, 6, 195, 45, 2, 110, 15, 6, 195, 44, 244, 46, 15, 6, 195, 12, 226, 110, 15, 6,
-			195, 12, 194, 110, 15, 6, 195, 9, 32, 110, 15, 0, 0, 7, 196, 104, 193, 119, 184, 15, 9, 198, 77, 3, 204, 77, 160, 218, 15, 9,
-			198, 76, 181, 201, 21, 32, 218, 15, 8, 197, 40, 84, 212, 23, 64, 76, 0, 6, 195, 105, 115, 242, 15, 6, 195, 104, 147, 242, 15, 8,
-			197, 93, 114, 69, 222, 224, 15, 6, 195, 92, 147, 242, 15, 6, 195, 77, 51, 242, 15, 7, 196, 76, 179, 195, 104, 15, 6, 195, 73, 115,
-			242, 15, 6, 195, 64, 147, 242, 15, 14, 69, 12, 194, 67, 32, 80, 49, 55, 37, 91, 6, 109, 0, 0, 15, 67, 36, 238, 0, 37, 50,
-			90, 6, 112, 67, 109, 51, 0, 24, 0, 9, 198, 64, 197, 83, 104, 54, 128, 15, 9, 198, 52, 20, 147, 104, 54, 128, 15, 6, 195, 51,
-			134, 64, 15, 0, 6, 195, 72, 29, 192, 15, 6, 195, 52, 67, 49, 15, 6, 195, 48, 157, 192, 15, 7, 196, 9, 38, 141, 36, 15, 6,
-			195, 9, 35, 177, 15, 0, 6, 195, 64, 197, 114, 15, 6, 195, 48, 81, 242, 15, 0, 7, 196, 208, 50, 85, 8, 15, 6, 195, 202, 117,
-			192, 15, 0, 7, 196, 92, 153, 218, 200, 15, 6, 195, 209, 2, 64, 15, 6, 195, 64, 19, 0, 15, 0, 0, 0, 7, 196, 225, 33, 83,
-			104, 15, 7, 196, 45, 37, 193, 92, 15, 15, 70, 12, 130, 65, 57, 66, 64, 49, 57, 35, 50, 47, 37, 0, 0, 0, 9, 198, 104, 36,
-			129, 47, 32, 153, 15, 9, 198, 76, 180, 129, 19, 32, 153, 15, 9, 198, 76, 50, 21, 19, 32, 153, 15, 9, 198, 9, 38, 153, 19, 32,
-			153, 15, 16, 71, 12, 130, 72, 84, 18, 21, 4, 76, 37, 58, 35, 58, 35, 0, 0, 9, 198, 105, 115, 39, 47, 32, 153, 15, 9, 198,
-			105, 114, 103, 107, 32, 153, 15, 9, 198, 104, 226, 103, 79, 32, 153, 15, 9, 198, 104, 124, 83, 83, 32, 153, 15, 9, 198, 93, 163, 103,
-			31, 32, 153, 15, 9, 198, 93, 114, 103, 19, 32, 153, 15, 9, 198, 92, 210, 103, 83, 32, 153, 15, 9, 198, 81, 38, 173, 79, 32, 153,
-			15, 9, 198, 208, 50, 69, 47, 32, 153, 15, 9, 198, 208, 50, 67, 35, 32, 153, 15, 9, 198, 77, 76, 67, 35, 32, 153, 15, 9, 198,
-			77, 3, 39, 83, 32, 153, 15, 9, 198, 77, 1, 114, 107, 32, 153, 15, 9, 198, 64, 50, 14, 183, 32, 153, 15, 9, 198, 17, 33, 206,
-			183, 32, 153, 15, 9, 198, 13, 162, 206, 183, 32, 153, 15, 8, 197, 77, 76, 129, 55, 64, 15, 33, 68, 12, 144, 197, 72, 117, 4, 37,
-			117, 109, 51, 49, 40, 65, 49, 6, 35, 58, 55, 109, 0, 82, 99, 117, 109, 32, 99, 97, 117, 108, 101, 32, 9, 198, 9, 156, 153, 208,
-			50, 69, 76, 7, 196, 45, 73, 210, 20, 76, 0, 10, 199, 76, 50, 50, 103, 64, 201, 20, 15, 9, 198, 19, 113, 206, 183, 32, 153, 15,
-			7, 196, 104, 115, 167, 40, 15, 10, 199, 52, 144, 114, 103, 64, 201, 20, 76, 0, 0, 6, 195, 36, 77, 192, 15, 7, 196, 9, 156, 133,
-			208, 76, 4, 193, 172, 43, 4, 193, 172, 43, 16, 4, 95, 99, 105, 114, 88, 72, 6, 35, 91, 80, 38, 109, 65, 0, 0, 7, 196, 104,
-			211, 195, 104, 15, 0, 6, 195, 48, 158, 0, 15, 17, 4, 95, 48, 77, 52, 71, 38, 37, 55, 57, 6, 111, 50, 40, 83, 0, 0, 9,
-			198, 92, 145, 83, 104, 54, 128, 15, 6, 195, 55, 134, 64, 15, 0, 6, 195, 92, 93, 192, 15, 9, 198, 4, 195, 9, 77, 65, 82, 65,
-			17, 4, 95, 48, 77, 50, 65, 38, 37, 55, 57, 6, 111, 50, 40, 83, 0, 0, 8, 197, 77, 160, 218, 60, 208, 15, 6, 195, 64, 29,
-			0, 15, 9, 67, 88, 243, 128, 83, 111, 50, 0, 7, 196, 45, 73, 210, 100, 76, 18, 4, 95, 48, 77, 51, 65, 38, 37, 55, 57, 6,
-			35, 51, 72, 40, 83, 0, 0, 0, 8, 197, 107, 134, 114, 9, 144, 15, 8, 197, 107, 133, 114, 9, 144, 15, 8, 197, 51, 134, 114, 9,
-			144, 15, 7, 196, 93, 163, 103, 12, 15, 15, 4, 95, 48, 77, 49, 47, 112, 97, 6, 109, 50, 117, 112, 0, 0, 5, 194, 60, 64, 72,
-			0, 5, 65, 180, 114, 0, 0, 7, 196, 104, 69, 231, 40, 15, 6, 195, 80, 176, 110, 15, 7, 196, 208, 50, 83, 104, 15, 15, 70, 12,
-			245, 78, 81, 38, 64, 49, 35, 50, 47, 51, 112, 0, 0, 8, 197, 79, 35, 242, 9, 144, 15, 8, 197, 79, 32, 114, 9, 144, 15, 8,
-			197, 92, 50, 15, 19, 112, 15, 0, 7, 196, 56, 18, 180, 184, 15, 11, 67, 12, 17, 162, 49, 35, 83, 109, 0, 66, 0, 8, 197, 92,
-			116, 153, 222, 224, 15, 0, 10, 199, 76, 50, 50, 61, 54, 131, 104, 15, 6, 195, 44, 244, 174, 15, 7, 196, 184, 210, 83, 104, 15, 0,
-			6, 195, 185, 3, 238, 15, 0, 7, 196, 104, 82, 180, 184, 15, 7, 196, 92, 145, 119, 184, 15, 7, 196, 77, 12, 143, 184, 15, 7, 196,
-			79, 41, 196, 220, 15, 7, 196, 64, 145, 116, 184, 15, 7, 196, 31, 41, 196, 220, 15, 6, 195, 12, 128, 237, 15, 7, 196, 9, 35, 137,
-			20, 15, 13, 202, 17, 162, 69, 92, 156, 67, 37, 84, 197, 80, 66, 0, 7, 196, 105, 37, 83, 104, 15, 7, 196, 104, 35, 195, 104, 15,
-			6, 195, 77, 67, 242, 15, 6, 195, 77, 3, 242, 15, 7, 196, 52, 147, 3, 104, 15, 6, 195, 28, 227, 242, 15, 6, 195, 16, 35, 242,
-			15, 9, 198, 12, 140, 143, 77, 160, 218, 15, 16, 4, 95, 108, 105, 103, 55, 37, 81, 35, 47, 6, 40, 51, 35, 0, 0, 0, 9, 198,
-			104, 226, 83, 104, 54, 128, 15, 6, 195, 75, 134, 64, 15, 19, 67, 64, 246, 129, 48, 111, 88, 6, 35, 67, 37, 65, 0, 81, 110, 105,
-			109, 32, 20, 67, 64, 246, 129, 48, 111, 88, 6, 35, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 20, 67, 64, 246, 129, 48, 111, 88,
-			6, 35, 65, 50, 114, 0, 81, 109, 110, 196, 133, 32, 0, 6, 195, 92, 253, 192, 15, 8, 197, 77, 1, 114, 107, 32, 15, 7, 196, 64,
-			50, 1, 52, 15, 6, 195, 48, 93, 192, 15, 0, 6, 195, 92, 181, 114, 15, 0, 6, 195, 105, 112, 76, 15, 0, 8, 197, 75, 131, 242,
-			9, 144, 15, 8, 197, 75, 128, 114, 9, 144, 15, 8, 197, 44, 203, 114, 9, 144, 15, 8, 197, 185, 3, 242, 9, 144, 15, 0, 8, 197,
-			93, 114, 103, 107, 32, 15, 8, 197, 93, 1, 114, 107, 32, 15, 7, 196, 77, 160, 218, 100, 15, 5, 194, 52, 144, 72, 0, 8, 197, 19,
-			129, 56, 103, 32, 15, 0, 9, 198, 52, 22, 9, 53, 83, 64, 65, 0, 7, 196, 12, 145, 82, 64, 15, 0, 9, 198, 105, 114, 113, 45,
-			54, 128, 15, 9, 198, 11, 113, 26, 37, 54, 128, 15, 0, 9, 198, 224, 115, 173, 200, 38, 64, 15, 7, 196, 45, 73, 210, 4, 76, 0,
-			10, 199, 104, 115, 137, 157, 76, 130, 100, 15, 10, 199, 93, 163, 137, 157, 60, 130, 100, 15, 10, 199, 95, 64, 201, 20, 188, 130, 100, 15,
-			10, 199, 93, 54, 131, 106, 220, 130, 100, 15, 10, 199, 93, 4, 154, 180, 124, 130, 100, 15, 10, 199, 93, 4, 154, 180, 76, 130, 100, 15,
-			10, 199, 92, 115, 137, 157, 76, 130, 100, 15, 10, 199, 208, 210, 79, 72, 76, 130, 100, 15, 10, 199, 208, 210, 69, 72, 76, 130, 100, 15,
-			10, 199, 208, 210, 65, 72, 76, 130, 100, 15, 10, 199, 208, 50, 69, 73, 12, 130, 100, 15, 10, 199, 77, 68, 154, 181, 60, 130, 100, 15,
-			10, 199, 77, 4, 154, 180, 124, 130, 100, 15, 10, 199, 77, 4, 154, 180, 76, 130, 100, 15, 0, 8, 197, 208, 210, 69, 77, 160, 15, 6,
-			195, 44, 20, 141, 15, 0, 5, 194, 53, 144, 76, 0, 7, 196, 77, 1, 83, 104, 15, 21, 72, 13, 84, 146, 36, 53, 76, 84, 208, 49,
-			40, 51, 6, 37, 49, 40, 55, 40, 65, 0, 0, 0, 9, 198, 12, 132, 154, 12, 146, 128, 15, 0, 0, 7, 196, 64, 197, 193, 40, 15,
-			9, 67, 61, 85, 0, 35, 58, 47, 0, 0, 11, 200, 76, 50, 12, 36, 38, 116, 53, 144, 15, 7, 195, 81, 144, 200, 72, 10, 0, 9,
-			198, 4, 195, 9, 76, 243, 128, 65, 6, 65, 184, 119, 110, 0, 0, 7, 196, 76, 180, 154, 100, 15, 0, 6, 195, 16, 192, 64, 72, 6,
-			195, 32, 64, 64, 13, 0, 7, 196, 51, 67, 137, 196, 15, 0, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 38, 109, 0, 81,
-			110, 105, 101, 32, 21, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 20, 68, 65, 38, 133,
-			16, 48, 91, 6, 109, 72, 84, 35, 89, 0, 81, 119, 97, 115, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 112, 65, 0,
-			81, 116, 121, 109, 32, 21, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 112, 107, 0, 81, 116, 121, 99, 104, 32, 18, 68, 65, 38,
-			133, 16, 48, 91, 6, 109, 47, 47, 111, 0, 81, 116, 111, 32, 18, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 109, 0, 81, 116,
-			101, 32, 19, 68, 65, 38, 133, 16, 48, 91, 6, 109, 47, 47, 114, 0, 81, 116, 196, 133, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6,
-			109, 72, 67, 37, 65, 0, 81, 110, 105, 109, 32, 21, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 67, 38, 114, 0, 81, 110, 105, 196,
-			133, 32, 20, 68, 65, 38, 133, 16, 48, 91, 6, 109, 72, 50, 35, 89, 0, 81, 110, 97, 115, 32, 7, 196, 65, 38, 133, 16, 76, 0,
-			9, 198, 105, 50, 79, 19, 32, 153, 15, 9, 198, 92, 208, 82, 107, 32, 153, 15, 9, 198, 92, 70, 137, 63, 32, 153, 15, 9, 198, 77,
-			4, 201, 7, 32, 153, 15, 9, 198, 12, 145, 82, 67, 32, 153, 15, 9, 198, 12, 132, 153, 67, 32, 153, 15, 9, 198, 12, 128, 201, 7,
-			32, 153, 15, 7, 196, 80, 179, 137, 20, 15, 6, 195, 46, 212, 0, 15, 7, 196, 16, 242, 180, 184, 15, 0, 9, 198, 105, 114, 109, 19,
-			32, 153, 15, 9, 198, 208, 50, 109, 200, 38, 64, 15, 9, 198, 75, 131, 173, 200, 38, 64, 15, 9, 198, 65, 38, 173, 19, 32, 153, 15,
-			9, 198, 31, 37, 67, 35, 32, 153, 15, 8, 197, 92, 180, 129, 210, 224, 15, 6, 195, 28, 224, 64, 15, 6, 195, 60, 224, 64, 76, 0,
-			9, 198, 12, 140, 167, 19, 32, 153, 15, 9, 198, 104, 115, 137, 23, 75, 128, 15, 9, 198, 92, 115, 137, 23, 75, 128, 15, 0, 6, 195,
-			84, 173, 46, 15, 7, 196, 203, 129, 83, 104, 15, 0, 7, 196, 93, 146, 180, 184, 15, 7, 196, 64, 193, 116, 184, 15, 7, 196, 52, 179,
-			137, 20, 15, 7, 196, 52, 145, 116, 184, 15, 7, 196, 13, 166, 116, 184, 15, 0, 7, 196, 104, 220, 167, 184, 15, 7, 196, 76, 188, 167,
-			184, 15, 0, 6, 195, 54, 114, 242, 15, 6, 195, 50, 210, 242, 15, 6, 195, 185, 3, 242, 15, 0, 6, 195, 105, 53, 115, 15, 7, 196,
-			104, 203, 75, 200, 15, 7, 196, 92, 201, 203, 200, 15, 7, 196, 208, 210, 79, 200, 15, 6, 195, 64, 197, 115, 15, 6, 195, 64, 193, 115,
-			15, 0, 7, 196, 17, 33, 193, 52, 15, 7, 196, 13, 162, 193, 52, 15, 7, 195, 61, 32, 90, 72, 28, 0, 6, 195, 60, 225, 64, 76,
-			0, 8, 197, 93, 2, 114, 9, 144, 15, 8, 197, 12, 194, 114, 9, 144, 15, 15, 4, 95, 99, 101, 100, 88, 117, 109, 116, 6, 37, 55,
-			114, 0, 0, 15, 70, 12, 128, 78, 76, 243, 128, 91, 35, 50, 89, 114, 0, 66, 0, 8, 197, 105, 115, 39, 47, 32, 15, 6, 195, 200,
-			20, 0, 15, 6, 194, 56, 144, 72, 23, 0, 7, 196, 226, 124, 139, 200, 15, 6, 195, 80, 194, 64, 15, 7, 196, 77, 12, 143, 204, 15,
-			6, 195, 53, 146, 128, 15, 0, 8, 197, 107, 137, 242, 47, 32, 15, 7, 196, 208, 210, 69, 40, 15, 0, 7, 196, 76, 180, 143, 64, 15,
-			0, 0, 6, 195, 45, 82, 128, 15, 6, 195, 60, 226, 64, 76, 0, 7, 196, 76, 181, 82, 92, 15, 7, 196, 17, 46, 25, 40, 15, 0,
-			0, 0, 0, 13, 4, 95, 99, 97, 112, 72, 6, 40, 90, 109, 10, 0, 0, 0, 7, 196, 81, 37, 193, 52, 15, 7, 196, 64, 197, 193,
-			52, 15, 0, 6, 195, 44, 253, 0, 15, 17, 70, 88, 20, 137, 21, 65, 83, 84, 35, 34, 57, 109, 47, 109, 0, 67, 0, 0, 9, 198,
-			45, 73, 210, 20, 213, 64, 76, 0, 0, 15, 67, 52, 193, 0, 65, 37, 55, 57, 35, 51, 72, 40, 83, 0, 0, 6, 195, 104, 214, 110,
-			15, 9, 198, 61, 5, 9, 53, 83, 64, 65, 0, 6, 195, 65, 93, 46, 15, 0, 7, 196, 93, 5, 116, 184, 15, 7, 196, 77, 5, 116,
-			184, 15, 13, 68, 88, 242, 76, 4, 84, 40, 35, 55, 35, 0, 67, 0, 8, 197, 105, 114, 69, 210, 224, 15, 8, 197, 104, 226, 69, 210,
-			224, 15, 8, 197, 104, 210, 69, 210, 224, 15, 8, 197, 93, 3, 5, 210, 224, 15, 8, 197, 92, 226, 69, 210, 224, 15, 8, 197, 76, 54,
-			153, 210, 224, 15, 8, 197, 28, 226, 69, 210, 224, 15, 0, 7, 196, 105, 115, 5, 12, 15, 9, 198, 93, 163, 137, 23, 75, 128, 15, 0,
-			6, 195, 104, 161, 77, 15, 0, 7, 196, 104, 161, 116, 184, 15, 7, 196, 92, 193, 119, 184, 15, 9, 198, 80, 50, 14, 36, 84, 218, 15,
-			7, 196, 208, 210, 79, 184, 15, 9, 198, 76, 50, 14, 36, 84, 218, 15, 7, 196, 76, 50, 12, 4, 15, 6, 195, 55, 41, 238, 15, 6,
-			195, 47, 41, 238, 15, 9, 198, 12, 132, 154, 12, 148, 218, 15, 0, 6, 195, 104, 67, 242, 15, 8, 197, 92, 210, 69, 210, 224, 15, 8,
-			197, 77, 68, 133, 210, 224, 15, 7, 196, 77, 67, 9, 40, 15, 8, 197, 77, 3, 5, 210, 224, 15, 8, 197, 76, 180, 129, 210, 224, 15,
-			7, 196, 64, 21, 18, 104, 15, 4, 193, 188, 43, 4, 193, 188, 43, 0, 8, 197, 9, 38, 141, 36, 160, 15, 0, 6, 195, 208, 203, 67,
-			15, 7, 196, 76, 50, 50, 60, 15, 7, 196, 64, 92, 154, 200, 15, 6, 195, 12, 128, 197, 15, 10, 67, 12, 240, 193, 49, 111, 49, 35,
-			0, 0, 6, 195, 92, 145, 74, 15, 8, 197, 77, 76, 149, 47, 32, 15, 20, 3, 95, 195, 179, 4, 40, 10, 49, 51, 109, 89, 49, 111,
-			84, 6, 35, 50, 109, 0, 0, 8, 197, 77, 163, 9, 9, 144, 15, 6, 195, 93, 165, 114, 15, 7, 196, 93, 50, 69, 40, 15, 7, 196,
-			16, 226, 69, 40, 15, 0, 9, 198, 12, 132, 154, 13, 171, 67, 15, 0, 8, 197, 105, 50, 65, 19, 32, 15, 8, 197, 93, 54, 133, 19,
-			32, 15, 8, 197, 9, 38, 153, 19, 32, 15, 6, 195, 9, 35, 243, 15, 0, 0, 10, 199, 76, 50, 12, 39, 64, 201, 20, 15, 0, 0,
-			8, 197, 104, 208, 82, 81, 112, 15, 0, 0, 6, 195, 104, 193, 119, 15, 0, 0, 8, 197, 76, 180, 154, 101, 112, 15, 0, 0, 7, 196,
-			92, 54, 149, 40, 15, 0, 8, 197, 105, 114, 69, 77, 160, 15, 8, 197, 73, 114, 69, 77, 160, 15, 8, 197, 28, 226, 69, 77, 160, 15,
-			27, 69, 76, 52, 133, 20, 224, 89, 49, 51, 37, 50, 51, 6, 37, 72, 109, 34, 0, 81, 114, 101, 97, 100, 101, 114, 32, 0, 7, 196,
-			12, 133, 193, 48, 15, 0, 6, 195, 73, 144, 218, 15, 0, 0, 6, 195, 93, 112, 76, 15, 0, 0, 16, 71, 12, 128, 76, 48, 83, 135,
-			20, 76, 109, 55, 109, 50, 75, 0, 11, 200, 76, 145, 68, 52, 149, 83, 21, 64, 65, 0, 6, 195, 93, 115, 247, 15, 0, 6, 195, 107,
-			41, 202, 15, 17, 70, 12, 16, 133, 72, 225, 84, 49, 35, 71, 109, 51, 50, 6, 109, 0, 10, 67, 48, 240, 68, 55, 111, 58, 72, 0,
-			0, 7, 196, 104, 116, 129, 184, 15, 7, 196, 93, 163, 5, 184, 15, 7, 196, 92, 145, 82, 184, 15, 6, 195, 92, 145, 77, 15, 7, 196,
-			92, 116, 143, 184, 15, 7, 196, 80, 181, 201, 184, 15, 7, 196, 77, 164, 5, 184, 15, 6, 195, 77, 67, 9, 15, 7, 196, 12, 131, 15,
-			184, 15, 0, 0, 7, 196, 80, 50, 14, 180, 15, 7, 196, 76, 50, 14, 180, 15, 7, 196, 64, 50, 14, 180, 15, 6, 195, 60, 35, 203,
-			76, 0, 8, 197, 65, 53, 18, 106, 208, 15, 8, 197, 53, 54, 131, 106, 208, 15, 8, 197, 9, 38, 141, 38, 208, 15, 5, 194, 78, 208,
-			76, 0, 7, 196, 104, 116, 143, 184, 15, 7, 196, 93, 3, 5, 184, 15, 7, 196, 92, 116, 129, 184, 15, 7, 196, 92, 54, 149, 184, 15,
-			7, 196, 77, 67, 9, 184, 15, 7, 196, 77, 3, 5, 184, 15, 7, 196, 52, 67, 9, 184, 15, 7, 196, 52, 67, 5, 184, 15, 7, 196,
-			16, 226, 69, 184, 15, 7, 196, 13, 160, 201, 184, 15, 7, 196, 12, 131, 1, 184, 15, 0, 8, 197, 77, 160, 218, 6, 224, 15, 8, 197,
-			48, 115, 137, 22, 224, 15, 0, 7, 196, 81, 35, 195, 104, 15, 7, 196, 77, 67, 195, 104, 15, 6, 195, 17, 46, 45, 15, 9, 198, 45,
-			73, 210, 20, 115, 192, 76, 0, 7, 196, 105, 114, 65, 200, 15, 7, 196, 104, 115, 137, 200, 15, 7, 196, 92, 116, 143, 200, 15, 8, 197,
-			77, 160, 218, 100, 160, 15, 7, 196, 77, 68, 149, 200, 15, 8, 197, 76, 180, 154, 100, 160, 15, 7, 196, 17, 37, 201, 200, 15, 8, 197,
-			17, 33, 206, 36, 160, 15, 7, 196, 12, 131, 15, 200, 15, 0, 0, 8, 197, 104, 124, 83, 83, 32, 15, 8, 197, 92, 210, 103, 83, 32,
-			15, 6, 195, 79, 20, 0, 15, 8, 197, 28, 226, 103, 83, 32, 15, 7, 196, 12, 128, 197, 204, 15, 0, 6, 195, 225, 92, 128, 15, 9,
-			198, 104, 115, 137, 157, 76, 128, 15, 9, 198, 92, 115, 137, 157, 76, 128, 15, 6, 195, 46, 116, 154, 15, 6, 195, 42, 220, 128, 15, 6,
-			195, 19, 37, 66, 15, 6, 195, 18, 220, 128, 15, 0, 7, 196, 105, 114, 83, 200, 15, 7, 196, 104, 116, 143, 200, 15, 7, 196, 92, 116,
-			129, 200, 15, 7, 196, 92, 54, 149, 200, 15, 8, 197, 77, 162, 204, 36, 160, 15, 7, 196, 77, 67, 9, 200, 15, 7, 196, 52, 67, 1,
-			200, 15, 7, 196, 13, 160, 201, 200, 15, 7, 196, 12, 131, 1, 200, 15, 7, 196, 8, 192, 75, 200, 15, 0, 7, 196, 92, 156, 68, 200,
-			15, 7, 196, 92, 155, 68, 200, 15, 10, 67, 88, 144, 197, 84, 37, 117, 109, 0, 0, 15, 66, 64, 144, 48, 109, 37, 38, 6, 109, 89,
-			0, 81, 115, 32, 9, 198, 77, 68, 154, 100, 124, 128, 15, 7, 196, 76, 100, 149, 204, 15, 11, 66, 60, 176, 111, 49, 6, 109, 57, 0,
-			42, 11, 66, 60, 176, 111, 49, 111, 58, 111, 0, 24, 9, 198, 9, 147, 9, 208, 50, 69, 76, 6, 194, 80, 16, 72, 10, 0, 0, 9,
-			198, 93, 53, 18, 104, 83, 0, 15, 0, 0, 9, 198, 4, 225, 197, 48, 84, 192, 65, 17, 70, 16, 85, 137, 12, 84, 192, 72, 37, 84,
-			35, 57, 89, 37, 89, 0, 0, 6, 195, 92, 145, 55, 15, 6, 195, 95, 20, 218, 15, 6, 195, 76, 17, 55, 15, 6, 195, 72, 241, 55,
-			15, 6, 195, 72, 17, 55, 15, 6, 195, 57, 81, 55, 15, 0, 0, 8, 197, 77, 68, 177, 13, 160, 15, 8, 197, 77, 76, 149, 13, 160,
-			15, 8, 197, 77, 12, 149, 13, 160, 15, 6, 195, 65, 147, 0, 15, 8, 197, 56, 144, 115, 13, 160, 15, 8, 197, 200, 20, 218, 13, 160,
-			15, 19, 71, 8, 16, 203, 77, 0, 67, 20, 71, 6, 109, 49, 89, 48, 109, 57, 89, 0, 0, 7, 196, 208, 50, 69, 48, 15, 0, 7,
-			196, 19, 113, 193, 52, 15, 16, 70, 13, 84, 129, 128, 19, 192, 49, 37, 51, 35, 89, 35, 111, 0, 0, 8, 197, 13, 162, 206, 36, 160,
-			15, 0, 0, 6, 195, 104, 145, 74, 15, 15, 70, 52, 243, 147, 36, 85, 82, 65, 109, 89, 57, 6, 109, 0, 0, 7, 196, 76, 179, 14,
-			196, 15, 0, 8, 197, 92, 195, 242, 9, 144, 15, 8, 197, 92, 144, 114, 9, 144, 15, 8, 197, 92, 67, 242, 9, 144, 15, 8, 197, 80,
-			176, 114, 9, 144, 15, 8, 197, 77, 67, 242, 9, 144, 15, 8, 197, 77, 64, 114, 9, 144, 15, 8, 197, 77, 3, 242, 9, 144, 15, 8,
-			197, 76, 144, 114, 9, 144, 15, 8, 197, 65, 32, 114, 9, 144, 15, 8, 197, 52, 144, 114, 9, 144, 15, 8, 197, 16, 35, 242, 9, 144,
-			15, 8, 197, 77, 160, 218, 84, 160, 15, 0, 6, 195, 76, 187, 80, 15, 0, 6, 195, 208, 204, 64, 15, 19, 71, 12, 243, 131, 36, 84,
-			135, 20, 49, 111, 50, 89, 57, 6, 109, 51, 90, 0, 7, 196, 52, 145, 76, 36, 76, 0, 6, 195, 77, 73, 202, 15, 13, 67, 52, 164,
-			128, 65, 6, 35, 57, 111, 51, 0, 24, 0, 6, 195, 59, 27, 128, 15, 6, 195, 45, 32, 116, 15, 9, 198, 92, 147, 133, 29, 33, 84,
-			67, 0, 7, 196, 105, 114, 65, 184, 15, 7, 196, 104, 115, 137, 184, 15, 7, 196, 93, 50, 79, 184, 15, 7, 196, 81, 37, 193, 184, 15,
-			7, 196, 77, 68, 149, 184, 15, 7, 196, 77, 4, 149, 184, 15, 7, 196, 76, 179, 143, 184, 15, 7, 196, 76, 176, 82, 184, 15, 7, 196,
-			64, 197, 207, 184, 15, 7, 196, 29, 38, 143, 184, 15, 7, 196, 28, 226, 69, 184, 15, 7, 196, 17, 37, 201, 184, 15, 7, 196, 17, 33,
-			193, 184, 15, 7, 196, 13, 162, 207, 184, 15, 7, 196, 12, 133, 217, 184, 15, 0, 14, 4, 95, 103, 114, 118, 119, 6, 113, 91, 80, 38,
-			109, 0, 0, 7, 196, 76, 179, 14, 180, 15, 0, 0, 7, 196, 105, 114, 79, 184, 15, 7, 196, 93, 51, 149, 184, 15, 7, 196, 93, 50,
-			65, 184, 15, 7, 196, 81, 37, 207, 184, 15, 7, 196, 77, 4, 207, 184, 15, 7, 196, 17, 33, 207, 184, 15, 6, 195, 16, 32, 77, 15,
-			7, 196, 13, 162, 193, 184, 15, 7, 196, 11, 129, 56, 180, 15, 10, 2, 195, 151, 51, 6, 35, 88, 112, 0, 0, 6, 195, 104, 34, 74,
-			15, 6, 195, 92, 193, 74, 15, 8, 197, 92, 70, 137, 6, 224, 15, 0, 7, 196, 13, 161, 83, 104, 15, 12, 68, 12, 245, 80, 136, 49,
-			40, 48, 6, 109, 0, 0, 7, 196, 104, 208, 82, 200, 15, 7, 196, 104, 116, 129, 200, 15, 7, 196, 93, 50, 79, 200, 15, 7, 196, 81,
-			37, 193, 200, 15, 7, 196, 77, 4, 149, 200, 15, 6, 195, 76, 48, 76, 15, 7, 196, 64, 197, 207, 200, 15, 7, 196, 52, 67, 15, 200,
-			15, 7, 196, 29, 38, 143, 200, 15, 7, 196, 17, 33, 193, 200, 15, 7, 196, 13, 162, 207, 200, 15, 0, 7, 196, 64, 201, 212, 200, 15,
-			16, 67, 57, 97, 1, 109, 50, 83, 35, 58, 72, 109, 6, 35, 0, 13, 0, 8, 197, 104, 210, 103, 83, 32, 15, 8, 197, 93, 3, 39,
-			83, 32, 15, 6, 195, 83, 20, 0, 15, 8, 197, 77, 3, 39, 83, 32, 15, 0, 7, 196, 80, 50, 14, 196, 15, 7, 196, 76, 50, 14,
-			196, 15, 7, 196, 53, 37, 67, 104, 15, 6, 195, 17, 46, 49, 15, 0, 8, 197, 105, 115, 242, 9, 144, 15, 8, 197, 105, 112, 114, 9,
-			144, 15, 8, 197, 104, 192, 114, 9, 144, 15, 8, 197, 104, 64, 114, 9, 144, 15, 8, 197, 92, 147, 242, 9, 144, 15, 8, 197, 80, 192,
-			114, 9, 144, 15, 8, 197, 76, 229, 114, 9, 144, 15, 8, 197, 73, 115, 242, 9, 144, 15, 8, 197, 73, 112, 114, 9, 144, 15, 8, 197,
-			65, 53, 114, 9, 144, 15, 8, 197, 44, 229, 114, 9, 144, 15, 8, 197, 40, 17, 50, 9, 144, 15, 8, 197, 29, 32, 114, 9, 144, 15,
-			8, 197, 28, 224, 114, 9, 144, 15, 8, 197, 28, 20, 242, 9, 144, 15, 7, 196, 105, 118, 75, 200, 15, 7, 196, 105, 114, 79, 200, 15,
-			7, 196, 93, 51, 149, 200, 15, 7, 196, 93, 50, 65, 200, 15, 7, 196, 81, 37, 207, 200, 15, 7, 196, 76, 180, 153, 200, 15, 7, 196,
-			52, 67, 9, 200, 15, 7, 196, 17, 33, 207, 200, 15, 7, 196, 16, 226, 65, 200, 15, 7, 196, 13, 162, 193, 200, 15, 0, 8, 197, 104,
-			208, 82, 107, 32, 15, 7, 196, 47, 32, 68, 200, 15, 7, 196, 11, 129, 56, 196, 15, 14, 2, 194, 167, 48, 35, 51, 6, 35, 81, 51,
-			35, 83, 0, 16, 2, 195, 159, 91, 4, 35, 34, 83, 109, 89, 10, 6, 109, 89, 0, 0, 8, 197, 105, 114, 103, 19, 32, 15, 8, 197,
-			93, 114, 103, 19, 32, 15, 6, 195, 77, 172, 153, 15, 9, 198, 76, 180, 154, 21, 12, 128, 15, 9, 198, 65, 53, 18, 105, 156, 128, 15,
-			9, 198, 29, 38, 141, 36, 252, 128, 15, 8, 197, 31, 37, 67, 35, 32, 15, 7, 196, 12, 132, 143, 204, 15, 12, 2, 194, 164, 84, 35,
-			55, 6, 40, 47, 35, 0, 0, 9, 198, 208, 210, 69, 72, 76, 128, 15, 9, 198, 208, 210, 65, 72, 76, 128, 15, 7, 196, 75, 131, 137,
-			20, 15, 10, 67, 12, 144, 79, 76, 57, 35, 58, 0, 8, 2, 194, 165, 57, 109, 50, 0, 0, 6, 195, 104, 112, 116, 15, 9, 2, 194,
-			162, 117, 109, 50, 47, 0, 0, 7, 196, 77, 4, 143, 208, 15, 9, 2, 194, 163, 83, 40, 50, 47, 0, 0, 9, 198, 77, 4, 129, 92,
-			77, 192, 15, 9, 198, 76, 179, 14, 36, 84, 218, 15, 9, 198, 64, 50, 14, 36, 84, 218, 15, 0, 6, 195, 84, 161, 55, 15, 13, 68,
-			24, 246, 69, 72, 83, 40, 35, 57, 6, 109, 0, 25, 2, 194, 161, 111, 72, 84, 51, 4, 111, 47, 50, 112, 15, 84, 112, 49, 91, 6,
-			112, 49, 67, 37, 49, 0, 0, 28, 69, 52, 18, 84, 74, 32, 65, 109, 47, 51, 109, 72, 111, 47, 6, 109, 55, 0, 81, 100, 39, 104,
-			111, 116, 101, 108, 32, 15, 2, 194, 174, 88, 35, 89, 76, 109, 90, 6, 111, 50, 112, 0, 0, 7, 196, 104, 43, 68, 220, 15, 8, 197,
-			93, 76, 143, 13, 160, 15, 7, 196, 93, 12, 68, 220, 15, 7, 196, 79, 35, 196, 220, 15, 8, 197, 76, 180, 154, 101, 0, 15, 7, 196,
-			76, 54, 133, 64, 15, 7, 196, 73, 171, 68, 220, 15, 7, 196, 28, 204, 68, 220, 15, 10, 67, 12, 149, 25, 117, 37, 47, 112, 0, 12,
-			201, 17, 162, 69, 92, 156, 110, 76, 85, 0, 65, 17, 2, 194, 175, 50, 35, 72, 49, 51, 109, 97, 55, 6, 109, 67, 109, 0, 0, 6,
-			195, 92, 34, 74, 15, 8, 197, 76, 212, 167, 19, 112, 15, 13, 2, 194, 172, 50, 109, 81, 6, 35, 117, 57, 35, 0, 5, 130, 195, 164,
-			43, 5, 130, 195, 164, 43, 0, 0, 0, 9, 198, 76, 180, 154, 101, 54, 128, 15, 25, 2, 194, 171, 83, 51, 35, 50, 117, 4, 40, 89,
-			80, 37, 15, 117, 40, 118, 6, 112, 89, 58, 40, 83, 0, 0, 7, 195, 13, 166, 74, 72, 10, 10, 199, 4, 212, 212, 21, 33, 1, 52,
-			65, 12, 2, 194, 168, 6, 40, 65, 55, 35, 58, 47, 0, 0, 7, 196, 64, 50, 14, 196, 15, 6, 195, 56, 253, 0, 15, 5, 65, 196,
-			113, 0, 0, 8, 197, 104, 144, 114, 9, 144, 15, 8, 197, 104, 67, 242, 9, 144, 15, 8, 197, 76, 181, 114, 9, 144, 15, 8, 197, 64,
-			144, 114, 9, 144, 15, 8, 197, 64, 17, 50, 9, 144, 15, 8, 197, 13, 165, 114, 9, 144, 15, 8, 197, 13, 160, 201, 77, 160, 15, 12,
-			2, 194, 182, 35, 49, 6, 35, 48, 37, 47, 0, 0, 15, 69, 64, 17, 197, 85, 0, 48, 109, 57, 75, 6, 35, 48, 0, 0, 6, 195,
-			225, 44, 64, 15, 7, 196, 105, 53, 45, 64, 15, 7, 196, 93, 53, 45, 64, 15, 5, 194, 60, 224, 76, 19, 2, 194, 180, 4, 111, 89,
-			47, 51, 112, 10, 6, 35, 49, 117, 109, 50, 47, 0, 0, 9, 67, 88, 144, 64, 84, 37, 35, 0, 0, 9, 198, 61, 50, 69, 53, 49,
-			84, 65, 13, 2, 194, 178, 49, 84, 6, 35, 72, 51, 35, 47, 0, 6, 65, 200, 109, 58, 0, 0, 6, 195, 104, 229, 120, 15, 7, 196,
-			93, 4, 143, 208, 15, 12, 2, 194, 179, 91, 6, 109, 97, 78, 35, 50, 0, 0, 7, 196, 93, 161, 45, 184, 15, 7, 196, 93, 68, 173,
-			184, 15, 7, 196, 208, 210, 65, 184, 15, 9, 198, 45, 38, 153, 92, 77, 192, 15, 7, 196, 9, 35, 173, 184, 15, 13, 2, 194, 176, 89,
-			47, 6, 111, 48, 38, 109, 67, 0, 0, 7, 196, 224, 115, 173, 184, 15, 7, 196, 104, 112, 82, 8, 15, 7, 196, 208, 50, 109, 184, 15,
-			15, 2, 194, 177, 48, 55, 40, 89, 65, 6, 37, 50, 40, 89, 0, 5, 130, 197, 153, 43, 5, 130, 197, 153, 43, 0, 8, 197, 19, 113,
-			206, 182, 224, 15, 14, 70, 52, 21, 82, 36, 49, 64, 65, 111, 51, 37, 89, 0, 16, 2, 194, 190, 47, 15, 91, 112, 76, 83, 6, 35,
-			51, 47, 109, 0, 0, 6, 195, 225, 33, 110, 15, 7, 196, 77, 124, 68, 220, 15, 6, 195, 79, 32, 110, 15, 6, 195, 64, 235, 110, 15,
-			6, 195, 67, 32, 110, 15, 6, 195, 200, 176, 110, 15, 6, 195, 200, 112, 110, 15, 7, 196, 47, 32, 68, 220, 15, 6, 195, 44, 203, 110,
-			15, 13, 67, 85, 35, 0, 40, 109, 51, 6, 109, 55, 0, 13, 23, 2, 194, 191, 111, 72, 84, 51, 4, 111, 47, 50, 112, 15, 48, 112,
-			47, 35, 57, 67, 37, 49, 0, 13, 2, 195, 183, 120, 109, 55, 6, 109, 67, 38, 109, 0, 0, 8, 197, 104, 161, 119, 19, 112, 15, 8,
-			197, 92, 50, 39, 19, 112, 15, 8, 197, 77, 162, 231, 19, 112, 15, 8, 197, 76, 50, 39, 19, 112, 15, 6, 195, 52, 20, 154, 15, 8,
-			197, 9, 37, 119, 19, 112, 15, 17, 2, 194, 188, 57, 109, 72, 50, 35, 76, 83, 6, 35, 51, 47, 35, 0, 0, 9, 198, 104, 210, 79,
-			224, 78, 0, 15, 9, 198, 93, 4, 154, 180, 77, 192, 15, 9, 198, 77, 4, 154, 180, 77, 192, 15, 9, 198, 76, 50, 50, 60, 77, 192,
-			15, 7, 196, 61, 53, 18, 104, 15, 9, 198, 28, 226, 69, 220, 77, 192, 15, 7, 195, 56, 145, 64, 72, 23, 6, 195, 56, 145, 64, 76,
-			16, 2, 194, 189, 57, 109, 72, 50, 35, 72, 51, 6, 40, 81, 35, 0, 0, 6, 195, 44, 203, 114, 15, 8, 197, 17, 37, 201, 77, 160,
-			15, 0, 32, 2, 194, 187, 48, 51, 6, 35, 84, 112, 15, 83, 51, 35, 50, 117, 4, 40, 89, 80, 37, 15, 117, 40, 118, 6, 112, 89,
-			58, 40, 83, 0, 0, 6, 195, 209, 114, 115, 15, 6, 195, 79, 38, 115, 15, 13, 2, 194, 184, 117, 109, 116, 6, 37, 55, 55, 35, 0,
-			0, 16, 2, 194, 185, 57, 109, 72, 109, 50, 81, 6, 40, 51, 50, 109, 0, 5, 130, 195, 177, 43, 5, 130, 195, 177, 43, 0, 8, 197,
-			92, 192, 114, 9, 144, 15, 8, 197, 77, 51, 242, 9, 144, 15, 8, 197, 77, 48, 114, 9, 144, 15, 8, 197, 64, 147, 242, 9, 144, 15,
-			8, 197, 16, 32, 114, 9, 144, 15, 8, 197, 77, 67, 9, 77, 160, 15, 0, 7, 196, 104, 210, 109, 200, 15, 7, 196, 93, 2, 109, 200,
-			15, 7, 196, 77, 2, 109, 200, 15, 7, 196, 52, 179, 173, 200, 15, 7, 196, 17, 46, 1, 200, 15, 12, 201, 80, 133, 78, 16, 84, 130,
-			37, 33, 0, 65, 21, 67, 64, 17, 197, 48, 109, 57, 75, 72, 6, 35, 58, 50, 0, 81, 100, 111, 119, 110, 32, 17, 67, 64, 17, 197,
-			48, 109, 57, 75, 6, 35, 48, 0, 81, 117, 112, 32, 0, 7, 196, 77, 3, 15, 52, 15, 7, 196, 75, 131, 173, 200, 15, 6, 195, 51,
-			140, 64, 15, 20, 66, 88, 16, 84, 35, 71, 6, 35, 68, 49, 0, 81, 98, 97, 110, 113, 117, 101, 32, 6, 194, 80, 80, 72, 10, 9,
-			198, 56, 145, 75, 82, 116, 153, 76, 0, 9, 198, 93, 54, 131, 106, 220, 128, 15, 8, 197, 19, 113, 206, 183, 32, 15, 0, 6, 195, 92,
-			179, 208, 15, 0, 7, 196, 92, 68, 129, 64, 15, 6, 195, 13, 166, 77, 77, 0, 0, 8, 197, 77, 68, 154, 199, 64, 15, 7, 196, 19,
-			113, 207, 52, 15, 0, 0, 7, 196, 12, 132, 149, 64, 15, 11, 2, 203, 135, 49, 6, 35, 51, 111, 50, 0, 0, 6, 195, 95, 32, 77,
-			15, 0, 6, 195, 92, 193, 67, 15, 9, 198, 77, 4, 154, 196, 77, 192, 15, 0, 8, 197, 80, 181, 201, 77, 160, 15, 8, 197, 77, 161,
-			77, 73, 160, 15, 6, 195, 80, 94, 0, 8, 0, 7, 195, 80, 83, 85, 72, 10, 0, 6, 195, 45, 38, 74, 15, 0, 6, 195, 12, 145,
-			67, 15, 6, 195, 60, 227, 192, 76, 0, 8, 197, 92, 116, 129, 77, 160, 15, 0, 6, 195, 78, 115, 0, 15, 0, 6, 195, 12, 226, 113,
-			15, 11, 66, 76, 128, 109, 89, 6, 101, 35, 0, 13, 6, 65, 204, 109, 67, 0, 0, 6, 195, 224, 112, 74, 15, 7, 196, 104, 116, 129,
-			8, 15, 6, 195, 184, 210, 113, 15, 0, 7, 196, 92, 180, 167, 40, 15, 0, 8, 197, 104, 210, 69, 75, 112, 15, 0, 7, 196, 104, 210,
-			109, 184, 15, 7, 196, 93, 12, 129, 184, 15, 7, 196, 93, 2, 109, 184, 15, 9, 198, 81, 38, 133, 77, 160, 218, 15, 7, 196, 209, 114,
-			69, 184, 15, 6, 195, 77, 67, 45, 15, 7, 196, 77, 2, 109, 184, 15, 6, 195, 9, 35, 173, 15, 0, 8, 197, 93, 52, 9, 182, 224,
-			15, 8, 197, 64, 50, 14, 36, 80, 15, 6, 195, 184, 210, 109, 15, 12, 69, 28, 83, 210, 28, 80, 75, 111, 34, 75, 0, 0, 9, 198,
-			93, 54, 131, 106, 219, 128, 15, 6, 195, 92, 195, 238, 15, 6, 195, 81, 37, 110, 15, 0, 6, 195, 224, 112, 110, 15, 8, 197, 77, 68,
-			154, 100, 48, 15, 7, 196, 76, 180, 153, 184, 15, 7, 196, 76, 155, 68, 220, 15, 0, 6, 195, 52, 67, 45, 15, 6, 195, 16, 32, 74,
-			15, 0, 6, 195, 93, 43, 66, 15, 28, 69, 52, 18, 84, 72, 80, 65, 109, 47, 51, 109, 72, 111, 47, 6, 109, 55, 0, 81, 100, 39,
-			104, 111, 116, 101, 108, 32, 0, 6, 195, 224, 112, 114, 15, 8, 197, 104, 116, 129, 77, 160, 15, 8, 197, 93, 160, 149, 73, 160, 15, 7,
-			196, 92, 193, 75, 200, 15, 8, 197, 92, 180, 143, 13, 160, 15, 8, 197, 81, 37, 193, 77, 160, 15, 6, 195, 79, 32, 114, 15, 6, 195,
-			75, 128, 114, 15, 6, 195, 200, 176, 114, 15, 6, 195, 200, 112, 114, 15, 8, 197, 17, 33, 193, 77, 160, 15, 7, 196, 81, 147, 11, 60,
-			76, 0, 0, 20, 71, 13, 80, 137, 13, 83, 21, 52, 49, 40, 71, 6, 37, 49, 40, 55, 40, 65, 0, 0, 7, 196, 105, 114, 69, 40,
-			15, 7, 196, 80, 179, 137, 40, 15, 7, 196, 77, 68, 149, 40, 15, 0, 6, 195, 107, 133, 114, 15, 6, 195, 104, 115, 204, 15, 8, 197,
-			77, 2, 69, 73, 160, 15, 8, 197, 76, 180, 149, 77, 160, 15, 8, 197, 52, 67, 9, 77, 160, 15, 8, 197, 45, 38, 153, 13, 160, 15,
-			7, 196, 42, 213, 18, 104, 15, 8, 197, 45, 73, 210, 105, 144, 76, 0, 6, 195, 107, 41, 215, 15, 7, 196, 93, 161, 45, 200, 15, 6,
-			195, 92, 19, 0, 15, 7, 196, 80, 179, 173, 200, 15, 7, 196, 76, 179, 45, 200, 15, 6, 195, 76, 147, 0, 15, 6, 195, 64, 226, 69,
-			15, 6, 195, 28, 226, 69, 15, 7, 196, 19, 113, 193, 200, 15, 7, 196, 9, 35, 173, 200, 15, 6, 195, 52, 226, 69, 72, 0, 9, 198,
-			77, 163, 9, 208, 50, 69, 15, 16, 66, 64, 240, 48, 6, 111, 84, 35, 89, 0, 81, 119, 97, 115, 32, 16, 66, 64, 240, 48, 6, 111,
-			47, 112, 65, 0, 81, 116, 121, 109, 32, 14, 66, 64, 240, 48, 6, 111, 47, 111, 0, 81, 116, 111, 32, 14, 66, 64, 240, 48, 6, 111,
-			47, 109, 0, 81, 116, 101, 32, 15, 66, 64, 240, 48, 6, 111, 47, 114, 0, 81, 116, 196, 133, 32, 16, 66, 64, 240, 48, 6, 111, 67,
-			38, 109, 0, 81, 110, 105, 101, 32, 17, 66, 64, 240, 48, 6, 111, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 64, 240, 48,
-			6, 111, 67, 37, 65, 0, 81, 110, 105, 109, 32, 18, 66, 64, 240, 48, 6, 111, 67, 38, 109, 57, 0, 81, 110, 105, 101, 106, 32, 16,
-			66, 64, 240, 48, 6, 111, 50, 35, 89, 0, 81, 110, 97, 115, 32, 18, 66, 64, 240, 48, 6, 111, 65, 67, 38, 109, 0, 81, 109, 110,
-			105, 101, 32, 5, 194, 64, 240, 76, 0, 6, 195, 184, 210, 74, 15, 18, 67, 64, 241, 0, 48, 6, 111, 72, 84, 35, 89, 0, 81, 119,
-			97, 115, 32, 18, 67, 64, 241, 0, 48, 6, 111, 47, 47, 112, 65, 0, 81, 116, 121, 109, 32, 16, 67, 64, 241, 0, 48, 6, 111, 47,
-			47, 111, 0, 81, 116, 111, 32, 16, 67, 64, 241, 0, 48, 6, 111, 47, 47, 109, 0, 81, 116, 101, 32, 17, 67, 64, 241, 0, 48, 6,
-			111, 47, 47, 114, 0, 81, 116, 196, 133, 32, 18, 67, 64, 241, 0, 48, 6, 111, 72, 67, 38, 109, 0, 81, 110, 105, 101, 32, 19, 67,
-			64, 241, 0, 48, 6, 111, 72, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 18, 67, 64, 241, 0, 48, 6, 111, 72, 67, 37, 65, 0,
-			81, 110, 105, 109, 32, 19, 67, 64, 241, 0, 48, 6, 111, 72, 67, 38, 114, 0, 81, 110, 105, 196, 133, 32, 18, 67, 64, 241, 0, 48,
-			6, 111, 72, 50, 35, 89, 0, 81, 110, 97, 115, 32, 13, 69, 53, 81, 83, 48, 144, 65, 40, 89, 55, 37, 0, 6, 195, 64, 241, 0,
-			76, 9, 198, 45, 73, 210, 100, 50, 0, 76, 19, 2, 203, 157, 101, 4, 40, 68, 81, 35, 51, 6, 40, 65, 55, 35, 58, 47, 0, 0,
-			7, 196, 76, 180, 167, 40, 15, 6, 195, 73, 172, 119, 15, 0, 6, 195, 104, 67, 205, 15, 6, 195, 77, 163, 9, 15, 12, 2, 203, 155,
-			111, 81, 6, 111, 50, 109, 49, 0, 0, 9, 198, 105, 38, 133, 47, 32, 153, 15, 9, 198, 104, 208, 82, 107, 32, 153, 15, 9, 198, 92,
-			34, 69, 31, 32, 153, 15, 9, 198, 77, 162, 204, 39, 32, 153, 15, 9, 198, 77, 2, 69, 47, 32, 153, 15, 9, 198, 76, 50, 12, 7,
-			32, 153, 15, 6, 195, 104, 75, 120, 15, 12, 2, 203, 152, 71, 51, 6, 109, 84, 37, 89, 0, 0, 19, 2, 203, 153, 81, 6, 40, 51,
-			50, 35, 10, 49, 51, 6, 111, 48, 49, 35, 0, 0, 0, 9, 198, 107, 137, 242, 47, 32, 153, 15, 7, 196, 81, 38, 133, 64, 15, 7,
-			196, 45, 38, 133, 64, 15, 9, 198, 64, 243, 137, 21, 112, 120, 8, 0, 6, 195, 65, 53, 74, 15, 0, 9, 198, 104, 36, 149, 220, 77,
-			192, 15, 9, 198, 93, 4, 154, 196, 77, 192, 15, 7, 196, 52, 145, 82, 104, 15, 0, 6, 195, 92, 30, 0, 15, 6, 195, 77, 69, 76,
-			15, 8, 197, 45, 2, 79, 73, 160, 15, 0, 0, 0, 0, 8, 197, 93, 164, 149, 77, 160, 15, 8, 197, 77, 50, 69, 77, 160, 15, 8,
-			197, 76, 54, 133, 77, 160, 15, 8, 197, 64, 226, 69, 77, 160, 15, 8, 197, 45, 2, 65, 73, 160, 15, 8, 197, 13, 162, 193, 77, 160,
-			15, 0, 0, 6, 195, 45, 2, 113, 15, 0, 6, 195, 105, 165, 110, 15, 6, 195, 93, 165, 110, 15, 6, 195, 77, 51, 238, 15, 6, 195,
-			73, 115, 238, 15, 0, 6, 195, 92, 67, 205, 15, 0, 7, 196, 77, 160, 218, 4, 15, 0, 8, 197, 80, 50, 14, 36, 80, 15, 8, 197,
-			76, 179, 14, 36, 80, 15, 8, 197, 76, 50, 14, 36, 80, 15, 12, 69, 60, 97, 137, 12, 80, 111, 83, 37, 89, 0, 0, 6, 195, 105,
-			115, 238, 15, 6, 195, 104, 147, 238, 15, 6, 195, 92, 147, 238, 15, 6, 195, 64, 197, 110, 15, 6, 195, 64, 193, 110, 15, 0, 7, 196,
-			65, 38, 173, 224, 15, 6, 195, 55, 16, 218, 15, 6, 195, 200, 176, 74, 15, 6, 195, 43, 16, 218, 15, 0, 7, 196, 81, 38, 173, 208,
-			15, 7, 196, 9, 156, 129, 208, 76, 0, 8, 197, 55, 64, 201, 77, 160, 15, 24, 69, 65, 38, 133, 16, 80, 48, 91, 109, 72, 6, 109,
-			65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 23, 69, 65, 38, 133, 16, 80, 48, 91, 109, 72, 6, 109, 65, 50, 114, 0, 81, 109,
-			110, 196, 133, 32, 31, 69, 12, 128, 82, 28, 80, 91, 35, 51, 90, 109, 72, 35, 83, 109, 51, 0, 68, 81, 100, 39, 97, 102, 102, 97,
-			105, 114, 101, 115, 32, 0, 7, 196, 45, 33, 116, 48, 15, 8, 197, 29, 38, 173, 222, 224, 15, 9, 198, 12, 131, 1, 77, 160, 218, 15,
-			0, 6, 195, 104, 224, 114, 15, 6, 195, 104, 192, 114, 15, 6, 195, 92, 64, 114, 15, 6, 195, 80, 192, 114, 15, 6, 195, 65, 32, 114,
-			15, 6, 195, 64, 20, 242, 15, 7, 196, 53, 35, 195, 104, 15, 6, 195, 29, 32, 114, 15, 0, 6, 195, 48, 115, 177, 15, 0, 9, 198,
-			80, 179, 137, 21, 54, 128, 15, 9, 198, 77, 162, 204, 37, 54, 128, 15, 8, 197, 76, 50, 12, 4, 208, 15, 0, 9, 198, 76, 50, 12,
-			36, 38, 64, 15, 6, 195, 65, 37, 74, 15, 0, 6, 195, 105, 38, 114, 15, 6, 195, 104, 38, 114, 15, 6, 195, 93, 38, 114, 15, 6,
-			195, 77, 166, 114, 15, 6, 195, 77, 2, 114, 15, 6, 195, 45, 2, 114, 15, 6, 195, 12, 226, 114, 15, 6, 195, 12, 194, 114, 15, 10,
-			67, 40, 18, 197, 75, 109, 57, 49, 0, 0, 0, 8, 197, 104, 44, 129, 223, 48, 15, 7, 196, 79, 32, 66, 200, 15, 0, 0, 6, 195,
-			107, 32, 74, 15, 6, 195, 75, 16, 218, 15, 6, 195, 28, 227, 205, 15, 0, 9, 198, 105, 115, 5, 47, 32, 153, 15, 9, 198, 105, 50,
-			65, 19, 32, 153, 15, 9, 198, 105, 38, 133, 19, 32, 153, 15, 9, 198, 104, 65, 67, 35, 32, 153, 15, 9, 198, 104, 35, 1, 47, 32,
-			153, 15, 9, 198, 104, 35, 1, 19, 32, 153, 15, 9, 198, 93, 54, 133, 19, 32, 153, 15, 9, 198, 93, 50, 65, 19, 32, 153, 15, 9,
-			198, 92, 180, 129, 19, 32, 153, 15, 9, 198, 92, 116, 153, 107, 32, 153, 15, 9, 198, 77, 160, 218, 87, 32, 153, 15, 9, 198, 77, 160,
-			218, 63, 32, 153, 15, 9, 198, 77, 4, 201, 63, 32, 153, 15, 9, 198, 76, 50, 12, 63, 32, 153, 15, 6, 195, 200, 179, 205, 15, 0,
-			9, 198, 105, 162, 109, 11, 32, 153, 15, 9, 198, 105, 114, 103, 19, 32, 153, 15, 9, 198, 93, 164, 167, 79, 32, 153, 15, 9, 198, 93,
-			52, 9, 183, 32, 153, 15, 9, 198, 93, 50, 109, 47, 32, 153, 15, 9, 198, 93, 1, 114, 107, 32, 153, 15, 9, 198, 92, 226, 103, 79,
-			32, 153, 15, 9, 198, 80, 50, 14, 183, 32, 153, 15, 9, 198, 77, 76, 149, 47, 32, 153, 15, 9, 198, 76, 179, 49, 79, 32, 153, 15,
-			9, 198, 28, 226, 103, 83, 32, 153, 15, 9, 198, 11, 113, 26, 39, 32, 153, 15, 0, 9, 198, 19, 129, 56, 103, 32, 153, 15, 9, 198,
-			40, 243, 129, 80, 128, 78, 65, 0, 6, 195, 48, 82, 128, 15, 6, 195, 8, 146, 128, 15, 7, 195, 80, 82, 128, 72, 10, 0, 14, 2,
-			95, 34, 117, 40, 118, 6, 112, 89, 58, 40, 83, 0, 0, 7, 196, 77, 160, 82, 64, 15, 8, 197, 77, 68, 154, 183, 64, 15, 15, 2,
-			95, 33, 84, 112, 49, 91, 6, 112, 49, 67, 37, 49, 0, 0, 9, 198, 104, 208, 82, 77, 160, 218, 15, 5, 194, 81, 144, 76, 0, 7,
-			196, 104, 161, 83, 104, 15, 7, 196, 80, 181, 201, 40, 15, 9, 67, 12, 243, 128, 49, 111, 50, 0, 14, 2, 95, 39, 35, 48, 6, 111,
-			89, 47, 51, 111, 83, 0, 6, 65, 208, 97, 37, 0, 0, 7, 196, 54, 209, 18, 104, 15, 0, 9, 198, 76, 50, 12, 5, 54, 128, 15,
-			9, 198, 65, 53, 18, 105, 146, 128, 15, 0, 11, 2, 95, 36, 72, 6, 111, 55, 35, 51, 0, 0, 7, 196, 92, 193, 67, 104, 15, 7,
-			195, 80, 83, 128, 72, 10, 0, 9, 198, 92, 50, 18, 104, 54, 177, 15, 0, 8, 197, 104, 219, 68, 73, 160, 15, 9, 198, 104, 20, 19,
-			81, 38, 128, 15, 9, 198, 77, 2, 69, 65, 38, 128, 15, 9, 198, 64, 244, 19, 81, 38, 128, 15, 15, 2, 95, 41, 48, 111, 50, 35,
-			84, 38, 6, 35, 97, 109, 0, 0, 6, 195, 92, 193, 110, 15, 6, 195, 92, 181, 110, 15, 6, 195, 77, 67, 238, 15, 6, 195, 64, 147,
-			238, 15, 7, 196, 19, 129, 56, 100, 15, 6, 195, 16, 35, 238, 15, 6, 195, 9, 35, 238, 15, 11, 2, 95, 40, 50, 35, 84, 38, 35,
-			89, 0, 0, 0, 8, 197, 107, 139, 114, 9, 144, 15, 9, 198, 104, 34, 69, 31, 32, 153, 15, 9, 198, 93, 50, 79, 19, 32, 153, 15,
-			9, 198, 92, 70, 137, 7, 32, 153, 15, 9, 198, 92, 50, 69, 47, 32, 153, 15, 9, 198, 77, 160, 218, 7, 32, 153, 15, 9, 198, 45,
-			38, 133, 67, 32, 153, 15, 7, 196, 29, 112, 114, 184, 15, 23, 73, 12, 147, 145, 84, 80, 197, 57, 67, 192, 76, 37, 50, 49, 58, 109,
-			76, 109, 50, 47, 111, 0, 0, 13, 2, 95, 45, 65, 6, 112, 97, 55, 50, 37, 49, 0, 0, 9, 198, 226, 124, 139, 200, 38, 64, 15,
-			14, 2, 95, 44, 48, 91, 109, 119, 6, 37, 50, 109, 49, 0, 0, 9, 2, 95, 51, 47, 91, 6, 112, 0, 0, 8, 197, 93, 4, 154,
-			183, 128, 15, 7, 196, 29, 38, 119, 184, 15, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 8, 197, 17, 46, 25, 77, 160, 15, 12, 69,
-			40, 16, 203, 36, 80, 75, 109, 49, 37, 0, 11, 2, 95, 49, 57, 6, 109, 72, 109, 50, 0, 0, 6, 195, 80, 235, 67, 15, 6, 195,
-			80, 203, 67, 15, 6, 195, 65, 43, 67, 15, 6, 195, 12, 203, 67, 15, 11, 2, 95, 48, 88, 6, 109, 51, 111, 12, 0, 0, 7, 196,
-			92, 19, 3, 104, 15, 6, 195, 80, 176, 114, 15, 6, 195, 52, 144, 114, 15, 7, 196, 12, 145, 83, 104, 15, 6, 195, 52, 144, 114, 76,
-			10, 67, 32, 243, 69, 101, 111, 58, 65, 0, 11, 2, 95, 55, 97, 6, 109, 72, 109, 65, 0, 0, 9, 198, 92, 50, 18, 104, 54, 173,
-			15, 10, 2, 95, 54, 91, 6, 109, 97, 119, 0, 0, 9, 198, 77, 160, 218, 101, 54, 128, 15, 9, 198, 29, 38, 141, 37, 54, 128, 15,
-			11, 2, 95, 53, 48, 38, 6, 109, 67, 119, 0, 0, 6, 195, 81, 37, 74, 15, 11, 2, 95, 52, 76, 47, 6, 109, 51, 112, 0, 0,
-			6, 195, 104, 214, 114, 15, 6, 195, 104, 34, 114, 15, 6, 195, 92, 34, 114, 15, 6, 195, 80, 194, 114, 15, 6, 195, 76, 147, 242, 15,
-			6, 195, 56, 146, 242, 15, 13, 2, 95, 59, 97, 51, 6, 109, 72, 67, 37, 49, 0, 0, 15, 2, 95, 58, 72, 84, 40, 49, 51, 6,
-			111, 48, 109, 49, 0, 0, 9, 198, 105, 114, 67, 33, 38, 128, 15, 9, 198, 93, 160, 137, 21, 38, 128, 15, 13, 2, 95, 57, 120, 6,
-			109, 84, 38, 109, 67, 119, 0, 0, 8, 197, 105, 162, 109, 11, 32, 15, 18, 66, 92, 80, 84, 6, 109, 65, 67, 38, 109, 0, 81, 109,
-			110, 105, 101, 32, 5, 194, 92, 80, 72, 10, 2, 95, 56, 6, 111, 97, 109, 65, 0, 0, 20, 2, 95, 63, 88, 50, 4, 35, 49, 15,
-			88, 35, 48, 112, 47, 6, 35, 67, 35, 0, 0, 8, 197, 95, 139, 114, 9, 144, 15, 13, 2, 95, 62, 58, 38, 6, 109, 68, 49, 91,
-			109, 0, 0, 7, 196, 40, 80, 149, 80, 66, 0, 12, 2, 95, 60, 65, 67, 6, 109, 57, 91, 109, 0, 0, 6, 195, 225, 144, 218, 15,
-			6, 195, 80, 179, 205, 15, 0, 8, 197, 77, 4, 154, 183, 128, 15, 9, 198, 9, 156, 153, 208, 214, 64, 76, 0, 8, 197, 77, 12, 143,
-			77, 160, 15, 6, 195, 53, 157, 12, 15, 8, 197, 19, 113, 193, 77, 160, 15, 12, 68, 40, 19, 133, 80, 75, 35, 50, 109, 47, 0, 0,
-			0, 0, 6, 195, 12, 128, 241, 15, 0, 0, 0, 7, 196, 76, 145, 67, 104, 15, 0, 9, 67, 12, 243, 204, 49, 40, 55, 0, 0, 8,
-			197, 77, 69, 231, 73, 160, 15, 8, 197, 12, 132, 154, 12, 144, 15, 0, 0, 6, 195, 93, 41, 238, 15, 6, 195, 93, 43, 64, 15, 7,
-			196, 92, 145, 76, 8, 15, 6, 195, 65, 43, 64, 15, 6, 195, 80, 18, 201, 76, 0, 9, 198, 104, 116, 153, 107, 32, 153, 15, 9, 198,
-			76, 180, 154, 103, 32, 153, 15, 9, 198, 12, 133, 201, 63, 32, 153, 15, 9, 198, 12, 133, 201, 7, 32, 153, 15, 9, 198, 12, 128, 201,
-			63, 32, 153, 15, 12, 68, 12, 148, 131, 4, 117, 37, 51, 49, 35, 0, 0, 9, 198, 104, 210, 103, 83, 32, 153, 15, 9, 198, 93, 114,
-			103, 107, 32, 153, 15, 9, 198, 93, 3, 39, 83, 32, 153, 15, 9, 198, 65, 38, 173, 31, 32, 153, 15, 7, 196, 93, 41, 244, 184, 15,
-			6, 195, 8, 251, 128, 15, 6, 195, 8, 27, 128, 15, 4, 193, 212, 43, 4, 193, 212, 43, 0, 8, 197, 93, 50, 109, 210, 224, 15, 8,
-			197, 81, 38, 173, 210, 224, 15, 8, 197, 65, 38, 173, 210, 224, 15, 0, 13, 67, 85, 48, 128, 40, 109, 89, 71, 6, 109, 0, 13, 0,
-			7, 196, 92, 82, 180, 184, 15, 7, 196, 48, 115, 137, 20, 15, 0, 7, 196, 47, 32, 116, 184, 15, 0, 6, 195, 64, 226, 74, 15, 6,
-			195, 16, 219, 67, 15, 20, 73, 72, 21, 1, 80, 245, 73, 48, 193, 64, 34, 35, 47, 35, 47, 40, 57, 0, 67, 0, 14, 67, 20, 177,
-			192, 109, 49, 35, 81, 38, 6, 109, 0, 13, 0, 7, 196, 105, 114, 69, 52, 15, 6, 195, 104, 214, 76, 15, 0, 7, 196, 92, 50, 69,
-			48, 15, 7, 196, 17, 162, 69, 48, 15, 6, 195, 13, 166, 115, 15, 13, 69, 16, 147, 135, 33, 144, 116, 37, 68, 81, 37, 0, 22, 67,
-			16, 145, 83, 116, 6, 37, 57, 109, 89, 6, 37, 51, 109, 0, 81, 105, 114, 97, 101, 32, 0, 8, 197, 104, 224, 114, 9, 144, 15, 8,
-			197, 92, 64, 114, 9, 144, 15, 8, 197, 64, 20, 242, 9, 144, 15, 8, 197, 92, 226, 103, 79, 32, 15, 6, 195, 77, 84, 218, 15, 20,
-			67, 65, 12, 139, 48, 111, 47, 48, 40, 58, 49, 6, 111, 84, 50, 37, 49, 0, 24, 0, 9, 198, 104, 210, 65, 224, 78, 0, 15, 6,
-			195, 104, 161, 64, 15, 9, 198, 93, 163, 137, 157, 60, 128, 15, 9, 198, 77, 68, 154, 181, 60, 128, 15, 7, 195, 4, 193, 64, 76, 28,
-			24, 2, 95, 91, 50, 4, 35, 84, 38, 35, 89, 15, 49, 84, 35, 72, 51, 35, 47, 6, 111, 84, 112, 0, 0, 0, 7, 196, 224, 115,
-			137, 20, 15, 6, 195, 105, 32, 115, 15, 0, 6, 195, 47, 35, 243, 15, 16, 66, 104, 16, 88, 6, 35, 67, 38, 109, 0, 81, 110, 105,
-			101, 32, 17, 66, 104, 16, 88, 6, 35, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 16, 66, 104, 16, 88, 6, 35, 84, 35, 89, 0,
-			81, 119, 97, 115, 32, 16, 66, 104, 16, 88, 6, 35, 47, 112, 65, 0, 81, 116, 121, 109, 32, 14, 66, 104, 16, 88, 6, 35, 47, 111,
-			0, 81, 116, 111, 32, 14, 66, 104, 16, 88, 6, 35, 47, 109, 0, 81, 116, 101, 32, 15, 66, 104, 16, 88, 6, 35, 47, 114, 0, 81,
-			116, 196, 133, 32, 16, 66, 104, 16, 88, 6, 35, 67, 37, 65, 0, 81, 110, 105, 109, 32, 17, 66, 104, 16, 88, 6, 35, 67, 38, 114,
-			0, 81, 110, 105, 196, 133, 32, 16, 66, 104, 16, 88, 6, 35, 50, 35, 89, 0, 81, 110, 97, 115, 32, 18, 66, 104, 16, 88, 6, 35,
-			65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 5, 194, 104, 16, 76, 0, 9, 198, 93, 4, 154, 180, 124, 128, 15, 9, 198, 77, 4,
-			154, 180, 124, 128, 15, 6, 195, 51, 134, 74, 15, 17, 2, 95, 95, 48, 111, 72, 49, 51, 109, 97, 55, 6, 109, 67, 109, 0, 0, 0,
-			30, 2, 95, 93, 48, 51, 35, 84, 112, 15, 50, 4, 35, 84, 38, 35, 89, 15, 49, 84, 35, 72, 51, 35, 47, 6, 111, 84, 112, 0,
-			0, 7, 196, 92, 181, 82, 92, 15, 0, 6, 195, 225, 38, 74, 15, 6, 195, 73, 146, 128, 15, 6, 195, 28, 224, 77, 15, 6, 195, 17,
-			82, 128, 15, 0, 0, 6, 2, 95, 97, 35, 0, 0, 6, 195, 64, 20, 154, 15, 6, 195, 52, 226, 74, 15, 6, 195, 28, 224, 74, 15,
-			6, 195, 8, 16, 218, 15, 0, 7, 196, 104, 65, 82, 104, 15, 0, 0, 8, 197, 65, 53, 18, 105, 144, 15, 0, 0, 7, 196, 104, 161,
-			68, 104, 15, 0, 7, 196, 92, 116, 129, 52, 15, 0, 6, 2, 95, 105, 37, 0, 0, 18, 67, 18, 34, 155, 72, 109, 90, 35, 84, 6,
-			37, 0, 81, 118, 117, 101, 32, 17, 67, 18, 34, 155, 72, 109, 90, 35, 84, 6, 37, 0, 81, 118, 117, 32, 0, 6, 195, 81, 43, 64,
-			15, 6, 195, 53, 43, 64, 15, 6, 195, 17, 43, 64, 15, 6, 195, 16, 35, 205, 15, 20, 67, 88, 148, 192, 84, 37, 88, 35, 84, 37,
-			0, 67, 82, 97, 32, 118, 105, 115, 32, 21, 67, 88, 148, 192, 84, 37, 88, 35, 84, 37, 0, 67, 82, 195, 160, 32, 118, 105, 115, 32,
-			6, 2, 95, 111, 111, 0, 0, 6, 195, 74, 125, 46, 15, 7, 196, 67, 32, 67, 104, 15, 7, 196, 19, 113, 193, 40, 15, 12, 68, 13,
-			83, 16, 4, 49, 40, 55, 48, 35, 0, 0, 6, 195, 92, 155, 128, 15, 6, 195, 64, 155, 128, 15, 6, 195, 48, 251, 128, 15, 6, 195,
-			48, 91, 128, 15, 6, 195, 48, 27, 128, 15, 6, 195, 16, 251, 128, 15, 6, 195, 16, 27, 128, 15, 6, 195, 8, 155, 128, 15, 0, 6,
-			195, 104, 67, 238, 15, 6, 195, 28, 227, 238, 15, 0, 6, 195, 224, 112, 64, 15, 6, 195, 105, 123, 64, 15, 7, 196, 105, 38, 149, 184,
-			15, 7, 196, 93, 53, 15, 184, 15, 6, 195, 77, 59, 64, 15, 6, 195, 73, 123, 64, 15, 6, 195, 45, 41, 202, 15, 0, 7, 196, 104,
-			220, 67, 104, 15, 8, 197, 93, 114, 69, 74, 224, 15, 6, 195, 10, 125, 46, 15, 11, 67, 40, 244, 226, 107, 111, 88, 6, 109, 0, 11,
-			68, 76, 48, 78, 20, 89, 49, 35, 50, 0, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76, 109, 49, 0, 0, 6, 195, 9, 156, 143,
-			76, 0, 7, 196, 208, 50, 69, 12, 15, 7, 196, 76, 180, 153, 40, 15, 6, 195, 75, 139, 67, 15, 6, 195, 55, 139, 67, 15, 6, 195,
-			51, 139, 67, 15, 6, 195, 31, 139, 67, 15, 6, 195, 8, 21, 192, 15, 26, 67, 12, 244, 193, 49, 4, 111, 88, 35, 50, 6, 111, 89,
-			47, 51, 35, 0, 81, 110, 111, 115, 116, 114, 97, 32, 7, 2, 95, 119, 84, 40, 0, 0, 0, 7, 196, 52, 153, 212, 200, 15, 7, 196,
-			44, 204, 83, 200, 15, 6, 2, 95, 117, 40, 0, 0, 0, 7, 196, 52, 67, 5, 40, 15, 7, 196, 13, 160, 201, 40, 15, 7, 196, 12,
-			131, 5, 40, 15, 21, 2, 95, 123, 50, 4, 35, 84, 38, 35, 89, 15, 49, 55, 35, 65, 51, 111, 84, 112, 0, 0, 7, 196, 76, 50,
-			12, 36, 15, 6, 195, 74, 116, 242, 15, 8, 2, 95, 122, 88, 109, 47, 0, 0, 0, 8, 197, 93, 163, 103, 31, 32, 15, 5, 194, 80,
-			240, 72, 0, 9, 198, 105, 114, 83, 200, 38, 64, 15, 9, 198, 105, 64, 82, 200, 38, 64, 15, 9, 198, 104, 214, 83, 200, 38, 64, 15,
-			9, 198, 104, 192, 90, 200, 38, 64, 15, 9, 198, 104, 116, 143, 200, 38, 64, 15, 9, 198, 104, 112, 68, 200, 38, 64, 15, 9, 198, 104,
-			64, 82, 200, 38, 64, 15, 9, 198, 93, 54, 153, 200, 38, 64, 15, 9, 198, 92, 116, 129, 200, 38, 64, 15, 9, 198, 92, 54, 149, 200,
-			38, 64, 15, 9, 198, 77, 67, 9, 200, 38, 64, 15, 9, 198, 77, 4, 129, 200, 38, 64, 15, 9, 198, 76, 178, 83, 200, 38, 64, 15,
-			9, 198, 64, 145, 75, 200, 38, 64, 15, 9, 198, 52, 67, 1, 200, 38, 64, 15, 9, 198, 29, 38, 90, 200, 38, 64, 15, 9, 198, 13,
-			160, 201, 200, 38, 64, 15, 9, 198, 12, 144, 200, 200, 38, 64, 15, 9, 198, 12, 131, 1, 200, 38, 64, 15, 9, 198, 8, 192, 75, 200,
-			38, 64, 15, 9, 198, 8, 192, 68, 200, 38, 64, 15, 0, 0, 28, 2, 95, 125, 48, 51, 35, 84, 112, 15, 50, 4, 35, 84, 38, 35,
-			89, 15, 49, 55, 35, 65, 51, 6, 111, 84, 112, 0, 0, 11, 200, 77, 163, 9, 9, 157, 3, 36, 80, 15, 0, 0, 9, 198, 56, 145,
-			75, 82, 116, 129, 76, 0, 0, 6, 195, 76, 229, 74, 15, 6, 195, 8, 80, 218, 15, 5, 194, 93, 144, 76, 0, 7, 196, 81, 37, 231,
-			224, 15, 0, 8, 197, 77, 68, 151, 159, 128, 15, 8, 197, 17, 33, 80, 13, 160, 15, 0, 6, 195, 92, 157, 0, 15, 0, 6, 195, 76,
-			181, 74, 15, 8, 197, 52, 156, 68, 105, 144, 76, 0, 7, 196, 40, 242, 131, 104, 15, 0, 16, 70, 13, 84, 129, 12, 19, 192, 49, 37,
-			51, 35, 89, 35, 111, 0, 0, 0, 0, 7, 196, 105, 54, 153, 184, 15, 7, 196, 93, 38, 149, 184, 15, 7, 196, 76, 179, 5, 184, 15,
-			7, 196, 64, 50, 15, 184, 15, 0, 6, 195, 47, 35, 205, 15, 7, 196, 185, 114, 67, 104, 15, 0, 0, 6, 194, 82, 208, 72, 10, 18,
-			70, 64, 17, 197, 16, 245, 206, 48, 109, 57, 75, 72, 6, 35, 58, 50, 0, 0, 7, 196, 93, 54, 153, 184, 15, 7, 196, 77, 68, 129,
-			184, 15, 7, 196, 77, 4, 129, 184, 15, 10, 199, 76, 50, 12, 5, 54, 131, 104, 15, 6, 195, 200, 176, 64, 15, 0, 8, 197, 104, 115,
-			137, 22, 224, 15, 8, 197, 93, 163, 137, 22, 224, 15, 8, 197, 92, 115, 137, 22, 224, 15, 8, 197, 92, 70, 137, 62, 224, 15, 8, 197,
-			77, 160, 218, 102, 224, 15, 8, 197, 77, 160, 218, 62, 224, 15, 8, 197, 77, 4, 201, 22, 224, 15, 8, 197, 76, 180, 154, 102, 224, 15,
-			8, 197, 76, 50, 23, 102, 224, 15, 8, 197, 29, 38, 141, 62, 224, 15, 8, 197, 12, 128, 201, 22, 224, 15, 0, 0, 9, 198, 104, 210,
-			113, 44, 54, 128, 15, 9, 198, 107, 37, 83, 104, 54, 128, 15, 0, 7, 196, 92, 68, 167, 224, 15, 7, 196, 12, 226, 83, 104, 15, 7,
-			196, 9, 35, 195, 104, 15, 19, 67, 13, 84, 129, 49, 37, 51, 35, 89, 35, 111, 0, 81, 195, 167, 97, 111, 32, 17, 8, 100, 101, 108,
-			39, 97, 114, 116, 101, 72, 109, 55, 6, 35, 51, 0, 0, 7, 196, 105, 54, 153, 200, 15, 7, 196, 104, 226, 75, 200, 15, 7, 196, 92,
-			147, 7, 200, 15, 6, 195, 76, 181, 76, 15, 7, 196, 73, 161, 75, 200, 15, 7, 196, 64, 50, 15, 200, 15, 7, 196, 52, 147, 11, 200,
-			15, 7, 196, 12, 145, 75, 200, 15, 18, 9, 100, 101, 108, 108, 39, 97, 114, 116, 101, 72, 109, 55, 6, 35, 51, 0, 0, 7, 196, 208,
-			193, 80, 200, 15, 0, 7, 196, 17, 165, 207, 204, 15, 13, 4, 95, 35, 51, 50, 89, 48, 35, 117, 57, 35, 0, 0, 6, 195, 225, 156,
-			128, 15, 7, 196, 93, 54, 153, 40, 15, 9, 198, 208, 50, 69, 73, 12, 128, 15, 15, 67, 85, 49, 192, 40, 10, 109, 89, 81, 38, 6,
-			109, 0, 13, 11, 67, 40, 244, 197, 107, 111, 88, 6, 109, 0, 0, 7, 196, 104, 214, 83, 200, 15, 7, 196, 93, 54, 153, 200, 15, 7,
-			196, 77, 4, 129, 200, 15, 7, 196, 76, 178, 83, 200, 15, 32, 68, 12, 130, 76, 36, 76, 4, 37, 55, 37, 49, 111, 50, 49, 6, 35,
-			34, 50, 109, 0, 82, 99, 111, 110, 32, 99, 97, 114, 110, 101, 32, 11, 68, 12, 130, 76, 36, 76, 37, 55, 37, 0, 0, 0, 9, 198,
-			104, 36, 154, 100, 76, 128, 15, 9, 198, 12, 132, 154, 12, 156, 128, 15, 17, 66, 104, 80, 88, 6, 109, 65, 50, 114, 0, 81, 109, 110,
-			196, 133, 32, 18, 66, 104, 80, 88, 6, 109, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101, 32, 0, 9, 198, 93, 4, 154, 180, 76, 128,
-			15, 6, 195, 80, 181, 201, 15, 9, 198, 208, 210, 79, 72, 76, 128, 15, 9, 198, 77, 4, 154, 180, 76, 128, 15, 6, 195, 45, 2, 64,
-			15, 0, 6, 195, 185, 3, 205, 15, 15, 70, 29, 32, 69, 12, 20, 192, 81, 51, 109, 49, 35, 89, 0, 0, 0, 8, 197, 76, 50, 50,
-			20, 208, 15, 8, 197, 76, 50, 50, 4, 208, 15, 12, 68, 5, 32, 213, 76, 35, 34, 49, 40, 89, 0, 0, 6, 195, 52, 19, 89, 76,
-			0, 0, 0, 9, 198, 104, 211, 137, 20, 164, 218, 15, 9, 198, 209, 114, 83, 104, 54, 128, 15, 6, 195, 52, 233, 248, 15, 9, 198, 11,
-			38, 83, 104, 54, 128, 15, 0, 7, 196, 93, 60, 129, 92, 15, 14, 67, 52, 195, 128, 65, 37, 55, 57, 111, 50, 40, 83, 0, 0, 8,
-			197, 92, 70, 137, 20, 160, 15, 8, 197, 12, 128, 201, 20, 160, 15, 7, 65, 220, 96, 109, 47, 0, 0, 0, 8, 197, 105, 165, 114, 9,
-			144, 15, 8, 197, 65, 37, 114, 9, 144, 15, 8, 197, 64, 197, 114, 9, 144, 15, 6, 195, 92, 181, 74, 15, 0, 7, 196, 104, 76, 129,
-			92, 15, 6, 195, 93, 44, 64, 15, 0, 0, 7, 196, 81, 156, 130, 100, 15, 7, 196, 53, 156, 130, 100, 15, 6, 195, 77, 75, 80, 15,
-			0, 6, 195, 92, 156, 128, 15, 6, 195, 64, 156, 128, 15, 6, 195, 48, 252, 128, 15, 6, 195, 48, 28, 128, 15, 6, 195, 16, 252, 128,
-			15, 6, 195, 16, 28, 128, 15, 6, 195, 8, 156, 128, 15, 0, 9, 198, 105, 118, 75, 200, 38, 64, 15, 9, 198, 105, 114, 79, 200, 38,
-			64, 15, 9, 198, 104, 112, 83, 200, 38, 64, 15, 9, 198, 93, 53, 15, 200, 38, 64, 15, 9, 198, 93, 51, 149, 200, 38, 64, 15, 9,
-			198, 93, 50, 65, 200, 38, 64, 15, 9, 198, 81, 37, 207, 200, 38, 64, 15, 9, 198, 77, 4, 143, 200, 38, 64, 15, 9, 198, 76, 180,
-			153, 200, 38, 64, 15, 9, 198, 76, 147, 196, 200, 38, 64, 15, 9, 198, 76, 145, 75, 200, 38, 64, 15, 9, 198, 76, 80, 200, 200, 38,
-			64, 15, 9, 198, 76, 50, 50, 60, 38, 64, 15, 9, 198, 73, 161, 68, 200, 38, 64, 15, 9, 198, 65, 80, 200, 200, 38, 64, 15, 9,
-			198, 64, 50, 1, 200, 38, 64, 15, 9, 198, 52, 67, 9, 200, 38, 64, 15, 9, 198, 17, 162, 65, 200, 38, 64, 15, 9, 198, 17, 33,
-			207, 200, 38, 64, 15, 9, 198, 16, 226, 65, 200, 38, 64, 15, 9, 198, 13, 162, 193, 200, 38, 64, 15, 9, 198, 12, 133, 68, 200, 38,
-			64, 15, 6, 195, 77, 9, 202, 15, 7, 196, 17, 162, 79, 184, 15, 0, 6, 195, 77, 92, 192, 15, 0, 7, 196, 77, 160, 218, 180, 15,
-			7, 196, 76, 180, 154, 180, 15, 7, 196, 17, 33, 206, 180, 15, 7, 196, 13, 162, 206, 180, 15, 7, 196, 13, 160, 218, 180, 15, 0, 8,
-			197, 29, 38, 141, 38, 208, 15, 14, 70, 12, 245, 20, 4, 113, 64, 49, 111, 47, 112, 75, 0, 15, 70, 12, 243, 12, 4, 113, 64, 49,
-			111, 55, 6, 35, 90, 0, 0, 6, 195, 95, 134, 74, 15, 6, 195, 208, 193, 64, 15, 6, 195, 75, 129, 110, 15, 7, 196, 64, 50, 1,
-			184, 15, 7, 196, 17, 162, 65, 184, 15, 6, 195, 12, 155, 110, 15, 0, 8, 197, 77, 162, 204, 38, 224, 15, 8, 197, 77, 160, 218, 86,
-			224, 15, 8, 197, 77, 160, 218, 22, 224, 15, 8, 197, 12, 133, 201, 6, 224, 15, 0, 7, 196, 77, 162, 204, 180, 15, 19, 67, 12, 131,
-			215, 76, 35, 58, 76, 35, 40, 0, 66, 81, 99, 104, 111, 119, 32, 0, 10, 199, 77, 172, 153, 9, 157, 13, 100, 15, 6, 195, 8, 240,
-			218, 15, 0, 0, 7, 196, 77, 70, 71, 200, 15, 6, 195, 28, 155, 114, 15, 7, 196, 17, 162, 79, 200, 15, 7, 196, 16, 226, 79, 200,
-			15, 7, 196, 9, 32, 75, 200, 15, 6, 195, 10, 113, 50, 15, 14, 68, 5, 48, 201, 36, 6, 35, 89, 49, 109, 57, 0, 13, 0, 0,
-			7, 196, 81, 37, 207, 204, 15, 7, 196, 77, 3, 21, 204, 15, 8, 197, 11, 17, 26, 36, 80, 76, 0, 6, 195, 65, 44, 64, 15, 0,
-			7, 196, 64, 50, 1, 200, 15, 7, 196, 17, 162, 65, 200, 15, 0, 7, 196, 93, 156, 130, 100, 15, 7, 196, 73, 156, 130, 100, 15, 7,
-			196, 45, 92, 130, 100, 15, 7, 196, 17, 92, 130, 100, 15, 7, 196, 9, 156, 130, 100, 15, 6, 195, 54, 117, 192, 15, 0, 7, 196, 93,
-			68, 153, 204, 15, 9, 198, 77, 68, 154, 20, 124, 128, 15, 9, 198, 76, 50, 18, 101, 12, 128, 15, 9, 198, 29, 38, 141, 36, 28, 128,
-			15, 9, 198, 9, 38, 141, 36, 252, 128, 15, 9, 198, 9, 38, 141, 36, 28, 128, 15, 0, 0, 7, 196, 93, 114, 69, 220, 15, 7, 196,
-			83, 37, 67, 104, 15, 15, 70, 12, 128, 66, 48, 148, 192, 91, 35, 71, 55, 37, 0, 66, 0, 7, 196, 12, 131, 9, 64, 15, 0, 6,
-			195, 76, 181, 66, 15, 31, 69, 12, 128, 82, 30, 32, 91, 35, 51, 90, 109, 72, 35, 83, 109, 51, 0, 68, 81, 100, 39, 97, 102, 102,
-			97, 105, 114, 101, 115, 32, 0, 6, 195, 92, 194, 119, 15, 18, 67, 65, 38, 153, 48, 91, 6, 112, 84, 35, 89, 0, 81, 119, 97, 115,
-			32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 47, 112, 65, 0, 81, 116, 121, 109, 32, 19, 67, 65, 38, 153, 48, 91, 6, 112, 47, 112,
-			107, 0, 81, 116, 121, 99, 104, 32, 18, 67, 65, 38, 153, 48, 91, 6, 112, 47, 109, 57, 0, 81, 116, 101, 106, 32, 18, 67, 65, 38,
-			153, 48, 91, 6, 112, 67, 37, 65, 0, 81, 110, 105, 109, 32, 20, 67, 65, 38, 153, 48, 91, 6, 112, 67, 38, 109, 57, 0, 81, 110,
-			105, 101, 106, 32, 19, 67, 65, 38, 153, 48, 91, 6, 112, 67, 37, 107, 0, 81, 110, 105, 99, 104, 32, 18, 67, 65, 38, 153, 48, 91,
-			6, 112, 50, 35, 89, 0, 81, 110, 97, 115, 32, 20, 67, 65, 38, 153, 48, 91, 6, 112, 65, 67, 38, 109, 0, 81, 109, 110, 105, 101,
-			32, 6, 195, 9, 147, 9, 76, 6, 195, 65, 38, 153, 76, 0, 0, 7, 196, 40, 93, 196, 220, 15, 18, 72, 40, 16, 209, 84, 83, 9,
-			56, 80, 90, 35, 49, 55, 6, 37, 50, 0, 0, 8, 197, 105, 38, 177, 19, 112, 15, 8, 197, 104, 124, 129, 19, 112, 15, 8, 197, 65,
-			38, 177, 19, 112, 15, 8, 197, 65, 38, 173, 19, 112, 15, 6, 195, 12, 226, 74, 15, 7, 65, 224, 90, 109, 47, 0, 0, 7, 196, 45,
-			37, 83, 104, 15, 6, 195, 40, 83, 85, 72, 0, 8, 197, 12, 133, 201, 20, 160, 15, 11, 200, 56, 145, 75, 82, 116, 133, 28, 240, 76,
-			15, 67, 13, 68, 140, 49, 6, 111, 50, 47, 51, 111, 55, 0, 13, 0, 0, 8, 197, 93, 165, 114, 9, 144, 15, 8, 197, 77, 68, 154,
-			20, 192, 15, 6, 195, 16, 210, 74, 15, 0, 7, 196, 29, 112, 82, 104, 15, 0, 8, 197, 77, 65, 82, 13, 160, 15, 8, 197, 64, 148,
-			218, 13, 160, 15, 0, 0, 0, 9, 198, 76, 144, 68, 200, 38, 64, 15, 6, 195, 47, 37, 110, 15, 13, 67, 76, 52, 201, 89, 49, 6,
-			35, 88, 37, 0, 13, 0, 7, 196, 104, 66, 173, 184, 15, 7, 196, 93, 162, 109, 184, 15, 7, 196, 92, 114, 109, 184, 15, 7, 196, 92,
-			50, 109, 184, 15, 7, 196, 80, 179, 173, 184, 15, 7, 196, 208, 210, 69, 184, 15, 7, 196, 77, 68, 173, 184, 15, 7, 196, 76, 179, 45,
-			184, 15, 7, 196, 48, 115, 173, 184, 15, 6, 195, 44, 195, 173, 15, 7, 196, 19, 113, 193, 184, 15, 0, 6, 195, 208, 226, 109, 15, 7,
-			196, 75, 131, 173, 184, 15, 0, 14, 70, 12, 243, 12, 20, 113, 64, 49, 111, 55, 109, 75, 0, 0, 6, 195, 104, 224, 77, 15, 6, 195,
-			104, 219, 110, 15, 8, 197, 208, 50, 69, 73, 0, 15, 6, 195, 64, 155, 110, 15, 0, 12, 68, 12, 148, 131, 20, 49, 37, 51, 49, 109,
-			0, 0, 7, 196, 93, 41, 196, 220, 15, 7, 196, 29, 41, 196, 220, 15, 7, 196, 31, 32, 68, 220, 15, 0, 6, 195, 104, 224, 74, 15,
-			8, 197, 93, 50, 109, 19, 112, 15, 6, 195, 12, 194, 74, 15, 0, 7, 196, 92, 181, 82, 104, 15, 6, 195, 92, 145, 64, 15, 6, 195,
-			77, 60, 64, 15, 0, 7, 196, 104, 116, 143, 52, 15, 6, 195, 52, 155, 114, 15, 6, 195, 9, 156, 153, 76, 0, 7, 196, 92, 188, 149,
-			200, 15, 7, 196, 77, 160, 218, 196, 15, 7, 196, 76, 180, 154, 196, 15, 7, 196, 76, 188, 149, 200, 15, 7, 196, 17, 33, 206, 196, 15,
-			7, 196, 13, 160, 218, 196, 15, 0, 6, 195, 92, 217, 215, 15, 8, 197, 19, 113, 206, 36, 80, 15, 0, 6, 195, 81, 44, 64, 15, 6,
-			195, 64, 197, 193, 15, 6, 195, 17, 44, 64, 15, 0, 6, 195, 75, 140, 64, 15, 0, 7, 196, 77, 162, 204, 196, 15, 0, 7, 196, 224,
-			115, 173, 200, 15, 7, 196, 208, 50, 109, 200, 15, 0, 9, 198, 93, 54, 131, 104, 236, 64, 15, 0, 7, 196, 75, 131, 137, 40, 15, 0,
-			7, 196, 104, 68, 129, 64, 15, 7, 196, 12, 132, 129, 64, 15, 0, 0, 0, 9, 198, 104, 210, 69, 73, 165, 192, 15, 8, 197, 52, 144,
-			120, 19, 128, 15, 8, 197, 29, 114, 120, 19, 128, 15, 4, 193, 228, 43, 4, 193, 228, 43, 0, 7, 196, 105, 121, 196, 220, 15, 7, 196,
-			104, 121, 196, 220, 15, 7, 196, 66, 114, 132, 220, 15, 6, 195, 53, 37, 120, 15, 10, 199, 56, 145, 75, 82, 116, 153, 52, 76, 0, 6,
-			195, 28, 226, 74, 15, 0, 6, 195, 105, 124, 64, 15, 6, 195, 73, 124, 64, 15, 6, 195, 16, 243, 64, 15, 9, 67, 12, 195, 213, 49,
-			55, 40, 0, 9, 198, 9, 147, 9, 208, 214, 64, 76, 0, 9, 198, 56, 145, 75, 82, 116, 133, 76, 0, 7, 196, 13, 162, 206, 196, 15,
-			0, 22, 72, 13, 83, 66, 21, 35, 1, 56, 64, 49, 6, 35, 65, 71, 109, 51, 55, 109, 50, 72, 0, 16, 70, 12, 128, 82, 52, 85,
-			82, 91, 35, 51, 65, 109, 51, 0, 66, 0, 6, 195, 53, 44, 64, 15, 6, 195, 92, 19, 64, 72, 0, 0, 0, 0, 6, 195, 107, 133,
-			110, 15, 9, 198, 12, 132, 154, 13, 172, 64, 15, 13, 67, 45, 4, 128, 49, 35, 48, 51, 35, 55, 0, 24, 0, 6, 195, 107, 139, 110,
-			15, 7, 196, 92, 116, 153, 220, 15, 7, 196, 77, 12, 129, 184, 15, 7, 196, 55, 134, 83, 104, 15, 6, 195, 55, 64, 201, 15, 6, 195,
-			52, 179, 173, 15, 7, 196, 17, 46, 5, 184, 15, 12, 68, 12, 245, 80, 20, 49, 40, 48, 6, 109, 0, 0, 8, 197, 17, 33, 206, 182,
-			224, 15, 8, 197, 13, 162, 206, 182, 224, 15, 13, 69, 24, 243, 132, 84, 80, 83, 114, 72, 6, 37, 0, 0, 6, 195, 92, 67, 238, 15,
-			6, 195, 73, 165, 110, 15, 6, 195, 65, 37, 110, 15, 0, 9, 198, 104, 70, 137, 21, 46, 0, 15, 7, 196, 76, 180, 143, 8, 15, 6,
-			195, 28, 155, 110, 15, 0, 7, 196, 104, 212, 143, 220, 15, 7, 196, 104, 116, 153, 220, 15, 7, 196, 92, 188, 149, 184, 15, 6, 195, 80,
-			179, 173, 15, 7, 196, 76, 188, 149, 184, 15, 8, 197, 76, 50, 12, 6, 224, 15, 8, 197, 52, 147, 248, 19, 128, 15, 7, 196, 51, 134,
-			83, 104, 15, 10, 199, 13, 165, 5, 73, 148, 212, 4, 65, 0, 10, 199, 77, 163, 9, 9, 157, 13, 100, 15, 7, 196, 105, 41, 196, 220,
-			15, 7, 196, 107, 37, 68, 220, 15, 6, 195, 209, 2, 109, 15, 7, 196, 77, 12, 68, 220, 15, 7, 196, 9, 41, 196, 220, 15, 14, 69,
-			88, 149, 129, 12, 80, 84, 37, 84, 35, 76, 109, 0, 0, 6, 195, 80, 240, 218, 15, 0, 10, 199, 92, 50, 18, 104, 50, 83, 104, 15,
-			6, 195, 81, 43, 66, 15, 8, 197, 77, 12, 167, 19, 112, 15, 6, 195, 53, 38, 133, 15, 7, 196, 48, 115, 137, 40, 15, 0, 6, 195,
-			64, 145, 76, 15, 0, 6, 195, 209, 2, 113, 15, 18, 71, 13, 35, 201, 77, 48, 78, 80, 49, 51, 40, 35, 89, 6, 35, 68, 0, 0,
-			0, 8, 197, 54, 114, 242, 9, 144, 15, 8, 197, 52, 155, 114, 9, 144, 15, 8, 197, 50, 210, 242, 9, 144, 15, 7, 196, 104, 115, 137,
-			40, 15, 0, 7, 196, 104, 217, 210, 104, 15, 8, 197, 104, 210, 76, 13, 160, 15, 8, 197, 52, 150, 132, 73, 160, 15, 6, 195, 47, 37,
-			114, 15, 8, 197, 29, 86, 132, 73, 160, 15, 18, 71, 12, 128, 78, 80, 147, 12, 100, 91, 35, 50, 47, 37, 57, 37, 0, 67, 0, 6,
-			195, 107, 139, 114, 15, 7, 196, 104, 114, 109, 200, 15, 7, 196, 104, 66, 173, 200, 15, 6, 195, 95, 139, 114, 15, 7, 196, 93, 162, 109,
-			200, 15, 7, 196, 92, 114, 109, 200, 15, 7, 196, 92, 50, 109, 200, 15, 7, 196, 208, 210, 65, 200, 15, 7, 196, 48, 115, 173, 200, 15,
-			0, 8, 197, 93, 52, 9, 183, 32, 15, 8, 197, 80, 50, 14, 183, 32, 15, 8, 197, 64, 50, 14, 183, 32, 15, 8, 197, 17, 33, 206,
-			183, 32, 15, 8, 197, 13, 162, 206, 183, 32, 15, 0, 8, 197, 105, 54, 129, 73, 0, 15, 0, 6, 195, 203, 134, 74, 15, 6, 195, 200,
-			17, 55, 15, 7, 196, 51, 67, 137, 40, 15, 6, 195, 44, 192, 80, 15, 0, 9, 198, 93, 54, 131, 104, 84, 0, 15, 10, 199, 11, 17,
-			26, 36, 80, 201, 20, 76, 10, 199, 40, 84, 212, 23, 64, 201, 20, 76, 7, 195, 80, 81, 207, 72, 10, 0, 6, 195, 92, 155, 120, 15,
-			6, 195, 45, 43, 120, 15, 9, 198, 5, 32, 200, 37, 33, 74, 67, 0, 0, 7, 196, 105, 114, 69, 220, 15, 18, 67, 12, 131, 208, 76,
-			111, 48, 89, 40, 37, 0, 81, 115, 117, 101, 121, 32, 6, 195, 40, 84, 212, 76, 0, 7, 196, 93, 38, 133, 64, 15, 8, 197, 76, 50,
-			50, 23, 64, 15, 8, 197, 76, 50, 50, 7, 64, 15, 0, 6, 195, 104, 193, 74, 15, 6, 195, 79, 37, 120, 15, 6, 195, 48, 80, 218,
-			15, 0, 7, 196, 104, 116, 129, 40, 15, 9, 198, 77, 160, 218, 196, 77, 192, 15, 12, 69, 88, 243, 196, 60, 240, 84, 40, 72, 40, 0,
-			0, 9, 198, 76, 50, 12, 39, 67, 89, 15, 8, 197, 104, 210, 69, 73, 160, 15, 0, 6, 18, 66, 107, 97, 99, 104, 0, 107, 196, 153,
-			0, 107, 196, 133, 0, 107, 111, 109, 0, 107, 97, 0, 107, 105, 0, 99, 101, 0, 107, 111, 0, 7, 6, 100, 103, 0, 4, 1, 101, 122,
-			114, 112, 3, 72, 81, 0, 8, 97, 110, 0, 8, 97, 110, 101, 105, 110, 0, 8, 97, 110, 111, 112, 0, 8, 97, 110, 111, 112, 101, 105,
-			110, 0, 8, 111, 0, 8, 111, 101, 105, 110, 0, 8, 111, 111, 112, 0, 8, 111, 111, 112, 101, 105, 110, 0, 8, 111, 112, 0, 8, 111,
-			112, 101, 105, 110, 0, 8, 111, 112, 111, 112, 0, 8, 111, 112, 111, 112, 101, 105, 110, 0, 4, 3, 75, 0, 101, 2, 32, 0, 7, 6,
-			111, 101, 0, 4, 1, 106, 2, 114, 3, 109, 0, 1, 106, 108, 0, 1, 115, 2, 114, 0, 1, 106, 99, 3, 111, 109, 0, 7, 6, 112,
-			104, 0, 3, 83, 0, 7, 6, 115, 104, 0, 4, 8, 105, 102, 2, 97, 114, 109, 111, 110, 3, 89, 101, 0, 8, 107, 101, 0, 8, 121,
-			100, 0, 3, 91, 0, 105, 114, 101, 3, 91, 35, 57, 109, 51, 0, 7, 6, 116, 104, 0, 4, 8, 3, 47, 0, 8, 101, 2, 97, 110,
-			97, 107, 0, 101, 8, 2, 32, 3, 72, 109, 0, 101, 119, 3, 83, 57, 40, 0, 117, 110, 100, 101, 114, 98, 105, 8, 2, 114, 100, 3,
-			83, 109, 50, 72, 109, 51, 71, 109, 0, 97, 110, 107, 8, 3, 83, 109, 68, 49, 0, 3, 89, 0, 2, 105, 101, 32, 3, 95, 0, 7,
-			6, 116, 122, 0, 2, 197, 130, 3, 47, 88, 0, 3, 117, 0, 7, 6, 195, 164, 0, 3, 109, 0, 7, 6, 195, 165, 0, 3, 111, 0,
-			7, 6, 195, 166, 0, 3, 109, 0, 7, 6, 195, 173, 0, 3, 37, 0, 2, 17, 65, 3, 37, 57, 0, 7, 6, 195, 177, 0, 3, 67,
-			0, 2, 17, 65, 3, 67, 38, 0, 7, 6, 195, 179, 0, 4, 1, 21, 2, 17, 67, 197, 130, 98, 121, 32, 3, 8, 40, 0, 1, 21,
-			2, 17, 67, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 197, 155, 32, 0, 3, 40, 0, 7, 6, 195, 182,
-			0, 3, 109, 0, 7, 6, 195, 184, 0, 3, 109, 0, 7, 6, 195, 188, 0, 3, 37, 0, 7, 6, 196, 133, 0, 4, 2, 108, 3, 111,
-			0, 2, 197, 130, 0, 4, 2, 99, 3, 111, 50, 0, 2, 100, 0, 2, 116, 0, 4, 2, 98, 3, 111, 65, 0, 2, 112, 0, 4, 2,
-			99, 105, 3, 111, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197, 186, 0, 2, 196, 135, 0, 4, 2, 103, 3, 111, 68, 0, 2, 107, 0,
-			3, 114, 0, 4, 2, 32, 3, 114, 10, 0, 2, 32, 17, 65, 0, 7, 6, 196, 135, 0, 3, 119, 0, 4, 2, 98, 3, 120, 0, 2,
-			103, 0, 7, 6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 153, 0, 4, 1, 105, 2, 116, 110, 97, 3, 109, 0, 2, 32, 0, 2, 108,
-			0, 2, 197, 130, 0, 2, 32, 17, 65, 3, 109, 10, 0, 4, 2, 99, 3, 109, 50, 0, 2, 100, 0, 2, 116, 0, 4, 2, 98, 3,
-			109, 65, 0, 2, 112, 0, 4, 2, 99, 105, 3, 109, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197, 186, 0, 2, 115, 105, 0, 2, 196,
-			135, 0, 2, 197, 155, 0, 196, 135, 2, 100, 122, 105, 101, 0, 4, 2, 103, 3, 109, 68, 0, 2, 107, 0, 3, 113, 0, 7, 6, 197,
-			130, 0, 2, 32, 3, 0, 3, 58, 0, 4, 1, 17, 65, 2, 32, 3, 58, 10, 0, 1, 115, 121, 109, 2, 32, 0, 98, 121, 109, 1,
-			21, 2, 32, 14, 128, 128, 129, 3, 65, 0, 98, 121, 197, 155, 1, 21, 2, 32, 14, 128, 128, 129, 3, 97, 0, 7, 6, 197, 132, 0,
-			3, 67, 0, 7, 6, 197, 153, 0, 3, 90, 0, 7, 6, 197, 155, 0, 196, 135, 2, 100, 122, 105, 101, 3, 96, 0, 3, 97, 0, 7,
-			6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 186, 0, 3, 96, 0, 2, 32, 3, 97, 0, 7, 6, 197, 188, 0, 3, 90, 0, 2, 32,
-			3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 108, 108, 111, 119, 101, 101, 1, 104, 2, 110, 32, 3, 6, 35, 55,
-			111, 58, 112, 0, 4, 1, 21, 2, 197, 130, 98, 121, 32, 3, 8, 35, 0, 1, 21, 2, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2,
-			197, 130, 98, 121, 197, 155, 32, 0, 1, 130, 197, 21, 2, 98, 121, 32, 0, 1, 130, 197, 21, 2, 98, 121, 109, 32, 0, 1, 130, 197,
-			21, 2, 98, 121, 197, 155, 32, 0, 3, 35, 0, 2, 32, 3, 35, 10, 0, 4, 105, 8, 107, 2, 114, 3, 35, 37, 0, 105, 8, 116,
-			108, 97, 2, 114, 0, 114, 99, 121, 8, 2, 21, 14, 129, 132, 132, 3, 35, 51, 117, 112, 0, 108, 108, 111, 119, 101, 101, 1, 104, 2,
-			110, 3, 35, 55, 111, 58, 112, 0, 101, 8, 2, 114, 17, 65, 3, 35, 109, 0, 4, 101, 2, 32, 3, 109, 0, 101, 8, 0, 105, 1,
-			17, 67, 2, 114, 0, 99, 107, 117, 2, 112, 3, 109, 49, 35, 0, 114, 99, 104, 105, 101, 8, 3, 109, 51, 76, 37, 0, 114, 99, 104,
-			105, 101, 8, 2, 17, 67, 3, 109, 51, 76, 38, 109, 0, 108, 8, 104, 2, 108, 3, 111, 0, 7, 6, 98, 0, 4, 2, 32, 3, 48,
-			0, 197, 130, 1, 97, 106, 2, 107, 17, 65, 0, 3, 71, 0, 2, 105, 3, 71, 38, 0, 105, 2, 17, 65, 3, 71, 38, 57, 0, 4,
-			101, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 3, 71, 109, 34, 81, 0, 195, 182, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128,
-			132, 0, 195, 184, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 0, 111, 114, 103, 1, 21, 21, 2, 32, 14, 129, 128, 132, 3, 71,
-			111, 34, 81, 0, 7, 6, 99, 0, 104, 97, 2, 109, 112, 105, 3, 47, 90, 109, 0, 4, 1, 17, 65, 118, 3, 49, 0, 1, 101, 115,
-			111, 99, 2, 97, 110, 115, 0, 1, 105, 100, 2, 116, 17, 65, 0, 2, 97, 99, 105, 101, 32, 0, 2, 97, 108, 118, 0, 2, 97, 116,
-			32, 0, 2, 97, 116, 97, 32, 0, 2, 97, 116, 97, 109, 105, 32, 0, 2, 97, 116, 101, 109, 32, 0, 2, 97, 116, 111, 32, 0, 2,
-			97, 116, 111, 109, 32, 0, 2, 108, 105, 112, 0, 2, 111, 115, 101, 99, 97, 110, 115, 0, 2, 111, 115, 105, 110, 0, 2, 111, 116, 97,
-			110, 103, 0, 2, 115, 0, 8, 2, 97, 98, 101, 114, 110, 101, 116, 0, 8, 2, 97, 108, 101, 110, 100, 0, 8, 2, 97, 110, 0, 8,
-			2, 97, 112, 112, 0, 8, 2, 97, 112, 115, 32, 0, 8, 2, 97, 112, 115, 108, 111, 0, 8, 2, 97, 114, 97, 118, 0, 8, 2, 97,
-			114, 108, 0, 8, 2, 97, 114, 112, 0, 8, 2, 97, 114, 116, 0, 8, 2, 97, 114, 118, 0, 8, 2, 108, 17, 65, 0, 8, 2, 111,
-			109, 0, 8, 2, 111, 110, 17, 67, 0, 8, 2, 111, 114, 17, 67, 0, 8, 2, 111, 119, 98, 111, 0, 8, 2, 114, 0, 8, 2, 117,
-			109, 117, 108, 0, 8, 101, 100, 2, 111, 114, 0, 8, 110, 105, 108, 2, 111, 108, 110, 0, 8, 114, 97, 2, 97, 100, 105, 97, 32, 0,
-			8, 114, 97, 2, 97, 100, 105, 105, 32, 0, 8, 114, 97, 2, 97, 100, 105, 111, 32, 0, 8, 114, 97, 2, 97, 100, 105, 196, 133, 32,
-			0, 8, 114, 97, 2, 97, 100, 105, 196, 153, 32, 0, 8, 115, 105, 100, 2, 111, 0, 99, 2, 97, 99, 105, 101, 32, 0, 99, 2, 97,
-			116, 17, 65, 0, 99, 2, 97, 116, 32, 0, 99, 2, 97, 116, 97, 32, 0, 99, 2, 97, 116, 97, 109, 105, 32, 0, 99, 2, 97, 116,
-			101, 109, 32, 0, 99, 2, 97, 116, 111, 32, 0, 99, 2, 97, 116, 111, 109, 32, 0, 99, 8, 111, 109, 2, 17, 65, 0, 104, 8, 2,
-			114, 105, 115, 116, 111, 0, 107, 1, 17, 65, 118, 0, 107, 1, 111, 108, 2, 32, 0, 107, 1, 111, 108, 2, 97, 32, 0, 107, 1, 111,
-			108, 2, 105, 101, 109, 32, 0, 107, 1, 111, 108, 2, 117, 32, 0, 107, 8, 101, 100, 0, 107, 8, 111, 114, 2, 17, 65, 0, 4, 8,
-			2, 97, 109, 101, 109, 98, 101, 114, 116, 3, 49, 35, 0, 97, 108, 2, 108, 17, 65, 0, 97, 108, 121, 2, 112, 115, 3, 49, 35, 55,
-			37, 0, 97, 115, 99, 3, 49, 35, 89, 49, 0, 117, 114, 105, 101, 8, 3, 49, 37, 51, 37, 0, 114, 111, 105, 115, 115, 8, 3, 49,
-			51, 34, 40, 35, 89, 0, 114, 97, 99, 107, 3, 49, 51, 35, 49, 0, 114, 101, 101, 110, 114, 101, 97, 8, 115, 2, 100, 3, 49, 51,
-			37, 50, 51, 37, 0, 114, 101, 115, 99, 2, 101, 110, 100, 3, 49, 51, 109, 91, 76, 0, 108, 111, 119, 8, 2, 110, 3, 49, 55, 35,
-			58, 0, 108, 101, 97, 8, 2, 17, 67, 3, 49, 55, 37, 0, 108, 111, 105, 115, 8, 2, 111, 3, 49, 55, 40, 35, 88, 0, 108, 111,
-			99, 104, 8, 2, 97, 114, 100, 3, 49, 55, 111, 91, 0, 4, 97, 8, 2, 109, 3, 49, 109, 0, 117, 8, 2, 114, 108, 105, 0, 97,
-			108, 2, 108, 3, 49, 111, 0, 111, 112, 121, 119, 114, 105, 8, 2, 116, 3, 49, 111, 48, 112, 51, 35, 57, 0, 111, 99, 107, 8, 3,
-			49, 111, 49, 0, 111, 110, 99, 8, 2, 101, 114, 116, 3, 49, 111, 50, 76, 0, 111, 97, 99, 104, 8, 3, 49, 111, 58, 76, 0, 4,
-			99, 2, 105, 32, 3, 76, 0, 99, 2, 105, 97, 32, 0, 99, 2, 105, 99, 104, 32, 0, 99, 2, 105, 101, 103, 111, 32, 0, 99, 2,
-			105, 101, 109, 32, 0, 99, 2, 105, 101, 109, 117, 32, 0, 99, 2, 105, 105, 101, 32, 0, 99, 2, 105, 109, 32, 0, 99, 2, 105, 109,
-			105, 32, 0, 99, 2, 105, 110, 97, 32, 0, 99, 2, 105, 110, 101, 109, 32, 0, 99, 2, 105, 110, 105, 101, 32, 0, 99, 2, 105, 110,
-			111, 32, 0, 99, 2, 105, 111, 32, 0, 104, 1, 17, 65, 118, 0, 104, 8, 2, 105, 112, 0, 122, 0, 104, 97, 110, 2, 110, 101, 108,
-			3, 76, 35, 0, 104, 97, 114, 108, 101, 8, 2, 115, 3, 76, 35, 51, 55, 89, 0, 104, 111, 119, 8, 2, 100, 101, 114, 3, 76, 35,
-			58, 0, 104, 105, 101, 8, 2, 102, 3, 76, 37, 0, 104, 105, 112, 112, 101, 110, 100, 97, 108, 8, 2, 17, 65, 3, 76, 37, 48, 109,
-			50, 72, 109, 57, 55, 0, 105, 99, 8, 2, 101, 114, 111, 110, 3, 76, 37, 76, 0, 104, 97, 108, 108, 101, 110, 103, 8, 2, 101, 114,
-			3, 76, 109, 55, 109, 50, 75, 0, 8, 2, 105, 110, 101, 114, 3, 89, 0, 4, 105, 1, 114, 97, 2, 97, 32, 3, 89, 37, 57, 0,
-			105, 1, 114, 97, 2, 105, 32, 0, 105, 1, 114, 97, 2, 111, 32, 0, 105, 1, 114, 97, 2, 196, 133, 32, 0, 105, 1, 114, 97, 2,
-			196, 153, 32, 0, 4, 105, 1, 17, 65, 2, 97, 110, 97, 32, 3, 89, 57, 0, 105, 1, 17, 65, 2, 97, 110, 101, 109, 32, 0, 105,
-			1, 17, 65, 2, 97, 110, 105, 101, 32, 0, 105, 1, 17, 65, 2, 97, 110, 111, 32, 0, 105, 1, 17, 65, 2, 97, 110, 111, 119, 105,
-			32, 0, 105, 1, 105, 108, 2, 97, 32, 0, 105, 1, 105, 108, 2, 105, 32, 0, 105, 1, 105, 108, 2, 111, 32, 0, 105, 1, 105, 108,
-			2, 196, 133, 32, 0, 105, 1, 105, 108, 2, 196, 153, 32, 0, 4, 104, 2, 101, 114, 114, 3, 91, 0, 104, 2, 101, 118, 0, 104, 105,
-			99, 8, 2, 97, 103, 17, 65, 3, 91, 37, 49, 0, 104, 111, 112, 105, 8, 2, 110, 3, 91, 111, 48, 109, 0, 104, 2, 105, 3, 99,
-			0, 104, 3, 107, 0, 104, 105, 1, 121, 115, 112, 2, 97, 3, 107, 37, 0, 104, 105, 2, 17, 65, 3, 107, 57, 0, 4, 3, 117, 0,
-			1, 105, 118, 2, 101, 0, 8, 2, 105, 114, 0, 8, 2, 111, 109, 98, 101, 114, 0, 8, 2, 111, 109, 98, 114, 17, 65, 0, 8, 2,
-			111, 109, 105, 101, 115, 0, 8, 2, 111, 109, 105, 110, 117, 0, 4, 2, 105, 3, 119, 0, 105, 2, 17, 65, 0, 7, 6, 100, 0, 2,
-			32, 3, 47, 0, 3, 72, 0, 105, 2, 17, 65, 3, 72, 57, 0, 4, 197, 188, 8, 97, 110, 3, 72, 90, 0, 197, 188, 8, 97, 110,
-			111, 112, 0, 197, 188, 8, 111, 0, 197, 188, 8, 111, 112, 0, 4, 122, 105, 8, 97, 110, 2, 101, 109, 3, 72, 96, 0, 122, 105, 8,
-			111, 112, 2, 101, 109, 0, 197, 188, 3, 75, 0, 197, 188, 2, 32, 3, 76, 0, 2, 105, 3, 116, 0, 4, 105, 101, 115, 2, 101, 108,
-			3, 116, 37, 88, 0, 105, 101, 115, 2, 108, 17, 65, 0, 122, 2, 32, 3, 117, 0, 122, 3, 118, 0, 197, 186, 2, 32, 3, 119, 0,
-			4, 122, 2, 105, 3, 120, 0, 122, 105, 2, 17, 65, 0, 197, 186, 0, 7, 6, 101, 0, 4, 1, 21, 2, 17, 67, 197, 130, 98, 121,
-			32, 3, 8, 109, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 17, 67, 197, 130, 98, 121, 197, 155, 32, 0,
-			4, 105, 8, 2, 17, 67, 3, 35, 57, 0, 105, 8, 108, 107, 2, 110, 0, 4, 97, 1, 100, 2, 108, 101, 114, 3, 37, 0, 97, 1,
-			112, 115, 2, 107, 0, 97, 1, 116, 0, 97, 8, 17, 67, 2, 32, 0, 97, 8, 104, 2, 108, 101, 0, 97, 8, 108, 2, 100, 0, 101,
-			2, 110, 0, 101, 8, 17, 67, 2, 32, 0, 97, 108, 105, 116, 121, 1, 114, 2, 32, 3, 37, 6, 109, 55, 37, 47, 112, 0, 109, 97,
-			105, 108, 8, 3, 37, 65, 109, 57, 55, 0, 97, 115, 1, 108, 2, 105, 110, 3, 37, 88, 0, 4, 3, 109, 0, 97, 1, 114, 2, 103,
-			97, 110, 0, 97, 8, 104, 2, 100, 0, 2, 32, 17, 65, 3, 109, 10, 0, 97, 1, 116, 2, 116, 114, 3, 109, 35, 0, 97, 118, 121,
-			1, 104, 2, 25, 3, 109, 84, 37, 0, 1, 105, 2, 32, 3, 110, 0, 117, 2, 116, 115, 99, 104, 3, 111, 57, 0, 7, 6, 102, 0,
-			3, 83, 0, 105, 2, 17, 65, 3, 83, 38, 57, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 101, 110, 116, 108, 101, 109, 97, 110, 8,
-			3, 75, 109, 50, 47, 109, 55, 65, 109, 50, 0, 4, 101, 111, 114, 103, 105, 8, 2, 97, 32, 3, 75, 111, 51, 75, 57, 0, 101, 111,
-			114, 103, 105, 8, 2, 105, 32, 0, 101, 111, 114, 103, 105, 8, 2, 111, 32, 0, 101, 111, 114, 103, 105, 8, 2, 196, 133, 32, 0, 101,
-			111, 114, 103, 105, 8, 2, 196, 153, 32, 0, 4, 3, 81, 0, 104, 0, 2, 105, 3, 81, 38, 0, 105, 1, 105, 104, 2, 101, 3, 81,
-			57, 0, 197, 130, 2, 32, 3, 81, 58, 0, 97, 116, 101, 2, 115, 3, 81, 109, 57, 47, 0, 7, 6, 104, 0, 2, 105, 3, 99, 0,
-			3, 101, 0, 105, 2, 17, 65, 3, 101, 57, 0, 7, 6, 105, 0, 114, 101, 8, 102, 2, 102, 111, 120, 32, 3, 6, 35, 57, 109, 51,
-			0, 4, 1, 21, 2, 98, 121, 197, 155, 99, 105, 101, 32, 3, 8, 37, 0, 1, 21, 2, 98, 121, 197, 155, 109, 121, 32, 0, 1, 97,
-			100, 117, 21, 2, 18, 66, 32, 0, 1, 97, 104, 99, 21, 2, 18, 66, 32, 0, 1, 97, 122, 111, 21, 2, 18, 66, 32, 0, 1, 98,
-			97, 108, 21, 2, 18, 66, 32, 0, 1, 102, 97, 114, 21, 2, 18, 66, 32, 0, 1, 102, 105, 108, 21, 2, 18, 66, 32, 0, 1, 102,
-			111, 114, 21, 2, 18, 66, 32, 0, 1, 102, 121, 99, 21, 2, 18, 66, 32, 0, 1, 103, 97, 114, 21, 2, 18, 66, 32, 0, 1, 103,
-			111, 103, 21, 2, 18, 66, 32, 0, 1, 103, 111, 108, 2, 18, 66, 32, 0, 1, 103, 114, 117, 21, 2, 18, 66, 32, 0, 1, 104, 99,
-			121, 21, 2, 18, 66, 32, 0, 1, 108, 21, 2, 98, 121, 32, 0, 1, 108, 21, 2, 197, 155, 99, 105, 101, 32, 0, 1, 108, 21, 2,
-			197, 155, 109, 121, 32, 0, 1, 108, 97, 116, 21, 2, 18, 66, 32, 0, 1, 108, 98, 117, 21, 2, 18, 66, 32, 0, 1, 108, 107, 121,
-			21, 2, 18, 66, 32, 0, 1, 108, 111, 98, 21, 2, 18, 66, 32, 0, 1, 108, 111, 104, 21, 2, 18, 66, 32, 0, 1, 108, 112, 101,
-			21, 2, 18, 66, 32, 0, 1, 108, 117, 97, 21, 2, 18, 66, 32, 0, 1, 109, 97, 110, 21, 2, 18, 66, 32, 0, 1, 109, 97, 114,
-			21, 2, 18, 66, 32, 0, 1, 109, 101, 108, 21, 2, 18, 66, 32, 0, 1, 109, 101, 110, 21, 2, 18, 66, 32, 0, 1, 109, 101, 115,
-			21, 2, 18, 66, 32, 0, 1, 109, 105, 109, 2, 18, 66, 32, 0, 1, 109, 105, 110, 21, 2, 18, 66, 32, 0, 1, 109, 108, 97, 21,
-			2, 18, 66, 32, 0, 1, 109, 111, 107, 21, 2, 18, 66, 32, 0, 1, 109, 111, 110, 21, 2, 18, 66, 32, 0, 1, 109, 111, 114, 21,
-			2, 18, 66, 32, 0, 1, 109, 114, 101, 21, 2, 18, 66, 32, 0, 1, 109, 114, 111, 21, 2, 18, 66, 32, 0, 1, 109, 115, 106, 21,
-			2, 18, 66, 32, 0, 1, 109, 116, 121, 21, 2, 18, 66, 32, 0, 1, 110, 21, 2, 98, 121, 32, 0, 1, 110, 21, 2, 197, 155, 99,
-			105, 101, 32, 0, 1, 110, 97, 103, 21, 2, 18, 66, 32, 0, 1, 110, 97, 104, 21, 2, 18, 66, 32, 0, 1, 110, 97, 116, 21, 2,
-			18, 66, 32, 0, 1, 110, 97, 117, 21, 2, 18, 66, 32, 0, 1, 110, 101, 103, 21, 2, 18, 66, 32, 0, 1, 110, 104, 99, 21, 2,
-			18, 66, 32, 0, 1, 110, 105, 108, 21, 2, 18, 66, 32, 0, 1, 110, 111, 101, 21, 2, 18, 66, 32, 0, 1, 110, 111, 102, 21, 2,
-			18, 66, 32, 0, 1, 110, 111, 105, 21, 2, 18, 66, 32, 0, 1, 110, 111, 109, 21, 2, 18, 66, 32, 0, 1, 110, 111, 110, 21, 2,
-			18, 66, 32, 0, 1, 110, 111, 112, 21, 2, 18, 66, 32, 0, 1, 110, 111, 114, 21, 2, 18, 66, 32, 0, 1, 110, 111, 116, 2, 99,
-			101, 32, 0, 1, 110, 111, 116, 2, 107, 111, 32, 0, 1, 110, 111, 116, 2, 107, 196, 133, 32, 0, 1, 110, 111, 116, 2, 107, 196, 153,
-			32, 0, 1, 110, 111, 116, 97, 116, 2, 107, 97, 32, 0, 1, 110, 111, 116, 97, 116, 2, 107, 97, 99, 104, 32, 0, 1, 110, 111, 116,
-			97, 116, 2, 107, 105, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 97, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 97, 99,
-			104, 32, 0, 1, 110, 111, 116, 107, 101, 116, 2, 107, 105, 32, 0, 1, 110, 117, 109, 21, 2, 18, 66, 32, 0, 1, 111, 114, 101, 21,
-			2, 18, 66, 32, 0, 1, 112, 111, 114, 21, 2, 18, 66, 32, 0, 1, 112, 112, 105, 21, 2, 18, 66, 32, 0, 1, 119, 97, 108, 21,
-			2, 18, 66, 32, 0, 2, 197, 130, 98, 121, 32, 0, 2, 197, 130, 98, 121, 109, 32, 0, 2, 197, 130, 98, 121, 197, 155, 32, 0, 8,
-			109, 114, 101, 116, 2, 18, 66, 32, 0, 8, 109, 116, 121, 114, 2, 18, 66, 32, 0, 8, 110, 111, 116, 2, 107, 97, 32, 0, 8, 110,
-			111, 116, 2, 107, 97, 99, 104, 32, 0, 8, 110, 111, 116, 2, 107, 105, 32, 0, 8, 112, 101, 2, 18, 66, 0, 4, 97, 1, 17, 67,
-			21, 2, 197, 130, 121, 98, 121, 32, 3, 8, 38, 35, 0, 97, 1, 17, 67, 21, 2, 197, 130, 121, 98, 121, 197, 155, 99, 105, 101, 32,
-			0, 97, 1, 17, 67, 21, 2, 197, 130, 121, 98, 121, 197, 155, 109, 121, 32, 0, 4, 101, 1, 17, 67, 21, 2, 108, 105, 98, 121, 32,
-			3, 8, 38, 109, 0, 101, 1, 17, 67, 21, 2, 108, 105, 98, 121, 197, 155, 99, 105, 101, 32, 0, 101, 1, 17, 67, 21, 2, 108, 105,
-			98, 121, 197, 155, 109, 121, 32, 0, 8, 114, 100, 2, 118, 3, 35, 57, 0, 99, 8, 109, 2, 114, 111, 3, 35, 57, 49, 0, 109, 101,
-			8, 116, 3, 35, 57, 65, 0, 109, 101, 8, 116, 2, 114, 3, 35, 57, 65, 109, 0, 114, 101, 8, 102, 2, 102, 111, 3, 35, 57, 109,
-			51, 0, 4, 3, 37, 0, 8, 110, 105, 109, 111, 100, 2, 99, 101, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 97, 32, 12,
-			12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 97, 99, 104, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 105, 32, 12, 12, 0,
-			8, 110, 105, 109, 111, 100, 2, 107, 111, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 111, 109, 32, 12, 12, 0, 8, 110, 105,
-			109, 111, 100, 2, 107, 196, 133, 32, 12, 12, 0, 8, 110, 105, 109, 111, 100, 2, 107, 196, 153, 32, 12, 12, 0, 8, 110, 111, 114, 101,
-			119, 2, 99, 101, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 97, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 97,
-			99, 104, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 105, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 111, 32, 12,
-			12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 111, 109, 32, 12, 12, 0, 8, 110, 111, 114, 101, 119, 2, 107, 196, 133, 32, 12, 12, 0,
-			8, 110, 111, 114, 101, 119, 2, 107, 196, 153, 32, 12, 12, 0, 4, 105, 1, 107, 97, 114, 2, 32, 3, 37, 57, 37, 0, 105, 1, 109,
-			188, 197, 2, 32, 0, 1, 17, 67, 2, 17, 65, 3, 38, 0, 8, 108, 107, 2, 101, 3, 38, 37, 57, 0, 101, 1, 17, 67, 2, 32,
-			3, 38, 110, 0, 4, 1, 17, 65, 2, 17, 65, 3, 57, 0, 2, 17, 65, 32, 12, 0, 7, 6, 106, 0, 3, 57, 0, 8, 2, 105,
-			109, 3, 75, 0, 101, 97, 2, 110, 115, 3, 75, 37, 0, 4, 97, 99, 107, 8, 2, 32, 3, 75, 109, 49, 0, 97, 99, 107, 8, 2,
-			115, 0, 97, 99, 107, 8, 2, 121, 0, 97, 99, 107, 121, 8, 2, 32, 3, 75, 109, 49, 37, 0, 97, 109, 101, 115, 8, 3, 75, 109,
-			57, 65, 89, 0, 97, 109, 101, 115, 105, 8, 2, 101, 32, 3, 75, 109, 57, 65, 97, 0, 101, 102, 102, 8, 3, 75, 109, 83, 0, 97,
-			122, 122, 3, 75, 109, 88, 0, 97, 122, 122, 2, 32, 3, 75, 109, 89, 0, 111, 104, 110, 8, 3, 75, 111, 50, 0, 111, 110, 97, 116,
-			104, 8, 3, 75, 111, 50, 35, 47, 0, 111, 104, 110, 105, 8, 2, 101, 3, 75, 111, 67, 38, 0, 97, 99, 113, 117, 101, 115, 8, 3,
-			90, 35, 49, 0, 8, 2, 105, 109, 101, 110, 3, 107, 0, 7, 6, 107, 0, 3, 49, 0, 108, 111, 119, 8, 2, 110, 3, 49, 55, 35,
-			58, 0, 197, 130, 2, 32, 3, 49, 58, 0, 7, 6, 108, 0, 3, 55, 0, 2, 32, 3, 55, 10, 0, 105, 8, 111, 112, 2, 17, 65,
-			3, 55, 37, 0, 105, 2, 17, 65, 3, 55, 57, 0, 7, 6, 109, 0, 3, 65, 0, 2, 32, 3, 65, 10, 0, 106, 8, 2, 114, 17,
-			65, 3, 65, 35, 57, 111, 0, 105, 8, 101, 105, 122, 2, 17, 65, 3, 65, 38, 0, 105, 1, 17, 65, 2, 17, 65, 3, 65, 57, 0,
-			99, 8, 2, 14, 129, 132, 130, 3, 65, 109, 49, 0, 7, 6, 110, 0, 3, 50, 0, 2, 32, 3, 50, 10, 0, 116, 111, 110, 1, 17,
-			65, 21, 2, 32, 14, 129, 128, 132, 3, 50, 47, 111, 50, 0, 103, 1, 97, 2, 101, 108, 3, 50, 75, 0, 4, 111, 102, 102, 2, 32,
-			14, 129, 128, 132, 3, 50, 111, 84, 0, 111, 102, 102, 2, 97, 32, 0, 111, 102, 102, 2, 97, 99, 104, 32, 0, 111, 102, 102, 2, 97,
-			109, 105, 32, 0, 111, 102, 102, 2, 101, 109, 32, 0, 111, 102, 102, 2, 105, 101, 32, 0, 111, 102, 102, 2, 111, 109, 32, 0, 111, 102,
-			102, 2, 111, 119, 105, 32, 0, 111, 102, 102, 2, 117, 32, 0, 4, 2, 99, 105, 3, 67, 0, 2, 100, 122, 105, 0, 2, 100, 197, 186,
-			0, 2, 105, 0, 2, 196, 135, 0, 4, 105, 2, 17, 65, 3, 67, 38, 0, 121, 2, 39, 101, 103, 111, 32, 0, 121, 2, 39, 101, 109,
-			117, 32, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 103, 116, 111, 110, 1, 17, 65, 21, 2, 32, 14, 129, 128, 133, 3, 68, 81, 47,
-			111, 50, 0, 7, 6, 111, 0, 117, 116, 8, 103, 97, 114, 2, 32, 3, 6, 40, 0, 119, 8, 100, 2, 110, 3, 35, 58, 0, 117, 116,
-			115, 105, 100, 8, 3, 35, 58, 117, 35, 57, 72, 0, 105, 8, 112, 2, 114, 111, 116, 17, 65, 3, 40, 58, 35, 0, 101, 116, 104, 3,
-			109, 47, 0, 3, 111, 0, 2, 32, 17, 65, 3, 111, 12, 10, 0, 116, 101, 98, 111, 111, 8, 110, 2, 17, 67, 3, 111, 58, 47, 71,
-			40, 0, 7, 6, 112, 0, 3, 48, 0, 4, 197, 130, 8, 2, 99, 3, 48, 40, 58, 49, 111, 84, 50, 37, 0, 197, 130, 8, 2, 107,
-			0, 4, 105, 8, 111, 107, 2, 17, 65, 3, 48, 57, 0, 105, 8, 111, 107, 111, 116, 111, 102, 2, 17, 65, 0, 4, 112, 197, 130, 8,
-			2, 99, 3, 48, 111, 47, 48, 40, 58, 49, 111, 84, 50, 37, 0, 112, 197, 130, 8, 2, 107, 0, 7, 6, 113, 0, 3, 49, 0, 117,
-			2, 17, 65, 3, 49, 84, 0, 7, 6, 114, 0, 4, 3, 51, 0, 1, 17, 65, 2, 122, 197, 130, 0, 1, 25, 2, 17, 65, 0, 1,
-			32, 17, 65, 2, 17, 65, 0, 1, 97, 109, 2, 122, 108, 105, 110, 0, 1, 97, 109, 2, 122, 110, 0, 1, 97, 109, 100, 111, 2, 122,
-			97, 0, 2, 122, 105, 0, 8, 97, 109, 97, 122, 2, 122, 97, 0, 8, 97, 109, 122, 2, 122, 97, 0, 8, 111, 98, 2, 122, 111, 106,
-			0, 114, 1, 17, 65, 2, 17, 65, 0, 121, 39, 2, 101, 0, 105, 2, 17, 65, 3, 51, 57, 0, 4, 122, 8, 105, 109, 2, 97, 32,
-			12, 12, 12, 3, 51, 88, 0, 122, 8, 105, 109, 2, 97, 99, 104, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 97, 109, 105, 32, 12,
-			12, 12, 0, 122, 8, 105, 109, 2, 111, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 111, 119, 105, 101, 32, 12, 12, 12, 0, 122, 8,
-			105, 109, 2, 121, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 195, 179, 119, 32, 12, 12, 12, 0, 122, 8, 105, 109, 2, 196, 133, 32,
-			12, 12, 12, 0, 122, 8, 105, 109, 2, 196, 153, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97, 32, 12, 12, 12, 0, 122, 8, 117,
-			109, 2, 97, 99, 104, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97, 109, 105, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 97, 115,
-			105, 99, 104, 108, 0, 122, 8, 117, 109, 2, 111, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 111, 119, 105, 101, 32, 12, 12, 12, 0,
-			122, 8, 117, 109, 2, 121, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 195, 179, 119, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 196,
-			133, 32, 12, 12, 12, 0, 122, 8, 117, 109, 2, 196, 153, 32, 12, 12, 12, 0, 4, 122, 2, 97, 110, 100, 3, 51, 117, 0, 122, 2,
-			105, 110, 105, 32, 0, 122, 2, 105, 110, 105, 99, 104, 32, 0, 122, 2, 105, 110, 105, 101, 103, 111, 32, 0, 122, 2, 105, 110, 105, 101,
-			109, 117, 32, 0, 122, 2, 105, 110, 105, 109, 32, 0, 122, 2, 105, 110, 105, 109, 105, 32, 0, 122, 2, 111, 110, 105, 32, 0, 122, 2,
-			111, 110, 105, 99, 104, 32, 0, 122, 2, 111, 110, 105, 101, 103, 111, 32, 0, 122, 2, 111, 110, 105, 101, 109, 117, 32, 0, 122, 2, 111,
-			110, 105, 109, 32, 0, 122, 2, 111, 110, 105, 109, 105, 32, 0, 122, 3, 90, 0, 4, 122, 1, 99, 2, 17, 65, 3, 91, 0, 122, 1,
-			102, 2, 17, 65, 0, 122, 1, 104, 0, 122, 1, 107, 0, 122, 1, 112, 0, 122, 1, 115, 2, 17, 65, 0, 122, 1, 116, 0, 122, 1,
-			122, 99, 2, 17, 65, 0, 122, 1, 122, 115, 2, 17, 65, 0, 122, 1, 135, 196, 2, 17, 65, 0, 122, 1, 155, 197, 2, 17, 65, 0,
-			122, 2, 32, 0, 7, 6, 115, 0, 4, 105, 1, 115, 2, 109, 97, 32, 3, 8, 37, 0, 105, 1, 115, 2, 109, 101, 109, 32, 0, 105,
-			1, 115, 2, 109, 105, 101, 32, 0, 105, 1, 115, 2, 109, 111, 32, 0, 4, 111, 110, 8, 101, 99, 108, 97, 115, 2, 32, 12, 12, 3,
-			8, 89, 111, 50, 0, 111, 110, 8, 105, 116, 97, 112, 2, 32, 12, 12, 0, 8, 97, 117, 113, 2, 105, 3, 88, 0, 3, 89, 0, 4,
-			105, 1, 107, 101, 108, 112, 2, 32, 3, 89, 37, 0, 105, 2, 98, 0, 105, 2, 99, 0, 105, 2, 100, 0, 105, 2, 102, 0, 105, 2,
-			103, 0, 105, 2, 104, 0, 105, 2, 108, 105, 107, 111, 0, 105, 2, 108, 108, 0, 105, 2, 108, 111, 115, 0, 105, 2, 108, 118, 0, 105,
-			2, 109, 0, 105, 2, 110, 103, 0, 105, 2, 110, 117, 115, 0, 105, 2, 113, 0, 105, 2, 114, 0, 105, 2, 116, 0, 105, 2, 118, 0,
-			105, 2, 120, 0, 105, 8, 107, 97, 109, 2, 32, 0, 116, 101, 105, 110, 1, 121, 3, 89, 47, 109, 37, 50, 0, 99, 104, 101, 114, 122,
-			3, 89, 49, 109, 51, 117, 0, 4, 105, 8, 97, 116, 115, 97, 110, 97, 2, 97, 32, 3, 89, 57, 0, 105, 8, 97, 116, 115, 97, 110,
-			97, 2, 105, 32, 0, 105, 8, 97, 116, 115, 97, 110, 97, 2, 111, 32, 0, 105, 8, 97, 116, 115, 97, 110, 97, 2, 196, 133, 32, 0,
-			105, 8, 97, 116, 115, 97, 110, 97, 2, 196, 153, 32, 0, 4, 99, 104, 1, 97, 112, 2, 97, 3, 89, 101, 0, 99, 104, 1, 101, 2,
-			97, 116, 111, 0, 99, 104, 2, 97, 98, 17, 65, 32, 0, 99, 104, 2, 97, 98, 32, 0, 99, 104, 2, 97, 98, 97, 109, 105, 32, 0,
-			99, 104, 2, 97, 98, 101, 109, 32, 0, 99, 104, 2, 97, 98, 105, 101, 32, 0, 99, 104, 2, 97, 98, 111, 109, 0, 99, 104, 2, 97,
-			98, 111, 115, 122, 0, 99, 104, 2, 97, 98, 111, 119, 17, 65, 0, 99, 104, 2, 97, 98, 195, 179, 0, 99, 104, 2, 97, 100, 122, 17,
-			65, 0, 99, 104, 2, 97, 100, 122, 107, 0, 99, 104, 2, 97, 109, 32, 0, 99, 104, 2, 97, 109, 105, 0, 99, 104, 2, 97, 109, 105,
-			17, 65, 0, 99, 104, 2, 97, 114, 97, 107, 116, 0, 99, 104, 2, 101, 100, 17, 65, 0, 99, 104, 2, 101, 100, 32, 0, 99, 104, 2,
-			101, 109, 97, 116, 0, 99, 104, 2, 105, 122, 109, 17, 65, 0, 99, 104, 2, 105, 122, 109, 32, 0, 99, 104, 2, 105, 122, 111, 0, 99,
-			104, 2, 108, 97, 108, 105, 0, 99, 104, 2, 108, 97, 110, 17, 65, 0, 99, 104, 2, 108, 97, 196, 135, 0, 99, 104, 2, 108, 97, 197,
-			130, 0, 99, 104, 2, 108, 101, 108, 105, 0, 99, 104, 2, 108, 117, 100, 110, 17, 65, 0, 99, 104, 2, 110, 105, 101, 32, 0, 99, 104,
-			2, 110, 105, 196, 153, 0, 99, 104, 2, 110, 196, 133, 0, 99, 104, 2, 110, 196, 153, 0, 99, 104, 2, 111, 100, 97, 99, 104, 32, 0,
-			99, 104, 2, 111, 100, 97, 109, 105, 32, 0, 99, 104, 2, 111, 100, 101, 107, 32, 0, 99, 104, 2, 111, 100, 107, 97, 0, 99, 104, 2,
-			111, 100, 107, 105, 0, 99, 104, 2, 111, 100, 107, 105, 101, 109, 32, 0, 99, 104, 2, 111, 100, 107, 111, 119, 0, 99, 104, 2, 111, 100,
-			107, 111, 119, 105, 32, 0, 99, 104, 2, 111, 100, 107, 117, 32, 0, 99, 104, 2, 111, 100, 107, 195, 179, 0, 99, 104, 2, 111, 100, 111,
-			119, 0, 99, 104, 2, 111, 100, 121, 32, 0, 99, 104, 2, 111, 100, 122, 105, 0, 99, 104, 2, 111, 100, 122, 196, 133, 0, 99, 104, 2,
-			111, 100, 122, 196, 153, 0, 99, 104, 2, 111, 100, 195, 179, 0, 99, 104, 2, 111, 114, 111, 119, 97, 0, 99, 104, 2, 111, 114, 122, 101,
-			0, 99, 104, 2, 111, 119, 17, 65, 0, 99, 104, 2, 111, 119, 97, 0, 99, 104, 2, 114, 111, 110, 17, 65, 0, 99, 104, 2, 114, 111,
-			110, 32, 0, 99, 104, 2, 114, 117, 112, 32, 0, 99, 104, 2, 114, 117, 112, 97, 108, 105, 0, 99, 104, 2, 114, 117, 112, 97, 110, 17,
-			65, 0, 99, 104, 2, 114, 117, 112, 97, 196, 135, 32, 0, 99, 104, 2, 114, 117, 112, 97, 197, 130, 0, 99, 104, 2, 114, 117, 112, 105,
-			17, 65, 0, 99, 104, 2, 114, 121, 112, 17, 65, 0, 99, 104, 2, 114, 121, 112, 108, 0, 99, 104, 2, 114, 121, 112, 197, 130, 0, 99,
-			104, 2, 114, 122, 17, 65, 0, 99, 104, 2, 117, 100, 110, 0, 99, 104, 2, 119, 121, 99, 105, 0, 99, 104, 2, 119, 121, 116, 17, 65,
-			0, 99, 104, 2, 121, 108, 17, 65, 0, 99, 104, 2, 121, 197, 130, 0, 99, 104, 2, 195, 179, 0, 99, 104, 2, 196, 133, 0, 99, 104,
-			2, 196, 153, 0, 99, 104, 2, 197, 130, 0, 99, 104, 8, 2, 101, 116, 121, 0, 99, 104, 8, 2, 101, 116, 121, 110, 0, 99, 104, 8,
-			2, 108, 101, 98, 32, 0, 99, 104, 8, 2, 108, 101, 98, 105, 0, 99, 104, 8, 2, 121, 108, 32, 0, 99, 104, 8, 119, 2, 111, 100,
-			0, 101, 110, 1, 21, 2, 32, 14, 129, 128, 131, 3, 89, 109, 50, 0, 111, 110, 1, 21, 2, 32, 14, 129, 128, 131, 3, 89, 111, 50,
-			0, 4, 99, 104, 3, 91, 0, 107, 106, 2, 17, 65, 0, 122, 0, 4, 116, 101, 105, 110, 3, 91, 47, 35, 57, 50, 0, 116, 101, 105,
-			110, 2, 32, 14, 129, 128, 133, 0, 99, 104, 119, 97, 114, 122, 3, 91, 84, 35, 51, 117, 0, 99, 104, 111, 101, 3, 91, 109, 0, 4,
-			101, 97, 8, 2, 110, 32, 3, 91, 111, 0, 101, 97, 8, 2, 110, 97, 32, 0, 101, 97, 8, 2, 110, 101, 109, 32, 0, 101, 97, 8,
-			2, 110, 105, 101, 32, 0, 101, 97, 8, 2, 110, 111, 119, 105, 32, 0, 101, 97, 8, 2, 110, 117, 32, 0, 4, 2, 105, 3, 97, 0,
-			105, 2, 17, 65, 0, 4, 105, 1, 117, 100, 2, 103, 114, 3, 97, 37, 0, 105, 2, 98, 114, 122, 0, 105, 2, 99, 17, 65, 0, 105,
-			2, 99, 104, 0, 105, 2, 99, 122, 0, 105, 2, 100, 108, 17, 65, 0, 105, 2, 100, 108, 32, 0, 105, 2, 100, 197, 130, 0, 105, 8,
-			2, 116, 17, 65, 0, 105, 8, 2, 116, 32, 0, 105, 8, 2, 116, 107, 0, 7, 6, 116, 0, 4, 3, 47, 0, 2, 114, 122, 0, 2,
-			115, 0, 111, 119, 110, 2, 32, 14, 129, 128, 132, 3, 47, 35, 58, 50, 0, 105, 2, 17, 65, 3, 47, 57, 0, 116, 104, 101, 119, 3,
-			89, 57, 40, 0, 2, 105, 3, 115, 0, 7, 6, 117, 0, 4, 1, 21, 2, 197, 130, 98, 121, 32, 3, 8, 40, 0, 1, 21, 2, 197,
-			130, 98, 121, 109, 32, 0, 1, 21, 2, 197, 130, 98, 121, 197, 155, 32, 0, 110, 99, 104, 8, 108, 3, 35, 50, 76, 0, 4, 3, 40,
-			0, 1, 97, 110, 2, 99, 122, 0, 1, 97, 110, 2, 107, 0, 1, 97, 114, 97, 112, 0, 1, 97, 116, 101, 109, 0, 1, 101, 17, 67,
-			2, 109, 32, 0, 1, 101, 17, 67, 2, 115, 0, 8, 97, 122, 0, 8, 101, 105, 110, 0, 8, 101, 122, 114, 112, 0, 2, 32, 17, 65,
-			3, 40, 10, 0, 101, 116, 111, 111, 116, 104, 8, 108, 98, 3, 40, 47, 40, 83, 0, 115, 105, 99, 8, 109, 2, 97, 108, 32, 3, 57,
-			6, 40, 88, 37, 49, 0, 115, 105, 99, 8, 109, 2, 97, 108, 3, 57, 40, 88, 37, 49, 0, 4, 1, 97, 3, 58, 0, 1, 101, 0,
-			8, 97, 122, 2, 116, 111, 0, 105, 99, 107, 8, 98, 3, 58, 37, 49, 0, 7, 6, 118, 0, 105, 99, 101, 8, 2, 21, 14, 129, 132,
-			132, 3, 58, 37, 117, 109, 0, 4, 1, 102, 2, 17, 65, 3, 83, 0, 1, 104, 2, 17, 65, 0, 1, 107, 2, 17, 65, 0, 1, 112,
-			2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 1, 116, 2, 17, 65, 0, 2, 111, 108, 107, 115, 0, 3, 84, 0, 105, 108, 108, 101, 2,
-			32, 14, 129, 128, 133, 3, 84, 37, 55, 0, 7, 6, 119, 0, 2, 115, 107, 3, 10, 84, 0, 4, 114, 105, 103, 104, 3, 51, 35, 57,
-			0, 114, 105, 103, 104, 1, 17, 67, 0, 8, 2, 32, 3, 58, 0, 101, 101, 2, 107, 3, 58, 37, 0, 4, 8, 2, 32, 102, 3, 58,
-			109, 0, 8, 2, 32, 109, 110, 0, 97, 115, 104, 105, 8, 3, 58, 111, 91, 37, 0, 105, 110, 100, 111, 119, 8, 3, 58, 112, 50, 72,
-			111, 58, 0, 4, 1, 99, 2, 17, 65, 3, 83, 0, 1, 102, 2, 17, 65, 0, 1, 104, 2, 17, 65, 0, 1, 107, 2, 17, 65, 0,
-			1, 112, 2, 17, 65, 0, 1, 115, 2, 17, 65, 0, 1, 116, 2, 17, 65, 0, 1, 122, 99, 2, 17, 65, 0, 1, 122, 115, 2, 17,
-			65, 0, 1, 135, 196, 2, 17, 65, 0, 1, 155, 197, 2, 17, 65, 0, 2, 32, 0, 8, 2, 32, 99, 0, 8, 2, 32, 104, 0, 8,
-			2, 32, 107, 0, 8, 2, 32, 112, 0, 8, 2, 32, 115, 0, 8, 2, 32, 116, 0, 3, 84, 0, 105, 99, 101, 8, 2, 21, 14, 129,
-			132, 132, 3, 84, 37, 117, 109, 0, 115, 122, 1, 114, 101, 105, 2, 17, 65, 3, 91, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6,
-			121, 0, 4, 39, 1, 114, 2, 101, 103, 111, 32, 3, 0, 39, 1, 114, 2, 101, 109, 117, 32, 3, 0, 4, 1, 21, 2, 197, 130, 98,
-			121, 32, 3, 8, 112, 0, 1, 21, 2, 197, 130, 98, 121, 109, 32, 0, 1, 21, 2, 197, 130, 98, 121, 197, 155, 32, 0, 1, 98, 101,
-			2, 197, 155, 99, 105, 101, 32, 0, 1, 98, 101, 2, 197, 155, 109, 121, 32, 0, 1, 100, 108, 97, 21, 2, 18, 66, 32, 0, 1, 100,
-			111, 108, 21, 2, 18, 66, 32, 0, 1, 100, 111, 116, 21, 2, 18, 66, 32, 0, 1, 100, 114, 111, 21, 2, 18, 66, 32, 0, 1, 114,
-			101, 109, 21, 2, 18, 66, 32, 0, 1, 114, 101, 116, 21, 2, 18, 66, 32, 0, 1, 114, 111, 102, 21, 2, 18, 66, 32, 0, 1, 114,
-			111, 103, 21, 2, 18, 66, 32, 0, 1, 114, 111, 116, 21, 2, 18, 66, 32, 0, 1, 114, 116, 101, 21, 2, 18, 66, 32, 0, 1, 114,
-			116, 107, 21, 2, 18, 66, 32, 0, 1, 114, 116, 112, 21, 2, 18, 66, 32, 0, 1, 115, 97, 108, 21, 2, 18, 66, 32, 0, 1, 115,
-			107, 101, 21, 2, 18, 66, 32, 0, 1, 116, 97, 98, 21, 2, 18, 66, 32, 0, 1, 116, 97, 105, 21, 2, 18, 66, 32, 0, 1, 116,
-			97, 109, 21, 2, 18, 66, 32, 0, 1, 116, 97, 114, 21, 2, 18, 66, 32, 0, 1, 116, 97, 116, 21, 2, 18, 66, 32, 0, 1, 116,
-			101, 97, 21, 2, 18, 66, 32, 0, 1, 116, 101, 99, 21, 2, 18, 66, 32, 0, 1, 116, 101, 100, 21, 2, 18, 66, 32, 0, 1, 116,
-			101, 103, 21, 2, 18, 66, 32, 0, 1, 116, 101, 104, 21, 2, 18, 66, 32, 0, 1, 116, 101, 108, 21, 2, 18, 66, 32, 0, 1, 116,
-			101, 109, 21, 2, 18, 66, 32, 0, 1, 116, 101, 110, 21, 2, 18, 66, 32, 0, 1, 116, 101, 111, 21, 2, 18, 66, 32, 0, 1, 116,
-			101, 114, 21, 2, 18, 66, 32, 0, 1, 116, 101, 116, 21, 2, 18, 66, 32, 0, 1, 116, 105, 108, 21, 2, 18, 66, 32, 0, 1, 116,
-			107, 97, 21, 2, 18, 66, 32, 0, 1, 116, 107, 101, 21, 2, 18, 66, 32, 0, 1, 116, 107, 114, 21, 2, 18, 66, 32, 0, 1, 116,
-			108, 97, 21, 2, 18, 66, 32, 0, 1, 116, 110, 97, 21, 2, 18, 66, 32, 0, 1, 116, 110, 101, 21, 2, 18, 66, 32, 0, 1, 116,
-			111, 98, 21, 2, 18, 66, 32, 0, 1, 116, 111, 105, 21, 2, 18, 66, 32, 0, 1, 116, 111, 110, 21, 2, 18, 66, 32, 0, 1, 116,
-			111, 114, 21, 2, 18, 66, 32, 0, 1, 116, 111, 122, 21, 2, 18, 66, 32, 0, 1, 116, 112, 101, 21, 2, 18, 66, 32, 0, 1, 116,
-			112, 105, 21, 2, 18, 66, 32, 0, 1, 116, 112, 111, 2, 18, 66, 32, 0, 1, 116, 115, 97, 21, 2, 18, 66, 32, 0, 1, 116, 115,
-			101, 21, 2, 18, 66, 32, 0, 1, 116, 115, 105, 21, 2, 18, 66, 32, 0, 1, 116, 115, 111, 21, 2, 18, 66, 32, 0, 1, 116, 115,
-			117, 21, 2, 18, 66, 32, 0, 1, 116, 115, 121, 21, 2, 18, 66, 32, 0, 1, 116, 117, 97, 21, 2, 18, 66, 32, 0, 1, 116, 117,
-			101, 21, 2, 18, 66, 32, 0, 1, 116, 121, 114, 21, 2, 18, 66, 32, 0, 1, 122, 101, 110, 21, 2, 18, 66, 32, 0, 1, 122, 105,
-			102, 2, 18, 66, 32, 0, 1, 130, 197, 21, 2, 98, 121, 32, 0, 1, 130, 197, 21, 2, 98, 121, 197, 155, 99, 105, 101, 32, 0, 1,
-			130, 197, 21, 2, 98, 121, 197, 155, 109, 121, 32, 0, 8, 98, 97, 2, 197, 155, 99, 105, 101, 32, 0, 8, 98, 97, 2, 197, 155, 109,
-			121, 32, 0, 8, 115, 97, 108, 107, 2, 18, 66, 32, 0, 8, 116, 97, 116, 115, 2, 18, 66, 32, 0, 8, 116, 101, 2, 18, 66, 32,
-			0, 8, 116, 107, 97, 114, 112, 2, 18, 66, 32, 0, 8, 116, 115, 105, 109, 2, 18, 66, 0, 8, 116, 121, 114, 107, 2, 18, 66, 32,
-			0, 4, 39, 1, 17, 67, 2, 101, 103, 111, 32, 3, 38, 0, 39, 1, 17, 67, 2, 101, 109, 117, 32, 0, 4, 1, 17, 65, 2, 17,
-			65, 3, 57, 0, 1, 17, 65, 2, 32, 0, 8, 2, 17, 65, 0, 4, 3, 112, 0, 8, 114, 111, 116, 115, 105, 104, 2, 107, 97, 12,
-			12, 0, 8, 114, 111, 116, 115, 105, 104, 2, 107, 111, 109, 12, 12, 0, 8, 114, 116, 101, 116, 2, 107, 97, 12, 12, 0, 8, 114, 116,
-			101, 116, 2, 107, 111, 109, 12, 12, 0, 8, 116, 97, 112, 2, 12, 12, 0, 2, 32, 17, 65, 3, 112, 10, 0, 7, 6, 122, 0, 4,
-			3, 88, 0, 8, 2, 32, 0, 8, 111, 114, 2, 105, 17, 67, 0, 4, 105, 8, 2, 17, 67, 3, 88, 10, 37, 0, 105, 8, 101, 105,
-			110, 2, 17, 67, 0, 122, 8, 2, 97, 32, 3, 88, 10, 88, 0, 4, 105, 1, 111, 109, 2, 108, 108, 3, 88, 37, 0, 105, 2, 17,
-			67, 0, 8, 2, 32, 109, 110, 3, 88, 109, 0, 4, 2, 32, 3, 89, 0, 8, 2, 32, 99, 0, 8, 2, 32, 102, 0, 8, 2, 32,
-			104, 0, 8, 2, 32, 107, 0, 8, 2, 32, 112, 0, 8, 2, 32, 115, 0, 8, 2, 32, 116, 0, 4, 2, 105, 3, 96, 0, 105, 2,
-			17, 65, 0, 4, 105, 2, 109, 12, 3, 96, 37, 0, 105, 8, 2, 112, 0, 4, 2, 105, 110, 105, 32, 3, 117, 0, 2, 105, 110, 105,
-			99, 104, 32, 0, 2, 105, 110, 105, 101, 103, 111, 32, 0, 2, 105, 110, 105, 101, 109, 117, 32, 0, 2, 105, 110, 105, 109, 32, 0, 2,
-			105, 110, 105, 109, 105, 32, 0, 122, 2, 97, 32, 0, 122, 2, 97, 99, 104, 32, 0, 122, 2, 97, 109, 105, 32, 0, 122, 2, 97, 110,
-			105, 32, 0, 122, 2, 97, 110, 105, 99, 104, 32, 0, 122, 2, 97, 110, 105, 101, 103, 111, 32, 0, 122, 2, 97, 110, 105, 101, 109, 117,
-			32, 0, 122, 2, 97, 110, 105, 109, 32, 0, 122, 2, 97, 110, 105, 109, 105, 32, 0, 122, 2, 105, 110, 105, 32, 0, 122, 2, 105, 110,
-			105, 99, 104, 32, 0, 122, 2, 105, 110, 105, 101, 103, 111, 32, 0, 122, 2, 105, 110, 105, 101, 109, 117, 32, 0, 122, 2, 105, 110, 105,
-			109, 32, 0, 122, 2, 105, 110, 105, 109, 105, 32, 0, 122, 2, 111, 32, 0, 122, 2, 111, 110, 105, 32, 0, 122, 2, 111, 110, 105, 99,
-			104, 32, 0, 122, 2, 111, 110, 105, 101, 103, 111, 32, 0, 122, 2, 111, 110, 105, 101, 109, 117, 32, 0, 122, 2, 111, 110, 105, 109, 32,
-			0, 122, 2, 111, 110, 105, 109, 105, 32, 0, 122, 2, 121, 32, 0, 122, 2, 195, 179, 119, 32, 0, 122, 2, 196, 153, 32, 0, 122, 8,
-			17, 65, 109, 2, 17, 65, 0, 122, 8, 105, 112, 0, 117, 114, 105, 8, 2, 99, 104, 3, 117, 40, 51, 112, 0, 7, 6, 126, 0, 3,
-			0, 7, 6, 0, 39, 97, 2, 32, 14, 128, 128, 130, 3, 35, 0, 39, 117, 2, 32, 14, 128, 128, 130, 3, 40, 0, 36, 3, 72, 111,
-			55, 35, 51, 0, 39, 101, 109, 2, 32, 14, 128, 128, 131, 3, 109, 65, 0, 39, 101, 109, 117, 2, 32, 14, 128, 128, 132, 3, 109, 65,
-			40, 0, 39, 101, 103, 111, 2, 32, 14, 128, 128, 132, 3, 109, 81, 111, 0, 39, 111, 119, 105, 2, 32, 14, 128, 128, 132, 3, 111, 84,
-			37, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts53 = FileInMemory_createWithData (34924, reinterpret_cast<const char *> (&espeakdata_dicts53_data), 
-			U"espeak-1.48.04-source/espeak-data/pl_dict", 
-			U"pl");
-		my addItem_move (espeakdata_dicts53.move());
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 51, 88, 89, 6, 37, 0, 0, 10, 3, 95, 48, 67,
+			89, 6, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 13, 3, 95, 55, 88, 107, 6, 109, 83, 47, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 3, 95, 49, 88, 72, 6, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 88, 71, 6,
+			37, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 52, 88, 76, 6, 108, 107, 55,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 53, 88, 48, 6, 37, 50, 75, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			11, 3, 95, 54, 88, 91, 6, 109, 89, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95,
+			56, 88, 107, 6, 109, 91, 47, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 57, 88, 50, 109, 84, 6, 109, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 89, 6, 108, 12, 107, 0, 0, 9, 2, 95, 50, 72, 6, 40, 12, 0,
+			0, 9, 2, 95, 49, 57, 6, 109, 49, 0, 0, 11, 2, 95, 48, 89, 108, 6, 83, 108, 34, 0, 0, 10, 2, 95, 55, 107, 6, 109,
+			83, 47, 0, 0, 9, 2, 95, 54, 91, 108, 6, 91, 0, 0, 10, 2, 95, 53, 48, 109, 6, 50, 75, 0, 0, 10, 2, 95, 52, 76,
+			6, 109, 107, 34, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 39, 0, 0, 10, 2, 95, 56, 107, 6, 109, 91, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 217, 135, 107, 6, 108, 12, 72, 39, 76, 109,
+			91, 65, 0, 0, 9, 2, 217, 134, 50, 6, 40, 50, 0, 0, 9, 2, 217, 133, 65, 6, 37, 65, 0, 0, 9, 2, 217, 132, 55, 6,
+			109, 65, 0, 0, 0, 9, 2, 217, 130, 51, 6, 109, 83, 0, 0, 9, 2, 217, 129, 83, 6, 108, 12, 0, 0, 0, 0, 9, 2, 218,
+			134, 76, 6, 108, 12, 0, 0, 0, 0, 0, 0, 0, 10, 2, 217, 136, 58, 6, 39, 12, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 10, 2, 216, 167, 109, 55, 6, 108, 83, 0, 0, 0, 0, 9, 2, 219, 140, 57, 6, 109, 12, 0, 0, 0, 0, 12, 2, 216, 161,
+			107, 109, 65, 88, 6, 108, 12, 0, 0, 0, 9, 2, 216, 175, 72, 6, 109, 55, 0, 0, 9, 2, 216, 174, 106, 6, 108, 12, 0, 0,
+			9, 2, 216, 173, 107, 6, 108, 12, 0, 0, 9, 2, 216, 172, 75, 6, 37, 65, 0, 0, 9, 2, 216, 171, 89, 6, 108, 12, 0, 0,
+			9, 2, 216, 170, 47, 6, 108, 12, 0, 0, 0, 9, 2, 216, 168, 71, 6, 108, 12, 0, 0, 9, 2, 216, 183, 47, 6, 109, 12, 0,
+			0, 9, 2, 216, 182, 88, 6, 109, 72, 0, 0, 9, 2, 216, 181, 89, 6, 109, 72, 0, 0, 9, 2, 216, 180, 91, 6, 37, 50, 0,
+			0, 9, 2, 216, 179, 89, 6, 37, 50, 0, 0, 9, 2, 216, 178, 88, 6, 108, 12, 0, 0, 9, 2, 216, 177, 34, 6, 108, 12, 0,
+			0, 9, 2, 216, 176, 88, 6, 109, 55, 0, 0, 9, 2, 218, 175, 81, 6, 109, 83, 0, 0, 0, 0, 0, 0, 9, 2, 216, 186, 51,
+			6, 110, 50, 0, 0, 9, 2, 218, 169, 49, 6, 109, 83, 0, 8, 2, 216, 185, 6, 110, 50, 0, 0, 9, 2, 216, 184, 88, 6, 109,
+			12, 0, 0, 0, 9, 2, 217, 190, 48, 6, 108, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 96, 6, 0, 0, 48, 0, 0, 0,
+			97, 6, 0, 0, 49, 0, 0, 0, 98, 6, 0, 0, 50, 0, 0, 0, 99, 6, 0, 0, 51, 0, 0, 0, 100, 6, 0, 0, 52, 0,
+			0, 0, 101, 6, 0, 0, 53, 0, 0, 0, 102, 6, 0, 0, 54, 0, 0, 0, 103, 6, 0, 0, 55, 0, 0, 0, 104, 6, 0, 0,
+			56, 0, 0, 0, 105, 6, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 217, 142, 0, 217, 144, 0, 217, 143, 0, 217, 139,
+			0, 217, 141, 0, 217, 136, 0, 216, 167, 0, 217, 135, 0, 219, 140, 0, 216, 169, 0, 217, 138, 0, 7, 6, 18, 67, 217, 142, 0, 217,
+			144, 0, 217, 143, 0, 7, 6, 18, 68, 216, 167, 0, 216, 168, 0, 217, 190, 0, 216, 170, 0, 216, 171, 0, 216, 172, 0, 218, 134, 0,
+			216, 173, 0, 216, 174, 0, 216, 175, 0, 216, 176, 0, 216, 177, 0, 216, 178, 0, 218, 152, 0, 216, 179, 0, 216, 180, 0, 216, 181, 0,
+			216, 182, 0, 216, 183, 0, 216, 184, 0, 216, 185, 0, 216, 186, 0, 217, 129, 0, 217, 130, 0, 218, 169, 0, 218, 175, 0, 217, 132, 0,
+			217, 133, 0, 217, 134, 0, 217, 136, 0, 217, 135, 0, 219, 140, 0, 7, 6, 1, 34, 0, 2, 18, 66, 3, 0, 3, 13, 0, 7, 6,
+			1, 35, 0, 3, 109, 0, 7, 6, 1, 40, 0, 8, 2, 18, 66, 3, 0, 217, 141, 3, 108, 50, 0, 4, 3, 109, 0, 2, 32, 0,
+			217, 139, 3, 109, 50, 0, 7, 6, 1, 41, 0, 4, 1, 18, 68, 2, 18, 68, 3, 71, 0, 2, 18, 66, 0, 2, 32, 0, 3, 71,
+			109, 0, 7, 6, 1, 42, 0, 2, 32, 3, 13, 0, 2, 18, 66, 3, 107, 0, 3, 107, 109, 0, 7, 6, 1, 43, 0, 4, 2, 18,
+			66, 3, 47, 0, 2, 32, 0, 3, 47, 109, 0, 7, 6, 1, 44, 0, 4, 2, 18, 66, 3, 89, 0, 2, 32, 0, 3, 89, 109, 0,
+			7, 6, 1, 45, 0, 4, 2, 18, 66, 3, 75, 0, 2, 32, 0, 3, 75, 109, 0, 7, 6, 1, 46, 0, 4, 2, 18, 66, 3, 107,
+			0, 2, 32, 0, 3, 107, 109, 0, 7, 6, 1, 47, 0, 4, 2, 18, 66, 3, 106, 0, 2, 32, 0, 3, 106, 109, 0, 7, 6, 1,
+			48, 0, 4, 2, 18, 66, 3, 72, 0, 2, 32, 0, 3, 72, 109, 0, 7, 6, 1, 49, 0, 4, 2, 18, 66, 3, 88, 0, 2, 32,
+			0, 3, 88, 109, 0, 7, 6, 1, 50, 0, 4, 2, 18, 66, 3, 51, 0, 2, 32, 0, 3, 51, 109, 0, 7, 6, 1, 51, 0, 4,
+			2, 18, 66, 3, 88, 0, 2, 32, 0, 3, 88, 109, 0, 7, 6, 1, 52, 0, 4, 1, 18, 67, 2, 18, 68, 3, 89, 0, 1, 18,
+			68, 2, 18, 68, 0, 2, 18, 66, 0, 2, 32, 0, 3, 89, 109, 0, 7, 6, 1, 53, 0, 4, 2, 18, 66, 3, 91, 0, 2, 32,
+			0, 3, 91, 109, 0, 7, 6, 1, 54, 0, 4, 2, 18, 66, 3, 89, 0, 2, 32, 0, 3, 89, 109, 0, 7, 6, 1, 55, 0, 4,
+			2, 18, 66, 3, 88, 0, 2, 32, 0, 3, 88, 109, 0, 7, 6, 1, 56, 0, 4, 2, 18, 66, 3, 47, 0, 2, 32, 0, 3, 47,
+			109, 0, 7, 6, 1, 57, 0, 4, 2, 18, 66, 3, 88, 0, 2, 32, 0, 3, 88, 109, 0, 7, 6, 1, 58, 0, 2, 18, 66, 3,
+			0, 2, 32, 3, 13, 9, 0, 3, 109, 0, 7, 6, 1, 59, 0, 4, 2, 18, 66, 3, 51, 0, 2, 32, 0, 3, 51, 109, 0, 7,
+			6, 1, 65, 0, 3, 0, 7, 6, 1, 66, 0, 4, 2, 18, 66, 3, 83, 0, 2, 32, 0, 3, 83, 109, 0, 7, 6, 1, 67, 0,
+			4, 2, 18, 66, 3, 51, 0, 2, 32, 0, 3, 51, 109, 0, 7, 6, 1, 69, 0, 4, 2, 18, 66, 3, 55, 0, 2, 32, 0, 3,
+			55, 109, 0, 7, 6, 1, 70, 0, 4, 2, 18, 66, 3, 65, 0, 2, 32, 0, 3, 65, 109, 0, 7, 6, 1, 71, 0, 4, 1, 18,
+			67, 2, 18, 68, 3, 50, 0, 1, 18, 68, 2, 18, 68, 0, 2, 18, 66, 0, 2, 32, 0, 3, 50, 109, 0, 7, 6, 1, 72, 0,
+			2, 32, 3, 13, 0, 2, 18, 66, 3, 107, 0, 3, 107, 109, 0, 7, 6, 1, 73, 0, 4, 1, 18, 68, 2, 18, 68, 3, 40, 0,
+			2, 32, 0, 2, 18, 66, 3, 84, 0, 3, 84, 109, 0, 7, 6, 1, 75, 0, 3, 37, 0, 8, 3, 57, 109, 0, 7, 6, 1, 79,
+			0, 3, 109, 0, 7, 6, 1, 80, 0, 3, 39, 0, 7, 6, 1, 81, 0, 3, 108, 0, 7, 6, 1, 82, 0, 3, 12, 0, 7, 6,
+			1, 127, 0, 4, 1, 18, 68, 2, 18, 68, 3, 48, 0, 2, 18, 66, 0, 2, 32, 0, 3, 48, 109, 0, 7, 6, 218, 134, 0, 4,
+			2, 18, 66, 3, 76, 0, 2, 32, 0, 3, 76, 109, 0, 7, 6, 218, 152, 0, 4, 2, 18, 66, 3, 90, 0, 2, 32, 0, 3, 90,
+			109, 0, 7, 6, 218, 169, 0, 4, 1, 18, 67, 2, 18, 68, 3, 49, 0, 1, 18, 68, 2, 18, 68, 0, 2, 18, 66, 0, 2, 32,
+			0, 3, 49, 109, 0, 7, 6, 218, 175, 0, 4, 2, 18, 66, 3, 81, 0, 2, 32, 0, 3, 81, 109, 0, 7, 6, 219, 140, 0, 3,
+			37, 0, 8, 3, 57, 109, 0, 7, 6, 0, 36, 3, 72, 39, 55, 13, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts51 = FileInMemory_createWithData (2569, reinterpret_cast<const char *> (&espeakdata_dicts51_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/prs_dict", 
+			U"prs");
+		Collection_addItem (me.peek(), espeakdata_dicts51.transfer());
 
-		static unsigned char espeakdata_dicts54_data[24986] = {
-			0, 4, 0, 0, 101, 61, 0, 0, 10, 198, 16, 84, 208, 72, 86, 143, 16, 37, 10, 198, 12, 243, 148, 72, 243, 15, 16, 37, 0, 0,
-			8, 197, 4, 49, 82, 88, 240, 16, 0, 19, 70, 64, 241, 3, 5, 53, 0, 48, 110, 72, 112, 49, 6, 109, 89, 47, 0, 102, 17, 70,
-			64, 241, 3, 5, 53, 0, 48, 110, 72, 49, 109, 89, 47, 0, 101, 0, 0, 17, 70, 76, 240, 201, 21, 70, 64, 89, 39, 89, 6, 117,
-			47, 112, 0, 102, 6, 65, 4, 35, 0, 49, 8, 65, 4, 132, 0, 101, 76, 34, 5, 193, 4, 76, 34, 0, 12, 68, 5, 4, 12, 20,
-			6, 109, 48, 39, 58, 0, 6, 193, 108, 49, 50, 43, 7, 65, 108, 4, 35, 12, 0, 0, 7, 195, 40, 241, 207, 15, 36, 6, 195, 40,
-			241, 207, 16, 8, 197, 12, 243, 15, 72, 80, 15, 19, 67, 48, 241, 207, 55, 6, 110, 81, 40, 49, 135, 0, 102, 81, 113, 117, 101, 32,
-			0, 0, 9, 198, 81, 32, 81, 84, 82, 65, 15, 9, 198, 60, 66, 83, 76, 82, 65, 15, 0, 0, 10, 67, 53, 82, 64, 65, 6, 111,
-			124, 0, 8, 197, 80, 147, 136, 4, 208, 72, 6, 195, 21, 80, 64, 13, 16, 67, 21, 64, 192, 4, 36, 123, 6, 109, 47, 36, 16, 132,
-			0, 102, 16, 67, 21, 64, 192, 4, 36, 123, 6, 109, 47, 12, 16, 132, 0, 101, 0, 0, 9, 197, 64, 20, 15, 12, 240, 16, 37, 8,
-			197, 21, 131, 210, 80, 240, 15, 9, 197, 21, 52, 5, 80, 240, 16, 37, 9, 197, 4, 67, 210, 56, 240, 15, 36, 0, 11, 199, 36, 229,
-			5, 72, 84, 211, 20, 15, 36, 10, 199, 36, 229, 5, 72, 84, 211, 20, 16, 0, 8, 197, 72, 244, 197, 80, 16, 16, 8, 197, 64, 84,
-			197, 80, 16, 16, 8, 197, 8, 240, 197, 80, 16, 16, 6, 195, 69, 81, 64, 72, 0, 0, 8, 197, 12, 243, 79, 16, 240, 16, 9, 197,
-			5, 36, 143, 80, 240, 16, 37, 0, 7, 196, 12, 240, 200, 20, 16, 8, 132, 112, 114, 195, 178, 72, 34, 0, 17, 70, 56, 245, 5, 8,
-			243, 203, 50, 39, 58, 47, 71, 111, 49, 0, 102, 16, 70, 24, 16, 197, 8, 243, 203, 83, 118, 89, 112, 71, 40, 49, 0, 0, 16, 4,
-			95, 100, 112, 116, 10, 84, 6, 37, 34, 81, 40, 55, 132, 0, 0, 6, 65, 20, 109, 0, 49, 7, 65, 20, 37, 0, 102, 72, 7, 65,
-			20, 37, 0, 101, 72, 0, 0, 0, 0, 0, 10, 199, 12, 20, 129, 13, 65, 82, 20, 15, 0, 13, 68, 64, 245, 197, 72, 48, 6, 114,
-			109, 34, 0, 102, 13, 68, 64, 245, 197, 72, 48, 6, 114, 132, 44, 0, 101, 0, 0, 0, 0, 14, 68, 52, 18, 197, 72, 65, 6, 118,
-			49, 132, 44, 0, 101, 8, 197, 64, 21, 5, 80, 16, 15, 0, 11, 68, 48, 245, 73, 76, 21, 102, 114, 0, 47, 8, 196, 12, 84, 131,
-			60, 15, 36, 0, 8, 196, 88, 240, 227, 76, 78, 32, 0, 0, 0, 0, 0, 14, 68, 25, 32, 77, 20, 83, 51, 6, 118, 65, 37, 0,
-			102, 14, 68, 25, 32, 77, 20, 83, 34, 6, 118, 65, 112, 0, 101, 14, 1, 37, 48, 39, 34, 89, 6, 118, 68, 47, 111, 0, 27, 0,
-			8, 1, 38, 10, 6, 36, 10, 0, 0, 17, 70, 64, 241, 5, 72, 82, 64, 48, 2, 39, 72, 36, 16, 118, 0, 76, 0, 0, 24, 72,
-			80, 83, 5, 54, 117, 133, 37, 48, 47, 4, 109, 55, 4, 109, 65, 6, 110, 84, 118, 138, 0, 101, 14, 68, 88, 241, 3, 4, 84, 6,
-			110, 75, 37, 49, 132, 0, 0, 6, 195, 72, 240, 203, 15, 7, 195, 64, 244, 128, 72, 34, 15, 1, 42, 132, 89, 47, 36, 16, 6, 37,
-			89, 49, 111, 0, 27, 0, 10, 199, 21, 53, 15, 12, 243, 13, 60, 15, 9, 198, 80, 149, 133, 72, 19, 64, 72, 9, 198, 80, 149, 133,
-			72, 19, 64, 72, 9, 198, 21, 53, 1, 88, 19, 64, 72, 8, 1, 43, 65, 117, 138, 0, 27, 0, 15, 68, 21, 128, 197, 48, 4, 109,
-			49, 89, 6, 109, 55, 0, 101, 9, 197, 72, 83, 143, 88, 240, 15, 36, 9, 197, 64, 148, 15, 12, 240, 16, 37, 13, 69, 8, 18, 82,
-			72, 240, 71, 6, 117, 101, 111, 0, 8, 197, 69, 80, 78, 16, 240, 102, 0, 7, 196, 64, 243, 3, 4, 15, 10, 198, 21, 53, 15, 72,
-			227, 192, 15, 36, 0, 11, 1, 46, 48, 6, 39, 68, 47, 111, 0, 27, 0, 7, 196, 13, 33, 68, 60, 15, 0, 13, 4, 95, 100, 105,
-			97, 47, 51, 6, 36, 65, 132, 0, 0, 0, 13, 67, 40, 21, 211, 75, 6, 35, 40, 12, 88, 0, 101, 0, 6, 195, 24, 24, 15, 76,
-			0, 0, 18, 70, 4, 225, 5, 73, 51, 206, 6, 132, 50, 72, 36, 34, 89, 39, 68, 0, 0, 21, 71, 44, 193, 86, 21, 36, 207, 56,
-			49, 55, 6, 109, 84, 36, 34, 89, 132, 68, 0, 101, 0, 0, 16, 70, 88, 243, 20, 4, 148, 133, 84, 110, 55, 47, 6, 109, 34, 0,
-			18, 70, 76, 241, 148, 92, 20, 133, 89, 6, 110, 83, 47, 58, 36, 14, 0, 102, 20, 70, 76, 241, 148, 92, 20, 133, 89, 6, 110, 83,
-			47, 4, 58, 6, 109, 44, 0, 101, 18, 70, 32, 20, 132, 92, 20, 133, 107, 6, 35, 34, 72, 58, 36, 14, 0, 102, 19, 70, 32, 20,
-			132, 92, 20, 133, 6, 35, 34, 72, 4, 58, 6, 109, 44, 0, 101, 9, 198, 12, 81, 129, 48, 82, 65, 15, 0, 0, 0, 0, 8, 197,
-			24, 244, 141, 61, 48, 16, 8, 197, 4, 211, 210, 21, 48, 16, 6, 65, 60, 110, 0, 49, 5, 193, 60, 76, 34, 0, 9, 198, 64, 19,
-			8, 62, 0, 64, 15, 14, 1, 61, 10, 10, 37, 81, 58, 6, 132, 55, 10, 0, 27, 0, 0, 0, 9, 198, 81, 35, 205, 8, 85, 1,
-			16, 14, 69, 76, 18, 66, 72, 240, 89, 6, 117, 71, 51, 111, 0, 9, 198, 21, 52, 15, 48, 85, 1, 16, 14, 69, 12, 18, 66, 72,
-			240, 49, 6, 117, 71, 51, 111, 0, 9, 197, 4, 193, 213, 57, 48, 72, 37, 10, 1, 64, 35, 101, 6, 39, 71, 132, 0, 0, 17, 70,
-			4, 229, 15, 56, 147, 192, 129, 68, 47, 6, 39, 50, 124, 111, 0, 0, 0, 0, 9, 198, 48, 83, 66, 72, 85, 5, 16, 9, 198, 12,
-			20, 1, 12, 85, 5, 16, 0, 23, 71, 80, 83, 5, 54, 117, 133, 48, 47, 4, 109, 55, 4, 109, 65, 6, 110, 84, 109, 55, 0, 101,
-			0, 10, 67, 16, 240, 192, 72, 6, 110, 49, 0, 6, 195, 16, 244, 207, 15, 0, 4, 193, 116, 43, 0, 0, 7, 196, 12, 246, 133, 52,
-			15, 0, 21, 71, 12, 193, 86, 21, 36, 207, 56, 49, 55, 6, 109, 84, 36, 34, 89, 39, 68, 0, 102, 21, 71, 12, 193, 86, 21, 36,
-			207, 56, 49, 55, 6, 109, 84, 112, 34, 89, 132, 68, 0, 101, 9, 67, 48, 129, 64, 61, 112, 0, 102, 10, 198, 16, 84, 193, 64, 81,
-			207, 16, 37, 0, 20, 72, 92, 20, 200, 36, 225, 212, 60, 224, 58, 6, 110, 91, 37, 50, 47, 39, 50, 0, 7, 196, 56, 84, 150, 60,
-			16, 9, 198, 65, 81, 5, 72, 19, 64, 76, 13, 4, 95, 100, 111, 116, 48, 6, 39, 68, 47, 111, 0, 0, 0, 13, 68, 77, 0, 67,
-			20, 89, 48, 6, 118, 89, 0, 102, 14, 68, 77, 0, 67, 20, 89, 48, 6, 118, 89, 112, 0, 101, 10, 198, 77, 80, 143, 72, 227, 192,
-			15, 36, 9, 198, 72, 80, 207, 72, 67, 192, 15, 10, 198, 28, 245, 133, 72, 227, 192, 15, 36, 9, 198, 28, 245, 133, 72, 227, 192, 16,
-			9, 198, 12, 243, 148, 84, 67, 192, 102, 0, 12, 67, 88, 240, 227, 84, 39, 89, 36, 0, 78, 32, 0, 7, 196, 52, 147, 204, 60, 16,
-			0, 12, 68, 25, 33, 85, 16, 83, 51, 6, 136, 72, 0, 10, 197, 56, 244, 211, 5, 48, 102, 76, 34, 0, 10, 198, 76, 244, 211, 20,
-			115, 192, 16, 37, 9, 198, 61, 85, 15, 72, 115, 192, 15, 10, 198, 20, 212, 18, 20, 115, 192, 16, 37, 9, 198, 20, 212, 18, 20, 115,
-			192, 16, 10, 198, 12, 128, 77, 20, 115, 192, 16, 36, 0, 9, 67, 8, 17, 0, 71, 109, 72, 0, 0, 0, 0, 8, 66, 85, 0, 132,
-			48, 0, 101, 18, 7, 112, 111, 100, 101, 195, 163, 111, 48, 2, 39, 72, 36, 16, 130, 0, 76, 0, 7, 195, 76, 240, 207, 15, 36, 6,
-			195, 76, 240, 207, 16, 0, 12, 201, 60, 227, 205, 5, 67, 208, 20, 144, 64, 15, 23, 67, 33, 69, 16, 35, 81, 4, 35, 47, 36, 47,
-			36, 6, 48, 36, 10, 0, 81, 58, 47, 47, 32, 0, 6, 65, 88, 84, 36, 0, 0, 12, 201, 16, 244, 141, 36, 226, 15, 12, 244, 192,
-			15, 8, 66, 137, 48, 109, 89, 0, 72, 6, 194, 5, 48, 76, 34, 0, 0, 17, 4, 95, 49, 77, 52, 6, 128, 50, 47, 34, 37, 55,
-			57, 6, 130, 0, 0, 16, 69, 4, 48, 197, 77, 48, 6, 35, 49, 89, 4, 109, 89, 0, 101, 0, 12, 68, 24, 244, 129, 52, 83, 39,
-			16, 130, 0, 73, 0, 0, 14, 67, 84, 226, 88, 57, 6, 40, 50, 37, 49, 89, 0, 102, 15, 67, 84, 226, 88, 4, 40, 12, 50, 6,
-			37, 49, 89, 0, 101, 8, 196, 9, 35, 212, 60, 16, 37, 7, 196, 8, 244, 132, 60, 15, 0, 12, 4, 95, 49, 77, 49, 65, 6, 116,
-			10, 0, 102, 13, 4, 95, 49, 77, 49, 65, 6, 37, 55, 10, 0, 101, 7, 65, 96, 91, 37, 138, 0, 0, 15, 70, 76, 128, 77, 64,
-			243, 192, 91, 132, 65, 48, 40, 0, 102, 15, 4, 95, 49, 77, 50, 6, 128, 65, 37, 55, 57, 6, 130, 0, 0, 16, 4, 95, 49, 77,
-			51, 6, 128, 65, 71, 37, 55, 57, 6, 130, 0, 0, 0, 14, 68, 8, 194, 78, 16, 71, 55, 6, 35, 37, 50, 72, 0, 0, 12, 68,
-			64, 17, 88, 4, 48, 35, 36, 91, 35, 0, 0, 11, 67, 100, 84, 192, 57, 6, 109, 89, 0, 101, 9, 198, 82, 83, 136, 20, 148, 192,
-			72, 7, 195, 16, 244, 192, 72, 34, 6, 195, 48, 244, 192, 72, 0, 9, 198, 88, 19, 133, 77, 48, 64, 16, 0, 9, 198, 9, 35, 205,
-			20, 194, 1, 15, 0, 0, 11, 200, 32, 83, 79, 73, 35, 201, 16, 16, 15, 0, 9, 198, 65, 35, 214, 21, 64, 64, 16, 9, 198, 64,
-			84, 142, 21, 64, 64, 16, 9, 198, 52, 20, 137, 21, 64, 64, 16, 0, 6, 195, 64, 80, 129, 15, 0, 0, 13, 68, 8, 16, 207, 56,
-			71, 6, 118, 49, 39, 68, 0, 0, 0, 22, 69, 16, 84, 15, 37, 48, 72, 36, 48, 6, 120, 89, 49, 135, 0, 102, 81, 113, 117, 101,
-			32, 0, 13, 69, 28, 82, 83, 20, 192, 81, 6, 117, 88, 137, 0, 5, 194, 4, 80, 13, 0, 0, 15, 70, 33, 84, 211, 21, 35, 0,
-			101, 6, 40, 89, 109, 55, 0, 9, 198, 82, 83, 136, 4, 211, 211, 72, 9, 198, 76, 84, 165, 4, 211, 211, 72, 0, 0, 0, 15, 69,
-			84, 37, 78, 81, 80, 40, 71, 6, 40, 50, 47, 40, 0, 7, 195, 76, 83, 15, 15, 36, 6, 195, 76, 83, 15, 16, 6, 195, 24, 241,
-			15, 16, 16, 4, 95, 48, 67, 111, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 8, 197, 12, 244, 150, 61, 48, 15, 0, 0,
-			0, 0, 8, 197, 80, 244, 146, 21, 48, 16, 0, 0, 16, 4, 95, 51, 88, 111, 47, 51, 37, 90, 6, 109, 88, 37, 65, 0, 0, 11,
-			4, 95, 116, 108, 100, 47, 37, 55, 0, 101, 10, 4, 95, 116, 108, 100, 76, 6, 116, 0, 0, 0, 0, 9, 198, 16, 84, 195, 61, 35,
-			143, 15, 0, 0, 9, 198, 21, 53, 9, 48, 85, 5, 16, 7, 196, 137, 33, 73, 76, 72, 0, 7, 196, 52, 244, 132, 4, 16, 7, 196,
-			28, 244, 132, 4, 16, 7, 196, 76, 240, 146, 20, 16, 8, 196, 52, 147, 136, 4, 76, 34, 0, 6, 195, 64, 83, 15, 16, 7, 195, 64,
-			83, 15, 72, 34, 7, 195, 77, 32, 64, 102, 24, 18, 67, 77, 32, 64, 4, 109, 95, 6, 109, 34, 34, 57, 6, 35, 0, 101, 24, 0,
-			12, 68, 37, 48, 65, 12, 37, 88, 6, 132, 49, 0, 0, 7, 196, 24, 244, 160, 60, 15, 0, 22, 73, 76, 50, 18, 160, 66, 78, 28,
-			84, 128, 91, 34, 6, 36, 72, 37, 50, 81, 36, 34, 0, 7, 196, 8, 84, 212, 4, 16, 7, 196, 80, 147, 136, 4, 72, 7, 196, 20,
-			229, 18, 20, 102, 7, 196, 16, 84, 212, 4, 34, 0, 10, 198, 81, 35, 208, 22, 3, 192, 16, 37, 10, 198, 72, 81, 143, 74, 3, 192,
-			15, 36, 10, 198, 21, 49, 143, 74, 3, 192, 15, 36, 0, 19, 70, 72, 146, 142, 16, 17, 76, 101, 6, 35, 37, 50, 38, 72, 6, 35,
-			55, 0, 9, 198, 64, 19, 148, 21, 32, 64, 15, 9, 198, 64, 19, 8, 21, 64, 64, 16, 9, 198, 48, 17, 207, 77, 64, 64, 16, 9,
-			198, 28, 83, 133, 9, 32, 64, 15, 9, 198, 12, 133, 80, 21, 64, 64, 16, 9, 198, 12, 18, 88, 21, 64, 64, 16, 0, 0, 0, 0,
-			19, 70, 16, 245, 206, 48, 240, 68, 72, 35, 128, 68, 55, 6, 39, 58, 72, 0, 103, 18, 70, 16, 245, 206, 48, 240, 68, 72, 114, 68,
-			55, 6, 39, 58, 72, 0, 102, 21, 70, 16, 245, 206, 48, 240, 68, 72, 6, 35, 4, 58, 50, 55, 6, 39, 40, 72, 0, 101, 11, 4,
-			95, 49, 67, 48, 89, 6, 118, 68, 0, 0, 9, 198, 21, 34, 84, 72, 82, 65, 15, 0, 6, 194, 16, 16, 72, 34, 5, 194, 12, 48,
-			13, 0, 0, 0, 0, 0, 9, 198, 12, 16, 146, 21, 53, 15, 16, 0, 8, 196, 57, 83, 65, 76, 72, 34, 0, 15, 70, 61, 85, 4,
-			60, 244, 128, 114, 47, 72, 6, 110, 34, 0, 0, 17, 70, 8, 16, 203, 85, 4, 192, 71, 109, 49, 6, 132, 48, 89, 0, 102, 0, 7,
-			196, 64, 241, 5, 72, 76, 0, 0, 0, 19, 70, 21, 132, 18, 21, 52, 192, 4, 109, 49, 89, 48, 34, 6, 109, 89, 0, 101, 0, 0,
-			15, 69, 16, 84, 201, 28, 224, 72, 36, 88, 6, 117, 50, 0, 102, 17, 69, 16, 84, 201, 28, 224, 72, 4, 37, 88, 6, 35, 37, 50,
-			0, 101, 7, 196, 29, 35, 211, 60, 15, 0, 0, 16, 69, 76, 52, 143, 48, 192, 89, 49, 12, 34, 6, 39, 55, 0, 101, 5, 194, 12,
-			64, 13, 0, 20, 71, 52, 84, 211, 20, 225, 197, 72, 65, 6, 109, 89, 132, 50, 75, 132, 44, 0, 101, 0, 16, 69, 4, 194, 83, 60,
-			224, 132, 55, 6, 37, 89, 132, 68, 0, 101, 10, 199, 16, 84, 193, 52, 244, 133, 76, 16, 8, 196, 12, 131, 195, 60, 16, 37, 0, 7,
-			196, 80, 84, 156, 76, 72, 4, 193, 128, 43, 0, 0, 21, 71, 65, 80, 140, 37, 50, 5, 72, 48, 6, 132, 71, 55, 4, 37, 91, 132,
-			44, 0, 101, 0, 9, 198, 88, 84, 130, 21, 65, 64, 16, 9, 198, 40, 241, 213, 21, 65, 64, 16, 9, 198, 21, 132, 12, 61, 33, 64,
-			15, 0, 23, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 49, 51, 39, 58, 89, 6, 110, 83, 47, 0, 102, 24, 71, 52, 144, 210,
-			61, 51, 198, 80, 65, 4, 37, 49, 12, 34, 6, 39, 89, 4, 110, 83, 47, 0, 101, 0, 7, 196, 5, 65, 73, 4, 15, 12, 66, 17,
-			32, 72, 39, 58, 47, 39, 34, 0, 24, 0, 0, 0, 6, 195, 72, 81, 5, 16, 6, 195, 64, 241, 5, 76, 0, 0, 7, 195, 65, 35,
-			211, 72, 34, 0, 0, 7, 195, 60, 225, 5, 102, 72, 0, 14, 69, 16, 145, 83, 20, 192, 75, 6, 37, 88, 137, 0, 102, 0, 0, 8,
-			4, 95, 111, 114, 100, 39, 0, 0, 0, 14, 4, 95, 109, 99, 110, 65, 35, 49, 51, 6, 39, 68, 0, 0, 9, 198, 69, 80, 82, 80,
-			85, 15, 16, 10, 198, 12, 243, 131, 21, 37, 15, 16, 37, 16, 4, 95, 49, 67, 111, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0,
-			0, 16, 70, 81, 114, 84, 80, 84, 128, 47, 58, 6, 37, 47, 36, 34, 0, 14, 68, 77, 64, 82, 80, 89, 47, 6, 35, 34, 47, 0,
-			101, 13, 68, 64, 242, 78, 80, 48, 6, 39, 37, 50, 47, 0, 17, 70, 76, 48, 78, 56, 84, 128, 89, 49, 6, 109, 50, 132, 34, 0,
-			101, 12, 200, 81, 32, 78, 77, 67, 210, 56, 240, 15, 36, 12, 200, 16, 84, 205, 4, 229, 5, 48, 240, 16, 37, 0, 18, 70, 48, 20,
-			20, 61, 4, 192, 55, 109, 48, 47, 6, 110, 48, 89, 0, 102, 0, 0, 0, 0, 0, 13, 67, 53, 1, 71, 4, 109, 65, 48, 6, 109,
-			81, 0, 0, 8, 197, 72, 240, 147, 60, 224, 15, 0, 0, 6, 195, 80, 84, 156, 72, 12, 67, 76, 84, 156, 89, 36, 16, 35, 0, 102,
-			74, 0, 9, 198, 69, 82, 78, 80, 85, 15, 16, 0, 10, 199, 25, 33, 83, 12, 244, 133, 76, 16, 10, 199, 5, 36, 133, 16, 244, 133,
-			76, 15, 0, 0, 7, 196, 36, 65, 73, 4, 15, 7, 196, 16, 241, 205, 4, 15, 0, 14, 69, 112, 192, 207, 60, 192, 6, 114, 49, 39,
-			58, 0, 102, 0, 10, 199, 77, 81, 15, 72, 84, 197, 76, 15, 10, 199, 52, 18, 79, 56, 84, 197, 76, 15, 9, 198, 12, 20, 197, 9,
-			33, 64, 15, 9, 198, 8, 147, 8, 21, 65, 64, 16, 9, 198, 17, 84, 129, 57, 65, 64, 102, 0, 0, 13, 68, 52, 245, 83, 20, 65,
-			6, 114, 88, 37, 0, 102, 10, 67, 77, 83, 210, 89, 40, 110, 34, 0, 0, 0, 9, 197, 109, 21, 69, 48, 80, 16, 34, 0, 9, 67,
-			5, 136, 128, 35, 91, 109, 0, 7, 195, 5, 72, 128, 102, 72, 0, 10, 199, 69, 82, 84, 36, 225, 84, 20, 15, 0, 6, 195, 80, 83,
-			147, 72, 0, 0, 6, 195, 32, 242, 133, 16, 7, 195, 24, 241, 1, 16, 36, 6, 195, 8, 241, 133, 15, 0, 6, 194, 16, 80, 72, 34,
-			0, 9, 198, 16, 84, 208, 61, 37, 15, 16, 9, 198, 20, 228, 85, 4, 229, 15, 102, 0, 19, 71, 56, 245, 5, 8, 243, 203, 76, 50,
-			39, 58, 47, 71, 111, 49, 89, 0, 102, 0, 10, 67, 21, 32, 77, 109, 16, 130, 0, 73, 0, 0, 9, 198, 12, 20, 143, 128, 244, 192,
-			15, 0, 11, 68, 28, 21, 83, 76, 81, 6, 114, 89, 0, 17, 70, 32, 245, 13, 4, 147, 0, 107, 39, 47, 65, 6, 118, 55, 0, 102,
-			18, 70, 32, 245, 13, 4, 147, 0, 107, 6, 110, 47, 65, 6, 118, 55, 0, 101, 22, 71, 64, 241, 5, 72, 83, 79, 76, 48, 2, 39,
-			72, 36, 16, 6, 36, 65, 111, 89, 0, 76, 0, 0, 0, 0, 0, 0, 0, 15, 67, 41, 1, 71, 90, 4, 110, 47, 132, 48, 6, 109,
-			81, 0, 0, 0, 0, 0, 0, 7, 196, 17, 81, 84, 60, 16, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 0, 17, 70, 88, 243, 11,
-			52, 19, 142, 83, 6, 110, 55, 49, 65, 35, 50, 0, 7, 196, 28, 243, 16, 20, 15, 6, 195, 20, 68, 0, 13, 0, 15, 69, 12, 132,
-			143, 52, 80, 49, 51, 6, 39, 58, 65, 37, 0, 11, 67, 4, 197, 0, 6, 35, 55, 47, 0, 101, 8, 197, 64, 84, 133, 8, 16, 15,
-			8, 197, 53, 83, 5, 80, 16, 16, 8, 197, 52, 243, 133, 72, 16, 15, 8, 197, 40, 84, 133, 8, 16, 15, 8, 197, 24, 20, 143, 24,
-			16, 15, 8, 197, 21, 53, 9, 88, 80, 72, 8, 197, 20, 208, 143, 72, 16, 102, 7, 195, 84, 228, 192, 72, 34, 0, 9, 133, 112, 114,
-			195, 178, 115, 72, 34, 0, 0, 13, 68, 76, 182, 80, 20, 89, 49, 6, 117, 48, 0, 102, 14, 68, 76, 182, 80, 20, 89, 49, 6, 35,
-			37, 48, 0, 101, 0, 8, 197, 64, 84, 143, 8, 16, 15, 8, 197, 64, 20, 133, 16, 80, 16, 11, 200, 20, 224, 193, 77, 21, 69, 80,
-			16, 15, 0, 0, 0, 10, 199, 24, 19, 1, 56, 113, 84, 4, 16, 10, 199, 8, 20, 212, 60, 225, 84, 20, 16, 10, 199, 4, 229, 15,
-			56, 145, 84, 4, 16, 0, 6, 193, 136, 49, 50, 43, 6, 65, 136, 109, 0, 72, 0, 0, 12, 67, 16, 242, 1, 72, 6, 39, 101, 132,
-			0, 102, 0, 0, 10, 67, 76, 182, 64, 89, 49, 6, 117, 0, 9, 198, 64, 84, 193, 16, 83, 15, 16, 11, 136, 102, 195, 180, 109, 97,
-			109, 111, 115, 72, 0, 0, 15, 68, 76, 85, 21, 64, 89, 6, 109, 47, 6, 132, 48, 0, 101, 9, 197, 72, 83, 5, 88, 240, 15, 36,
-			8, 197, 72, 83, 5, 88, 240, 16, 8, 197, 8, 243, 5, 72, 240, 15, 9, 197, 5, 1, 82, 80, 240, 16, 37, 0, 17, 70, 4, 225,
-			18, 60, 145, 0, 132, 68, 72, 51, 6, 110, 37, 72, 0, 9, 198, 16, 80, 129, 37, 131, 192, 102, 0, 18, 4, 95, 50, 67, 111, 72,
-			40, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 7, 196, 56, 83, 1, 76, 76, 0, 0, 6, 194, 21, 80, 76, 32, 0, 14, 68,
-			20, 229, 5, 72, 6, 36, 68, 47, 36, 34, 0, 102, 0, 0, 0, 0, 0, 0, 15, 69, 21, 52, 5, 4, 176, 37, 89, 48, 6, 37,
-			12, 49, 0, 0, 0, 0, 8, 196, 80, 244, 142, 60, 15, 36, 7, 196, 64, 244, 211, 60, 76, 0, 14, 70, 72, 245, 83, 76, 80, 85,
-			101, 40, 89, 6, 39, 0, 0, 7, 195, 104, 83, 15, 16, 37, 8, 197, 72, 20, 15, 76, 16, 16, 8, 197, 80, 149, 133, 72, 16, 72,
-			16, 69, 21, 53, 5, 88, 80, 36, 89, 47, 36, 84, 112, 0, 102, 74, 0, 0, 11, 67, 80, 16, 128, 47, 6, 35, 71, 112, 0, 6,
-			195, 5, 96, 192, 13, 0, 7, 196, 104, 244, 146, 4, 16, 8, 196, 8, 244, 146, 4, 16, 37, 0, 14, 69, 8, 80, 84, 48, 80, 71,
-			6, 37, 47, 39, 58, 0, 9, 197, 5, 21, 69, 48, 80, 16, 34, 0, 0, 15, 69, 81, 84, 137, 56, 112, 47, 6, 40, 16, 37, 68,
-			81, 0, 9, 67, 61, 33, 192, 110, 34, 81, 0, 0, 10, 199, 8, 19, 1, 56, 49, 84, 20, 16, 0, 0, 7, 196, 65, 35, 211, 60,
-			15, 0, 0, 4, 193, 140, 43, 0, 17, 70, 48, 82, 66, 56, 150, 128, 55, 6, 117, 71, 50, 37, 12, 123, 0, 8, 197, 64, 241, 9,
-			4, 208, 76, 0, 6, 194, 4, 240, 72, 34, 0, 6, 195, 25, 82, 64, 72, 6, 195, 61, 50, 64, 13, 0, 6, 195, 80, 84, 212, 15,
-			0, 7, 195, 72, 243, 15, 16, 37, 7, 195, 28, 83, 15, 15, 36, 6, 195, 28, 83, 15, 16, 7, 195, 8, 243, 15, 15, 36, 6, 195,
-			8, 243, 15, 16, 0, 7, 196, 60, 194, 15, 76, 15, 0, 0, 18, 71, 76, 192, 67, 45, 112, 82, 20, 89, 55, 6, 35, 49, 58, 36,
-			14, 0, 0, 11, 68, 72, 145, 200, 80, 34, 6, 117, 47, 0, 0, 11, 199, 72, 81, 77, 8, 243, 19, 60, 15, 36, 10, 199, 72, 81,
-			77, 8, 243, 19, 60, 16, 0, 7, 195, 57, 83, 64, 72, 34, 0, 0, 0, 0, 21, 72, 32, 82, 83, 20, 224, 133, 72, 112, 107, 6,
-			117, 88, 109, 50, 71, 36, 34, 81, 0, 8, 197, 29, 35, 211, 76, 240, 16, 9, 197, 16, 80, 207, 72, 240, 16, 37, 9, 197, 4, 193,
-			71, 72, 240, 16, 37, 0, 0, 0, 13, 66, 16, 160, 72, 4, 37, 12, 75, 6, 118, 0, 101, 0, 8, 197, 21, 48, 207, 88, 240, 15,
-			9, 197, 4, 51, 210, 16, 240, 15, 36, 0, 0, 0, 9, 197, 109, 21, 69, 48, 16, 76, 34, 0, 11, 67, 48, 17, 25, 55, 6, 118,
-			72, 112, 0, 6, 195, 52, 244, 128, 15, 0, 0, 6, 195, 56, 242, 143, 16, 25, 3, 226, 132, 162, 65, 6, 35, 16, 14, 49, 132, 101,
-			36, 90, 37, 89, 47, 51, 6, 35, 72, 132, 0, 102, 24, 3, 226, 132, 162, 65, 6, 35, 16, 14, 49, 132, 101, 36, 90, 37, 91, 47,
-			6, 35, 72, 132, 0, 101, 0, 8, 66, 21, 128, 36, 89, 0, 102, 0, 7, 195, 57, 83, 65, 72, 34, 11, 67, 16, 83, 5, 72, 36,
-			55, 112, 0, 77, 0, 7, 196, 64, 241, 5, 52, 76, 0, 14, 68, 88, 241, 197, 48, 83, 6, 39, 12, 81, 13, 55, 0, 10, 67, 21,
-			145, 83, 6, 117, 89, 0, 102, 11, 67, 21, 145, 83, 6, 35, 37, 88, 0, 101, 0, 8, 196, 5, 161, 68, 60, 15, 36, 0, 7, 195,
-			72, 243, 1, 16, 37, 6, 195, 64, 83, 1, 16, 19, 70, 16, 148, 208, 56, 82, 65, 75, 124, 89, 48, 112, 50, 6, 119, 132, 0, 102,
-			19, 70, 16, 148, 208, 56, 82, 65, 72, 124, 91, 48, 112, 50, 6, 119, 132, 0, 101, 9, 198, 16, 144, 82, 72, 82, 65, 15, 9, 198,
-			4, 192, 193, 80, 82, 65, 15, 8, 195, 64, 83, 1, 102, 72, 34, 6, 195, 56, 83, 1, 76, 6, 195, 32, 149, 128, 13, 0, 10, 198,
-			16, 84, 208, 60, 163, 192, 16, 37, 0, 0, 7, 196, 81, 33, 86, 60, 16, 0, 0, 9, 198, 12, 19, 136, 61, 67, 192, 16, 0, 9,
-			67, 28, 85, 0, 81, 109, 47, 0, 9, 198, 16, 148, 195, 61, 33, 15, 15, 9, 198, 16, 84, 195, 61, 33, 15, 15, 7, 132, 115, 195,
-			163, 111, 72, 19, 4, 95, 51, 67, 111, 47, 51, 37, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 10, 199, 80, 149, 162, 72,
-			19, 79, 76, 72, 0, 10, 199, 65, 34, 77, 5, 97, 82, 4, 15, 0, 7, 195, 60, 194, 15, 16, 37, 0, 7, 196, 76, 80, 193, 76,
-			16, 0, 8, 197, 80, 84, 133, 37, 48, 72, 8, 197, 76, 84, 133, 37, 48, 72, 0, 7, 196, 5, 52, 201, 52, 102, 0, 0, 0, 0,
-			10, 135, 102, 195, 180, 114, 101, 105, 115, 72, 0, 0, 7, 196, 25, 33, 86, 60, 16, 0, 9, 198, 52, 20, 137, 64, 244, 193, 16, 0,
-			17, 70, 61, 85, 12, 60, 242, 192, 4, 114, 47, 55, 6, 40, 49, 0, 102, 18, 70, 61, 85, 12, 60, 242, 192, 6, 35, 40, 47, 55,
-			6, 40, 49, 0, 101, 10, 198, 72, 85, 15, 72, 227, 192, 15, 36, 0, 6, 195, 80, 244, 207, 15, 0, 0, 9, 198, 20, 229, 133, 48,
-			244, 5, 15, 0, 0, 4, 193, 148, 43, 0, 0, 7, 195, 17, 83, 65, 72, 34, 11, 67, 56, 83, 5, 50, 36, 55, 112, 0, 77, 10,
-			3, 226, 130, 172, 6, 115, 16, 111, 0, 0, 0, 0, 0, 12, 67, 48, 147, 133, 55, 6, 35, 37, 50, 0, 101, 6, 195, 16, 83, 1,
-			76, 0, 9, 198, 72, 83, 79, 73, 51, 192, 15, 9, 198, 20, 229, 18, 61, 51, 192, 15, 0, 0, 11, 67, 41, 80, 78, 101, 40, 129,
-			68, 0, 102, 0, 11, 67, 8, 16, 153, 71, 6, 118, 71, 112, 0, 0, 10, 198, 21, 128, 71, 21, 35, 192, 15, 36, 19, 6, 112, 114,
-			111, 102, 194, 186, 48, 51, 4, 39, 83, 36, 89, 6, 39, 34, 0, 0, 14, 68, 76, 51, 213, 80, 89, 49, 6, 35, 40, 47, 0, 101,
-			14, 4, 95, 111, 103, 111, 39, 81, 39, 50, 6, 36, 49, 0, 0, 10, 199, 21, 53, 9, 88, 83, 79, 76, 72, 0, 7, 196, 4, 32,
-			68, 88, 13, 0, 6, 195, 48, 81, 148, 15, 9, 198, 52, 19, 137, 128, 240, 129, 15, 6, 194, 109, 48, 72, 34, 0, 0, 12, 68, 52,
-			18, 76, 76, 65, 6, 118, 55, 89, 0, 12, 67, 65, 35, 198, 48, 51, 6, 110, 83, 0, 24, 0, 8, 197, 21, 53, 1, 37, 48, 72,
-			0, 0, 6, 195, 17, 3, 195, 13, 0, 0, 0, 9, 198, 20, 228, 207, 77, 51, 192, 16, 0, 0, 0, 7, 195, 4, 244, 192, 72, 34,
-			0, 9, 198, 32, 145, 18, 21, 67, 192, 16, 9, 198, 20, 229, 15, 73, 67, 192, 15, 10, 198, 20, 224, 207, 77, 67, 192, 15, 36, 9,
-			198, 12, 195, 210, 21, 67, 192, 16, 20, 6, 112, 114, 111, 102, 194, 170, 48, 51, 4, 39, 83, 36, 89, 6, 39, 16, 132, 0, 0, 18,
-			70, 20, 209, 82, 76, 243, 128, 6, 36, 65, 109, 16, 14, 89, 39, 68, 0, 17, 70, 77, 65, 80, 32, 83, 128, 89, 47, 6, 37, 12,
-			84, 13, 50, 0, 9, 198, 76, 84, 165, 20, 148, 192, 72, 0, 9, 198, 72, 84, 18, 21, 48, 64, 16, 0, 7, 195, 16, 20, 192, 72,
-			34, 6, 195, 48, 20, 192, 72, 0, 12, 68, 17, 34, 86, 20, 72, 51, 6, 117, 84, 0, 9, 196, 56, 84, 212, 4, 102, 76, 34, 0,
-			0, 15, 69, 85, 3, 15, 4, 64, 132, 48, 55, 6, 39, 40, 72, 0, 10, 198, 76, 83, 136, 61, 32, 64, 101, 16, 9, 198, 76, 20,
-			138, 21, 64, 64, 16, 9, 198, 69, 82, 77, 21, 32, 64, 15, 9, 198, 64, 244, 146, 21, 64, 64, 16, 9, 198, 61, 1, 82, 21, 64,
-			64, 16, 9, 198, 56, 147, 134, 21, 64, 64, 16, 9, 198, 53, 85, 18, 21, 64, 64, 16, 9, 198, 28, 244, 138, 21, 64, 64, 16, 9,
-			198, 12, 244, 150, 21, 64, 64, 16, 9, 198, 12, 244, 142, 21, 64, 64, 16, 9, 198, 12, 128, 86, 21, 64, 64, 16, 9, 198, 4, 225,
-			15, 73, 32, 64, 16, 9, 198, 4, 36, 207, 73, 64, 64, 16, 13, 4, 95, 98, 114, 118, 71, 51, 6, 109, 84, 37, 0, 0, 12, 67,
-			77, 84, 197, 88, 6, 40, 12, 123, 13, 0, 6, 195, 88, 84, 129, 15, 10, 198, 12, 243, 148, 72, 243, 5, 16, 37, 19, 67, 64, 20,
-			129, 48, 4, 35, 16, 132, 49, 135, 0, 102, 81, 113, 117, 101, 32, 6, 195, 64, 20, 129, 72, 13, 67, 21, 52, 197, 6, 36, 89, 37,
-			0, 102, 76, 34, 0, 0, 0, 13, 68, 100, 18, 15, 60, 37, 35, 107, 6, 40, 0, 102, 15, 68, 100, 18, 15, 60, 6, 37, 4, 35,
-			107, 6, 40, 0, 101, 8, 196, 5, 1, 71, 60, 16, 37, 19, 4, 95, 97, 99, 50, 35, 81, 6, 40, 72, 111, 72, 6, 40, 48, 55,
-			111, 0, 0, 6, 195, 76, 244, 1, 16, 0, 0, 6, 195, 4, 145, 19, 13, 0, 6, 194, 20, 208, 72, 37, 9, 66, 16, 240, 72, 111,
-			0, 72, 34, 0, 0, 16, 69, 56, 85, 212, 60, 224, 50, 6, 37, 38, 40, 47, 39, 68, 0, 0, 10, 67, 8, 19, 139, 71, 118, 68,
-			49, 0, 22, 4, 95, 52, 67, 111, 49, 58, 35, 72, 16, 37, 90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 0, 0, 14, 71,
-			24, 85, 69, 72, 32, 67, 32, 21, 100, 101, 0, 47, 0, 17, 7, 99, 195, 163, 105, 98, 114, 97, 49, 6, 129, 124, 71, 51, 132, 0,
-			16, 5, 95, 48, 77, 49, 111, 65, 37, 55, 6, 109, 88, 37, 65, 0, 0, 8, 197, 12, 244, 144, 61, 48, 15, 9, 197, 40, 19, 65,
-			37, 48, 76, 32, 0, 0, 19, 4, 95, 55, 88, 111, 89, 36, 48, 47, 58, 35, 90, 6, 109, 88, 37, 65, 0, 0, 0, 11, 200, 16,
-			244, 141, 36, 226, 15, 12, 240, 16, 0, 8, 197, 6, 3, 210, 21, 48, 16, 0, 14, 68, 28, 208, 73, 48, 90, 36, 65, 6, 118, 55,
-			0, 102, 15, 68, 28, 208, 73, 48, 81, 4, 36, 65, 6, 118, 55, 0, 101, 11, 67, 20, 225, 0, 6, 36, 50, 72, 0, 101, 9, 198,
-			12, 243, 131, 61, 33, 15, 15, 7, 196, 12, 131, 224, 4, 15, 0, 17, 69, 12, 19, 131, 20, 192, 49, 6, 132, 50, 89, 6, 109, 55,
-			0, 101, 8, 196, 64, 244, 148, 60, 15, 36, 7, 196, 12, 193, 82, 60, 15, 0, 7, 195, 65, 32, 64, 72, 34, 13, 3, 95, 51, 88,
-			47, 51, 6, 37, 68, 47, 132, 0, 0, 19, 70, 36, 229, 18, 4, 225, 84, 37, 68, 47, 51, 35, 50, 6, 109, 47, 0, 102, 9, 198,
-			76, 86, 20, 21, 67, 192, 16, 7, 196, 64, 84, 132, 4, 16, 14, 3, 95, 48, 67, 89, 6, 118, 68, 47, 111, 88, 0, 102, 14, 3,
-			95, 48, 67, 89, 6, 118, 68, 47, 40, 138, 0, 101, 0, 9, 198, 21, 52, 5, 13, 68, 143, 15, 6, 195, 12, 245, 15, 16, 0, 0,
-			15, 67, 17, 32, 64, 72, 39, 58, 47, 6, 39, 16, 132, 0, 24, 0, 0, 0, 9, 198, 13, 32, 84, 21, 32, 64, 15, 9, 198, 12,
-			133, 76, 21, 64, 64, 16, 0, 7, 195, 24, 244, 129, 16, 36, 6, 195, 24, 244, 129, 15, 6, 195, 24, 244, 129, 72, 0, 12, 3, 95,
-			49, 67, 89, 6, 118, 68, 47, 40, 0, 0, 0, 0, 12, 67, 21, 52, 193, 6, 109, 89, 132, 0, 76, 37, 0, 0, 0, 5, 194, 48,
-			16, 72, 8, 4, 95, 35, 194, 170, 132, 0, 16, 3, 95, 49, 57, 72, 36, 88, 36, 50, 6, 110, 84, 112, 0, 102, 16, 3, 95, 49,
-			57, 72, 112, 88, 132, 50, 6, 110, 84, 112, 0, 101, 0, 14, 3, 95, 49, 56, 72, 36, 88, 6, 120, 47, 40, 0, 102, 15, 3, 95,
-			49, 56, 72, 112, 88, 6, 110, 37, 47, 40, 0, 101, 0, 12, 67, 56, 86, 20, 50, 6, 109, 49, 89, 47, 0, 16, 3, 95, 50, 67,
-			72, 40, 88, 6, 118, 68, 47, 111, 88, 0, 102, 16, 3, 95, 50, 67, 72, 40, 88, 6, 118, 68, 47, 40, 138, 0, 101, 15, 3, 226,
-			151, 143, 89, 6, 37, 16, 14, 49, 40, 55, 111, 0, 0, 9, 198, 16, 84, 208, 60, 163, 211, 15, 9, 198, 12, 243, 15, 77, 51, 211,
-			16, 7, 195, 8, 245, 15, 16, 37, 0, 8, 196, 17, 83, 65, 76, 72, 34, 0, 10, 199, 21, 53, 28, 88, 19, 79, 76, 72, 0, 19,
-			70, 21, 132, 5, 73, 68, 192, 109, 49, 89, 48, 6, 109, 16, 14, 123, 0, 102, 17, 70, 8, 192, 90, 21, 36, 192, 71, 55, 6, 118,
-			88, 36, 34, 89, 0, 0, 16, 70, 45, 37, 69, 28, 84, 128, 49, 51, 6, 37, 90, 36, 34, 0, 9, 198, 21, 53, 9, 88, 84, 128,
-			72, 0, 12, 201, 21, 53, 18, 60, 115, 206, 60, 97, 64, 15, 11, 3, 95, 49, 49, 6, 39, 68, 88, 112, 0, 0, 9, 198, 69, 80,
-			84, 61, 38, 133, 16, 10, 3, 95, 49, 48, 72, 6, 109, 138, 0, 0, 17, 3, 95, 51, 67, 47, 51, 36, 88, 6, 118, 68, 47, 111,
-			88, 0, 102, 17, 3, 95, 51, 67, 47, 34, 112, 88, 6, 118, 68, 47, 40, 138, 0, 101, 13, 3, 95, 49, 51, 47, 51, 6, 36, 88,
-			37, 0, 102, 13, 3, 95, 49, 51, 47, 34, 6, 36, 88, 112, 0, 101, 0, 11, 3, 95, 49, 50, 72, 6, 39, 88, 112, 0, 0, 7,
-			196, 28, 195, 211, 60, 15, 12, 3, 95, 49, 53, 49, 6, 37, 68, 88, 112, 0, 16, 4, 95, 99, 121, 114, 89, 37, 16, 6, 37, 55,
-			37, 49, 111, 0, 0, 15, 3, 95, 49, 52, 49, 35, 47, 6, 39, 34, 88, 112, 0, 102, 15, 3, 95, 49, 52, 49, 132, 47, 6, 39,
-			34, 88, 112, 0, 101, 0, 17, 3, 95, 49, 55, 72, 4, 36, 88, 36, 89, 6, 109, 76, 112, 0, 102, 16, 3, 95, 49, 55, 72, 112,
-			88, 132, 89, 6, 109, 47, 112, 0, 101, 0, 16, 3, 95, 49, 54, 72, 4, 36, 88, 36, 89, 6, 118, 138, 0, 102, 16, 3, 95, 49,
-			54, 72, 112, 88, 132, 89, 6, 36, 37, 138, 0, 101, 0, 8, 4, 95, 35, 194, 186, 111, 0, 0, 11, 200, 12, 21, 5, 69, 81, 83,
-			21, 48, 15, 15, 3, 95, 55, 88, 89, 36, 47, 6, 118, 68, 47, 132, 0, 102, 15, 3, 95, 55, 88, 89, 112, 47, 6, 118, 68, 47,
-			132, 0, 101, 0, 15, 68, 52, 81, 9, 4, 65, 6, 109, 72, 4, 37, 132, 0, 101, 14, 68, 56, 84, 211, 20, 50, 6, 36, 89, 112,
-			0, 76, 34, 0, 14, 69, 54, 179, 12, 21, 32, 65, 6, 37, 55, 36, 34, 0, 0, 9, 198, 76, 244, 150, 21, 65, 64, 16, 9, 198,
-			64, 244, 146, 21, 65, 64, 16, 9, 198, 80, 149, 133, 77, 65, 64, 72, 0, 13, 67, 76, 20, 9, 89, 4, 35, 48, 6, 37, 0, 101,
-			0, 7, 196, 85, 33, 73, 4, 15, 7, 196, 64, 241, 9, 4, 76, 13, 3, 95, 49, 111, 48, 51, 37, 65, 6, 118, 16, 0, 0, 0,
-			0, 12, 67, 76, 149, 5, 89, 6, 117, 76, 112, 0, 102, 11, 67, 76, 149, 5, 89, 6, 117, 47, 0, 101, 0, 16, 3, 95, 53, 67,
-			49, 37, 67, 6, 118, 68, 47, 111, 88, 0, 102, 16, 3, 95, 53, 67, 49, 37, 67, 6, 118, 68, 47, 40, 138, 0, 101, 0, 0, 8,
-			196, 76, 244, 18, 60, 16, 37, 7, 196, 36, 227, 214, 60, 15, 0, 7, 195, 72, 245, 1, 15, 37, 6, 195, 72, 245, 1, 16, 11, 67,
-			80, 85, 133, 47, 36, 84, 112, 0, 73, 13, 4, 95, 97, 99, 117, 35, 81, 6, 40, 72, 111, 0, 0, 13, 3, 95, 50, 111, 89, 36,
-			81, 6, 128, 68, 72, 0, 0, 0, 0, 6, 195, 52, 19, 0, 102, 0, 0, 9, 198, 64, 244, 148, 4, 229, 15, 102, 19, 4, 95, 53,
-			67, 111, 49, 37, 68, 90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 28, 3, 226, 150, 160, 71, 6, 35, 101, 132, 84, 36, 16,
-			14, 76, 37, 49, 6, 114, 49, 39, 16, 14, 47, 35, 72, 132, 0, 0, 17, 69, 92, 17, 206, 21, 32, 84, 6, 35, 81, 124, 50, 36,
-			34, 0, 103, 15, 69, 92, 17, 206, 21, 32, 84, 6, 35, 81, 50, 36, 34, 0, 16, 70, 80, 16, 140, 21, 68, 192, 47, 6, 35, 71,
-			55, 36, 123, 0, 14, 3, 95, 51, 111, 47, 36, 16, 14, 89, 6, 118, 16, 0, 0, 15, 70, 53, 81, 76, 48, 84, 128, 65, 6, 37,
-			55, 36, 34, 0, 0, 0, 15, 69, 48, 20, 20, 61, 0, 55, 109, 48, 47, 6, 110, 48, 0, 13, 3, 95, 50, 88, 84, 6, 37, 68,
-			76, 112, 0, 102, 13, 3, 95, 50, 88, 84, 6, 37, 68, 47, 112, 0, 101, 0, 15, 69, 32, 149, 12, 21, 32, 107, 6, 37, 47, 55,
-			36, 34, 0, 16, 69, 72, 80, 68, 21, 32, 34, 6, 37, 72, 4, 132, 44, 0, 101, 14, 69, 93, 34, 84, 21, 32, 34, 6, 117, 47,
-			36, 34, 0, 0, 0, 20, 71, 16, 245, 206, 48, 240, 68, 76, 72, 114, 68, 55, 6, 39, 58, 72, 89, 0, 102, 0, 0, 0, 6, 195,
-			13, 5, 67, 13, 0, 7, 196, 16, 147, 199, 60, 16, 0, 11, 200, 16, 148, 211, 4, 35, 210, 21, 48, 16, 0, 8, 196, 16, 84, 211,
-			20, 15, 36, 7, 196, 16, 84, 211, 20, 16, 8, 196, 16, 84, 211, 20, 76, 34, 0, 10, 198, 12, 243, 134, 61, 37, 15, 15, 36, 0,
-			0, 0, 11, 3, 95, 53, 111, 49, 6, 37, 68, 47, 0, 15, 3, 95, 63, 63, 89, 6, 37, 65, 71, 39, 55, 111, 10, 0, 0, 6,
-			195, 8, 242, 143, 16, 0, 13, 66, 53, 32, 65, 6, 37, 89, 47, 36, 34, 0, 24, 0, 16, 3, 95, 52, 88, 49, 58, 35, 16, 6,
-			118, 68, 47, 132, 0, 102, 16, 3, 95, 52, 88, 49, 58, 132, 16, 6, 36, 68, 47, 132, 0, 101, 0, 0, 0, 0, 11, 67, 48, 149,
-			133, 55, 6, 35, 37, 84, 0, 6, 195, 80, 85, 1, 16, 7, 195, 52, 85, 1, 15, 37, 6, 195, 28, 245, 1, 16, 6, 195, 80, 149,
-			133, 72, 0, 11, 3, 95, 54, 111, 89, 6, 36, 89, 47, 0, 0, 0, 6, 194, 56, 16, 72, 34, 18, 4, 95, 115, 117, 98, 15, 89,
-			40, 71, 89, 49, 51, 6, 37, 47, 111, 0, 0, 9, 67, 28, 243, 0, 81, 39, 58, 0, 16, 3, 95, 53, 88, 89, 37, 68, 49, 58,
-			6, 118, 68, 47, 132, 0, 0, 10, 199, 28, 243, 143, 73, 33, 73, 4, 15, 10, 199, 24, 83, 9, 77, 65, 73, 4, 15, 0, 6, 195,
-			61, 52, 207, 16, 9, 198, 16, 84, 212, 21, 36, 143, 16, 13, 4, 95, 114, 110, 103, 129, 50, 6, 109, 55, 0, 101, 11, 4, 95, 114,
-			110, 103, 129, 50, 6, 137, 0, 0, 14, 69, 48, 22, 79, 85, 64, 55, 6, 118, 4, 114, 47, 0, 0, 6, 195, 24, 242, 64, 72, 0,
-			12, 3, 95, 55, 111, 89, 6, 109, 76, 37, 65, 0, 0, 12, 67, 56, 84, 143, 50, 6, 109, 34, 40, 0, 101, 0, 0, 15, 3, 95,
-			54, 88, 89, 36, 89, 6, 118, 68, 47, 132, 0, 102, 15, 3, 95, 54, 88, 89, 112, 89, 6, 118, 68, 47, 132, 0, 101, 0, 14, 69,
-			88, 19, 20, 21, 32, 84, 6, 114, 47, 36, 34, 0, 9, 197, 12, 243, 8, 21, 32, 15, 37, 7, 196, 80, 84, 133, 36, 72, 7, 196,
-			76, 84, 133, 36, 72, 0, 0, 8, 197, 21, 53, 1, 73, 192, 72, 0, 6, 195, 76, 83, 64, 102, 0, 0, 13, 201, 16, 84, 193, 77,
-			51, 211, 76, 81, 207, 16, 37, 0, 0, 9, 198, 76, 147, 129, 28, 241, 193, 15, 0, 16, 68, 56, 84, 212, 20, 50, 6, 36, 89, 76,
-			37, 0, 102, 76, 34, 0, 8, 197, 28, 19, 5, 72, 16, 15, 0, 0, 10, 198, 65, 32, 81, 84, 83, 1, 76, 34, 0, 7, 196, 48,
-			84, 18, 4, 15, 10, 3, 95, 57, 111, 50, 6, 39, 50, 0, 0, 16, 69, 16, 83, 5, 80, 80, 72, 6, 37, 55, 6, 37, 47, 0,
-			101, 8, 197, 96, 20, 143, 64, 80, 15, 8, 197, 80, 20, 5, 80, 80, 16, 8, 197, 80, 20, 5, 72, 16, 15, 8, 197, 72, 243, 5,
-			80, 80, 16, 8, 197, 24, 147, 5, 80, 80, 16, 8, 197, 12, 243, 5, 80, 80, 16, 8, 197, 12, 16, 197, 80, 80, 16, 0, 18, 70,
-			36, 228, 212, 4, 195, 0, 4, 37, 50, 89, 47, 6, 35, 55, 0, 101, 20, 71, 16, 84, 201, 28, 225, 82, 76, 72, 36, 88, 6, 117,
-			50, 36, 34, 89, 0, 102, 9, 198, 76, 147, 143, 65, 49, 64, 15, 0, 13, 3, 95, 56, 88, 120, 47, 6, 118, 68, 47, 132, 0, 0,
-			10, 199, 8, 244, 130, 60, 193, 84, 4, 16, 0, 0, 7, 196, 16, 145, 71, 60, 16, 0, 6, 195, 16, 246, 133, 16, 6, 195, 88, 245,
-			64, 76, 7, 195, 76, 85, 64, 76, 34, 0, 0, 12, 67, 12, 20, 19, 49, 6, 35, 48, 89, 0, 101, 8, 197, 72, 83, 79, 20, 208,
-			15, 0, 9, 198, 12, 20, 146, 62, 0, 64, 15, 9, 198, 64, 241, 37, 4, 211, 211, 76, 6, 194, 52, 80, 72, 32, 0, 15, 3, 95,
-			57, 88, 50, 39, 84, 6, 118, 68, 47, 132, 0, 102, 15, 3, 95, 57, 88, 50, 40, 84, 6, 118, 68, 47, 132, 0, 101, 0, 9, 198,
-			77, 84, 15, 73, 67, 192, 15, 0, 18, 4, 95, 54, 67, 111, 89, 118, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 7, 196, 56,
-			83, 5, 76, 77, 7, 196, 16, 83, 5, 76, 77, 0, 0, 10, 199, 16, 85, 5, 72, 147, 210, 20, 15, 8, 197, 12, 131, 198, 21, 32,
-			15, 6, 195, 4, 20, 16, 13, 0, 7, 195, 52, 241, 143, 15, 36, 0, 13, 3, 95, 63, 65, 55, 6, 36, 47, 51, 132, 10, 0, 0,
-			0, 8, 197, 52, 148, 212, 21, 32, 15, 0, 13, 4, 95, 49, 88, 111, 72, 6, 109, 89, 37, 65, 0, 0, 19, 70, 20, 147, 147, 80,
-			82, 78, 11, 6, 117, 50, 89, 47, 4, 117, 50, 0, 102, 18, 70, 20, 147, 147, 80, 82, 78, 11, 6, 117, 50, 91, 47, 4, 117, 50,
-			0, 16, 69, 64, 241, 5, 73, 192, 48, 2, 39, 72, 36, 16, 35, 0, 76, 0, 16, 6, 115, 117, 116, 105, 195, 163, 89, 40, 76, 37,
-			6, 129, 68, 0, 0, 13, 3, 95, 52, 111, 49, 58, 6, 35, 16, 14, 47, 0, 20, 4, 95, 115, 117, 112, 15, 89, 39, 71, 16, 36,
-			89, 49, 51, 6, 37, 47, 111, 0, 4, 193, 168, 43, 0, 12, 4, 95, 115, 116, 107, 71, 6, 35, 101, 132, 0, 0, 20, 70, 21, 132,
-			12, 61, 33, 82, 36, 49, 89, 48, 55, 6, 110, 16, 36, 34, 0, 102, 22, 70, 21, 132, 12, 61, 33, 82, 4, 36, 49, 89, 48, 55,
-			6, 110, 12, 16, 132, 44, 0, 101, 0, 8, 197, 32, 243, 69, 72, 240, 15, 9, 197, 4, 49, 82, 80, 240, 16, 37, 0, 11, 67, 92,
-			80, 128, 58, 6, 109, 71, 0, 102, 0, 0, 10, 199, 80, 244, 142, 61, 161, 76, 60, 16, 0, 14, 68, 76, 194, 68, 20, 88, 55, 6,
-			117, 75, 112, 0, 102, 8, 196, 48, 84, 212, 20, 16, 36, 8, 196, 16, 84, 212, 20, 15, 36, 7, 196, 16, 84, 212, 20, 16, 13, 68,
-			24, 244, 212, 20, 83, 39, 89, 76, 112, 0, 73, 0, 11, 69, 24, 81, 15, 72, 16, 21, 0, 101, 47, 15, 69, 28, 243, 199, 48, 80,
-			81, 6, 40, 81, 39, 55, 0, 102, 16, 69, 28, 243, 199, 48, 80, 81, 6, 40, 12, 81, 132, 55, 0, 101, 8, 197, 24, 21, 15, 72,
-			16, 15, 8, 197, 21, 52, 15, 76, 16, 16, 9, 197, 21, 48, 207, 88, 16, 15, 36, 8, 197, 21, 48, 207, 88, 16, 16, 7, 195, 77,
-			80, 64, 76, 34, 0, 0, 0, 7, 196, 88, 84, 132, 20, 16, 21, 68, 16, 84, 196, 20, 72, 6, 36, 89, 75, 37, 49, 135, 0, 102,
-			81, 113, 117, 101, 32, 8, 196, 16, 84, 196, 20, 102, 72, 0, 14, 69, 85, 1, 1, 80, 80, 132, 48, 72, 6, 118, 47, 0, 8, 197,
-			52, 81, 197, 72, 16, 15, 8, 197, 52, 16, 197, 80, 80, 16, 8, 197, 37, 51, 204, 16, 16, 16, 8, 197, 12, 17, 5, 80, 80, 16,
-			0, 0, 11, 67, 24, 150, 5, 83, 37, 91, 112, 0, 101, 6, 195, 8, 246, 5, 15, 0, 10, 199, 72, 19, 65, 48, 129, 84, 20, 16,
-			0, 7, 195, 65, 32, 83, 72, 34, 0, 10, 199, 21, 52, 85, 20, 193, 84, 60, 16, 0, 8, 197, 80, 146, 143, 48, 240, 16, 11, 67,
-			64, 246, 1, 48, 6, 39, 91, 132, 0, 8, 197, 21, 53, 15, 40, 240, 16, 0, 11, 3, 97, 46, 99, 6, 35, 89, 6, 36, 0, 0,
-			6, 195, 48, 241, 15, 16, 8, 197, 76, 84, 137, 4, 208, 72, 0, 0, 11, 200, 52, 243, 148, 20, 225, 71, 72, 240, 16, 0, 0, 0,
-			21, 68, 4, 229, 5, 76, 6, 129, 68, 76, 37, 89, 49, 135, 0, 102, 81, 113, 117, 101, 32, 9, 196, 21, 53, 5, 76, 102, 76, 34,
-			0, 0, 6, 194, 61, 48, 76, 34, 4, 193, 172, 43, 20, 4, 95, 99, 105, 114, 89, 37, 34, 49, 128, 68, 83, 55, 6, 109, 49, 89,
-			111, 0, 0, 12, 68, 44, 193, 73, 56, 49, 55, 6, 117, 50, 0, 20, 70, 77, 3, 210, 80, 147, 135, 89, 48, 6, 110, 34, 47, 4,
-			37, 50, 81, 0, 101, 11, 67, 65, 35, 192, 48, 51, 111, 0, 72, 34, 0, 11, 199, 5, 36, 133, 52, 84, 211, 60, 16, 37, 17, 4,
-			95, 48, 77, 52, 47, 34, 37, 55, 57, 6, 127, 57, 88, 0, 102, 17, 4, 95, 48, 77, 52, 47, 34, 37, 55, 57, 6, 127, 57, 138,
-			0, 101, 0, 8, 197, 56, 245, 133, 48, 240, 16, 8, 197, 12, 244, 133, 80, 240, 16, 21, 69, 21, 128, 197, 80, 240, 36, 89, 6, 109,
-			47, 40, 89, 135, 0, 102, 81, 115, 101, 32, 0, 11, 3, 95, 56, 111, 120, 47, 6, 35, 84, 0, 16, 4, 95, 48, 77, 50, 65, 37,
-			55, 57, 6, 127, 57, 88, 0, 102, 16, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 127, 57, 138, 0, 101, 0, 10, 67, 88, 243, 128,
-			83, 2, 110, 50, 0, 16, 4, 95, 48, 77, 51, 71, 37, 55, 57, 6, 127, 57, 88, 0, 102, 16, 4, 95, 48, 77, 51, 71, 37, 55,
-			57, 6, 127, 57, 138, 0, 101, 0, 8, 196, 81, 35, 195, 60, 16, 37, 10, 199, 77, 83, 6, 85, 33, 84, 60, 16, 0, 11, 67, 52,
-			83, 149, 65, 36, 50, 40, 0, 101, 9, 197, 77, 81, 143, 12, 240, 16, 37, 9, 197, 5, 3, 211, 80, 240, 15, 36, 9, 197, 4, 35,
-			210, 80, 240, 15, 36, 8, 197, 4, 35, 210, 16, 240, 15, 12, 4, 95, 48, 77, 49, 65, 6, 116, 10, 0, 102, 13, 4, 95, 48, 77,
-			49, 65, 6, 37, 55, 10, 0, 101, 0, 0, 6, 195, 36, 241, 15, 16, 0, 7, 195, 65, 38, 192, 72, 34, 0, 11, 200, 8, 148, 211,
-			84, 193, 133, 80, 240, 16, 0, 0, 6, 195, 76, 84, 128, 72, 0, 20, 72, 92, 83, 12, 36, 225, 212, 60, 224, 58, 6, 109, 55, 112,
-			50, 47, 39, 50, 0, 0, 9, 198, 24, 20, 143, 48, 85, 5, 16, 0, 15, 68, 56, 244, 211, 4, 50, 6, 110, 89, 132, 0, 102, 76,
-			34, 0, 16, 4, 95, 108, 105, 103, 55, 37, 81, 35, 72, 6, 40, 16, 132, 0, 0, 20, 68, 76, 19, 22, 60, 89, 6, 35, 55, 84,
-			40, 89, 135, 0, 102, 81, 115, 101, 32, 0, 15, 70, 56, 85, 77, 4, 227, 128, 50, 6, 136, 65, 35, 50, 0, 13, 68, 32, 81, 197,
-			48, 101, 6, 36, 81, 36, 55, 0, 9, 198, 21, 48, 207, 64, 85, 1, 16, 9, 198, 12, 19, 129, 48, 85, 1, 16, 0, 9, 198, 12,
-			243, 15, 77, 51, 192, 16, 0, 0, 7, 196, 52, 85, 18, 60, 15, 7, 196, 12, 85, 18, 60, 15, 0, 17, 70, 24, 86, 78, 52, 19,
-			128, 83, 6, 35, 37, 50, 65, 13, 50, 0, 0, 9, 198, 52, 147, 149, 21, 67, 192, 16, 0, 21, 4, 95, 55, 67, 111, 89, 36, 48,
-			76, 37, 90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 10, 199, 12, 243, 131, 21, 37, 15, 76, 16, 0, 0, 0, 7, 196, 21, 53,
-			5, 72, 15, 0, 7, 195, 65, 38, 211, 72, 34, 0, 9, 198, 24, 243, 3, 48, 244, 133, 15, 0, 6, 194, 61, 80, 102, 72, 0, 15,
-			4, 95, 50, 88, 111, 84, 37, 90, 6, 109, 88, 37, 65, 0, 0, 19, 71, 52, 20, 139, 21, 66, 78, 28, 65, 6, 35, 34, 49, 36,
-			76, 37, 68, 0, 0, 16, 70, 72, 145, 77, 4, 227, 128, 34, 6, 37, 12, 65, 35, 50, 0, 0, 0, 9, 198, 80, 19, 66, 61, 33,
-			83, 16, 0, 7, 196, 12, 81, 18, 60, 15, 0, 9, 197, 56, 19, 79, 72, 240, 16, 37, 0, 9, 198, 64, 82, 88, 61, 67, 192, 16,
-			10, 198, 5, 52, 207, 65, 35, 192, 16, 37, 0, 0, 0, 9, 134, 101, 115, 116, 195, 163, 111, 72, 0, 13, 68, 52, 245, 137, 20, 65,
-			6, 40, 84, 37, 0, 101, 7, 196, 24, 244, 131, 4, 16, 8, 196, 12, 84, 131, 4, 15, 36, 0, 9, 67, 52, 16, 192, 65, 109, 49,
-			0, 0, 0, 0, 0, 6, 195, 12, 225, 64, 13, 0, 13, 201, 16, 84, 195, 60, 229, 18, 60, 193, 64, 16, 37, 0, 0, 10, 199, 9,
-			32, 67, 20, 193, 84, 20, 16, 0, 0, 15, 4, 95, 99, 101, 100, 89, 112, 72, 6, 37, 61, 132, 0, 101, 15, 4, 95, 99, 101, 100,
-			89, 36, 75, 6, 37, 55, 57, 132, 0, 0, 17, 70, 32, 19, 9, 76, 243, 128, 132, 55, 6, 37, 89, 132, 68, 0, 101, 0, 10, 198,
-			80, 83, 80, 21, 35, 192, 16, 37, 10, 198, 20, 229, 5, 73, 35, 192, 16, 37, 9, 198, 8, 20, 146, 21, 67, 192, 16, 0, 11, 200,
-			5, 52, 197, 52, 35, 5, 36, 16, 15, 0, 0, 8, 197, 52, 147, 204, 61, 48, 15, 8, 197, 12, 244, 142, 61, 48, 15, 0, 10, 199,
-			76, 80, 143, 73, 33, 73, 4, 15, 10, 199, 12, 83, 148, 61, 1, 73, 4, 15, 0, 7, 195, 12, 244, 143, 15, 36, 6, 195, 12, 244,
-			143, 16, 0, 0, 9, 134, 115, 101, 114, 195, 163, 111, 72, 8, 197, 5, 1, 78, 5, 48, 102, 0, 0, 0, 10, 198, 72, 80, 207, 52,
-			88, 15, 15, 36, 10, 198, 20, 225, 5, 72, 88, 15, 15, 36, 8, 196, 12, 131, 210, 60, 16, 37, 16, 4, 95, 99, 97, 112, 65, 117,
-			6, 40, 89, 49, 40, 55, 111, 0, 0, 19, 70, 16, 146, 139, 77, 68, 129, 72, 6, 37, 57, 49, 89, 47, 34, 134, 12, 0, 9, 198,
-			28, 19, 135, 61, 36, 129, 16, 0, 0, 9, 198, 76, 83, 136, 61, 33, 83, 16, 9, 198, 72, 19, 131, 61, 33, 83, 16, 9, 198, 80,
-			149, 133, 77, 65, 83, 72, 0, 7, 196, 29, 81, 84, 60, 16, 0, 9, 198, 12, 131, 214, 21, 52, 197, 16, 0, 9, 198, 77, 83, 6,
-			21, 67, 192, 16, 9, 198, 56, 149, 18, 21, 67, 192, 16, 9, 198, 29, 32, 86, 21, 67, 192, 16, 10, 198, 21, 53, 15, 73, 99, 192,
-			15, 36, 6, 195, 69, 81, 82, 102, 0, 18, 70, 78, 83, 66, 60, 195, 192, 89, 6, 37, 68, 71, 39, 55, 111, 0, 104, 20, 3, 95,
-			194, 180, 35, 89, 6, 118, 68, 47, 40, 4, 35, 81, 6, 40, 72, 111, 0, 0, 0, 0, 14, 68, 4, 67, 194, 20, 132, 72, 6, 110,
-			71, 112, 0, 101, 7, 196, 52, 241, 68, 4, 15, 8, 196, 5, 161, 68, 4, 15, 36, 8, 133, 112, 195, 180, 100, 101, 76, 0, 10, 198,
-			72, 81, 146, 21, 48, 207, 15, 36, 6, 195, 24, 241, 207, 16, 7, 195, 52, 20, 192, 102, 72, 6, 195, 88, 244, 192, 72, 7, 195, 56,
-			244, 192, 72, 34, 6, 195, 60, 212, 192, 13, 0, 9, 198, 48, 16, 197, 72, 64, 64, 15, 9, 198, 12, 19, 69, 48, 128, 64, 15, 9,
-			198, 4, 224, 200, 61, 96, 64, 16, 0, 13, 3, 110, 194, 186, 50, 6, 128, 65, 36, 16, 111, 0, 0, 7, 196, 81, 33, 84, 4, 16,
-			0, 0, 0, 6, 195, 8, 240, 193, 16, 0, 10, 199, 21, 53, 9, 88, 84, 129, 52, 72, 6, 131, 95, 195, 179, 43, 0, 6, 195, 60,
-			229, 64, 65, 6, 195, 76, 242, 83, 72, 0, 0, 6, 195, 16, 240, 197, 16, 0, 8, 66, 48, 240, 55, 111, 0, 72, 12, 66, 76, 16,
-			4, 109, 89, 57, 6, 35, 0, 101, 0, 20, 4, 95, 56, 67, 111, 39, 49, 76, 37, 90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0,
-			0, 19, 71, 28, 245, 20, 25, 34, 69, 16, 81, 6, 110, 47, 83, 51, 37, 12, 47, 0, 14, 68, 25, 35, 206, 80, 83, 34, 6, 39,
-			50, 47, 0, 101, 0, 16, 70, 8, 80, 84, 48, 84, 192, 71, 6, 37, 47, 39, 58, 89, 0, 9, 198, 16, 85, 133, 72, 20, 192, 15,
-			0, 7, 196, 52, 83, 143, 72, 15, 7, 196, 24, 22, 133, 72, 76, 0, 28, 3, 95, 194, 161, 4, 36, 89, 49, 55, 132, 65, 35, 89,
-			4, 130, 4, 37, 68, 84, 36, 34, 76, 6, 37, 72, 132, 0, 6, 131, 95, 195, 169, 43, 0, 10, 197, 56, 244, 211, 61, 48, 102, 76,
-			34, 0, 9, 197, 21, 48, 143, 128, 240, 15, 36, 9, 197, 4, 195, 79, 128, 240, 15, 36, 0, 0, 0, 0, 0, 14, 68, 20, 197, 15,
-			56, 6, 109, 55, 47, 132, 68, 0, 101, 9, 198, 80, 84, 146, 61, 33, 83, 16, 6, 131, 95, 195, 160, 43, 0, 6, 131, 95, 195, 161,
-			43, 0, 15, 69, 45, 42, 199, 21, 32, 49, 51, 6, 37, 90, 36, 34, 0, 11, 200, 12, 21, 1, 13, 33, 83, 21, 48, 15, 0, 9,
-			198, 72, 80, 207, 73, 67, 192, 15, 9, 198, 24, 243, 8, 21, 67, 192, 16, 10, 198, 20, 230, 5, 73, 67, 192, 16, 37, 9, 198, 4,
-			213, 76, 21, 67, 192, 16, 0, 9, 198, 12, 243, 15, 77, 68, 143, 16, 0, 9, 198, 36, 229, 5, 72, 225, 84, 15, 0, 6, 195, 72,
-			241, 77, 15, 0, 8, 196, 80, 244, 146, 20, 16, 37, 7, 196, 69, 81, 68, 4, 15, 7, 196, 12, 241, 146, 20, 15, 0, 6, 195, 80,
-			241, 207, 16, 10, 67, 21, 32, 64, 109, 16, 132, 0, 73, 0, 9, 198, 28, 19, 8, 60, 96, 64, 15, 0, 19, 71, 25, 34, 69, 17,
-			34, 67, 32, 83, 51, 6, 37, 12, 72, 51, 37, 91, 0, 0, 9, 197, 12, 243, 69, 128, 240, 15, 36, 7, 196, 12, 129, 70, 20, 15,
-			5, 194, 77, 32, 24, 0, 6, 195, 60, 97, 128, 15, 0, 15, 69, 16, 20, 151, 36, 224, 72, 6, 134, 34, 58, 37, 50, 0, 11, 68,
-			8, 192, 67, 44, 71, 55, 109, 49, 0, 9, 198, 64, 193, 66, 20, 144, 64, 15, 9, 198, 64, 19, 135, 20, 144, 64, 15, 9, 198, 24,
-			243, 147, 20, 48, 64, 16, 0, 7, 195, 76, 80, 193, 16, 37, 0, 0, 9, 198, 64, 20, 129, 16, 246, 15, 15, 6, 195, 64, 242, 83,
-			102, 0, 15, 69, 16, 80, 137, 4, 224, 72, 6, 109, 71, 57, 129, 68, 0, 0, 15, 69, 8, 16, 203, 85, 0, 71, 109, 49, 6, 132,
-			48, 0, 102, 0, 9, 66, 60, 176, 110, 49, 6, 118, 0, 0, 13, 68, 80, 20, 197, 72, 47, 6, 118, 88, 36, 34, 0, 13, 68, 48,
-			20, 197, 72, 55, 6, 118, 88, 36, 34, 0, 0, 7, 196, 88, 19, 79, 76, 76, 7, 196, 80, 83, 79, 76, 72, 0, 13, 68, 76, 130,
-			70, 80, 91, 6, 37, 83, 47, 0, 101, 0, 9, 198, 80, 146, 143, 48, 244, 192, 15, 9, 198, 77, 81, 143, 12, 244, 192, 16, 9, 198,
-			76, 16, 143, 72, 84, 192, 16, 11, 5, 101, 46, 117, 46, 97, 109, 40, 35, 0, 0, 0, 0, 0, 30, 3, 95, 194, 191, 4, 37, 68,
-			47, 36, 101, 4, 39, 81, 35, 89, 4, 130, 4, 37, 68, 84, 36, 34, 76, 6, 37, 72, 132, 0, 0, 0, 8, 67, 32, 145, 200, 107,
-			117, 0, 0, 0, 0, 0, 8, 196, 5, 3, 201, 60, 15, 36, 0, 0, 10, 199, 20, 230, 1, 69, 81, 67, 4, 16, 0, 6, 195, 61,
-			35, 143, 15, 8, 196, 24, 244, 160, 4, 15, 36, 7, 196, 24, 244, 160, 4, 16, 0, 23, 73, 52, 243, 148, 21, 52, 85, 36, 85, 64,
-			65, 4, 39, 68, 47, 36, 89, 49, 57, 6, 36, 0, 0, 0, 13, 4, 95, 103, 114, 118, 81, 51, 6, 35, 84, 37, 0, 0, 7, 195,
-			76, 80, 207, 15, 36, 6, 195, 76, 80, 207, 16, 0, 15, 70, 8, 16, 130, 4, 113, 64, 71, 6, 35, 71, 37, 75, 0, 9, 198, 12,
-			21, 15, 73, 161, 64, 16, 0, 12, 2, 195, 151, 84, 6, 36, 88, 112, 89, 0, 102, 12, 2, 195, 151, 84, 6, 36, 88, 112, 91, 0,
-			101, 0, 0, 0, 9, 198, 24, 241, 213, 21, 65, 64, 16, 0, 6, 195, 36, 241, 193, 15, 6, 195, 57, 97, 1, 13, 0, 11, 67, 4,
-			192, 78, 6, 35, 55, 13, 68, 0, 0, 7, 196, 5, 36, 143, 104, 16, 0, 14, 69, 65, 149, 8, 60, 224, 48, 6, 117, 87, 129, 68,
-			0, 9, 198, 72, 81, 143, 74, 3, 211, 15, 9, 198, 21, 49, 143, 74, 3, 211, 15, 0, 10, 2, 194, 167, 89, 36, 89, 6, 130, 0,
-			9, 2, 195, 159, 21, 100, 101, 0, 47, 0, 6, 194, 76, 80, 76, 32, 9, 66, 56, 240, 50, 111, 0, 72, 34, 5, 194, 76, 80, 72,
-			0, 11, 67, 8, 16, 203, 71, 6, 109, 49, 0, 101, 13, 68, 77, 84, 5, 72, 89, 6, 111, 48, 36, 34, 0, 9, 198, 16, 84, 193,
-			24, 244, 143, 16, 19, 4, 95, 57, 67, 111, 50, 39, 68, 90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 10, 2, 194, 165, 57, 6, 36,
-			68, 112, 0, 0, 7, 196, 80, 84, 197, 76, 15, 7, 196, 48, 84, 197, 76, 15, 7, 196, 24, 241, 207, 76, 15, 14, 2, 194, 162, 89,
-			36, 68, 47, 6, 35, 84, 111, 138, 0, 0, 11, 2, 194, 163, 55, 6, 37, 71, 51, 132, 0, 0, 18, 70, 8, 18, 1, 52, 20, 192,
-			71, 35, 101, 6, 129, 65, 132, 89, 0, 102, 9, 198, 73, 80, 143, 72, 84, 192, 16, 9, 198, 72, 145, 207, 72, 84, 192, 16, 9, 198,
-			65, 81, 5, 52, 244, 192, 76, 9, 198, 64, 241, 5, 52, 244, 192, 76, 9, 198, 24, 22, 133, 52, 244, 192, 76, 9, 198, 80, 149, 133,
-			52, 244, 192, 72, 9, 198, 21, 53, 1, 52, 244, 192, 72, 0, 7, 195, 28, 246, 143, 16, 37, 12, 201, 16, 84, 195, 60, 225, 143, 73,
-			67, 211, 16, 6, 195, 8, 80, 207, 16, 6, 195, 60, 213, 0, 13, 0, 16, 2, 194, 174, 101, 36, 90, 37, 89, 47, 51, 6, 35, 72,
-			111, 0, 0, 14, 68, 64, 18, 78, 80, 48, 6, 35, 37, 50, 47, 0, 101, 0, 0, 19, 4, 95, 52, 88, 111, 49, 58, 35, 72, 16,
-			35, 90, 6, 109, 88, 37, 65, 0, 0, 23, 2, 194, 170, 39, 16, 14, 75, 37, 50, 6, 114, 83, 36, 65, 37, 50, 6, 126, 50, 111,
-			0, 102, 24, 2, 194, 170, 110, 16, 14, 72, 37, 50, 6, 35, 55, 83, 36, 65, 37, 50, 6, 126, 50, 111, 0, 101, 0, 5, 130, 195,
-			163, 43, 0, 0, 0, 16, 2, 194, 182, 48, 35, 16, 6, 35, 81, 51, 132, 83, 111, 0, 102, 16, 2, 194, 182, 48, 35, 16, 6, 35,
-			81, 34, 132, 83, 111, 0, 101, 0, 15, 68, 48, 147, 149, 96, 55, 6, 37, 50, 111, 49, 89, 0, 102, 16, 68, 48, 147, 149, 96, 55,
-			4, 37, 50, 6, 40, 49, 89, 0, 101, 0, 6, 195, 8, 88, 1, 15, 12, 67, 21, 53, 28, 36, 89, 47, 6, 35, 0, 72, 0, 6,
-			195, 4, 32, 192, 13, 12, 2, 194, 181, 65, 6, 37, 49, 51, 111, 0, 102, 12, 2, 194, 181, 65, 6, 37, 49, 34, 111, 0, 101, 0,
-			0, 0, 17, 70, 32, 21, 203, 36, 225, 192, 107, 6, 39, 12, 49, 37, 50, 81, 0, 17, 70, 72, 19, 139, 36, 225, 192, 101, 6, 132,
-			68, 49, 124, 68, 0, 102, 7, 196, 80, 84, 141, 4, 15, 9, 2, 194, 176, 81, 51, 6, 114, 0, 0, 0, 18, 2, 194, 190, 47, 51,
-			36, 138, 49, 58, 6, 35, 16, 14, 47, 111, 138, 0, 0, 19, 2, 195, 183, 75, 37, 84, 37, 75, 6, 37, 72, 111, 48, 6, 39, 34,
-			0, 102, 19, 2, 195, 183, 72, 37, 84, 37, 72, 6, 37, 72, 111, 48, 6, 39, 34, 0, 101, 0, 7, 196, 28, 244, 205, 4, 15, 15,
-			2, 194, 188, 128, 68, 49, 40, 6, 35, 16, 14, 47, 111, 0, 5, 130, 195, 180, 43, 0, 7, 195, 57, 83, 147, 72, 34, 9, 2, 194,
-			189, 65, 6, 118, 111, 0, 5, 130, 195, 181, 43, 0, 9, 198, 21, 53, 18, 60, 97, 64, 15, 10, 198, 12, 243, 147, 60, 193, 64, 16,
-			37, 24, 2, 194, 186, 39, 16, 14, 75, 37, 50, 6, 114, 65, 35, 89, 49, 40, 55, 6, 126, 50, 111, 0, 102, 25, 2, 194, 186, 110,
-			16, 14, 72, 37, 50, 6, 35, 55, 65, 35, 89, 49, 40, 55, 6, 126, 50, 111, 0, 101, 0, 6, 195, 88, 241, 193, 15, 6, 195, 65,
-			81, 5, 76, 6, 195, 36, 81, 69, 13, 0, 0, 0, 0, 10, 67, 64, 17, 197, 48, 6, 118, 75, 0, 0, 6, 194, 80, 80, 72, 32,
-			12, 3, 100, 46, 99, 72, 4, 36, 89, 6, 36, 0, 0, 7, 196, 5, 1, 68, 88, 13, 0, 15, 69, 8, 192, 90, 21, 32, 71, 55,
-			6, 118, 88, 36, 34, 0, 0, 0, 7, 196, 21, 53, 15, 84, 72, 0, 6, 195, 88, 18, 64, 76, 7, 196, 64, 244, 162, 52, 102, 0,
-			17, 69, 52, 20, 212, 21, 32, 65, 6, 35, 89, 47, 36, 16, 14, 0, 102, 16, 69, 12, 83, 148, 21, 32, 89, 6, 36, 68, 47, 36,
-			34, 0, 102, 0, 0, 19, 70, 65, 35, 196, 84, 53, 0, 48, 12, 34, 6, 132, 72, 132, 49, 47, 0, 101, 18, 69, 21, 132, 5, 73,
-			64, 109, 49, 89, 48, 6, 109, 16, 14, 47, 0, 102, 6, 194, 81, 80, 76, 32, 0, 10, 67, 12, 243, 64, 49, 39, 65, 0, 101, 9,
-			198, 81, 32, 86, 21, 52, 207, 16, 6, 195, 12, 243, 64, 72, 0, 8, 196, 24, 244, 146, 60, 15, 36, 0, 0, 0, 6, 195, 80, 83,
-			64, 72, 0, 0, 0, 24, 72, 21, 52, 5, 4, 177, 68, 37, 64, 37, 89, 48, 6, 37, 12, 49, 109, 72, 4, 37, 47, 0, 101, 6,
-			195, 64, 147, 210, 15, 0, 11, 67, 48, 240, 203, 55, 6, 110, 49, 0, 101, 0, 0, 0, 0, 8, 197, 80, 16, 133, 24, 80, 15, 8,
-			197, 28, 83, 5, 36, 16, 15, 8, 197, 12, 80, 143, 48, 16, 16, 8, 197, 8, 243, 5, 36, 16, 15, 0, 5, 194, 33, 192, 76, 0,
-			0, 7, 196, 64, 81, 18, 4, 15, 7, 196, 13, 33, 68, 20, 16, 0, 14, 69, 60, 227, 9, 56, 80, 39, 68, 55, 117, 68, 0, 102,
-			8, 197, 88, 20, 133, 80, 16, 16, 8, 197, 81, 35, 195, 32, 16, 16, 8, 197, 64, 244, 145, 84, 80, 16, 8, 197, 4, 99, 15, 72,
-			80, 15, 6, 195, 76, 245, 64, 72, 8, 197, 64, 244, 145, 84, 80, 102, 7, 195, 20, 192, 83, 76, 32, 0, 0, 8, 197, 28, 19, 5,
-			80, 240, 16, 10, 198, 65, 32, 81, 84, 83, 5, 16, 34, 0, 0, 7, 195, 80, 85, 64, 76, 34, 0, 0, 0, 9, 198, 64, 16, 200,
-			20, 51, 192, 16, 5, 194, 84, 80, 13, 0, 10, 67, 25, 83, 139, 83, 129, 68, 49, 0, 0, 10, 199, 28, 17, 129, 56, 131, 212, 60,
-			16, 14, 69, 20, 194, 88, 37, 32, 36, 55, 37, 91, 37, 34, 0, 10, 199, 21, 53, 1, 72, 83, 79, 76, 72, 7, 196, 16, 83, 1,
-			76, 76, 0, 0, 13, 68, 77, 64, 84, 84, 89, 47, 6, 35, 47, 111, 0, 0, 0, 14, 69, 53, 81, 76, 21, 32, 65, 6, 37, 55,
-			36, 34, 0, 0, 16, 69, 92, 147, 132, 61, 112, 58, 6, 37, 68, 72, 39, 58, 0, 102, 17, 69, 92, 147, 132, 61, 112, 58, 6, 37,
-			68, 72, 6, 39, 40, 0, 101, 0, 0, 19, 4, 95, 53, 88, 111, 49, 37, 68, 49, 58, 35, 90, 6, 109, 88, 37, 65, 0, 0, 8,
-			196, 28, 244, 212, 60, 15, 36, 0, 9, 197, 20, 228, 133, 16, 240, 15, 36, 0, 18, 70, 16, 84, 201, 28, 225, 82, 72, 36, 88, 6,
-			117, 50, 36, 34, 0, 102, 0, 0, 0, 9, 197, 5, 65, 82, 72, 240, 15, 36, 8, 197, 5, 65, 82, 72, 240, 16, 0, 7, 195, 12,
-			243, 79, 102, 72, 0, 0, 6, 195, 76, 240, 128, 102, 0, 0, 14, 69, 60, 97, 137, 12, 80, 6, 110, 83, 89, 112, 0, 102, 15, 69,
-			60, 97, 137, 12, 80, 6, 110, 83, 4, 37, 89, 0, 101, 8, 197, 4, 192, 207, 88, 16, 16, 8, 197, 21, 53, 1, 88, 16, 72, 0,
-			0, 7, 195, 81, 80, 64, 76, 34, 0, 7, 196, 76, 241, 210, 4, 15, 12, 68, 72, 85, 86, 4, 101, 6, 137, 84, 132, 0, 7, 196,
-			69, 81, 68, 20, 16, 7, 196, 64, 244, 146, 4, 16, 7, 196, 61, 53, 18, 4, 16, 0, 8, 197, 96, 84, 133, 80, 16, 16, 14, 69,
-			64, 17, 76, 48, 16, 48, 35, 6, 36, 61, 132, 0, 9, 197, 76, 83, 80, 72, 80, 76, 32, 23, 69, 76, 83, 80, 72, 80, 89, 6,
-			36, 68, 48, 34, 37, 49, 135, 0, 102, 81, 113, 117, 101, 32, 9, 197, 5, 21, 69, 48, 16, 76, 34, 0, 0, 9, 197, 52, 241, 5,
-			48, 240, 15, 36, 8, 197, 52, 241, 5, 48, 240, 16, 0, 0, 8, 197, 12, 129, 67, 4, 208, 15, 0, 0, 9, 197, 64, 147, 15, 80,
-			240, 16, 37, 0, 0, 0, 7, 196, 16, 244, 133, 76, 16, 11, 199, 16, 84, 197, 77, 1, 82, 60, 15, 36, 10, 199, 16, 84, 197, 77,
-			1, 82, 60, 16, 10, 199, 12, 20, 130, 85, 33, 84, 60, 16, 13, 4, 95, 226, 136, 146, 65, 6, 36, 50, 111, 89, 0, 0, 0, 0,
-			0, 7, 196, 24, 243, 79, 76, 72, 0, 15, 2, 95, 35, 49, 4, 35, 34, 75, 37, 50, 6, 114, 0, 102, 16, 2, 95, 35, 49, 4,
-			35, 34, 72, 37, 50, 6, 35, 55, 0, 101, 0, 24, 2, 95, 34, 6, 35, 71, 51, 37, 38, 6, 35, 89, 48, 132, 15, 72, 6, 40,
-			48, 55, 132, 138, 0, 11, 2, 95, 34, 6, 35, 89, 48, 132, 138, 0, 0, 14, 2, 95, 33, 91, 49, 55, 132, 65, 35, 89, 6, 130,
-			0, 0, 0, 11, 67, 61, 99, 192, 6, 39, 84, 40, 0, 101, 8, 197, 16, 81, 197, 48, 240, 16, 16, 2, 95, 39, 35, 48, 6, 110,
-			89, 47, 51, 39, 83, 111, 0, 102, 17, 2, 95, 39, 35, 48, 6, 110, 91, 47, 34, 4, 39, 83, 112, 0, 101, 0, 7, 2, 95, 38,
-			6, 36, 0, 0, 0, 9, 198, 80, 149, 162, 72, 82, 83, 72, 12, 2, 95, 36, 89, 4, 37, 83, 51, 6, 130, 0, 0, 8, 197, 72,
-			148, 207, 80, 240, 16, 8, 197, 4, 211, 210, 56, 240, 15, 7, 195, 17, 83, 64, 72, 34, 0, 15, 2, 95, 42, 132, 89, 47, 36, 16,
-			6, 37, 89, 49, 111, 0, 0, 9, 198, 16, 84, 198, 20, 50, 15, 16, 20, 2, 95, 41, 83, 4, 109, 91, 132, 48, 35, 16, 6, 118,
-			68, 47, 36, 88, 112, 0, 0, 10, 199, 4, 84, 143, 64, 244, 148, 60, 16, 20, 2, 95, 40, 4, 35, 71, 51, 37, 48, 35, 16, 6,
-			118, 68, 47, 36, 88, 112, 0, 0, 10, 2, 95, 47, 71, 6, 35, 100, 132, 0, 0, 0, 12, 4, 110, 195, 163, 111, 50, 4, 130, 0,
-			32, 9, 10, 2, 95, 45, 6, 37, 83, 118, 68, 0, 0, 13, 2, 95, 44, 84, 6, 37, 34, 81, 40, 55, 132, 0, 0, 9, 198, 76,
-			16, 143, 56, 85, 5, 16, 9, 198, 64, 19, 1, 12, 85, 5, 16, 9, 198, 12, 243, 3, 32, 85, 5, 16, 9, 198, 8, 19, 145, 84,
-			85, 5, 16, 6, 195, 80, 84, 128, 72, 14, 67, 53, 36, 192, 65, 6, 37, 34, 89, 112, 89, 0, 24, 10, 2, 95, 51, 47, 51, 6,
-			36, 138, 0, 0, 9, 2, 95, 50, 72, 6, 120, 138, 0, 0, 7, 195, 20, 193, 83, 76, 32, 9, 2, 95, 49, 6, 128, 68, 0, 102,
-			9, 2, 95, 49, 6, 40, 65, 0, 101, 0, 7, 196, 9, 33, 74, 60, 15, 11, 2, 95, 48, 88, 6, 109, 16, 111, 0, 102, 11, 2,
-			95, 48, 88, 6, 109, 16, 40, 0, 101, 0, 13, 67, 32, 243, 69, 107, 6, 39, 58, 65, 37, 0, 102, 11, 67, 32, 243, 69, 6, 39,
-			65, 112, 0, 101, 11, 67, 28, 19, 69, 81, 6, 118, 65, 112, 0, 9, 198, 48, 148, 194, 60, 85, 1, 16, 9, 198, 48, 19, 66, 72,
-			85, 1, 16, 9, 198, 12, 19, 73, 76, 85, 1, 16, 9, 197, 4, 51, 195, 32, 240, 16, 37, 11, 2, 95, 55, 89, 6, 109, 76, 112,
-			0, 102, 11, 2, 95, 55, 89, 6, 109, 47, 112, 0, 101, 0, 8, 197, 137, 32, 77, 61, 48, 72, 9, 2, 95, 54, 89, 6, 118, 138,
-			0, 0, 15, 69, 72, 243, 131, 32, 144, 34, 6, 110, 50, 99, 37, 12, 0, 11, 2, 95, 53, 89, 6, 37, 68, 49, 40, 0, 0, 9,
-			198, 65, 35, 199, 72, 19, 64, 15, 8, 196, 52, 243, 8, 60, 16, 37, 13, 2, 95, 52, 49, 58, 6, 35, 47, 51, 40, 0, 102, 13,
-			2, 95, 52, 49, 58, 6, 35, 47, 34, 40, 0, 101, 0, 21, 2, 95, 59, 48, 4, 39, 68, 47, 40, 10, 37, 84, 6, 37, 34, 81,
-			40, 55, 132, 0, 0, 9, 198, 20, 208, 143, 72, 51, 192, 15, 16, 2, 95, 58, 72, 4, 120, 89, 48, 6, 39, 68, 47, 40, 89, 0,
-			0, 11, 68, 24, 192, 83, 32, 83, 55, 109, 91, 0, 10, 2, 95, 57, 50, 6, 110, 84, 112, 0, 0, 9, 2, 95, 56, 6, 120, 47,
-			40, 0, 0, 18, 2, 95, 63, 4, 37, 68, 47, 36, 101, 4, 39, 81, 35, 89, 6, 130, 0, 0, 9, 198, 48, 144, 207, 72, 84, 192,
-			16, 10, 2, 95, 62, 65, 117, 6, 110, 34, 0, 0, 11, 2, 95, 61, 37, 81, 58, 6, 114, 0, 102, 12, 2, 95, 61, 37, 81, 58,
-			6, 35, 55, 0, 101, 0, 11, 2, 95, 60, 65, 36, 50, 6, 110, 34, 0, 0, 6, 195, 16, 86, 128, 15, 6, 195, 24, 22, 128, 76,
-			7, 196, 21, 53, 1, 72, 72, 0, 0, 18, 4, 95, 54, 88, 111, 89, 36, 49, 89, 35, 90, 6, 109, 88, 37, 65, 0, 0, 7, 196,
-			28, 84, 211, 60, 16, 0, 8, 197, 12, 21, 5, 80, 240, 16, 0, 0, 9, 198, 65, 34, 77, 61, 33, 83, 16, 9, 198, 25, 83, 7,
-			61, 33, 83, 16, 9, 198, 12, 192, 77, 61, 33, 83, 16, 0, 10, 198, 69, 80, 76, 69, 81, 82, 72, 34, 0, 9, 197, 21, 49, 207,
-			80, 240, 15, 36, 8, 197, 21, 49, 207, 80, 240, 16, 0, 0, 10, 67, 46, 178, 12, 49, 6, 37, 55, 0, 0, 0, 7, 195, 20, 192,
-			64, 76, 32, 6, 195, 36, 48, 192, 13, 0, 0, 0, 0, 6, 195, 85, 48, 128, 13, 6, 195, 56, 32, 64, 13, 0, 8, 196, 57, 83,
-			131, 4, 76, 32, 0, 11, 136, 101, 115, 116, 97, 114, 195, 163, 111, 72, 0, 0, 12, 67, 80, 147, 69, 47, 6, 117, 65, 112, 0, 101,
-			12, 67, 20, 193, 64, 6, 36, 55, 112, 0, 76, 32, 0, 16, 70, 72, 144, 200, 5, 33, 0, 101, 6, 37, 91, 132, 34, 72, 0, 10,
-			198, 5, 36, 143, 12, 131, 192, 16, 37, 0, 14, 68, 96, 84, 143, 96, 91, 6, 109, 16, 110, 49, 89, 0, 0, 0, 6, 195, 82, 51,
-			64, 72, 6, 195, 20, 49, 192, 13, 18, 2, 95, 91, 4, 35, 71, 51, 37, 49, 39, 58, 91, 6, 36, 76, 37, 0, 0, 0, 7, 195,
-			80, 244, 15, 16, 37, 0, 7, 66, 88, 144, 84, 37, 0, 0, 15, 69, 48, 20, 197, 73, 48, 55, 6, 118, 88, 36, 34, 89, 0, 16,
-			2, 95, 95, 89, 4, 40, 71, 55, 37, 67, 6, 35, 72, 40, 0, 0, 19, 2, 95, 94, 89, 4, 37, 34, 49, 128, 68, 83, 55, 6,
-			109, 49, 89, 40, 0, 0, 6, 195, 12, 240, 207, 16, 18, 2, 95, 93, 83, 4, 109, 91, 132, 49, 39, 58, 91, 6, 36, 76, 37, 0,
-			0, 16, 5, 95, 49, 77, 49, 111, 65, 37, 55, 6, 109, 88, 37, 65, 0, 21, 2, 95, 92, 71, 4, 35, 101, 132, 4, 37, 68, 84,
-			36, 34, 76, 6, 37, 72, 132, 0, 0, 8, 197, 80, 245, 5, 57, 48, 15, 8, 197, 64, 244, 131, 61, 48, 15, 9, 134, 116, 101, 114,
-			195, 163, 111, 72, 6, 195, 24, 34, 64, 13, 0, 0, 6, 2, 95, 97, 35, 0, 12, 3, 95, 97, 114, 6, 35, 16, 35, 71, 112, 0,
-			0, 11, 67, 40, 22, 154, 75, 124, 109, 89, 0, 102, 11, 2, 95, 96, 81, 51, 6, 35, 84, 37, 0, 0, 0, 9, 198, 20, 225, 207,
-			72, 67, 192, 15, 10, 199, 12, 243, 147, 81, 35, 197, 52, 15, 7, 196, 24, 22, 133, 52, 76, 0, 9, 198, 81, 33, 77, 61, 33, 83,
-			16, 10, 198, 64, 83, 136, 61, 33, 83, 16, 37, 9, 198, 32, 244, 146, 61, 33, 83, 16, 10, 198, 12, 243, 8, 21, 33, 83, 15, 37,
-			6, 2, 95, 101, 109, 0, 0, 12, 201, 72, 80, 207, 57, 53, 18, 60, 83, 64, 15, 0, 0, 10, 198, 20, 228, 143, 76, 51, 192, 16,
-			37, 9, 198, 20, 225, 143, 72, 51, 192, 15, 0, 0, 0, 6, 2, 95, 111, 110, 0, 16, 67, 76, 244, 192, 4, 109, 89, 57, 4, 110,
-			6, 109, 89, 0, 101, 0, 13, 68, 77, 65, 86, 20, 89, 47, 6, 37, 12, 84, 0, 0, 7, 132, 118, 195, 163, 111, 76, 0, 13, 3,
-			95, 104, 101, 36, 71, 16, 6, 117, 49, 111, 0, 0, 0, 0, 6, 195, 84, 229, 19, 13, 13, 4, 95, 104, 97, 99, 49, 35, 16, 6,
-			39, 68, 0, 0, 12, 68, 77, 1, 65, 44, 89, 48, 37, 12, 49, 0, 9, 198, 64, 243, 80, 20, 144, 64, 15, 9, 198, 64, 192, 84,
-			20, 144, 64, 15, 9, 198, 21, 3, 208, 20, 144, 64, 15, 9, 198, 12, 243, 13, 20, 144, 64, 15, 9, 198, 80, 241, 1, 88, 144, 64,
-			102, 0, 9, 198, 29, 35, 211, 20, 194, 1, 15, 0, 0, 9, 198, 12, 84, 133, 8, 83, 15, 16, 0, 0, 15, 2, 95, 123, 4, 35,
-			71, 51, 37, 91, 6, 35, 84, 37, 0, 0, 0, 0, 7, 196, 48, 244, 5, 76, 15, 6, 194, 84, 208, 72, 34, 0, 0, 9, 2, 95,
-			126, 76, 6, 116, 0, 102, 10, 2, 95, 126, 47, 6, 37, 55, 0, 101, 0, 15, 2, 95, 125, 83, 4, 109, 91, 132, 91, 6, 35, 84,
-			37, 0, 0, 20, 2, 95, 124, 71, 4, 35, 101, 132, 84, 4, 36, 34, 76, 37, 49, 6, 114, 0, 102, 21, 2, 95, 124, 71, 4, 35,
-			101, 132, 84, 4, 36, 34, 76, 37, 49, 6, 35, 55, 0, 101, 0, 18, 70, 24, 148, 133, 24, 246, 0, 83, 6, 35, 37, 13, 83, 110,
-			49, 89, 0, 8, 197, 80, 83, 132, 21, 48, 72, 0, 0, 9, 5, 95, 48, 97, 110, 100, 37, 0, 0, 7, 196, 52, 241, 206, 60, 15,
-			0, 0, 10, 198, 12, 243, 147, 60, 195, 192, 16, 37, 0, 9, 198, 21, 129, 71, 21, 49, 83, 15, 0, 11, 67, 16, 245, 206, 72, 6,
-			114, 68, 0, 102, 13, 67, 16, 245, 206, 72, 6, 35, 4, 58, 50, 0, 101, 0, 17, 71, 32, 82, 68, 20, 113, 197, 72, 107, 6, 117,
-			72, 36, 81, 36, 0, 0, 9, 198, 52, 244, 131, 20, 115, 192, 16, 0, 21, 72, 61, 1, 78, 60, 97, 137, 12, 80, 6, 39, 48, 118,
-			68, 6, 110, 83, 37, 89, 0, 0, 0, 11, 199, 69, 80, 73, 77, 21, 69, 72, 72, 34, 0, 7, 196, 81, 35, 208, 4, 15, 0, 0,
-			9, 198, 56, 20, 85, 20, 192, 64, 34, 9, 198, 52, 19, 143, 64, 192, 64, 15, 9, 198, 21, 53, 18, 20, 192, 64, 16, 9, 198, 8,
-			18, 84, 60, 192, 64, 16, 10, 198, 16, 20, 85, 20, 192, 64, 76, 34, 0, 12, 67, 21, 48, 192, 6, 109, 89, 49, 124, 0, 103, 11,
-			67, 21, 48, 192, 6, 109, 89, 49, 0, 102, 6, 195, 21, 64, 64, 16, 12, 200, 16, 84, 197, 53, 4, 133, 28, 240, 15, 36, 11, 200,
-			16, 84, 197, 53, 4, 133, 28, 240, 16, 0, 0, 0, 0, 17, 5, 101, 110, 103, 194, 170, 118, 50, 90, 36, 67, 6, 118, 16, 132, 0,
-			0, 0, 0, 16, 69, 44, 84, 142, 20, 192, 49, 6, 109, 34, 50, 13, 55, 0, 102, 17, 69, 44, 84, 142, 20, 192, 49, 6, 109, 34,
-			50, 4, 109, 55, 0, 101, 14, 4, 95, 35, 51, 50, 91, 48, 6, 35, 89, 111, 0, 101, 14, 4, 95, 35, 51, 50, 36, 89, 48, 6,
-			35, 89, 111, 0, 0, 6, 195, 72, 244, 197, 16, 0, 12, 68, 32, 20, 16, 100, 101, 6, 109, 48, 112, 0, 0, 0, 7, 196, 64, 84,
-			133, 76, 15, 8, 196, 12, 244, 133, 76, 15, 36, 7, 196, 12, 244, 133, 76, 16, 0, 9, 198, 28, 19, 9, 48, 82, 65, 15, 9, 198,
-			21, 84, 143, 64, 82, 65, 15, 0, 18, 70, 92, 147, 132, 61, 116, 192, 58, 6, 37, 68, 72, 39, 58, 89, 0, 102, 20, 70, 92, 147,
-			132, 61, 116, 192, 58, 6, 37, 68, 72, 6, 39, 40, 12, 88, 0, 101, 9, 198, 96, 84, 143, 96, 84, 192, 15, 9, 198, 80, 83, 79,
-			72, 84, 192, 16, 9, 198, 4, 49, 82, 80, 244, 192, 16, 0, 7, 195, 90, 116, 192, 76, 32, 7, 195, 58, 116, 192, 76, 32, 0, 7,
-			196, 24, 86, 133, 76, 15, 7, 196, 76, 243, 79, 76, 72, 0, 0, 0, 0, 0, 13, 68, 48, 241, 201, 56, 55, 39, 81, 37, 68, 0,
-			102, 17, 5, 101, 110, 103, 194, 186, 118, 50, 90, 36, 67, 6, 118, 16, 111, 0, 0, 13, 68, 54, 179, 5, 72, 65, 6, 37, 55, 36,
-			34, 0, 0, 0, 11, 199, 12, 243, 148, 72, 243, 5, 76, 15, 36, 10, 199, 12, 243, 148, 72, 243, 5, 76, 16, 0, 19, 71, 48, 21,
-			143, 37, 50, 69, 72, 55, 35, 84, 58, 35, 88, 57, 6, 36, 0, 0, 16, 69, 56, 83, 19, 60, 224, 50, 6, 109, 55, 89, 132, 68,
-			0, 101, 0, 24, 73, 61, 4, 5, 56, 129, 73, 52, 84, 128, 11, 6, 110, 48, 13, 50, 107, 4, 117, 65, 35, 34, 0, 7, 195, 21,
-			36, 143, 15, 36, 6, 195, 21, 36, 143, 16, 0, 0, 6, 195, 37, 52, 192, 13, 0, 0, 0, 0, 0, 0, 8, 197, 8, 244, 209, 84,
-			80, 15, 0, 8, 196, 5, 1, 76, 60, 16, 37, 0, 14, 67, 21, 53, 5, 6, 36, 89, 76, 112, 0, 102, 76, 34, 6, 195, 13, 5,
-			64, 13, 0, 0, 17, 70, 56, 85, 2, 60, 242, 211, 50, 109, 47, 71, 111, 49, 89, 0, 102, 0, 0, 0, 0, 0, 7, 196, 64, 84,
-			197, 76, 15, 0, 0, 9, 198, 80, 83, 143, 72, 84, 192, 16, 10, 198, 4, 193, 213, 52, 20, 192, 72, 37, 9, 198, 80, 84, 133, 52,
-			244, 192, 72, 9, 198, 76, 84, 133, 52, 244, 192, 72, 0, 14, 68, 76, 208, 82, 80, 89, 65, 6, 35, 34, 47, 0, 101, 11, 200, 88,
-			84, 130, 61, 36, 133, 36, 16, 15, 0, 7, 196, 40, 241, 207, 76, 15, 0, 9, 198, 16, 84, 212, 72, 241, 77, 15, 0, 15, 69, 64,
-			192, 89, 21, 32, 48, 55, 6, 118, 132, 44, 0, 101, 0, 17, 4, 95, 56, 88, 111, 39, 49, 47, 39, 90, 6, 109, 88, 37, 65, 0,
-			0, 0, 0, 10, 67, 52, 18, 76, 65, 6, 118, 55, 0, 17, 67, 13, 68, 140, 49, 6, 39, 68, 47, 12, 34, 4, 110, 55, 0, 101,
-			0, 0, 0, 7, 196, 20, 68, 207, 56, 15, 0, 0, 0, 0, 7, 195, 84, 208, 64, 72, 34, 0, 16, 70, 76, 131, 208, 36, 225, 192,
-			91, 6, 110, 48, 37, 68, 0, 102, 14, 68, 64, 21, 83, 20, 48, 6, 35, 40, 12, 88, 0, 101, 7, 196, 76, 84, 137, 4, 72, 0,
-			6, 195, 12, 20, 207, 102, 0, 0, 0, 11, 68, 76, 128, 75, 20, 91, 6, 118, 49, 0, 0, 17, 70, 61, 85, 4, 60, 244, 147, 114,
-			47, 72, 6, 110, 34, 89, 0, 102, 7, 195, 17, 83, 147, 72, 34, 12, 67, 8, 147, 211, 71, 6, 37, 4, 110, 91, 0, 0, 16, 70,
-			85, 1, 210, 4, 65, 64, 132, 48, 81, 51, 6, 118, 72, 0, 16, 70, 60, 97, 140, 36, 225, 64, 110, 83, 55, 6, 117, 68, 0, 102,
-			17, 70, 9, 32, 73, 48, 193, 64, 71, 51, 6, 35, 37, 55, 37, 0, 102, 18, 70, 9, 32, 73, 48, 193, 64, 71, 12, 34, 6, 35,
-			37, 55, 112, 0, 101, 7, 196, 80, 244, 146, 60, 15, 10, 198, 56, 20, 85, 20, 193, 64, 16, 34, 8, 196, 16, 240, 146, 60, 15, 36,
-			7, 196, 16, 240, 146, 60, 16, 10, 198, 16, 20, 85, 20, 193, 64, 16, 34, 0, 0, 0, 0, 7, 196, 80, 83, 136, 60, 72, 0, 10,
-			67, 8, 197, 69, 71, 55, 40, 0, 102, 7, 196, 64, 248, 15, 76, 15, 6, 195, 64, 244, 197, 16, 14, 67, 21, 53, 1, 6, 109, 89,
-			47, 132, 0, 102, 76, 34, 0, 0, 0, 12, 201, 65, 35, 211, 61, 3, 208, 20, 144, 64, 15, 0, 0, 0, 7, 195, 64, 84, 207, 15,
-			36, 0, 15, 69, 80, 16, 140, 21, 64, 47, 6, 35, 71, 55, 36, 47, 0, 0, 0, 0, 19, 70, 16, 84, 203, 80, 244, 19, 72, 36,
-			89, 49, 47, 6, 110, 48, 89, 0, 102, 0, 7, 196, 12, 244, 148, 60, 15, 0, 0, 0, 23, 73, 64, 192, 89, 77, 64, 84, 36, 243,
-			128, 48, 55, 118, 89, 47, 6, 118, 91, 129, 68, 0, 102, 15, 73, 64, 192, 89, 77, 64, 84, 36, 243, 128, 21, 0, 101, 47, 0, 0,
-			12, 200, 16, 84, 195, 60, 228, 207, 48, 240, 16, 37, 0, 0, 0, 0, 0, 7, 196, 4, 209, 66, 4, 15, 0, 17, 69, 72, 80, 68,
-			52, 80, 34, 6, 37, 12, 72, 65, 37, 12, 0, 101, 8, 197, 52, 244, 133, 36, 16, 15, 8, 197, 12, 244, 133, 36, 16, 15, 8, 197,
-			5, 3, 133, 36, 16, 15, 8, 197, 4, 212, 15, 48, 16, 16, 0, 0, 0, 10, 199, 12, 244, 212, 20, 193, 84, 4, 16, 10, 199, 12,
-			128, 80, 20, 193, 84, 4, 16, 10, 199, 12, 20, 146, 5, 1, 84, 4, 16, 10, 199, 12, 17, 5, 72, 225, 84, 4, 16, 10, 199, 4,
-			212, 21, 48, 129, 84, 4, 16, 0, 8, 197, 88, 147, 5, 80, 16, 16, 8, 197, 72, 243, 5, 80, 16, 16, 8, 197, 53, 84, 133, 80,
-			16, 16, 9, 197, 24, 193, 82, 80, 80, 16, 37, 8, 197, 21, 84, 143, 64, 16, 15, 8, 197, 9, 80, 197, 80, 16, 16, 0, 9, 196,
-			56, 244, 211, 60, 102, 76, 34, 0, 8, 197, 5, 97, 83, 76, 240, 16, 12, 3, 95, 122, 104, 91, 37, 50, 6, 36, 89, 0, 0, 0,
-			7, 195, 84, 208, 83, 72, 34, 0, 0, 7, 195, 52, 85, 64, 76, 34, 0, 0, 9, 198, 12, 245, 15, 88, 83, 15, 16, 0, 9, 198,
-			21, 53, 1, 72, 82, 64, 72, 0, 6, 195, 52, 241, 77, 15, 0, 8, 197, 52, 83, 8, 61, 32, 15, 0, 7, 195, 72, 81, 207, 16,
-			37, 0, 0, 0, 8, 197, 5, 1, 83, 5, 32, 102, 0, 17, 4, 95, 57, 88, 111, 50, 39, 50, 35, 90, 6, 109, 88, 37, 65, 0,
-			0, 0, 0, 17, 70, 8, 84, 142, 32, 20, 132, 71, 36, 34, 50, 6, 35, 34, 72, 0, 6, 195, 4, 68, 204, 13, 0, 6, 18, 66,
-			97, 109, 0, 97, 0, 7, 6, 18, 67, 101, 109, 0, 101, 0, 7, 6, 18, 68, 97, 109, 0, 97, 0, 111, 0, 7, 6, 18, 69, 117,
-			101, 109, 0, 97, 109, 0, 101, 109, 0, 117, 101, 0, 97, 0, 101, 0, 111, 0, 7, 6, 18, 70, 114, 97, 109, 0, 114, 101, 109, 0,
-			114, 100, 101, 0, 114, 109, 111, 0, 114, 97, 0, 114, 101, 0, 114, 0, 7, 6, 18, 71, 115, 115, 101, 109, 0, 114, 97, 109, 0, 115,
-			116, 101, 0, 115, 115, 101, 0, 114, 101, 109, 0, 114, 109, 111, 0, 114, 97, 0, 114, 101, 0, 114, 0, 7, 6, 18, 72, 115, 115, 101,
-			109, 0, 115, 115, 101, 0, 115, 116, 101, 0, 7, 6, 195, 160, 0, 4, 115, 5, 2, 8, 2, 32, 17, 70, 3, 4, 35, 12, 88, 0,
-			115, 8, 2, 32, 17, 65, 0, 115, 5, 2, 8, 2, 32, 3, 4, 35, 12, 89, 0, 115, 5, 1, 8, 2, 32, 17, 70, 3, 4, 35,
-			12, 90, 0, 115, 5, 1, 8, 2, 32, 3, 4, 35, 12, 91, 0, 3, 35, 0, 4, 2, 109, 3, 129, 0, 2, 110, 0, 109, 2, 25,
-			3, 129, 65, 0, 110, 104, 2, 17, 65, 3, 129, 67, 0, 110, 2, 25, 3, 129, 68, 0, 7, 6, 195, 161, 0, 4, 3, 7, 35, 0,
-			2, 105, 17, 67, 25, 0, 2, 117, 17, 67, 25, 0, 4, 108, 2, 17, 66, 3, 7, 114, 0, 117, 0, 117, 2, 115, 0, 4, 105, 3,
-			7, 117, 0, 105, 2, 115, 0, 121, 0, 108, 5, 1, 3, 7, 134, 55, 0, 7, 6, 195, 162, 0, 4, 2, 109, 3, 7, 129, 0, 2,
-			110, 0, 109, 2, 25, 3, 7, 129, 65, 0, 110, 104, 3, 7, 129, 67, 0, 110, 2, 25, 3, 7, 129, 68, 0, 3, 7, 132, 0, 7,
-			6, 195, 163, 0, 3, 129, 0, 111, 3, 130, 0, 7, 6, 195, 169, 0, 4, 3, 7, 109, 0, 2, 105, 17, 67, 25, 0, 2, 117, 17,
-			67, 25, 0, 121, 3, 7, 118, 0, 4, 109, 2, 32, 3, 7, 118, 68, 0, 109, 2, 115, 32, 0, 110, 2, 32, 0, 110, 2, 115, 32,
-			0, 4, 105, 3, 7, 119, 0, 105, 2, 115, 0, 4, 108, 2, 17, 66, 3, 7, 137, 0, 117, 0, 117, 2, 115, 0, 7, 6, 195, 170,
-			0, 3, 7, 36, 0, 110, 104, 3, 7, 36, 67, 0, 117, 3, 7, 115, 0, 109, 2, 17, 67, 3, 7, 118, 65, 0, 4, 109, 2, 32,
-			3, 7, 118, 68, 0, 110, 2, 25, 0, 7, 6, 195, 173, 0, 4, 3, 7, 37, 0, 2, 109, 0, 2, 110, 0, 109, 2, 17, 67, 3,
-			7, 37, 65, 0, 110, 104, 3, 7, 37, 67, 0, 4, 109, 2, 32, 3, 7, 37, 68, 0, 110, 2, 25, 0, 108, 2, 17, 66, 3, 7,
-			124, 111, 0, 7, 6, 195, 177, 0, 8, 2, 32, 3, 6, 36, 50, 57, 109, 0, 5, 1, 8, 2, 32, 3, 36, 50, 36, 47, 37, 55,
-			0, 3, 67, 0, 7, 6, 195, 179, 0, 4, 3, 7, 110, 0, 2, 105, 17, 67, 25, 0, 117, 3, 7, 110, 58, 0, 4, 105, 3, 7,
-			136, 0, 105, 2, 115, 0, 121, 0, 7, 6, 195, 180, 0, 3, 7, 39, 0, 109, 2, 17, 67, 3, 7, 39, 65, 0, 110, 104, 3, 7,
-			39, 67, 0, 4, 109, 2, 32, 3, 7, 39, 68, 0, 110, 2, 25, 0, 7, 6, 195, 181, 0, 3, 127, 0, 101, 3, 127, 57, 0, 7,
-			6, 195, 186, 0, 3, 7, 40, 0, 4, 109, 2, 17, 65, 3, 7, 128, 65, 0, 109, 2, 17, 67, 0, 110, 104, 3, 7, 128, 67, 0,
-			4, 109, 2, 32, 3, 7, 128, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 25, 0, 7, 6, 97, 0, 5, 1, 2, 108, 25, 3,
-			4, 134, 0, 8, 2, 32, 31, 3, 6, 35, 0, 99, 195, 167, 5, 1, 1, 17, 67, 3, 6, 35, 6, 89, 0, 116, 105, 111, 110, 2,
-			32, 3, 6, 118, 91, 129, 68, 0, 5, 1, 2, 108, 32, 3, 6, 134, 0, 5, 1, 1, 112, 2, 100, 32, 3, 8, 109, 0, 109, 2,
-			32, 3, 8, 129, 68, 0, 109, 2, 32, 3, 8, 130, 0, 4, 1, 10, 2, 32, 3, 8, 132, 0, 1, 10, 2, 115, 32, 0, 5, 1,
-			2, 32, 0, 5, 1, 2, 115, 32, 0, 4, 1, 10, 2, 32, 195, 160, 3, 8, 133, 0, 5, 1, 2, 32, 97, 0, 5, 1, 2, 32,
-			195, 160, 0, 4, 3, 35, 0, 2, 105, 17, 67, 25, 0, 2, 105, 117, 32, 0, 2, 108, 104, 12, 0, 2, 108, 108, 12, 0, 8, 2,
-			32, 0, 4, 108, 5, 2, 2, 25, 3, 114, 0, 111, 2, 32, 0, 117, 0, 117, 2, 17, 67, 25, 0, 117, 2, 115, 0, 4, 105, 3,
-			117, 0, 105, 2, 115, 0, 121, 0, 4, 2, 109, 3, 129, 0, 2, 110, 0, 2, 195, 177, 0, 109, 2, 17, 67, 3, 129, 65, 0, 110,
-			104, 2, 17, 65, 3, 129, 67, 0, 4, 109, 5, 4, 2, 17, 67, 3, 129, 68, 0, 110, 2, 25, 12, 0, 4, 1, 17, 66, 162, 195,
-			2, 17, 67, 21, 3, 132, 0, 1, 17, 66, 180, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 66, 162, 195, 2, 17, 67, 21, 0, 1,
-			17, 67, 17, 66, 180, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 161, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 169, 195,
-			2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 170, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 173, 195, 2, 17, 67, 21, 0, 1,
-			17, 67, 17, 67, 179, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 186, 195, 2, 17, 67, 21, 0, 1, 17, 67, 161, 195, 2, 17,
-			67, 21, 0, 1, 17, 67, 169, 195, 2, 17, 67, 21, 0, 1, 17, 67, 170, 195, 2, 17, 67, 21, 0, 1, 17, 67, 173, 195, 2, 17,
-			67, 21, 0, 1, 17, 67, 179, 195, 2, 17, 67, 21, 0, 1, 17, 67, 186, 195, 2, 17, 67, 21, 0, 1, 108, 32, 17, 65, 2, 32,
-			0, 1, 173, 195, 2, 17, 67, 17, 65, 32, 0, 2, 109, 17, 65, 21, 0, 2, 109, 17, 65, 114, 32, 0, 2, 110, 17, 65, 21, 0,
-			2, 110, 17, 65, 114, 32, 0, 8, 114, 102, 110, 105, 2, 115, 115, 111, 0, 8, 114, 102, 110, 105, 2, 118, 101, 114, 109, 101, 108, 104,
-			111, 0, 8, 114, 116, 108, 117, 2, 108, 101, 118, 101, 32, 0, 8, 114, 116, 108, 117, 2, 115, 115, 111, 0, 8, 114, 116, 108, 117, 2,
-			118, 105, 111, 108, 101, 116, 97, 32, 0, 7, 6, 98, 0, 2, 98, 3, 0, 4, 3, 71, 0, 5, 3, 2, 115, 0, 5, 3, 2, 32,
-			17, 67, 3, 71, 10, 0, 8, 2, 32, 3, 71, 36, 0, 5, 3, 2, 17, 66, 3, 71, 124, 0, 7, 6, 99, 0, 5, 1, 2, 99,
-			3, 0, 116, 5, 1, 1, 17, 65, 3, 47, 0, 4, 3, 49, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0, 107, 0, 5, 3, 2,
-			32, 17, 67, 3, 49, 10, 0, 116, 5, 1, 1, 97, 116, 110, 111, 99, 2, 17, 65, 3, 49, 47, 0, 104, 114, 3, 49, 51, 0, 5,
-			3, 2, 17, 66, 3, 49, 124, 0, 4, 2, 17, 71, 3, 89, 0, 195, 167, 5, 1, 1, 17, 65, 0, 8, 2, 32, 3, 89, 36, 0,
-			104, 3, 91, 0, 7, 6, 100, 0, 2, 100, 3, 0, 3, 72, 0, 5, 3, 2, 32, 17, 67, 3, 72, 10, 0, 8, 2, 32, 3, 72,
-			36, 0, 4, 5, 2, 2, 101, 32, 3, 75, 0, 5, 2, 2, 105, 0, 5, 2, 2, 195, 173, 0, 101, 5, 2, 1, 17, 65, 2, 111,
-			32, 3, 75, 57, 0, 5, 3, 2, 17, 66, 3, 75, 124, 0, 7, 6, 101, 0, 4, 5, 1, 1, 100, 2, 110, 17, 67, 17, 65, 17,
+		static unsigned char espeakdata_dicts52_data[18253] = {
+			0, 4, 0, 0, 160, 47, 0, 0, 22, 69, 16, 84, 15, 37, 48, 72, 36, 48, 6, 136, 89, 49, 135, 0, 102, 81, 113, 117, 101, 32,
+			0, 9, 198, 52, 20, 148, 20, 195, 192, 20, 0, 0, 0, 0, 9, 198, 77, 81, 197, 72, 83, 64, 20, 8, 197, 12, 244, 150, 61, 48,
+			20, 9, 198, 12, 130, 78, 20, 195, 192, 20, 10, 135, 3, 1, 2, 5, 195, 167, 1, 21, 18, 70, 28, 245, 133, 72, 227, 192, 81, 39,
+			84, 6, 36, 34, 50, 111, 0, 37, 6, 65, 4, 35, 0, 14, 9, 198, 12, 243, 148, 84, 67, 192, 102, 8, 65, 4, 132, 0, 101, 76,
+			34, 5, 193, 4, 76, 34, 0, 0, 18, 70, 32, 20, 132, 92, 20, 133, 107, 6, 35, 34, 72, 58, 36, 14, 0, 102, 19, 70, 32, 20,
+			132, 92, 20, 133, 6, 35, 34, 72, 4, 58, 6, 109, 44, 0, 101, 0, 12, 68, 37, 48, 65, 12, 37, 88, 6, 132, 49, 0, 7, 196,
+			52, 147, 136, 4, 76, 0, 0, 17, 70, 8, 16, 203, 85, 4, 192, 71, 109, 49, 6, 132, 48, 89, 0, 102, 0, 9, 67, 53, 82, 64,
+			65, 58, 37, 0, 6, 195, 21, 80, 64, 17, 16, 67, 21, 64, 192, 4, 36, 123, 6, 109, 47, 36, 16, 132, 0, 102, 16, 67, 21, 64,
+			192, 4, 36, 123, 6, 109, 47, 12, 16, 132, 0, 101, 0, 0, 0, 0, 6, 195, 69, 81, 64, 72, 13, 4, 95, 8, 1, 3, 49, 35,
+			16, 6, 39, 68, 0, 0, 11, 68, 28, 21, 83, 76, 81, 6, 114, 89, 0, 6, 195, 32, 242, 133, 21, 0, 0, 0, 10, 199, 21, 53,
+			1, 72, 83, 79, 76, 72, 0, 0, 8, 197, 52, 243, 133, 72, 16, 20, 6, 65, 20, 109, 0, 14, 7, 65, 20, 37, 0, 102, 72, 7,
+			65, 20, 37, 0, 101, 72, 0, 9, 198, 16, 80, 129, 37, 131, 192, 102, 0, 16, 4, 95, 48, 67, 15, 89, 118, 68, 47, 6, 109, 88,
+			37, 65, 0, 0, 0, 0, 0, 0, 7, 196, 56, 81, 210, 60, 21, 7, 196, 40, 241, 213, 20, 20, 0, 8, 197, 64, 84, 209, 84, 80,
+			20, 0, 0, 16, 4, 95, 51, 88, 15, 47, 51, 37, 90, 6, 109, 88, 37, 65, 0, 0, 0, 0, 10, 198, 21, 128, 71, 21, 35, 192,
+			20, 36, 0, 0, 0, 0, 14, 1, 37, 48, 39, 34, 89, 6, 118, 68, 47, 111, 0, 27, 0, 8, 1, 38, 10, 6, 36, 10, 0, 0,
+			0, 14, 73, 64, 192, 89, 77, 64, 84, 36, 243, 128, 21, 0, 10, 0, 0, 7, 195, 64, 244, 128, 102, 72, 6, 195, 64, 244, 128, 72,
+			15, 1, 42, 132, 89, 47, 36, 16, 6, 37, 89, 49, 111, 0, 27, 0, 15, 68, 52, 81, 9, 4, 65, 6, 109, 72, 4, 37, 132, 0,
+			101, 8, 1, 43, 65, 117, 138, 0, 27, 0, 17, 69, 92, 17, 206, 21, 32, 84, 6, 35, 81, 124, 50, 36, 34, 0, 103, 15, 69, 92,
+			17, 206, 21, 32, 84, 6, 35, 81, 50, 36, 34, 0, 0, 0, 11, 1, 46, 48, 6, 39, 68, 47, 111, 0, 27, 0, 0, 0, 0, 0,
+			0, 8, 197, 28, 19, 5, 72, 16, 20, 13, 138, 5, 19, 20, 195, 161, 22, 1, 13, 15, 19, 72, 0, 9, 198, 77, 84, 15, 73, 67,
+			192, 20, 10, 135, 195, 169, 18, 1, 13, 15, 19, 72, 0, 0, 11, 67, 52, 83, 149, 65, 36, 50, 40, 0, 101, 0, 11, 69, 24, 81,
+			15, 72, 16, 21, 0, 101, 10, 8, 197, 76, 84, 137, 4, 208, 72, 9, 5, 95, 48, 1, 14, 4, 37, 0, 0, 0, 0, 0, 6, 65,
+			60, 110, 0, 14, 5, 193, 60, 76, 34, 0, 14, 1, 61, 10, 10, 37, 81, 58, 6, 132, 55, 10, 0, 27, 0, 0, 0, 6, 195, 69,
+			81, 82, 102, 10, 1, 64, 132, 101, 6, 39, 71, 132, 0, 0, 17, 70, 32, 19, 9, 76, 243, 128, 132, 55, 6, 37, 89, 132, 68, 0,
+			101, 0, 0, 6, 195, 16, 240, 197, 21, 0, 0, 0, 11, 67, 16, 240, 192, 72, 6, 110, 49, 0, 101, 0, 7, 196, 69, 81, 68, 4,
+			20, 0, 15, 69, 16, 80, 137, 4, 224, 72, 6, 109, 71, 57, 129, 68, 0, 0, 9, 198, 4, 193, 133, 72, 84, 192, 20, 0, 0, 0,
+			14, 69, 65, 149, 8, 60, 224, 48, 6, 117, 87, 129, 68, 0, 0, 14, 68, 77, 0, 67, 20, 89, 48, 6, 118, 89, 112, 0, 101, 0,
+			0, 6, 195, 80, 241, 193, 20, 0, 0, 11, 67, 48, 240, 203, 55, 6, 110, 49, 0, 101, 9, 198, 21, 53, 18, 60, 97, 64, 20, 0,
+			0, 24, 72, 21, 52, 5, 4, 177, 68, 37, 64, 37, 89, 48, 6, 37, 12, 49, 109, 72, 4, 37, 47, 0, 101, 7, 196, 13, 33, 68,
+			20, 21, 0, 16, 69, 92, 147, 132, 61, 112, 58, 6, 37, 68, 72, 39, 58, 0, 102, 17, 69, 92, 147, 132, 61, 112, 58, 6, 37, 68,
+			72, 6, 39, 40, 0, 101, 8, 197, 28, 83, 5, 36, 16, 20, 8, 197, 13, 33, 83, 12, 80, 20, 8, 197, 8, 243, 5, 36, 16, 20,
+			0, 8, 66, 85, 0, 132, 48, 0, 101, 0, 16, 4, 95, 49, 67, 15, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 21, 72, 61,
+			1, 78, 60, 97, 137, 12, 80, 6, 39, 48, 118, 68, 6, 110, 83, 37, 89, 0, 0, 6, 65, 88, 84, 36, 0, 0, 6, 194, 5, 48,
+			76, 34, 0, 0, 8, 196, 52, 243, 8, 60, 21, 37, 17, 4, 95, 49, 77, 52, 6, 128, 50, 47, 34, 37, 55, 57, 6, 130, 0, 0,
+			15, 69, 72, 243, 131, 32, 144, 34, 6, 110, 50, 99, 37, 12, 0, 8, 197, 52, 147, 136, 5, 48, 76, 0, 0, 0, 11, 200, 52, 19,
+			148, 37, 97, 82, 21, 48, 20, 0, 12, 4, 95, 49, 77, 49, 65, 6, 116, 10, 0, 102, 13, 4, 95, 49, 77, 49, 65, 6, 37, 55,
+			10, 0, 101, 7, 65, 96, 91, 37, 138, 0, 0, 6, 195, 84, 229, 19, 17, 15, 4, 95, 49, 77, 50, 6, 128, 65, 37, 55, 57, 6,
+			130, 0, 0, 16, 4, 95, 49, 77, 51, 6, 128, 65, 71, 37, 55, 57, 6, 130, 0, 0, 12, 68, 77, 1, 65, 44, 89, 48, 37, 12,
+			49, 0, 7, 196, 64, 83, 15, 76, 72, 0, 13, 67, 16, 245, 206, 72, 6, 35, 4, 58, 50, 0, 101, 0, 0, 11, 67, 100, 84, 192,
+			57, 6, 109, 89, 0, 101, 6, 195, 16, 244, 192, 72, 6, 195, 48, 244, 192, 72, 0, 12, 137, 20, 9, 22, 195, 169, 18, 5, 9, 19,
+			72, 0, 0, 0, 10, 199, 64, 241, 5, 72, 83, 79, 76, 76, 0, 0, 0, 9, 198, 4, 193, 213, 52, 20, 192, 72, 6, 195, 12, 20,
+			207, 102, 0, 0, 6, 195, 64, 244, 197, 21, 7, 196, 80, 83, 136, 60, 72, 0, 0, 9, 198, 56, 20, 85, 20, 193, 64, 21, 18, 70,
+			16, 20, 85, 20, 193, 64, 72, 132, 49, 6, 36, 55, 112, 0, 76, 34, 5, 194, 4, 80, 17, 0, 0, 0, 0, 12, 67, 48, 241, 207,
+			55, 6, 110, 81, 111, 0, 102, 19, 67, 48, 241, 207, 55, 6, 110, 81, 40, 49, 135, 0, 102, 81, 113, 117, 101, 32, 0, 0, 0, 0,
+			0, 0, 15, 68, 21, 128, 197, 48, 4, 109, 49, 89, 6, 109, 55, 0, 101, 14, 68, 25, 32, 77, 20, 83, 51, 6, 118, 65, 37, 0,
+			102, 14, 68, 25, 32, 77, 20, 83, 34, 6, 118, 65, 112, 0, 101, 0, 9, 198, 64, 244, 148, 4, 229, 15, 102, 0, 0, 14, 67, 84,
+			226, 88, 57, 6, 40, 50, 37, 49, 89, 0, 102, 15, 67, 84, 226, 88, 4, 40, 12, 50, 6, 37, 49, 89, 0, 101, 0, 7, 196, 76,
+			240, 133, 52, 20, 0, 16, 69, 64, 147, 210, 21, 48, 48, 37, 6, 110, 16, 37, 89, 0, 102, 0, 10, 198, 20, 212, 18, 20, 115, 192,
+			21, 37, 9, 198, 12, 128, 77, 20, 115, 192, 21, 0, 0, 0, 0, 0, 7, 195, 77, 32, 64, 102, 24, 18, 67, 77, 32, 64, 4, 109,
+			95, 6, 109, 34, 34, 57, 6, 35, 0, 101, 24, 0, 7, 196, 64, 241, 5, 72, 76, 7, 196, 80, 147, 136, 4, 72, 0, 0, 19, 70,
+			21, 132, 18, 21, 52, 192, 4, 109, 49, 89, 48, 34, 6, 109, 89, 0, 101, 9, 198, 16, 84, 195, 61, 96, 64, 21, 0, 9, 198, 20,
+			229, 77, 21, 33, 77, 20, 0, 6, 195, 72, 81, 5, 21, 0, 0, 0, 9, 198, 21, 66, 81, 84, 85, 1, 21, 0, 11, 4, 95, 49,
+			67, 48, 89, 6, 118, 68, 0, 0, 10, 198, 72, 81, 146, 21, 48, 207, 20, 36, 0, 6, 194, 16, 16, 72, 34, 0, 0, 0, 8, 197,
+			21, 53, 9, 88, 80, 72, 0, 7, 195, 104, 83, 15, 20, 36, 0, 11, 67, 16, 21, 0, 72, 6, 35, 47, 0, 101, 9, 198, 81, 32,
+			81, 84, 82, 65, 20, 18, 4, 95, 50, 67, 15, 72, 40, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 7, 196, 104, 244, 146, 4,
+			21, 0, 0, 0, 0, 7, 196, 64, 241, 5, 52, 76, 0, 0, 19, 70, 36, 229, 18, 4, 225, 84, 37, 68, 47, 51, 35, 50, 6, 109,
+			47, 0, 102, 0, 0, 11, 67, 56, 83, 5, 50, 36, 55, 112, 0, 77, 0, 8, 197, 21, 53, 1, 37, 48, 72, 0, 9, 198, 72, 83,
+			79, 73, 51, 192, 20, 0, 0, 13, 68, 100, 18, 15, 60, 37, 35, 107, 6, 40, 0, 102, 15, 68, 100, 18, 15, 60, 6, 37, 4, 35,
+			107, 6, 40, 0, 101, 7, 196, 5, 1, 71, 60, 21, 0, 0, 10, 198, 76, 83, 136, 61, 32, 64, 101, 21, 9, 198, 12, 19, 148, 61,
+			32, 64, 21, 6, 195, 8, 83, 15, 20, 0, 13, 67, 56, 86, 20, 50, 6, 109, 49, 89, 47, 0, 101, 0, 7, 196, 24, 80, 146, 20,
+			20, 0, 12, 201, 21, 52, 9, 72, 244, 85, 21, 64, 64, 21, 0, 9, 198, 76, 147, 131, 21, 32, 64, 20, 5, 194, 17, 32, 24, 0,
+			0, 13, 68, 56, 84, 211, 20, 50, 6, 36, 89, 112, 0, 76, 0, 15, 69, 32, 149, 12, 21, 32, 107, 6, 37, 47, 55, 36, 34, 0,
+			16, 69, 72, 80, 68, 21, 32, 34, 6, 37, 72, 4, 132, 44, 0, 101, 0, 0, 0, 0, 0, 0, 0, 7, 196, 29, 33, 71, 60, 21,
+			16, 68, 56, 84, 212, 20, 50, 6, 36, 89, 76, 37, 0, 102, 76, 34, 0, 0, 6, 195, 52, 241, 15, 20, 0, 10, 199, 64, 17, 5,
+			12, 84, 212, 20, 21, 0, 0, 16, 69, 36, 229, 133, 40, 16, 37, 68, 84, 6, 109, 90, 132, 0, 102, 0, 0, 0, 6, 131, 8, 195,
+			161, 76, 20, 68, 76, 19, 22, 60, 89, 6, 35, 55, 84, 40, 89, 135, 0, 102, 81, 115, 101, 32, 14, 68, 56, 244, 211, 4, 50, 6,
+			110, 89, 132, 0, 102, 76, 0, 0, 0, 0, 10, 135, 5, 24, 16, 5, 195, 167, 1, 21, 0, 0, 0, 0, 14, 68, 52, 83, 143, 72,
+			65, 36, 50, 6, 110, 34, 0, 102, 14, 68, 52, 83, 143, 72, 65, 112, 50, 6, 110, 44, 0, 101, 0, 0, 0, 9, 198, 12, 16, 200,
+			61, 36, 129, 21, 0, 7, 196, 12, 241, 146, 20, 20, 0, 0, 19, 70, 16, 245, 206, 48, 240, 68, 72, 35, 128, 68, 55, 6, 39, 58,
+			72, 0, 103, 18, 70, 16, 245, 206, 48, 240, 68, 72, 114, 68, 55, 6, 39, 58, 72, 0, 102, 21, 70, 16, 245, 206, 48, 240, 68, 72,
+			6, 35, 4, 58, 50, 55, 6, 39, 40, 72, 0, 101, 0, 0, 15, 68, 48, 147, 149, 96, 55, 6, 37, 50, 111, 49, 89, 0, 102, 16,
+			68, 48, 147, 149, 96, 55, 4, 37, 50, 6, 40, 49, 89, 0, 101, 0, 0, 15, 70, 8, 16, 130, 4, 113, 64, 71, 6, 35, 71, 37,
+			75, 0, 10, 135, 5, 24, 16, 5, 195, 167, 15, 21, 0, 0, 7, 196, 5, 1, 68, 88, 17, 0, 0, 5, 194, 16, 80, 72, 0, 0,
+			0, 0, 0, 9, 198, 60, 66, 83, 76, 82, 65, 20, 19, 4, 95, 51, 67, 15, 47, 51, 37, 89, 118, 68, 47, 6, 109, 88, 37, 65,
+			0, 0, 17, 70, 32, 245, 13, 4, 147, 0, 107, 39, 47, 65, 6, 118, 55, 0, 102, 18, 70, 32, 245, 13, 4, 147, 0, 107, 6, 110,
+			47, 65, 6, 118, 55, 0, 101, 16, 4, 95, 4, 16, 20, 10, 84, 6, 37, 34, 81, 40, 55, 132, 0, 0, 0, 0, 0, 7, 196, 24,
+			243, 7, 4, 20, 0, 0, 9, 198, 21, 48, 210, 61, 67, 192, 21, 0, 0, 12, 67, 80, 147, 69, 47, 6, 117, 65, 112, 0, 101, 11,
+			200, 21, 53, 9, 88, 84, 132, 21, 48, 20, 7, 196, 17, 35, 199, 4, 20, 0, 8, 197, 64, 244, 131, 61, 48, 20, 0, 0, 0, 9,
+			3, 95, 35, 57, 47, 35, 71, 0, 11, 4, 95, 20, 12, 4, 47, 37, 55, 0, 101, 10, 4, 95, 20, 12, 4, 76, 6, 116, 0, 0,
+			0, 6, 195, 20, 68, 0, 17, 0, 19, 71, 48, 21, 143, 37, 50, 69, 72, 55, 35, 84, 58, 35, 88, 57, 6, 36, 0, 11, 67, 4,
+			197, 0, 6, 35, 55, 47, 0, 101, 10, 199, 12, 20, 129, 13, 65, 82, 20, 20, 10, 199, 12, 17, 5, 72, 225, 84, 4, 21, 7, 195,
+			84, 228, 192, 72, 34, 0, 0, 0, 25, 12, 19, 3, 8, 18, 195, 182, 4, 9, 14, 7, 5, 18, 91, 34, 6, 36, 72, 37, 50, 81,
+			36, 34, 0, 9, 198, 21, 52, 5, 72, 208, 64, 20, 0, 0, 0, 15, 69, 64, 192, 89, 21, 32, 48, 55, 6, 118, 132, 44, 0, 101,
+			0, 0, 11, 136, 1, 4, 5, 18, 5, 195, 167, 15, 21, 0, 14, 68, 64, 21, 83, 20, 48, 6, 35, 40, 12, 88, 0, 101, 13, 137,
+			18, 5, 3, 15, 13, 5, 195, 167, 15, 21, 37, 8, 196, 16, 240, 146, 60, 21, 37, 0, 0, 0, 0, 8, 196, 56, 244, 211, 60, 102,
+			76, 0, 8, 197, 64, 83, 5, 28, 240, 21, 8, 197, 52, 19, 5, 80, 16, 21, 0, 9, 198, 21, 53, 1, 72, 82, 64, 72, 0, 9,
+			198, 12, 81, 129, 48, 82, 65, 20, 0, 11, 68, 48, 245, 73, 76, 21, 102, 114, 0, 10, 0, 8, 197, 76, 244, 18, 20, 208, 20, 9,
+			197, 21, 52, 5, 80, 240, 21, 37, 8, 197, 80, 147, 136, 4, 208, 72, 0, 17, 7, 1, 12, 13, 15, 195, 167, 15, 114, 65, 6, 110,
+			89, 111, 0, 36, 6, 194, 21, 80, 76, 32, 0, 0, 0, 9, 134, 16, 18, 5, 195, 167, 15, 21, 8, 197, 4, 193, 213, 57, 48, 72,
+			0, 10, 135, 1, 16, 18, 5, 195, 167, 15, 21, 9, 198, 80, 149, 133, 72, 19, 64, 72, 9, 198, 80, 149, 133, 72, 19, 64, 72, 0,
+			0, 12, 68, 25, 33, 85, 16, 83, 34, 6, 136, 72, 0, 18, 70, 20, 147, 147, 80, 82, 78, 11, 6, 117, 50, 91, 47, 4, 117, 50,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 80, 16, 128, 47, 6, 35, 71, 0, 101, 6, 195, 5, 96, 192, 17, 0, 7, 196, 52,
+			244, 132, 4, 21, 7, 196, 48, 84, 132, 4, 20, 7, 196, 28, 244, 132, 4, 21, 7, 196, 57, 83, 65, 76, 72, 0, 16, 69, 76, 52,
+			143, 48, 192, 89, 49, 12, 34, 6, 39, 55, 0, 101, 0, 0, 9, 67, 61, 33, 192, 110, 34, 81, 0, 0, 0, 0, 0, 10, 199, 21,
+			52, 85, 20, 193, 84, 60, 21, 0, 13, 68, 52, 245, 83, 20, 65, 6, 114, 88, 37, 0, 102, 0, 0, 5, 194, 4, 240, 72, 0, 6,
+			195, 25, 82, 64, 72, 6, 195, 61, 50, 64, 17, 0, 7, 196, 64, 244, 211, 60, 76, 0, 15, 69, 21, 52, 5, 4, 176, 37, 89, 48,
+			6, 37, 12, 49, 0, 8, 197, 20, 208, 143, 72, 16, 102, 22, 4, 95, 52, 67, 15, 49, 58, 35, 72, 16, 37, 90, 118, 68, 47, 6,
+			109, 88, 37, 65, 0, 0, 17, 70, 48, 82, 66, 56, 150, 128, 55, 6, 117, 71, 50, 37, 12, 123, 0, 0, 0, 0, 9, 198, 9, 35,
+			205, 20, 194, 1, 20, 8, 197, 80, 149, 133, 72, 16, 72, 0, 19, 70, 72, 146, 142, 16, 17, 76, 101, 6, 35, 37, 50, 38, 72, 6,
+			35, 55, 0, 6, 195, 57, 83, 65, 72, 16, 5, 95, 48, 77, 49, 15, 65, 37, 55, 6, 109, 88, 37, 65, 0, 0, 6, 195, 57, 83,
+			64, 72, 0, 7, 196, 25, 33, 86, 60, 21, 12, 67, 60, 194, 15, 6, 39, 61, 111, 0, 104, 37, 13, 67, 60, 194, 15, 6, 39, 55,
+			57, 111, 0, 102, 37, 0, 19, 4, 95, 55, 88, 15, 89, 36, 48, 47, 58, 35, 90, 6, 109, 88, 37, 65, 0, 0, 12, 67, 48, 147,
+			133, 55, 6, 35, 37, 50, 0, 101, 9, 198, 64, 84, 209, 84, 83, 64, 20, 18, 70, 72, 85, 15, 72, 227, 192, 101, 36, 47, 6, 110,
+			34, 50, 111, 0, 36, 0, 0, 6, 195, 17, 3, 195, 17, 0, 0, 17, 70, 77, 65, 80, 32, 83, 128, 89, 47, 6, 37, 12, 84, 13,
+			50, 0, 13, 66, 16, 160, 72, 4, 37, 12, 75, 6, 118, 0, 101, 6, 195, 24, 84, 129, 20, 19, 67, 64, 20, 129, 48, 4, 35, 16,
+			132, 49, 135, 0, 102, 81, 113, 117, 101, 32, 6, 195, 64, 20, 129, 72, 0, 0, 0, 16, 70, 88, 243, 20, 4, 148, 133, 84, 110, 55,
+			47, 6, 109, 34, 0, 16, 69, 85, 3, 15, 4, 64, 132, 48, 55, 6, 39, 40, 72, 0, 101, 18, 70, 76, 241, 148, 92, 20, 133, 89,
+			6, 110, 83, 47, 58, 36, 14, 0, 102, 20, 70, 76, 241, 148, 92, 20, 133, 89, 6, 110, 83, 47, 4, 58, 6, 109, 44, 0, 101, 17,
+			69, 12, 19, 131, 20, 192, 49, 6, 132, 50, 89, 6, 109, 55, 0, 101, 9, 198, 4, 194, 67, 21, 32, 197, 20, 0, 17, 70, 8, 84,
+			142, 32, 20, 132, 71, 36, 34, 50, 6, 35, 34, 72, 0, 6, 195, 24, 84, 133, 20, 0, 0, 7, 196, 17, 83, 65, 76, 72, 0, 0,
+			18, 70, 21, 53, 9, 88, 84, 128, 36, 89, 76, 37, 84, 6, 109, 34, 0, 72, 0, 0, 0, 0, 12, 67, 48, 149, 133, 55, 6, 35,
+			37, 84, 0, 101, 6, 195, 80, 149, 133, 72, 0, 6, 195, 32, 149, 128, 17, 0, 12, 67, 56, 84, 143, 50, 6, 109, 34, 40, 0, 101,
+			7, 196, 80, 84, 133, 36, 72, 7, 196, 76, 84, 133, 36, 72, 0, 11, 136, 6, 195, 180, 13, 1, 13, 15, 19, 72, 0, 0, 0, 15,
+			68, 64, 83, 1, 76, 48, 6, 36, 55, 132, 89, 0, 102, 72, 7, 196, 16, 83, 5, 76, 76, 0, 9, 198, 29, 35, 211, 20, 194, 1,
+			20, 9, 197, 4, 49, 82, 80, 240, 21, 37, 0, 0, 0, 8, 196, 81, 35, 195, 60, 21, 37, 0, 9, 197, 4, 35, 210, 80, 240, 20,
+			36, 0, 0, 0, 0, 8, 197, 64, 244, 148, 61, 48, 20, 0, 0, 20, 70, 77, 3, 210, 80, 147, 135, 89, 48, 6, 110, 34, 47, 4,
+			37, 50, 81, 0, 101, 0, 7, 196, 24, 244, 131, 4, 21, 8, 196, 12, 84, 131, 4, 20, 36, 12, 137, 1, 14, 15, 9, 20, 5, 195,
+			167, 1, 21, 0, 11, 136, 20, 195, 173, 14, 8, 5, 9, 19, 72, 0, 9, 198, 76, 147, 131, 21, 35, 192, 20, 10, 135, 5, 19, 20,
+			1, 18, 195, 161, 72, 0, 0, 14, 68, 20, 197, 15, 56, 6, 109, 55, 47, 132, 68, 0, 101, 10, 135, 6, 195, 180, 18, 5, 9, 19,
+			72, 0, 0, 17, 70, 52, 18, 79, 72, 84, 192, 65, 117, 6, 110, 16, 37, 89, 0, 102, 9, 198, 5, 68, 143, 104, 84, 192, 20, 0,
+			0, 27, 11, 20, 5, 12, 5, 13, 195, 179, 22, 5, 9, 19, 47, 4, 109, 55, 4, 109, 65, 6, 110, 84, 118, 138, 0, 101, 8, 196,
+			5, 3, 201, 60, 20, 36, 13, 3, 95, 49, 15, 48, 51, 37, 65, 6, 118, 16, 0, 0, 0, 6, 195, 57, 97, 1, 17, 0, 10, 199,
+			21, 53, 9, 88, 84, 133, 76, 20, 10, 3, 226, 130, 172, 6, 115, 16, 111, 0, 0, 6, 195, 8, 80, 207, 21, 6, 195, 57, 83, 147,
+			72, 0, 0, 10, 67, 64, 17, 197, 48, 6, 118, 75, 0, 12, 137, 1, 14, 15, 9, 20, 5, 195, 167, 15, 21, 0, 0, 7, 196, 48,
+			84, 132, 60, 20, 13, 3, 95, 50, 15, 89, 36, 81, 6, 128, 68, 72, 0, 0, 12, 67, 64, 147, 210, 48, 37, 6, 110, 34, 0, 102,
+			0, 12, 137, 20, 195, 173, 14, 8, 1, 13, 15, 19, 72, 0, 0, 7, 196, 16, 83, 1, 76, 76, 20, 6, 16, 18, 15, 6, 194, 170,
+			48, 51, 4, 39, 83, 36, 89, 6, 39, 16, 132, 0, 0, 8, 197, 64, 244, 145, 84, 80, 102, 19, 4, 95, 53, 67, 15, 49, 37, 68,
+			90, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 0, 7, 196, 64, 84, 132, 20, 20, 11, 200, 12, 243, 136, 20, 49, 83, 80, 80,
+			21, 14, 3, 95, 51, 15, 47, 36, 16, 14, 89, 6, 118, 16, 0, 8, 4, 95, 15, 18, 4, 39, 0, 0, 0, 0, 0, 6, 195, 104,
+			84, 143, 20, 0, 0, 0, 0, 7, 196, 88, 84, 130, 60, 20, 8, 196, 29, 35, 218, 60, 20, 36, 7, 196, 24, 84, 133, 52, 20, 0,
+			0, 0, 10, 199, 21, 53, 9, 88, 84, 129, 52, 72, 6, 195, 4, 244, 192, 72, 0, 7, 196, 48, 244, 5, 76, 20, 0, 0, 9, 198,
+			12, 243, 69, 72, 84, 192, 21, 0, 6, 195, 16, 20, 192, 72, 6, 195, 48, 20, 192, 72, 0, 11, 3, 95, 53, 15, 49, 6, 37, 68,
+			47, 0, 0, 16, 69, 56, 83, 19, 60, 224, 50, 6, 109, 55, 89, 132, 68, 0, 101, 0, 14, 4, 95, 13, 3, 14, 65, 35, 49, 51,
+			6, 39, 68, 0, 0, 0, 0, 12, 201, 52, 19, 148, 37, 97, 82, 16, 84, 192, 20, 0, 0, 0, 7, 196, 76, 84, 137, 4, 72, 11,
+			3, 95, 54, 15, 89, 6, 36, 89, 47, 0, 0, 0, 17, 70, 9, 32, 73, 48, 193, 64, 71, 51, 6, 35, 37, 55, 37, 0, 102, 18,
+			70, 9, 32, 73, 48, 193, 64, 71, 12, 34, 6, 35, 37, 55, 112, 0, 101, 5, 194, 20, 208, 72, 6, 194, 16, 240, 72, 34, 0, 0,
+			0, 8, 197, 52, 244, 133, 36, 16, 20, 0, 0, 0, 7, 196, 24, 244, 133, 76, 21, 8, 196, 12, 84, 131, 60, 20, 36, 12, 3, 95,
+			55, 15, 89, 6, 109, 76, 37, 65, 0, 0, 0, 0, 0, 0, 8, 197, 4, 211, 210, 21, 48, 21, 0, 0, 0, 7, 196, 8, 244, 132,
+			60, 20, 11, 200, 4, 192, 129, 81, 35, 218, 21, 48, 20, 12, 68, 24, 244, 129, 52, 83, 39, 16, 130, 0, 73, 0, 11, 67, 20, 225,
+			0, 6, 36, 50, 72, 0, 101, 0, 0, 6, 195, 65, 32, 64, 72, 13, 3, 95, 51, 88, 47, 51, 6, 37, 68, 47, 132, 0, 0, 7,
+			195, 76, 83, 15, 20, 36, 19, 6, 16, 18, 15, 6, 194, 186, 48, 51, 4, 39, 83, 36, 89, 6, 39, 34, 0, 14, 3, 95, 48, 67,
+			89, 6, 118, 68, 47, 111, 138, 0, 102, 14, 3, 95, 48, 67, 89, 6, 118, 68, 47, 40, 138, 0, 101, 0, 0, 0, 21, 71, 12, 193,
+			86, 21, 36, 207, 56, 49, 55, 6, 109, 84, 36, 34, 89, 39, 68, 0, 102, 21, 71, 12, 193, 86, 21, 36, 207, 56, 49, 55, 6, 109,
+			84, 112, 34, 89, 132, 68, 0, 101, 6, 195, 17, 32, 64, 24, 0, 8, 196, 76, 240, 146, 20, 101, 21, 14, 68, 76, 240, 146, 20, 89,
+			6, 39, 71, 51, 112, 0, 102, 10, 3, 95, 57, 15, 50, 6, 39, 50, 0, 0, 17, 69, 16, 84, 201, 28, 224, 72, 4, 37, 88, 6,
+			35, 37, 50, 0, 101, 0, 0, 18, 71, 76, 192, 67, 45, 112, 82, 20, 89, 55, 6, 35, 49, 58, 36, 14, 0, 7, 132, 20, 195, 170,
+			13, 72, 0, 13, 67, 53, 1, 71, 4, 109, 65, 48, 6, 109, 81, 0, 12, 3, 95, 49, 67, 89, 6, 118, 68, 47, 40, 0, 0, 9,
+			198, 21, 48, 207, 64, 85, 1, 21, 0, 0, 10, 199, 76, 80, 143, 73, 33, 73, 4, 20, 0, 0, 0, 9, 198, 12, 20, 197, 9, 33,
+			64, 20, 5, 194, 48, 16, 72, 8, 4, 95, 35, 194, 170, 132, 0, 16, 3, 95, 49, 57, 72, 36, 88, 36, 50, 6, 110, 84, 112, 0,
+			102, 16, 3, 95, 49, 57, 72, 112, 88, 132, 50, 6, 110, 84, 112, 0, 101, 0, 14, 3, 95, 49, 56, 72, 36, 88, 6, 120, 47, 40,
+			0, 102, 15, 3, 95, 49, 56, 72, 112, 88, 6, 110, 37, 47, 40, 0, 101, 0, 16, 3, 95, 50, 67, 72, 40, 88, 6, 118, 68, 47,
+			111, 88, 0, 102, 16, 3, 95, 50, 67, 72, 40, 88, 6, 118, 68, 47, 40, 138, 0, 101, 0, 8, 197, 40, 241, 213, 20, 208, 20, 18,
+			4, 95, 54, 67, 15, 89, 118, 89, 118, 68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 0, 7, 195, 28, 83, 15, 20, 36, 6, 195, 8,
+			243, 15, 21, 0, 8, 197, 29, 35, 211, 76, 240, 21, 16, 69, 21, 53, 5, 88, 80, 36, 89, 47, 36, 84, 112, 0, 102, 74, 0, 11,
+			3, 95, 49, 49, 6, 39, 68, 88, 112, 0, 0, 10, 3, 95, 49, 48, 72, 6, 109, 138, 0, 0, 7, 196, 5, 52, 201, 52, 102, 17,
+			3, 95, 51, 67, 47, 51, 36, 88, 6, 36, 68, 47, 111, 88, 0, 102, 17, 3, 95, 51, 67, 47, 34, 112, 88, 6, 36, 68, 47, 40,
+			138, 0, 101, 13, 3, 95, 49, 51, 47, 51, 6, 36, 88, 37, 0, 102, 13, 3, 95, 49, 51, 47, 34, 6, 36, 88, 112, 0, 101, 0,
+			8, 197, 80, 84, 133, 37, 48, 72, 8, 197, 76, 84, 133, 37, 48, 72, 13, 4, 95, 49, 88, 15, 72, 6, 109, 89, 37, 65, 0, 11,
+			3, 95, 49, 50, 72, 6, 39, 88, 112, 0, 0, 12, 3, 95, 49, 53, 49, 6, 37, 68, 88, 112, 0, 0, 15, 3, 95, 49, 52, 49,
+			35, 47, 6, 39, 34, 88, 112, 0, 102, 15, 3, 95, 49, 52, 49, 132, 47, 6, 39, 34, 88, 112, 0, 101, 0, 6, 195, 4, 145, 19,
+			17, 13, 3, 95, 52, 15, 49, 58, 6, 35, 16, 14, 47, 0, 17, 3, 95, 49, 55, 72, 4, 36, 88, 36, 89, 6, 109, 76, 112, 0,
+			102, 16, 3, 95, 49, 55, 72, 112, 88, 132, 89, 6, 109, 47, 112, 0, 101, 0, 16, 3, 95, 49, 54, 72, 4, 36, 88, 36, 89, 6,
+			118, 138, 0, 102, 16, 3, 95, 49, 54, 72, 112, 88, 132, 89, 6, 36, 37, 138, 0, 101, 0, 8, 4, 95, 35, 194, 186, 111, 0, 0,
+			15, 3, 95, 55, 88, 89, 36, 47, 6, 118, 68, 47, 132, 0, 102, 15, 3, 95, 55, 88, 89, 112, 47, 6, 118, 68, 47, 132, 0, 101,
+			0, 7, 196, 80, 149, 133, 72, 20, 0, 0, 9, 198, 64, 148, 149, 21, 64, 64, 21, 9, 198, 4, 193, 207, 104, 84, 192, 20, 0, 0,
+			0, 0, 9, 198, 13, 32, 84, 21, 32, 64, 20, 9, 198, 5, 84, 212, 21, 32, 64, 20, 0, 0, 7, 196, 64, 241, 9, 4, 76, 16,
+			3, 95, 53, 67, 49, 37, 67, 6, 118, 68, 47, 111, 88, 0, 102, 16, 3, 95, 53, 67, 49, 37, 67, 6, 118, 68, 47, 40, 138, 0,
+			101, 0, 0, 0, 0, 6, 195, 61, 52, 207, 21, 0, 14, 69, 48, 22, 79, 85, 64, 55, 6, 118, 4, 114, 47, 0, 16, 69, 12, 243,
+			8, 21, 32, 49, 39, 61, 6, 109, 34, 0, 104, 37, 17, 69, 12, 243, 8, 21, 32, 49, 39, 55, 57, 6, 109, 34, 0, 102, 37, 0,
+			9, 198, 72, 84, 207, 49, 97, 64, 20, 12, 137, 16, 15, 4, 195, 173, 1, 13, 15, 19, 76, 0, 13, 138, 20, 9, 22, 195, 169, 18,
+			1, 13, 15, 19, 72, 6, 195, 52, 19, 0, 102, 6, 195, 4, 20, 16, 17, 0, 6, 195, 65, 32, 83, 72, 11, 3, 1, 46, 3, 6,
+			35, 89, 6, 36, 0, 0, 9, 198, 72, 84, 207, 49, 97, 77, 20, 0, 12, 137, 19, 5, 18, 195, 173, 1, 13, 15, 19, 72, 0, 21,
+			71, 44, 193, 86, 21, 36, 207, 56, 49, 55, 6, 109, 84, 36, 34, 89, 132, 68, 0, 101, 8, 132, 1, 20, 195, 169, 102, 72, 0, 11,
+			200, 5, 4, 133, 56, 65, 83, 80, 80, 21, 21, 68, 4, 229, 5, 76, 6, 129, 68, 76, 37, 89, 49, 135, 0, 102, 81, 113, 117, 101,
+			32, 0, 9, 198, 12, 245, 66, 21, 33, 77, 20, 21, 69, 21, 128, 197, 80, 240, 36, 89, 6, 109, 47, 40, 89, 135, 0, 102, 81, 115,
+			101, 32, 0, 0, 13, 3, 95, 50, 88, 84, 6, 37, 68, 76, 112, 0, 102, 13, 3, 95, 50, 88, 84, 6, 37, 68, 47, 112, 0, 101,
+			0, 0, 0, 16, 70, 72, 145, 77, 4, 227, 128, 34, 6, 37, 12, 65, 35, 50, 0, 0, 9, 198, 12, 245, 66, 21, 33, 83, 20, 0,
+			11, 3, 95, 56, 15, 120, 47, 6, 35, 84, 0, 0, 8, 197, 5, 1, 78, 5, 48, 102, 17, 69, 56, 84, 212, 21, 48, 50, 6, 36,
+			89, 76, 37, 89, 0, 102, 76, 0, 0, 19, 71, 25, 34, 69, 17, 34, 67, 32, 83, 34, 6, 37, 12, 72, 34, 37, 91, 0, 0, 14,
+			68, 25, 35, 206, 80, 83, 34, 6, 39, 50, 47, 0, 101, 7, 196, 24, 22, 133, 72, 76, 0, 0, 0, 0, 7, 196, 76, 241, 146, 20,
+			20, 15, 3, 95, 63, 63, 89, 6, 37, 65, 71, 39, 55, 111, 10, 0, 0, 11, 4, 14, 195, 163, 15, 50, 4, 130, 0, 11, 0, 5,
+			194, 53, 32, 24, 0, 14, 5, 22, 15, 3, 195, 170, 84, 39, 89, 6, 36, 0, 76, 16, 3, 95, 52, 88, 49, 58, 35, 16, 6, 118,
+			68, 47, 132, 0, 102, 16, 3, 95, 52, 88, 49, 58, 132, 16, 6, 36, 68, 47, 132, 0, 101, 0, 0, 0, 0, 0, 8, 196, 24, 244,
+			146, 60, 20, 36, 0, 0, 5, 194, 56, 16, 72, 0, 16, 3, 95, 53, 88, 89, 37, 68, 49, 58, 6, 118, 68, 47, 132, 0, 0, 7,
+			196, 64, 81, 18, 4, 20, 0, 9, 197, 20, 228, 133, 16, 240, 20, 36, 21, 4, 95, 55, 67, 15, 89, 36, 48, 76, 37, 90, 118, 68,
+			47, 6, 109, 88, 37, 65, 0, 0, 0, 6, 195, 24, 242, 64, 72, 0, 0, 15, 69, 60, 97, 137, 12, 80, 6, 110, 83, 4, 37, 89,
+			0, 101, 9, 198, 21, 34, 84, 72, 82, 65, 20, 8, 197, 5, 21, 69, 48, 16, 76, 0, 0, 15, 3, 95, 54, 88, 89, 36, 89, 6,
+			118, 68, 47, 132, 0, 102, 15, 3, 95, 54, 88, 89, 112, 89, 6, 118, 68, 47, 132, 0, 101, 0, 0, 15, 4, 95, 50, 88, 15, 84,
+			37, 90, 6, 109, 88, 37, 65, 0, 0, 0, 6, 195, 76, 83, 64, 102, 0, 7, 196, 24, 22, 133, 52, 76, 0, 17, 7, 11, 18, 195,
+			188, 7, 5, 18, 49, 51, 6, 37, 90, 36, 34, 0, 0, 0, 9, 198, 53, 83, 8, 21, 33, 83, 20, 0, 13, 68, 77, 65, 86, 20,
+			89, 47, 6, 37, 12, 84, 0, 7, 196, 65, 33, 84, 4, 21, 7, 196, 52, 241, 15, 76, 20, 0, 0, 9, 198, 21, 3, 208, 20, 144,
+			64, 20, 9, 198, 80, 241, 1, 88, 144, 64, 102, 0, 0, 14, 68, 53, 82, 84, 4, 65, 58, 6, 37, 68, 47, 132, 0, 7, 196, 52,
+			84, 132, 4, 20, 7, 196, 24, 86, 133, 76, 20, 0, 0, 18, 70, 36, 228, 212, 4, 195, 0, 4, 37, 50, 89, 47, 6, 35, 55, 0,
+			101, 0, 10, 67, 52, 18, 76, 65, 6, 118, 55, 0, 17, 67, 13, 68, 140, 49, 6, 39, 68, 47, 12, 34, 4, 110, 55, 0, 101, 9,
+			134, 20, 5, 18, 195, 163, 15, 72, 13, 3, 95, 56, 88, 120, 47, 6, 118, 68, 47, 132, 0, 0, 0, 11, 136, 16, 15, 4, 5, 18,
+			195, 163, 15, 76, 0, 0, 6, 195, 88, 245, 64, 76, 7, 195, 76, 85, 64, 76, 34, 0, 7, 196, 12, 244, 148, 60, 20, 0, 12, 5,
+			11, 195, 188, 8, 12, 49, 6, 37, 55, 0, 0, 5, 194, 52, 80, 72, 0, 15, 3, 95, 57, 88, 50, 39, 84, 6, 118, 68, 47, 132,
+			0, 102, 15, 3, 95, 57, 88, 50, 40, 84, 6, 118, 68, 47, 132, 0, 101, 0, 0, 17, 69, 72, 80, 68, 52, 80, 34, 6, 37, 12,
+			72, 65, 37, 12, 0, 101, 8, 197, 88, 19, 5, 80, 16, 21, 8, 197, 53, 84, 133, 80, 16, 21, 0, 0, 0, 7, 196, 88, 246, 133,
+			76, 20, 0, 8, 197, 77, 81, 197, 72, 80, 20, 0, 12, 137, 5, 14, 4, 5, 18, 5, 195, 167, 15, 21, 13, 3, 95, 63, 65, 55,
+			6, 36, 47, 51, 132, 10, 0, 0, 0, 0, 12, 136, 5, 19, 6, 15, 18, 195, 167, 15, 20, 36, 11, 136, 5, 19, 20, 1, 18, 195,
+			163, 15, 72, 0, 0, 0, 0, 8, 197, 24, 244, 212, 21, 48, 72, 16, 69, 56, 244, 211, 5, 48, 50, 6, 110, 89, 132, 89, 0, 102,
+			76, 0, 0, 0, 11, 67, 92, 80, 128, 58, 6, 109, 71, 0, 102, 0, 0, 13, 69, 28, 82, 83, 20, 192, 81, 6, 117, 88, 137, 0,
+			0, 0, 7, 132, 22, 195, 163, 15, 76, 6, 195, 77, 80, 64, 76, 14, 4, 95, 15, 7, 15, 39, 81, 39, 50, 6, 36, 49, 0, 0,
+			14, 68, 77, 64, 82, 80, 89, 47, 6, 35, 34, 47, 0, 101, 7, 196, 20, 229, 18, 20, 102, 0, 9, 198, 20, 228, 85, 4, 229, 15,
+			102, 0, 6, 195, 65, 35, 211, 72, 0, 23, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 49, 51, 39, 58, 89, 6, 110, 83, 47,
+			0, 102, 24, 71, 52, 144, 210, 61, 51, 198, 80, 65, 4, 37, 49, 12, 34, 6, 39, 89, 4, 110, 83, 47, 0, 101, 0, 7, 195, 60,
+			225, 5, 102, 72, 0, 0, 0, 0, 7, 196, 36, 65, 73, 4, 20, 0, 0, 0, 20, 4, 95, 56, 67, 15, 39, 49, 76, 37, 90, 118,
+			68, 47, 6, 109, 88, 37, 65, 0, 0, 0, 8, 197, 64, 20, 133, 16, 80, 21, 8, 197, 28, 19, 69, 80, 16, 21, 8, 197, 24, 20,
+			143, 24, 16, 20, 9, 197, 5, 1, 82, 80, 240, 21, 37, 0, 10, 3, 195, 160, 19, 4, 35, 12, 89, 0, 0, 0, 0, 15, 69, 81,
+			84, 137, 56, 112, 47, 6, 40, 16, 37, 68, 81, 0, 8, 197, 64, 241, 9, 4, 208, 76, 16, 69, 5, 21, 69, 48, 80, 132, 49, 6,
+			36, 55, 112, 0, 76, 34, 0, 11, 67, 21, 145, 83, 6, 35, 37, 88, 0, 101, 6, 194, 61, 48, 76, 34, 0, 7, 195, 65, 35, 192,
+			72, 34, 0, 7, 196, 81, 33, 86, 60, 21, 17, 4, 95, 48, 77, 52, 47, 34, 37, 55, 57, 6, 127, 57, 88, 0, 102, 17, 4, 95,
+			48, 77, 52, 47, 34, 37, 55, 57, 6, 127, 57, 138, 0, 101, 0, 9, 134, 20, 5, 18, 195, 161, 19, 72, 12, 67, 65, 35, 198, 48,
+			34, 6, 110, 83, 0, 24, 0, 6, 195, 76, 85, 83, 76, 16, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 127, 57, 88, 0, 102, 16,
+			4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 127, 57, 138, 0, 101, 0, 10, 67, 88, 243, 128, 83, 2, 110, 50, 0, 11, 199, 16, 84,
+			197, 77, 1, 82, 60, 21, 37, 16, 4, 95, 48, 77, 51, 71, 37, 55, 57, 6, 127, 57, 88, 0, 102, 16, 4, 95, 48, 77, 51, 71,
+			37, 55, 57, 6, 127, 57, 138, 0, 101, 0, 14, 68, 53, 82, 84, 60, 65, 58, 6, 37, 68, 47, 111, 0, 7, 196, 28, 84, 141, 20,
+			20, 0, 12, 4, 95, 48, 77, 49, 65, 6, 116, 10, 0, 102, 13, 4, 95, 48, 77, 49, 65, 6, 37, 55, 10, 0, 101, 0, 9, 198,
+			20, 229, 143, 49, 67, 192, 21, 13, 4, 95, 2, 18, 22, 71, 51, 6, 109, 84, 37, 0, 0, 0, 0, 16, 69, 56, 85, 212, 60, 224,
+			50, 6, 37, 38, 40, 47, 39, 68, 0, 0, 0, 6, 195, 76, 84, 128, 72, 0, 6, 195, 24, 244, 129, 72, 0, 0, 0, 0, 7, 196,
+			65, 33, 84, 60, 21, 0, 8, 197, 12, 245, 66, 21, 32, 20, 0, 0, 0, 0, 0, 0, 0, 0, 16, 69, 16, 83, 5, 80, 80, 72,
+			6, 37, 55, 6, 37, 47, 0, 101, 8, 197, 29, 33, 76, 32, 16, 20, 0, 6, 195, 77, 80, 83, 76, 0, 0, 0, 0, 6, 194, 61,
+			80, 102, 72, 0, 0, 0, 8, 197, 12, 244, 142, 61, 48, 20, 0, 17, 70, 24, 86, 78, 52, 19, 128, 83, 6, 35, 37, 50, 65, 13,
+			50, 0, 9, 198, 8, 86, 133, 73, 35, 192, 21, 0, 0, 0, 8, 197, 80, 244, 148, 61, 48, 20, 0, 10, 198, 80, 83, 80, 21, 35,
+			192, 20, 36, 10, 198, 20, 229, 5, 73, 35, 192, 21, 37, 9, 198, 5, 84, 212, 21, 35, 192, 20, 8, 133, 20, 5, 18, 195, 161, 72,
+			0, 0, 7, 196, 52, 241, 68, 4, 20, 6, 195, 8, 240, 193, 21, 7, 196, 88, 19, 79, 76, 76, 10, 135, 16, 15, 4, 5, 18, 195,
+			161, 79, 7, 196, 80, 83, 79, 76, 72, 0, 10, 198, 16, 84, 193, 64, 81, 207, 21, 37, 0, 0, 0, 7, 196, 24, 241, 207, 76, 20,
+			7, 196, 12, 129, 70, 20, 20, 0, 9, 134, 22, 15, 3, 195, 170, 19, 76, 0, 7, 195, 76, 80, 207, 21, 37, 9, 198, 64, 241, 5,
+			52, 244, 192, 76, 0, 7, 132, 14, 195, 179, 19, 76, 6, 195, 12, 225, 64, 17, 0, 6, 195, 40, 241, 193, 20, 0, 0, 0, 0, 0,
+			10, 198, 16, 84, 208, 72, 86, 143, 20, 36, 0, 0, 19, 4, 95, 57, 67, 15, 50, 39, 68, 90, 118, 68, 47, 6, 109, 88, 37, 65,
+			0, 0, 0, 8, 197, 16, 84, 195, 20, 208, 20, 0, 0, 0, 0, 8, 197, 24, 244, 211, 20, 208, 21, 8, 197, 21, 53, 1, 88, 16,
+			72, 23, 69, 76, 83, 80, 72, 80, 89, 6, 36, 68, 48, 34, 37, 49, 135, 0, 102, 81, 113, 117, 101, 32, 0, 0, 19, 4, 95, 52,
+			88, 15, 49, 58, 35, 72, 16, 35, 90, 6, 109, 88, 37, 65, 0, 0, 0, 0, 9, 3, 195, 169, 19, 109, 89, 0, 72, 20, 4, 95,
+			3, 9, 18, 89, 37, 34, 49, 128, 68, 83, 55, 6, 109, 49, 89, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 20,
+			192, 102, 72, 11, 67, 56, 244, 192, 50, 40, 138, 0, 102, 72, 6, 195, 56, 244, 192, 72, 6, 195, 60, 212, 192, 17, 0, 0, 0, 0,
+			12, 4, 95, 19, 20, 11, 71, 6, 35, 101, 132, 0, 0, 0, 12, 3, 95, 194, 170, 35, 88, 6, 37, 67, 111, 0, 13, 4, 95, 1,
+			3, 21, 132, 81, 6, 40, 72, 111, 0, 0, 0, 6, 195, 60, 229, 64, 65, 0, 0, 0, 5, 194, 48, 240, 72, 12, 66, 76, 16, 4,
+			109, 89, 57, 6, 35, 0, 101, 12, 3, 4, 46, 3, 72, 4, 36, 89, 6, 36, 0, 0, 0, 7, 196, 4, 209, 66, 4, 20, 0, 8,
+			197, 12, 244, 133, 36, 16, 20, 0, 12, 67, 40, 241, 207, 90, 6, 110, 81, 111, 0, 36, 0, 13, 4, 95, 18, 14, 7, 129, 50, 6,
+			109, 55, 0, 101, 11, 4, 95, 18, 14, 7, 129, 50, 6, 137, 0, 0, 28, 3, 95, 194, 161, 4, 36, 89, 49, 55, 132, 65, 35, 89,
+			4, 130, 4, 37, 68, 84, 36, 34, 76, 6, 37, 72, 132, 0, 6, 131, 95, 195, 169, 43, 0, 9, 198, 16, 148, 195, 61, 33, 15, 20,
+			9, 198, 16, 84, 195, 61, 33, 15, 20, 0, 0, 23, 67, 33, 69, 16, 35, 81, 4, 35, 47, 36, 47, 36, 6, 48, 36, 10, 0, 81,
+			58, 47, 47, 32, 0, 0, 0, 14, 5, 5, 19, 20, 195, 161, 36, 89, 47, 6, 35, 0, 72, 0, 6, 131, 95, 195, 160, 43, 0, 7,
+			196, 52, 147, 204, 60, 21, 0, 15, 69, 84, 37, 78, 81, 80, 40, 71, 6, 40, 50, 47, 40, 0, 8, 197, 80, 244, 146, 21, 48, 21,
+			0, 10, 198, 76, 244, 211, 20, 115, 192, 21, 37, 14, 5, 19, 5, 18, 195, 161, 89, 36, 16, 35, 0, 102, 74, 0, 0, 7, 196, 76,
+			244, 18, 20, 20, 0, 9, 198, 60, 36, 207, 48, 85, 15, 21, 0, 6, 195, 64, 83, 15, 72, 0, 10, 67, 21, 32, 64, 109, 16, 132,
+			0, 73, 0, 0, 0, 9, 198, 64, 19, 8, 21, 64, 64, 21, 5, 194, 77, 32, 24, 0, 7, 132, 22, 195, 179, 19, 76, 0, 10, 67,
+			21, 32, 77, 109, 16, 130, 0, 73, 0, 10, 67, 77, 83, 210, 89, 58, 110, 34, 0, 0, 15, 67, 41, 1, 71, 90, 4, 110, 47, 132,
+			48, 6, 109, 81, 0, 19, 4, 95, 1, 3, 50, 132, 81, 6, 40, 72, 111, 72, 6, 40, 48, 55, 111, 0, 0, 0, 0, 15, 69, 8,
+			16, 203, 85, 0, 71, 109, 49, 6, 132, 48, 0, 102, 0, 9, 66, 60, 176, 110, 49, 6, 118, 0, 9, 198, 12, 243, 69, 77, 65, 64,
+			21, 9, 198, 8, 147, 8, 21, 65, 64, 21, 9, 198, 17, 84, 129, 57, 65, 64, 102, 0, 9, 198, 60, 36, 207, 48, 85, 1, 21, 0,
+			0, 0, 0, 0, 0, 0, 30, 3, 95, 194, 191, 4, 37, 68, 47, 36, 101, 4, 39, 81, 35, 89, 4, 130, 4, 37, 68, 84, 36, 34,
+			76, 6, 37, 72, 132, 0, 0, 19, 4, 95, 53, 88, 15, 49, 37, 68, 49, 58, 35, 90, 6, 109, 88, 37, 65, 0, 0, 14, 68, 88,
+			241, 197, 48, 83, 6, 39, 12, 81, 13, 55, 0, 14, 68, 76, 51, 213, 80, 89, 49, 6, 35, 40, 47, 0, 101, 13, 67, 64, 83, 1,
+			48, 6, 36, 55, 132, 0, 102, 72, 11, 67, 16, 83, 5, 72, 36, 55, 112, 0, 77, 7, 196, 4, 32, 68, 88, 17, 0, 12, 3, 95,
+			194, 186, 110, 88, 6, 37, 67, 111, 0, 0, 0, 11, 136, 19, 5, 18, 195, 173, 5, 9, 19, 72, 0, 7, 196, 40, 241, 193, 52, 20,
+			6, 195, 16, 83, 1, 76, 0, 9, 198, 81, 32, 86, 21, 52, 207, 21, 8, 197, 12, 244, 144, 61, 48, 20, 0, 0, 0, 12, 67, 77,
+			84, 197, 88, 6, 40, 12, 123, 13, 0, 6, 195, 12, 244, 1, 20, 0, 0, 9, 198, 61, 1, 82, 21, 64, 64, 21, 9, 198, 53, 85,
+			18, 21, 64, 64, 21, 6, 195, 12, 245, 15, 21, 0, 0, 0, 0, 9, 198, 60, 36, 212, 21, 32, 64, 20, 0, 10, 199, 76, 245, 66,
+			21, 33, 5, 76, 20, 9, 198, 65, 35, 198, 21, 33, 77, 20, 10, 199, 12, 245, 66, 21, 33, 5, 76, 20, 0, 8, 196, 76, 244, 18,
+			60, 20, 36, 0, 0, 9, 198, 65, 35, 198, 21, 33, 64, 20, 0, 10, 199, 28, 243, 143, 73, 33, 73, 4, 20, 0, 6, 195, 80, 85,
+			1, 21, 0, 15, 69, 53, 83, 8, 21, 32, 65, 40, 61, 6, 109, 34, 0, 104, 16, 69, 53, 83, 8, 21, 32, 65, 40, 55, 57, 6,
+			109, 34, 0, 102, 15, 2, 194, 167, 48, 132, 16, 6, 35, 81, 51, 35, 83, 111, 0, 9, 2, 195, 159, 21, 100, 101, 0, 10, 0, 5,
+			194, 76, 80, 72, 9, 66, 56, 240, 50, 40, 0, 72, 34, 9, 2, 194, 164, 6, 115, 16, 111, 0, 0, 9, 198, 81, 35, 205, 8, 85,
+			1, 21, 0, 0, 0, 0, 6, 195, 60, 213, 0, 17, 0, 12, 67, 24, 150, 5, 83, 6, 37, 91, 112, 0, 101, 7, 196, 72, 241, 193,
+			76, 20, 11, 67, 72, 150, 1, 101, 6, 37, 91, 132, 0, 0, 10, 4, 1, 24, 195, 169, 35, 91, 109, 0, 5, 130, 195, 167, 43, 0,
+			0, 9, 134, 16, 15, 18, 195, 169, 13, 102, 0, 5, 130, 195, 162, 43, 0, 5, 130, 195, 163, 43, 0, 15, 70, 56, 85, 77, 4, 227,
+			128, 50, 6, 136, 65, 35, 50, 0, 6, 195, 12, 244, 15, 20, 7, 130, 195, 160, 14, 15, 43, 8, 2, 195, 160, 4, 35, 12, 0, 0,
+			5, 130, 195, 161, 43, 0, 13, 68, 52, 245, 137, 20, 65, 6, 40, 84, 37, 0, 101, 0, 8, 197, 52, 244, 148, 61, 48, 20, 0, 6,
+			195, 76, 242, 83, 72, 0, 19, 71, 28, 245, 20, 25, 34, 69, 16, 81, 6, 110, 47, 83, 34, 37, 12, 47, 0, 11, 136, 12, 195, 173,
+			4, 5, 18, 5, 19, 21, 6, 195, 4, 32, 192, 17, 5, 130, 195, 173, 43, 0, 14, 68, 4, 67, 194, 20, 132, 72, 6, 110, 71, 112,
+			0, 101, 13, 68, 76, 130, 70, 80, 91, 6, 37, 83, 47, 0, 101, 5, 130, 195, 170, 43, 0, 0, 9, 2, 194, 176, 81, 51, 6, 114,
+			0, 0, 7, 130, 195, 169, 14, 15, 43, 7, 2, 195, 169, 109, 0, 72, 0, 7, 196, 56, 245, 143, 76, 20, 0, 15, 69, 16, 20, 151,
+			36, 224, 72, 6, 134, 34, 58, 37, 50, 0, 0, 9, 198, 64, 193, 66, 20, 144, 64, 20, 5, 130, 195, 180, 43, 0, 5, 130, 195, 181,
+			43, 0, 15, 4, 95, 3, 5, 4, 89, 112, 72, 6, 37, 61, 132, 0, 101, 15, 4, 95, 3, 5, 4, 89, 36, 75, 6, 37, 55, 57,
+			132, 0, 0, 5, 130, 195, 179, 43, 0, 9, 198, 12, 21, 15, 73, 161, 64, 21, 0, 16, 4, 95, 12, 9, 7, 55, 37, 81, 35, 72,
+			6, 40, 16, 132, 0, 0, 6, 195, 65, 81, 5, 76, 0, 0, 17, 70, 32, 21, 203, 36, 225, 192, 107, 6, 39, 12, 49, 37, 50, 81,
+			0, 5, 194, 80, 80, 72, 5, 130, 195, 188, 43, 0, 9, 198, 76, 241, 146, 21, 53, 5, 21, 9, 198, 12, 244, 146, 21, 53, 5, 21,
+			0, 7, 196, 24, 243, 79, 76, 72, 5, 130, 195, 186, 43, 0, 23, 73, 52, 243, 148, 21, 52, 85, 36, 85, 64, 65, 4, 39, 68, 47,
+			36, 89, 49, 57, 6, 36, 0, 8, 197, 12, 243, 69, 72, 16, 21, 8, 197, 12, 20, 133, 80, 16, 21, 0, 7, 195, 12, 243, 79, 102,
+			72, 0, 6, 195, 88, 18, 64, 76, 0, 7, 196, 65, 81, 5, 72, 20, 7, 196, 64, 244, 146, 4, 21, 0, 0, 19, 70, 65, 35, 196,
+			84, 53, 0, 48, 12, 34, 6, 132, 72, 132, 49, 47, 0, 101, 5, 194, 81, 80, 76, 0, 10, 67, 12, 243, 64, 49, 39, 65, 0, 101,
+			11, 199, 5, 36, 133, 52, 84, 211, 60, 21, 37, 6, 195, 12, 243, 64, 72, 18, 4, 95, 54, 88, 15, 89, 36, 49, 89, 35, 90, 6,
+			109, 88, 37, 65, 0, 0, 0, 0, 9, 198, 13, 33, 83, 12, 83, 64, 20, 0, 6, 195, 80, 83, 64, 72, 0, 0, 9, 134, 195, 169,
+			18, 5, 9, 19, 72, 0, 0, 0, 7, 196, 76, 243, 79, 76, 72, 0, 0, 9, 198, 64, 192, 84, 20, 144, 64, 20, 9, 198, 12, 243,
+			13, 20, 144, 64, 20, 0, 0, 0, 16, 69, 44, 84, 142, 20, 192, 49, 6, 109, 34, 50, 13, 55, 0, 102, 17, 69, 44, 84, 142, 20,
+			192, 49, 6, 109, 34, 50, 4, 109, 55, 0, 101, 0, 7, 195, 21, 36, 143, 21, 37, 0, 6, 195, 76, 245, 64, 72, 0, 14, 67, 21,
+			53, 5, 6, 36, 89, 76, 37, 0, 102, 76, 34, 0, 0, 0, 7, 195, 80, 85, 64, 76, 34, 0, 14, 67, 21, 53, 1, 6, 109, 89,
+			47, 132, 0, 102, 76, 34, 0, 8, 197, 5, 1, 83, 5, 32, 102, 0, 5, 194, 84, 80, 17, 0, 0, 14, 68, 52, 18, 197, 72, 65,
+			6, 118, 49, 132, 44, 0, 101, 8, 133, 16, 18, 195, 160, 19, 72, 0, 8, 197, 76, 19, 5, 80, 16, 21, 0, 0, 10, 199, 65, 34,
+			77, 5, 97, 82, 4, 20, 9, 198, 16, 144, 82, 72, 82, 65, 20, 9, 198, 4, 192, 193, 80, 82, 65, 20, 0, 16, 5, 95, 49, 77,
+			49, 15, 65, 37, 55, 6, 109, 88, 37, 65, 0, 0, 8, 197, 88, 145, 82, 20, 208, 20, 8, 197, 76, 241, 146, 20, 208, 20, 0, 0,
+			6, 2, 95, 1, 35, 0, 0, 0, 0, 9, 198, 5, 53, 1, 88, 19, 64, 72, 0, 6, 2, 95, 5, 109, 0, 0, 7, 196, 88, 84,
+			141, 20, 20, 0, 0, 9, 198, 72, 80, 207, 72, 67, 192, 20, 9, 198, 4, 208, 82, 20, 195, 192, 20, 9, 198, 65, 81, 5, 72, 19,
+			64, 76, 0, 0, 6, 2, 95, 15, 110, 0, 6, 195, 76, 240, 128, 102, 0, 12, 68, 64, 17, 88, 4, 48, 35, 36, 91, 35, 0, 0,
+			16, 69, 4, 194, 83, 60, 224, 132, 55, 6, 37, 89, 132, 68, 0, 101, 0, 9, 198, 88, 19, 133, 77, 48, 64, 21, 6, 195, 76, 240,
+			133, 20, 0, 6, 195, 81, 80, 64, 76, 0, 14, 68, 64, 242, 78, 80, 48, 6, 39, 37, 50, 47, 0, 101, 6, 195, 61, 99, 211, 20,
+			8, 133, 16, 195, 180, 4, 5, 76, 0, 0, 17, 70, 76, 48, 78, 56, 84, 128, 89, 49, 6, 109, 50, 132, 34, 0, 101, 0, 0, 6,
+			195, 80, 83, 147, 72, 0, 0, 0, 0, 15, 68, 76, 85, 21, 64, 89, 6, 109, 47, 6, 132, 48, 0, 101, 0, 0, 13, 4, 95, 226,
+			136, 146, 65, 6, 36, 50, 111, 89, 0, 0, 0, 13, 68, 76, 182, 80, 20, 89, 49, 6, 117, 48, 0, 102, 14, 68, 76, 182, 80, 20,
+			89, 49, 6, 35, 37, 48, 0, 101, 0, 8, 197, 64, 84, 133, 16, 80, 21, 16, 69, 4, 51, 210, 16, 240, 132, 49, 6, 110, 34, 72,
+			111, 0, 36, 0, 0, 15, 2, 95, 35, 49, 4, 35, 34, 75, 37, 50, 6, 114, 0, 102, 16, 2, 95, 35, 49, 4, 35, 34, 72, 37,
+			50, 6, 35, 55, 0, 101, 0, 24, 2, 95, 34, 6, 35, 71, 51, 37, 38, 6, 35, 89, 48, 132, 15, 72, 6, 40, 48, 55, 132, 138,
+			0, 11, 2, 95, 34, 6, 35, 89, 48, 132, 138, 0, 0, 16, 2, 95, 33, 4, 36, 89, 49, 55, 132, 65, 35, 89, 6, 130, 0, 0,
+			0, 11, 67, 61, 99, 192, 6, 39, 84, 40, 0, 101, 16, 2, 95, 39, 132, 48, 6, 110, 89, 47, 51, 39, 83, 111, 0, 102, 17, 2,
+			95, 39, 35, 48, 6, 110, 89, 47, 34, 4, 39, 83, 112, 0, 101, 0, 6, 195, 80, 85, 83, 76, 7, 2, 95, 38, 6, 36, 0, 0,
+			0, 6, 195, 17, 83, 65, 72, 12, 2, 95, 36, 89, 4, 37, 83, 51, 6, 130, 0, 0, 6, 195, 17, 83, 64, 72, 0, 14, 68, 28,
+			208, 73, 48, 90, 36, 65, 6, 118, 55, 0, 102, 15, 68, 28, 208, 73, 48, 81, 4, 36, 65, 6, 118, 55, 0, 101, 15, 2, 95, 42,
+			132, 89, 47, 36, 16, 6, 37, 89, 49, 111, 0, 16, 4, 95, 3, 1, 16, 65, 117, 6, 40, 89, 49, 40, 55, 111, 0, 0, 20, 2,
+			95, 41, 83, 4, 109, 91, 132, 48, 35, 16, 6, 118, 68, 47, 36, 88, 112, 0, 0, 20, 2, 95, 40, 4, 35, 71, 51, 37, 48, 35,
+			16, 6, 118, 68, 47, 36, 88, 112, 0, 0, 10, 2, 95, 47, 71, 6, 35, 100, 132, 0, 0, 0, 10, 2, 95, 45, 6, 37, 83, 118,
+			68, 0, 0, 16, 70, 45, 37, 69, 28, 84, 128, 49, 51, 6, 37, 90, 36, 34, 0, 13, 2, 95, 44, 84, 6, 37, 34, 81, 40, 55,
+			132, 0, 0, 6, 195, 16, 84, 128, 20, 6, 195, 80, 84, 128, 72, 6, 195, 53, 36, 192, 24, 10, 2, 95, 51, 47, 51, 6, 36, 138,
+			0, 0, 9, 2, 95, 50, 72, 6, 120, 138, 0, 0, 24, 73, 61, 4, 5, 56, 129, 73, 52, 84, 128, 11, 6, 110, 48, 13, 50, 107,
+			4, 117, 65, 35, 34, 0, 9, 2, 95, 49, 6, 128, 68, 0, 102, 9, 2, 95, 49, 6, 40, 65, 0, 101, 0, 15, 70, 53, 81, 76,
+			48, 84, 128, 65, 6, 37, 55, 36, 34, 0, 11, 67, 80, 85, 133, 47, 36, 84, 112, 0, 73, 11, 2, 95, 48, 88, 6, 109, 16, 111,
+			0, 102, 11, 2, 95, 48, 88, 6, 109, 16, 40, 0, 101, 0, 11, 2, 95, 55, 89, 6, 109, 76, 112, 0, 102, 11, 2, 95, 55, 89,
+			6, 109, 47, 112, 0, 101, 0, 9, 2, 95, 54, 89, 6, 118, 138, 0, 0, 11, 2, 95, 53, 89, 6, 37, 68, 49, 40, 0, 0, 6,
+			195, 16, 85, 129, 21, 13, 2, 95, 52, 49, 58, 6, 35, 47, 51, 40, 0, 102, 13, 2, 95, 52, 49, 58, 6, 35, 47, 34, 40, 0,
+			101, 0, 21, 2, 95, 59, 48, 4, 39, 68, 47, 40, 10, 37, 84, 6, 37, 34, 81, 40, 55, 132, 0, 0, 6, 195, 16, 85, 143, 21,
+			7, 196, 16, 84, 195, 20, 20, 16, 2, 95, 58, 72, 4, 120, 89, 48, 6, 39, 68, 47, 40, 89, 0, 0, 10, 2, 95, 57, 50, 6,
+			110, 84, 112, 0, 0, 9, 2, 95, 56, 6, 120, 47, 40, 0, 0, 18, 2, 95, 63, 4, 37, 68, 47, 36, 101, 4, 39, 81, 35, 89,
+			6, 130, 0, 0, 6, 195, 81, 80, 83, 76, 10, 2, 95, 62, 65, 117, 6, 110, 34, 0, 0, 8, 197, 80, 20, 5, 80, 80, 21, 8,
+			197, 12, 16, 197, 80, 80, 21, 8, 197, 4, 35, 210, 16, 240, 20, 11, 2, 95, 61, 37, 81, 58, 6, 114, 0, 102, 12, 2, 95, 61,
+			37, 81, 58, 6, 35, 55, 0, 101, 0, 11, 2, 95, 60, 65, 36, 50, 6, 110, 34, 0, 0, 6, 195, 16, 86, 128, 20, 6, 195, 24,
+			22, 128, 76, 0, 17, 70, 88, 243, 11, 52, 19, 142, 83, 6, 110, 55, 49, 65, 35, 50, 0, 21, 68, 16, 84, 196, 20, 72, 6, 36,
+			89, 75, 37, 49, 135, 0, 102, 81, 113, 117, 101, 32, 8, 196, 16, 84, 196, 20, 102, 72, 0, 0, 0, 0, 15, 6, 13, 195, 188, 12,
+			5, 18, 65, 6, 37, 55, 36, 34, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 80, 207, 73, 67, 192, 20, 10, 198, 20, 230, 5, 73,
+			67, 192, 21, 37, 8, 133, 16, 18, 195, 178, 19, 72, 0, 6, 195, 20, 192, 64, 76, 6, 195, 36, 48, 192, 17, 0, 7, 196, 4, 67,
+			210, 20, 20, 0, 0, 18, 70, 52, 83, 143, 72, 84, 192, 65, 36, 50, 6, 110, 16, 37, 89, 0, 102, 9, 198, 80, 149, 133, 72, 84,
+			192, 20, 0, 6, 195, 85, 48, 128, 17, 6, 195, 56, 32, 64, 17, 0, 14, 68, 64, 18, 78, 80, 48, 6, 35, 37, 50, 47, 0, 101,
+			11, 67, 8, 16, 203, 71, 6, 109, 49, 0, 101, 7, 196, 64, 245, 143, 76, 20, 7, 195, 28, 246, 143, 20, 36, 0, 11, 67, 4, 192,
+			78, 6, 35, 55, 13, 50, 0, 0, 9, 198, 65, 81, 5, 52, 244, 192, 76, 9, 198, 24, 22, 133, 52, 244, 192, 76, 9, 198, 80, 149,
+			133, 52, 244, 192, 72, 9, 198, 21, 53, 1, 52, 244, 192, 72, 0, 11, 67, 20, 193, 64, 6, 36, 55, 112, 0, 76, 0, 16, 70, 72,
+			144, 200, 5, 33, 0, 101, 6, 37, 91, 132, 34, 72, 0, 13, 4, 95, 4, 15, 20, 48, 6, 39, 68, 47, 111, 0, 0, 0, 0, 6,
+			195, 20, 49, 192, 17, 18, 2, 95, 91, 4, 35, 71, 51, 37, 49, 39, 58, 91, 6, 36, 76, 37, 0, 0, 6, 195, 20, 192, 83, 76,
+			0, 14, 69, 20, 194, 88, 37, 32, 36, 55, 37, 91, 37, 34, 0, 0, 7, 66, 88, 144, 84, 37, 0, 0, 16, 2, 95, 95, 89, 4,
+			40, 71, 55, 37, 67, 6, 35, 72, 40, 0, 0, 19, 2, 95, 94, 89, 4, 37, 34, 49, 128, 68, 83, 55, 6, 109, 49, 89, 40, 0,
+			0, 14, 69, 60, 227, 9, 56, 80, 39, 68, 55, 117, 68, 0, 102, 18, 2, 95, 93, 83, 4, 109, 91, 132, 49, 39, 58, 91, 6, 36,
+			76, 37, 0, 0, 21, 2, 95, 92, 71, 4, 35, 101, 132, 4, 37, 68, 84, 36, 34, 76, 6, 37, 72, 132, 0, 0, 6, 195, 24, 34,
+			64, 17, 0, 6, 195, 20, 193, 83, 76, 0, 16, 69, 4, 115, 211, 80, 240, 132, 81, 6, 39, 89, 47, 111, 0, 102, 17, 4, 95, 56,
+			88, 15, 39, 49, 47, 39, 90, 6, 109, 88, 37, 65, 0, 0, 11, 2, 95, 96, 81, 51, 6, 35, 84, 37, 0, 0, 0, 6, 195, 12,
+			240, 207, 21, 7, 132, 16, 18, 195, 160, 72, 0, 16, 7, 13, 195, 188, 12, 12, 5, 18, 65, 6, 37, 55, 36, 34, 0, 0, 9, 198,
+			20, 225, 143, 72, 51, 192, 20, 0, 0, 7, 196, 64, 84, 193, 52, 20, 0, 0, 6, 195, 64, 84, 193, 20, 9, 198, 52, 244, 131, 20,
+			115, 192, 21, 13, 4, 95, 7, 18, 22, 81, 51, 6, 35, 84, 37, 0, 0, 16, 67, 76, 244, 192, 4, 109, 89, 57, 4, 110, 6, 109,
+			89, 0, 101, 0, 0, 0, 18, 70, 92, 147, 132, 61, 116, 192, 58, 6, 37, 68, 72, 39, 58, 89, 0, 102, 20, 70, 92, 147, 132, 61,
+			116, 192, 58, 6, 37, 68, 72, 6, 39, 40, 12, 88, 0, 101, 0, 10, 199, 21, 53, 9, 88, 83, 79, 76, 72, 6, 195, 56, 20, 192,
+			72, 0, 0, 0, 9, 198, 80, 84, 133, 52, 244, 192, 72, 9, 198, 76, 84, 133, 52, 244, 192, 72, 7, 132, 16, 18, 195, 178, 72, 0,
+			0, 7, 195, 64, 84, 207, 21, 37, 6, 195, 64, 84, 207, 20, 6, 195, 17, 83, 147, 72, 12, 67, 8, 147, 211, 71, 6, 37, 4, 110,
+			91, 0, 0, 0, 0, 15, 2, 95, 123, 4, 35, 71, 51, 37, 91, 6, 35, 84, 37, 0, 13, 4, 95, 4, 9, 1, 47, 51, 6, 36,
+			65, 132, 0, 0, 0, 15, 69, 52, 83, 8, 61, 32, 65, 36, 61, 6, 110, 34, 0, 104, 16, 69, 52, 83, 8, 61, 32, 65, 36, 55,
+			57, 6, 110, 34, 0, 102, 0, 16, 70, 60, 97, 140, 36, 225, 64, 110, 83, 55, 6, 117, 68, 0, 102, 6, 194, 84, 208, 72, 34, 0,
+			0, 13, 68, 64, 245, 197, 72, 48, 6, 114, 132, 44, 0, 101, 9, 2, 95, 126, 76, 6, 116, 0, 102, 10, 2, 95, 126, 47, 6, 37,
+			55, 0, 101, 0, 8, 197, 64, 84, 132, 20, 208, 20, 15, 2, 95, 125, 83, 4, 109, 91, 132, 91, 6, 35, 84, 37, 0, 0, 20, 2,
+			95, 124, 71, 4, 35, 101, 132, 84, 4, 36, 34, 76, 37, 49, 6, 114, 0, 102, 21, 2, 95, 124, 71, 4, 35, 101, 132, 84, 4, 36,
+			34, 76, 37, 49, 6, 35, 55, 0, 101, 0, 19, 70, 24, 148, 133, 24, 246, 0, 83, 6, 35, 37, 13, 83, 110, 49, 89, 0, 102, 20,
+			70, 24, 148, 133, 24, 246, 0, 83, 6, 35, 37, 132, 34, 83, 110, 49, 89, 0, 101, 0, 13, 67, 40, 21, 211, 75, 6, 35, 40, 12,
+			88, 0, 101, 0, 0, 0, 9, 198, 65, 84, 197, 72, 65, 83, 20, 0, 7, 195, 76, 240, 207, 20, 36, 6, 195, 76, 240, 207, 21, 11,
+			200, 5, 52, 197, 52, 35, 5, 36, 16, 20, 0, 16, 69, 4, 48, 197, 77, 48, 6, 35, 49, 89, 4, 109, 89, 0, 101, 0, 0, 0,
+			0, 0, 0, 0, 15, 68, 8, 194, 78, 16, 71, 55, 6, 35, 37, 50, 72, 0, 101, 7, 196, 21, 36, 143, 76, 21, 0, 0, 0, 12,
+			67, 21, 48, 192, 6, 109, 89, 49, 124, 0, 103, 11, 67, 21, 48, 192, 6, 109, 89, 49, 0, 102, 0, 7, 196, 8, 84, 212, 4, 21,
+			0, 0, 9, 198, 65, 83, 136, 21, 64, 64, 20, 6, 195, 64, 241, 5, 76, 0, 0, 0, 0, 18, 70, 88, 84, 130, 21, 65, 64, 84,
+			36, 34, 71, 6, 36, 76, 37, 0, 102, 9, 198, 8, 80, 133, 77, 65, 64, 21, 14, 4, 95, 35, 51, 50, 91, 48, 6, 35, 89, 111,
+			0, 101, 14, 4, 95, 35, 51, 50, 36, 89, 48, 6, 35, 89, 111, 0, 0, 0, 0, 20, 8, 19, 195, 173, 13, 2, 15, 12, 15, 89,
+			6, 37, 68, 71, 39, 55, 111, 0, 104, 19, 8, 19, 195, 173, 13, 2, 15, 12, 15, 89, 6, 37, 65, 71, 39, 55, 111, 0, 0, 0,
+			0, 11, 5, 5, 46, 21, 46, 1, 109, 40, 35, 0, 0, 0, 16, 70, 4, 32, 67, 5, 130, 64, 35, 71, 35, 49, 35, 91, 112, 0,
+			0, 0, 21, 72, 32, 82, 83, 20, 224, 133, 72, 112, 107, 6, 117, 88, 109, 50, 71, 36, 34, 81, 0, 13, 68, 52, 18, 79, 72, 65,
+			117, 6, 110, 34, 0, 102, 15, 68, 52, 18, 79, 72, 65, 4, 132, 57, 6, 110, 44, 0, 101, 0, 17, 4, 95, 57, 88, 15, 50, 39,
+			50, 35, 90, 6, 109, 88, 37, 65, 0, 0, 17, 70, 61, 85, 12, 60, 242, 192, 4, 114, 47, 55, 6, 40, 49, 0, 102, 18, 70, 61,
+			85, 12, 60, 242, 192, 6, 35, 40, 47, 55, 6, 40, 49, 0, 101, 0, 19, 70, 88, 84, 130, 21, 65, 83, 84, 36, 34, 71, 6, 36,
+			76, 37, 89, 0, 102, 0, 12, 68, 52, 18, 76, 76, 65, 6, 118, 55, 89, 0, 20, 70, 21, 132, 12, 61, 33, 82, 36, 49, 89, 48,
+			55, 6, 110, 16, 36, 34, 0, 102, 22, 70, 21, 132, 12, 61, 33, 82, 4, 36, 49, 89, 48, 55, 6, 110, 12, 16, 132, 44, 0, 101,
+			0, 0, 0, 9, 198, 16, 84, 198, 20, 50, 15, 21, 0, 0, 0, 19, 70, 36, 229, 5, 72, 225, 84, 37, 68, 47, 36, 34, 50, 6,
+			109, 47, 0, 102, 13, 67, 21, 52, 197, 6, 36, 89, 37, 0, 102, 76, 34, 0, 6, 195, 37, 52, 192, 17, 0, 0, 0, 9, 198, 76,
+			20, 138, 21, 64, 64, 20, 9, 198, 64, 20, 212, 61, 32, 64, 21, 9, 198, 52, 20, 146, 21, 64, 64, 21, 9, 198, 12, 244, 142, 21,
+			64, 64, 21, 9, 198, 12, 20, 146, 21, 64, 64, 21, 11, 67, 21, 52, 193, 6, 109, 89, 132, 0, 76, 0, 0, 6, 195, 13, 5, 67,
+			17, 0, 0, 12, 67, 76, 149, 5, 89, 6, 117, 76, 37, 0, 102, 11, 67, 76, 149, 5, 89, 6, 117, 47, 0, 101, 13, 67, 76, 20,
+			9, 89, 4, 35, 48, 6, 37, 0, 101, 9, 198, 88, 147, 204, 21, 64, 64, 21, 0, 6, 195, 13, 5, 64, 17, 0, 0, 9, 198, 12,
+			19, 73, 76, 85, 1, 21, 0, 26, 10, 20, 5, 12, 5, 13, 195, 179, 22, 5, 12, 47, 4, 109, 55, 4, 109, 65, 6, 110, 84, 109,
+			55, 0, 101, 9, 198, 76, 244, 150, 21, 65, 64, 21, 9, 198, 64, 244, 146, 21, 65, 64, 21, 9, 198, 80, 149, 133, 77, 65, 64, 72,
+			0, 0, 12, 67, 12, 20, 19, 49, 6, 35, 48, 89, 0, 101, 7, 196, 24, 244, 211, 20, 21, 13, 68, 16, 84, 211, 20, 72, 6, 36,
+			89, 112, 0, 76, 0, 0, 12, 137, 18, 5, 6, 15, 18, 195, 167, 15, 19, 20, 0, 0, 12, 68, 44, 193, 73, 56, 49, 55, 6, 117,
+			50, 0, 16, 68, 21, 53, 5, 76, 6, 36, 89, 76, 37, 89, 0, 102, 76, 34, 0, 15, 69, 21, 48, 193, 64, 80, 91, 49, 6, 118,
+			48, 112, 0, 101, 0, 11, 67, 64, 246, 1, 48, 6, 39, 91, 132, 0, 11, 67, 52, 86, 1, 65, 6, 36, 91, 132, 0, 0, 0, 7,
+			196, 24, 244, 212, 20, 21, 7, 196, 24, 244, 212, 20, 72, 0, 15, 69, 28, 243, 199, 48, 80, 81, 6, 40, 81, 39, 55, 0, 102, 16,
+			69, 28, 243, 199, 48, 80, 81, 6, 40, 12, 81, 132, 55, 0, 101, 8, 197, 52, 81, 197, 72, 16, 20, 0, 0, 9, 198, 80, 149, 133,
+			77, 65, 83, 72, 0, 8, 196, 12, 131, 210, 60, 21, 37, 0, 0, 0, 0, 0, 16, 69, 56, 244, 211, 61, 48, 50, 6, 110, 89, 111,
+			89, 0, 102, 76, 0, 0, 7, 195, 84, 208, 64, 72, 34, 0, 6, 195, 64, 242, 83, 102, 0, 12, 136, 20, 18, 15, 16, 5, 195, 167,
+			15, 21, 37, 0, 12, 137, 1, 13, 1, 14, 8, 5, 195, 167, 15, 21, 0, 9, 134, 5, 19, 20, 195, 163, 15, 72, 0, 11, 67, 52,
+			86, 15, 65, 6, 36, 91, 111, 0, 0, 19, 70, 16, 146, 139, 77, 68, 129, 72, 6, 37, 57, 49, 89, 47, 34, 134, 12, 0, 0, 9,
+			198, 64, 19, 135, 20, 144, 64, 20, 0, 0, 7, 196, 21, 53, 15, 84, 72, 0, 0, 11, 67, 52, 86, 9, 65, 36, 91, 6, 37, 0,
+			6, 195, 36, 81, 69, 17, 0, 0, 14, 68, 28, 244, 212, 60, 81, 6, 110, 89, 47, 111, 0, 36, 0, 14, 69, 53, 81, 76, 21, 32,
+			65, 6, 37, 55, 36, 34, 0, 0, 12, 137, 5, 19, 6, 15, 18, 195, 167, 15, 19, 20, 0, 0, 0, 11, 136, 3, 15, 14, 8, 5,
+			195, 167, 15, 21, 7, 132, 19, 195, 163, 15, 72, 0, 0, 0, 7, 196, 76, 241, 210, 4, 20, 7, 196, 28, 84, 211, 60, 21, 7, 196,
+			21, 53, 1, 72, 72, 0, 14, 70, 72, 245, 83, 76, 80, 85, 51, 40, 89, 6, 39, 0, 8, 197, 5, 85, 15, 72, 16, 21, 0, 13,
+			67, 32, 243, 69, 107, 6, 39, 58, 65, 37, 0, 102, 11, 67, 32, 243, 69, 6, 39, 65, 112, 0, 101, 0, 20, 71, 52, 84, 211, 20,
+			225, 197, 72, 65, 6, 109, 89, 132, 50, 75, 132, 44, 0, 101, 18, 70, 52, 83, 8, 61, 33, 83, 65, 36, 61, 6, 110, 16, 37, 89,
+			0, 104, 19, 70, 52, 83, 8, 61, 33, 83, 65, 36, 55, 57, 6, 110, 16, 37, 89, 0, 102, 0, 0, 0, 9, 198, 20, 225, 207, 72,
+			67, 192, 20, 0, 0, 0, 8, 197, 80, 83, 132, 21, 48, 72, 0, 8, 133, 6, 1, 195, 167, 15, 76, 0, 0, 12, 137, 1, 13, 1,
+			14, 8, 5, 195, 167, 1, 21, 0, 0, 0, 9, 134, 19, 5, 18, 195, 163, 15, 72, 0, 14, 68, 76, 208, 82, 80, 89, 65, 6, 35,
+			34, 47, 0, 101, 7, 196, 40, 241, 207, 76, 20, 0, 0, 0, 21, 71, 65, 80, 140, 37, 50, 5, 72, 48, 6, 132, 71, 55, 4, 37,
+			91, 132, 44, 0, 101, 10, 199, 8, 244, 130, 60, 193, 84, 4, 21, 0, 0, 0, 0, 7, 195, 52, 85, 64, 76, 34, 6, 195, 4, 68,
+			204, 17, 0, 7, 195, 84, 208, 83, 72, 34, 0, 0, 0, 0, 11, 135, 3, 15, 13, 5, 195, 167, 15, 21, 37, 18, 7, 3, 15, 13,
+			5, 195, 167, 15, 49, 39, 65, 6, 109, 89, 111, 0, 36, 0, 17, 70, 76, 83, 22, 4, 113, 77, 89, 115, 84, 6, 35, 90, 118, 68,
+			0, 8, 197, 69, 80, 78, 16, 240, 102, 0, 9, 198, 64, 241, 5, 72, 82, 64, 79, 0, 0, 0, 0, 0, 10, 199, 5, 67, 79, 76,
+			97, 82, 4, 20, 0, 6, 195, 52, 85, 83, 76, 0, 6, 18, 66, 97, 109, 0, 97, 0, 7, 6, 18, 67, 101, 109, 0, 101, 0, 7,
+			6, 18, 68, 97, 109, 0, 97, 0, 111, 0, 7, 6, 18, 69, 117, 101, 109, 0, 97, 109, 0, 101, 109, 0, 117, 101, 0, 97, 0, 101,
+			0, 111, 0, 7, 6, 18, 70, 114, 100, 101, 115, 0, 114, 97, 109, 0, 114, 101, 109, 0, 114, 97, 0, 114, 101, 0, 114, 0, 7, 6,
+			195, 160, 0, 3, 35, 0, 8, 2, 115, 32, 3, 117, 0, 4, 2, 109, 3, 129, 0, 2, 110, 0, 109, 2, 25, 3, 129, 65, 0, 110,
+			104, 2, 17, 65, 3, 129, 67, 0, 110, 2, 25, 3, 129, 68, 0, 7, 6, 195, 161, 0, 4, 3, 7, 35, 0, 2, 105, 17, 67, 25,
+			0, 2, 117, 17, 67, 25, 0, 4, 117, 3, 7, 114, 0, 117, 2, 115, 0, 4, 105, 3, 7, 117, 0, 105, 2, 115, 0, 121, 0, 108,
+			5, 1, 3, 7, 134, 55, 0, 7, 6, 195, 162, 0, 4, 2, 109, 3, 7, 129, 0, 2, 110, 0, 109, 2, 25, 3, 7, 129, 65, 0,
+			110, 104, 3, 7, 129, 67, 0, 110, 2, 25, 3, 7, 129, 68, 0, 3, 7, 132, 0, 7, 6, 195, 163, 0, 3, 129, 0, 111, 3, 130,
+			0, 7, 6, 195, 169, 0, 4, 3, 7, 109, 0, 2, 105, 17, 67, 25, 0, 2, 117, 17, 67, 25, 0, 121, 3, 7, 118, 0, 4, 109,
+			2, 32, 3, 7, 118, 68, 0, 109, 2, 115, 32, 0, 110, 2, 32, 0, 110, 2, 115, 32, 0, 4, 105, 3, 7, 119, 0, 105, 2, 115,
+			0, 4, 117, 3, 7, 137, 0, 117, 2, 115, 0, 7, 6, 195, 170, 0, 3, 7, 36, 0, 110, 104, 3, 7, 36, 67, 0, 109, 2, 17,
+			67, 3, 7, 118, 65, 0, 4, 109, 2, 32, 3, 7, 118, 68, 0, 109, 2, 32, 0, 110, 2, 25, 0, 7, 6, 195, 173, 0, 4, 3,
+			7, 37, 0, 2, 109, 0, 2, 110, 0, 109, 2, 17, 67, 3, 7, 37, 65, 0, 110, 104, 3, 7, 37, 67, 0, 4, 109, 2, 32, 3,
+			7, 37, 68, 0, 110, 2, 25, 0, 7, 6, 195, 179, 0, 4, 3, 7, 110, 0, 2, 105, 17, 67, 25, 0, 117, 3, 7, 110, 58, 0,
+			4, 105, 3, 7, 136, 0, 105, 2, 115, 0, 121, 0, 7, 6, 195, 180, 0, 3, 7, 39, 0, 109, 2, 17, 67, 3, 7, 39, 65, 0,
+			110, 104, 3, 7, 39, 67, 0, 4, 109, 2, 32, 3, 7, 39, 68, 0, 110, 2, 25, 0, 7, 6, 195, 181, 0, 3, 127, 0, 101, 3,
+			127, 57, 0, 7, 6, 195, 186, 0, 3, 7, 40, 0, 109, 2, 17, 67, 3, 7, 128, 65, 0, 110, 104, 3, 7, 128, 67, 0, 4, 109,
+			2, 32, 3, 7, 128, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 25, 0, 7, 6, 97, 0, 5, 1, 2, 108, 25, 3, 4, 134,
+			0, 4, 2, 114, 32, 3, 6, 35, 0, 5, 1, 2, 122, 32, 0, 8, 2, 32, 31, 0, 99, 195, 167, 5, 1, 1, 17, 67, 3, 6,
+			35, 6, 89, 0, 5, 1, 2, 108, 32, 3, 6, 134, 0, 5, 1, 1, 112, 2, 100, 32, 3, 8, 109, 0, 109, 2, 32, 3, 8, 129,
+			68, 0, 109, 2, 32, 3, 8, 130, 0, 4, 1, 10, 2, 32, 3, 8, 132, 0, 1, 10, 2, 115, 32, 0, 5, 1, 2, 32, 0, 5,
+			1, 2, 115, 32, 0, 4, 1, 10, 2, 32, 97, 3, 8, 133, 0, 1, 10, 2, 32, 195, 160, 0, 5, 1, 2, 32, 97, 0, 5, 1,
+			2, 32, 195, 160, 0, 4, 3, 35, 0, 2, 105, 17, 67, 25, 0, 2, 105, 117, 32, 0, 2, 108, 104, 12, 0, 2, 117, 17, 67, 25,
+			0, 8, 2, 32, 0, 4, 108, 5, 2, 2, 25, 3, 114, 0, 111, 2, 32, 0, 117, 0, 117, 2, 115, 0, 4, 105, 3, 117, 0, 105,
+			2, 115, 0, 121, 0, 4, 2, 109, 3, 129, 0, 2, 110, 0, 109, 2, 17, 67, 3, 129, 65, 0, 110, 104, 2, 17, 65, 3, 129, 67,
+			0, 4, 109, 5, 4, 2, 17, 67, 3, 129, 68, 0, 110, 2, 25, 12, 0, 4, 2, 17, 67, 17, 67, 32, 3, 132, 0, 2, 17, 67,
+			32, 0, 2, 109, 17, 65, 21, 0, 2, 109, 17, 65, 114, 32, 0, 2, 110, 17, 65, 21, 0, 2, 110, 17, 65, 114, 32, 0, 7, 6,
+			98, 0, 2, 98, 3, 0, 4, 3, 71, 0, 5, 3, 2, 115, 0, 5, 3, 2, 32, 17, 67, 3, 71, 10, 0, 8, 2, 32, 3, 71,
+			36, 0, 5, 3, 2, 17, 66, 3, 71, 124, 0, 7, 6, 99, 0, 5, 1, 2, 99, 3, 0, 116, 5, 1, 1, 17, 65, 3, 47, 0,
+			4, 3, 49, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0, 107, 0, 5, 3, 2, 32, 17, 67, 3, 49, 10, 0, 116, 5, 1, 1,
+			97, 116, 110, 111, 99, 2, 17, 65, 3, 49, 47, 0, 5, 3, 2, 17, 66, 3, 49, 124, 0, 4, 2, 17, 71, 3, 89, 0, 195, 167,
+			5, 1, 1, 17, 65, 0, 8, 2, 32, 3, 89, 36, 0, 104, 3, 91, 0, 7, 6, 100, 0, 2, 100, 3, 0, 3, 72, 0, 5, 3,
+			2, 32, 17, 67, 3, 72, 10, 0, 8, 2, 32, 3, 72, 36, 0, 4, 5, 2, 2, 101, 32, 3, 75, 0, 5, 2, 2, 105, 0, 5,
+			2, 2, 195, 173, 0, 5, 3, 2, 17, 66, 3, 75, 124, 0, 7, 6, 101, 0, 4, 5, 1, 1, 100, 2, 110, 17, 67, 17, 65, 17,
 			65, 3, 4, 36, 0, 5, 1, 1, 100, 2, 110, 17, 67, 17, 65, 17, 67, 17, 65, 0, 5, 1, 1, 100, 2, 110, 17, 67, 17, 65,
 			17, 67, 17, 67, 17, 65, 0, 4, 5, 1, 1, 17, 67, 2, 99, 17, 67, 3, 4, 109, 0, 5, 1, 1, 112, 105, 104, 2, 114, 0,
 			5, 1, 1, 112, 117, 115, 2, 114, 0, 5, 1, 1, 114, 2, 108, 118, 97, 0, 5, 1, 1, 118, 2, 108, 32, 0, 5, 1, 8, 109,
 			2, 103, 97, 0, 5, 1, 8, 116, 110, 105, 2, 114, 110, 0, 5, 1, 1, 17, 67, 2, 111, 3, 6, 37, 0, 4, 5, 1, 1, 108,
-			2, 116, 97, 3, 6, 109, 0, 5, 1, 1, 110, 2, 116, 0, 5, 1, 2, 108, 32, 0, 5, 1, 2, 108, 97, 32, 0, 99, 116, 105,
-			111, 110, 2, 32, 3, 6, 109, 49, 91, 129, 68, 0, 99, 195, 167, 5, 1, 1, 17, 67, 3, 6, 109, 89, 0, 117, 8, 110, 2, 116,
-			114, 18, 68, 32, 3, 6, 115, 0, 108, 5, 2, 2, 116, 111, 110, 32, 3, 6, 137, 0, 4, 5, 2, 1, 108, 10, 2, 32, 17, 65,
-			24, 3, 8, 37, 0, 5, 2, 1, 114, 10, 2, 32, 17, 65, 24, 0, 4, 2, 32, 3, 8, 112, 0, 2, 115, 32, 0, 4, 109, 2,
-			32, 3, 8, 118, 68, 0, 109, 2, 115, 32, 0, 110, 2, 32, 0, 110, 2, 115, 32, 0, 4, 5, 1, 2, 32, 105, 24, 3, 8, 135,
-			0, 5, 2, 2, 32, 17, 65, 24, 0, 4, 3, 36, 0, 1, 17, 67, 17, 67, 17, 67, 169, 195, 2, 17, 67, 21, 0, 1, 17, 67,
-			17, 67, 161, 195, 2, 17, 67, 17, 65, 32, 0, 1, 17, 67, 17, 67, 162, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 169, 195,
-			2, 17, 67, 17, 65, 32, 0, 1, 17, 67, 17, 67, 170, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 173, 195, 2, 17, 67, 21,
-			0, 1, 17, 67, 17, 67, 179, 195, 2, 17, 67, 17, 65, 32, 0, 1, 17, 67, 161, 195, 2, 17, 67, 21, 0, 1, 17, 67, 162, 195,
-			2, 17, 67, 21, 0, 1, 17, 67, 170, 195, 2, 17, 67, 21, 0, 1, 17, 67, 173, 195, 2, 17, 67, 21, 0, 1, 17, 67, 179, 195,
-			2, 17, 67, 21, 0, 1, 17, 67, 180, 195, 2, 17, 67, 21, 0, 1, 17, 67, 186, 195, 2, 17, 67, 21, 0, 1, 98, 101, 2, 18,
-			72, 32, 0, 1, 99, 21, 2, 18, 72, 32, 0, 1, 100, 101, 2, 114, 18, 69, 32, 0, 1, 100, 101, 99, 2, 18, 72, 32, 0, 1,
-			100, 110, 101, 2, 18, 71, 32, 0, 1, 100, 110, 111, 2, 18, 72, 32, 0, 1, 100, 110, 111, 112, 115, 101, 114, 2, 18, 71, 32, 0,
-			1, 100, 111, 112, 2, 114, 17, 65, 32, 0, 1, 100, 114, 2, 18, 70, 32, 0, 1, 102, 101, 2, 116, 117, 18, 67, 32, 0, 1, 103,
-			101, 2, 18, 72, 32, 0, 1, 103, 110, 97, 114, 116, 115, 110, 111, 99, 2, 18, 72, 32, 0, 1, 104, 2, 103, 18, 69, 32, 0, 1,
-			104, 99, 110, 101, 2, 18, 72, 32, 0, 1, 104, 108, 111, 99, 2, 18, 72, 32, 0, 1, 108, 111, 105, 118, 2, 116, 97, 32, 0, 1,
-			109, 2, 116, 18, 68, 32, 0, 1, 109, 2, 120, 18, 68, 32, 0, 1, 109, 21, 2, 18, 71, 32, 0, 1, 110, 17, 65, 2, 116, 17,
-			65, 32, 0, 1, 112, 109, 111, 114, 2, 18, 71, 32, 0, 1, 114, 2, 99, 104, 111, 32, 0, 1, 114, 99, 115, 2, 118, 18, 68, 32,
-			0, 1, 114, 114, 111, 2, 18, 72, 32, 0, 1, 116, 2, 118, 101, 32, 0, 1, 116, 97, 98, 2, 18, 72, 32, 0, 1, 116, 101, 109,
-			2, 18, 72, 32, 0, 1, 116, 114, 101, 118, 2, 18, 72, 32, 0, 1, 117, 2, 116, 97, 32, 0, 1, 118, 2, 114, 116, 18, 68, 32,
-			0, 1, 118, 97, 99, 101, 114, 112, 2, 18, 72, 32, 0, 1, 118, 101, 114, 99, 115, 2, 18, 72, 32, 0, 1, 118, 105, 118, 2, 18,
-			71, 32, 0, 1, 118, 108, 111, 2, 18, 72, 32, 0, 1, 118, 111, 109, 2, 18, 72, 32, 0, 1, 120, 101, 109, 2, 18, 72, 32, 0,
-			2, 105, 17, 67, 25, 0, 2, 108, 104, 12, 0, 2, 117, 17, 67, 25, 0, 5, 2, 1, 17, 67, 2, 101, 109, 32, 0, 8, 2, 114,
-			103, 18, 68, 32, 0, 8, 17, 67, 97, 17, 67, 2, 116, 97, 32, 0, 8, 17, 67, 97, 99, 2, 108, 111, 32, 0, 8, 99, 2, 115,
-			116, 18, 68, 32, 0, 8, 99, 114, 101, 116, 2, 116, 18, 68, 32, 0, 8, 100, 2, 118, 18, 68, 32, 0, 8, 100, 110, 111, 99, 115,
-			101, 2, 18, 71, 32, 0, 8, 100, 114, 97, 2, 18, 72, 32, 0, 8, 100, 114, 101, 112, 2, 18, 72, 32, 0, 8, 100, 114, 111, 109,
-			2, 18, 72, 32, 0, 8, 101, 114, 2, 114, 103, 18, 68, 32, 0, 8, 102, 2, 114, 118, 18, 68, 32, 0, 8, 103, 110, 97, 116, 2,
-			18, 72, 32, 0, 8, 104, 99, 111, 98, 2, 99, 104, 18, 69, 32, 0, 8, 108, 2, 115, 115, 18, 67, 32, 0, 8, 108, 97, 103, 2,
-			103, 18, 68, 32, 0, 8, 108, 97, 118, 2, 18, 72, 32, 0, 8, 108, 101, 112, 2, 103, 18, 68, 32, 0, 8, 108, 102, 110, 97, 112,
-			2, 116, 18, 69, 32, 0, 8, 108, 111, 98, 2, 116, 18, 69, 32, 0, 8, 108, 111, 115, 98, 111, 2, 116, 18, 68, 32, 0, 8, 109,
-			101, 114, 2, 116, 18, 68, 32, 0, 8, 110, 2, 103, 114, 18, 68, 32, 0, 8, 111, 21, 2, 18, 72, 32, 0, 8, 111, 109, 101, 114,
-			2, 18, 72, 32, 0, 8, 111, 114, 114, 111, 99, 2, 18, 72, 32, 0, 8, 111, 115, 2, 114, 103, 18, 68, 32, 0, 8, 112, 114, 111,
-			116, 110, 101, 2, 195, 167, 18, 68, 32, 0, 8, 112, 115, 101, 2, 115, 115, 18, 68, 32, 0, 8, 114, 99, 2, 18, 72, 32, 0, 8,
-			114, 102, 111, 115, 2, 18, 72, 32, 0, 8, 114, 103, 2, 103, 18, 68, 32, 0, 8, 114, 112, 2, 116, 18, 68, 32, 0, 8, 114, 114,
-			97, 17, 67, 2, 116, 97, 32, 0, 8, 114, 114, 101, 100, 2, 116, 18, 68, 32, 0, 8, 114, 116, 97, 2, 118, 18, 68, 32, 0, 8,
-			114, 118, 105, 108, 2, 116, 17, 65, 32, 0, 8, 115, 111, 99, 2, 18, 71, 32, 0, 8, 117, 103, 114, 101, 2, 18, 72, 32, 0, 8,
-			117, 113, 115, 101, 2, 114, 100, 18, 68, 32, 0, 8, 118, 101, 100, 2, 18, 72, 32, 0, 8, 118, 101, 114, 116, 97, 2, 18, 72, 32,
-			0, 8, 118, 114, 111, 115, 98, 97, 2, 18, 72, 32, 0, 8, 122, 101, 98, 2, 114, 114, 18, 68, 32, 0, 8, 122, 111, 99, 2, 18,
-			72, 32, 0, 101, 120, 8, 114, 2, 17, 65, 3, 36, 36, 88, 0, 117, 8, 114, 2, 110, 3, 36, 40, 0, 110, 104, 3, 36, 67, 0,
-			4, 5, 1, 1, 17, 67, 2, 97, 3, 37, 0, 5, 1, 1, 17, 67, 2, 195, 163, 0, 5, 1, 1, 17, 67, 2, 195, 186, 0, 5,
-			1, 2, 101, 0, 5, 1, 8, 2, 102, 0, 5, 1, 8, 110, 2, 110, 104, 117, 0, 101, 5, 2, 1, 17, 67, 2, 32, 0, 101, 5,
-			2, 2, 17, 67, 32, 0, 5, 1, 1, 163, 195, 17, 67, 3, 57, 0, 115, 5, 1, 8, 2, 17, 67, 21, 21, 3, 91, 0, 4, 1,
-			17, 67, 2, 112, 18, 69, 32, 3, 109, 0, 1, 98, 105, 2, 114, 18, 69, 32, 0, 1, 98, 117, 111, 2, 18, 70, 32, 0, 1, 99,
-			111, 105, 100, 2, 115, 101, 115, 32, 0, 1, 100, 2, 114, 18, 69, 32, 0, 1, 100, 97, 2, 113, 117, 18, 69, 32, 0, 1, 102, 2,
-			114, 18, 69, 32, 0, 1, 104, 108, 111, 99, 32, 115, 2, 114, 101, 115, 32, 0, 1, 105, 2, 114, 32, 0, 1, 108, 101, 99, 2, 98,
-			114, 18, 69, 32, 0, 1, 108, 101, 99, 97, 2, 114, 18, 69, 32, 0, 1, 109, 111, 99, 2, 195, 167, 18, 66, 32, 0, 1, 110, 101,
-			103, 2, 114, 18, 69, 32, 0, 1, 110, 111, 2, 116, 101, 32, 0, 1, 110, 111, 115, 101, 2, 114, 18, 69, 32, 0, 1, 112, 2, 114,
-			18, 69, 32, 0, 1, 112, 2, 195, 167, 18, 68, 32, 0, 1, 112, 115, 2, 114, 109, 97, 32, 0, 1, 114, 112, 2, 122, 18, 69, 32,
-			0, 1, 115, 21, 2, 18, 70, 32, 0, 1, 115, 115, 105, 100, 2, 18, 71, 32, 0, 1, 116, 2, 116, 114, 97, 0, 1, 117, 113, 2,
-			98, 114, 18, 69, 32, 0, 1, 117, 113, 2, 114, 18, 69, 32, 0, 1, 117, 113, 2, 114, 32, 0, 1, 118, 105, 2, 114, 18, 69, 32,
-			0, 1, 118, 105, 116, 2, 18, 70, 32, 0, 1, 122, 105, 102, 2, 18, 70, 32, 0, 2, 98, 18, 67, 32, 0, 2, 99, 18, 69, 32,
-			0, 2, 99, 104, 18, 69, 32, 0, 2, 99, 108, 18, 69, 32, 0, 2, 99, 116, 18, 69, 32, 0, 2, 100, 18, 67, 32, 0, 2, 102,
-			97, 32, 0, 2, 103, 18, 69, 32, 0, 2, 103, 114, 18, 69, 32, 0, 2, 108, 18, 69, 32, 0, 2, 108, 108, 12, 0, 2, 112, 116,
-			18, 69, 32, 0, 2, 113, 117, 18, 67, 32, 0, 2, 114, 98, 18, 69, 32, 0, 2, 114, 103, 18, 69, 32, 0, 2, 114, 109, 101, 32,
-			0, 2, 114, 110, 18, 69, 32, 0, 2, 114, 113, 117, 18, 67, 32, 0, 2, 114, 113, 117, 18, 67, 32, 0, 2, 114, 114, 17, 65, 115,
-			32, 0, 2, 114, 114, 18, 69, 32, 0, 2, 114, 115, 18, 69, 32, 0, 2, 114, 116, 18, 69, 32, 0, 2, 114, 118, 18, 69, 32, 0,
-			2, 115, 18, 67, 32, 0, 2, 115, 99, 18, 67, 32, 0, 2, 115, 115, 18, 69, 32, 0, 2, 115, 115, 32, 0, 2, 115, 116, 18, 69,
-			32, 0, 2, 115, 116, 114, 18, 69, 32, 0, 2, 116, 18, 69, 32, 0, 2, 118, 18, 69, 32, 0, 2, 120, 18, 69, 32, 0, 2, 120,
-			32, 0, 5, 2, 8, 110, 2, 116, 0, 8, 2, 32, 0, 8, 2, 100, 110, 18, 68, 32, 0, 8, 17, 67, 2, 98, 114, 101, 32, 0,
-			8, 17, 67, 2, 114, 100, 18, 69, 32, 0, 8, 98, 117, 120, 101, 2, 114, 18, 69, 32, 0, 8, 99, 2, 114, 99, 18, 67, 32, 0,
-			8, 99, 97, 2, 115, 115, 18, 67, 32, 0, 8, 99, 97, 108, 105, 100, 2, 114, 18, 69, 32, 0, 8, 99, 105, 108, 97, 2, 114, 99,
-			18, 67, 32, 0, 8, 99, 105, 108, 97, 2, 114, 195, 167, 18, 68, 32, 0, 8, 99, 110, 97, 109, 97, 2, 98, 18, 68, 32, 0, 8,
-			99, 110, 101, 2, 114, 18, 69, 32, 0, 8, 99, 110, 105, 115, 2, 114, 18, 68, 32, 0, 8, 99, 114, 97, 99, 110, 101, 2, 114, 18,
-			69, 32, 0, 8, 100, 2, 18, 70, 32, 0, 8, 100, 2, 115, 112, 18, 67, 32, 0, 8, 100, 111, 112, 97, 2, 114, 18, 69, 32, 0,
-			8, 100, 117, 112, 2, 18, 70, 32, 0, 8, 102, 110, 101, 2, 122, 18, 69, 32, 0, 8, 103, 2, 114, 18, 69, 32, 0, 8, 103, 97,
-			120, 101, 2, 18, 70, 32, 0, 8, 103, 105, 100, 2, 114, 18, 67, 32, 0, 8, 103, 105, 114, 102, 101, 114, 2, 114, 18, 69, 32, 0,
-			8, 103, 110, 105, 2, 114, 18, 67, 32, 0, 8, 103, 117, 115, 2, 114, 18, 69, 32, 0, 8, 104, 108, 97, 116, 2, 18, 70, 32, 0,
-			8, 104, 108, 117, 109, 2, 18, 70, 32, 0, 8, 105, 118, 2, 18, 70, 32, 0, 8, 108, 2, 115, 18, 68, 32, 0, 8, 108, 101, 98,
-			109, 101, 2, 122, 18, 69, 32, 0, 8, 108, 111, 115, 2, 116, 114, 18, 69, 32, 0, 8, 108, 111, 116, 2, 114, 18, 69, 32, 0, 8,
-			109, 2, 114, 18, 68, 32, 0, 8, 109, 2, 115, 99, 108, 18, 69, 0, 8, 109, 2, 195, 167, 18, 68, 32, 0, 8, 109, 111, 108, 103,
-			97, 2, 114, 18, 69, 32, 0, 8, 109, 115, 101, 2, 114, 18, 69, 32, 0, 8, 109, 115, 101, 2, 114, 18, 69, 32, 0, 8, 109, 117,
-			110, 101, 2, 114, 18, 69, 32, 0, 8, 110, 101, 112, 2, 116, 114, 18, 69, 32, 0, 8, 110, 101, 118, 2, 114, 18, 69, 32, 0, 8,
-			110, 105, 99, 110, 105, 2, 114, 18, 69, 32, 0, 8, 110, 105, 109, 2, 114, 18, 69, 32, 0, 8, 110, 111, 2, 114, 18, 69, 32, 0,
-			8, 112, 2, 115, 18, 66, 32, 0, 8, 112, 2, 115, 99, 18, 68, 32, 0, 8, 112, 2, 115, 113, 117, 18, 67, 32, 0, 8, 112, 115,
-			111, 104, 2, 100, 18, 68, 32, 0, 8, 114, 2, 106, 18, 68, 32, 0, 8, 114, 2, 122, 18, 69, 32, 0, 8, 114, 101, 100, 110, 101,
-			2, 195, 167, 18, 66, 32, 0, 8, 114, 101, 118, 110, 101, 2, 100, 18, 68, 32, 0, 8, 114, 102, 101, 114, 2, 115, 99, 18, 66, 32,
-			0, 8, 114, 102, 101, 114, 2, 115, 113, 117, 18, 67, 32, 0, 8, 114, 103, 2, 108, 104, 18, 69, 32, 0, 8, 114, 103, 101, 100, 2,
-			100, 18, 66, 32, 0, 8, 114, 110, 101, 2, 100, 18, 66, 32, 0, 8, 114, 112, 2, 100, 18, 68, 32, 0, 8, 114, 112, 101, 100, 2,
-			100, 18, 68, 32, 0, 8, 114, 112, 101, 114, 2, 115, 18, 68, 32, 0, 8, 114, 114, 97, 2, 100, 18, 68, 32, 0, 8, 115, 101, 100,
-			2, 114, 100, 18, 69, 32, 0, 8, 115, 110, 101, 2, 98, 18, 68, 32, 0, 8, 116, 105, 101, 114, 2, 114, 18, 68, 32, 0, 8, 116,
-			108, 97, 2, 114, 18, 69, 32, 0, 8, 116, 108, 117, 100, 97, 2, 114, 18, 69, 32, 0, 8, 116, 110, 101, 2, 115, 18, 69, 32, 0,
-			8, 118, 2, 100, 18, 68, 32, 0, 8, 118, 2, 108, 104, 18, 68, 32, 0, 8, 118, 101, 114, 2, 122, 18, 69, 32, 0, 8, 118, 101,
-			115, 2, 114, 18, 68, 32, 0, 8, 118, 101, 115, 114, 101, 112, 2, 114, 18, 69, 32, 0, 8, 118, 110, 105, 2, 106, 18, 69, 32, 0,
-			8, 118, 117, 111, 104, 2, 18, 71, 32, 0, 8, 120, 101, 2, 99, 114, 18, 69, 32, 0, 8, 120, 101, 2, 114, 99, 18, 67, 32, 0,
-			8, 120, 117, 111, 114, 116, 2, 18, 70, 32, 0, 8, 120, 117, 111, 114, 116, 2, 18, 72, 32, 0, 8, 122, 2, 114, 18, 69, 32, 0,
-			4, 5, 1, 1, 99, 2, 114, 101, 97, 3, 112, 0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 65, 0, 5, 1, 1, 100, 2, 17,
-			67, 17, 65, 17, 67, 17, 65, 17, 65, 0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 67, 17, 65, 17, 67, 0, 5, 1, 1, 100,
-			2, 17, 67, 17, 65, 17, 67, 17, 67, 0, 5, 1, 1, 100, 2, 17, 67, 17, 67, 17, 65, 17, 65, 0, 5, 1, 1, 100, 2, 17,
-			67, 17, 67, 17, 65, 17, 67, 17, 65, 0, 5, 1, 1, 100, 2, 17, 67, 17, 67, 17, 65, 17, 67, 17, 67, 17, 65, 0, 5, 1,
-			1, 100, 2, 102, 105, 99, 105, 0, 5, 1, 1, 112, 2, 115, 115, 111, 97, 0, 5, 1, 1, 114, 2, 99, 111, 114, 0, 5, 1, 1,
-			114, 2, 108, 117, 122, 0, 5, 1, 1, 114, 2, 115, 109, 117, 110, 103, 0, 5, 1, 1, 114, 2, 115, 115, 0, 5, 1, 1, 114, 2,
-			118, 101, 108, 0, 5, 1, 1, 114, 2, 118, 111, 108, 118, 0, 5, 1, 1, 114, 112, 2, 99, 105, 115, 0, 5, 1, 1, 114, 112, 2,
-			102, 0, 5, 1, 8, 100, 2, 102, 105, 110, 105, 0, 5, 1, 8, 100, 2, 115, 108, 105, 103, 0, 5, 1, 8, 100, 2, 115, 108, 111,
-			99, 0, 5, 1, 8, 102, 2, 99, 104, 0, 5, 1, 8, 102, 2, 114, 114, 97, 109, 101, 110, 116, 97, 0, 5, 1, 8, 112, 2, 114,
-			99, 101, 110, 116, 97, 103, 0, 5, 1, 8, 112, 2, 115, 113, 117, 0, 5, 1, 8, 114, 2, 99, 105, 99, 108, 0, 5, 1, 8, 116,
-			2, 114, 109, 105, 110, 0, 5, 1, 8, 118, 2, 108, 111, 99, 105, 0, 5, 2, 1, 163, 195, 2, 122, 0, 4, 108, 1, 17, 67, 161,
-			195, 2, 32, 3, 115, 0, 108, 1, 17, 67, 173, 195, 2, 32, 0, 108, 1, 17, 67, 186, 195, 2, 32, 0, 117, 0, 117, 2, 115, 0,
-			4, 105, 3, 118, 0, 105, 2, 115, 0, 121, 0, 109, 2, 17, 67, 3, 118, 65, 0, 110, 2, 25, 3, 118, 68, 0, 4, 105, 1, 114,
-			116, 115, 101, 2, 18, 69, 32, 3, 119, 0, 105, 2, 28, 17, 0, 108, 5, 2, 2, 25, 3, 137, 0, 7, 6, 102, 0, 2, 102, 3,
-			0, 8, 2, 32, 3, 6, 109, 83, 112, 0, 3, 83, 0, 5, 3, 2, 32, 17, 67, 3, 83, 10, 0, 5, 3, 2, 17, 66, 3, 83,
-			124, 0, 5, 1, 8, 2, 32, 3, 109, 83, 0, 5, 1, 8, 2, 32, 31, 3, 109, 83, 38, 0, 7, 6, 103, 0, 2, 103, 3, 0,
-			4, 3, 81, 0, 117, 2, 17, 71, 0, 117, 5, 1, 1, 110, 97, 109, 2, 101, 105, 0, 117, 5, 1, 2, 195, 169, 109, 32, 0, 5,
-			3, 2, 32, 17, 67, 3, 81, 10, 0, 5, 1, 8, 2, 32, 3, 81, 36, 0, 4, 117, 1, 97, 2, 101, 110, 116, 3, 81, 58, 0,
-			117, 1, 97, 120, 110, 101, 2, 101, 0, 117, 1, 105, 2, 105, 100, 97, 100, 101, 0, 117, 1, 105, 114, 101, 118, 97, 2, 101, 0, 117,
-			1, 110, 97, 115, 2, 105, 110, 0, 117, 1, 110, 97, 115, 2, 195, 173, 110, 0, 117, 1, 110, 105, 108, 2, 105, 0, 117, 1, 110, 105,
-			108, 105, 98, 2, 17, 65, 0, 117, 1, 110, 105, 116, 115, 2, 17, 65, 0, 117, 1, 110, 105, 116, 120, 2, 17, 65, 0, 117, 1, 161,
-			195, 120, 110, 101, 2, 18, 67, 32, 0, 117, 5, 1, 1, 110, 2, 17, 65, 0, 117, 8, 97, 115, 2, 105, 0, 117, 8, 105, 114, 105,
-			98, 2, 105, 32, 0, 117, 8, 105, 122, 97, 112, 97, 2, 101, 0, 117, 8, 110, 105, 108, 2, 17, 65, 0, 117, 8, 110, 105, 109, 2,
-			101, 0, 117, 8, 110, 105, 112, 2, 105, 109, 32, 0, 117, 8, 110, 105, 112, 2, 105, 110, 115, 32, 0, 117, 8, 114, 97, 2, 105, 0,
-			5, 3, 2, 17, 66, 3, 81, 124, 0, 2, 17, 71, 3, 90, 0, 4, 5, 1, 8, 2, 32, 31, 3, 90, 36, 0, 8, 2, 32, 0,
-			7, 6, 104, 0, 3, 0, 101, 108, 112, 5, 1, 8, 3, 21, 0, 8, 2, 32, 3, 35, 81, 6, 35, 0, 101, 108, 5, 2, 8, 2,
-			112, 3, 101, 6, 137, 0, 7, 6, 105, 0, 4, 2, 18, 69, 32, 3, 6, 37, 0, 2, 32, 0, 5, 1, 8, 2, 110, 116, 101, 114,
-			110, 0, 5, 2, 2, 114, 116, 111, 110, 32, 0, 5, 2, 8, 118, 2, 107, 105, 110, 103, 0, 108, 5, 2, 2, 116, 111, 110, 32, 3,
-			6, 116, 0, 1, 114, 100, 2, 118, 101, 114, 3, 6, 117, 0, 103, 104, 116, 5, 2, 2, 32, 3, 6, 117, 47, 0, 4, 103, 104, 116,
-			5, 1, 2, 32, 3, 21, 0, 103, 104, 116, 115, 5, 1, 2, 32, 0, 110, 103, 5, 1, 1, 21, 2, 32, 0, 110, 103, 115, 5, 1,
-			1, 21, 2, 32, 0, 4, 3, 37, 0, 1, 108, 17, 67, 0, 1, 114, 17, 67, 0, 2, 97, 0, 2, 101, 0, 2, 108, 104, 12, 0,
-			2, 108, 108, 12, 0, 2, 111, 0, 2, 111, 17, 67, 25, 0, 2, 117, 17, 67, 25, 0, 2, 195, 161, 0, 2, 195, 163, 0, 2, 195,
-			179, 0, 2, 195, 181, 0, 2, 195, 186, 0, 8, 2, 32, 0, 109, 2, 17, 67, 3, 37, 65, 0, 110, 104, 3, 37, 67, 0, 4, 109,
-			2, 32, 3, 37, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 17, 67, 0, 110, 2, 103, 0, 110, 2, 107, 0, 4, 1, 17, 67,
-			17, 67, 161, 195, 2, 17, 65, 32, 3, 57, 0, 1, 17, 67, 17, 67, 162, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 169, 195,
-			2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 170, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 173, 195, 2, 17, 65, 32, 0, 1,
-			17, 67, 17, 67, 179, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 180, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 186, 195,
-			2, 17, 65, 32, 0, 1, 17, 67, 161, 195, 2, 17, 65, 32, 0, 1, 17, 67, 162, 195, 2, 17, 65, 32, 0, 1, 17, 67, 169, 195,
-			2, 17, 65, 32, 0, 1, 17, 67, 170, 195, 2, 17, 65, 32, 0, 1, 17, 67, 173, 195, 2, 17, 65, 32, 0, 1, 17, 67, 179, 195,
-			2, 17, 65, 32, 0, 1, 17, 67, 180, 195, 2, 17, 65, 32, 0, 1, 17, 67, 186, 195, 2, 17, 65, 32, 0, 2, 17, 65, 0, 4,
-			108, 5, 2, 2, 25, 3, 116, 0, 111, 2, 32, 0, 111, 2, 115, 32, 0, 117, 2, 32, 0, 117, 2, 115, 32, 0, 7, 6, 106, 0,
-			3, 90, 0, 8, 2, 32, 3, 90, 6, 110, 47, 132, 0, 5, 3, 2, 32, 17, 67, 3, 90, 10, 0, 5, 3, 2, 17, 66, 3, 90,
-			124, 0, 7, 6, 107, 0, 2, 107, 3, 0, 4, 3, 49, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0, 5, 1, 8, 2, 32, 3,
-			49, 6, 35, 48, 132, 0, 5, 3, 2, 32, 17, 67, 3, 49, 10, 0, 5, 2, 8, 2, 32, 3, 49, 35, 0, 5, 3, 2, 17, 66,
-			3, 49, 124, 0, 7, 6, 108, 0, 1, 108, 3, 0, 8, 2, 32, 3, 6, 109, 55, 112, 0, 3, 55, 0, 104, 5, 2, 3, 55, 57,
-			0, 4, 104, 5, 1, 3, 61, 0, 104, 5, 4, 1, 17, 65, 0, 5, 1, 8, 2, 32, 3, 109, 55, 0, 5, 1, 8, 2, 32, 31,
-			3, 109, 55, 38, 0, 7, 6, 109, 0, 2, 109, 3, 0, 8, 2, 32, 3, 6, 36, 65, 36, 0, 3, 65, 0, 5, 3, 2, 32, 17,
-			67, 3, 65, 10, 0, 5, 3, 2, 17, 66, 3, 65, 124, 0, 5, 1, 8, 2, 32, 3, 109, 65, 0, 5, 1, 8, 2, 32, 31, 3,
-			109, 65, 38, 0, 7, 6, 110, 0, 2, 110, 3, 0, 8, 2, 32, 3, 6, 36, 50, 36, 0, 4, 3, 50, 0, 110, 5, 1, 1, 17,
-			65, 0, 5, 3, 2, 32, 17, 67, 3, 50, 10, 0, 5, 3, 2, 17, 66, 3, 50, 124, 0, 104, 3, 67, 0, 5, 1, 8, 2, 32,
-			3, 109, 50, 0, 5, 1, 8, 2, 32, 31, 3, 109, 50, 38, 0, 7, 6, 111, 0, 1, 120, 101, 108, 102, 2, 114, 17, 65, 32, 3,
-			0, 110, 1, 115, 21, 2, 32, 3, 2, 39, 68, 0, 2, 108, 32, 3, 6, 110, 0, 4, 1, 21, 2, 32, 3, 8, 111, 0, 2, 115,
-			32, 0, 4, 3, 39, 0, 1, 17, 67, 17, 66, 162, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 161, 195, 2, 17, 67, 21, 0,
-			1, 17, 67, 17, 67, 169, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 170, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 173,
-			195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 179, 195, 2, 17, 67, 21, 0, 1, 17, 67, 17, 67, 186, 195, 2, 17, 67, 21, 0,
-			1, 17, 67, 161, 195, 2, 17, 67, 21, 0, 1, 17, 67, 169, 195, 2, 17, 67, 21, 0, 1, 17, 67, 170, 195, 2, 17, 67, 21, 0,
-			1, 17, 67, 173, 195, 2, 17, 67, 21, 0, 1, 17, 67, 179, 195, 2, 17, 67, 21, 0, 1, 17, 67, 180, 195, 2, 17, 67, 21, 0,
-			1, 17, 67, 186, 195, 2, 17, 67, 21, 0, 1, 99, 2, 114, 114, 18, 66, 32, 0, 1, 99, 32, 97, 2, 114, 116, 101, 32, 0, 1,
-			100, 21, 2, 114, 97, 32, 0, 1, 100, 21, 2, 114, 101, 32, 0, 1, 103, 2, 103, 18, 68, 32, 0, 1, 103, 105, 122, 2, 116, 111,
-			32, 0, 1, 105, 114, 2, 114, 101, 32, 0, 1, 108, 2, 114, 101, 32, 0, 1, 109, 2, 114, 114, 18, 66, 32, 0, 1, 109, 2, 118,
-			18, 66, 32, 0, 1, 112, 2, 114, 18, 67, 32, 0, 1, 114, 116, 110, 97, 2, 112, 18, 68, 32, 0, 1, 115, 2, 114, 17, 65, 32,
-			0, 1, 116, 2, 100, 17, 65, 32, 0, 1, 116, 2, 114, 195, 167, 18, 68, 32, 0, 1, 116, 21, 2, 114, 97, 32, 0, 1, 116, 21,
-			2, 114, 101, 32, 0, 1, 118, 2, 114, 101, 32, 0, 2, 105, 17, 67, 25, 0, 2, 108, 117, 101, 109, 32, 0, 2, 109, 97, 32, 0,
-			2, 111, 115, 32, 0, 2, 114, 17, 67, 111, 32, 0, 2, 115, 111, 32, 24, 0, 2, 115, 115, 117, 101, 109, 32, 0, 2, 115, 116, 111,
-			32, 0, 8, 2, 99, 18, 68, 32, 0, 8, 17, 67, 115, 101, 2, 112, 17, 65, 32, 0, 8, 99, 2, 115, 18, 66, 32, 0, 8, 99,
-			115, 101, 100, 2, 115, 18, 66, 32, 0, 8, 102, 2, 18, 70, 32, 0, 8, 102, 2, 18, 72, 32, 0, 8, 102, 2, 100, 18, 66, 32,
-			115, 0, 8, 104, 99, 2, 99, 104, 17, 65, 32, 0, 8, 104, 99, 2, 118, 18, 66, 32, 0, 8, 104, 99, 97, 17, 67, 2, 114, 114,
-			97, 32, 0, 8, 108, 97, 115, 2, 98, 114, 18, 68, 32, 0, 8, 108, 99, 101, 2, 100, 18, 68, 32, 0, 8, 108, 112, 109, 105, 2,
-			100, 18, 68, 32, 0, 8, 108, 112, 120, 101, 2, 100, 18, 68, 32, 0, 8, 109, 2, 99, 104, 17, 65, 32, 0, 8, 109, 117, 21, 2,
-			114, 101, 32, 0, 8, 114, 97, 17, 70, 2, 116, 18, 68, 32, 0, 8, 114, 99, 115, 101, 2, 116, 18, 68, 32, 0, 8, 114, 114, 97,
-			98, 2, 99, 18, 68, 32, 0, 8, 115, 98, 97, 2, 114, 118, 18, 66, 32, 0, 8, 116, 2, 108, 18, 68, 32, 0, 8, 118, 110, 101,
-			2, 108, 116, 18, 68, 32, 0, 4, 108, 5, 2, 2, 17, 66, 3, 39, 58, 0, 111, 5, 1, 1, 17, 67, 2, 32, 0, 117, 0, 109,
-			2, 17, 67, 3, 39, 65, 0, 110, 104, 3, 39, 67, 0, 4, 109, 2, 32, 3, 39, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2,
-			25, 0, 4, 5, 1, 1, 102, 2, 114, 109, 97, 116, 3, 40, 0, 5, 1, 1, 102, 2, 114, 109, 117, 108, 195, 161, 0, 5, 1, 1,
-			114, 112, 2, 102, 0, 5, 1, 1, 114, 114, 101, 116, 110, 105, 2, 103, 0, 5, 1, 8, 17, 67, 2, 17, 67, 17, 65, 17, 67, 17,
-			65, 17, 67, 0, 5, 1, 8, 112, 2, 114, 116, 117, 17, 67, 0, 5, 1, 8, 115, 2, 108, 117, 0, 8, 2, 32, 17, 65, 0, 4,
-			115, 5, 2, 8, 118, 2, 32, 17, 65, 3, 40, 88, 0, 115, 5, 2, 8, 118, 2, 32, 17, 70, 0, 115, 5, 2, 8, 118, 2, 32,
-			3, 40, 89, 0, 4, 1, 17, 67, 2, 112, 18, 69, 32, 3, 110, 0, 1, 98, 2, 114, 18, 69, 32, 0, 1, 98, 109, 101, 2, 108,
-			115, 18, 69, 32, 0, 1, 102, 2, 114, 106, 111, 32, 0, 1, 102, 2, 114, 109, 18, 68, 32, 0, 1, 109, 2, 108, 104, 18, 69, 32,
-			0, 1, 112, 21, 2, 114, 116, 18, 68, 32, 0, 1, 114, 110, 101, 2, 115, 99, 18, 68, 32, 0, 1, 114, 110, 101, 2, 115, 113, 117,
-			18, 67, 32, 0, 1, 114, 112, 2, 118, 18, 68, 32, 0, 1, 114, 116, 2, 195, 167, 18, 68, 32, 0, 2, 98, 114, 18, 69, 32, 0,
-			2, 99, 18, 69, 32, 0, 2, 99, 104, 18, 69, 32, 0, 2, 100, 18, 69, 32, 0, 2, 103, 18, 69, 32, 0, 2, 103, 32, 0, 2,
-			103, 115, 32, 0, 2, 106, 18, 69, 32, 0, 2, 108, 18, 69, 32, 0, 2, 108, 100, 18, 69, 32, 0, 2, 108, 104, 18, 67, 32, 0,
-			2, 108, 116, 18, 69, 32, 0, 2, 108, 118, 18, 67, 32, 0, 2, 112, 32, 0, 2, 113, 117, 18, 67, 32, 0, 2, 114, 17, 67, 18,
-			69, 32, 0, 2, 114, 18, 69, 32, 0, 2, 114, 100, 101, 110, 115, 32, 0, 2, 115, 18, 69, 32, 0, 2, 115, 115, 18, 69, 32, 0,
-			2, 115, 116, 18, 69, 32, 0, 2, 115, 116, 114, 18, 69, 32, 0, 2, 116, 18, 69, 32, 0, 2, 118, 17, 65, 109, 32, 0, 2, 118,
-			97, 32, 0, 2, 118, 101, 17, 67, 115, 32, 0, 2, 118, 101, 32, 0, 2, 122, 101, 32, 0, 5, 1, 8, 2, 17, 67, 0, 5, 2,
-			2, 120, 32, 0, 5, 2, 2, 122, 32, 0, 8, 2, 108, 104, 18, 69, 32, 0, 8, 2, 112, 116, 18, 69, 32, 0, 8, 21, 97, 109,
-			2, 114, 32, 0, 8, 98, 115, 101, 2, 195, 167, 18, 66, 32, 0, 8, 99, 2, 115, 112, 18, 67, 32, 0, 8, 99, 2, 195, 167, 18,
-			68, 32, 0, 8, 100, 97, 2, 114, 18, 69, 32, 0, 8, 100, 97, 2, 195, 167, 18, 68, 32, 0, 8, 100, 101, 114, 2, 18, 70, 32,
-			0, 8, 100, 110, 101, 2, 195, 167, 18, 68, 32, 0, 8, 100, 111, 116, 114, 111, 2, 120, 18, 68, 32, 0, 8, 102, 2, 108, 103, 18,
-			69, 32, 0, 8, 102, 97, 2, 98, 18, 69, 32, 0, 8, 102, 97, 2, 102, 18, 69, 32, 0, 8, 103, 2, 122, 18, 69, 32, 0, 8,
-			108, 2, 103, 114, 18, 69, 32, 0, 8, 108, 97, 2, 112, 114, 18, 69, 32, 0, 8, 108, 102, 101, 100, 2, 114, 18, 67, 32, 0, 8,
-			108, 103, 110, 101, 2, 98, 18, 69, 32, 0, 8, 108, 112, 109, 105, 2, 114, 18, 67, 32, 0, 8, 109, 2, 102, 18, 66, 32, 0, 8,
-			109, 2, 102, 18, 67, 32, 0, 8, 109, 108, 97, 2, 195, 167, 18, 66, 32, 0, 8, 110, 101, 109, 114, 111, 112, 2, 18, 70, 32, 0,
-			8, 110, 115, 101, 2, 98, 18, 69, 32, 0, 8, 112, 109, 101, 2, 108, 103, 18, 69, 32, 0, 8, 112, 109, 101, 2, 195, 167, 18, 68,
-			32, 0, 8, 114, 2, 115, 110, 18, 69, 32, 0, 8, 114, 2, 195, 167, 18, 68, 32, 0, 8, 114, 110, 101, 2, 108, 104, 18, 68, 32,
-			0, 8, 114, 114, 97, 2, 108, 104, 18, 68, 32, 0, 8, 115, 2, 98, 18, 67, 32, 0, 8, 115, 2, 102, 114, 18, 67, 32, 0, 8,
-			115, 2, 112, 114, 18, 69, 32, 0, 8, 115, 115, 97, 2, 112, 114, 18, 69, 32, 0, 8, 118, 97, 112, 97, 2, 114, 18, 67, 32, 0,
-			8, 118, 101, 100, 2, 114, 18, 67, 32, 0, 114, 116, 111, 115, 2, 32, 3, 110, 16, 14, 47, 8, 111, 138, 0, 118, 111, 115, 2, 32,
-			3, 110, 84, 8, 111, 138, 0, 115, 115, 111, 115, 2, 32, 3, 110, 89, 8, 111, 138, 0, 115, 116, 111, 115, 1, 112, 2, 32, 3, 110,
-			89, 47, 8, 111, 138, 0, 122, 5, 1, 2, 32, 3, 110, 138, 0, 4, 1, 108, 32, 17, 65, 2, 32, 3, 111, 0, 1, 173, 195, 2,
-			17, 67, 17, 65, 0, 8, 2, 32, 17, 67, 0, 111, 2, 17, 67, 32, 0, 4, 115, 5, 2, 8, 2, 32, 17, 65, 3, 111, 88, 0,
-			115, 5, 2, 8, 2, 32, 17, 70, 0, 115, 5, 2, 8, 2, 32, 3, 111, 89, 0, 4, 105, 3, 120, 0, 105, 2, 28, 18, 12, 12,
-			0, 105, 2, 115, 0, 105, 8, 17, 67, 2, 99, 101, 32, 0, 4, 105, 2, 28, 17, 3, 136, 0, 105, 2, 97, 32, 0, 105, 2, 99,
-			17, 65, 32, 0, 105, 2, 100, 101, 32, 0, 105, 8, 98, 2, 18, 69, 32, 0, 105, 8, 112, 97, 2, 18, 66, 32, 0, 105, 8, 112,
-			97, 2, 18, 67, 32, 0, 121, 0, 7, 6, 112, 0, 2, 112, 3, 0, 4, 3, 48, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0,
-			5, 3, 2, 32, 17, 67, 3, 48, 10, 0, 8, 2, 32, 3, 48, 36, 0, 114, 195, 161, 120, 105, 115, 5, 2, 8, 2, 32, 3, 48,
-			51, 6, 35, 49, 89, 37, 89, 0, 108, 97, 121, 3, 48, 55, 6, 118, 0, 5, 3, 2, 17, 66, 3, 48, 124, 0, 104, 3, 83, 0,
-			7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 17, 71, 0, 117, 101, 105, 5, 1, 8, 2, 17, 67, 3, 49, 6, 118, 0, 4, 8, 2,
-			32, 3, 49, 36, 0, 117, 101, 5, 1, 1, 17, 65, 2, 110, 17, 65, 32, 0, 117, 101, 5, 1, 2, 108, 0, 117, 101, 5, 1, 8,
-			0, 117, 101, 5, 2, 1, 32, 114, 111, 112, 2, 32, 0, 117, 195, 170, 5, 1, 1, 17, 67, 2, 32, 0, 117, 101, 195, 167, 5, 1,
-			3, 49, 36, 89, 0, 117, 105, 5, 1, 3, 49, 37, 0, 4, 117, 2, 25, 3, 49, 40, 0, 117, 8, 2, 105, 110, 100, 101, 0, 117,
-			111, 5, 1, 8, 3, 49, 40, 39, 0, 4, 117, 3, 49, 58, 0, 117, 1, 17, 65, 2, 105, 100, 97, 100, 101, 32, 0, 117, 1, 101,
-			2, 101, 115, 116, 114, 0, 117, 1, 101, 100, 97, 2, 101, 0, 117, 1, 101, 114, 102, 2, 101, 110, 116, 0, 117, 1, 101, 115, 2, 101,
-			110, 0, 117, 1, 101, 115, 101, 2, 195, 173, 118, 0, 117, 1, 110, 2, 101, 110, 0, 117, 1, 110, 97, 114, 116, 2, 105, 108, 0, 117,
-			1, 111, 108, 2, 101, 110, 0, 117, 5, 2, 1, 105, 108, 2, 105, 100, 0, 117, 5, 2, 1, 173, 195, 108, 2, 105, 100, 0, 117, 8,
-			2, 105, 110, 113, 117, 0, 117, 8, 97, 2, 195, 173, 102, 101, 114, 111, 32, 0, 117, 8, 101, 2, 105, 110, 0, 117, 8, 101, 115, 2,
-			101, 108, 0, 195, 188, 0, 117, 195, 170, 110, 1, 21, 3, 49, 58, 6, 118, 68, 0, 117, 97, 5, 1, 8, 3, 49, 58, 35, 0, 117,
-			101, 5, 1, 2, 114, 32, 3, 49, 109, 0, 4, 117, 101, 5, 2, 1, 32, 114, 111, 112, 2, 32, 195, 169, 3, 49, 112, 0, 117, 101,
-			8, 2, 32, 0, 5, 3, 2, 17, 66, 3, 49, 124, 0, 7, 6, 114, 0, 5, 1, 8, 2, 32, 3, 6, 109, 34, 34, 0, 5, 1,
-			8, 2, 32, 31, 3, 6, 109, 34, 34, 38, 0, 8, 2, 32, 3, 6, 109, 101, 36, 0, 4, 3, 16, 0, 1, 17, 65, 2, 17, 65,
-			0, 2, 32, 17, 65, 0, 2, 32, 104, 0, 2, 17, 67, 3, 16, 14, 0, 2, 32, 3, 34, 0, 5, 1, 1, 17, 65, 2, 32, 3,
-			44, 0, 1, 17, 67, 2, 17, 65, 3, 51, 0, 4, 1, 108, 2, 17, 65, 3, 101, 0, 1, 110, 2, 12, 0, 1, 115, 0, 8, 0,
-			114, 0, 8, 2, 32, 36, 3, 101, 36, 6, 114, 0, 7, 6, 115, 0, 5, 2, 8, 2, 32, 3, 6, 109, 89, 112, 0, 115, 105, 111,
-			110, 5, 1, 2, 32, 3, 21, 0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 0, 1, 17, 65, 2, 32, 17, 65, 14, 128, 128, 129, 0,
-			1, 110, 97, 114, 116, 2, 17, 65, 0, 2, 17, 70, 0, 5, 36, 1, 17, 65, 2, 32, 17, 70, 14, 128, 128, 129, 0, 5, 36, 1,
-			21, 2, 32, 17, 70, 0, 8, 110, 162, 195, 114, 116, 2, 105, 116, 111, 32, 0, 114, 3, 88, 101, 0, 4, 3, 89, 0, 1, 17, 65,
-			2, 32, 14, 128, 128, 129, 0, 1, 101, 115, 101, 2, 32, 0, 2, 119, 12, 0, 99, 2, 17, 71, 0, 115, 0, 115, 5, 1, 1, 17,
-			65, 0, 195, 167, 0, 111, 98, 114, 101, 8, 2, 21, 14, 128, 132, 133, 3, 89, 39, 71, 16, 36, 0, 4, 5, 1, 1, 17, 65, 2,
-			17, 70, 12, 3, 90, 0, 5, 1, 1, 17, 65, 2, 32, 17, 70, 12, 14, 128, 128, 129, 0, 104, 3, 91, 0, 5, 1, 8, 2, 32,
-			3, 109, 89, 0, 5, 1, 8, 2, 32, 31, 3, 109, 89, 38, 0, 5, 4, 8, 2, 17, 67, 3, 124, 89, 0, 4, 5, 1, 1, 17,
-			65, 2, 17, 67, 3, 138, 0, 5, 1, 1, 17, 65, 2, 32, 25, 14, 128, 128, 129, 0, 5, 1, 1, 21, 2, 32, 0, 5, 2, 2,
-			32, 0, 7, 6, 116, 0, 2, 116, 3, 0, 4, 104, 5, 1, 3, 21, 0, 105, 111, 110, 5, 1, 2, 32, 0, 3, 47, 0, 5, 3,
-			2, 32, 17, 67, 3, 47, 10, 0, 8, 2, 32, 3, 47, 36, 0, 4, 5, 2, 2, 101, 32, 3, 76, 0, 5, 2, 2, 105, 0, 5,
-			2, 2, 195, 173, 0, 101, 5, 2, 1, 17, 65, 2, 111, 32, 3, 76, 57, 0, 5, 3, 2, 17, 66, 3, 76, 124, 0, 7, 6, 117,
-			0, 1, 103, 2, 17, 71, 3, 0, 2, 18, 69, 32, 3, 6, 40, 0, 105, 8, 109, 2, 116, 17, 65, 32, 3, 6, 58, 37, 68, 0,
-			105, 2, 32, 3, 6, 121, 0, 4, 3, 40, 0, 1, 114, 2, 17, 65, 0, 1, 114, 2, 32, 17, 65, 0, 2, 97, 0, 2, 101, 17,
-			67, 0, 2, 101, 105, 0, 2, 105, 17, 67, 25, 0, 2, 108, 104, 12, 0, 2, 108, 108, 12, 0, 2, 195, 169, 17, 67, 0, 2, 195,
-			173, 17, 67, 0, 8, 2, 32, 0, 108, 2, 25, 3, 40, 58, 0, 4, 1, 103, 2, 97, 12, 3, 58, 0, 1, 113, 2, 97, 12, 0,
-			2, 17, 65, 0, 2, 32, 17, 65, 0, 2, 105, 117, 0, 4, 105, 3, 121, 0, 121, 0, 109, 2, 17, 67, 3, 128, 65, 0, 110, 104,
-			3, 128, 67, 0, 4, 109, 2, 32, 3, 128, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 25, 0, 7, 6, 118, 0, 2, 118, 3,
-			0, 3, 84, 0, 5, 3, 2, 32, 17, 67, 3, 84, 10, 0, 5, 3, 2, 17, 66, 3, 84, 124, 0, 7, 6, 119, 0, 5, 1, 2,
-			32, 3, 21, 0, 5, 4, 8, 3, 40, 0, 3, 58, 0, 5, 2, 8, 2, 32, 3, 72, 6, 35, 71, 55, 57, 40, 0, 5, 1, 8,
-			2, 32, 3, 72, 6, 132, 71, 55, 4, 37, 40, 0, 7, 6, 120, 0, 2, 115, 3, 0, 4, 1, 17, 65, 2, 17, 65, 3, 49, 89,
-			0, 1, 101, 2, 17, 65, 0, 2, 32, 0, 5, 2, 8, 101, 104, 2, 17, 65, 0, 8, 101, 110, 105, 2, 111, 114, 17, 65, 17, 67,
-			0, 8, 111, 2, 105, 0, 8, 111, 2, 195, 173, 0, 8, 114, 97, 109, 0, 4, 2, 195, 179, 32, 3, 88, 0, 8, 101, 2, 17, 65,
-			0, 8, 101, 104, 2, 17, 65, 0, 8, 101, 110, 105, 2, 17, 65, 0, 8, 101, 111, 99, 2, 17, 65, 0, 8, 170, 195, 2, 17, 65,
-			0, 4, 1, 17, 65, 114, 112, 2, 105, 3, 89, 0, 1, 161, 195, 109, 2, 105, 109, 0, 2, 17, 67, 0, 8, 111, 114, 112, 2, 105,
-			109, 17, 65, 0, 8, 117, 97, 0, 8, 117, 111, 114, 116, 2, 101, 0, 8, 117, 111, 114, 116, 2, 195, 169, 114, 0, 99, 2, 17, 71,
-			0, 4, 1, 17, 65, 114, 98, 2, 17, 65, 3, 91, 0, 1, 17, 65, 120, 2, 17, 65, 0, 1, 17, 71, 98, 2, 17, 65, 0, 1,
-			97, 2, 97, 0, 1, 97, 2, 97, 114, 0, 1, 97, 2, 101, 105, 0, 1, 97, 2, 195, 161, 0, 1, 97, 108, 101, 114, 2, 17, 65,
-			0, 1, 97, 114, 103, 2, 17, 65, 0, 1, 101, 108, 97, 2, 97, 0, 1, 101, 109, 2, 17, 65, 0, 1, 105, 97, 2, 17, 65, 0,
-			1, 105, 101, 2, 17, 65, 0, 1, 105, 112, 2, 17, 65, 0, 1, 105, 114, 2, 17, 65, 0, 1, 105, 117, 113, 2, 17, 65, 0, 1,
-			111, 109, 2, 97, 0, 1, 117, 2, 105, 0, 1, 117, 97, 98, 2, 17, 65, 0, 1, 117, 111, 2, 12, 0, 1, 117, 112, 2, 17, 65,
-			0, 2, 17, 65, 0, 2, 17, 65, 120, 17, 65, 0, 2, 105, 113, 117, 0, 5, 1, 1, 101, 2, 17, 67, 17, 65, 0, 5, 1, 1,
-			105, 2, 97, 32, 0, 5, 1, 1, 105, 2, 97, 115, 32, 0, 8, 17, 65, 114, 100, 115, 101, 2, 117, 108, 0, 8, 97, 99, 2, 17,
-			65, 0, 8, 97, 99, 97, 98, 97, 2, 105, 0, 8, 97, 102, 2, 105, 0, 8, 97, 114, 112, 2, 17, 65, 0, 8, 97, 116, 2, 101,
-			0, 8, 101, 2, 117, 32, 0, 8, 101, 108, 102, 2, 97, 0, 8, 101, 116, 2, 117, 103, 111, 32, 0, 8, 101, 118, 2, 17, 65, 0,
-			8, 101, 118, 97, 2, 17, 65, 0, 8, 105, 108, 2, 17, 65, 0, 8, 105, 116, 114, 97, 103, 97, 108, 2, 17, 65, 0, 8, 105, 120,
-			2, 17, 65, 0, 8, 111, 2, 17, 65, 0, 8, 111, 99, 2, 17, 65, 0, 8, 111, 114, 2, 17, 65, 0, 8, 111, 114, 112, 2, 17,
-			65, 0, 8, 111, 114, 114, 97, 2, 101, 0, 8, 117, 98, 2, 111, 32, 0, 8, 117, 108, 2, 17, 65, 0, 8, 169, 195, 109, 2, 105,
-			0, 111, 8, 101, 112, 2, 116, 111, 32, 3, 91, 39, 0, 7, 6, 121, 0, 2, 32, 3, 2, 37, 0, 5, 1, 8, 2, 32, 3, 6,
-			37, 48, 89, 4, 37, 55, 110, 68, 0, 5, 2, 8, 2, 32, 3, 6, 37, 48, 89, 37, 55, 39, 68, 0, 3, 37, 0, 2, 17, 65,
-			3, 57, 0, 7, 6, 122, 0, 2, 122, 3, 0, 4, 3, 88, 0, 1, 21, 2, 32, 17, 65, 0, 1, 21, 2, 32, 17, 70, 0, 5,
-			3, 2, 32, 17, 67, 3, 88, 10, 0, 8, 2, 32, 3, 88, 36, 0, 5, 3, 2, 17, 66, 3, 88, 124, 0, 5, 2, 1, 21, 2,
-			32, 3, 89, 0, 4, 5, 1, 1, 17, 65, 2, 17, 70, 12, 3, 90, 0, 5, 1, 1, 17, 65, 2, 32, 17, 70, 12, 0, 4, 5,
-			1, 1, 17, 65, 2, 17, 67, 3, 91, 0, 5, 1, 1, 17, 65, 2, 32, 17, 67, 0, 5, 1, 1, 21, 2, 32, 0, 122, 8, 105,
-			112, 2, 97, 3, 123, 0, 7, 6, 0, 36, 8, 32, 114, 3, 0, 194, 170, 1, 32, 15, 3, 2, 35, 0, 194, 186, 1, 32, 15, 3,
-			2, 39, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 188, 3, 40, 0, 4,
-			45, 1, 32, 15, 2, 32, 15, 3, 65, 6, 36, 50, 111, 89, 0, 45, 8, 32, 2, 32, 15, 0, 44, 2, 15, 3, 84, 6, 37, 34,
-			81, 40, 55, 132, 0, 4, 195, 159, 3, 89, 0, 195, 167, 0, 36, 3, 89, 37, 83, 51, 6, 130, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts54 = FileInMemory_createWithData (24985, reinterpret_cast<const char *> (&espeakdata_dicts54_data), 
-			U"espeak-1.48.04-source/espeak-data/pt_dict", 
+			2, 116, 97, 3, 6, 109, 0, 5, 1, 1, 110, 2, 116, 0, 5, 1, 2, 108, 32, 0, 5, 1, 2, 108, 97, 32, 0, 99, 195, 167,
+			5, 1, 1, 17, 67, 3, 6, 109, 6, 89, 0, 4, 5, 2, 1, 108, 10, 2, 32, 17, 65, 24, 3, 8, 37, 0, 5, 2, 1, 114,
+			10, 2, 32, 17, 65, 24, 0, 4, 2, 32, 3, 8, 112, 0, 2, 115, 32, 0, 4, 109, 2, 32, 3, 8, 118, 68, 0, 109, 2, 115,
+			32, 0, 110, 2, 32, 0, 110, 2, 115, 32, 0, 4, 5, 1, 2, 32, 105, 24, 3, 8, 135, 0, 5, 2, 2, 32, 17, 65, 24, 0,
+			4, 3, 36, 0, 1, 100, 101, 2, 114, 17, 65, 109, 32, 0, 1, 100, 111, 112, 2, 114, 17, 65, 32, 0, 1, 104, 2, 103, 17, 65,
+			32, 0, 1, 104, 2, 103, 17, 65, 109, 32, 0, 1, 110, 17, 65, 2, 116, 17, 65, 32, 0, 1, 114, 2, 99, 104, 111, 32, 0, 1,
+			116, 2, 118, 101, 32, 0, 1, 122, 97, 103, 2, 116, 97, 32, 0, 2, 105, 17, 67, 25, 0, 2, 108, 104, 12, 0, 2, 108, 111, 32,
+			0, 2, 117, 17, 67, 25, 0, 2, 118, 105, 32, 0, 2, 118, 195, 170, 32, 0, 8, 100, 97, 112, 2, 195, 167, 18, 68, 32, 0, 8,
+			100, 101, 98, 111, 2, 195, 167, 18, 68, 32, 0, 8, 100, 105, 97, 118, 110, 101, 2, 195, 167, 18, 68, 32, 0, 8, 102, 2, 114, 118,
+			18, 68, 32, 0, 8, 104, 110, 111, 99, 101, 114, 2, 195, 167, 18, 68, 32, 0, 8, 108, 101, 98, 109, 101, 2, 122, 18, 66, 32, 0,
+			8, 109, 2, 116, 18, 68, 32, 0, 8, 109, 98, 117, 115, 2, 116, 18, 68, 32, 0, 8, 109, 101, 114, 2, 116, 18, 68, 32, 0, 8,
+			109, 111, 99, 2, 116, 18, 68, 32, 0, 8, 109, 111, 114, 112, 2, 116, 18, 68, 32, 0, 8, 109, 111, 114, 112, 109, 111, 99, 2, 116,
+			18, 68, 32, 0, 8, 111, 100, 97, 2, 195, 167, 18, 68, 32, 0, 8, 114, 97, 99, 2, 195, 167, 18, 68, 32, 0, 8, 114, 97, 108,
+			99, 115, 101, 2, 195, 167, 18, 68, 32, 0, 8, 114, 97, 112, 97, 101, 114, 2, 195, 167, 18, 68, 32, 0, 8, 114, 97, 112, 97, 115,
+			101, 100, 2, 195, 167, 18, 68, 32, 0, 8, 114, 97, 112, 109, 111, 99, 2, 195, 167, 18, 68, 32, 0, 8, 114, 99, 115, 101, 2, 118,
+			18, 68, 32, 0, 8, 114, 99, 115, 101, 100, 2, 118, 18, 68, 32, 0, 8, 114, 101, 102, 111, 2, 195, 167, 18, 68, 32, 0, 8, 114,
+			101, 109, 2, 195, 167, 18, 68, 32, 0, 8, 114, 101, 112, 2, 195, 167, 18, 68, 32, 0, 8, 114, 114, 101, 100, 2, 116, 18, 68, 32,
+			0, 8, 114, 114, 111, 98, 97, 2, 195, 167, 18, 68, 32, 0, 8, 114, 116, 97, 2, 118, 18, 68, 32, 0, 8, 116, 110, 111, 99, 97,
+			2, 195, 167, 18, 66, 32, 0, 8, 117, 113, 97, 2, 195, 167, 18, 68, 32, 0, 8, 117, 113, 97, 114, 102, 110, 101, 2, 195, 167, 18,
+			68, 32, 0, 8, 117, 113, 105, 114, 110, 101, 2, 195, 167, 18, 68, 32, 0, 8, 117, 113, 115, 101, 2, 195, 167, 18, 68, 32, 0, 8,
+			118, 110, 105, 2, 114, 116, 18, 68, 32, 0, 101, 120, 8, 114, 2, 17, 65, 3, 36, 36, 88, 0, 110, 104, 3, 36, 67, 0, 4, 5,
+			1, 1, 17, 67, 2, 97, 3, 37, 0, 5, 1, 1, 17, 67, 2, 195, 163, 0, 5, 1, 1, 17, 67, 2, 195, 186, 0, 5, 1, 2,
+			101, 0, 5, 1, 8, 2, 102, 0, 5, 1, 8, 110, 2, 110, 104, 117, 0, 5, 1, 1, 163, 195, 17, 67, 3, 57, 0, 115, 5, 1,
+			8, 2, 17, 67, 21, 21, 3, 91, 0, 4, 1, 98, 105, 2, 114, 17, 65, 32, 3, 109, 0, 1, 98, 105, 2, 114, 17, 65, 109, 32,
+			0, 1, 100, 2, 114, 17, 65, 32, 0, 1, 100, 2, 114, 17, 65, 109, 32, 0, 1, 105, 2, 114, 32, 0, 1, 106, 2, 116, 17, 65,
+			32, 0, 1, 106, 2, 116, 17, 65, 109, 32, 0, 1, 109, 2, 114, 17, 65, 32, 0, 1, 112, 115, 2, 114, 17, 65, 32, 0, 1, 112,
+			115, 2, 114, 17, 65, 109, 32, 0, 1, 115, 21, 2, 114, 17, 65, 32, 0, 1, 115, 21, 2, 114, 17, 65, 109, 32, 0, 1, 115, 21,
+			2, 114, 32, 0, 1, 117, 2, 114, 32, 0, 1, 117, 113, 2, 98, 114, 18, 69, 32, 0, 1, 118, 2, 108, 104, 17, 65, 32, 0, 1,
+			118, 105, 2, 114, 17, 65, 109, 32, 0, 2, 98, 101, 32, 0, 2, 98, 101, 109, 32, 0, 2, 99, 97, 32, 0, 2, 99, 101, 32, 0,
+			2, 99, 101, 109, 32, 0, 2, 99, 104, 17, 65, 32, 0, 2, 99, 104, 17, 65, 109, 32, 0, 2, 99, 108, 17, 65, 32, 0, 2, 99,
+			108, 17, 65, 109, 32, 0, 2, 99, 111, 32, 0, 2, 99, 116, 17, 65, 32, 0, 2, 99, 116, 17, 65, 109, 32, 0, 2, 100, 101, 32,
+			0, 2, 100, 101, 109, 32, 0, 2, 102, 97, 32, 0, 2, 103, 17, 65, 32, 0, 2, 103, 17, 65, 109, 32, 0, 2, 103, 114, 17, 65,
+			32, 0, 2, 103, 114, 17, 65, 109, 32, 0, 2, 103, 117, 101, 32, 0, 2, 103, 117, 101, 109, 32, 0, 2, 108, 17, 65, 32, 0, 2,
+			108, 17, 65, 109, 32, 0, 2, 114, 103, 17, 65, 32, 0, 2, 114, 103, 17, 65, 109, 32, 0, 2, 114, 110, 17, 65, 32, 0, 2, 114,
+			110, 17, 65, 109, 32, 0, 2, 114, 114, 17, 65, 32, 0, 2, 114, 114, 17, 65, 109, 32, 0, 2, 114, 114, 17, 65, 115, 32, 0, 2,
+			114, 115, 17, 65, 32, 0, 2, 114, 115, 17, 65, 109, 32, 0, 2, 114, 116, 17, 65, 32, 0, 2, 114, 116, 17, 65, 109, 32, 0, 2,
+			114, 118, 17, 65, 32, 0, 2, 114, 118, 17, 65, 109, 32, 0, 2, 115, 101, 32, 0, 2, 115, 101, 109, 32, 0, 2, 115, 115, 17, 65,
+			32, 0, 2, 115, 115, 17, 65, 109, 32, 0, 2, 115, 116, 17, 65, 32, 0, 2, 115, 116, 17, 65, 109, 32, 0, 2, 115, 116, 114, 17,
+			65, 32, 0, 2, 116, 17, 65, 32, 0, 2, 116, 17, 65, 109, 32, 0, 2, 118, 17, 65, 32, 0, 2, 118, 17, 65, 109, 32, 0, 2,
+			120, 17, 65, 32, 0, 2, 120, 17, 65, 109, 32, 0, 2, 120, 32, 0, 2, 195, 167, 17, 65, 32, 0, 2, 195, 167, 17, 65, 109, 32,
+			0, 5, 2, 8, 110, 2, 116, 0, 8, 2, 32, 0, 8, 98, 117, 111, 115, 2, 18, 70, 32, 0, 8, 99, 101, 100, 2, 112, 18, 69,
+			32, 0, 8, 103, 2, 114, 18, 69, 32, 0, 8, 103, 97, 120, 101, 2, 18, 70, 32, 0, 8, 108, 111, 115, 2, 116, 114, 18, 68, 32,
+			0, 8, 109, 2, 115, 99, 108, 18, 69, 32, 0, 8, 112, 2, 115, 99, 18, 68, 32, 0, 8, 112, 111, 2, 114, 18, 69, 32, 0, 8,
+			112, 115, 111, 104, 2, 100, 18, 68, 32, 0, 8, 114, 112, 2, 122, 18, 69, 32, 0, 8, 116, 108, 97, 2, 114, 18, 69, 32, 0, 8,
+			117, 113, 2, 114, 18, 69, 32, 0, 8, 118, 110, 105, 2, 106, 18, 69, 32, 0, 8, 118, 117, 111, 104, 2, 18, 70, 32, 0, 8, 122,
+			105, 102, 2, 18, 70, 32, 0, 4, 5, 1, 1, 99, 2, 114, 101, 97, 3, 112, 0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 65,
+			0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 67, 17, 65, 17, 65, 0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 67, 17, 65,
+			17, 67, 0, 5, 1, 1, 100, 2, 17, 67, 17, 65, 17, 67, 17, 67, 0, 5, 1, 1, 100, 2, 17, 67, 17, 67, 17, 65, 17, 65,
+			0, 5, 1, 1, 100, 2, 17, 67, 17, 67, 17, 65, 17, 67, 17, 65, 0, 5, 1, 1, 100, 2, 17, 67, 17, 67, 17, 65, 17, 67,
+			17, 67, 17, 65, 0, 5, 1, 1, 100, 2, 102, 105, 99, 105, 0, 5, 1, 1, 112, 2, 115, 115, 111, 97, 0, 5, 1, 1, 114, 2,
+			99, 111, 114, 0, 5, 1, 1, 114, 2, 108, 117, 122, 0, 5, 1, 1, 114, 2, 115, 109, 117, 110, 103, 0, 5, 1, 1, 114, 2, 115,
+			115, 0, 5, 1, 1, 114, 2, 118, 101, 108, 0, 5, 1, 1, 114, 2, 118, 111, 108, 118, 0, 5, 1, 1, 114, 112, 2, 99, 105, 115,
+			0, 5, 1, 1, 114, 112, 2, 102, 0, 5, 1, 8, 100, 2, 102, 105, 110, 105, 0, 5, 1, 8, 100, 2, 115, 108, 105, 103, 0, 5,
+			1, 8, 100, 2, 115, 108, 111, 99, 0, 5, 1, 8, 102, 2, 99, 104, 0, 5, 1, 8, 102, 2, 114, 114, 97, 109, 101, 110, 116, 97,
+			0, 5, 1, 8, 112, 2, 114, 99, 101, 110, 116, 97, 103, 0, 5, 1, 8, 112, 2, 115, 113, 117, 0, 5, 1, 8, 114, 2, 99, 105,
+			99, 108, 0, 5, 1, 8, 116, 2, 114, 109, 105, 110, 0, 5, 1, 8, 118, 2, 108, 111, 99, 105, 0, 4, 117, 3, 115, 0, 117, 2,
+			115, 0, 4, 105, 3, 118, 0, 105, 2, 115, 0, 121, 0, 109, 2, 17, 67, 3, 118, 65, 0, 110, 2, 25, 3, 118, 68, 0, 4, 105,
+			2, 28, 17, 3, 119, 0, 105, 8, 114, 116, 115, 101, 2, 18, 68, 32, 0, 108, 5, 2, 2, 25, 3, 137, 0, 7, 6, 102, 0, 2,
+			102, 3, 0, 8, 2, 32, 3, 6, 109, 83, 36, 0, 3, 83, 0, 5, 3, 2, 32, 17, 67, 3, 83, 10, 0, 5, 3, 2, 17, 66,
+			3, 83, 124, 0, 5, 1, 8, 2, 32, 3, 109, 83, 0, 5, 1, 8, 2, 32, 31, 3, 109, 83, 38, 0, 7, 6, 103, 0, 2, 103,
+			3, 0, 4, 3, 81, 0, 117, 2, 17, 71, 0, 117, 5, 1, 1, 110, 97, 109, 2, 101, 105, 0, 117, 5, 1, 2, 195, 169, 109, 32,
+			0, 5, 3, 2, 32, 17, 67, 3, 81, 10, 0, 5, 1, 8, 2, 32, 3, 81, 36, 0, 117, 5, 1, 1, 110, 2, 17, 65, 3, 81,
+			58, 0, 117, 101, 110, 5, 1, 2, 17, 67, 3, 81, 58, 6, 118, 68, 0, 5, 3, 2, 17, 66, 3, 81, 124, 0, 2, 17, 71, 3,
+			90, 0, 4, 5, 1, 8, 2, 32, 31, 3, 90, 36, 0, 8, 2, 32, 0, 7, 6, 104, 0, 3, 0, 8, 2, 32, 3, 35, 81, 6,
+			35, 0, 7, 6, 105, 0, 4, 2, 17, 65, 32, 3, 6, 37, 0, 2, 32, 0, 2, 97, 109, 32, 0, 5, 1, 8, 2, 110, 116, 101,
+			114, 110, 0, 4, 110, 103, 5, 1, 1, 21, 2, 32, 3, 21, 0, 110, 103, 115, 5, 1, 1, 21, 2, 32, 0, 4, 3, 37, 0, 1,
+			108, 17, 67, 0, 1, 114, 17, 67, 0, 2, 108, 104, 12, 0, 2, 111, 0, 2, 111, 17, 67, 25, 0, 2, 117, 17, 67, 25, 0, 8,
+			2, 32, 0, 109, 2, 17, 67, 3, 37, 65, 0, 110, 104, 3, 37, 67, 0, 4, 109, 2, 32, 3, 37, 68, 0, 109, 5, 4, 2, 17,
+			67, 0, 110, 2, 17, 67, 0, 110, 2, 103, 0, 110, 2, 107, 0, 4, 1, 17, 67, 17, 67, 161, 195, 2, 17, 65, 32, 3, 57, 0,
+			1, 17, 67, 17, 67, 162, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 169, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 170,
+			195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 173, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 179, 195, 2, 17, 65, 32, 0,
+			1, 17, 67, 17, 67, 180, 195, 2, 17, 65, 32, 0, 1, 17, 67, 17, 67, 186, 195, 2, 17, 65, 32, 0, 1, 17, 67, 161, 195, 2,
+			17, 65, 32, 0, 1, 17, 67, 162, 195, 2, 17, 65, 32, 0, 1, 17, 67, 169, 195, 2, 17, 65, 32, 0, 1, 17, 67, 170, 195, 2,
+			17, 65, 32, 0, 1, 17, 67, 173, 195, 2, 17, 65, 32, 0, 1, 17, 67, 179, 195, 2, 17, 65, 32, 0, 1, 17, 67, 180, 195, 2,
+			17, 65, 32, 0, 1, 17, 67, 186, 195, 2, 17, 65, 32, 0, 2, 17, 65, 0, 4, 108, 5, 2, 2, 25, 3, 116, 0, 111, 2, 32,
+			0, 111, 2, 115, 32, 0, 117, 2, 32, 0, 117, 2, 115, 32, 0, 7, 6, 106, 0, 3, 90, 0, 8, 2, 32, 3, 90, 6, 110, 47,
+			132, 0, 5, 3, 2, 32, 17, 67, 3, 90, 10, 0, 5, 3, 2, 17, 66, 3, 90, 124, 0, 7, 6, 107, 0, 2, 107, 3, 0, 4,
+			3, 49, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0, 5, 1, 8, 2, 32, 3, 49, 6, 35, 48, 132, 0, 5, 3, 2, 32, 17,
+			67, 3, 49, 10, 0, 5, 2, 8, 2, 32, 3, 49, 35, 0, 5, 3, 2, 17, 66, 3, 49, 124, 0, 7, 6, 108, 0, 1, 108, 3,
+			0, 8, 2, 32, 3, 6, 109, 55, 36, 0, 3, 55, 0, 104, 1, 17, 65, 3, 55, 57, 0, 4, 104, 3, 61, 0, 104, 5, 1, 1,
+			17, 65, 0, 104, 5, 4, 1, 17, 65, 0, 5, 1, 8, 2, 32, 3, 109, 55, 0, 5, 1, 8, 2, 32, 31, 3, 109, 55, 38, 0,
+			7, 6, 109, 0, 2, 109, 3, 0, 8, 2, 32, 3, 6, 36, 65, 36, 0, 3, 65, 0, 5, 3, 2, 32, 17, 67, 3, 65, 10, 0,
+			5, 3, 2, 17, 66, 3, 65, 124, 0, 5, 1, 8, 2, 32, 3, 109, 65, 0, 5, 1, 8, 2, 32, 31, 3, 109, 65, 38, 0, 7,
+			6, 110, 0, 2, 110, 3, 0, 8, 2, 32, 3, 6, 36, 50, 36, 0, 4, 3, 50, 0, 110, 5, 1, 1, 17, 65, 0, 5, 3, 2,
+			32, 17, 67, 3, 50, 10, 0, 5, 3, 2, 17, 66, 3, 50, 124, 0, 104, 3, 67, 0, 5, 1, 8, 2, 32, 3, 109, 50, 0, 5,
+			1, 8, 2, 32, 31, 3, 109, 50, 38, 0, 7, 6, 111, 0, 110, 1, 115, 21, 2, 32, 3, 2, 39, 68, 0, 5, 1, 2, 108, 32,
+			3, 6, 110, 0, 4, 1, 21, 2, 32, 3, 8, 111, 0, 2, 115, 32, 0, 4, 3, 39, 0, 1, 21, 21, 2, 114, 17, 65, 32, 0,
+			1, 98, 2, 114, 101, 32, 0, 1, 99, 2, 114, 101, 32, 0, 1, 99, 2, 114, 114, 18, 66, 32, 0, 1, 100, 2, 114, 101, 32, 0,
+			1, 108, 2, 114, 101, 32, 0, 1, 109, 2, 118, 97, 32, 0, 1, 109, 2, 118, 97, 109, 32, 0, 1, 116, 2, 100, 17, 65, 32, 0,
+			1, 116, 2, 114, 101, 32, 0, 1, 118, 2, 114, 101, 32, 0, 2, 105, 17, 67, 25, 0, 2, 108, 104, 0, 2, 109, 97, 32, 0, 2,
+			110, 97, 32, 0, 2, 114, 17, 67, 111, 32, 0, 2, 115, 111, 32, 24, 0, 2, 115, 116, 111, 32, 0, 8, 109, 2, 114, 114, 18, 66,
+			32, 0, 4, 111, 5, 1, 1, 17, 67, 2, 32, 3, 39, 58, 0, 117, 0, 109, 2, 17, 67, 3, 39, 65, 0, 110, 104, 3, 39, 67,
+			0, 4, 109, 2, 32, 3, 39, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 25, 0, 4, 5, 1, 1, 102, 2, 114, 109, 97, 116,
+			3, 40, 0, 5, 1, 1, 102, 2, 114, 109, 117, 108, 195, 161, 0, 5, 1, 1, 114, 112, 2, 102, 0, 5, 1, 1, 114, 114, 101, 116,
+			110, 105, 2, 103, 0, 5, 1, 8, 17, 67, 2, 17, 67, 17, 65, 17, 67, 17, 65, 17, 67, 0, 5, 1, 8, 112, 2, 114, 116, 117,
+			17, 67, 0, 5, 1, 8, 115, 2, 108, 117, 0, 4, 1, 98, 2, 114, 17, 65, 32, 3, 110, 0, 1, 112, 2, 100, 17, 65, 32, 0,
+			1, 112, 2, 100, 17, 65, 109, 32, 0, 2, 98, 114, 17, 65, 32, 0, 2, 98, 114, 17, 65, 109, 32, 0, 2, 99, 17, 65, 32, 0,
+			2, 99, 17, 65, 109, 32, 0, 2, 100, 17, 65, 32, 0, 2, 100, 17, 65, 109, 32, 0, 2, 103, 32, 0, 2, 103, 101, 32, 0, 2,
+			103, 101, 109, 32, 0, 2, 103, 115, 32, 0, 2, 106, 17, 65, 32, 0, 2, 106, 17, 65, 109, 32, 0, 2, 108, 17, 65, 32, 0, 2,
+			108, 17, 65, 109, 32, 0, 2, 108, 100, 17, 65, 32, 0, 2, 108, 100, 17, 65, 109, 32, 0, 2, 108, 116, 17, 65, 32, 0, 2, 108,
+			116, 17, 65, 109, 32, 0, 2, 112, 32, 0, 2, 113, 117, 101, 32, 0, 2, 113, 117, 101, 109, 32, 0, 2, 114, 17, 65, 32, 0, 2,
+			114, 17, 65, 109, 32, 0, 2, 114, 17, 67, 17, 65, 32, 0, 2, 114, 17, 67, 17, 65, 109, 32, 0, 2, 115, 17, 65, 32, 0, 2,
+			115, 17, 65, 109, 32, 0, 2, 115, 115, 17, 65, 32, 0, 2, 115, 115, 17, 65, 109, 32, 0, 2, 115, 116, 17, 65, 32, 0, 2, 115,
+			116, 17, 65, 109, 32, 0, 2, 115, 116, 114, 17, 65, 32, 0, 2, 115, 116, 114, 17, 65, 109, 32, 0, 2, 116, 17, 65, 32, 0, 2,
+			116, 17, 65, 109, 32, 0, 2, 118, 17, 65, 109, 32, 0, 2, 118, 97, 32, 0, 2, 118, 101, 17, 67, 115, 32, 0, 2, 118, 101, 32,
+			0, 2, 122, 101, 115, 32, 0, 5, 1, 1, 118, 2, 108, 116, 0, 5, 1, 8, 2, 17, 67, 0, 5, 2, 2, 120, 32, 0, 5, 2,
+			8, 2, 108, 104, 17, 65, 32, 0, 5, 2, 8, 2, 108, 104, 17, 65, 109, 32, 0, 8, 102, 101, 114, 2, 103, 18, 69, 32, 0, 8,
+			108, 103, 110, 101, 2, 98, 18, 66, 32, 0, 8, 109, 2, 108, 104, 18, 69, 32, 0, 8, 114, 2, 103, 18, 69, 32, 0, 8, 115, 98,
+			97, 2, 108, 118, 18, 67, 32, 0, 8, 118, 100, 97, 2, 103, 18, 69, 32, 0, 8, 118, 110, 101, 2, 108, 118, 18, 67, 32, 0, 108,
+			5, 2, 2, 32, 3, 110, 58, 0, 122, 5, 2, 2, 32, 3, 110, 88, 0, 115, 116, 111, 115, 1, 112, 2, 32, 3, 110, 89, 47, 8,
+			111, 138, 0, 122, 5, 1, 2, 32, 3, 110, 138, 0, 4, 105, 3, 120, 0, 105, 2, 115, 0, 4, 105, 2, 28, 17, 3, 136, 0, 105,
+			2, 97, 32, 0, 105, 2, 99, 17, 65, 32, 0, 105, 2, 100, 101, 32, 0, 105, 8, 112, 97, 2, 18, 66, 32, 0, 121, 0, 7, 6,
+			112, 0, 2, 112, 3, 0, 108, 101, 5, 1, 2, 32, 3, 21, 0, 4, 3, 48, 0, 5, 3, 2, 115, 0, 5, 3, 2, 116, 0, 5,
+			3, 2, 32, 17, 67, 3, 48, 10, 0, 8, 2, 32, 3, 48, 36, 0, 5, 3, 2, 17, 66, 3, 48, 124, 0, 104, 5, 1, 3, 83,
+			0, 7, 6, 113, 0, 4, 3, 49, 0, 117, 2, 17, 71, 0, 117, 101, 105, 5, 1, 8, 2, 17, 67, 3, 49, 6, 118, 0, 4, 8,
+			2, 32, 3, 49, 36, 0, 117, 101, 5, 1, 1, 17, 65, 2, 110, 17, 65, 32, 0, 117, 101, 5, 1, 2, 108, 0, 117, 101, 5, 1,
+			8, 0, 117, 101, 5, 2, 8, 2, 32, 25, 0, 117, 195, 170, 5, 1, 1, 17, 67, 2, 32, 0, 4, 117, 101, 99, 5, 1, 3, 49,
+			36, 89, 0, 117, 101, 195, 167, 5, 1, 0, 117, 105, 5, 1, 3, 49, 37, 0, 117, 2, 25, 3, 49, 40, 0, 117, 105, 5, 1, 1,
+			110, 97, 114, 116, 3, 49, 40, 37, 0, 117, 105, 110, 100, 5, 1, 8, 3, 49, 40, 37, 50, 72, 0, 117, 111, 5, 1, 8, 3, 49,
+			40, 39, 0, 4, 117, 3, 49, 58, 0, 195, 188, 0, 4, 117, 101, 110, 5, 1, 1, 17, 65, 2, 17, 67, 3, 49, 58, 6, 118, 68,
+			0, 117, 101, 110, 5, 1, 1, 17, 67, 2, 17, 67, 0, 117, 97, 5, 1, 8, 3, 49, 58, 35, 0, 117, 101, 5, 1, 2, 114, 32,
+			3, 49, 109, 0, 117, 101, 8, 2, 32, 3, 49, 112, 0, 5, 3, 2, 17, 66, 3, 49, 124, 0, 7, 6, 114, 0, 5, 1, 8, 2,
+			32, 3, 6, 109, 34, 34, 0, 5, 1, 8, 2, 32, 31, 3, 6, 109, 34, 34, 38, 0, 8, 2, 32, 3, 6, 109, 101, 36, 0, 4,
+			3, 16, 0, 1, 17, 65, 2, 17, 65, 0, 1, 17, 65, 2, 32, 17, 65, 0, 1, 17, 67, 2, 17, 65, 0, 2, 17, 67, 3, 16,
+			14, 0, 2, 32, 3, 34, 0, 5, 1, 1, 17, 65, 2, 32, 3, 44, 0, 1, 17, 67, 29, 2, 17, 65, 3, 51, 0, 4, 1, 108,
+			3, 101, 0, 1, 110, 2, 12, 0, 1, 115, 0, 8, 0, 114, 0, 8, 2, 32, 36, 3, 101, 36, 6, 114, 0, 7, 6, 115, 0, 5,
+			2, 8, 2, 32, 3, 6, 109, 89, 36, 0, 4, 1, 17, 65, 2, 17, 65, 3, 88, 0, 1, 17, 65, 2, 32, 17, 65, 14, 128, 128,
+			129, 0, 1, 21, 2, 32, 17, 65, 0, 5, 36, 1, 17, 65, 2, 32, 17, 70, 14, 128, 128, 129, 0, 5, 36, 1, 21, 2, 32, 17,
+			70, 0, 4, 3, 89, 0, 1, 17, 65, 2, 32, 14, 128, 128, 129, 0, 1, 101, 115, 101, 2, 32, 0, 99, 2, 17, 71, 0, 115, 0,
+			115, 5, 1, 1, 17, 65, 0, 195, 167, 0, 111, 98, 114, 101, 8, 2, 21, 14, 128, 132, 133, 3, 89, 39, 71, 16, 36, 0, 4, 5,
+			1, 1, 17, 65, 2, 17, 70, 12, 3, 90, 0, 5, 1, 1, 17, 65, 2, 32, 17, 70, 12, 14, 128, 128, 129, 0, 104, 3, 91, 0,
+			5, 1, 8, 2, 32, 3, 109, 89, 0, 5, 1, 8, 2, 32, 31, 3, 109, 89, 38, 0, 5, 4, 8, 2, 17, 67, 3, 124, 89, 0,
+			4, 5, 1, 1, 17, 65, 2, 17, 67, 3, 138, 0, 5, 1, 1, 17, 65, 2, 32, 25, 14, 128, 128, 129, 0, 5, 1, 1, 21, 2,
+			32, 0, 5, 2, 2, 32, 0, 7, 6, 116, 0, 2, 116, 3, 0, 4, 104, 5, 1, 3, 21, 0, 105, 111, 110, 5, 1, 2, 32, 0,
+			3, 47, 0, 5, 3, 2, 32, 17, 67, 3, 47, 10, 0, 8, 2, 32, 3, 47, 36, 0, 4, 5, 2, 2, 101, 32, 3, 76, 0, 5,
+			2, 2, 105, 0, 5, 2, 2, 195, 173, 0, 5, 3, 2, 17, 66, 3, 76, 124, 0, 7, 6, 117, 0, 1, 103, 2, 17, 71, 3, 0,
+			2, 17, 65, 32, 3, 6, 40, 0, 4, 3, 40, 0, 1, 114, 2, 17, 65, 0, 1, 114, 2, 32, 17, 65, 0, 2, 105, 17, 67, 25,
+			0, 8, 2, 32, 0, 4, 2, 17, 65, 3, 58, 0, 2, 32, 17, 65, 0, 2, 105, 117, 0, 4, 105, 3, 121, 0, 121, 0, 109, 2,
+			17, 67, 3, 128, 65, 0, 110, 104, 3, 128, 67, 0, 4, 109, 2, 32, 3, 128, 68, 0, 109, 5, 4, 2, 17, 67, 0, 110, 2, 25,
+			0, 7, 6, 118, 0, 2, 118, 3, 0, 3, 84, 0, 5, 3, 2, 32, 17, 67, 3, 84, 10, 0, 5, 3, 2, 17, 66, 3, 84, 124,
+			0, 7, 6, 119, 0, 5, 1, 2, 32, 3, 21, 0, 5, 4, 8, 3, 40, 0, 3, 58, 0, 5, 2, 8, 2, 32, 3, 72, 6, 35,
+			71, 55, 57, 40, 0, 5, 1, 8, 2, 32, 3, 72, 6, 132, 71, 55, 4, 37, 40, 0, 7, 6, 120, 0, 2, 115, 3, 0, 4, 1,
+			17, 65, 2, 17, 65, 3, 49, 89, 0, 1, 101, 2, 17, 65, 0, 2, 32, 0, 8, 111, 2, 105, 0, 8, 114, 97, 109, 0, 4, 2,
+			195, 179, 32, 3, 88, 0, 8, 101, 2, 17, 65, 0, 8, 101, 104, 2, 17, 65, 0, 8, 101, 110, 105, 2, 17, 65, 0, 8, 101, 111,
+			99, 2, 17, 65, 0, 8, 170, 195, 2, 17, 65, 0, 4, 1, 17, 65, 114, 112, 2, 105, 3, 89, 0, 1, 161, 195, 109, 2, 105, 109,
+			0, 2, 17, 67, 0, 8, 117, 97, 0, 8, 117, 111, 114, 116, 2, 101, 0, 99, 2, 17, 71, 0, 101, 8, 117, 111, 114, 116, 2, 21,
+			3, 89, 109, 0, 4, 1, 17, 65, 114, 98, 2, 17, 65, 3, 91, 0, 1, 17, 65, 120, 2, 17, 65, 0, 1, 17, 71, 98, 2, 17,
+			65, 0, 1, 97, 2, 97, 0, 1, 97, 2, 97, 114, 0, 1, 97, 2, 101, 105, 0, 1, 97, 2, 195, 161, 0, 1, 97, 108, 101, 114,
+			2, 17, 65, 0, 1, 97, 114, 103, 2, 17, 65, 0, 1, 101, 108, 97, 2, 97, 0, 1, 101, 109, 2, 17, 65, 0, 1, 105, 97, 2,
+			17, 65, 0, 1, 105, 101, 2, 17, 65, 0, 1, 105, 112, 2, 17, 65, 0, 1, 105, 114, 2, 17, 65, 0, 1, 105, 117, 113, 2, 17,
+			65, 0, 1, 111, 109, 2, 97, 0, 1, 117, 2, 105, 0, 1, 117, 97, 98, 2, 17, 65, 0, 1, 117, 111, 2, 12, 0, 1, 117, 112,
+			2, 17, 65, 0, 2, 17, 65, 0, 2, 17, 65, 120, 17, 65, 0, 2, 105, 113, 117, 0, 5, 1, 1, 101, 2, 17, 67, 17, 65, 0,
+			5, 1, 1, 105, 2, 97, 32, 0, 5, 1, 1, 105, 2, 97, 115, 32, 0, 8, 97, 99, 2, 17, 65, 0, 8, 97, 102, 2, 105, 0,
+			8, 97, 114, 112, 2, 17, 65, 0, 8, 101, 108, 102, 2, 97, 0, 8, 101, 118, 2, 17, 65, 0, 8, 105, 108, 2, 17, 65, 0, 8,
+			105, 120, 2, 17, 65, 0, 8, 111, 2, 17, 65, 0, 8, 111, 99, 2, 17, 65, 0, 8, 111, 114, 2, 17, 65, 0, 8, 111, 114, 112,
+			2, 17, 65, 0, 8, 117, 108, 2, 17, 65, 0, 8, 169, 195, 109, 2, 105, 0, 7, 6, 121, 0, 2, 32, 3, 2, 37, 0, 5, 1,
+			8, 2, 32, 3, 6, 37, 48, 89, 4, 37, 55, 110, 68, 0, 5, 2, 8, 2, 32, 3, 6, 37, 48, 89, 37, 55, 39, 68, 0, 3,
+			37, 0, 2, 17, 65, 3, 57, 0, 7, 6, 122, 0, 2, 122, 3, 0, 4, 3, 88, 0, 1, 21, 2, 32, 17, 65, 0, 1, 21, 2,
+			32, 17, 70, 0, 5, 3, 2, 32, 17, 67, 3, 88, 10, 0, 8, 2, 32, 3, 88, 36, 0, 5, 3, 2, 17, 66, 3, 88, 124, 0,
+			5, 2, 1, 21, 2, 32, 3, 89, 0, 4, 5, 1, 1, 17, 65, 2, 17, 70, 12, 3, 90, 0, 5, 1, 1, 17, 65, 2, 32, 17,
+			70, 12, 0, 4, 5, 1, 1, 17, 65, 2, 17, 67, 3, 91, 0, 5, 1, 1, 17, 65, 2, 32, 17, 67, 0, 5, 1, 1, 21, 2,
+			32, 0, 7, 6, 0, 36, 8, 32, 114, 3, 0, 194, 170, 1, 32, 15, 3, 2, 35, 0, 194, 186, 1, 32, 15, 3, 2, 39, 0, 4,
+			45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 195, 188, 3, 40, 0, 45, 8, 32, 2, 32,
+			15, 3, 65, 6, 36, 50, 111, 89, 0, 44, 2, 15, 3, 84, 6, 37, 34, 81, 40, 55, 132, 0, 4, 195, 159, 3, 89, 0, 195, 167,
+			0, 36, 3, 89, 37, 83, 51, 6, 130, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts52 = FileInMemory_createWithData (18252, reinterpret_cast<const char *> (&espeakdata_dicts52_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/pt_dict", 
 			U"pt");
-		my addItem_move (espeakdata_dicts54.move());
+		Collection_addItem (me.peek(), espeakdata_dicts52.transfer());
 
-		static unsigned char espeakdata_dicts55_data[25206] = {
-			0, 4, 0, 0, 56, 85, 0, 0, 0, 0, 0, 0, 8, 197, 88, 147, 132, 20, 208, 65, 8, 197, 84, 212, 12, 20, 208, 65, 0, 13,
+		static unsigned char espeakdata_dicts53_data[26886] = {
+			0, 4, 0, 0, 207, 91, 0, 0, 13, 138, 195, 174, 14, 3, 8, 5, 9, 5, 20, 21, 68, 13, 138, 195, 174, 14, 3, 1, 18, 3,
+			5, 18, 1, 68, 0, 17, 7, 20, 195, 162, 18, 26, 9, 21, 47, 112, 34, 88, 6, 37, 40, 0, 9, 134, 18, 196, 131, 7, 5, 20,
+			65, 6, 195, 61, 4, 137, 66, 9, 4, 95, 48, 15, 6, 72, 36, 0, 0, 0, 9, 198, 16, 85, 5, 72, 210, 78, 66, 0, 0, 13,
 			65, 4, 35, 123, 124, 0, 72, 81, 197, 163, 105, 32, 13, 65, 4, 35, 97, 124, 0, 72, 81, 197, 159, 105, 32, 6, 193, 4, 72, 28,
-			32, 6, 195, 152, 210, 64, 72, 0, 6, 195, 90, 198, 149, 66, 7, 196, 60, 97, 82, 36, 67, 0, 10, 199, 64, 20, 148, 20, 225, 82,
-			36, 67, 8, 197, 64, 17, 213, 8, 80, 65, 8, 197, 61, 33, 9, 56, 80, 65, 14, 69, 37, 2, 15, 56, 80, 35, 37, 83, 6, 130,
-			50, 0, 8, 197, 24, 84, 137, 12, 80, 65, 16, 69, 13, 34, 83, 80, 144, 49, 14, 16, 6, 37, 89, 47, 37, 0, 8, 197, 72, 148,
-			201, 64, 144, 67, 8, 197, 32, 242, 15, 80, 144, 67, 0, 9, 198, 88, 149, 18, 20, 114, 64, 65, 9, 198, 64, 20, 143, 16, 146, 64,
-			67, 9, 198, 48, 16, 210, 36, 210, 64, 65, 9, 198, 76, 51, 212, 60, 50, 64, 67, 0, 21, 65, 8, 98, 117, 108, 101, 118, 97, 114,
-			100, 117, 108, 0, 44, 29, 81, 100, 117, 108, 32, 6, 65, 8, 71, 36, 0, 0, 5, 194, 54, 192, 72, 0, 8, 197, 88, 244, 19, 20,
-			16, 66, 8, 197, 77, 5, 78, 20, 208, 65, 8, 197, 64, 20, 134, 84, 208, 66, 7, 196, 5, 43, 20, 4, 67, 15, 67, 21, 64, 192,
-			101, 116, 99, 101, 116, 101, 114, 97, 0, 29, 0, 9, 198, 53, 84, 141, 85, 43, 0, 65, 0, 19, 70, 24, 20, 141, 4, 50, 69, 83,
-			35, 14, 16, 65, 35, 76, 6, 37, 36, 0, 8, 197, 5, 4, 143, 64, 240, 67, 9, 198, 4, 209, 82, 36, 50, 73, 66, 12, 65, 12,
-			49, 35, 34, 0, 72, 81, 97, 114, 32, 10, 65, 12, 49, 39, 0, 72, 81, 111, 32, 14, 3, 99, 102, 46, 99, 111, 110, 102, 111, 114,
-			109, 0, 29, 6, 65, 12, 76, 36, 0, 0, 0, 8, 197, 84, 50, 68, 20, 208, 66, 11, 136, 109, 105, 197, 159, 117, 110, 196, 131, 65,
-			8, 197, 32, 18, 68, 20, 208, 65, 8, 197, 12, 147, 133, 52, 16, 65, 8, 197, 16, 244, 141, 20, 16, 66, 0, 7, 196, 36, 148, 213,
-			76, 66, 11, 135, 116, 111, 116, 117, 197, 159, 105, 65, 28, 0, 6, 65, 16, 72, 36, 0, 0, 10, 199, 77, 84, 5, 73, 98, 90, 4,
-			68, 0, 8, 197, 64, 21, 9, 52, 144, 65, 10, 199, 152, 229, 29, 53, 2, 78, 176, 66, 9, 198, 152, 224, 207, 81, 35, 192, 67, 0,
-			9, 198, 80, 84, 141, 20, 226, 64, 65, 7, 196, 25, 83, 69, 28, 65, 6, 195, 24, 244, 212, 76, 16, 4, 95, 100, 112, 116, 10, 84,
-			6, 37, 34, 81, 40, 55, 13, 0, 0, 6, 65, 20, 36, 0, 49, 7, 65, 20, 57, 36, 0, 72, 0, 0, 15, 68, 14, 197, 18, 20,
-			49, 6, 13, 47, 14, 16, 36, 0, 28, 0, 0, 6, 65, 24, 83, 36, 0, 0, 9, 198, 77, 84, 246, 36, 225, 77, 66, 10, 199, 12,
-			20, 129, 13, 65, 82, 20, 67, 0, 7, 196, 53, 81, 213, 72, 65, 0, 17, 70, 30, 193, 236, 87, 107, 0, 81, 13, 81, 13, 6, 40,
-			123, 13, 0, 9, 198, 12, 203, 14, 218, 195, 133, 65, 16, 7, 99, 101, 97, 117, 197, 159, 117, 76, 135, 6, 40, 91, 40, 0, 11, 200,
-			54, 196, 148, 85, 34, 83, 20, 16, 68, 0, 6, 195, 76, 80, 213, 66, 9, 198, 56, 144, 201, 84, 226, 73, 77, 6, 65, 28, 75, 36,
-			0, 0, 10, 199, 12, 21, 1, 16, 144, 211, 36, 68, 0, 7, 196, 33, 83, 143, 72, 65, 8, 197, 72, 86, 133, 52, 16, 67, 0, 13,
-			68, 77, 84, 21, 76, 89, 40, 48, 6, 40, 89, 0, 0, 7, 65, 32, 107, 35, 91, 0, 0, 0, 8, 197, 88, 81, 5, 72, 80, 66,
-			0, 10, 1, 35, 72, 57, 6, 36, 88, 0, 27, 0, 12, 201, 64, 20, 148, 20, 225, 82, 84, 197, 73, 67, 11, 65, 36, 57, 117, 0,
-			72, 81, 97, 105, 32, 12, 65, 36, 57, 35, 65, 0, 72, 81, 97, 109, 32, 13, 65, 36, 37, 35, 91, 0, 72, 81, 97, 197, 159, 32,
-			12, 65, 36, 57, 35, 34, 0, 72, 81, 97, 114, 32, 0, 12, 68, 104, 243, 66, 36, 88, 39, 65, 71, 37, 0, 10, 199, 12, 19, 132,
-			36, 64, 84, 84, 68, 10, 199, 5, 34, 9, 80, 80, 212, 84, 68, 7, 196, 12, 195, 195, 36, 66, 0, 10, 67, 4, 84, 128, 6, 117,
-			36, 34, 0, 6, 195, 48, 244, 128, 76, 13, 1, 38, 35, 65, 48, 36, 34, 89, 35, 50, 72, 0, 0, 0, 6, 65, 40, 90, 36, 0,
-			0, 0, 13, 1, 42, 35, 89, 47, 36, 16, 37, 89, 49, 0, 27, 0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 6, 195, 50, 196,
-			236, 66, 6, 65, 44, 49, 35, 0, 0, 13, 68, 88, 243, 21, 52, 84, 39, 55, 6, 40, 65, 0, 0, 7, 196, 76, 145, 213, 72, 65,
-			8, 197, 66, 197, 21, 74, 192, 65, 8, 197, 66, 196, 212, 74, 192, 66, 10, 1, 46, 48, 40, 50, 49, 47, 0, 27, 0, 8, 1, 47,
-			89, 55, 36, 91, 0, 0, 10, 199, 13, 85, 18, 20, 213, 82, 176, 66, 13, 65, 48, 55, 35, 91, 0, 72, 81, 97, 197, 159, 32, 12,
-			65, 48, 55, 35, 34, 0, 72, 81, 97, 114, 32, 12, 65, 48, 55, 39, 34, 0, 72, 81, 111, 114, 32, 11, 65, 48, 55, 117, 0, 72,
-			81, 97, 105, 32, 15, 65, 48, 55, 35, 141, 124, 0, 72, 81, 97, 197, 163, 105, 32, 12, 65, 48, 55, 35, 65, 0, 72, 81, 97, 109,
-			32, 11, 65, 48, 55, 114, 0, 72, 81, 97, 117, 32, 10, 65, 48, 55, 35, 0, 72, 81, 97, 32, 9, 198, 77, 84, 208, 20, 53, 1,
-			67, 9, 198, 65, 35, 212, 21, 53, 1, 67, 11, 136, 108, 105, 110, 103, 117, 197, 159, 105, 67, 14, 4, 95, 100, 105, 97, 47, 14, 16,
-			6, 36, 65, 13, 0, 0, 21, 71, 65, 34, 69, 80, 83, 137, 20, 48, 14, 16, 57, 36, 47, 36, 50, 6, 37, 36, 0, 10, 199, 64,
-			84, 147, 21, 97, 82, 4, 68, 0, 8, 197, 216, 83, 9, 58, 192, 65, 22, 10, 99, 101, 97, 117, 197, 159, 101, 115, 99, 117, 76, 135,
-			40, 91, 6, 36, 89, 49, 40, 0, 11, 67, 4, 69, 83, 35, 72, 6, 40, 89, 0, 0, 0, 12, 65, 52, 65, 35, 91, 0, 72, 81,
-			97, 83, 32, 12, 65, 52, 65, 35, 34, 0, 72, 81, 97, 114, 32, 12, 65, 52, 65, 39, 34, 0, 72, 81, 111, 114, 32, 0, 0, 8,
-			197, 81, 212, 131, 60, 192, 66, 10, 199, 77, 68, 172, 49, 80, 197, 4, 67, 0, 10, 135, 197, 159, 111, 102, 101, 114, 105, 66, 9, 198,
-			36, 229, 18, 36, 123, 0, 65, 17, 7, 110, 111, 197, 159, 116, 114, 105, 50, 39, 91, 47, 16, 37, 0, 77, 0, 9, 198, 104, 20, 154,
-			177, 34, 64, 65, 9, 198, 52, 85, 1, 24, 244, 133, 66, 12, 65, 56, 50, 39, 34, 0, 72, 81, 111, 114, 32, 12, 65, 56, 50, 39,
-			34, 0, 72, 81, 111, 114, 32, 10, 65, 56, 50, 35, 0, 72, 81, 97, 32, 13, 65, 56, 50, 35, 91, 0, 72, 81, 97, 197, 159, 32,
-			10, 65, 56, 50, 39, 0, 72, 81, 111, 32, 9, 198, 4, 48, 197, 57, 69, 65, 67, 0, 12, 137, 195, 174, 109, 112, 117, 197, 159, 99,
-			97, 67, 10, 199, 16, 84, 195, 61, 1, 82, 36, 68, 0, 0, 0, 9, 198, 8, 16, 212, 21, 34, 73, 66, 9, 198, 65, 35, 211, 64,
-			84, 129, 67, 4, 193, 60, 72, 4, 193, 60, 72, 0, 10, 1, 61, 36, 81, 6, 35, 55, 0, 27, 0, 8, 197, 21, 53, 9, 52, 16,
-			67, 8, 197, 16, 148, 212, 72, 16, 66, 0, 9, 198, 21, 132, 12, 36, 59, 0, 66, 0, 7, 196, 89, 82, 69, 80, 65, 12, 201, 77,
-			68, 172, 25, 83, 7, 21, 32, 64, 68, 10, 1, 64, 35, 16, 6, 39, 50, 72, 0, 6, 65, 64, 48, 36, 0, 0, 7, 196, 24, 16,
-			212, 84, 66, 0, 11, 200, 64, 20, 148, 20, 225, 82, 36, 144, 67, 8, 197, 4, 210, 67, 36, 144, 66, 0, 9, 198, 88, 148, 135, 84,
-			203, 0, 65, 9, 198, 28, 19, 2, 20, 226, 64, 65, 0, 7, 196, 56, 85, 5, 16, 65, 7, 65, 68, 49, 57, 40, 0, 0, 10, 199,
-			12, 83, 5, 48, 19, 20, 20, 79, 0, 6, 195, 84, 224, 64, 77, 0, 12, 65, 116, 4, 112, 72, 37, 50, 6, 35, 0, 49, 0, 9,
-			198, 72, 84, 1, 74, 195, 64, 67, 6, 65, 72, 34, 36, 0, 0, 6, 195, 78, 196, 1, 66, 7, 196, 64, 193, 67, 4, 66, 7, 196,
-			48, 19, 147, 4, 66, 7, 196, 16, 19, 147, 4, 66, 6, 194, 5, 32, 76, 32, 0, 10, 67, 88, 145, 87, 84, 6, 57, 40, 0, 23,
-			11, 116, 114, 105, 39, 117, 110, 103, 104, 105, 117, 108, 47, 16, 37, 40, 50, 81, 57, 40, 55, 0, 10, 199, 76, 59, 4, 21, 34, 76,
-			20, 66, 0, 11, 200, 36, 228, 212, 73, 80, 212, 61, 32, 66, 9, 198, 16, 81, 21, 12, 83, 64, 66, 9, 198, 4, 165, 78, 28, 83,
-			64, 66, 12, 4, 95, 100, 111, 116, 48, 40, 50, 49, 47, 0, 0, 10, 65, 76, 89, 39, 0, 72, 81, 111, 32, 12, 65, 76, 89, 39,
-			34, 0, 72, 81, 111, 114, 32, 12, 65, 76, 89, 35, 34, 0, 72, 81, 97, 114, 32, 0, 14, 69, 77, 0, 118, 37, 80, 89, 48, 35,
-			123, 57, 40, 0, 18, 70, 77, 0, 78, 36, 243, 5, 89, 48, 35, 50, 37, 6, 39, 55, 36, 0, 7, 196, 77, 67, 195, 4, 66, 0,
-			0, 0, 6, 195, 10, 193, 236, 66, 6, 65, 80, 47, 36, 0, 0, 0, 0, 10, 135, 99, 101, 114, 197, 159, 101, 97, 66, 0, 0, 12,
-			67, 85, 0, 192, 40, 48, 36, 76, 6, 36, 0, 9, 198, 77, 68, 137, 30, 197, 0, 65, 10, 135, 100, 114, 97, 103, 111, 197, 159, 65,
-			10, 199, 72, 244, 212, 60, 115, 204, 36, 68, 0, 0, 14, 139, 115, 99, 114, 195, 162, 197, 159, 110, 101, 116, 101, 65, 0, 9, 198, 104,
-			68, 133, 48, 149, 21, 67, 9, 198, 72, 93, 137, 56, 83, 64, 66, 11, 200, 12, 129, 76, 176, 203, 9, 81, 80, 69, 13, 65, 88, 84,
-			35, 91, 0, 72, 81, 97, 197, 159, 32, 12, 65, 88, 84, 35, 34, 0, 72, 81, 97, 114, 32, 7, 193, 88, 72, 81, 111, 32, 12, 65,
-			88, 84, 35, 65, 0, 72, 81, 97, 109, 32, 11, 65, 88, 84, 114, 0, 72, 81, 97, 117, 32, 15, 65, 88, 84, 35, 141, 124, 0, 72,
-			81, 97, 197, 163, 105, 32, 6, 65, 88, 84, 36, 0, 0, 6, 194, 5, 48, 76, 32, 0, 9, 198, 152, 225, 18, 177, 163, 137, 67, 0,
-			17, 4, 95, 49, 77, 52, 6, 40, 50, 71, 37, 55, 6, 57, 39, 50, 0, 0, 11, 200, 76, 59, 4, 21, 34, 76, 61, 32, 66, 18,
-			4, 95, 49, 77, 53, 6, 40, 50, 71, 37, 55, 6, 57, 35, 34, 72, 0, 12, 65, 92, 72, 40, 71, 55, 40, 6, 84, 36, 0, 0,
-			9, 198, 74, 196, 212, 85, 35, 129, 67, 0, 0, 9, 198, 152, 229, 18, 20, 43, 0, 67, 0, 7, 196, 53, 81, 197, 80, 65, 9, 198,
-			4, 197, 3, 84, 149, 129, 67, 9, 198, 65, 33, 90, 20, 229, 1, 67, 13, 4, 95, 49, 77, 49, 4, 39, 65, 6, 37, 36, 0, 7,
-			65, 96, 37, 49, 89, 0, 0, 17, 4, 95, 49, 77, 50, 6, 40, 50, 65, 37, 55, 6, 57, 39, 50, 0, 0, 8, 197, 25, 34, 80,
-			81, 80, 66, 18, 4, 95, 49, 77, 51, 6, 40, 50, 65, 37, 55, 6, 57, 35, 34, 72, 0, 0, 9, 198, 52, 241, 9, 24, 144, 236,
-			66, 0, 6, 195, 57, 83, 73, 66, 10, 65, 100, 6, 37, 81, 34, 36, 49, 0, 0, 8, 197, 25, 32, 71, 20, 64, 65, 7, 196, 4,
-			114, 84, 4, 67, 0, 6, 195, 5, 84, 128, 65, 0, 9, 198, 36, 229, 18, 36, 112, 64, 65, 9, 198, 8, 19, 1, 57, 48, 64, 67,
-			0, 7, 196, 72, 81, 213, 48, 65, 7, 196, 52, 144, 213, 48, 65, 7, 65, 104, 88, 36, 47, 0, 0, 8, 197, 72, 243, 129, 48, 64,
-			65, 6, 195, 54, 196, 213, 66, 8, 197, 28, 84, 129, 48, 64, 65, 7, 196, 80, 84, 212, 4, 66, 6, 195, 30, 196, 201, 66, 0, 10,
-			199, 77, 68, 133, 13, 84, 172, 52, 67, 10, 199, 12, 243, 1, 8, 244, 172, 52, 68, 0, 12, 137, 197, 163, 97, 110, 197, 163, 111, 197,
-			159, 65, 7, 196, 76, 17, 9, 12, 65, 9, 198, 72, 86, 137, 77, 64, 64, 67, 9, 198, 25, 83, 7, 21, 32, 64, 67, 9, 198, 25,
-			84, 142, 37, 160, 64, 67, 9, 198, 24, 197, 73, 21, 32, 64, 67, 9, 198, 21, 132, 12, 61, 32, 64, 67, 9, 198, 21, 128, 71, 21,
-			32, 64, 68, 9, 198, 20, 229, 77, 21, 32, 64, 68, 9, 198, 12, 243, 69, 57, 64, 64, 67, 0, 0, 9, 198, 104, 68, 129, 90, 195,
-			128, 65, 8, 197, 64, 148, 201, 14, 192, 66, 0, 0, 8, 197, 89, 212, 204, 20, 16, 66, 8, 197, 64, 203, 3, 20, 16, 66, 8, 197,
-			29, 211, 132, 20, 16, 66, 0, 7, 196, 53, 211, 133, 12, 65, 9, 198, 5, 68, 137, 9, 82, 65, 68, 9, 198, 4, 49, 83, 81, 82,
-			65, 78, 0, 5, 194, 12, 16, 72, 0, 8, 197, 53, 211, 133, 14, 192, 65, 9, 198, 14, 196, 172, 73, 82, 69, 68, 11, 200, 16, 84,
-			208, 72, 147, 132, 20, 16, 67, 0, 14, 139, 195, 174, 110, 102, 196, 131, 197, 159, 117, 114, 97, 68, 0, 9, 198, 64, 199, 78, 28, 80,
-			64, 66, 9, 198, 152, 225, 137, 28, 80, 64, 67, 9, 198, 16, 93, 137, 56, 80, 64, 67, 16, 70, 56, 245, 108, 48, 80, 64, 50, 6,
-			39, 40, 13, 55, 135, 0, 15, 69, 5, 71, 118, 36, 16, 35, 47, 6, 112, 123, 57, 35, 0, 0, 7, 196, 13, 33, 90, 84, 66, 9,
-			198, 74, 196, 195, 60, 193, 65, 67, 0, 8, 197, 5, 97, 78, 81, 80, 67, 9, 134, 97, 108, 101, 197, 159, 105, 66, 0, 12, 137, 116,
-			111, 118, 97, 114, 196, 131, 197, 159, 66, 8, 197, 152, 225, 15, 36, 16, 67, 0, 11, 67, 48, 147, 9, 55, 6, 37, 55, 37, 0, 9,
-			198, 14, 193, 5, 72, 146, 64, 66, 9, 198, 12, 83, 44, 48, 19, 20, 79, 0, 7, 196, 29, 32, 86, 84, 66, 12, 137, 112, 114, 196,
-			131, 98, 117, 197, 159, 105, 67, 5, 194, 5, 80, 76, 0, 10, 199, 72, 80, 213, 64, 84, 172, 52, 68, 10, 199, 152, 229, 15, 5, 32,
-			197, 52, 66, 0, 9, 198, 20, 194, 66, 21, 43, 0, 68, 0, 23, 73, 152, 229, 15, 80, 65, 65, 84, 224, 64, 112, 50, 47, 39, 47,
-			72, 135, 6, 40, 50, 35, 0, 15, 140, 195, 174, 109, 112, 114, 196, 131, 197, 159, 116, 105, 97, 67, 6, 195, 85, 38, 137, 66, 6, 195,
-			61, 4, 137, 66, 0, 7, 196, 61, 5, 9, 52, 65, 0, 7, 196, 16, 93, 137, 36, 66, 0, 7, 196, 218, 196, 137, 36, 65, 13, 4,
-			95, 116, 108, 100, 47, 6, 37, 55, 72, 13, 0, 0, 15, 69, 16, 148, 208, 85, 48, 72, 37, 89, 48, 6, 40, 89, 0, 9, 198, 4,
-			194, 77, 20, 229, 1, 68, 0, 0, 0, 0, 11, 136, 197, 159, 116, 101, 114, 103, 101, 109, 65, 0, 0, 0, 7, 195, 16, 16, 236, 72,
-			8, 0, 7, 196, 77, 67, 195, 176, 66, 11, 68, 12, 21, 84, 176, 49, 114, 47, 13, 0, 0, 9, 198, 16, 81, 21, 12, 93, 137, 66,
-			0, 7, 196, 74, 192, 132, 4, 66, 9, 134, 110, 105, 197, 159, 116, 101, 73, 0, 9, 198, 64, 19, 148, 21, 32, 64, 66, 9, 198, 52,
-			244, 195, 61, 96, 64, 65, 9, 198, 4, 197, 3, 21, 96, 64, 67, 9, 198, 76, 53, 84, 85, 32, 64, 67, 9, 198, 72, 80, 76, 37,
-			160, 64, 68, 9, 198, 65, 35, 205, 61, 96, 64, 67, 9, 198, 16, 148, 195, 85, 64, 64, 67, 9, 198, 12, 243, 131, 85, 32, 64, 67,
-			9, 198, 12, 243, 5, 13, 64, 64, 67, 9, 198, 12, 84, 131, 21, 64, 64, 67, 0, 7, 196, 36, 226, 77, 176, 65, 6, 195, 85, 32,
-			193, 66, 9, 198, 152, 225, 149, 56, 64, 64, 67, 0, 10, 199, 77, 64, 78, 16, 20, 132, 20, 65, 0, 0, 9, 198, 89, 211, 22, 177,
-			75, 9, 67, 8, 197, 81, 43, 7, 20, 16, 66, 8, 197, 4, 213, 118, 20, 16, 67, 0, 6, 195, 41, 80, 193, 66, 0, 0, 9, 198,
-			66, 196, 212, 74, 197, 128, 65, 11, 200, 36, 229, 5, 73, 162, 67, 20, 16, 68, 20, 71, 24, 145, 75, 177, 37, 73, 4, 83, 57, 36,
-			80, 6, 13, 34, 121, 35, 0, 76, 7, 195, 61, 34, 64, 72, 8, 0, 10, 199, 24, 203, 3, 177, 37, 73, 20, 67, 0, 9, 134, 109,
-			105, 197, 159, 116, 111, 66, 0, 0, 6, 195, 37, 98, 64, 66, 0, 11, 67, 77, 82, 84, 89, 40, 6, 37, 47, 0, 13, 68, 76, 81,
-			21, 76, 89, 36, 72, 6, 40, 89, 0, 8, 197, 74, 196, 213, 12, 144, 67, 0, 15, 70, 88, 245, 67, 32, 84, 128, 84, 6, 114, 76,
-			13, 34, 0, 9, 198, 52, 85, 1, 24, 244, 128, 66, 20, 72, 8, 194, 84, 104, 180, 137, 20, 112, 71, 55, 6, 37, 123, 49, 34, 37,
-			81, 0, 0, 9, 198, 64, 130, 76, 37, 4, 192, 65, 0, 17, 70, 26, 193, 236, 17, 85, 73, 83, 13, 81, 13, 72, 40, 6, 37, 0,
-			5, 194, 152, 192, 72, 0, 0, 0, 13, 68, 84, 212, 12, 36, 6, 40, 65, 48, 55, 37, 0, 0, 0, 0, 9, 198, 56, 84, 133, 29,
-			83, 9, 66, 18, 70, 28, 147, 78, 5, 162, 85, 75, 37, 65, 50, 6, 35, 88, 57, 40, 0, 0, 11, 136, 197, 159, 109, 101, 99, 104,
-			101, 114, 65, 9, 198, 152, 229, 157, 73, 66, 64, 67, 0, 7, 196, 65, 211, 132, 36, 66, 7, 196, 29, 211, 132, 36, 66, 0, 7, 196,
-			80, 19, 135, 60, 66, 0, 0, 9, 198, 64, 199, 78, 28, 84, 128, 65, 7, 196, 77, 80, 197, 4, 66, 7, 196, 49, 80, 197, 4, 66,
-			7, 196, 17, 80, 197, 4, 66, 0, 11, 200, 12, 243, 148, 72, 22, 137, 12, 80, 67, 0, 9, 198, 36, 81, 148, 36, 225, 64, 65, 9,
-			198, 25, 83, 7, 21, 33, 64, 65, 9, 198, 24, 197, 73, 21, 33, 64, 65, 9, 198, 13, 33, 68, 37, 65, 64, 65, 9, 198, 12, 195,
-			195, 61, 65, 64, 65, 16, 70, 8, 19, 142, 21, 33, 64, 71, 6, 36, 50, 13, 16, 36, 0, 6, 195, 17, 84, 44, 28, 0, 9, 198,
-			65, 34, 67, 21, 1, 77, 66, 7, 196, 64, 193, 67, 176, 66, 21, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 80, 14, 16, 39,
-			89, 39, 83, 47, 0, 8, 196, 4, 66, 67, 176, 66, 28, 0, 0, 11, 200, 65, 35, 198, 21, 51, 210, 36, 144, 66, 9, 198, 152, 224,
-			197, 64, 93, 137, 66, 8, 197, 12, 149, 137, 48, 80, 66, 0, 0, 11, 67, 53, 82, 65, 65, 6, 40, 57, 35, 0, 0, 0, 8, 197,
-			88, 150, 129, 88, 144, 67, 8, 197, 29, 209, 9, 50, 192, 65, 6, 195, 5, 101, 64, 66, 7, 196, 53, 211, 138, 36, 66, 0, 9, 198,
-			65, 33, 79, 13, 84, 44, 68, 8, 197, 152, 229, 133, 48, 144, 67, 9, 198, 4, 115, 206, 37, 50, 64, 68, 0, 6, 195, 84, 225, 5,
-			28, 0, 8, 197, 16, 144, 86, 60, 192, 65, 9, 198, 14, 195, 3, 116, 145, 64, 66, 6, 194, 4, 144, 76, 32, 5, 194, 12, 80, 76,
-			6, 194, 4, 144, 72, 28, 8, 66, 20, 16, 57, 35, 0, 76, 0, 0, 13, 138, 197, 159, 111, 102, 101, 114, 105, 108, 111, 114, 66, 8,
-			197, 36, 81, 148, 36, 224, 65, 0, 8, 197, 14, 196, 236, 64, 144, 67, 6, 195, 12, 83, 0, 76, 0, 9, 198, 76, 107, 18, 116, 208,
-			64, 67, 15, 4, 95, 109, 99, 110, 65, 35, 49, 14, 16, 6, 39, 50, 0, 0, 10, 199, 36, 228, 208, 20, 53, 15, 72, 66, 10, 199,
-			12, 243, 132, 84, 53, 15, 72, 66, 0, 9, 198, 36, 224, 213, 49, 69, 64, 67, 15, 69, 74, 196, 198, 60, 144, 34, 13, 89, 83, 39,
-			6, 37, 0, 8, 197, 66, 196, 212, 72, 16, 66, 9, 198, 88, 240, 83, 81, 43, 0, 76, 9, 198, 56, 240, 83, 81, 43, 0, 77, 8,
-			197, 152, 228, 213, 52, 144, 77, 9, 198, 88, 240, 83, 81, 43, 0, 77, 0, 11, 136, 197, 159, 111, 97, 114, 101, 99, 105, 65, 16, 70,
-			76, 48, 78, 56, 84, 128, 89, 49, 6, 36, 50, 13, 34, 0, 9, 198, 32, 19, 83, 80, 84, 128, 65, 18, 70, 21, 35, 201, 48, 244,
-			128, 36, 34, 34, 6, 39, 37, 55, 39, 34, 0, 9, 198, 12, 129, 76, 56, 84, 128, 65, 0, 9, 198, 76, 51, 193, 80, 93, 137, 65,
-			10, 199, 16, 86, 143, 72, 66, 78, 20, 66, 10, 199, 81, 32, 78, 76, 97, 82, 4, 68, 10, 199, 36, 229, 5, 72, 97, 82, 4, 68,
-			5, 194, 13, 80, 72, 0, 9, 198, 72, 93, 137, 56, 93, 137, 66, 10, 199, 65, 35, 205, 37, 65, 118, 36, 66, 10, 199, 64, 84, 141,
-			37, 65, 118, 36, 66, 8, 197, 13, 34, 86, 179, 96, 65, 0, 8, 197, 76, 147, 135, 85, 32, 65, 8, 197, 12, 19, 131, 21, 32, 65,
-			0, 0, 17, 70, 56, 84, 213, 65, 84, 192, 50, 36, 89, 40, 48, 6, 40, 89, 0, 7, 196, 65, 34, 77, 36, 66, 0, 10, 199, 65,
-			35, 193, 77, 1, 118, 36, 65, 0, 8, 197, 77, 71, 82, 56, 144, 67, 0, 9, 198, 76, 80, 213, 72, 144, 197, 67, 9, 198, 12, 243,
-			80, 48, 144, 197, 66, 0, 9, 198, 14, 195, 44, 85, 162, 64, 68, 0, 0, 8, 197, 12, 192, 84, 36, 224, 65, 0, 11, 136, 197, 159,
-			111, 97, 114, 101, 99, 101, 65, 9, 198, 52, 241, 9, 24, 144, 193, 68, 9, 198, 16, 84, 195, 85, 32, 193, 67, 9, 198, 12, 243, 85,
-			56, 144, 193, 68, 0, 9, 198, 24, 203, 3, 177, 34, 64, 65, 7, 196, 20, 194, 67, 20, 66, 7, 196, 104, 144, 197, 4, 66, 7, 196,
-			37, 80, 133, 4, 66, 7, 196, 17, 84, 133, 4, 66, 7, 196, 16, 244, 133, 4, 66, 7, 196, 12, 84, 133, 4, 66, 14, 68, 4, 116,
-			133, 4, 35, 81, 14, 16, 36, 6, 35, 0, 7, 196, 12, 84, 133, 4, 66, 0, 0, 9, 198, 77, 2, 82, 37, 65, 64, 65, 9, 198,
-			76, 147, 135, 85, 33, 64, 65, 9, 198, 76, 53, 84, 85, 43, 0, 65, 9, 198, 60, 20, 208, 21, 65, 64, 65, 9, 198, 88, 240, 83,
-			81, 33, 64, 76, 9, 198, 56, 240, 83, 81, 33, 64, 77, 9, 198, 4, 229, 77, 37, 65, 64, 75, 0, 9, 198, 66, 196, 133, 72, 146,
-			64, 66, 0, 12, 137, 99, 111, 110, 102, 105, 197, 159, 116, 101, 66, 7, 196, 12, 129, 77, 4, 66, 7, 196, 5, 86, 133, 4, 66, 0,
-			0, 8, 197, 49, 80, 210, 176, 208, 66, 0, 9, 198, 64, 85, 18, 20, 49, 77, 66, 8, 197, 14, 196, 44, 80, 16, 67, 0, 9, 198,
-			152, 208, 157, 13, 50, 64, 67, 0, 7, 196, 73, 209, 142, 36, 66, 7, 196, 14, 198, 142, 36, 66, 0, 8, 197, 104, 119, 82, 36, 16,
-			67, 8, 197, 14, 196, 149, 36, 16, 73, 0, 11, 67, 53, 82, 69, 65, 6, 40, 57, 36, 0, 12, 67, 13, 33, 65, 49, 14, 16, 36,
-			6, 35, 0, 6, 195, 12, 81, 1, 66, 6, 195, 5, 97, 65, 78, 0, 8, 197, 13, 211, 148, 20, 48, 65, 11, 66, 16, 80, 72, 135,
-			0, 72, 81, 97, 32, 25, 66, 16, 80, 72, 2, 36, 15, 35, 47, 6, 40, 50, 76, 124, 0, 8, 81, 97, 116, 117, 110, 99, 105, 32,
-			14, 66, 16, 80, 72, 36, 55, 35, 0, 72, 81, 108, 97, 32, 5, 194, 16, 80, 72, 0, 10, 199, 17, 84, 133, 72, 147, 15, 72, 66,
-			7, 195, 88, 82, 64, 76, 32, 0, 0, 9, 198, 72, 243, 102, 56, 144, 64, 67, 7, 196, 32, 242, 15, 80, 65, 12, 67, 21, 32, 77,
-			57, 36, 16, 35, 65, 0, 78, 0, 0, 0, 9, 198, 80, 20, 212, 5, 69, 64, 67, 10, 199, 52, 85, 1, 24, 244, 137, 12, 67, 8,
-			197, 24, 197, 73, 21, 32, 65, 9, 198, 9, 80, 149, 37, 69, 64, 68, 9, 198, 4, 101, 77, 5, 69, 64, 68, 0, 0, 0, 10, 199,
-			33, 84, 132, 84, 59, 20, 84, 68, 10, 199, 4, 197, 78, 20, 59, 20, 84, 68, 11, 200, 77, 1, 67, 36, 19, 9, 104, 16, 68, 11,
-			200, 12, 243, 131, 72, 85, 9, 104, 16, 68, 0, 8, 197, 76, 147, 131, 21, 32, 65, 9, 198, 18, 196, 157, 54, 197, 21, 68, 16, 69,
-			9, 35, 203, 21, 32, 71, 14, 16, 6, 39, 49, 13, 34, 0, 0, 0, 7, 196, 24, 83, 69, 36, 66, 0, 7, 196, 73, 211, 138, 36,
-			66, 0, 0, 0, 6, 194, 4, 192, 72, 28, 0, 0, 10, 135, 97, 99, 101, 197, 159, 116, 105, 72, 10, 3, 95, 35, 57, 47, 6, 35,
-			71, 0, 0, 6, 195, 88, 83, 137, 66, 0, 6, 195, 85, 43, 13, 66, 7, 196, 84, 209, 68, 20, 65, 7, 196, 76, 83, 78, 4, 66,
-			0, 14, 67, 72, 68, 192, 6, 36, 34, 72, 36, 6, 36, 89, 0, 8, 197, 29, 83, 5, 72, 80, 65, 8, 197, 12, 147, 133, 88, 16,
-			67, 8, 197, 12, 20, 133, 88, 16, 67, 8, 197, 88, 83, 133, 72, 16, 67, 8, 197, 81, 33, 90, 20, 16, 66, 8, 197, 65, 34, 86,
-			20, 16, 66, 8, 197, 4, 193, 82, 28, 16, 67, 9, 134, 114, 101, 117, 197, 159, 105, 67, 0, 8, 197, 30, 195, 2, 84, 144, 66, 0,
-			8, 197, 52, 146, 140, 60, 48, 65, 0, 0, 10, 199, 65, 33, 70, 4, 49, 118, 36, 66, 8, 197, 52, 243, 9, 52, 80, 65, 10, 199,
-			12, 243, 132, 84, 49, 118, 36, 66, 8, 197, 4, 100, 137, 12, 16, 65, 7, 196, 76, 59, 16, 4, 66, 8, 197, 65, 33, 68, 20, 16,
-			66, 8, 197, 52, 84, 135, 20, 16, 66, 8, 197, 28, 83, 133, 72, 16, 67, 8, 197, 13, 33, 68, 20, 16, 67, 8, 197, 12, 240, 143,
-			72, 16, 67, 13, 68, 14, 197, 84, 4, 49, 13, 40, 47, 6, 35, 0, 0, 0, 9, 198, 13, 85, 157, 57, 64, 64, 67, 12, 136, 105,
-			97, 114, 196, 131, 197, 159, 105, 65, 8, 0, 10, 199, 64, 20, 148, 36, 50, 80, 4, 68, 0, 10, 199, 81, 34, 77, 37, 65, 118, 36,
-			66, 10, 135, 197, 159, 117, 98, 114, 101, 100, 65, 10, 199, 16, 84, 198, 4, 49, 118, 36, 66, 0, 9, 198, 36, 229, 18, 36, 114, 64,
-			65, 9, 198, 12, 243, 148, 72, 243, 44, 67, 0, 0, 6, 195, 82, 192, 213, 66, 9, 198, 152, 208, 149, 49, 161, 65, 67, 9, 198, 12,
-			243, 182, 36, 225, 65, 67, 6, 194, 4, 208, 76, 32, 0, 8, 197, 81, 32, 71, 20, 208, 65, 0, 6, 195, 72, 84, 212, 65, 9, 198,
-			16, 144, 86, 60, 194, 64, 65, 0, 11, 200, 152, 229, 172, 73, 65, 74, 20, 16, 68, 6, 195, 5, 97, 77, 76, 0, 9, 198, 77, 84,
-			246, 36, 225, 65, 67, 0, 7, 196, 176, 195, 210, 4, 77, 0, 9, 198, 77, 68, 149, 13, 69, 64, 66, 8, 197, 52, 20, 148, 61, 32,
-			65, 8, 197, 16, 240, 212, 61, 32, 65, 8, 197, 13, 213, 5, 88, 16, 67, 9, 198, 9, 81, 142, 37, 69, 64, 67, 11, 200, 4, 192,
-			172, 77, 68, 149, 36, 80, 67, 8, 197, 77, 84, 44, 72, 16, 67, 8, 197, 152, 228, 197, 72, 16, 67, 0, 8, 197, 10, 197, 44, 81,
-			80, 67, 9, 198, 64, 20, 129, 48, 150, 129, 68, 6, 195, 77, 80, 201, 66, 11, 67, 21, 32, 73, 57, 36, 16, 117, 0, 78, 7, 196,
-			4, 49, 83, 80, 76, 0, 8, 66, 21, 80, 57, 115, 0, 76, 0, 7, 196, 92, 80, 133, 72, 65, 13, 68, 20, 229, 5, 72, 36, 50,
-			47, 13, 34, 0, 65, 0, 8, 197, 88, 144, 212, 61, 32, 65, 9, 198, 89, 211, 148, 85, 43, 0, 67, 8, 197, 76, 83, 154, 61, 32,
-			65, 8, 197, 64, 144, 212, 61, 32, 65, 8, 197, 66, 196, 133, 72, 80, 66, 15, 69, 52, 20, 139, 21, 32, 65, 6, 35, 34, 49, 13,
-			34, 0, 8, 197, 48, 17, 236, 72, 80, 65, 8, 197, 24, 16, 212, 61, 32, 65, 8, 197, 5, 50, 71, 85, 32, 66, 9, 198, 56, 144,
-			201, 84, 229, 76, 77, 9, 198, 56, 144, 201, 84, 229, 76, 77, 0, 11, 200, 152, 224, 210, 84, 229, 44, 81, 80, 68, 8, 132, 97, 197,
-			159, 97, 66, 28, 0, 9, 198, 52, 83, 182, 36, 225, 77, 66, 7, 196, 36, 226, 77, 36, 65, 0, 8, 197, 48, 16, 207, 52, 144, 65,
-			8, 197, 36, 226, 77, 36, 144, 65, 9, 134, 109, 105, 197, 159, 99, 97, 66, 0, 0, 9, 198, 105, 81, 210, 177, 98, 64, 67, 9, 198,
-			65, 33, 71, 177, 66, 64, 67, 0, 7, 196, 48, 16, 207, 52, 65, 0, 8, 197, 37, 161, 207, 56, 144, 67, 0, 6, 195, 28, 243, 137,
-			66, 0, 7, 196, 36, 66, 76, 20, 66, 7, 196, 13, 82, 86, 4, 66, 0, 8, 197, 84, 225, 5, 88, 16, 67, 13, 138, 115, 99, 114,
-			195, 162, 197, 159, 110, 101, 116, 65, 8, 197, 64, 20, 143, 48, 80, 66, 16, 69, 61, 32, 78, 28, 80, 6, 39, 14, 16, 37, 50, 75,
-			124, 0, 8, 197, 52, 19, 143, 48, 80, 66, 8, 197, 36, 225, 201, 56, 80, 67, 8, 197, 36, 229, 137, 80, 16, 67, 0, 9, 198, 24,
-			192, 77, 85, 43, 0, 65, 0, 8, 197, 88, 149, 18, 20, 112, 65, 0, 10, 135, 97, 197, 159, 101, 122, 196, 131, 67, 7, 196, 88, 144,
-			146, 4, 66, 5, 194, 90, 192, 72, 7, 196, 84, 225, 76, 20, 73, 0, 8, 197, 76, 19, 20, 20, 16, 66, 8, 197, 65, 85, 5, 72,
-			80, 66, 8, 197, 56, 245, 137, 12, 80, 66, 8, 197, 56, 149, 133, 48, 80, 66, 8, 197, 53, 86, 137, 12, 16, 65, 19, 70, 152, 235,
-			21, 57, 68, 149, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 0, 8, 197, 16, 243, 73, 56, 80, 65, 15, 69, 77, 1, 82, 36, 16,
-			89, 48, 36, 16, 6, 57, 35, 0, 8, 197, 72, 244, 212, 20, 16, 66, 8, 197, 72, 145, 9, 12, 16, 67, 11, 200, 36, 229, 5, 73,
-			49, 67, 80, 16, 68, 8, 197, 16, 81, 9, 12, 16, 67, 8, 197, 16, 147, 148, 72, 80, 28, 8, 197, 4, 197, 15, 72, 16, 77, 0,
-			8, 197, 216, 148, 5, 80, 80, 65, 8, 197, 73, 212, 197, 80, 80, 65, 7, 196, 36, 225, 9, 12, 66, 0, 11, 200, 152, 229, 15, 5,
-			32, 197, 216, 144, 66, 6, 195, 16, 82, 129, 66, 0, 9, 198, 37, 53, 1, 52, 37, 76, 67, 7, 196, 18, 197, 78, 176, 67, 0, 8,
-			197, 60, 34, 67, 20, 144, 67, 8, 197, 72, 85, 133, 56, 144, 67, 8, 197, 77, 83, 148, 20, 208, 77, 0, 9, 198, 4, 101, 82, 37,
-			50, 64, 68, 7, 196, 56, 144, 201, 60, 77, 0, 18, 70, 88, 19, 5, 56, 50, 65, 84, 35, 55, 6, 36, 50, 89, 57, 35, 0, 0,
-			0, 16, 69, 81, 33, 66, 84, 144, 47, 14, 16, 36, 71, 58, 6, 37, 0, 0, 17, 70, 72, 20, 133, 61, 34, 64, 34, 35, 16, 36,
-			6, 39, 145, 124, 0, 0, 8, 197, 36, 225, 9, 28, 240, 67, 9, 198, 8, 16, 212, 21, 34, 69, 66, 0, 7, 196, 88, 146, 84, 84,
-			66, 7, 196, 16, 19, 148, 84, 66, 7, 196, 13, 83, 20, 84, 66, 0, 9, 198, 14, 195, 44, 85, 161, 65, 68, 0, 8, 197, 80, 16,
-			172, 72, 16, 65, 10, 67, 13, 82, 66, 49, 6, 121, 71, 0, 8, 197, 177, 53, 15, 72, 16, 77, 0, 6, 195, 24, 147, 9, 66, 0,
-			7, 196, 12, 20, 20, 84, 66, 10, 199, 20, 50, 9, 48, 144, 146, 4, 68, 10, 199, 16, 83, 79, 57, 53, 18, 4, 67, 10, 199, 13,
-			85, 18, 20, 145, 82, 4, 68, 10, 199, 12, 243, 131, 20, 229, 18, 4, 67, 0, 0, 8, 197, 82, 192, 197, 72, 80, 66, 11, 200, 64,
-			20, 148, 20, 225, 82, 84, 192, 67, 8, 197, 14, 193, 5, 72, 80, 66, 10, 135, 109, 105, 197, 159, 117, 110, 97, 67, 0, 9, 198, 77,
-			211, 135, 21, 32, 64, 67, 9, 198, 13, 83, 80, 177, 32, 64, 67, 7, 195, 7, 98, 64, 76, 32, 11, 67, 21, 32, 85, 57, 36, 16,
-			114, 0, 78, 7, 195, 16, 147, 128, 72, 28, 0, 10, 199, 4, 116, 137, 13, 83, 20, 84, 68, 0, 8, 197, 16, 85, 133, 56, 144, 67,
-			0, 8, 197, 82, 192, 197, 72, 144, 66, 0, 9, 198, 64, 203, 3, 21, 34, 64, 66, 0, 9, 198, 152, 224, 236, 72, 48, 64, 67, 0,
-			8, 197, 81, 33, 67, 20, 208, 65, 21, 71, 21, 129, 82, 12, 157, 137, 84, 36, 81, 88, 36, 34, 76, 6, 37, 123, 57, 40, 0, 0,
-			9, 198, 76, 195, 194, 61, 162, 64, 67, 9, 198, 16, 84, 197, 73, 98, 64, 67, 0, 7, 196, 12, 240, 201, 56, 65, 11, 136, 118, 101,
-			197, 159, 116, 101, 106, 105, 67, 0, 7, 196, 66, 192, 213, 72, 65, 7, 196, 5, 64, 67, 4, 67, 18, 70, 61, 34, 67, 116, 225, 0,
-			39, 16, 124, 49, 4, 112, 50, 72, 0, 76, 0, 0, 21, 71, 65, 33, 68, 37, 52, 21, 76, 48, 14, 16, 36, 72, 37, 89, 48, 6,
-			40, 89, 0, 0, 6, 195, 76, 244, 201, 66, 7, 195, 16, 20, 128, 72, 8, 0, 6, 195, 66, 196, 149, 66, 0, 8, 197, 89, 82, 69,
-			80, 80, 65, 8, 197, 76, 83, 69, 56, 80, 65, 0, 7, 196, 5, 66, 78, 28, 66, 0, 6, 195, 28, 19, 5, 66, 6, 195, 80, 19,
-			5, 77, 6, 195, 52, 83, 5, 77, 6, 195, 12, 83, 5, 77, 0, 7, 196, 52, 22, 9, 52, 65, 0, 8, 197, 16, 81, 137, 56, 144,
-			67, 0, 8, 197, 66, 196, 133, 72, 144, 66, 8, 197, 5, 53, 44, 104, 144, 65, 0, 9, 198, 152, 225, 140, 61, 34, 64, 67, 0, 0,
-			9, 134, 105, 101, 197, 159, 101, 97, 66, 8, 197, 37, 160, 149, 80, 144, 67, 16, 69, 61, 34, 67, 84, 208, 39, 16, 124, 49, 4, 40,
-			65, 0, 76, 0, 8, 66, 20, 144, 57, 118, 0, 76, 16, 66, 12, 208, 99, 101, 110, 116, 105, 109, 101, 116, 114, 105, 0, 29, 0, 0,
-			13, 68, 52, 81, 9, 84, 65, 6, 36, 72, 57, 40, 0, 9, 198, 152, 229, 5, 216, 80, 64, 67, 0, 12, 67, 81, 34, 79, 47, 14,
-			16, 6, 37, 39, 0, 8, 197, 24, 145, 82, 81, 80, 66, 0, 9, 198, 25, 84, 142, 37, 171, 0, 67, 0, 16, 70, 56, 147, 108, 57,
-			82, 64, 50, 37, 65, 13, 50, 6, 121, 0, 0, 6, 195, 81, 212, 129, 66, 0, 12, 201, 64, 20, 193, 28, 84, 137, 48, 244, 128, 67,
-			9, 198, 152, 224, 236, 64, 84, 133, 67, 0, 24, 73, 65, 34, 69, 80, 83, 149, 49, 82, 64, 48, 14, 16, 57, 6, 36, 47, 36, 50,
-			40, 55, 121, 0, 0, 9, 198, 52, 84, 193, 28, 84, 129, 67, 9, 198, 88, 240, 201, 24, 84, 129, 68, 9, 198, 77, 68, 133, 13, 84,
-			129, 67, 9, 198, 77, 5, 76, 8, 84, 129, 67, 9, 198, 36, 224, 201, 56, 84, 129, 68, 9, 198, 21, 128, 83, 64, 84, 129, 68, 9,
-			198, 16, 80, 197, 48, 84, 129, 68, 9, 198, 4, 115, 15, 52, 84, 129, 68, 9, 198, 4, 48, 197, 48, 84, 129, 68, 9, 198, 4, 49,
-			83, 80, 244, 129, 78, 0, 0, 8, 197, 48, 16, 210, 36, 208, 65, 8, 197, 24, 243, 15, 76, 144, 67, 7, 196, 105, 211, 66, 36, 66,
-			8, 197, 16, 243, 79, 48, 144, 67, 8, 197, 80, 240, 205, 4, 144, 73, 0, 10, 199, 152, 225, 200, 39, 98, 84, 84, 68, 0, 12, 200,
-			16, 84, 208, 177, 45, 137, 81, 80, 68, 48, 0, 6, 195, 50, 196, 193, 66, 0, 8, 197, 88, 144, 212, 36, 208, 65, 0, 9, 198, 12,
-			203, 20, 36, 235, 0, 67, 9, 198, 64, 245, 18, 37, 98, 64, 67, 10, 198, 64, 245, 133, 77, 66, 64, 67, 46, 0, 0, 0, 7, 196,
-			4, 209, 118, 36, 67, 0, 8, 197, 33, 212, 148, 36, 144, 66, 8, 197, 29, 209, 9, 48, 16, 67, 0, 9, 198, 82, 192, 197, 72, 146,
-			64, 66, 10, 67, 4, 128, 64, 35, 107, 6, 35, 0, 0, 0, 7, 196, 64, 19, 9, 16, 65, 0, 8, 197, 82, 197, 137, 218, 192, 66,
-			0, 6, 195, 12, 19, 5, 65, 9, 198, 4, 209, 78, 36, 237, 172, 66, 11, 67, 4, 99, 1, 35, 83, 55, 6, 35, 0, 6, 195, 76,
-			19, 5, 77, 10, 3, 226, 130, 172, 6, 115, 16, 39, 0, 0, 10, 199, 28, 130, 76, 36, 209, 76, 20, 67, 0, 0, 8, 197, 177, 53,
-			5, 36, 16, 77, 0, 0, 0, 0, 9, 198, 65, 35, 212, 20, 171, 0, 67, 8, 197, 152, 224, 213, 36, 80, 66, 15, 69, 33, 212, 148,
-			36, 80, 107, 112, 34, 47, 6, 37, 36, 0, 0, 6, 195, 52, 146, 137, 66, 0, 9, 198, 53, 211, 135, 116, 144, 64, 67, 0, 10, 199,
-			74, 196, 208, 85, 65, 82, 36, 67, 11, 200, 24, 84, 133, 77, 68, 149, 36, 80, 67, 12, 67, 9, 34, 79, 71, 14, 16, 6, 37, 39,
-			0, 7, 196, 18, 197, 78, 4, 67, 14, 4, 95, 111, 103, 111, 39, 81, 39, 50, 6, 36, 49, 0, 0, 10, 135, 197, 159, 101, 100, 101,
-			114, 101, 66, 8, 197, 13, 211, 132, 88, 16, 66, 8, 197, 5, 71, 82, 56, 16, 67, 0, 0, 9, 198, 65, 35, 212, 60, 51, 204, 67,
-			0, 10, 199, 152, 224, 200, 20, 145, 84, 84, 68, 0, 0, 9, 198, 152, 228, 197, 52, 224, 64, 67, 0, 7, 196, 21, 3, 195, 36, 65,
-			0, 6, 195, 21, 3, 195, 65, 10, 199, 152, 224, 193, 72, 49, 82, 4, 68, 0, 8, 197, 56, 80, 236, 40, 144, 67, 0, 13, 68, 74,
-			196, 21, 76, 34, 13, 48, 6, 40, 89, 0, 21, 71, 152, 235, 21, 57, 68, 149, 48, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 55,
-			0, 0, 7, 196, 80, 83, 69, 52, 65, 0, 0, 17, 70, 56, 144, 201, 13, 83, 64, 50, 37, 76, 124, 49, 6, 40, 65, 0, 20, 71,
-			16, 84, 195, 60, 212, 21, 76, 72, 36, 89, 49, 39, 65, 48, 6, 40, 89, 0, 9, 66, 20, 192, 57, 36, 55, 0, 76, 0, 15, 3,
-			95, 50, 48, 72, 39, 40, 13, 88, 6, 36, 76, 124, 0, 0, 6, 195, 14, 198, 149, 66, 7, 196, 37, 34, 84, 4, 67, 9, 198, 152,
-			208, 146, 176, 48, 64, 67, 7, 196, 21, 98, 84, 4, 67, 6, 195, 155, 98, 64, 72, 0, 9, 134, 99, 101, 114, 197, 159, 105, 66, 0,
-			0, 9, 198, 77, 83, 148, 23, 98, 64, 77, 6, 195, 152, 228, 236, 8, 0, 7, 196, 65, 84, 148, 4, 66, 7, 196, 5, 1, 76, 4,
-			67, 0, 0, 9, 198, 72, 84, 208, 37, 32, 64, 67, 9, 198, 65, 33, 80, 5, 32, 64, 67, 9, 198, 65, 33, 70, 21, 32, 64, 67,
-			9, 198, 60, 36, 197, 73, 96, 64, 67, 9, 198, 53, 84, 141, 85, 32, 64, 67, 9, 198, 20, 194, 66, 21, 32, 64, 68, 9, 198, 12,
-			243, 133, 13, 64, 64, 67, 9, 198, 53, 83, 20, 61, 32, 64, 77, 14, 4, 95, 98, 114, 118, 49, 13, 76, 6, 40, 55, 13, 0, 0,
-			6, 195, 88, 148, 129, 66, 6, 195, 52, 148, 129, 66, 15, 3, 95, 51, 48, 47, 14, 16, 118, 88, 6, 36, 76, 124, 0, 0, 10, 199,
-			16, 148, 212, 36, 225, 197, 52, 66, 10, 199, 8, 16, 212, 21, 34, 69, 36, 66, 12, 65, 152, 4, 112, 72, 37, 50, 6, 37, 0, 49,
-			0, 0, 12, 68, 100, 18, 15, 60, 57, 35, 107, 6, 40, 0, 7, 195, 65, 34, 78, 72, 28, 21, 4, 95, 97, 99, 50, 72, 6, 40,
-			71, 55, 40, 35, 89, 49, 40, 6, 123, 37, 47, 0, 0, 7, 196, 18, 196, 172, 80, 66, 15, 67, 12, 20, 133, 49, 35, 34, 36, 55,
-			0, 72, 81, 108, 32, 7, 195, 12, 20, 133, 73, 28, 0, 8, 197, 36, 208, 71, 36, 224, 66, 9, 198, 65, 33, 71, 177, 65, 65, 67,
-			0, 9, 198, 76, 147, 66, 60, 194, 67, 66, 13, 68, 66, 195, 5, 4, 48, 35, 55, 36, 6, 35, 0, 0, 0, 11, 136, 99, 114, 101,
-			197, 159, 116, 101, 97, 66, 26, 4, 197, 159, 46, 97, 91, 37, 11, 35, 91, 4, 35, 15, 65, 117, 15, 72, 36, 48, 6, 35, 34, 47,
-			36, 0, 0, 7, 196, 25, 34, 90, 84, 66, 0, 8, 197, 4, 113, 78, 81, 80, 67, 0, 8, 197, 12, 20, 5, 216, 144, 65, 0, 9,
-			198, 88, 147, 132, 23, 98, 64, 65, 9, 198, 60, 20, 208, 23, 98, 64, 65, 11, 136, 99, 114, 101, 197, 159, 116, 101, 109, 65, 9, 198,
-			48, 240, 193, 48, 150, 129, 68, 0, 0, 9, 198, 72, 81, 201, 104, 244, 128, 66, 8, 197, 4, 52, 137, 81, 80, 67, 10, 199, 152, 229,
-			143, 48, 37, 82, 4, 68, 9, 197, 64, 83, 148, 73, 80, 72, 28, 0, 8, 197, 77, 1, 82, 176, 208, 66, 11, 200, 72, 80, 197, 67,
-			98, 79, 56, 80, 68, 0, 11, 136, 99, 196, 131, 197, 159, 117, 110, 97, 67, 0, 7, 196, 5, 34, 80, 36, 65, 11, 5, 95, 111, 102,
-			77, 49, 65, 6, 132, 0, 0, 0, 0, 6, 195, 65, 85, 21, 66, 0, 0, 0, 9, 198, 20, 194, 77, 36, 235, 0, 66, 0, 11, 67,
-			13, 35, 201, 49, 34, 39, 6, 37, 0, 15, 3, 95, 51, 88, 47, 14, 16, 6, 118, 88, 36, 76, 124, 0, 13, 3, 95, 54, 48, 91,
-			117, 88, 6, 36, 76, 124, 0, 0, 11, 3, 95, 48, 67, 89, 6, 40, 47, 36, 0, 0, 9, 198, 77, 4, 137, 40, 147, 128, 65, 14,
-			68, 21, 32, 118, 36, 57, 36, 16, 35, 141, 124, 0, 78, 0, 8, 197, 13, 81, 197, 216, 144, 65, 8, 197, 5, 33, 5, 216, 144, 65,
-			17, 70, 20, 97, 67, 81, 80, 64, 36, 83, 36, 49, 47, 58, 6, 35, 0, 0, 0, 13, 68, 12, 244, 212, 4, 49, 39, 89, 47, 6,
-			35, 0, 0, 8, 197, 28, 80, 77, 176, 224, 65, 12, 4, 95, 48, 90, 51, 65, 6, 132, 65, 37, 0, 0, 8, 197, 216, 80, 80, 176,
-			224, 65, 7, 196, 80, 21, 44, 48, 65, 9, 198, 72, 240, 133, 73, 64, 64, 66, 7, 196, 10, 197, 44, 36, 66, 9, 198, 85, 66, 76,
-			37, 160, 64, 68, 9, 198, 80, 83, 80, 21, 32, 64, 67, 9, 198, 60, 34, 69, 13, 64, 64, 67, 9, 198, 21, 129, 67, 85, 64, 64,
-			68, 9, 198, 16, 148, 208, 21, 32, 64, 67, 9, 198, 16, 84, 9, 77, 64, 64, 67, 9, 198, 16, 83, 5, 13, 64, 64, 67, 9, 198,
-			5, 50, 71, 85, 32, 64, 68, 9, 198, 4, 49, 76, 61, 32, 64, 78, 9, 198, 4, 49, 65, 77, 64, 64, 76, 14, 4, 95, 48, 90,
-			50, 89, 6, 40, 47, 37, 65, 37, 0, 0, 11, 200, 152, 224, 236, 64, 84, 137, 48, 80, 67, 12, 67, 24, 20, 129, 83, 4, 13, 34,
-			13, 0, 8, 16, 3, 95, 55, 48, 91, 35, 48, 47, 36, 88, 6, 36, 76, 124, 0, 0, 13, 3, 95, 49, 67, 4, 39, 89, 6, 40,
-			47, 13, 0, 0, 9, 198, 13, 83, 80, 177, 43, 13, 67, 9, 198, 4, 65, 86, 177, 37, 76, 67, 0, 9, 198, 13, 39, 78, 12, 83,
-			128, 65, 0, 9, 198, 16, 84, 198, 176, 53, 64, 67, 0, 8, 197, 65, 34, 67, 36, 224, 65, 0, 9, 198, 65, 35, 193, 77, 11, 20,
-			65, 7, 196, 73, 209, 5, 4, 66, 7, 196, 18, 193, 5, 4, 66, 7, 196, 14, 193, 5, 4, 66, 0, 7, 196, 12, 20, 44, 80, 65,
-			6, 194, 48, 16, 72, 28, 20, 3, 95, 49, 57, 50, 6, 131, 13, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 9, 198, 16,
-			84, 195, 61, 11, 18, 66, 6, 195, 5, 3, 201, 66, 10, 67, 4, 99, 9, 35, 83, 55, 37, 0, 11, 136, 110, 196, 131, 197, 159, 116,
-			101, 97, 66, 19, 3, 95, 49, 56, 6, 39, 48, 123, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 10, 199, 17, 32, 71, 61, 53,
-			5, 4, 65, 10, 199, 12, 129, 82, 21, 53, 5, 4, 67, 10, 199, 65, 33, 76, 84, 225, 197, 4, 67, 16, 3, 95, 50, 67, 72, 6,
-			39, 40, 13, 89, 6, 40, 47, 36, 0, 0, 0, 8, 197, 8, 21, 5, 216, 144, 65, 9, 197, 65, 85, 5, 216, 144, 76, 32, 0, 9,
-			198, 12, 243, 210, 16, 243, 129, 68, 11, 136, 115, 102, 195, 162, 114, 197, 159, 105, 66, 0, 9, 198, 66, 196, 212, 74, 195, 64, 66, 6,
-			195, 5, 34, 80, 65, 10, 199, 16, 85, 5, 72, 210, 78, 4, 68, 0, 17, 70, 52, 19, 129, 28, 84, 128, 65, 6, 36, 50, 36, 75,
-			13, 34, 0, 9, 198, 12, 129, 83, 80, 244, 128, 65, 9, 198, 4, 49, 83, 80, 244, 128, 78, 0, 10, 199, 152, 229, 29, 53, 2, 78,
-			4, 68, 19, 3, 95, 49, 49, 6, 40, 50, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 17, 70, 88, 241, 1, 24, 243, 133,
-			84, 6, 39, 72, 35, 83, 39, 50, 0, 7, 196, 28, 150, 143, 72, 65, 11, 3, 95, 49, 48, 88, 6, 36, 76, 36, 0, 0, 10, 199,
-			16, 84, 195, 32, 145, 5, 52, 66, 9, 198, 152, 224, 213, 72, 18, 129, 68, 21, 3, 95, 49, 51, 47, 14, 16, 6, 118, 89, 48, 14,
-			16, 36, 88, 4, 36, 76, 36, 0, 0, 9, 198, 89, 211, 172, 82, 194, 64, 67, 9, 198, 4, 203, 20, 85, 43, 13, 68, 10, 199, 72,
-			80, 67, 216, 147, 206, 4, 67, 7, 196, 14, 195, 3, 4, 66, 6, 194, 152, 224, 72, 28, 19, 3, 95, 49, 50, 72, 6, 120, 89, 48,
-			14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 8, 197, 4, 229, 78, 216, 16, 67, 20, 3, 95, 49, 53, 76, 6, 37, 50, 89, 48, 14,
-			16, 36, 88, 4, 36, 76, 36, 0, 0, 19, 3, 95, 49, 52, 48, 6, 117, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 10,
-			199, 36, 229, 5, 73, 162, 67, 20, 67, 10, 199, 12, 144, 193, 81, 34, 67, 20, 67, 10, 199, 4, 69, 133, 57, 66, 67, 20, 67, 22,
-			3, 95, 49, 55, 91, 6, 35, 48, 47, 36, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 19, 3, 95, 49, 54, 91, 6, 117,
-			89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 7, 196, 74, 193, 197, 80, 65, 0, 16, 3, 95, 55, 88, 91, 6, 35, 48, 47,
-			36, 88, 36, 76, 124, 0, 0, 7, 196, 4, 210, 67, 20, 66, 14, 68, 61, 34, 67, 20, 39, 16, 124, 76, 4, 36, 0, 75, 0, 0,
-			9, 198, 104, 115, 205, 61, 65, 64, 65, 9, 198, 52, 20, 148, 61, 33, 64, 65, 9, 198, 24, 244, 134, 61, 75, 0, 65, 9, 198, 16,
-			240, 212, 61, 33, 64, 65, 9, 198, 12, 84, 131, 21, 75, 0, 67, 0, 0, 13, 68, 13, 85, 9, 4, 49, 40, 47, 6, 37, 35, 0,
-			0, 9, 198, 152, 229, 29, 53, 3, 1, 67, 0, 13, 68, 5, 43, 54, 36, 35, 34, 6, 13, 123, 124, 0, 0, 6, 195, 64, 245, 5,
-			66, 6, 195, 60, 101, 1, 66, 0, 13, 5, 197, 159, 116, 105, 101, 91, 47, 6, 37, 36, 0, 9, 198, 77, 211, 66, 177, 64, 64, 65,
-			0, 0, 11, 200, 16, 148, 212, 36, 225, 197, 216, 144, 66, 0, 6, 195, 84, 149, 1, 66, 15, 4, 95, 97, 99, 117, 35, 89, 49, 40,
-			123, 6, 37, 47, 0, 0, 8, 197, 21, 128, 77, 20, 224, 66, 13, 5, 197, 159, 116, 105, 97, 91, 47, 6, 57, 35, 0, 0, 0, 0,
-			17, 3, 95, 52, 48, 48, 35, 47, 14, 16, 40, 88, 6, 36, 76, 124, 0, 0, 9, 198, 16, 84, 15, 104, 149, 0, 66, 4, 193, 160,
-			43, 0, 7, 196, 81, 211, 172, 72, 65, 0, 7, 196, 37, 4, 207, 76, 65, 9, 198, 12, 20, 129, 12, 19, 0, 66, 0, 7, 196, 29,
-			83, 5, 72, 65, 6, 195, 48, 148, 9, 66, 0, 11, 200, 56, 244, 212, 36, 209, 76, 61, 32, 65, 11, 200, 36, 224, 77, 36, 50, 76,
-			61, 32, 67, 10, 199, 13, 85, 18, 20, 213, 82, 4, 68, 6, 195, 8, 253, 137, 66, 7, 195, 88, 93, 137, 76, 32, 0, 16, 70, 8,
-			195, 199, 28, 84, 128, 71, 55, 6, 39, 81, 13, 34, 0, 11, 3, 95, 50, 102, 72, 6, 39, 40, 13, 0, 0, 9, 198, 152, 229, 172,
-			82, 197, 21, 68, 9, 198, 152, 237, 133, 66, 197, 21, 68, 0, 11, 200, 64, 145, 80, 82, 195, 172, 81, 80, 68, 8, 197, 66, 196, 172,
-			76, 144, 67, 15, 3, 95, 50, 88, 72, 6, 39, 40, 13, 88, 36, 76, 124, 0, 14, 3, 95, 53, 48, 76, 37, 50, 88, 6, 36, 76,
-			124, 0, 0, 7, 196, 12, 194, 80, 36, 66, 0, 7, 196, 8, 149, 143, 48, 65, 0, 0, 8, 197, 82, 197, 137, 216, 80, 66, 8, 197,
-			74, 192, 206, 21, 64, 65, 0, 12, 137, 99, 195, 162, 197, 159, 116, 105, 103, 97, 67, 0, 0, 0, 10, 67, 52, 144, 64, 65, 6, 37,
-			35, 0, 6, 195, 85, 36, 201, 66, 0, 7, 196, 76, 244, 197, 4, 66, 7, 196, 24, 84, 133, 4, 66, 7, 196, 84, 225, 73, 4, 77,
-			7, 196, 84, 229, 73, 4, 77, 0, 0, 9, 198, 77, 81, 140, 21, 65, 64, 65, 9, 198, 64, 16, 207, 77, 65, 64, 65, 9, 198, 13,
-			32, 84, 21, 33, 64, 65, 18, 70, 61, 34, 67, 5, 33, 64, 39, 16, 124, 49, 4, 35, 16, 36, 0, 76, 0, 6, 195, 12, 80, 64,
-			76, 0, 13, 68, 16, 85, 137, 4, 72, 36, 84, 37, 6, 35, 0, 15, 3, 95, 63, 63, 49, 35, 16, 35, 49, 47, 6, 36, 34, 0,
-			0, 11, 200, 65, 35, 212, 60, 51, 193, 48, 80, 67, 0, 8, 197, 61, 1, 82, 176, 208, 67, 8, 197, 36, 229, 18, 176, 208, 66, 0,
-			10, 67, 52, 145, 64, 65, 6, 37, 36, 0, 6, 195, 12, 85, 129, 66, 9, 198, 16, 84, 198, 84, 225, 1, 67, 9, 198, 12, 243, 134,
-			84, 225, 1, 67, 17, 3, 95, 52, 88, 48, 6, 35, 47, 14, 16, 40, 88, 36, 76, 124, 0, 0, 0, 0, 0, 6, 195, 88, 245, 1,
-			66, 0, 17, 70, 152, 224, 73, 57, 65, 65, 112, 50, 35, 6, 37, 50, 47, 135, 0, 0, 0, 11, 66, 48, 80, 55, 135, 0, 72, 81,
-			97, 32, 13, 66, 48, 80, 55, 135, 34, 0, 72, 81, 97, 114, 32, 16, 66, 48, 80, 55, 135, 123, 124, 0, 72, 81, 97, 197, 163, 105,
-			32, 13, 66, 48, 80, 55, 135, 57, 0, 72, 81, 97, 105, 32, 13, 66, 48, 80, 55, 135, 65, 0, 72, 81, 97, 109, 32, 11, 66, 48,
-			80, 55, 135, 0, 72, 81, 97, 32, 5, 194, 48, 80, 72, 15, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 101, 0, 29, 0, 8,
-			197, 66, 196, 236, 72, 144, 65, 14, 3, 95, 53, 88, 76, 6, 37, 50, 88, 36, 76, 124, 0, 14, 3, 95, 56, 48, 39, 48, 47, 88,
-			6, 36, 76, 124, 0, 0, 9, 198, 81, 35, 211, 56, 85, 0, 65, 10, 199, 77, 80, 133, 77, 66, 77, 4, 68, 0, 0, 9, 198, 65,
-			35, 198, 21, 51, 210, 66, 9, 198, 12, 244, 133, 13, 69, 64, 67, 0, 9, 198, 8, 243, 66, 176, 225, 64, 65, 7, 195, 88, 242, 64,
-			76, 32, 6, 195, 52, 18, 64, 72, 6, 195, 88, 242, 64, 76, 6, 195, 56, 242, 64, 76, 6, 195, 12, 82, 64, 76, 0, 9, 198, 90,
-			196, 147, 177, 69, 64, 67, 9, 198, 81, 43, 19, 177, 69, 64, 67, 6, 195, 66, 193, 21, 66, 9, 198, 13, 43, 16, 177, 69, 64, 67,
-			9, 198, 14, 195, 3, 177, 69, 64, 67, 0, 9, 198, 90, 194, 69, 82, 197, 21, 68, 9, 198, 57, 83, 108, 74, 197, 21, 68, 9, 198,
-			54, 197, 21, 74, 197, 21, 68, 9, 198, 152, 226, 149, 74, 197, 21, 68, 9, 198, 152, 208, 149, 14, 197, 21, 68, 9, 198, 4, 71, 78,
-			14, 197, 21, 68, 9, 198, 16, 84, 208, 177, 45, 137, 67, 7, 196, 13, 212, 141, 36, 66, 0, 0, 12, 201, 104, 68, 149, 56, 50, 78,
-			177, 69, 64, 68, 15, 140, 195, 174, 109, 112, 117, 197, 159, 99, 196, 131, 116, 117, 68, 13, 3, 95, 54, 88, 91, 6, 117, 88, 36, 76,
-			124, 0, 14, 3, 95, 57, 48, 50, 131, 13, 88, 6, 36, 76, 124, 0, 0, 8, 197, 89, 83, 20, 85, 32, 65, 9, 198, 216, 19, 132,
-			177, 32, 64, 65, 9, 198, 24, 203, 3, 177, 32, 64, 65, 8, 197, 13, 32, 84, 21, 32, 65, 10, 199, 4, 53, 80, 84, 224, 212, 84,
-			68, 0, 17, 142, 195, 174, 110, 102, 196, 131, 197, 159, 117, 114, 196, 131, 116, 117, 69, 0, 11, 200, 152, 229, 146, 20, 67, 137, 12, 144,
-			68, 0, 19, 8, 101, 120, 39, 111, 116, 105, 99, 101, 36, 81, 88, 39, 47, 37, 76, 36, 0, 7, 195, 88, 243, 64, 76, 32, 0, 6,
-			195, 10, 193, 193, 66, 0, 0, 0, 11, 67, 17, 37, 77, 72, 34, 6, 40, 65, 0, 0, 7, 196, 4, 35, 206, 4, 67, 6, 195, 74,
-			192, 201, 66, 8, 196, 64, 240, 84, 20, 76, 32, 0, 8, 197, 76, 80, 207, 48, 80, 65, 11, 200, 64, 244, 148, 60, 48, 76, 37, 80,
-			68, 8, 197, 52, 243, 137, 12, 16, 66, 8, 197, 24, 20, 207, 48, 80, 66, 8, 197, 88, 244, 130, 20, 16, 66, 8, 197, 88, 19, 15,
-			72, 16, 67, 8, 197, 80, 243, 5, 72, 16, 67, 8, 197, 77, 68, 137, 12, 16, 66, 15, 69, 77, 64, 71, 56, 16, 89, 47, 35, 81,
-			50, 6, 35, 0, 8, 197, 72, 83, 5, 88, 16, 67, 8, 197, 72, 81, 201, 104, 16, 67, 8, 197, 72, 81, 149, 104, 16, 67, 8, 197,
-			64, 244, 142, 20, 16, 66, 8, 197, 60, 35, 9, 28, 16, 67, 7, 196, 4, 219, 7, 36, 67, 0, 7, 196, 56, 147, 73, 12, 66, 0,
-			9, 198, 24, 19, 129, 80, 144, 201, 66, 0, 12, 67, 81, 43, 9, 47, 14, 16, 13, 6, 37, 0, 0, 8, 197, 85, 35, 5, 80, 80,
-			65, 8, 197, 84, 197, 9, 52, 80, 65, 8, 197, 81, 84, 133, 48, 80, 66, 8, 197, 81, 83, 133, 80, 80, 65, 8, 197, 77, 83, 133,
-			80, 80, 65, 8, 197, 72, 84, 5, 16, 80, 65, 8, 197, 72, 18, 15, 88, 16, 65, 8, 197, 64, 84, 132, 20, 16, 66, 8, 197, 64,
-			19, 9, 16, 80, 65, 8, 197, 56, 147, 73, 12, 16, 66, 8, 197, 84, 212, 12, 20, 16, 66, 8, 197, 72, 84, 5, 72, 16, 67, 8,
-			197, 72, 84, 1, 72, 16, 67, 8, 197, 16, 84, 208, 72, 80, 28, 0, 7, 196, 64, 149, 9, 12, 66, 0, 9, 198, 152, 224, 73, 57,
-			64, 64, 67, 14, 3, 95, 56, 88, 6, 39, 48, 47, 88, 36, 76, 124, 0, 0, 10, 199, 16, 80, 207, 56, 80, 212, 4, 68, 0, 0,
-			9, 198, 72, 81, 197, 49, 82, 64, 65, 12, 201, 21, 132, 5, 72, 147, 69, 57, 64, 64, 69, 0, 9, 198, 16, 85, 78, 177, 162, 64,
-			68, 9, 198, 58, 196, 21, 77, 66, 64, 67, 9, 198, 152, 212, 12, 21, 66, 64, 67, 0, 9, 198, 105, 81, 210, 177, 97, 65, 67, 9,
-			198, 152, 229, 29, 48, 226, 64, 67, 0, 9, 198, 66, 196, 236, 73, 82, 69, 67, 7, 196, 48, 21, 5, 96, 65, 8, 197, 17, 84, 133,
-			72, 144, 66, 9, 198, 14, 195, 108, 73, 82, 69, 67, 11, 200, 8, 192, 71, 61, 51, 15, 88, 144, 68, 0, 7, 196, 53, 86, 137, 44,
-			65, 9, 198, 52, 20, 148, 61, 34, 64, 65, 10, 66, 48, 112, 36, 55, 75, 6, 37, 0, 0, 14, 3, 95, 57, 88, 50, 6, 131, 13,
-			88, 36, 76, 124, 0, 0, 29, 13, 112, 114, 101, 197, 159, 101, 100, 105, 110, 197, 163, 105, 101, 48, 14, 16, 36, 91, 36, 72, 37, 50,
-			123, 6, 37, 36, 0, 9, 198, 74, 195, 93, 56, 80, 64, 67, 0, 10, 199, 25, 34, 71, 177, 37, 73, 20, 67, 9, 198, 77, 75, 16,
-			116, 225, 65, 67, 0, 9, 198, 64, 240, 206, 37, 69, 64, 67, 9, 198, 28, 20, 142, 37, 69, 64, 67, 13, 68, 16, 81, 21, 76, 72,
-			36, 72, 6, 40, 89, 0, 8, 197, 72, 81, 236, 76, 144, 67, 0, 9, 198, 152, 225, 15, 37, 69, 64, 68, 0, 9, 198, 77, 64, 78,
-			16, 20, 132, 65, 12, 137, 112, 105, 197, 159, 99, 196, 131, 116, 117, 67, 10, 199, 4, 197, 21, 56, 65, 86, 4, 68, 10, 199, 4, 197,
-			3, 36, 225, 86, 4, 68, 0, 8, 197, 48, 245, 137, 81, 80, 67, 13, 138, 115, 196, 131, 118, 195, 162, 114, 197, 159, 105, 67, 0, 8,
-			197, 64, 20, 236, 72, 80, 65, 9, 198, 4, 49, 65, 77, 75, 0, 76, 0, 11, 200, 152, 224, 210, 20, 225, 236, 81, 80, 68, 6, 195,
-			5, 35, 85, 66, 0, 15, 69, 24, 243, 4, 21, 32, 83, 6, 39, 55, 72, 13, 34, 0, 0, 8, 197, 12, 243, 132, 20, 144, 66, 7,
-			196, 5, 11, 19, 4, 67, 0, 16, 70, 20, 147, 147, 80, 82, 78, 6, 117, 50, 91, 47, 117, 50, 0, 0, 9, 198, 66, 194, 65, 56,
-			161, 78, 66, 0, 9, 198, 152, 224, 236, 49, 162, 64, 67, 0, 9, 197, 80, 245, 21, 76, 144, 65, 28, 12, 4, 95, 115, 116, 107, 89,
-			55, 6, 36, 91, 0, 0, 9, 198, 12, 243, 147, 36, 65, 82, 66, 17, 7, 118, 111, 197, 159, 116, 114, 105, 84, 39, 91, 47, 16, 37,
-			0, 77, 0, 14, 66, 78, 192, 89, 13, 126, 124, 0, 72, 81, 109, 105, 32, 15, 66, 78, 192, 89, 13, 97, 124, 0, 72, 81, 197, 159,
-			105, 32, 11, 66, 78, 192, 89, 129, 0, 72, 81, 105, 32, 12, 66, 78, 192, 89, 13, 55, 0, 72, 81, 108, 32, 5, 194, 78, 192, 72,
-			5, 194, 14, 192, 76, 6, 194, 36, 224, 72, 28, 0, 0, 0, 7, 65, 176, 6, 13, 0, 49, 0, 0, 8, 197, 77, 5, 78, 20, 16,
-			66, 8, 197, 32, 242, 15, 80, 80, 65, 14, 69, 28, 243, 199, 48, 80, 81, 6, 40, 81, 13, 55, 0, 8, 197, 104, 34, 69, 72, 16,
-			66, 8, 197, 17, 82, 14, 20, 16, 66, 8, 197, 16, 145, 197, 72, 16, 67, 8, 197, 16, 81, 197, 72, 16, 67, 8, 197, 9, 80, 213,
-			72, 16, 67, 0, 7, 196, 48, 241, 201, 12, 65, 0, 8, 197, 36, 224, 77, 36, 48, 67, 8, 197, 12, 130, 77, 36, 48, 65, 6, 195,
-			12, 149, 9, 66, 6, 195, 65, 211, 172, 8, 0, 9, 198, 14, 193, 5, 72, 147, 5, 66, 7, 196, 4, 69, 78, 4, 67, 0, 8, 197,
-			88, 20, 201, 48, 80, 66, 8, 197, 56, 85, 5, 16, 80, 65, 8, 197, 52, 241, 5, 48, 80, 66, 8, 197, 32, 18, 1, 48, 80, 67,
-			8, 197, 16, 81, 197, 80, 80, 65, 8, 197, 12, 20, 5, 80, 80, 65, 8, 197, 5, 37, 5, 72, 16, 66, 8, 197, 77, 81, 197, 72,
-			16, 67, 11, 200, 72, 84, 18, 21, 161, 78, 80, 16, 68, 8, 197, 64, 194, 77, 8, 16, 66, 8, 197, 61, 33, 15, 56, 16, 67, 8,
-			197, 52, 241, 5, 72, 16, 67, 15, 69, 21, 99, 204, 84, 16, 36, 84, 39, 55, 58, 6, 35, 0, 7, 196, 13, 211, 148, 4, 66, 13,
-			69, 16, 242, 76, 20, 16, 72, 6, 120, 55, 135, 0, 8, 197, 52, 21, 1, 48, 80, 78, 0, 8, 197, 74, 193, 197, 80, 80, 65, 0,
-			20, 71, 76, 84, 150, 36, 50, 85, 48, 89, 36, 34, 84, 6, 37, 76, 57, 40, 55, 0, 0, 0, 8, 197, 88, 81, 5, 72, 144, 66,
-			8, 197, 72, 84, 5, 104, 144, 65, 8, 197, 65, 35, 208, 84, 144, 66, 8, 197, 64, 149, 9, 12, 144, 66, 8, 197, 64, 19, 9, 104,
-			144, 65, 8, 197, 48, 145, 5, 72, 144, 65, 21, 71, 16, 147, 172, 84, 229, 18, 84, 72, 37, 50, 13, 6, 40, 50, 47, 14, 16, 40,
-			0, 8, 197, 76, 100, 137, 40, 144, 66, 8, 197, 13, 80, 197, 72, 144, 67, 0, 0, 10, 67, 61, 43, 0, 6, 39, 34, 13, 0, 9,
-			198, 4, 49, 83, 80, 82, 65, 78, 0, 6, 195, 82, 194, 69, 66, 14, 66, 56, 80, 50, 135, 89, 0, 72, 81, 97, 197, 159, 32, 13,
-			66, 56, 80, 50, 135, 34, 0, 72, 81, 97, 114, 32, 13, 66, 56, 80, 50, 135, 65, 0, 72, 81, 97, 109, 32, 12, 137, 97, 197, 159,
-			116, 101, 114, 110, 101, 97, 67, 7, 196, 76, 84, 150, 36, 66, 5, 194, 56, 80, 72, 15, 66, 52, 112, 109, 105, 108, 105, 103, 114, 97,
-			109, 101, 0, 29, 0, 8, 197, 12, 194, 78, 80, 144, 66, 8, 197, 13, 85, 133, 56, 144, 67, 0, 9, 198, 64, 144, 212, 61, 34, 64,
-			65, 9, 198, 24, 16, 212, 61, 34, 64, 65, 9, 198, 4, 36, 207, 49, 98, 64, 68, 0, 18, 70, 24, 20, 134, 85, 34, 69, 83, 35,
-			34, 83, 40, 16, 6, 37, 36, 0, 0, 7, 196, 12, 83, 148, 84, 66, 0, 7, 196, 88, 81, 5, 72, 66, 7, 196, 72, 17, 1, 72,
-			65, 7, 196, 48, 145, 5, 72, 65, 0, 0, 0, 12, 66, 57, 80, 50, 40, 37, 0, 72, 81, 105, 32, 10, 199, 72, 85, 133, 72, 33,
-			82, 4, 68, 5, 194, 57, 80, 76, 19, 4, 95, 99, 105, 114, 76, 37, 34, 49, 40, 65, 83, 55, 6, 36, 49, 89, 0, 0, 7, 196,
-			64, 17, 201, 56, 65, 11, 200, 4, 67, 73, 56, 148, 212, 72, 16, 68, 0, 15, 4, 95, 48, 77, 52, 71, 37, 55, 6, 57, 138, 50,
-			36, 0, 0, 6, 195, 13, 84, 213, 66, 9, 198, 89, 211, 148, 85, 32, 64, 67, 9, 198, 152, 225, 137, 21, 32, 64, 67, 9, 198, 4,
-			203, 20, 85, 32, 64, 68, 16, 4, 95, 48, 77, 53, 71, 37, 55, 6, 57, 35, 34, 72, 36, 0, 0, 15, 4, 95, 48, 77, 50, 65,
-			37, 55, 6, 57, 138, 50, 36, 0, 0, 8, 197, 8, 244, 132, 20, 144, 66, 8, 197, 5, 4, 137, 28, 144, 65, 6, 195, 13, 83, 64,
-			8, 16, 4, 95, 48, 77, 51, 65, 37, 55, 6, 57, 35, 34, 72, 36, 0, 0, 12, 201, 72, 81, 67, 32, 147, 9, 9, 32, 64, 69,
-			0, 22, 72, 76, 83, 73, 65, 35, 196, 85, 48, 89, 36, 65, 37, 48, 16, 39, 72, 6, 40, 89, 0, 6, 195, 12, 84, 149, 66, 10,
-			198, 4, 203, 20, 85, 34, 64, 66, 28, 10, 4, 95, 48, 77, 49, 65, 6, 132, 0, 0, 7, 196, 84, 209, 90, 36, 65, 0, 8, 197,
-			64, 84, 5, 56, 144, 65, 15, 69, 44, 245, 133, 76, 144, 49, 6, 39, 84, 36, 91, 37, 0, 8, 197, 28, 150, 143, 72, 144, 65, 8,
-			197, 12, 243, 147, 84, 208, 66, 8, 197, 52, 148, 143, 76, 144, 67, 8, 197, 4, 67, 210, 52, 144, 67, 6, 195, 36, 20, 128, 8, 0,
-			9, 198, 89, 83, 20, 85, 34, 64, 65, 0, 7, 196, 16, 21, 137, 16, 65, 6, 195, 24, 84, 137, 66, 0, 13, 68, 13, 85, 9, 20,
-			49, 40, 47, 6, 37, 36, 0, 0, 10, 199, 66, 194, 65, 56, 161, 78, 36, 66, 6, 195, 52, 20, 143, 66, 7, 195, 88, 244, 128, 76,
-			32, 0, 0, 9, 198, 16, 84, 15, 104, 149, 5, 66, 9, 198, 53, 83, 54, 84, 210, 64, 67, 0, 9, 198, 152, 224, 201, 56, 113, 77,
-			66, 0, 8, 197, 53, 81, 197, 80, 80, 65, 16, 4, 95, 108, 105, 103, 55, 37, 81, 35, 47, 6, 40, 34, 13, 0, 0, 0, 9, 198,
-			17, 83, 78, 20, 21, 1, 79, 0, 7, 196, 64, 21, 9, 52, 65, 0, 0, 0, 0, 7, 196, 48, 148, 19, 36, 66, 9, 194, 52, 144,
-			72, 81, 97, 114, 32, 9, 194, 52, 144, 72, 81, 97, 105, 32, 9, 194, 52, 144, 72, 81, 97, 109, 32, 13, 66, 52, 144, 65, 37, 4,
-			36, 0, 72, 81, 101, 32, 5, 194, 52, 144, 72, 29, 66, 44, 208, 49, 37, 55, 39, 65, 6, 36, 47, 14, 16, 37, 11, 48, 36, 15,
-			6, 39, 34, 13, 0, 82, 47, 32, 104, 32, 15, 66, 44, 208, 107, 105, 108, 111, 109, 101, 116, 114, 105, 0, 29, 0, 15, 6, 197, 159,
-			101, 102, 105, 97, 91, 36, 83, 6, 37, 35, 0, 0, 7, 196, 12, 240, 207, 76, 65, 0, 0, 9, 198, 152, 229, 137, 56, 113, 65, 67,
-			0, 17, 68, 16, 147, 148, 72, 72, 37, 50, 47, 14, 34, 39, 0, 81, 111, 32, 0, 10, 199, 152, 237, 133, 48, 81, 197, 4, 68, 0,
-			8, 197, 12, 244, 205, 61, 48, 65, 9, 198, 72, 81, 197, 56, 84, 129, 68, 8, 197, 74, 197, 44, 12, 144, 67, 8, 197, 74, 197, 44,
-			12, 144, 67, 17, 70, 152, 227, 15, 13, 82, 64, 112, 50, 55, 39, 49, 40, 6, 37, 0, 0, 17, 70, 77, 84, 144, 49, 84, 192, 89,
-			40, 16, 48, 55, 6, 40, 89, 0, 10, 199, 77, 80, 143, 72, 66, 78, 20, 66, 9, 198, 74, 195, 93, 56, 83, 64, 66, 10, 199, 88,
-			150, 149, 4, 194, 90, 4, 68, 0, 0, 0, 9, 198, 48, 149, 5, 72, 21, 21, 68, 9, 198, 72, 80, 213, 64, 84, 129, 68, 9, 198,
-			48, 81, 201, 24, 84, 129, 68, 9, 198, 16, 83, 9, 8, 84, 129, 68, 9, 198, 16, 81, 197, 56, 84, 129, 68, 0, 7, 196, 8, 21,
-			5, 52, 65, 7, 196, 76, 197, 74, 36, 66, 0, 8, 197, 56, 85, 5, 104, 144, 65, 0, 10, 199, 88, 147, 143, 90, 205, 137, 36, 68,
-			0, 9, 198, 64, 20, 193, 28, 84, 137, 67, 6, 195, 5, 36, 213, 66, 9, 198, 152, 212, 12, 36, 226, 64, 67, 0, 6, 195, 66, 196,
-			193, 66, 0, 8, 197, 4, 225, 18, 20, 144, 66, 7, 196, 64, 203, 20, 36, 66, 9, 198, 152, 212, 44, 81, 84, 137, 69, 0, 7, 196,
-			74, 195, 93, 36, 66, 0, 9, 198, 36, 229, 5, 72, 84, 193, 68, 0, 13, 68, 64, 149, 73, 20, 48, 6, 37, 40, 37, 36, 0, 7,
-			196, 72, 148, 195, 4, 66, 0, 7, 196, 5, 97, 118, 36, 76, 6, 195, 77, 80, 128, 28, 0, 0, 8, 197, 152, 229, 172, 218, 192, 67,
-			0, 10, 199, 66, 196, 148, 36, 50, 67, 176, 67, 7, 196, 20, 97, 77, 20, 67, 0, 0, 8, 197, 104, 37, 82, 176, 208, 66, 0, 9,
-			198, 65, 33, 79, 13, 84, 1, 67, 0, 7, 196, 36, 229, 9, 52, 65, 7, 196, 5, 33, 5, 52, 65, 0, 11, 67, 61, 5, 83, 39,
-			48, 6, 40, 89, 0, 11, 67, 5, 5, 83, 35, 48, 6, 40, 89, 0, 9, 198, 5, 11, 18, 177, 34, 73, 67, 0, 14, 4, 95, 99,
-			101, 100, 89, 36, 72, 6, 37, 55, 13, 0, 0, 0, 5, 194, 56, 144, 72, 9, 198, 58, 196, 21, 77, 65, 65, 67, 6, 194, 64, 80,
-			72, 28, 0, 9, 134, 197, 159, 111, 115, 101, 97, 66, 0, 0, 8, 197, 52, 20, 137, 85, 48, 65, 6, 195, 16, 244, 137, 66, 9, 198,
-			16, 84, 203, 80, 244, 0, 65, 7, 196, 16, 81, 197, 80, 65, 7, 196, 13, 81, 197, 80, 65, 18, 70, 12, 243, 148, 36, 229, 65, 49,
-			39, 50, 47, 37, 50, 58, 6, 35, 0, 0, 0, 8, 197, 25, 32, 67, 81, 80, 66, 9, 198, 152, 224, 210, 23, 97, 65, 67, 0, 11,
-			200, 4, 192, 76, 82, 194, 69, 72, 144, 66, 0, 7, 196, 85, 35, 5, 80, 65, 7, 196, 81, 83, 133, 80, 65, 16, 69, 81, 32, 68,
-			85, 48, 47, 14, 16, 35, 72, 6, 40, 89, 0, 12, 67, 80, 22, 9, 47, 6, 35, 49, 89, 37, 0, 7, 196, 77, 83, 133, 80, 65,
-			16, 69, 17, 32, 68, 85, 48, 47, 14, 16, 35, 72, 6, 40, 89, 0, 9, 198, 76, 51, 9, 24, 244, 201, 67, 0, 9, 198, 104, 119,
-			82, 36, 85, 21, 68, 9, 198, 77, 68, 157, 56, 113, 77, 65, 0, 15, 69, 76, 84, 135, 37, 80, 89, 6, 36, 34, 75, 57, 40, 0,
-			0, 17, 4, 95, 99, 97, 112, 65, 35, 90, 40, 89, 49, 6, 40, 55, 13, 0, 0, 9, 198, 12, 20, 137, 12, 21, 21, 68, 0, 8,
-			196, 65, 85, 5, 52, 76, 32, 0, 9, 198, 152, 224, 236, 36, 84, 129, 68, 0, 12, 201, 20, 98, 67, 36, 83, 148, 37, 160, 64, 69,
-			0, 0, 15, 66, 52, 192, 109, 105, 108, 105, 108, 105, 116, 114, 105, 0, 29, 0, 0, 0, 6, 195, 84, 193, 73, 66, 0, 13, 68, 88,
-			242, 76, 4, 84, 40, 35, 55, 6, 35, 0, 8, 197, 28, 84, 129, 72, 64, 65, 7, 196, 21, 64, 76, 4, 67, 8, 3, 95, 196, 131,
-			6, 13, 0, 0, 0, 8, 197, 65, 83, 133, 216, 144, 65, 13, 3, 197, 159, 105, 91, 124, 35, 0, 72, 81, 97, 32, 9, 198, 81, 34,
-			85, 52, 96, 64, 67, 9, 198, 28, 84, 141, 36, 224, 64, 67, 9, 198, 21, 128, 77, 36, 224, 64, 68, 9, 198, 12, 19, 3, 84, 192,
-			64, 67, 9, 198, 5, 48, 213, 49, 64, 64, 67, 9, 198, 4, 53, 77, 84, 192, 64, 68, 6, 131, 197, 159, 105, 72, 0, 9, 198, 81,
-			33, 67, 23, 98, 64, 65, 17, 70, 77, 5, 78, 23, 98, 64, 89, 48, 6, 40, 50, 36, 123, 124, 0, 11, 67, 52, 147, 73, 65, 6,
-			37, 65, 37, 0, 9, 198, 12, 243, 148, 72, 243, 1, 67, 11, 136, 195, 174, 110, 197, 159, 101, 108, 97, 67, 0, 9, 198, 152, 229, 9,
-			56, 65, 77, 66, 0, 0, 7, 196, 48, 17, 236, 72, 65, 9, 198, 40, 20, 15, 56, 144, 64, 66, 9, 198, 152, 224, 197, 72, 59, 0,
-			67, 9, 198, 21, 132, 5, 16, 144, 64, 67, 9, 198, 17, 84, 133, 72, 80, 64, 66, 9, 198, 72, 84, 12, 36, 48, 64, 67, 9, 198,
-			56, 147, 69, 72, 80, 64, 67, 9, 198, 21, 132, 12, 36, 48, 64, 67, 9, 198, 16, 245, 133, 16, 80, 64, 67, 9, 198, 104, 80, 197,
-			48, 80, 64, 65, 9, 198, 61, 5, 21, 48, 80, 64, 65, 0, 9, 198, 152, 224, 197, 64, 83, 64, 66, 9, 198, 28, 19, 2, 20, 226,
-			73, 65, 0, 0, 0, 0, 9, 198, 152, 225, 210, 61, 162, 64, 67, 9, 198, 8, 193, 83, 80, 83, 65, 67, 6, 195, 24, 16, 197, 76,
-			13, 3, 95, 195, 174, 4, 112, 72, 37, 50, 6, 37, 0, 0, 7, 196, 72, 244, 212, 36, 66, 5, 194, 76, 16, 76, 15, 66, 52, 208,
-			109, 105, 108, 105, 109, 101, 116, 114, 105, 0, 29, 0, 7, 196, 216, 147, 133, 4, 66, 7, 196, 66, 198, 133, 4, 66, 0, 23, 72, 77,
-			84, 18, 20, 208, 118, 36, 80, 89, 40, 48, 14, 16, 36, 65, 35, 123, 6, 37, 36, 0, 9, 198, 72, 245, 15, 12, 243, 0, 67, 9,
-			198, 13, 85, 157, 57, 75, 0, 67, 0, 8, 197, 29, 32, 84, 37, 48, 65, 9, 198, 16, 84, 201, 29, 84, 128, 66, 0, 12, 68, 5,
-			84, 137, 84, 35, 40, 16, 6, 116, 0, 12, 137, 99, 117, 110, 111, 197, 159, 116, 101, 97, 67, 0, 10, 199, 152, 225, 200, 36, 243, 148,
-			36, 67, 8, 197, 88, 244, 212, 73, 80, 76, 8, 197, 56, 244, 212, 73, 80, 77, 0, 0, 9, 198, 81, 32, 71, 23, 98, 64, 65, 9,
-			198, 52, 84, 135, 23, 98, 64, 65, 9, 198, 21, 2, 83, 12, 244, 0, 66, 9, 198, 4, 193, 71, 23, 98, 64, 66, 9, 198, 4, 69,
-			67, 23, 98, 64, 66, 0, 9, 198, 152, 224, 200, 36, 65, 77, 66, 9, 198, 21, 132, 12, 61, 43, 13, 67, 0, 8, 197, 13, 33, 65,
-			81, 80, 67, 8, 197, 4, 192, 137, 81, 80, 67, 0, 16, 70, 84, 225, 200, 37, 83, 0, 6, 40, 50, 81, 57, 40, 55, 0, 10, 199,
-			152, 225, 210, 176, 66, 84, 84, 68, 0, 24, 73, 16, 147, 148, 61, 65, 5, 5, 83, 129, 72, 37, 50, 47, 39, 47, 72, 135, 6, 40,
-			50, 35, 0, 13, 3, 95, 195, 162, 4, 112, 72, 37, 50, 6, 35, 0, 0, 9, 198, 4, 71, 78, 12, 149, 21, 68, 0, 7, 196, 14,
-			196, 195, 4, 66, 0, 0, 9, 198, 74, 196, 195, 60, 194, 64, 67, 0, 7, 196, 73, 212, 197, 80, 65, 7, 196, 65, 83, 133, 52, 65,
-			7, 196, 80, 144, 211, 36, 66, 0, 0, 9, 198, 48, 147, 135, 85, 43, 0, 65, 7, 196, 24, 150, 137, 12, 65, 0, 0, 9, 198, 64,
-			243, 15, 56, 144, 192, 67, 7, 196, 60, 97, 82, 20, 66, 7, 196, 52, 19, 148, 4, 66, 8, 197, 48, 21, 21, 74, 192, 65, 7, 196,
-			14, 197, 84, 176, 67, 9, 198, 8, 148, 197, 72, 144, 192, 66, 9, 198, 4, 209, 83, 80, 80, 192, 66, 8, 197, 4, 193, 82, 30, 192,
-			66, 0, 11, 67, 21, 32, 64, 57, 36, 16, 35, 0, 78, 0, 6, 195, 73, 83, 44, 66, 9, 198, 76, 50, 9, 52, 32, 64, 66, 9,
-			198, 16, 84, 197, 52, 224, 64, 67, 0, 7, 196, 81, 84, 142, 176, 66, 0, 7, 196, 60, 53, 80, 4, 67, 7, 196, 4, 165, 84, 4,
-			67, 18, 70, 61, 34, 67, 177, 37, 73, 39, 16, 124, 49, 13, 34, 40, 37, 0, 79, 0, 13, 138, 99, 117, 110, 111, 97, 197, 159, 116,
-			101, 109, 66, 6, 195, 5, 33, 64, 76, 0, 8, 197, 80, 84, 141, 20, 224, 65, 9, 198, 12, 19, 129, 64, 80, 64, 67, 9, 198, 4,
-			209, 82, 36, 48, 64, 66, 9, 198, 72, 85, 133, 56, 80, 64, 67, 9, 198, 56, 147, 73, 12, 80, 64, 67, 18, 70, 5, 4, 133, 12,
-			144, 64, 35, 48, 14, 16, 36, 76, 57, 6, 35, 0, 8, 197, 56, 144, 201, 84, 224, 77, 0, 11, 67, 60, 219, 20, 39, 65, 6, 13,
-			47, 0, 10, 67, 4, 128, 65, 35, 107, 6, 35, 0, 12, 67, 16, 16, 193, 72, 35, 49, 13, 0, 72, 8, 0, 7, 196, 60, 51, 204,
-			36, 67, 12, 137, 99, 196, 131, 112, 116, 117, 197, 159, 105, 67, 0, 7, 196, 61, 32, 129, 56, 65, 0, 8, 197, 80, 84, 141, 36, 224,
-			65, 8, 197, 8, 20, 141, 4, 224, 65, 0, 14, 69, 8, 16, 203, 85, 0, 71, 6, 36, 49, 35, 48, 0, 8, 197, 4, 51, 208, 177,
-			32, 66, 12, 201, 8, 147, 133, 13, 85, 157, 57, 64, 64, 69, 0, 9, 66, 60, 176, 39, 49, 6, 118, 0, 8, 197, 24, 245, 2, 4,
-			192, 65, 5, 194, 80, 16, 76, 0, 7, 196, 61, 48, 193, 72, 65, 7, 196, 48, 20, 197, 72, 65, 9, 198, 12, 85, 44, 217, 82, 69,
-			67, 7, 196, 106, 192, 197, 4, 66, 7, 196, 78, 196, 133, 4, 66, 7, 196, 74, 192, 197, 4, 66, 7, 196, 66, 196, 133, 4, 66, 7,
-			196, 30, 196, 197, 4, 66, 7, 196, 26, 192, 197, 4, 66, 0, 0, 6, 195, 84, 225, 73, 73, 0, 6, 195, 89, 211, 129, 66, 0, 7,
-			196, 36, 193, 143, 88, 65, 7, 196, 9, 80, 213, 72, 65, 7, 196, 4, 213, 118, 36, 67, 0, 8, 197, 80, 83, 69, 216, 144, 65, 0,
-			0, 10, 199, 65, 85, 5, 72, 226, 67, 36, 66, 9, 198, 13, 39, 78, 12, 83, 133, 65, 9, 198, 152, 225, 210, 21, 83, 129, 68, 0,
-			7, 196, 61, 33, 9, 56, 65, 0, 8, 197, 76, 20, 131, 36, 224, 65, 0, 0, 9, 197, 5, 53, 6, 20, 192, 65, 8, 0, 7, 196,
-			152, 225, 67, 4, 67, 0, 6, 195, 60, 51, 204, 66, 0, 9, 198, 65, 211, 148, 20, 49, 64, 65, 9, 198, 30, 197, 82, 36, 49, 64,
-			66, 9, 198, 13, 211, 148, 20, 49, 64, 65, 0, 10, 199, 12, 192, 83, 36, 98, 67, 4, 68, 0, 0, 11, 67, 56, 245, 108, 50, 6,
-			39, 40, 13, 0, 0, 6, 195, 56, 144, 201, 8, 0, 6, 195, 216, 147, 149, 66, 7, 196, 64, 241, 5, 4, 66, 7, 196, 77, 81, 197,
-			4, 66, 7, 196, 64, 195, 213, 4, 66, 13, 4, 95, 103, 114, 118, 81, 14, 16, 6, 35, 84, 0, 0, 8, 197, 13, 211, 133, 66, 192,
-			65, 0, 9, 198, 65, 35, 208, 36, 49, 64, 66, 9, 198, 21, 132, 12, 36, 49, 64, 66, 11, 67, 16, 245, 108, 72, 6, 39, 40, 13,
-			0, 0, 0, 7, 196, 80, 83, 69, 4, 66, 0, 0, 11, 67, 72, 80, 76, 34, 36, 6, 35, 55, 0, 7, 196, 57, 83, 108, 72, 65,
-			7, 196, 48, 22, 172, 72, 65, 9, 198, 36, 208, 71, 36, 235, 0, 67, 0, 8, 197, 152, 229, 5, 216, 144, 67, 8, 197, 152, 228, 213,
-			216, 144, 77, 0, 10, 199, 24, 147, 15, 104, 241, 137, 36, 68, 0, 8, 197, 72, 81, 213, 48, 144, 65, 10, 199, 65, 34, 67, 21, 1,
-			118, 36, 66, 9, 198, 106, 193, 44, 72, 226, 73, 68, 0, 11, 200, 16, 84, 195, 32, 145, 5, 216, 144, 66, 0, 6, 195, 4, 49, 65,
-			78, 0, 10, 199, 72, 80, 213, 56, 244, 195, 84, 67, 5, 194, 76, 80, 72, 0, 7, 196, 77, 84, 5, 72, 65, 0, 14, 203, 12, 20,
-			129, 13, 65, 82, 20, 193, 76, 61, 32, 67, 14, 69, 8, 19, 142, 21, 32, 71, 6, 36, 50, 13, 34, 0, 0, 9, 198, 65, 35, 196,
-			84, 49, 65, 67, 9, 198, 65, 33, 90, 36, 49, 65, 67, 9, 198, 64, 245, 18, 37, 97, 65, 67, 9, 198, 64, 84, 141, 37, 65, 65,
-			67, 9, 198, 12, 243, 132, 84, 49, 65, 67, 0, 7, 196, 81, 33, 67, 84, 66, 8, 197, 77, 2, 82, 37, 64, 65, 7, 196, 28, 192,
-			90, 84, 66, 17, 70, 5, 4, 143, 64, 244, 192, 35, 48, 14, 16, 39, 48, 6, 39, 0, 0, 7, 196, 81, 81, 15, 72, 65, 0, 9,
-			198, 60, 34, 67, 20, 149, 64, 67, 0, 6, 195, 85, 35, 137, 66, 0, 6, 195, 18, 193, 21, 66, 8, 197, 12, 195, 195, 61, 64, 65,
-			0, 7, 196, 216, 147, 133, 52, 65, 9, 198, 152, 212, 44, 75, 98, 64, 67, 0, 0, 9, 198, 89, 83, 20, 85, 34, 73, 65, 8, 197,
-			216, 147, 133, 216, 144, 65, 0, 10, 199, 37, 3, 195, 72, 150, 137, 36, 68, 10, 199, 4, 212, 212, 21, 33, 1, 52, 65, 9, 198, 152,
-			225, 200, 39, 98, 64, 67, 9, 198, 152, 224, 210, 23, 98, 64, 67, 0, 8, 197, 105, 211, 66, 21, 64, 65, 8, 197, 73, 211, 138, 21,
-			64, 65, 10, 199, 64, 85, 18, 20, 49, 118, 36, 66, 7, 196, 53, 211, 131, 4, 66, 13, 2, 194, 169, 49, 6, 35, 48, 37, 34, 117,
-			47, 0, 0, 0, 7, 196, 48, 147, 149, 96, 65, 7, 2, 197, 159, 91, 36, 0, 0, 15, 67, 84, 67, 82, 117, 100, 101, 109, 101, 114,
-			39, 101, 0, 29, 0, 0, 6, 195, 84, 209, 68, 65, 7, 196, 4, 123, 54, 4, 67, 0, 6, 195, 72, 80, 201, 65, 9, 198, 52, 146,
-			140, 60, 16, 197, 65, 6, 195, 16, 80, 201, 8, 0, 7, 196, 12, 17, 133, 4, 66, 7, 196, 89, 35, 201, 4, 66, 11, 2, 194, 176,
-			81, 14, 16, 35, 72, 36, 0, 0, 9, 198, 29, 209, 221, 48, 144, 197, 67, 0, 9, 198, 52, 84, 212, 20, 49, 64, 65, 9, 198, 52,
-			21, 18, 36, 49, 64, 66, 9, 198, 12, 84, 130, 36, 49, 64, 66, 0, 10, 67, 12, 80, 73, 76, 6, 135, 57, 0, 0, 7, 196, 28,
-			243, 133, 4, 66, 0, 10, 67, 88, 145, 64, 84, 6, 37, 36, 0, 7, 196, 82, 196, 137, 36, 65, 7, 196, 60, 45, 137, 36, 66, 11,
-			67, 24, 145, 64, 83, 6, 37, 36, 0, 72, 0, 9, 198, 80, 16, 129, 12, 129, 64, 67, 12, 201, 64, 20, 148, 20, 225, 82, 20, 193,
-			64, 67, 9, 198, 48, 147, 80, 20, 65, 64, 65, 9, 198, 25, 32, 71, 20, 65, 64, 65, 12, 201, 12, 20, 129, 13, 65, 82, 20, 193,
-			64, 67, 0, 0, 0, 0, 0, 6, 195, 77, 81, 1, 66, 7, 195, 12, 81, 65, 72, 28, 0, 14, 66, 80, 80, 47, 135, 91, 0, 72,
-			81, 97, 197, 159, 32, 13, 66, 80, 80, 47, 135, 34, 0, 72, 81, 97, 114, 32, 13, 66, 80, 80, 47, 135, 57, 0, 72, 81, 97, 105,
-			32, 13, 66, 80, 80, 47, 135, 65, 0, 72, 81, 97, 109, 32, 13, 68, 5, 32, 213, 36, 35, 34, 49, 40, 6, 37, 0, 6, 194, 88,
-			16, 76, 32, 5, 194, 80, 80, 72, 0, 10, 67, 4, 50, 64, 35, 76, 6, 37, 0, 8, 67, 88, 146, 64, 84, 132, 0, 0, 8, 197,
-			76, 84, 150, 21, 32, 65, 11, 200, 56, 244, 212, 36, 210, 76, 61, 32, 65, 0, 9, 198, 5, 49, 77, 20, 225, 65, 66, 9, 198, 5,
-			48, 213, 56, 65, 65, 67, 9, 198, 12, 147, 131, 36, 193, 65, 65, 9, 198, 64, 21, 18, 84, 193, 65, 65, 0, 8, 197, 72, 240, 133,
-			73, 64, 65, 0, 0, 17, 70, 12, 192, 85, 16, 149, 64, 49, 55, 35, 6, 40, 72, 57, 40, 0, 9, 198, 12, 20, 9, 80, 243, 0,
-			66, 9, 198, 8, 17, 10, 60, 53, 64, 67, 6, 195, 77, 83, 148, 76, 6, 195, 77, 83, 148, 76, 0, 7, 195, 13, 211, 132, 72, 8,
-			0, 8, 197, 13, 33, 68, 37, 64, 65, 5, 194, 81, 80, 76, 0, 0, 9, 198, 88, 82, 9, 13, 83, 0, 66, 8, 197, 85, 48, 236,
-			81, 80, 67, 9, 198, 65, 35, 195, 20, 69, 64, 67, 0, 0, 20, 71, 56, 144, 201, 16, 80, 213, 52, 50, 37, 76, 124, 72, 36, 49,
-			6, 40, 65, 0, 0, 13, 138, 197, 159, 116, 101, 114, 103, 101, 197, 163, 105, 65, 0, 0, 0, 7, 196, 13, 85, 9, 36, 66, 9, 198,
-			4, 75, 16, 61, 53, 9, 68, 0, 9, 198, 14, 196, 236, 80, 244, 137, 68, 0, 0, 0, 9, 198, 76, 103, 82, 80, 80, 193, 67, 8,
-			197, 152, 235, 12, 216, 16, 67, 7, 196, 4, 49, 76, 20, 78, 6, 195, 84, 227, 210, 73, 0, 8, 197, 64, 148, 201, 12, 16, 66, 8,
-			197, 52, 83, 129, 40, 80, 67, 8, 197, 54, 197, 21, 74, 192, 65, 8, 197, 48, 21, 9, 12, 80, 66, 8, 197, 16, 19, 66, 48, 16,
-			66, 8, 197, 16, 148, 197, 12, 16, 67, 8, 197, 4, 98, 82, 52, 16, 67, 0, 9, 198, 81, 33, 77, 85, 43, 0, 65, 7, 196, 72,
-			145, 9, 12, 66, 9, 198, 16, 243, 78, 39, 107, 0, 66, 7, 196, 5, 4, 137, 28, 65, 0, 9, 198, 105, 211, 66, 21, 65, 64, 65,
-			9, 198, 73, 211, 138, 21, 65, 64, 65, 9, 198, 74, 192, 206, 21, 65, 64, 65, 11, 136, 195, 174, 110, 114, 111, 197, 159, 105, 67, 11,
-			136, 195, 174, 110, 114, 111, 197, 159, 105, 67, 0, 7, 196, 104, 37, 82, 4, 66, 7, 196, 77, 1, 82, 4, 66, 9, 198, 152, 225, 18,
-			21, 5, 1, 67, 0, 8, 197, 77, 69, 68, 36, 80, 66, 8, 197, 64, 244, 9, 12, 80, 66, 8, 197, 48, 147, 73, 80, 80, 65, 8,
-			197, 28, 83, 69, 80, 80, 65, 8, 197, 76, 51, 212, 20, 16, 66, 8, 197, 52, 84, 137, 80, 16, 67, 8, 197, 36, 228, 197, 72, 16,
-			67, 8, 197, 4, 225, 193, 40, 16, 67, 0, 0, 9, 198, 88, 82, 9, 13, 83, 5, 66, 11, 67, 4, 34, 65, 35, 71, 57, 6, 35,
-			0, 0, 7, 196, 65, 34, 86, 36, 67, 0, 0, 9, 198, 72, 245, 21, 56, 162, 64, 67, 0, 11, 67, 36, 194, 69, 37, 55, 6, 37,
-			36, 0, 6, 195, 82, 194, 64, 76, 0, 21, 9, 118, 101, 197, 159, 110, 105, 99, 105, 101, 84, 36, 91, 50, 37, 76, 6, 37, 36, 0,
-			9, 198, 76, 59, 4, 21, 33, 65, 66, 0, 9, 198, 152, 224, 236, 49, 161, 65, 67, 8, 197, 4, 210, 78, 80, 144, 67, 0, 9, 198,
-			60, 227, 198, 72, 82, 64, 67, 9, 198, 60, 19, 69, 56, 146, 64, 65, 9, 198, 56, 21, 21, 72, 146, 64, 67, 10, 199, 152, 224, 236,
-			64, 84, 133, 4, 67, 9, 198, 20, 225, 82, 28, 146, 64, 15, 0, 11, 67, 4, 144, 201, 35, 6, 37, 76, 124, 0, 0, 7, 196, 72,
-			84, 212, 84, 65, 9, 198, 13, 39, 78, 12, 83, 137, 65, 0, 10, 199, 152, 225, 5, 64, 194, 78, 36, 68, 7, 195, 64, 245, 0, 76,
-			32, 0, 8, 197, 48, 81, 148, 21, 32, 65, 0, 9, 198, 49, 80, 210, 177, 69, 64, 67, 8, 197, 14, 198, 172, 81, 80, 67, 9, 198,
-			13, 212, 144, 37, 69, 64, 67, 9, 198, 5, 5, 67, 177, 69, 64, 68, 9, 198, 4, 69, 78, 177, 69, 64, 68, 0, 9, 198, 85, 53,
-			21, 74, 197, 21, 68, 9, 198, 85, 38, 137, 14, 197, 21, 68, 9, 198, 5, 37, 78, 14, 197, 21, 68, 9, 198, 4, 194, 78, 82, 197,
-			21, 68, 9, 198, 4, 193, 82, 30, 197, 21, 68, 0, 0, 8, 197, 25, 39, 78, 81, 80, 66, 11, 200, 16, 84, 195, 32, 150, 172, 81,
-			80, 68, 0, 12, 201, 36, 225, 146, 5, 53, 18, 84, 53, 21, 68, 10, 199, 152, 224, 236, 72, 59, 20, 84, 68, 9, 198, 28, 80, 77,
-			4, 225, 21, 67, 0, 9, 198, 64, 20, 148, 20, 225, 82, 67, 7, 196, 81, 33, 90, 36, 66, 0, 8, 197, 60, 19, 69, 56, 144, 65,
-			8, 197, 28, 83, 69, 56, 144, 65, 0, 11, 200, 4, 209, 83, 80, 80, 236, 81, 80, 69, 11, 200, 152, 228, 133, 28, 148, 212, 72, 16,
-			68, 0, 6, 195, 78, 194, 64, 76, 0, 0, 8, 197, 52, 84, 135, 20, 208, 65, 8, 197, 12, 244, 212, 84, 208, 66, 8, 197, 56, 147,
-			69, 56, 144, 77, 0, 16, 69, 21, 131, 212, 36, 48, 36, 81, 88, 6, 39, 47, 37, 49, 0, 6, 195, 72, 85, 137, 66, 0, 19, 70,
-			76, 84, 150, 36, 50, 85, 89, 36, 34, 84, 6, 37, 76, 6, 57, 40, 0, 7, 196, 13, 83, 86, 4, 66, 7, 196, 4, 130, 76, 20,
-			66, 0, 8, 197, 72, 145, 9, 12, 80, 66, 8, 197, 4, 38, 137, 12, 80, 66, 8, 197, 81, 33, 67, 20, 16, 66, 8, 197, 60, 97,
-			82, 20, 16, 67, 8, 197, 12, 243, 147, 80, 16, 66, 8, 197, 5, 3, 5, 12, 16, 67, 8, 197, 4, 37, 82, 20, 16, 66, 0, 9,
-			198, 74, 196, 208, 116, 225, 9, 67, 0, 11, 67, 52, 19, 73, 65, 6, 35, 65, 37, 0, 8, 197, 16, 83, 154, 36, 48, 66, 0, 12,
-			201, 65, 33, 84, 85, 66, 78, 16, 83, 137, 67, 7, 196, 4, 65, 82, 4, 67, 18, 70, 61, 34, 67, 177, 33, 73, 39, 16, 124, 49,
-			13, 34, 36, 37, 0, 79, 0, 8, 197, 36, 229, 9, 52, 80, 65, 8, 197, 8, 83, 7, 36, 16, 65, 8, 197, 52, 83, 79, 72, 16,
-			67, 8, 197, 16, 243, 73, 56, 16, 67, 8, 197, 16, 84, 149, 48, 16, 67, 8, 197, 16, 80, 149, 80, 16, 67, 0, 0, 9, 198, 88,
-			144, 212, 61, 34, 73, 66, 11, 136, 115, 116, 114, 111, 112, 197, 159, 105, 66, 0, 6, 195, 4, 49, 76, 76, 0, 8, 197, 77, 68, 137,
-			88, 144, 66, 0, 9, 198, 76, 20, 131, 36, 226, 64, 65, 9, 198, 52, 20, 135, 36, 226, 64, 65, 9, 198, 16, 83, 211, 20, 34, 64,
-			67, 0, 6, 195, 84, 219, 18, 65, 6, 195, 88, 242, 65, 66, 0, 18, 70, 34, 196, 142, 36, 50, 69, 107, 13, 34, 50, 37, 76, 6,
-			37, 36, 0, 0, 15, 69, 64, 20, 143, 16, 144, 48, 35, 16, 39, 72, 6, 37, 0, 8, 197, 60, 52, 143, 80, 144, 67, 0, 9, 198,
-			80, 84, 129, 64, 146, 64, 67, 0, 6, 195, 48, 245, 137, 66, 0, 10, 135, 97, 99, 101, 108, 97, 197, 159, 66, 0, 0, 0, 11, 67,
-			80, 21, 9, 47, 6, 35, 47, 37, 0, 9, 198, 76, 59, 4, 21, 33, 64, 66, 9, 198, 64, 203, 3, 21, 33, 64, 66, 6, 195, 49,
-			82, 64, 76, 6, 195, 4, 49, 73, 76, 0, 15, 2, 95, 34, 81, 107, 37, 55, 37, 65, 6, 36, 55, 36, 0, 0, 14, 139, 109, 101,
-			115, 97, 103, 101, 114, 196, 131, 36, 50, 66, 13, 68, 18, 196, 149, 36, 72, 13, 16, 58, 6, 37, 0, 16, 2, 95, 33, 36, 49, 89,
-			49, 55, 35, 65, 6, 35, 16, 36, 0, 0, 7, 196, 90, 196, 149, 48, 65, 8, 197, 84, 149, 44, 81, 80, 67, 5, 194, 152, 144, 72,
-			0, 11, 136, 100, 101, 115, 108, 117, 197, 159, 105, 67, 15, 2, 95, 39, 35, 48, 39, 89, 47, 14, 16, 6, 39, 83, 0, 0, 7, 196,
-			88, 244, 130, 36, 66, 7, 196, 64, 244, 142, 36, 66, 0, 8, 197, 56, 244, 212, 36, 208, 65, 8, 197, 13, 32, 84, 36, 208, 65, 6,
-			195, 4, 210, 67, 66, 8, 197, 37, 53, 15, 88, 144, 67, 8, 197, 16, 245, 133, 16, 144, 67, 0, 9, 198, 36, 208, 71, 36, 226, 64,
-			66, 24, 73, 25, 32, 78, 44, 83, 147, 80, 82, 78, 83, 34, 6, 35, 50, 49, 36, 50, 91, 47, 117, 50, 0, 19, 70, 12, 243, 80,
-			85, 65, 82, 49, 39, 65, 48, 6, 57, 40, 47, 13, 34, 0, 0, 0, 13, 68, 48, 21, 90, 36, 55, 6, 35, 40, 88, 124, 0, 0,
-			8, 197, 80, 84, 129, 64, 144, 15, 8, 197, 64, 148, 201, 12, 144, 66, 8, 197, 13, 33, 68, 20, 208, 65, 8, 197, 8, 149, 143, 48,
-			144, 65, 8, 197, 4, 193, 71, 20, 208, 66, 8, 197, 4, 69, 67, 20, 208, 66, 8, 197, 5, 69, 78, 12, 144, 8, 22, 2, 95, 41,
-			48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 9, 198, 17, 84, 133, 72, 146, 64, 66, 23, 2,
-			95, 40, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 72, 36, 89, 49, 6, 37, 89, 13, 0, 0, 12, 67, 26, 196, 172, 83, 4, 13,
-			34, 13, 0, 8, 0, 7, 196, 5, 5, 67, 4, 67, 0, 14, 2, 95, 45, 49, 14, 16, 6, 35, 47, 37, 65, 13, 0, 0, 13, 2,
-			95, 44, 84, 6, 37, 34, 81, 40, 55, 13, 0, 0, 9, 198, 81, 35, 211, 56, 85, 5, 65, 9, 198, 77, 64, 82, 61, 53, 5, 65,
-			9, 198, 17, 32, 71, 61, 53, 5, 65, 6, 195, 80, 244, 9, 66, 10, 2, 95, 51, 47, 14, 16, 6, 118, 0, 0, 11, 136, 197, 159,
-			110, 105, 197, 163, 101, 108, 65, 9, 198, 76, 59, 4, 21, 34, 73, 66, 7, 196, 8, 195, 195, 4, 67, 6, 195, 177, 53, 1, 77, 8,
-			2, 95, 50, 72, 6, 120, 0, 0, 9, 2, 95, 49, 6, 40, 50, 40, 0, 0, 8, 197, 60, 45, 137, 57, 80, 67, 10, 2, 95, 48,
-			88, 6, 36, 16, 39, 0, 0, 6, 195, 32, 147, 69, 66, 9, 198, 72, 84, 208, 20, 53, 1, 67, 9, 198, 24, 16, 201, 48, 149, 1,
-			68, 9, 198, 12, 243, 147, 80, 21, 1, 67, 11, 136, 97, 99, 101, 105, 97, 197, 159, 105, 66, 11, 2, 95, 55, 91, 6, 35, 48, 47,
-			36, 0, 0, 14, 68, 29, 33, 79, 36, 81, 14, 16, 36, 6, 39, 57, 0, 12, 137, 97, 99, 101, 108, 101, 97, 197, 159, 105, 66, 10,
-			2, 95, 54, 91, 6, 35, 89, 36, 0, 0, 8, 196, 36, 228, 213, 48, 65, 48, 11, 2, 95, 53, 76, 6, 37, 50, 76, 124, 0, 0,
-			12, 2, 95, 52, 48, 6, 35, 47, 14, 16, 40, 0, 0, 22, 2, 95, 59, 48, 6, 40, 50, 49, 47, 15, 91, 37, 84, 6, 37, 34,
-			81, 40, 55, 13, 0, 0, 7, 196, 52, 243, 9, 52, 65, 7, 196, 17, 80, 197, 52, 65, 7, 196, 4, 210, 67, 36, 66, 17, 2, 95,
-			58, 72, 39, 6, 40, 13, 48, 6, 40, 50, 49, 47, 36, 0, 0, 18, 70, 65, 34, 69, 80, 83, 128, 48, 14, 16, 57, 6, 36, 47,
-			36, 50, 0, 9, 2, 95, 57, 50, 6, 131, 13, 0, 0, 12, 201, 64, 20, 148, 20, 225, 82, 36, 195, 210, 67, 12, 201, 64, 20, 148,
-			20, 225, 82, 20, 195, 210, 67, 17, 70, 16, 148, 208, 48, 22, 64, 72, 37, 89, 48, 55, 6, 36, 57, 0, 9, 198, 4, 210, 67, 36,
-			195, 210, 66, 9, 2, 95, 56, 6, 39, 48, 47, 0, 0, 16, 2, 95, 63, 112, 50, 47, 14, 16, 36, 71, 6, 35, 16, 36, 0, 0,
-			18, 70, 53, 84, 132, 177, 34, 69, 65, 40, 34, 72, 13, 16, 6, 37, 36, 0, 9, 198, 65, 33, 70, 176, 49, 65, 67, 13, 2, 95,
-			62, 65, 117, 15, 65, 6, 35, 16, 36, 0, 0, 9, 198, 152, 208, 157, 13, 49, 65, 67, 0, 9, 198, 152, 212, 44, 75, 97, 65, 67,
-			12, 2, 95, 60, 65, 117, 15, 65, 6, 37, 49, 0, 0, 15, 69, 77, 84, 208, 85, 48, 89, 40, 89, 48, 6, 40, 89, 0, 9, 198,
-			64, 144, 212, 61, 34, 73, 65, 14, 69, 32, 147, 132, 85, 48, 37, 50, 72, 6, 40, 89, 0, 0, 0, 7, 196, 52, 84, 137, 80, 65,
-			8, 197, 13, 33, 83, 13, 80, 66, 7, 196, 10, 197, 84, 84, 67, 0, 8, 197, 152, 224, 197, 65, 80, 67, 14, 66, 216, 144, 123, 57,
-			39, 57, 0, 72, 81, 111, 105, 32, 14, 66, 216, 144, 123, 57, 35, 34, 0, 72, 81, 97, 114, 32, 14, 66, 216, 144, 123, 57, 35, 65,
-			0, 72, 81, 97, 109, 32, 13, 66, 216, 144, 123, 6, 57, 36, 0, 72, 81, 101, 32, 13, 66, 216, 144, 123, 57, 117, 0, 72, 81, 97,
-			105, 32, 13, 66, 216, 144, 123, 57, 114, 0, 72, 81, 97, 117, 32, 14, 66, 216, 144, 123, 57, 35, 34, 0, 72, 81, 97, 114, 32, 14,
-			66, 216, 144, 123, 57, 35, 65, 0, 72, 81, 97, 109, 32, 5, 194, 216, 144, 72, 0, 9, 198, 16, 81, 197, 72, 21, 21, 68, 16, 69,
-			14, 109, 137, 88, 16, 49, 112, 123, 124, 84, 6, 35, 0, 78, 0, 0, 8, 197, 65, 85, 5, 72, 144, 66, 11, 200, 52, 17, 201, 77,
-			68, 129, 81, 80, 68, 0, 9, 198, 76, 51, 193, 80, 83, 64, 65, 9, 198, 65, 33, 86, 20, 226, 64, 67, 0, 7, 196, 16, 83, 79,
-			56, 65, 12, 201, 16, 84, 195, 60, 228, 201, 16, 84, 129, 69, 0, 0, 9, 198, 44, 83, 5, 52, 83, 128, 65, 9, 134, 197, 159, 111,
-			112, 116, 105, 66, 14, 69, 61, 34, 67, 84, 144, 39, 16, 124, 49, 121, 0, 79, 0, 0, 0, 0, 0, 0, 0, 7, 196, 21, 99, 195,
-			4, 67, 7, 196, 49, 211, 135, 176, 28, 0, 0, 10, 135, 197, 159, 101, 110, 105, 108, 101, 66, 9, 198, 72, 84, 12, 36, 59, 0, 65,
-			10, 199, 152, 237, 133, 48, 81, 197, 52, 67, 9, 198, 24, 243, 133, 80, 144, 236, 66, 0, 9, 198, 9, 80, 213, 74, 195, 64, 67, 6,
-			195, 85, 35, 1, 66, 6, 195, 77, 83, 129, 66, 11, 67, 20, 193, 64, 57, 36, 55, 36, 0, 76, 0, 10, 199, 64, 20, 193, 28, 84,
-			137, 36, 67, 0, 0, 9, 198, 64, 145, 82, 16, 83, 64, 65, 9, 198, 36, 212, 12, 36, 59, 0, 66, 0, 9, 198, 4, 219, 18, 84,
-			145, 64, 67, 6, 195, 73, 83, 1, 66, 7, 195, 4, 193, 64, 72, 28, 24, 2, 95, 91, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13,
-			48, 13, 47, 14, 16, 6, 35, 47, 13, 0, 0, 12, 68, 56, 85, 143, 36, 50, 36, 84, 6, 120, 0, 7, 196, 52, 147, 137, 52, 65,
-			7, 196, 24, 16, 197, 52, 65, 6, 195, 4, 34, 76, 66, 9, 198, 16, 148, 208, 177, 33, 65, 67, 13, 68, 61, 53, 15, 36, 39, 89,
-			47, 39, 6, 37, 0, 0, 0, 7, 196, 152, 229, 29, 36, 66, 10, 135, 114, 101, 117, 197, 159, 101, 97, 67, 10, 199, 72, 89, 142, 81,
-			211, 14, 36, 68, 7, 66, 88, 144, 84, 37, 0, 0, 11, 136, 97, 99, 101, 197, 159, 116, 105, 97, 72, 15, 2, 95, 95, 89, 40, 71,
-			55, 37, 50, 57, 6, 35, 47, 0, 0, 12, 137, 100, 101, 112, 196, 131, 197, 159, 101, 97, 67, 0, 31, 2, 95, 93, 48, 35, 16, 35,
-			50, 47, 4, 36, 88, 13, 48, 13, 47, 14, 16, 6, 35, 47, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 14, 2, 95, 92, 71, 4,
-			36, 49, 89, 55, 6, 36, 91, 0, 0, 15, 69, 65, 35, 208, 85, 48, 48, 34, 39, 48, 6, 40, 89, 0, 15, 69, 65, 35, 196, 85,
-			48, 48, 16, 39, 72, 6, 40, 89, 0, 8, 197, 36, 229, 133, 73, 48, 65, 15, 69, 36, 224, 204, 85, 48, 37, 50, 49, 55, 6, 40,
-			89, 0, 15, 69, 21, 128, 204, 85, 48, 36, 101, 49, 55, 6, 40, 89, 0, 15, 69, 12, 243, 132, 85, 48, 49, 39, 50, 72, 6, 40,
-			89, 0, 15, 69, 12, 243, 80, 85, 48, 49, 39, 65, 48, 6, 40, 89, 0, 16, 69, 13, 221, 137, 88, 16, 49, 112, 123, 124, 84, 6,
-			35, 0, 78, 0, 6, 195, 66, 197, 21, 65, 0, 7, 196, 54, 196, 137, 36, 65, 8, 197, 37, 160, 137, 81, 80, 67, 10, 199, 152, 225,
-			140, 61, 34, 84, 84, 68, 6, 2, 95, 97, 35, 0, 0, 8, 197, 64, 144, 236, 81, 80, 67, 9, 198, 152, 208, 146, 176, 59, 0, 67,
-			8, 197, 8, 244, 172, 81, 80, 67, 10, 135, 197, 159, 117, 105, 101, 114, 97, 67, 9, 4, 95, 48, 111, 102, 72, 36, 0, 0, 9, 198,
-			52, 16, 213, 48, 21, 21, 68, 9, 198, 12, 192, 86, 36, 21, 21, 67, 9, 198, 4, 197, 3, 84, 213, 129, 67, 0, 9, 198, 152, 225,
-			21, 72, 84, 129, 68, 0, 6, 2, 95, 101, 36, 0, 0, 9, 198, 52, 20, 137, 80, 147, 64, 66, 0, 0, 7, 196, 84, 197, 9, 52,
-			65, 7, 196, 17, 82, 85, 52, 66, 0, 7, 196, 88, 84, 197, 48, 65, 6, 2, 95, 105, 37, 0, 0, 0, 21, 67, 88, 148, 192, 84,
-			37, 88, 35, 84, 6, 37, 0, 44, 82, 97, 32, 118, 105, 115, 32, 6, 65, 216, 123, 36, 0, 6, 2, 95, 111, 39, 0, 0, 9, 198,
-			49, 81, 15, 88, 144, 192, 65, 16, 70, 12, 80, 73, 56, 144, 192, 76, 6, 135, 57, 50, 37, 49, 0, 8, 197, 5, 3, 5, 14, 192,
-			67, 7, 196, 65, 33, 68, 4, 66, 7, 2, 95, 110, 50, 36, 0, 0, 7, 2, 95, 109, 65, 36, 0, 0, 8, 197, 24, 16, 197, 216,
-			144, 65, 8, 197, 17, 80, 197, 216, 144, 65, 9, 198, 80, 84, 141, 36, 224, 64, 67, 9, 198, 65, 35, 212, 20, 160, 64, 67, 9, 198,
-			25, 33, 68, 60, 224, 64, 67, 9, 198, 20, 194, 77, 36, 224, 64, 68, 9, 198, 12, 192, 88, 60, 224, 64, 67, 7, 2, 95, 108, 55,
-			36, 0, 0, 7, 196, 64, 17, 213, 8, 65, 6, 195, 176, 144, 64, 77, 7, 2, 95, 115, 89, 36, 0, 0, 7, 196, 76, 148, 212, 4,
-			66, 18, 70, 24, 145, 67, 177, 37, 73, 83, 57, 36, 49, 6, 13, 34, 121, 0, 72, 0, 13, 4, 95, 104, 97, 99, 107, 6, 35, 76,
-			36, 49, 0, 0, 9, 198, 80, 82, 135, 32, 80, 64, 66, 9, 198, 65, 85, 5, 72, 80, 64, 66, 17, 70, 12, 192, 85, 16, 144, 64,
-			49, 55, 35, 6, 40, 72, 57, 35, 0, 9, 198, 77, 84, 21, 56, 80, 64, 67, 9, 198, 77, 5, 77, 20, 112, 64, 68, 9, 198, 72,
-			81, 133, 72, 80, 64, 67, 17, 70, 56, 81, 207, 12, 144, 64, 50, 36, 81, 39, 76, 37, 6, 35, 0, 9, 198, 16, 80, 201, 16, 80,
-			64, 67, 16, 70, 81, 33, 73, 48, 80, 64, 47, 14, 16, 6, 118, 55, 135, 0, 9, 198, 24, 146, 78, 16, 59, 0, 8, 0, 10, 67,
-			4, 69, 64, 35, 72, 6, 40, 0, 6, 195, 88, 148, 193, 66, 0, 0, 6, 2, 95, 117, 40, 0, 0, 9, 197, 4, 197, 6, 20, 192,
-			65, 28, 0, 9, 198, 82, 192, 197, 72, 80, 64, 66, 9, 198, 66, 196, 133, 72, 80, 64, 66, 9, 198, 14, 193, 5, 72, 80, 64, 66,
-			9, 198, 77, 71, 82, 56, 80, 64, 66, 9, 198, 74, 196, 213, 12, 80, 64, 67, 9, 198, 152, 225, 5, 76, 80, 64, 67, 23, 2, 95,
-			123, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 35, 49, 39, 55, 6, 35, 72, 13, 0, 0, 8, 197, 65, 211, 148, 20, 48, 65, 10,
-			199, 14, 193, 5, 72, 147, 15, 72, 66, 6, 195, 84, 229, 76, 77, 0, 10, 199, 56, 85, 172, 77, 69, 73, 20, 67, 0, 9, 198, 16,
-			148, 133, 13, 67, 210, 66, 8, 197, 77, 75, 20, 20, 16, 66, 9, 198, 4, 229, 77, 37, 67, 210, 75, 0, 7, 196, 48, 144, 133, 72,
-			65, 11, 67, 53, 84, 137, 65, 40, 34, 6, 37, 0, 0, 13, 68, 48, 149, 137, 84, 55, 6, 37, 84, 57, 40, 0, 12, 137, 197, 159,
-			97, 112, 116, 101, 108, 101, 97, 65, 11, 2, 95, 126, 47, 6, 37, 55, 72, 13, 0, 0, 11, 200, 77, 84, 144, 72, 147, 132, 20, 16,
-			67, 9, 134, 112, 196, 131, 197, 159, 105, 66, 30, 2, 95, 125, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 35, 49, 39, 55, 6, 35,
-			72, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 20, 2, 95, 124, 71, 6, 35, 34, 13, 84, 36, 34, 47, 37, 49, 6, 35, 55, 13,
-			0, 0, 9, 198, 84, 212, 12, 23, 98, 64, 65, 9, 198, 13, 33, 68, 23, 98, 64, 65, 9, 198, 152, 229, 18, 20, 32, 64, 67, 6,
-			195, 37, 160, 137, 66, 24, 7, 115, 46, 97, 46, 109, 46, 100, 91, 36, 35, 91, 35, 65, 117, 72, 36, 48, 35, 34, 47, 36, 0, 0,
-			18, 70, 16, 148, 212, 73, 84, 192, 72, 37, 89, 47, 14, 16, 6, 40, 89, 0, 8, 133, 98, 117, 197, 159, 105, 66, 9, 133, 100, 101,
-			197, 159, 105, 66, 8, 12, 137, 195, 174, 110, 115, 196, 131, 197, 159, 105, 77, 0, 15, 69, 61, 98, 68, 37, 80, 39, 84, 6, 37, 72,
-			57, 40, 0, 7, 196, 48, 147, 73, 80, 65, 9, 198, 152, 229, 44, 72, 149, 21, 68, 11, 5, 95, 48, 97, 110, 100, 10, 91, 37, 0,
-			0, 10, 199, 152, 224, 236, 64, 84, 137, 36, 67, 0, 9, 198, 84, 50, 68, 23, 98, 64, 66, 9, 198, 32, 18, 68, 23, 98, 64, 65,
-			9, 198, 5, 98, 67, 84, 197, 21, 68, 0, 9, 198, 16, 147, 131, 60, 195, 192, 65, 30, 8, 197, 159, 46, 97, 46, 109, 46, 100, 91,
-			37, 11, 35, 91, 4, 35, 15, 65, 117, 15, 72, 36, 48, 6, 35, 34, 47, 36, 0, 0, 11, 200, 64, 20, 148, 20, 225, 82, 20, 144,
-			67, 9, 198, 24, 203, 3, 177, 34, 73, 65, 0, 8, 197, 88, 148, 195, 60, 192, 65, 0, 6, 195, 24, 145, 213, 66, 9, 198, 72, 83,
-			149, 59, 96, 64, 67, 9, 198, 152, 224, 200, 20, 112, 64, 67, 0, 0, 0, 15, 69, 81, 212, 154, 37, 80, 47, 112, 34, 88, 6, 37,
-			40, 0, 7, 196, 64, 148, 201, 12, 65, 6, 195, 60, 101, 44, 66, 5, 194, 84, 224, 72, 0, 0, 8, 197, 88, 150, 137, 82, 192, 65,
-			8, 197, 72, 86, 133, 54, 192, 67, 9, 198, 64, 243, 9, 80, 144, 192, 66, 8, 197, 16, 243, 73, 58, 192, 65, 7, 196, 12, 243, 148,
-			4, 66, 7, 196, 36, 229, 18, 20, 28, 0, 0, 9, 198, 65, 33, 90, 20, 229, 44, 67, 9, 198, 80, 19, 80, 60, 224, 64, 67, 9,
-			198, 36, 228, 212, 4, 192, 64, 67, 9, 198, 56, 144, 201, 84, 224, 64, 77, 0, 7, 196, 32, 243, 2, 176, 66, 11, 136, 102, 101, 110,
-			105, 99, 197, 159, 105, 65, 0, 9, 198, 12, 243, 131, 85, 43, 13, 67, 0, 9, 134, 103, 114, 101, 197, 159, 105, 66, 14, 68, 24, 146,
-			78, 16, 83, 37, 6, 37, 50, 72, 0, 8, 0, 9, 198, 77, 81, 133, 72, 80, 64, 67, 9, 198, 65, 35, 214, 60, 48, 64, 67, 9,
-			198, 24, 243, 15, 76, 80, 64, 67, 9, 198, 16, 85, 133, 56, 80, 64, 67, 9, 198, 4, 165, 78, 28, 80, 64, 67, 18, 70, 5, 4,
-			143, 64, 144, 64, 35, 48, 14, 16, 39, 48, 37, 6, 35, 0, 0, 6, 195, 17, 84, 129, 66, 6, 195, 77, 4, 133, 28, 0, 12, 68,
-			80, 19, 148, 36, 47, 35, 50, 47, 37, 0, 0, 10, 199, 152, 225, 5, 66, 196, 148, 176, 68, 0, 26, 73, 16, 147, 166, 58, 197, 78,
-			81, 37, 76, 72, 37, 50, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 55, 0, 13, 4, 95, 35, 51, 50, 89, 48, 6, 35, 123, 116,
-			0, 0, 8, 197, 28, 80, 77, 177, 64, 65, 11, 67, 17, 84, 1, 72, 40, 48, 13, 0, 28, 0, 7, 196, 77, 81, 172, 72, 65, 7,
-			196, 76, 53, 84, 36, 66, 0, 9, 198, 152, 229, 157, 73, 65, 65, 67, 9, 198, 152, 229, 172, 73, 65, 65, 67, 7, 196, 29, 43, 2,
-			36, 68, 20, 71, 61, 34, 67, 177, 33, 73, 4, 39, 16, 124, 49, 13, 34, 36, 37, 35, 0, 79, 0, 7, 196, 80, 83, 137, 76, 65,
-			8, 197, 76, 147, 118, 20, 16, 66, 8, 197, 50, 196, 135, 20, 16, 66, 8, 197, 5, 11, 18, 20, 16, 67, 0, 15, 67, 152, 229, 18,
-			112, 50, 47, 14, 16, 39, 0, 81, 111, 32, 6, 195, 84, 229, 73, 73, 0, 16, 70, 92, 147, 132, 61, 116, 192, 6, 58, 37, 50, 72,
-			130, 89, 0, 10, 67, 32, 242, 84, 107, 6, 120, 47, 0, 7, 196, 12, 83, 154, 84, 66, 12, 137, 197, 159, 196, 131, 115, 101, 108, 101,
-			97, 65, 0, 7, 196, 14, 195, 4, 84, 66, 11, 200, 65, 33, 83, 85, 5, 78, 20, 16, 68, 20, 71, 61, 34, 67, 177, 37, 73, 4,
-			39, 16, 124, 49, 13, 34, 40, 37, 35, 0, 79, 0, 11, 200, 152, 225, 200, 36, 243, 148, 20, 16, 67, 11, 200, 16, 148, 208, 72, 93,
-			149, 36, 16, 68, 0, 13, 68, 12, 243, 15, 72, 49, 39, 55, 6, 39, 16, 0, 0, 9, 198, 152, 225, 44, 74, 197, 0, 67, 6, 195,
-			20, 66, 84, 65, 9, 198, 12, 243, 80, 5, 43, 13, 67, 0, 0, 0, 9, 198, 16, 148, 212, 74, 195, 64, 66, 11, 136, 99, 195, 162,
-			116, 117, 197, 159, 105, 65, 9, 198, 4, 67, 73, 74, 195, 64, 67, 11, 136, 195, 174, 110, 115, 117, 197, 159, 105, 77, 0, 0, 0, 0,
-			8, 197, 58, 197, 172, 48, 144, 67, 8, 197, 66, 192, 236, 48, 144, 67, 9, 198, 152, 224, 213, 72, 48, 64, 67, 9, 198, 152, 224, 197,
-			72, 48, 64, 67, 0, 13, 68, 84, 208, 140, 36, 6, 40, 65, 71, 55, 37, 0, 0, 0, 10, 135, 102, 117, 114, 105, 197, 159, 97, 67,
-			0, 11, 67, 216, 145, 64, 123, 6, 57, 36, 0, 72, 11, 67, 216, 145, 64, 123, 6, 37, 36, 0, 76, 0, 9, 198, 76, 19, 83, 84,
-			225, 192, 65, 7, 196, 76, 17, 5, 4, 66, 8, 197, 72, 145, 9, 14, 192, 66, 8, 197, 16, 80, 207, 50, 192, 67, 8, 197, 5, 37,
-			5, 74, 192, 66, 7, 196, 5, 43, 20, 176, 67, 7, 196, 88, 81, 5, 4, 66, 7, 196, 25, 81, 197, 4, 66, 7, 196, 65, 85, 5,
-			4, 78, 8, 197, 21, 130, 83, 82, 192, 72, 0, 11, 200, 36, 65, 78, 80, 145, 137, 12, 16, 69, 0, 9, 198, 88, 144, 212, 36, 209,
-			64, 65, 9, 198, 77, 64, 84, 84, 145, 64, 66, 9, 198, 37, 53, 5, 72, 145, 64, 67, 9, 198, 24, 16, 212, 36, 49, 64, 66, 0,
-			11, 136, 197, 159, 117, 98, 114, 101, 100, 101, 65, 9, 198, 65, 35, 205, 37, 65, 77, 66, 9, 198, 64, 84, 141, 37, 65, 77, 66, 7,
-			196, 60, 97, 82, 176, 66, 9, 198, 152, 225, 18, 21, 5, 44, 67, 9, 198, 12, 243, 132, 84, 49, 77, 66, 16, 69, 61, 34, 67, 117,
-			64, 39, 16, 124, 49, 4, 112, 47, 0, 76, 0, 9, 198, 77, 68, 137, 30, 197, 5, 65, 11, 200, 36, 229, 5, 73, 49, 67, 82, 192,
-			67, 10, 199, 4, 209, 82, 36, 50, 76, 20, 66, 10, 199, 56, 144, 201, 84, 225, 76, 20, 77, 0, 0, 9, 198, 80, 84, 141, 36, 225,
-			64, 65, 9, 198, 56, 84, 133, 29, 83, 44, 66, 9, 198, 24, 80, 146, 36, 193, 64, 66, 9, 198, 12, 20, 148, 20, 193, 64, 66, 0,
-			9, 198, 81, 34, 77, 37, 65, 77, 66, 9, 198, 40, 20, 15, 56, 145, 73, 66, 11, 136, 114, 196, 131, 103, 117, 197, 159, 105, 67, 12,
-			67, 21, 53, 5, 57, 36, 89, 47, 36, 0, 76, 11, 136, 97, 99, 101, 101, 97, 197, 159, 105, 66, 0, 16, 141, 195, 174, 110, 102, 196,
-			131, 197, 159, 117, 114, 196, 131, 109, 68, 6, 195, 26, 192, 213, 66, 6, 195, 4, 193, 88, 65, 0, 11, 200, 28, 20, 212, 72, 243, 143,
-			52, 144, 15, 11, 67, 5, 43, 20, 35, 34, 6, 13, 47, 0, 0, 9, 198, 74, 195, 93, 56, 93, 137, 66, 11, 200, 20, 50, 9, 48,
-			144, 146, 176, 208, 68, 0, 6, 195, 5, 53, 1, 76, 0, 7, 196, 104, 18, 44, 72, 65, 9, 198, 77, 3, 5, 56, 66, 68, 65, 9,
-			198, 53, 83, 54, 84, 209, 65, 67, 0, 7, 196, 76, 80, 207, 48, 65, 9, 134, 98, 114, 111, 197, 159, 117, 66, 0, 10, 199, 28, 147,
-			78, 5, 53, 9, 12, 66, 12, 201, 77, 84, 18, 4, 84, 212, 36, 208, 64, 69, 8, 197, 14, 196, 133, 36, 16, 73, 0, 10, 67, 10,
-			197, 64, 71, 13, 6, 40, 0, 6, 195, 78, 197, 64, 76, 0, 8, 197, 25, 83, 7, 21, 32, 65, 0, 9, 134, 97, 197, 159, 101, 122,
-			97, 67, 0, 14, 68, 21, 132, 21, 76, 36, 49, 89, 48, 6, 40, 89, 0, 0, 0, 0, 9, 198, 88, 147, 143, 90, 205, 137, 15, 6,
-			195, 66, 205, 137, 66, 0, 9, 198, 5, 99, 195, 5, 69, 64, 68, 8, 197, 76, 83, 108, 56, 16, 67, 0, 0, 19, 71, 80, 245, 4,
-			20, 21, 78, 4, 47, 39, 47, 72, 135, 6, 40, 50, 35, 0, 9, 198, 64, 145, 82, 16, 93, 137, 65, 7, 196, 52, 21, 5, 36, 66,
-			8, 197, 28, 19, 2, 20, 224, 65, 9, 198, 4, 165, 78, 28, 93, 137, 66, 0, 19, 70, 77, 84, 18, 5, 5, 83, 89, 40, 48, 14,
-			16, 35, 48, 6, 40, 89, 0, 18, 70, 36, 229, 18, 60, 69, 83, 37, 50, 47, 34, 39, 72, 6, 40, 89, 0, 19, 70, 36, 229, 5,
-			73, 5, 83, 37, 50, 47, 36, 14, 16, 48, 6, 40, 89, 0, 0, 10, 199, 152, 229, 15, 73, 59, 20, 84, 68, 10, 199, 152, 228, 21,
-			57, 59, 20, 84, 68, 10, 199, 152, 225, 149, 56, 75, 20, 84, 68, 10, 199, 152, 224, 213, 72, 59, 20, 84, 68, 11, 199, 13, 83, 80,
-			177, 43, 20, 84, 67, 48, 0, 9, 198, 17, 83, 73, 56, 144, 193, 66, 0, 0, 7, 196, 24, 83, 137, 96, 65, 7, 196, 89, 43, 10,
-			36, 66, 0, 0, 9, 198, 5, 37, 5, 24, 144, 197, 67, 9, 198, 152, 225, 210, 36, 162, 64, 67, 18, 70, 16, 83, 193, 72, 80, 197,
-			72, 36, 138, 34, 36, 76, 6, 36, 0, 8, 0, 9, 198, 65, 33, 76, 36, 225, 192, 66, 20, 9, 111, 97, 114, 101, 197, 159, 105, 99,
-			101, 39, 35, 16, 36, 91, 76, 36, 0, 68, 9, 198, 12, 243, 150, 36, 225, 192, 66, 9, 198, 65, 35, 206, 84, 237, 129, 67, 9, 198,
-			4, 209, 78, 36, 237, 129, 68, 7, 196, 5, 33, 5, 4, 66, 0, 7, 196, 77, 11, 12, 4, 66, 0, 9, 198, 88, 149, 18, 20, 113,
-			64, 65, 17, 70, 88, 84, 154, 84, 145, 64, 84, 36, 34, 88, 6, 40, 57, 36, 0, 18, 70, 65, 35, 211, 80, 145, 64, 48, 14, 16,
-			39, 89, 47, 6, 37, 36, 0, 9, 198, 56, 244, 212, 36, 209, 64, 65, 9, 198, 36, 224, 77, 36, 49, 64, 67, 9, 198, 16, 83, 154,
-			36, 49, 64, 66, 18, 70, 16, 21, 15, 72, 145, 64, 72, 35, 47, 39, 14, 16, 6, 37, 36, 0, 9, 198, 13, 32, 84, 36, 209, 64,
-			65, 9, 198, 12, 243, 148, 36, 229, 108, 66, 0, 6, 195, 52, 80, 64, 76, 0, 7, 196, 36, 226, 77, 4, 65, 7, 196, 88, 83, 133,
-			4, 66, 7, 196, 57, 83, 69, 4, 66, 7, 196, 53, 84, 133, 4, 66, 0, 0, 9, 198, 64, 20, 148, 20, 225, 64, 67, 9, 198, 28,
-			19, 2, 20, 225, 64, 65, 18, 70, 61, 34, 67, 36, 225, 64, 39, 16, 124, 76, 4, 37, 50, 36, 0, 79, 0, 9, 198, 53, 211, 133,
-			12, 146, 64, 66, 0, 0, 13, 138, 99, 114, 101, 197, 159, 116, 101, 197, 163, 105, 65, 0, 10, 199, 52, 83, 182, 36, 225, 118, 36, 66,
-			10, 199, 152, 229, 9, 56, 65, 118, 36, 66, 10, 199, 152, 224, 201, 56, 113, 118, 36, 66, 0, 11, 67, 104, 149, 65, 88, 6, 37, 122,
-			35, 0, 16, 70, 152, 224, 200, 20, 144, 64, 112, 50, 49, 36, 6, 57, 35, 0, 0, 7, 196, 57, 83, 65, 36, 65, 7, 196, 12, 130,
-			77, 36, 15, 0, 7, 196, 65, 43, 10, 36, 66, 0, 9, 198, 64, 19, 148, 21, 43, 0, 66, 0, 9, 67, 36, 82, 64, 6, 57, 118,
-			0, 9, 198, 4, 115, 206, 37, 49, 65, 68, 6, 195, 82, 197, 64, 76, 0, 7, 195, 64, 253, 137, 76, 32, 8, 197, 53, 83, 20, 61,
-			32, 73, 0, 0, 8, 197, 77, 81, 140, 21, 64, 65, 0, 12, 201, 152, 224, 236, 64, 84, 137, 48, 244, 128, 67, 9, 198, 16, 84, 198,
-			4, 49, 77, 66, 9, 198, 152, 224, 193, 72, 224, 64, 67, 9, 198, 12, 203, 20, 36, 224, 64, 67, 6, 195, 52, 82, 64, 76, 0, 9,
-			198, 81, 33, 65, 14, 197, 0, 65, 8, 197, 13, 33, 73, 21, 32, 65, 0, 0, 8, 197, 48, 81, 236, 81, 80, 67, 8, 197, 8, 19,
-			9, 57, 64, 65, 8, 197, 4, 192, 133, 73, 64, 65, 0, 9, 198, 65, 33, 70, 4, 49, 77, 66, 6, 195, 28, 83, 85, 66, 6, 195,
-			12, 19, 64, 72, 0, 0, 11, 200, 152, 208, 149, 58, 197, 44, 216, 144, 69, 0, 9, 198, 90, 197, 44, 54, 197, 21, 68, 10, 199, 77,
-			84, 246, 36, 225, 118, 36, 66, 10, 199, 77, 68, 157, 56, 113, 118, 36, 65, 10, 199, 152, 224, 200, 36, 65, 118, 36, 66, 0, 9, 198,
-			24, 147, 15, 104, 241, 137, 15, 15, 140, 99, 117, 110, 111, 97, 197, 159, 116, 101, 197, 163, 105, 66, 0, 9, 134, 197, 159, 117, 105, 101,
-			114, 65, 14, 5, 101, 197, 159, 116, 105, 57, 36, 91, 47, 124, 0, 76, 0, 9, 198, 218, 195, 132, 177, 34, 64, 65, 7, 196, 24, 83,
-			9, 96, 65, 0, 0, 0, 7, 196, 85, 66, 76, 20, 66, 9, 198, 66, 193, 21, 72, 144, 197, 67, 15, 204, 152, 229, 18, 20, 65, 83,
-			12, 130, 90, 177, 69, 64, 70, 7, 196, 20, 112, 76, 20, 66, 11, 68, 16, 242, 78, 4, 72, 120, 50, 35, 0, 7, 196, 76, 19, 22,
-			4, 66, 7, 196, 84, 227, 210, 4, 77, 0, 8, 197, 90, 193, 21, 90, 192, 65, 8, 197, 29, 85, 21, 36, 80, 66, 8, 197, 21, 130,
-			83, 80, 16, 67, 8, 197, 12, 240, 201, 56, 80, 65, 8, 197, 5, 4, 137, 28, 80, 65, 8, 197, 72, 83, 1, 96, 16, 67, 8, 197,
-			48, 147, 135, 20, 16, 66, 8, 197, 16, 80, 207, 48, 16, 67, 8, 197, 4, 197, 5, 36, 16, 77, 0, 0, 9, 198, 52, 20, 135, 36,
-			226, 73, 65, 17, 70, 152, 224, 73, 57, 65, 64, 112, 50, 35, 6, 37, 50, 47, 36, 0, 9, 198, 25, 33, 77, 177, 64, 64, 67, 11,
-			136, 97, 197, 159, 116, 101, 112, 116, 97, 67, 11, 136, 100, 101, 112, 196, 131, 197, 159, 105, 67, 0, 10, 199, 65, 35, 193, 77, 1, 84,
-			20, 65, 7, 196, 32, 243, 2, 4, 66, 0, 13, 138, 116, 111, 118, 97, 114, 196, 131, 197, 159, 105, 66, 8, 197, 64, 84, 5, 56, 80,
-			65, 8, 197, 17, 84, 133, 72, 80, 66, 8, 197, 72, 84, 5, 80, 16, 67, 8, 197, 52, 241, 5, 48, 16, 67, 7, 196, 34, 192, 213,
-			36, 67, 8, 197, 5, 53, 80, 72, 16, 28, 0, 15, 69, 88, 145, 118, 84, 144, 84, 57, 36, 123, 40, 6, 37, 0, 0, 9, 198, 64,
-			148, 212, 60, 19, 5, 66, 7, 195, 76, 21, 64, 72, 8, 13, 202, 17, 83, 78, 20, 21, 143, 5, 53, 18, 176, 79, 0, 7, 196, 14,
-			196, 143, 72, 73, 0, 0, 9, 198, 65, 35, 214, 20, 226, 64, 67, 0, 6, 195, 52, 85, 64, 76, 0, 11, 200, 152, 237, 133, 48, 81,
-			197, 216, 144, 67, 7, 196, 17, 82, 14, 36, 66, 0, 14, 69, 52, 242, 83, 20, 144, 65, 39, 37, 89, 6, 118, 0, 8, 197, 60, 66,
-			72, 56, 144, 67, 0, 9, 198, 65, 85, 5, 72, 146, 64, 66, 9, 198, 4, 100, 137, 12, 146, 64, 65, 8, 197, 7, 98, 78, 80, 144,
-			67, 0, 0, 10, 199, 65, 35, 198, 21, 51, 210, 36, 66, 8, 197, 56, 148, 212, 61, 32, 65, 0, 7, 196, 85, 43, 20, 84, 67, 7,
-			196, 77, 75, 20, 84, 66, 0, 8, 197, 90, 193, 21, 88, 80, 65, 0, 9, 198, 84, 209, 140, 177, 69, 64, 67, 9, 198, 65, 43, 10,
-			37, 69, 64, 67, 9, 198, 13, 213, 15, 73, 96, 64, 67, 0, 8, 197, 4, 49, 76, 61, 32, 74, 0, 7, 196, 5, 11, 18, 4, 67,
-			0, 8, 197, 104, 115, 205, 61, 64, 65, 9, 198, 16, 85, 5, 72, 210, 78, 66, 10, 135, 109, 111, 108, 101, 197, 159, 105, 67, 8, 197,
-			14, 196, 143, 72, 16, 73, 8, 197, 14, 196, 143, 72, 16, 73, 0, 9, 198, 76, 84, 150, 36, 50, 73, 66, 24, 73, 77, 84, 18, 5,
-			98, 69, 217, 82, 64, 89, 40, 48, 34, 35, 84, 57, 36, 123, 40, 6, 37, 0, 0, 10, 199, 64, 20, 148, 20, 225, 82, 20, 67, 6,
-			195, 66, 198, 137, 66, 0, 6, 20, 0, 0, 25, 2, 0, 0, 95, 1, 0, 0, 27, 2, 0, 0, 99, 1, 0, 0, 24, 2, 0, 0,
-			95, 1, 0, 0, 26, 2, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 6, 195, 162, 0, 105, 101, 1, 21, 2, 32, 3, 8, 133, 36,
-			0, 3, 112, 0, 105, 3, 133, 0, 117, 3, 134, 0, 7, 6, 195, 174, 0, 1, 21, 2, 32, 3, 6, 112, 0, 3, 112, 0, 7, 6,
-			196, 131, 0, 117, 2, 32, 3, 6, 130, 0, 1, 21, 2, 17, 67, 196, 131, 32, 3, 8, 13, 0, 105, 101, 1, 21, 2, 32, 3, 8,
-			129, 36, 0, 4, 3, 13, 0, 1, 10, 2, 32, 14, 128, 192, 129, 0, 1, 17, 67, 131, 196, 21, 2, 32, 0, 1, 99, 101, 10, 2,
-			32, 0, 1, 114, 101, 21, 2, 32, 0, 1, 163, 197, 105, 21, 2, 32, 0, 4, 114, 105, 2, 17, 65, 17, 65, 32, 3, 13, 16, 6,
-			37, 0, 114, 105, 2, 17, 65, 32, 0, 114, 105, 105, 2, 32, 3, 13, 16, 6, 132, 0, 4, 117, 1, 99, 2, 116, 3, 13, 40, 0,
-			117, 8, 98, 2, 116, 0, 117, 8, 100, 2, 110, 0, 117, 8, 108, 2, 100, 0, 116, 196, 131, 1, 21, 2, 32, 14, 129, 128, 131, 3,
-			13, 47, 13, 0, 116, 101, 1, 21, 2, 32, 14, 129, 128, 131, 3, 13, 47, 36, 0, 116, 101, 108, 101, 1, 21, 2, 32, 14, 129, 128,
-			133, 3, 13, 47, 36, 55, 36, 0, 116, 101, 108, 111, 114, 1, 21, 2, 32, 14, 129, 128, 134, 3, 13, 47, 36, 55, 39, 34, 0, 116,
-			117, 108, 1, 21, 2, 32, 14, 129, 128, 132, 3, 13, 47, 40, 55, 0, 116, 117, 108, 117, 105, 1, 21, 2, 32, 14, 129, 128, 134, 3,
-			13, 47, 40, 55, 121, 0, 105, 2, 32, 3, 129, 0, 117, 3, 130, 0, 7, 6, 197, 159, 0, 3, 91, 0, 110, 105, 1, 21, 2, 32,
-			3, 91, 50, 6, 37, 0, 105, 1, 45, 2, 32, 3, 91, 124, 0, 1, 21, 2, 105, 32, 3, 97, 0, 7, 6, 197, 163, 0, 3, 123,
-			0, 1, 21, 2, 105, 32, 3, 141, 0, 105, 1, 45, 2, 32, 3, 141, 128, 0, 7, 6, 97, 0, 4, 1, 21, 26, 2, 24, 32, 3,
-			6, 35, 0, 1, 105, 131, 196, 2, 32, 0, 1, 110, 111, 105, 21, 2, 32, 0, 117, 8, 108, 2, 100, 3, 6, 35, 40, 0, 108, 101,
-			1, 21, 2, 32, 3, 6, 35, 55, 36, 0, 98, 105, 108, 1, 21, 2, 32, 3, 6, 35, 71, 37, 55, 0, 117, 2, 32, 3, 6, 114,
-			0, 105, 2, 32, 3, 6, 117, 0, 4, 3, 35, 0, 1, 10, 2, 32, 14, 128, 192, 129, 0, 1, 105, 103, 2, 32, 14, 128, 192, 129,
-			0, 2, 17, 65, 17, 65, 17, 65, 0, 105, 1, 110, 2, 118, 3, 35, 37, 0, 4, 117, 1, 99, 2, 116, 3, 35, 40, 0, 117, 2,
-			100, 0, 117, 2, 114, 0, 117, 2, 115, 116, 0, 117, 2, 122, 0, 110, 116, 105, 8, 2, 21, 14, 128, 132, 132, 3, 35, 50, 47, 37,
-			0, 105, 2, 97, 3, 35, 57, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 4, 1, 21, 2, 105, 108, 32, 3, 8, 71,
-			0, 1, 21, 2, 105, 108, 97, 32, 0, 1, 21, 2, 105, 108, 105, 32, 0, 1, 21, 2, 105, 108, 105, 105, 32, 0, 1, 21, 2, 105,
-			108, 105, 108, 101, 32, 0, 1, 21, 2, 105, 108, 105, 108, 111, 114, 32, 0, 1, 21, 2, 105, 108, 117, 108, 117, 105, 32, 0, 4, 3,
-			71, 0, 98, 0, 105, 108, 1, 111, 109, 2, 32, 3, 71, 6, 37, 55, 0, 1, 21, 2, 105, 32, 3, 143, 0, 7, 6, 99, 0, 111,
-			108, 1, 21, 21, 2, 32, 3, 8, 49, 39, 55, 0, 111, 108, 105, 1, 21, 21, 2, 32, 14, 129, 128, 129, 3, 8, 124, 0, 111, 108,
-			101, 1, 21, 21, 2, 32, 14, 129, 128, 129, 3, 36, 0, 4, 3, 49, 0, 104, 0, 110, 105, 1, 21, 2, 32, 3, 49, 50, 6, 37,
-			0, 110, 101, 97, 1, 21, 2, 32, 3, 49, 50, 36, 6, 35, 0, 4, 2, 101, 3, 76, 0, 2, 105, 0, 105, 2, 111, 0, 105, 105,
-			3, 76, 132, 0, 7, 6, 100, 0, 4, 3, 72, 0, 100, 0, 1, 21, 2, 105, 32, 3, 144, 0, 7, 6, 101, 0, 1, 17, 67, 10,
-			2, 114, 101, 32, 3, 2, 36, 0, 117, 1, 21, 2, 108, 32, 3, 6, 36, 40, 0, 117, 1, 21, 2, 32, 24, 3, 6, 115, 0, 105,
-			1, 114, 2, 101, 114, 32, 3, 6, 118, 0, 4, 1, 21, 2, 114, 97, 32, 3, 8, 36, 0, 1, 21, 2, 114, 101, 32, 0, 1, 21,
-			2, 114, 101, 97, 32, 0, 1, 21, 2, 114, 101, 105, 32, 0, 1, 21, 2, 114, 105, 32, 0, 1, 21, 2, 114, 105, 105, 32, 0, 1,
-			21, 2, 114, 196, 131, 32, 0, 197, 159, 1, 21, 2, 32, 3, 8, 36, 91, 0, 197, 159, 105, 108, 111, 114, 1, 21, 2, 32, 3, 8,
-			36, 91, 37, 55, 39, 34, 0, 197, 159, 117, 108, 1, 21, 2, 32, 3, 8, 36, 91, 40, 55, 0, 197, 159, 117, 108, 117, 105, 1, 21,
-			2, 32, 3, 8, 36, 91, 40, 55, 121, 0, 197, 159, 105, 1, 21, 2, 32, 3, 8, 36, 91, 124, 0, 4, 3, 36, 0, 1, 102, 21,
-			2, 114, 97, 32, 0, 1, 102, 21, 2, 114, 97, 32, 0, 1, 105, 2, 114, 97, 32, 0, 1, 105, 2, 114, 101, 32, 0, 1, 105, 2,
-			114, 101, 97, 32, 0, 1, 105, 2, 114, 105, 32, 0, 1, 105, 2, 114, 105, 105, 32, 0, 1, 105, 2, 114, 196, 131, 32, 0, 2, 17,
-			65, 17, 65, 17, 65, 0, 111, 1, 100, 2, 115, 101, 98, 3, 36, 39, 0, 117, 1, 21, 2, 32, 3, 36, 40, 0, 99, 1, 116, 17,
-			65, 21, 2, 105, 105, 32, 3, 36, 76, 0, 4, 101, 8, 99, 97, 2, 97, 3, 118, 0, 105, 2, 32, 0, 105, 8, 0, 4, 97, 3,
-			135, 0, 97, 1, 10, 2, 32, 14, 128, 192, 130, 0, 83, 105, 1, 10, 3, 135, 57, 0, 97, 117, 3, 135, 58, 0, 111, 3, 136, 0,
-			111, 97, 3, 136, 6, 35, 0, 7, 6, 102, 0, 4, 3, 83, 0, 102, 0, 1, 21, 2, 105, 32, 3, 142, 0, 7, 6, 103, 0, 4,
-			2, 101, 3, 75, 0, 2, 105, 0, 105, 105, 1, 10, 2, 32, 3, 75, 6, 132, 0, 105, 1, 10, 2, 17, 65, 32, 3, 75, 37, 0,
-			105, 105, 3, 75, 132, 0, 4, 3, 81, 0, 104, 0, 7, 6, 104, 0, 1, 21, 2, 105, 32, 3, 99, 0, 3, 107, 0, 7, 6, 105,
-			0, 1, 99, 2, 117, 17, 67, 3, 0, 110, 103, 1, 10, 2, 32, 3, 2, 37, 68, 81, 0, 4, 101, 105, 1, 108, 105, 102, 2, 32,
-			3, 6, 36, 37, 0, 101, 105, 1, 109, 111, 110, 2, 32, 0, 4, 1, 10, 26, 2, 24, 32, 3, 6, 37, 0, 1, 114, 99, 115, 2,
-			101, 0, 2, 116, 32, 0, 4, 97, 1, 17, 67, 131, 196, 2, 32, 3, 6, 37, 35, 0, 97, 1, 17, 67, 162, 195, 2, 32, 0, 97,
-			1, 102, 97, 114, 103, 2, 32, 0, 97, 1, 108, 105, 102, 2, 32, 0, 97, 1, 109, 111, 110, 2, 32, 0, 97, 1, 110, 111, 2, 32,
-			0, 97, 1, 112, 111, 99, 115, 2, 32, 0, 97, 1, 114, 101, 2, 32, 0, 97, 1, 159, 197, 117, 2, 32, 0, 4, 101, 1, 17, 67,
-			131, 196, 2, 32, 3, 6, 37, 36, 0, 101, 1, 17, 67, 162, 195, 2, 32, 0, 101, 1, 102, 97, 114, 103, 2, 32, 0, 101, 1, 108,
-			105, 102, 2, 32, 0, 101, 1, 109, 111, 110, 2, 32, 0, 101, 1, 110, 111, 2, 32, 0, 101, 1, 112, 111, 99, 115, 2, 32, 0, 101,
-			1, 159, 197, 117, 2, 32, 0, 4, 101, 105, 1, 102, 97, 114, 103, 2, 32, 3, 6, 37, 118, 0, 101, 105, 1, 110, 111, 2, 32, 0,
-			101, 105, 1, 114, 101, 2, 32, 0, 101, 105, 1, 159, 197, 117, 2, 32, 0, 101, 105, 2, 32, 0, 4, 105, 1, 102, 97, 114, 103, 2,
-			32, 3, 6, 132, 0, 105, 1, 112, 111, 99, 115, 2, 32, 0, 4, 1, 21, 2, 197, 163, 101, 32, 3, 8, 37, 0, 1, 21, 2, 197,
-			163, 101, 105, 32, 0, 1, 21, 2, 197, 163, 101, 108, 101, 32, 0, 1, 21, 2, 197, 163, 101, 108, 111, 114, 32, 0, 1, 21, 2, 197,
-			163, 196, 131, 32, 12, 12, 12, 12, 12, 12, 12, 12, 0, 1, 103, 2, 110, 101, 32, 0, 1, 103, 2, 110, 101, 97, 32, 0, 101, 1,
-			163, 197, 99, 2, 32, 3, 8, 37, 36, 0, 99, 1, 10, 2, 32, 3, 8, 37, 49, 0, 99, 97, 1, 10, 2, 32, 3, 8, 37, 49,
-			35, 0, 99, 101, 1, 10, 2, 32, 3, 8, 37, 76, 36, 0, 99, 105, 108, 101, 1, 10, 2, 32, 3, 8, 37, 76, 37, 55, 36, 0,
-			99, 105, 108, 111, 114, 1, 10, 2, 32, 3, 8, 37, 76, 37, 55, 39, 34, 0, 99, 101, 105, 1, 21, 2, 32, 3, 8, 37, 76, 118,
-			0, 99, 105, 105, 1, 21, 2, 32, 3, 8, 37, 76, 132, 0, 197, 159, 116, 101, 1, 21, 2, 32, 3, 8, 37, 91, 47, 36, 0, 197,
-			159, 116, 101, 97, 1, 21, 2, 32, 3, 8, 37, 91, 47, 135, 0, 101, 105, 1, 163, 197, 99, 2, 32, 3, 8, 37, 118, 0, 97, 1,
-			163, 197, 99, 2, 32, 3, 8, 57, 35, 0, 1, 45, 105, 163, 197, 2, 32, 3, 10, 0, 4, 3, 37, 0, 1, 10, 2, 32, 24, 14,
-			128, 192, 129, 0, 1, 10, 2, 45, 24, 14, 128, 192, 129, 0, 1, 21, 2, 17, 65, 28, 33, 0, 1, 39, 10, 2, 32, 0, 1, 114,
+			32, 0, 20, 71, 56, 144, 201, 16, 80, 213, 52, 50, 37, 76, 124, 72, 36, 49, 6, 40, 65, 0, 0, 0, 0, 21, 65, 8, 98, 117,
+			108, 101, 118, 97, 114, 100, 117, 108, 0, 44, 29, 81, 100, 117, 108, 32, 6, 65, 8, 71, 36, 0, 0, 12, 137, 195, 174, 14, 20, 9,
+			14, 4, 5, 13, 66, 0, 15, 67, 21, 64, 192, 101, 116, 99, 101, 116, 101, 114, 97, 0, 29, 0, 11, 67, 53, 82, 65, 65, 6, 40,
+			57, 35, 0, 7, 196, 77, 80, 197, 4, 66, 7, 196, 49, 80, 197, 4, 66, 7, 196, 17, 80, 197, 4, 66, 6, 195, 84, 225, 5, 28,
+			0, 8, 197, 88, 150, 129, 88, 144, 67, 8, 197, 36, 81, 148, 36, 224, 65, 8, 197, 16, 144, 86, 60, 192, 65, 8, 197, 12, 149, 137,
+			48, 80, 66, 12, 65, 12, 49, 35, 34, 0, 72, 81, 97, 114, 32, 10, 65, 12, 49, 39, 0, 72, 81, 111, 32, 6, 65, 12, 76, 36,
+			0, 0, 12, 201, 65, 33, 84, 85, 66, 78, 16, 83, 137, 67, 9, 198, 4, 115, 206, 37, 50, 64, 68, 0, 11, 136, 16, 196, 131, 19,
+			20, 18, 196, 131, 66, 11, 136, 9, 13, 1, 7, 9, 14, 196, 131, 67, 9, 198, 16, 84, 198, 84, 225, 1, 67, 9, 198, 16, 81, 197,
+			56, 84, 129, 68, 9, 198, 12, 243, 134, 84, 225, 1, 67, 11, 136, 22, 15, 1, 19, 20, 18, 196, 131, 76, 11, 136, 14, 15, 1, 19,
+			20, 18, 196, 131, 77, 11, 136, 22, 15, 1, 19, 20, 18, 196, 131, 77, 13, 4, 95, 8, 1, 3, 107, 6, 35, 76, 36, 49, 0, 0,
+			11, 200, 65, 35, 212, 60, 51, 193, 48, 80, 67, 11, 67, 53, 82, 69, 65, 6, 40, 57, 36, 0, 0, 18, 8, 195, 174, 14, 3, 8,
+			5, 9, 1, 112, 50, 49, 36, 6, 57, 35, 0, 6, 65, 16, 72, 36, 0, 0, 21, 9, 22, 5, 197, 159, 14, 9, 3, 9, 5, 84,
+			36, 91, 50, 37, 76, 6, 37, 36, 0, 10, 135, 16, 195, 162, 14, 20, 5, 3, 65, 20, 9, 195, 174, 14, 1, 9, 14, 20, 5, 1,
+			112, 50, 35, 6, 37, 50, 47, 135, 0, 21, 9, 8, 196, 131, 18, 14, 9, 3, 9, 5, 107, 13, 34, 50, 37, 76, 6, 37, 36, 0,
+			0, 23, 10, 6, 9, 5, 11, 196, 131, 18, 21, 9, 1, 83, 57, 36, 80, 6, 13, 34, 121, 35, 0, 76, 0, 9, 134, 26, 1, 8,
+			196, 131, 18, 65, 12, 137, 3, 12, 196, 131, 20, 9, 14, 196, 131, 67, 14, 139, 195, 174, 14, 7, 8, 9, 15, 14, 20, 5, 1, 67,
+			10, 135, 7, 195, 162, 14, 4, 5, 1, 66, 0, 8, 197, 12, 147, 133, 88, 16, 67, 6, 65, 20, 36, 0, 14, 7, 65, 20, 57, 36,
+			0, 72, 17, 142, 4, 21, 13, 14, 5, 1, 22, 15, 1, 19, 20, 18, 196, 131, 79, 0, 14, 5, 20, 18, 196, 131, 9, 47, 14, 16,
+			13, 6, 37, 0, 29, 13, 16, 18, 5, 197, 159, 5, 4, 9, 14, 197, 163, 9, 5, 48, 14, 16, 36, 91, 36, 72, 37, 50, 123, 6,
+			37, 36, 0, 0, 9, 198, 76, 84, 150, 36, 50, 73, 66, 10, 199, 5, 34, 9, 80, 80, 212, 84, 68, 9, 198, 4, 197, 3, 84, 149,
+			129, 67, 9, 198, 4, 115, 206, 37, 49, 65, 68, 9, 134, 1, 197, 159, 5, 26, 1, 67, 0, 14, 139, 1, 12, 1, 12, 20, 196, 131,
+			9, 5, 18, 9, 66, 10, 135, 19, 5, 13, 196, 131, 14, 1, 67, 0, 8, 197, 72, 85, 133, 56, 144, 67, 6, 65, 24, 83, 36, 0,
+			0, 0, 9, 134, 3, 5, 18, 197, 159, 9, 66, 0, 11, 200, 65, 35, 198, 21, 51, 210, 36, 144, 66, 7, 196, 5, 64, 67, 4, 67,
+			0, 8, 197, 89, 82, 69, 80, 80, 65, 8, 197, 76, 83, 69, 56, 80, 65, 8, 197, 16, 81, 137, 56, 144, 67, 16, 69, 61, 34, 67,
+			84, 208, 39, 16, 124, 49, 4, 40, 65, 0, 76, 8, 132, 1, 197, 159, 1, 66, 28, 6, 65, 28, 75, 36, 0, 0, 12, 137, 5, 24,
+			16, 12, 15, 18, 196, 131, 13, 67, 0, 13, 138, 3, 15, 12, 1, 2, 15, 18, 196, 131, 13, 68, 9, 198, 72, 81, 197, 56, 84, 129,
+			68, 0, 7, 196, 64, 19, 9, 16, 65, 11, 67, 4, 99, 1, 35, 83, 55, 6, 35, 0, 0, 7, 65, 32, 107, 35, 91, 0, 0, 12,
+			137, 195, 174, 14, 22, 195, 162, 18, 20, 9, 67, 0, 19, 70, 76, 84, 150, 36, 50, 85, 89, 36, 34, 84, 6, 37, 76, 6, 57, 40,
+			0, 0, 15, 67, 12, 20, 133, 49, 35, 34, 36, 55, 0, 72, 81, 108, 32, 7, 195, 12, 20, 133, 73, 28, 10, 1, 35, 72, 57, 6,
+			36, 88, 0, 27, 0, 11, 65, 36, 57, 117, 0, 72, 81, 97, 105, 32, 12, 65, 36, 57, 35, 65, 0, 72, 81, 97, 109, 32, 13, 65,
+			36, 37, 35, 91, 0, 72, 81, 97, 197, 159, 32, 12, 65, 36, 57, 35, 34, 0, 72, 81, 97, 114, 32, 0, 0, 10, 67, 4, 84, 128,
+			6, 117, 36, 34, 0, 6, 195, 48, 244, 128, 76, 13, 1, 38, 35, 65, 48, 36, 34, 89, 35, 50, 72, 0, 0, 10, 135, 15, 2, 197,
+			163, 9, 14, 21, 67, 10, 135, 7, 196, 131, 12, 2, 21, 9, 66, 10, 67, 4, 99, 9, 35, 83, 55, 37, 0, 0, 6, 65, 40, 90,
+			36, 0, 0, 17, 70, 52, 19, 129, 28, 84, 128, 65, 6, 36, 50, 36, 75, 13, 34, 0, 6, 131, 22, 196, 131, 72, 9, 198, 4, 49,
+			83, 80, 244, 128, 78, 0, 9, 198, 88, 240, 201, 24, 84, 129, 68, 15, 6, 4, 196, 131, 18, 21, 9, 72, 13, 16, 58, 6, 37, 0,
+			9, 198, 4, 49, 83, 80, 244, 129, 78, 13, 1, 42, 35, 89, 47, 36, 16, 37, 89, 49, 0, 27, 0, 14, 139, 4, 5, 19, 3, 8,
+			9, 4, 5, 197, 163, 9, 66, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 15, 140, 3, 21, 14, 15, 1, 197, 159, 20, 5, 197, 163,
+			9, 66, 6, 65, 44, 49, 35, 0, 0, 10, 135, 4, 15, 13, 9, 14, 196, 131, 65, 12, 137, 3, 15, 14, 3, 21, 18, 196, 131, 13,
+			67, 16, 70, 8, 195, 199, 28, 84, 128, 71, 55, 6, 39, 81, 13, 34, 0, 0, 11, 136, 5, 12, 9, 13, 9, 14, 196, 131, 66, 15,
+			6, 16, 196, 131, 12, 5, 1, 48, 35, 55, 36, 6, 35, 0, 9, 198, 48, 81, 201, 24, 84, 129, 68, 9, 198, 16, 83, 9, 8, 84,
+			129, 68, 10, 1, 46, 48, 40, 50, 49, 47, 0, 27, 0, 9, 134, 19, 21, 6, 196, 131, 18, 65, 8, 1, 47, 89, 55, 36, 91, 0,
+			0, 10, 135, 20, 195, 162, 14, 196, 131, 18, 65, 13, 65, 48, 55, 35, 91, 0, 72, 81, 97, 197, 159, 32, 12, 65, 48, 55, 35, 34,
+			0, 72, 81, 97, 114, 32, 12, 65, 48, 55, 39, 34, 0, 72, 81, 111, 114, 32, 11, 65, 48, 55, 117, 0, 72, 81, 97, 105, 32, 15,
+			65, 48, 55, 35, 141, 124, 0, 72, 81, 97, 197, 163, 105, 32, 12, 65, 48, 55, 35, 65, 0, 72, 81, 97, 109, 32, 11, 65, 48, 55,
+			114, 0, 72, 81, 97, 117, 32, 10, 65, 48, 55, 35, 0, 72, 81, 97, 32, 18, 8, 14, 15, 21, 196, 131, 12, 5, 1, 50, 6, 39,
+			40, 13, 55, 135, 0, 0, 10, 135, 4, 196, 131, 21, 14, 196, 131, 67, 10, 135, 3, 195, 162, 14, 20, 5, 3, 65, 12, 137, 18, 196,
+			131, 19, 3, 15, 12, 5, 1, 67, 0, 11, 136, 13, 9, 197, 159, 21, 14, 196, 131, 65, 10, 199, 24, 147, 15, 104, 241, 137, 36, 68,
+			13, 138, 195, 174, 14, 22, 195, 162, 18, 20, 5, 1, 67, 0, 9, 198, 16, 148, 133, 13, 67, 210, 66, 0, 8, 197, 48, 245, 137, 81,
+			80, 67, 12, 65, 52, 65, 35, 91, 0, 72, 81, 97, 83, 32, 12, 65, 52, 65, 35, 34, 0, 72, 81, 97, 114, 32, 12, 65, 52, 65,
+			39, 34, 0, 72, 81, 111, 114, 32, 8, 197, 72, 81, 201, 104, 16, 67, 0, 12, 137, 197, 159, 1, 16, 20, 5, 12, 5, 1, 65, 0,
+			13, 138, 195, 174, 14, 6, 12, 15, 18, 9, 20, 21, 68, 12, 137, 4, 5, 19, 3, 15, 16, 196, 131, 18, 66, 0, 10, 135, 6, 18,
+			195, 162, 14, 20, 21, 66, 0, 8, 197, 72, 84, 5, 104, 144, 65, 8, 197, 64, 19, 9, 104, 144, 65, 8, 197, 56, 85, 5, 16, 80,
+			65, 8, 197, 52, 241, 5, 48, 80, 66, 12, 65, 56, 50, 39, 34, 0, 72, 81, 111, 114, 32, 12, 65, 56, 50, 39, 34, 0, 72, 81,
+			111, 114, 32, 10, 65, 56, 50, 35, 0, 72, 81, 97, 32, 13, 65, 56, 50, 35, 91, 0, 72, 81, 97, 197, 159, 32, 10, 65, 56, 50,
+			39, 0, 72, 81, 111, 32, 8, 197, 16, 81, 197, 72, 16, 67, 8, 197, 13, 80, 197, 72, 144, 67, 11, 136, 195, 174, 14, 19, 21, 197,
+			159, 9, 77, 11, 5, 95, 48, 1, 14, 4, 10, 91, 37, 0, 0, 8, 133, 21, 18, 196, 131, 13, 66, 11, 136, 197, 163, 5, 1, 16,
+			196, 131, 14, 65, 0, 9, 198, 48, 240, 193, 48, 150, 129, 68, 0, 0, 8, 197, 53, 81, 197, 80, 80, 65, 11, 136, 2, 21, 3, 21,
+			18, 196, 131, 13, 67, 11, 136, 1, 4, 13, 9, 18, 196, 131, 13, 67, 18, 8, 14, 9, 13, 196, 131, 14, 21, 9, 50, 37, 65, 13,
+			50, 6, 121, 0, 4, 193, 60, 72, 4, 193, 60, 72, 0, 11, 136, 26, 4, 18, 1, 22, 196, 131, 14, 65, 12, 137, 195, 174, 14, 3,
+			21, 18, 1, 10, 1, 68, 10, 1, 61, 36, 81, 6, 35, 55, 0, 27, 0, 13, 138, 1, 12, 196, 131, 20, 21, 18, 196, 131, 13, 68,
+			0, 6, 195, 16, 244, 137, 66, 0, 11, 136, 14, 196, 131, 22, 196, 131, 12, 9, 67, 9, 134, 8, 15, 12, 2, 196, 131, 66, 10, 1,
+			64, 35, 16, 6, 39, 50, 72, 0, 6, 65, 64, 48, 36, 0, 0, 0, 9, 198, 5, 98, 67, 84, 197, 21, 68, 0, 7, 196, 21, 64,
+			76, 4, 67, 0, 7, 65, 68, 49, 57, 40, 0, 0, 8, 133, 19, 196, 131, 16, 1, 66, 9, 198, 12, 19, 3, 84, 192, 64, 67, 0,
+			9, 134, 3, 195, 162, 18, 13, 9, 66, 18, 70, 16, 83, 193, 72, 80, 197, 72, 36, 138, 34, 36, 76, 6, 36, 0, 8, 6, 195, 84,
+			224, 64, 77, 0, 7, 196, 61, 48, 193, 72, 65, 7, 196, 36, 193, 143, 88, 65, 6, 195, 84, 225, 73, 73, 0, 8, 197, 80, 84, 141,
+			36, 224, 65, 8, 197, 24, 245, 2, 4, 192, 65, 8, 197, 8, 20, 141, 4, 224, 65, 11, 136, 6, 18, 5, 13, 196, 131, 20, 1, 67,
+			6, 65, 72, 34, 36, 0, 0, 12, 137, 195, 174, 14, 7, 8, 9, 197, 163, 9, 67, 6, 194, 5, 32, 76, 32, 0, 0, 7, 196, 64,
+			241, 5, 4, 66, 7, 196, 77, 81, 197, 4, 66, 0, 8, 197, 72, 81, 213, 48, 144, 65, 11, 136, 4, 9, 19, 20, 18, 196, 131, 13,
+			66, 8, 197, 12, 195, 195, 61, 64, 65, 10, 65, 76, 89, 39, 0, 72, 81, 111, 32, 12, 65, 76, 89, 39, 34, 0, 72, 81, 111, 114,
+			32, 12, 65, 76, 89, 35, 34, 0, 72, 81, 97, 114, 32, 0, 18, 70, 77, 0, 78, 36, 243, 5, 89, 48, 35, 50, 37, 6, 39, 55,
+			36, 0, 12, 137, 16, 196, 131, 19, 20, 18, 196, 131, 13, 66, 9, 134, 3, 1, 16, 196, 131, 20, 65, 17, 70, 5, 4, 143, 64, 244,
+			192, 35, 48, 14, 16, 39, 48, 6, 39, 0, 0, 10, 199, 77, 80, 133, 77, 66, 77, 4, 68, 10, 199, 65, 33, 76, 84, 225, 197, 4,
+			67, 18, 70, 12, 243, 148, 36, 229, 65, 49, 39, 50, 47, 37, 50, 58, 6, 35, 0, 0, 7, 196, 12, 17, 133, 4, 66, 7, 196, 89,
+			35, 201, 4, 66, 0, 11, 136, 26, 1, 18, 26, 196, 131, 18, 9, 65, 8, 197, 76, 84, 150, 21, 32, 65, 11, 136, 16, 196, 131, 19,
+			196, 131, 18, 9, 65, 6, 65, 80, 47, 36, 0, 0, 9, 198, 25, 32, 71, 20, 65, 64, 65, 0, 0, 7, 196, 65, 34, 86, 36, 67,
+			0, 0, 12, 67, 85, 0, 192, 40, 48, 36, 76, 6, 36, 0, 0, 12, 137, 16, 196, 131, 19, 20, 18, 196, 131, 22, 65, 16, 141, 195,
+			174, 14, 3, 196, 131, 16, 5, 18, 9, 12, 15, 18, 67, 9, 134, 196, 131, 12, 15, 18, 1, 77, 0, 10, 135, 20, 1, 2, 196, 131,
+			18, 1, 65, 6, 195, 48, 245, 137, 66, 0, 19, 8, 19, 16, 21, 14, 5, 197, 163, 9, 89, 48, 6, 40, 50, 36, 123, 124, 0, 16,
+			69, 21, 131, 212, 36, 48, 36, 81, 88, 6, 39, 47, 37, 49, 0, 13, 65, 88, 84, 35, 91, 0, 72, 81, 97, 197, 159, 32, 12, 65,
+			88, 84, 35, 34, 0, 72, 81, 97, 114, 32, 7, 193, 88, 72, 81, 111, 32, 12, 65, 88, 84, 35, 65, 0, 72, 81, 97, 109, 32, 11,
+			65, 88, 84, 114, 0, 72, 81, 97, 117, 32, 15, 65, 88, 84, 35, 141, 124, 0, 72, 81, 97, 197, 163, 105, 32, 8, 197, 81, 33, 67,
+			20, 16, 66, 8, 197, 12, 243, 147, 80, 16, 66, 11, 136, 16, 196, 131, 18, 196, 131, 19, 9, 67, 11, 136, 195, 174, 14, 19, 21, 197,
+			163, 9, 77, 6, 65, 88, 84, 36, 0, 0, 8, 133, 16, 196, 131, 20, 21, 65, 9, 198, 16, 83, 211, 20, 34, 64, 67, 6, 194, 5,
+			48, 76, 32, 0, 9, 134, 20, 196, 131, 18, 9, 9, 65, 13, 138, 18, 5, 197, 163, 9, 14, 5, 197, 163, 9, 66, 10, 199, 17, 84,
+			133, 72, 147, 15, 72, 66, 0, 14, 139, 18, 196, 131, 13, 195, 162, 14, 5, 197, 163, 9, 66, 7, 196, 52, 243, 9, 52, 65, 10, 135,
+			12, 1, 7, 196, 131, 18, 5, 65, 14, 68, 29, 33, 79, 36, 81, 14, 16, 36, 6, 39, 57, 0, 7, 196, 17, 80, 197, 52, 65, 10,
+			135, 3, 196, 131, 18, 15, 18, 1, 73, 10, 135, 3, 196, 131, 18, 15, 18, 1, 73, 17, 4, 95, 49, 77, 52, 6, 40, 50, 71, 37,
+			55, 6, 57, 39, 50, 0, 0, 9, 198, 76, 147, 66, 60, 194, 67, 66, 8, 197, 13, 33, 83, 13, 80, 66, 18, 4, 95, 49, 77, 53,
+			6, 40, 50, 71, 37, 55, 6, 57, 35, 34, 72, 0, 12, 65, 92, 72, 40, 71, 55, 40, 6, 84, 36, 0, 0, 12, 137, 1, 12, 5,
+			18, 7, 196, 131, 20, 21, 68, 0, 0, 7, 196, 52, 147, 137, 52, 65, 14, 139, 195, 174, 14, 6, 21, 14, 4, 196, 131, 20, 21, 68,
+			14, 139, 195, 174, 14, 3, 21, 18, 3, 196, 131, 20, 21, 68, 0, 13, 4, 95, 49, 77, 49, 4, 39, 65, 6, 37, 36, 0, 7, 65,
+			96, 37, 49, 89, 0, 0, 11, 136, 197, 159, 13, 5, 3, 8, 5, 18, 65, 17, 4, 95, 49, 77, 50, 6, 40, 50, 65, 37, 55, 6,
+			57, 39, 50, 0, 0, 9, 198, 52, 146, 140, 60, 16, 197, 65, 6, 195, 84, 229, 76, 77, 18, 4, 95, 49, 77, 51, 6, 40, 50, 65,
+			37, 55, 6, 57, 35, 34, 72, 0, 0, 7, 196, 48, 144, 133, 72, 65, 7, 196, 65, 33, 68, 4, 66, 11, 67, 53, 84, 137, 65, 40,
+			34, 6, 37, 0, 0, 11, 136, 16, 195, 162, 14, 20, 5, 3, 5, 65, 10, 65, 100, 6, 37, 81, 34, 36, 49, 0, 0, 0, 6, 195,
+			5, 84, 128, 65, 9, 134, 8, 196, 131, 3, 21, 9, 67, 0, 7, 196, 80, 83, 137, 76, 65, 12, 68, 80, 19, 148, 36, 47, 35, 50,
+			47, 37, 0, 6, 195, 84, 229, 73, 73, 0, 11, 136, 1, 12, 5, 7, 5, 197, 163, 9, 66, 7, 65, 104, 88, 36, 47, 0, 0, 12,
+			137, 19, 195, 162, 13, 2, 196, 131, 20, 1, 65, 9, 198, 64, 243, 9, 80, 144, 192, 66, 8, 133, 2, 15, 197, 163, 9, 66, 8, 133,
+			196, 131, 19, 20, 1, 77, 0, 9, 198, 77, 68, 133, 13, 84, 129, 67, 0, 7, 196, 76, 17, 5, 4, 66, 7, 196, 88, 81, 5, 4,
+			66, 7, 196, 25, 81, 197, 4, 66, 0, 11, 136, 197, 159, 15, 1, 18, 5, 3, 9, 65, 8, 197, 25, 83, 7, 21, 32, 65, 0, 16,
+			141, 195, 174, 14, 197, 163, 5, 12, 5, 7, 5, 197, 163, 9, 67, 12, 137, 195, 174, 13, 2, 195, 162, 3, 19, 9, 67, 0, 0, 0,
+			8, 197, 53, 83, 20, 61, 32, 73, 0, 9, 198, 64, 20, 148, 20, 225, 64, 67, 14, 5, 5, 197, 159, 20, 9, 57, 36, 91, 47, 124,
+			0, 76, 5, 194, 12, 16, 72, 0, 15, 140, 195, 174, 14, 20, 195, 162, 13, 16, 9, 14, 196, 131, 66, 0, 7, 196, 76, 19, 22, 4,
+			66, 10, 135, 1, 3, 5, 197, 159, 20, 9, 72, 0, 8, 197, 48, 147, 135, 20, 16, 66, 8, 132, 1, 197, 163, 9, 76, 32, 0, 9,
+			198, 65, 35, 214, 20, 226, 64, 67, 12, 137, 1, 4, 196, 131, 16, 15, 19, 20, 9, 68, 0, 10, 199, 77, 84, 5, 73, 98, 90, 4,
+			68, 0, 7, 196, 53, 81, 213, 72, 65, 10, 135, 6, 1, 3, 5, 197, 163, 9, 65, 10, 135, 4, 21, 3, 5, 197, 163, 9, 65, 0,
+			11, 136, 20, 18, 1, 7, 5, 197, 163, 9, 65, 11, 136, 15, 1, 19, 16, 5, 197, 163, 9, 65, 11, 136, 8, 1, 9, 4, 5, 197,
+			163, 9, 65, 11, 136, 3, 18, 5, 4, 5, 197, 163, 9, 65, 11, 136, 1, 4, 21, 3, 5, 197, 163, 9, 66, 11, 136, 195, 174, 14,
+			3, 1, 18, 14, 1, 67, 11, 136, 195, 174, 14, 20, 5, 197, 163, 9, 67, 11, 136, 19, 21, 14, 20, 5, 197, 163, 9, 77, 0, 12,
+			137, 197, 163, 1, 14, 4, 196, 131, 18, 1, 65, 12, 137, 4, 5, 4, 21, 3, 5, 197, 163, 9, 66, 5, 194, 5, 80, 76, 0, 13,
+			138, 16, 18, 15, 1, 19, 16, 5, 197, 163, 9, 65, 13, 138, 16, 18, 5, 6, 1, 3, 5, 197, 163, 9, 66, 13, 138, 3, 18, 5,
+			197, 159, 20, 5, 197, 163, 9, 65, 0, 13, 68, 88, 243, 21, 52, 84, 39, 55, 6, 40, 65, 0, 0, 11, 136, 12, 21, 3, 18, 196,
+			131, 20, 21, 67, 0, 8, 133, 16, 196, 131, 19, 1, 66, 0, 13, 138, 22, 9, 14, 15, 22, 196, 131, 197, 163, 9, 20, 13, 138, 14,
+			21, 13, 196, 131, 18, 196, 131, 20, 21, 68, 0, 14, 139, 22, 196, 131, 20, 196, 131, 13, 196, 131, 20, 21, 68, 11, 200, 64, 244, 148,
+			60, 48, 76, 37, 80, 68, 9, 134, 16, 196, 131, 3, 21, 18, 65, 15, 139, 3, 21, 13, 16, 196, 131, 18, 196, 131, 20, 21, 67, 18,
+			0, 15, 140, 26, 4, 18, 21, 14, 3, 9, 14, 196, 131, 20, 21, 68, 11, 136, 197, 159, 15, 1, 18, 5, 3, 5, 65, 15, 140, 16,
+			9, 5, 16, 20, 196, 131, 14, 196, 131, 20, 21, 68, 11, 136, 195, 174, 14, 3, 8, 5, 7, 1, 67, 0, 0, 9, 134, 18, 195, 162,
+			14, 10, 9, 66, 0, 11, 67, 48, 147, 9, 55, 6, 37, 55, 37, 0, 7, 196, 80, 84, 212, 4, 66, 10, 135, 1, 7, 196, 131, 197,
+			163, 1, 67, 0, 8, 197, 25, 32, 71, 20, 64, 65, 0, 20, 145, 195, 174, 14, 20, 18, 5, 4, 5, 19, 3, 8, 9, 26, 196, 131,
+			20, 21, 70, 9, 198, 24, 197, 73, 21, 32, 64, 67, 9, 198, 20, 229, 77, 21, 32, 64, 68, 0, 0, 0, 0, 8, 133, 16, 196, 131,
+			18, 21, 66, 9, 198, 52, 244, 195, 61, 96, 64, 65, 9, 198, 65, 35, 205, 61, 96, 64, 67, 9, 198, 12, 243, 131, 85, 32, 64, 67,
+			0, 11, 136, 3, 18, 9, 22, 196, 131, 197, 163, 65, 0, 14, 139, 19, 21, 19, 197, 163, 9, 14, 5, 197, 163, 9, 66, 14, 139, 13,
+			5, 14, 197, 163, 9, 14, 5, 197, 163, 9, 66, 8, 133, 4, 21, 16, 196, 131, 28, 0, 8, 197, 76, 147, 135, 85, 32, 65, 8, 197,
+			12, 19, 131, 21, 32, 65, 0, 14, 139, 9, 14, 20, 5, 18, 19, 5, 3, 20, 196, 131, 67, 9, 198, 36, 81, 148, 36, 225, 64, 65,
+			9, 198, 24, 197, 73, 21, 33, 64, 65, 12, 137, 195, 174, 14, 19, 196, 131, 197, 159, 9, 77, 0, 13, 138, 20, 15, 22, 1, 18, 196,
+			131, 197, 159, 9, 66, 11, 136, 3, 195, 162, 14, 5, 16, 196, 131, 65, 9, 134, 3, 196, 131, 26, 14, 9, 66, 0, 12, 67, 13, 33,
+			65, 49, 14, 16, 36, 6, 35, 0, 6, 195, 5, 97, 65, 78, 10, 135, 196, 131, 19, 20, 5, 9, 1, 77, 0, 0, 9, 198, 76, 147,
+			135, 85, 33, 64, 65, 0, 13, 138, 197, 163, 196, 131, 14, 4, 196, 131, 18, 9, 65, 13, 138, 3, 196, 131, 19, 196, 131, 20, 15, 18,
+			9, 68, 7, 195, 61, 34, 64, 72, 8, 0, 7, 196, 92, 80, 133, 72, 65, 11, 200, 56, 244, 212, 36, 210, 76, 61, 32, 65, 6, 195,
+			5, 97, 77, 76, 0, 8, 197, 52, 84, 135, 20, 16, 66, 0, 9, 198, 16, 144, 86, 60, 194, 64, 65, 0, 6, 195, 37, 98, 64, 66,
+			17, 6, 3, 196, 131, 20, 18, 5, 49, 6, 13, 47, 14, 16, 36, 0, 28, 0, 12, 137, 20, 15, 22, 1, 18, 196, 131, 197, 159, 66,
+			11, 200, 64, 20, 148, 20, 225, 82, 20, 144, 67, 0, 8, 197, 76, 19, 20, 20, 16, 66, 16, 69, 61, 32, 78, 28, 80, 6, 39, 14,
+			16, 37, 50, 75, 124, 0, 8, 197, 53, 86, 137, 12, 16, 65, 8, 197, 77, 83, 148, 20, 208, 77, 0, 0, 10, 199, 16, 83, 79, 57,
+			53, 18, 4, 67, 0, 12, 137, 197, 163, 1, 14, 197, 163, 15, 197, 159, 65, 10, 135, 16, 9, 3, 196, 131, 20, 21, 67, 13, 68, 52,
+			81, 9, 84, 65, 6, 36, 72, 57, 40, 0, 10, 135, 12, 5, 7, 196, 131, 20, 21, 67, 6, 195, 80, 19, 5, 77, 0, 8, 197, 24,
+			145, 82, 81, 80, 66, 11, 136, 1, 16, 21, 3, 196, 131, 20, 21, 68, 8, 197, 37, 160, 149, 80, 144, 67, 12, 137, 3, 5, 12, 196,
+			131, 12, 1, 12, 20, 79, 0, 12, 137, 21, 18, 26, 9, 3, 196, 131, 20, 21, 68, 12, 137, 1, 18, 21, 14, 3, 196, 131, 20, 21,
+			68, 0, 13, 138, 8, 21, 18, 4, 21, 3, 196, 131, 20, 21, 68, 13, 138, 1, 12, 21, 14, 5, 3, 196, 131, 20, 21, 68, 9, 134,
+			16, 18, 196, 131, 10, 9, 66, 0, 10, 135, 14, 5, 3, 196, 131, 10, 9, 67, 14, 139, 195, 174, 14, 18, 5, 7, 9, 19, 20, 18,
+			1, 68, 0, 15, 140, 195, 174, 14, 3, 18, 5, 14, 7, 196, 131, 20, 21, 68, 15, 140, 195, 174, 14, 3, 196, 131, 18, 3, 196, 131,
+			20, 21, 68, 11, 136, 195, 174, 13, 16, 12, 9, 14, 9, 67, 0, 0, 0, 12, 68, 100, 18, 15, 60, 57, 35, 107, 6, 40, 0, 9,
+			134, 197, 159, 21, 9, 5, 18, 65, 9, 198, 64, 20, 148, 20, 225, 82, 67, 7, 196, 65, 84, 148, 4, 66, 7, 196, 5, 1, 76, 4,
+			67, 17, 7, 22, 15, 197, 159, 20, 18, 9, 84, 39, 91, 47, 16, 37, 0, 77, 17, 7, 14, 15, 197, 159, 20, 18, 9, 50, 39, 91,
+			47, 16, 37, 0, 77, 0, 19, 70, 36, 229, 5, 73, 5, 83, 37, 50, 47, 36, 14, 16, 48, 6, 40, 89, 0, 0, 9, 198, 60, 36,
+			197, 73, 96, 64, 67, 9, 198, 53, 84, 141, 85, 32, 64, 67, 0, 9, 198, 81, 34, 77, 37, 65, 77, 66, 9, 134, 7, 18, 5, 197,
+			159, 9, 66, 0, 0, 0, 9, 198, 21, 129, 67, 85, 64, 64, 68, 9, 198, 5, 50, 71, 85, 32, 64, 68, 0, 0, 12, 137, 6, 15,
+			14, 5, 20, 9, 3, 196, 131, 66, 16, 7, 1, 18, 196, 131, 197, 163, 9, 35, 34, 6, 13, 123, 124, 0, 6, 195, 48, 148, 9, 66,
+			14, 68, 61, 34, 67, 20, 39, 16, 124, 76, 4, 36, 0, 75, 0, 8, 197, 21, 128, 77, 20, 224, 66, 11, 136, 195, 174, 14, 6, 21,
+			14, 4, 1, 67, 0, 9, 198, 52, 20, 148, 61, 33, 64, 65, 9, 198, 16, 240, 212, 61, 33, 64, 65, 0, 6, 195, 5, 101, 64, 66,
+			0, 12, 137, 16, 18, 5, 15, 3, 21, 16, 196, 131, 68, 0, 8, 197, 13, 32, 84, 21, 32, 65, 0, 8, 133, 20, 196, 131, 9, 5,
+			66, 6, 194, 4, 144, 76, 32, 5, 194, 12, 80, 76, 6, 194, 4, 144, 72, 28, 8, 66, 20, 16, 57, 35, 0, 76, 0, 9, 198, 88,
+			144, 212, 61, 34, 73, 66, 10, 135, 197, 159, 21, 2, 18, 5, 4, 65, 13, 138, 3, 5, 20, 196, 131, 197, 163, 21, 9, 5, 67, 0,
+			7, 196, 53, 86, 137, 44, 65, 16, 7, 3, 5, 1, 21, 197, 159, 21, 76, 135, 6, 40, 91, 40, 0, 0, 8, 197, 84, 212, 12, 20,
+			16, 66, 11, 136, 4, 5, 197, 163, 9, 14, 5, 1, 67, 15, 140, 195, 174, 14, 22, 196, 131, 18, 20, 5, 10, 5, 1, 68, 6, 195,
+			12, 83, 0, 76, 0, 9, 198, 52, 20, 148, 61, 34, 64, 65, 0, 13, 138, 3, 196, 131, 12, 196, 131, 21, 26, 5, 1, 68, 10, 199,
+			56, 144, 201, 84, 225, 76, 20, 77, 0, 7, 196, 88, 81, 5, 72, 66, 7, 196, 72, 17, 1, 72, 65, 7, 196, 48, 145, 5, 72, 65,
+			11, 135, 20, 15, 20, 21, 197, 159, 9, 65, 28, 0, 8, 197, 36, 224, 77, 36, 48, 67, 8, 197, 32, 242, 15, 80, 80, 65, 11, 136,
+			3, 195, 162, 20, 21, 197, 159, 9, 65, 8, 197, 52, 241, 5, 72, 16, 67, 8, 197, 13, 85, 133, 56, 144, 67, 13, 69, 16, 242, 76,
+			20, 16, 72, 6, 120, 55, 135, 0, 0, 9, 198, 64, 144, 212, 61, 34, 64, 65, 9, 198, 24, 16, 212, 61, 34, 64, 65, 5, 194, 13,
+			80, 72, 0, 0, 0, 11, 136, 2, 15, 13, 2, 196, 131, 14, 5, 65, 0, 17, 70, 77, 84, 144, 49, 84, 192, 89, 40, 16, 48, 55,
+			6, 40, 89, 0, 12, 137, 13, 5, 14, 197, 163, 9, 14, 5, 13, 66, 0, 10, 199, 16, 84, 195, 32, 145, 5, 52, 66, 0, 12, 67,
+			80, 22, 9, 47, 6, 35, 49, 89, 37, 0, 13, 68, 64, 149, 73, 20, 48, 6, 37, 40, 37, 36, 0, 7, 196, 13, 81, 197, 80, 65,
+			14, 139, 3, 12, 196, 131, 14, 197, 163, 196, 131, 14, 5, 65, 0, 11, 136, 195, 174, 14, 7, 18, 9, 10, 9, 67, 0, 0, 9, 198,
+			64, 144, 212, 61, 34, 73, 65, 0, 7, 196, 72, 244, 212, 36, 66, 0, 0, 9, 198, 56, 147, 69, 72, 80, 64, 67, 9, 198, 16, 245,
+			133, 16, 80, 64, 67, 0, 0, 7, 196, 9, 80, 213, 72, 65, 7, 196, 60, 53, 80, 4, 67, 0, 8, 197, 80, 84, 141, 20, 224, 65,
+			0, 12, 137, 19, 20, 18, 195, 162, 14, 7, 5, 13, 65, 9, 198, 12, 19, 129, 64, 80, 64, 67, 0, 11, 67, 72, 80, 76, 34, 36,
+			6, 35, 55, 0, 10, 199, 36, 228, 208, 20, 53, 15, 72, 66, 13, 138, 195, 174, 14, 20, 195, 162, 13, 16, 12, 1, 67, 0, 7, 196,
+			81, 33, 67, 84, 66, 7, 196, 48, 147, 149, 96, 65, 0, 0, 9, 198, 60, 34, 67, 20, 149, 64, 67, 0, 0, 11, 200, 36, 224, 77,
+			36, 50, 76, 61, 32, 67, 10, 135, 18, 5, 21, 197, 159, 5, 1, 67, 7, 196, 28, 243, 133, 4, 66, 10, 135, 3, 5, 18, 197, 159,
+			5, 1, 66, 13, 68, 5, 32, 213, 36, 35, 34, 49, 40, 6, 37, 0, 0, 8, 197, 72, 240, 133, 73, 64, 65, 6, 195, 84, 227, 210,
+			73, 0, 11, 66, 16, 80, 72, 135, 0, 72, 81, 97, 32, 25, 66, 16, 80, 72, 2, 36, 15, 35, 47, 6, 40, 50, 76, 124, 0, 8,
+			81, 97, 116, 117, 110, 99, 105, 32, 14, 66, 16, 80, 72, 36, 55, 35, 0, 72, 81, 108, 97, 32, 5, 194, 16, 80, 72, 0, 7, 195,
+			88, 82, 64, 76, 32, 0, 7, 196, 72, 84, 212, 84, 65, 7, 196, 104, 37, 82, 4, 66, 0, 8, 197, 4, 210, 78, 80, 144, 67, 0,
+			9, 198, 20, 225, 82, 28, 146, 64, 20, 8, 133, 18, 196, 131, 3, 9, 66, 0, 10, 199, 65, 35, 193, 77, 1, 84, 20, 65, 19, 70,
+			24, 20, 141, 4, 50, 69, 83, 35, 14, 16, 65, 35, 76, 6, 37, 36, 0, 9, 134, 1, 13, 196, 131, 7, 9, 67, 0, 11, 67, 80,
+			21, 9, 47, 6, 35, 47, 37, 0, 16, 4, 95, 4, 16, 20, 10, 84, 6, 37, 34, 81, 40, 55, 13, 0, 0, 15, 69, 64, 20, 143,
+			16, 144, 48, 35, 16, 39, 72, 6, 37, 0, 0, 8, 133, 16, 196, 131, 4, 21, 66, 0, 0, 8, 196, 36, 228, 213, 48, 65, 18, 6,
+			195, 32, 147, 69, 66, 0, 15, 69, 77, 84, 208, 85, 48, 89, 40, 89, 48, 6, 40, 89, 0, 14, 69, 32, 147, 132, 85, 48, 37, 50,
+			72, 6, 40, 89, 0, 0, 0, 0, 22, 72, 76, 83, 73, 65, 35, 196, 85, 48, 89, 36, 65, 37, 48, 16, 39, 72, 6, 40, 89, 0,
+			6, 195, 73, 83, 1, 66, 7, 196, 21, 99, 195, 4, 67, 13, 68, 61, 53, 15, 36, 39, 89, 47, 39, 6, 37, 0, 0, 0, 9, 198,
+			64, 145, 82, 16, 83, 64, 65, 6, 194, 4, 192, 72, 28, 0, 0, 7, 196, 76, 148, 212, 4, 66, 10, 3, 95, 35, 57, 47, 6, 35,
+			71, 0, 13, 4, 95, 20, 12, 4, 47, 6, 37, 55, 72, 13, 0, 0, 0, 9, 198, 80, 82, 135, 32, 80, 64, 66, 9, 198, 65, 85,
+			5, 72, 80, 64, 66, 12, 201, 36, 225, 146, 5, 53, 18, 84, 53, 21, 68, 18, 70, 16, 148, 212, 73, 84, 192, 72, 37, 89, 47, 14,
+			16, 6, 40, 89, 0, 0, 14, 67, 72, 68, 192, 6, 36, 34, 72, 36, 6, 36, 89, 0, 10, 199, 12, 20, 129, 13, 65, 82, 20, 67,
+			0, 13, 5, 14, 15, 21, 196, 131, 50, 6, 39, 40, 13, 0, 13, 68, 12, 243, 15, 72, 49, 39, 55, 6, 39, 16, 0, 7, 196, 76,
+			53, 84, 36, 66, 0, 11, 136, 18, 195, 162, 14, 10, 5, 20, 5, 65, 12, 201, 77, 84, 18, 4, 84, 212, 36, 208, 64, 69, 0, 9,
+			198, 65, 35, 214, 60, 48, 64, 67, 18, 70, 5, 4, 143, 64, 144, 64, 35, 48, 14, 16, 39, 48, 37, 6, 35, 0, 0, 10, 199, 52,
+			85, 1, 24, 244, 137, 12, 67, 15, 6, 3, 196, 131, 21, 20, 1, 49, 13, 40, 47, 6, 35, 0, 0, 7, 196, 24, 83, 137, 96, 65,
+			0, 13, 6, 3, 1, 21, 20, 196, 131, 49, 114, 47, 13, 0, 0, 9, 198, 88, 144, 212, 36, 209, 64, 65, 9, 198, 77, 64, 84, 84,
+			145, 64, 66, 0, 11, 136, 6, 12, 1, 13, 21, 18, 196, 131, 65, 9, 134, 7, 18, 196, 131, 2, 9, 68, 0, 7, 196, 57, 83, 65,
+			36, 65, 7, 196, 24, 83, 9, 96, 65, 7, 196, 88, 83, 133, 4, 66, 7, 196, 57, 83, 69, 4, 66, 0, 0, 9, 198, 88, 149, 18,
+			20, 113, 64, 65, 9, 198, 12, 243, 150, 36, 225, 192, 66, 6, 194, 4, 208, 76, 32, 0, 0, 7, 196, 85, 66, 76, 20, 66, 9, 198,
+			4, 210, 67, 36, 195, 210, 66, 7, 196, 32, 243, 2, 4, 66, 0, 8, 197, 29, 85, 21, 36, 80, 66, 8, 197, 12, 240, 201, 56, 80,
+			65, 11, 136, 16, 12, 195, 162, 14, 7, 5, 1, 66, 8, 197, 60, 66, 72, 56, 144, 67, 7, 132, 195, 174, 13, 9, 72, 0, 9, 198,
+			4, 100, 137, 12, 146, 64, 65, 0, 0, 13, 68, 77, 84, 21, 76, 89, 40, 48, 6, 40, 89, 0, 7, 196, 25, 83, 69, 28, 65, 0,
+			8, 197, 64, 20, 134, 84, 208, 66, 16, 69, 13, 34, 83, 80, 144, 49, 14, 16, 6, 37, 89, 47, 37, 0, 11, 136, 19, 195, 162, 14,
+			7, 5, 18, 1, 67, 11, 136, 18, 196, 131, 20, 196, 131, 3, 9, 67, 11, 136, 18, 196, 131, 20, 196, 131, 3, 9, 67, 8, 197, 32,
+			242, 15, 80, 144, 67, 19, 8, 3, 195, 162, 197, 163, 9, 22, 1, 49, 112, 123, 124, 84, 6, 35, 0, 78, 0, 9, 198, 88, 149, 18,
+			20, 114, 64, 65, 9, 198, 48, 16, 210, 36, 210, 64, 65, 8, 66, 21, 80, 57, 115, 0, 76, 0, 0, 7, 196, 89, 82, 69, 80, 65,
+			10, 135, 197, 159, 21, 9, 5, 18, 1, 67, 0, 19, 8, 3, 195, 174, 197, 163, 9, 22, 1, 49, 112, 123, 124, 84, 6, 35, 0, 78,
+			0, 12, 137, 195, 174, 14, 4, 21, 18, 5, 18, 1, 68, 0, 0, 7, 196, 53, 81, 197, 80, 65, 16, 70, 20, 147, 147, 80, 82, 78,
+			6, 117, 50, 91, 47, 117, 50, 0, 7, 196, 77, 67, 195, 4, 66, 0, 8, 197, 25, 34, 80, 81, 80, 66, 0, 9, 134, 18, 195, 162,
+			19, 5, 20, 65, 0, 24, 73, 25, 32, 78, 44, 83, 147, 80, 82, 78, 83, 34, 6, 35, 50, 49, 36, 50, 91, 47, 117, 50, 0, 6,
+			195, 57, 83, 73, 66, 0, 0, 7, 196, 29, 32, 86, 84, 66, 0, 8, 197, 72, 243, 129, 48, 64, 65, 11, 4, 15, 18, 196, 131, 6,
+			39, 34, 13, 0, 9, 198, 52, 85, 1, 24, 244, 133, 66, 9, 198, 24, 147, 15, 104, 241, 137, 20, 9, 134, 19, 16, 196, 131, 12, 1,
+			66, 9, 198, 65, 35, 211, 64, 84, 129, 67, 0, 13, 138, 195, 174, 14, 4, 18, 196, 131, 26, 14, 9, 67, 0, 10, 199, 64, 20, 148,
+			20, 225, 82, 20, 67, 19, 8, 195, 174, 14, 1, 9, 14, 20, 5, 112, 50, 35, 6, 37, 50, 47, 36, 0, 15, 6, 6, 196, 131, 18,
+			196, 131, 83, 4, 13, 34, 13, 0, 8, 0, 7, 196, 80, 19, 135, 60, 66, 8, 133, 3, 196, 131, 26, 21, 66, 12, 201, 16, 84, 195,
+			60, 228, 201, 16, 84, 129, 69, 0, 9, 198, 76, 80, 213, 72, 144, 197, 67, 9, 198, 52, 84, 193, 28, 84, 129, 67, 9, 198, 36, 224,
+			201, 56, 84, 129, 68, 9, 198, 16, 84, 195, 85, 32, 193, 67, 0, 9, 198, 52, 85, 1, 24, 244, 128, 66, 10, 135, 12, 21, 3, 18,
+			196, 131, 13, 66, 0, 11, 136, 195, 174, 14, 1, 9, 14, 20, 1, 67, 9, 134, 16, 195, 162, 14, 196, 131, 8, 7, 132, 20, 196, 131,
+			21, 76, 0, 10, 135, 12, 1, 20, 21, 18, 196, 131, 65, 7, 196, 65, 34, 77, 36, 66, 0, 11, 136, 22, 196, 131, 4, 21, 22, 196,
+			131, 65, 11, 136, 20, 18, 5, 13, 21, 18, 196, 131, 65, 11, 136, 16, 196, 131, 20, 21, 18, 196, 131, 65, 11, 136, 13, 196, 131, 20,
+			21, 18, 196, 131, 65, 11, 136, 5, 12, 9, 2, 5, 18, 196, 131, 68, 13, 138, 3, 21, 13, 16, 196, 131, 18, 196, 131, 13, 67, 0,
+			10, 135, 3, 196, 131, 18, 21, 9, 1, 73, 0, 13, 138, 3, 21, 20, 18, 5, 13, 21, 18, 196, 131, 66, 0, 8, 133, 20, 196, 131,
+			3, 21, 66, 7, 196, 16, 244, 133, 4, 66, 7, 196, 12, 84, 133, 4, 66, 14, 68, 4, 116, 133, 4, 35, 81, 14, 16, 36, 6, 35,
+			0, 7, 196, 12, 84, 133, 4, 66, 12, 137, 197, 159, 196, 131, 19, 5, 12, 5, 1, 65, 0, 13, 138, 14, 5, 22, 196, 131, 19, 20,
+			21, 9, 5, 67, 9, 134, 18, 195, 162, 4, 5, 1, 66, 23, 10, 15, 18, 9, 3, 196, 131, 18, 21, 9, 1, 39, 16, 124, 49, 13,
+			34, 40, 37, 35, 0, 79, 0, 6, 195, 88, 83, 137, 66, 10, 135, 1, 197, 163, 9, 14, 20, 9, 67, 10, 135, 3, 196, 131, 18, 5,
+			9, 1, 73, 0, 10, 135, 4, 196, 131, 18, 196, 131, 20, 66, 26, 4, 197, 159, 46, 1, 91, 37, 11, 35, 91, 4, 35, 15, 65, 117,
+			15, 72, 36, 48, 6, 35, 34, 47, 36, 0, 0, 0, 8, 197, 48, 16, 207, 52, 144, 65, 8, 197, 36, 226, 77, 36, 144, 65, 13, 138,
+			3, 196, 131, 18, 196, 131, 18, 21, 9, 5, 68, 8, 197, 88, 83, 133, 72, 16, 67, 8, 197, 4, 193, 82, 28, 16, 67, 23, 10, 15,
+			18, 9, 3, 196, 131, 18, 5, 9, 1, 39, 16, 124, 49, 13, 34, 36, 37, 35, 0, 79, 0, 13, 138, 195, 174, 14, 4, 196, 131, 18,
+			196, 131, 20, 67, 14, 139, 6, 12, 196, 131, 3, 196, 131, 18, 21, 9, 5, 67, 0, 10, 199, 64, 20, 148, 20, 225, 82, 36, 67, 10,
+			199, 12, 19, 132, 36, 64, 84, 84, 68, 7, 132, 20, 196, 131, 9, 76, 0, 12, 137, 26, 7, 195, 162, 18, 9, 5, 20, 21, 68, 11,
+			200, 64, 20, 148, 20, 225, 82, 36, 144, 67, 7, 196, 13, 82, 86, 4, 66, 11, 200, 65, 33, 83, 85, 5, 78, 20, 16, 68, 0, 8,
+			197, 84, 225, 5, 88, 16, 67, 8, 197, 81, 33, 67, 20, 208, 65, 9, 134, 4, 5, 197, 163, 9, 9, 66, 9, 198, 5, 68, 137, 9,
+			82, 65, 68, 13, 138, 19, 196, 131, 22, 195, 162, 18, 197, 159, 9, 67, 8, 197, 16, 85, 133, 56, 144, 67, 0, 10, 135, 2, 196, 131,
+			20, 196, 131, 9, 66, 0, 7, 195, 16, 147, 128, 72, 28, 0, 7, 196, 5, 66, 78, 28, 66, 0, 9, 198, 12, 243, 210, 16, 243, 129,
+			68, 0, 14, 139, 195, 174, 14, 7, 8, 9, 197, 163, 9, 20, 21, 68, 0, 20, 71, 76, 84, 150, 36, 50, 85, 48, 89, 36, 34, 84,
+			6, 37, 76, 57, 40, 55, 0, 11, 136, 22, 5, 197, 159, 20, 5, 10, 9, 67, 0, 7, 196, 21, 3, 195, 36, 65, 0, 9, 134, 3,
+			196, 131, 12, 3, 1, 66, 14, 3, 3, 6, 46, 99, 111, 110, 102, 111, 114, 109, 0, 29, 0, 16, 7, 19, 16, 1, 197, 163, 9, 21,
+			89, 48, 35, 123, 57, 40, 0, 17, 70, 56, 144, 201, 13, 83, 64, 50, 37, 76, 124, 49, 6, 40, 65, 0, 0, 0, 7, 196, 5, 34,
+			80, 36, 65, 7, 196, 37, 34, 84, 4, 67, 7, 196, 21, 98, 84, 4, 67, 0, 13, 138, 195, 174, 14, 7, 8, 9, 15, 14, 20, 9,
+			67, 0, 9, 198, 72, 81, 201, 104, 244, 128, 66, 11, 136, 16, 12, 195, 162, 14, 7, 5, 18, 65, 11, 67, 13, 35, 201, 49, 34, 39,
+			6, 37, 0, 0, 9, 134, 20, 21, 18, 14, 196, 131, 66, 7, 195, 16, 20, 128, 72, 8, 0, 0, 11, 136, 18, 5, 16, 12, 9, 3,
+			196, 131, 65, 11, 136, 9, 13, 16, 12, 9, 3, 196, 131, 66, 9, 198, 4, 115, 15, 52, 84, 129, 68, 0, 10, 135, 26, 2, 21, 18,
+			196, 131, 13, 66, 12, 137, 20, 196, 131, 22, 9, 197, 163, 196, 131, 66, 0, 11, 136, 18, 5, 16, 1, 18, 196, 131, 13, 67, 7, 132,
+			196, 131, 9, 1, 77, 0, 12, 137, 3, 15, 13, 16, 1, 18, 196, 131, 13, 67, 10, 135, 1, 18, 20, 5, 18, 196, 131, 66, 0, 13,
+			138, 22, 195, 162, 14, 196, 131, 20, 196, 131, 9, 67, 13, 138, 19, 20, 18, 5, 3, 21, 18, 196, 131, 13, 67, 13, 138, 18, 5, 3,
+			21, 16, 5, 18, 196, 131, 13, 68, 11, 136, 16, 1, 14, 20, 5, 18, 196, 131, 66, 0, 14, 139, 22, 195, 162, 12, 22, 196, 131, 20,
+			196, 131, 9, 67, 10, 135, 1, 19, 20, 196, 131, 26, 9, 65, 10, 135, 22, 195, 162, 19, 12, 5, 1, 66, 0, 11, 4, 2, 196, 131,
+			21, 71, 13, 6, 40, 0, 0, 9, 134, 12, 1, 26, 196, 131, 18, 65, 16, 141, 195, 174, 14, 6, 196, 131, 197, 159, 21, 18, 196, 131,
+			13, 68, 7, 196, 24, 84, 133, 4, 66, 0, 13, 138, 195, 174, 14, 22, 196, 131, 18, 20, 5, 1, 67, 0, 8, 66, 20, 144, 57, 118,
+			0, 76, 16, 66, 12, 208, 99, 101, 110, 116, 105, 109, 101, 116, 114, 105, 0, 29, 0, 0, 13, 68, 16, 81, 21, 76, 72, 36, 72, 6,
+			40, 89, 0, 0, 8, 197, 72, 84, 5, 16, 80, 65, 8, 197, 64, 19, 9, 16, 80, 65, 8, 197, 52, 243, 137, 12, 16, 66, 8, 197,
+			12, 243, 132, 20, 144, 66, 9, 134, 3, 196, 131, 12, 4, 21, 66, 10, 135, 1, 3, 15, 16, 196, 131, 18, 66, 8, 197, 88, 244, 130,
+			20, 16, 66, 8, 197, 80, 243, 5, 72, 16, 67, 8, 197, 72, 83, 5, 88, 16, 67, 8, 197, 72, 81, 149, 104, 16, 67, 8, 197, 60,
+			35, 9, 28, 16, 67, 8, 197, 16, 84, 208, 72, 80, 28, 0, 14, 139, 1, 12, 2, 196, 131, 19, 20, 18, 21, 9, 5, 67, 0, 10,
+			135, 20, 195, 162, 18, 3, 15, 12, 66, 0, 0, 8, 197, 77, 5, 78, 20, 16, 66, 8, 197, 12, 243, 147, 84, 208, 66, 8, 197, 12,
+			20, 5, 80, 80, 65, 13, 138, 18, 5, 1, 3, 197, 163, 9, 15, 14, 1, 67, 8, 197, 16, 145, 197, 72, 16, 67, 8, 197, 52, 21,
+			1, 48, 80, 78, 0, 10, 135, 19, 16, 5, 18, 196, 131, 13, 66, 10, 135, 15, 16, 5, 18, 196, 131, 13, 67, 6, 195, 24, 84, 137,
+			66, 0, 11, 136, 19, 20, 18, 15, 16, 197, 159, 9, 66, 0, 0, 17, 70, 88, 241, 1, 24, 243, 133, 84, 6, 39, 72, 35, 83, 39,
+			50, 0, 9, 198, 64, 20, 193, 28, 84, 137, 67, 0, 14, 139, 18, 5, 3, 5, 16, 197, 163, 9, 15, 14, 5, 68, 14, 139, 5, 3,
+			8, 9, 12, 9, 2, 18, 196, 131, 13, 68, 0, 11, 136, 18, 196, 131, 19, 3, 15, 12, 9, 67, 0, 0, 0, 0, 0, 0, 0, 9,
+			134, 20, 1, 20, 196, 131, 12, 65, 9, 198, 16, 84, 201, 29, 84, 128, 66, 10, 67, 4, 128, 65, 35, 107, 6, 35, 0, 9, 198, 81,
+			34, 85, 52, 96, 64, 67, 9, 198, 21, 128, 77, 36, 224, 64, 68, 9, 198, 5, 48, 213, 49, 64, 64, 67, 10, 135, 18, 5, 7, 196,
+			131, 19, 9, 67, 12, 67, 16, 16, 193, 72, 35, 49, 13, 0, 72, 8, 0, 6, 195, 60, 51, 204, 66, 10, 67, 4, 128, 64, 35, 107,
+			6, 35, 0, 11, 136, 3, 196, 131, 16, 196, 131, 20, 1, 67, 10, 199, 72, 244, 212, 60, 115, 204, 36, 68, 0, 10, 135, 18, 9, 4,
+			9, 3, 196, 131, 66, 7, 196, 52, 19, 148, 4, 66, 0, 11, 136, 13, 195, 162, 14, 5, 3, 196, 131, 65, 11, 136, 9, 14, 20, 18,
+			9, 7, 196, 131, 65, 11, 136, 5, 24, 16, 12, 9, 3, 196, 131, 66, 9, 134, 14, 9, 197, 159, 20, 5, 73, 0, 10, 135, 9, 14,
+			20, 18, 196, 131, 13, 66, 0, 13, 138, 195, 174, 14, 22, 196, 131, 197, 163, 196, 131, 67, 10, 3, 226, 130, 172, 6, 115, 16, 39, 0,
+			0, 14, 139, 16, 196, 131, 18, 20, 9, 3, 9, 3, 196, 131, 67, 12, 137, 3, 15, 14, 6, 9, 197, 159, 20, 5, 66, 0, 14, 69,
+			8, 19, 142, 21, 32, 71, 6, 36, 50, 13, 34, 0, 9, 134, 16, 12, 196, 131, 20, 9, 66, 0, 6, 195, 72, 80, 201, 65, 0, 13,
+			138, 195, 174, 13, 2, 18, 196, 131, 3, 196, 131, 67, 0, 12, 137, 6, 12, 196, 131, 3, 196, 131, 18, 9, 65, 0, 13, 5, 1, 18,
+			196, 131, 20, 35, 34, 6, 13, 47, 0, 0, 9, 198, 80, 16, 129, 12, 129, 64, 67, 9, 198, 65, 35, 195, 20, 69, 64, 67, 0, 0,
+			7, 196, 81, 33, 90, 36, 66, 0, 8, 197, 60, 19, 69, 56, 144, 65, 8, 197, 52, 84, 135, 20, 208, 65, 8, 197, 28, 83, 69, 56,
+			144, 65, 8, 197, 16, 19, 66, 48, 16, 66, 8, 197, 12, 244, 212, 84, 208, 66, 8, 197, 16, 148, 197, 12, 16, 67, 0, 6, 195, 72,
+			85, 137, 66, 0, 0, 12, 137, 6, 12, 196, 131, 3, 196, 131, 18, 1, 65, 7, 196, 13, 83, 86, 4, 66, 7, 196, 88, 244, 130, 36,
+			66, 7, 196, 64, 244, 142, 36, 66, 0, 9, 134, 19, 20, 196, 131, 20, 21, 66, 8, 197, 37, 53, 15, 88, 144, 67, 11, 3, 95, 50,
+			6, 72, 6, 39, 40, 13, 0, 0, 10, 135, 16, 1, 19, 196, 131, 18, 5, 65, 9, 198, 36, 208, 71, 36, 226, 64, 66, 0, 11, 136,
+			21, 13, 6, 12, 196, 131, 20, 21, 67, 10, 199, 77, 64, 78, 16, 20, 132, 20, 65, 25, 11, 195, 174, 14, 196, 131, 21, 14, 20, 18,
+			21, 12, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 55, 0, 11, 136, 2, 196, 131, 20, 196, 131, 20, 21, 67, 0, 7, 196, 52, 84,
+			137, 80, 65, 12, 137, 3, 18, 196, 131, 16, 196, 131, 20, 21, 67, 12, 137, 1, 12, 9, 14, 20, 196, 131, 20, 21, 68, 11, 200, 36,
+			229, 5, 73, 162, 67, 20, 16, 68, 11, 200, 36, 229, 5, 73, 49, 67, 80, 16, 68, 7, 196, 5, 5, 67, 4, 67, 0, 0, 9, 198,
+			44, 83, 5, 52, 83, 128, 65, 14, 139, 195, 174, 14, 22, 196, 131, 20, 196, 131, 20, 21, 68, 31, 14, 4, 9, 14, 195, 174, 14, 196,
+			131, 21, 14, 20, 18, 21, 12, 72, 37, 50, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 55, 0, 0, 15, 140, 195, 174, 14, 3, 18,
+			21, 14, 20, 196, 131, 20, 21, 68, 11, 136, 16, 196, 131, 3, 196, 131, 12, 9, 67, 0, 7, 196, 84, 197, 9, 52, 65, 7, 196, 17,
+			82, 85, 52, 66, 12, 137, 19, 6, 195, 162, 18, 20, 5, 3, 1, 67, 0, 9, 198, 28, 80, 77, 4, 225, 21, 67, 0, 9, 66, 20,
+			192, 57, 36, 55, 0, 76, 0, 11, 136, 3, 195, 162, 14, 20, 5, 3, 5, 65, 15, 3, 95, 50, 48, 72, 39, 40, 13, 88, 6, 36,
+			76, 124, 0, 0, 11, 200, 52, 17, 201, 77, 68, 129, 81, 80, 68, 0, 9, 198, 17, 83, 73, 56, 144, 193, 66, 0, 9, 198, 25, 33,
+			68, 60, 224, 64, 67, 9, 133, 4, 1, 3, 196, 131, 72, 8, 0, 11, 136, 197, 159, 21, 2, 18, 5, 4, 5, 65, 9, 134, 16, 12,
+			5, 3, 196, 131, 66, 10, 134, 1, 4, 9, 3, 196, 131, 66, 28, 0, 10, 135, 16, 9, 19, 9, 3, 196, 131, 66, 10, 135, 1, 16,
+			12, 5, 3, 196, 131, 67, 7, 196, 12, 243, 148, 4, 66, 10, 135, 5, 24, 9, 19, 20, 196, 131, 72, 0, 11, 136, 6, 15, 18, 6,
+			15, 20, 196, 131, 65, 11, 136, 1, 3, 5, 1, 19, 20, 196, 131, 76, 0, 9, 198, 65, 35, 212, 60, 51, 204, 67, 9, 198, 80, 19,
+			80, 60, 224, 64, 67, 15, 4, 95, 13, 3, 14, 65, 35, 49, 14, 16, 6, 39, 50, 0, 0, 9, 134, 19, 20, 15, 3, 196, 131, 66,
+			15, 3, 95, 51, 48, 47, 14, 16, 118, 88, 6, 36, 76, 124, 0, 0, 12, 137, 19, 20, 18, 9, 7, 196, 131, 20, 5, 65, 7, 196,
+			52, 21, 5, 36, 66, 22, 11, 7, 196, 131, 7, 196, 131, 21, 197, 163, 196, 131, 81, 13, 81, 13, 6, 40, 123, 13, 0, 0, 11, 136,
+			3, 5, 18, 3, 5, 20, 196, 131, 67, 0, 9, 198, 5, 99, 195, 5, 69, 64, 68, 0, 11, 136, 16, 18, 5, 7, 196, 131, 20, 9,
+			67, 0, 8, 133, 13, 196, 131, 19, 21, 66, 0, 9, 198, 12, 147, 131, 36, 193, 65, 65, 0, 18, 70, 61, 34, 67, 36, 225, 64, 39,
+			16, 124, 76, 4, 37, 50, 36, 0, 79, 0, 0, 12, 137, 13, 21, 12, 197, 163, 21, 13, 5, 1, 67, 8, 133, 195, 174, 197, 163, 9,
+			72, 0, 8, 197, 88, 147, 132, 20, 208, 65, 8, 197, 84, 212, 12, 20, 208, 65, 0, 0, 10, 199, 65, 35, 198, 21, 51, 210, 36, 66,
+			10, 199, 12, 83, 5, 48, 19, 20, 20, 79, 0, 0, 14, 69, 37, 2, 15, 56, 80, 35, 37, 83, 6, 130, 50, 0, 0, 10, 135, 2,
+			15, 18, 196, 131, 20, 21, 67, 0, 11, 136, 3, 196, 131, 26, 196, 131, 20, 21, 67, 11, 136, 195, 174, 14, 20, 18, 5, 2, 1, 67,
+			0, 8, 133, 12, 196, 131, 19, 1, 66, 0, 13, 138, 195, 174, 14, 10, 21, 18, 196, 131, 20, 21, 68, 0, 0, 11, 136, 3, 196, 131,
+			19, 196, 131, 16, 9, 67, 0, 7, 196, 56, 85, 5, 16, 65, 9, 198, 12, 243, 147, 36, 65, 82, 66, 7, 196, 48, 19, 147, 4, 66,
+			7, 196, 16, 19, 147, 4, 66, 0, 17, 142, 195, 174, 14, 6, 196, 131, 197, 159, 21, 18, 196, 131, 20, 21, 69, 9, 134, 195, 174, 14,
+			5, 3, 1, 67, 0, 0, 9, 134, 13, 9, 197, 159, 20, 15, 66, 18, 70, 36, 229, 18, 60, 69, 83, 37, 50, 47, 34, 39, 72, 6,
+			40, 89, 0, 15, 3, 95, 51, 88, 47, 14, 16, 6, 118, 88, 36, 76, 124, 0, 13, 3, 95, 54, 48, 91, 117, 88, 6, 36, 76, 124,
+			0, 0, 7, 196, 76, 17, 9, 12, 65, 20, 9, 15, 1, 18, 5, 197, 159, 9, 3, 5, 39, 35, 16, 36, 91, 76, 36, 0, 68, 7,
+			196, 13, 33, 90, 84, 66, 11, 3, 95, 48, 67, 89, 6, 40, 47, 36, 0, 0, 0, 6, 195, 41, 80, 193, 66, 9, 198, 25, 84, 142,
+			37, 160, 64, 67, 0, 0, 0, 12, 4, 95, 48, 90, 51, 65, 6, 132, 65, 37, 0, 0, 9, 198, 72, 80, 76, 37, 160, 64, 68, 9,
+			198, 16, 148, 195, 85, 64, 64, 67, 9, 198, 12, 84, 131, 21, 64, 64, 67, 14, 4, 95, 48, 90, 50, 89, 6, 40, 47, 37, 65, 37,
+			0, 0, 11, 136, 18, 5, 197, 163, 9, 14, 5, 13, 66, 16, 3, 95, 55, 48, 91, 35, 48, 47, 36, 88, 6, 36, 76, 124, 0, 0,
+			10, 135, 22, 9, 26, 9, 20, 196, 131, 65, 10, 135, 3, 196, 131, 21, 20, 196, 131, 67, 13, 3, 95, 49, 67, 4, 39, 89, 6, 40,
+			47, 13, 0, 0, 9, 198, 16, 84, 15, 104, 149, 5, 66, 0, 9, 198, 36, 224, 213, 49, 69, 64, 67, 6, 195, 12, 81, 1, 66, 0,
+			11, 136, 26, 21, 7, 18, 196, 131, 22, 9, 67, 0, 7, 196, 32, 242, 15, 80, 65, 0, 8, 197, 76, 147, 131, 21, 32, 65, 9, 198,
+			72, 84, 208, 20, 53, 1, 67, 0, 9, 198, 9, 80, 149, 37, 69, 64, 68, 9, 198, 4, 101, 77, 5, 69, 64, 68, 6, 194, 48, 16,
+			72, 28, 9, 198, 88, 240, 83, 81, 33, 64, 76, 9, 198, 56, 240, 83, 81, 33, 64, 77, 9, 198, 4, 229, 77, 37, 65, 64, 75, 20,
+			3, 95, 49, 57, 50, 6, 131, 13, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 6, 195, 72, 84, 212, 65, 11, 136, 1, 13,
+			196, 131, 18, 21, 9, 5, 67, 19, 3, 95, 49, 56, 6, 39, 48, 123, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 13, 68, 20,
+			229, 5, 72, 36, 50, 47, 13, 34, 0, 65, 16, 3, 95, 50, 67, 72, 6, 39, 40, 13, 89, 6, 40, 47, 36, 0, 0, 13, 138, 16,
+			196, 131, 19, 196, 131, 18, 21, 9, 5, 67, 8, 197, 29, 83, 5, 72, 80, 65, 13, 138, 6, 18, 9, 7, 196, 131, 18, 21, 9, 5,
+			67, 13, 138, 3, 196, 131, 13, 196, 131, 18, 21, 9, 5, 67, 8, 197, 12, 240, 143, 72, 16, 67, 8, 197, 37, 161, 207, 56, 144, 67,
+			0, 0, 11, 136, 19, 6, 195, 162, 18, 197, 159, 9, 66, 0, 7, 196, 36, 225, 9, 12, 66, 7, 196, 16, 19, 148, 84, 66, 7, 196,
+			88, 144, 146, 4, 66, 0, 8, 197, 64, 20, 143, 48, 80, 66, 8, 197, 52, 19, 143, 48, 80, 66, 0, 10, 135, 21, 19, 3, 196, 131,
+			20, 21, 67, 6, 195, 12, 83, 5, 77, 19, 3, 95, 49, 49, 6, 40, 50, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 11,
+			136, 195, 174, 14, 19, 5, 13, 14, 1, 67, 11, 3, 95, 49, 48, 88, 6, 36, 76, 36, 0, 0, 12, 137, 22, 196, 131, 18, 19, 196,
+			131, 20, 21, 67, 12, 67, 81, 34, 79, 47, 14, 16, 6, 37, 39, 0, 12, 137, 20, 18, 196, 131, 19, 196, 131, 20, 21, 67, 12, 137,
+			16, 9, 197, 159, 3, 196, 131, 20, 21, 67, 12, 137, 3, 196, 131, 12, 3, 196, 131, 20, 21, 67, 21, 3, 95, 49, 51, 47, 14, 16,
+			6, 118, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 9, 198, 48, 149, 5, 72, 21, 21, 68, 13, 138, 195, 174, 13, 2, 21,
+			3, 196, 131, 20, 21, 68, 9, 134, 22, 18, 196, 131, 10, 9, 66, 9, 198, 76, 51, 9, 24, 244, 201, 67, 19, 3, 95, 49, 50, 72,
+			6, 120, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0, 0, 14, 139, 195, 174, 14, 20, 15, 18, 19, 196, 131, 20, 21, 68, 14, 139,
+			1, 13, 5, 19, 20, 5, 3, 196, 131, 20, 21, 69, 20, 3, 95, 49, 53, 76, 6, 37, 50, 89, 48, 14, 16, 36, 88, 4, 36, 76,
+			36, 0, 0, 15, 140, 195, 174, 13, 16, 21, 197, 159, 3, 196, 131, 20, 21, 68, 19, 3, 95, 49, 52, 48, 6, 117, 89, 48, 14, 16,
+			36, 88, 4, 36, 76, 36, 0, 0, 22, 3, 95, 49, 55, 91, 6, 35, 48, 47, 36, 89, 48, 14, 16, 36, 88, 4, 36, 76, 36, 0,
+			0, 9, 198, 16, 81, 197, 72, 21, 21, 68, 7, 195, 65, 34, 78, 72, 28, 19, 3, 95, 49, 54, 91, 6, 117, 89, 48, 14, 16, 36,
+			88, 4, 36, 76, 36, 0, 0, 0, 19, 70, 77, 84, 18, 5, 5, 83, 89, 40, 48, 14, 16, 35, 48, 6, 40, 89, 0, 16, 3, 95,
+			55, 88, 91, 6, 35, 48, 47, 36, 88, 36, 76, 124, 0, 0, 7, 196, 25, 34, 90, 84, 66, 0, 0, 9, 198, 72, 84, 208, 37, 32,
+			64, 67, 9, 198, 65, 33, 80, 5, 32, 64, 67, 9, 198, 65, 33, 70, 21, 32, 64, 67, 0, 11, 136, 21, 3, 9, 4, 5, 197, 163,
+			9, 66, 0, 10, 135, 1, 18, 196, 131, 20, 196, 131, 67, 0, 18, 70, 28, 147, 78, 5, 162, 85, 75, 37, 65, 50, 6, 35, 88, 57,
+			40, 0, 0, 12, 137, 13, 15, 4, 9, 6, 9, 3, 196, 131, 66, 14, 139, 195, 174, 14, 3, 8, 9, 4, 5, 197, 163, 9, 66, 9,
+			198, 85, 66, 76, 37, 160, 64, 68, 6, 195, 84, 149, 1, 66, 9, 198, 80, 83, 80, 21, 32, 64, 67, 0, 0, 7, 196, 8, 149, 143,
+			48, 65, 0, 9, 198, 17, 83, 78, 20, 21, 1, 79, 0, 6, 195, 88, 245, 1, 66, 0, 10, 199, 36, 229, 5, 73, 162, 67, 20, 67,
+			10, 199, 12, 144, 193, 81, 34, 67, 20, 67, 10, 199, 8, 16, 212, 21, 34, 69, 36, 66, 10, 199, 4, 69, 133, 57, 66, 67, 20, 67,
+			0, 7, 196, 48, 21, 5, 96, 65, 12, 137, 19, 21, 19, 197, 163, 9, 14, 5, 1, 67, 13, 68, 16, 85, 137, 4, 72, 36, 84, 37,
+			6, 35, 0, 0, 8, 197, 89, 83, 20, 85, 32, 65, 9, 134, 197, 163, 9, 14, 5, 1, 66, 9, 198, 64, 84, 141, 37, 65, 65, 67,
+			9, 134, 16, 196, 131, 26, 5, 1, 66, 0, 11, 67, 17, 37, 77, 72, 34, 6, 40, 65, 0, 9, 198, 13, 32, 84, 21, 33, 64, 65,
+			0, 17, 3, 95, 52, 48, 48, 35, 47, 14, 16, 40, 88, 6, 36, 76, 124, 0, 0, 9, 198, 16, 84, 15, 104, 149, 0, 66, 12, 137,
+			3, 15, 14, 197, 163, 9, 14, 5, 1, 67, 0, 9, 198, 65, 35, 205, 37, 65, 77, 66, 9, 198, 64, 84, 141, 37, 65, 77, 66, 8,
+			197, 56, 147, 73, 12, 16, 66, 9, 197, 80, 245, 21, 76, 144, 65, 28, 0, 9, 198, 12, 20, 129, 12, 19, 0, 66, 0, 0, 7, 196,
+			12, 83, 148, 84, 66, 11, 200, 77, 84, 144, 72, 147, 132, 20, 16, 67, 11, 200, 77, 1, 67, 36, 19, 9, 104, 16, 68, 0, 15, 69,
+			44, 245, 133, 76, 144, 49, 6, 39, 84, 36, 91, 37, 0, 8, 197, 28, 150, 143, 72, 144, 65, 8, 197, 77, 81, 197, 72, 16, 67, 8,
+			197, 52, 148, 143, 76, 144, 67, 0, 9, 198, 89, 83, 20, 85, 34, 64, 65, 10, 135, 3, 195, 162, 14, 4, 22, 1, 66, 0, 10, 199,
+			20, 50, 9, 48, 144, 146, 4, 68, 15, 3, 95, 50, 88, 72, 6, 39, 40, 13, 88, 36, 76, 124, 0, 14, 3, 95, 53, 48, 76, 37,
+			50, 88, 6, 36, 76, 124, 0, 0, 12, 137, 19, 21, 19, 197, 163, 9, 14, 5, 13, 66, 11, 200, 24, 84, 133, 77, 68, 149, 36, 80,
+			67, 7, 196, 16, 21, 137, 16, 65, 7, 196, 8, 21, 5, 52, 65, 11, 67, 5, 5, 83, 35, 48, 6, 40, 89, 0, 17, 68, 16, 147,
+			148, 72, 72, 37, 50, 47, 14, 34, 39, 0, 81, 111, 32, 0, 8, 197, 12, 244, 205, 61, 48, 65, 0, 0, 10, 135, 18, 196, 131, 3,
+			14, 5, 20, 65, 0, 0, 9, 198, 12, 243, 148, 72, 243, 1, 67, 0, 13, 138, 19, 3, 18, 195, 162, 197, 159, 14, 5, 20, 65, 11,
+			67, 52, 147, 73, 65, 6, 37, 65, 37, 0, 10, 135, 195, 174, 14, 22, 5, 12, 9, 67, 0, 10, 67, 52, 144, 64, 65, 6, 37, 35,
+			0, 0, 0, 9, 198, 65, 33, 70, 4, 49, 77, 66, 13, 138, 16, 196, 131, 9, 1, 14, 10, 5, 14, 9, 66, 0, 13, 5, 4, 15,
+			21, 196, 131, 72, 6, 39, 40, 13, 0, 9, 198, 72, 84, 12, 36, 48, 64, 67, 9, 198, 21, 132, 12, 36, 48, 64, 67, 9, 198, 104,
+			80, 197, 48, 80, 64, 65, 9, 198, 61, 5, 21, 48, 80, 64, 65, 0, 11, 136, 18, 196, 131, 3, 14, 5, 20, 5, 65, 6, 195, 12,
+			80, 64, 76, 0, 15, 3, 95, 63, 63, 49, 35, 16, 35, 49, 47, 6, 36, 34, 0, 0, 0, 14, 139, 19, 3, 18, 195, 162, 197, 159,
+			14, 5, 20, 5, 65, 18, 70, 5, 4, 133, 12, 144, 64, 35, 48, 14, 16, 36, 76, 57, 6, 35, 0, 0, 10, 67, 52, 145, 64, 65,
+			6, 37, 36, 0, 17, 3, 95, 52, 88, 48, 6, 35, 47, 14, 16, 40, 88, 36, 76, 124, 0, 0, 8, 133, 16, 196, 131, 26, 9, 66,
+			0, 8, 197, 77, 2, 82, 37, 64, 65, 0, 9, 198, 21, 132, 12, 36, 49, 64, 66, 10, 67, 12, 80, 73, 76, 6, 135, 57, 0, 6,
+			195, 77, 81, 1, 66, 10, 135, 19, 20, 195, 162, 18, 14, 9, 67, 7, 195, 12, 81, 65, 72, 28, 0, 0, 0, 9, 198, 89, 83, 20,
+			85, 34, 73, 65, 9, 198, 65, 33, 90, 36, 49, 65, 67, 0, 10, 135, 16, 196, 131, 18, 5, 18, 9, 66, 17, 7, 8, 195, 162, 18,
+			20, 9, 5, 107, 112, 34, 47, 6, 37, 36, 0, 11, 66, 48, 80, 55, 135, 0, 72, 81, 97, 32, 13, 66, 48, 80, 55, 135, 34, 0,
+			72, 81, 97, 114, 32, 16, 66, 48, 80, 55, 135, 123, 124, 0, 72, 81, 97, 197, 163, 105, 32, 13, 66, 48, 80, 55, 135, 57, 0, 72,
+			81, 97, 105, 32, 13, 66, 48, 80, 55, 135, 65, 0, 72, 81, 97, 109, 32, 11, 66, 48, 80, 55, 135, 0, 72, 81, 97, 32, 5, 194,
+			48, 80, 72, 15, 66, 44, 112, 107, 105, 108, 111, 103, 114, 97, 109, 101, 0, 29, 0, 14, 3, 95, 53, 88, 76, 6, 37, 50, 88, 36,
+			76, 124, 0, 14, 3, 95, 56, 48, 39, 48, 47, 88, 6, 36, 76, 124, 0, 0, 9, 198, 81, 35, 211, 56, 85, 0, 65, 7, 196, 72,
+			145, 9, 12, 66, 7, 196, 77, 1, 82, 4, 66, 12, 137, 195, 174, 14, 22, 9, 14, 7, 5, 1, 67, 0, 9, 134, 197, 163, 9, 14,
+			5, 13, 65, 8, 197, 52, 83, 129, 40, 80, 67, 8, 197, 48, 21, 9, 12, 80, 66, 8, 197, 56, 147, 69, 56, 144, 77, 0, 10, 135,
+			22, 196, 131, 4, 21, 22, 5, 65, 10, 135, 16, 196, 131, 18, 5, 18, 5, 66, 11, 67, 52, 19, 73, 65, 6, 35, 65, 37, 0, 6,
+			195, 88, 242, 65, 66, 0, 7, 195, 88, 242, 64, 76, 32, 6, 195, 52, 18, 64, 72, 6, 195, 88, 242, 64, 76, 6, 195, 56, 242, 64,
+			76, 6, 195, 12, 82, 64, 76, 0, 12, 137, 195, 174, 14, 3, 9, 14, 7, 5, 13, 66, 8, 133, 4, 196, 131, 4, 21, 66, 12, 137,
+			1, 4, 195, 162, 14, 3, 9, 20, 21, 68, 11, 200, 12, 243, 131, 72, 85, 9, 104, 16, 68, 0, 8, 197, 56, 244, 212, 36, 208, 65,
+			8, 197, 13, 32, 84, 36, 208, 65, 8, 197, 8, 149, 143, 48, 144, 65, 13, 138, 195, 174, 14, 22, 15, 12, 2, 21, 18, 1, 68, 8,
+			197, 5, 69, 78, 12, 144, 8, 0, 10, 135, 197, 159, 5, 4, 5, 18, 5, 66, 9, 198, 17, 84, 133, 72, 146, 64, 66, 17, 70, 16,
+			148, 208, 48, 22, 64, 72, 37, 89, 48, 55, 6, 36, 57, 0, 0, 10, 199, 12, 243, 131, 20, 229, 18, 4, 67, 11, 136, 1, 12, 196,
+			131, 20, 21, 18, 1, 68, 13, 3, 95, 54, 88, 91, 6, 117, 88, 36, 76, 124, 0, 14, 3, 95, 57, 48, 50, 131, 13, 88, 6, 36,
+			76, 124, 0, 0, 0, 13, 138, 195, 174, 14, 3, 196, 131, 16, 5, 18, 5, 67, 9, 198, 12, 20, 137, 12, 21, 21, 68, 0, 9, 198,
+			76, 51, 193, 80, 83, 64, 65, 0, 7, 195, 88, 243, 64, 76, 32, 0, 0, 15, 69, 65, 35, 208, 85, 48, 48, 34, 39, 48, 6, 40,
+			89, 0, 8, 197, 36, 229, 133, 73, 48, 65, 15, 69, 36, 224, 204, 85, 48, 37, 50, 49, 55, 6, 40, 89, 0, 15, 69, 12, 243, 80,
+			85, 48, 49, 39, 65, 48, 6, 40, 89, 0, 9, 198, 8, 193, 83, 80, 83, 65, 67, 0, 0, 12, 136, 1, 12, 196, 131, 20, 21, 18,
+			9, 66, 28, 0, 6, 131, 13, 196, 131, 72, 0, 8, 197, 88, 148, 195, 60, 192, 65, 0, 9, 198, 16, 80, 201, 16, 80, 64, 67, 16,
+			70, 81, 33, 73, 48, 80, 64, 47, 14, 16, 6, 118, 55, 135, 0, 0, 0, 13, 68, 84, 208, 140, 36, 6, 40, 65, 71, 55, 37, 0,
+			7, 196, 12, 83, 154, 84, 66, 0, 0, 11, 136, 3, 18, 195, 162, 14, 3, 5, 14, 65, 0, 18, 7, 15, 18, 9, 3, 195, 162, 20,
+			39, 16, 124, 49, 4, 112, 47, 0, 76, 14, 3, 95, 56, 88, 6, 39, 48, 47, 88, 36, 76, 124, 0, 0, 0, 12, 201, 64, 20, 193,
+			28, 84, 137, 48, 244, 128, 67, 11, 136, 13, 21, 18, 13, 21, 18, 196, 131, 65, 0, 9, 198, 76, 19, 83, 84, 225, 192, 65, 6, 195,
+			28, 83, 85, 66, 0, 11, 136, 195, 174, 13, 16, 12, 5, 20, 9, 67, 0, 0, 8, 197, 77, 81, 140, 21, 64, 65, 13, 138, 18, 196,
+			131, 19, 16, 21, 20, 5, 18, 9, 67, 9, 198, 17, 32, 71, 61, 53, 5, 65, 8, 197, 13, 33, 73, 21, 32, 65, 9, 134, 9, 5,
+			197, 159, 5, 1, 66, 0, 10, 135, 197, 159, 15, 6, 5, 18, 9, 66, 10, 66, 48, 112, 36, 55, 75, 6, 37, 0, 9, 198, 36, 224,
+			77, 36, 49, 64, 67, 18, 70, 16, 21, 15, 72, 145, 64, 72, 35, 47, 39, 14, 16, 6, 37, 36, 0, 10, 135, 12, 196, 131, 18, 7,
+			5, 1, 66, 0, 10, 199, 64, 20, 193, 28, 84, 137, 36, 67, 11, 136, 4, 5, 19, 6, 196, 131, 3, 21, 67, 14, 3, 95, 57, 88,
+			50, 6, 131, 13, 88, 36, 76, 124, 0, 0, 13, 138, 197, 159, 15, 6, 5, 18, 9, 12, 15, 18, 66, 13, 138, 3, 196, 131, 4, 5,
+			18, 9, 12, 15, 18, 66, 0, 14, 139, 19, 3, 196, 131, 4, 5, 18, 9, 12, 15, 18, 66, 8, 197, 5, 53, 80, 72, 16, 28, 0,
+			10, 135, 8, 195, 162, 18, 20, 9, 9, 66, 10, 135, 3, 195, 162, 20, 5, 22, 1, 67, 10, 135, 1, 20, 195, 162, 18, 14, 1, 67,
+			0, 11, 136, 197, 159, 20, 5, 18, 7, 5, 13, 65, 10, 199, 64, 84, 147, 21, 97, 82, 4, 68, 10, 199, 16, 84, 195, 61, 1, 82,
+			36, 68, 0, 0, 8, 197, 88, 81, 5, 72, 80, 66, 8, 197, 77, 5, 78, 20, 208, 65, 13, 138, 195, 174, 14, 20, 15, 1, 18, 3,
+			5, 13, 66, 8, 197, 72, 86, 133, 52, 16, 67, 8, 197, 72, 148, 201, 64, 144, 67, 0, 10, 135, 3, 196, 131, 4, 5, 18, 5, 66,
+			9, 198, 76, 51, 212, 60, 50, 64, 67, 0, 11, 136, 19, 3, 196, 131, 4, 5, 18, 5, 66, 11, 136, 22, 195, 162, 14, 20, 21, 18,
+			1, 67, 0, 8, 133, 2, 196, 131, 7, 1, 66, 0, 9, 134, 13, 9, 197, 159, 3, 1, 66, 0, 0, 15, 140, 3, 8, 5, 12, 196,
+			131, 12, 196, 131, 9, 20, 21, 69, 0, 0, 0, 0, 6, 194, 36, 224, 72, 28, 0, 11, 67, 77, 82, 84, 89, 40, 6, 37, 47, 0,
+			12, 137, 195, 174, 13, 16, 21, 197, 159, 3, 1, 67, 0, 13, 68, 76, 81, 21, 76, 89, 36, 72, 6, 40, 89, 0, 0, 0, 9, 198,
+			64, 130, 76, 37, 4, 192, 65, 9, 198, 36, 229, 18, 36, 112, 64, 65, 0, 9, 198, 21, 128, 83, 64, 84, 129, 68, 9, 198, 4, 48,
+			197, 48, 84, 129, 68, 14, 4, 95, 15, 7, 15, 39, 81, 39, 50, 6, 36, 49, 0, 0, 12, 137, 195, 174, 14, 20, 18, 5, 2, 196,
+			131, 67, 13, 3, 197, 159, 9, 91, 124, 35, 0, 72, 81, 97, 32, 6, 131, 197, 159, 9, 72, 0, 9, 134, 15, 6, 5, 18, 196, 131,
+			66, 0, 18, 70, 21, 35, 201, 48, 244, 128, 36, 34, 34, 6, 39, 37, 55, 39, 34, 0, 9, 198, 12, 129, 76, 56, 84, 128, 65, 0,
+			11, 136, 19, 3, 21, 20, 21, 18, 196, 131, 65, 21, 71, 52, 144, 210, 61, 51, 198, 80, 65, 6, 117, 80, 14, 16, 39, 89, 39, 83,
+			47, 0, 9, 198, 72, 80, 213, 64, 84, 129, 68, 0, 12, 137, 22, 195, 162, 14, 20, 21, 18, 196, 131, 67, 0, 15, 140, 195, 174, 14,
+			3, 196, 131, 16, 5, 18, 9, 12, 5, 67, 8, 197, 24, 197, 73, 21, 32, 65, 0, 12, 137, 3, 196, 131, 4, 5, 18, 9, 12, 5,
+			66, 0, 8, 133, 21, 13, 196, 131, 18, 65, 13, 138, 19, 3, 196, 131, 4, 5, 18, 9, 12, 5, 66, 9, 198, 4, 197, 3, 84, 213,
+			129, 67, 0, 7, 196, 104, 144, 197, 4, 66, 7, 196, 37, 80, 133, 4, 66, 9, 198, 4, 229, 77, 37, 67, 210, 75, 0, 8, 197, 16,
+			240, 212, 61, 32, 65, 0, 14, 66, 56, 80, 50, 135, 89, 0, 72, 81, 97, 197, 159, 32, 13, 66, 56, 80, 50, 135, 34, 0, 72, 81,
+			97, 114, 32, 13, 66, 56, 80, 50, 135, 65, 0, 72, 81, 97, 109, 32, 12, 137, 14, 196, 131, 16, 21, 19, 20, 5, 1, 67, 5, 194,
+			56, 80, 72, 15, 66, 52, 112, 109, 105, 108, 105, 103, 114, 97, 109, 101, 0, 29, 0, 10, 199, 37, 3, 195, 72, 150, 137, 36, 68, 0,
+			11, 136, 20, 18, 5, 1, 3, 196, 131, 20, 65, 7, 196, 12, 20, 20, 84, 66, 7, 196, 76, 83, 78, 4, 66, 14, 139, 4, 9, 19,
+			16, 18, 5, 197, 163, 21, 9, 1, 68, 0, 8, 197, 81, 32, 71, 20, 208, 65, 8, 197, 52, 146, 140, 60, 48, 65, 10, 67, 13, 82,
+			66, 49, 6, 121, 71, 0, 8, 197, 81, 33, 90, 20, 16, 66, 8, 197, 65, 34, 86, 20, 16, 66, 0, 9, 198, 36, 229, 18, 36, 114,
+			64, 65, 0, 0, 26, 11, 19, 21, 16, 18, 5, 13, 1, 197, 163, 9, 5, 89, 40, 48, 14, 16, 36, 65, 35, 123, 6, 37, 36, 0,
+			7, 196, 84, 225, 76, 20, 73, 0, 8, 197, 60, 34, 67, 20, 144, 67, 8, 197, 56, 149, 133, 48, 80, 66, 8, 197, 36, 225, 9, 28,
+			240, 67, 11, 136, 3, 195, 162, 20, 15, 18, 22, 1, 67, 11, 136, 3, 196, 131, 197, 159, 21, 14, 1, 67, 8, 197, 16, 147, 148, 72,
+			80, 28, 7, 131, 195, 174, 14, 72, 28, 0, 12, 66, 57, 80, 50, 40, 37, 0, 72, 81, 105, 32, 9, 198, 4, 101, 82, 37, 50, 64,
+			68, 5, 194, 57, 80, 76, 0, 6, 131, 195, 174, 12, 72, 0, 6, 195, 52, 146, 137, 66, 15, 4, 95, 48, 77, 52, 71, 37, 55, 6,
+			57, 138, 50, 36, 0, 0, 11, 136, 195, 174, 14, 4, 15, 9, 20, 21, 68, 16, 140, 4, 5, 19, 16, 196, 131, 18, 197, 163, 9, 20,
+			21, 68, 18, 16, 4, 95, 48, 77, 53, 71, 37, 55, 6, 57, 35, 34, 72, 36, 0, 0, 6, 195, 21, 3, 195, 65, 15, 4, 95, 48,
+			77, 50, 65, 37, 55, 6, 57, 138, 50, 36, 0, 0, 6, 195, 13, 83, 64, 8, 16, 4, 95, 48, 77, 51, 65, 37, 55, 6, 57, 35,
+			34, 72, 36, 0, 0, 6, 131, 195, 174, 9, 72, 0, 8, 197, 4, 52, 137, 81, 80, 67, 10, 4, 95, 48, 77, 49, 65, 6, 132, 0,
+			0, 12, 137, 16, 18, 15, 14, 21, 14, 197, 163, 1, 67, 14, 4, 95, 2, 18, 22, 49, 13, 76, 6, 40, 55, 13, 0, 0, 6, 195,
+			36, 20, 128, 8, 0, 6, 195, 5, 3, 201, 66, 6, 195, 52, 148, 129, 66, 0, 0, 0, 9, 198, 16, 80, 197, 48, 84, 129, 68, 7,
+			195, 88, 244, 128, 76, 32, 0, 7, 196, 37, 4, 207, 76, 65, 0, 0, 9, 198, 77, 64, 78, 16, 20, 132, 65, 17, 70, 20, 97, 67,
+			81, 80, 64, 36, 83, 36, 49, 47, 58, 6, 35, 0, 0, 11, 136, 12, 9, 14, 7, 21, 18, 196, 131, 65, 0, 6, 195, 60, 101, 1,
+			66, 0, 13, 5, 15, 13, 196, 131, 20, 39, 65, 6, 13, 47, 0, 0, 0, 13, 138, 3, 21, 14, 15, 1, 197, 159, 20, 5, 13, 66,
+			0, 6, 195, 12, 85, 129, 66, 10, 135, 19, 20, 196, 131, 20, 5, 1, 66, 10, 135, 195, 174, 14, 4, 15, 9, 1, 67, 7, 196, 84,
+			225, 73, 4, 77, 0, 0, 9, 194, 52, 144, 72, 81, 97, 114, 32, 9, 194, 52, 144, 72, 81, 97, 105, 32, 9, 194, 52, 144, 72, 81,
+			97, 109, 32, 13, 66, 52, 144, 65, 37, 4, 36, 0, 72, 81, 101, 32, 5, 194, 52, 144, 72, 29, 66, 44, 208, 49, 37, 55, 39, 65,
+			6, 36, 47, 14, 16, 37, 11, 48, 36, 15, 6, 39, 34, 13, 0, 82, 47, 32, 104, 32, 15, 66, 44, 208, 107, 105, 108, 111, 109, 101,
+			116, 114, 105, 0, 29, 0, 9, 134, 4, 196, 131, 4, 5, 1, 66, 0, 7, 196, 56, 147, 73, 12, 66, 6, 195, 12, 84, 149, 66, 0,
+			8, 197, 85, 35, 5, 80, 80, 65, 8, 197, 81, 83, 133, 80, 80, 65, 8, 197, 77, 83, 133, 80, 80, 65, 8, 197, 88, 19, 15, 72,
+			16, 67, 15, 69, 77, 64, 71, 56, 16, 89, 47, 35, 81, 50, 6, 35, 0, 8, 197, 64, 244, 142, 20, 16, 66, 0, 9, 198, 72, 81,
+			197, 49, 82, 64, 65, 0, 17, 5, 195, 174, 14, 20, 18, 112, 50, 47, 14, 16, 39, 0, 81, 111, 32, 9, 134, 4, 196, 131, 21, 14,
+			1, 67, 0, 10, 135, 13, 9, 197, 159, 21, 14, 1, 67, 0, 8, 197, 88, 81, 5, 72, 144, 66, 8, 197, 88, 20, 201, 48, 80, 66,
+			8, 197, 65, 35, 208, 84, 144, 66, 24, 73, 65, 34, 69, 80, 83, 149, 49, 82, 64, 48, 14, 16, 57, 6, 36, 47, 36, 50, 40, 55,
+			121, 0, 8, 197, 64, 149, 9, 12, 144, 66, 11, 136, 13, 195, 162, 14, 5, 3, 9, 9, 66, 8, 197, 48, 145, 5, 72, 144, 65, 8,
+			197, 32, 18, 1, 48, 80, 67, 8, 197, 16, 81, 197, 80, 80, 65, 8, 197, 17, 82, 14, 20, 16, 66, 8, 197, 9, 80, 213, 72, 16,
+			67, 8, 197, 76, 100, 137, 40, 144, 66, 0, 6, 195, 52, 20, 143, 66, 8, 133, 20, 195, 162, 18, 1, 66, 21, 9, 6, 9, 5, 3,
+			196, 131, 18, 21, 9, 83, 57, 36, 49, 6, 13, 34, 121, 0, 72, 0, 0, 0, 15, 69, 76, 84, 135, 37, 80, 89, 6, 36, 34, 75,
+			57, 40, 0, 11, 136, 3, 12, 196, 131, 20, 9, 14, 1, 67, 0, 11, 5, 95, 15, 6, 77, 49, 65, 6, 132, 0, 0, 0, 7, 196,
+			20, 97, 77, 20, 67, 0, 8, 197, 29, 32, 84, 37, 48, 65, 8, 197, 13, 33, 65, 81, 80, 67, 0, 0, 0, 13, 68, 88, 242, 76,
+			4, 84, 40, 35, 55, 6, 35, 0, 0, 0, 9, 198, 28, 84, 141, 36, 224, 64, 67, 0, 9, 134, 19, 3, 196, 131, 16, 1, 66, 6,
+			195, 77, 80, 128, 28, 0, 7, 196, 61, 32, 129, 56, 65, 7, 196, 24, 150, 137, 12, 65, 7, 196, 60, 51, 204, 36, 67, 0, 0, 9,
+			198, 64, 243, 15, 56, 144, 192, 67, 9, 198, 8, 148, 197, 72, 144, 192, 66, 9, 198, 16, 84, 197, 52, 224, 64, 67, 0, 13, 138, 6,
+			12, 196, 131, 3, 196, 131, 18, 9, 9, 65, 13, 138, 195, 174, 13, 16, 196, 131, 18, 197, 163, 9, 67, 6, 195, 77, 83, 148, 76, 6,
+			195, 77, 83, 148, 76, 0, 7, 196, 64, 195, 213, 4, 66, 0, 0, 13, 5, 197, 159, 20, 9, 1, 91, 47, 6, 57, 35, 0, 0, 0,
+			11, 67, 4, 144, 201, 35, 6, 37, 76, 124, 0, 10, 135, 26, 7, 195, 162, 18, 9, 1, 67, 0, 0, 13, 5, 197, 159, 20, 9, 5,
+			91, 47, 6, 37, 36, 0, 9, 198, 48, 147, 80, 20, 65, 64, 65, 5, 194, 56, 144, 72, 12, 137, 195, 174, 14, 20, 195, 162, 12, 14,
+			9, 67, 6, 194, 64, 80, 72, 28, 0, 9, 198, 64, 21, 18, 84, 193, 65, 65, 0, 11, 67, 4, 34, 65, 35, 71, 57, 6, 35, 0,
+			0, 12, 201, 64, 20, 148, 20, 225, 82, 20, 193, 64, 67, 8, 197, 28, 83, 69, 80, 80, 65, 9, 198, 16, 84, 203, 80, 244, 0, 65,
+			0, 9, 198, 77, 3, 5, 56, 66, 68, 65, 12, 137, 13, 195, 162, 14, 7, 195, 162, 9, 1, 67, 9, 198, 72, 245, 21, 56, 162, 64,
+			67, 0, 10, 199, 28, 147, 78, 5, 53, 9, 12, 66, 0, 0, 8, 197, 36, 229, 9, 52, 80, 65, 8, 197, 60, 97, 82, 20, 16, 67,
+			8, 197, 4, 37, 82, 20, 16, 66, 8, 197, 77, 68, 137, 88, 144, 66, 0, 9, 198, 76, 20, 131, 36, 226, 64, 65, 9, 198, 52, 20,
+			135, 36, 226, 64, 65, 0, 10, 199, 88, 150, 149, 4, 194, 90, 4, 68, 13, 138, 4, 5, 19, 16, 196, 131, 18, 197, 163, 9, 67, 9,
+			134, 1, 22, 5, 197, 163, 9, 76, 0, 10, 135, 21, 9, 20, 196, 131, 20, 21, 67, 0, 0, 18, 70, 65, 34, 69, 80, 83, 128, 48,
+			14, 16, 57, 6, 36, 47, 36, 50, 0, 12, 137, 18, 196, 131, 19, 20, 21, 18, 14, 1, 67, 19, 4, 95, 3, 9, 18, 76, 37, 34,
+			49, 40, 65, 83, 55, 6, 36, 49, 89, 0, 0, 13, 138, 22, 196, 131, 9, 5, 20, 196, 131, 20, 21, 68, 6, 195, 4, 34, 76, 66,
+			0, 7, 196, 48, 147, 73, 80, 65, 14, 139, 195, 174, 14, 197, 163, 5, 16, 196, 131, 20, 21, 68, 7, 196, 24, 16, 197, 52, 65, 6,
+			195, 85, 35, 1, 66, 6, 195, 77, 83, 129, 66, 10, 135, 1, 14, 21, 14, 197, 163, 1, 67, 0, 15, 69, 61, 98, 68, 37, 80, 39,
+			84, 6, 37, 72, 57, 40, 0, 19, 8, 5, 24, 39, 15, 20, 9, 3, 5, 36, 81, 88, 39, 47, 37, 76, 36, 0, 0, 15, 66, 52,
+			192, 109, 105, 108, 105, 108, 105, 116, 114, 105, 0, 29, 0, 9, 198, 52, 20, 135, 36, 226, 73, 65, 9, 134, 18, 195, 162, 6, 14, 9,
+			66, 0, 0, 9, 134, 12, 196, 131, 19, 196, 131, 66, 11, 136, 14, 196, 131, 16, 21, 19, 20, 9, 67, 0, 9, 198, 80, 84, 141, 36,
+			224, 64, 67, 9, 198, 65, 35, 212, 20, 160, 64, 67, 12, 137, 195, 174, 14, 196, 131, 12, 197, 163, 1, 67, 9, 198, 20, 194, 77, 36,
+			224, 64, 68, 9, 198, 12, 192, 88, 60, 224, 64, 67, 8, 3, 95, 196, 131, 6, 13, 0, 0, 9, 198, 5, 37, 5, 24, 144, 197, 67,
+			9, 134, 1, 18, 196, 131, 20, 1, 67, 0, 12, 137, 4, 15, 13, 14, 9, 197, 163, 196, 131, 66, 15, 3, 197, 163, 9, 123, 57, 39,
+			57, 0, 72, 81, 111, 105, 32, 15, 3, 197, 163, 9, 123, 57, 35, 34, 0, 72, 81, 97, 114, 32, 15, 3, 197, 163, 9, 123, 57, 35,
+			65, 0, 72, 81, 97, 109, 32, 14, 3, 197, 163, 9, 123, 6, 57, 36, 0, 72, 81, 101, 32, 14, 3, 197, 163, 9, 123, 57, 117, 0,
+			72, 81, 97, 105, 32, 14, 3, 197, 163, 9, 123, 57, 114, 0, 72, 81, 97, 117, 32, 15, 3, 197, 163, 9, 123, 57, 35, 34, 0, 72,
+			81, 97, 114, 32, 15, 3, 197, 163, 9, 123, 57, 35, 65, 0, 72, 81, 97, 109, 32, 6, 131, 197, 163, 9, 72, 0, 9, 134, 2, 196,
+			131, 7, 196, 131, 66, 13, 138, 1, 13, 5, 14, 9, 14, 197, 163, 196, 131, 66, 0, 9, 198, 56, 144, 201, 84, 224, 64, 77, 0, 9,
+			198, 52, 241, 9, 24, 144, 193, 68, 12, 4, 95, 19, 20, 11, 89, 55, 6, 36, 91, 0, 0, 7, 196, 76, 80, 207, 48, 65, 0, 11,
+			136, 16, 196, 131, 18, 5, 18, 9, 9, 66, 8, 197, 8, 19, 9, 57, 64, 65, 8, 197, 4, 192, 133, 73, 64, 65, 15, 4, 95, 1,
+			3, 21, 35, 89, 49, 40, 123, 6, 37, 47, 0, 0, 9, 198, 80, 84, 141, 36, 225, 64, 65, 0, 10, 199, 12, 129, 82, 21, 53, 5,
+			4, 67, 9, 134, 13, 195, 162, 14, 10, 9, 66, 0, 7, 196, 5, 33, 5, 4, 66, 0, 8, 197, 104, 115, 205, 61, 64, 65, 13, 3,
+			95, 195, 174, 4, 112, 72, 37, 50, 6, 37, 0, 0, 5, 194, 76, 16, 76, 15, 66, 52, 208, 109, 105, 108, 105, 109, 101, 116, 114, 105,
+			0, 29, 0, 9, 198, 5, 49, 77, 20, 225, 65, 66, 9, 198, 4, 194, 77, 20, 229, 1, 68, 6, 195, 24, 244, 212, 76, 0, 6, 195,
+			76, 80, 213, 66, 9, 198, 72, 245, 15, 12, 243, 0, 67, 7, 196, 84, 227, 210, 4, 77, 0, 8, 197, 17, 84, 133, 72, 80, 66, 12,
+			201, 12, 20, 129, 13, 65, 82, 20, 193, 64, 67, 8, 197, 72, 83, 1, 96, 16, 67, 15, 140, 195, 174, 13, 16, 18, 196, 131, 197, 159,
+			20, 9, 1, 67, 0, 9, 198, 56, 144, 201, 84, 229, 76, 77, 9, 198, 56, 144, 201, 84, 229, 76, 77, 0, 9, 134, 1, 16, 196, 131,
+			18, 1, 67, 0, 10, 135, 19, 21, 16, 196, 131, 18, 1, 67, 0, 8, 197, 88, 244, 19, 20, 16, 66, 8, 197, 84, 50, 68, 20, 208,
+			66, 8, 197, 64, 21, 9, 52, 144, 65, 8, 197, 61, 33, 9, 56, 80, 65, 8, 197, 32, 18, 68, 20, 208, 65, 8, 197, 24, 84, 137,
+			12, 80, 65, 9, 198, 21, 2, 83, 12, 244, 0, 66, 11, 136, 3, 21, 13, 16, 196, 131, 18, 1, 67, 0, 9, 198, 80, 84, 141, 20,
+			226, 64, 65, 0, 9, 134, 21, 18, 196, 131, 20, 21, 67, 0, 16, 70, 84, 225, 200, 37, 83, 0, 6, 40, 50, 81, 57, 40, 55, 0,
+			14, 139, 195, 174, 14, 22, 18, 5, 4, 14, 9, 3, 9, 68, 0, 11, 136, 1, 4, 21, 14, 196, 131, 20, 21, 68, 13, 3, 95, 195,
+			162, 4, 112, 72, 37, 50, 6, 35, 0, 0, 12, 137, 21, 19, 20, 21, 18, 196, 131, 20, 21, 68, 0, 13, 138, 13, 196, 131, 20, 21,
+			18, 196, 131, 20, 21, 68, 9, 134, 1, 16, 196, 131, 19, 1, 67, 0, 14, 139, 4, 196, 131, 18, 195, 162, 13, 196, 131, 20, 21, 68,
+			7, 196, 64, 193, 67, 4, 66, 0, 11, 136, 18, 5, 14, 21, 14, 197, 163, 1, 67, 0, 12, 137, 1, 13, 5, 14, 9, 14, 197, 163,
+			1, 68, 0, 9, 198, 56, 144, 201, 84, 226, 73, 77, 0, 0, 0, 12, 137, 3, 195, 162, 197, 159, 20, 9, 7, 1, 67, 0, 11, 67,
+			21, 32, 64, 57, 36, 16, 35, 0, 78, 0, 0, 11, 136, 4, 5, 16, 196, 131, 197, 159, 9, 67, 0, 17, 70, 56, 84, 213, 65, 84,
+			192, 50, 36, 89, 40, 48, 6, 40, 89, 0, 9, 198, 64, 19, 148, 21, 32, 64, 66, 9, 198, 4, 197, 3, 21, 96, 64, 67, 9, 198,
+			76, 53, 84, 85, 32, 64, 67, 9, 198, 12, 243, 5, 13, 64, 64, 67, 0, 6, 195, 5, 33, 64, 76, 0, 12, 137, 3, 21, 22, 195,
+			162, 14, 20, 196, 131, 67, 12, 137, 3, 15, 14, 20, 18, 15, 12, 196, 131, 67, 12, 67, 21, 32, 77, 57, 36, 16, 35, 65, 0, 78,
+			9, 134, 3, 196, 131, 18, 15, 18, 73, 0, 9, 134, 13, 195, 162, 14, 5, 3, 65, 16, 69, 9, 35, 203, 21, 32, 71, 14, 16, 6,
+			39, 49, 13, 34, 0, 0, 9, 198, 80, 20, 212, 5, 69, 64, 67, 9, 198, 13, 33, 68, 37, 65, 64, 65, 9, 198, 12, 195, 195, 61,
+			65, 64, 65, 16, 70, 8, 19, 142, 21, 33, 64, 71, 6, 36, 50, 13, 16, 36, 0, 21, 4, 95, 1, 3, 50, 72, 6, 40, 71, 55,
+			40, 35, 89, 49, 40, 6, 123, 37, 47, 0, 0, 9, 198, 81, 35, 211, 56, 85, 5, 65, 9, 198, 12, 243, 147, 80, 21, 1, 67, 0,
+			7, 196, 20, 194, 67, 20, 66, 7, 196, 12, 129, 77, 4, 66, 6, 195, 77, 80, 201, 66, 11, 67, 21, 32, 73, 57, 36, 16, 117, 0,
+			78, 0, 8, 197, 76, 83, 154, 61, 32, 65, 8, 197, 64, 144, 212, 61, 32, 65, 8, 197, 24, 16, 212, 61, 32, 65, 14, 69, 8, 16,
+			203, 85, 0, 71, 6, 36, 49, 35, 48, 0, 0, 9, 198, 77, 2, 82, 37, 65, 64, 65, 9, 66, 60, 176, 39, 49, 6, 118, 0, 12,
+			137, 18, 196, 131, 13, 195, 162, 14, 5, 1, 67, 12, 137, 195, 174, 13, 2, 21, 12, 26, 5, 1, 67, 5, 194, 80, 16, 76, 0, 10,
+			199, 72, 80, 213, 56, 244, 195, 84, 67, 9, 198, 77, 84, 208, 20, 53, 1, 67, 13, 138, 19, 20, 196, 131, 16, 195, 162, 14, 5, 1,
+			67, 9, 134, 16, 195, 162, 14, 4, 9, 66, 0, 7, 196, 88, 146, 84, 84, 66, 7, 196, 84, 209, 68, 20, 65, 6, 195, 24, 147, 9,
+			66, 11, 67, 21, 32, 85, 57, 36, 16, 114, 0, 78, 0, 11, 136, 16, 196, 131, 18, 5, 18, 5, 1, 66, 8, 197, 28, 83, 133, 72,
+			16, 67, 8, 197, 13, 33, 68, 20, 16, 67, 0, 0, 19, 71, 80, 245, 4, 20, 21, 78, 4, 47, 39, 47, 72, 135, 6, 40, 50, 35,
+			0, 13, 138, 195, 174, 14, 3, 196, 131, 12, 26, 5, 1, 67, 13, 138, 18, 196, 131, 19, 16, 195, 162, 14, 4, 9, 67, 9, 134, 16,
+			196, 131, 197, 159, 9, 66, 0, 7, 196, 56, 144, 201, 60, 77, 0, 8, 197, 88, 149, 18, 20, 112, 65, 8, 197, 36, 225, 201, 56, 80,
+			67, 8, 197, 72, 244, 212, 20, 16, 66, 8, 197, 72, 145, 9, 12, 16, 67, 8, 197, 16, 81, 9, 12, 16, 67, 16, 69, 81, 33, 66,
+			84, 144, 47, 14, 16, 36, 71, 58, 6, 37, 0, 8, 197, 4, 197, 15, 72, 16, 77, 0, 17, 70, 72, 20, 133, 61, 34, 64, 34, 35,
+			16, 36, 6, 39, 145, 124, 0, 0, 18, 70, 24, 20, 134, 85, 34, 69, 83, 35, 34, 83, 40, 16, 6, 37, 36, 0, 9, 134, 1, 12,
+			5, 197, 159, 9, 66, 0, 7, 196, 52, 22, 9, 52, 65, 0, 0, 12, 201, 64, 20, 148, 20, 225, 82, 84, 197, 73, 67, 0, 13, 138,
+			1, 4, 195, 162, 14, 3, 196, 131, 20, 21, 68, 0, 0, 0, 12, 137, 195, 174, 14, 3, 196, 131, 18, 3, 1, 67, 12, 137, 3, 196,
+			131, 12, 196, 131, 21, 26, 9, 68, 0, 6, 195, 5, 34, 80, 65, 11, 136, 195, 174, 14, 3, 15, 20, 18, 15, 67, 0, 8, 133, 18,
+			21, 12, 196, 131, 66, 7, 196, 28, 150, 143, 72, 65, 0, 8, 197, 36, 208, 71, 36, 224, 66, 8, 2, 196, 131, 6, 13, 0, 14, 0,
+			9, 198, 20, 194, 66, 21, 32, 64, 68, 0, 0, 8, 133, 15, 6, 20, 196, 131, 66, 12, 137, 195, 174, 14, 3, 5, 18, 3, 196, 131,
+			67, 0, 8, 197, 65, 34, 67, 36, 224, 65, 0, 8, 133, 22, 196, 131, 26, 21, 66, 8, 133, 197, 163, 9, 14, 21, 66, 9, 198, 72,
+			240, 133, 73, 64, 64, 66, 9, 198, 16, 148, 208, 21, 32, 64, 67, 9, 198, 16, 84, 9, 77, 64, 64, 67, 9, 198, 16, 83, 5, 13,
+			64, 64, 67, 21, 9, 15, 18, 9, 3, 196, 131, 18, 5, 9, 39, 16, 124, 49, 13, 34, 36, 37, 0, 79, 9, 198, 4, 49, 65, 77,
+			64, 64, 76, 0, 11, 136, 22, 9, 18, 7, 21, 12, 196, 131, 65, 9, 198, 65, 34, 67, 21, 1, 77, 66, 9, 134, 18, 196, 131, 2,
+			4, 1, 66, 0, 12, 137, 16, 18, 5, 26, 5, 14, 20, 196, 131, 67, 7, 196, 4, 210, 67, 20, 66, 0, 12, 201, 20, 98, 67, 36,
+			83, 148, 37, 160, 64, 69, 12, 201, 72, 81, 67, 32, 147, 9, 9, 32, 64, 69, 0, 0, 23, 10, 195, 174, 14, 196, 131, 21, 14, 20,
+			18, 21, 112, 50, 13, 6, 40, 50, 47, 14, 16, 40, 0, 24, 10, 4, 9, 14, 196, 131, 21, 14, 20, 18, 21, 72, 37, 50, 13, 6,
+			40, 50, 47, 14, 16, 40, 0, 9, 134, 19, 196, 131, 18, 5, 1, 66, 9, 134, 197, 159, 15, 16, 20, 9, 66, 0, 6, 195, 5, 35,
+			85, 66, 0, 15, 69, 24, 243, 4, 21, 32, 83, 6, 39, 55, 72, 13, 34, 0, 0, 5, 194, 76, 80, 72, 0, 9, 198, 4, 48, 197,
+			57, 69, 65, 67, 0, 7, 196, 64, 149, 9, 12, 66, 6, 195, 13, 84, 213, 66, 0, 8, 197, 72, 18, 15, 88, 16, 65, 8, 197, 64,
+			84, 132, 20, 16, 66, 8, 197, 17, 84, 133, 72, 144, 66, 11, 136, 19, 20, 195, 162, 18, 14, 5, 1, 66, 8, 197, 72, 84, 5, 72,
+			16, 67, 0, 0, 9, 198, 8, 16, 212, 21, 34, 69, 66, 0, 14, 139, 195, 174, 14, 3, 196, 131, 16, 5, 18, 5, 1, 67, 11, 200,
+			36, 65, 78, 80, 145, 137, 12, 16, 69, 7, 196, 76, 84, 150, 36, 66, 0, 8, 197, 5, 37, 5, 72, 16, 66, 8, 197, 12, 194, 78,
+			80, 144, 66, 0, 9, 198, 4, 36, 207, 49, 98, 64, 68, 0, 12, 137, 16, 196, 131, 9, 1, 14, 10, 5, 14, 66, 0, 7, 196, 64,
+			21, 9, 52, 65, 7, 196, 48, 148, 19, 36, 66, 7, 196, 16, 81, 197, 80, 65, 11, 200, 16, 84, 208, 72, 147, 132, 20, 16, 67, 13,
+			2, 195, 162, 4, 112, 72, 37, 50, 6, 35, 0, 14, 0, 16, 69, 81, 32, 68, 85, 48, 47, 14, 16, 35, 72, 6, 40, 89, 0, 15,
+			6, 18, 196, 131, 16, 21, 19, 34, 13, 48, 6, 40, 89, 0, 16, 69, 17, 32, 68, 85, 48, 47, 14, 16, 35, 72, 6, 40, 89, 0,
+			11, 136, 1, 3, 5, 9, 1, 197, 159, 9, 66, 0, 12, 137, 18, 196, 131, 13, 195, 162, 14, 5, 13, 66, 0, 9, 198, 12, 192, 86,
+			36, 21, 21, 67, 9, 134, 13, 195, 162, 14, 3, 1, 66, 13, 2, 194, 169, 49, 6, 35, 48, 37, 34, 117, 47, 0, 0, 7, 196, 36,
+			229, 9, 52, 65, 19, 70, 12, 243, 80, 85, 65, 82, 49, 39, 65, 48, 6, 57, 40, 47, 13, 34, 0, 7, 196, 5, 33, 5, 52, 65,
+			13, 2, 195, 174, 4, 112, 72, 37, 50, 6, 37, 0, 14, 0, 8, 197, 88, 244, 212, 73, 80, 76, 8, 197, 56, 244, 212, 73, 80, 77,
+			7, 2, 197, 159, 91, 36, 0, 0, 0, 9, 198, 64, 148, 212, 60, 19, 5, 66, 9, 198, 8, 16, 212, 21, 34, 73, 66, 0, 0, 0,
+			9, 198, 40, 20, 15, 56, 144, 64, 66, 11, 2, 194, 176, 81, 14, 16, 35, 72, 36, 0, 0, 0, 11, 200, 64, 20, 148, 20, 225, 82,
+			84, 192, 67, 6, 195, 85, 35, 137, 66, 5, 130, 195, 182, 43, 0, 8, 197, 56, 144, 201, 84, 224, 77, 0, 9, 198, 4, 209, 82, 36,
+			48, 64, 66, 9, 198, 72, 85, 133, 56, 80, 64, 67, 0, 10, 67, 88, 145, 64, 84, 6, 37, 36, 0, 10, 199, 16, 86, 143, 72, 66,
+			78, 20, 66, 10, 199, 12, 243, 132, 84, 53, 15, 72, 66, 9, 198, 65, 33, 79, 13, 84, 1, 67, 11, 67, 24, 145, 64, 83, 6, 37,
+			36, 0, 72, 0, 10, 135, 197, 163, 9, 16, 5, 20, 5, 65, 7, 196, 80, 83, 69, 4, 66, 6, 195, 4, 49, 65, 78, 14, 4, 95,
+			3, 5, 4, 89, 36, 72, 6, 37, 55, 13, 0, 0, 7, 2, 197, 163, 123, 36, 0, 0, 9, 198, 65, 35, 208, 36, 49, 64, 66, 0,
+			16, 4, 95, 12, 9, 7, 55, 37, 81, 35, 47, 6, 40, 34, 13, 0, 0, 14, 139, 195, 174, 14, 3, 196, 131, 16, 5, 18, 9, 9,
+			67, 0, 11, 136, 195, 174, 14, 6, 9, 7, 5, 1, 67, 0, 9, 198, 52, 21, 18, 36, 49, 64, 66, 9, 198, 12, 84, 130, 36, 49,
+			64, 66, 14, 66, 80, 80, 47, 135, 91, 0, 72, 81, 97, 197, 159, 32, 13, 66, 80, 80, 47, 135, 34, 0, 72, 81, 97, 114, 32, 13,
+			66, 80, 80, 47, 135, 57, 0, 72, 81, 97, 105, 32, 13, 66, 80, 80, 47, 135, 65, 0, 72, 81, 97, 109, 32, 6, 194, 88, 16, 76,
+			32, 5, 194, 80, 80, 72, 0, 10, 67, 4, 50, 64, 35, 76, 6, 37, 0, 13, 138, 19, 20, 18, 196, 131, 12, 21, 3, 5, 1, 67,
+			9, 198, 65, 35, 212, 21, 53, 1, 67, 9, 198, 65, 35, 196, 84, 49, 65, 67, 13, 138, 195, 174, 14, 3, 18, 5, 197, 163, 5, 1,
+			67, 9, 198, 12, 243, 132, 84, 49, 65, 67, 8, 67, 88, 146, 64, 84, 132, 0, 0, 7, 196, 4, 49, 76, 20, 78, 6, 195, 4, 49,
+			73, 76, 0, 8, 197, 76, 51, 212, 20, 16, 66, 8, 197, 52, 84, 137, 80, 16, 67, 0, 9, 198, 60, 227, 198, 72, 82, 64, 67, 9,
+			198, 60, 19, 69, 56, 146, 64, 65, 9, 198, 56, 21, 21, 72, 146, 64, 67, 0, 18, 70, 88, 19, 5, 56, 50, 65, 84, 35, 55, 6,
+			36, 50, 89, 57, 35, 0, 10, 199, 4, 116, 137, 13, 83, 20, 84, 68, 10, 199, 13, 85, 18, 20, 145, 82, 4, 68, 13, 138, 195, 174,
+			13, 16, 196, 131, 20, 21, 18, 9, 69, 6, 195, 4, 49, 76, 76, 0, 10, 135, 197, 163, 196, 131, 18, 9, 9, 65, 9, 198, 12, 20,
+			9, 80, 243, 0, 66, 7, 196, 4, 130, 76, 20, 66, 7, 196, 4, 65, 82, 4, 67, 14, 139, 18, 5, 195, 174, 14, 20, 195, 162, 12,
+			14, 9, 68, 0, 8, 197, 72, 145, 9, 12, 80, 66, 11, 136, 16, 18, 196, 131, 10, 9, 20, 21, 67, 8, 197, 16, 83, 154, 36, 48,
+			66, 8, 197, 52, 83, 79, 72, 16, 67, 8, 197, 16, 243, 73, 56, 16, 67, 8, 197, 16, 84, 149, 48, 16, 67, 8, 197, 60, 52, 143,
+			80, 144, 67, 11, 136, 13, 21, 12, 197, 163, 21, 13, 9, 67, 0, 9, 198, 80, 84, 129, 64, 146, 64, 67, 5, 194, 81, 80, 76, 0,
+			10, 199, 4, 197, 21, 56, 65, 86, 4, 68, 9, 198, 4, 49, 83, 80, 82, 65, 78, 0, 9, 198, 88, 82, 9, 13, 83, 0, 66, 7,
+			196, 4, 210, 67, 36, 66, 7, 196, 8, 195, 195, 4, 67, 11, 200, 8, 192, 71, 61, 51, 15, 88, 144, 68, 0, 15, 69, 65, 35, 196,
+			85, 48, 48, 16, 39, 72, 6, 40, 89, 0, 15, 69, 21, 128, 204, 85, 48, 36, 101, 49, 55, 6, 40, 89, 0, 15, 69, 12, 243, 132,
+			85, 48, 49, 39, 50, 72, 6, 40, 89, 0, 0, 0, 9, 198, 88, 82, 9, 13, 83, 5, 66, 9, 134, 3, 196, 131, 19, 3, 1, 66,
+			0, 12, 68, 56, 85, 143, 36, 50, 36, 84, 6, 120, 0, 13, 68, 48, 149, 137, 84, 55, 6, 37, 84, 57, 40, 0, 6, 195, 37, 160,
+			137, 66, 0, 15, 140, 19, 20, 18, 196, 131, 6, 21, 12, 7, 5, 18, 1, 68, 0, 0, 10, 135, 26, 195, 162, 13, 2, 5, 20, 65,
+			9, 198, 4, 209, 82, 36, 50, 73, 66, 0, 0, 9, 197, 4, 197, 6, 20, 192, 65, 28, 0, 9, 198, 77, 84, 21, 56, 80, 64, 67,
+			9, 198, 77, 5, 77, 20, 112, 64, 68, 9, 198, 72, 81, 133, 72, 80, 64, 67, 17, 70, 56, 81, 207, 12, 144, 64, 50, 36, 81, 39,
+			76, 37, 6, 35, 0, 12, 137, 195, 174, 13, 2, 18, 196, 131, 3, 1, 67, 12, 137, 195, 174, 14, 3, 196, 131, 12, 26, 9, 67, 0,
+			21, 71, 65, 33, 68, 37, 52, 21, 76, 48, 14, 16, 36, 72, 37, 89, 48, 6, 40, 89, 0, 11, 136, 7, 195, 162, 4, 9, 12, 196,
+			131, 65, 0, 7, 196, 36, 229, 18, 20, 28, 11, 67, 17, 84, 1, 72, 40, 48, 13, 0, 28, 0, 11, 136, 26, 195, 162, 13, 2, 5,
+			20, 5, 65, 13, 138, 195, 174, 14, 4, 18, 5, 16, 20, 196, 131, 67, 0, 9, 198, 24, 243, 15, 76, 80, 64, 67, 9, 198, 16, 85,
+			133, 56, 80, 64, 67, 9, 198, 4, 165, 78, 28, 80, 64, 67, 0, 0, 12, 67, 21, 53, 5, 57, 36, 89, 47, 36, 0, 76, 6, 195,
+			5, 53, 1, 76, 0, 0, 9, 198, 37, 53, 5, 72, 145, 64, 67, 0, 9, 134, 197, 159, 15, 19, 5, 1, 66, 12, 201, 64, 20, 148,
+			20, 225, 82, 36, 195, 210, 67, 9, 134, 7, 196, 131, 19, 5, 1, 66, 0, 11, 67, 104, 149, 65, 88, 6, 37, 122, 35, 0, 11, 200,
+			56, 244, 212, 36, 209, 76, 61, 32, 65, 14, 139, 195, 174, 14, 197, 163, 5, 12, 5, 7, 5, 13, 67, 7, 196, 36, 226, 77, 4, 65,
+			7, 196, 12, 130, 77, 36, 20, 10, 135, 19, 9, 13, 197, 163, 5, 1, 66, 0, 11, 136, 18, 196, 131, 19, 21, 3, 5, 1, 67, 0,
+			17, 70, 88, 84, 154, 84, 145, 64, 84, 36, 34, 88, 6, 40, 57, 36, 0, 18, 70, 65, 35, 211, 80, 145, 64, 48, 14, 16, 39, 89,
+			47, 6, 37, 36, 0, 9, 198, 56, 244, 212, 36, 209, 64, 65, 8, 133, 6, 196, 131, 3, 21, 66, 9, 198, 16, 83, 154, 36, 49, 64,
+			66, 9, 198, 13, 32, 84, 36, 209, 64, 65, 0, 12, 201, 64, 20, 148, 20, 225, 82, 20, 195, 210, 67, 9, 134, 26, 196, 131, 3, 5,
+			1, 66, 9, 134, 18, 196, 131, 3, 5, 1, 66, 9, 134, 6, 196, 131, 3, 5, 1, 66, 0, 10, 135, 195, 174, 14, 20, 195, 162, 9,
+			66, 7, 196, 33, 83, 143, 72, 65, 7, 196, 20, 112, 76, 20, 66, 14, 139, 195, 174, 14, 197, 163, 5, 12, 5, 7, 5, 1, 68, 14,
+			139, 195, 174, 13, 16, 196, 131, 18, 197, 163, 5, 1, 67, 7, 196, 17, 82, 14, 36, 66, 0, 14, 69, 52, 242, 83, 20, 144, 65, 39,
+			37, 89, 6, 118, 0, 8, 197, 5, 4, 137, 28, 80, 65, 8, 197, 72, 84, 5, 80, 16, 67, 0, 9, 198, 65, 85, 5, 72, 146, 64,
+			66, 12, 137, 16, 18, 5, 6, 196, 131, 3, 5, 1, 67, 0, 9, 198, 40, 20, 15, 56, 145, 73, 66, 20, 71, 16, 84, 195, 60, 212,
+			21, 76, 72, 36, 89, 49, 39, 65, 48, 6, 40, 89, 0, 9, 198, 12, 243, 132, 84, 49, 77, 66, 10, 199, 4, 209, 82, 36, 50, 76,
+			20, 66, 7, 195, 64, 245, 0, 76, 32, 0, 11, 200, 28, 20, 212, 72, 243, 143, 52, 144, 20, 7, 196, 24, 16, 212, 84, 66, 0, 8,
+			197, 12, 147, 133, 52, 16, 65, 8, 197, 5, 4, 143, 64, 240, 67, 11, 136, 195, 174, 14, 6, 9, 5, 18, 1, 67, 8, 197, 16, 244,
+			141, 20, 16, 66, 0, 9, 198, 64, 20, 143, 16, 146, 64, 67, 0, 6, 2, 95, 1, 35, 0, 0, 14, 139, 195, 174, 14, 6, 196, 131,
+			197, 159, 21, 18, 1, 68, 7, 196, 12, 195, 195, 36, 66, 0, 0, 10, 67, 88, 145, 87, 84, 6, 57, 40, 0, 0, 21, 10, 6, 196,
+			131, 7, 196, 131, 4, 21, 21, 9, 83, 13, 81, 13, 72, 40, 6, 37, 0, 6, 2, 95, 5, 36, 0, 0, 14, 139, 195, 174, 14, 7,
+			18, 196, 131, 4, 9, 20, 21, 68, 6, 195, 85, 38, 137, 66, 0, 15, 69, 16, 148, 208, 85, 48, 72, 37, 89, 48, 6, 40, 89, 0,
+			0, 9, 198, 16, 81, 21, 12, 83, 64, 66, 9, 198, 4, 165, 78, 28, 83, 64, 66, 6, 2, 95, 9, 37, 0, 0, 0, 6, 2, 95,
+			15, 39, 0, 0, 13, 68, 84, 212, 12, 36, 6, 40, 65, 48, 55, 37, 0, 7, 196, 4, 114, 84, 4, 67, 7, 2, 95, 14, 50, 36,
+			0, 0, 8, 197, 28, 84, 129, 48, 64, 65, 11, 136, 6, 21, 18, 14, 9, 26, 196, 131, 67, 9, 198, 77, 5, 76, 8, 84, 129, 67,
+			9, 134, 3, 195, 162, 14, 20, 1, 66, 7, 2, 95, 13, 65, 36, 0, 0, 15, 70, 88, 245, 67, 32, 84, 128, 84, 6, 114, 76, 13,
+			34, 0, 10, 135, 197, 159, 5, 14, 9, 12, 5, 66, 6, 195, 85, 32, 193, 66, 9, 198, 8, 19, 1, 57, 48, 64, 67, 7, 2, 95,
+			12, 55, 36, 0, 0, 11, 136, 195, 174, 14, 3, 5, 16, 5, 13, 66, 10, 199, 64, 20, 148, 36, 50, 80, 4, 68, 7, 2, 95, 19,
+			89, 36, 0, 0, 0, 11, 136, 197, 163, 5, 12, 9, 14, 196, 131, 65, 8, 197, 12, 192, 84, 36, 224, 65, 0, 16, 70, 76, 48, 78,
+			56, 84, 128, 89, 49, 6, 36, 50, 13, 34, 0, 9, 198, 32, 19, 83, 80, 84, 128, 65, 0, 11, 136, 3, 18, 5, 197, 159, 20, 5,
+			13, 65, 11, 136, 3, 21, 22, 195, 162, 14, 20, 1, 67, 11, 136, 195, 174, 14, 197, 159, 5, 12, 1, 67, 0, 9, 134, 12, 1, 7,
+			196, 131, 18, 65, 7, 196, 24, 83, 69, 36, 66, 0, 6, 2, 95, 21, 40, 0, 0, 0, 11, 136, 14, 196, 131, 197, 159, 20, 5, 1,
+			66, 11, 136, 3, 18, 5, 197, 159, 20, 5, 1, 66, 18, 8, 1, 20, 195, 162, 197, 163, 9, 1, 35, 47, 6, 112, 123, 57, 35, 0,
+			7, 132, 19, 196, 131, 21, 76, 0, 9, 134, 14, 21, 13, 196, 131, 18, 65, 7, 196, 48, 16, 207, 52, 65, 7, 196, 36, 226, 77, 36,
+			65, 7, 196, 17, 84, 133, 4, 66, 12, 137, 3, 21, 14, 15, 197, 159, 20, 5, 1, 67, 7, 196, 4, 49, 83, 80, 76, 0, 8, 197,
+			52, 20, 148, 61, 32, 65, 0, 0, 14, 203, 12, 20, 129, 13, 65, 82, 20, 193, 76, 61, 32, 67, 7, 132, 19, 196, 131, 9, 76, 0,
+			7, 196, 12, 240, 201, 56, 65, 0, 8, 197, 52, 243, 9, 52, 80, 65, 8, 197, 12, 20, 133, 88, 16, 67, 13, 138, 195, 174, 14, 4,
+			5, 16, 12, 9, 14, 9, 68, 0, 6, 195, 16, 82, 129, 66, 6, 195, 28, 243, 137, 66, 0, 11, 136, 3, 195, 162, 18, 16, 9, 20,
+			21, 67, 6, 195, 49, 82, 64, 76, 0, 12, 137, 3, 18, 195, 162, 14, 3, 5, 14, 5, 65, 15, 2, 95, 34, 81, 107, 37, 55, 37,
+			65, 6, 36, 55, 36, 0, 0, 8, 197, 88, 144, 212, 36, 208, 65, 8, 197, 65, 85, 5, 72, 80, 66, 9, 198, 64, 85, 18, 20, 49,
+			77, 66, 8, 197, 56, 245, 137, 12, 80, 66, 13, 138, 195, 174, 14, 20, 196, 131, 18, 9, 20, 21, 68, 8, 197, 24, 243, 15, 76, 144,
+			67, 8, 197, 16, 243, 73, 56, 80, 65, 8, 197, 36, 229, 137, 80, 16, 67, 8, 197, 16, 243, 79, 48, 144, 67, 8, 197, 80, 240, 205,
+			4, 144, 73, 9, 198, 4, 49, 83, 81, 82, 65, 78, 16, 2, 95, 33, 36, 49, 89, 49, 55, 35, 65, 6, 35, 16, 36, 0, 0, 0,
+			24, 7, 19, 46, 1, 46, 13, 46, 4, 91, 36, 35, 91, 35, 65, 117, 72, 36, 48, 35, 34, 47, 36, 0, 15, 2, 95, 39, 35, 48,
+			39, 89, 47, 14, 16, 6, 39, 83, 0, 0, 7, 196, 80, 83, 69, 52, 65, 12, 137, 195, 174, 14, 7, 18, 5, 21, 14, 1, 68, 0,
+			0, 6, 195, 65, 85, 21, 66, 0, 0, 17, 4, 95, 3, 1, 16, 65, 35, 90, 40, 89, 49, 6, 40, 55, 13, 0, 0, 9, 197, 64,
+			83, 148, 73, 80, 72, 28, 22, 2, 95, 41, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 9,
+			198, 77, 4, 137, 40, 147, 128, 65, 6, 195, 88, 148, 129, 66, 23, 2, 95, 40, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 72, 36,
+			89, 49, 6, 37, 89, 13, 0, 0, 9, 134, 9, 14, 9, 13, 196, 131, 65, 0, 0, 10, 135, 7, 5, 1, 13, 196, 131, 14, 65, 14,
+			2, 95, 45, 49, 14, 16, 6, 35, 47, 37, 65, 13, 0, 0, 9, 198, 12, 129, 83, 80, 244, 128, 65, 12, 67, 24, 20, 129, 83, 4,
+			13, 34, 13, 0, 8, 13, 2, 95, 44, 84, 6, 37, 34, 81, 40, 55, 13, 0, 0, 11, 136, 6, 5, 14, 9, 3, 197, 159, 9, 65,
+			10, 2, 95, 51, 47, 14, 16, 6, 118, 0, 0, 7, 196, 29, 83, 5, 72, 65, 10, 135, 1, 197, 159, 5, 26, 196, 131, 67, 7, 196,
+			12, 194, 80, 36, 66, 21, 9, 15, 18, 9, 3, 196, 131, 18, 21, 9, 39, 16, 124, 49, 13, 34, 40, 37, 0, 79, 8, 2, 95, 50,
+			72, 6, 120, 0, 0, 11, 136, 16, 18, 15, 20, 5, 10, 196, 131, 67, 9, 134, 18, 5, 21, 197, 159, 9, 67, 9, 2, 95, 49, 6,
+			40, 50, 40, 0, 0, 10, 2, 95, 48, 88, 6, 36, 16, 39, 0, 0, 15, 140, 2, 9, 14, 5, 3, 21, 22, 195, 162, 14, 20, 1,
+			69, 11, 136, 4, 5, 19, 12, 21, 197, 159, 9, 67, 11, 2, 95, 55, 91, 6, 35, 48, 47, 36, 0, 0, 12, 137, 195, 174, 14, 3,
+			8, 9, 4, 5, 13, 66, 10, 2, 95, 54, 91, 6, 35, 89, 36, 0, 0, 12, 137, 1, 4, 5, 22, 196, 131, 18, 21, 12, 67, 11,
+			2, 95, 53, 76, 6, 37, 50, 76, 124, 0, 0, 6, 195, 85, 36, 201, 66, 12, 2, 95, 52, 48, 6, 35, 47, 14, 16, 40, 0, 0,
+			10, 135, 7, 5, 1, 13, 196, 131, 20, 65, 12, 4, 197, 163, 9, 5, 123, 6, 57, 36, 0, 72, 12, 4, 197, 163, 9, 5, 123, 6,
+			37, 36, 0, 76, 22, 2, 95, 59, 48, 6, 40, 50, 49, 47, 15, 91, 37, 84, 6, 37, 34, 81, 40, 55, 13, 0, 0, 7, 196, 76,
+			244, 197, 4, 66, 12, 137, 16, 18, 5, 7, 196, 131, 20, 5, 1, 67, 7, 196, 84, 229, 73, 4, 77, 17, 2, 95, 58, 72, 39, 6,
+			40, 13, 48, 6, 40, 50, 49, 47, 36, 0, 0, 9, 198, 65, 33, 90, 20, 229, 1, 67, 9, 134, 3, 196, 131, 4, 5, 1, 66, 9,
+			2, 95, 57, 50, 6, 131, 13, 0, 0, 9, 2, 95, 56, 6, 39, 48, 47, 0, 0, 16, 2, 95, 63, 112, 50, 47, 14, 16, 36, 71,
+			6, 35, 16, 36, 0, 0, 11, 136, 19, 20, 18, 9, 7, 196, 131, 20, 65, 12, 137, 3, 18, 195, 162, 14, 3, 5, 14, 9, 65, 7,
+			196, 4, 35, 206, 4, 67, 13, 2, 95, 62, 65, 117, 15, 65, 6, 35, 16, 36, 0, 0, 8, 197, 84, 197, 9, 52, 80, 65, 8, 197,
+			81, 84, 133, 48, 80, 66, 12, 137, 16, 18, 15, 1, 19, 16, 196, 131, 20, 65, 8, 197, 8, 244, 132, 20, 144, 66, 8, 197, 5, 4,
+			137, 28, 144, 65, 8, 197, 77, 68, 137, 12, 16, 66, 9, 198, 64, 20, 129, 48, 150, 129, 68, 0, 6, 195, 5, 36, 213, 66, 12, 2,
+			95, 60, 65, 117, 15, 65, 6, 37, 49, 0, 0, 10, 199, 28, 130, 76, 36, 209, 76, 20, 67, 0, 7, 196, 12, 240, 207, 76, 65, 7,
+			196, 76, 197, 74, 36, 66, 30, 8, 197, 159, 46, 1, 46, 13, 46, 4, 91, 37, 11, 35, 91, 4, 35, 15, 65, 117, 15, 72, 36, 48,
+			6, 35, 34, 47, 36, 0, 0, 8, 197, 56, 85, 5, 104, 144, 65, 14, 139, 13, 5, 19, 1, 7, 5, 18, 196, 131, 36, 50, 66, 8,
+			197, 104, 34, 69, 72, 16, 66, 0, 0, 11, 136, 1, 3, 5, 5, 1, 197, 159, 9, 66, 0, 7, 196, 85, 35, 5, 80, 65, 7, 196,
+			81, 83, 133, 80, 65, 7, 196, 77, 83, 133, 80, 65, 12, 137, 3, 196, 131, 16, 20, 21, 197, 159, 9, 67, 0, 8, 197, 52, 20, 137,
+			85, 48, 65, 0, 0, 26, 12, 195, 174, 14, 20, 15, 20, 4, 5, 1, 21, 14, 1, 112, 50, 47, 39, 47, 72, 135, 6, 40, 50, 35,
+			0, 0, 7, 196, 65, 83, 133, 52, 65, 7, 196, 72, 148, 195, 4, 66, 0, 8, 197, 4, 192, 137, 81, 80, 67, 0, 6, 195, 84, 193,
+			73, 66, 6, 195, 24, 16, 197, 76, 0, 21, 71, 65, 34, 69, 80, 83, 137, 20, 48, 14, 16, 57, 36, 47, 36, 50, 6, 37, 36, 0,
+			0, 7, 196, 48, 20, 197, 72, 65, 9, 133, 16, 15, 197, 163, 9, 76, 32, 0, 9, 134, 13, 196, 131, 18, 9, 9, 65, 0, 9, 198,
+			4, 53, 77, 84, 192, 64, 68, 17, 7, 22, 9, 5, 197, 163, 21, 9, 84, 57, 36, 123, 40, 6, 37, 0, 0, 9, 134, 195, 174, 14,
+			19, 196, 131, 8, 0, 7, 196, 77, 84, 5, 72, 65, 0, 9, 198, 36, 229, 5, 72, 84, 193, 68, 16, 6, 5, 18, 1, 197, 163, 9,
+			57, 36, 16, 35, 141, 124, 0, 78, 11, 136, 6, 9, 9, 14, 4, 3, 196, 131, 8, 0, 10, 135, 16, 21, 14, 5, 197, 163, 9, 65,
+			9, 198, 4, 209, 83, 80, 80, 192, 66, 9, 198, 76, 50, 9, 52, 32, 64, 66, 6, 195, 56, 144, 201, 8, 0, 11, 136, 3, 196, 131,
+			4, 5, 18, 9, 9, 66, 11, 136, 12, 9, 14, 7, 21, 197, 159, 9, 67, 11, 67, 20, 193, 64, 57, 36, 55, 36, 0, 76, 0, 12,
+			137, 19, 3, 196, 131, 4, 5, 18, 9, 9, 66, 12, 137, 195, 174, 14, 3, 18, 5, 197, 163, 9, 67, 12, 4, 95, 4, 15, 20, 48,
+			40, 50, 49, 47, 0, 0, 8, 197, 13, 33, 68, 37, 64, 65, 15, 67, 84, 67, 82, 117, 100, 101, 109, 101, 114, 39, 101, 0, 29, 0,
+			6, 195, 16, 80, 201, 8, 0, 7, 195, 4, 193, 64, 72, 28, 24, 2, 95, 91, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 48, 13,
+			47, 14, 16, 6, 35, 47, 13, 0, 0, 0, 0, 11, 67, 36, 194, 69, 37, 55, 6, 37, 36, 0, 7, 66, 88, 144, 84, 37, 0, 0,
+			15, 2, 95, 95, 89, 40, 71, 55, 37, 50, 57, 6, 35, 47, 0, 0, 7, 196, 5, 4, 137, 28, 65, 8, 133, 7, 196, 131, 19, 9,
+			66, 0, 8, 197, 77, 69, 68, 36, 80, 66, 8, 197, 64, 244, 9, 12, 80, 66, 8, 197, 64, 148, 201, 12, 16, 66, 8, 197, 48, 147,
+			73, 80, 80, 65, 8, 197, 13, 33, 68, 20, 208, 65, 8, 197, 4, 193, 71, 20, 208, 66, 8, 197, 4, 69, 67, 20, 208, 66, 8, 197,
+			4, 98, 82, 52, 16, 67, 8, 197, 16, 245, 133, 16, 144, 67, 31, 2, 95, 93, 48, 35, 16, 35, 50, 47, 4, 36, 88, 13, 48, 13,
+			47, 14, 16, 6, 35, 47, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 9, 198, 37, 53, 1, 52, 37, 76, 67, 10, 135, 18, 196, 131,
+			19, 21, 3, 9, 67, 14, 2, 95, 92, 71, 4, 36, 49, 89, 55, 6, 36, 91, 0, 0, 0, 7, 196, 16, 83, 79, 56, 65, 9, 133,
+			22, 5, 197, 163, 9, 76, 32, 0, 8, 197, 65, 85, 5, 72, 144, 66, 13, 138, 1, 16, 196, 131, 18, 196, 131, 18, 9, 9, 67, 8,
+			197, 5, 3, 5, 12, 16, 67, 9, 134, 1, 13, 5, 197, 163, 9, 67, 0, 9, 134, 22, 196, 131, 18, 21, 12, 65, 10, 135, 20, 5,
+			13, 5, 197, 163, 9, 65, 9, 198, 65, 33, 86, 20, 226, 64, 67, 10, 135, 196, 131, 19, 20, 15, 18, 1, 77, 0, 11, 136, 197, 163,
+			9, 14, 5, 197, 163, 9, 65, 0, 7, 196, 88, 84, 197, 48, 65, 20, 72, 8, 194, 84, 104, 180, 137, 20, 112, 71, 55, 6, 37, 123,
+			49, 34, 37, 81, 0, 11, 200, 72, 84, 18, 21, 161, 78, 80, 16, 68, 0, 8, 197, 37, 160, 137, 81, 80, 67, 9, 134, 26, 195, 162,
+			13, 2, 9, 66, 0, 6, 195, 24, 145, 213, 66, 0, 11, 136, 20, 196, 131, 22, 9, 197, 163, 5, 66, 0, 15, 3, 19, 196, 131, 89,
+			13, 126, 124, 0, 72, 81, 109, 105, 32, 16, 3, 19, 196, 131, 89, 13, 97, 124, 0, 72, 81, 197, 159, 105, 32, 12, 3, 19, 196, 131,
+			89, 129, 0, 72, 81, 105, 32, 13, 3, 19, 196, 131, 89, 13, 55, 0, 72, 81, 108, 32, 6, 131, 19, 196, 131, 72, 0, 0, 6, 195,
+			88, 148, 193, 66, 13, 4, 95, 7, 18, 22, 81, 14, 16, 6, 35, 84, 0, 0, 6, 195, 20, 66, 84, 65, 0, 24, 73, 16, 147, 148,
+			61, 65, 5, 5, 83, 129, 72, 37, 50, 47, 39, 47, 72, 135, 6, 40, 50, 35, 0, 10, 135, 12, 195, 162, 14, 7, 196, 131, 28, 6,
+			131, 3, 196, 131, 76, 0, 0, 16, 70, 92, 147, 132, 61, 116, 192, 6, 58, 37, 50, 72, 130, 89, 0, 9, 198, 49, 81, 15, 88, 144,
+			192, 65, 16, 70, 12, 80, 73, 56, 144, 192, 76, 6, 135, 57, 50, 37, 49, 0, 6, 195, 17, 84, 129, 66, 0, 6, 195, 4, 193, 88,
+			65, 0, 7, 196, 64, 148, 201, 12, 65, 14, 68, 24, 146, 78, 16, 83, 37, 6, 37, 50, 72, 0, 8, 0, 9, 198, 12, 243, 80, 48,
+			144, 197, 66, 9, 198, 12, 243, 85, 56, 144, 193, 68, 0, 10, 135, 3, 1, 16, 5, 197, 163, 9, 65, 10, 135, 2, 1, 20, 5, 197,
+			163, 9, 65, 10, 135, 1, 18, 4, 5, 197, 163, 9, 65, 9, 198, 36, 228, 212, 4, 192, 64, 67, 11, 135, 16, 21, 20, 5, 197, 163,
+			9, 76, 32, 0, 11, 136, 22, 9, 14, 4, 5, 197, 163, 9, 65, 11, 136, 21, 13, 16, 12, 5, 197, 163, 9, 65, 11, 136, 20, 196,
+			131, 3, 5, 18, 9, 9, 66, 10, 67, 4, 69, 64, 35, 72, 6, 40, 0, 0, 12, 137, 16, 9, 5, 18, 4, 5, 197, 163, 9, 65,
+			7, 196, 65, 85, 5, 4, 78, 0, 13, 138, 20, 18, 9, 13, 9, 20, 5, 197, 163, 9, 66, 13, 138, 16, 18, 15, 13, 9, 20, 5,
+			197, 163, 9, 66, 13, 138, 16, 18, 9, 3, 5, 16, 5, 197, 163, 9, 66, 13, 138, 195, 174, 14, 3, 5, 16, 5, 197, 163, 9, 66,
+			0, 14, 139, 195, 174, 14, 20, 9, 14, 4, 5, 197, 163, 9, 66, 9, 198, 24, 80, 146, 36, 193, 64, 66, 9, 198, 12, 20, 148, 20,
+			193, 64, 66, 0, 10, 199, 17, 32, 71, 61, 53, 5, 4, 65, 11, 136, 1, 3, 5, 197, 159, 20, 9, 1, 72, 23, 2, 95, 123, 48,
+			35, 16, 35, 50, 47, 4, 36, 88, 13, 35, 49, 39, 55, 6, 35, 72, 13, 0, 14, 4, 95, 4, 9, 1, 47, 14, 16, 6, 36, 65,
+			13, 0, 0, 12, 137, 3, 196, 131, 12, 3, 195, 162, 9, 5, 66, 0, 8, 197, 56, 148, 212, 61, 32, 65, 9, 198, 28, 19, 2, 20,
+			226, 73, 65, 9, 198, 5, 48, 213, 56, 65, 65, 67, 0, 9, 198, 28, 19, 2, 20, 225, 64, 65, 0, 0, 11, 68, 16, 242, 78, 4,
+			72, 120, 50, 35, 0, 12, 137, 19, 6, 196, 131, 18, 195, 162, 13, 1, 67, 11, 2, 95, 126, 47, 6, 37, 55, 72, 13, 0, 0, 8,
+			197, 64, 84, 5, 56, 80, 65, 8, 197, 21, 130, 83, 80, 16, 67, 8, 197, 16, 80, 207, 48, 16, 67, 9, 134, 16, 196, 131, 197, 163,
+			9, 66, 9, 133, 3, 195, 162, 14, 4, 72, 8, 8, 197, 4, 197, 5, 36, 16, 77, 30, 2, 95, 125, 48, 35, 16, 35, 50, 47, 4,
+			36, 88, 13, 35, 49, 39, 55, 6, 35, 72, 13, 112, 50, 49, 6, 37, 89, 13, 0, 0, 20, 2, 95, 124, 71, 6, 35, 34, 13, 84,
+			36, 34, 47, 37, 49, 6, 35, 55, 13, 0, 0, 0, 11, 67, 4, 69, 83, 35, 72, 6, 40, 89, 0, 20, 8, 15, 18, 9, 3, 195,
+			162, 14, 4, 39, 16, 124, 49, 4, 112, 50, 72, 0, 76, 0, 8, 197, 64, 17, 213, 8, 80, 65, 8, 197, 4, 210, 67, 36, 144, 66,
+			9, 134, 1, 13, 21, 197, 163, 9, 67, 0, 9, 198, 28, 19, 2, 20, 226, 64, 65, 10, 135, 3, 21, 7, 5, 197, 163, 9, 65, 0,
+			27, 12, 19, 21, 16, 18, 1, 22, 9, 5, 197, 163, 21, 9, 89, 40, 48, 34, 35, 84, 57, 36, 123, 40, 6, 37, 0, 0, 12, 137,
+			19, 3, 15, 1, 20, 5, 197, 163, 9, 65, 11, 200, 12, 243, 148, 72, 22, 137, 12, 80, 67, 11, 200, 4, 67, 73, 56, 148, 212, 72,
+			16, 68, 0, 13, 138, 16, 5, 18, 13, 9, 20, 5, 197, 163, 9, 66, 9, 198, 24, 19, 129, 80, 144, 201, 66, 17, 142, 195, 174, 13,
+			2, 21, 14, 196, 131, 20, 196, 131, 197, 163, 9, 69, 0, 14, 139, 4, 9, 19, 20, 9, 14, 7, 5, 197, 163, 9, 66, 14, 139, 4,
+			5, 19, 3, 8, 9, 26, 196, 131, 20, 21, 68, 0, 11, 136, 195, 174, 14, 6, 12, 15, 18, 9, 67, 0, 12, 137, 16, 196, 131, 4,
+			21, 18, 9, 3, 5, 67, 7, 196, 61, 5, 9, 52, 65, 0, 8, 197, 5, 97, 78, 81, 80, 67, 0, 19, 9, 22, 9, 19, 45, 1,
+			45, 22, 9, 19, 84, 37, 88, 35, 84, 6, 37, 0, 5, 194, 84, 224, 72, 0, 11, 136, 7, 196, 131, 21, 18, 9, 3, 5, 66, 0,
+			10, 135, 4, 5, 3, 15, 12, 196, 131, 67, 0, 9, 134, 15, 2, 197, 163, 9, 9, 66, 13, 138, 7, 195, 162, 7, 195, 162, 12, 9,
+			3, 5, 67, 0, 9, 198, 72, 86, 137, 77, 64, 64, 67, 9, 198, 25, 83, 7, 21, 32, 64, 67, 9, 198, 21, 132, 12, 61, 32, 64,
+			67, 9, 198, 21, 128, 71, 21, 32, 64, 68, 9, 198, 12, 243, 69, 57, 64, 64, 67, 0, 12, 136, 9, 1, 18, 196, 131, 197, 159, 9,
+			65, 8, 0, 0, 0, 10, 135, 7, 195, 162, 4, 9, 12, 1, 67, 10, 135, 13, 15, 12, 5, 197, 159, 9, 67, 0, 11, 136, 20, 18,
+			5, 3, 5, 197, 163, 9, 65, 11, 136, 13, 5, 18, 7, 5, 197, 163, 9, 65, 10, 199, 16, 80, 207, 56, 80, 212, 4, 68, 0, 12,
+			137, 1, 10, 21, 14, 7, 5, 197, 163, 9, 66, 12, 137, 195, 174, 14, 4, 18, 5, 16, 20, 1, 67, 0, 13, 138, 197, 159, 20, 5,
+			18, 7, 5, 197, 163, 9, 65, 13, 138, 16, 5, 20, 18, 5, 3, 5, 197, 163, 9, 66, 15, 140, 195, 174, 14, 4, 5, 16, 196, 131,
+			18, 20, 196, 131, 68, 13, 138, 4, 5, 19, 6, 1, 3, 5, 197, 163, 9, 66, 13, 138, 3, 15, 14, 4, 21, 3, 5, 197, 163, 9,
+			66, 9, 198, 24, 16, 201, 48, 149, 1, 68, 0, 14, 139, 19, 20, 18, 195, 162, 14, 7, 5, 197, 163, 9, 65, 14, 139, 195, 174, 14,
+			3, 9, 14, 7, 5, 197, 163, 9, 66, 9, 198, 25, 83, 7, 21, 33, 64, 65, 13, 4, 95, 35, 51, 50, 89, 48, 6, 35, 123, 116,
+			0, 0, 15, 140, 195, 174, 14, 20, 15, 1, 18, 3, 5, 197, 163, 9, 66, 0, 7, 196, 5, 86, 133, 4, 66, 12, 137, 1, 197, 159,
+			20, 5, 18, 14, 5, 1, 67, 0, 8, 197, 88, 144, 212, 61, 32, 65, 15, 69, 52, 20, 139, 21, 32, 65, 6, 35, 34, 49, 13, 34,
+			0, 9, 134, 2, 18, 15, 197, 159, 21, 66, 8, 197, 5, 50, 71, 85, 32, 66, 9, 198, 64, 245, 18, 37, 97, 65, 67, 9, 134, 7,
+			195, 162, 14, 4, 9, 66, 0, 9, 198, 77, 68, 149, 13, 69, 64, 66, 9, 198, 60, 20, 208, 21, 65, 64, 65, 9, 198, 9, 81, 142,
+			37, 69, 64, 67, 0, 11, 136, 20, 196, 131, 3, 5, 18, 5, 1, 66, 11, 136, 195, 174, 14, 7, 18, 15, 26, 9, 67, 0, 11, 200,
+			36, 228, 212, 73, 80, 212, 61, 32, 66, 10, 135, 4, 18, 1, 7, 15, 197, 159, 65, 7, 196, 13, 83, 20, 84, 66, 0, 8, 197, 4,
+			100, 137, 12, 16, 65, 8, 197, 65, 33, 68, 20, 16, 66, 0, 9, 198, 76, 195, 194, 61, 162, 64, 67, 9, 198, 16, 84, 197, 73, 98,
+			64, 67, 0, 11, 136, 195, 174, 14, 18, 15, 197, 159, 9, 67, 11, 136, 195, 174, 14, 18, 15, 197, 159, 9, 67, 0, 7, 196, 36, 66,
+			76, 20, 66, 8, 133, 2, 21, 197, 159, 9, 66, 9, 133, 4, 5, 197, 159, 9, 66, 8, 0, 8, 197, 48, 16, 210, 36, 208, 65, 15,
+			69, 77, 1, 82, 36, 16, 89, 48, 36, 16, 6, 57, 35, 0, 0, 6, 195, 28, 19, 5, 66, 6, 195, 76, 244, 201, 66, 9, 198, 64,
+			245, 18, 37, 98, 64, 67, 10, 198, 64, 245, 133, 77, 66, 64, 67, 9, 6, 195, 52, 83, 5, 77, 0, 19, 8, 195, 174, 14, 12, 15,
+			3, 21, 9, 112, 50, 55, 39, 49, 40, 6, 37, 0, 0, 12, 67, 9, 34, 79, 71, 14, 16, 6, 37, 39, 0, 12, 137, 16, 18, 196,
+			131, 2, 21, 197, 159, 9, 67, 0, 0, 14, 139, 195, 174, 14, 16, 21, 14, 19, 196, 131, 20, 21, 68, 6, 195, 12, 19, 5, 65, 6,
+			195, 76, 19, 5, 77, 0, 10, 199, 16, 148, 212, 36, 225, 197, 52, 66, 0, 0, 8, 197, 4, 113, 78, 81, 80, 67, 0, 10, 135, 6,
+			21, 18, 9, 197, 159, 1, 67, 0, 10, 135, 18, 195, 162, 14, 10, 5, 20, 65, 11, 136, 195, 174, 14, 3, 21, 18, 3, 1, 67, 10,
+			199, 12, 192, 83, 36, 98, 67, 4, 68, 0, 10, 135, 1, 12, 5, 18, 7, 196, 131, 66, 0, 0, 12, 137, 14, 5, 18, 5, 7, 21,
+			12, 196, 131, 66, 9, 198, 12, 243, 133, 13, 64, 64, 67, 9, 198, 53, 83, 20, 61, 32, 64, 77, 10, 135, 195, 174, 14, 19, 21, 13,
+			9, 77, 0, 0, 13, 68, 12, 244, 212, 4, 49, 39, 89, 47, 6, 35, 0, 0, 0, 6, 195, 64, 245, 5, 66, 9, 198, 60, 34, 69,
+			13, 64, 64, 67, 9, 198, 4, 49, 76, 61, 32, 64, 78, 0, 11, 136, 1, 197, 159, 20, 5, 16, 20, 1, 67, 0, 9, 198, 65, 35,
+			198, 21, 51, 210, 66, 13, 68, 13, 85, 9, 4, 49, 40, 47, 6, 37, 35, 0, 0, 9, 134, 16, 196, 131, 18, 5, 1, 66, 12, 201,
+			21, 132, 5, 72, 147, 69, 57, 64, 64, 69, 0, 9, 198, 104, 115, 205, 61, 65, 64, 65, 9, 198, 12, 244, 133, 13, 69, 64, 67, 10,
+			135, 1, 16, 196, 131, 18, 5, 1, 67, 0, 0, 12, 137, 26, 21, 7, 18, 196, 131, 22, 5, 1, 67, 12, 137, 4, 9, 19, 16, 196,
+			131, 18, 5, 1, 67, 0, 0, 9, 198, 77, 81, 140, 21, 65, 64, 65, 9, 198, 64, 240, 206, 37, 69, 64, 67, 9, 198, 64, 16, 207,
+			77, 65, 64, 65, 10, 135, 195, 174, 14, 3, 21, 9, 5, 66, 9, 198, 28, 20, 142, 37, 69, 64, 67, 18, 70, 61, 34, 67, 5, 33,
+			64, 39, 16, 124, 49, 4, 35, 16, 36, 0, 76, 0, 11, 136, 4, 5, 21, 14, 196, 131, 26, 9, 68, 11, 136, 3, 196, 131, 4, 5,
+			18, 5, 1, 66, 0, 7, 196, 84, 209, 90, 36, 65, 12, 137, 19, 3, 196, 131, 4, 5, 18, 5, 1, 66, 7, 196, 64, 17, 201, 56,
+			65, 8, 196, 64, 240, 84, 20, 76, 32, 0, 8, 197, 76, 80, 207, 48, 80, 65, 8, 197, 64, 84, 5, 56, 144, 65, 8, 197, 24, 20,
+			207, 48, 80, 66, 8, 197, 72, 84, 1, 72, 16, 67, 8, 197, 4, 67, 210, 52, 144, 67, 0, 10, 135, 16, 196, 131, 19, 20, 18, 1,
+			66, 6, 195, 12, 149, 9, 66, 0, 0, 7, 196, 48, 241, 201, 12, 65, 7, 196, 4, 69, 78, 4, 67, 0, 14, 69, 28, 243, 199, 48,
+			80, 81, 6, 40, 81, 13, 55, 0, 8, 197, 12, 130, 77, 36, 48, 65, 8, 197, 4, 225, 18, 20, 144, 66, 8, 197, 64, 194, 77, 8,
+			16, 66, 8, 197, 61, 33, 15, 56, 16, 67, 15, 69, 21, 99, 204, 84, 16, 36, 84, 39, 55, 58, 6, 35, 0, 0, 14, 139, 22, 9,
+			14, 15, 22, 196, 131, 197, 163, 9, 9, 68, 0, 11, 136, 18, 196, 131, 7, 21, 197, 159, 9, 67, 0, 11, 67, 61, 5, 83, 39, 48,
+			6, 40, 89, 0, 13, 68, 13, 85, 9, 20, 49, 40, 47, 6, 37, 36, 0, 8, 196, 65, 85, 5, 52, 76, 32, 12, 137, 1, 3, 5,
+			12, 5, 1, 197, 159, 9, 66, 0, 9, 198, 52, 16, 213, 48, 21, 21, 68, 8, 197, 25, 32, 67, 81, 80, 66, 0, 14, 139, 195, 174,
+			14, 20, 195, 162, 13, 16, 9, 14, 1, 68, 0, 0, 12, 68, 5, 84, 137, 84, 35, 40, 16, 6, 116, 0, 7, 196, 80, 144, 211, 36,
+			66, 0, 0, 0, 10, 199, 4, 212, 212, 21, 33, 1, 52, 65, 11, 136, 195, 174, 14, 3, 5, 18, 3, 1, 67, 0, 10, 135, 18, 5,
+			26, 5, 13, 196, 131, 67, 7, 196, 61, 33, 9, 56, 65, 0, 8, 197, 76, 20, 131, 36, 224, 65, 8, 197, 28, 84, 129, 72, 64, 65,
+			9, 197, 5, 53, 6, 20, 192, 65, 8, 0, 10, 135, 18, 196, 131, 7, 5, 20, 5, 65, 9, 198, 21, 132, 5, 16, 144, 64, 67, 9,
+			198, 17, 84, 133, 72, 80, 64, 66, 0, 6, 195, 52, 80, 64, 76, 0, 7, 196, 81, 81, 15, 72, 65, 7, 196, 60, 97, 82, 20, 66,
+			7, 196, 28, 192, 90, 84, 66, 7, 196, 4, 165, 84, 4, 67, 0, 0, 12, 137, 3, 15, 14, 20, 9, 14, 21, 196, 131, 66, 9, 198,
+			56, 147, 73, 12, 80, 64, 67, 0, 23, 11, 20, 18, 9, 39, 21, 14, 7, 8, 9, 21, 12, 47, 16, 37, 40, 50, 81, 57, 40, 55,
+			0, 0, 7, 196, 13, 85, 9, 36, 66, 0, 9, 198, 77, 64, 82, 61, 53, 5, 65, 0, 17, 70, 12, 192, 85, 16, 149, 64, 49, 55,
+			35, 6, 40, 72, 57, 40, 0, 9, 198, 8, 17, 10, 60, 53, 64, 67, 10, 135, 1, 13, 21, 197, 163, 5, 1, 67, 0, 6, 195, 84,
+			209, 68, 65, 11, 136, 18, 15, 13, 195, 174, 14, 9, 1, 67, 0, 0, 8, 197, 48, 81, 148, 21, 32, 65, 13, 138, 195, 174, 13, 2,
+			195, 162, 3, 19, 5, 1, 67, 0, 10, 135, 18, 196, 131, 13, 195, 162, 9, 66, 9, 198, 52, 84, 212, 20, 49, 64, 65, 0, 9, 67,
+			36, 82, 64, 6, 57, 118, 0, 0, 21, 9, 13, 21, 18, 4, 196, 131, 18, 9, 5, 65, 40, 34, 72, 13, 16, 6, 37, 36, 0, 13,
+			68, 48, 21, 90, 36, 55, 6, 35, 40, 88, 124, 0, 6, 195, 4, 210, 67, 66, 10, 135, 1, 3, 5, 12, 1, 197, 159, 66, 0, 8,
+			197, 80, 84, 129, 64, 144, 20, 8, 197, 64, 148, 201, 12, 144, 66, 9, 198, 16, 84, 198, 4, 49, 77, 66, 8, 197, 36, 228, 197, 72,
+			16, 67, 8, 197, 4, 225, 193, 40, 16, 67, 0, 14, 139, 13, 196, 131, 18, 20, 21, 18, 9, 19, 5, 1, 68, 0, 6, 195, 52, 82,
+			64, 76, 0, 0, 9, 198, 56, 84, 133, 29, 83, 9, 66, 8, 197, 8, 83, 7, 36, 16, 65, 8, 197, 4, 38, 137, 12, 80, 66, 8,
+			197, 16, 80, 149, 80, 16, 67, 14, 69, 61, 34, 67, 84, 144, 39, 16, 124, 49, 121, 0, 79, 0, 6, 195, 80, 244, 9, 66, 10, 135,
+			195, 174, 14, 19, 5, 18, 1, 67, 0, 10, 199, 4, 197, 3, 36, 225, 86, 4, 68, 10, 199, 72, 85, 133, 72, 33, 82, 4, 68, 6,
+			195, 12, 19, 64, 72, 0, 0, 0, 9, 198, 52, 20, 137, 80, 147, 64, 66, 0, 0, 0, 9, 198, 104, 68, 133, 48, 149, 21, 67, 0,
+			9, 198, 16, 147, 131, 60, 195, 192, 65, 0, 10, 199, 65, 85, 5, 72, 226, 67, 36, 66, 10, 67, 32, 242, 84, 107, 6, 120, 47, 0,
+			10, 199, 12, 21, 1, 16, 144, 211, 36, 68, 0, 7, 196, 64, 17, 213, 8, 65, 0, 24, 10, 5, 24, 5, 18, 3, 9, 197, 163, 9,
+			21, 36, 81, 88, 36, 34, 76, 6, 37, 123, 57, 40, 0, 0, 10, 135, 18, 195, 162, 19, 5, 20, 5, 65, 17, 70, 12, 192, 85, 16,
+			144, 64, 49, 55, 35, 6, 40, 72, 57, 35, 0, 6, 195, 77, 4, 133, 28, 0, 0, 14, 68, 21, 132, 21, 76, 36, 49, 89, 48, 6,
+			40, 89, 0, 0, 8, 197, 28, 19, 2, 20, 224, 65, 0, 9, 198, 77, 81, 133, 72, 80, 64, 67, 17, 7, 18, 196, 131, 19, 6, 15,
+			9, 34, 13, 89, 83, 39, 6, 37, 0, 0, 10, 199, 77, 80, 143, 72, 66, 78, 20, 66, 7, 195, 76, 21, 64, 72, 8, 0, 0, 15,
+			6, 197, 159, 5, 6, 9, 1, 91, 36, 83, 6, 37, 35, 0, 0, 9, 198, 24, 16, 212, 36, 49, 64, 66, 0, 6, 195, 52, 85, 64,
+			76, 0, 7, 196, 53, 84, 133, 4, 66, 12, 137, 195, 174, 14, 20, 5, 197, 163, 5, 1, 67, 12, 137, 4, 5, 16, 196, 131, 197, 159,
+			5, 1, 67, 0, 22, 10, 3, 5, 1, 21, 197, 159, 5, 19, 3, 21, 76, 135, 40, 91, 6, 36, 89, 49, 40, 0, 8, 197, 4, 49,
+			76, 61, 32, 74, 0, 10, 135, 20, 196, 131, 3, 5, 18, 9, 66, 9, 198, 65, 33, 76, 36, 225, 192, 66, 10, 135, 20, 18, 196, 131,
+			7, 5, 1, 66, 10, 135, 16, 12, 196, 131, 3, 5, 1, 66, 0, 11, 136, 16, 12, 196, 131, 3, 5, 18, 9, 66, 11, 136, 195, 174,
+			14, 4, 5, 19, 5, 1, 67, 0, 12, 68, 104, 243, 66, 36, 88, 39, 65, 71, 37, 0, 7, 196, 76, 145, 213, 72, 65, 0, 8, 197,
+			52, 241, 5, 48, 16, 67, 0, 10, 135, 20, 196, 131, 3, 5, 18, 5, 66, 10, 135, 195, 174, 14, 3, 5, 16, 21, 67, 0, 11, 136,
+			16, 12, 196, 131, 3, 5, 18, 5, 66, 10, 199, 4, 53, 80, 84, 224, 212, 84, 68, 10, 199, 16, 85, 5, 72, 210, 78, 4, 68, 10,
+			199, 13, 85, 18, 20, 213, 82, 4, 68, 0, 7, 196, 36, 148, 213, 76, 66, 8, 133, 22, 195, 162, 14, 1, 66, 7, 196, 60, 97, 82,
+			36, 67, 0, 9, 134, 2, 196, 131, 21, 20, 21, 67, 13, 138, 195, 174, 14, 3, 196, 131, 9, 5, 18, 1, 68, 8, 197, 21, 53, 9,
+			52, 16, 67, 8, 197, 16, 148, 212, 72, 16, 66, 13, 138, 26, 196, 131, 4, 196, 131, 18, 14, 9, 9, 68, 0, 0, 10, 199, 81, 32,
+			78, 76, 97, 82, 4, 68, 10, 199, 36, 229, 5, 72, 97, 82, 4, 68, 0, 11, 136, 197, 159, 14, 9, 197, 163, 5, 12, 65, 7, 196,
+			72, 81, 213, 48, 65, 7, 196, 52, 144, 213, 48, 65, 0, 6, 20, 0, 0, 0, 25, 2, 0, 0, 95, 1, 0, 0, 27, 2, 0, 0,
+			99, 1, 0, 0, 24, 2, 0, 0, 95, 1, 0, 0, 26, 2, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 6, 195, 162, 0, 105, 101,
+			1, 21, 2, 32, 3, 8, 133, 36, 0, 3, 112, 0, 105, 3, 133, 0, 117, 3, 134, 0, 7, 6, 195, 174, 0, 1, 21, 2, 32, 3,
+			6, 112, 0, 3, 112, 0, 7, 6, 196, 131, 0, 117, 2, 32, 3, 6, 130, 0, 1, 21, 2, 17, 67, 196, 131, 32, 3, 8, 13, 0,
+			105, 101, 1, 21, 2, 32, 3, 8, 129, 36, 0, 4, 3, 13, 0, 1, 10, 2, 32, 14, 128, 192, 129, 0, 1, 17, 67, 131, 196, 21,
+			2, 32, 0, 1, 99, 101, 10, 2, 32, 0, 1, 114, 101, 21, 2, 32, 0, 1, 163, 197, 105, 21, 2, 32, 0, 4, 114, 105, 2, 17,
+			65, 17, 65, 32, 3, 13, 16, 6, 37, 0, 114, 105, 2, 17, 65, 32, 0, 114, 105, 105, 2, 32, 3, 13, 16, 6, 132, 0, 4, 117,
+			1, 99, 2, 116, 3, 13, 40, 0, 117, 8, 98, 2, 116, 0, 117, 8, 100, 2, 110, 0, 117, 8, 108, 2, 100, 0, 116, 196, 131, 1,
+			21, 2, 32, 14, 129, 128, 131, 3, 13, 47, 13, 0, 116, 101, 1, 21, 2, 32, 14, 129, 128, 131, 3, 13, 47, 36, 0, 116, 101, 108,
+			101, 1, 21, 2, 32, 14, 129, 128, 133, 3, 13, 47, 36, 55, 36, 0, 116, 101, 108, 111, 114, 1, 21, 2, 32, 14, 129, 128, 134, 3,
+			13, 47, 36, 55, 39, 34, 0, 116, 117, 108, 1, 21, 2, 32, 14, 129, 128, 132, 3, 13, 47, 40, 55, 0, 116, 117, 108, 117, 105, 1,
+			21, 2, 32, 14, 129, 128, 134, 3, 13, 47, 40, 55, 121, 0, 105, 2, 32, 3, 129, 0, 117, 3, 130, 0, 7, 6, 197, 159, 0, 3,
+			91, 0, 110, 105, 1, 21, 2, 32, 3, 91, 50, 6, 37, 0, 105, 1, 45, 2, 32, 3, 91, 124, 0, 1, 21, 2, 105, 32, 3, 97,
+			0, 7, 6, 197, 163, 0, 3, 123, 0, 1, 21, 2, 105, 32, 3, 141, 0, 105, 1, 45, 2, 32, 3, 141, 128, 0, 7, 6, 97, 0,
+			4, 1, 21, 26, 2, 24, 32, 3, 6, 35, 0, 1, 105, 131, 196, 2, 32, 0, 1, 110, 111, 105, 21, 2, 32, 0, 117, 8, 108, 2,
+			100, 3, 6, 35, 40, 0, 108, 101, 1, 21, 2, 32, 3, 6, 35, 55, 36, 0, 98, 105, 108, 1, 21, 2, 32, 3, 6, 35, 71, 37,
+			55, 0, 117, 2, 32, 3, 6, 114, 0, 105, 2, 32, 3, 6, 117, 0, 4, 3, 35, 0, 1, 10, 2, 32, 14, 128, 192, 129, 0, 1,
+			105, 103, 2, 32, 14, 128, 192, 129, 0, 2, 17, 65, 17, 65, 17, 65, 0, 105, 1, 110, 2, 118, 3, 35, 37, 0, 4, 117, 1, 99,
+			2, 116, 3, 35, 40, 0, 117, 2, 100, 0, 117, 2, 114, 0, 117, 2, 115, 116, 0, 117, 2, 122, 0, 110, 116, 105, 8, 2, 21, 14,
+			128, 132, 132, 3, 35, 50, 47, 37, 0, 105, 2, 97, 3, 35, 57, 0, 117, 3, 114, 0, 105, 3, 117, 0, 7, 6, 98, 0, 4, 1,
+			21, 2, 105, 108, 32, 3, 8, 71, 0, 1, 21, 2, 105, 108, 97, 32, 0, 1, 21, 2, 105, 108, 105, 32, 0, 1, 21, 2, 105, 108,
+			105, 105, 32, 0, 1, 21, 2, 105, 108, 105, 108, 101, 32, 0, 1, 21, 2, 105, 108, 105, 108, 111, 114, 32, 0, 1, 21, 2, 105, 108,
+			117, 108, 117, 105, 32, 0, 4, 3, 71, 0, 98, 0, 105, 108, 1, 111, 109, 2, 32, 3, 71, 6, 37, 55, 0, 1, 21, 2, 105, 32,
+			3, 143, 0, 7, 6, 99, 0, 111, 108, 1, 21, 21, 2, 32, 3, 8, 49, 39, 55, 0, 111, 108, 105, 1, 21, 21, 2, 32, 14, 129,
+			128, 129, 3, 8, 124, 0, 111, 108, 101, 1, 21, 21, 2, 32, 14, 129, 128, 129, 3, 36, 0, 4, 3, 49, 0, 104, 0, 110, 105, 1,
+			21, 2, 32, 3, 49, 50, 6, 37, 0, 110, 101, 97, 1, 21, 2, 32, 3, 49, 50, 36, 6, 35, 0, 4, 2, 101, 3, 76, 0, 2,
+			105, 0, 105, 2, 111, 0, 105, 105, 3, 76, 132, 0, 7, 6, 100, 0, 4, 3, 72, 0, 100, 0, 1, 21, 2, 105, 32, 3, 144, 0,
+			7, 6, 101, 0, 1, 17, 67, 10, 2, 114, 101, 32, 3, 2, 36, 0, 117, 1, 21, 2, 108, 32, 3, 6, 36, 40, 0, 117, 1, 21,
+			2, 32, 24, 3, 6, 115, 0, 105, 1, 114, 2, 101, 114, 32, 3, 6, 118, 0, 4, 1, 21, 2, 114, 97, 32, 3, 8, 36, 0, 1,
+			21, 2, 114, 101, 32, 0, 1, 21, 2, 114, 101, 97, 32, 0, 1, 21, 2, 114, 101, 105, 32, 0, 1, 21, 2, 114, 105, 32, 0, 1,
+			21, 2, 114, 105, 105, 32, 0, 1, 21, 2, 114, 196, 131, 32, 0, 197, 159, 1, 21, 2, 32, 3, 8, 36, 91, 0, 197, 159, 105, 108,
+			111, 114, 1, 21, 2, 32, 3, 8, 36, 91, 37, 55, 39, 34, 0, 197, 159, 117, 108, 1, 21, 2, 32, 3, 8, 36, 91, 40, 55, 0,
+			197, 159, 117, 108, 117, 105, 1, 21, 2, 32, 3, 8, 36, 91, 40, 55, 121, 0, 197, 159, 105, 1, 21, 2, 32, 3, 8, 36, 91, 124,
+			0, 4, 3, 36, 0, 1, 102, 21, 2, 114, 97, 32, 0, 1, 102, 21, 2, 114, 97, 32, 0, 1, 105, 2, 114, 97, 32, 0, 1, 105,
+			2, 114, 101, 32, 0, 1, 105, 2, 114, 101, 97, 32, 0, 1, 105, 2, 114, 105, 32, 0, 1, 105, 2, 114, 105, 105, 32, 0, 1, 105,
+			2, 114, 196, 131, 32, 0, 2, 17, 65, 17, 65, 17, 65, 0, 111, 1, 100, 2, 115, 101, 98, 3, 36, 39, 0, 117, 1, 21, 2, 32,
+			3, 36, 40, 0, 99, 1, 116, 17, 65, 21, 2, 105, 105, 32, 3, 36, 76, 0, 4, 101, 8, 99, 97, 2, 97, 3, 118, 0, 105, 2,
+			32, 0, 105, 8, 0, 4, 97, 3, 135, 0, 97, 1, 10, 2, 32, 14, 128, 192, 130, 0, 83, 105, 1, 10, 3, 135, 57, 0, 97, 117,
+			3, 135, 58, 0, 111, 3, 136, 0, 111, 97, 3, 136, 6, 35, 0, 7, 6, 102, 0, 4, 3, 83, 0, 102, 0, 1, 21, 2, 105, 32,
+			3, 142, 0, 7, 6, 103, 0, 4, 2, 101, 3, 75, 0, 2, 105, 0, 105, 105, 1, 10, 2, 32, 3, 75, 6, 132, 0, 105, 1, 10,
+			2, 17, 65, 32, 3, 75, 37, 0, 105, 105, 3, 75, 132, 0, 4, 3, 81, 0, 104, 0, 7, 6, 104, 0, 1, 21, 2, 105, 32, 3,
+			99, 0, 3, 107, 0, 7, 6, 105, 0, 1, 99, 2, 117, 17, 67, 3, 0, 110, 103, 1, 10, 2, 32, 3, 2, 37, 68, 81, 0, 4,
+			101, 105, 1, 108, 105, 102, 2, 32, 3, 6, 36, 37, 0, 101, 105, 1, 109, 111, 110, 2, 32, 0, 4, 1, 10, 26, 2, 24, 32, 3,
+			6, 37, 0, 1, 114, 99, 115, 2, 101, 0, 2, 116, 32, 0, 4, 97, 1, 17, 67, 131, 196, 2, 32, 3, 6, 37, 35, 0, 97, 1,
+			17, 67, 162, 195, 2, 32, 0, 97, 1, 102, 97, 114, 103, 2, 32, 0, 97, 1, 108, 105, 102, 2, 32, 0, 97, 1, 109, 111, 110, 2,
+			32, 0, 97, 1, 110, 111, 2, 32, 0, 97, 1, 112, 111, 99, 115, 2, 32, 0, 97, 1, 114, 101, 2, 32, 0, 97, 1, 159, 197, 117,
+			2, 32, 0, 4, 101, 1, 17, 67, 131, 196, 2, 32, 3, 6, 37, 36, 0, 101, 1, 17, 67, 162, 195, 2, 32, 0, 101, 1, 102, 97,
+			114, 103, 2, 32, 0, 101, 1, 108, 105, 102, 2, 32, 0, 101, 1, 109, 111, 110, 2, 32, 0, 101, 1, 110, 111, 2, 32, 0, 101, 1,
+			112, 111, 99, 115, 2, 32, 0, 101, 1, 159, 197, 117, 2, 32, 0, 4, 101, 105, 1, 102, 97, 114, 103, 2, 32, 3, 6, 37, 118, 0,
+			101, 105, 1, 110, 111, 2, 32, 0, 101, 105, 1, 114, 101, 2, 32, 0, 101, 105, 1, 159, 197, 117, 2, 32, 0, 101, 105, 2, 32, 0,
+			4, 105, 1, 102, 97, 114, 103, 2, 32, 3, 6, 132, 0, 105, 1, 112, 111, 99, 115, 2, 32, 0, 4, 1, 21, 2, 197, 163, 101, 32,
+			3, 8, 37, 0, 1, 21, 2, 197, 163, 101, 105, 32, 0, 1, 21, 2, 197, 163, 101, 108, 101, 32, 0, 1, 21, 2, 197, 163, 101, 108,
+			111, 114, 32, 0, 1, 21, 2, 197, 163, 196, 131, 32, 12, 12, 12, 12, 12, 12, 12, 12, 0, 1, 103, 2, 110, 101, 32, 0, 1, 103,
+			2, 110, 101, 97, 32, 0, 101, 1, 163, 197, 99, 2, 32, 3, 8, 37, 36, 0, 99, 1, 10, 2, 32, 3, 8, 37, 49, 0, 99, 97,
+			1, 10, 2, 32, 3, 8, 37, 49, 35, 0, 99, 101, 1, 10, 2, 32, 3, 8, 37, 76, 36, 0, 99, 105, 108, 101, 1, 10, 2, 32,
+			3, 8, 37, 76, 37, 55, 36, 0, 99, 105, 108, 111, 114, 1, 10, 2, 32, 3, 8, 37, 76, 37, 55, 39, 34, 0, 99, 101, 105, 1,
+			21, 2, 32, 3, 8, 37, 76, 118, 0, 99, 105, 105, 1, 21, 2, 32, 3, 8, 37, 76, 132, 0, 197, 159, 116, 101, 1, 21, 2, 32,
+			3, 8, 37, 91, 47, 36, 0, 197, 159, 116, 101, 97, 1, 21, 2, 32, 3, 8, 37, 91, 47, 135, 0, 101, 105, 1, 163, 197, 99, 2,
+			32, 3, 8, 37, 118, 0, 97, 1, 163, 197, 99, 2, 32, 3, 8, 57, 35, 0, 1, 45, 105, 163, 197, 2, 32, 3, 10, 0, 4, 3,
+			37, 0, 1, 10, 2, 32, 24, 14, 128, 192, 129, 0, 1, 10, 2, 45, 24, 14, 128, 192, 129, 0, 1, 39, 10, 2, 32, 0, 1, 114,
 			17, 67, 2, 32, 12, 12, 12, 0, 1, 163, 197, 2, 45, 17, 67, 105, 0, 1, 163, 197, 2, 45, 17, 67, 196, 131, 0, 1, 163, 197,
 			2, 45, 108, 0, 1, 163, 197, 2, 45, 110, 101, 0, 105, 105, 3, 37, 57, 37, 0, 101, 105, 1, 112, 111, 99, 115, 2, 32, 3, 37,
 			118, 0, 4, 1, 21, 2, 101, 32, 3, 57, 0, 1, 45, 2, 32, 0, 2, 17, 65, 0, 117, 3, 57, 40, 0, 111, 97, 3, 57, 110,
@@ -40835,1759 +29553,1697 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			3, 48, 14, 16, 39, 76, 36, 50, 47, 0, 37, 1, 32, 15, 3, 55, 35, 10, 89, 40, 47, 13, 0, 45, 8, 32, 2, 32, 15, 3,
 			65, 6, 37, 50, 40, 89, 0, 36, 3, 72, 39, 55, 35, 34, 0, 44, 2, 15, 3, 84, 6, 37, 34, 81, 40, 55, 13, 0, 195, 182,
 			3, 113, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts55 = FileInMemory_createWithData (25205, reinterpret_cast<const char *> (&espeakdata_dicts55_data), 
-			U"espeak-1.48.04-source/espeak-data/ro_dict", 
+		autoFileInMemory espeakdata_dicts53 = FileInMemory_createWithData (26885, reinterpret_cast<const char *> (&espeakdata_dicts53_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ro_dict", 
 			U"ro");
-		my addItem_move (espeakdata_dicts55.move());
+		Collection_addItem (me.peek(), espeakdata_dicts53.transfer());
 
-		static unsigned char espeakdata_dicts56_data[6218] = {
-			0, 4, 0, 0, 137, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4,
-			95, 100, 112, 116, 9, 6, 37, 9, 0, 0, 0, 0, 6, 195, 9, 65, 84, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 13, 1, 35, 34, 36, 91, 6, 121, 47, 49, 35, 0, 27, 0, 11, 1, 36, 72, 6, 39, 55, 55, 35, 34, 0, 0, 13, 1, 37,
-			48, 34, 126, 110, 6, 121, 50, 47, 0, 27, 0, 14, 1, 38, 35, 65, 48, 36, 34, 89, 6, 35, 50, 72, 0, 0, 0, 0, 0, 12,
-			1, 42, 88, 84, 36, 88, 72, 6, 35, 0, 27, 0, 8, 197, 52, 241, 198, 101, 208, 73, 10, 1, 43, 48, 55, 6, 131, 89, 0, 27,
-			0, 0, 0, 0, 10, 1, 47, 89, 55, 6, 121, 91, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 9, 65,
-			70, 101, 208, 73, 0, 0, 11, 1, 61, 34, 35, 84, 50, 6, 39, 0, 27, 0, 0, 9, 198, 64, 240, 148, 20, 102, 93, 74, 0, 11,
-			1, 64, 89, 39, 71, 6, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 211, 199, 25, 151, 64, 73, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 92, 71, 121, 49, 89, 55, 6, 121, 91, 0, 27,
-			0, 0, 11, 1, 94, 49, 34, 6, 115, 91, 49, 35, 0, 0, 13, 1, 95, 48, 39, 72, 78, 6, 128, 34, 49, 0, 27, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 97, 51, 194, 112, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 194, 56, 240, 72, 8, 0, 10, 1, 126, 47, 6, 37, 55, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 25, 36, 221, 73, 0, 4, 193, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 34, 64, 74,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 17, 5, 95, 100, 112, 116, 50, 10, 112, 117, 95, 6, 35, 47, 135, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 49, 5, 193, 4, 72, 8, 0, 0, 11, 67,
-			97, 51, 192, 91, 47, 39, 0, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 36, 198, 73, 0, 0, 0, 8, 197, 64,
-			240, 156, 77, 208, 74, 0, 8, 197, 9, 65, 70, 76, 96, 73, 0, 0, 0, 0, 9, 198, 64, 240, 148, 20, 100, 198, 74, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 52, 246, 29, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 20, 76, 73, 0, 0, 0, 6, 195,
-			52, 241, 20, 74, 0, 0, 7, 196, 72, 211, 196, 80, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 9, 195, 0, 73, 0, 0, 0, 0, 0, 6, 195, 9, 195, 9, 73, 0, 0, 0, 0, 7, 65, 12, 84, 121, 0, 49,
-			6, 65, 12, 84, 0, 72, 0, 0, 0, 0, 8, 197, 64, 240, 156, 48, 144, 74, 0, 8, 197, 64, 240, 148, 21, 64, 74, 0, 6, 195,
-			52, 241, 35, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 240, 156, 48, 73, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 226, 132, 150, 50, 6, 39, 65, 36, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 9, 65, 70,
-			76, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 200, 0, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 198, 76, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3,
-			95, 51, 88, 47, 34, 38, 6, 37, 47, 110, 126, 111, 0, 0, 10, 3, 95, 48, 67, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 49, 57, 112, 123, 84, 38, 117, 47, 50, 6, 134, 47, 110, 126, 111, 0, 0, 18, 3,
-			95, 49, 56, 84, 127, 95, 117, 65, 50, 6, 134, 47, 110, 126, 111, 0, 0, 14, 3, 95, 50, 67, 72, 84, 38, 6, 36, 95, 111, 117,
-			0, 0, 0, 0, 0, 4, 193, 144, 72, 0, 0, 8, 197, 72, 211, 199, 25, 48, 73, 17, 3, 95, 49, 49, 127, 112, 6, 37, 50, 50,
-			126, 47, 110, 126, 111, 0, 0, 12, 3, 95, 49, 48, 112, 6, 36, 95, 117, 111, 0, 0, 14, 3, 95, 51, 67, 47, 34, 38, 6, 37,
-			89, 47, 35, 0, 17, 3, 95, 49, 51, 47, 51, 38, 117, 50, 6, 134, 47, 110, 126, 111, 0, 0, 17, 3, 95, 49, 50, 72, 84, 38,
-			117, 50, 6, 134, 47, 110, 126, 111, 0, 0, 17, 3, 95, 49, 53, 48, 38, 117, 47, 50, 6, 134, 47, 110, 126, 111, 0, 0, 19, 3,
-			95, 49, 52, 78, 117, 47, 6, 115, 14, 16, 50, 126, 47, 110, 126, 111, 0, 0, 16, 3, 95, 49, 55, 95, 117, 65, 50, 6, 134, 47,
-			110, 126, 111, 0, 0, 17, 3, 95, 49, 54, 91, 122, 89, 47, 50, 6, 134, 47, 110, 126, 111, 0, 0, 0, 15, 3, 95, 55, 88, 95,
-			6, 36, 65, 112, 123, 95, 126, 47, 0, 0, 17, 3, 95, 52, 67, 78, 117, 47, 6, 115, 34, 38, 123, 89, 47, 35, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 195, 73, 68, 221, 73, 15, 3, 95, 53, 67, 48, 38, 4, 117, 111, 89, 6, 39, 47, 0, 0, 0, 0, 0,
-			7, 195, 36, 35, 192, 72, 8, 7, 195, 36, 35, 192, 72, 8, 0, 11, 3, 95, 49, 102, 39, 72, 50, 6, 35, 0, 0, 0, 4, 193,
-			160, 72, 0, 15, 3, 95, 54, 67, 91, 4, 122, 95, 111, 89, 6, 39, 47, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 102, 72, 84,
-			38, 6, 36, 0, 0, 0, 14, 3, 95, 50, 88, 72, 84, 6, 134, 47, 110, 126, 111, 0, 0, 15, 5, 95, 48, 77, 65, 49, 47, 6,
-			115, 95, 117, 78, 37, 0, 14, 3, 95, 55, 67, 95, 4, 117, 65, 89, 6, 39, 47, 0, 0, 0, 19, 5, 95, 48, 77, 65, 51, 113,
-			4, 117, 55, 117, 38, 6, 35, 34, 72, 35, 0, 0, 18, 5, 95, 48, 77, 65, 50, 113, 4, 117, 55, 117, 38, 6, 39, 50, 35, 0,
-			0, 0, 0, 0, 0, 8, 197, 72, 211, 199, 24, 208, 73, 15, 3, 95, 56, 67, 84, 127, 95, 117, 65, 89, 6, 39, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 13, 3, 95, 52, 88, 89, 6, 39, 14, 16, 127, 49, 0, 0, 15, 3, 95, 57, 67, 72, 36, 84, 38, 126, 110,
-			6, 39, 47, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 53, 88, 48, 38, 126, 112, 112, 117, 95, 6, 120, 47, 0, 0, 0, 0,
-			0, 0, 0, 0, 7, 65, 36, 37, 0, 72, 8, 0, 16, 3, 95, 54, 88, 91, 123, 94, 112, 112, 117, 95, 6, 120, 47, 0, 0, 6,
-			195, 9, 196, 221, 73, 0, 6, 195, 72, 211, 196, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56,
-			88, 84, 6, 39, 95, 123, 65, 112, 123, 95, 126, 47, 0, 0, 0, 0, 7, 196, 72, 211, 216, 116, 73, 0, 0, 0, 0, 0, 17, 3,
-			95, 57, 88, 112, 123, 84, 38, 117, 50, 6, 39, 89, 47, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 64, 240, 156, 140,
-			75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 9, 195, 15, 73, 5, 194, 61, 48,
-			72, 0, 0, 0, 0, 8, 197, 72, 211, 196, 81, 48, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 48, 77,
-			50, 113, 4, 117, 55, 117, 38, 6, 39, 50, 39, 83, 0, 0, 19, 4, 95, 48, 77, 51, 113, 4, 117, 55, 117, 38, 6, 35, 34, 72,
-			39, 83, 0, 0, 0, 13, 4, 95, 48, 77, 49, 47, 6, 115, 95, 126, 78, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 35, 92, 73,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68, 68, 17, 73, 60, 34, 6, 35, 112, 117, 39, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 194, 171, 6,
-			39, 47, 49, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 241, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
-			3, 95, 194, 187, 88, 6, 35, 49, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 88, 244, 224, 66, 8,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 52, 241, 198, 76, 96, 73,
-			0, 0, 7, 65, 72, 121, 89, 0, 49, 6, 65, 72, 89, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3,
-			95, 209, 129, 121, 89, 0, 7, 196, 9, 65, 84, 76, 73, 0, 0, 0, 0, 9, 198, 64, 240, 148, 21, 68, 192, 74, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 211, 199, 25, 49, 128, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 80, 40, 0, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 12, 60, 74, 0, 0, 7, 196, 52, 241, 12, 36, 74, 8, 197,
-			64, 240, 156, 48, 240, 74, 0, 0, 0, 8, 3, 95, 208, 178, 84, 121, 0, 0, 0, 0, 13, 2, 95, 34, 49, 126, 84, 6, 115, 78,
-			49, 35, 0, 0, 12, 2, 95, 33, 84, 6, 39, 89, 49, 55, 38, 0, 0, 0, 14, 2, 95, 39, 35, 48, 6, 39, 89, 47, 34, 126,
-			83, 0, 0, 7, 196, 72, 211, 196, 140, 74, 0, 0, 0, 0, 0, 14, 2, 95, 41, 88, 6, 35, 49, 34, 49, 34, 40, 81, 0, 0,
-			14, 2, 95, 40, 6, 39, 47, 49, 34, 49, 34, 40, 81, 0, 0, 0, 8, 197, 72, 211, 196, 48, 144, 74, 11, 2, 95, 46, 47, 6,
-			39, 78, 49, 35, 0, 0, 11, 2, 95, 45, 72, 36, 83, 6, 37, 89, 0, 0, 8, 197, 72, 211, 196, 48, 240, 74, 13, 2, 95, 44,
+		static unsigned char espeakdata_dicts54_data[6158] = {
+			0, 4, 0, 0, 140, 10, 0, 0, 0, 0, 0, 0, 0, 4, 193, 4, 14, 5, 193, 4, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 65, 12, 84, 121, 0, 14, 6, 65, 12, 84, 0, 72, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 100, 112, 116, 9, 6, 37, 9,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 35, 34, 36, 91, 6, 121, 47, 49, 35, 0, 27,
+			0, 8, 197, 64, 240, 156, 77, 208, 74, 7, 65, 36, 37, 0, 72, 8, 11, 1, 36, 72, 6, 39, 55, 55, 35, 34, 0, 0, 13, 1,
+			37, 48, 34, 126, 110, 6, 121, 50, 47, 0, 27, 0, 14, 1, 38, 35, 65, 48, 36, 34, 89, 6, 35, 50, 72, 0, 0, 0, 0, 0,
+			12, 1, 42, 88, 84, 36, 88, 72, 6, 35, 0, 27, 0, 10, 1, 43, 48, 55, 6, 131, 89, 0, 27, 0, 0, 0, 0, 10, 1, 47,
+			89, 55, 6, 121, 91, 0, 27, 0, 6, 195, 25, 36, 198, 73, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 36, 221, 73, 0, 0, 0,
+			0, 0, 0, 9, 198, 64, 240, 148, 21, 68, 192, 74, 11, 1, 61, 34, 35, 84, 50, 6, 39, 0, 27, 0, 0, 0, 11, 1, 64, 89,
+			39, 71, 6, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65, 72, 121, 89, 0, 14, 6, 65, 72, 89, 0, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 6, 65, 80, 40, 0, 72, 0, 0, 0, 6, 195, 9, 195, 9, 73, 0, 0, 0, 0, 0, 0, 6, 195, 9,
+			195, 15, 73, 0, 0, 0, 8, 197, 72, 211, 199, 25, 48, 73, 13, 1, 92, 71, 121, 49, 89, 55, 6, 121, 91, 0, 27, 0, 0, 11,
+			1, 94, 49, 34, 6, 115, 91, 49, 35, 0, 0, 13, 1, 95, 48, 39, 72, 78, 6, 128, 34, 49, 0, 27, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 126, 47, 6,
+			37, 55, 72, 35, 0, 0, 0, 4, 193, 128, 72, 0, 0, 0, 7, 196, 9, 65, 70, 52, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 4, 193, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 9, 65, 84, 73, 0, 7, 196, 9, 65, 70,
+			76, 73, 0, 0, 0, 0, 0, 4, 193, 160, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 246, 29, 72, 0, 0,
+			0, 0, 0, 0, 6, 195, 52, 241, 35, 74, 0, 0, 0, 0, 0, 17, 5, 95, 100, 112, 116, 50, 10, 112, 117, 95, 6, 35, 47, 135,
+			101, 0, 0, 0, 0, 0, 6, 195, 52, 241, 20, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 72, 211, 199, 24, 208, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 9, 195, 0, 73, 0, 7, 196, 9, 65, 84, 76, 73, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 64, 240, 148, 20, 99, 64, 74, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 196, 97, 51, 194, 112, 8, 0, 8, 197, 9, 65, 70, 76, 96, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 197, 72, 211, 196, 48, 144, 74, 12, 3, 226, 132, 150, 50, 6, 39, 65, 36, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 9, 196, 221, 73, 0, 0, 0, 9, 198, 64, 240, 148, 20,
+			102, 93, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 73, 68, 221, 73, 0, 0, 0, 0, 0, 6, 195, 72, 211, 196, 73, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 20, 200, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 47, 34, 38, 6, 37, 47, 110, 126, 111, 0, 0, 10, 3, 95,
+			48, 67, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 95, 49, 57, 112, 123, 84, 38,
+			117, 47, 50, 6, 134, 47, 110, 126, 111, 0, 0, 18, 3, 95, 49, 56, 84, 127, 95, 117, 65, 50, 6, 134, 47, 110, 126, 111, 0, 0,
+			14, 3, 95, 50, 67, 72, 84, 38, 6, 36, 95, 111, 117, 0, 0, 8, 197, 72, 211, 196, 48, 240, 74, 0, 0, 0, 0, 0, 17, 3,
+			95, 49, 49, 127, 112, 6, 37, 50, 50, 126, 47, 110, 126, 111, 0, 0, 12, 3, 95, 49, 48, 112, 6, 36, 95, 117, 111, 0, 0, 14,
+			3, 95, 51, 67, 47, 34, 38, 6, 37, 89, 47, 35, 0, 17, 3, 95, 49, 51, 47, 51, 38, 117, 50, 6, 134, 47, 110, 126, 111, 0,
+			0, 17, 3, 95, 49, 50, 72, 84, 38, 117, 50, 6, 134, 47, 110, 126, 111, 0, 0, 17, 3, 95, 49, 53, 48, 38, 117, 47, 50, 6,
+			134, 47, 110, 126, 111, 0, 0, 20, 3, 95, 49, 52, 110, 38, 117, 47, 6, 115, 14, 16, 50, 126, 47, 110, 126, 111, 0, 0, 16, 3,
+			95, 49, 55, 95, 117, 65, 50, 6, 134, 47, 110, 126, 111, 0, 0, 17, 3, 95, 49, 54, 91, 122, 89, 47, 50, 6, 134, 47, 110, 126,
+			111, 0, 0, 0, 15, 3, 95, 55, 88, 95, 6, 36, 65, 112, 123, 95, 126, 47, 0, 0, 7, 196, 52, 241, 12, 36, 74, 18, 3, 95,
+			52, 67, 110, 38, 117, 47, 6, 115, 34, 38, 123, 89, 47, 35, 0, 0, 0, 9, 198, 64, 240, 148, 20, 100, 192, 74, 0, 0, 0, 0,
+			0, 0, 9, 198, 64, 240, 148, 20, 100, 198, 74, 15, 3, 95, 53, 67, 48, 38, 4, 117, 111, 89, 6, 39, 47, 0, 0, 0, 0, 0,
+			0, 11, 3, 95, 49, 102, 39, 72, 50, 6, 35, 0, 0, 0, 0, 15, 3, 95, 54, 67, 91, 4, 122, 95, 111, 89, 6, 39, 47, 0,
+			0, 0, 0, 0, 0, 11, 3, 95, 50, 102, 72, 84, 38, 6, 36, 0, 0, 0, 14, 3, 95, 50, 88, 72, 84, 6, 134, 47, 110, 126,
+			111, 0, 0, 7, 196, 52, 241, 12, 60, 74, 16, 5, 95, 48, 77, 65, 49, 47, 6, 115, 95, 117, 110, 38, 37, 0, 14, 3, 95, 55,
+			67, 95, 4, 117, 65, 89, 6, 39, 47, 0, 0, 0, 19, 5, 95, 48, 77, 65, 51, 113, 4, 117, 55, 117, 38, 6, 35, 34, 72, 35,
+			0, 0, 18, 5, 95, 48, 77, 65, 50, 113, 4, 117, 55, 117, 38, 6, 39, 50, 35, 0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 67,
+			84, 127, 95, 117, 65, 89, 6, 39, 47, 0, 0, 0, 0, 0, 0, 8, 197, 52, 241, 198, 76, 96, 73, 0, 0, 13, 3, 95, 52, 88,
+			89, 6, 39, 14, 16, 127, 49, 0, 0, 15, 3, 95, 57, 67, 72, 36, 84, 38, 126, 110, 6, 39, 47, 0, 0, 0, 0, 0, 0, 0,
+			0, 16, 3, 95, 53, 88, 48, 38, 126, 112, 112, 117, 95, 6, 120, 47, 0, 0, 7, 196, 64, 240, 156, 48, 73, 0, 0, 0, 0, 0,
+			0, 0, 16, 3, 95, 54, 88, 91, 123, 94, 112, 112, 117, 95, 6, 120, 47, 0, 0, 0, 8, 197, 72, 211, 196, 81, 48, 73, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56, 88, 84, 6, 39, 95, 123, 65, 112, 123, 95, 126, 47, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 57, 88, 112, 123, 84, 38, 117, 50, 6, 39, 89, 47, 127, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 20, 76, 73, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 61, 48, 72, 0, 0, 0, 0, 18, 4, 95, 48, 77, 50, 113, 4, 117, 55,
+			117, 38, 6, 39, 50, 39, 83, 0, 0, 19, 4, 95, 48, 77, 51, 113, 4, 117, 55, 117, 38, 6, 35, 34, 72, 39, 83, 0, 0, 0,
+			14, 4, 95, 48, 77, 49, 47, 6, 115, 95, 126, 110, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 64, 240, 156, 140, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 211, 199, 25,
+			151, 64, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 197, 9, 65, 70, 101, 208, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 194, 171,
+			6, 39, 47, 49, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 72, 211, 216, 116, 73, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 88, 244, 224, 66, 8, 0, 7, 196, 52, 241, 198, 52, 73, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 195, 52, 241, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 97, 51, 192, 91, 47, 39, 0, 72, 8, 0,
+			0, 0, 11, 3, 95, 194, 187, 88, 6, 35, 49, 34, 0, 0, 0, 0, 8, 197, 52, 241, 198, 101, 208, 73, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 198, 76, 73, 0, 0, 6, 194, 56, 240, 72, 8, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 195, 36, 35, 192, 72, 8, 7, 195, 36, 35, 192, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 95, 3, 84, 121, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 95, 18, 121, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 13, 2, 95, 34, 49, 126, 84, 6, 115, 78, 49, 35, 0, 0, 8, 197, 64, 240, 156, 48, 144, 74, 12, 2, 95,
+			33, 84, 6, 39, 89, 49, 55, 38, 0, 0, 0, 14, 2, 95, 39, 35, 48, 6, 39, 89, 47, 34, 126, 83, 0, 0, 0, 0, 0, 0,
+			0, 14, 2, 95, 41, 88, 6, 35, 49, 34, 49, 34, 40, 81, 0, 0, 14, 2, 95, 40, 6, 39, 47, 49, 34, 49, 34, 40, 81, 0,
+			0, 0, 11, 2, 95, 46, 47, 6, 39, 78, 49, 35, 0, 0, 11, 2, 95, 45, 72, 36, 83, 6, 37, 89, 0, 0, 13, 2, 95, 44,
 			88, 126, 48, 37, 47, 6, 35, 120, 0, 0, 10, 2, 95, 51, 47, 51, 38, 6, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 134, 0,
 			0, 11, 2, 95, 49, 39, 57, 112, 6, 37, 50, 0, 0, 10, 2, 95, 48, 50, 6, 39, 57, 61, 0, 0, 10, 2, 95, 55, 95, 6,
-			36, 57, 65, 0, 0, 6, 195, 25, 35, 93, 73, 10, 2, 95, 54, 91, 6, 121, 95, 111, 0, 0, 10, 2, 95, 53, 48, 38, 6, 120,
-			111, 0, 0, 13, 2, 95, 52, 78, 117, 47, 6, 115, 51, 38, 117, 0, 0, 13, 2, 95, 59, 47, 6, 39, 78, 49, 88, 35, 48, 0,
-			0, 15, 2, 95, 58, 72, 84, 126, 36, 47, 6, 39, 78, 37, 36, 0, 0, 11, 2, 95, 57, 112, 6, 36, 84, 119, 111, 0, 0, 11,
-			2, 95, 56, 84, 6, 39, 95, 123, 65, 0, 0, 12, 2, 95, 63, 84, 39, 48, 34, 6, 39, 89, 0, 0, 12, 2, 95, 62, 71, 6,
-			39, 55, 38, 91, 121, 0, 0, 0, 12, 2, 95, 60, 65, 6, 36, 50, 38, 91, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 91, 6, 39, 47, 49, 34, 49, 84, 35, 72, 34, 35,
-			47, 0, 0, 0, 0, 0, 0, 9, 198, 64, 240, 148, 20, 100, 192, 74, 0, 17, 2, 95, 93, 88, 6, 35, 49, 34, 49, 84, 35, 72,
-			34, 35, 47, 0, 0, 0, 0, 0, 0, 12, 2, 95, 96, 35, 49, 110, 6, 121, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 95, 123, 6, 39, 47, 49, 34, 83, 37, 81, 40, 34, 0, 0, 0, 0,
-			0, 0, 0, 15, 2, 95, 125, 88, 6, 35, 49, 34, 83, 37, 81, 40, 34, 0, 0, 10, 2, 95, 124, 84, 6, 36, 34, 47, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 9, 65, 70, 52, 73, 0, 0, 0, 0, 18, 5, 95, 49, 77, 65, 51, 113, 4, 117, 55, 117, 38, 6, 35, 34, 47, 0,
-			0, 17, 5, 95, 49, 77, 65, 50, 113, 4, 117, 55, 117, 38, 6, 39, 50, 0, 0, 15, 5, 95, 49, 77, 65, 49, 47, 6, 115, 95,
-			117, 78, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 64, 240, 148, 20, 99, 64, 74, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 241, 198, 52, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 17,
-			0, 4, 2, 32, 3, 35, 0, 8, 0, 8, 2, 32, 0, 4, 3, 126, 0, 1, 17, 66, 2, 32, 0, 7, 6, 1, 18, 0, 4, 2,
-			32, 3, 48, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209,
-			130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209,
-			140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 135, 0, 2, 209, 137, 0, 4, 2, 208, 191, 17, 71, 3, 48, 38, 0, 2, 208, 191, 209,
-			140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0,
-			2, 209, 140, 32, 0, 3, 71, 0, 4, 2, 17, 71, 3, 71, 38, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0,
-			2, 208, 177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0,
-			2, 208, 178, 17, 71, 0, 2, 208, 178, 209, 140, 0, 2, 208, 188, 17, 71, 0, 2, 208, 188, 209, 140, 0, 2, 209, 140, 0, 8, 2,
-			32, 3, 71, 121, 0, 7, 6, 1, 19, 0, 4, 2, 32, 3, 83, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 209,
-			129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209,
-			133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 135, 0, 2, 209, 137, 0, 4, 2,
-			208, 191, 39, 3, 83, 38, 0, 2, 209, 132, 39, 0, 2, 209, 140, 32, 0, 3, 84, 0, 4, 2, 17, 71, 3, 84, 38, 0, 2, 208,
-			177, 17, 71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 178, 17, 71, 0, 2, 208, 178, 208, 177, 17, 71, 0, 2, 208, 178, 208, 177, 209,
-			140, 0, 2, 208, 178, 208, 188, 17, 71, 0, 2, 208, 178, 208, 188, 209, 140, 0, 2, 208, 178, 209, 140, 0, 2, 208, 188, 17, 71, 0,
-			2, 208, 188, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 84, 121, 0, 7, 6, 1, 20, 0, 4, 2, 32, 3, 49, 0, 2, 208,
-			191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209,
-			130, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209,
-			140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0,
-			4, 3, 81, 0, 8, 190, 208, 189, 208, 188, 208, 2, 208, 190, 32, 0, 4, 2, 17, 71, 3, 81, 38, 0, 2, 209, 140, 0, 8, 2,
-			32, 3, 81, 121, 0, 4, 1, 181, 208, 2, 208, 190, 209, 129, 209, 143, 32, 3, 84, 0, 1, 181, 208, 17, 67, 2, 208, 190, 32, 0,
-			1, 190, 208, 17, 67, 2, 208, 190, 32, 0, 8, 181, 208, 2, 208, 190, 32, 0, 8, 181, 208, 129, 209, 2, 208, 190, 0, 8, 181, 208,
-			129, 209, 178, 208, 2, 208, 190, 32, 0, 8, 181, 208, 189, 208, 2, 208, 190, 32, 0, 8, 181, 208, 190, 208, 178, 208, 130, 209, 2, 208,
-			190, 32, 0, 8, 181, 208, 190, 208, 188, 208, 2, 208, 190, 32, 0, 2, 208, 186, 3, 101, 0, 7, 6, 1, 21, 0, 4, 2, 32, 3,
-			47, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17,
-			71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 133, 17, 71, 0,
-			2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 3, 72, 0, 8, 2, 32, 3, 72,
-			121, 0, 4, 2, 209, 129, 17, 71, 3, 111, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2,
-			209, 140, 32, 0, 4, 2, 17, 66, 3, 112, 0, 2, 17, 71, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183,
-			17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 189, 209, 140, 0, 2, 209, 140, 0, 7, 6, 1, 22, 0, 3, 36, 0, 4, 1, 17,
-			65, 3, 57, 36, 0, 1, 138, 209, 0, 1, 140, 209, 0, 8, 2, 32, 0, 4, 1, 17, 65, 2, 32, 3, 57, 119, 0, 1, 138, 209,
-			2, 32, 0, 1, 140, 209, 2, 32, 0, 8, 0, 4, 1, 130, 209, 2, 209, 129, 209, 130, 3, 125, 0, 1, 130, 209, 128, 209, 176, 208,
-			177, 208, 2, 209, 128, 0, 1, 130, 209, 142, 209, 140, 209, 191, 208, 188, 208, 190, 208, 186, 208, 2, 209, 128, 0, 1, 130, 209, 186, 208,
-			176, 208, 177, 208, 2, 209, 128, 0, 1, 130, 209, 189, 208, 184, 208, 2, 209, 128, 0, 7, 6, 1, 23, 0, 3, 90, 0, 8, 2, 32,
-			3, 90, 121, 0, 4, 2, 32, 3, 91, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208,
-			191, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209,
-			132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 133, 17,
-			71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 209, 135, 3, 97, 0, 7,
-			6, 1, 24, 0, 3, 88, 0, 8, 2, 32, 3, 88, 121, 0, 4, 2, 32, 3, 89, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209,
-			140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209,
-			132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208,
-			186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 137, 0, 2, 208, 182, 3, 90, 0, 2, 209, 136, 3, 91, 0, 4, 2, 17, 71,
-			3, 94, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 208, 180, 17, 71, 0, 2,
-			208, 183, 208, 180, 209, 140, 0, 2, 208, 183, 208, 189, 17, 66, 0, 2, 208, 183, 208, 189, 17, 71, 0, 2, 208, 183, 208, 189, 209, 140,
-			0, 2, 208, 183, 209, 140, 0, 2, 208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209, 140, 0, 4,
-			2, 208, 183, 17, 71, 32, 3, 95, 0, 2, 208, 183, 208, 180, 17, 71, 32, 0, 2, 208, 183, 208, 180, 209, 140, 32, 0, 2, 208, 183,
-			208, 189, 17, 66, 32, 0, 2, 208, 183, 208, 189, 17, 71, 32, 0, 2, 208, 183, 208, 189, 209, 140, 32, 0, 2, 208, 183, 209, 140, 32,
-			0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 4, 209, 135, 3, 97,
-			0, 209, 137, 0, 7, 6, 1, 25, 0, 4, 3, 37, 0, 8, 2, 32, 0, 4, 1, 17, 68, 3, 115, 0, 1, 136, 209, 0, 1, 182,
-			208, 0, 4, 2, 32, 3, 117, 0, 8, 0, 7, 6, 1, 26, 0, 8, 2, 32, 3, 4, 37, 6, 49, 14, 16, 6, 134, 47, 49, 127,
-			57, 117, 0, 3, 57, 0, 7, 6, 1, 27, 0, 3, 49, 0, 4, 2, 17, 71, 3, 49, 38, 0, 2, 209, 140, 0, 8, 2, 32, 3,
-			49, 134, 0, 4, 2, 208, 177, 3, 81, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17,
-			71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0,
-			2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 7, 6, 1, 28, 0, 3, 55, 0, 2, 17,
-			71, 3, 61, 0, 8, 2, 32, 3, 121, 61, 0, 7, 6, 1, 29, 0, 3, 65, 0, 4, 2, 17, 71, 3, 113, 0, 2, 208, 177, 17,
-			71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 178, 17, 71, 0, 2, 208, 178, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209,
-			140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0,
-			2, 209, 140, 0, 8, 2, 32, 3, 121, 65, 0, 7, 6, 1, 30, 0, 3, 50, 0, 208, 181, 1, 183, 208, 184, 208, 177, 208, 2, 209,
-			129, 3, 50, 125, 0, 2, 32, 3, 108, 0, 8, 2, 32, 3, 121, 108, 0, 7, 6, 1, 31, 0, 3, 39, 0, 7, 6, 1, 32, 0,
-			3, 48, 0, 4, 2, 17, 71, 3, 48, 38, 0, 2, 208, 188, 17, 71, 0, 2, 208, 188, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2,
-			208, 191, 208, 188, 17, 71, 0, 2, 208, 191, 208, 188, 209, 140, 0, 2, 208, 191, 209, 132, 17, 71, 0, 2, 208, 191, 209, 132, 209, 140,
-			0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2,
-			209, 132, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 48, 121, 0, 4, 2, 208, 177, 3, 71, 0, 2, 208, 179, 0, 2, 208, 179,
-			17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140,
-			0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 177, 39, 3, 71, 38, 0, 7,
-			6, 1, 33, 0, 3, 34, 0, 4, 2, 17, 66, 3, 34, 38, 0, 2, 17, 71, 0, 2, 209, 140, 3, 34, 114, 0, 8, 2, 32, 3,
-			121, 34, 0, 7, 6, 1, 34, 0, 4, 2, 208, 177, 3, 88, 0, 2, 208, 179, 0, 2, 208, 180, 0, 2, 208, 182, 0, 2, 208, 183,
-			0, 4, 3, 89, 0, 2, 209, 130, 209, 140, 0, 2, 208, 182, 3, 90, 0, 2, 209, 136, 3, 91, 0, 4, 2, 208, 180, 17, 66, 3,
-			94, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 4, 2, 17, 71,
-			3, 95, 0, 2, 208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129,
-			209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 140, 0, 2, 209, 137, 3, 95, 95, 0, 209, 135, 3, 97, 0, 8, 2, 32, 3, 121,
-			89, 0, 7, 6, 1, 35, 0, 3, 47, 0, 8, 2, 32, 3, 47, 121, 0, 4, 2, 208, 177, 3, 72, 0, 2, 208, 179, 0, 2, 208,
-			180, 0, 2, 208, 182, 0, 2, 208, 182, 0, 2, 208, 183, 0, 209, 129, 1, 17, 71, 3, 110, 0, 4, 2, 17, 71, 3, 111, 0, 2,
-			208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2,
-			209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 140, 0, 4, 2, 208, 180, 17, 66, 3, 112, 0, 2, 208, 180, 17, 71, 0,
-			2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 7, 6, 1, 36, 0, 4, 3, 40, 0, 8, 2, 32,
-			0, 1, 17, 66, 3, 129, 0, 7, 6, 1, 37, 0, 3, 83, 0, 4, 2, 17, 71, 3, 83, 38, 0, 2, 208, 188, 17, 71, 0, 2,
-			208, 188, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 208, 188, 17, 71, 0, 2, 208, 191, 208, 188, 209, 140, 0, 2, 208, 191,
-			209, 132, 17, 71, 0, 2, 208, 191, 209, 132, 209, 140, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 140,
-			0, 2, 209, 140, 0, 4, 2, 208, 177, 3, 84, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208,
-			180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208,
-			183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 177, 39, 3, 84, 38, 0, 8, 2, 32, 3, 121, 83, 0, 7, 6, 1, 38, 0,
-			4, 3, 101, 0, 2, 17, 71, 0, 2, 32, 208, 177, 209, 139, 0, 2, 208, 177, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178,
+			36, 57, 65, 0, 0, 10, 2, 95, 54, 91, 6, 121, 95, 111, 0, 0, 10, 2, 95, 53, 48, 38, 6, 120, 111, 0, 0, 13, 2, 95,
+			52, 78, 117, 47, 6, 115, 51, 38, 117, 0, 0, 13, 2, 95, 59, 47, 6, 39, 78, 49, 88, 35, 48, 0, 0, 15, 2, 95, 58, 72,
+			84, 126, 36, 47, 6, 39, 78, 37, 36, 0, 0, 11, 2, 95, 57, 112, 6, 36, 84, 119, 111, 0, 0, 11, 2, 95, 56, 84, 6, 39,
+			95, 123, 65, 0, 0, 12, 2, 95, 63, 84, 39, 48, 34, 6, 39, 89, 0, 0, 7, 196, 72, 211, 196, 80, 73, 12, 2, 95, 62, 71,
+			6, 39, 55, 38, 91, 121, 0, 0, 0, 12, 2, 95, 60, 65, 6, 36, 50, 38, 91, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 72, 211, 199, 25, 49, 128, 73, 0, 17, 2, 95, 91, 6,
+			39, 47, 49, 34, 49, 84, 35, 72, 34, 35, 47, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 93, 88, 6, 35, 49, 34, 49, 84, 35,
+			72, 34, 35, 47, 0, 0, 0, 0, 0, 0, 12, 2, 95, 96, 35, 49, 110, 6, 121, 50, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 95, 123, 6, 39, 47, 49, 34, 83, 37, 81, 40, 34, 0, 0, 0,
+			0, 0, 0, 0, 15, 2, 95, 125, 88, 6, 35, 49, 34, 83, 37, 81, 40, 34, 0, 0, 10, 2, 95, 124, 84, 6, 36, 34, 47, 0,
+			0, 0, 0, 8, 197, 64, 240, 156, 48, 240, 74, 0, 0, 0, 0, 0, 0, 0, 7, 196, 72, 211, 196, 140, 74, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 34, 64, 74, 0, 0, 0, 18, 5, 95,
+			49, 77, 65, 51, 113, 4, 117, 55, 117, 38, 6, 35, 34, 47, 0, 0, 17, 5, 95, 49, 77, 65, 50, 113, 4, 117, 55, 117, 38, 6,
+			39, 50, 0, 0, 16, 5, 95, 49, 77, 65, 49, 47, 6, 115, 95, 117, 110, 38, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 35, 93, 73, 0, 6, 195, 25, 35, 92, 73, 0, 13, 68, 68, 17,
+			73, 60, 34, 6, 35, 112, 117, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 64, 240, 148, 21, 64, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 1, 17, 0, 4, 2, 32, 3, 35, 0, 8, 0, 8, 2, 32, 0, 4, 3, 126, 0, 1, 17, 66, 2, 32, 0, 7, 6, 1, 18,
+			0, 4, 2, 32, 3, 48, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140,
+			0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133,
+			208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 135, 0, 2, 209, 137, 0, 4, 2, 208, 191, 17, 71, 3, 48, 38, 0, 2,
+			208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132,
+			209, 140, 0, 2, 209, 140, 32, 0, 3, 71, 0, 4, 2, 17, 71, 3, 71, 38, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178,
 			17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177,
-			209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2,
-			208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140,
-			0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 101, 134, 0, 7, 6, 1, 39, 0, 4,
-			2, 208, 177, 3, 72, 88, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2,
-			208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71,
-			0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2,
-			208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 110, 0, 8, 2, 32, 3, 110, 121, 0, 7,
-			6, 1, 40, 0, 1, 131, 209, 187, 208, 2, 209, 136, 208, 181, 3, 47, 0, 4, 2, 208, 177, 3, 77, 0, 2, 208, 177, 17, 71, 0,
-			2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209,
-			140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208,
-			180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0,
-			2, 208, 183, 209, 140, 0, 3, 78, 0, 8, 2, 32, 3, 78, 36, 0, 4, 1, 131, 209, 186, 208, 129, 209, 2, 208, 189, 3, 91, 0,
-			1, 143, 209, 130, 209, 129, 209, 131, 209, 191, 208, 2, 208, 189, 0, 1, 181, 208, 128, 209, 190, 208, 178, 208, 186, 208, 129, 209, 2, 208,
-			189, 0, 1, 181, 208, 189, 208, 190, 208, 186, 208, 2, 208, 189, 208, 190, 0, 1, 184, 208, 143, 209, 2, 208, 189, 208, 184, 0, 1, 184,
-			208, 178, 208, 181, 208, 180, 208, 2, 208, 189, 0, 2, 208, 189, 208, 176, 32, 0, 2, 208, 189, 208, 181, 32, 0, 2, 208, 189, 208, 190,
-			208, 185, 32, 0, 2, 208, 189, 209, 131, 32, 0, 2, 208, 189, 209, 139, 32, 0, 8, 2, 209, 130, 208, 190, 0, 7, 6, 1, 41, 0,
-			4, 2, 208, 177, 3, 90, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2,
-			208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71,
-			0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2,
-			208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 91, 0, 8, 2, 32, 3, 91, 134, 0, 7,
-			6, 1, 42, 0, 4, 2, 208, 177, 3, 96, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178,
-			209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2,
+			209, 140, 0, 2, 208, 178, 17, 71, 0, 2, 208, 178, 209, 140, 0, 2, 208, 188, 17, 71, 0, 2, 208, 188, 209, 140, 0, 2, 209, 140,
+			0, 8, 2, 32, 3, 71, 121, 0, 7, 6, 1, 19, 0, 4, 2, 32, 3, 83, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140,
+			0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 133, 17, 71,
+			0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 135, 0, 2, 209, 137,
+			0, 4, 2, 208, 191, 39, 3, 83, 38, 0, 2, 209, 132, 39, 0, 2, 209, 140, 32, 0, 3, 84, 0, 4, 2, 17, 71, 3, 84, 38,
+			0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 178, 17, 71, 0, 2, 208, 178, 208, 177, 17, 71, 0, 2, 208, 178,
+			208, 177, 209, 140, 0, 2, 208, 178, 208, 188, 17, 71, 0, 2, 208, 178, 208, 188, 209, 140, 0, 2, 208, 178, 209, 140, 0, 2, 208, 188,
+			17, 71, 0, 2, 208, 188, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 84, 121, 0, 7, 6, 1, 20, 0, 4, 2, 32, 3, 49,
+			0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71,
+			0, 2, 209, 130, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2,
+			209, 132, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133,
+			209, 140, 0, 4, 3, 81, 0, 8, 190, 208, 189, 208, 188, 208, 2, 208, 190, 32, 0, 4, 2, 17, 71, 3, 81, 38, 0, 2, 209, 140,
+			0, 8, 2, 32, 3, 81, 121, 0, 4, 1, 181, 208, 2, 208, 190, 209, 129, 209, 143, 32, 3, 84, 0, 1, 181, 208, 17, 67, 2, 208,
+			190, 32, 0, 1, 190, 208, 17, 67, 2, 208, 190, 32, 0, 8, 181, 208, 2, 208, 190, 32, 0, 8, 181, 208, 129, 209, 2, 208, 190, 0,
+			8, 181, 208, 129, 209, 178, 208, 2, 208, 190, 32, 0, 8, 181, 208, 189, 208, 2, 208, 190, 32, 0, 8, 181, 208, 190, 208, 178, 208, 130,
+			209, 2, 208, 190, 32, 0, 8, 181, 208, 190, 208, 188, 208, 2, 208, 190, 32, 0, 2, 208, 186, 3, 101, 0, 7, 6, 1, 21, 0, 4,
+			2, 32, 3, 47, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2,
+			209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 133,
+			17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 3, 72, 0, 8, 2,
+			32, 3, 72, 121, 0, 4, 2, 209, 129, 17, 71, 3, 111, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209,
+			140, 0, 2, 209, 140, 32, 0, 4, 2, 17, 66, 3, 112, 0, 2, 17, 71, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0,
+			2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 189, 209, 140, 0, 2, 209, 140, 0, 7, 6, 1, 22, 0, 3, 36, 0,
+			4, 1, 17, 65, 3, 57, 36, 0, 1, 138, 209, 0, 1, 140, 209, 0, 8, 2, 32, 0, 4, 1, 17, 65, 2, 32, 3, 57, 119, 0,
+			1, 138, 209, 2, 32, 0, 1, 140, 209, 2, 32, 0, 8, 0, 4, 1, 130, 209, 2, 209, 129, 209, 130, 3, 125, 0, 1, 130, 209, 128,
+			209, 176, 208, 177, 208, 2, 209, 128, 0, 1, 130, 209, 142, 209, 140, 209, 191, 208, 188, 208, 190, 208, 186, 208, 2, 209, 128, 0, 1, 130,
+			209, 186, 208, 176, 208, 177, 208, 2, 209, 128, 0, 1, 130, 209, 189, 208, 184, 208, 2, 209, 128, 0, 7, 6, 1, 23, 0, 3, 90, 0,
+			8, 2, 32, 3, 90, 121, 0, 4, 2, 32, 3, 91, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 208, 191, 17, 71,
+			0, 2, 208, 191, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140,
+			0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2,
+			209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2, 209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 209, 135, 3,
+			97, 0, 7, 6, 1, 24, 0, 3, 88, 0, 8, 2, 32, 3, 88, 121, 0, 4, 2, 32, 3, 89, 0, 2, 208, 186, 17, 71, 0, 2,
+			208, 186, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71,
+			0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 133, 17, 71, 0, 2, 209, 133, 208, 186, 17, 71, 0, 2,
+			209, 133, 208, 186, 209, 140, 0, 2, 209, 133, 209, 140, 0, 2, 209, 137, 0, 2, 208, 182, 3, 90, 0, 2, 209, 136, 3, 91, 0, 4,
+			2, 17, 71, 3, 94, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 208, 180, 17,
+			71, 0, 2, 208, 183, 208, 180, 209, 140, 0, 2, 208, 183, 208, 189, 17, 66, 0, 2, 208, 183, 208, 189, 17, 71, 0, 2, 208, 183, 208,
+			189, 209, 140, 0, 2, 208, 183, 209, 140, 0, 2, 208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209,
+			140, 0, 4, 2, 208, 183, 17, 71, 32, 3, 95, 0, 2, 208, 183, 208, 180, 17, 71, 32, 0, 2, 208, 183, 208, 180, 209, 140, 32, 0,
+			2, 208, 183, 208, 189, 17, 66, 32, 0, 2, 208, 183, 208, 189, 17, 71, 32, 0, 2, 208, 183, 208, 189, 209, 140, 32, 0, 2, 208, 183,
+			209, 140, 32, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 4, 209,
+			135, 3, 97, 0, 209, 137, 0, 7, 6, 1, 25, 0, 4, 3, 37, 0, 8, 2, 32, 0, 4, 1, 17, 68, 3, 115, 0, 1, 136, 209,
+			0, 1, 182, 208, 0, 4, 2, 32, 3, 117, 0, 8, 0, 7, 6, 1, 26, 0, 8, 2, 32, 3, 4, 37, 6, 49, 14, 16, 6, 134,
+			47, 49, 127, 57, 117, 0, 3, 57, 0, 7, 6, 1, 27, 0, 3, 49, 0, 4, 2, 17, 71, 3, 49, 38, 0, 2, 209, 140, 0, 8,
+			2, 32, 3, 49, 134, 0, 4, 2, 208, 177, 3, 81, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2,
 			208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180,
-			209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 97, 0, 8, 2, 32, 3,
-			97, 120, 0, 7, 6, 1, 43, 0, 3, 0, 8, 2, 32, 3, 47, 84, 38, 6, 128, 14, 16, 72, 115, 57, 88, 50, 6, 134, 49, 0,
-			2, 17, 71, 3, 57, 0, 7, 6, 1, 44, 0, 4, 3, 115, 0, 8, 2, 32, 0, 7, 6, 1, 45, 0, 3, 0, 2, 17, 71, 3,
-			57, 0, 8, 2, 32, 3, 113, 6, 120, 49, 38, 116, 57, 88, 50, 6, 134, 49, 0, 7, 6, 1, 46, 0, 8, 2, 32, 3, 36, 0,
-			4, 2, 32, 3, 122, 0, 8, 0, 3, 123, 0, 7, 6, 1, 47, 0, 1, 131, 209, 180, 208, 181, 208, 187, 208, 129, 209, 2, 209, 137,
-			3, 0, 3, 130, 0, 4, 1, 17, 65, 3, 131, 0, 1, 138, 209, 0, 1, 140, 209, 0, 8, 0, 8, 2, 32, 0, 7, 6, 1, 48,
-			0, 4, 1, 17, 65, 3, 120, 0, 1, 17, 65, 2, 32, 0, 1, 138, 209, 0, 1, 138, 209, 2, 32, 0, 1, 140, 209, 0, 1, 140,
-			209, 2, 32, 0, 8, 0, 8, 2, 32, 0, 4, 3, 126, 0, 2, 32, 0, 7, 6, 1, 50, 0, 8, 3, 6, 57, 128, 0, 4, 1,
-			136, 209, 3, 6, 127, 0, 1, 182, 208, 0, 3, 6, 128, 0, 8, 2, 32, 3, 57, 128, 0, 7, 6, 0, 209, 150, 3, 37, 0, 209,
-			156, 3, 49, 57, 0, 209, 153, 3, 55, 57, 0, 209, 152, 3, 57, 0, 209, 151, 3, 57, 37, 0, 209, 148, 3, 57, 121, 0, 209, 158,
-			3, 58, 0, 36, 3, 72, 39, 55, 35, 34, 0, 209, 159, 3, 75, 0, 4, 209, 146, 3, 77, 0, 209, 147, 0, 209, 155, 3, 78, 0,
-			210, 145, 3, 81, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts56 = FileInMemory_createWithData (6217, reinterpret_cast<const char *> (&espeakdata_dicts56_data), 
-			U"espeak-1.48.04-source/espeak-data/ru_dict", 
+			209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 7, 6, 1, 28, 0, 3, 55,
+			0, 2, 17, 71, 3, 61, 0, 8, 2, 32, 3, 121, 61, 0, 7, 6, 1, 29, 0, 3, 65, 0, 4, 2, 17, 71, 3, 113, 0, 2,
+			208, 177, 17, 71, 0, 2, 208, 177, 209, 140, 0, 2, 208, 178, 17, 71, 0, 2, 208, 178, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2,
+			208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209, 140, 0, 2, 209, 132,
+			209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 121, 65, 0, 7, 6, 1, 30, 0, 3, 50, 0, 208, 181, 1, 183, 208, 184, 208, 177,
+			208, 2, 209, 129, 3, 50, 125, 0, 2, 32, 3, 108, 0, 8, 2, 32, 3, 121, 108, 0, 7, 6, 1, 31, 0, 3, 39, 0, 7, 6,
+			1, 32, 0, 3, 48, 0, 4, 2, 17, 71, 3, 48, 38, 0, 2, 208, 188, 17, 71, 0, 2, 208, 188, 209, 140, 0, 2, 208, 191, 17,
+			71, 0, 2, 208, 191, 208, 188, 17, 71, 0, 2, 208, 191, 208, 188, 209, 140, 0, 2, 208, 191, 209, 132, 17, 71, 0, 2, 208, 191, 209,
+			132, 209, 140, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 17, 71, 0, 2, 209, 132, 209, 132, 209,
+			140, 0, 2, 209, 132, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 48, 121, 0, 4, 2, 208, 177, 3, 71, 0, 2, 208, 179, 0,
+			2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208,
+			180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 177, 39, 3, 71,
+			38, 0, 7, 6, 1, 33, 0, 3, 34, 0, 4, 2, 17, 66, 3, 34, 38, 0, 2, 17, 71, 0, 2, 209, 140, 3, 34, 114, 0, 8,
+			2, 32, 3, 121, 34, 0, 7, 6, 1, 34, 0, 4, 2, 208, 177, 3, 88, 0, 2, 208, 179, 0, 2, 208, 180, 0, 2, 208, 182, 0,
+			2, 208, 183, 0, 4, 3, 89, 0, 2, 209, 130, 209, 140, 0, 2, 208, 182, 3, 90, 0, 2, 209, 136, 3, 91, 0, 4, 2, 208, 180,
+			17, 66, 3, 94, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 4,
+			2, 17, 71, 3, 95, 0, 2, 208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209, 129, 17, 71, 0,
+			2, 209, 129, 209, 140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 140, 0, 2, 209, 137, 3, 95, 95, 0, 209, 135, 3, 97, 0, 8, 2,
+			32, 3, 121, 89, 0, 7, 6, 1, 35, 0, 3, 47, 0, 8, 2, 32, 3, 47, 121, 0, 4, 2, 208, 177, 3, 72, 0, 2, 208, 179,
+			0, 2, 208, 180, 0, 2, 208, 182, 0, 2, 208, 182, 0, 2, 208, 183, 0, 209, 129, 1, 17, 71, 3, 110, 0, 4, 2, 17, 71, 3,
+			111, 0, 2, 208, 189, 17, 66, 0, 2, 208, 189, 17, 71, 0, 2, 208, 189, 209, 140, 0, 2, 209, 129, 17, 71, 0, 2, 209, 129, 209,
+			140, 0, 2, 209, 130, 17, 71, 0, 2, 209, 130, 209, 140, 0, 2, 209, 140, 0, 4, 2, 208, 180, 17, 66, 3, 112, 0, 2, 208, 180,
+			17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 7, 6, 1, 36, 0, 4, 3, 40, 0,
+			8, 2, 32, 0, 1, 17, 66, 3, 129, 0, 7, 6, 1, 37, 0, 3, 83, 0, 4, 2, 17, 71, 3, 83, 38, 0, 2, 208, 188, 17,
+			71, 0, 2, 208, 188, 209, 140, 0, 2, 208, 191, 17, 71, 0, 2, 208, 191, 208, 188, 17, 71, 0, 2, 208, 191, 208, 188, 209, 140, 0,
+			2, 208, 191, 209, 132, 17, 71, 0, 2, 208, 191, 209, 132, 209, 140, 0, 2, 208, 191, 209, 140, 0, 2, 209, 132, 17, 71, 0, 2, 209,
+			132, 209, 140, 0, 2, 209, 140, 0, 4, 2, 208, 177, 3, 84, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140,
+			0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183,
+			0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 2, 208, 177, 39, 3, 84, 38, 0, 8, 2, 32, 3, 121, 83, 0, 7, 6,
+			1, 38, 0, 4, 3, 101, 0, 2, 17, 71, 0, 2, 32, 208, 177, 209, 139, 0, 2, 208, 177, 0, 2, 208, 177, 17, 71, 0, 2, 208,
+			177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0,
+			2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17,
+			66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208,
+			183, 209, 140, 0, 2, 208, 186, 17, 71, 0, 2, 208, 186, 209, 140, 0, 2, 209, 140, 0, 8, 2, 32, 3, 101, 134, 0, 7, 6, 1,
+			39, 0, 4, 2, 208, 177, 3, 72, 88, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209,
+			140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208,
+			179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209,
+			140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 110, 0, 8, 2, 32, 3, 110,
+			121, 0, 7, 6, 1, 40, 0, 1, 131, 209, 187, 208, 2, 209, 136, 208, 181, 3, 47, 0, 4, 2, 208, 177, 3, 77, 0, 2, 208, 177,
+			17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177,
+			208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180,
+			0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183,
+			17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 78, 0, 8, 2, 32, 3, 78, 36, 0, 4, 1, 131, 209, 186, 208, 129, 209, 2, 208, 189,
+			3, 91, 0, 1, 143, 209, 130, 209, 129, 209, 131, 209, 191, 208, 2, 208, 189, 0, 1, 181, 208, 128, 209, 190, 208, 178, 208, 186, 208, 129,
+			209, 2, 208, 189, 0, 1, 181, 208, 189, 208, 190, 208, 186, 208, 2, 208, 189, 208, 190, 0, 1, 184, 208, 143, 209, 2, 208, 189, 208, 184,
+			0, 1, 184, 208, 178, 208, 181, 208, 180, 208, 2, 208, 189, 0, 2, 208, 189, 208, 176, 32, 0, 2, 208, 189, 208, 181, 32, 0, 2, 208,
+			189, 208, 190, 208, 185, 32, 0, 2, 208, 189, 209, 131, 32, 0, 2, 208, 189, 209, 139, 32, 0, 8, 2, 209, 130, 208, 190, 0, 7, 6,
+			1, 41, 0, 4, 2, 208, 177, 3, 90, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208, 177, 208, 178, 209,
+			140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208, 179, 0, 2, 208,
+			179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0, 2, 208, 180, 209,
+			140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 91, 0, 8, 2, 32, 3, 91,
+			134, 0, 7, 6, 1, 42, 0, 4, 2, 208, 177, 3, 96, 0, 2, 208, 177, 17, 71, 0, 2, 208, 177, 208, 178, 17, 71, 0, 2, 208,
+			177, 208, 178, 209, 140, 0, 2, 208, 177, 208, 188, 17, 71, 0, 2, 208, 177, 208, 188, 209, 140, 0, 2, 208, 177, 209, 140, 0, 2, 208,
+			179, 0, 2, 208, 179, 17, 71, 0, 2, 208, 179, 209, 140, 0, 2, 208, 180, 0, 2, 208, 180, 17, 66, 0, 2, 208, 180, 17, 71, 0,
+			2, 208, 180, 209, 140, 0, 2, 208, 182, 0, 2, 208, 183, 0, 2, 208, 183, 17, 71, 0, 2, 208, 183, 209, 140, 0, 3, 97, 0, 8,
+			2, 32, 3, 97, 120, 0, 7, 6, 1, 43, 0, 3, 0, 8, 2, 32, 3, 47, 84, 38, 6, 128, 14, 16, 72, 115, 57, 88, 50, 6,
+			134, 49, 0, 2, 17, 71, 3, 57, 0, 7, 6, 1, 44, 0, 4, 3, 115, 0, 8, 2, 32, 0, 7, 6, 1, 45, 0, 3, 0, 2,
+			17, 71, 3, 57, 0, 8, 2, 32, 3, 113, 6, 120, 49, 38, 116, 57, 88, 50, 6, 134, 49, 0, 7, 6, 1, 46, 0, 8, 2, 32,
+			3, 36, 0, 4, 2, 32, 3, 122, 0, 8, 0, 3, 123, 0, 7, 6, 1, 47, 0, 1, 131, 209, 180, 208, 181, 208, 187, 208, 129, 209,
+			2, 209, 137, 3, 0, 3, 130, 0, 4, 1, 17, 65, 3, 131, 0, 1, 138, 209, 0, 1, 140, 209, 0, 8, 0, 8, 2, 32, 0, 7,
+			6, 1, 48, 0, 4, 1, 17, 65, 3, 120, 0, 1, 17, 65, 2, 32, 0, 1, 138, 209, 0, 1, 138, 209, 2, 32, 0, 1, 140, 209,
+			0, 1, 140, 209, 2, 32, 0, 8, 0, 8, 2, 32, 0, 4, 3, 126, 0, 2, 32, 0, 7, 6, 1, 50, 0, 8, 3, 6, 57, 128,
+			0, 4, 1, 136, 209, 3, 6, 127, 0, 1, 182, 208, 0, 3, 6, 128, 0, 8, 2, 32, 3, 57, 128, 0, 7, 6, 0, 36, 3, 72,
+			39, 55, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts54 = FileInMemory_createWithData (6157, reinterpret_cast<const char *> (&espeakdata_dicts54_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ru_dict", 
 			U"ru");
-		my addItem_move (espeakdata_dicts56.move());
+		Collection_addItem (me.peek(), espeakdata_dicts54.transfer());
 
-		static unsigned char espeakdata_dicts57_data[4144] = {
-			0, 4, 0, 0, 59, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4,
-			95, 100, 112, 116, 72, 6, 35, 91, 13, 149, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 1, 33, 84,
-			6, 37, 91, 149, 13, 57, 4, 118, 34, 47, 13, 57, 13, 0, 0, 0, 0, 10, 1, 36, 72, 119, 62, 35, 34, 0, 27, 0, 13, 1,
-			37, 89, 37, 57, 13, 57, 13, 139, 13, 0, 27, 0, 0, 0, 0, 0, 16, 1, 42, 148, 89, 139, 13, 34, 37, 89, 49, 13, 57, 13,
-			0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 18, 143, 112, 114, 39, 97, 58, 115, 110, 97, 58, 114, 116, 44, 64, 106, 64, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 224, 183, 180, 49, 6, 40, 66, 140, 35, 55, 112, 57, 13, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5,
-			95, 48, 77, 50, 120, 55, 6, 35, 49, 91, 13, 57, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 17, 3, 95, 51, 57, 47, 6, 37, 89, 50, 13, 84, 4, 13, 57, 13, 0, 14, 3, 95, 50, 49, 84, 6, 37,
-			89, 37, 36, 49, 13, 0, 0, 13, 3, 95, 51, 56, 47, 6, 37, 89, 13, 139, 13, 0, 12, 3, 95, 50, 48, 84, 6, 37, 89, 89,
-			13, 0, 0, 16, 3, 95, 50, 51, 84, 6, 37, 89, 37, 47, 4, 40, 50, 13, 0, 0, 13, 5, 95, 48, 77, 49, 120, 6, 35, 107,
-			13, 89, 0, 16, 3, 95, 50, 50, 84, 6, 37, 89, 37, 72, 4, 36, 49, 13, 0, 0, 16, 3, 95, 50, 53, 84, 6, 37, 89, 37,
-			48, 4, 13, 107, 13, 0, 0, 18, 3, 95, 50, 52, 84, 6, 37, 89, 37, 107, 4, 13, 47, 13, 34, 13, 0, 0, 16, 3, 95, 50,
-			55, 84, 6, 37, 89, 37, 107, 4, 13, 47, 13, 0, 0, 16, 3, 95, 50, 54, 84, 6, 37, 89, 37, 107, 4, 13, 57, 13, 0, 0,
-			13, 3, 95, 51, 49, 47, 6, 37, 89, 36, 49, 13, 0, 0, 11, 3, 95, 51, 48, 47, 6, 37, 107, 13, 0, 0, 14, 3, 95, 51,
-			51, 47, 6, 37, 89, 47, 40, 50, 13, 0, 0, 14, 3, 95, 51, 50, 47, 6, 37, 89, 72, 36, 49, 13, 0, 0, 14, 3, 95, 51,
-			53, 47, 6, 37, 89, 48, 13, 107, 13, 0, 0, 17, 3, 95, 51, 52, 47, 6, 37, 89, 107, 13, 47, 4, 13, 34, 13, 0, 0, 14,
-			3, 95, 51, 55, 47, 6, 37, 89, 107, 13, 47, 13, 0, 0, 14, 3, 95, 51, 54, 47, 6, 37, 89, 107, 13, 57, 13, 0, 0, 0,
-			0, 0, 15, 5, 95, 48, 77, 51, 120, 49, 6, 119, 139, 37, 57, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 11, 3, 95, 54, 48, 107, 6, 148, 139, 13, 0, 0, 11, 3, 95, 48, 67, 89, 6, 37, 57, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 14, 3, 95, 55, 48, 107, 6, 148, 47, 47, 117, 84, 13, 0, 0, 13, 3, 95, 49, 67, 89, 6, 37, 57, 13, 57, 13, 0, 0,
-			0, 0, 0, 0, 0, 18, 3, 95, 49, 57, 72, 6, 35, 107, 13, 50, 4, 13, 84, 13, 57, 13, 0, 0, 15, 3, 95, 49, 56, 72,
-			6, 35, 107, 13, 4, 13, 139, 13, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 50, 57, 84, 6, 37, 89, 37, 50, 4, 13, 84,
-			13, 57, 13, 0, 15, 3, 95, 49, 49, 6, 36, 49, 39, 55, 4, 13, 107, 13, 0, 0, 15, 3, 95, 50, 56, 84, 6, 37, 89, 37,
-			4, 13, 139, 13, 0, 13, 3, 95, 49, 48, 72, 6, 35, 107, 13, 57, 13, 0, 0, 16, 3, 95, 49, 51, 72, 6, 35, 107, 13, 47,
-			4, 40, 50, 13, 0, 0, 13, 3, 95, 49, 50, 72, 6, 39, 55, 13, 107, 13, 0, 0, 16, 3, 95, 49, 53, 48, 6, 35, 107, 13,
-			62, 4, 39, 84, 13, 0, 0, 18, 3, 95, 49, 52, 72, 6, 35, 107, 13, 107, 4, 13, 47, 13, 34, 13, 0, 0, 16, 3, 95, 49,
-			55, 72, 6, 35, 107, 13, 107, 4, 13, 47, 13, 0, 0, 16, 3, 95, 49, 54, 72, 6, 35, 107, 13, 89, 4, 13, 57, 13, 0, 0,
-			0, 12, 3, 95, 55, 88, 107, 6, 148, 47, 47, 117, 0, 0, 0, 0, 0, 15, 3, 95, 48, 100, 71, 6, 37, 50, 72, 40, 84, 13,
-			37, 0, 0, 0, 0, 22, 3, 95, 52, 57, 107, 6, 35, 47, 13, 55, 4, 37, 89, 50, 13, 84, 4, 13, 57, 13, 0, 0, 18, 3,
-			95, 52, 56, 107, 6, 35, 47, 13, 55, 4, 37, 89, 13, 139, 13, 0, 0, 0, 0, 0, 12, 3, 95, 49, 100, 6, 36, 49, 35, 4,
-			37, 0, 0, 0, 0, 19, 3, 95, 52, 49, 107, 6, 35, 47, 13, 55, 4, 37, 89, 6, 36, 49, 13, 0, 0, 16, 3, 95, 52, 48,
-			107, 6, 35, 47, 13, 55, 4, 37, 107, 13, 0, 0, 19, 3, 95, 52, 51, 107, 6, 35, 47, 13, 55, 4, 37, 89, 47, 40, 50, 13,
-			0, 0, 19, 3, 95, 52, 50, 107, 6, 35, 47, 13, 55, 4, 37, 89, 72, 36, 49, 13, 0, 0, 19, 3, 95, 52, 53, 107, 6, 35,
-			47, 13, 55, 4, 37, 89, 48, 13, 107, 13, 0, 0, 22, 3, 95, 52, 52, 107, 6, 35, 47, 13, 55, 4, 37, 89, 107, 13, 47, 4,
-			13, 34, 13, 0, 13, 3, 95, 50, 100, 72, 6, 36, 49, 35, 4, 37, 0, 0, 19, 3, 95, 52, 55, 107, 6, 35, 47, 13, 55, 4,
-			37, 89, 107, 13, 47, 13, 0, 0, 19, 3, 95, 52, 54, 107, 6, 35, 47, 13, 55, 4, 37, 89, 107, 13, 57, 13, 0, 0, 0, 13,
-			3, 95, 53, 48, 48, 6, 35, 50, 13, 107, 13, 0, 0, 0, 0, 0, 12, 3, 95, 51, 100, 47, 6, 40, 50, 4, 37, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 14, 3, 95, 52, 100, 107, 6, 35, 47, 13, 34, 13, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3,
-			95, 53, 100, 48, 6, 35, 107, 13, 37, 0, 0, 0, 0, 0, 12, 3, 95, 56, 48, 6, 35, 89, 123, 84, 13, 0, 12, 3, 95, 53,
-			88, 48, 6, 35, 50, 13, 89, 0, 0, 0, 0, 0, 12, 3, 95, 54, 100, 107, 6, 35, 57, 13, 37, 0, 0, 0, 0, 0, 12, 3,
-			95, 57, 48, 6, 35, 50, 123, 84, 13, 0, 11, 3, 95, 54, 88, 107, 6, 148, 139, 13, 0, 0, 0, 0, 0, 12, 3, 95, 55, 100,
-			107, 6, 35, 47, 13, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 56, 100, 6, 35, 139, 13, 37, 0, 0, 0, 0, 0,
-			10, 3, 95, 56, 88, 6, 35, 89, 123, 0, 0, 0, 0, 0, 12, 3, 95, 57, 100, 50, 6, 35, 84, 13, 37, 0, 0, 0, 0, 0,
-			10, 3, 95, 57, 88, 6, 35, 50, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224, 183, 158,
-			147, 135, 0, 0, 9, 3, 224, 183, 159, 18, 55, 37, 0, 0, 8, 3, 224, 183, 156, 18, 39, 0, 0, 9, 3, 224, 183, 157, 147, 119,
-			12, 0, 0, 9, 3, 224, 183, 154, 147, 114, 12, 0, 0, 8, 3, 224, 183, 155, 147, 134, 0, 0, 9, 3, 224, 183, 152, 18, 34, 40,
-			0, 0, 8, 3, 224, 183, 153, 18, 36, 0, 0, 9, 3, 224, 183, 150, 147, 123, 12, 0, 0, 0, 8, 3, 224, 183, 148, 18, 40, 0,
-			0, 0, 8, 3, 224, 183, 146, 18, 37, 0, 0, 9, 3, 224, 183, 147, 147, 112, 12, 0, 0, 8, 3, 224, 183, 144, 18, 148, 0, 0,
-			9, 3, 224, 183, 145, 147, 117, 12, 0, 0, 0, 9, 3, 224, 183, 143, 147, 118, 12, 0, 0, 0, 0, 17, 3, 224, 182, 130, 6, 35,
-			50, 40, 89, 58, 118, 34, 13, 57, 13, 0, 0, 16, 3, 224, 182, 131, 6, 58, 37, 89, 35, 34, 81, 35, 57, 35, 0, 0, 0, 0,
-			8, 3, 224, 183, 134, 83, 13, 0, 0, 0, 8, 3, 224, 183, 132, 107, 13, 0, 0, 8, 3, 224, 183, 133, 62, 13, 0, 16, 4, 95,
-			48, 77, 52, 84, 6, 37, 55, 6, 37, 57, 13, 50, 0, 0, 8, 3, 224, 183, 130, 93, 13, 0, 0, 8, 3, 224, 183, 131, 89, 13,
-			0, 12, 4, 95, 48, 77, 50, 55, 6, 35, 49, 91, 0, 0, 8, 3, 224, 183, 128, 58, 13, 0, 12, 4, 95, 48, 77, 51, 49, 6,
-			119, 139, 37, 0, 0, 8, 3, 224, 183, 129, 91, 13, 0, 0, 8, 3, 224, 182, 182, 71, 13, 0, 13, 4, 95, 48, 77, 49, 72, 6,
-			35, 107, 13, 89, 0, 0, 8, 3, 224, 182, 183, 137, 13, 0, 0, 8, 3, 224, 182, 180, 48, 13, 0, 0, 8, 3, 224, 182, 181, 136,
-			13, 0, 0, 0, 9, 3, 224, 182, 179, 150, 72, 13, 0, 0, 8, 3, 224, 182, 176, 138, 13, 0, 0, 8, 3, 224, 182, 177, 50, 13,
-			0, 0, 8, 3, 224, 182, 174, 25, 13, 0, 0, 8, 3, 224, 182, 175, 72, 13, 0, 0, 9, 3, 224, 182, 172, 151, 140, 13, 0, 0,
-			8, 3, 224, 182, 173, 47, 13, 0, 0, 9, 3, 224, 183, 178, 147, 34, 123, 0, 8, 3, 224, 182, 170, 142, 13, 0, 0, 9, 3, 224,
-			183, 179, 147, 55, 112, 0, 8, 3, 224, 182, 171, 66, 13, 0, 0, 8, 3, 224, 182, 168, 141, 13, 0, 0, 8, 3, 224, 182, 169, 140,
-			13, 0, 0, 9, 3, 224, 182, 166, 152, 75, 13, 0, 0, 8, 3, 224, 182, 167, 139, 13, 0, 0, 8, 3, 224, 182, 164, 67, 13, 0,
-			0, 9, 3, 224, 182, 165, 81, 50, 13, 0, 0, 8, 3, 224, 182, 162, 75, 13, 0, 0, 8, 3, 224, 182, 163, 75, 28, 0, 0, 8,
-			3, 224, 182, 160, 76, 13, 0, 0, 8, 3, 224, 182, 161, 76, 28, 0, 0, 8, 3, 224, 182, 158, 68, 13, 0, 0, 9, 3, 224, 182,
-			159, 153, 81, 13, 0, 0, 8, 3, 224, 182, 156, 81, 13, 0, 0, 8, 3, 224, 182, 157, 146, 13, 0, 0, 8, 3, 224, 182, 154, 49,
-			13, 0, 0, 8, 3, 224, 182, 155, 145, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 224, 182, 189, 55, 13, 0, 0, 8, 3, 224, 182, 186, 57, 13, 0, 0, 8,
-			3, 224, 182, 187, 34, 13, 0, 0, 8, 3, 224, 182, 184, 65, 13, 0, 0, 9, 3, 224, 182, 185, 149, 71, 13, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 46, 47, 6, 37, 47, 13, 0, 0, 0, 12, 2, 95, 44, 49,
-			6, 39, 65, 118, 84, 13, 0, 0, 10, 2, 95, 51, 47, 6, 40, 50, 13, 0, 0, 10, 2, 95, 50, 72, 6, 36, 49, 13, 0, 0,
-			9, 2, 95, 49, 6, 36, 49, 13, 0, 0, 13, 2, 95, 48, 71, 6, 37, 50, 72, 40, 84, 13, 0, 0, 10, 2, 95, 55, 107, 6,
-			35, 47, 13, 0, 0, 10, 2, 95, 54, 107, 6, 35, 57, 13, 0, 0, 10, 2, 95, 53, 48, 6, 35, 107, 13, 0, 0, 12, 2, 95,
-			52, 107, 6, 35, 47, 13, 34, 13, 0, 0, 12, 2, 95, 59, 72, 6, 36, 47, 37, 47, 13, 0, 0, 16, 2, 95, 58, 47, 6, 37,
-			47, 49, 39, 65, 4, 118, 84, 13, 0, 0, 12, 2, 95, 57, 50, 6, 35, 84, 13, 57, 13, 0, 0, 9, 2, 95, 56, 6, 35, 139,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 31, 4, 95, 226, 128, 157, 6, 40, 138, 34, 40, 47, 4, 13, 48, 118, 141, 4, 13, 13, 58, 4, 13, 93, 118, 50, 4, 13, 57,
-			13, 0, 0, 29, 4, 95, 226, 128, 156, 6, 40, 72, 34, 40, 47, 4, 13, 48, 118, 139, 4, 13, 118, 34, 4, 13, 65, 71, 13, 57,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 224, 182,
-			154, 0, 224, 182, 155, 0, 224, 182, 156, 0, 224, 182, 157, 0, 224, 183, 132, 0, 7, 6, 18, 67, 224, 182, 160, 0, 224, 182, 161, 0,
-			224, 182, 162, 0, 224, 182, 163, 0, 224, 182, 166, 0, 7, 6, 18, 68, 224, 182, 167, 0, 224, 182, 168, 0, 224, 182, 169, 0, 224, 182,
-			170, 0, 7, 6, 1, 3, 0, 1, 138, 183, 224, 3, 6, 35, 50, 40, 93, 58, 4, 118, 34, 13, 57, 13, 0, 3, 65, 0, 2, 18,
-			68, 3, 66, 0, 2, 18, 67, 3, 67, 0, 2, 18, 66, 3, 68, 0, 7, 6, 1, 4, 0, 1, 138, 183, 224, 3, 58, 6, 37, 93,
-			13, 34, 81, 4, 13, 57, 13, 0, 4, 3, 107, 0, 0, 7, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7,
-			6, 1, 8, 0, 3, 148, 0, 7, 6, 1, 9, 0, 3, 117, 0, 7, 6, 1, 10, 0, 3, 37, 0, 7, 6, 1, 11, 0, 3, 112,
-			0, 7, 6, 1, 12, 0, 3, 40, 0, 7, 6, 1, 13, 0, 3, 123, 0, 7, 6, 1, 14, 0, 3, 34, 40, 0, 7, 6, 1, 15,
-			0, 3, 34, 123, 0, 7, 6, 1, 16, 0, 3, 55, 37, 0, 7, 6, 1, 17, 0, 3, 55, 112, 0, 7, 6, 1, 18, 0, 3, 36,
-			0, 7, 6, 1, 19, 0, 3, 114, 0, 7, 6, 1, 20, 0, 3, 134, 0, 7, 6, 1, 21, 0, 3, 39, 0, 7, 6, 1, 22, 0,
-			3, 119, 0, 7, 6, 1, 23, 0, 3, 135, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 28,
-			0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 29, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 30,
-			0, 2, 17, 66, 3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0, 7, 6, 1, 32,
-			0, 2, 17, 66, 3, 153, 81, 0, 3, 153, 81, 35, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 76, 0, 3, 76, 35, 0, 7, 6,
-			1, 34, 0, 2, 17, 66, 3, 76, 107, 0, 3, 76, 107, 35, 0, 7, 6, 1, 35, 0, 2, 17, 66, 3, 75, 0, 3, 75, 35, 0,
-			7, 6, 1, 36, 0, 2, 17, 66, 3, 75, 107, 0, 3, 75, 107, 35, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 67, 0, 3, 67,
-			35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 81, 50, 0, 3, 81, 50, 35, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 152, 75,
-			0, 3, 152, 75, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 41, 0, 2, 17, 66, 3,
-			141, 0, 3, 141, 35, 0, 7, 6, 1, 42, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3,
-			140, 0, 3, 140, 35, 0, 7, 6, 1, 44, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3,
-			151, 140, 0, 3, 151, 140, 35, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 47, 0, 2, 17,
-			66, 3, 25, 0, 3, 25, 35, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 49, 0, 2, 17,
-			66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 52, 0, 2, 17,
-			66, 3, 150, 72, 0, 3, 150, 72, 35, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 54, 0,
-			2, 17, 66, 3, 136, 0, 3, 136, 35, 0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 56, 0,
-			2, 17, 66, 3, 137, 0, 3, 137, 35, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 58, 0,
-			2, 17, 66, 3, 149, 71, 0, 3, 149, 71, 35, 0, 7, 6, 1, 59, 0, 2, 17, 66, 3, 57, 0, 3, 57, 35, 0, 7, 6, 1,
-			60, 0, 2, 17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 62, 0, 2, 17, 66, 3, 55, 0, 3, 55, 35, 0, 7, 6, 1,
-			65, 0, 4, 1, 21, 2, 32, 3, 58, 0, 2, 17, 66, 0, 4, 3, 58, 35, 0, 1, 138, 183, 224, 2, 32, 0, 7, 6, 1, 66,
-			0, 2, 17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 67, 0, 2, 17, 66, 3, 91, 0, 3, 91, 35, 0, 7, 6, 1, 68,
-			0, 2, 17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 69, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 70,
-			0, 2, 17, 66, 3, 62, 0, 3, 62, 35, 0, 7, 6, 1, 71, 0, 2, 17, 66, 3, 83, 0, 3, 83, 35, 0, 7, 6, 1, 75,
-			0, 1, 17, 67, 3, 0, 3, 107, 6, 35, 55, 49, 6, 37, 34, 37, 149, 13, 0, 7, 6, 1, 80, 0, 3, 6, 148, 55, 13, 48,
-			4, 37, 55, 55, 13, 0, 1, 17, 67, 3, 118, 0, 7, 6, 1, 81, 0, 3, 6, 148, 72, 13, 57, 13, 0, 1, 17, 67, 3, 148,
-			0, 7, 6, 1, 82, 0, 3, 72, 6, 112, 34, 81, 13, 4, 148, 72, 13, 57, 13, 0, 1, 17, 67, 3, 117, 0, 7, 6, 1, 83,
-			0, 3, 6, 37, 89, 48, 37, 55, 55, 13, 0, 1, 17, 67, 3, 37, 0, 7, 6, 1, 84, 0, 3, 72, 6, 112, 34, 81, 13, 4,
-			37, 89, 48, 37, 55, 55, 13, 0, 1, 17, 67, 3, 112, 0, 7, 6, 1, 85, 0, 1, 17, 67, 3, 40, 0, 3, 48, 6, 118, 48,
-			37, 55, 55, 13, 0, 7, 6, 1, 87, 0, 3, 72, 6, 112, 34, 81, 13, 48, 4, 118, 48, 37, 55, 55, 13, 0, 1, 17, 67, 3,
-			123, 0, 7, 6, 1, 89, 0, 1, 17, 67, 3, 34, 40, 0, 3, 81, 6, 148, 139, 13, 48, 4, 37, 55, 55, 13, 0, 7, 6, 1,
-			90, 0, 1, 17, 67, 3, 36, 0, 3, 49, 6, 39, 65, 71, 40, 84, 13, 0, 7, 6, 1, 92, 0, 3, 49, 6, 39, 65, 71, 40,
-			72, 4, 36, 49, 13, 0, 1, 17, 67, 3, 134, 0, 7, 6, 1, 95, 0, 3, 81, 6, 35, 57, 35, 50, 4, 40, 49, 37, 47, 47,
-			13, 0, 1, 17, 67, 3, 135, 0, 7, 6, 224, 183, 0, 178, 3, 34, 123, 0, 156, 3, 39, 0, 159, 3, 55, 37, 0, 179, 3, 55,
-			112, 0, 154, 3, 114, 0, 157, 3, 119, 0, 7, 6, 0, 122, 224, 183, 131, 2, 17, 66, 3, 88, 0, 122, 224, 183, 131, 3, 88, 35,
-			0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts57 = FileInMemory_createWithData (4143, reinterpret_cast<const char *> (&espeakdata_dicts57_data), 
-			U"espeak-1.48.04-source/espeak-data/si_dict", 
+		static unsigned char espeakdata_dicts55_data[2251] = {
+			0, 4, 0, 0, 171, 7, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 12, 0, 0, 0, 0, 0, 7, 65, 8, 71, 35, 12, 0,
+			0, 0, 0, 0, 7, 65, 12, 80, 35, 12, 0, 0, 0, 0, 0, 7, 65, 16, 72, 35, 12, 0, 0, 0, 0, 0, 6, 65, 20, 36,
+			12, 0, 0, 0, 0, 0, 7, 65, 24, 83, 35, 12, 0, 0, 0, 0, 0, 7, 65, 28, 81, 35, 12, 0, 0, 0, 0, 0, 7, 65,
+			32, 107, 35, 12, 0, 0, 0, 0, 0, 6, 65, 36, 37, 12, 0, 0, 0, 0, 0, 7, 65, 40, 75, 35, 12, 0, 0, 0, 0, 0,
+			7, 65, 44, 49, 35, 12, 0, 0, 0, 0, 0, 7, 65, 48, 55, 35, 12, 0, 0, 0, 0, 0, 7, 65, 52, 65, 35, 12, 0, 0,
+			0, 0, 0, 10, 5, 95, 48, 1, 14, 4, 50, 35, 0, 7, 65, 56, 50, 35, 12, 0, 0, 0, 0, 0, 6, 65, 60, 39, 12, 0,
+			0, 0, 0, 0, 7, 65, 64, 48, 35, 12, 0, 0, 0, 0, 0, 8, 65, 68, 49, 58, 35, 12, 0, 0, 0, 0, 0, 7, 65, 72,
+			16, 35, 12, 0, 0, 0, 0, 0, 7, 65, 76, 89, 35, 12, 0, 0, 0, 0, 0, 7, 65, 80, 47, 35, 12, 0, 0, 0, 0, 0,
+			6, 65, 84, 40, 12, 0, 0, 0, 0, 0, 7, 65, 88, 84, 35, 12, 0, 0, 0, 0, 0, 7, 65, 92, 58, 35, 12, 0, 0, 0,
+			0, 0, 16, 4, 95, 49, 77, 49, 37, 79, 37, 107, 6, 40, 65, 71, 37, 0, 7, 65, 96, 36, 49, 89, 0, 0, 20, 4, 95, 49,
+			77, 50, 65, 37, 55, 37, 57, 6, 39, 50, 6, 37, 65, 58, 36, 0, 0, 0, 0, 7, 65, 100, 57, 35, 12, 0, 0, 0, 0, 0,
+			7, 65, 104, 88, 35, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 23, 4, 95, 50, 77, 49, 37, 82, 37, 107, 6, 40, 65, 71, 37, 71, 37, 82, 6, 37, 16, 37, 0, 0, 22, 4, 95,
+			50, 77, 50, 65, 37, 55, 37, 57, 6, 39, 50, 36, 82, 57, 6, 37, 16, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 4, 16, 20, 10, 50, 37, 82, 6, 37, 76, 36, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 23, 4, 95, 51, 77, 49, 37, 82, 37, 107, 6, 40, 65, 71, 37, 71, 37, 47, 6, 35, 47, 40, 0,
+			0, 21, 4, 95, 51, 77, 50, 65, 37, 55, 37, 57, 6, 39, 50, 36, 91, 6, 35, 47, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4,
+			95, 53, 77, 49, 37, 82, 37, 107, 6, 40, 65, 71, 37, 71, 37, 47, 6, 35, 50, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95,
+			51, 88, 65, 37, 16, 4, 39, 68, 81, 58, 37, 47, 6, 35, 47, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49,
+			67, 37, 75, 6, 35, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 50, 67, 65, 35, 81, 4, 35, 50, 35, 82, 6,
+			37, 16, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 51, 67, 65, 35, 81, 4, 35, 50, 35, 47, 6, 35, 47, 40, 0,
+			0, 0, 0, 26, 4, 95, 54, 77, 49, 37, 82, 37, 107, 6, 40, 65, 71, 37, 71, 37, 47, 35, 50, 72, 6, 35, 47, 40, 0, 0,
+			0, 0, 0, 22, 3, 95, 55, 88, 65, 37, 16, 4, 39, 68, 81, 58, 37, 16, 6, 37, 50, 72, 58, 37, 0, 0, 16, 3, 95, 52,
+			67, 65, 35, 81, 4, 35, 50, 6, 35, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 53, 67, 65, 35, 81, 4, 35,
+			50, 35, 47, 6, 35, 50, 40, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 88, 37, 76, 6, 40, 65, 37, 0, 0, 21, 3,
+			95, 54, 67, 65, 35, 81, 4, 35, 50, 35, 47, 35, 50, 72, 6, 35, 47, 40, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 50,
+			88, 65, 35, 49, 40, 65, 57, 35, 82, 6, 37, 16, 37, 0, 0, 20, 3, 95, 55, 67, 65, 35, 81, 4, 35, 50, 35, 16, 6, 37,
+			50, 72, 58, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 56, 67, 65, 35, 81, 4, 35, 50, 37, 50, 6, 35, 50, 37,
+			0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 52, 88, 65, 37, 16, 4, 39, 68, 81, 58, 6, 37, 50, 36, 0, 0, 20, 3, 95,
+			57, 67, 65, 35, 81, 4, 35, 50, 35, 49, 57, 6, 36, 50, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 53, 88, 65,
+			37, 16, 4, 39, 68, 81, 58, 37, 47, 6, 35, 50, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3, 95, 54, 88, 65, 37, 16,
+			4, 39, 68, 81, 37, 47, 35, 50, 72, 6, 35, 47, 40, 0, 0, 0, 0, 0, 25, 4, 95, 55, 77, 49, 37, 82, 37, 107, 6, 40,
+			65, 71, 37, 71, 37, 16, 6, 37, 50, 72, 58, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 56, 88,
+			65, 37, 16, 4, 39, 68, 81, 58, 37, 50, 6, 35, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 57, 88, 65, 37,
+			16, 4, 39, 68, 81, 58, 36, 57, 6, 36, 50, 72, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4,
+			95, 48, 77, 50, 65, 37, 55, 37, 57, 6, 39, 50, 37, 0, 0, 0, 0, 16, 4, 95, 48, 77, 49, 37, 82, 37, 107, 6, 40, 65,
+			71, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 52, 77, 50, 65, 4, 37, 55, 37, 57, 6,
+			39, 50, 6, 36, 67, 36, 0, 0, 21, 4, 95, 52, 77, 49, 37, 82, 37, 107, 6, 40, 65, 71, 37, 71, 6, 37, 50, 36, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 12, 2, 95, 51, 81, 35, 47, 6, 35, 47, 40, 0, 0, 12, 2, 95, 50, 49, 35, 82, 6, 37, 16,
+			37, 0, 0, 11, 2, 95, 49, 51, 6, 37, 65, 58, 36, 0, 0, 10, 2, 95, 48, 88, 6, 36, 16, 40, 0, 0, 14, 2, 95, 55,
+			49, 35, 16, 6, 37, 50, 72, 58, 37, 0, 0, 15, 2, 95, 54, 81, 35, 47, 35, 50, 72, 6, 35, 47, 40, 0, 0, 12, 2, 95,
+			53, 81, 35, 47, 6, 35, 50, 40, 0, 0, 10, 2, 95, 52, 49, 6, 35, 50, 36, 0, 0, 0, 0, 13, 2, 95, 57, 37, 49, 57,
+			6, 36, 50, 72, 35, 0, 0, 13, 2, 95, 56, 40, 65, 40, 50, 6, 35, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 3, 35, 0, 7, 6, 98, 0, 4, 1, 109, 3, 71, 0, 8,
+			0, 3, 82, 0, 7, 6, 99, 0, 121, 3, 49, 57, 0, 3, 76, 0, 7, 6, 100, 0, 3, 72, 0, 7, 6, 101, 0, 3, 36, 0,
+			7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 101, 3, 79, 0, 2, 105, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0,
+			7, 6, 105, 0, 3, 37, 0, 7, 6, 106, 0, 3, 75, 0, 121, 3, 79, 57, 0, 7, 6, 107, 0, 3, 49, 0, 4, 2, 101, 3,
+			80, 0, 2, 105, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 112, 3, 65, 107, 0, 7, 6, 110, 0, 3, 50,
+			0, 116, 3, 50, 107, 0, 4, 2, 103, 101, 3, 67, 0, 2, 103, 105, 0, 121, 0, 2, 103, 3, 68, 0, 107, 3, 68, 101, 0, 7,
+			6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 104, 0, 7, 6, 114, 0, 3, 16, 0, 8, 3, 51,
+			0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 104, 121, 3, 97, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 3, 40,
+			0, 7, 6, 118, 0, 3, 80, 0, 7, 6, 119, 0, 3, 58, 0, 1, 98, 3, 81, 0, 7, 6, 120, 0, 3, 49, 89, 0, 8, 3,
+			88, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 39, 55, 35, 16, 35, 0, 7, 0,
+			0};
+		autoFileInMemory espeakdata_dicts55 = FileInMemory_createWithData (2250, reinterpret_cast<const char *> (&espeakdata_dicts55_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/rw_dict", 
+			U"rw");
+		Collection_addItem (me.peek(), espeakdata_dicts55.transfer());
+
+		static unsigned char espeakdata_dicts56_data[2455] = {
+			0, 4, 0, 0, 253, 5, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
+			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 0, 0, 5, 65, 20, 112, 0, 0, 0,
+			0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 0,
+			0, 0, 6, 65, 36, 118, 57, 0, 0, 13, 1, 37, 89, 37, 57, 13, 57, 13, 140, 13, 0, 27, 0, 0, 0, 7, 65, 40, 75, 114,
+			57, 0, 0, 0, 16, 1, 42, 149, 89, 140, 13, 34, 37, 89, 49, 13, 57, 13, 0, 27, 0, 0, 7, 65, 44, 49, 114, 57, 0, 0,
+			0, 0, 0, 6, 65, 48, 116, 55, 0, 0, 0, 0, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 0, 6, 65, 56, 116, 50, 0, 0,
+			0, 0, 0, 5, 65, 60, 119, 0, 0, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 123, 0, 0,
+			0, 0, 0, 6, 65, 72, 118, 34, 0, 0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 0, 6, 65, 80, 138, 112, 0, 0,
+			0, 0, 0, 6, 65, 84, 57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 0, 11, 65, 92, 72, 35, 71, 35,
+			55, 57, 123, 0, 0, 0, 0, 0, 7, 65, 96, 116, 49, 89, 0, 0, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0,
+			7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 48, 67, 89, 37, 57, 13,
+			57, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 49, 57, 72, 35, 107, 13, 50, 35, 84, 13,
+			57, 13, 0, 0, 13, 3, 95, 49, 56, 72, 35, 107, 13, 35, 140, 13, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 49, 49, 36,
+			49, 39, 62, 13, 107, 13, 0, 0, 12, 3, 95, 49, 48, 72, 35, 107, 13, 57, 13, 0, 0, 14, 3, 95, 49, 51, 72, 35, 107, 13,
+			47, 40, 50, 13, 0, 0, 12, 3, 95, 49, 50, 72, 39, 62, 13, 107, 13, 0, 0, 14, 3, 95, 49, 53, 48, 35, 107, 13, 62, 39,
+			84, 13, 0, 0, 16, 3, 95, 49, 52, 72, 35, 107, 13, 107, 35, 47, 13, 34, 13, 0, 0, 14, 3, 95, 49, 55, 72, 35, 107, 13,
+			107, 35, 47, 13, 0, 0, 14, 3, 95, 49, 54, 72, 35, 107, 13, 89, 35, 57, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 88, 84, 37, 89, 89, 13, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 48, 77, 50, 65, 37, 55, 37, 57, 13, 50, 13, 57, 13, 0, 0, 17, 4, 95, 48, 77,
+			51, 71, 37, 55, 37, 57, 13, 50, 13, 57, 13, 0, 0, 0, 13, 4, 95, 48, 77, 49, 72, 35, 107, 13, 89, 13, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95, 51, 47, 123, 50, 13, 0, 0,
+			9, 2, 95, 50, 72, 36, 49, 13, 0, 0, 8, 2, 95, 49, 36, 49, 13, 0, 0, 0, 9, 2, 95, 55, 107, 35, 47, 13, 0, 0,
+			9, 2, 95, 54, 107, 35, 57, 13, 0, 0, 9, 2, 95, 53, 48, 35, 107, 13, 0, 0, 11, 2, 95, 52, 107, 35, 47, 13, 34, 13,
+			0, 0, 16, 2, 95, 59, 47, 6, 37, 47, 49, 4, 39, 65, 118, 84, 13, 0, 0, 0, 11, 2, 95, 57, 50, 35, 84, 13, 57, 13,
+			0, 0, 8, 2, 95, 56, 35, 140, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7, 6, 1, 8, 0, 3, 149, 0, 7, 6, 1, 9,
+			0, 3, 117, 0, 7, 6, 1, 10, 0, 3, 37, 0, 7, 6, 1, 11, 0, 3, 112, 0, 7, 6, 1, 12, 0, 3, 40, 0, 7, 6,
+			1, 13, 0, 3, 123, 0, 7, 6, 1, 14, 0, 3, 34, 40, 0, 7, 6, 1, 15, 0, 3, 34, 123, 0, 7, 6, 1, 16, 0, 3,
+			55, 37, 0, 7, 6, 1, 17, 0, 3, 55, 112, 0, 7, 6, 1, 18, 0, 3, 36, 0, 7, 6, 1, 19, 0, 3, 114, 0, 7, 6,
+			1, 20, 0, 3, 134, 0, 7, 6, 1, 21, 0, 3, 39, 0, 7, 6, 1, 22, 0, 3, 119, 0, 7, 6, 1, 23, 0, 3, 135, 0,
+			7, 6, 1, 27, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0,
+			7, 6, 1, 29, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0,
+			7, 6, 1, 31, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 154, 81, 0, 3, 154, 81,
+			35, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 76, 0, 3, 76, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 76, 0, 3, 76,
+			35, 0, 7, 6, 1, 35, 0, 2, 17, 66, 3, 75, 0, 3, 75, 35, 0, 7, 6, 1, 36, 0, 3, 75, 35, 0, 2, 17, 66, 3,
+			75, 107, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 81, 50, 0,
+			3, 81, 50, 35, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 153, 75, 0, 3, 153, 75, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66,
+			3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 41, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 42, 0, 2, 17, 66,
+			3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 44, 0, 2, 17, 66,
+			3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 152, 141, 0, 3, 152, 141, 35, 0, 7, 6, 1, 46, 0, 2,
+			17, 66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 48, 0, 2,
+			17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 50, 0, 2,
+			17, 66, 3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 151, 72, 0, 3, 151, 72, 35, 0, 7, 6, 1, 53,
+			0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 54, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 55,
+			0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 57,
+			0, 2, 17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 150, 71, 0, 3, 150, 71, 35, 0, 7, 6,
+			1, 59, 0, 2, 17, 66, 3, 57, 0, 3, 57, 35, 0, 7, 6, 1, 60, 0, 2, 17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6,
+			1, 62, 0, 2, 17, 66, 3, 55, 0, 3, 55, 35, 0, 7, 6, 1, 65, 0, 2, 17, 66, 3, 84, 0, 3, 84, 35, 0, 7, 6,
+			1, 66, 0, 2, 17, 66, 3, 91, 0, 3, 91, 35, 0, 7, 6, 1, 67, 0, 2, 17, 66, 3, 91, 0, 3, 91, 35, 0, 7, 6,
+			1, 68, 0, 2, 17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 69, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6,
+			1, 70, 0, 2, 17, 66, 3, 62, 0, 3, 62, 35, 0, 7, 6, 1, 71, 0, 2, 17, 66, 3, 83, 0, 3, 83, 35, 0, 7, 6,
+			224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104, 105, 0, 7, 6, 224, 174, 0, 3, 21, 116, 97, 0, 7, 6,
+			224, 175, 0, 3, 21, 116, 97, 0, 7, 6, 224, 182, 0, 131, 3, 50, 0, 130, 3, 65, 0, 7, 6, 224, 183, 0, 138, 3, 0, 152,
+			3, 34, 40, 0, 178, 3, 34, 123, 0, 153, 3, 36, 0, 146, 3, 37, 0, 156, 3, 39, 0, 148, 3, 40, 0, 159, 3, 55, 37, 0,
+			179, 3, 55, 112, 0, 147, 3, 112, 0, 154, 3, 114, 0, 145, 3, 117, 0, 143, 3, 118, 0, 157, 3, 119, 0, 150, 3, 123, 0, 155,
+			3, 134, 0, 158, 3, 135, 0, 144, 3, 149, 0, 7, 6, 0, 36, 3, 72, 119, 62, 35, 34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts56 = FileInMemory_createWithData (2454, reinterpret_cast<const char *> (&espeakdata_dicts56_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/si_dict", 
 			U"si");
-		my addItem_move (espeakdata_dicts57.move());
+		Collection_addItem (me.peek(), espeakdata_dicts56.transfer());
 
-		static unsigned char espeakdata_dicts58_data[9162] = {
-			0, 4, 0, 0, 40, 20, 0, 0, 0, 6, 195, 60, 225, 78, 15, 0, 0, 0, 6, 194, 228, 80, 72, 8, 0, 6, 65, 4, 124, 0,
-			49, 5, 193, 4, 72, 8, 0, 0, 0, 0, 6, 65, 8, 71, 123, 0, 0, 0, 0, 0, 6, 65, 12, 117, 123, 0, 0, 0, 0, 0,
-			6, 65, 16, 72, 123, 0, 0, 0, 0, 16, 4, 95, 100, 112, 116, 9, 76, 57, 4, 35, 34, 49, 35, 10, 0, 0, 5, 65, 20, 123,
-			0, 0, 0, 0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 11, 200, 16, 84, 18, 21, 57, 86, 56, 144, 15, 0, 6, 65, 28, 81,
-			123, 0, 0, 0, 0, 0, 6, 65, 32, 107, 124, 0, 0, 0, 0, 11, 1, 35, 49, 51, 121, 90, 37, 49, 0, 27, 0, 5, 65, 36,
-			121, 0, 0, 0, 13, 1, 38, 35, 65, 48, 36, 51, 89, 35, 50, 72, 0, 11, 65, 112, 72, 4, 45, 107, 123, 6, 124, 0, 0, 0,
-			6, 65, 40, 57, 123, 0, 0, 0, 7, 196, 148, 65, 79, 84, 15, 12, 1, 42, 107, 84, 37, 36, 88, 72, 35, 0, 27, 0, 9, 1,
-			43, 48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 124, 0, 49, 6, 65, 44, 49, 0, 28, 0, 0, 0, 0, 19, 4, 95, 100, 105,
-			97, 89, 10, 48, 51, 6, 36, 107, 55, 124, 89, 49, 129, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36, 65, 0,
-			0, 9, 198, 64, 245, 133, 72, 83, 165, 15, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 6, 65, 60, 125, 0, 49, 9,
-			65, 60, 39, 10, 0, 72, 28, 23, 0, 9, 198, 61, 0, 84, 72, 233, 64, 15, 13, 1, 61, 51, 39, 84, 50, 124, 15, 89, 35, 0,
-			27, 0, 0, 0, 11, 1, 64, 88, 35, 84, 37, 50, 124, 76, 0, 6, 65, 64, 48, 123, 0, 0, 0, 0, 20, 4, 95, 226, 158, 148,
-			91, 121, 48, 49, 35, 15, 6, 84, 48, 51, 35, 84, 39, 0, 0, 7, 65, 68, 49, 84, 123, 0, 0, 0, 0, 0, 6, 65, 72, 36,
-			51, 0, 0, 0, 0, 15, 4, 95, 100, 111, 116, 89, 10, 71, 6, 39, 47, 49, 129, 0, 0, 7, 65, 76, 36, 89, 0, 49, 7, 65,
-			76, 89, 10, 0, 8, 0, 0, 0, 0, 6, 65, 80, 47, 123, 0, 0, 0, 0, 0, 5, 65, 84, 126, 0, 0, 9, 198, 64, 254, 73,
-			5, 35, 133, 15, 0, 0, 0, 7, 65, 88, 84, 123, 0, 49, 7, 65, 88, 84, 10, 0, 28, 0, 0, 0, 14, 4, 95, 49, 77, 52,
-			71, 6, 37, 55, 37, 125, 50, 0, 0, 15, 65, 92, 72, 84, 6, 39, 57, 37, 47, 123, 4, 84, 123, 0, 0, 0, 0, 17, 1, 95,
-			47, 84, 44, 72, 124, 15, 65, 6, 36, 118, 36, 51, 35, 0, 0, 13, 4, 95, 49, 77, 49, 115, 6, 37, 89, 121, 117, 0, 7, 65,
-			96, 37, 49, 89, 0, 0, 14, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 125, 50, 0, 0, 16, 4, 95, 49, 77, 51, 65, 6, 37,
-			55, 57, 35, 51, 72, 35, 0, 0, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 47,
-			0, 49, 7, 65, 104, 88, 10, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 95, 226, 156, 148, 47, 40, 76, 50,
-			123, 15, 88, 6, 35, 91, 49, 44, 47, 50, 40, 115, 37, 36, 0, 0, 0, 0, 0, 0, 0, 30, 4, 95, 226, 158, 162, 39, 72, 51,
-			124, 90, 49, 35, 15, 6, 84, 15, 47, 84, 35, 51, 36, 15, 91, 6, 121, 48, 49, 37, 0, 0, 18, 4, 95, 226, 156, 147, 88, 35,
-			91, 49, 44, 47, 50, 40, 115, 37, 36, 0, 0, 0, 0, 0, 0, 17, 4, 95, 116, 108, 100, 89, 10, 84, 6, 45, 50, 39, 84, 49,
-			129, 0, 0, 0, 0, 0, 15, 65, 124, 39, 47, 84, 39, 51, 36, 50, 123, 15, 6, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 196, 40, 81, 5, 56, 15, 0, 0, 0, 6, 195, 168, 226, 69, 15, 0, 7, 196, 80, 84, 129, 104, 15, 0, 8, 197, 52,
-			20, 148, 36, 224, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 168, 226, 85, 15, 0, 0, 0, 17, 4, 95, 50, 77, 49,
-			72, 84, 6, 36, 115, 6, 37, 89, 121, 117, 0, 0, 0, 20, 4, 95, 50, 77, 51, 72, 84, 6, 36, 65, 6, 37, 55, 57, 35, 51,
-			72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 148, 65, 73, 15, 18, 4,
-			95, 109, 99, 110, 89, 10, 65, 6, 35, 49, 51, 39, 50, 39, 65, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 44, 30, 68, 20, 160,
-			15, 0, 0, 0, 0, 12, 201, 16, 81, 137, 56, 149, 37, 88, 225, 64, 15, 0, 6, 194, 4, 160, 72, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 148, 65, 89, 15, 0, 6, 195, 80, 145, 64, 15, 0, 0, 9, 198, 76, 19, 79, 80, 233, 64, 15, 0, 0, 0, 0,
-			6, 195, 80, 81, 1, 15, 0, 0, 0, 0, 0, 0, 9, 67, 88, 194, 192, 84, 45, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 10, 3, 95, 35, 57, 47, 6, 35, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 233, 64, 15, 0,
-			0, 11, 65, 136, 72, 4, 45, 107, 123, 6, 123, 0, 0, 0, 7, 132, 98, 121, 197, 165, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 20, 229, 5, 72, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 233, 64,
-			15, 0, 0, 0, 0, 0, 0, 0, 7, 196, 80, 145, 84, 60, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 243, 0, 76, 0, 0, 0, 0, 7, 195,
-			8, 86, 128, 8, 23, 0, 0, 0, 0, 0, 0, 10, 199, 56, 81, 193, 82, 85, 142, 20, 15, 0, 0, 0, 0, 0, 0, 0, 9, 67,
-			16, 194, 0, 72, 45, 107, 0, 0, 0, 0, 0, 0, 11, 65, 148, 72, 4, 45, 107, 123, 6, 121, 0, 0, 0, 10, 3, 226, 130, 172,
-			36, 40, 51, 39, 0, 0, 9, 198, 64, 245, 111, 20, 233, 64, 15, 0, 5, 194, 78, 160, 72, 0, 0, 0, 0, 0, 0, 0, 0, 17,
-			4, 95, 111, 103, 111, 89, 10, 6, 39, 81, 39, 67, 49, 39, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 65, 34, 69, 52,
-			84, 142, 148, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 98, 114, 118, 71, 51, 6, 36, 84, 36, 0,
-			0, 0, 0, 0, 8, 197, 228, 144, 68, 56, 144, 15, 0, 11, 136, 110, 97, 100, 195, 173, 115, 197, 165, 15, 0, 0, 0, 0, 0, 0,
-			0, 0, 13, 3, 226, 128, 176, 48, 51, 39, 65, 37, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95,
-			51, 88, 47, 14, 16, 6, 37, 72, 89, 35, 115, 0, 0, 10, 3, 95, 48, 67, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 10, 4, 112, 108, 197, 165, 48, 45, 115, 0, 6, 195, 77, 65, 64, 72, 0, 0, 0, 5, 194, 40, 80, 72, 16, 3,
-			95, 49, 57, 116, 6, 36, 84, 122, 47, 50, 124, 89, 115, 0, 0, 7, 195, 65, 34, 64, 8, 23, 15, 3, 95, 49, 56, 6, 39, 89,
-			36, 65, 50, 124, 89, 115, 0, 0, 6, 195, 168, 226, 73, 15, 14, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 6, 39, 0, 0, 0,
-			0, 11, 65, 156, 72, 4, 45, 107, 123, 6, 125, 0, 0, 0, 11, 3, 226, 136, 146, 65, 121, 50, 40, 89, 0, 0, 15, 3, 95, 49,
-			49, 57, 6, 36, 72, 36, 50, 124, 89, 115, 0, 0, 12, 3, 95, 49, 48, 116, 6, 36, 89, 35, 115, 0, 0, 15, 3, 95, 49, 51,
-			47, 14, 16, 6, 37, 50, 124, 89, 115, 0, 0, 14, 3, 95, 49, 50, 72, 84, 6, 35, 50, 124, 89, 115, 0, 0, 14, 3, 95, 49,
-			53, 48, 6, 122, 47, 50, 124, 89, 115, 0, 0, 14, 3, 95, 49, 52, 91, 47, 44, 50, 6, 124, 89, 115, 0, 0, 16, 3, 95, 49,
-			55, 89, 6, 36, 116, 36, 65, 50, 124, 89, 115, 0, 0, 15, 3, 95, 49, 54, 91, 6, 36, 89, 47, 50, 124, 89, 115, 0, 0, 0,
-			18, 3, 95, 55, 88, 89, 6, 36, 116, 36, 65, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			16, 4, 95, 97, 99, 117, 89, 10, 72, 6, 135, 90, 67, 39, 65, 0, 0, 0, 7, 196, 53, 195, 137, 20, 15, 7, 196, 53, 195, 137,
-			4, 15, 0, 8, 197, 53, 195, 137, 61, 80, 15, 0, 0, 0, 9, 134, 114, 195, 180, 122, 110, 101, 15, 0, 0, 0, 0, 10, 3, 95,
-			50, 102, 72, 84, 6, 36, 0, 0, 0, 9, 198, 76, 50, 15, 64, 233, 64, 15, 9, 198, 52, 21, 11, 36, 233, 64, 15, 14, 3, 95,
-			50, 88, 72, 84, 6, 35, 72, 89, 35, 115, 0, 0, 0, 10, 199, 80, 83, 5, 90, 86, 142, 20, 15, 0, 17, 5, 95, 48, 77, 65,
-			51, 65, 6, 37, 55, 57, 35, 51, 72, 37, 0, 0, 16, 5, 95, 48, 77, 65, 50, 65, 6, 37, 55, 37, 125, 50, 37, 0, 0, 6,
-			195, 148, 65, 85, 15, 0, 16, 5, 95, 48, 77, 65, 52, 71, 6, 37, 55, 37, 125, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 12,
-			3, 95, 63, 63, 89, 37, 65, 71, 39, 55, 0, 0, 0, 0, 6, 195, 76, 209, 64, 72, 16, 3, 95, 52, 88, 91, 47, 6, 37, 16,
-			37, 72, 89, 35, 115, 0, 0, 6, 195, 148, 65, 69, 15, 0, 0, 0, 0, 0, 0, 6, 194, 56, 16, 72, 23, 22, 4, 95, 115, 117,
-			98, 72, 4, 39, 55, 50, 121, 15, 6, 37, 50, 72, 36, 49, 89, 15, 0, 0, 16, 3, 95, 53, 88, 48, 6, 122, 115, 116, 36, 89,
-			57, 35, 47, 0, 0, 0, 17, 4, 95, 114, 110, 103, 89, 10, 49, 51, 6, 126, 91, 49, 39, 65, 0, 0, 0, 0, 0, 0, 0, 9,
-			198, 60, 179, 204, 37, 73, 64, 15, 17, 3, 95, 54, 88, 91, 6, 36, 89, 115, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 0,
-			0, 7, 196, 53, 195, 137, 84, 15, 0, 0, 0, 0, 0, 0, 6, 195, 52, 145, 9, 15, 0, 0, 0, 9, 198, 90, 83, 133, 188, 179,
-			192, 15, 0, 17, 3, 95, 56, 88, 6, 39, 89, 36, 65, 116, 36, 89, 57, 35, 47, 0, 0, 7, 196, 32, 241, 14, 36, 15, 0, 0,
-			0, 0, 0, 0, 5, 194, 32, 240, 76, 0, 18, 3, 95, 57, 88, 72, 6, 36, 84, 122, 115, 116, 36, 89, 57, 35, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 10, 3, 95, 63, 65, 88, 50, 35, 49, 0, 0, 0, 8, 197, 77, 97, 84, 21, 32, 15, 0, 0, 0, 0, 22,
-			4, 95, 115, 117, 112, 107, 4, 39, 51, 50, 121, 15, 6, 37, 50, 72, 36, 49, 89, 15, 0, 10, 65, 168, 72, 45, 107, 123, 6, 126,
-			0, 0, 24, 4, 95, 115, 116, 107, 89, 39, 10, 91, 6, 37, 49, 65, 121, 65, 72, 6, 135, 90, 67, 39, 65, 0, 0, 0, 7, 196,
-			88, 147, 133, 56, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 65, 34, 74, 5, 73, 64, 15, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 99, 105, 114, 89, 6, 39, 89, 47, 51, 37, 38, 4, 36, 91, 49, 129, 0, 0, 0,
-			16, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 125, 50, 39, 40, 0, 0, 0, 16, 4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 125,
-			50, 39, 40, 0, 0, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55, 57, 35, 51, 47, 0, 0, 0, 13, 4, 95, 48, 77, 49, 115, 6,
-			37, 89, 121, 117, 0, 0, 6, 195, 42, 163, 137, 15, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 65, 101, 15, 0, 22, 4, 95,
-			108, 105, 103, 55, 6, 37, 81, 35, 47, 4, 126, 51, 39, 84, 4, 35, 50, 123, 0, 0, 0, 0, 0, 10, 4, 116, 196, 186, 107, 47,
-			135, 49, 0, 0, 0, 0, 0, 7, 196, 80, 83, 69, 72, 15, 0, 0, 0, 0, 7, 195, 8, 86, 143, 8, 23, 0, 0, 0, 0, 0,
-			0, 0, 12, 201, 36, 229, 5, 48, 145, 197, 57, 67, 165, 15, 12, 201, 36, 225, 9, 88, 145, 21, 112, 195, 133, 15, 0, 0, 0, 0,
-			0, 0, 0, 11, 200, 213, 64, 84, 85, 71, 18, 56, 144, 15, 0, 0, 0, 0, 0, 0, 0, 8, 196, 4, 193, 66, 60, 72, 8, 0,
-			12, 201, 36, 229, 18, 61, 97, 82, 80, 233, 64, 15, 0, 0, 0, 10, 135, 111, 100, 195, 173, 115, 197, 165, 15, 17, 4, 95, 99, 101,
-			100, 89, 10, 117, 6, 36, 116, 37, 55, 55, 129, 0, 0, 11, 136, 112, 111, 100, 195, 173, 115, 197, 165, 15, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 196, 26, 35, 137, 96, 15, 9, 67, 188, 195, 128, 76, 45, 50, 0, 0, 0, 11, 200, 65, 34, 80, 72, 21, 133, 58,
-			80, 15, 12, 4, 95, 99, 97, 112, 84, 36, 61, 49, 123, 0, 0, 0, 0, 9, 198, 65, 41, 66, 85, 163, 165, 15, 0, 0, 0, 7,
-			196, 60, 180, 133, 52, 8, 26, 3, 95, 194, 183, 71, 39, 72, 49, 35, 15, 6, 84, 15, 48, 51, 39, 89, 47, 51, 57, 36, 72, 49,
-			40, 0, 0, 11, 3, 95, 194, 180, 72, 135, 90, 36, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 188, 76, 123, 0, 0, 17,
-			3, 95, 194, 173, 51, 39, 88, 116, 36, 61, 39, 84, 67, 121, 49, 0, 0, 8, 197, 105, 37, 111, 58, 80, 15, 0, 31, 3, 95, 194,
-			171, 72, 84, 39, 57, 37, 47, 124, 15, 55, 6, 39, 65, 36, 50, 124, 15, 88, 6, 124, 47, 84, 39, 51, 49, 35, 0, 0, 15, 3,
-			95, 194, 168, 48, 51, 36, 107, 55, 124, 89, 49, 35, 0, 0, 11, 200, 24, 193, 88, 36, 34, 76, 58, 80, 15, 0, 22, 3, 95, 194,
-			166, 48, 51, 36, 51, 40, 91, 36, 50, 124, 15, 76, 6, 37, 35, 51, 35, 0, 0, 12, 137, 112, 114, 101, 100, 195, 173, 115, 197, 165,
-			15, 5, 194, 76, 16, 76, 0, 0, 6, 195, 91, 80, 75, 8, 0, 0, 0, 0, 25, 3, 95, 194, 161, 39, 71, 34, 124, 115, 36, 50,
-			121, 15, 84, 6, 121, 49, 51, 37, 76, 67, 121, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 89, 65, 68, 100, 15,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 79, 8, 18, 4, 95, 226, 151, 139, 71,
-			37, 36, 55, 37, 15, 49, 51, 6, 40, 107, 0, 0, 0, 0, 0, 19, 4, 95, 226, 151, 143, 76, 37, 36, 51, 50, 37, 15, 49, 51,
-			6, 40, 107, 0, 0, 6, 195, 36, 226, 84, 15, 0, 0, 23, 3, 95, 194, 191, 39, 71, 51, 124, 115, 36, 50, 121, 15, 6, 39, 47,
-			124, 88, 67, 37, 49, 0, 0, 0, 8, 197, 52, 192, 68, 20, 160, 15, 0, 10, 199, 60, 178, 69, 56, 91, 203, 60, 15, 0, 22, 4,
-			95, 226, 151, 134, 76, 37, 36, 51, 50, 37, 15, 72, 6, 37, 35, 65, 35, 50, 47, 0, 31, 3, 95, 194, 187, 72, 84, 39, 57, 37,
-			47, 124, 15, 55, 6, 39, 65, 36, 50, 124, 15, 88, 6, 35, 47, 84, 39, 51, 37, 115, 0, 0, 12, 3, 95, 194, 184, 117, 36, 72,
-			37, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 27, 4, 95, 103, 114, 118, 89, 10, 6, 39, 71, 51, 124, 115, 4, 36, 50, 121, 65,
-			72, 6, 135, 90, 67, 39, 65, 0, 0, 0, 0, 9, 2, 195, 151, 49, 51, 124, 47, 0, 7, 2, 196, 143, 116, 123, 0, 0, 0, 0,
-			0, 9, 198, 61, 53, 1, 80, 233, 64, 15, 0, 0, 0, 0, 13, 2, 194, 167, 48, 35, 51, 35, 81, 51, 35, 83, 0, 0, 9, 2,
-			194, 164, 65, 36, 50, 35, 0, 0, 8, 2, 194, 165, 57, 36, 50, 0, 0, 22, 4, 95, 226, 150, 160, 76, 37, 36, 51, 50, 37, 15,
-			91, 6, 47, 84, 39, 51, 36, 117, 0, 9, 2, 194, 162, 117, 36, 50, 47, 0, 0, 21, 4, 95, 226, 150, 161, 71, 37, 36, 55, 37,
-			15, 91, 6, 47, 84, 39, 51, 36, 117, 0, 10, 2, 194, 163, 55, 37, 71, 51, 35, 0, 0, 7, 2, 197, 136, 36, 67, 0, 0, 0,
-			17, 2, 194, 174, 51, 36, 81, 37, 89, 47, 51, 39, 84, 35, 50, 123, 0, 0, 14, 2, 194, 175, 48, 51, 40, 107, 15, 50, 6, 35,
-			47, 0, 0, 19, 2, 194, 172, 55, 39, 81, 37, 117, 49, 121, 15, 88, 6, 124, 48, 39, 51, 0, 19, 2, 195, 164, 6, 124, 48, 51,
-			36, 107, 55, 35, 89, 39, 84, 35, 50, 123, 0, 0, 0, 0, 5, 130, 196, 155, 43, 0, 38, 4, 95, 226, 151, 166, 39, 72, 51, 124,
-			90, 49, 35, 15, 6, 84, 15, 47, 84, 35, 51, 36, 15, 71, 6, 37, 36, 55, 36, 57, 15, 71, 6, 39, 72, 49, 37, 0, 0, 13,
-			2, 194, 169, 49, 39, 48, 37, 51, 35, 57, 47, 0, 0, 23, 2, 194, 182, 6, 39, 88, 50, 35, 76, 36, 50, 37, 36, 15, 6, 39,
-			72, 89, 36, 49, 40, 0, 0, 0, 12, 201, 48, 81, 201, 76, 192, 84, 149, 99, 133, 15, 0, 7, 195, 36, 224, 75, 72, 8, 7, 2,
-			194, 181, 65, 121, 0, 0, 11, 2, 198, 146, 83, 55, 39, 51, 123, 50, 0, 0, 0, 12, 2, 194, 176, 89, 47, 40, 48, 67, 39, 40,
-			0, 0, 16, 2, 194, 177, 48, 55, 40, 89, 15, 65, 6, 121, 50, 40, 89, 0, 7, 2, 197, 153, 36, 133, 0, 0, 20, 2, 194, 190,
-			47, 6, 14, 16, 37, 15, 91, 6, 47, 84, 44, 115, 37, 50, 37, 0, 0, 11, 2, 195, 183, 116, 36, 55, 36, 50, 39, 0, 0, 13,
-			2, 194, 188, 91, 47, 84, 44, 115, 37, 50, 35, 0, 16, 2, 195, 180, 6, 125, 89, 84, 4, 39, 49, 124, 67, 39, 65, 0, 0, 10,
-			135, 112, 114, 101, 100, 101, 197, 136, 15, 6, 195, 56, 145, 64, 72, 13, 2, 194, 189, 48, 39, 55, 39, 84, 37, 117, 35, 0, 7, 2,
-			197, 165, 115, 123, 0, 0, 0, 0, 7, 2, 195, 176, 36, 72, 0, 0, 0, 7, 196, 80, 82, 148, 60, 15, 9, 67, 64, 192, 200, 48,
-			45, 101, 0, 9, 2, 195, 190, 89, 39, 51, 50, 0, 0, 17, 2, 197, 175, 6, 126, 89, 10, 49, 51, 6, 126, 90, 49, 39, 65, 0,
-			0, 6, 195, 148, 65, 65, 15, 0, 18, 2, 195, 189, 72, 4, 45, 107, 123, 6, 37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0,
-			0, 9, 198, 48, 241, 201, 77, 73, 75, 15, 7, 2, 196, 190, 36, 61, 0, 0, 0, 0, 6, 195, 76, 243, 64, 72, 0, 13, 2, 196,
-			186, 72, 4, 45, 107, 123, 6, 36, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 4, 95, 226, 137, 136, 48, 51, 37, 71, 55, 37,
-			90, 67, 36, 15, 89, 35, 15, 51, 6, 39, 84, 50, 124, 0, 0, 0, 0, 0, 0, 0, 9, 134, 112, 111, 100, 101, 197, 136, 15, 0,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 6, 194, 64, 240, 8, 23, 5, 194, 76, 144, 76, 0, 7, 195, 64, 241, 0, 8,
-			23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 188, 240, 72, 8, 0,
-			24, 4, 95, 226, 136, 155, 47, 51, 36, 115, 37, 35, 15, 6, 39, 72, 65, 39, 117, 67, 37, 50, 35, 0, 0, 23, 4, 95, 226, 136,
-			154, 72, 51, 40, 107, 124, 15, 6, 39, 72, 65, 39, 117, 67, 37, 50, 35, 0, 0, 0, 18, 4, 95, 226, 137, 160, 67, 36, 51, 39,
-			84, 50, 124, 15, 89, 6, 35, 0, 0, 0, 16, 4, 95, 226, 136, 158, 67, 36, 49, 39, 67, 36, 76, 50, 39, 0, 0, 29, 4, 95,
-			226, 137, 165, 84, 122, 76, 91, 121, 15, 6, 35, 55, 36, 71, 39, 15, 89, 35, 15, 51, 6, 39, 84, 50, 124, 0, 0, 29, 4, 95,
-			226, 137, 164, 65, 36, 50, 91, 121, 15, 6, 35, 55, 36, 71, 39, 15, 89, 35, 15, 51, 6, 39, 84, 50, 124, 0, 0, 0, 0, 0,
-			0, 0, 0, 7, 196, 64, 85, 5, 72, 15, 0, 13, 2, 95, 34, 126, 84, 39, 118, 39, 58, 49, 37, 0, 0, 8, 133, 111, 100, 101,
-			197, 136, 15, 14, 2, 95, 33, 84, 121, 49, 51, 37, 76, 67, 121, 49, 0, 0, 0, 13, 2, 95, 39, 35, 48, 39, 89, 47, 51, 39,
-			83, 0, 0, 0, 0, 9, 198, 52, 21, 11, 36, 226, 64, 15, 10, 2, 95, 36, 72, 39, 55, 124, 51, 0, 0, 6, 195, 80, 83, 128,
-			15, 0, 0, 13, 2, 95, 41, 88, 35, 47, 84, 39, 51, 37, 115, 0, 0, 13, 2, 95, 40, 88, 124, 47, 84, 39, 51, 49, 35, 0,
-			0, 10, 2, 95, 47, 55, 39, 65, 49, 35, 0, 0, 10, 2, 95, 46, 71, 39, 72, 49, 35, 0, 0, 14, 2, 95, 45, 89, 48, 39,
-			57, 39, 84, 67, 121, 49, 0, 0, 11, 2, 95, 44, 76, 37, 35, 51, 49, 35, 0, 0, 10, 2, 95, 51, 47, 6, 14, 16, 37, 0,
-			0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 11, 2, 95, 49, 57, 6, 36, 72, 36, 50, 0, 32, 4, 95, 226, 129, 131, 39, 72,
-			51, 124, 90, 49, 35, 15, 6, 84, 15, 47, 84, 35, 51, 36, 15, 48, 6, 39, 65, 45, 76, 49, 37, 0, 0, 10, 2, 95, 48, 50,
-			6, 40, 55, 35, 0, 0, 11, 2, 95, 55, 89, 6, 36, 116, 36, 65, 0, 0, 10, 2, 95, 54, 91, 6, 36, 89, 115, 0, 0, 9,
-			2, 95, 53, 48, 6, 122, 115, 0, 0, 11, 2, 95, 52, 91, 47, 6, 37, 16, 37, 0, 0, 16, 2, 95, 59, 71, 39, 72, 49, 39,
-			76, 37, 35, 51, 49, 35, 0, 0, 14, 2, 95, 58, 72, 84, 39, 57, 71, 39, 72, 49, 35, 0, 0, 11, 2, 95, 57, 116, 6, 36,
-			84, 122, 115, 0, 0, 10, 2, 95, 56, 6, 39, 89, 36, 65, 0, 0, 12, 2, 95, 63, 39, 47, 124, 88, 67, 37, 49, 0, 0, 10,
-			2, 95, 62, 84, 122, 76, 91, 121, 0, 0, 0, 10, 2, 95, 60, 65, 36, 50, 91, 121, 0, 0, 0, 0, 0, 0, 11, 200, 84, 180,
-			137, 228, 245, 129, 58, 80, 15, 0, 0, 0, 0, 0, 0, 27, 4, 95, 226, 128, 163, 39, 72, 51, 124, 90, 49, 35, 15, 47, 6, 51,
-			39, 57, 40, 107, 39, 55, 67, 121, 49, 0, 0, 14, 4, 95, 226, 128, 162, 39, 72, 51, 124, 90, 49, 35, 0, 0, 15, 4, 95, 226,
-			128, 161, 72, 84, 39, 57, 49, 51, 121, 90, 0, 0, 11, 4, 95, 226, 128, 160, 49, 51, 121, 90, 0, 0, 6, 65, 212, 36, 91, 0,
-			0, 0, 0, 0, 9, 198, 78, 171, 193, 76, 233, 64, 15, 0, 34, 4, 95, 226, 128, 154, 72, 39, 55, 50, 123, 15, 57, 6, 36, 72,
-			50, 39, 72, 40, 80, 107, 123, 15, 6, 126, 84, 39, 118, 39, 58, 49, 37, 0, 0, 15, 4, 95, 226, 128, 153, 39, 72, 89, 40, 84,
-			67, 121, 49, 0, 0, 34, 4, 95, 226, 128, 152, 107, 39, 51, 50, 123, 15, 57, 6, 36, 72, 50, 39, 72, 40, 80, 107, 123, 15, 6,
-			126, 84, 39, 118, 39, 58, 49, 37, 0, 0, 0, 9, 198, 91, 81, 84, 22, 243, 165, 15, 22, 4, 95, 226, 128, 158, 72, 39, 55, 50,
-			123, 15, 6, 126, 84, 39, 118, 39, 58, 49, 37, 0, 0, 6, 195, 4, 193, 64, 8, 39, 4, 95, 226, 128, 157, 72, 84, 39, 57, 37,
-			47, 124, 15, 107, 6, 39, 51, 50, 124, 15, 6, 39, 48, 35, 76, 50, 124, 15, 6, 126, 84, 39, 118, 39, 58, 49, 35, 0, 22, 2,
-			95, 91, 107, 51, 35, 50, 35, 47, 124, 15, 88, 6, 124, 47, 84, 39, 51, 49, 35, 0, 0, 22, 4, 95, 226, 128, 156, 107, 39, 51,
-			50, 123, 15, 6, 126, 84, 39, 118, 39, 58, 49, 37, 0, 0, 14, 4, 95, 226, 128, 147, 48, 39, 65, 45, 76, 49, 35, 0, 0, 6,
-			194, 76, 240, 8, 23, 0, 18, 2, 95, 95, 48, 39, 72, 76, 37, 35, 51, 49, 39, 84, 67, 121, 49, 0, 0, 10, 2, 95, 94, 84,
-			39, 49, 124, 67, 0, 0, 22, 2, 95, 93, 107, 51, 35, 50, 35, 47, 124, 15, 88, 6, 35, 47, 84, 39, 51, 37, 115, 0, 0, 18,
-			2, 95, 92, 39, 48, 35, 76, 50, 124, 15, 55, 6, 39, 65, 49, 35, 0, 0, 0, 0, 6, 2, 95, 97, 124, 0, 0, 11, 2, 95,
-			96, 35, 49, 117, 36, 50, 47, 0, 0, 0, 0, 0, 0, 7, 195, 4, 179, 192, 72, 8, 7, 2, 95, 107, 49, 124, 0, 0, 12, 201,
-			65, 33, 83, 88, 81, 47, 20, 233, 64, 15, 0, 6, 195, 16, 83, 79, 15, 0, 0, 6, 2, 95, 111, 125, 0, 0, 0, 0, 0, 7,
-			2, 95, 115, 36, 89, 0, 0, 8, 197, 89, 206, 69, 58, 80, 15, 0, 18, 4, 95, 104, 97, 99, 89, 10, 65, 6, 36, 49, 76, 36,
-			67, 39, 65, 0, 0, 0, 0, 7, 2, 95, 118, 84, 123, 0, 0, 0, 0, 22, 2, 95, 123, 88, 55, 39, 90, 36, 50, 124, 15, 88,
-			6, 124, 47, 84, 39, 51, 49, 35, 0, 0, 6, 195, 168, 226, 65, 15, 8, 2, 95, 122, 88, 36, 47, 0, 0, 0, 0, 0, 12, 2,
-			95, 126, 84, 45, 50, 39, 84, 49, 35, 0, 0, 22, 2, 95, 125, 88, 55, 39, 90, 36, 50, 124, 15, 88, 6, 35, 47, 84, 39, 51,
-			37, 115, 0, 0, 18, 2, 95, 124, 88, 84, 37, 89, 55, 124, 15, 76, 6, 37, 35, 51, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 35, 51, 50, 6, 65, 36, 118, 36, 51, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 64, 146, 129, 80, 146, 193, 15,
-			0, 0, 0, 0, 0, 0, 0, 5, 194, 82, 80, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 88, 147, 142, 148, 15,
-			7, 196, 64, 82, 206, 148, 15, 0, 0, 0, 0, 0, 0, 0, 21, 72, 16, 144, 71, 56, 244, 212, 148, 176, 72, 37, 35, 81, 50, 39,
-			89, 47, 121, 49, 0, 0, 0, 11, 200, 52, 147, 79, 88, 199, 4, 56, 80, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
-			5, 115, 116, 196, 186, 112, 89, 47, 135, 48, 0, 0, 6, 195, 82, 85, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 4,
-			181, 37, 88, 226, 64, 15, 0, 0, 0, 0, 0, 7, 65, 228, 90, 36, 47, 0, 0, 7, 196, 52, 192, 68, 148, 15, 0, 0, 0, 0,
-			0, 21, 72, 64, 244, 212, 36, 131, 149, 82, 80, 48, 39, 89, 115, 37, 107, 50, 40, 47, 121, 0, 0, 0, 7, 195, 78, 80, 197, 72,
-			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 116, 101, 0, 4, 1, 97, 105, 2, 32, 3, 47, 36, 0, 1, 97, 105, 118, 97, 122, 0, 1, 101, 100, 2, 107, 0, 1, 101, 100,
-			2, 114, 109, 0, 1, 101, 109, 2, 114, 32, 0, 1, 110, 105, 2, 114, 0, 1, 110, 105, 2, 114, 110, 101, 0, 1, 115, 2, 114, 0,
-			1, 115, 2, 114, 32, 0, 1, 115, 161, 195, 110, 2, 32, 0, 1, 118, 2, 100, 97, 106, 197, 161, 0, 1, 120, 101, 2, 114, 0, 2,
-			104, 111, 32, 0, 2, 106, 32, 0, 2, 109, 97, 116, 105, 0, 2, 114, 97, 106, 197, 161, 0, 2, 114, 97, 122, 0, 2, 114, 109, 0,
-			2, 115, 32, 0, 2, 115, 116, 0, 2, 120, 0, 8, 2, 99, 104, 0, 8, 2, 100, 97, 106, 197, 161, 0, 8, 2, 108, 101, 99, 0,
-			8, 2, 108, 101, 102, 0, 8, 2, 108, 101, 103, 0, 8, 2, 108, 101, 107, 0, 8, 2, 108, 101, 109, 0, 8, 2, 108, 101, 111, 0,
-			8, 2, 108, 101, 112, 0, 8, 2, 108, 101, 114, 0, 8, 2, 108, 101, 115, 101, 110, 0, 8, 2, 108, 101, 115, 107, 0, 8, 2, 108,
-			101, 116, 101, 114, 0, 8, 2, 108, 101, 116, 101, 120, 116, 0, 8, 2, 108, 101, 118, 0, 8, 2, 108, 101, 120, 0, 8, 2, 109, 112,
-			0, 8, 2, 110, 100, 0, 8, 2, 110, 105, 115, 0, 8, 2, 110, 116, 111, 0, 8, 2, 111, 0, 8, 2, 114, 97, 112, 0, 8, 2,
-			114, 97, 115, 0, 8, 2, 114, 101, 122, 0, 8, 2, 114, 195, 169, 110, 0, 8, 2, 114, 195, 169, 122, 0, 8, 2, 114, 196, 141, 0,
-			8, 2, 120, 0, 8, 2, 195, 179, 0, 8, 97, 107, 2, 99, 104, 0, 8, 97, 107, 2, 100, 0, 8, 97, 107, 2, 103, 0, 8, 97,
-			109, 2, 109, 97, 116, 105, 0, 8, 97, 109, 2, 114, 105, 97, 0, 8, 97, 109, 2, 114, 105, 195, 161, 0, 8, 97, 112, 2, 110, 116,
-			0, 8, 97, 114, 116, 115, 2, 103, 0, 8, 101, 100, 2, 107, 116, 195, 173, 0, 8, 101, 108, 101, 116, 2, 114, 0, 8, 101, 112, 109,
-			111, 107, 2, 110, 0, 8, 101, 161, 197, 118, 2, 196, 141, 0, 8, 105, 104, 99, 114, 97, 2, 107, 0, 8, 105, 108, 2, 114, 0, 8,
-			107, 97, 114, 97, 104, 99, 2, 114, 0, 8, 107, 97, 114, 97, 104, 99, 2, 114, 0, 8, 108, 97, 2, 114, 0, 8, 108, 97, 2, 114,
-			110, 0, 8, 108, 97, 2, 114, 110, 97, 116, 195, 173, 118, 0, 8, 108, 97, 119, 2, 114, 0, 8, 110, 105, 2, 108, 0, 8, 110, 105,
-			2, 110, 0, 8, 110, 105, 101, 100, 0, 8, 110, 121, 115, 0, 8, 110, 121, 115, 2, 116, 105, 0, 8, 111, 104, 2, 108, 0, 8, 111,
-			112, 2, 110, 0, 8, 112, 101, 115, 2, 109, 98, 0, 8, 115, 2, 112, 0, 8, 115, 97, 112, 0, 8, 115, 105, 115, 97, 2, 110, 0,
-			8, 115, 105, 120, 101, 2, 110, 0, 8, 115, 121, 115, 2, 109, 0, 8, 169, 195, 2, 114, 0, 7, 6, 195, 161, 0, 3, 124, 0, 7,
-			6, 195, 164, 0, 3, 36, 0, 7, 6, 195, 169, 0, 3, 123, 0, 7, 6, 195, 173, 0, 3, 121, 0, 7, 6, 195, 179, 0, 3, 125,
-			0, 7, 6, 195, 180, 0, 3, 40, 39, 0, 7, 6, 195, 186, 0, 3, 126, 0, 7, 6, 195, 189, 0, 3, 121, 0, 7, 6, 196, 141,
-			0, 3, 76, 0, 7, 6, 196, 143, 0, 2, 32, 3, 115, 0, 4, 3, 116, 0, 2, 32, 17, 70, 0, 7, 6, 196, 186, 0, 3, 135,
-			0, 7, 6, 196, 190, 0, 3, 61, 0, 7, 6, 197, 136, 0, 3, 67, 0, 7, 6, 197, 149, 0, 3, 132, 0, 7, 6, 197, 153, 0,
-			3, 133, 0, 4, 1, 102, 3, 134, 0, 1, 107, 0, 1, 112, 0, 1, 116, 0, 7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 165,
-			0, 3, 115, 0, 7, 6, 197, 190, 0, 4, 3, 90, 0, 2, 32, 17, 70, 0, 2, 32, 3, 91, 0, 7, 6, 97, 0, 3, 35, 0,
-			7, 6, 98, 0, 101, 122, 111, 8, 2, 45, 14, 128, 132, 133, 3, 6, 71, 36, 88, 39, 0, 101, 122, 8, 2, 45, 14, 128, 132, 132,
-			3, 6, 71, 36, 89, 0, 2, 32, 3, 48, 0, 4, 3, 71, 0, 2, 32, 17, 70, 0, 7, 6, 99, 0, 104, 3, 101, 0, 3, 117,
-			0, 7, 6, 100, 0, 2, 32, 3, 47, 0, 4, 3, 72, 0, 1, 97, 2, 101, 0, 1, 97, 114, 116, 2, 105, 0, 1, 101, 109, 2,
-			105, 0, 1, 101, 114, 107, 2, 105, 0, 1, 101, 114, 107, 115, 105, 100, 2, 105, 0, 1, 105, 2, 101, 110, 0, 1, 105, 2, 101, 111,
-			0, 1, 110, 97, 109, 2, 105, 116, 0, 1, 110, 105, 2, 105, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105, 107, 0, 1, 111, 108,
-			101, 109, 2, 105, 0, 1, 111, 109, 2, 101, 114, 0, 1, 114, 111, 2, 105, 0, 1, 169, 195, 109, 2, 105, 0, 1, 179, 195, 108, 101,
-			109, 2, 105, 0, 2, 32, 17, 70, 0, 2, 101, 28, 17, 0, 2, 101, 99, 105, 0, 2, 101, 102, 0, 2, 101, 116, 101, 107, 0, 2,
-			101, 116, 101, 114, 109, 0, 2, 105, 28, 17, 0, 2, 105, 99, 107, 0, 2, 105, 100, 97, 107, 116, 105, 0, 2, 105, 102, 0, 2, 105,
-			107, 32, 0, 2, 105, 107, 116, 0, 2, 105, 111, 0, 2, 105, 114, 0, 2, 105, 115, 107, 114, 101, 0, 2, 105, 115, 107, 117, 0, 2,
-			105, 115, 112, 0, 2, 105, 115, 116, 0, 2, 105, 115, 116, 105, 99, 0, 2, 105, 122, 109, 117, 115, 0, 2, 105, 195, 179, 0, 2, 195,
-			173, 28, 17, 0, 8, 2, 101, 99, 101, 0, 8, 2, 101, 102, 105, 110, 105, 116, 195, 173, 118, 0, 8, 2, 101, 105, 110, 116, 101, 0,
-			8, 2, 101, 107, 111, 114, 0, 8, 2, 101, 107, 114, 101, 109, 101, 110, 116, 0, 8, 2, 101, 107, 114, 195, 169, 116, 0, 8, 2, 101,
-			107, 195, 161, 100, 0, 8, 2, 101, 107, 195, 179, 114, 0, 8, 2, 101, 108, 101, 103, 0, 8, 2, 101, 108, 105, 109, 0, 8, 2, 101,
-			112, 114, 101, 115, 0, 8, 2, 101, 115, 105, 103, 0, 8, 2, 101, 115, 116, 105, 0, 8, 2, 101, 116, 97, 105, 108, 0, 8, 2, 101,
-			116, 101, 107, 116, 195, 173, 0, 8, 2, 101, 118, 105, 122, 0, 8, 2, 101, 118, 195, 173, 122, 0, 8, 2, 101, 122, 0, 8, 2, 105,
-			97, 0, 8, 2, 105, 101, 99, 0, 8, 2, 105, 101, 116, 0, 8, 2, 105, 102, 116, 195, 173, 110, 0, 8, 2, 105, 103, 0, 8, 2,
-			105, 109, 101, 110, 0, 8, 2, 105, 112, 0, 8, 2, 105, 115, 0, 8, 2, 105, 115, 107, 0, 8, 2, 105, 118, 195, 173, 122, 0, 8,
-			2, 105, 195, 161, 0, 8, 2, 105, 195, 169, 0, 8, 97, 107, 2, 101, 116, 0, 8, 97, 110, 2, 195, 173, 100, 0, 8, 97, 110, 2,
-			195, 173, 196, 143, 0, 8, 97, 114, 2, 105, 107, 195, 161, 108, 0, 8, 97, 114, 116, 2, 195, 173, 0, 8, 97, 116, 161, 197, 2, 105,
-			0, 8, 101, 2, 105, 116, 0, 8, 101, 102, 2, 101, 114, 0, 8, 101, 112, 120, 101, 2, 105, 0, 8, 101, 114, 112, 2, 105, 122, 98,
-			0, 8, 101, 114, 112, 2, 105, 197, 161, 0, 8, 101, 114, 112, 2, 195, 173, 100, 0, 8, 101, 114, 112, 2, 195, 173, 196, 143, 0, 8,
-			105, 2, 101, 97, 0, 8, 105, 2, 101, 110, 116, 105, 0, 8, 105, 2, 101, 195, 161, 0, 8, 105, 2, 105, 108, 0, 8, 105, 2, 105,
-			111, 0, 8, 105, 108, 97, 118, 110, 105, 2, 105, 116, 0, 8, 105, 108, 97, 118, 110, 105, 2, 105, 122, 0, 8, 105, 118, 2, 101, 97,
-			0, 8, 105, 118, 2, 101, 111, 0, 8, 105, 118, 2, 101, 117, 0, 8, 105, 118, 101, 2, 101, 110, 0, 8, 105, 122, 101, 114, 112, 2,
-			101, 110, 116, 0, 8, 110, 97, 104, 2, 105, 0, 8, 110, 97, 107, 115, 2, 105, 0, 8, 110, 101, 112, 105, 116, 161, 197, 2, 105, 0,
-			8, 110, 105, 2, 101, 120, 0, 8, 110, 111, 112, 161, 197, 101, 114, 111, 107, 2, 101, 110, 0, 8, 111, 2, 105, 110, 0, 8, 111, 2,
-			105, 115, 0, 8, 111, 2, 105, 197, 161, 0, 8, 111, 2, 195, 173, 196, 143, 0, 8, 111, 107, 2, 105, 102, 105, 0, 8, 111, 109, 2,
-			101, 108, 0, 8, 111, 109, 2, 101, 109, 0, 8, 111, 109, 2, 105, 0, 8, 111, 112, 2, 195, 173, 100, 0, 8, 111, 112, 2, 195, 173,
-			196, 143, 0, 8, 111, 116, 101, 109, 2, 105, 0, 8, 114, 97, 100, 110, 97, 116, 161, 197, 2, 105, 122, 0, 8, 117, 97, 2, 105, 0,
-			8, 117, 97, 2, 105, 0, 8, 117, 116, 161, 197, 2, 101, 110, 0, 8, 117, 116, 161, 197, 2, 105, 0, 8, 161, 195, 116, 161, 197, 2,
-			105, 0, 8, 186, 195, 116, 161, 197, 2, 105, 0, 4, 197, 190, 3, 75, 0, 197, 190, 2, 32, 17, 70, 0, 197, 190, 2, 32, 3, 76,
-			0, 4, 2, 101, 3, 116, 0, 2, 105, 0, 2, 195, 173, 0, 122, 2, 32, 3, 117, 0, 4, 122, 3, 118, 0, 122, 2, 32, 17, 70,
-			0, 7, 6, 101, 0, 3, 36, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 4, 3, 81, 0, 2, 32,
-			17, 70, 0, 7, 6, 104, 0, 2, 32, 3, 101, 0, 4, 3, 107, 0, 2, 32, 17, 70, 0, 7, 6, 105, 0, 97, 3, 2, 37, 35,
-			0, 101, 3, 2, 37, 36, 0, 117, 3, 2, 37, 40, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0,
-			7, 6, 108, 0, 1, 25, 2, 25, 3, 45, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 97, 8, 2, 45, 14,
-			128, 132, 131, 3, 6, 50, 35, 0, 4, 3, 50, 0, 1, 17, 67, 21, 2, 101, 106, 32, 0, 1, 97, 2, 105, 109, 0, 1, 97, 103,
-			114, 111, 2, 105, 122, 0, 1, 97, 109, 2, 105, 0, 1, 97, 118, 122, 2, 101, 106, 32, 0, 1, 100, 97, 105, 114, 2, 101, 0, 1,
-			101, 103, 2, 101, 0, 1, 101, 108, 111, 118, 2, 195, 173, 0, 1, 103, 97, 109, 2, 101, 0, 1, 104, 99, 2, 105, 99, 0, 1, 104,
-			99, 2, 105, 107, 0, 1, 105, 2, 105, 99, 105, 0, 1, 108, 161, 195, 2, 105, 0, 1, 108, 161, 195, 105, 99, 111, 115, 2, 101, 0,
-			1, 108, 161, 195, 109, 114, 111, 102, 2, 101, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105, 107, 0, 1, 111, 2, 105, 115, 0, 1,
-			111, 102, 2, 105, 99, 0, 1, 111, 103, 2, 105, 0, 1, 111, 103, 97, 116, 2, 105, 115, 0, 1, 111, 109, 114, 97, 104, 2, 105, 0,
-			1, 111, 114, 2, 105, 99, 0, 1, 111, 114, 2, 105, 107, 0, 1, 111, 114, 100, 110, 101, 2, 105, 0, 1, 111, 114, 116, 2, 105, 0,
-			1, 114, 101, 116, 110, 105, 2, 101, 0, 1, 116, 161, 195, 116, 161, 197, 2, 101, 32, 0, 1, 117, 109, 2, 105, 107, 0, 1, 117, 109,
-			2, 105, 115, 0, 1, 118, 161, 195, 114, 112, 115, 2, 101, 0, 1, 118, 173, 195, 116, 97, 110, 2, 101, 0, 1, 122, 180, 195, 114, 2,
-			101, 0, 1, 169, 195, 114, 116, 2, 105, 0, 1, 173, 195, 108, 2, 105, 0, 1, 179, 195, 102, 2, 105, 0, 1, 179, 195, 103, 2, 105,
-			0, 1, 179, 195, 109, 114, 97, 104, 2, 105, 0, 2, 101, 28, 17, 0, 2, 101, 104, 111, 32, 0, 2, 101, 110, 116, 0, 2, 105, 28,
-			17, 0, 2, 105, 115, 116, 0, 2, 105, 122, 109, 117, 115, 32, 0, 2, 195, 173, 28, 17, 0, 8, 2, 101, 103, 0, 8, 2, 101, 103,
-			97, 116, 195, 173, 118, 0, 8, 2, 101, 103, 195, 161, 99, 0, 8, 2, 101, 111, 107, 108, 97, 115, 0, 8, 2, 101, 111, 112, 114, 195,
-			169, 110, 0, 8, 2, 101, 111, 114, 101, 0, 8, 2, 101, 114, 118, 0, 8, 2, 101, 117, 116, 114, 195, 161, 108, 0, 8, 2, 101, 120,
-			116, 0, 8, 2, 101, 195, 179, 110, 0, 8, 2, 105, 107, 111, 116, 0, 8, 97, 104, 99, 101, 109, 2, 105, 0, 8, 97, 112, 2, 101,
-			108, 0, 8, 97, 116, 111, 98, 2, 105, 0, 8, 100, 97, 105, 190, 197, 2, 101, 0, 8, 100, 122, 161, 195, 114, 112, 2, 101, 0, 8,
-			101, 2, 101, 114, 103, 0, 8, 101, 98, 2, 101, 102, 0, 8, 101, 103, 2, 105, 0, 8, 101, 109, 2, 101, 197, 190, 0, 8, 101, 114,
-			2, 101, 115, 0, 8, 101, 116, 2, 105, 115, 0, 8, 103, 105, 115, 2, 105, 0, 8, 104, 99, 101, 116, 2, 105, 0, 8, 105, 102, 101,
-			100, 2, 105, 116, 195, 173, 118, 0, 8, 105, 102, 101, 100, 2, 195, 173, 99, 0, 8, 105, 107, 116, 97, 109, 2, 101, 0, 8, 105, 108,
-			2, 101, 0, 8, 105, 109, 2, 105, 0, 8, 105, 109, 100, 97, 2, 105, 115, 116, 0, 8, 108, 161, 195, 101, 114, 2, 101, 0, 8, 108,
-			161, 195, 105, 99, 101, 112, 161, 197, 2, 101, 0, 8, 108, 161, 195, 110, 111, 115, 114, 101, 112, 2, 101, 0, 8, 108, 161, 195, 117, 116,
-			107, 97, 2, 101, 0, 8, 110, 105, 118, 2, 101, 0, 8, 111, 102, 2, 101, 0, 8, 111, 108, 111, 107, 2, 105, 0, 8, 111, 109, 2,
-			105, 0, 8, 114, 186, 195, 116, 108, 117, 107, 2, 101, 0, 8, 116, 114, 97, 112, 2, 101, 114, 0, 8, 116, 115, 101, 105, 109, 2, 101,
-			0, 8, 116, 161, 195, 116, 161, 197, 2, 101, 0, 8, 116, 169, 195, 114, 107, 110, 111, 107, 2, 101, 0, 8, 117, 2, 105, 0, 8, 117,
-			109, 2, 105, 0, 8, 117, 109, 105, 2, 105, 0, 8, 117, 109, 111, 107, 2, 105, 0, 8, 117, 116, 2, 105, 115, 0, 8, 118, 173, 195,
-			116, 97, 114, 116, 115, 105, 110, 105, 109, 100, 97, 2, 101, 0, 8, 169, 195, 103, 2, 105, 0, 8, 169, 195, 114, 116, 2, 101, 114, 0,
-			8, 179, 195, 108, 111, 107, 2, 105, 0, 8, 190, 197, 161, 195, 118, 2, 101, 0, 4, 2, 101, 3, 67, 0, 2, 105, 0, 2, 195, 173,
-			0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 129, 0, 7, 6, 112, 0, 111, 8, 2, 45, 14,
-			128, 132, 131, 3, 6, 48, 39, 0, 111, 100, 8, 2, 45, 14, 128, 132, 132, 3, 6, 48, 39, 47, 0, 114, 105, 8, 2, 45, 14, 128,
-			132, 132, 3, 6, 48, 51, 37, 0, 3, 48, 0, 111, 118, 8, 2, 115, 116, 97, 17, 67, 3, 48, 39, 83, 0, 7, 6, 113, 0, 3,
-			49, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 1, 25, 2, 25, 3, 44, 0, 4, 3, 51, 0, 114, 0, 7, 6, 115, 0, 111, 8,
-			2, 45, 14, 128, 132, 131, 3, 6, 89, 39, 0, 3, 89, 0, 7, 6, 116, 0, 4, 3, 47, 0, 1, 97, 2, 105, 99, 107, 0, 1,
-			97, 2, 105, 107, 195, 161, 0, 1, 97, 2, 105, 110, 0, 1, 97, 2, 105, 122, 0, 1, 97, 104, 99, 2, 105, 99, 0, 1, 97, 104,
-			99, 2, 105, 107, 0, 1, 97, 109, 2, 105, 99, 107, 0, 1, 97, 109, 2, 105, 107, 0, 1, 97, 109, 97, 2, 105, 99, 0, 1, 97,
-			109, 97, 2, 105, 107, 0, 1, 97, 109, 101, 2, 105, 0, 1, 97, 109, 101, 116, 2, 105, 0, 1, 101, 2, 105, 99, 0, 1, 101, 2,
-			105, 107, 0, 1, 101, 108, 112, 109, 111, 107, 2, 105, 122, 0, 1, 105, 2, 105, 99, 0, 1, 105, 2, 105, 107, 0, 1, 105, 108, 2,
-			105, 99, 0, 1, 107, 97, 2, 105, 0, 1, 107, 97, 2, 105, 107, 0, 1, 107, 97, 100, 105, 100, 2, 105, 0, 1, 107, 101, 2, 105,
-			0, 1, 107, 101, 2, 195, 173, 0, 1, 107, 114, 2, 105, 0, 1, 110, 2, 105, 99, 0, 1, 110, 2, 105, 110, 0, 1, 110, 97, 2,
-			105, 0, 1, 110, 101, 2, 105, 110, 0, 1, 110, 101, 118, 2, 105, 108, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105, 107, 0, 1,
-			111, 109, 2, 105, 118, 0, 1, 111, 114, 2, 105, 99, 0, 1, 111, 114, 2, 105, 107, 0, 1, 112, 101, 2, 105, 99, 0, 1, 112, 101,
-			2, 105, 107, 0, 1, 112, 111, 2, 105, 0, 1, 114, 97, 112, 2, 105, 0, 1, 115, 2, 105, 99, 0, 1, 115, 97, 2, 105, 99, 0,
-			1, 115, 101, 114, 112, 2, 105, 197, 190, 0, 1, 115, 101, 118, 110, 105, 2, 105, 0, 1, 115, 111, 2, 105, 99, 0, 1, 189, 195, 2,
-			105, 99, 0, 2, 101, 28, 17, 0, 2, 105, 28, 17, 0, 2, 105, 99, 107, 0, 2, 105, 107, 32, 0, 2, 105, 110, 103, 0, 2, 105,
-			115, 116, 0, 2, 105, 122, 109, 117, 115, 32, 0, 2, 195, 173, 28, 17, 0, 8, 2, 101, 114, 101, 115, 116, 114, 105, 0, 8, 2, 105,
-			109, 111, 116, 101, 106, 0, 8, 2, 105, 114, 97, 110, 0, 8, 2, 105, 116, 97, 110, 0, 8, 2, 105, 116, 117, 108, 0, 8, 97, 109,
-			101, 116, 97, 109, 2, 105, 0, 8, 97, 109, 111, 116, 117, 97, 2, 105, 0, 8, 97, 112, 97, 2, 105, 0, 8, 97, 112, 105, 116, 110,
-			97, 2, 105, 0, 8, 97, 115, 2, 105, 114, 0, 8, 97, 115, 2, 105, 115, 0, 8, 97, 116, 161, 197, 2, 105, 0, 8, 101, 109, 114,
-			101, 104, 2, 105, 0, 8, 101, 109, 122, 111, 107, 2, 105, 0, 8, 101, 110, 103, 97, 109, 2, 105, 0, 8, 101, 110, 111, 102, 2, 105,
-			0, 8, 101, 114, 107, 110, 111, 107, 2, 105, 122, 0, 8, 101, 116, 110, 121, 115, 2, 105, 0, 8, 105, 114, 107, 2, 105, 99, 0, 8,
-			105, 114, 107, 2, 105, 107, 0, 8, 105, 114, 107, 2, 105, 122, 0, 8, 105, 115, 110, 101, 115, 2, 105, 0, 8, 107, 97, 2, 105, 118,
-			0, 8, 107, 117, 100, 111, 114, 112, 2, 105, 0, 8, 108, 117, 107, 2, 105, 0, 8, 108, 117, 109, 2, 105, 0, 8, 110, 97, 2, 105,
-			0, 8, 110, 97, 108, 116, 97, 2, 105, 0, 8, 110, 101, 99, 2, 105, 0, 8, 110, 101, 100, 105, 2, 105, 0, 8, 110, 101, 118, 101,
-			114, 112, 2, 195, 173, 118, 0, 8, 110, 111, 107, 2, 105, 0, 8, 111, 97, 104, 99, 2, 105, 99, 0, 8, 111, 97, 104, 99, 2, 105,
-			107, 0, 8, 111, 107, 105, 110, 2, 105, 0, 8, 111, 120, 101, 2, 105, 0, 8, 114, 101, 99, 2, 105, 0, 8, 114, 101, 118, 2, 105,
-			0, 8, 115, 2, 105, 109, 117, 108, 0, 8, 115, 98, 97, 2, 105, 0, 8, 115, 101, 100, 2, 105, 0, 8, 115, 105, 108, 97, 98, 2,
-			105, 0, 8, 115, 105, 114, 101, 116, 107, 97, 114, 97, 104, 99, 2, 105, 0, 8, 115, 105, 114, 101, 116, 107, 97, 114, 97, 104, 99, 2,
-			195, 173, 107, 0, 8, 115, 105, 116, 97, 116, 161, 197, 2, 105, 0, 8, 115, 110, 105, 2, 105, 0, 8, 115, 110, 111, 107, 2, 105, 0,
-			8, 115, 111, 110, 103, 97, 105, 100, 2, 105, 0, 8, 115, 117, 106, 2, 105, 0, 8, 117, 101, 99, 97, 109, 114, 97, 102, 2, 105, 0,
-			8, 117, 112, 2, 105, 107, 0, 8, 120, 101, 116, 2, 105, 108, 0, 8, 161, 197, 2, 105, 112, 101, 110, 100, 105, 0, 8, 161, 197, 101,
-			114, 2, 105, 0, 8, 161, 197, 110, 105, 2, 105, 0, 8, 161, 197, 110, 105, 101, 100, 2, 105, 0, 8, 161, 197, 110, 111, 107, 2, 105,
-			0, 4, 195, 173, 1, 97, 2, 118, 3, 47, 121, 0, 195, 173, 1, 105, 2, 118, 0, 195, 173, 1, 107, 101, 112, 115, 2, 118, 0, 195,
-			173, 1, 111, 109, 2, 118, 0, 195, 173, 1, 114, 111, 2, 109, 0, 195, 173, 1, 115, 101, 108, 97, 2, 116, 0, 195, 173, 1, 117, 110,
-			107, 105, 118, 0, 195, 173, 8, 2, 109, 111, 118, 0, 195, 173, 8, 97, 103, 101, 110, 2, 118, 0, 195, 173, 8, 97, 110, 114, 101, 116,
-			108, 97, 2, 118, 0, 195, 173, 8, 102, 105, 100, 2, 110, 0, 195, 173, 8, 105, 100, 117, 97, 2, 118, 0, 195, 173, 8, 105, 110, 105,
-			102, 101, 100, 2, 118, 0, 195, 173, 8, 105, 115, 110, 101, 115, 0, 195, 173, 8, 107, 97, 2, 118, 0, 195, 173, 8, 107, 101, 116, 101,
-			100, 0, 195, 173, 8, 107, 117, 100, 111, 114, 112, 2, 118, 0, 195, 173, 8, 107, 117, 114, 116, 161, 197, 110, 111, 107, 2, 118, 0, 195,
-			173, 8, 115, 101, 108, 97, 112, 0, 195, 173, 8, 115, 117, 106, 0, 4, 2, 101, 3, 115, 0, 2, 105, 0, 2, 195, 173, 0, 7, 6,
-			117, 0, 3, 40, 0, 7, 6, 118, 0, 121, 8, 2, 21, 14, 128, 132, 130, 3, 6, 84, 37, 0, 1, 17, 65, 2, 25, 3, 58, 0,
-			4, 3, 84, 0, 1, 17, 65, 2, 108, 25, 0, 1, 17, 65, 2, 110, 0, 1, 17, 65, 2, 196, 186, 0, 1, 17, 65, 2, 197, 136,
-			0, 7, 6, 119, 0, 1, 17, 65, 2, 25, 3, 58, 0, 4, 3, 84, 0, 104, 2, 12, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7,
-			6, 121, 0, 3, 37, 0, 7, 6, 122, 0, 4, 3, 88, 0, 2, 32, 17, 70, 0, 2, 32, 3, 89, 0, 7, 6, 0, 196, 155, 3,
-			36, 0, 37, 1, 32, 15, 3, 48, 36, 51, 117, 36, 50, 47, 0, 37, 3, 48, 36, 51, 117, 36, 50, 47, 39, 0, 36, 3, 72, 39,
-			55, 124, 51, 0, 197, 175, 3, 126, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts58 = FileInMemory_createWithData (9161, reinterpret_cast<const char *> (&espeakdata_dicts58_data), 
-			U"espeak-1.48.04-source/espeak-data/sk_dict", 
+		static unsigned char espeakdata_dicts57_data[8715] = {
+			0, 4, 0, 0, 105, 18, 0, 0, 0, 10, 135, 197, 190, 9, 1, 4, 14, 9, 20, 0, 0, 0, 0, 6, 65, 4, 124, 0, 14, 5,
+			193, 4, 72, 8, 0, 0, 0, 0, 11, 136, 26, 18, 21, 196, 141, 14, 195, 173, 20, 6, 65, 8, 71, 123, 0, 0, 0, 0, 14, 139,
+			22, 197, 161, 5, 20, 5, 196, 141, 14, 195, 173, 20, 0, 6, 65, 12, 117, 123, 0, 0, 0, 18, 4, 95, 8, 1, 3, 89, 10, 65,
+			6, 36, 49, 76, 36, 67, 39, 65, 0, 0, 0, 6, 65, 16, 72, 123, 0, 0, 0, 0, 0, 5, 65, 20, 123, 0, 0, 0, 0, 7,
+			196, 80, 145, 84, 60, 20, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 6, 65, 28, 81, 123, 0, 0, 0, 0, 0, 6, 65, 32,
+			107, 124, 0, 0, 0, 0, 11, 1, 35, 49, 51, 121, 90, 37, 49, 0, 27, 0, 5, 65, 36, 121, 0, 0, 0, 13, 1, 38, 35, 65,
+			48, 36, 51, 89, 35, 50, 72, 0, 0, 0, 6, 65, 40, 57, 123, 0, 0, 0, 12, 1, 42, 107, 84, 37, 36, 88, 72, 35, 0, 27,
+			0, 9, 1, 43, 48, 55, 40, 89, 0, 27, 0, 7, 65, 44, 49, 124, 0, 14, 6, 65, 44, 49, 0, 28, 0, 0, 0, 12, 137, 12,
+			15, 7, 9, 19, 20, 195, 173, 11, 20, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 7, 196, 32, 241, 14, 36, 20, 0, 7, 132, 9,
+			14, 195, 173, 20, 6, 65, 52, 36, 65, 0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 6, 65, 60, 125, 0, 14,
+			9, 65, 60, 39, 10, 0, 72, 28, 23, 0, 16, 141, 16, 18, 5, 19, 22, 5, 4, 196, 141, 5, 14, 195, 173, 20, 12, 1, 61, 51,
+			39, 84, 50, 124, 89, 35, 0, 27, 0, 0, 0, 11, 1, 64, 88, 35, 84, 37, 50, 124, 76, 0, 6, 65, 64, 48, 123, 0, 0, 0,
+			0, 0, 7, 65, 68, 49, 84, 123, 0, 0, 0, 6, 195, 36, 226, 84, 20, 0, 0, 6, 65, 72, 36, 51, 0, 0, 0, 0, 0, 15,
+			140, 21, 11, 18, 9, 197, 190, 15, 22, 1, 14, 195, 173, 20, 7, 65, 76, 36, 89, 0, 14, 7, 65, 76, 89, 10, 0, 8, 0, 7,
+			195, 36, 224, 75, 72, 8, 0, 0, 7, 196, 80, 82, 148, 60, 20, 0, 6, 65, 80, 47, 123, 0, 0, 0, 9, 134, 16, 5, 11, 14,
+			195, 173, 20, 0, 0, 5, 65, 84, 126, 0, 0, 12, 137, 22, 195, 161, 197, 190, 5, 14, 195, 173, 20, 0, 13, 138, 19, 195, 186, 196,
+			141, 1, 19, 14, 195, 173, 20, 0, 0, 7, 65, 88, 84, 123, 0, 14, 7, 65, 88, 84, 10, 0, 28, 0, 0, 0, 14, 4, 95, 49,
+			77, 52, 71, 6, 37, 55, 37, 125, 50, 0, 0, 15, 65, 92, 72, 84, 6, 39, 57, 37, 47, 123, 4, 84, 123, 0, 0, 0, 0, 16,
+			1, 95, 47, 84, 44, 72, 124, 65, 6, 36, 118, 36, 51, 35, 0, 0, 13, 4, 95, 49, 77, 49, 115, 6, 37, 89, 121, 117, 0, 7,
+			65, 96, 37, 49, 89, 0, 0, 14, 4, 95, 49, 77, 50, 65, 6, 37, 55, 37, 125, 50, 0, 0, 16, 4, 95, 49, 77, 51, 65, 6,
+			37, 55, 57, 35, 51, 72, 35, 0, 0, 0, 11, 65, 100, 37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36,
+			47, 0, 14, 7, 65, 104, 88, 10, 0, 28, 0, 0, 0, 0, 0, 0, 9, 134, 13, 195, 161, 14, 9, 1, 20, 0, 0, 7, 132, 15,
+			14, 195, 173, 20, 0, 0, 9, 134, 13, 195, 161, 14, 9, 5, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 196, 40, 81, 5, 56, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 50, 77, 49, 72, 84, 6, 36, 115, 6, 37, 89, 121, 117, 0, 0, 0, 9, 134, 13,
+			195, 161, 14, 9, 21, 20, 20, 4, 95, 50, 77, 51, 72, 84, 6, 36, 65, 6, 37, 55, 57, 35, 51, 72, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 12, 137, 22, 195, 173, 14, 5, 196, 141, 11, 15, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 134, 13, 12, 1, 4, 195, 173, 20, 0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 160, 72, 8, 0, 0, 7, 196, 89, 65,
+			68, 100, 20, 0, 0, 0, 0, 0, 0, 0, 6, 195, 80, 145, 64, 20, 0, 0, 0, 0, 0, 10, 135, 13, 195, 161, 14, 9, 15, 21,
+			20, 0, 0, 0, 0, 0, 0, 0, 9, 67, 88, 194, 192, 84, 45, 49, 0, 0, 16, 4, 95, 4, 16, 20, 9, 76, 57, 4, 35, 34,
+			49, 35, 10, 0, 0, 11, 136, 16, 18, 9, 10, 1, 20, 195, 173, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95,
+			35, 57, 47, 6, 35, 71, 0, 17, 4, 95, 20, 12, 4, 89, 10, 84, 6, 45, 50, 39, 84, 49, 129, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 2, 25, 197, 165, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+			135, 11, 1, 197, 190, 4, 5, 10, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 141, 9, 14, 20, 5,
+			12, 9, 7, 5, 14, 20, 14, 195, 173, 20, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 243, 0, 76, 0, 7, 196, 88, 147, 133, 56,
+			20, 0, 0, 0, 7, 195, 8, 86, 128, 8, 23, 0, 0, 0, 0, 11, 136, 19, 1, 13, 15, 20, 14, 195, 173, 20, 15, 140, 9, 14,
+			20, 18, 15, 22, 5, 18, 20, 14, 195, 173, 20, 0, 7, 195, 8, 86, 143, 8, 23, 0, 0, 0, 0, 7, 196, 60, 180, 133, 52, 8,
+			0, 0, 0, 0, 9, 67, 16, 194, 0, 72, 45, 107, 0, 0, 0, 0, 0, 0, 9, 134, 22, 9, 14, 14, 195, 173, 20, 0, 0, 10,
+			3, 226, 130, 172, 36, 40, 51, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 50, 6, 72, 84,
+			6, 36, 0, 0, 9, 198, 52, 21, 11, 36, 226, 64, 20, 0, 0, 16, 141, 9, 14, 4, 9, 22, 9, 4, 21, 195, 161, 12, 14, 5,
+			20, 9, 133, 19, 195, 173, 3, 5, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 4, 95, 13, 3, 14,
+			89, 10, 65, 6, 35, 49, 51, 39, 50, 39, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 131, 196, 141, 15, 72, 8, 0,
+			0, 0, 13, 3, 226, 128, 176, 48, 51, 39, 65, 37, 55, 36, 0, 0, 0, 13, 138, 20, 5, 12, 5, 22, 195, 173, 26, 14, 5, 20,
+			0, 0, 0, 8, 133, 10, 195, 186, 14, 9, 20, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 47, 14, 16, 6, 37, 72, 89,
+			35, 115, 0, 0, 7, 196, 80, 84, 129, 104, 20, 10, 3, 95, 48, 67, 89, 47, 6, 39, 0, 0, 0, 0, 0, 0, 13, 138, 16, 18,
+			9, 5, 13, 5, 18, 14, 195, 173, 20, 0, 0, 0, 0, 0, 0, 6, 195, 77, 65, 64, 72, 0, 0, 0, 5, 194, 40, 80, 72, 16,
+			3, 95, 49, 57, 116, 6, 36, 84, 122, 47, 50, 124, 89, 115, 0, 0, 7, 195, 65, 34, 64, 8, 23, 15, 3, 95, 49, 56, 6, 39,
+			89, 36, 65, 50, 124, 89, 115, 0, 0, 7, 196, 20, 229, 5, 72, 20, 14, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 6, 39, 0,
+			0, 0, 0, 0, 0, 11, 3, 226, 136, 146, 65, 121, 50, 40, 89, 0, 0, 15, 3, 95, 49, 49, 57, 6, 36, 72, 36, 50, 124, 89,
+			115, 0, 0, 12, 3, 95, 49, 48, 116, 6, 36, 89, 35, 115, 0, 0, 15, 3, 95, 49, 51, 47, 14, 16, 6, 37, 50, 124, 89, 115,
+			0, 0, 14, 3, 95, 49, 50, 72, 84, 6, 35, 50, 124, 89, 115, 0, 0, 14, 3, 95, 49, 53, 48, 6, 122, 47, 50, 124, 89, 115,
+			0, 0, 14, 3, 95, 49, 52, 91, 47, 44, 50, 6, 124, 89, 115, 0, 0, 16, 3, 95, 49, 55, 89, 6, 36, 116, 36, 65, 50, 124,
+			89, 115, 0, 0, 15, 3, 95, 49, 54, 91, 6, 36, 89, 47, 50, 124, 89, 115, 0, 0, 0, 18, 3, 95, 55, 88, 89, 6, 36, 116,
+			36, 65, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 16, 12, 197, 165, 48, 45, 115,
+			0, 0, 0, 9, 134, 195, 173, 4, 5, 15, 21, 20, 0, 6, 195, 52, 145, 9, 20, 0, 0, 0, 0, 0, 0, 0, 0, 24, 11, 16,
+			15, 19, 20, 9, 8, 14, 21, 20, 195, 173, 48, 39, 89, 115, 37, 107, 50, 40, 47, 121, 0, 0, 14, 3, 95, 50, 88, 72, 84, 6,
+			35, 72, 89, 35, 115, 0, 0, 0, 0, 17, 5, 95, 48, 77, 65, 51, 65, 6, 37, 55, 57, 35, 51, 72, 37, 0, 0, 16, 5, 95,
+			48, 77, 65, 50, 65, 6, 37, 55, 37, 125, 50, 37, 0, 0, 0, 16, 5, 95, 48, 77, 65, 52, 71, 6, 37, 55, 37, 125, 50, 37,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 79, 8, 12, 3, 95, 63, 63, 89, 37, 65, 71, 39, 55, 0, 0, 0, 0, 6,
+			195, 76, 209, 64, 72, 16, 3, 95, 52, 88, 91, 47, 6, 37, 16, 37, 72, 89, 35, 115, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194,
+			56, 16, 72, 23, 0, 16, 3, 95, 53, 88, 48, 6, 122, 115, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 11, 136, 15, 11, 15,
+			12, 9, 20, 195, 173, 20, 0, 7, 196, 64, 85, 5, 72, 20, 0, 0, 0, 17, 3, 95, 54, 88, 91, 6, 36, 89, 115, 116, 36, 89,
+			57, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 6, 195, 169, 14, 9, 24, 20, 0, 17,
+			3, 95, 56, 88, 6, 39, 89, 36, 65, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 32, 240, 76, 0, 18,
+			3, 95, 57, 88, 72, 6, 36, 84, 122, 115, 116, 36, 89, 57, 35, 47, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 63, 65, 88,
+			50, 35, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 15, 7, 15, 89, 10, 6, 39, 81, 39,
+			67, 49, 39, 65, 0, 0, 0, 8, 197, 52, 20, 148, 36, 224, 20, 0, 0, 0, 0, 11, 136, 15, 19, 20, 1, 20, 14, 195, 173, 20,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 48, 77, 52, 71, 6, 37, 55, 37, 125, 50, 39, 40,
+			0, 0, 0, 16, 4, 95, 48, 77, 50, 65, 6, 37, 55, 37, 125, 50, 39, 40, 0, 0, 15, 4, 95, 48, 77, 51, 65, 6, 37, 55,
+			57, 35, 51, 47, 0, 0, 0, 13, 4, 95, 48, 77, 49, 115, 6, 37, 89, 121, 117, 0, 0, 13, 4, 95, 2, 18, 22, 71, 51, 6,
+			36, 84, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 195, 173, 4, 5, 1, 20, 0, 0, 0, 0, 8, 133,
+			195, 173, 4, 5, 5, 20, 0, 0, 0, 0, 8, 133, 195, 173, 4, 5, 9, 20, 0, 0, 0, 11, 136, 19, 3, 8, 15, 16, 14, 195,
+			173, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 195, 173, 4, 5, 21, 20, 0, 0, 0, 0, 8, 133, 195, 173, 4, 5, 25,
+			20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 15, 16, 1, 20, 18, 14, 195, 173,
+			20, 0, 0, 13, 138, 16, 18, 195, 173, 2, 21, 26, 14, 195, 173, 20, 0, 0, 0, 20, 4, 95, 3, 9, 18, 89, 6, 39, 89, 47,
+			51, 37, 38, 4, 36, 91, 49, 129, 0, 0, 0, 14, 139, 13, 9, 13, 15, 22, 12, 195, 161, 4, 14, 5, 20, 14, 139, 6, 12, 5,
+			24, 9, 2, 9, 12, 14, 195, 173, 20, 0, 0, 24, 3, 95, 194, 183, 71, 39, 72, 49, 35, 6, 84, 48, 51, 39, 89, 47, 51, 57,
+			36, 72, 49, 40, 0, 0, 11, 3, 95, 194, 180, 72, 135, 90, 36, 67, 0, 0, 0, 13, 3, 95, 194, 178, 50, 35, 72, 51, 40, 107,
+			126, 0, 0, 14, 3, 95, 194, 179, 50, 35, 47, 51, 36, 47, 57, 40, 0, 0, 0, 0, 0, 0, 24, 4, 95, 19, 20, 11, 89, 39,
+			10, 91, 6, 37, 49, 65, 121, 65, 72, 6, 135, 90, 67, 39, 65, 0, 0, 18, 3, 95, 194, 173, 65, 36, 49, 49, 124, 48, 39, 65,
+			45, 76, 49, 35, 0, 0, 19, 3, 95, 194, 170, 107, 39, 51, 50, 121, 37, 50, 72, 36, 49, 89, 6, 124, 0, 16, 4, 95, 1, 3,
+			21, 89, 10, 72, 6, 135, 90, 67, 39, 65, 0, 0, 28, 3, 95, 194, 171, 72, 84, 39, 57, 37, 47, 124, 55, 39, 65, 36, 50, 124,
+			15, 88, 124, 47, 84, 39, 51, 49, 35, 0, 0, 0, 0, 6, 195, 60, 225, 78, 20, 11, 136, 14, 1, 4, 195, 173, 19, 197, 165, 20,
+			21, 3, 95, 194, 166, 48, 51, 36, 51, 40, 91, 36, 50, 124, 6, 76, 37, 35, 51, 35, 0, 0, 12, 137, 16, 18, 5, 4, 195, 173,
+			19, 197, 165, 20, 5, 194, 76, 16, 76, 0, 0, 0, 0, 0, 17, 4, 95, 18, 14, 7, 89, 10, 49, 51, 6, 126, 91, 49, 39, 65,
+			0, 0, 24, 3, 95, 194, 161, 39, 71, 34, 124, 115, 36, 50, 121, 84, 6, 121, 49, 51, 37, 76, 67, 121, 49, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 80, 81, 1, 20, 10, 135, 15, 4,
+			195, 173, 19, 197, 165, 20, 0, 11, 136, 16, 15, 4, 195, 173, 19, 197, 165, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3, 95,
+			194, 191, 39, 71, 51, 124, 115, 36, 50, 121, 6, 39, 47, 124, 88, 67, 37, 49, 0, 0, 0, 0, 0, 28, 3, 95, 194, 187, 72, 84,
+			39, 57, 37, 47, 124, 55, 39, 65, 36, 50, 124, 15, 88, 35, 47, 84, 39, 51, 37, 115, 0, 0, 12, 3, 95, 194, 184, 117, 36, 72,
+			37, 55, 35, 0, 0, 12, 3, 95, 194, 185, 50, 35, 48, 51, 84, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 195, 151,
+			49, 51, 124, 47, 0, 7, 2, 196, 143, 116, 123, 0, 0, 0, 7, 2, 196, 141, 76, 123, 0, 0, 0, 0, 0, 0, 0, 13, 2, 194,
+			167, 48, 35, 51, 35, 81, 51, 35, 83, 0, 0, 15, 2, 194, 164, 88, 50, 35, 76, 49, 35, 65, 36, 50, 37, 0, 0, 0, 11, 2,
+			194, 162, 117, 36, 50, 47, 39, 40, 0, 0, 11, 2, 194, 163, 55, 37, 71, 57, 36, 51, 0, 0, 7, 2, 197, 136, 36, 67, 0, 0,
+			0, 8, 2, 195, 166, 35, 6, 123, 0, 0, 0, 15, 2, 194, 172, 55, 39, 81, 37, 117, 49, 123, 50, 39, 47, 0, 19, 2, 195, 164,
+			6, 124, 48, 51, 36, 107, 55, 35, 89, 39, 84, 35, 50, 123, 0, 0, 0, 0, 5, 130, 196, 155, 43, 0, 0, 12, 2, 195, 161, 72,
+			4, 45, 107, 123, 6, 124, 0, 0, 8, 196, 4, 193, 66, 60, 72, 8, 0, 0, 0, 7, 2, 194, 181, 65, 126, 0, 12, 2, 195, 173,
+			72, 4, 45, 107, 123, 6, 121, 0, 0, 0, 0, 12, 2, 194, 176, 89, 47, 40, 48, 67, 39, 40, 0, 0, 15, 2, 194, 177, 48, 55,
+			40, 89, 6, 65, 121, 50, 40, 89, 0, 7, 2, 197, 153, 36, 133, 0, 12, 2, 195, 169, 72, 4, 45, 107, 123, 6, 123, 0, 0, 17,
+			2, 194, 190, 47, 34, 37, 10, 91, 47, 84, 44, 47, 37, 50, 37, 0, 0, 11, 2, 195, 183, 116, 36, 55, 36, 50, 39, 0, 0, 13,
+			2, 194, 188, 91, 47, 84, 44, 47, 37, 50, 35, 0, 16, 2, 195, 180, 6, 125, 89, 84, 4, 39, 49, 124, 67, 39, 65, 0, 0, 6,
+			195, 56, 145, 64, 72, 13, 2, 194, 189, 48, 39, 55, 39, 84, 37, 117, 35, 0, 7, 2, 197, 165, 115, 123, 0, 0, 17, 4, 95, 3,
+			5, 4, 89, 10, 117, 6, 36, 116, 37, 55, 55, 129, 0, 0, 12, 2, 195, 179, 72, 4, 45, 107, 123, 6, 125, 0, 0, 0, 9, 67,
+			64, 192, 200, 48, 45, 101, 0, 22, 4, 95, 12, 9, 7, 55, 6, 37, 81, 35, 47, 4, 126, 51, 39, 84, 4, 35, 50, 123, 0, 7,
+			2, 197, 161, 36, 91, 0, 0, 15, 2, 195, 190, 48, 39, 65, 45, 76, 49, 35, 50, 35, 72, 0, 0, 17, 2, 197, 175, 6, 126, 89,
+			10, 49, 51, 6, 126, 90, 49, 39, 65, 0, 0, 0, 18, 2, 195, 189, 72, 4, 45, 107, 123, 6, 37, 48, 89, 37, 55, 39, 50, 0,
+			0, 11, 2, 195, 186, 72, 45, 107, 123, 6, 126, 0, 0, 0, 0, 0, 7, 2, 196, 190, 36, 61, 0, 0, 0, 0, 9, 134, 18, 195,
+			180, 26, 14, 5, 20, 6, 195, 76, 243, 64, 72, 0, 8, 133, 20, 195, 173, 20, 15, 20, 13, 2, 196, 186, 72, 4, 45, 107, 123, 6,
+			36, 55, 0, 0, 0, 0, 0, 8, 2, 197, 190, 90, 36, 47, 0, 0, 0, 6, 195, 16, 83, 79, 20, 0, 0, 0, 0, 0, 0, 0,
+			12, 5, 19, 20, 196, 186, 16, 89, 47, 135, 48, 0, 0, 8, 133, 195, 186, 14, 9, 9, 20, 0, 0, 0, 0, 8, 133, 195, 186, 14,
+			9, 5, 20, 0, 0, 0, 0, 8, 133, 195, 186, 14, 9, 1, 20, 5, 194, 76, 144, 72, 6, 194, 64, 240, 8, 23, 5, 194, 76, 144,
+			76, 0, 7, 195, 64, 241, 0, 8, 23, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 14, 5, 7, 1, 20, 195, 173, 22, 14, 5, 20,
+			6, 2, 95, 1, 124, 0, 0, 0, 0, 8, 133, 195, 186, 14, 9, 21, 20, 0, 0, 7, 2, 95, 11, 49, 124, 0, 0, 0, 0, 0,
+			6, 2, 95, 15, 125, 0, 0, 0, 0, 0, 7, 2, 95, 19, 36, 89, 0, 0, 0, 0, 0, 0, 7, 2, 95, 22, 84, 123, 0, 0,
+			0, 0, 0, 8, 2, 95, 26, 88, 36, 47, 0, 0, 0, 7, 131, 197, 190, 5, 72, 8, 0, 11, 136, 1, 11, 20, 195, 173, 22, 14,
+			9, 20, 0, 0, 0, 14, 139, 4, 5, 16, 18, 5, 19, 195, 173, 22, 14, 9, 20, 0, 0, 13, 2, 95, 34, 126, 84, 39, 118, 39,
+			84, 49, 37, 0, 0, 14, 2, 95, 33, 84, 121, 49, 51, 37, 76, 67, 121, 49, 0, 0, 0, 10, 135, 16, 18, 5, 4, 5, 197, 136,
+			20, 13, 2, 95, 39, 35, 48, 39, 89, 47, 51, 39, 83, 0, 0, 0, 0, 10, 2, 95, 36, 72, 39, 55, 124, 51, 0, 0, 6, 195,
+			80, 83, 128, 20, 0, 12, 4, 95, 3, 1, 16, 84, 36, 61, 49, 123, 0, 0, 13, 2, 95, 41, 88, 35, 47, 84, 39, 51, 37, 115,
+			0, 0, 13, 2, 95, 40, 88, 124, 47, 84, 39, 51, 49, 35, 0, 0, 11, 2, 95, 47, 55, 39, 65, 36, 50, 39, 0, 0, 10, 2,
+			95, 46, 71, 39, 72, 49, 35, 0, 0, 12, 2, 95, 45, 48, 39, 65, 45, 76, 49, 35, 0, 0, 11, 2, 95, 44, 76, 37, 35, 51,
+			49, 35, 0, 0, 10, 2, 95, 51, 47, 6, 14, 16, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 11, 2, 95, 49, 57,
+			6, 36, 72, 36, 50, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 35, 0, 0, 11, 2, 95, 55, 89, 6, 36, 116, 36, 65, 0, 0,
+			10, 2, 95, 54, 91, 6, 36, 89, 115, 0, 0, 9, 2, 95, 53, 48, 6, 122, 115, 0, 0, 11, 2, 95, 52, 91, 47, 6, 37, 16,
+			37, 0, 0, 16, 2, 95, 59, 71, 39, 72, 49, 39, 76, 37, 35, 51, 49, 35, 0, 0, 14, 2, 95, 58, 72, 84, 39, 57, 71, 39,
+			72, 49, 35, 0, 0, 11, 2, 95, 57, 116, 6, 36, 84, 122, 115, 0, 0, 10, 2, 95, 56, 6, 39, 89, 36, 65, 0, 0, 12, 2,
+			95, 63, 39, 47, 124, 88, 67, 37, 49, 0, 0, 10, 2, 95, 62, 84, 36, 76, 91, 121, 0, 0, 0, 10, 2, 95, 60, 65, 36, 50,
+			91, 121, 0, 0, 0, 7, 196, 80, 83, 69, 72, 20, 0, 0, 0, 13, 138, 15, 11, 9, 5, 14, 5, 196, 141, 11, 15, 20, 0, 24,
+			11, 4, 9, 1, 7, 14, 15, 19, 20, 195, 173, 11, 72, 37, 35, 81, 50, 39, 89, 47, 121, 49, 0, 0, 0, 0, 0, 0, 29, 4,
+			95, 226, 128, 163, 47, 51, 39, 57, 40, 107, 39, 55, 50, 121, 49, 39, 84, 124, 6, 39, 72, 51, 124, 90, 49, 35, 0, 0, 14, 4,
+			95, 226, 128, 162, 39, 72, 51, 124, 90, 49, 35, 0, 0, 18, 4, 95, 226, 128, 161, 72, 84, 39, 57, 37, 47, 121, 49, 51, 121, 90,
+			0, 0, 0, 8, 197, 52, 192, 68, 20, 160, 20, 0, 0, 0, 0, 0, 0, 21, 4, 95, 226, 128, 153, 48, 34, 35, 84, 124, 6, 126,
+			84, 39, 118, 39, 84, 49, 35, 0, 0, 20, 4, 95, 226, 128, 152, 61, 35, 84, 124, 6, 126, 84, 39, 118, 39, 84, 49, 35, 0, 15,
+			4, 95, 4, 15, 20, 89, 10, 71, 6, 39, 47, 49, 129, 0, 0, 10, 4, 20, 196, 186, 11, 47, 135, 49, 0, 0, 14, 139, 16, 18,
+			9, 16, 18, 1, 22, 5, 14, 195, 173, 20, 0, 6, 195, 4, 193, 64, 8, 21, 4, 95, 226, 128, 157, 72, 39, 55, 50, 123, 6, 126,
+			84, 39, 118, 39, 84, 49, 37, 0, 21, 2, 95, 91, 107, 51, 35, 50, 35, 47, 124, 15, 88, 124, 47, 84, 39, 51, 49, 35, 0, 0,
+			21, 4, 95, 226, 128, 156, 107, 39, 34, 50, 123, 6, 126, 84, 39, 118, 39, 84, 49, 37, 0, 0, 19, 4, 95, 226, 128, 147, 72, 45,
+			107, 124, 6, 48, 39, 65, 45, 76, 49, 35, 0, 0, 6, 194, 76, 240, 8, 23, 0, 18, 2, 95, 95, 48, 39, 72, 76, 37, 35, 51,
+			49, 50, 40, 47, 37, 36, 0, 0, 13, 2, 95, 94, 89, 47, 51, 37, 36, 90, 49, 35, 0, 0, 21, 2, 95, 93, 107, 51, 35, 50,
+			35, 47, 124, 15, 88, 35, 47, 84, 39, 51, 37, 115, 0, 0, 18, 2, 95, 92, 39, 48, 35, 76, 50, 123, 15, 55, 39, 65, 36, 50,
+			39, 0, 0, 0, 0, 0, 11, 2, 95, 96, 35, 49, 117, 36, 50, 47, 0, 0, 11, 136, 13, 1, 20, 11, 9, 14, 195, 173, 20, 0,
+			12, 137, 16, 15, 22, 5, 18, 5, 14, 195, 173, 20, 16, 141, 12, 5, 7, 9, 19, 12, 1, 20, 195, 173, 22, 14, 5, 20, 0, 0,
+			0, 7, 195, 4, 179, 192, 72, 8, 0, 0, 0, 27, 4, 95, 7, 18, 22, 89, 10, 6, 39, 71, 51, 124, 115, 4, 36, 50, 121, 65,
+			72, 6, 135, 90, 67, 39, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 16, 15, 21, 196, 141, 5, 14, 195, 173, 20,
+			0, 0, 0, 21, 2, 95, 123, 88, 55, 39, 90, 36, 50, 124, 15, 88, 124, 47, 84, 39, 51, 49, 35, 0, 19, 4, 95, 4, 9, 1,
+			89, 10, 48, 51, 6, 36, 107, 55, 124, 89, 49, 129, 0, 0, 0, 0, 8, 133, 22, 197, 161, 1, 11, 8, 0, 0, 12, 2, 95, 126,
+			84, 45, 50, 39, 84, 49, 35, 0, 0, 21, 2, 95, 125, 88, 55, 39, 90, 36, 50, 124, 15, 88, 35, 47, 84, 39, 51, 37, 115, 0,
+			0, 17, 2, 95, 124, 88, 84, 37, 89, 55, 124, 15, 76, 37, 35, 51, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			131, 19, 195, 186, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 35, 51, 50, 6, 65, 36, 118, 36, 51,
+			35, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 64, 146, 129, 80, 146, 193, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 196,
+			141, 12, 14, 76, 45, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 77, 97,
+			84, 21, 32, 20, 0, 0, 0, 0, 0, 6, 131, 20, 195, 173, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 133, 15, 4, 5, 197, 136, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 197, 161,
+			20, 1, 20, 21, 20, 195, 161, 18, 14, 9, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 9, 4, 5, 195, 173, 20, 0, 0, 0, 0, 12, 137, 16, 15, 197, 190, 9, 1,
+			18, 14, 5, 20, 0, 0, 9, 134, 16, 15, 4, 5, 197, 136, 20, 0, 15, 140, 4, 5, 6, 9, 14, 9, 20, 195, 173, 22, 14, 5,
+			20, 0, 0, 6, 116, 101, 0, 4, 1, 97, 105, 2, 32, 3, 47, 36, 0, 1, 97, 105, 118, 97, 122, 0, 1, 101, 100, 2, 107, 0,
+			1, 101, 100, 2, 114, 109, 0, 1, 101, 109, 2, 114, 32, 0, 1, 110, 105, 2, 114, 0, 1, 110, 105, 2, 114, 110, 101, 0, 1, 115,
+			2, 114, 0, 1, 115, 2, 114, 32, 0, 1, 115, 161, 195, 110, 2, 32, 0, 1, 118, 2, 100, 97, 106, 197, 161, 0, 1, 120, 101, 2,
+			114, 0, 2, 104, 111, 32, 0, 2, 106, 32, 0, 2, 109, 97, 116, 105, 0, 2, 114, 97, 106, 197, 161, 0, 2, 114, 97, 122, 0, 2,
+			114, 109, 0, 2, 115, 32, 0, 2, 115, 116, 0, 2, 120, 0, 8, 2, 99, 104, 0, 8, 2, 100, 97, 106, 197, 161, 0, 8, 2, 108,
+			101, 99, 0, 8, 2, 108, 101, 102, 0, 8, 2, 108, 101, 103, 0, 8, 2, 108, 101, 107, 0, 8, 2, 108, 101, 109, 0, 8, 2, 108,
+			101, 111, 0, 8, 2, 108, 101, 112, 0, 8, 2, 108, 101, 114, 0, 8, 2, 108, 101, 115, 101, 110, 0, 8, 2, 108, 101, 115, 107, 0,
+			8, 2, 108, 101, 116, 101, 114, 0, 8, 2, 108, 101, 116, 101, 120, 116, 0, 8, 2, 108, 101, 118, 0, 8, 2, 108, 101, 120, 0, 8,
+			2, 109, 112, 0, 8, 2, 110, 100, 0, 8, 2, 110, 105, 115, 0, 8, 2, 110, 116, 111, 0, 8, 2, 111, 0, 8, 2, 114, 97, 112,
+			0, 8, 2, 114, 97, 115, 0, 8, 2, 114, 101, 122, 0, 8, 2, 114, 195, 169, 110, 0, 8, 2, 114, 195, 169, 122, 0, 8, 2, 114,
+			196, 141, 0, 8, 2, 120, 0, 8, 2, 195, 179, 0, 8, 97, 107, 2, 99, 104, 0, 8, 97, 107, 2, 100, 0, 8, 97, 107, 2, 103,
+			0, 8, 97, 109, 2, 109, 97, 116, 105, 0, 8, 97, 109, 2, 114, 105, 97, 0, 8, 97, 109, 2, 114, 105, 195, 161, 0, 8, 97, 112,
+			2, 110, 116, 0, 8, 97, 114, 116, 115, 2, 103, 0, 8, 101, 100, 2, 107, 116, 195, 173, 0, 8, 101, 108, 101, 116, 2, 114, 0, 8,
+			101, 112, 109, 111, 107, 2, 110, 0, 8, 101, 161, 197, 118, 2, 196, 141, 0, 8, 105, 104, 99, 114, 97, 2, 107, 0, 8, 105, 108, 2,
+			114, 0, 8, 107, 97, 114, 97, 104, 99, 2, 114, 0, 8, 107, 97, 114, 97, 104, 99, 2, 114, 0, 8, 108, 97, 2, 114, 0, 8, 108,
+			97, 2, 114, 110, 0, 8, 108, 97, 2, 114, 110, 97, 116, 195, 173, 118, 0, 8, 108, 97, 119, 2, 114, 0, 8, 110, 105, 2, 108, 0,
+			8, 110, 105, 2, 110, 0, 8, 110, 105, 101, 100, 0, 8, 110, 121, 115, 0, 8, 110, 121, 115, 2, 116, 105, 0, 8, 111, 104, 2, 108,
+			0, 8, 111, 112, 2, 110, 0, 8, 112, 101, 115, 2, 109, 98, 0, 8, 115, 2, 112, 0, 8, 115, 97, 112, 0, 8, 115, 105, 115, 97,
+			2, 110, 0, 8, 115, 105, 120, 101, 2, 110, 0, 8, 115, 121, 115, 2, 109, 0, 8, 169, 195, 2, 114, 0, 7, 6, 195, 161, 0, 3,
+			124, 0, 7, 6, 195, 164, 0, 3, 36, 0, 7, 6, 195, 169, 0, 3, 123, 0, 7, 6, 195, 173, 0, 3, 121, 0, 7, 6, 195, 179,
+			0, 3, 125, 0, 7, 6, 195, 180, 0, 3, 40, 39, 0, 7, 6, 195, 186, 0, 3, 126, 0, 7, 6, 195, 189, 0, 3, 121, 0, 7,
+			6, 196, 141, 0, 3, 76, 0, 7, 6, 196, 143, 0, 2, 32, 3, 115, 0, 4, 3, 116, 0, 2, 32, 17, 70, 0, 7, 6, 196, 186,
+			0, 3, 135, 0, 7, 6, 196, 190, 0, 3, 61, 0, 7, 6, 197, 136, 0, 3, 67, 0, 7, 6, 197, 149, 0, 3, 132, 0, 7, 6,
+			197, 153, 0, 3, 133, 0, 4, 1, 102, 3, 134, 0, 1, 107, 0, 1, 112, 0, 1, 116, 0, 7, 6, 197, 161, 0, 3, 91, 0, 7,
+			6, 197, 165, 0, 3, 115, 0, 7, 6, 197, 190, 0, 4, 3, 90, 0, 2, 32, 17, 70, 0, 2, 32, 3, 91, 0, 7, 6, 97, 0,
+			3, 35, 0, 7, 6, 98, 0, 101, 122, 111, 8, 2, 45, 14, 128, 132, 133, 3, 6, 71, 36, 88, 39, 0, 101, 122, 8, 2, 45, 14,
+			128, 132, 132, 3, 6, 71, 36, 89, 0, 2, 32, 3, 48, 0, 4, 3, 71, 0, 2, 32, 17, 70, 0, 7, 6, 99, 0, 104, 3, 101,
+			0, 3, 117, 0, 7, 6, 100, 0, 2, 32, 3, 47, 0, 4, 3, 72, 0, 1, 97, 2, 101, 0, 1, 97, 114, 116, 2, 105, 0, 1,
+			101, 109, 2, 105, 0, 1, 101, 114, 107, 2, 105, 0, 1, 101, 114, 107, 115, 105, 100, 2, 105, 0, 1, 105, 2, 101, 110, 0, 1, 105,
+			2, 101, 111, 0, 1, 110, 97, 109, 2, 105, 116, 0, 1, 110, 105, 2, 105, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105, 107, 0,
+			1, 111, 108, 101, 109, 2, 105, 0, 1, 111, 109, 2, 101, 114, 0, 1, 114, 111, 2, 105, 0, 1, 169, 195, 109, 2, 105, 0, 1, 179,
+			195, 108, 101, 109, 2, 105, 0, 2, 32, 17, 70, 0, 2, 101, 28, 17, 0, 2, 101, 99, 105, 0, 2, 101, 102, 0, 2, 101, 116, 101,
+			107, 0, 2, 101, 116, 101, 114, 109, 0, 2, 105, 28, 17, 0, 2, 105, 99, 107, 0, 2, 105, 100, 97, 107, 116, 105, 0, 2, 105, 102,
+			0, 2, 105, 107, 32, 0, 2, 105, 107, 116, 0, 2, 105, 111, 0, 2, 105, 114, 0, 2, 105, 115, 107, 114, 101, 0, 2, 105, 115, 107,
+			117, 0, 2, 105, 115, 112, 0, 2, 105, 115, 116, 0, 2, 105, 115, 116, 105, 99, 0, 2, 105, 122, 109, 117, 115, 0, 2, 105, 195, 179,
+			0, 2, 195, 173, 28, 17, 0, 8, 2, 101, 99, 101, 0, 8, 2, 101, 102, 105, 110, 105, 116, 195, 173, 118, 0, 8, 2, 101, 105, 110,
+			116, 101, 0, 8, 2, 101, 107, 111, 114, 0, 8, 2, 101, 107, 114, 101, 109, 101, 110, 116, 0, 8, 2, 101, 107, 114, 195, 169, 116, 0,
+			8, 2, 101, 107, 195, 161, 100, 0, 8, 2, 101, 107, 195, 179, 114, 0, 8, 2, 101, 108, 101, 103, 0, 8, 2, 101, 108, 105, 109, 0,
+			8, 2, 101, 112, 114, 101, 115, 0, 8, 2, 101, 115, 105, 103, 0, 8, 2, 101, 115, 116, 105, 0, 8, 2, 101, 116, 97, 105, 108, 0,
+			8, 2, 101, 116, 101, 107, 116, 195, 173, 0, 8, 2, 101, 118, 105, 122, 0, 8, 2, 101, 118, 195, 173, 122, 0, 8, 2, 101, 122, 0,
+			8, 2, 105, 97, 0, 8, 2, 105, 101, 99, 0, 8, 2, 105, 101, 116, 0, 8, 2, 105, 102, 116, 195, 173, 110, 0, 8, 2, 105, 103,
+			0, 8, 2, 105, 109, 101, 110, 0, 8, 2, 105, 112, 0, 8, 2, 105, 115, 0, 8, 2, 105, 115, 107, 0, 8, 2, 105, 118, 195, 173,
+			122, 0, 8, 2, 105, 195, 161, 0, 8, 2, 105, 195, 169, 0, 8, 97, 107, 2, 101, 116, 0, 8, 97, 110, 2, 195, 173, 100, 0, 8,
+			97, 110, 2, 195, 173, 196, 143, 0, 8, 97, 114, 2, 105, 107, 195, 161, 108, 0, 8, 97, 114, 116, 2, 195, 173, 0, 8, 97, 116, 161,
+			197, 2, 105, 0, 8, 101, 2, 105, 116, 0, 8, 101, 102, 2, 101, 114, 0, 8, 101, 112, 120, 101, 2, 105, 0, 8, 101, 114, 112, 2,
+			105, 122, 98, 0, 8, 101, 114, 112, 2, 105, 197, 161, 0, 8, 101, 114, 112, 2, 195, 173, 100, 0, 8, 101, 114, 112, 2, 195, 173, 196,
+			143, 0, 8, 105, 2, 101, 97, 0, 8, 105, 2, 101, 110, 116, 105, 0, 8, 105, 2, 101, 195, 161, 0, 8, 105, 2, 105, 108, 0, 8,
+			105, 2, 105, 111, 0, 8, 105, 108, 97, 118, 110, 105, 2, 105, 116, 0, 8, 105, 108, 97, 118, 110, 105, 2, 105, 122, 0, 8, 105, 118,
+			2, 101, 97, 0, 8, 105, 118, 2, 101, 111, 0, 8, 105, 118, 2, 101, 117, 0, 8, 105, 118, 101, 2, 101, 110, 0, 8, 105, 122, 101,
+			114, 112, 2, 101, 110, 116, 0, 8, 110, 97, 104, 2, 105, 0, 8, 110, 97, 107, 115, 2, 105, 0, 8, 110, 101, 112, 105, 116, 161, 197,
+			2, 105, 0, 8, 110, 105, 2, 101, 120, 0, 8, 110, 111, 112, 161, 197, 101, 114, 111, 107, 2, 101, 110, 0, 8, 111, 2, 105, 110, 0,
+			8, 111, 2, 105, 115, 0, 8, 111, 2, 105, 197, 161, 0, 8, 111, 2, 195, 173, 196, 143, 0, 8, 111, 107, 2, 105, 102, 105, 0, 8,
+			111, 109, 2, 101, 108, 0, 8, 111, 109, 2, 101, 109, 0, 8, 111, 109, 2, 105, 0, 8, 111, 112, 2, 195, 173, 100, 0, 8, 111, 112,
+			2, 195, 173, 196, 143, 0, 8, 111, 116, 101, 109, 2, 105, 0, 8, 114, 97, 100, 110, 97, 116, 161, 197, 2, 105, 122, 0, 8, 117, 97,
+			2, 105, 0, 8, 117, 97, 2, 105, 0, 8, 117, 116, 161, 197, 2, 101, 110, 0, 8, 117, 116, 161, 197, 2, 105, 0, 8, 161, 195, 116,
+			161, 197, 2, 105, 0, 8, 186, 195, 116, 161, 197, 2, 105, 0, 4, 197, 190, 3, 75, 0, 197, 190, 2, 32, 17, 70, 0, 197, 190, 2,
+			32, 3, 76, 0, 4, 2, 101, 3, 116, 0, 2, 105, 0, 2, 195, 173, 0, 122, 2, 32, 3, 117, 0, 4, 122, 3, 118, 0, 122, 2,
+			32, 17, 70, 0, 7, 6, 101, 0, 3, 36, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 2, 32, 3, 49, 0, 4, 3, 81,
+			0, 2, 32, 17, 70, 0, 7, 6, 104, 0, 2, 32, 3, 101, 0, 4, 3, 107, 0, 2, 32, 17, 70, 0, 7, 6, 105, 0, 97, 3,
+			2, 37, 35, 0, 101, 3, 2, 37, 36, 0, 117, 3, 2, 37, 40, 0, 3, 37, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0,
+			3, 49, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3, 45, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 97, 8,
+			2, 45, 14, 128, 132, 131, 3, 6, 50, 35, 0, 4, 3, 50, 0, 1, 17, 67, 21, 2, 101, 106, 32, 0, 1, 97, 2, 105, 109, 0,
+			1, 97, 103, 114, 111, 2, 105, 122, 0, 1, 97, 109, 2, 105, 0, 1, 97, 118, 122, 2, 101, 106, 32, 0, 1, 100, 97, 105, 114, 2,
+			101, 0, 1, 101, 103, 2, 101, 0, 1, 101, 108, 111, 118, 2, 195, 173, 0, 1, 103, 97, 109, 2, 101, 0, 1, 104, 99, 2, 105, 99,
+			0, 1, 104, 99, 2, 105, 107, 0, 1, 105, 2, 105, 99, 105, 0, 1, 108, 161, 195, 2, 105, 0, 1, 108, 161, 195, 105, 99, 111, 115,
+			2, 101, 0, 1, 108, 161, 195, 109, 114, 111, 102, 2, 101, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105, 107, 0, 1, 111, 2, 105,
+			115, 0, 1, 111, 102, 2, 105, 99, 0, 1, 111, 103, 2, 105, 0, 1, 111, 103, 97, 116, 2, 105, 115, 0, 1, 111, 109, 114, 97, 104,
+			2, 105, 0, 1, 111, 114, 2, 105, 99, 0, 1, 111, 114, 2, 105, 107, 0, 1, 111, 114, 100, 110, 101, 2, 105, 0, 1, 111, 114, 116,
+			2, 105, 0, 1, 114, 101, 116, 110, 105, 2, 101, 0, 1, 116, 161, 195, 116, 161, 197, 2, 101, 32, 0, 1, 117, 109, 2, 105, 107, 0,
+			1, 117, 109, 2, 105, 115, 0, 1, 118, 161, 195, 114, 112, 115, 2, 101, 0, 1, 118, 173, 195, 116, 97, 110, 2, 101, 0, 1, 122, 180,
+			195, 114, 2, 101, 0, 1, 169, 195, 114, 116, 2, 105, 0, 1, 173, 195, 108, 2, 105, 0, 1, 179, 195, 102, 2, 105, 0, 1, 179, 195,
+			103, 2, 105, 0, 1, 179, 195, 109, 114, 97, 104, 2, 105, 0, 2, 101, 28, 17, 0, 2, 101, 104, 111, 32, 0, 2, 101, 110, 116, 0,
+			2, 105, 28, 17, 0, 2, 105, 115, 116, 0, 2, 105, 122, 109, 117, 115, 32, 0, 2, 195, 173, 28, 17, 0, 8, 2, 101, 103, 0, 8,
+			2, 101, 103, 97, 116, 195, 173, 118, 0, 8, 2, 101, 103, 195, 161, 99, 0, 8, 2, 101, 111, 107, 108, 97, 115, 0, 8, 2, 101, 111,
+			112, 114, 195, 169, 110, 0, 8, 2, 101, 111, 114, 101, 0, 8, 2, 101, 114, 118, 0, 8, 2, 101, 117, 116, 114, 195, 161, 108, 0, 8,
+			2, 101, 120, 116, 0, 8, 2, 101, 195, 179, 110, 0, 8, 2, 105, 107, 111, 116, 0, 8, 97, 104, 99, 101, 109, 2, 105, 0, 8, 97,
+			112, 2, 101, 108, 0, 8, 97, 116, 111, 98, 2, 105, 0, 8, 100, 97, 105, 190, 197, 2, 101, 0, 8, 100, 122, 161, 195, 114, 112, 2,
+			101, 0, 8, 101, 2, 101, 114, 103, 0, 8, 101, 98, 2, 101, 102, 0, 8, 101, 103, 2, 105, 0, 8, 101, 109, 2, 101, 197, 190, 0,
+			8, 101, 114, 2, 101, 115, 0, 8, 101, 116, 2, 105, 115, 0, 8, 103, 105, 115, 2, 105, 0, 8, 104, 99, 101, 116, 2, 105, 0, 8,
+			105, 102, 101, 100, 2, 105, 116, 195, 173, 118, 0, 8, 105, 102, 101, 100, 2, 195, 173, 99, 0, 8, 105, 107, 116, 97, 109, 2, 101, 0,
+			8, 105, 108, 2, 101, 0, 8, 105, 109, 2, 105, 0, 8, 105, 109, 100, 97, 2, 105, 115, 116, 0, 8, 108, 161, 195, 101, 114, 2, 101,
+			0, 8, 108, 161, 195, 105, 99, 101, 112, 161, 197, 2, 101, 0, 8, 108, 161, 195, 110, 111, 115, 114, 101, 112, 2, 101, 0, 8, 108, 161,
+			195, 117, 116, 107, 97, 2, 101, 0, 8, 110, 105, 118, 2, 101, 0, 8, 111, 102, 2, 101, 0, 8, 111, 108, 111, 107, 2, 105, 0, 8,
+			111, 109, 2, 105, 0, 8, 114, 186, 195, 116, 108, 117, 107, 2, 101, 0, 8, 116, 114, 97, 112, 2, 101, 114, 0, 8, 116, 115, 101, 105,
+			109, 2, 101, 0, 8, 116, 161, 195, 116, 161, 197, 2, 101, 0, 8, 116, 169, 195, 114, 107, 110, 111, 107, 2, 101, 0, 8, 117, 2, 105,
+			0, 8, 117, 109, 2, 105, 0, 8, 117, 109, 105, 2, 105, 0, 8, 117, 109, 111, 107, 2, 105, 0, 8, 117, 116, 2, 105, 115, 0, 8,
+			118, 173, 195, 116, 97, 114, 116, 115, 105, 110, 105, 109, 100, 97, 2, 101, 0, 8, 169, 195, 103, 2, 105, 0, 8, 169, 195, 114, 116, 2,
+			101, 114, 0, 8, 179, 195, 108, 111, 107, 2, 105, 0, 8, 190, 197, 161, 195, 118, 2, 101, 0, 4, 2, 101, 3, 67, 0, 2, 105, 0,
+			2, 195, 173, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 117, 3, 129, 0, 7, 6, 112, 0, 111, 8,
+			2, 45, 14, 128, 132, 131, 3, 6, 48, 39, 0, 111, 100, 8, 2, 45, 14, 128, 132, 132, 3, 6, 48, 39, 47, 0, 114, 105, 8, 2,
+			45, 14, 128, 132, 132, 3, 6, 48, 51, 37, 0, 3, 48, 0, 111, 118, 8, 2, 115, 116, 97, 17, 67, 3, 48, 39, 83, 0, 7, 6,
+			113, 0, 3, 49, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 1, 25, 2, 25, 3, 44, 0, 4, 3, 51, 0, 114, 0, 7, 6, 115,
+			0, 111, 8, 2, 45, 14, 128, 132, 131, 3, 6, 89, 39, 0, 3, 89, 0, 7, 6, 116, 0, 4, 3, 47, 0, 1, 97, 2, 105, 99,
+			107, 0, 1, 97, 2, 105, 107, 195, 161, 0, 1, 97, 2, 105, 110, 0, 1, 97, 2, 105, 122, 0, 1, 97, 104, 99, 2, 105, 99, 0,
+			1, 97, 104, 99, 2, 105, 107, 0, 1, 97, 109, 2, 105, 99, 107, 0, 1, 97, 109, 2, 105, 107, 0, 1, 97, 109, 97, 2, 105, 99,
+			0, 1, 97, 109, 97, 2, 105, 107, 0, 1, 97, 109, 101, 2, 105, 0, 1, 97, 109, 101, 116, 2, 105, 0, 1, 101, 2, 105, 99, 0,
+			1, 101, 2, 105, 107, 0, 1, 101, 108, 112, 109, 111, 107, 2, 105, 122, 0, 1, 105, 2, 105, 99, 0, 1, 105, 2, 105, 107, 0, 1,
+			105, 108, 2, 105, 99, 0, 1, 107, 97, 2, 105, 0, 1, 107, 97, 2, 105, 107, 0, 1, 107, 97, 100, 105, 100, 2, 105, 0, 1, 107,
+			101, 2, 105, 0, 1, 107, 101, 2, 195, 173, 0, 1, 107, 114, 2, 105, 0, 1, 110, 2, 105, 99, 0, 1, 110, 2, 105, 110, 0, 1,
+			110, 97, 2, 105, 0, 1, 110, 101, 2, 105, 110, 0, 1, 110, 101, 118, 2, 105, 108, 0, 1, 111, 2, 105, 99, 0, 1, 111, 2, 105,
+			107, 0, 1, 111, 109, 2, 105, 118, 0, 1, 111, 114, 2, 105, 99, 0, 1, 111, 114, 2, 105, 107, 0, 1, 112, 101, 2, 105, 99, 0,
+			1, 112, 101, 2, 105, 107, 0, 1, 112, 111, 2, 105, 0, 1, 114, 97, 112, 2, 105, 0, 1, 115, 2, 105, 99, 0, 1, 115, 97, 2,
+			105, 99, 0, 1, 115, 101, 114, 112, 2, 105, 197, 190, 0, 1, 115, 101, 118, 110, 105, 2, 105, 0, 1, 115, 111, 2, 105, 99, 0, 1,
+			189, 195, 2, 105, 99, 0, 2, 101, 28, 17, 0, 2, 105, 28, 17, 0, 2, 105, 99, 107, 0, 2, 105, 107, 32, 0, 2, 105, 110, 103,
+			0, 2, 105, 115, 116, 0, 2, 105, 122, 109, 117, 115, 32, 0, 2, 195, 173, 28, 17, 0, 8, 2, 101, 114, 101, 115, 116, 114, 105, 0,
+			8, 2, 105, 109, 111, 116, 101, 106, 0, 8, 2, 105, 114, 97, 110, 0, 8, 2, 105, 116, 97, 110, 0, 8, 2, 105, 116, 117, 108, 0,
+			8, 97, 109, 101, 116, 97, 109, 2, 105, 0, 8, 97, 109, 111, 116, 117, 97, 2, 105, 0, 8, 97, 112, 97, 2, 105, 0, 8, 97, 112,
+			105, 116, 110, 97, 2, 105, 0, 8, 97, 115, 2, 105, 114, 0, 8, 97, 115, 2, 105, 115, 0, 8, 97, 116, 161, 197, 2, 105, 0, 8,
+			101, 109, 114, 101, 104, 2, 105, 0, 8, 101, 109, 122, 111, 107, 2, 105, 0, 8, 101, 110, 103, 97, 109, 2, 105, 0, 8, 101, 110, 111,
+			102, 2, 105, 0, 8, 101, 114, 107, 110, 111, 107, 2, 105, 122, 0, 8, 101, 116, 110, 121, 115, 2, 105, 0, 8, 105, 114, 107, 2, 105,
+			99, 0, 8, 105, 114, 107, 2, 105, 107, 0, 8, 105, 114, 107, 2, 105, 122, 0, 8, 105, 115, 110, 101, 115, 2, 105, 0, 8, 107, 97,
+			2, 105, 118, 0, 8, 107, 117, 100, 111, 114, 112, 2, 105, 0, 8, 108, 117, 107, 2, 105, 0, 8, 108, 117, 109, 2, 105, 0, 8, 110,
+			97, 2, 105, 0, 8, 110, 97, 108, 116, 97, 2, 105, 0, 8, 110, 101, 99, 2, 105, 0, 8, 110, 101, 100, 105, 2, 105, 0, 8, 110,
+			101, 118, 101, 114, 112, 2, 195, 173, 118, 0, 8, 110, 111, 107, 2, 105, 0, 8, 111, 97, 104, 99, 2, 105, 99, 0, 8, 111, 97, 104,
+			99, 2, 105, 107, 0, 8, 111, 107, 105, 110, 2, 105, 0, 8, 111, 120, 101, 2, 105, 0, 8, 114, 101, 99, 2, 105, 0, 8, 114, 101,
+			118, 2, 105, 0, 8, 115, 2, 105, 109, 117, 108, 0, 8, 115, 98, 97, 2, 105, 0, 8, 115, 101, 100, 2, 105, 0, 8, 115, 105, 108,
+			97, 98, 2, 105, 0, 8, 115, 105, 114, 101, 116, 107, 97, 114, 97, 104, 99, 2, 105, 0, 8, 115, 105, 114, 101, 116, 107, 97, 114, 97,
+			104, 99, 2, 195, 173, 107, 0, 8, 115, 105, 116, 97, 116, 161, 197, 2, 105, 0, 8, 115, 110, 105, 2, 105, 0, 8, 115, 110, 111, 107,
+			2, 105, 0, 8, 115, 111, 110, 103, 97, 105, 100, 2, 105, 0, 8, 115, 117, 106, 2, 105, 0, 8, 117, 101, 99, 97, 109, 114, 97, 102,
+			2, 105, 0, 8, 117, 112, 2, 105, 107, 0, 8, 120, 101, 116, 2, 105, 108, 0, 8, 161, 197, 2, 105, 112, 101, 110, 100, 105, 0, 8,
+			161, 197, 101, 114, 2, 105, 0, 8, 161, 197, 110, 105, 2, 105, 0, 8, 161, 197, 110, 105, 101, 100, 2, 105, 0, 8, 161, 197, 110, 111,
+			107, 2, 105, 0, 4, 195, 173, 1, 97, 2, 118, 3, 47, 121, 0, 195, 173, 1, 105, 2, 118, 0, 195, 173, 1, 107, 101, 112, 115, 2,
+			118, 0, 195, 173, 1, 111, 109, 2, 118, 0, 195, 173, 1, 114, 111, 2, 109, 0, 195, 173, 1, 115, 101, 108, 97, 2, 116, 0, 195, 173,
+			1, 117, 110, 107, 105, 118, 0, 195, 173, 8, 2, 109, 111, 118, 0, 195, 173, 8, 97, 103, 101, 110, 2, 118, 0, 195, 173, 8, 97, 110,
+			114, 101, 116, 108, 97, 2, 118, 0, 195, 173, 8, 102, 105, 100, 2, 110, 0, 195, 173, 8, 105, 100, 117, 97, 2, 118, 0, 195, 173, 8,
+			105, 110, 105, 102, 101, 100, 2, 118, 0, 195, 173, 8, 105, 115, 110, 101, 115, 0, 195, 173, 8, 107, 97, 2, 118, 0, 195, 173, 8, 107,
+			101, 116, 101, 100, 0, 195, 173, 8, 107, 117, 100, 111, 114, 112, 2, 118, 0, 195, 173, 8, 107, 117, 114, 116, 161, 197, 110, 111, 107, 2,
+			118, 0, 195, 173, 8, 115, 101, 108, 97, 112, 0, 195, 173, 8, 115, 117, 106, 0, 4, 2, 101, 3, 115, 0, 2, 105, 0, 2, 195, 173,
+			0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 121, 8, 2, 21, 14, 128, 132, 130, 3, 6, 84, 37, 0, 1, 17, 65, 2, 25,
+			3, 58, 0, 4, 3, 84, 0, 1, 17, 65, 2, 108, 25, 0, 1, 17, 65, 2, 110, 0, 1, 17, 65, 2, 196, 186, 0, 1, 17, 65,
+			2, 197, 136, 0, 7, 6, 119, 0, 1, 17, 65, 2, 25, 3, 58, 0, 4, 3, 84, 0, 104, 2, 12, 0, 7, 6, 120, 0, 3, 49,
+			89, 0, 7, 6, 121, 0, 3, 37, 0, 7, 6, 122, 0, 4, 3, 88, 0, 2, 32, 17, 70, 0, 2, 32, 3, 89, 0, 7, 6, 0,
+			196, 155, 3, 36, 0, 37, 1, 32, 15, 3, 48, 36, 51, 117, 36, 50, 47, 0, 37, 3, 48, 36, 51, 117, 36, 50, 47, 39, 0, 36,
+			3, 72, 39, 55, 124, 51, 0, 197, 175, 3, 126, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts57 = FileInMemory_createWithData (8714, reinterpret_cast<const char *> (&espeakdata_dicts57_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/sk_dict", 
 			U"sk");
-		my addItem_move (espeakdata_dicts58.move());
+		Collection_addItem (me.peek(), espeakdata_dicts57.transfer());
 
-		static unsigned char espeakdata_dicts59_data[3966] = {
-			0, 4, 0, 0, 115, 12, 0, 0, 0, 0, 0, 0, 0, 7, 65, 4, 35, 12, 0, 49, 4, 193, 4, 72, 0, 0, 0, 0, 6, 65,
-			8, 71, 13, 0, 0, 0, 0, 0, 6, 65, 12, 117, 13, 0, 0, 0, 0, 5, 194, 212, 80, 17, 0, 6, 65, 16, 72, 13, 0, 0,
-			0, 0, 16, 4, 95, 100, 112, 116, 10, 117, 4, 36, 12, 55, 37, 107, 10, 0, 0, 6, 65, 20, 36, 12, 0, 0, 0, 0, 0, 6,
-			65, 24, 83, 13, 0, 0, 0, 0, 0, 6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 7, 65, 32, 101, 13, 0, 49, 0, 0, 0, 14,
-			1, 35, 55, 6, 36, 12, 89, 47, 84, 37, 117, 35, 0, 0, 11, 1, 36, 72, 6, 39, 12, 55, 35, 51, 0, 0, 14, 1, 37, 111,
-			117, 47, 6, 39, 12, 47, 49, 111, 58, 0, 0, 8, 1, 38, 6, 37, 12, 50, 0, 0, 0, 6, 65, 40, 57, 13, 0, 0, 0, 13,
-			1, 42, 88, 84, 6, 36, 12, 72, 37, 117, 35, 0, 0, 9, 1, 43, 48, 55, 40, 12, 89, 0, 0, 16, 69, 89, 49, 69, 56, 240,
-			40, 89, 6, 109, 12, 109, 50, 39, 0, 7, 65, 44, 49, 13, 0, 49, 5, 65, 44, 49, 0, 7, 65, 44, 49, 13, 0, 49, 0, 7,
-			196, 76, 81, 5, 52, 18, 0, 0, 15, 1, 47, 48, 111, 91, 6, 36, 12, 58, 50, 37, 117, 35, 0, 0, 18, 4, 95, 100, 105, 97,
-			89, 48, 51, 109, 81, 55, 6, 35, 89, 39, 65, 0, 6, 65, 48, 55, 13, 0, 0, 0, 0, 0, 6, 65, 52, 65, 13, 0, 0, 0,
-			0, 0, 6, 65, 56, 50, 13, 0, 0, 0, 0, 0, 7, 65, 60, 39, 12, 0, 49, 4, 193, 60, 72, 7, 65, 60, 39, 12, 0, 49,
-			0, 10, 1, 61, 109, 50, 6, 35, 49, 111, 0, 0, 0, 0, 10, 1, 64, 6, 35, 12, 83, 50, 35, 0, 6, 65, 64, 48, 13, 0,
-			0, 0, 6, 195, 60, 32, 64, 66, 0, 0, 6, 65, 68, 49, 40, 0, 0, 0, 6, 195, 20, 224, 64, 15, 0, 0, 6, 65, 72, 51,
-			13, 0, 0, 0, 0, 0, 7, 65, 76, 89, 13, 0, 49, 5, 65, 76, 89, 0, 7, 65, 76, 89, 13, 0, 49, 0, 0, 0, 0, 6,
-			65, 80, 47, 13, 0, 0, 0, 0, 0, 7, 196, 16, 84, 197, 80, 66, 0, 0, 0, 0, 7, 65, 88, 84, 13, 0, 49, 6, 65, 88,
-			58, 0, 23, 7, 65, 88, 84, 13, 0, 49, 0, 0, 0, 19, 4, 95, 49, 77, 52, 6, 109, 50, 71, 37, 55, 37, 57, 6, 39, 12,
-			50, 0, 0, 22, 1, 92, 55, 6, 36, 12, 84, 35, 15, 48, 111, 91, 6, 36, 12, 58, 50, 37, 117, 35, 0, 14, 65, 92, 72, 85,
-			6, 39, 57, 50, 37, 84, 4, 13, 0, 0, 0, 0, 0, 14, 4, 95, 49, 77, 49, 47, 6, 37, 12, 89, 111, 76, 0, 7, 65, 96,
-			37, 49, 89, 0, 0, 19, 4, 95, 49, 77, 50, 6, 109, 50, 65, 37, 55, 37, 57, 6, 39, 12, 50, 0, 0, 23, 4, 95, 49, 77,
-			51, 6, 109, 12, 50, 35, 65, 37, 55, 37, 57, 6, 35, 12, 51, 72, 35, 0, 0, 0, 12, 65, 100, 6, 37, 48, 89, 37, 55, 39,
-			50, 0, 0, 0, 0, 0, 7, 65, 104, 88, 13, 0, 49, 6, 65, 104, 88, 0, 23, 7, 65, 104, 88, 13, 0, 49, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 76, 195, 214, 20, 226, 74, 4, 66, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 4, 95,
-			50, 77, 52, 72, 85, 6, 35, 12, 71, 37, 55, 37, 57, 6, 39, 12, 50, 35, 0, 0, 0, 0, 0, 0, 0, 22, 4, 95, 50, 77,
-			50, 72, 85, 6, 35, 12, 65, 37, 55, 37, 57, 6, 39, 12, 50, 35, 0, 0, 22, 4, 95, 50, 77, 51, 72, 85, 6, 36, 65, 37,
-			55, 37, 57, 6, 35, 12, 51, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 8, 147, 0, 72, 0, 0, 0, 0, 0, 0, 6, 195, 16, 147, 64, 17, 0, 24, 4, 95, 51, 77, 52, 47, 51, 6, 37, 12,
-			57, 36, 71, 37, 55, 37, 57, 6, 39, 12, 50, 37, 0, 0, 0, 0, 0, 0, 0, 24, 4, 95, 51, 77, 50, 47, 51, 6, 37, 12,
-			57, 109, 65, 37, 55, 37, 57, 6, 39, 12, 50, 37, 0, 0, 23, 4, 95, 51, 77, 51, 47, 51, 6, 37, 12, 65, 37, 55, 37, 57,
-			6, 35, 12, 51, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 144, 43, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 8, 147, 1, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,
-			95, 51, 88, 47, 51, 6, 37, 12, 72, 109, 89, 109, 47, 0, 0, 9, 3, 95, 48, 67, 89, 47, 111, 0, 0, 0, 0, 6, 195, 77,
-			64, 64, 72, 0, 0, 0, 0, 0, 11, 3, 95, 49, 67, 89, 47, 6, 39, 12, 0, 0, 0, 0, 6, 195, 77, 65, 64, 72, 0, 0,
-			0, 5, 194, 40, 80, 72, 19, 3, 95, 49, 57, 72, 6, 109, 84, 6, 36, 12, 47, 50, 35, 57, 89, 47, 0, 0, 17, 3, 95, 49,
-			56, 6, 39, 12, 89, 13, 65, 50, 35, 57, 89, 47, 0, 0, 14, 3, 95, 50, 67, 72, 84, 6, 36, 12, 89, 47, 111, 0, 0, 0,
-			0, 0, 0, 0, 14, 3, 95, 49, 49, 109, 50, 6, 35, 12, 57, 89, 47, 0, 0, 13, 3, 95, 49, 48, 72, 109, 89, 6, 36, 12,
-			47, 0, 0, 16, 3, 95, 49, 51, 47, 51, 6, 37, 12, 50, 35, 57, 89, 47, 0, 0, 16, 3, 95, 49, 50, 72, 85, 6, 35, 12,
-			50, 35, 57, 89, 47, 0, 0, 16, 3, 95, 49, 53, 48, 6, 36, 12, 47, 50, 35, 57, 89, 47, 0, 18, 4, 95, 99, 121, 114, 117,
-			37, 51, 6, 37, 12, 55, 37, 76, 50, 37, 0, 0, 18, 3, 95, 49, 52, 91, 47, 6, 37, 12, 51, 37, 50, 35, 57, 89, 47, 0,
-			0, 18, 3, 95, 49, 55, 89, 6, 36, 12, 72, 13, 65, 50, 35, 57, 89, 47, 0, 0, 17, 3, 95, 49, 54, 91, 6, 36, 12, 89,
-			47, 50, 35, 57, 89, 47, 0, 0, 0, 18, 3, 95, 55, 88, 89, 6, 36, 12, 72, 13, 65, 72, 109, 89, 109, 47, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 160, 43, 0, 0, 0, 6, 195, 8, 147, 9, 72, 0, 0, 0,
-			0, 15, 3, 95, 50, 88, 72, 85, 6, 35, 12, 57, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 18, 3, 95, 52, 88, 91, 47, 6, 37, 12, 51, 37, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 48,
-			80, 55, 109, 0, 0, 16, 3, 95, 53, 88, 48, 6, 36, 12, 47, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
-			67, 8, 243, 64, 71, 122, 65, 0, 72, 17, 3, 95, 54, 88, 91, 6, 36, 12, 89, 47, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0,
-			10, 67, 76, 83, 64, 89, 13, 65, 0, 72, 0, 0, 0, 0, 6, 195, 44, 253, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3,
-			95, 56, 88, 6, 39, 12, 89, 13, 65, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 57, 88, 72, 109,
-			84, 6, 36, 12, 47, 72, 109, 89, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 8, 66, 188, 80, 76, 109, 0, 72, 0, 6, 195, 61, 49, 77, 18, 0, 0, 0, 0, 0, 13, 68, 76, 179, 218, 36, 89,
-			49, 122, 88, 37, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 193, 172, 43, 0, 0, 18, 4, 95, 48, 77, 52,
-			71, 37, 55, 37, 57, 6, 39, 12, 50, 39, 58, 0, 0, 0, 18, 4, 95, 48, 77, 50, 65, 37, 55, 37, 57, 6, 39, 12, 50, 39,
-			58, 0, 0, 17, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 6, 35, 12, 51, 72, 0, 0, 0, 14, 4, 95, 48, 77, 49, 47, 6,
-			37, 12, 89, 111, 76, 0, 0, 0, 0, 0, 0, 0, 9, 67, 44, 84, 128, 49, 109, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 196, 16, 85, 133, 80, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 65, 184, 65, 6, 36,
-			107, 49, 37, 15, 76, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 76, 211, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 188, 76,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 195, 77, 96, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 192, 75, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 80, 148, 207, 188, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 37, 162, 15, 16, 17,
-			0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 195, 159, 6, 39, 12, 89, 47, 34, 37, 15, 89, 6, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 5, 130, 195, 164, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 64, 253, 69, 88, 226, 67, 4, 66, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 0, 0, 0, 9, 67, 212, 83, 0, 91, 13, 58,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 209, 135, 76, 13, 0, 0, 7, 2,
-			209, 134, 117, 13, 0, 0, 7, 2, 209, 133, 101, 13, 0, 0, 7, 2, 209, 132, 83, 13, 0, 0, 7, 2, 209, 131, 40, 12, 0, 0,
-			7, 2, 209, 130, 47, 13, 0, 0, 7, 2, 209, 129, 89, 13, 0, 0, 7, 2, 209, 128, 51, 13, 0, 0, 8, 2, 209, 143, 57, 35,
-			12, 0, 0, 8, 2, 209, 142, 57, 40, 12, 0, 0, 7, 2, 209, 141, 109, 12, 0, 0, 0, 0, 6, 195, 228, 83, 129, 15, 0, 8,
-			2, 209, 137, 91, 76, 13, 0, 0, 7, 2, 209, 136, 91, 13, 0, 0, 0, 16, 2, 95, 34, 50, 35, 51, 109, 49, 111, 84, 6, 35,
-			12, 57, 0, 0, 13, 2, 95, 33, 49, 55, 37, 80, 6, 35, 12, 57, 0, 0, 0, 25, 2, 95, 39, 109, 50, 6, 39, 12, 57, 50,
-			37, 15, 50, 35, 51, 109, 49, 111, 84, 6, 35, 12, 57, 0, 0, 26, 4, 95, 52, 77, 52, 91, 47, 6, 37, 12, 51, 37, 57, 36,
-			71, 37, 55, 37, 57, 6, 39, 12, 50, 37, 0, 8, 2, 209, 146, 72, 57, 13, 0, 0, 25, 4, 95, 52, 77, 51, 91, 47, 6, 37,
-			12, 51, 37, 65, 37, 55, 37, 57, 6, 35, 12, 51, 72, 36, 0, 8, 2, 209, 145, 57, 39, 12, 0, 0, 26, 4, 95, 52, 77, 50,
-			91, 47, 6, 37, 12, 51, 37, 57, 36, 65, 37, 55, 37, 57, 6, 39, 12, 50, 37, 0, 0, 0, 0, 15, 2, 95, 41, 88, 35, 49,
-			55, 109, 48, 6, 35, 12, 57, 0, 0, 14, 2, 95, 40, 111, 49, 55, 109, 48, 6, 35, 12, 57, 0, 8, 2, 209, 156, 49, 57, 13,
-			0, 0, 7, 2, 209, 155, 78, 13, 0, 0, 11, 2, 95, 46, 48, 6, 37, 12, 49, 35, 0, 0, 16, 2, 95, 45, 48, 111, 91, 6,
-			36, 12, 58, 50, 37, 117, 35, 0, 0, 13, 2, 95, 44, 84, 6, 36, 12, 57, 37, 117, 35, 0, 0, 10, 67, 80, 84, 128, 47, 109,
-			51, 0, 76, 10, 2, 95, 51, 47, 51, 6, 37, 12, 0, 0, 10, 2, 95, 50, 72, 85, 6, 35, 12, 0, 0, 10, 2, 95, 49, 6,
-			109, 12, 50, 35, 0, 0, 10, 2, 95, 48, 50, 6, 37, 12, 76, 0, 0, 12, 2, 95, 55, 89, 6, 36, 12, 72, 13, 65, 0, 0,
-			11, 2, 95, 54, 91, 6, 36, 12, 89, 47, 0, 0, 10, 2, 95, 53, 48, 6, 36, 12, 47, 0, 0, 12, 2, 95, 52, 91, 47, 6,
-			37, 12, 51, 37, 0, 0, 16, 2, 95, 59, 48, 6, 111, 72, 48, 6, 37, 12, 76, 57, 109, 0, 7, 2, 208, 183, 88, 13, 0, 0,
-			17, 2, 95, 58, 72, 85, 6, 39, 12, 48, 6, 37, 12, 76, 57, 109, 0, 7, 2, 208, 182, 90, 13, 0, 0, 12, 2, 95, 57, 72,
-			109, 84, 6, 36, 12, 47, 0, 7, 2, 208, 181, 36, 12, 0, 0, 11, 2, 95, 56, 6, 39, 12, 89, 13, 65, 0, 7, 2, 208, 180,
-			72, 13, 0, 0, 14, 2, 95, 63, 40, 48, 51, 35, 91, 6, 35, 12, 57, 0, 7, 2, 208, 179, 81, 13, 0, 0, 14, 2, 95, 62,
-			57, 109, 15, 84, 6, 36, 76, 57, 109, 0, 7, 2, 208, 178, 84, 13, 0, 0, 7, 2, 208, 177, 71, 13, 0, 0, 16, 2, 95, 60,
-			57, 109, 15, 65, 6, 35, 12, 50, 57, 91, 36, 0, 7, 2, 208, 176, 35, 12, 0, 0, 7, 2, 208, 191, 48, 13, 0, 0, 7, 2,
-			208, 190, 39, 12, 0, 0, 7, 2, 208, 189, 50, 13, 0, 0, 7, 2, 208, 188, 65, 13, 0, 0, 7, 2, 208, 187, 55, 13, 0, 0,
-			7, 2, 208, 186, 49, 13, 0, 0, 17, 2, 208, 185, 4, 37, 49, 14, 16, 6, 35, 47, 49, 111, 57, 37, 0, 0, 7, 2, 208, 184,
-			37, 12, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 212, 91, 13, 0, 0, 15, 4, 95, 226, 128, 166, 109, 55, 6, 37, 12, 48, 89,
-			35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 2, 95, 91, 111, 81, 38, 6, 35, 12, 47, 37, 15, 111, 49, 55, 109, 48, 6,
-			35, 12, 57, 0, 0, 0, 0, 5, 194, 76, 240, 72, 5, 194, 104, 16, 76, 0, 16, 2, 95, 95, 48, 111, 47, 76, 13, 51, 47, 6,
-			35, 12, 57, 0, 0, 0, 24, 2, 95, 93, 111, 81, 38, 6, 35, 12, 47, 37, 15, 88, 35, 49, 55, 109, 48, 6, 35, 12, 57, 0,
-			0, 0, 0, 0, 0, 15, 2, 95, 96, 111, 89, 47, 51, 6, 37, 12, 84, 109, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 2, 95, 123, 88, 35, 84, 6, 37, 12, 47, 37, 15, 111, 49, 55, 109, 48, 6,
-			35, 12, 57, 0, 0, 0, 0, 0, 0, 0, 24, 2, 95, 125, 88, 35, 84, 6, 37, 12, 47, 37, 15, 88, 35, 49, 55, 109, 48, 6,
-			35, 12, 57, 0, 0, 22, 2, 95, 124, 50, 35, 58, 48, 6, 37, 12, 76, 50, 35, 15, 76, 6, 13, 51, 47, 35, 0, 0, 0, 0,
-			10, 5, 95, 48, 97, 110, 100, 37, 50, 0, 0, 0, 9, 198, 21, 53, 15, 56, 146, 129, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 228, 90, 13, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 197, 190, 0, 98, 0, 100, 0, 103, 0, 106, 0, 108, 0, 109, 0, 110, 0, 118, 0, 122,
-			0, 7, 6, 18, 68, 97, 0, 101, 0, 7, 6, 18, 69, 108, 0, 118, 0, 7, 6, 196, 135, 0, 3, 78, 0, 7, 6, 196, 141, 0,
-			3, 76, 0, 7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 2, 29, 28, 19, 12, 3, 6,
-			35, 0, 4, 2, 106, 32, 3, 6, 35, 12, 0, 2, 108, 32, 0, 2, 196, 141, 32, 0, 3, 35, 12, 0, 7, 6, 98, 0, 3, 71,
-			0, 7, 6, 99, 0, 3, 117, 0, 7, 6, 100, 0, 3, 72, 0, 197, 190, 3, 75, 0, 122, 3, 118, 0, 7, 6, 101, 0, 2, 29,
-			28, 19, 12, 3, 6, 109, 0, 2, 29, 28, 20, 3, 13, 0, 3, 36, 12, 0, 101, 3, 37, 12, 0, 8, 2, 114, 3, 109, 12, 0,
-			4, 101, 8, 110, 3, 109, 12, 109, 0, 101, 8, 114, 0, 101, 8, 114, 112, 0, 4, 1, 17, 67, 21, 2, 114, 32, 3, 110, 0, 1,
-			21, 2, 110, 32, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 3, 101, 0, 4, 1, 105, 3,
-			107, 0, 2, 17, 69, 0, 7, 6, 105, 0, 2, 29, 28, 19, 12, 3, 6, 37, 0, 2, 108, 32, 3, 6, 37, 12, 0, 3, 37, 12,
-			0, 2, 17, 65, 3, 57, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3,
-			13, 55, 0, 1, 25, 2, 32, 3, 40, 0, 4, 3, 55, 0, 1, 25, 2, 114, 25, 0, 106, 2, 17, 65, 3, 55, 57, 0, 4, 1,
-			21, 2, 32, 3, 58, 0, 2, 25, 0, 4, 106, 3, 61, 0, 106, 2, 105, 0, 7, 6, 109, 0, 4, 3, 65, 0, 1, 25, 2, 114,
-			0, 1, 25, 2, 25, 3, 65, 14, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 110, 0, 4, 3, 50, 0, 1, 25, 2, 114,
-			0, 1, 25, 2, 25, 3, 50, 14, 0, 106, 2, 17, 65, 3, 50, 57, 0, 4, 106, 3, 67, 0, 106, 2, 105, 0, 4, 2, 103, 3,
-			68, 0, 2, 107, 0, 7, 6, 111, 0, 4, 2, 106, 32, 3, 6, 39, 12, 0, 2, 108, 32, 0, 2, 196, 141, 32, 0, 2, 29, 28,
-			19, 12, 3, 6, 111, 0, 4, 3, 39, 12, 0, 2, 18, 69, 12, 0, 2, 111, 196, 141, 0, 4, 2, 17, 67, 17, 67, 111, 3, 111,
-			12, 0, 2, 17, 67, 111, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0,
-			1, 25, 2, 25, 3, 13, 51, 0, 4, 3, 51, 0, 114, 0, 7, 6, 115, 0, 3, 89, 0, 99, 104, 3, 91, 0, 7, 6, 116, 0,
-			1, 115, 114, 25, 2, 32, 3, 23, 47, 0, 3, 47, 0, 7, 6, 117, 0, 2, 29, 28, 19, 12, 3, 6, 40, 0, 1, 106, 2, 196,
-			141, 101, 110, 111, 3, 6, 40, 12, 0, 4, 3, 40, 12, 0, 101, 1, 17, 67, 2, 17, 67, 0, 4, 1, 17, 65, 2, 25, 3, 58,
-			0, 2, 17, 65, 0, 7, 6, 118, 0, 1, 25, 2, 25, 3, 2, 40, 0, 1, 17, 65, 2, 25, 3, 58, 0, 4, 3, 84, 0, 2,
-			45, 17, 65, 12, 0, 2, 114, 12, 0, 1, 18, 66, 2, 17, 65, 3, 85, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3,
-			49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 195, 161, 3,
-			6, 35, 12, 0, 195, 169, 3, 6, 36, 12, 0, 195, 173, 3, 6, 37, 12, 0, 195, 179, 3, 6, 39, 12, 0, 195, 186, 3, 6, 40,
-			12, 0, 195, 168, 3, 6, 109, 0, 195, 170, 3, 6, 109, 12, 0, 195, 178, 3, 6, 111, 0, 195, 180, 3, 6, 111, 12, 0, 195, 182,
-			3, 13, 12, 0, 195, 159, 3, 21, 100, 101, 0, 196, 145, 3, 75, 0, 195, 164, 3, 109, 12, 0, 195, 188, 3, 112, 12, 0, 197, 153,
-			3, 123, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts59 = FileInMemory_createWithData (3965, reinterpret_cast<const char *> (&espeakdata_dicts59_data), 
-			U"espeak-1.48.04-source/espeak-data/sl_dict", 
+		static unsigned char espeakdata_dicts58_data[2691] = {
+			0, 4, 0, 0, 110, 8, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 35, 0, 14, 4, 193, 4, 72, 0, 0, 0, 0, 6, 65, 8,
+			71, 13, 0, 0, 0, 0, 0, 6, 65, 12, 117, 13, 0, 0, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 0, 0, 5, 65, 20,
+			36, 0, 0, 0, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 0, 0, 6, 65, 28, 81, 13, 0, 0, 0, 0, 0, 6, 65, 32, 107,
+			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 40, 57, 13, 0, 0, 0, 0, 0, 7, 65, 44, 49, 13, 0, 14, 5, 65, 44,
+			49, 0, 0, 0, 0, 0, 6, 65, 48, 55, 13, 0, 0, 0, 0, 0, 6, 65, 52, 65, 13, 0, 0, 0, 0, 0, 10, 5, 95, 48,
+			1, 14, 4, 37, 50, 0, 6, 65, 56, 50, 13, 0, 0, 0, 0, 0, 6, 65, 60, 39, 0, 14, 4, 193, 60, 72, 0, 0, 0, 0,
+			6, 65, 64, 48, 13, 0, 0, 0, 0, 0, 6, 65, 68, 49, 40, 0, 0, 0, 0, 0, 6, 65, 72, 51, 13, 0, 0, 0, 0, 0,
+			7, 65, 76, 89, 13, 0, 14, 5, 65, 76, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 65, 88, 84, 13, 0, 14, 6, 65, 88, 58, 0, 23, 0, 0, 0, 18, 4, 95, 49, 77, 52, 6, 36, 50, 71, 37, 55, 37, 57,
+			6, 39, 50, 0, 0, 14, 65, 92, 72, 84, 6, 39, 57, 50, 37, 84, 4, 13, 0, 0, 0, 0, 0, 13, 4, 95, 49, 77, 49, 47,
+			6, 37, 89, 39, 76, 0, 7, 65, 96, 37, 49, 89, 0, 0, 18, 4, 95, 49, 77, 50, 6, 36, 50, 65, 37, 55, 37, 57, 6, 39,
+			50, 0, 0, 21, 4, 95, 49, 77, 51, 6, 36, 50, 35, 65, 37, 55, 37, 57, 6, 35, 51, 72, 35, 0, 0, 0, 12, 65, 100, 6,
+			37, 48, 89, 37, 55, 39, 50, 0, 0, 0, 0, 0, 7, 65, 104, 88, 13, 0, 14, 6, 65, 104, 88, 0, 23, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 50, 77, 52, 72, 84, 6, 35, 71, 37, 55, 37,
+			57, 6, 39, 50, 35, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 50, 77, 50, 72, 84, 6, 35, 65, 37, 55, 37, 57, 6, 39, 50,
+			35, 0, 0, 21, 4, 95, 50, 77, 51, 72, 84, 6, 36, 65, 37, 55, 37, 57, 6, 35, 51, 72, 37, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 147, 0, 72, 0, 0, 0, 13, 4, 95, 4, 16, 20, 10,
+			117, 36, 55, 37, 107, 0, 0, 0, 0, 0, 22, 4, 95, 51, 77, 52, 47, 51, 6, 37, 57, 36, 71, 37, 55, 37, 57, 6, 39, 50,
+			37, 0, 0, 0, 0, 0, 0, 0, 22, 4, 95, 51, 77, 50, 47, 51, 6, 37, 57, 36, 65, 37, 55, 37, 57, 6, 39, 50, 37, 0,
+			0, 21, 4, 95, 51, 77, 51, 47, 51, 6, 37, 65, 37, 55, 37, 57, 6, 35, 51, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 15, 3, 95, 51, 88, 47, 51, 6, 37, 72, 36, 89, 36, 47, 0, 0, 9, 3, 95, 48, 67, 89, 47, 39, 0, 0, 0,
+			0, 6, 195, 77, 64, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 77, 65, 64, 72, 0, 0, 0, 5, 194, 40, 80, 72, 17,
+			3, 95, 49, 57, 72, 6, 36, 84, 36, 47, 50, 35, 57, 89, 47, 0, 0, 16, 3, 95, 49, 56, 6, 39, 89, 36, 65, 50, 35, 57,
+			89, 47, 0, 0, 13, 3, 95, 50, 67, 72, 84, 6, 36, 89, 47, 39, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 49, 6, 36,
+			6, 50, 35, 57, 89, 47, 0, 0, 12, 3, 95, 49, 48, 72, 6, 36, 89, 36, 47, 0, 0, 15, 3, 95, 49, 51, 47, 51, 6, 37,
+			50, 35, 57, 89, 47, 0, 0, 15, 3, 95, 49, 50, 72, 84, 6, 35, 50, 35, 57, 89, 47, 0, 0, 15, 3, 95, 49, 53, 48, 6,
+			36, 47, 50, 35, 57, 89, 47, 0, 0, 17, 3, 95, 49, 52, 91, 47, 6, 37, 51, 37, 50, 35, 57, 89, 47, 0, 0, 17, 3, 95,
+			49, 55, 89, 6, 36, 72, 36, 65, 50, 35, 57, 89, 47, 0, 0, 16, 3, 95, 49, 54, 91, 6, 36, 89, 47, 50, 35, 57, 89, 47,
+			0, 0, 0, 17, 3, 95, 55, 88, 89, 6, 36, 72, 36, 65, 72, 36, 89, 36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 50, 88, 72, 84, 6, 35, 57, 89, 36, 47, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 52, 88, 91, 47, 6, 37, 51, 37, 72, 36, 89, 36, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 53, 88, 48, 6, 36, 47, 72, 36, 89, 36, 47, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 16, 3, 95, 54, 88, 91, 6, 36, 89, 47, 72, 36, 89, 36, 47, 0, 0, 0, 0, 0, 6, 195, 76, 83, 64, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 56, 88, 6, 39, 89, 36, 65, 72, 36, 89, 36, 47, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 17, 3, 95, 57, 88, 72, 6, 36, 84, 36, 47, 72, 36, 89, 36, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 17, 4, 95, 48, 77, 52, 71, 37, 55, 37, 57, 6, 39, 50, 39, 58, 0, 0, 0, 17, 4, 95, 48, 77, 50, 65, 37,
+			55, 37, 57, 6, 39, 50, 39, 58, 0, 0, 16, 4, 95, 48, 77, 51, 65, 37, 55, 37, 57, 6, 35, 51, 72, 0, 0, 0, 13, 4,
+			95, 48, 77, 49, 47, 6, 37, 89, 39, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 76, 211, 192, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 77, 96, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 195, 8, 147, 1, 72, 0, 14, 2, 196, 135, 65, 6, 36, 107, 49, 37, 76, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195,
+			8, 147, 9, 72, 0, 0, 0, 7, 2, 196, 141, 76, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 196, 145,
+			65, 6, 36, 107, 49, 37, 75, 4, 13, 0, 0, 0, 0, 5, 130, 195, 164, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+			130, 195, 171, 43, 0, 0, 0, 5, 130, 195, 182, 43, 0, 0, 0, 0, 0, 0, 0, 7, 2, 197, 161, 91, 13, 0, 0, 0, 0, 5,
+			130, 195, 188, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 197, 190, 90, 13, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 2, 95, 11, 49, 13, 0, 0, 0, 0, 0, 6, 2, 95, 15, 39, 0, 0, 0, 0, 0, 7, 2, 95, 19, 89, 13, 0,
+			0, 0, 0, 0, 0, 7, 2, 95, 22, 84, 13, 0, 0, 0, 0, 0, 7, 2, 95, 26, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 24, 4, 95, 52, 77, 52, 91, 47, 6, 37, 51, 37, 57, 36, 71, 37, 55, 37, 57, 6, 39, 50, 37, 0, 0,
+			23, 4, 95, 52, 77, 51, 91, 47, 6, 37, 51, 37, 65, 37, 55, 37, 57, 6, 35, 51, 72, 36, 0, 0, 24, 4, 95, 52, 77, 50,
+			91, 47, 6, 37, 51, 37, 57, 36, 65, 37, 55, 37, 57, 6, 39, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95,
+			51, 47, 51, 6, 37, 0, 0, 9, 2, 95, 50, 72, 84, 6, 35, 0, 0, 9, 2, 95, 49, 6, 36, 50, 35, 0, 0, 9, 2, 95,
+			48, 50, 6, 37, 76, 0, 0, 11, 2, 95, 55, 89, 6, 36, 72, 36, 65, 0, 0, 10, 2, 95, 54, 91, 6, 36, 89, 47, 0, 0,
+			9, 2, 95, 53, 48, 6, 36, 47, 0, 0, 11, 2, 95, 52, 91, 47, 6, 37, 51, 37, 0, 0, 0, 0, 11, 2, 95, 57, 72, 6,
+			36, 84, 36, 47, 0, 0, 10, 2, 95, 56, 6, 39, 89, 36, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 76, 240, 72, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 4, 9, 1, 6, 40,
+			65, 55, 35, 58, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18,
+			66, 197, 190, 0, 98, 0, 100, 0, 103, 0, 106, 0, 108, 0, 109, 0, 110, 0, 118, 0, 122, 0, 7, 6, 196, 141, 0, 3, 76, 0,
+			7, 6, 197, 161, 0, 3, 91, 0, 7, 6, 197, 190, 0, 3, 90, 0, 7, 6, 97, 0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0,
+			7, 6, 99, 0, 3, 117, 0, 7, 6, 100, 0, 3, 72, 0, 197, 190, 3, 75, 0, 122, 3, 118, 0, 7, 6, 101, 0, 3, 36, 0,
+			2, 32, 3, 109, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 7, 6, 104, 0, 3, 101, 0, 4, 1, 105, 3,
+			107, 0, 2, 17, 69, 0, 7, 6, 105, 0, 3, 37, 0, 4, 2, 17, 65, 3, 57, 0, 2, 114, 0, 7, 6, 106, 0, 3, 57, 0,
+			7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 1, 25, 2, 25, 3, 13, 55, 0, 3, 55, 0, 106, 2, 17, 65, 3, 55, 57, 0,
+			2, 25, 3, 58, 0, 4, 106, 3, 61, 0, 106, 2, 105, 0, 7, 6, 109, 0, 1, 25, 2, 25, 3, 2, 13, 65, 0, 3, 65, 0,
+			4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 110, 0, 1, 25, 2, 25, 3, 2, 13, 50, 0, 3, 50, 0, 106, 2, 17, 65, 3,
+			50, 57, 0, 4, 106, 3, 67, 0, 106, 2, 105, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6,
+			112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 49, 84, 0, 7, 6, 114, 0, 1, 25, 2, 25, 3, 13, 51, 0, 4,
+			3, 51, 0, 114, 0, 7, 6, 115, 0, 3, 89, 0, 7, 6, 116, 0, 3, 47, 0, 7, 6, 117, 0, 4, 3, 40, 0, 2, 114, 0,
+			4, 1, 17, 65, 2, 25, 3, 58, 0, 2, 17, 65, 0, 7, 6, 118, 0, 1, 25, 2, 25, 3, 2, 40, 0, 4, 1, 17, 65, 2,
+			25, 3, 58, 0, 1, 18, 66, 2, 17, 65, 0, 4, 3, 84, 0, 2, 45, 17, 65, 12, 0, 7, 6, 119, 0, 1, 17, 65, 2, 25,
+			3, 58, 0, 3, 84, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 25, 2, 25, 3, 37, 0, 3, 57, 0, 7, 6,
+			122, 0, 3, 88, 0, 7, 6, 0, 195, 170, 3, 6, 109, 12, 0, 195, 180, 3, 6, 111, 12, 0, 195, 173, 3, 6, 121, 0, 195, 169,
+			3, 6, 123, 0, 195, 161, 3, 6, 124, 0, 195, 179, 3, 6, 125, 0, 195, 186, 3, 6, 126, 0, 195, 182, 3, 13, 12, 0, 195, 159,
+			3, 21, 100, 101, 0, 36, 3, 72, 6, 39, 55, 35, 51, 0, 196, 145, 3, 75, 0, 196, 135, 3, 76, 0, 4, 195, 164, 3, 109, 0,
+			195, 168, 0, 195, 178, 3, 111, 0, 195, 188, 3, 112, 0, 197, 153, 3, 133, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts58 = FileInMemory_createWithData (2690, reinterpret_cast<const char *> (&espeakdata_dicts58_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/sl_dict", 
 			U"sl");
-		my addItem_move (espeakdata_dicts59.move());
+		Collection_addItem (me.peek(), espeakdata_dicts58.transfer());
 
-		static unsigned char espeakdata_dicts60_data[3200] = {
-			0, 4, 0, 0, 99, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 13, 0, 0, 0, 0, 0, 6, 65, 12,
-			124, 13, 0, 0, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 0, 15, 4, 95, 100, 112, 116, 10, 48, 51, 6, 36, 89, 57, 35,
-			0, 0, 6, 65, 20, 36, 0, 49, 5, 193, 20, 76, 28, 0, 0, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 0, 0, 6, 65, 28,
-			81, 13, 0, 0, 0, 0, 0, 6, 65, 32, 107, 13, 0, 0, 15, 1, 33, 48, 37, 49, 76, 40, 72, 6, 37, 124, 113, 0, 27, 0,
-			0, 7, 1, 35, 107, 35, 91, 0, 0, 17, 65, 36, 37, 10, 124, 6, 37, 64, 37, 0, 81, 99, 105, 108, 105, 32, 4, 193, 36, 76,
-			0, 5, 194, 54, 64, 76, 13, 1, 37, 48, 13, 76, 37, 50, 72, 57, 35, 0, 27, 0, 7, 1, 38, 10, 86, 113, 0, 0, 0, 6,
-			65, 40, 57, 13, 0, 0, 0, 8, 1, 42, 116, 123, 37, 0, 27, 0, 9, 1, 43, 48, 123, 40, 89, 0, 27, 0, 6, 65, 44, 49,
-			13, 0, 0, 0, 8, 1, 46, 48, 37, 49, 0, 27, 0, 12, 1, 47, 48, 57, 6, 113, 89, 47, 37, 65, 0, 0, 6, 65, 48, 55,
-			13, 0, 0, 5, 194, 70, 64, 76, 0, 0, 0, 6, 65, 52, 65, 13, 0, 0, 0, 0, 0, 6, 65, 56, 50, 13, 0, 0, 0, 0,
-			0, 0, 13, 1, 61, 71, 35, 51, 35, 71, 6, 35, 51, 47, 0, 0, 0, 0, 9, 1, 64, 65, 35, 50, 49, 37, 0, 6, 65, 64,
-			48, 13, 0, 0, 0, 0, 0, 6, 65, 68, 80, 13, 0, 0, 0, 0, 0, 6, 65, 72, 51, 13, 0, 0, 0, 7, 195, 16, 129, 64,
-			76, 8, 0, 0, 6, 65, 76, 89, 13, 0, 0, 0, 0, 0, 6, 65, 80, 47, 13, 0, 0, 0, 0, 0, 4, 193, 84, 76, 0, 0,
-			0, 0, 6, 65, 88, 84, 13, 0, 0, 0, 0, 0, 6, 65, 92, 58, 13, 0, 0, 0, 16, 1, 94, 89, 6, 37, 51, 49, 40, 65,
-			83, 123, 113, 49, 89, 0, 0, 0, 6, 65, 96, 125, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 104, 88, 13, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 53, 80, 74, 65, 40, 118, 0, 0, 9,
-			1, 126, 47, 37, 55, 72, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 128, 76, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 9, 67, 81, 80, 74, 47, 40, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 16, 128, 86, 13, 0, 0, 0, 0, 9, 197, 52, 148, 164, 64,
-			240, 76, 8, 0, 0, 0, 0, 0, 0, 7, 195, 61, 49, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 58, 64, 76, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 58, 68, 197, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 10, 3, 226, 130, 172, 113, 40, 51, 117, 0, 0, 0, 0, 0, 7, 195, 12, 147, 1, 76, 8, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194,
-			44, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 28, 160, 77, 13, 0, 0, 16, 3, 95,
-			51, 88, 47, 51, 6, 37, 86, 57, 36, 47, 2, 108, 0, 0, 11, 3, 95, 48, 67, 80, 4, 37, 50, 72, 0, 0, 0, 0, 7, 195,
-			12, 147, 9, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 49, 57, 50, 6, 109, 50, 47, 13, 65, 71, 108,
-			86, 57, 36, 47, 108, 0, 0, 19, 3, 95, 49, 56, 47, 6, 113, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 0, 0, 6,
-			195, 66, 68, 128, 76, 0, 0, 0, 0, 17, 3, 95, 49, 49, 67, 6, 110, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 12, 3, 95,
-			49, 48, 86, 57, 6, 113, 47, 108, 0, 0, 18, 3, 95, 49, 51, 47, 51, 6, 113, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 17,
-			3, 95, 49, 50, 72, 6, 116, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 19, 3, 95, 49, 53, 48, 6, 113, 89, 13, 65, 71, 108,
-			86, 57, 36, 47, 108, 0, 0, 20, 3, 95, 49, 52, 49, 6, 35, 47, 13, 34, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 20, 3,
-			95, 49, 55, 91, 47, 6, 35, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 20, 3, 95, 49, 54, 77, 6, 35, 91, 47, 13,
-			65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 0, 18, 3, 95, 55, 88, 91, 47, 6, 35, 47, 108, 86, 57, 36, 47, 2, 108, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 40, 19, 164, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
-			3, 95, 50, 88, 67, 6, 110, 88, 113, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 112, 64, 76, 0, 0, 0, 0, 0,
-			13, 3, 95, 63, 63, 91, 49, 51, 6, 117, 67, 35, 0, 0, 0, 0, 12, 3, 95, 52, 88, 72, 6, 116, 88, 113, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 17, 3, 95, 53, 88, 48, 6, 113, 89, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 18, 3, 95, 54, 88, 77, 6, 35, 91, 47, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 17, 3, 95, 56, 88, 47, 6, 113, 47, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0, 5,
-			194, 52, 80, 76, 0, 18, 3, 95, 57, 88, 50, 6, 109, 50, 47, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68, 53, 80, 74, 36, 65, 6, 40,
-			118, 38, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 76, 146, 213, 72, 76, 8, 0, 0, 0, 0, 0, 0, 0, 14, 4,
+		static unsigned char espeakdata_dicts59_data[3215] = {
+			0, 4, 0, 0, 114, 9, 0, 0, 0, 0, 0, 0, 0, 9, 67, 53, 80, 74, 65, 40, 118, 0, 0, 0, 0, 0, 6, 65, 8, 71,
+			13, 0, 0, 0, 0, 0, 6, 65, 12, 124, 13, 0, 0, 0, 0, 0, 6, 65, 16, 72, 13, 0, 0, 0, 0, 0, 6, 65, 20, 36,
+			0, 14, 5, 193, 20, 76, 28, 0, 0, 0, 0, 6, 65, 24, 83, 13, 0, 0, 0, 0, 0, 6, 65, 28, 81, 13, 0, 0, 0, 0,
+			0, 6, 65, 32, 107, 13, 0, 0, 15, 1, 33, 48, 37, 49, 76, 40, 72, 6, 37, 124, 113, 0, 27, 0, 0, 7, 1, 35, 107, 35,
+			91, 0, 0, 17, 65, 36, 37, 10, 124, 6, 37, 64, 37, 0, 81, 99, 105, 108, 105, 32, 4, 193, 36, 76, 0, 13, 1, 37, 48, 13,
+			76, 37, 50, 72, 57, 35, 0, 27, 0, 7, 1, 38, 10, 86, 113, 0, 0, 0, 6, 65, 40, 57, 13, 0, 0, 0, 8, 1, 42, 116,
+			123, 37, 0, 27, 0, 9, 1, 43, 48, 123, 40, 89, 0, 27, 0, 6, 65, 44, 49, 13, 0, 0, 0, 8, 1, 46, 48, 37, 49, 0,
+			27, 0, 12, 1, 47, 48, 57, 6, 113, 89, 47, 37, 65, 0, 0, 6, 65, 48, 55, 13, 0, 0, 0, 0, 0, 6, 65, 52, 65, 13,
+			0, 0, 0, 0, 13, 68, 53, 80, 74, 36, 65, 6, 40, 118, 38, 37, 0, 0, 10, 5, 95, 48, 1, 14, 4, 2, 113, 0, 6, 65,
+			56, 50, 13, 0, 0, 0, 0, 0, 0, 13, 1, 61, 71, 35, 51, 35, 71, 6, 35, 51, 47, 0, 0, 0, 0, 9, 1, 64, 65, 35,
+			50, 49, 37, 0, 6, 65, 64, 48, 13, 0, 0, 0, 0, 0, 6, 65, 68, 80, 13, 0, 0, 0, 0, 0, 6, 65, 72, 51, 13, 0,
+			0, 0, 7, 195, 16, 129, 64, 76, 8, 0, 0, 6, 65, 76, 89, 13, 0, 0, 0, 0, 0, 6, 65, 80, 47, 13, 0, 0, 0, 0,
+			0, 4, 193, 84, 76, 0, 0, 0, 0, 6, 65, 88, 84, 13, 0, 0, 0, 0, 8, 133, 10, 1, 14, 195, 171, 76, 0, 6, 65, 92,
+			58, 13, 0, 0, 9, 133, 14, 195, 171, 19, 5, 76, 8, 0, 16, 1, 94, 89, 6, 37, 51, 49, 40, 65, 83, 123, 113, 49, 89, 0,
+			0, 0, 6, 65, 96, 125, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 104, 88, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 126, 47, 37, 55, 72, 111, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 4, 16, 20, 10, 48,
+			51, 6, 36, 89, 57, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			66, 16, 128, 86, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 61, 49, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 226, 130,
+			172, 113, 40, 51, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 44, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 7, 66, 28, 160, 77, 13, 0, 0, 16, 3, 95, 51, 88, 47, 51, 6, 37, 86, 57, 36, 47, 2, 108, 0,
+			0, 11, 3, 95, 48, 67, 80, 4, 37, 50, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 16, 195,
+			171, 18, 76, 20, 3, 95, 49, 57, 50, 6, 109, 50, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 19, 3, 95, 49, 56, 47,
+			6, 113, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 49, 49, 67, 6, 110, 65, 71,
+			108, 86, 57, 36, 47, 108, 0, 0, 12, 3, 95, 49, 48, 86, 57, 6, 113, 47, 108, 0, 0, 18, 3, 95, 49, 51, 47, 51, 6, 113,
+			65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 17, 3, 95, 49, 50, 72, 6, 116, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 19, 3,
+			95, 49, 53, 48, 6, 113, 89, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 20, 3, 95, 49, 52, 49, 6, 35, 47, 13, 34, 65,
+			71, 108, 86, 57, 36, 47, 108, 0, 0, 20, 3, 95, 49, 55, 91, 47, 6, 35, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0,
+			20, 3, 95, 49, 54, 77, 6, 35, 91, 47, 13, 65, 71, 108, 86, 57, 36, 47, 108, 0, 0, 0, 18, 3, 95, 55, 88, 91, 47, 6,
+			35, 47, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 3, 95, 50, 88, 67, 6, 110, 88, 113, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 112, 64, 76,
+			0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 91, 49, 51, 6, 117, 67, 35, 0, 0, 0, 0, 12, 3, 95, 52, 88, 72, 6, 116, 88,
+			113, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 53, 88, 48, 6, 113, 89, 108, 86, 57, 36, 47, 2, 108, 0, 0, 0,
+			0, 10, 135, 11, 195, 171, 19, 8, 20, 21, 66, 0, 0, 0, 0, 0, 18, 3, 95, 54, 88, 77, 6, 35, 91, 47, 108, 86, 57, 36,
+			47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56, 88, 47, 6, 113, 47, 108,
+			86, 57, 36, 47, 2, 108, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 52, 80, 76, 0, 18, 3, 95, 57, 88, 50, 6, 109, 50, 47,
+			108, 86, 57, 36, 47, 2, 108, 0, 0, 6, 131, 13, 195, 171, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4,
 			95, 48, 77, 50, 65, 37, 64, 37, 6, 117, 50, 0, 0, 15, 4, 95, 48, 77, 51, 65, 37, 64, 37, 6, 35, 34, 72, 0, 0, 0,
-			12, 4, 95, 48, 77, 49, 65, 4, 37, 57, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 78, 64, 76,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 48, 192, 123, 13, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 99, 97, 112, 10,
-			113, 65, 6, 35, 86, 113, 0, 0, 0, 0, 0, 0, 0, 7, 66, 56, 160, 67, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66,
-			73, 32, 51, 52, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 66, 76, 16, 89, 35, 65, 65, 0, 81, 109, 195, 171, 32, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 76, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 76, 128, 91,
-			13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 76, 144, 76, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 80, 128, 87, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 35, 48, 117, 89, 47, 51, 117, 83, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 27, 2, 95, 41, 49, 123, 6, 35, 48, 35, 113, 15, 84, 6, 117, 81, 13, 55, 113, 15, 72, 57, 6, 35, 87, 47, 0, 0,
-			19, 2, 95, 40, 49, 123, 6, 35, 48, 35, 113, 15, 84, 6, 117, 81, 13, 55, 0, 0, 0, 0, 11, 2, 95, 45, 65, 6, 37, 50,
-			40, 89, 0, 0, 11, 2, 95, 44, 48, 51, 36, 89, 57, 111, 0, 0, 9, 2, 95, 51, 47, 51, 6, 113, 0, 0, 8, 2, 95, 50,
-			72, 6, 116, 0, 0, 8, 2, 95, 49, 67, 6, 110, 0, 0, 10, 2, 95, 48, 88, 6, 113, 69, 117, 0, 0, 11, 2, 95, 55, 91,
-			47, 6, 35, 47, 108, 0, 0, 5, 194, 82, 64, 76, 11, 2, 95, 54, 77, 6, 35, 91, 47, 108, 0, 0, 10, 2, 95, 53, 48, 6,
-			113, 89, 108, 0, 0, 11, 2, 95, 52, 49, 6, 35, 47, 13, 51, 0, 0, 14, 2, 95, 59, 48, 37, 49, 48, 51, 36, 89, 57, 111,
-			0, 0, 12, 2, 95, 58, 72, 116, 15, 48, 37, 49, 111, 0, 0, 11, 2, 95, 57, 50, 6, 109, 50, 47, 108, 0, 0, 10, 2, 95,
-			56, 47, 6, 113, 47, 108, 0, 0, 13, 2, 95, 63, 48, 37, 49, 48, 116, 47, 57, 113, 0, 0, 14, 2, 95, 62, 65, 6, 13, 113,
-			65, 6, 35, 86, 113, 0, 0, 0, 16, 2, 95, 60, 65, 6, 13, 113, 15, 84, 4, 117, 81, 113, 55, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 95, 91, 49, 123, 6, 35, 48, 35, 113,
-			15, 65, 6, 35, 86, 113, 0, 0, 0, 0, 0, 14, 2, 95, 95, 50, 4, 109, 50, 15, 84, 6, 37, 88, 0, 0, 0, 26, 2, 95,
-			93, 49, 123, 6, 35, 48, 35, 113, 15, 65, 6, 35, 86, 113, 113, 15, 72, 57, 6, 35, 87, 47, 0, 0, 17, 2, 95, 92, 84, 37,
-			88, 113, 65, 118, 47, 87, 6, 121, 89, 113, 0, 0, 0, 0, 6, 2, 95, 97, 35, 0, 0, 8, 197, 46, 68, 200, 81, 80, 66, 0,
-			0, 0, 6, 2, 95, 101, 36, 0, 0, 0, 0, 0, 6, 2, 95, 105, 37, 0, 0, 0, 6, 2, 95, 111, 117, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 2, 95, 117, 40, 0, 0, 0, 19, 2, 95, 123, 49, 123, 6, 35, 48, 35, 113, 15, 65, 6, 113, 89,
-			65, 113, 0, 0, 0, 6, 2, 95, 121, 116, 0, 0, 0, 0, 0, 27, 2, 95, 125, 49, 123, 6, 35, 48, 35, 113, 15, 65, 6, 113,
-			89, 65, 113, 113, 15, 72, 57, 6, 35, 87, 47, 0, 0, 0, 0, 0, 10, 5, 95, 48, 97, 110, 100, 2, 113, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 66, 96, 128, 75, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 35, 51, 50,
-			89, 48, 119, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 104,
-			128, 90, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 6, 18, 67, 103, 106, 0, 120, 104, 0, 98, 0, 100, 0, 103, 0, 7, 6, 18, 68, 100, 104, 0, 103, 106, 0, 108, 108,
-			0, 110, 106, 0, 114, 114, 0, 115, 104, 0, 116, 104, 0, 120, 104, 0, 122, 104, 0, 7, 6, 195, 167, 0, 3, 76, 0, 7, 6, 195,
-			171, 0, 1, 21, 2, 29, 3, 2, 109, 0, 116, 97, 1, 21, 2, 32, 3, 8, 13, 47, 35, 0, 118, 105, 1, 21, 2, 32, 3, 8,
-			13, 84, 37, 0, 118, 101, 1, 21, 2, 32, 3, 8, 13, 84, 113, 0, 115, 105, 1, 21, 2, 32, 3, 8, 13, 89, 37, 0, 115, 101,
-			1, 21, 2, 32, 3, 8, 13, 89, 113, 0, 115, 105, 115, 104, 116, 1, 21, 2, 32, 3, 8, 89, 115, 91, 47, 0, 4, 1, 17, 67,
-			17, 65, 2, 32, 3, 108, 0, 1, 17, 67, 106, 17, 65, 2, 32, 0, 1, 17, 67, 114, 17, 65, 2, 32, 0, 1, 18, 68, 17, 65,
-			2, 32, 0, 1, 116, 104, 17, 65, 2, 32, 0, 1, 116, 115, 17, 65, 2, 32, 0, 3, 109, 0, 1, 94, 110, 3, 110, 0, 7, 6,
-			97, 0, 116, 1, 21, 2, 32, 3, 8, 35, 47, 0, 110, 105, 1, 21, 2, 113, 32, 3, 8, 35, 50, 37, 0, 114, 195, 171, 118, 101,
-			1, 21, 2, 32, 3, 8, 35, 51, 13, 84, 113, 0, 118, 101, 1, 21, 2, 32, 3, 8, 35, 84, 113, 0, 3, 35, 0, 4, 2, 32,
-			3, 112, 0, 2, 114, 25, 0, 106, 3, 118, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 124, 0, 7, 6, 100, 0, 3,
-			72, 0, 104, 3, 86, 0, 7, 6, 101, 0, 116, 1, 21, 2, 32, 3, 8, 113, 47, 0, 110, 1, 21, 2, 32, 3, 8, 113, 50, 0,
-			118, 105, 1, 21, 2, 113, 32, 3, 8, 113, 84, 37, 0, 118, 101, 1, 21, 2, 32, 3, 8, 113, 84, 113, 0, 115, 1, 21, 2, 32,
-			3, 8, 113, 89, 0, 4, 1, 94, 110, 3, 36, 0, 1, 104, 115, 0, 1, 106, 0, 1, 108, 0, 1, 113, 0, 2, 106, 0, 2, 115,
-			104, 0, 2, 115, 106, 0, 4, 3, 113, 0, 1, 108, 108, 0, 106, 2, 25, 3, 119, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103,
-			0, 106, 3, 77, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 2, 25, 3, 107, 107, 0, 7, 6, 105, 0, 4, 1, 99, 105, 21,
-			2, 32, 3, 6, 37, 0, 1, 114, 171, 195, 21, 2, 32, 0, 2, 117, 110, 32, 0, 1, 21, 2, 113, 32, 3, 8, 37, 0, 109, 1,
-			21, 2, 32, 3, 8, 37, 65, 0, 1, 21, 2, 116, 32, 3, 8, 115, 0, 110, 1, 21, 2, 32, 3, 8, 115, 50, 0, 3, 37, 0,
-			106, 2, 25, 3, 37, 12, 0, 101, 3, 57, 36, 0, 7, 6, 106, 0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0,
-			3, 64, 0, 108, 3, 123, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 106, 3, 67, 0, 7, 6, 111, 0, 118,
-			105, 2, 113, 32, 3, 8, 117, 84, 37, 0, 3, 117, 0, 4, 105, 2, 108, 32, 3, 120, 0, 106, 2, 25, 0, 7, 6, 112, 0, 3,
-			48, 0, 7, 6, 113, 0, 3, 80, 0, 7, 6, 114, 0, 114, 8, 3, 13, 52, 0, 114, 101, 8, 2, 103, 117, 108, 108, 97, 3, 13,
-			52, 6, 36, 0, 4, 3, 51, 0, 2, 25, 0, 114, 3, 51, 52, 0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 7, 6, 116,
-			0, 3, 47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 4, 1, 116, 2, 97, 110, 32, 3, 6, 40, 0, 2, 97, 114, 32, 0, 2, 97,
-			114, 97, 32, 0, 2, 101, 115, 118, 101, 32, 0, 4, 1, 21, 2, 110, 32, 3, 8, 40, 0, 1, 21, 2, 114, 32, 0, 3, 40, 0,
-			2, 97, 106, 25, 3, 58, 0, 97, 3, 58, 112, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0,
-			2, 32, 3, 49, 89, 0, 104, 3, 75, 0, 3, 125, 0, 7, 6, 121, 0, 3, 116, 0, 101, 3, 121, 0, 7, 6, 122, 0, 3, 88,
-			0, 104, 3, 90, 0, 7, 6, 0, 36, 3, 72, 117, 123, 35, 34, 37, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts60 = FileInMemory_createWithData (3199, reinterpret_cast<const char *> (&espeakdata_dicts60_data), 
-			U"espeak-1.48.04-source/espeak-data/sq_dict", 
+			12, 4, 95, 48, 77, 49, 65, 4, 37, 57, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			131, 14, 195, 171, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 48, 192, 123, 13, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 135, 13, 9, 18, 195, 171, 16, 15, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 56, 160, 67, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 73, 32,
+			51, 52, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 66, 76, 16, 89, 35, 65, 65, 0, 81, 109, 195, 171, 32, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			5, 194, 76, 80, 76, 0, 0, 8, 196, 76, 146, 213, 72, 76, 8, 0, 0, 0, 0, 0, 7, 2, 195, 167, 76, 13, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 76, 128, 91, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 131, 17, 195, 171, 76, 6, 194, 76, 144, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 1, 35, 0, 0, 0,
+			0, 0, 6, 2, 95, 5, 36, 0, 0, 0, 0, 6, 2, 95, 9, 37, 0, 0, 7, 66, 80, 128, 87, 13, 0, 0, 6, 2, 95, 15,
+			117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 81, 80, 74, 47, 40, 118, 0, 6, 2, 95, 21, 40, 0, 0, 0, 0,
+			0, 6, 2, 95, 25, 116, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 95, 34, 35, 48, 117, 89, 47, 51, 117, 83, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 14, 4, 95, 3, 1, 16, 10, 113, 65, 6, 35, 86, 113, 0, 0, 27, 2, 95, 41, 49, 123, 6, 35, 48, 35,
+			113, 15, 84, 6, 117, 81, 13, 55, 113, 15, 72, 57, 6, 35, 87, 47, 0, 0, 19, 2, 95, 40, 49, 123, 6, 35, 48, 35, 113, 15,
+			84, 6, 117, 81, 13, 55, 0, 0, 0, 0, 11, 2, 95, 45, 65, 6, 37, 50, 40, 89, 0, 0, 11, 2, 95, 44, 48, 51, 36, 89,
+			57, 111, 0, 0, 9, 2, 95, 51, 47, 51, 6, 113, 0, 0, 8, 2, 95, 50, 72, 6, 116, 0, 0, 8, 2, 95, 49, 67, 6, 110,
+			0, 0, 10, 2, 95, 48, 88, 6, 113, 69, 117, 0, 0, 11, 2, 95, 55, 91, 47, 6, 35, 47, 108, 0, 0, 11, 2, 95, 54, 77,
+			6, 35, 91, 47, 108, 0, 0, 10, 2, 95, 53, 48, 6, 113, 89, 108, 0, 0, 11, 2, 95, 52, 49, 6, 35, 47, 13, 51, 0, 0,
+			14, 2, 95, 59, 48, 37, 49, 48, 51, 36, 89, 57, 111, 0, 0, 12, 2, 95, 58, 72, 116, 15, 48, 37, 49, 111, 0, 0, 11, 2,
+			95, 57, 50, 6, 109, 50, 47, 108, 0, 0, 10, 2, 95, 56, 47, 6, 113, 47, 108, 0, 0, 13, 2, 95, 63, 48, 37, 49, 48, 116,
+			47, 57, 113, 0, 0, 14, 2, 95, 62, 65, 6, 13, 113, 65, 6, 35, 86, 113, 0, 0, 0, 16, 2, 95, 60, 65, 6, 13, 113, 15,
+			84, 4, 117, 81, 113, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 18, 2, 95, 91, 49, 123, 6, 35, 48, 35, 113, 15, 65, 6, 35, 86, 113, 0, 0, 0, 0, 0, 14, 2, 95, 95, 50, 4,
+			109, 50, 15, 84, 6, 37, 88, 0, 0, 0, 26, 2, 95, 93, 49, 123, 6, 35, 48, 35, 113, 15, 65, 6, 35, 86, 113, 113, 15, 72,
+			57, 6, 35, 87, 47, 0, 0, 17, 2, 95, 92, 84, 37, 88, 113, 65, 118, 47, 87, 6, 121, 89, 113, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 95, 123, 49, 123, 6, 35, 48, 35, 113,
+			15, 65, 6, 113, 89, 65, 113, 0, 0, 6, 131, 19, 195, 171, 76, 0, 0, 0, 0, 0, 27, 2, 95, 125, 49, 123, 6, 35, 48, 35,
+			113, 15, 65, 6, 113, 89, 65, 113, 113, 15, 72, 57, 6, 35, 87, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 66, 96, 128, 75, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 35, 51, 50, 89, 48, 119, 89, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 12, 147, 1, 76, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 195, 12, 147, 9, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 20, 195, 171, 76, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 104, 128, 90, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 67, 103, 106, 0, 120, 104, 0, 98, 0, 100,
+			0, 103, 0, 7, 6, 18, 68, 100, 104, 0, 103, 106, 0, 108, 108, 0, 110, 106, 0, 114, 114, 0, 115, 104, 0, 116, 104, 0, 120, 104,
+			0, 122, 104, 0, 7, 6, 195, 167, 0, 3, 76, 0, 7, 6, 195, 171, 0, 1, 21, 2, 29, 3, 2, 109, 0, 116, 97, 1, 21, 2,
+			32, 3, 8, 13, 47, 35, 0, 118, 105, 1, 21, 2, 32, 3, 8, 13, 84, 37, 0, 118, 101, 1, 21, 2, 32, 3, 8, 13, 84, 113,
+			0, 115, 105, 1, 21, 2, 32, 3, 8, 13, 89, 37, 0, 115, 101, 1, 21, 2, 32, 3, 8, 13, 89, 113, 0, 115, 105, 115, 104, 116,
+			1, 21, 2, 32, 3, 8, 89, 115, 91, 47, 0, 4, 1, 17, 67, 17, 65, 2, 32, 3, 108, 0, 1, 17, 67, 106, 17, 65, 2, 32,
+			0, 1, 17, 67, 114, 17, 65, 2, 32, 0, 1, 18, 68, 17, 65, 2, 32, 0, 1, 116, 104, 17, 65, 2, 32, 0, 1, 116, 115, 17,
+			65, 2, 32, 0, 3, 109, 0, 1, 94, 110, 3, 110, 0, 7, 6, 97, 0, 116, 1, 21, 2, 32, 3, 8, 35, 47, 0, 110, 105, 1,
+			21, 2, 113, 32, 3, 8, 35, 50, 37, 0, 114, 195, 171, 118, 101, 1, 21, 2, 32, 3, 8, 35, 51, 13, 84, 113, 0, 118, 101, 1,
+			21, 2, 32, 3, 8, 35, 84, 113, 0, 3, 35, 0, 4, 2, 32, 3, 112, 0, 2, 114, 25, 0, 106, 3, 118, 0, 7, 6, 98, 0,
+			3, 71, 0, 7, 6, 99, 0, 3, 124, 0, 7, 6, 100, 0, 3, 72, 0, 104, 3, 86, 0, 7, 6, 101, 0, 116, 1, 21, 2, 32,
+			3, 8, 113, 47, 0, 110, 1, 21, 2, 32, 3, 8, 113, 50, 0, 118, 105, 1, 21, 2, 113, 32, 3, 8, 113, 84, 37, 0, 118, 101,
+			1, 21, 2, 32, 3, 8, 113, 84, 113, 0, 115, 1, 21, 2, 32, 3, 8, 113, 89, 0, 4, 1, 94, 110, 3, 36, 0, 1, 104, 115,
+			0, 1, 106, 0, 1, 108, 0, 1, 113, 0, 2, 106, 0, 2, 115, 104, 0, 2, 115, 106, 0, 4, 3, 113, 0, 1, 108, 108, 0, 106,
+			2, 25, 3, 119, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 106, 3, 77, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0,
+			2, 25, 3, 107, 107, 0, 7, 6, 105, 0, 4, 1, 99, 105, 21, 2, 32, 3, 6, 37, 0, 1, 114, 171, 195, 21, 2, 32, 0, 2,
+			117, 110, 32, 0, 1, 21, 2, 113, 32, 3, 8, 37, 0, 109, 1, 21, 2, 32, 3, 8, 37, 65, 0, 1, 21, 2, 116, 32, 3, 8,
+			115, 0, 110, 1, 21, 2, 32, 3, 8, 115, 50, 0, 3, 37, 0, 106, 2, 25, 3, 37, 12, 0, 101, 3, 57, 36, 0, 7, 6, 106,
+			0, 3, 57, 0, 7, 6, 107, 0, 3, 49, 0, 7, 6, 108, 0, 3, 64, 0, 108, 3, 123, 0, 7, 6, 109, 0, 3, 65, 0, 7,
+			6, 110, 0, 3, 50, 0, 106, 3, 67, 0, 7, 6, 111, 0, 118, 105, 2, 113, 32, 3, 8, 117, 84, 37, 0, 3, 117, 0, 4, 105,
+			2, 108, 32, 3, 120, 0, 106, 2, 25, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 80, 0, 7, 6, 114, 0, 114, 8,
+			3, 13, 52, 0, 114, 101, 8, 2, 103, 117, 108, 108, 97, 3, 13, 52, 6, 36, 0, 4, 3, 51, 0, 2, 25, 0, 114, 3, 51, 52,
+			0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 7, 6, 116, 0, 3, 47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 4, 1, 116,
+			2, 97, 110, 32, 3, 6, 40, 0, 2, 97, 114, 32, 0, 2, 97, 114, 97, 32, 0, 2, 101, 115, 118, 101, 32, 0, 4, 1, 21, 2,
+			110, 32, 3, 8, 40, 0, 1, 21, 2, 114, 32, 0, 3, 40, 0, 2, 97, 106, 25, 3, 58, 0, 97, 3, 58, 112, 0, 7, 6, 118,
+			0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 2, 32, 3, 49, 89, 0, 104, 3, 75, 0, 3, 125, 0, 7, 6,
+			121, 0, 3, 116, 0, 101, 3, 121, 0, 7, 6, 122, 0, 3, 88, 0, 104, 3, 90, 0, 7, 6, 0, 36, 3, 72, 117, 123, 35, 34,
+			37, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts59 = FileInMemory_createWithData (3214, reinterpret_cast<const char *> (&espeakdata_dicts59_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/sq_dict", 
 			U"sq");
-		my addItem_move (espeakdata_dicts60.move());
+		Collection_addItem (me.peek(), espeakdata_dicts59.transfer());
 
-		static unsigned char espeakdata_dicts61_data[9677] = {
-			0, 4, 0, 0, 186, 17, 0, 0, 0, 0, 0, 9, 67, 52, 83, 128, 65, 111, 50, 0, 10, 67, 32, 243, 128, 107, 125, 50, 0, 72,
-			0, 0, 5, 65, 4, 122, 0, 0, 0, 0, 0, 6, 65, 8, 71, 110, 0, 0, 10, 67, 44, 192, 82, 49, 55, 122, 51, 0, 0, 12,
-			67, 21, 64, 192, 110, 47, 110, 89, 6, 110, 0, 0, 0, 6, 65, 12, 89, 110, 0, 0, 0, 0, 0, 6, 65, 16, 72, 110, 0, 0,
-			7, 196, 45, 83, 132, 20, 72, 0, 10, 67, 44, 192, 83, 49, 55, 122, 89, 0, 6, 195, 16, 84, 211, 76, 10, 67, 76, 147, 128, 89,
-			109, 50, 0, 76, 0, 13, 4, 95, 100, 112, 116, 48, 6, 120, 68, 49, 47, 0, 0, 5, 65, 20, 110, 0, 0, 0, 0, 0, 6, 65,
-			24, 111, 83, 0, 0, 0, 0, 12, 68, 4, 228, 197, 76, 35, 50, 89, 110, 89, 0, 0, 6, 65, 28, 81, 110, 0, 0, 0, 11, 67,
-			44, 19, 128, 49, 6, 35, 50, 0, 72, 0, 0, 6, 65, 32, 107, 124, 0, 0, 0, 0, 0, 7, 65, 36, 108, 0, 72, 28, 5, 65,
-			36, 108, 0, 0, 9, 68, 25, 32, 77, 20, 21, 0, 47, 0, 0, 0, 6, 65, 40, 57, 108, 0, 0, 0, 0, 0, 6, 65, 44, 49,
-			124, 0, 0, 0, 0, 14, 69, 8, 245, 20, 20, 224, 71, 6, 123, 47, 111, 50, 0, 0, 13, 4, 95, 100, 105, 97, 6, 123, 65, 57,
-			117, 72, 0, 6, 65, 48, 111, 55, 0, 0, 15, 1, 49, 83, 6, 119, 93, 47, 112, 0, 82, 58, 32, 101, 32, 15, 1, 49, 83, 6,
-			119, 93, 47, 35, 0, 82, 58, 32, 97, 32, 0, 8, 67, 40, 21, 211, 21, 0, 47, 14, 1, 50, 35, 50, 72, 51, 35, 0, 82, 58,
-			32, 97, 32, 0, 14, 68, 57, 225, 207, 56, 50, 4, 124, 81, 123, 50, 0, 72, 15, 1, 51, 47, 51, 110, 72, 57, 112, 0, 82, 58,
-			32, 101, 32, 0, 15, 1, 52, 83, 57, 113, 51, 72, 112, 0, 82, 58, 32, 101, 32, 6, 65, 52, 111, 65, 0, 0, 14, 1, 53, 83,
-			111, 65, 47, 112, 0, 82, 58, 32, 101, 32, 0, 14, 1, 54, 127, 111, 47, 12, 112, 0, 82, 58, 32, 101, 32, 0, 14, 1, 55, 127,
-			120, 50, 72, 112, 0, 82, 58, 32, 101, 32, 0, 11, 70, 76, 241, 148, 92, 20, 133, 21, 0, 47, 16, 1, 56, 123, 47, 12, 123, 50,
-			72, 112, 0, 82, 58, 32, 101, 32, 6, 65, 56, 111, 50, 0, 0, 15, 1, 57, 50, 108, 123, 50, 72, 112, 0, 82, 58, 32, 101, 32,
-			0, 12, 68, 4, 228, 197, 72, 35, 50, 89, 110, 51, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 110, 0, 0, 0, 9, 67, 76,
-			145, 192, 89, 111, 57, 0, 0, 0, 6, 65, 68, 49, 117, 0, 0, 0, 0, 0, 6, 65, 72, 111, 51, 0, 0, 0, 8, 67, 88, 145,
-			87, 21, 0, 47, 0, 13, 4, 95, 100, 111, 116, 48, 6, 120, 68, 49, 47, 0, 0, 6, 65, 76, 111, 89, 0, 0, 0, 10, 67, 48,
-			241, 192, 55, 6, 126, 81, 0, 0, 0, 6, 65, 80, 47, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 88, 84, 110, 0, 0,
-			0, 0, 0, 12, 65, 92, 72, 6, 120, 71, 13, 55, 84, 110, 0, 0, 0, 0, 0, 7, 65, 96, 111, 49, 89, 0, 0, 14, 4, 95,
-			49, 77, 50, 65, 109, 55, 57, 6, 126, 50, 0, 0, 14, 4, 95, 49, 77, 51, 71, 109, 55, 57, 6, 126, 50, 0, 0, 10, 67, 77,
-			64, 68, 89, 47, 122, 72, 0, 0, 5, 65, 100, 115, 0, 0, 0, 0, 0, 9, 65, 104, 89, 6, 113, 47, 35, 0, 0, 0, 0, 0,
-			10, 67, 61, 32, 193, 123, 51, 49, 35, 0, 0, 0, 7, 195, 5, 69, 0, 72, 8, 0, 0, 10, 69, 25, 32, 77, 21, 48, 21, 0,
-			47, 0, 13, 72, 84, 228, 197, 48, 80, 212, 20, 64, 21, 0, 47, 11, 66, 12, 16, 89, 6, 109, 51, 49, 35, 0, 0, 11, 67, 80,
-			241, 211, 47, 6, 126, 81, 89, 0, 0, 0, 0, 0, 8, 67, 48, 147, 139, 21, 0, 47, 0, 0, 15, 69, 53, 228, 212, 20, 224, 65,
-			6, 123, 89, 47, 13, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 116, 108, 100, 47, 6, 109, 55, 72, 112, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 8, 66, 5, 96, 122, 84, 0, 72, 5, 194, 5, 96, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			15, 69, 76, 179, 204, 4, 224, 89, 49, 6, 126, 55, 35, 50, 0, 0, 0, 0, 9, 67, 8, 85, 0, 71, 110, 47, 0, 0, 0, 11,
-			70, 9, 35, 215, 76, 84, 128, 21, 0, 47, 0, 0, 12, 68, 17, 81, 197, 72, 72, 117, 81, 111, 51, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 71, 52, 84, 211, 20, 225, 197, 72, 21, 0, 47, 7, 196, 36, 227, 129, 56, 28, 0, 0, 11, 67, 25, 32, 77, 83, 51,
-			6, 35, 65, 0, 0, 0, 0, 0, 12, 71, 52, 144, 210, 61, 51, 198, 80, 21, 0, 47, 0, 9, 68, 36, 208, 71, 20, 21, 0, 47,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 109, 99, 110, 89, 47, 51, 6, 111, 49, 0, 0, 14, 68, 57, 225,
-			210, 4, 50, 6, 124, 81, 51, 35, 0, 72, 0, 12, 68, 29, 33, 80, 76, 81, 51, 110, 48, 89, 0, 0, 18, 70, 28, 83, 69, 57,
-			48, 77, 57, 111, 65, 6, 110, 50, 89, 35, 65, 0, 0, 0, 0, 0, 0, 11, 67, 21, 32, 78, 113, 51, 35, 50, 0, 76, 0, 0,
-			0, 0, 0, 10, 67, 76, 176, 64, 89, 49, 122, 0, 72, 10, 67, 76, 176, 64, 89, 49, 122, 0, 72, 0, 0, 0, 10, 67, 77, 67,
-			210, 89, 47, 126, 51, 0, 0, 0, 0, 0, 5, 194, 21, 32, 76, 0, 0, 0, 10, 67, 76, 17, 5, 89, 122, 72, 111, 0, 11, 67,
-			32, 17, 5, 107, 35, 72, 111, 0, 72, 0, 10, 67, 77, 64, 78, 89, 47, 122, 50, 0, 0, 10, 67, 21, 37, 0, 110, 51, 47, 0,
-			76, 0, 0, 0, 5, 194, 16, 80, 72, 0, 0, 10, 67, 88, 19, 20, 84, 122, 55, 47, 0, 0, 0, 0, 10, 67, 16, 85, 0, 72,
-			110, 47, 0, 72, 0, 10, 67, 76, 83, 148, 89, 110, 50, 47, 0, 0, 0, 5, 194, 17, 80, 72, 0, 9, 67, 88, 83, 64, 84, 111,
-			65, 0, 9, 67, 24, 83, 64, 83, 111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 25, 32, 77, 121, 64, 83, 51, 35, 65,
-			123, 47, 0, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 76, 181, 76, 48, 80, 72, 0, 0,
-			6, 195, 76, 147, 129, 76, 0, 0, 9, 67, 21, 69, 0, 6, 111, 47, 0, 6, 195, 21, 69, 0, 72, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 196, 84, 225, 5, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 69, 25,
-			32, 77, 52, 80, 83, 51, 6, 35, 65, 111, 0, 6, 195, 89, 228, 148, 76, 0, 10, 67, 45, 96, 82, 49, 84, 122, 51, 0, 0, 13,
-			67, 25, 39, 142, 83, 51, 6, 124, 50, 0, 72, 28, 0, 6, 195, 88, 147, 12, 72, 7, 195, 80, 147, 12, 72, 28, 0, 0, 0, 0,
-			0, 0, 7, 66, 32, 16, 107, 122, 0, 0, 0, 11, 67, 21, 32, 84, 113, 51, 35, 47, 0, 76, 0, 0, 0, 0, 11, 70, 12, 129,
-			67, 44, 81, 0, 21, 0, 47, 0, 0, 12, 68, 4, 225, 1, 76, 35, 50, 72, 35, 89, 0, 0, 10, 67, 16, 147, 128, 72, 109, 50,
-			0, 76, 10, 67, 32, 19, 128, 107, 35, 50, 0, 72, 0, 0, 0, 0, 9, 67, 16, 19, 128, 72, 122, 50, 0, 0, 0, 0, 0, 9,
-			67, 64, 20, 128, 48, 122, 51, 0, 10, 67, 32, 20, 128, 107, 122, 51, 0, 72, 6, 195, 32, 20, 128, 72, 0, 0, 0, 0, 9, 67,
-			80, 20, 128, 47, 122, 51, 0, 0, 0, 0, 10, 67, 17, 32, 82, 72, 51, 122, 51, 0, 0, 10, 67, 20, 115, 129, 110, 81, 50, 35,
-			0, 6, 195, 16, 147, 129, 76, 6, 195, 52, 147, 129, 76, 0, 0, 0, 0, 0, 10, 69, 9, 85, 20, 60, 224, 21, 0, 47, 0, 8,
-			67, 72, 245, 211, 21, 0, 47, 10, 67, 17, 32, 83, 72, 51, 122, 89, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 29, 33, 80, 81,
-			51, 110, 48, 0, 0, 0, 0, 0, 0, 9, 68, 48, 85, 133, 48, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 67, 16, 145, 192, 72, 111, 57, 0, 9, 67, 4, 227, 133, 35, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 40,
-			16, 57, 122, 0, 0, 0, 0, 13, 4, 95, 111, 103, 111, 89, 84, 6, 35, 50, 89, 0, 0, 0, 0, 6, 195, 89, 228, 129, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 32, 20, 192, 21, 0, 47, 0, 0, 0, 0, 9, 67, 80, 20, 192, 47, 122, 89,
-			0, 0, 8, 67, 92, 244, 132, 21, 0, 47, 0, 0, 14, 4, 95, 98, 114, 118, 71, 51, 6, 110, 84, 108, 89, 0, 0, 0, 0, 0,
-			18, 4, 95, 97, 99, 50, 72, 6, 120, 71, 112, 55, 6, 122, 49, 117, 47, 0, 0, 11, 67, 88, 20, 133, 84, 122, 51, 111, 0, 72,
-			0, 0, 11, 70, 29, 32, 80, 32, 144, 211, 21, 0, 47, 0, 0, 0, 0, 12, 71, 84, 224, 200, 20, 50, 197, 16, 21, 0, 47, 8,
-			67, 16, 245, 0, 21, 0, 47, 12, 68, 77, 67, 210, 80, 89, 47, 126, 51, 47, 0, 0, 0, 8, 196, 20, 195, 5, 72, 72, 8, 0,
-			0, 0, 12, 68, 76, 17, 5, 76, 89, 122, 72, 111, 89, 0, 0, 0, 0, 0, 0, 0, 0, 9, 68, 20, 208, 73, 48, 21, 0, 47,
-			0, 10, 69, 12, 19, 131, 20, 192, 21, 0, 47, 8, 66, 20, 224, 111, 50, 0, 72, 0, 12, 3, 95, 51, 88, 47, 51, 6, 111, 47,
-			109, 0, 0, 13, 3, 95, 48, 67, 107, 6, 120, 50, 72, 51, 35, 0, 0, 0, 0, 9, 67, 17, 32, 64, 72, 51, 122, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 13, 68, 72, 17, 5, 56, 51, 122, 72, 2, 111, 50, 0, 0, 10, 69, 12, 243, 21, 52, 224, 21, 0, 47,
-			0, 0, 12, 3, 95, 49, 57, 50, 6, 109, 47, 123, 50, 0, 0, 12, 3, 95, 49, 56, 6, 122, 51, 47, 123, 50, 0, 0, 0, 0,
-			7, 195, 26, 132, 128, 72, 28, 0, 0, 0, 0, 11, 3, 95, 49, 49, 6, 111, 55, 84, 35, 0, 0, 11, 3, 95, 49, 48, 47, 6,
-			108, 38, 126, 0, 0, 13, 3, 95, 49, 51, 47, 51, 6, 111, 47, 123, 50, 0, 0, 11, 3, 95, 49, 50, 47, 6, 123, 55, 84, 0,
-			0, 13, 3, 95, 49, 53, 83, 6, 111, 65, 47, 123, 50, 0, 0, 14, 3, 95, 49, 52, 83, 57, 6, 126, 51, 47, 123, 50, 0, 0,
-			8, 67, 92, 149, 8, 21, 0, 47, 12, 3, 95, 49, 55, 127, 6, 120, 47, 123, 50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 111, 49,
-			89, 47, 123, 50, 0, 0, 0, 11, 3, 95, 55, 88, 127, 6, 120, 47, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 67, 32, 85, 1, 107, 110, 47, 35, 0, 12, 4, 95, 97, 99, 117, 6, 122, 49, 117, 47, 0, 0, 0, 0, 0, 0, 0, 9, 67,
-			52, 21, 0, 65, 122, 47, 0, 0, 6, 195, 10, 132, 128, 72, 0, 0, 0, 15, 2, 49, 49, 111, 55, 83, 47, 112, 0, 82, 58, 32,
-			101, 32, 0, 16, 2, 49, 48, 47, 108, 123, 50, 72, 112, 0, 82, 58, 32, 101, 32, 0, 11, 3, 95, 50, 88, 97, 6, 117, 81, 123,
-			0, 0, 10, 69, 72, 80, 68, 21, 32, 21, 0, 47, 16, 2, 49, 50, 47, 123, 55, 83, 47, 112, 0, 82, 58, 32, 101, 32, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 20, 71, 28, 83, 69, 57, 48, 77, 80, 57, 111, 65, 6, 110, 50, 89, 35, 65, 47, 0, 0, 0, 0,
-			15, 3, 95, 63, 63, 89, 6, 116, 65, 71, 126, 55, 112, 50, 0, 0, 0, 0, 12, 3, 95, 52, 88, 83, 6, 119, 51, 47, 109, 0,
-			0, 12, 68, 32, 243, 143, 52, 107, 123, 50, 123, 65, 0, 0, 6, 195, 32, 19, 147, 76, 0, 0, 0, 0, 0, 0, 12, 3, 95, 53,
-			88, 83, 6, 111, 65, 47, 109, 0, 0, 0, 11, 4, 95, 114, 110, 103, 51, 6, 109, 68, 0, 0, 0, 0, 0, 0, 16, 69, 8, 85,
-			1, 49, 64, 71, 6, 111, 47, 6, 122, 55, 47, 0, 0, 13, 3, 95, 54, 88, 89, 6, 111, 49, 89, 47, 109, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 68, 53, 228, 212, 20, 65, 6, 123, 89, 47, 13, 0, 0, 0, 10, 3, 95, 56, 88,
-			6, 123, 47, 109, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 81, 0, 72, 28, 0, 0, 11, 3, 95, 57, 88, 50, 6, 109, 47, 109,
-			0, 0, 10, 67, 32, 83, 20, 107, 110, 55, 47, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 63, 65, 71, 6, 126, 49, 89, 47, 35,
-			84, 112, 50, 0, 0, 13, 68, 5, 34, 201, 88, 6, 35, 51, 49, 108, 84, 0, 7, 196, 20, 101, 5, 72, 28, 0, 0, 0, 0, 0,
-			0, 17, 4, 95, 115, 116, 107, 89, 50, 6, 110, 72, 89, 47, 51, 112, 49, 0, 0, 11, 70, 21, 132, 12, 61, 33, 82, 21, 0, 47,
-			0, 12, 68, 76, 243, 133, 56, 89, 124, 50, 111, 50, 0, 7, 66, 36, 224, 109, 50, 0, 0, 8, 67, 92, 80, 128, 21, 0, 47, 0,
-			0, 0, 10, 67, 77, 96, 82, 89, 84, 122, 51, 0, 0, 10, 69, 28, 243, 199, 48, 80, 21, 0, 47, 0, 0, 0, 0, 12, 67, 85,
-			48, 83, 117, 111, 89, 6, 122, 89, 0, 15, 69, 81, 33, 68, 40, 80, 47, 51, 6, 110, 72, 57, 112, 0, 7, 196, 52, 81, 1, 56,
-			8, 0, 0, 9, 134, 108, 195, 164, 110, 103, 115, 28, 0, 0, 0, 11, 67, 60, 50, 0, 6, 123, 49, 0, 72, 8, 0, 0, 0, 0,
-			0, 0, 0, 0, 12, 68, 4, 225, 197, 76, 35, 50, 57, 110, 89, 0, 0, 0, 19, 4, 95, 99, 105, 114, 89, 6, 109, 51, 49, 120,
-			65, 83, 55, 111, 49, 89, 0, 0, 6, 195, 161, 97, 82, 28, 10, 67, 52, 147, 128, 65, 109, 50, 0, 76, 0, 0, 0, 16, 4, 95,
-			48, 77, 50, 65, 109, 55, 57, 6, 126, 50, 111, 51, 0, 0, 9, 67, 61, 53, 0, 125, 89, 47, 0, 10, 67, 52, 19, 128, 65, 35,
-			50, 0, 72, 16, 4, 95, 48, 77, 51, 71, 109, 55, 57, 6, 126, 50, 111, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 47, 6, 117,
-			89, 111, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 195, 164, 110, 111, 50, 0, 72, 0, 0, 16, 4, 95, 108, 105, 103, 55,
-			6, 108, 81, 35, 47, 4, 117, 51, 0, 0, 0, 0, 14, 68, 57, 225, 207, 80, 50, 4, 124, 81, 123, 47, 0, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 12, 68, 4, 225, 197, 72, 35, 50, 57, 110, 51, 0, 0, 10, 67, 8, 244, 148, 71, 123, 51, 47, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 85, 49, 82, 21, 0, 47, 7, 66, 60, 96, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 67, 52, 145, 192, 65, 111, 57, 0, 0, 0, 0, 0, 8, 67, 60, 225, 64, 21, 0, 47, 0, 14, 4, 95, 99, 101, 100,
-			89, 6, 110, 72, 109, 55, 57, 0, 0, 0, 5, 194, 56, 144, 72, 0, 9, 67, 72, 17, 0, 51, 122, 72, 0, 0, 10, 67, 8, 245,
-			20, 71, 6, 125, 47, 0, 6, 195, 16, 149, 20, 76, 0, 11, 70, 16, 84, 203, 80, 244, 0, 21, 0, 47, 10, 3, 195, 164, 114, 6,
-			113, 51, 0, 72, 0, 0, 0, 0, 8, 67, 81, 32, 89, 21, 0, 47, 0, 0, 0, 13, 4, 95, 99, 97, 112, 89, 47, 6, 126, 51,
-			47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 72, 80, 68, 21, 0, 47, 0, 0, 9, 68, 4, 67, 194, 20, 21, 0, 47, 0,
-			0, 0, 0, 0, 8, 67, 72, 245, 192, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 95, 195, 169,
-			43, 0, 0, 20, 8, 109, 111, 110, 101, 116, 195, 164, 114, 65, 4, 123, 50, 111, 47, 6, 113, 51, 0, 0, 0, 10, 69, 76, 52, 133,
-			20, 224, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 36, 229, 5, 72, 225, 84, 21, 0, 47, 0, 0, 0, 6, 195, 21,
-			32, 64, 76, 0, 11, 70, 52, 246, 137, 48, 192, 64, 21, 0, 47, 0, 0, 0, 8, 67, 80, 130, 83, 21, 0, 47, 0, 0, 0, 0,
-			0, 0, 0, 7, 66, 80, 16, 47, 122, 0, 0, 0, 0, 10, 67, 36, 227, 205, 109, 50, 123, 65, 0, 0, 0, 7, 195, 52, 245, 0,
-			72, 28, 0, 0, 0, 11, 70, 12, 243, 21, 52, 228, 192, 21, 0, 47, 10, 67, 20, 113, 78, 110, 81, 111, 50, 0, 0, 0, 0, 0,
-			0, 11, 67, 36, 64, 71, 109, 72, 4, 122, 81, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 103, 114, 118, 81, 51, 6, 122, 84,
-			0, 0, 0, 0, 0, 0, 0, 0, 13, 67, 57, 97, 1, 111, 50, 84, 110, 72, 110, 122, 0, 0, 0, 0, 0, 0, 7, 66, 56, 240,
-			21, 0, 47, 6, 194, 60, 208, 72, 8, 6, 194, 60, 208, 72, 28, 0, 0, 11, 67, 76, 86, 0, 89, 6, 111, 49, 89, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 32, 80, 68, 36, 225, 192, 21, 0, 47, 18, 8, 100,
-			195, 164, 114, 102, 195, 182, 114, 72, 6, 111, 51, 83, 118, 51, 0, 0, 9, 67, 60, 229, 0, 125, 50, 47, 0, 0, 0, 21, 72, 80,
-			244, 147, 16, 17, 197, 57, 48, 47, 6, 126, 91, 72, 122, 81, 111, 50, 89, 0, 0, 0, 0, 0, 10, 67, 4, 225, 197, 35, 50, 57,
-			110, 0, 0, 7, 196, 28, 83, 143, 52, 28, 0, 0, 0, 8, 67, 64, 17, 197, 21, 0, 47, 0, 0, 10, 67, 88, 17, 0, 84, 122,
-			72, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 76, 243, 64, 72, 8, 0, 0, 0, 0, 9, 67, 16, 83, 64, 72, 111, 65,
-			0, 0, 0, 0, 0, 0, 0, 17, 7, 116, 121, 118, 195, 164, 114, 114, 47, 2, 116, 84, 6, 113, 51, 0, 0, 7, 196, 88, 147, 12,
-			20, 72, 0, 0, 0, 0, 0, 10, 69, 60, 227, 9, 56, 80, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 80, 243,
-			84, 47, 6, 125, 65, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 77, 80, 141, 20, 229, 64, 21, 0, 47, 11, 70, 64, 20,
-			211, 92, 244, 132, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 60, 97, 137, 12, 80, 21, 0, 47, 0, 0, 11,
-			67, 85, 48, 64, 117, 111, 89, 6, 122, 0, 0, 9, 68, 80, 16, 140, 20, 21, 0, 47, 14, 68, 8, 244, 132, 20, 71, 6, 126, 51,
-			72, 111, 0, 72, 0, 0, 0, 14, 69, 8, 20, 143, 12, 176, 71, 35, 51, 6, 123, 49, 0, 0, 0, 0, 0, 0, 0, 0, 9, 68,
-			48, 147, 139, 76, 21, 0, 47, 0, 9, 67, 32, 82, 128, 107, 111, 57, 0, 0, 0, 0, 0, 13, 68, 72, 17, 5, 72, 51, 122, 72,
-			2, 111, 51, 0, 0, 0, 0, 0, 9, 67, 76, 243, 128, 89, 124, 50, 0, 9, 67, 40, 19, 128, 57, 122, 50, 0, 0, 0, 0, 0,
-			10, 67, 16, 83, 128, 72, 111, 50, 0, 72, 0, 0, 0, 0, 8, 67, 28, 18, 77, 21, 0, 47, 9, 67, 64, 84, 128, 48, 113, 51,
-			0, 0, 11, 2, 95, 46, 48, 6, 120, 68, 49, 47, 0, 0, 0, 0, 10, 67, 88, 20, 128, 84, 122, 51, 0, 72, 9, 67, 24, 20,
-			128, 83, 122, 51, 0, 10, 67, 88, 20, 128, 84, 122, 51, 0, 72, 9, 2, 95, 51, 47, 51, 6, 110, 0, 0, 9, 2, 95, 50, 47,
-			84, 6, 124, 0, 0, 8, 2, 95, 49, 6, 111, 47, 0, 0, 9, 2, 95, 48, 50, 6, 123, 55, 0, 0, 8, 67, 56, 19, 69, 21,
-			0, 47, 8, 2, 95, 55, 127, 6, 117, 0, 0, 10, 2, 95, 54, 89, 6, 111, 49, 89, 0, 0, 9, 2, 95, 53, 83, 6, 111, 65,
-			0, 0, 17, 70, 65, 35, 199, 72, 19, 64, 48, 51, 125, 81, 51, 6, 35, 65, 0, 10, 2, 95, 52, 83, 6, 115, 51, 35, 0, 0,
-			0, 0, 9, 2, 95, 57, 50, 6, 108, 126, 0, 0, 9, 2, 95, 56, 6, 123, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 40, 17, 192, 57, 122, 81, 0, 72, 0, 0, 17, 70,
-			80, 244, 147, 16, 17, 211, 47, 6, 126, 91, 72, 35, 81, 89, 0, 0, 0, 0, 0, 7, 195, 88, 145, 0, 72, 28, 0, 5, 194, 88,
-			144, 72, 0, 8, 197, 32, 83, 142, 21, 48, 76, 0, 6, 195, 76, 149, 20, 76, 6, 195, 52, 149, 20, 76, 0, 0, 0, 10, 69, 80,
-			16, 140, 21, 48, 21, 0, 47, 0, 0, 0, 0, 0, 0, 10, 135, 102, 97, 115, 116, 195, 164, 110, 8, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 16, 70, 77, 84, 193, 56, 224, 64, 89, 120, 89, 6, 35, 50, 35, 0, 0, 0, 0, 10, 67, 16, 17, 211, 72, 35, 49, 89,
-			0, 12, 4, 95, 104, 97, 99, 107, 6, 122, 49, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 70, 24,
-			148, 133, 24, 246, 0, 21, 0, 47, 14, 69, 4, 225, 18, 5, 48, 35, 50, 72, 51, 35, 89, 0, 0, 0, 0, 0, 19, 71, 80, 244,
-			147, 16, 17, 197, 56, 47, 6, 126, 91, 72, 122, 81, 111, 50, 0, 0, 0, 0, 0, 0, 14, 69, 77, 64, 68, 20, 224, 89, 47, 122,
-			72, 111, 50, 0, 0, 0, 0, 9, 67, 9, 32, 64, 71, 51, 122, 0, 0, 11, 70, 29, 32, 80, 32, 144, 192, 21, 0, 47, 0, 0,
-			0, 0, 0, 0, 0, 10, 67, 4, 228, 197, 35, 50, 89, 110, 0, 0, 0, 0, 13, 4, 95, 35, 51, 50, 71, 55, 6, 35, 68, 49,
-			0, 0, 0, 0, 0, 13, 68, 16, 84, 129, 76, 72, 110, 51, 35, 89, 0, 76, 0, 0, 0, 0, 6, 195, 89, 228, 128, 76, 0, 0,
-			8, 67, 20, 66, 84, 21, 0, 47, 16, 70, 77, 64, 68, 20, 228, 192, 89, 47, 122, 72, 111, 50, 89, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 11, 70, 48, 80, 86, 36, 225, 192, 21, 0, 47, 0, 0, 0, 0, 0, 0, 15, 70, 77, 84, 193, 56, 225,
-			64, 89, 120, 89, 6, 35, 50, 0, 9, 198, 9, 37, 75, 4, 65, 64, 72, 0, 0, 0, 11, 70, 32, 80, 68, 36, 225, 211, 21, 0,
-			47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 20, 211, 212, 111, 65, 6, 126, 47, 0, 0, 0, 0, 0, 8, 67, 52,
-			18, 76, 21, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 98, 195, 164, 115, 116, 101, 71, 6, 111, 89, 47, 111, 0, 0,
-			0, 0, 16, 70, 80, 244, 147, 16, 17, 192, 47, 6, 126, 91, 72, 122, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 8, 197, 9, 37, 75, 5, 32, 72, 0, 0, 0, 10, 67, 80, 243, 64, 47, 6, 125, 65, 0, 0, 0, 0, 0, 0,
-			0, 0, 5, 194, 65, 224, 72, 0, 0, 0, 0, 14, 5, 117, 115, 97, 58, 115, 117, 111, 89, 6, 122, 89, 0, 6, 194, 17, 224, 72,
-			28, 0, 0, 0, 14, 69, 29, 34, 80, 56, 16, 81, 51, 108, 48, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 164, 0, 4, 1, 102, 102, 3, 6, 113, 0, 1, 110, 111, 105, 2, 114, 0, 1, 116, 2,
-			114, 0, 114, 108, 2, 100, 3, 6, 113, 51, 0, 4, 1, 110, 2, 116, 116, 3, 111, 0, 1, 118, 2, 120, 0, 2, 17, 67, 17, 67,
-			0, 4, 3, 113, 0, 1, 98, 2, 114, 0, 1, 102, 2, 114, 100, 0, 1, 107, 115, 2, 114, 103, 0, 1, 108, 2, 115, 110, 0, 1,
-			108, 2, 115, 116, 0, 1, 110, 2, 116, 0, 1, 114, 2, 107, 0, 1, 114, 116, 2, 100, 0, 1, 118, 2, 108, 107, 0, 1, 118, 2,
-			114, 100, 0, 2, 114, 0, 2, 114, 100, 0, 7, 6, 195, 165, 0, 1, 108, 2, 115, 115, 3, 6, 123, 0, 4, 1, 104, 2, 114, 3,
-			6, 124, 0, 1, 108, 2, 115, 0, 1, 114, 116, 2, 100, 0, 1, 118, 2, 114, 0, 4, 1, 104, 2, 108, 108, 3, 123, 0, 2, 17,
-			67, 11, 0, 2, 110, 103, 0, 4, 3, 124, 0, 1, 104, 2, 108, 0, 1, 107, 115, 2, 108, 0, 1, 109, 2, 108, 0, 1, 110, 2,
-			108, 0, 1, 114, 2, 107, 0, 2, 17, 67, 17, 67, 0, 7, 6, 195, 182, 0, 1, 102, 2, 114, 107, 3, 2, 119, 0, 4, 1, 102,
-			2, 114, 100, 3, 6, 118, 0, 1, 102, 102, 0, 1, 108, 2, 115, 110, 0, 1, 108, 2, 115, 116, 0, 2, 118, 114, 0, 4, 1, 114,
-			2, 109, 3, 6, 119, 0, 2, 17, 67, 17, 67, 0, 3, 118, 0, 7, 6, 97, 0, 4, 1, 107, 2, 116, 97, 3, 2, 35, 0, 1,
-			107, 105, 0, 1, 108, 112, 2, 110, 101, 114, 97, 0, 1, 110, 2, 116, 105, 0, 1, 112, 101, 2, 114, 0, 1, 115, 2, 116, 105, 0,
-			1, 116, 2, 116, 105, 0, 8, 2, 114, 116, 0, 110, 115, 1, 21, 2, 32, 3, 6, 35, 50, 89, 0, 4, 1, 102, 2, 114, 108, 3,
-			6, 122, 0, 1, 102, 2, 114, 116, 0, 1, 107, 105, 2, 110, 115, 0, 1, 110, 2, 108, 32, 0, 1, 116, 2, 108, 32, 0, 1, 116,
-			2, 108, 32, 0, 1, 116, 111, 116, 2, 108, 0, 4, 1, 10, 3, 35, 0, 1, 98, 0, 1, 98, 2, 107, 116, 101, 0, 1, 98, 2,
-			114, 11, 0, 1, 98, 98, 2, 114, 32, 0, 1, 100, 2, 100, 0, 1, 100, 2, 103, 11, 0, 1, 100, 2, 110, 0, 1, 100, 100, 2,
-			17, 67, 0, 1, 100, 110, 2, 114, 0, 1, 100, 112, 112, 2, 116, 0, 1, 103, 101, 2, 110, 0, 1, 103, 110, 2, 100, 0, 1, 103,
-			165, 195, 2, 110, 0, 1, 106, 2, 110, 0, 1, 107, 2, 110, 0, 1, 107, 2, 110, 105, 0, 1, 107, 2, 115, 32, 0, 1, 108, 2,
-			103, 103, 0, 1, 108, 101, 2, 100, 0, 1, 108, 103, 2, 100, 11, 0, 1, 108, 103, 2, 115, 11, 0, 1, 108, 107, 105, 2, 114, 32,
-			0, 1, 108, 108, 2, 100, 101, 0, 1, 108, 108, 101, 109, 2, 110, 0, 1, 109, 2, 106, 0, 1, 109, 2, 110, 0, 1, 109, 2, 116,
-			101, 114, 0, 1, 109, 114, 111, 102, 2, 116, 105, 0, 1, 110, 2, 100, 0, 1, 110, 110, 2, 110, 0, 1, 112, 2, 100, 32, 0, 1,
-			112, 2, 110, 101, 108, 0, 1, 114, 2, 98, 97, 0, 1, 114, 100, 2, 100, 0, 1, 114, 100, 2, 116, 0, 1, 114, 101, 2, 100, 0,
-			1, 114, 101, 2, 116, 0, 1, 114, 101, 2, 116, 0, 1, 114, 103, 2, 109, 0, 1, 114, 116, 115, 0, 1, 115, 2, 100, 0, 1, 115,
-			2, 109, 97, 17, 67, 0, 1, 115, 2, 115, 0, 1, 115, 107, 2, 109, 0, 1, 115, 115, 97, 0, 1, 115, 116, 2, 109, 0, 1, 116,
-			2, 103, 11, 0, 1, 116, 2, 108, 11, 0, 1, 116, 2, 110, 0, 1, 116, 97, 0, 1, 116, 115, 2, 116, 32, 0, 1, 118, 2, 114,
-			105, 97, 0, 1, 118, 115, 2, 114, 116, 0, 2, 17, 67, 11, 0, 2, 17, 67, 17, 67, 0, 2, 32, 0, 2, 98, 111, 0, 2, 100,
-			101, 0, 2, 114, 32, 0, 2, 114, 101, 0, 2, 114, 110, 97, 0, 2, 115, 32, 0, 2, 116, 32, 0, 2, 117, 116, 111, 0, 2, 118,
-			97, 0, 2, 120, 0, 8, 107, 2, 21, 0, 110, 97, 108, 121, 3, 35, 50, 35, 55, 115, 0, 114, 98, 101, 116, 3, 35, 51, 71, 110,
-			47, 0, 108, 107, 111, 104, 111, 108, 3, 35, 55, 49, 125, 107, 124, 55, 0, 108, 108, 118, 97, 114, 3, 35, 55, 55, 84, 122, 51, 0,
-			109, 101, 114, 105, 107, 3, 35, 65, 111, 51, 109, 49, 0, 103, 101, 114, 97, 3, 35, 81, 110, 51, 35, 0, 115, 116, 3, 35, 89, 47,
-			0, 4, 3, 122, 0, 1, 98, 2, 107, 0, 1, 98, 2, 114, 0, 1, 98, 2, 114, 32, 0, 1, 100, 2, 103, 0, 1, 102, 2, 114,
-			101, 110, 0, 1, 107, 2, 107, 0, 1, 107, 115, 2, 100, 97, 0, 1, 107, 115, 2, 100, 101, 0, 1, 107, 115, 2, 112, 0, 1, 108,
-			2, 103, 0, 1, 108, 2, 114, 115, 0, 1, 108, 98, 2, 100, 0, 1, 108, 103, 2, 100, 0, 1, 108, 107, 2, 114, 0, 1, 108, 112,
-			109, 101, 120, 2, 114, 0, 1, 109, 111, 2, 116, 0, 1, 109, 115, 2, 114, 116, 0, 1, 114, 2, 116, 0, 1, 114, 100, 101, 2, 103,
-			0, 1, 114, 100, 101, 2, 114, 0, 1, 114, 100, 105, 0, 1, 115, 2, 107, 101, 0, 1, 115, 2, 107, 110, 0, 1, 115, 2, 107, 115,
-			0, 1, 116, 2, 103, 0, 1, 116, 2, 108, 17, 67, 0, 1, 116, 2, 108, 115, 0, 1, 116, 101, 114, 2, 103, 0, 1, 116, 108, 2,
-			116, 0, 1, 116, 108, 101, 100, 0, 1, 116, 110, 101, 2, 114, 0, 1, 116, 115, 2, 114, 116, 0, 1, 116, 116, 2, 103, 97, 0, 1,
-			116, 116, 2, 103, 101, 116, 0, 1, 116, 116, 2, 103, 105, 116, 0, 1, 118, 2, 108, 100, 0, 1, 118, 2, 108, 102, 0, 1, 118, 2,
-			114, 100, 0, 1, 118, 115, 2, 114, 0, 1, 118, 115, 110, 97, 2, 114, 0, 2, 114, 110, 0, 2, 114, 116, 32, 0, 2, 118, 98, 0,
-			2, 118, 100, 0, 2, 118, 103, 0, 2, 118, 115, 0, 8, 98, 2, 107, 0, 8, 107, 115, 2, 100, 0, 8, 108, 103, 2, 115, 0, 8,
-			118, 2, 110, 108, 0, 118, 116, 97, 8, 3, 122, 84, 47, 122, 0, 118, 103, 101, 8, 3, 122, 84, 57, 6, 110, 0, 117, 8, 2, 17,
-			67, 3, 123, 0, 117, 1, 104, 99, 2, 17, 67, 17, 67, 3, 124, 0, 7, 6, 98, 0, 2, 98, 3, 0, 3, 71, 0, 101, 116, 97,
-			108, 3, 71, 2, 111, 47, 6, 122, 55, 0, 114, 101, 100, 98, 97, 110, 100, 3, 71, 51, 110, 72, 71, 35, 50, 72, 0, 101, 103, 114,
-			105, 112, 3, 71, 111, 81, 51, 6, 108, 48, 0, 101, 103, 114, 97, 118, 3, 71, 111, 81, 51, 122, 84, 0, 101, 118, 97, 107, 110, 3,
-			71, 111, 84, 122, 49, 50, 0, 101, 115, 108, 97, 103, 3, 71, 111, 89, 55, 6, 122, 81, 0, 101, 115, 108, 97, 103, 116, 97, 3, 71,
-			111, 89, 55, 6, 122, 81, 47, 122, 0, 7, 6, 99, 0, 4, 108, 105, 99, 107, 3, 21, 0, 111, 109, 112, 117, 116, 101, 114, 0, 4,
-			3, 49, 0, 107, 0, 107, 2, 17, 65, 3, 49, 12, 0, 4, 99, 3, 49, 89, 0, 99, 2, 17, 65, 0, 4, 2, 101, 3, 89, 0,
-			2, 105, 0, 2, 121, 0, 2, 195, 164, 0, 2, 195, 182, 0, 104, 3, 91, 0, 104, 2, 101, 102, 3, 127, 0, 7, 6, 100, 0, 2,
-			100, 3, 0, 4, 101, 115, 105, 103, 110, 3, 21, 0, 111, 119, 110, 108, 111, 97, 100, 0, 106, 117, 3, 57, 6, 117, 0, 106, 117, 110,
-			103, 3, 57, 6, 120, 68, 0, 3, 72, 0, 97, 116, 111, 114, 101, 114, 3, 72, 35, 47, 6, 126, 51, 111, 51, 0, 114, 111, 103, 101,
-			110, 3, 72, 51, 124, 81, 111, 50, 0, 114, 111, 103, 101, 114, 3, 72, 51, 124, 81, 111, 51, 0, 105, 115, 107, 101, 3, 72, 109, 89,
-			49, 111, 0, 117, 109, 3, 72, 120, 65, 0, 97, 116, 97, 3, 72, 122, 47, 35, 0, 97, 116, 97, 98, 97, 115, 3, 72, 122, 47, 35,
-			71, 122, 89, 0, 97, 116, 111, 114, 3, 72, 122, 47, 123, 51, 0, 97, 103, 108, 105, 103, 3, 72, 122, 81, 55, 109, 81, 0, 97, 103,
-			101, 110, 3, 72, 122, 81, 111, 50, 0, 7, 6, 101, 0, 4, 1, 10, 3, 2, 111, 0, 1, 10, 2, 32, 0, 1, 98, 2, 102, 0,
-			1, 98, 2, 103, 0, 1, 98, 2, 104, 0, 1, 98, 2, 107, 0, 1, 98, 2, 108, 0, 1, 98, 2, 114, 0, 1, 98, 2, 115, 0,
-			1, 98, 2, 116, 0, 1, 98, 2, 118, 0, 1, 100, 2, 108, 115, 101, 0, 1, 103, 2, 110, 0, 1, 112, 109, 2, 108, 0, 1, 112,
-			115, 2, 99, 0, 1, 114, 2, 103, 0, 1, 114, 2, 116, 117, 114, 0, 1, 114, 112, 2, 99, 0, 1, 114, 112, 2, 110, 0, 1, 115,
-			2, 107, 0, 1, 115, 2, 112, 0, 2, 120, 101, 109, 112, 0, 116, 1, 10, 2, 32, 14, 128, 128, 130, 3, 2, 111, 47, 0, 110, 1,
-			10, 2, 32, 3, 2, 111, 50, 0, 110, 115, 1, 10, 2, 32, 3, 2, 111, 50, 89, 0, 114, 1, 10, 2, 32, 3, 2, 111, 51, 0,
-			115, 1, 10, 2, 32, 3, 2, 111, 89, 0, 110, 115, 1, 114, 101, 3, 6, 35, 50, 89, 0, 1, 116, 115, 2, 109, 17, 67, 3, 6,
-			110, 0, 107, 111, 110, 111, 109, 3, 6, 111, 49, 126, 50, 4, 123, 12, 65, 0, 110, 115, 1, 114, 101, 118, 182, 195, 3, 6, 111, 50,
-			89, 0, 108, 101, 107, 3, 6, 111, 55, 111, 49, 0, 109, 98, 101, 114, 3, 6, 111, 65, 71, 111, 51, 0, 115, 112, 101, 97, 107, 3,
-			21, 0, 4, 3, 110, 0, 1, 99, 2, 114, 0, 1, 100, 2, 108, 110, 0, 1, 100, 2, 108, 115, 0, 1, 100, 2, 108, 116, 0, 1,
-			100, 2, 108, 118, 0, 1, 100, 2, 114, 97, 0, 1, 102, 2, 114, 97, 0, 1, 103, 2, 110, 111, 109, 0, 1, 103, 2, 114, 97, 0,
-			1, 104, 2, 116, 101, 110, 0, 1, 104, 103, 2, 116, 0, 1, 104, 121, 110, 2, 116, 0, 1, 108, 2, 100, 97, 0, 1, 108, 2, 100,
-			110, 0, 1, 108, 2, 114, 97, 0, 1, 108, 2, 116, 97, 0, 1, 109, 2, 100, 100, 101, 0, 1, 109, 2, 100, 101, 108, 0, 1, 109,
-			2, 114, 97, 0, 1, 110, 2, 100, 115, 0, 1, 110, 2, 114, 97, 0, 1, 114, 2, 100, 110, 0, 1, 114, 2, 114, 97, 0, 1, 114,
-			2, 116, 97, 0, 1, 114, 98, 2, 118, 0, 1, 114, 116, 120, 2, 109, 0, 1, 115, 2, 114, 97, 0, 1, 116, 2, 114, 97, 0, 1,
-			116, 105, 2, 116, 0, 1, 116, 105, 2, 116, 32, 0, 1, 116, 111, 105, 108, 2, 107, 0, 1, 116, 115, 2, 107, 0, 1, 116, 115, 121,
-			2, 109, 0, 1, 118, 2, 107, 0, 1, 118, 2, 116, 97, 0, 2, 110, 98, 97, 114, 0, 2, 110, 108, 105, 0, 2, 114, 105, 110, 0,
-			2, 114, 115, 97, 116, 116, 0, 2, 114, 115, 195, 164, 0, 8, 104, 2, 116, 97, 0, 116, 1, 104, 2, 32, 3, 110, 47, 0, 110, 104,
-			101, 116, 3, 110, 50, 107, 110, 47, 0, 4, 1, 97, 107, 2, 108, 3, 111, 0, 1, 98, 2, 108, 32, 0, 1, 100, 2, 98, 97, 116,
-			0, 1, 100, 2, 99, 0, 1, 100, 101, 109, 2, 108, 0, 1, 104, 2, 109, 0, 1, 109, 2, 110, 121, 0, 1, 109, 2, 116, 111, 100,
-			0, 1, 112, 2, 100, 97, 0, 1, 112, 2, 114, 105, 0, 1, 114, 2, 99, 101, 0, 1, 114, 2, 100, 97, 107, 0, 1, 114, 2, 115,
-			117, 108, 0, 1, 114, 2, 115, 117, 114, 0, 1, 116, 2, 108, 101, 102, 0, 1, 118, 115, 2, 114, 0, 2, 17, 67, 17, 67, 0, 2,
-			103, 101, 110, 116, 0, 2, 106, 0, 2, 116, 97, 0, 2, 118, 101, 0, 2, 120, 0, 8, 2, 116, 105, 107, 0, 115, 101, 110, 116, 3,
-			111, 89, 6, 111, 50, 47, 0, 1, 104, 99, 2, 102, 3, 113, 0, 7, 6, 102, 0, 2, 102, 3, 0, 97, 99, 101, 3, 21, 0, 3,
-			83, 0, 97, 109, 105, 108, 106, 3, 83, 35, 65, 6, 109, 55, 57, 0, 111, 114, 109, 97, 100, 3, 83, 123, 51, 65, 35, 72, 0, 7,
-			6, 103, 0, 114, 111, 117, 112, 3, 21, 0, 2, 116, 3, 49, 0, 4, 1, 114, 111, 2, 97, 114, 3, 57, 0, 1, 114, 111, 2, 101,
-			110, 0, 2, 101, 0, 2, 105, 0, 2, 121, 0, 2, 195, 164, 0, 2, 195, 182, 0, 106, 0, 106, 111, 114, 3, 57, 126, 51, 0, 2,
-			110, 3, 68, 0, 4, 3, 81, 0, 1, 97, 2, 101, 0, 1, 97, 2, 105, 0, 1, 97, 108, 115, 0, 1, 105, 2, 105, 0, 1, 111,
-			108, 2, 105, 0, 1, 121, 2, 97, 0, 1, 121, 2, 101, 0, 1, 121, 2, 111, 0, 1, 164, 195, 108, 2, 101, 0, 1, 164, 195, 118,
-			0, 103, 0, 97, 114, 97, 110, 116, 3, 81, 2, 35, 51, 6, 35, 50, 47, 0, 117, 105, 100, 2, 101, 3, 81, 6, 35, 57, 72, 0,
-			97, 110, 105, 3, 81, 35, 50, 6, 109, 0, 97, 114, 97, 103, 101, 3, 81, 35, 51, 6, 122, 91, 0, 108, 195, 182, 109, 3, 81, 55,
-			119, 65, 0, 97, 116, 97, 3, 81, 122, 47, 35, 0, 7, 6, 104, 0, 2, 104, 3, 0, 101, 97, 100, 105, 110, 103, 3, 21, 0, 106,
-			3, 57, 0, 106, 195, 164, 108, 112, 3, 57, 111, 55, 48, 0, 3, 107, 0, 195, 182, 103, 3, 107, 118, 81, 0, 111, 110, 8, 2, 14,
-			128, 132, 131, 3, 107, 124, 68, 0, 7, 6, 105, 0, 4, 1, 108, 17, 67, 2, 107, 97, 17, 67, 3, 2, 109, 0, 2, 110, 102, 0,
-			2, 110, 115, 116, 114, 0, 4, 2, 110, 32, 3, 6, 108, 0, 2, 110, 101, 110, 0, 2, 110, 101, 114, 0, 4, 109, 97, 103, 3, 21,
-			0, 116, 101, 109, 0, 4, 3, 108, 0, 1, 99, 2, 115, 32, 0, 1, 108, 2, 107, 110, 97, 0, 1, 114, 100, 2, 118, 0, 1, 114,
-			107, 2, 115, 0, 1, 114, 107, 2, 115, 116, 0, 1, 114, 107, 115, 2, 118, 0, 1, 116, 2, 100, 0, 1, 116, 105, 114, 107, 2, 107,
-			32, 0, 1, 118, 2, 115, 110, 0, 8, 108, 102, 2, 107, 0, 4, 1, 99, 3, 109, 0, 1, 100, 2, 114, 0, 1, 107, 2, 103, 0,
-			1, 108, 2, 99, 0, 1, 114, 107, 2, 116, 101, 0, 1, 114, 107, 2, 116, 105, 0, 1, 115, 2, 116, 0, 1, 116, 2, 115, 0, 2,
-			17, 67, 17, 67, 0, 2, 103, 32, 0, 116, 117, 116, 2, 32, 3, 109, 47, 117, 47, 0, 107, 111, 110, 3, 109, 49, 6, 124, 50, 0,
-			98, 105, 108, 105, 3, 109, 71, 109, 55, 109, 0, 7, 6, 106, 0, 3, 57, 0, 97, 118, 97, 3, 57, 122, 84, 35, 0, 2, 117, 115,
-			116, 101, 114, 3, 127, 0, 111, 117, 2, 114, 3, 127, 125, 0, 7, 6, 107, 0, 4, 3, 49, 0, 8, 2, 105, 17, 67, 11, 0, 97,
-			116, 101, 103, 111, 114, 105, 3, 49, 35, 47, 111, 81, 4, 126, 51, 108, 0, 97, 108, 101, 110, 100, 3, 49, 35, 55, 6, 111, 50, 72,
-			0, 97, 114, 116, 97, 3, 49, 122, 51, 47, 35, 0, 111, 110, 116, 111, 114, 3, 49, 123, 50, 47, 6, 126, 51, 0, 111, 109, 109, 117,
-			110, 3, 49, 123, 65, 6, 117, 50, 0, 111, 109, 109, 117, 110, 105, 107, 97, 3, 49, 123, 65, 120, 50, 109, 49, 35, 0, 4, 2, 195,
-			164, 110, 100, 3, 97, 0, 2, 195, 164, 110, 110, 0, 2, 195, 164, 110, 116, 0, 2, 195, 182, 112, 0, 8, 2, 101, 0, 8, 2, 105,
-			0, 8, 2, 121, 0, 8, 2, 195, 164, 0, 8, 2, 195, 182, 0, 106, 0, 195, 164, 110, 115, 108, 3, 97, 111, 50, 89, 55, 0, 7,
-			6, 108, 0, 2, 108, 3, 0, 3, 55, 0, 195, 165, 103, 3, 55, 6, 124, 81, 0, 103, 2, 32, 3, 55, 57, 0, 105, 103, 101, 110,
-			3, 55, 109, 81, 111, 50, 0, 97, 103, 101, 114, 3, 55, 122, 81, 111, 51, 0, 106, 8, 3, 57, 0, 106, 117, 3, 57, 6, 117, 0,
-			7, 6, 109, 0, 2, 109, 3, 0, 101, 110, 117, 3, 21, 0, 3, 65, 0, 97, 114, 105, 101, 3, 65, 2, 35, 51, 6, 108, 0, 97,
-			114, 105, 97, 3, 65, 2, 35, 51, 6, 108, 35, 0, 101, 100, 108, 3, 65, 6, 110, 72, 55, 0, 195, 164, 110, 110, 105, 115, 107, 3,
-			65, 6, 111, 50, 109, 127, 4, 0, 111, 116, 111, 114, 101, 114, 3, 65, 6, 123, 47, 126, 51, 111, 51, 0, 111, 116, 111, 114, 3, 65,
-			6, 126, 47, 123, 51, 0, 97, 120, 105, 109, 101, 114, 97, 3, 65, 35, 49, 89, 108, 65, 6, 110, 51, 35, 0, 97, 103, 97, 3, 65,
-			35, 81, 35, 0, 97, 115, 107, 101, 114, 97, 3, 65, 35, 89, 49, 110, 51, 35, 0, 97, 115, 107, 101, 110, 3, 65, 35, 89, 49, 111,
-			50, 0, 97, 115, 107, 101, 114, 3, 65, 35, 89, 49, 111, 51, 0, 106, 117, 107, 3, 65, 57, 117, 49, 0, 105, 110, 105, 109, 101, 114,
-			97, 3, 65, 109, 50, 108, 65, 6, 110, 51, 35, 0, 101, 100, 98, 111, 114, 103, 3, 65, 110, 72, 71, 123, 51, 57, 0, 101, 100, 118,
-			101, 116, 3, 65, 110, 72, 84, 6, 110, 47, 0, 101, 110, 121, 3, 65, 111, 50, 6, 115, 0, 117, 115, 105, 107, 3, 65, 117, 89, 6,
-			108, 49, 0, 111, 98, 105, 108, 3, 65, 123, 71, 108, 55, 0, 111, 100, 101, 108, 3, 65, 123, 72, 6, 111, 55, 0, 111, 100, 101, 109,
-			3, 65, 123, 72, 110, 65, 0, 7, 6, 110, 0, 2, 110, 3, 0, 101, 116, 119, 111, 114, 107, 3, 21, 0, 3, 50, 0, 97, 118, 105,
-			103, 3, 50, 2, 35, 84, 2, 109, 81, 0, 97, 116, 117, 114, 3, 50, 6, 35, 47, 6, 117, 51, 0, 97, 108, 105, 3, 50, 35, 55,
-			109, 0, 103, 1, 117, 102, 2, 101, 114, 3, 50, 81, 0, 111, 114, 109, 97, 108, 3, 50, 123, 51, 65, 122, 55, 0, 4, 2, 107, 3,
-			68, 0, 103, 0, 7, 6, 111, 0, 4, 1, 102, 110, 105, 2, 114, 109, 97, 116, 105, 3, 2, 123, 0, 1, 107, 2, 108, 117, 0, 1,
-			110, 2, 118, 101, 108, 108, 0, 1, 112, 2, 108, 105, 115, 0, 1, 114, 112, 2, 98, 0, 1, 114, 112, 2, 99, 101, 110, 116, 0, 1,
-			114, 112, 2, 100, 0, 4, 1, 108, 2, 107, 3, 2, 125, 0, 1, 114, 112, 2, 99, 0, 1, 115, 2, 99, 105, 0, 4, 1, 98, 2,
-			120, 3, 6, 123, 0, 1, 102, 2, 114, 109, 0, 1, 107, 2, 112, 105, 0, 1, 108, 2, 103, 103, 0, 1, 110, 2, 114, 109, 0, 1,
-			115, 2, 114, 0, 99, 104, 3, 6, 123, 49, 0, 4, 1, 102, 2, 110, 3, 6, 124, 0, 1, 108, 2, 103, 0, 1, 108, 2, 118, 0,
-			2, 110, 105, 0, 4, 1, 107, 2, 107, 3, 6, 126, 0, 1, 108, 98, 2, 100, 0, 1, 109, 2, 116, 0, 4, 1, 17, 67, 2, 114,
-			115, 3, 123, 0, 1, 98, 2, 114, 116, 0, 1, 100, 2, 107, 0, 1, 100, 2, 110, 0, 1, 103, 2, 110, 0, 1, 103, 110, 2, 110,
-			0, 1, 107, 2, 110, 115, 0, 1, 107, 2, 114, 116, 0, 1, 107, 2, 114, 118, 0, 1, 108, 2, 110, 0, 1, 108, 108, 2, 110, 0,
-			1, 110, 2, 114, 32, 0, 1, 110, 110, 2, 110, 115, 0, 1, 112, 2, 112, 117, 0, 1, 112, 112, 2, 114, 116, 0, 1, 112, 115, 2,
-			114, 116, 0, 1, 114, 116, 114, 2, 110, 0, 1, 115, 2, 114, 32, 0, 1, 115, 115, 2, 110, 0, 1, 116, 2, 114, 32, 0, 1, 116,
-			115, 2, 114, 109, 0, 2, 17, 67, 17, 67, 0, 2, 98, 98, 0, 2, 99, 107, 0, 2, 100, 100, 0, 2, 102, 102, 0, 2, 108, 108,
-			0, 2, 109, 32, 0, 2, 109, 109, 0, 2, 112, 112, 0, 2, 114, 103, 0, 2, 114, 107, 0, 2, 114, 114, 0, 2, 115, 115, 0, 2,
-			116, 116, 0, 8, 2, 106, 0, 112, 101, 114, 97, 116, 3, 123, 48, 111, 51, 35, 47, 0, 106, 1, 114, 112, 3, 123, 127, 6, 0, 4,
-			1, 107, 2, 100, 3, 124, 0, 1, 107, 108, 2, 114, 0, 1, 112, 112, 117, 2, 114, 116, 0, 2, 114, 100, 101, 0, 4, 1, 103, 2,
-			114, 3, 125, 0, 2, 17, 67, 11, 0, 2, 110, 115, 0, 4, 3, 126, 0, 1, 98, 2, 107, 0, 1, 98, 2, 115, 116, 0, 1, 102,
-			2, 116, 98, 0, 1, 103, 2, 100, 0, 1, 114, 107, 2, 103, 0, 1, 114, 107, 2, 107, 0, 1, 114, 107, 2, 110, 0, 1, 114, 112,
-			2, 118, 0, 1, 115, 114, 2, 114, 100, 0, 2, 114, 17, 67, 0, 115, 112, 97, 114, 97, 116, 3, 126, 89, 48, 122, 51, 35, 47, 0,
-			7, 6, 112, 0, 2, 112, 3, 0, 3, 48, 0, 97, 107, 101, 116, 3, 48, 35, 49, 6, 110, 47, 0, 97, 114, 101, 110, 116, 101, 115,
-			3, 48, 35, 51, 13, 50, 47, 4, 110, 89, 0, 114, 105, 118, 97, 116, 3, 48, 51, 109, 84, 122, 47, 0, 105, 111, 110, 3, 48, 109,
-			38, 6, 126, 50, 0, 111, 116, 97, 116, 105, 115, 3, 48, 123, 47, 6, 122, 47, 109, 89, 0, 195, 165, 115, 116, 195, 165, 3, 48, 124,
-			89, 47, 124, 0, 7, 6, 113, 0, 2, 113, 3, 0, 3, 49, 0, 117, 3, 49, 58, 0, 7, 6, 114, 0, 4, 1, 114, 3, 0, 2,
-			116, 3, 0, 3, 51, 0, 101, 100, 105, 103, 101, 114, 3, 51, 2, 111, 72, 109, 127, 6, 110, 51, 0, 101, 115, 111, 114, 3, 51, 6,
-			110, 89, 123, 51, 0, 97, 100, 101, 114, 97, 3, 51, 35, 72, 6, 110, 51, 35, 0, 97, 102, 105, 107, 3, 51, 35, 83, 6, 108, 49,
-			0, 103, 2, 32, 3, 51, 57, 0, 105, 115, 107, 3, 51, 109, 89, 49, 0, 101, 103, 101, 108, 3, 51, 110, 81, 111, 55, 0, 101, 107,
-			111, 114, 100, 3, 51, 111, 49, 6, 124, 51, 72, 0, 117, 98, 114, 105, 107, 3, 51, 120, 71, 51, 6, 108, 49, 0, 115, 107, 2, 105,
-			3, 51, 127, 0, 115, 105, 2, 111, 3, 51, 127, 6, 0, 4, 115, 3, 93, 0, 115, 115, 0, 115, 107, 3, 93, 49, 0, 7, 6, 115,
-			0, 4, 101, 108, 101, 99, 116, 3, 21, 0, 119, 101, 100, 101, 110, 0, 4, 3, 89, 0, 1, 105, 102, 2, 107, 0, 1, 117, 102, 2,
-			107, 0, 2, 107, 105, 103, 0, 115, 0, 195, 164, 107, 101, 114, 104, 101, 116, 3, 89, 6, 113, 49, 13, 51, 107, 4, 110, 47, 0, 116,
-			195, 165, 116, 116, 3, 89, 47, 123, 47, 0, 112, 101, 108, 3, 89, 48, 110, 55, 0, 112, 101, 103, 108, 97, 3, 89, 48, 110, 81, 55,
-			35, 0, 112, 101, 103, 101, 108, 3, 89, 48, 110, 81, 111, 55, 0, 112, 97, 114, 97, 3, 89, 48, 122, 51, 35, 0, 107, 121, 112, 101,
-			3, 89, 49, 6, 35, 57, 48, 0, 107, 111, 108, 111, 114, 3, 89, 49, 126, 55, 123, 51, 0, 110, 101, 103, 108, 97, 3, 89, 50, 110,
-			81, 55, 35, 0, 108, 111, 103, 3, 89, 55, 6, 126, 81, 0, 106, 97, 99, 107, 3, 89, 57, 35, 49, 0, 118, 101, 114, 105, 103, 101,
-			3, 89, 84, 111, 51, 57, 111, 0, 118, 97, 114, 97, 3, 89, 84, 122, 51, 35, 0, 105, 111, 110, 105, 115, 116, 8, 3, 89, 108, 124,
-			50, 6, 109, 89, 47, 0, 101, 103, 108, 97, 3, 89, 110, 81, 55, 35, 0, 101, 103, 101, 108, 3, 89, 110, 81, 111, 55, 0, 195, 164,
-			103, 3, 89, 111, 57, 0, 101, 109, 101, 115, 116, 3, 89, 111, 65, 6, 111, 89, 47, 0, 101, 114, 118, 105, 99, 101, 3, 89, 118, 51,
-			84, 108, 89, 0, 99, 104, 3, 91, 0, 107, 106, 3, 97, 0, 4, 104, 8, 3, 127, 0, 106, 0, 107, 2, 101, 0, 107, 2, 105, 0,
-			107, 2, 121, 0, 107, 2, 195, 164, 0, 107, 2, 195, 182, 0, 116, 106, 0, 107, 195, 164, 114, 109, 3, 127, 6, 111, 51, 65, 0, 4,
-			105, 111, 2, 110, 3, 127, 6, 126, 0, 115, 105, 111, 2, 110, 0, 7, 6, 116, 0, 97, 115, 107, 3, 21, 0, 4, 3, 47, 0, 116,
-			0, 97, 108, 115, 121, 110, 116, 101, 115, 3, 47, 6, 122, 55, 89, 116, 50, 47, 4, 110, 89, 0, 97, 103, 105, 116, 3, 47, 6, 122,
-			81, 109, 47, 0, 116, 2, 17, 65, 3, 47, 12, 0, 97, 110, 103, 101, 110, 116, 3, 47, 35, 50, 57, 111, 50, 47, 0, 97, 98, 101,
-			108, 108, 3, 47, 35, 71, 6, 111, 55, 0, 101, 1, 17, 67, 10, 2, 32, 14, 128, 128, 130, 3, 47, 111, 0, 101, 107, 110, 105, 107,
-			3, 47, 111, 49, 50, 6, 108, 49, 0, 106, 3, 97, 0, 105, 2, 111, 110, 3, 127, 6, 0, 7, 6, 117, 0, 4, 1, 110, 105, 108,
-			2, 120, 3, 2, 120, 0, 2, 107, 116, 105, 0, 2, 110, 107, 17, 67, 0, 116, 109, 195, 164, 114, 107, 3, 6, 117, 47, 65, 13, 51,
-			49, 0, 112, 108, 111, 97, 100, 3, 21, 0, 4, 3, 117, 0, 1, 106, 2, 108, 0, 1, 106, 2, 110, 105, 0, 1, 106, 115, 2, 107,
-			0, 2, 116, 98, 0, 2, 116, 102, 0, 2, 116, 103, 0, 2, 116, 108, 0, 2, 116, 110, 0, 2, 116, 114, 0, 2, 116, 114, 0, 2,
-			116, 115, 0, 2, 116, 118, 0, 4, 1, 98, 2, 116, 105, 107, 3, 120, 0, 1, 116, 97, 100, 2, 109, 0, 1, 118, 2, 120, 0, 2,
-			17, 67, 17, 67, 0, 2, 110, 0, 2, 110, 103, 0, 1, 114, 2, 109, 32, 3, 120, 12, 0, 112, 112, 103, 101, 3, 120, 48, 57, 110,
-			0, 7, 6, 118, 0, 2, 118, 3, 0, 3, 84, 0, 97, 114, 97, 110, 100, 114, 97, 3, 84, 35, 51, 35, 50, 72, 51, 35, 0, 97,
-			108, 105, 3, 84, 35, 55, 109, 0, 101, 114, 107, 3, 84, 111, 51, 49, 0, 101, 114, 107, 116, 121, 103, 3, 84, 111, 51, 49, 47, 115,
-			81, 0, 97, 114, 97, 110, 3, 84, 122, 51, 35, 50, 0, 97, 114, 110, 3, 84, 122, 51, 50, 0, 7, 6, 119, 0, 4, 105, 110, 100,
-			111, 119, 3, 21, 0, 105, 114, 101, 0, 105, 115, 101, 0, 3, 84, 0, 7, 6, 120, 0, 2, 120, 3, 0, 3, 49, 89, 0, 7, 6,
-			121, 0, 1, 115, 2, 115, 3, 2, 116, 0, 4, 1, 116, 2, 100, 3, 6, 115, 0, 1, 116, 2, 103, 0, 4, 3, 115, 0, 1, 115,
-			2, 110, 115, 107, 97, 0, 2, 17, 67, 17, 67, 3, 116, 0, 7, 6, 122, 0, 122, 3, 88, 0, 3, 89, 0, 7, 6, 0, 4, 42,
-			1, 42, 2, 42, 3, 0, 4, 42, 42, 3, 0, 4, 45, 1, 45, 45, 3, 0, 46, 1, 46, 3, 0, 195, 169, 3, 6, 110, 0, 226,
-			130, 172, 3, 6, 111, 84, 51, 126, 0, 46, 2, 46, 3, 9, 0, 38, 3, 9, 6, 123, 49, 0, 4, 45, 1, 32, 17, 65, 2, 32,
-			15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 42, 1, 42, 42, 2, 32, 3, 24, 0, 46, 3, 48, 6, 120, 68, 47, 0,
-			37, 3, 48, 51, 123, 89, 6, 111, 50, 47, 0, 43, 3, 48, 55, 120, 89, 0, 45, 8, 32, 2, 32, 15, 3, 65, 6, 108, 50, 120,
-			89, 0, 36, 3, 72, 6, 123, 55, 35, 51, 0, 47, 3, 89, 50, 6, 110, 72, 89, 47, 51, 111, 49, 0, 64, 3, 89, 50, 6, 122,
-			71, 111, 55, 122, 0, 42, 3, 127, 6, 113, 51, 50, 35, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts61 = FileInMemory_createWithData (9676, reinterpret_cast<const char *> (&espeakdata_dicts61_data), 
-			U"espeak-1.48.04-source/espeak-data/sv_dict", 
+		static unsigned char espeakdata_dicts60_data[9702] = {
+			0, 4, 0, 0, 211, 17, 0, 0, 10, 69, 25, 32, 77, 21, 48, 21, 0, 10, 0, 0, 11, 70, 32, 80, 68, 36, 225, 211, 21, 0,
+			10, 0, 9, 67, 52, 83, 128, 65, 111, 50, 0, 10, 67, 32, 243, 128, 107, 125, 50, 0, 72, 0, 0, 5, 65, 4, 122, 0, 0, 0,
+			0, 0, 6, 65, 8, 71, 110, 0, 0, 11, 70, 9, 35, 215, 76, 84, 128, 21, 0, 10, 0, 18, 70, 28, 83, 69, 57, 48, 77, 57,
+			111, 65, 6, 110, 50, 89, 35, 65, 0, 12, 67, 21, 64, 192, 110, 47, 110, 89, 6, 110, 0, 0, 0, 6, 65, 12, 89, 110, 0, 0,
+			0, 12, 4, 95, 8, 1, 3, 107, 6, 122, 49, 112, 0, 0, 0, 6, 65, 16, 72, 110, 0, 0, 0, 10, 67, 76, 147, 128, 89, 109,
+			50, 0, 76, 0, 6, 195, 76, 147, 129, 76, 0, 5, 65, 20, 110, 0, 0, 0, 0, 0, 6, 65, 24, 111, 83, 0, 0, 0, 0, 0,
+			6, 65, 28, 81, 110, 0, 0, 0, 11, 67, 44, 19, 128, 49, 6, 35, 50, 0, 72, 0, 0, 6, 65, 32, 107, 124, 0, 0, 0, 0,
+			0, 7, 65, 36, 108, 0, 72, 28, 5, 65, 36, 108, 0, 0, 0, 0, 0, 6, 65, 40, 57, 108, 0, 0, 0, 0, 0, 6, 65, 44,
+			49, 124, 0, 0, 0, 0, 0, 6, 65, 48, 111, 55, 0, 0, 15, 1, 49, 83, 6, 119, 93, 47, 112, 0, 82, 58, 32, 101, 32, 15,
+			1, 49, 83, 6, 119, 93, 47, 35, 0, 82, 58, 32, 97, 32, 0, 14, 1, 50, 35, 50, 72, 51, 35, 0, 82, 58, 32, 97, 32, 0,
+			15, 1, 51, 47, 51, 110, 72, 57, 112, 0, 82, 58, 32, 101, 32, 0, 15, 1, 52, 83, 57, 113, 51, 72, 112, 0, 82, 58, 32, 101,
+			32, 6, 65, 52, 111, 65, 0, 0, 14, 1, 53, 83, 111, 65, 47, 112, 0, 82, 58, 32, 101, 32, 0, 14, 1, 54, 127, 111, 47, 12,
+			112, 0, 82, 58, 32, 101, 32, 0, 14, 1, 55, 127, 120, 50, 72, 112, 0, 82, 58, 32, 101, 32, 0, 15, 69, 81, 33, 68, 40, 80,
+			47, 51, 6, 110, 72, 57, 112, 0, 16, 1, 56, 123, 47, 12, 123, 50, 72, 112, 0, 82, 58, 32, 101, 32, 6, 65, 56, 111, 50, 0,
+			0, 15, 1, 57, 50, 108, 123, 50, 72, 112, 0, 82, 58, 32, 101, 32, 0, 0, 0, 0, 0, 0, 0, 6, 65, 64, 48, 110, 0, 0,
+			11, 70, 64, 20, 211, 92, 244, 132, 21, 0, 10, 0, 9, 67, 76, 145, 192, 89, 111, 57, 0, 0, 0, 6, 65, 68, 49, 117, 0, 0,
+			8, 67, 80, 130, 83, 21, 0, 10, 0, 0, 0, 6, 65, 72, 111, 51, 0, 0, 11, 70, 52, 246, 137, 48, 192, 64, 21, 0, 10, 0,
+			0, 0, 6, 65, 76, 111, 89, 0, 0, 0, 10, 67, 48, 241, 192, 55, 6, 126, 81, 0, 0, 0, 6, 65, 80, 47, 110, 0, 0, 0,
+			0, 0, 0, 0, 0, 9, 68, 80, 16, 140, 20, 21, 0, 10, 9, 68, 48, 147, 139, 76, 21, 0, 10, 0, 14, 69, 8, 20, 143, 12,
+			176, 71, 35, 51, 6, 123, 49, 0, 6, 65, 88, 84, 110, 0, 0, 0, 0, 0, 12, 65, 92, 72, 6, 120, 71, 13, 55, 84, 110, 0,
+			0, 0, 0, 0, 7, 65, 96, 111, 49, 89, 0, 0, 14, 4, 95, 49, 77, 50, 65, 109, 55, 57, 6, 126, 50, 0, 0, 14, 4, 95,
+			49, 77, 51, 71, 109, 55, 57, 6, 126, 50, 0, 0, 21, 72, 80, 244, 147, 16, 17, 197, 57, 48, 47, 6, 126, 91, 72, 122, 81, 111,
+			50, 89, 0, 0, 5, 65, 100, 115, 0, 0, 16, 70, 77, 84, 193, 56, 224, 64, 89, 120, 89, 6, 35, 50, 35, 0, 0, 0, 0, 9,
+			65, 104, 89, 6, 113, 47, 35, 0, 0, 0, 11, 67, 20, 211, 212, 111, 65, 6, 126, 47, 0, 0, 0, 0, 15, 70, 77, 84, 193, 56,
+			225, 64, 89, 120, 89, 6, 35, 50, 0, 9, 198, 9, 37, 75, 4, 65, 64, 72, 0, 7, 195, 5, 69, 0, 72, 8, 0, 0, 0, 16,
+			70, 80, 244, 147, 16, 17, 192, 47, 6, 126, 91, 72, 122, 81, 0, 11, 66, 12, 16, 89, 6, 109, 51, 49, 35, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 16, 6, 14, 195, 165, 7, 18, 1, 50, 6, 124, 81, 51, 35, 0, 72, 0, 9, 68, 25, 32, 77, 20, 21, 0,
+			10, 0, 14, 69, 8, 245, 20, 20, 224, 71, 6, 123, 47, 111, 50, 0, 0, 0, 20, 71, 28, 83, 69, 57, 48, 77, 80, 57, 111, 65,
+			6, 110, 50, 89, 35, 65, 47, 0, 0, 0, 0, 11, 67, 80, 241, 211, 47, 6, 126, 81, 89, 0, 0, 0, 0, 0, 0, 0, 12, 68,
+			17, 81, 197, 72, 72, 117, 81, 111, 51, 0, 0, 0, 8, 66, 5, 96, 122, 84, 0, 72, 5, 194, 5, 96, 72, 0, 0, 0, 0, 0,
+			0, 11, 67, 32, 17, 5, 107, 35, 72, 111, 0, 72, 0, 0, 0, 0, 7, 196, 84, 225, 5, 72, 28, 0, 0, 0, 9, 67, 8, 85,
+			0, 71, 110, 47, 0, 7, 195, 80, 147, 12, 72, 28, 0, 12, 68, 4, 225, 1, 76, 35, 50, 72, 35, 89, 0, 0, 0, 0, 10, 67,
+			29, 33, 80, 81, 51, 110, 48, 0, 0, 0, 10, 69, 9, 85, 20, 60, 224, 21, 0, 10, 0, 0, 0, 9, 67, 4, 227, 133, 35, 50,
+			50, 0, 0, 0, 0, 0, 12, 68, 77, 67, 210, 80, 89, 47, 126, 51, 47, 0, 12, 68, 76, 17, 5, 76, 89, 122, 72, 111, 89, 0,
+			0, 17, 70, 80, 244, 147, 16, 17, 211, 47, 6, 126, 91, 72, 35, 81, 89, 0, 0, 0, 0, 14, 5, 21, 19, 1, 58, 19, 117, 111,
+			89, 6, 122, 89, 0, 13, 68, 72, 17, 5, 56, 51, 122, 72, 2, 111, 50, 0, 0, 0, 0, 0, 0, 10, 69, 72, 80, 68, 21, 32,
+			21, 0, 10, 0, 0, 0, 12, 68, 32, 243, 143, 52, 107, 123, 50, 123, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 52, 81,
+			1, 56, 8, 0, 0, 0, 0, 0, 0, 0, 6, 195, 16, 149, 20, 76, 0, 0, 0, 0, 8, 67, 72, 80, 68, 21, 0, 10, 10, 67,
+			76, 176, 64, 89, 49, 122, 0, 72, 10, 67, 76, 176, 64, 89, 49, 122, 0, 72, 0, 0, 0, 0, 0, 10, 67, 36, 227, 205, 109, 50,
+			123, 65, 0, 0, 10, 67, 20, 113, 78, 110, 81, 111, 50, 0, 0, 5, 194, 21, 32, 76, 0, 0, 0, 0, 0, 10, 67, 21, 37, 0,
+			110, 51, 47, 0, 76, 0, 10, 67, 4, 225, 197, 35, 50, 57, 110, 0, 7, 196, 28, 83, 143, 52, 28, 0, 0, 5, 194, 16, 80, 72,
+			0, 0, 7, 196, 88, 147, 12, 20, 72, 0, 0, 0, 10, 67, 16, 85, 0, 72, 110, 47, 0, 72, 0, 13, 68, 72, 17, 5, 72, 51,
+			122, 72, 2, 111, 51, 0, 13, 4, 95, 4, 16, 20, 48, 6, 120, 68, 49, 47, 0, 0, 0, 5, 194, 17, 80, 72, 0, 9, 67, 88,
+			83, 64, 84, 111, 65, 0, 9, 67, 24, 83, 64, 83, 111, 65, 0, 0, 0, 0, 17, 70, 65, 35, 199, 72, 19, 64, 48, 51, 125, 81,
+			51, 6, 35, 65, 0, 0, 8, 133, 195, 182, 22, 5, 18, 28, 0, 0, 0, 0, 16, 7, 6, 18, 1, 13, 195, 165, 20, 83, 51, 35,
+			65, 123, 47, 0, 0, 13, 4, 95, 20, 12, 4, 47, 6, 109, 55, 72, 112, 0, 9, 3, 95, 35, 57, 47, 35, 71, 0, 0, 0, 0,
+			0, 10, 67, 4, 228, 197, 35, 50, 89, 110, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 21, 69, 0, 6, 111, 47, 0, 6, 195, 21,
+			69, 0, 72, 0, 0, 8, 197, 9, 37, 75, 5, 32, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 10, 67, 61, 32, 193, 123, 51, 49, 35, 0, 0, 0, 8, 67, 48, 147, 139, 21, 0, 10, 0, 0, 0, 0, 7, 196, 36, 227, 129,
+			56, 28, 0, 0, 0, 0, 12, 68, 29, 33, 80, 76, 81, 51, 110, 48, 89, 0, 0, 0, 0, 0, 0, 0, 7, 66, 32, 16, 107, 122,
+			0, 0, 0, 0, 0, 0, 0, 11, 70, 12, 129, 67, 44, 81, 0, 21, 0, 10, 0, 14, 69, 25, 32, 77, 52, 80, 83, 51, 6, 35,
+			65, 111, 0, 0, 10, 67, 20, 115, 129, 110, 81, 50, 35, 0, 6, 195, 16, 147, 129, 76, 0, 10, 67, 16, 147, 128, 72, 109, 50, 0,
+			76, 10, 67, 32, 19, 128, 107, 35, 50, 0, 72, 0, 0, 0, 0, 9, 67, 16, 19, 128, 72, 122, 50, 0, 0, 0, 0, 0, 9, 67,
+			64, 20, 128, 48, 122, 51, 0, 10, 67, 32, 20, 128, 107, 122, 51, 0, 72, 6, 195, 32, 20, 128, 72, 0, 8, 196, 20, 195, 5, 72,
+			72, 8, 0, 11, 70, 76, 241, 148, 92, 20, 133, 21, 0, 10, 10, 69, 12, 19, 131, 20, 192, 21, 0, 10, 0, 0, 9, 67, 80, 20,
+			128, 47, 122, 51, 0, 0, 0, 0, 0, 0, 6, 195, 32, 19, 147, 76, 0, 0, 0, 0, 0, 16, 69, 8, 85, 1, 49, 64, 71, 6,
+			111, 47, 6, 122, 55, 47, 0, 0, 0, 0, 12, 68, 76, 243, 133, 56, 89, 124, 50, 111, 50, 0, 13, 68, 5, 34, 201, 88, 6, 35,
+			51, 49, 108, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, 2, 195, 164, 19, 20, 5,
+			71, 6, 111, 89, 47, 111, 0, 0, 0, 0, 0, 0, 13, 67, 57, 97, 1, 111, 50, 84, 110, 72, 110, 122, 0, 0, 9, 67, 16, 145,
+			192, 72, 111, 57, 0, 0, 0, 0, 8, 67, 64, 17, 197, 21, 0, 10, 0, 0, 0, 0, 7, 66, 40, 16, 57, 122, 0, 0, 0, 0,
+			0, 0, 0, 14, 68, 8, 244, 132, 20, 71, 6, 126, 51, 72, 111, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 16, 17, 211,
+			72, 35, 49, 89, 0, 0, 8, 197, 32, 83, 142, 21, 48, 76, 0, 0, 8, 67, 32, 20, 192, 21, 0, 10, 0, 0, 14, 69, 77, 64,
+			68, 20, 224, 89, 47, 122, 72, 111, 50, 0, 0, 0, 9, 67, 80, 20, 192, 47, 122, 89, 0, 0, 13, 68, 16, 84, 129, 76, 72, 110,
+			51, 35, 89, 0, 76, 0, 0, 13, 4, 95, 13, 3, 14, 89, 47, 51, 6, 111, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			10, 67, 44, 192, 83, 49, 55, 122, 89, 0, 0, 8, 67, 16, 245, 0, 21, 0, 10, 10, 67, 44, 192, 82, 49, 55, 122, 51, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66, 20, 224, 111, 50, 0, 72, 0, 10, 67, 77, 64, 68, 89, 47, 122, 72,
+			0, 12, 3, 95, 51, 88, 47, 51, 6, 111, 47, 109, 0, 0, 13, 3, 95, 48, 67, 107, 6, 120, 50, 72, 51, 35, 0, 0, 0, 0,
+			9, 67, 17, 32, 64, 72, 51, 122, 0, 0, 0, 0, 0, 0, 0, 10, 67, 77, 64, 78, 89, 47, 122, 50, 0, 0, 0, 0, 0, 0,
+			12, 3, 95, 49, 57, 50, 6, 109, 47, 123, 50, 0, 0, 12, 3, 95, 49, 56, 6, 122, 51, 47, 123, 50, 0, 0, 0, 0, 0, 0,
+			10, 67, 17, 32, 83, 72, 51, 122, 89, 0, 0, 10, 67, 17, 32, 82, 72, 51, 122, 51, 0, 0, 11, 3, 95, 49, 49, 6, 111, 55,
+			84, 35, 0, 0, 11, 3, 95, 49, 48, 47, 6, 108, 38, 126, 0, 0, 9, 68, 48, 85, 133, 48, 21, 0, 10, 13, 3, 95, 49, 51,
+			47, 51, 6, 111, 47, 123, 50, 0, 0, 11, 3, 95, 49, 50, 47, 6, 123, 55, 84, 0, 0, 13, 3, 95, 49, 53, 83, 6, 111, 65,
+			47, 123, 50, 0, 0, 14, 3, 95, 49, 52, 83, 57, 6, 126, 51, 47, 123, 50, 0, 0, 12, 3, 95, 49, 55, 127, 6, 120, 47, 123,
+			50, 0, 0, 14, 3, 95, 49, 54, 89, 6, 111, 49, 89, 47, 123, 50, 0, 0, 0, 11, 3, 95, 55, 88, 127, 6, 120, 47, 109, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 20, 101, 5, 72, 28, 0, 9, 67, 52, 21, 0,
+			65, 122, 47, 0, 0, 0, 0, 0, 15, 2, 49, 49, 111, 55, 83, 47, 112, 0, 82, 58, 32, 101, 32, 0, 16, 2, 49, 48, 47, 108,
+			123, 50, 72, 112, 0, 82, 58, 32, 101, 32, 0, 11, 3, 95, 50, 88, 97, 6, 117, 81, 123, 0, 0, 16, 2, 49, 50, 47, 123, 55,
+			83, 47, 112, 0, 82, 58, 32, 101, 32, 0, 0, 8, 67, 81, 32, 89, 21, 0, 10, 0, 10, 67, 8, 245, 20, 71, 6, 125, 47, 0,
+			0, 0, 0, 0, 0, 0, 10, 69, 76, 52, 133, 20, 224, 21, 0, 10, 0, 0, 0, 15, 3, 95, 63, 63, 89, 6, 116, 65, 71, 126,
+			55, 112, 50, 0, 0, 0, 11, 70, 12, 243, 21, 52, 228, 192, 21, 0, 10, 0, 15, 5, 6, 18, 195, 165, 14, 83, 51, 6, 124, 50,
+			0, 72, 28, 12, 3, 95, 52, 88, 83, 6, 119, 51, 47, 109, 0, 0, 0, 9, 3, 195, 164, 14, 111, 50, 0, 72, 0, 0, 0, 0,
+			0, 0, 12, 3, 95, 53, 88, 83, 6, 111, 65, 47, 109, 0, 0, 0, 0, 0, 0, 0, 10, 69, 60, 97, 137, 12, 80, 21, 0, 10,
+			0, 0, 13, 3, 95, 54, 88, 89, 6, 111, 49, 89, 47, 109, 0, 0, 0, 0, 7, 132, 22, 195, 165, 18, 76, 0, 6, 195, 52, 149,
+			20, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 52, 18, 76, 21, 0, 10, 10, 3, 95, 56, 88, 6, 123, 47,
+			109, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 81, 0, 72, 28, 0, 0, 11, 3, 95, 57, 88, 50, 6, 109, 47, 109, 0, 0, 0,
+			14, 69, 29, 34, 80, 56, 16, 81, 51, 108, 48, 50, 35, 0, 0, 0, 0, 0, 10, 3, 195, 164, 18, 6, 113, 51, 0, 72, 0, 16,
+			3, 95, 63, 65, 71, 6, 126, 49, 89, 47, 35, 84, 112, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 66, 36, 224, 109, 50,
+			0, 0, 8, 67, 92, 80, 128, 21, 0, 10, 0, 0, 0, 0, 13, 4, 95, 15, 7, 15, 89, 84, 6, 35, 50, 89, 0, 0, 0, 15,
+			69, 76, 179, 204, 4, 224, 89, 49, 6, 126, 55, 35, 50, 0, 17, 7, 13, 195, 165, 19, 20, 5, 14, 65, 6, 123, 89, 47, 13, 50,
+			0, 0, 0, 12, 71, 52, 144, 210, 61, 51, 198, 80, 21, 0, 10, 10, 67, 76, 83, 148, 89, 110, 50, 47, 0, 0, 9, 68, 36, 208,
+			71, 20, 21, 0, 10, 0, 10, 67, 77, 67, 210, 89, 47, 126, 51, 0, 0, 0, 0, 11, 67, 60, 50, 0, 6, 123, 49, 0, 72, 8,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 52, 147, 128, 65, 109, 50, 0, 76, 0, 6, 195, 52, 147, 129, 76, 0, 0,
+			16, 4, 95, 48, 77, 50, 65, 109, 55, 57, 6, 126, 50, 111, 51, 0, 0, 9, 67, 61, 53, 0, 125, 89, 47, 0, 10, 67, 52, 19,
+			128, 65, 35, 50, 0, 72, 16, 4, 95, 48, 77, 51, 71, 109, 55, 57, 6, 126, 50, 111, 51, 0, 0, 0, 13, 4, 95, 48, 77, 49,
+			47, 6, 117, 89, 111, 50, 0, 0, 14, 4, 95, 2, 18, 22, 71, 51, 6, 110, 84, 108, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 67, 8, 244, 148, 71, 123, 51, 47, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 66, 60, 96, 21, 0, 10, 7, 132, 2, 195, 182, 18, 72, 8, 132, 6, 195, 182, 18, 72, 28, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 9, 67, 52, 145, 192, 65, 111, 57, 0, 0, 0, 0, 0, 8, 67, 60, 225, 64, 21, 0, 10, 0, 0, 0, 11,
+			70, 77, 80, 141, 20, 229, 64, 21, 0, 10, 5, 194, 56, 144, 72, 0, 9, 67, 72, 17, 0, 51, 122, 72, 0, 0, 0, 11, 70, 16,
+			84, 203, 80, 244, 0, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 3, 9, 18, 89, 6, 109, 51, 49, 120, 65,
+			83, 55, 111, 49, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 8, 4, 195, 164, 18, 6, 195, 182, 18, 72, 6, 111, 51, 83, 118,
+			51, 0, 0, 0, 0, 0, 11, 70, 29, 32, 80, 32, 144, 192, 21, 0, 10, 0, 8, 67, 72, 245, 192, 21, 0, 10, 17, 4, 95, 19,
+			20, 11, 89, 50, 6, 110, 72, 89, 47, 51, 112, 49, 0, 0, 0, 12, 4, 95, 1, 3, 21, 6, 122, 49, 117, 47, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 18, 14, 7, 51, 6, 109, 68, 0, 0, 6, 131, 95, 195, 169, 43, 0, 11, 70, 29, 32,
+			80, 32, 144, 211, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 32, 64, 76, 0, 0, 17,
+			7, 20, 25, 22, 195, 164, 18, 18, 47, 2, 116, 84, 6, 113, 51, 0, 11, 67, 21, 32, 78, 113, 51, 35, 50, 0, 76, 0, 0, 10,
+			67, 88, 19, 20, 84, 122, 55, 47, 0, 0, 0, 0, 18, 4, 95, 1, 3, 50, 72, 6, 120, 71, 112, 55, 6, 122, 49, 117, 47, 0,
+			0, 0, 0, 9, 134, 12, 195, 164, 14, 7, 19, 28, 0, 7, 66, 80, 16, 47, 122, 0, 0, 11, 67, 21, 32, 84, 113, 51, 35, 47,
+			0, 76, 0, 0, 10, 67, 45, 96, 82, 49, 84, 122, 51, 0, 0, 0, 6, 195, 88, 147, 12, 72, 7, 195, 52, 245, 0, 72, 28, 0,
+			0, 0, 8, 67, 72, 245, 211, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 12, 243, 21,
+			52, 224, 21, 0, 10, 0, 0, 0, 10, 67, 32, 85, 1, 107, 110, 47, 35, 0, 0, 0, 0, 10, 67, 32, 83, 20, 107, 110, 55, 47,
+			0, 0, 0, 0, 7, 66, 56, 240, 21, 0, 10, 6, 194, 60, 208, 72, 8, 6, 194, 60, 208, 72, 28, 0, 0, 11, 67, 76, 86, 0,
+			89, 6, 111, 49, 89, 0, 12, 68, 4, 225, 197, 76, 35, 50, 57, 110, 89, 0, 0, 10, 67, 77, 96, 82, 89, 84, 122, 51, 0, 0,
+			0, 0, 12, 68, 4, 225, 197, 72, 35, 50, 57, 110, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 16, 195, 165, 72, 0, 0,
+			0, 0, 9, 68, 4, 67, 194, 20, 21, 0, 10, 0, 0, 0, 9, 67, 60, 229, 0, 125, 50, 47, 0, 0, 0, 0, 0, 0, 14, 4,
+			95, 3, 5, 4, 89, 6, 110, 72, 109, 55, 57, 0, 0, 0, 0, 16, 4, 95, 12, 9, 7, 55, 6, 108, 81, 35, 47, 4, 117, 51,
+			0, 0, 0, 0, 0, 10, 67, 88, 17, 0, 84, 122, 72, 0, 72, 0, 0, 0, 0, 0, 0, 0, 20, 8, 13, 15, 14, 5, 20, 195,
+			164, 18, 65, 4, 123, 50, 111, 47, 6, 113, 51, 0, 8, 133, 22, 195, 165, 18, 1, 76, 0, 7, 195, 76, 243, 64, 72, 8, 0, 8,
+			67, 56, 19, 69, 21, 0, 10, 0, 10, 69, 80, 16, 140, 21, 48, 21, 0, 10, 0, 0, 9, 67, 16, 83, 64, 72, 111, 65, 0, 0,
+			0, 14, 69, 4, 225, 18, 5, 48, 35, 50, 72, 51, 35, 89, 0, 0, 0, 0, 0, 8, 133, 22, 195, 165, 18, 20, 76, 0, 0, 0,
+			0, 0, 0, 0, 13, 72, 84, 228, 197, 48, 80, 212, 20, 64, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			196, 45, 83, 132, 20, 72, 0, 0, 0, 0, 0, 0, 8, 67, 88, 145, 87, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			11, 67, 85, 48, 64, 117, 111, 89, 6, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 32, 82, 128, 107, 111,
+			57, 0, 0, 0, 8, 197, 76, 181, 76, 48, 80, 72, 0, 0, 0, 0, 0, 0, 9, 67, 76, 243, 128, 89, 124, 50, 0, 9, 67, 40,
+			19, 128, 57, 122, 50, 0, 0, 0, 0, 0, 10, 67, 16, 83, 128, 72, 111, 50, 0, 72, 0, 9, 68, 20, 208, 73, 48, 21, 0, 10,
+			13, 4, 95, 3, 1, 16, 89, 47, 6, 126, 51, 47, 0, 0, 0, 11, 67, 88, 20, 133, 84, 122, 51, 111, 0, 72, 0, 8, 67, 92,
+			244, 132, 21, 0, 10, 9, 67, 64, 84, 128, 48, 113, 51, 0, 0, 11, 2, 95, 46, 48, 6, 120, 68, 49, 47, 0, 0, 0, 0, 10,
+			67, 88, 20, 128, 84, 122, 51, 0, 72, 9, 67, 24, 20, 128, 83, 122, 51, 0, 10, 67, 88, 20, 128, 84, 122, 51, 0, 72, 9, 2,
+			95, 51, 47, 51, 6, 110, 0, 0, 9, 2, 95, 50, 47, 84, 6, 124, 0, 0, 8, 2, 95, 49, 6, 111, 47, 0, 0, 9, 2, 95,
+			48, 50, 6, 123, 55, 0, 0, 8, 2, 95, 55, 127, 6, 117, 0, 0, 10, 2, 95, 54, 89, 6, 111, 49, 89, 0, 0, 9, 2, 95,
+			53, 83, 6, 111, 65, 0, 0, 10, 2, 95, 52, 83, 6, 115, 51, 35, 0, 0, 0, 0, 9, 2, 95, 57, 50, 6, 108, 126, 0, 0,
+			9, 2, 95, 56, 6, 123, 47, 35, 0, 0, 0, 12, 67, 85, 48, 83, 117, 111, 89, 6, 122, 89, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 67, 85, 49, 82, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 67, 36, 64, 71, 109, 72, 4, 122, 81, 0, 0, 15,
+			6, 13, 195, 165, 19, 20, 5, 65, 6, 123, 89, 47, 13, 0, 0, 0, 0, 0, 0, 0, 10, 67, 40, 17, 192, 57, 122, 81, 0, 72,
+			0, 13, 4, 95, 4, 15, 20, 48, 6, 120, 68, 49, 47, 0, 0, 0, 0, 0, 0, 7, 195, 88, 145, 0, 72, 28, 0, 5, 194, 88,
+			144, 72, 0, 0, 0, 10, 69, 60, 227, 9, 56, 80, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4,
+			95, 7, 18, 22, 81, 51, 6, 122, 84, 0, 0, 8, 67, 20, 66, 84, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 13, 4, 95, 4, 9, 1, 6, 123, 65, 57, 117, 72, 0, 0, 0, 0, 0, 0, 12, 68, 4, 228, 197, 76, 35, 50, 89, 110, 89,
+			0, 6, 195, 16, 84, 211, 76, 0, 0, 0, 11, 70, 24, 148, 133, 24, 246, 0, 21, 0, 10, 0, 8, 67, 40, 21, 211, 21, 0, 10,
+			12, 68, 4, 228, 197, 72, 35, 50, 89, 110, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 67, 9, 32, 64, 71, 51,
+			122, 0, 0, 0, 0, 0, 19, 71, 80, 244, 147, 16, 17, 197, 56, 47, 6, 126, 91, 72, 122, 81, 111, 50, 0, 0, 0, 0, 11, 67,
+			25, 32, 77, 83, 51, 6, 35, 65, 0, 0, 0, 0, 0, 10, 67, 76, 17, 5, 89, 122, 72, 111, 0, 13, 4, 95, 35, 51, 50, 71,
+			55, 6, 35, 68, 49, 0, 0, 0, 0, 0, 16, 6, 14, 195, 165, 7, 15, 20, 50, 4, 124, 81, 123, 47, 0, 72, 0, 0, 0, 0,
+			0, 0, 16, 6, 14, 195, 165, 7, 15, 14, 50, 4, 124, 81, 123, 50, 0, 72, 0, 0, 0, 0, 11, 70, 21, 132, 12, 61, 33, 82,
+			21, 0, 10, 0, 0, 0, 0, 0, 0, 11, 70, 36, 229, 5, 72, 225, 84, 21, 0, 10, 0, 8, 67, 92, 149, 8, 21, 0, 10, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69, 28, 243, 199, 48, 80, 21, 0,
+			10, 0, 7, 131, 4, 195, 165, 72, 28, 0, 0, 0, 0, 0, 12, 71, 84, 224, 200, 20, 50, 197, 16, 21, 0, 10, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67, 80, 243, 84, 47, 6, 125, 65, 47, 0, 0, 0, 0, 11, 70, 32, 80,
+			68, 36, 225, 192, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 67, 28, 18, 77, 21, 0, 10, 0, 12, 71, 52, 84, 211, 20,
+			225, 197, 72, 21, 0, 10, 10, 67, 80, 243, 64, 47, 6, 125, 65, 0, 6, 195, 76, 149, 20, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 16, 70, 77, 64, 68, 20, 228, 192, 89, 47, 122, 72, 111, 50, 89, 0, 0, 0, 0, 0, 0, 0, 0, 10, 135, 6, 1,
+			19, 20, 195, 164, 14, 8, 0, 11, 70, 48, 80, 86, 36, 225, 192, 21, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 195, 164, 0, 4, 1, 102, 102, 3, 6, 113, 0, 1, 110, 111, 105, 2, 114, 0, 1, 116, 2, 114, 0, 114, 108, 2,
+			100, 3, 6, 113, 51, 0, 4, 1, 110, 2, 116, 116, 3, 111, 0, 1, 118, 2, 120, 0, 2, 17, 67, 17, 67, 0, 4, 3, 113, 0,
+			1, 98, 2, 114, 0, 1, 102, 2, 114, 100, 0, 1, 107, 115, 2, 114, 103, 0, 1, 108, 2, 115, 110, 0, 1, 108, 2, 115, 116, 0,
+			1, 110, 2, 116, 0, 1, 114, 2, 107, 0, 1, 114, 116, 2, 100, 0, 1, 118, 2, 108, 107, 0, 1, 118, 2, 114, 100, 0, 2, 114,
+			0, 2, 114, 100, 0, 7, 6, 195, 165, 0, 1, 108, 2, 115, 115, 3, 6, 123, 0, 4, 1, 104, 2, 114, 3, 6, 124, 0, 1, 108,
+			2, 115, 0, 1, 114, 116, 2, 100, 0, 1, 118, 2, 114, 0, 4, 1, 104, 2, 108, 108, 3, 123, 0, 2, 17, 67, 11, 0, 2, 110,
+			103, 0, 4, 3, 124, 0, 1, 104, 2, 108, 0, 1, 107, 115, 2, 108, 0, 1, 109, 2, 108, 0, 1, 110, 2, 108, 0, 1, 114, 2,
+			107, 0, 2, 17, 67, 17, 67, 0, 7, 6, 195, 182, 0, 1, 102, 2, 114, 107, 3, 2, 119, 0, 4, 1, 102, 2, 114, 100, 3, 6,
+			118, 0, 1, 102, 102, 0, 1, 108, 2, 115, 110, 0, 1, 108, 2, 115, 116, 0, 2, 118, 114, 0, 4, 1, 114, 2, 109, 3, 6, 119,
+			0, 2, 17, 67, 17, 67, 0, 3, 118, 0, 7, 6, 97, 0, 4, 1, 107, 2, 116, 97, 3, 2, 35, 0, 1, 107, 105, 0, 1, 108,
+			112, 2, 110, 101, 114, 97, 0, 1, 110, 2, 116, 105, 0, 1, 112, 101, 2, 114, 0, 1, 115, 2, 116, 105, 0, 1, 116, 2, 116, 105,
+			0, 8, 2, 114, 116, 0, 110, 115, 1, 21, 2, 32, 3, 6, 35, 50, 89, 0, 4, 1, 102, 2, 114, 108, 3, 6, 122, 0, 1, 102,
+			2, 114, 116, 0, 1, 107, 105, 2, 110, 115, 0, 1, 110, 2, 108, 32, 0, 1, 116, 2, 108, 32, 0, 1, 116, 2, 108, 32, 0, 1,
+			116, 111, 116, 2, 108, 0, 4, 1, 10, 3, 35, 0, 1, 98, 0, 1, 98, 2, 107, 116, 101, 0, 1, 98, 2, 114, 11, 0, 1, 98,
+			98, 2, 114, 32, 0, 1, 100, 2, 100, 0, 1, 100, 2, 103, 11, 0, 1, 100, 2, 110, 0, 1, 100, 100, 2, 17, 67, 0, 1, 100,
+			110, 2, 114, 0, 1, 100, 112, 112, 2, 116, 0, 1, 103, 101, 2, 110, 0, 1, 103, 110, 2, 100, 0, 1, 103, 165, 195, 2, 110, 0,
+			1, 106, 2, 110, 0, 1, 107, 2, 110, 0, 1, 107, 2, 110, 105, 0, 1, 107, 2, 115, 32, 0, 1, 108, 2, 103, 103, 0, 1, 108,
+			101, 2, 100, 0, 1, 108, 103, 2, 100, 11, 0, 1, 108, 103, 2, 115, 11, 0, 1, 108, 107, 105, 2, 114, 32, 0, 1, 108, 108, 2,
+			100, 101, 0, 1, 108, 108, 101, 109, 2, 110, 0, 1, 109, 2, 106, 0, 1, 109, 2, 110, 0, 1, 109, 2, 116, 101, 114, 0, 1, 109,
+			114, 111, 102, 2, 116, 105, 0, 1, 110, 2, 100, 0, 1, 110, 110, 2, 110, 0, 1, 112, 2, 100, 32, 0, 1, 112, 2, 110, 101, 108,
+			0, 1, 114, 2, 98, 97, 0, 1, 114, 100, 2, 100, 0, 1, 114, 100, 2, 116, 0, 1, 114, 101, 2, 100, 0, 1, 114, 101, 2, 116,
+			0, 1, 114, 101, 2, 116, 0, 1, 114, 103, 2, 109, 0, 1, 114, 116, 115, 0, 1, 115, 2, 100, 0, 1, 115, 2, 109, 97, 17, 67,
+			0, 1, 115, 2, 115, 0, 1, 115, 107, 2, 109, 0, 1, 115, 115, 97, 0, 1, 115, 116, 2, 109, 0, 1, 116, 2, 103, 11, 0, 1,
+			116, 2, 108, 11, 0, 1, 116, 2, 110, 0, 1, 116, 97, 0, 1, 116, 115, 2, 116, 32, 0, 1, 118, 2, 114, 105, 97, 0, 1, 118,
+			115, 2, 114, 116, 0, 2, 17, 67, 11, 0, 2, 17, 67, 17, 67, 0, 2, 32, 0, 2, 98, 111, 0, 2, 100, 101, 0, 2, 114, 32,
+			0, 2, 114, 101, 0, 2, 114, 110, 97, 0, 2, 115, 32, 0, 2, 116, 32, 0, 2, 117, 116, 111, 0, 2, 118, 97, 0, 2, 120, 0,
+			8, 107, 2, 21, 0, 110, 97, 108, 121, 3, 35, 50, 35, 55, 115, 0, 114, 98, 101, 116, 3, 35, 51, 71, 110, 47, 0, 108, 107, 111,
+			104, 111, 108, 3, 35, 55, 49, 125, 107, 124, 55, 0, 108, 108, 118, 97, 114, 3, 35, 55, 55, 84, 122, 51, 0, 109, 101, 114, 105, 107,
+			3, 35, 65, 111, 51, 109, 49, 0, 103, 101, 114, 97, 3, 35, 81, 110, 51, 35, 0, 115, 116, 3, 35, 89, 47, 0, 4, 3, 122, 0,
+			1, 98, 2, 107, 0, 1, 98, 2, 114, 0, 1, 98, 2, 114, 32, 0, 1, 100, 2, 103, 0, 1, 102, 2, 114, 101, 110, 0, 1, 107,
+			2, 107, 0, 1, 107, 115, 2, 100, 97, 0, 1, 107, 115, 2, 100, 101, 0, 1, 107, 115, 2, 112, 0, 1, 108, 2, 103, 0, 1, 108,
+			2, 114, 115, 0, 1, 108, 98, 2, 100, 0, 1, 108, 103, 2, 100, 0, 1, 108, 107, 2, 114, 0, 1, 108, 112, 109, 101, 120, 2, 114,
+			0, 1, 109, 111, 2, 116, 0, 1, 109, 115, 2, 114, 116, 0, 1, 114, 2, 116, 0, 1, 114, 100, 101, 2, 103, 0, 1, 114, 100, 101,
+			2, 114, 0, 1, 114, 100, 105, 0, 1, 115, 2, 107, 101, 0, 1, 115, 2, 107, 110, 0, 1, 115, 2, 107, 115, 0, 1, 116, 2, 103,
+			0, 1, 116, 2, 108, 17, 67, 0, 1, 116, 2, 108, 115, 0, 1, 116, 101, 114, 2, 103, 0, 1, 116, 108, 2, 116, 0, 1, 116, 108,
+			101, 100, 0, 1, 116, 110, 101, 2, 114, 0, 1, 116, 115, 2, 114, 116, 0, 1, 116, 116, 2, 103, 97, 0, 1, 116, 116, 2, 103, 101,
+			116, 0, 1, 116, 116, 2, 103, 105, 116, 0, 1, 118, 2, 108, 100, 0, 1, 118, 2, 108, 102, 0, 1, 118, 2, 114, 100, 0, 1, 118,
+			115, 2, 114, 0, 1, 118, 115, 110, 97, 2, 114, 0, 2, 114, 110, 0, 2, 114, 116, 32, 0, 2, 118, 98, 0, 2, 118, 100, 0, 2,
+			118, 103, 0, 2, 118, 115, 0, 8, 98, 2, 107, 0, 8, 107, 115, 2, 100, 0, 8, 108, 103, 2, 115, 0, 8, 118, 2, 110, 108, 0,
+			118, 116, 97, 8, 3, 122, 84, 47, 122, 0, 118, 103, 101, 8, 3, 122, 84, 57, 6, 110, 0, 117, 8, 2, 17, 67, 3, 123, 0, 117,
+			1, 104, 99, 2, 17, 67, 17, 67, 3, 124, 0, 7, 6, 98, 0, 2, 98, 3, 0, 3, 71, 0, 101, 116, 97, 108, 3, 71, 2, 111,
+			47, 6, 122, 55, 0, 114, 101, 100, 98, 97, 110, 100, 3, 71, 51, 110, 72, 71, 35, 50, 72, 0, 101, 103, 114, 105, 112, 3, 71, 111,
+			81, 51, 6, 108, 48, 0, 101, 103, 114, 97, 118, 3, 71, 111, 81, 51, 122, 84, 0, 101, 118, 97, 107, 110, 3, 71, 111, 84, 122, 49,
+			50, 0, 101, 115, 108, 97, 103, 3, 71, 111, 89, 55, 6, 122, 81, 0, 101, 115, 108, 97, 103, 116, 97, 3, 71, 111, 89, 55, 6, 122,
+			81, 47, 122, 0, 7, 6, 99, 0, 4, 108, 105, 99, 107, 3, 21, 0, 111, 109, 112, 117, 116, 101, 114, 0, 4, 3, 49, 0, 107, 0,
+			107, 2, 17, 65, 3, 49, 12, 0, 4, 99, 3, 49, 89, 0, 99, 2, 17, 65, 0, 4, 2, 101, 3, 89, 0, 2, 105, 0, 2, 121,
+			0, 2, 195, 164, 0, 2, 195, 182, 0, 104, 3, 91, 0, 104, 2, 101, 102, 3, 127, 0, 7, 6, 100, 0, 2, 100, 3, 0, 4, 101,
+			115, 105, 103, 110, 3, 21, 0, 111, 119, 110, 108, 111, 97, 100, 0, 106, 117, 3, 57, 6, 117, 0, 106, 117, 110, 103, 3, 57, 6, 120,
+			68, 0, 3, 72, 0, 97, 116, 111, 114, 101, 114, 3, 72, 35, 47, 6, 126, 51, 111, 51, 0, 114, 111, 103, 101, 110, 3, 72, 51, 124,
+			81, 111, 50, 0, 114, 111, 103, 101, 114, 3, 72, 51, 124, 81, 111, 51, 0, 105, 115, 107, 101, 3, 72, 109, 89, 49, 111, 0, 117, 109,
+			3, 72, 120, 65, 0, 97, 116, 97, 3, 72, 122, 47, 35, 0, 97, 116, 97, 98, 97, 115, 3, 72, 122, 47, 35, 71, 122, 89, 0, 97,
+			116, 111, 114, 3, 72, 122, 47, 123, 51, 0, 97, 103, 108, 105, 103, 3, 72, 122, 81, 55, 109, 81, 0, 97, 103, 101, 110, 3, 72, 122,
+			81, 111, 50, 0, 7, 6, 101, 0, 4, 1, 10, 3, 2, 111, 0, 1, 10, 2, 32, 0, 1, 98, 2, 102, 0, 1, 98, 2, 103, 0,
+			1, 98, 2, 104, 0, 1, 98, 2, 107, 0, 1, 98, 2, 108, 0, 1, 98, 2, 114, 0, 1, 98, 2, 115, 0, 1, 98, 2, 116, 0,
+			1, 98, 2, 118, 0, 1, 100, 2, 108, 115, 101, 0, 1, 103, 2, 110, 0, 1, 112, 109, 2, 108, 0, 1, 112, 115, 2, 99, 0, 1,
+			114, 2, 103, 0, 1, 114, 2, 116, 117, 114, 0, 1, 114, 112, 2, 99, 0, 1, 114, 112, 2, 110, 0, 1, 115, 2, 107, 0, 1, 115,
+			2, 112, 0, 2, 120, 101, 109, 112, 0, 116, 1, 10, 2, 32, 14, 128, 128, 130, 3, 2, 111, 47, 0, 110, 1, 10, 2, 32, 3, 2,
+			111, 50, 0, 110, 115, 1, 10, 2, 32, 3, 2, 111, 50, 89, 0, 114, 1, 10, 2, 32, 3, 2, 111, 51, 0, 115, 1, 10, 2, 32,
+			3, 2, 111, 89, 0, 110, 115, 1, 114, 101, 3, 6, 35, 50, 89, 0, 1, 116, 115, 2, 109, 17, 67, 3, 6, 110, 0, 107, 111, 110,
+			111, 109, 3, 6, 111, 49, 126, 50, 4, 123, 12, 65, 0, 110, 115, 1, 114, 101, 118, 182, 195, 3, 6, 111, 50, 89, 0, 108, 101, 107,
+			3, 6, 111, 55, 111, 49, 0, 109, 98, 101, 114, 3, 6, 111, 65, 71, 111, 51, 0, 115, 112, 101, 97, 107, 3, 21, 0, 4, 3, 110,
+			0, 1, 99, 2, 114, 0, 1, 100, 2, 108, 110, 0, 1, 100, 2, 108, 115, 0, 1, 100, 2, 108, 116, 0, 1, 100, 2, 108, 118, 0,
+			1, 100, 2, 114, 97, 0, 1, 102, 2, 114, 97, 0, 1, 103, 2, 110, 111, 109, 0, 1, 103, 2, 114, 97, 0, 1, 104, 2, 116, 101,
+			110, 0, 1, 104, 103, 2, 116, 0, 1, 104, 121, 110, 2, 116, 0, 1, 108, 2, 100, 97, 0, 1, 108, 2, 100, 110, 0, 1, 108, 2,
+			114, 97, 0, 1, 108, 2, 116, 97, 0, 1, 109, 2, 100, 100, 101, 0, 1, 109, 2, 100, 101, 108, 0, 1, 109, 2, 114, 97, 0, 1,
+			110, 2, 100, 115, 0, 1, 110, 2, 114, 97, 0, 1, 114, 2, 100, 110, 0, 1, 114, 2, 114, 97, 0, 1, 114, 2, 116, 97, 0, 1,
+			114, 98, 2, 118, 0, 1, 114, 116, 120, 2, 109, 0, 1, 115, 2, 114, 97, 0, 1, 116, 2, 114, 97, 0, 1, 116, 105, 2, 116, 0,
+			1, 116, 105, 2, 116, 32, 0, 1, 116, 111, 105, 108, 2, 107, 0, 1, 116, 115, 2, 107, 0, 1, 116, 115, 121, 2, 109, 0, 1, 118,
+			2, 107, 0, 1, 118, 2, 116, 97, 0, 2, 110, 98, 97, 114, 0, 2, 110, 108, 105, 0, 2, 114, 105, 110, 0, 2, 114, 115, 97, 116,
+			116, 0, 2, 114, 115, 195, 164, 0, 8, 104, 2, 116, 97, 0, 116, 1, 104, 2, 32, 3, 110, 47, 0, 110, 104, 101, 116, 3, 110, 50,
+			107, 110, 47, 0, 4, 1, 97, 107, 2, 108, 3, 111, 0, 1, 98, 2, 108, 32, 0, 1, 100, 2, 98, 97, 116, 0, 1, 100, 2, 99,
+			0, 1, 100, 101, 109, 2, 108, 0, 1, 104, 2, 109, 0, 1, 109, 2, 110, 121, 0, 1, 109, 2, 116, 111, 100, 0, 1, 112, 2, 100,
+			97, 0, 1, 112, 2, 114, 105, 0, 1, 114, 2, 99, 101, 0, 1, 114, 2, 100, 97, 107, 0, 1, 114, 2, 115, 117, 108, 0, 1, 114,
+			2, 115, 117, 114, 0, 1, 116, 2, 108, 101, 102, 0, 1, 118, 115, 2, 114, 0, 2, 17, 67, 17, 67, 0, 2, 103, 101, 110, 116, 0,
+			2, 106, 0, 2, 116, 97, 0, 2, 118, 101, 0, 2, 120, 0, 8, 2, 116, 105, 107, 0, 115, 101, 110, 116, 3, 111, 89, 6, 111, 50,
+			47, 0, 1, 104, 99, 2, 102, 3, 113, 0, 7, 6, 102, 0, 2, 102, 3, 0, 97, 99, 101, 3, 21, 0, 3, 83, 0, 97, 109, 105,
+			108, 106, 3, 83, 35, 65, 6, 109, 55, 57, 0, 111, 114, 109, 97, 100, 3, 83, 123, 51, 65, 35, 72, 0, 7, 6, 103, 0, 114, 111,
+			117, 112, 3, 21, 0, 2, 116, 3, 49, 0, 4, 1, 114, 111, 2, 97, 114, 3, 57, 0, 1, 114, 111, 2, 101, 110, 0, 2, 101, 0,
+			2, 105, 0, 2, 121, 0, 2, 195, 164, 0, 2, 195, 182, 0, 106, 0, 106, 111, 114, 3, 57, 126, 51, 0, 2, 110, 3, 68, 0, 4,
+			3, 81, 0, 1, 97, 2, 101, 0, 1, 97, 2, 105, 0, 1, 97, 108, 115, 0, 1, 105, 2, 105, 0, 1, 111, 108, 2, 105, 0, 1,
+			121, 2, 97, 0, 1, 121, 2, 101, 0, 1, 121, 2, 111, 0, 1, 164, 195, 108, 2, 101, 0, 1, 164, 195, 118, 0, 103, 0, 97, 114,
+			97, 110, 116, 3, 81, 2, 35, 51, 6, 35, 50, 47, 0, 117, 105, 100, 2, 101, 3, 81, 6, 35, 57, 72, 0, 97, 110, 105, 3, 81,
+			35, 50, 6, 109, 0, 97, 114, 97, 103, 101, 3, 81, 35, 51, 6, 122, 91, 0, 108, 195, 182, 109, 3, 81, 55, 119, 65, 0, 97, 116,
+			97, 3, 81, 122, 47, 35, 0, 7, 6, 104, 0, 2, 104, 3, 0, 101, 97, 100, 105, 110, 103, 3, 21, 0, 106, 3, 57, 0, 106, 195,
+			164, 108, 112, 3, 57, 111, 55, 48, 0, 3, 107, 0, 195, 182, 103, 3, 107, 118, 81, 0, 111, 110, 8, 2, 14, 128, 132, 131, 3, 107,
+			124, 68, 0, 7, 6, 105, 0, 4, 1, 108, 17, 67, 2, 107, 97, 17, 67, 3, 2, 109, 0, 2, 110, 102, 0, 2, 110, 115, 116, 114,
+			0, 4, 2, 110, 32, 3, 6, 108, 0, 2, 110, 101, 110, 0, 2, 110, 101, 114, 0, 4, 109, 97, 103, 3, 21, 0, 116, 101, 109, 0,
+			4, 3, 108, 0, 1, 99, 2, 115, 32, 0, 1, 108, 2, 107, 110, 97, 0, 1, 114, 100, 2, 118, 0, 1, 114, 107, 2, 115, 0, 1,
+			114, 107, 2, 115, 116, 0, 1, 114, 107, 115, 2, 118, 0, 1, 116, 2, 100, 0, 1, 116, 105, 114, 107, 2, 107, 32, 0, 1, 118, 2,
+			115, 110, 0, 8, 108, 102, 2, 107, 0, 4, 1, 99, 3, 109, 0, 1, 100, 2, 114, 0, 1, 107, 2, 103, 0, 1, 108, 2, 99, 0,
+			1, 114, 107, 2, 116, 101, 0, 1, 114, 107, 2, 116, 105, 0, 1, 115, 2, 116, 0, 1, 116, 2, 115, 0, 2, 17, 67, 17, 67, 0,
+			2, 103, 32, 0, 116, 117, 116, 2, 32, 3, 109, 47, 117, 47, 0, 107, 111, 110, 3, 109, 49, 6, 124, 50, 0, 98, 105, 108, 105, 3,
+			109, 71, 109, 55, 109, 0, 7, 6, 106, 0, 3, 57, 0, 97, 118, 97, 3, 57, 122, 84, 35, 0, 2, 117, 115, 116, 101, 114, 3, 127,
+			0, 111, 117, 2, 114, 3, 127, 125, 0, 7, 6, 107, 0, 4, 3, 49, 0, 8, 2, 105, 17, 67, 11, 0, 97, 116, 101, 103, 111, 114,
+			105, 3, 49, 35, 47, 111, 81, 4, 126, 51, 108, 0, 97, 108, 101, 110, 100, 3, 49, 35, 55, 6, 111, 50, 72, 0, 97, 114, 116, 97,
+			3, 49, 122, 51, 47, 35, 0, 111, 110, 116, 111, 114, 3, 49, 123, 50, 47, 6, 126, 51, 0, 111, 109, 109, 117, 110, 3, 49, 123, 65,
+			6, 117, 50, 0, 111, 109, 109, 117, 110, 105, 107, 97, 3, 49, 123, 65, 120, 50, 109, 49, 35, 0, 4, 2, 195, 164, 110, 100, 3, 97,
+			0, 2, 195, 164, 110, 110, 0, 2, 195, 164, 110, 116, 0, 2, 195, 182, 112, 0, 8, 2, 101, 0, 8, 2, 105, 0, 8, 2, 121, 0,
+			8, 2, 195, 164, 0, 8, 2, 195, 182, 0, 106, 0, 195, 164, 110, 115, 108, 3, 97, 111, 50, 89, 55, 0, 7, 6, 108, 0, 2, 108,
+			3, 0, 3, 55, 0, 195, 165, 103, 3, 55, 6, 124, 81, 0, 103, 2, 32, 3, 55, 57, 0, 105, 103, 101, 110, 3, 55, 109, 81, 111,
+			50, 0, 97, 103, 101, 114, 3, 55, 122, 81, 111, 51, 0, 106, 8, 3, 57, 0, 106, 117, 3, 57, 6, 117, 0, 7, 6, 109, 0, 2,
+			109, 3, 0, 101, 110, 117, 3, 21, 0, 3, 65, 0, 97, 114, 105, 101, 3, 65, 2, 35, 51, 6, 108, 0, 97, 114, 105, 97, 3, 65,
+			2, 35, 51, 6, 108, 35, 0, 101, 100, 108, 3, 65, 6, 110, 72, 55, 0, 195, 164, 110, 110, 105, 115, 107, 3, 65, 6, 111, 50, 109,
+			127, 4, 0, 111, 116, 111, 114, 101, 114, 3, 65, 6, 123, 47, 126, 51, 111, 51, 0, 111, 116, 111, 114, 3, 65, 6, 126, 47, 123, 51,
+			0, 97, 120, 105, 109, 101, 114, 97, 3, 65, 35, 49, 89, 108, 65, 6, 110, 51, 35, 0, 97, 103, 97, 3, 65, 35, 81, 35, 0, 97,
+			115, 107, 101, 114, 97, 3, 65, 35, 89, 49, 110, 51, 35, 0, 97, 115, 107, 101, 110, 3, 65, 35, 89, 49, 111, 50, 0, 97, 115, 107,
+			101, 114, 3, 65, 35, 89, 49, 111, 51, 0, 106, 117, 107, 3, 65, 57, 117, 49, 0, 105, 110, 105, 109, 101, 114, 97, 3, 65, 109, 50,
+			108, 65, 6, 110, 51, 35, 0, 101, 100, 98, 111, 114, 103, 3, 65, 110, 72, 71, 123, 51, 57, 0, 101, 100, 118, 101, 116, 3, 65, 110,
+			72, 84, 6, 110, 47, 0, 101, 110, 121, 3, 65, 111, 50, 6, 115, 0, 117, 115, 105, 107, 3, 65, 117, 89, 6, 108, 49, 0, 111, 98,
+			105, 108, 3, 65, 123, 71, 108, 55, 0, 111, 100, 101, 108, 3, 65, 123, 72, 6, 111, 55, 0, 111, 100, 101, 109, 3, 65, 123, 72, 110,
+			65, 0, 7, 6, 110, 0, 2, 110, 3, 0, 101, 116, 119, 111, 114, 107, 3, 21, 0, 3, 50, 0, 97, 118, 105, 103, 3, 50, 2, 35,
+			84, 2, 109, 81, 0, 97, 116, 117, 114, 3, 50, 6, 35, 47, 6, 117, 51, 0, 97, 108, 105, 3, 50, 35, 55, 109, 0, 103, 1, 117,
+			102, 2, 101, 114, 3, 50, 81, 0, 111, 114, 109, 97, 108, 3, 50, 123, 51, 65, 122, 55, 0, 4, 2, 107, 3, 68, 0, 103, 0, 7,
+			6, 111, 0, 4, 1, 102, 110, 105, 2, 114, 109, 97, 116, 105, 3, 2, 123, 0, 1, 107, 2, 108, 117, 0, 1, 110, 2, 118, 101, 108,
+			108, 0, 1, 112, 2, 108, 105, 115, 0, 1, 114, 112, 2, 98, 0, 1, 114, 112, 2, 99, 101, 110, 116, 0, 1, 114, 112, 2, 100, 0,
+			4, 1, 108, 2, 107, 3, 2, 125, 0, 1, 114, 112, 2, 99, 0, 1, 115, 2, 99, 105, 0, 4, 1, 98, 2, 120, 3, 6, 123, 0,
+			1, 102, 2, 114, 109, 0, 1, 107, 2, 112, 105, 0, 1, 108, 2, 103, 103, 0, 1, 110, 2, 114, 109, 0, 1, 115, 2, 114, 0, 99,
+			104, 3, 6, 123, 49, 0, 4, 1, 102, 2, 110, 3, 6, 124, 0, 1, 108, 2, 103, 0, 1, 108, 2, 118, 0, 2, 110, 105, 0, 4,
+			1, 107, 2, 107, 3, 6, 126, 0, 1, 108, 98, 2, 100, 0, 1, 109, 2, 116, 0, 4, 1, 17, 67, 2, 114, 115, 3, 123, 0, 1,
+			98, 2, 114, 116, 0, 1, 100, 2, 107, 0, 1, 100, 2, 110, 0, 1, 103, 2, 110, 0, 1, 103, 110, 2, 110, 0, 1, 107, 2, 110,
+			115, 0, 1, 107, 2, 114, 116, 0, 1, 107, 2, 114, 118, 0, 1, 108, 2, 110, 0, 1, 108, 108, 2, 110, 0, 1, 110, 2, 114, 32,
+			0, 1, 110, 110, 2, 110, 115, 0, 1, 112, 2, 112, 117, 0, 1, 112, 112, 2, 114, 116, 0, 1, 112, 115, 2, 114, 116, 0, 1, 114,
+			116, 114, 2, 110, 0, 1, 115, 2, 114, 32, 0, 1, 115, 115, 2, 110, 0, 1, 116, 2, 114, 32, 0, 1, 116, 115, 2, 114, 109, 0,
+			2, 17, 67, 17, 67, 0, 2, 98, 98, 0, 2, 99, 107, 0, 2, 100, 100, 0, 2, 102, 102, 0, 2, 108, 108, 0, 2, 109, 32, 0,
+			2, 109, 109, 0, 2, 112, 112, 0, 2, 114, 103, 0, 2, 114, 107, 0, 2, 114, 114, 0, 2, 115, 115, 0, 2, 116, 116, 0, 8, 2,
+			106, 0, 112, 101, 114, 97, 116, 3, 123, 48, 111, 51, 35, 47, 0, 106, 1, 114, 112, 3, 123, 127, 6, 0, 4, 1, 107, 2, 100, 3,
+			124, 0, 1, 107, 108, 2, 114, 0, 1, 112, 112, 117, 2, 114, 116, 0, 2, 114, 100, 101, 0, 4, 1, 103, 2, 114, 3, 125, 0, 2,
+			17, 67, 11, 0, 2, 110, 115, 0, 4, 3, 126, 0, 1, 98, 2, 107, 0, 1, 98, 2, 115, 116, 0, 1, 102, 2, 116, 98, 0, 1,
+			103, 2, 100, 0, 1, 114, 107, 2, 103, 0, 1, 114, 107, 2, 107, 0, 1, 114, 107, 2, 110, 0, 1, 114, 112, 2, 118, 0, 1, 115,
+			114, 2, 114, 100, 0, 2, 114, 17, 67, 0, 115, 112, 97, 114, 97, 116, 3, 126, 89, 48, 122, 51, 35, 47, 0, 7, 6, 112, 0, 2,
+			112, 3, 0, 3, 48, 0, 97, 107, 101, 116, 3, 48, 35, 49, 6, 110, 47, 0, 97, 114, 101, 110, 116, 101, 115, 3, 48, 35, 51, 13,
+			50, 47, 4, 110, 89, 0, 114, 105, 118, 97, 116, 3, 48, 51, 109, 84, 122, 47, 0, 105, 111, 110, 3, 48, 109, 38, 6, 126, 50, 0,
+			111, 116, 97, 116, 105, 115, 3, 48, 123, 47, 6, 122, 47, 109, 89, 0, 195, 165, 115, 116, 195, 165, 3, 48, 124, 89, 47, 124, 0, 7,
+			6, 113, 0, 2, 113, 3, 0, 3, 49, 0, 117, 3, 49, 58, 0, 7, 6, 114, 0, 4, 1, 114, 3, 0, 2, 116, 3, 0, 3, 51,
+			0, 101, 100, 105, 103, 101, 114, 3, 51, 2, 111, 72, 109, 127, 6, 110, 51, 0, 101, 115, 111, 114, 3, 51, 6, 110, 89, 123, 51, 0,
+			97, 100, 101, 114, 97, 3, 51, 35, 72, 6, 110, 51, 35, 0, 97, 102, 105, 107, 3, 51, 35, 83, 6, 108, 49, 0, 103, 2, 32, 3,
+			51, 57, 0, 105, 115, 107, 3, 51, 109, 89, 49, 0, 101, 103, 101, 108, 3, 51, 110, 81, 111, 55, 0, 101, 107, 111, 114, 100, 3, 51,
+			111, 49, 6, 124, 51, 72, 0, 117, 98, 114, 105, 107, 3, 51, 120, 71, 51, 6, 108, 49, 0, 115, 107, 2, 105, 3, 51, 127, 0, 115,
+			105, 2, 111, 3, 51, 127, 6, 0, 4, 115, 3, 93, 0, 115, 115, 0, 115, 107, 3, 93, 49, 0, 7, 6, 115, 0, 4, 101, 108, 101,
+			99, 116, 3, 21, 0, 119, 101, 100, 101, 110, 0, 4, 3, 89, 0, 1, 105, 102, 2, 107, 0, 1, 117, 102, 2, 107, 0, 2, 107, 105,
+			103, 0, 115, 0, 195, 164, 107, 101, 114, 104, 101, 116, 3, 89, 6, 113, 49, 13, 51, 107, 4, 110, 47, 0, 116, 195, 165, 116, 116, 3,
+			89, 47, 123, 47, 0, 112, 101, 108, 3, 89, 48, 110, 55, 0, 112, 101, 103, 108, 97, 3, 89, 48, 110, 81, 55, 35, 0, 112, 101, 103,
+			101, 108, 3, 89, 48, 110, 81, 111, 55, 0, 112, 97, 114, 97, 3, 89, 48, 122, 51, 35, 0, 107, 121, 112, 101, 3, 89, 49, 6, 35,
+			57, 48, 0, 107, 111, 108, 111, 114, 3, 89, 49, 126, 55, 123, 51, 0, 110, 101, 103, 108, 97, 3, 89, 50, 110, 81, 55, 35, 0, 108,
+			111, 103, 3, 89, 55, 6, 126, 81, 0, 106, 97, 99, 107, 3, 89, 57, 35, 49, 0, 118, 101, 114, 105, 103, 101, 3, 89, 84, 111, 51,
+			57, 111, 0, 118, 97, 114, 97, 3, 89, 84, 122, 51, 35, 0, 105, 111, 110, 105, 115, 116, 8, 3, 89, 108, 124, 50, 6, 109, 89, 47,
+			0, 101, 103, 108, 97, 3, 89, 110, 81, 55, 35, 0, 101, 103, 101, 108, 3, 89, 110, 81, 111, 55, 0, 195, 164, 103, 3, 89, 111, 57,
+			0, 101, 109, 101, 115, 116, 3, 89, 111, 65, 6, 111, 89, 47, 0, 101, 114, 118, 105, 99, 101, 3, 89, 118, 51, 84, 108, 89, 0, 99,
+			104, 3, 91, 0, 107, 106, 3, 97, 0, 4, 104, 8, 3, 127, 0, 106, 0, 107, 2, 101, 0, 107, 2, 105, 0, 107, 2, 121, 0, 107,
+			2, 195, 164, 0, 107, 2, 195, 182, 0, 116, 106, 0, 107, 195, 164, 114, 109, 3, 127, 6, 111, 51, 65, 0, 4, 105, 111, 2, 110, 3,
+			127, 6, 126, 0, 115, 105, 111, 2, 110, 0, 7, 6, 116, 0, 97, 115, 107, 3, 21, 0, 4, 3, 47, 0, 116, 0, 97, 108, 115, 121,
+			110, 116, 101, 115, 3, 47, 6, 122, 55, 89, 116, 50, 47, 4, 110, 89, 0, 97, 103, 105, 116, 3, 47, 6, 122, 81, 109, 47, 0, 116,
+			2, 17, 65, 3, 47, 12, 0, 97, 110, 103, 101, 110, 116, 3, 47, 35, 50, 57, 111, 50, 47, 0, 97, 98, 101, 108, 108, 3, 47, 35,
+			71, 6, 111, 55, 0, 101, 1, 17, 67, 10, 2, 32, 14, 128, 128, 130, 3, 47, 111, 0, 101, 107, 110, 105, 107, 3, 47, 111, 49, 50,
+			6, 108, 49, 0, 106, 3, 97, 0, 105, 2, 111, 110, 3, 127, 6, 0, 7, 6, 117, 0, 4, 1, 110, 105, 108, 2, 120, 3, 2, 120,
+			0, 2, 107, 116, 105, 0, 2, 110, 107, 17, 67, 0, 116, 109, 195, 164, 114, 107, 3, 6, 117, 47, 65, 13, 51, 49, 0, 112, 108, 111,
+			97, 100, 3, 21, 0, 4, 3, 117, 0, 1, 106, 2, 108, 0, 1, 106, 2, 110, 105, 0, 1, 106, 115, 2, 107, 0, 2, 116, 98, 0,
+			2, 116, 102, 0, 2, 116, 103, 0, 2, 116, 108, 0, 2, 116, 110, 0, 2, 116, 114, 0, 2, 116, 114, 0, 2, 116, 115, 0, 2, 116,
+			118, 0, 4, 1, 98, 2, 116, 105, 107, 3, 120, 0, 1, 116, 97, 100, 2, 109, 0, 1, 118, 2, 120, 0, 2, 17, 67, 17, 67, 0,
+			2, 110, 0, 2, 110, 103, 0, 1, 114, 2, 109, 32, 3, 120, 12, 0, 112, 112, 103, 101, 3, 120, 48, 57, 110, 0, 7, 6, 118, 0,
+			2, 118, 3, 0, 3, 84, 0, 97, 114, 97, 110, 100, 114, 97, 3, 84, 35, 51, 35, 50, 72, 51, 35, 0, 97, 108, 105, 3, 84, 35,
+			55, 109, 0, 101, 114, 107, 3, 84, 111, 51, 49, 0, 101, 114, 107, 116, 121, 103, 3, 84, 111, 51, 49, 47, 115, 81, 0, 97, 114, 97,
+			110, 3, 84, 122, 51, 35, 50, 0, 97, 114, 110, 3, 84, 122, 51, 50, 0, 7, 6, 119, 0, 4, 105, 110, 100, 111, 119, 3, 21, 0,
+			105, 114, 101, 0, 105, 115, 101, 0, 3, 84, 0, 7, 6, 120, 0, 2, 120, 3, 0, 3, 49, 89, 0, 7, 6, 121, 0, 1, 115, 2,
+			115, 3, 2, 116, 0, 4, 1, 116, 2, 100, 3, 6, 115, 0, 1, 116, 2, 103, 0, 4, 3, 115, 0, 1, 115, 2, 110, 115, 107, 97,
+			0, 2, 17, 67, 17, 67, 3, 116, 0, 7, 6, 122, 0, 122, 3, 88, 0, 3, 89, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3,
+			0, 4, 42, 42, 3, 0, 4, 45, 1, 45, 45, 3, 0, 46, 1, 46, 3, 0, 195, 169, 3, 6, 110, 0, 226, 130, 172, 3, 6, 111,
+			84, 51, 126, 0, 46, 2, 46, 3, 9, 0, 38, 3, 9, 6, 123, 49, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45,
+			1, 32, 17, 67, 2, 32, 15, 0, 42, 1, 42, 42, 2, 32, 3, 24, 0, 46, 3, 48, 6, 120, 68, 47, 0, 37, 3, 48, 51, 123,
+			89, 6, 111, 50, 47, 0, 43, 3, 48, 55, 120, 89, 0, 45, 8, 32, 2, 32, 15, 3, 65, 6, 108, 50, 120, 89, 0, 36, 3, 72,
+			6, 123, 55, 35, 51, 0, 47, 3, 89, 50, 6, 110, 72, 89, 47, 51, 111, 49, 0, 64, 3, 89, 50, 6, 122, 71, 111, 55, 122, 0,
+			42, 3, 127, 6, 113, 51, 50, 35, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts60 = FileInMemory_createWithData (9701, reinterpret_cast<const char *> (&espeakdata_dicts60_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/sv_dict", 
 			U"sv");
-		my addItem_move (espeakdata_dicts61.move());
+		Collection_addItem (me.peek(), espeakdata_dicts60.transfer());
 
-		static unsigned char espeakdata_dicts62_data[3030] = {
-			0, 4, 0, 0, 67, 10, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 56, 77, 49, 4, 36, 55, 83, 40, 50, 6, 35, 50, 36, 0,
+		static unsigned char espeakdata_dicts61_data[3005] = {
+			0, 4, 0, 0, 32, 10, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 56, 77, 49, 4, 36, 55, 83, 40, 50, 6, 35, 50, 36, 0,
 			0, 17, 4, 95, 56, 77, 50, 55, 6, 35, 49, 37, 50, 6, 35, 50, 36, 0, 0, 0, 0, 6, 65, 8, 71, 37, 0, 0, 0, 0,
-			0, 6, 65, 12, 89, 37, 0, 0, 0, 0, 0, 6, 65, 16, 72, 37, 0, 0, 0, 8, 197, 45, 84, 213, 16, 144, 8, 9, 197, 89,
-			145, 78, 100, 80, 72, 28, 0, 13, 4, 95, 100, 112, 116, 10, 50, 40, 49, 47, 35, 0, 0, 0, 0, 0, 0, 6, 65, 24, 36, 83,
-			0, 0, 0, 0, 0, 6, 65, 28, 79, 37, 0, 0, 0, 0, 0, 7, 65, 32, 36, 76, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			6, 65, 40, 79, 36, 0, 0, 0, 0, 0, 6, 65, 44, 49, 36, 0, 0, 0, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0,
-			7, 65, 52, 36, 65, 0, 49, 4, 193, 52, 76, 0, 0, 0, 0, 6, 195, 100, 86, 69, 76, 6, 65, 56, 36, 50, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 65, 64, 48, 37, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 40, 0, 0, 0, 0, 0, 6, 195, 56, 20,
-			201, 76, 6, 65, 72, 35, 51, 0, 0, 0, 0, 7, 196, 36, 160, 80, 60, 8, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0, 0, 6,
-			65, 80, 47, 37, 0, 0, 0, 6, 195, 92, 19, 192, 76, 0, 0, 4, 193, 84, 76, 0, 0, 0, 0, 6, 65, 88, 84, 37, 0, 0,
-			0, 0, 0, 11, 65, 92, 72, 35, 71, 35, 55, 57, 40, 0, 0, 0, 0, 0, 17, 4, 95, 49, 77, 49, 4, 36, 55, 83, 40, 65,
-			6, 39, 79, 35, 0, 7, 65, 96, 36, 49, 89, 0, 0, 17, 4, 95, 49, 77, 50, 55, 6, 35, 49, 37, 65, 6, 39, 79, 35, 0,
-			0, 0, 0, 7, 65, 100, 57, 35, 37, 0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7,
-			196, 4, 225, 193, 60, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 32, 17, 9, 72, 8, 0, 6, 194, 5, 80, 72, 8, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 44, 148, 200, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 95, 50, 77, 49, 4, 36, 55, 83, 40, 23, 65, 71, 6,
-			37, 55, 37, 0, 0, 19, 4, 95, 50, 77, 50, 55, 6, 35, 49, 37, 23, 65, 71, 6, 37, 55, 37, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 92, 19, 1, 44, 147, 137, 8, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 100, 16, 78, 36, 8, 0, 0, 0, 0, 6, 194,
-			8, 144, 72, 28, 0, 0, 0, 0, 0, 6, 195, 32, 146, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 51, 77,
-			49, 4, 36, 55, 83, 40, 47, 6, 35, 47, 40, 0, 0, 17, 4, 95, 51, 77, 50, 55, 6, 35, 49, 37, 47, 6, 35, 47, 40, 0,
-			0, 0, 7, 196, 45, 112, 76, 60, 8, 0, 0, 0, 9, 197, 44, 21, 9, 44, 16, 72, 28, 0, 0, 0, 0, 9, 197, 53, 113, 78,
-			100, 80, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
-			195, 53, 112, 64, 72, 28, 0, 0, 9, 197, 45, 112, 77, 8, 16, 72, 8, 6, 195, 32, 147, 15, 76, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 194, 4, 240, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198,
-			104, 19, 154, 36, 32, 82, 67, 0, 0, 0, 0, 0, 0, 0, 9, 197, 12, 129, 78, 100, 80, 72, 28, 0, 0, 0, 0, 0, 0, 17,
-			67, 41, 85, 64, 79, 4, 40, 12, 57, 35, 0, 8, 81, 121, 97, 32, 8, 197, 45, 112, 86, 100, 240, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 45, 112, 79, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 45, 112, 89, 20, 8, 0, 0,
-			0, 0, 0, 0, 0, 0, 9, 133, 49, 101, 110, 121, 101, 72, 28, 0, 0, 0, 6, 195, 92, 19, 1, 8, 7, 195, 8, 147, 1, 72,
-			8, 0, 0, 0, 6, 194, 24, 144, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 53, 77, 49, 4,
-			36, 55, 83, 40, 47, 6, 35, 50, 39, 0, 0, 0, 0, 17, 4, 95, 53, 77, 50, 55, 6, 35, 49, 37, 47, 6, 35, 50, 39, 0,
-			0, 0, 8, 196, 8, 16, 68, 4, 72, 28, 0, 0, 0, 0, 7, 196, 4, 145, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 87, 36, 55, 36, 87, 6, 37,
-			50, 37, 0, 0, 10, 3, 95, 48, 67, 65, 6, 37, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 67, 65, 4, 37,
-			35, 65, 6, 39, 79, 35, 0, 0, 0, 0, 0, 0, 0, 6, 194, 48, 16, 72, 28, 0, 0, 17, 3, 95, 50, 67, 65, 4, 37, 35,
-			23, 65, 71, 6, 37, 55, 37, 0, 0, 0, 0, 7, 195, 8, 19, 9, 72, 8, 0, 0, 0, 0, 0, 15, 3, 95, 51, 67, 65, 4,
-			37, 35, 47, 6, 35, 47, 40, 0, 0, 0, 0, 17, 4, 95, 54, 77, 49, 4, 36, 55, 83, 40, 89, 6, 37, 47, 35, 0, 0, 0,
-			0, 17, 4, 95, 54, 77, 50, 55, 6, 35, 49, 37, 89, 6, 37, 47, 35, 0, 0, 13, 3, 95, 55, 88, 89, 35, 71, 6, 37, 50,
-			37, 0, 0, 14, 3, 95, 52, 67, 65, 4, 37, 35, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 53, 67,
-			65, 4, 37, 35, 47, 6, 35, 50, 39, 0, 0, 0, 0, 7, 195, 32, 21, 1, 72, 8, 0, 0, 0, 0, 11, 3, 95, 49, 88, 49,
-			6, 40, 65, 37, 0, 0, 15, 3, 95, 54, 67, 65, 4, 37, 35, 89, 6, 37, 47, 35, 0, 0, 0, 0, 0, 0, 0, 5, 194, 45,
-			80, 76, 0, 14, 3, 95, 50, 88, 37, 91, 37, 51, 6, 37, 50, 37, 0, 0, 15, 3, 95, 55, 67, 65, 4, 37, 35, 89, 6, 35,
-			71, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 80, 20, 129, 4, 76, 8, 15, 3, 95, 56, 67, 65, 4, 37, 35, 50, 6,
-			35, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 52, 88, 35, 51, 39, 71, 35, 6, 37, 50, 37, 0, 0, 15, 3, 95,
-			57, 67, 65, 4, 37, 35, 47, 6, 37, 89, 35, 0, 0, 0, 0, 7, 195, 45, 85, 193, 72, 8, 0, 0, 0, 6, 194, 56, 16, 72,
-			8, 0, 14, 3, 95, 53, 88, 107, 35, 65, 89, 6, 37, 50, 37, 0, 0, 0, 7, 195, 33, 82, 207, 72, 28, 0, 0, 0, 10, 68,
-			80, 19, 135, 84, 91, 40, 0, 28, 0, 0, 0, 13, 3, 95, 54, 88, 89, 37, 47, 6, 37, 50, 37, 0, 0, 0, 0, 0, 17, 4,
-			95, 55, 77, 49, 4, 36, 55, 83, 40, 89, 6, 35, 71, 35, 0, 0, 0, 0, 17, 4, 95, 55, 77, 50, 55, 6, 35, 49, 37, 89,
-			6, 35, 71, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 88, 87, 36, 65, 35, 50, 6, 37, 50, 37, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 47, 37, 89, 6, 37, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 8, 197, 64, 19, 129, 64, 240, 8, 0, 0, 0, 0, 0, 8, 197, 36, 225, 193, 92, 16, 8, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 9, 198, 8, 17, 1, 48, 22, 65, 8, 0, 6, 194, 64, 16, 72, 28, 6, 194, 64, 16, 72, 28, 5,
-			194, 48, 144, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 147, 128, 72, 28, 0, 16, 4, 95, 48, 77, 52, 23, 71, 37,
-			55, 37, 6, 39, 50, 37, 0, 0, 8, 197, 45, 112, 67, 32, 240, 8, 0, 0, 8, 197, 48, 18, 201, 56, 144, 8, 8, 197, 57, 146,
-			78, 100, 144, 76, 16, 4, 95, 48, 77, 51, 23, 65, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 12, 4, 95, 48, 77, 49, 6, 36,
-			55, 83, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 40, 20, 15, 8, 0, 0, 0, 0, 0, 0, 0, 8, 196, 104, 83, 153, 20, 72, 28, 8,
-			196, 100, 83, 153, 20, 72, 28, 8, 196, 92, 83, 153, 20, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 56, 144, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 57, 77, 50, 55, 6, 35, 49, 37, 47, 6, 37, 89, 35, 0, 0, 0, 0,
-			17, 4, 95, 57, 77, 49, 4, 36, 55, 83, 40, 47, 6, 37, 89, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 52, 147, 73,
-			76, 0, 0, 0, 9, 198, 45, 80, 78, 104, 144, 64, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 5, 194, 81, 80, 76, 0, 0, 0, 0, 7, 196, 56, 19, 153, 36, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197,
-			64, 19, 79, 40, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 92, 16, 72, 28, 5, 194, 76, 144, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36, 160, 80, 60, 181, 87, 4, 8, 0, 0, 7, 195, 89, 144,
-			64, 72, 28, 0, 0, 0, 0, 22, 67, 45, 112, 64, 49, 58, 35, 15, 49, 4, 40, 58, 35, 0, 8, 81, 107, 117, 119, 97, 32, 6,
-			195, 45, 112, 64, 72, 7, 195, 45, 112, 64, 72, 28, 0, 0, 0, 0, 7, 195, 80, 242, 193, 72, 28, 0, 0, 0, 0, 6, 195, 104,
-			18, 197, 76, 6, 195, 100, 18, 197, 76, 0, 0, 0, 19, 70, 52, 19, 148, 36, 178, 64, 65, 35, 23, 50, 47, 6, 37, 49, 37, 0,
-			77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 52, 77, 50, 55, 6, 35, 49, 37, 6, 42, 50, 36, 0, 0,
-			16, 4, 95, 52, 77, 49, 4, 36, 55, 83, 40, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 47, 6,
-			35, 47, 40, 0, 0, 12, 2, 95, 50, 23, 65, 71, 6, 37, 55, 37, 0, 0, 10, 2, 95, 49, 65, 6, 39, 79, 35, 0, 0, 12,
-			2, 95, 48, 89, 37, 83, 6, 40, 51, 37, 0, 0, 10, 2, 95, 55, 89, 6, 35, 71, 35, 0, 0, 10, 2, 95, 54, 89, 6, 37,
-			47, 35, 0, 0, 10, 2, 95, 53, 47, 6, 35, 50, 39, 0, 0, 9, 2, 95, 52, 6, 42, 50, 36, 0, 0, 7, 195, 44, 19, 65,
-			76, 8, 8, 197, 52, 19, 9, 64, 240, 11, 0, 0, 10, 2, 95, 57, 47, 6, 37, 89, 35, 0, 0, 6, 194, 100, 16, 72, 28, 10,
-			2, 95, 56, 50, 6, 35, 50, 36, 0, 0, 0, 0, 0, 0, 6, 195, 56, 19, 73, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 195, 36, 192, 64, 8, 7, 195, 12, 128, 64, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 92,
-			18, 197, 76, 0, 0, 0, 6, 194, 104, 16, 72, 28, 0, 0, 0, 0, 0, 7, 195, 36, 194, 64, 76, 8, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 195, 56, 19, 192, 76, 0, 0, 0, 0, 0, 0, 7, 2, 95, 109, 36, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 6, 195, 76, 148, 201, 76, 0, 0, 0, 0, 0, 0, 11, 5, 95, 48, 97, 110, 100, 23, 50, 35, 0, 0, 5,
-			194, 101, 80, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 64, 147,
-			132, 36, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 199, 36, 194, 75, 92, 19, 66, 4, 8, 0, 0, 0, 0,
-			0, 0, 0, 7, 195, 8, 20, 201, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 21, 197, 76, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 4, 208, 64, 72, 8, 0,
-			0, 0, 7, 196, 37, 112, 80, 60, 8, 0, 0, 0, 0, 0, 6, 195, 92, 85, 197, 76, 0, 0, 0, 5, 194, 104, 144, 72, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 22, 69, 76, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 3, 35, 0, 7, 6, 98, 0, 3, 71, 0,
-			7, 6, 99, 0, 3, 49, 0, 104, 3, 76, 0, 7, 6, 100, 0, 3, 72, 0, 104, 3, 86, 0, 7, 6, 101, 0, 3, 36, 0, 7,
-			6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 104, 3, 100, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37,
-			0, 7, 6, 106, 0, 4, 3, 79, 0, 2, 119, 0, 7, 6, 107, 0, 1, 25, 2, 21, 21, 3, 23, 49, 0, 3, 49, 0, 104, 3,
-			101, 0, 7, 6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 4, 1, 25, 2, 21, 21, 3, 23, 65, 0, 1, 25, 2, 98, 21, 21, 0,
-			1, 25, 2, 118, 21, 0, 1, 25, 2, 119, 21, 21, 0, 4, 1, 25, 2, 17, 67, 3, 41, 0, 8, 0, 4, 3, 65, 0, 2, 17,
-			65, 0, 7, 6, 110, 0, 4, 2, 99, 104, 3, 42, 0, 8, 0, 4, 8, 2, 107, 3, 43, 0, 8, 2, 107, 21, 21, 0, 4, 3,
-			50, 0, 2, 17, 65, 0, 2, 21, 21, 0, 4, 2, 106, 3, 67, 0, 121, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 103, 2, 39,
-			0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0, 1, 17, 67, 2,
-			17, 65, 3, 14, 16, 0, 4, 3, 51, 0, 1, 17, 65, 2, 17, 65, 0, 114, 3, 51, 51, 0, 7, 6, 115, 0, 3, 89, 0, 104,
-			3, 91, 0, 7, 6, 116, 0, 3, 47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 3, 40, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6,
-			119, 0, 4, 1, 106, 3, 2, 40, 0, 1, 121, 110, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 57,
-			0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3, 0, 42, 42, 3, 0, 42, 1, 42, 42, 2, 32, 3,
-			24, 0, 37, 3, 35, 89, 37, 55, 37, 65, 37, 35, 0, 42, 3, 67, 39, 47, 35, 0, 36, 3, 72, 39, 55, 35, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts62 = FileInMemory_createWithData (3029, reinterpret_cast<const char *> (&espeakdata_dicts62_data), 
-			U"espeak-1.48.04-source/espeak-data/sw_dict", 
+			0, 6, 65, 12, 89, 37, 0, 0, 0, 0, 7, 196, 100, 16, 78, 36, 8, 0, 6, 65, 16, 72, 37, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 65, 24, 36, 83, 0, 0, 0, 0, 0, 9, 197, 12, 129, 78, 100, 80, 72, 28, 6, 65, 28, 79, 37, 0, 0, 0, 0,
+			0, 7, 65, 32, 36, 76, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 40, 79, 36, 0, 0, 0, 0, 0, 6, 65, 44, 49,
+			36, 0, 0, 0, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 7, 65, 52, 36, 65, 0, 14, 4, 193, 52, 76, 0, 0, 0,
+			0, 11, 5, 95, 48, 1, 14, 4, 23, 50, 35, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196, 104, 83, 153,
+			20, 72, 28, 8, 196, 100, 83, 153, 20, 72, 28, 8, 196, 92, 83, 153, 20, 72, 28, 0, 6, 65, 64, 48, 37, 0, 0, 0, 0, 0,
+			7, 65, 68, 49, 57, 40, 0, 0, 0, 0, 0, 6, 65, 72, 35, 51, 0, 0, 0, 0, 0, 6, 65, 76, 36, 89, 0, 0, 0, 0,
+			0, 6, 65, 80, 47, 37, 0, 0, 0, 6, 195, 92, 19, 192, 76, 0, 0, 4, 193, 84, 76, 0, 0, 0, 7, 195, 80, 242, 193, 72,
+			28, 0, 6, 65, 88, 84, 37, 0, 0, 0, 0, 0, 11, 65, 92, 72, 35, 71, 35, 55, 57, 40, 0, 0, 0, 0, 6, 195, 92, 18,
+			197, 76, 0, 17, 4, 95, 49, 77, 49, 4, 36, 55, 83, 40, 65, 6, 39, 79, 35, 0, 7, 65, 96, 36, 49, 89, 0, 0, 17, 4,
+			95, 49, 77, 50, 55, 6, 35, 49, 37, 65, 6, 39, 79, 35, 0, 0, 0, 6, 195, 76, 148, 201, 76, 0, 7, 65, 100, 57, 35, 37,
+			0, 0, 0, 0, 0, 8, 65, 104, 88, 36, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 194, 5, 80, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 32, 17, 9, 72, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 32, 147, 15, 76, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 112, 86, 100,
+			240, 8, 0, 0, 0, 0, 19, 4, 95, 50, 77, 49, 4, 36, 55, 83, 40, 23, 65, 71, 6, 37, 55, 37, 0, 0, 19, 4, 95, 50,
+			77, 50, 55, 6, 35, 49, 37, 23, 65, 71, 6, 37, 55, 37, 0, 0, 0, 7, 196, 4, 145, 8, 4, 8, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 195, 32, 21, 1, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 8, 144, 72, 28, 0, 0, 0, 0, 0, 6, 195,
+			32, 146, 64, 72, 0, 13, 4, 95, 4, 16, 20, 10, 50, 40, 49, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95,
+			51, 77, 49, 4, 36, 55, 83, 40, 47, 6, 35, 47, 40, 0, 0, 17, 4, 95, 51, 77, 50, 55, 6, 35, 49, 37, 47, 6, 35, 47,
+			40, 0, 0, 0, 0, 0, 0, 0, 8, 196, 64, 147, 132, 36, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 37, 112, 80, 60,
+			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 197, 89, 145, 78, 100, 80, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 195, 53, 112, 64, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 45, 112, 76, 60, 8, 0, 0, 6,
+			194, 4, 240, 72, 8, 0, 0, 0, 9, 197, 53, 113, 78, 100, 80, 72, 28, 9, 197, 44, 21, 9, 44, 16, 72, 28, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 92, 19, 1, 44, 147, 137, 8, 0, 0, 0, 0, 0,
+			0, 17, 67, 41, 85, 64, 79, 4, 40, 12, 57, 108, 0, 8, 81, 121, 97, 32, 0, 8, 196, 80, 20, 129, 4, 76, 8, 10, 68, 80,
+			19, 135, 84, 91, 40, 0, 28, 0, 0, 0, 0, 0, 8, 197, 64, 19, 129, 64, 240, 8, 0, 0, 0, 0, 8, 197, 48, 18, 201, 56,
+			144, 8, 8, 197, 36, 225, 193, 92, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 9, 133, 49, 5, 14, 25, 5, 72, 28, 7, 196, 56, 19, 153, 36, 76, 0, 0, 6, 194, 24, 144, 72, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 53, 77, 49, 4, 36, 55, 83, 40, 47, 6, 35, 50, 39, 0, 0, 0, 0,
+			17, 4, 95, 53, 77, 50, 55, 6, 35, 49, 37, 47, 6, 35, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 87, 36, 55, 36, 87,
+			6, 37, 50, 37, 0, 0, 10, 3, 95, 48, 67, 65, 6, 37, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 67, 65,
+			4, 37, 35, 65, 6, 39, 79, 35, 0, 0, 0, 0, 0, 0, 0, 6, 194, 48, 16, 72, 28, 0, 0, 17, 3, 95, 50, 67, 65, 4,
+			37, 35, 23, 65, 71, 6, 37, 55, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 67, 65, 4, 37, 35, 47, 6, 35,
+			47, 40, 0, 0, 0, 0, 17, 4, 95, 54, 77, 49, 4, 36, 55, 83, 40, 89, 6, 37, 47, 35, 0, 0, 7, 196, 45, 112, 89, 20,
+			8, 0, 0, 17, 4, 95, 54, 77, 50, 55, 6, 35, 49, 37, 89, 6, 37, 47, 35, 0, 0, 13, 3, 95, 55, 88, 89, 35, 71, 6,
+			37, 50, 37, 0, 0, 14, 3, 95, 52, 67, 65, 4, 37, 35, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95,
+			53, 67, 65, 4, 37, 35, 47, 6, 35, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 49, 88, 49, 6, 40, 65, 37, 0,
+			0, 15, 3, 95, 54, 67, 65, 4, 37, 35, 89, 6, 37, 47, 35, 0, 0, 0, 0, 0, 0, 0, 5, 194, 45, 80, 76, 0, 14, 3,
+			95, 50, 88, 37, 91, 37, 51, 6, 37, 50, 37, 0, 0, 15, 3, 95, 55, 67, 65, 4, 37, 35, 89, 6, 35, 71, 35, 0, 0, 0,
+			0, 0, 0, 0, 6, 195, 52, 147, 73, 76, 0, 0, 15, 3, 95, 56, 67, 65, 4, 37, 35, 50, 6, 35, 50, 36, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 3, 95, 52, 88, 35, 51, 39, 71, 35, 6, 37, 50, 37, 0, 0, 15, 3, 95, 57, 67, 65, 4, 37, 35, 47,
+			6, 37, 89, 35, 0, 0, 0, 0, 0, 0, 0, 6, 194, 56, 16, 72, 8, 0, 14, 3, 95, 53, 88, 107, 35, 65, 89, 6, 37, 50,
+			37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 89, 37, 47, 6, 37, 50, 37, 0, 0, 0, 0, 0, 17, 4, 95,
+			55, 77, 49, 4, 36, 55, 83, 40, 89, 6, 35, 71, 35, 0, 0, 0, 0, 17, 4, 95, 55, 77, 50, 55, 6, 35, 49, 37, 89, 6,
+			35, 71, 35, 0, 0, 10, 199, 36, 160, 80, 60, 181, 87, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 56, 88, 87, 36,
+			65, 35, 50, 6, 37, 50, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88, 47, 37, 89, 6, 37, 50, 37, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 194, 64, 16, 72, 28, 6, 194, 64, 16, 72, 28, 5, 194, 48, 144, 72, 0, 0, 0, 0, 0, 0, 0, 9, 197, 45, 112, 77,
+			8, 16, 72, 8, 0, 0, 7, 195, 52, 147, 128, 72, 28, 0, 16, 4, 95, 48, 77, 52, 23, 71, 37, 55, 37, 6, 39, 50, 37, 0,
+			0, 0, 0, 16, 4, 95, 48, 77, 51, 23, 65, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 12, 4, 95, 48, 77, 49, 6, 36, 55,
+			83, 40, 0, 0, 0, 0, 8, 196, 8, 16, 68, 4, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			5, 194, 56, 144, 76, 0, 0, 0, 0, 0, 0, 6, 195, 100, 18, 197, 76, 0, 0, 0, 0, 0, 0, 17, 4, 95, 57, 77, 50, 55,
+			6, 35, 49, 37, 47, 6, 37, 89, 35, 0, 0, 0, 0, 17, 4, 95, 57, 77, 49, 4, 36, 55, 83, 40, 47, 6, 37, 89, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 92, 85, 197, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 197, 45, 84, 213, 16, 144, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 4, 225, 193, 60, 8, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 147, 1, 72,
+			8, 0, 0, 0, 0, 7, 195, 8, 19, 9, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 45, 85, 193, 72,
+			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 40, 20, 15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+			198, 45, 80, 78, 104, 144, 64, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 56, 19,
+			73, 76, 0, 0, 5, 194, 81, 80, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 194, 92, 16, 72, 28, 5, 194, 76, 144, 72, 0, 0, 6, 195, 56, 22, 69, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 196, 36, 160, 80, 60, 8, 0, 0, 0, 0, 7, 195, 89, 144, 64, 72, 28, 0, 0, 7, 2, 95, 13, 36, 65,
+			0, 0, 0, 22, 67, 45, 112, 64, 49, 58, 35, 15, 49, 4, 40, 58, 108, 0, 8, 81, 107, 117, 119, 97, 32, 7, 195, 45, 112, 64,
+			72, 28, 7, 195, 45, 112, 64, 72, 28, 0, 7, 196, 44, 148, 200, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 6, 195, 45, 112, 79, 8, 0, 0, 0, 0, 0, 0, 16, 4, 95, 52, 77, 50, 55, 6, 35, 49, 37, 6, 42, 50, 36,
+			0, 0, 16, 4, 95, 52, 77, 49, 4, 36, 55, 83, 40, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51,
+			47, 6, 35, 47, 40, 0, 0, 12, 2, 95, 50, 23, 65, 71, 6, 37, 55, 37, 0, 0, 10, 2, 95, 49, 65, 6, 39, 79, 35, 0,
+			0, 12, 2, 95, 48, 89, 37, 83, 6, 40, 51, 37, 0, 0, 10, 2, 95, 55, 89, 6, 35, 71, 35, 0, 0, 10, 2, 95, 54, 89,
+			6, 37, 47, 35, 0, 0, 10, 2, 95, 53, 47, 6, 35, 50, 39, 0, 0, 9, 2, 95, 52, 6, 42, 50, 36, 0, 0, 0, 0, 10,
+			2, 95, 57, 47, 6, 37, 89, 35, 0, 0, 6, 194, 100, 16, 72, 28, 10, 2, 95, 56, 50, 6, 35, 50, 36, 0, 0, 0, 0, 8,
+			197, 57, 146, 78, 100, 144, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 36, 192, 64,
+			8, 7, 195, 12, 128, 64, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 104, 16, 72, 28, 0, 0, 0, 8, 197,
+			64, 19, 79, 40, 16, 8, 0, 6, 195, 104, 18, 197, 76, 0, 7, 195, 36, 194, 64, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 56, 19, 192, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 20, 201, 76, 8, 6, 195, 56, 21, 197, 76, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 101, 80, 72, 0, 0, 0, 0, 6, 195, 56, 20, 201, 76,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 195, 92, 19, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 33, 82, 207, 72, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 45, 112, 67, 32, 240, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 195, 4, 208, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 104, 144, 72, 0, 0, 0,
+			0, 0, 10, 199, 36, 194, 75, 92, 19, 66, 4, 8, 0, 0, 9, 198, 8, 17, 1, 48, 22, 65, 8, 0, 7, 195, 44, 19, 65, 76,
+			8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 100, 86, 69, 76, 0, 0, 0, 0, 0, 0, 0, 6, 97, 0, 3, 35, 0, 97, 3, 35, 12, 0, 7, 6, 98, 0, 3, 71, 0,
+			7, 6, 99, 0, 3, 49, 0, 104, 3, 76, 0, 7, 6, 100, 0, 3, 72, 0, 104, 3, 86, 0, 7, 6, 101, 0, 3, 36, 0, 101,
+			3, 36, 12, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 104, 3, 100, 0, 7, 6, 104, 0, 3, 107, 0, 7,
+			6, 105, 0, 3, 37, 0, 105, 3, 37, 12, 0, 7, 6, 106, 0, 3, 79, 0, 7, 6, 107, 0, 3, 49, 0, 104, 3, 101, 0, 7,
+			6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 4, 1, 25, 2, 21, 21, 3, 23, 65, 0, 1, 25, 2, 98, 21, 21, 0, 1, 25, 2,
+			118, 21, 21, 0, 1, 25, 2, 119, 21, 21, 0, 4, 1, 25, 2, 17, 67, 3, 41, 0, 8, 0, 4, 3, 65, 0, 2, 17, 65, 0,
+			7, 6, 110, 0, 8, 3, 42, 0, 4, 8, 2, 103, 3, 43, 0, 8, 2, 103, 21, 21, 0, 8, 2, 107, 0, 8, 2, 107, 21, 21,
+			0, 4, 3, 50, 0, 2, 17, 65, 0, 2, 21, 21, 0, 4, 2, 99, 104, 3, 67, 0, 2, 106, 0, 121, 0, 4, 2, 103, 3, 68,
+			0, 2, 107, 0, 103, 39, 0, 7, 6, 111, 0, 3, 39, 0, 111, 3, 39, 12, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0,
+			3, 49, 0, 7, 6, 114, 0, 1, 17, 67, 2, 17, 65, 3, 14, 16, 0, 4, 3, 51, 0, 1, 17, 65, 2, 17, 65, 0, 114, 3,
+			51, 51, 0, 7, 6, 115, 0, 3, 89, 0, 104, 3, 91, 0, 7, 6, 116, 0, 3, 47, 0, 104, 3, 87, 0, 7, 6, 117, 0, 3,
+			40, 0, 117, 3, 40, 12, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 7,
+			6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42, 3, 0, 42, 42, 3, 0, 42, 1,
+			42, 42, 2, 32, 3, 24, 0, 37, 3, 35, 89, 37, 55, 37, 65, 37, 35, 0, 42, 3, 67, 39, 47, 35, 0, 36, 3, 72, 39, 55,
+			35, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts61 = FileInMemory_createWithData (3004, reinterpret_cast<const char *> (&espeakdata_dicts61_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/sw_dict", 
 			U"sw");
-		my addItem_move (espeakdata_dicts62.move());
+		Collection_addItem (me.peek(), espeakdata_dicts61.transfer());
 
-		static unsigned char espeakdata_dicts63_data[110758] = {
-			0, 4, 0, 0, 57, 40, 0, 0, 9, 134, 224, 174, 164, 224, 174, 169, 15, 0, 18, 143, 224, 174, 154, 224, 174, 176, 224, 175, 141, 224,
-			174, 154, 224, 175, 141, 15, 0, 0, 0, 0, 7, 65, 4, 114, 57, 0, 49, 0, 15, 140, 224, 174, 170, 224, 175, 129, 224, 174, 184, 224,
-			175, 129, 15, 20, 12, 95, 35, 45, 224, 174, 181, 224, 174, 164, 224, 175, 129, 118, 84, 109, 72, 122, 0, 0, 24, 149, 224, 174, 154, 224,
-			174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 141, 15, 9, 134, 224, 174, 164, 224, 174, 181, 15, 0, 21, 146,
-			224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 174, 224, 175, 141, 15, 0, 6, 65, 8, 71, 112, 0, 0, 0, 0, 0,
-			21, 6, 224, 174, 170, 224, 174, 191, 71, 37, 57, 114, 0, 24, 82, 46, 32, 224, 174, 143, 32, 6, 65, 12, 89, 112, 0, 0, 27, 152,
-			224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 174, 190, 224, 174, 175, 224, 175, 141, 15, 0, 0, 0, 6, 65,
-			16, 72, 112, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 15, 15, 140, 224, 174, 170, 224, 175, 139, 224,
-			174, 169, 224, 174, 191, 15, 9, 134, 224, 174, 170, 224, 174, 181, 15, 11, 6, 224, 174, 178, 224, 175, 141, 37, 55, 0, 0, 13, 4, 95,
-			100, 112, 116, 10, 48, 40, 62, 62, 37, 0, 0, 18, 143, 224, 174, 170, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 15, 5,
-			65, 20, 112, 0, 0, 12, 137, 224, 174, 149, 224, 174, 190, 224, 174, 169, 15, 0, 0, 13, 6, 224, 174, 170, 224, 174, 170, 48, 109, 48,
-			109, 0, 0, 15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 175, 141, 15, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65,
-			28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 11, 1, 33, 84, 37, 57, 109, 48, 48, 122, 0, 0, 0, 7, 1,
-			35, 38, 36, 66, 0, 0, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 154, 224,
-			175, 141, 15, 7, 65, 36, 118, 57, 0, 49, 0, 13, 1, 37, 84, 37, 92, 122, 49, 49, 118, 140, 122, 0, 0, 10, 1, 38, 65, 109,
-			139, 51, 122, 65, 0, 0, 30, 155, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 224,
-			174, 190, 224, 174, 169, 15, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 12, 1, 42, 48, 36, 34, 122, 49, 49, 109, 55, 0, 0, 10,
-			1, 43, 49, 123, 139, 139, 109, 55, 0, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 0, 9, 1, 47, 89, 118, 57, 84, 122, 0, 0,
-			6, 65, 48, 116, 55, 0, 0, 15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 174, 190, 15, 0, 15, 140, 224, 174, 170, 224, 175,
-			139, 224, 174, 149, 224, 174, 191, 15, 0, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 33, 158, 224, 174, 170, 224, 174, 190, 224, 174, 164,
-			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 15, 0, 6, 65, 56, 116, 50, 0, 0,
-			0, 0, 0, 10, 1, 60, 49, 40, 51, 134, 84, 122, 0, 5, 65, 60, 119, 0, 0, 9, 1, 61, 89, 109, 65, 109, 65, 0, 0, 10,
-			1, 62, 65, 37, 81, 122, 72, 37, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57, 123, 0, 0, 0,
-			15, 140, 224, 174, 149, 224, 175, 139, 224, 174, 178, 224, 174, 191, 15, 0, 0, 6, 65, 72, 118, 51, 0, 0, 15, 9, 224, 174, 149, 224,
-			174, 170, 224, 175, 141, 49, 109, 48, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 190, 224, 174, 159, 224, 175, 141, 15, 15, 140, 224,
-			174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 15, 18, 12, 224, 174, 170, 224, 175, 128, 224, 174, 170, 224, 175, 141, 71, 112, 48, 0,
-			6, 65, 76, 116, 89, 0, 0, 0, 0, 0, 6, 65, 80, 25, 112, 0, 0, 0, 11, 6, 224, 174, 185, 224, 175, 141, 37, 99, 0, 0,
-			0, 6, 65, 84, 57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 19, 11, 95, 35, 224, 174, 181, 224, 174, 164,
-			224, 175, 129, 118, 84, 109, 72, 122, 0, 0, 15, 1, 92, 48, 6, 37, 50, 15, 89, 4, 118, 57, 84, 122, 0, 11, 65, 92, 72, 109,
-			71, 109, 55, 57, 123, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 175, 135, 224, 174, 149, 224, 174, 174, 224, 175, 141, 15, 18, 143, 224,
-			174, 170, 224, 174, 190, 224, 174, 177, 224, 174, 174, 224, 175, 141, 15, 23, 15, 95, 35, 45, 224, 174, 134, 224, 174, 181, 224, 174, 164, 224,
-			175, 129, 118, 84, 109, 72, 122, 0, 0, 7, 65, 96, 116, 49, 89, 0, 0, 18, 4, 95, 49, 77, 50, 39, 34, 122, 55, 109, 140, 76,
-			109, 47, 47, 122, 0, 0, 21, 146, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 15, 15, 4, 95,
-			49, 77, 51, 39, 34, 122, 49, 119, 140, 37, 114, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0, 15, 140, 224, 174, 149,
-			224, 174, 191, 224, 174, 159, 224, 175, 129, 15, 7, 65, 104, 88, 116, 72, 0, 0, 0, 11, 67, 21, 84, 128, 57, 123, 34, 119, 88, 0,
-			0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 163, 224, 175, 141, 15, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175,
-			129, 15, 15, 140, 224, 174, 170, 224, 175, 128, 224, 174, 154, 224, 175, 141, 15, 0, 0, 0, 0, 0, 0, 11, 6, 224, 174, 180, 224, 175,
-			141, 37, 92, 0, 0, 12, 137, 224, 174, 164, 224, 174, 191, 224, 174, 159, 15, 0, 0, 21, 146, 224, 174, 164, 224, 174, 159, 224, 175, 141,
-			224, 174, 154, 224, 174, 163, 224, 175, 136, 15, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 175, 141, 15, 15, 140,
-			224, 174, 170, 224, 174, 149, 224, 174, 164, 224, 175, 141, 15, 0, 0, 24, 67, 5, 81, 0, 39, 89, 47, 34, 6, 36, 113, 55, 113, 109,
-			50, 15, 72, 6, 39, 55, 109, 88, 0, 0, 0, 12, 1, 124, 89, 36, 68, 81, 122, 47, 47, 122, 0, 0, 0, 13, 4, 95, 54, 48,
-			111, 35, 51, 122, 71, 109, 72, 0, 0, 0, 0, 30, 21, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174,
-			176, 224, 175, 141, 48, 34, 109, 89, 118, 34, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 175, 129, 224, 174, 154, 224,
-			175, 129, 15, 0, 0, 0, 30, 155, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 177, 224, 175, 129, 15, 0, 21, 146, 224, 174, 170, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 175, 15, 0, 0,
-			21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 15, 0, 12, 137, 224, 174, 149, 224, 174, 164,
-			224, 174, 191, 15, 11, 4, 95, 49, 67, 48, 50, 123, 51, 122, 0, 0, 0, 0, 0, 0, 18, 143, 224, 174, 164, 224, 175, 135, 224, 174,
-			181, 224, 174, 164, 224, 174, 190, 15, 0, 0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 15, 0, 21, 146, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 15, 0, 0, 24, 149, 224,
-			174, 170, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 169, 224, 174, 191, 15, 0, 0, 0, 0, 0, 0, 0, 20, 67,
-			36, 228, 128, 6, 113, 50, 72, 113, 109, 50, 15, 34, 6, 123, 48, 112, 88, 0, 0, 0, 0, 15, 140, 224, 174, 154, 224, 174, 190, 224,
-			174, 175, 224, 174, 190, 15, 12, 137, 224, 174, 164, 224, 174, 191, 224, 174, 169, 15, 0, 15, 140, 224, 174, 149, 224, 175, 139, 224, 174, 170,
-			224, 174, 191, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 190, 15,
-			15, 140, 224, 174, 170, 224, 174, 159, 224, 174, 181, 224, 174, 190, 15, 0, 0, 0, 0, 18, 143, 224, 174, 164, 224, 174, 176, 224, 174, 190,
-			224, 174, 181, 224, 174, 191, 15, 0, 10, 4, 95, 49, 67, 111, 50, 123, 51, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 129, 224, 174,
-			149, 224, 174, 190, 224, 174, 176, 224, 174, 191, 15, 0, 0, 0, 0, 0, 0, 14, 4, 95, 55, 48, 111, 38, 36, 92, 122, 71, 109, 72,
-			0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 129, 15, 0, 0, 11, 6, 224, 174, 183, 224,
-			175, 141, 37, 93, 0, 0, 0, 0, 0, 9, 134, 224, 174, 149, 224, 174, 149, 15, 11, 6, 224, 174, 181, 224, 175, 141, 37, 84, 0, 11,
-			6, 224, 174, 149, 224, 175, 141, 37, 49, 0, 0, 15, 9, 224, 174, 147, 224, 174, 149, 224, 175, 139, 119, 108, 119, 0, 0, 0, 0, 0,
-			14, 4, 95, 50, 67, 48, 37, 34, 122, 50, 123, 51, 122, 0, 0, 15, 140, 224, 174, 164, 224, 174, 181, 224, 174, 149, 224, 175, 141, 15,
-			15, 140, 224, 174, 164, 224, 174, 159, 224, 174, 149, 224, 175, 141, 15, 0, 0, 0, 0, 9, 134, 224, 174, 149, 224, 174, 159, 15, 0, 0,
-			33, 158, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 224,
-			175, 129, 15, 21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 15, 0, 0, 0, 0, 0, 0,
-			0, 0, 9, 134, 224, 174, 149, 224, 174, 169, 15, 0, 0, 0, 0, 0, 9, 134, 224, 174, 149, 224, 174, 174, 15, 0, 0, 24, 149, 224,
-			174, 164, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 175, 224, 175, 141, 15, 21, 146, 224, 174, 170, 224, 174, 181, 224,
-			175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 15, 0, 16, 4, 95, 49, 57, 111, 48, 35, 47, 47, 39, 50, 71, 109, 72, 0, 0,
-			18, 143, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 169, 224, 175, 129, 15, 0, 0, 0, 0, 0, 27, 152, 224, 174, 149, 224, 175,
-			135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 224, 175, 141, 15, 27, 152, 224, 174, 164, 224, 174, 181, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 141, 15, 0, 24, 149, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224,
-			174, 174, 224, 175, 129, 224, 174, 169, 224, 175, 129, 15, 0, 0, 0, 23, 15, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224,
-			174, 178, 83, 119, 50, 55, 109, 0, 0, 0, 0, 0, 30, 6, 224, 174, 149, 224, 174, 191, 49, 37, 55, 119, 65, 112, 139, 139, 109, 34,
-			0, 24, 82, 46, 32, 224, 174, 174, 224, 175, 128, 32, 0, 0, 33, 158, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174,
-			174, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129, 15, 21, 146, 224, 174, 164, 224, 174, 159, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 15, 13, 4, 95, 50, 67, 111, 37, 34, 122, 50, 123, 51, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224,
-			174, 176, 224, 175, 129, 224, 174, 174, 15, 24, 149, 224, 174, 170, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 15, 0, 27, 152, 224, 174, 164, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174, 179, 224, 175, 141, 224, 174, 179,
-			15, 0, 12, 137, 224, 174, 149, 224, 175, 129, 224, 174, 163, 15, 0, 0, 0, 0, 24, 149, 224, 174, 164, 224, 175, 128, 224, 174, 170, 224,
-			174, 190, 224, 174, 181, 224, 174, 179, 224, 174, 191, 15, 0, 18, 12, 224, 174, 156, 224, 175, 134, 224, 174, 169, 224, 175, 141, 88, 36, 50,
-			0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 139, 224, 174, 175, 224, 174, 191, 224, 174, 153, 224, 175, 141, 15, 20, 67,
-			28, 36, 0, 71, 34, 6, 37, 47, 37, 91, 15, 48, 6, 135, 50, 72, 88, 0, 0, 15, 3, 226, 134, 144, 6, 37, 140, 109, 72, 109,
-			65, 71, 122, 0, 0, 15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224, 175, 129, 15, 0, 16, 3, 226, 134, 146, 84, 6, 109, 55,
-			109, 72, 109, 65, 71, 122, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 181, 224, 175, 135, 15, 0, 42, 167, 224, 174, 170, 224,
-			174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224,
-			174, 169, 224, 175, 141, 15, 0, 27, 152, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169,
-			224, 175, 141, 15, 0, 0, 21, 146, 224, 174, 149, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 15, 0, 15, 140,
-			224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 15, 0, 27, 152, 224, 174, 149, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 15, 27, 152, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 169, 224, 175,
-			141, 224, 174, 169, 224, 175, 129, 15, 14, 4, 95, 51, 67, 48, 65, 40, 50, 50, 123, 51, 122, 0, 0, 0, 0, 0, 0, 0, 0, 24,
-			149, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 178, 15, 0, 0, 18, 143, 224, 174, 170,
-			224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 190, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 49,
-			111, 48, 35, 47, 37, 50, 39, 50, 51, 0, 0, 0, 0, 0, 14, 3, 226, 132, 162, 84, 6, 109, 66, 37, 81, 109, 65, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 51, 67, 111, 65, 40, 50, 50, 123, 51, 0, 0, 19, 12, 224, 174, 137, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 40, 71, 71, 109, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 95, 49, 48, 111, 48, 35, 47, 47,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 183, 224, 174, 190, 15, 24, 3, 226, 128, 161,
-			6, 37, 16, 109, 139, 139, 134, 49, 15, 49, 6, 40, 47, 47, 122, 84, 118, 62, 0, 0, 20, 67, 73, 80, 128, 34, 6, 109, 91, 109,
-			50, 15, 34, 6, 123, 71, 109, 55, 88, 0, 14, 3, 226, 128, 160, 49, 40, 47, 47, 122, 84, 118, 62, 0, 0, 0, 12, 3, 226, 128,
-			162, 47, 6, 119, 139, 139, 118, 0, 0, 0, 18, 12, 224, 174, 170, 224, 174, 191, 224, 174, 159, 224, 175, 141, 71, 37, 139, 0, 15, 140,
-			224, 174, 170, 224, 174, 191, 224, 174, 159, 224, 175, 141, 15, 0, 0, 16, 4, 95, 49, 50, 111, 48, 109, 50, 50, 37, 34, 109, 66, 140,
-			0, 14, 5, 95, 48, 77, 50, 120, 55, 109, 140, 76, 109, 65, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224,
-			175, 129, 224, 174, 181, 224, 174, 190, 15, 13, 4, 95, 52, 67, 48, 50, 118, 50, 123, 51, 122, 0, 0, 0, 0, 0, 0, 27, 152, 224,
-			174, 164, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 191, 15, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 129, 15, 13, 3, 95, 50, 48, 37, 34,
-			122, 71, 109, 72, 122, 0, 0, 0, 14, 5, 95, 48, 77, 49, 120, 118, 57, 37, 34, 109, 65, 0, 0, 0, 27, 152, 224, 174, 170, 224,
-			175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 175, 224, 175, 141, 15, 0, 0, 0, 0, 18, 12, 224, 174, 154,
-			224, 175, 134, 224, 174, 159, 224, 175, 141, 89, 36, 139, 0, 27, 152, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159,
-			224, 174, 191, 224, 174, 169, 224, 175, 141, 15, 13, 3, 95, 51, 48, 65, 40, 48, 48, 109, 72, 122, 0, 0, 0, 0, 0, 15, 140, 224,
-			174, 149, 224, 175, 140, 224, 174, 169, 224, 175, 141, 15, 0, 0, 0, 18, 143, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224,
-			174, 181, 15, 0, 0, 0, 12, 4, 95, 52, 67, 111, 50, 118, 50, 123, 51, 0, 12, 5, 95, 48, 77, 51, 120, 49, 119, 140, 37, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 175, 139, 224, 174, 164, 224, 174, 169, 224, 175, 136, 15, 0, 0,
-			0, 21, 146, 224, 174, 164, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 169, 224, 175, 136, 15, 0, 14, 3, 95, 51, 88, 65, 40,
-			48, 48, 109, 47, 47, 122, 0, 13, 3, 95, 54, 48, 35, 51, 122, 71, 109, 72, 122, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 175,
-			128, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 136, 15, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 181, 224, 175,
-			135, 15, 0, 0, 14, 3, 95, 55, 48, 38, 36, 92, 122, 71, 109, 72, 122, 0, 0, 24, 149, 224, 174, 170, 224, 174, 178, 224, 174, 191,
-			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 15, 12, 3, 95, 49, 67, 50, 123, 139, 139, 51, 37, 0, 0, 0, 30, 155, 224,
-			174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 149, 224, 175, 141, 15, 0, 0, 12,
-			4, 95, 53, 67, 48, 134, 50, 123, 51, 122, 0, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 15,
-			0, 16, 3, 95, 49, 57, 48, 35, 47, 47, 39, 50, 71, 109, 72, 122, 0, 0, 0, 15, 3, 95, 50, 67, 37, 34, 122, 50, 123, 139,
-			139, 51, 37, 0, 13, 3, 226, 151, 143, 84, 6, 109, 139, 139, 109, 65, 0, 0, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224, 175, 139,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 15, 15, 140, 224, 174, 170, 224, 174, 181, 224, 174, 169, 224, 174, 191,
-			15, 0, 15, 3, 95, 49, 49, 48, 35, 47, 37, 50, 39, 50, 51, 122, 0, 0, 11, 3, 95, 49, 48, 48, 35, 47, 47, 122, 0, 0,
-			15, 3, 95, 51, 67, 65, 40, 50, 50, 123, 139, 139, 51, 37, 0, 0, 16, 3, 95, 49, 50, 48, 109, 50, 50, 37, 34, 109, 66, 140,
-			122, 0, 0, 15, 4, 95, 99, 121, 114, 89, 37, 34, 37, 55, 55, 37, 49, 0, 0, 0, 0, 0, 0, 15, 3, 95, 55, 88, 38, 36,
-			92, 122, 71, 109, 47, 47, 122, 0, 0, 14, 3, 95, 52, 67, 50, 118, 50, 123, 139, 139, 51, 37, 0, 0, 0, 0, 0, 9, 3, 95,
-			49, 111, 39, 50, 51, 0, 0, 0, 0, 0, 13, 3, 95, 53, 67, 134, 50, 123, 139, 139, 51, 37, 0, 0, 0, 0, 0, 11, 3, 95,
-			50, 111, 37, 34, 109, 66, 140, 0, 0, 0, 0, 13, 3, 95, 52, 48, 50, 118, 51, 48, 109, 72, 122, 0, 11, 3, 95, 49, 88, 48,
-			35, 72, 37, 50, 0, 0, 15, 3, 95, 54, 67, 35, 51, 122, 50, 123, 139, 139, 51, 37, 0, 0, 11, 4, 95, 53, 67, 111, 134, 50,
-			123, 51, 0, 0, 0, 19, 3, 226, 150, 160, 49, 6, 109, 34, 122, 67, 75, 109, 72, 122, 16, 109, 65, 0, 0, 10, 3, 95, 51, 111,
-			65, 123, 50, 51, 0, 0, 0, 0, 14, 3, 95, 50, 88, 37, 34, 122, 71, 109, 47, 47, 122, 0, 12, 3, 95, 53, 48, 134, 65, 71,
-			109, 72, 122, 0, 0, 16, 3, 95, 55, 67, 38, 36, 92, 122, 50, 123, 139, 139, 51, 37, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,
-			226, 158, 148, 84, 6, 109, 55, 109, 72, 109, 65, 71, 122, 0, 0, 19, 12, 224, 174, 154, 224, 175, 128, 224, 174, 154, 224, 175, 128, 76,
-			112, 76, 112, 0, 15, 3, 95, 56, 67, 38, 36, 66, 66, 123, 139, 139, 51, 37, 0, 0, 0, 0, 0, 9, 3, 95, 53, 111, 134, 50,
-			72, 0, 16, 3, 95, 63, 63, 49, 40, 51, 37, 57, 4, 112, 140, 122, 10, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174,
-			181, 224, 174, 190, 15, 18, 143, 224, 174, 164, 224, 174, 175, 224, 174, 190, 224, 174, 179, 224, 175, 129, 15, 0, 28, 18, 224, 174, 159, 224,
-			174, 191, 224, 174, 170, 224, 175, 129, 224, 174, 159, 224, 174, 191, 140, 116, 48, 57, 122, 139, 37, 0, 14, 3, 95, 52, 88, 50, 118, 51,
-			48, 109, 47, 47, 122, 0, 0, 18, 3, 95, 57, 67, 47, 39, 62, 62, 118, 57, 37, 34, 109, 47, 47, 122, 0, 8, 3, 224, 174, 143,
-			57, 114, 0, 0, 0, 0, 18, 12, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 72, 37, 49, 0, 15, 140, 224, 174, 149, 224,
-			175, 135, 224, 174, 159, 224, 175, 141, 15, 15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 15, 15, 140, 224, 174, 170, 224,
-			174, 159, 224, 175, 129, 224, 174, 149, 15, 8, 3, 224, 175, 144, 119, 65, 0, 0, 8, 3, 95, 54, 111, 118, 51, 0, 14, 4, 95, 54,
-			67, 48, 35, 51, 122, 50, 123, 51, 122, 0, 0, 21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 184, 224, 175,
-			141, 15, 0, 18, 143, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 178, 224, 175, 141, 15, 18, 143, 224, 174, 170, 224, 174, 178, 224,
-			174, 191, 224, 174, 149, 224, 175, 141, 15, 10, 3, 224, 175, 141, 39, 139, 51, 122, 0, 0, 13, 3, 95, 53, 88, 134, 65, 71, 109, 47,
-			47, 122, 0, 13, 3, 95, 56, 48, 38, 36, 66, 71, 109, 72, 122, 0, 8, 3, 224, 175, 140, 147, 135, 0, 0, 0, 11, 6, 224, 174,
-			159, 224, 175, 141, 37, 139, 0, 0, 0, 8, 3, 224, 175, 136, 147, 134, 0, 0, 9, 3, 95, 55, 111, 38, 114, 92, 0, 9, 3, 224,
-			175, 139, 147, 119, 12, 0, 9, 3, 224, 174, 131, 109, 81, 108, 0, 0, 8, 3, 224, 175, 138, 18, 39, 0, 14, 3, 224, 174, 130, 109,
-			50, 122, 89, 84, 109, 51, 109, 0, 12, 6, 224, 174, 153, 224, 175, 141, 37, 68, 81, 0, 0, 35, 23, 95, 35, 224, 174, 134, 224, 174,
-			181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149, 118, 84, 109, 72, 122, 65, 118, 81, 109, 0, 0, 15, 140, 224,
-			174, 149, 224, 174, 191, 224, 174, 176, 224, 175, 141, 15, 33, 24, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 224, 174, 149, 224, 175, 141, 72, 37, 81, 72, 37, 81, 0, 14, 3, 95, 54, 88, 35, 51, 122, 71, 109, 47, 47, 122, 0, 13,
-			3, 95, 57, 48, 47, 39, 66, 66, 123, 51, 122, 0, 0, 9, 3, 224, 175, 135, 147, 114, 12, 0, 0, 8, 3, 224, 175, 134, 18, 36,
-			0, 0, 18, 143, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 174, 184, 224, 175, 141, 15, 8, 3, 224, 175, 129, 18, 40, 0, 0, 9,
-			3, 224, 175, 128, 147, 112, 12, 0, 0, 0, 9, 3, 224, 175, 130, 147, 123, 12, 0, 0, 0, 18, 143, 224, 174, 149, 224, 174, 190, 224,
-			174, 168, 224, 175, 141, 224, 174, 164, 15, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 15, 0, 0, 18,
-			12, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175, 135, 81, 34, 114, 0, 11, 6, 224, 174, 163, 224, 175, 141, 37, 66, 0, 0, 11,
-			3, 224, 175, 185, 34, 123, 71, 118, 57, 0, 0, 23, 3, 224, 175, 184, 65, 6, 114, 55, 37, 34, 122, 48, 48, 109, 72, 122, 15, 48,
-			6, 119, 55, 0, 0, 11, 3, 95, 57, 111, 39, 50, 71, 109, 72, 0, 0, 21, 146, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175,
-			141, 224, 174, 169, 224, 175, 129, 15, 13, 3, 224, 175, 186, 38, 36, 66, 66, 122, 34, 122, 0, 0, 10, 3, 224, 175, 181, 118, 66, 140,
-			122, 0, 0, 27, 152, 224, 174, 154, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 224, 175, 141, 15,
-			15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 159, 224, 175, 141, 15, 14, 3, 95, 56, 88, 38, 36, 66, 71, 109, 47, 47, 122, 0, 11,
-			3, 224, 175, 180, 65, 118, 72, 109, 65, 0, 0, 12, 3, 224, 175, 183, 84, 109, 34, 109, 84, 122, 0, 0, 11, 3, 224, 175, 182, 48,
-			109, 139, 51, 122, 0, 0, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 15, 10, 3, 224, 175, 177, 50,
-			123, 51, 122, 0, 0, 18, 12, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 71, 134, 49, 0, 11, 3, 224, 175, 176, 48, 109,
-			47, 47, 122, 0, 0, 9, 3, 224, 175, 179, 50, 118, 62, 0, 0, 26, 18, 224, 174, 164, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224,
-			174, 184, 224, 175, 141, 87, 118, 68, 49, 89, 0, 12, 3, 224, 175, 178, 118, 57, 37, 34, 109, 65, 0, 0, 18, 143, 224, 174, 149, 224,
-			174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 141, 15, 30, 155, 224, 174, 164, 224, 175, 128, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 175, 139, 224, 174, 159, 224, 175, 129, 15, 18, 143, 224, 174, 170, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 141, 15,
-			0, 27, 152, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 224, 175, 129, 15, 15, 3,
-			95, 57, 88, 47, 39, 66, 66, 123, 139, 139, 51, 122, 0, 0, 0, 13, 4, 95, 54, 67, 111, 35, 51, 122, 50, 123, 51, 0, 11, 6,
-			224, 174, 175, 224, 175, 141, 37, 57, 0, 0, 0, 15, 9, 224, 174, 134, 224, 174, 149, 224, 174, 190, 118, 108, 118, 0, 0, 0, 15, 140,
-			224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 174, 191, 15, 19, 12, 224, 174, 159, 224, 174, 191, 224, 174, 181, 224, 174, 191, 139, 37, 84,
-			37, 0, 11, 6, 224, 174, 177, 224, 175, 141, 37, 51, 0, 11, 6, 224, 174, 169, 224, 175, 141, 37, 50, 0, 0, 15, 140, 224, 174, 164,
-			224, 175, 135, 224, 174, 181, 224, 174, 190, 15, 0, 36, 24, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224, 174,
-			159, 224, 174, 169, 224, 175, 141, 83, 118, 72, 109, 34, 122, 140, 109, 50, 0, 0, 0, 13, 4, 95, 52, 48, 111, 50, 118, 51, 48, 109,
-			72, 0, 0, 0, 0, 10, 3, 95, 52, 111, 50, 118, 50, 81, 0, 17, 4, 95, 115, 117, 112, 65, 6, 114, 55, 36, 92, 122, 47, 47,
-			122, 0, 0, 27, 152, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 15,
-			0, 18, 143, 224, 174, 164, 224, 174, 178, 224, 174, 190, 224, 174, 175, 224, 175, 141, 15, 0, 0, 0, 21, 146, 224, 174, 164, 224, 174, 159,
-			224, 174, 191, 224, 174, 175, 224, 174, 169, 224, 175, 141, 15, 0, 0, 15, 140, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 175, 129, 15,
-			0, 24, 149, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175, 141, 15, 11, 6, 224, 174, 179,
-			224, 175, 141, 37, 62, 0, 0, 0, 0, 33, 24, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224,
-			174, 178, 224, 175, 141, 71, 134, 49, 49, 113, 55, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 129, 15, 0, 0, 21, 146, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 135, 15, 0, 24,
-			149, 224, 174, 149, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 15, 0, 15, 4, 95, 55, 67, 48,
-			38, 36, 92, 122, 50, 123, 51, 122, 0, 0, 24, 149, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 178, 224, 175, 135, 224, 174, 175,
-			224, 175, 135, 15, 0, 0, 0, 18, 143, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 15, 0, 0, 24, 149, 224,
-			174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 175, 141, 15, 0, 0, 33, 158, 224, 174, 149, 224, 175,
-			135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 15, 33, 158, 224, 174,
-			149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 15, 33,
-			158, 224, 174, 170, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
-			129, 15, 0, 12, 137, 224, 174, 170, 224, 175, 139, 224, 174, 164, 15, 9, 3, 224, 174, 190, 147, 118, 12, 0, 0, 18, 143, 224, 174, 170,
-			224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 175, 15, 8, 3, 224, 174, 191, 18, 37, 0, 0, 0, 0, 11, 6, 224, 174, 159, 224,
-			174, 191, 139, 37, 0, 0, 10, 3, 95, 56, 111, 38, 36, 139, 139, 0, 15, 4, 95, 48, 77, 50, 55, 109, 140, 76, 109, 47, 47, 122,
-			0, 0, 27, 152, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 174, 191, 15, 12,
-			4, 95, 48, 77, 51, 49, 119, 140, 37, 114, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 176, 224, 174, 190, 224, 174, 174,
-			224, 174, 163, 15, 15, 4, 95, 48, 77, 49, 118, 57, 37, 34, 109, 47, 47, 122, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224,
-			174, 176, 224, 174, 191, 15, 0, 0, 18, 143, 224, 174, 164, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 15, 0, 0, 0, 0,
-			0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 178, 15, 0, 0, 12, 137, 224, 174, 170, 224,
-			174, 159, 224, 174, 190, 15, 0, 0, 0, 0, 14, 4, 95, 55, 67, 111, 38, 36, 92, 122, 50, 123, 51, 0, 0, 0, 0, 0, 0, 0,
-			21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 15, 0, 0, 12, 4, 95, 53, 48, 111, 134,
-			65, 71, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174,
-			191, 15, 11, 6, 224, 174, 184, 224, 175, 141, 37, 89, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 159, 224, 175, 129, 224, 174, 181, 224,
-			174, 190, 15, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 56, 67, 48, 38, 36, 66, 66, 123, 51, 122, 0, 0, 0, 0, 0, 23, 15,
-			224, 174, 154, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 89, 37, 34, 109, 65, 0, 0, 0, 0, 0, 0, 32, 20, 95, 35,
-			224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149, 118, 84, 109, 72, 122, 65, 118, 81, 109, 0, 0, 0,
-			0, 14, 4, 95, 99, 97, 112, 49, 35, 48, 37, 139, 109, 55, 0, 0, 36, 24, 95, 35, 45, 224, 174, 134, 224, 174, 181, 224, 174, 164,
-			224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149, 118, 84, 109, 72, 122, 65, 118, 81, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 36, 24, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 174,
-			174, 224, 175, 141, 83, 118, 72, 109, 34, 37, 140, 109, 65, 0, 27, 152, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175,
-			141, 224, 174, 154, 224, 174, 174, 224, 175, 141, 15, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 224, 174, 170, 224, 175, 141, 15, 0, 0, 0, 0, 27, 152, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
-			175, 129, 224, 174, 169, 224, 175, 129, 15, 0, 0, 21, 14, 95, 35, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 37, 55, 122,
-			65, 0, 13, 4, 95, 56, 67, 111, 38, 36, 66, 66, 123, 51, 0, 18, 67, 12, 230, 64, 76, 6, 134, 50, 112, 88, 15, 57, 6, 40,
-			109, 50, 0, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 174, 224, 175, 141, 15, 21, 146,
-			224, 174, 170, 224, 174, 163, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 176,
-			224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 0, 0, 0, 0, 0, 0, 18, 12, 224, 174, 170, 224, 175, 129, 224, 174, 159, 224, 175, 141,
-			83, 40, 140, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175, 141, 15, 0, 14, 9, 95, 35, 45, 224, 174, 178, 224, 175,
-			141, 37, 55, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 169, 224, 174, 174, 224, 175, 141, 15, 15, 140, 224, 174, 170, 224, 175, 129,
-			224, 174, 149, 224, 175, 141, 15, 0, 0, 0, 18, 143, 224, 174, 164, 224, 175, 134, 224, 174, 169, 224, 174, 174, 224, 175, 141, 15, 12, 137,
-			224, 174, 170, 224, 174, 178, 224, 175, 135, 15, 0, 0, 15, 140, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 174, 15, 24, 149, 224,
-			174, 170, 224, 175, 141, 224, 174, 175, 224, 175, 130, 224, 174, 169, 224, 174, 184, 224, 175, 141, 15, 0, 25, 18, 224, 174, 170, 224, 174, 191,
-			224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 71, 34, 114, 49, 0, 27, 18, 95, 35, 45, 224, 174, 181, 224, 174, 164, 224, 175,
-			129, 224, 174, 174, 224, 175, 141, 118, 84, 109, 72, 122, 65, 0, 0, 0, 27, 152, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 190,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 15, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			224, 174, 191, 224, 174, 164, 224, 175, 141, 15, 0, 0, 0, 0, 23, 15, 224, 174, 170, 224, 175, 135, 224, 174, 169, 224, 175, 141, 224, 174,
-			178, 83, 114, 50, 55, 109, 0, 0, 0, 0, 17, 4, 95, 57, 67, 48, 47, 39, 62, 62, 118, 57, 37, 34, 109, 65, 0, 0, 0, 0,
-			0, 12, 137, 224, 174, 170, 224, 174, 178, 224, 174, 191, 15, 0, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 175, 138, 224, 174, 174, 224,
-			175, 141, 224, 174, 174, 15, 21, 146, 224, 174, 170, 224, 175, 130, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 15, 12, 137, 224,
-			174, 170, 224, 174, 176, 224, 174, 164, 15, 21, 146, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 15,
-			0, 24, 149, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 15, 0, 0, 0, 0, 0,
-			12, 137, 224, 174, 149, 224, 174, 175, 224, 174, 190, 15, 0, 0, 0, 12, 137, 224, 174, 164, 224, 174, 190, 224, 174, 169, 15, 0, 0, 0,
-			0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 178, 15, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 176, 15, 12, 2,
-			195, 151, 72, 6, 109, 140, 109, 84, 134, 0, 0, 0, 0, 0, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 170, 15, 0, 0,
-			12, 2, 194, 167, 48, 6, 37, 34, 37, 84, 122, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 169, 15, 0, 19, 67, 41, 6,
-			64, 75, 6, 118, 48, 109, 50, 112, 88, 15, 57, 6, 36, 50, 0, 0, 0, 0, 24, 149, 224, 174, 164, 224, 175, 128, 224, 174, 176, 224,
-			174, 174, 224, 174, 177, 224, 175, 141, 224, 174, 177, 15, 0, 22, 2, 194, 161, 47, 6, 109, 55, 134, 49, 112, 92, 15, 84, 6, 37, 57,
-			109, 48, 48, 122, 0, 0, 26, 18, 224, 174, 154, 224, 175, 139, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 190, 76, 119, 48, 34,
-			118, 0, 11, 2, 194, 174, 48, 109, 72, 37, 84, 122, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224,
-			174, 175, 15, 0, 0, 0, 0, 0, 17, 2, 194, 169, 48, 6, 109, 72, 37, 48, 48, 122, 34, 37, 65, 134, 0, 0, 0, 0, 15, 140,
-			224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 190, 15, 0, 15, 140, 224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 191, 15, 15,
-			140, 224, 174, 170, 224, 175, 139, 224, 174, 164, 224, 174, 191, 15, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 178, 224, 175, 129,
-			15, 0, 0, 22, 2, 194, 177, 49, 6, 123, 139, 139, 109, 55, 15, 49, 6, 109, 92, 37, 47, 47, 109, 55, 0, 0, 11, 2, 194, 190,
-			65, 40, 49, 49, 118, 55, 0, 0, 26, 18, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 34, 36,
-			140, 140, 37, 0, 18, 143, 224, 174, 170, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 190, 15, 20, 2, 194, 191, 47, 6, 109, 55,
-			134, 49, 112, 92, 15, 49, 6, 114, 62, 84, 37, 0, 13, 2, 195, 183, 84, 109, 81, 122, 47, 47, 109, 55, 0, 0, 8, 2, 194, 188,
-			49, 118, 55, 0, 0, 8, 2, 194, 189, 35, 34, 134, 0, 11, 6, 224, 174, 182, 224, 175, 141, 37, 91, 0, 0, 21, 146, 224, 174, 170,
-			224, 174, 190, 224, 174, 181, 224, 175, 141, 224, 174, 178, 224, 174, 190, 15, 0, 13, 8, 95, 35, 224, 174, 174, 224, 175, 141, 118, 65, 0,
-			0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 178, 224, 175, 141, 15, 18, 12, 224, 174, 170, 224, 175, 128, 224, 174, 178,
-			224, 175, 141, 83, 112, 55, 0, 17, 12, 95, 35, 45, 224, 174, 134, 224, 174, 174, 224, 175, 141, 118, 65, 0, 0, 0, 0, 18, 143, 224,
-			174, 170, 224, 174, 190, 224, 174, 163, 224, 174, 174, 224, 175, 141, 15, 0, 0, 0, 0, 0, 0, 33, 21, 95, 35, 45, 224, 174, 181, 224,
-			174, 164, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149, 118, 84, 109, 72, 122, 65, 118, 81, 109, 0, 0, 18, 67, 85, 49, 0,
-			57, 6, 40, 36, 89, 15, 72, 6, 39, 55, 109, 88, 0, 0, 0, 0, 14, 9, 224, 174, 134, 224, 174, 170, 224, 175, 141, 118, 83, 0,
-			0, 0, 16, 11, 95, 35, 224, 174, 134, 224, 174, 174, 224, 175, 141, 118, 65, 0, 0, 15, 140, 224, 174, 149, 224, 174, 169, 224, 174, 174,
-			224, 175, 141, 15, 0, 0, 21, 146, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 15, 0, 0, 0,
-			26, 17, 95, 35, 224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 118, 84, 109, 72, 122, 65, 0, 0, 0, 12, 137,
-			224, 174, 164, 224, 175, 138, 224, 174, 179, 15, 0, 51, 36, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174,
-			178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 175, 141, 83, 118, 72, 109, 34, 37, 55, 55, 118, 65, 109,
-			55, 0, 0, 24, 149, 224, 174, 149, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 30, 21, 95,
-			35, 45, 224, 174, 134, 224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 118, 84, 109, 72, 122, 65, 0, 0, 0, 0,
-			27, 152, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 27, 152, 224,
-			174, 170, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 0, 0, 0, 0, 0, 0,
-			15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 184, 224, 174, 191, 15, 0, 18, 143, 224, 174, 164, 224, 174, 190, 224, 174, 175, 224, 174, 174,
-			224, 175, 141, 15, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 178, 224, 174, 190, 15, 0, 25, 18, 224, 174, 159, 224, 174, 190,
-			224, 174, 176, 224, 175, 141, 224, 174, 154, 224, 175, 141, 139, 118, 34, 76, 0, 0, 0, 0, 0, 13, 4, 95, 56, 48, 111, 38, 36, 66,
-			71, 109, 72, 0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 15, 21, 146, 224,
-			174, 170, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 15, 13, 8, 95, 35, 224, 174, 178, 224, 175, 141, 37, 55,
-			0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 174, 224, 175, 141, 15, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174,
-			178, 224, 175, 141, 15, 0, 0, 33, 158, 224, 174, 164, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141,
-			224, 174, 175, 224, 174, 174, 224, 175, 141, 15, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 174, 174, 224, 175, 141, 15, 0,
-			30, 155, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 15,
-			15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 175, 129, 15, 0, 0, 26, 18, 224, 174, 170, 224, 175, 135, 224, 174, 169, 224, 174,
-			191, 224, 174, 178, 224, 175, 141, 83, 114, 50, 37, 55, 0, 26, 18, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 178,
-			224, 175, 141, 83, 119, 50, 37, 55, 0, 0, 33, 158, 224, 174, 170, 224, 175, 139, 224, 174, 176, 224, 174, 159, 224, 174, 191, 224, 174, 149,
-			224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 15, 0, 29, 20, 95, 35, 224, 174, 134, 224, 174, 181, 224, 174, 164, 224, 175, 129,
-			224, 174, 174, 224, 175, 141, 118, 84, 109, 72, 122, 65, 0, 0, 24, 149, 224, 174, 154, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174,
-			178, 224, 174, 174, 224, 175, 141, 15, 0, 0, 0, 27, 152, 224, 174, 149, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			191, 224, 174, 178, 224, 175, 141, 15, 27, 152, 224, 174, 164, 224, 174, 181, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174,
-			178, 224, 175, 141, 15, 27, 152, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175,
-			141, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 12, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 174, 190, 71, 118, 71, 118,
-			0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 174, 190, 15, 0, 0, 39, 164, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 11, 2, 95,
-			34, 65, 114, 51, 81, 119, 62, 0, 0, 0, 0, 17, 2, 95, 39, 39, 139, 51, 134, 15, 65, 6, 114, 51, 81, 119, 62, 0, 0, 0,
-			0, 0, 0, 0, 14, 2, 95, 41, 84, 109, 55, 109, 15, 48, 37, 51, 134, 0, 0, 13, 2, 95, 40, 37, 140, 109, 15, 48, 37, 51,
-			134, 0, 0, 0, 16, 2, 95, 46, 65, 40, 139, 51, 122, 15, 48, 40, 62, 62, 37, 0, 0, 12, 2, 95, 45, 37, 66, 134, 48, 48,
-			122, 81, 0, 0, 14, 2, 95, 44, 49, 118, 55, 15, 48, 40, 62, 62, 37, 0, 0, 10, 2, 95, 51, 65, 123, 50, 51, 122, 0, 0,
-			11, 2, 95, 50, 37, 34, 109, 66, 140, 122, 0, 0, 9, 2, 95, 49, 39, 50, 51, 122, 0, 0, 12, 2, 95, 48, 89, 40, 92, 37,
-			57, 109, 65, 0, 0, 9, 2, 95, 55, 38, 114, 92, 122, 0, 0, 8, 2, 95, 54, 118, 51, 122, 0, 0, 9, 2, 95, 53, 134, 50,
-			72, 122, 0, 0, 10, 2, 95, 52, 50, 118, 50, 81, 122, 0, 0, 15, 2, 95, 59, 118, 34, 134, 71, 15, 48, 40, 62, 62, 37, 0,
-			0, 17, 2, 95, 58, 65, 40, 49, 49, 118, 55, 15, 48, 40, 62, 62, 37, 0, 0, 11, 2, 95, 57, 39, 50, 71, 109, 140, 122, 0,
-			0, 18, 12, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 190, 71, 34, 118, 0, 10, 2, 95, 56, 38, 36, 139, 139, 122, 0, 0,
-			10, 2, 95, 63, 49, 114, 62, 84, 37, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 57, 48, 111, 47, 39, 66, 66, 123, 51, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 174, 224, 174, 190, 15, 16, 4, 95,
-			226, 128, 166, 84, 6, 37, 140, 122, 50, 37, 55, 134, 0, 0, 0, 0, 0, 24, 149, 224, 174, 164, 224, 174, 175, 224, 174, 190, 224, 174,
-			168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 15, 0, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 141,
-			15, 16, 2, 95, 91, 37, 140, 109, 48, 48, 109, 81, 109, 34, 109, 65, 0, 0, 0, 23, 68, 80, 19, 73, 48, 224, 174, 164, 224, 174,
-			174, 224, 174, 191, 224, 174, 180, 224, 175, 141, 0, 29, 0, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149,
-			15, 0, 14, 2, 95, 95, 35, 140, 37, 81, 15, 49, 119, 140, 122, 0, 0, 0, 17, 2, 95, 93, 84, 109, 55, 109, 48, 48, 109, 81,
-			109, 34, 109, 65, 0, 0, 0, 0, 0, 11, 3, 95, 97, 114, 35, 34, 109, 71, 122, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174,
-			170, 224, 174, 178, 224, 174, 174, 224, 175, 141, 15, 0, 0, 15, 140, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 175, 135, 15, 0, 0,
-			15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 129, 15, 0, 0, 15, 140, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224, 175,
-			135, 15, 21, 146, 224, 174, 170, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 174, 224, 175, 141, 15, 0, 15, 3, 95, 104, 101, 38,
-			36, 71, 37, 34, 114, 57, 109, 65, 0, 0, 0, 0, 22, 14, 95, 35, 224, 174, 134, 224, 174, 181, 224, 174, 164, 224, 175, 129, 118, 84,
-			109, 72, 122, 0, 0, 21, 146, 224, 174, 154, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 128, 15, 0, 0, 0, 33,
+		static unsigned char espeakdata_dicts62_data[88228] = {
+			0, 4, 0, 0, 29, 37, 0, 0, 9, 134, 224, 174, 164, 224, 174, 169, 20, 0, 18, 143, 224, 174, 154, 224, 174, 176, 224, 175, 141, 224,
+			174, 154, 224, 175, 141, 20, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 20, 12, 95, 35, 45, 224, 174, 181, 224, 174, 164, 224, 175,
+			129, 118, 84, 109, 72, 122, 0, 0, 24, 149, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175,
+			141, 20, 9, 134, 224, 174, 164, 224, 174, 181, 20, 0, 21, 146, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 174, 224,
+			175, 141, 20, 0, 6, 65, 8, 71, 112, 0, 0, 0, 0, 0, 21, 6, 224, 174, 170, 224, 174, 191, 71, 37, 57, 114, 0, 24, 82, 46,
+			32, 224, 174, 143, 32, 6, 65, 12, 89, 112, 0, 0, 27, 152, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224,
+			174, 190, 224, 174, 175, 224, 175, 141, 20, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174,
+			164, 224, 174, 191, 20, 15, 140, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 174, 191, 20, 9, 134, 224, 174, 170, 224, 174, 181, 20, 11,
+			6, 224, 174, 178, 224, 175, 141, 37, 55, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 20,
+			5, 65, 20, 112, 0, 0, 12, 137, 224, 174, 149, 224, 174, 190, 224, 174, 169, 20, 0, 0, 13, 6, 224, 174, 170, 224, 174, 170, 48, 109,
+			48, 109, 0, 0, 15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 175, 141, 20, 6, 65, 24, 116, 83, 0, 0, 0, 0, 18, 143,
+			224, 174, 170, 224, 175, 139, 224, 174, 149, 224, 174, 174, 224, 175, 141, 20, 0, 6, 65, 28, 75, 112, 0, 0, 0, 13, 4, 95, 54, 48,
+			15, 35, 51, 122, 71, 109, 72, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 11, 1, 33, 84, 37, 57, 109, 48, 48, 122, 0, 0, 0,
+			8, 1, 35, 38, 36, 66, 0, 27, 0, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224,
+			174, 154, 224, 175, 141, 20, 6, 65, 36, 118, 57, 0, 0, 14, 1, 37, 84, 37, 92, 122, 49, 49, 118, 141, 122, 0, 27, 0, 10, 1,
+			38, 65, 109, 140, 51, 122, 65, 0, 0, 30, 155, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224,
+			174, 178, 224, 174, 190, 224, 174, 169, 20, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 13, 1, 42, 48, 36, 34, 122, 49, 49, 109, 55,
+			0, 27, 0, 11, 1, 43, 49, 123, 140, 140, 109, 55, 0, 27, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 0, 9, 1, 47, 89, 118,
+			57, 84, 122, 0, 0, 6, 65, 48, 116, 55, 0, 0, 15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 174, 190, 20, 0, 15, 140,
+			224, 174, 170, 224, 175, 139, 224, 174, 149, 224, 174, 191, 20, 0, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 33, 158, 224, 174, 170, 224,
+			174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 20, 0, 6, 65,
+			56, 116, 50, 0, 0, 0, 0, 0, 10, 1, 60, 49, 40, 51, 134, 84, 122, 0, 5, 65, 60, 119, 0, 0, 14, 1, 61, 89, 35, 65,
+			109, 50, 48, 118, 141, 122, 0, 27, 0, 10, 1, 62, 65, 37, 81, 122, 72, 37, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0,
+			0, 7, 65, 68, 49, 57, 123, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 139, 224, 174, 178, 224, 174, 191, 20, 0, 0, 6, 65, 72,
+			118, 51, 0, 0, 15, 9, 224, 174, 149, 224, 174, 170, 224, 175, 141, 49, 109, 48, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 190,
+			224, 174, 159, 224, 175, 141, 20, 15, 140, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 20, 18, 12, 224, 174, 170, 224, 175, 128,
+			224, 174, 170, 224, 175, 141, 71, 112, 48, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 0, 6, 65, 80, 138, 112, 0, 0, 0, 11, 6,
+			224, 174, 185, 224, 175, 141, 37, 99, 0, 0, 0, 6, 65, 84, 57, 123, 0, 0, 0, 10, 4, 95, 49, 67, 15, 50, 123, 51, 0, 0,
+			0, 6, 65, 88, 84, 112, 0, 0, 12, 137, 224, 174, 149, 224, 174, 174, 224, 175, 141, 20, 0, 0, 19, 11, 95, 35, 224, 174, 181, 224,
+			174, 164, 224, 175, 129, 118, 84, 109, 72, 122, 0, 0, 15, 1, 92, 48, 6, 37, 50, 15, 89, 4, 118, 57, 84, 122, 0, 11, 65, 92,
+			72, 109, 71, 109, 55, 57, 123, 0, 0, 0, 14, 4, 95, 55, 48, 15, 38, 36, 92, 122, 71, 109, 72, 0, 0, 18, 143, 224, 174, 170,
+			224, 175, 135, 224, 174, 149, 224, 174, 174, 224, 175, 141, 20, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 177, 224, 174, 174, 224, 175, 141,
+			20, 0, 7, 65, 96, 116, 49, 89, 0, 0, 18, 4, 95, 49, 77, 50, 39, 34, 122, 55, 109, 141, 76, 109, 47, 47, 122, 0, 0, 21,
+			146, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 20, 15, 4, 95, 49, 77, 51, 39, 34, 122, 49,
+			119, 141, 37, 114, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 159, 224,
+			175, 129, 20, 7, 65, 104, 88, 116, 72, 0, 0, 0, 11, 67, 21, 84, 128, 57, 123, 34, 119, 88, 0, 0, 0, 15, 140, 224, 174, 149,
+			224, 174, 191, 224, 174, 163, 224, 175, 141, 20, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 20, 15, 140, 224, 174, 170,
+			224, 175, 128, 224, 174, 154, 224, 175, 141, 20, 0, 0, 0, 0, 0, 0, 11, 6, 224, 174, 180, 224, 175, 141, 37, 92, 0, 0, 12, 137,
+			224, 174, 164, 224, 174, 191, 224, 174, 159, 20, 0, 0, 21, 146, 224, 174, 164, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224,
+			175, 136, 20, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 175, 141, 20, 15, 140, 224, 174, 170, 224, 174, 149, 224,
+			174, 164, 224, 175, 141, 20, 0, 0, 24, 67, 5, 81, 0, 39, 89, 47, 34, 6, 36, 113, 55, 113, 109, 50, 15, 72, 6, 39, 55, 109,
+			88, 0, 0, 0, 13, 1, 124, 89, 36, 68, 81, 122, 47, 47, 122, 0, 27, 0, 0, 0, 0, 0, 30, 21, 224, 174, 170, 224, 174, 191,
+			224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 175, 141, 48, 34, 109, 89, 118, 34, 0, 0, 0, 0, 0, 0, 16, 4, 95,
+			49, 57, 15, 48, 35, 47, 47, 39, 50, 71, 109, 72, 0, 0, 0, 0, 0, 0, 30, 155, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224,
+			174, 174, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 224, 175, 129, 20, 0, 21, 146, 224, 174, 170, 224, 174, 176, 224, 175, 141,
+			224, 174, 174, 224, 174, 191, 224, 174, 175, 20, 0, 0, 21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224,
+			175, 129, 20, 0, 12, 137, 224, 174, 149, 224, 174, 164, 224, 174, 191, 20, 11, 4, 95, 49, 67, 48, 50, 123, 51, 122, 0, 0, 0, 0,
+			0, 0, 18, 143, 224, 174, 164, 224, 175, 135, 224, 174, 181, 224, 174, 164, 224, 174, 190, 20, 0, 0, 13, 4, 95, 50, 67, 15, 37, 34,
+			122, 50, 123, 51, 0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 20, 0, 21,
+			146, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
+			67, 36, 228, 128, 6, 113, 50, 72, 113, 109, 50, 15, 34, 6, 123, 48, 112, 88, 0, 0, 0, 0, 15, 140, 224, 174, 154, 224, 174, 190,
+			224, 174, 175, 224, 174, 190, 20, 12, 137, 224, 174, 164, 224, 174, 191, 224, 174, 169, 20, 0, 15, 140, 224, 174, 149, 224, 175, 139, 224, 174,
+			170, 224, 174, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 190,
+			20, 15, 140, 224, 174, 170, 224, 174, 159, 224, 174, 181, 224, 174, 190, 20, 0, 0, 0, 0, 18, 143, 224, 174, 164, 224, 174, 176, 224, 174,
+			190, 224, 174, 181, 224, 174, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174,
+			191, 224, 174, 149, 224, 175, 129, 20, 0, 0, 15, 4, 95, 49, 49, 15, 48, 35, 47, 37, 50, 39, 50, 51, 0, 11, 6, 224, 174, 183,
+			224, 175, 141, 37, 93, 0, 0, 0, 9, 134, 224, 174, 149, 224, 175, 139, 20, 0, 0, 9, 134, 224, 174, 149, 224, 174, 149, 20, 11, 6,
+			224, 174, 181, 224, 175, 141, 37, 84, 0, 11, 6, 224, 174, 149, 224, 175, 141, 37, 49, 0, 0, 15, 9, 224, 174, 147, 224, 174, 149, 224,
+			175, 139, 119, 108, 119, 0, 0, 0, 0, 0, 14, 4, 95, 50, 67, 48, 37, 34, 122, 50, 123, 51, 122, 0, 0, 15, 140, 224, 174, 164,
+			224, 174, 181, 224, 174, 149, 224, 175, 141, 20, 15, 140, 224, 174, 164, 224, 174, 159, 224, 174, 149, 224, 175, 141, 20, 0, 0, 0, 0, 9,
+			134, 224, 174, 149, 224, 174, 159, 20, 0, 0, 33, 158, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134,
+			224, 174, 169, 224, 175, 141, 224, 174, 177, 224, 175, 129, 20, 21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 20, 13, 4, 95, 51, 67, 15, 65, 40, 50, 50, 123, 51, 0, 0, 13, 4, 95, 4, 16, 20, 10, 48, 40, 62, 62, 37,
+			0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 224, 174, 149, 224, 174, 169, 20, 11, 4, 95, 49, 48, 15, 48, 35, 47, 47, 0, 0, 0,
+			0, 0, 0, 9, 134, 224, 174, 149, 224, 174, 174, 20, 0, 0, 24, 149, 224, 174, 164, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174,
+			190, 224, 174, 175, 224, 175, 141, 20, 21, 146, 224, 174, 170, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 20, 0,
+			0, 18, 143, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 169, 224, 175, 129, 20, 0, 0, 0, 0, 0, 27, 152, 224, 174, 149, 224,
+			175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 224, 175, 141, 20, 27, 152, 224, 174, 164, 224, 174, 181, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 141, 20, 14, 5, 95, 48, 77, 50, 24, 55, 109, 141, 76, 109,
+			65, 0, 0, 24, 149, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 224, 175, 129, 20, 0, 16, 4,
+			95, 49, 50, 15, 48, 109, 50, 50, 37, 34, 109, 66, 141, 0, 0, 0, 23, 15, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141,
+			224, 174, 178, 83, 119, 50, 55, 109, 0, 0, 0, 0, 0, 30, 6, 224, 174, 149, 224, 174, 191, 49, 37, 55, 119, 65, 112, 140, 140, 109,
+			34, 0, 24, 82, 46, 32, 224, 174, 174, 224, 175, 128, 32, 0, 0, 33, 158, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224,
+			174, 174, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129, 20, 21, 146, 224, 174, 164, 224, 174, 159, 224, 174, 191, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 20, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224, 174, 174, 20, 24, 149, 224,
+			174, 170, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 20, 0, 27, 152, 224, 174, 164, 224, 175, 128,
+			224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174, 179, 224, 175, 141, 224, 174, 179, 20, 0, 12, 137, 224, 174, 149, 224, 175, 129, 224, 174,
+			163, 20, 0, 0, 0, 0, 24, 149, 224, 174, 164, 224, 175, 128, 224, 174, 170, 224, 174, 190, 224, 174, 181, 224, 174, 179, 224, 174, 191, 20,
+			0, 0, 0, 0, 0, 0, 14, 5, 95, 48, 77, 49, 24, 118, 57, 37, 34, 109, 65, 0, 0, 21, 146, 224, 174, 170, 224, 175, 139, 224,
+			174, 175, 224, 174, 191, 224, 174, 153, 224, 175, 141, 20, 20, 67, 28, 36, 0, 71, 34, 6, 37, 47, 37, 91, 15, 48, 6, 135, 50, 72,
+			88, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224, 175, 129, 20, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224,
+			174, 181, 224, 175, 135, 20, 0, 42, 167, 224, 174, 170, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 141, 20, 0, 27, 152, 224, 174, 170, 224, 174, 178, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 141, 20, 0, 0, 21, 146, 224, 174, 149, 224, 174, 190, 224, 174, 163,
+			224, 175, 141, 224, 174, 159, 224, 175, 129, 20, 0, 15, 140, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 20, 0, 27, 152, 224,
+			174, 149, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 20, 27, 152, 224, 174, 149, 224,
+			175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129, 20, 14, 4, 95, 51, 67, 48, 65, 40, 50,
+			50, 123, 51, 122, 0, 0, 0, 0, 0, 0, 12, 4, 95, 52, 67, 15, 50, 118, 50, 123, 51, 0, 12, 5, 95, 48, 77, 51, 24, 49,
+			119, 141, 37, 0, 0, 0, 24, 149, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 178, 20,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 19, 12, 224, 174, 137, 224, 174, 170, 224, 175, 141, 224, 174, 170, 40, 71, 71, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 183, 224, 174, 190, 20, 0, 20, 67, 73, 80, 128, 34, 6, 109,
+			91, 109, 50, 15, 34, 6, 123, 71, 109, 55, 88, 0, 0, 9, 3, 95, 49, 15, 39, 50, 51, 0, 0, 0, 0, 18, 12, 224, 174, 170,
+			224, 174, 191, 224, 174, 159, 224, 175, 141, 71, 37, 140, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 159, 224, 175, 141, 20, 0, 0,
+			0, 0, 0, 11, 3, 95, 50, 15, 37, 34, 109, 66, 141, 0, 13, 4, 95, 52, 67, 48, 50, 118, 50, 123, 51, 122, 0, 0, 0, 0,
+			0, 0, 27, 152, 224, 174, 164, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 191, 20, 11,
+			4, 95, 53, 67, 15, 134, 50, 123, 51, 0, 0, 0, 0, 10, 3, 95, 51, 15, 65, 123, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 129, 20, 13, 3, 95, 50, 48, 37, 34, 122, 71, 109, 72,
+			122, 0, 0, 0, 0, 0, 27, 152, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 175, 224,
+			175, 141, 20, 0, 9, 3, 95, 53, 15, 134, 50, 72, 0, 0, 0, 0, 18, 12, 224, 174, 154, 224, 175, 134, 224, 174, 159, 224, 175, 141,
+			89, 36, 140, 0, 27, 152, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 224, 175, 141,
+			20, 13, 3, 95, 51, 48, 65, 40, 48, 48, 109, 72, 122, 0, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 140, 224, 174, 169, 224,
+			175, 141, 20, 0, 8, 3, 95, 54, 15, 118, 51, 0, 0, 0, 18, 143, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
+			181, 20, 0, 0, 0, 0, 0, 0, 9, 3, 95, 55, 15, 38, 114, 92, 0, 0, 0, 0, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224,
+			175, 139, 224, 174, 164, 224, 174, 169, 224, 175, 136, 20, 0, 0, 0, 21, 146, 224, 174, 164, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
+			174, 169, 224, 175, 136, 20, 0, 14, 3, 95, 51, 88, 65, 40, 48, 48, 109, 47, 47, 122, 0, 13, 3, 95, 54, 48, 35, 51, 122, 71,
+			109, 72, 122, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 175, 128, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 136, 20, 0, 0,
+			11, 3, 95, 57, 15, 39, 50, 71, 109, 141, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 181, 224, 175, 135, 20, 0, 0, 14,
+			3, 95, 55, 48, 38, 36, 92, 122, 71, 109, 72, 122, 0, 0, 24, 149, 224, 174, 170, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 20, 12, 3, 95, 49, 67, 50, 123, 140, 140, 51, 37, 0, 0, 0, 0, 0, 12, 4, 95, 53, 67, 48,
+			134, 50, 123, 51, 122, 0, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 20, 0, 16, 3, 95, 49,
+			57, 48, 35, 47, 47, 39, 50, 71, 109, 72, 122, 0, 0, 0, 15, 3, 95, 50, 67, 37, 34, 122, 50, 123, 140, 140, 51, 37, 0, 0,
+			13, 4, 95, 54, 67, 15, 35, 51, 122, 50, 123, 51, 0, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224, 175, 139, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 20, 15, 140, 224, 174, 170, 224, 174, 181, 224, 174, 169, 224, 174, 191, 20, 0, 15, 3, 95,
+			49, 49, 48, 35, 47, 37, 50, 39, 50, 51, 122, 0, 0, 11, 3, 95, 49, 48, 48, 35, 47, 47, 122, 0, 0, 15, 3, 95, 51, 67,
+			65, 40, 50, 50, 123, 140, 140, 51, 37, 0, 0, 13, 4, 95, 52, 48, 15, 50, 118, 51, 48, 109, 72, 0, 16, 3, 95, 49, 50, 48,
+			109, 50, 50, 37, 34, 109, 66, 141, 122, 0, 0, 0, 0, 10, 3, 95, 52, 15, 50, 118, 50, 81, 0, 0, 0, 0, 15, 3, 95, 55,
+			88, 38, 36, 92, 122, 71, 109, 47, 47, 122, 0, 0, 14, 3, 95, 52, 67, 50, 118, 50, 123, 140, 140, 51, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 3, 95, 53, 67, 134, 50, 123, 140, 140, 51, 37, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 52, 48, 50,
+			118, 51, 48, 109, 72, 122, 0, 11, 3, 95, 49, 88, 48, 35, 72, 37, 50, 0, 0, 15, 3, 95, 54, 67, 35, 51, 122, 50, 123, 140,
+			140, 51, 37, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 50, 88, 37, 34, 122, 71, 109, 47, 47, 122, 0, 12, 3, 95, 53, 48,
+			134, 65, 71, 109, 72, 122, 0, 0, 16, 3, 95, 55, 67, 38, 36, 92, 122, 50, 123, 140, 140, 51, 37, 0, 0, 0, 0, 0, 10, 3,
+			95, 56, 15, 38, 36, 140, 140, 0, 0, 0, 0, 0, 19, 12, 224, 174, 154, 224, 175, 128, 224, 174, 154, 224, 175, 128, 76, 112, 76, 112,
+			0, 15, 3, 95, 56, 67, 38, 36, 66, 66, 123, 140, 140, 51, 37, 0, 0, 0, 0, 0, 16, 3, 95, 63, 63, 49, 40, 51, 37, 57,
+			4, 112, 141, 122, 10, 0, 0, 0, 18, 143, 224, 174, 164, 224, 174, 175, 224, 174, 190, 224, 174, 179, 224, 175, 129, 20, 0, 28, 18, 224,
+			174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 129, 224, 174, 159, 224, 174, 191, 141, 116, 48, 57, 122, 140, 37, 0, 14, 3, 95, 52, 88,
+			50, 118, 51, 48, 109, 47, 47, 122, 0, 0, 18, 3, 95, 57, 67, 47, 39, 62, 62, 118, 57, 37, 34, 109, 47, 47, 122, 0, 8, 3,
+			224, 174, 143, 57, 114, 0, 0, 0, 0, 18, 12, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 72, 37, 49, 0, 15, 140, 224,
+			174, 149, 224, 175, 135, 224, 174, 159, 224, 175, 141, 20, 15, 140, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 20, 15, 140, 224,
+			174, 170, 224, 174, 159, 224, 175, 129, 224, 174, 149, 20, 0, 14, 4, 95, 54, 67, 48, 35, 51, 122, 50, 123, 51, 122, 0, 0, 21, 146,
+			224, 174, 170, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 184, 224, 175, 141, 20, 0, 18, 143, 224, 174, 149, 224, 174, 179, 224, 174,
+			191, 224, 174, 178, 224, 175, 141, 20, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 141, 20, 10, 3, 224, 175,
+			141, 39, 140, 51, 122, 0, 0, 13, 3, 95, 53, 88, 134, 65, 71, 109, 47, 47, 122, 0, 13, 3, 95, 56, 48, 38, 36, 66, 71, 109,
+			72, 122, 0, 8, 3, 224, 175, 140, 148, 135, 0, 0, 0, 14, 4, 95, 55, 67, 15, 38, 36, 92, 122, 50, 123, 51, 0, 11, 6, 224,
+			174, 159, 224, 175, 141, 37, 140, 0, 0, 0, 8, 3, 224, 175, 136, 148, 134, 0, 0, 9, 3, 224, 175, 139, 148, 119, 12, 0, 9, 3,
+			224, 174, 131, 109, 81, 108, 0, 0, 8, 3, 224, 175, 138, 18, 39, 0, 14, 3, 224, 174, 130, 109, 50, 122, 89, 84, 109, 51, 109, 0,
+			12, 6, 224, 174, 153, 224, 175, 141, 37, 68, 81, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175, 141, 20, 33,
+			24, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 72, 37, 81, 72, 37,
+			81, 0, 14, 3, 95, 54, 88, 35, 51, 122, 71, 109, 47, 47, 122, 0, 13, 3, 95, 57, 48, 47, 39, 66, 66, 123, 51, 122, 0, 0,
+			9, 3, 224, 175, 135, 148, 114, 12, 0, 0, 12, 4, 95, 53, 48, 15, 134, 65, 71, 109, 72, 0, 8, 3, 224, 175, 134, 18, 36, 0,
+			0, 18, 143, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 174, 184, 224, 175, 141, 20, 8, 3, 224, 175, 129, 18, 40, 0, 0, 9, 3,
+			224, 175, 128, 148, 112, 12, 0, 0, 0, 9, 3, 224, 175, 130, 148, 123, 12, 0, 0, 0, 18, 143, 224, 174, 149, 224, 174, 190, 224, 174,
+			168, 224, 175, 141, 224, 174, 164, 20, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 20, 0, 0, 18, 12,
+			224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175, 135, 81, 34, 114, 0, 11, 6, 224, 174, 163, 224, 175, 141, 37, 66, 0, 0, 11, 3,
+			224, 175, 185, 34, 123, 71, 118, 57, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 169, 224,
+			175, 129, 20, 0, 0, 27, 152, 224, 174, 154, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 224, 175,
+			141, 20, 15, 140, 224, 174, 170, 224, 175, 130, 224, 174, 159, 224, 175, 141, 20, 14, 3, 95, 56, 88, 38, 36, 66, 71, 109, 47, 47, 122,
+			0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 20, 0, 18, 12, 224, 174, 170, 224, 175,
+			136, 224, 174, 149, 224, 175, 141, 71, 134, 49, 0, 0, 0, 26, 18, 224, 174, 164, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 184,
+			224, 175, 141, 87, 118, 68, 49, 89, 0, 0, 18, 143, 224, 174, 149, 224, 174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 141, 20, 30, 155,
+			224, 174, 164, 224, 175, 128, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 159, 224, 175, 129, 20, 18, 143,
+			224, 174, 170, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 141, 20, 0, 27, 152, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175,
+			141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 224, 175, 129, 20, 15, 3, 95, 57, 88, 47, 39, 66, 66, 123, 140, 140, 51, 122, 0, 0,
+			0, 11, 6, 224, 174, 175, 224, 175, 141, 37, 57, 0, 0, 0, 15, 9, 224, 174, 134, 224, 174, 149, 224, 174, 190, 118, 108, 118, 0, 0,
+			0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 174, 191, 20, 19, 12, 224, 174, 159, 224, 174, 191, 224, 174, 181, 224, 174, 191,
+			140, 37, 84, 37, 0, 11, 6, 224, 174, 177, 224, 175, 141, 37, 51, 0, 11, 6, 224, 174, 169, 224, 175, 141, 37, 50, 0, 0, 15, 140,
+			224, 174, 164, 224, 175, 135, 224, 174, 181, 224, 174, 190, 20, 0, 36, 24, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 176, 224, 175,
+			129, 224, 174, 159, 224, 174, 169, 224, 175, 141, 83, 118, 72, 109, 34, 122, 141, 109, 50, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 174,
+			164, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 20, 0, 18, 143, 224, 174, 164, 224,
+			174, 178, 224, 174, 190, 224, 174, 175, 224, 175, 141, 20, 0, 0, 0, 21, 146, 224, 174, 164, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224,
+			174, 169, 224, 175, 141, 20, 0, 0, 15, 140, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 175, 129, 20, 0, 24, 149, 224, 174, 164, 224,
+			175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175, 141, 20, 11, 6, 224, 174, 179, 224, 175, 141, 37, 62, 0, 0,
+			0, 0, 33, 24, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 175, 141, 71, 134,
+			49, 49, 113, 55, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 20, 0, 0,
+			21, 146, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 135, 20, 0, 24, 149, 224, 174, 149, 224, 174, 179,
+			224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 20, 0, 15, 4, 95, 55, 67, 48, 38, 36, 92, 122, 50, 123, 51,
+			122, 0, 0, 24, 149, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 178, 224, 175, 135, 224, 174, 175, 224, 175, 135, 20, 0, 0, 13,
+			4, 95, 56, 67, 15, 38, 36, 66, 66, 123, 51, 0, 0, 18, 143, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149,
+			20, 0, 0, 24, 149, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 175, 141, 20, 0, 0, 33,
+			158, 224, 174, 149, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
+			129, 20, 33, 158, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 224, 175, 129, 20, 33, 158, 224, 174, 170, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 20, 0, 9, 3, 224, 174, 190, 148, 118, 12, 0, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 178,
+			224, 174, 191, 224, 174, 175, 20, 8, 3, 224, 174, 191, 18, 37, 0, 0, 0, 0, 11, 6, 224, 174, 159, 224, 174, 191, 140, 37, 0, 0,
+			15, 4, 95, 48, 77, 50, 55, 109, 141, 76, 109, 47, 47, 122, 0, 0, 27, 152, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 174, 191, 20, 12, 4, 95, 48, 77, 51, 49, 119, 141, 37, 114, 0, 0, 0, 21, 146, 224,
+			174, 170, 224, 175, 128, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 20, 15, 4, 95, 48, 77, 49, 118, 57, 37, 34, 109, 47,
+			47, 122, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 174, 191, 20, 0, 0, 18, 143, 224, 174, 164, 224, 174, 159,
+			224, 174, 191, 224, 174, 175, 224, 174, 190, 20, 0, 0, 0, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224, 174, 190, 224, 174, 175, 224, 174,
+			164, 224, 175, 141, 224, 174, 176, 224, 174, 191, 20, 0, 18, 143, 224, 174, 170, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 178, 20,
+			0, 0, 12, 137, 224, 174, 170, 224, 174, 159, 224, 174, 190, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224,
+			174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+			140, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174, 191, 20, 11, 6, 224, 174, 184, 224, 175, 141, 37, 89, 0, 0, 0, 18, 143, 224,
+			174, 170, 224, 174, 159, 224, 175, 129, 224, 174, 181, 224, 174, 190, 20, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 56, 67, 48, 38, 36,
+			66, 66, 123, 51, 122, 0, 0, 0, 0, 0, 23, 15, 224, 174, 154, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 89, 37, 34,
+			109, 65, 0, 0, 0, 0, 0, 0, 32, 20, 95, 35, 224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149,
+			118, 84, 109, 72, 122, 65, 118, 81, 109, 0, 0, 0, 0, 0, 0, 0, 0, 23, 68, 80, 19, 73, 48, 224, 174, 164, 224, 174, 174, 224,
+			174, 191, 224, 174, 180, 224, 175, 141, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 24, 224, 174, 170, 224, 174,
+			190, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 174, 174, 224, 175, 141, 83, 118, 72, 109, 34, 37, 141, 109, 65, 0, 27,
+			152, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175, 141, 224, 174, 154, 224, 174, 174, 224, 175, 141, 20, 27, 152, 224, 174,
+			170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 170, 224, 175, 141, 20, 0, 0, 0, 0, 27, 152, 224,
+			174, 164, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 224, 175, 129, 20, 0, 0, 18, 67, 12, 230,
+			64, 76, 6, 134, 50, 112, 88, 15, 57, 6, 40, 109, 50, 0, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224,
+			174, 174, 224, 174, 174, 224, 175, 141, 20, 21, 146, 224, 174, 170, 224, 174, 163, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 20,
+			21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 174, 174, 224, 175, 141, 20, 0, 0, 0, 0, 0, 19, 12, 224, 174,
+			170, 224, 175, 136, 224, 174, 178, 224, 175, 136, 83, 134, 55, 134, 0, 0, 18, 12, 224, 174, 170, 224, 175, 129, 224, 174, 159, 224, 175, 141,
+			83, 40, 141, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175, 141, 20, 0, 14, 9, 95, 35, 45, 224, 174, 178, 224, 175,
+			141, 37, 55, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 149, 224, 174, 181, 224, 174, 164, 224, 175, 141, 20, 0, 18, 12, 224, 174, 170,
+			224, 175, 136, 224, 174, 178, 224, 175, 141, 83, 134, 55, 0, 15, 140, 224, 174, 164, 224, 174, 169, 224, 174, 174, 224, 175, 141, 20, 15, 140,
+			224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 20, 0, 0, 0, 18, 143, 224, 174, 164, 224, 175, 134, 224, 174, 169, 224, 174, 174,
+			224, 175, 141, 20, 12, 137, 224, 174, 170, 224, 174, 178, 224, 175, 135, 20, 0, 0, 15, 140, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224,
+			174, 174, 20, 24, 149, 224, 174, 170, 224, 175, 141, 224, 174, 175, 224, 175, 130, 224, 174, 169, 224, 174, 184, 224, 175, 141, 20, 0, 25, 18,
+			224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 71, 34, 114, 49, 0, 27, 18, 95, 35, 45, 224, 174,
+			181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 118, 84, 109, 72, 122, 65, 0, 0, 0, 27, 152, 224, 174, 170, 224, 175, 141,
+			224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 20, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 175, 141, 20, 0, 0, 0, 0, 23, 15, 224, 174, 170, 224, 175, 135, 224, 174,
+			169, 224, 175, 141, 224, 174, 178, 83, 114, 50, 55, 109, 0, 0, 0, 0, 17, 4, 95, 57, 67, 48, 47, 39, 62, 62, 118, 57, 37, 34,
+			109, 65, 0, 0, 0, 0, 0, 12, 137, 224, 174, 170, 224, 174, 178, 224, 174, 191, 20, 0, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224,
+			175, 130, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 20, 12, 137, 224, 174, 170, 224, 174, 176, 224, 174, 164, 20, 21, 146, 224,
+			174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 20, 0, 24, 149, 224, 174, 170, 224, 174, 190, 224, 174, 164,
+			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 20, 0, 13, 4, 95, 56, 48, 15, 38, 36, 66, 71, 109, 72, 0, 0, 0, 0,
+			0, 12, 137, 224, 174, 149, 224, 174, 175, 224, 174, 190, 20, 0, 0, 0, 12, 137, 224, 174, 164, 224, 174, 190, 224, 174, 169, 20, 0, 0,
+			0, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 178, 20, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 176, 20, 0,
+			0, 0, 0, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174, 170, 20, 0, 0, 0, 12, 137, 224, 174, 170, 224, 174, 190, 224, 174,
+			169, 20, 0, 19, 67, 41, 6, 64, 75, 6, 118, 48, 109, 50, 112, 88, 15, 57, 6, 36, 50, 0, 0, 0, 0, 24, 149, 224, 174, 164,
+			224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 174, 177, 224, 175, 141, 224, 174, 177, 20, 0, 0, 0, 27, 152, 224, 174, 164, 224, 174, 191,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 177, 224, 175, 141, 224, 174, 177, 20, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174,
+			178, 224, 175, 141, 224, 174, 175, 20, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 190,
+			20, 0, 15, 140, 224, 174, 170, 224, 175, 128, 224, 174, 159, 224, 174, 191, 20, 15, 140, 224, 174, 170, 224, 175, 139, 224, 174, 164, 224, 174,
+			191, 20, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 178, 224, 175, 129, 20, 0, 0, 0, 11, 2, 194, 190, 65, 40, 49, 49,
+			118, 55, 0, 0, 26, 18, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 34, 36, 141, 141, 37, 0,
+			18, 143, 224, 174, 170, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 190, 20, 13, 2, 195, 183, 84, 109, 81, 122, 47, 47, 109, 55,
+			0, 0, 8, 2, 194, 188, 49, 118, 55, 0, 0, 8, 2, 194, 189, 35, 34, 134, 0, 11, 6, 224, 174, 182, 224, 175, 141, 37, 91, 0,
+			0, 21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 181, 224, 175, 141, 224, 174, 178, 224, 174, 190, 20, 0, 13, 8, 95, 35, 224, 174, 174,
+			224, 175, 141, 118, 65, 0, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 190, 224, 174, 178, 224, 175, 141, 20, 18, 12, 224, 174, 170,
+			224, 175, 128, 224, 174, 178, 224, 175, 141, 83, 112, 55, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 190, 224, 174, 163, 224, 174, 174,
+			224, 175, 141, 20, 0, 0, 0, 0, 0, 0, 24, 149, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 174, 181, 224, 174, 164, 224, 174, 174,
+			224, 175, 141, 20, 33, 21, 95, 35, 45, 224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 149, 118, 84, 109,
+			72, 122, 65, 118, 81, 109, 0, 0, 13, 4, 95, 57, 48, 15, 47, 39, 66, 66, 123, 51, 0, 18, 67, 85, 49, 0, 57, 6, 40, 36,
+			89, 15, 72, 6, 39, 55, 109, 88, 0, 0, 0, 0, 14, 9, 224, 174, 134, 224, 174, 170, 224, 175, 141, 118, 83, 0, 0, 0, 0, 15,
+			140, 224, 174, 149, 224, 174, 169, 224, 174, 174, 224, 175, 141, 20, 0, 0, 21, 146, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141,
+			224, 174, 184, 224, 175, 141, 20, 0, 0, 0, 26, 17, 95, 35, 224, 174, 181, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 118,
+			84, 109, 72, 122, 65, 0, 0, 0, 12, 137, 224, 174, 164, 224, 175, 138, 224, 174, 179, 20, 0, 51, 36, 224, 174, 170, 224, 174, 190, 224,
+			174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 175, 141, 83,
+			118, 72, 109, 34, 37, 55, 55, 118, 65, 109, 55, 0, 0, 24, 149, 224, 174, 149, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164,
+			224, 174, 174, 224, 175, 141, 20, 0, 0, 0, 27, 152, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129,
+			224, 174, 174, 224, 175, 141, 20, 27, 152, 224, 174, 170, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 174,
+			224, 175, 141, 20, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 184, 224, 174, 191, 20, 0, 18, 143, 224, 174,
+			164, 224, 174, 190, 224, 174, 175, 224, 174, 174, 224, 175, 141, 20, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 178, 224, 174, 190,
+			20, 0, 25, 18, 224, 174, 159, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 154, 224, 175, 141, 140, 118, 34, 76, 0, 0, 0, 0,
+			0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 20, 21, 146, 224, 174, 170, 224,
+			174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 20, 13, 8, 95, 35, 224, 174, 178, 224, 175, 141, 37, 55, 0, 0, 0,
+			0, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 0, 0, 33, 158, 224, 174, 164, 224, 174, 190, 224, 174, 159,
+			224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 175, 224, 174, 174, 224, 175, 141, 20, 0, 18, 143, 224, 174, 170, 224, 174,
+			190, 224, 174, 149, 224, 174, 174, 224, 175, 141, 20, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 175, 129, 20, 0, 0, 26,
+			18, 224, 174, 170, 224, 175, 135, 224, 174, 169, 224, 174, 191, 224, 174, 178, 224, 175, 141, 83, 114, 50, 37, 55, 0, 26, 18, 224, 174, 170,
+			224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 178, 224, 175, 141, 83, 119, 50, 37, 55, 0, 0, 33, 158, 224, 174, 170, 224, 175, 139,
+			224, 174, 176, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 20, 0, 0, 24, 149, 224,
+			174, 154, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 175, 141, 20, 0, 0, 0, 27, 152, 224, 174, 149, 224,
+			175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 27, 152, 224, 174, 164, 224, 174, 181, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 27, 152, 224, 174, 170, 224, 174, 178, 224, 174, 164, 224,
+			175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 0, 17, 5, 95, 49, 77, 50, 24, 39, 34, 122, 55, 109, 141, 76,
+			109, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 5, 95, 49, 77, 51, 24, 39, 34, 122, 49, 119, 141, 37, 0, 0, 19, 12, 224,
+			174, 170, 224, 174, 190, 224, 174, 170, 224, 174, 190, 71, 118, 71, 118, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 174, 190,
+			20, 0, 0, 39, 164, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 175, 129, 224, 174, 174, 224, 175, 141, 20, 11, 2, 95, 34, 65, 114, 51, 81, 119, 62, 0, 0, 0, 0, 17, 2, 95, 39,
+			39, 140, 51, 134, 15, 65, 6, 114, 51, 81, 119, 62, 0, 0, 0, 13, 4, 95, 50, 48, 15, 37, 34, 122, 71, 109, 72, 0, 0, 0,
+			0, 14, 4, 95, 3, 1, 16, 49, 35, 48, 37, 140, 109, 55, 0, 0, 14, 2, 95, 41, 84, 109, 55, 109, 15, 48, 37, 51, 134, 0,
+			0, 13, 2, 95, 40, 37, 141, 109, 15, 48, 37, 51, 134, 0, 0, 0, 16, 2, 95, 46, 65, 40, 140, 51, 122, 15, 48, 40, 62, 62,
+			37, 0, 0, 12, 2, 95, 45, 37, 66, 134, 48, 48, 122, 81, 0, 0, 14, 2, 95, 44, 49, 118, 55, 15, 48, 40, 62, 62, 37, 0,
+			0, 10, 2, 95, 51, 65, 123, 50, 51, 122, 0, 0, 11, 2, 95, 50, 37, 34, 109, 66, 141, 122, 0, 0, 9, 2, 95, 49, 39, 50,
+			51, 122, 0, 0, 12, 2, 95, 48, 89, 40, 92, 37, 57, 109, 65, 0, 0, 9, 2, 95, 55, 38, 114, 92, 122, 0, 0, 8, 2, 95,
+			54, 118, 51, 122, 0, 0, 9, 2, 95, 53, 134, 50, 72, 122, 0, 0, 10, 2, 95, 52, 50, 118, 50, 81, 122, 0, 0, 15, 2, 95,
+			59, 118, 34, 134, 71, 15, 48, 40, 62, 62, 37, 0, 0, 17, 2, 95, 58, 65, 40, 49, 49, 118, 55, 15, 48, 40, 62, 62, 37, 0,
+			0, 11, 2, 95, 57, 39, 50, 71, 109, 141, 122, 0, 0, 18, 12, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 190, 71, 34, 118,
+			0, 10, 2, 95, 56, 38, 36, 140, 140, 122, 0, 0, 10, 2, 95, 63, 49, 114, 62, 84, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 190, 224, 174, 174, 224, 174, 190, 20, 0, 0, 0, 0,
+			24, 149, 224, 174, 164, 224, 174, 175, 224, 174, 190, 224, 174, 168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 20, 0, 0, 0, 0, 0, 15,
+			140, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 141, 20, 16, 2, 95, 91, 37, 141, 109, 15, 89, 35, 72, 122, 34, 109, 65, 0,
+			0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 20, 0, 14, 2, 95, 95, 35, 141, 37, 81,
+			15, 49, 119, 141, 122, 0, 0, 0, 17, 2, 95, 93, 84, 109, 55, 109, 15, 89, 35, 72, 122, 34, 109, 65, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 13, 4, 95, 51, 48, 15, 65, 40, 48, 48, 109, 72, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224,
+			175, 141, 20, 0, 0, 15, 140, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 175, 135, 20, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224,
+			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 174, 224, 175, 141, 20, 21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 190, 224,
+			174, 174, 224, 175, 141, 20, 0, 0, 0, 24, 149, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169, 224, 174, 174, 224,
+			175, 141, 20, 0, 0, 21, 146, 224, 174, 154, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 128, 20, 0, 0, 0, 33,
 			158, 224, 174, 170, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 179, 224, 174, 191, 224, 174, 174, 224, 174, 190, 224, 174, 184, 224, 175,
-			141, 15, 17, 5, 95, 49, 77, 50, 120, 39, 34, 122, 55, 109, 140, 76, 109, 65, 0, 0, 0, 15, 140, 224, 174, 149, 224, 174, 159, 224,
-			174, 174, 224, 175, 141, 15, 14, 2, 95, 123, 37, 140, 109, 15, 81, 109, 66, 109, 65, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174,
-			176, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
-			174, 224, 175, 141, 15, 15, 5, 95, 49, 77, 51, 120, 39, 34, 122, 49, 119, 140, 37, 0, 15, 2, 95, 125, 84, 109, 55, 109, 15, 81,
-			109, 66, 109, 65, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 176, 224, 174, 164, 224, 175, 141, 15, 0, 0, 13, 4,
-			95, 50, 48, 111, 37, 34, 122, 71, 109, 72, 0, 0, 16, 11, 95, 35, 224, 174, 135, 224, 174, 178, 224, 175, 141, 37, 55, 0, 0, 15,
-			140, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 15, 17, 12, 95, 35, 45, 224, 174, 135, 224, 174, 178, 224, 175, 141, 37, 55,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 174, 170, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154,
-			224, 174, 191, 224, 174, 178, 224, 175, 141, 15, 27, 152, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191,
-			224, 174, 178, 224, 175, 141, 15, 0, 24, 149, 224, 174, 149, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174,
-			169, 15, 0, 0, 0, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175,
-			129, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 175, 141, 224,
-			174, 170, 224, 174, 190, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 174, 191, 15,
-			0, 15, 140, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224, 174, 190, 15, 0, 0, 0, 0, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224,
-			174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 13, 4, 95, 51, 48, 111, 65, 40, 48, 48, 109, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 174, 154, 224,
-			175, 141, 37, 76, 0, 0, 0, 9, 134, 224, 174, 154, 224, 175, 139, 15, 0, 0, 11, 6, 224, 174, 156, 224, 175, 141, 37, 75, 0, 0,
-			0, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 170, 224, 175, 141, 15, 15, 140, 224, 174, 170, 224, 175, 135, 224, 174,
-			183, 224, 175, 141, 15, 0, 0, 21, 146, 224, 174, 170, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 15, 0, 0,
-			0, 0, 21, 146, 224, 174, 164, 224, 175, 136, 224, 174, 181, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 11, 6, 224, 174, 158, 224, 175,
-			141, 37, 67, 0, 0, 0, 0, 14, 9, 95, 35, 45, 224, 174, 174, 224, 175, 141, 118, 65, 0, 0, 0, 0, 18, 12, 224, 174, 159, 224,
-			174, 191, 224, 174, 149, 224, 175, 141, 139, 37, 49, 0, 18, 12, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 76, 37, 49, 0,
-			13, 6, 224, 174, 154, 224, 175, 135, 89, 6, 114, 0, 25, 9, 134, 224, 174, 154, 224, 175, 135, 15, 0, 0, 0, 18, 143, 224, 174, 170,
-			224, 175, 135, 224, 174, 164, 224, 174, 174, 224, 175, 141, 15, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 0,
-			0, 33, 158, 224, 174, 164, 224, 174, 181, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 178,
-			224, 175, 141, 15, 25, 18, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 71, 34, 114, 49, 0, 0,
-			9, 134, 224, 174, 154, 224, 175, 128, 15, 22, 15, 95, 35, 45, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 37, 55, 122, 65,
-			0, 0, 9, 134, 224, 174, 164, 224, 175, 139, 15, 0, 0, 11, 6, 224, 174, 170, 224, 175, 141, 37, 48, 0, 0, 0, 0, 24, 149, 224,
-			174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 24, 149, 224, 174, 164, 224, 175, 134, 224,
-			174, 169, 224, 174, 174, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 24, 149, 224, 174, 164, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224,
-			175, 129, 224, 174, 174, 224, 175, 141, 15, 0, 11, 6, 224, 174, 164, 224, 175, 141, 37, 47, 0, 0, 0, 18, 12, 224, 174, 170, 224, 175,
-			139, 224, 174, 169, 224, 175, 141, 83, 119, 50, 0, 21, 146, 224, 174, 154, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175,
-			135, 15, 27, 152, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 174, 224, 175, 129, 224, 174, 174, 224, 175, 141, 15, 27,
-			152, 224, 174, 170, 224, 175, 130, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 174, 224, 175, 141, 15, 11, 3, 95, 122,
-			104, 76, 6, 112, 50, 109, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 141, 15, 0, 15,
-			140, 224, 174, 149, 224, 175, 135, 224, 174, 174, 224, 175, 141, 15, 9, 134, 224, 174, 164, 224, 174, 159, 15, 15, 140, 224, 174, 170, 224, 175,
-			129, 224, 174, 184, 224, 175, 141, 15, 0, 0, 21, 146, 224, 174, 170, 224, 175, 128, 224, 174, 176, 224, 174, 191, 224, 174, 169, 224, 175, 141,
-			15, 18, 143, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 178, 15, 0, 0, 0, 0, 11, 6, 224, 174, 174, 224, 175,
-			141, 37, 65, 0, 0, 0, 32, 24, 224, 174, 159, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 175, 224, 174, 191, 224, 174, 169, 224,
-			175, 141, 139, 34, 114, 57, 50, 0, 0, 0, 33, 158, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 134,
-			224, 174, 169, 224, 175, 141, 224, 174, 177, 224, 175, 129, 15, 12, 137, 224, 174, 170, 224, 175, 130, 224, 174, 164, 15, 11, 6, 224, 174, 176,
-			224, 175, 141, 37, 34, 0, 11, 6, 224, 174, 168, 224, 175, 141, 37, 50, 0, 0, 0, 0, 16, 6, 224, 174, 176, 224, 175, 130, 34, 123,
-			71, 118, 57, 0, 24, 46, 0, 6, 20, 0, 230, 11, 0, 0, 48, 0, 0, 0, 231, 11, 0, 0, 49, 0, 0, 0, 232, 11, 0, 0,
-			50, 0, 0, 0, 233, 11, 0, 0, 51, 0, 0, 0, 234, 11, 0, 0, 52, 0, 0, 0, 235, 11, 0, 0, 53, 0, 0, 0, 236, 11,
-			0, 0, 54, 0, 0, 0, 237, 11, 0, 0, 55, 0, 0, 0, 238, 11, 0, 0, 56, 0, 0, 0, 239, 11, 0, 0, 57, 0, 0, 0,
-			198, 11, 190, 11, 202, 11, 0, 0, 199, 11, 190, 11, 203, 11, 0, 0, 198, 11, 215, 11, 204, 11, 0, 0, 0, 0, 0, 0, 6, 18,
-			66, 224, 174, 183, 224, 175, 141, 0, 224, 174, 184, 224, 175, 141, 0, 224, 174, 159, 224, 175, 141, 0, 7, 6, 18, 67, 224, 174, 159, 224,
-			175, 141, 0, 224, 174, 177, 224, 175, 141, 0, 224, 174, 183, 224, 175, 141, 0, 224, 174, 184, 224, 175, 141, 0, 7, 6, 18, 68, 224, 174,
-			135, 0, 224, 174, 142, 0, 224, 174, 133, 0, 7, 6, 18, 69, 224, 174, 154, 0, 224, 174, 184, 0, 7, 6, 18, 70, 224, 174, 176, 0,
-			224, 174, 177, 0, 7, 6, 18, 71, 224, 174, 149, 0, 224, 174, 185, 0, 7, 6, 18, 72, 224, 175, 134, 224, 174, 179, 0, 224, 175, 140,
-			0, 7, 6, 18, 73, 224, 174, 191, 0, 224, 175, 128, 0, 7, 6, 18, 74, 224, 174, 168, 0, 224, 174, 169, 0, 224, 174, 163, 0, 7,
-			6, 18, 75, 224, 174, 178, 0, 224, 174, 179, 0, 7, 6, 18, 76, 224, 174, 170, 0, 224, 174, 164, 0, 224, 174, 149, 0, 7, 6, 18,
-			77, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 0, 224, 174, 170, 224, 175, 141, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224,
-			175, 141, 0, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174,
-			149, 224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174, 168, 224, 175, 128, 224, 174, 176, 224, 175, 141, 0, 224, 174, 164, 224, 174, 163, 224,
-			175, 141, 224, 174, 163, 224, 175, 128, 224, 174, 176, 224, 175, 141, 0, 224, 174, 181, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159,
-			224, 174, 176, 224, 175, 141, 0, 224, 174, 149, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 224,
-			174, 174, 224, 174, 176, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 224, 174, 138, 224, 174, 177, 224, 175, 129,
-			224, 174, 149, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 224, 174, 181, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 0, 224, 174, 149, 224, 175, 141, 224, 174, 179,
-			224, 174, 190, 224, 174, 184, 224, 175, 141, 0, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174, 164, 224,
-			174, 163, 224, 175, 141, 224, 174, 163, 224, 174, 191, 0, 224, 174, 138, 224, 174, 177, 224, 175, 129, 224, 174, 149, 224, 174, 190, 0, 224, 174,
-			170, 224, 175, 128, 224, 174, 176, 224, 175, 141, 0, 224, 174, 149, 224, 174, 178, 224, 174, 176, 224, 175, 141, 0, 224, 174, 154, 224, 175, 139,
-			224, 174, 159, 224, 174, 190, 0, 224, 174, 174, 224, 174, 164, 224, 175, 129, 0, 7, 6, 18, 78, 224, 174, 181, 224, 174, 190, 224, 174, 180,
-			224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 224, 174, 181, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174,
-			168, 224, 175, 141, 224, 174, 164, 0, 224, 174, 174, 224, 174, 169, 224, 174, 191, 224, 174, 164, 224, 174, 169, 0, 224, 174, 170, 224, 175, 130,
-			224, 174, 174, 224, 174, 191, 0, 7, 6, 18, 79, 224, 174, 168, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 175, 129, 224, 174, 170, 224, 175, 141, 0, 224, 174, 168, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 175, 129, 0, 224, 174, 164, 224, 175, 128, 224, 174, 170, 224, 175, 141, 0, 224, 174, 164, 224, 175, 128, 0, 7, 6, 18,
-			80, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 224, 174, 170, 224,
-			174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 224, 174, 174, 224, 175, 128, 224, 174, 178, 224, 175, 141,
-			224, 174, 184, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 184, 0, 224, 174, 159, 224, 174, 190, 224, 174, 184, 0,
-			7, 6, 18, 81, 224, 174, 174, 224, 175, 135, 224, 174, 177, 224, 175, 141, 0, 224, 174, 149, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0,
-			224, 174, 133, 224, 174, 164, 224, 174, 191, 224, 174, 149, 0, 224, 174, 174, 224, 175, 135, 224, 174, 178, 0, 7, 6, 18, 82, 224, 174, 149,
-			224, 175, 129, 224, 174, 180, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175,
-			141, 224, 174, 159, 224, 174, 191, 0, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 136, 0, 224, 174, 149,
-			224, 175, 129, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 224, 174, 149, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175,
-			136, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 191, 0, 7, 6, 18, 83, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 175,
-			141, 224, 174, 179, 224, 175, 136, 0, 224, 174, 170, 224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 224, 174, 170, 224, 175, 136, 224, 174, 175,
-			224, 174, 169, 0, 7, 6, 18, 84, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 224, 174, 164, 224, 174, 153,
-			224, 175, 141, 224, 174, 149, 0, 7, 6, 18, 85, 224, 174, 170, 224, 174, 178, 224, 175, 141, 0, 224, 174, 170, 224, 174, 177, 224, 175, 141,
-			0, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 224, 174, 170, 224, 174, 154, 224, 174, 191,
-			0, 7, 6, 18, 86, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224,
-			174, 169, 224, 175, 141, 0, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169,
-			224, 175, 141, 0, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 0, 224, 174, 133, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 175, 0, 224, 174, 154, 224, 174, 174,
+			141, 20, 0, 0, 18, 12, 224, 174, 164, 224, 175, 128, 224, 174, 170, 224, 175, 141, 72, 112, 48, 0, 15, 140, 224, 174, 149, 224, 174, 159,
+			224, 174, 174, 224, 175, 141, 20, 14, 2, 95, 123, 37, 141, 109, 15, 81, 109, 66, 109, 65, 0, 0, 0, 0, 18, 143, 224, 174, 170, 224,
+			174, 176, 224, 174, 164, 224, 174, 174, 224, 175, 141, 20, 0, 0, 0, 21, 146, 224, 174, 149, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
+			174, 174, 224, 175, 141, 20, 15, 2, 95, 125, 84, 109, 55, 109, 15, 81, 109, 66, 109, 65, 0, 0, 0, 0, 0, 0, 0, 35, 24, 224,
+			174, 170, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 71, 109, 47, 47, 37, 34, 109,
+			48, 0, 15, 140, 224, 174, 170, 224, 174, 176, 224, 174, 164, 224, 175, 141, 20, 0, 0, 0, 0, 15, 140, 224, 174, 164, 224, 174, 191, 224,
+			174, 178, 224, 175, 141, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 152, 224, 174, 170, 224, 175, 128, 224, 174, 154, 224,
+			175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 27, 152, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 20, 0, 24, 149, 224, 174, 149, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159,
+			224, 174, 190, 224, 174, 169, 20, 0, 0, 23, 15, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 176, 224, 175, 141, 83, 118, 72, 109,
+			34, 0, 0, 27, 152, 224, 174, 170, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 20,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 146, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 175, 141, 224, 174, 170,
+			224, 174, 190, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 174, 191, 20, 0, 15,
+			140, 224, 174, 170, 224, 174, 178, 224, 174, 174, 224, 174, 190, 20, 0, 0, 0, 0, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224, 174, 154,
+			224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 174, 154, 224, 175, 141, 37, 76, 0, 0, 0, 9, 134, 224, 174, 154, 224, 175, 139,
+			20, 0, 0, 11, 6, 224, 174, 156, 224, 175, 141, 37, 75, 0, 0, 0, 0, 0, 0, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174,
+			170, 224, 175, 141, 20, 15, 140, 224, 174, 170, 224, 175, 135, 224, 174, 183, 224, 175, 141, 20, 0, 0, 21, 146, 224, 174, 170, 224, 174, 190,
+			224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 20, 0, 0, 0, 0, 21, 146, 224, 174, 164, 224, 175, 136, 224, 174, 181, 224, 174,
+			164, 224, 174, 174, 224, 175, 141, 20, 11, 6, 224, 174, 158, 224, 175, 141, 37, 67, 0, 0, 0, 0, 14, 9, 95, 35, 45, 224, 174, 174,
+			224, 175, 141, 118, 65, 0, 0, 0, 0, 18, 12, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 140, 37, 49, 0, 18, 12, 224,
+			174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 76, 37, 49, 0, 9, 134, 224, 174, 154, 224, 175, 135, 20, 0, 0, 0, 18, 143, 224,
+			174, 170, 224, 175, 135, 224, 174, 164, 224, 174, 174, 224, 175, 141, 20, 0, 15, 140, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141,
+			20, 0, 0, 33, 158, 224, 174, 164, 224, 174, 181, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224,
+			174, 178, 224, 175, 141, 20, 25, 18, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 71, 34, 114, 49,
+			0, 0, 9, 134, 224, 174, 154, 224, 175, 128, 20, 0, 9, 134, 224, 174, 164, 224, 175, 139, 20, 0, 0, 11, 6, 224, 174, 170, 224, 175,
+			141, 37, 48, 0, 0, 0, 0, 24, 149, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141,
+			20, 24, 149, 224, 174, 164, 224, 175, 134, 224, 174, 169, 224, 174, 174, 224, 175, 129, 224, 174, 174, 224, 175, 141, 20, 24, 149, 224, 174, 164,
+			224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174, 174, 224, 175, 141, 20, 0, 11, 6, 224, 174, 164, 224, 175, 141, 37, 47,
+			0, 0, 0, 18, 12, 224, 174, 170, 224, 175, 139, 224, 174, 169, 224, 175, 141, 83, 119, 50, 0, 21, 146, 224, 174, 154, 224, 175, 135, 224,
+			174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 135, 20, 27, 152, 224, 174, 164, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 174, 224,
+			175, 129, 224, 174, 174, 224, 175, 141, 20, 27, 152, 224, 174, 170, 224, 175, 130, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224,
+			174, 174, 224, 175, 141, 20, 0, 0, 0, 18, 143, 224, 174, 170, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 141, 20, 0, 9, 134,
+			224, 174, 164, 224, 174, 159, 20, 15, 140, 224, 174, 170, 224, 175, 129, 224, 174, 184, 224, 175, 141, 20, 0, 0, 21, 146, 224, 174, 170, 224,
+			175, 128, 224, 174, 176, 224, 174, 191, 224, 174, 169, 224, 175, 141, 20, 18, 143, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224,
+			174, 178, 20, 0, 0, 0, 0, 11, 6, 224, 174, 174, 224, 175, 141, 37, 65, 0, 0, 0, 32, 24, 224, 174, 159, 224, 174, 191, 224, 174,
+			176, 224, 175, 135, 224, 174, 175, 224, 174, 191, 224, 174, 169, 224, 175, 141, 140, 34, 114, 57, 50, 0, 0, 0, 33, 158, 224, 174, 149, 224,
+			175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 224, 175, 129, 20, 12, 137, 224,
+			174, 170, 224, 175, 130, 224, 174, 164, 20, 11, 6, 224, 174, 176, 224, 175, 141, 37, 34, 0, 11, 6, 224, 174, 168, 224, 175, 141, 37, 50,
+			0, 0, 0, 0, 16, 6, 224, 174, 176, 224, 175, 130, 34, 123, 71, 118, 57, 0, 24, 9, 0, 6, 20, 0, 230, 11, 0, 0, 48, 0,
+			0, 0, 231, 11, 0, 0, 49, 0, 0, 0, 232, 11, 0, 0, 50, 0, 0, 0, 233, 11, 0, 0, 51, 0, 0, 0, 234, 11, 0, 0,
+			52, 0, 0, 0, 235, 11, 0, 0, 53, 0, 0, 0, 236, 11, 0, 0, 54, 0, 0, 0, 237, 11, 0, 0, 55, 0, 0, 0, 238, 11,
+			0, 0, 56, 0, 0, 0, 239, 11, 0, 0, 57, 0, 0, 0, 198, 11, 190, 11, 202, 11, 0, 0, 199, 11, 190, 11, 203, 11, 0, 0,
+			198, 11, 215, 11, 204, 11, 0, 0, 0, 0, 0, 0, 6, 18, 66, 224, 174, 183, 224, 175, 141, 0, 224, 174, 184, 224, 175, 141, 0, 224,
+			174, 159, 224, 175, 141, 0, 7, 6, 18, 67, 224, 174, 159, 224, 175, 141, 0, 224, 174, 177, 224, 175, 141, 0, 224, 174, 183, 224, 175, 141,
+			0, 224, 174, 184, 224, 175, 141, 0, 7, 6, 18, 68, 224, 174, 135, 0, 224, 174, 142, 0, 224, 174, 133, 0, 7, 6, 18, 69, 224, 174,
+			154, 0, 224, 174, 184, 0, 7, 6, 18, 70, 224, 174, 176, 0, 224, 174, 177, 0, 7, 6, 18, 71, 224, 174, 149, 0, 224, 174, 185, 0,
+			7, 6, 18, 72, 224, 175, 134, 224, 174, 179, 0, 224, 175, 140, 0, 7, 6, 18, 73, 224, 174, 191, 0, 224, 175, 128, 0, 7, 6, 18,
+			74, 224, 174, 168, 0, 224, 174, 169, 0, 7, 6, 18, 75, 224, 174, 178, 0, 224, 174, 179, 0, 7, 6, 18, 76, 224, 174, 170, 0, 224,
+			174, 164, 0, 224, 174, 149, 0, 7, 6, 18, 77, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224,
+			174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 224, 174, 170, 224, 175, 141, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141,
+			224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175,
+			141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 164, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 128, 224, 174, 176, 224, 175, 141, 0,
+			224, 174, 181, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 0, 224, 174, 149, 224, 174, 163, 224, 175,
+			141, 224, 174, 163, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 224, 174, 174, 224, 174, 176, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224,
+			174, 164, 224, 175, 129, 0, 224, 174, 138, 224, 174, 177, 224, 175, 129, 224, 174, 149, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 224, 174,
+			181, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224,
+			174, 184, 224, 175, 141, 0, 224, 174, 149, 224, 175, 141, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 0, 224, 174, 154, 224, 174,
+			190, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174, 164, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 174, 191, 0, 224, 174, 138,
+			224, 174, 177, 224, 175, 129, 224, 174, 149, 224, 174, 190, 0, 224, 174, 170, 224, 175, 128, 224, 174, 176, 224, 175, 141, 0, 224, 174, 149, 224,
+			174, 178, 224, 174, 176, 224, 175, 141, 0, 224, 174, 154, 224, 175, 139, 224, 174, 159, 224, 174, 190, 0, 224, 174, 174, 224, 174, 164, 224, 175,
+			129, 0, 7, 6, 18, 78, 224, 174, 181, 224, 174, 190, 224, 174, 180, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136,
+			0, 224, 174, 181, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 224, 174, 174, 224, 174, 169, 224,
+			174, 191, 224, 174, 164, 224, 174, 169, 0, 224, 174, 170, 224, 175, 130, 224, 174, 174, 224, 174, 191, 0, 7, 6, 18, 79, 224, 174, 168, 224,
+			175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 170, 224, 175, 141, 0, 224, 174, 168,
+			224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 0, 224, 174, 164, 224, 175, 128, 224, 174,
+			170, 224, 175, 141, 0, 224, 174, 164, 224, 175, 128, 0, 7, 6, 18, 80, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
+			174, 178, 0, 224, 174, 174, 224, 175, 128, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174,
+			190, 224, 174, 184, 0, 224, 174, 159, 224, 174, 190, 224, 174, 184, 0, 7, 6, 18, 81, 224, 174, 174, 224, 175, 135, 224, 174, 177, 224, 175,
+			141, 0, 224, 174, 149, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0, 224, 174, 174, 224, 175, 135, 224, 174, 178, 0, 7, 6, 18, 82, 224,
+			174, 149, 224, 175, 129, 224, 174, 180, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 224, 174, 149, 224, 175, 129, 224, 174, 159,
+			224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 136, 0, 224,
+			174, 149, 224, 175, 129, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 224, 174, 149, 224, 174, 180, 224, 175, 129, 224, 174, 164,
+			224, 175, 136, 0, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 191, 0, 7, 6, 18, 83, 224, 174, 170, 224, 174, 191, 224, 174, 179,
+			224, 175, 141, 224, 174, 179, 224, 175, 136, 0, 224, 174, 170, 224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 224, 174, 170, 224, 175, 136, 224,
+			174, 175, 224, 174, 169, 0, 7, 6, 18, 84, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 224, 174, 164, 224,
+			174, 153, 224, 175, 141, 224, 174, 149, 0, 7, 6, 18, 85, 224, 174, 170, 224, 174, 178, 224, 175, 141, 0, 224, 174, 170, 224, 174, 177, 224,
+			175, 141, 0, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 7, 6, 18, 86, 224, 174, 176,
+			224, 174, 190, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 224, 174,
+			174, 224, 175, 129, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 224, 174, 176, 224,
+			174, 190, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 224, 174, 154, 224, 174, 174,
 			224, 174, 168, 224, 174, 191, 224, 174, 178, 224, 175, 136, 0, 224, 174, 154, 224, 174, 149, 224, 175, 139, 224, 174, 164, 224, 174, 176, 0, 224,
 			174, 154, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 224, 174, 154, 224, 174, 191, 224, 174, 168, 224, 175, 135, 224, 174, 149,
 			0, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 175, 135, 224, 174, 149, 0, 224, 174, 154, 224, 174, 174, 224, 174, 174, 224, 174, 190, 224,
@@ -42606,337 +31262,275 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			142, 224, 174, 159, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 142, 224, 174, 159, 224, 175, 129, 224, 174, 170, 224,
 			175, 141, 224, 174, 170, 0, 7, 6, 18, 90, 224, 174, 168, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174,
 			175, 0, 224, 174, 159, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 174, 168, 224, 174, 159, 224, 174, 169, 0, 7, 6,
-			18, 91, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 133,
-			224, 174, 159, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 181, 224, 175,
-			141, 0, 224, 174, 149, 224, 174, 169, 224, 175, 134, 224, 174, 149, 224, 175, 141, 0, 7, 6, 18, 92, 32, 224, 174, 143, 224, 174, 177, 224,
-			175, 141, 224, 174, 170, 224, 174, 159, 0, 32, 224, 174, 137, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 32, 224, 174, 135, 224, 174, 178,
-			224, 175, 141, 224, 174, 178, 0, 224, 174, 175, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 224, 174, 175, 224, 175, 129, 224, 174, 159, 224,
-			174, 169, 0, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 224, 174, 175, 224, 174, 191, 0, 224, 174, 175, 224, 175, 136, 0, 7, 6, 18,
-			93, 224, 174, 146, 224, 174, 179, 0, 224, 174, 148, 0, 7, 6, 18, 94, 224, 174, 154, 224, 175, 134, 224, 174, 175, 224, 175, 141, 0, 224,
-			174, 170, 224, 174, 163, 224, 175, 141, 0, 7, 6, 18, 95, 224, 174, 174, 224, 175, 134, 224, 174, 159, 224, 174, 178, 0, 224, 174, 131, 224,
-			174, 170, 224, 174, 191, 224, 174, 183, 0, 224, 174, 170, 224, 174, 191, 224, 174, 183, 0, 7, 6, 18, 96, 224, 175, 129, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 0, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191, 224, 174, 178, 0,
-			224, 175, 129, 224, 174, 174, 0, 224, 175, 141, 32, 0, 224, 175, 136, 0, 7, 6, 18, 97, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 224, 174, 168, 224, 174, 191, 224, 174, 154, 224, 174, 191, 0, 224, 174,
-			181, 224, 175, 135, 224, 174, 179, 224, 175, 136, 0, 224, 174, 156, 224, 174, 190, 224, 174, 174, 0, 7, 6, 18, 98, 224, 174, 170, 224, 174,
-			191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 224, 174, 174, 224, 174, 190, 224, 174, 179, 224,
-			174, 191, 224, 174, 149, 224, 175, 136, 0, 224, 174, 149, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 159, 0, 224, 174,
-			133, 224, 174, 178, 224, 175, 129, 224, 174, 181, 224, 174, 178, 224, 174, 149, 0, 7, 6, 1, 4, 0, 224, 174, 149, 2, 17, 66, 3, 81,
-			100, 0, 224, 174, 149, 3, 81, 100, 109, 0, 4, 224, 174, 170, 2, 17, 66, 3, 83, 0, 224, 174, 170, 224, 174, 191, 8, 2, 224, 174,
-			176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 0, 224, 174, 170, 3, 83, 109, 0, 224, 174, 164, 2, 17, 66, 3, 100, 72, 0, 224, 174,
-			164, 3, 100, 72, 109, 0, 3, 107, 0, 7, 6, 1, 8, 0, 4, 2, 224, 174, 175, 224, 175, 135, 224, 174, 154, 3, 0, 4, 2, 224,
-			174, 176, 224, 174, 149, 224, 174, 154, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 176, 224, 174, 149, 224, 175, 129, 3, 0, 4,
-			2, 224, 174, 176, 224, 174, 149, 224, 175, 129, 224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 3,
-			0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 169, 224, 175, 136, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174,
-			175, 224, 174, 169, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 149, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154,
-			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 163, 224, 174, 153, 224, 175, 141, 3, 0, 4, 2, 224, 174, 176, 224, 174, 163,
-			224, 174, 164, 224, 175, 141, 3, 0, 4, 2, 224, 174, 176, 224, 174, 163, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 32,
-			3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 3, 0, 4, 2, 224, 174, 176, 224,
-			174, 164, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 224, 174, 174, 3, 0, 4, 2, 224, 174,
-			176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 170, 224, 175, 128, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 174, 191, 224, 174, 176, 3, 0, 4, 2, 224, 174, 176, 224, 174, 174, 224, 174, 163, 3, 0, 4, 2, 224, 174, 176, 224, 174,
-			174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 176, 224, 174, 175, 224, 174, 191, 224, 174, 178, 3,
-			0, 4, 2, 224, 174, 176, 224, 174, 181, 224, 175, 128, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 3, 0, 4,
-			2, 224, 174, 176, 224, 174, 181, 224, 175, 136, 224, 174, 149, 224, 174, 179, 3, 0, 4, 2, 224, 174, 176, 224, 174, 181, 224, 175, 136, 224,
-			174, 175, 224, 175, 136, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174,
-			149, 224, 175, 141, 32, 224, 174, 149, 224, 174, 190, 224, 174, 178, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 154, 3, 0, 4,
-			2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224,
-			174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 183, 3, 0, 4, 2, 224, 174,
-			176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 12, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 163, 224, 174, 191, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 129, 224, 174, 181, 3, 0, 4, 2, 224,
-			174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 174, 191, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164,
-			224, 174, 190, 224, 174, 181, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 175, 141, 32, 3, 0, 4, 2, 224, 174, 176,
+			18, 91, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 184,
+			224, 175, 141, 224, 174, 159, 224, 174, 181, 224, 175, 141, 0, 224, 174, 149, 224, 174, 169, 224, 175, 134, 224, 174, 149, 224, 175, 141, 0, 7,
+			6, 1, 4, 0, 224, 174, 149, 2, 17, 66, 3, 81, 100, 0, 224, 174, 149, 3, 81, 100, 109, 0, 224, 174, 170, 2, 17, 66, 3, 83,
+			0, 224, 174, 170, 3, 83, 109, 0, 224, 174, 164, 2, 17, 66, 3, 100, 72, 0, 224, 174, 164, 3, 100, 72, 109, 0, 3, 107, 0, 7,
+			6, 1, 8, 0, 4, 2, 224, 174, 175, 224, 175, 135, 224, 174, 154, 3, 0, 4, 2, 224, 174, 176, 224, 174, 149, 224, 174, 154, 224, 174,
+			191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 176, 224, 174, 149, 224, 175, 129, 3, 0, 4, 2, 224, 174, 176, 224, 174, 149, 224, 175, 129,
+			224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224,
+			174, 169, 224, 175, 136, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174, 175, 224, 174, 169, 3, 0, 4, 2, 224, 174,
+			176, 224, 174, 154, 224, 174, 191, 224, 174, 149, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 3, 0, 4, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 0, 4, 2, 224, 174,
+			176, 224, 174, 163, 224, 174, 153, 224, 175, 141, 3, 0, 4, 2, 224, 174, 176, 224, 174, 163, 224, 174, 164, 224, 175, 141, 3, 0, 4, 2,
+			224, 174, 176, 224, 174, 163, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 32, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164,
+			224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			3, 0, 4, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 176, 224,
+			174, 175, 224, 174, 191, 224, 174, 178, 3, 0, 4, 2, 224, 174, 176, 224, 174, 181, 224, 175, 128, 224, 174, 168, 224, 175, 141, 224, 174, 164,
+			224, 174, 191, 224, 174, 176, 3, 0, 4, 2, 224, 174, 176, 224, 174, 181, 224, 175, 136, 224, 174, 149, 224, 174, 179, 3, 0, 4, 2, 224,
+			174, 176, 224, 174, 181, 224, 175, 136, 224, 174, 175, 224, 175, 136, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 3, 0, 4,
+			2, 224, 174, 176, 224, 174, 190, 224, 174, 154, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 3, 0, 4, 2, 224, 174, 176,
+			224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175,
+			141, 224, 174, 154, 224, 174, 183, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 3, 0, 4, 2, 224, 174, 176,
+			224, 174, 190, 224, 174, 163, 224, 175, 129, 224, 174, 181, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 190, 224, 174,
+			149, 224, 174, 191, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 190, 224, 174, 181, 3, 0, 4, 2, 224, 174, 176,
 			224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 32, 3,
-			0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 149, 224, 174, 178, 3, 0, 4, 2, 224, 174,
-			176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 136, 3, 0,
-			4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 138, 224, 174, 180, 224, 175, 129, 3, 0, 4, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 3, 0, 4, 2, 224, 174, 176, 224,
-			174, 190, 224, 174, 175, 224, 174, 170, 224, 175, 129, 224, 174, 176, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 163,
-			3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 0, 4, 2, 224,
-			174, 176, 224, 174, 190, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 176, 3, 0, 4, 2, 224, 174, 178, 224, 174, 149,
-			224, 175, 129, 3, 0, 4, 2, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 141, 224, 174, 174, 224, 174, 163, 3, 0,
-			4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 149, 224, 175, 141, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159,
-			224, 175, 141, 224, 174, 154, 224, 174, 153, 224, 175, 141, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174,
-			163, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 164, 224, 175, 141, 3, 0, 4, 2, 224, 174, 178,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 174, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174,
-			190, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 178,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 163, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175,
-			141, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 191, 3, 0, 4, 2, 224, 174, 178, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
-			174, 169, 3, 0, 4, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 128, 224, 174, 169, 3, 0, 4, 2, 224, 174,
-			178, 224, 174, 174, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 178, 224, 174, 175, 224, 174, 191, 3,
-			0, 4, 2, 224, 174, 178, 224, 174, 181, 224, 174, 153, 224, 175, 141, 224, 174, 149, 3, 0, 4, 2, 224, 174, 178, 224, 174, 190, 224, 174,
-			149, 224, 174, 181, 3, 0, 4, 2, 224, 174, 178, 224, 174, 190, 224, 174, 170, 3, 0, 4, 2, 224, 174, 178, 224, 174, 190, 224, 174, 181,
-			224, 174, 163, 224, 175, 141, 224, 174, 175, 3, 0, 4, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 3, 0, 2, 224, 174, 178, 224, 175,
-			136, 224, 174, 175, 224, 175, 139, 224, 174, 178, 224, 174, 190, 3, 0, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 2, 224, 174,
-			176, 3, 34, 109, 71, 71, 109, 0, 224, 174, 176, 224, 174, 190, 224, 174, 158, 224, 175, 141, 224, 174, 154, 3, 34, 118, 67, 76, 148, 0,
-			4, 3, 37, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 32, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 159, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 224, 174, 169, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 2, 224,
-			174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 175, 136, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 175, 141, 32, 0, 2, 224, 174, 178,
-			224, 174, 181, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 175, 0, 224, 174, 178, 224, 175, 135, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 2, 224, 174, 191, 224, 174, 175, 3, 55, 114, 81, 81, 0, 224, 174, 178, 224, 174, 190, 224, 174, 149, 2, 224, 175, 130,
-			224, 174, 176, 3, 55, 118, 108, 0, 7, 6, 1, 10, 0, 2, 224, 174, 176, 224, 175, 139, 224, 174, 174, 3, 0, 224, 174, 176, 224, 175,
-			129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 2, 224, 174, 191, 224, 174, 176, 224, 174, 190, 3, 34, 122, 72, 72, 0, 3, 40, 0, 7,
-			6, 1, 19, 0, 3, 39, 0, 4, 224, 174, 179, 2, 224, 174, 159, 224, 174, 164, 3, 135, 0, 224, 174, 179, 2, 224, 174, 176, 224, 174,
-			153, 224, 175, 141, 224, 174, 149, 0, 224, 174, 179, 2, 224, 174, 181, 224, 175, 136, 0, 224, 174, 179, 2, 224, 174, 183, 224, 174, 164, 0,
-			7, 6, 1, 22, 0, 1, 141, 175, 224, 177, 174, 224, 2, 17, 66, 3, 10, 49, 0, 1, 141, 175, 224, 177, 174, 224, 3, 10, 49, 109,
-			0, 4, 1, 18, 66, 2, 17, 66, 3, 49, 0, 1, 128, 175, 224, 174, 174, 224, 141, 175, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224,
-			2, 224, 174, 191, 0, 1, 129, 175, 224, 164, 174, 224, 18, 68, 2, 224, 175, 129, 224, 174, 177, 224, 174, 191, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 0, 1, 129, 175, 224, 180, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 178, 0, 1, 133, 174, 224, 2,
-			224, 174, 190, 224, 174, 159, 224, 174, 174, 224, 174, 191, 0, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 1, 133,
-			174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 175, 135, 224, 174, 183, 0, 1, 133, 174, 224, 2, 224, 175, 141, 224, 174, 159, 224, 175, 139,
-			224, 174, 170, 224, 174, 176, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 183, 0, 1, 134, 174, 224, 2, 224, 175, 141, 224, 174, 176,
-			224, 175, 139, 224, 174, 183, 0, 1, 135, 175, 224, 178, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 191,
-			174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 1, 135, 175, 224, 181, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 169,
-			224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 1, 136, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 177, 224, 175, 136,
-			0, 1, 136, 175, 224, 177, 174, 224, 133, 174, 224, 2, 224, 175, 130, 224, 174, 181, 0, 1, 141, 175, 224, 153, 174, 224, 133, 174, 224, 2,
-			224, 174, 190, 224, 174, 176, 224, 174, 190, 0, 1, 141, 175, 224, 153, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 179, 0, 1, 141,
-			175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 175, 139, 224, 174, 170, 0, 1, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164,
-			174, 224, 2, 224, 174, 191, 224, 174, 180, 0, 1, 141, 175, 224, 176, 174, 224, 128, 175, 224, 154, 174, 224, 2, 224, 175, 135, 224, 174, 159,
-			0, 1, 141, 175, 224, 178, 174, 224, 138, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191,
-			0, 1, 141, 175, 224, 178, 174, 224, 191, 174, 224, 175, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136,
-			0, 1, 141, 175, 224, 179, 174, 224, 129, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 1, 154, 174, 224, 176,
-			174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 129, 224, 174, 178,
-			0, 1, 159, 174, 224, 141, 175, 224, 183, 174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 163, 224, 174, 178, 0, 1, 170, 174, 224, 133,
-			174, 224, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 1, 174, 174, 224, 190,
-			174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 135,
-			174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 1, 174, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 133,
-			174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 1, 175, 174, 224, 191, 174, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 159,
-			224, 174, 191, 0, 1, 178, 174, 224, 128, 175, 224, 168, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 1, 178, 174, 224, 130,
-			175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 163, 0, 1, 178, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 129,
-			175, 224, 149, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 1, 190, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141,
-			175, 224, 164, 174, 224, 137, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 1, 190, 174, 224, 178, 174, 224, 135,
-			174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 164, 174, 224, 134, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 1, 191,
-			174, 224, 169, 174, 224, 130, 175, 224, 175, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 1, 191, 174, 224, 174, 174, 224, 190, 174, 224, 169,
-			174, 224, 133, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 175, 135, 224, 174, 154,
-			224, 174, 191, 0, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 174, 174, 0, 1, 191, 174, 224, 183, 174, 224, 134,
-			174, 224, 2, 224, 174, 190, 0, 2, 224, 174, 190, 224, 174, 176, 224, 174, 169, 0, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 2,
-			224, 175, 128, 224, 174, 180, 224, 175, 135, 32, 0, 2, 224, 175, 128, 224, 174, 180, 224, 175, 141, 32, 0, 2, 224, 175, 129, 224, 174, 174,
-			224, 174, 176, 224, 174, 169, 0, 2, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 176, 0, 2, 224, 175, 130, 224, 174, 159, 0, 2,
-			224, 175, 138, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 2, 224, 175, 138, 224, 174, 179, 224, 175, 141, 0, 8, 2, 17, 66, 0, 8,
-			2, 224, 175, 128, 224, 174, 164, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175,
-			129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 174, 0, 8, 2, 224, 175,
-			129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
-			190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
-			190, 224, 174, 169, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174,
-			169, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 169, 224, 175, 141, 0, 8,
-			2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174,
-			163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 149, 224, 175,
-			129, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 32, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 224, 174, 169, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
-			174, 176, 224, 175, 129, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224,
-			175, 139, 224, 174, 170, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 224, 174, 174, 224, 174, 190, 224, 174, 159,
-			224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174,
-			175, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 224, 174, 181, 224, 175, 135, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
-			175, 139, 224, 174, 176, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 159, 0, 8, 129, 175, 224, 163, 174, 224, 135, 175,
-			224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 129, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0,
-			8, 129, 175, 224, 174, 174, 224, 2, 224, 175, 135, 224, 174, 183, 0, 8, 129, 175, 224, 176, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224,
-			175, 129, 224, 174, 178, 0, 8, 129, 175, 224, 178, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 190, 0, 8, 129, 175, 224, 181, 174,
-			224, 136, 175, 224, 169, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 129, 175, 224, 181, 174, 224, 175, 174,
-			224, 164, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 130, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0,
-			8, 130, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 130, 175, 224, 178, 174, 224, 190, 174, 224, 164, 174,
-			224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 129, 175, 224, 154, 174,
-			224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 129, 175, 224, 175, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 178, 174,
-			224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 136, 175, 224, 149, 174,
-			224, 2, 224, 175, 129, 224, 174, 178, 224, 175, 129, 0, 8, 136, 175, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224,
-			174, 176, 0, 8, 136, 175, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 136, 175, 224, 175, 174,
-			224, 164, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 136, 175, 224, 177, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 130, 224,
-			174, 177, 0, 8, 136, 175, 224, 178, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 0, 8, 136, 175, 224, 179, 174,
-			224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 136, 175, 224, 181, 174, 224, 2, 224, 175, 139, 0,
-			8, 138, 175, 224, 178, 174, 224, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 0, 8, 139, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224,
-			174, 178, 0, 8, 140, 175, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 8, 141, 175, 224, 153, 174, 224, 134, 175,
-			224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 190, 0, 8, 141, 175, 224, 153, 174, 224, 178, 174, 224, 2, 224, 174, 190, 0,
-			8, 141, 175, 224, 153, 174, 224, 178, 174, 224, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175,
-			224, 153, 174, 224, 190, 174, 224, 185, 174, 224, 2, 224, 174, 190, 224, 174, 153, 224, 175, 141, 0, 8, 141, 175, 224, 156, 174, 224, 190, 174,
-			224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 163, 0, 8, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224,
-			174, 163, 224, 174, 190, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 170, 0, 8, 141, 175,
-			224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 154, 224, 174, 191, 0, 8, 141, 175, 224, 176, 174, 224, 134, 175,
-			224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 176, 174, 224, 135, 175, 224, 168, 174, 224, 2, 224,
-			174, 190, 224, 174, 163, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174, 224, 149, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224, 175, 139, 224,
-			174, 175, 224, 174, 191, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174, 224, 149, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224, 175, 139, 224,
-			174, 181, 224, 174, 191, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 179, 0, 8, 141, 175,
-			224, 176, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174,
-			224, 190, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 174, 174, 224, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 190, 174,
-			224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 8, 141, 175, 224, 178, 174, 224, 135, 175, 224, 174, 174,
-			224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174,
-			224, 175, 174, 224, 136, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 175, 174,
-			224, 136, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174,
-			224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224,
-			174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 159, 0,
-			8, 141, 175, 224, 179, 174, 224, 128, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 141, 175, 224, 180, 174,
-			224, 128, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 141, 175, 224, 180, 174, 224, 191, 174, 224, 174, 174, 224, 164, 174,
-			224, 2, 224, 175, 130, 224, 174, 177, 0, 8, 147, 174, 224, 2, 224, 175, 135, 0, 8, 159, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224,
-			174, 180, 0, 8, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 164, 174, 224, 141, 175, 224, 149, 174,
-			224, 170, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 164, 174, 224, 141, 175, 224, 164, 174, 224, 130, 175, 224, 174, 174,
-			224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 164, 174, 224, 191, 174, 224, 169, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224,
-			174, 178, 0, 8, 169, 174, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 174, 174, 224, 141, 175, 224, 169, 174,
-			224, 138, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0,
-			8, 174, 174, 224, 176, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 174, 174, 224, 190, 174, 224, 176, 174,
-			224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 8, 181, 174, 224, 128, 175, 224, 156, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224,
-			174, 191, 0, 8, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 181, 174,
-			224, 141, 175, 224, 176, 174, 224, 130, 175, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 190, 174, 224, 170, 174,
-			224, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 190, 174, 224, 175, 174, 224, 141, 175,
-			224, 169, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 175, 174, 224, 191, 174,
-			224, 163, 174, 224, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174,
-			224, 175, 174, 224, 191, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 174, 176, 224,
-			174, 191, 0, 8, 190, 174, 224, 176, 174, 224, 2, 224, 175, 135, 224, 174, 183, 0, 8, 190, 174, 224, 176, 174, 224, 141, 175, 224, 159, 174,
-			224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 190, 0, 8, 190, 174, 224, 176, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 175, 129, 224,
-			174, 178, 224, 174, 190, 0, 8, 191, 174, 224, 18, 69, 141, 175, 224, 169, 174, 224, 185, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224,
-			154, 174, 224, 168, 174, 224, 2, 224, 175, 135, 224, 174, 164, 0, 8, 191, 174, 224, 159, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 175,
-			138, 224, 174, 159, 224, 174, 191, 0, 8, 191, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174,
-			176, 224, 174, 176, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 149, 174, 224,
-			2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176, 174, 224, 128, 175, 224, 149, 174, 224,
-			2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174, 224,
-			2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 168, 174, 224,
-			2, 224, 175, 139, 0, 8, 191, 174, 224, 169, 174, 224, 139, 175, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 169, 174, 224,
-			140, 175, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174, 224, 141, 175, 224, 164, 174, 224, 129, 175, 224, 174, 174, 224,
-			190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 128, 175, 224, 176, 174, 224, 141, 175, 224,
-			184, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 191, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224,
-			141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 178, 174, 224, 134, 175, 224, 185, 174, 224, 2, 224, 174,
-			190, 224, 174, 170, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 191, 174, 224, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174,
-			190, 0, 8, 191, 174, 224, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8,
-			191, 174, 224, 181, 174, 224, 179, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 183, 174, 224, 2, 224, 175,
-			139, 0, 8, 191, 174, 224, 183, 174, 224, 135, 175, 224, 149, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224,
-			141, 175, 224, 149, 174, 224, 142, 174, 224, 2, 224, 174, 175, 224, 175, 130, 224, 174, 184, 0, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224,
-			144, 174, 224, 2, 224, 174, 176, 224, 175, 128, 224, 174, 174, 0, 224, 174, 191, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 0, 224, 174,
-			191, 8, 2, 224, 174, 175, 224, 175, 130, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 18, 69, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224,
-			174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 174, 178, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 184,
-			224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 175, 128, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 177, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2,
-			224, 174, 177, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 177, 224, 174, 191,
-			224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 170, 224, 175, 141, 32, 0, 224, 174, 191, 8,
-			2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 175, 129, 0,
-			224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174,
-			184, 224, 175, 141, 32, 224, 174, 174, 224, 175, 135, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 169, 224,
-			174, 191, 224, 174, 149, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
-			174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0,
-			224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 128, 224,
-			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 136, 224,
-			174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 140, 0, 224, 175, 129,
-			8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 164, 0, 224, 175, 141, 1, 137, 174, 224, 2, 224, 174, 176, 224, 175, 136, 224, 174, 169, 0,
-			224, 175, 141, 1, 140, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224, 174, 175, 0, 224, 175, 141, 2, 32, 224, 174, 149, 0, 224, 175, 141,
-			2, 224, 174, 149, 0, 224, 175, 141, 2, 224, 174, 184, 0, 224, 175, 141, 8, 128, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174,
-			0, 224, 175, 141, 8, 128, 175, 224, 170, 174, 224, 141, 175, 224, 184, 174, 224, 136, 174, 224, 2, 32, 0, 224, 175, 141, 8, 129, 175, 224,
-			154, 174, 224, 2, 224, 174, 179, 0, 224, 175, 141, 8, 129, 175, 224, 175, 174, 224, 2, 224, 174, 176, 224, 175, 136, 224, 174, 169, 0, 224,
-			175, 141, 8, 129, 175, 224, 176, 174, 224, 2, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 224, 175, 141, 8, 129, 175, 224, 183, 174, 224,
-			2, 224, 174, 179, 0, 224, 175, 141, 8, 134, 175, 224, 168, 174, 224, 2, 224, 174, 178, 224, 174, 184, 0, 224, 175, 141, 8, 135, 175, 224,
-			181, 174, 224, 191, 174, 224, 181, 174, 224, 2, 32, 0, 224, 175, 141, 8, 136, 175, 224, 170, 174, 224, 2, 224, 174, 178, 32, 0, 224, 175,
-			141, 8, 136, 175, 224, 174, 174, 224, 0, 224, 175, 141, 8, 139, 175, 224, 156, 174, 224, 2, 32, 0, 224, 175, 141, 8, 140, 175, 224, 154,
-			174, 224, 2, 224, 174, 175, 0, 224, 175, 141, 8, 159, 174, 224, 0, 224, 175, 141, 8, 178, 174, 224, 2, 224, 174, 169, 224, 175, 139, 0,
-			224, 175, 141, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 159, 224, 175, 128, 224, 174, 184, 0, 224, 175, 141, 8, 190, 174,
-			224, 183, 174, 224, 2, 32, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 2, 224, 174, 183, 224, 175, 141, 3, 49, 34, 37, 0, 224,
-			174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191,
-			224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 176, 3, 49, 34, 37, 89, 139, 119, 83, 109, 0,
-			224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 176, 0,
-			224, 175, 141, 224, 174, 176, 224, 174, 170, 8, 154, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 3, 49, 34, 109, 48, 0, 224,
-			174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 3, 49, 34, 118, 48, 0, 224, 175, 141, 224, 174, 176, 224, 175, 130,
-			224, 174, 159, 224, 175, 141, 8, 134, 175, 224, 176, 174, 224, 3, 49, 34, 151, 139, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 141,
-			175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 3, 49, 36, 139, 0, 4, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 174,
-			191, 3, 49, 37, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 170, 8, 139, 175,
-			224, 178, 174, 224, 2, 224, 174, 190, 224, 174, 178, 3, 49, 48, 0, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 175, 141,
-			8, 190, 174, 224, 156, 174, 224, 3, 49, 48, 118, 139, 0, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 141,
-			175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 3, 49, 49, 36, 139, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224,
-			190, 174, 224, 174, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 135, 224, 174, 175, 3, 49, 49, 109, 0, 224, 174, 191,
-			224, 174, 179, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 3, 49, 55, 37, 50, 139, 109, 0, 224, 174,
-			191, 224, 174, 179, 224, 174, 191, 224, 174, 175, 224, 175, 139, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 175, 141, 8, 2, 224, 174, 176,
-			224, 174, 190, 3, 49, 55, 37, 57, 119, 48, 118, 47, 0, 224, 174, 191, 224, 174, 179, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175,
-			141, 8, 3, 49, 55, 109, 34, 49, 0, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 129, 224,
-			174, 149, 224, 174, 179, 3, 49, 55, 109, 71, 71, 0, 224, 175, 141, 224, 174, 178, 224, 175, 139, 224, 174, 170, 1, 136, 175, 224, 154, 174,
-			224, 141, 175, 224, 169, 174, 224, 142, 174, 224, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3, 49, 55, 119,
-			48, 0, 224, 174, 191, 224, 174, 179, 224, 175, 136, 224, 174, 175, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 49, 55, 134, 57, 109,
-			66, 139, 148, 0, 224, 175, 141, 224, 174, 175, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 159, 8, 134, 175, 224, 154, 174, 224, 2,
-			224, 174, 191, 3, 49, 57, 151, 34, 37, 139, 0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224,
-			174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 135, 224, 174, 183, 224, 174, 169, 3, 49, 58, 0, 224, 175, 141, 224, 174, 181, 8, 2, 17,
-			65, 0, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 159, 8, 2, 224, 174, 191, 3, 49, 58, 118, 55,
-			37, 139, 0, 4, 224, 174, 191, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 32, 3, 49, 62, 37, 48, 0, 224, 174,
-			191, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 178, 0, 224, 174, 191, 224, 174, 179, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 8, 2, 32, 18, 94, 3, 49, 62, 37, 49, 0, 224, 174, 191, 224, 174, 179, 224, 174, 191, 224, 174, 159, 8, 3, 49,
-			62, 37, 139, 148, 0, 224, 175, 141, 224, 174, 179, 224, 174, 149, 224, 175, 141, 8, 129, 175, 224, 164, 174, 224, 3, 49, 62, 109, 49, 0,
-			4, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 178, 3, 49, 62, 109, 71, 71,
-			0, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 224, 174,
-			191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 136, 0, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174,
-			176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 8, 3, 49, 62, 118, 34, 49, 0, 224, 175, 141, 224, 174, 154, 1, 134, 174, 224, 2, 224,
-			175, 129, 224, 174, 181, 224, 174, 178, 3, 49, 76, 0, 4, 224, 175, 141, 224, 174, 154, 8, 134, 175, 224, 178, 174, 224, 2, 224, 174, 176,
-			3, 49, 76, 109, 0, 224, 175, 141, 224, 174, 154, 8, 191, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 154, 8,
-			191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 8, 136, 175, 224, 149, 174, 224, 2, 224, 174, 159, 224, 174,
-			191, 224, 174, 149, 224, 174, 190, 224, 174, 176, 3, 49, 81, 109, 0, 4, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 149, 8, 134,
-			175, 224, 174, 174, 224, 2, 224, 175, 139, 3, 49, 89, 37, 49, 0, 224, 175, 141, 224, 174, 184, 224, 174, 191, 224, 174, 149, 8, 134, 175,
-			224, 174, 174, 224, 2, 224, 175, 139, 0, 224, 175, 141, 224, 174, 183, 2, 17, 66, 3, 49, 93, 0, 4, 224, 175, 141, 224, 174, 154, 8,
-			191, 174, 224, 181, 174, 224, 2, 224, 174, 169, 224, 174, 176, 224, 174, 191, 3, 49, 93, 109, 0, 224, 175, 141, 224, 174, 183, 0, 4, 1,
-			18, 66, 3, 49, 109, 0, 1, 129, 175, 224, 164, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 1, 129, 175, 224, 176, 174, 224, 146, 174,
-			224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224,
-			174, 159, 0, 1, 136, 175, 224, 176, 174, 224, 137, 174, 224, 2, 224, 174, 177, 224, 175, 141, 0, 1, 136, 175, 224, 176, 174, 224, 137, 174,
-			224, 2, 224, 174, 178, 224, 175, 141, 0, 1, 136, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 159, 224, 174, 178, 0, 1, 140, 175,
-			224, 154, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 1, 141, 175, 224, 153, 174, 224, 183, 174, 224, 2, 224,
-			174, 176, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 164, 224, 175, 136, 0, 1, 141, 175, 224, 163, 174,
-			224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 181, 224, 174, 178, 224, 175, 136, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174,
-			224, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 1, 141, 175, 224, 178, 174, 224, 138, 175, 224, 149, 174, 224, 2, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 0, 1, 141, 175, 224, 178, 174, 224, 175, 174, 224, 136, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224,
-			174, 159, 224, 175, 141, 0, 1, 141, 175, 224, 179, 174, 224, 137, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 154, 174,
-			224, 141, 175, 224, 154, 174, 224, 137, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 154, 174, 224, 141, 175, 224, 158, 174,
-			224, 170, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 175, 224, 174, 190, 224, 174, 163, 0, 1, 154, 174, 224, 141, 175, 224, 158, 174,
-			224, 170, 174, 224, 2, 224, 174, 181, 224, 175, 141, 224, 174, 175, 0, 1, 159, 174, 224, 149, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224,
-			174, 181, 224, 174, 191, 0, 1, 164, 174, 224, 141, 175, 224, 168, 174, 224, 136, 175, 224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224,
-			175, 136, 0, 1, 169, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 176, 0, 1, 170, 174, 224, 141, 175, 224, 174, 174, 224, 176, 174,
-			224, 134, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 178, 174, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224,
-			174, 190, 0, 1, 181, 174, 224, 141, 175, 224, 184, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224,
-			174, 190, 0, 1, 190, 174, 224, 149, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 191, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175,
-			224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224,
-			174, 176, 224, 174, 191, 224, 174, 169, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 175, 141, 32,
-			0, 1, 190, 174, 224, 170, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 1, 190, 174, 224, 181, 174, 224, 191,
-			174, 224, 164, 174, 224, 2, 224, 174, 176, 0, 1, 190, 174, 224, 185, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 191, 0, 2, 224,
-			174, 181, 224, 174, 191, 224, 174, 158, 0, 2, 224, 174, 181, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 8, 0, 8, 2,
-			224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			224, 174, 190, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 149, 224, 174, 191, 224, 174, 176,
-			224, 174, 191, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 224, 174, 159,
-			224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 174, 224, 175, 141, 32, 224, 174, 135, 224, 174, 169, 224, 175, 141, 0, 8, 128, 175, 224,
-			176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 130, 175, 224, 175, 174, 224, 2, 224, 174, 178, 224, 174,
-			191, 224, 174, 170, 224, 175, 141, 224, 174, 159, 224, 174, 184, 0, 8, 139, 175, 224, 178, 174, 224, 2, 224, 174, 178, 0, 8, 140, 175, 224,
-			154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 153, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174,
-			175, 224, 175, 141, 224, 174, 175, 224, 174, 190, 0, 8, 141, 175, 224, 153, 174, 224, 191, 174, 224, 178, 174, 224, 2, 224, 174, 169, 0, 8,
-			141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 169, 224, 174, 181, 0, 8, 141, 175, 224, 163, 174, 224, 191, 174, 224,
-			181, 174, 224, 2, 224, 174, 177, 224, 175, 141, 0, 8, 141, 175, 224, 163, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 179, 0, 8,
-			141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224,
-			191, 174, 224, 170, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 149, 174, 224,
-			2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174,
-			174, 0, 8, 141, 175, 224, 178, 174, 224, 136, 175, 224, 174, 174, 224, 2, 224, 174, 177, 224, 175, 141, 0, 8, 141, 175, 224, 178, 174, 224,
-			136, 175, 224, 174, 174, 224, 2, 224, 174, 178, 224, 175, 141, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 163, 224, 175,
-			141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 8,
-			163, 174, 224, 176, 174, 224, 2, 224, 174, 179, 0, 8, 174, 174, 224, 141, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 175,
-			141, 224, 174, 164, 0, 8, 175, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 175, 174, 224,
-			191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 175, 174, 224, 191, 174, 224,
-			176, 174, 224, 130, 175, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224,
-			164, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224,
-			168, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 178, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 159, 224, 175,
-			141, 224, 174, 159, 0, 8, 181, 174, 224, 128, 175, 224, 156, 174, 224, 2, 224, 174, 178, 224, 175, 136, 0, 8, 191, 174, 224, 154, 174, 224,
-			154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 191, 174, 224, 159, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 174, 178, 0, 8,
-			191, 174, 224, 159, 174, 224, 141, 175, 224, 149, 174, 224, 190, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 178, 0, 224,
-			174, 178, 224, 175, 141, 224, 174, 170, 8, 175, 174, 224, 190, 174, 224, 149, 174, 224, 3, 49, 109, 55, 48, 148, 0, 224, 174, 156, 8, 2,
-			224, 174, 149, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 3, 49, 109, 88, 109, 0, 224, 174, 159,
-			8, 141, 175, 224, 153, 174, 224, 134, 175, 224, 181, 174, 224, 3, 49, 109, 139, 148, 0, 224, 175, 135, 224, 174, 159, 8, 138, 175, 224, 178,
-			174, 224, 3, 49, 114, 139, 148, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 8, 156, 174, 224, 3, 49, 118, 34, 139, 148,
-			0, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 3, 49, 118, 50,
-			47, 148, 0, 224, 174, 190, 224, 174, 164, 1, 133, 174, 224, 2, 224, 174, 174, 224, 174, 191, 3, 49, 118, 140, 109, 0, 224, 175, 139, 224,
+			0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154,
+			224, 175, 136, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 138, 224, 174, 180, 224, 175,
+			129, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 3, 0, 4,
+			2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 224, 174, 170, 224, 175, 129, 224, 174, 176, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 181, 224, 174, 163, 3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			3, 0, 4, 2, 224, 174, 176, 224, 174, 190, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 176, 3, 0, 4, 2, 224,
+			174, 178, 224, 174, 149, 224, 175, 129, 3, 0, 4, 2, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 141, 224, 174, 174,
+			224, 174, 163, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 149, 224, 175, 141, 3, 0, 4, 2, 224,
+			174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 153, 224, 175, 141, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141,
+			224, 174, 154, 224, 174, 163, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 164, 224, 175, 141, 3, 0,
+			4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 174, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141,
+			224, 174, 154, 224, 174, 190, 3, 0, 4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 175, 3, 0,
+			4, 2, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 163, 3, 0, 4, 2, 224, 174, 178,
+			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 191, 3, 0, 4, 2, 224, 174, 178, 224, 174, 163, 224, 175,
+			141, 224, 174, 159, 224, 174, 169, 3, 0, 4, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 128, 224, 174, 169, 3,
+			0, 4, 2, 224, 174, 178, 224, 174, 174, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 175, 3, 0, 4, 2, 224, 174, 178, 224, 174,
+			175, 224, 174, 191, 3, 0, 4, 2, 224, 174, 178, 224, 174, 181, 224, 174, 153, 224, 175, 141, 224, 174, 149, 3, 0, 4, 2, 224, 174, 178,
+			224, 174, 190, 224, 174, 149, 224, 174, 181, 3, 0, 4, 2, 224, 174, 178, 224, 174, 190, 224, 174, 170, 3, 0, 4, 2, 224, 174, 178, 224,
+			174, 190, 224, 174, 181, 224, 174, 163, 224, 175, 141, 224, 174, 175, 3, 0, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 3, 0, 224, 174,
+			176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 2, 224, 174, 176, 3, 34, 109, 71, 71, 109, 0, 224, 174, 176, 224, 174, 190, 224, 174, 158,
+			224, 175, 141, 224, 174, 154, 3, 34, 118, 67, 76, 149, 0, 4, 3, 37, 0, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 178,
+			224, 175, 141, 32, 0, 224, 174, 178, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 2, 224, 174, 191, 224, 174, 175, 3, 55, 114,
+			81, 81, 0, 7, 6, 1, 10, 0, 2, 224, 174, 176, 224, 175, 139, 224, 174, 174, 3, 0, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224,
+			175, 141, 224, 174, 164, 2, 224, 174, 191, 224, 174, 176, 224, 174, 190, 3, 34, 122, 72, 72, 0, 3, 40, 0, 7, 6, 1, 19, 0, 3,
+			39, 0, 4, 224, 174, 179, 2, 224, 174, 159, 224, 174, 164, 3, 135, 0, 224, 174, 179, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224,
+			174, 149, 0, 224, 174, 179, 2, 224, 174, 181, 224, 175, 136, 0, 224, 174, 179, 2, 224, 174, 183, 224, 174, 164, 0, 7, 6, 1, 22, 0,
+			1, 141, 175, 224, 177, 174, 224, 2, 17, 66, 3, 10, 49, 0, 1, 141, 175, 224, 177, 174, 224, 3, 10, 49, 109, 0, 4, 1, 18, 66,
+			2, 17, 66, 3, 49, 0, 1, 128, 175, 224, 174, 174, 224, 141, 175, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0,
+			1, 129, 175, 224, 164, 174, 224, 18, 68, 2, 224, 175, 129, 224, 174, 177, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 1,
+			129, 175, 224, 180, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 178, 0, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174,
+			178, 224, 174, 191, 0, 1, 133, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 175, 135, 224, 174, 183, 0, 1, 133, 174, 224, 2, 224, 175,
+			141, 224, 174, 159, 224, 175, 139, 224, 174, 170, 224, 174, 176, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 183, 0, 1, 134, 174, 224,
+			2, 224, 175, 141, 224, 174, 176, 224, 175, 139, 224, 174, 183, 0, 1, 135, 175, 224, 178, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224,
+			141, 175, 224, 164, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 1, 135, 175, 224, 181, 174, 224, 191, 174, 224, 181, 174, 224,
+			2, 224, 174, 190, 224, 174, 169, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 1, 136, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175,
+			129, 224, 174, 177, 224, 175, 136, 0, 1, 136, 175, 224, 177, 174, 224, 133, 174, 224, 2, 224, 175, 130, 224, 174, 181, 0, 1, 141, 175, 224,
+			153, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 0, 1, 141, 175, 224, 153, 174, 224, 133, 174, 224, 2, 224, 174,
+			191, 224, 174, 179, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 175, 139, 224, 174, 170, 0, 1, 141, 175, 224,
+			169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 180, 0, 1, 141, 175, 224, 176, 174, 224, 128, 175, 224, 154, 174, 224,
+			2, 224, 175, 135, 224, 174, 159, 0, 1, 141, 175, 224, 178, 174, 224, 138, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 170, 224, 175,
+			141, 224, 174, 170, 224, 174, 191, 0, 1, 141, 175, 224, 178, 174, 224, 191, 174, 224, 175, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174,
+			190, 224, 174, 179, 224, 175, 136, 0, 1, 141, 175, 224, 179, 174, 224, 129, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175, 130, 224, 174,
+			176, 0, 1, 154, 174, 224, 176, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224,
+			2, 224, 175, 129, 224, 174, 178, 0, 1, 159, 174, 224, 141, 175, 224, 183, 174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 163, 224, 174,
+			178, 0, 1, 170, 174, 224, 133, 174, 224, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
+			191, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 1, 174, 174, 224,
+			190, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 1, 174, 174, 224, 191, 174, 224, 164, 174, 224,
+			141, 175, 224, 168, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 1, 175, 174, 224, 191, 174, 224, 176, 174, 224, 133, 174, 224,
+			2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 1, 178, 174, 224, 128, 175, 224, 168, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174,
+			191, 0, 1, 178, 174, 224, 130, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 163, 0, 1, 178, 174, 224, 159, 174, 224,
+			141, 175, 224, 163, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 1, 190, 174, 224, 178, 174, 224,
+			135, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 164, 174, 224, 134, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 1,
+			191, 174, 224, 169, 174, 224, 130, 175, 224, 175, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 1, 191, 174, 224, 174, 174, 224, 190, 174, 224,
+			169, 174, 224, 133, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 175, 135, 224, 174,
+			154, 224, 174, 191, 0, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 174, 174, 0, 1, 191, 174, 224, 183, 174, 224,
+			134, 174, 224, 2, 224, 174, 190, 0, 2, 224, 174, 190, 224, 174, 176, 224, 174, 169, 0, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0,
+			2, 224, 175, 129, 224, 174, 174, 224, 174, 176, 224, 174, 169, 0, 2, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 176, 0, 2, 224,
+			175, 130, 224, 174, 159, 0, 2, 224, 175, 138, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 2, 224, 175, 138, 224, 174, 179, 224, 175, 141,
+			0, 8, 2, 17, 66, 0, 8, 2, 224, 175, 128, 224, 174, 164, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 164, 224, 175, 141, 224,
+			174, 164, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
+			174, 174, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224,
+			175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
+			174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 32, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159,
+			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159,
+			224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 139,
+			224, 174, 176, 32, 224, 174, 174, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 224,
+			174, 174, 224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 224, 174, 181, 224, 175, 135,
+			224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 129, 175, 224, 163, 174, 224, 135, 175, 224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 129,
+			175, 224, 174, 174, 224, 2, 224, 175, 135, 224, 174, 183, 0, 8, 129, 175, 224, 176, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 129,
+			224, 174, 178, 0, 8, 129, 175, 224, 178, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 190, 0, 8, 129, 175, 224, 181, 174, 224, 136,
+			175, 224, 169, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 129, 175, 224, 181, 174, 224, 175, 174, 224, 164,
+			174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 130, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 130,
+			175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 130, 175, 224, 178, 174, 224, 190, 174, 224, 164, 174, 224, 2,
+			224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 129, 175, 224, 154, 174, 224, 2,
+			224, 174, 190, 0, 8, 135, 175, 224, 176, 174, 224, 129, 175, 224, 175, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 178, 174, 224, 176,
+			174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 136, 175, 224, 159, 174, 224, 149,
+			174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 136, 175, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176,
+			224, 174, 191, 0, 8, 136, 175, 224, 175, 174, 224, 164, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 136, 175, 224, 177, 174, 224, 129,
+			175, 224, 149, 174, 224, 2, 224, 175, 130, 224, 174, 177, 0, 8, 136, 175, 224, 178, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 170,
+			224, 175, 141, 0, 8, 136, 175, 224, 179, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 136,
+			175, 224, 181, 174, 224, 2, 224, 175, 139, 0, 8, 138, 175, 224, 178, 174, 224, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 0, 8, 139,
+			175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 141, 175, 224, 153, 174, 224, 178, 174, 224, 2, 224, 174, 190, 0, 8, 141,
+			175, 224, 153, 174, 224, 178, 174, 224, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 153,
+			174, 224, 190, 174, 224, 185, 174, 224, 2, 224, 174, 190, 224, 174, 153, 224, 175, 141, 0, 8, 141, 175, 224, 156, 174, 224, 190, 174, 224, 176,
+			174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 163, 0, 8, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 163,
+			224, 174, 190, 0, 8, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 154, 224, 174, 191, 0, 8, 141,
+			175, 224, 176, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 176, 174, 224, 135,
+			175, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174, 224, 149, 174, 224, 190, 174, 224, 168,
+			174, 224, 2, 224, 175, 139, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 8, 141, 175, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 191,
+			224, 174, 179, 0, 8, 141, 175, 224, 176, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 178,
+			0, 8, 141, 175, 224, 178, 174, 224, 135, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 141, 175, 224, 178, 174, 224, 149,
+			174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 170, 174, 224, 2, 224, 175, 129, 0, 8, 141, 175, 224, 178, 174, 224, 175,
+			174, 224, 136, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 175, 174, 224, 136,
+			175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 170,
+			174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 174, 190,
+			224, 174, 176, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 159, 0, 8, 141,
+			175, 224, 180, 174, 224, 128, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 147, 174, 224, 2, 224, 175, 135, 0, 8, 159,
+			174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 180, 0, 8, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 178,
+			0, 8, 164, 174, 224, 141, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 164, 174, 224, 141,
+			175, 224, 164, 174, 224, 130, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 164, 174, 224, 191, 174, 224, 169,
+			174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 174, 174, 224, 141, 175, 224, 169, 174, 224, 138, 175, 224, 164, 174, 224, 2,
+			224, 174, 190, 224, 174, 178, 0, 8, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 174, 174, 224, 176, 174, 224, 170,
+			174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 164,
+			224, 175, 136, 0, 8, 181, 174, 224, 128, 175, 224, 156, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 181, 174, 224, 135,
+			175, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 181, 174, 224, 141, 175, 224, 176, 174, 224, 130,
+			175, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 0, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 184,
+			224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 190, 174, 224, 175, 174, 224, 191, 174, 224, 163, 174, 224, 141, 175, 224, 163,
+			174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 176, 174, 224, 2, 224, 175, 135,
+			224, 174, 183, 0, 8, 190, 174, 224, 176, 174, 224, 141, 175, 224, 159, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 190, 0, 8, 190,
+			174, 224, 176, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 190, 0, 8, 191, 174, 224, 18, 69, 141, 175,
+			224, 169, 174, 224, 185, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 159, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 175, 138, 224,
+			174, 159, 224, 174, 191, 0, 8, 191, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224,
+			174, 176, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 149, 174, 224, 2, 224,
+			174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176, 174, 224, 128, 175, 224, 149, 174, 224, 2, 224,
+			174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224,
+			174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 168, 174, 224, 2, 224,
+			175, 139, 0, 8, 191, 174, 224, 169, 174, 224, 139, 175, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 169, 174, 224, 140, 175,
+			224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174, 224, 141, 175, 224, 164, 174, 224, 129, 175, 224, 174, 174, 224, 190, 174,
+			224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174,
+			224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 191, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175,
+			224, 168, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 178, 174, 224, 134, 175, 224, 185, 174, 224, 2, 224, 174, 190, 224,
+			174, 170, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 191, 174, 224, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 190, 0,
+			8, 191, 174, 224, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 191, 174,
+			224, 181, 174, 224, 179, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 183, 174, 224, 2, 224, 175, 139, 0,
+			8, 191, 174, 224, 183, 174, 224, 135, 175, 224, 149, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224, 141, 175,
+			224, 149, 174, 224, 142, 174, 224, 2, 224, 174, 175, 224, 175, 130, 224, 174, 184, 0, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224, 144, 174,
+			224, 2, 224, 174, 176, 224, 175, 128, 224, 174, 174, 0, 224, 174, 191, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8,
+			2, 224, 174, 175, 224, 175, 130, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 149, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174,
+			174, 224, 174, 191, 224, 174, 169, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			175, 128, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			175, 135, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 177, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191,
+			8, 2, 224, 174, 177, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 177, 224,
+			174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 170, 224, 175, 141, 32, 0, 224, 174,
+			191, 8, 2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 175,
+			129, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 18, 69, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190,
+			224, 174, 184, 224, 175, 141, 32, 224, 174, 174, 224, 175, 135, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174,
+			169, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174,
+			170, 224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175,
+			136, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175,
+			128, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175,
+			136, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 140, 0, 224,
+			175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 164, 0, 224, 175, 141, 1, 140, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224, 174,
+			175, 0, 224, 175, 141, 2, 32, 224, 174, 149, 0, 224, 175, 141, 2, 224, 174, 149, 0, 224, 175, 141, 2, 224, 174, 184, 0, 224, 175, 141,
+			8, 128, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 8, 128, 175, 224, 170, 174, 224, 141, 175, 224, 184, 174,
+			224, 136, 174, 224, 2, 32, 0, 224, 175, 141, 8, 129, 175, 224, 176, 174, 224, 2, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 224, 175,
+			141, 8, 134, 175, 224, 168, 174, 224, 2, 224, 174, 178, 224, 174, 184, 0, 224, 175, 141, 8, 135, 175, 224, 181, 174, 224, 191, 174, 224, 181,
+			174, 224, 2, 32, 0, 224, 175, 141, 8, 136, 175, 224, 170, 174, 224, 2, 224, 174, 178, 32, 0, 224, 175, 141, 8, 136, 175, 224, 174, 174,
+			224, 0, 224, 175, 141, 8, 139, 175, 224, 156, 174, 224, 2, 32, 0, 224, 175, 141, 8, 140, 175, 224, 154, 174, 224, 2, 224, 174, 175, 0,
+			224, 175, 141, 8, 159, 174, 224, 0, 224, 175, 141, 8, 178, 174, 224, 2, 224, 174, 169, 224, 175, 139, 0, 224, 175, 141, 8, 190, 174, 224,
+			154, 174, 224, 2, 224, 174, 176, 224, 174, 159, 224, 175, 128, 224, 174, 184, 0, 224, 175, 141, 8, 190, 174, 224, 183, 174, 224, 2, 32, 0,
+			4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 2, 224, 174, 183, 224, 175, 141, 3, 49, 34, 37, 0, 224, 174, 191, 224, 174, 176, 224, 175,
+			129, 8, 2, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224,
+			174, 159, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 176, 3, 49, 34, 37, 89, 140, 119, 83, 109, 0, 224, 175, 141, 224, 174, 176, 224,
+			174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224,
+			174, 170, 8, 154, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 3, 49, 34, 109, 48, 0, 224, 174, 191, 224, 174, 176, 224, 174,
+			190, 224, 174, 170, 224, 175, 141, 8, 3, 49, 34, 118, 48, 0, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 159, 224, 175, 141, 8,
+			134, 175, 224, 176, 174, 224, 3, 49, 34, 152, 140, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 141, 175, 224, 176, 174, 224, 190, 174,
+			224, 174, 174, 224, 3, 49, 36, 140, 0, 4, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 174, 191, 3, 49, 37, 0, 224, 174,
+			191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 170, 8, 139, 175, 224, 178, 174, 224, 2, 224, 174,
+			190, 224, 174, 178, 3, 49, 48, 0, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 141, 175, 224, 176, 174, 224,
+			190, 174, 224, 174, 174, 224, 3, 49, 49, 36, 140, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174,
+			224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 135, 224, 174, 175, 3, 49, 49, 109, 0, 224, 174, 191, 224, 174, 179, 224, 174,
+			191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 3, 49, 55, 37, 50, 140, 109, 0, 224, 174, 191, 224, 174, 179, 224,
+			174, 191, 224, 174, 175, 224, 175, 139, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 3, 49,
+			55, 37, 57, 119, 48, 118, 47, 0, 224, 174, 191, 224, 174, 179, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 8, 3, 49, 55,
+			109, 34, 49, 0, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 129, 224, 174, 149, 224, 174, 179,
+			3, 49, 55, 109, 71, 71, 0, 224, 175, 141, 224, 174, 178, 224, 175, 139, 224, 174, 170, 1, 136, 175, 224, 154, 174, 224, 141, 175, 224, 169,
+			174, 224, 142, 174, 224, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3, 49, 55, 119, 48, 0, 224, 174, 191,
+			224, 174, 179, 224, 175, 136, 224, 174, 175, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 49, 55, 134, 57, 109, 66, 140, 149, 0, 224,
+			175, 141, 224, 174, 175, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 159, 8, 134, 175, 224, 154, 174, 224, 2, 224, 174, 191, 3, 49,
+			57, 152, 34, 37, 140, 0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 174, 191,
+			224, 174, 149, 224, 175, 135, 224, 174, 183, 224, 174, 169, 3, 49, 58, 0, 224, 175, 141, 224, 174, 181, 8, 2, 17, 65, 0, 224, 175, 129,
+			224, 174, 181, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 159, 8, 2, 224, 174, 191, 3, 49, 58, 118, 55, 37, 140, 0, 4, 224,
+			174, 191, 224, 174, 179, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 32, 3, 49, 62, 37, 48, 0, 224, 174, 191, 224, 174, 179, 224,
+			174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 178, 0, 224, 174, 191, 224, 174, 179, 224, 174, 191, 224, 174, 159, 8, 3, 49, 62,
+			37, 140, 149, 0, 4, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 178, 3, 49,
+			62, 109, 71, 71, 0, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175,
+			141, 0, 224, 174, 191, 224, 174, 179, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 154, 1,
+			134, 174, 224, 2, 224, 175, 129, 224, 174, 181, 224, 174, 178, 3, 49, 76, 0, 4, 224, 175, 141, 224, 174, 154, 8, 134, 175, 224, 178, 174,
+			224, 2, 224, 174, 176, 3, 49, 76, 109, 0, 224, 175, 141, 224, 174, 154, 8, 191, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175,
+			141, 224, 174, 154, 8, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 8, 136, 175, 224, 149, 174, 224, 2,
+			224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 174, 190, 224, 174, 176, 3, 49, 81, 109, 0, 4, 224, 175, 141, 224, 174, 154, 224, 174, 191,
+			224, 174, 149, 8, 134, 175, 224, 174, 174, 224, 2, 224, 175, 139, 3, 49, 89, 37, 49, 0, 224, 175, 141, 224, 174, 184, 224, 174, 191, 224,
+			174, 149, 8, 134, 175, 224, 174, 174, 224, 2, 224, 175, 139, 0, 224, 175, 141, 224, 174, 183, 2, 17, 66, 3, 49, 93, 0, 4, 224, 175,
+			141, 224, 174, 154, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 169, 224, 174, 176, 224, 174, 191, 3, 49, 93, 109, 0, 224, 175, 141, 224,
+			174, 183, 0, 4, 1, 18, 66, 3, 49, 109, 0, 1, 129, 175, 224, 164, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 1, 129, 175, 224,
+			176, 174, 224, 146, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174,
+			159, 224, 175, 141, 224, 174, 159, 0, 1, 136, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 159, 224, 174, 178, 0, 1, 140, 175, 224,
+			154, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 1, 141, 175, 224, 153, 174, 224, 183, 174, 224, 2, 224, 174,
+			176, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 164, 224, 175, 136, 0, 1, 141, 175, 224, 163, 174, 224,
+			128, 175, 224, 181, 174, 224, 2, 224, 174, 181, 224, 174, 178, 224, 175, 136, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224,
+			2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 1, 141, 175, 224, 178, 174, 224, 138, 175, 224, 149, 174, 224, 2, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 224, 174, 190, 0, 1, 141, 175, 224, 178, 174, 224, 175, 174, 224, 136, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174,
+			159, 224, 175, 141, 0, 1, 141, 175, 224, 179, 174, 224, 137, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 154, 174, 224,
+			141, 175, 224, 154, 174, 224, 137, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 154, 174, 224, 141, 175, 224, 158, 174, 224,
+			170, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 175, 224, 174, 190, 224, 174, 163, 0, 1, 154, 174, 224, 141, 175, 224, 158, 174, 224,
+			170, 174, 224, 2, 224, 174, 181, 224, 175, 141, 224, 174, 175, 0, 1, 159, 174, 224, 149, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174,
+			181, 224, 174, 191, 0, 1, 164, 174, 224, 141, 175, 224, 168, 174, 224, 136, 175, 224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 175,
+			136, 0, 1, 169, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 176, 0, 1, 170, 174, 224, 141, 175, 224, 174, 174, 224, 176, 174, 224,
+			134, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 178, 174, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174,
+			190, 0, 1, 181, 174, 224, 141, 175, 224, 184, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174,
+			190, 0, 1, 190, 174, 224, 149, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 191, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224,
+			154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174,
+			176, 224, 174, 191, 224, 174, 169, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 175, 141, 32, 0,
+			1, 190, 174, 224, 170, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 1, 190, 174, 224, 181, 174, 224, 191, 174,
+			224, 164, 174, 224, 2, 224, 174, 176, 0, 1, 190, 174, 224, 185, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 191, 0, 2, 224, 174,
+			181, 224, 174, 191, 224, 174, 158, 0, 2, 224, 174, 181, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 8, 0, 8, 2, 224,
+			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
+			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 139, 175, 224, 178, 174, 224, 2, 224, 174, 178, 0,
+			8, 140, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 153, 174, 224, 191, 174, 224, 178, 174,
+			224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 169, 224, 174, 181, 0, 8, 141, 175,
+			224, 163, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 177, 224, 175, 141, 0, 8, 141, 175, 224, 163, 174, 224, 191, 174, 224, 181, 174,
+			224, 2, 224, 174, 179, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0,
+			8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174,
+			224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175,
+			224, 181, 174, 224, 2, 224, 174, 174, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0,
+			8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 8, 163, 174, 224, 176, 174,
+			224, 2, 224, 174, 179, 0, 8, 174, 174, 224, 141, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 164, 0,
+			8, 175, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 175, 174, 224, 191, 174, 224, 164, 174,
+			224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 175, 174, 224, 191, 174, 224, 176, 174, 224, 130, 175,
+			224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 191, 174,
+			224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 154, 174,
+			224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 178, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0,
+			8, 181, 174, 224, 128, 175, 224, 156, 174, 224, 2, 224, 174, 178, 224, 175, 136, 0, 8, 191, 174, 224, 154, 174, 224, 154, 174, 224, 2, 224,
+			174, 178, 224, 174, 190, 0, 8, 191, 174, 224, 159, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 174, 178, 0, 8, 191, 174, 224, 159, 174,
+			224, 141, 175, 224, 149, 174, 224, 190, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 178, 0, 224, 174, 178, 224, 175, 141,
+			224, 174, 170, 8, 175, 174, 224, 190, 174, 224, 149, 174, 224, 3, 49, 109, 55, 48, 149, 0, 224, 174, 159, 8, 141, 175, 224, 153, 174, 224,
+			134, 175, 224, 181, 174, 224, 3, 49, 109, 140, 149, 0, 224, 175, 135, 224, 174, 159, 8, 138, 175, 224, 178, 174, 224, 3, 49, 114, 140, 149,
+			0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 8, 156, 174, 224, 3, 49, 118, 34, 140, 149, 0, 224, 174, 190, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 3, 49, 118, 50, 47, 149, 0, 224, 175, 139, 224,
 			174, 170, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 3, 49, 119, 71, 0, 224, 175, 129, 224, 174, 174,
-			224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 190, 174, 224, 159, 174, 224, 3, 49, 122, 65, 36, 66, 47, 148, 0, 224, 175,
-			140, 224, 174, 154, 224, 174, 191, 224, 174, 149, 8, 3, 49, 135, 89, 37, 49, 148, 0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 3, 49,
-			139, 0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 8, 134, 175, 224, 178, 174, 224, 142, 174, 224,
-			2, 224, 174, 178, 3, 49, 139, 34, 37, 49, 109, 0, 224, 175, 141, 224, 174, 159, 3, 49, 139, 148, 0, 4, 1, 141, 175, 224, 149, 174,
-			224, 3, 49, 148, 0, 8, 141, 175, 224, 175, 174, 224, 190, 174, 224, 174, 174, 224, 156, 174, 224, 0, 8, 190, 174, 224, 159, 174, 224, 141,
+			224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 190, 174, 224, 159, 174, 224, 3, 49, 122, 65, 36, 66, 47, 149, 0, 224, 175,
+			140, 224, 174, 154, 224, 174, 191, 224, 174, 149, 8, 3, 49, 135, 89, 37, 49, 149, 0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 3, 49,
+			140, 0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 8, 134, 175, 224, 178, 174, 224, 142, 174, 224,
+			2, 224, 174, 178, 3, 49, 140, 34, 37, 49, 109, 0, 224, 175, 141, 224, 174, 159, 3, 49, 140, 149, 0, 4, 1, 141, 175, 224, 149, 174,
+			224, 3, 49, 149, 0, 8, 141, 175, 224, 175, 174, 224, 190, 174, 224, 174, 174, 224, 156, 174, 224, 0, 8, 190, 174, 224, 159, 174, 224, 141,
 			175, 224, 184, 174, 224, 0, 8, 191, 174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 0, 4, 224, 175, 129, 1, 141, 175, 224, 163, 174,
-			224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 159, 224, 174, 191, 3, 49, 150, 0, 224, 175, 129, 1, 141, 175, 224, 169, 174, 224, 174, 174,
+			224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 159, 224, 174, 191, 3, 49, 151, 0, 224, 175, 129, 1, 141, 175, 224, 169, 174, 224, 174, 174,
 			224, 141, 175, 224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 224, 175, 129, 1, 141, 175, 224, 176, 174, 224, 190, 174,
 			224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 174, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 224, 175, 129, 1, 141, 175, 224, 176, 174,
 			224, 190, 174, 224, 175, 174, 224, 136, 175, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 224, 175, 129, 1, 175, 174,
@@ -42944,33 +31538,24 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			224, 2, 224, 174, 159, 224, 174, 191, 0, 4, 1, 141, 175, 224, 149, 174, 224, 136, 175, 224, 178, 174, 224, 174, 174, 224, 2, 224, 175, 129,
 			224, 174, 149, 224, 175, 136, 3, 81, 0, 1, 141, 175, 224, 149, 174, 224, 191, 174, 224, 177, 174, 224, 143, 174, 224, 2, 224, 175, 129, 224,
 			174, 164, 224, 174, 191, 0, 1, 141, 175, 224, 153, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 1, 141, 175, 224, 153, 174,
-			224, 133, 174, 224, 2, 224, 175, 138, 0, 1, 141, 175, 224, 153, 174, 224, 135, 174, 224, 2, 224, 175, 138, 0, 1, 141, 175, 224, 159, 174,
-			224, 129, 175, 224, 176, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 0, 1, 141, 175, 224, 177, 174, 224, 168, 174, 224, 2, 224,
-			175, 129, 224, 174, 163, 0, 2, 17, 66, 0, 2, 224, 175, 128, 224, 174, 164, 0, 8, 2, 17, 66, 28, 17, 12, 0, 8, 2, 224, 174,
-			190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149, 0, 8,
-			2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 170, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 153, 224, 175,
-			141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174,
-			168, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174,
-			174, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 8,
-			2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 128, 224, 174, 175, 0, 8,
-			2, 224, 174, 190, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 181, 224, 174, 191, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174,
-			170, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174,
-			176, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 135, 224, 174, 156, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175,
-			141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174,
-			169, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174,
-			131, 224, 174, 170, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174,
-			159, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174,
-			159, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 176, 224, 175,
-			136, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175,
-			129, 224, 174, 149, 224, 174, 191, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175,
-			134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 184, 0, 8,
-			2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174,
-			191, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 8,
+			224, 133, 174, 224, 2, 224, 175, 138, 0, 1, 141, 175, 224, 153, 174, 224, 135, 174, 224, 2, 224, 175, 138, 0, 1, 141, 175, 224, 177, 174,
+			224, 168, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 2, 17, 66, 0, 2, 224, 175, 128, 224, 174, 164, 0, 8, 2, 17, 66, 28, 17,
+			12, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 176, 224, 175,
+			129, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 170, 0, 8, 2, 224, 174,
+			190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174,
+			164, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 8,
+			2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175,
+			141, 224, 174, 164, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174,
+			176, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174,
+			153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174,
+			169, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 181, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175,
+			136, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 8,
+			2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174,
+			131, 224, 174, 170, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 191, 224, 174,
+			159, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174,
+			177, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175,
+			141, 224, 174, 169, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 8,
 			2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174,
 			176, 224, 174, 191, 224, 174, 156, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 176, 0, 8,
 			2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174,
@@ -42980,753 +31565,566 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			191, 224, 174, 176, 224, 175, 128, 224, 174, 183, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 174, 184, 224, 175,
 			141, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175,
 			129, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 185, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 176, 0, 8,
-			2, 224, 174, 191, 224, 174, 176, 224, 175, 141, 224, 174, 176, 224, 175, 134, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174,
-			169, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
-			149, 224, 174, 168, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174,
-			149, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
+			2, 224, 174, 191, 224, 174, 176, 224, 175, 141, 224, 174, 176, 224, 175, 134, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174,
+			174, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 174, 168, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224, 175, 129, 224, 174,
+			149, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 175, 129, 224, 174,
 			149, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 156, 224, 174, 176, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224, 175, 129, 224, 174,
 			156, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 164, 224, 175,
 			141, 224, 174, 164, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175, 129, 0, 8,
-			2, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 149, 224, 175,
-			141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 154, 224, 174,
-			190, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 154, 224, 175, 128, 224, 174, 178, 0, 8, 2, 224, 175,
-			129, 224, 174, 163, 224, 174, 154, 224, 175, 135, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 154, 224, 175,
-			141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 168, 224, 174,
-			178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 174,
-			190, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 175, 130, 224, 174, 183, 0, 8, 2, 224, 175, 129, 224, 174,
-			163, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 174, 0, 8, 2, 224, 175,
-			129, 224, 174, 163, 224, 174, 176, 224, 175, 128, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 181, 224, 174,
-			164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174,
-			163, 224, 174, 181, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
-			163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 0, 8,
-			2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174,
-			154, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174,
-			164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175,
-			129, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174,
-			170, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 170, 224, 175,
-			129, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175,
-			135, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 175,
-			129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174,
-			170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 184, 224, 175,
-			141, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175,
-			129, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175,
-			141, 224, 174, 174, 224, 174, 169, 224, 174, 190, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 181, 224, 174, 159, 224, 174,
-			191, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 175, 129, 224, 174,
-			174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174,
-			163, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 0, 8,
-			2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
-			149, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			179, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 178, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 174, 190, 224, 174,
-			184, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175,
+			2, 224, 175, 129, 224, 174, 163, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 154, 224, 175, 128, 224, 174,
+			178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 154, 224, 175, 135, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174,
+			163, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174,
+			163, 224, 174, 168, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174,
+			163, 224, 174, 170, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 175, 130, 224, 174, 183, 0, 8,
+			2, 224, 175, 129, 224, 174, 163, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174,
+			174, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 181, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174,
+			181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 163, 224, 175,
+			141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174,
+			164, 224, 174, 191, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8,
+			2, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 128, 224, 174,
+			176, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 175,
+			129, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175,
+			129, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174,
+			177, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175,
+			129, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175,
+			141, 224, 174, 170, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 169, 224, 174, 190, 224, 174,
+			158, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 181, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175,
+			141, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174,
+			159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 163, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174,
+			174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175,
+			129, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174,
+			174, 224, 175, 134, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175,
+			129, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175,
+			129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
+			154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 156, 224, 174, 191, 0, 8,
+			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175,
 			129, 224, 174, 168, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 174, 149, 224, 174, 181, 224, 174,
-			190, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 170, 224, 175, 130, 224, 174, 156, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
-			170, 224, 175, 139, 224, 174, 164, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175,
-			134, 224, 174, 175, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 175, 224, 175,
-			139, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 174, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
-			181, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175, 141, 224, 174,
-			154, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 190, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 176, 224, 175, 129, 224, 174, 179, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174,
-			175, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174,
-			191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 129, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 129, 224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 129, 224, 174, 181, 224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175,
-			136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 139, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175,
-			129, 224, 174, 181, 224, 175, 139, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 174, 190, 224, 174, 170, 0, 8, 2, 224, 175,
-			129, 224, 174, 178, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 135, 224, 174, 170, 224, 174, 190, 0, 8,
-			2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 174, 224, 175, 139, 18, 71, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 181,
-			224, 174, 185, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 184, 224, 175, 141,
-			224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 185, 0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 174, 191, 224, 174, 179,
-			0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 175, 129, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 159, 224, 174, 178, 224, 175, 130,
-			224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2,
-			224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 156,
-			0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 164, 224, 175, 141,
-			0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175, 134,
-			224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 163, 224, 175, 141,
-			224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 177, 224, 175, 141,
-			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 159,
-			224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 168, 224, 175, 141, 224, 174, 164,
-			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 135,
-			224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 175, 129, 224, 174, 149,
-			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129,
-			224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 224, 174, 149, 224, 175, 141,
-			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 135,
-			224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 170, 224, 175, 141,
-			224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 175, 135,
-			224, 174, 174, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 184, 224, 174, 191,
-			0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 191, 0, 8, 2,
-			224, 175, 135, 224, 174, 184, 224, 175, 141, 32, 18, 91, 0, 8, 2, 224, 175, 136, 224, 174, 159, 0, 8, 2, 224, 175, 136, 224, 174, 169,
-			224, 174, 149, 0, 8, 2, 224, 175, 138, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174, 163, 224, 174, 174,
-			0, 8, 2, 224, 175, 138, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 175, 129, 224, 174, 178,
-			0, 8, 2, 224, 175, 139, 224, 174, 154, 224, 174, 190, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 154, 224, 175, 129,
-			224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129,
-			32, 224, 174, 181, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174,
-			163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 190, 224, 174, 181, 224, 174, 176, 224, 174, 191, 0, 8,
-			2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
-			191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174,
-			176, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174,
-			164, 224, 175, 141, 224, 174, 176, 224, 175, 135, 224, 174, 156, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 168, 224, 175, 141, 224, 174,
-			164, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174,
-			191, 224, 174, 154, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 175,
-			141, 224, 174, 154, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174,
-			191, 224, 174, 168, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174,
-			170, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174,
-			174, 224, 174, 164, 224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 174,
-			190, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174,
-			174, 224, 175, 129, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
-			191, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 175, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 0, 8, 2, 224,
-			175, 139, 224, 174, 176, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 154, 224, 175, 141, 32, 224, 174, 154, 224, 174, 191,
-			224, 174, 176, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 154, 224, 175, 141,
-			32, 224, 174, 154, 224, 175, 134, 224, 174, 175, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 164, 224, 175, 141, 32, 224,
-			174, 164, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 181, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
-			175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 32, 18, 85, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 174, 177, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 178, 224,
-			175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 8, 2, 224,
-			175, 139, 224, 174, 176, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
-			174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191, 224,
-			174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 224,
-			174, 149, 224, 175, 138, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 224,
-			174, 159, 224, 175, 141, 32, 18, 95, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 178, 0,
-			8, 2, 224, 175, 139, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 181, 224, 174, 191, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 183, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224,
-			174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 159, 0, 8, 2, 224, 175, 140, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224,
-			175, 140, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 140, 224, 174, 176, 224, 174, 181, 0, 8, 2, 224,
-			175, 140, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 179, 224,
-			175, 136, 0, 8, 129, 175, 224, 154, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 176, 0, 8, 129, 175, 224, 176, 174,
-			224, 134, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 136, 175, 224, 178, 174, 224, 164, 174,
-			224, 2, 224, 175, 128, 224, 174, 180, 224, 175, 141, 0, 8, 141, 175, 224, 149, 174, 224, 164, 174, 224, 174, 174, 224, 141, 175, 224, 169, 174,
-			224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 0, 8, 141, 175, 224, 153, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224,
-			174, 178, 224, 174, 191, 0, 8, 141, 175, 224, 153, 174, 224, 190, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 175, 174, 224, 170, 174,
-			224, 2, 224, 175, 138, 224, 174, 179, 224, 175, 141, 0, 8, 141, 175, 224, 177, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224,
-			175, 136, 0, 8, 141, 175, 224, 177, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
-			174, 178, 0, 8, 141, 175, 224, 177, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 0,
-			8, 141, 175, 224, 177, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 8, 141, 175,
-			224, 177, 174, 224, 154, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 8, 141, 175, 224, 177, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224,
-			175, 129, 224, 174, 163, 0, 8, 170, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 8, 174, 174, 224, 141, 175, 224, 176, 174,
-			224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 1, 141, 175, 224, 153, 174, 224, 135, 174,
-			224, 2, 224, 174, 178, 224, 175, 128, 224, 174, 183, 224, 175, 141, 0, 224, 174, 191, 1, 141, 175, 224, 177, 174, 224, 138, 175, 224, 170, 174,
-			224, 2, 224, 174, 176, 224, 174, 163, 0, 224, 174, 191, 2, 224, 174, 176, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224,
-			174, 191, 8, 2, 224, 174, 176, 224, 174, 185, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8,
-			2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 139, 224, 174,
-			176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 0, 224, 174, 191, 8,
-			2, 224, 174, 176, 224, 175, 128, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 169, 224, 175, 141, 224, 174,
-			178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 184, 0, 224,
-			174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175,
-			136, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 163, 224, 175,
-			141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224,
-			174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 174, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174,
-			184, 224, 175, 141, 32, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 130, 224, 174, 170, 224, 175, 141, 0, 224, 175, 129, 8, 2, 224,
-			174, 178, 224, 175, 139, 224, 174, 170, 224, 174, 178, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 224, 175, 139, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224,
-			174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141,
-			8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 8, 2, 224,
-			174, 176, 224, 175, 128, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 130, 224, 174, 170, 0, 224, 175, 141, 8, 2, 224,
-			174, 176, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 8, 2, 224, 174, 178, 224, 175, 135, 224, 174, 154, 224,
-			174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 174, 224, 174, 176, 0, 224, 175, 141,
-			8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 32, 0, 224, 175, 141, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178,
-			224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 175, 141, 8, 142, 174, 224, 2, 224, 174, 184, 224, 174, 190, 224, 174, 174, 0, 224, 174,
-			191, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 136, 224, 174, 159, 8, 3, 81, 34, 118, 50, 134, 139, 148, 0, 4, 224, 174, 191,
-			224, 174, 176, 224, 174, 190, 224, 174, 131, 224, 174, 170, 224, 175, 136, 224, 174, 159, 8, 3, 81, 34, 118, 83, 134, 139, 148, 0, 224, 174,
-			191, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 136, 224, 174, 159, 8, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 174, 149, 224, 175, 141, 224, 174, 183, 8, 2, 224, 174, 163,
-			3, 81, 37, 34, 37, 48, 48, 34, 109, 72, 109, 49, 93, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 174, 159, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 163, 0, 224, 174, 191,
-			224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 159, 3, 81, 37, 83, 0, 4, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8,
-			2, 224, 174, 190, 224, 174, 164, 3, 81, 40, 34, 40, 48, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8, 2, 224, 175,
-			128, 224, 174, 159, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8, 2, 224, 175, 130, 0, 224, 175, 129, 224, 174, 176, 224,
-			175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174, 164, 3, 81,
-			40, 34, 40, 48, 48, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 224, 174, 169, 224, 174, 191, 3, 81, 40, 34, 40, 48, 109, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 175,
-			129, 224, 174, 149, 8, 2, 224, 174, 191, 3, 81, 40, 34, 40, 65, 40, 49, 0, 224, 175, 129, 224, 174, 170, 224, 175, 141, 8, 2, 224,
-			174, 164, 3, 81, 40, 48, 0, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164,
-			3, 81, 40, 55, 49, 109, 0, 224, 175, 129, 224, 174, 163, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			224, 174, 191, 224, 174, 176, 3, 81, 40, 66, 109, 76, 0, 4, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 174, 178, 3, 81, 40, 66, 139, 148, 0, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8,
-			2, 224, 175, 130, 224, 174, 176, 0, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 8, 2, 224, 174, 159, 224, 174, 191, 3, 81, 40, 66, 140, 118, 50, 47, 109, 0, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224,
-			174, 184, 224, 175, 141, 224, 174, 149, 8, 2, 224, 175, 139, 3, 81, 62, 118, 89, 81, 0, 4, 224, 175, 141, 224, 174, 149, 1, 18, 68,
-			2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 3, 81, 81, 0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175, 129, 224, 174, 163,
-			0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175, 139, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149,
-			1, 18, 68, 2, 224, 175, 139, 224, 174, 183, 0, 224, 175, 141, 224, 174, 149, 1, 129, 175, 224, 163, 174, 224, 133, 174, 224, 2, 224, 175,
-			129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 1, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174,
-			191, 0, 224, 175, 141, 224, 174, 149, 1, 134, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1,
-			139, 175, 224, 175, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 1, 139, 175, 224, 176, 174, 224,
-			134, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224,
-			2, 224, 174, 190, 224, 174, 178, 224, 175, 139, 224, 174, 154, 224, 174, 168, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1, 169, 174, 224,
-			156, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 178, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224,
-			156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224,
-			170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224,
-			176, 174, 224, 136, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224, 181, 174, 224,
-			141, 175, 224, 175, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 8,
-			129, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 224, 175, 141, 224, 174, 149, 8, 135, 175, 224, 178, 174, 224, 2, 224, 174,
-			191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 8, 136, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 0, 224, 175, 141, 224, 174, 149, 8, 139, 175, 224, 175, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 8,
-			141, 175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 175, 139, 224, 174, 154, 224, 174, 169, 224, 175,
-			136, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 224,
-			175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 224, 175, 141, 224,
-			174, 149, 8, 169, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 8, 178, 174, 224,
-			2, 224, 174, 191, 224, 174, 169, 0, 224, 175, 141, 224, 174, 149, 8, 178, 174, 224, 2, 224, 175, 135, 224, 174, 156, 0, 224, 175, 141, 224,
-			174, 149, 8, 190, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224,
-			174, 149, 8, 190, 174, 224, 164, 174, 224, 191, 174, 224, 181, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224,
-			175, 141, 224, 174, 149, 8, 190, 174, 224, 181, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224,
-			175, 141, 224, 174, 149, 8, 191, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 190, 174, 224, 170, 174, 224, 141, 175, 224, 170, 174, 224,
-			129, 175, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224,
-			159, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8,
-			191, 174, 224, 178, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224,
-			174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224, 174, 149, 8,
-			191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224,
-			2, 224, 174, 191, 224, 174, 169, 224, 174, 174, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224,
-			174, 191, 224, 174, 176, 224, 174, 149, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 18, 68, 2, 224, 174, 176, 224, 174, 149, 0, 224,
-			175, 141, 224, 174, 149, 224, 174, 191, 1, 18, 68, 2, 224, 174, 176, 224, 174, 185, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 129,
-			175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 129, 175, 224, 168,
-			174, 224, 133, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2,
-			224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 133, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175,
-			141, 224, 174, 149, 224, 174, 191, 1, 135, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 1, 190, 174, 224, 175, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 149,
-			0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 170, 174, 224, 141, 175, 224, 170, 174, 224, 141, 175, 224, 176, 174, 224, 149, 174, 224, 2,
-			224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 178, 174, 224, 130, 175, 224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175,
-			141, 224, 174, 149, 224, 174, 191, 8, 179, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175,
-			141, 224, 174, 149, 224, 174, 191, 8, 181, 174, 224, 168, 174, 224, 2, 224, 174, 176, 18, 71, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191,
-			8, 190, 174, 224, 175, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 185, 0,
-			224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 191, 174, 224, 178, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224,
-			174, 174, 0, 4, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 153, 224, 175, 141, 3,
-			81, 81, 109, 0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164, 224, 175, 141, 0,
-			224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 1,
-			141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 8, 129, 175, 224,
-			180, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 169, 0, 224, 175, 141, 224, 174, 149, 8, 136, 175, 224, 163, 174, 224,
-			129, 175, 224, 164, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224,
-			128, 175, 224, 164, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224,
-			128, 175, 224, 164, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 169, 174, 224,
-			164, 174, 224, 2, 224, 174, 181, 224, 174, 169, 0, 4, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 129, 175, 224, 164, 174,
-			224, 3, 81, 81, 148, 0, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 130, 175, 224, 174, 174, 224, 0, 224, 175, 141, 224,
-			174, 149, 1, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 138,
-			175, 224, 154, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 181, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8,
-			141, 175, 224, 176, 174, 224, 181, 174, 224, 141, 175, 224, 184, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 156, 174, 224, 0, 4, 3, 81,
-			109, 0, 2, 224, 174, 156, 0, 8, 2, 28, 17, 0, 8, 2, 224, 174, 131, 224, 174, 170, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224,
-			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224,
-			174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224,
-			174, 149, 224, 175, 129, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 178, 224,
-			174, 191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224,
-			175, 139, 224, 174, 164, 0, 8, 2, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 190, 0, 8, 2, 224, 174, 159, 224, 174, 149, 224,
-			174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 159, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 159, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 159, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 176, 224,
-			175, 136, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 175, 139, 224,
-			174, 164, 224, 175, 141, 224, 174, 149, 224, 174, 156, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 224,
-			174, 191, 0, 8, 2, 224, 174, 163, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 128, 224, 174, 176, 0,
-			8, 2, 224, 174, 163, 224, 175, 135, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224,
-			174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 164, 224, 174, 190, 224, 174, 175, 224,
-			175, 129, 224, 174, 164, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 174, 178, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224,
-			174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224,
-			174, 164, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224,
-			174, 154, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 191, 224,
-			174, 178, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 174, 149, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224,
-			174, 169, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 169, 224, 174, 156, 224, 175, 139, 224, 174, 176, 0, 8, 2, 224,
-			174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 169, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224,
-			174, 169, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224,
-			174, 149, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 175, 134, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 176, 0,
-			8, 2, 224, 174, 174, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 174, 174, 224, 174, 181, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 177, 0, 8, 2, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 128, 224, 174, 176,
-			0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174,
-			224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 175,
-			224, 174, 190, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 175, 224, 175, 136,
-			0, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 176,
-			224, 175, 141, 224, 174, 156, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 181,
-			0, 8, 2, 224, 174, 178, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191,
-			224, 174, 178, 18, 73, 224, 174, 175, 224, 175, 139, 0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 154, 224, 174, 191, 224, 174, 175, 0,
-			8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 178, 0, 8, 2, 224, 174, 178, 224,
-			175, 128, 224, 174, 183, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 131, 224, 174, 170, 0, 8, 2, 224,
-			174, 178, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224,
-			174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224,
-			174, 181, 224, 174, 163, 0, 8, 2, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224,
-			174, 176, 0, 8, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224,
-			175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224,
-			174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224,
-			174, 179, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 176, 0, 8, 141, 175, 224, 149, 174, 224, 136, 175, 224, 178, 174, 224, 164, 174,
-			224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 159, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224,
-			174, 190, 224, 174, 176, 0, 8, 141, 175, 224, 177, 174, 224, 168, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 224, 174, 170, 224, 175, 141,
-			8, 2, 18, 69, 224, 174, 190, 3, 81, 109, 48, 0, 224, 174, 170, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 3, 81, 109, 48, 76, 0, 224, 174, 169, 224, 174, 149, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174,
-			164, 3, 81, 109, 50, 109, 49, 109, 0, 224, 174, 178, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 190, 3, 81, 109, 55, 47, 0, 224,
-			174, 170, 8, 2, 224, 174, 190, 224, 174, 176, 3, 81, 109, 83, 0, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 134,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 109, 84, 109, 34, 65, 36, 66, 139, 148, 0, 224, 175, 135, 224, 174, 176, 224, 174,
-			163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 114, 34, 109, 66, 139, 148, 0, 224, 175, 135, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174,
-			181, 224, 174, 190, 224, 174, 159, 3, 81, 114, 49, 0, 224, 175, 135, 224, 174, 178, 224, 174, 149, 8, 2, 224, 175, 141, 224, 174, 154, 224,
-			174, 191, 3, 81, 114, 55, 109, 49, 0, 224, 175, 135, 224, 174, 159, 224, 175, 141, 8, 2, 224, 174, 178, 3, 81, 114, 139, 0, 224, 174,
-			190, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 118, 34, 109, 66, 139, 148, 0, 224, 174, 190, 224, 174, 178, 224,
-			175, 141, 224, 174, 170, 224, 175, 141, 8, 3, 81, 118, 55, 83, 0, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 135,
-			224, 174, 149, 8, 2, 224, 174, 176, 3, 81, 118, 66, 140, 114, 49, 109, 0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 159, 224,
-			174, 190, 224, 174, 149, 224, 175, 141, 8, 3, 81, 118, 68, 139, 118, 49, 0, 4, 224, 174, 190, 224, 174, 154, 8, 2, 224, 174, 190, 224,
-			174, 181, 3, 81, 118, 88, 0, 224, 174, 190, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 170, 224, 174, 190,
-			224, 174, 164, 0, 224, 174, 190, 224, 174, 156, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 170, 224, 174, 190, 224, 174, 164,
-			0, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141,
-			224, 174, 164, 3, 81, 119, 34, 49, 0, 4, 224, 175, 139, 224, 174, 170, 2, 224, 174, 190, 224, 174, 178, 3, 81, 119, 48, 0, 224, 175,
-			139, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 190, 12, 0, 224, 175, 139, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174,
-			178, 3, 81, 119, 49, 0, 224, 175, 139, 224, 174, 149, 8, 2, 224, 174, 176, 3, 81, 119, 49, 109, 0, 224, 175, 139, 224, 174, 174, 224,
-			174, 164, 224, 175, 135, 224, 174, 154, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 176, 3, 81, 119, 65, 109, 72, 114, 89, 0, 224, 175,
-			139, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 3, 81, 119, 84, 109, 34, 72, 72, 148, 0,
-			224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 154, 8, 2, 224, 175, 135, 3, 81, 119, 140, 89, 0, 224, 175, 130, 224, 174, 176, 224,
-			175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 81, 123, 34, 49, 0, 4, 224, 175, 134, 224, 174, 179, 8, 2, 224, 174, 164, 224, 174,
-			174, 3, 81, 135, 0, 224, 175, 134, 224, 174, 179, 8, 2, 224, 174, 176, 224, 174, 181, 0, 224, 175, 134, 224, 174, 179, 8, 2, 224, 174,
-			176, 224, 174, 191, 0, 224, 175, 140, 224, 174, 164, 8, 3, 81, 135, 47, 148, 0, 4, 224, 175, 141, 224, 174, 159, 1, 142, 174, 224, 2,
-			224, 175, 135, 3, 81, 140, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 32, 0, 224, 175, 141, 224,
-			174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 159, 8,
-			134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 224, 174, 175, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175,
-			135, 224, 174, 181, 0, 4, 1, 139, 175, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 3, 108, 0, 1, 174, 174, 224,
-			2, 224, 174, 190, 0, 1, 174, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 175, 129, 224, 174, 181, 224, 174, 176, 0, 1, 174, 174, 224,
-			2, 224, 175, 135, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 174, 174, 224, 2, 224, 175, 135, 224, 174,
-			183, 224, 175, 141, 224, 174, 181, 0, 1, 174, 174, 224, 2, 224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 176, 0, 1,
-			190, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174,
-			154, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 8, 129, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174,
-			164, 0, 8, 174, 174, 224, 2, 224, 174, 191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 174, 174, 224, 2, 224, 174, 191, 224, 174,
-			174, 224, 175, 136, 0, 8, 190, 174, 224, 176, 174, 224, 2, 224, 175, 129, 224, 174, 178, 0, 8, 190, 174, 224, 178, 174, 224, 2, 224, 175,
-			130, 224, 174, 176, 0, 1, 139, 175, 224, 174, 174, 224, 2, 224, 174, 169, 3, 108, 109, 0, 224, 174, 190, 224, 174, 170, 1, 178, 174, 224,
-			133, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 3, 108, 118, 71, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3,
-			68, 109, 0, 7, 6, 1, 27, 0, 1, 32, 141, 175, 224, 154, 174, 224, 2, 12, 12, 3, 12, 148, 0, 1, 141, 175, 224, 158, 174, 224,
-			2, 17, 66, 3, 75, 0, 1, 141, 175, 224, 158, 174, 224, 3, 75, 109, 0, 4, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 32,
-			3, 76, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 1, 134, 174,
-			224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 175, 141, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 159, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 0, 1, 134, 174, 224, 2, 224,
-			174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175, 32, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175,
-			224, 174, 176, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 176, 0, 1, 134,
-			174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 175, 0, 1, 141, 175, 224, 159, 174, 224, 2, 17, 66, 0, 1, 141, 175,
-			224, 177, 174, 224, 2, 17, 66, 0, 1, 170, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 170, 174, 224, 137, 174, 224,
-			2, 224, 174, 190, 224, 174, 176, 0, 1, 170, 174, 224, 139, 175, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174,
-			176, 0, 1, 170, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 178, 174, 224, 190, 174, 224, 170, 174, 224,
-			139, 175, 224, 149, 174, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 1, 190, 174, 224,
-			156, 174, 224, 129, 175, 224, 169, 174, 224, 190, 174, 224, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174,
-			191, 0, 1, 190, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174,
-			191, 0, 1, 190, 174, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 190, 174, 224, 174, 174, 224, 169, 174, 224,
-			141, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 1, 190, 174, 224, 176, 174, 224, 149, 174, 224,
-			141, 175, 224, 153, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 1,
-			190, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 190, 174, 224, 181, 174, 224, 149, 174, 224, 190, 174, 224,
-			176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 1, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 2, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2,
-			17, 66, 28, 17, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			191, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174,
-			190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175,
-			136, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174,
-			159, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174,
-			190, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174,
-			190, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174,
-			181, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 156, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174,
-			156, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174,
-			176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175,
-			141, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174,
-			159, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
-			175, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174,
-			149, 224, 175, 139, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 169, 224, 175, 129, 0, 8,
-			2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174,
-			191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 149, 224, 174, 190, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174,
-			170, 224, 174, 190, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 0, 8,
-			2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174,
-			170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174,
-			169, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 0, 8,
-			2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 181, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 181, 224, 174,
-			164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174,
-			169, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174,
-			191, 224, 174, 174, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 176, 224, 175, 141, 224, 174,
-			184, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174,
-			177, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 177, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174,
-			179, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 175, 128, 224, 174, 169, 32, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224,
-			174, 169, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 184, 224,
-			175, 129, 0, 8, 2, 224, 175, 128, 224, 174, 184, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 184, 224, 175, 141, 32, 0, 8, 2,
-			224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 141,
-			224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 190,
-			224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 175, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 176,
-			224, 174, 163, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2,
-			224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 18, 69, 0, 8, 2, 224, 175, 134, 224, 174, 153, 224, 175, 141, 224,
-			174, 149, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 168, 224,
-			174, 190, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224,
-			174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0,
-			8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224,
-			175, 141, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224,
-			174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224,
-			175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 32, 18, 82, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224,
-			174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224,
-			175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 180, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141, 32, 18, 84, 0,
-			8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 0,
-			8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 32, 18, 83, 0,
-			8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224,
-			175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224,
-			174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224,
-			175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224,
-			174, 163, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
-			175, 136, 224, 174, 175, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 174, 190, 0,
-			8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 0,
-			8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 175, 135, 32, 0, 8, 2, 224, 175, 134, 224, 174, 178,
-			224, 175, 141, 224, 174, 178, 224, 175, 136, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 184, 224, 175, 141, 0, 8, 2,
-			224, 175, 135, 224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154,
-			224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 158, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141,
-			224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 224, 174, 156,
-			224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 175, 141, 224, 174, 170,
-			224, 174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 175, 141, 224, 174, 149,
-			224, 174, 179, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 176,
-			224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 158, 224, 175, 141, 0, 8, 2,
-			224, 175, 135, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 184, 224, 175, 141, 32, 0, 8,
-			2, 224, 175, 136, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174,
-			190, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 175, 128, 224, 174,
-			184, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175,
-			141, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 181, 224, 175, 129, 0, 8, 2, 224, 175, 139, 224, 174, 181, 224, 175, 134, 0, 8,
-			2, 224, 175, 140, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175,
-			140, 224, 174, 164, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8,
-			2, 224, 175, 140, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175, 140, 224, 174,
-			170, 224, 175, 135, 0, 8, 2, 224, 175, 140, 224, 174, 185, 224, 174, 190, 224, 174, 169, 0, 8, 18, 71, 176, 174, 224, 191, 174, 224, 149,
-			174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 128, 175, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 156,
-			0, 8, 129, 175, 224, 154, 174, 224, 2, 224, 175, 128, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 141,
-			175, 224, 184, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 156, 0, 8, 154, 174, 224, 2,
-			224, 174, 191, 224, 174, 169, 0, 8, 170, 174, 224, 129, 175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191,
-			174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 170, 174, 224, 129, 175, 224, 181, 174, 224, 191, 174, 224, 176, 174, 224, 191,
-			174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 174, 174, 224, 141, 175, 224, 174, 174, 224, 176, 174, 224, 191, 174, 224, 170,
-			174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 175, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2,
-			224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 178, 174, 224, 164, 174, 224, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191,
-			0, 8, 178, 174, 224, 190, 174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190,
-			174, 224, 149, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 149, 174, 224, 141,
-			175, 224, 153, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 149, 174, 224, 191, 174, 224, 154,
-			174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 159, 174, 224, 141, 175, 224, 159,
-			174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 163, 174, 224, 129, 175, 224, 149, 174, 224, 2,
-			224, 174, 190, 224, 174, 176, 0, 8, 190, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191,
-			0, 8, 190, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 191, 174, 224, 181, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 190,
-			224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 164, 174, 224, 176, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191,
-			0, 8, 190, 174, 224, 174, 174, 224, 163, 174, 224, 141, 175, 224, 183, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 149, 174, 224, 2,
-			224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 174, 174, 224, 176, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176,
-			224, 174, 191, 0, 8, 190, 174, 224, 176, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176,
-			224, 174, 191, 0, 8, 190, 174, 224, 176, 174, 224, 149, 174, 224, 141, 175, 224, 184, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 174, 190,
-			224, 174, 176, 224, 174, 191, 0, 8, 190, 174, 224, 181, 174, 224, 141, 175, 224, 164, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 176,
-			224, 174, 191, 0, 8, 190, 174, 224, 181, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 191,
-			174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 191,
-			174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 191, 174, 224, 181,
-			174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190,
-			224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 2, 32, 24, 0, 224, 175, 141, 2, 32, 224, 174, 154, 0, 224, 175, 141, 8, 168, 174, 224,
-			2, 224, 174, 169, 224, 175, 129, 0, 224, 175, 141, 8, 191, 174, 224, 176, 174, 224, 2, 224, 174, 174, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 0, 224, 175, 141, 224, 174, 154, 2, 17, 66, 3, 76, 12, 0, 224, 175, 141, 224, 174, 154, 3, 76, 12, 109, 0, 224, 175, 134, 224,
-			174, 149, 224, 175, 141, 8, 2, 32, 3, 76, 36, 49, 0, 224, 175, 134, 224, 174, 154, 224, 175, 141, 8, 2, 224, 174, 169, 224, 174, 191,
-			224, 174, 175, 224, 174, 190, 3, 76, 36, 76, 0, 4, 224, 175, 134, 224, 174, 154, 8, 2, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224,
-			174, 190, 3, 76, 36, 76, 109, 0, 224, 175, 134, 224, 174, 154, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 175, 0, 224, 175, 134, 224,
-			174, 154, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 175, 224, 174, 190, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224,
-			174, 191, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 3, 76, 36, 139, 139, 37, 48, 0, 224, 174, 191,
-			224, 174, 164, 1, 129, 175, 224, 154, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 174, 190, 3, 76, 37, 47, 0, 224, 174, 191, 224, 174,
-			170, 224, 175, 141, 8, 2, 224, 174, 149, 224, 174, 179, 3, 76, 37, 48, 0, 4, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 190, 224,
-			174, 149, 224, 175, 139, 3, 76, 37, 49, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 174, 224, 174, 153, 224, 175, 141,
-			224, 174, 149, 224, 174, 179, 224, 175, 130, 224, 174, 176, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 178, 224, 175, 134,
-			224, 174, 159, 224, 175, 141, 0, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 169, 224, 175, 141, 224, 174, 154, 8, 2,
-			224, 174, 191, 3, 76, 37, 65, 48, 109, 50, 88, 0, 224, 175, 141, 224, 174, 174, 224, 175, 130, 224, 174, 154, 8, 190, 174, 224, 149, 174,
-			224, 3, 76, 65, 123, 76, 148, 0, 4, 1, 141, 175, 224, 159, 174, 224, 3, 76, 109, 0, 1, 141, 175, 224, 177, 174, 224, 0, 1, 164,
-			174, 224, 190, 174, 224, 156, 174, 224, 133, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129,
-			0, 1, 190, 174, 224, 159, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 1, 190,
-			174, 224, 159, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 163,
-			174, 224, 129, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 176, 174, 224, 174,
-			174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 174,
-			174, 224, 135, 174, 224, 2, 224, 174, 178, 0, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 0, 2, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 28, 17, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176,
-			224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 149, 224, 175, 141,
-			224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 18, 73, 224, 174, 184, 224,
-			175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0,
-			8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224,
-			174, 179, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 32, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159,
-			224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174, 164,
-			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 128, 224, 174, 184,
-			224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 164,
-			224, 175, 141, 224, 174, 176, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 129,
-			0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 18, 76, 224, 175, 141, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 0, 8, 2, 224,
-			174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224,
-			175, 141, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 154, 224,
-			175, 141, 224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 175, 139, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0,
-			8, 139, 175, 224, 174, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 174, 174, 224, 191, 174, 224, 181, 174,
-			224, 170, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 174, 174, 224, 191, 174, 224, 181, 174, 224, 181, 174,
-			224, 190, 174, 224, 170, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 178, 174, 224, 2, 224, 174, 169, 224, 174, 190, 0, 8, 139, 175,
-			224, 178, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 178, 174, 224, 169, 174, 224, 128, 175, 224, 174, 174,
-			224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 139, 175, 224, 178, 174, 224, 178, 174, 224, 128, 175, 224, 168, 174, 224, 2, 224, 174, 169, 224,
-			174, 191, 0, 8, 141, 175, 224, 153, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 8, 141, 175, 224, 169, 174, 224, 170, 174, 224, 2, 224,
-			174, 176, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 176, 0, 8, 190, 174, 224, 149, 174, 224, 191, 174,
-			224, 163, 174, 224, 164, 174, 224, 2, 224, 174, 178, 0, 8, 190, 174, 224, 174, 174, 224, 191, 174, 224, 185, 174, 224, 2, 224, 174, 178, 0,
-			8, 190, 174, 224, 183, 174, 224, 135, 175, 224, 154, 174, 224, 2, 224, 174, 178, 0, 224, 174, 176, 224, 175, 141, 224, 174, 154, 8, 2, 224,
-			174, 191, 3, 76, 109, 34, 76, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 8, 2, 224, 174,
-			164, 224, 174, 191, 3, 76, 109, 47, 47, 37, 34, 109, 48, 109, 0, 4, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 181,
-			224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 3, 76, 109, 49, 0, 224, 174, 149, 224, 175, 141, 8,
-			170, 174, 224, 0, 224, 174, 174, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 169, 3, 76, 109, 65, 48, 0,
-			4, 224, 174, 190, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 174, 191, 3, 76, 114,
-			0, 224, 174, 190, 8, 2, 224, 174, 169, 224, 174, 178, 0, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 149, 8, 2, 224, 175, 135,
-			224, 174, 154, 224, 174, 191, 3, 76, 118, 34, 122, 49, 0, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 178, 224, 174, 164, 8, 2,
-			224, 174, 190, 3, 76, 118, 34, 122, 55, 109, 47, 0, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 191, 224,
-			174, 169, 3, 76, 118, 48, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 128, 18, 69, 3, 76, 118, 49,
-			48, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 3, 76, 118, 49, 55, 36,
-			139, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 178, 224, 175, 135, 224, 174, 159, 224, 175, 141, 8, 3, 76, 118, 49, 55, 114,
-			139, 0, 4, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 3, 76, 118, 50,
-			72, 0, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 224, 174, 190,
-			224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 178, 0, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170,
-			8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 169, 3, 76, 118, 65, 48, 0, 224, 175, 139, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174,
-			176, 224, 174, 190, 224, 174, 181, 3, 76, 119, 48, 0, 224, 175, 136, 224, 174, 164, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 175, 3,
-			76, 134, 47, 109, 0, 224, 175, 140, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 3, 76,
-			135, 48, 0, 8, 141, 175, 224, 158, 174, 224, 190, 174, 224, 176, 174, 224, 3, 76, 148, 0, 4, 1, 133, 174, 224, 2, 224, 174, 190, 224,
-			174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 3, 88, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175,
-			141, 0, 1, 135, 175, 224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 1, 147, 174, 224, 2, 224, 175, 139, 224, 174,
-			169, 0, 1, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 18, 93, 2, 224, 175, 128, 224, 174, 170, 0, 1, 191, 174, 224, 176,
-			174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 175, 141,
-			0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 8, 130, 175, 224, 175, 174, 224, 191,
-			174, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 138, 175, 224, 174,
-			174, 224, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 138, 175, 224, 174, 174, 224, 2, 224, 174, 190,
-			224, 174, 176, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 169,
-			224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 174, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 168, 174, 224, 2,
-			224, 175, 128, 224, 174, 174, 0, 8, 168, 174, 224, 2, 224, 175, 128, 224, 174, 176, 0, 8, 185, 174, 224, 2, 224, 174, 190, 224, 174, 176,
-			224, 175, 135, 0, 8, 185, 174, 224, 2, 224, 175, 128, 224, 174, 174, 0, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 178,
-			0, 8, 190, 174, 224, 170, 174, 224, 131, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 8, 190, 174, 224, 179, 174, 224, 141, 175, 224, 170,
-			174, 224, 2, 224, 174, 190, 0, 8, 190, 174, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 190, 174, 224, 181,
-			174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 190,
-			174, 224, 181, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164,
-			0, 8, 191, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 174, 0, 8, 191, 174, 224, 169, 174, 224, 134, 175, 224, 181, 174, 224, 2,
-			224, 175, 129, 224, 174, 181, 224, 175, 135, 224, 174, 178, 0, 8, 191, 174, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 176, 224, 174, 174,
-			0, 8, 191, 174, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 4, 1, 133, 174, 224, 2, 224, 174,
-			176, 224, 175, 141, 224, 174, 170, 224, 175, 136, 3, 88, 109, 0, 1, 141, 175, 224, 170, 174, 224, 131, 174, 224, 133, 174, 224, 2, 224, 174,
-			178, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 224, 174, 191, 32, 0, 8, 2, 224, 174, 176, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 135, 175, 224, 176, 174, 224, 2, 224, 174, 176, 0,
-			8, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224,
-			174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 141, 175, 224, 18, 69,
-			2, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 149, 174, 224, 2, 224, 174,
-			149, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 168, 174, 224, 2, 224, 174, 176, 224, 175,
-			129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 0, 8, 190, 174, 224, 168, 174, 224, 2, 224, 174, 176, 0, 224, 174, 176, 224, 174, 164, 224,
-			175, 141, 8, 168, 174, 224, 3, 88, 109, 34, 109, 47, 0, 1, 135, 175, 224, 18, 74, 191, 174, 224, 170, 174, 224, 142, 174, 224, 3, 88,
-			148, 0, 4, 2, 17, 66, 3, 89, 0, 8, 2, 17, 66, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 174, 224, 174, 190, 0, 8,
-			2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 224, 174, 169, 224, 174, 174, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 224, 174, 185, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 191, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 175,
-			136, 224, 174, 169, 224, 174, 190, 32, 224, 174, 168, 224, 175, 135, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 8, 135, 175, 224, 164, 174,
-			224, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 224, 174, 191, 2, 224, 174, 176, 224, 174,
-			174, 0, 224, 174, 191, 8, 2, 224, 174, 168, 224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 169, 224, 175, 135, 0, 224, 174, 191, 8,
-			2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174,
-			178, 224, 174, 190, 224, 174, 149, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 178, 224, 175, 135, 224, 174, 159, 0, 224, 175, 129, 1,
-			128, 175, 224, 176, 174, 224, 190, 174, 224, 169, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176, 174, 224, 133, 174, 224,
-			2, 224, 174, 181, 0, 224, 175, 129, 1, 133, 174, 224, 2, 224, 174, 181, 224, 174, 174, 224, 175, 135, 224, 174, 164, 0, 224, 175, 129, 1,
-			135, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 224, 175, 129, 1, 135, 175, 224, 149, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 1,
-			135, 175, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1, 135, 175, 224, 159, 174, 224,
-			141, 175, 224, 163, 174, 224, 190, 174, 224, 178, 174, 224, 191, 174, 224, 149, 174, 224, 133, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224,
-			175, 129, 1, 135, 175, 224, 163, 174, 224, 181, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1,
-			135, 175, 224, 163, 174, 224, 181, 174, 224, 190, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1,
-			135, 175, 224, 174, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 1, 144, 174, 224, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174,
-			175, 0, 224, 175, 129, 1, 191, 174, 224, 181, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 2, 224, 174, 181, 224, 174, 190, 224, 174, 164,
-			224, 175, 128, 224, 174, 169, 0, 224, 175, 129, 2, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 224, 175, 129, 2, 224, 174,
-			181, 224, 174, 190, 224, 174, 176, 224, 174, 184, 224, 175, 141, 224, 174, 175, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174,
-			164, 224, 174, 191, 0, 224, 175, 129, 8, 2, 224, 174, 178, 224, 175, 139, 224, 174, 149, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174,
-			174, 224, 175, 135, 224, 174, 164, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 163, 0, 224, 175, 129, 8,
-			2, 224, 174, 181, 224, 174, 190, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 164, 224, 174, 191, 0, 224,
-			175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 175, 128, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 191, 224, 174,
-			159, 224, 175, 141, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 191, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174,
-			181, 224, 175, 128, 224, 174, 159, 0, 224, 175, 129, 8, 128, 175, 224, 169, 174, 224, 154, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224,
-			175, 129, 8, 128, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 149, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 8, 135, 175, 224,
-			159, 174, 224, 141, 175, 224, 163, 174, 224, 149, 174, 224, 178, 174, 224, 156, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 8, 135, 175, 224,
-			178, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 8, 135, 175, 224,
-			178, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 174, 174, 224, 190, 174, 224, 18, 71, 174, 174, 224, 2, 224, 174, 181, 224, 174, 176,
-			0, 224, 175, 129, 8, 135, 175, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 176,
-			0, 224, 175, 129, 8, 136, 174, 224, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			224, 174, 190, 224, 174, 176, 3, 89, 34, 37, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 183, 224, 175, 141, 224, 174,
-			159, 224, 174, 191, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174,
-			190, 3, 89, 34, 37, 55, 109, 68, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 8, 32, 191, 174, 224, 164, 174, 224,
-			141, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 174, 164, 224, 175, 136, 3, 89, 34, 109, 72, 0, 4, 224, 174, 191, 224, 174, 176, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 175, 136, 18, 92, 3, 89, 34, 109, 72, 72, 0, 224, 174, 191, 224, 174, 176, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 175, 136, 224, 174, 175, 224, 175, 139, 224, 174, 159, 0, 224, 175, 128, 2, 224, 174, 169, 224,
-			174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 154, 3, 89, 34, 112, 0, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 224, 174, 159, 8, 3, 89, 36, 57, 37, 50, 139, 0, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 169, 224, 175, 141, 224, 174,
-			159, 8, 3, 89, 36, 57, 50, 139, 0, 224, 175, 129, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			8, 2, 224, 175, 139, 224, 174, 180, 224, 174, 191, 3, 89, 40, 84, 109, 34, 49, 49, 0, 224, 175, 129, 224, 174, 181, 224, 174, 176, 224,
-			175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 174, 190, 224, 174, 176, 3, 89,
-			40, 84, 109, 34, 81, 81, 109, 0, 224, 175, 129, 224, 174, 170, 1, 134, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
-			191, 224, 174, 176, 224, 174, 191, 3, 89, 48, 109, 0, 224, 175, 129, 224, 174, 174, 224, 174, 191, 224, 174, 164, 8, 2, 224, 174, 190, 3,
-			89, 65, 37, 47, 0, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 156, 8, 2, 224, 174, 176, 224, 175,
-			141, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 3, 89, 84, 37, 140, 88, 109, 0, 224, 175, 129, 224, 174, 181,
-			224, 174, 176, 224, 174, 191, 1, 144, 174, 224, 2, 224, 174, 175, 3, 89, 84, 109, 34, 0, 224, 175, 129, 224, 174, 181, 224, 174, 176, 224,
-			175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 3, 89, 84, 109, 34, 81, 81, 148, 0, 4, 224, 175, 129, 224, 174, 181, 224, 174,
-			190, 224, 174, 176, 224, 174, 154, 224, 174, 191, 1, 133, 174, 224, 2, 224, 174, 175, 3, 89, 84, 118, 34, 109, 89, 0, 224, 175, 129, 224,
-			174, 181, 224, 174, 190, 224, 174, 176, 224, 174, 154, 224, 174, 191, 8, 2, 224, 174, 175, 0, 4, 3, 89, 109, 0, 1, 133, 174, 224, 2,
-			224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 170, 0, 8, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 170, 0, 8, 141, 175, 224, 159, 174, 224, 185, 174, 224, 2, 224, 174, 169, 0, 8, 141, 175,
-			224, 159, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 135, 175,
-			224, 159, 174, 224, 2, 224, 174, 169, 0, 8, 181, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 0, 224, 174, 176,
-			224, 174, 154, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 164, 224, 174, 191, 3, 89, 109, 34, 109, 89, 0, 224, 174, 153, 224, 175, 141,
-			224, 174, 149, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 159, 3, 89, 109, 68, 49, 109, 0, 4, 1, 135, 175, 224, 169, 174, 224, 139,
-			175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 135, 174, 224, 2, 224, 174, 191, 224, 174, 175, 3, 93, 0, 2, 224, 174, 190, 224, 174,
-			168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 170, 224, 174, 149, 0, 8, 2,
-			224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 178, 224, 174, 190, 32, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174,
-			178, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 169, 224, 174, 190, 0, 8, 129, 175, 224, 176, 174, 224,
-			129, 175, 224, 149, 174, 224, 2, 224, 175, 135, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 135, 175, 224,
-			178, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 174, 0, 4,
-			2, 224, 174, 163, 224, 175, 141, 224, 174, 170, 224, 174, 149, 3, 93, 109, 0, 2, 224, 174, 163, 224, 175, 141, 224, 174, 174, 224, 175, 129,
-			0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 179, 224, 174, 190, 0, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 2, 224, 174, 176, 3, 93, 109, 68, 49, 109, 0, 224, 175, 139, 224, 174, 149, 1, 133, 174, 224, 2, 224, 175, 141, 3, 93, 119, 49,
-			0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 75, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190,
-			0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 3, 75, 109, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224,
-			159, 174, 224, 2, 224, 174, 176, 3, 76, 109, 0, 4, 1, 130, 175, 224, 175, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 191, 224,
-			174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 3, 88, 0, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175,
-			129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 128, 224, 174,
-			176, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 175,
-			141, 224, 174, 181, 224, 175, 135, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224,
-			174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224, 174, 170, 224,
-			175, 141, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 139, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224,
-			175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0,
-			8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 178, 224, 175, 129, 0,
-			8, 2, 224, 175, 134, 224, 174, 169, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 169, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 178, 0,
-			8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 174, 190, 224,
-			174, 149, 224, 175, 141, 224, 174, 184, 0, 8, 141, 175, 224, 174, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 170, 174,
-			224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 190, 174, 224, 168, 174, 224, 2, 224, 174, 191, 0, 8, 191, 174, 224, 168, 174, 224, 2, 224,
-			174, 190, 224, 174, 174, 0, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 32, 3, 88, 37, 48, 0, 224, 174, 191, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164, 3, 88, 37, 50, 72, 118, 71, 0, 4, 1, 133,
-			174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 175, 136, 224, 174, 156, 224, 174, 190, 224, 174, 169, 3, 88, 109, 0, 8, 2,
-			224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 134, 175, 224, 149, 174, 224, 2, 224, 174, 159,
-			224, 175, 141, 0, 8, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 176, 224, 175, 141,
-			224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 149, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 8, 149,
-			174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 8, 149, 174, 224, 2, 224, 174, 178, 224, 175, 136, 0, 8, 149, 174, 224, 2, 224, 174, 178,
-			224, 175, 141, 0, 8, 159, 174, 224, 2, 224, 174, 169, 0, 224, 174, 190, 224, 174, 149, 8, 2, 224, 175, 128, 224, 174, 176, 3, 88, 118,
-			49, 0, 7, 6, 1, 31, 0, 4, 224, 175, 141, 224, 174, 154, 8, 174, 174, 224, 2, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174,
-			175, 3, 50, 76, 0, 224, 175, 141, 224, 174, 154, 8, 178, 174, 224, 2, 17, 66, 0, 224, 175, 141, 224, 174, 154, 224, 175, 141, 1, 135,
-			174, 224, 0, 224, 175, 141, 224, 174, 154, 224, 175, 141, 8, 191, 174, 224, 181, 174, 224, 0, 4, 224, 175, 141, 224, 174, 154, 1, 137, 174,
-			224, 2, 224, 174, 181, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 3, 50, 76, 109,
-			0, 224, 175, 141, 224, 174, 154, 8, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 154, 8, 190, 174, 224, 149, 174, 224, 2,
-			224, 174, 169, 0, 2, 17, 66, 3, 67, 0, 3, 67, 109, 0, 7, 6, 1, 32, 0, 4, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224,
-			178, 174, 224, 138, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 178, 3, 23, 139, 0, 224, 175, 141, 1, 141, 175, 224,
-			184, 174, 224, 2, 224, 174, 176, 0, 4, 224, 175, 141, 224, 174, 154, 224, 175, 129, 1, 178, 174, 224, 2, 224, 174, 174, 224, 174, 163, 3,
-			49, 93, 0, 224, 175, 141, 224, 174, 154, 224, 175, 129, 1, 178, 174, 224, 2, 224, 174, 174, 224, 174, 191, 0, 4, 1, 32, 141, 175, 224,
-			178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 184, 3, 139, 0, 1, 129, 175, 224, 179, 174, 224, 2, 224, 175, 139,
-			224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 175, 134, 0, 1, 141, 175, 224, 178,
-			174, 224, 133, 174, 224, 2, 224, 174, 190, 0, 1, 141, 175, 224, 178, 174, 224, 137, 174, 224, 2, 224, 174, 190, 0, 1, 141, 175, 224, 183,
-			174, 224, 2, 17, 66, 0, 1, 141, 175, 224, 184, 174, 224, 2, 17, 66, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175,
-			141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8,
-			2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 156, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174,
-			190, 224, 174, 174, 224, 174, 191, 32, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224,
-			174, 176, 224, 175, 141, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224,
-			174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 0,
-			8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224,
-			174, 131, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224,
-			174, 181, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224,
-			174, 181, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 183, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 175, 128, 0,
-			8, 2, 224, 175, 129, 224, 174, 169, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224,
-			174, 169, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 129, 224, 174, 169, 224, 175, 128, 18, 69, 0, 8, 2, 224, 175, 129, 224, 174,
-			169, 224, 175, 128, 224, 174, 183, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 130, 32, 224, 174, 181, 224, 175, 128, 224, 174, 178, 0,
-			8, 2, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224,
-			174, 184, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 184, 224, 175, 141, 0, 8, 2, 224,
-			175, 134, 224, 174, 154, 224, 175, 139, 0, 8, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224,
-			175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224,
-			175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224,
-			174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 131, 224, 174, 170, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224,
-			175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224,
-			175, 141, 32, 224, 174, 133, 224, 174, 181, 224, 175, 128, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 170, 0, 8, 2, 224, 175, 135,
-			224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 136, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 175, 136, 224, 174,
-			178, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 175,
-			139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 224, 174, 175, 224, 175, 139, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 8, 2, 224, 175,
-			139, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191, 224, 174, 181, 224, 175, 129, 224, 174, 159, 224, 175, 141, 0, 8,
-			2, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174,
-			159, 224, 174, 176, 0, 8, 32, 141, 175, 224, 169, 174, 224, 190, 174, 224, 178, 174, 224, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 169, 224, 174, 191, 224, 174, 184, 0, 8, 32, 141, 175, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 135, 175, 224, 159, 174, 224, 2,
-			224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 184, 0, 8, 130, 175, 224, 175, 174, 224, 141, 175, 224, 159,
-			174, 224, 2, 224, 174, 191, 0, 8, 130, 175, 224, 175, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 191, 0, 8, 140, 175, 224, 149,
-			174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 175, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 156, 174, 224, 2,
-			224, 174, 191, 224, 174, 178, 0, 8, 141, 175, 224, 163, 174, 224, 135, 175, 224, 149, 174, 224, 2, 224, 175, 128, 224, 174, 169, 0, 8, 141,
-			175, 224, 163, 174, 224, 135, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174, 224, 2,
-			224, 175, 128, 224, 174, 169, 0, 8, 141, 175, 224, 170, 174, 224, 131, 174, 224, 135, 175, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 141,
-			175, 224, 176, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 139, 0, 8, 141, 175, 224, 176, 174, 224, 190,
-			174, 224, 149, 174, 224, 2, 224, 175, 130, 224, 174, 169, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 191,
-			224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 159, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 178, 174, 224, 175,
-			174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 181, 174, 224, 190, 174, 224, 168, 174, 224, 2,
-			224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 149, 174, 224, 134, 175, 224, 168,
-			174, 224, 2, 224, 174, 191, 224, 174, 181, 0, 8, 191, 174, 224, 156, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 135, 0, 8, 191,
-			174, 224, 176, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 176, 0, 8, 191, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2,
-			224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 191, 174, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 141, 175, 224, 149,
-			174, 224, 2, 224, 174, 191, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184,
-			224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 178,
-			0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 154, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130,
-			224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130,
-			224, 174, 183, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 170, 224, 174, 191, 224, 174, 179,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169,
-			224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 176, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 159,
-			224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 178,
-			224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 181,
-			224, 175, 135, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 178, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174,
-			224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 224, 174, 181, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 134, 224, 174, 178,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 153, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			191, 224, 174, 169, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174,
-			174, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 224, 174,
-			175, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174,
-			176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 175,
-			141, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175,
-			136, 32, 224, 174, 154, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 32,
-			224, 174, 154, 224, 175, 134, 224, 174, 175, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 32, 224, 174, 170, 224, 174,
-			163, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 175, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174,
-			176, 224, 175, 136, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174,
-			176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 141, 175, 224, 184, 174, 224, 2, 224, 174,
-			176, 224, 175, 136, 224, 174, 149, 224, 175, 141, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 190, 0, 224, 175, 141, 1,
-			134, 174, 224, 2, 224, 174, 177, 224, 174, 190, 0, 224, 175, 141, 1, 134, 175, 224, 168, 174, 224, 141, 175, 224, 176, 174, 224, 159, 174, 224,
-			141, 175, 224, 163, 174, 224, 135, 174, 224, 0, 224, 175, 141, 1, 135, 174, 224, 2, 224, 174, 178, 224, 174, 176, 0, 224, 175, 141, 1, 141,
-			175, 224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 21, 0, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176,
-			224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224, 142, 174, 224, 2, 224, 174, 176,
-			224, 174, 191, 0, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 178, 0, 224, 175,
-			141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 154, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 169,
-			0, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 170, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141,
-			0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 8, 2, 224, 174, 176,
-			224, 174, 170, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 175,
-			141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141,
-			224, 174, 184, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169,
-			224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141,
-			224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 175, 128, 224, 174, 159, 224, 175, 141,
-			224, 174, 159, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141,
-			224, 174, 178, 224, 175, 135, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141,
-			224, 174, 181, 224, 175, 135, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 178,
-			0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 136, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 174, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 134,
-			224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 153, 224, 175, 141, 32, 0, 224, 175, 141, 8, 2, 224, 174,
-			176, 224, 174, 191, 224, 174, 169, 224, 174, 191, 224, 174, 159, 224, 174, 190, 224, 174, 159, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174,
+			190, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 130, 224, 174, 156, 224, 175, 136, 0, 8,
+			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 175, 224, 174, 176, 0, 8,
+			2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175,
+			129, 224, 174, 174, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175,
+			129, 224, 174, 176, 224, 175, 129, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174,
+			159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
+			176, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174,
+			191, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175,
+			129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 129, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175,
+			129, 224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 175,
+			129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175, 139, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 175,
+			139, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 174, 190, 224, 174, 170, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 174,
+			190, 224, 174, 174, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 135, 224, 174, 170, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
+			178, 224, 175, 141, 224, 174, 174, 224, 175, 139, 18, 71, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 181, 224, 174, 185, 224, 174, 190,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 191,
+			0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 174, 191, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 175, 129, 224, 174, 179,
+			0, 8, 2, 224, 175, 130, 224, 174, 159, 224, 174, 178, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 156, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159,
+			224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159,
+			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 8, 2,
+			224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 179,
+			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176,
+			224, 175, 129, 224, 174, 149, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 175, 129, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136,
+			224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 224, 174, 164, 224, 175, 141,
+			0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 135,
+			224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 184, 224, 175, 141, 32, 18, 91, 0, 8, 2, 224, 175, 136, 224, 174, 159,
+			0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 149, 0, 8, 2, 224, 175, 138, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 8, 2,
+			224, 175, 138, 224, 174, 163, 224, 174, 174, 0, 8, 2, 224, 175, 138, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 139,
+			224, 174, 149, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 154, 224, 174, 190, 224, 174, 178, 224, 175, 136, 0, 8, 2,
+			224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 32, 224, 174, 181, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 175,
+			139, 224, 174, 164, 224, 174, 190, 224, 174, 181, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 224, 174,
+			174, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175,
+			141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 0, 8,
+			2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174,
+			164, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 135, 224, 174,
+			156, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174,
+			191, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 175, 134, 224, 174, 159, 224, 175,
+			141, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 134, 224, 174, 159, 224, 175,
+			141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 168, 224, 174, 190, 0, 8, 2, 224, 175,
+			139, 224, 174, 170, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 175,
+			139, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 174, 164, 224, 175, 135, 224, 174, 184, 224, 175,
+			141, 224, 174, 181, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 174, 190, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175,
+			139, 224, 174, 174, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 174, 224, 175, 129, 224, 174, 149, 0, 8, 2, 224, 175,
+			139, 224, 174, 174, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174,
+			175, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 176, 32, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 149, 0, 8, 2, 224,
+			175, 139, 224, 174, 176, 224, 174, 164, 224, 175, 141, 32, 224, 174, 164, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2,
+			224, 175, 139, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 176,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 32, 18, 85,
+			0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 177, 224, 175, 141, 0, 8, 2, 224, 175, 139,
+			224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 170,
+			224, 175, 141, 224, 174, 170, 224, 175, 139, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 174, 0, 8, 2, 224, 175, 139,
+			224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141,
+			224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191,
+			224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 175, 138, 224, 174, 163, 224, 175, 141, 224, 174, 159,
+			224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 139,
+			224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 181, 224, 174, 191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2,
+			224, 175, 139, 224, 174, 183, 0, 8, 2, 224, 175, 140, 224, 174, 159, 0, 8, 2, 224, 175, 140, 224, 174, 169, 224, 175, 136, 0, 8, 2,
+			224, 175, 140, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 140, 224, 174, 176, 224, 174, 181, 0, 8, 2,
+			224, 175, 140, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 179,
+			224, 175, 136, 0, 8, 129, 175, 224, 176, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 159, 224, 175, 141, 224, 174, 159,
+			0, 8, 141, 175, 224, 149, 174, 224, 164, 174, 224, 174, 174, 224, 141, 175, 224, 169, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 149,
+			224, 175, 136, 0, 8, 141, 175, 224, 153, 174, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 191, 0, 8, 141, 175, 224, 177,
+			174, 224, 154, 174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 224, 174, 191, 1, 141, 175, 224, 153, 174, 224, 135, 174, 224, 2, 224, 174, 178,
+			224, 175, 128, 224, 174, 183, 224, 175, 141, 0, 224, 174, 191, 1, 141, 175, 224, 177, 174, 224, 138, 175, 224, 170, 174, 224, 2, 224, 174, 176,
+			224, 174, 163, 0, 224, 174, 191, 2, 224, 174, 176, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224,
+			174, 176, 224, 174, 185, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224,
+			175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 169, 224,
+			175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 128, 224,
+			174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224,
+			174, 176, 224, 175, 136, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 32, 0, 224, 175,
+			129, 8, 2, 224, 174, 178, 224, 175, 139, 224, 174, 170, 224, 174, 178, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 175, 139, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178, 224, 174, 191,
+			224, 174, 175, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159,
+			0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 175,
+			141, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 130, 224, 174, 170, 0, 224, 175,
+			141, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 190,
+			224, 174, 184, 224, 175, 141, 32, 0, 224, 175, 141, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224, 174,
+			176, 0, 224, 175, 141, 8, 142, 174, 224, 2, 224, 174, 184, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224,
+			174, 163, 224, 175, 136, 224, 174, 159, 8, 3, 81, 34, 118, 50, 134, 140, 149, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174,
+			131, 224, 174, 170, 224, 175, 136, 224, 174, 159, 8, 3, 81, 34, 118, 83, 134, 140, 149, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224,
+			174, 170, 224, 175, 136, 224, 174, 159, 8, 0, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 159, 3, 81, 37, 83, 0, 224,
+			174, 191, 224, 174, 159, 8, 2, 224, 174, 190, 224, 174, 176, 3, 81, 37, 140, 0, 4, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
+			170, 8, 2, 224, 174, 190, 224, 174, 164, 3, 81, 40, 34, 40, 48, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8, 2,
+			224, 175, 128, 224, 174, 159, 0, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 170, 8, 2, 224, 175, 130, 0, 224, 175, 129, 224, 174,
+			176, 224, 175, 129, 224, 174, 170, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 191, 3, 81, 40,
+			34, 40, 48, 109, 0, 224, 175, 129, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 164, 3, 81, 40, 48, 0, 224, 175, 129, 224, 174, 178,
+			224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 3, 81, 40, 55, 49, 109, 0, 224, 175, 129, 224, 174, 163,
+			224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 3, 81, 40, 66, 109, 76, 0,
+			4, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 178, 3, 81, 40,
+			66, 140, 149, 0, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 130, 224, 174, 176, 0, 224, 175, 129, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 159, 224, 174, 191, 3, 81, 40,
+			66, 141, 118, 50, 47, 109, 0, 4, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 3, 81, 81,
+			0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175, 129, 224, 174, 163, 0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175,
+			139, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 175, 139, 224, 174, 183, 0, 224, 175,
+			141, 224, 174, 149, 1, 129, 175, 224, 163, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175,
+			141, 224, 174, 149, 1, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 1, 134, 174, 224, 2,
+			224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1, 139, 175, 224, 175, 174, 224, 133, 174, 224, 2, 224, 174, 191,
+			224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 1, 139, 175, 224, 176, 174, 224, 134, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175,
+			141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 175, 139, 224, 174, 154,
+			224, 174, 168, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1, 169, 174, 224, 156, 174, 224, 2, 224, 175, 129, 224, 174, 174, 224, 175, 141,
+			224, 174, 170, 224, 174, 178, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191,
+			224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 191,
+			224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224, 176, 174, 224, 136, 175, 224, 181, 174, 224, 2, 224, 174, 191,
+			224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 1, 190, 174, 224, 181, 174, 224, 141, 175, 224, 175, 174, 224, 134, 175, 224, 164, 174, 224, 2,
+			224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 8, 129, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 163,
+			0, 224, 175, 141, 224, 174, 149, 8, 135, 175, 224, 178, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 8, 139,
+			175, 224, 175, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 139, 175, 224, 170,
+			174, 224, 2, 224, 175, 129, 224, 174, 163, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2,
+			224, 175, 129, 224, 174, 163, 0, 224, 175, 141, 224, 174, 149, 8, 178, 174, 224, 2, 224, 174, 191, 224, 174, 169, 0, 224, 175, 141, 224, 174,
+			149, 8, 178, 174, 224, 2, 224, 175, 135, 224, 174, 156, 0, 224, 175, 141, 224, 174, 149, 8, 190, 174, 224, 164, 174, 224, 135, 175, 224, 181,
+			174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 8, 190, 174, 224, 164, 174, 224, 191, 174, 224, 181,
+			174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 8, 190, 174, 224, 181, 174, 224, 135,
+			175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 149, 174, 224, 141,
+			175, 224, 149, 174, 224, 190, 174, 224, 170, 174, 224, 141, 175, 224, 170, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 163,
+			224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 159, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 129,
+			224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 178, 174, 224, 139, 175, 224, 149, 174, 224, 2,
+			224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191,
+			224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169,
+			224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 174, 224, 175, 141,
+			32, 0, 224, 175, 141, 224, 174, 149, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 0, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 1, 18, 68, 2, 224, 174, 176, 224, 174, 149, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 18, 68, 2, 224,
+			174, 176, 224, 174, 185, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 129, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 129, 175, 224, 168, 174, 224, 133, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141,
+			224, 174, 149, 224, 174, 191, 1, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191,
+			1, 133, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 135, 174, 224, 2, 224,
+			174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 1, 190, 174, 224, 175, 174, 224, 191, 174, 224, 164, 174,
+			224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 149, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 170, 174,
+			224, 141, 175, 224, 170, 174, 224, 141, 175, 224, 176, 174, 224, 149, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191,
+			8, 179, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191,
+			8, 181, 174, 224, 168, 174, 224, 2, 224, 174, 176, 18, 71, 0, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 191, 174, 224, 178, 174, 224,
+			190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 4, 224, 175, 141, 224, 174, 149, 1, 18, 68, 2, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 3, 81, 81, 109, 0, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174,
+			224, 2, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 8, 129, 175, 224, 180, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224,
+			174, 181, 224, 174, 169, 0, 224, 175, 141, 224, 174, 149, 8, 136, 175, 224, 163, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 163, 224,
+			175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224, 2, 32, 224, 174, 154,
+			224, 175, 129, 224, 174, 174, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 224, 174, 149, 8, 141,
+			175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 149, 8, 141,
+			175, 224, 176, 174, 224, 128, 175, 224, 164, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 224, 175, 141, 224, 174, 149, 8, 191,
+			174, 224, 169, 174, 224, 164, 174, 224, 2, 224, 174, 181, 224, 174, 169, 0, 4, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224,
+			129, 175, 224, 164, 174, 224, 3, 81, 81, 149, 0, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 130, 175, 224, 174, 174, 224,
+			0, 224, 175, 141, 224, 174, 149, 1, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175,
+			224, 176, 174, 224, 138, 175, 224, 154, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 181, 174, 224, 0, 224, 175,
+			141, 224, 174, 149, 8, 141, 175, 224, 176, 174, 224, 181, 174, 224, 141, 175, 224, 184, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 156, 174,
+			224, 0, 4, 3, 81, 109, 0, 2, 224, 174, 156, 0, 8, 2, 28, 17, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174,
+			170, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174,
+			153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 178, 224, 174,
+			191, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 190, 0, 8, 2, 224, 174, 159, 224, 174,
+			149, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174,
+			159, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 159, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 159, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174,
+			176, 224, 175, 136, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 175,
+			139, 224, 174, 164, 224, 175, 141, 224, 174, 149, 224, 174, 156, 0, 8, 2, 224, 174, 163, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8,
+			2, 224, 174, 163, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 163, 224, 175, 135, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174,
+			159, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8,
+			2, 224, 174, 164, 224, 174, 190, 224, 174, 175, 224, 175, 129, 224, 174, 164, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 174,
+			178, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 174,
+			191, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174,
+			154, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 191, 224, 174,
+			178, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174,
+			164, 224, 174, 149, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 174,
+			169, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 169, 224, 174,
+			170, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224, 174,
+			149, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174,
+			170, 224, 175, 134, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 176, 0, 8,
+			2, 224, 174, 174, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 174, 174, 224, 174, 181, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174,
+			177, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174,
+			174, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 174,
+			175, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 169, 224, 174, 190, 0, 8,
+			2, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
+			156, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 156, 0, 8, 2, 224, 174,
+			176, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 174, 178, 224, 174, 190, 224, 174,
+			159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 178, 18, 73, 224, 174, 175, 224, 175, 139,
+			0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 154, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 176,
+			0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 178, 0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 183, 224, 174, 191, 224, 174, 175,
+			0, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 181, 224, 174, 163, 0, 8, 2, 224, 174, 181,
+			224, 174, 169, 0, 8, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 174, 176,
+			224, 175, 141, 224, 174, 169, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 181,
+			224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 136,
+			0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 181, 224, 175, 129,
+			224, 174, 176, 0, 8, 141, 175, 224, 149, 174, 224, 136, 175, 224, 178, 174, 224, 164, 174, 224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 177,
+			174, 224, 168, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 224, 174, 170, 224, 175, 141, 8, 2, 18, 69, 224, 174, 190, 3, 81, 109, 48,
+			0, 224, 174, 170, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 3, 81, 109, 48, 76, 0, 224, 174, 169,
+			224, 174, 149, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 164, 3, 81, 109, 50, 109, 49, 109, 0, 224, 174,
+			181, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 109, 84, 109, 34, 65,
+			36, 66, 140, 149, 0, 224, 175, 135, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 114, 34, 109, 66, 140, 149, 0,
+			224, 174, 190, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 81, 118, 34, 109, 66, 140, 149, 0, 224, 174, 190, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 224, 175, 135, 224, 174, 149, 8, 2, 224, 174, 176, 3, 81, 118, 66, 141, 114, 49, 109, 0, 224, 174, 190,
+			224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 170, 224, 174, 190, 224, 174, 164, 3, 81, 118, 88, 0, 4, 224,
+			175, 139, 224, 174, 170, 2, 224, 174, 190, 224, 174, 178, 3, 81, 119, 48, 0, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174,
+			149, 224, 174, 190, 12, 0, 224, 175, 139, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 178, 3, 81, 119, 49, 0, 224, 175, 139, 224, 174,
+			149, 8, 2, 224, 174, 176, 3, 81, 119, 49, 109, 0, 224, 175, 139, 224, 174, 174, 224, 174, 164, 224, 175, 135, 224, 174, 154, 224, 175, 129,
+			8, 2, 224, 174, 181, 224, 174, 176, 3, 81, 119, 65, 109, 72, 114, 89, 0, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 154, 8,
+			2, 224, 175, 135, 3, 81, 119, 141, 89, 0, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 81, 123,
+			34, 49, 0, 4, 224, 175, 134, 224, 174, 179, 8, 2, 224, 174, 164, 224, 174, 174, 3, 81, 135, 0, 224, 175, 134, 224, 174, 179, 8, 2,
+			224, 174, 176, 224, 174, 181, 0, 224, 175, 134, 224, 174, 179, 8, 2, 224, 174, 176, 224, 174, 191, 0, 224, 175, 140, 224, 174, 164, 8, 3,
+			81, 135, 47, 149, 0, 4, 224, 175, 141, 224, 174, 159, 1, 142, 174, 224, 2, 224, 175, 135, 3, 81, 141, 0, 224, 175, 141, 224, 174, 159,
+			8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 32, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 224, 174, 175,
+			0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 185, 174, 224, 2, 224, 175, 135, 224, 174, 181, 0, 4, 1, 139, 175, 224, 174, 174, 224,
+			2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 3, 108, 0, 1, 174, 174, 224, 2, 224, 174, 190, 0, 1, 174, 174, 224, 2, 224, 175, 135,
+			224, 174, 154, 224, 175, 129, 224, 174, 181, 224, 174, 176, 0, 1, 174, 174, 224, 2, 224, 175, 135, 224, 174, 168, 224, 175, 141, 224, 174, 164,
+			224, 174, 191, 224, 174, 176, 0, 1, 174, 174, 224, 2, 224, 175, 135, 224, 174, 183, 224, 175, 141, 224, 174, 181, 0, 1, 174, 174, 224, 2,
+			224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 176, 0, 8, 174, 174, 224, 2, 224, 174, 191, 224, 174, 168, 224, 175, 141,
+			224, 174, 164, 0, 8, 174, 174, 224, 2, 224, 174, 191, 224, 174, 174, 224, 175, 136, 0, 1, 139, 175, 224, 174, 174, 224, 2, 224, 174, 169,
+			3, 108, 109, 0, 224, 174, 190, 224, 174, 170, 1, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 3, 108, 118,
+			71, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 109, 0, 7, 6, 1, 27, 0, 1, 141, 175, 224, 158, 174, 224, 2,
+			17, 66, 3, 75, 0, 1, 141, 175, 224, 158, 174, 224, 3, 75, 109, 0, 4, 1, 32, 141, 175, 224, 154, 174, 224, 2, 17, 66, 3, 76,
+			0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 32, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 175,
+			141, 0, 1, 134, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 0, 1, 141, 175, 224, 159, 174, 224, 2, 17, 66, 0, 1, 141,
+			175, 224, 177, 174, 224, 2, 17, 66, 0, 1, 170, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 170, 174, 224, 137, 174,
+			224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 170, 174, 224, 139, 175, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224,
+			174, 176, 0, 1, 170, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 190, 174, 224, 174, 174, 224, 154, 174,
+			224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 190, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 191, 174,
+			224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 2, 224, 175, 134, 224, 174,
+			184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 17, 66, 28, 17, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224,
+			174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0,
+			8, 2, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 129, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224,
+			174, 175, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224,
+			174, 176, 224, 175, 141, 224, 174, 156, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 175, 136, 0, 8, 2, 224,
+			174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224,
+			174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 0,
+			8, 2, 224, 174, 190, 224, 174, 179, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224,
+			174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169, 224, 175, 141, 224,
+			174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 149, 224, 175, 139, 0,
+			8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224,
+			175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 174, 191, 224, 174, 170, 224, 174, 190, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224,
+			174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224,
+			175, 141, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 224,
+			174, 170, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224,
+			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 181, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224,
+			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224,
+			174, 176, 224, 174, 181, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0,
+			8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 0,
+			8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
+			174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
+			174, 177, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 177, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224,
+			174, 179, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 175, 128, 224, 174, 169, 32, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 128,
+			224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 184,
+			224, 175, 129, 0, 8, 2, 224, 175, 128, 224, 174, 184, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 184, 224, 175, 141, 32, 0, 8,
+			2, 224, 175, 129, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175,
+			141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 175, 224, 174, 191, 224, 174, 153, 224, 175,
+			141, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 163, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 18, 69, 0, 8, 2,
+			224, 175, 134, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141,
+			224, 174, 159, 224, 174, 191, 224, 174, 168, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159,
+			224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 8, 2, 224, 175, 134,
+			224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 169,
+			224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 136, 0, 8, 2,
+			224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 169, 0, 8, 2,
+			224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 175, 139, 224, 174, 170, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 134,
+			224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 32, 18, 82, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141,
+			224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 178,
+			224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191,
+			0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 180,
+			224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141,
+			32, 18, 84, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141,
+			32, 18, 83, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 169,
+			0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 0, 8, 2,
+			224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 175, 141,
+			224, 174, 179, 224, 175, 136, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170,
+			224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 170, 224, 175, 141,
+			224, 174, 170, 224, 175, 136, 224, 174, 175, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174,
+			224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141,
+			224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 174, 224, 175, 135, 32, 0, 8, 2, 224, 175,
+			134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 184, 224, 175,
+			141, 0, 8, 2, 224, 175, 135, 224, 174, 158, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174,
+			159, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 174,
+			191, 0, 8, 2, 224, 175, 135, 224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175,
+			135, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175,
+			135, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 158, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224, 175,
+			141, 224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 136, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8,
+			2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175,
+			136, 224, 174, 169, 224, 175, 128, 224, 174, 184, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8,
+			2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 181, 224, 175, 129, 0, 8, 2, 224, 175,
+			139, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 175, 140, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 174,
+			190, 224, 174, 176, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 174,
+			191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 185, 224, 174, 190, 224, 174, 169, 0, 8, 18, 71, 176, 174, 224, 191,
+			174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 128, 175, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141,
+			224, 174, 156, 0, 8, 129, 175, 224, 154, 174, 224, 2, 224, 175, 128, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176,
+			0, 8, 141, 175, 224, 184, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 156, 0, 8, 154,
+			174, 224, 2, 224, 174, 191, 224, 174, 169, 0, 8, 175, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 190, 174, 224, 163, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176,
+			0, 8, 191, 174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191,
+			0, 224, 175, 141, 2, 32, 24, 0, 224, 175, 141, 224, 174, 154, 2, 17, 66, 3, 76, 12, 0, 224, 175, 141, 224, 174, 154, 3, 76, 12,
+			109, 0, 224, 175, 134, 224, 174, 149, 224, 175, 141, 8, 2, 32, 3, 76, 36, 49, 0, 224, 175, 134, 224, 174, 154, 224, 175, 141, 8, 2,
+			224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3, 76, 36, 76, 0, 4, 224, 175, 134, 224, 174, 154, 8, 2, 224, 174, 169, 224,
+			174, 191, 224, 174, 175, 224, 174, 190, 3, 76, 36, 76, 109, 0, 224, 175, 134, 224, 174, 154, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174,
+			175, 224, 174, 190, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174,
+			179, 224, 175, 136, 224, 174, 175, 3, 76, 36, 140, 140, 37, 48, 0, 224, 174, 191, 224, 174, 164, 1, 129, 175, 224, 154, 174, 224, 2, 224,
+			175, 141, 224, 174, 176, 224, 174, 190, 3, 76, 37, 47, 0, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 149, 224, 174, 179,
+			3, 76, 37, 48, 0, 4, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 139, 3, 76, 37, 49, 0, 224, 174,
+			191, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 174, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 175, 130, 224, 174, 176,
+			0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 224, 175, 141, 224, 174,
+			174, 224, 175, 130, 224, 174, 154, 8, 190, 174, 224, 149, 174, 224, 3, 76, 65, 123, 76, 149, 0, 4, 1, 32, 141, 175, 224, 154, 174, 224,
+			3, 76, 109, 0, 1, 141, 175, 224, 159, 174, 224, 0, 1, 141, 175, 224, 177, 174, 224, 0, 1, 190, 174, 224, 159, 174, 224, 149, 174, 224,
+			141, 175, 224, 153, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 159, 174, 224, 149, 174, 224, 141, 175, 224,
+			153, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224, 163, 174, 224, 129, 175, 224, 176, 174, 224, 133, 174, 224,
+			2, 224, 174, 178, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 176, 174, 224, 174, 174, 224, 2, 224, 174, 178, 0, 1, 190, 174, 224,
+			164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 178, 0, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 0, 2, 224,
+			174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 28, 17, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 224, 174, 176, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 18, 73,
+			224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169,
+			224, 174, 191, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159,
+			224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 32, 0, 8, 2, 224, 174, 164, 224, 175,
+			129, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 175, 128, 224, 174, 184, 224, 175, 141, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175,
+			129, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8,
+			2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174,
+			176, 224, 175, 129, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 18, 76, 224, 175, 141, 0, 8, 2, 224, 174, 170, 224, 175, 141,
+			224, 174, 170, 224, 174, 190, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 174, 170, 224, 175, 141,
+			224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 0, 8, 2, 224, 174, 176, 224, 175, 141,
+			224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 154, 224, 175, 141,
+			224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 175, 139, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 139,
+			175, 224, 174, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 174, 174, 224, 191, 174, 224, 181, 174, 224, 170,
+			174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 174, 174, 224, 191, 174, 224, 181, 174, 224, 181, 174, 224, 190,
+			174, 224, 170, 174, 224, 2, 224, 174, 169, 0, 8, 139, 175, 224, 178, 174, 224, 2, 224, 174, 169, 224, 174, 190, 0, 8, 139, 175, 224, 178,
+			174, 224, 169, 174, 224, 128, 175, 224, 174, 174, 224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 139, 175, 224, 178, 174, 224, 178, 174, 224, 128,
+			175, 224, 168, 174, 224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 153, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 8, 141,
+			175, 224, 169, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 176,
+			0, 8, 190, 174, 224, 149, 174, 224, 191, 174, 224, 163, 174, 224, 164, 174, 224, 2, 224, 174, 178, 0, 8, 190, 174, 224, 183, 174, 224, 135,
+			175, 224, 154, 174, 224, 2, 224, 174, 178, 0, 224, 174, 176, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 191, 3, 76, 109, 34, 76, 0,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 8, 2, 224, 174, 164, 224, 174, 191, 3, 76, 109, 47,
+			47, 37, 34, 109, 48, 109, 0, 224, 174, 149, 224, 175, 141, 8, 170, 174, 224, 3, 76, 109, 49, 0, 4, 224, 174, 190, 8, 2, 224, 174,
+			159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 174, 191, 3, 76, 114, 0, 224, 174, 190, 8, 2, 224, 174,
+			169, 224, 174, 178, 0, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 178, 224, 174, 164, 8, 2, 224, 174, 190, 3, 76, 118, 34, 122,
+			55, 109, 47, 0, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 191, 224, 174, 169, 3, 76, 118, 48, 0, 224,
+			174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 128, 18, 69, 3, 76, 118, 49, 48, 0, 224, 174, 190, 224, 174, 149,
+			224, 175, 141, 224, 174, 178, 224, 175, 135, 224, 174, 159, 224, 175, 141, 8, 3, 76, 118, 49, 55, 114, 140, 0, 4, 224, 174, 190, 224, 174,
+			168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 136, 3, 76, 118, 50, 72, 0, 224, 174, 190, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174,
+			164, 8, 2, 224, 174, 191, 224, 174, 178, 0, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 175,
+			224, 174, 169, 3, 76, 118, 65, 48, 0, 8, 141, 175, 224, 158, 174, 224, 190, 174, 224, 176, 174, 224, 3, 76, 149, 0, 4, 1, 133, 174,
+			224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 3, 88, 0, 1, 134, 174, 224, 2, 224, 174,
+			190, 224, 174, 164, 224, 175, 141, 0, 1, 135, 175, 224, 174, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 1, 147, 174, 224,
+			2, 224, 175, 139, 224, 174, 169, 0, 8, 130, 175, 224, 175, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174,
+			190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 138, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174,
+			170, 224, 174, 191, 0, 8, 141, 175, 224, 174, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 168, 174, 224, 2, 224, 175,
+			128, 224, 174, 174, 0, 8, 168, 174, 224, 2, 224, 175, 128, 224, 174, 176, 0, 8, 185, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175,
+			135, 0, 8, 185, 174, 224, 2, 224, 175, 128, 224, 174, 174, 0, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 8,
+			190, 174, 224, 170, 174, 224, 131, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 4, 1, 133, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224,
+			174, 170, 224, 175, 136, 3, 88, 109, 0, 1, 141, 175, 224, 170, 174, 224, 131, 174, 224, 133, 174, 224, 2, 224, 174, 178, 0, 8, 2, 224,
+			174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 224, 174, 191, 32, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 164,
+			224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 135, 175, 224, 176, 174, 224, 2, 224, 174, 176, 0, 8, 190, 174, 224, 168,
+			174, 224, 2, 224, 174, 176, 0, 4, 2, 17, 66, 3, 89, 0, 8, 2, 17, 66, 0, 8, 2, 224, 174, 191, 224, 174, 164, 224, 175, 141,
+			224, 174, 164, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 191,
+			224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 174,
+			224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 174, 191,
+			224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 174, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 191,
+			224, 174, 169, 224, 175, 141, 224, 174, 185, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 191, 224, 174, 181, 224, 174, 190,
+			0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 32, 224, 174, 168, 224, 175, 135, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 8,
+			135, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 224, 174, 191, 2,
+			224, 174, 176, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 168, 224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 169, 224, 175, 135,
+			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174,
+			191, 8, 2, 224, 174, 178, 224, 174, 190, 224, 174, 149, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 178, 224, 175, 135, 224, 174, 159,
+			0, 224, 175, 129, 1, 128, 175, 224, 176, 174, 224, 190, 174, 224, 169, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 141, 175, 224, 176,
+			174, 224, 133, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 1, 135, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0, 224, 175, 129, 1, 135,
+			175, 224, 149, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 1, 135, 175, 224, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 181,
+			224, 174, 176, 0, 224, 175, 129, 1, 135, 175, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 190, 174, 224, 178, 174, 224, 191, 174, 224, 149,
+			174, 224, 133, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1, 135, 175, 224, 163, 174, 224, 181, 174, 224, 190, 174, 224, 176,
+			174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1, 135, 175, 224, 163, 174, 224, 181, 174, 224, 190, 174, 224, 176, 174, 224, 135,
+			174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 1, 135, 175, 224, 174, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 1, 191,
+			174, 224, 181, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 2, 224, 174, 181, 224, 174, 190, 224, 174, 164, 224, 175, 128, 224, 174, 169, 0,
+			224, 175, 129, 2, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 224, 175, 129, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176,
+			224, 174, 184, 224, 175, 141, 224, 174, 175, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 174, 191, 0, 224, 175,
+			129, 8, 2, 224, 174, 178, 224, 175, 139, 224, 174, 149, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 163,
+			0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 191, 224, 174, 159,
+			224, 175, 141, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 191, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174, 181,
+			224, 175, 128, 224, 174, 159, 0, 224, 175, 129, 8, 128, 175, 224, 169, 174, 224, 154, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175,
+			129, 8, 128, 175, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 149, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 8, 135, 175, 224, 159,
+			174, 224, 141, 175, 224, 163, 174, 224, 149, 174, 224, 178, 174, 224, 156, 174, 224, 2, 224, 174, 181, 0, 224, 175, 129, 8, 135, 175, 224, 179,
+			174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 176, 0, 224, 175, 129, 8, 136, 174, 224, 0,
+			4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 3, 89, 34,
+			37, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 224, 174, 191, 224,
+			174, 176, 224, 174, 191, 224, 174, 178, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 89, 34, 37, 55, 109, 68, 49,
+			0, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 8, 32, 191, 174, 224, 164, 174, 224, 141, 175, 224, 149, 174, 224, 170, 174, 224,
+			2, 224, 174, 164, 224, 175, 136, 3, 89, 34, 109, 72, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8,
+			2, 224, 175, 136, 224, 174, 175, 224, 175, 129, 224, 174, 159, 224, 174, 169, 3, 89, 34, 109, 72, 72, 0, 224, 174, 191, 224, 174, 176, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 175, 136, 224, 174, 175, 224, 175, 136, 0, 224, 175, 128, 2, 224, 174, 169, 224, 174, 191,
+			224, 174, 181, 224, 174, 190, 224, 174, 154, 3, 89, 34, 112, 0, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224,
+			174, 159, 8, 3, 89, 36, 57, 37, 50, 140, 0, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 169, 224, 175, 141, 224, 174, 159, 8,
+			3, 89, 36, 57, 50, 140, 0, 224, 175, 129, 224, 174, 181, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2,
+			224, 175, 139, 224, 174, 180, 224, 174, 191, 3, 89, 40, 84, 109, 34, 49, 49, 0, 224, 175, 129, 224, 174, 170, 1, 134, 174, 224, 2, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 3, 89, 48, 109, 0, 224, 175, 129, 224, 174, 181, 224, 174,
+			176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 3, 89, 84, 109, 34, 81, 81, 149, 0, 4, 224, 175, 129, 224, 174, 181,
+			224, 174, 190, 224, 174, 176, 224, 174, 154, 224, 174, 191, 1, 133, 174, 224, 2, 224, 174, 175, 3, 89, 84, 118, 34, 109, 89, 0, 224, 175,
+			129, 224, 174, 181, 224, 174, 190, 224, 174, 176, 224, 174, 154, 224, 174, 191, 8, 2, 224, 174, 175, 0, 4, 3, 89, 109, 0, 1, 133, 174,
+			224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 170, 0, 8, 0, 8, 2, 224, 174, 168, 224, 175,
+			141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 170, 0, 8, 141, 175, 224, 159, 174, 224, 185, 174, 224, 2, 224, 174, 169, 0, 8,
+			141, 175, 224, 159, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224,
+			135, 175, 224, 159, 174, 224, 2, 224, 174, 169, 0, 224, 174, 176, 224, 174, 154, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 164, 224, 174,
+			191, 3, 89, 109, 34, 109, 89, 0, 4, 1, 135, 175, 224, 169, 174, 224, 139, 175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 135, 174,
+			224, 2, 224, 174, 191, 224, 174, 175, 3, 93, 0, 2, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 2, 224,
+			175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 170, 224, 174, 149, 0, 8, 135, 175, 224, 178, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224,
+			174, 175, 0, 4, 2, 224, 174, 163, 224, 175, 141, 224, 174, 170, 224, 174, 149, 3, 93, 109, 0, 2, 224, 174, 163, 224, 175, 141, 224, 174,
+			174, 224, 175, 129, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 179, 224, 174, 190, 0, 224, 174, 153, 224,
+			175, 141, 224, 174, 149, 2, 224, 174, 176, 3, 93, 109, 68, 49, 109, 0, 7, 6, 1, 29, 0, 4, 2, 17, 66, 3, 75, 0, 224, 175,
+			129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 3, 75, 109, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 159, 174, 224,
+			2, 224, 174, 176, 3, 76, 109, 0, 4, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 128, 224,
+			174, 169, 3, 88, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174,
+			191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 191, 0, 8,
+			2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 141, 175, 224, 174, 174, 224, 176, 174, 224, 2, 224, 174,
+			190, 224, 174, 169, 0, 8, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 190, 174, 224, 168, 174, 224, 2, 224, 174, 191, 0, 4,
+			8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 224, 174, 191, 3, 88, 109, 0, 8, 149, 174, 224, 2, 224,
+			174, 178, 224, 174, 190, 0, 8, 149, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 8, 149, 174, 224, 2, 224, 174, 178, 224, 175, 136, 0,
+			8, 149, 174, 224, 2, 224, 174, 178, 224, 175, 141, 0, 224, 174, 190, 224, 174, 149, 8, 2, 224, 175, 128, 224, 174, 176, 3, 88, 118, 49,
+			0, 7, 6, 1, 31, 0, 4, 224, 175, 141, 224, 174, 154, 224, 175, 141, 1, 135, 174, 224, 3, 50, 76, 0, 224, 175, 141, 224, 174, 154,
+			224, 175, 141, 8, 191, 174, 224, 181, 174, 224, 0, 4, 224, 175, 141, 224, 174, 154, 8, 170, 174, 224, 2, 224, 174, 176, 3, 50, 76, 109,
+			0, 224, 175, 141, 224, 174, 154, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 169, 0, 2, 17, 66, 3, 67, 0, 3, 67, 109, 0, 7,
+			6, 1, 32, 0, 4, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224, 178, 174, 224, 138, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174,
+			190, 224, 174, 178, 3, 23, 140, 0, 224, 175, 141, 1, 141, 175, 224, 184, 174, 224, 2, 224, 174, 176, 0, 4, 224, 175, 141, 224, 174, 154,
+			224, 175, 129, 1, 178, 174, 224, 2, 224, 174, 174, 224, 174, 163, 3, 49, 93, 0, 224, 175, 141, 224, 174, 154, 224, 175, 129, 1, 178, 174,
+			224, 2, 224, 174, 174, 224, 174, 191, 0, 4, 1, 32, 141, 175, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174,
+			184, 3, 140, 0, 1, 129, 175, 224, 179, 174, 224, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 1, 141, 175, 224, 163,
+			174, 224, 135, 174, 224, 2, 224, 175, 134, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190, 0, 1, 141, 175, 224, 178,
+			174, 224, 137, 174, 224, 2, 224, 174, 190, 0, 1, 141, 175, 224, 183, 174, 224, 2, 17, 66, 0, 1, 141, 175, 224, 184, 174, 224, 2, 17,
+			66, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174,
+			154, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 156, 224, 174,
+			190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174,
+			176, 224, 175, 141, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 174,
+			191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 0, 8,
+			2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174,
+			131, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175,
+			141, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174,
+			181, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174,
+			181, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 183, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 175, 128, 0, 8,
+			2, 224, 175, 129, 224, 174, 169, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
+			169, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 129, 224, 174, 169, 224, 175, 128, 18, 69, 0, 8, 2, 224, 175, 129, 224, 174, 169,
+			224, 175, 128, 224, 174, 183, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 130, 32, 224, 174, 181, 224, 175, 128, 224, 174, 178, 0, 8,
+			2, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 184, 224, 174, 190, 224, 174, 184, 0, 8,
+			2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 184, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 154, 224, 175, 139, 0, 8,
+			2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174,
+			159, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174,
+			169, 224, 174, 191, 224, 174, 184, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175,
+			134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174,
+			178, 224, 174, 191, 224, 174, 131, 224, 174, 170, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174,
+			181, 224, 174, 191, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 32, 224, 174, 133, 224, 174, 181, 224,
+			175, 128, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 170, 0, 8, 2, 224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0,
+			8, 2, 224, 175, 136, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 169,
+			0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 224, 175, 139, 0, 8, 2, 224, 175, 139,
+			224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224, 175, 141, 224, 174, 176,
+			224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 32,
+			141, 175, 224, 169, 174, 224, 190, 174, 224, 178, 174, 224, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174,
+			184, 0, 8, 32, 141, 175, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 135, 175, 224, 159, 174, 224, 2, 224, 175, 134, 224, 174, 169, 224,
+			175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 184, 0, 8, 130, 175, 224, 175, 174, 224, 141, 175, 224, 159, 174, 224, 2, 224, 174, 191, 0,
+			8, 130, 175, 224, 175, 174, 224, 191, 174, 224, 159, 174, 224, 2, 224, 174, 191, 0, 8, 140, 175, 224, 149, 174, 224, 2, 224, 174, 191, 224,
+			174, 178, 224, 175, 141, 224, 174, 175, 0, 8, 141, 175, 224, 163, 174, 224, 135, 175, 224, 149, 174, 224, 2, 224, 175, 128, 224, 174, 169, 0,
+			8, 141, 175, 224, 163, 174, 224, 135, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174,
+			224, 2, 224, 175, 128, 224, 174, 169, 0, 8, 141, 175, 224, 170, 174, 224, 131, 174, 224, 135, 175, 224, 154, 174, 224, 2, 224, 174, 191, 0,
+			8, 141, 175, 224, 176, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 139, 0, 8, 141, 175, 224, 176, 174,
+			224, 190, 174, 224, 149, 174, 224, 2, 224, 175, 130, 224, 174, 169, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224,
+			174, 191, 224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 175, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175,
+			224, 178, 174, 224, 181, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 174, 174,
+			224, 2, 224, 174, 190, 0, 8, 149, 174, 224, 134, 175, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 181, 0, 8, 191, 174, 224, 156, 174,
+			224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 135, 0, 8, 191, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 175, 139, 224,
+			174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 191, 174, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 141, 175, 224, 149, 174, 224, 2, 224,
+			174, 191, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224,
+			174, 159, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 178, 0, 224, 174, 191,
+			8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 154, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 169, 0,
+			224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 183, 224,
+			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 153, 224,
+			175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 170, 224, 174, 191, 224, 174, 179, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224,
+			174, 154, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 178, 224, 175, 135, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 175, 135, 224,
+			174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224,
+			174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 141, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 181, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 134, 224, 174, 178, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224,
+			175, 141, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 163, 224,
+			175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224,
+			174, 176, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 32, 224, 174, 154, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 0, 224, 174,
+			191, 8, 2, 224, 174, 176, 224, 175, 136, 32, 224, 174, 154, 224, 175, 134, 224, 174, 175, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 175, 136, 32, 224, 174, 170, 224, 174, 163, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 175, 224,
+			174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 141, 175, 224, 163, 174,
+			224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 175, 141,
+			1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 190, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 177, 224, 174, 190, 0, 224, 175, 141,
+			1, 134, 175, 224, 168, 174, 224, 141, 175, 224, 176, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 174, 224, 0, 224, 175, 141, 1,
+			135, 174, 224, 2, 224, 174, 178, 224, 174, 176, 0, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 21, 0, 224,
+			175, 141, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224,
+			175, 141, 1, 141, 175, 224, 163, 174, 224, 142, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224,
+			149, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 154, 224, 174,
+			169, 0, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174,
+			170, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 170, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 8,
+			2, 224, 174, 176, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 224,
+			175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174,
+			176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 0, 224,
+			175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174,
+			184, 224, 175, 141, 224, 174, 174, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174,
+			176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 178, 224, 175, 135, 0, 224, 175, 141, 8, 2, 224, 174,
+			176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 175, 135, 224, 174, 178, 0, 224, 175, 141, 8,
+			2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
+			174, 224, 175, 136, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174,
+			176, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 178, 0, 224,
+			175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 134, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174,
 			191, 224, 174, 174, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174,
 			191, 224, 174, 175, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 224, 175, 141, 8,
 			2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175,
@@ -43751,265 +32149,210 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			178, 0, 224, 175, 141, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 8, 190, 174, 224, 149, 174, 224, 129, 175, 224,
 			159, 174, 224, 168, 174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 8, 190, 174, 224, 168, 174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 8,
 			190, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 175, 129, 0, 224,
-			175, 141, 8, 191, 174, 224, 185, 174, 224, 0, 224, 175, 141, 8, 191, 174, 224, 185, 174, 224, 2, 224, 174, 178, 224, 174, 176, 0, 4, 224,
-			174, 191, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 8, 2, 224, 174, 178, 224, 174, 176, 3, 139, 34, 36, 57, 0, 224, 175,
-			141, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 8, 2, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 224, 174, 176, 224, 174,
-			191, 224, 174, 170, 224, 175, 141, 8, 3, 139, 34, 37, 48, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141,
-			8, 3, 139, 34, 37, 49, 0, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 176,
-			224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 190, 174, 224, 185, 174, 224, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 169,
-			224, 174, 191, 224, 174, 159, 8, 2, 224, 174, 191, 3, 139, 34, 37, 50, 37, 139, 0, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174,
-			169, 224, 174, 191, 224, 174, 159, 8, 2, 224, 174, 191, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174,
-			176, 3, 139, 34, 37, 81, 81, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224,
+			175, 141, 8, 191, 174, 224, 185, 174, 224, 2, 224, 174, 178, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 134, 224, 174, 175,
+			224, 174, 191, 8, 2, 224, 174, 178, 224, 174, 176, 3, 140, 34, 36, 57, 0, 224, 175, 141, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224,
+			174, 191, 8, 2, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 3, 140, 34,
+			37, 48, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 140, 34, 37, 49, 0, 224, 175, 141, 224,
+			174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174,
+			176, 3, 140, 34, 37, 81, 81, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224,
 			174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 174, 191,
 			224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 0, 224, 174, 191, 224, 174, 176, 8, 2, 224, 174, 184, 224, 175, 141, 224,
-			174, 159, 3, 139, 34, 109, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224, 175, 141, 8, 3, 139, 34, 109, 49, 0, 224, 175, 141,
-			224, 174, 176, 224, 174, 149, 224, 175, 141, 8, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 134,
-			224, 174, 159, 224, 175, 141, 8, 3, 139, 34, 109, 65, 48, 36, 139, 0, 224, 175, 141, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174,
-			170, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 3,
-			139, 34, 112, 139, 0, 224, 175, 141, 224, 174, 176, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 0, 224, 174, 191, 224, 174, 176, 224, 175,
-			135, 224, 174, 175, 224, 174, 191, 224, 174, 169, 8, 2, 224, 175, 136, 3, 139, 34, 114, 57, 50, 0, 224, 174, 191, 224, 174, 176, 224, 174,
-			190, 224, 174, 170, 224, 175, 141, 8, 3, 139, 34, 118, 48, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141,
-			8, 3, 139, 34, 118, 49, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 1, 133, 174, 224, 0, 224, 175, 141,
-			224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 8, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 8,
-			2, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 12, 12, 12, 3, 139, 34, 118, 50,
-			0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174,
-			176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 139, 34, 118, 50, 89, 48, 37, 34, 109, 66, 139, 148, 0, 224, 175, 141, 224, 174,
-			176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 141,
-			224, 174, 159, 3, 139, 34, 118, 50, 89, 48, 109, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174,
-			184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 3, 139, 34, 118, 50, 89, 83, 109, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190,
-			224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174,
-			190, 224, 174, 170, 8, 2, 224, 174, 191, 32, 3, 139, 34, 118, 83, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 170, 8, 2,
-			224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 175,
-			0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 191, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224,
-			174, 131, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 139, 34, 118, 83, 37, 49, 0, 224, 174, 191, 224, 174, 176, 224,
-			174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 131, 224, 174,
-			170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 149,
-			224, 175, 141, 8, 0, 4, 224, 175, 134, 224, 174, 149, 8, 2, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 184, 3, 139, 36, 49,
-			0, 224, 175, 134, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 169, 224, 174, 190, 224, 174, 178, 224, 174, 156, 224, 174, 191, 0, 224, 175,
-			134, 224, 174, 149, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 149, 8, 3, 139, 36, 49, 50, 37, 49, 148, 0, 224, 175, 134, 224,
-			174, 169, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 169, 3, 139, 36, 50, 93, 109, 0, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224,
-			174, 159, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 139, 36, 50, 139, 122, 55, 49, 109, 0, 224,
-			175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8,
-			2, 224, 174, 176, 3, 139, 36, 55, 37, 48, 34, 37, 50, 139, 109, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 174,
-			164, 8, 2, 224, 174, 191, 3, 139, 36, 55, 37, 48, 109, 47, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 128,
-			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 139, 36, 55, 37, 81, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 170,
-			2, 224, 175, 139, 224, 174, 169, 3, 139, 36, 55, 37, 83, 0, 224, 175, 134, 224, 174, 178, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224,
-			175, 139, 224, 174, 170, 224, 175, 141, 8, 3, 139, 36, 55, 109, 89, 49, 119, 48, 0, 224, 175, 134, 224, 174, 174, 224, 175, 141, 224, 174,
-			170, 8, 2, 224, 175, 139, 3, 139, 36, 65, 48, 0, 224, 175, 134, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174, 178,
-			224, 175, 135, 224, 174, 159, 224, 175, 141, 8, 3, 139, 36, 65, 48, 55, 114, 139, 0, 224, 175, 134, 224, 174, 174, 224, 175, 141, 224, 174,
-			170, 8, 2, 224, 174, 176, 3, 139, 36, 65, 48, 109, 0, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 8, 3,
-			139, 36, 66, 139, 0, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 8, 3, 139, 36, 89, 139, 148, 0, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 1, 141, 175, 224, 176, 174, 224, 134, 174, 224, 3, 139, 37, 49, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 3, 139, 37, 49, 49, 36, 139, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 159, 224, 175, 141, 8, 3, 139, 37, 49, 49, 109, 139, 0, 224, 174, 191, 224, 174, 169, 224, 175, 134, 224, 174, 169, 224, 175,
-			141, 224, 174, 159, 1, 141, 175, 224, 169, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 178, 3, 139, 37, 50, 36, 50, 139, 109, 0,
-			224, 174, 191, 224, 174, 169, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174,
-			224, 2, 224, 174, 178, 3, 139, 37, 50, 36, 66, 139, 109, 0, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174,
-			176, 224, 174, 191, 224, 174, 153, 224, 175, 141, 3, 139, 37, 50, 49, 109, 0, 224, 174, 191, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224,
-			175, 141, 224, 174, 159, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 154, 174, 224, 3, 139, 37, 65, 36, 66, 139, 148, 0, 224, 174, 191,
-			224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 135, 224, 174, 159, 8, 141, 175, 224, 176, 174, 224, 154, 174, 224, 3, 139, 37, 83, 37,
-			81, 114, 139, 148, 0, 224, 174, 191, 224, 174, 170, 8, 2, 224, 174, 169, 3, 139, 37, 83, 109, 0, 224, 174, 191, 224, 174, 159, 8, 2,
-			224, 175, 139, 3, 139, 37, 139, 0, 224, 175, 138, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 139, 3, 139,
-			39, 34, 109, 66, 139, 0, 224, 175, 138, 224, 174, 149, 224, 175, 141, 8, 3, 139, 39, 49, 0, 224, 175, 129, 224, 174, 159, 8, 2, 224,
-			175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178, 3, 139, 40, 139, 0, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174,
-			163, 224, 175, 141, 224, 174, 159, 1, 133, 174, 224, 3, 139, 55, 118, 66, 139, 148, 0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224, 174,
-			191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 3, 139, 58, 0, 224, 175, 141, 224, 174, 181, 8, 2, 224, 174, 191, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			8, 2, 224, 174, 191, 224, 174, 179, 3, 139, 58, 37, 68, 49, 0, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175, 141,
-			224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			8, 2, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 141, 175,
-			224, 163, 174, 224, 191, 174, 224, 175, 174, 224, 190, 174, 224, 170, 174, 224, 141, 175, 224, 170, 174, 224, 133, 174, 224, 3, 139, 65, 36, 66,
-			139, 148, 0, 4, 1, 135, 175, 224, 159, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 184, 3, 139, 109, 0, 1, 141, 175, 224, 153,
-			174, 224, 2, 224, 174, 169, 0, 1, 141, 175, 224, 163, 174, 224, 129, 175, 224, 181, 174, 224, 149, 174, 224, 141, 175, 224, 169, 174, 224, 142,
-			174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 141, 0, 1, 141, 175, 224, 163,
-			174, 224, 140, 175, 224, 149, 174, 224, 141, 175, 224, 169, 174, 224, 142, 174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 178, 174, 224, 191,
-			174, 224, 170, 174, 224, 131, 174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 183, 174, 224, 0, 1, 141, 175, 224, 184, 174, 224, 0, 1,
-			191, 174, 224, 169, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 131, 224, 174, 170, 224, 175,
-			141, 0, 8, 2, 224, 174, 149, 224, 175, 141, 32, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 0, 8, 2, 224,
-			174, 149, 224, 175, 141, 224, 174, 169, 0, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0,
-			8, 2, 224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 170, 224, 175, 141, 32, 0, 8, 2,
-			224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174, 178,
-			224, 174, 176, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174, 179, 224, 174, 176, 0, 8, 2, 224, 174, 174,
-			224, 175, 141, 224, 174, 179, 224, 174, 176, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 175,
-			224, 174, 174, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175, 129,
-			0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175, 139, 0, 8, 2, 224, 174, 175,
-			224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 175, 136, 224, 174, 169, 0, 8, 2, 224, 174, 181,
-			224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 169, 0, 8, 130, 175, 224, 149,
-			174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 176, 0, 8, 130, 175, 224, 175, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 169,
-			0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 174, 176, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 174,
-			174, 224, 2, 224, 174, 178, 0, 8, 141, 175, 224, 163, 174, 224, 191, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 176,
-			0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 183, 174, 224, 2, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 191, 174, 224, 174,
-			174, 224, 2, 224, 174, 169, 0, 8, 178, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 8, 191, 174, 224, 178,
-			174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 141,
-			175, 224, 163, 174, 224, 142, 174, 224, 2, 224, 174, 176, 224, 175, 136, 18, 69, 3, 139, 109, 34, 48, 0, 224, 174, 176, 224, 175, 141, 224,
-			174, 170, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 136, 224, 174, 169, 3, 139, 109, 34, 48, 109, 66, 139, 0, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 178, 3, 139, 109, 71, 71, 0, 224, 174, 154, 224, 175, 141, 224, 174, 154,
-			224, 174, 170, 224, 175, 141, 8, 3, 139, 109, 76, 12, 109, 48, 0, 224, 175, 135, 224, 174, 149, 224, 175, 141, 8, 3, 139, 114, 49, 0,
-			224, 175, 135, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 139, 114, 68, 49, 109, 0, 224, 174, 190, 224, 174, 176,
-			224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 1, 141, 175, 224, 163, 174, 224, 133, 174, 224, 3, 139, 118, 34, 139, 37, 49, 148,
-			0, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 3, 139, 118, 48, 0, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 8, 3, 139, 118, 48, 37, 49, 0, 4, 224, 174, 190, 224, 174, 149, 8, 2, 224, 175, 141, 224, 174, 184, 224, 174, 191, 3, 139, 118,
-			49, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 8, 2, 32, 0, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 175, 141,
-			8, 3, 139, 118, 50, 37, 49, 0, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8,
-			3, 139, 118, 57, 55, 36, 139, 0, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 159, 224, 175, 141, 8, 3, 139, 118,
-			57, 55, 109, 139, 0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 191, 3, 139, 118, 68, 49, 0, 224, 174,
-			190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 139, 118, 68, 49, 109, 0, 224, 174, 190, 224, 174, 184, 224, 175,
-			141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 1, 141, 175, 224, 163, 174, 224, 134, 175, 224, 170, 174, 224, 3, 139, 118, 89,
-			139, 37, 49, 0, 224, 174, 190, 224, 174, 159, 8, 2, 224, 174, 190, 3, 139, 118, 139, 0, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224,
-			174, 169, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 139, 119, 34, 50, 109, 65, 36, 66, 139, 148, 0,
-			224, 175, 139, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 139, 3, 139, 119, 34, 109, 66, 139, 0, 4, 224,
-			175, 130, 8, 32, 141, 175, 224, 184, 174, 224, 179, 174, 224, 141, 175, 224, 170, 174, 224, 3, 139, 123, 0, 224, 175, 130, 8, 32, 141, 175,
-			224, 184, 174, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 0, 224, 175, 130, 224, 174, 164, 224, 175, 141, 8, 3, 139, 123, 47, 0, 224,
-			175, 136, 224, 174, 170, 224, 175, 141, 8, 3, 139, 134, 48, 0, 224, 175, 136, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 175, 224, 175,
-			141, 224, 174, 159, 3, 139, 134, 83, 0, 224, 175, 136, 224, 174, 159, 8, 2, 224, 174, 191, 224, 174, 178, 3, 139, 134, 139, 0, 224, 175,
-			141, 224, 174, 159, 2, 17, 66, 3, 139, 139, 0, 224, 175, 141, 224, 174, 159, 3, 139, 139, 109, 0, 4, 1, 135, 175, 224, 175, 174, 224,
-			191, 174, 224, 159, 174, 224, 128, 175, 224, 174, 174, 224, 141, 175, 224, 176, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 174, 224,
-			3, 139, 148, 0, 1, 141, 175, 224, 163, 174, 224, 134, 175, 224, 156, 174, 224, 141, 175, 224, 176, 174, 224, 133, 174, 224, 0, 1, 141, 175,
-			224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 128, 175, 224, 176, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 0, 1, 141, 175, 224,
-			163, 174, 224, 156, 174, 224, 141, 175, 224, 176, 174, 224, 133, 174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 176, 174, 224, 134, 175, 224, 170,
-			174, 224, 141, 175, 224, 184, 174, 224, 141, 175, 224, 169, 174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 176, 174, 224, 170, 174, 224, 141, 175,
-			224, 184, 174, 224, 141, 175, 224, 169, 174, 224, 0, 1, 141, 175, 224, 178, 174, 224, 190, 174, 224, 18, 69, 133, 174, 224, 0, 8, 135, 175,
-			224, 159, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 149, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224, 135,
-			175, 224, 170, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224, 175, 174, 224, 136, 175, 224, 179, 174, 224, 141, 175, 224, 149, 174, 224, 0, 8,
-			141, 175, 224, 163, 174, 224, 183, 174, 224, 135, 175, 224, 170, 174, 224, 0, 8, 141, 175, 224, 170, 174, 224, 131, 174, 224, 191, 174, 224, 183,
-			174, 224, 0, 8, 141, 175, 224, 176, 174, 224, 139, 175, 224, 170, 174, 224, 141, 175, 224, 170, 174, 224, 191, 174, 224, 176, 174, 224, 0, 8,
-			141, 175, 224, 178, 174, 224, 139, 175, 224, 181, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 174, 174, 224, 0, 8, 141, 175,
-			224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 0, 4, 2, 17, 66, 3, 140, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224,
-			174, 169, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 178, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 224, 174, 149, 224, 175, 129, 224, 174, 178, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174,
-			224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 175, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 32, 0, 224, 174, 191, 8,
-			2, 224, 174, 176, 224, 175, 136, 224, 174, 181, 0, 224, 174, 191, 224, 174, 176, 8, 2, 224, 174, 184, 3, 140, 34, 36, 0, 224, 174, 191,
-			224, 174, 175, 224, 175, 130, 224, 174, 159, 8, 2, 224, 174, 191, 3, 140, 57, 151, 139, 0, 4, 3, 140, 109, 0, 8, 2, 224, 174, 181,
-			224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 178, 224, 175, 139, 224, 174, 159, 0, 224, 175, 128, 224, 174, 154, 224, 174, 163, 224, 175,
-			141, 224, 174, 159, 8, 3, 140, 112, 89, 109, 66, 139, 148, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224,
-			174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 140, 118, 49, 49, 122, 65, 36, 66, 139, 148, 0, 224, 174, 190,
-			224, 174, 149, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 176, 3, 140, 118, 49, 139, 109, 0, 4, 224, 175, 141, 224, 174, 159, 1, 135,
-			174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 191, 3, 140, 140, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 176, 174, 224, 2,
-			224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 175,
-			0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 183, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 224, 174, 159, 8, 134,
-			175, 224, 183, 174, 224, 2, 224, 175, 129, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 183, 174, 224, 2, 224, 175, 136, 0, 224, 175,
-			141, 224, 174, 159, 8, 191, 174, 224, 156, 174, 224, 2, 224, 175, 129, 0, 4, 224, 175, 141, 224, 174, 159, 8, 129, 175, 224, 181, 174, 224,
-			191, 174, 224, 178, 174, 224, 139, 175, 224, 149, 174, 224, 3, 140, 140, 148, 0, 224, 175, 141, 224, 174, 159, 8, 129, 175, 224, 181, 174, 224,
-			191, 174, 224, 178, 174, 224, 139, 175, 224, 159, 174, 224, 0, 224, 175, 141, 224, 174, 159, 8, 129, 175, 224, 181, 174, 224, 191, 174, 224, 178,
-			174, 224, 190, 174, 224, 170, 174, 224, 0, 224, 175, 141, 224, 174, 159, 8, 129, 175, 224, 181, 174, 224, 191, 174, 224, 178, 174, 224, 190, 174,
-			224, 174, 174, 224, 0, 224, 175, 141, 224, 174, 159, 8, 129, 175, 224, 181, 174, 224, 191, 174, 224, 178, 174, 224, 190, 174, 224, 185, 174, 224,
-			0, 224, 175, 141, 224, 174, 159, 8, 178, 174, 224, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 109, 0, 7, 6, 1,
-			37, 0, 4, 1, 129, 175, 224, 164, 174, 224, 18, 68, 2, 224, 175, 138, 224, 174, 159, 3, 47, 0, 1, 135, 175, 224, 174, 174, 224, 133,
-			174, 224, 2, 224, 174, 191, 0, 1, 141, 175, 224, 149, 174, 224, 2, 17, 66, 0, 1, 141, 175, 224, 159, 174, 224, 2, 17, 66, 0, 1,
+			174, 159, 3, 140, 34, 109, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 159, 224,
+			175, 141, 8, 3, 140, 34, 109, 65, 48, 36, 140, 0, 224, 175, 141, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 134,
+			224, 174, 159, 224, 175, 141, 8, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 3, 140, 34, 112, 140,
+			0, 224, 175, 141, 224, 174, 176, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 0, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 175,
+			224, 174, 191, 224, 174, 169, 8, 2, 224, 175, 136, 3, 140, 34, 114, 57, 50, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 170,
+			224, 175, 141, 8, 3, 140, 34, 118, 48, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 8, 3, 140, 34,
+			118, 49, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 1, 133, 174, 224, 0, 224, 175, 141, 224, 174, 176, 224,
+			174, 190, 224, 174, 149, 224, 175, 141, 8, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 8, 2, 224, 174, 184,
+			224, 175, 141, 224, 174, 170, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 12, 12, 12, 3, 140, 34, 118, 50, 0, 224, 175, 141,
+			224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 163,
+			224, 175, 141, 224, 174, 159, 8, 3, 140, 34, 118, 50, 89, 48, 37, 34, 109, 66, 140, 149, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190,
+			224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 3,
+			140, 34, 118, 50, 89, 48, 109, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141,
+			224, 174, 170, 8, 2, 224, 174, 176, 3, 140, 34, 118, 50, 89, 83, 109, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224,
+			175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 131,
+			224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 140, 34, 118, 83, 37, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190,
+			224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 131, 224, 174, 170, 224,
+			174, 191, 224, 174, 149, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 8, 0, 4, 224, 175, 134, 224, 174, 149, 8, 2, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 184, 3, 140, 36, 49, 0, 224,
+			175, 134, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 169, 224, 174, 190, 224, 174, 178, 224, 174, 156, 224, 174, 191, 0, 224, 175, 134, 224,
+			174, 149, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 149, 8, 3, 140, 36, 49, 50, 37, 49, 149, 0, 224, 175, 134, 224, 174, 169,
+			224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 169, 3, 140, 36, 50, 93, 109, 0, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 159,
+			224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 140, 36, 50, 140, 122, 55, 49, 109, 0, 224, 175, 134,
+			224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224,
+			174, 176, 3, 140, 36, 55, 37, 48, 34, 37, 50, 140, 109, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 174, 164, 8,
+			2, 224, 174, 191, 3, 140, 36, 55, 37, 48, 109, 47, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 128, 8, 2,
+			224, 174, 176, 224, 174, 190, 224, 174, 174, 3, 140, 36, 55, 37, 81, 0, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174, 170, 2, 224,
+			175, 139, 224, 174, 169, 3, 140, 36, 55, 37, 83, 0, 224, 175, 134, 224, 174, 178, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 139,
+			224, 174, 170, 224, 175, 141, 8, 3, 140, 36, 55, 109, 89, 49, 119, 48, 0, 224, 175, 134, 224, 174, 174, 224, 175, 141, 224, 174, 170, 8,
+			2, 224, 175, 139, 3, 140, 36, 65, 48, 0, 224, 175, 134, 224, 174, 174, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 176, 3, 140, 36,
+			65, 48, 109, 0, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 8, 3, 140, 36, 89, 140, 149, 0, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 1, 141, 175, 224, 176, 174, 224, 134, 174, 224, 3, 140, 37, 49, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149,
+			224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 3, 140, 37, 49, 49, 36, 140, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149,
+			224, 174, 159, 224, 175, 141, 8, 3, 140, 37, 49, 49, 109, 140, 0, 224, 174, 191, 224, 174, 169, 224, 175, 134, 224, 174, 169, 224, 175, 141,
+			224, 174, 159, 1, 141, 175, 224, 169, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 178, 3, 140, 37, 50, 36, 50, 140, 109, 0, 224,
+			174, 191, 224, 174, 169, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174, 224,
+			2, 224, 174, 178, 3, 140, 37, 50, 36, 66, 140, 109, 0, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176,
+			224, 174, 191, 224, 174, 153, 224, 175, 141, 3, 140, 37, 50, 49, 109, 0, 224, 174, 191, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175,
+			141, 224, 174, 159, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 154, 174, 224, 3, 140, 37, 65, 36, 66, 140, 149, 0, 224, 174, 191, 224,
+			174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 135, 224, 174, 159, 8, 141, 175, 224, 176, 174, 224, 154, 174, 224, 3, 140, 37, 83, 37, 81,
+			114, 140, 149, 0, 224, 174, 191, 224, 174, 170, 8, 2, 224, 174, 169, 3, 140, 37, 83, 109, 0, 224, 174, 191, 224, 174, 159, 8, 2, 224,
+			175, 139, 3, 140, 37, 140, 0, 224, 175, 138, 224, 174, 149, 224, 175, 141, 8, 3, 140, 39, 49, 0, 224, 175, 129, 224, 174, 159, 8, 2,
+			224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178, 3, 140, 40, 140, 0, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 1, 133, 174, 224, 3, 140, 55, 118, 66, 140, 149, 0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224,
+			174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 3, 140, 58, 0, 224, 175, 141, 224, 174, 181, 8, 2, 224, 174, 191, 224,
+			174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174,
+			149, 8, 2, 224, 174, 191, 224, 174, 179, 3, 140, 58, 37, 68, 49, 0, 224, 175, 129, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174,
+			149, 8, 2, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 141,
+			175, 224, 163, 174, 224, 191, 174, 224, 175, 174, 224, 190, 174, 224, 170, 174, 224, 141, 175, 224, 170, 174, 224, 133, 174, 224, 3, 140, 65, 36,
+			66, 140, 149, 0, 4, 1, 135, 175, 224, 159, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 184, 3, 140, 109, 0, 1, 141, 175, 224,
+			153, 174, 224, 2, 224, 174, 169, 0, 1, 141, 175, 224, 163, 174, 224, 129, 175, 224, 181, 174, 224, 149, 174, 224, 141, 175, 224, 169, 174, 224,
+			142, 174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 141, 0, 1, 141, 175, 224,
+			163, 174, 224, 140, 175, 224, 149, 174, 224, 141, 175, 224, 169, 174, 224, 142, 174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 178, 174, 224,
+			191, 174, 224, 170, 174, 224, 131, 174, 224, 2, 224, 174, 176, 0, 1, 141, 175, 224, 183, 174, 224, 0, 1, 141, 175, 224, 184, 174, 224, 0,
+			1, 191, 174, 224, 169, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 131, 224, 174, 170, 224,
+			175, 141, 0, 8, 2, 224, 174, 149, 224, 175, 141, 32, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 0, 8, 2,
+			224, 174, 149, 224, 175, 141, 224, 174, 169, 0, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141,
+			0, 8, 2, 224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 170, 224, 175, 141, 32, 0, 8,
+			2, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174,
+			178, 224, 174, 176, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174, 179, 224, 174, 176, 0, 8, 2, 224, 174,
+			174, 224, 175, 141, 224, 174, 179, 224, 174, 176, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174,
+			175, 224, 174, 174, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175,
+			129, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224, 175, 139, 0, 8, 2, 224, 174,
+			175, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174, 181, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 174, 178, 0, 8, 2, 224, 174,
+			181, 224, 175, 129, 224, 174, 169, 0, 8, 130, 175, 224, 149, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 176, 0, 8, 130, 175, 224,
+			175, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 169, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 174,
+			176, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 174, 178, 0, 8, 141, 175, 224, 163, 174, 224, 191, 174, 224,
+			176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 183, 174, 224, 2, 224, 174,
+			176, 0, 8, 141, 175, 224, 178, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 169, 0, 8, 178, 174, 224, 191, 174, 224, 174, 174, 224,
+			2, 224, 174, 176, 224, 174, 191, 0, 8, 191, 174, 224, 178, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 224,
+			174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 142, 174, 224, 2, 224, 174, 176, 224, 175, 136, 18, 69,
+			3, 140, 109, 34, 48, 0, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 136, 224,
+			174, 169, 3, 140, 109, 34, 48, 109, 66, 140, 0, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 178, 3, 140,
+			109, 71, 71, 0, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 170, 224, 175, 141, 8, 3, 140, 109, 76, 12, 109, 48, 0, 224, 175,
+			135, 224, 174, 149, 224, 175, 141, 8, 3, 140, 114, 49, 0, 224, 175, 135, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176,
+			3, 140, 114, 68, 49, 109, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 1, 141, 175, 224, 163,
+			174, 224, 133, 174, 224, 3, 140, 118, 34, 140, 37, 49, 149, 0, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 3, 140, 118, 48, 0, 224,
+			174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 140, 118, 48, 37, 49, 0, 4, 224, 174, 190, 224, 174, 149, 8,
+			2, 224, 175, 141, 224, 174, 184, 224, 174, 191, 3, 140, 118, 49, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 8, 2, 32, 0, 224, 174,
+			190, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 140, 118, 50, 37, 49, 0, 224, 174, 190, 224, 174, 175, 224, 175, 141,
+			224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 3, 140, 118, 57, 55, 36, 140, 0, 224, 174, 190, 224, 174, 175, 224, 175, 141,
+			224, 174, 178, 224, 174, 159, 224, 175, 141, 8, 3, 140, 118, 57, 55, 109, 140, 0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149,
+			8, 2, 224, 174, 191, 3, 140, 118, 68, 49, 0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 140,
+			118, 68, 49, 109, 0, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 1, 141, 175, 224,
+			163, 174, 224, 134, 175, 224, 170, 174, 224, 3, 140, 118, 89, 140, 37, 49, 0, 224, 174, 190, 224, 174, 159, 8, 2, 224, 174, 190, 3, 140,
+			118, 140, 0, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159,
+			8, 3, 140, 119, 34, 50, 109, 65, 36, 66, 140, 149, 0, 224, 175, 139, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2,
+			224, 175, 139, 3, 140, 119, 34, 109, 66, 140, 0, 4, 224, 175, 130, 8, 32, 141, 175, 224, 184, 174, 224, 179, 174, 224, 141, 175, 224, 170,
+			174, 224, 3, 140, 123, 0, 224, 175, 130, 8, 32, 141, 175, 224, 184, 174, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 0, 224, 175, 130,
+			224, 174, 164, 224, 175, 141, 8, 3, 140, 123, 47, 0, 224, 175, 136, 224, 174, 170, 224, 175, 141, 8, 3, 140, 134, 48, 0, 224, 175, 136,
+			224, 174, 159, 8, 2, 224, 174, 191, 224, 174, 178, 3, 140, 134, 140, 0, 224, 175, 141, 224, 174, 159, 2, 17, 66, 3, 140, 140, 0, 224,
+			175, 141, 224, 174, 159, 3, 140, 140, 109, 0, 4, 1, 135, 175, 224, 175, 174, 224, 191, 174, 224, 159, 174, 224, 128, 175, 224, 174, 174, 224,
+			141, 175, 224, 176, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 174, 224, 3, 140, 149, 0, 1, 141, 175, 224, 163, 174, 224, 134,
+			175, 224, 156, 174, 224, 141, 175, 224, 176, 174, 224, 133, 174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 134, 175, 224, 174, 174, 224, 128, 175,
+			224, 176, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 156, 174, 224, 141, 175, 224, 176, 174, 224,
+			133, 174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 176, 174, 224, 134, 175, 224, 170, 174, 224, 141, 175, 224, 184, 174, 224, 141, 175, 224, 169,
+			174, 224, 0, 1, 141, 175, 224, 163, 174, 224, 176, 174, 224, 170, 174, 224, 141, 175, 224, 184, 174, 224, 141, 175, 224, 169, 174, 224, 0, 1,
+			141, 175, 224, 178, 174, 224, 190, 174, 224, 18, 69, 133, 174, 224, 0, 8, 135, 175, 224, 159, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224,
+			134, 175, 224, 174, 174, 224, 149, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224, 135, 175, 224, 170, 174, 224, 0, 8, 141, 175, 224, 163, 174,
+			224, 175, 174, 224, 136, 175, 224, 179, 174, 224, 141, 175, 224, 149, 174, 224, 0, 8, 141, 175, 224, 163, 174, 224, 183, 174, 224, 135, 175, 224,
+			170, 174, 224, 0, 8, 141, 175, 224, 170, 174, 224, 131, 174, 224, 191, 174, 224, 183, 174, 224, 0, 8, 141, 175, 224, 176, 174, 224, 139, 175,
+			224, 170, 174, 224, 141, 175, 224, 170, 174, 224, 191, 174, 224, 176, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 139, 175, 224, 181, 174, 224,
+			0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 0, 4, 2, 17, 66, 3, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169,
+			224, 175, 141, 224, 174, 169, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 178,
+			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 129, 224, 174, 178, 224, 174, 190, 0, 224, 174, 191, 8, 2,
+			224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 224, 174, 191,
+			224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 141,
+			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 32, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 181, 0, 224, 174, 191, 224, 174, 176, 8, 2, 224, 174, 184, 3, 141, 34, 36, 0,
+			224, 174, 191, 224, 174, 175, 224, 175, 130, 224, 174, 159, 8, 2, 224, 174, 191, 3, 141, 57, 152, 140, 0, 4, 3, 141, 109, 0, 8, 2,
+			224, 174, 181, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 178, 224, 175, 139, 224, 174, 159, 0, 224, 175, 128, 224, 174, 154, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 8, 3, 141, 112, 89, 109, 66, 140, 149, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			175, 129, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 141, 118, 49, 49, 122, 65, 36, 66, 140, 149, 0,
+			224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 176, 3, 141, 118, 49, 140, 109, 0, 4, 224, 175, 141, 224, 174,
+			159, 1, 135, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 191, 3, 141, 141, 0, 224, 175, 141, 224, 174, 159, 8, 134, 175, 224, 176,
+			174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 159, 8, 178, 174, 224, 3, 141, 141, 149, 0, 7, 6, 1, 36, 0,
+			2, 17, 66, 3, 66, 0, 3, 66, 109, 0, 7, 6, 1, 37, 0, 4, 1, 141, 175, 224, 149, 174, 224, 2, 17, 66, 3, 47, 0, 1,
 			141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 175, 135, 224, 174, 181, 224, 175, 136, 0, 1, 141, 175, 224, 163, 174, 224,
 			128, 175, 224, 181, 174, 224, 2, 224, 175, 138, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 0, 1, 141, 175, 224, 168, 174, 224,
 			154, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 1, 141, 175, 224, 168, 174, 224, 175, 174, 224, 134, 175, 224, 156, 174, 224,
-			2, 224, 174, 191, 0, 1, 141, 175, 224, 168, 174, 224, 181, 174, 224, 133, 174, 224, 2, 224, 174, 191, 0, 1, 141, 175, 224, 170, 174, 224,
-			2, 17, 66, 0, 1, 141, 175, 224, 180, 174, 224, 134, 174, 224, 2, 224, 175, 129, 224, 174, 179, 224, 175, 136, 0, 1, 141, 175, 224, 184,
-			174, 224, 2, 17, 66, 0, 1, 142, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 175, 139, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
-			174, 191, 224, 174, 175, 0, 1, 143, 174, 224, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 0, 1, 154, 174, 224, 2, 224, 175, 141, 224,
-			174, 175, 0, 1, 154, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 129, 0, 1, 159, 174, 224, 141, 175, 224, 159, 174, 224, 154, 174,
-			224, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 164, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224,
-			174, 170, 0, 1, 178, 174, 224, 174, 174, 224, 135, 175, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 0, 1, 181, 174,
-			224, 190, 174, 224, 170, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191, 0, 1, 190, 174, 224, 156, 174, 224, 129, 175,
-			224, 154, 174, 224, 2, 224, 174, 190, 0, 1, 190, 174, 224, 170, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0,
-			1, 191, 174, 224, 154, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0, 1, 191, 174, 224, 164, 174, 224, 133, 174, 224, 2, 224,
-			174, 191, 0, 1, 191, 174, 224, 168, 174, 224, 2, 224, 175, 141, 224, 174, 175, 0, 1, 191, 174, 224, 169, 174, 224, 133, 174, 224, 2, 224,
-			174, 190, 0, 1, 191, 174, 224, 178, 174, 224, 178, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 181, 174, 224, 170, 174, 224, 2, 224,
-			175, 141, 224, 174, 176, 224, 174, 190, 0, 2, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0, 2, 224, 175, 130, 224, 174, 149, 224, 175, 141,
-			224, 174, 149, 0, 8, 2, 17, 66, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 164, 0,
-			8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224,
-			174, 190, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224,
-			174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224,
-			174, 191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224,
-			174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
-			175, 129, 32, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141,
-			224, 174, 149, 224, 175, 129, 32, 224, 174, 181, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 129, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174,
-			178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 32, 224, 174, 174, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 0,
-			8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224,
-			174, 170, 224, 175, 141, 32, 224, 174, 170, 0, 8, 2, 224, 175, 128, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 128,
-			224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 129,
-			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141,
-			224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141, 32, 0, 8, 2, 224, 175, 130, 224, 174,
-			176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 175, 138, 224, 174, 159, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174,
-			176, 224, 174, 178, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 130, 224, 174,
-			176, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 32, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 168, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224,
-			174, 176, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 135, 224,
-			174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0,
-			8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224,
-			175, 129, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224,
-			175, 141, 32, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 178, 32, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 178, 224, 174,
-			190, 224, 174, 174, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 178, 224, 175, 135, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174,
-			178, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8,
-			2, 224, 175, 135, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224, 174,
-			181, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8,
-			128, 175, 224, 149, 174, 224, 2, 224, 174, 190, 0, 8, 128, 175, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 128, 175, 224, 170, 174, 224,
-			154, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 156, 224, 174, 191, 0, 8, 136, 175, 224,
-			174, 174, 224, 2, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174,
-			190, 224, 174, 174, 224, 174, 176, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 175,
-			136, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 179, 224, 174, 191, 0, 8, 141, 175, 224,
-			168, 174, 224, 149, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175,
-			139, 224, 174, 183, 224, 174, 191, 224, 174, 159, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175, 139, 224, 174, 183, 224, 174,
-			191, 224, 174, 169, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175, 139, 224, 174, 183, 224, 175, 129, 0, 8, 141, 175, 224,
-			168, 174, 224, 154, 174, 224, 2, 224, 175, 139, 224, 174, 183, 224, 175, 136, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175,
-			139, 224, 174, 183, 224, 175, 141, 32, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175,
-			224, 168, 174, 224, 156, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 168, 174, 224, 174, 174, 224, 154, 174, 224, 2, 224,
-			174, 190, 0, 8, 141, 175, 224, 168, 174, 224, 175, 174, 224, 141, 175, 224, 183, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 191, 0,
-			8, 141, 175, 224, 168, 174, 224, 184, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174,
-			224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 175, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224,
-			174, 190, 0, 8, 141, 175, 224, 169, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0,
-			8, 141, 175, 224, 174, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 156, 0, 8, 141, 175, 224, 174, 174, 224, 174, 174,
-			224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 141, 175,
-			224, 178, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 149, 174, 224, 2, 18, 73, 224, 174, 156, 224, 174,
-			190, 0, 8, 154, 174, 224, 2, 224, 175, 128, 224, 174, 183, 0, 8, 169, 174, 224, 156, 174, 224, 2, 224, 174, 190, 0, 8, 174, 174, 224,
-			129, 175, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 174, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 176, 174, 224,
-			190, 174, 224, 170, 174, 224, 32, 141, 175, 224, 176, 174, 224, 190, 174, 224, 154, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224,
-			174, 191, 0, 8, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 175, 128, 0, 8, 178, 174, 224, 2, 224, 174, 190, 0, 8, 178, 174,
-			224, 163, 174, 224, 141, 175, 224, 176, 174, 224, 181, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 178, 174, 224, 163, 174,
-			224, 141, 175, 224, 176, 174, 224, 181, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 190, 0, 8, 178, 174, 224, 170, 174, 224, 141, 175,
-			224, 183, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 178, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 191, 0,
-			8, 181, 174, 224, 135, 175, 224, 176, 174, 224, 2, 224, 174, 191, 0, 8, 181, 174, 224, 141, 175, 224, 176, 174, 224, 190, 174, 224, 170, 174,
-			224, 2, 224, 174, 191, 0, 8, 181, 174, 224, 170, 174, 224, 141, 175, 224, 183, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0,
-			8, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 191, 174, 224, 154, 174, 224, 141, 175, 224, 158, 174, 224, 176, 174,
-			224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 156, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 156, 174,
-			224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 191, 174, 224, 168, 174,
-			224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 175, 136, 0,
-			8, 191, 174, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 169, 0, 8, 191, 174, 224, 168, 174, 224, 2, 224, 175, 128, 224, 174, 183, 0,
-			8, 191, 174, 224, 168, 174, 224, 2, 224, 175, 135, 224, 174, 183, 0, 8, 191, 174, 224, 169, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224,
-			174, 190, 0, 8, 191, 174, 224, 169, 174, 224, 181, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 169, 174, 224, 191, 174, 224, 181, 174,
-			224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 174, 174, 224, 141, 175,
-			224, 184, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 174, 174, 224, 168, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174,
-			224, 154, 174, 224, 2, 224, 174, 190, 32, 0, 8, 191, 174, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 8, 191,
-			174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 8, 191,
-			174, 224, 181, 174, 224, 149, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178,
-			224, 175, 139, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 191, 224, 174, 181, 224, 175, 135, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140,
-			224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 141, 175, 224, 184, 174, 224, 134, 174, 224, 2, 224, 174, 176, 0, 224, 175,
-			129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 163, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 175,
-			0, 224, 175, 141, 1, 135, 174, 224, 2, 224, 174, 175, 224, 174, 190, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 1, 191, 174, 224, 164,
-			174, 224, 134, 174, 224, 2, 224, 174, 175, 0, 224, 175, 141, 2, 32, 224, 174, 164, 0, 224, 175, 141, 8, 130, 175, 224, 154, 174, 224, 2,
-			224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 176,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 0, 224, 175,
-			141, 8, 130, 175, 224, 154, 174, 224, 174, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 130, 175, 224, 174,
-			174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 134, 175, 224, 156, 174, 224, 2, 224, 174, 174, 224, 174, 178, 224, 174, 190, 224, 174, 169,
-			224, 174, 191, 0, 224, 175, 141, 8, 135, 175, 224, 168, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 136, 175, 224, 174, 174, 224, 2,
-			224, 174, 176, 224, 175, 135, 224, 174, 175, 0, 224, 175, 141, 8, 170, 174, 224, 2, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			224, 174, 179, 0, 224, 175, 141, 8, 170, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 8, 170,
-			174, 224, 2, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 8, 175, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 191,
-			0, 224, 175, 141, 8, 175, 174, 224, 191, 174, 224, 181, 174, 224, 139, 175, 224, 154, 174, 224, 0, 224, 175, 141, 8, 190, 174, 224, 170, 174,
-			224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 190, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 190, 174, 224, 175, 174,
-			224, 2, 224, 174, 176, 224, 175, 128, 224, 174, 149, 0, 224, 175, 141, 8, 190, 174, 224, 181, 174, 224, 2, 224, 174, 154, 224, 174, 178, 224,
-			175, 141, 224, 174, 175, 0, 224, 175, 141, 8, 191, 174, 224, 156, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 0,
-			224, 175, 141, 8, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 191, 174, 224, 174, 174, 224, 129, 175, 224, 154, 174,
-			224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 191, 174, 224, 181, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 191, 174,
-			224, 181, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174,
+			2, 224, 174, 191, 0, 1, 141, 175, 224, 170, 174, 224, 2, 17, 66, 0, 1, 141, 175, 224, 180, 174, 224, 134, 174, 224, 2, 224, 175, 129,
+			224, 174, 179, 224, 175, 136, 0, 1, 141, 175, 224, 184, 174, 224, 2, 17, 66, 0, 1, 142, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224,
+			175, 139, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 175, 0, 1, 154, 174, 224, 2, 224, 175, 141, 224, 174, 175, 0,
+			1, 154, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 129, 0, 1, 159, 174, 224, 141, 175, 224, 159, 174, 224, 154, 174, 224, 2, 224,
+			174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 1, 164, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 170, 0,
+			1, 178, 174, 224, 174, 174, 224, 135, 175, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 0, 1, 181, 174, 224, 190, 174,
+			224, 170, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191, 0, 1, 190, 174, 224, 156, 174, 224, 129, 175, 224, 154, 174,
+			224, 2, 224, 174, 190, 0, 1, 190, 174, 224, 170, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0, 1, 191, 174,
+			224, 154, 174, 224, 2, 224, 175, 141, 224, 174, 176, 224, 174, 190, 0, 1, 191, 174, 224, 164, 174, 224, 133, 174, 224, 2, 224, 174, 191, 0,
+			1, 191, 174, 224, 168, 174, 224, 2, 224, 175, 141, 224, 174, 175, 0, 1, 191, 174, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 190, 0,
+			1, 191, 174, 224, 178, 174, 224, 178, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 181, 174, 224, 170, 174, 224, 2, 224, 175, 141, 224,
+			174, 176, 224, 174, 190, 0, 2, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0, 2, 224, 175, 130, 224, 174, 149, 224, 175, 141, 224, 174, 149,
+			0, 8, 2, 17, 66, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224,
+			174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224,
+			174, 154, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224,
+			174, 191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 175, 129, 32, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 175, 129, 32, 224, 174, 181, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174,
+			191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 32, 224, 174, 174, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224,
+			175, 129, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224,
+			175, 128, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 0,
+			8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141, 32, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141,
+			224, 174, 164, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 138,
+			224, 174, 159, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 174, 178, 0, 8, 2,
+			224, 175, 130, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 32, 0, 8,
+			2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 168, 224, 175,
+			141, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 159, 224, 174,
+			191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175,
+			135, 224, 174, 181, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 175,
+			135, 224, 174, 181, 224, 174, 176, 224, 175, 141, 32, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 178, 32, 0, 8, 2, 224, 175, 135,
+			224, 174, 181, 224, 174, 178, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 178, 224, 175, 135, 0, 8, 2,
+			224, 175, 135, 224, 174, 181, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 191,
+			224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190,
+			0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 175, 136, 0, 8, 128, 175, 224, 149, 174, 224, 2, 224, 174, 190, 0, 8, 128, 175, 224, 154,
+			174, 224, 2, 224, 174, 190, 0, 8, 128, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 135, 175, 224, 168, 174, 224, 2,
+			224, 174, 190, 224, 174, 156, 224, 174, 191, 0, 8, 141, 175, 224, 168, 174, 224, 149, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191,
+			0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 168, 174, 224, 156, 174, 224, 174,
+			174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 168, 174, 224, 175, 174, 224, 141, 175, 224, 183, 174, 224, 129, 175, 224, 164, 174, 224, 2,
+			224, 174, 191, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 190,
+			174, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 129, 175, 224, 174,
+			174, 224, 2, 224, 174, 190, 224, 174, 156, 0, 8, 141, 175, 224, 174, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 178,
+			174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 174, 174, 224, 2,
+			224, 174, 190, 224, 174, 169, 0, 8, 149, 174, 224, 2, 18, 73, 224, 174, 156, 224, 174, 190, 0, 8, 154, 174, 224, 2, 224, 175, 128, 224,
+			174, 183, 0, 8, 174, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 174, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224,
+			174, 191, 0, 8, 176, 174, 224, 190, 174, 224, 170, 174, 224, 32, 141, 175, 224, 176, 174, 224, 190, 174, 224, 154, 174, 224, 176, 174, 224, 191,
+			174, 224, 170, 174, 224, 2, 224, 174, 191, 0, 8, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 175, 128, 0, 8, 178, 174, 224, 2,
+			224, 174, 190, 0, 8, 178, 174, 224, 170, 174, 224, 141, 175, 224, 183, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 181,
+			174, 224, 135, 175, 224, 176, 174, 224, 2, 224, 174, 191, 0, 8, 181, 174, 224, 141, 175, 224, 176, 174, 224, 190, 174, 224, 170, 174, 224, 2,
+			224, 174, 191, 0, 8, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 191, 174, 224, 164, 174, 224, 135, 175, 224, 181,
+			174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 191, 174, 224, 168,
+			174, 224, 2, 224, 175, 136, 0, 8, 191, 174, 224, 168, 174, 224, 2, 224, 175, 128, 224, 174, 183, 0, 8, 191, 174, 224, 168, 174, 224, 2,
+			224, 175, 135, 224, 174, 183, 0, 8, 191, 174, 224, 169, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 169,
+			174, 224, 181, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 169, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 0, 8, 191,
+			174, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174, 190, 0, 224, 174,
+			191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 135, 224, 174, 159, 224, 175, 141,
+			224, 174, 159, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 224, 174, 191, 8, 2,
+			224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 139, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 178,
+			224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 181, 224, 175, 135, 224, 174, 164, 224, 174, 191, 0, 224, 174,
+			191, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139,
+			224, 174, 163, 0, 224, 175, 141, 1, 135, 174, 224, 2, 224, 174, 175, 224, 174, 190, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 1, 191,
+			174, 224, 164, 174, 224, 134, 174, 224, 2, 224, 174, 175, 0, 224, 175, 141, 2, 32, 224, 174, 164, 0, 224, 175, 141, 8, 130, 175, 224, 154,
+			174, 224, 174, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 130, 175, 224, 174, 174, 224, 2, 224, 174, 176,
+			0, 224, 175, 141, 8, 134, 175, 224, 156, 174, 224, 2, 224, 174, 174, 224, 174, 178, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 224, 175,
+			141, 8, 136, 175, 224, 174, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 175, 0, 224, 175, 141, 8, 170, 174, 224, 2, 224, 174, 176,
+			224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 8, 170, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141,
+			224, 174, 164, 0, 224, 175, 141, 8, 170, 174, 224, 2, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 8, 175, 174, 224, 191, 174, 224, 181,
+			174, 224, 139, 175, 224, 154, 174, 224, 0, 224, 175, 141, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 190, 174,
+			224, 174, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 8, 190, 174, 224, 181, 174, 224, 2, 224, 174, 154, 224, 174, 178, 224, 175, 141, 224,
+			174, 175, 0, 224, 175, 141, 8, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174,
 			170, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 3, 47, 34, 37, 48, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 170,
 			8, 2, 224, 175, 139, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 224, 174, 176, 224, 174, 170, 224, 174, 164, 224, 174, 191, 1, 154, 174,
 			224, 3, 47, 34, 109, 48, 109, 47, 37, 0, 224, 175, 141, 224, 174, 176, 224, 174, 178, 224, 175, 135, 224, 174, 149, 8, 191, 174, 224, 154,
@@ -44018,244 +32361,188 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			224, 174, 191, 224, 174, 175, 224, 175, 139, 224, 174, 170, 1, 142, 174, 224, 2, 224, 174, 191, 224, 174, 175, 3, 47, 37, 57, 119, 48, 0,
 			4, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 12, 3, 47, 47, 0, 224, 175, 141, 224, 174,
 			164, 1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 2, 17, 66, 0, 224, 175, 141, 224,
-			174, 164, 8, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224,
-			181, 174, 224, 176, 174, 224, 141, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224,
-			174, 164, 8, 141, 175, 224, 176, 174, 224, 181, 174, 224, 176, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174,
-			191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224, 181, 174, 224, 176, 174, 224, 191, 174, 224,
-			149, 174, 224, 141, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8,
-			190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 224, 175, 141, 8, 191, 174, 224,
-			154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 3, 47, 47, 37, 0, 4, 224, 175, 141, 224, 174, 164, 3, 47, 47, 109, 0, 224, 175, 141,
-			224, 174, 164, 8, 129, 175, 224, 170, 174, 224, 141, 175, 224, 174, 174, 224, 129, 175, 224, 177, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224,
-			174, 169, 0, 224, 175, 141, 224, 174, 170, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 3, 47, 48, 109,
-			0, 224, 175, 141, 224, 174, 149, 1, 135, 175, 224, 170, 174, 224, 141, 175, 224, 174, 174, 224, 133, 174, 224, 3, 47, 49, 148, 0, 224, 175,
-			141, 224, 174, 164, 224, 175, 129, 8, 154, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 174, 191,
-			3, 47, 72, 0, 4, 1, 133, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 181, 224, 174, 163, 3, 47, 109, 0, 1, 136, 175, 224,
-			179, 174, 224, 141, 175, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 169, 0, 1, 141, 175, 224, 149, 174, 224, 0, 1, 141,
-			175, 224, 159, 174, 224, 0, 1, 141, 175, 224, 170, 174, 224, 0, 1, 141, 175, 224, 176, 174, 224, 149, 174, 224, 133, 174, 224, 2, 224, 174,
-			178, 224, 174, 190, 0, 1, 141, 175, 224, 179, 174, 224, 190, 174, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 129, 175, 224, 174, 174, 224,
-			2, 224, 174, 169, 0, 1, 141, 175, 224, 184, 174, 224, 0, 8, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 191, 224,
-			174, 159, 0, 8, 129, 175, 224, 159, 174, 224, 168, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 139, 175, 224, 169, 174,
-			224, 174, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 0, 8, 140, 175, 224, 149, 174, 224, 2, 224,
-			174, 174, 0, 8, 140, 175, 224, 149, 174, 224, 2, 224, 174, 174, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 174, 174, 224, 2, 224,
-			174, 176, 224, 175, 136, 0, 8, 141, 175, 224, 168, 174, 224, 129, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 190, 0,
-			8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 32, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2,
-			224, 174, 159, 224, 175, 136, 0, 8, 141, 175, 224, 176, 174, 224, 130, 175, 224, 170, 174, 224, 149, 174, 224, 2, 224, 174, 178, 224, 174, 190,
-			0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 176, 224, 175, 136, 0, 8, 141, 175, 224, 178, 174, 224, 135,
-			175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174, 224, 170, 174, 224, 2, 224, 174, 159,
-			0, 8, 141, 175, 224, 180, 174, 224, 128, 175, 224, 149, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 170, 174, 224, 2,
-			224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 178, 224, 174, 191, 0, 224, 174, 154, 1, 190, 174, 224, 156, 174, 224, 133, 174, 224, 2,
-			224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 129, 3, 47, 109, 76, 109, 0, 4, 1, 141, 175, 224, 168, 174, 224, 169, 174, 224, 133,
-			174, 224, 3, 47, 148, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 181, 174, 224, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224,
-			154, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174,
-			174, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 169, 224, 175, 129, 0, 8, 141, 175, 224,
-			168, 174, 224, 190, 174, 224, 164, 174, 224, 135, 175, 224, 181, 174, 224, 0, 4, 2, 17, 66, 3, 72, 0, 8, 2, 17, 66, 28, 17, 12,
-			0, 8, 2, 18, 73, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0,
-			8, 2, 224, 174, 190, 224, 174, 154, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224,
-			175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224,
-			174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32,
-			224, 174, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191,
-			224, 174, 175, 224, 174, 190, 32, 224, 174, 168, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 176, 0, 8,
-			2, 224, 174, 190, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174,
-			190, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174,
-			190, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174,
-			169, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174,
-			174, 224, 175, 139, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 32, 224, 174, 164, 224, 175, 130, 224,
-			174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224,
-			174, 175, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224,
-			174, 175, 224, 174, 190, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224,
-			174, 190, 224, 174, 176, 224, 174, 190, 32, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 0, 8, 2,
-			224, 174, 190, 224, 174, 176, 224, 174, 190, 32, 224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174,
-			176, 224, 174, 190, 32, 224, 174, 183, 224, 174, 191, 224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224,
-			174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0,
-			8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224,
-			174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 190, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224,
-			174, 181, 224, 175, 128, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 175, 130, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224,
-			174, 181, 224, 175, 135, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 174, 224,
-			175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0,
-			8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224,
-			174, 191, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 177, 224, 175, 141, 224,
-			174, 177, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0,
-			8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 0,
-			8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 135, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 156, 224, 174, 175, 0,
-			8, 2, 224, 174, 191, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 149, 224, 174, 190, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224,
-			174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 168, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 170, 0, 8, 2, 224, 174, 191, 224,
-			174, 159, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 128, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 128, 224,
-			174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224,
-			175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224,
-			174, 159, 224, 175, 129, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
-			174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224,
-			175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 154, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224,
-			174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224,
-			174, 168, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224,
-			174, 191, 224, 174, 169, 224, 175, 129, 224, 174, 154, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 135, 224, 174, 183, 0, 8, 2, 224,
-			174, 191, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224,
-			175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 129, 224, 174, 181, 224,
-			175, 134, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 175, 139, 224,
-			174, 170, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 181, 0, 8, 2, 224, 174, 191, 224,
-			174, 176, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224,
-			174, 191, 224, 174, 176, 224, 175, 140, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
-			174, 178, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224,
-			174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 32, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 154, 0, 8, 2,
-			224, 174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 169,
-			0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 175, 141, 224, 174, 175,
-			0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 149,
-			224, 175, 141, 224, 174, 183, 224, 174, 163, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 149, 224, 175, 141, 224, 174, 183,
-			224, 174, 191, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141,
-			224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 164, 0, 8, 2, 224, 175, 128,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 175, 128, 224, 174, 170,
-			0, 8, 2, 224, 175, 128, 224, 174, 170, 224, 175, 141, 32, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 191, 224, 174, 180, 224, 174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 175,
-			128, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174,
-			169, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174,
-			174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174,
-			159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 175,
-			128, 224, 174, 176, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174,
-			176, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			174, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174,
-			178, 224, 175, 139, 224, 174, 154, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 181, 224, 174, 190, 224, 174, 179, 224, 174,
-			191, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 154, 224, 175, 141, 224, 174,
-			154, 224, 174, 174, 0, 8, 2, 224, 175, 129, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 164, 224, 174, 169, 224, 174,
-			169, 0, 8, 2, 224, 175, 129, 224, 174, 156, 224, 174, 184, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174,
-			159, 0, 8, 2, 224, 175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174,
-			169, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175,
-			129, 224, 174, 170, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 174, 190, 224, 174, 183, 0, 8, 2, 224, 175,
-			129, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174,
-			174, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174,
-			183, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 141, 224, 174,
-			183, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 183, 224, 175, 141, 224, 174,
-			159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 190, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174,
-			190, 224, 174, 164, 224, 175, 141, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 175, 139, 224, 174, 164, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 175,
-			129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174,
-			181, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 175,
-			129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 136, 0, 8,
-			2, 224, 175, 129, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 183, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174,
-			154, 0, 8, 2, 224, 175, 130, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224, 174,
-			174, 0, 8, 2, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175,
-			141, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 179, 224, 175, 141, 32, 224, 174, 149, 224, 174, 191, 224, 174, 179, 0,
-			8, 2, 224, 175, 130, 224, 174, 179, 224, 175, 141, 32, 224, 174, 170, 224, 174, 177, 0, 8, 2, 224, 175, 130, 224, 174, 183, 0, 8, 2,
-			224, 175, 130, 224, 174, 183, 224, 174, 163, 224, 175, 136, 0, 8, 2, 224, 175, 130, 224, 174, 183, 224, 174, 191, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141,
-			224, 174, 181, 0, 8, 2, 224, 175, 134, 224, 174, 181, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 149, 0, 8, 2, 224, 175, 135,
-			224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 175, 135, 224, 174, 168, 224, 175, 141,
-			0, 8, 2, 224, 175, 135, 224, 174, 185, 224, 174, 191, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2,
-			224, 175, 138, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 175, 138, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 136, 0, 8, 2,
-			224, 175, 138, 224, 174, 170, 224, 174, 164, 224, 175, 138, 224, 174, 170, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 175, 129, 224, 174, 149,
-			224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 175, 138,
-			224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 175, 138,
-			224, 174, 179, 224, 174, 164, 224, 175, 138, 224, 174, 179, 0, 8, 2, 224, 175, 138, 224, 174, 179, 224, 174, 181, 224, 175, 134, 0, 8, 2,
-			224, 175, 139, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 183, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 175, 141,
-			224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 185, 224, 174, 190, 0, 8, 2, 224, 175, 141, 224, 174, 176, 224, 174, 190,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 8, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 134, 175, 224, 170,
-			174, 224, 2, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174, 190, 224, 174, 184,
-			224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174,
-			191, 224, 174, 159, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175,
-			139, 224, 174, 163, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 156, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175,
-			141, 224, 174, 170, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174, 164, 32, 0, 224, 175, 129, 8, 2, 224,
-			174, 181, 224, 174, 174, 224, 175, 141, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 175, 135, 224, 174, 154, 0, 224, 175, 129,
-			8, 2, 224, 174, 181, 224, 175, 135, 224, 174, 183, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 1, 133, 174, 224, 2, 224, 174, 181, 224,
-			174, 190, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 1, 191, 174, 224, 181, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224,
-			174, 169, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224,
-			174, 176, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 190, 3, 72, 34,
-			37, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 224, 175, 129, 224,
-			174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 176, 3, 72, 34, 118, 81, 81, 0, 224,
-			174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 3, 72, 37, 55, 37, 48, 0, 224, 174, 191, 224, 174, 178, 224, 175,
-			128, 224, 174, 170, 224, 175, 141, 8, 3, 72, 37, 55, 112, 48, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 170, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 136, 3, 72, 37, 81, 71, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 164, 8,
-			2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 175, 224, 175, 134, 3, 72, 37, 81, 72, 0, 224, 174, 191, 224, 174, 159, 224, 174,
-			154, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 178, 224, 175, 141, 224, 174, 170, 8, 3, 72, 37, 140, 109, 89, 109, 68, 81, 109,
-			55, 48, 148, 0, 4, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 174, 191, 224, 174, 154, 224, 175, 136, 3, 72, 72, 0, 224, 175,
-			141, 224, 174, 164, 1, 18, 68, 2, 224, 174, 191, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 129, 224, 174,
-			176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 130, 224, 174, 154,
-			0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164,
-			1, 18, 68, 2, 224, 175, 130, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 134, 224, 174, 175,
-			224, 175, 141, 224, 174, 181, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 154, 0, 224, 175, 141, 224, 174, 164,
-			1, 18, 68, 2, 224, 175, 135, 224, 174, 181, 224, 174, 164, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 181,
-			224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164,
-			1, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 142, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0,
-			224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174,
-			224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224,
-			174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 181, 174, 224, 141, 175, 224, 181, 174, 224, 18, 68, 2, 224, 174,
-			191, 224, 174, 175, 224, 175, 139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 154, 224, 174,
-			191, 0, 224, 175, 141, 224, 174, 164, 1, 133, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181, 0, 224, 175, 141, 224,
-			174, 164, 1, 136, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 137, 174, 224, 2, 224, 174,
-			191, 224, 174, 175, 224, 175, 139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 137, 174, 224, 2, 224, 175, 135, 224, 174, 154, 0, 224,
-			175, 141, 224, 174, 164, 1, 139, 175, 224, 175, 174, 224, 133, 174, 224, 2, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 141, 175, 224,
-			176, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 174, 174, 224, 2, 224, 174,
-			191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 176, 174, 224, 191, 174, 224, 154, 174, 224, 133, 174, 224, 2, 224, 175, 136, 0, 224,
-			175, 141, 224, 174, 164, 1, 178, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181, 0, 224,
-			175, 141, 224, 174, 164, 1, 178, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224,
-			174, 164, 1, 178, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224,
-			174, 164, 1, 190, 174, 224, 154, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224,
-			163, 174, 224, 141, 175, 224, 163, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 1,
-			190, 174, 224, 170, 174, 224, 137, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224, 170, 174, 224,
-			141, 175, 224, 170, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224,
-			181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174,
-			175, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174,
-			190, 224, 174, 178, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224,
-			174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 175, 136, 0, 224, 175, 141,
-			224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 133, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174,
-			224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174, 224, 169, 174, 224, 129, 175, 224, 170, 174,
-			224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 163, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174, 224, 191, 174, 224, 181, 174,
-			224, 2, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 154, 224,
-			175, 141, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224,
-			174, 154, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224,
-			175, 141, 32, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 169, 0, 224, 175,
-			141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 0, 224, 175, 141, 224, 174,
-			164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 176, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 130,
-			175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 176, 224, 175, 135, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154,
-			174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 176, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 8, 135, 175, 224, 181, 174, 224, 136,
-			175, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 8, 136, 175, 224, 181, 174, 224, 2, 224, 174, 191,
-			32, 0, 224, 175, 141, 224, 174, 164, 8, 136, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224,
-			175, 141, 224, 174, 164, 8, 136, 175, 224, 181, 174, 224, 2, 224, 175, 128, 224, 174, 184, 224, 175, 141, 224, 174, 181, 0, 224, 175, 141, 224,
-			174, 164, 8, 140, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224,
-			174, 174, 224, 176, 174, 224, 129, 175, 224, 154, 174, 224, 190, 174, 224, 183, 174, 224, 191, 174, 224, 18, 71, 174, 174, 224, 2, 224, 174, 191,
-			224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 190,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 8, 169, 174, 224, 174,
-			174, 224, 2, 224, 174, 191, 224, 174, 159, 0, 224, 175, 141, 224, 174, 164, 8, 170, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191,
-			224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8, 170, 174, 224, 137, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174,
-			164, 8, 170, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175,
-			141, 224, 174, 164, 8, 174, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 224, 174,
-			164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 177,
-			0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149,
-			224, 174, 179, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 168, 224, 175, 141,
-			0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170,
-			224, 174, 159, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 174, 190, 224, 174, 159, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175,
-			224, 174, 174, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 170, 174, 224, 141, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 191,
-			224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 183, 174, 224, 135, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176,
-			224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 224, 175,
-			141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 224, 175,
-			141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 224, 174, 164, 8, 191,
-			174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181,
-			174, 224, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 8, 191,
-			174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 224, 174, 164, 8, 191,
-			174, 224, 181, 174, 224, 32, 141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 8,
-			191, 174, 224, 181, 174, 224, 141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 1, 191, 174, 224, 164, 174, 224, 134, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 0, 224,
-			175, 141, 224, 174, 164, 224, 175, 129, 1, 18, 68, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 224, 175,
-			129, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 224, 175,
-			129, 1, 169, 174, 224, 135, 174, 224, 2, 224, 174, 181, 224, 175, 135, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 129, 175, 224, 159,
-			174, 224, 168, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 129, 175, 224, 180,
-			174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 149,
-			174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 164,
-			174, 224, 174, 174, 224, 2, 224, 174, 181, 224, 175, 135, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 191, 174, 224, 180, 174, 224, 138,
-			175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 175, 135, 0, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174,
-			149, 8, 129, 175, 224, 174, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 3, 72, 72, 37, 34, 37, 49, 0, 4, 224, 175, 141,
-			224, 174, 164, 1, 18, 68, 2, 224, 174, 159, 224, 174, 181, 224, 175, 136, 3, 72, 72, 109, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175,
-			224, 170, 174, 224, 2, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141,
+			174, 164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 224, 175, 141, 8,
+			191, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 190, 3, 47, 47, 37, 0, 224, 175, 141, 224, 174, 164, 3, 47, 47, 109, 0, 224,
+			175, 141, 224, 174, 149, 1, 135, 175, 224, 170, 174, 224, 141, 175, 224, 174, 174, 224, 133, 174, 224, 3, 47, 49, 149, 0, 224, 175, 141, 224,
+			174, 164, 224, 175, 129, 8, 154, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 174, 191, 3, 47,
+			72, 0, 4, 1, 136, 175, 224, 179, 174, 224, 141, 175, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 169, 3, 47, 109, 0,
+			1, 141, 175, 224, 149, 174, 224, 0, 1, 141, 175, 224, 170, 174, 224, 0, 1, 141, 175, 224, 179, 174, 224, 190, 174, 224, 159, 174, 224, 141,
+			175, 224, 159, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 169, 0, 1, 141, 175, 224, 184, 174, 224, 0, 8, 0, 8, 2, 224, 174,
+			176, 224, 175, 129, 224, 174, 174, 224, 174, 191, 224, 174, 159, 0, 8, 129, 175, 224, 159, 174, 224, 168, 174, 224, 2, 224, 174, 159, 224, 175,
+			141, 224, 174, 159, 0, 8, 140, 175, 224, 149, 174, 224, 2, 224, 174, 174, 0, 8, 140, 175, 224, 149, 174, 224, 2, 224, 174, 174, 224, 174,
+			191, 0, 8, 141, 175, 224, 163, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 175, 136, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224,
+			154, 174, 224, 2, 32, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 176, 224, 175, 136, 0, 8, 141, 175,
+			224, 178, 174, 224, 135, 175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174, 224, 170, 174,
+			224, 2, 224, 174, 159, 0, 8, 141, 175, 224, 180, 174, 224, 128, 175, 224, 149, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0,
+			8, 170, 174, 224, 2, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 178, 224, 174, 191, 0, 4, 1, 141, 175, 224, 168, 174, 224, 169,
+			174, 224, 133, 174, 224, 3, 47, 149, 0, 8, 141, 175, 224, 168, 174, 224, 154, 174, 224, 181, 174, 224, 0, 8, 141, 175, 224, 168, 174, 224,
+			190, 174, 224, 154, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224,
+			2, 224, 174, 174, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 191, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 0, 8, 141, 175, 224, 168, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 169, 224, 175, 129, 0, 4,
+			2, 17, 66, 3, 72, 0, 8, 2, 17, 66, 28, 17, 12, 0, 8, 2, 18, 73, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 154, 0, 8, 2, 224, 174, 190, 224, 174, 159,
+			224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 175, 0, 8, 2,
+			224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 190,
+			0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 164, 224, 175, 141,
+			0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 174, 0, 8, 2,
+			224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 129, 224, 174, 181, 0, 8, 2,
+			224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 139, 224, 174, 164, 224, 174, 176,
+			0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 32, 224, 174, 164, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174,
+			175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 174, 224, 174, 190, 0, 8,
+			2, 224, 174, 190, 224, 174, 175, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224, 174, 190, 224, 174, 164, 224, 174,
+			191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 32, 224,
+			174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 32,
+			224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 32, 224, 174, 183, 224, 174,
+			191, 224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8,
+			2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174,
+			190, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174,
+			181, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 175,
+			135, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174,
+			170, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175,
+			129, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
+			178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 135, 0, 8,
+			2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
+			181, 224, 174, 191, 224, 174, 156, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174,
+			159, 224, 174, 149, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174,
+			159, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 170, 0, 8,
+			2, 224, 174, 191, 224, 174, 159, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 128, 0, 8, 2, 224, 174, 191, 224, 174,
+			159, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174,
+			191, 224, 174, 159, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175,
+			129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 174, 0, 8,
+			2, 224, 174, 191, 224, 174, 159, 224, 175, 129, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174,
+			159, 224, 174, 191, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 129, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174,
+			169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 154, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174,
+			191, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 168, 224, 175, 141, 0, 8, 2, 224, 174,
+			191, 224, 174, 169, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174,
+			174, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 129, 224, 174, 154, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 135, 224, 174,
+			183, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 129, 0, 8, 2, 224, 174,
+			191, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 181, 0, 8, 2, 224, 174, 191, 224, 174,
+			176, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174,
+			191, 224, 174, 176, 224, 175, 140, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174,
+			178, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174,
+			191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 32, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 154, 0, 8, 2, 224,
+			174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0,
+			8, 2, 224, 174, 191, 224, 174, 181, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 181, 224, 175, 141, 224, 174, 175, 0,
+			8, 2, 224, 174, 191, 224, 174, 181, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 149, 224,
+			175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224,
+			174, 163, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 164, 0,
+			8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224,
+			175, 128, 224, 174, 170, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 180, 224,
+			174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 164, 224,
+			175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 175, 128, 224,
+			174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224,
+			175, 129, 224, 174, 159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 149, 0,
+			8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224,
+			175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 181, 224, 174, 190, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224,
+			175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 174, 0,
+			8, 2, 224, 175, 129, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 164, 224, 174, 169, 224, 174, 169, 0, 8, 2, 224,
+			175, 129, 224, 174, 156, 224, 174, 184, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
+			175, 129, 224, 174, 169, 224, 175, 141, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 174, 190, 224,
+			174, 175, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224, 174, 190, 224, 174, 183, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 170, 224,
+			175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 174, 224, 174, 179, 224,
+			174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224,
+			174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 141, 224, 174, 183, 224, 175, 141, 224,
+			174, 159, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
+			175, 129, 224, 174, 176, 224, 174, 190, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224,
+			175, 139, 224, 174, 164, 224, 174, 169, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 175, 139, 224,
+			174, 164, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 153, 224, 175, 141, 0,
+			8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224,
+			175, 129, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 129, 224, 174, 181, 224, 174, 170, 224, 175, 141, 0,
+			8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224,
+			174, 183, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 154, 0, 8, 2, 224, 175, 130, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224,
+			175, 130, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224,
+			174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 179, 224,
+			175, 141, 32, 224, 174, 149, 224, 174, 191, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 179, 224, 175, 141, 32, 224, 174, 170, 224, 174,
+			177, 0, 8, 2, 224, 175, 130, 224, 174, 183, 0, 8, 2, 224, 175, 130, 224, 174, 183, 224, 174, 163, 224, 175, 136, 0, 8, 2, 224, 175,
+			130, 224, 174, 183, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174,
+			159, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 149, 0, 8, 2, 224, 175,
+			135, 224, 174, 154, 0, 8, 2, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 175, 135, 224, 174, 181, 224, 175, 135, 224, 174, 168, 224, 175,
+			141, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 138, 224, 174, 169, 224, 174, 191, 0, 8,
+			2, 224, 175, 138, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 136, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 174, 164, 224, 175,
+			138, 224, 174, 170, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174,
+			170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 175, 138, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175,
+			134, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174, 179, 224, 174, 164, 224, 175, 138, 224, 174,
+			179, 0, 8, 2, 224, 175, 138, 224, 174, 179, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 175, 139, 224, 174, 154, 224, 175, 136, 0, 8,
+			2, 224, 175, 139, 224, 174, 183, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175,
+			139, 224, 174, 185, 224, 174, 190, 0, 8, 2, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175,
+			136, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
+			159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174,
+			159, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174,
+			163, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174, 164, 32, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224,
+			174, 174, 224, 175, 141, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 181, 224, 175, 135, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224,
+			174, 181, 224, 175, 135, 224, 174, 183, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 1, 133, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224,
+			174, 169, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 1, 191, 174, 224, 181, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0,
+			224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0,
+			4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 190, 3, 72, 34, 37, 0, 224,
+			174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 224, 174, 191, 224, 174, 178, 224,
+			174, 191, 224, 174, 170, 224, 175, 141, 8, 3, 72, 37, 55, 37, 48, 0, 224, 174, 191, 224, 174, 178, 224, 175, 128, 224, 174, 170, 224, 175,
+			141, 8, 3, 72, 37, 55, 112, 48, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 174, 224, 175, 136, 3, 72, 37, 81, 71, 0, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174,
+			149, 224, 175, 141, 224, 174, 175, 224, 175, 134, 3, 72, 37, 81, 72, 0, 224, 174, 191, 224, 174, 159, 224, 174, 154, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 224, 174, 178, 224, 175, 141, 224, 174, 170, 8, 3, 72, 37, 141, 109, 89, 109, 68, 81, 109, 55, 48, 149, 0, 4, 224,
+			175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 174, 191, 224, 174, 154, 224, 175, 136, 3, 72, 72, 0, 224, 175, 141, 224, 174, 164, 1, 18,
+			68, 2, 224, 174, 191, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 129, 224, 174, 176, 224, 175, 141, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 130, 224, 174, 154, 0, 224, 175, 141, 224, 174,
+			164, 1, 18, 68, 2, 224, 175, 130, 224, 174, 176, 224, 174, 164, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175,
+			130, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181,
+			0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 154, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175,
+			135, 224, 174, 181, 224, 174, 164, 0, 224, 175, 141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 181, 224, 174, 169, 0, 224, 175,
+			141, 224, 174, 164, 1, 18, 68, 2, 224, 175, 135, 224, 174, 181, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 159, 174,
+			224, 141, 175, 224, 159, 174, 224, 142, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164,
+			1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224,
+			174, 175, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0,
+			224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 181, 174, 224, 141, 175, 224, 181, 174, 224, 18, 68, 2, 224, 174, 191, 224, 174, 175, 224, 175,
+			139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 154, 224, 174, 191, 0, 224, 175, 141, 224,
+			174, 164, 1, 133, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181, 0, 224, 175, 141, 224, 174, 164, 1, 136, 175, 224,
+			181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 137, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 175,
+			139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 137, 174, 224, 2, 224, 175, 135, 224, 174, 154, 0, 224, 175, 141, 224, 174, 164, 1,
+			139, 175, 224, 175, 174, 224, 133, 174, 224, 2, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 141, 175, 224, 176, 174, 224, 181, 174, 224,
+			2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 174, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224,
+			175, 141, 224, 174, 164, 1, 176, 174, 224, 191, 174, 224, 154, 174, 224, 133, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 1,
+			178, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 181, 0, 224, 175, 141, 224, 174, 164, 1,
+			178, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 1, 178, 174, 224,
+			191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224,
+			154, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224, 170, 174, 224, 137, 174, 224,
+			2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 1, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224,
+			175, 141, 224, 174, 164, 1, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 1,
+			191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224,
+			181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174,
+			224, 181, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 1, 191, 174, 224, 181, 174, 224, 2, 224,
+			175, 136, 224, 174, 175, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0,
+			224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174, 224, 169, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224,
+			174, 163, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 176, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 224, 175, 141,
+			224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 0,
+			224, 175, 141, 224, 174, 164, 8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164,
+			8, 130, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 176, 224, 174, 191, 0, 224, 175, 141, 224, 174, 164, 8, 130, 175,
+			224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 176, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 8, 135, 175, 224, 181, 174,
+			224, 136, 175, 224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 8, 136, 175, 224, 181, 174, 224, 2, 224,
+			174, 191, 32, 0, 224, 175, 141, 224, 174, 164, 8, 136, 175, 224, 181, 174, 224, 2, 224, 175, 128, 224, 174, 184, 224, 175, 141, 224, 174, 181,
+			0, 224, 175, 141, 224, 174, 164, 8, 140, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8, 141,
+			175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 224, 175, 141,
+			224, 174, 175, 0, 224, 175, 141, 224, 174, 164, 8, 170, 174, 224, 129, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175,
+			141, 224, 174, 164, 8, 170, 174, 224, 137, 174, 224, 2, 224, 174, 191, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8, 174, 174, 224, 2,
+			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 224, 174, 164, 8, 190, 174, 224, 154, 174, 224, 2,
+			224, 174, 191, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 177, 0, 224, 175, 141, 224, 174, 164, 8, 190,
+			174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 224, 174,
+			164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 224, 174,
+			164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 168, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 8, 190,
+			174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 224, 175, 141, 224, 174,
+			164, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 174, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181,
+			174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 176, 224, 175, 141, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181,
+			174, 224, 2, 224, 175, 136, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224, 2,
+			224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224, 32,
+			141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 181, 174, 224,
+			141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 164, 224, 174, 191, 1, 191, 174, 224,
+			164, 174, 224, 134, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 0, 224, 175, 141, 224, 174, 164, 224,
+			175, 129, 1, 18, 68, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 1, 156, 174, 224, 190,
+			174, 224, 176, 174, 224, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 0, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 149, 174, 224, 129,
+			175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174, 176, 0, 4, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174, 224,
+			2, 224, 174, 169, 3, 72, 72, 109, 0, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 170, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141,
 			224, 174, 164, 1, 141, 175, 224, 176, 174, 224, 133, 174, 224, 2, 18, 74, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 164, 8,
 			129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 176, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 159, 224, 174, 191, 224, 174,
 			175, 224, 174, 169, 0, 224, 175, 141, 224, 174, 164, 8, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 176, 174, 224, 129, 175, 224,
@@ -44268,142 +32555,114 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			141, 175, 224, 176, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 3, 72, 72, 109, 34, 118, 72, 72, 0, 224, 175,
 			141, 224, 174, 164, 224, 175, 128, 224, 174, 154, 224, 175, 129, 8, 136, 175, 224, 181, 174, 224, 2, 224, 174, 181, 3, 72, 72, 112, 89, 0,
 			224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 191, 174, 224, 154, 174, 224, 3, 72, 72, 118, 50,
-			47, 148, 0, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 154, 8, 129, 175, 224, 176, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224,
-			174, 178, 3, 72, 72, 118, 76, 109, 0, 4, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 175, 174, 224, 3, 72, 72, 148, 0, 224, 175,
-			141, 224, 174, 164, 8, 139, 175, 224, 169, 174, 224, 191, 174, 224, 181, 174, 224, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174,
-			224, 133, 174, 224, 2, 32, 18, 97, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 176, 174, 224, 141, 175,
-			224, 184, 174, 224, 0, 224, 175, 141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 154, 174, 224,
-			0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 154, 224, 174, 191, 3, 72, 84, 0, 224, 175, 129, 224,
-			174, 181, 8, 2, 224, 174, 190, 224, 174, 176, 0, 224, 175, 129, 224, 174, 181, 8, 2, 224, 175, 136, 224, 174, 164, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 0, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 72, 84, 118, 48, 109, 0, 4,
-			224, 175, 129, 224, 174, 181, 224, 175, 136, 224, 174, 164, 8, 2, 32, 3, 72, 84, 134, 47, 109, 0, 224, 175, 129, 224, 174, 181, 224, 175,
-			136, 224, 174, 164, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 224, 175, 129, 224, 174, 181, 224, 175,
-			136, 224, 174, 164, 8, 2, 224, 174, 174, 0, 4, 3, 72, 109, 0, 8, 2, 18, 69, 224, 174, 190, 0, 8, 2, 28, 17, 0, 8, 2,
-			224, 174, 149, 224, 174, 164, 224, 174, 149, 0, 8, 2, 224, 174, 149, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 191, 0, 8, 2,
-			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 163, 0, 8, 2, 224, 174, 149, 224, 175, 141,
-			224, 174, 183, 224, 174, 149, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 154, 224, 175, 128, 224, 174, 178, 0, 8, 2,
-			224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 163,
-			0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 163, 224, 174, 190, 0, 8, 2, 224, 174, 154, 224, 174, 149,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 154, 224, 174, 168, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 154,
-			224, 174, 174, 0, 8, 2, 224, 174, 154, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 154, 224, 174, 176, 224, 174, 164, 0, 8, 2,
-			224, 174, 154, 224, 174, 176, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 154, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 174, 154,
-			224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 174, 159, 224, 174, 149,
-			224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 159, 224, 174, 164, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 170, 224, 175, 129,
-			224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 174, 159, 224, 174, 181, 224, 175, 136, 0, 8, 2,
-			224, 174, 159, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 170, 224, 174, 175, 224, 174, 178, 0,
-			8, 2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 149, 0, 8,
-			2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 174, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149,
-			224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 177,
-			0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 159,
-			224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 174, 224, 174, 169,
-			0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 174, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175,
-			224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175,
-			224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 154, 224, 175, 128, 224, 174, 178, 0, 8, 2,
-			224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 163,
-			0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159,
-			224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 134, 224, 174, 178, 224, 174, 181, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159,
-			224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 139, 224, 174, 177, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164,
-			224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159,
-			224, 174, 170, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 174, 0, 8, 2,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 224, 175, 129, 224, 174, 164, 224, 174, 170, 224, 174, 190, 224, 174, 163,
-			224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 174, 163, 224, 175, 141,
-			224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170,
-			224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170,
-			224, 174, 190, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 175, 129, 224, 174, 153, 224, 175, 141,
-			224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 184, 224, 175, 141, 224, 174, 181,
-			224, 174, 176, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 176, 224, 174, 190, 0, 8, 2, 224, 174, 164,
-			224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 175,
-			0, 8, 2, 224, 174, 169, 224, 174, 149, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 174, 154, 224, 175, 135,
-			224, 174, 149, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 169,
-			224, 174, 169, 224, 175, 141, 224, 174, 156, 224, 175, 134, 224, 174, 175, 224, 174, 169, 0, 8, 2, 224, 174, 169, 224, 174, 170, 224, 174, 190,
-			224, 174, 178, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224, 174, 190, 224, 174, 154, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224, 174, 190,
-			224, 174, 156, 0, 8, 2, 224, 174, 169, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 141, 224, 174, 174, 224, 174, 191,
-			0, 8, 2, 224, 174, 169, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 191, 0, 8, 2,
-			224, 174, 169, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 169, 224, 174, 190, 224, 174, 164, 224, 174, 191,
-			224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 169, 224, 175, 129, 224, 174, 154, 0, 8, 2, 224, 174, 169, 224, 175, 129,
-			224, 174, 176, 0, 8, 2, 224, 174, 169, 224, 175, 129, 224, 174, 183, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 174, 224, 174, 168,
-			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 175, 0, 8, 2,
-			224, 174, 169, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174, 168,
-			224, 175, 141, 224, 174, 164, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174, 168, 224, 175, 141,
-			224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 174, 175, 224, 174, 168, 224, 175, 141, 224, 174, 164,
-			224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141, 32, 18, 89, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 159,
-			224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141,
-			224, 174, 170, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 159, 224, 174, 191,
-			18, 76, 224, 175, 141, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 174, 224,
-			175, 141, 224, 174, 174, 224, 174, 174, 0, 8, 2, 224, 174, 175, 224, 174, 181, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 163, 224,
-			174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224,
-			174, 178, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224,
-			174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 176, 224,
-			174, 191, 224, 174, 154, 224, 174, 169, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169, 224,
-			174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 176, 224,
-			174, 191, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
-			174, 176, 224, 174, 174, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224,
-			175, 129, 224, 174, 174, 224, 174, 154, 224, 175, 135, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 154, 224,
-			175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224,
-			174, 174, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224,
-			174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 174, 0,
-			8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 191, 0,
-			8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 163, 224, 174, 190, 0,
-			8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224,
-			175, 130, 224, 174, 154, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224,
-			174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 179, 224, 174, 181, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 181, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
-			175, 139, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 174, 154, 224, 175, 128, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 181, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 181, 224, 174, 174, 0, 8, 2, 224,
-			174, 181, 224, 175, 135, 0, 8, 32, 190, 174, 224, 164, 174, 224, 169, 174, 224, 156, 174, 224, 2, 224, 174, 179, 0, 8, 32, 191, 174, 224,
-			178, 174, 224, 190, 174, 224, 149, 174, 224, 133, 174, 224, 2, 224, 174, 179, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174,
-			153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 174, 0, 4, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 32, 3, 72, 109, 34, 37, 72, 72, 0, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224, 174, 176, 224,
-			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224,
-			174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 169, 0, 224, 174, 176, 224,
-			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 0, 224, 174, 176, 224,
-			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 176, 224,
-			175, 129, 224, 174, 174, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 178, 3, 72, 109, 34, 40, 65, 109, 71, 0, 224, 174, 176, 224, 175,
-			141, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 3, 72, 109, 34, 71, 71, 109, 0, 4,
-			224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
-			174, 176, 3, 72, 109, 34, 122, 65, 109, 48, 0, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 8, 2, 224, 175, 129, 224, 174,
-			176, 224, 174, 191, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175,
-			135, 224, 174, 175, 3, 72, 109, 47, 47, 118, 47, 0, 224, 174, 178, 224, 175, 128, 224, 174, 164, 224, 175, 141, 8, 3, 72, 109, 55, 112,
-			47, 0, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 154, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 176, 3, 72,
-			109, 66, 140, 112, 89, 0, 224, 174, 170, 224, 174, 164, 224, 174, 170, 8, 3, 72, 109, 71, 109, 72, 109, 71, 148, 0, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3, 72, 109, 72, 72, 0, 224, 174, 176, 224, 175, 141, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 72, 109, 81, 81, 0, 224, 174, 181, 224, 175, 129, 224, 174, 178, 224, 174, 164,
-			224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164, 3, 72, 109, 84, 122, 55, 109, 72, 118, 71, 0, 4, 224, 175, 128, 224,
-			174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 32, 224, 174, 154, 224, 175, 129, 224, 174, 174, 224, 174, 153, 224,
-			175, 141, 224, 174, 149, 224, 174, 178, 224, 174, 191, 3, 72, 112, 34, 81, 81, 109, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 8, 2, 32, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169, 0, 224, 175, 128, 224,
-			174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 154, 0, 224,
-			175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 174, 224, 174, 191, 0, 224, 175, 128, 224,
-			174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 174, 224, 175, 141, 32, 0, 4, 224, 175, 128, 224, 174,
-			176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159,
-			224, 174, 169, 3, 72, 112, 34, 81, 81, 148, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8,
-			2, 224, 174, 174, 224, 175, 129, 224, 174, 179, 224, 175, 141, 224, 174, 179, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 175, 224, 175, 129, 0, 224, 175, 128, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224,
-			174, 163, 224, 174, 191, 8, 2, 224, 174, 175, 3, 72, 112, 49, 93, 109, 50, 0, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154,
-			224, 174, 163, 224, 174, 191, 8, 2, 224, 174, 175, 3, 72, 112, 140, 76, 109, 66, 0, 224, 175, 140, 224, 174, 178, 224, 174, 164, 224, 174,
-			190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164, 3, 72, 135, 55, 109, 140, 118, 71, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174,
-			224, 191, 174, 224, 168, 174, 224, 3, 72, 148, 0, 7, 6, 1, 41, 0, 4, 2, 17, 66, 3, 50, 0, 224, 174, 191, 8, 2, 224, 174,
-			175, 224, 174, 190, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 0, 3, 50, 109, 0, 7, 6, 1, 42, 0, 2,
-			17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1, 43, 0, 1, 141, 175, 224, 174, 174, 224, 146, 174, 224, 2, 224, 175, 139, 224, 174,
-			164, 224, 175, 129, 3, 10, 0, 8, 141, 175, 224, 170, 174, 224, 141, 175, 224, 180, 174, 224, 191, 174, 224, 174, 174, 224, 164, 174, 224, 2,
-			224, 174, 190, 224, 174, 183, 3, 10, 71, 0, 4, 1, 21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 3, 48, 0, 1, 21, 2,
-			224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 168, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 1,
-			21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 176, 224, 175, 141, 32, 0, 1, 21, 2, 224, 174, 191, 224, 174,
-			169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 1, 129, 175, 224, 159, 174, 224, 136, 174, 224, 2, 224,
-			174, 190, 224, 174, 159, 0, 1, 129, 175, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224,
-			174, 191, 0, 1, 129, 175, 224, 164, 174, 224, 129, 175, 224, 180, 174, 224, 138, 175, 224, 170, 174, 224, 2, 224, 175, 139, 224, 174, 149, 224,
-			175, 141, 0, 1, 129, 175, 224, 175, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 224, 174, 176, 0, 1, 129, 175, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 1, 129, 175, 224, 176, 174,
-			224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 129, 175, 224, 176, 174, 224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0,
-			1, 129, 175, 224, 176, 174, 224, 146, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 1, 129, 175, 224, 177, 174,
-			224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224, 175, 136, 0, 1, 133, 174, 224, 2, 224,
-			174, 190, 224, 174, 169, 0, 1, 133, 174, 224, 2, 224, 175, 135, 224, 174, 164, 0, 1, 136, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224,
+			47, 149, 0, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 154, 8, 129, 175, 224, 176, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224,
+			174, 178, 3, 72, 72, 118, 76, 109, 0, 4, 224, 175, 141, 224, 174, 164, 1, 129, 175, 224, 175, 174, 224, 3, 72, 72, 149, 0, 224, 175,
+			141, 224, 174, 164, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 0, 224, 175, 141, 224, 174, 164,
+			8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 154, 174, 224, 0, 4, 224, 175, 129, 224, 174, 181, 8, 2, 224,
+			174, 190, 224, 174, 164, 224, 174, 154, 224, 174, 191, 3, 72, 84, 0, 224, 175, 129, 224, 174, 181, 8, 2, 224, 174, 190, 224, 174, 176, 0,
+			224, 175, 129, 224, 174, 181, 8, 2, 224, 175, 136, 224, 174, 164, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 175, 129, 224, 174, 181,
+			224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 72, 84, 118, 48, 109, 0, 4, 224, 175, 129, 224, 174, 181, 224, 175, 136, 224, 174,
+			164, 8, 2, 32, 3, 72, 84, 134, 47, 109, 0, 224, 175, 129, 224, 174, 181, 224, 175, 136, 224, 174, 164, 8, 2, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 224, 175, 129, 224, 174, 181, 224, 175, 136, 224, 174, 164, 8, 2, 224, 174, 174, 0, 4,
+			3, 72, 109, 0, 8, 2, 18, 69, 224, 174, 190, 0, 8, 2, 28, 17, 0, 8, 2, 224, 174, 149, 224, 174, 164, 224, 174, 149, 0, 8,
+			2, 224, 174, 149, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
+			141, 224, 174, 183, 224, 174, 191, 224, 174, 163, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 163, 0, 8,
+			2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 224, 174, 163, 224, 174, 190, 0, 8, 2, 224, 174, 154, 224, 174, 149, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 154, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 154, 224, 174, 176, 224, 174,
+			164, 0, 8, 2, 224, 174, 154, 224, 174, 176, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 154, 224, 174, 176, 224, 174, 190, 0, 8,
+			2, 224, 174, 154, 224, 174, 190, 224, 174, 170, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 174,
+			159, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 159, 224, 174, 164, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174,
+			170, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 181, 224, 175, 134, 0, 8, 2, 224, 174, 159, 224, 174, 181, 224, 175,
+			136, 0, 8, 2, 224, 174, 159, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 170, 224, 174, 175,
+			224, 174, 178, 0, 8, 2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
+			174, 149, 0, 8, 2, 224, 174, 159, 224, 174, 191, 23, 32, 224, 174, 174, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174,
+			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8,
+			2, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 174, 224, 174, 169, 0, 8,
+			2, 224, 174, 159, 224, 174, 191, 224, 174, 174, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174,
+			169, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 8, 2, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174,
+			190, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 154, 224, 175, 128, 224, 174, 178, 0, 8, 2, 224, 174,
+			159, 224, 175, 141, 224, 174, 154, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 163, 0, 8,
+			2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
+			154, 224, 175, 141, 224, 174, 154, 224, 175, 139, 224, 174, 177, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 164, 224, 175,
+			141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
+			170, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 174, 0, 8, 2, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 175, 224, 175, 129, 224, 174, 164, 224, 174, 170, 224, 174, 190, 224, 174, 163, 224, 174,
+			191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
+			191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175,
+			141, 224, 174, 170, 224, 174, 190, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 175, 129, 224, 174,
+			153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 184, 224, 175,
+			141, 224, 174, 181, 224, 174, 176, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 176, 224, 174, 190, 0, 8,
+			2, 224, 174, 169, 224, 174, 149, 224, 175, 139, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 174, 154, 224, 175, 135, 224, 174,
+			149, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 174, 169, 224, 174, 169, 224, 175, 141, 224, 174, 156, 224, 175, 134, 224, 174, 175, 224, 174,
+			169, 0, 8, 2, 224, 174, 169, 224, 174, 170, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224, 174, 190, 224, 174,
+			154, 0, 8, 2, 224, 174, 169, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 174, 169, 224, 174, 178, 224, 174, 149, 224, 175,
+			141, 224, 174, 183, 224, 175, 141, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 174, 178, 224, 174, 159, 224, 175, 141, 224, 174,
+			154, 224, 175, 129, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8,
+			2, 224, 174, 169, 224, 175, 129, 224, 174, 154, 0, 8, 2, 224, 174, 169, 224, 175, 129, 224, 174, 183, 0, 8, 2, 224, 174, 169, 224, 175,
+			141, 224, 174, 174, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 175,
+			141, 224, 174, 176, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174,
+			164, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 174, 175, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8,
+			2, 224, 174, 174, 224, 175, 141, 32, 18, 89, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 174, 191, 0, 8,
+			2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174,
+			191, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 159, 224, 174, 191, 18, 76, 224, 175, 141,
+			0, 8, 2, 224, 174, 175, 224, 174, 181, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 163, 224, 174, 168, 224, 175, 141, 224, 174, 164,
+			0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 175,
+			224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 174, 163, 224, 174, 191, 0, 8, 2,
+			224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169,
+			224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 169, 224, 174, 164, 224, 175, 141, 0, 8, 2,
+			224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			224, 174, 191, 224, 174, 176, 224, 174, 174, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 153, 224, 175, 141, 0, 8, 2,
+			224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 154, 224, 175, 135, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174,
+			224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 176,
+			224, 175, 129, 224, 174, 174, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 224, 175, 129, 224, 174, 176,
+			0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174,
+			224, 174, 174, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 174,
+			224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170,
+			224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 154, 0, 8, 2, 224, 174, 176,
+			224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136,
+			0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2,
+			224, 174, 181, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 175, 139, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 181,
+			224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 181, 224, 174, 174, 0, 8, 32, 191, 174, 224, 178, 174, 224, 190, 174, 224, 149, 174, 224,
+			133, 174, 224, 2, 224, 174, 179, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174,
+			179, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 141, 175, 224, 170, 174, 224,
+			154, 174, 224, 2, 224, 174, 174, 0, 4, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224,
+			174, 176, 32, 3, 72, 109, 34, 37, 72, 72, 0, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174,
+			191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8,
+			2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 0, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 8, 2, 224, 174,
+			190, 224, 174, 178, 3, 72, 109, 34, 40, 65, 109, 71, 0, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 170, 8, 2, 224, 175, 129,
+			224, 174, 176, 224, 174, 191, 3, 72, 109, 34, 122, 65, 109, 48, 0, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 128, 224, 174, 154,
+			224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 176, 3, 72, 109, 66, 141, 112, 89, 0, 224, 174, 170, 224, 174, 164, 224, 174, 170, 8, 3,
+			72, 109, 71, 109, 72, 109, 71, 149, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3,
+			72, 109, 72, 72, 0, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 72, 109, 81, 81,
+			0, 224, 174, 181, 224, 175, 129, 224, 174, 178, 224, 174, 164, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164, 3, 72, 109,
+			84, 122, 55, 109, 72, 118, 71, 0, 4, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224,
+			174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 154, 3, 72, 112, 34, 81, 81, 109, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 174, 224, 174, 191, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 8, 2, 224, 174, 174, 224, 175, 141, 32, 0, 4, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159, 224, 174, 169, 3, 72, 112, 34, 81, 81, 149,
+			0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 174, 224, 175, 129, 224, 174, 179,
+			224, 175, 141, 224, 174, 179, 0, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190,
+			224, 174, 175, 224, 175, 129, 0, 224, 175, 140, 224, 174, 178, 224, 174, 164, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 164,
+			3, 72, 135, 55, 109, 141, 118, 71, 0, 8, 141, 175, 224, 170, 174, 224, 154, 174, 224, 191, 174, 224, 168, 174, 224, 3, 72, 149, 0, 7,
+			6, 1, 41, 0, 4, 2, 17, 66, 3, 50, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 175, 0, 224, 174, 191, 8,
+			2, 224, 174, 175, 224, 175, 130, 0, 3, 50, 109, 0, 7, 6, 1, 42, 0, 2, 17, 66, 3, 50, 0, 3, 50, 109, 0, 7, 6, 1,
+			43, 0, 1, 141, 175, 224, 174, 174, 224, 146, 174, 224, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 3, 10, 0, 8, 141, 175, 224, 170,
+			174, 224, 141, 175, 224, 180, 174, 224, 191, 174, 224, 174, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 183, 3, 10, 71, 0, 4, 1,
+			21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 3, 48, 0, 1, 21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 168,
+			224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 1, 21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224,
+			174, 169, 224, 174, 176, 224, 175, 141, 32, 0, 1, 21, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174,
+			178, 224, 175, 141, 32, 0, 1, 128, 175, 224, 169, 174, 224, 2, 224, 174, 190, 0, 1, 128, 175, 224, 176, 174, 224, 2, 224, 174, 190, 0,
+			1, 129, 175, 224, 159, 174, 224, 136, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 129, 175, 224, 159, 174, 224, 141, 175, 224, 163, 174,
+			224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 1, 129, 175, 224, 164, 174, 224, 129, 175, 224, 180, 174, 224, 138, 175,
+			224, 170, 174, 224, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 0, 1, 129, 175, 224, 175, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224,
+			175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 129, 175, 224, 176, 174, 224, 135, 174, 224, 2, 224,
+			174, 190, 224, 174, 178, 0, 1, 129, 175, 224, 176, 174, 224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 129, 175, 224, 176, 174,
+			224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 1, 129, 175, 224, 176, 174, 224, 146, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224,
+			175, 141, 224, 174, 154, 0, 1, 129, 175, 224, 177, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224,
+			174, 179, 224, 175, 136, 0, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 169, 0, 1, 136, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224,
 			175, 139, 224, 174, 159, 0, 1, 136, 175, 224, 154, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 136, 175, 224, 159, 174,
 			224, 142, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 1, 136, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 175, 0,
 			1, 136, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 1, 136, 175, 224, 178, 174, 224, 138, 175,
@@ -44414,2678 +32673,2062 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			174, 190, 224, 174, 178, 0, 1, 141, 175, 224, 163, 174, 224, 134, 174, 224, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224,
 			175, 136, 0, 1, 141, 175, 224, 163, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224,
 			175, 136, 0, 1, 141, 175, 224, 163, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 181, 224, 175, 136, 0,
-			1, 141, 175, 224, 163, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 180, 224, 175, 129, 0, 1, 141, 175, 224, 169, 174, 224, 137, 174,
-			224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 142, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175,
-			224, 169, 174, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 159, 174, 224, 137, 174,
-			224, 2, 224, 174, 191, 224, 174, 177, 0, 1, 141, 175, 224, 169, 174, 224, 164, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 178, 0, 1,
-			141, 175, 224, 169, 174, 224, 164, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 164, 174, 224,
-			135, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174,
-			159, 0, 1, 141, 175, 224, 169, 174, 224, 176, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224,
-			169, 174, 224, 181, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 170, 174, 224, 2, 17, 66, 0, 1, 141, 175,
-			224, 174, 174, 224, 133, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 176, 0, 1, 141, 175, 224, 174, 174, 224, 135, 174, 224, 2, 224,
-			175, 128, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178, 0, 1, 141, 175, 224, 174, 174, 224, 135, 174, 224, 2, 224, 175, 139, 224,
-			174, 154, 224, 174, 191, 224, 174, 183, 224, 174, 169, 0, 1, 141, 175, 224, 174, 174, 224, 142, 174, 224, 2, 224, 175, 139, 224, 174, 176, 224,
-			174, 191, 224, 174, 175, 224, 174, 178, 0, 1, 141, 175, 224, 174, 174, 224, 143, 174, 224, 2, 224, 174, 190, 32, 0, 1, 141, 175, 224, 174,
-			174, 224, 159, 174, 224, 135, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 174, 176, 0, 1, 141, 175, 224, 174, 174, 224, 179, 174, 224, 135,
-			174, 224, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 0, 1, 141, 175, 224, 174, 174, 224, 190, 174, 224, 164, 174, 224, 18, 68, 2, 224,
-			174, 190, 0, 1, 141, 175, 224, 174, 174, 224, 190, 174, 224, 164, 174, 224, 129, 175, 224, 164, 174, 224, 18, 68, 2, 224, 174, 190, 0, 1,
-			141, 175, 224, 174, 174, 224, 190, 174, 224, 164, 174, 224, 129, 175, 224, 181, 174, 224, 179, 174, 224, 181, 174, 224, 141, 175, 224, 181, 174, 224,
-			18, 68, 2, 224, 174, 190, 0, 1, 141, 175, 224, 174, 174, 224, 190, 174, 224, 174, 174, 224, 134, 174, 224, 2, 224, 174, 190, 0, 1, 141,
-			175, 224, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 1, 141, 175, 224, 175, 174, 224, 135, 175, 224, 164,
-			174, 224, 2, 224, 174, 191, 224, 174, 177, 224, 175, 136, 0, 1, 141, 175, 224, 176, 174, 224, 179, 174, 224, 181, 174, 224, 2, 224, 174, 191,
-			224, 174, 177, 224, 175, 136, 0, 1, 141, 175, 224, 176, 174, 224, 181, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175,
-			224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 142, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 1, 141, 175, 224, 176, 174, 224, 191, 174,
-			224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174,
-			224, 2, 224, 174, 190, 224, 174, 175, 224, 175, 129, 0, 1, 141, 175, 224, 178, 174, 224, 181, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224,
-			174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 1, 141, 175, 224, 179, 174, 224, 134, 174, 224, 2, 224, 174, 191, 224,
-			174, 159, 224, 174, 191, 0, 1, 141, 175, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 176, 174, 224, 181, 174, 224, 18, 68, 2, 224, 174,
-			190, 224, 174, 159, 0, 1, 141, 175, 224, 179, 174, 224, 181, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 184,
-			174, 224, 141, 175, 224, 169, 174, 224, 135, 174, 224, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 1, 146,
-			174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 1, 154, 174, 224, 141, 175, 224, 158, 174, 224, 170,
-			174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 129,
-			224, 174, 164, 224, 174, 169, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			224, 174, 191, 224, 174, 176, 0, 1, 159, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 159, 174, 224, 141, 175, 224, 163,
-			174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 1, 164, 174, 224, 2, 224, 174, 190, 0, 1, 170, 174, 224, 137,
-			174, 224, 2, 224, 175, 128, 224, 174, 159, 0, 1, 174, 174, 224, 2, 224, 174, 190, 0, 1, 174, 174, 224, 164, 174, 224, 141, 175, 224, 164,
-			174, 224, 137, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 190, 174, 224, 164,
-			174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 1, 191, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 191, 174, 224, 181,
-			174, 224, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 1, 191, 174, 224, 159, 174, 224, 133, 174, 224, 2,
-			224, 174, 190, 224, 174, 181, 224, 174, 191, 0, 1, 191, 174, 224, 159, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 138, 224, 174, 176,
-			224, 175, 129, 0, 1, 191, 174, 224, 159, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 191, 174, 224, 164, 174, 224, 129,
-			175, 224, 177, 174, 224, 137, 174, 224, 2, 224, 175, 130, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 1, 191, 174, 224, 169, 174, 224, 141,
-			175, 224, 149, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 191,
-			174, 224, 169, 174, 224, 191, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 191, 174, 224, 176, 174, 224, 142, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129,
-			0, 1, 191, 174, 224, 178, 174, 224, 141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 1, 191, 174, 224, 178, 174, 224, 159, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 175, 129,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 191, 174, 224, 180, 174, 224, 138, 175, 224, 174, 174, 224, 2,
-			224, 175, 134, 224, 174, 175, 224, 174, 176, 224, 175, 141, 0, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
-			174, 178, 224, 175, 136, 0, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 2, 224, 174, 190, 224, 174, 178,
-			224, 175, 141, 32, 0, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 2, 224, 174, 191, 224, 174, 177, 224, 174, 149, 224,
-			175, 129, 12, 0, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224, 175, 136, 0, 2, 224, 175, 129, 224, 174, 176, 0, 2,
-			224, 175, 129, 224, 174, 177, 25, 0, 2, 224, 175, 130, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 0, 2, 224, 175, 130, 224,
-			174, 176, 0, 2, 224, 175, 134, 224, 174, 177, 0, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 2, 224,
-			175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 32, 0, 2, 224, 175, 135, 224, 174, 176, 224, 175, 141, 32, 0, 2, 224,
-			175, 138, 224, 174, 176, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 129, 32, 0, 2, 224, 175, 138, 224, 174, 180, 224,
-			175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 174, 190, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164,
-			224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174,
-			164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224,
-			174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180,
-			224, 175, 129, 224, 174, 164, 224, 175, 129, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 129, 224, 174,
-			174, 224, 175, 135, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32,
-			12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 135, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175,
-			129, 224, 174, 164, 224, 175, 139, 32, 12, 0, 2, 224, 175, 139, 224, 174, 149, 32, 0, 2, 224, 175, 139, 224, 174, 149, 224, 174, 181, 224,
-			174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 32, 0, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224,
-			175, 141, 224, 174, 177, 0, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 177, 0, 2, 224, 175, 139, 224, 174, 149, 224, 175, 129,
-			224, 174, 174, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 135,
-			32, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 12, 0, 2, 224, 175,
-			139, 224, 174, 164, 224, 175, 129, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 12, 0, 2, 224, 175,
-			139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 134, 224, 174, 178, 224,
-			175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 135, 32, 12, 0, 2,
-			224, 175, 139, 224, 174, 164, 224, 175, 139, 32, 12, 0, 2, 224, 175, 139, 224, 174, 169, 32, 0, 2, 224, 175, 139, 224, 174, 169, 224, 174,
-			164, 224, 175, 129, 32, 0, 2, 224, 175, 139, 224, 174, 169, 224, 174, 190, 0, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 177,
-			12, 0, 2, 224, 175, 139, 224, 174, 175, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 2, 224, 175, 139, 224, 174, 175, 224, 175, 141, 0,
-			2, 224, 175, 139, 224, 174, 178, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 149, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174,
-			178, 224, 174, 154, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 164, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174,
-			178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 141, 32, 12, 0, 2, 224, 175, 139, 224, 174, 178, 224,
-			174, 170, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 181, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 2, 224,
-			175, 139, 224, 174, 178, 224, 174, 181, 224, 175, 135, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32,
-			0, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 32, 12, 0, 2, 224, 175, 139, 224, 174, 181, 224, 174, 164, 0, 8, 2, 17, 66, 0,
-			8, 2, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224,
-			175, 141, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 163, 224,
-			175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0,
-			8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 32, 0, 8, 2, 224, 174, 190,
-			224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 18, 81, 0, 8, 2,
-			224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 135, 224, 174, 176, 0, 8, 2, 224, 174, 190,
-			224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 176,
-			224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 190, 0, 8, 2,
-			224, 174, 190, 224, 174, 178, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 183, 224, 175, 135,
-			224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 181, 224, 174, 191, 32, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 159, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224,
-			174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224,
-			174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224,
-			174, 190, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175, 128, 224,
-			174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 32, 224, 174, 174, 224, 175, 129,
-			224, 174, 149, 224, 174, 174, 224, 174, 164, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 32, 224, 174, 174, 224, 175, 129, 224, 174,
-			185, 224, 174, 174, 224, 174, 164, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174,
-			159, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 224, 175,
-			141, 224, 174, 159, 0, 8, 2, 224, 175, 136, 224, 174, 178, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175,
-			141, 224, 174, 174, 224, 174, 169, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174,
-			149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 224, 174, 190, 224, 174, 169, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 175,
-			141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 139, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 174, 191, 224, 174, 178, 0, 8,
-			2, 224, 175, 139, 224, 174, 184, 224, 175, 141, 32, 18, 87, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 8,
-			32, 129, 175, 224, 159, 174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 135, 0, 8, 32, 129,
-			175, 224, 159, 174, 224, 190, 174, 224, 175, 174, 224, 136, 175, 224, 179, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 174,
-			224, 175, 141, 224, 174, 170, 224, 175, 135, 0, 8, 128, 175, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 8, 128,
-			175, 224, 164, 174, 224, 2, 224, 174, 190, 0, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 175, 134, 224, 174, 176,
-			224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 129, 175, 224, 154,
-			174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 129, 175, 224, 159, 174, 224, 130, 175, 224, 154, 174, 224, 2,
-			224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 129, 175, 224, 159, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 175, 138, 224, 174, 177,
-			224, 174, 191, 0, 8, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 129,
-			175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 8, 129, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190,
-			224, 174, 181, 0, 8, 129, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 164, 174, 224, 2, 224, 175, 138, 224, 174, 159, 224, 174, 191,
-			0, 8, 129, 175, 224, 176, 174, 224, 2, 224, 175, 136, 224, 174, 175, 224, 174, 190, 0, 8, 129, 175, 224, 176, 174, 224, 191, 174, 224, 181,
-			174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 191, 0, 8, 129, 175, 224, 177, 174, 224, 135, 175, 224, 181,
-			174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 8, 129,
-			175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 177, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 175, 134,
-			224, 174, 175, 224, 174, 176, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154,
-			0, 8, 129, 175, 224, 177, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 8, 130, 175, 224, 170,
-			174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 174, 174, 224, 175, 141, 32, 0, 8, 135, 175, 224, 159, 174, 224, 2, 224, 175, 141, 0, 8,
-			135, 175, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 179, 0, 8, 136, 175, 224, 149, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174,
-			191, 0, 8, 136, 175, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 154, 174, 224, 181, 174, 224, 2, 224, 174,
-			190, 224, 174, 159, 0, 8, 136, 175, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 136, 175, 224,
-			159, 174, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8,
-			136, 175, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 8, 136, 175, 224, 176, 174, 224,
-			191, 174, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 177, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174,
-			190, 224, 174, 159, 0, 8, 136, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 8, 136, 175, 224,
-			177, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 136, 175, 224, 178, 174, 224, 181, 174, 224,
-			2, 224, 175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 139, 0, 8, 141, 175, 224,
-			149, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 12, 0, 8, 141, 175, 224, 156, 174,
-			224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 175, 0, 8, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224,
-			175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 163, 174, 224, 129, 175, 224, 168, 174, 224, 2, 224, 175, 129, 224,
-			174, 178, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 141, 175, 224, 163, 174,
-			224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 175, 136, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174,
-			224, 2, 224, 175, 138, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 163, 174, 224, 176, 174, 224, 129, 175, 224, 174, 174,
-			224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 128, 175, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224,
-			174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8, 141,
-			175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 136, 0, 8, 141,
-			175, 224, 169, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 8, 141, 175, 224, 169, 174, 224, 164,
-			174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 181, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129,
-			0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 149,
-			0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 177, 224, 174, 191, 0, 8, 141, 175, 224, 174,
-			174, 224, 129, 175, 224, 164, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 176,
-			174, 224, 164, 174, 224, 2, 224, 174, 190, 32, 0, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 176, 174, 224, 181, 174, 224, 2, 224, 174,
-			190, 32, 0, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 177, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190, 32, 0, 8, 141,
-			175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2,
-			224, 175, 130, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2,
-			224, 175, 134, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 154, 0, 8, 141,
-			175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 184, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 175, 140,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 174, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2,
-			224, 175, 139, 224, 174, 159, 0, 8, 141, 175, 224, 174, 174, 224, 178, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 141, 175, 224, 174,
-			174, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 174, 176, 0, 8, 141, 175, 224, 174, 174, 224, 178,
-			174, 224, 190, 174, 224, 178, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 141, 175, 224, 174, 174, 224, 180,
-			174, 224, 170, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224, 185, 174, 224, 2,
-			224, 174, 191, 0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 154, 224, 174, 191, 224, 174, 183,
-			224, 174, 169, 0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159,
-			0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 190,
-			0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224, 178, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 174,
-			174, 224, 190, 174, 224, 183, 174, 224, 2, 224, 175, 130, 0, 8, 141, 175, 224, 174, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191,
-			224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 175, 129, 0, 8, 141, 175, 224, 175, 174, 224, 134,
-			175, 224, 174, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 175, 174, 224, 138, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 8, 141,
-			175, 224, 176, 174, 224, 135, 175, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 8, 141, 175, 224, 176, 174, 224, 149,
-			174, 224, 129, 175, 224, 168, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 179,
-			174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 138, 224, 174, 180, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 154,
-			174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 138, 175, 224, 164, 174, 224, 2, 224, 175, 138,
-			224, 174, 176, 224, 175, 129, 224, 174, 179, 0, 8, 141, 175, 224, 178, 174, 224, 139, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 181,
-			224, 175, 136, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141,
-			175, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 177, 224, 175, 136, 0, 8, 141, 175, 224, 178, 174, 224, 191,
-			174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 178, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 0, 8, 141,
-			175, 224, 178, 174, 224, 191, 174, 224, 183, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 179, 174, 224, 128, 175, 224, 174, 174, 224, 2,
-			224, 174, 190, 224, 174, 176, 0, 8, 141, 175, 224, 180, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 179, 0, 8, 141,
-			175, 224, 180, 174, 224, 190, 174, 224, 175, 174, 224, 2, 224, 174, 190, 224, 174, 163, 0, 8, 149, 174, 224, 2, 224, 174, 191, 224, 174, 178,
-			224, 174, 181, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 8, 154, 174, 224, 141, 175, 224, 158, 174, 224, 170, 174, 224, 2, 224, 174, 190,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 159, 174, 224, 141, 175, 224, 159, 174, 224, 170, 174, 224, 2,
-			224, 174, 190, 224, 174, 159, 0, 8, 159, 174, 224, 141, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141,
-			224, 174, 159, 0, 8, 159, 174, 224, 141, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 174, 190,
-			224, 174, 149, 0, 8, 159, 174, 224, 181, 174, 224, 2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 136, 0, 8, 164,
-			174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 190, 224, 174, 163, 0, 8, 174, 174, 224, 141, 175, 224, 176,
-			174, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 174, 174, 224, 141,
-			175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 0, 8, 175, 174, 224, 191, 174, 224, 178, 174, 224, 149,
-			174, 224, 2, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 176, 174, 224, 128, 175, 224, 181,
-			174, 224, 2, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 176, 174, 224, 190, 174, 224, 174,
-			174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 8, 176, 174, 224, 191, 174, 224, 149,
-			174, 224, 141, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 176, 174, 224, 191, 174, 224, 170,
-			174, 224, 2, 224, 175, 139, 18, 69, 0, 8, 178, 174, 224, 170, 174, 224, 2, 224, 175, 135, 224, 174, 176, 0, 8, 178, 174, 224, 191, 174,
-			224, 154, 174, 224, 2, 224, 175, 135, 224, 174, 176, 0, 8, 181, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 183, 0, 8, 190, 174,
-			224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 0,
-			8, 190, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 176, 0, 8, 191, 174, 224, 18, 69, 141, 175, 224, 169, 174, 224,
-			191, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 8, 191, 174, 224, 154, 174, 224, 141, 175, 224, 169, 174, 224,
-			191, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 191, 174, 224, 164, 174, 224, 129, 175, 224,
-			164, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 191, 174, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 174,
-			191, 0, 8, 191, 174, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 191, 174, 224, 177, 174, 224, 129, 175, 224,
-			149, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 191, 174, 224, 177, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174,
-			159, 224, 174, 191, 0, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 191, 32, 0, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 191, 224,
-			174, 175, 224, 174, 191, 0, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 175, 129, 0, 8, 191, 174, 224, 178, 174,
-			224, 2, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 191, 174, 224, 180, 174, 224, 170, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0,
-			8, 191, 174, 224, 180, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 191, 174, 224, 180, 174, 224, 181, 174, 224, 2, 224,
-			174, 190, 224, 174, 176, 0, 8, 191, 174, 224, 180, 174, 224, 181, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 191, 174, 224, 181, 174,
-			224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 191, 174, 224, 183, 174, 224, 191, 174, 224, 176, 174, 224, 2, 224, 174, 191, 224,
-			174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 1, 139, 175, 224, 176, 174, 224, 143, 174, 224, 2, 224, 174, 179, 224, 175, 135, 224,
-			174, 169, 0, 224, 174, 191, 1, 141, 175, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0,
-			224, 174, 191, 1, 141, 175, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191,
-			1, 141, 175, 224, 170, 174, 224, 129, 175, 224, 154, 174, 224, 176, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224,
-			174, 168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 156, 174, 224, 190, 174, 224, 176, 174,
-			224, 2, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1, 141, 175,
-			224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 18, 68, 2, 224, 174, 176, 224, 174, 179, 224, 174, 175, 0, 224, 174, 191, 1,
-			141, 175, 224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 18, 68, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174,
-			191, 1, 141, 175, 224, 170, 174, 224, 169, 174, 224, 156, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175,
-			224, 174, 176, 0, 224, 174, 191, 1, 141, 175, 224, 183, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 175, 224, 175, 139,
-			224, 174, 149, 0, 224, 174, 191, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224,
-			174, 159, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 178, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224,
-			174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 175, 141, 224, 174, 158, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 154, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224,
-			174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 169, 224, 175, 141, 224, 174, 168, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 154, 224, 174, 169, 224, 175, 141, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 181, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224,
-			174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 169, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224,
-			175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224,
-			174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 156, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 163, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 174, 190, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 164, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224,
-			174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 174, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190, 224,
-			174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224,
-			175, 128, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 164, 224, 175, 135, 224, 174, 183, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 139, 224, 174, 183, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 183, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 159, 224, 175, 141, 224,
-			174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 135, 224,
-			174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 169, 224, 174, 190, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 190, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 174, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224,
-			175, 139, 224, 174, 183, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
-			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
-			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224,
-			175, 139, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 175, 139, 224, 174, 154, 224, 174, 169, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 175, 224, 175, 139, 224, 174, 156, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 178, 224,
-			174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 179, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224,
-			174, 149, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 179, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 185, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 128, 224, 174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224,
-			175, 128, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 181, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 183, 224, 174, 176, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 185, 224, 174, 178, 224, 174, 190, 224, 174, 164, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 190, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
-			174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
-			174, 163, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168,
-			224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164,
-			224, 174, 191, 224, 174, 175, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174,
-			191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174,
-			164, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 174, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
-			174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 174, 178, 224, 175, 141, 224, 174, 175, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
-			174, 174, 224, 174, 191, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224,
-			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 169, 224, 175, 141, 18, 69, 224, 174, 191, 224, 174, 170, 224, 174, 178, 0, 224, 174, 191, 8,
-			2, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174,
-			175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174,
-			164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224,
-			174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174,
-			175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174,
-			174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			191, 224, 174, 175, 224, 174, 190, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 174, 224,
-			174, 163, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224,
-			174, 159, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224,
-			174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 175, 129, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			175, 134, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 139, 224,
-			174, 149, 224, 174, 191, 224, 174, 164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224,
-			174, 179, 224, 174, 184, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 179,
-			224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 128,
-			224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 135, 0, 224, 174, 191, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184,
-			174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8, 129, 175, 224, 163, 174, 224, 141, 175, 224, 183,
-			174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174, 224, 169,
-			174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174, 224, 174, 174, 224, 141,
-			175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174, 224, 176, 174, 224, 181,
-			174, 224, 2, 224, 174, 176, 18, 69, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174, 224, 190, 174, 224, 18, 71,
-			174, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 141, 175, 224, 177, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174,
-			176, 224, 174, 175, 224, 175, 139, 224, 174, 149, 0, 224, 174, 191, 8, 141, 175, 224, 177, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174,
-			176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 174, 191, 8, 141, 175, 224, 177, 174, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174,
-			176, 0, 224, 174, 191, 8, 149, 174, 224, 129, 175, 224, 174, 174, 224, 141, 175, 224, 163, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174,
-			191, 224, 174, 175, 0, 224, 174, 191, 8, 149, 174, 224, 129, 175, 224, 174, 174, 224, 141, 175, 224, 163, 174, 224, 183, 174, 224, 2, 224, 174,
-			176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 181, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174,
-			175, 0, 224, 174, 191, 8, 191, 174, 224, 174, 174, 224, 129, 175, 224, 154, 174, 224, 141, 175, 224, 159, 174, 224, 178, 174, 224, 2, 224, 174,
-			176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 191, 174, 224, 174, 174, 224, 141, 175, 224, 183, 174, 224, 141, 175, 224, 149, 174, 224,
-			178, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 191, 174, 224, 176, 174, 224, 185, 174, 224, 2, 224, 174,
-			176, 224, 174, 154, 224, 174, 190, 224, 174, 164, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174,
-			164, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 169, 0, 224,
-			175, 129, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 159, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 224, 175, 129, 8,
-			2, 224, 174, 179, 224, 175, 130, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 0, 224, 175, 141, 2, 32, 224, 174, 170, 0, 224,
-			175, 141, 2, 224, 174, 170, 0, 224, 175, 141, 8, 135, 175, 224, 149, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 176, 224, 174, 191,
-			0, 224, 175, 141, 8, 139, 175, 224, 170, 174, 224, 0, 224, 175, 141, 8, 149, 174, 224, 190, 174, 224, 178, 174, 224, 0, 224, 175, 141, 8,
-			154, 174, 224, 2, 224, 174, 164, 32, 0, 224, 175, 141, 8, 154, 174, 224, 2, 224, 174, 164, 224, 174, 176, 224, 174, 191, 224, 174, 183, 224,
-			174, 191, 0, 224, 175, 141, 8, 154, 174, 224, 2, 224, 174, 164, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 176, 0, 224, 175, 141,
-			8, 190, 174, 224, 159, 174, 224, 141, 175, 224, 149, 174, 224, 141, 175, 224, 184, 174, 224, 134, 175, 224, 159, 174, 224, 0, 224, 174, 191, 224,
-			174, 176, 1, 141, 175, 224, 184, 174, 224, 141, 175, 224, 149, 174, 224, 142, 174, 224, 2, 224, 174, 184, 3, 48, 34, 36, 0, 224, 174, 191,
-			224, 174, 176, 224, 174, 191, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 181, 3, 48, 34, 37, 47, 0, 224, 174, 191, 224, 174, 176, 224,
-			174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 178, 3, 48, 34, 37, 50,
-			89, 37, 48, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190,
-			3, 48, 34, 37, 57, 109, 68, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224,
-			174, 176, 3, 48, 34, 37, 66, 139, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3,
-			48, 34, 37, 66, 139, 148, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 159, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 191,
-			224, 174, 175, 3, 48, 34, 37, 139, 0, 4, 224, 175, 129, 224, 174, 176, 224, 174, 131, 224, 174, 170, 8, 2, 18, 69, 224, 174, 176, 3,
-			48, 34, 39, 83, 109, 0, 224, 175, 129, 224, 174, 176, 224, 174, 170, 8, 2, 18, 69, 224, 174, 176, 0, 224, 175, 129, 224, 174, 176, 224,
-			174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 129, 224, 174, 176, 224, 175, 138, 224, 174, 170, 8, 2, 224, 174,
-			154, 224, 174, 176, 0, 224, 175, 129, 224, 174, 176, 224, 175, 138, 224, 174, 170, 8, 2, 224, 174, 184, 224, 174, 176, 0, 224, 175, 129, 224,
-			174, 176, 224, 175, 138, 224, 174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 174, 170, 224,
-			175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 175, 138, 224, 174, 170, 8, 2, 224, 174, 154, 224, 174,
-			176, 0, 224, 175, 141, 224, 174, 176, 224, 175, 138, 224, 174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 4, 224, 174, 191,
-			224, 174, 176, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 183, 3, 48, 34, 109, 47, 0, 224,
-			174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 175, 224, 174, 159, 224, 175, 141, 224, 174, 154, 0, 224, 174, 191, 224,
-			174, 176, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 175, 224, 175, 135, 224, 174, 149, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 149,
-			2, 224, 174, 190, 224, 174, 183, 3, 48, 34, 109, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 149, 8, 141, 175, 224, 170, 174, 224, 169,
-			174, 224, 190, 174, 224, 158, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 224, 174, 176, 224, 174, 149, 8, 169, 174, 224, 190, 174, 224, 158,
-			174, 224, 2, 224, 174, 190, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 154, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 174, 174, 224,
-			2, 224, 174, 190, 224, 174, 176, 3, 48, 34, 109, 76, 0, 224, 174, 191, 224, 174, 176, 224, 174, 154, 8, 2, 224, 174, 190, 224, 174, 176,
-			0, 224, 174, 191, 224, 174, 176, 224, 174, 154, 224, 175, 141, 2, 224, 174, 169, 224, 175, 136, 3, 48, 34, 109, 76, 12, 37, 0, 224, 174,
-			191, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 178, 3, 48, 34,
-			118, 49, 139, 37, 49, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 163, 224, 175,
-			141, 224, 174, 159, 8, 3, 48, 34, 118, 84, 37, 140, 109, 66, 139, 148, 0, 224, 175, 141, 224, 174, 176, 224, 175, 139, 224, 174, 159, 8,
-			2, 224, 174, 190, 224, 174, 169, 3, 48, 34, 119, 47, 0, 224, 175, 129, 224, 174, 176, 224, 175, 139, 224, 174, 159, 8, 2, 224, 174, 190,
-			224, 174, 169, 3, 48, 34, 119, 139, 0, 224, 175, 129, 224, 174, 176, 224, 175, 130, 224, 174, 170, 8, 3, 48, 34, 123, 83, 148, 0, 224,
-			174, 191, 224, 174, 176, 224, 175, 136, 224, 174, 181, 224, 175, 135, 224, 174, 159, 8, 3, 48, 34, 134, 84, 114, 139, 148, 0, 224, 175, 134,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 3, 48, 36, 66,
-			139, 109, 0, 4, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 190, 32, 3, 48, 36, 67, 75, 0, 224, 175,
-			134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 0, 4, 224, 174, 191, 1,
-			32, 141, 175, 224, 170, 174, 224, 136, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32,
-			3, 48, 37, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 32, 224, 174, 181, 224, 174, 191, 224, 174,
-			159, 224, 175, 136, 0, 224, 174, 191, 224, 174, 149, 8, 128, 175, 224, 164, 174, 224, 2, 224, 174, 190, 3, 48, 37, 49, 0, 224, 174, 191,
-			224, 174, 159, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 178, 3, 48, 37, 139, 109, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 8,
-			2, 224, 174, 164, 23, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164, 12, 3, 48, 40, 47, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 149, 224, 175, 141, 224, 174, 149, 3, 48, 40, 47, 47, 0, 4, 224, 175, 129,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 149, 3, 48, 40, 47, 47, 109, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 8, 2, 224, 174, 174, 224, 175, 141, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 224, 175,
-			129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 174, 224, 175, 141, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175,
-			129, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 174, 191, 0, 224,
-			175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 179, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8,
-			2, 224, 174, 180, 224, 174, 149, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 170, 8,
-			2, 224, 175, 129, 224, 174, 164, 3, 48, 40, 47, 47, 109, 65, 48, 0, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2,
-			224, 174, 190, 224, 174, 169, 3, 48, 40, 55, 81, 0, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 191, 224,
-			174, 153, 224, 175, 141, 3, 48, 40, 140, 140, 0, 4, 224, 175, 141, 224, 174, 164, 8, 154, 174, 224, 2, 224, 174, 174, 224, 174, 191, 32,
-			3, 48, 47, 109, 0, 224, 175, 141, 224, 174, 164, 8, 154, 174, 224, 2, 224, 174, 174, 224, 174, 191, 224, 174, 175, 0, 4, 224, 175, 141,
-			224, 174, 170, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 184, 224, 174, 190, 224, 174, 174, 224, 174, 191, 3, 48, 48, 0, 224, 175, 141,
-			224, 174, 170, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0,
-			224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18, 68, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 1, 18, 68, 2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18,
-			68, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18, 68, 2, 224, 174,
-			176, 224, 175, 135, 224, 174, 164, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 136, 175, 224, 154, 174, 224, 135, 174, 224, 2, 224, 174,
-			176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 136, 175, 224, 154, 174, 224, 135, 174, 224,
-			2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 136, 175, 224, 176, 174, 224, 137, 174, 224,
-			2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 149, 174, 224, 133, 174, 224,
-			2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 149, 174, 224, 191, 174, 224,
-			164, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 154, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224,
-			174, 191, 1, 154, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 1, 164, 174, 224, 141, 175, 224, 164, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174,
-			190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 130, 175, 224,
-			149, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 169, 224, 175,
-			136, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 129, 175, 224, 159, 174, 224, 141, 175, 224, 159, 174, 224, 190, 174, 224, 149, 174, 224,
-			2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 224, 174, 154, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 129, 175, 224, 159, 174, 224,
-			141, 175, 224, 163, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 8, 136, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 8, 136, 175, 224, 159, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 8, 136, 175, 224, 178, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 224, 174, 154, 0, 224,
-			175, 141, 224, 174, 170, 224, 174, 191, 8, 141, 175, 224, 176, 174, 224, 128, 175, 224, 168, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174,
-			190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 159, 174, 224, 141, 175, 224, 163, 174, 224, 154, 174, 224, 2, 224, 174,
-			176, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 164, 174, 224, 141, 175, 224,
-			164, 174, 224, 176, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8,
-			169, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8,
-			169, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 224, 174, 154, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8,
-			169, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 224, 174, 170, 224,
-			174, 191, 8, 175, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 174,
-			190, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 178, 174, 224, 156, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174,
-			149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 178, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 176, 224, 174, 170, 224, 175,
-			129, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 181, 174, 224, 164, 174, 224, 190, 174, 224, 175, 174, 224, 2, 224, 174, 176, 224, 174,
-			149, 224, 174, 190, 224, 174, 154, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 181, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174,
-			176, 224, 174, 149, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174, 224, 18, 75, 146, 174, 224, 2, 224, 174, 176,
-			224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174, 224, 163, 174, 224, 174, 174, 224, 2,
-			224, 174, 176, 224, 174, 181, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174, 224, 164, 174, 224, 168, 174, 224, 2,
-			224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174, 224, 164, 174, 224, 190,
-			174, 224, 156, 174, 224, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191,
-			174, 224, 179, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174,
-			170, 224, 174, 191, 224, 174, 176, 224, 174, 154, 1, 18, 68, 2, 224, 174, 190, 224, 174, 176, 3, 48, 48, 34, 109, 76, 0, 224, 175, 141,
-			224, 174, 170, 8, 191, 174, 224, 176, 174, 224, 2, 224, 174, 169, 224, 175, 141, 32, 18, 98, 3, 48, 48, 109, 0, 4, 224, 175, 141, 224,
-			174, 170, 8, 141, 175, 224, 176, 174, 224, 149, 174, 224, 164, 174, 224, 3, 48, 48, 148, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224,
-			176, 174, 224, 149, 174, 224, 168, 174, 224, 0, 224, 175, 141, 224, 174, 149, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176,
-			224, 175, 141, 224, 174, 169, 3, 48, 49, 0, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 159, 8, 191, 174, 224, 185, 174, 224, 2,
-			224, 174, 191, 224, 174, 154, 3, 48, 50, 118, 139, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 176, 174, 224, 170, 174, 224, 2, 224,
-			174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 3, 48, 71, 0, 224, 175, 141, 224, 174, 154, 8, 176, 174, 224, 2, 224, 174, 176, 3,
-			48, 76, 109, 0, 4, 1, 21, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 12, 3, 48, 109, 0, 1, 129, 175, 224, 169, 174, 224, 133,
-			174, 224, 2, 224, 174, 174, 224, 174, 190, 0, 1, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 178,
-			224, 174, 181, 224, 174, 191, 0, 1, 129, 175, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 149, 0, 1, 129, 175, 224, 176, 174, 224, 146,
-			174, 224, 2, 224, 174, 149, 0, 1, 129, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 174, 224, 174, 190, 0, 1, 133,
-			174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 163, 224, 174, 190, 0, 1, 134, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 154,
-			224, 174, 169, 0, 1, 134, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 183, 224, 174, 169, 0, 1, 136, 175, 224, 164, 174, 224, 170,
-			174, 224, 2, 224, 174, 164, 224, 175, 136, 0, 1, 137, 174, 224, 2, 224, 174, 168, 224, 174, 191, 224, 174, 183, 0, 1, 137, 174, 224, 2,
-			224, 174, 168, 224, 175, 141, 224, 174, 168, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 154, 0, 1, 139, 175, 224, 159, 174, 224, 141,
-			175, 224, 149, 174, 224, 134, 174, 224, 2, 224, 174, 184, 0, 1, 139, 175, 224, 175, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 164,
-			224, 174, 191, 0, 1, 139, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 140, 175, 224, 176, 174, 224, 191,
-			174, 224, 164, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 180,
-			224, 174, 191, 0, 1, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 149, 224, 174, 178, 0, 1, 141, 175, 224, 169,
-			174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 0, 1, 141, 175, 224, 169, 174, 224, 191,
-			174, 224, 170, 174, 224, 2, 224, 174, 149, 224, 174, 178, 0, 1, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 164,
-			224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 12, 0, 1, 141, 175, 224, 170, 174, 224, 0, 1, 141, 175, 224, 174, 174, 224, 176,
-			174, 224, 149, 174, 224, 2, 224, 174, 159, 0, 1, 141, 175, 224, 174, 174, 224, 176, 174, 224, 149, 174, 224, 2, 224, 174, 177, 224, 175, 141,
-			0, 1, 141, 175, 224, 176, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224, 174, 169, 224, 174, 191, 0, 1, 141, 175, 224, 176, 174, 224, 175,
-			174, 224, 137, 174, 224, 2, 224, 174, 164, 224, 174, 181, 224, 174, 191, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 164,
-			224, 175, 141, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 174, 0, 1, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2,
-			224, 174, 169, 224, 174, 190, 0, 1, 141, 175, 224, 179, 174, 224, 134, 174, 224, 2, 224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 1, 147,
-			174, 224, 2, 224, 174, 169, 0, 1, 159, 174, 224, 181, 174, 224, 2, 224, 174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 0, 1, 159,
-			174, 224, 181, 174, 224, 2, 224, 174, 180, 0, 1, 164, 174, 224, 0, 1, 174, 174, 224, 0, 1, 176, 174, 224, 128, 175, 224, 181, 174, 224,
-			2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 1, 176, 174, 224, 128, 175, 224, 181, 174, 224,
-			2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 174, 174, 0, 1, 176, 174, 224,
-			191, 174, 224, 159, 174, 224, 141, 175, 224, 183, 174, 224, 190, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1,
-			190, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 137, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1,
-			191, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224, 174, 163, 224, 174, 191, 0, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 25, 0, 2,
-			224, 174, 159, 224, 174, 191, 0, 2, 224, 174, 177, 224, 175, 141, 224, 174, 177, 224, 174, 191, 32, 0, 8, 0, 8, 2, 224, 174, 159, 224,
-			175, 141, 224, 174, 159, 224, 174, 169, 32, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 169, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			32, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 158, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
-			174, 164, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 159, 0,
-			8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 183, 0, 8, 2, 224, 174, 178, 224, 174, 181, 224, 174, 190, 224,
-			174, 169, 224, 174, 181, 0, 8, 2, 224, 174, 181, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224,
-			174, 176, 0, 8, 32, 18, 79, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0,
-			8, 32, 18, 79, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 8, 32, 18, 79, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 174, 0, 8, 128, 175, 224, 164, 174, 224, 2, 224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 8, 129, 175,
-			224, 149, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 129, 175, 224, 149, 174, 224, 129, 175, 224, 170, 174,
-			224, 2, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 129, 175, 224, 159, 174, 224, 130, 175, 224, 174, 174, 224, 2, 224,
-			174, 169, 224, 174, 191, 0, 8, 129, 175, 224, 159, 174, 224, 130, 175, 224, 174, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224,
-			174, 149, 224, 175, 141, 0, 8, 129, 175, 224, 159, 174, 224, 138, 174, 224, 2, 224, 174, 175, 224, 174, 191, 224, 174, 176, 0, 8, 129, 175,
-			224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 129, 175, 224, 164, 174, 224, 141, 175, 224, 164, 174,
-			224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 179, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 149, 224,
-			175, 129, 224, 174, 164, 224, 174, 191, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 129, 175,
-			224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 175, 128, 224, 174, 178, 224, 174, 169, 224, 175, 136, 0,
-			8, 136, 175, 224, 159, 174, 224, 168, 174, 224, 2, 224, 174, 175, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 154, 224, 174, 191, 0,
-			8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 158, 224, 175, 141, 224, 174, 154, 0, 8, 141, 175, 224, 163, 174,
-			224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224,
-			174, 179, 224, 174, 191, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 163, 174, 224, 168, 174, 224, 2, 224, 174, 149, 224,
-			174, 178, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 163, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175,
-			224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191, 224, 174, 181, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224,
-			174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 178, 174, 224, 168, 174, 224, 2, 224, 174, 175, 0, 8, 141, 175, 224, 169, 174,
-			224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 170, 174,
-			224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 177, 224, 175, 141, 224,
-			174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 169, 224, 174, 191, 32, 0, 8, 141, 175, 224, 174, 174, 224, 149,
-			174, 224, 2, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 169,
-			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 169, 224, 174, 191,
-			224, 174, 175, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 178, 224, 175, 141, 0, 8, 141, 175, 224, 174, 174, 224, 170,
-			174, 224, 2, 224, 174, 176, 224, 175, 141, 32, 0, 8, 141, 175, 224, 176, 174, 224, 159, 174, 224, 138, 175, 224, 164, 174, 224, 2, 224, 174,
-			153, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174,
-			183, 224, 174, 169, 0, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 179, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174,
-			169, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 176, 224, 175, 129, 0, 8, 141, 175, 224, 178, 174, 224,
-			190, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174,
-			168, 224, 175, 141, 224, 174, 164, 0, 8, 141, 175, 224, 179, 174, 224, 128, 175, 224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8,
-			149, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 0, 8, 154, 174, 224,
-			190, 174, 224, 178, 174, 224, 136, 175, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 176, 174, 224, 191, 174, 224, 159, 174, 224,
-			141, 175, 224, 183, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 181, 174, 224, 191, 174, 224, 154, 174, 224,
-			2, 224, 174, 164, 0, 8, 190, 174, 224, 178, 174, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 190, 174, 224,
-			181, 174, 224, 2, 224, 174, 184, 0, 8, 191, 174, 224, 154, 174, 224, 191, 174, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174,
-			178, 0, 8, 191, 174, 224, 163, 174, 224, 174, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 181, 0, 8, 191, 174, 224,
-			180, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 177, 224, 174, 191, 0, 8, 191, 174, 224, 183, 174, 224, 191, 174, 224, 176, 174, 224,
-			2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 4, 224, 174, 164, 1, 129, 175, 224, 154, 174,
-			224, 170, 174, 224, 2, 224, 174, 191, 3, 48, 109, 47, 0, 224, 174, 164, 1, 190, 174, 224, 156, 174, 224, 176, 174, 224, 191, 174, 224, 170,
-			174, 224, 2, 224, 174, 191, 0, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149,
-			0, 4, 224, 174, 164, 224, 174, 191, 1, 129, 175, 224, 149, 174, 224, 176, 174, 224, 3, 48, 109, 47, 37, 0, 224, 174, 164, 224, 174, 191,
-			1, 129, 175, 224, 164, 174, 224, 135, 175, 224, 154, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224, 149, 174, 224,
-			176, 174, 224, 191, 174, 224, 170, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 156, 174, 224, 149, 174, 224, 0, 224, 174, 164, 224, 174, 191,
-			1, 159, 174, 224, 129, 175, 224, 149, 174, 224, 174, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 159, 174, 224, 149, 174, 224, 141, 175, 224,
-			153, 174, 224, 135, 175, 224, 181, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 163, 174, 224, 149, 174, 224, 0, 224, 174, 164, 224, 174, 191,
-			1, 190, 174, 224, 149, 174, 224, 191, 174, 224, 170, 174, 224, 141, 175, 224, 174, 174, 224, 133, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1,
-			190, 174, 224, 164, 174, 224, 128, 175, 224, 154, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 190, 174, 224, 175, 174, 224, 136, 175, 224, 179,
-			174, 224, 181, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 190, 174, 224, 175, 174, 224, 141, 175, 224, 164, 174, 224, 191, 174, 224, 181, 174,
-			224, 0, 224, 174, 164, 224, 174, 191, 1, 191, 174, 224, 163, 174, 224, 176, 174, 224, 164, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 191,
-			174, 224, 174, 174, 224, 141, 175, 224, 183, 174, 224, 141, 175, 224, 149, 174, 224, 178, 174, 224, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 8, 2, 32, 224, 174, 170, 224, 174, 164, 224, 174, 191, 3, 48, 109, 47, 47, 37,
-			34, 109, 48, 0, 224, 174, 164, 8, 141, 175, 224, 156, 174, 224, 178, 174, 224, 3, 48, 109, 47, 148, 0, 224, 174, 170, 224, 175, 141, 1,
-			141, 175, 224, 178, 174, 224, 133, 174, 224, 3, 48, 109, 48, 0, 224, 174, 149, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 175,
-			139, 224, 174, 159, 224, 174, 191, 3, 48, 109, 49, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163,
-			224, 175, 141, 224, 174, 159, 1, 133, 174, 224, 3, 48, 118, 34, 65, 36, 50, 139, 148, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224,
-			174, 159, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 191, 174, 224, 159, 174, 224, 3, 48, 118,
-			34, 139, 65, 36, 66, 139, 148, 0, 224, 174, 190, 224, 174, 175, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 224,
-			174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 133, 174, 224, 3, 48, 118, 57, 37, 66, 139, 65, 36, 50, 139, 148,
-			0, 4, 224, 174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224, 174, 191, 8, 2, 224, 174, 176, 3, 48, 118, 66, 37, 81, 0, 224,
-			174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8, 2, 224, 174, 176, 0, 224, 174, 190, 224,
-			174, 170, 8, 2, 224, 174, 168, 224, 174, 190, 224, 174, 154, 3, 48, 118, 71, 109, 0, 224, 174, 190, 224, 174, 170, 224, 174, 181, 224, 174,
-			191, 224, 174, 174, 224, 175, 139, 224, 174, 154, 224, 174, 169, 8, 3, 48, 118, 71, 109, 84, 37, 65, 119, 76, 109, 0, 224, 174, 190, 224,
-			174, 154, 224, 174, 191, 224, 174, 159, 8, 134, 175, 224, 159, 174, 224, 3, 48, 118, 89, 37, 139, 148, 0, 224, 174, 190, 224, 174, 154, 224,
-			175, 129, 224, 174, 170, 8, 2, 224, 174, 164, 3, 48, 118, 89, 122, 48, 109, 0, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 159,
-			1, 141, 175, 224, 176, 174, 224, 143, 174, 224, 3, 48, 119, 34, 139, 148, 0, 4, 1, 18, 67, 3, 48, 148, 0, 1, 136, 175, 224, 159,
-			174, 224, 168, 174, 224, 0, 1, 141, 175, 224, 174, 174, 224, 191, 174, 224, 178, 174, 224, 146, 174, 224, 0, 1, 141, 175, 224, 176, 174, 224,
-			159, 174, 224, 135, 174, 224, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 32, 0, 1, 141, 175, 224, 178, 174, 224, 149, 174, 224,
-			141, 175, 224, 153, 174, 224, 154, 174, 224, 0, 8, 128, 175, 224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 0, 8, 136, 175,
-			224, 178, 174, 224, 191, 174, 224, 168, 174, 224, 0, 8, 141, 175, 224, 169, 174, 224, 175, 174, 224, 170, 174, 224, 0, 8, 141, 175, 224, 174,
-			174, 224, 135, 175, 224, 149, 174, 224, 0, 8, 141, 175, 224, 174, 174, 224, 159, 174, 224, 141, 175, 224, 184, 174, 224, 0, 8, 141, 175, 224,
-			174, 174, 224, 190, 174, 224, 159, 174, 224, 141, 175, 224, 184, 174, 224, 0, 8, 141, 175, 224, 176, 174, 224, 128, 175, 224, 168, 174, 224, 0,
-			8, 141, 175, 224, 178, 174, 224, 138, 175, 224, 154, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 191, 174, 224, 181, 174, 224,
-			0, 8, 141, 175, 224, 178, 174, 224, 175, 174, 224, 134, 175, 224, 154, 174, 224, 0, 8, 191, 174, 224, 18, 75, 146, 174, 224, 0, 4, 1,
-			32, 46, 32, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191, 32, 46, 32, 224, 174, 154, 224, 174, 191, 3, 71, 0, 1, 32, 129, 175, 224,
-			164, 174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224,
-			164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 129, 175, 224, 164, 174, 224, 141, 175,
-			224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174,
-			224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 141, 175, 224, 169, 174, 224, 191, 174, 224, 179,
-			174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32,
-			164, 174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224,
-			164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 164, 174, 224, 141, 175, 224, 168, 174,
-			224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 149, 174,
-			224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 175, 174, 224, 136, 175, 224, 159, 174, 224, 129, 175, 224, 169,
-			174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181,
-			0, 1, 32, 175, 174, 224, 136, 175, 224, 159, 174, 224, 129, 175, 224, 169, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224,
-			153, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 128, 175, 224, 154, 174, 224, 149, 174, 224,
-			141, 175, 224, 153, 174, 224, 176, 174, 224, 129, 175, 224, 181, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 1,
-			128, 175, 224, 154, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 148, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 0, 1, 133, 174, 224, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 1, 141, 175, 224, 169, 174, 224, 133, 174, 224,
-			2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 1, 141, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224,
-			175, 141, 0, 1, 141, 175, 224, 169, 174, 224, 135, 174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 1, 141, 175, 224, 170, 174, 224, 191, 174,
-			224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 137, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224,
-			174, 190, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 1, 141, 175, 224, 174, 174,
-			224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 190,
-			0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 130,
-			224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 1, 141,
-			175, 224, 174, 174, 224, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 1, 141, 175, 224, 174, 174, 224, 138,
-			174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 1, 141, 175, 224, 174, 174, 224, 146, 174, 224, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129,
-			224, 174, 174, 224, 175, 141, 0, 1, 141, 175, 224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 133, 174, 224, 2,
-			224, 175, 135, 224, 174, 176, 224, 175, 141, 0, 1, 141, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 1,
-			141, 175, 224, 177, 174, 224, 164, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 1, 141, 175, 224, 177, 174, 224,
-			175, 174, 224, 135, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 178, 0, 1, 141, 175, 224, 178, 174, 224, 175, 174, 224, 135, 174, 224,
-			2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 1, 141, 175, 224, 183, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 129, 0,
-			1, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 154, 174, 224, 176, 174, 224, 133, 174, 224, 2, 224,
-			175, 139, 224, 174, 149, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 139, 224, 174, 149, 0, 1, 164, 174, 224, 2, 17,
-			66, 0, 1, 164, 174, 224, 129, 175, 224, 175, 174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 1, 164, 174, 224,
-			129, 175, 224, 175, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 1,
-			174, 174, 224, 2, 17, 66, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 163, 0, 1, 190, 174, 224, 149,
-			174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 148, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 149, 174, 224, 141,
-			175, 224, 153, 174, 224, 176, 174, 224, 179, 174, 224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 149, 174, 224, 190,
-			174, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 164, 174, 224, 128, 175, 224, 176, 174, 224, 170,
-			174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 191, 174, 224, 156, 174, 224, 2,
-			224, 174, 190, 224, 174, 164, 224, 175, 141, 0, 1, 190, 174, 224, 164, 174, 224, 174, 174, 224, 18, 71, 133, 174, 224, 2, 224, 174, 190, 224,
-			174, 164, 0, 1, 190, 174, 224, 164, 174, 224, 174, 174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 174, 174,
-			224, 190, 174, 224, 178, 174, 224, 141, 175, 224, 184, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 181, 174,
-			224, 168, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 2, 17, 66, 0, 8, 2, 17, 66, 28, 17, 12, 0, 8, 2,
-			18, 72, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224,
-			174, 190, 224, 174, 149, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224,
-			174, 149, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 181, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224,
-			175, 128, 224, 174, 176, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224,
-			174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224,
+			1, 141, 175, 224, 163, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 180, 224, 175, 129, 0, 1, 141, 175, 224, 169, 174, 224, 159, 174,
+			224, 137, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 191, 224,
+			174, 177, 0, 1, 141, 175, 224, 169, 174, 224, 164, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 178, 0, 1, 141, 175, 224, 169, 174, 224,
+			174, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 169, 174, 224, 176, 174, 224, 129, 175, 224, 174, 174, 224,
+			2, 224, 174, 190, 224, 174, 159, 0, 1, 141, 175, 224, 170, 174, 224, 2, 17, 66, 0, 1, 141, 175, 224, 174, 174, 224, 133, 174, 224, 2,
+			224, 175, 136, 224, 174, 175, 224, 174, 176, 0, 1, 141, 175, 224, 174, 174, 224, 135, 174, 224, 2, 224, 175, 128, 224, 174, 176, 224, 174, 191,
+			224, 174, 175, 224, 174, 178, 0, 1, 141, 175, 224, 174, 174, 224, 135, 174, 224, 2, 224, 175, 139, 224, 174, 154, 224, 174, 191, 224, 174, 183,
+			224, 174, 169, 0, 1, 141, 175, 224, 174, 174, 224, 142, 174, 224, 2, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 178,
+			0, 1, 141, 175, 224, 174, 174, 224, 143, 174, 224, 2, 224, 174, 190, 32, 0, 1, 141, 175, 224, 174, 174, 224, 159, 174, 224, 135, 174, 224,
+			2, 224, 175, 134, 224, 174, 175, 224, 174, 176, 0, 1, 141, 175, 224, 174, 174, 224, 179, 174, 224, 135, 174, 224, 2, 224, 175, 134, 224, 174,
+			163, 224, 175, 141, 0, 1, 141, 175, 224, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 1, 141, 175, 224,
+			175, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 191, 224, 174, 177, 224, 175, 136, 0, 1, 141, 175, 224, 176, 174, 224, 179, 174, 224,
+			181, 174, 224, 2, 224, 174, 191, 224, 174, 177, 224, 175, 136, 0, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 142, 174, 224,
+			2, 224, 174, 190, 224, 174, 176, 0, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174,
+			191, 224, 174, 159, 224, 174, 191, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 175, 224, 175, 129, 0, 1,
+			141, 175, 224, 178, 174, 224, 181, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174,
+			191, 0, 1, 141, 175, 224, 179, 174, 224, 134, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 1, 141, 175, 224, 184, 174, 224,
+			141, 175, 224, 169, 174, 224, 135, 174, 224, 2, 224, 175, 134, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 1, 146, 174, 224,
+			2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 1, 149, 174, 224, 2, 224, 174, 190, 0, 1, 154, 174, 224,
+			141, 175, 224, 158, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 1, 156, 174, 224, 190, 174, 224,
+			176, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 174, 169, 0, 1, 156, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 175, 129, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 159, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1,
+			159, 174, 224, 141, 175, 224, 163, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 1, 164, 174, 224, 2, 224, 174,
+			190, 0, 1, 170, 174, 224, 137, 174, 224, 2, 224, 175, 128, 224, 174, 159, 0, 1, 174, 174, 224, 2, 224, 174, 190, 0, 1, 174, 174, 224,
+			2, 224, 174, 190, 0, 1, 190, 174, 224, 149, 174, 224, 2, 224, 174, 190, 0, 1, 190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 1,
+			190, 174, 224, 164, 174, 224, 2, 224, 174, 190, 0, 1, 190, 174, 224, 164, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 174, 191, 0, 1,
+			190, 174, 224, 174, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 18, 75, 146, 174, 224, 2, 224, 175, 134, 0, 1, 191, 174, 224, 149,
+			174, 224, 141, 175, 224, 149, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 174, 190,
+			0, 1, 191, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 0, 1, 191, 174, 224, 159, 174, 224, 134,
+			175, 224, 181, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 1, 191, 174, 224, 159, 174, 224, 135, 174, 224, 2, 224, 174, 190,
+			224, 174, 159, 0, 1, 191, 174, 224, 164, 174, 224, 129, 175, 224, 177, 174, 224, 137, 174, 224, 2, 224, 175, 130, 224, 174, 163, 224, 175, 141,
+			224, 174, 159, 0, 1, 191, 174, 224, 169, 174, 224, 2, 224, 174, 190, 0, 1, 191, 174, 224, 169, 174, 224, 141, 175, 224, 149, 174, 224, 133,
+			174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 191, 174, 224, 169, 174, 224, 191,
+			174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191,
+			224, 174, 176, 0, 1, 191, 174, 224, 176, 174, 224, 142, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 1, 191, 174, 224, 178,
+			174, 224, 141, 175, 224, 178, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 130,
+			224, 174, 176, 0, 1, 191, 174, 224, 178, 174, 224, 159, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141,
+			224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 1, 191, 174, 224, 180, 174, 224, 138, 175, 224, 174, 174, 224, 2, 224, 175, 134, 224, 174, 175,
+			224, 174, 176, 224, 175, 141, 0, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 0,
+			2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175,
+			0, 2, 224, 174, 191, 224, 174, 177, 224, 174, 149, 224, 175, 129, 12, 0, 2, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 179, 224,
+			175, 136, 0, 2, 224, 175, 129, 224, 174, 176, 0, 2, 224, 175, 129, 224, 174, 177, 25, 0, 2, 224, 175, 130, 224, 174, 154, 224, 175, 141,
+			224, 174, 154, 224, 174, 191, 0, 2, 224, 175, 130, 224, 174, 176, 0, 2, 224, 175, 134, 224, 174, 177, 0, 2, 224, 175, 135, 224, 174, 159,
+			224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 32, 0, 2, 224,
+			175, 135, 224, 174, 176, 224, 175, 141, 32, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224,
+			174, 190, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174,
+			224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 32, 12,
+			0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224,
+			174, 174, 224, 174, 178, 224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 129, 32, 12, 0,
+			2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 135, 32, 12, 0, 2, 224, 175, 138, 224,
+			174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129,
+			224, 174, 164, 224, 175, 135, 32, 12, 0, 2, 224, 175, 138, 224, 174, 180, 224, 175, 129, 224, 174, 164, 224, 175, 139, 32, 12, 0, 2, 224,
+			175, 139, 224, 174, 149, 32, 0, 2, 224, 175, 139, 224, 174, 149, 224, 174, 181, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224,
+			175, 136, 32, 0, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 2, 224, 175, 139, 224, 174,
+			149, 224, 174, 191, 224, 174, 177, 0, 2, 224, 175, 139, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 2, 224, 175, 139,
+			224, 174, 164, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 135, 32, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 174,
+			191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 12, 0, 2, 224, 175,
+			139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175,
+			141, 32, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224,
+			175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 135, 32, 12, 0, 2, 224, 175, 139, 224, 174, 164, 224, 175, 139, 32, 12, 0,
+			2, 224, 175, 139, 224, 174, 169, 32, 0, 2, 224, 175, 139, 224, 174, 169, 224, 174, 164, 224, 175, 129, 32, 0, 2, 224, 175, 139, 224, 174,
+			169, 224, 174, 190, 0, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 177, 12, 0, 2, 224, 175, 139, 224, 174, 175, 224, 174, 191,
+			224, 174, 176, 224, 175, 129, 0, 2, 224, 175, 139, 224, 174, 175, 224, 175, 141, 0, 2, 224, 175, 139, 224, 174, 178, 32, 0, 2, 224, 175,
+			139, 224, 174, 178, 224, 174, 149, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 154, 224, 175, 141, 32, 0, 2, 224, 175,
+			139, 224, 174, 178, 224, 174, 164, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
+			190, 224, 174, 169, 224, 175, 141, 32, 12, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 170, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224,
+			174, 178, 224, 174, 181, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 174, 181, 224, 175, 135, 32,
+			0, 2, 224, 175, 139, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 2, 224, 175, 139, 224, 174, 178, 224, 175, 141, 32,
+			12, 0, 2, 224, 175, 139, 224, 174, 181, 224, 174, 164, 0, 8, 2, 17, 66, 0, 8, 2, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224,
+			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224,
+			174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 163, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
+			174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 32, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 18, 81, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 149, 224, 175, 129, 224, 174, 177, 224, 175, 136, 0, 8,
+			2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224,
+			174, 174, 224, 175, 135, 224, 174, 177, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 174, 224, 175, 135, 224, 174, 177, 224, 175, 141, 224, 174, 170, 224, 174, 159,
+			224, 175, 141, 224, 174, 159, 32, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
+			129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 174, 224, 175, 135, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 135, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224,
+			174, 170, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224,
+			174, 190, 224, 174, 178, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224,
+			174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 183, 224, 175, 135, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224,
+			174, 169, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 159, 224, 174, 169, 224, 175, 141, 0, 8, 2, 224,
+			174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 136, 0, 8, 2,
+			224, 174, 190, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 2,
+			224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 191,
+			224, 174, 159, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 32, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 174, 174, 224, 174,
+			164, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 32, 224, 174, 174, 224, 175, 129, 224, 174, 185, 224, 174, 174, 224, 174, 164, 0,
+			8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224,
+			174, 190, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174, 159, 0, 8, 2, 224, 175, 135, 224,
+			174, 176, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
+			175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 169, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0,
+			8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224,
+			174, 184, 224, 175, 141, 32, 18, 87, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 8, 32, 129, 175, 224, 159,
+			174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 135, 0, 8, 32, 129, 175, 224, 159, 174, 224,
+			190, 174, 224, 175, 174, 224, 136, 175, 224, 179, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174,
+			170, 224, 175, 135, 0, 8, 128, 175, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 8, 128, 175, 224, 164, 174, 224,
+			2, 224, 174, 190, 0, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174,
+			174, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 129, 175, 224, 159, 174, 224, 141, 175, 224,
+			159, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 129, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174,
+			164, 0, 8, 129, 175, 224, 159, 174, 224, 191, 174, 224, 181, 174, 224, 164, 174, 224, 2, 224, 175, 138, 224, 174, 159, 224, 174, 191, 0, 8,
+			129, 175, 224, 177, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224,
+			2, 224, 174, 190, 224, 174, 164, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 177, 0, 8, 129, 175, 224,
+			177, 174, 224, 174, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 129, 175, 224, 177, 174, 224, 191, 174, 224,
+			154, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 136, 0, 8, 130, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 174,
+			174, 224, 175, 141, 32, 0, 8, 135, 175, 224, 159, 174, 224, 2, 224, 175, 141, 0, 8, 135, 175, 224, 168, 174, 224, 2, 224, 174, 190, 224,
+			174, 179, 0, 8, 136, 175, 224, 149, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 8, 136, 175, 224, 149, 174, 224, 2, 224,
+			175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 154, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 136, 175, 224, 159, 174,
+			224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 136, 175, 224, 159, 174, 224, 164, 174, 224, 2, 224, 175, 139, 224,
+			174, 159, 0, 8, 136, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 136, 175, 224, 177, 174, 224, 129, 175, 224, 149, 174,
+			224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 136, 175, 224, 177, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224,
+			174, 191, 0, 8, 141, 175, 224, 149, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 12,
+			0, 8, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141,
+			175, 224, 163, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174,
+			174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 175,
+			134, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 136, 0, 8, 141, 175, 224, 169, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 175,
+			138, 224, 174, 176, 224, 175, 129, 0, 8, 141, 175, 224, 169, 174, 224, 181, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 0, 8,
+			141, 175, 224, 174, 174, 224, 129, 175, 224, 164, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224,
+			135, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 174, 190, 32, 0, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 176, 174, 224, 181, 174,
+			224, 2, 224, 174, 190, 32, 0, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 177, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190,
+			32, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224,
+			149, 174, 224, 2, 224, 175, 134, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174,
+			154, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 184, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224,
+			2, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 174, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224,
+			154, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0, 8, 141, 175, 224, 174, 174, 224, 178, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8,
+			141, 175, 224, 174, 174, 224, 178, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 175, 134, 224, 174, 175, 224, 174, 176, 0, 8, 141, 175, 224,
+			174, 174, 224, 178, 174, 224, 190, 174, 224, 178, 174, 224, 139, 175, 224, 149, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 8, 141, 175, 224,
+			174, 174, 224, 180, 174, 224, 170, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224,
+			190, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 154, 224, 174, 191, 224, 174, 183, 224, 174, 169, 0, 8, 141, 175, 224, 174, 174, 224,
+			190, 174, 224, 149, 174, 224, 2, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224,
+			159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224, 190, 174, 224,
+			178, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 174, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174,
+			191, 224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 175, 129, 0, 8, 141, 175, 224, 175, 174, 224,
+			134, 175, 224, 174, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 175, 174, 224, 138, 175, 224, 170, 174, 224, 2, 224, 174, 191, 0, 8,
+			141, 175, 224, 178, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224,
+			138, 175, 224, 164, 174, 224, 2, 224, 175, 138, 224, 174, 176, 224, 175, 129, 224, 174, 179, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224,
+			2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 178, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174,
+			190, 0, 8, 141, 175, 224, 178, 174, 224, 191, 174, 224, 183, 174, 224, 2, 224, 174, 190, 0, 8, 141, 175, 224, 180, 174, 224, 190, 174, 224,
+			164, 174, 224, 2, 224, 174, 190, 224, 174, 179, 0, 8, 141, 175, 224, 180, 174, 224, 190, 174, 224, 175, 174, 224, 2, 224, 174, 190, 224, 174,
+			163, 0, 8, 154, 174, 224, 141, 175, 224, 158, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
+			191, 224, 174, 176, 0, 8, 159, 174, 224, 141, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 159, 174, 224,
+			141, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 159, 174, 224, 141, 175, 224,
+			159, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 8, 159, 174, 224, 181, 174, 224,
+			2, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 163, 224, 175, 136, 0, 8, 164, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 175,
+			129, 224, 174, 176, 224, 174, 190, 224, 174, 163, 0, 8, 174, 174, 224, 141, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174,
+			176, 224, 174, 191, 0, 8, 175, 174, 224, 191, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174,
+			174, 224, 174, 190, 224, 174, 179, 0, 8, 176, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 175, 134, 224, 174, 176, 224, 175, 129, 224, 174,
+			174, 224, 174, 190, 224, 174, 179, 0, 8, 176, 174, 224, 190, 174, 224, 174, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174,
+			179, 224, 175, 136, 224, 174, 175, 0, 8, 176, 174, 224, 191, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 154, 174, 224, 2, 224, 174,
+			190, 224, 174, 163, 224, 174, 191, 0, 8, 178, 174, 224, 170, 174, 224, 2, 224, 175, 135, 224, 174, 176, 0, 8, 178, 174, 224, 191, 174, 224,
+			154, 174, 224, 2, 224, 175, 135, 224, 174, 176, 0, 8, 181, 174, 224, 168, 174, 224, 2, 224, 174, 190, 224, 174, 183, 0, 8, 190, 174, 224,
+			169, 174, 224, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 0, 8,
+			190, 174, 224, 170, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 174, 176, 0, 8, 191, 174, 224, 154, 174, 224, 141, 175, 224, 169, 174, 224,
+			191, 174, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 191, 174, 224, 176, 174, 224, 154, 174, 224,
+			2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 0, 8, 191, 174, 224, 176, 174, 224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8,
+			191, 174, 224, 177, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 0, 8, 191, 174, 224, 180, 174, 224,
+			181, 174, 224, 2, 224, 174, 190, 224, 174, 159, 0, 8, 191, 174, 224, 183, 174, 224, 191, 174, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 1, 139, 175, 224, 176, 174, 224, 143, 174, 224, 2, 224, 174, 179, 224, 175, 135, 224, 174,
+			169, 0, 224, 174, 191, 1, 141, 175, 224, 159, 174, 224, 137, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 224,
+			174, 191, 1, 141, 175, 224, 170, 174, 224, 129, 175, 224, 154, 174, 224, 176, 174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 174,
+			191, 224, 174, 168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 156, 174, 224, 190, 174, 224,
+			176, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 174, 191, 224, 174, 168, 224, 174, 191, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1,
+			141, 175, 224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 18, 68, 2, 224, 174, 176, 224, 174, 179, 224, 174, 175, 0, 224, 174,
+			191, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 18, 68, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0,
+			224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 169, 174, 224, 156, 174, 224, 139, 175, 224, 170, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224,
+			174, 175, 224, 174, 176, 0, 224, 174, 191, 1, 141, 175, 224, 183, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 175, 224,
+			175, 139, 224, 174, 149, 0, 224, 174, 191, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			149, 224, 174, 159, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 178, 224, 174, 190, 224, 174, 164, 224, 174,
+			169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			149, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 175, 141, 224, 174, 158, 224, 175, 136, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174,
+			169, 224, 175, 141, 224, 174, 168, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 169, 224, 175, 141, 224, 174, 169, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174,
+			164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 154, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			154, 224, 175, 129, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 169, 224, 175,
+			136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 156, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 163, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			163, 224, 174, 190, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174,
+			163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 164, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174,
+			191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 128, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175,
+			135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 135, 224, 174, 183, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 164, 224, 175, 139, 224, 174, 183, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
+			191, 224, 174, 175, 224, 175, 135, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 169, 224, 174, 190, 224, 174, 170, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 190, 224, 174, 163, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174,
+			190, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 129, 224, 174, 149, 224, 174, 176, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 174, 224, 175, 139, 224, 174, 183, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 175, 224, 175, 139, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 175, 139, 224, 174,
+			154, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 175, 224, 175, 139, 224, 174, 156, 224, 174, 169, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 178, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 179, 224, 174, 175, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 128, 224, 174,
+			163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 128, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			181, 224, 175, 135, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 135, 224, 174, 154, 224, 174, 191, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224, 174,
+			190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 185, 224, 174, 178, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
+			149, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 191, 224, 174, 176, 224, 175,
+			129, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 190, 224, 174, 163, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 169, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224,
+			175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224,
+			174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
+			174, 175, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224,
+			174, 191, 224, 174, 175, 224, 174, 174, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 170, 224, 175, 141,
+			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176,
+			224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139,
+			224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 174, 191, 224, 174, 175,
+			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176,
+			224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 170, 224, 175, 141,
+			224, 174, 170, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 174, 0, 224, 174, 191, 8, 2,
+			224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190,
+			32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 174, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174,
+			184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 184, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 0,
+			224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191,
+			8, 2, 224, 174, 179, 224, 175, 128, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 135, 0, 224, 174, 191, 8, 128, 175,
+			224, 176, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8, 141, 175,
+			224, 170, 174, 224, 169, 174, 224, 190, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174,
+			224, 174, 174, 224, 141, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174,
+			224, 176, 174, 224, 181, 174, 224, 2, 224, 174, 176, 18, 69, 224, 174, 190, 224, 174, 164, 0, 224, 174, 191, 8, 141, 175, 224, 170, 174, 224,
+			190, 174, 224, 18, 71, 174, 174, 224, 2, 224, 174, 176, 224, 174, 170, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149,
+			224, 174, 191, 224, 174, 164, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190,
+			224, 174, 169, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 129, 224, 174, 159, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 175,
+			0, 224, 175, 141, 1, 139, 175, 224, 176, 174, 224, 143, 174, 224, 2, 224, 174, 179, 224, 175, 135, 224, 174, 169, 0, 224, 175, 141, 1, 141,
+			175, 224, 174, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184, 0, 224, 175, 141, 2, 32, 224, 174, 170, 0, 224, 175,
+			141, 2, 224, 174, 170, 0, 224, 175, 141, 2, 224, 174, 184, 0, 224, 175, 141, 8, 128, 175, 224, 176, 174, 224, 141, 175, 224, 184, 174, 224,
+			2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 224, 175, 141, 8, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 175,
+			128, 224, 174, 174, 0, 224, 175, 141, 8, 135, 175, 224, 149, 174, 224, 2, 224, 174, 174, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 224,
+			175, 141, 8, 139, 175, 224, 170, 174, 224, 0, 224, 175, 141, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 134,
+			224, 174, 184, 0, 224, 175, 141, 8, 149, 174, 224, 190, 174, 224, 178, 174, 224, 0, 224, 175, 141, 8, 190, 174, 224, 159, 174, 224, 141, 175,
+			224, 149, 174, 224, 141, 175, 224, 184, 174, 224, 134, 175, 224, 159, 174, 224, 0, 224, 175, 141, 8, 190, 174, 224, 174, 174, 224, 2, 224, 174,
+			179, 0, 224, 174, 191, 224, 174, 176, 1, 141, 175, 224, 184, 174, 224, 141, 175, 224, 149, 174, 224, 142, 174, 224, 2, 224, 174, 184, 3, 48,
+			34, 36, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 170, 8, 2, 224,
+			174, 190, 224, 174, 178, 3, 48, 34, 37, 50, 89, 37, 48, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 153, 224,
+			175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3, 48, 34, 37, 57, 109, 68, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174,
+			163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 176, 3, 48, 34, 37, 66, 140, 109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 48, 34, 37, 66, 140, 149, 0, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 159, 8,
+			2, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 175, 3, 48, 34, 37, 140, 0, 4, 224, 175, 129, 224, 174, 176, 224, 174, 131, 224,
+			174, 170, 8, 2, 18, 69, 224, 174, 176, 3, 48, 34, 39, 83, 109, 0, 224, 175, 129, 224, 174, 176, 224, 174, 170, 8, 2, 18, 69, 224,
+			174, 176, 0, 224, 175, 129, 224, 174, 176, 224, 174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 129, 224, 174, 176,
+			224, 175, 138, 224, 174, 170, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 129, 224, 174, 176, 224, 175, 138, 224, 174, 170, 224, 175, 138,
+			8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0,
+			224, 175, 141, 224, 174, 176, 224, 175, 138, 224, 174, 170, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 175, 141, 224, 174, 176, 224, 175, 138,
+			224, 174, 170, 224, 175, 138, 8, 2, 224, 174, 154, 224, 174, 176, 0, 224, 174, 191, 224, 174, 176, 224, 174, 164, 224, 175, 141, 8, 2, 224,
+			174, 175, 224, 175, 135, 224, 174, 149, 3, 48, 34, 109, 47, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 149, 2, 224, 174, 190, 224, 174,
+			183, 3, 48, 34, 109, 49, 0, 224, 174, 191, 224, 174, 176, 224, 174, 149, 8, 141, 175, 224, 170, 174, 224, 169, 174, 224, 190, 174, 224, 158,
+			174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 224, 174, 176, 224, 174, 149, 8, 169, 174, 224, 190, 174, 224, 158, 174, 224, 2, 224, 174, 190,
+			0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 154, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174,
+			176, 3, 48, 34, 109, 76, 0, 224, 174, 191, 224, 174, 176, 224, 174, 154, 8, 2, 224, 174, 190, 224, 174, 176, 0, 224, 174, 191, 224, 174,
+			176, 224, 174, 154, 224, 175, 141, 8, 2, 224, 174, 169, 224, 175, 136, 3, 48, 34, 109, 76, 12, 37, 0, 224, 174, 191, 224, 174, 176, 224,
+			174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 178, 3, 48, 34, 118, 49, 140, 37, 49,
+			109, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 159, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8,
+			3, 48, 34, 118, 84, 37, 141, 109, 66, 140, 149, 0, 224, 175, 141, 224, 174, 176, 224, 175, 139, 224, 174, 159, 8, 2, 224, 174, 190, 224,
+			174, 169, 3, 48, 34, 119, 47, 0, 224, 175, 129, 224, 174, 176, 224, 175, 139, 224, 174, 159, 8, 2, 224, 174, 190, 224, 174, 169, 3, 48,
+			34, 119, 140, 0, 224, 175, 129, 224, 174, 176, 224, 175, 130, 224, 174, 170, 8, 3, 48, 34, 123, 83, 149, 0, 224, 174, 191, 224, 174, 176,
+			224, 175, 136, 224, 174, 181, 224, 175, 135, 224, 174, 159, 8, 3, 48, 34, 134, 84, 114, 140, 149, 0, 224, 175, 134, 224, 174, 163, 224, 175,
+			141, 224, 174, 159, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 176, 3, 48, 36, 66, 140, 109, 0, 4, 224,
+			175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 190, 32, 3, 48, 36, 67, 75, 0, 224, 175, 134, 224, 174, 158, 224,
+			175, 141, 224, 174, 154, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 0, 224, 174, 191, 224, 174, 149, 8, 128, 175, 224,
+			164, 174, 224, 2, 224, 174, 190, 3, 48, 37, 49, 0, 224, 174, 191, 224, 174, 159, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 178, 3,
+			48, 37, 140, 109, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 164, 23, 32, 224, 174, 170, 224, 175, 129, 224, 174, 164,
+			12, 3, 48, 40, 47, 0, 4, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 149, 3, 48, 40, 47, 47, 109,
+			0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 174, 224, 175, 141, 32, 224, 174, 170, 224, 175, 129, 224, 174,
+			164, 224, 174, 191, 224, 174, 175, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 174, 224, 175, 141, 32, 224,
+			174, 170, 224, 175, 129, 224, 174, 164, 224, 175, 129, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 176, 224,
+			174, 191, 224, 174, 154, 224, 174, 191, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 174, 224, 175, 141, 224, 174, 170,
+			8, 2, 224, 175, 129, 224, 174, 164, 3, 48, 40, 47, 47, 109, 65, 48, 0, 4, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18, 68,
+			2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 3, 48, 48, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18, 68, 2,
+			224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 149, 174, 224, 133, 174, 224, 2,
+			224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 149, 174, 224, 191, 174, 224, 164,
+			174, 224, 133, 174, 224, 2, 224, 174, 176, 224, 174, 154, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174,
+			191, 1, 154, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174,
+			170, 224, 174, 191, 1, 164, 174, 224, 141, 175, 224, 164, 174, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190,
+			224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 164, 174, 224, 141, 175, 224, 164, 174, 224, 176, 174, 224, 2, 224, 174, 176,
+			224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 169, 174, 224, 174, 174, 224, 2, 224, 174, 176,
+			224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 178, 174, 224, 156, 174, 224, 2, 224, 174, 176,
+			224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 178, 174, 224, 191, 174, 224, 168, 174, 224, 2,
+			224, 174, 176, 224, 174, 170, 224, 175, 129, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 181, 174, 224, 164, 174, 224, 190, 174, 224, 175,
+			174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 154, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 181, 174, 224, 191,
+			174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174, 224, 18,
+			75, 146, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174,
+			224, 163, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 191, 174,
+			224, 164, 174, 224, 168, 174, 224, 2, 224, 174, 176, 224, 174, 181, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191,
+			8, 191, 174, 224, 179, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141,
+			224, 174, 149, 8, 190, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 169, 3, 48, 49, 0, 224, 175, 141,
+			224, 174, 175, 224, 175, 130, 224, 174, 159, 1, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 176, 3, 48, 57, 152, 140, 109, 0,
+			224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 176, 174, 224, 170, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 3,
+			48, 71, 0, 224, 175, 141, 224, 174, 154, 8, 176, 174, 224, 2, 224, 174, 176, 3, 48, 76, 109, 0, 4, 1, 21, 2, 224, 174, 159, 224,
+			175, 141, 224, 174, 154, 12, 3, 48, 109, 0, 1, 128, 175, 224, 169, 174, 224, 2, 25, 0, 1, 128, 175, 224, 176, 174, 224, 2, 25, 0,
+			1, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 174, 174, 224, 174, 190, 0, 1, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224,
+			174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 181, 224, 174, 191, 0, 1, 129, 175, 224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 149, 0,
+			1, 129, 175, 224, 176, 174, 224, 146, 174, 224, 2, 224, 174, 149, 0, 1, 129, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224,
+			174, 174, 224, 174, 190, 0, 1, 134, 174, 224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 154, 224, 174, 169, 0, 1, 134, 174, 224, 2, 224,
+			174, 176, 224, 175, 135, 224, 174, 183, 224, 174, 169, 0, 1, 136, 175, 224, 164, 174, 224, 170, 174, 224, 2, 224, 174, 164, 224, 175, 136, 0,
+			1, 137, 174, 224, 2, 224, 174, 168, 224, 174, 191, 224, 174, 183, 0, 1, 137, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 168, 224,
+			174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 154, 0, 1, 139, 175, 224, 159, 174, 224, 141, 175, 224, 149, 174, 224, 134, 174, 224, 2, 224,
+			174, 184, 0, 1, 139, 175, 224, 175, 174, 224, 191, 174, 224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 139, 175, 224, 178, 174,
+			224, 133, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 140, 175, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 164, 224,
+			174, 191, 0, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 180, 224, 174, 191, 0, 1, 141, 175, 224, 169, 174,
+			224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 149, 224, 174, 178, 0, 1, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224,
+			174, 149, 224, 175, 129, 224, 174, 164, 224, 174, 191, 0, 1, 141, 175, 224, 169, 174, 224, 168, 174, 224, 2, 224, 174, 149, 224, 174, 178, 0,
+			1, 141, 175, 224, 169, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 149, 224, 174, 178, 0, 1, 141, 175, 224, 169, 174, 224, 191, 174,
+			224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 12, 0, 1, 141, 175, 224, 170, 174, 224, 0,
+			1, 141, 175, 224, 174, 174, 224, 176, 174, 224, 149, 174, 224, 2, 224, 174, 159, 0, 1, 141, 175, 224, 174, 174, 224, 176, 174, 224, 149, 174,
+			224, 2, 224, 174, 177, 224, 175, 141, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 164, 224, 175, 141, 0, 1, 141, 175,
+			224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 174, 0, 1, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 169, 224, 174, 190, 0,
+			1, 147, 174, 224, 2, 224, 174, 169, 0, 1, 149, 174, 224, 2, 25, 0, 1, 159, 174, 224, 181, 174, 224, 2, 224, 174, 149, 224, 175, 129,
+			224, 174, 164, 224, 174, 191, 0, 1, 159, 174, 224, 181, 174, 224, 2, 224, 174, 180, 0, 1, 164, 174, 224, 0, 1, 174, 174, 224, 0, 1,
+			174, 174, 224, 2, 25, 0, 1, 176, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
+			174, 169, 224, 174, 191, 0, 1, 176, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 224, 174, 176, 224, 174, 174, 0, 1, 176, 174, 224, 191, 174, 224, 159, 174, 224, 141, 175, 224, 183, 174, 224, 190, 174,
+			224, 176, 174, 224, 135, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 190, 174, 224, 149, 174, 224, 2, 25, 0, 1, 190, 174, 224, 164,
+			174, 224, 2, 25, 0, 1, 190, 174, 224, 174, 174, 224, 2, 25, 0, 1, 190, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175,
+			224, 164, 174, 224, 137, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 1, 191, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224, 174, 163, 224,
+			174, 191, 0, 1, 191, 174, 224, 169, 174, 224, 2, 25, 0, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 25, 0, 2, 224, 174, 159, 0,
+			2, 224, 174, 159, 224, 174, 191, 0, 2, 224, 174, 177, 224, 175, 141, 224, 174, 177, 224, 174, 191, 32, 0, 8, 0, 8, 2, 224, 174, 159,
+			224, 175, 141, 224, 174, 159, 224, 174, 169, 32, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 32, 0, 8, 2, 224,
+			174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 158, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224,
+			174, 164, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 0, 8, 2,
+			224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 169, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 224, 174, 170,
+			224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 174, 176,
+			224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 183, 0, 8, 32, 18, 79, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 153,
+			224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 32, 18, 79, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224, 175, 141,
+			0, 8, 32, 18, 79, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 174, 0, 8, 128, 175, 224, 164, 174, 224, 2, 224, 174, 177,
+			224, 175, 141, 224, 174, 177, 0, 8, 129, 175, 224, 149, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 129,
+			175, 224, 149, 174, 224, 129, 175, 224, 170, 174, 224, 2, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 136, 0, 8, 129, 175, 224, 159,
+			174, 224, 130, 175, 224, 174, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 141, 0, 8, 129, 175, 224, 159,
+			174, 224, 138, 174, 224, 2, 224, 174, 175, 224, 174, 191, 224, 174, 176, 0, 8, 129, 175, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 129,
+			175, 224, 174, 174, 224, 2, 224, 174, 181, 224, 174, 179, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 149, 224, 175, 129,
+			224, 174, 164, 224, 174, 191, 0, 8, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 154, 224, 175, 128,
+			224, 174, 178, 224, 174, 169, 224, 175, 136, 0, 8, 136, 175, 224, 159, 174, 224, 168, 174, 224, 2, 224, 174, 175, 224, 174, 191, 224, 174, 177,
+			224, 175, 141, 224, 174, 154, 224, 174, 191, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 164, 224, 174, 191,
+			224, 174, 181, 0, 8, 141, 175, 224, 169, 174, 224, 178, 174, 224, 168, 174, 224, 2, 224, 174, 175, 0, 8, 141, 175, 224, 169, 174, 224, 191,
+			174, 224, 164, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 191, 174, 224, 174, 174, 224, 2,
+			224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 169, 224, 174, 191, 32, 0, 8,
+			141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 8, 141, 175, 224, 174, 174, 224,
+			149, 174, 224, 2, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224,
+			2, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 174, 174, 224, 149, 174, 224, 2, 224, 174, 178, 224, 175, 141, 0, 8,
+			141, 175, 224, 174, 174, 224, 170, 174, 224, 2, 224, 174, 176, 224, 175, 141, 32, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 149, 174,
+			224, 2, 224, 174, 176, 224, 175, 135, 224, 174, 183, 224, 174, 169, 0, 8, 141, 175, 224, 176, 174, 224, 191, 174, 224, 179, 174, 224, 129, 175,
+			224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 176, 224,
+			175, 129, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174,
+			224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 149, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224,
+			174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 169, 0, 8, 154, 174, 224, 190, 174, 224, 178, 174, 224, 136, 175, 224, 149, 174,
+			224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 176, 174, 224, 191, 174, 224, 159, 174, 224, 141, 175, 224, 183, 174, 224, 190, 174, 224, 176, 174,
+			224, 2, 224, 174, 164, 224, 174, 191, 0, 8, 181, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 164, 0, 8, 190, 174, 224, 181, 174,
+			224, 2, 224, 174, 184, 0, 8, 191, 174, 224, 154, 174, 224, 191, 174, 224, 169, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 178, 0,
+			8, 191, 174, 224, 163, 174, 224, 174, 174, 224, 2, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 181, 0, 8, 191, 174, 224, 178, 174,
+			224, 146, 174, 224, 2, 224, 174, 176, 224, 174, 170, 224, 175, 141, 0, 8, 191, 174, 224, 179, 174, 224, 146, 174, 224, 2, 224, 174, 176, 224,
+			174, 170, 224, 175, 141, 0, 8, 191, 174, 224, 183, 174, 224, 191, 174, 224, 176, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
+			174, 191, 224, 174, 169, 224, 174, 191, 0, 4, 224, 174, 164, 1, 129, 175, 224, 154, 174, 224, 170, 174, 224, 2, 224, 174, 191, 3, 48, 109,
+			47, 0, 224, 174, 164, 1, 190, 174, 224, 156, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191, 0, 224, 174, 164, 224,
+			175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 4, 224, 174, 164, 224, 174, 191, 1, 129, 175,
+			224, 149, 174, 224, 176, 174, 224, 3, 48, 109, 47, 37, 0, 224, 174, 164, 224, 174, 191, 1, 129, 175, 224, 164, 174, 224, 135, 175, 224, 154,
+			174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 141, 175, 224, 184, 174, 224, 149, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 0, 224,
+			174, 164, 224, 174, 191, 1, 156, 174, 224, 149, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 159, 174, 224, 129, 175, 224, 149, 174, 224, 174,
+			174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 159, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 135, 175, 224, 181, 174, 224, 0, 224,
+			174, 164, 224, 174, 191, 1, 163, 174, 224, 149, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 190, 174, 224, 149, 174, 224, 191, 174, 224, 170,
+			174, 224, 141, 175, 224, 174, 174, 224, 133, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 190, 174, 224, 164, 174, 224, 128, 175, 224, 154, 174,
+			224, 0, 224, 174, 164, 224, 174, 191, 1, 190, 174, 224, 175, 174, 224, 136, 175, 224, 179, 174, 224, 181, 174, 224, 0, 224, 174, 164, 224, 174,
+			191, 1, 190, 174, 224, 175, 174, 224, 141, 175, 224, 164, 174, 224, 191, 174, 224, 181, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 191, 174,
+			224, 163, 174, 224, 176, 174, 224, 164, 174, 224, 0, 224, 174, 164, 224, 174, 191, 1, 191, 174, 224, 174, 174, 224, 141, 175, 224, 183, 174, 224,
+			141, 175, 224, 149, 174, 224, 178, 174, 224, 0, 224, 174, 164, 8, 141, 175, 224, 156, 174, 224, 178, 174, 224, 3, 48, 109, 47, 149, 0, 4,
+			224, 174, 170, 2, 224, 174, 190, 3, 48, 109, 48, 0, 224, 174, 170, 224, 175, 141, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 0, 224,
+			174, 170, 2, 25, 3, 48, 109, 48, 109, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175,
+			141, 224, 174, 159, 1, 133, 174, 224, 3, 48, 118, 34, 65, 36, 50, 140, 149, 0, 224, 174, 190, 224, 174, 170, 2, 224, 174, 190, 3, 48,
+			118, 48, 0, 224, 174, 190, 224, 174, 170, 2, 25, 3, 48, 118, 48, 109, 0, 224, 174, 190, 224, 174, 175, 224, 174, 191, 224, 174, 163, 224,
+			175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 174, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 1, 133, 174, 224, 3, 48, 118,
+			57, 37, 66, 140, 65, 36, 50, 140, 149, 0, 4, 224, 174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224, 174, 191, 8, 2, 224, 174,
+			176, 3, 48, 118, 66, 37, 81, 0, 224, 174, 190, 224, 174, 163, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 8,
+			2, 224, 174, 176, 0, 4, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 153, 224, 175, 141, 3, 48, 118, 71, 109, 0, 224, 174, 190, 224,
+			174, 170, 8, 2, 224, 174, 164, 224, 175, 141, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 168, 224, 174, 190, 224, 174, 154, 0, 224,
+			174, 190, 224, 174, 170, 8, 2, 224, 174, 174, 0, 224, 174, 190, 224, 174, 170, 224, 174, 181, 224, 174, 191, 224, 174, 174, 224, 175, 139, 224,
+			174, 154, 224, 174, 169, 8, 3, 48, 118, 71, 109, 84, 37, 65, 119, 76, 109, 0, 224, 174, 190, 224, 174, 154, 224, 174, 191, 224, 174, 159,
+			8, 134, 175, 224, 159, 174, 224, 3, 48, 118, 89, 37, 140, 149, 0, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 170, 8, 2, 224,
+			174, 164, 3, 48, 118, 89, 122, 48, 109, 0, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 159, 1, 141, 175, 224, 176, 174, 224, 143,
+			174, 224, 3, 48, 119, 34, 140, 149, 0, 224, 175, 141, 224, 174, 159, 1, 21, 3, 48, 140, 149, 0, 4, 1, 18, 67, 3, 48, 149, 0,
+			1, 136, 175, 224, 159, 174, 224, 168, 174, 224, 0, 1, 141, 175, 224, 174, 174, 224, 191, 174, 224, 178, 174, 224, 146, 174, 224, 0, 1, 141,
+			175, 224, 176, 174, 224, 159, 174, 224, 135, 174, 224, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 32, 0, 1, 141, 175, 224, 178,
+			174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 154, 174, 224, 0, 8, 128, 175, 224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174,
+			224, 0, 8, 136, 175, 224, 178, 174, 224, 191, 174, 224, 168, 174, 224, 0, 8, 141, 175, 224, 169, 174, 224, 175, 174, 224, 170, 174, 224, 0,
+			8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 149, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 138, 175, 224, 154, 174, 224, 0, 8, 141,
+			175, 224, 178, 174, 224, 149, 174, 224, 191, 174, 224, 181, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 175, 174, 224, 134, 175, 224, 154, 174,
+			224, 0, 4, 1, 32, 46, 32, 191, 174, 224, 170, 174, 224, 2, 224, 174, 191, 32, 46, 32, 224, 174, 154, 224, 174, 191, 3, 71, 0, 1,
+			32, 129, 175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 164, 174,
+			224, 141, 175, 224, 164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 129, 175, 224, 164,
+			174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174, 224, 141,
+			175, 224, 153, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 141, 175, 224, 169, 174, 224,
+			191, 174, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174,
+			181, 0, 1, 32, 164, 174, 224, 141, 175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 164, 174,
+			224, 141, 175, 224, 164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 164, 174, 224, 141,
+			175, 224, 168, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 178, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174, 224, 141, 175, 224, 153,
+			174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 32, 175, 174, 224, 136, 175, 224, 159, 174, 224,
+			129, 175, 224, 169, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174,
+			190, 224, 174, 181, 0, 1, 32, 175, 174, 224, 136, 175, 224, 159, 174, 224, 129, 175, 224, 169, 174, 224, 191, 174, 224, 179, 174, 224, 149, 174,
+			224, 141, 175, 224, 153, 174, 224, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181, 0, 1, 128, 175, 224, 154, 174,
+			224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 129, 175, 224, 181, 174, 224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224,
+			175, 141, 0, 1, 128, 175, 224, 154, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 148, 174, 224, 2, 224, 174, 191, 224,
+			174, 169, 224, 175, 141, 0, 1, 133, 174, 224, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 181, 0, 1, 141, 175, 224, 169, 174,
+			224, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 1, 141, 175, 224, 169, 174, 224, 135, 174, 224, 2, 224, 175, 129, 224,
+			174, 177, 0, 1, 141, 175, 224, 170, 174, 224, 191, 174, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 137, 174, 224, 2, 224, 174, 190, 224,
+			174, 149, 0, 1, 141, 175, 224, 174, 174, 224, 2, 17, 66, 224, 174, 159, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 174, 190, 0, 1,
+			141, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 179, 224, 175, 136, 224, 174, 175, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 174,
+			191, 224, 174, 169, 224, 175, 141, 32, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 190, 0, 1, 141, 175,
+			224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 154, 224,
+			175, 141, 224, 174, 154, 224, 174, 191, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 175, 130, 224, 174, 176, 0, 1, 141, 175, 224, 174, 174,
+			224, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 136, 0, 1, 141, 175, 224, 174, 174, 224, 146, 174, 224, 2, 224,
+			175, 139, 224, 174, 164, 224, 175, 129, 224, 174, 174, 224, 175, 141, 0, 1, 141, 175, 224, 174, 174, 224, 191, 174, 224, 164, 174, 224, 141, 175,
+			224, 164, 174, 224, 133, 174, 224, 2, 224, 175, 135, 224, 174, 176, 224, 175, 141, 0, 1, 141, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224,
+			174, 169, 224, 175, 141, 32, 0, 1, 141, 175, 224, 177, 174, 224, 164, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 149,
+			0, 1, 141, 175, 224, 177, 174, 224, 175, 174, 224, 135, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 178, 0, 1, 141, 175, 224, 183,
+			174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 175, 129, 0, 1, 149, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 181,
+			0, 1, 149, 174, 224, 141, 175, 224, 149, 174, 224, 18, 68, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 1, 156, 174, 224, 190, 174,
+			224, 176, 174, 224, 2, 224, 175, 139, 224, 174, 149, 0, 1, 164, 174, 224, 2, 17, 66, 0, 1, 174, 174, 224, 2, 17, 66, 0, 1, 174,
+			174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 190, 224, 174, 163, 0, 1, 190, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176,
+			174, 224, 148, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 149, 174, 224, 141, 175, 224, 153, 174, 224, 176, 174, 224, 179,
+			174, 224, 146, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 149, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 176,
+			224, 174, 164, 0, 1, 190, 174, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 191, 174, 224, 156, 174, 224, 2, 224, 174, 190, 224, 174, 164,
+			224, 175, 141, 0, 1, 190, 174, 224, 164, 174, 224, 174, 174, 224, 18, 71, 133, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174,
+			224, 164, 174, 224, 174, 174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 174, 174, 224, 190, 174, 224, 178, 174,
+			224, 141, 175, 224, 184, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 164, 0, 1, 190, 174, 224, 181, 174, 224, 168, 174, 224, 2, 224,
+			174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 2, 17, 66, 0, 8, 2, 17, 66, 28, 17, 12, 0, 8, 2, 18, 72, 224, 174, 178, 224,
+			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224,
+			174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 174, 0,
+			8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 181, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 128, 224,
+			174, 176, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 149, 224,
+			175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224,
 			174, 149, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224,
-			174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224,
-			174, 159, 224, 174, 191, 32, 224, 174, 170, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 174, 190,
-			224, 174, 159, 224, 174, 191, 32, 224, 174, 170, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175,
-			141, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174,
-			190, 224, 174, 159, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 178, 224, 174, 191, 224, 174,
-			175, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8,
-			2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8,
-			2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 159, 224, 174, 169, 0, 8,
-			2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174,
-			163, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174,
-			190, 224, 174, 163, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174,
-			163, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174,
-			190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 135, 224, 174, 156, 0, 8,
-			2, 224, 174, 190, 224, 174, 164, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174,
-			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174,
-			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174,
-			164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 178, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174,
-			164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 190, 224, 174, 174, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 174, 191, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 177, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174,
-			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174,
-			164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174,
-			164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 190, 224,
-			174, 164, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224,
-			175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 136, 224,
-			174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224,
-			175, 136, 224, 174, 175, 224, 175, 129, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 136, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 174, 164, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
+			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224,
+			175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 32, 224, 174, 170,
+			224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 32, 224, 174,
+			170, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174,
+			159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 224, 174,
+			175, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224, 174,
+			169, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174,
+			190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174,
+			190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174,
+			190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 159, 224, 175,
+			141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174,
+			153, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174,
+			176, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174,
+			163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 135, 224, 174, 156, 0, 8, 2, 224, 174,
+			190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 130, 224, 174,
+			159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 175, 141, 224, 174,
+			170, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 175,
+			141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			178, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			181, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 181, 224, 174,
+			191, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			190, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
+			169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
+			191, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174,
+			174, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
+			129, 224, 174, 174, 224, 174, 190, 224, 174, 177, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
+			174, 159, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224,
+			175, 136, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224,
+			174, 159, 224, 175, 136, 224, 174, 175, 224, 175, 129, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 136, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
+			175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
 			174, 170, 224, 174, 190, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
 			174, 170, 224, 174, 190, 224, 174, 149, 224, 174, 191, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
 			175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
 			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224,
-			175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 177, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224,
-			174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224,
-			174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
+			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
+			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
+			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
 			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 179, 224, 175, 141, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224,
-			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224,
-			174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 175, 139, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 164, 0, 8, 2, 224,
-			174, 190, 224, 174, 164, 224, 175, 129, 224, 174, 183, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 175, 224,
-			174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224,
-			174, 190, 224, 174, 169, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 174, 224,
-			175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224,
-			174, 169, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 129, 0, 8, 2, 224,
-			174, 190, 224, 174, 169, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 178, 224,
-			175, 139, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 170, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224,
-			174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224,
-			174, 174, 224, 174, 191, 224, 174, 176, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
-			174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 149, 224,
-			174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 135, 0, 8, 2, 224, 174, 190, 224, 174, 175, 224,
-			175, 141, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224,
-			174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 0, 8, 2, 224,
-			174, 190, 224, 174, 176, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0,
-			8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224,
-			174, 176, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 129, 224, 174, 178, 224,
-			175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224,
-			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 18, 69, 224, 174, 178, 224, 175, 139, 224, 174, 169, 224, 174, 190, 0, 8,
-			2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174,
-			154, 224, 174, 191, 224, 174, 178, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174,
-			176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175,
-			141, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 174, 154, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 164, 224, 174, 163, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 159, 0, 8,
-			2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8,
-			2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 175,
-			141, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 175, 224, 175, 139, 224, 174, 149, 0, 8,
-			2, 224, 174, 190, 224, 174, 178, 224, 174, 175, 224, 175, 141, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174,
-			183, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 154, 224, 175,
-			130, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 175,
-			141, 224, 174, 170, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174,
-			170, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174,
-			178, 224, 174, 191, 224, 174, 164, 224, 175, 141, 32, 224, 174, 164, 224, 175, 128, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224,
-			174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 181, 224,
-			175, 129, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224,
-			174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224,
-			174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 154, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224,
-			174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 174, 149, 224, 175, 135, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
-			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 135, 32,
-			18, 90, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 136, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224,
-			174, 178, 224, 175, 141, 32, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 175, 135, 0, 8, 2,
-			224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 8, 2,
-			224, 174, 190, 224, 174, 181, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 169, 224, 175, 136, 0, 8, 2,
-			224, 174, 190, 224, 174, 181, 224, 174, 174, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 168, 224, 174, 190, 224, 174, 169, 224, 175,
-			135, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 164, 224, 175, 141, 0, 8,
-			2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174,
-			159, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 178, 0, 8, 2, 224, 174,
-			190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 181, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174,
-			178, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 169, 224, 175,
-			141, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
-			177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 224, 174,
-			190, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174,
-			174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174,
-			174, 224, 175, 141, 224, 174, 170, 224, 175, 139, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 0, 8,
-			2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 174,
-			190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174,
-			181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 175,
-			135, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 175, 141, 224, 174, 168, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174,
-			190, 224, 174, 183, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 174,
-			190, 224, 174, 170, 224, 174, 191, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 174, 190, 224, 174,
-			181, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 175, 136, 0, 8,
-			2, 224, 174, 190, 224, 174, 183, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 174, 168, 224, 175, 141, 224, 174,
-			164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174,
-			184, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174,
-			159, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174,
-			184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174,
-			174, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 185, 224, 175, 129, 224, 174, 178, 224, 175, 135, 224, 174, 175, 224, 174,
-			169, 0, 8, 2, 224, 174, 191, 32, 46, 32, 224, 174, 170, 224, 174, 191, 32, 46, 32, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174,
-			191, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174,
-			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 183, 0, 8,
-			2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			183, 224, 175, 130, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 174, 154, 0, 8, 2, 224, 174, 191, 224, 174,
-			154, 224, 174, 191, 224, 174, 169, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 175, 134, 224, 174,
-			154, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 175, 134, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174,
-			154, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 156, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174,
-			191, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			159, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 154, 224, 174, 190, 224, 174,
-			176, 0, 8, 2, 224, 174, 191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 190, 0, 8, 2, 224, 174,
-			191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 168, 224, 175,
-			141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 174, 224, 174,
-			191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 224, 174, 178, 224, 175, 135, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224,
-			174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 191, 224,
-			174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224,
-			174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224,
-			174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224,
-			174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 174, 191, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224,
-			175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224,
-			174, 164, 224, 175, 128, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224,
-			174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224,
-			174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224,
-			174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
-			174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 174, 168, 224, 174, 179, 0, 8, 2, 224, 174, 191, 224,
-			174, 176, 224, 175, 129, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224,
-			174, 183, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224,
-			174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224,
-			174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224,
-			174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
-			174, 159, 224, 174, 176, 32, 224, 174, 170, 224, 174, 190, 224, 174, 159, 224, 174, 191, 32, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175,
-			141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174,
-			190, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175,
-			141, 224, 174, 178, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 174,
-			191, 224, 174, 184, 224, 174, 191, 224, 174, 169, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 174, 191, 224, 174, 175, 0, 8,
-			2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175,
-			141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175,
-			139, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 176, 224, 175,
-			141, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175,
-			141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 178, 224, 174, 176, 224, 174, 191, 0, 8,
-			2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 185, 224, 174,
-			190, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 175,
-			141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 178, 0, 8,
-			2, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 156, 0, 8, 2, 224, 175,
-			128, 224, 174, 156, 224, 174, 191, 224, 174, 153, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174,
-			149, 224, 174, 179, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 175,
-			136, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175,
-			136, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174,
-			159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 128, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175,
-			139, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 128, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 224, 175, 138, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 175, 128, 224, 174, 174, 0, 8, 2, 224, 175,
-			128, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 175,
-			128, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 139, 0, 8,
-			2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 183, 224, 175,
-			141, 224, 174, 174, 0, 8, 2, 224, 175, 128, 224, 174, 185, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 129, 18, 69, 224, 175, 129,
-			224, 174, 170, 224, 175, 129, 18, 69, 224, 175, 129, 0, 8, 2, 224, 175, 129, 18, 69, 224, 175, 129, 224, 174, 181, 224, 175, 134, 0, 8,
-			2, 224, 175, 129, 224, 174, 149, 224, 174, 190, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
-			153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175,
-			129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 175, 129, 224, 174,
-			149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8,
-			2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 156, 0, 8, 2, 224, 175, 129, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 0, 8,
-			2, 224, 175, 129, 224, 174, 164, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 154, 224, 174, 190, 224, 174,
-			178, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175,
-			129, 224, 174, 176, 224, 175, 129, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 175,
-			141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 32, 224, 174, 183, 224, 174, 191, 224, 174, 159, 224,
-			175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 154, 224, 174, 176, 0, 8, 2, 224,
+			174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 175, 129, 224, 174, 183, 224,
+			174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 175, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224,
+			174, 164, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 153, 224, 175, 141, 224,
+			174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224,
+			174, 169, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224,
+			174, 176, 224, 175, 141, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224,
+			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 129, 0, 8, 2, 224, 174, 190, 224, 174, 169, 224, 175, 134, 224, 174, 159, 224,
+			175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 170, 224, 174, 191, 224, 174, 178, 224, 175, 139, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224,
+			174, 170, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224,
+			174, 174, 224, 174, 191, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 135, 0,
+			8, 2, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 153, 224,
+			175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224,
+			174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224,
+			174, 176, 224, 174, 174, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224,
+			174, 190, 224, 174, 174, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224,
+			174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 18, 69, 224, 174,
+			178, 224, 175, 139, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 181, 0, 8,
+			2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174,
+			170, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174,
+			190, 224, 174, 178, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 154, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174,
+			164, 224, 174, 163, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174,
+			170, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174,
+			176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174,
+			190, 224, 174, 178, 224, 174, 175, 224, 175, 141, 224, 174, 175, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 183, 224, 174,
+			153, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 154, 224, 175, 130, 224, 174,
+			176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174,
+			190, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174,
+			170, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174,
+			191, 224, 174, 149, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174,
+			191, 224, 174, 175, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 181, 224, 175,
+			129, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174,
+			177, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 154, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174,
+			190, 224, 174, 178, 224, 175, 129, 224, 174, 154, 224, 175, 129, 224, 174, 181, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174,
+			190, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 174, 149, 224, 175, 135, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174,
+			176, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 135, 32, 18,
+			90, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			174, 176, 224, 175, 135, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 178, 224,
+			175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224,
+			174, 169, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 170, 224,
+			175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 181, 224, 174, 191, 224,
+			174, 178, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			175, 129, 224, 174, 174, 224, 174, 190, 224, 174, 177, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 134, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 175, 129, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 175, 139, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224,
+			174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
+			174, 170, 224, 174, 164, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224,
+			174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0,
+			8, 2, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224,
+			174, 190, 224, 174, 181, 224, 175, 135, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 181, 224, 175, 141, 224, 174, 168, 224, 174, 149, 224,
+			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224,
+			174, 190, 224, 174, 183, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224,
+			174, 190, 224, 174, 183, 224, 175, 136, 0, 8, 2, 224, 174, 190, 224, 174, 183, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224,
+			174, 184, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224,
+			174, 176, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224,
+			175, 141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 164, 224, 174, 191, 0,
+			8, 2, 224, 174, 191, 32, 46, 32, 224, 174, 170, 224, 174, 191, 32, 46, 32, 224, 174, 154, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224,
+			174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224,
+			174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224,
+			175, 130, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 169, 224, 174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224,
+			174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 156, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224,
+			174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 159, 224,
+			174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224,
+			175, 141, 32, 224, 174, 178, 224, 175, 135, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 174, 191, 224, 174, 154,
+			224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 176,
+			0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224, 174, 164, 224, 175, 128, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149,
+			224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141,
+			224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 174, 191,
+			224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 191,
+			224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129,
+			224, 174, 149, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 149,
+			224, 174, 168, 224, 174, 179, 0, 8, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 8, 2,
+			224, 174, 191, 224, 174, 178, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 191,
+			224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 170,
+			224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 176, 32, 224, 174, 170, 224, 174, 190, 224, 174,
+			159, 224, 174, 191, 32, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0,
+			8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224,
+			174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 129, 0, 8, 2, 224, 174, 191, 224,
+			174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 136, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 174, 191, 224, 174, 169, 224, 174, 184, 0,
+			8, 2, 224, 174, 191, 224, 174, 184, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224,
+			174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0,
+			8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 139, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224,
+			174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 191, 224,
+			174, 184, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 191, 224,
+			174, 184, 224, 175, 141, 224, 174, 178, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224,
+			174, 190, 224, 174, 184, 0, 8, 2, 224, 175, 128, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224,
+			175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 178, 0,
+			8, 2, 224, 175, 128, 224, 174, 156, 0, 8, 2, 224, 175, 128, 224, 174, 156, 224, 174, 191, 224, 174, 153, 0, 8, 2, 224, 175, 128, 224,
+			174, 159, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 190, 224, 174, 181, 0,
+			8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224,
+			175, 141, 224, 174, 170, 224, 175, 129, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 128, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0,
+			8, 2, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224,
+			175, 128, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 175, 128, 224, 174, 169, 224,
+			175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 128, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 175, 138, 224, 174, 178, 224, 174, 191, 0,
+			8, 2, 224, 175, 128, 224, 174, 174, 0, 8, 2, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 153, 224,
+			175, 141, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 176, 0,
+			8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 139, 0, 8, 2, 224, 175, 128, 224, 174, 176, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224,
+			174, 178, 0, 8, 2, 224, 175, 128, 224, 174, 183, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 175, 128, 224, 174, 185, 224, 174, 190, 224,
+			174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 224,
+			175, 141, 224, 174, 177, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 175, 129, 224,
+			174, 149, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 178, 0, 8, 2, 224,
+			175, 129, 224, 174, 156, 0, 8, 2, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 129, 224,
+			174, 164, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0,
+			8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 154, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0,
+			8, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224,
+			175, 129, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 129, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			174, 176, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 154, 224, 174, 176, 0, 8, 2, 224,
 			175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224,
 			174, 178, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 129, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224,
-			175, 129, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 163, 0, 8, 2, 224, 175, 129, 224, 174, 184, 224, 175, 141, 224,
-			174, 184, 224, 175, 134, 0, 8, 2, 224, 175, 129, 224, 174, 185, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224,
-			174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 175, 139, 224, 174, 178, 0, 8, 2, 224,
-			175, 130, 224, 174, 149, 224, 175, 139, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 154, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
-			174, 164, 0, 8, 2, 224, 175, 130, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224,
-			174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 159, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 149, 224,
-			174, 163, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 149, 224, 174, 163, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224,
-			175, 130, 224, 174, 164, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224,
-			175, 130, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 170, 224, 174, 190, 224, 174, 163, 224,
-			175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 174, 0, 8, 2, 224, 175, 130, 224,
-			174, 164, 224, 174, 181, 224, 175, 129, 224, 174, 159, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224,
-			174, 190, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0,
-			8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 135, 224, 174, 181, 224,
-			174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 130, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
-			175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 170, 224,
-			175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 130, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224,
-			174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 130, 224, 174, 170, 224, 174, 169, 224, 175, 135, 0, 8, 2, 224, 175, 130, 224, 174, 170, 224,
-			174, 190, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0,
-			8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 190, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 190, 224,
-			174, 164, 224, 175, 135, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224,
-			175, 130, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 183, 0, 8, 2, 224, 175, 130, 224,
-			174, 178, 224, 175, 139, 224, 174, 149, 0, 8, 2, 224, 175, 130, 224, 174, 183, 224, 174, 163, 0, 8, 2, 224, 175, 130, 224, 174, 183, 224,
-			174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224,
-			175, 134, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224,
-			174, 154, 224, 174, 174, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0,
-			8, 2, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224, 175, 134, 224, 174, 164, 224,
-			175, 141, 224, 174, 164, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 149, 224, 175, 139, 224,
-			174, 184, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 174, 154, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224,
-			175, 134, 224, 174, 169, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224,
-			174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224,
-			174, 178, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224,
-			174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 183, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224,
-			174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224,
-			175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224,
-			174, 191, 224, 174, 153, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224,
-			175, 134, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 179, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224,
-			175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 175, 135, 18, 69, 224, 174, 176, 224, 174, 191, 0, 8,
-			2, 224, 175, 135, 224, 174, 149, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 175,
-			135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 191, 224, 174, 153, 224, 175, 141, 32, 224, 174, 154, 224, 175, 139, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224,
-			174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 178, 224,
-			174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224,
-			175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 175, 129, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 156, 224,
-			174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 156, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224,
-			175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0,
-			8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224,
-			174, 159, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174, 169, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224,
-			174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224,
-			174, 174, 224, 175, 129, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 178, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0,
-			8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 169, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224,
-			174, 170, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224,
-			174, 176, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0,
-			8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 175, 130, 224,
-			174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224, 174, 190, 0, 8, 2, 224,
-			175, 135, 224, 174, 184, 224, 175, 141, 32, 224, 174, 170, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 175, 136, 32, 224, 174, 170, 224, 175,
-			136, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 175,
-			136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174,
-			191, 224, 174, 178, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8,
-			2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175, 136, 224, 174, 154, 224, 174,
-			169, 0, 8, 2, 224, 175, 136, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174,
-			149, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 8, 2, 224, 175, 136, 224, 174, 170, 224, 174,
-			191, 224, 174, 179, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 181, 0, 8,
-			2, 224, 175, 136, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 191, 0, 8, 2, 224, 175, 138, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 135, 0, 8, 2, 224, 175, 138, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 169, 0, 8, 2, 224, 175, 138, 224, 174,
-			174, 224, 175, 141, 224, 174, 174, 224, 174, 178, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 8,
-			2, 224, 175, 138, 224, 174, 178, 224, 174, 191, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 131, 224, 174,
-			170, 224, 174, 176, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 139, 224, 174, 131, 224, 174, 170, 224, 175, 139, 224, 174, 176, 224, 175,
-			141, 0, 8, 2, 224, 175, 139, 224, 174, 149, 32, 18, 78, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174,
-			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 178, 224, 175,
-			141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174,
-			176, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174,
-			191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174,
-			153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8,
-			2, 224, 175, 139, 224, 174, 156, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 139, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175,
-			141, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 163, 224, 174, 191, 0, 8,
-			2, 224, 175, 139, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 149, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174,
-			149, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175,
-			139, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174,
-			164, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175,
-			139, 224, 174, 164, 224, 174, 191, 224, 174, 154, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174,
-			154, 224, 174, 164, 224, 175, 141, 224, 174, 181, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 174, 176, 224, 175,
-			141, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174,
-			164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174,
-			191, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175,
-			136, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174,
-			169, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174,
-			178, 224, 175, 135, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174,
-			159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175,
-			139, 224, 174, 176, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 164, 0, 8, 2, 224, 175,
-			139, 224, 174, 176, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175,
-			139, 224, 174, 176, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 133, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224,
-			174, 176, 224, 175, 141, 32, 224, 174, 133, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 159,
-			18, 96, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 141, 32, 224, 174, 133, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139,
-			224, 174, 176, 224, 175, 141, 224, 174, 181, 224, 175, 134, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 183, 224, 174, 191,
-			0, 8, 2, 224, 175, 139, 224, 174, 184, 0, 8, 2, 224, 175, 139, 224, 174, 184, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175, 140,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 174, 191, 224, 174, 149,
-			0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 175, 128, 224, 174, 149, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 175, 141, 224, 174, 164,
-			0, 8, 2, 224, 175, 140, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 178, 224, 174, 191,
-			224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 140, 224, 174, 179, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 140,
-			224, 174, 183, 0, 8, 32, 18, 77, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 32,
-			18, 86, 2, 224, 174, 190, 224, 174, 181, 0, 8, 32, 136, 175, 224, 170, 174, 224, 2, 224, 175, 136, 0, 8, 32, 141, 175, 224, 159, 174,
-			224, 134, 175, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 32, 141, 175, 224, 174, 174, 224, 130, 175, 224, 176,
-			174, 224, 2, 224, 174, 190, 224, 174, 175, 0, 8, 32, 141, 175, 224, 174, 174, 224, 136, 175, 224, 159, 174, 224, 2, 224, 174, 190, 224, 174,
-			174, 0, 8, 32, 141, 175, 224, 176, 174, 224, 128, 175, 224, 154, 174, 224, 169, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 175, 129, 224,
-			174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 0, 8, 32, 191, 174, 224, 159, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224, 174, 191,
-			224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 128, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 153,
-			224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8,
-			141, 175, 224, 163, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 8, 141, 175, 224, 163, 174, 224, 170, 174,
-			224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 141, 175, 224, 163, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224,
-			174, 177, 0, 8, 141, 175, 224, 169, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 169, 174,
-			224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 159, 0, 8, 141, 175, 224, 169, 174, 224, 176, 174, 224, 135, 175, 224, 170, 174, 224, 2, 224,
-			174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 141, 175, 224, 170, 174, 224, 191, 174, 224, 179, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224,
-			174, 190, 224, 174, 149, 0, 8, 141, 175, 224, 174, 174, 224, 129, 175, 224, 176, 174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 175, 129, 224,
-			174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 168, 174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 179, 174,
-			224, 134, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 179, 174, 224, 191, 174, 224, 149, 174,
-			224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 174, 174, 224, 185, 174, 224, 2, 224, 174, 191, 224, 174, 179, 0, 8, 141, 175,
-			224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 159, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174,
-			224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 159, 0,
-			8, 141, 175, 224, 177, 174, 224, 135, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 8, 141, 175, 224, 177, 174, 224, 168, 174,
-			224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 141, 175, 224, 177, 174, 224, 168, 174,
-			224, 2, 224, 175, 130, 224, 174, 174, 224, 174, 191, 0, 8, 141, 175, 224, 184, 174, 224, 134, 175, 224, 178, 174, 224, 2, 224, 174, 191, 224,
-			174, 175, 224, 174, 169, 0, 8, 141, 175, 224, 184, 174, 224, 142, 174, 224, 129, 175, 224, 175, 174, 224, 2, 224, 174, 191, 0, 8, 149, 174,
-			224, 2, 224, 174, 190, 224, 174, 159, 224, 174, 170, 224, 175, 129, 224, 174, 176, 12, 0, 8, 149, 174, 224, 129, 175, 224, 154, 174, 224, 2,
-			224, 175, 139, 224, 174, 149, 32, 0, 8, 149, 174, 224, 129, 175, 224, 175, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 174, 164, 224, 174,
-			191, 0, 8, 149, 174, 224, 141, 175, 224, 153, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 149, 174, 224, 143, 174, 224,
-			2, 224, 175, 139, 224, 174, 149, 0, 8, 169, 174, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 175, 141, 32, 0, 8, 174, 174,
-			224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 8, 176, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0,
-			8, 176, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 175, 136, 0, 8, 181, 174, 224, 191, 174,
-			224, 154, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 169, 0, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224,
-			174, 191, 0, 8, 190, 174, 224, 154, 174, 224, 141, 175, 224, 158, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0,
-			8, 190, 174, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8, 190, 174, 224, 178, 174, 224, 129, 175, 224, 149,
-			174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 190, 174, 224, 181, 174, 224, 156, 174, 224, 2, 224, 174, 191, 224, 174, 169,
-			224, 175, 141, 0, 224, 174, 191, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 1, 134,
-			174, 224, 2, 224, 174, 176, 224, 174, 185, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181,
-			174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 164,
-			174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 169,
-			174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1, 141,
-			175, 224, 170, 174, 224, 175, 174, 224, 170, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191,
-			0, 224, 174, 191, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 169, 224,
-			174, 184, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 164, 224, 175, 128, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 149, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 154, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 224, 175, 141,
-			32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 174, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224,
-			174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224,
-			175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 139, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 174, 224, 175, 141, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 169, 0,
-			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 181, 224, 175, 129, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 169, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224, 174, 178, 224, 175, 141, 224,
-			174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 185, 224, 174, 164, 224, 175, 128, 224, 174, 154, 224, 175, 129, 0, 224, 174, 191,
-			8, 2, 224, 174, 176, 224, 174, 185, 224, 174, 164, 224, 175, 128, 224, 174, 184, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
-			174, 185, 224, 174, 184, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
-			174, 179, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 184, 224,
-			175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224,
-			174, 181, 224, 175, 135, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 32,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 178, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
-			190, 224, 174, 169, 224, 175, 141, 224, 174, 164, 224, 174, 191, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224,
-			174, 163, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224,
-			174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 163, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 177, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 181, 224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 129, 224, 174, 149,
-			224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 136, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 135, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191,
-			224, 174, 156, 224, 175, 135, 224, 174, 183, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 224, 174, 191, 8, 2,
-			224, 174, 176, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 184,
-			224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 129, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175,
-			224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135,
-			224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 175, 224, 174, 191, 224, 174, 178,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 154,
-			0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 159, 224, 175, 141,
-			0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 181, 224, 175, 129, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 140,
-			224, 174, 184, 0, 224, 174, 191, 8, 141, 175, 224, 174, 174, 224, 135, 175, 224, 149, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159,
-			224, 175, 141, 224, 174, 156, 0, 224, 174, 191, 8, 141, 175, 224, 174, 174, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190,
-			224, 174, 175, 0, 224, 175, 128, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 0, 224, 175, 129, 8, 2, 224, 174, 176,
-			224, 174, 181, 224, 175, 129, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 129, 224, 174, 169, 224, 174, 190, 224, 174, 175,
-			0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 224, 175, 129, 8, 2,
-			224, 174, 176, 224, 175, 140, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 130, 224, 174, 184, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 174, 154, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141,
-			224, 174, 174, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 154, 0, 224, 175, 141, 8, 2, 224, 174, 176,
-			224, 174, 181, 224, 175, 129, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 174, 184, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164,
-			224, 175, 141, 224, 174, 164, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 175, 129, 224, 174, 169, 224, 174, 190, 224, 174, 175, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 159,
-			224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 8, 2,
-			224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 184,
-			224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175,
-			141, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 136,
-			224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 224, 175,
-			141, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 154, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 169, 0, 224, 175,
-			141, 8, 2, 224, 174, 179, 224, 174, 181, 224, 175, 129, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 175, 130, 224, 174, 184,
-			0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 175, 140, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 129, 175, 224, 154,
-			174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174,
-			149, 224, 174, 169, 224, 175, 141, 224, 174, 168, 224, 174, 179, 224, 175, 136, 3, 71, 34, 37, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129,
-			8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175,
-			141, 224, 174, 170, 8, 2, 224, 175, 135, 224, 174, 169, 3, 71, 34, 37, 89, 71, 0, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174,
-			184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 135, 224, 174, 169, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129, 8, 2, 224, 174, 174,
-			224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 3, 71, 34, 109, 65, 0, 224, 174, 191, 224, 174, 176, 224, 174, 174, 8, 2, 224,
-			174, 169, 3, 71, 34, 109, 65, 65, 109, 0, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 178,
-			3, 71, 34, 114, 88, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 3, 71, 34, 118, 67,
-			76, 0, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 3, 71, 36, 34, 139, 0, 224, 175, 134, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 178, 3, 71, 36, 47, 0, 224, 175, 134, 224,
-			174, 169, 224, 174, 190, 224, 174, 154, 8, 2, 224, 175, 128, 224, 174, 176, 3, 71, 36, 50, 118, 88, 0, 224, 175, 134, 224, 174, 158, 224,
-			175, 141, 224, 174, 154, 8, 2, 224, 174, 174, 224, 174, 191, 224, 174, 169, 3, 71, 36, 67, 75, 109, 0, 224, 175, 134, 224, 174, 158, 224,
-			175, 141, 224, 174, 154, 8, 3, 71, 36, 67, 76, 148, 0, 224, 175, 134, 224, 174, 170, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 135,
-			3, 71, 36, 71, 71, 0, 4, 224, 175, 134, 224, 174, 154, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 159, 224, 174, 190, 3, 71, 36,
-			88, 109, 0, 224, 175, 134, 224, 174, 156, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 159, 224, 174, 190, 0, 224, 175, 134, 224, 174, 154,
-			224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 71, 36, 89, 109, 66, 139, 148, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174,
-			183, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 3, 71, 36, 140, 93, 112, 139, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174,
-			159, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 3, 71, 36, 140, 140, 0, 224, 174, 191, 224, 174, 170,
-			8, 2, 224, 174, 191, 3, 71, 37, 48, 0, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 169, 3, 71, 37, 49, 0, 224,
-			174, 191, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174,
-			190, 224, 174, 178, 224, 175, 135, 3, 71, 37, 50, 72, 0, 224, 174, 191, 224, 174, 183, 224, 174, 170, 224, 175, 141, 8, 3, 71, 37, 93,
-			109, 48, 0, 224, 174, 191, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 176, 3, 71, 37, 108, 0, 224, 175, 138, 224, 174, 149, 8, 2,
-			224, 174, 190, 224, 174, 176, 224, 175, 139, 3, 71, 39, 49, 0, 224, 175, 129, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175,
-			134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 3, 71, 40, 49, 0, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 175, 134,
-			224, 174, 159, 224, 175, 141, 8, 3, 71, 40, 55, 55, 36, 139, 0, 4, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2,
-			25, 3, 71, 40, 72, 72, 109, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 149, 224, 174, 175, 0, 224,
-			175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 149, 224, 175, 141, 0, 224, 175, 129, 224, 174, 159, 224, 174, 190, 224,
-			174, 170, 8, 2, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 3, 71, 40, 140, 118, 48, 0, 224, 174, 191, 224, 174, 179, 224,
-			174, 190, 224, 174, 149, 224, 175, 141, 8, 3, 71, 55, 118, 49, 0, 4, 224, 175, 129, 224, 174, 179, 224, 175, 130, 224, 174, 159, 224, 175,
-			130, 224, 174, 164, 224, 175, 141, 8, 3, 71, 62, 123, 139, 123, 87, 0, 224, 175, 141, 224, 174, 179, 224, 175, 130, 224, 174, 159, 224, 175,
-			130, 224, 174, 164, 224, 175, 141, 8, 0, 4, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 149, 224,
-			174, 163, 3, 71, 71, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 224, 174, 179, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 164, 224, 175, 141, 0, 224, 175,
-			141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 174, 0, 224, 175, 141, 224, 174, 170, 1, 133, 174, 224, 2, 224,
-			174, 190, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 1, 133, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 154, 0,
-			224, 175, 141, 224, 174, 170, 1, 135, 174, 224, 2, 224, 175, 130, 224, 174, 174, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174,
-			224, 2, 224, 174, 191, 32, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 191, 224, 174, 169, 32, 0, 224, 175, 141, 224,
-			174, 170, 1, 137, 174, 224, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174,
-			191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 175, 129, 224, 174, 154, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 175, 129, 224, 174, 154, 224, 174, 174, 0, 224, 175, 141, 224, 174, 170, 1,
-			141, 175, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174,
-			175, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 175, 139, 224, 174, 164, 224, 174,
-			169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 134, 174, 224, 2, 224, 174, 190, 224, 174, 159, 224, 175,
-			141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 181, 174, 224, 133, 174, 224, 2, 224, 174,
-			190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 1, 159, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224,
-			174, 170, 1, 191, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 1, 191, 174, 224,
-			164, 174, 224, 129, 175, 224, 177, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 8, 136, 175, 224,
-			178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 176, 174, 224,
-			129, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 183, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 176, 174, 224, 129, 175, 224,
-			164, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224,
-			176, 174, 224, 164, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 180, 174, 224, 128, 175, 224, 149, 174, 224,
-			2, 224, 174, 190, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 180, 174, 224,
-			128, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 174, 164, 224, 175, 141, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224,
-			180, 174, 224, 128, 175, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 174, 174, 0, 224, 175, 141, 224, 174, 170, 8, 149, 174, 224,
-			135, 175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174,
-			191, 0, 224, 175, 141, 224, 174, 170, 8, 156, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141, 224, 174, 170, 8, 156, 174, 224,
-			149, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 8,
-			159, 174, 224, 2, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 8, 159, 174, 224, 2, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 224,
-			175, 141, 224, 174, 170, 8, 169, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 224, 175, 141, 224,
-			174, 170, 8, 175, 174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 224, 175, 141, 224,
-			174, 170, 8, 176, 174, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 224, 175, 141, 224,
-			174, 170, 8, 178, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 8, 178, 174, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174,
-			149, 0, 224, 175, 141, 224, 174, 170, 8, 179, 174, 224, 141, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 224,
-			175, 141, 224, 174, 170, 8, 185, 174, 224, 2, 224, 174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 18, 68, 2,
-			224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 169, 174, 224, 174, 174, 224, 2,
-			224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 149, 174, 224, 129, 175, 224, 154, 174, 224, 2,
-			224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 4, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 174, 153, 224, 175, 141,
-			224, 174, 149, 224, 174, 179, 224, 174, 190, 3, 71, 71, 109, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 174, 164, 224, 174, 191,
-			224, 174, 178, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224,
-			174, 178, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 178, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141,
-			224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 178, 224, 174, 190, 224, 174, 169, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224,
-			174, 178, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 175, 0,
-			224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 175, 174, 224, 137, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0,
-			224, 175, 141, 224, 174, 170, 8, 129, 175, 224, 180, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 224, 174, 170,
-			8, 137, 174, 224, 2, 224, 174, 178, 224, 175, 141, 32, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 176, 174, 224, 129, 175, 224, 164,
-			174, 224, 2, 224, 174, 178, 0, 224, 175, 141, 224, 174, 170, 8, 176, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 170, 8, 179,
-			174, 224, 149, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 185, 174, 224, 2, 224, 174, 176, 224, 175, 141,
-			224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 8, 191, 174, 224, 176, 174, 224, 2, 224, 174, 169, 0, 4, 224, 175, 141, 224, 174, 170, 1,
-			141, 175, 224, 176, 174, 224, 149, 174, 224, 3, 71, 71, 148, 0, 224, 175, 141, 224, 174, 170, 8, 129, 175, 224, 154, 174, 224, 174, 174, 224,
-			190, 174, 224, 176, 174, 224, 0, 224, 175, 141, 224, 174, 170, 8, 190, 174, 224, 181, 174, 224, 168, 174, 224, 0, 224, 175, 141, 224, 174, 170,
-			8, 191, 174, 224, 149, 174, 224, 190, 174, 224, 154, 174, 224, 0, 224, 175, 141, 224, 174, 170, 8, 191, 174, 224, 185, 174, 224, 190, 174, 224,
-			154, 174, 224, 0, 4, 3, 71, 109, 0, 1, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 1, 141, 175,
-			224, 170, 174, 224, 136, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 1, 141, 175, 224, 170, 174, 224, 136, 175, 224, 178, 174,
-			224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 179, 224, 175, 129, 0, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 129, 175, 224, 175, 174,
-			224, 134, 174, 224, 2, 224, 174, 178, 0, 1, 141, 175, 224, 174, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 2, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 0, 1, 141, 175, 224, 184, 174, 224, 133, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0,
-			1, 149, 174, 224, 2, 224, 174, 159, 0, 1, 164, 174, 224, 2, 224, 174, 184, 0, 1, 174, 174, 224, 141, 175, 224, 164, 174, 224, 134, 174,
-			224, 2, 224, 174, 178, 0, 1, 174, 174, 224, 141, 175, 224, 169, 174, 224, 134, 174, 224, 2, 224, 174, 178, 0, 1, 174, 174, 224, 176, 174,
-			224, 170, 174, 224, 2, 224, 174, 149, 224, 175, 141, 224, 174, 164, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 149, 224,
-			175, 141, 224, 174, 164, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 164, 224, 175, 141, 0, 1, 175, 174, 224, 191, 174,
+			175, 129, 224, 174, 184, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 129, 224, 174, 184, 224, 175, 141, 224,
+			174, 184, 224, 175, 134, 0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224,
+			174, 149, 224, 175, 139, 224, 174, 178, 0, 8, 2, 224, 175, 130, 224, 174, 149, 224, 175, 139, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224,
+			174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224,
+			174, 159, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 149, 224, 174, 163, 0, 8, 2, 224, 175, 130, 224,
+			174, 164, 224, 174, 149, 224, 174, 163, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 149, 224,
+			175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 164, 224,
+			175, 141, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 170, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224,
+			174, 175, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 174, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 181, 224, 175, 129, 224,
+			174, 159, 224, 174, 174, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 174, 176, 0,
+			8, 2, 224, 175, 130, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224,
+			174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 135, 224, 174, 181, 224, 174, 191, 0, 8, 2, 224, 175, 130, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224,
+			175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224,
+			175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224,
+			175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224,
+			174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 130, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 130, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224,
+			174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 130, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224,
+			175, 130, 224, 174, 170, 224, 174, 169, 224, 175, 135, 0, 8, 2, 224, 175, 130, 224, 174, 170, 224, 174, 190, 224, 174, 179, 0, 8, 2, 224,
+			175, 130, 224, 174, 174, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224,
+			174, 190, 224, 174, 164, 224, 174, 190, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 190, 224, 174, 164, 224, 175, 135, 224, 174, 181, 224,
+			174, 191, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 175, 130, 224, 174, 174, 224, 174, 191, 0,
+			8, 2, 224, 175, 130, 224, 174, 176, 224, 175, 141, 224, 174, 183, 0, 8, 2, 224, 175, 130, 224, 174, 178, 224, 175, 139, 224, 174, 149, 0,
+			8, 2, 224, 175, 130, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224,
+			175, 130, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224,
+			175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 174, 174, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224,
+			175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 174, 0, 8, 2, 224, 175, 134, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 178, 0,
+			8, 2, 224, 175, 134, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 149, 224, 175, 139, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0,
+			8, 2, 224, 175, 134, 224, 174, 169, 224, 174, 154, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224,
+			174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224,
+			174, 183, 224, 174, 190, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224,
+			174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224,
+			175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 191, 224, 174, 153, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224,
+			174, 178, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 134, 224, 174, 179, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224,
+			175, 135, 224, 174, 149, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 175, 135, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224,
+			175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224,
+			174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 154, 224, 175, 141, 224,
+			174, 154, 224, 175, 129, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 156, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224,
+			175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0,
+			8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 174, 224, 174, 191, 0,
+			8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 174, 224, 175, 129, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 178, 224, 174, 191, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 135, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 169, 224,
+			174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 174, 190, 224, 174, 169, 224,
+			174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 178, 0, 8, 2, 224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224,
+			175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2, 224, 175, 135, 224, 174, 178, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224,
+			175, 135, 224, 174, 178, 224, 175, 141, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224, 174, 190, 0, 8, 2, 224, 175, 136, 32, 224, 174, 170,
+			224, 175, 136, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2,
+			224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149,
+			224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 136, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174,
+			0, 8, 2, 224, 175, 136, 224, 174, 154, 224, 174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2,
+			224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 175, 136, 224, 174, 169, 224, 174, 190, 224, 174, 174, 224, 174, 191,
+			0, 8, 2, 224, 175, 136, 224, 174, 170, 224, 174, 191, 224, 174, 179, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 169, 0, 8, 2,
+			224, 175, 136, 224, 174, 176, 224, 174, 181, 0, 8, 2, 224, 175, 136, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 174, 191, 0, 8, 2,
+			224, 175, 138, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 135, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174,
+			224, 174, 169, 0, 8, 2, 224, 175, 138, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 178, 0, 8, 2, 224, 175, 138, 224, 174, 174,
+			224, 175, 141, 224, 174, 174, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 131, 224, 174, 170, 224, 175, 139, 224, 174, 176, 224, 175, 141,
+			0, 8, 2, 224, 175, 139, 224, 174, 149, 32, 18, 78, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 153, 224, 175, 141, 224, 174, 149,
+			0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 169, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 178, 224, 175, 141,
+			224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191,
+			224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 175, 139,
+			224, 174, 149, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 0, 8, 2,
+			224, 175, 139, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 175, 139, 224, 174, 156, 0, 8, 2, 224, 175, 139,
+			224, 174, 159, 224, 175, 139, 0, 8, 2, 224, 175, 139, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 175, 139,
+			224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 149, 224, 174, 169, 0, 8, 2,
+			224, 175, 139, 224, 174, 164, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 169, 0, 8, 2, 224, 175, 139,
+			224, 174, 164, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 154,
+			224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 154, 224, 174, 164, 224, 175, 141, 224, 174, 181,
+			0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 175, 139,
+			224, 174, 164, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141,
+			224, 174, 170, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 164,
+			224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 175, 139, 224, 174, 169,
+			224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 175, 136,
+			0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 184, 224, 175, 141, 224, 174, 178, 224, 175, 135, 0, 8, 2, 224, 175, 139,
+			224, 174, 176, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 174, 190, 224, 174, 174, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 159, 224, 174, 191,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 164, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 174, 159, 224, 174, 191,
+			224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 129, 224, 174, 174,
+			224, 175, 141, 32, 224, 174, 133, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 32, 224, 174, 133, 224,
+			174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 224, 175, 141, 32,
+			224, 174, 133, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 181, 224, 175, 134, 224, 174, 178,
+			224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 183, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 184, 0, 8, 2, 224, 175, 139,
+			224, 174, 184, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 175, 140,
+			224, 174, 164, 224, 175, 128, 224, 174, 149, 0, 8, 2, 224, 175, 140, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 175, 140,
+			224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 175, 140, 224, 174, 178, 224, 174, 191, 224, 174, 153, 224, 175, 141,
+			0, 8, 2, 224, 175, 140, 224, 174, 179, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 175, 140, 224, 174, 183, 0, 8, 32,
+			18, 77, 2, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 32, 18, 86, 2, 224, 174, 190,
+			224, 174, 181, 0, 8, 32, 136, 175, 224, 170, 174, 224, 2, 224, 175, 136, 0, 8, 32, 141, 175, 224, 159, 174, 224, 134, 175, 224, 159, 174,
+			224, 2, 224, 174, 190, 224, 174, 159, 224, 174, 191, 0, 8, 32, 141, 175, 224, 174, 174, 224, 130, 175, 224, 176, 174, 224, 2, 224, 174, 190,
+			224, 174, 175, 0, 8, 32, 141, 175, 224, 176, 174, 224, 128, 175, 224, 154, 174, 224, 169, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 175,
+			129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 0, 8, 32, 191, 174, 224, 159, 174, 224, 190, 174, 224, 170, 174, 224, 2, 224,
+			174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 133, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32,
+			0, 8, 141, 175, 224, 163, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 141, 175, 224, 169, 174, 224, 129,
+			175, 224, 164, 174, 224, 2, 224, 175, 129, 224, 174, 177, 0, 8, 141, 175, 224, 169, 174, 224, 133, 174, 224, 2, 224, 175, 129, 224, 174, 159,
+			0, 8, 141, 175, 224, 169, 174, 224, 176, 174, 224, 135, 175, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 141,
+			175, 224, 170, 174, 224, 191, 174, 224, 179, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 174, 190, 224, 174, 149, 0, 8, 141, 175, 224, 176,
+			174, 224, 190, 174, 224, 174, 174, 224, 2, 224, 175, 129, 224, 174, 159, 0, 8, 141, 175, 224, 176, 174, 224, 190, 174, 224, 174, 174, 224, 2,
+			224, 175, 139, 224, 174, 159, 0, 8, 141, 175, 224, 184, 174, 224, 134, 175, 224, 178, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 169,
+			0, 8, 141, 175, 224, 184, 174, 224, 142, 174, 224, 129, 175, 224, 175, 174, 224, 2, 224, 174, 191, 0, 8, 149, 174, 224, 2, 224, 174, 190,
+			224, 174, 159, 224, 174, 170, 224, 175, 129, 224, 174, 176, 12, 0, 8, 149, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 149, 174, 224,
+			143, 174, 224, 2, 224, 175, 139, 224, 174, 149, 0, 8, 164, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 8, 174, 174, 224, 154, 174, 224,
+			2, 224, 174, 190, 224, 174, 149, 0, 8, 176, 174, 224, 174, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 176, 174, 224,
+			174, 174, 224, 2, 224, 175, 129, 224, 174, 176, 224, 174, 191, 224, 174, 174, 224, 175, 136, 0, 8, 181, 174, 224, 191, 174, 224, 154, 174, 224,
+			2, 224, 174, 190, 224, 174, 178, 224, 174, 169, 0, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 8,
+			190, 174, 224, 154, 174, 224, 141, 175, 224, 158, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 190, 174, 224,
+			176, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8, 190, 174, 224, 178, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224,
+			174, 191, 224, 174, 169, 224, 175, 141, 0, 8, 190, 174, 224, 181, 174, 224, 156, 174, 224, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 0,
+			224, 174, 191, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 1, 134, 174, 224, 2, 224,
+			174, 176, 224, 174, 185, 224, 174, 190, 224, 174, 174, 0, 224, 174, 191, 1, 141, 175, 224, 163, 174, 224, 128, 175, 224, 181, 174, 224, 2, 224,
+			174, 176, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 164, 174, 224, 141, 175, 224, 164, 174, 224, 191, 174,
+			224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 175, 136, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174, 224, 169, 174, 224, 174, 174,
+			224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 1, 141, 175, 224, 170, 174,
+			224, 175, 174, 224, 170, 174, 224, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191,
+			2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 224, 174, 169, 224, 174, 184, 224, 175,
+			141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 149, 224, 174, 164, 224, 175, 128, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 149, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 154, 224,
+			174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 224, 175, 141, 32, 0, 224, 174,
+			191, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174,
+			190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 224, 174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 164, 224, 175, 141, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 174, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			174, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174,
+			174, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 183, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 184, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 185, 224, 174, 164, 224, 175, 128, 224, 174, 154, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174,
+			176, 224, 174, 185, 224, 174, 164, 224, 175, 128, 224, 174, 184, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 185, 224, 174,
+			184, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174,
+			178, 224, 174, 190, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 181, 224, 175,
+			135, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 32, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 0, 224,
+			174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 163, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174,
+			190, 224, 174, 174, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 174, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 175, 224, 175, 141, 224, 174, 178, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 190, 224, 174, 181, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 169, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 177, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 190, 224, 174, 181, 224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 129, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 224, 175, 136, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 135, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			174, 191, 224, 174, 159, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224,
+			174, 169, 224, 174, 191, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224,
+			174, 176, 224, 175, 129, 224, 174, 149, 224, 175, 129, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0,
+			224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224,
+			175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 136, 224, 174, 178, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224,
+			174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 169, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 181, 224,
+			175, 129, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 175, 140, 224, 174, 184, 0, 224, 174, 191, 8, 141, 175, 224, 174, 174,
+			224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 164, 224, 174, 190, 224, 174, 175, 0, 224, 175, 128, 8, 2, 224, 174, 176, 224, 174, 190, 224,
+			174, 174, 224, 174, 163, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 174, 181, 224, 175, 129, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224,
+			174, 176, 224, 175, 129, 224, 174, 169, 224, 174, 190, 224, 174, 175, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224,
+			175, 141, 224, 174, 149, 224, 174, 176, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 154, 0, 224, 175, 129, 8, 2, 224,
+			174, 179, 224, 175, 130, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 154, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0,
+			224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 174, 224, 175, 141, 224, 174, 174, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 181, 224,
+			175, 129, 224, 174, 154, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 183, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224,
+			174, 184, 224, 174, 178, 224, 175, 141, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224,
+			174, 164, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 181, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224,
+			175, 129, 224, 174, 169, 224, 174, 190, 224, 174, 175, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0,
+			224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224,
+			175, 134, 224, 174, 175, 224, 175, 141, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 135, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224,
+			174, 176, 224, 175, 136, 224, 174, 178, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
+			174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 140, 224, 174, 154, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 140, 224,
+			174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 181, 224, 175, 129, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224,
+			175, 130, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 175, 140, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191,
+			1, 129, 175, 224, 154, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224, 174, 163, 224, 174, 191, 0, 4, 224, 174, 191, 224, 174, 176, 224, 175,
+			129, 8, 2, 224, 174, 149, 224, 174, 169, 224, 175, 141, 224, 174, 168, 224, 174, 179, 224, 175, 136, 3, 71, 34, 37, 0, 224, 174, 191, 224,
+			174, 176, 224, 175, 129, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 0, 4, 224, 174, 191, 224, 174, 176, 224, 174, 191,
+			224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 135, 224, 174, 169, 3, 71, 34, 37, 89, 71, 0, 224, 175, 141, 224, 174, 176,
+			224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 170, 8, 2, 224, 175, 135, 224, 174, 169, 0, 224, 174, 191, 224, 174, 176, 224, 175, 129,
+			8, 2, 224, 174, 174, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 3, 71, 34, 109, 65, 0, 224, 174, 191, 224, 174, 176, 224,
+			174, 174, 8, 2, 224, 174, 169, 3, 71, 34, 109, 65, 65, 109, 0, 224, 174, 191, 224, 174, 176, 224, 175, 135, 224, 174, 154, 8, 2, 224,
+			174, 191, 224, 174, 178, 3, 71, 34, 114, 88, 0, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8,
+			3, 71, 34, 118, 67, 76, 0, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224, 174, 159, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 163,
+			224, 175, 141, 224, 174, 159, 3, 71, 36, 34, 140, 0, 224, 175, 134, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 178, 3, 71, 36, 47,
+			0, 224, 175, 134, 224, 174, 169, 224, 174, 190, 224, 174, 154, 8, 2, 224, 175, 128, 224, 174, 176, 3, 71, 36, 50, 118, 88, 0, 224, 175,
+			134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 2, 224, 174, 174, 224, 174, 191, 224, 174, 169, 3, 71, 36, 67, 75, 109, 0, 224, 175,
+			134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 3, 71, 36, 67, 76, 149, 0, 224, 175, 134, 224, 174, 170, 224, 175, 141, 224, 174, 170,
+			8, 2, 224, 175, 135, 3, 71, 36, 71, 71, 0, 224, 175, 134, 224, 174, 154, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 3, 71, 36,
+			89, 109, 66, 140, 149, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 183, 224, 175, 128, 224, 174, 159, 224, 175, 141, 8, 3, 71,
+			36, 141, 93, 112, 140, 0, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 175, 129, 3, 71, 36, 141, 141, 0, 224, 174, 191, 224, 174, 170, 8, 2, 224, 174, 191, 3, 71, 37, 48, 0, 224, 174, 191,
+			224, 174, 183, 224, 174, 170, 224, 175, 141, 8, 3, 71, 37, 93, 109, 48, 0, 224, 175, 129, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174,
+			176, 224, 175, 134, 224, 174, 184, 224, 175, 141, 224, 174, 159, 3, 71, 40, 49, 0, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178,
+			224, 175, 134, 224, 174, 159, 224, 175, 141, 8, 3, 71, 40, 55, 55, 36, 140, 0, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164,
+			8, 2, 25, 3, 71, 40, 72, 72, 109, 0, 224, 175, 129, 224, 174, 159, 224, 174, 190, 224, 174, 170, 8, 2, 224, 175, 134, 224, 174, 184,
+			224, 175, 141, 224, 174, 159, 3, 71, 40, 141, 118, 48, 0, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 149, 224, 175, 141, 8, 3,
+			71, 55, 118, 49, 0, 4, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 164, 224, 175, 141, 3, 71,
+			71, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 175, 130, 224, 174, 164, 224, 174, 174, 0, 224, 175, 141, 224, 174, 170, 1, 129,
+			175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 174, 163, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174,
+			170, 1, 133, 174, 224, 2, 224, 174, 190, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 1, 133, 174, 224, 2, 224, 174, 191, 224, 174, 175,
+			224, 174, 190, 224, 174, 154, 0, 224, 175, 141, 224, 174, 170, 1, 135, 174, 224, 2, 224, 175, 130, 224, 174, 174, 224, 174, 191, 0, 224, 175,
+			141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 191, 32, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 191, 224, 174,
+			169, 32, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 0, 224, 175, 141, 224, 174, 170,
+			1, 137, 174, 224, 2, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 175, 129, 224, 174, 154, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 175, 129, 224, 174, 154, 224, 174, 174, 0,
+			224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 224, 174, 191, 224, 174, 175, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224,
+			175, 139, 224, 174, 164, 224, 174, 169, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 134, 174, 224, 2, 224,
+			174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 224, 175, 141, 224, 174, 170, 1, 191, 174, 224, 159, 174, 224, 133, 174, 224, 2, 224,
+			174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 1, 191, 174, 224, 164, 174, 224, 129, 175, 224, 177, 174, 224, 135, 174, 224, 2, 224,
+			174, 190, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 8, 141, 175, 224, 176, 174, 224, 164, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141,
+			224, 174, 170, 8, 149, 174, 224, 135, 175, 224, 164, 174, 224, 141, 175, 224, 168, 174, 224, 154, 174, 224, 2, 224, 175, 129, 224, 174, 164, 224,
+			175, 141, 224, 174, 164, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 156, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 224, 175, 141,
+			224, 174, 170, 8, 156, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0,
+			224, 175, 141, 224, 174, 170, 8, 159, 174, 224, 2, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 8, 159, 174, 224, 2, 224, 174, 191, 224,
+			174, 153, 224, 175, 141, 0, 224, 175, 141, 224, 174, 170, 8, 178, 174, 224, 2, 224, 175, 136, 0, 224, 175, 141, 224, 174, 170, 8, 179, 174,
+			224, 141, 175, 224, 149, 174, 224, 2, 224, 175, 129, 224, 174, 149, 224, 174, 179, 0, 224, 175, 141, 224, 174, 170, 8, 185, 174, 224, 2, 224,
+			174, 191, 224, 174, 179, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 169, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 174, 174, 224,
+			175, 136, 0, 4, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 174, 190, 3,
+			71, 71, 109, 0, 224, 175, 141, 224, 174, 170, 1, 18, 68, 2, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 224, 175, 141, 224, 174, 170,
+			1, 18, 68, 2, 224, 174, 184, 0, 224, 175, 141, 224, 174, 170, 1, 133, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
+			174, 224, 174, 190, 0, 224, 175, 141, 224, 174, 170, 1, 137, 174, 224, 2, 224, 174, 178, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 224,
+			174, 170, 1, 137, 174, 224, 2, 224, 174, 178, 224, 174, 190, 224, 174, 169, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224,
+			191, 174, 224, 168, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224,
+			191, 174, 224, 168, 174, 224, 2, 224, 174, 175, 0, 224, 175, 141, 224, 174, 170, 1, 141, 175, 224, 176, 174, 224, 191, 174, 224, 175, 174, 224,
+			137, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 137, 174, 224, 2, 224, 174, 178, 224, 175, 141, 32, 0,
+			224, 175, 141, 224, 174, 170, 8, 176, 174, 224, 2, 224, 174, 176, 0, 224, 175, 141, 224, 174, 170, 8, 179, 174, 224, 149, 174, 224, 2, 224,
+			174, 178, 224, 174, 191, 0, 224, 175, 141, 224, 174, 170, 8, 191, 174, 224, 176, 174, 224, 2, 224, 174, 169, 0, 4, 224, 175, 141, 224, 174,
+			170, 1, 141, 175, 224, 176, 174, 224, 149, 174, 224, 3, 71, 71, 149, 0, 224, 175, 141, 224, 174, 170, 8, 129, 175, 224, 154, 174, 224, 0,
+			224, 175, 141, 224, 174, 170, 8, 129, 175, 224, 154, 174, 224, 174, 174, 224, 190, 174, 224, 176, 174, 224, 0, 224, 175, 141, 224, 174, 170, 8,
+			190, 174, 224, 181, 174, 224, 168, 174, 224, 0, 4, 3, 71, 109, 0, 1, 129, 175, 224, 177, 174, 224, 174, 174, 224, 2, 224, 174, 159, 224,
+			174, 191, 0, 1, 141, 175, 224, 170, 174, 224, 136, 175, 224, 159, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 1, 141, 175, 224, 170, 174,
+			224, 136, 175, 224, 178, 174, 224, 135, 175, 224, 181, 174, 224, 2, 224, 174, 179, 224, 175, 129, 0, 1, 141, 175, 224, 170, 174, 224, 164, 174,
+			224, 129, 175, 224, 175, 174, 224, 134, 174, 224, 2, 224, 174, 178, 0, 1, 141, 175, 224, 174, 174, 224, 2, 224, 174, 159, 0, 1, 141, 175,
+			224, 174, 174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 133, 174, 224, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 1, 141, 175,
+			224, 184, 174, 224, 133, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 1, 149, 174, 224, 2, 224, 174, 159, 0, 1, 164, 174,
+			224, 2, 224, 174, 184, 0, 1, 174, 174, 224, 141, 175, 224, 164, 174, 224, 134, 174, 224, 2, 224, 174, 178, 0, 1, 174, 174, 224, 141, 175,
+			224, 169, 174, 224, 134, 174, 224, 2, 224, 174, 178, 0, 1, 174, 174, 224, 176, 174, 224, 170, 174, 224, 2, 224, 174, 149, 224, 175, 141, 224,
+			174, 164, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 2, 224, 174, 149, 224, 175, 141, 224, 174, 164, 0, 1, 175, 174, 224, 191, 174,
 			224, 176, 174, 224, 134, 174, 224, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 1, 190, 174, 224, 149, 174, 224, 2, 224,
 			174, 176, 0, 1, 190, 174, 224, 149, 174, 224, 190, 174, 224, 168, 174, 224, 2, 224, 174, 176, 224, 174, 163, 0, 1, 190, 174, 224, 164, 174,
-			224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 163, 0, 1, 190, 174, 224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224,
-			174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 1, 190, 174, 224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224,
-			174, 174, 0, 1, 191, 174, 224, 169, 174, 224, 2, 224, 174, 149, 224, 174, 181, 224, 174, 190, 224, 174, 169, 224, 175, 141, 0, 2, 224, 174,
-			159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 18, 71, 224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 163, 224, 174, 190,
-			0, 8, 2, 18, 71, 224, 175, 129, 224, 174, 156, 0, 8, 2, 28, 17, 12, 0, 8, 2, 224, 174, 131, 224, 174, 170, 224, 175, 130, 224,
-			174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224,
-			174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224, 174, 164, 0, 8, 2, 224, 174, 149, 224,
-			174, 181, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224,
-			174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 149, 224,
-			174, 190, 224, 174, 154, 224, 175, 130, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224,
-			174, 149, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 149, 224, 174, 191, 224, 174, 183, 224,
-			175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 149, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 149, 224, 175, 129, 224, 174, 179, 0,
-			8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 153, 224, 175, 141, 18, 71, 224, 174, 190, 224, 174, 174, 0, 8,
-			2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
-			134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 169, 224, 175, 141, 224, 174,
-			177, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 163, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174,
-			174, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 174, 190, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174,
-			149, 224, 174, 179, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8,
-			2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 154, 224, 174, 181, 224, 174, 149, 224, 174, 178, 224, 175,
-			141, 224, 174, 175, 224, 174, 190, 224, 174, 163, 0, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 169, 0, 8, 2, 224, 174,
-			154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 156, 0, 8, 2, 224, 174, 159, 224, 175, 129, 224, 174,
-			149, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174,
-			190, 224, 174, 181, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 163, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174,
-			154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174,
-			170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 156, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 175,
-			141, 224, 174, 156, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 149, 224, 175,
-			141, 224, 174, 184, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174,
-			159, 224, 174, 190, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174,
-			190, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174,
-			159, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 170, 224, 175,
-			141, 224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174,
-			170, 224, 174, 190, 224, 174, 149, 224, 175, 129, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174,
-			168, 224, 175, 141, 224, 174, 164, 32, 224, 174, 170, 224, 174, 190, 224, 174, 154, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224,
-			174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 169, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 174, 0, 8, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
-			174, 164, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224,
-			174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224,
-			174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 170, 224, 174, 184, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 169, 224, 174, 190, 224,
-			174, 176, 224, 174, 154, 0, 8, 2, 224, 174, 169, 224, 174, 190, 224, 174, 176, 224, 174, 184, 0, 8, 2, 224, 174, 169, 224, 174, 191, 224,
-			174, 175, 224, 174, 169, 0, 8, 2, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224,
-			174, 179, 0, 8, 2, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224,
-			174, 154, 224, 174, 178, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224,
-			174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129, 224, 174, 174, 224, 175, 141, 32, 224, 174, 159, 224, 175, 128, 224, 174, 175, 224, 175, 129,
-			224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 176, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159,
-			224, 174, 191, 0, 8, 2, 224, 174, 170, 224, 174, 191, 224, 174, 179, 224, 175, 141, 224, 174, 149, 224, 174, 174, 224, 175, 141, 0, 8, 2,
-			224, 174, 170, 224, 175, 130, 224, 174, 169, 0, 8, 2, 224, 174, 170, 224, 175, 141, 224, 174, 179, 224, 174, 191, 224, 174, 174, 224, 174, 190,
-			224, 174, 184, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170,
-			224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 175, 32, 224, 174, 137, 224, 174, 163, 224, 174, 176, 224, 175, 141, 0, 8, 2, 224, 174,
-			175, 32, 224, 174, 176, 224, 175, 135, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 175, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224,
-			174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 175, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224,
-			174, 175, 224, 174, 168, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 174, 149, 224, 175, 141, 224, 174, 164, 224, 174, 191, 0,
-			8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 174, 0, 8, 2, 224, 174, 175, 224, 174, 176, 224,
-			175, 135, 224, 174, 149, 224, 175, 136, 0, 8, 2, 224, 174, 175, 224, 174, 190, 224, 174, 178, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224,
-			174, 175, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 174, 163, 224,
-			175, 128, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224,
-			174, 164, 224, 174, 168, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 176, 224,
-			174, 164, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 224, 174, 191, 224, 174, 159, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224,
-			174, 174, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224,
-			174, 159, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224,
-			174, 164, 224, 175, 141, 224, 174, 181, 224, 174, 190, 224, 174, 156, 0, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 32,
-			224, 174, 146, 224, 174, 170, 224, 174, 190, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 159, 0, 8, 2,
-			224, 174, 176, 224, 175, 141, 224, 174, 131, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 176,
-			0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 164, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190,
-			224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 149, 224, 175, 128,
-			224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 154, 224, 174, 190, 224, 174, 178,
-			224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169,
-			0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 178,
-			224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 164,
-			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 177, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149,
-			224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 154, 224, 175, 141, 0, 8, 2,
-			224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141,
-			224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 159, 0, 8, 2,
-			224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 174, 170,
-			224, 175, 141, 224, 174, 170, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141,
-			224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 129, 0, 8, 2,
-			224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 170,
-			224, 175, 141, 224, 174, 170, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 176, 224, 175, 128,
-			224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 175, 136, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 176,
-			224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175, 136, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 159, 224, 175, 136,
-			224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 159, 224, 175, 136, 224, 174, 175, 0, 8, 2,
-			224, 174, 178, 224, 174, 174, 224, 174, 163, 224, 175, 136, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 174,
-			224, 174, 169, 224, 175, 136, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 177, 224, 175, 141,
-			224, 174, 177, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 179, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190,
-			224, 174, 149, 17, 67, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 174, 181, 0, 8, 2, 224,
-			174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 174, 181, 224, 175, 135, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224,
-			174, 149, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224,
-			174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224,
-			174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 175, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224,
-			174, 190, 224, 174, 175, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 8, 2, 224,
-			174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 149, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 176, 224, 175, 129, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 178, 0,
-			8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 180, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224,
-			174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 175, 136, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0,
-			8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 175, 136, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224,
-			175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 177, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224,
-			174, 174, 224, 175, 129, 224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 179, 224,
-			175, 141, 224, 174, 179, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 130, 224, 174, 159, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224,
-			174, 178, 224, 174, 174, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224,
-			175, 135, 224, 174, 175, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 139, 0, 8, 2, 224, 174, 178, 224, 174, 176, 224,
-			174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 181, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224,
-			174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 181, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224,
-			174, 185, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224,
-			174, 178, 224, 174, 191, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 138, 0, 8, 2, 224,
-			174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224,
-			175, 141, 224, 174, 149, 224, 175, 138, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 156, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224,
-			174, 191, 224, 174, 170, 224, 175, 128, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224,
-			174, 191, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 175, 128, 224, 174, 156, 224, 174, 190, 0, 8, 2, 224,
-			174, 178, 224, 175, 130, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 175, 135, 224, 174, 176, 224, 174, 191, 224,
-			174, 175, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224,
-			175, 129, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 179, 224, 175, 129, 0, 8, 2, 224,
-			174, 181, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 181, 224, 174, 168, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224,
-			174, 169, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 163, 224, 174, 191, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 169, 224,
-			174, 191, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224,
-			174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0,
-			8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 178, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 178, 224, 174, 191, 224,
-			174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 181, 224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 181, 224,
-			175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 181, 224, 175, 141, 224, 174, 181, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 183, 224,
-			175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 184, 0, 8, 2, 224, 174, 185, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224,
-			174, 185, 224, 174, 190, 224, 174, 174, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 185, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224,
-			174, 185, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 185, 224, 174, 191, 224, 174, 176, 224,
-			174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 185, 224, 175, 141, 224, 174, 176, 224, 175, 134, 224, 174, 175, 0, 8, 32, 141,
-			175, 224, 174, 174, 224, 129, 175, 224, 175, 174, 224, 128, 175, 224, 159, 174, 224, 2, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129,
-			224, 174, 174, 224, 175, 141, 32, 0, 8, 32, 141, 175, 224, 178, 174, 224, 149, 174, 224, 129, 175, 224, 156, 174, 224, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 191, 0, 8, 32, 164, 174, 224, 141, 175, 224, 168, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174, 168,
-			224, 175, 141, 224, 174, 164, 0, 8, 129, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 174, 164, 0, 8, 129, 175, 224, 149, 174, 224, 190,
-			174, 224, 154, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 8, 129, 175, 224, 179, 174, 224, 141, 175, 224, 179, 174, 224, 164, 174, 224, 2,
-			224, 174, 159, 224, 174, 191, 0, 8, 141, 175, 224, 163, 174, 224, 175, 174, 224, 170, 174, 224, 2, 224, 174, 159, 0, 8, 141, 175, 224, 170,
-			174, 224, 149, 174, 224, 141, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 8, 141, 175, 224, 178, 174, 224, 138, 175, 224, 154,
-			174, 224, 2, 224, 174, 181, 0, 8, 141, 175, 224, 184, 174, 224, 185, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141,
-			175, 224, 184, 174, 224, 191, 174, 224, 178, 174, 224, 2, 224, 174, 169, 0, 8, 149, 174, 224, 2, 224, 174, 164, 224, 175, 141, 0, 8, 149,
-			174, 224, 2, 224, 174, 174, 224, 175, 141, 32, 0, 8, 149, 174, 224, 2, 224, 174, 179, 224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8,
-			149, 174, 224, 2, 224, 174, 179, 224, 175, 128, 224, 174, 149, 224, 174, 176, 0, 8, 149, 174, 224, 135, 175, 224, 164, 174, 224, 2, 224, 174,
-			178, 0, 8, 149, 174, 224, 141, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 8, 164, 174, 224, 2, 224, 174, 154, 0, 8,
-			164, 174, 224, 141, 175, 224, 168, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 174, 174, 224,
-			154, 174, 224, 2, 224, 174, 178, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 174, 174, 224, 154, 174, 224, 2, 224, 174,
-			178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 174, 174, 224, 154, 174, 224, 2, 224, 174, 178, 224, 174, 174, 0, 8, 190, 174, 224,
-			149, 174, 224, 174, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 8, 190, 174, 224, 164, 174, 224, 2, 32, 0, 8, 190, 174, 224, 164, 174,
-			224, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 163, 224, 174, 178, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 153, 224,
-			175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175, 138, 0,
-			8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 168, 224,
-			175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 174, 0, 224, 175, 129, 8, 2, 224,
-			174, 176, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 190, 0, 224, 175, 134, 8, 141, 175, 224, 184, 174, 224, 185, 174,
-			224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 224, 174, 176, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 3, 71, 109, 34,
-			83, 0, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 156, 3, 71,
-			109, 34, 109, 47, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 8, 2, 32, 3,
-			71, 109, 47, 47, 37, 34, 109, 48, 0, 4, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 164, 3, 71, 109, 49, 0, 224, 174, 149, 224,
-			175, 141, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 164, 0, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 175, 129, 224, 174,
-			178, 224, 175, 129, 3, 71, 109, 50, 47, 0, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 191, 8, 2, 224, 174, 176,
-			224, 174, 175, 224, 175, 139, 3, 71, 109, 55, 109, 48, 48, 0, 224, 174, 178, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 149, 8,
-			2, 224, 174, 190, 224, 174, 176, 3, 71, 109, 55, 118, 72, 49, 0, 224, 174, 178, 224, 175, 129, 224, 174, 154, 8, 2, 224, 174, 191, 224,
-			174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 169, 3, 71, 109, 55, 122, 76, 0, 224, 174, 178, 224, 175, 141, 224, 174, 159,
-			8, 2, 224, 174, 191, 3, 71, 109, 55, 139, 0, 224, 174, 175, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 139, 224,
-			174, 170, 224, 175, 141, 8, 3, 71, 109, 57, 118, 89, 49, 119, 48, 0, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176,
-			3, 71, 109, 68, 49, 109, 0, 224, 174, 164, 1, 141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 178,
-			3, 71, 109, 72, 0, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 154, 8, 2, 224, 174, 178, 3, 71, 109, 72, 34,
-			118, 76, 109, 0, 4, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174,
-			179, 224, 174, 191, 3, 71, 109, 72, 72, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 170,
-			224, 174, 190, 224, 174, 149, 224, 175, 129, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191,
-			32, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
-			149, 224, 175, 129, 0, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224,
-			174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 154, 8, 2, 224, 174, 178, 3, 71, 109, 72, 72,
-			37, 34, 118, 76, 109, 0, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 163, 224, 175, 141, 224, 174, 159, 3, 71, 109, 81,
-			0, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 190, 224, 174, 184, 3, 71, 109, 108, 0, 224, 174, 159, 8, 2, 224, 174,
-			190, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224, 174, 169, 3, 71, 109, 139, 0, 224, 175, 128, 224, 174, 164, 8, 2, 224, 175, 139, 224,
-			174, 181, 224, 174, 169, 3, 71, 112, 47, 0, 224, 175, 128, 224, 174, 154, 224, 175, 141, 8, 2, 224, 174, 178, 3, 71, 112, 76, 0, 224,
-			175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 159, 224, 175, 141, 8, 3, 71, 112, 139, 34, 123, 139, 0, 4,
-			224, 174, 190, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 3, 71, 114, 0, 224, 174, 190, 8, 2, 224,
-			174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 224, 175, 135, 224, 174, 169, 224, 174, 159, 224, 175, 141,
-			8, 3, 71, 114, 50, 109, 139, 0, 224, 175, 139, 8, 2, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 169, 3, 71, 118, 0, 224,
-			174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 159, 224, 174, 190, 3, 71, 118, 34, 71, 109, 0, 224, 174, 190, 224,
-			174, 170, 8, 2, 224, 175, 129, 224, 174, 156, 224, 174, 191, 3, 71, 118, 48, 0, 224, 174, 190, 224, 174, 170, 224, 174, 164, 224, 174, 191,
-			1, 154, 174, 224, 3, 71, 118, 48, 109, 47, 37, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 128, 224,
-			174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 190, 3, 71, 118, 49, 139, 0, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8,
-			2, 224, 174, 169, 224, 174, 191, 3, 71, 118, 55, 49, 109, 0, 224, 174, 190, 224, 174, 178, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174,
-			159, 3, 71, 118, 55, 109, 48, 0, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175,
-			139, 224, 174, 176, 3, 71, 118, 55, 139, 0, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 8, 3, 71, 118, 55, 139, 37, 49, 0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 149,
-			224, 175, 141, 3, 71, 118, 68, 49, 0, 4, 224, 174, 190, 224, 174, 170, 1, 191, 174, 224, 178, 174, 224, 133, 174, 224, 2, 224, 174, 190,
-			3, 71, 118, 71, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 224,
-			174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 190, 224, 174, 149, 224, 175, 135, 224, 174, 170, 224, 175, 141, 0, 224,
-			174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 190, 224, 174, 185, 224, 175, 135, 224, 174, 170, 224, 175, 141, 0, 224,
-			174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 181, 0, 224, 174, 190, 224, 174, 170, 8, 141, 175, 224, 175, 174, 224, 190, 174, 224,
-			154, 174, 224, 2, 224, 174, 190, 0, 224, 174, 190, 224, 174, 170, 8, 191, 174, 224, 175, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174,
-			190, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 71, 118, 71, 109, 0, 4, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224,
-			174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 136, 3, 71, 118, 72, 72, 0, 224, 174, 190, 224, 174, 164, 224, 175,
-			141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 170, 224, 175, 141, 0, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174,
-			164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 174, 224, 175, 141, 32, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 164, 8,
-			2, 224, 174, 190, 224, 174, 164, 3, 71, 118, 81, 72, 0, 224, 174, 190, 224, 174, 149, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 135,
-			224, 174, 175, 224, 174, 169, 3, 71, 118, 108, 0, 224, 174, 190, 224, 174, 159, 8, 2, 224, 174, 169, 224, 174, 191, 3, 71, 118, 139, 109,
-			0, 224, 174, 190, 224, 174, 159, 224, 175, 141, 224, 174, 174, 224, 174, 191, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169,
-			3, 71, 118, 140, 65, 37, 66, 139, 109, 0, 224, 175, 139, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 178, 3, 71, 119, 48, 0, 224,
-			175, 139, 224, 174, 170, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 3, 71, 119, 83, 0, 224, 175, 139, 224, 174, 170, 8, 2, 224,
-			174, 176, 224, 175, 141, 224, 174, 184, 3, 71, 119, 83, 109, 0, 224, 175, 130, 224, 174, 164, 224, 175, 141, 8, 2, 32, 3, 71, 123, 47,
-			0, 224, 175, 130, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 178, 3, 71, 123, 48, 0, 224, 175, 130, 224, 174, 170, 8, 2, 224, 174,
-			164, 224, 174, 191, 3, 71, 123, 48, 109, 0, 224, 175, 130, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 177,
-			224, 175, 141, 3, 71, 123, 72, 72, 0, 224, 175, 130, 224, 174, 159, 8, 2, 224, 174, 190, 224, 174, 169, 3, 71, 123, 139, 0, 224, 175,
-			136, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 184, 3, 71, 134, 48, 0, 4, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 168, 174,
-			224, 133, 174, 224, 2, 12, 3, 71, 148, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 12, 0, 1,
-			190, 174, 224, 164, 174, 224, 141, 175, 224, 184, 174, 224, 169, 174, 224, 174, 174, 224, 2, 12, 0, 1, 190, 174, 224, 164, 174, 224, 141, 175,
-			224, 184, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 12, 0, 1, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224, 141,
-			175, 224, 159, 174, 224, 170, 174, 224, 2, 25, 0, 1, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224, 141, 175, 224, 159, 174, 224,
-			170, 174, 224, 175, 174, 224, 129, 175, 224, 154, 174, 224, 2, 25, 0, 1, 190, 174, 224, 164, 174, 224, 191, 174, 224, 176, 174, 224, 170, 174,
-			224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 141, 175, 224, 184, 174, 224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 149, 174, 224,
-			176, 174, 224, 191, 174, 224, 181, 174, 224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 170, 174, 224, 139, 175, 224, 149, 174, 224, 2, 12,
-			0, 8, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224, 141, 175, 224, 154, 174, 224, 170, 174, 224, 2, 12, 0, 4, 1, 133, 174,
-			224, 2, 224, 174, 191, 224, 174, 159, 224, 174, 181, 224, 174, 191, 224, 174, 159, 3, 83, 0, 1, 134, 174, 224, 2, 224, 174, 191, 224, 174,
-			176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 1, 136, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 1, 139, 175, 224,
-			176, 174, 224, 141, 175, 224, 149, 174, 224, 136, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 1, 141, 175, 224, 169, 174, 224,
-			135, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 1, 141, 175, 224, 174, 174, 224, 135, 174, 224, 2, 224, 174,
-			190, 224, 174, 178, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174,
-			190, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 1, 141, 175, 224,
-			178, 174, 224, 134, 174, 224, 2, 224, 174, 190, 0, 1, 141, 175, 224, 184, 174, 224, 141, 175, 224, 149, 174, 224, 134, 174, 224, 2, 224, 175,
-			139, 224, 174, 176, 224, 175, 141, 224, 174, 159, 0, 1, 144, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 1, 190, 174, 224, 154, 174, 224,
-			141, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224, 175, 128, 0, 1, 191, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174,
-			176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 169, 224, 174, 191, 224, 174,
-			175, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174, 169, 224, 175, 128, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174,
-			191, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174,
-			191, 32, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 174, 191, 0,
-			8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224, 175, 136, 0, 8, 2, 224,
-			174, 190, 224, 174, 154, 224, 174, 191, 18, 69, 0, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174,
-			190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174,
-			191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174, 159, 224, 175, 135, 0, 8, 2, 224, 174, 190, 224, 174,
-			176, 224, 175, 141, 224, 174, 174, 18, 69, 224, 174, 191, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 129,
-			224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 170, 224, 175, 135, 224, 174, 159, 224, 175, 141, 0, 8, 2,
-			224, 174, 190, 224, 174, 185, 224, 174, 191, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 191, 18, 69, 224, 174, 191, 224,
-			174, 149, 224, 175, 141, 18, 69, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 153, 224, 175,
-			141, 224, 174, 149, 224, 174, 176, 224, 175, 141, 32, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
-			174, 184, 0, 8, 2, 224, 174, 191, 224, 174, 156, 224, 174, 191, 32, 0, 8, 2, 224, 174, 191, 224, 174, 156, 224, 174, 191, 224, 174, 175,
-			0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159,
-			224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2,
-			224, 174, 191, 224, 174, 169, 224, 174, 191, 224, 174, 183, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 178, 224, 174, 190,
-			224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 181, 224, 174, 176,
-			224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174, 178, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 183, 224, 175, 141,
-			0, 8, 2, 224, 175, 128, 224, 174, 169, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 129, 224, 174, 178,
-			224, 175, 141, 32, 18, 80, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 32, 0, 8, 2, 224, 175,
-			134, 224, 174, 159, 224, 174, 176, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 159, 224, 174, 176, 224, 175, 135, 0, 8, 2, 224, 175,
-			134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175,
-			141, 0, 8, 2, 224, 175, 134, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174,
-			181, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174,
-			176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175,
-			141, 224, 174, 169, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 178, 224, 174, 191, 224, 174,
-			149, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 224, 175,
-			135, 224, 174, 174, 224, 174, 184, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 175,
-			135, 224, 174, 183, 224, 174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 175, 136, 224, 174, 178, 0, 8,
-			2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 184, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174,
-			159, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175,
-			139, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0,
-			8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 178, 224,
-			175, 129, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 129, 32, 0, 8, 2, 224, 175, 139, 224, 174, 169,
-			224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 129, 224, 174, 159, 224, 175, 136,
-			224, 174, 175, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 136,
-			0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141,
-			224, 174, 149, 224, 175, 130, 224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 178, 224, 174, 149, 224, 175, 130,
-			224, 174, 159, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 156, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 139,
-			224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174, 169, 0, 8, 128, 175, 224, 169, 174, 224, 185, 174, 224, 2, 224, 174, 190,
-			0, 8, 128, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 8, 128, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190,
-			0, 8, 136, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 178, 0, 8, 136, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 179,
-			0, 8, 139, 175, 224, 154, 174, 224, 2, 224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 141, 175, 224, 159, 174, 224, 190, 174, 224, 179,
-			174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 191,
-			224, 174, 149, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178,
-			174, 224, 129, 175, 224, 156, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 154, 174, 224, 2, 224, 175, 139,
-			224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159,
-			0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 135, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 149,
-			174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 175, 136, 0, 8, 141, 175, 224, 178, 174, 224, 190,
-			174, 224, 159, 174, 224, 2, 224, 174, 191, 224, 174, 169, 0, 8, 149, 174, 224, 2, 224, 175, 135, 0, 8, 154, 174, 224, 139, 175, 224, 175,
-			174, 224, 191, 174, 224, 164, 174, 224, 2, 224, 174, 191, 0, 8, 164, 174, 224, 141, 175, 224, 184, 174, 224, 129, 175, 224, 174, 174, 224, 2,
-			224, 174, 190, 0, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 190, 174, 224, 149, 174, 224, 134, 175, 224, 174, 174, 224, 2,
-			224, 175, 139, 224, 174, 169, 0, 8, 190, 174, 224, 159, 174, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 190, 174, 224, 174, 174, 224, 2,
-			224, 174, 191, 224, 174, 175, 224, 174, 190, 0, 8, 190, 174, 224, 178, 174, 224, 190, 174, 224, 170, 174, 224, 164, 174, 224, 2, 224, 175, 128,
-			0, 8, 191, 174, 224, 154, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0, 8, 191, 174, 224, 169, 174, 224, 130,
-			175, 224, 175, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 191, 174, 224, 169, 174, 224, 185, 174, 224, 2,
-			224, 174, 190, 0, 8, 191, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 224, 174,
-			191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
-			169, 224, 175, 141, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224,
-			174, 191, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174, 156, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175,
-			128, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175,
-			141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 183, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174,
-			178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 181, 224, 174,
-			176, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 183, 0, 224, 174, 191, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174,
-			184, 224, 175, 141, 224, 174, 149, 0, 224, 174, 191, 8, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 175, 224, 175, 129, 224, 174,
-			154, 0, 224, 174, 191, 8, 141, 175, 224, 176, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174, 175, 224, 175, 130, 224, 174, 174, 0, 224,
-			175, 129, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176, 224, 174,
-			169, 224, 175, 141, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 174,
-			190, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 149, 224, 174, 169, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 149, 224, 174,
-			190, 224, 174, 169, 0, 224, 175, 141, 1, 191, 174, 224, 154, 174, 224, 134, 174, 224, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190,
-			224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 224, 175,
-			141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 32, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
-			169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174,
-			190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 175, 141, 224, 174,
-			156, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 224, 175, 141, 0, 224, 175, 141, 8,
-			2, 224, 174, 176, 224, 175, 134, 224, 174, 183, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 181, 224, 174, 176, 0, 224,
-			175, 141, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 183, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 174, 190, 224, 174, 184, 224, 175,
-			141, 224, 174, 149, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224, 174, 159, 224, 174, 190, 0, 224,
-			175, 141, 8, 129, 175, 224, 178, 174, 224, 2, 224, 174, 164, 224, 174, 190, 224, 174, 169, 0, 224, 175, 141, 8, 136, 175, 224, 178, 174, 224,
-			2, 32, 0, 224, 175, 141, 8, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 175, 224, 175, 130, 224, 174, 154, 0, 224, 175, 141,
-			8, 141, 175, 224, 178, 174, 224, 149, 174, 224, 0, 224, 175, 141, 8, 190, 174, 224, 154, 174, 224, 139, 175, 224, 176, 174, 224, 141, 175, 224,
-			149, 174, 224, 136, 175, 224, 174, 174, 224, 2, 224, 174, 159, 0, 224, 175, 141, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 159, 0, 224,
-			175, 141, 224, 174, 170, 224, 174, 191, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224,
-			174, 191, 224, 174, 176, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 184, 3, 83, 34, 36, 0, 224, 174, 191,
-			224, 174, 176, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 3, 83, 34, 36, 67, 76, 148, 0, 4, 224, 174, 191, 224, 174,
-			176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 83, 34, 36, 140, 34, 37,
-			49, 0, 224, 175, 141, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8,
-			0, 224, 175, 134, 224, 174, 176, 224, 175, 139, 224, 174, 184, 8, 3, 83, 36, 34, 119, 88, 148, 0, 224, 175, 134, 224, 174, 178, 224, 175,
-			139, 224, 174, 183, 224, 174, 191, 224, 174, 170, 224, 175, 141, 8, 3, 83, 36, 55, 119, 93, 37, 48, 0, 224, 174, 191, 224, 174, 149, 1,
-			191, 174, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 3, 83, 37, 49, 0, 224, 174, 191,
-			224, 174, 178, 224, 174, 191, 224, 174, 170, 8, 3, 83, 37, 55, 37, 48, 148, 0, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 159,
-			224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 175, 3, 83, 37, 55, 37, 72, 36, 55, 83, 0,
-			224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 174, 8, 3, 83, 37, 55, 65, 148, 0, 4, 224, 174, 191, 224, 174, 178, 224, 175, 141,
-			224, 174, 159, 8, 2, 224, 174, 176, 224, 175, 141, 32, 18, 88, 3, 83, 37, 55, 139, 109, 0, 224, 174, 191, 224, 174, 178, 224, 175, 141,
-			224, 174, 159, 8, 32, 18, 88, 2, 224, 174, 176, 0, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 3,
-			83, 40, 55, 49, 0, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 178, 3, 83, 40, 139, 71,
-			0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 8, 190, 174, 224, 154, 174, 224, 2, 224, 174, 181, 224, 175, 135, 224, 174, 176, 3, 83, 47,
-			0, 224, 174, 191, 224, 174, 179, 8, 2, 224, 175, 136, 224, 174, 159, 224, 175, 141, 3, 83, 62, 0, 4, 224, 174, 191, 224, 174, 179, 224,
-			174, 190, 224, 174, 170, 224, 175, 141, 8, 3, 83, 62, 118, 48, 0, 224, 175, 141, 224, 174, 179, 224, 174, 190, 224, 174, 170, 224, 175, 141,
-			8, 0, 224, 175, 141, 224, 174, 154, 1, 133, 174, 224, 2, 224, 174, 178, 3, 83, 88, 109, 0, 4, 1, 141, 175, 224, 169, 174, 224, 135,
-			174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 3, 83, 109, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 128,
-			224, 174, 176, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 0, 8, 2,
-			224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 190, 32, 0, 8, 2, 224, 174, 176, 224, 174,
-			191, 224, 174, 164, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 164, 0, 8, 2, 224, 174, 176, 224, 175,
-			141, 224, 174, 169, 224, 174, 184, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 154, 224, 175, 141, 224, 174,
-			154, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 153, 224, 175, 141, 0, 8, 128, 175, 224,
-			159, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 169, 0, 8, 138, 175, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 2, 224, 174,
-			184, 224, 174, 176, 0, 8, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 8, 141, 175, 224,
-			174, 174, 224, 191, 174, 224, 154, 174, 224, 2, 224, 174, 169, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 154, 174, 224, 2, 224, 174,
-			176, 0, 8, 190, 174, 224, 156, 174, 224, 2, 224, 174, 176, 0, 8, 191, 174, 224, 169, 174, 224, 134, 175, 224, 156, 174, 224, 2, 224, 174,
-			176, 0, 224, 175, 141, 224, 174, 170, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224,
-			175, 141, 224, 174, 170, 1, 190, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174,
-			191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 190, 174, 224, 169, 174, 224, 141, 175, 224,
-			169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 176, 224,
-			175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 154, 8, 2, 224, 174, 176, 3, 83, 109, 34, 50, 37, 76, 109, 0, 224, 174, 176, 224, 175,
-			130, 224, 174, 149, 224, 175, 141, 8, 3, 83, 109, 34, 151, 49, 0, 4, 224, 174, 164, 224, 175, 141, 1, 190, 174, 224, 176, 174, 224, 133,
-			174, 224, 3, 83, 109, 47, 0, 224, 174, 164, 224, 175, 141, 8, 2, 224, 174, 181, 224, 174, 190, 0, 224, 174, 164, 224, 175, 141, 8, 190,
-			174, 224, 178, 174, 224, 191, 174, 224, 149, 174, 224, 0, 224, 174, 175, 224, 174, 176, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 190, 224,
-			174, 149, 224, 175, 141, 224, 174, 184, 3, 83, 109, 57, 109, 34, 83, 0, 224, 175, 128, 224, 174, 149, 224, 175, 141, 8, 176, 174, 224, 3,
-			83, 112, 49, 0, 224, 174, 190, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 174, 224, 174, 190, 3, 83, 118, 47, 0, 224, 174, 190, 224,
-			174, 149, 224, 175, 141, 8, 2, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 3, 83, 118, 49, 0, 224, 174, 190,
-			224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 191, 174, 224, 159, 174, 224, 3, 83, 118, 55, 139, 148, 0, 224, 174, 190, 224, 174, 163, 224,
-			175, 141, 224, 174, 159, 8, 2, 18, 69, 224, 174, 191, 3, 83, 118, 66, 139, 109, 0, 224, 175, 139, 224, 174, 149, 8, 2, 224, 174, 184,
-			3, 83, 119, 49, 109, 0, 4, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 149, 224, 174, 191, 224, 174,
-			176, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 83, 119, 139, 139, 119, 81, 34, 118, 83, 109, 0, 224, 175, 139, 224, 174, 159,
-			224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 0,
-			4, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 3, 83, 135, 66, 139, 109, 0, 224, 175,
-			140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 0, 4, 1, 141, 175, 224, 178, 174, 224, 190, 174, 224, 159, 174, 224,
-			133, 174, 224, 3, 83, 148, 0, 1, 176, 174, 224, 141, 175, 224, 183, 174, 224, 133, 174, 224, 0, 1, 190, 174, 224, 176, 174, 224, 141, 175,
-			224, 183, 174, 224, 133, 174, 224, 0, 8, 128, 175, 224, 176, 174, 224, 134, 175, 224, 183, 174, 224, 2, 12, 0, 8, 128, 175, 224, 176, 174,
-			224, 183, 174, 224, 2, 12, 0, 8, 130, 175, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175,
-			224, 154, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 183, 174, 224, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 159,
-			174, 224, 129, 175, 224, 176, 174, 224, 0, 8, 176, 174, 224, 190, 174, 224, 183, 174, 224, 129, 175, 224, 174, 174, 224, 0, 7, 6, 1, 47,
-			0, 4, 2, 17, 66, 3, 65, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 175, 130, 0, 224, 174, 191, 8, 18, 72, 154, 174, 224, 2,
-			224, 174, 175, 0, 3, 65, 109, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 7, 6, 1, 49, 0, 4, 2,
-			17, 66, 3, 34, 0, 224, 174, 191, 8, 164, 174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 154, 224, 174, 169, 0, 224, 174, 191, 8,
-			174, 174, 224, 191, 174, 224, 181, 174, 224, 2, 224, 174, 154, 0, 224, 175, 129, 1, 191, 174, 224, 164, 174, 224, 133, 174, 224, 2, 224, 174,
-			183, 224, 175, 141, 224, 174, 159, 0, 224, 175, 129, 8, 191, 174, 224, 164, 174, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174,
-			183, 224, 175, 141, 224, 174, 159, 0, 3, 34, 109, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 51, 0, 3, 51, 109, 0, 224, 175, 141,
-			224, 174, 154, 3, 76, 12, 148, 0, 224, 175, 141, 2, 224, 174, 177, 3, 139, 0, 7, 6, 1, 51, 0, 4, 2, 17, 66, 3, 55, 0,
-			224, 174, 191, 8, 149, 174, 224, 2, 224, 174, 175, 224, 174, 190, 224, 174, 163, 0, 3, 55, 109, 0, 224, 175, 141, 8, 181, 174, 224, 190,
-			174, 224, 149, 174, 224, 2, 224, 174, 164, 224, 175, 129, 224, 174, 177, 224, 175, 136, 3, 139, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3,
-			62, 0, 3, 62, 109, 0, 224, 175, 141, 1, 137, 174, 224, 2, 224, 174, 164, 224, 175, 129, 224, 174, 177, 224, 175, 136, 3, 139, 0, 224,
-			175, 141, 224, 174, 164, 8, 149, 174, 224, 141, 175, 224, 149, 174, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 149, 224, 175, 136, 3, 139,
-			47, 0, 7, 6, 1, 53, 0, 2, 17, 66, 3, 92, 0, 3, 92, 109, 0, 7, 6, 1, 54, 0, 4, 2, 17, 66, 3, 84, 0, 224,
-			174, 191, 1, 141, 175, 224, 176, 174, 224, 159, 174, 224, 141, 175, 224, 163, 174, 224, 135, 174, 224, 2, 224, 174, 175, 224, 175, 130, 0, 224,
-			174, 191, 1, 141, 175, 224, 181, 174, 224, 18, 68, 2, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 2, 224, 174, 175, 224, 175, 130, 224,
+			224, 2, 224, 174, 174, 224, 175, 141, 0, 1, 190, 174, 224, 164, 174, 224, 141, 175, 224, 184, 174, 224, 2, 224, 174, 163, 0, 1, 190, 174,
+			224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 1, 190, 174,
+			224, 164, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 174, 0, 1, 191, 174, 224, 169, 174, 224, 2, 224, 174, 149, 224,
+			174, 181, 224, 174, 190, 224, 174, 169, 224, 175, 141, 0, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176, 0, 8, 2, 18, 71,
+			224, 175, 129, 224, 174, 149, 224, 175, 129, 224, 174, 163, 224, 174, 190, 0, 8, 2, 18, 71, 224, 175, 129, 224, 174, 156, 0, 8, 2, 28,
+			17, 12, 0, 8, 2, 224, 174, 131, 224, 174, 170, 224, 175, 130, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 164, 224, 175, 130, 224,
+			174, 176, 0, 8, 2, 224, 174, 149, 224, 174, 164, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224,
+			174, 149, 224, 174, 181, 224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224, 174, 164, 224, 175, 141, 224, 174, 168, 224,
+			174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 181, 224, 174, 190, 224,
+			174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 190, 224, 174, 154, 224, 175, 129, 224, 174, 176, 0, 8, 2, 224, 174, 149, 224, 174, 190, 224,
+			174, 154, 224, 175, 130, 224, 174, 176, 224, 174, 169, 0, 8, 2, 224, 174, 149, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 149, 224,
+			174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 149, 224, 174, 191, 224, 174, 183, 224, 175, 141, 224,
+			174, 149, 0, 8, 2, 224, 174, 149, 224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 149, 224, 175, 129, 224, 174, 179, 0, 8, 2, 224,
+			174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 191, 224, 174, 153, 224, 175, 141, 18, 71, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174,
+			149, 224, 175, 141, 224, 174, 149, 224, 175, 134, 224, 174, 159, 224, 175, 141, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175,
+			134, 224, 174, 169, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 183, 224, 174, 163, 0, 8, 2, 224, 174,
+			153, 224, 175, 141, 224, 174, 149, 224, 174, 174, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 224, 174, 190, 0, 8,
+			2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 190, 224, 174, 176, 0, 8, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 175,
+			141, 0, 8, 2, 224, 174, 154, 224, 174, 181, 224, 174, 149, 224, 174, 178, 224, 175, 141, 224, 174, 175, 224, 174, 190, 224, 174, 163, 0, 8,
+			2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 169, 0, 8, 2, 224, 174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 190, 224, 174,
+			169, 0, 8, 2, 224, 174, 156, 0, 8, 2, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 224, 174, 179, 0, 8, 2, 224, 174, 159, 224, 175, 129, 224, 174, 149, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 159, 224, 175,
+			141, 224, 174, 154, 224, 174, 163, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
+			149, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 170, 0, 8, 2, 224, 174,
+			159, 224, 175, 141, 224, 174, 156, 224, 174, 159, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 156, 224, 175, 134, 224, 174, 159, 224, 175,
+			141, 0, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 149, 224, 175, 141, 224, 174, 184, 0, 8, 2, 224, 174, 159, 224, 175,
+			141, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 224, 174, 191, 224, 174, 176, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 224, 174, 191, 224, 174, 176, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 164, 224, 175, 141, 224, 174, 176, 224, 174, 191, 0, 8,
+			2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 32, 224, 174, 170, 224, 174, 190, 224, 174, 154, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
+			174, 164, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 164, 224,
+			175, 141, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
+			174, 164, 224, 174, 174, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 168, 224,
+			175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224,
+			174, 164, 224, 175, 129, 224, 174, 181, 0, 8, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 170, 224, 174, 184, 224,
+			175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 169, 224, 174, 190, 224, 174, 176, 224, 174, 154, 0, 8, 2, 224, 174, 169, 224, 174, 190, 224,
+			174, 176, 224, 174, 184, 0, 8, 2, 224, 174, 169, 224, 174, 191, 224, 174, 175, 224, 174, 169, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224,
+			174, 169, 224, 174, 190, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175, 129, 224, 174, 174, 224,
+			175, 141, 32, 224, 174, 159, 224, 175, 128, 224, 174, 175, 224, 175, 129, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 174, 169, 224, 175, 141,
+			224, 174, 176, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 0, 8, 2, 224, 174, 170, 224, 174, 191, 224, 174, 179,
+			224, 175, 141, 224, 174, 149, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 174, 170, 224, 175, 130, 224, 174, 169, 0, 8, 2, 224, 174, 170,
+			224, 175, 141, 224, 174, 179, 224, 174, 191, 224, 174, 174, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170,
+			224, 174, 176, 0, 8, 2, 224, 174, 174, 224, 175, 141, 224, 174, 170, 224, 174, 190, 224, 174, 175, 0, 8, 2, 224, 174, 175, 224, 174, 153,
+			224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 175, 224, 174, 164,
+			224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 168, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 174, 149, 224, 175, 141,
+			224, 174, 164, 224, 174, 191, 0, 8, 2, 224, 174, 175, 224, 174, 170, 224, 175, 141, 0, 8, 2, 224, 174, 175, 224, 174, 174, 0, 8, 2,
+			224, 174, 175, 224, 174, 190, 224, 174, 178, 224, 174, 156, 224, 174, 191, 0, 8, 2, 224, 174, 175, 224, 174, 191, 224, 174, 178, 224, 175, 141,
+			224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 174, 163, 224, 175, 128, 224, 174, 164, 224, 174, 176, 0, 8, 2,
+			224, 174, 176, 224, 174, 164, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 168, 224, 174, 190, 224, 174, 159,
+			224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 174, 169, 0, 8, 2, 224, 174, 176,
+			224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 159, 0, 8, 2,
+			224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 159, 224, 174, 174, 0, 8, 2, 224, 174, 176, 224, 174, 164,
+			224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129,
+			0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 139, 224, 174, 159, 0, 8, 2, 224, 174, 176, 224, 174, 164,
+			224, 175, 141, 224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 181, 224, 174, 190,
+			224, 174, 156, 0, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 149, 224, 175, 141, 32, 224, 174, 146, 224, 174, 170, 224, 174, 190, 224, 174,
+			174, 224, 174, 190, 0, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 159, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 131, 224, 174,
+			170, 224, 174, 191, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174,
+			164, 224, 175, 141, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 178, 224, 174, 190, 0, 8, 2, 224, 174,
+			176, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 149, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174,
+			153, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 154, 224, 174, 190, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 174, 178, 224, 174,
+			164, 224, 175, 135, 224, 174, 181, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224, 174, 178, 0, 8,
+			2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174,
+			164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 169, 224, 175, 129, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 224, 175, 129, 224, 174, 149, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175,
+			129, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 224, 174, 159, 0, 8,
+			2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 136, 0, 8, 2, 224, 174, 178, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 224, 175, 139, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 153, 224, 175,
+			141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 0, 8, 2, 224, 174,
+			178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 159, 224, 175, 129, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174,
+			170, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 174, 0, 8,
+			2, 224, 174, 178, 224, 174, 170, 224, 175, 141, 224, 174, 170, 224, 174, 176, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 175,
+			136, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 163, 224, 175, 136, 224, 174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174,
+			178, 224, 174, 174, 224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 17, 67,
+			224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 174, 181, 0, 8, 2, 224, 174, 178, 224, 174, 174,
+			224, 174, 190, 224, 174, 149, 224, 174, 181, 224, 175, 135, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 174, 191,
+			0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 178, 224, 174, 174,
+			224, 174, 190, 224, 174, 154, 224, 175, 141, 224, 174, 154, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 169, 0, 8, 2,
+			224, 174, 178, 224, 174, 174, 224, 174, 190, 224, 174, 175, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 178,
+			224, 175, 141, 224, 174, 178, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 174, 191, 224, 174, 180, 0, 8, 2, 224, 174, 178, 224, 174, 174,
+			224, 175, 129, 224, 174, 159, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 175, 136, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 159, 224, 175, 136, 224, 174, 175, 0, 8, 2,
+			224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 177, 224, 175, 129,
+			0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 129, 224, 174, 177, 224, 175, 141, 224, 174, 177, 0, 8, 2, 224, 174, 178, 224, 174, 174,
+			224, 175, 129, 224, 174, 179, 224, 175, 141, 224, 174, 179, 0, 8, 2, 224, 174, 178, 224, 174, 174, 224, 175, 130, 224, 174, 159, 224, 175, 141,
+			224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 176, 224, 174, 190, 224, 174, 174, 0, 8, 2, 224, 174, 178, 224, 174, 181, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 0, 8, 2, 224, 174, 178, 224, 174, 181, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 181,
+			224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 185, 224, 175, 128, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 174, 191,
+			224, 174, 149, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 138, 0, 8, 2, 224, 174, 178,
+			224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 159, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149,
+			224, 175, 141, 224, 174, 149, 224, 175, 129, 224, 174, 154, 224, 175, 141, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 224, 175, 138, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 156, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 174, 191,
+			224, 174, 170, 224, 175, 128, 224, 174, 159, 0, 8, 2, 224, 174, 178, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224, 175, 128,
+			224, 174, 156, 224, 174, 190, 0, 8, 2, 224, 174, 178, 224, 175, 130, 224, 174, 169, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 149,
+			224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 129, 0, 8, 2,
+			224, 174, 178, 224, 175, 141, 224, 174, 170, 224, 175, 136, 0, 8, 2, 224, 174, 179, 224, 175, 129, 0, 8, 2, 224, 174, 181, 224, 174, 168,
+			224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 174, 169, 0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 163, 224, 174, 191,
+			0, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 169, 224, 174, 191, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 164, 224, 175, 141,
+			224, 174, 164, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 178,
+			224, 174, 176, 0, 8, 2, 224, 174, 181, 224, 175, 129, 224, 174, 178, 224, 174, 191, 224, 174, 153, 224, 175, 141, 0, 8, 2, 224, 174, 181,
+			224, 175, 135, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 181, 224, 175, 141, 224, 174, 175, 0, 8, 2, 224, 174, 183,
+			224, 175, 128, 224, 174, 176, 0, 8, 2, 224, 174, 184, 0, 8, 2, 224, 174, 185, 224, 174, 164, 224, 175, 130, 224, 174, 176, 0, 8, 2,
+			224, 174, 185, 224, 174, 190, 224, 174, 174, 224, 174, 190, 224, 174, 184, 0, 8, 2, 224, 174, 185, 224, 174, 190, 224, 174, 175, 0, 8, 2,
+			224, 174, 185, 224, 174, 191, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 174, 185, 224, 174, 191, 224, 174, 176,
+			224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 174, 185, 224, 175, 141, 224, 174, 176, 224, 175, 134, 224, 174, 175, 0, 8, 32,
+			141, 175, 224, 174, 174, 224, 129, 175, 224, 175, 174, 224, 128, 175, 224, 159, 174, 224, 2, 224, 174, 169, 224, 175, 141, 224, 174, 169, 224, 175,
+			129, 224, 174, 174, 224, 175, 141, 32, 0, 8, 32, 164, 174, 224, 141, 175, 224, 168, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174, 168,
+			224, 175, 141, 224, 174, 164, 0, 8, 129, 175, 224, 149, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 159, 224, 174, 191, 0, 8, 141,
+			175, 224, 163, 174, 224, 175, 174, 224, 170, 174, 224, 2, 224, 174, 159, 0, 8, 141, 175, 224, 170, 174, 224, 149, 174, 224, 141, 175, 224, 149,
+			174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 8, 141, 175, 224, 178, 174, 224, 138, 175, 224, 154, 174, 224, 2, 224, 174, 181, 0, 8, 141,
+			175, 224, 184, 174, 224, 185, 174, 224, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 184, 174, 224, 191, 174, 224, 178,
+			174, 224, 2, 224, 174, 169, 0, 8, 149, 174, 224, 2, 224, 174, 164, 224, 175, 141, 0, 8, 149, 174, 224, 2, 224, 174, 174, 224, 175, 141,
+			32, 0, 8, 149, 174, 224, 2, 224, 174, 179, 224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8, 149, 174, 224, 135, 175, 224, 164, 174, 224,
+			2, 224, 174, 178, 0, 8, 149, 174, 224, 141, 175, 224, 149, 174, 224, 170, 174, 224, 2, 224, 174, 178, 0, 8, 159, 174, 224, 170, 174, 224,
+			2, 224, 174, 159, 0, 8, 164, 174, 224, 2, 224, 174, 154, 0, 8, 164, 174, 224, 141, 175, 224, 168, 174, 224, 138, 175, 224, 154, 174, 224,
+			2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8, 190, 174, 224, 149, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 175,
+			129, 0, 8, 190, 174, 224, 149, 174, 224, 174, 174, 224, 2, 224, 174, 178, 224, 174, 191, 0, 8, 190, 174, 224, 164, 174, 224, 2, 32, 0,
+			8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 168, 224, 175, 141, 224, 174, 164, 224, 174, 190, 224,
+			174, 169, 0, 8, 190, 174, 224, 164, 174, 224, 2, 224, 174, 174, 0, 224, 175, 129, 8, 2, 224, 174, 176, 224, 175, 139, 224, 174, 159, 224,
+			175, 141, 224, 174, 159, 224, 174, 190, 0, 224, 174, 176, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 3, 71, 109, 34, 83, 0, 224,
+			174, 176, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 175, 129, 8, 2, 224, 174, 181, 224, 174, 190, 224, 174, 156, 3, 71, 109, 34, 109,
+			47, 0, 4, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 164, 3, 71, 109, 49, 0, 224, 174, 149, 224, 175, 141, 8, 2, 224, 174, 176,
+			224, 175, 128, 224, 174, 164, 0, 224, 174, 168, 224, 175, 141, 224, 174, 164, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 129, 3, 71, 109,
+			50, 47, 0, 224, 174, 178, 224, 174, 190, 224, 174, 164, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 176, 3, 71, 109, 55,
+			118, 72, 49, 0, 224, 174, 178, 224, 175, 129, 224, 174, 154, 8, 2, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224, 174, 190,
+			224, 174, 169, 3, 71, 109, 55, 122, 76, 0, 224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 191, 3, 71, 109, 55, 140, 0,
+			224, 174, 175, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 139, 224, 174, 170, 224, 175, 141, 8, 3, 71, 109, 57, 118,
+			89, 49, 119, 48, 0, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 176, 3, 71, 109, 68, 49, 109, 0, 224, 174, 164, 1,
+			141, 175, 224, 163, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 178, 3, 71, 109, 72, 0, 4, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 149, 224, 174, 190, 224, 174, 179, 224, 174, 191, 3, 71, 109, 72, 72, 0,
+			224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 32, 0, 224, 174, 164, 224, 175, 141, 224, 174,
+			164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 175, 129, 0, 224, 174, 164, 224, 175,
+			141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0, 224, 174, 149, 8, 2, 224, 174, 191, 224, 174, 176,
+			224, 174, 163, 224, 175, 141, 224, 174, 159, 3, 71, 109, 81, 0, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 174, 224, 174, 190, 224, 174,
+			184, 3, 71, 109, 108, 0, 224, 174, 159, 8, 2, 224, 174, 190, 224, 174, 178, 224, 174, 191, 224, 174, 175, 224, 174, 169, 3, 71, 109, 140,
+			0, 224, 175, 128, 224, 174, 164, 8, 2, 224, 175, 139, 224, 174, 181, 224, 174, 169, 3, 71, 112, 47, 0, 224, 175, 128, 224, 174, 154, 224,
+			175, 141, 8, 2, 224, 174, 178, 3, 71, 112, 76, 0, 224, 175, 128, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 175, 130, 224, 174, 159,
+			224, 175, 141, 8, 3, 71, 112, 140, 34, 123, 140, 0, 4, 224, 174, 190, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 176,
+			224, 174, 191, 3, 71, 114, 0, 224, 174, 190, 8, 2, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 153, 224, 175, 141,
+			0, 224, 175, 135, 224, 174, 169, 224, 174, 159, 224, 175, 141, 8, 3, 71, 114, 50, 109, 140, 0, 224, 175, 139, 8, 2, 224, 174, 184, 224,
+			175, 141, 224, 174, 159, 224, 174, 169, 3, 71, 118, 0, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 159, 224,
+			174, 190, 3, 71, 118, 34, 71, 109, 0, 224, 174, 190, 224, 174, 170, 224, 174, 164, 224, 174, 191, 1, 154, 174, 224, 3, 71, 118, 48, 109,
+			47, 37, 0, 224, 174, 190, 224, 174, 149, 224, 175, 141, 224, 174, 159, 8, 2, 224, 175, 128, 224, 174, 176, 224, 174, 191, 224, 174, 175, 224,
+			174, 190, 3, 71, 118, 49, 140, 0, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 169, 224, 174, 191, 3, 71,
+			118, 55, 49, 109, 0, 224, 174, 190, 224, 174, 178, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 159, 3, 71, 118, 55, 109, 48, 0, 224,
+			174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 191, 224, 174, 174, 224, 175, 139, 224, 174, 176, 3, 71, 118, 55, 140,
+			0, 224, 174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 71, 118, 55, 140, 37, 49,
+			0, 224, 174, 190, 224, 174, 153, 224, 175, 141, 224, 174, 149, 8, 2, 224, 174, 190, 224, 174, 149, 224, 175, 141, 3, 71, 118, 68, 49, 0,
+			4, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 190, 224, 174, 149, 224, 175, 135, 224, 174, 170, 224, 175, 141,
+			3, 71, 118, 71, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 190, 224, 174, 185, 224, 175, 135, 224, 174,
+			170, 224, 175, 141, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 181, 0, 224, 174, 190, 224, 174, 170, 8, 141, 175, 224,
+			175, 174, 224, 190, 174, 224, 154, 174, 224, 2, 224, 174, 190, 0, 224, 174, 190, 224, 174, 170, 8, 191, 174, 224, 175, 174, 224, 190, 174, 224,
+			154, 174, 224, 2, 224, 174, 190, 0, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 71, 118, 71, 109, 0, 4, 224, 174, 190, 224,
+			174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 164, 224, 175, 136, 3, 71, 118, 72, 72, 0, 224, 174,
+			190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 175, 224, 174, 174, 224, 175, 141, 32, 0, 224, 174, 190, 224,
+			174, 149, 224, 175, 141, 224, 174, 164, 8, 2, 224, 174, 190, 224, 174, 164, 3, 71, 118, 81, 72, 0, 224, 175, 139, 224, 174, 170, 8, 2,
+			224, 174, 190, 224, 174, 178, 3, 71, 119, 48, 0, 224, 175, 139, 224, 174, 170, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 3, 71,
+			119, 83, 0, 224, 175, 130, 224, 174, 164, 224, 175, 141, 8, 2, 32, 3, 71, 123, 47, 0, 224, 175, 130, 224, 174, 170, 8, 2, 224, 174,
+			164, 224, 174, 191, 3, 71, 123, 48, 109, 0, 224, 175, 130, 224, 174, 159, 8, 2, 224, 174, 190, 224, 174, 169, 3, 71, 123, 140, 0, 224,
+			175, 136, 224, 174, 170, 8, 2, 224, 174, 190, 224, 174, 184, 3, 71, 134, 48, 0, 4, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 168,
+			174, 224, 133, 174, 224, 2, 12, 3, 71, 149, 0, 1, 190, 174, 224, 164, 174, 224, 129, 175, 224, 169, 174, 224, 133, 174, 224, 2, 12, 0,
+			1, 190, 174, 224, 164, 174, 224, 141, 175, 224, 184, 174, 224, 169, 174, 224, 174, 174, 224, 2, 12, 0, 1, 190, 174, 224, 164, 174, 224, 141,
+			175, 224, 184, 174, 224, 176, 174, 224, 191, 174, 224, 170, 174, 224, 2, 12, 0, 1, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224,
+			141, 175, 224, 159, 174, 224, 170, 174, 224, 2, 25, 0, 1, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224, 141, 175, 224, 159, 174,
+			224, 170, 174, 224, 175, 174, 224, 129, 175, 224, 154, 174, 224, 2, 25, 0, 1, 190, 174, 224, 164, 174, 224, 191, 174, 224, 176, 174, 224, 170,
+			174, 224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 141, 175, 224, 184, 174, 224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 149, 174,
+			224, 176, 174, 224, 191, 174, 224, 181, 174, 224, 2, 12, 0, 8, 190, 174, 224, 164, 174, 224, 190, 174, 224, 154, 174, 224, 141, 175, 224, 154,
+			174, 224, 170, 174, 224, 2, 12, 0, 4, 1, 134, 174, 224, 2, 224, 174, 191, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 3, 83, 0, 1, 139, 175, 224, 176, 174, 224, 141, 175, 224, 149, 174, 224, 136, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174,
+			169, 0, 1, 141, 175, 224, 169, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 1, 141, 175, 224,
+			174, 174, 224, 135, 174, 224, 2, 224, 174, 190, 224, 174, 178, 0, 1, 141, 175, 224, 178, 174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174,
+			169, 224, 175, 141, 224, 174, 184, 0, 1, 141, 175, 224, 178, 174, 224, 134, 174, 224, 2, 224, 174, 190, 0, 1, 144, 174, 224, 2, 224, 175,
+			139, 224, 174, 169, 0, 1, 174, 174, 224, 190, 174, 224, 176, 174, 224, 191, 174, 224, 149, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 1,
+			190, 174, 224, 154, 174, 224, 141, 175, 224, 154, 174, 224, 133, 174, 224, 2, 224, 175, 128, 0, 1, 191, 174, 224, 178, 174, 224, 149, 174, 224,
+			2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0, 8, 2, 224, 174, 190, 224, 174, 149, 224, 174,
+			191, 224, 174, 175, 224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 190, 224, 174, 154, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174,
+			190, 224, 174, 164, 224, 175, 141, 224, 174, 164, 224, 174, 191, 224, 174, 174, 224, 174, 190, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 174,
+			159, 224, 175, 135, 0, 8, 2, 224, 174, 190, 224, 174, 176, 224, 175, 141, 224, 174, 174, 18, 69, 224, 174, 191, 0, 8, 2, 224, 174, 190,
+			224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 174, 190, 224, 174, 185, 224, 174, 191, 224, 174, 175,
+			224, 174, 190, 224, 174, 169, 0, 8, 2, 224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8, 2, 224, 174, 191, 224, 174, 153, 224, 175, 141,
+			224, 174, 149, 224, 174, 176, 224, 175, 141, 32, 0, 8, 2, 224, 174, 191, 224, 174, 154, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174,
+			184, 0, 8, 2, 224, 174, 191, 224, 174, 159, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 174, 191, 224, 174,
+			183, 0, 8, 2, 224, 174, 191, 224, 174, 169, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 168, 224, 175, 141, 224, 174, 164, 0, 8,
+			2, 224, 174, 191, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 181, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 174, 191, 224, 174,
+			178, 224, 175, 141, 224, 174, 174, 0, 8, 2, 224, 174, 191, 224, 174, 183, 224, 175, 141, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175,
+			141, 32, 18, 80, 0, 8, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 32, 0, 8, 2, 224, 175, 134, 224,
+			174, 163, 224, 175, 141, 224, 174, 159, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 224, 174, 191, 224, 174, 149, 224, 175, 141, 0,
+			8, 2, 224, 175, 134, 224, 174, 164, 224, 174, 176, 0, 8, 2, 224, 175, 134, 224, 174, 170, 224, 175, 141, 224, 174, 176, 224, 174, 181, 224,
+			174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 134, 224, 174, 175, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224,
+			175, 141, 224, 174, 169, 224, 174, 190, 224, 174, 163, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 134, 224, 174, 176, 224, 175, 141, 224,
+			174, 169, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 159, 0, 8, 2, 224, 175, 135, 224, 174, 149, 224, 175, 141, 224, 174, 159, 224,
+			174, 176, 0, 8, 2, 224, 175, 135, 224, 174, 174, 224, 174, 191, 224, 174, 178, 224, 174, 191, 0, 8, 2, 224, 175, 135, 224, 174, 183, 224,
+			174, 169, 0, 8, 2, 224, 175, 136, 224, 174, 170, 224, 174, 176, 0, 8, 2, 224, 175, 136, 224, 174, 178, 224, 174, 191, 224, 174, 178, 0,
+			8, 2, 224, 175, 136, 224, 174, 178, 224, 175, 129, 0, 8, 2, 224, 175, 136, 224, 174, 178, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0,
+			8, 2, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 149, 224, 174, 184, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224,
+			174, 159, 224, 175, 139, 32, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 149, 224, 175, 141,
+			224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 164, 224, 174, 190, 224, 174, 169,
+			0, 8, 2, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 181, 0, 8, 2, 224, 175, 139, 224, 174, 169,
+			224, 174, 191, 224, 174, 169, 224, 175, 141, 32, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 174, 191, 224, 174, 178, 0, 8, 2, 224, 175,
+			139, 224, 174, 169, 224, 174, 191, 224, 174, 178, 224, 175, 129, 224, 174, 174, 224, 175, 141, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175,
+			129, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 129, 224, 174, 159, 224, 175, 136, 224, 174,
+			175, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 129, 224, 174, 178, 0, 8, 2, 224, 175, 139, 224, 174, 169, 224, 175, 136, 0, 8,
+			2, 224, 175, 139, 224, 174, 169, 224, 175, 141, 224, 174, 149, 224, 174, 179, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174,
+			156, 224, 174, 176, 224, 174, 191, 0, 8, 2, 224, 175, 139, 224, 174, 176, 224, 175, 141, 224, 174, 174, 224, 175, 135, 224, 174, 169, 0, 8,
+			128, 175, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 0, 8, 134, 174, 224, 2, 224, 174, 191, 224, 174, 154, 0, 8, 134, 174, 224,
+			2, 224, 174, 191, 224, 174, 184, 0, 8, 134, 174, 224, 2, 224, 175, 128, 224, 174, 154, 0, 8, 134, 174, 224, 2, 224, 175, 128, 224, 174,
+			184, 0, 8, 136, 175, 224, 176, 174, 224, 2, 224, 174, 191, 224, 174, 179, 0, 8, 139, 175, 224, 154, 174, 224, 2, 224, 174, 190, 0, 8,
+			141, 175, 224, 159, 174, 224, 190, 174, 224, 179, 174, 224, 191, 174, 224, 170, 174, 224, 2, 224, 174, 190, 224, 174, 176, 0, 8, 141, 175, 224,
+			169, 174, 224, 149, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 174, 176, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 149, 174, 224,
+			2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224, 129, 175, 224, 156, 174, 224, 2, 224, 174, 191, 0, 8, 141, 175, 224, 178, 174, 224,
+			134, 175, 224, 154, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 170, 174, 224, 2, 224, 174,
+			190, 224, 174, 184, 224, 175, 141, 224, 174, 159, 0, 8, 141, 175, 224, 178, 174, 224, 134, 175, 224, 181, 174, 224, 2, 224, 175, 135, 224, 174,
+			176, 0, 8, 141, 175, 224, 178, 174, 224, 190, 174, 224, 159, 174, 224, 2, 224, 174, 191, 224, 174, 169, 0, 8, 149, 174, 224, 2, 224, 175,
+			135, 0, 8, 164, 174, 224, 141, 175, 224, 184, 174, 224, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 0, 8, 190, 174, 224, 149, 174, 224,
+			2, 224, 174, 191, 0, 8, 190, 174, 224, 149, 174, 224, 134, 175, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 169, 0, 8, 190, 174, 224,
+			159, 174, 224, 149, 174, 224, 2, 224, 174, 191, 0, 8, 191, 174, 224, 154, 174, 224, 170, 174, 224, 2, 224, 174, 191, 224, 174, 149, 224, 175,
+			141, 0, 8, 191, 174, 224, 178, 174, 224, 149, 174, 224, 2, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174,
+			153, 224, 175, 141, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 224, 174, 191, 8,
+			2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224, 175, 141, 32, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224,
+			175, 141, 224, 174, 154, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191,
+			8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 175, 224, 174, 190, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 163, 224,
+			175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 184, 0, 224, 174, 191, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 183, 224, 175, 141, 0,
+			224, 174, 191, 8, 2, 224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 224, 174, 191, 8, 2, 224,
+			174, 179, 224, 174, 190, 224, 174, 184, 224, 175, 141, 224, 174, 149, 224, 175, 141, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 139, 224,
+			174, 176, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 175, 129, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176, 224, 174, 191, 224,
+			174, 159, 224, 174, 190, 0, 224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 149, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 175, 0,
+			224, 175, 141, 1, 134, 174, 224, 2, 224, 174, 149, 224, 174, 190, 224, 174, 169, 224, 174, 191, 224, 174, 184, 224, 175, 141, 224, 174, 164, 224,
+			174, 190, 224, 174, 169, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 153, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224,
+			174, 176, 224, 174, 190, 224, 174, 159, 224, 174, 190, 224, 174, 149, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 159, 224,
+			175, 141, 32, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 154, 224, 174, 191, 224, 174, 184,
+			224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 174, 190, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 175,
+			141, 8, 2, 224, 174, 176, 224, 175, 128, 224, 174, 175, 224, 174, 190, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 158,
+			224, 175, 141, 224, 174, 154, 224, 175, 141, 0, 224, 175, 141, 8, 2, 224, 174, 176, 224, 175, 134, 224, 174, 183, 224, 175, 141, 0, 224, 175,
+			141, 8, 2, 224, 174, 178, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 224, 175, 141, 8, 2, 224, 174, 179,
+			224, 175, 139, 224, 174, 176, 224, 174, 169, 224, 175, 141, 224, 174, 184, 0, 224, 175, 141, 8, 2, 224, 174, 179, 224, 175, 139, 224, 174, 176,
+			224, 174, 191, 224, 174, 159, 224, 174, 190, 0, 224, 175, 141, 8, 190, 174, 224, 154, 174, 224, 139, 175, 224, 176, 174, 224, 141, 175, 224, 149,
+			174, 224, 136, 175, 224, 174, 174, 224, 2, 224, 174, 159, 0, 224, 175, 141, 8, 191, 174, 224, 178, 174, 224, 2, 224, 174, 159, 0, 224, 175,
+			141, 224, 174, 170, 224, 174, 191, 1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174,
+			191, 224, 174, 176, 8, 2, 224, 174, 163, 224, 175, 141, 224, 174, 159, 224, 175, 141, 224, 174, 184, 3, 83, 34, 36, 0, 224, 174, 191, 224,
+			174, 176, 224, 175, 134, 224, 174, 158, 224, 175, 141, 224, 174, 154, 8, 3, 83, 34, 36, 67, 76, 149, 0, 4, 224, 174, 191, 224, 174, 176,
+			224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 3, 83, 34, 36, 141, 34, 37, 49,
+			0, 224, 175, 141, 224, 174, 176, 224, 175, 134, 224, 174, 159, 224, 175, 141, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 8, 0,
+			224, 175, 141, 224, 174, 176, 224, 174, 159, 8, 130, 175, 224, 175, 174, 224, 2, 224, 175, 128, 224, 174, 184, 3, 83, 34, 109, 140, 0, 224,
+			174, 191, 224, 174, 149, 1, 191, 174, 224, 178, 174, 224, 190, 174, 224, 181, 174, 224, 2, 224, 175, 135, 224, 174, 183, 224, 174, 169, 3, 83,
+			37, 49, 0, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 170, 8, 3, 83, 37, 55, 37, 48, 149, 0, 224, 174, 191, 224, 174, 178,
+			224, 174, 191, 224, 174, 159, 224, 175, 134, 224, 174, 178, 224, 175, 141, 224, 174, 170, 8, 2, 224, 174, 191, 224, 174, 175, 3, 83, 37, 55,
+			37, 72, 36, 55, 83, 0, 224, 174, 191, 224, 174, 178, 224, 174, 191, 224, 174, 174, 8, 3, 83, 37, 55, 65, 149, 0, 4, 224, 174, 191,
+			224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 176, 224, 175, 141, 32, 18, 88, 3, 83, 37, 55, 140, 109, 0, 224, 174, 191,
+			224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 32, 18, 88, 2, 224, 174, 176, 0, 224, 175, 129, 224, 174, 159, 224, 175, 141, 224, 174, 170,
+			8, 2, 224, 174, 190, 224, 174, 178, 3, 83, 40, 140, 71, 0, 224, 175, 141, 224, 174, 159, 224, 175, 141, 8, 190, 174, 224, 154, 174, 224,
+			2, 224, 174, 181, 224, 175, 135, 224, 174, 176, 3, 83, 47, 0, 224, 174, 191, 224, 174, 179, 8, 2, 224, 175, 136, 224, 174, 159, 224, 175,
+			141, 3, 83, 62, 0, 4, 224, 174, 191, 224, 174, 179, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 3, 83, 62, 118, 48, 0, 224, 175,
+			141, 224, 174, 179, 224, 174, 190, 224, 174, 170, 224, 175, 141, 8, 0, 224, 175, 141, 224, 174, 154, 1, 133, 174, 224, 2, 224, 174, 178, 3,
+			83, 88, 109, 0, 4, 8, 2, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 175, 129, 224, 174, 164, 224, 175, 128, 224, 174, 169, 3, 83,
+			109, 0, 8, 2, 224, 174, 169, 224, 174, 178, 0, 8, 2, 224, 174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 190, 32, 0, 8, 2, 224,
+			174, 176, 224, 174, 191, 224, 174, 164, 224, 174, 190, 224, 174, 181, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191, 224,
+			174, 154, 224, 175, 141, 224, 174, 154, 224, 174, 176, 0, 8, 2, 224, 174, 176, 224, 175, 141, 224, 174, 178, 224, 174, 190, 224, 174, 153, 224,
+			175, 141, 0, 8, 141, 175, 224, 169, 174, 224, 149, 174, 224, 2, 224, 174, 176, 224, 175, 141, 224, 174, 174, 0, 224, 175, 141, 224, 174, 170,
+			1, 134, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 175, 141, 224, 174, 170, 1, 190, 174,
+			224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224,
+			174, 149, 0, 224, 175, 141, 224, 174, 170, 224, 174, 191, 1, 190, 174, 224, 169, 174, 224, 141, 175, 224, 169, 174, 224, 134, 175, 224, 164, 174,
+			224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 149, 224, 175, 141, 224, 174, 149, 0, 224, 174, 176, 224, 175, 141, 224, 174, 169, 224, 174, 191,
+			224, 174, 154, 8, 2, 224, 174, 176, 3, 83, 109, 34, 50, 37, 76, 109, 0, 224, 174, 176, 224, 175, 130, 224, 174, 149, 224, 175, 141, 8,
+			3, 83, 109, 34, 152, 49, 0, 224, 174, 190, 224, 174, 164, 8, 2, 224, 174, 191, 224, 174, 174, 224, 174, 190, 3, 83, 118, 47, 0, 224,
+			174, 190, 224, 174, 178, 224, 175, 141, 224, 174, 159, 8, 191, 174, 224, 159, 174, 224, 3, 83, 118, 55, 140, 149, 0, 224, 175, 139, 224, 174,
+			149, 8, 2, 224, 174, 184, 3, 83, 119, 49, 109, 0, 4, 224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174,
+			149, 224, 174, 191, 224, 174, 176, 224, 174, 190, 224, 174, 170, 8, 2, 224, 174, 176, 3, 83, 119, 140, 140, 119, 81, 34, 118, 83, 109, 0,
+			224, 175, 139, 224, 174, 159, 224, 175, 141, 224, 174, 159, 224, 175, 139, 224, 174, 149, 224, 175, 141, 224, 174, 176, 224, 174, 190, 224, 174, 170,
+			8, 2, 224, 174, 176, 0, 4, 224, 174, 181, 224, 175, 129, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 3, 83, 135,
+			66, 140, 109, 0, 224, 175, 140, 224, 174, 163, 224, 175, 141, 224, 174, 159, 8, 2, 224, 174, 169, 0, 4, 1, 141, 175, 224, 178, 174, 224,
+			190, 174, 224, 159, 174, 224, 133, 174, 224, 3, 83, 149, 0, 8, 128, 175, 224, 176, 174, 224, 134, 175, 224, 183, 174, 224, 2, 12, 0, 8,
+			128, 175, 224, 176, 174, 224, 183, 174, 224, 2, 12, 0, 8, 130, 175, 224, 176, 174, 224, 141, 175, 224, 170, 174, 224, 0, 8, 141, 175, 224,
+			178, 174, 224, 190, 174, 224, 159, 174, 224, 129, 175, 224, 176, 174, 224, 0, 7, 6, 1, 47, 0, 4, 2, 17, 66, 3, 65, 0, 224, 174,
+			191, 8, 2, 224, 174, 175, 224, 175, 130, 0, 224, 174, 191, 8, 18, 72, 154, 174, 224, 2, 224, 174, 175, 0, 3, 65, 109, 0, 7, 6,
+			1, 48, 0, 2, 17, 66, 3, 57, 0, 3, 57, 109, 0, 7, 6, 1, 49, 0, 4, 2, 17, 66, 3, 34, 0, 224, 174, 191, 8, 164,
+			174, 224, 191, 174, 224, 168, 174, 224, 2, 224, 174, 154, 224, 174, 169, 0, 224, 174, 191, 8, 174, 174, 224, 191, 174, 224, 181, 174, 224, 2,
+			224, 174, 154, 0, 224, 175, 129, 1, 191, 174, 224, 164, 174, 224, 133, 174, 224, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 224, 175,
+			129, 8, 191, 174, 224, 164, 174, 224, 176, 174, 224, 129, 175, 224, 164, 174, 224, 2, 224, 174, 183, 224, 175, 141, 224, 174, 159, 0, 3, 34,
+			109, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 51, 0, 3, 51, 109, 0, 224, 175, 141, 224, 174, 154, 3, 76, 12, 149, 0, 224, 175,
+			141, 2, 224, 174, 177, 3, 140, 0, 7, 6, 1, 51, 0, 4, 2, 17, 66, 3, 55, 0, 224, 174, 191, 8, 149, 174, 224, 2, 224, 174,
+			175, 224, 174, 190, 224, 174, 163, 0, 3, 55, 109, 0, 224, 175, 141, 8, 181, 174, 224, 190, 174, 224, 149, 174, 224, 2, 224, 174, 164, 224,
+			175, 129, 224, 174, 177, 224, 175, 136, 3, 140, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 3, 62, 109, 0, 224, 175, 141, 1,
+			137, 174, 224, 2, 224, 174, 164, 224, 175, 129, 224, 174, 177, 224, 175, 136, 3, 140, 0, 224, 175, 141, 224, 174, 164, 8, 149, 174, 224, 141,
+			175, 224, 149, 174, 224, 174, 174, 224, 2, 224, 175, 138, 224, 174, 149, 224, 175, 136, 3, 140, 47, 0, 7, 6, 1, 53, 0, 2, 17, 66,
+			3, 92, 0, 3, 92, 109, 0, 7, 6, 1, 54, 0, 4, 2, 17, 66, 3, 84, 0, 224, 174, 191, 2, 224, 174, 175, 224, 175, 130, 224,
 			174, 149, 0, 224, 174, 191, 8, 2, 224, 174, 175, 224, 174, 190, 0, 3, 84, 109, 0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 91, 0,
-			3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 109, 0, 7, 6, 1, 57, 0, 4, 1, 191, 174, 224, 176,
-			174, 224, 133, 174, 224, 2, 224, 175, 139, 224, 174, 169, 3, 88, 0, 8, 129, 175, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 131, 224,
-			174, 170, 224, 174, 176, 0, 8, 191, 174, 224, 174, 174, 224, 2, 224, 174, 190, 224, 174, 131, 224, 174, 170, 224, 174, 176, 224, 175, 141, 224,
-			174, 170, 224, 175, 130, 224, 174, 176, 0, 8, 191, 174, 224, 174, 174, 224, 2, 224, 175, 139, 224, 174, 176, 224, 174, 174, 0, 224, 175, 141,
-			224, 174, 170, 8, 191, 174, 224, 185, 174, 224, 2, 224, 175, 129, 224, 174, 178, 224, 175, 141, 224, 174, 178, 224, 174, 190, 3, 88, 71, 0,
-			224, 175, 141, 224, 174, 170, 224, 175, 134, 224, 174, 149, 224, 175, 141, 8, 137, 174, 224, 3, 88, 71, 36, 49, 0, 224, 175, 141, 224, 174,
-			164, 8, 174, 174, 224, 2, 224, 175, 130, 224, 174, 176, 3, 88, 72, 0, 4, 224, 174, 190, 224, 174, 170, 8, 129, 175, 224, 174, 174, 224,
-			2, 224, 174, 176, 3, 88, 118, 83, 109, 0, 224, 174, 190, 224, 174, 170, 8, 191, 174, 224, 174, 174, 224, 2, 224, 174, 176, 224, 175, 141,
-			224, 174, 170, 224, 175, 130, 224, 174, 176, 0, 4, 1, 159, 174, 224, 141, 175, 224, 163, 174, 224, 190, 174, 224, 169, 174, 224, 141, 175, 224,
-			176, 174, 224, 134, 175, 224, 170, 174, 224, 3, 88, 148, 0, 8, 175, 174, 224, 130, 175, 224, 154, 174, 224, 0, 8, 190, 174, 224, 181, 174,
-			224, 168, 174, 224, 0, 2, 17, 66, 3, 89, 0, 3, 89, 109, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 108, 0, 3, 108, 109, 0,
-			7, 6, 1, 78, 0, 4, 3, 149, 0, 2, 32, 0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104,
-			105, 0, 7, 6, 224, 174, 0, 130, 3, 0, 133, 3, 35, 0, 142, 3, 36, 0, 191, 3, 37, 0, 142, 8, 3, 38, 36, 0, 143, 8,
-			3, 38, 114, 0, 142, 224, 174, 170, 2, 224, 175, 141, 224, 174, 176, 224, 174, 178, 3, 38, 114, 48, 0, 148, 224, 174, 191, 3, 39, 62,
-			37, 0, 136, 3, 112, 0, 143, 3, 114, 0, 4, 134, 3, 118, 0, 190, 0, 147, 3, 119, 0, 138, 3, 123, 0, 144, 3, 134, 0, 148,
-			3, 135, 0, 133, 224, 174, 181, 224, 175, 129, 224, 174, 176, 224, 174, 153, 224, 175, 141, 224, 174, 149, 224, 174, 154, 2, 224, 175, 128, 224,
-			174, 170, 3, 135, 34, 109, 68, 81, 109, 88, 0, 7, 6, 224, 175, 0, 151, 3, 12, 0, 134, 3, 36, 0, 4, 140, 224, 174, 191, 1,
-			181, 174, 224, 3, 36, 62, 37, 0, 140, 224, 174, 191, 8, 164, 174, 224, 0, 138, 3, 39, 0, 129, 3, 40, 0, 128, 3, 112, 0, 135,
-			3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 4, 134, 224, 174, 179, 8, 149, 174, 224, 2, 224, 174, 154, 224, 174,
-			178, 224, 175, 141, 224, 174, 175, 3, 135, 0, 134, 224, 174, 179, 8, 154, 174, 224, 0, 134, 224, 174, 179, 8, 170, 174, 224, 0, 134, 224,
-			174, 179, 8, 174, 174, 224, 2, 224, 174, 169, 0, 134, 224, 174, 179, 8, 174, 174, 224, 2, 224, 174, 176, 224, 174, 191, 224, 174, 175, 0,
+			3, 91, 109, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 109, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0,
+			3, 89, 109, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 108, 0, 3, 108, 109, 0, 7, 6, 1, 78, 0, 4, 3, 150, 0, 2, 32,
+			0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104, 105, 0, 7, 6, 224, 174, 0, 130, 3, 0, 133,
+			3, 35, 0, 142, 3, 36, 0, 191, 3, 37, 0, 142, 8, 3, 38, 36, 0, 143, 8, 3, 38, 114, 0, 142, 224, 174, 170, 2, 224, 175,
+			141, 224, 174, 176, 224, 174, 178, 3, 38, 114, 48, 0, 148, 224, 174, 191, 3, 39, 62, 37, 0, 136, 3, 112, 0, 143, 3, 114, 0, 4,
+			134, 3, 118, 0, 190, 0, 147, 3, 119, 0, 138, 3, 123, 0, 144, 3, 134, 0, 148, 3, 135, 0, 7, 6, 224, 175, 0, 151, 3, 12,
+			0, 134, 3, 36, 0, 4, 140, 224, 174, 191, 1, 181, 174, 224, 3, 36, 62, 37, 0, 140, 224, 174, 191, 8, 164, 174, 224, 0, 138, 3,
+			39, 0, 129, 3, 40, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 4, 134, 224, 174,
+			179, 8, 154, 174, 224, 3, 135, 0, 134, 224, 174, 179, 8, 170, 174, 224, 0, 134, 224, 174, 179, 8, 174, 174, 224, 2, 224, 174, 169, 0,
 			134, 224, 174, 179, 8, 174, 174, 224, 2, 224, 174, 184, 0, 134, 224, 174, 179, 8, 181, 174, 224, 2, 224, 174, 181, 224, 174, 190, 224, 174,
 			178, 0, 140, 0, 7, 6, 0, 224, 175, 141, 3, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2,
 			32, 15, 0, 46, 1, 15, 2, 15, 12, 3, 10, 48, 40, 62, 62, 37, 0, 114, 115, 1, 19, 2, 32, 46, 15, 3, 34, 123, 48, 112,
 			88, 0, 45, 8, 32, 2, 32, 15, 3, 49, 109, 92, 37, 47, 47, 109, 55, 0, 36, 3, 72, 39, 55, 109, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts63 = FileInMemory_createWithData (110757, reinterpret_cast<const char *> (&espeakdata_dicts63_data), 
-			U"espeak-1.48.04-source/espeak-data/ta_dict", 
+		autoFileInMemory espeakdata_dicts62 = FileInMemory_createWithData (88227, reinterpret_cast<const char *> (&espeakdata_dicts62_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ta_dict", 
 			U"ta");
-		my addItem_move (espeakdata_dicts63.move());
+		Collection_addItem (me.peek(), espeakdata_dicts62.transfer());
 
-		static unsigned char espeakdata_dicts64_data[3381] = {
-			0, 4, 0, 0, 177, 9, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
-			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 0, 17, 4, 95, 100, 112, 116, 10, 72,
-			4, 35, 97, 118, 65, 49, 35, 65, 0, 0, 5, 65, 20, 112, 0, 0, 0, 0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6,
-			65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 0, 0, 0, 6, 65, 36, 118, 57, 0, 0, 9, 1, 37, 97,
-			118, 47, 35, 65, 0, 0, 0, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0, 12, 1, 42, 50, 35, 49, 93, 35, 47, 34, 35, 0, 0,
-			10, 1, 43, 49, 123, 140, 37, 49, 35, 0, 0, 7, 65, 44, 49, 114, 57, 0, 0, 0, 0, 16, 1, 47, 49, 40, 72, 37, 84, 118,
-			55, 40, 81, 112, 47, 35, 0, 0, 6, 65, 48, 116, 55, 0, 0, 0, 0, 0, 6, 65, 52, 116, 65, 0, 0, 0, 0, 0, 6, 65,
-			56, 116, 50, 0, 0, 0, 0, 0, 5, 65, 60, 119, 0, 0, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0, 0, 0, 7, 65, 68,
-			49, 57, 123, 0, 0, 0, 0, 0, 7, 65, 72, 118, 34, 48, 0, 0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0, 0, 0, 14, 4,
-			95, 48, 67, 48, 85, 35, 50, 72, 35, 55, 40, 0, 0, 6, 65, 80, 25, 112, 0, 0, 0, 0, 0, 6, 65, 84, 57, 123, 0, 0,
-			0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 0, 13, 1, 92, 71, 57, 118, 49, 35, 89, 55, 118, 93, 0, 11, 65, 92, 72,
-			35, 71, 35, 55, 57, 123, 0, 0, 0, 0, 0, 15, 4, 95, 49, 77, 49, 39, 49, 35, 85, 36, 57, 57, 37, 0, 7, 65, 96, 116,
-			49, 89, 0, 0, 12, 4, 95, 49, 77, 50, 55, 35, 49, 93, 35, 0, 0, 11, 4, 95, 49, 77, 51, 49, 39, 47, 37, 0, 0, 0,
-			7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0, 7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 163,
-			224, 177, 141, 37, 66, 0, 11, 6, 224, 176, 155, 224, 177, 141, 37, 143, 0, 0, 0, 0, 0, 11, 6, 224, 176, 185, 224, 177, 141, 37,
-			107, 0, 11, 6, 224, 176, 161, 224, 177, 141, 37, 140, 0, 11, 6, 224, 176, 153, 224, 177, 141, 37, 68, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 179, 224, 177, 141,
-			37, 62, 0, 11, 6, 224, 176, 171, 224, 177, 141, 37, 136, 0, 0, 0, 0, 0, 12, 6, 224, 177, 153, 224, 177, 141, 37, 72, 88, 0,
-			11, 6, 224, 176, 177, 224, 177, 141, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 183, 224, 177,
-			141, 37, 93, 0, 11, 6, 224, 176, 159, 224, 177, 141, 37, 139, 0, 11, 6, 224, 176, 151, 224, 177, 141, 37, 81, 0, 0, 0, 0, 0,
-			11, 6, 224, 176, 181, 224, 177, 141, 37, 85, 0, 11, 6, 224, 176, 157, 224, 177, 141, 37, 144, 0, 11, 6, 224, 176, 149, 224, 177, 141,
-			37, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 5, 95, 48, 77, 50, 120,
-			55, 35, 49, 93, 35, 55, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 175, 224, 177, 141, 37, 57, 0, 11, 6, 224,
-			176, 167, 224, 177, 141, 37, 138, 0, 0, 0, 0, 0, 11, 6, 224, 176, 173, 224, 177, 141, 37, 137, 0, 11, 6, 224, 176, 165, 224, 177,
-			141, 37, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 95, 48, 77, 49, 120, 85, 36, 55, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 5, 95, 48, 77, 51, 120, 49, 39, 47, 55, 40, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 65, 40, 48, 48, 134, 0, 0, 13, 3, 95, 48, 67, 85, 35,
-			50, 72, 35, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 67, 39, 49, 35, 85, 35, 50, 72, 35, 0, 0, 0,
-			0, 0, 0, 0, 16, 3, 95, 49, 57, 48, 35, 50, 72, 39, 65, 65, 37, 72, 37, 0, 0, 17, 3, 95, 49, 56, 48, 35, 72, 138,
-			36, 50, 37, 65, 37, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 49, 48, 35, 72, 35, 49, 39, 50, 140, 40, 0,
-			0, 0, 15, 3, 95, 49, 51, 48, 35, 72, 35, 65, 65, 123, 140, 123, 0, 0, 14, 3, 95, 49, 50, 48, 35, 50, 50, 36, 50, 140,
-			40, 0, 0, 14, 3, 95, 49, 53, 48, 35, 72, 37, 107, 114, 50, 40, 0, 0, 15, 3, 95, 49, 52, 48, 35, 138, 50, 118, 55, 40,
-			81, 40, 0, 0, 14, 3, 95, 49, 55, 48, 35, 72, 37, 107, 114, 140, 40, 0, 0, 14, 3, 95, 49, 54, 48, 35, 72, 35, 107, 118,
-			34, 40, 0, 0, 0, 11, 3, 95, 55, 88, 142, 36, 137, 71, 134, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 49, 97, 39, 49,
-			35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 49, 88, 48, 35, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
-			3, 95, 50, 88, 37, 34, 35, 85, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 35, 49,
-			93, 35, 34, 35, 65, 0, 0, 0, 0, 12, 3, 95, 52, 88, 50, 35, 55, 40, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
-			3, 95, 53, 88, 57, 118, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 54, 88, 35, 34, 35, 85, 134, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 56, 88, 57, 36, 50, 35, 137, 134, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 11, 3, 95, 57, 88, 47, 39, 65, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
-			4, 95, 48, 77, 50, 55, 35, 49, 93, 35, 55, 35, 0, 0, 12, 4, 95, 48, 77, 51, 49, 39, 47, 55, 35, 0, 0, 0, 6, 131,
-			224, 176, 134, 76, 11, 4, 95, 48, 77, 49, 85, 36, 55, 35, 0, 0, 0, 8, 3, 224, 177, 140, 147, 135, 0, 0, 11, 3, 224, 177,
-			141, 85, 39, 47, 47, 40, 0, 6, 131, 224, 176, 133, 76, 0, 8, 3, 224, 177, 138, 18, 39, 0, 8, 3, 224, 176, 130, 35, 50, 0,
-			0, 9, 3, 224, 177, 139, 147, 119, 12, 0, 8, 3, 224, 176, 131, 35, 107, 0, 0, 8, 3, 224, 177, 136, 147, 134, 0, 0, 8, 3,
-			224, 176, 129, 35, 65, 0, 0, 8, 3, 224, 177, 134, 18, 36, 0, 0, 9, 3, 224, 177, 135, 147, 114, 12, 0, 0, 9, 3, 224, 177,
-			132, 147, 34, 123, 0, 0, 0, 9, 3, 224, 177, 130, 147, 123, 12, 0, 0, 9, 3, 224, 177, 131, 18, 34, 40, 0, 0, 9, 3, 224,
-			177, 128, 147, 112, 12, 0, 0, 8, 3, 224, 177, 129, 18, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 131, 224, 176, 166, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 176, 190, 147, 118, 12, 0, 0, 8, 3,
-			224, 176, 191, 18, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 12, 2, 194, 169, 49, 118, 48, 112, 34, 134, 139, 0, 0, 9, 2, 194, 182, 85, 114, 34, 118, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 11, 6, 224, 176, 156, 224, 177, 141, 37, 79, 0, 0, 0, 0, 0, 11, 6, 224, 176, 162, 224, 177, 141, 37, 142, 0, 11,
-			6, 224, 176, 154, 224, 177, 141, 37, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 160, 224, 177, 141,
-			37, 141, 0, 0, 0, 0, 0, 17, 2, 95, 33, 118, 97, 80, 35, 34, 57, 118, 34, 25, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 172, 224, 177, 141, 37, 71, 0, 11, 6, 224, 176, 164, 224, 177, 141, 37, 47, 0, 10, 2,
-			95, 45, 107, 134, 83, 35, 50, 0, 0, 9, 2, 95, 44, 49, 118, 65, 118, 0, 0, 9, 2, 95, 51, 65, 123, 140, 40, 0, 0, 10,
-			2, 95, 50, 34, 36, 50, 140, 40, 0, 0, 11, 6, 224, 176, 178, 224, 177, 141, 37, 55, 0, 11, 6, 224, 176, 170, 224, 177, 141, 37,
-			48, 0, 10, 2, 95, 49, 39, 49, 35, 139, 37, 0, 0, 10, 2, 95, 48, 89, 40, 50, 50, 35, 0, 0, 9, 2, 95, 55, 38, 114,
-			140, 40, 0, 0, 8, 2, 95, 54, 118, 34, 40, 0, 0, 8, 2, 95, 53, 134, 72, 40, 0, 0, 11, 2, 95, 52, 50, 118, 55, 40,
-			81, 40, 0, 0, 14, 2, 95, 59, 89, 36, 65, 112, 49, 119, 55, 35, 50, 0, 0, 10, 2, 95, 58, 49, 119, 55, 35, 50, 0, 0,
-			12, 2, 95, 57, 47, 39, 65, 65, 37, 72, 37, 0, 0, 13, 2, 95, 56, 38, 36, 50, 37, 65, 37, 72, 37, 0, 0, 16, 2, 95,
-			63, 48, 34, 35, 97, 50, 118, 34, 25, 35, 49, 35, 0, 0, 0, 12, 6, 224, 177, 152, 224, 177, 141, 37, 47, 89, 0, 11, 6, 224,
-			176, 184, 224, 177, 141, 37, 89, 0, 11, 6, 224, 176, 176, 224, 177, 141, 37, 34, 0, 11, 6, 224, 176, 152, 224, 177, 141, 37, 146, 0,
-			0, 0, 0, 0, 11, 6, 224, 176, 182, 224, 177, 141, 37, 97, 0, 11, 6, 224, 176, 158, 224, 177, 141, 37, 67, 0, 11, 6, 224, 176,
-			150, 224, 177, 141, 37, 145, 0, 9, 134, 224, 176, 146, 224, 176, 149, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 95, 95, 35, 65, 140, 35, 34, 15, 89, 49, 119, 34, 0, 0, 0, 11,
-			6, 224, 176, 168, 224, 177, 141, 37, 50, 0, 0, 0, 0, 0, 12, 6, 224, 176, 174, 224, 177, 141, 37, 65, 123, 0, 11, 6, 224, 176,
-			166, 224, 177, 141, 37, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 102, 12, 0, 0, 48, 0,
-			0, 0, 103, 12, 0, 0, 49, 0, 0, 0, 104, 12, 0, 0, 50, 0, 0, 0, 105, 12, 0, 0, 51, 0, 0, 0, 106, 12, 0, 0,
-			52, 0, 0, 0, 107, 12, 0, 0, 53, 0, 0, 0, 108, 12, 0, 0, 54, 0, 0, 0, 109, 12, 0, 0, 55, 0, 0, 0, 110, 12,
-			0, 0, 56, 0, 0, 0, 111, 12, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0,
-			3, 118, 0, 7, 6, 1, 8, 0, 3, 37, 0, 7, 6, 1, 9, 0, 3, 112, 0, 7, 6, 1, 10, 0, 3, 40, 0, 7, 6, 1,
-			11, 0, 3, 123, 0, 7, 6, 1, 12, 0, 3, 34, 40, 0, 7, 6, 1, 13, 0, 3, 45, 0, 7, 6, 1, 15, 0, 3, 36, 0,
-			8, 3, 38, 36, 0, 7, 6, 1, 16, 0, 3, 114, 0, 7, 6, 1, 17, 0, 3, 134, 0, 7, 6, 1, 19, 0, 3, 39, 0, 7,
-			6, 1, 20, 0, 3, 119, 0, 7, 6, 1, 21, 0, 3, 135, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0,
-			7, 6, 1, 23, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0,
-			7, 6, 1, 25, 0, 2, 17, 66, 3, 146, 0, 3, 146, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0,
-			7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0, 3, 80, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 143, 0, 3, 143, 35, 0,
-			7, 6, 1, 29, 0, 2, 17, 66, 3, 79, 0, 3, 79, 35, 0, 224, 177, 141, 224, 176, 158, 2, 17, 66, 3, 81, 50, 0, 224, 177,
-			141, 224, 176, 158, 3, 81, 50, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 144, 0, 3, 144, 35, 0, 7, 6, 1, 31, 0, 2,
-			17, 66, 3, 67, 0, 3, 67, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 33, 0, 2,
-			17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 35, 0, 2,
-			17, 66, 3, 142, 0, 3, 142, 35, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 2,
-			17, 66, 3, 47, 0, 3, 47, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 25, 0, 3, 25, 35, 0, 7, 6, 1, 39, 0, 2,
-			17, 66, 3, 72, 0, 3, 72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 41, 0, 2,
-			17, 66, 3, 50, 0, 3, 50, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 44, 0, 2,
-			17, 66, 3, 136, 0, 3, 136, 35, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 46, 0, 2,
-			17, 66, 3, 137, 0, 3, 137, 35, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 48, 0, 2,
-			17, 66, 3, 57, 0, 3, 57, 35, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 50, 0, 2,
-			17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 35, 0, 7, 6, 1, 52, 0, 2,
-			17, 66, 3, 62, 0, 3, 62, 35, 0, 7, 6, 1, 54, 0, 2, 17, 66, 3, 85, 0, 3, 85, 35, 0, 7, 6, 1, 55, 0, 2,
-			17, 66, 3, 97, 0, 3, 97, 35, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 35, 0, 7, 6, 1, 57, 0, 2,
-			17, 66, 3, 89, 0, 3, 89, 35, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 89, 0, 2,
-			17, 66, 3, 47, 89, 0, 3, 47, 89, 35, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 72, 88, 0, 3, 72, 88, 35, 0, 7, 6,
-			1, 97, 0, 3, 34, 40, 0, 7, 6, 1, 98, 0, 3, 45, 0, 7, 6, 224, 176, 0, 191, 3, 37, 0, 130, 3, 50, 0, 131, 3,
-			107, 0, 190, 3, 118, 0, 7, 6, 224, 177, 0, 141, 3, 0, 4, 149, 3, 12, 0, 150, 0, 131, 3, 34, 40, 0, 134, 3, 36, 0,
-			138, 3, 39, 0, 129, 3, 40, 0, 132, 3, 44, 12, 0, 128, 3, 112, 0, 135, 3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136,
-			3, 134, 0, 140, 3, 135, 0, 7, 6, 0, 36, 3, 140, 118, 55, 35, 34, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts64 = FileInMemory_createWithData (3380, reinterpret_cast<const char *> (&espeakdata_dicts64_data), 
-			U"espeak-1.48.04-source/espeak-data/te_dict", 
+		static unsigned char espeakdata_dicts63_data[3365] = {
+			0, 4, 0, 0, 164, 9, 0, 0, 0, 0, 0, 0, 0, 6, 65, 4, 114, 57, 0, 0, 0, 0, 0, 6, 65, 8, 71, 112, 0, 0,
+			0, 0, 0, 6, 65, 12, 89, 112, 0, 0, 0, 0, 0, 6, 65, 16, 72, 112, 0, 0, 0, 0, 0, 5, 65, 20, 112, 0, 0, 0,
+			0, 0, 6, 65, 24, 116, 83, 0, 0, 0, 0, 0, 6, 65, 28, 75, 112, 0, 0, 0, 0, 0, 6, 65, 32, 114, 76, 0, 0, 0,
+			0, 0, 6, 65, 36, 118, 57, 0, 0, 9, 1, 37, 97, 118, 47, 35, 65, 0, 0, 0, 0, 7, 65, 40, 75, 114, 57, 0, 0, 0,
+			12, 1, 42, 50, 35, 49, 93, 35, 47, 34, 35, 0, 0, 10, 1, 43, 49, 123, 141, 37, 49, 35, 0, 0, 7, 65, 44, 49, 114, 57,
+			0, 0, 0, 0, 8, 1, 47, 89, 55, 118, 93, 0, 0, 6, 65, 48, 116, 55, 0, 0, 0, 0, 0, 6, 65, 52, 116, 65, 0, 0,
+			0, 0, 0, 6, 65, 56, 116, 50, 0, 0, 0, 0, 0, 5, 65, 60, 119, 0, 0, 0, 0, 0, 6, 65, 64, 48, 112, 0, 0, 0,
+			0, 0, 7, 65, 68, 49, 57, 123, 0, 0, 0, 0, 0, 6, 65, 72, 118, 34, 0, 0, 0, 0, 0, 6, 65, 76, 116, 89, 0, 0,
+			0, 0, 14, 4, 95, 48, 67, 48, 84, 35, 50, 72, 35, 55, 40, 0, 0, 6, 65, 80, 138, 112, 0, 0, 0, 0, 0, 6, 65, 84,
+			57, 123, 0, 0, 0, 0, 0, 6, 65, 88, 84, 112, 0, 0, 0, 0, 0, 13, 1, 92, 71, 57, 118, 49, 35, 89, 55, 118, 93, 0,
+			11, 65, 92, 72, 109, 71, 109, 55, 57, 123, 0, 0, 0, 0, 0, 15, 4, 95, 49, 77, 49, 39, 49, 35, 84, 36, 57, 57, 37, 0,
+			7, 65, 96, 116, 49, 89, 0, 0, 12, 4, 95, 49, 77, 50, 55, 35, 49, 93, 35, 0, 0, 11, 4, 95, 49, 77, 51, 49, 39, 47,
+			37, 0, 0, 0, 7, 65, 100, 58, 118, 57, 0, 0, 0, 0, 0, 7, 65, 104, 88, 116, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 4, 16, 20, 10, 72, 4, 35, 97, 118, 65, 49, 35, 65, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 5, 95, 48, 77, 50, 24, 55, 35,
+			49, 93, 35, 55, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 11, 6, 224, 176, 163, 224, 177, 141, 37, 66, 0, 11, 6, 224, 176, 155, 224, 177, 141, 37, 144, 0, 12, 5, 95, 48, 77, 49, 24,
+			84, 36, 55, 40, 0, 0, 0, 0, 0, 11, 6, 224, 176, 185, 224, 177, 141, 37, 107, 0, 11, 6, 224, 176, 161, 224, 177, 141, 37, 141,
+			0, 11, 6, 224, 176, 153, 224, 177, 141, 37, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 5, 95, 48, 77, 51,
+			24, 49, 39, 47, 55, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 179, 224, 177,
+			141, 37, 62, 0, 11, 6, 224, 176, 171, 224, 177, 141, 37, 136, 0, 0, 0, 0, 0, 12, 6, 224, 177, 153, 224, 177, 141, 37, 72, 88,
+			0, 11, 6, 224, 176, 177, 224, 177, 141, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 183, 224,
+			177, 141, 37, 93, 0, 11, 6, 224, 176, 159, 224, 177, 141, 37, 140, 0, 11, 6, 224, 176, 151, 224, 177, 141, 37, 81, 0, 0, 0, 0,
+			0, 11, 6, 224, 176, 181, 224, 177, 141, 37, 84, 0, 11, 6, 224, 176, 157, 224, 177, 141, 37, 145, 0, 11, 6, 224, 176, 149, 224, 177,
+			141, 37, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 95, 49, 1, 39, 49, 35, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 175, 224, 177, 141, 37, 57, 0, 11, 6, 224, 176, 167, 224, 177, 141,
+			37, 139, 0, 0, 0, 0, 0, 11, 6, 224, 176, 173, 224, 177, 141, 37, 137, 0, 11, 6, 224, 176, 165, 224, 177, 141, 37, 138, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 65, 40, 48, 48, 134, 0, 0, 13, 3, 95, 48, 67, 84, 35,
+			50, 72, 35, 55, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 67, 39, 49, 35, 84, 35, 50, 72, 35, 0, 0, 0,
+			0, 0, 0, 0, 16, 3, 95, 49, 57, 48, 35, 65, 72, 39, 65, 65, 35, 72, 37, 0, 0, 17, 3, 95, 49, 56, 48, 35, 72, 139,
+			36, 50, 37, 65, 37, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 49, 49, 48, 35, 72, 35, 49, 39, 50, 141, 40, 0,
+			0, 0, 14, 3, 95, 49, 51, 48, 35, 72, 35, 65, 123, 141, 123, 0, 0, 14, 3, 95, 49, 50, 48, 35, 50, 50, 36, 65, 141, 40,
+			0, 0, 14, 3, 95, 49, 53, 48, 35, 72, 37, 107, 114, 50, 40, 0, 0, 15, 3, 95, 49, 52, 48, 35, 139, 50, 118, 55, 40, 81,
+			40, 0, 0, 14, 3, 95, 49, 55, 48, 35, 72, 37, 107, 114, 141, 40, 0, 0, 14, 3, 95, 49, 54, 48, 35, 72, 35, 107, 118, 34,
+			40, 0, 0, 0, 11, 3, 95, 55, 88, 141, 36, 137, 71, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 10, 3, 95, 49, 88, 48, 35, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 50, 88, 37, 34, 35, 84, 134, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 63, 63, 35, 49, 93, 35, 34, 35, 65, 0, 0, 0, 0, 12,
+			3, 95, 52, 88, 50, 35, 55, 40, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 95, 53, 88, 57, 118, 137, 134, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 54, 88, 35, 34, 35, 84, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 3, 95, 56, 88, 57, 36, 50, 35, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 57, 88, 47,
+			39, 65, 137, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 55, 35, 49, 93, 35,
+			55, 35, 0, 0, 12, 4, 95, 48, 77, 51, 49, 39, 47, 55, 35, 0, 0, 0, 6, 131, 224, 176, 134, 76, 11, 4, 95, 48, 77, 49,
+			84, 36, 55, 35, 0, 0, 0, 8, 3, 224, 177, 140, 148, 135, 0, 0, 11, 3, 224, 177, 141, 84, 39, 47, 47, 40, 0, 6, 131, 224,
+			176, 133, 76, 0, 8, 3, 224, 177, 138, 18, 39, 0, 8, 3, 224, 176, 130, 35, 50, 0, 0, 9, 3, 224, 177, 139, 148, 119, 12, 0,
+			8, 3, 224, 176, 131, 35, 107, 0, 0, 8, 3, 224, 177, 136, 148, 134, 0, 0, 8, 3, 224, 176, 129, 35, 65, 0, 0, 8, 3, 224,
+			177, 134, 18, 36, 0, 0, 9, 3, 224, 177, 135, 148, 114, 12, 0, 0, 9, 3, 224, 177, 132, 148, 34, 123, 0, 0, 0, 9, 3, 224,
+			177, 130, 148, 123, 12, 0, 0, 9, 3, 224, 177, 131, 18, 34, 40, 0, 0, 9, 3, 224, 177, 128, 148, 112, 12, 0, 0, 8, 3, 224,
+			177, 129, 18, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 224, 176, 166, 72, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 224, 176, 190, 148, 118, 12, 0, 0, 8, 3, 224, 176, 191, 18, 37, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 169, 49, 118, 48, 112, 34,
+			134, 140, 0, 0, 9, 2, 194, 182, 84, 114, 34, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 156, 224, 177,
+			141, 37, 79, 0, 0, 0, 0, 0, 11, 6, 224, 176, 162, 224, 177, 141, 37, 143, 0, 11, 6, 224, 176, 154, 224, 177, 141, 37, 80, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176, 160, 224, 177, 141, 37, 142, 0, 0, 0, 0, 0, 17, 2, 95,
+			33, 118, 97, 80, 35, 34, 57, 118, 34, 138, 35, 49, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 224, 176,
+			172, 224, 177, 141, 37, 71, 0, 11, 6, 224, 176, 164, 224, 177, 141, 37, 47, 0, 10, 2, 95, 45, 107, 134, 83, 35, 50, 0, 0, 9,
+			2, 95, 44, 49, 118, 65, 118, 0, 0, 9, 2, 95, 51, 65, 123, 141, 40, 0, 0, 10, 2, 95, 50, 34, 36, 50, 141, 40, 0, 0,
+			11, 6, 224, 176, 178, 224, 177, 141, 37, 55, 0, 11, 6, 224, 176, 170, 224, 177, 141, 37, 48, 0, 10, 2, 95, 49, 39, 49, 35, 140,
+			37, 0, 0, 10, 2, 95, 48, 89, 40, 50, 50, 35, 0, 0, 8, 2, 95, 55, 114, 141, 40, 0, 0, 8, 2, 95, 54, 118, 34, 40,
+			0, 0, 8, 2, 95, 53, 134, 72, 40, 0, 0, 10, 2, 95, 52, 50, 118, 55, 81, 40, 0, 0, 14, 2, 95, 59, 89, 36, 65, 112,
+			49, 119, 55, 35, 50, 0, 0, 10, 2, 95, 58, 49, 119, 55, 35, 50, 0, 0, 12, 2, 95, 57, 47, 39, 65, 65, 37, 72, 37, 0,
+			0, 13, 2, 95, 56, 38, 36, 50, 37, 65, 37, 72, 37, 0, 0, 16, 2, 95, 63, 48, 34, 35, 97, 50, 118, 34, 138, 35, 49, 35,
+			0, 0, 0, 12, 6, 224, 177, 152, 224, 177, 141, 37, 47, 89, 0, 11, 6, 224, 176, 184, 224, 177, 141, 37, 89, 0, 11, 6, 224, 176,
+			176, 224, 177, 141, 37, 34, 0, 11, 6, 224, 176, 152, 224, 177, 141, 37, 147, 0, 0, 0, 0, 0, 11, 6, 224, 176, 182, 224, 177, 141,
+			37, 97, 0, 11, 6, 224, 176, 158, 224, 177, 141, 37, 67, 0, 11, 6, 224, 176, 150, 224, 177, 141, 37, 146, 0, 9, 134, 224, 176, 146,
+			224, 176, 149, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			15, 2, 95, 95, 35, 65, 141, 35, 34, 15, 89, 49, 119, 34, 0, 0, 0, 11, 6, 224, 176, 168, 224, 177, 141, 37, 50, 0, 0, 0,
+			0, 0, 11, 6, 224, 176, 174, 224, 177, 141, 37, 65, 0, 11, 6, 224, 176, 166, 224, 177, 141, 37, 72, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 102, 12, 0, 0, 48, 0, 0, 0, 103, 12, 0, 0, 49, 0, 0, 0, 104, 12,
+			0, 0, 50, 0, 0, 0, 105, 12, 0, 0, 51, 0, 0, 0, 106, 12, 0, 0, 52, 0, 0, 0, 107, 12, 0, 0, 53, 0, 0, 0,
+			108, 12, 0, 0, 54, 0, 0, 0, 109, 12, 0, 0, 55, 0, 0, 0, 110, 12, 0, 0, 56, 0, 0, 0, 111, 12, 0, 0, 57, 0,
+			0, 0, 0, 0, 0, 0, 6, 1, 6, 0, 3, 35, 0, 7, 6, 1, 7, 0, 3, 118, 0, 7, 6, 1, 8, 0, 3, 37, 0, 7,
+			6, 1, 9, 0, 3, 112, 0, 7, 6, 1, 10, 0, 3, 40, 0, 7, 6, 1, 11, 0, 3, 123, 0, 7, 6, 1, 12, 0, 3, 34,
+			40, 0, 7, 6, 1, 13, 0, 3, 45, 0, 7, 6, 1, 15, 0, 3, 36, 0, 8, 3, 38, 36, 0, 7, 6, 1, 16, 0, 3, 114,
+			0, 7, 6, 1, 17, 0, 3, 134, 0, 7, 6, 1, 19, 0, 3, 39, 0, 7, 6, 1, 20, 0, 3, 119, 0, 7, 6, 1, 21, 0,
+			3, 135, 0, 7, 6, 1, 22, 0, 2, 17, 66, 3, 49, 0, 3, 49, 35, 0, 7, 6, 1, 23, 0, 2, 17, 66, 3, 146, 0, 3,
+			146, 35, 0, 7, 6, 1, 24, 0, 2, 17, 66, 3, 81, 0, 3, 81, 35, 0, 7, 6, 1, 25, 0, 2, 17, 66, 3, 147, 0, 3,
+			147, 35, 0, 7, 6, 1, 26, 0, 2, 17, 66, 3, 68, 0, 3, 68, 35, 0, 7, 6, 1, 27, 0, 2, 17, 66, 3, 80, 0, 3,
+			80, 35, 0, 7, 6, 1, 28, 0, 2, 17, 66, 3, 144, 0, 3, 144, 35, 0, 7, 6, 1, 29, 0, 2, 17, 66, 3, 79, 0, 3,
+			79, 35, 0, 7, 6, 1, 30, 0, 2, 17, 66, 3, 145, 0, 3, 145, 35, 0, 7, 6, 1, 31, 0, 2, 17, 66, 3, 67, 0, 3,
+			67, 35, 0, 7, 6, 1, 32, 0, 2, 17, 66, 3, 140, 0, 3, 140, 35, 0, 7, 6, 1, 33, 0, 2, 17, 66, 3, 142, 0, 3,
+			142, 35, 0, 7, 6, 1, 34, 0, 2, 17, 66, 3, 141, 0, 3, 141, 35, 0, 7, 6, 1, 35, 0, 2, 17, 66, 3, 143, 0, 3,
+			143, 35, 0, 7, 6, 1, 36, 0, 2, 17, 66, 3, 66, 0, 3, 66, 35, 0, 7, 6, 1, 37, 0, 2, 17, 66, 3, 47, 0, 3,
+			47, 35, 0, 7, 6, 1, 38, 0, 2, 17, 66, 3, 138, 0, 3, 138, 35, 0, 7, 6, 1, 39, 0, 2, 17, 66, 3, 72, 0, 3,
+			72, 35, 0, 7, 6, 1, 40, 0, 2, 17, 66, 3, 139, 0, 3, 139, 35, 0, 7, 6, 1, 41, 0, 2, 17, 66, 3, 50, 0, 3,
+			50, 35, 0, 7, 6, 1, 43, 0, 2, 17, 66, 3, 48, 0, 3, 48, 35, 0, 7, 6, 1, 44, 0, 2, 17, 66, 3, 136, 0, 3,
+			136, 35, 0, 7, 6, 1, 45, 0, 2, 17, 66, 3, 71, 0, 3, 71, 35, 0, 7, 6, 1, 46, 0, 2, 17, 66, 3, 137, 0, 3,
+			137, 35, 0, 7, 6, 1, 47, 0, 2, 17, 66, 3, 65, 0, 3, 65, 35, 0, 7, 6, 1, 48, 0, 2, 17, 66, 3, 57, 0, 3,
+			57, 35, 0, 7, 6, 1, 49, 0, 2, 17, 66, 3, 34, 0, 3, 34, 35, 0, 7, 6, 1, 50, 0, 2, 17, 66, 3, 34, 0, 3,
+			34, 35, 0, 7, 6, 1, 51, 0, 2, 17, 66, 3, 55, 0, 3, 55, 35, 0, 7, 6, 1, 52, 0, 2, 17, 66, 3, 62, 0, 3,
+			62, 35, 0, 7, 6, 1, 54, 0, 2, 17, 66, 3, 84, 0, 3, 84, 35, 0, 7, 6, 1, 55, 0, 2, 17, 66, 3, 97, 0, 3,
+			97, 35, 0, 7, 6, 1, 56, 0, 2, 17, 66, 3, 93, 0, 3, 93, 35, 0, 7, 6, 1, 57, 0, 2, 17, 66, 3, 89, 0, 3,
+			89, 35, 0, 7, 6, 1, 58, 0, 2, 17, 66, 3, 107, 0, 3, 107, 35, 0, 7, 6, 1, 89, 0, 2, 17, 66, 3, 47, 89, 0,
+			3, 47, 89, 35, 0, 7, 6, 1, 90, 0, 2, 17, 66, 3, 72, 88, 0, 3, 72, 88, 35, 0, 7, 6, 1, 97, 0, 3, 34, 40,
+			0, 7, 6, 1, 98, 0, 3, 45, 0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104, 105, 0, 7,
+			6, 224, 176, 0, 191, 3, 37, 0, 130, 3, 65, 0, 131, 3, 107, 0, 190, 3, 118, 0, 7, 6, 224, 177, 0, 141, 3, 0, 4, 149,
+			3, 12, 0, 150, 0, 131, 3, 34, 40, 0, 134, 3, 36, 0, 138, 3, 39, 0, 129, 3, 40, 0, 132, 3, 44, 12, 0, 128, 3, 112,
+			0, 135, 3, 114, 0, 139, 3, 119, 0, 130, 3, 123, 0, 136, 3, 134, 0, 140, 3, 135, 0, 7, 6, 0, 36, 3, 141, 118, 55, 35,
+			34, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts63 = FileInMemory_createWithData (3364, reinterpret_cast<const char *> (&espeakdata_dicts63_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/te_dict", 
 			U"te");
-		my addItem_move (espeakdata_dicts64.move());
+		Collection_addItem (me.peek(), espeakdata_dicts63.transfer());
 
-		static unsigned char espeakdata_dicts65_data[6053] = {
-			0, 4, 0, 0, 41, 13, 0, 0, 0, 0, 0, 0, 0, 5, 65, 4, 35, 0, 0, 6, 194, 5, 0, 13, 46, 0, 0, 0, 6, 65,
-			8, 71, 36, 0, 0, 0, 0, 14, 139, 107, 196, 177, 114, 107, 108, 97, 114, 101, 108, 105, 65, 0, 6, 65, 12, 75, 109, 0, 0, 0,
-			0, 0, 6, 65, 16, 72, 109, 0, 0, 0, 6, 195, 36, 209, 128, 13, 0, 9, 198, 16, 83, 137, 104, 194, 64, 66, 16, 4, 95, 100,
-			112, 116, 10, 84, 37, 51, 81, 4, 113, 55, 23, 0, 0, 5, 65, 20, 109, 0, 0, 0, 0, 0, 6, 65, 24, 83, 109, 0, 0, 0,
-			0, 0, 6, 65, 28, 79, 109, 0, 0, 0, 0, 0, 6, 65, 32, 107, 109, 0, 0, 0, 0, 0, 5, 65, 36, 37, 0, 0, 10, 1,
-			37, 57, 113, 88, 72, 109, 0, 27, 0, 6, 195, 160, 98, 192, 13, 8, 1, 38, 11, 84, 6, 109, 0, 0, 0, 6, 65, 40, 90, 109,
-			0, 0, 0, 12, 1, 42, 57, 6, 13, 64, 72, 13, 88, 0, 27, 0, 9, 1, 43, 35, 51, 47, 13, 0, 27, 0, 6, 65, 44, 49,
-			35, 0, 0, 0, 0, 0, 14, 4, 95, 100, 105, 97, 111, 65, 64, 35, 6, 111, 47, 0, 6, 65, 48, 55, 109, 0, 0, 0, 0, 0,
-			6, 65, 52, 65, 109, 0, 0, 0, 0, 0, 6, 65, 56, 50, 109, 0, 0, 0, 7, 195, 76, 150, 128, 76, 46, 0, 0, 5, 193, 60,
-			76, 46, 0, 9, 1, 61, 109, 91, 124, 47, 0, 27, 0, 0, 0, 6, 65, 64, 48, 109, 0, 0, 6, 194, 4, 32, 13, 46, 0, 7,
-			195, 4, 33, 0, 13, 46, 0, 0, 10, 135, 98, 97, 114, 116, 196, 177, 110, 65, 7, 65, 68, 49, 84, 109, 0, 0, 0, 0, 0, 6,
-			65, 72, 51, 109, 0, 0, 0, 0, 16, 4, 95, 100, 111, 116, 113, 89, 47, 50, 110, 49, 47, 6, 35, 0, 0, 6, 65, 76, 89, 109,
-			0, 0, 0, 0, 0, 6, 65, 80, 47, 109, 0, 0, 6, 195, 81, 0, 79, 13, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0,
-			6, 65, 88, 84, 109, 0, 0, 0, 0, 0, 6, 195, 61, 33, 21, 65, 12, 65, 92, 72, 40, 71, 109, 55, 84, 6, 109, 0, 0, 0,
-			0, 0, 7, 196, 80, 242, 193, 80, 65, 7, 65, 96, 109, 49, 89, 0, 0, 0, 0, 0, 6, 65, 100, 57, 109, 0, 0, 0, 0, 9,
-			198, 4, 195, 65, 57, 144, 64, 66, 0, 6, 65, 104, 88, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 25, 64, 65, 13, 0,
-			0, 0, 8, 197, 52, 20, 132, 36, 224, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 116, 108, 100, 47, 124,
-			55, 72, 6, 109, 0, 0, 0, 0, 0, 0, 0, 6, 195, 4, 100, 0, 13, 0, 0, 9, 198, 52, 19, 1, 81, 144, 64, 66, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 16, 16, 72, 46, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 9, 80, 76, 46, 0, 6,
-			195, 161, 52, 192, 13, 0, 0, 0, 0, 6, 195, 5, 99, 64, 13, 0, 0, 0, 0, 0, 0, 6, 65, 128, 76, 109, 0, 0, 6, 195,
-			80, 146, 22, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 109, 99, 110, 40, 88, 6, 35,
-			47, 65, 35, 37, 65, 124, 0, 0, 0, 0, 9, 198, 64, 84, 208, 20, 208, 133, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 196, 44, 243, 153, 4, 65, 6, 195, 6, 129, 128, 13, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 16,
-			80, 72, 46, 0, 0, 0, 0, 6, 195, 4, 180, 0, 13, 0, 0, 0, 0, 6, 195, 160, 149, 128, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 32, 18, 203, 5, 34, 64, 65, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 81, 83, 131, 20, 194, 64, 65, 0, 0, 9, 198, 66, 181, 43,
-			72, 113, 64, 66, 0, 0, 0, 0, 8, 197, 5, 100, 149, 64, 16, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 44, 22, 83,
-			21, 34, 64, 65, 0, 7, 196, 4, 102, 79, 56, 65, 0, 0, 0, 0, 7, 196, 37, 163, 73, 72, 65, 0, 10, 199, 36, 225, 201, 49,
-			65, 82, 20, 67, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 83, 128, 76, 46, 0, 0, 0, 0, 6, 195, 4, 146, 13, 13, 0, 8,
-			196, 100, 242, 211, 4, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 6, 195, 160, 68, 0, 13, 0, 6, 195, 61, 48, 128, 13, 0, 7, 196, 8, 19, 139, 4, 65, 0, 0,
-			0, 0, 0, 0, 8, 133, 117, 197, 159, 97, 107, 65, 0, 10, 3, 226, 130, 172, 35, 84, 51, 110, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 9, 134, 97, 196, 159, 114, 196, 177, 65, 14, 4, 95, 111, 103, 111, 39, 81, 39, 50, 6, 109, 49, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 53, 81, 1, 57, 144, 64, 66, 10, 135, 196, 177, 112, 97, 114, 116,
-			97, 66, 9, 198, 4, 229, 1, 49, 144, 64, 66, 0, 0, 0, 0, 19, 4, 95, 98, 114, 118, 49, 13, 89, 6, 35, 64, 47, 65, 35,
-			37, 65, 124, 0, 0, 0, 0, 0, 21, 4, 95, 97, 99, 50, 76, 6, 124, 83, 47, 84, 111, 51, 81, 6, 111, 37, 65, 124, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 39, 47, 6, 40, 88,
-			0, 0, 10, 3, 95, 48, 67, 6, 57, 112, 88, 0, 0, 0, 6, 195, 160, 144, 128, 13, 0, 0, 0, 0, 0, 7, 196, 80, 211, 79,
-			8, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 8, 21, 13, 4, 224, 65, 13, 3, 95, 50, 67, 6, 37, 80, 37, 57, 112,
-			88, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 49, 6, 39, 50, 71, 37, 51, 0, 0, 9, 3, 95, 49, 48, 6, 39, 50, 0,
-			0, 0, 7, 196, 18, 182, 131, 20, 65, 12, 3, 95, 49, 50, 6, 39, 50, 37, 80, 37, 0, 0, 0, 0, 0, 6, 195, 36, 129, 0,
-			13, 0, 0, 13, 3, 95, 55, 88, 57, 36, 47, 65, 6, 37, 91, 0, 0, 8, 197, 76, 19, 83, 84, 224, 65, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 16, 4, 95, 97, 99, 117, 84, 111, 51, 81, 6, 111, 37, 65, 124, 0, 0, 0, 0, 0, 9, 198, 46, 181,
-			1, 33, 144, 64, 66, 9, 3, 95, 49, 88, 6, 39, 50, 0, 0, 5, 65, 160, 126, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95,
-			50, 88, 57, 37, 51, 65, 6, 37, 0, 0, 8, 197, 32, 149, 12, 21, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			13, 3, 95, 63, 63, 89, 109, 65, 71, 6, 110, 55, 0, 0, 0, 0, 11, 3, 95, 52, 88, 49, 6, 13, 51, 49, 0, 0, 0, 0,
-			0, 0, 7, 196, 32, 21, 1, 100, 65, 0, 0, 0, 11, 3, 95, 53, 88, 36, 55, 55, 6, 37, 0, 0, 0, 13, 4, 95, 114, 110,
-			103, 107, 35, 64, 49, 6, 35, 0, 0, 0, 0, 0, 0, 0, 6, 195, 8, 243, 21, 65, 13, 3, 95, 54, 88, 35, 64, 47, 65, 6,
-			13, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 81, 54, 68, 13, 0, 9, 134, 109, 117, 196, 159, 108,
-			97, 65, 0, 0, 13, 3, 95, 56, 88, 89, 36, 49, 89, 6, 109, 50, 0, 0, 0, 0, 0, 6, 195, 72, 150, 133, 65, 0, 0, 0,
-			7, 131, 109, 196, 177, 72, 46, 6, 194, 44, 144, 72, 28, 0, 13, 3, 95, 57, 88, 72, 39, 49, 89, 6, 35, 50, 0, 0, 0, 0,
-			0, 0, 9, 134, 97, 121, 100, 196, 177, 110, 65, 0, 0, 8, 197, 100, 246, 135, 5, 64, 65, 6, 194, 53, 80, 72, 46, 10, 3, 95,
-			63, 65, 107, 35, 51, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 20, 66, 82,
-			56, 80, 66, 10, 199, 128, 19, 129, 44, 176, 76, 20, 66, 0, 9, 198, 37, 53, 1, 56, 37, 76, 66, 0, 0, 0, 6, 195, 81, 49,
-			64, 13, 0, 0, 0, 0, 0, 9, 198, 52, 20, 205, 5, 98, 64, 65, 0, 0, 0, 6, 195, 81, 50, 64, 13, 0, 0, 0, 13, 4,
-			95, 99, 105, 114, 91, 35, 48, 49, 6, 35, 0, 5, 65, 172, 112, 0, 0, 0, 0, 0, 14, 139, 107, 196, 177, 115, 107, 196, 177, 118,
-			114, 97, 107, 65, 14, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 39, 50, 0, 0, 7, 195, 76, 83, 128, 76, 46, 6, 195, 161, 146,
-			192, 13, 14, 4, 95, 48, 77, 51, 65, 37, 55, 57, 6, 35, 34, 0, 0, 0, 11, 4, 95, 48, 77, 49, 71, 6, 37, 50, 0, 0,
-			0, 0, 0, 0, 0, 9, 134, 110, 105, 196, 159, 100, 101, 65, 0, 0, 0, 0, 0, 0, 0, 9, 198, 8, 22, 66, 85, 37, 0, 65,
-			0, 0, 0, 0, 6, 194, 52, 144, 72, 46, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 147, 143, 64, 65, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 9, 84, 147, 4, 65, 0, 0, 0, 0, 0, 0, 12, 4, 95, 99, 101, 100,
-			107, 6, 35, 51, 83, 0, 0, 0, 0, 0, 0, 8, 197, 8, 149, 12, 37, 48, 65, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 99,
-			97, 112, 71, 112, 57, 6, 113, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 52, 84, 136, 4, 32, 64, 65,
-			0, 0, 0, 0, 9, 198, 76, 18, 193, 73, 144, 64, 66, 7, 131, 197, 159, 117, 76, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 138, 195, 167, 97, 110, 107, 196, 177, 114, 196, 177, 65, 0, 7, 196, 72, 17, 25, 60, 65,
-			0, 7, 196, 37, 53, 133, 128, 65, 0, 0, 0, 0, 0, 0, 0, 6, 195, 60, 80, 196, 13, 0, 0, 0, 0, 8, 197, 52, 84, 147,
-			36, 224, 65, 0, 0, 0, 0, 0, 0, 6, 194, 80, 16, 72, 46, 0, 0, 0, 0, 0, 0, 9, 198, 76, 147, 83, 37, 144, 72, 65,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95, 103, 114, 118, 6, 35, 49, 89, 35, 50, 37, 65, 124, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 194, 167, 76, 109, 50, 79, 6, 109, 55, 0, 0, 8, 197, 18, 179, 68, 173,
-			160, 65, 6, 195, 36, 210, 194, 13, 6, 195, 36, 210, 194, 13, 0, 0, 0, 0, 0, 0, 0, 17, 2, 196, 159, 57, 40, 65, 40, 91,
-			6, 35, 49, 15, 79, 6, 109, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 194, 182, 48, 35, 16, 35, 81, 51, 6, 35, 83, 0, 0,
-			7, 2, 197, 159, 91, 109, 0, 0, 0, 0, 0, 0, 6, 195, 84, 36, 0, 13, 12, 2, 194, 176, 72, 36, 16, 36, 75, 6, 109, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 85, 33, 129, 65, 0, 6, 194, 80, 80, 72, 46, 6, 195, 161, 69, 128, 13,
-			0, 0, 0, 0, 0, 6, 2, 196, 177, 13, 0, 0, 8, 197, 9, 84, 132, 85, 32, 65, 8, 197, 52, 244, 205, 61, 32, 65, 0, 0,
-			0, 6, 195, 85, 49, 0, 13, 0, 0, 0, 0, 6, 195, 100, 179, 64, 13, 6, 195, 4, 179, 64, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 11, 136, 197, 159, 196, 177, 114, 110, 97, 107, 65, 8, 133, 195, 182, 196, 177, 98, 13, 0, 0, 0, 0, 0, 12,
-			137, 116, 101, 107, 105, 114, 100, 97, 196, 159, 66, 0, 0, 0, 0, 0, 0, 9, 198, 8, 83, 66, 21, 144, 90, 65, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 8, 197, 8, 241, 18, 84, 208, 65, 8, 197, 8, 147, 135, 160, 192, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 7, 196, 128, 244, 149, 52, 65, 8, 197, 4, 226, 193, 72, 16, 65, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 21, 1, 11,
-			13, 0, 7, 196, 76, 149, 129, 76, 65, 6, 194, 88, 80, 72, 28, 0, 0, 0, 0, 0, 11, 2, 95, 35, 72, 37, 57, 6, 109, 88,
-			0, 0, 20, 2, 95, 34, 47, 13, 51, 50, 6, 35, 49, 37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 19, 2, 95, 33, 113, 50, 55,
-			6, 109, 65, 37, 91, 35, 16, 36, 47, 4, 124, 0, 0, 0, 14, 2, 95, 39, 35, 48, 110, 89, 47, 51, 6, 110, 83, 0, 0, 16,
-			2, 95, 38, 84, 6, 109, 37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 0, 0, 0, 0, 18, 2, 95, 41, 49, 35, 48, 35, 48, 35,
-			16, 35, 50, 47, 6, 109, 88, 0, 0, 11, 136, 196, 177, 196, 159, 100, 196, 177, 114, 65, 16, 2, 95, 40, 35, 76, 48, 35, 16, 35,
-			50, 47, 6, 109, 88, 0, 0, 16, 2, 95, 47, 36, 57, 6, 124, 49, 76, 124, 88, 81, 6, 124, 0, 0, 11, 2, 95, 46, 50, 110,
-			49, 47, 6, 35, 0, 0, 16, 2, 95, 45, 49, 6, 13, 89, 35, 76, 124, 88, 81, 6, 124, 0, 0, 12, 2, 95, 44, 84, 124, 51,
-			79, 6, 113, 55, 0, 0, 7, 195, 8, 148, 128, 76, 46, 8, 2, 95, 51, 6, 112, 76, 0, 0, 9, 2, 95, 50, 37, 80, 6, 37,
-			0, 0, 9, 2, 95, 49, 71, 6, 37, 51, 0, 0, 11, 2, 95, 48, 89, 13, 83, 6, 13, 51, 0, 0, 10, 2, 95, 55, 57, 36,
-			72, 6, 37, 0, 0, 10, 2, 95, 54, 35, 64, 47, 6, 13, 0, 0, 6, 195, 4, 33, 211, 13, 9, 2, 95, 53, 71, 6, 109, 91,
-			0, 0, 10, 2, 95, 52, 72, 6, 126, 51, 47, 0, 0, 20, 2, 95, 59, 50, 110, 49, 47, 35, 64, 6, 13, 84, 124, 51, 79, 6,
-			113, 55, 0, 0, 15, 2, 95, 58, 37, 49, 6, 124, 50, 110, 49, 47, 6, 35, 0, 0, 11, 2, 95, 57, 72, 6, 39, 49, 40, 88,
-			0, 0, 11, 2, 95, 56, 89, 36, 80, 6, 124, 88, 0, 0, 18, 2, 95, 63, 89, 39, 51, 6, 111, 37, 91, 35, 16, 36, 47, 4,
-			124, 0, 0, 0, 0, 0, 7, 195, 8, 150, 128, 76, 46, 0, 0, 0, 16, 2, 95, 64, 49, 111, 57, 51, 111, 49, 64, 6, 111, 6,
-			35, 0, 0, 13, 138, 115, 196, 177, 109, 115, 196, 177, 99, 97, 107, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 95,
-			226, 128, 166, 6, 113, 76, 50, 110, 49, 47, 6, 35, 0, 0, 0, 0, 0, 0, 6, 195, 20, 177, 192, 13, 17, 4, 95, 226, 128, 153,
-			47, 109, 49, 47, 13, 51, 50, 6, 35, 49, 0, 0, 17, 4, 95, 226, 128, 152, 47, 109, 49, 47, 13, 51, 50, 6, 35, 49, 0, 0,
-			0, 0, 7, 195, 36, 193, 64, 72, 46, 0, 0, 18, 4, 95, 226, 128, 147, 6, 40, 88, 111, 50, 76, 124, 88, 81, 6, 124, 0, 0,
-			0, 15, 2, 95, 95, 4, 35, 64, 47, 76, 124, 88, 81, 6, 124, 0, 0, 22, 2, 95, 94, 124, 50, 75, 6, 109, 55, 47, 65, 109,
-			37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 0, 22, 2, 95, 92, 47, 6, 109, 51, 89, 15, 36, 57, 4, 124, 49, 76, 124, 88, 81,
-			6, 124, 0, 0, 0, 0, 0, 0, 6, 195, 80, 211, 192, 13, 0, 0, 0, 0, 0, 0, 17, 142, 107, 196, 177, 112, 107, 196, 177, 114,
-			109, 196, 177, 122, 196, 177, 65, 0, 0, 6, 195, 60, 116, 192, 13, 6, 2, 95, 111, 110, 0, 0, 6, 195, 161, 54, 77, 13, 0, 0,
-			9, 198, 84, 180, 129, 100, 224, 64, 66, 0, 0, 7, 196, 64, 244, 212, 4, 65, 0, 18, 4, 95, 104, 97, 99, 47, 6, 109, 51, 89,
-			91, 35, 48, 49, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 95, 126, 57, 35, 49, 64, 35, 91, 6, 13,
-			49, 0, 0, 0, 7, 196, 44, 147, 9, 76, 65, 0, 0, 0, 0, 0, 11, 136, 115, 97, 112, 115, 97, 114, 196, 177, 65, 0, 0, 0,
-			0, 8, 133, 196, 177, 109, 107, 98, 13, 0, 8, 197, 5, 37, 22, 36, 224, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 5, 67, 64, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 7, 132, 197, 159, 116, 105, 13, 0, 0, 7, 196, 29, 54, 73, 32, 13, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 7, 196, 76, 146, 82, 80, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 4, 208,
-			64, 28, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 54,
-			176, 72, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 4, 208, 83, 100, 16, 66, 0, 0, 6, 195, 5, 69, 128, 13, 0,
-			10, 199, 44, 20, 212, 4, 211, 206, 84, 65, 11, 200, 37, 50, 197, 56, 65, 82, 84, 224, 66, 12, 137, 100, 111, 115, 100, 111, 196, 159,
-			114, 117, 65, 0, 0, 0, 7, 195, 88, 86, 65, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 107, 117, 114, 116,
-			117, 108, 117, 197, 159, 65, 0, 0, 0, 6, 18, 66, 195, 167, 0, 197, 159, 0, 102, 0, 104, 0, 107, 0, 112, 0, 113, 0, 115, 0,
-			116, 0, 7, 6, 18, 67, 196, 177, 0, 97, 0, 111, 0, 117, 0, 7, 6, 18, 68, 195, 182, 0, 195, 188, 0, 195, 174, 0, 195, 162,
-			0, 195, 180, 0, 195, 187, 0, 105, 0, 101, 0, 7, 6, 20, 0, 0, 96, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 6, 195,
-			167, 0, 3, 76, 0, 101, 2, 32, 14, 128, 128, 130, 3, 76, 2, 109, 0, 7, 6, 195, 174, 0, 3, 13, 0, 7, 6, 195, 182, 0,
-			3, 126, 0, 7, 6, 195, 188, 0, 110, 195, 188, 122, 1, 21, 2, 32, 14, 128, 128, 132, 3, 2, 112, 50, 112, 88, 0, 109, 1, 21,
-			2, 32, 14, 128, 128, 130, 3, 2, 112, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 112, 88, 0, 4, 3, 112, 0, 1,
-			21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 112, 50, 0, 121, 111, 114, 1, 21, 2, 32, 14, 128,
-			128, 132, 3, 112, 57, 2, 39, 51, 0, 7, 6, 196, 159, 0, 4, 1, 17, 65, 3, 12, 0, 97, 1, 97, 0, 111, 1, 111, 0, 117,
-			1, 117, 0, 195, 182, 1, 182, 195, 0, 195, 188, 1, 188, 195, 0, 4, 1, 101, 3, 57, 0, 1, 105, 0, 3, 100, 0, 5, 1, 1,
-			17, 65, 2, 12, 3, 127, 0, 7, 6, 196, 177, 0, 110, 196, 177, 122, 1, 21, 2, 32, 14, 128, 128, 132, 3, 2, 13, 50, 13, 88,
-			0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 13, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 13, 88, 0, 4,
-			3, 13, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 13, 50, 0, 121, 111, 114, 1, 21,
-			2, 32, 14, 128, 128, 132, 3, 13, 57, 2, 39, 51, 0, 7, 6, 197, 159, 0, 3, 91, 0, 7, 6, 97, 0, 4, 3, 35, 0, 1,
-			21, 2, 32, 14, 128, 128, 129, 0, 121, 196, 177, 109, 1, 21, 2, 32, 14, 128, 128, 132, 3, 35, 57, 13, 65, 0, 108, 196, 177, 109,
-			1, 21, 2, 32, 14, 128, 128, 132, 3, 35, 64, 13, 65, 0, 99, 97, 107, 1, 21, 2, 32, 14, 128, 128, 132, 3, 35, 75, 35, 49,
-			0, 99, 97, 107, 109, 196, 177, 197, 159, 1, 21, 2, 32, 14, 128, 128, 135, 3, 35, 75, 35, 49, 65, 2, 13, 91, 0, 118, 114, 117,
-			1, 21, 2, 112, 97, 3, 35, 84, 34, 6, 40, 0, 115, 196, 177, 110, 1, 21, 2, 32, 14, 128, 128, 132, 3, 35, 89, 13, 50, 0,
-			7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 75, 0, 101, 2, 32, 14, 128, 128, 130, 3, 75, 2, 109, 0, 7, 6, 100, 0,
-			196, 177, 114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 13, 51, 0, 105, 114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 37, 51, 0, 117,
-			114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 40, 51, 0, 195, 188, 114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 112, 51, 0, 8, 2,
-			101, 196, 159, 105, 108, 3, 6, 72, 0, 3, 72, 0, 196, 177, 2, 32, 14, 128, 128, 130, 3, 72, 13, 0, 196, 177, 107, 2, 32, 14,
-			128, 128, 131, 3, 72, 13, 49, 0, 196, 177, 110, 2, 32, 14, 128, 128, 131, 3, 72, 13, 50, 0, 196, 177, 110, 196, 177, 122, 2, 32,
-			14, 128, 128, 133, 3, 72, 13, 50, 13, 88, 0, 196, 177, 108, 97, 114, 2, 32, 14, 128, 128, 133, 3, 72, 13, 64, 35, 51, 0, 196,
-			177, 109, 2, 32, 14, 128, 128, 131, 3, 72, 13, 65, 0, 97, 2, 32, 14, 128, 128, 130, 3, 72, 35, 0, 97, 110, 2, 32, 14, 128,
-			128, 131, 3, 72, 35, 50, 0, 101, 2, 32, 14, 128, 128, 130, 3, 72, 36, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 72, 36, 50,
-			0, 105, 2, 32, 14, 128, 128, 130, 3, 72, 37, 0, 105, 107, 2, 32, 14, 128, 128, 131, 3, 72, 37, 49, 0, 105, 110, 2, 32, 14,
-			128, 128, 131, 3, 72, 37, 50, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 72, 37, 50, 37, 88, 0, 105, 108, 101, 114, 2,
-			32, 14, 128, 128, 133, 3, 72, 37, 55, 36, 51, 0, 105, 109, 2, 32, 14, 128, 128, 131, 3, 72, 37, 65, 0, 117, 2, 32, 14, 128,
-			128, 130, 3, 72, 40, 0, 117, 107, 2, 32, 14, 128, 128, 131, 3, 72, 40, 49, 0, 117, 110, 2, 32, 14, 128, 128, 131, 3, 72, 40,
-			50, 0, 117, 110, 117, 122, 2, 32, 14, 128, 128, 133, 3, 72, 40, 50, 40, 88, 0, 117, 108, 97, 114, 2, 32, 14, 128, 128, 133, 3,
-			72, 40, 64, 35, 34, 0, 117, 109, 2, 32, 14, 128, 128, 131, 3, 72, 40, 65, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 72, 112,
-			0, 195, 188, 107, 2, 32, 14, 128, 128, 131, 3, 72, 112, 49, 0, 195, 188, 110, 2, 32, 14, 128, 128, 131, 3, 72, 112, 50, 0, 195,
-			188, 110, 195, 188, 122, 2, 32, 14, 128, 128, 133, 3, 72, 112, 50, 112, 88, 0, 195, 188, 108, 101, 114, 2, 32, 14, 128, 128, 133, 3,
-			72, 112, 55, 36, 34, 0, 195, 188, 109, 2, 32, 14, 128, 128, 131, 3, 72, 112, 65, 0, 7, 6, 101, 0, 4, 3, 36, 0, 1, 21,
-			2, 32, 14, 128, 128, 129, 0, 108, 105, 109, 1, 21, 2, 32, 14, 128, 128, 132, 3, 36, 55, 37, 65, 0, 121, 105, 109, 1, 21, 2,
-			32, 14, 128, 128, 132, 3, 36, 57, 37, 65, 0, 99, 101, 107, 1, 21, 2, 32, 14, 128, 128, 132, 3, 36, 75, 36, 49, 0, 99, 101,
-			107, 109, 105, 197, 159, 1, 21, 2, 32, 14, 128, 128, 135, 3, 36, 75, 36, 49, 65, 2, 37, 91, 0, 115, 105, 110, 1, 21, 2, 32,
-			14, 128, 128, 132, 3, 36, 89, 37, 50, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 1, 18, 68, 2, 25, 3, 79, 0,
-			2, 18, 68, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 110, 105, 122, 1, 21, 2, 32, 14, 128, 128, 132, 3,
-			2, 37, 50, 37, 88, 0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 37, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128, 130, 3,
-			2, 37, 88, 0, 4, 3, 37, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 37, 50, 0,
-			121, 111, 114, 1, 21, 2, 32, 14, 128, 128, 132, 3, 37, 57, 2, 39, 51, 0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0, 101,
-			110, 2, 32, 14, 128, 128, 131, 3, 2, 80, 36, 50, 0, 3, 49, 0, 4, 1, 18, 68, 2, 25, 3, 80, 0, 2, 18, 68, 0, 7,
-			6, 108, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2, 55, 36, 0, 97, 2, 32, 14, 128, 128, 130, 3, 2, 64, 35, 0, 3, 55, 0,
-			101, 114, 2, 32, 14, 128, 128, 131, 3, 55, 36, 51, 0, 105, 2, 32, 14, 128, 128, 130, 3, 55, 37, 0, 105, 107, 2, 32, 14, 128,
-			128, 131, 3, 55, 37, 49, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 55, 112, 0, 195, 188, 107, 2, 32, 14, 128, 128, 131, 3, 55,
-			112, 49, 0, 4, 1, 18, 67, 2, 25, 3, 64, 0, 2, 18, 67, 0, 196, 177, 2, 32, 14, 128, 128, 130, 3, 64, 13, 0, 196, 177,
-			107, 2, 32, 14, 128, 128, 131, 3, 64, 13, 49, 0, 97, 114, 2, 32, 14, 128, 128, 131, 3, 64, 35, 51, 0, 117, 2, 32, 14, 128,
-			128, 130, 3, 64, 40, 0, 117, 107, 2, 32, 14, 128, 128, 131, 3, 64, 40, 49, 0, 7, 6, 109, 0, 97, 2, 32, 14, 128, 128, 130,
-			3, 2, 65, 35, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2, 65, 36, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 196, 177, 110,
-			2, 32, 14, 128, 128, 131, 3, 50, 13, 50, 0, 105, 110, 2, 32, 14, 128, 128, 131, 3, 50, 37, 50, 0, 117, 110, 2, 32, 14, 128,
-			128, 131, 3, 50, 40, 50, 0, 100, 97, 8, 2, 32, 3, 50, 72, 35, 0, 100, 97, 110, 8, 2, 32, 3, 50, 72, 35, 50, 0, 100,
-			101, 8, 2, 32, 3, 50, 72, 36, 0, 100, 101, 110, 8, 2, 32, 3, 50, 72, 36, 50, 0, 195, 188, 110, 2, 32, 14, 128, 128, 131,
-			3, 50, 112, 50, 0, 7, 6, 111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0,
-			97, 2, 32, 14, 128, 128, 130, 3, 2, 51, 35, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2, 51, 36, 0, 4, 1, 17, 65, 2, 17,
-			65, 3, 16, 0, 1, 159, 196, 2, 17, 65, 0, 3, 51, 0, 97, 2, 32, 24, 3, 51, 35, 0, 101, 2, 32, 24, 3, 51, 36, 0,
-			7, 6, 115, 0, 196, 177, 110, 196, 177, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 13, 50, 13, 88, 0, 97, 2, 32, 14, 128, 128,
-			130, 3, 2, 89, 35, 0, 97, 107, 2, 32, 14, 128, 128, 131, 3, 2, 89, 35, 49, 0, 97, 110, 2, 32, 14, 128, 128, 131, 3, 2,
-			89, 35, 50, 0, 97, 110, 196, 177, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 35, 50, 13, 88, 0, 97, 109, 2, 32, 14, 128, 128,
-			131, 3, 2, 89, 35, 65, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2, 89, 36, 0, 101, 107, 2, 32, 14, 128, 128, 131, 3, 2, 89,
-			36, 49, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 2, 89, 36, 50, 0, 101, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89,
-			36, 50, 37, 88, 0, 101, 109, 2, 32, 14, 128, 128, 131, 3, 2, 89, 36, 65, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3,
-			2, 89, 37, 50, 37, 88, 0, 117, 110, 117, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 40, 50, 40, 88, 0, 195, 188, 110, 195, 188,
-			122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 112, 50, 112, 88, 0, 3, 89, 0, 7, 6, 116, 0, 196, 177, 114, 1, 18, 66, 2, 32,
-			14, 128, 128, 131, 3, 2, 47, 13, 51, 0, 105, 114, 1, 18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 37, 51, 0, 117, 114, 1,
-			18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 40, 51, 0, 195, 188, 114, 1, 18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 112,
-			51, 0, 3, 47, 0, 97, 2, 32, 14, 128, 128, 130, 3, 47, 35, 0, 97, 110, 2, 32, 14, 128, 128, 131, 3, 47, 35, 50, 0, 101,
-			2, 32, 14, 128, 128, 130, 3, 47, 36, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 47, 36, 50, 0, 7, 6, 117, 0, 110, 117, 122,
-			1, 21, 2, 32, 14, 128, 128, 132, 3, 2, 40, 50, 40, 88, 0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 40, 65, 0, 122,
-			1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 40, 88, 0, 4, 3, 40, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2,
-			32, 14, 128, 128, 130, 3, 40, 50, 0, 121, 111, 114, 1, 21, 2, 32, 14, 128, 128, 132, 3, 40, 57, 2, 39, 51, 0, 7, 6, 118,
-			0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 49, 89, 0, 1, 25, 3, 88, 0, 7, 6, 121, 0, 196, 177,
-			110, 196, 177, 122, 2, 32, 14, 128, 128, 133, 3, 2, 57, 13, 50, 13, 88, 0, 196, 177, 109, 2, 32, 14, 128, 128, 131, 3, 2, 57,
-			13, 65, 0, 196, 177, 122, 2, 32, 14, 128, 128, 131, 3, 2, 57, 13, 88, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 2,
-			57, 37, 50, 37, 88, 0, 105, 109, 2, 32, 14, 128, 128, 131, 3, 2, 57, 37, 65, 0, 105, 122, 2, 32, 14, 128, 128, 131, 3, 2,
-			57, 37, 88, 0, 117, 110, 117, 122, 2, 32, 14, 128, 128, 133, 3, 2, 57, 40, 50, 40, 88, 0, 117, 109, 2, 32, 14, 128, 128, 131,
-			3, 2, 57, 40, 65, 0, 117, 122, 2, 32, 14, 128, 128, 131, 3, 2, 57, 40, 88, 0, 108, 101, 2, 32, 14, 128, 128, 131, 3, 2,
-			57, 55, 36, 0, 108, 97, 2, 32, 14, 128, 128, 131, 3, 2, 57, 64, 35, 0, 195, 188, 110, 195, 188, 122, 2, 32, 14, 128, 128, 133,
-			3, 2, 57, 112, 50, 112, 88, 0, 195, 188, 109, 2, 32, 14, 128, 128, 131, 3, 2, 57, 112, 65, 0, 195, 188, 122, 2, 32, 14, 128,
-			128, 131, 3, 2, 57, 112, 88, 0, 3, 57, 0, 196, 177, 2, 32, 14, 128, 128, 130, 3, 57, 13, 0, 97, 2, 32, 14, 128, 128, 130,
-			3, 57, 35, 0, 97, 121, 196, 177, 109, 2, 32, 14, 128, 128, 133, 3, 57, 35, 57, 13, 65, 0, 97, 108, 196, 177, 109, 2, 32, 14,
-			128, 128, 133, 3, 57, 35, 64, 13, 65, 0, 97, 99, 97, 107, 2, 32, 14, 128, 128, 133, 3, 57, 35, 75, 35, 49, 0, 97, 99, 97,
-			107, 109, 196, 177, 197, 159, 2, 32, 14, 128, 128, 136, 3, 57, 35, 75, 35, 49, 65, 2, 13, 91, 0, 97, 115, 196, 177, 110, 2, 32,
-			14, 128, 128, 133, 3, 57, 35, 89, 13, 50, 0, 101, 2, 32, 14, 128, 128, 130, 3, 57, 36, 0, 101, 108, 105, 109, 2, 32, 14, 128,
-			128, 133, 3, 57, 36, 55, 37, 65, 0, 101, 121, 105, 109, 2, 32, 14, 128, 128, 133, 3, 57, 36, 57, 37, 65, 0, 101, 99, 101, 107,
-			2, 32, 14, 128, 128, 133, 3, 57, 36, 75, 36, 49, 0, 101, 99, 101, 107, 109, 105, 197, 159, 2, 32, 14, 128, 128, 136, 3, 57, 36,
-			75, 36, 49, 65, 2, 37, 91, 0, 101, 115, 105, 110, 2, 32, 14, 128, 128, 133, 3, 57, 36, 89, 37, 50, 0, 105, 2, 32, 14, 128,
-			128, 130, 3, 57, 37, 0, 117, 2, 32, 14, 128, 128, 130, 3, 57, 40, 0, 107, 101, 110, 2, 32, 14, 128, 128, 132, 3, 57, 80, 2,
-			36, 50, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 57, 112, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 39, 2, 14, 130, 132,
-			128, 3, 0, 36, 3, 72, 39, 55, 35, 34, 0, 4, 195, 164, 3, 109, 0, 201, 153, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts65 = FileInMemory_createWithData (6052, reinterpret_cast<const char *> (&espeakdata_dicts65_data), 
-			U"espeak-1.48.04-source/espeak-data/tr_dict", 
+		static unsigned char espeakdata_dicts64_data[3073] = {
+			0, 4, 0, 0, 24, 10, 0, 0, 0, 0, 0, 0, 0, 32, 4, 95, 56, 77, 49, 72, 37, 49, 6, 36, 47, 36, 6, 115, 36, 6,
+			71, 39, 6, 34, 39, 71, 35, 6, 71, 39, 71, 36, 72, 37, 0, 5, 65, 4, 35, 0, 0, 41, 4, 95, 56, 77, 50, 72, 37, 49,
+			6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 6, 71, 39, 6, 34, 39, 71, 35, 6, 71, 39, 71, 36, 72, 37,
+			12, 0, 0, 0, 0, 9, 65, 8, 71, 37, 12, 37, 12, 0, 0, 0, 0, 0, 9, 65, 12, 89, 37, 12, 37, 12, 0, 0, 0, 0,
+			0, 9, 65, 16, 72, 37, 12, 37, 12, 0, 0, 0, 0, 0, 8, 65, 20, 37, 12, 37, 12, 0, 0, 0, 0, 0, 8, 65, 24, 36,
+			12, 83, 39, 0, 0, 0, 0, 0, 8, 65, 28, 81, 37, 12, 37, 0, 0, 0, 0, 7, 195, 44, 19, 129, 72, 8, 6, 195, 48, 243,
+			129, 76, 0, 8, 65, 32, 36, 37, 76, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 65, 40, 75, 6, 36, 37, 0, 0, 0, 0,
+			0, 7, 65, 44, 49, 36, 37, 0, 0, 0, 0, 0, 8, 65, 48, 36, 12, 55, 37, 0, 0, 0, 0, 0, 8, 65, 52, 6, 36, 65,
+			40, 0, 0, 0, 0, 0, 11, 5, 95, 48, 1, 14, 4, 23, 50, 35, 0, 8, 65, 56, 6, 36, 50, 37, 0, 0, 0, 0, 0, 8,
+			65, 60, 39, 12, 39, 12, 0, 0, 0, 0, 0, 10, 65, 64, 48, 6, 37, 12, 37, 12, 0, 0, 0, 0, 0, 7, 65, 68, 49, 57,
+			40, 0, 0, 0, 0, 0, 7, 65, 72, 35, 53, 36, 0, 0, 0, 0, 0, 9, 65, 76, 6, 36, 12, 89, 37, 0, 0, 0, 7, 195,
+			20, 225, 64, 76, 28, 0, 0, 10, 65, 80, 47, 6, 37, 12, 37, 12, 0, 0, 0, 0, 0, 8, 65, 84, 40, 12, 40, 12, 0, 0,
+			0, 0, 0, 10, 65, 88, 84, 6, 37, 12, 37, 12, 0, 0, 0, 0, 6, 195, 28, 18, 193, 76, 6, 195, 92, 18, 193, 76, 0, 11,
+			65, 92, 72, 35, 71, 39, 55, 57, 40, 0, 0, 0, 0, 0, 17, 4, 95, 49, 77, 49, 23, 6, 89, 20, 6, 37, 49, 36, 47, 36,
+			0, 10, 65, 96, 36, 49, 6, 36, 89, 36, 0, 0, 25, 4, 95, 49, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 55, 36, 49,
+			106, 6, 39, 12, 55, 39, 0, 0, 0, 0, 8, 65, 100, 58, 6, 35, 37, 0, 0, 0, 0, 0, 10, 65, 104, 88, 6, 36, 12, 47,
+			37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 49, 67, 48, 55, 36, 49, 106, 6, 39, 55, 39, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 196, 44, 243, 148, 20, 72, 8, 7, 196, 48, 83, 142, 4, 76, 0, 0, 6, 195, 16, 147, 15, 76, 0, 0, 6,
+			195, 52, 243, 5, 76, 0, 0, 0, 0, 0, 19, 4, 95, 50, 77, 49, 72, 37, 49, 6, 36, 47, 36, 48, 6, 36, 72, 37, 0, 0,
+			30, 4, 95, 50, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 48, 6, 36, 72, 37, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 45, 112, 76, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 24, 16, 72,
+			28, 6, 194, 24, 16, 72, 28, 0, 0, 0, 0, 0, 0, 19, 4, 95, 4, 16, 20, 83, 36, 12, 106, 36, 55, 40, 6, 35, 12, 50,
+			35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 95, 51, 77, 49, 72, 37, 49, 6, 36, 47, 36, 47, 6, 35, 12, 53, 39,
+			0, 0, 31, 4, 95, 51, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 47, 6, 35, 12,
+			53, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 4, 240, 72, 8, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 100, 243, 129, 76, 28, 7, 195, 100, 243, 129, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 7, 195, 56, 224, 64, 76, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 20, 4, 95, 53, 77, 49, 72, 37, 49, 6, 36, 47, 36, 105, 6, 35, 12, 50, 39, 0, 0, 0, 0, 30,
+			4, 95, 53, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 105, 6, 35, 50, 39, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 21, 3, 95, 51, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 65, 35, 12, 53, 39, 0, 0, 14, 3, 95, 48, 67, 55,
+			36, 49, 106, 6, 39, 55, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 48, 16, 72, 28, 0, 0,
+			19, 3, 95, 50, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 48, 36, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95,
+			51, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 47, 6, 35, 12, 53, 39, 0, 0, 0, 0, 26, 4, 95, 54, 77, 49, 72, 37, 49,
+			6, 36, 47, 36, 115, 6, 36, 6, 47, 107, 6, 35, 47, 35, 34, 39, 0, 0, 0, 0, 35, 4, 95, 54, 77, 50, 72, 37, 49, 6,
+			36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 6, 47, 107, 6, 35, 6, 47, 35, 34, 39, 0, 0, 23, 3, 95, 55,
+			88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 6, 91, 6, 40, 12, 48, 35, 0, 0, 19, 3, 95, 52, 67, 23, 65, 35, 49, 106,
+			6, 39, 55, 39, 6, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95, 53, 67, 23, 65, 35, 49, 106, 6, 39, 55,
+			39, 105, 6, 35, 12, 50, 39, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 49, 88, 55, 36, 89, 6, 39, 12, 65, 36, 0, 0,
+			24, 3, 95, 54, 67, 23, 65, 35, 49, 106, 6, 39, 55, 39, 6, 47, 107, 6, 35, 47, 35, 34, 39, 0, 0, 0, 0, 0, 0, 0,
+			0, 18, 3, 95, 50, 88, 65, 35, 89, 6, 39, 12, 65, 36, 48, 36, 72, 37, 0, 0, 20, 3, 95, 55, 67, 65, 35, 49, 106, 6,
+			39, 55, 39, 91, 6, 40, 12, 48, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 3, 95, 56, 67, 65, 35, 49, 106, 6, 39, 55,
+			39, 6, 35, 6, 65, 35, 6, 34, 39, 71, 35, 6, 71, 39, 71, 36, 72, 37, 12, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 95,
+			52, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 65, 35, 12, 50, 36, 0, 0, 34, 3, 95, 57, 67, 65, 35, 49, 106, 6, 39,
+			55, 39, 6, 35, 6, 65, 35, 6, 34, 39, 71, 35, 6, 71, 39, 6, 50, 6, 50, 81, 58, 36, 0, 0, 0, 0, 0, 0, 0, 6,
+			194, 48, 80, 72, 8, 0, 24, 3, 95, 53, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 65, 35, 105, 6, 35, 12, 50, 39, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95, 54, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 47, 107, 6, 35, 47, 35, 34,
+			39, 0, 0, 0, 0, 0, 19, 4, 95, 55, 77, 49, 72, 37, 49, 6, 36, 47, 36, 91, 40, 12, 48, 35, 0, 0, 0, 0, 30, 4,
+			95, 55, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 91, 40, 12, 48, 35, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 29, 3, 95, 56, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 71, 39, 6, 34, 39, 71, 35, 6,
+			71, 36, 72, 37, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 3, 95, 57, 88, 65, 35, 89, 6, 39, 12, 65, 36, 6, 35, 6,
+			34, 39, 71, 35, 6, 71, 39, 6, 50, 81, 58, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 72, 243, 129,
+			76, 7, 195, 92, 83, 129, 76, 28, 7, 195, 8, 243, 129, 72, 28, 16, 4, 95, 48, 77, 52, 23, 71, 37, 55, 37, 6, 39, 50, 37,
+			0, 0, 0, 0, 16, 4, 95, 48, 77, 51, 23, 65, 37, 55, 37, 6, 39, 50, 37, 0, 0, 0, 16, 4, 95, 48, 77, 49, 6, 89,
+			20, 6, 37, 49, 36, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 197, 81, 50, 1, 44, 16, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 3, 9, 18, 49, 6, 36, 83, 35, 0, 41,
+			4, 95, 57, 77, 50, 72, 37, 49, 6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 6, 71, 39, 6, 34, 39, 71,
+			35, 6, 71, 39, 6, 50, 81, 58, 36, 0, 0, 0, 0, 33, 4, 95, 57, 77, 49, 72, 37, 49, 6, 36, 47, 36, 6, 115, 36, 6,
+			71, 39, 6, 34, 39, 71, 35, 6, 71, 39, 6, 50, 81, 58, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 6, 194, 52, 240, 72, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 45, 85, 193, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 196, 57, 68, 215, 4, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 196,
+			44, 115, 204, 60, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 92, 16, 72, 28, 0, 0, 0, 0, 0, 0, 6, 195, 56, 22, 65, 76, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 45, 112, 64, 72, 28, 7, 195, 45, 112, 64, 72, 28, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 4, 95, 52, 77, 50, 72, 37, 49,
+			6, 36, 47, 36, 76, 36, 65, 35, 49, 106, 6, 39, 12, 55, 39, 42, 50, 36, 0, 0, 17, 4, 95, 52, 77, 49, 72, 37, 49, 6,
+			36, 47, 36, 42, 50, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 95, 51, 47, 6, 35, 12, 53, 39, 0, 0, 10, 2, 95,
+			50, 48, 6, 36, 72, 37, 0, 0, 12, 2, 95, 49, 50, 6, 50, 81, 58, 36, 12, 0, 0, 13, 2, 95, 48, 55, 36, 83, 6, 36,
+			12, 55, 35, 0, 0, 11, 2, 95, 55, 89, 6, 40, 12, 48, 35, 0, 0, 13, 2, 95, 54, 47, 107, 6, 35, 47, 35, 34, 39, 0,
+			0, 11, 2, 95, 53, 105, 6, 35, 12, 50, 39, 0, 0, 9, 2, 95, 52, 6, 42, 50, 36, 0, 0, 0, 0, 16, 2, 95, 57, 34,
+			39, 71, 35, 6, 50, 6, 50, 81, 58, 36, 0, 0, 6, 194, 100, 16, 72, 28, 16, 2, 95, 56, 34, 39, 71, 35, 6, 71, 39, 71,
+			36, 72, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 7, 195, 52, 209, 64, 72, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 6, 97, 0, 4, 3, 35, 0, 2, 32, 0, 8, 2, 17, 67, 0, 8, 17, 67, 0, 4, 2, 115, 3, 35, 12, 0,
+			97, 0, 7, 6, 98, 0, 3, 71, 0, 3, 82, 0, 7, 6, 99, 0, 3, 49, 0, 104, 3, 76, 0, 7, 6, 100, 0, 3, 72, 0,
+			104, 3, 86, 0, 7, 6, 101, 0, 3, 36, 0, 101, 3, 36, 12, 0, 1, 115, 3, 37, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6,
+			103, 0, 4, 3, 81, 0, 8, 107, 0, 104, 3, 100, 0, 7, 6, 104, 0, 108, 3, 105, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37,
+			0, 105, 3, 37, 12, 0, 7, 6, 106, 0, 3, 79, 0, 7, 6, 107, 0, 3, 49, 0, 104, 3, 101, 0, 7, 6, 108, 0, 3, 55,
+			0, 7, 6, 109, 0, 4, 1, 25, 2, 21, 21, 3, 23, 65, 0, 1, 25, 2, 98, 21, 21, 0, 1, 25, 2, 118, 21, 21, 0, 1,
+			25, 2, 119, 21, 21, 0, 4, 1, 25, 2, 17, 67, 3, 41, 0, 8, 0, 4, 3, 65, 0, 2, 17, 65, 0, 7, 6, 110, 0, 8,
+			3, 42, 0, 4, 8, 2, 103, 3, 43, 0, 8, 2, 103, 21, 21, 0, 8, 2, 107, 0, 8, 2, 107, 21, 21, 0, 4, 3, 50, 0,
+			2, 17, 65, 0, 2, 21, 21, 0, 4, 2, 99, 104, 3, 67, 0, 2, 106, 0, 121, 0, 4, 2, 103, 3, 68, 0, 2, 107, 0, 103,
+			39, 0, 7, 6, 111, 0, 3, 39, 0, 111, 3, 39, 12, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 7, 6,
+			114, 0, 1, 17, 67, 2, 17, 65, 3, 14, 16, 0, 3, 34, 0, 4, 3, 51, 0, 1, 17, 65, 2, 17, 65, 0, 114, 3, 51, 51,
+			0, 3, 53, 0, 7, 6, 115, 0, 3, 89, 0, 2, 101, 3, 89, 20, 0, 101, 8, 116, 3, 89, 37, 12, 0, 104, 3, 91, 0, 7,
+			6, 116, 0, 3, 47, 0, 104, 3, 87, 0, 108, 3, 105, 0, 115, 101, 110, 3, 115, 6, 36, 12, 50, 0, 108, 104, 3, 118, 0, 7,
+			6, 117, 0, 3, 40, 0, 4, 8, 100, 3, 40, 12, 0, 117, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7,
+			6, 120, 0, 3, 49, 89, 0, 7, 6, 121, 0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 4, 42, 1, 42, 2, 42,
+			3, 0, 42, 42, 3, 0, 42, 1, 42, 42, 2, 32, 3, 24, 0, 37, 3, 35, 89, 37, 55, 37, 65, 37, 35, 0, 42, 3, 67, 39,
+			47, 35, 0, 36, 3, 72, 39, 55, 35, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts64 = FileInMemory_createWithData (3072, reinterpret_cast<const char *> (&espeakdata_dicts64_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/tn_dict", 
+			U"tn");
+		Collection_addItem (me.peek(), espeakdata_dicts64.transfer());
+
+		static unsigned char espeakdata_dicts65_data[5978] = {
+			0, 4, 0, 0, 77, 13, 0, 0, 0, 0, 0, 10, 135, 9, 19, 19, 22, 5, 195, 167, 65, 0, 0, 5, 65, 4, 35, 0, 0, 6,
+			194, 5, 0, 17, 9, 0, 10, 199, 44, 20, 212, 4, 211, 206, 84, 65, 0, 0, 6, 65, 8, 71, 36, 0, 0, 9, 198, 52, 19, 1,
+			81, 144, 64, 66, 0, 0, 0, 6, 65, 12, 75, 109, 0, 0, 0, 18, 4, 95, 8, 1, 3, 47, 6, 109, 51, 89, 91, 35, 48, 49,
+			6, 35, 0, 0, 0, 6, 65, 16, 72, 109, 0, 0, 0, 6, 195, 36, 209, 128, 17, 0, 0, 5, 65, 20, 109, 0, 0, 0, 0, 7,
+			196, 4, 102, 79, 56, 65, 0, 6, 65, 24, 83, 109, 0, 0, 0, 0, 8, 196, 100, 242, 211, 4, 72, 28, 0, 6, 65, 28, 79, 109,
+			0, 0, 0, 0, 0, 6, 65, 32, 107, 109, 0, 0, 0, 0, 0, 5, 65, 36, 37, 0, 0, 10, 1, 37, 57, 113, 88, 72, 109, 0,
+			27, 0, 8, 1, 38, 11, 84, 6, 109, 0, 0, 0, 6, 65, 40, 90, 109, 0, 0, 0, 12, 1, 42, 57, 6, 13, 55, 72, 13, 88,
+			0, 27, 0, 9, 1, 43, 35, 51, 47, 13, 0, 27, 0, 6, 65, 44, 49, 35, 0, 0, 0, 0, 0, 6, 65, 48, 55, 109, 0, 0,
+			0, 0, 0, 6, 65, 52, 65, 109, 0, 0, 0, 0, 0, 8, 197, 20, 66, 82, 56, 80, 66, 6, 65, 56, 50, 109, 0, 0, 0, 7,
+			195, 76, 150, 128, 76, 9, 0, 0, 5, 193, 60, 76, 9, 0, 9, 1, 61, 109, 91, 124, 47, 0, 27, 0, 0, 0, 6, 65, 64, 48,
+			109, 0, 0, 9, 198, 76, 147, 83, 37, 144, 72, 65, 6, 194, 4, 32, 17, 9, 0, 7, 195, 4, 33, 0, 17, 9, 0, 0, 7, 65,
+			68, 49, 84, 109, 0, 0, 0, 0, 0, 6, 65, 72, 51, 109, 0, 0, 0, 0, 0, 7, 132, 197, 159, 20, 9, 17, 6, 195, 36, 210,
+			194, 17, 6, 195, 36, 210, 194, 17, 6, 65, 76, 89, 109, 0, 0, 0, 0, 0, 6, 65, 80, 47, 109, 0, 0, 6, 195, 81, 0, 79,
+			17, 0, 0, 0, 5, 65, 84, 40, 0, 0, 0, 0, 0, 6, 65, 88, 84, 109, 0, 0, 7, 132, 1, 195, 182, 6, 17, 0, 0, 0,
+			12, 65, 92, 72, 40, 71, 109, 55, 84, 6, 109, 0, 0, 0, 0, 0, 7, 65, 96, 109, 49, 89, 0, 0, 0, 0, 0, 6, 65, 100,
+			57, 109, 0, 0, 0, 0, 0, 6, 65, 104, 88, 109, 0, 0, 0, 0, 0, 0, 0, 10, 135, 2, 9, 14, 7, 195, 182, 12, 65, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 61, 33, 21, 65, 0, 0, 0, 0, 6, 195, 25, 64,
+			65, 17, 0, 0, 6, 195, 4, 100, 0, 17, 0, 0, 0, 6, 195, 80, 146, 22, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194,
+			16, 16, 72, 9, 0, 0, 0, 0, 9, 198, 32, 18, 203, 5, 34, 64, 65, 0, 0, 0, 0, 9, 198, 44, 22, 83, 21, 34, 64, 65,
+			6, 194, 9, 80, 76, 9, 0, 0, 0, 0, 0, 6, 195, 5, 99, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 8, 197, 32, 149, 12, 21, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 76, 147, 143, 64,
+			65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 52, 84, 147, 36, 224, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 6, 194, 16, 80, 72, 9, 0, 0, 0, 0, 6, 195, 4, 180, 0, 17, 0, 0, 16, 4, 95, 4, 16, 20, 10, 84, 37, 51, 81,
+			4, 113, 55, 23, 0, 0, 0, 0, 0, 11, 200, 36, 227, 135, 36, 197, 5, 72, 80, 67, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196,
+			44, 147, 9, 76, 65, 7, 196, 64, 244, 212, 4, 65, 13, 4, 95, 20, 12, 4, 47, 124, 55, 72, 6, 109, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 88, 86, 65, 72, 28, 0, 8, 197, 4, 208, 83, 100, 16, 66, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 195, 8, 83, 128, 76, 9, 0, 7, 196, 8, 19, 139, 4, 65, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 8, 197, 76, 19, 83, 84, 224, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 8, 197, 8, 149, 12, 37, 48, 65, 0, 0, 6, 195, 61, 48, 128, 17, 0, 7, 196, 72, 17, 25, 60, 65,
+			0, 0, 0, 0, 0, 0, 0, 10, 3, 226, 130, 172, 35, 84, 51, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 196, 76, 149, 129, 76, 65, 6, 195, 21, 1, 11, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 5, 37,
+			22, 36, 224, 65, 0, 0, 0, 0, 0, 17, 4, 95, 13, 3, 14, 40, 88, 6, 35, 47, 65, 35, 37, 65, 124, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 39, 47, 6, 40,
+			88, 0, 0, 10, 3, 95, 48, 67, 6, 57, 112, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 44, 243, 153,
+			4, 65, 0, 0, 0, 0, 13, 3, 95, 50, 67, 6, 37, 80, 37, 57, 112, 88, 0, 0, 0, 9, 198, 81, 83, 131, 20, 194, 64, 65,
+			14, 139, 11, 196, 177, 18, 11, 12, 1, 18, 5, 12, 9, 65, 0, 0, 0, 0, 6, 195, 4, 146, 13, 17, 12, 3, 95, 49, 49, 6,
+			39, 50, 71, 37, 51, 0, 0, 9, 3, 95, 49, 48, 6, 39, 50, 0, 0, 0, 12, 3, 95, 49, 50, 6, 39, 50, 37, 80, 37, 0,
+			0, 0, 0, 0, 6, 195, 36, 129, 0, 17, 0, 0, 13, 3, 95, 55, 88, 57, 36, 47, 65, 6, 37, 91, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 7, 196, 32, 21, 1, 100, 65, 14, 139, 11, 196, 177, 19, 11, 196, 177, 22, 18, 1, 11, 65, 0, 0, 6, 195, 8,
+			243, 21, 65, 0, 0, 0, 0, 0, 9, 3, 95, 49, 88, 6, 39, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 88,
+			57, 37, 51, 65, 6, 37, 0, 0, 0, 0, 0, 0, 12, 137, 16, 195, 188, 20, 195, 188, 18, 7, 5, 66, 0, 0, 0, 8, 133, 196,
+			177, 13, 11, 2, 17, 0, 0, 10, 135, 9, 196, 159, 4, 196, 177, 18, 65, 0, 9, 198, 76, 18, 193, 73, 144, 64, 66, 0, 0, 13,
+			3, 95, 63, 63, 89, 109, 65, 71, 6, 110, 55, 0, 0, 0, 0, 11, 3, 95, 52, 88, 49, 6, 13, 51, 49, 0, 0, 0, 0, 0,
+			11, 136, 11, 195, 188, 20, 1, 8, 25, 1, 66, 0, 0, 0, 0, 11, 3, 95, 53, 88, 36, 55, 55, 6, 37, 0, 0, 0, 8, 197,
+			8, 241, 18, 84, 208, 65, 0, 0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 35, 55, 47, 65, 6, 13, 91, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 10, 199, 37, 52, 212, 4, 224, 149, 48, 66, 0, 0, 0, 0, 0, 0, 0, 8, 133, 21, 197, 159, 1, 11, 65, 0, 13,
+			3, 95, 56, 88, 89, 36, 49, 89, 6, 109, 50, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 44, 144, 72, 28, 0, 13, 3, 95, 57,
+			88, 72, 39, 49, 89, 6, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 53, 80, 72, 9, 10, 3, 95, 63, 65, 107, 35, 51,
+			83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 52, 20, 132, 36, 224, 65, 0, 9, 198, 4, 195, 65, 57, 144,
+			64, 66, 0, 7, 131, 13, 195, 188, 72, 9, 14, 4, 95, 15, 7, 15, 39, 81, 39, 50, 6, 109, 49, 0, 0, 0, 0, 0, 0, 7,
+			131, 197, 159, 21, 76, 9, 0, 0, 0, 6, 195, 81, 49, 64, 17, 0, 0, 0, 0, 0, 7, 131, 13, 196, 177, 72, 9, 0, 0, 0,
+			6, 195, 81, 50, 64, 17, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 48, 77, 50, 65, 37, 55, 57, 6, 39, 50, 0, 0, 7, 195,
+			76, 83, 128, 76, 9, 14, 4, 95, 48, 77, 51, 65, 37, 55, 57, 6, 35, 34, 0, 0, 9, 198, 8, 83, 66, 21, 144, 90, 65, 0,
+			11, 4, 95, 48, 77, 49, 71, 6, 37, 50, 0, 0, 19, 4, 95, 2, 18, 22, 49, 13, 89, 6, 35, 55, 47, 65, 35, 37, 65, 124,
+			0, 0, 0, 0, 0, 0, 0, 0, 8, 197, 8, 21, 13, 4, 224, 65, 0, 0, 13, 138, 195, 167, 1, 14, 1, 11, 11, 1, 12, 5,
+			66, 7, 132, 195, 182, 19, 19, 17, 0, 0, 0, 9, 198, 8, 22, 66, 85, 37, 0, 65, 0, 0, 0, 8, 197, 100, 246, 135, 5, 64,
+			65, 0, 6, 194, 52, 144, 72, 9, 0, 6, 195, 81, 54, 68, 17, 0, 0, 0, 7, 132, 195, 182, 20, 22, 17, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 11, 136, 4, 195, 188, 13, 4, 195, 188, 26, 65, 0, 0, 0, 0, 9, 198, 52, 84, 136, 4, 32, 64,
+			65, 0, 6, 195, 60, 80, 196, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 1, 196, 159, 18,
+			196, 177, 65, 0, 0, 0, 0, 0, 0, 11, 136, 19, 1, 16, 19, 1, 18, 196, 177, 65, 0, 13, 4, 95, 3, 9, 18, 91, 35, 48,
+			49, 6, 35, 0, 0, 13, 138, 195, 167, 1, 14, 11, 196, 177, 18, 196, 177, 65, 0, 0, 0, 0, 0, 0, 0, 9, 198, 84, 180, 129,
+			100, 224, 64, 66, 0, 0, 7, 196, 76, 146, 82, 80, 65, 0, 0, 0, 0, 7, 196, 29, 54, 73, 32, 17, 0, 16, 4, 95, 1, 3,
+			21, 84, 111, 51, 81, 6, 111, 37, 65, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 18, 14, 7, 107, 35, 55,
+			49, 6, 35, 0, 0, 0, 0, 9, 198, 16, 83, 137, 104, 194, 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 1, 25,
+			4, 196, 177, 14, 65, 0, 0, 0, 0, 0, 0, 0, 9, 134, 13, 21, 196, 159, 12, 1, 65, 8, 133, 195, 182, 196, 177, 2, 17, 0,
+			0, 0, 21, 4, 95, 1, 3, 50, 76, 6, 124, 83, 47, 84, 111, 51, 81, 6, 111, 37, 65, 124, 0, 0, 0, 0, 0, 6, 194, 80,
+			16, 72, 9, 0, 7, 132, 195, 182, 25, 11, 17, 0, 0, 0, 0, 0, 0, 8, 197, 5, 100, 149, 64, 16, 65, 0, 0, 7, 132, 195,
+			182, 6, 11, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 80, 211, 79, 8, 17, 0, 0, 0, 11, 136, 197,
+			159, 196, 177, 18, 14, 1, 11, 65, 0, 0, 0, 0, 0, 0, 12, 2, 194, 167, 76, 109, 50, 79, 6, 109, 55, 0, 0, 0, 0, 7,
+			132, 195, 182, 4, 16, 17, 0, 0, 0, 0, 0, 17, 2, 196, 159, 57, 40, 65, 40, 91, 6, 35, 49, 15, 79, 6, 109, 0, 7, 2,
+			195, 167, 76, 109, 0, 0, 9, 198, 52, 20, 205, 5, 98, 64, 65, 8, 133, 195, 182, 19, 25, 13, 17, 0, 0, 0, 0, 0, 0, 14,
+			2, 194, 182, 48, 35, 16, 35, 81, 51, 6, 35, 83, 0, 0, 7, 2, 197, 159, 91, 109, 0, 0, 0, 0, 0, 0, 6, 195, 84, 36,
+			0, 17, 12, 2, 194, 176, 72, 36, 16, 36, 75, 6, 109, 0, 0, 9, 134, 14, 9, 196, 159, 4, 5, 65, 0, 6, 2, 195, 182, 125,
+			0, 0, 0, 0, 0, 12, 4, 95, 3, 5, 4, 107, 6, 35, 51, 83, 0, 0, 8, 197, 9, 84, 132, 85, 32, 65, 0, 0, 0, 6,
+			195, 85, 33, 129, 65, 0, 0, 6, 194, 80, 80, 72, 9, 6, 2, 195, 188, 112, 0, 0, 0, 0, 10, 135, 2, 1, 18, 20, 196, 177,
+			14, 65, 0, 0, 6, 2, 196, 177, 13, 0, 0, 0, 8, 197, 4, 226, 193, 72, 16, 65, 0, 6, 195, 4, 33, 211, 17, 0, 6, 195,
+			85, 49, 0, 17, 0, 0, 0, 0, 6, 195, 100, 179, 64, 17, 6, 195, 4, 179, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 132, 195, 182, 9, 2, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 80, 242,
+			193, 80, 65, 12, 137, 11, 21, 18, 20, 21, 12, 21, 197, 159, 65, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 95, 15, 110, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 88, 80, 72, 28, 0, 0, 0, 0, 0, 11, 2, 95, 35, 72,
+			37, 57, 6, 109, 88, 0, 0, 20, 2, 95, 34, 47, 13, 51, 50, 6, 35, 49, 37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 19, 2,
+			95, 33, 113, 50, 55, 6, 109, 65, 37, 91, 35, 16, 36, 47, 4, 124, 0, 0, 0, 14, 2, 95, 39, 35, 48, 110, 89, 47, 51, 6,
+			110, 83, 0, 0, 16, 2, 95, 38, 84, 6, 109, 37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 0, 7, 132, 195, 182, 9, 22, 17, 0,
+			0, 13, 4, 95, 3, 1, 16, 71, 112, 57, 6, 113, 49, 0, 0, 18, 2, 95, 41, 49, 35, 48, 35, 48, 35, 16, 35, 50, 47, 6,
+			109, 88, 0, 0, 16, 2, 95, 40, 35, 76, 48, 35, 16, 35, 50, 47, 6, 109, 88, 0, 0, 16, 2, 95, 47, 36, 57, 6, 124, 49,
+			76, 124, 88, 81, 6, 124, 0, 0, 11, 2, 95, 46, 50, 110, 49, 47, 6, 35, 0, 0, 16, 2, 95, 45, 49, 6, 13, 89, 35, 76,
+			124, 88, 81, 6, 124, 0, 0, 9, 198, 53, 81, 1, 57, 144, 64, 66, 9, 198, 4, 229, 1, 49, 144, 64, 66, 12, 2, 95, 44, 84,
+			124, 51, 79, 6, 113, 55, 0, 0, 7, 195, 8, 148, 128, 76, 9, 8, 2, 95, 51, 6, 112, 76, 0, 0, 9, 2, 95, 50, 37, 80,
+			6, 37, 0, 0, 9, 134, 195, 167, 15, 18, 21, 13, 65, 9, 198, 64, 84, 208, 20, 208, 133, 65, 9, 2, 95, 49, 71, 6, 37, 51,
+			0, 0, 11, 2, 95, 48, 89, 13, 83, 6, 13, 51, 0, 0, 10, 2, 95, 55, 57, 36, 72, 6, 37, 0, 0, 10, 2, 95, 54, 35,
+			55, 47, 6, 13, 0, 0, 9, 2, 95, 53, 71, 6, 109, 91, 0, 0, 10, 2, 95, 52, 72, 6, 125, 51, 47, 0, 0, 20, 2, 95,
+			59, 50, 110, 49, 47, 35, 55, 6, 13, 84, 124, 51, 79, 6, 113, 55, 0, 0, 15, 2, 95, 58, 37, 49, 6, 124, 50, 110, 49, 47,
+			6, 35, 0, 0, 11, 2, 95, 57, 72, 6, 39, 49, 40, 88, 0, 0, 6, 195, 72, 150, 133, 65, 11, 2, 95, 56, 89, 36, 80, 6,
+			124, 88, 0, 0, 18, 2, 95, 63, 89, 39, 51, 6, 111, 37, 91, 35, 16, 36, 47, 4, 124, 0, 0, 0, 0, 0, 7, 195, 8, 150,
+			128, 76, 9, 0, 0, 0, 16, 2, 95, 64, 49, 111, 57, 51, 111, 49, 55, 6, 111, 6, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 16, 4, 95, 226, 128, 166, 6, 113, 76, 50, 110, 49, 47, 6, 35, 0, 0, 0, 0, 0, 0, 6, 195, 20, 177, 192,
+			17, 17, 4, 95, 226, 128, 153, 47, 109, 49, 47, 13, 51, 50, 6, 35, 49, 0, 0, 12, 137, 4, 15, 19, 4, 15, 196, 159, 18, 21,
+			65, 17, 4, 95, 226, 128, 152, 47, 109, 49, 47, 13, 51, 50, 6, 35, 49, 0, 16, 4, 95, 4, 15, 20, 113, 89, 47, 50, 110, 49,
+			47, 6, 35, 0, 0, 0, 0, 7, 195, 36, 193, 64, 72, 9, 0, 0, 18, 4, 95, 226, 128, 147, 6, 40, 88, 111, 50, 76, 124, 88,
+			81, 6, 124, 0, 0, 0, 15, 2, 95, 95, 4, 35, 55, 47, 76, 124, 88, 81, 6, 124, 0, 0, 22, 2, 95, 94, 124, 50, 75, 6,
+			109, 55, 47, 65, 109, 37, 91, 35, 16, 36, 47, 6, 124, 0, 0, 0, 22, 2, 95, 92, 47, 6, 109, 51, 89, 15, 36, 57, 4, 124,
+			49, 76, 124, 88, 81, 6, 124, 0, 0, 0, 0, 0, 0, 6, 195, 80, 211, 192, 17, 0, 0, 17, 142, 11, 196, 177, 16, 11, 196, 177,
+			18, 13, 196, 177, 26, 196, 177, 65, 0, 0, 0, 0, 0, 16, 4, 95, 7, 18, 22, 6, 35, 49, 89, 35, 50, 37, 65, 124, 0, 0,
+			6, 195, 60, 116, 192, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 95, 4, 9, 1, 111, 65, 55, 35, 6, 111,
+			47, 0, 0, 0, 0, 0, 0, 14, 2, 95, 126, 57, 35, 49, 55, 35, 91, 6, 13, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 201, 37, 52, 203, 20, 225, 5, 73, 83, 128, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 198, 37, 52, 1,
+			73, 64, 64, 66, 0, 0, 0, 8, 197, 37, 166, 141, 37, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+			195, 5, 67, 64, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 196, 9, 84, 147, 4, 65, 0, 9, 134, 4, 195, 188, 26, 3, 5, 65, 0,
+			0, 0, 0, 0, 0, 7, 195, 4, 208, 64, 28, 65, 0, 0, 0, 0, 0, 0, 8, 197, 52, 244, 205, 61, 32, 65, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 137, 20, 5, 11, 9, 18, 4, 1, 196, 159, 66, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 138, 19, 196, 177, 13, 19, 196, 177, 3, 1, 11, 65, 0, 0, 0, 0, 6, 195, 5, 69, 128, 17, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 66, 195, 167, 0, 197, 159, 0, 102, 0, 104, 0, 107, 0,
+			112, 0, 113, 0, 115, 0, 116, 0, 7, 6, 20, 0, 96, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 6, 195, 167, 0, 3, 76,
+			0, 7, 6, 195, 182, 0, 3, 125, 0, 7, 6, 195, 188, 0, 110, 195, 188, 122, 1, 21, 2, 32, 14, 128, 128, 132, 3, 2, 112, 50,
+			112, 88, 0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 112, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 112, 88,
+			0, 4, 3, 112, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 112, 50, 0, 121, 111, 114,
+			1, 21, 2, 32, 14, 128, 128, 132, 3, 112, 57, 2, 39, 51, 0, 7, 6, 196, 159, 0, 1, 17, 65, 3, 12, 15, 0, 4, 1, 101,
+			3, 57, 0, 1, 105, 0, 3, 100, 0, 5, 1, 1, 17, 65, 3, 126, 0, 7, 6, 196, 177, 0, 110, 196, 177, 122, 1, 21, 2, 32,
+			14, 128, 128, 132, 3, 2, 13, 50, 13, 88, 0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 13, 65, 0, 122, 1, 21, 2, 32,
+			14, 128, 128, 130, 3, 2, 13, 88, 0, 4, 3, 13, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128,
+			130, 3, 13, 50, 0, 121, 111, 114, 1, 21, 2, 32, 14, 128, 128, 132, 3, 13, 57, 2, 39, 51, 0, 7, 6, 197, 159, 0, 3, 91,
+			0, 7, 6, 97, 0, 4, 3, 35, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 108, 196, 177, 109, 1, 21, 2, 32, 14, 128, 128, 132,
+			3, 35, 55, 13, 65, 0, 121, 196, 177, 109, 1, 21, 2, 32, 14, 128, 128, 132, 3, 35, 57, 13, 65, 0, 99, 97, 107, 1, 21, 2,
+			32, 14, 128, 128, 132, 3, 35, 75, 35, 49, 0, 99, 97, 107, 109, 196, 177, 197, 159, 1, 21, 2, 32, 14, 128, 128, 135, 3, 35, 75,
+			35, 49, 65, 2, 13, 91, 0, 118, 114, 117, 1, 21, 2, 112, 97, 3, 35, 84, 34, 6, 40, 0, 115, 196, 177, 110, 1, 21, 2, 32,
+			14, 128, 128, 132, 3, 35, 89, 13, 50, 0, 7, 6, 98, 0, 3, 71, 0, 7, 6, 99, 0, 3, 75, 0, 7, 6, 100, 0, 196, 177,
+			114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 13, 51, 0, 105, 114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 37, 51, 0, 117, 114, 2,
+			32, 14, 128, 128, 131, 3, 2, 72, 40, 51, 0, 195, 188, 114, 2, 32, 14, 128, 128, 131, 3, 2, 72, 112, 51, 0, 8, 2, 101, 196,
+			159, 105, 108, 3, 6, 72, 0, 3, 72, 0, 196, 177, 2, 32, 14, 128, 128, 130, 3, 72, 13, 0, 196, 177, 107, 2, 32, 14, 128, 128,
+			131, 3, 72, 13, 49, 0, 196, 177, 110, 2, 32, 14, 128, 128, 131, 3, 72, 13, 50, 0, 196, 177, 110, 196, 177, 122, 2, 32, 14, 128,
+			128, 133, 3, 72, 13, 50, 13, 88, 0, 196, 177, 108, 97, 114, 2, 32, 14, 128, 128, 133, 3, 72, 13, 55, 35, 51, 0, 196, 177, 109,
+			2, 32, 14, 128, 128, 131, 3, 72, 13, 65, 0, 97, 2, 32, 14, 128, 128, 130, 3, 72, 35, 0, 97, 110, 2, 32, 14, 128, 128, 131,
+			3, 72, 35, 50, 0, 101, 2, 32, 14, 128, 128, 130, 3, 72, 36, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 72, 36, 50, 0, 105,
+			2, 32, 14, 128, 128, 130, 3, 72, 37, 0, 105, 107, 2, 32, 14, 128, 128, 131, 3, 72, 37, 49, 0, 105, 110, 2, 32, 14, 128, 128,
+			131, 3, 72, 37, 50, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 72, 37, 50, 37, 88, 0, 105, 108, 101, 114, 2, 32, 14,
+			128, 128, 133, 3, 72, 37, 55, 36, 51, 0, 105, 109, 2, 32, 14, 128, 128, 131, 3, 72, 37, 65, 0, 117, 2, 32, 14, 128, 128, 130,
+			3, 72, 40, 0, 117, 107, 2, 32, 14, 128, 128, 131, 3, 72, 40, 49, 0, 117, 110, 2, 32, 14, 128, 128, 131, 3, 72, 40, 50, 0,
+			117, 110, 117, 122, 2, 32, 14, 128, 128, 133, 3, 72, 40, 50, 40, 88, 0, 117, 108, 97, 114, 2, 32, 14, 128, 128, 133, 3, 72, 40,
+			55, 35, 34, 0, 117, 109, 2, 32, 14, 128, 128, 131, 3, 72, 40, 65, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 72, 112, 0, 195,
+			188, 107, 2, 32, 14, 128, 128, 131, 3, 72, 112, 49, 0, 195, 188, 110, 2, 32, 14, 128, 128, 131, 3, 72, 112, 50, 0, 195, 188, 110,
+			195, 188, 122, 2, 32, 14, 128, 128, 133, 3, 72, 112, 50, 112, 88, 0, 195, 188, 108, 101, 114, 2, 32, 14, 128, 128, 133, 3, 72, 112,
+			55, 36, 34, 0, 195, 188, 109, 2, 32, 14, 128, 128, 131, 3, 72, 112, 65, 0, 7, 6, 101, 0, 4, 3, 36, 0, 1, 21, 2, 32,
+			14, 128, 128, 129, 0, 108, 105, 109, 1, 21, 2, 32, 14, 128, 128, 132, 3, 36, 55, 37, 65, 0, 121, 105, 109, 1, 21, 2, 32, 14,
+			128, 128, 132, 3, 36, 57, 37, 65, 0, 99, 101, 107, 1, 21, 2, 32, 14, 128, 128, 132, 3, 36, 75, 36, 49, 0, 99, 101, 107, 109,
+			105, 197, 159, 1, 21, 2, 32, 14, 128, 128, 135, 3, 36, 75, 36, 49, 65, 2, 37, 91, 0, 115, 105, 110, 1, 21, 2, 32, 14, 128,
+			128, 132, 3, 36, 89, 37, 50, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 101, 3, 79, 0, 2, 105, 0, 2, 195,
+			182, 0, 2, 195, 188, 0, 3, 81, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 110, 105, 122, 1, 21, 2, 32, 14, 128, 128,
+			132, 3, 2, 37, 50, 37, 88, 0, 109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 37, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128,
+			130, 3, 2, 37, 88, 0, 4, 3, 37, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 37,
+			50, 0, 121, 111, 114, 1, 21, 2, 32, 14, 128, 128, 132, 3, 37, 57, 2, 39, 51, 0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107,
+			0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 2, 80, 36, 50, 0, 3, 49, 0, 4, 2, 101, 3, 80, 0, 2, 105, 0, 2, 195, 182,
+			0, 2, 195, 188, 0, 7, 6, 108, 0, 97, 2, 32, 14, 128, 128, 130, 3, 2, 55, 35, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2,
+			55, 36, 0, 3, 55, 0, 196, 177, 2, 32, 14, 128, 128, 130, 3, 55, 13, 0, 196, 177, 107, 2, 32, 14, 128, 128, 131, 3, 55, 13,
+			49, 0, 97, 114, 2, 32, 14, 128, 128, 131, 3, 55, 35, 51, 0, 101, 114, 2, 32, 14, 128, 128, 131, 3, 55, 36, 51, 0, 105, 2,
+			32, 14, 128, 128, 130, 3, 55, 37, 0, 105, 107, 2, 32, 14, 128, 128, 131, 3, 55, 37, 49, 0, 117, 2, 32, 14, 128, 128, 130, 3,
+			55, 40, 0, 117, 107, 2, 32, 14, 128, 128, 131, 3, 55, 40, 49, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 55, 112, 0, 195, 188,
+			107, 2, 32, 14, 128, 128, 131, 3, 55, 112, 49, 0, 7, 6, 109, 0, 97, 2, 32, 14, 128, 128, 130, 3, 2, 65, 35, 0, 101, 2,
+			32, 14, 128, 128, 130, 3, 2, 65, 36, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 196, 177, 110, 2, 32, 14, 128, 128, 131, 3,
+			50, 13, 50, 0, 105, 110, 2, 32, 14, 128, 128, 131, 3, 50, 37, 50, 0, 117, 110, 2, 32, 14, 128, 128, 131, 3, 50, 40, 50, 0,
+			100, 97, 8, 2, 32, 3, 50, 72, 35, 0, 100, 97, 110, 8, 2, 32, 3, 50, 72, 35, 50, 0, 100, 101, 8, 2, 32, 3, 50, 72,
+			36, 0, 100, 101, 110, 8, 2, 32, 3, 50, 72, 36, 50, 0, 195, 188, 110, 2, 32, 14, 128, 128, 131, 3, 50, 112, 50, 0, 7, 6,
+			111, 0, 3, 39, 0, 7, 6, 112, 0, 3, 48, 0, 7, 6, 113, 0, 3, 49, 0, 7, 6, 114, 0, 97, 2, 32, 14, 128, 128, 130,
+			3, 2, 51, 35, 0, 101, 2, 32, 14, 128, 128, 130, 3, 2, 51, 36, 0, 1, 17, 65, 2, 17, 65, 3, 16, 0, 3, 51, 0, 97,
+			2, 32, 24, 3, 51, 35, 0, 101, 2, 32, 24, 3, 51, 36, 0, 7, 6, 115, 0, 196, 177, 110, 196, 177, 122, 2, 32, 14, 128, 128,
+			133, 3, 2, 89, 13, 50, 13, 88, 0, 97, 2, 32, 14, 128, 128, 130, 3, 2, 89, 35, 0, 97, 107, 2, 32, 14, 128, 128, 131, 3,
+			2, 89, 35, 49, 0, 97, 110, 2, 32, 14, 128, 128, 131, 3, 2, 89, 35, 50, 0, 97, 110, 196, 177, 122, 2, 32, 14, 128, 128, 133,
+			3, 2, 89, 35, 50, 13, 88, 0, 97, 109, 2, 32, 14, 128, 128, 131, 3, 2, 89, 35, 65, 0, 101, 2, 32, 14, 128, 128, 130, 3,
+			2, 89, 36, 0, 101, 107, 2, 32, 14, 128, 128, 131, 3, 2, 89, 36, 49, 0, 101, 110, 2, 32, 14, 128, 128, 131, 3, 2, 89, 36,
+			50, 0, 101, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 36, 50, 37, 88, 0, 101, 109, 2, 32, 14, 128, 128, 131, 3, 2,
+			89, 36, 65, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 37, 50, 37, 88, 0, 117, 110, 117, 122, 2, 32, 14, 128,
+			128, 133, 3, 2, 89, 40, 50, 40, 88, 0, 195, 188, 110, 195, 188, 122, 2, 32, 14, 128, 128, 133, 3, 2, 89, 112, 50, 112, 88, 0,
+			3, 89, 0, 7, 6, 116, 0, 196, 177, 114, 1, 18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 13, 51, 0, 105, 114, 1, 18, 66,
+			2, 32, 14, 128, 128, 131, 3, 2, 47, 37, 51, 0, 117, 114, 1, 18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 40, 51, 0, 195,
+			188, 114, 1, 18, 66, 2, 32, 14, 128, 128, 131, 3, 2, 47, 112, 51, 0, 3, 47, 0, 97, 2, 32, 14, 128, 128, 130, 3, 47, 35,
+			0, 97, 110, 2, 32, 14, 128, 128, 131, 3, 47, 35, 50, 0, 101, 2, 32, 14, 128, 128, 130, 3, 47, 36, 0, 101, 110, 2, 32, 14,
+			128, 128, 131, 3, 47, 36, 50, 0, 7, 6, 117, 0, 110, 117, 122, 1, 21, 2, 32, 14, 128, 128, 132, 3, 2, 40, 50, 40, 88, 0,
+			109, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 40, 65, 0, 122, 1, 21, 2, 32, 14, 128, 128, 130, 3, 2, 40, 88, 0, 4, 3,
+			40, 0, 1, 21, 2, 32, 14, 128, 128, 129, 0, 110, 1, 21, 2, 32, 14, 128, 128, 130, 3, 40, 50, 0, 121, 111, 114, 1, 21, 2,
+			32, 14, 128, 128, 132, 3, 40, 57, 2, 39, 51, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0,
+			3, 49, 89, 0, 1, 25, 3, 88, 0, 7, 6, 121, 0, 196, 177, 110, 196, 177, 122, 2, 32, 14, 128, 128, 133, 3, 2, 57, 13, 50,
+			13, 88, 0, 196, 177, 109, 2, 32, 14, 128, 128, 131, 3, 2, 57, 13, 65, 0, 196, 177, 122, 2, 32, 14, 128, 128, 131, 3, 2, 57,
+			13, 88, 0, 105, 110, 105, 122, 2, 32, 14, 128, 128, 133, 3, 2, 57, 37, 50, 37, 88, 0, 105, 109, 2, 32, 14, 128, 128, 131, 3,
+			2, 57, 37, 65, 0, 105, 122, 2, 32, 14, 128, 128, 131, 3, 2, 57, 37, 88, 0, 117, 110, 117, 122, 2, 32, 14, 128, 128, 133, 3,
+			2, 57, 40, 50, 40, 88, 0, 117, 109, 2, 32, 14, 128, 128, 131, 3, 2, 57, 40, 65, 0, 117, 122, 2, 32, 14, 128, 128, 131, 3,
+			2, 57, 40, 88, 0, 108, 97, 2, 32, 14, 128, 128, 131, 3, 2, 57, 55, 35, 0, 108, 101, 2, 32, 14, 128, 128, 131, 3, 2, 57,
+			55, 36, 0, 195, 188, 110, 195, 188, 122, 2, 32, 14, 128, 128, 133, 3, 2, 57, 112, 50, 112, 88, 0, 195, 188, 109, 2, 32, 14, 128,
+			128, 131, 3, 2, 57, 112, 65, 0, 195, 188, 122, 2, 32, 14, 128, 128, 131, 3, 2, 57, 112, 88, 0, 3, 57, 0, 196, 177, 2, 32,
+			14, 128, 128, 130, 3, 57, 13, 0, 97, 2, 32, 14, 128, 128, 130, 3, 57, 35, 0, 97, 108, 196, 177, 109, 2, 32, 14, 128, 128, 133,
+			3, 57, 35, 55, 13, 65, 0, 97, 121, 196, 177, 109, 2, 32, 14, 128, 128, 133, 3, 57, 35, 57, 13, 65, 0, 97, 99, 97, 107, 2,
+			32, 14, 128, 128, 133, 3, 57, 35, 75, 35, 49, 0, 97, 99, 97, 107, 109, 196, 177, 197, 159, 2, 32, 14, 128, 128, 136, 3, 57, 35,
+			75, 35, 49, 65, 2, 13, 91, 0, 97, 115, 196, 177, 110, 2, 32, 14, 128, 128, 133, 3, 57, 35, 89, 13, 50, 0, 101, 2, 32, 14,
+			128, 128, 130, 3, 57, 36, 0, 101, 108, 105, 109, 2, 32, 14, 128, 128, 133, 3, 57, 36, 55, 37, 65, 0, 101, 121, 105, 109, 2, 32,
+			14, 128, 128, 133, 3, 57, 36, 57, 37, 65, 0, 101, 99, 101, 107, 2, 32, 14, 128, 128, 133, 3, 57, 36, 75, 36, 49, 0, 101, 99,
+			101, 107, 109, 105, 197, 159, 2, 32, 14, 128, 128, 136, 3, 57, 36, 75, 36, 49, 65, 2, 37, 91, 0, 101, 115, 105, 110, 2, 32, 14,
+			128, 128, 133, 3, 57, 36, 89, 37, 50, 0, 105, 2, 32, 14, 128, 128, 130, 3, 57, 37, 0, 117, 2, 32, 14, 128, 128, 130, 3, 57,
+			40, 0, 107, 101, 110, 2, 32, 14, 128, 128, 132, 3, 57, 80, 2, 36, 50, 0, 195, 188, 2, 32, 14, 128, 128, 130, 3, 57, 112, 0,
+			7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 39, 2, 14, 130, 132, 128, 3, 0, 36, 3, 72, 39, 55, 35, 34, 0, 4, 195, 164, 3,
+			109, 0, 201, 153, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts65 = FileInMemory_createWithData (5977, reinterpret_cast<const char *> (&espeakdata_dicts65_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/tr_dict", 
 			U"tr");
-		my addItem_move (espeakdata_dicts65.move());
+		Collection_addItem (me.peek(), espeakdata_dicts65.transfer());
 
-		static unsigned char espeakdata_dicts66_data[18016] = {
-			0, 4, 0, 0, 200, 47, 0, 0, 0, 0, 25, 12, 216, 168, 216, 177, 217, 130, 216, 177, 216, 167, 216, 177, 71, 4, 35, 51, 104, 35,
-			51, 6, 118, 51, 0, 32, 16, 218, 136, 216, 167, 216, 166, 216, 177, 219, 140, 218, 169, 217, 185, 216, 177, 140, 4, 118, 57, 113, 51, 4,
-			114, 49, 139, 6, 35, 51, 0, 0, 22, 10, 216, 173, 216, 177, 216, 167, 216, 179, 216, 170, 108, 4, 113, 51, 118, 89, 6, 35, 47, 0,
-			0, 0, 21, 10, 216, 170, 217, 134, 216, 167, 216, 179, 216, 168, 47, 35, 50, 6, 118, 89, 122, 71, 0, 0, 0, 0, 0, 0, 0, 0,
-			21, 10, 216, 167, 217, 134, 219, 129, 219, 140, 218, 186, 4, 122, 50, 108, 6, 114, 50, 0, 72, 0, 0, 19, 8, 216, 175, 216, 177, 216,
-			172, 217, 134, 72, 4, 35, 51, 79, 6, 35, 50, 0, 0, 21, 12, 216, 167, 217, 185, 218, 190, 216, 167, 219, 140, 216, 167, 122, 141, 6,
-			118, 57, 118, 0, 0, 17, 8, 216, 170, 216, 185, 216, 183, 217, 132, 47, 6, 118, 47, 122, 55, 0, 17, 8, 216, 173, 216, 167, 216, 181,
-			217, 132, 108, 6, 118, 93, 113, 55, 0, 0, 19, 10, 216, 172, 216, 167, 217, 136, 219, 140, 216, 175, 79, 118, 84, 6, 114, 72, 0, 0,
-			0, 0, 17, 4, 95, 100, 112, 116, 10, 113, 91, 35, 51, 113, 6, 113, 35, 10, 0, 0, 16, 8, 217, 136, 216, 167, 217, 130, 216, 185,
-			84, 6, 118, 104, 114, 0, 0, 15, 6, 218, 169, 216, 180, 216, 180, 49, 6, 35, 91, 113, 91, 0, 0, 0, 0, 27, 8, 217, 133, 217,
-			136, 217, 130, 216, 185, 65, 6, 121, 104, 114, 15, 48, 6, 35, 51, 0, 81, 217, 190, 216, 177, 32, 15, 8, 217, 185, 218, 190, 219, 140,
-			218, 169, 141, 6, 112, 49, 0, 0, 0, 14, 6, 216, 162, 217, 136, 216, 177, 118, 84, 6, 35, 51, 0, 0, 0, 0, 0, 0, 21, 10,
-			217, 134, 218, 175, 216, 177, 216, 167, 217, 134, 50, 4, 113, 81, 51, 6, 118, 50, 0, 0, 18, 8, 216, 168, 216, 183, 217, 136, 216, 177,
-			71, 6, 35, 47, 119, 51, 0, 66, 0, 0, 0, 9, 134, 219, 129, 219, 140, 218, 186, 72, 0, 17, 8, 216, 174, 216, 183, 216, 177, 219,
-			129, 101, 6, 35, 47, 51, 35, 0, 0, 17, 8, 216, 175, 217, 134, 217, 136, 218, 186, 72, 113, 50, 6, 119, 50, 0, 0, 0, 16, 8,
-			216, 175, 217, 136, 216, 177, 219, 140, 72, 6, 123, 51, 37, 0, 17, 8, 216, 173, 216, 179, 216, 167, 216, 168, 108, 113, 89, 6, 118, 71,
-			0, 0, 0, 0, 0, 22, 10, 217, 136, 216, 177, 216, 167, 216, 171, 216, 170, 84, 4, 113, 51, 118, 89, 6, 35, 47, 0, 0, 0, 0,
-			0, 21, 10, 217, 133, 217, 132, 216, 170, 216, 167, 217, 134, 65, 4, 122, 55, 47, 6, 118, 50, 0, 20, 8, 217, 133, 217, 129, 216, 181,
-			217, 132, 65, 4, 122, 83, 35, 93, 6, 35, 55, 0, 0, 0, 23, 10, 217, 133, 217, 134, 217, 129, 216, 181, 217, 132, 65, 4, 122, 50,
-			83, 6, 35, 93, 113, 55, 0, 0, 23, 10, 217, 133, 217, 134, 217, 130, 216, 179, 217, 133, 65, 4, 122, 50, 104, 6, 35, 89, 113, 65,
-			0, 0, 14, 6, 216, 179, 216, 177, 219, 146, 89, 6, 113, 51, 114, 0, 15, 6, 216, 172, 216, 179, 219, 146, 79, 6, 113, 89, 114, 0,
-			72, 0, 20, 8, 217, 133, 216, 180, 216, 177, 217, 129, 65, 4, 122, 91, 35, 51, 6, 35, 83, 0, 0, 20, 10, 216, 167, 216, 179, 217,
-			132, 217, 136, 216, 168, 4, 122, 89, 55, 6, 123, 71, 0, 0, 0, 18, 8, 217, 129, 216, 183, 216, 177, 219, 140, 83, 6, 113, 47, 51,
-			4, 112, 0, 0, 0, 0, 14, 6, 217, 132, 216, 179, 217, 185, 55, 6, 113, 89, 139, 0, 23, 10, 217, 133, 216, 170, 217, 136, 217, 130,
-			216, 185, 65, 4, 122, 47, 35, 84, 6, 35, 104, 114, 0, 0, 0, 24, 12, 216, 167, 217, 134, 216, 173, 216, 177, 216, 167, 217, 129, 4,
-			113, 50, 108, 113, 51, 6, 118, 83, 0, 16, 8, 218, 169, 217, 136, 216, 177, 217, 185, 49, 6, 119, 51, 139, 0, 0, 20, 10, 216, 167,
-			217, 130, 216, 168, 216, 167, 217, 132, 4, 113, 104, 71, 6, 118, 55, 0, 0, 23, 10, 217, 133, 217, 134, 216, 170, 216, 180, 216, 177, 65,
-			4, 122, 50, 47, 6, 35, 91, 113, 51, 0, 0, 16, 8, 216, 168, 218, 190, 217, 185, 217, 136, 137, 6, 122, 139, 119, 0, 0, 16, 8,
-			216, 167, 216, 170, 216, 167, 216, 177, 122, 47, 6, 118, 51, 0, 0, 0, 0, 0, 23, 12, 216, 168, 218, 190, 216, 177, 217, 190, 217, 136,
-			216, 177, 137, 4, 35, 51, 48, 6, 123, 51, 0, 0, 22, 10, 216, 168, 216, 177, 216, 179, 216, 177, 217, 144, 71, 4, 35, 51, 89, 6,
-			35, 51, 114, 0, 17, 8, 217, 134, 219, 129, 219, 140, 218, 186, 50, 35, 108, 6, 112, 50, 0, 0, 24, 10, 217, 133, 216, 170, 216, 173,
-			216, 177, 218, 169, 65, 4, 122, 47, 35, 108, 6, 35, 51, 113, 49, 0, 0, 0, 0, 24, 12, 216, 168, 216, 167, 216, 178, 218, 175, 216,
-			180, 216, 170, 71, 4, 118, 88, 81, 6, 35, 91, 47, 0, 0, 0, 0, 0, 24, 12, 216, 172, 217, 133, 216, 185, 216, 177, 216, 167, 216,
-			170, 79, 4, 122, 65, 114, 51, 6, 118, 47, 0, 0, 0, 0, 17, 8, 216, 180, 218, 169, 216, 167, 216, 177, 91, 113, 49, 6, 118, 51,
-			0, 14, 6, 216, 168, 216, 177, 218, 175, 71, 6, 35, 51, 81, 0, 0, 24, 12, 217, 136, 216, 167, 217, 132, 216, 175, 219, 140, 217, 134,
-			84, 4, 118, 55, 113, 72, 6, 114, 50, 0, 17, 8, 216, 170, 216, 185, 219, 140, 217, 134, 47, 6, 118, 57, 122, 50, 0, 0, 21, 10,
-			218, 136, 216, 167, 218, 169, 217, 185, 216, 177, 140, 4, 118, 49, 139, 6, 35, 51, 0, 0, 0, 16, 8, 217, 185, 216, 167, 216, 179, 218,
-			169, 139, 6, 118, 89, 49, 0, 0, 24, 12, 216, 167, 217, 132, 219, 140, 218, 169, 216, 180, 217, 134, 4, 113, 55, 114, 49, 91, 6, 35,
-			50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 8, 218, 175, 216, 176, 216, 167, 216, 177, 81, 122, 86, 6, 118, 51, 0,
-			0, 24, 12, 217, 130, 217, 136, 216, 167, 217, 134, 219, 140, 217, 134, 104, 4, 35, 84, 118, 50, 6, 112, 50, 0, 0, 21, 10, 217, 133,
-			216, 170, 216, 167, 216, 171, 216, 177, 65, 122, 47, 6, 118, 89, 113, 51, 0, 26, 14, 216, 168, 216, 167, 217, 132, 216, 185, 217, 133, 217,
-			136, 217, 133, 71, 4, 113, 55, 122, 65, 6, 123, 65, 0, 20, 10, 216, 167, 216, 184, 219, 129, 216, 167, 216, 177, 4, 113, 92, 108, 6,
-			118, 51, 0, 0, 0, 0, 0, 28, 14, 217, 190, 216, 177, 216, 167, 216, 179, 216, 177, 216, 167, 216, 177, 48, 4, 122, 51, 4, 35, 89,
-			51, 6, 118, 51, 0, 0, 13, 6, 218, 134, 217, 136, 218, 186, 80, 6, 123, 50, 0, 0, 0, 17, 8, 216, 168, 216, 170, 217, 136, 218,
-			186, 71, 122, 47, 6, 119, 50, 0, 0, 0, 17, 8, 216, 173, 216, 181, 217, 136, 217, 132, 108, 122, 93, 6, 123, 55, 0, 0, 0, 21,
-			12, 216, 167, 217, 185, 218, 190, 216, 167, 216, 166, 219, 146, 122, 141, 6, 118, 57, 114, 0, 0, 0, 14, 6, 218, 169, 218, 134, 218, 190,
-			49, 6, 122, 143, 0, 72, 0, 0, 0, 18, 8, 216, 179, 216, 177, 217, 136, 216, 179, 89, 6, 35, 51, 84, 113, 89, 0, 0, 21, 10,
-			217, 190, 216, 177, 219, 129, 219, 140, 216, 178, 48, 4, 35, 51, 108, 6, 114, 88, 0, 0, 0, 16, 8, 216, 170, 216, 185, 219, 140, 218,
-			186, 47, 118, 6, 112, 50, 0, 18, 8, 216, 175, 216, 177, 216, 179, 216, 170, 72, 6, 122, 51, 122, 89, 47, 0, 0, 0, 21, 12, 216,
-			168, 219, 140, 217, 134, 216, 167, 216, 166, 219, 140, 71, 37, 50, 6, 118, 37, 0, 21, 12, 216, 167, 217, 185, 218, 190, 216, 167, 216, 166,
-			219, 140, 122, 141, 6, 118, 57, 112, 0, 21, 12, 216, 175, 218, 169, 218, 190, 216, 167, 216, 166, 219, 140, 72, 113, 145, 6, 118, 37, 0,
-			0, 0, 0, 0, 25, 12, 217, 133, 216, 170, 217, 132, 216, 167, 216, 180, 219, 140, 65, 4, 122, 47, 35, 55, 6, 118, 91, 112, 0, 0,
-			0, 0, 0, 0, 0, 25, 12, 217, 190, 216, 177, 216, 179, 218, 169, 217, 136, 217, 134, 48, 4, 122, 51, 89, 122, 49, 6, 123, 50, 0,
-			0, 0, 0, 0, 19, 8, 217, 129, 216, 183, 216, 177, 216, 170, 83, 4, 113, 47, 51, 6, 35, 47, 0, 0, 0, 0, 0, 0, 0, 21,
-			10, 216, 179, 218, 169, 216, 170, 219, 140, 218, 186, 89, 4, 35, 49, 47, 6, 112, 50, 0, 21, 10, 217, 133, 217, 132, 218, 169, 217, 136,
-			218, 186, 65, 4, 122, 55, 49, 6, 119, 50, 0, 0, 0, 0, 0, 0, 0, 17, 8, 216, 185, 219, 129, 216, 175, 219, 146, 6, 119, 108,
-			72, 4, 114, 0, 0, 23, 10, 217, 133, 216, 173, 216, 170, 216, 177, 217, 133, 65, 4, 122, 108, 47, 35, 51, 6, 35, 65, 0, 14, 6,
-			216, 181, 216, 177, 217, 129, 93, 6, 113, 51, 83, 0, 0, 14, 6, 216, 173, 216, 181, 219, 146, 108, 6, 113, 93, 114, 0, 17, 8, 216,
-			180, 216, 167, 217, 133, 217, 132, 91, 6, 118, 65, 113, 55, 0, 0, 14, 6, 216, 175, 219, 140, 216, 167, 72, 6, 112, 38, 118, 0, 0,
-			0, 12, 6, 217, 134, 217, 136, 216, 185, 50, 6, 119, 0, 23, 10, 216, 168, 216, 177, 216, 183, 216, 177, 217, 129, 71, 4, 35, 51, 47,
-			35, 51, 6, 35, 83, 0, 0, 0, 16, 8, 216, 180, 216, 177, 217, 136, 216, 185, 91, 6, 122, 51, 123, 0, 0, 0, 0, 0, 17, 8,
-			216, 168, 216, 186, 219, 140, 216, 177, 71, 35, 100, 6, 114, 51, 0, 0, 12, 4, 218, 134, 218, 190, 143, 6, 36, 107, 11, 0, 0, 0,
-			0, 16, 8, 216, 185, 219, 129, 216, 175, 219, 129, 6, 119, 108, 72, 35, 0, 0, 0, 15, 6, 216, 173, 216, 181, 219, 129, 108, 6, 113,
-			93, 4, 35, 0, 21, 10, 218, 175, 216, 178, 216, 180, 216, 170, 219, 129, 81, 122, 88, 6, 35, 91, 47, 35, 0, 0, 0, 0, 0, 0,
-			16, 8, 216, 180, 216, 185, 216, 177, 219, 140, 91, 6, 114, 51, 112, 0, 0, 0, 17, 8, 216, 173, 216, 181, 217, 136, 218, 186, 108, 113,
-			93, 6, 119, 50, 0, 0, 0, 15, 8, 219, 129, 217, 136, 216, 166, 219, 140, 108, 6, 123, 112, 0, 18, 10, 219, 129, 217, 136, 216, 166,
-			219, 140, 218, 186, 108, 123, 6, 112, 50, 0, 0, 11, 4, 218, 175, 217, 133, 81, 6, 122, 65, 0, 0, 0, 0, 19, 8, 217, 133, 216,
-			185, 216, 183, 217, 132, 65, 4, 121, 35, 47, 6, 35, 55, 0, 15, 6, 217, 132, 216, 166, 219, 146, 55, 6, 112, 38, 114, 0, 72, 11,
-			4, 216, 175, 217, 132, 72, 6, 113, 55, 0, 0, 0, 15, 8, 219, 129, 217, 136, 216, 166, 219, 146, 108, 6, 123, 114, 0, 11, 4, 216,
-			175, 217, 134, 72, 6, 113, 50, 0, 0, 0, 20, 10, 216, 167, 216, 183, 217, 132, 216, 167, 217, 130, 4, 113, 47, 55, 6, 118, 104, 0,
-			0, 0, 0, 0, 14, 6, 218, 134, 216, 177, 218, 134, 80, 6, 35, 51, 80, 0, 18, 8, 217, 133, 216, 181, 216, 177, 219, 140, 65, 6,
-			113, 93, 51, 4, 112, 0, 0, 0, 21, 10, 217, 133, 216, 173, 217, 129, 217, 136, 216, 184, 65, 4, 114, 108, 83, 6, 123, 92, 0, 0,
-			21, 10, 217, 133, 217, 136, 216, 166, 216, 171, 216, 177, 65, 4, 119, 35, 89, 6, 35, 51, 0, 27, 14, 216, 167, 216, 179, 216, 170, 216,
-			173, 218, 169, 216, 167, 217, 133, 4, 113, 89, 47, 116, 108, 49, 6, 118, 65, 0, 0, 0, 0, 0, 22, 10, 216, 179, 217, 134, 219, 140,
-			218, 134, 216, 177, 89, 4, 35, 50, 112, 80, 6, 35, 51, 0, 27, 14, 216, 168, 216, 167, 217, 132, 216, 174, 216, 181, 217, 136, 216, 181,
-			71, 4, 113, 55, 101, 122, 93, 6, 123, 93, 0, 0, 0, 29, 16, 216, 176, 217, 136, 216, 167, 217, 132, 217, 129, 217, 130, 216, 167, 216,
-			177, 86, 4, 122, 55, 83, 113, 104, 6, 118, 51, 0, 18, 8, 216, 170, 217, 136, 217, 130, 216, 185, 47, 35, 84, 6, 35, 104, 119, 0,
-			0, 0, 0, 0, 0, 14, 6, 216, 177, 217, 136, 219, 140, 51, 6, 35, 84, 112, 0, 18, 8, 216, 185, 216, 180, 216, 177, 216, 170, 4,
-			113, 91, 51, 6, 35, 47, 0, 0, 0, 19, 10, 216, 170, 219, 140, 217, 134, 217, 136, 218, 186, 47, 112, 50, 6, 119, 50, 0, 0, 0,
-			0, 0, 0, 0, 25, 14, 216, 162, 216, 177, 218, 169, 216, 167, 216, 166, 219, 140, 217, 136, 4, 118, 51, 49, 6, 118, 57, 84, 0, 0,
-			34, 8, 218, 169, 217, 136, 218, 145, 216, 167, 49, 6, 123, 70, 15, 49, 4, 35, 51, 49, 6, 35, 139, 0, 81, 218, 169, 216, 177, 218,
-			169, 217, 185, 32, 0, 0, 0, 17, 8, 216, 173, 217, 132, 219, 140, 219, 146, 108, 6, 122, 55, 57, 114, 0, 0, 0, 0, 0, 0, 0,
-			28, 14, 217, 133, 216, 185, 216, 170, 217, 130, 216, 175, 219, 140, 217, 134, 65, 4, 121, 47, 35, 104, 113, 72, 6, 112, 50, 0, 0, 0,
-			0, 19, 10, 216, 167, 216, 170, 217, 136, 216, 167, 216, 177, 113, 47, 84, 6, 118, 51, 0, 14, 6, 217, 133, 216, 181, 216, 177, 65, 6,
-			113, 93, 51, 0, 0, 24, 12, 217, 134, 218, 175, 216, 177, 216, 167, 217, 134, 219, 140, 50, 4, 113, 81, 51, 6, 118, 50, 112, 0, 0,
-			0, 0, 19, 8, 216, 172, 216, 179, 217, 185, 216, 179, 79, 6, 35, 89, 139, 4, 113, 89, 0, 0, 0, 17, 8, 217, 129, 216, 170, 217,
-			134, 219, 129, 83, 6, 113, 47, 50, 35, 0, 10, 4, 217, 136, 219, 129, 58, 119, 0, 72, 0, 0, 0, 0, 16, 8, 216, 172, 217, 133,
-			216, 185, 219, 129, 79, 6, 122, 65, 118, 0, 0, 0, 24, 12, 216, 167, 216, 177, 216, 175, 218, 175, 216, 177, 216, 175, 4, 113, 51, 72,
-			81, 6, 113, 51, 72, 0, 0, 0, 0, 0, 0, 0, 24, 6, 219, 129, 217, 136, 216, 167, 108, 6, 123, 35, 15, 25, 118, 0, 81, 216,
-			170, 218, 190, 216, 167, 32, 0, 0, 0, 0, 20, 8, 217, 133, 216, 177, 219, 140, 217, 133, 65, 4, 35, 51, 112, 38, 6, 35, 65, 0,
-			0, 19, 8, 218, 175, 217, 132, 216, 180, 217, 134, 81, 4, 122, 55, 91, 6, 35, 50, 0, 17, 8, 217, 130, 216, 181, 217, 136, 218, 186,
-			104, 113, 93, 6, 119, 50, 0, 17, 8, 216, 179, 217, 133, 219, 140, 216, 170, 89, 35, 65, 6, 114, 47, 0, 0, 14, 6, 216, 174, 216,
-			170, 217, 133, 101, 6, 35, 47, 65, 0, 0, 13, 6, 216, 170, 219, 140, 217, 134, 47, 6, 112, 50, 0, 0, 0, 16, 8, 216, 179, 217,
-			190, 219, 140, 217, 134, 89, 48, 6, 114, 50, 0, 16, 8, 216, 172, 217, 133, 216, 185, 219, 146, 79, 6, 122, 65, 114, 0, 18, 8, 216,
-			180, 219, 129, 216, 177, 216, 170, 91, 122, 108, 51, 6, 35, 47, 0, 0, 0, 25, 12, 216, 175, 217, 132, 217, 129, 216, 177, 219, 140, 216,
-			168, 72, 4, 113, 55, 83, 35, 51, 6, 114, 71, 0, 0, 0, 0, 21, 10, 217, 133, 216, 179, 217, 133, 216, 167, 216, 177, 65, 4, 113,
-			89, 65, 6, 118, 51, 0, 15, 6, 216, 180, 219, 129, 216, 177, 91, 6, 116, 108, 116, 51, 0, 0, 18, 8, 216, 180, 218, 169, 217, 134,
-			219, 140, 91, 6, 113, 49, 50, 4, 112, 0, 0, 24, 6, 217, 129, 219, 140, 216, 179, 83, 6, 114, 89, 15, 71, 6, 122, 49, 0, 81,
-			216, 168, 218, 169, 32, 0, 0, 0, 0, 17, 8, 217, 136, 216, 172, 217, 136, 219, 129, 84, 6, 122, 79, 123, 108, 0, 18, 8, 216, 174,
-			217, 129, 219, 140, 219, 129, 101, 122, 83, 6, 112, 38, 35, 0, 0, 0, 22, 10, 217, 133, 216, 170, 217, 129, 217, 130, 219, 129, 65, 122,
-			47, 6, 35, 83, 113, 104, 35, 0, 0, 23, 10, 216, 167, 217, 136, 217, 132, 219, 140, 216, 170, 4, 35, 84, 35, 55, 112, 38, 6, 35,
-			47, 0, 0, 0, 26, 12, 216, 172, 216, 167, 216, 177, 216, 173, 219, 140, 216, 170, 79, 4, 118, 51, 113, 108, 112, 38, 6, 35, 47, 0,
-			0, 0, 0, 0, 26, 12, 216, 179, 216, 177, 218, 175, 216, 178, 216, 180, 216, 170, 89, 4, 35, 51, 81, 122, 88, 6, 35, 91, 47, 0,
-			0, 0, 21, 10, 216, 167, 217, 134, 218, 136, 219, 140, 216, 167, 4, 113, 50, 140, 6, 112, 38, 118, 0, 0, 0, 0, 0, 13, 6, 216,
-			178, 217, 136, 216, 175, 88, 6, 123, 72, 0, 0, 0, 14, 6, 217, 132, 216, 183, 217, 129, 55, 6, 122, 47, 83, 0, 0, 0, 25, 12,
-			216, 168, 216, 177, 216, 174, 217, 132, 216, 167, 217, 129, 71, 4, 35, 51, 101, 113, 55, 6, 118, 83, 0, 25, 12, 217, 190, 216, 177, 216,
-			173, 216, 172, 217, 136, 217, 133, 48, 4, 122, 51, 108, 122, 79, 6, 123, 65, 0, 0, 17, 8, 217, 130, 216, 168, 217, 136, 217, 132, 104,
-			122, 71, 6, 123, 55, 0, 20, 8, 217, 133, 219, 129, 216, 176, 216, 168, 65, 4, 122, 108, 35, 86, 6, 35, 71, 0, 0, 0, 24, 10,
-			217, 133, 216, 170, 216, 173, 217, 133, 217, 132, 65, 4, 122, 47, 35, 108, 6, 35, 65, 113, 55, 0, 0, 0, 19, 8, 217, 136, 216, 177,
-			216, 178, 216, 180, 84, 6, 35, 51, 88, 4, 113, 91, 0, 26, 12, 217, 133, 216, 170, 216, 168, 216, 167, 216, 175, 217, 132, 65, 4, 122,
-			47, 35, 71, 6, 118, 72, 113, 55, 0, 20, 10, 216, 179, 217, 134, 216, 166, 219, 140, 219, 146, 89, 122, 50, 6, 112, 38, 114, 0, 0,
-			0, 26, 14, 216, 167, 216, 179, 216, 170, 216, 185, 217, 133, 216, 167, 217, 132, 4, 113, 89, 47, 114, 65, 6, 118, 55, 0, 0, 17, 8,
-			217, 134, 216, 167, 216, 180, 216, 177, 50, 6, 118, 91, 113, 51, 0, 21, 10, 217, 133, 216, 173, 216, 179, 217, 136, 216, 179, 65, 4, 116,
-			108, 89, 6, 123, 89, 0, 0, 0, 17, 8, 216, 174, 216, 183, 217, 136, 216, 183, 101, 122, 47, 6, 123, 47, 0, 31, 8, 216, 162, 216,
-			166, 219, 140, 216, 179, 118, 6, 112, 89, 15, 49, 51, 6, 112, 65, 0, 81, 218, 169, 216, 177, 219, 140, 217, 133, 32, 0, 0, 0, 13,
-			6, 216, 168, 219, 140, 218, 186, 71, 6, 112, 50, 0, 0, 0, 0, 24, 12, 218, 169, 219, 140, 217, 136, 217, 134, 218, 169, 219, 129, 49,
-			57, 4, 123, 50, 49, 6, 116, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 8, 216, 175, 217, 134, 219, 140, 216, 167, 72,
-			122, 50, 6, 112, 38, 118, 0, 0, 0, 0, 0, 0, 16, 8, 216, 170, 218, 190, 219, 140, 218, 186, 25, 6, 112, 50, 0, 72, 0, 0,
-			14, 6, 216, 167, 216, 179, 219, 146, 6, 113, 89, 114, 0, 72, 0, 0, 13, 6, 216, 167, 216, 179, 219, 140, 6, 113, 89, 112, 0, 0,
-			18, 8, 217, 190, 216, 177, 217, 136, 216, 177, 48, 6, 35, 51, 84, 35, 51, 0, 0, 20, 10, 216, 179, 217, 134, 216, 179, 216, 167, 217,
-			134, 89, 122, 50, 89, 6, 118, 50, 0, 22, 10, 216, 173, 217, 129, 216, 167, 216, 184, 216, 170, 108, 4, 113, 83, 118, 92, 6, 35, 47,
-			0, 0, 14, 6, 216, 167, 216, 174, 216, 177, 6, 118, 101, 113, 51, 0, 0, 23, 10, 217, 190, 216, 177, 218, 169, 216, 180, 216, 180, 48,
-			4, 122, 51, 49, 6, 35, 91, 113, 91, 0, 0, 0, 0, 0, 0, 11, 4, 216, 177, 219, 129, 51, 6, 116, 108, 0, 0, 0, 28, 14,
-			216, 167, 217, 134, 217, 185, 216, 177, 217, 134, 219, 140, 217, 185, 4, 113, 50, 139, 4, 35, 51, 50, 6, 114, 139, 0, 15, 6, 217, 130,
-			216, 181, 219, 129, 104, 6, 113, 93, 4, 35, 0, 0, 0, 23, 10, 217, 133, 216, 179, 216, 170, 216, 177, 216, 175, 65, 4, 122, 89, 47,
-			35, 51, 6, 35, 72, 0, 0, 0, 0, 24, 12, 219, 129, 217, 136, 216, 167, 216, 166, 219, 140, 218, 186, 108, 4, 35, 84, 118, 57, 6,
-			114, 50, 0, 0, 0, 21, 10, 216, 167, 217, 134, 219, 129, 217, 136, 218, 186, 4, 122, 50, 108, 6, 119, 50, 0, 72, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 14, 6, 217, 130, 216, 181, 219, 146, 104, 6, 113, 93, 114, 0, 0, 0, 17, 8, 216, 179, 218, 169,
-			217, 136, 217, 134, 89, 122, 49, 6, 123, 50, 0, 18, 8, 216, 180, 218, 169, 216, 179, 216, 170, 91, 113, 49, 6, 35, 89, 47, 0, 0,
-			24, 12, 216, 167, 219, 129, 216, 170, 217, 133, 216, 167, 217, 133, 6, 116, 108, 47, 113, 65, 4, 118, 65, 0, 14, 6, 216, 162, 217, 129,
-			216, 179, 6, 118, 83, 113, 89, 0, 0, 26, 12, 217, 133, 216, 170, 216, 173, 216, 167, 216, 177, 216, 168, 65, 4, 122, 47, 35, 108, 6,
-			118, 51, 113, 71, 0, 22, 10, 216, 172, 217, 134, 218, 190, 219, 140, 218, 186, 79, 4, 113, 50, 108, 6, 114, 50, 0, 72, 0, 23, 12,
-			216, 167, 217, 134, 216, 185, 217, 130, 216, 167, 216, 175, 4, 113, 50, 113, 104, 6, 118, 72, 0, 0, 0, 0, 0, 21, 10, 216, 167, 216,
-			172, 216, 167, 218, 175, 216, 177, 4, 122, 79, 118, 81, 6, 35, 51, 0, 0, 0, 18, 8, 216, 170, 217, 136, 216, 172, 219, 129, 47, 35,
-			84, 6, 35, 79, 119, 0, 0, 0, 0, 14, 3, 95, 51, 57, 122, 50, 47, 118, 55, 6, 112, 89, 0, 12, 3, 95, 50, 49, 113, 49,
-			49, 6, 112, 89, 0, 0, 12, 3, 95, 51, 56, 35, 51, 47, 6, 112, 89, 0, 10, 3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11,
-			3, 95, 50, 51, 47, 114, 6, 112, 89, 0, 0, 11, 3, 95, 50, 50, 71, 118, 6, 112, 89, 0, 0, 13, 3, 95, 50, 53, 48, 35,
-			80, 80, 6, 112, 89, 0, 0, 14, 6, 217, 134, 219, 140, 216, 167, 50, 6, 35, 57, 118, 0, 12, 3, 95, 50, 52, 80, 135, 71, 6,
-			112, 89, 0, 0, 24, 12, 216, 167, 216, 173, 216, 170, 216, 172, 216, 167, 216, 172, 6, 114, 108, 47, 113, 79, 4, 118, 79, 0, 14, 3,
-			95, 50, 55, 89, 35, 47, 12, 118, 6, 112, 89, 0, 0, 13, 3, 95, 50, 54, 143, 35, 71, 71, 6, 112, 89, 0, 0, 13, 3, 95,
-			51, 49, 37, 49, 109, 47, 6, 112, 89, 0, 0, 10, 3, 95, 51, 48, 47, 6, 112, 89, 0, 0, 17, 8, 216, 167, 217, 185, 217, 132,
-			219, 140, 6, 113, 139, 55, 4, 112, 0, 14, 3, 95, 51, 51, 47, 6, 134, 68, 47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 50, 71,
-			35, 47, 12, 6, 112, 89, 0, 0, 22, 10, 217, 133, 216, 185, 216, 183, 217, 132, 219, 140, 65, 4, 121, 35, 47, 6, 35, 55, 112, 0,
-			14, 6, 217, 132, 217, 129, 216, 184, 55, 6, 35, 83, 92, 0, 13, 3, 95, 51, 53, 48, 134, 68, 47, 6, 112, 89, 0, 0, 13, 3,
-			95, 51, 52, 80, 135, 68, 47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 55, 89, 134, 68, 47, 6, 112, 89, 0, 0, 22, 10, 217, 133,
-			217, 134, 216, 179, 217, 132, 218, 169, 65, 122, 50, 89, 6, 35, 55, 113, 49, 0, 13, 3, 95, 51, 54, 143, 35, 47, 12, 6, 112, 89,
-			0, 0, 15, 6, 216, 167, 217, 136, 217, 132, 6, 35, 84, 84, 35, 55, 0, 0, 0, 0, 0, 0, 21, 10, 217, 133, 216, 173, 216, 175,
-			217, 136, 216, 175, 65, 4, 116, 108, 72, 6, 123, 72, 0, 24, 12, 216, 179, 217, 185, 219, 140, 218, 136, 219, 140, 217, 133, 89, 139, 114,
-			140, 112, 38, 6, 35, 65, 0, 0, 20, 10, 216, 177, 219, 140, 216, 167, 216, 179, 216, 170, 51, 57, 118, 89, 6, 35, 47, 0, 0, 13,
-			6, 217, 133, 219, 140, 216, 177, 65, 6, 112, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 55, 57, 122, 50, 50, 118,
-			89, 6, 112, 0, 12, 3, 95, 54, 49, 6, 113, 49, 89, 35, 25, 0, 0, 20, 8, 217, 133, 216, 179, 217, 132, 216, 173, 65, 4, 122,
-			89, 35, 55, 6, 35, 108, 0, 15, 3, 95, 55, 56, 35, 25, 108, 35, 47, 12, 6, 35, 51, 0, 10, 3, 95, 54, 48, 89, 6, 118,
-			25, 0, 0, 9, 3, 95, 48, 67, 89, 6, 135, 0, 13, 3, 95, 54, 51, 47, 6, 113, 51, 89, 35, 25, 0, 0, 22, 10, 217, 133,
-			217, 134, 217, 130, 216, 183, 216, 185, 65, 4, 122, 50, 104, 6, 35, 47, 118, 0, 22, 10, 216, 167, 218, 175, 216, 177, 218, 134, 219, 129,
-			4, 35, 81, 35, 51, 80, 6, 114, 108, 0, 12, 3, 95, 54, 50, 71, 6, 118, 89, 35, 25, 0, 0, 13, 3, 95, 54, 53, 48, 6,
-			134, 68, 89, 35, 25, 0, 0, 12, 3, 95, 54, 52, 80, 6, 135, 89, 35, 25, 0, 0, 13, 3, 95, 54, 55, 89, 6, 35, 51, 89,
-			35, 25, 0, 0, 14, 3, 95, 54, 54, 143, 113, 57, 6, 118, 89, 35, 25, 0, 0, 22, 10, 217, 133, 217, 132, 216, 170, 217, 136, 219,
-			140, 65, 4, 122, 55, 47, 6, 35, 84, 112, 0, 15, 3, 95, 55, 49, 113, 49, 108, 35, 47, 12, 6, 35, 51, 0, 0, 13, 3, 95,
-			55, 48, 89, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 51, 47, 113, 108, 35, 47, 12, 6, 35, 51, 0, 0, 15, 6, 217,
-			133, 219, 129, 217, 133, 65, 6, 122, 108, 113, 65, 0, 14, 6, 216, 173, 218, 169, 217, 133, 108, 6, 122, 49, 65, 0, 15, 3, 95, 55,
-			50, 71, 35, 108, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 53, 48, 35, 143, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3,
-			95, 55, 52, 80, 135, 108, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 55, 89, 35, 25, 35, 47, 12, 6, 35, 51, 0, 0,
-			15, 3, 95, 55, 54, 143, 113, 108, 35, 47, 12, 6, 35, 51, 0, 0, 12, 3, 95, 49, 57, 6, 122, 50, 50, 112, 89, 0, 0, 13,
-			3, 95, 49, 56, 35, 25, 6, 118, 51, 35, 108, 0, 0, 0, 13, 6, 216, 167, 217, 136, 216, 177, 121, 51, 0, 72, 28, 0, 21, 10,
-			216, 168, 216, 167, 217, 132, 218, 169, 217, 132, 71, 6, 113, 55, 49, 4, 122, 55, 0, 21, 10, 217, 133, 217, 133, 216, 167, 216, 171, 217,
-			132, 65, 122, 65, 6, 118, 89, 113, 55, 0, 0, 0, 0, 0, 26, 12, 216, 174, 216, 181, 217, 136, 216, 181, 219, 140, 216, 170, 101, 4,
-			122, 93, 123, 93, 112, 38, 6, 35, 47, 0, 12, 3, 95, 50, 57, 122, 50, 47, 6, 112, 89, 0, 13, 3, 95, 49, 49, 81, 57, 6,
-			118, 51, 35, 108, 0, 0, 14, 3, 95, 50, 56, 4, 35, 141, 118, 57, 6, 112, 89, 0, 10, 3, 95, 49, 48, 72, 6, 35, 89, 0,
-			0, 12, 3, 95, 49, 51, 47, 6, 114, 51, 35, 108, 0, 0, 22, 10, 217, 190, 216, 180, 216, 167, 217, 136, 216, 177, 48, 4, 113, 91,
-			118, 84, 6, 35, 51, 0, 12, 3, 95, 49, 50, 71, 6, 118, 51, 35, 108, 0, 0, 14, 3, 95, 49, 53, 48, 6, 35, 50, 72, 51,
-			35, 108, 0, 0, 12, 3, 95, 49, 52, 80, 6, 135, 72, 35, 108, 0, 0, 13, 3, 95, 49, 55, 89, 6, 35, 47, 51, 35, 108, 0,
-			0, 32, 10, 216, 162, 216, 166, 219, 140, 217, 134, 219, 129, 118, 6, 112, 50, 4, 35, 15, 71, 6, 112, 50, 0, 81, 216, 168, 219, 140,
-			217, 134, 32, 12, 3, 95, 49, 54, 89, 6, 119, 55, 35, 108, 0, 0, 0, 0, 31, 16, 218, 175, 219, 129, 217, 133, 216, 167, 218, 175,
-			219, 129, 217, 133, 219, 140, 81, 4, 116, 108, 65, 118, 81, 6, 116, 108, 65, 37, 0, 0, 0, 26, 14, 216, 167, 217, 134, 218, 175, 217,
-			132, 219, 140, 217, 134, 218, 136, 4, 113, 50, 81, 55, 6, 114, 50, 140, 0, 0, 0, 15, 8, 216, 167, 217, 185, 218, 190, 219, 140, 6,
-			122, 141, 112, 0, 0, 15, 8, 216, 167, 217, 185, 218, 190, 216, 167, 6, 122, 141, 118, 0, 0, 7, 132, 216, 162, 217, 190, 72, 12, 3,
-			95, 52, 57, 122, 50, 80, 6, 118, 89, 0, 0, 14, 3, 95, 52, 56, 35, 51, 47, 118, 55, 6, 112, 89, 0, 0, 0, 0, 0, 0,
-			0, 23, 10, 217, 133, 217, 134, 219, 129, 216, 175, 217, 133, 65, 4, 122, 50, 108, 6, 35, 72, 113, 65, 0, 0, 12, 3, 95, 53, 57,
-			122, 50, 89, 6, 35, 25, 0, 15, 3, 95, 52, 49, 113, 49, 109, 47, 118, 55, 6, 112, 89, 0, 0, 13, 3, 95, 53, 56, 35, 25,
-			6, 118, 84, 35, 50, 0, 12, 3, 95, 52, 48, 80, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 51, 47, 114, 68, 47, 118, 55,
-			6, 112, 89, 0, 0, 14, 3, 95, 52, 50, 71, 35, 57, 118, 55, 6, 112, 89, 0, 0, 15, 8, 216, 167, 217, 185, 218, 190, 219, 146,
-			6, 122, 141, 114, 0, 15, 3, 95, 52, 53, 48, 134, 68, 47, 118, 55, 6, 112, 89, 0, 0, 14, 3, 95, 52, 52, 80, 35, 84, 118,
-			55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 55, 89, 134, 68, 47, 118, 55, 6, 112, 89, 0, 0, 14, 3, 95, 52, 54, 143, 113, 57,
-			118, 55, 6, 112, 89, 0, 0, 24, 12, 217, 134, 216, 167, 217, 133, 217, 133, 218, 169, 217, 134, 50, 6, 118, 65, 122, 65, 49, 113, 50,
-			0, 16, 3, 95, 54, 57, 122, 50, 108, 4, 35, 47, 12, 6, 35, 51, 0, 13, 3, 95, 53, 49, 113, 49, 6, 118, 84, 35, 50, 0,
-			0, 12, 3, 95, 54, 56, 6, 35, 51, 89, 35, 25, 0, 12, 3, 95, 53, 48, 48, 35, 80, 6, 118, 89, 0, 0, 13, 3, 95, 53,
-			51, 47, 6, 113, 51, 48, 35, 50, 0, 0, 12, 3, 95, 53, 50, 71, 6, 118, 84, 35, 50, 0, 0, 13, 3, 95, 53, 53, 48, 6,
-			35, 80, 48, 35, 50, 0, 0, 19, 8, 216, 172, 216, 168, 218, 169, 219, 129, 79, 4, 35, 71, 49, 6, 114, 108, 0, 12, 3, 95, 53,
-			52, 80, 6, 135, 84, 35, 50, 0, 0, 14, 6, 217, 133, 217, 129, 216, 170, 65, 6, 122, 83, 47, 0, 15, 3, 95, 53, 55, 89, 35,
-			47, 12, 6, 118, 84, 35, 50, 0, 0, 20, 10, 216, 162, 216, 166, 217, 134, 216, 175, 219, 129, 118, 6, 113, 50, 72, 4, 35, 0, 19,
-			8, 216, 170, 216, 180, 216, 175, 216, 175, 47, 35, 91, 6, 35, 72, 122, 72, 0, 13, 3, 95, 53, 54, 143, 6, 35, 48, 48, 35, 50,
-			0, 0, 28, 14, 217, 134, 216, 167, 217, 133, 216, 178, 216, 175, 218, 175, 219, 140, 50, 4, 118, 65, 88, 6, 35, 72, 81, 4, 112, 0,
-			0, 25, 12, 217, 133, 216, 173, 216, 170, 216, 177, 217, 133, 219, 129, 65, 4, 122, 108, 47, 6, 35, 51, 65, 35, 0, 0, 0, 0, 0,
-			0, 0, 0, 33, 16, 216, 167, 217, 134, 217, 129, 216, 177, 216, 167, 216, 175, 219, 140, 216, 170, 4, 113, 50, 83, 4, 113, 51, 118, 72,
-			112, 38, 6, 35, 47, 0, 13, 3, 95, 56, 57, 50, 35, 84, 118, 89, 6, 112, 0, 0, 12, 3, 95, 56, 56, 35, 25, 118, 89, 6,
-			112, 0, 0, 0, 0, 22, 10, 216, 178, 217, 134, 216, 175, 218, 175, 219, 140, 88, 4, 113, 50, 72, 6, 35, 81, 112, 0, 0, 0, 0,
-			0, 27, 14, 216, 167, 217, 134, 216, 175, 216, 179, 217, 185, 216, 177, 219, 140, 4, 113, 50, 140, 6, 35, 89, 139, 51, 112, 0, 15, 3,
-			95, 57, 57, 50, 113, 50, 57, 6, 118, 50, 84, 114, 0, 12, 3, 95, 56, 49, 113, 49, 118, 89, 6, 112, 0, 0, 14, 3, 95, 57,
-			56, 35, 25, 12, 6, 118, 50, 84, 114, 0, 11, 3, 95, 56, 48, 35, 89, 89, 6, 112, 0, 0, 13, 3, 95, 56, 51, 47, 113, 51,
-			118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 50, 71, 35, 57, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 53, 48, 35, 80, 118, 89,
-			6, 112, 0, 0, 20, 8, 217, 133, 216, 184, 217, 129, 216, 177, 65, 4, 122, 92, 35, 83, 6, 35, 51, 0, 13, 3, 95, 56, 52, 80,
-			135, 51, 118, 89, 6, 112, 0, 0, 14, 3, 95, 56, 55, 89, 35, 47, 12, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 54, 143, 113,
-			57, 118, 89, 6, 112, 0, 0, 14, 3, 95, 57, 49, 113, 49, 57, 6, 118, 50, 84, 114, 0, 0, 12, 3, 95, 57, 48, 50, 35, 84,
-			84, 6, 114, 0, 0, 14, 3, 95, 57, 51, 47, 113, 87, 6, 118, 50, 84, 114, 0, 0, 13, 6, 217, 133, 217, 134, 219, 129, 65, 6,
-			123, 50, 0, 15, 6, 216, 176, 217, 133, 219, 129, 86, 6, 113, 65, 4, 35, 0, 12, 3, 95, 57, 50, 71, 6, 118, 50, 84, 114, 0,
-			0, 14, 3, 95, 57, 53, 48, 35, 80, 6, 118, 50, 84, 114, 0, 0, 17, 8, 217, 136, 216, 177, 217, 134, 219, 129, 84, 6, 35, 51,
-			50, 35, 0, 14, 3, 95, 57, 52, 80, 135, 51, 6, 118, 50, 84, 114, 0, 0, 15, 6, 216, 181, 216, 173, 216, 170, 93, 114, 108, 6,
-			35, 47, 0, 15, 3, 95, 57, 55, 89, 35, 47, 12, 6, 118, 50, 84, 114, 0, 0, 17, 8, 217, 136, 216, 167, 216, 177, 216, 171, 84,
-			6, 118, 51, 113, 89, 0, 25, 10, 217, 133, 216, 168, 219, 140, 217, 134, 219, 129, 65, 4, 122, 71, 35, 112, 38, 6, 35, 50, 4, 35,
-			0, 14, 3, 95, 57, 54, 143, 113, 57, 6, 118, 50, 84, 114, 0, 0, 0, 0, 13, 6, 216, 168, 216, 175, 218, 190, 71, 6, 122, 138,
-			0, 0, 20, 8, 217, 133, 216, 173, 217, 133, 216, 175, 65, 4, 122, 108, 35, 65, 6, 35, 72, 0, 0, 0, 0, 0, 0, 0, 14, 6,
-			219, 129, 217, 132, 216, 167, 108, 6, 113, 55, 118, 0, 0, 0, 0, 0, 19, 8, 217, 133, 216, 181, 217, 134, 217, 129, 65, 122, 93, 6,
-			35, 50, 113, 83, 0, 0, 0, 23, 10, 217, 133, 216, 174, 216, 170, 217, 132, 217, 129, 65, 4, 122, 101, 47, 6, 35, 55, 113, 83, 0,
-			0, 12, 4, 216, 172, 217, 134, 79, 6, 113, 50, 0, 72, 0, 0, 15, 6, 216, 168, 219, 129, 216, 170, 71, 6, 35, 108, 122, 47, 0,
-			0, 15, 6, 217, 133, 217, 134, 217, 185, 65, 6, 113, 50, 113, 139, 0, 0, 26, 12, 217, 133, 216, 175, 216, 167, 217, 129, 216, 185, 216,
-			170, 65, 4, 122, 72, 118, 83, 113, 38, 6, 35, 47, 0, 23, 10, 217, 133, 216, 179, 216, 170, 217, 130, 217, 132, 65, 4, 122, 89, 47,
-			6, 35, 104, 113, 55, 0, 0, 17, 8, 217, 129, 216, 177, 217, 134, 217, 185, 83, 51, 6, 35, 50, 139, 0, 0, 0, 15, 6, 216, 168,
-			219, 129, 216, 177, 71, 35, 108, 6, 35, 51, 0, 0, 0, 21, 10, 216, 168, 216, 177, 216, 185, 218, 169, 216, 179, 71, 4, 35, 51, 6,
-			35, 49, 89, 0, 0, 0, 13, 6, 218, 169, 217, 132, 218, 169, 49, 55, 113, 49, 0, 16, 8, 217, 129, 217, 136, 216, 177, 216, 179, 83,
-			6, 119, 51, 89, 0, 0, 0, 0, 0, 0, 17, 8, 217, 130, 219, 140, 217, 133, 216, 170, 104, 37, 65, 6, 35, 47, 0, 16, 8, 216,
-			179, 217, 134, 218, 175, 218, 190, 89, 6, 113, 50, 146, 0, 0, 0, 0, 0, 0, 21, 10, 217, 133, 219, 140, 217, 185, 217, 134, 218, 175,
-			65, 6, 112, 139, 6, 113, 50, 81, 0, 0, 0, 18, 8, 216, 179, 216, 177, 216, 174, 219, 140, 89, 6, 122, 51, 101, 4, 112, 0, 0,
-			14, 6, 218, 175, 217, 134, 216, 167, 81, 6, 122, 50, 118, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 217, 133, 217, 132, 65, 6, 113,
-			55, 0, 0, 0, 17, 8, 217, 132, 219, 140, 218, 169, 217, 134, 55, 6, 114, 49, 113, 50, 0, 13, 6, 217, 129, 216, 185, 217, 132, 83,
-			6, 114, 55, 0, 0, 12, 4, 216, 172, 216, 179, 79, 6, 113, 89, 0, 72, 0, 16, 8, 218, 175, 217, 136, 217, 134, 216, 172, 81, 6,
-			123, 50, 79, 0, 0, 22, 10, 217, 129, 218, 169, 216, 179, 217, 134, 218, 175, 83, 4, 113, 49, 89, 6, 113, 50, 81, 0, 21, 10, 217,
-			133, 216, 185, 216, 170, 217, 130, 216, 175, 65, 121, 47, 6, 35, 104, 113, 72, 0, 0, 0, 0, 0, 0, 22, 10, 216, 172, 216, 179, 216,
-			170, 216, 172, 217, 136, 79, 6, 122, 89, 47, 4, 122, 79, 123, 0, 0, 13, 3, 239, 174, 168, 143, 119, 47, 112, 15, 108, 114, 0, 0,
-			12, 4, 95, 48, 77, 52, 6, 35, 51, 35, 71, 0, 0, 13, 4, 95, 48, 77, 53, 6, 145, 35, 51, 35, 71, 0, 0, 11, 4, 95,
-			48, 77, 50, 55, 6, 118, 145, 0, 0, 15, 6, 216, 180, 216, 175, 219, 129, 91, 6, 122, 72, 4, 35, 0, 13, 4, 95, 48, 77, 51,
-			49, 35, 51, 6, 119, 51, 0, 0, 0, 19, 8, 217, 190, 216, 168, 217, 132, 218, 169, 48, 6, 35, 71, 55, 4, 113, 49, 0, 13, 4,
-			95, 48, 77, 49, 108, 35, 88, 6, 118, 51, 0, 0, 0, 0, 0, 19, 8, 216, 168, 217, 132, 218, 169, 219, 129, 71, 4, 35, 55, 49,
-			6, 114, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 8, 217, 133, 219, 129, 217, 132, 218, 169, 65, 6, 122, 108,
-			55, 113, 49, 0, 0, 0, 0, 21, 10, 217, 190, 216, 177, 216, 167, 217, 133, 217, 134, 48, 4, 122, 51, 6, 35, 65, 50, 0, 20, 8,
-			217, 133, 218, 169, 217, 133, 217, 132, 65, 4, 122, 49, 35, 65, 6, 35, 55, 0, 0, 0, 23, 10, 217, 133, 216, 180, 216, 170, 217, 133,
-			217, 132, 65, 4, 122, 91, 47, 6, 35, 65, 113, 55, 0, 0, 23, 12, 216, 162, 216, 166, 219, 140, 216, 179, 217, 134, 218, 175, 4, 118,
-			37, 89, 6, 113, 50, 81, 0, 0, 0, 0, 0, 14, 6, 216, 176, 218, 169, 216, 177, 86, 6, 113, 49, 51, 0, 0, 17, 8, 216, 185,
-			217, 132, 217, 133, 219, 140, 6, 113, 55, 65, 4, 112, 0, 18, 8, 217, 133, 217, 132, 218, 169, 219, 140, 65, 6, 122, 55, 49, 4, 112,
-			0, 15, 6, 219, 129, 217, 133, 216, 170, 108, 113, 65, 6, 35, 47, 0, 15, 6, 216, 180, 216, 175, 216, 170, 91, 113, 72, 6, 35, 47,
-			0, 0, 0, 0, 0, 0, 0, 26, 12, 217, 133, 217, 134, 216, 167, 216, 179, 216, 168, 216, 170, 65, 4, 122, 50, 118, 89, 113, 71, 6,
-			35, 47, 0, 0, 0, 0, 24, 12, 217, 133, 216, 180, 216, 170, 216, 177, 218, 169, 219, 129, 65, 122, 91, 47, 6, 35, 51, 49, 35, 0,
-			0, 0, 27, 12, 217, 190, 216, 177, 216, 170, 216, 180, 216, 175, 216, 175, 48, 4, 122, 51, 47, 35, 91, 6, 35, 72, 122, 72, 0, 0,
-			0, 18, 8, 218, 169, 216, 177, 218, 169, 217, 185, 49, 51, 113, 49, 4, 113, 139, 0, 0, 7, 132, 217, 134, 219, 146, 72, 0, 0, 0,
-			0, 17, 8, 216, 170, 216, 185, 217, 132, 217, 130, 47, 6, 118, 55, 122, 104, 0, 0, 0, 20, 8, 217, 133, 216, 177, 218, 169, 216, 168,
-			65, 4, 122, 51, 35, 49, 6, 35, 71, 0, 0, 0, 0, 0, 27, 12, 217, 133, 216, 179, 216, 170, 217, 130, 216, 168, 217, 132, 65, 4,
-			122, 89, 47, 6, 35, 104, 71, 4, 113, 55, 0, 0, 0, 0, 18, 8, 217, 132, 217, 134, 218, 169, 216, 179, 55, 6, 113, 50, 49, 4,
-			89, 0, 0, 23, 10, 216, 179, 216, 177, 217, 136, 216, 179, 216, 178, 89, 6, 35, 51, 84, 113, 89, 4, 113, 88, 0, 0, 19, 8, 217,
-			133, 216, 185, 217, 133, 216, 177, 65, 4, 121, 35, 65, 6, 35, 51, 0, 0, 0, 15, 6, 216, 178, 219, 129, 216, 177, 88, 114, 108, 6,
-			114, 51, 0, 0, 17, 8, 216, 167, 216, 177, 216, 175, 217, 136, 6, 122, 51, 72, 4, 123, 0, 0, 10, 4, 217, 134, 219, 129, 50, 6,
-			35, 0, 0, 0, 0, 19, 8, 216, 170, 216, 173, 217, 129, 216, 184, 47, 35, 108, 6, 35, 83, 122, 92, 0, 0, 27, 14, 218, 169, 217,
-			133, 217, 190, 217, 132, 219, 140, 218, 169, 216, 179, 49, 4, 35, 65, 48, 55, 6, 114, 49, 89, 0, 0, 0, 0, 22, 10, 216, 183, 216,
-			168, 219, 140, 216, 185, 216, 170, 47, 4, 35, 71, 112, 38, 6, 35, 47, 0, 0, 17, 8, 219, 129, 217, 129, 216, 170, 219, 129, 108, 6,
-			35, 83, 47, 35, 0, 24, 12, 217, 133, 216, 170, 216, 185, 217, 132, 217, 130, 219, 129, 65, 122, 47, 6, 118, 55, 113, 104, 35, 0, 0,
-			0, 0, 0, 0, 0, 0, 22, 12, 218, 175, 218, 190, 216, 177, 219, 140, 217, 132, 217, 136, 146, 35, 51, 6, 114, 55, 123, 0, 0, 0,
-			0, 0, 21, 12, 216, 167, 217, 185, 218, 190, 216, 167, 217, 134, 219, 140, 122, 141, 6, 118, 50, 112, 0, 22, 10, 216, 180, 218, 169, 216,
-			167, 219, 140, 216, 170, 91, 4, 113, 49, 118, 57, 6, 35, 47, 0, 0, 0, 21, 12, 216, 167, 217, 185, 218, 190, 216, 167, 217, 134, 219,
-			146, 122, 141, 6, 118, 50, 114, 0, 0, 0, 0, 0, 19, 8, 217, 133, 216, 177, 218, 169, 216, 178, 65, 4, 35, 51, 49, 6, 35, 88,
-			0, 0, 15, 6, 216, 179, 217, 129, 216, 177, 89, 35, 83, 6, 35, 51, 0, 0, 0, 0, 14, 6, 216, 183, 216, 168, 219, 140, 47, 6,
-			113, 71, 112, 0, 0, 0, 0, 22, 10, 216, 175, 216, 179, 216, 170, 216, 174, 216, 183, 72, 4, 35, 89, 47, 101, 6, 35, 47, 0, 0,
-			21, 10, 217, 190, 219, 140, 216, 180, 218, 169, 216, 180, 48, 4, 114, 91, 49, 6, 35, 91, 0, 15, 8, 216, 162, 217, 134, 218, 169, 218,
-			190, 6, 118, 50, 145, 0, 0, 20, 8, 217, 133, 216, 171, 217, 132, 216, 171, 65, 4, 122, 89, 35, 55, 6, 35, 89, 0, 0, 22, 10,
-			216, 177, 217, 136, 216, 167, 219, 140, 216, 170, 51, 4, 113, 84, 118, 57, 6, 35, 47, 0, 0, 16, 8, 216, 179, 216, 167, 217, 133, 216,
-			185, 89, 6, 118, 65, 114, 0, 0, 0, 21, 10, 218, 175, 216, 176, 216, 180, 216, 170, 219, 129, 81, 122, 86, 6, 35, 91, 47, 35, 0,
-			0, 0, 0, 0, 0, 0, 0, 22, 10, 218, 175, 217, 129, 216, 170, 218, 175, 217, 136, 81, 6, 122, 83, 47, 4, 122, 81, 123, 0, 10,
-			4, 216, 167, 217, 134, 113, 50, 0, 72, 0, 0, 25, 12, 216, 167, 217, 132, 217, 133, 216, 175, 216, 170, 219, 140, 4, 122, 55, 65, 122,
-			72, 6, 35, 47, 112, 0, 0, 0, 0, 21, 12, 216, 167, 217, 185, 218, 190, 216, 167, 217, 134, 216, 167, 122, 141, 6, 118, 50, 118, 0,
-			0, 21, 10, 217, 129, 217, 130, 216, 175, 216, 167, 217, 134, 83, 4, 122, 104, 72, 6, 118, 50, 0, 0, 0, 23, 10, 217, 133, 217, 134,
-			216, 170, 216, 174, 216, 168, 65, 4, 122, 50, 47, 6, 35, 101, 13, 71, 0, 17, 8, 217, 133, 216, 172, 218, 190, 219, 146, 65, 6, 122,
-			144, 114, 0, 72, 0, 0, 14, 6, 216, 177, 217, 134, 216, 178, 51, 6, 35, 50, 88, 0, 0, 0, 5, 131, 239, 187, 191, 0, 0, 0,
-			0, 0, 23, 10, 218, 169, 217, 133, 216, 180, 217, 134, 216, 177, 49, 4, 35, 65, 113, 91, 50, 6, 35, 51, 0, 0, 0, 0, 0, 25,
-			12, 217, 129, 216, 183, 216, 177, 216, 170, 216, 167, 217, 139, 83, 4, 113, 47, 51, 35, 47, 6, 35, 50, 0, 0, 18, 10, 216, 168, 218,
-			190, 216, 167, 217, 134, 216, 170, 137, 6, 118, 50, 47, 0, 0, 0, 19, 8, 217, 134, 216, 179, 216, 168, 216, 170, 50, 4, 113, 89, 71,
-			6, 35, 47, 0, 0, 0, 18, 8, 216, 181, 216, 173, 216, 170, 217, 144, 93, 114, 108, 6, 35, 47, 114, 0, 0, 21, 10, 217, 133, 217,
-			134, 216, 185, 217, 130, 216, 175, 65, 122, 50, 6, 118, 104, 113, 72, 0, 0, 0, 0, 0, 16, 8, 217, 190, 216, 177, 217, 134, 217, 185,
-			48, 51, 113, 50, 139, 0, 0, 0, 0, 15, 6, 216, 172, 217, 134, 216, 170, 79, 35, 50, 6, 35, 47, 0, 0, 0, 19, 8, 217, 133,
-			216, 170, 217, 129, 217, 130, 65, 122, 47, 6, 35, 83, 113, 104, 0, 0, 0, 0, 0, 17, 8, 216, 168, 216, 167, 216, 183, 217, 134, 71,
-			6, 118, 47, 113, 50, 0, 18, 8, 216, 167, 217, 132, 216, 173, 217, 130, 4, 122, 55, 108, 6, 35, 104, 0, 24, 12, 217, 190, 219, 140,
-			216, 180, 216, 177, 217, 129, 216, 170, 48, 4, 114, 91, 51, 6, 35, 83, 47, 0, 0, 0, 0, 0, 23, 10, 216, 170, 216, 179, 217, 132,
-			216, 179, 217, 132, 47, 35, 89, 6, 35, 55, 89, 4, 122, 55, 0, 0, 0, 0, 19, 8, 216, 175, 217, 129, 216, 170, 216, 177, 72, 4,
-			35, 83, 47, 6, 35, 51, 0, 0, 0, 13, 6, 216, 180, 216, 185, 216, 177, 91, 6, 114, 51, 0, 0, 0, 0, 20, 10, 216, 174, 216,
-			181, 217, 136, 216, 181, 219, 140, 101, 122, 93, 6, 123, 93, 112, 0, 0, 0, 26, 12, 216, 168, 216, 177, 216, 183, 216, 177, 217, 129, 219,
-			140, 71, 4, 35, 51, 47, 6, 35, 51, 83, 4, 112, 0, 0, 18, 8, 216, 181, 217, 129, 216, 173, 219, 129, 93, 6, 35, 83, 108, 4,
-			118, 0, 0, 0, 0, 0, 20, 10, 217, 190, 217, 136, 217, 132, 217, 134, 218, 175, 48, 119, 55, 6, 113, 50, 81, 0, 0, 0, 0, 0,
-			0, 0, 0, 14, 6, 218, 134, 218, 169, 219, 146, 80, 6, 122, 49, 114, 0, 11, 4, 216, 183, 216, 168, 47, 6, 113, 71, 0, 0, 0,
-			19, 8, 217, 130, 216, 179, 217, 133, 216, 170, 104, 4, 113, 89, 65, 6, 35, 47, 0, 16, 8, 216, 175, 217, 136, 216, 179, 216, 170, 72,
-			6, 119, 89, 47, 0, 0, 0, 0, 0, 27, 14, 216, 167, 217, 134, 217, 129, 216, 177, 216, 167, 216, 175, 219, 140, 4, 113, 50, 83, 113,
-			51, 6, 118, 72, 112, 0, 0, 0, 15, 6, 217, 133, 216, 173, 216, 182, 65, 6, 116, 108, 116, 88, 0, 0, 0, 0, 10, 4, 216, 167,
-			216, 179, 113, 89, 0, 72, 0, 0, 0, 0, 0, 0, 17, 8, 216, 184, 216, 167, 219, 129, 216, 177, 92, 6, 118, 108, 113, 51, 0, 0,
-			27, 14, 216, 167, 216, 173, 216, 170, 216, 172, 216, 167, 216, 172, 219, 140, 6, 114, 108, 47, 114, 79, 4, 118, 79, 112, 0, 0, 0, 0,
-			17, 8, 217, 129, 216, 177, 217, 130, 219, 129, 83, 6, 113, 51, 104, 35, 0, 0, 23, 10, 217, 133, 216, 177, 216, 170, 218, 169, 216, 168,
-			65, 4, 122, 51, 47, 6, 35, 49, 113, 71, 0, 0, 22, 10, 217, 133, 217, 130, 216, 177, 216, 177, 219, 129, 65, 122, 104, 6, 35, 51,
-			113, 51, 35, 0, 0, 0, 17, 8, 216, 177, 216, 180, 216, 170, 219, 129, 51, 6, 113, 91, 47, 35, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 17, 8, 216, 179, 216, 167, 216, 168, 217, 130, 89, 6, 118, 71, 113, 104, 0, 0, 0, 17, 8, 217, 130, 216, 167, 216, 168, 217,
-			132, 104, 6, 118, 71, 113, 55, 0, 0, 0, 0, 0, 15, 6, 216, 168, 216, 172, 216, 178, 71, 6, 35, 79, 122, 88, 0, 21, 10, 217,
-			133, 216, 183, 216, 167, 216, 168, 217, 130, 65, 122, 47, 6, 118, 71, 113, 104, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 217, 185, 219,
-			140, 218, 169, 216, 179, 139, 6, 114, 49, 89, 0, 15, 6, 218, 175, 219, 129, 216, 177, 81, 119, 108, 6, 35, 51, 0, 23, 10, 217, 133,
-			217, 134, 216, 173, 216, 181, 216, 177, 65, 4, 122, 50, 108, 6, 35, 93, 113, 51, 0, 23, 10, 217, 133, 216, 174, 216, 170, 216, 181, 216,
-			177, 65, 4, 122, 101, 47, 35, 93, 6, 35, 51, 0, 0, 14, 6, 216, 179, 216, 179, 216, 170, 89, 6, 122, 89, 47, 0, 0, 10, 4,
-			216, 168, 219, 129, 71, 6, 35, 0, 0, 19, 8, 216, 180, 216, 177, 218, 169, 216, 170, 91, 4, 113, 51, 49, 6, 35, 47, 0, 0, 0,
-			0, 0, 0, 21, 10, 217, 133, 217, 133, 216, 167, 217, 132, 218, 169, 65, 122, 65, 6, 118, 55, 113, 49, 0, 0, 0, 0, 0, 22, 10,
-			217, 133, 216, 180, 216, 170, 216, 168, 219, 129, 65, 122, 91, 47, 6, 35, 71, 4, 35, 0, 0, 9, 3, 95, 217, 136, 84, 118, 121, 0,
-			0, 0, 0, 11, 4, 216, 168, 216, 170, 71, 6, 122, 47, 0, 0, 11, 4, 219, 129, 217, 133, 108, 35, 65, 0, 72, 0, 0, 0, 17,
-			8, 216, 173, 217, 130, 217, 136, 217, 130, 108, 122, 104, 6, 123, 104, 0, 11, 4, 219, 129, 219, 146, 108, 6, 116, 0, 72, 0, 16, 8,
-			216, 168, 219, 140, 217, 134, 218, 169, 71, 6, 114, 50, 49, 0, 0, 0, 0, 0, 0, 19, 8, 216, 170, 216, 173, 217, 133, 217, 132, 47,
-			35, 108, 6, 35, 65, 122, 55, 0, 0, 0, 0, 0, 27, 4, 217, 129, 219, 140, 83, 4, 113, 55, 108, 6, 118, 55, 0, 81, 216, 167,
-			217, 132, 216, 173, 216, 167, 217, 132, 32, 0, 0, 16, 8, 217, 133, 216, 167, 216, 177, 218, 134, 65, 6, 118, 51, 80, 0, 0, 17, 8,
-			216, 174, 216, 167, 217, 132, 216, 181, 101, 6, 118, 55, 113, 93, 0, 0, 15, 6, 217, 130, 217, 132, 216, 170, 104, 113, 55, 6, 35, 47,
-			0, 0, 0, 14, 6, 216, 173, 216, 178, 216, 168, 108, 6, 113, 88, 71, 0, 0, 16, 8, 216, 185, 216, 177, 216, 181, 219, 129, 6, 35,
-			51, 93, 35, 0, 16, 8, 216, 185, 217, 133, 216, 175, 219, 129, 6, 122, 65, 72, 35, 0, 0, 0, 0, 26, 12, 217, 133, 217, 133, 216,
-			167, 216, 171, 217, 132, 216, 170, 65, 4, 122, 65, 118, 89, 113, 55, 6, 35, 47, 0, 0, 21, 10, 217, 134, 216, 167, 217, 133, 216, 178,
-			216, 175, 50, 4, 118, 65, 88, 6, 35, 72, 0, 15, 3, 95, 216, 164, 84, 118, 121, 107, 6, 35, 65, 88, 35, 0, 0, 0, 19, 10,
-			216, 176, 216, 177, 216, 167, 216, 166, 216, 185, 86, 35, 51, 6, 118, 114, 0, 0, 0, 9, 2, 95, 51, 47, 6, 112, 50, 0, 0, 8,
-			2, 95, 50, 6, 72, 119, 0, 0, 8, 2, 95, 49, 6, 114, 49, 0, 0, 11, 2, 95, 48, 89, 6, 113, 83, 35, 51, 0, 0, 14,
-			6, 216, 185, 219, 129, 216, 175, 6, 116, 108, 116, 72, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 9, 2, 95, 54, 143, 6, 36,
-			107, 0, 0, 10, 2, 95, 53, 48, 6, 118, 68, 80, 0, 0, 9, 2, 95, 52, 80, 6, 118, 51, 0, 0, 21, 10, 217, 133, 216, 170,
-			216, 185, 216, 175, 216, 175, 65, 122, 47, 6, 118, 72, 113, 72, 0, 17, 8, 216, 170, 216, 167, 219, 129, 217, 133, 47, 118, 108, 6, 35,
-			65, 0, 14, 6, 216, 172, 217, 132, 216, 175, 79, 6, 35, 55, 72, 0, 0, 0, 8, 2, 95, 57, 50, 6, 135, 0, 0, 8, 2, 95,
-			56, 6, 118, 25, 0, 0, 0, 0, 29, 14, 216, 174, 219, 140, 216, 177, 217, 133, 217, 130, 216, 175, 217, 133, 101, 4, 114, 51, 65, 4,
-			35, 104, 72, 6, 35, 65, 0, 0, 0, 0, 0, 0, 0, 17, 8, 218, 169, 216, 175, 218, 190, 216, 177, 49, 113, 138, 6, 35, 51, 0,
-			24, 12, 216, 183, 216, 167, 217, 130, 216, 170, 217, 136, 216, 177, 47, 118, 104, 6, 35, 47, 84, 35, 51, 0, 14, 6, 216, 168, 216, 173,
-			216, 171, 71, 116, 108, 116, 89, 0, 0, 14, 6, 217, 136, 217, 130, 216, 170, 84, 6, 35, 104, 47, 0, 0, 21, 10, 216, 170, 217, 134,
-			216, 167, 216, 184, 216, 177, 47, 35, 50, 6, 118, 92, 122, 51, 0, 23, 10, 217, 133, 217, 134, 216, 170, 216, 184, 216, 177, 65, 4, 122,
-			50, 47, 6, 35, 92, 113, 51, 0, 0, 0, 12, 4, 218, 169, 219, 129, 49, 6, 114, 108, 0, 72, 0, 0, 7, 132, 218, 169, 216, 167,
-			72, 0, 0, 0, 7, 132, 218, 169, 219, 140, 72, 0, 29, 14, 216, 168, 216, 180, 216, 177, 216, 183, 219, 140, 218, 169, 219, 129, 71, 4,
-			35, 91, 35, 51, 47, 114, 49, 6, 114, 108, 0, 0, 0, 0, 8, 2, 217, 134, 50, 123, 50, 0, 0, 8, 2, 217, 133, 65, 112, 65,
-			0, 0, 8, 2, 217, 132, 55, 118, 65, 0, 0, 0, 8, 2, 217, 130, 104, 118, 83, 0, 0, 13, 6, 218, 134, 219, 140, 217, 129, 80,
-			6, 112, 83, 0, 7, 2, 217, 129, 83, 114, 0, 0, 7, 132, 218, 169, 219, 146, 72, 0, 8, 2, 217, 143, 48, 114, 91, 0, 0, 17,
-			8, 216, 183, 217, 136, 219, 140, 217, 132, 47, 35, 84, 6, 112, 55, 0, 21, 10, 217, 133, 216, 170, 216, 185, 217, 132, 217, 130, 65, 122,
-			47, 6, 118, 55, 113, 104, 0, 10, 2, 217, 142, 88, 13, 71, 13, 51, 0, 7, 2, 218, 134, 80, 114, 0, 0, 17, 8, 216, 168, 216,
-			167, 216, 185, 216, 171, 71, 6, 118, 57, 113, 89, 0, 17, 8, 217, 133, 217, 136, 216, 167, 216, 175, 65, 35, 84, 6, 118, 72, 0, 0,
-			19, 10, 216, 167, 217, 190, 216, 177, 219, 140, 217, 132, 35, 48, 51, 6, 114, 55, 0, 17, 8, 216, 170, 216, 172, 218, 190, 219, 146, 47,
-			6, 122, 144, 114, 0, 72, 0, 23, 10, 217, 133, 217, 134, 217, 129, 216, 177, 216, 175, 65, 4, 122, 50, 83, 6, 35, 51, 113, 72, 0,
-			14, 2, 217, 139, 72, 6, 119, 88, 35, 71, 6, 35, 51, 0, 0, 0, 12, 4, 218, 169, 216, 179, 49, 6, 113, 89, 0, 72, 0, 6,
-			2, 217, 136, 119, 0, 26, 12, 217, 133, 216, 168, 216, 181, 216, 177, 219, 140, 217, 134, 65, 4, 122, 71, 35, 93, 113, 51, 6, 112, 50,
-			0, 0, 0, 0, 0, 14, 6, 217, 133, 217, 132, 219, 140, 65, 6, 113, 55, 112, 0, 0, 0, 16, 8, 218, 134, 219, 140, 217, 134, 219,
-			140, 80, 6, 112, 50, 112, 0, 18, 8, 216, 162, 216, 166, 216, 177, 216, 180, 6, 118, 113, 51, 4, 113, 91, 0, 11, 2, 217, 146, 89,
-			122, 49, 6, 123, 50, 0, 13, 2, 219, 130, 108, 114, 107, 6, 35, 65, 88, 35, 0, 0, 13, 2, 217, 145, 47, 4, 35, 91, 72, 6,
-			112, 72, 0, 7, 2, 219, 129, 108, 114, 0, 0, 21, 10, 216, 179, 217, 129, 216, 167, 216, 177, 216, 180, 89, 113, 83, 6, 118, 51, 113,
-			91, 0, 8, 2, 217, 144, 88, 114, 51, 0, 8, 2, 218, 136, 140, 118, 55, 0, 0, 21, 10, 216, 180, 217, 136, 216, 167, 219, 129, 216,
-			175, 91, 35, 84, 6, 118, 108, 113, 72, 0, 9, 2, 216, 167, 35, 55, 113, 83, 0, 0, 15, 6, 217, 133, 216, 175, 216, 170, 65, 122,
-			72, 6, 35, 47, 0, 11, 2, 216, 166, 107, 6, 35, 65, 88, 35, 0, 0, 23, 10, 216, 180, 218, 169, 216, 179, 216, 170, 219, 129, 91,
-			113, 49, 6, 35, 89, 47, 13, 4, 35, 0, 0, 12, 2, 219, 140, 143, 119, 139, 112, 15, 57, 114, 0, 0, 0, 0, 11, 2, 216, 161,
-			108, 35, 65, 88, 35, 108, 0, 7, 2, 218, 145, 70, 114, 0, 0, 0, 14, 6, 217, 133, 217, 132, 216, 167, 65, 6, 113, 55, 118, 0,
-			8, 2, 216, 175, 72, 118, 55, 0, 0, 7, 2, 216, 174, 101, 114, 0, 0, 12, 2, 216, 173, 71, 35, 70, 112, 15, 108, 114, 0, 0,
-			9, 134, 216, 170, 218, 190, 219, 140, 72, 8, 2, 216, 172, 79, 112, 65, 0, 0, 7, 2, 216, 171, 89, 114, 0, 0, 13, 6, 216, 167,
-			216, 168, 217, 134, 6, 113, 71, 50, 0, 14, 6, 217, 133, 217, 132, 219, 146, 65, 6, 113, 55, 114, 0, 9, 134, 216, 170, 218, 190, 219,
-			146, 72, 12, 2, 219, 146, 71, 35, 70, 112, 15, 57, 114, 0, 7, 2, 216, 170, 47, 114, 0, 0, 0, 7, 2, 218, 152, 90, 114, 0,
-			7, 2, 216, 168, 71, 114, 0, 0, 11, 4, 216, 170, 217, 133, 47, 122, 65, 0, 72, 8, 2, 216, 183, 47, 121, 114, 0, 0, 17, 8,
-			216, 175, 216, 167, 216, 174, 217, 132, 72, 6, 118, 101, 113, 55, 0, 15, 6, 216, 179, 216, 174, 217, 134, 89, 122, 101, 6, 35, 50, 0,
-			9, 2, 216, 182, 88, 122, 118, 72, 0, 0, 9, 2, 216, 181, 89, 122, 118, 72, 0, 0, 8, 2, 216, 180, 91, 112, 50, 0, 0, 8,
-			2, 216, 179, 89, 112, 50, 0, 0, 20, 4, 216, 170, 217, 136, 47, 6, 40, 15, 50, 6, 114, 0, 81, 217, 134, 219, 146, 32, 7, 2,
-			216, 178, 88, 114, 0, 0, 7, 2, 216, 177, 51, 114, 0, 0, 14, 6, 217, 134, 216, 172, 219, 140, 50, 6, 113, 79, 112, 0, 23, 10,
-			217, 133, 217, 134, 216, 170, 217, 130, 217, 132, 65, 4, 122, 50, 47, 6, 35, 104, 113, 55, 0, 8, 2, 216, 176, 88, 118, 55, 0, 0,
-			20, 8, 217, 133, 218, 169, 216, 177, 216, 177, 65, 4, 122, 49, 35, 51, 6, 35, 51, 0, 8, 2, 218, 175, 81, 118, 83, 0, 0, 0,
-			16, 8, 216, 168, 216, 167, 218, 169, 216, 179, 71, 6, 118, 49, 89, 0, 20, 8, 217, 133, 217, 130, 216, 175, 216, 179, 65, 4, 122, 104,
-			35, 72, 6, 35, 89, 0, 0, 0, 0, 18, 8, 216, 168, 216, 172, 217, 132, 219, 140, 71, 6, 113, 79, 55, 4, 112, 0, 20, 10, 216,
-			167, 217, 134, 217, 134, 218, 175, 216, 178, 113, 50, 6, 113, 50, 81, 88, 0, 8, 2, 216, 186, 100, 134, 50, 0, 0, 21, 10, 216, 168,
-			216, 184, 216, 167, 219, 129, 216, 177, 71, 35, 92, 6, 118, 108, 113, 51, 0, 8, 2, 218, 169, 49, 118, 83, 0, 7, 2, 216, 185, 134,
-			50, 0, 0, 19, 2, 217, 176, 4, 35, 55, 113, 83, 65, 35, 104, 89, 6, 123, 51, 4, 35, 0, 8, 2, 216, 184, 88, 121, 114, 0,
-			0, 17, 8, 216, 173, 217, 133, 217, 132, 219, 129, 108, 6, 35, 65, 55, 35, 0, 0, 7, 2, 217, 190, 48, 114, 0, 0, 0, 0, 15,
-			6, 218, 175, 219, 140, 216, 167, 81, 6, 35, 57, 118, 0, 72, 0, 0, 23, 10, 217, 133, 216, 177, 216, 170, 216, 168, 219, 129, 65, 4,
-			35, 51, 47, 6, 35, 71, 4, 35, 0, 7, 2, 217, 185, 139, 114, 0, 0, 26, 12, 216, 180, 217, 133, 217, 136, 217, 132, 219, 140, 216,
-			170, 91, 4, 122, 65, 123, 55, 112, 38, 6, 35, 47, 0, 0, 9, 134, 216, 170, 218, 190, 216, 167, 72, 0, 16, 2, 218, 190, 72, 121,
-			15, 80, 35, 91, 65, 112, 15, 108, 114, 0, 0, 0, 0, 0, 15, 6, 218, 169, 216, 179, 219, 146, 49, 6, 113, 89, 114, 0, 72, 10,
-			2, 218, 186, 146, 122, 50, 50, 35, 0, 0, 14, 6, 217, 133, 217, 132, 218, 169, 65, 6, 122, 55, 49, 0, 0, 0, 17, 8, 217, 129,
-			216, 167, 216, 170, 216, 173, 83, 6, 118, 47, 116, 108, 0, 0, 20, 10, 216, 185, 219, 129, 216, 175, 217, 136, 218, 186, 4, 119, 108, 72,
-			6, 119, 50, 0, 21, 10, 216, 180, 216, 175, 218, 175, 216, 167, 217, 134, 91, 4, 122, 72, 81, 6, 118, 50, 0, 0, 21, 10, 216, 170,
-			216, 173, 216, 177, 219, 140, 218, 169, 47, 4, 114, 108, 51, 6, 112, 49, 0, 14, 6, 216, 172, 216, 177, 217, 133, 79, 6, 122, 51, 65,
-			0, 19, 8, 218, 169, 217, 132, 217, 134, 218, 175, 49, 6, 113, 55, 113, 50, 4, 81, 0, 0, 23, 10, 217, 133, 217, 134, 217, 130, 217,
-			132, 216, 168, 65, 4, 122, 50, 104, 6, 35, 55, 113, 71, 0, 0, 20, 10, 216, 168, 219, 140, 217, 185, 217, 134, 218, 175, 71, 114, 139,
-			6, 113, 50, 81, 0, 0, 0, 0, 21, 10, 217, 134, 219, 140, 216, 180, 217, 134, 217, 132, 50, 4, 116, 91, 50, 6, 35, 55, 0, 25,
-			12, 216, 175, 216, 177, 216, 172, 217, 134, 217, 136, 218, 186, 72, 4, 35, 51, 79, 35, 50, 6, 119, 50, 0, 0, 0, 0, 31, 14, 216,
-			162, 216, 166, 218, 136, 219, 140, 217, 132, 216, 178, 217, 133, 6, 118, 113, 140, 4, 112, 38, 35, 55, 4, 113, 88, 35, 65, 0, 0, 14,
-			6, 218, 169, 216, 179, 219, 140, 49, 6, 113, 89, 112, 0, 0, 18, 8, 216, 167, 216, 174, 216, 170, 216, 177, 4, 35, 101, 47, 6, 35,
-			51, 0, 0, 14, 6, 217, 133, 216, 172, 218, 190, 65, 6, 122, 144, 0, 72, 0, 0, 21, 10, 216, 167, 217, 134, 218, 175, 217, 132, 216,
-			180, 6, 113, 50, 81, 55, 4, 113, 91, 0, 15, 6, 218, 169, 216, 170, 216, 168, 49, 6, 122, 47, 122, 71, 0, 0, 0, 23, 12, 217,
-			133, 216, 181, 217, 134, 217, 136, 216, 185, 219, 140, 65, 4, 35, 93, 50, 6, 123, 37, 0, 23, 12, 217, 133, 216, 181, 217, 134, 217, 136,
-			216, 185, 219, 140, 65, 4, 35, 93, 50, 6, 123, 37, 0, 0, 0, 19, 8, 217, 133, 216, 171, 216, 168, 216, 170, 65, 4, 122, 89, 71,
-			6, 35, 47, 0, 0, 21, 10, 217, 133, 216, 167, 217, 134, 217, 134, 216, 175, 65, 118, 50, 6, 113, 50, 72, 0, 65, 20, 10, 217, 136,
-			217, 136, 217, 185, 217, 134, 218, 175, 84, 119, 139, 6, 113, 50, 81, 0, 0, 0, 25, 12, 217, 129, 216, 167, 216, 166, 216, 177, 217, 134,
-			218, 175, 83, 6, 118, 57, 113, 51, 4, 113, 50, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 10, 217, 134, 217, 130,
-			216, 179, 216, 167, 217, 134, 50, 4, 122, 104, 89, 6, 118, 50, 0, 20, 10, 216, 185, 217, 133, 216, 177, 216, 167, 217, 134, 4, 113, 65,
-			51, 6, 118, 50, 0, 0, 0, 21, 10, 216, 167, 216, 170, 216, 181, 216, 167, 217, 132, 4, 113, 47, 113, 93, 6, 118, 55, 0, 0, 17,
-			8, 216, 174, 217, 132, 216, 167, 217, 129, 101, 113, 55, 6, 118, 83, 0, 0, 0, 13, 6, 216, 175, 217, 136, 216, 177, 72, 6, 123, 51,
-			0, 0, 17, 8, 218, 175, 216, 177, 219, 140, 216, 178, 81, 122, 51, 6, 114, 88, 0, 23, 10, 217, 133, 216, 179, 217, 132, 216, 179, 217,
-			132, 65, 4, 122, 89, 35, 55, 89, 6, 35, 55, 0, 0, 0, 0, 0, 0, 17, 8, 216, 167, 217, 134, 217, 136, 216, 177, 6, 35, 50,
-			84, 35, 51, 0, 11, 4, 216, 179, 219, 129, 89, 6, 116, 108, 0, 0, 14, 6, 218, 175, 216, 180, 216, 170, 81, 6, 35, 91, 47, 0,
-			0, 0, 0, 0, 0, 0, 20, 8, 217, 133, 216, 173, 216, 168, 216, 170, 65, 4, 122, 108, 35, 71, 6, 35, 47, 0, 0, 23, 12, 217,
-			133, 216, 172, 217, 133, 217, 136, 216, 185, 219, 129, 65, 4, 35, 79, 65, 6, 123, 35, 0, 0, 17, 8, 216, 177, 216, 167, 216, 186, 216,
-			168, 51, 6, 118, 100, 113, 71, 0, 0, 0, 0, 0, 0, 0, 7, 132, 216, 179, 219, 146, 72, 0, 0, 13, 6, 216, 185, 216, 180, 217,
-			130, 6, 113, 91, 104, 0, 0, 0, 0, 18, 10, 216, 167, 219, 140, 216, 172, 216, 167, 216, 175, 37, 79, 6, 118, 72, 0, 17, 8, 216,
-			173, 216, 172, 217, 136, 217, 133, 108, 122, 79, 6, 123, 65, 0, 0, 0, 24, 12, 216, 167, 217, 134, 216, 179, 216, 175, 216, 167, 216, 175,
-			4, 113, 50, 89, 113, 72, 6, 118, 72, 0, 0, 23, 12, 217, 133, 216, 172, 217, 133, 217, 136, 216, 185, 219, 146, 65, 4, 35, 79, 65,
-			6, 123, 114, 0, 21, 10, 217, 133, 217, 134, 216, 167, 216, 179, 216, 168, 65, 122, 50, 6, 118, 89, 113, 71, 0, 0, 18, 8, 216, 179,
-			216, 179, 217, 185, 217, 133, 89, 113, 89, 139, 6, 35, 65, 0, 0, 0, 0, 25, 12, 216, 170, 217, 136, 217, 130, 216, 185, 216, 167, 216,
-			170, 47, 4, 35, 84, 35, 104, 119, 6, 118, 47, 0, 0, 0, 0, 0, 0, 0, 0, 22, 10, 218, 169, 216, 177, 218, 169, 217, 185, 216,
-			177, 49, 51, 113, 49, 113, 139, 6, 35, 51, 0, 30, 14, 216, 162, 216, 166, 216, 175, 219, 140, 217, 132, 216, 179, 217, 185, 6, 118, 113,
-			140, 4, 112, 38, 35, 55, 4, 113, 89, 139, 0, 0, 19, 8, 217, 129, 216, 177, 216, 181, 216, 170, 83, 4, 122, 51, 93, 6, 35, 47,
-			0, 0, 21, 10, 216, 167, 216, 170, 216, 173, 216, 167, 216, 175, 4, 113, 47, 35, 108, 6, 118, 72, 0, 12, 4, 219, 140, 219, 129, 57,
-			6, 114, 108, 0, 72, 0, 20, 10, 216, 167, 216, 180, 216, 167, 216, 185, 216, 170, 4, 113, 91, 118, 6, 118, 47, 0, 0, 0, 0, 30,
-			6, 218, 169, 219, 140, 216, 167, 49, 6, 112, 38, 118, 15, 79, 6, 118, 114, 0, 72, 81, 216, 172, 216, 167, 216, 166, 219, 146, 32, 26,
-			6, 218, 169, 219, 140, 216, 167, 49, 57, 6, 118, 15, 108, 6, 123, 118, 0, 81, 219, 129, 217, 136, 216, 167, 32, 28, 6, 218, 169, 219,
-			140, 216, 167, 49, 6, 112, 38, 118, 15, 81, 6, 35, 57, 118, 0, 81, 218, 175, 219, 140, 216, 167, 32, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 17, 8, 216, 168, 216, 174, 217, 136, 216, 175, 71, 6, 35, 101, 122, 72, 0, 0, 17, 8, 219, 140, 219, 129, 219, 140, 218,
-			186, 57, 35, 108, 6, 112, 50, 0, 19, 8, 217, 136, 216, 173, 216, 180, 216, 170, 84, 4, 114, 108, 91, 6, 35, 47, 0, 0, 0, 14,
-			6, 218, 169, 219, 140, 218, 186, 49, 6, 112, 50, 0, 72, 15, 6, 217, 130, 217, 136, 216, 170, 104, 123, 84, 6, 35, 47, 0, 0, 0,
-			0, 0, 21, 10, 216, 167, 217, 134, 218, 190, 219, 140, 218, 186, 4, 122, 50, 108, 6, 114, 50, 0, 72, 0, 0, 0, 20, 8, 217, 133,
-			217, 130, 216, 177, 216, 177, 65, 4, 122, 104, 35, 51, 6, 35, 51, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 96, 6, 0, 0,
-			48, 0, 0, 0, 97, 6, 0, 0, 49, 0, 0, 0, 98, 6, 0, 0, 50, 0, 0, 0, 99, 6, 0, 0, 51, 0, 0, 0, 100, 6,
-			0, 0, 52, 0, 0, 0, 101, 6, 0, 0, 53, 0, 0, 0, 102, 6, 0, 0, 54, 0, 0, 0, 103, 6, 0, 0, 55, 0, 0, 0,
-			104, 6, 0, 0, 56, 0, 0, 0, 105, 6, 0, 0, 57, 0, 0, 0, 74, 6, 0, 0, 204, 6, 0, 0, 204, 6, 112, 6, 39, 6,
-			0, 0, 0, 0, 0, 0, 6, 18, 66, 217, 142, 0, 217, 144, 0, 217, 143, 0, 217, 136, 0, 219, 140, 0, 216, 185, 0, 216, 167, 0,
-			219, 146, 0, 7, 6, 18, 67, 216, 168, 0, 217, 190, 0, 216, 170, 0, 217, 185, 0, 216, 171, 0, 216, 172, 0, 218, 134, 0, 216, 173,
-			0, 216, 174, 0, 216, 175, 0, 218, 136, 0, 216, 176, 0, 216, 177, 0, 218, 145, 0, 216, 178, 0, 218, 152, 0, 216, 179, 0, 216, 180,
-			0, 216, 181, 0, 216, 182, 0, 216, 183, 0, 216, 184, 0, 216, 186, 0, 217, 129, 0, 217, 130, 0, 218, 169, 0, 218, 175, 0, 217, 132,
-			0, 217, 133, 0, 217, 134, 0, 219, 129, 0, 216, 166, 0, 7, 6, 1, 34, 0, 3, 0, 7, 6, 1, 35, 0, 216, 170, 216, 180, 3,
-			6, 118, 47, 113, 91, 0, 216, 166, 2, 18, 67, 3, 6, 118, 113, 0, 3, 118, 0, 219, 129, 216, 179, 216, 170, 3, 118, 108, 6, 113,
-			89, 47, 0, 7, 6, 1, 36, 0, 3, 0, 7, 6, 1, 37, 0, 3, 135, 0, 7, 6, 1, 39, 0, 3, 0, 7, 6, 1, 39, 0,
-			3, 0, 1, 18, 66, 2, 18, 67, 3, 6, 113, 0, 7, 6, 1, 40, 0, 8, 2, 18, 66, 3, 0, 218, 169, 216, 171, 216, 177, 3,
-			4, 35, 49, 89, 6, 35, 51, 0, 217, 129, 216, 179, 216, 177, 8, 3, 4, 35, 83, 89, 6, 35, 51, 0, 217, 130, 217, 132, 219, 140,
-			216, 170, 3, 4, 35, 104, 35, 55, 112, 38, 6, 35, 47, 0, 217, 129, 216, 170, 216, 170, 216, 167, 216, 173, 3, 4, 113, 47, 113, 47,
-			6, 118, 108, 0, 216, 170, 217, 129, 216, 167, 217, 130, 8, 3, 4, 113, 47, 113, 83, 6, 118, 104, 0, 217, 134, 217, 130, 217, 132, 216,
-			167, 216, 168, 3, 4, 113, 50, 104, 113, 55, 6, 118, 71, 0, 216, 177, 216, 170, 8, 2, 18, 67, 3, 4, 113, 51, 47, 113, 0, 217,
-			132, 216, 178, 216, 167, 217, 133, 3, 4, 113, 55, 88, 6, 118, 65, 0, 217, 133, 216, 170, 216, 173, 216, 167, 217, 134, 3, 4, 113, 65,
-			47, 113, 108, 6, 118, 50, 0, 217, 133, 218, 169, 216, 167, 217, 134, 8, 3, 4, 113, 65, 49, 6, 118, 50, 0, 217, 133, 216, 175, 216,
-			167, 216, 175, 3, 4, 113, 65, 72, 6, 118, 72, 0, 216, 172, 216, 170, 217, 133, 216, 167, 216, 185, 3, 4, 113, 79, 47, 113, 65, 6,
-			118, 0, 216, 179, 216, 170, 216, 173, 216, 181, 216, 167, 217, 132, 3, 4, 113, 89, 47, 4, 114, 108, 93, 6, 118, 55, 0, 216, 179, 216,
-			170, 216, 171, 217, 134, 3, 4, 113, 89, 47, 6, 35, 89, 50, 0, 216, 179, 216, 170, 8, 2, 18, 67, 3, 4, 113, 89, 47, 113, 0,
-			216, 179, 217, 132, 216, 167, 217, 133, 3, 4, 113, 89, 55, 6, 118, 65, 0, 216, 180, 216, 170, 219, 129, 216, 167, 216, 177, 3, 4, 113,
-			91, 47, 113, 108, 6, 118, 51, 0, 216, 181, 217, 132, 216, 167, 216, 173, 3, 4, 113, 93, 55, 6, 118, 108, 0, 216, 174, 216, 170, 8,
-			2, 18, 67, 3, 4, 113, 101, 47, 113, 0, 217, 130, 216, 170, 8, 2, 18, 67, 3, 4, 113, 104, 47, 113, 0, 217, 134, 216, 170, 219,
-			140, 216, 179, 3, 4, 122, 50, 47, 6, 112, 89, 0, 217, 134, 216, 170, 216, 167, 217, 132, 219, 140, 216, 179, 3, 4, 122, 50, 47, 118,
-			55, 6, 112, 89, 0, 217, 139, 2, 32, 14, 128, 128, 130, 3, 6, 35, 50, 0, 217, 134, 216, 175, 218, 190, 219, 140, 216, 177, 3, 6,
-			35, 50, 138, 114, 51, 0, 216, 170, 217, 134, 8, 3, 6, 113, 47, 50, 0, 217, 134, 216, 170, 8, 2, 18, 67, 3, 6, 113, 50, 47,
-			4, 35, 0, 217, 134, 216, 170, 216, 184, 8, 3, 6, 113, 50, 47, 4, 113, 92, 0, 216, 168, 216, 170, 216, 175, 216, 167, 8, 3, 6,
-			113, 71, 47, 4, 113, 72, 118, 0, 216, 185, 216, 170, 8, 3, 6, 114, 47, 113, 0, 216, 173, 8, 2, 18, 67, 3, 6, 116, 108, 0,
-			216, 170, 1, 21, 2, 32, 14, 128, 128, 130, 3, 6, 118, 47, 0, 217, 185, 218, 190, 216, 170, 8, 3, 6, 122, 141, 47, 0, 217, 185,
-			218, 190, 217, 134, 8, 3, 6, 122, 141, 50, 0, 8, 3, 35, 0, 216, 179, 217, 133, 216, 168, 217, 132, 219, 140, 8, 3, 35, 89, 6,
-			35, 65, 71, 55, 112, 0, 219, 140, 216, 177, 216, 167, 217, 134, 3, 112, 51, 6, 118, 50, 0, 219, 140, 217, 133, 216, 167, 217, 134, 8,
-			3, 112, 65, 6, 118, 50, 0, 217, 134, 216, 185, 216, 167, 217, 133, 3, 113, 50, 6, 118, 65, 0, 217, 134, 216, 179, 216, 167, 217, 134,
-			8, 3, 113, 50, 89, 6, 118, 50, 0, 216, 182, 216, 167, 217, 129, 8, 3, 113, 88, 6, 118, 83, 0, 216, 179, 216, 170, 216, 185, 217,
-			129, 3, 113, 89, 47, 6, 112, 83, 0, 219, 140, 8, 3, 114, 0, 216, 185, 217, 132, 216, 167, 217, 134, 3, 114, 55, 6, 118, 50, 0,
-			216, 185, 216, 178, 216, 167, 216, 178, 3, 114, 88, 6, 118, 88, 0, 3, 118, 0, 219, 129, 2, 32, 3, 118, 108, 0, 216, 166, 2, 18,
-			67, 3, 118, 113, 0, 216, 170, 216, 177, 8, 3, 122, 47, 6, 35, 51, 0, 216, 170, 216, 177, 8, 2, 18, 66, 3, 122, 47, 51, 0,
-			217, 132, 216, 172, 218, 190, 8, 3, 122, 55, 6, 35, 79, 107, 0, 217, 132, 217, 185, 8, 3, 122, 55, 6, 35, 139, 0, 217, 132, 216,
-			172, 218, 190, 8, 2, 18, 66, 3, 122, 55, 79, 107, 0, 217, 132, 217, 185, 8, 2, 18, 66, 3, 122, 55, 139, 0, 217, 133, 217, 134,
-			218, 175, 8, 3, 122, 65, 6, 35, 50, 81, 0, 217, 133, 219, 140, 216, 175, 8, 3, 122, 65, 6, 112, 72, 0, 216, 168, 218, 190, 216,
-			177, 8, 3, 122, 71, 107, 6, 35, 51, 0, 216, 168, 218, 190, 216, 177, 8, 2, 18, 66, 3, 122, 71, 107, 51, 0, 216, 172, 218, 145,
-			8, 3, 122, 79, 6, 35, 70, 0, 216, 172, 218, 145, 8, 2, 18, 66, 3, 122, 79, 70, 0, 218, 134, 218, 190, 217, 132, 8, 3, 122,
-			80, 107, 6, 35, 55, 0, 218, 134, 218, 190, 217, 132, 8, 2, 18, 66, 3, 122, 80, 107, 55, 0, 216, 181, 217, 136, 217, 132, 3, 122,
-			93, 6, 123, 55, 0, 217, 185, 218, 190, 216, 167, 216, 170, 8, 3, 122, 141, 6, 118, 47, 0, 217, 136, 8, 3, 123, 0, 7, 6, 1,
-			41, 0, 2, 18, 66, 3, 71, 0, 216, 177, 216, 179, 216, 177, 3, 71, 4, 35, 51, 89, 6, 35, 51, 0, 216, 186, 216, 167, 217, 136,
-			216, 170, 3, 71, 4, 35, 100, 118, 84, 6, 35, 47, 0, 216, 173, 216, 177, 216, 167, 217, 134, 3, 71, 4, 121, 108, 51, 6, 118, 50,
-			0, 216, 166, 219, 140, 3, 71, 6, 35, 112, 0, 219, 140, 217, 136, 219, 140, 3, 71, 6, 112, 84, 112, 0, 218, 169, 218, 190, 216, 177,
-			8, 2, 18, 66, 3, 71, 6, 113, 49, 107, 51, 0, 218, 175, 218, 145, 8, 2, 18, 66, 3, 71, 6, 113, 81, 70, 0, 217, 185, 218,
-			190, 216, 167, 8, 3, 71, 6, 113, 141, 118, 0, 219, 146, 8, 2, 14, 128, 132, 130, 3, 71, 6, 114, 0, 219, 140, 217, 136, 216, 167,
-			8, 3, 71, 6, 114, 84, 118, 0, 219, 129, 8, 2, 18, 67, 3, 71, 6, 116, 108, 0, 216, 172, 218, 190, 8, 3, 71, 6, 122, 79,
-			107, 0, 216, 178, 216, 177, 218, 175, 3, 71, 6, 122, 88, 122, 51, 4, 81, 0, 217, 136, 218, 145, 218, 190, 3, 71, 6, 123, 70, 107,
-			0, 219, 140, 216, 167, 217, 134, 8, 3, 71, 35, 57, 6, 118, 50, 0, 216, 175, 217, 132, 8, 2, 18, 67, 3, 71, 35, 72, 6, 35,
-			55, 0, 217, 145, 2, 18, 66, 3, 71, 71, 0, 217, 145, 3, 71, 71, 109, 0, 218, 190, 219, 140, 218, 169, 3, 71, 107, 6, 112, 49,
-			0, 218, 190, 219, 140, 218, 175, 3, 71, 107, 6, 112, 81, 0, 218, 190, 217, 136, 218, 169, 3, 71, 107, 6, 123, 49, 0, 218, 190, 217,
-			136, 217, 132, 3, 71, 107, 6, 123, 55, 0, 3, 71, 109, 0, 218, 169, 218, 190, 216, 177, 8, 3, 71, 113, 49, 107, 6, 35, 51, 0,
-			218, 134, 218, 190, 218, 145, 8, 3, 71, 113, 80, 107, 6, 35, 70, 0, 218, 134, 218, 190, 218, 145, 8, 2, 18, 66, 3, 71, 113, 80,
-			107, 70, 0, 218, 175, 218, 145, 8, 3, 71, 113, 81, 6, 35, 70, 0, 218, 175, 216, 167, 218, 145, 3, 71, 113, 81, 6, 118, 70, 0,
-			218, 190, 2, 18, 66, 3, 137, 0, 218, 190, 3, 137, 109, 0, 7, 6, 1, 43, 0, 218, 190, 2, 18, 66, 3, 25, 0, 218, 190, 3,
-			25, 109, 0, 2, 18, 66, 3, 47, 0, 219, 140, 216, 167, 216, 177, 8, 3, 47, 4, 35, 112, 38, 6, 118, 51, 0, 216, 173, 217, 130,
-			219, 140, 217, 130, 3, 47, 4, 116, 108, 104, 6, 112, 104, 0, 216, 177, 216, 172, 217, 133, 8, 3, 47, 6, 35, 51, 79, 4, 122, 65,
-			0, 216, 172, 216, 178, 8, 3, 47, 6, 35, 79, 88, 0, 217, 136, 216, 167, 8, 3, 47, 6, 35, 84, 118, 0, 219, 140, 1, 21, 2,
-			32, 14, 128, 128, 130, 3, 47, 6, 112, 0, 219, 140, 216, 179, 216, 177, 8, 3, 47, 6, 112, 89, 51, 0, 219, 146, 1, 21, 2, 32,
-			14, 128, 128, 130, 3, 47, 6, 114, 0, 219, 129, 8, 2, 18, 67, 3, 47, 6, 116, 108, 0, 216, 167, 1, 21, 2, 32, 14, 128, 128,
-			130, 3, 47, 6, 118, 0, 217, 133, 219, 129, 8, 3, 47, 6, 122, 65, 108, 0, 216, 172, 216, 177, 216, 168, 3, 47, 35, 79, 6, 35,
-			51, 71, 0, 217, 130, 216, 177, 216, 177, 3, 47, 35, 104, 6, 35, 51, 122, 51, 0, 217, 145, 2, 18, 66, 3, 47, 47, 0, 217, 145,
-			3, 47, 47, 109, 0, 3, 47, 109, 0, 7, 6, 1, 44, 0, 2, 18, 66, 3, 89, 0, 217, 145, 2, 18, 66, 3, 89, 89, 0, 217,
-			145, 3, 89, 89, 109, 0, 3, 89, 109, 0, 7, 6, 1, 45, 0, 2, 18, 66, 3, 79, 0, 217, 136, 216, 167, 8, 3, 79, 6, 35,
-			84, 118, 0, 219, 140, 216, 170, 8, 3, 79, 6, 112, 47, 0, 217, 134, 216, 179, 8, 3, 79, 6, 113, 50, 89, 0, 219, 129, 8, 2,
-			18, 67, 3, 79, 6, 116, 108, 0, 216, 167, 217, 134, 216, 168, 3, 79, 6, 118, 50, 113, 71, 0, 217, 133, 217, 132, 8, 3, 79, 6,
-			122, 65, 55, 0, 216, 175, 216, 167, 8, 3, 79, 6, 122, 72, 118, 0, 217, 145, 2, 18, 66, 3, 79, 79, 0, 217, 145, 3, 79, 79,
-			109, 0, 3, 79, 109, 0, 218, 190, 2, 18, 66, 3, 144, 0, 218, 190, 217, 136, 217, 185, 3, 144, 6, 123, 139, 0, 218, 190, 3, 144,
-			109, 0, 7, 6, 1, 46, 0, 2, 32, 3, 6, 35, 108, 0, 4, 1, 18, 66, 2, 32, 3, 108, 0, 2, 18, 66, 0, 218, 169, 217,
-			133, 216, 177, 216, 167, 217, 134, 3, 108, 4, 122, 49, 65, 35, 51, 6, 118, 50, 0, 218, 169, 217, 136, 217, 133, 216, 170, 3, 108, 4,
-			122, 49, 123, 65, 6, 35, 47, 0, 217, 136, 216, 167, 217, 132, 8, 3, 108, 35, 84, 6, 118, 55, 0, 217, 145, 2, 18, 66, 3, 108,
-			108, 0, 217, 145, 3, 108, 108, 109, 0, 3, 108, 109, 0, 7, 6, 1, 47, 0, 4, 1, 21, 2, 216, 170, 3, 101, 0, 2, 18, 66,
-			0, 219, 140, 216, 167, 8, 3, 101, 6, 35, 57, 118, 0, 217, 136, 216, 175, 8, 3, 101, 6, 122, 72, 0, 217, 136, 216, 180, 8, 3,
-			101, 6, 122, 91, 0, 217, 136, 216, 167, 219, 129, 216, 180, 8, 3, 101, 84, 6, 118, 108, 113, 91, 0, 217, 145, 2, 18, 66, 3, 101,
-			101, 0, 217, 145, 3, 101, 101, 109, 0, 3, 101, 109, 0, 7, 6, 1, 48, 0, 2, 18, 66, 3, 72, 0, 216, 177, 216, 174, 217, 136,
-			216, 167, 216, 179, 216, 170, 3, 72, 4, 35, 51, 101, 84, 6, 118, 89, 47, 0, 217, 132, 218, 134, 216, 179, 217, 190, 3, 72, 4, 113,
-			55, 80, 6, 35, 89, 48, 0, 216, 177, 216, 172, 3, 72, 6, 35, 51, 79, 0, 219, 140, 216, 167, 2, 32, 3, 72, 6, 112, 38, 118,
-			0, 219, 140, 217, 136, 216, 167, 3, 72, 6, 112, 84, 118, 0, 217, 129, 216, 167, 216, 185, 3, 72, 6, 113, 83, 118, 0, 219, 129, 8,
-			2, 18, 67, 3, 72, 6, 116, 108, 0, 219, 129, 216, 180, 216, 170, 3, 72, 6, 116, 108, 91, 6, 35, 47, 0, 217, 136, 216, 179, 216,
-			177, 8, 3, 72, 6, 123, 89, 51, 0, 217, 145, 2, 18, 66, 3, 72, 72, 0, 217, 145, 3, 72, 72, 109, 0, 3, 72, 109, 0, 217,
-			134, 219, 140, 216, 167, 3, 72, 122, 50, 6, 112, 38, 118, 0, 218, 190, 2, 18, 66, 3, 138, 0, 218, 190, 219, 140, 217, 133, 3, 138,
-			6, 112, 65, 0, 218, 190, 3, 138, 109, 0, 7, 6, 1, 49, 0, 2, 18, 66, 3, 86, 0, 219, 129, 8, 2, 18, 67, 3, 86, 6,
-			116, 108, 0, 217, 145, 2, 18, 66, 3, 86, 86, 0, 217, 145, 3, 86, 86, 109, 0, 3, 86, 109, 0, 7, 6, 1, 50, 0, 4, 1,
-			21, 2, 216, 175, 3, 51, 0, 1, 21, 2, 217, 185, 0, 1, 21, 2, 218, 134, 0, 1, 21, 2, 218, 136, 0, 2, 18, 66, 0, 217,
-			129, 216, 170, 8, 3, 51, 6, 35, 83, 13, 47, 0, 219, 129, 8, 2, 18, 67, 3, 51, 6, 116, 108, 0, 218, 169, 217, 134, 8, 3,
-			51, 6, 122, 49, 50, 0, 216, 174, 8, 3, 51, 6, 122, 101, 0, 217, 145, 2, 108, 48, 49, 3, 51, 51, 0, 217, 145, 3, 51, 51,
-			109, 0, 216, 175, 219, 129, 1, 21, 2, 32, 3, 51, 72, 4, 35, 0, 3, 51, 109, 0, 7, 6, 1, 51, 0, 2, 18, 66, 3, 88,
-			0, 217, 132, 216, 178, 217, 132, 8, 3, 88, 4, 35, 55, 88, 6, 35, 55, 0, 217, 134, 216, 175, 8, 3, 88, 6, 113, 50, 72, 0,
-			219, 129, 8, 2, 18, 67, 3, 88, 6, 116, 108, 0, 217, 145, 2, 18, 66, 3, 88, 88, 0, 217, 145, 3, 88, 88, 109, 0, 3, 88,
-			109, 0, 7, 6, 1, 52, 0, 4, 1, 21, 2, 216, 170, 3, 89, 0, 1, 21, 2, 217, 185, 0, 2, 18, 66, 0, 216, 177, 218, 175,
-			216, 177, 217, 133, 3, 89, 4, 35, 51, 81, 6, 35, 51, 65, 0, 219, 140, 216, 175, 218, 190, 3, 89, 6, 112, 138, 0, 219, 140, 218,
-			169, 218, 190, 3, 89, 6, 112, 145, 0, 217, 134, 216, 175, 218, 190, 3, 89, 6, 113, 50, 138, 0, 217, 132, 216, 179, 217, 132, 8, 3,
-			89, 6, 113, 55, 89, 4, 113, 55, 0, 219, 129, 8, 2, 18, 67, 3, 89, 6, 116, 108, 0, 217, 134, 8, 2, 18, 66, 3, 89, 6,
-			122, 50, 0, 216, 177, 216, 174, 8, 3, 89, 6, 122, 51, 101, 0, 219, 140, 216, 167, 216, 179, 216, 170, 3, 89, 57, 118, 89, 6, 35,
-			47, 0, 217, 145, 2, 18, 66, 3, 89, 89, 0, 217, 145, 3, 89, 89, 109, 0, 3, 89, 109, 0, 216, 170, 216, 167, 216, 177, 8, 3,
-			89, 113, 47, 6, 118, 51, 0, 217, 190, 216, 177, 216, 175, 8, 3, 89, 122, 48, 6, 122, 51, 72, 0, 217, 132, 216, 172, 218, 190, 8,
-			3, 89, 122, 55, 6, 35, 79, 107, 0, 217, 132, 216, 172, 218, 190, 8, 2, 18, 66, 3, 89, 122, 55, 79, 107, 0, 216, 175, 218, 190,
-			216, 177, 8, 3, 89, 122, 72, 107, 6, 35, 51, 0, 216, 175, 218, 190, 216, 177, 8, 2, 18, 66, 3, 89, 122, 72, 107, 51, 0, 216,
-			170, 216, 167, 217, 134, 1, 21, 2, 32, 3, 113, 89, 47, 6, 118, 50, 0, 216, 170, 216, 167, 217, 134, 219, 140, 1, 21, 2, 32, 3,
-			113, 89, 47, 6, 118, 50, 37, 0, 7, 6, 1, 53, 0, 4, 1, 21, 2, 216, 170, 3, 91, 0, 2, 18, 66, 0, 216, 177, 217, 133,
-			217, 134, 216, 175, 3, 91, 4, 35, 51, 65, 6, 113, 50, 72, 0, 216, 174, 216, 181, 8, 3, 91, 6, 35, 101, 93, 0, 219, 129, 8,
-			2, 18, 67, 3, 91, 6, 116, 108, 0, 216, 185, 216, 177, 216, 167, 8, 3, 91, 6, 121, 51, 118, 0, 216, 185, 217, 132, 8, 3, 91,
-			6, 121, 55, 0, 216, 185, 216, 168, 8, 3, 91, 6, 121, 71, 0, 217, 145, 2, 18, 66, 3, 91, 91, 0, 217, 145, 3, 91, 91, 109,
-			0, 3, 91, 109, 0, 216, 167, 216, 185, 216, 177, 3, 91, 118, 6, 118, 113, 51, 0, 7, 6, 1, 54, 0, 217, 145, 2, 18, 66, 3,
-			89, 89, 0, 217, 145, 3, 89, 89, 109, 0, 2, 18, 66, 3, 93, 0, 217, 136, 216, 168, 3, 93, 6, 123, 71, 0, 3, 93, 109, 0,
-			7, 6, 1, 55, 0, 2, 18, 66, 3, 88, 0, 217, 145, 2, 18, 66, 3, 88, 88, 0, 217, 145, 3, 88, 88, 84, 0, 3, 88, 109,
-			0, 7, 6, 1, 56, 0, 218, 190, 2, 18, 66, 3, 25, 0, 218, 190, 3, 25, 109, 0, 2, 18, 66, 3, 47, 0, 217, 145, 2, 18,
-			66, 3, 47, 47, 0, 217, 145, 3, 47, 47, 109, 0, 3, 47, 109, 0, 7, 6, 1, 57, 0, 2, 18, 66, 3, 92, 0, 217, 145, 2,
-			18, 66, 3, 92, 92, 0, 217, 145, 3, 92, 92, 109, 0, 3, 92, 109, 0, 7, 6, 1, 58, 0, 217, 132, 219, 140, 216, 173, 216, 175,
-			3, 6, 35, 55, 116, 108, 72, 0, 219, 140, 1, 18, 67, 2, 32, 3, 6, 35, 112, 0, 219, 140, 216, 175, 8, 3, 6, 112, 72, 0,
-			219, 140, 216, 179, 8, 3, 6, 112, 89, 0, 217, 133, 216, 177, 8, 3, 6, 122, 65, 51, 0, 8, 3, 35, 0, 4, 3, 118, 0, 216,
-			167, 0, 217, 134, 217, 136, 216, 167, 217, 134, 3, 122, 50, 84, 6, 118, 50, 0, 7, 6, 1, 59, 0, 2, 18, 66, 3, 100, 0, 217,
-			145, 2, 18, 66, 3, 100, 100, 0, 217, 145, 3, 100, 100, 109, 0, 3, 100, 109, 0, 7, 6, 1, 66, 0, 2, 18, 66, 3, 83, 0,
-			218, 169, 216, 177, 8, 3, 83, 6, 113, 49, 51, 0, 217, 132, 217, 133, 3, 83, 6, 113, 55, 65, 0, 219, 129, 8, 2, 18, 67, 3,
-			83, 6, 116, 108, 0, 217, 145, 2, 18, 66, 3, 83, 83, 0, 217, 145, 3, 83, 83, 109, 0, 3, 83, 109, 0, 7, 6, 1, 67, 0,
-			2, 18, 66, 3, 104, 0, 219, 140, 216, 167, 8, 3, 104, 6, 35, 57, 118, 0, 216, 179, 216, 183, 8, 3, 104, 6, 113, 89, 47, 0,
-			216, 167, 216, 185, 216, 175, 3, 104, 6, 118, 57, 72, 0, 217, 145, 2, 18, 66, 3, 104, 104, 0, 217, 145, 3, 104, 104, 109, 0, 3,
-			104, 109, 0, 7, 6, 1, 69, 0, 2, 18, 66, 3, 55, 0, 218, 169, 218, 190, 3, 55, 6, 113, 145, 0, 219, 129, 8, 2, 18, 67,
-			3, 55, 6, 116, 108, 0, 217, 145, 2, 18, 66, 3, 55, 55, 0, 217, 145, 3, 55, 55, 109, 0, 3, 55, 109, 0, 7, 6, 1, 70,
-			0, 4, 1, 21, 2, 216, 168, 3, 65, 0, 1, 21, 2, 217, 190, 0, 2, 18, 66, 0, 217, 134, 216, 184, 216, 177, 3, 65, 4, 35,
-			50, 92, 6, 35, 51, 0, 217, 134, 216, 184, 217, 136, 216, 177, 3, 65, 4, 35, 50, 92, 6, 123, 51, 0, 216, 176, 219, 129, 216, 168,
-			3, 65, 4, 35, 86, 108, 6, 35, 71, 0, 216, 179, 218, 169, 216, 177, 216, 167, 219, 129, 217, 185, 3, 65, 4, 122, 89, 49, 4, 122,
-			51, 118, 108, 6, 35, 139, 0, 216, 174, 216, 167, 217, 132, 217, 129, 216, 170, 3, 65, 4, 122, 101, 118, 55, 113, 83, 6, 35, 47, 0,
-			217, 134, 216, 178, 217, 132, 3, 65, 6, 35, 50, 88, 4, 113, 55, 0, 216, 179, 216, 172, 216, 175, 3, 65, 6, 35, 89, 79, 4, 113,
-			72, 0, 216, 180, 216, 177, 217, 130, 3, 65, 6, 35, 91, 51, 4, 113, 104, 0, 216, 186, 216, 177, 216, 168, 3, 65, 6, 35, 100, 51,
-			4, 113, 71, 0, 217, 132, 217, 134, 8, 2, 18, 66, 3, 65, 6, 113, 55, 50, 0, 219, 129, 8, 2, 18, 67, 3, 65, 6, 116, 108,
-			0, 216, 173, 217, 129, 217, 132, 3, 65, 6, 116, 108, 83, 4, 113, 55, 0, 216, 173, 216, 179, 217, 134, 3, 65, 6, 119, 108, 89, 4,
-			113, 50, 0, 217, 132, 216, 178, 217, 133, 3, 65, 6, 122, 55, 88, 4, 113, 65, 0, 217, 132, 216, 173, 217, 130, 3, 65, 6, 122, 55,
-			108, 4, 113, 104, 0, 217, 133, 218, 169, 217, 134, 3, 65, 6, 122, 65, 49, 4, 113, 50, 0, 216, 172, 216, 177, 217, 133, 3, 65, 6,
-			122, 79, 51, 4, 113, 65, 0, 216, 179, 218, 169, 216, 177, 216, 167, 3, 65, 6, 122, 89, 49, 4, 122, 51, 118, 0, 216, 179, 217, 132,
-			217, 133, 3, 65, 6, 122, 89, 55, 4, 113, 65, 0, 216, 180, 218, 169, 217, 132, 8, 3, 65, 6, 122, 91, 49, 4, 113, 55, 0, 216,
-			174, 216, 168, 216, 177, 3, 65, 6, 122, 101, 71, 4, 113, 51, 0, 217, 145, 2, 18, 66, 3, 65, 65, 0, 217, 145, 3, 65, 65, 109,
-			0, 3, 65, 109, 0, 216, 173, 218, 169, 217, 133, 3, 65, 114, 108, 114, 49, 65, 0, 217, 136, 216, 172, 217, 136, 216, 175, 3, 65, 119,
-			79, 6, 123, 72, 0, 216, 170, 216, 181, 217, 132, 3, 65, 122, 47, 6, 35, 93, 113, 55, 0, 216, 170, 216, 173, 216, 175, 3, 65, 122,
-			47, 6, 35, 108, 113, 72, 0, 216, 183, 216, 167, 217, 132, 216, 168, 3, 65, 122, 47, 6, 118, 55, 113, 71, 0, 216, 179, 217, 132, 217,
-			133, 216, 167, 3, 65, 122, 89, 6, 35, 55, 65, 4, 118, 0, 216, 184, 216, 167, 219, 129, 216, 177, 3, 65, 122, 92, 6, 118, 108, 113,
-			51, 0, 216, 174, 216, 167, 217, 132, 217, 129, 3, 65, 122, 101, 6, 118, 55, 113, 83, 0, 217, 130, 216, 175, 217, 133, 3, 65, 122, 104,
-			6, 35, 72, 65, 0, 216, 173, 217, 130, 217, 130, 3, 65, 122, 108, 6, 35, 104, 113, 104, 0, 7, 6, 1, 71, 0, 4, 1, 21, 2,
-			216, 168, 3, 50, 0, 1, 21, 2, 216, 175, 0, 1, 21, 2, 216, 179, 0, 1, 21, 2, 217, 190, 0, 1, 21, 2, 218, 134, 0, 1,
-			21, 2, 218, 136, 0, 1, 21, 2, 218, 175, 0, 2, 18, 66, 0, 217, 136, 216, 167, 8, 3, 50, 6, 35, 84, 118, 0, 219, 129, 8,
-			2, 18, 67, 3, 50, 6, 108, 0, 219, 140, 1, 21, 2, 32, 14, 128, 128, 130, 3, 50, 6, 112, 0, 218, 134, 217, 132, 1, 21, 3,
-			50, 6, 113, 80, 55, 0, 219, 146, 1, 21, 2, 32, 14, 128, 128, 130, 3, 50, 6, 114, 0, 216, 167, 1, 21, 2, 32, 14, 128, 128,
-			130, 3, 50, 6, 118, 0, 218, 169, 216, 170, 8, 3, 50, 6, 122, 49, 47, 0, 217, 133, 216, 167, 8, 3, 50, 6, 122, 65, 118, 0,
-			217, 185, 1, 18, 66, 3, 50, 6, 139, 0, 217, 133, 216, 167, 216, 178, 8, 3, 50, 35, 65, 6, 118, 88, 0, 216, 184, 216, 177, 8,
-			3, 50, 35, 92, 6, 35, 51, 0, 217, 145, 2, 18, 66, 3, 50, 50, 0, 217, 145, 3, 50, 50, 109, 0, 218, 190, 3, 50, 108, 0,
-			3, 50, 109, 0, 218, 169, 217, 132, 8, 3, 50, 113, 49, 6, 35, 55, 0, 218, 169, 216, 167, 217, 132, 8, 3, 50, 113, 49, 6, 118,
-			55, 0, 218, 169, 217, 132, 8, 2, 18, 66, 3, 50, 113, 49, 55, 0, 217, 133, 217, 185, 8, 3, 50, 113, 65, 6, 35, 139, 0, 217,
-			133, 217, 185, 8, 2, 18, 66, 3, 50, 113, 65, 139, 0, 218, 175, 216, 167, 219, 129, 8, 3, 50, 113, 81, 6, 118, 108, 0, 216, 180,
-			216, 167, 217, 134, 3, 50, 113, 91, 6, 118, 50, 0, 216, 184, 216, 167, 217, 133, 8, 3, 50, 113, 92, 6, 118, 65, 0, 7, 6, 1,
-			73, 0, 2, 18, 66, 3, 84, 0, 217, 145, 3, 84, 84, 0, 8, 3, 84, 109, 0, 217, 143, 3, 84, 122, 0, 3, 119, 0, 4, 1,
-			18, 67, 18, 67, 18, 67, 2, 18, 67, 3, 123, 0, 216, 185, 2, 32, 0, 217, 151, 0, 217, 134, 218, 169, 219, 129, 1, 18, 67, 2,
-			32, 3, 123, 50, 49, 6, 114, 108, 0, 7, 6, 1, 76, 0, 3, 0, 7, 6, 1, 79, 0, 3, 35, 0, 4, 219, 140, 3, 116, 0,
-			219, 146, 0, 216, 185, 3, 118, 0, 217, 136, 3, 121, 0, 7, 6, 1, 80, 0, 216, 185, 3, 121, 0, 3, 122, 0, 217, 136, 3, 123,
-			0, 7, 6, 1, 81, 0, 1, 21, 2, 32, 14, 128, 128, 129, 3, 6, 114, 0, 4, 216, 185, 3, 112, 0, 219, 140, 0, 3, 113, 0,
-			7, 6, 1, 82, 0, 3, 0, 7, 6, 1, 113, 0, 3, 118, 0, 7, 6, 1, 122, 0, 2, 18, 66, 3, 139, 0, 219, 129, 8, 2,
-			18, 67, 3, 139, 6, 116, 108, 0, 218, 169, 218, 145, 8, 3, 139, 6, 122, 49, 70, 0, 216, 177, 219, 140, 217, 134, 8, 3, 139, 51,
-			6, 114, 50, 0, 216, 177, 219, 140, 217, 129, 218, 169, 3, 139, 51, 6, 114, 83, 113, 49, 0, 3, 139, 109, 0, 217, 145, 2, 18, 66,
-			3, 139, 139, 0, 217, 145, 3, 139, 139, 109, 0, 218, 190, 2, 18, 66, 3, 141, 0, 218, 190, 3, 141, 109, 0, 7, 6, 1, 127, 0,
-			2, 18, 66, 3, 48, 0, 219, 140, 218, 134, 218, 190, 3, 48, 6, 112, 143, 0, 219, 129, 8, 2, 18, 67, 3, 48, 6, 116, 108, 0,
-			217, 136, 216, 177, 8, 2, 18, 66, 3, 48, 6, 123, 51, 0, 217, 136, 218, 134, 218, 190, 3, 48, 6, 123, 143, 0, 219, 129, 217, 134,
-			218, 134, 3, 48, 35, 108, 6, 122, 50, 80, 0, 217, 145, 2, 18, 66, 3, 48, 48, 0, 217, 145, 3, 48, 48, 109, 0, 218, 190, 216,
-			177, 8, 3, 48, 107, 6, 113, 51, 0, 218, 190, 217, 136, 217, 132, 3, 48, 107, 6, 123, 55, 0, 3, 48, 109, 0, 218, 190, 2, 18,
-			66, 3, 136, 0, 218, 190, 217, 136, 217, 134, 218, 169, 3, 136, 6, 123, 50, 49, 0, 218, 190, 3, 136, 109, 0, 7, 6, 218, 134, 0,
-			2, 18, 66, 3, 80, 0, 219, 140, 216, 178, 8, 3, 80, 6, 112, 88, 0, 219, 129, 8, 2, 18, 67, 3, 80, 6, 116, 108, 0, 218,
-			169, 216, 167, 8, 3, 80, 6, 122, 49, 118, 0, 217, 136, 217, 133, 8, 3, 80, 6, 123, 65, 0, 217, 145, 2, 18, 66, 3, 80, 80,
-			0, 217, 145, 3, 80, 80, 109, 0, 3, 80, 109, 0, 218, 190, 2, 18, 66, 3, 143, 0, 218, 190, 3, 143, 109, 0, 7, 6, 218, 136,
-			0, 2, 18, 66, 3, 140, 0, 216, 177, 216, 167, 216, 166, 219, 140, 217, 136, 216, 177, 3, 140, 51, 6, 118, 57, 84, 35, 51, 0, 216,
-			178, 1, 21, 2, 32, 3, 140, 88, 0, 3, 140, 109, 0, 217, 145, 2, 18, 66, 3, 140, 140, 0, 217, 145, 3, 140, 140, 109, 0, 218,
-			190, 2, 18, 66, 3, 142, 0, 218, 190, 217, 136, 217, 134, 218, 136, 3, 142, 6, 123, 50, 140, 0, 218, 190, 3, 142, 109, 0, 7, 6,
-			218, 145, 0, 2, 18, 66, 3, 70, 0, 217, 145, 2, 18, 66, 3, 70, 70, 0, 217, 145, 3, 70, 70, 109, 0, 218, 190, 2, 18, 66,
-			3, 70, 107, 0, 218, 190, 3, 70, 107, 109, 0, 3, 70, 109, 0, 7, 6, 218, 152, 0, 2, 18, 66, 3, 90, 0, 3, 90, 109, 0,
-			7, 6, 218, 169, 0, 2, 18, 66, 3, 49, 0, 216, 170, 217, 134, 8, 3, 49, 6, 113, 47, 50, 0, 219, 129, 8, 2, 18, 67, 3,
-			49, 6, 116, 108, 0, 216, 167, 216, 177, 218, 169, 217, 134, 3, 49, 6, 118, 51, 49, 4, 122, 122, 50, 0, 217, 136, 216, 180, 216, 180,
-			3, 49, 6, 119, 91, 113, 91, 0, 217, 145, 2, 18, 66, 3, 49, 49, 0, 217, 145, 3, 49, 49, 109, 0, 3, 49, 109, 0, 216, 170,
-			216, 167, 216, 168, 3, 49, 113, 47, 6, 118, 71, 0, 218, 190, 2, 18, 66, 3, 145, 0, 218, 190, 3, 145, 109, 0, 7, 6, 218, 175,
-			0, 2, 18, 66, 3, 81, 0, 216, 166, 219, 140, 3, 81, 6, 35, 112, 0, 216, 166, 219, 146, 3, 81, 6, 35, 114, 0, 219, 140, 216,
-			170, 8, 3, 81, 6, 112, 47, 0, 216, 177, 217, 129, 216, 170, 8, 3, 81, 6, 113, 51, 113, 83, 47, 0, 219, 129, 8, 2, 18, 67,
-			3, 81, 6, 116, 108, 0, 217, 133, 216, 180, 216, 175, 3, 81, 6, 122, 65, 91, 4, 122, 72, 0, 217, 145, 2, 18, 66, 3, 81, 81,
-			0, 217, 145, 3, 81, 81, 109, 0, 3, 81, 109, 0, 216, 178, 216, 177, 8, 3, 81, 122, 88, 6, 35, 51, 0, 216, 178, 216, 167, 216,
-			177, 216, 180, 3, 81, 122, 88, 6, 118, 51, 113, 91, 0, 216, 178, 216, 177, 8, 2, 18, 66, 3, 81, 122, 88, 51, 0, 218, 190, 2,
-			18, 66, 3, 146, 0, 218, 190, 217, 133, 216, 167, 8, 3, 146, 6, 122, 65, 118, 0, 218, 190, 3, 146, 109, 0, 7, 6, 218, 186, 0,
-			3, 50, 0, 7, 6, 218, 190, 0, 2, 108, 48, 49, 3, 108, 0, 2, 32, 3, 108, 12, 0, 3, 108, 109, 0, 7, 6, 219, 129, 0,
-			2, 32, 3, 35, 0, 4, 3, 108, 0, 1, 21, 2, 18, 67, 18, 66, 0, 8, 2, 18, 66, 0, 217, 133, 8, 2, 18, 67, 18, 67,
-			18, 67, 14, 128, 132, 130, 3, 108, 6, 35, 65, 0, 217, 132, 217, 134, 8, 3, 108, 6, 113, 55, 50, 0, 217, 145, 2, 18, 66, 3,
-			108, 108, 0, 217, 145, 3, 108, 108, 109, 0, 2, 18, 67, 3, 108, 109, 0, 8, 2, 217, 134, 216, 175, 3, 108, 113, 0, 7, 6, 219,
-			130, 0, 3, 6, 35, 114, 0, 7, 6, 219, 140, 0, 2, 18, 66, 3, 57, 0, 217, 145, 3, 57, 57, 0, 8, 3, 57, 109, 0, 4,
-			1, 21, 3, 112, 0, 2, 32, 0, 216, 185, 2, 32, 0, 216, 170, 1, 21, 2, 32, 14, 128, 128, 130, 3, 112, 38, 6, 35, 47, 0,
-			3, 114, 0, 218, 186, 1, 21, 2, 32, 3, 114, 50, 0, 7, 6, 219, 146, 0, 3, 114, 0, 7, 6, 224, 164, 0, 3, 21, 110, 101,
-			0, 7, 6, 224, 165, 0, 3, 21, 110, 101, 0, 7, 6, 0, 58, 3, 34, 6, 118, 71, 6, 47, 35, 107, 0, 59, 3, 58, 6, 35,
-			49, 6, 47, 6, 35, 0, 36, 3, 72, 119, 55, 13, 51, 0, 33, 3, 83, 6, 37, 79, 118, 57, 35, 0, 37, 3, 83, 6, 112, 89,
-			109, 72, 0, 44, 3, 89, 109, 49, 35, 139, 109, 107, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts66 = FileInMemory_createWithData (18015, reinterpret_cast<const char *> (&espeakdata_dicts66_data), 
-			U"espeak-1.48.04-source/espeak-data/ur_dict", 
+		static unsigned char espeakdata_dicts66_data[2122] = {
+			0, 4, 0, 0, 204, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
+			58, 36, 0, 0, 0, 0, 0, 6, 65, 16, 81, 36, 0, 0, 0, 0, 14, 4, 95, 100, 112, 116, 10, 71, 109, 47, 4, 36, 50, 0,
+			0, 6, 65, 20, 72, 36, 0, 0, 0, 0, 0, 6, 65, 24, 57, 36, 0, 0, 0, 0, 0, 6, 65, 28, 90, 36, 0, 0, 0, 0,
+			0, 6, 65, 32, 88, 36, 0, 0, 0, 0, 0, 5, 65, 36, 37, 0, 0, 0, 0, 0, 12, 65, 40, 49, 110, 89, 49, 4, 112, 6,
+			37, 0, 0, 0, 0, 0, 6, 65, 44, 49, 112, 0, 0, 0, 0, 0, 6, 65, 48, 36, 55, 0, 0, 0, 0, 0, 6, 65, 52, 36,
+			65, 0, 0, 0, 0, 0, 6, 65, 56, 36, 50, 0, 0, 0, 0, 0, 6, 65, 60, 39, 12, 0, 0, 0, 0, 0, 6, 65, 64, 48,
+			36, 0, 0, 0, 0, 0, 6, 65, 68, 36, 34, 0, 0, 0, 0, 0, 6, 65, 72, 36, 89, 0, 0, 0, 0, 0, 6, 65, 76, 47,
+			36, 0, 0, 0, 0, 0, 5, 65, 80, 40, 0, 0, 0, 0, 0, 6, 65, 84, 36, 83, 0, 0, 0, 0, 0, 6, 65, 88, 101, 112,
+			0, 0, 0, 0, 15, 4, 95, 49, 77, 52, 71, 37, 55, 55, 37, 6, 39, 50, 0, 0, 7, 65, 92, 47, 89, 36, 0, 0, 0, 0,
+			0, 6, 65, 96, 97, 36, 0, 0, 15, 4, 95, 49, 77, 50, 65, 37, 55, 55, 37, 6, 39, 50, 0, 0, 16, 4, 95, 49, 77, 51,
+			65, 37, 55, 55, 37, 6, 112, 34, 72, 0, 0, 0, 6, 65, 100, 91, 112, 0, 0, 0, 0, 0, 7, 65, 104, 91, 97, 112, 0, 0,
+			0, 0, 0, 21, 65, 108, 49, 112, 55, 110, 50, 55, 4, 110, 104, 71, 37, 55, 81, 36, 89, 6, 36, 0, 0, 0, 0, 0, 6, 65,
+			112, 110, 12, 0, 0, 0, 0, 0, 21, 65, 116, 50, 36, 97, 49, 111, 55, 4, 36, 49, 71, 37, 55, 81, 36, 89, 6, 36, 0, 0,
+			0, 0, 0, 6, 65, 120, 36, 12, 0, 0, 0, 0, 0, 6, 65, 124, 57, 40, 0, 0, 0, 0, 0, 6, 65, 128, 57, 112, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 6, 65, 136, 57, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 51, 88, 40,
+			47, 6, 110, 88, 0, 0, 10, 3, 95, 48, 67, 57, 6, 109, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			14, 3, 95, 49, 57, 40, 50, 47, 40, 81, 6, 110, 88, 0, 0, 14, 3, 95, 49, 56, 40, 50, 89, 37, 81, 6, 36, 88, 0, 0,
+			0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 49, 40, 50, 71, 6, 36, 34, 0, 0, 9, 3, 95, 49, 48, 6, 40, 50, 0, 0, 11,
+			3, 95, 49, 51, 40, 50, 6, 109, 97, 0, 0, 12, 3, 95, 49, 50, 40, 50, 37, 49, 6, 36, 0, 0, 12, 3, 95, 49, 53, 40,
+			50, 71, 6, 37, 91, 0, 0, 13, 3, 95, 49, 52, 40, 50, 72, 6, 108, 34, 47, 0, 0, 13, 3, 95, 49, 55, 40, 50, 96, 37,
+			72, 6, 36, 0, 0, 13, 3, 95, 49, 54, 40, 50, 112, 55, 47, 6, 110, 0, 0, 0, 13, 3, 95, 55, 88, 96, 37, 47, 65, 6,
+			36, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95,
+			50, 88, 36, 81, 36, 34, 65, 6, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52,
+			88, 49, 110, 34, 6, 110, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 95, 53, 88, 37, 55, 55, 6, 36, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 13, 3, 95, 54, 88, 112, 55, 47, 65, 6, 110, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 3, 95, 56, 88, 89, 37, 49, 89, 6, 111, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 57, 88,
+			47, 40, 49, 89, 6, 112, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 95, 48, 77, 52, 71, 37, 55, 55,
+			37, 6, 39, 50, 0, 0, 0, 15, 4, 95, 48, 77, 50, 65, 37, 55, 55, 37, 6, 39, 50, 0, 0, 16, 4, 95, 48, 77, 51, 65,
+			37, 55, 55, 37, 6, 112, 34, 72, 0, 0, 0, 11, 4, 95, 48, 77, 49, 65, 6, 36, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 7, 2, 210, 151, 96, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 95, 51, 6, 109, 97, 0,
+			0, 9, 2, 95, 50, 37, 49, 6, 36, 0, 0, 9, 2, 95, 49, 71, 6, 36, 34, 0, 0, 10, 2, 95, 48, 50, 6, 40, 55, 19,
+			0, 0, 10, 2, 95, 55, 96, 37, 72, 6, 36, 0, 0, 10, 2, 95, 54, 112, 55, 47, 6, 110, 0, 0, 9, 2, 95, 53, 71, 6,
+			37, 91, 0, 0, 10, 2, 95, 52, 72, 6, 108, 34, 47, 0, 0, 0, 0, 11, 2, 95, 57, 47, 40, 81, 6, 110, 88, 0, 0, 11,
+			2, 95, 56, 89, 37, 81, 6, 36, 88, 0, 0, 7, 2, 210, 163, 36, 68, 0, 0, 0, 0, 0, 6, 2, 210, 175, 108, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 211, 169, 109, 12, 0, 0, 0, 0, 0, 0, 0, 7, 2, 210, 187, 107,
+			36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			6, 1, 17, 0, 3, 112, 0, 7, 6, 1, 18, 0, 3, 71, 0, 7, 6, 1, 19, 0, 3, 58, 0, 7, 6, 1, 20, 0, 3, 81,
+			0, 7, 6, 1, 21, 0, 3, 72, 0, 7, 6, 1, 22, 0, 3, 36, 0, 8, 3, 57, 117, 0, 7, 6, 1, 23, 0, 3, 90, 0,
+			7, 6, 1, 24, 0, 3, 88, 0, 7, 6, 1, 25, 0, 3, 37, 0, 1, 17, 65, 3, 57, 0, 7, 6, 1, 26, 0, 3, 57, 0,
+			1, 25, 2, 25, 3, 115, 0, 7, 6, 1, 27, 0, 3, 49, 0, 7, 6, 1, 28, 0, 3, 55, 0, 7, 6, 1, 29, 0, 3, 65,
+			0, 7, 6, 1, 30, 0, 3, 50, 0, 4, 2, 208, 179, 3, 68, 0, 2, 209, 133, 0, 7, 6, 1, 31, 0, 3, 39, 0, 7, 6,
+			1, 32, 0, 3, 48, 0, 7, 6, 1, 33, 0, 3, 34, 0, 7, 6, 1, 34, 0, 3, 89, 0, 7, 6, 1, 35, 0, 3, 47, 0,
+			7, 6, 1, 36, 0, 3, 40, 0, 1, 17, 65, 3, 58, 0, 7, 6, 1, 37, 0, 3, 83, 0, 7, 6, 1, 38, 0, 3, 101, 0,
+			7, 6, 1, 39, 0, 3, 47, 89, 0, 7, 6, 1, 40, 0, 3, 97, 0, 7, 6, 1, 41, 0, 3, 91, 0, 7, 6, 1, 42, 0,
+			3, 91, 97, 0, 7, 6, 1, 43, 0, 3, 19, 0, 7, 6, 1, 44, 0, 3, 110, 0, 208, 185, 3, 110, 57, 0, 7, 6, 1, 45,
+			0, 3, 19, 0, 7, 6, 1, 46, 0, 3, 36, 0, 7, 6, 1, 47, 0, 3, 57, 116, 0, 7, 6, 1, 48, 0, 3, 57, 35, 0,
+			7, 6, 1, 50, 0, 3, 57, 39, 0, 7, 6, 1, 120, 0, 3, 96, 0, 7, 6, 210, 163, 0, 3, 68, 0, 7, 6, 210, 175, 0,
+			1, 17, 65, 3, 58, 0, 3, 108, 0, 7, 6, 210, 187, 0, 3, 107, 0, 7, 6, 211, 153, 0, 3, 111, 0, 208, 181, 3, 114, 0,
+			7, 6, 211, 169, 0, 3, 109, 0, 7, 6, 0, 36, 3, 72, 39, 55, 112, 51, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts66 = FileInMemory_createWithData (2121, reinterpret_cast<const char *> (&espeakdata_dicts66_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/tt_dict", 
+			U"tt");
+		Collection_addItem (me.peek(), espeakdata_dicts66.transfer());
+
+		static unsigned char espeakdata_dicts67_data[3431] = {
+			0, 4, 0, 0, 202, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 4, 16, 20, 10, 113, 91, 35, 51, 113, 6, 113, 35, 10,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 51, 57, 122, 50, 47, 118, 55,
+			6, 112, 89, 0, 12, 3, 95, 50, 49, 113, 49, 49, 6, 112, 89, 0, 0, 12, 3, 95, 51, 56, 35, 51, 47, 6, 112, 89, 0, 10,
+			3, 95, 50, 48, 71, 6, 112, 89, 0, 0, 11, 3, 95, 50, 51, 47, 114, 6, 112, 89, 0, 0, 11, 3, 95, 50, 50, 71, 118, 6,
+			112, 89, 0, 0, 13, 3, 95, 50, 53, 48, 35, 80, 80, 6, 112, 89, 0, 0, 12, 3, 95, 50, 52, 80, 135, 71, 6, 112, 89, 0,
+			0, 14, 3, 95, 50, 55, 89, 35, 47, 12, 118, 6, 112, 89, 0, 0, 13, 3, 95, 50, 54, 144, 35, 71, 71, 6, 112, 89, 0, 0,
+			12, 3, 95, 51, 49, 37, 49, 47, 6, 112, 89, 0, 0, 10, 3, 95, 51, 48, 47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 51, 47,
+			134, 68, 47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 50, 71, 35, 47, 12, 6, 112, 89, 0, 0, 13, 3, 95, 51, 53, 48, 134, 68,
+			47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 52, 80, 135, 68, 47, 6, 112, 89, 0, 0, 13, 3, 95, 51, 55, 89, 134, 68, 47, 6,
+			112, 89, 0, 0, 13, 3, 95, 51, 54, 144, 35, 47, 12, 6, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 13, 3, 95, 55, 57, 122, 50, 50, 118, 89, 6, 112, 0, 12, 3, 95, 54, 49, 6, 113, 49, 89, 35, 138, 0, 0,
+			15, 3, 95, 55, 56, 35, 138, 108, 35, 47, 12, 6, 35, 51, 0, 10, 3, 95, 54, 48, 89, 6, 118, 138, 0, 0, 9, 3, 95, 48,
+			67, 89, 6, 135, 0, 13, 3, 95, 54, 51, 47, 6, 113, 51, 89, 35, 138, 0, 0, 12, 3, 95, 54, 50, 71, 6, 118, 89, 35, 138,
+			0, 0, 13, 3, 95, 54, 53, 48, 6, 134, 68, 89, 35, 138, 0, 0, 12, 3, 95, 54, 52, 80, 6, 135, 89, 35, 138, 0, 0, 13,
+			3, 95, 54, 55, 89, 6, 35, 51, 89, 35, 138, 0, 0, 14, 3, 95, 54, 54, 144, 113, 57, 6, 118, 89, 35, 138, 0, 0, 15, 3,
+			95, 55, 49, 113, 49, 108, 35, 47, 12, 6, 35, 51, 0, 0, 13, 3, 95, 55, 48, 89, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3,
+			95, 55, 51, 47, 113, 108, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 50, 71, 35, 108, 35, 47, 12, 6, 35, 51, 0, 0,
+			15, 3, 95, 55, 53, 48, 35, 144, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 52, 80, 135, 108, 35, 47, 12, 6, 35, 51,
+			0, 0, 15, 3, 95, 55, 55, 89, 35, 138, 35, 47, 12, 6, 35, 51, 0, 0, 15, 3, 95, 55, 54, 144, 113, 108, 35, 47, 12, 6,
+			35, 51, 0, 0, 12, 3, 95, 49, 57, 6, 122, 50, 50, 112, 89, 0, 0, 13, 3, 95, 49, 56, 35, 138, 6, 118, 51, 35, 108, 0,
+			0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 50, 57, 122, 50, 47, 6, 112, 89, 0, 13, 3, 95, 49, 49, 81, 57, 6, 118, 51, 35,
+			108, 0, 0, 12, 3, 95, 50, 56, 89, 138, 118, 6, 112, 89, 0, 10, 3, 95, 49, 48, 72, 6, 35, 89, 0, 0, 12, 3, 95, 49,
+			51, 47, 6, 114, 51, 35, 108, 0, 0, 12, 3, 95, 49, 50, 71, 6, 118, 51, 35, 108, 0, 0, 14, 3, 95, 49, 53, 48, 6, 35,
+			50, 72, 51, 35, 108, 0, 0, 12, 3, 95, 49, 52, 80, 6, 135, 72, 35, 108, 0, 0, 13, 3, 95, 49, 55, 89, 6, 35, 47, 51,
+			35, 108, 0, 0, 12, 3, 95, 49, 54, 89, 6, 119, 55, 35, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 52, 57,
+			122, 50, 80, 6, 118, 89, 0, 0, 14, 3, 95, 52, 56, 35, 51, 47, 118, 55, 6, 112, 89, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+			3, 95, 53, 57, 122, 50, 89, 6, 35, 138, 0, 14, 3, 95, 52, 49, 113, 49, 47, 118, 55, 6, 112, 89, 0, 0, 13, 3, 95, 53,
+			56, 35, 138, 6, 118, 84, 35, 50, 0, 12, 3, 95, 52, 48, 80, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 51, 47, 114, 68,
+			47, 118, 55, 6, 112, 89, 0, 0, 14, 3, 95, 52, 50, 71, 35, 57, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 53, 48, 134,
+			68, 47, 118, 55, 6, 112, 89, 0, 0, 14, 3, 95, 52, 52, 80, 35, 84, 118, 55, 6, 112, 89, 0, 0, 15, 3, 95, 52, 55, 89,
+			134, 68, 47, 118, 55, 6, 112, 89, 0, 0, 14, 3, 95, 52, 54, 144, 113, 57, 118, 55, 6, 112, 89, 0, 0, 16, 3, 95, 54, 57,
+			122, 50, 108, 4, 35, 47, 12, 6, 35, 51, 0, 13, 3, 95, 53, 49, 113, 49, 6, 118, 84, 35, 50, 0, 0, 12, 3, 95, 54, 56,
+			6, 35, 51, 89, 35, 138, 0, 12, 3, 95, 53, 48, 48, 35, 80, 6, 118, 89, 0, 0, 13, 3, 95, 53, 51, 47, 6, 113, 51, 48,
+			35, 50, 0, 0, 12, 3, 95, 53, 50, 71, 6, 118, 84, 35, 50, 0, 0, 13, 3, 95, 53, 53, 48, 6, 35, 80, 48, 35, 50, 0,
+			0, 12, 3, 95, 53, 52, 80, 6, 135, 84, 35, 50, 0, 0, 15, 3, 95, 53, 55, 89, 35, 47, 12, 6, 118, 84, 35, 50, 0, 0,
+			13, 3, 95, 53, 54, 144, 6, 35, 48, 48, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 95, 56, 57, 50, 35, 84,
+			118, 89, 6, 112, 0, 0, 12, 3, 95, 56, 56, 35, 138, 118, 89, 6, 112, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 57, 57,
+			50, 113, 50, 57, 6, 118, 50, 84, 114, 0, 12, 3, 95, 56, 49, 113, 49, 118, 89, 6, 112, 0, 0, 14, 3, 95, 57, 56, 35, 138,
+			12, 6, 118, 50, 84, 114, 0, 11, 3, 95, 56, 48, 35, 89, 89, 6, 112, 0, 0, 13, 3, 95, 56, 51, 47, 113, 51, 118, 89, 6,
+			112, 0, 0, 13, 3, 95, 56, 50, 71, 35, 57, 118, 89, 6, 112, 0, 0, 13, 3, 95, 56, 53, 48, 35, 80, 118, 89, 6, 112, 0,
+			0, 13, 3, 95, 56, 52, 80, 135, 51, 118, 89, 6, 112, 0, 0, 14, 3, 95, 56, 55, 89, 35, 47, 12, 118, 89, 6, 112, 0, 0,
+			13, 3, 95, 56, 54, 144, 113, 57, 118, 89, 6, 112, 0, 0, 14, 3, 95, 57, 49, 113, 49, 57, 6, 118, 50, 84, 114, 0, 0, 12,
+			3, 95, 57, 48, 50, 35, 84, 84, 6, 114, 0, 0, 14, 3, 95, 57, 51, 47, 113, 87, 6, 118, 50, 84, 114, 0, 0, 12, 3, 95,
+			57, 50, 71, 6, 118, 50, 84, 114, 0, 0, 14, 3, 95, 57, 53, 48, 35, 80, 6, 118, 50, 84, 114, 0, 0, 14, 3, 95, 57, 52,
+			80, 135, 51, 6, 118, 50, 84, 114, 0, 0, 15, 3, 95, 57, 55, 89, 35, 47, 12, 6, 118, 50, 84, 114, 0, 0, 14, 3, 95, 57,
+			54, 144, 113, 57, 6, 118, 50, 84, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 239, 174, 168, 144, 119, 47, 112, 15, 108, 114, 0, 0, 12, 4, 95, 48, 77, 52, 6,
+			35, 51, 35, 71, 0, 0, 0, 11, 4, 95, 48, 77, 50, 55, 6, 118, 146, 0, 0, 13, 4, 95, 48, 77, 51, 49, 35, 51, 6, 119,
+			51, 0, 0, 0, 13, 4, 95, 48, 77, 49, 108, 35, 88, 6, 118, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 17, 70, 40, 243, 129, 80, 128, 78, 75, 6, 121, 50, 35, 138, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 95,
+			51, 47, 6, 112, 50, 0, 0, 8, 2, 95, 50, 6, 72, 119, 0, 0, 8, 2, 95, 49, 6, 114, 49, 0, 0, 11, 2, 95, 48, 89,
+			6, 113, 83, 35, 51, 0, 0, 9, 2, 95, 55, 89, 6, 118, 47, 0, 0, 8, 2, 95, 54, 144, 6, 134, 0, 0, 10, 2, 95, 53,
+			48, 6, 118, 68, 80, 0, 0, 9, 2, 95, 52, 80, 6, 118, 51, 0, 0, 0, 0, 8, 2, 95, 57, 50, 6, 135, 0, 0, 8, 2,
+			95, 56, 6, 118, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2,
+			217, 134, 50, 123, 50, 0, 0, 8, 2, 217, 133, 65, 112, 65, 0, 0, 8, 2, 217, 132, 55, 118, 65, 0, 0, 0, 8, 2, 217, 130,
+			104, 118, 83, 0, 0, 7, 2, 217, 129, 83, 114, 0, 0, 0, 8, 2, 217, 143, 48, 114, 91, 0, 0, 10, 2, 217, 142, 88, 13, 71,
+			13, 51, 0, 7, 2, 218, 134, 80, 114, 0, 0, 0, 0, 0, 0, 0, 8, 2, 217, 136, 84, 118, 121, 0, 0, 0, 0, 0, 0, 0,
+			0, 7, 2, 219, 129, 108, 114, 0, 0, 8, 2, 217, 144, 88, 114, 51, 0, 8, 2, 218, 136, 141, 118, 55, 0, 0, 9, 2, 216, 167,
+			35, 55, 113, 83, 0, 0, 11, 2, 216, 166, 107, 6, 35, 65, 88, 35, 0, 0, 0, 12, 2, 219, 140, 144, 119, 140, 112, 15, 57, 114,
+			0, 0, 0, 0, 11, 2, 216, 161, 108, 35, 65, 88, 35, 108, 0, 7, 2, 218, 145, 70, 114, 0, 0, 0, 8, 2, 216, 175, 72, 118,
+			55, 0, 0, 7, 2, 216, 174, 101, 114, 0, 0, 12, 2, 216, 173, 71, 35, 70, 112, 15, 108, 114, 0, 0, 8, 2, 216, 172, 79, 112,
+			65, 0, 0, 7, 2, 216, 171, 89, 114, 0, 0, 12, 2, 219, 146, 71, 35, 70, 112, 15, 57, 114, 0, 7, 2, 216, 170, 47, 114, 0,
+			0, 0, 7, 2, 218, 152, 90, 114, 0, 7, 2, 216, 168, 71, 114, 0, 0, 8, 2, 216, 183, 47, 121, 114, 0, 0, 9, 2, 216, 182,
+			88, 122, 118, 72, 0, 0, 9, 2, 216, 181, 89, 122, 118, 72, 0, 0, 8, 2, 216, 180, 91, 112, 50, 0, 0, 8, 2, 216, 179, 89,
+			112, 50, 0, 0, 7, 2, 216, 178, 88, 114, 0, 0, 7, 2, 216, 177, 51, 114, 0, 0, 8, 2, 216, 176, 88, 118, 55, 0, 0, 8,
+			2, 218, 175, 81, 118, 83, 0, 0, 0, 0, 0, 0, 8, 2, 216, 186, 100, 134, 50, 0, 0, 8, 2, 218, 169, 49, 118, 83, 0, 7,
+			2, 216, 185, 134, 50, 0, 0, 8, 2, 216, 184, 88, 121, 114, 0, 0, 0, 7, 2, 217, 190, 48, 114, 0, 0, 0, 0, 0, 0, 7,
+			2, 217, 185, 140, 114, 0, 0, 0, 0, 16, 2, 218, 190, 72, 121, 15, 80, 35, 91, 65, 112, 15, 108, 114, 0, 0, 0, 0, 0, 10,
+			2, 218, 186, 147, 122, 50, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 6, 20, 96, 6, 0, 0, 48, 0, 0, 0, 97, 6, 0, 0, 49, 0, 0, 0, 98, 6, 0, 0, 50, 0, 0, 0, 99, 6,
+			0, 0, 51, 0, 0, 0, 100, 6, 0, 0, 52, 0, 0, 0, 101, 6, 0, 0, 53, 0, 0, 0, 102, 6, 0, 0, 54, 0, 0, 0,
+			103, 6, 0, 0, 55, 0, 0, 0, 104, 6, 0, 0, 56, 0, 0, 0, 105, 6, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 6, 18,
+			66, 217, 142, 0, 217, 144, 0, 217, 143, 0, 217, 136, 0, 219, 140, 0, 216, 185, 0, 216, 167, 0, 7, 6, 1, 34, 0, 3, 0, 7,
+			6, 1, 35, 0, 3, 118, 0, 7, 6, 1, 36, 0, 3, 0, 7, 6, 1, 37, 0, 3, 135, 0, 7, 6, 1, 39, 0, 3, 0, 7,
+			6, 1, 40, 0, 8, 2, 18, 66, 3, 0, 8, 3, 35, 0, 219, 140, 8, 3, 112, 0, 3, 118, 0, 217, 136, 8, 3, 123, 0, 7,
+			6, 1, 41, 0, 3, 71, 0, 218, 190, 3, 137, 0, 7, 6, 1, 43, 0, 3, 47, 0, 218, 190, 3, 138, 0, 7, 6, 1, 44, 0,
+			3, 89, 0, 7, 6, 1, 45, 0, 3, 79, 0, 218, 190, 3, 145, 0, 7, 6, 1, 46, 0, 3, 108, 0, 7, 6, 1, 47, 0, 3,
+			101, 0, 7, 6, 1, 48, 0, 3, 72, 0, 218, 190, 3, 139, 0, 7, 6, 1, 49, 0, 3, 86, 0, 7, 6, 1, 50, 0, 3, 51,
+			0, 7, 6, 1, 51, 0, 3, 88, 0, 7, 6, 1, 52, 0, 3, 89, 0, 7, 6, 1, 53, 0, 3, 91, 0, 7, 6, 1, 54, 0,
+			3, 93, 0, 7, 6, 1, 55, 0, 3, 88, 0, 7, 6, 1, 56, 0, 3, 47, 0, 218, 190, 3, 138, 0, 7, 6, 1, 57, 0, 3,
+			92, 0, 7, 6, 1, 58, 0, 8, 3, 35, 0, 4, 3, 118, 0, 216, 167, 0, 7, 6, 1, 59, 0, 3, 100, 0, 7, 6, 1, 66,
+			0, 3, 83, 0, 7, 6, 1, 67, 0, 3, 104, 0, 7, 6, 1, 69, 0, 3, 55, 0, 7, 6, 1, 70, 0, 3, 65, 0, 7, 6,
+			1, 71, 0, 3, 50, 0, 7, 6, 1, 73, 0, 4, 2, 18, 66, 3, 84, 0, 8, 0, 3, 119, 0, 4, 217, 143, 3, 123, 0, 217,
+			151, 0, 7, 6, 1, 79, 0, 3, 35, 0, 4, 219, 140, 3, 116, 0, 219, 146, 0, 216, 185, 3, 118, 0, 217, 136, 3, 121, 0, 7,
+			6, 1, 80, 0, 216, 185, 3, 121, 0, 3, 122, 0, 217, 136, 3, 123, 0, 7, 6, 1, 81, 0, 4, 216, 185, 3, 112, 0, 219, 140,
+			0, 3, 113, 0, 7, 6, 1, 122, 0, 3, 140, 0, 218, 190, 3, 142, 0, 7, 6, 1, 127, 0, 3, 48, 0, 218, 190, 3, 136, 0,
+			7, 6, 218, 134, 0, 3, 80, 0, 218, 190, 3, 144, 0, 7, 6, 218, 136, 0, 3, 141, 0, 218, 190, 3, 143, 0, 7, 6, 218, 145,
+			0, 3, 70, 0, 7, 6, 218, 152, 0, 3, 90, 0, 7, 6, 218, 169, 0, 3, 49, 0, 218, 190, 3, 146, 0, 7, 6, 218, 175, 0,
+			3, 81, 0, 218, 190, 3, 147, 0, 7, 6, 218, 186, 0, 3, 50, 0, 7, 6, 218, 190, 0, 3, 108, 0, 7, 6, 219, 129, 0, 2,
+			32, 3, 35, 0, 3, 108, 0, 7, 6, 219, 140, 0, 4, 2, 18, 66, 3, 57, 0, 8, 0, 2, 32, 3, 112, 0, 3, 114, 0, 7,
+			6, 219, 146, 0, 3, 114, 0, 7, 6, 224, 164, 0, 3, 21, 104, 105, 0, 7, 6, 224, 165, 0, 3, 21, 104, 105, 0, 7, 6, 0,
+			36, 3, 72, 119, 55, 13, 51, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts67 = FileInMemory_createWithData (3430, reinterpret_cast<const char *> (&espeakdata_dicts67_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/ur_dict", 
 			U"ur");
-		my addItem_move (espeakdata_dicts66.move());
+		Collection_addItem (me.peek(), espeakdata_dicts67.transfer());
 
-		static unsigned char espeakdata_dicts67_data[7439] = {
-			0, 4, 0, 0, 86, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
-			89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 13, 4, 95, 100, 112, 116, 10, 83, 4, 122, 110, 10, 0, 0,
-			0, 0, 0, 0, 7, 65, 24, 115, 109, 48, 0, 0, 0, 0, 0, 8, 65, 28, 86, 6, 36, 113, 0, 0, 0, 0, 0, 8, 65, 32,
-			107, 35, 109, 47, 0, 0, 0, 7, 132, 196, 145, 195, 163, 72, 0, 14, 1, 35, 79, 6, 135, 109, 47, 6, 35, 113, 68, 0, 27, 0,
-			17, 1, 36, 79, 6, 135, 109, 10, 72, 6, 39, 17, 55, 6, 114, 113, 0, 0, 8, 133, 99, 225, 187, 167, 97, 72, 14, 1, 37, 83,
-			6, 13, 108, 50, 148, 6, 35, 113, 65, 0, 0, 12, 1, 38, 79, 6, 135, 109, 84, 4, 114, 108, 0, 0, 0, 6, 65, 40, 81, 37,
-			0, 0, 0, 13, 1, 42, 79, 6, 135, 109, 93, 6, 131, 113, 0, 27, 0, 14, 1, 43, 79, 6, 135, 109, 49, 6, 39, 112, 68, 0,
-			27, 0, 6, 65, 44, 49, 114, 0, 0, 8, 133, 98, 225, 187, 159, 105, 72, 0, 0, 0, 8, 65, 48, 115, 55, 119, 108, 0, 0, 0,
-			0, 0, 8, 65, 52, 115, 65, 119, 108, 0, 0, 0, 0, 0, 8, 65, 56, 115, 50, 119, 108, 0, 0, 0, 0, 0, 0, 15, 1, 61,
-			79, 6, 135, 109, 10, 71, 6, 35, 108, 68, 0, 27, 0, 0, 0, 11, 1, 64, 114, 17, 49, 6, 116, 108, 68, 0, 6, 65, 64, 48,
-			36, 0, 0, 0, 0, 0, 7, 65, 68, 49, 58, 37, 0, 0, 0, 0, 0, 8, 65, 72, 115, 92, 119, 108, 0, 0, 0, 0, 0, 7,
-			65, 76, 115, 109, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 9, 134, 196, 145, 225, 186, 191, 110, 72, 0, 0,
-			0, 0, 0, 6, 65, 88, 84, 36, 0, 0, 0, 0, 0, 12, 65, 92, 84, 6, 36, 49, 4, 115, 109, 48, 0, 0, 0, 12, 1, 94,
-			79, 6, 135, 109, 65, 6, 40, 111, 0, 0, 0, 14, 1, 96, 79, 6, 135, 109, 107, 58, 6, 137, 108, 50, 0, 7, 65, 96, 37, 109,
-			80, 0, 0, 0, 6, 131, 118, 195, 172, 72, 0, 0, 0, 0, 5, 194, 89, 176, 72, 6, 195, 13, 192, 192, 72, 0, 0, 8, 65, 104,
-			88, 115, 109, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 126,
-			79, 6, 135, 109, 68, 6, 114, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 110, 104, 198, 176, 72, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 110, 104, 198, 176, 110, 103, 72, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 109, 225,
-			187, 151, 105, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 10, 135, 99, 104, 225, 186, 179, 110, 103, 72, 0, 0, 0, 0, 0, 0, 0, 6, 195, 13, 194, 64, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 8, 133, 109, 225, 187, 141, 105, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 11, 136, 107, 104, 111, 225, 186, 163, 110, 103, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 6, 195, 58, 51, 128, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 21, 3, 95, 50, 49, 107, 6, 121, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 21, 3, 95,
-			50, 53, 107, 6, 121, 15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 22, 3, 95, 51, 49, 10, 71, 6,
-			114, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 22, 3, 95, 51, 53, 10, 71, 6, 114, 15, 65, 6,
-			138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			22, 3, 95, 54, 49, 93, 6, 130, 109, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 9, 134, 104, 111, 225, 186, 183,
-			99, 72, 16, 3, 95, 51, 88, 10, 71, 6, 114, 15, 65, 6, 138, 113, 57, 0, 0, 10, 3, 95, 48, 67, 148, 6, 35, 65, 0, 0,
-			0, 22, 3, 95, 54, 53, 93, 6, 130, 109, 15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 23, 3, 95,
-			55, 49, 10, 71, 6, 120, 110, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 23, 3, 95, 55, 53, 10,
-			71, 6, 120, 110, 15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 55, 88, 10, 71, 6, 120, 110, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95, 52, 49, 10, 71, 6, 39, 109, 50, 15, 65, 6, 138, 113, 57, 15, 65, 6,
-			39, 109, 74, 0, 0, 11, 3, 95, 49, 88, 65, 6, 138, 108, 57, 0, 0, 0, 0, 24, 3, 95, 52, 53, 10, 71, 6, 39, 109, 50,
-			15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 9, 134, 107, 104, 195, 180, 110, 103, 72, 0, 7, 132, 116, 104, 195, 172,
-			72, 0, 0, 22, 3, 95, 53, 49, 50, 6, 35, 65, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 15, 3, 95, 50,
-			88, 107, 6, 121, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 8, 133, 196, 145, 225, 187, 131, 72, 22, 3, 95, 53, 53, 50, 6, 35,
-			65, 15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95,
-			52, 88, 10, 71, 6, 39, 109, 50, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 0, 0, 0, 0, 23, 3, 95, 56, 49, 74, 6, 114,
-			109, 65, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 16, 3, 95, 53, 88, 50, 6, 35, 65, 15, 65, 6, 138, 113,
-			57, 0, 0, 0, 0, 23, 3, 95, 56, 53, 74, 6, 114, 109, 65, 15, 65, 6, 138, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0,
-			0, 0, 23, 3, 95, 57, 49, 80, 6, 37, 109, 50, 15, 65, 6, 138, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 16, 3, 95, 54,
-			88, 93, 6, 130, 109, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 23, 3, 95, 57, 53, 80, 6, 37, 109, 50, 15, 65, 6, 138, 113,
-			57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 115, 225, 186, 189, 72, 17, 3,
-			95, 56, 88, 74, 6, 114, 109, 65, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 57, 88, 80, 6,
-			37, 109, 50, 15, 65, 6, 138, 113, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 95, 48, 77, 50,
-			148, 6, 137, 112, 58, 0, 0, 11, 4, 95, 48, 77, 51, 74, 6, 37, 110, 0, 0, 0, 12, 4, 95, 48, 77, 49, 68, 6, 114, 108,
-			50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 112, 104, 225, 186, 163, 105, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 100, 225,
-			186, 171, 117, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 50, 160, 192,
-			72, 5, 194, 49, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
-			133, 118, 225, 187, 155, 105, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 70, 36, 229, 5, 72, 225, 84, 37, 50, 47, 119, 50,
-			6, 115, 109, 47, 0, 0, 0, 0, 0, 0, 0, 8, 133, 99, 104, 198, 176, 97, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 6, 65, 192, 72, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 192, 19, 135, 72, 0, 0, 8, 133, 116, 225, 187, 155,
-			105, 72, 0, 19, 2, 95, 33, 79, 6, 135, 109, 80, 6, 13, 109, 65, 47, 6, 114, 113, 50, 0, 0, 0, 6, 195, 12, 243, 128, 72,
-			17, 2, 95, 39, 68, 58, 6, 35, 112, 117, 10, 72, 6, 119, 113, 50, 0, 0, 0, 0, 0, 0, 0, 17, 2, 95, 41, 10, 72, 6,
-			116, 109, 68, 68, 58, 6, 35, 112, 117, 0, 0, 15, 2, 95, 40, 65, 6, 119, 110, 68, 58, 6, 35, 112, 117, 0, 0, 13, 2, 95,
-			47, 89, 6, 39, 110, 148, 6, 121, 109, 0, 0, 10, 2, 95, 46, 80, 6, 13, 109, 65, 0, 0, 15, 2, 95, 45, 100, 6, 114, 112,
-			80, 68, 6, 114, 113, 68, 0, 0, 9, 2, 95, 44, 83, 6, 122, 110, 0, 0, 9, 2, 95, 51, 10, 71, 6, 114, 0, 0, 8, 2,
-			95, 50, 107, 6, 121, 0, 0, 10, 2, 95, 49, 65, 6, 39, 112, 74, 0, 0, 10, 2, 95, 48, 101, 4, 39, 17, 68, 0, 0, 10,
-			2, 95, 55, 10, 71, 6, 120, 110, 0, 0, 9, 2, 95, 54, 93, 6, 130, 109, 0, 0, 9, 2, 95, 53, 50, 6, 35, 65, 0, 0,
-			11, 2, 95, 52, 10, 71, 6, 39, 109, 50, 0, 0, 14, 2, 95, 59, 80, 6, 13, 109, 65, 83, 6, 122, 110, 0, 0, 14, 2, 95,
-			58, 107, 6, 121, 17, 80, 6, 13, 109, 65, 0, 0, 10, 2, 95, 57, 80, 6, 37, 109, 50, 0, 0, 10, 2, 95, 56, 74, 6, 114,
-			109, 65, 0, 0, 14, 2, 95, 63, 107, 6, 126, 110, 80, 6, 13, 109, 65, 0, 0, 15, 2, 95, 62, 55, 6, 119, 109, 50, 107, 6,
-			119, 113, 50, 0, 0, 0, 14, 2, 95, 60, 67, 6, 116, 110, 107, 6, 119, 113, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 110, 225, 186, 191, 117, 72, 0, 0, 0, 20, 2, 95, 91, 65, 6, 119,
-			110, 68, 58, 6, 35, 112, 117, 84, 6, 139, 113, 68, 0, 0, 18, 4, 95, 226, 128, 156, 68, 58, 6, 35, 112, 117, 49, 6, 115, 109,
-			48, 0, 0, 0, 0, 15, 2, 95, 95, 100, 6, 114, 112, 80, 79, 6, 138, 109, 57, 0, 0, 0, 22, 2, 95, 93, 10, 72, 6, 116,
-			109, 68, 68, 58, 6, 35, 112, 117, 84, 6, 139, 113, 68, 0, 0, 13, 2, 95, 92, 89, 6, 39, 110, 83, 4, 121, 110, 0, 0, 6,
-			195, 44, 130, 64, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 194, 53, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 20, 2, 95, 123, 65, 6, 119, 110, 68, 58, 6, 35, 112, 117, 67, 6, 116, 112, 50, 0, 0, 0, 0, 0, 0, 0,
-			22, 2, 95, 125, 10, 72, 6, 116, 109, 68, 68, 58, 6, 35, 112, 117, 67, 6, 116, 112, 50, 0, 0, 14, 2, 95, 124, 89, 6, 39,
-			110, 47, 6, 35, 110, 68, 0, 0, 0, 0, 12, 5, 95, 48, 97, 110, 100, 55, 4, 37, 67, 0, 0, 0, 0, 0, 11, 136, 196, 145,
-			198, 176, 225, 187, 163, 99, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 135, 110, 104, 225, 187, 175, 110, 103, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131,
-			100, 195, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 118, 225, 186, 171, 110, 72, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 99, 195, 178, 110, 72, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 131, 192, 72, 0, 0, 7, 132, 98, 225, 187, 139,
-			72, 0, 0, 0, 0, 7, 132, 116, 225, 187, 171, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 6, 20, 97, 0, 0, 3, 224, 0, 0, 0, 97, 0, 1, 3, 225, 0, 0, 0, 97, 0, 9, 3, 163, 30,
-			0, 0, 97, 0, 3, 3, 227, 0, 0, 0, 97, 0, 35, 3, 161, 30, 0, 0, 3, 1, 0, 3, 177, 30, 0, 0, 3, 1, 1, 3,
-			175, 30, 0, 0, 3, 1, 9, 3, 179, 30, 0, 0, 3, 1, 3, 3, 181, 30, 0, 0, 3, 1, 35, 3, 183, 30, 0, 0, 226, 0,
-			0, 3, 167, 30, 0, 0, 226, 0, 1, 3, 165, 30, 0, 0, 226, 0, 9, 3, 169, 30, 0, 0, 226, 0, 3, 3, 171, 30, 0, 0,
-			226, 0, 35, 3, 173, 30, 0, 0, 101, 0, 0, 3, 232, 0, 0, 0, 101, 0, 1, 3, 233, 0, 0, 0, 101, 0, 9, 3, 187, 30,
-			0, 0, 101, 0, 3, 3, 189, 30, 0, 0, 101, 0, 35, 3, 185, 30, 0, 0, 234, 0, 0, 3, 193, 30, 0, 0, 234, 0, 1, 3,
-			191, 30, 0, 0, 234, 0, 9, 3, 195, 30, 0, 0, 234, 0, 3, 3, 197, 30, 0, 0, 234, 0, 35, 3, 199, 30, 0, 0, 105, 0,
-			0, 3, 236, 0, 0, 0, 105, 0, 1, 3, 237, 0, 0, 0, 105, 0, 9, 3, 201, 30, 0, 0, 105, 0, 3, 3, 41, 1, 0, 0,
-			105, 0, 35, 3, 203, 30, 0, 0, 111, 0, 0, 3, 242, 0, 0, 0, 111, 0, 1, 3, 243, 0, 0, 0, 111, 0, 9, 3, 207, 30,
-			0, 0, 111, 0, 3, 3, 245, 0, 0, 0, 111, 0, 35, 3, 205, 30, 0, 0, 244, 0, 0, 3, 211, 30, 0, 0, 244, 0, 1, 3,
-			209, 30, 0, 0, 244, 0, 9, 3, 213, 30, 0, 0, 244, 0, 3, 3, 215, 30, 0, 0, 244, 0, 35, 3, 217, 30, 0, 0, 161, 1,
-			0, 3, 221, 30, 0, 0, 161, 1, 1, 3, 219, 30, 0, 0, 161, 1, 9, 3, 223, 30, 0, 0, 161, 1, 3, 3, 225, 30, 0, 0,
-			161, 1, 35, 3, 227, 30, 0, 0, 117, 0, 0, 3, 249, 0, 0, 0, 117, 0, 1, 3, 250, 0, 0, 0, 117, 0, 9, 3, 231, 30,
-			0, 0, 117, 0, 3, 3, 105, 1, 0, 0, 117, 0, 35, 3, 229, 30, 0, 0, 176, 1, 0, 3, 235, 30, 0, 0, 176, 1, 1, 3,
-			233, 30, 0, 0, 176, 1, 9, 3, 237, 30, 0, 0, 176, 1, 3, 3, 239, 30, 0, 0, 176, 1, 35, 3, 241, 30, 0, 0, 121, 0,
-			0, 3, 243, 30, 0, 0, 121, 0, 1, 3, 253, 0, 0, 0, 121, 0, 9, 3, 247, 30, 0, 0, 121, 0, 3, 3, 249, 30, 0, 0,
-			121, 0, 35, 3, 245, 30, 0, 0, 240, 0, 0, 0, 17, 1, 0, 0, 86, 2, 0, 0, 17, 1, 0, 0, 0, 0, 0, 0, 6, 18,
-			66, 110, 99, 104, 0, 110, 101, 0, 110, 100, 0, 110, 116, 0, 99, 104, 0, 116, 104, 0, 109, 101, 0, 116, 101, 0, 108, 101, 0, 99,
-			101, 0, 110, 121, 0, 114, 121, 0, 114, 101, 0, 100, 101, 0, 112, 101, 0, 112, 104, 0, 115, 104, 0, 118, 101, 0, 103, 101, 0, 116,
-			0, 99, 0, 107, 0, 120, 0, 115, 0, 101, 0, 111, 0, 117, 0, 112, 0, 118, 0, 114, 0, 7, 6, 18, 67, 110, 0, 97, 0, 7,
-			6, 18, 68, 99, 104, 0, 110, 104, 0, 116, 0, 7, 6, 18, 69, 225, 186, 163, 0, 225, 186, 161, 0, 225, 187, 167, 0, 225, 187, 165,
-			0, 225, 186, 175, 0, 225, 186, 177, 0, 225, 186, 179, 0, 225, 186, 181, 0, 225, 186, 183, 0, 225, 186, 165, 0, 225, 186, 167, 0, 225,
-			186, 169, 0, 225, 186, 171, 0, 225, 186, 173, 0, 225, 187, 143, 0, 225, 187, 141, 0, 225, 187, 145, 0, 225, 187, 147, 0, 225, 187, 149,
-			0, 225, 187, 151, 0, 225, 187, 153, 0, 225, 187, 169, 0, 225, 187, 171, 0, 225, 187, 173, 0, 225, 187, 175, 0, 225, 187, 177, 0, 225,
-			187, 155, 0, 225, 187, 157, 0, 225, 187, 159, 0, 225, 187, 161, 0, 225, 187, 163, 0, 196, 131, 0, 195, 162, 0, 195, 180, 0, 195, 161,
-			0, 195, 160, 0, 195, 163, 0, 195, 185, 0, 195, 186, 0, 197, 169, 0, 195, 179, 0, 195, 178, 0, 195, 181, 0, 198, 176, 0, 198, 161,
-			0, 97, 0, 117, 0, 111, 0, 7, 6, 195, 160, 0, 3, 114, 108, 0, 121, 3, 120, 108, 0, 4, 105, 3, 121, 108, 0, 121, 5, 2,
-			0, 117, 3, 130, 108, 0, 4, 111, 3, 131, 108, 0, 117, 5, 2, 0, 7, 6, 195, 161, 0, 3, 114, 109, 0, 121, 3, 120, 109, 0,
-			4, 105, 3, 121, 109, 0, 121, 5, 2, 0, 117, 3, 130, 109, 0, 4, 111, 3, 131, 109, 0, 117, 5, 2, 0, 7, 6, 195, 162, 0,
-			3, 13, 0, 4, 5, 1, 2, 18, 68, 3, 35, 0, 5, 2, 2, 18, 68, 0, 121, 3, 122, 0, 117, 3, 135, 17, 0, 7, 6, 195,
-			163, 0, 3, 114, 111, 0, 121, 3, 120, 111, 0, 4, 105, 3, 121, 111, 0, 121, 5, 2, 0, 117, 3, 130, 111, 0, 4, 111, 3, 131,
-			111, 0, 117, 5, 2, 0, 7, 6, 195, 168, 0, 3, 115, 108, 0, 111, 3, 133, 108, 0, 7, 6, 195, 169, 0, 3, 115, 109, 0, 111,
-			3, 133, 109, 0, 7, 6, 195, 170, 0, 3, 36, 0, 4, 5, 2, 2, 18, 67, 3, 119, 0, 5, 2, 2, 18, 68, 0, 117, 3, 132,
-			17, 0, 7, 6, 195, 172, 0, 4, 5, 1, 2, 18, 68, 3, 13, 108, 0, 5, 2, 2, 18, 67, 0, 5, 2, 2, 18, 68, 0, 3,
-			37, 108, 0, 2, 17, 65, 3, 57, 108, 0, 117, 3, 134, 108, 0, 97, 3, 137, 108, 0, 7, 6, 195, 173, 0, 4, 5, 1, 2, 18,
-			68, 3, 13, 109, 0, 5, 2, 2, 18, 67, 0, 5, 2, 2, 18, 68, 0, 3, 37, 109, 0, 2, 17, 65, 3, 57, 109, 0, 117, 3,
-			134, 109, 0, 97, 3, 137, 109, 0, 7, 6, 195, 177, 0, 3, 67, 0, 7, 6, 195, 178, 0, 3, 116, 108, 0, 105, 3, 126, 108, 0,
-			110, 103, 3, 141, 108, 0, 97, 3, 142, 108, 0, 101, 3, 143, 108, 0, 7, 6, 195, 179, 0, 3, 116, 109, 0, 105, 3, 126, 109, 0,
-			110, 103, 3, 141, 109, 0, 97, 3, 142, 109, 0, 101, 3, 143, 109, 0, 7, 6, 195, 180, 0, 3, 39, 0, 105, 3, 127, 0, 110, 103,
-			3, 140, 0, 105, 5, 2, 3, 146, 0, 7, 6, 195, 181, 0, 3, 116, 111, 0, 105, 3, 126, 111, 0, 110, 103, 3, 141, 111, 0, 97,
-			3, 142, 111, 0, 101, 3, 143, 111, 0, 7, 6, 195, 185, 0, 3, 40, 108, 0, 2, 17, 65, 3, 58, 108, 0, 105, 3, 128, 108, 0,
-			97, 3, 139, 108, 0, 5, 2, 3, 147, 108, 0, 7, 6, 195, 186, 0, 3, 40, 109, 0, 2, 17, 65, 3, 58, 109, 0, 105, 3, 128,
-			109, 0, 97, 3, 139, 109, 0, 5, 2, 3, 147, 109, 0, 7, 6, 195, 189, 0, 3, 37, 109, 0, 2, 17, 65, 3, 57, 109, 0, 97,
-			3, 137, 109, 0, 7, 6, 196, 131, 0, 3, 35, 0, 7, 6, 196, 145, 0, 8, 3, 149, 0, 7, 6, 196, 169, 0, 4, 5, 1, 2,
-			18, 68, 3, 13, 111, 0, 5, 2, 2, 18, 67, 0, 5, 2, 2, 18, 68, 0, 3, 37, 111, 0, 2, 17, 65, 3, 57, 111, 0, 117,
-			3, 134, 111, 0, 97, 3, 137, 111, 0, 7, 6, 197, 169, 0, 3, 40, 111, 0, 2, 17, 65, 3, 58, 111, 0, 105, 3, 128, 111, 0,
-			97, 3, 139, 111, 0, 5, 2, 3, 147, 111, 0, 7, 6, 198, 161, 0, 105, 5, 2, 3, 14, 0, 3, 119, 0, 105, 3, 123, 0, 117,
-			3, 136, 0, 7, 6, 198, 176, 0, 3, 118, 0, 117, 3, 118, 58, 0, 105, 3, 129, 0, 4, 97, 3, 138, 0, 198, 161, 0, 198, 161,
-			105, 3, 138, 57, 0, 225, 187, 157, 105, 3, 138, 57, 108, 0, 225, 187, 155, 105, 3, 138, 57, 109, 0, 225, 187, 159, 105, 3, 138, 57,
-			110, 0, 225, 187, 161, 105, 3, 138, 57, 111, 0, 225, 187, 163, 105, 3, 138, 57, 112, 0, 198, 161, 117, 3, 138, 58, 0, 225, 187, 157,
-			117, 3, 138, 58, 108, 0, 225, 187, 155, 117, 3, 138, 58, 109, 0, 225, 187, 159, 117, 3, 138, 58, 110, 0, 225, 187, 161, 117, 3, 138,
-			58, 111, 0, 225, 187, 163, 117, 3, 138, 58, 112, 0, 225, 187, 157, 3, 138, 108, 0, 225, 187, 155, 3, 138, 109, 0, 225, 187, 159, 3,
-			138, 110, 0, 225, 187, 161, 3, 138, 111, 0, 225, 187, 163, 3, 138, 112, 0, 7, 6, 225, 186, 0, 163, 3, 114, 110, 0, 163, 121, 3,
-			120, 110, 0, 4, 163, 105, 3, 121, 110, 0, 163, 121, 5, 2, 0, 163, 117, 3, 130, 110, 0, 4, 163, 111, 3, 131, 110, 0, 163, 117,
-			5, 2, 0, 161, 3, 114, 112, 0, 161, 121, 3, 120, 112, 0, 4, 161, 105, 3, 121, 112, 0, 161, 121, 5, 2, 0, 161, 117, 3, 130,
-			112, 0, 4, 161, 111, 3, 131, 112, 0, 161, 117, 5, 2, 0, 177, 3, 35, 108, 0, 175, 3, 35, 109, 0, 179, 3, 35, 110, 0, 181,
-			3, 35, 111, 0, 183, 3, 35, 112, 0, 167, 3, 13, 108, 0, 4, 167, 5, 1, 2, 18, 68, 3, 35, 108, 0, 167, 5, 2, 2, 18,
-			68, 0, 167, 121, 3, 122, 108, 0, 167, 117, 3, 135, 108, 0, 165, 3, 13, 109, 0, 4, 165, 5, 1, 2, 18, 68, 3, 35, 109, 0,
-			165, 5, 2, 2, 18, 68, 0, 165, 121, 3, 122, 109, 0, 165, 117, 3, 135, 109, 0, 169, 3, 13, 110, 0, 169, 121, 3, 122, 110, 0,
-			169, 117, 3, 135, 110, 0, 171, 3, 13, 111, 0, 171, 121, 3, 122, 111, 0, 171, 117, 3, 135, 111, 0, 173, 3, 13, 112, 0, 4, 173,
-			5, 1, 2, 18, 68, 3, 35, 112, 0, 173, 5, 2, 2, 18, 68, 0, 173, 121, 3, 122, 112, 0, 173, 117, 3, 135, 112, 0, 187, 3,
-			115, 110, 0, 187, 111, 3, 133, 110, 0, 189, 3, 115, 111, 0, 189, 111, 3, 133, 111, 0, 185, 3, 115, 112, 0, 185, 111, 3, 133, 112,
-			0, 191, 3, 36, 109, 0, 4, 191, 5, 2, 2, 18, 67, 3, 119, 109, 0, 191, 5, 2, 2, 18, 68, 0, 191, 117, 3, 132, 109, 0,
-			7, 6, 225, 187, 0, 129, 3, 36, 108, 0, 4, 129, 5, 2, 2, 18, 67, 3, 119, 108, 0, 129, 5, 2, 2, 18, 68, 0, 129, 117,
-			3, 132, 108, 0, 131, 3, 36, 110, 0, 4, 131, 5, 2, 2, 18, 67, 3, 119, 110, 0, 131, 5, 2, 2, 18, 68, 0, 131, 117, 3,
-			132, 110, 0, 133, 3, 36, 111, 0, 4, 133, 5, 2, 2, 18, 67, 3, 119, 111, 0, 133, 5, 2, 2, 18, 68, 0, 133, 117, 3, 132,
-			111, 0, 135, 3, 36, 112, 0, 4, 135, 5, 2, 2, 18, 67, 3, 119, 112, 0, 135, 5, 2, 2, 18, 68, 0, 135, 117, 3, 132, 112,
-			0, 4, 137, 5, 1, 2, 18, 68, 3, 13, 110, 0, 137, 5, 2, 2, 18, 67, 0, 137, 5, 2, 2, 18, 68, 0, 137, 3, 37, 110,
-			0, 137, 2, 17, 65, 3, 57, 110, 0, 137, 117, 3, 134, 110, 0, 137, 97, 3, 137, 110, 0, 4, 139, 5, 1, 2, 18, 68, 3, 13,
-			112, 0, 139, 5, 2, 2, 18, 67, 0, 139, 5, 2, 2, 18, 68, 0, 139, 3, 37, 112, 0, 139, 2, 17, 65, 3, 57, 112, 0, 139,
-			117, 3, 134, 112, 0, 139, 97, 3, 137, 112, 0, 143, 3, 116, 110, 0, 143, 105, 3, 126, 110, 0, 143, 110, 103, 3, 141, 110, 0, 143,
-			97, 3, 142, 110, 0, 143, 101, 3, 143, 110, 0, 141, 3, 116, 112, 0, 141, 105, 3, 126, 112, 0, 141, 110, 103, 3, 141, 112, 0, 141,
-			97, 3, 142, 112, 0, 141, 101, 3, 143, 112, 0, 147, 3, 39, 108, 0, 147, 105, 3, 127, 108, 0, 147, 110, 103, 3, 140, 108, 0, 147,
-			105, 5, 2, 3, 146, 108, 0, 145, 3, 39, 109, 0, 145, 105, 3, 127, 109, 0, 145, 110, 103, 3, 140, 109, 0, 145, 105, 5, 2, 3,
-			146, 109, 0, 149, 3, 39, 110, 0, 149, 105, 3, 127, 110, 0, 149, 110, 103, 3, 140, 110, 0, 149, 105, 5, 2, 3, 146, 110, 0, 151,
-			3, 39, 111, 0, 151, 105, 3, 127, 111, 0, 151, 110, 103, 3, 140, 111, 0, 151, 105, 5, 2, 3, 146, 111, 0, 153, 3, 39, 112, 0,
-			153, 105, 3, 127, 112, 0, 153, 105, 5, 2, 3, 146, 112, 0, 157, 105, 5, 2, 3, 14, 108, 0, 157, 3, 119, 108, 0, 157, 105, 3,
-			123, 108, 0, 157, 117, 3, 136, 108, 0, 155, 105, 5, 2, 3, 14, 109, 0, 155, 3, 119, 109, 0, 155, 105, 3, 123, 109, 0, 155, 117,
-			3, 136, 109, 0, 159, 105, 5, 2, 3, 14, 110, 0, 159, 3, 119, 110, 0, 159, 105, 3, 123, 110, 0, 159, 117, 3, 136, 110, 0, 161,
-			105, 5, 2, 3, 14, 111, 0, 161, 3, 119, 111, 0, 161, 105, 3, 123, 111, 0, 161, 117, 3, 136, 111, 0, 163, 105, 5, 2, 3, 14,
-			112, 0, 163, 3, 119, 112, 0, 163, 105, 3, 123, 112, 0, 163, 117, 3, 136, 112, 0, 167, 3, 40, 110, 0, 167, 2, 17, 65, 3, 58,
-			110, 0, 167, 105, 3, 128, 110, 0, 167, 97, 3, 139, 110, 0, 167, 5, 2, 3, 147, 110, 0, 165, 3, 40, 112, 0, 165, 2, 17, 65,
-			3, 58, 112, 0, 165, 105, 3, 128, 112, 0, 165, 97, 3, 139, 112, 0, 165, 5, 2, 3, 147, 112, 0, 171, 3, 118, 108, 0, 171, 117,
-			3, 118, 108, 58, 108, 0, 171, 105, 3, 129, 108, 0, 171, 97, 3, 138, 108, 0, 169, 3, 118, 109, 0, 169, 117, 3, 118, 109, 58, 109,
-			0, 169, 105, 3, 129, 109, 0, 169, 97, 3, 138, 109, 0, 173, 3, 118, 110, 0, 173, 117, 3, 118, 110, 58, 110, 0, 173, 105, 3, 129,
-			110, 0, 173, 97, 3, 138, 110, 0, 175, 3, 118, 111, 0, 175, 117, 3, 118, 111, 58, 111, 0, 175, 105, 3, 129, 111, 0, 175, 97, 3,
-			138, 111, 0, 177, 3, 118, 112, 0, 177, 117, 3, 118, 112, 58, 112, 0, 177, 105, 3, 129, 112, 0, 177, 97, 3, 138, 112, 0, 179, 3,
-			37, 108, 0, 179, 2, 17, 65, 3, 57, 108, 0, 179, 97, 3, 137, 108, 0, 183, 3, 37, 110, 0, 183, 2, 17, 65, 3, 57, 110, 0,
-			183, 97, 3, 137, 110, 0, 185, 3, 37, 111, 0, 185, 2, 17, 65, 3, 57, 111, 0, 185, 97, 3, 137, 111, 0, 181, 3, 37, 112, 0,
-			181, 2, 17, 65, 3, 57, 112, 0, 181, 97, 3, 137, 112, 0, 7, 6, 97, 0, 4, 2, 18, 66, 3, 21, 0, 2, 21, 0, 105, 2,
-			18, 67, 0, 3, 114, 0, 121, 3, 120, 0, 195, 189, 3, 120, 109, 0, 225, 187, 183, 3, 120, 110, 0, 225, 187, 185, 3, 120, 111, 0,
-			225, 187, 181, 3, 120, 112, 0, 4, 105, 3, 121, 0, 121, 5, 2, 0, 195, 172, 3, 121, 108, 0, 195, 173, 3, 121, 109, 0, 225, 187,
-			137, 3, 121, 110, 0, 196, 169, 3, 121, 111, 0, 225, 187, 139, 3, 121, 112, 0, 117, 3, 130, 0, 195, 185, 3, 130, 108, 0, 195, 186,
-			3, 130, 109, 0, 225, 187, 167, 3, 130, 110, 0, 197, 169, 3, 130, 111, 0, 225, 187, 165, 3, 130, 112, 0, 4, 111, 3, 131, 0, 117,
-			5, 2, 0, 195, 178, 3, 131, 108, 0, 195, 179, 3, 131, 109, 0, 225, 187, 143, 3, 131, 110, 0, 195, 181, 3, 131, 111, 0, 225, 187,
-			141, 3, 131, 112, 0, 7, 6, 98, 0, 8, 3, 10, 71, 0, 3, 71, 0, 7, 6, 99, 0, 4, 2, 17, 67, 3, 21, 0, 101, 2,
-			32, 0, 108, 8, 0, 104, 8, 3, 78, 0, 4, 104, 2, 32, 3, 80, 0, 104, 5, 1, 8, 0, 104, 5, 2, 8, 0, 3, 81, 0,
-			2, 32, 3, 117, 0, 7, 6, 100, 0, 2, 32, 3, 21, 0, 3, 88, 0, 4, 5, 1, 3, 98, 0, 5, 2, 0, 7, 6, 101, 0,
-			4, 2, 18, 66, 3, 21, 0, 2, 21, 0, 121, 2, 32, 0, 3, 115, 0, 111, 3, 133, 0, 195, 178, 3, 133, 108, 0, 195, 179, 3,
-			133, 109, 0, 225, 187, 143, 3, 133, 110, 0, 225, 187, 151, 3, 133, 111, 0, 225, 187, 141, 3, 133, 112, 0, 7, 6, 102, 0, 4, 2,
-			32, 3, 21, 0, 8, 0, 7, 6, 103, 0, 4, 8, 3, 21, 0, 97, 116, 8, 0, 104, 116, 2, 32, 0, 111, 108, 8, 0, 4, 2,
-			195, 172, 3, 88, 0, 2, 195, 173, 0, 2, 196, 169, 0, 2, 225, 187, 137, 0, 2, 225, 187, 139, 0, 105, 0, 105, 195, 170, 110, 103,
-			3, 88, 6, 144, 17, 68, 0, 105, 225, 187, 129, 110, 103, 3, 88, 6, 144, 108, 68, 0, 105, 225, 186, 191, 110, 103, 3, 88, 6, 144,
-			109, 68, 0, 105, 225, 186, 191, 116, 3, 88, 6, 144, 109, 74, 0, 105, 225, 186, 191, 99, 3, 88, 6, 144, 109, 117, 0, 105, 225, 187,
-			131, 110, 103, 3, 88, 6, 144, 110, 68, 0, 105, 225, 187, 133, 110, 103, 3, 88, 6, 144, 111, 68, 0, 105, 225, 187, 135, 110, 103, 3,
-			88, 6, 144, 112, 68, 0, 105, 225, 187, 135, 116, 3, 88, 6, 144, 112, 74, 0, 105, 225, 187, 135, 99, 3, 88, 6, 144, 112, 117, 0,
-			4, 5, 1, 2, 195, 172, 3, 98, 0, 5, 1, 2, 195, 173, 0, 5, 1, 2, 196, 169, 0, 5, 1, 2, 225, 187, 137, 0, 5, 1,
-			2, 225, 187, 139, 0, 5, 2, 2, 195, 172, 0, 5, 2, 2, 195, 173, 0, 5, 2, 2, 196, 169, 0, 5, 2, 2, 225, 187, 137, 0,
-			5, 2, 2, 225, 187, 139, 0, 105, 5, 1, 0, 105, 5, 2, 0, 4, 105, 195, 170, 110, 103, 5, 1, 3, 98, 6, 144, 17, 68, 0,
-			105, 195, 170, 110, 103, 5, 2, 0, 4, 105, 225, 187, 129, 110, 103, 5, 1, 3, 98, 6, 144, 108, 68, 0, 105, 225, 187, 129, 110, 103,
-			5, 2, 0, 4, 105, 225, 186, 191, 110, 103, 5, 1, 3, 98, 6, 144, 109, 68, 0, 105, 225, 186, 191, 110, 103, 5, 2, 0, 4, 105,
-			225, 186, 191, 116, 5, 1, 3, 98, 6, 144, 109, 81, 0, 105, 225, 186, 191, 116, 5, 2, 0, 105, 225, 187, 135, 116, 5, 1, 3, 98,
-			6, 144, 112, 81, 0, 4, 2, 18, 69, 3, 100, 0, 104, 0, 7, 6, 104, 0, 117, 5, 2, 3, 58, 0, 3, 107, 0, 7, 6, 105,
-			0, 4, 5, 1, 2, 18, 68, 3, 13, 0, 5, 2, 2, 18, 67, 0, 5, 2, 2, 18, 68, 0, 4, 2, 18, 66, 3, 21, 0, 2,
-			21, 0, 3, 37, 0, 4, 117, 3, 134, 0, 195, 170, 117, 0, 4, 195, 185, 3, 134, 108, 0, 225, 187, 129, 117, 0, 4, 195, 186, 3,
-			134, 109, 0, 225, 186, 191, 117, 0, 4, 225, 187, 131, 117, 3, 134, 110, 0, 225, 187, 167, 0, 4, 197, 169, 3, 134, 111, 0, 225, 187,
-			133, 117, 0, 4, 225, 187, 135, 117, 3, 134, 112, 0, 225, 187, 165, 0, 97, 3, 137, 0, 195, 160, 3, 137, 108, 0, 195, 161, 3, 137,
-			109, 0, 225, 186, 163, 3, 137, 110, 0, 195, 163, 3, 137, 111, 0, 225, 186, 161, 3, 137, 112, 0, 195, 170, 3, 144, 0, 225, 187, 129,
-			3, 144, 108, 0, 225, 186, 191, 3, 144, 109, 0, 225, 187, 131, 3, 144, 110, 0, 225, 187, 133, 3, 144, 111, 0, 225, 187, 135, 3, 144,
-			112, 0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0, 2, 32, 3, 21, 0, 8, 3, 49, 0, 104, 8, 3, 101, 0, 7, 6, 108,
-			0, 4, 2, 32, 3, 21, 0, 101, 1, 17, 67, 0, 3, 55, 0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 100, 2, 32, 3,
-			21, 0, 4, 3, 50, 0, 104, 5, 2, 1, 18, 67, 0, 104, 3, 67, 0, 4, 5, 1, 2, 32, 3, 68, 0, 5, 2, 2, 32, 0,
-			103, 0, 103, 104, 0, 7, 6, 111, 0, 2, 21, 3, 21, 0, 3, 116, 0, 105, 3, 126, 0, 195, 172, 3, 126, 108, 0, 195, 173, 3,
-			126, 109, 0, 225, 187, 137, 3, 126, 110, 0, 196, 169, 3, 126, 111, 0, 225, 187, 139, 3, 126, 112, 0, 110, 103, 3, 141, 0, 4, 97,
-			3, 142, 0, 111, 0, 196, 131, 3, 142, 17, 0, 4, 195, 160, 3, 142, 108, 0, 225, 186, 177, 0, 4, 195, 161, 3, 142, 109, 0, 225,
-			186, 175, 0, 4, 225, 186, 163, 3, 142, 110, 0, 225, 186, 179, 0, 4, 195, 163, 3, 142, 111, 0, 225, 186, 181, 0, 4, 225, 186, 161,
-			3, 142, 112, 0, 225, 186, 183, 0, 101, 3, 143, 0, 97, 105, 3, 145, 0, 195, 160, 105, 3, 145, 108, 0, 195, 161, 105, 3, 145, 109,
-			0, 225, 186, 163, 105, 3, 145, 110, 0, 195, 163, 105, 3, 145, 111, 0, 225, 186, 161, 105, 3, 145, 112, 0, 7, 6, 112, 0, 2, 17,
-			67, 3, 21, 0, 3, 48, 0, 104, 3, 83, 0, 7, 6, 113, 0, 3, 49, 0, 117, 3, 58, 0, 2, 32, 3, 117, 0, 7, 6, 114,
-			0, 4, 2, 32, 3, 21, 0, 109, 2, 32, 0, 3, 88, 0, 5, 1, 3, 92, 0, 5, 2, 3, 100, 0, 7, 6, 115, 0, 4, 2,
-			32, 3, 21, 0, 104, 8, 0, 116, 2, 32, 0, 3, 93, 0, 7, 6, 116, 0, 4, 104, 2, 32, 3, 21, 0, 115, 2, 32, 0, 116,
-			2, 32, 0, 104, 3, 47, 0, 3, 74, 0, 114, 3, 76, 0, 114, 5, 2, 3, 80, 0, 4, 5, 1, 2, 32, 3, 117, 0, 5, 2,
-			2, 32, 0, 114, 5, 1, 3, 148, 0, 7, 6, 117, 0, 4, 2, 18, 66, 3, 21, 0, 2, 21, 0, 3, 40, 0, 4, 1, 17, 65,
-			3, 58, 0, 2, 17, 65, 0, 105, 3, 128, 0, 195, 172, 3, 128, 108, 0, 195, 173, 3, 128, 109, 0, 225, 187, 137, 3, 128, 110, 0,
-			196, 169, 3, 128, 111, 0, 225, 187, 139, 3, 128, 112, 0, 4, 97, 3, 139, 0, 195, 180, 0, 195, 180, 105, 3, 139, 57, 0, 225, 187,
-			147, 105, 3, 139, 57, 108, 0, 225, 187, 145, 105, 3, 139, 57, 109, 0, 225, 187, 149, 105, 3, 139, 57, 110, 0, 225, 187, 151, 105, 3,
-			139, 57, 111, 0, 225, 187, 153, 105, 3, 139, 57, 112, 0, 4, 195, 160, 3, 139, 108, 0, 225, 187, 147, 0, 4, 195, 161, 3, 139, 109,
-			0, 225, 187, 145, 0, 4, 225, 186, 163, 3, 139, 110, 0, 225, 187, 149, 0, 4, 195, 163, 3, 139, 111, 0, 225, 187, 151, 0, 4, 225,
-			186, 161, 3, 139, 112, 0, 225, 187, 153, 0, 5, 2, 3, 147, 0, 7, 6, 118, 0, 101, 2, 17, 65, 3, 21, 0, 3, 84, 0, 5,
-			2, 3, 98, 0, 7, 6, 119, 0, 4, 2, 32, 3, 21, 0, 8, 0, 3, 58, 0, 7, 6, 120, 0, 2, 32, 3, 21, 0, 3, 89,
-			0, 7, 6, 121, 0, 4, 1, 117, 98, 3, 21, 0, 2, 18, 66, 0, 3, 37, 0, 4, 97, 3, 137, 0, 195, 170, 0, 4, 195, 160,
-			3, 137, 108, 0, 225, 187, 129, 0, 4, 195, 161, 3, 137, 109, 0, 225, 186, 191, 0, 4, 225, 186, 163, 3, 137, 110, 0, 225, 187, 131,
-			0, 4, 195, 163, 3, 137, 111, 0, 225, 187, 133, 0, 4, 225, 186, 161, 3, 137, 112, 0, 225, 187, 135, 0, 7, 6, 122, 0, 2, 32,
-			3, 21, 0, 3, 88, 0, 7, 6, 206, 0, 4, 174, 3, 36, 17, 23, 74, 6, 114, 17, 0, 183, 0, 4, 175, 3, 37, 17, 23, 6,
-			39, 17, 23, 74, 6, 114, 17, 0, 185, 0, 191, 3, 39, 17, 23, 65, 6, 37, 17, 23, 49, 92, 6, 116, 113, 50, 0, 184, 3, 47,
-			6, 36, 17, 23, 74, 6, 114, 17, 0, 186, 3, 49, 6, 114, 17, 48, 23, 48, 6, 114, 17, 0, 189, 3, 50, 58, 6, 37, 17, 0,
-			187, 3, 55, 6, 35, 17, 65, 23, 10, 72, 6, 114, 17, 0, 188, 3, 65, 58, 6, 37, 17, 0, 178, 3, 71, 6, 36, 17, 23, 74,
-			6, 114, 17, 0, 180, 3, 79, 6, 115, 17, 50, 23, 74, 6, 114, 17, 0, 182, 3, 86, 6, 36, 17, 23, 74, 6, 114, 17, 0, 190,
-			3, 89, 6, 37, 113, 0, 179, 3, 100, 6, 114, 17, 23, 65, 6, 114, 17, 0, 4, 172, 3, 114, 17, 50, 23, 83, 6, 114, 17, 0,
-			177, 0, 4, 173, 3, 115, 17, 48, 23, 89, 6, 37, 17, 23, 55, 6, 116, 17, 50, 0, 181, 0, 7, 6, 207, 0, 4, 137, 3, 39,
-			17, 23, 65, 6, 36, 17, 23, 100, 6, 114, 113, 0, 142, 0, 140, 3, 39, 17, 23, 65, 6, 37, 17, 23, 49, 92, 6, 116, 113, 50,
-			0, 4, 133, 3, 40, 17, 48, 23, 89, 6, 37, 17, 23, 55, 6, 116, 17, 50, 0, 141, 0, 128, 3, 48, 6, 37, 17, 0, 136, 3,
-			48, 89, 6, 37, 17, 0, 132, 3, 74, 6, 39, 17, 0, 135, 3, 80, 6, 37, 17, 0, 134, 3, 83, 6, 37, 17, 0, 4, 130, 3,
-			89, 6, 37, 109, 80, 23, 65, 6, 114, 17, 0, 131, 0, 129, 3, 92, 6, 39, 17, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 46,
-			1, 46, 3, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 80, 6, 13, 109, 65, 23, 47, 6, 114, 113, 50, 9, 0, 4, 45, 1, 32,
-			17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32, 15, 0, 62, 61, 3, 55, 6, 119, 109, 50, 23, 107, 6, 119, 17,
-			50, 23, 107, 58, 4, 35, 112, 117, 10, 71, 6, 35, 108, 68, 0, 60, 61, 3, 67, 6, 116, 110, 23, 107, 6, 119, 17, 50, 23, 107,
-			58, 4, 35, 112, 117, 10, 71, 6, 35, 108, 68, 0, 36, 3, 72, 6, 39, 15, 55, 6, 35, 0, 46, 3, 80, 6, 13, 109, 65, 10,
-			0, 37, 3, 83, 6, 13, 108, 50, 15, 148, 6, 35, 65, 0, 104, 1, 32, 15, 2, 32, 15, 15, 32, 3, 86, 6, 119, 108, 0, 33,
-			61, 3, 101, 6, 140, 23, 10, 71, 6, 35, 108, 68, 10, 0, 45, 8, 32, 2, 32, 15, 3, 148, 6, 118, 108, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts67 = FileInMemory_createWithData (7438, reinterpret_cast<const char *> (&espeakdata_dicts67_data), 
-			U"espeak-1.48.04-source/espeak-data/vi_dict", 
+		static unsigned char espeakdata_dicts68_data[5837] = {
+			0, 4, 0, 0, 100, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 8, 71, 36, 0, 0, 0, 0, 0, 6, 65, 12,
+			89, 36, 0, 0, 0, 0, 0, 6, 65, 16, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65, 24, 115, 109, 48, 0, 0, 0,
+			0, 0, 8, 65, 28, 86, 6, 36, 113, 0, 0, 0, 0, 0, 8, 65, 32, 107, 35, 109, 47, 0, 0, 0, 7, 132, 196, 145, 195, 163,
+			72, 0, 14, 1, 35, 79, 6, 134, 109, 47, 6, 35, 113, 68, 0, 27, 0, 17, 1, 36, 79, 6, 134, 109, 10, 72, 6, 39, 17, 55,
+			6, 114, 113, 0, 0, 15, 1, 37, 83, 6, 13, 108, 50, 80, 34, 6, 35, 113, 65, 0, 0, 12, 1, 38, 79, 6, 134, 109, 84, 4,
+			114, 108, 0, 0, 0, 6, 65, 40, 81, 37, 0, 0, 0, 13, 1, 42, 79, 6, 134, 109, 93, 6, 130, 113, 0, 27, 0, 14, 1, 43,
+			79, 6, 134, 109, 49, 6, 39, 112, 68, 0, 27, 0, 6, 65, 44, 49, 114, 0, 0, 0, 0, 0, 8, 65, 48, 115, 55, 118, 108, 0,
+			0, 0, 6, 131, 22, 195, 172, 72, 0, 0, 8, 65, 52, 115, 65, 118, 108, 0, 0, 0, 0, 0, 12, 5, 95, 48, 1, 14, 4, 55,
+			4, 37, 67, 0, 8, 65, 56, 115, 50, 118, 108, 0, 0, 0, 0, 0, 0, 15, 1, 61, 79, 6, 134, 109, 10, 71, 6, 35, 108, 68,
+			0, 27, 0, 6, 131, 22, 195, 160, 72, 0, 0, 11, 1, 64, 114, 17, 49, 6, 116, 108, 68, 0, 6, 65, 64, 48, 36, 0, 0, 0,
+			0, 0, 7, 65, 68, 49, 58, 37, 0, 0, 8, 133, 13, 225, 187, 151, 9, 72, 0, 0, 0, 8, 65, 72, 115, 92, 118, 108, 0, 0,
+			0, 0, 0, 7, 65, 76, 115, 109, 89, 0, 0, 0, 0, 0, 6, 65, 80, 47, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65,
+			88, 84, 36, 0, 0, 0, 0, 0, 12, 65, 92, 84, 6, 36, 49, 4, 115, 109, 48, 0, 0, 0, 12, 1, 94, 79, 6, 134, 109, 65,
+			6, 40, 111, 0, 0, 0, 14, 1, 96, 79, 6, 134, 109, 107, 58, 6, 136, 108, 50, 0, 7, 65, 96, 37, 109, 80, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 8, 65, 104, 88, 115, 109, 47, 0, 0, 0, 0, 0, 7, 132, 19, 225, 186, 189, 72, 0, 7, 132, 3, 195, 178,
+			14, 72, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 13, 225, 187, 141, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 126,
+			79, 6, 134, 109, 68, 6, 114, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 10, 135, 14, 8, 225, 187, 175, 14, 7, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 7, 132, 20, 8, 195, 172, 72, 7, 132, 14, 8, 198, 176, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 13, 4, 95, 4, 16, 20, 10, 83, 4, 121, 110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 8,
+			15, 225, 186, 183, 3, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 10, 135, 3, 8, 225, 186, 179, 14, 7, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 134, 14, 8, 198, 176, 14, 7, 72, 0, 0, 0, 0, 0,
+			0, 0, 21, 3, 95, 50, 49, 107, 6, 120, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 21, 3, 95,
+			50, 53, 107, 6, 120, 15, 65, 6, 137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 22, 3, 95, 51, 49, 10, 71, 6,
+			114, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 22, 3, 95, 51, 53, 10, 71, 6, 114, 15, 65, 6,
+			137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			22, 3, 95, 54, 49, 93, 6, 129, 109, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 16, 3, 95, 51, 88, 10, 71,
+			6, 114, 15, 65, 6, 137, 113, 57, 0, 0, 11, 3, 95, 48, 67, 80, 34, 6, 35, 65, 0, 0, 0, 22, 3, 95, 54, 53, 93, 6,
+			129, 109, 15, 65, 6, 137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 23, 3, 95, 55, 49, 10, 71, 6, 119, 110, 15,
+			65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 0, 0, 0, 23, 3, 95, 55, 53, 10, 71, 6, 119, 110, 15, 65, 6, 137,
+			113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+			132, 14, 195, 170, 14, 72, 0, 17, 3, 95, 55, 88, 10, 71, 6, 119, 110, 15, 65, 6, 137, 113, 57, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 3, 95, 52, 49, 10, 71, 6, 39, 109, 50, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39,
+			109, 74, 0, 0, 11, 3, 95, 49, 88, 65, 6, 137, 108, 57, 0, 0, 0, 9, 134, 16, 8, 225, 186, 163, 9, 72, 0, 24, 3, 95,
+			52, 53, 10, 71, 6, 39, 109, 50, 15, 65, 6, 137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 22, 3, 95, 53, 49,
+			50, 6, 35, 65, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 6, 131, 12, 195, 160, 72, 15, 3, 95, 50, 88, 107,
+			6, 120, 15, 65, 6, 137, 113, 57, 0, 0, 0, 0, 8, 133, 196, 145, 225, 187, 131, 72, 22, 3, 95, 53, 53, 50, 6, 35, 65, 15,
+			65, 6, 137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 95, 52, 88,
+			10, 71, 6, 39, 109, 50, 15, 65, 6, 137, 113, 57, 0, 0, 0, 0, 0, 0, 0, 0, 23, 3, 95, 56, 49, 74, 6, 114, 109, 65,
+			15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 16, 3, 95, 53, 88, 50, 6, 35, 65, 15, 65, 6, 137, 113, 57, 0,
+			0, 0, 0, 23, 3, 95, 56, 53, 74, 6, 114, 109, 65, 15, 65, 6, 137, 113, 57, 15, 55, 6, 35, 113, 65, 0, 0, 0, 0, 0,
+			23, 3, 95, 57, 49, 80, 6, 37, 109, 50, 15, 65, 6, 137, 113, 57, 15, 65, 6, 39, 109, 74, 0, 0, 16, 3, 95, 54, 88, 93,
+			6, 129, 109, 15, 65, 6, 137, 113, 57, 0, 0, 0, 0, 23, 3, 95, 57, 53, 80, 6, 37, 109, 50, 15, 65, 6, 137, 113, 57, 15,
+			55, 6, 35, 113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 95, 56, 88, 74, 6, 114, 109, 65, 15,
+			65, 6, 137, 113, 57, 0, 0, 0, 0, 0, 0, 8, 133, 4, 225, 186, 171, 21, 72, 0, 0, 0, 17, 3, 95, 57, 88, 80, 6, 37,
+			109, 50, 15, 65, 6, 137, 113, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131, 13, 195, 160, 72, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 8, 133, 22, 225, 187, 155, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 132, 12, 195, 186, 3, 72, 0, 0, 0, 0, 0, 0, 0, 13, 4, 95, 48, 77, 50, 80, 34, 6, 136, 112, 58, 0, 0, 11, 4,
+			95, 48, 77, 51, 74, 6, 37, 110, 0, 0, 0, 12, 4, 95, 48, 77, 49, 68, 6, 114, 108, 50, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 136, 11, 8, 15, 225, 186, 163, 14, 7, 72, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			9, 134, 11, 8, 195, 180, 14, 7, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 20, 225, 187, 171, 72,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 8, 133, 20, 225, 187, 155, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,
+			196, 145, 72, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 132, 2, 225, 187, 139, 72, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 14, 225, 186, 191, 21, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 133, 196, 145,
+			1, 14, 7, 72, 0, 0, 0, 19, 2, 95, 33, 79, 6, 134, 109, 80, 6, 13, 109, 65, 47, 6, 114, 113, 50, 0, 0, 0, 6, 195,
+			12, 243, 128, 72, 17, 2, 95, 39, 68, 58, 6, 35, 112, 139, 10, 72, 6, 118, 113, 50, 0, 0, 0, 11, 136, 196, 145, 198, 176, 225,
+			187, 163, 3, 72, 0, 0, 0, 0, 17, 2, 95, 41, 10, 72, 6, 116, 109, 68, 68, 58, 6, 35, 112, 139, 0, 0, 15, 2, 95, 40,
+			65, 6, 118, 110, 68, 58, 6, 35, 112, 139, 0, 0, 14, 2, 95, 47, 89, 6, 39, 110, 80, 34, 6, 120, 109, 0, 0, 10, 2, 95,
+			46, 80, 6, 13, 109, 65, 0, 0, 15, 2, 95, 45, 100, 6, 114, 112, 80, 68, 6, 114, 113, 68, 0, 0, 9, 2, 95, 44, 83, 6,
+			121, 110, 0, 0, 9, 2, 95, 51, 10, 71, 6, 114, 0, 0, 8, 133, 3, 8, 198, 176, 1, 72, 8, 2, 95, 50, 107, 6, 120, 0,
+			0, 10, 2, 95, 49, 65, 6, 39, 112, 74, 0, 0, 10, 2, 95, 48, 101, 4, 39, 17, 68, 0, 0, 10, 2, 95, 55, 10, 71, 6,
+			119, 110, 0, 0, 9, 2, 95, 54, 93, 6, 129, 109, 0, 0, 9, 2, 95, 53, 50, 6, 35, 65, 0, 0, 11, 2, 95, 52, 10, 71,
+			6, 39, 109, 50, 0, 0, 14, 2, 95, 59, 80, 6, 13, 109, 65, 83, 6, 121, 110, 0, 0, 14, 2, 95, 58, 107, 6, 120, 17, 80,
+			6, 13, 109, 65, 0, 0, 10, 2, 95, 57, 80, 6, 37, 109, 50, 0, 0, 10, 2, 95, 56, 74, 6, 114, 109, 65, 0, 0, 14, 2,
+			95, 63, 107, 6, 125, 110, 80, 6, 13, 109, 65, 0, 0, 15, 2, 95, 62, 55, 6, 118, 109, 50, 107, 6, 118, 113, 50, 0, 0, 0,
+			14, 2, 95, 60, 67, 6, 116, 110, 107, 6, 118, 113, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 8, 133, 22, 225, 186, 171, 14, 72, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 95, 91, 65, 6, 118, 110, 68, 58, 6, 35, 112,
+			139, 84, 6, 138, 113, 68, 0, 0, 18, 4, 95, 226, 128, 156, 68, 58, 6, 35, 112, 139, 49, 6, 115, 109, 48, 0, 0, 0, 0, 15,
+			2, 95, 95, 100, 6, 114, 112, 80, 79, 6, 137, 109, 57, 0, 0, 0, 22, 2, 95, 93, 10, 72, 6, 116, 109, 68, 68, 58, 6, 35,
+			112, 139, 84, 6, 138, 113, 68, 0, 0, 13, 2, 95, 92, 89, 6, 39, 110, 83, 4, 120, 110, 0, 0, 6, 195, 44, 130, 64, 72, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 95, 123, 65, 6, 118,
+			110, 68, 58, 6, 35, 112, 139, 67, 6, 116, 112, 50, 0, 0, 0, 0, 0, 0, 0, 22, 2, 95, 125, 10, 72, 6, 116, 109, 68, 68,
+			58, 6, 35, 112, 139, 67, 6, 116, 112, 50, 0, 0, 14, 2, 95, 124, 89, 6, 39, 110, 47, 6, 35, 110, 68, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 70, 36, 229, 5, 72, 225, 84, 37, 50, 47, 118, 50, 6, 115, 109, 47, 0, 0, 0,
+			0, 0, 0, 0, 8, 133, 2, 225, 187, 159, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 131,
+			4, 195, 185, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 12, 131, 192, 72, 0, 8, 133, 3, 225, 187, 167, 1, 72, 0, 0,
+			0, 7, 132, 3, 195, 161, 9, 72, 0, 0, 0, 0, 0, 0, 7, 132, 3, 195, 161, 3, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 9, 134, 196, 145, 225, 186, 191, 14, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, 97, 0, 0, 3, 224, 0,
+			0, 0, 97, 0, 1, 3, 225, 0, 0, 0, 97, 0, 9, 3, 163, 30, 0, 0, 97, 0, 3, 3, 227, 0, 0, 0, 97, 0, 35, 3,
+			161, 30, 0, 0, 3, 1, 0, 3, 177, 30, 0, 0, 3, 1, 1, 3, 175, 30, 0, 0, 3, 1, 9, 3, 179, 30, 0, 0, 3, 1,
+			3, 3, 181, 30, 0, 0, 3, 1, 35, 3, 183, 30, 0, 0, 226, 0, 0, 3, 167, 30, 0, 0, 226, 0, 1, 3, 165, 30, 0, 0,
+			226, 0, 9, 3, 169, 30, 0, 0, 226, 0, 3, 3, 171, 30, 0, 0, 226, 0, 35, 3, 173, 30, 0, 0, 101, 0, 0, 3, 232, 0,
+			0, 0, 101, 0, 1, 3, 233, 0, 0, 0, 101, 0, 9, 3, 187, 30, 0, 0, 101, 0, 3, 3, 189, 30, 0, 0, 101, 0, 35, 3,
+			185, 30, 0, 0, 234, 0, 0, 3, 193, 30, 0, 0, 234, 0, 1, 3, 191, 30, 0, 0, 234, 0, 9, 3, 195, 30, 0, 0, 234, 0,
+			3, 3, 197, 30, 0, 0, 234, 0, 35, 3, 199, 30, 0, 0, 105, 0, 0, 3, 236, 0, 0, 0, 105, 0, 1, 3, 237, 0, 0, 0,
+			105, 0, 9, 3, 201, 30, 0, 0, 105, 0, 3, 3, 41, 1, 0, 0, 105, 0, 35, 3, 203, 30, 0, 0, 111, 0, 0, 3, 242, 0,
+			0, 0, 111, 0, 1, 3, 243, 0, 0, 0, 111, 0, 9, 3, 207, 30, 0, 0, 111, 0, 3, 3, 245, 0, 0, 0, 111, 0, 35, 3,
+			205, 30, 0, 0, 244, 0, 0, 3, 211, 30, 0, 0, 244, 0, 1, 3, 209, 30, 0, 0, 244, 0, 9, 3, 213, 30, 0, 0, 244, 0,
+			3, 3, 215, 30, 0, 0, 244, 0, 35, 3, 217, 30, 0, 0, 161, 1, 0, 3, 221, 30, 0, 0, 161, 1, 1, 3, 219, 30, 0, 0,
+			161, 1, 9, 3, 223, 30, 0, 0, 161, 1, 3, 3, 225, 30, 0, 0, 161, 1, 35, 3, 227, 30, 0, 0, 117, 0, 0, 3, 249, 0,
+			0, 0, 117, 0, 1, 3, 250, 0, 0, 0, 117, 0, 9, 3, 231, 30, 0, 0, 117, 0, 3, 3, 105, 1, 0, 0, 117, 0, 35, 3,
+			229, 30, 0, 0, 176, 1, 0, 3, 235, 30, 0, 0, 176, 1, 1, 3, 233, 30, 0, 0, 176, 1, 9, 3, 237, 30, 0, 0, 176, 1,
+			3, 3, 239, 30, 0, 0, 176, 1, 35, 3, 241, 30, 0, 0, 121, 0, 0, 3, 243, 30, 0, 0, 121, 0, 1, 3, 253, 0, 0, 0,
+			121, 0, 9, 3, 247, 30, 0, 0, 121, 0, 3, 3, 249, 30, 0, 0, 121, 0, 35, 3, 245, 30, 0, 0, 0, 0, 0, 0, 6, 195,
+			160, 0, 3, 114, 108, 0, 121, 3, 119, 108, 0, 105, 3, 120, 108, 0, 117, 3, 129, 108, 0, 111, 3, 130, 108, 0, 7, 6, 195, 161,
+			0, 3, 114, 109, 0, 121, 3, 119, 109, 0, 105, 3, 120, 109, 0, 117, 3, 129, 109, 0, 111, 3, 130, 109, 0, 7, 6, 195, 162, 0,
+			3, 13, 0, 121, 3, 121, 0, 117, 3, 134, 0, 7, 6, 195, 163, 0, 3, 114, 111, 0, 121, 3, 119, 111, 0, 105, 3, 120, 111, 0,
+			117, 3, 129, 111, 0, 111, 3, 130, 111, 0, 7, 6, 195, 168, 0, 3, 115, 108, 0, 111, 3, 132, 108, 0, 7, 6, 195, 169, 0, 3,
+			115, 109, 0, 111, 3, 132, 109, 0, 7, 6, 195, 170, 0, 3, 36, 0, 117, 3, 131, 0, 7, 6, 195, 172, 0, 3, 37, 108, 0, 2,
+			17, 65, 3, 57, 108, 0, 117, 3, 133, 108, 0, 97, 3, 136, 108, 0, 7, 6, 195, 173, 0, 3, 37, 109, 0, 2, 17, 65, 3, 57,
+			109, 0, 117, 3, 133, 109, 0, 97, 3, 136, 109, 0, 7, 6, 195, 177, 0, 3, 67, 0, 7, 6, 195, 178, 0, 2, 17, 65, 3, 58,
+			108, 0, 3, 116, 108, 0, 105, 3, 125, 108, 0, 7, 6, 195, 179, 0, 2, 17, 65, 3, 58, 109, 0, 3, 116, 109, 0, 105, 3, 125,
+			109, 0, 7, 6, 195, 180, 0, 3, 39, 0, 105, 3, 126, 0, 7, 6, 195, 181, 0, 2, 17, 65, 3, 58, 111, 0, 3, 116, 111, 0,
+			105, 3, 125, 111, 0, 7, 6, 195, 185, 0, 3, 40, 108, 0, 2, 17, 65, 3, 58, 108, 0, 105, 3, 127, 108, 0, 97, 3, 138, 108,
+			0, 7, 6, 195, 186, 0, 3, 40, 109, 0, 2, 17, 65, 3, 58, 109, 0, 105, 3, 127, 109, 0, 97, 3, 138, 109, 0, 7, 6, 195,
+			189, 0, 3, 37, 109, 0, 2, 17, 65, 3, 57, 109, 0, 97, 3, 136, 109, 0, 7, 6, 196, 131, 0, 3, 35, 0, 7, 6, 196, 145,
+			0, 8, 3, 10, 72, 0, 3, 72, 0, 7, 6, 196, 169, 0, 3, 37, 111, 0, 2, 17, 65, 3, 57, 111, 0, 117, 3, 133, 111, 0,
+			97, 3, 136, 111, 0, 7, 6, 197, 169, 0, 3, 40, 111, 0, 2, 17, 65, 3, 58, 111, 0, 105, 3, 127, 111, 0, 97, 3, 138, 111,
+			0, 7, 6, 198, 161, 0, 3, 118, 0, 105, 3, 122, 0, 117, 3, 135, 0, 7, 6, 198, 176, 0, 3, 117, 0, 117, 3, 117, 58, 0,
+			105, 3, 128, 0, 4, 97, 3, 137, 0, 198, 161, 0, 198, 161, 105, 3, 137, 57, 0, 225, 187, 157, 105, 3, 137, 57, 108, 0, 225, 187,
+			155, 105, 3, 137, 57, 109, 0, 225, 187, 159, 105, 3, 137, 57, 110, 0, 225, 187, 161, 105, 3, 137, 57, 111, 0, 225, 187, 163, 105, 3,
+			137, 57, 112, 0, 198, 161, 117, 3, 137, 58, 0, 225, 187, 157, 117, 3, 137, 58, 108, 0, 225, 187, 155, 117, 3, 137, 58, 109, 0, 225,
+			187, 159, 117, 3, 137, 58, 110, 0, 225, 187, 161, 117, 3, 137, 58, 111, 0, 225, 187, 163, 117, 3, 137, 58, 112, 0, 225, 187, 157, 3,
+			137, 108, 0, 225, 187, 155, 3, 137, 109, 0, 225, 187, 159, 3, 137, 110, 0, 225, 187, 161, 3, 137, 111, 0, 225, 187, 163, 3, 137, 112,
+			0, 7, 6, 225, 186, 0, 163, 3, 114, 110, 0, 163, 121, 3, 119, 110, 0, 163, 105, 3, 120, 110, 0, 163, 117, 3, 129, 110, 0, 163,
+			111, 3, 130, 110, 0, 161, 3, 114, 112, 0, 161, 121, 3, 119, 112, 0, 161, 105, 3, 120, 112, 0, 161, 117, 3, 129, 112, 0, 161, 111,
+			3, 130, 112, 0, 177, 3, 35, 108, 0, 175, 3, 35, 109, 0, 179, 3, 35, 110, 0, 181, 3, 35, 111, 0, 183, 3, 35, 112, 0, 167,
+			3, 13, 108, 0, 167, 121, 3, 121, 108, 0, 167, 117, 3, 134, 108, 0, 165, 3, 13, 109, 0, 165, 121, 3, 121, 109, 0, 165, 117, 3,
+			134, 109, 0, 169, 3, 13, 110, 0, 169, 121, 3, 121, 110, 0, 169, 117, 3, 134, 110, 0, 171, 3, 13, 111, 0, 171, 121, 3, 121, 111,
+			0, 171, 117, 3, 134, 111, 0, 173, 3, 13, 112, 0, 173, 121, 3, 121, 112, 0, 173, 117, 3, 134, 112, 0, 187, 3, 115, 110, 0, 187,
+			111, 3, 132, 110, 0, 189, 3, 115, 111, 0, 189, 111, 3, 132, 111, 0, 185, 3, 115, 112, 0, 185, 111, 3, 132, 112, 0, 191, 3, 36,
+			109, 0, 191, 117, 3, 131, 109, 0, 7, 6, 225, 187, 0, 129, 3, 36, 108, 0, 129, 117, 3, 131, 108, 0, 131, 3, 36, 110, 0, 131,
+			117, 3, 131, 110, 0, 133, 3, 36, 111, 0, 133, 117, 3, 131, 111, 0, 135, 3, 36, 112, 0, 135, 117, 3, 131, 112, 0, 137, 3, 37,
+			110, 0, 137, 2, 17, 65, 3, 57, 110, 0, 137, 117, 3, 133, 110, 0, 137, 97, 3, 136, 110, 0, 139, 3, 37, 112, 0, 139, 2, 17,
+			65, 3, 57, 112, 0, 139, 117, 3, 133, 112, 0, 139, 97, 3, 136, 112, 0, 143, 2, 17, 65, 3, 58, 110, 0, 143, 3, 116, 110, 0,
+			143, 105, 3, 125, 110, 0, 141, 2, 17, 65, 3, 58, 112, 0, 141, 3, 116, 112, 0, 141, 105, 3, 125, 112, 0, 147, 3, 39, 108, 0,
+			147, 105, 3, 126, 108, 0, 145, 3, 39, 109, 0, 145, 105, 3, 126, 109, 0, 149, 3, 39, 110, 0, 149, 105, 3, 126, 110, 0, 151, 3,
+			39, 111, 0, 151, 105, 3, 126, 111, 0, 153, 3, 39, 112, 0, 153, 105, 3, 126, 112, 0, 157, 3, 118, 108, 0, 157, 105, 3, 122, 108,
+			0, 157, 117, 3, 135, 108, 0, 155, 3, 118, 109, 0, 155, 105, 3, 122, 109, 0, 155, 117, 3, 135, 109, 0, 159, 3, 118, 110, 0, 159,
+			105, 3, 122, 110, 0, 159, 117, 3, 135, 110, 0, 161, 3, 118, 111, 0, 161, 105, 3, 122, 111, 0, 161, 117, 3, 135, 111, 0, 163, 3,
+			118, 112, 0, 163, 105, 3, 122, 112, 0, 163, 117, 3, 135, 112, 0, 167, 3, 40, 110, 0, 167, 2, 17, 65, 3, 58, 110, 0, 167, 105,
+			3, 127, 110, 0, 167, 97, 3, 138, 110, 0, 165, 3, 40, 112, 0, 165, 2, 17, 65, 3, 58, 112, 0, 165, 105, 3, 127, 112, 0, 165,
+			97, 3, 138, 112, 0, 171, 117, 3, 117, 58, 108, 0, 171, 3, 117, 108, 0, 171, 105, 3, 128, 108, 0, 171, 97, 3, 137, 108, 0, 169,
+			117, 3, 117, 58, 109, 0, 169, 3, 117, 109, 0, 169, 105, 3, 128, 109, 0, 169, 97, 3, 137, 109, 0, 173, 117, 3, 117, 58, 110, 0,
+			173, 3, 117, 110, 0, 173, 105, 3, 128, 110, 0, 173, 97, 3, 137, 110, 0, 175, 117, 3, 117, 58, 111, 0, 175, 3, 117, 111, 0, 175,
+			105, 3, 128, 111, 0, 175, 97, 3, 137, 111, 0, 177, 117, 3, 117, 58, 112, 0, 177, 3, 117, 112, 0, 177, 105, 3, 128, 112, 0, 177,
+			97, 3, 137, 112, 0, 179, 3, 37, 108, 0, 179, 2, 17, 65, 3, 57, 108, 0, 179, 97, 3, 136, 108, 0, 183, 3, 37, 110, 0, 183,
+			2, 17, 65, 3, 57, 110, 0, 183, 97, 3, 136, 110, 0, 185, 3, 37, 111, 0, 185, 2, 17, 65, 3, 57, 111, 0, 185, 97, 3, 136,
+			111, 0, 181, 3, 37, 112, 0, 181, 2, 17, 65, 3, 57, 112, 0, 181, 97, 3, 136, 112, 0, 7, 6, 97, 0, 3, 114, 0, 121, 3,
+			119, 0, 225, 187, 179, 3, 119, 108, 0, 195, 189, 3, 119, 109, 0, 225, 187, 183, 3, 119, 110, 0, 225, 187, 185, 3, 119, 111, 0, 225,
+			187, 181, 3, 119, 112, 0, 105, 3, 120, 0, 195, 172, 3, 120, 108, 0, 195, 173, 3, 120, 109, 0, 225, 187, 137, 3, 120, 110, 0, 196,
+			169, 3, 120, 111, 0, 225, 187, 139, 3, 120, 112, 0, 117, 3, 129, 0, 195, 185, 3, 129, 108, 0, 195, 186, 3, 129, 109, 0, 225, 187,
+			167, 3, 129, 110, 0, 197, 169, 3, 129, 111, 0, 225, 187, 165, 3, 129, 112, 0, 111, 3, 130, 0, 195, 178, 3, 130, 108, 0, 195, 179,
+			3, 130, 109, 0, 225, 187, 143, 3, 130, 110, 0, 195, 181, 3, 130, 111, 0, 225, 187, 141, 3, 130, 112, 0, 7, 6, 98, 0, 8, 3,
+			10, 71, 0, 3, 71, 0, 7, 6, 99, 0, 3, 49, 0, 104, 3, 80, 0, 2, 32, 3, 139, 0, 7, 6, 100, 0, 3, 79, 0, 7,
+			6, 101, 0, 3, 115, 0, 111, 3, 132, 0, 195, 178, 3, 132, 108, 0, 195, 179, 3, 132, 109, 0, 225, 187, 143, 3, 132, 110, 0, 225,
+			187, 151, 3, 132, 111, 0, 225, 187, 141, 3, 132, 112, 0, 7, 6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 4, 2, 105, 3, 86, 0,
+			2, 195, 172, 0, 2, 195, 173, 0, 2, 196, 169, 0, 2, 225, 187, 137, 0, 2, 225, 187, 139, 0, 105, 0, 4, 3, 100, 0, 104, 0,
+			7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3, 37, 0, 2, 17, 65, 3, 57, 0, 117, 3, 133, 0, 195, 185, 3, 133, 108, 0,
+			195, 186, 3, 133, 109, 0, 225, 187, 167, 3, 133, 110, 0, 197, 169, 3, 133, 111, 0, 225, 187, 165, 3, 133, 112, 0, 4, 97, 3, 136,
+			0, 195, 170, 0, 4, 195, 160, 3, 136, 108, 0, 225, 187, 129, 0, 4, 195, 161, 3, 136, 109, 0, 225, 186, 191, 0, 4, 225, 186, 163,
+			3, 136, 110, 0, 225, 187, 131, 0, 4, 195, 163, 3, 136, 111, 0, 225, 187, 133, 0, 4, 225, 186, 161, 3, 136, 112, 0, 225, 187, 135,
+			0, 7, 6, 106, 0, 3, 90, 0, 7, 6, 107, 0, 3, 49, 0, 104, 3, 101, 0, 2, 32, 3, 139, 0, 7, 6, 108, 0, 3, 55,
+			0, 7, 6, 109, 0, 3, 65, 0, 7, 6, 110, 0, 3, 50, 0, 104, 3, 67, 0, 4, 103, 3, 68, 0, 103, 104, 0, 7, 6, 111,
+			0, 2, 17, 65, 3, 58, 0, 3, 116, 0, 105, 3, 125, 0, 195, 172, 3, 125, 108, 0, 195, 173, 3, 125, 109, 0, 225, 187, 137, 3,
+			125, 110, 0, 196, 169, 3, 125, 111, 0, 225, 187, 139, 3, 125, 112, 0, 7, 6, 112, 0, 3, 48, 0, 104, 3, 83, 0, 7, 6, 113,
+			0, 3, 49, 0, 117, 3, 49, 58, 0, 2, 32, 3, 139, 0, 7, 6, 114, 0, 3, 92, 0, 7, 6, 115, 0, 3, 93, 0, 7, 6,
+			116, 0, 104, 3, 47, 0, 3, 74, 0, 114, 3, 80, 34, 0, 7, 6, 117, 0, 3, 40, 0, 4, 1, 17, 65, 3, 58, 0, 2, 17,
+			65, 0, 105, 3, 127, 0, 195, 172, 3, 127, 108, 0, 195, 173, 3, 127, 109, 0, 225, 187, 137, 3, 127, 110, 0, 196, 169, 3, 127, 111,
+			0, 225, 187, 139, 3, 127, 112, 0, 4, 97, 3, 138, 0, 195, 180, 0, 195, 180, 105, 3, 138, 57, 0, 225, 187, 147, 105, 3, 138, 57,
+			108, 0, 225, 187, 145, 105, 3, 138, 57, 109, 0, 225, 187, 149, 105, 3, 138, 57, 110, 0, 225, 187, 151, 105, 3, 138, 57, 111, 0, 225,
+			187, 153, 105, 3, 138, 57, 112, 0, 4, 195, 160, 3, 138, 108, 0, 225, 187, 147, 0, 4, 195, 161, 3, 138, 109, 0, 225, 187, 145, 0,
+			4, 225, 186, 163, 3, 138, 110, 0, 225, 187, 149, 0, 4, 195, 163, 3, 138, 111, 0, 225, 187, 151, 0, 4, 225, 186, 161, 3, 138, 112,
+			0, 225, 187, 153, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 89, 0, 7, 6, 121, 0,
+			3, 37, 0, 2, 17, 65, 3, 57, 0, 4, 97, 3, 136, 0, 195, 170, 0, 4, 195, 160, 3, 136, 108, 0, 225, 187, 129, 0, 4, 195,
+			161, 3, 136, 109, 0, 225, 186, 191, 0, 4, 225, 186, 163, 3, 136, 110, 0, 225, 187, 131, 0, 4, 195, 163, 3, 136, 111, 0, 225, 187,
+			133, 0, 4, 225, 186, 161, 3, 136, 112, 0, 225, 187, 135, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 206, 0, 4, 174, 3, 36, 17,
+			23, 74, 6, 114, 17, 0, 183, 0, 4, 175, 3, 37, 17, 23, 6, 39, 17, 23, 74, 6, 114, 17, 0, 185, 0, 191, 3, 39, 17, 23,
+			65, 6, 37, 17, 23, 49, 92, 6, 116, 113, 50, 0, 184, 3, 47, 6, 36, 17, 23, 74, 6, 114, 17, 0, 186, 3, 49, 6, 114, 17,
+			48, 23, 48, 6, 114, 17, 0, 189, 3, 50, 58, 6, 37, 17, 0, 187, 3, 55, 6, 35, 17, 65, 23, 10, 72, 6, 114, 17, 0, 188,
+			3, 65, 58, 6, 37, 17, 0, 178, 3, 71, 6, 36, 17, 23, 74, 6, 114, 17, 0, 180, 3, 79, 6, 115, 17, 50, 23, 74, 6, 114,
+			17, 0, 182, 3, 86, 6, 36, 17, 23, 74, 6, 114, 17, 0, 190, 3, 89, 6, 37, 113, 0, 179, 3, 100, 6, 114, 17, 23, 65, 6,
+			114, 17, 0, 4, 172, 3, 114, 17, 50, 23, 83, 6, 114, 17, 0, 177, 0, 4, 173, 3, 115, 17, 48, 23, 89, 6, 37, 17, 23, 55,
+			6, 116, 17, 50, 0, 181, 0, 7, 6, 207, 0, 4, 137, 3, 39, 17, 23, 65, 6, 36, 17, 23, 100, 6, 114, 113, 0, 142, 0, 140,
+			3, 39, 17, 23, 65, 6, 37, 17, 23, 49, 92, 6, 116, 113, 50, 0, 4, 133, 3, 40, 17, 48, 23, 89, 6, 37, 17, 23, 55, 6,
+			116, 17, 50, 0, 141, 0, 128, 3, 48, 6, 37, 17, 0, 136, 3, 48, 89, 6, 37, 17, 0, 132, 3, 74, 6, 39, 17, 0, 135, 3,
+			80, 6, 37, 17, 0, 134, 3, 83, 6, 37, 17, 0, 4, 130, 3, 89, 6, 37, 109, 80, 23, 65, 6, 114, 17, 0, 131, 0, 129, 3,
+			92, 6, 39, 17, 0, 7, 6, 0, 4, 33, 2, 33, 3, 0, 46, 1, 46, 3, 0, 46, 2, 46, 3, 9, 0, 33, 3, 9, 80, 6,
+			13, 109, 65, 23, 47, 6, 114, 113, 50, 9, 0, 4, 45, 1, 32, 17, 65, 2, 32, 15, 3, 10, 0, 45, 1, 32, 17, 67, 2, 32,
+			15, 0, 62, 61, 3, 55, 6, 118, 109, 50, 23, 107, 6, 118, 17, 50, 23, 107, 58, 4, 35, 112, 139, 10, 71, 6, 35, 108, 68, 0,
+			60, 61, 3, 67, 6, 116, 110, 23, 107, 6, 118, 17, 50, 23, 107, 58, 4, 35, 112, 139, 10, 71, 6, 35, 108, 68, 0, 36, 3, 72,
+			6, 39, 15, 55, 6, 35, 0, 46, 3, 80, 6, 13, 109, 65, 10, 0, 45, 8, 32, 2, 32, 15, 3, 80, 34, 6, 117, 108, 0, 37,
+			3, 83, 6, 13, 108, 50, 15, 78, 6, 35, 65, 0, 104, 1, 32, 15, 2, 32, 15, 15, 32, 3, 86, 6, 118, 108, 0, 33, 61, 3,
+			101, 4, 39, 17, 68, 23, 10, 71, 6, 35, 108, 68, 10, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts68 = FileInMemory_createWithData (5836, reinterpret_cast<const char *> (&espeakdata_dicts68_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/vi_dict", 
 			U"vi");
-		my addItem_move (espeakdata_dicts67.move());
+		Collection_addItem (me.peek(), espeakdata_dicts68.transfer());
+
+		static unsigned char espeakdata_dicts69_data[1735] = {
+			0, 4, 0, 0, 85, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 11, 5, 95, 48, 1, 14, 4, 2, 35, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 51, 88, 67, 6, 111, 47, 12, 83, 40, 49,
+			12, 0, 0, 12, 3, 95, 48, 67, 47, 6, 110, 65, 110, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 95, 49, 67, 47, 6,
+			110, 65, 110, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3,
+			95, 55, 88, 79, 6, 40, 52, 116, 65, 67, 113, 52, 83, 40, 49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 11, 3, 95, 49, 88, 83, 6, 40, 49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 3, 95, 50, 88, 67, 6, 113,
+			52, 83, 40, 49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 95, 52, 88, 67, 6, 112,
+			50, 47, 83, 40, 49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 95, 53, 88, 79, 6, 40, 52, 116, 65, 83, 40, 49, 12,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 54, 88, 79, 6, 40, 52, 116, 65, 71, 111, 50, 12, 83, 40, 49, 12, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 56, 88, 79, 6, 40, 52, 116, 65, 67, 111, 47, 12,
+			83, 40, 49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 95, 57, 88, 79, 6, 40, 52, 116, 65, 67, 112, 50, 47, 83, 40,
+			49, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 95, 48, 77, 50, 47, 6, 35, 65, 50, 72, 35,
+			52, 112, 47, 0, 0, 0, 0, 13, 4, 95, 48, 77, 49, 79, 6, 40, 50, 12, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 95, 51, 67, 6, 111, 47, 12, 0, 0, 9, 2, 95, 50, 67, 6,
+			113, 52, 0, 0, 10, 2, 95, 49, 71, 6, 111, 50, 12, 0, 0, 9, 2, 95, 48, 47, 6, 40, 89, 0, 0, 14, 2, 95, 55, 79,
+			6, 40, 52, 116, 65, 67, 113, 52, 0, 0, 15, 2, 95, 54, 79, 6, 40, 52, 116, 65, 71, 111, 50, 12, 0, 0, 11, 2, 95, 53,
+			79, 6, 40, 52, 116, 65, 0, 0, 10, 2, 95, 52, 67, 6, 112, 50, 47, 0, 0, 0, 0, 15, 2, 95, 57, 79, 6, 40, 52, 116,
+			65, 67, 112, 50, 47, 0, 0, 15, 2, 95, 56, 79, 6, 40, 52, 116, 65, 67, 111, 47, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 195, 169, 0, 3, 36, 0, 4, 101, 3, 110, 0, 195, 169, 0,
+			7, 6, 195, 171, 0, 3, 13, 0, 4, 101, 3, 108, 0, 195, 171, 0, 7, 6, 195, 177, 0, 3, 67, 0, 7, 6, 195, 179, 0, 3,
+			39, 0, 4, 111, 3, 116, 0, 195, 179, 0, 7, 6, 197, 139, 0, 1, 25, 2, 25, 3, 43, 0, 3, 68, 0, 197, 139, 3, 68, 12,
+			0, 7, 6, 97, 0, 3, 35, 0, 97, 3, 113, 0, 7, 6, 98, 0, 3, 71, 0, 98, 3, 71, 12, 0, 7, 6, 99, 0, 3, 80,
+			0, 99, 3, 80, 12, 0, 7, 6, 100, 0, 3, 72, 0, 100, 3, 72, 12, 0, 7, 6, 101, 0, 3, 111, 0, 101, 3, 112, 0, 7,
+			6, 102, 0, 3, 83, 0, 7, 6, 103, 0, 3, 81, 0, 103, 3, 81, 12, 0, 7, 6, 104, 0, 3, 107, 0, 7, 6, 105, 0, 3,
+			37, 0, 105, 3, 109, 0, 7, 6, 106, 0, 3, 79, 0, 3, 79, 12, 0, 7, 6, 107, 0, 3, 49, 0, 107, 3, 49, 12, 0, 7,
+			6, 108, 0, 3, 55, 0, 7, 6, 109, 0, 1, 25, 2, 25, 3, 41, 0, 3, 65, 0, 109, 3, 65, 12, 0, 7, 6, 110, 0, 1,
+			25, 2, 25, 3, 42, 0, 3, 50, 0, 110, 3, 50, 12, 0, 7, 6, 111, 0, 3, 114, 0, 111, 3, 115, 0, 7, 6, 112, 0, 3,
+			48, 0, 112, 3, 48, 12, 0, 7, 6, 113, 0, 3, 104, 0, 113, 3, 104, 12, 0, 7, 6, 114, 0, 2, 114, 3, 51, 0, 3, 52,
+			0, 7, 6, 115, 0, 3, 89, 0, 115, 3, 89, 118, 0, 7, 6, 116, 0, 3, 47, 0, 116, 3, 47, 12, 0, 7, 6, 117, 0, 3,
+			40, 0, 117, 3, 117, 0, 7, 6, 118, 0, 3, 84, 0, 7, 6, 119, 0, 3, 58, 0, 7, 6, 120, 0, 3, 101, 0, 7, 6, 121,
+			0, 3, 57, 0, 7, 6, 122, 0, 3, 88, 0, 7, 6, 0, 36, 3, 72, 114, 55, 35, 52, 0, 7, 0, 0};
+		autoFileInMemory espeakdata_dicts69 = FileInMemory_createWithData (1734, reinterpret_cast<const char *> (&espeakdata_dicts69_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/wo_dict", 
+			U"wo");
+		Collection_addItem (me.peek(), espeakdata_dicts69.transfer());
 
-		static unsigned char espeakdata_dicts68_data[41828] = {
+		static unsigned char espeakdata_dicts70_data[41828] = {
 			0, 4, 0, 0, 94, 157, 0, 0, 10, 3, 229, 185, 178, 103, 97, 110, 49, 0, 12, 3, 232, 172, 138, 104, 117, 97, 110, 103, 51, 0,
 			10, 3, 233, 165, 146, 114, 97, 111, 50, 0, 10, 3, 232, 175, 162, 120, 117, 110, 50, 0, 11, 3, 233, 164, 138, 121, 97, 110, 103, 51,
 			0, 0, 10, 3, 230, 178, 185, 121, 111, 117, 50, 0, 10, 3, 232, 175, 161, 103, 117, 105, 51, 0, 9, 3, 230, 189, 145, 112, 111, 53,
@@ -47705,7 +35348,7 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			102, 117, 51, 0, 11, 3, 230, 148, 187, 103, 111, 110, 103, 49, 0, 9, 3, 232, 131, 179, 103, 101, 49, 0, 11, 3, 229, 167, 147, 120,
 			105, 110, 103, 52, 0, 11, 3, 230, 157, 131, 113, 117, 97, 110, 50, 0, 9, 3, 233, 134, 139, 99, 117, 52, 0, 0, 10, 3, 230, 159,
 			144, 109, 111, 117, 51, 0, 9, 3, 229, 166, 136, 109, 97, 49, 0, 11, 3, 230, 147, 176, 110, 105, 110, 103, 50, 0, 10, 3, 229, 167,
-			144, 106, 105, 101, 51, 0, 11, 3, 229, 154, 168, 108, 111, 110, 103, 50, 0, 10, 3, 230, 157, 128, 115, 104, 97, 49, 0, 9, 3, 229,
+			144, 106, 105, 101, 53, 0, 11, 3, 229, 154, 168, 108, 111, 110, 103, 50, 0, 10, 3, 230, 157, 128, 115, 104, 97, 49, 0, 9, 3, 229,
 			152, 152, 120, 117, 49, 0, 11, 3, 232, 132, 184, 108, 105, 97, 110, 51, 0, 10, 3, 229, 155, 176, 107, 117, 110, 52, 0, 0, 9, 3,
 			231, 139, 177, 121, 117, 52, 0, 11, 3, 229, 155, 177, 99, 111, 110, 103, 49, 0, 11, 3, 232, 130, 169, 106, 105, 97, 110, 49, 0, 10,
 			3, 230, 148, 185, 103, 97, 105, 51, 0, 9, 3, 229, 167, 145, 103, 117, 49, 0, 11, 3, 230, 146, 169, 108, 105, 97, 111, 49, 0, 12,
@@ -48321,7 +35964,7 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			49, 0, 11, 3, 232, 161, 161, 104, 101, 110, 103, 50, 0, 10, 3, 229, 188, 185, 100, 97, 110, 52, 0, 9, 3, 231, 170, 169, 119, 111,
 			49, 0, 9, 3, 232, 175, 145, 121, 105, 52, 0, 10, 3, 233, 153, 161, 100, 111, 117, 51, 0, 0, 9, 3, 233, 156, 184, 98, 97, 52,
 			0, 10, 3, 230, 177, 160, 99, 104, 105, 50, 0, 11, 3, 229, 184, 152, 108, 105, 97, 110, 50, 0, 10, 3, 233, 154, 168, 115, 117, 105,
-			50, 0, 10, 3, 233, 167, 144, 122, 104, 117, 52, 0, 0, 9, 3, 232, 165, 191, 120, 105, 49, 0, 10, 3, 229, 186, 167, 122, 117, 111,
+			50, 0, 10, 3, 233, 167, 144, 122, 104, 117, 52, 0, 0, 9, 3, 232, 165, 191, 120, 105, 53, 0, 10, 3, 229, 186, 167, 122, 117, 111,
 			52, 0, 10, 3, 233, 154, 167, 115, 117, 105, 52, 0, 11, 3, 231, 171, 175, 100, 117, 97, 110, 49, 0, 12, 3, 230, 177, 159, 106, 105,
 			97, 110, 103, 49, 0, 12, 3, 229, 188, 183, 113, 105, 97, 110, 103, 50, 0, 10, 3, 229, 185, 159, 122, 104, 105, 52, 0, 0, 11, 3,
 			233, 166, 134, 103, 117, 97, 110, 51, 0, 12, 3, 230, 180, 182, 120, 105, 111, 110, 103, 49, 0, 9, 3, 229, 186, 166, 100, 117, 52, 0,
@@ -48481,12 +36124,12 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			38, 0, 2, 117, 25, 0, 3, 57, 0, 111, 2, 15, 110, 103, 25, 3, 149, 0, 7, 6, 122, 0, 1, 21, 2, 25, 3, 21, 0, 3,
 			122, 0, 104, 2, 12, 3, 124, 0, 7, 6, 0, 124, 3, 23, 0, 53, 3, 108, 0, 51, 3, 110, 0, 50, 3, 113, 0, 52, 3, 115,
 			0, 49, 3, 117, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts68 = FileInMemory_createWithData (41827, reinterpret_cast<const char *> (&espeakdata_dicts68_data), 
-			U"espeak-1.48.04-source/espeak-data/zh_dict", 
+		autoFileInMemory espeakdata_dicts70 = FileInMemory_createWithData (41827, reinterpret_cast<const char *> (&espeakdata_dicts70_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/zh_dict", 
 			U"zh");
-		my addItem_move (espeakdata_dicts68.move());
+		Collection_addItem (me.peek(), espeakdata_dicts70.transfer());
 
-		static unsigned char espeakdata_dicts69_data[1557] = {
+		static unsigned char espeakdata_dicts71_data[1557] = {
 			0, 4, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48539,14 +36182,14 @@ autoFileInMemorySet create_espeakdata_dicts () {
 			2, 3, 58, 0, 7, 6, 120, 0, 5, 1, 3, 21, 0, 5, 2, 3, 49, 89, 0, 7, 6, 121, 0, 5, 1, 3, 21, 0, 5, 2,
 			3, 57, 0, 117, 5, 2, 3, 136, 0, 7, 6, 122, 0, 5, 1, 3, 21, 0, 5, 2, 3, 88, 0, 7, 6, 0, 49, 3, 17, 0,
 			50, 3, 108, 0, 51, 3, 109, 0, 52, 3, 110, 0, 53, 3, 111, 0, 54, 3, 112, 0, 55, 3, 113, 0, 7, 0, 0};
-		autoFileInMemory espeakdata_dicts69 = FileInMemory_createWithData (1556, reinterpret_cast<const char *> (&espeakdata_dicts69_data), 
-			U"espeak-1.48.04-source/espeak-data/zhy_dict", 
+		autoFileInMemory espeakdata_dicts71 = FileInMemory_createWithData (1556, reinterpret_cast<const char *> (&espeakdata_dicts71_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/zhy_dict", 
 			U"zhy");
-		my addItem_move (espeakdata_dicts69.move());
+		Collection_addItem (me.peek(), espeakdata_dicts71.transfer());
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"FileInMemorySet not created.");
+		Melder_throw (U"FilesInMemory not created.");
 	}
 }
 
diff --git a/external/espeak/espeakdata_phons.cpp b/external/espeak/espeakdata_phons.cpp
index 9a6742e..c999074 100644
--- a/external/espeak/espeakdata_phons.cpp
+++ b/external/espeak/espeakdata_phons.cpp
@@ -1,4 +1,4 @@
-/* File espeakdata_phons.cpp (version 1.48.04) was automatically generated on Thu Dec  3 15:21:15 2015 from the following files in espeak-data/: 
+/* File espeakdata_phons.cpp was generated on Sun Nov  4 17:43:38 2012 from the following files in espeak-data/: 
  * phondata, phonindex, phontab, intonations  */
 
 #include "espeakdata_FileInMemory.h"
@@ -6,58 +6,45 @@
 #include "FileInMemory.h"
 #include "melder.h"
 
-autoFileInMemorySet create_espeakdata_phons () {
+FilesInMemory create_espeakdata_phons () {
 	try {
-		autoFileInMemorySet me = FileInMemorySet_create ();
-		static unsigned char espeakdata_phons1_data[1225] = {
+		autoFilesInMemory me = FilesInMemory_create ();
+		static unsigned char espeakdata_phons1_data[817] = {
 			115, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0,
 			255, 80, 50, 255, 4, 5, 248, 248, 248, 251, 251, 251, 0, 64, 8, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 99, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0,
 			0, 0, 46, 57, 0, 16, 0, 0, 255, 80, 46, 255, 4, 5, 248, 248, 248, 251, 251, 251, 4, 80, 18, 6, 78, 22, 34, 52, 6, 78,
 			22, 34, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 38, 22, 7, 0, 0, 0, 0, 45, 56, 0, 16, 0, 0, 255, 75, 43, 255, 3, 5, 249, 249, 249, 0, 0, 0, 4, 89,
-			21, 6, 86, 21, 34, 68, 6, 86, 21, 34, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 49, 0, 0, 0, 0,
+			0, 0, 16, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 0, 0, 0, 4, 88,
+			22, 6, 82, 22, 34, 66, 6, 82, 22, 34, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 49, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 52, 32, 20, 10, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 90, 50, 255, 3, 5,
 			247, 247, 247, 0, 0, 0, 0, 92, 8, 0, 92, 80, 76, 8, 0, 92, 80, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 115, 95, 109, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16,
-			0, 0, 255, 40, 60, 255, 3, 5, 15, 15, 15, 30, 30, 30, 0, 64, 8, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 49, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 24, 8,
-			0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 0, 0, 0, 4, 88, 22, 6, 82, 22, 34, 66,
-			6, 82, 22, 34, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 33, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 75, 65, 60, 255, 4, 5, 251, 248, 248, 251, 251, 251,
-			0, 44, 28, 0, 50, 42, 34, 28, 0, 50, 42, 34, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 50, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 65, 50, 255,
-			4, 5, 249, 248, 248, 249, 251, 251, 2, 60, 42, 2, 55, 42, 34, 52, 2, 55, 42, 34, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 113, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 24, 8, 0, 0, 0, 0, 40, 75,
-			0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 249, 0, 0, 2, 70, 50, 2, 35, 45, 60, 70, 2, 35, 45, 60, 70, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 52,
-			32, 20, 10, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 90, 50, 255, 3, 5, 249, 247, 247, 249, 0, 0, 0, 92, 8, 0, 92, 80,
-			76, 8, 0, 92, 80, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 51, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 80, 50, 255, 4, 5, 249, 248, 248, 249,
-			251, 251, 0, 64, 8, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 51,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 70,
-			30, 255, 4, 5, 249, 248, 248, 249, 251, 251, 4, 75, 50, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 113, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 24, 8, 0, 0, 0, 0,
-			46, 57, 0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 249, 0, 0, 4, 88, 22, 6, 82, 22, 34, 66, 6, 82, 22, 34,
-			66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			10, 52, 32, 20, 10, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 90, 50, 255, 3, 5, 249, 247, 247, 249, 0, 0, 0, 92, 8, 0,
-			92, 80, 76, 8, 0, 92, 80, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 52, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 80, 50, 255, 4, 5, 249, 248,
-			248, 249, 251, 251, 0, 64, 8, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			99, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0,
-			255, 76, 42, 255, 4, 5, 249, 248, 248, 249, 251, 251, 4, 77, 25, 6, 78, 25, 24, 52, 6, 78, 25, 24, 52, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 113, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 35, 28, 38, 0,
-			0, 0, 47, 58, 0, 16, 0, 0, 60, 75, 53, 60, 5, 5, 48, 249, 44, 62, 1, 40, 4, 95, 29, 6, 92, 21, 34, 79, 6, 92,
-			21, 34, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 25, 51, 48, 44, 42, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 77, 53, 80, 5, 5, 249, 249, 72, 249, 0, 60, 0, 92,
-			8, 0, 88, 77, 75, 10, 0, 88, 77, 75, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-		autoFileInMemory espeakdata_phons1 = FileInMemory_createWithData (1224, reinterpret_cast<const char *> (&espeakdata_phons1_data), 
-			U"/home/david/projects/praat/espeak-work/espeak-1.48.04-source/espeak-data/intonations", 
+			0, 0, 115, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16,
+			0, 0, 75, 65, 60, 255, 4, 5, 251, 248, 248, 251, 251, 251, 0, 44, 28, 0, 50, 42, 34, 28, 0, 50, 42, 34, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8,
+			0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 65, 50, 255, 4, 5, 249, 248, 248, 249, 251, 251, 2, 60, 42, 2, 55, 42, 34, 52,
+			2, 55, 42, 34, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 16, 40, 24, 8, 0, 0, 0, 0, 40, 75, 0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 249, 0, 0,
+			2, 70, 50, 2, 35, 45, 60, 70, 2, 35, 45, 60, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 50, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 52, 32, 20, 10, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 90, 50, 255,
+			3, 5, 249, 247, 247, 249, 0, 0, 0, 92, 8, 0, 92, 80, 76, 8, 0, 92, 80, 76, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 115, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 24, 8, 0, 0, 0, 0, 46, 57,
+			0, 16, 0, 0, 255, 80, 50, 255, 4, 5, 249, 248, 248, 249, 251, 251, 0, 64, 8, 0, 70, 18, 24, 12, 0, 70, 18, 24, 12, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
+			24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 70, 30, 255, 4, 5, 249, 248, 248, 249, 251, 251, 4, 75, 50, 0, 70, 18,
+			24, 12, 0, 70, 18, 24, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 51, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 16, 40, 24, 8, 0, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 75, 43, 255, 4, 5, 249, 249, 249, 249,
+			0, 0, 4, 88, 22, 6, 82, 22, 34, 66, 6, 82, 22, 34, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 51,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 52, 32, 20, 10, 0, 0, 0, 46, 57, 0, 16, 0, 0, 255, 90,
+			50, 255, 3, 5, 249, 247, 247, 249, 0, 0, 0, 92, 8, 0, 92, 80, 76, 8, 0, 92, 80, 76, 8, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0};
+		autoFileInMemory espeakdata_phons1 = FileInMemory_createWithData (816, reinterpret_cast<const char *> (&espeakdata_phons1_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/intonations", 
 			U"intonations");
-		my addItem_move (espeakdata_phons1.move());
+		Collection_addItem (me.peek(), espeakdata_phons1.transfer());
 
-		static unsigned char espeakdata_phons2_data[406337] = {
-			1, 72, 1, 0, 34, 86, 0, 0, 74, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_phons2_data[385581] = {
+			36, 70, 1, 0, 74, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -68,464 +55,464 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 3, 0, 1, 0, 112, 0, 13, 2, 161, 5, 36, 9, 188, 12,
-			116, 14, 96, 27, 50, 60, 34, 66, 80, 45, 47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5,
-			36, 9, 188, 12, 116, 14, 96, 27, 90, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0,
-			13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 46, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			140, 0, 3, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 20, 19, 38, 46, 26, 27, 20, 10, 4,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 3, 0, 1, 0, 112, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27,
+			50, 60, 34, 66, 80, 45, 47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12,
+			116, 14, 96, 27, 90, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5,
+			36, 9, 188, 12, 116, 14, 96, 27, 0, 46, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 140, 0, 3, 0,
+			1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 20, 19, 38, 46, 26, 27, 20, 10, 4, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 90, 29, 23, 45, 55, 31, 32, 24, 13, 4,
 			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 90, 29, 23, 45, 55, 31,
-			32, 24, 13, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 15,
-			16, 33, 40, 22, 23, 18, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 151, 0, 4, 0, 1, 0, 16, 1, 136, 3, 40, 5, 140, 10,
-			112, 13, 35, 15, 32, 28, 46, 51, 33, 67, 55, 37, 25, 22, 8, 7, 217, 150, 105, 120, 120, 120, 255, 180, 150, 44, 65, 70, 130, 53,
-			0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 32, 1, 136, 3,
-			40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 40, 90, 42, 92, 73, 54, 41, 26, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44,
-			65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			32, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 79, 39, 86, 68, 50, 38, 24, 11, 5, 217, 155, 105, 120, 120, 120,
-			247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 16, 1, 128, 3, 60, 5, 100, 10, 112, 13, 191, 14, 160, 28, 0, 49, 35, 68, 55, 35, 32, 24, 7, 8, 217, 135,
-			105, 120, 120, 120, 255, 165, 165, 44, 65, 70, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 200, 0, 4, 0, 1, 0, 200, 0, 200, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 50, 41, 26, 55,
-			55, 55, 47, 35, 11, 5, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 200, 0, 200, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28,
-			80, 78, 36, 76, 76, 76, 65, 49, 15, 7, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 192, 1, 188, 7, 236, 9, 32, 13,
-			136, 14, 128, 28, 70, 67, 33, 69, 69, 69, 59, 45, 13, 6, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 184, 1, 188, 7,
-			236, 9, 32, 13, 136, 14, 128, 28, 0, 30, 22, 47, 47, 47, 40, 30, 9, 4, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0,
-			33, 0, 152, 0, 32, 1, 224, 8, 24, 11, 72, 13, 0, 15, 160, 26, 52, 44, 9, 65, 57, 58, 53, 28, 13, 6, 175, 105, 120, 120,
-			120, 120, 175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 3, 0, 152, 0, 24, 1, 232, 8, 24, 11, 72, 13, 0, 15, 160, 26, 75, 67, 11, 81, 66, 66, 66, 35, 17, 8,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 15, 16, 33, 40, 22,
+			23, 18, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 151, 0, 4, 0, 1, 0, 16, 1, 136, 3, 40, 5, 140, 10, 112, 13, 35, 15,
+			32, 28, 46, 50, 33, 65, 59, 37, 25, 22, 8, 7, 217, 150, 105, 120, 120, 120, 255, 180, 150, 44, 65, 70, 130, 53, 0, 0, 0, 0,
+			50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 32, 1, 136, 3, 40, 5, 140, 10,
+			112, 13, 191, 14, 32, 28, 40, 96, 43, 94, 78, 57, 42, 26, 13, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54,
+			0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 32, 1, 136, 3,
+			40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 81, 39, 86, 71, 52, 38, 24, 11, 5, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44,
+			65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			16, 1, 128, 3, 60, 5, 100, 10, 112, 13, 191, 14, 160, 28, 0, 51, 35, 68, 61, 35, 32, 24, 7, 8, 217, 135, 105, 120, 120, 120,
+			255, 165, 165, 44, 65, 70, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 200, 0, 4, 0, 1, 0, 200, 0, 200, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 50, 41, 26, 55, 55, 55, 47, 35,
+			11, 5, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 200, 0, 200, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 80, 78, 36, 76,
+			76, 76, 65, 49, 15, 7, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 192, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28,
+			70, 67, 33, 69, 69, 69, 59, 45, 13, 6, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 184, 1, 188, 7, 236, 9, 32, 13,
+			136, 14, 128, 28, 0, 30, 22, 47, 47, 47, 40, 30, 9, 4, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 33, 0, 152, 0,
+			32, 1, 224, 8, 24, 11, 72, 13, 0, 15, 160, 26, 52, 44, 9, 65, 57, 58, 53, 28, 13, 6, 175, 105, 120, 120, 120, 120, 175, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			3, 0, 152, 0, 24, 1, 232, 8, 24, 11, 72, 13, 0, 15, 160, 26, 75, 67, 11, 81, 66, 66, 66, 35, 17, 8, 167, 105, 120, 120,
+			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 24, 11, 72, 13, 0, 15, 160, 26, 69, 54, 10, 73, 59, 59, 59, 31, 15, 7,
 			167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 24, 11, 72, 13, 0, 15, 160, 26, 69, 54, 10, 73, 59, 59,
-			59, 31, 15, 7, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 118, 0, 240, 0, 35, 9, 24, 11, 72, 13, 30, 15, 112, 26, 0, 27,
-			7, 48, 43, 42, 42, 23, 10, 6, 171, 105, 112, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 4, 0, 1, 0, 192, 0, 40, 2, 92, 3, 100, 10,
-			164, 11, 96, 14, 159, 27, 50, 57, 23, 57, 62, 34, 32, 19, 12, 4, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 192, 0, 40, 2,
-			92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 60, 121, 34, 82, 90, 49, 47, 27, 18, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 118, 0, 240, 0, 35, 9, 24, 11, 72, 13, 30, 15, 112, 26, 0, 27, 7, 48, 43, 42,
+			42, 23, 10, 6, 171, 105, 112, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 4, 0, 1, 0, 192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14,
+			159, 27, 50, 57, 23, 57, 62, 34, 32, 19, 12, 4, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 192, 0, 40, 2, 92, 3, 100, 10,
+			164, 11, 96, 14, 159, 27, 60, 121, 34, 82, 90, 49, 47, 27, 18, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 192, 0, 40, 2,
+			112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 50, 73, 29, 70, 64, 42, 40, 23, 15, 6, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
 			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 50, 73, 29, 70, 64, 42, 40, 23, 15, 6, 172, 142, 135, 120, 120, 120,
+			192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 0, 41, 22, 52, 48, 32, 30, 17, 11, 4, 172, 142, 135, 120, 120, 120,
 			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 0, 41, 22, 52, 48, 32, 30, 17, 11, 4, 172, 142,
-			135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 120, 0, 4, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 39, 6, 64,
-			43, 21, 21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26,
-			70, 55, 7, 77, 51, 25, 25, 36, 14, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 120, 0, 4, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 39, 6, 64, 43, 21, 21, 30,
+			12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 55, 7, 77,
+			51, 25, 25, 36, 14, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 64, 1, 92, 3, 156, 9, 12, 13, 60, 15, 144, 26,
+			50, 40, 6, 65, 43, 21, 21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 64, 1, 92, 3, 156, 9, 12, 13,
-			60, 15, 144, 26, 50, 40, 6, 65, 43, 21, 21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 64, 1, 92, 3,
-			156, 9, 12, 13, 60, 15, 144, 26, 0, 26, 5, 52, 35, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 120, 0, 6, 0,
-			1, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 20, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120,
+			60, 15, 144, 26, 0, 26, 5, 52, 35, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 120, 0, 6, 0, 1, 0, 116, 0,
+			0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 20, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			3, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120,
 			120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 3, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 22, 20, 39, 48, 27, 28, 21, 10, 4,
-			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 18, 18, 35, 44, 24,
-			25, 19, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 60, 18,
+			0, 250, 0, 0, 1, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 18, 18, 35, 44, 24, 25, 19, 9, 5,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 60, 18, 54, 38, 23, 14,
+			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 40, 17,
 			54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15,
-			0, 27, 40, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0,
-			60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 216, 1, 76, 4, 82, 8,
-			172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53,
-			225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 120, 0, 6, 0, 1, 0,
-			116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 20, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120, 120, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15,
+			0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0,
+			60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 120, 0, 6, 0, 1, 0, 116, 0, 0, 2,
+			20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 20, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0,
+			116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150, 135, 120, 120, 120,
 			197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 3, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 22, 20, 39, 48, 27, 28, 21, 10, 4, 167, 150,
-			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 18, 18, 35, 44, 24, 25, 19,
-			9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 96, 4, 16, 9, 88, 12, 91, 14, 32, 27, 60, 17, 38, 33,
+			0, 0, 1, 0, 116, 0, 0, 2, 20, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 18, 18, 35, 44, 24, 25, 19, 9, 5, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 96, 4, 16, 9, 88, 12, 91, 14, 32, 27, 60, 17, 38, 33, 28, 24, 33, 28,
+			7, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 96, 4, 16, 9, 88, 12, 91, 14, 32, 27, 40, 17, 38, 33,
 			28, 24, 33, 28, 7, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 96, 4, 16, 9, 88, 12, 91, 14, 32, 27,
-			40, 17, 38, 33, 28, 24, 33, 28, 7, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 114, 1, 16, 4, 252, 8, 200, 10,
-			91, 14, 32, 27, 0, 14, 40, 28, 20, 12, 8, 8, 6, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 5, 0, 1, 0, 140, 0,
-			240, 1, 232, 5, 76, 9, 236, 12, 176, 14, 77, 27, 20, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 114, 1, 16, 4, 252, 8, 200, 10, 91, 14, 32, 27,
+			0, 14, 40, 28, 20, 12, 8, 8, 6, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 5, 0, 1, 0, 140, 0, 240, 1, 232, 5,
+			76, 9, 236, 12, 176, 14, 77, 27, 20, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 140, 0,
+			240, 1, 232, 5, 76, 9, 236, 12, 176, 14, 77, 27, 40, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120,
 			120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			3, 0, 140, 0, 240, 1, 232, 5, 76, 9, 236, 12, 176, 14, 77, 27, 40, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 60, 17, 54, 38, 23, 14, 12, 14, 8, 0,
+			5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 60, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120,
+			120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 40, 17, 54, 38, 23, 14, 12, 14, 8, 0,
 			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 40, 17, 54, 38, 23, 14,
-			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 0, 14,
-			48, 34, 20, 12, 10, 12, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 5, 0, 1, 0, 140, 0, 240, 1, 232, 5, 76, 9,
-			236, 12, 176, 14, 77, 27, 20, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 140, 0, 240, 1,
-			232, 5, 76, 9, 236, 12, 176, 14, 77, 27, 40, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
-			236, 0, 124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 0, 14, 48, 34, 20, 12,
+			10, 12, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 5, 0, 1, 0, 140, 0, 240, 1, 232, 5, 76, 9, 236, 12, 176, 14,
+			77, 27, 20, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 140, 0, 240, 1, 232, 5, 76, 9,
+			236, 12, 176, 14, 77, 27, 40, 18, 22, 36, 40, 24, 24, 18, 9, 3, 160, 132, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1,
+			8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
+			236, 0, 124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 40, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120,
 			42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 236, 0, 124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 40, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60,
+			0, 0, 1, 0, 236, 0, 124, 1, 244, 6, 236, 9, 172, 13, 160, 15, 0, 27, 0, 14, 42, 32, 20, 16, 12, 9, 6, 0, 132, 60,
 			90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 124, 1, 244, 6, 236, 9, 172, 13, 160, 15, 0, 27, 0, 14, 42, 32, 20, 16, 12, 9,
-			6, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 120, 0, 5, 0, 1, 0, 184, 0, 248, 1, 32, 7, 244, 9, 85, 13, 104, 15, 70, 26,
-			20, 17, 26, 32, 37, 22, 22, 17, 8, 2, 148, 119, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 184, 0, 248, 1, 32, 7, 244, 9, 85, 13,
-			104, 15, 70, 26, 0, 17, 26, 32, 37, 22, 22, 17, 8, 2, 148, 119, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 234, 1, 52, 8,
-			236, 9, 172, 13, 160, 15, 0, 27, 60, 25, 57, 49, 29, 20, 20, 18, 10, 0, 120, 60, 90, 120, 120, 120, 50, 135, 105, 44, 20, 200,
-			200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0,
-			234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 40, 25, 57, 49, 29, 20, 20, 18, 10, 0, 120, 60, 90, 120, 120, 120, 50, 135,
+			0, 0, 0, 250, 0, 0, 120, 0, 5, 0, 1, 0, 184, 0, 248, 1, 32, 7, 244, 9, 85, 13, 104, 15, 70, 26, 20, 17, 26, 32,
+			37, 22, 22, 17, 8, 2, 148, 119, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 184, 0, 248, 1, 32, 7, 244, 9, 85, 13, 104, 15, 70, 26,
+			0, 17, 26, 32, 37, 22, 22, 17, 8, 2, 148, 119, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13,
+			160, 15, 0, 27, 60, 25, 57, 49, 29, 20, 20, 18, 10, 0, 120, 60, 90, 120, 120, 120, 50, 135, 105, 44, 20, 200, 200, 55, 230, 0,
+			0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 234, 1, 52, 8,
+			236, 9, 172, 13, 160, 15, 0, 27, 40, 25, 57, 49, 29, 20, 20, 18, 10, 0, 120, 60, 90, 120, 120, 120, 50, 135, 105, 44, 20, 200,
+			200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0,
+			234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 0, 15, 44, 38, 23, 16, 16, 14, 8, 0, 120, 60, 90, 120, 120, 120, 50, 135,
 			105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 0, 15, 44, 38, 23, 16, 16, 14, 8, 0, 120, 60, 90, 120,
-			120, 120, 50, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 8, 2, 70, 0, 0, 0, 0, 0, 0, 0, 4, 14, 28, 40, 46, 48, 46, 38, 23, 252, 211, 174, 161, 177, 209, 238,
-			0, 14, 26, 30, 17, 237, 190, 160, 167, 201, 232, 251, 15, 51, 91, 109, 92, 52, 11, 239, 216, 190, 166, 161, 190, 247, 51, 89, 101, 103,
-			104, 93, 52, 246, 185, 151, 149, 164, 184, 210, 252, 50, 101, 126, 115, 78, 34, 251, 212, 169, 136, 134, 171, 231, 31, 70, 95, 111, 115, 96,
-			50, 245, 190, 158, 151, 161, 180, 212, 2, 57, 102, 118, 104, 73, 37, 254, 209, 164, 137, 141, 175, 223, 12, 49, 76, 94, 96, 75, 32, 238,
-			196, 173, 166, 169, 182, 212, 0, 48, 80, 89, 78, 57, 27, 247, 205, 168, 149, 157, 188, 229, 14, 49, 78, 98, 100, 80, 40, 254, 219, 197,
-			185, 183, 195, 222, 3, 39, 62, 69, 63, 47, 25, 253, 220, 192, 179, 185, 205, 231, 0, 25, 47, 61, 59, 41, 14, 244, 222, 208, 200, 202,
-			213, 235, 4, 28, 42, 46, 42, 32, 17, 253, 230, 213, 208, 214, 228, 245, 6, 24, 39, 45, 41, 26, 6, 244, 229, 220, 216, 219, 230, 248,
-			12, 29, 37, 39, 35, 26, 12, 251, 235, 224, 221, 227, 238, 252, 10, 25, 36, 40, 35, 22, 6, 248, 235, 227, 223, 227, 237, 252, 10, 22,
-			29, 31, 27, 19, 7, 249, 236, 229, 227, 232, 241, 253, 9, 20, 28, 31, 26, 17, 5, 250, 240, 233, 231, 234, 242, 253, 7, 16, 22, 23,
-			21, 14, 5, 252, 243, 238, 237, 239, 245, 252, 4, 13, 18, 20, 17, 12, 5, 254, 248, 243, 241, 243, 248, 255, 5, 10, 14, 15, 13, 9,
-			3, 254, 249, 246, 245, 247, 251, 0, 3, 7, 10, 11, 9, 6, 2, 255, 251, 249, 249, 250, 252, 0, 2, 5, 7, 7, 6, 4, 1, 255,
-			253, 252, 252, 253, 254, 0, 1, 3, 3, 3, 3, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			8, 2, 70, 0, 0, 0, 0, 0, 0, 0, 4, 14, 28, 40, 46, 48, 46, 38, 23, 252, 211, 174, 161, 177, 209, 238, 0, 14, 26, 30,
+			17, 237, 190, 160, 167, 201, 232, 251, 15, 51, 91, 109, 92, 52, 11, 239, 216, 190, 166, 161, 190, 247, 51, 89, 101, 103, 104, 93, 52, 246,
+			185, 151, 149, 164, 184, 210, 252, 50, 101, 126, 115, 78, 34, 251, 212, 169, 136, 134, 171, 231, 31, 70, 95, 111, 115, 96, 50, 245, 190, 158,
+			151, 161, 180, 212, 2, 57, 102, 118, 104, 73, 37, 254, 209, 164, 137, 141, 175, 223, 12, 49, 76, 94, 96, 75, 32, 238, 196, 173, 166, 169,
+			182, 212, 0, 48, 80, 89, 78, 57, 27, 247, 205, 168, 149, 157, 188, 229, 14, 49, 78, 98, 100, 80, 40, 254, 219, 197, 185, 183, 195, 222,
+			3, 39, 62, 69, 63, 47, 25, 253, 220, 192, 179, 185, 205, 231, 0, 25, 47, 61, 59, 41, 14, 244, 222, 208, 200, 202, 213, 235, 4, 28,
+			42, 46, 42, 32, 17, 253, 230, 213, 208, 214, 228, 245, 6, 24, 39, 45, 41, 26, 6, 244, 229, 220, 216, 219, 230, 248, 12, 29, 37, 39,
+			35, 26, 12, 251, 235, 224, 221, 227, 238, 252, 10, 25, 36, 40, 35, 22, 6, 248, 235, 227, 223, 227, 237, 252, 10, 22, 29, 31, 27, 19,
+			7, 249, 236, 229, 227, 232, 241, 253, 9, 20, 28, 31, 26, 17, 5, 250, 240, 233, 231, 234, 242, 253, 7, 16, 22, 23, 21, 14, 5, 252,
+			243, 238, 237, 239, 245, 252, 4, 13, 18, 20, 17, 12, 5, 254, 248, 243, 241, 243, 248, 255, 5, 10, 14, 15, 13, 9, 3, 254, 249, 246,
+			245, 247, 251, 0, 3, 7, 10, 11, 9, 6, 2, 255, 251, 249, 249, 250, 252, 0, 2, 5, 7, 7, 6, 4, 1, 255, 253, 252, 252, 253,
+			254, 0, 1, 3, 3, 3, 3, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 5, 0, 1, 0, 204, 0, 128, 2, 176, 4,
-			252, 8, 240, 10, 52, 18, 0, 28, 45, 42, 34, 58, 42, 39, 34, 8, 14, 5, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70,
-			130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 216, 0,
-			136, 2, 176, 4, 252, 8, 227, 12, 20, 15, 214, 27, 55, 56, 32, 63, 62, 39, 39, 30, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 5, 0, 1, 0, 204, 0, 128, 2, 176, 4, 252, 8, 240, 10,
+			52, 18, 0, 28, 45, 42, 34, 58, 42, 39, 34, 8, 14, 5, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 57, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 216, 0, 136, 2, 176, 4,
+			252, 8, 227, 12, 20, 15, 214, 27, 55, 56, 32, 63, 62, 39, 39, 30, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70,
+			130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 216, 0,
+			136, 2, 176, 4, 252, 8, 227, 12, 20, 15, 214, 27, 80, 42, 28, 55, 54, 34, 34, 26, 13, 5, 189, 159, 136, 120, 120, 120, 237, 165,
 			165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			65, 0, 216, 0, 136, 2, 176, 4, 252, 8, 227, 12, 20, 15, 214, 27, 80, 42, 28, 55, 54, 34, 34, 26, 13, 5, 189, 159, 136, 120,
-			120, 120, 237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 204, 0, 128, 2, 176, 4, 212, 8, 44, 11, 20, 15, 0, 28, 35, 26, 26, 47, 33, 27, 29, 9, 11, 4,
+			1, 0, 204, 0, 128, 2, 176, 4, 212, 8, 44, 11, 20, 15, 0, 28, 35, 26, 26, 47, 33, 27, 29, 9, 11, 4, 170, 165, 137, 120,
+			120, 120, 170, 180, 137, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 204, 0, 128, 2, 176, 4, 212, 8, 44, 11, 20, 15, 0, 28, 0, 26, 26, 47, 33, 27, 29, 9, 11, 4,
 			170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 128, 2, 176, 4, 212, 8, 44, 11, 20, 15, 0, 28, 0, 26, 26, 47, 33, 27,
-			29, 9, 11, 4, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 165, 0, 4, 0, 1, 0, 104, 0, 96, 1, 0, 5, 204, 11, 192, 13, 180, 15,
-			32, 29, 45, 37, 18, 64, 39, 21, 43, 25, 8, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 104, 0, 96, 1, 216, 4, 204, 11,
-			192, 13, 180, 15, 32, 29, 60, 45, 20, 72, 44, 24, 48, 28, 9, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 0, 250, 0, 0, 165, 0, 4, 0, 1, 0, 104, 0, 96, 1, 0, 5, 204, 11, 192, 13, 180, 15, 32, 29, 45, 37,
+			18, 64, 39, 21, 43, 25, 8, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 45, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 0, 104, 0, 96, 1, 216, 4, 204, 11, 192, 13, 180, 15,
+			32, 29, 60, 45, 20, 72, 44, 24, 48, 28, 9, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 104, 0, 96, 1, 176, 4, 204, 11,
+			192, 13, 180, 15, 32, 29, 60, 45, 20, 72, 44, 24, 48, 28, 9, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44, 45, 70, 130, 58,
 			0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 104, 0, 96, 1,
-			176, 4, 204, 11, 192, 13, 180, 15, 32, 29, 60, 45, 20, 72, 44, 24, 48, 28, 9, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44,
-			45, 70, 130, 58, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			104, 0, 96, 1, 176, 4, 204, 11, 192, 13, 180, 15, 32, 29, 0, 37, 18, 64, 39, 21, 43, 25, 8, 0, 155, 120, 97, 120, 120, 120,
-			95, 120, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 75, 0, 3, 0, 1, 0, 244, 0, 129, 1, 96, 4, 24, 6, 88, 12, 41, 14, 192, 27, 40, 40, 48, 51, 44, 16, 0, 0,
-			10, 0, 147, 80, 120, 120, 120, 120, 87, 95, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 149, 1, 98, 4, 224, 6, 88, 12, 41, 14, 192, 28, 35, 65, 39, 84,
-			62, 33, 22, 17, 16, 0, 150, 90, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 13, 2, 172, 5, 208, 7, 88, 12, 41, 14, 192, 28,
-			0, 85, 40, 77, 109, 49, 46, 29, 16, 0, 120, 165, 120, 120, 120, 120, 60, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 3, 0, 21, 0, 0, 1, 184, 1, 176, 4,
+			176, 4, 204, 11, 192, 13, 180, 15, 32, 29, 0, 37, 18, 64, 39, 21, 43, 25, 8, 0, 155, 120, 97, 120, 120, 120, 95, 120, 97, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0,
+			3, 0, 1, 0, 244, 0, 129, 1, 96, 4, 24, 6, 88, 12, 41, 14, 192, 27, 40, 40, 48, 51, 44, 16, 0, 0, 10, 0, 147, 80,
+			120, 120, 120, 120, 87, 95, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 149, 1, 98, 4, 224, 6, 88, 12, 41, 14, 192, 28, 35, 65, 39, 84, 62, 33, 22, 17,
+			16, 0, 150, 90, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 13, 2, 172, 5, 208, 7, 88, 12, 41, 14, 192, 28, 0, 85, 40, 77,
+			109, 49, 46, 29, 16, 0, 120, 165, 120, 120, 120, 120, 60, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 3, 0, 21, 0, 0, 1, 184, 1, 176, 4, 64, 6, 124, 11,
+			96, 14, 224, 27, 40, 26, 45, 40, 47, 25, 0, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 45, 70, 130, 54, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 184, 0, 164, 1, 96, 4,
+			168, 7, 28, 12, 66, 14, 96, 27, 35, 61, 40, 80, 60, 33, 19, 14, 13, 0, 157, 105, 120, 120, 120, 120, 112, 90, 60, 44, 45, 70,
+			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0,
+			128, 2, 65, 4, 232, 8, 28, 12, 166, 14, 96, 27, 0, 99, 45, 78, 119, 51, 50, 35, 17, 0, 120, 105, 120, 120, 120, 120, 75, 90,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			75, 0, 3, 0, 5, 0, 216, 0, 64, 1, 236, 4, 24, 6, 184, 11, 166, 14, 224, 26, 40, 42, 43, 56, 31, 15, 0, 0, 15, 0,
+			147, 60, 150, 120, 120, 120, 87, 90, 90, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 160, 1, 236, 4, 144, 6, 184, 11, 236, 14, 64, 27, 35, 59, 36, 76, 64, 33,
+			32, 13, 15, 0, 150, 120, 105, 120, 120, 120, 105, 90, 78, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 178, 2, 249, 5, 232, 8, 188, 12, 91, 14, 0, 28, 0, 82,
+			40, 57, 115, 64, 66, 42, 14, 0, 120, 165, 120, 120, 120, 120, 120, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 80, 0, 3, 0, 37, 0, 216, 0, 64, 1, 236, 4, 24, 6,
+			184, 11, 166, 14, 224, 26, 40, 46, 46, 59, 33, 16, 0, 0, 10, 0, 147, 60, 150, 120, 120, 120, 87, 90, 90, 44, 45, 70, 130, 54,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 120, 0, 124, 1,
+			117, 5, 52, 8, 224, 11, 166, 14, 224, 26, 40, 49, 19, 73, 56, 36, 39, 19, 12, 0, 150, 165, 150, 120, 120, 120, 90, 90, 90, 44,
+			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			120, 0, 84, 1, 97, 8, 116, 9, 12, 13, 110, 15, 96, 27, 0, 79, 16, 75, 80, 86, 84, 54, 17, 0, 120, 135, 150, 120, 120, 120,
+			60, 120, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 75, 0, 3, 0, 1, 0, 0, 1, 184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 40, 26, 45, 40, 47, 25, 0, 16,
+			5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 49, 1, 21, 4, 88, 7, 48, 12, 41, 14, 32, 26, 35, 47, 35, 76,
+			55, 29, 14, 14, 22, 0, 150, 75, 105, 120, 120, 120, 60, 105, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 189, 1, 123, 3, 132, 8, 48, 12, 41, 14, 64, 27,
+			0, 119, 49, 103, 110, 61, 48, 33, 18, 0, 120, 150, 105, 120, 120, 120, 30, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 3, 0, 1, 0, 0, 1, 184, 1, 176, 4,
 			64, 6, 124, 11, 96, 14, 224, 27, 40, 26, 45, 40, 47, 25, 0, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 45, 70,
-			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 184, 0,
-			164, 1, 96, 4, 168, 7, 28, 12, 66, 14, 96, 27, 35, 61, 40, 80, 60, 33, 19, 14, 13, 0, 157, 105, 120, 120, 120, 120, 112, 90,
-			60, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 184, 0, 128, 2, 65, 4, 232, 8, 28, 12, 166, 14, 96, 27, 0, 99, 45, 78, 119, 51, 50, 35, 17, 0, 120, 105, 120, 120,
-			120, 120, 75, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 75, 0, 3, 0, 5, 0, 216, 0, 64, 1, 236, 4, 24, 6, 184, 11, 166, 14, 224, 26, 40, 42, 43, 56, 31, 15,
-			0, 0, 15, 0, 147, 60, 150, 120, 120, 120, 87, 90, 90, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 160, 1, 236, 4, 144, 6, 184, 11, 236, 14, 64, 27, 35, 59,
-			36, 76, 64, 33, 32, 13, 15, 0, 150, 120, 105, 120, 120, 120, 105, 90, 78, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 178, 2, 249, 5, 232, 8, 188, 12, 91, 14,
-			0, 28, 0, 82, 40, 57, 115, 64, 66, 42, 14, 0, 120, 165, 120, 120, 120, 120, 120, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 80, 0, 3, 0, 37, 0, 216, 0, 64, 1,
-			236, 4, 24, 6, 184, 11, 166, 14, 224, 26, 40, 46, 46, 59, 33, 16, 0, 0, 10, 0, 147, 60, 150, 120, 120, 120, 87, 90, 90, 44,
-			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0,
-			120, 0, 124, 1, 117, 5, 52, 8, 224, 11, 166, 14, 224, 26, 40, 49, 19, 73, 56, 36, 39, 19, 12, 0, 150, 165, 150, 120, 120, 120,
-			90, 90, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 120, 0, 84, 1, 97, 8, 116, 9, 12, 13, 110, 15, 96, 27, 0, 79, 16, 75, 80, 86, 84, 54, 17, 0, 120, 135,
-			150, 120, 120, 120, 60, 120, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 75, 0, 3, 0, 1, 0, 0, 1, 184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 40, 26, 45, 40,
-			47, 25, 0, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 49, 1, 21, 4, 88, 7, 48, 12, 41, 14, 32, 26,
-			35, 47, 35, 76, 55, 29, 14, 14, 22, 0, 150, 75, 105, 120, 120, 120, 60, 105, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 189, 1, 123, 3, 132, 8, 48, 12,
-			41, 14, 64, 27, 0, 119, 49, 103, 110, 61, 48, 33, 18, 0, 120, 150, 105, 120, 120, 120, 30, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 3, 0, 1, 0, 0, 1,
-			184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 40, 26, 45, 40, 47, 25, 0, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90,
-			75, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 40, 0, 54, 1, 109, 4, 104, 6, 128, 12, 247, 13, 192, 28, 35, 35, 16, 59, 46, 31, 31, 18, 13, 0, 150, 120, 120, 120,
-			120, 120, 150, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 40, 0, 134, 1, 205, 5, 72, 8, 128, 12, 247, 13, 192, 28, 0, 74, 16, 95, 70, 33, 36, 18, 13, 0,
-			120, 120, 120, 120, 120, 120, 120, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 244, 0, 174, 1, 136, 4, 4, 6, 124, 11, 79, 16, 64, 27, 50, 21,
+			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 40, 0,
+			54, 1, 109, 4, 104, 6, 128, 12, 247, 13, 192, 28, 35, 35, 16, 59, 46, 31, 31, 18, 13, 0, 150, 120, 120, 120, 120, 120, 150, 120,
+			120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 40, 0, 134, 1, 205, 5, 72, 8, 128, 12, 247, 13, 192, 28, 0, 74, 16, 95, 70, 33, 36, 18, 13, 0, 120, 120, 120, 120,
+			120, 120, 120, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 244, 0, 174, 1, 136, 4, 4, 6, 124, 11, 79, 16, 64, 27, 50, 21, 51, 34, 39, 16,
+			18, 7, 7, 0, 120, 45, 135, 120, 120, 120, 60, 90, 93, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 174, 1, 136, 4, 4, 6, 124, 11, 79, 16, 64, 27, 0, 21,
 			51, 34, 39, 16, 18, 7, 7, 0, 120, 45, 135, 120, 120, 120, 60, 90, 93, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 174, 1, 136, 4, 4, 6, 124, 11, 79, 16,
-			64, 27, 0, 21, 51, 34, 39, 16, 18, 7, 7, 0, 120, 45, 135, 120, 120, 120, 60, 90, 93, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 3, 0, 1, 0, 8, 1, 184, 1,
-			232, 3, 160, 5, 108, 12, 210, 15, 224, 27, 40, 16, 34, 40, 26, 12, 0, 4, 3, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 3, 0, 1, 0, 8, 1, 184, 1, 232, 3, 160, 5,
+			108, 12, 210, 15, 224, 27, 40, 16, 34, 40, 26, 12, 0, 4, 3, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 35, 50, 60, 52,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1, 184, 1,
+			232, 3, 200, 5, 48, 12, 140, 15, 224, 27, 25, 24, 42, 44, 45, 20, 8, 16, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44,
 			35, 50, 60, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			8, 1, 184, 1, 232, 3, 200, 5, 48, 12, 140, 15, 224, 27, 25, 24, 42, 44, 45, 20, 8, 16, 7, 0, 120, 60, 120, 120, 120, 120,
-			75, 90, 75, 44, 35, 50, 60, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 8, 1, 184, 1, 32, 3, 200, 5, 48, 12, 140, 15, 224, 27, 0, 26, 42, 44, 45, 20, 8, 16, 7, 0, 120, 60,
-			120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 1, 0, 24, 1, 184, 1, 233, 3, 200, 5, 108, 12, 210, 15, 224, 27, 20, 10, 34, 21,
-			26, 13, 5, 5, 3, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 35, 50, 60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 24, 1, 184, 1, 233, 3, 200, 5, 108, 12, 210, 15, 224, 27,
-			0, 34, 61, 39, 47, 24, 12, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 12, 0, 3, 0, 1, 0, 0, 1, 184, 1, 176, 4,
-			64, 6, 124, 11, 96, 14, 224, 27, 12, 27, 45, 44, 40, 20, 12, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 35, 50,
+			8, 1, 184, 1, 32, 3, 200, 5, 48, 12, 140, 15, 224, 27, 0, 26, 42, 44, 45, 20, 8, 16, 7, 0, 120, 60, 120, 120, 120, 120,
+			75, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 20, 0, 2, 0, 1, 0, 24, 1, 184, 1, 233, 3, 200, 5, 108, 12, 210, 15, 224, 27, 20, 10, 34, 21, 26, 13, 5, 5,
+			3, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 35, 50, 60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 24, 1, 184, 1, 233, 3, 200, 5, 108, 12, 210, 15, 224, 27, 0, 34, 61, 39,
+			47, 24, 12, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 12, 0, 3, 0, 1, 0, 0, 1, 184, 1, 176, 4, 64, 6, 124, 11,
+			96, 14, 224, 27, 12, 27, 45, 44, 40, 20, 12, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 35, 50, 60, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 0, 1, 184, 1, 176, 4,
+			64, 6, 124, 11, 96, 14, 224, 27, 0, 26, 45, 40, 47, 25, 12, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90, 75, 44, 35, 50,
 			60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 0, 1,
-			184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 0, 26, 45, 40, 47, 25, 12, 16, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90,
+			184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 0, 26, 45, 40, 47, 25, 20, 11, 5, 0, 150, 60, 120, 120, 120, 120, 105, 90,
 			75, 44, 35, 50, 60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 0, 1, 184, 1, 176, 4, 64, 6, 124, 11, 96, 14, 224, 27, 0, 26, 45, 40, 47, 25, 20, 11, 5, 0, 150, 60, 120, 120,
-			120, 120, 105, 90, 75, 44, 35, 50, 60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 40, 0, 2, 0, 37, 0, 184, 0, 24, 2, 112, 5, 72, 8, 0, 10, 188, 12, 136, 19, 40, 17, 43, 9, 14, 19,
-			28, 9, 9, 9, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 24, 2, 112, 5, 248, 7, 236, 9, 188, 12, 131, 24, 0, 17,
-			42, 14, 14, 32, 23, 9, 4, 4, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 81, 19, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			40, 0, 2, 0, 37, 0, 184, 0, 24, 2, 112, 5, 72, 8, 0, 10, 188, 12, 136, 19, 40, 17, 43, 9, 14, 19, 28, 9, 9, 9,
+			157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 24, 2, 112, 5, 248, 7, 236, 9, 188, 12, 131, 24, 0, 17, 42, 14, 14, 32,
+			23, 9, 4, 4, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 81, 19, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-			3, 6, 9, 10, 9, 4, 7, 1, 249, 249, 241, 233, 233, 234, 251, 8, 3, 8, 14, 34, 32, 37, 29, 26, 28, 27, 13, 12, 8, 253,
-			3, 20, 27, 20, 10, 22, 17, 16, 9, 3, 249, 244, 234, 237, 244, 242, 242, 249, 4, 25, 30, 28, 27, 25, 38, 32, 15, 6, 3, 0,
-			246, 247, 246, 255, 249, 5, 23, 31, 14, 7, 14, 9, 2, 1, 247, 241, 238, 227, 239, 248, 244, 246, 254, 8, 26, 28, 21, 19, 22, 25,
-			26, 5, 3, 14, 11, 7, 7, 10, 24, 23, 20, 31, 33, 23, 20, 19, 9, 3, 244, 247, 237, 235, 235, 237, 237, 237, 236, 246, 246, 242,
-			245, 247, 247, 243, 248, 248, 231, 236, 241, 244, 241, 243, 5, 23, 26, 28, 37, 41, 35, 29, 25, 23, 21, 12, 5, 10, 12, 16, 24, 21,
-			24, 29, 38, 32, 15, 6, 3, 1, 252, 246, 246, 248, 250, 2, 253, 8, 12, 7, 14, 18, 7, 3, 247, 247, 0, 0, 250, 247, 1, 3,
-			254, 5, 15, 19, 22, 16, 22, 27, 21, 19, 16, 18, 29, 28, 16, 21, 34, 39, 38, 31, 32, 37, 36, 23, 22, 17, 10, 251, 250, 11,
-			9, 3, 9, 10, 12, 7, 0, 5, 14, 5, 249, 241, 245, 248, 253, 253, 252, 7, 251, 254, 5, 9, 10, 8, 250, 9, 6, 8, 17, 26,
-			41, 43, 35, 33, 51, 54, 44, 34, 34, 31, 25, 21, 24, 42, 34, 15, 22, 29, 34, 31, 12, 1, 255, 227, 218, 220, 223, 227, 222, 223,
-			249, 12, 11, 15, 30, 36, 22, 0, 251, 11, 249, 232, 247, 245, 0, 12, 16, 49, 78, 78, 83, 91, 82, 70, 45, 30, 23, 244, 229, 243,
-			247, 245, 253, 255, 22, 28, 13, 18, 22, 254, 247, 228, 220, 229, 219, 209, 227, 247, 253, 10, 16, 24, 19, 18, 255, 241, 236, 240, 236, 236,
-			4, 31, 30, 45, 78, 76, 86, 85, 75, 72, 57, 16, 0, 239, 242, 247, 250, 2, 13, 18, 33, 42, 33, 32, 14, 1, 250, 230, 209, 202,
-			201, 204, 222, 237, 254, 0, 15, 36, 34, 36, 16, 245, 253, 250, 240, 242, 249, 7, 34, 37, 58, 89, 82, 68, 82, 68, 47, 40, 19, 3,
-			251, 247, 250, 254, 246, 254, 14, 27, 28, 15, 12, 13, 253, 226, 219, 223, 211, 198, 204, 222, 230, 232, 234, 253, 0, 243, 244, 253, 251, 238,
-			241, 4, 14, 13, 20, 36, 52, 51, 43, 33, 30, 34, 25, 20, 21, 21, 22, 21, 36, 60, 59, 45, 31, 20, 9, 254, 237, 239, 228, 205,
-			201, 211, 226, 226, 221, 246, 4, 248, 252, 243, 253, 238, 228, 214, 216, 235, 235, 241, 250, 14, 25, 35, 47, 63, 60, 47, 39, 42, 50, 34,
-			14, 4, 2, 248, 250, 2, 21, 32, 18, 10, 29, 29, 15, 3, 0, 255, 241, 227, 211, 226, 240, 232, 221, 229, 249, 8, 18, 18, 26, 23,
-			15, 16, 25, 17, 7, 255, 7, 2, 255, 9, 20, 7, 13, 20, 34, 39, 38, 24, 28, 37, 20, 8, 12, 11, 17, 17, 2, 4, 8, 17,
-			27, 20, 26, 29, 14, 7, 14, 12, 243, 240, 247, 255, 9, 12, 18, 32, 31, 22, 38, 26, 13, 255, 242, 248, 252, 231, 240, 252, 8, 18,
-			17, 21, 41, 45, 38, 42, 30, 23, 28, 9, 251, 17, 22, 1, 5, 26, 29, 26, 32, 34, 45, 15, 253, 17, 11, 251, 242, 237, 253, 236,
-			215, 6, 17, 25, 56, 57, 32, 53, 42, 14, 44, 54, 15, 14, 10, 8, 1, 243, 15, 33, 30, 17, 16, 14, 2, 240, 234, 242, 225, 195,
-			192, 206, 225, 2, 244, 239, 253, 239, 246, 247, 244, 2, 1, 250, 255, 26, 37, 37, 28, 49, 52, 24, 21, 16, 10, 252, 237, 250, 3, 3,
-			14, 10, 6, 20, 252, 236, 238, 222, 202, 182, 168, 168, 183, 186, 189, 213, 253, 8, 41, 43, 51, 75, 51, 45, 54, 23, 16, 15, 229, 240,
-			14, 5, 18, 46, 51, 65, 76, 61, 61, 49, 34, 27, 247, 227, 233, 215, 223, 238, 236, 2, 22, 21, 60, 63, 23, 20, 15, 237, 236, 237,
-			203, 207, 215, 229, 0, 6, 17, 51, 61, 55, 52, 35, 24, 11, 253, 4, 253, 234, 242, 0, 1, 24, 48, 66, 96, 101, 104, 94, 78, 68,
-			55, 41, 27, 9, 236, 235, 244, 253, 1, 253, 253, 10, 19, 23, 5, 1, 6, 249, 223, 215, 228, 223, 220, 240, 244, 244, 255, 0, 20, 50,
-			38, 44, 51, 37, 44, 56, 44, 49, 51, 38, 57, 57, 61, 87, 76, 83, 82, 59, 48, 30, 3, 4, 247, 231, 225, 214, 227, 236, 226, 245,
-			250, 243, 243, 247, 243, 253, 247, 251, 255, 250, 239, 249, 13, 25, 29, 19, 30, 40, 33, 46, 63, 53, 38, 45, 48, 34, 23, 34, 43, 39,
-			45, 25, 13, 26, 4, 250, 249, 0, 5, 227, 231, 245, 242, 233, 226, 219, 250, 16, 251, 252, 21, 14, 8, 0, 1, 10, 246, 242, 11, 255,
-			233, 245, 236, 242, 2, 18, 35, 45, 41, 29, 37, 48, 46, 33, 12, 19, 21, 252, 236, 244, 10, 15, 22, 18, 43, 62, 23, 18, 36, 10,
-			232, 242, 217, 224, 232, 211, 250, 23, 254, 8, 23, 37, 41, 254, 253, 7, 236, 213, 213, 223, 244, 235, 237, 7, 26, 20, 25, 43, 45, 33,
-			16, 6, 1, 236, 224, 238, 4, 13, 21, 17, 56, 70, 37, 59, 60, 29, 36, 0, 213, 217, 199, 176, 205, 225, 237, 14, 21, 28, 43, 40,
-			14, 4, 8, 0, 228, 209, 221, 227, 220, 220, 248, 20, 49, 66, 53, 68, 66, 29, 8, 8, 235, 215, 224, 239, 249, 253, 31, 71, 51, 51,
-			77, 61, 24, 16, 238, 206, 181, 166, 173, 170, 177, 245, 24, 26, 55, 81, 93, 88, 51, 36, 34, 251, 200, 196, 211, 199, 212, 5, 20, 34,
-			58, 60, 64, 85, 67, 51, 14, 241, 246, 195, 198, 251, 220, 240, 0, 254, 48, 31, 250, 66, 80, 27, 16, 17, 10, 237, 201, 235, 13, 2,
-			221, 227, 42, 54, 35, 56, 68, 86, 36, 253, 34, 34, 247, 234, 244, 249, 250, 235, 2, 51, 50, 58, 63, 52, 49, 45, 35, 39, 250, 210,
-			228, 243, 247, 251, 243, 239, 246, 250, 250, 0, 255, 254, 233, 192, 190, 206, 198, 189, 197, 219, 249, 4, 240, 0, 4, 250, 1, 253, 250, 14,
-			32, 51, 52, 27, 27, 54, 71, 56, 43, 48, 50, 50, 1, 247, 25, 12, 243, 238, 236, 234, 249, 225, 231, 248, 220, 227, 238, 215, 213, 227,
-			228, 249, 253, 228, 0, 241, 206, 224, 253, 18, 48, 41, 56, 84, 68, 71, 89, 89, 95, 98, 82, 89, 59, 21, 33, 18, 240, 251, 238, 244,
-			25, 255, 246, 9, 253, 254, 248, 233, 255, 234, 201, 216, 237, 229, 237, 246, 11, 36, 49, 62, 73, 63, 53, 73, 63, 36, 27, 15, 24, 9,
-			16, 52, 56, 33, 26, 22, 19, 0, 226, 235, 240, 225, 219, 224, 250, 13, 12, 31, 82, 59, 36, 44, 50, 41, 8, 225, 236, 239, 220, 255,
-			18, 27, 49, 42, 57, 91, 74, 40, 42, 29, 5, 254, 238, 240, 246, 227, 245, 13, 30, 31, 39, 47, 67, 33, 9, 12, 3, 4, 5, 244,
-			10, 18, 255, 29, 49, 32, 28, 10, 9, 254, 233, 236, 3, 246, 236, 243, 252, 2, 15, 25, 41, 64, 48, 19, 9, 7, 1, 249, 253, 10,
-			9, 251, 245, 21, 29, 20, 24, 28, 25, 21, 250, 246, 13, 29, 24, 28, 36, 32, 47, 12, 6, 47, 41, 8, 15, 12, 15, 23, 248, 7,
-			45, 6, 239, 27, 24, 3, 28, 21, 38, 43, 255, 16, 45, 1, 3, 44, 25, 18, 22, 238, 16, 23, 236, 241, 222, 186, 213, 187, 172, 227,
-			233, 236, 248, 2, 49, 44, 9, 47, 42, 0, 10, 233, 223, 240, 216, 233, 7, 248, 242, 18, 25, 37, 32, 29, 67, 66, 31, 15, 18, 24,
-			12, 240, 229, 247, 234, 215, 208, 220, 228, 208, 188, 234, 238, 201, 219, 235, 238, 246, 217, 242, 25, 244, 212, 229, 252, 14, 246, 250, 62, 34,
-			239, 255, 32, 51, 36, 255, 29, 51, 250, 239, 13, 18, 254, 255, 9, 28, 21, 237, 251, 20, 3, 235, 243, 251, 251, 233, 236, 21, 6, 249,
-			6, 20, 25, 4, 254, 9, 7, 252, 239, 251, 4, 243, 251, 23, 25, 17, 1, 21, 33, 36, 17, 240, 0, 11, 229, 253, 38, 24, 38, 16,
-			2, 53, 53, 42, 59, 23, 4, 12, 252, 6, 9, 235, 0, 3, 223, 234, 6, 20, 17, 243, 245, 13, 12, 21, 35, 13, 34, 23, 240, 14,
-			19, 2, 0, 251, 237, 237, 222, 238, 21, 8, 16, 29, 1, 25, 17, 228, 23, 47, 10, 22, 7, 16, 33, 253, 8, 75, 59, 33, 47, 28,
-			27, 25, 12, 33, 21, 245, 236, 244, 2, 252, 239, 0, 5, 229, 225, 14, 26, 15, 6, 3, 22, 29, 242, 252, 17, 227, 229, 243, 240, 0,
-			1, 17, 65, 79, 53, 80, 79, 81, 76, 64, 53, 28, 242, 249, 246, 253, 3, 26, 88, 97, 79, 94, 73, 41, 44, 42, 45, 35, 242, 233,
-			228, 218, 243, 0, 31, 49, 9, 51, 97, 40, 10, 0, 241, 12, 219, 199, 224, 239, 255, 252, 37, 68, 59, 63, 89, 99, 95, 50, 2, 12,
-			11, 254, 227, 229, 214, 185, 221, 0, 21, 30, 7, 238, 6, 28, 9, 244, 231, 236, 232, 209, 219, 249, 224, 193, 240, 5, 250, 229, 227, 16,
-			35, 242, 214, 5, 254, 212, 231, 15, 23, 13, 0, 7, 52, 50, 18, 18, 8, 235, 235, 0, 241, 211, 224, 9, 36, 32, 23, 50, 45, 26,
-			22, 26, 21, 241, 209, 214, 238, 240, 254, 0, 5, 30, 21, 31, 36, 251, 249, 234, 229, 229, 189, 183, 248, 5, 11, 59, 60, 68, 94, 95,
-			83, 96, 69, 36, 50, 28, 246, 244, 0, 255, 0, 19, 32, 39, 21, 11, 30, 22, 248, 249, 237, 231, 243, 216, 216, 247, 251, 9, 47, 33,
-			46, 74, 62, 72, 53, 254, 3, 19, 253, 243, 237, 238, 8, 10, 22, 60, 62, 42, 41, 71, 86, 67, 37, 21, 33, 17, 14, 15, 12, 3,
-			242, 36, 66, 43, 14, 29, 28, 31, 3, 224, 232, 245, 238, 251, 245, 9, 20, 15, 30, 70, 53, 29, 12, 0, 246, 228, 212, 220, 237, 1,
-			37, 53, 58, 57, 58, 67, 56, 14, 4, 4, 241, 245, 238, 215, 213, 215, 246, 21, 19, 252, 6, 10, 250, 3, 251, 242, 246, 235, 246, 255,
-			242, 243, 233, 0, 24, 6, 255, 12, 16, 13, 17, 10, 249, 242, 249, 239, 240, 242, 233, 235, 8, 29, 255, 240, 9, 7, 10, 21, 254, 239,
-			224, 193, 210, 245, 243, 240, 230, 247, 19, 11, 252, 25, 31, 33, 15, 239, 230, 250, 8, 0, 6, 252, 236, 0, 17, 14, 10, 9, 7, 237,
-			227, 5, 22, 1, 249, 235, 246, 11, 5, 235, 6, 8, 254, 3, 231, 239, 35, 11, 238, 3, 7, 253, 5, 4, 7, 20, 244, 7, 55, 38,
-			38, 44, 34, 42, 20, 244, 20, 44, 246, 228, 245, 252, 254, 254, 7, 37, 21, 4, 18, 13, 252, 8, 21, 250, 213, 212, 250, 15, 234, 226,
-			31, 57, 45, 35, 56, 83, 70, 25, 48, 56, 14, 2, 248, 236, 220, 215, 255, 24, 8, 38, 74, 58, 44, 48, 41, 41, 36, 10, 225, 225,
-			247, 241, 232, 253, 15, 20, 17, 26, 46, 30, 11, 0, 242, 246, 238, 228, 228, 239, 218, 242, 31, 48, 23, 11, 36, 38, 15, 249, 252, 0,
-			0, 237, 254, 11, 5, 3, 21, 69, 95, 55, 45, 85, 70, 13, 8, 11, 247, 229, 210, 7, 49, 237, 225, 15, 32, 32, 19, 10, 20, 254,
-			222, 249, 249, 224, 216, 222, 11, 18, 5, 43, 75, 62, 55, 47, 43, 40, 0, 252, 52, 30, 233, 2, 21, 37, 77, 73, 74, 92, 66, 50,
-			77, 50, 2, 249, 224, 223, 210, 196, 228, 243, 221, 242, 10, 12, 12, 255, 3, 27, 8, 231, 221, 222, 225, 219, 209, 226, 228, 205, 248, 29,
-			33, 70, 67, 57, 86, 84, 93, 100, 82, 72, 43, 7, 16, 31, 13, 15, 29, 19, 20, 26, 19, 55, 30, 247, 5, 251, 193, 171, 180, 233,
-			240, 226, 14, 28, 17, 30, 67, 92, 55, 247, 242, 240, 243, 234, 204, 234, 9, 14, 65, 104, 98, 84, 75, 106, 112, 53, 32, 29, 226, 206,
-			238, 0, 11, 230, 219, 35, 59, 0, 246, 227, 254, 0, 191, 187, 203, 159, 168, 231, 255, 235, 231, 213, 18, 33, 254, 247, 239, 243, 13, 6,
-			26, 62, 30, 9, 73, 99, 109, 50, 5, 40, 27, 2, 0, 0, 9, 9, 4, 23, 36, 15, 255, 11, 46, 6, 192, 209, 229, 228, 206, 178,
-			224, 5, 248, 12, 57, 37, 29, 239, 237, 56, 40, 231, 237, 241, 229, 229, 225, 26, 19, 242, 18, 62, 44, 239, 230, 31, 34, 211, 199, 248,
-			233, 227, 217, 245, 245, 210, 214, 242, 24, 28, 235, 246, 8, 253, 9, 17, 9, 5, 223, 0, 50, 6, 206, 236, 240, 233, 250, 225, 16, 18,
-			220, 0, 67, 45, 24, 11, 33, 47, 247, 224, 14, 236, 201, 224, 227, 229, 228, 206, 36, 79, 37, 53, 54, 42, 81, 47, 45, 43, 227, 221,
-			25, 14, 20, 247, 215, 24, 46, 38, 68, 67, 36, 14, 235, 238, 247, 198, 173, 199, 241, 10, 5, 15, 34, 31, 43, 71, 55, 31, 246, 245,
-			245, 211, 190, 217, 249, 9, 36, 36, 59, 79, 73, 98, 103, 89, 60, 31, 14, 249, 240, 247, 8, 249, 254, 28, 54, 58, 52, 34, 51, 38,
-			250, 3, 9, 246, 237, 236, 230, 226, 223, 1, 22, 245, 247, 12, 6, 31, 47, 56, 52, 42, 45, 48, 47, 66, 79, 41, 29, 53, 64, 54,
-			68, 57, 51, 49, 20, 7, 23, 40, 26, 4, 9, 247, 254, 47, 47, 7, 2, 9, 239, 207, 212, 229, 237, 219, 241, 3, 242, 15, 41, 25,
-			63, 87, 55, 54, 63, 59, 59, 25, 253, 11, 9, 45, 63, 34, 55, 57, 11, 80, 58, 249, 220, 191, 230, 253, 199, 230, 244, 188, 181, 211,
-			9, 249, 203, 223, 254, 252, 187, 165, 228, 0, 7, 23, 38, 26, 4, 245, 6, 28, 6, 216, 235, 13, 10, 6, 22, 44, 59, 47, 46, 79,
-			69, 11, 251, 14, 247, 195, 155, 163, 192, 189, 194, 234, 244, 252, 1, 5, 31, 12, 233, 233, 255, 8, 233, 246, 17, 16, 255, 16, 24, 57,
-			36, 0, 7, 8, 223, 212, 219, 252, 253, 232, 255, 36, 37, 26, 45, 60, 44, 38, 46, 58, 32, 239, 245, 27, 46, 47, 68, 80, 52, 32,
-			38, 26, 13, 245, 229, 243, 234, 228, 247, 4, 23, 41, 41, 51, 63, 33, 15, 14, 8, 255, 219, 217, 10, 25, 8, 254, 5, 21, 27, 35,
-			71, 56, 11, 255, 10, 38, 29, 248, 0, 25, 238, 240, 21, 29, 25, 255, 244, 50, 63, 16, 22, 59, 69, 45, 10, 58, 61, 8, 22, 38,
-			9, 235, 206, 242, 38, 18, 250, 11, 247, 250, 9, 0, 27, 3, 206, 233, 248, 228, 237, 250, 241, 29, 34, 53, 50, 43, 68, 70, 43, 46,
-			47, 13, 9, 23, 14, 19, 251, 255, 39, 58, 68, 45, 21, 23, 27, 21, 24, 24, 235, 212, 197, 189, 206, 209, 191, 209, 216, 244, 1, 249,
-			9, 27, 13, 19, 30, 24, 8, 242, 243, 248, 235, 232, 15, 54, 88, 88, 98, 117, 122, 112, 107, 87, 50, 7, 218, 240, 217, 174, 192, 207,
-			193, 239, 255, 235, 246, 242, 233, 240, 206, 178, 188, 191, 230, 244, 225, 18, 22, 15, 72, 70, 46, 56, 17, 0, 20, 252, 237, 224, 202, 1,
-			33, 15, 28, 26, 10, 39, 40, 7, 17, 241, 228, 25, 247, 229, 34, 6, 247, 27, 9, 24, 19, 229, 16, 30, 217, 203, 216, 168, 172, 184,
-			185, 190, 160, 163, 229, 235, 220, 255, 238, 0, 23, 237, 34, 59, 8, 255, 3, 246, 255, 243, 14, 56, 36, 21, 61, 72, 77, 77, 61, 46,
-			35, 8, 248, 1, 251, 206, 188, 201, 228, 249, 4, 7, 28, 13, 224, 218, 229, 199, 212, 232, 208, 208, 212, 220, 4, 35, 29, 50, 58, 58,
-			58, 41, 50, 48, 11, 16, 17, 31, 75, 53, 40, 50, 76, 87, 95, 82, 85, 65, 31, 18, 11, 35, 37, 8, 0, 15, 12, 1, 19, 23,
-			249, 227, 221, 208, 194, 189, 209, 227, 227, 245, 254, 20, 39, 41, 38, 63, 75, 45, 28, 42, 44, 31, 6, 14, 44, 37, 39, 68, 87, 83,
-			58, 47, 60, 63, 36, 252, 0, 250, 212, 196, 231, 235, 236, 9, 30, 31, 48, 24, 31, 41, 248, 219, 206, 182, 182, 159, 179, 1, 236, 237,
-			70, 40, 55, 113, 62, 60, 68, 16, 36, 32, 234, 32, 61, 31, 65, 69, 87, 112, 76, 52, 79, 48, 32, 26, 252, 21, 47, 242, 239, 246,
-			220, 218, 208, 201, 254, 237, 229, 246, 242, 245, 230, 245, 27, 224, 199, 7, 247, 207, 224, 235, 37, 26, 248, 38, 54, 24, 19, 2, 16, 4,
-			203, 224, 38, 12, 246, 18, 34, 32, 24, 22, 50, 29, 252, 1, 253, 215, 193, 186, 212, 233, 229, 238, 242, 1, 22, 18, 11, 21, 242, 226,
-			228, 215, 235, 241, 235, 6, 41, 43, 54, 44, 51, 74, 48, 43, 42, 242, 232, 240, 231, 255, 244, 237, 12, 4, 253, 15, 23, 34, 48, 13,
-			10, 239, 177, 208, 249, 228, 225, 223, 213, 237, 2, 3, 44, 54, 34, 33, 46, 56, 43, 11, 14, 41, 35, 33, 49, 39, 50, 65, 39, 53,
-			36, 249, 16, 24, 20, 2, 231, 238, 14, 13, 13, 24, 11, 20, 33, 21, 12, 252, 230, 224, 249, 6, 7, 13, 16, 12, 32, 68, 75, 52,
-			62, 39, 41, 55, 38, 19, 13, 17, 11, 12, 19, 3, 12, 245, 11, 251, 240, 253, 245, 246, 3, 246, 239, 255, 7, 17, 28, 246, 12, 252,
-			249, 15, 12, 22, 17, 241, 13, 44, 23, 52, 67, 44, 61, 64, 45, 54, 10, 243, 254, 243, 228, 238, 237, 242, 8, 254, 253, 13, 24, 32,
-			20, 6, 2, 249, 3, 5, 241, 238, 245, 243, 7, 23, 29, 30, 0, 232, 235, 227, 229, 6, 2, 5, 32, 20, 38, 61, 40, 56, 55, 28,
-			33, 12, 238, 219, 214, 225, 210, 219, 25, 54, 43, 12, 15, 29, 11, 252, 12, 18, 245, 233, 246, 9, 8, 17, 48, 80, 68, 48, 68, 68,
-			43, 44, 28, 29, 18, 248, 231, 249, 4, 3, 241, 250, 14, 8, 3, 4, 242, 242, 226, 216, 209, 216, 206, 218, 203, 222, 251, 233, 2, 36,
-			18, 40, 52, 39, 43, 27, 7, 27, 3, 3, 8, 236, 237, 253, 2, 12, 18, 24, 24, 21, 37, 55, 28, 1, 244, 239, 233, 212, 202, 204,
-			197, 187, 209, 227, 222, 236, 12, 255, 25, 18, 244, 229, 229, 239, 249, 233, 236, 7, 25, 35, 46, 43, 63, 45, 20, 45, 36, 14, 6, 250,
-			7, 16, 14, 5, 13, 35, 47, 54, 55, 43, 26, 15, 5, 8, 247, 218, 225, 241, 234, 232, 236, 247, 252, 5, 254, 19, 6, 249, 237, 254,
-			252, 237, 238, 252, 24, 37, 46, 64, 53, 58, 65, 63, 80, 45, 0, 255, 255, 240, 237, 0, 24, 30, 26, 51, 61, 40, 51, 75, 60, 40,
-			39, 22, 254, 237, 232, 252, 16, 14, 22, 46, 51, 29, 17, 6, 10, 5, 231, 222, 223, 222, 225, 233, 236, 239, 3, 254, 10, 33, 36, 33,
-			34, 19, 17, 11, 10, 26, 28, 27, 37, 31, 20, 41, 51, 33, 38, 36, 21, 13, 25, 23, 25, 15, 1, 16, 29, 8, 2, 21, 28, 12,
-			1, 2, 255, 248, 221, 200, 204, 225, 216, 211, 229, 1, 10, 5, 29, 44, 45, 30, 18, 28, 28, 9, 251, 250, 243, 223, 244, 26, 57, 52,
-			53, 72, 71, 52, 41, 49, 57, 40, 23, 18, 16, 11, 0, 3, 15, 19, 24, 34, 33, 17, 2, 253, 9, 6, 245, 7, 37, 39, 31, 14,
-			26, 59, 36, 22, 37, 30, 23, 15, 23, 37, 26, 249, 240, 244, 250, 243, 227, 229, 239, 232, 242, 18, 30, 248, 209, 244, 11, 255, 241, 242,
-			1, 10, 0, 7, 36, 52, 29, 42, 69, 48, 8, 253, 244, 242, 230, 225, 215, 203, 204, 226, 8, 18, 241, 230, 253, 5, 235, 250, 250, 238,
-			236, 216, 208, 244, 230, 232, 15, 34, 33, 21, 7, 15, 18, 4, 12, 9, 12, 20, 12, 7, 34, 8, 1, 12, 31, 30, 10, 249, 250, 243,
-			227, 228, 234, 251, 2, 234, 234, 252, 244, 249, 252, 252, 252, 221, 216, 254, 251, 236, 243, 241, 1, 20, 27, 38, 37, 31, 32, 22, 6, 14,
-			28, 5, 251, 11, 17, 13, 16, 17, 48, 55, 32, 30, 15, 237, 229, 227, 230, 222, 186, 198, 254, 247, 238, 23, 31, 37, 48, 28, 40, 42,
-			5, 7, 255, 248, 26, 12, 249, 27, 34, 22, 38, 26, 19, 27, 3, 0, 5, 236, 236, 243, 242, 3, 240, 231, 13, 27, 20, 24, 32, 39,
-			28, 251, 241, 15, 255, 238, 255, 2, 3, 252, 244, 253, 24, 19, 13, 38, 41, 24, 30, 34, 30, 14, 7, 15, 26, 6, 14, 12, 11, 18,
-			0, 250, 252, 8, 251, 245, 232, 227, 239, 219, 219, 2, 21, 5, 0, 27, 35, 40, 35, 30, 35, 24, 9, 0, 252, 248, 248, 2, 25, 28,
-			10, 48, 66, 54, 52, 51, 52, 54, 44, 21, 19, 20, 7, 250, 251, 11, 35, 32, 7, 5, 6, 12, 23, 250, 243, 252, 245, 232, 235, 239,
-			253, 0, 255, 4, 19, 27, 22, 16, 12, 5, 246, 2, 15, 248, 7, 12, 17, 28, 31, 34, 61, 49, 30, 37, 28, 16, 25, 15, 12, 9,
-			6, 10, 34, 35, 33, 37, 28, 20, 8, 233, 245, 254, 244, 226, 211, 226, 241, 242, 253, 12, 24, 33, 35, 39, 55, 32, 249, 231, 241, 250,
-			237, 249, 18, 32, 27, 46, 58, 53, 46, 46, 48, 52, 34, 10, 7, 0, 13, 17, 14, 32, 17, 5, 31, 23, 18, 16, 241, 240, 244, 220,
-			203, 211, 210, 216, 230, 240, 7, 9, 5, 35, 36, 8, 13, 7, 6, 16, 14, 9, 16, 255, 10, 30, 28, 43, 46, 17, 26, 23, 249, 3,
-			14, 1, 6, 16, 14, 21, 15, 17, 26, 21, 17, 27, 17, 8, 21, 9, 244, 251, 246, 4, 25, 22, 29, 45, 37, 30, 24, 18, 31, 33,
-			15, 7, 1, 243, 247, 247, 244, 16, 17, 9, 30, 26, 10, 16, 2, 247, 250, 242, 248, 251, 242, 251, 12, 12, 29, 45, 43, 40, 32, 12,
-			1, 239, 235, 235, 243, 243, 253, 15, 33, 35, 38, 43, 45, 39, 31, 22, 5, 247, 241, 234, 222, 228, 236, 3, 19, 12, 14, 34, 24, 23,
-			30, 32, 45, 20, 238, 238, 246, 247, 252, 248, 0, 8, 23, 21, 22, 18, 17, 23, 27, 16, 20, 11, 17, 4, 9, 31, 35, 27, 32, 25,
-			17, 26, 14, 7, 3, 0, 6, 14, 246, 240, 240, 240, 247, 254, 247, 252, 1, 249, 0, 0, 242, 242, 1, 254, 255, 8, 250, 244, 243, 243,
-			3, 24, 20, 14, 10, 10, 22, 26, 10, 22, 25, 24, 30, 25, 29, 34, 25, 13, 17, 8, 6, 254, 252, 7, 255, 243, 254, 253, 254, 9,
-			8, 12, 21, 7, 5, 12, 11, 249, 236, 240, 253, 0, 252, 0, 10, 5, 10, 10, 7, 252, 3, 7, 5, 7, 10, 0, 6, 4, 4, 23,
-			25, 13, 14, 14, 254, 1, 3, 8, 21, 17, 21, 31, 12, 8, 5, 1, 255, 238, 228, 238, 226, 228, 230, 241, 247, 244, 252, 24, 33, 22,
-			16, 15, 12, 13, 4, 252, 15, 14, 254, 1, 7, 8, 7, 13, 21, 38, 23, 19, 31, 25, 9, 2, 7, 9, 8, 251, 5, 25, 12, 251,
-			7, 17, 25, 19, 12, 14, 16, 9, 8, 9, 5, 1, 251, 3, 2, 8, 4, 4, 7, 17, 17, 18, 22, 27, 23, 7, 5, 5, 253, 244,
-			253, 11, 12, 5, 4, 12, 27, 37, 28, 29, 35, 34, 18, 12, 17, 19, 16, 12, 15, 24, 23, 24, 18, 25, 22, 9, 255, 10, 6, 11,
-			1, 6, 14, 0, 7, 31, 31, 39, 20, 13, 18, 11, 249, 250, 1, 9, 13, 13, 13, 19, 20, 15, 27, 30, 17, 4, 3, 6, 8, 255,
-			253, 8, 19, 20, 30, 52, 52, 20, 13, 17, 20, 3, 235, 239, 250, 253, 251, 248, 3, 15, 18, 11, 21, 13, 3, 252, 255, 253, 246, 234,
-			243, 251, 253, 11, 26, 38, 39, 29, 27, 37, 30, 8, 1, 13, 24, 10, 253, 0, 9, 4, 9, 30, 32, 20, 17, 22, 22, 6, 254, 12,
-			13, 0, 250, 1, 8, 11, 0, 2, 10, 8, 247, 251, 254, 7, 12, 255, 2, 12, 9, 12, 11, 2, 8, 2, 245, 2, 254, 250, 0, 3,
-			17, 16, 18, 25, 39, 36, 37, 31, 14, 13, 6, 251, 6, 11, 0, 5, 3, 0, 20, 22, 11, 14, 17, 13, 15, 1, 253, 0, 2, 0,
-			5, 10, 12, 16, 15, 17, 22, 20, 16, 8, 11, 12, 11, 1, 251, 253, 9, 13, 14, 26, 21, 15, 25, 38, 28, 24, 17, 11, 12, 5,
-			246, 5, 5, 254, 3, 4, 1, 2, 0, 0, 3, 250, 251, 7, 3, 1, 7, 254, 245, 249, 254, 7, 3, 7, 19, 17, 10, 20, 24, 24,
-			22, 26, 30, 33, 21, 21, 16, 4, 12, 15, 2, 4, 252, 1, 0, 0, 247, 252, 14, 17, 17, 18, 20, 12, 11, 4, 5, 0, 249, 244,
-			246, 252, 253, 253, 242, 238, 254, 2, 5, 12, 6, 0, 5, 4, 0, 4, 4, 5, 8, 13, 15, 12, 18, 19, 28, 19, 9, 14, 9, 5,
-			5, 10, 9, 8, 11, 16, 24, 30, 30, 19, 26, 26, 16, 16, 250, 235, 241, 242, 240, 249, 243, 245, 250, 0, 11, 23, 20, 17, 23, 13,
-			11, 17, 6, 255, 4, 12, 7, 14, 14, 18, 25, 25, 17, 12, 7, 5, 254, 6, 6, 0, 252, 253, 11, 11, 18, 17, 23, 23, 19, 11,
-			1, 246, 243, 239, 244, 245, 246, 252, 254, 2, 11, 8, 7, 6, 6, 10, 9, 1, 248, 245, 254, 10, 15, 10, 15, 20, 14, 15, 9, 3,
-			3, 255, 255, 1, 1, 0, 2, 10, 13, 21, 9, 3, 13, 6, 1, 6, 253, 255, 250, 254, 9, 24, 19, 15, 12, 10, 14, 14, 10, 8,
-			4, 2, 9, 6, 6, 8, 14, 23, 24, 20, 24, 25, 21, 23, 13, 10, 12, 7, 7, 3, 251, 251, 255, 2, 7, 12, 17, 11, 18, 15,
-			23, 28, 23, 16, 15, 17, 19, 19, 16, 18, 19, 19, 16, 20, 17, 15, 18, 18, 16, 10, 8, 10, 16, 29, 19, 18, 23, 14, 21, 16,
-			18, 11, 6, 2, 4, 8, 2, 1, 3, 4, 9, 17, 21, 27, 23, 17, 18, 15, 13, 15, 14, 13, 11, 9, 2, 4, 8, 14, 22, 21,
-			20, 22, 23, 27, 27, 24, 18, 23, 19, 24, 29, 20, 22, 23, 21, 27, 28, 21, 23, 17, 11, 6, 0, 0, 5, 3, 7, 15, 12, 12,
-			14, 18, 24, 25, 18, 13, 7, 12, 10, 4, 0, 0, 255, 8, 15, 14, 19, 17, 15, 14, 15, 14, 14, 3, 6, 4, 3, 3, 255, 253,
-			7, 19, 25, 27, 33, 36, 35, 35, 28, 21, 16, 13, 11, 9, 10, 11, 12, 17, 17, 19, 17, 19, 19, 16, 15, 13, 8, 8, 4, 2,
-			8, 12, 17, 12, 10, 10, 20, 20, 17, 12, 7, 14, 13, 7, 6, 8, 8, 11, 9, 15, 21, 20, 23, 25, 22, 25, 18, 19, 25, 23,
-			10, 9, 11, 9, 8, 8, 14, 13, 5, 2, 0, 5, 1, 250, 254, 0, 0, 0, 76, 0, 3, 0, 5, 0, 8, 1, 144, 1, 233, 3,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 6, 9, 10,
+			9, 4, 7, 1, 249, 249, 241, 233, 233, 234, 251, 8, 3, 8, 14, 34, 32, 37, 29, 26, 28, 27, 13, 12, 8, 253, 3, 20, 27, 20,
+			10, 22, 17, 16, 9, 3, 249, 244, 234, 237, 244, 242, 242, 249, 4, 25, 30, 28, 27, 25, 38, 32, 15, 6, 3, 0, 246, 247, 246, 255,
+			249, 5, 23, 31, 14, 7, 14, 9, 2, 1, 247, 241, 238, 227, 239, 248, 244, 246, 254, 8, 26, 28, 21, 19, 22, 25, 26, 5, 3, 14,
+			11, 7, 7, 10, 24, 23, 20, 31, 33, 23, 20, 19, 9, 3, 244, 247, 237, 235, 235, 237, 237, 237, 236, 246, 246, 242, 245, 247, 247, 243,
+			248, 248, 231, 236, 241, 244, 241, 243, 5, 23, 26, 28, 37, 41, 35, 29, 25, 23, 21, 12, 5, 10, 12, 16, 24, 21, 24, 29, 38, 32,
+			15, 6, 3, 1, 252, 246, 246, 248, 250, 2, 253, 8, 12, 7, 14, 18, 7, 3, 247, 247, 0, 0, 250, 247, 1, 3, 254, 5, 15, 19,
+			22, 16, 22, 27, 21, 19, 16, 18, 29, 28, 16, 21, 34, 39, 38, 31, 32, 37, 36, 23, 22, 17, 10, 251, 250, 11, 9, 3, 9, 10,
+			12, 7, 0, 5, 14, 5, 249, 241, 245, 248, 253, 253, 252, 7, 251, 254, 5, 9, 10, 8, 250, 9, 6, 8, 17, 26, 41, 43, 35, 33,
+			51, 54, 44, 34, 34, 31, 25, 21, 24, 42, 34, 15, 22, 29, 34, 31, 12, 1, 255, 227, 218, 220, 223, 227, 222, 223, 249, 12, 11, 15,
+			30, 36, 22, 0, 251, 11, 249, 232, 247, 245, 0, 12, 16, 49, 78, 78, 83, 91, 82, 70, 45, 30, 23, 244, 229, 243, 247, 245, 253, 255,
+			22, 28, 13, 18, 22, 254, 247, 228, 220, 229, 219, 209, 227, 247, 253, 10, 16, 24, 19, 18, 255, 241, 236, 240, 236, 236, 4, 31, 30, 45,
+			78, 76, 86, 85, 75, 72, 57, 16, 0, 239, 242, 247, 250, 2, 13, 18, 33, 42, 33, 32, 14, 1, 250, 230, 209, 202, 201, 204, 222, 237,
+			254, 0, 15, 36, 34, 36, 16, 245, 253, 250, 240, 242, 249, 7, 34, 37, 58, 89, 82, 68, 82, 68, 47, 40, 19, 3, 251, 247, 250, 254,
+			246, 254, 14, 27, 28, 15, 12, 13, 253, 226, 219, 223, 211, 198, 204, 222, 230, 232, 234, 253, 0, 243, 244, 253, 251, 238, 241, 4, 14, 13,
+			20, 36, 52, 51, 43, 33, 30, 34, 25, 20, 21, 21, 22, 21, 36, 60, 59, 45, 31, 20, 9, 254, 237, 239, 228, 205, 201, 211, 226, 226,
+			221, 246, 4, 248, 252, 243, 253, 238, 228, 214, 216, 235, 235, 241, 250, 14, 25, 35, 47, 63, 60, 47, 39, 42, 50, 34, 14, 4, 2, 248,
+			250, 2, 21, 32, 18, 10, 29, 29, 15, 3, 0, 255, 241, 227, 211, 226, 240, 232, 221, 229, 249, 8, 18, 18, 26, 23, 15, 16, 25, 17,
+			7, 255, 7, 2, 255, 9, 20, 7, 13, 20, 34, 39, 38, 24, 28, 37, 20, 8, 12, 11, 17, 17, 2, 4, 8, 17, 27, 20, 26, 29,
+			14, 7, 14, 12, 243, 240, 247, 255, 9, 12, 18, 32, 31, 22, 38, 26, 13, 255, 242, 248, 252, 231, 240, 252, 8, 18, 17, 21, 41, 45,
+			38, 42, 30, 23, 28, 9, 251, 17, 22, 1, 5, 26, 29, 26, 32, 34, 45, 15, 253, 17, 11, 251, 242, 237, 253, 236, 215, 6, 17, 25,
+			56, 57, 32, 53, 42, 14, 44, 54, 15, 14, 10, 8, 1, 243, 15, 33, 30, 17, 16, 14, 2, 240, 234, 242, 225, 195, 192, 206, 225, 2,
+			244, 239, 253, 239, 246, 247, 244, 2, 1, 250, 255, 26, 37, 37, 28, 49, 52, 24, 21, 16, 10, 252, 237, 250, 3, 3, 14, 10, 6, 20,
+			252, 236, 238, 222, 202, 182, 168, 168, 183, 186, 189, 213, 253, 8, 41, 43, 51, 75, 51, 45, 54, 23, 16, 15, 229, 240, 14, 5, 18, 46,
+			51, 65, 76, 61, 61, 49, 34, 27, 247, 227, 233, 215, 223, 238, 236, 2, 22, 21, 60, 63, 23, 20, 15, 237, 236, 237, 203, 207, 215, 229,
+			0, 6, 17, 51, 61, 55, 52, 35, 24, 11, 253, 4, 253, 234, 242, 0, 1, 24, 48, 66, 96, 101, 104, 94, 78, 68, 55, 41, 27, 9,
+			236, 235, 244, 253, 1, 253, 253, 10, 19, 23, 5, 1, 6, 249, 223, 215, 228, 223, 220, 240, 244, 244, 255, 0, 20, 50, 38, 44, 51, 37,
+			44, 56, 44, 49, 51, 38, 57, 57, 61, 87, 76, 83, 82, 59, 48, 30, 3, 4, 247, 231, 225, 214, 227, 236, 226, 245, 250, 243, 243, 247,
+			243, 253, 247, 251, 255, 250, 239, 249, 13, 25, 29, 19, 30, 40, 33, 46, 63, 53, 38, 45, 48, 34, 23, 34, 43, 39, 45, 25, 13, 26,
+			4, 250, 249, 0, 5, 227, 231, 245, 242, 233, 226, 219, 250, 16, 251, 252, 21, 14, 8, 0, 1, 10, 246, 242, 11, 255, 233, 245, 236, 242,
+			2, 18, 35, 45, 41, 29, 37, 48, 46, 33, 12, 19, 21, 252, 236, 244, 10, 15, 22, 18, 43, 62, 23, 18, 36, 10, 232, 242, 217, 224,
+			232, 211, 250, 23, 254, 8, 23, 37, 41, 254, 253, 7, 236, 213, 213, 223, 244, 235, 237, 7, 26, 20, 25, 43, 45, 33, 16, 6, 1, 236,
+			224, 238, 4, 13, 21, 17, 56, 70, 37, 59, 60, 29, 36, 0, 213, 217, 199, 176, 205, 225, 237, 14, 21, 28, 43, 40, 14, 4, 8, 0,
+			228, 209, 221, 227, 220, 220, 248, 20, 49, 66, 53, 68, 66, 29, 8, 8, 235, 215, 224, 239, 249, 253, 31, 71, 51, 51, 77, 61, 24, 16,
+			238, 206, 181, 166, 173, 170, 177, 245, 24, 26, 55, 81, 93, 88, 51, 36, 34, 251, 200, 196, 211, 199, 212, 5, 20, 34, 58, 60, 64, 85,
+			67, 51, 14, 241, 246, 195, 198, 251, 220, 240, 0, 254, 48, 31, 250, 66, 80, 27, 16, 17, 10, 237, 201, 235, 13, 2, 221, 227, 42, 54,
+			35, 56, 68, 86, 36, 253, 34, 34, 247, 234, 244, 249, 250, 235, 2, 51, 50, 58, 63, 52, 49, 45, 35, 39, 250, 210, 228, 243, 247, 251,
+			243, 239, 246, 250, 250, 0, 255, 254, 233, 192, 190, 206, 198, 189, 197, 219, 249, 4, 240, 0, 4, 250, 1, 253, 250, 14, 32, 51, 52, 27,
+			27, 54, 71, 56, 43, 48, 50, 50, 1, 247, 25, 12, 243, 238, 236, 234, 249, 225, 231, 248, 220, 227, 238, 215, 213, 227, 228, 249, 253, 228,
+			0, 241, 206, 224, 253, 18, 48, 41, 56, 84, 68, 71, 89, 89, 95, 98, 82, 89, 59, 21, 33, 18, 240, 251, 238, 244, 25, 255, 246, 9,
+			253, 254, 248, 233, 255, 234, 201, 216, 237, 229, 237, 246, 11, 36, 49, 62, 73, 63, 53, 73, 63, 36, 27, 15, 24, 9, 16, 52, 56, 33,
+			26, 22, 19, 0, 226, 235, 240, 225, 219, 224, 250, 13, 12, 31, 82, 59, 36, 44, 50, 41, 8, 225, 236, 239, 220, 255, 18, 27, 49, 42,
+			57, 91, 74, 40, 42, 29, 5, 254, 238, 240, 246, 227, 245, 13, 30, 31, 39, 47, 67, 33, 9, 12, 3, 4, 5, 244, 10, 18, 255, 29,
+			49, 32, 28, 10, 9, 254, 233, 236, 3, 246, 236, 243, 252, 2, 15, 25, 41, 64, 48, 19, 9, 7, 1, 249, 253, 10, 9, 251, 245, 21,
+			29, 20, 24, 28, 25, 21, 250, 246, 13, 29, 24, 28, 36, 32, 47, 12, 6, 47, 41, 8, 15, 12, 15, 23, 248, 7, 45, 6, 239, 27,
+			24, 3, 28, 21, 38, 43, 255, 16, 45, 1, 3, 44, 25, 18, 22, 238, 16, 23, 236, 241, 222, 186, 213, 187, 172, 227, 233, 236, 248, 2,
+			49, 44, 9, 47, 42, 0, 10, 233, 223, 240, 216, 233, 7, 248, 242, 18, 25, 37, 32, 29, 67, 66, 31, 15, 18, 24, 12, 240, 229, 247,
+			234, 215, 208, 220, 228, 208, 188, 234, 238, 201, 219, 235, 238, 246, 217, 242, 25, 244, 212, 229, 252, 14, 246, 250, 62, 34, 239, 255, 32, 51,
+			36, 255, 29, 51, 250, 239, 13, 18, 254, 255, 9, 28, 21, 237, 251, 20, 3, 235, 243, 251, 251, 233, 236, 21, 6, 249, 6, 20, 25, 4,
+			254, 9, 7, 252, 239, 251, 4, 243, 251, 23, 25, 17, 1, 21, 33, 36, 17, 240, 0, 11, 229, 253, 38, 24, 38, 16, 2, 53, 53, 42,
+			59, 23, 4, 12, 252, 6, 9, 235, 0, 3, 223, 234, 6, 20, 17, 243, 245, 13, 12, 21, 35, 13, 34, 23, 240, 14, 19, 2, 0, 251,
+			237, 237, 222, 238, 21, 8, 16, 29, 1, 25, 17, 228, 23, 47, 10, 22, 7, 16, 33, 253, 8, 75, 59, 33, 47, 28, 27, 25, 12, 33,
+			21, 245, 236, 244, 2, 252, 239, 0, 5, 229, 225, 14, 26, 15, 6, 3, 22, 29, 242, 252, 17, 227, 229, 243, 240, 0, 1, 17, 65, 79,
+			53, 80, 79, 81, 76, 64, 53, 28, 242, 249, 246, 253, 3, 26, 88, 97, 79, 94, 73, 41, 44, 42, 45, 35, 242, 233, 228, 218, 243, 0,
+			31, 49, 9, 51, 97, 40, 10, 0, 241, 12, 219, 199, 224, 239, 255, 252, 37, 68, 59, 63, 89, 99, 95, 50, 2, 12, 11, 254, 227, 229,
+			214, 185, 221, 0, 21, 30, 7, 238, 6, 28, 9, 244, 231, 236, 232, 209, 219, 249, 224, 193, 240, 5, 250, 229, 227, 16, 35, 242, 214, 5,
+			254, 212, 231, 15, 23, 13, 0, 7, 52, 50, 18, 18, 8, 235, 235, 0, 241, 211, 224, 9, 36, 32, 23, 50, 45, 26, 22, 26, 21, 241,
+			209, 214, 238, 240, 254, 0, 5, 30, 21, 31, 36, 251, 249, 234, 229, 229, 189, 183, 248, 5, 11, 59, 60, 68, 94, 95, 83, 96, 69, 36,
+			50, 28, 246, 244, 0, 255, 0, 19, 32, 39, 21, 11, 30, 22, 248, 249, 237, 231, 243, 216, 216, 247, 251, 9, 47, 33, 46, 74, 62, 72,
+			53, 254, 3, 19, 253, 243, 237, 238, 8, 10, 22, 60, 62, 42, 41, 71, 86, 67, 37, 21, 33, 17, 14, 15, 12, 3, 242, 36, 66, 43,
+			14, 29, 28, 31, 3, 224, 232, 245, 238, 251, 245, 9, 20, 15, 30, 70, 53, 29, 12, 0, 246, 228, 212, 220, 237, 1, 37, 53, 58, 57,
+			58, 67, 56, 14, 4, 4, 241, 245, 238, 215, 213, 215, 246, 21, 19, 252, 6, 10, 250, 3, 251, 242, 246, 235, 246, 255, 242, 243, 233, 0,
+			24, 6, 255, 12, 16, 13, 17, 10, 249, 242, 249, 239, 240, 242, 233, 235, 8, 29, 255, 240, 9, 7, 10, 21, 254, 239, 224, 193, 210, 245,
+			243, 240, 230, 247, 19, 11, 252, 25, 31, 33, 15, 239, 230, 250, 8, 0, 6, 252, 236, 0, 17, 14, 10, 9, 7, 237, 227, 5, 22, 1,
+			249, 235, 246, 11, 5, 235, 6, 8, 254, 3, 231, 239, 35, 11, 238, 3, 7, 253, 5, 4, 7, 20, 244, 7, 55, 38, 38, 44, 34, 42,
+			20, 244, 20, 44, 246, 228, 245, 252, 254, 254, 7, 37, 21, 4, 18, 13, 252, 8, 21, 250, 213, 212, 250, 15, 234, 226, 31, 57, 45, 35,
+			56, 83, 70, 25, 48, 56, 14, 2, 248, 236, 220, 215, 255, 24, 8, 38, 74, 58, 44, 48, 41, 41, 36, 10, 225, 225, 247, 241, 232, 253,
+			15, 20, 17, 26, 46, 30, 11, 0, 242, 246, 238, 228, 228, 239, 218, 242, 31, 48, 23, 11, 36, 38, 15, 249, 252, 0, 0, 237, 254, 11,
+			5, 3, 21, 69, 95, 55, 45, 85, 70, 13, 8, 11, 247, 229, 210, 7, 49, 237, 225, 15, 32, 32, 19, 10, 20, 254, 222, 249, 249, 224,
+			216, 222, 11, 18, 5, 43, 75, 62, 55, 47, 43, 40, 0, 252, 52, 30, 233, 2, 21, 37, 77, 73, 74, 92, 66, 50, 77, 50, 2, 249,
+			224, 223, 210, 196, 228, 243, 221, 242, 10, 12, 12, 255, 3, 27, 8, 231, 221, 222, 225, 219, 209, 226, 228, 205, 248, 29, 33, 70, 67, 57,
+			86, 84, 93, 100, 82, 72, 43, 7, 16, 31, 13, 15, 29, 19, 20, 26, 19, 55, 30, 247, 5, 251, 193, 171, 180, 233, 240, 226, 14, 28,
+			17, 30, 67, 92, 55, 247, 242, 240, 243, 234, 204, 234, 9, 14, 65, 104, 98, 84, 75, 106, 112, 53, 32, 29, 226, 206, 238, 0, 11, 230,
+			219, 35, 59, 0, 246, 227, 254, 0, 191, 187, 203, 159, 168, 231, 255, 235, 231, 213, 18, 33, 254, 247, 239, 243, 13, 6, 26, 62, 30, 9,
+			73, 99, 109, 50, 5, 40, 27, 2, 0, 0, 9, 9, 4, 23, 36, 15, 255, 11, 46, 6, 192, 209, 229, 228, 206, 178, 224, 5, 248, 12,
+			57, 37, 29, 239, 237, 56, 40, 231, 237, 241, 229, 229, 225, 26, 19, 242, 18, 62, 44, 239, 230, 31, 34, 211, 199, 248, 233, 227, 217, 245,
+			245, 210, 214, 242, 24, 28, 235, 246, 8, 253, 9, 17, 9, 5, 223, 0, 50, 6, 206, 236, 240, 233, 250, 225, 16, 18, 220, 0, 67, 45,
+			24, 11, 33, 47, 247, 224, 14, 236, 201, 224, 227, 229, 228, 206, 36, 79, 37, 53, 54, 42, 81, 47, 45, 43, 227, 221, 25, 14, 20, 247,
+			215, 24, 46, 38, 68, 67, 36, 14, 235, 238, 247, 198, 173, 199, 241, 10, 5, 15, 34, 31, 43, 71, 55, 31, 246, 245, 245, 211, 190, 217,
+			249, 9, 36, 36, 59, 79, 73, 98, 103, 89, 60, 31, 14, 249, 240, 247, 8, 249, 254, 28, 54, 58, 52, 34, 51, 38, 250, 3, 9, 246,
+			237, 236, 230, 226, 223, 1, 22, 245, 247, 12, 6, 31, 47, 56, 52, 42, 45, 48, 47, 66, 79, 41, 29, 53, 64, 54, 68, 57, 51, 49,
+			20, 7, 23, 40, 26, 4, 9, 247, 254, 47, 47, 7, 2, 9, 239, 207, 212, 229, 237, 219, 241, 3, 242, 15, 41, 25, 63, 87, 55, 54,
+			63, 59, 59, 25, 253, 11, 9, 45, 63, 34, 55, 57, 11, 80, 58, 249, 220, 191, 230, 253, 199, 230, 244, 188, 181, 211, 9, 249, 203, 223,
+			254, 252, 187, 165, 228, 0, 7, 23, 38, 26, 4, 245, 6, 28, 6, 216, 235, 13, 10, 6, 22, 44, 59, 47, 46, 79, 69, 11, 251, 14,
+			247, 195, 155, 163, 192, 189, 194, 234, 244, 252, 1, 5, 31, 12, 233, 233, 255, 8, 233, 246, 17, 16, 255, 16, 24, 57, 36, 0, 7, 8,
+			223, 212, 219, 252, 253, 232, 255, 36, 37, 26, 45, 60, 44, 38, 46, 58, 32, 239, 245, 27, 46, 47, 68, 80, 52, 32, 38, 26, 13, 245,
+			229, 243, 234, 228, 247, 4, 23, 41, 41, 51, 63, 33, 15, 14, 8, 255, 219, 217, 10, 25, 8, 254, 5, 21, 27, 35, 71, 56, 11, 255,
+			10, 38, 29, 248, 0, 25, 238, 240, 21, 29, 25, 255, 244, 50, 63, 16, 22, 59, 69, 45, 10, 58, 61, 8, 22, 38, 9, 235, 206, 242,
+			38, 18, 250, 11, 247, 250, 9, 0, 27, 3, 206, 233, 248, 228, 237, 250, 241, 29, 34, 53, 50, 43, 68, 70, 43, 46, 47, 13, 9, 23,
+			14, 19, 251, 255, 39, 58, 68, 45, 21, 23, 27, 21, 24, 24, 235, 212, 197, 189, 206, 209, 191, 209, 216, 244, 1, 249, 9, 27, 13, 19,
+			30, 24, 8, 242, 243, 248, 235, 232, 15, 54, 88, 88, 98, 117, 122, 112, 107, 87, 50, 7, 218, 240, 217, 174, 192, 207, 193, 239, 255, 235,
+			246, 242, 233, 240, 206, 178, 188, 191, 230, 244, 225, 18, 22, 15, 72, 70, 46, 56, 17, 0, 20, 252, 237, 224, 202, 1, 33, 15, 28, 26,
+			10, 39, 40, 7, 17, 241, 228, 25, 247, 229, 34, 6, 247, 27, 9, 24, 19, 229, 16, 30, 217, 203, 216, 168, 172, 184, 185, 190, 160, 163,
+			229, 235, 220, 255, 238, 0, 23, 237, 34, 59, 8, 255, 3, 246, 255, 243, 14, 56, 36, 21, 61, 72, 77, 77, 61, 46, 35, 8, 248, 1,
+			251, 206, 188, 201, 228, 249, 4, 7, 28, 13, 224, 218, 229, 199, 212, 232, 208, 208, 212, 220, 4, 35, 29, 50, 58, 58, 58, 41, 50, 48,
+			11, 16, 17, 31, 75, 53, 40, 50, 76, 87, 95, 82, 85, 65, 31, 18, 11, 35, 37, 8, 0, 15, 12, 1, 19, 23, 249, 227, 221, 208,
+			194, 189, 209, 227, 227, 245, 254, 20, 39, 41, 38, 63, 75, 45, 28, 42, 44, 31, 6, 14, 44, 37, 39, 68, 87, 83, 58, 47, 60, 63,
+			36, 252, 0, 250, 212, 196, 231, 235, 236, 9, 30, 31, 48, 24, 31, 41, 248, 219, 206, 182, 182, 159, 179, 1, 236, 237, 70, 40, 55, 113,
+			62, 60, 68, 16, 36, 32, 234, 32, 61, 31, 65, 69, 87, 112, 76, 52, 79, 48, 32, 26, 252, 21, 47, 242, 239, 246, 220, 218, 208, 201,
+			254, 237, 229, 246, 242, 245, 230, 245, 27, 224, 199, 7, 247, 207, 224, 235, 37, 26, 248, 38, 54, 24, 19, 2, 16, 4, 203, 224, 38, 12,
+			246, 18, 34, 32, 24, 22, 50, 29, 252, 1, 253, 215, 193, 186, 212, 233, 229, 238, 242, 1, 22, 18, 11, 21, 242, 226, 228, 215, 235, 241,
+			235, 6, 41, 43, 54, 44, 51, 74, 48, 43, 42, 242, 232, 240, 231, 255, 244, 237, 12, 4, 253, 15, 23, 34, 48, 13, 10, 239, 177, 208,
+			249, 228, 225, 223, 213, 237, 2, 3, 44, 54, 34, 33, 46, 56, 43, 11, 14, 41, 35, 33, 49, 39, 50, 65, 39, 53, 36, 249, 16, 24,
+			20, 2, 231, 238, 14, 13, 13, 24, 11, 20, 33, 21, 12, 252, 230, 224, 249, 6, 7, 13, 16, 12, 32, 68, 75, 52, 62, 39, 41, 55,
+			38, 19, 13, 17, 11, 12, 19, 3, 12, 245, 11, 251, 240, 253, 245, 246, 3, 246, 239, 255, 7, 17, 28, 246, 12, 252, 249, 15, 12, 22,
+			17, 241, 13, 44, 23, 52, 67, 44, 61, 64, 45, 54, 10, 243, 254, 243, 228, 238, 237, 242, 8, 254, 253, 13, 24, 32, 20, 6, 2, 249,
+			3, 5, 241, 238, 245, 243, 7, 23, 29, 30, 0, 232, 235, 227, 229, 6, 2, 5, 32, 20, 38, 61, 40, 56, 55, 28, 33, 12, 238, 219,
+			214, 225, 210, 219, 25, 54, 43, 12, 15, 29, 11, 252, 12, 18, 245, 233, 246, 9, 8, 17, 48, 80, 68, 48, 68, 68, 43, 44, 28, 29,
+			18, 248, 231, 249, 4, 3, 241, 250, 14, 8, 3, 4, 242, 242, 226, 216, 209, 216, 206, 218, 203, 222, 251, 233, 2, 36, 18, 40, 52, 39,
+			43, 27, 7, 27, 3, 3, 8, 236, 237, 253, 2, 12, 18, 24, 24, 21, 37, 55, 28, 1, 244, 239, 233, 212, 202, 204, 197, 187, 209, 227,
+			222, 236, 12, 255, 25, 18, 244, 229, 229, 239, 249, 233, 236, 7, 25, 35, 46, 43, 63, 45, 20, 45, 36, 14, 6, 250, 7, 16, 14, 5,
+			13, 35, 47, 54, 55, 43, 26, 15, 5, 8, 247, 218, 225, 241, 234, 232, 236, 247, 252, 5, 254, 19, 6, 249, 237, 254, 252, 237, 238, 252,
+			24, 37, 46, 64, 53, 58, 65, 63, 80, 45, 0, 255, 255, 240, 237, 0, 24, 30, 26, 51, 61, 40, 51, 75, 60, 40, 39, 22, 254, 237,
+			232, 252, 16, 14, 22, 46, 51, 29, 17, 6, 10, 5, 231, 222, 223, 222, 225, 233, 236, 239, 3, 254, 10, 33, 36, 33, 34, 19, 17, 11,
+			10, 26, 28, 27, 37, 31, 20, 41, 51, 33, 38, 36, 21, 13, 25, 23, 25, 15, 1, 16, 29, 8, 2, 21, 28, 12, 1, 2, 255, 248,
+			221, 200, 204, 225, 216, 211, 229, 1, 10, 5, 29, 44, 45, 30, 18, 28, 28, 9, 251, 250, 243, 223, 244, 26, 57, 52, 53, 72, 71, 52,
+			41, 49, 57, 40, 23, 18, 16, 11, 0, 3, 15, 19, 24, 34, 33, 17, 2, 253, 9, 6, 245, 7, 37, 39, 31, 14, 26, 59, 36, 22,
+			37, 30, 23, 15, 23, 37, 26, 249, 240, 244, 250, 243, 227, 229, 239, 232, 242, 18, 30, 248, 209, 244, 11, 255, 241, 242, 1, 10, 0, 7,
+			36, 52, 29, 42, 69, 48, 8, 253, 244, 242, 230, 225, 215, 203, 204, 226, 8, 18, 241, 230, 253, 5, 235, 250, 250, 238, 236, 216, 208, 244,
+			230, 232, 15, 34, 33, 21, 7, 15, 18, 4, 12, 9, 12, 20, 12, 7, 34, 8, 1, 12, 31, 30, 10, 249, 250, 243, 227, 228, 234, 251,
+			2, 234, 234, 252, 244, 249, 252, 252, 252, 221, 216, 254, 251, 236, 243, 241, 1, 20, 27, 38, 37, 31, 32, 22, 6, 14, 28, 5, 251, 11,
+			17, 13, 16, 17, 48, 55, 32, 30, 15, 237, 229, 227, 230, 222, 186, 198, 254, 247, 238, 23, 31, 37, 48, 28, 40, 42, 5, 7, 255, 248,
+			26, 12, 249, 27, 34, 22, 38, 26, 19, 27, 3, 0, 5, 236, 236, 243, 242, 3, 240, 231, 13, 27, 20, 24, 32, 39, 28, 251, 241, 15,
+			255, 238, 255, 2, 3, 252, 244, 253, 24, 19, 13, 38, 41, 24, 30, 34, 30, 14, 7, 15, 26, 6, 14, 12, 11, 18, 0, 250, 252, 8,
+			251, 245, 232, 227, 239, 219, 219, 2, 21, 5, 0, 27, 35, 40, 35, 30, 35, 24, 9, 0, 252, 248, 248, 2, 25, 28, 10, 48, 66, 54,
+			52, 51, 52, 54, 44, 21, 19, 20, 7, 250, 251, 11, 35, 32, 7, 5, 6, 12, 23, 250, 243, 252, 245, 232, 235, 239, 253, 0, 255, 4,
+			19, 27, 22, 16, 12, 5, 246, 2, 15, 248, 7, 12, 17, 28, 31, 34, 61, 49, 30, 37, 28, 16, 25, 15, 12, 9, 6, 10, 34, 35,
+			33, 37, 28, 20, 8, 233, 245, 254, 244, 226, 211, 226, 241, 242, 253, 12, 24, 33, 35, 39, 55, 32, 249, 231, 241, 250, 237, 249, 18, 32,
+			27, 46, 58, 53, 46, 46, 48, 52, 34, 10, 7, 0, 13, 17, 14, 32, 17, 5, 31, 23, 18, 16, 241, 240, 244, 220, 203, 211, 210, 216,
+			230, 240, 7, 9, 5, 35, 36, 8, 13, 7, 6, 16, 14, 9, 16, 255, 10, 30, 28, 43, 46, 17, 26, 23, 249, 3, 14, 1, 6, 16,
+			14, 21, 15, 17, 26, 21, 17, 27, 17, 8, 21, 9, 244, 251, 246, 4, 25, 22, 29, 45, 37, 30, 24, 18, 31, 33, 15, 7, 1, 243,
+			247, 247, 244, 16, 17, 9, 30, 26, 10, 16, 2, 247, 250, 242, 248, 251, 242, 251, 12, 12, 29, 45, 43, 40, 32, 12, 1, 239, 235, 235,
+			243, 243, 253, 15, 33, 35, 38, 43, 45, 39, 31, 22, 5, 247, 241, 234, 222, 228, 236, 3, 19, 12, 14, 34, 24, 23, 30, 32, 45, 20,
+			238, 238, 246, 247, 252, 248, 0, 8, 23, 21, 22, 18, 17, 23, 27, 16, 20, 11, 17, 4, 9, 31, 35, 27, 32, 25, 17, 26, 14, 7,
+			3, 0, 6, 14, 246, 240, 240, 240, 247, 254, 247, 252, 1, 249, 0, 0, 242, 242, 1, 254, 255, 8, 250, 244, 243, 243, 3, 24, 20, 14,
+			10, 10, 22, 26, 10, 22, 25, 24, 30, 25, 29, 34, 25, 13, 17, 8, 6, 254, 252, 7, 255, 243, 254, 253, 254, 9, 8, 12, 21, 7,
+			5, 12, 11, 249, 236, 240, 253, 0, 252, 0, 10, 5, 10, 10, 7, 252, 3, 7, 5, 7, 10, 0, 6, 4, 4, 23, 25, 13, 14, 14,
+			254, 1, 3, 8, 21, 17, 21, 31, 12, 8, 5, 1, 255, 238, 228, 238, 226, 228, 230, 241, 247, 244, 252, 24, 33, 22, 16, 15, 12, 13,
+			4, 252, 15, 14, 254, 1, 7, 8, 7, 13, 21, 38, 23, 19, 31, 25, 9, 2, 7, 9, 8, 251, 5, 25, 12, 251, 7, 17, 25, 19,
+			12, 14, 16, 9, 8, 9, 5, 1, 251, 3, 2, 8, 4, 4, 7, 17, 17, 18, 22, 27, 23, 7, 5, 5, 253, 244, 253, 11, 12, 5,
+			4, 12, 27, 37, 28, 29, 35, 34, 18, 12, 17, 19, 16, 12, 15, 24, 23, 24, 18, 25, 22, 9, 255, 10, 6, 11, 1, 6, 14, 0,
+			7, 31, 31, 39, 20, 13, 18, 11, 249, 250, 1, 9, 13, 13, 13, 19, 20, 15, 27, 30, 17, 4, 3, 6, 8, 255, 253, 8, 19, 20,
+			30, 52, 52, 20, 13, 17, 20, 3, 235, 239, 250, 253, 251, 248, 3, 15, 18, 11, 21, 13, 3, 252, 255, 253, 246, 234, 243, 251, 253, 11,
+			26, 38, 39, 29, 27, 37, 30, 8, 1, 13, 24, 10, 253, 0, 9, 4, 9, 30, 32, 20, 17, 22, 22, 6, 254, 12, 13, 0, 250, 1,
+			8, 11, 0, 2, 10, 8, 247, 251, 254, 7, 12, 255, 2, 12, 9, 12, 11, 2, 8, 2, 245, 2, 254, 250, 0, 3, 17, 16, 18, 25,
+			39, 36, 37, 31, 14, 13, 6, 251, 6, 11, 0, 5, 3, 0, 20, 22, 11, 14, 17, 13, 15, 1, 253, 0, 2, 0, 5, 10, 12, 16,
+			15, 17, 22, 20, 16, 8, 11, 12, 11, 1, 251, 253, 9, 13, 14, 26, 21, 15, 25, 38, 28, 24, 17, 11, 12, 5, 246, 5, 5, 254,
+			3, 4, 1, 2, 0, 0, 3, 250, 251, 7, 3, 1, 7, 254, 245, 249, 254, 7, 3, 7, 19, 17, 10, 20, 24, 24, 22, 26, 30, 33,
+			21, 21, 16, 4, 12, 15, 2, 4, 252, 1, 0, 0, 247, 252, 14, 17, 17, 18, 20, 12, 11, 4, 5, 0, 249, 244, 246, 252, 253, 253,
+			242, 238, 254, 2, 5, 12, 6, 0, 5, 4, 0, 4, 4, 5, 8, 13, 15, 12, 18, 19, 28, 19, 9, 14, 9, 5, 5, 10, 9, 8,
+			11, 16, 24, 30, 30, 19, 26, 26, 16, 16, 250, 235, 241, 242, 240, 249, 243, 245, 250, 0, 11, 23, 20, 17, 23, 13, 11, 17, 6, 255,
+			4, 12, 7, 14, 14, 18, 25, 25, 17, 12, 7, 5, 254, 6, 6, 0, 252, 253, 11, 11, 18, 17, 23, 23, 19, 11, 1, 246, 243, 239,
+			244, 245, 246, 252, 254, 2, 11, 8, 7, 6, 6, 10, 9, 1, 248, 245, 254, 10, 15, 10, 15, 20, 14, 15, 9, 3, 3, 255, 255, 1,
+			1, 0, 2, 10, 13, 21, 9, 3, 13, 6, 1, 6, 253, 255, 250, 254, 9, 24, 19, 15, 12, 10, 14, 14, 10, 8, 4, 2, 9, 6,
+			6, 8, 14, 23, 24, 20, 24, 25, 21, 23, 13, 10, 12, 7, 7, 3, 251, 251, 255, 2, 7, 12, 17, 11, 18, 15, 23, 28, 23, 16,
+			15, 17, 19, 19, 16, 18, 19, 19, 16, 20, 17, 15, 18, 18, 16, 10, 8, 10, 16, 29, 19, 18, 23, 14, 21, 16, 18, 11, 6, 2,
+			4, 8, 2, 1, 3, 4, 9, 17, 21, 27, 23, 17, 18, 15, 13, 15, 14, 13, 11, 9, 2, 4, 8, 14, 22, 21, 20, 22, 23, 27,
+			27, 24, 18, 23, 19, 24, 29, 20, 22, 23, 21, 27, 28, 21, 23, 17, 11, 6, 0, 0, 5, 3, 7, 15, 12, 12, 14, 18, 24, 25,
+			18, 13, 7, 12, 10, 4, 0, 0, 255, 8, 15, 14, 19, 17, 15, 14, 15, 14, 14, 3, 6, 4, 3, 3, 255, 253, 7, 19, 25, 27,
+			33, 36, 35, 35, 28, 21, 16, 13, 11, 9, 10, 11, 12, 17, 17, 19, 17, 19, 19, 16, 15, 13, 8, 8, 4, 2, 8, 12, 17, 12,
+			10, 10, 20, 20, 17, 12, 7, 14, 13, 7, 6, 8, 8, 11, 9, 15, 21, 20, 23, 25, 22, 25, 18, 19, 25, 23, 10, 9, 11, 9,
+			8, 8, 14, 13, 5, 2, 0, 5, 1, 250, 254, 0, 0, 0, 76, 0, 3, 0, 5, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12,
+			210, 15, 224, 27, 38, 29, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 8, 1, 144, 1, 233, 3,
 			184, 6, 108, 12, 210, 15, 224, 27, 38, 29, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70,
-			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 8, 1,
-			144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 38, 29, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1,
+			144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 0, 29, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90,
 			75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 0, 29, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120,
-			120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 60, 0, 3, 0, 5, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 30, 29, 45, 46, 47, 25,
+			60, 0, 3, 0, 5, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 30, 29, 45, 46, 47, 25, 13, 11, 7, 0,
+			120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 30, 29, 45, 46, 47, 25,
 			13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 30, 29,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15, 224, 27, 0, 30,
 			45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1, 144, 1, 233, 3, 184, 6, 108, 12, 210, 15,
-			224, 27, 0, 30, 45, 46, 47, 25, 13, 11, 7, 0, 120, 60, 120, 120, 120, 120, 75, 90, 75, 44, 45, 70, 130, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 60, 0, 2, 0, 37, 0, 184, 0, 24, 2,
-			112, 5, 72, 8, 0, 10, 188, 12, 136, 19, 60, 17, 24, 40, 12, 16, 20, 8, 8, 8, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44,
-			45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			184, 0, 24, 2, 112, 5, 248, 7, 236, 9, 188, 12, 131, 24, 0, 4, 18, 6, 9, 21, 15, 6, 3, 3, 157, 125, 137, 137, 150, 175,
-			157, 125, 137, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 90, 0, 3, 0, 5, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21, 40, 5, 8, 23, 10, 6, 6, 6,
-			4, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21, 50, 6, 9, 26,
-			12, 7, 7, 7, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 9, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21,
-			0, 6, 9, 25, 11, 6, 6, 6, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 8, 7, 36, 0, 248, 248, 251, 0, 6, 7, 6, 3,
-			0, 252, 246, 241, 237, 237, 237, 239, 252, 2, 9, 19, 29, 34, 34, 31, 22, 15, 7, 4, 9, 17, 19, 24, 30, 36, 43, 61, 69, 68,
-			66, 52, 37, 33, 25, 13, 4, 249, 232, 236, 250, 1, 15, 18, 3, 250, 242, 230, 223, 217, 202, 187, 185, 185, 193, 210, 218, 220, 224, 232,
-			239, 250, 3, 0, 249, 242, 236, 233, 237, 244, 250, 3, 9, 15, 25, 27, 27, 26, 21, 16, 10, 3, 254, 246, 242, 240, 241, 242, 243, 243,
-			245, 249, 255, 0, 1, 255, 250, 243, 238, 236, 235, 237, 239, 238, 241, 246, 252, 1, 3, 1, 254, 251, 249, 249, 247, 244, 240, 235, 232, 232,
-			232, 232, 235, 255, 25, 54, 78, 82, 78, 74, 67, 56, 44, 27, 15, 11, 16, 31, 40, 50, 52, 49, 44, 34, 27, 18, 2, 237, 218, 203,
-			202, 209, 218, 223, 227, 226, 225, 218, 216, 218, 218, 219, 220, 218, 215, 210, 209, 214, 222, 239, 0, 19, 30, 34, 30, 26, 17, 11, 10, 10,
-			10, 11, 12, 18, 18, 24, 27, 26, 23, 19, 10, 3, 250, 242, 239, 236, 234, 237, 237, 236, 238, 243, 246, 247, 249, 248, 246, 244, 239, 237,
-			238, 243, 254, 12, 21, 28, 29, 25, 18, 13, 9, 5, 3, 3, 6, 9, 14, 18, 17, 21, 18, 10, 5, 0, 251, 249, 248, 248, 250, 251,
-			252, 253, 255, 6, 9, 8, 4, 7, 19, 24, 23, 21, 8, 253, 246, 244, 252, 255, 10, 21, 22, 22, 11, 5, 5, 254, 247, 245, 239, 235,
-			232, 230, 235, 223, 232, 248, 0, 5, 13, 23, 44, 39, 32, 31, 14, 255, 1, 14, 31, 46, 51, 68, 76, 94, 114, 112, 107, 91, 63, 48,
-			42, 34, 23, 10, 248, 231, 244, 3, 16, 33, 21, 252, 234, 215, 201, 194, 186, 163, 149, 147, 150, 167, 185, 196, 200, 207, 218, 229, 249, 4,
-			0, 252, 242, 229, 229, 232, 237, 245, 4, 17, 34, 48, 52, 52, 47, 37, 26, 17, 6, 253, 246, 245, 245, 246, 247, 246, 245, 246, 250, 255,
-			1, 0, 249, 237, 231, 226, 228, 230, 233, 233, 236, 240, 248, 0, 4, 4, 2, 0, 254, 253, 255, 254, 253, 252, 251, 250, 251, 252, 254, 255,
-			254, 255, 254, 254, 254, 253, 252, 252, 252, 255, 0, 0, 1, 2, 3, 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 4, 4, 3, 1, 1,
-			255, 254, 252, 252, 251, 251, 250, 249, 250, 250, 249, 249, 249, 251, 249, 252, 252, 251, 250, 253, 255, 0, 2, 4, 6, 6, 6, 5, 4, 4,
-			2, 0, 0, 0, 1, 2, 4, 4, 3, 1, 0, 255, 253, 252, 251, 251, 252, 252, 253, 255, 0, 2, 3, 5, 5, 7, 7, 8, 8, 8,
-			9, 10, 10, 10, 10, 10, 9, 8, 7, 8, 10, 9, 9, 6, 8, 9, 10, 10, 8, 5, 4, 3, 3, 5, 2, 255, 251, 251, 0, 8,
-			17, 23, 24, 25, 28, 31, 32, 29, 18, 9, 1, 255, 2, 9, 14, 15, 13, 11, 12, 14, 14, 11, 4, 250, 238, 227, 217, 207, 199, 199,
-			202, 214, 232, 244, 2, 14, 23, 27, 30, 20, 7, 2, 253, 3, 26, 38, 50, 60, 64, 74, 92, 117, 124, 121, 109, 82, 65, 60, 50, 32,
-			13, 244, 220, 234, 254, 11, 34, 25, 252, 235, 215, 200, 194, 184, 158, 139, 134, 135, 154, 178, 191, 196, 202, 215, 227, 247, 6, 1, 253, 242,
-			228, 227, 232, 238, 249, 8, 21, 37, 52, 58, 58, 55, 45, 33, 22, 10, 255, 247, 244, 244, 245, 246, 246, 244, 243, 247, 254, 2, 0, 249,
-			238, 229, 226, 225, 230, 230, 233, 234, 239, 248, 0, 6, 7, 6, 2, 0, 254, 255, 0, 255, 251, 249, 248, 250, 251, 250, 249, 249, 252, 252,
-			253, 253, 252, 251, 251, 251, 251, 250, 251, 251, 251, 254, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 5, 3, 1, 0, 254, 250, 248, 249,
-			255, 27, 48, 36, 32, 9, 248, 246, 226, 196, 203, 231, 5, 26, 28, 18, 4, 252, 241, 226, 218, 217, 238, 6, 20, 25, 22, 17, 13, 2,
-			241, 229, 223, 228, 242, 0, 8, 16, 26, 25, 22, 7, 242, 234, 241, 252, 2, 10, 14, 22, 24, 16, 251, 242, 249, 253, 2, 3, 8, 9,
-			253, 232, 0, 26, 23, 21, 3, 1, 7, 3, 1, 20, 22, 21, 10, 4, 249, 241, 252, 0, 254, 3, 251, 242, 244, 247, 246, 232, 233, 252,
-			8, 4, 0, 255, 2, 6, 10, 5, 7, 12, 15, 10, 5, 0, 248, 245, 253, 0, 8, 19, 33, 31, 24, 11, 249, 240, 234, 243, 249, 249,
-			252, 253, 253, 246, 243, 244, 250, 255, 3, 13, 22, 23, 7, 247, 233, 233, 236, 0, 22, 39, 50, 52, 43, 25, 9, 12, 15, 22, 29, 30,
-			23, 18, 7, 253, 250, 248, 248, 3, 7, 4, 5, 2, 254, 246, 237, 226, 218, 217, 220, 228, 235, 238, 239, 240, 243, 246, 252, 1, 0, 0,
-			254, 252, 252, 255, 0, 0, 3, 7, 9, 14, 16, 19, 20, 19, 17, 12, 7, 3, 253, 249, 249, 250, 253, 255, 253, 0, 0, 0, 1, 0,
-			254, 253, 252, 250, 250, 251, 249, 247, 244, 246, 252, 0, 3, 4, 3, 1, 255, 253, 251, 254, 0, 254, 253, 253, 248, 248, 249, 251, 255, 3,
-			8, 8, 2, 251, 244, 240, 241, 247, 253, 5, 13, 16, 14, 6, 0, 247, 241, 241, 249, 2, 11, 10, 10, 9, 9, 4, 255, 250, 246, 247,
-			250, 252, 0, 6, 8, 3, 252, 246, 245, 248, 251, 0, 10, 12, 8, 0, 247, 246, 248, 250, 254, 2, 7, 8, 7, 5, 8, 13, 10, 7,
-			0, 251, 249, 249, 252, 0, 5, 9, 8, 7, 3, 2, 1, 252, 254, 255, 254, 251, 249, 245, 247, 250, 254, 0, 3, 1, 0, 253, 250, 247,
-			254, 3, 7, 12, 15, 13, 10, 7, 4, 6, 7, 8, 11, 16, 18, 16, 14, 12, 12, 12, 13, 16, 16, 15, 12, 9, 8, 6, 4, 0,
-			247, 240, 237, 242, 0, 14, 30, 38, 42, 48, 52, 56, 55, 43, 32, 21, 15, 18, 22, 25, 26, 24, 21, 22, 26, 27, 23, 12, 254, 238,
-			223, 208, 195, 187, 185, 189, 200, 215, 229, 242, 253, 2, 6, 5, 0, 241, 234, 231, 236, 4, 26, 42, 51, 55, 63, 77, 96, 105, 103, 95,
-			72, 55, 53, 48, 34, 22, 1, 233, 239, 255, 8, 24, 18, 247, 229, 212, 203, 200, 197, 177, 157, 149, 148, 161, 184, 199, 204, 210, 219, 230,
-			246, 2, 254, 251, 247, 242, 242, 246, 250, 253, 5, 12, 24, 41, 51, 57, 58, 49, 37, 24, 11, 0, 249, 246, 243, 247, 246, 244, 244, 244,
-			250, 0, 3, 252, 242, 229, 219, 215, 219, 221, 230, 240, 243, 248, 253, 251, 248, 242, 241, 250, 11, 24, 24, 14, 255, 242, 233, 231, 236, 252,
-			10, 12, 10, 7, 0, 250, 246, 242, 242, 244, 246, 247, 246, 243, 240, 236, 232, 230, 233, 247, 18, 47, 74, 80, 81, 78, 75, 63, 40, 14,
-			4, 5, 21, 38, 53, 55, 51, 48, 38, 31, 20, 10, 4, 0, 247, 237, 225, 222, 223, 226, 230, 233, 239, 239, 232, 227, 225, 223, 225, 229,
-			231, 228, 220, 216, 216, 223, 236, 249, 7, 14, 16, 9, 0, 246, 240, 238, 239, 245, 254, 3, 10, 15, 16, 12, 3, 252, 249, 249, 253, 255,
-			1, 2, 2, 1, 0, 255, 253, 251, 252, 1, 6, 10, 12, 14, 10, 3, 249, 244, 244, 239, 243, 252, 9, 20, 28, 26, 17, 1, 251, 246,
-			254, 2, 5, 11, 5, 8, 3, 11, 15, 15, 15, 11, 13, 20, 26, 33, 27, 18, 11, 1, 0, 250, 0, 4, 3, 2, 6, 18, 28, 23,
-			12, 254, 246, 237, 226, 216, 214, 217, 223, 234, 247, 3, 10, 15, 17, 15, 13, 10, 2, 0, 0, 7, 22, 33, 38, 41, 40, 44, 55, 71,
-			79, 79, 72, 56, 44, 40, 35, 25, 14, 0, 240, 244, 255, 7, 19, 15, 255, 242, 231, 221, 216, 210, 193, 180, 177, 179, 191, 206, 215, 219,
-			223, 230, 237, 248, 1, 254, 249, 244, 237, 238, 243, 249, 255, 7, 16, 23, 33, 36, 36, 33, 27, 20, 14, 8, 2, 254, 251, 251, 252, 252,
-			251, 248, 249, 250, 254, 0, 0, 252, 245, 239, 237, 237, 240, 242, 243, 245, 249, 254, 0, 4, 4, 1, 255, 254, 0, 0, 1, 0, 0, 255,
-			254, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 254, 0, 1, 1, 2, 0, 2, 3, 1, 2, 3, 3, 3, 2, 2, 4, 4, 5,
-			5, 5, 3, 3, 0, 0, 255, 255, 252, 254, 252, 252, 253, 253, 254, 253, 252, 252, 251, 250, 248, 249, 249, 250, 250, 250, 251, 252, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 60, 0, 2, 0, 37, 0, 184, 0, 24, 2, 112, 5, 72, 8,
+			0, 10, 188, 12, 136, 19, 60, 17, 24, 40, 12, 16, 20, 8, 8, 8, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 52,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 24, 2,
+			112, 5, 248, 7, 236, 9, 188, 12, 131, 24, 0, 4, 18, 6, 9, 21, 15, 6, 3, 3, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44,
+			45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 90, 0,
+			3, 0, 5, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21, 40, 5, 8, 23, 10, 6, 6, 6, 4, 4, 150, 125,
+			137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21, 50, 6, 9, 26, 12, 7, 7, 7,
+			5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 9, 0, 4, 0, 16, 1, 220, 5, 156, 9, 58, 14, 216, 19, 224, 21, 0, 6, 9, 25,
+			11, 6, 6, 6, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 8, 7, 36, 0, 248, 248, 251, 0, 6, 7, 6, 3, 0, 252, 246, 241,
+			237, 237, 237, 239, 252, 2, 9, 19, 29, 34, 34, 31, 22, 15, 7, 4, 9, 17, 19, 24, 30, 36, 43, 61, 69, 68, 66, 52, 37, 33,
+			25, 13, 4, 249, 232, 236, 250, 1, 15, 18, 3, 250, 242, 230, 223, 217, 202, 187, 185, 185, 193, 210, 218, 220, 224, 232, 239, 250, 3, 0,
+			249, 242, 236, 233, 237, 244, 250, 3, 9, 15, 25, 27, 27, 26, 21, 16, 10, 3, 254, 246, 242, 240, 241, 242, 243, 243, 245, 249, 255, 0,
+			1, 255, 250, 243, 238, 236, 235, 237, 239, 238, 241, 246, 252, 1, 3, 1, 254, 251, 249, 249, 247, 244, 240, 235, 232, 232, 232, 232, 235, 255,
+			25, 54, 78, 82, 78, 74, 67, 56, 44, 27, 15, 11, 16, 31, 40, 50, 52, 49, 44, 34, 27, 18, 2, 237, 218, 203, 202, 209, 218, 223,
+			227, 226, 225, 218, 216, 218, 218, 219, 220, 218, 215, 210, 209, 214, 222, 239, 0, 19, 30, 34, 30, 26, 17, 11, 10, 10, 10, 11, 12, 18,
+			18, 24, 27, 26, 23, 19, 10, 3, 250, 242, 239, 236, 234, 237, 237, 236, 238, 243, 246, 247, 249, 248, 246, 244, 239, 237, 238, 243, 254, 12,
+			21, 28, 29, 25, 18, 13, 9, 5, 3, 3, 6, 9, 14, 18, 17, 21, 18, 10, 5, 0, 251, 249, 248, 248, 250, 251, 252, 253, 255, 6,
+			9, 8, 4, 7, 19, 24, 23, 21, 8, 253, 246, 244, 252, 255, 10, 21, 22, 22, 11, 5, 5, 254, 247, 245, 239, 235, 232, 230, 235, 223,
+			232, 248, 0, 5, 13, 23, 44, 39, 32, 31, 14, 255, 1, 14, 31, 46, 51, 68, 76, 94, 114, 112, 107, 91, 63, 48, 42, 34, 23, 10,
+			248, 231, 244, 3, 16, 33, 21, 252, 234, 215, 201, 194, 186, 163, 149, 147, 150, 167, 185, 196, 200, 207, 218, 229, 249, 4, 0, 252, 242, 229,
+			229, 232, 237, 245, 4, 17, 34, 48, 52, 52, 47, 37, 26, 17, 6, 253, 246, 245, 245, 246, 247, 246, 245, 246, 250, 255, 1, 0, 249, 237,
+			231, 226, 228, 230, 233, 233, 236, 240, 248, 0, 4, 4, 2, 0, 254, 253, 255, 254, 253, 252, 251, 250, 251, 252, 254, 255, 254, 255, 254, 254,
+			254, 253, 252, 252, 252, 255, 0, 0, 1, 2, 3, 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 4, 4, 3, 1, 1, 255, 254, 252, 252,
+			251, 251, 250, 249, 250, 250, 249, 249, 249, 251, 249, 252, 252, 251, 250, 253, 255, 0, 2, 4, 6, 6, 6, 5, 4, 4, 2, 0, 0, 0,
+			1, 2, 4, 4, 3, 1, 0, 255, 253, 252, 251, 251, 252, 252, 253, 255, 0, 2, 3, 5, 5, 7, 7, 8, 8, 8, 9, 10, 10, 10,
+			10, 10, 9, 8, 7, 8, 10, 9, 9, 6, 8, 9, 10, 10, 8, 5, 4, 3, 3, 5, 2, 255, 251, 251, 0, 8, 17, 23, 24, 25,
+			28, 31, 32, 29, 18, 9, 1, 255, 2, 9, 14, 15, 13, 11, 12, 14, 14, 11, 4, 250, 238, 227, 217, 207, 199, 199, 202, 214, 232, 244,
+			2, 14, 23, 27, 30, 20, 7, 2, 253, 3, 26, 38, 50, 60, 64, 74, 92, 117, 124, 121, 109, 82, 65, 60, 50, 32, 13, 244, 220, 234,
+			254, 11, 34, 25, 252, 235, 215, 200, 194, 184, 158, 139, 134, 135, 154, 178, 191, 196, 202, 215, 227, 247, 6, 1, 253, 242, 228, 227, 232, 238,
+			249, 8, 21, 37, 52, 58, 58, 55, 45, 33, 22, 10, 255, 247, 244, 244, 245, 246, 246, 244, 243, 247, 254, 2, 0, 249, 238, 229, 226, 225,
+			230, 230, 233, 234, 239, 248, 0, 6, 7, 6, 2, 0, 254, 255, 0, 255, 251, 249, 248, 250, 251, 250, 249, 249, 252, 252, 253, 253, 252, 251,
+			251, 251, 251, 250, 251, 251, 251, 254, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 5, 3, 1, 0, 254, 250, 248, 249, 255, 27, 48, 36,
+			32, 9, 248, 246, 226, 196, 203, 231, 5, 26, 28, 18, 4, 252, 241, 226, 218, 217, 238, 6, 20, 25, 22, 17, 13, 2, 241, 229, 223, 228,
+			242, 0, 8, 16, 26, 25, 22, 7, 242, 234, 241, 252, 2, 10, 14, 22, 24, 16, 251, 242, 249, 253, 2, 3, 8, 9, 253, 232, 0, 26,
+			23, 21, 3, 1, 7, 3, 1, 20, 22, 21, 10, 4, 249, 241, 252, 0, 254, 3, 251, 242, 244, 247, 246, 232, 233, 252, 8, 4, 0, 255,
+			2, 6, 10, 5, 7, 12, 15, 10, 5, 0, 248, 245, 253, 0, 8, 19, 33, 31, 24, 11, 249, 240, 234, 243, 249, 249, 252, 253, 253, 246,
+			243, 244, 250, 255, 3, 13, 22, 23, 7, 247, 233, 233, 236, 0, 22, 39, 50, 52, 43, 25, 9, 12, 15, 22, 29, 30, 23, 18, 7, 253,
+			250, 248, 248, 3, 7, 4, 5, 2, 254, 246, 237, 226, 218, 217, 220, 228, 235, 238, 239, 240, 243, 246, 252, 1, 0, 0, 254, 252, 252, 255,
+			0, 0, 3, 7, 9, 14, 16, 19, 20, 19, 17, 12, 7, 3, 253, 249, 249, 250, 253, 255, 253, 0, 0, 0, 1, 0, 254, 253, 252, 250,
+			250, 251, 249, 247, 244, 246, 252, 0, 3, 4, 3, 1, 255, 253, 251, 254, 0, 254, 253, 253, 248, 248, 249, 251, 255, 3, 8, 8, 2, 251,
+			244, 240, 241, 247, 253, 5, 13, 16, 14, 6, 0, 247, 241, 241, 249, 2, 11, 10, 10, 9, 9, 4, 255, 250, 246, 247, 250, 252, 0, 6,
+			8, 3, 252, 246, 245, 248, 251, 0, 10, 12, 8, 0, 247, 246, 248, 250, 254, 2, 7, 8, 7, 5, 8, 13, 10, 7, 0, 251, 249, 249,
+			252, 0, 5, 9, 8, 7, 3, 2, 1, 252, 254, 255, 254, 251, 249, 245, 247, 250, 254, 0, 3, 1, 0, 253, 250, 247, 254, 3, 7, 12,
+			15, 13, 10, 7, 4, 6, 7, 8, 11, 16, 18, 16, 14, 12, 12, 12, 13, 16, 16, 15, 12, 9, 8, 6, 4, 0, 247, 240, 237, 242,
+			0, 14, 30, 38, 42, 48, 52, 56, 55, 43, 32, 21, 15, 18, 22, 25, 26, 24, 21, 22, 26, 27, 23, 12, 254, 238, 223, 208, 195, 187,
+			185, 189, 200, 215, 229, 242, 253, 2, 6, 5, 0, 241, 234, 231, 236, 4, 26, 42, 51, 55, 63, 77, 96, 105, 103, 95, 72, 55, 53, 48,
+			34, 22, 1, 233, 239, 255, 8, 24, 18, 247, 229, 212, 203, 200, 197, 177, 157, 149, 148, 161, 184, 199, 204, 210, 219, 230, 246, 2, 254, 251,
+			247, 242, 242, 246, 250, 253, 5, 12, 24, 41, 51, 57, 58, 49, 37, 24, 11, 0, 249, 246, 243, 247, 246, 244, 244, 244, 250, 0, 3, 252,
+			242, 229, 219, 215, 219, 221, 230, 240, 243, 248, 253, 251, 248, 242, 241, 250, 11, 24, 24, 14, 255, 242, 233, 231, 236, 252, 10, 12, 10, 7,
+			0, 250, 246, 242, 242, 244, 246, 247, 246, 243, 240, 236, 232, 230, 233, 247, 18, 47, 74, 80, 81, 78, 75, 63, 40, 14, 4, 5, 21, 38,
+			53, 55, 51, 48, 38, 31, 20, 10, 4, 0, 247, 237, 225, 222, 223, 226, 230, 233, 239, 239, 232, 227, 225, 223, 225, 229, 231, 228, 220, 216,
+			216, 223, 236, 249, 7, 14, 16, 9, 0, 246, 240, 238, 239, 245, 254, 3, 10, 15, 16, 12, 3, 252, 249, 249, 253, 255, 1, 2, 2, 1,
+			0, 255, 253, 251, 252, 1, 6, 10, 12, 14, 10, 3, 249, 244, 244, 239, 243, 252, 9, 20, 28, 26, 17, 1, 251, 246, 254, 2, 5, 11,
+			5, 8, 3, 11, 15, 15, 15, 11, 13, 20, 26, 33, 27, 18, 11, 1, 0, 250, 0, 4, 3, 2, 6, 18, 28, 23, 12, 254, 246, 237,
+			226, 216, 214, 217, 223, 234, 247, 3, 10, 15, 17, 15, 13, 10, 2, 0, 0, 7, 22, 33, 38, 41, 40, 44, 55, 71, 79, 79, 72, 56,
+			44, 40, 35, 25, 14, 0, 240, 244, 255, 7, 19, 15, 255, 242, 231, 221, 216, 210, 193, 180, 177, 179, 191, 206, 215, 219, 223, 230, 237, 248,
+			1, 254, 249, 244, 237, 238, 243, 249, 255, 7, 16, 23, 33, 36, 36, 33, 27, 20, 14, 8, 2, 254, 251, 251, 252, 252, 251, 248, 249, 250,
+			254, 0, 0, 252, 245, 239, 237, 237, 240, 242, 243, 245, 249, 254, 0, 4, 4, 1, 255, 254, 0, 0, 1, 0, 0, 255, 254, 255, 0, 0,
+			0, 0, 255, 255, 255, 0, 0, 0, 254, 0, 1, 1, 2, 0, 2, 3, 1, 2, 3, 3, 3, 2, 2, 4, 4, 5, 5, 5, 3, 3,
+			0, 0, 255, 255, 252, 254, 252, 252, 253, 253, 254, 253, 252, 252, 251, 250, 248, 249, 249, 250, 250, 250, 251, 252, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -534,1227 +521,1151 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 4, 0, 5, 0, 116, 0,
-			13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 30, 8, 14, 26, 25, 12, 12, 12, 7, 4, 167, 150, 135, 120, 120, 120, 197, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 4, 0, 5, 0, 116, 0, 13, 2, 161, 5,
+			152, 8, 128, 12, 212, 13, 96, 27, 30, 8, 14, 26, 25, 12, 12, 12, 7, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 116, 0,
+			13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 35, 15, 19, 35, 33, 16, 16, 16, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120,
 			120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 35, 15, 19, 35, 33, 16, 16, 16, 9, 5, 167, 150, 135, 120,
+			5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 30, 15, 19, 35, 33, 16, 16, 16, 9, 5, 167, 150, 135, 120,
 			120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 30, 15, 19, 35, 33, 16, 16, 16, 9, 5,
+			0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 0, 10, 15, 29, 26, 13, 13, 13, 8, 4,
 			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 0, 10, 15, 29, 26, 13,
-			13, 13, 8, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 101, 10, 56, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
-			0, 1, 2, 2, 2, 3, 2, 1, 255, 253, 250, 247, 246, 246, 247, 248, 250, 251, 252, 252, 252, 253, 253, 253, 253, 252, 250, 249, 250, 251,
-			253, 0, 5, 12, 19, 22, 20, 15, 9, 4, 255, 250, 250, 247, 245, 245, 248, 251, 0, 254, 253, 252, 249, 244, 240, 236, 234, 231, 233, 238,
-			245, 253, 0, 4, 7, 13, 16, 16, 17, 20, 21, 21, 18, 22, 21, 19, 20, 27, 31, 27, 25, 25, 21, 13, 10, 1, 252, 246, 244, 245,
-			247, 245, 249, 250, 251, 251, 251, 250, 249, 246, 245, 246, 246, 245, 247, 250, 252, 255, 1, 4, 6, 9, 8, 6, 4, 3, 3, 5, 5, 5,
-			7, 4, 3, 3, 3, 3, 3, 0, 252, 247, 244, 247, 247, 248, 252, 255, 255, 250, 246, 244, 240, 239, 242, 242, 245, 247, 247, 249, 247, 246,
-			244, 245, 245, 247, 249, 252, 255, 1, 0, 2, 3, 5, 5, 3, 0, 252, 254, 254, 251, 250, 250, 250, 253, 254, 253, 251, 249, 248, 246, 243,
-			239, 234, 229, 227, 226, 224, 223, 227, 0, 41, 84, 119, 125, 120, 115, 104, 88, 70, 45, 26, 20, 26, 46, 59, 73, 76, 71, 64, 49, 37,
-			23, 255, 222, 195, 174, 173, 184, 199, 207, 214, 214, 214, 206, 203, 206, 206, 206, 207, 205, 201, 194, 193, 200, 210, 235, 4, 33, 48, 52, 44,
-			35, 21, 11, 9, 9, 9, 10, 11, 19, 20, 29, 33, 32, 27, 20, 8, 254, 241, 231, 228, 224, 223, 228, 229, 228, 232, 240, 245, 245, 247,
-			245, 240, 237, 230, 227, 228, 234, 249, 13, 26, 35, 36, 30, 20, 13, 7, 2, 255, 0, 4, 9, 17, 21, 19, 22, 18, 8, 3, 253, 245,
-			241, 238, 240, 248, 253, 0, 253, 247, 248, 244, 239, 231, 234, 248, 253, 255, 5, 254, 248, 242, 236, 240, 238, 253, 14, 18, 18, 1, 247, 250,
-			247, 250, 5, 9, 16, 24, 30, 38, 18, 16, 19, 15, 5, 2, 9, 32, 21, 23, 37, 20, 5, 0, 247, 0, 6, 1, 21, 21, 22, 23,
-			13, 8, 254, 247, 244, 244, 248, 253, 0, 3, 5, 6, 6, 6, 5, 4, 1, 254, 250, 247, 245, 247, 248, 250, 251, 252, 252, 249, 250, 250,
-			251, 252, 252, 253, 254, 254, 255, 255, 252, 252, 249, 249, 246, 250, 251, 0, 0, 0, 0, 0, 254, 251, 253, 251, 251, 252, 255, 0, 0, 0,
-			0, 1, 1, 1, 1, 255, 255, 255, 252, 255, 253, 0, 0, 1, 255, 0, 254, 254, 254, 254, 254, 255, 2, 2, 0, 1, 255, 255, 1, 1,
-			1, 1, 0, 1, 3, 1, 3, 3, 3, 3, 3, 2, 2, 2, 6, 6, 6, 6, 6, 5, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
-			2, 2, 2, 0, 1, 255, 255, 255, 1, 0, 1, 255, 254, 254, 254, 254, 253, 253, 0, 253, 0, 0, 255, 252, 255, 255, 254, 254, 255, 1,
-			1, 1, 254, 253, 252, 249, 248, 248, 248, 249, 250, 252, 253, 253, 252, 252, 251, 250, 250, 250, 251, 253, 255, 0, 2, 4, 5, 6, 8, 8,
-			10, 9, 9, 8, 7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 5, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 1, 0, 1, 1,
-			1, 1, 1, 2, 2, 2, 2, 255, 255, 255, 255, 255, 255, 252, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 254, 254, 254, 1, 2, 2, 2, 1, 255, 255, 2, 2, 2, 0, 0, 0, 0, 0,
-			0, 0, 0, 1, 1, 0, 254, 254, 254, 254, 255, 255, 1, 0, 2, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 2, 2, 0, 255, 254, 254, 255, 1, 2, 1, 1, 1, 1, 1,
-			1, 1, 0, 0, 0, 0, 0, 3, 1, 3, 0, 3, 0, 0, 0, 0, 0, 0, 4, 4, 4, 1, 1, 1, 1, 254, 254, 254, 255, 254,
-			251, 250, 251, 255, 0, 2, 2, 2, 2, 2, 2, 1, 254, 254, 253, 253, 255, 0, 2, 3, 4, 4, 3, 2, 1, 1, 0, 0, 254, 252,
-			252, 250, 247, 247, 251, 5, 49, 81, 63, 56, 19, 247, 243, 214, 173, 187, 230, 19, 49, 50, 36, 15, 1, 238, 212, 197, 195, 225, 6, 27,
-			34, 29, 21, 15, 0, 231, 215, 206, 212, 232, 253, 8, 20, 35, 34, 30, 9, 234, 224, 235, 251, 5, 17, 23, 34, 37, 24, 248, 234, 244,
-			250, 2, 3, 11, 11, 248, 218, 252, 35, 31, 28, 2, 255, 8, 3, 255, 27, 30, 29, 13, 4, 241, 229, 245, 254, 251, 4, 247, 232, 235,
-			241, 242, 223, 224, 249, 9, 254, 245, 241, 247, 251, 0, 248, 253, 9, 18, 15, 8, 253, 239, 232, 244, 250, 6, 22, 41, 39, 30, 14, 247,
-			240, 236, 254, 11, 15, 20, 19, 13, 252, 241, 236, 239, 243, 247, 5, 24, 31, 10, 244, 220, 209, 208, 232, 5, 28, 40, 34, 10, 236, 215,
-			224, 241, 2, 15, 21, 20, 20, 16, 10, 0, 244, 237, 244, 0, 9, 18, 22, 21, 13, 4, 255, 252, 253, 1, 4, 4, 2, 1, 0, 255,
-			254, 253, 254, 255, 0, 2, 5, 7, 8, 8, 4, 0, 0, 253, 252, 253, 1, 5, 9, 10, 7, 6, 5, 255, 251, 251, 252, 0, 3, 1,
-			5, 5, 1, 1, 255, 255, 2, 6, 5, 5, 5, 1, 254, 247, 248, 252, 0, 1, 2, 2, 2, 255, 252, 249, 252, 0, 254, 254, 253, 246,
-			245, 245, 249, 255, 6, 14, 14, 6, 250, 240, 235, 236, 244, 253, 9, 21, 25, 21, 9, 255, 242, 234, 234, 244, 3, 15, 13, 13, 12, 11,
-			4, 252, 244, 239, 242, 247, 252, 4, 12, 15, 7, 251, 242, 240, 243, 248, 1, 16, 19, 14, 2, 246, 244, 246, 248, 253, 4, 11, 10, 6,
-			0, 1, 5, 2, 255, 246, 241, 240, 241, 246, 254, 5, 9, 5, 0, 249, 247, 246, 240, 246, 250, 251, 250, 248, 244, 247, 251, 1, 5, 8,
-			3, 254, 248, 243, 239, 249, 3, 9, 16, 19, 14, 9, 3, 253, 255, 1, 3, 10, 18, 22, 19, 17, 15, 15, 14, 13, 14, 14, 14, 13,
-			11, 9, 5, 0, 250, 243, 239, 237, 240, 250, 3, 15, 22, 26, 33, 34, 37, 37, 30, 29, 27, 25, 26, 24, 20, 18, 17, 16, 17, 21,
-			21, 17, 9, 1, 249, 241, 233, 228, 228, 228, 231, 234, 234, 236, 237, 235, 233, 233, 226, 225, 222, 221, 224, 229, 237, 248, 0, 2, 2, 4,
-			3, 255, 254, 253, 253, 252, 253, 0, 4, 5, 9, 9, 6, 6, 3, 0, 252, 249, 245, 245, 242, 246, 250, 255, 255, 254, 249, 247, 244, 247,
-			253, 253, 255, 255, 0, 255, 252, 247, 250, 0, 10, 13, 12, 10, 3, 254, 248, 247, 253, 4, 12, 19, 17, 12, 6, 1, 253, 255, 255, 252,
-			0, 253, 252, 255, 255, 2, 5, 3, 248, 242, 236, 234, 233, 239, 239, 249, 6, 9, 9, 5, 248, 235, 225, 228, 246, 20, 40, 37, 22, 0,
-			240, 229, 226, 232, 254, 17, 20, 18, 13, 4, 251, 245, 241, 242, 245, 248, 249, 246, 241, 235, 228, 221, 218, 222, 244, 28, 71, 109, 116, 116,
-			110, 105, 87, 53, 16, 1, 4, 29, 56, 80, 86, 83, 79, 65, 53, 35, 18, 8, 0, 243, 229, 212, 209, 212, 219, 226, 232, 239, 236, 224,
-			214, 210, 205, 207, 209, 209, 204, 192, 187, 189, 201, 221, 242, 8, 19, 21, 10, 249, 233, 222, 220, 221, 232, 247, 3, 15, 24, 27, 22, 9,
-			254, 248, 249, 253, 255, 2, 2, 2, 0, 253, 252, 248, 245, 245, 253, 4, 9, 11, 13, 8, 255, 240, 233, 233, 227, 233, 246, 11, 25, 36,
-			31, 18, 254, 246, 239, 251, 0, 5, 17, 12, 19, 11, 16, 12, 3, 254, 246, 246, 254, 5, 16, 14, 10, 11, 2, 253, 240, 242, 247, 246,
-			247, 253, 14, 28, 22, 12, 0, 0, 254, 248, 244, 249, 0, 7, 13, 17, 22, 19, 14, 9, 0, 249, 251, 252, 0, 5, 12, 13, 13, 9,
-			5, 0, 254, 254, 254, 255, 1, 2, 2, 2, 2, 2, 2, 3, 6, 4, 3, 0, 0, 0, 1, 2, 2, 2, 0, 255, 254, 252, 251, 251,
-			252, 253, 254, 255, 255, 0, 0, 255, 253, 251, 249, 248, 248, 249, 251, 252, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 1, 2,
-			2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 1, 0, 254, 254, 254, 1, 2, 3, 3, 3, 3, 0, 0, 0, 253, 253, 254, 0,
-			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 5, 2, 5, 6, 6, 6, 3, 6, 6, 3, 3, 4, 4, 4,
-			1, 1, 2, 2, 3, 4, 4, 1, 1, 255, 255, 255, 0, 253, 0, 254, 254, 255, 255, 255, 252, 252, 253, 253, 253, 250, 250, 250, 250, 250,
-			250, 250, 250, 250, 250, 250, 250, 252, 249, 249, 252, 252, 251, 251, 254, 254, 0, 0, 0, 255, 255, 1, 1, 0, 0, 255, 255, 2, 5, 5,
-			4, 4, 3, 2, 2, 2, 2, 5, 5, 5, 4, 4, 3, 3, 2, 2, 2, 5, 5, 6, 9, 9, 9, 9, 5, 1, 0, 1, 1, 1,
-			1, 1, 1, 2, 2, 2, 2, 2, 2, 255, 255, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 255, 255, 255, 255, 255, 1, 255, 255, 1, 255, 1, 2, 5, 2, 1, 1, 1, 255, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-			0, 0, 253, 253, 253, 253, 254, 0, 1, 1, 1, 1, 0, 254, 254, 0, 1, 1, 255, 0, 0, 254, 254, 0, 0, 255, 0, 0, 0, 254,
-			0, 0, 0, 0, 3, 0, 3, 0, 254, 252, 249, 253, 0, 255, 1, 7, 27, 58, 60, 55, 18, 245, 221, 212, 188, 188, 210, 251, 40, 62,
-			54, 29, 5, 243, 222, 205, 201, 222, 1, 27, 44, 43, 31, 17, 0, 236, 219, 210, 218, 236, 0, 16, 19, 24, 16, 2, 240, 230, 221, 246,
-			16, 20, 36, 22, 15, 251, 237, 243, 237, 0, 4, 8, 9, 57, 46, 9, 220, 224, 247, 241, 246, 254, 54, 31, 11, 245, 226, 245, 242, 246,
-			254, 249, 252, 4, 10, 17, 36, 255, 225, 222, 243, 245, 249, 27, 21, 23, 13, 244, 238, 232, 236, 3, 12, 3, 19, 11, 9, 2, 239, 242,
-			243, 254, 5, 3, 15, 22, 16, 10, 3, 5, 11, 17, 22, 25, 25, 13, 255, 240, 236, 238, 254, 5, 12, 12, 33, 29, 71, 24, 253, 231,
-			240, 227, 212, 220, 244, 22, 24, 0, 223, 234, 232, 0, 240, 232, 234, 237, 219, 222, 239, 250, 20, 15, 5, 252, 0, 240, 245, 255, 0, 11,
-			20, 17, 9, 10, 9, 6, 6, 8, 0, 12, 14, 13, 16, 11, 1, 250, 250, 251, 253, 0, 252, 2, 3, 249, 244, 240, 241, 246, 250, 253,
-			246, 248, 248, 252, 255, 254, 252, 248, 246, 246, 251, 251, 255, 9, 17, 21, 19, 11, 5, 0, 253, 252, 248, 252, 4, 16, 22, 22, 20, 9,
-			4, 0, 250, 249, 250, 5, 11, 13, 16, 11, 0, 248, 248, 254, 253, 4, 13, 21, 21, 13, 8, 4, 0, 253, 0, 255, 9, 19, 25, 29,
-			19, 13, 2, 252, 252, 254, 0, 5, 11, 13, 10, 3, 253, 250, 247, 245, 243, 247, 249, 254, 252, 253, 252, 247, 246, 246, 243, 244, 248, 249,
-			249, 248, 245, 244, 244, 247, 251, 253, 3, 3, 4, 250, 242, 244, 250, 244, 247, 254, 9, 15, 19, 17, 8, 255, 243, 238, 237, 240, 246, 2,
-			17, 25, 18, 8, 252, 245, 239, 233, 240, 252, 6, 14, 11, 9, 7, 255, 245, 236, 236, 250, 3, 12, 19, 18, 10, 3, 243, 227, 224, 228,
-			237, 254, 10, 20, 18, 4, 241, 230, 226, 229, 235, 241, 247, 250, 252, 251, 248, 245, 244, 246, 254, 9, 19, 19, 16, 9, 0, 250, 248, 251,
-			6, 18, 29, 32, 24, 18, 11, 6, 3, 6, 11, 22, 23, 21, 24, 20, 16, 9, 8, 8, 9, 12, 8, 0, 250, 245, 248, 2, 16, 39,
-			54, 65, 66, 62, 51, 35, 19, 4, 255, 0, 10, 22, 28, 28, 27, 20, 15, 4, 253, 249, 242, 234, 230, 222, 217, 213, 212, 215, 218, 220,
-			226, 228, 233, 233, 230, 225, 220, 215, 214, 214, 220, 227, 238, 249, 0, 7, 12, 7, 1, 252, 250, 249, 249, 255, 2, 8, 8, 8, 7, 10,
-			10, 14, 18, 22, 23, 23, 18, 11, 6, 0, 0, 254, 1, 3, 12, 17, 19, 19, 8, 2, 248, 240, 236, 240, 244, 249, 253, 0, 3, 2,
-			1, 253, 252, 251, 253, 252, 255, 1, 4, 7, 5, 1, 0, 2, 6, 7, 14, 13, 9, 0, 248, 243, 239, 235, 237, 241, 247, 1, 9, 8,
-			0, 246, 238, 229, 227, 231, 241, 252, 2, 6, 7, 6, 3, 254, 248, 242, 244, 247, 253, 0, 3, 8, 3, 251, 245, 243, 249, 255, 7, 17,
-			16, 7, 251, 246, 252, 253, 1, 3, 6, 6, 5, 2, 255, 250, 246, 242, 239, 238, 238, 239, 237, 234, 229, 217, 205, 205, 241, 32, 85, 113,
-			111, 109, 102, 98, 82, 46, 23, 18, 25, 46, 64, 73, 80, 73, 65, 54, 41, 39, 34, 26, 16, 253, 234, 217, 208, 210, 210, 214, 226, 225,
-			225, 221, 216, 211, 207, 198, 195, 194, 186, 185, 187, 195, 213, 233, 249, 5, 7, 3, 249, 245, 243, 245, 251, 255, 5, 11, 7, 5, 4, 8,
-			13, 22, 27, 28, 25, 21, 10, 0, 248, 246, 247, 250, 255, 253, 254, 255, 0, 254, 255, 255, 251, 247, 243, 238, 237, 237, 244, 248, 251, 254,
-			253, 255, 1, 4, 6, 8, 7, 5, 4, 5, 1, 4, 4, 9, 10, 9, 10, 15, 9, 7, 2, 0, 2, 6, 7, 7, 3, 255, 253, 247,
-			251, 2, 6, 2, 250, 244, 240, 247, 251, 255, 1, 0, 0, 254, 0, 252, 255, 1, 6, 3, 2, 8, 7, 8, 1, 1, 7, 14, 11, 11,
-			10, 9, 4, 254, 250, 0, 4, 9, 7, 8, 3, 254, 253, 0, 253, 255, 252, 254, 9, 9, 12, 13, 11, 4, 0, 249, 248, 248, 246, 253,
-			1, 6, 10, 6, 7, 3, 251, 243, 243, 244, 253, 1, 1, 1, 254, 2, 255, 251, 251, 0, 0, 0, 253, 254, 254, 253, 252, 252, 251, 251,
-			252, 254, 255, 0, 0, 253, 249, 245, 244, 244, 247, 0, 10, 22, 34, 41, 37, 32, 19, 10, 6, 7, 12, 17, 23, 24, 21, 19, 16, 14,
-			16, 15, 17, 20, 14, 8, 2, 249, 243, 241, 244, 246, 249, 251, 253, 255, 252, 250, 251, 249, 246, 243, 239, 232, 228, 233, 238, 243, 248, 248,
-			248, 248, 243, 239, 238, 242, 242, 250, 249, 248, 248, 247, 246, 245, 248, 252, 2, 2, 9, 4, 3, 3, 2, 2, 2, 1, 254, 0, 0, 4,
-			4, 9, 8, 4, 4, 4, 0, 0, 0, 0, 64, 4, 31, 0, 0, 2, 7, 12, 13, 8, 3, 255, 251, 245, 242, 243, 251, 3, 7, 5,
-			255, 249, 248, 253, 1, 6, 8, 5, 0, 249, 246, 252, 5, 13, 12, 4, 252, 248, 249, 251, 255, 4, 8, 8, 2, 252, 251, 0, 6, 7,
-			4, 255, 252, 252, 252, 252, 253, 253, 254, 255, 2, 9, 15, 16, 11, 3, 251, 244, 240, 240, 248, 3, 13, 15, 9, 0, 248, 243, 242, 246,
-			0, 8, 15, 15, 9, 0, 248, 245, 248, 254, 1, 5, 8, 8, 4, 253, 246, 246, 251, 2, 9, 14, 14, 8, 253, 239, 232, 236, 248, 4,
-			15, 22, 20, 9, 247, 230, 226, 238, 3, 27, 40, 39, 26, 8, 247, 234, 232, 245, 9, 31, 51, 65, 66, 45, 4, 216, 186, 181, 201, 235,
-			10, 30, 28, 7, 234, 210, 202, 214, 236, 2, 19, 27, 24, 12, 253, 237, 226, 222, 227, 243, 8, 30, 38, 29, 8, 245, 234, 237, 250, 11,
-			26, 32, 26, 11, 253, 242, 242, 249, 2, 10, 15, 15, 11, 5, 0, 253, 250, 249, 251, 0, 8, 14, 16, 9, 255, 244, 241, 245, 251, 0,
-			5, 7, 6, 2, 255, 252, 250, 250, 252, 0, 6, 9, 7, 2, 255, 254, 254, 0, 0, 1, 2, 3, 4, 4, 3, 1, 0, 0, 1, 2,
-			3, 5, 5, 3, 0, 254, 253, 254, 255, 0, 1, 0, 253, 250, 251, 254, 0, 0, 0, 1, 1, 0, 253, 251, 252, 254, 255, 255, 254, 255,
-			0, 255, 255, 255, 255, 254, 254, 0, 0, 1, 0, 0, 0, 2, 2, 1, 0, 255, 0, 0, 1, 3, 4, 3, 2, 1, 0, 0, 0, 2,
-			4, 6, 6, 5, 3, 3, 4, 3, 0, 254, 253, 254, 0, 2, 2, 0, 0, 1, 2, 1, 0, 255, 255, 0, 1, 2, 0, 0, 255, 0,
-			255, 252, 251, 251, 254, 0, 1, 1, 0, 0, 254, 252, 252, 254, 0, 1, 3, 2, 0, 254, 253, 254, 255, 0, 1, 2, 1, 0, 0, 0,
-			2, 3, 3, 3, 2, 2, 1, 1, 1, 2, 2, 3, 2, 0, 255, 255, 1, 4, 4, 2, 0, 0, 0, 0, 3, 15, 29, 28, 0, 214,
-			196, 219, 4, 32, 32, 16, 0, 249, 241, 233, 234, 252, 19, 32, 23, 1, 240, 233, 238, 247, 0, 9, 15, 16, 6, 246, 235, 238, 253, 13,
-			23, 18, 4, 250, 254, 18, 45, 54, 24, 223, 180, 186, 233, 29, 56, 55, 43, 30, 14, 252, 241, 244, 244, 216, 165, 130, 153, 228, 51, 87,
-			80, 59, 43, 20, 234, 188, 173, 199, 242, 14, 23, 26, 34, 39, 31, 16, 9, 14, 22, 19, 4, 239, 223, 223, 238, 254, 2, 251, 240, 239,
-			250, 7, 14, 14, 11, 4, 247, 229, 219, 226, 244, 3, 12, 19, 29, 40, 45, 44, 39, 29, 11, 246, 226, 217, 220, 229, 236, 241, 247, 255,
-			2, 3, 2, 5, 14, 25, 28, 23, 15, 10, 10, 8, 0, 244, 238, 240, 247, 253, 2, 10, 18, 23, 27, 28, 24, 11, 248, 230, 221, 224,
-			233, 243, 251, 0, 3, 0, 252, 248, 247, 245, 244, 246, 253, 12, 31, 44, 41, 26, 7, 250, 244, 242, 244, 251, 4, 9, 4, 249, 238, 234,
-			236, 241, 247, 3, 18, 29, 27, 14, 1, 254, 255, 252, 243, 235, 234, 242, 253, 4, 10, 14, 15, 10, 0, 243, 234, 235, 244, 0, 9, 14,
-			13, 10, 5, 255, 250, 248, 249, 250, 248, 246, 247, 251, 2, 10, 16, 17, 11, 0, 246, 240, 242, 251, 4, 11, 10, 4, 253, 248, 251, 2,
-			9, 13, 12, 8, 3, 254, 250, 247, 248, 251, 254, 1, 6, 11, 16, 16, 10, 1, 248, 243, 244, 248, 253, 1, 4, 6, 6, 4, 1, 255,
-			255, 0, 3, 2, 0, 253, 253, 255, 4, 8, 9, 5, 255, 247, 243, 244, 248, 254, 1, 6, 12, 16, 14, 7, 0, 253, 250, 248, 249, 253,
-			2, 6, 5, 1, 255, 0, 2, 2, 0, 254, 253, 255, 0, 0, 0, 0, 0, 254, 253, 253, 1, 6, 11, 11, 7, 0, 245, 238, 239, 247,
-			0, 6, 9, 9, 9, 8, 5, 2, 0, 251, 247, 248, 253, 3, 10, 14, 11, 3, 252, 246, 244, 246, 251, 0, 6, 9, 9, 7, 2, 253,
-			248, 246, 247, 251, 0, 6, 11, 11, 5, 255, 250, 248, 248, 252, 1, 7, 10, 8, 2, 254, 249, 247, 247, 250, 255, 2, 5, 6, 4, 0,
-			249, 240, 235, 236, 245, 5, 26, 43, 48, 39, 18, 248, 227, 221, 233, 4, 38, 66, 75, 60, 26, 244, 212, 196, 199, 218, 248, 16, 27, 19,
-			0, 232, 216, 210, 214, 229, 252, 17, 32, 32, 19, 254, 231, 216, 215, 228, 252, 19, 32, 30, 16, 254, 238, 234, 241, 0, 16, 29, 30, 21,
-			8, 254, 248, 247, 249, 254, 5, 14, 19, 16, 9, 0, 250, 246, 246, 253, 5, 11, 11, 7, 1, 252, 247, 244, 246, 252, 4, 9, 8, 3,
-			254, 251, 250, 253, 0, 1, 3, 4, 4, 3, 3, 1, 0, 254, 254, 0, 4, 5, 5, 3, 2, 1, 0, 0, 0, 3, 5, 6, 5, 2,
-			0, 252, 251, 252, 255, 1, 3, 3, 2, 0, 254, 253, 254, 255, 255, 255, 255, 0, 0, 255, 253, 251, 250, 252, 255, 0, 1, 0, 255, 253,
-			253, 252, 252, 253, 0, 1, 1, 0, 0, 1, 2, 2, 2, 2, 1, 0, 0, 1, 3, 5, 5, 4, 3, 3, 3, 3, 1, 0, 0, 1,
-			2, 3, 3, 2, 2, 1, 0, 0, 0, 1, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 253, 253, 254, 255, 0, 1,
-			2, 0, 253, 249, 247, 249, 253, 0, 4, 4, 4, 4, 4, 3, 1, 254, 251, 249, 250, 254, 1, 3, 3, 3, 2, 0, 0, 0, 0, 2,
-			3, 2, 0, 0, 1, 3, 3, 1, 0, 1, 2, 3, 4, 3, 1, 0, 255, 252, 252, 253, 0, 2, 4, 3, 1, 0, 0, 1, 2, 1,
-			0, 0, 0, 254, 253, 255, 1, 2, 0, 251, 250, 255, 3, 4, 0, 254, 255, 1, 2, 0, 254, 252, 252, 253, 253, 252, 255, 7, 15, 18,
-			19, 25, 21, 0, 232, 235, 6, 26, 5, 216, 200, 241, 41, 58, 27, 252, 5, 44, 55, 13, 207, 179, 145, 0, 4, 0, 69, 0, 208, 0,
-			128, 2, 160, 5, 56, 9, 128, 12, 148, 17, 244, 26, 60, 5, 21, 12, 9, 15, 6, 6, 0, 0, 187, 125, 137, 137, 150, 175, 187, 125,
-			137, 44, 45, 70, 130, 44, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			69, 0, 208, 0, 128, 2, 160, 5, 56, 9, 128, 12, 148, 17, 244, 26, 45, 5, 22, 12, 9, 16, 6, 6, 0, 0, 187, 125, 137, 137,
-			150, 175, 187, 125, 137, 44, 45, 70, 130, 43, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 69, 0, 192, 0, 24, 2, 80, 5, 136, 9, 128, 12, 148, 17, 244, 26, 40, 9, 19, 25, 25, 19, 6, 6, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 101, 10, 56, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2,
+			2, 3, 2, 1, 255, 253, 250, 247, 246, 246, 247, 248, 250, 251, 252, 252, 252, 253, 253, 253, 253, 252, 250, 249, 250, 251, 253, 0, 5, 12,
+			19, 22, 20, 15, 9, 4, 255, 250, 250, 247, 245, 245, 248, 251, 0, 254, 253, 252, 249, 244, 240, 236, 234, 231, 233, 238, 245, 253, 0, 4,
+			7, 13, 16, 16, 17, 20, 21, 21, 18, 22, 21, 19, 20, 27, 31, 27, 25, 25, 21, 13, 10, 1, 252, 246, 244, 245, 247, 245, 249, 250,
+			251, 251, 251, 250, 249, 246, 245, 246, 246, 245, 247, 250, 252, 255, 1, 4, 6, 9, 8, 6, 4, 3, 3, 5, 5, 5, 7, 4, 3, 3,
+			3, 3, 3, 0, 252, 247, 244, 247, 247, 248, 252, 255, 255, 250, 246, 244, 240, 239, 242, 242, 245, 247, 247, 249, 247, 246, 244, 245, 245, 247,
+			249, 252, 255, 1, 0, 2, 3, 5, 5, 3, 0, 252, 254, 254, 251, 250, 250, 250, 253, 254, 253, 251, 249, 248, 246, 243, 239, 234, 229, 227,
+			226, 224, 223, 227, 0, 41, 84, 119, 125, 120, 115, 104, 88, 70, 45, 26, 20, 26, 46, 59, 73, 76, 71, 64, 49, 37, 23, 255, 222, 195,
+			174, 173, 184, 199, 207, 214, 214, 214, 206, 203, 206, 206, 206, 207, 205, 201, 194, 193, 200, 210, 235, 4, 33, 48, 52, 44, 35, 21, 11, 9,
+			9, 9, 10, 11, 19, 20, 29, 33, 32, 27, 20, 8, 254, 241, 231, 228, 224, 223, 228, 229, 228, 232, 240, 245, 245, 247, 245, 240, 237, 230,
+			227, 228, 234, 249, 13, 26, 35, 36, 30, 20, 13, 7, 2, 255, 0, 4, 9, 17, 21, 19, 22, 18, 8, 3, 253, 245, 241, 238, 240, 248,
+			253, 0, 253, 247, 248, 244, 239, 231, 234, 248, 253, 255, 5, 254, 248, 242, 236, 240, 238, 253, 14, 18, 18, 1, 247, 250, 247, 250, 5, 9,
+			16, 24, 30, 38, 18, 16, 19, 15, 5, 2, 9, 32, 21, 23, 37, 20, 5, 0, 247, 0, 6, 1, 21, 21, 22, 23, 13, 8, 254, 247,
+			244, 244, 248, 253, 0, 3, 5, 6, 6, 6, 5, 4, 1, 254, 250, 247, 245, 247, 248, 250, 251, 252, 252, 249, 250, 250, 251, 252, 252, 253,
+			254, 254, 255, 255, 252, 252, 249, 249, 246, 250, 251, 0, 0, 0, 0, 0, 254, 251, 253, 251, 251, 252, 255, 0, 0, 0, 0, 1, 1, 1,
+			1, 255, 255, 255, 252, 255, 253, 0, 0, 1, 255, 0, 254, 254, 254, 254, 254, 255, 2, 2, 0, 1, 255, 255, 1, 1, 1, 1, 0, 1,
+			3, 1, 3, 3, 3, 3, 3, 2, 2, 2, 6, 6, 6, 6, 6, 5, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
+			1, 255, 255, 255, 1, 0, 1, 255, 254, 254, 254, 254, 253, 253, 0, 253, 0, 0, 255, 252, 255, 255, 254, 254, 255, 1, 1, 1, 254, 253,
+			252, 249, 248, 248, 248, 249, 250, 252, 253, 253, 252, 252, 251, 250, 250, 250, 251, 253, 255, 0, 2, 4, 5, 6, 8, 8, 10, 9, 9, 8,
+			7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 5, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 1, 0, 1, 1, 1, 1, 1, 2,
+			2, 2, 2, 255, 255, 255, 255, 255, 255, 252, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 254, 0, 254, 254, 254, 1, 2, 2, 2, 1, 255, 255, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+			1, 0, 254, 254, 254, 254, 255, 255, 1, 0, 2, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 2, 2, 0, 255, 254, 254, 255, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+			0, 0, 0, 3, 1, 3, 0, 3, 0, 0, 0, 0, 0, 0, 4, 4, 4, 1, 1, 1, 1, 254, 254, 254, 255, 254, 251, 250, 251, 255,
+			0, 2, 2, 2, 2, 2, 2, 1, 254, 254, 253, 253, 255, 0, 2, 3, 4, 4, 3, 2, 1, 1, 0, 0, 254, 252, 252, 250, 247, 247,
+			251, 5, 49, 81, 63, 56, 19, 247, 243, 214, 173, 187, 230, 19, 49, 50, 36, 15, 1, 238, 212, 197, 195, 225, 6, 27, 34, 29, 21, 15,
+			0, 231, 215, 206, 212, 232, 253, 8, 20, 35, 34, 30, 9, 234, 224, 235, 251, 5, 17, 23, 34, 37, 24, 248, 234, 244, 250, 2, 3, 11,
+			11, 248, 218, 252, 35, 31, 28, 2, 255, 8, 3, 255, 27, 30, 29, 13, 4, 241, 229, 245, 254, 251, 4, 247, 232, 235, 241, 242, 223, 224,
+			249, 9, 254, 245, 241, 247, 251, 0, 248, 253, 9, 18, 15, 8, 253, 239, 232, 244, 250, 6, 22, 41, 39, 30, 14, 247, 240, 236, 254, 11,
+			15, 20, 19, 13, 252, 241, 236, 239, 243, 247, 5, 24, 31, 10, 244, 220, 209, 208, 232, 5, 28, 40, 34, 10, 236, 215, 224, 241, 2, 15,
+			21, 20, 20, 16, 10, 0, 244, 237, 244, 0, 9, 18, 22, 21, 13, 4, 255, 252, 253, 1, 4, 4, 2, 1, 0, 255, 254, 253, 254, 255,
+			0, 2, 5, 7, 8, 8, 4, 0, 0, 253, 252, 253, 1, 5, 9, 10, 7, 6, 5, 255, 251, 251, 252, 0, 3, 1, 5, 5, 1, 1,
+			255, 255, 2, 6, 5, 5, 5, 1, 254, 247, 248, 252, 0, 1, 2, 2, 2, 255, 252, 249, 252, 0, 254, 254, 253, 246, 245, 245, 249, 255,
+			6, 14, 14, 6, 250, 240, 235, 236, 244, 253, 9, 21, 25, 21, 9, 255, 242, 234, 234, 244, 3, 15, 13, 13, 12, 11, 4, 252, 244, 239,
+			242, 247, 252, 4, 12, 15, 7, 251, 242, 240, 243, 248, 1, 16, 19, 14, 2, 246, 244, 246, 248, 253, 4, 11, 10, 6, 0, 1, 5, 2,
+			255, 246, 241, 240, 241, 246, 254, 5, 9, 5, 0, 249, 247, 246, 240, 246, 250, 251, 250, 248, 244, 247, 251, 1, 5, 8, 3, 254, 248, 243,
+			239, 249, 3, 9, 16, 19, 14, 9, 3, 253, 255, 1, 3, 10, 18, 22, 19, 17, 15, 15, 14, 13, 14, 14, 14, 13, 11, 9, 5, 0,
+			250, 243, 239, 237, 240, 250, 3, 15, 22, 26, 33, 34, 37, 37, 30, 29, 27, 25, 26, 24, 20, 18, 17, 16, 17, 21, 21, 17, 9, 1,
+			249, 241, 233, 228, 228, 228, 231, 234, 234, 236, 237, 235, 233, 233, 226, 225, 222, 221, 224, 229, 237, 248, 0, 2, 2, 4, 3, 255, 254, 253,
+			253, 252, 253, 0, 4, 5, 9, 9, 6, 6, 3, 0, 252, 249, 245, 245, 242, 246, 250, 255, 255, 254, 249, 247, 244, 247, 253, 253, 255, 255,
+			0, 255, 252, 247, 250, 0, 10, 13, 12, 10, 3, 254, 248, 247, 253, 4, 12, 19, 17, 12, 6, 1, 253, 255, 255, 252, 0, 253, 252, 255,
+			255, 2, 5, 3, 248, 242, 236, 234, 233, 239, 239, 249, 6, 9, 9, 5, 248, 235, 225, 228, 246, 20, 40, 37, 22, 0, 240, 229, 226, 232,
+			254, 17, 20, 18, 13, 4, 251, 245, 241, 242, 245, 248, 249, 246, 241, 235, 228, 221, 218, 222, 244, 28, 71, 109, 116, 116, 110, 105, 87, 53,
+			16, 1, 4, 29, 56, 80, 86, 83, 79, 65, 53, 35, 18, 8, 0, 243, 229, 212, 209, 212, 219, 226, 232, 239, 236, 224, 214, 210, 205, 207,
+			209, 209, 204, 192, 187, 189, 201, 221, 242, 8, 19, 21, 10, 249, 233, 222, 220, 221, 232, 247, 3, 15, 24, 27, 22, 9, 254, 248, 249, 253,
+			255, 2, 2, 2, 0, 253, 252, 248, 245, 245, 253, 4, 9, 11, 13, 8, 255, 240, 233, 233, 227, 233, 246, 11, 25, 36, 31, 18, 254, 246,
+			239, 251, 0, 5, 17, 12, 19, 11, 16, 12, 3, 254, 246, 246, 254, 5, 16, 14, 10, 11, 2, 253, 240, 242, 247, 246, 247, 253, 14, 28,
+			22, 12, 0, 0, 254, 248, 244, 249, 0, 7, 13, 17, 22, 19, 14, 9, 0, 249, 251, 252, 0, 5, 12, 13, 13, 9, 5, 0, 254, 254,
+			254, 255, 1, 2, 2, 2, 2, 2, 2, 3, 6, 4, 3, 0, 0, 0, 1, 2, 2, 2, 0, 255, 254, 252, 251, 251, 252, 253, 254, 255,
+			255, 0, 0, 255, 253, 251, 249, 248, 248, 249, 251, 252, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 1, 2, 2, 2, 2, 2,
+			2, 2, 0, 2, 0, 0, 0, 0, 1, 0, 254, 254, 254, 1, 2, 3, 3, 3, 3, 0, 0, 0, 253, 253, 254, 0, 1, 1, 1, 1,
+			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 5, 2, 5, 6, 6, 6, 3, 6, 6, 3, 3, 4, 4, 4, 1, 1, 2, 2,
+			3, 4, 4, 1, 1, 255, 255, 255, 0, 253, 0, 254, 254, 255, 255, 255, 252, 252, 253, 253, 253, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+			250, 250, 250, 252, 249, 249, 252, 252, 251, 251, 254, 254, 0, 0, 0, 255, 255, 1, 1, 0, 0, 255, 255, 2, 5, 5, 4, 4, 3, 2,
+			2, 2, 2, 5, 5, 5, 4, 4, 3, 3, 2, 2, 2, 5, 5, 6, 9, 9, 9, 9, 5, 1, 0, 1, 1, 1, 1, 1, 1, 2,
+			2, 2, 2, 2, 2, 255, 255, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255,
+			255, 255, 1, 255, 255, 1, 255, 1, 2, 5, 2, 1, 1, 1, 255, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 253, 253,
+			253, 253, 254, 0, 1, 1, 1, 1, 0, 254, 254, 0, 1, 1, 255, 0, 0, 254, 254, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 0,
+			3, 0, 3, 0, 254, 252, 249, 253, 0, 255, 1, 7, 27, 58, 60, 55, 18, 245, 221, 212, 188, 188, 210, 251, 40, 62, 54, 29, 5, 243,
+			222, 205, 201, 222, 1, 27, 44, 43, 31, 17, 0, 236, 219, 210, 218, 236, 0, 16, 19, 24, 16, 2, 240, 230, 221, 246, 16, 20, 36, 22,
+			15, 251, 237, 243, 237, 0, 4, 8, 9, 57, 46, 9, 220, 224, 247, 241, 246, 254, 54, 31, 11, 245, 226, 245, 242, 246, 254, 249, 252, 4,
+			10, 17, 36, 255, 225, 222, 243, 245, 249, 27, 21, 23, 13, 244, 238, 232, 236, 3, 12, 3, 19, 11, 9, 2, 239, 242, 243, 254, 5, 3,
+			15, 22, 16, 10, 3, 5, 11, 17, 22, 25, 25, 13, 255, 240, 236, 238, 254, 5, 12, 12, 33, 29, 71, 24, 253, 231, 240, 227, 212, 220,
+			244, 22, 24, 0, 223, 234, 232, 0, 240, 232, 234, 237, 219, 222, 239, 250, 20, 15, 5, 252, 0, 240, 245, 255, 0, 11, 20, 17, 9, 10,
+			9, 6, 6, 8, 0, 12, 14, 13, 16, 11, 1, 250, 250, 251, 253, 0, 252, 2, 3, 249, 244, 240, 241, 246, 250, 253, 246, 248, 248, 252,
+			255, 254, 252, 248, 246, 246, 251, 251, 255, 9, 17, 21, 19, 11, 5, 0, 253, 252, 248, 252, 4, 16, 22, 22, 20, 9, 4, 0, 250, 249,
+			250, 5, 11, 13, 16, 11, 0, 248, 248, 254, 253, 4, 13, 21, 21, 13, 8, 4, 0, 253, 0, 255, 9, 19, 25, 29, 19, 13, 2, 252,
+			252, 254, 0, 5, 11, 13, 10, 3, 253, 250, 247, 245, 243, 247, 249, 254, 252, 253, 252, 247, 246, 246, 243, 244, 248, 249, 249, 248, 245, 244,
+			244, 247, 251, 253, 3, 3, 4, 250, 242, 244, 250, 244, 247, 254, 9, 15, 19, 17, 8, 255, 243, 238, 237, 240, 246, 2, 17, 25, 18, 8,
+			252, 245, 239, 233, 240, 252, 6, 14, 11, 9, 7, 255, 245, 236, 236, 250, 3, 12, 19, 18, 10, 3, 243, 227, 224, 228, 237, 254, 10, 20,
+			18, 4, 241, 230, 226, 229, 235, 241, 247, 250, 252, 251, 248, 245, 244, 246, 254, 9, 19, 19, 16, 9, 0, 250, 248, 251, 6, 18, 29, 32,
+			24, 18, 11, 6, 3, 6, 11, 22, 23, 21, 24, 20, 16, 9, 8, 8, 9, 12, 8, 0, 250, 245, 248, 2, 16, 39, 54, 65, 66, 62,
+			51, 35, 19, 4, 255, 0, 10, 22, 28, 28, 27, 20, 15, 4, 253, 249, 242, 234, 230, 222, 217, 213, 212, 215, 218, 220, 226, 228, 233, 233,
+			230, 225, 220, 215, 214, 214, 220, 227, 238, 249, 0, 7, 12, 7, 1, 252, 250, 249, 249, 255, 2, 8, 8, 8, 7, 10, 10, 14, 18, 22,
+			23, 23, 18, 11, 6, 0, 0, 254, 1, 3, 12, 17, 19, 19, 8, 2, 248, 240, 236, 240, 244, 249, 253, 0, 3, 2, 1, 253, 252, 251,
+			253, 252, 255, 1, 4, 7, 5, 1, 0, 2, 6, 7, 14, 13, 9, 0, 248, 243, 239, 235, 237, 241, 247, 1, 9, 8, 0, 246, 238, 229,
+			227, 231, 241, 252, 2, 6, 7, 6, 3, 254, 248, 242, 244, 247, 253, 0, 3, 8, 3, 251, 245, 243, 249, 255, 7, 17, 16, 7, 251, 246,
+			252, 253, 1, 3, 6, 6, 5, 2, 255, 250, 246, 242, 239, 238, 238, 239, 237, 234, 229, 217, 205, 205, 241, 32, 85, 113, 111, 109, 102, 98,
+			82, 46, 23, 18, 25, 46, 64, 73, 80, 73, 65, 54, 41, 39, 34, 26, 16, 253, 234, 217, 208, 210, 210, 214, 226, 225, 225, 221, 216, 211,
+			207, 198, 195, 194, 186, 185, 187, 195, 213, 233, 249, 5, 7, 3, 249, 245, 243, 245, 251, 255, 5, 11, 7, 5, 4, 8, 13, 22, 27, 28,
+			25, 21, 10, 0, 248, 246, 247, 250, 255, 253, 254, 255, 0, 254, 255, 255, 251, 247, 243, 238, 237, 237, 244, 248, 251, 254, 253, 255, 1, 4,
+			6, 8, 7, 5, 4, 5, 1, 4, 4, 9, 10, 9, 10, 15, 9, 7, 2, 0, 2, 6, 7, 7, 3, 255, 253, 247, 251, 2, 6, 2,
+			250, 244, 240, 247, 251, 255, 1, 0, 0, 254, 0, 252, 255, 1, 6, 3, 2, 8, 7, 8, 1, 1, 7, 14, 11, 11, 10, 9, 4, 254,
+			250, 0, 4, 9, 7, 8, 3, 254, 253, 0, 253, 255, 252, 254, 9, 9, 12, 13, 11, 4, 0, 249, 248, 248, 246, 253, 1, 6, 10, 6,
+			7, 3, 251, 243, 243, 244, 253, 1, 1, 1, 254, 2, 255, 251, 251, 0, 0, 0, 253, 254, 254, 253, 252, 252, 251, 251, 252, 254, 255, 0,
+			0, 253, 249, 245, 244, 244, 247, 0, 10, 22, 34, 41, 37, 32, 19, 10, 6, 7, 12, 17, 23, 24, 21, 19, 16, 14, 16, 15, 17, 20,
+			14, 8, 2, 249, 243, 241, 244, 246, 249, 251, 253, 255, 252, 250, 251, 249, 246, 243, 239, 232, 228, 233, 238, 243, 248, 248, 248, 248, 243, 239,
+			238, 242, 242, 250, 249, 248, 248, 247, 246, 245, 248, 252, 2, 2, 9, 4, 3, 3, 2, 2, 2, 1, 254, 0, 0, 4, 4, 9, 8, 4,
+			4, 4, 0, 0, 0, 0, 64, 4, 31, 0, 0, 2, 7, 12, 13, 8, 3, 255, 251, 245, 242, 243, 251, 3, 7, 5, 255, 249, 248, 253,
+			1, 6, 8, 5, 0, 249, 246, 252, 5, 13, 12, 4, 252, 248, 249, 251, 255, 4, 8, 8, 2, 252, 251, 0, 6, 7, 4, 255, 252, 252,
+			252, 252, 253, 253, 254, 255, 2, 9, 15, 16, 11, 3, 251, 244, 240, 240, 248, 3, 13, 15, 9, 0, 248, 243, 242, 246, 0, 8, 15, 15,
+			9, 0, 248, 245, 248, 254, 1, 5, 8, 8, 4, 253, 246, 246, 251, 2, 9, 14, 14, 8, 253, 239, 232, 236, 248, 4, 15, 22, 20, 9,
+			247, 230, 226, 238, 3, 27, 40, 39, 26, 8, 247, 234, 232, 245, 9, 31, 51, 65, 66, 45, 4, 216, 186, 181, 201, 235, 10, 30, 28, 7,
+			234, 210, 202, 214, 236, 2, 19, 27, 24, 12, 253, 237, 226, 222, 227, 243, 8, 30, 38, 29, 8, 245, 234, 237, 250, 11, 26, 32, 26, 11,
+			253, 242, 242, 249, 2, 10, 15, 15, 11, 5, 0, 253, 250, 249, 251, 0, 8, 14, 16, 9, 255, 244, 241, 245, 251, 0, 5, 7, 6, 2,
+			255, 252, 250, 250, 252, 0, 6, 9, 7, 2, 255, 254, 254, 0, 0, 1, 2, 3, 4, 4, 3, 1, 0, 0, 1, 2, 3, 5, 5, 3,
+			0, 254, 253, 254, 255, 0, 1, 0, 253, 250, 251, 254, 0, 0, 0, 1, 1, 0, 253, 251, 252, 254, 255, 255, 254, 255, 0, 255, 255, 255,
+			255, 254, 254, 0, 0, 1, 0, 0, 0, 2, 2, 1, 0, 255, 0, 0, 1, 3, 4, 3, 2, 1, 0, 0, 0, 2, 4, 6, 6, 5,
+			3, 3, 4, 3, 0, 254, 253, 254, 0, 2, 2, 0, 0, 1, 2, 1, 0, 255, 255, 0, 1, 2, 0, 0, 255, 0, 255, 252, 251, 251,
+			254, 0, 1, 1, 0, 0, 254, 252, 252, 254, 0, 1, 3, 2, 0, 254, 253, 254, 255, 0, 1, 2, 1, 0, 0, 0, 2, 3, 3, 3,
+			2, 2, 1, 1, 1, 2, 2, 3, 2, 0, 255, 255, 1, 4, 4, 2, 0, 0, 0, 0, 3, 15, 29, 28, 0, 214, 196, 219, 4, 32,
+			32, 16, 0, 249, 241, 233, 234, 252, 19, 32, 23, 1, 240, 233, 238, 247, 0, 9, 15, 16, 6, 246, 235, 238, 253, 13, 23, 18, 4, 250,
+			254, 18, 45, 54, 24, 223, 180, 186, 233, 29, 56, 55, 43, 30, 14, 252, 241, 244, 244, 216, 165, 130, 153, 228, 51, 87, 80, 59, 43, 20,
+			234, 188, 173, 199, 242, 14, 23, 26, 34, 39, 31, 16, 9, 14, 22, 19, 4, 239, 223, 223, 238, 254, 2, 251, 240, 239, 250, 7, 14, 14,
+			11, 4, 247, 229, 219, 226, 244, 3, 12, 19, 29, 40, 45, 44, 39, 29, 11, 246, 226, 217, 220, 229, 236, 241, 247, 255, 2, 3, 2, 5,
+			14, 25, 28, 23, 15, 10, 10, 8, 0, 244, 238, 240, 247, 253, 2, 10, 18, 23, 27, 28, 24, 11, 248, 230, 221, 224, 233, 243, 251, 0,
+			3, 0, 252, 248, 247, 245, 244, 246, 253, 12, 31, 44, 41, 26, 7, 250, 244, 242, 244, 251, 4, 9, 4, 249, 238, 234, 236, 241, 247, 3,
+			18, 29, 27, 14, 1, 254, 255, 252, 243, 235, 234, 242, 253, 4, 10, 14, 15, 10, 0, 243, 234, 235, 244, 0, 9, 14, 13, 10, 5, 255,
+			250, 248, 249, 250, 248, 246, 247, 251, 2, 10, 16, 17, 11, 0, 246, 240, 242, 251, 4, 11, 10, 4, 253, 248, 251, 2, 9, 13, 12, 8,
+			3, 254, 250, 247, 248, 251, 254, 1, 6, 11, 16, 16, 10, 1, 248, 243, 244, 248, 253, 1, 4, 6, 6, 4, 1, 255, 255, 0, 3, 2,
+			0, 253, 253, 255, 4, 8, 9, 5, 255, 247, 243, 244, 248, 254, 1, 6, 12, 16, 14, 7, 0, 253, 250, 248, 249, 253, 2, 6, 5, 1,
+			255, 0, 2, 2, 0, 254, 253, 255, 0, 0, 0, 0, 0, 254, 253, 253, 1, 6, 11, 11, 7, 0, 245, 238, 239, 247, 0, 6, 9, 9,
+			9, 8, 5, 2, 0, 251, 247, 248, 253, 3, 10, 14, 11, 3, 252, 246, 244, 246, 251, 0, 6, 9, 9, 7, 2, 253, 248, 246, 247, 251,
+			0, 6, 11, 11, 5, 255, 250, 248, 248, 252, 1, 7, 10, 8, 2, 254, 249, 247, 247, 250, 255, 2, 5, 6, 4, 0, 249, 240, 235, 236,
+			245, 5, 26, 43, 48, 39, 18, 248, 227, 221, 233, 4, 38, 66, 75, 60, 26, 244, 212, 196, 199, 218, 248, 16, 27, 19, 0, 232, 216, 210,
+			214, 229, 252, 17, 32, 32, 19, 254, 231, 216, 215, 228, 252, 19, 32, 30, 16, 254, 238, 234, 241, 0, 16, 29, 30, 21, 8, 254, 248, 247,
+			249, 254, 5, 14, 19, 16, 9, 0, 250, 246, 246, 253, 5, 11, 11, 7, 1, 252, 247, 244, 246, 252, 4, 9, 8, 3, 254, 251, 250, 253,
+			0, 1, 3, 4, 4, 3, 3, 1, 0, 254, 254, 0, 4, 5, 5, 3, 2, 1, 0, 0, 0, 3, 5, 6, 5, 2, 0, 252, 251, 252,
+			255, 1, 3, 3, 2, 0, 254, 253, 254, 255, 255, 255, 255, 0, 0, 255, 253, 251, 250, 252, 255, 0, 1, 0, 255, 253, 253, 252, 252, 253,
+			0, 1, 1, 0, 0, 1, 2, 2, 2, 2, 1, 0, 0, 1, 3, 5, 5, 4, 3, 3, 3, 3, 1, 0, 0, 1, 2, 3, 3, 2,
+			2, 1, 0, 0, 0, 1, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 253, 253, 254, 255, 0, 1, 2, 0, 253, 249,
+			247, 249, 253, 0, 4, 4, 4, 4, 4, 3, 1, 254, 251, 249, 250, 254, 1, 3, 3, 3, 2, 0, 0, 0, 0, 2, 3, 2, 0, 0,
+			1, 3, 3, 1, 0, 1, 2, 3, 4, 3, 1, 0, 255, 252, 252, 253, 0, 2, 4, 3, 1, 0, 0, 1, 2, 1, 0, 0, 0, 254,
+			253, 255, 1, 2, 0, 251, 250, 255, 3, 4, 0, 254, 255, 1, 2, 0, 254, 252, 252, 253, 253, 252, 255, 7, 15, 18, 19, 25, 21, 0,
+			232, 235, 6, 26, 5, 216, 200, 241, 41, 58, 27, 252, 5, 44, 55, 13, 207, 179, 145, 0, 4, 0, 69, 0, 208, 0, 128, 2, 160, 5,
+			56, 9, 128, 12, 148, 17, 244, 26, 60, 5, 21, 12, 9, 15, 6, 6, 0, 0, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 44, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 69, 0, 208, 0,
+			128, 2, 160, 5, 56, 9, 128, 12, 148, 17, 244, 26, 45, 5, 22, 12, 9, 16, 6, 6, 0, 0, 187, 125, 137, 137, 150, 175, 187, 125,
+			137, 44, 45, 70, 130, 43, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			69, 0, 192, 0, 24, 2, 80, 5, 136, 9, 128, 12, 148, 17, 244, 26, 40, 9, 19, 25, 25, 19, 6, 6, 0, 0, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 45, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 192, 0, 24, 2, 80, 5, 136, 9, 128, 12, 148, 17, 244, 26, 0, 9, 19, 25, 25, 19, 6, 6, 0, 0,
 			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 45, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 192, 0, 24, 2, 80, 5, 136, 9, 128, 12, 148, 17, 244, 26, 0, 9, 19, 25, 25, 19,
-			6, 6, 0, 0, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 45, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 3, 15, 38, 0, 253, 255, 1, 1, 0, 253, 252, 253, 253, 255, 252, 253, 0, 0,
-			1, 254, 252, 253, 2, 10, 19, 28, 37, 42, 43, 32, 0, 224, 200, 200, 223, 243, 253, 252, 247, 246, 242, 244, 1, 17, 31, 30, 13, 0,
-			245, 241, 248, 255, 6, 9, 9, 12, 13, 15, 16, 11, 6, 0, 251, 248, 245, 245, 244, 242, 242, 242, 247, 255, 7, 14, 14, 8, 255, 248,
-			246, 248, 254, 1, 2, 3, 4, 5, 8, 12, 17, 19, 19, 16, 12, 6, 253, 242, 235, 234, 236, 240, 243, 247, 251, 253, 253, 0, 4, 10,
-			13, 14, 12, 5, 0, 255, 255, 2, 7, 10, 12, 10, 4, 0, 254, 253, 254, 254, 252, 249, 245, 242, 242, 245, 250, 255, 4, 9, 10, 9,
-			8, 6, 5, 5, 4, 3, 2, 0, 253, 252, 252, 251, 253, 255, 1, 5, 7, 8, 5, 1, 251, 247, 248, 251, 1, 3, 1, 0, 255, 0,
-			2, 6, 11, 15, 14, 9, 255, 244, 237, 238, 244, 249, 253, 255, 0, 1, 254, 253, 255, 3, 6, 4, 5, 9, 9, 4, 2, 6, 21, 33,
-			33, 23, 2, 237, 224, 221, 232, 246, 0, 3, 252, 241, 236, 240, 252, 7, 15, 18, 14, 4, 252, 248, 252, 1, 5, 6, 8, 10, 12, 12,
-			12, 9, 5, 255, 250, 249, 251, 252, 253, 250, 247, 245, 247, 253, 4, 8, 8, 4, 254, 249, 247, 250, 255, 1, 3, 3, 1, 1, 0, 3,
-			6, 9, 10, 10, 8, 4, 2, 0, 0, 0, 0, 255, 252, 251, 250, 252, 254, 253, 254, 254, 0, 255, 253, 252, 252, 254, 255, 0, 4, 10,
-			12, 12, 9, 5, 3, 1, 1, 1, 1, 0, 253, 249, 247, 249, 251, 0, 3, 4, 0, 253, 251, 252, 255, 1, 2, 4, 6, 4, 4, 3,
-			3, 4, 2, 0, 255, 0, 2, 0, 254, 250, 247, 247, 250, 0, 7, 9, 7, 5, 2, 0, 0, 0, 3, 6, 4, 0, 254, 252, 252, 252,
-			254, 1, 6, 9, 6, 3, 2, 254, 247, 246, 248, 252, 254, 252, 249, 250, 252, 254, 0, 6, 11, 9, 5, 2, 0, 6, 10, 17, 29, 33,
-			22, 5, 240, 231, 231, 236, 246, 252, 253, 253, 244, 241, 244, 250, 4, 11, 10, 8, 0, 253, 252, 251, 0, 4, 7, 11, 11, 12, 14, 11,
-			9, 5, 0, 255, 251, 250, 251, 250, 250, 250, 250, 253, 0, 3, 6, 5, 2, 254, 247, 245, 246, 250, 255, 1, 3, 4, 5, 6, 7, 9,
-			11, 9, 6, 2, 0, 253, 255, 3, 3, 2, 3, 255, 246, 246, 249, 254, 2, 255, 253, 253, 255, 252, 249, 0, 5, 7, 6, 4, 6, 8,
-			6, 4, 3, 2, 2, 2, 1, 0, 0, 254, 250, 247, 246, 249, 254, 2, 2, 0, 0, 255, 254, 0, 3, 7, 9, 9, 5, 2, 0, 0,
-			0, 0, 0, 0, 255, 254, 253, 252, 252, 253, 255, 1, 4, 5, 4, 5, 3, 1, 1, 255, 254, 255, 253, 254, 0, 2, 5, 7, 4, 1,
-			1, 1, 1, 0, 255, 253, 253, 253, 251, 251, 255, 4, 6, 7, 2, 255, 250, 246, 245, 247, 253, 0, 0, 0, 1, 2, 6, 9, 14, 21,
-			26, 28, 22, 8, 250, 237, 231, 232, 238, 248, 0, 1, 0, 253, 252, 254, 0, 2, 3, 1, 254, 249, 246, 248, 251, 0, 7, 13, 18, 20,
-			19, 15, 9, 2, 253, 247, 244, 245, 247, 251, 254, 0, 0, 0, 1, 4, 6, 7, 6, 1, 251, 245, 242, 242, 247, 254, 4, 10, 13, 13,
-			9, 6, 3, 2, 2, 1, 1, 0, 254, 254, 255, 0, 3, 1, 253, 250, 252, 255, 0, 0, 1, 0, 253, 247, 246, 253, 3, 8, 11, 13,
-			11, 6, 1, 254, 255, 0, 0, 0, 0, 255, 253, 252, 253, 254, 0, 0, 1, 0, 1, 0, 253, 250, 250, 254, 1, 6, 8, 8, 7, 5,
-			0, 255, 0, 1, 2, 2, 2, 0, 254, 250, 250, 252, 0, 2, 1, 0, 0, 0, 0, 0, 2, 5, 5, 1, 255, 254, 253, 254, 0, 1,
-			3, 3, 3, 3, 4, 5, 3, 3, 0, 252, 250, 252, 255, 1, 2, 0, 254, 253, 253, 251, 255, 2, 4, 5, 0, 250, 249, 251, 254, 0,
-			4, 6, 6, 6, 7, 10, 16, 21, 18, 9, 0, 244, 237, 236, 238, 246, 255, 1, 4, 5, 4, 3, 0, 0, 254, 252, 252, 250, 250, 253,
-			252, 254, 3, 7, 13, 16, 14, 12, 7, 2, 253, 248, 247, 249, 251, 253, 255, 0, 3, 4, 5, 6, 5, 3, 255, 251, 248, 248, 249, 251,
-			253, 0, 1, 3, 6, 8, 8, 8, 7, 5, 1, 255, 254, 253, 253, 254, 255, 1, 4, 4, 2, 254, 252, 252, 251, 248, 248, 254, 2, 3,
-			2, 2, 4, 6, 7, 7, 9, 7, 0, 250, 247, 251, 0, 2, 2, 1, 0, 254, 0, 2, 4, 3, 0, 248, 245, 247, 252, 0, 4, 6,
-			6, 5, 5, 6, 11, 13, 6, 251, 242, 245, 254, 1, 3, 0, 0, 253, 246, 253, 0, 5, 8, 4, 254, 251, 253, 252, 6, 11, 12, 11,
-			255, 246, 251, 255, 255, 255, 0, 3, 1, 254, 3, 5, 4, 5, 2, 0, 3, 252, 245, 247, 250, 251, 5, 10, 7, 7, 6, 2, 0, 254,
-			253, 251, 248, 244, 243, 249, 0, 1, 8, 15, 12, 11, 12, 11, 13, 14, 5, 252, 247, 240, 240, 246, 251, 2, 8, 8, 4, 0, 0, 0,
-			253, 252, 248, 245, 247, 247, 251, 2, 7, 7, 11, 9, 10, 11, 9, 5, 1, 254, 250, 249, 249, 251, 255, 2, 4, 6, 6, 5, 1, 254,
-			250, 248, 251, 253, 253, 0, 0, 0, 3, 2, 1, 5, 6, 4, 4, 3, 2, 2, 1, 0, 255, 254, 255, 1, 4, 5, 4, 1, 251, 245,
-			242, 243, 251, 3, 6, 8, 5, 254, 251, 255, 4, 8, 10, 8, 2, 0, 254, 250, 1, 4, 1, 254, 254, 1, 4, 4, 0, 255, 249, 240,
-			243, 251, 5, 16, 14, 9, 4, 1, 252, 244, 251, 5, 9, 14, 7, 0, 254, 241, 236, 255, 3, 3, 10, 3, 252, 1, 2, 249, 245, 252,
-			16, 23, 13, 253, 244, 233, 240, 1, 3, 17, 28, 0, 254, 12, 4, 254, 3, 250, 244, 3, 251, 233, 239, 5, 9, 3, 16, 22, 7, 6,
-			241, 228, 255, 16, 5, 254, 253, 244, 248, 248, 6, 20, 11, 3, 244, 232, 251, 5, 10, 13, 6, 246, 245, 0, 15, 30, 38, 30, 4, 239,
-			230, 224, 228, 249, 6, 8, 10, 5, 252, 255, 2, 1, 254, 251, 246, 249, 251, 254, 6, 5, 2, 5, 3, 4, 12, 15, 10, 6, 1, 246,
-			239, 243, 250, 251, 255, 2, 2, 7, 9, 7, 9, 4, 255, 252, 249, 250, 0, 1, 253, 1, 2, 254, 0, 10, 13, 11, 13, 6, 251, 242,
-			251, 254, 248, 0, 6, 252, 246, 254, 254, 254, 10, 9, 252, 250, 253, 242, 239, 0, 17, 10, 6, 27, 23, 0, 3, 7, 251, 238, 243, 250,
-			247, 10, 8, 245, 247, 4, 0, 251, 20, 32, 10, 252, 248, 236, 236, 238, 233, 243, 32, 15, 2, 29, 3, 248, 5, 15, 0, 1, 27, 242,
-			239, 213, 196, 253, 20, 37, 79, 92, 5, 232, 236, 200, 180, 193, 4, 26, 12, 21, 25, 12, 19, 28, 235, 255, 36, 3, 237, 236, 235, 227,
-			223, 228, 248, 28, 64, 58, 39, 28, 255, 221, 205, 201, 210, 246, 255, 254, 18, 32, 23, 12, 21, 30, 30, 13, 249, 245, 246, 240, 223, 236,
-			255, 2, 14, 21, 21, 20, 22, 255, 235, 232, 231, 230, 239, 248, 3, 8, 7, 6, 8, 10, 9, 6, 2, 3, 0, 248, 242, 244, 251, 0,
-			7, 14, 19, 20, 14, 6, 250, 245, 241, 240, 240, 247, 3, 9, 9, 10, 8, 8, 6, 3, 2, 1, 251, 249, 249, 248, 248, 250, 1, 10,
-			17, 23, 16, 9, 4, 247, 235, 230, 232, 238, 251, 2, 7, 8, 9, 5, 6, 3, 3, 5, 6, 7, 2, 254, 251, 1, 253, 252, 7, 19,
-			11, 5, 0, 251, 254, 239, 232, 242, 4, 1, 253, 10, 16, 13, 253, 251, 9, 6, 1, 0, 254, 254, 242, 241, 18, 27, 249, 243, 12, 7,
-			251, 255, 255, 4, 255, 232, 231, 255, 14, 23, 15, 3, 11, 18, 246, 232, 247, 251, 0, 0, 0, 12, 17, 1, 243, 248, 2, 0, 2, 4,
-			4, 255, 247, 240, 250, 8, 16, 16, 8, 3, 255, 249, 245, 247, 247, 247, 245, 252, 5, 12, 11, 13, 19, 16, 8, 0, 253, 0, 2, 254,
-			248, 248, 247, 247, 248, 0, 10, 16, 15, 9, 1, 249, 244, 237, 239, 250, 0, 4, 7, 4, 5, 6, 2, 2, 0, 2, 1, 0, 0, 255,
-			0, 1, 255, 0, 2, 2, 2, 5, 5, 1, 255, 253, 253, 251, 253, 1, 1, 1, 2, 1, 4, 2, 254, 253, 0, 1, 3, 2, 1, 2,
-			3, 3, 0, 1, 5, 6, 3, 254, 248, 244, 242, 243, 248, 253, 4, 10, 13, 10, 5, 6, 2, 0, 7, 4, 0, 0, 248, 243, 248, 0,
-			8, 12, 9, 2, 2, 254, 250, 255, 0, 254, 250, 246, 246, 255, 3, 2, 12, 12, 5, 1, 0, 252, 3, 9, 3, 1, 0, 252, 247, 251,
-			4, 7, 15, 10, 255, 255, 250, 241, 241, 247, 248, 255, 3, 254, 0, 9, 14, 13, 12, 11, 7, 3, 252, 245, 251, 0, 253, 254, 253, 251,
-			252, 254, 255, 2, 6, 7, 7, 3, 253, 247, 250, 254, 5, 10, 13, 7, 1, 249, 251, 253, 254, 2, 3, 0, 252, 251, 251, 0, 2, 4,
-			3, 3, 0, 254, 255, 253, 1, 0, 0, 4, 2, 2, 4, 3, 2, 11, 13, 5, 255, 248, 247, 248, 248, 250, 255, 3, 5, 6, 4, 3,
-			3, 254, 249, 249, 251, 0, 2, 1, 0, 2, 255, 255, 3, 5, 4, 10, 9, 2, 254, 251, 245, 250, 255, 4, 4, 4, 5, 0, 252, 255,
-			4, 3, 255, 0, 252, 255, 1, 1, 3, 4, 8, 5, 254, 254, 0, 254, 253, 4, 2, 0, 0, 246, 247, 0, 5, 4, 9, 3, 3, 249,
-			240, 244, 0, 0, 8, 21, 11, 1, 255, 253, 251, 3, 9, 9, 255, 249, 238, 233, 237, 251, 2, 17, 24, 24, 7, 254, 254, 3, 11, 15,
-			6, 252, 2, 23, 46, 235, 133, 179, 224, 23, 75, 51, 25, 25, 234, 202, 2, 36, 20, 15, 251, 219, 230, 243, 237, 2, 33, 20, 6, 5,
-			2, 2, 14, 0, 242, 243, 238, 231, 249, 11, 31, 41, 32, 1, 244, 237, 237, 240, 248, 252, 251, 250, 250, 3, 18, 29, 26, 13, 246, 241,
-			246, 247, 244, 252, 0, 253, 0, 255, 5, 13, 6, 1, 7, 2, 0, 245, 246, 255, 3, 255, 247, 250, 4, 15, 20, 29, 31, 12, 246, 230,
-			226, 232, 243, 3, 14, 17, 13, 7, 0, 1, 2, 250, 244, 238, 237, 245, 1, 8, 14, 18, 7, 253, 251, 0, 6, 9, 8, 0, 246, 240,
-			242, 246, 3, 12, 13, 13, 10, 4, 4, 4, 0, 252, 246, 242, 245, 252, 3, 10, 12, 7, 3, 2, 4, 7, 9, 5, 255, 252, 253, 255,
-			253, 252, 248, 248, 250, 249, 255, 254, 255, 254, 255, 0, 1, 5, 5, 7, 8, 3, 1, 253, 251, 254, 13, 15, 10, 10, 255, 244, 247, 253,
-			2, 4, 4, 249, 244, 247, 250, 255, 9, 8, 0, 0, 4, 0, 0, 1, 254, 2, 7, 3, 0, 6, 7, 252, 251, 249, 253, 251, 3, 4,
-			10, 10, 246, 232, 248, 9, 11, 14, 27, 14, 246, 227, 222, 249, 12, 11, 18, 22, 6, 247, 244, 254, 1, 251, 240, 233, 246, 254, 254, 2,
-			0, 7, 3, 0, 2, 20, 33, 38, 32, 21, 4, 240, 226, 222, 237, 2, 6, 8, 10, 7, 6, 6, 1, 255, 247, 236, 222, 223, 239, 252,
-			8, 20, 20, 12, 3, 255, 0, 7, 11, 4, 249, 243, 242, 243, 252, 10, 20, 21, 12, 4, 5, 6, 4, 0, 250, 249, 250, 252, 0, 4,
-			8, 9, 2, 0, 0, 1, 255, 253, 249, 246, 248, 248, 252, 1, 8, 15, 15, 12, 6, 255, 249, 241, 240, 242, 242, 252, 0, 3, 13, 11,
-			10, 4, 254, 0, 2, 5, 6, 2, 253, 244, 244, 0, 5, 10, 17, 13, 7, 9, 254, 243, 240, 242, 242, 245, 2, 17, 24, 11, 250, 231,
-			240, 10, 7, 4, 3, 2, 9, 16, 15, 20, 28, 246, 208, 197, 230, 6, 16, 28, 31, 9, 254, 244, 226, 244, 17, 19, 6, 11, 7, 246,
-			232, 228, 245, 10, 27, 20, 12, 13, 5, 254, 254, 249, 250, 249, 241, 237, 248, 0, 5, 14, 16, 18, 12, 254, 244, 246, 246, 242, 242, 245,
-			254, 8, 15, 14, 14, 14, 4, 253, 252, 6, 14, 16, 11, 0, 247, 237, 231, 239, 255, 11, 19, 21, 16, 11, 1, 247, 236, 232, 232, 233,
-			241, 0, 12, 22, 24, 18, 7, 251, 244, 247, 252, 5, 12, 11, 253, 245, 247, 249, 2, 10, 16, 13, 4, 253, 251, 1, 0, 255, 255, 249,
-			244, 248, 0, 4, 19, 14, 255, 253, 253, 245, 251, 1, 4, 10, 7, 0, 253, 3, 0, 9, 6, 255, 252, 244, 238, 244, 250, 5, 3, 254,
-			0, 0, 4, 24, 23, 23, 13, 255, 246, 244, 242, 246, 236, 239, 0, 5, 245, 4, 14, 17, 20, 6, 249, 0, 12, 253, 247, 255, 251, 253,
-			248, 0, 4, 12, 13, 4, 1, 4, 249, 250, 243, 249, 2, 253, 251, 252, 9, 15, 18, 9, 7, 2, 247, 240, 237, 243, 254, 2, 9, 12,
-			13, 9, 8, 9, 9, 0, 243, 233, 237, 245, 255, 7, 10, 1, 4, 10, 10, 12, 14, 3, 241, 239, 240, 249, 8, 16, 8, 251, 248, 245,
-			253, 17, 25, 12, 1, 239, 226, 225, 245, 4, 14, 18, 16, 6, 255, 255, 253, 255, 6, 6, 1, 1, 10, 14, 15, 10, 0, 249, 244, 241,
-			245, 0, 9, 8, 5, 1, 255, 251, 250, 248, 246, 248, 248, 249, 0, 8, 13, 11, 7, 0, 250, 247, 253, 3, 7, 10, 4, 252, 253, 0,
-			0, 4, 8, 4, 1, 0, 254, 2, 4, 255, 249, 245, 248, 253, 8, 19, 25, 19, 4, 245, 238, 238, 247, 5, 12, 13, 6, 253, 251, 253,
-			255, 255, 254, 0, 252, 245, 246, 250, 0, 0, 3, 6, 6, 7, 4, 2, 1, 1, 254, 249, 249, 247, 250, 0, 4, 8, 16, 15, 17, 21,
-			33, 35, 23, 255, 228, 203, 181, 175, 214, 16, 67, 82, 56, 8, 227, 212, 208, 241, 31, 60, 45, 12, 236, 207, 213, 226, 235, 11, 43, 39,
-			34, 34, 23, 250, 225, 212, 205, 225, 249, 5, 24, 36, 36, 20, 7, 249, 236, 241, 239, 248, 5, 12, 6, 253, 245, 241, 233, 239, 244, 2,
-			21, 28, 26, 14, 253, 248, 253, 10, 22, 39, 40, 26, 2, 239, 231, 234, 244, 249, 249, 254, 254, 255, 0, 0, 254, 246, 239, 233, 238, 249,
-			3, 11, 11, 7, 254, 245, 245, 254, 10, 21, 20, 10, 255, 248, 246, 250, 1, 8, 15, 15, 8, 3, 1, 6, 8, 11, 6, 0, 251, 246,
-			248, 250, 253, 254, 0, 0, 2, 5, 11, 10, 9, 2, 248, 237, 230, 232, 237, 247, 253, 1, 4, 8, 13, 14, 13, 16, 10, 2, 248, 246,
-			249, 255, 1, 8, 11, 9, 6, 2, 255, 0, 5, 5, 1, 252, 242, 244, 245, 244, 255, 8, 13, 13, 9, 7, 3, 253, 250, 249, 242, 246,
-			253, 5, 4, 10, 8, 0, 253, 8, 10, 0, 2, 249, 237, 240, 252, 9, 5, 0, 8, 12, 9, 21, 38, 19, 250, 226, 203, 211, 231, 250,
-			24, 34, 27, 7, 245, 231, 237, 255, 250, 255, 11, 10, 7, 8, 18, 37, 45, 30, 7, 252, 234, 222, 230, 245, 11, 15, 4, 247, 242, 251,
-			0, 3, 8, 1, 249, 235, 224, 233, 244, 250, 0, 3, 9, 11, 14, 18, 20, 18, 11, 251, 240, 236, 242, 0, 10, 17, 21, 17, 12, 7,
-			6, 6, 2, 0, 252, 247, 248, 245, 241, 244, 252, 0, 6, 9, 10, 10, 8, 255, 251, 247, 245, 245, 247, 251, 5, 10, 6, 5, 254, 251,
-			253, 1, 2, 3, 1, 255, 252, 252, 254, 4, 7, 2, 253, 255, 7, 17, 19, 12, 12, 6, 243, 222, 231, 246, 0, 11, 18, 19, 10, 249,
-			234, 237, 1, 19, 18, 4, 242, 233, 237, 248, 13, 23, 24, 18, 5, 250, 247, 246, 250, 3, 254, 247, 255, 0, 255, 3, 1, 255, 6, 6,
-			11, 20, 10, 255, 247, 239, 242, 0, 252, 252, 6, 10, 0, 3, 0, 1, 11, 7, 251, 247, 252, 244, 250, 1, 10, 10, 0, 247, 244, 253,
-			4, 1, 255, 1, 2, 0, 0, 255, 6, 16, 13, 15, 18, 23, 13, 254, 245, 239, 241, 245, 245, 254, 6, 5, 2, 2, 0, 0, 253, 245,
-			241, 243, 246, 247, 253, 1, 8, 7, 5, 5, 4, 7, 7, 11, 7, 4, 254, 247, 247, 252, 3, 11, 11, 3, 1, 0, 0, 3, 7, 6,
-			0, 253, 251, 0, 0, 251, 249, 255, 253, 1, 13, 13, 12, 8, 248, 240, 241, 238, 242, 252, 255, 2, 5, 0, 255, 10, 15, 7, 6, 10,
-			2, 251, 251, 0, 5, 249, 252, 248, 253, 0, 33, 20, 8, 3, 240, 235, 244, 253, 2, 7, 249, 8, 19, 2, 1, 252, 240, 237, 232, 254,
-			24, 34, 26, 11, 248, 238, 245, 240, 11, 23, 21, 7, 1, 245, 225, 213, 239, 15, 22, 26, 16, 249, 250, 241, 243, 255, 5, 13, 7, 16,
-			5, 246, 235, 253, 255, 9, 26, 19, 16, 2, 240, 230, 237, 253, 253, 237, 226, 0, 11, 24, 24, 21, 1, 251, 249, 241, 252, 12, 4, 4,
-			9, 6, 8, 29, 31, 13, 250, 235, 231, 240, 6, 10, 4, 3, 252, 234, 232, 251, 2, 7, 8, 7, 250, 248, 243, 239, 248, 0, 0, 2,
-			11, 11, 11, 13, 6, 2, 253, 249, 247, 250, 3, 6, 9, 6, 8, 3, 3, 5, 9, 11, 6, 0, 248, 245, 243, 247, 3, 10, 10, 8,
-			10, 6, 1, 1, 0, 1, 251, 244, 231, 226, 230, 239, 250, 3, 13, 20, 20, 10, 8, 6, 6, 2, 254, 250, 252, 255, 1, 11, 16, 15,
-			11, 2, 1, 1, 0, 247, 240, 236, 235, 240, 247, 1, 13, 17, 17, 10, 5, 6, 6, 3, 6, 4, 255, 245, 241, 247, 252, 5, 7, 6,
-			1, 253, 252, 245, 240, 253, 11, 12, 12, 6, 2, 1, 0, 5, 7, 10, 2, 247, 243, 237, 235, 248, 252, 254, 0, 255, 250, 249, 250, 255,
-			248, 252, 0, 10, 17, 24, 32, 45, 55, 58, 47, 17, 236, 205, 203, 226, 2, 18, 14, 248, 222, 213, 218, 238, 0, 13, 11, 0, 247, 238,
-			234, 236, 241, 247, 251, 4, 17, 34, 45, 42, 20, 253, 236, 234, 237, 253, 10, 16, 15, 11, 7, 11, 21, 27, 26, 14, 3, 249, 238, 233,
-			231, 231, 239, 245, 0, 10, 20, 26, 18, 3, 233, 212, 211, 218, 231, 247, 9, 24, 26, 27, 24, 24, 22, 21, 16, 3, 248, 239, 235, 236,
-			238, 249, 4, 11, 18, 18, 16, 12, 7, 252, 238, 232, 225, 228, 241, 4, 24, 36, 34, 22, 12, 255, 245, 246, 245, 245, 244, 242, 245, 249,
-			0, 10, 11, 7, 2, 2, 13, 11, 0, 246, 244, 240, 243, 8, 26, 24, 20, 9, 2, 5, 250, 234, 227, 226, 218, 224, 236, 237, 11, 27,
-			26, 18, 14, 13, 14, 18, 33, 49, 60, 44, 8, 232, 202, 198, 216, 248, 23, 43, 38, 14, 247, 234, 231, 231, 225, 220, 223, 227, 237, 250,
-			4, 16, 17, 11, 3, 0, 8, 17, 24, 22, 10, 0, 237, 230, 232, 247, 13, 29, 38, 37, 33, 22, 6, 253, 243, 238, 237, 238, 246, 6,
-			17, 14, 10, 3, 254, 253, 250, 251, 255, 253, 246, 228, 220, 219, 225, 238, 255, 15, 27, 36, 37, 25, 13, 5, 0, 251, 249, 0, 2, 2,
-			5, 4, 3, 0, 250, 248, 250, 255, 250, 247, 3, 248, 237, 251, 3, 14, 33, 34, 19, 7, 1, 255, 247, 252, 255, 240, 235, 250, 244, 246,
-			3, 250, 244, 12, 21, 15, 4, 253, 3, 6, 242, 233, 254, 19, 30, 17, 3, 4, 9, 249, 234, 236, 246, 0, 0, 255, 0, 5, 6, 2,
-			4, 9, 1, 251, 248, 241, 235, 240, 239, 251, 11, 9, 4, 13, 21, 21, 26, 29, 27, 22, 10, 247, 230, 230, 238, 241, 252, 7, 12, 12,
-			11, 7, 3, 255, 244, 232, 226, 226, 231, 240, 250, 2, 8, 10, 11, 12, 13, 15, 16, 13, 8, 1, 252, 249, 247, 247, 250, 253, 0, 10,
-			19, 25, 21, 14, 3, 249, 239, 240, 244, 248, 255, 6, 10, 13, 16, 13, 7, 0, 248, 247, 240, 238, 240, 241, 241, 245, 248, 252, 2, 9,
-			15, 19, 13, 6, 1, 253, 248, 249, 0, 6, 3, 9, 14, 10, 14, 18, 1, 252, 252, 244, 243, 251, 239, 250, 5, 0, 4, 25, 7, 6,
-			255, 228, 245, 5, 13, 4, 247, 246, 2, 251, 17, 18, 5, 8, 253, 229, 233, 5, 9, 8, 6, 234, 235, 0, 8, 27, 37, 19, 8, 255,
-			242, 236, 0, 254, 247, 250, 250, 247, 6, 0, 2, 16, 7, 245, 7, 250, 241, 2, 0, 247, 1, 0, 254, 4, 7, 253, 255, 7, 15, 15,
-			21, 25, 17, 6, 248, 235, 237, 244, 247, 2, 8, 8, 6, 4, 2, 254, 247, 240, 234, 235, 243, 253, 4, 4, 7, 8, 3, 3, 6, 6,
-			6, 6, 4, 2, 255, 250, 247, 249, 250, 255, 7, 11, 13, 16, 15, 8, 1, 251, 250, 250, 250, 247, 248, 250, 0, 8, 13, 13, 12, 5,
-			255, 253, 0, 2, 4, 6, 5, 253, 240, 234, 236, 239, 240, 245, 255, 7, 11, 13, 16, 11, 5, 0, 251, 251, 1, 5, 6, 12, 16, 11,
-			0, 249, 243, 249, 2, 9, 7, 6, 3, 244, 240, 246, 248, 1, 16, 3, 0, 9, 6, 245, 253, 254, 246, 251, 11, 17, 16, 12, 4, 246,
-			245, 255, 252, 238, 0, 12, 0, 5, 6, 253, 3, 13, 245, 243, 7, 8, 249, 1, 254, 0, 49, 0, 3, 0, 5, 0, 76, 0, 44, 1,
-			20, 5, 84, 11, 112, 13, 135, 15, 160, 28, 10, 33, 11, 58, 50, 34, 55, 26, 13, 0, 150, 120, 120, 120, 120, 120, 90, 120, 75, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
-			124, 0, 184, 1, 20, 5, 84, 11, 52, 13, 110, 15, 160, 28, 39, 44, 29, 70, 56, 46, 61, 29, 14, 0, 120, 120, 120, 120, 120, 120,
-			60, 60, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 208, 0, 13, 2, 106, 5, 84, 11, 168, 12, 141, 14, 160, 28, 0, 90, 41, 72, 106, 78, 67, 41, 24, 0, 120, 135,
-			150, 120, 120, 120, 120, 165, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 45, 0, 2, 0, 5, 0, 148, 0, 120, 1, 100, 5, 84, 11, 32, 13, 135, 15, 224, 28, 45, 35, 32, 58,
-			36, 40, 51, 27, 10, 0, 102, 105, 127, 120, 120, 120, 102, 90, 127, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 1, 7, 3, 153, 4, 84, 11, 208, 12, 241, 14, 224, 28,
-			0, 101, 47, 95, 101, 61, 67, 43, 20, 0, 195, 135, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 45, 0, 2, 0, 5, 0, 208, 0, 249, 1, 160, 5,
-			84, 11, 52, 13, 135, 15, 192, 28, 45, 35, 33, 58, 48, 44, 49, 28, 11, 0, 150, 120, 120, 120, 120, 120, 90, 120, 120, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0,
-			53, 2, 172, 5, 84, 11, 12, 13, 35, 15, 192, 28, 0, 98, 43, 86, 110, 84, 80, 43, 13, 0, 120, 120, 120, 120, 120, 120, 90, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			65, 0, 3, 0, 1, 0, 104, 0, 44, 1, 200, 5, 84, 11, 12, 13, 135, 15, 32, 28, 0, 31, 17, 53, 34, 32, 55, 26, 8, 0,
-			150, 120, 150, 120, 120, 120, 120, 105, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 184, 1, 84, 6, 84, 11, 92, 13, 210, 15, 32, 28, 65, 34, 21, 63, 48, 43,
-			41, 21, 7, 0, 150, 105, 150, 120, 120, 120, 120, 45, 150, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 104, 1, 152, 8, 84, 11, 32, 13, 210, 15, 32, 28, 0, 76,
-			20, 78, 80, 78, 76, 34, 10, 0, 150, 150, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 4, 0, 5, 0, 92, 0, 69, 1, 76, 4, 84, 11,
-			72, 13, 241, 14, 160, 28, 20, 32, 20, 64, 39, 19, 26, 31, 13, 0, 150, 105, 105, 120, 120, 120, 90, 90, 75, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 92, 0, 69, 1,
-			232, 3, 84, 11, 168, 12, 141, 14, 32, 27, 9, 40, 22, 69, 49, 42, 33, 29, 14, 0, 150, 105, 105, 120, 120, 120, 90, 90, 75, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			156, 0, 189, 1, 200, 3, 84, 11, 148, 12, 191, 14, 32, 27, 36, 51, 31, 74, 65, 42, 39, 24, 19, 0, 150, 120, 105, 120, 120, 120,
-			90, 90, 75, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 124, 0, 209, 1, 112, 3, 84, 11, 68, 12, 191, 14, 160, 26, 0, 145, 39, 116, 103, 71, 71, 45, 26, 0, 120, 120,
-			120, 120, 120, 120, 75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 51, 0, 3, 0, 5, 0, 92, 0, 19, 1, 120, 5, 84, 11, 52, 13, 216, 14, 128, 27, 12, 33, 10, 60,
-			36, 40, 59, 33, 11, 0, 150, 105, 135, 120, 120, 120, 75, 75, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 172, 0, 144, 1, 80, 5, 84, 11, 32, 13, 191, 14, 224, 26,
-			39, 45, 35, 70, 52, 50, 58, 33, 15, 0, 150, 105, 150, 120, 120, 120, 75, 60, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 144, 1, 70, 6, 84, 11, 228, 12,
-			141, 14, 224, 26, 0, 116, 48, 135, 71, 71, 67, 43, 17, 0, 120, 90, 150, 120, 120, 120, 45, 60, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 188, 0,
-			8, 2, 40, 5, 140, 10, 128, 12, 91, 14, 0, 27, 34, 69, 36, 83, 77, 49, 57, 38, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90,
+			0, 0, 0, 0, 0, 250, 0, 0, 3, 15, 38, 0, 253, 255, 1, 1, 0, 253, 252, 253, 253, 255, 252, 253, 0, 0, 1, 254, 252, 253,
+			2, 10, 19, 28, 37, 42, 43, 32, 0, 224, 200, 200, 223, 243, 253, 252, 247, 246, 242, 244, 1, 17, 31, 30, 13, 0, 245, 241, 248, 255,
+			6, 9, 9, 12, 13, 15, 16, 11, 6, 0, 251, 248, 245, 245, 244, 242, 242, 242, 247, 255, 7, 14, 14, 8, 255, 248, 246, 248, 254, 1,
+			2, 3, 4, 5, 8, 12, 17, 19, 19, 16, 12, 6, 253, 242, 235, 234, 236, 240, 243, 247, 251, 253, 253, 0, 4, 10, 13, 14, 12, 5,
+			0, 255, 255, 2, 7, 10, 12, 10, 4, 0, 254, 253, 254, 254, 252, 249, 245, 242, 242, 245, 250, 255, 4, 9, 10, 9, 8, 6, 5, 5,
+			4, 3, 2, 0, 253, 252, 252, 251, 253, 255, 1, 5, 7, 8, 5, 1, 251, 247, 248, 251, 1, 3, 1, 0, 255, 0, 2, 6, 11, 15,
+			14, 9, 255, 244, 237, 238, 244, 249, 253, 255, 0, 1, 254, 253, 255, 3, 6, 4, 5, 9, 9, 4, 2, 6, 21, 33, 33, 23, 2, 237,
+			224, 221, 232, 246, 0, 3, 252, 241, 236, 240, 252, 7, 15, 18, 14, 4, 252, 248, 252, 1, 5, 6, 8, 10, 12, 12, 12, 9, 5, 255,
+			250, 249, 251, 252, 253, 250, 247, 245, 247, 253, 4, 8, 8, 4, 254, 249, 247, 250, 255, 1, 3, 3, 1, 1, 0, 3, 6, 9, 10, 10,
+			8, 4, 2, 0, 0, 0, 0, 255, 252, 251, 250, 252, 254, 253, 254, 254, 0, 255, 253, 252, 252, 254, 255, 0, 4, 10, 12, 12, 9, 5,
+			3, 1, 1, 1, 1, 0, 253, 249, 247, 249, 251, 0, 3, 4, 0, 253, 251, 252, 255, 1, 2, 4, 6, 4, 4, 3, 3, 4, 2, 0,
+			255, 0, 2, 0, 254, 250, 247, 247, 250, 0, 7, 9, 7, 5, 2, 0, 0, 0, 3, 6, 4, 0, 254, 252, 252, 252, 254, 1, 6, 9,
+			6, 3, 2, 254, 247, 246, 248, 252, 254, 252, 249, 250, 252, 254, 0, 6, 11, 9, 5, 2, 0, 6, 10, 17, 29, 33, 22, 5, 240, 231,
+			231, 236, 246, 252, 253, 253, 244, 241, 244, 250, 4, 11, 10, 8, 0, 253, 252, 251, 0, 4, 7, 11, 11, 12, 14, 11, 9, 5, 0, 255,
+			251, 250, 251, 250, 250, 250, 250, 253, 0, 3, 6, 5, 2, 254, 247, 245, 246, 250, 255, 1, 3, 4, 5, 6, 7, 9, 11, 9, 6, 2,
+			0, 253, 255, 3, 3, 2, 3, 255, 246, 246, 249, 254, 2, 255, 253, 253, 255, 252, 249, 0, 5, 7, 6, 4, 6, 8, 6, 4, 3, 2,
+			2, 2, 1, 0, 0, 254, 250, 247, 246, 249, 254, 2, 2, 0, 0, 255, 254, 0, 3, 7, 9, 9, 5, 2, 0, 0, 0, 0, 0, 0,
+			255, 254, 253, 252, 252, 253, 255, 1, 4, 5, 4, 5, 3, 1, 1, 255, 254, 255, 253, 254, 0, 2, 5, 7, 4, 1, 1, 1, 1, 0,
+			255, 253, 253, 253, 251, 251, 255, 4, 6, 7, 2, 255, 250, 246, 245, 247, 253, 0, 0, 0, 1, 2, 6, 9, 14, 21, 26, 28, 22, 8,
+			250, 237, 231, 232, 238, 248, 0, 1, 0, 253, 252, 254, 0, 2, 3, 1, 254, 249, 246, 248, 251, 0, 7, 13, 18, 20, 19, 15, 9, 2,
+			253, 247, 244, 245, 247, 251, 254, 0, 0, 0, 1, 4, 6, 7, 6, 1, 251, 245, 242, 242, 247, 254, 4, 10, 13, 13, 9, 6, 3, 2,
+			2, 1, 1, 0, 254, 254, 255, 0, 3, 1, 253, 250, 252, 255, 0, 0, 1, 0, 253, 247, 246, 253, 3, 8, 11, 13, 11, 6, 1, 254,
+			255, 0, 0, 0, 0, 255, 253, 252, 253, 254, 0, 0, 1, 0, 1, 0, 253, 250, 250, 254, 1, 6, 8, 8, 7, 5, 0, 255, 0, 1,
+			2, 2, 2, 0, 254, 250, 250, 252, 0, 2, 1, 0, 0, 0, 0, 0, 2, 5, 5, 1, 255, 254, 253, 254, 0, 1, 3, 3, 3, 3,
+			4, 5, 3, 3, 0, 252, 250, 252, 255, 1, 2, 0, 254, 253, 253, 251, 255, 2, 4, 5, 0, 250, 249, 251, 254, 0, 4, 6, 6, 6,
+			7, 10, 16, 21, 18, 9, 0, 244, 237, 236, 238, 246, 255, 1, 4, 5, 4, 3, 0, 0, 254, 252, 252, 250, 250, 253, 252, 254, 3, 7,
+			13, 16, 14, 12, 7, 2, 253, 248, 247, 249, 251, 253, 255, 0, 3, 4, 5, 6, 5, 3, 255, 251, 248, 248, 249, 251, 253, 0, 1, 3,
+			6, 8, 8, 8, 7, 5, 1, 255, 254, 253, 253, 254, 255, 1, 4, 4, 2, 254, 252, 252, 251, 248, 248, 254, 2, 3, 2, 2, 4, 6,
+			7, 7, 9, 7, 0, 250, 247, 251, 0, 2, 2, 1, 0, 254, 0, 2, 4, 3, 0, 248, 245, 247, 252, 0, 4, 6, 6, 5, 5, 6,
+			11, 13, 6, 251, 242, 245, 254, 1, 3, 0, 0, 253, 246, 253, 0, 5, 8, 4, 254, 251, 253, 252, 6, 11, 12, 11, 255, 246, 251, 255,
+			255, 255, 0, 3, 1, 254, 3, 5, 4, 5, 2, 0, 3, 252, 245, 247, 250, 251, 5, 10, 7, 7, 6, 2, 0, 254, 253, 251, 248, 244,
+			243, 249, 0, 1, 8, 15, 12, 11, 12, 11, 13, 14, 5, 252, 247, 240, 240, 246, 251, 2, 8, 8, 4, 0, 0, 0, 253, 252, 248, 245,
+			247, 247, 251, 2, 7, 7, 11, 9, 10, 11, 9, 5, 1, 254, 250, 249, 249, 251, 255, 2, 4, 6, 6, 5, 1, 254, 250, 248, 251, 253,
+			253, 0, 0, 0, 3, 2, 1, 5, 6, 4, 4, 3, 2, 2, 1, 0, 255, 254, 255, 1, 4, 5, 4, 1, 251, 245, 242, 243, 251, 3,
+			6, 8, 5, 254, 251, 255, 4, 8, 10, 8, 2, 0, 254, 250, 1, 4, 1, 254, 254, 1, 4, 4, 0, 255, 249, 240, 243, 251, 5, 16,
+			14, 9, 4, 1, 252, 244, 251, 5, 9, 14, 7, 0, 254, 241, 236, 255, 3, 3, 10, 3, 252, 1, 2, 249, 245, 252, 16, 23, 13, 253,
+			244, 233, 240, 1, 3, 17, 28, 0, 254, 12, 4, 254, 3, 250, 244, 3, 251, 233, 239, 5, 9, 3, 16, 22, 7, 6, 241, 228, 255, 16,
+			5, 254, 253, 244, 248, 248, 6, 20, 11, 3, 244, 232, 251, 5, 10, 13, 6, 246, 245, 0, 15, 30, 38, 30, 4, 239, 230, 224, 228, 249,
+			6, 8, 10, 5, 252, 255, 2, 1, 254, 251, 246, 249, 251, 254, 6, 5, 2, 5, 3, 4, 12, 15, 10, 6, 1, 246, 239, 243, 250, 251,
+			255, 2, 2, 7, 9, 7, 9, 4, 255, 252, 249, 250, 0, 1, 253, 1, 2, 254, 0, 10, 13, 11, 13, 6, 251, 242, 251, 254, 248, 0,
+			6, 252, 246, 254, 254, 254, 10, 9, 252, 250, 253, 242, 239, 0, 17, 10, 6, 27, 23, 0, 3, 7, 251, 238, 243, 250, 247, 10, 8, 245,
+			247, 4, 0, 251, 20, 32, 10, 252, 248, 236, 236, 238, 233, 243, 32, 15, 2, 29, 3, 248, 5, 15, 0, 1, 27, 242, 239, 213, 196, 253,
+			20, 37, 79, 92, 5, 232, 236, 200, 180, 193, 4, 26, 12, 21, 25, 12, 19, 28, 235, 255, 36, 3, 237, 236, 235, 227, 223, 228, 248, 28,
+			64, 58, 39, 28, 255, 221, 205, 201, 210, 246, 255, 254, 18, 32, 23, 12, 21, 30, 30, 13, 249, 245, 246, 240, 223, 236, 255, 2, 14, 21,
+			21, 20, 22, 255, 235, 232, 231, 230, 239, 248, 3, 8, 7, 6, 8, 10, 9, 6, 2, 3, 0, 248, 242, 244, 251, 0, 7, 14, 19, 20,
+			14, 6, 250, 245, 241, 240, 240, 247, 3, 9, 9, 10, 8, 8, 6, 3, 2, 1, 251, 249, 249, 248, 248, 250, 1, 10, 17, 23, 16, 9,
+			4, 247, 235, 230, 232, 238, 251, 2, 7, 8, 9, 5, 6, 3, 3, 5, 6, 7, 2, 254, 251, 1, 253, 252, 7, 19, 11, 5, 0, 251,
+			254, 239, 232, 242, 4, 1, 253, 10, 16, 13, 253, 251, 9, 6, 1, 0, 254, 254, 242, 241, 18, 27, 249, 243, 12, 7, 251, 255, 255, 4,
+			255, 232, 231, 255, 14, 23, 15, 3, 11, 18, 246, 232, 247, 251, 0, 0, 0, 12, 17, 1, 243, 248, 2, 0, 2, 4, 4, 255, 247, 240,
+			250, 8, 16, 16, 8, 3, 255, 249, 245, 247, 247, 247, 245, 252, 5, 12, 11, 13, 19, 16, 8, 0, 253, 0, 2, 254, 248, 248, 247, 247,
+			248, 0, 10, 16, 15, 9, 1, 249, 244, 237, 239, 250, 0, 4, 7, 4, 5, 6, 2, 2, 0, 2, 1, 0, 0, 255, 0, 1, 255, 0,
+			2, 2, 2, 5, 5, 1, 255, 253, 253, 251, 253, 1, 1, 1, 2, 1, 4, 2, 254, 253, 0, 1, 3, 2, 1, 2, 3, 3, 0, 1,
+			5, 6, 3, 254, 248, 244, 242, 243, 248, 253, 4, 10, 13, 10, 5, 6, 2, 0, 7, 4, 0, 0, 248, 243, 248, 0, 8, 12, 9, 2,
+			2, 254, 250, 255, 0, 254, 250, 246, 246, 255, 3, 2, 12, 12, 5, 1, 0, 252, 3, 9, 3, 1, 0, 252, 247, 251, 4, 7, 15, 10,
+			255, 255, 250, 241, 241, 247, 248, 255, 3, 254, 0, 9, 14, 13, 12, 11, 7, 3, 252, 245, 251, 0, 253, 254, 253, 251, 252, 254, 255, 2,
+			6, 7, 7, 3, 253, 247, 250, 254, 5, 10, 13, 7, 1, 249, 251, 253, 254, 2, 3, 0, 252, 251, 251, 0, 2, 4, 3, 3, 0, 254,
+			255, 253, 1, 0, 0, 4, 2, 2, 4, 3, 2, 11, 13, 5, 255, 248, 247, 248, 248, 250, 255, 3, 5, 6, 4, 3, 3, 254, 249, 249,
+			251, 0, 2, 1, 0, 2, 255, 255, 3, 5, 4, 10, 9, 2, 254, 251, 245, 250, 255, 4, 4, 4, 5, 0, 252, 255, 4, 3, 255, 0,
+			252, 255, 1, 1, 3, 4, 8, 5, 254, 254, 0, 254, 253, 4, 2, 0, 0, 246, 247, 0, 5, 4, 9, 3, 3, 249, 240, 244, 0, 0,
+			8, 21, 11, 1, 255, 253, 251, 3, 9, 9, 255, 249, 238, 233, 237, 251, 2, 17, 24, 24, 7, 254, 254, 3, 11, 15, 6, 252, 2, 23,
+			46, 235, 133, 179, 224, 23, 75, 51, 25, 25, 234, 202, 2, 36, 20, 15, 251, 219, 230, 243, 237, 2, 33, 20, 6, 5, 2, 2, 14, 0,
+			242, 243, 238, 231, 249, 11, 31, 41, 32, 1, 244, 237, 237, 240, 248, 252, 251, 250, 250, 3, 18, 29, 26, 13, 246, 241, 246, 247, 244, 252,
+			0, 253, 0, 255, 5, 13, 6, 1, 7, 2, 0, 245, 246, 255, 3, 255, 247, 250, 4, 15, 20, 29, 31, 12, 246, 230, 226, 232, 243, 3,
+			14, 17, 13, 7, 0, 1, 2, 250, 244, 238, 237, 245, 1, 8, 14, 18, 7, 253, 251, 0, 6, 9, 8, 0, 246, 240, 242, 246, 3, 12,
+			13, 13, 10, 4, 4, 4, 0, 252, 246, 242, 245, 252, 3, 10, 12, 7, 3, 2, 4, 7, 9, 5, 255, 252, 253, 255, 253, 252, 248, 248,
+			250, 249, 255, 254, 255, 254, 255, 0, 1, 5, 5, 7, 8, 3, 1, 253, 251, 254, 13, 15, 10, 10, 255, 244, 247, 253, 2, 4, 4, 249,
+			244, 247, 250, 255, 9, 8, 0, 0, 4, 0, 0, 1, 254, 2, 7, 3, 0, 6, 7, 252, 251, 249, 253, 251, 3, 4, 10, 10, 246, 232,
+			248, 9, 11, 14, 27, 14, 246, 227, 222, 249, 12, 11, 18, 22, 6, 247, 244, 254, 1, 251, 240, 233, 246, 254, 254, 2, 0, 7, 3, 0,
+			2, 20, 33, 38, 32, 21, 4, 240, 226, 222, 237, 2, 6, 8, 10, 7, 6, 6, 1, 255, 247, 236, 222, 223, 239, 252, 8, 20, 20, 12,
+			3, 255, 0, 7, 11, 4, 249, 243, 242, 243, 252, 10, 20, 21, 12, 4, 5, 6, 4, 0, 250, 249, 250, 252, 0, 4, 8, 9, 2, 0,
+			0, 1, 255, 253, 249, 246, 248, 248, 252, 1, 8, 15, 15, 12, 6, 255, 249, 241, 240, 242, 242, 252, 0, 3, 13, 11, 10, 4, 254, 0,
+			2, 5, 6, 2, 253, 244, 244, 0, 5, 10, 17, 13, 7, 9, 254, 243, 240, 242, 242, 245, 2, 17, 24, 11, 250, 231, 240, 10, 7, 4,
+			3, 2, 9, 16, 15, 20, 28, 246, 208, 197, 230, 6, 16, 28, 31, 9, 254, 244, 226, 244, 17, 19, 6, 11, 7, 246, 232, 228, 245, 10,
+			27, 20, 12, 13, 5, 254, 254, 249, 250, 249, 241, 237, 248, 0, 5, 14, 16, 18, 12, 254, 244, 246, 246, 242, 242, 245, 254, 8, 15, 14,
+			14, 14, 4, 253, 252, 6, 14, 16, 11, 0, 247, 237, 231, 239, 255, 11, 19, 21, 16, 11, 1, 247, 236, 232, 232, 233, 241, 0, 12, 22,
+			24, 18, 7, 251, 244, 247, 252, 5, 12, 11, 253, 245, 247, 249, 2, 10, 16, 13, 4, 253, 251, 1, 0, 255, 255, 249, 244, 248, 0, 4,
+			19, 14, 255, 253, 253, 245, 251, 1, 4, 10, 7, 0, 253, 3, 0, 9, 6, 255, 252, 244, 238, 244, 250, 5, 3, 254, 0, 0, 4, 24,
+			23, 23, 13, 255, 246, 244, 242, 246, 236, 239, 0, 5, 245, 4, 14, 17, 20, 6, 249, 0, 12, 253, 247, 255, 251, 253, 248, 0, 4, 12,
+			13, 4, 1, 4, 249, 250, 243, 249, 2, 253, 251, 252, 9, 15, 18, 9, 7, 2, 247, 240, 237, 243, 254, 2, 9, 12, 13, 9, 8, 9,
+			9, 0, 243, 233, 237, 245, 255, 7, 10, 1, 4, 10, 10, 12, 14, 3, 241, 239, 240, 249, 8, 16, 8, 251, 248, 245, 253, 17, 25, 12,
+			1, 239, 226, 225, 245, 4, 14, 18, 16, 6, 255, 255, 253, 255, 6, 6, 1, 1, 10, 14, 15, 10, 0, 249, 244, 241, 245, 0, 9, 8,
+			5, 1, 255, 251, 250, 248, 246, 248, 248, 249, 0, 8, 13, 11, 7, 0, 250, 247, 253, 3, 7, 10, 4, 252, 253, 0, 0, 4, 8, 4,
+			1, 0, 254, 2, 4, 255, 249, 245, 248, 253, 8, 19, 25, 19, 4, 245, 238, 238, 247, 5, 12, 13, 6, 253, 251, 253, 255, 255, 254, 0,
+			252, 245, 246, 250, 0, 0, 3, 6, 6, 7, 4, 2, 1, 1, 254, 249, 249, 247, 250, 0, 4, 8, 16, 15, 17, 21, 33, 35, 23, 255,
+			228, 203, 181, 175, 214, 16, 67, 82, 56, 8, 227, 212, 208, 241, 31, 60, 45, 12, 236, 207, 213, 226, 235, 11, 43, 39, 34, 34, 23, 250,
+			225, 212, 205, 225, 249, 5, 24, 36, 36, 20, 7, 249, 236, 241, 239, 248, 5, 12, 6, 253, 245, 241, 233, 239, 244, 2, 21, 28, 26, 14,
+			253, 248, 253, 10, 22, 39, 40, 26, 2, 239, 231, 234, 244, 249, 249, 254, 254, 255, 0, 0, 254, 246, 239, 233, 238, 249, 3, 11, 11, 7,
+			254, 245, 245, 254, 10, 21, 20, 10, 255, 248, 246, 250, 1, 8, 15, 15, 8, 3, 1, 6, 8, 11, 6, 0, 251, 246, 248, 250, 253, 254,
+			0, 0, 2, 5, 11, 10, 9, 2, 248, 237, 230, 232, 237, 247, 253, 1, 4, 8, 13, 14, 13, 16, 10, 2, 248, 246, 249, 255, 1, 8,
+			11, 9, 6, 2, 255, 0, 5, 5, 1, 252, 242, 244, 245, 244, 255, 8, 13, 13, 9, 7, 3, 253, 250, 249, 242, 246, 253, 5, 4, 10,
+			8, 0, 253, 8, 10, 0, 2, 249, 237, 240, 252, 9, 5, 0, 8, 12, 9, 21, 38, 19, 250, 226, 203, 211, 231, 250, 24, 34, 27, 7,
+			245, 231, 237, 255, 250, 255, 11, 10, 7, 8, 18, 37, 45, 30, 7, 252, 234, 222, 230, 245, 11, 15, 4, 247, 242, 251, 0, 3, 8, 1,
+			249, 235, 224, 233, 244, 250, 0, 3, 9, 11, 14, 18, 20, 18, 11, 251, 240, 236, 242, 0, 10, 17, 21, 17, 12, 7, 6, 6, 2, 0,
+			252, 247, 248, 245, 241, 244, 252, 0, 6, 9, 10, 10, 8, 255, 251, 247, 245, 245, 247, 251, 5, 10, 6, 5, 254, 251, 253, 1, 2, 3,
+			1, 255, 252, 252, 254, 4, 7, 2, 253, 255, 7, 17, 19, 12, 12, 6, 243, 222, 231, 246, 0, 11, 18, 19, 10, 249, 234, 237, 1, 19,
+			18, 4, 242, 233, 237, 248, 13, 23, 24, 18, 5, 250, 247, 246, 250, 3, 254, 247, 255, 0, 255, 3, 1, 255, 6, 6, 11, 20, 10, 255,
+			247, 239, 242, 0, 252, 252, 6, 10, 0, 3, 0, 1, 11, 7, 251, 247, 252, 244, 250, 1, 10, 10, 0, 247, 244, 253, 4, 1, 255, 1,
+			2, 0, 0, 255, 6, 16, 13, 15, 18, 23, 13, 254, 245, 239, 241, 245, 245, 254, 6, 5, 2, 2, 0, 0, 253, 245, 241, 243, 246, 247,
+			253, 1, 8, 7, 5, 5, 4, 7, 7, 11, 7, 4, 254, 247, 247, 252, 3, 11, 11, 3, 1, 0, 0, 3, 7, 6, 0, 253, 251, 0,
+			0, 251, 249, 255, 253, 1, 13, 13, 12, 8, 248, 240, 241, 238, 242, 252, 255, 2, 5, 0, 255, 10, 15, 7, 6, 10, 2, 251, 251, 0,
+			5, 249, 252, 248, 253, 0, 33, 20, 8, 3, 240, 235, 244, 253, 2, 7, 249, 8, 19, 2, 1, 252, 240, 237, 232, 254, 24, 34, 26, 11,
+			248, 238, 245, 240, 11, 23, 21, 7, 1, 245, 225, 213, 239, 15, 22, 26, 16, 249, 250, 241, 243, 255, 5, 13, 7, 16, 5, 246, 235, 253,
+			255, 9, 26, 19, 16, 2, 240, 230, 237, 253, 253, 237, 226, 0, 11, 24, 24, 21, 1, 251, 249, 241, 252, 12, 4, 4, 9, 6, 8, 29,
+			31, 13, 250, 235, 231, 240, 6, 10, 4, 3, 252, 234, 232, 251, 2, 7, 8, 7, 250, 248, 243, 239, 248, 0, 0, 2, 11, 11, 11, 13,
+			6, 2, 253, 249, 247, 250, 3, 6, 9, 6, 8, 3, 3, 5, 9, 11, 6, 0, 248, 245, 243, 247, 3, 10, 10, 8, 10, 6, 1, 1,
+			0, 1, 251, 244, 231, 226, 230, 239, 250, 3, 13, 20, 20, 10, 8, 6, 6, 2, 254, 250, 252, 255, 1, 11, 16, 15, 11, 2, 1, 1,
+			0, 247, 240, 236, 235, 240, 247, 1, 13, 17, 17, 10, 5, 6, 6, 3, 6, 4, 255, 245, 241, 247, 252, 5, 7, 6, 1, 253, 252, 245,
+			240, 253, 11, 12, 12, 6, 2, 1, 0, 5, 7, 10, 2, 247, 243, 237, 235, 248, 252, 254, 0, 255, 250, 249, 250, 255, 248, 252, 0, 10,
+			17, 24, 32, 45, 55, 58, 47, 17, 236, 205, 203, 226, 2, 18, 14, 248, 222, 213, 218, 238, 0, 13, 11, 0, 247, 238, 234, 236, 241, 247,
+			251, 4, 17, 34, 45, 42, 20, 253, 236, 234, 237, 253, 10, 16, 15, 11, 7, 11, 21, 27, 26, 14, 3, 249, 238, 233, 231, 231, 239, 245,
+			0, 10, 20, 26, 18, 3, 233, 212, 211, 218, 231, 247, 9, 24, 26, 27, 24, 24, 22, 21, 16, 3, 248, 239, 235, 236, 238, 249, 4, 11,
+			18, 18, 16, 12, 7, 252, 238, 232, 225, 228, 241, 4, 24, 36, 34, 22, 12, 255, 245, 246, 245, 245, 244, 242, 245, 249, 0, 10, 11, 7,
+			2, 2, 13, 11, 0, 246, 244, 240, 243, 8, 26, 24, 20, 9, 2, 5, 250, 234, 227, 226, 218, 224, 236, 237, 11, 27, 26, 18, 14, 13,
+			14, 18, 33, 49, 60, 44, 8, 232, 202, 198, 216, 248, 23, 43, 38, 14, 247, 234, 231, 231, 225, 220, 223, 227, 237, 250, 4, 16, 17, 11,
+			3, 0, 8, 17, 24, 22, 10, 0, 237, 230, 232, 247, 13, 29, 38, 37, 33, 22, 6, 253, 243, 238, 237, 238, 246, 6, 17, 14, 10, 3,
+			254, 253, 250, 251, 255, 253, 246, 228, 220, 219, 225, 238, 255, 15, 27, 36, 37, 25, 13, 5, 0, 251, 249, 0, 2, 2, 5, 4, 3, 0,
+			250, 248, 250, 255, 250, 247, 3, 248, 237, 251, 3, 14, 33, 34, 19, 7, 1, 255, 247, 252, 255, 240, 235, 250, 244, 246, 3, 250, 244, 12,
+			21, 15, 4, 253, 3, 6, 242, 233, 254, 19, 30, 17, 3, 4, 9, 249, 234, 236, 246, 0, 0, 255, 0, 5, 6, 2, 4, 9, 1, 251,
+			248, 241, 235, 240, 239, 251, 11, 9, 4, 13, 21, 21, 26, 29, 27, 22, 10, 247, 230, 230, 238, 241, 252, 7, 12, 12, 11, 7, 3, 255,
+			244, 232, 226, 226, 231, 240, 250, 2, 8, 10, 11, 12, 13, 15, 16, 13, 8, 1, 252, 249, 247, 247, 250, 253, 0, 10, 19, 25, 21, 14,
+			3, 249, 239, 240, 244, 248, 255, 6, 10, 13, 16, 13, 7, 0, 248, 247, 240, 238, 240, 241, 241, 245, 248, 252, 2, 9, 15, 19, 13, 6,
+			1, 253, 248, 249, 0, 6, 3, 9, 14, 10, 14, 18, 1, 252, 252, 244, 243, 251, 239, 250, 5, 0, 4, 25, 7, 6, 255, 228, 245, 5,
+			13, 4, 247, 246, 2, 251, 17, 18, 5, 8, 253, 229, 233, 5, 9, 8, 6, 234, 235, 0, 8, 27, 37, 19, 8, 255, 242, 236, 0, 254,
+			247, 250, 250, 247, 6, 0, 2, 16, 7, 245, 7, 250, 241, 2, 0, 247, 1, 0, 254, 4, 7, 253, 255, 7, 15, 15, 21, 25, 17, 6,
+			248, 235, 237, 244, 247, 2, 8, 8, 6, 4, 2, 254, 247, 240, 234, 235, 243, 253, 4, 4, 7, 8, 3, 3, 6, 6, 6, 6, 4, 2,
+			255, 250, 247, 249, 250, 255, 7, 11, 13, 16, 15, 8, 1, 251, 250, 250, 250, 247, 248, 250, 0, 8, 13, 13, 12, 5, 255, 253, 0, 2,
+			4, 6, 5, 253, 240, 234, 236, 239, 240, 245, 255, 7, 11, 13, 16, 11, 5, 0, 251, 251, 1, 5, 6, 12, 16, 11, 0, 249, 243, 249,
+			2, 9, 7, 6, 3, 244, 240, 246, 248, 1, 16, 3, 0, 9, 6, 245, 253, 254, 246, 251, 11, 17, 16, 12, 4, 246, 245, 255, 252, 238,
+			0, 12, 0, 5, 6, 253, 3, 13, 245, 243, 7, 8, 249, 1, 254, 0, 49, 0, 3, 0, 5, 0, 76, 0, 44, 1, 20, 5, 84, 11,
+			112, 13, 135, 15, 160, 28, 10, 33, 11, 58, 50, 34, 55, 26, 13, 0, 150, 120, 120, 120, 120, 120, 90, 120, 75, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 124, 0, 184, 1,
+			20, 5, 84, 11, 52, 13, 110, 15, 160, 28, 39, 44, 29, 70, 56, 46, 61, 29, 14, 0, 120, 120, 120, 120, 120, 120, 60, 60, 120, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			208, 0, 13, 2, 106, 5, 84, 11, 168, 12, 141, 14, 160, 28, 0, 90, 41, 72, 106, 78, 67, 41, 24, 0, 120, 135, 150, 120, 120, 120,
+			120, 165, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 45, 0, 2, 0, 5, 0, 148, 0, 120, 1, 100, 5, 84, 11, 32, 13, 135, 15, 224, 28, 45, 35, 32, 58, 36, 40, 51, 27,
+			10, 0, 102, 105, 127, 120, 120, 120, 102, 90, 127, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 1, 7, 3, 153, 4, 84, 11, 208, 12, 241, 14, 224, 28, 0, 101, 47, 95,
+			101, 61, 67, 43, 20, 0, 195, 135, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 45, 0, 2, 0, 5, 0, 208, 0, 249, 1, 160, 5, 84, 11, 52, 13,
+			135, 15, 192, 28, 45, 35, 33, 58, 48, 44, 49, 28, 11, 0, 150, 120, 120, 120, 120, 120, 90, 120, 120, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 53, 2, 172, 5,
+			84, 11, 12, 13, 35, 15, 192, 28, 0, 98, 43, 86, 110, 84, 80, 43, 13, 0, 120, 120, 120, 120, 120, 120, 90, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 3, 0,
+			1, 0, 104, 0, 44, 1, 200, 5, 84, 11, 12, 13, 135, 15, 32, 28, 0, 31, 17, 53, 34, 32, 55, 26, 8, 0, 150, 120, 150, 120,
+			120, 120, 120, 105, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 136, 0, 184, 1, 84, 6, 84, 11, 92, 13, 210, 15, 32, 28, 65, 34, 21, 63, 48, 43, 41, 21, 7, 0,
+			150, 105, 150, 120, 120, 120, 120, 45, 150, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 104, 1, 152, 8, 84, 11, 32, 13, 210, 15, 32, 28, 0, 76, 20, 78, 80, 78,
+			76, 34, 10, 0, 150, 150, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0, 4, 0, 5, 0, 92, 0, 69, 1, 76, 4, 84, 11, 72, 13, 241, 14,
+			160, 28, 20, 32, 20, 64, 39, 19, 26, 31, 13, 0, 150, 105, 105, 120, 120, 120, 90, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 92, 0, 69, 1, 232, 3, 84, 11,
+			168, 12, 141, 14, 32, 27, 9, 40, 22, 69, 49, 42, 33, 29, 14, 0, 150, 105, 105, 120, 120, 120, 90, 90, 75, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 189, 1,
+			200, 3, 84, 11, 148, 12, 191, 14, 32, 27, 36, 51, 31, 74, 65, 42, 39, 24, 19, 0, 150, 120, 105, 120, 120, 120, 90, 90, 75, 44,
+			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			124, 0, 209, 1, 112, 3, 84, 11, 68, 12, 191, 14, 160, 26, 0, 145, 39, 116, 103, 71, 71, 45, 26, 0, 120, 120, 120, 120, 120, 120,
+			75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 51, 0, 3, 0, 5, 0, 92, 0, 19, 1, 120, 5, 84, 11, 52, 13, 216, 14, 128, 27, 12, 33, 10, 60, 36, 40, 59, 33,
+			11, 0, 150, 105, 135, 120, 120, 120, 75, 75, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 172, 0, 144, 1, 80, 5, 84, 11, 32, 13, 191, 14, 224, 26, 39, 45, 35, 70,
+			52, 50, 58, 33, 15, 0, 150, 105, 150, 120, 120, 120, 75, 60, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 144, 1, 70, 6, 84, 11, 228, 12, 141, 14, 224, 26,
+			0, 116, 48, 135, 71, 71, 67, 43, 17, 0, 120, 90, 150, 120, 120, 120, 45, 60, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 188, 0, 8, 2, 40, 5,
+			140, 10, 128, 12, 91, 14, 0, 27, 34, 69, 36, 83, 77, 49, 57, 38, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90, 120, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0,
+			8, 2, 176, 4, 84, 11, 208, 12, 191, 14, 0, 27, 44, 52, 38, 68, 65, 49, 50, 31, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90,
 			120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 204, 0, 8, 2, 176, 4, 84, 11, 208, 12, 191, 14, 0, 27, 44, 52, 38, 68, 65, 49, 50, 31, 23, 0, 150, 120, 120, 120,
-			120, 120, 135, 90, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 140, 0, 244, 1, 176, 4, 84, 11, 152, 13, 104, 16, 128, 27, 42, 23, 21, 57, 27, 25, 19, 16, 11, 0,
-			150, 120, 120, 120, 120, 120, 135, 60, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 140, 0, 224, 1, 20, 5, 84, 11, 152, 13, 104, 16, 0, 27, 0, 20, 19, 49, 26, 17,
-			13, 15, 8, 0, 150, 150, 120, 120, 120, 120, 135, 60, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 25, 0, 4, 0, 1, 0, 184, 0, 93, 2, 200, 3, 40, 10, 68, 12, 141, 14,
-			160, 28, 30, 70, 39, 71, 86, 54, 58, 35, 17, 0, 150, 105, 120, 120, 120, 120, 150, 90, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 249, 1, 176, 4, 84, 11,
-			168, 12, 85, 15, 64, 29, 25, 37, 27, 62, 51, 35, 37, 27, 13, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 189, 1,
-			176, 4, 84, 11, 228, 12, 60, 15, 64, 29, 60, 32, 27, 57, 34, 25, 30, 20, 10, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0,
-			72, 0, 149, 1, 20, 5, 84, 11, 52, 13, 235, 15, 64, 29, 0, 18, 24, 48, 20, 10, 10, 13, 9, 0, 150, 105, 120, 120, 120, 120,
-			105, 120, 135, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 0, 0, 3, 0, 1, 0, 216, 0, 68, 2, 186, 4, 100, 10, 32, 13, 191, 14, 64, 29, 33, 39, 26, 55, 68, 37, 42, 32,
-			19, 0, 150, 144, 120, 120, 120, 120, 150, 93, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 192, 0, 249, 1, 176, 4, 84, 11, 228, 12, 91, 14, 128, 28, 75, 26, 27, 44,
-			44, 33, 26, 19, 7, 0, 150, 150, 120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27,
-			0, 19, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 192, 0, 239, 1, 70, 6,
-			196, 9, 12, 13, 241, 14, 224, 27, 40, 66, 32, 77, 77, 68, 57, 41, 20, 0, 150, 120, 120, 120, 120, 120, 120, 120, 150, 44, 45, 70,
-			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 33, 0, 192, 0,
-			239, 1, 20, 5, 84, 11, 92, 13, 241, 14, 224, 27, 45, 29, 24, 58, 37, 35, 28, 22, 8, 0, 150, 120, 120, 120, 120, 120, 120, 90,
+			1, 0, 140, 0, 244, 1, 176, 4, 84, 11, 152, 13, 104, 16, 128, 27, 42, 23, 21, 57, 27, 25, 19, 16, 11, 0, 150, 120, 120, 120,
+			120, 120, 135, 60, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 17, 0, 140, 0, 224, 1, 20, 5, 84, 11, 152, 13, 104, 16, 0, 27, 0, 20, 19, 49, 26, 17, 13, 15, 8, 0,
+			150, 150, 120, 120, 120, 120, 135, 60, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 25, 0, 4, 0, 1, 0, 184, 0, 93, 2, 200, 3, 40, 10, 68, 12, 141, 14, 160, 28, 30, 70,
+			39, 71, 86, 54, 58, 35, 17, 0, 150, 105, 120, 120, 120, 120, 150, 90, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 249, 1, 176, 4, 84, 11, 168, 12, 85, 15,
+			64, 29, 25, 37, 27, 62, 51, 35, 37, 27, 13, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 189, 1, 176, 4, 84, 11,
+			228, 12, 60, 15, 64, 29, 60, 32, 27, 57, 34, 25, 30, 20, 10, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 72, 0, 149, 1,
+			20, 5, 84, 11, 52, 13, 235, 15, 64, 29, 0, 18, 24, 48, 20, 10, 10, 13, 9, 0, 150, 105, 120, 120, 120, 120, 105, 120, 135, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
+			3, 0, 1, 0, 216, 0, 68, 2, 186, 4, 100, 10, 32, 13, 191, 14, 64, 29, 33, 39, 26, 55, 68, 37, 42, 32, 19, 0, 150, 144,
+			120, 120, 120, 120, 150, 93, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 192, 0, 249, 1, 176, 4, 84, 11, 228, 12, 91, 14, 128, 28, 75, 26, 27, 44, 44, 33, 26, 19,
+			7, 0, 150, 150, 120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 19, 16, 48,
+			32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 192, 0, 239, 1, 70, 6, 196, 9, 12, 13,
+			241, 14, 224, 27, 40, 66, 32, 77, 77, 68, 57, 41, 20, 0, 150, 120, 120, 120, 120, 120, 120, 120, 150, 44, 45, 70, 130, 54, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 33, 0, 192, 0, 239, 1, 20, 5,
+			84, 11, 92, 13, 241, 14, 224, 27, 45, 29, 24, 58, 37, 35, 28, 22, 8, 0, 150, 120, 120, 120, 120, 120, 120, 90, 150, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0,
+			219, 1, 216, 4, 104, 11, 92, 13, 85, 15, 224, 27, 45, 25, 27, 53, 28, 16, 19, 10, 5, 0, 150, 120, 120, 120, 120, 120, 120, 90,
 			150, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 176, 0, 219, 1, 216, 4, 104, 11, 92, 13, 85, 15, 224, 27, 45, 25, 27, 53, 28, 16, 19, 10, 5, 0, 150, 120, 120, 120,
-			120, 120, 120, 90, 150, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 17, 0, 128, 0, 219, 1, 40, 5, 104, 11, 72, 13, 85, 15, 224, 27, 0, 20, 22, 49, 36, 11, 14, 13, 7, 0,
-			150, 120, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 16, 0, 5, 0, 1, 0, 228, 0, 38, 2, 134, 3, 140, 10, 88, 12, 166, 14, 128, 28, 33, 52,
-			32, 61, 59, 47, 39, 22, 17, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 239, 1, 116, 4, 84, 11, 168, 12, 10, 15,
-			96, 28, 16, 59, 36, 73, 48, 43, 42, 25, 16, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0, 239, 1, 176, 4, 84, 11,
-			208, 12, 166, 14, 96, 28, 28, 32, 27, 61, 38, 29, 27, 20, 11, 0, 150, 120, 120, 120, 120, 120, 105, 120, 120, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 239, 1,
-			176, 4, 84, 11, 208, 12, 166, 14, 96, 28, 45, 21, 17, 59, 33, 24, 22, 13, 6, 0, 150, 120, 75, 120, 120, 120, 105, 30, 120, 44,
-			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0,
-			180, 0, 179, 1, 20, 5, 84, 11, 32, 13, 166, 14, 96, 28, 0, 19, 23, 46, 28, 23, 16, 13, 8, 0, 120, 150, 105, 120, 120, 120,
-			75, 60, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 35, 0, 4, 0, 1, 0, 200, 0, 159, 1, 68, 3, 160, 10, 28, 12, 141, 14, 32, 26, 44, 53, 36, 69, 41, 26, 30, 24,
-			11, 0, 150, 120, 120, 120, 120, 120, 105, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 99, 1, 176, 4, 84, 11, 108, 12, 60, 15, 32, 26, 55, 49, 32, 69,
-			34, 31, 35, 24, 11, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 139, 1, 176, 4, 84, 11, 112, 13, 60, 15, 32, 26,
-			35, 28, 34, 51, 41, 20, 24, 22, 7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 172, 0, 139, 1, 20, 5, 84, 11, 112, 13,
-			60, 15, 32, 26, 0, 23, 31, 47, 38, 19, 22, 20, 7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 53, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 76, 0,
-			104, 1, 84, 6, 84, 11, 132, 13, 135, 15, 32, 29, 50, 17, 9, 45, 22, 18, 33, 19, 8, 0, 155, 135, 97, 120, 120, 120, 95, 105,
+			17, 0, 128, 0, 219, 1, 40, 5, 104, 11, 72, 13, 85, 15, 224, 27, 0, 20, 22, 49, 36, 11, 14, 13, 7, 0, 150, 120, 120, 120,
+			120, 120, 120, 90, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 16, 0, 5, 0, 1, 0, 228, 0, 38, 2, 134, 3, 140, 10, 88, 12, 166, 14, 128, 28, 33, 52, 32, 61, 59, 47,
+			39, 22, 17, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 239, 1, 116, 4, 84, 11, 168, 12, 10, 15, 96, 28, 16, 59,
+			36, 73, 48, 43, 42, 25, 16, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0, 239, 1, 176, 4, 84, 11, 208, 12, 166, 14,
+			96, 28, 28, 32, 27, 61, 38, 29, 27, 20, 11, 0, 150, 120, 120, 120, 120, 120, 105, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 239, 1, 176, 4, 84, 11,
+			208, 12, 166, 14, 96, 28, 45, 21, 17, 59, 33, 24, 22, 13, 6, 0, 150, 120, 75, 120, 120, 120, 105, 30, 120, 44, 45, 70, 130, 54,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 180, 0, 179, 1,
+			20, 5, 84, 11, 32, 13, 166, 14, 96, 28, 0, 19, 23, 46, 28, 23, 16, 13, 8, 0, 120, 150, 105, 120, 120, 120, 75, 60, 120, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 35, 0,
+			4, 0, 1, 0, 200, 0, 159, 1, 68, 3, 160, 10, 28, 12, 141, 14, 32, 26, 44, 53, 36, 69, 41, 26, 30, 24, 11, 0, 150, 120,
+			120, 120, 120, 120, 105, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 99, 1, 176, 4, 84, 11, 108, 12, 60, 15, 32, 26, 55, 49, 32, 69, 34, 31, 35, 24,
+			11, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 139, 1, 176, 4, 84, 11, 112, 13, 60, 15, 32, 26, 35, 28, 34, 51,
+			41, 20, 24, 22, 7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 172, 0, 139, 1, 20, 5, 84, 11, 112, 13, 60, 15, 32, 26,
+			0, 23, 31, 47, 38, 19, 22, 20, 7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 76, 0, 104, 1, 84, 6,
+			84, 11, 132, 13, 135, 15, 32, 29, 50, 17, 9, 45, 22, 18, 33, 19, 8, 0, 155, 135, 97, 120, 120, 120, 95, 105, 97, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 76, 0,
+			104, 1, 84, 6, 84, 11, 132, 13, 135, 15, 32, 29, 0, 12, 7, 38, 23, 15, 28, 16, 7, 0, 150, 135, 97, 120, 120, 120, 90, 105,
 			97, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 76, 0, 104, 1, 84, 6, 84, 11, 132, 13, 135, 15, 32, 29, 0, 12, 7, 38, 23, 15, 28, 16, 7, 0, 150, 135, 97, 120,
-			120, 120, 90, 105, 97, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 108, 0, 124, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 50, 25, 12, 55, 30, 20,
-			36, 21, 9, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 94, 1, 175, 4, 180, 10, 212, 13, 185, 15, 160, 28, 0, 18,
-			27, 41, 23, 19, 23, 19, 12, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 204, 0, 94, 1, 120, 5, 84, 11,
-			212, 13, 185, 15, 160, 28, 30, 13, 22, 33, 18, 15, 18, 15, 10, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70, 130, 52,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 76, 0, 104, 1,
-			120, 5, 84, 11, 132, 13, 135, 15, 32, 29, 40, 20, 10, 49, 28, 20, 36, 21, 9, 0, 155, 135, 120, 120, 120, 120, 95, 105, 75, 44,
-			45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			76, 0, 104, 1, 120, 5, 84, 11, 132, 13, 135, 15, 32, 29, 0, 20, 10, 49, 30, 20, 36, 21, 9, 0, 150, 135, 120, 120, 120, 120,
-			90, 105, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 40, 0, 2, 0, 5, 0, 76, 0, 104, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 40, 8, 6, 32, 19, 13, 23, 14,
-			5, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 76, 0, 104, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 0, 21, 10, 49,
-			30, 20, 36, 21, 9, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 85, 0, 2, 0, 5, 0, 76, 0, 104, 1, 156, 4, 120, 10, 132, 13,
-			135, 15, 32, 29, 85, 14, 9, 40, 27, 13, 20, 10, 8, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 76, 0, 104, 1, 196, 4,
-			120, 10, 132, 13, 135, 15, 32, 29, 0, 23, 10, 51, 32, 21, 38, 23, 10, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 48, 0, 2, 0,
-			5, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 48, 13, 8, 40, 25, 13, 20, 10, 8, 0, 150, 135, 97, 120,
-			120, 120, 90, 105, 97, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 0, 22, 10, 51, 30, 21, 38, 23, 10, 0,
-			150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 1, 0, 216, 0, 68, 2, 186, 4, 100, 10, 32, 13, 191, 14, 64, 29, 33, 39,
-			26, 55, 68, 37, 42, 32, 19, 0, 150, 144, 120, 120, 120, 120, 150, 93, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 192, 0, 249, 1, 189, 3, 120, 10, 228, 12, 91, 14,
-			128, 28, 100, 27, 27, 44, 44, 33, 26, 19, 7, 0, 150, 150, 120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 112, 3, 200, 10,
-			52, 13, 235, 15, 128, 27, 0, 19, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 52,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 35, 0, 4, 0, 1, 0,
-			200, 0, 159, 1, 68, 3, 160, 10, 28, 12, 141, 14, 32, 26, 44, 43, 32, 62, 36, 23, 27, 21, 9, 0, 150, 120, 120, 120, 120, 120,
-			105, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 200, 0, 88, 1, 188, 2, 64, 11, 108, 12, 60, 15, 32, 26, 60, 39, 27, 58, 27, 26, 29, 20, 9, 0, 150, 105,
-			120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 172, 0, 139, 1, 200, 3, 64, 11, 112, 13, 60, 15, 32, 26, 35, 28, 34, 51, 41, 20, 24, 22,
-			7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 172, 0, 139, 1, 200, 3, 64, 11, 112, 13, 60, 15, 32, 26, 0, 23, 31, 47,
-			38, 19, 22, 20, 7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 188, 0, 8, 2, 40, 5, 140, 10, 128, 12,
-			91, 14, 0, 27, 34, 69, 36, 83, 77, 49, 57, 38, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90, 120, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 8, 2, 164, 4,
-			140, 10, 208, 12, 191, 14, 0, 27, 49, 52, 38, 68, 65, 49, 50, 31, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90, 120, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 140, 0,
-			244, 1, 90, 3, 84, 11, 152, 13, 104, 16, 128, 27, 50, 25, 21, 57, 27, 25, 19, 16, 11, 0, 150, 120, 120, 120, 120, 120, 135, 60,
-			120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			17, 0, 140, 0, 224, 1, 46, 3, 84, 11, 152, 13, 104, 16, 0, 27, 0, 22, 19, 49, 26, 17, 13, 15, 8, 0, 150, 150, 120, 120,
-			120, 120, 135, 60, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 25, 0, 4, 0, 1, 0, 184, 0, 93, 2, 200, 3, 40, 10, 68, 12, 141, 14, 160, 28, 40, 70, 39, 71, 86, 54,
-			58, 35, 17, 0, 150, 105, 120, 120, 120, 120, 150, 90, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 168, 0, 249, 1, 156, 3, 160, 10, 168, 12, 85, 15, 64, 29, 25, 40,
-			27, 62, 51, 35, 37, 27, 13, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 168, 0, 189, 1, 24, 3, 160, 10, 228, 12, 60, 15,
-			64, 29, 75, 36, 27, 57, 34, 25, 30, 20, 10, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 72, 0, 149, 1, 68, 3, 160, 10,
-			52, 13, 235, 15, 64, 29, 0, 19, 24, 48, 20, 10, 10, 13, 9, 0, 150, 105, 120, 120, 120, 120, 105, 120, 135, 44, 45, 70, 130, 52,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0,
-			192, 0, 239, 1, 70, 6, 196, 9, 12, 13, 241, 14, 224, 27, 40, 66, 32, 77, 77, 68, 57, 41, 20, 0, 150, 120, 120, 120, 120, 120,
-			120, 120, 150, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 37, 0, 192, 0, 239, 1, 21, 4, 4, 11, 92, 13, 241, 14, 224, 27, 50, 29, 24, 58, 37, 35, 28, 22, 8, 0, 150, 120,
+			50, 0, 2, 0, 5, 0, 108, 0, 124, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 50, 25, 12, 55, 30, 20, 36, 21, 9, 0,
+			150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 94, 1, 175, 4, 180, 10, 212, 13, 185, 15, 160, 28, 0, 18, 27, 41, 23, 19,
+			23, 19, 12, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 204, 0, 94, 1, 120, 5, 84, 11, 212, 13, 185, 15,
+			160, 28, 30, 13, 22, 33, 18, 15, 18, 15, 10, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 76, 0, 104, 1, 120, 5, 84, 11,
+			132, 13, 135, 15, 32, 29, 40, 20, 10, 49, 28, 20, 36, 21, 9, 0, 155, 135, 120, 120, 120, 120, 95, 105, 75, 44, 45, 70, 130, 52,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 76, 0, 104, 1,
+			120, 5, 84, 11, 132, 13, 135, 15, 32, 29, 0, 20, 10, 49, 30, 20, 36, 21, 9, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 40, 0,
+			2, 0, 5, 0, 76, 0, 104, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 40, 8, 6, 32, 19, 13, 23, 14, 5, 0, 150, 135,
+			120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 76, 0, 104, 1, 230, 4, 120, 10, 132, 13, 135, 15, 32, 29, 0, 21, 10, 49, 30, 20, 36, 21,
+			9, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 85, 0, 2, 0, 5, 0, 76, 0, 104, 1, 156, 4, 120, 10, 132, 13, 135, 15, 32, 29,
+			85, 14, 9, 40, 27, 13, 20, 10, 8, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 76, 0, 104, 1, 196, 4, 120, 10, 132, 13,
+			135, 15, 32, 29, 0, 23, 10, 51, 32, 21, 38, 23, 10, 0, 150, 135, 120, 120, 120, 120, 90, 105, 75, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 48, 0, 2, 0, 5, 0, 76, 0,
+			104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 48, 13, 8, 40, 25, 13, 20, 10, 8, 0, 150, 135, 97, 120, 120, 120, 90, 105,
+			97, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 0, 22, 10, 51, 30, 21, 38, 23, 10, 0, 150, 135, 97, 120,
+			120, 120, 90, 105, 97, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 0, 0, 3, 0, 1, 0, 216, 0, 68, 2, 186, 4, 100, 10, 32, 13, 191, 14, 64, 29, 33, 39, 26, 55, 68, 37,
+			42, 32, 19, 0, 150, 144, 120, 120, 120, 120, 150, 93, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 192, 0, 249, 1, 189, 3, 120, 10, 228, 12, 91, 14, 128, 28, 100, 27,
+			27, 44, 44, 33, 26, 19, 7, 0, 150, 150, 120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 112, 3, 200, 10, 52, 13, 235, 15,
+			128, 27, 0, 19, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 35, 0, 4, 0, 1, 0, 200, 0, 159, 1,
+			68, 3, 160, 10, 28, 12, 141, 14, 32, 26, 44, 43, 32, 62, 36, 23, 27, 21, 9, 0, 150, 120, 120, 120, 120, 120, 105, 120, 105, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
+			200, 0, 88, 1, 188, 2, 64, 11, 108, 12, 60, 15, 32, 26, 60, 39, 27, 58, 27, 26, 29, 20, 9, 0, 150, 105, 120, 120, 120, 120,
+			75, 120, 105, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 5, 0, 172, 0, 139, 1, 200, 3, 64, 11, 112, 13, 60, 15, 32, 26, 35, 28, 34, 51, 41, 20, 24, 22, 7, 0, 150, 105,
+			120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 17, 0, 172, 0, 139, 1, 200, 3, 64, 11, 112, 13, 60, 15, 32, 26, 0, 23, 31, 47, 38, 19, 22, 20,
+			7, 0, 150, 105, 120, 120, 120, 120, 75, 120, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 188, 0, 8, 2, 40, 5, 140, 10, 128, 12, 91, 14, 0, 27,
+			34, 69, 36, 83, 77, 49, 57, 38, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 8, 2, 164, 4, 140, 10, 208, 12,
+			191, 14, 0, 27, 49, 52, 38, 68, 65, 49, 50, 31, 23, 0, 150, 120, 120, 120, 120, 120, 135, 90, 120, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 140, 0, 244, 1, 90, 3,
+			84, 11, 152, 13, 104, 16, 128, 27, 50, 25, 21, 57, 27, 25, 19, 16, 11, 0, 150, 120, 120, 120, 120, 120, 135, 60, 120, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 140, 0,
+			224, 1, 46, 3, 84, 11, 152, 13, 104, 16, 0, 27, 0, 22, 19, 49, 26, 17, 13, 15, 8, 0, 150, 150, 120, 120, 120, 120, 135, 60,
+			120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			25, 0, 4, 0, 1, 0, 184, 0, 93, 2, 200, 3, 40, 10, 68, 12, 141, 14, 160, 28, 40, 70, 39, 71, 86, 54, 58, 35, 17, 0,
+			150, 105, 120, 120, 120, 120, 150, 90, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 168, 0, 249, 1, 156, 3, 160, 10, 168, 12, 85, 15, 64, 29, 25, 40, 27, 62, 51, 35,
+			37, 27, 13, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 168, 0, 189, 1, 24, 3, 160, 10, 228, 12, 60, 15, 64, 29, 75, 36,
+			27, 57, 34, 25, 30, 20, 10, 0, 150, 105, 120, 120, 120, 120, 150, 120, 135, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 72, 0, 149, 1, 68, 3, 160, 10, 52, 13, 235, 15,
+			64, 29, 0, 19, 24, 48, 20, 10, 10, 13, 9, 0, 150, 105, 120, 120, 120, 120, 105, 120, 135, 44, 45, 70, 130, 52, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 192, 0, 239, 1,
+			70, 6, 196, 9, 12, 13, 241, 14, 224, 27, 40, 66, 32, 77, 77, 68, 57, 41, 20, 0, 150, 120, 120, 120, 120, 120, 120, 120, 150, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0,
+			192, 0, 239, 1, 21, 4, 4, 11, 92, 13, 241, 14, 224, 27, 50, 29, 24, 58, 37, 35, 28, 22, 8, 0, 150, 120, 120, 120, 120, 120,
+			120, 90, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 5, 0, 176, 0, 219, 1, 101, 3, 4, 11, 92, 13, 85, 15, 224, 27, 50, 26, 27, 53, 27, 16, 19, 10, 5, 0, 150, 120,
 			120, 120, 120, 120, 120, 90, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 219, 1, 101, 3, 4, 11, 92, 13, 85, 15, 224, 27, 50, 26, 27, 53, 27, 16, 19, 10,
-			5, 0, 150, 120, 120, 120, 120, 120, 120, 90, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 128, 0, 219, 1, 57, 3, 24, 11, 72, 13, 85, 15, 224, 27, 0, 22, 22, 49,
-			32, 11, 14, 13, 7, 0, 150, 120, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 5, 0, 1, 0, 228, 0, 38, 2, 134, 3, 140, 10, 88, 12,
-			166, 14, 128, 28, 33, 56, 36, 60, 66, 44, 44, 25, 19, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 239, 1, 145, 3,
-			220, 10, 168, 12, 10, 15, 96, 28, 20, 51, 36, 64, 48, 43, 42, 25, 16, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70,
+			0, 0, 0, 250, 0, 0, 17, 0, 128, 0, 219, 1, 57, 3, 24, 11, 72, 13, 85, 15, 224, 27, 0, 22, 22, 49, 32, 11, 14, 13,
+			7, 0, 150, 120, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 5, 0, 1, 0, 228, 0, 38, 2, 134, 3, 140, 10, 88, 12, 166, 14, 128, 28,
+			33, 56, 36, 60, 66, 44, 44, 25, 19, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 239, 1, 145, 3, 220, 10, 168, 12,
+			10, 15, 96, 28, 20, 51, 36, 64, 48, 43, 42, 25, 16, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 54, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 239, 1, 35, 3,
+			44, 11, 208, 12, 166, 14, 96, 28, 28, 39, 27, 61, 38, 29, 27, 20, 11, 0, 150, 120, 120, 120, 120, 120, 105, 120, 120, 44, 45, 70,
 			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0,
-			239, 1, 35, 3, 44, 11, 208, 12, 166, 14, 96, 28, 28, 39, 27, 61, 38, 29, 27, 20, 11, 0, 150, 120, 120, 120, 120, 120, 105, 120,
-			120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 180, 0, 239, 1, 115, 2, 44, 11, 208, 12, 166, 14, 96, 28, 51, 25, 17, 59, 33, 24, 22, 13, 6, 0, 150, 120, 75, 120,
-			120, 120, 105, 30, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 17, 0, 72, 0, 149, 1, 68, 3, 160, 10, 52, 13, 235, 15, 64, 29, 0, 19, 24, 48, 20, 10, 10, 13, 9, 0,
-			150, 105, 120, 120, 120, 120, 105, 120, 135, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 85, 0, 221, 1, 77, 5, 116, 10, 4, 13, 85, 15, 115, 27, 75, 28,
-			21, 51, 46, 25, 22, 17, 9, 3, 157, 141, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15,
-			128, 27, 0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 168, 0, 139, 2,
-			30, 5, 240, 10, 82, 13, 135, 15, 208, 27, 75, 24, 21, 49, 38, 22, 14, 13, 6, 4, 168, 130, 128, 120, 120, 120, 217, 150, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0,
-			64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120,
-			120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 0, 0, 2, 0, 5, 0, 192, 0, 249, 1, 176, 4, 84, 11, 228, 12, 91, 14, 128, 28, 75, 26, 27, 44, 44, 33, 26, 20,
-			7, 0, 150, 150, 120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 19, 16, 48,
-			32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 37, 0, 149, 0, 24, 1, 207, 8, 214, 11, 112, 13,
-			134, 16, 42, 27, 45, 43, 8, 62, 52, 48, 52, 24, 16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 94, 1, 120, 5,
-			84, 11, 212, 13, 185, 15, 160, 28, 45, 23, 30, 44, 24, 21, 24, 20, 14, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 204, 0,
-			94, 1, 120, 5, 84, 11, 212, 13, 185, 15, 160, 28, 0, 23, 30, 44, 24, 21, 24, 20, 14, 0, 165, 105, 135, 120, 120, 120, 60, 120,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			0, 0, 3, 0, 37, 0, 168, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 90, 54, 32, 56, 64, 39, 36, 18, 14, 6,
-			187, 125, 137, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 45, 19, 10, 48, 30, 16,
-			24, 12, 10, 0, 150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 0, 19,
-			10, 48, 30, 16, 24, 12, 10, 0, 150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 120, 0, 118, 1, 6, 4, 70, 10,
-			32, 13, 147, 15, 8, 27, 75, 25, 11, 50, 35, 19, 16, 21, 9, 5, 168, 130, 128, 120, 120, 120, 177, 125, 102, 44, 45, 70, 130, 59,
+			239, 1, 115, 2, 44, 11, 208, 12, 166, 14, 96, 28, 51, 25, 17, 59, 33, 24, 22, 13, 6, 0, 150, 120, 75, 120, 120, 120, 105, 30,
+			120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			17, 0, 72, 0, 149, 1, 68, 3, 160, 10, 52, 13, 235, 15, 64, 29, 0, 19, 24, 48, 20, 10, 10, 13, 9, 0, 150, 105, 120, 120,
+			120, 120, 105, 120, 135, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 85, 0, 221, 1, 77, 5, 116, 10, 4, 13, 85, 15, 115, 27, 75, 28, 21, 51, 46, 25,
+			22, 17, 9, 3, 157, 141, 126, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 18,
+			16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 168, 0, 139, 2, 30, 5, 240, 10,
+			82, 13, 135, 15, 208, 27, 75, 24, 21, 49, 38, 22, 14, 13, 6, 4, 168, 130, 128, 120, 120, 120, 217, 150, 105, 44, 45, 70, 130, 59,
 			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1,
 			20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44,
 			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
-			3, 0, 5, 0, 148, 0, 24, 1, 209, 8, 68, 12, 112, 13, 140, 15, 112, 23, 20, 21, 12, 40, 14, 12, 16, 9, 3, 6, 110, 180,
-			177, 225, 247, 175, 110, 180, 177, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 232, 0, 128, 1, 132, 8, 240, 10, 112, 13, 80, 15, 137, 23, 40, 63, 15, 78, 24, 18, 27, 12,
-			6, 6, 110, 155, 177, 225, 247, 175, 110, 155, 177, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 8, 2, 228, 7, 60, 10, 72, 13, 40, 15, 137, 23, 0, 88, 21, 93,
-			36, 45, 48, 24, 6, 6, 110, 180, 202, 225, 252, 175, 110, 180, 202, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 192, 0, 160, 1, 48, 7, 40, 10, 32, 13,
-			20, 15, 137, 23, 25, 12, 8, 30, 19, 20, 22, 17, 2, 2, 150, 185, 192, 222, 242, 195, 150, 185, 192, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 40, 2, 44, 6,
-			236, 9, 188, 12, 156, 14, 137, 23, 42, 36, 39, 48, 30, 33, 29, 21, 6, 6, 150, 155, 192, 247, 242, 195, 150, 155, 192, 44, 45, 70,
-			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0,
-			168, 2, 216, 4, 236, 9, 48, 12, 116, 14, 143, 22, 0, 65, 48, 66, 54, 33, 36, 24, 6, 3, 202, 155, 192, 180, 242, 225, 202, 155,
-			192, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			0, 0, 3, 0, 5, 0, 176, 0, 80, 1, 56, 9, 84, 11, 112, 13, 100, 15, 88, 27, 20, 19, 15, 32, 12, 20, 18, 11, 2, 5,
-			177, 192, 197, 235, 220, 175, 177, 192, 197, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 237, 0, 219, 1, 0, 8, 136, 10, 108, 13, 54, 15, 47, 28, 40, 35, 24, 47, 36, 36,
-			28, 19, 7, 6, 214, 159, 176, 171, 165, 144, 177, 192, 197, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 44,
-			31, 56, 60, 55, 42, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 116, 0, 0, 1, 16, 9, 144, 11,
-			212, 13, 180, 15, 243, 22, 25, 10, 3, 30, 27, 15, 15, 9, 0, 3, 150, 142, 140, 165, 210, 175, 150, 142, 140, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 125, 0, 25, 1,
-			152, 8, 44, 11, 16, 14, 160, 15, 243, 22, 40, 20, 4, 46, 28, 20, 23, 12, 0, 4, 150, 142, 138, 143, 162, 175, 150, 142, 140, 44,
-			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			128, 0, 40, 1, 132, 8, 124, 11, 32, 13, 40, 15, 44, 26, 0, 152, 12, 116, 28, 44, 69, 28, 12, 8, 150, 190, 200, 235, 185, 157,
-			150, 190, 200, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 0, 0, 4, 0, 37, 0, 0, 1, 112, 1, 153, 8, 154, 11, 228, 12, 216, 14, 88, 27, 20, 25, 9, 45, 14, 12, 16, 12,
-			2, 4, 120, 187, 137, 187, 150, 237, 120, 187, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 232, 0, 248, 1, 240, 5, 176, 9, 128, 12, 216, 14, 88, 27, 20, 35, 31, 55,
-			26, 16, 16, 12, 2, 4, 127, 140, 182, 187, 222, 237, 127, 140, 182, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 216, 0, 8, 2, 136, 4, 176, 9, 8, 12, 216, 14, 88, 27,
-			35, 54, 30, 69, 39, 21, 21, 15, 3, 6, 182, 140, 182, 187, 222, 237, 182, 140, 182, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 232, 0, 64, 2, 252, 3, 120, 10, 68, 12,
-			216, 14, 88, 27, 0, 88, 27, 87, 55, 27, 33, 21, 6, 6, 182, 155, 145, 187, 222, 237, 182, 155, 145, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 15, 0, 4, 0, 5, 0, 140, 0,
-			0, 1, 96, 9, 64, 11, 208, 12, 100, 15, 88, 27, 20, 30, 10, 54, 25, 10, 18, 7, 3, 7, 77, 147, 150, 150, 150, 150, 77, 147,
-			150, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 140, 0, 248, 0, 96, 9, 64, 11, 208, 12, 100, 15, 88, 27, 15, 19, 8, 42, 11, 11, 14, 5, 2, 5, 77, 147, 150, 150,
+			2, 0, 5, 0, 192, 0, 249, 1, 176, 4, 84, 11, 228, 12, 91, 14, 128, 28, 75, 26, 27, 44, 44, 33, 26, 20, 7, 0, 150, 150,
+			120, 120, 120, 120, 150, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 19, 16, 48, 32, 17, 11, 10,
+			7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 37, 0, 149, 0, 24, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27,
+			45, 43, 8, 62, 52, 48, 52, 24, 16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 94, 1, 120, 5, 84, 11, 212, 13,
+			185, 15, 160, 28, 45, 23, 30, 44, 24, 21, 24, 20, 14, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 204, 0, 94, 1, 120, 5,
+			84, 11, 212, 13, 185, 15, 160, 28, 0, 23, 30, 44, 24, 21, 24, 20, 14, 0, 165, 105, 135, 120, 120, 120, 60, 120, 105, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0,
+			37, 0, 168, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 90, 54, 32, 56, 64, 39, 36, 18, 14, 6, 187, 125, 137, 120,
+			120, 120, 165, 135, 135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 45, 19, 10, 48, 30, 16, 24, 12, 10, 0,
+			150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 76, 0, 104, 1, 100, 5, 120, 10, 132, 13, 135, 15, 32, 29, 0, 19, 10, 48, 30, 16,
+			24, 12, 10, 0, 150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 120, 0, 118, 1, 6, 4, 70, 10, 32, 13, 147, 15,
+			8, 27, 75, 25, 11, 50, 35, 19, 16, 21, 9, 5, 168, 130, 128, 120, 120, 120, 177, 125, 102, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11,
+			52, 13, 235, 15, 128, 27, 0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0,
+			148, 0, 24, 1, 209, 8, 68, 12, 112, 13, 140, 15, 112, 23, 20, 21, 12, 40, 14, 12, 16, 9, 3, 6, 110, 180, 177, 225, 247, 175,
+			110, 180, 177, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 5, 0, 232, 0, 128, 1, 132, 8, 240, 10, 112, 13, 80, 15, 137, 23, 40, 63, 15, 78, 24, 18, 27, 12, 6, 6, 110, 155,
+			177, 225, 247, 175, 110, 155, 177, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 8, 2, 228, 7, 60, 10, 72, 13, 40, 15, 137, 23, 0, 88, 21, 93, 36, 45, 48, 24,
+			6, 6, 110, 180, 202, 225, 252, 175, 110, 180, 202, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 192, 0, 160, 1, 48, 7, 40, 10, 32, 13, 20, 15, 137, 23,
+			25, 12, 8, 30, 19, 20, 22, 17, 2, 2, 150, 185, 192, 222, 242, 195, 150, 185, 192, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 40, 2, 44, 6, 236, 9, 188, 12,
+			156, 14, 137, 23, 42, 36, 39, 48, 30, 33, 29, 21, 6, 6, 150, 155, 192, 247, 242, 195, 150, 155, 192, 44, 45, 70, 130, 55, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0, 168, 2, 216, 4,
+			236, 9, 48, 12, 116, 14, 143, 22, 0, 65, 48, 66, 54, 33, 36, 24, 6, 3, 202, 155, 192, 180, 242, 225, 202, 155, 192, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0,
+			5, 0, 176, 0, 80, 1, 56, 9, 84, 11, 112, 13, 100, 15, 88, 27, 20, 19, 15, 32, 12, 20, 18, 11, 2, 5, 177, 192, 197, 235,
+			220, 175, 177, 192, 197, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 237, 0, 219, 1, 0, 8, 136, 10, 108, 13, 54, 15, 47, 28, 40, 35, 24, 47, 36, 36, 28, 19, 7, 6,
+			214, 159, 176, 171, 165, 144, 177, 192, 197, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 44, 31, 56, 60, 55,
+			42, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 116, 0, 0, 1, 16, 9, 144, 11, 212, 13, 180, 15,
+			243, 22, 25, 10, 3, 30, 27, 15, 15, 9, 0, 3, 150, 142, 140, 165, 210, 175, 150, 142, 140, 44, 45, 70, 130, 54, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 125, 0, 25, 1, 152, 8, 44, 11,
+			16, 14, 160, 15, 243, 22, 40, 20, 4, 46, 28, 20, 23, 12, 0, 4, 150, 142, 138, 143, 162, 175, 150, 142, 140, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 128, 0, 40, 1,
+			132, 8, 124, 11, 32, 13, 40, 15, 44, 26, 0, 152, 12, 116, 28, 44, 69, 28, 12, 8, 150, 190, 200, 235, 185, 157, 150, 190, 200, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
+			4, 0, 37, 0, 0, 1, 112, 1, 153, 8, 154, 11, 228, 12, 216, 14, 88, 27, 20, 25, 9, 45, 14, 12, 16, 12, 2, 4, 120, 187,
+			137, 187, 150, 237, 120, 187, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 37, 0, 232, 0, 248, 1, 240, 5, 176, 9, 128, 12, 216, 14, 88, 27, 20, 35, 31, 55, 26, 16, 16, 12,
+			2, 4, 127, 140, 182, 187, 222, 237, 127, 140, 182, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 216, 0, 8, 2, 136, 4, 176, 9, 8, 12, 216, 14, 88, 27, 35, 54, 30, 69,
+			39, 21, 21, 15, 3, 6, 182, 140, 182, 187, 222, 237, 182, 140, 182, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 232, 0, 64, 2, 252, 3, 120, 10, 68, 12, 216, 14, 88, 27,
+			0, 88, 27, 87, 55, 27, 33, 21, 6, 6, 182, 155, 145, 187, 222, 237, 182, 155, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 15, 0, 4, 0, 5, 0, 140, 0, 0, 1, 96, 9,
+			64, 11, 208, 12, 100, 15, 88, 27, 20, 30, 10, 54, 25, 10, 18, 7, 3, 7, 77, 147, 150, 150, 150, 150, 77, 147, 150, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 140, 0,
+			248, 0, 96, 9, 64, 11, 208, 12, 100, 15, 88, 27, 15, 19, 8, 42, 11, 11, 14, 5, 2, 5, 77, 147, 150, 150, 150, 150, 77, 147,
+			150, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 140, 0, 0, 1, 96, 9, 64, 11, 208, 12, 100, 15, 88, 27, 30, 26, 10, 50, 25, 14, 18, 7, 3, 7, 77, 147, 150, 150,
 			150, 150, 77, 147, 150, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 140, 0, 0, 1, 96, 9, 64, 11, 208, 12, 100, 15, 88, 27, 30, 26, 10, 50, 25, 14, 18, 7, 3, 7,
-			77, 147, 150, 150, 150, 150, 77, 147, 150, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 164, 0, 32, 1, 52, 8, 236, 9, 168, 12, 172, 14, 175, 25, 0, 117, 0, 112, 24, 24,
-			44, 36, 8, 12, 150, 180, 137, 137, 150, 175, 150, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 132, 0, 232, 0, 232, 8, 220, 10, 192, 13, 180, 15,
-			200, 25, 35, 6, 6, 24, 6, 21, 24, 6, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 185, 8, 224, 11,
-			72, 13, 80, 15, 150, 25, 50, 17, 3, 45, 7, 26, 30, 3, 7, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 53,
+			0, 250, 0, 0, 1, 0, 164, 0, 32, 1, 52, 8, 236, 9, 168, 12, 172, 14, 175, 25, 0, 117, 0, 112, 24, 24, 44, 36, 8, 12,
+			150, 180, 137, 137, 150, 175, 150, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 132, 0, 232, 0, 232, 8, 220, 10, 192, 13, 180, 15, 200, 25, 35, 6,
+			6, 24, 6, 21, 24, 6, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 185, 8, 224, 11, 72, 13, 80, 15,
+			150, 25, 50, 17, 3, 45, 7, 26, 30, 3, 7, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 232, 0, 185, 8, 224, 11,
+			72, 13, 80, 15, 150, 25, 25, 23, 3, 53, 3, 26, 30, 3, 0, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 54,
 			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 232, 0,
-			185, 8, 224, 11, 72, 13, 80, 15, 150, 25, 25, 23, 3, 53, 3, 26, 30, 3, 0, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44,
-			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
-			132, 0, 232, 0, 185, 8, 224, 11, 72, 13, 80, 15, 0, 29, 0, 15, 3, 43, 3, 18, 24, 3, 0, 0, 120, 105, 150, 120, 120, 120,
-			45, 135, 90, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 145, 0, 4, 0, 37, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25, 60, 20, 8, 48, 17, 30, 17, 17,
+			185, 8, 224, 11, 72, 13, 80, 15, 0, 29, 0, 15, 3, 43, 3, 18, 24, 3, 0, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 145, 0,
+			4, 0, 37, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25, 60, 20, 8, 48, 17, 30, 17, 17, 8, 0, 120, 105,
+			120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25, 60, 20, 8, 48, 17, 30, 17, 17,
 			8, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25, 60, 20, 8, 48,
-			17, 30, 17, 17, 8, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25, 25, 9, 6, 33,
+			12, 21, 12, 12, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13, 140, 15, 225, 25,
-			25, 9, 6, 33, 12, 21, 12, 12, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 240, 0, 76, 9, 28, 12, 212, 13,
-			140, 15, 225, 25, 0, 10, 6, 35, 12, 22, 12, 12, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 104, 0,
-			64, 1, 64, 6, 108, 7, 192, 13, 180, 15, 32, 29, 55, 17, 6, 44, 34, 13, 17, 13, 8, 0, 150, 135, 97, 120, 120, 120, 90, 105,
+			0, 10, 6, 35, 12, 22, 12, 12, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 104, 0, 64, 1, 64, 6,
+			108, 7, 192, 13, 180, 15, 32, 29, 55, 17, 6, 44, 34, 13, 17, 13, 8, 0, 150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 9, 0, 104, 0,
+			64, 1, 64, 6, 108, 7, 192, 13, 180, 15, 32, 29, 40, 23, 8, 52, 40, 16, 20, 16, 10, 0, 150, 135, 97, 120, 120, 120, 90, 105,
 			97, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			9, 0, 104, 0, 64, 1, 64, 6, 108, 7, 192, 13, 180, 15, 32, 29, 40, 23, 8, 52, 40, 16, 20, 16, 10, 0, 150, 135, 97, 120,
+			1, 0, 104, 0, 64, 1, 64, 6, 108, 7, 192, 13, 180, 15, 32, 29, 0, 23, 8, 52, 40, 16, 20, 16, 10, 0, 150, 135, 97, 120,
 			120, 120, 90, 105, 97, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 104, 0, 64, 1, 64, 6, 108, 7, 192, 13, 180, 15, 32, 29, 0, 23, 8, 52, 40, 16, 20, 16, 10, 0,
-			150, 135, 97, 120, 120, 120, 90, 105, 97, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 3, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 50, 38,
+			0, 250, 0, 0, 100, 0, 3, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 50, 38, 18, 54, 39, 30,
+			27, 24, 12, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 50, 38,
 			18, 54, 39, 30, 27, 24, 12, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15,
-			144, 26, 50, 38, 18, 54, 39, 30, 27, 24, 12, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 184, 1, 32, 3, 64, 11,
-			32, 13, 120, 15, 144, 26, 0, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 90, 0, 4, 0, 5, 0,
-			176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 30, 24, 14, 43, 31, 24, 21, 19, 9, 6, 162, 127, 150, 120, 120, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15,
+			144, 26, 0, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 90, 0, 4, 0, 5, 0, 176, 0, 184, 1,
+			32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 30, 24, 14, 43, 31, 24, 21, 19, 9, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
+			176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 40, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120,
 			162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 40, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127,
+			0, 0, 21, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 20, 30, 16, 50, 28, 28, 25, 22, 11, 7, 162, 127,
 			150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 21, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 20, 30, 16, 50, 28, 28, 25, 22,
+			0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 0, 33, 16, 50, 36, 28, 25, 22,
 			11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 0, 33, 16, 50,
-			36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 3, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13,
-			120, 15, 144, 26, 30, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 21, 0, 176, 0, 184, 1, 32, 3,
-			64, 11, 32, 13, 120, 15, 144, 26, 20, 30, 16, 50, 28, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0,
-			184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26, 0, 29, 15, 46, 33, 26, 23, 20, 10, 6, 162, 127, 150, 120, 120, 120, 162, 127,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			77, 0, 3, 0, 5, 0, 96, 0, 99, 1, 214, 2, 156, 9, 8, 12, 135, 15, 192, 27, 30, 25, 8, 57, 20, 14, 14, 10, 8, 0,
-			120, 135, 90, 120, 120, 120, 60, 105, 180, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 192, 0, 179, 1, 134, 3, 212, 8, 204, 11, 166, 14, 192, 27, 47, 45, 18, 78, 33, 14,
-			16, 10, 4, 0, 120, 111, 150, 120, 120, 120, 60, 81, 123, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 43, 2, 18, 5, 132, 8, 28, 12, 166, 14, 192, 27, 0, 76,
-			39, 84, 98, 46, 59, 40, 11, 0, 120, 150, 120, 120, 120, 120, 60, 120, 75, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 71, 0, 3, 0, 5, 0, 192, 0, 179, 1, 92, 3, 252, 8,
-			184, 11, 60, 15, 32, 28, 26, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82, 90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 208, 0, 199, 1,
-			132, 3, 16, 9, 184, 11, 60, 15, 32, 28, 45, 62, 31, 81, 61, 30, 24, 15, 8, 0, 120, 120, 150, 120, 120, 120, 75, 90, 105, 44,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 3, 0, 5, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13, 120, 15, 144, 26,
+			30, 33, 16, 50, 36, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 21, 0, 176, 0, 184, 1, 32, 3, 64, 11, 32, 13,
+			120, 15, 144, 26, 20, 30, 16, 50, 28, 28, 25, 22, 11, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 184, 1, 32, 3,
+			64, 11, 32, 13, 120, 15, 144, 26, 0, 29, 15, 46, 33, 26, 23, 20, 10, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 77, 0, 3, 0,
+			5, 0, 96, 0, 99, 1, 214, 2, 156, 9, 8, 12, 135, 15, 192, 27, 30, 25, 8, 57, 20, 14, 14, 10, 8, 0, 120, 135, 90, 120,
+			120, 120, 60, 105, 180, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 192, 0, 179, 1, 134, 3, 212, 8, 204, 11, 166, 14, 192, 27, 47, 45, 18, 78, 33, 14, 16, 10, 4, 0,
+			120, 111, 150, 120, 120, 120, 60, 81, 123, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 43, 2, 18, 5, 132, 8, 28, 12, 166, 14, 192, 27, 0, 76, 39, 84, 98, 46,
+			59, 40, 11, 0, 120, 150, 120, 120, 120, 120, 60, 120, 75, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 71, 0, 3, 0, 5, 0, 192, 0, 179, 1, 92, 3, 252, 8, 184, 11, 60, 15,
+			32, 28, 26, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82, 90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 208, 0, 199, 1, 132, 3, 16, 9,
+			184, 11, 60, 15, 32, 28, 45, 62, 31, 81, 61, 30, 24, 15, 8, 0, 120, 120, 150, 120, 120, 120, 75, 90, 105, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 16, 1, 223, 2,
+			255, 3, 20, 10, 184, 11, 35, 15, 224, 27, 0, 122, 45, 69, 106, 78, 82, 48, 10, 0, 120, 195, 120, 120, 120, 120, 195, 120, 120, 44,
+			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0,
+			3, 0, 5, 0, 100, 0, 154, 1, 12, 3, 96, 9, 224, 11, 166, 14, 128, 27, 35, 41, 8, 77, 28, 15, 16, 12, 7, 0, 120, 120,
+			105, 120, 120, 120, 120, 75, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 38, 2, 20, 5, 192, 8, 48, 12, 166, 14, 128, 27, 35, 65, 35, 77, 80, 45, 38, 29,
+			8, 0, 120, 120, 180, 120, 120, 120, 120, 120, 105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 78, 2, 249, 5, 252, 8, 128, 12, 66, 14, 128, 27, 0, 91, 44, 83,
+			109, 55, 49, 34, 10, 0, 120, 120, 180, 120, 120, 120, 120, 120, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 76, 0, 3, 0, 37, 0, 40, 0, 112, 1, 68, 3, 36, 9, 28, 12,
+			216, 14, 32, 28, 40, 45, 19, 77, 28, 16, 16, 12, 8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 120, 0, 112, 1, 153, 4,
+			76, 9, 148, 12, 166, 14, 192, 27, 36, 43, 20, 76, 24, 24, 26, 17, 13, 0, 120, 90, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70,
+			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 40, 0,
+			79, 1, 221, 7, 96, 9, 208, 12, 116, 14, 192, 27, 0, 89, 9, 86, 74, 89, 97, 58, 13, 0, 120, 120, 120, 120, 120, 120, 120, 120,
+			120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			73, 0, 3, 0, 5, 0, 112, 0, 84, 1, 49, 2, 236, 9, 64, 11, 91, 14, 160, 27, 33, 29, 13, 60, 24, 12, 12, 6, 5, 0,
+			120, 135, 60, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 136, 1, 180, 2, 0, 10, 64, 11, 91, 14, 160, 27, 40, 35, 24, 64, 44, 25,
+			23, 8, 11, 0, 120, 105, 75, 120, 120, 120, 75, 105, 105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 144, 0, 184, 1, 181, 2, 20, 10, 64, 11, 91, 14, 32, 28, 0, 93,
+			35, 114, 65, 46, 46, 17, 21, 0, 120, 75, 60, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 128, 0, 84, 1, 108, 2, 66, 9,
+			164, 11, 116, 14, 144, 27, 33, 39, 19, 69, 26, 12, 12, 9, 4, 0, 120, 120, 90, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 144, 0, 120, 1,
+			192, 3, 252, 8, 28, 12, 141, 14, 128, 27, 37, 43, 20, 77, 42, 21, 23, 17, 10, 0, 120, 96, 129, 120, 120, 120, 75, 84, 126, 44,
 			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			16, 1, 223, 2, 255, 3, 20, 10, 184, 11, 35, 15, 224, 27, 0, 122, 45, 69, 106, 78, 82, 48, 10, 0, 120, 195, 120, 120, 120, 120,
-			195, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 70, 0, 3, 0, 5, 0, 100, 0, 154, 1, 12, 3, 96, 9, 224, 11, 166, 14, 128, 27, 35, 41, 8, 77, 28, 15, 16, 12,
-			7, 0, 120, 120, 105, 120, 120, 120, 120, 75, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 228, 0, 38, 2, 20, 5, 192, 8, 48, 12, 166, 14, 128, 27, 35, 65, 35, 77,
-			80, 45, 38, 29, 8, 0, 120, 120, 180, 120, 120, 120, 120, 120, 105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 78, 2, 249, 5, 252, 8, 128, 12, 66, 14, 128, 27,
-			0, 91, 44, 83, 109, 55, 49, 34, 10, 0, 120, 120, 180, 120, 120, 120, 120, 120, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 76, 0, 3, 0, 37, 0, 40, 0, 112, 1, 68, 3,
-			36, 9, 28, 12, 216, 14, 32, 28, 40, 45, 19, 77, 28, 16, 16, 12, 8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 120, 0,
-			112, 1, 153, 4, 76, 9, 148, 12, 166, 14, 192, 27, 36, 43, 20, 76, 24, 24, 26, 17, 13, 0, 120, 90, 120, 120, 120, 120, 120, 90,
-			105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 40, 0, 79, 1, 221, 7, 96, 9, 208, 12, 116, 14, 192, 27, 0, 89, 9, 86, 74, 89, 97, 58, 13, 0, 120, 120, 120, 120,
-			120, 120, 120, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 73, 0, 3, 0, 5, 0, 112, 0, 84, 1, 49, 2, 236, 9, 64, 11, 91, 14, 160, 27, 33, 29, 13, 60, 24, 12,
-			12, 6, 5, 0, 120, 135, 60, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 136, 1, 180, 2, 0, 10, 64, 11, 91, 14, 160, 27, 40, 35,
-			24, 64, 44, 25, 23, 8, 11, 0, 120, 105, 75, 120, 120, 120, 75, 105, 105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 144, 0, 184, 1, 181, 2, 20, 10, 64, 11, 91, 14,
-			32, 28, 0, 93, 35, 114, 65, 46, 46, 17, 21, 0, 120, 75, 60, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 128, 0, 84, 1,
-			108, 2, 66, 9, 164, 11, 116, 14, 144, 27, 33, 39, 19, 69, 26, 12, 12, 9, 4, 0, 120, 120, 90, 120, 120, 120, 75, 90, 90, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
-			144, 0, 120, 1, 192, 3, 252, 8, 28, 12, 141, 14, 128, 27, 37, 43, 20, 77, 42, 21, 23, 17, 10, 0, 120, 96, 129, 120, 120, 120,
-			75, 84, 126, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 144, 0, 164, 1, 128, 5, 152, 8, 88, 12, 141, 14, 128, 27, 0, 119, 37, 140, 62, 45, 54, 39, 20, 0, 120, 90,
-			120, 120, 120, 120, 75, 60, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 30, 0, 2, 0, 1, 0, 84, 0, 34, 1, 217, 1, 0, 10, 224, 11, 10, 15, 128, 27, 30, 20, 4, 50,
+			144, 0, 164, 1, 128, 5, 152, 8, 88, 12, 141, 14, 128, 27, 0, 119, 37, 140, 62, 45, 54, 39, 20, 0, 120, 90, 120, 120, 120, 120,
+			75, 60, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 30, 0, 2, 0, 1, 0, 84, 0, 34, 1, 217, 1, 0, 10, 224, 11, 10, 15, 128, 27, 30, 20, 4, 50, 40, 10, 9, 8,
+			6, 0, 120, 120, 60, 120, 120, 120, 120, 45, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 0, 34, 1, 217, 1, 0, 10, 224, 11, 10, 15, 128, 27, 0, 20, 4, 50,
 			40, 10, 9, 8, 6, 0, 120, 120, 60, 120, 120, 120, 120, 45, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 0, 34, 1, 217, 1, 0, 10, 224, 11, 10, 15, 128, 27,
-			0, 20, 4, 50, 40, 10, 9, 8, 6, 0, 120, 120, 60, 120, 120, 120, 120, 45, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 30, 0, 2, 0, 5, 0, 64, 0, 19, 1, 206, 1,
-			56, 9, 28, 12, 220, 15, 192, 27, 30, 17, 2, 43, 27, 13, 8, 4, 3, 0, 120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70,
-			130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 0,
-			34, 1, 217, 1, 56, 9, 68, 12, 100, 15, 128, 27, 0, 19, 4, 50, 36, 16, 9, 8, 6, 0, 120, 120, 60, 120, 120, 120, 120, 45,
-			75, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			55, 0, 3, 0, 5, 0, 64, 0, 19, 1, 204, 1, 56, 9, 28, 12, 220, 15, 192, 27, 25, 11, 2, 36, 21, 12, 7, 3, 3, 0,
-			120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 64, 0, 19, 1, 204, 1, 56, 9, 28, 12, 220, 15, 192, 27, 30, 17, 2, 45, 22, 15,
-			9, 4, 3, 0, 120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 64, 0, 19, 1, 224, 1, 56, 9, 28, 12, 220, 15, 192, 27, 0, 20,
-			3, 48, 28, 16, 10, 5, 4, 0, 120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 125, 0, 4, 0, 37, 0, 214, 0, 176, 1, 161, 3, 232, 8,
-			88, 12, 178, 14, 96, 27, 45, 21, 22, 44, 26, 13, 19, 12, 9, 5, 202, 90, 150, 120, 120, 120, 145, 120, 135, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 172, 0, 112, 1,
-			132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 40, 18, 17, 37, 28, 11, 8, 8, 7, 5, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44,
-			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			172, 0, 112, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 40, 18, 17, 37, 28, 11, 8, 8, 7, 5, 200, 90, 120, 120, 120, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 55, 0, 3, 0, 5, 0, 64, 0, 19, 1, 204, 1, 56, 9, 28, 12,
+			220, 15, 192, 27, 25, 10, 2, 33, 19, 11, 7, 3, 2, 0, 120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70, 130, 50, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 64, 0, 19, 1, 204, 1,
+			56, 9, 28, 12, 220, 15, 192, 27, 30, 17, 2, 45, 22, 15, 9, 4, 3, 0, 120, 135, 90, 120, 120, 120, 60, 60, 120, 44, 45, 70,
+			130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 64, 0,
+			19, 1, 224, 1, 56, 9, 28, 12, 220, 15, 192, 27, 0, 20, 3, 48, 28, 16, 10, 5, 4, 0, 120, 135, 90, 120, 120, 120, 60, 60,
+			120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			125, 0, 4, 0, 37, 0, 214, 0, 176, 1, 161, 3, 232, 8, 88, 12, 178, 14, 96, 27, 45, 21, 22, 44, 26, 13, 19, 12, 9, 5,
+			202, 90, 150, 120, 120, 120, 145, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 172, 0, 112, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 40, 18, 17, 37, 28, 11,
+			8, 8, 7, 5, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 112, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 40, 18,
+			17, 37, 28, 11, 8, 8, 7, 5, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 96, 1, 92, 3, 192, 8, 168, 12, 60, 15,
+			96, 27, 0, 13, 15, 30, 23, 10, 7, 7, 6, 5, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 90, 0, 3, 0, 37, 0, 214, 0, 176, 1,
+			161, 3, 232, 8, 88, 12, 178, 14, 96, 27, 40, 33, 26, 52, 43, 15, 22, 14, 11, 7, 202, 90, 150, 120, 120, 120, 145, 120, 135, 44,
+			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 21, 0,
+			172, 0, 112, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 50, 25, 17, 45, 35, 14, 10, 10, 8, 7, 200, 90, 120, 120, 120, 120,
 			200, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 172, 0, 96, 1, 92, 3, 192, 8, 168, 12, 60, 15, 96, 27, 0, 13, 15, 30, 23, 10, 7, 7, 6, 5, 200, 90,
+			0, 0, 1, 0, 172, 0, 96, 1, 92, 3, 192, 8, 168, 12, 60, 15, 96, 27, 0, 17, 15, 36, 27, 12, 9, 9, 7, 6, 200, 90,
 			120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 90, 0, 3, 0, 37, 0, 214, 0, 176, 1, 161, 3, 232, 8, 88, 12, 178, 14, 96, 27, 40, 33, 26, 52,
-			43, 15, 22, 14, 11, 7, 202, 90, 150, 120, 120, 120, 145, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 21, 0, 172, 0, 112, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27,
-			50, 25, 17, 45, 35, 14, 10, 10, 8, 7, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 96, 1, 92, 3, 192, 8, 168, 12,
-			60, 15, 96, 27, 0, 17, 15, 36, 27, 12, 9, 9, 7, 6, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 55, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 121, 0, 4, 0, 5, 0, 76, 0,
-			255, 0, 141, 8, 180, 10, 32, 13, 85, 15, 160, 28, 21, 21, 10, 48, 36, 37, 48, 23, 13, 0, 120, 90, 105, 120, 120, 120, 60, 105,
-			120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 76, 0, 255, 0, 141, 8, 140, 10, 248, 12, 185, 15, 160, 28, 40, 25, 13, 52, 38, 42, 54, 31, 11, 0, 120, 90, 105, 120,
-			120, 120, 60, 75, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 5, 0, 220, 0, 144, 1, 89, 7, 76, 9, 188, 12, 141, 14, 160, 28, 60, 50, 36, 78, 45, 57, 48, 32, 8, 0,
-			120, 75, 120, 120, 120, 120, 60, 120, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 220, 0, 8, 2, 249, 5, 172, 8, 48, 12, 41, 14, 160, 28, 0, 76, 43, 73, 97, 69,
-			65, 41, 13, 0, 120, 120, 120, 120, 120, 120, 75, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 103, 0, 4, 0, 5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14,
-			0, 29, 31, 20, 3, 46, 21, 33, 43, 24, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 149, 1, 177, 7, 216, 9,
-			128, 12, 116, 14, 0, 28, 31, 28, 26, 55, 37, 47, 46, 28, 6, 0, 120, 120, 120, 120, 120, 120, 45, 105, 120, 44, 45, 70, 130, 52,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 229, 1,
-			136, 6, 36, 9, 28, 12, 116, 14, 0, 28, 41, 40, 33, 55, 70, 54, 51, 31, 7, 0, 120, 120, 150, 120, 120, 120, 75, 105, 120, 44,
-			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			228, 0, 37, 3, 252, 4, 232, 8, 184, 11, 16, 14, 224, 27, 0, 82, 42, 73, 109, 66, 59, 44, 10, 0, 120, 150, 120, 120, 120, 120,
-			120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 115, 0, 4, 0, 5, 0, 116, 0, 225, 0, 229, 8, 64, 11, 32, 13, 160, 15, 192, 28, 45, 20, 3, 43, 33, 38, 46, 30,
-			7, 0, 120, 105, 135, 120, 120, 120, 45, 150, 105, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 9, 1, 207, 8, 160, 10, 208, 12, 4, 16, 192, 28, 40, 24, 5, 45,
-			42, 48, 51, 23, 5, 0, 120, 105, 135, 120, 120, 120, 45, 150, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 164, 0, 179, 1, 166, 7, 176, 9, 248, 12, 160, 15, 192, 28,
-			30, 49, 33, 77, 47, 57, 47, 23, 4, 0, 120, 117, 159, 120, 120, 120, 63, 90, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0, 53, 2, 224, 6, 96, 9, 168, 12,
-			66, 14, 192, 28, 0, 82, 46, 69, 100, 83, 74, 46, 8, 0, 120, 135, 195, 120, 120, 120, 90, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 84, 0,
-			255, 0, 39, 9, 164, 11, 92, 13, 135, 15, 224, 28, 30, 18, 6, 43, 28, 36, 41, 26, 9, 0, 120, 90, 120, 120, 120, 120, 75, 120,
-			120, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 84, 0, 250, 0, 39, 9, 164, 11, 92, 13, 135, 15, 64, 28, 65, 20, 5, 44, 34, 41, 46, 23, 9, 0, 120, 90, 120, 120,
-			120, 120, 75, 105, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 84, 0, 59, 1, 174, 8, 160, 10, 208, 12, 235, 15, 64, 28, 0, 65, 15, 83, 68, 74, 78, 41, 12, 0,
-			120, 90, 120, 120, 120, 120, 75, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 125, 0, 5, 0, 5, 0, 136, 0, 240, 0, 172, 8, 224, 11, 52, 13, 191, 14, 32, 28, 30, 22,
-			9, 46, 23, 27, 40, 28, 13, 0, 120, 120, 135, 120, 120, 120, 60, 90, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 4, 1, 112, 8, 80, 10, 52, 13, 166, 14,
-			32, 28, 25, 31, 9, 57, 31, 27, 42, 39, 12, 0, 120, 120, 135, 120, 120, 120, 60, 90, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 44, 1, 133, 7, 96, 9,
-			148, 12, 41, 14, 32, 28, 30, 45, 16, 72, 57, 48, 37, 29, 15, 0, 120, 120, 105, 120, 120, 120, 60, 90, 90, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 164, 1,
-			150, 5, 96, 9, 48, 12, 41, 14, 32, 28, 40, 49, 26, 80, 58, 44, 38, 28, 18, 0, 120, 120, 90, 120, 120, 120, 60, 75, 135, 44,
-			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			152, 0, 184, 1, 178, 3, 116, 9, 184, 11, 41, 14, 96, 27, 0, 127, 48, 110, 106, 80, 62, 41, 26, 0, 120, 120, 120, 120, 120, 120,
-			75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 60, 0, 3, 0, 5, 0, 88, 0, 24, 1, 6, 9, 140, 10, 32, 13, 191, 14, 224, 28, 30, 18, 9, 41, 37, 34, 45, 21,
-			6, 0, 135, 120, 135, 120, 120, 120, 30, 105, 75, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 88, 0, 84, 1, 188, 7, 36, 9, 168, 12, 191, 14, 224, 28, 60, 20, 5, 45,
-			20, 48, 40, 25, 5, 0, 135, 135, 135, 120, 120, 120, 30, 90, 75, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 144, 1, 56, 7, 212, 8, 168, 12, 191, 14, 224, 28,
-			0, 85, 34, 108, 57, 76, 60, 37, 9, 0, 120, 105, 120, 120, 120, 120, 30, 75, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 30, 0, 2, 0, 1, 0, 180, 0, 29, 1, 185, 8,
-			200, 10, 32, 13, 116, 14, 0, 29, 30, 19, 3, 45, 21, 33, 42, 24, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70,
-			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0,
-			29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 0, 19, 3, 45, 21, 33, 42, 24, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135,
-			90, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			25, 0, 2, 0, 5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 25, 14, 3, 39, 18, 28, 36, 20, 6, 0,
-			120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 0, 25, 4, 52, 24, 38,
-			48, 27, 8, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15,
-			32, 28, 35, 21, 25, 39, 40, 37, 30, 20, 7, 6, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 156, 0, 72, 1, 174, 8, 160, 10,
-			92, 13, 10, 15, 32, 28, 35, 17, 22, 34, 35, 32, 26, 17, 6, 5, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 72, 1,
-			192, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 17, 21, 37, 23, 20, 20, 14, 6, 5, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44,
-			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
-			3, 0, 5, 0, 148, 0, 24, 1, 209, 8, 184, 11, 112, 13, 140, 15, 112, 23, 20, 21, 12, 40, 14, 12, 16, 9, 3, 6, 110, 180,
-			177, 225, 247, 175, 110, 180, 177, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 232, 0, 128, 1, 132, 8, 240, 10, 112, 13, 80, 15, 137, 23, 40, 63, 15, 78, 24, 18, 27, 12,
-			6, 6, 110, 155, 177, 225, 247, 175, 110, 155, 177, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 8, 2, 228, 7, 60, 10, 72, 13, 40, 15, 137, 23, 0, 88, 21, 93,
-			36, 45, 48, 24, 6, 6, 110, 180, 202, 225, 252, 175, 110, 180, 202, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 192, 0, 160, 1, 48, 7, 40, 10, 32, 13,
-			20, 15, 137, 23, 25, 12, 8, 30, 19, 20, 22, 17, 2, 2, 150, 185, 192, 222, 242, 195, 150, 185, 192, 44, 45, 70, 130, 53, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 40, 2, 44, 6,
-			236, 9, 188, 12, 156, 14, 137, 23, 42, 36, 39, 48, 30, 33, 29, 21, 6, 6, 150, 155, 192, 247, 242, 195, 150, 155, 192, 44, 45, 70,
-			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0,
-			168, 2, 216, 4, 236, 9, 48, 12, 116, 14, 143, 22, 0, 65, 48, 66, 54, 33, 36, 24, 6, 3, 202, 155, 192, 180, 242, 225, 202, 155,
-			192, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			0, 0, 3, 0, 5, 0, 176, 0, 80, 1, 212, 8, 84, 11, 112, 13, 100, 15, 88, 27, 20, 19, 15, 32, 12, 20, 18, 11, 2, 5,
-			177, 192, 197, 235, 220, 175, 177, 192, 197, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 237, 0, 219, 1, 0, 8, 136, 10, 108, 13, 54, 15, 47, 28, 40, 35, 24, 47, 36, 36,
-			28, 19, 7, 6, 214, 159, 176, 171, 165, 144, 177, 192, 197, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 44,
-			31, 56, 60, 55, 42, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 116, 0, 24, 1, 152, 8, 44, 11,
-			112, 13, 120, 15, 243, 22, 20, 8, 3, 30, 15, 15, 15, 9, 0, 3, 150, 142, 140, 165, 210, 175, 150, 142, 140, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 128, 0, 32, 1,
-			52, 8, 4, 11, 28, 14, 160, 15, 243, 22, 40, 21, 4, 48, 16, 20, 24, 12, 0, 4, 150, 142, 137, 137, 150, 175, 150, 142, 137, 44,
-			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			128, 0, 40, 1, 132, 8, 124, 11, 32, 13, 40, 15, 44, 26, 0, 152, 12, 116, 28, 44, 69, 28, 12, 8, 150, 190, 200, 235, 185, 157,
-			150, 190, 200, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 0, 0, 4, 0, 37, 0, 0, 1, 112, 1, 153, 8, 154, 11, 228, 12, 216, 14, 88, 27, 20, 25, 9, 45, 14, 12, 16, 12,
-			2, 4, 120, 187, 137, 187, 150, 237, 120, 187, 137, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 232, 0, 248, 1, 240, 5, 176, 9, 128, 12, 216, 14, 88, 27, 20, 35, 31, 55,
-			26, 16, 16, 12, 2, 4, 127, 140, 182, 187, 222, 237, 127, 140, 182, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 216, 0, 8, 2, 136, 4, 176, 9, 8, 12, 216, 14, 88, 27,
-			35, 54, 30, 69, 39, 21, 21, 15, 3, 6, 182, 140, 182, 187, 222, 237, 182, 140, 182, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 232, 0, 64, 2, 252, 3, 120, 10, 68, 12,
-			216, 14, 88, 27, 0, 88, 27, 87, 55, 27, 33, 21, 6, 6, 182, 155, 145, 187, 222, 237, 182, 155, 145, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 156, 0,
-			8, 1, 132, 8, 120, 10, 12, 13, 100, 15, 62, 23, 20, 30, 3, 54, 17, 17, 25, 9, 3, 6, 150, 180, 195, 170, 237, 175, 150, 180,
-			195, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 184, 0, 104, 1, 156, 9, 64, 11, 208, 12, 100, 15, 62, 23, 40, 61, 52, 56, 24, 20, 28, 16, 4, 12, 77, 180, 195, 170,
-			237, 175, 77, 180, 195, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 164, 0, 32, 1, 52, 8, 236, 9, 168, 12, 172, 14, 175, 25, 0, 117, 0, 112, 24, 24, 44, 36, 8, 12,
-			150, 180, 137, 137, 150, 175, 150, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 1, 0, 184, 0, 104, 1, 243, 7, 80, 10, 32, 13, 216, 14, 32, 27, 20, 26,
-			17, 56, 27, 36, 40, 23, 8, 0, 120, 105, 135, 120, 120, 120, 66, 96, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 104, 1, 243, 7, 80, 10, 32, 13, 216, 14,
-			32, 27, 0, 26, 17, 56, 27, 36, 40, 23, 8, 0, 120, 105, 135, 120, 120, 120, 66, 96, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 148, 0, 8, 1,
-			232, 8, 68, 12, 112, 13, 140, 15, 186, 19, 15, 18, 12, 36, 14, 12, 16, 9, 3, 3, 110, 180, 177, 225, 247, 175, 110, 180, 177, 44,
-			45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			148, 0, 24, 1, 209, 8, 68, 12, 112, 13, 140, 15, 186, 19, 0, 21, 12, 40, 14, 12, 16, 9, 3, 3, 110, 180, 177, 225, 247, 175,
-			110, 180, 177, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 95, 0, 4, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14,
-			8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 52, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 50, 17, 54, 38,
-			23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 52, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27,
-			0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 47, 225, 0, 0, 0, 65, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13,
-			160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 48, 225, 0,
-			0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 80, 0, 4, 0, 5, 0, 236, 0,
-			216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135,
-			105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 35, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120,
-			120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 17, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14,
-			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14,
-			32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8,
-			88, 12, 91, 14, 32, 27, 0, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 18, 2,
-			208, 4, 76, 9, 168, 12, 91, 14, 32, 27, 40, 50, 46, 58, 81, 45, 46, 28, 8, 0, 120, 75, 135, 120, 120, 120, 90, 105, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			244, 0, 98, 2, 172, 5, 116, 9, 188, 12, 141, 14, 32, 27, 0, 82, 48, 65, 110, 71, 69, 39, 13, 0, 120, 135, 135, 120, 120, 120,
-			120, 75, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 110, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16,
-			6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20,
-			38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 252, 0, 27, 3, 21, 4, 120, 10, 68, 12, 116, 14, 192, 28,
-			40, 56, 51, 56, 84, 43, 41, 23, 13, 0, 120, 120, 105, 120, 120, 120, 165, 60, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 27, 3, 21, 4, 24, 11, 148, 12,
-			216, 14, 64, 29, 0, 96, 55, 76, 108, 65, 68, 37, 17, 0, 120, 120, 105, 120, 120, 120, 150, 60, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 196, 0,
-			114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120,
+			0, 0, 0, 250, 0, 0, 121, 0, 4, 0, 5, 0, 76, 0, 255, 0, 141, 8, 180, 10, 32, 13, 85, 15, 160, 28, 21, 21, 10, 48,
+			36, 37, 48, 23, 13, 0, 120, 90, 105, 120, 120, 120, 60, 105, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 76, 0, 255, 0, 141, 8, 140, 10, 248, 12, 185, 15, 160, 28,
+			40, 25, 13, 52, 38, 42, 54, 31, 11, 0, 120, 90, 105, 120, 120, 120, 60, 75, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 220, 0, 144, 1, 89, 7, 76, 9, 188, 12,
+			141, 14, 160, 28, 60, 50, 36, 78, 45, 57, 48, 32, 8, 0, 120, 75, 120, 120, 120, 120, 60, 120, 135, 44, 45, 70, 130, 55, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 220, 0, 8, 2, 249, 5,
+			172, 8, 48, 12, 41, 14, 160, 28, 0, 76, 43, 73, 97, 69, 65, 41, 13, 0, 120, 120, 120, 120, 120, 120, 75, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 103, 0, 4, 0,
+			5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 31, 20, 3, 46, 21, 33, 43, 24, 6, 0, 120, 105, 150, 120,
+			120, 120, 45, 135, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 180, 0, 149, 1, 177, 7, 216, 9, 128, 12, 116, 14, 0, 28, 31, 28, 26, 55, 37, 47, 46, 28, 6, 0,
+			120, 120, 120, 120, 120, 120, 45, 105, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 229, 1, 136, 6, 36, 9, 28, 12, 116, 14, 0, 28, 41, 40, 33, 55, 70, 54,
+			51, 31, 7, 0, 120, 120, 150, 120, 120, 120, 75, 105, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 37, 3, 252, 4, 232, 8, 184, 11, 16, 14, 224, 27, 0, 82,
+			42, 73, 109, 66, 59, 44, 10, 0, 120, 150, 120, 120, 120, 120, 120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 135, 0, 4, 0, 5, 0, 116, 0, 225, 0, 229, 8, 64, 11,
+			32, 13, 160, 15, 192, 28, 45, 20, 3, 43, 33, 38, 46, 30, 7, 0, 120, 105, 135, 120, 120, 120, 45, 150, 105, 44, 45, 70, 130, 52,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 132, 0, 9, 1,
+			207, 8, 160, 10, 208, 12, 4, 16, 192, 28, 40, 24, 5, 45, 42, 48, 51, 23, 5, 0, 120, 105, 135, 120, 120, 120, 45, 150, 120, 44,
+			45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
+			164, 0, 179, 1, 166, 7, 176, 9, 248, 12, 160, 15, 192, 28, 50, 49, 33, 77, 47, 57, 47, 23, 4, 0, 120, 117, 159, 120, 120, 120,
+			63, 90, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 212, 0, 53, 2, 224, 6, 96, 9, 168, 12, 66, 14, 192, 28, 0, 84, 46, 69, 100, 83, 74, 46, 8, 0, 120, 135,
+			195, 120, 120, 120, 90, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 84, 0, 255, 0, 39, 9, 164, 11, 92, 13, 135, 15, 224, 28, 30, 18, 6, 43,
+			28, 36, 41, 26, 9, 0, 120, 90, 120, 120, 120, 120, 75, 120, 120, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 84, 0, 250, 0, 39, 9, 164, 11, 92, 13, 135, 15, 64, 28,
+			65, 20, 5, 44, 34, 41, 46, 23, 9, 0, 120, 90, 120, 120, 120, 120, 75, 105, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 84, 0, 59, 1, 174, 8, 160, 10, 208, 12,
+			235, 15, 64, 28, 0, 65, 15, 83, 68, 74, 78, 41, 12, 0, 120, 90, 120, 120, 120, 120, 75, 105, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 125, 0, 5, 0, 5, 0, 136, 0,
+			240, 0, 172, 8, 224, 11, 52, 13, 191, 14, 32, 28, 30, 22, 9, 46, 23, 27, 40, 28, 13, 0, 120, 120, 135, 120, 120, 120, 60, 90,
+			90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			5, 0, 136, 0, 4, 1, 112, 8, 80, 10, 52, 13, 166, 14, 32, 28, 25, 31, 9, 57, 31, 27, 42, 39, 12, 0, 120, 120, 135, 120,
+			120, 120, 60, 90, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 136, 0, 44, 1, 133, 7, 96, 9, 148, 12, 41, 14, 32, 28, 30, 45, 16, 72, 57, 48, 37, 29, 15, 0,
+			120, 120, 105, 120, 120, 120, 60, 90, 90, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 164, 1, 150, 5, 96, 9, 48, 12, 41, 14, 32, 28, 40, 49, 26, 80, 58, 44,
+			38, 28, 18, 0, 120, 120, 90, 120, 120, 120, 60, 75, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 184, 1, 178, 3, 116, 9, 184, 11, 41, 14, 96, 27, 0, 127,
+			48, 110, 106, 80, 62, 41, 26, 0, 120, 120, 120, 120, 120, 120, 75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 60, 0, 3, 0, 5, 0, 88, 0, 24, 1, 6, 9, 140, 10,
+			32, 13, 191, 14, 224, 28, 30, 18, 9, 41, 37, 34, 45, 21, 6, 0, 135, 120, 135, 120, 120, 120, 30, 105, 75, 44, 45, 70, 130, 51,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 88, 0, 84, 1,
+			188, 7, 36, 9, 168, 12, 191, 14, 224, 28, 60, 20, 5, 45, 20, 48, 40, 25, 5, 0, 135, 135, 135, 120, 120, 120, 30, 90, 75, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			168, 0, 144, 1, 56, 7, 212, 8, 168, 12, 191, 14, 224, 28, 0, 85, 34, 108, 57, 76, 60, 37, 9, 0, 120, 105, 120, 120, 120, 120,
+			30, 75, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 30, 0, 2, 0, 1, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 30, 19, 3, 45, 21, 33, 42, 24,
+			6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 0, 19, 3, 45,
+			21, 33, 42, 24, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 25, 0, 2, 0, 5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13,
+			116, 14, 0, 29, 25, 14, 3, 39, 18, 28, 36, 20, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 51, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 180, 0, 29, 1, 185, 8,
+			200, 10, 32, 13, 116, 14, 0, 29, 0, 25, 4, 52, 24, 38, 48, 27, 8, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70,
+			130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0,
+			5, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 35, 21, 25, 39, 40, 37, 30, 20, 7, 6, 167, 90, 135, 120,
+			120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 156, 0, 72, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 35, 17, 22, 34, 35, 32, 26, 17, 6, 5,
+			167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 72, 1, 192, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 17, 21, 37, 23, 20,
+			20, 14, 6, 5, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 148, 0, 24, 1, 209, 8, 184, 11, 112, 13, 140, 15,
+			112, 23, 20, 21, 12, 40, 14, 12, 16, 9, 3, 6, 110, 180, 177, 225, 247, 175, 110, 180, 177, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 232, 0, 128, 1, 132, 8, 240, 10,
+			112, 13, 80, 15, 137, 23, 40, 63, 15, 78, 24, 18, 27, 12, 6, 6, 110, 155, 177, 225, 247, 175, 110, 155, 177, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 8, 2,
+			228, 7, 60, 10, 72, 13, 40, 15, 137, 23, 0, 88, 21, 93, 36, 45, 48, 24, 6, 6, 110, 180, 202, 225, 252, 175, 110, 180, 202, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
+			3, 0, 5, 0, 192, 0, 160, 1, 48, 7, 40, 10, 32, 13, 20, 15, 137, 23, 25, 12, 8, 30, 19, 20, 22, 17, 2, 2, 150, 185,
+			192, 222, 242, 195, 150, 185, 192, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 40, 2, 44, 6, 236, 9, 188, 12, 156, 14, 137, 23, 42, 36, 39, 48, 30, 33, 29, 21,
+			6, 6, 150, 155, 192, 247, 242, 195, 150, 155, 192, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0, 168, 2, 216, 4, 236, 9, 48, 12, 116, 14, 143, 22, 0, 65, 48, 66,
+			54, 33, 36, 24, 6, 3, 202, 155, 192, 180, 242, 225, 202, 155, 192, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 176, 0, 80, 1, 212, 8, 84, 11, 112, 13,
+			100, 15, 88, 27, 20, 19, 15, 32, 12, 20, 18, 11, 2, 5, 177, 192, 197, 235, 220, 175, 177, 192, 197, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 237, 0, 219, 1, 0, 8,
+			136, 10, 108, 13, 54, 15, 47, 28, 40, 35, 24, 47, 36, 36, 28, 19, 7, 6, 214, 159, 176, 171, 165, 144, 177, 192, 197, 44, 45, 70,
+			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 31, 1,
+			77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 44, 31, 56, 60, 55, 42, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			0, 0, 3, 0, 5, 0, 116, 0, 24, 1, 152, 8, 44, 11, 112, 13, 120, 15, 243, 22, 20, 8, 3, 30, 15, 15, 15, 9, 0, 3,
+			150, 142, 140, 165, 210, 175, 150, 142, 140, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 128, 0, 32, 1, 52, 8, 4, 11, 28, 14, 160, 15, 243, 22, 40, 21, 4, 48, 16, 20,
+			24, 12, 0, 4, 150, 142, 137, 137, 150, 175, 150, 142, 137, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 128, 0, 40, 1, 132, 8, 124, 11, 32, 13, 40, 15, 44, 26, 0, 152,
+			12, 116, 28, 44, 69, 28, 12, 8, 150, 190, 200, 235, 185, 157, 150, 190, 200, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 37, 0, 0, 1, 112, 1, 153, 8, 154, 11,
+			228, 12, 216, 14, 88, 27, 20, 25, 9, 45, 14, 12, 16, 12, 2, 4, 120, 187, 137, 187, 150, 237, 120, 187, 137, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 232, 0, 248, 1,
+			240, 5, 176, 9, 128, 12, 216, 14, 88, 27, 20, 35, 31, 55, 26, 16, 16, 12, 2, 4, 127, 140, 182, 187, 222, 237, 127, 140, 182, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0,
+			216, 0, 8, 2, 136, 4, 176, 9, 8, 12, 216, 14, 88, 27, 35, 54, 30, 69, 39, 21, 21, 15, 3, 6, 182, 140, 182, 187, 222, 237,
+			182, 140, 182, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 232, 0, 64, 2, 252, 3, 120, 10, 68, 12, 216, 14, 88, 27, 0, 88, 27, 87, 55, 27, 33, 21, 6, 6, 182, 155,
+			145, 187, 222, 237, 182, 155, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 0, 0, 3, 0, 5, 0, 156, 0, 8, 1, 132, 8, 120, 10, 12, 13, 100, 15, 62, 23, 20, 30, 3, 54,
+			17, 17, 25, 9, 3, 6, 150, 180, 195, 170, 237, 175, 150, 180, 195, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 184, 0, 104, 1, 156, 9, 64, 11, 208, 12, 100, 15, 62, 23,
+			40, 61, 52, 56, 24, 20, 28, 16, 4, 12, 77, 180, 195, 170, 237, 175, 77, 180, 195, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 164, 0, 32, 1, 52, 8, 236, 9, 168, 12,
+			172, 14, 175, 25, 0, 117, 0, 112, 24, 24, 44, 36, 8, 12, 150, 180, 137, 137, 150, 175, 150, 180, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 1, 0, 184, 0,
+			104, 1, 243, 7, 80, 10, 32, 13, 216, 14, 32, 27, 20, 26, 17, 56, 27, 36, 40, 23, 8, 0, 120, 105, 135, 120, 120, 120, 66, 96,
+			105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 184, 0, 104, 1, 243, 7, 80, 10, 32, 13, 216, 14, 32, 27, 0, 26, 17, 56, 27, 36, 40, 23, 8, 0, 120, 105, 135, 120,
+			120, 120, 66, 96, 105, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 0, 0, 2, 0, 5, 0, 148, 0, 8, 1, 232, 8, 68, 12, 112, 13, 140, 15, 186, 19, 15, 18, 12, 36, 14, 12,
+			16, 9, 3, 3, 110, 180, 177, 225, 247, 175, 110, 180, 177, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 148, 0, 24, 1, 209, 8, 68, 12, 112, 13, 140, 15, 186, 19, 0, 21,
+			12, 40, 14, 12, 16, 9, 3, 3, 110, 180, 177, 225, 247, 175, 110, 180, 177, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 4, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8,
+			172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 52,
+			225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1,
+			76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 50, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			20, 100, 100, 52, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0,
+			236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120,
+			30, 135, 105, 44, 20, 100, 100, 47, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60,
+			90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 48, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 80, 0, 4, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38,
+			23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13, 160, 15, 0, 27,
+			35, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0, 0, 0, 60, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 236, 0, 216, 1, 76, 4, 82, 8, 172, 13,
+			160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100, 100, 53, 225, 0,
+			0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 216, 1, 76, 4,
+			82, 8, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 100,
+			100, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0,
+			5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120,
 			120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 20, 1, 18, 2, 205, 5, 136, 9, 248, 12, 191, 14, 0, 28, 40, 51, 49, 64, 81, 61, 52, 35, 12, 0,
-			135, 60, 120, 120, 120, 120, 75, 90, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 4, 1, 98, 2, 180, 6, 236, 9, 72, 13, 85, 15, 128, 27, 0, 86, 50, 69, 101, 95,
-			76, 39, 20, 0, 120, 120, 150, 120, 120, 120, 120, 120, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 108, 0, 5, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14,
-			32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8,
-			88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 216, 0, 184, 1,
-			169, 6, 96, 9, 128, 12, 66, 14, 192, 27, 9, 30, 38, 54, 49, 44, 42, 26, 10, 0, 120, 105, 120, 120, 120, 120, 30, 105, 150, 44,
+			0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 18, 46, 20, 38, 12, 16, 16, 6, 0,
+			125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 18, 2, 208, 4, 76, 9, 168, 12, 91, 14, 32, 27, 40, 50, 46, 58, 81, 45,
+			46, 28, 8, 0, 120, 75, 135, 120, 120, 120, 90, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 98, 2, 172, 5, 116, 9, 188, 12, 141, 14, 32, 27, 0, 82,
+			48, 65, 110, 71, 69, 39, 13, 0, 120, 135, 135, 120, 120, 120, 120, 75, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8,
+			88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1,
+			84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44,
 			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			212, 0, 179, 1, 155, 7, 96, 9, 228, 12, 216, 14, 160, 27, 29, 42, 42, 61, 58, 67, 51, 31, 11, 0, 120, 105, 180, 120, 120, 120,
-			24, 96, 99, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 200, 0, 164, 1, 141, 8, 0, 10, 32, 13, 110, 15, 64, 27, 0, 95, 63, 93, 97, 97, 76, 45, 16, 0, 120, 105,
-			120, 120, 120, 120, 15, 75, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 105, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20,
-			39, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			252, 0, 27, 3, 21, 4, 120, 10, 68, 12, 116, 14, 192, 28, 40, 56, 51, 56, 84, 43, 41, 23, 13, 0, 120, 120, 105, 120, 120, 120,
+			165, 60, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 12, 1, 27, 3, 21, 4, 24, 11, 148, 12, 216, 14, 64, 29, 0, 96, 55, 76, 108, 65, 68, 37, 17, 0, 120, 120,
+			105, 120, 120, 120, 150, 60, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20,
+			38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27,
 			0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 105, 0, 205, 0, 208, 2, 252, 8, 88, 12,
-			76, 14, 32, 27, 35, 34, 36, 32, 40, 20, 20, 16, 9, 0, 117, 117, 153, 135, 135, 120, 117, 117, 153, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 209, 1, 68, 3,
-			100, 10, 104, 11, 141, 14, 32, 27, 0, 160, 47, 105, 110, 63, 58, 28, 23, 0, 120, 120, 135, 120, 120, 120, 120, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 105, 0, 4, 0,
-			5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 39, 12, 16, 16, 6, 0, 125, 60, 135, 120,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 20, 1, 18, 2, 205, 5, 136, 9, 248, 12,
+			191, 14, 0, 28, 40, 51, 49, 64, 81, 61, 52, 35, 12, 0, 135, 60, 120, 120, 120, 120, 75, 90, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 4, 1, 98, 2, 180, 6,
+			236, 9, 72, 13, 85, 15, 128, 27, 0, 86, 50, 69, 101, 95, 76, 39, 20, 0, 120, 120, 150, 120, 120, 120, 120, 120, 105, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 108, 0, 5, 0,
+			5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120,
 			120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0,
 			125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 105, 0, 205, 0, 208, 2, 252, 8, 88, 12, 76, 14, 32, 27, 35, 34, 36, 32, 40, 20,
-			20, 16, 9, 0, 117, 117, 153, 135, 135, 120, 117, 117, 153, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 209, 1, 68, 3, 100, 10, 104, 11, 141, 14, 32, 27, 0, 158,
-			47, 105, 110, 63, 58, 28, 23, 0, 120, 120, 135, 120, 120, 120, 120, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8,
-			88, 12, 91, 14, 32, 27, 70, 22, 51, 28, 30, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1,
-			84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 22, 51, 28, 30, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			184, 0, 164, 1, 153, 4, 132, 8, 128, 12, 254, 16, 64, 27, 0, 6, 28, 12, 16, 8, 6, 4, 3, 0, 120, 105, 120, 120, 120, 120,
-			75, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 20, 0, 2, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 20, 12, 38, 22, 25, 9, 12, 12,
-			5, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 48, 28,
-			32, 12, 16, 16, 6, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 115, 0, 3, 0, 5, 0, 196, 0, 114, 1, 56, 4, 252, 8, 88, 12,
-			91, 14, 32, 27, 65, 18, 46, 20, 36, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 56, 4,
-			252, 8, 88, 12, 91, 14, 32, 27, 50, 18, 48, 20, 28, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0,
-			114, 1, 36, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 12, 40, 17, 17, 6, 13, 13, 5, 0, 125, 60, 135, 120, 120, 120, 80, 75,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			80, 0, 4, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 35, 17, 54, 38, 23, 14,
-			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17,
-			54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15,
-			0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0,
-			60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 94, 0, 4, 0, 5, 0, 236, 0, 124, 1,
-			114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 50, 16, 48, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			236, 0, 144, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 52, 36, 25, 18, 16, 18, 11, 0, 120, 60, 90, 120, 120, 120,
-			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 32, 1, 18, 2, 4, 6, 196, 9, 92, 13, 135, 15, 160, 27, 45, 25, 37, 46, 47, 47, 48, 28, 7, 0, 120, 75,
-			135, 120, 120, 120, 60, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 73, 2, 15, 6, 176, 9, 208, 12, 16, 14, 160, 27, 0, 99, 58, 71, 121, 73, 58, 41,
-			11, 0, 120, 120, 150, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 115, 0, 4, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27,
-			45, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13,
-			160, 15, 0, 27, 20, 18, 52, 38, 23, 18, 16, 18, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 4, 1, 57, 3, 216, 5,
-			20, 10, 172, 13, 241, 14, 64, 25, 50, 26, 33, 43, 58, 43, 44, 27, 5, 0, 120, 90, 135, 120, 120, 120, 75, 90, 90, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0,
-			137, 3, 252, 4, 236, 9, 188, 12, 41, 14, 64, 27, 0, 92, 46, 74, 100, 77, 70, 57, 12, 0, 120, 165, 135, 120, 120, 120, 120, 90,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			115, 0, 4, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 50, 16, 48, 38, 23, 14, 12, 14, 8, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 154, 1, 164, 6, 20, 10, 192, 13, 185, 15, 224, 27, 20, 18, 48, 35, 19, 17,
-			13, 13, 7, 0, 120, 30, 120, 120, 120, 120, 60, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 32, 1, 78, 2, 169, 6, 20, 10, 192, 13, 185, 15, 224, 27, 45, 26,
-			43, 42, 55, 45, 42, 29, 5, 0, 120, 75, 120, 120, 120, 120, 90, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 58, 2, 125, 6, 20, 10, 92, 13, 48, 17,
-			224, 27, 0, 73, 48, 61, 95, 89, 78, 33, 7, 0, 120, 120, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 109, 0, 4, 0, 5, 0, 236, 0, 124, 1,
-			114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 53, 33, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 216, 0, 184, 1, 169, 6, 96, 9, 128, 12, 66, 14, 192, 27, 9, 30, 38, 54, 49, 44,
+			42, 26, 10, 0, 120, 105, 120, 120, 120, 120, 30, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0, 179, 1, 155, 7, 96, 9, 228, 12, 216, 14, 160, 27, 29, 42,
+			42, 61, 58, 67, 51, 31, 11, 0, 120, 105, 180, 120, 120, 120, 24, 96, 99, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 164, 1, 141, 8, 0, 10, 32, 13, 110, 15,
+			64, 27, 0, 95, 63, 93, 97, 97, 76, 45, 16, 0, 120, 105, 120, 120, 120, 120, 15, 75, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 105, 0, 4, 0, 5, 0, 196, 0, 114, 1,
+			84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 39, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44,
 			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
-			236, 0, 144, 1, 214, 6, 236, 9, 172, 13, 160, 15, 0, 27, 15, 15, 52, 31, 25, 18, 16, 18, 11, 0, 120, 60, 90, 120, 120, 120,
-			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 236, 0, 164, 1, 122, 7, 80, 10, 172, 13, 235, 15, 128, 27, 49, 23, 43, 38, 48, 50, 43, 29, 9, 0, 120, 75,
-			90, 120, 120, 120, 30, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 144, 1, 97, 8, 20, 10, 92, 13, 135, 15, 128, 27, 0, 81, 57, 73, 72, 90, 90, 58,
-			13, 0, 120, 105, 150, 120, 120, 120, 45, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 108, 0, 4, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27,
-			45, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 220, 0, 164, 1, 249, 5, 196, 9, 108, 12,
-			141, 14, 128, 24, 20, 18, 52, 28, 18, 19, 10, 10, 8, 0, 120, 45, 120, 120, 120, 120, 75, 105, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 252, 0, 224, 1, 18, 5,
-			196, 9, 228, 12, 41, 14, 128, 25, 43, 38, 54, 58, 54, 38, 37, 25, 12, 0, 120, 60, 120, 120, 120, 120, 90, 105, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1,
-			224, 1, 178, 3, 236, 9, 8, 12, 222, 13, 128, 25, 0, 117, 65, 90, 99, 67, 78, 52, 17, 0, 120, 75, 150, 120, 120, 120, 90, 120,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			107, 0, 4, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 45, 19, 54, 38, 23, 14, 12, 14, 8, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 164, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 21, 17, 52, 39, 23, 16,
-			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 150, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1, 224, 1, 169, 6, 156, 9, 152, 13, 166, 14, 32, 27, 41, 26,
-			39, 45, 42, 41, 51, 30, 8, 0, 120, 75, 120, 120, 120, 120, 60, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 224, 1, 125, 6, 76, 9, 148, 12, 66, 14,
-			32, 27, 0, 102, 68, 83, 83, 94, 100, 68, 14, 0, 120, 90, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 60, 0, 3, 0, 5, 0, 236, 0, 124, 1,
-			12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 16, 49, 35, 21, 13, 11, 13, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 22, 58, 41, 25, 16, 13, 16, 8, 0, 120, 60, 90, 120, 120, 120,
-			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 22, 58, 41, 25, 16, 13, 16, 8, 0, 120, 60,
-			90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 5, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27, 20, 19, 54, 38,
-			23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 124, 1, 114, 6, 236, 9, 172, 13, 160, 15, 0, 27,
-			0, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 3, 0, 5, 0, 236, 0, 124, 1, 8, 7,
-			236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0,
-			124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 40, 23, 53, 41, 24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 236, 0, 124, 1, 244, 6, 236, 9, 172, 13, 160, 15, 0, 27, 0, 14, 42, 32, 20, 16, 12, 9, 6, 0, 132, 60, 90, 120,
-			120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 75, 0, 4, 0, 5, 0, 236, 0, 224, 1, 104, 6, 136, 9, 144, 11, 180, 15, 0, 27, 45, 17, 54, 38, 23, 14,
-			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 55, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 104, 6, 136, 9, 144, 11, 180, 15, 0, 27, 30, 17,
-			54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 55, 225, 0, 0, 0, 65, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 104, 6, 136, 9, 144, 11, 180, 15,
-			0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 55, 225, 0, 0, 0,
-			65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 104, 6, 136, 9,
-			144, 11, 180, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 55,
-			225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 110, 0, 4, 0, 5, 0,
-			236, 0, 124, 1, 214, 6, 112, 8, 168, 12, 160, 15, 0, 27, 65, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120,
+			196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120,
+			80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 5, 0, 105, 0, 205, 0, 208, 2, 252, 8, 88, 12, 76, 14, 32, 27, 35, 34, 36, 32, 40, 20, 20, 16, 9, 0, 117, 117,
+			153, 135, 135, 120, 117, 117, 153, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 209, 1, 68, 3, 100, 10, 104, 11, 141, 14, 32, 27, 0, 160, 47, 105, 110, 63, 58, 28,
+			23, 0, 120, 120, 135, 120, 120, 120, 120, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 105, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27,
+			70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12,
+			91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 252, 0, 164, 1, 95, 5,
+			252, 8, 168, 12, 141, 14, 96, 27, 35, 55, 57, 70, 73, 45, 48, 30, 15, 0, 135, 75, 120, 120, 120, 120, 45, 105, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 188, 0,
+			184, 1, 205, 5, 16, 9, 148, 12, 41, 14, 96, 27, 0, 150, 82, 110, 123, 99, 82, 58, 20, 0, 120, 90, 120, 120, 120, 120, 90, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			70, 0, 3, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 70, 22, 51, 28, 30, 12, 16, 16, 6, 0,
+			125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 22, 51, 28, 30, 12,
+			16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 164, 1, 153, 4, 132, 8, 128, 12, 254, 16, 64, 27, 0, 6,
+			28, 12, 16, 8, 6, 4, 3, 0, 120, 105, 120, 120, 120, 120, 75, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8,
+			88, 12, 91, 14, 32, 27, 20, 12, 38, 22, 25, 9, 12, 12, 5, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 114, 1,
+			84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 48, 28, 32, 12, 16, 16, 6, 0, 120, 60, 135, 120, 120, 120, 75, 75, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 115, 0,
+			3, 0, 5, 0, 196, 0, 114, 1, 56, 4, 252, 8, 88, 12, 91, 14, 32, 27, 65, 18, 46, 20, 36, 12, 16, 16, 6, 0, 125, 60,
+			135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 196, 0, 114, 1, 56, 4, 252, 8, 88, 12, 91, 14, 32, 27, 50, 18, 48, 20, 28, 12, 16, 16,
+			6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 114, 1, 36, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 12, 40, 17,
+			17, 6, 13, 13, 5, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 80, 0, 4, 0, 5, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13,
+			160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0,
+			0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 224, 1, 220, 5,
+			236, 9, 172, 13, 160, 15, 0, 27, 35, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150,
+			150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0,
+			224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135,
+			105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 236, 0, 224, 1, 220, 5, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120,
+			120, 120, 30, 135, 105, 44, 20, 150, 150, 53, 225, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 94, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 50, 16, 48, 38, 23, 14,
+			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 144, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17,
+			52, 36, 25, 18, 16, 18, 11, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 32, 1, 18, 2, 4, 6, 196, 9, 92, 13, 135, 15,
+			160, 27, 45, 25, 37, 46, 47, 47, 48, 28, 7, 0, 120, 75, 135, 120, 120, 120, 60, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 73, 2, 15, 6, 176, 9,
+			208, 12, 16, 14, 160, 27, 0, 99, 58, 71, 121, 73, 58, 41, 11, 0, 120, 120, 150, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 115, 0, 4, 0, 5, 0,
+			236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 45, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120,
 			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 236, 0, 120, 1, 214, 6, 152, 8, 168, 12, 160, 15, 0, 27, 0, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60,
+			0, 0, 5, 0, 236, 0, 124, 1, 224, 6, 236, 9, 172, 13, 160, 15, 0, 27, 20, 18, 52, 38, 23, 18, 16, 18, 10, 0, 120, 60,
 			90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 196, 1, 24, 6, 36, 9, 168, 12, 10, 15, 48, 27, 45, 28, 40, 51, 51, 29, 29, 25,
-			13, 3, 143, 105, 112, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 86, 41, 79,
-			96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 130, 0, 4, 0, 5, 0, 236, 0, 124, 1, 214, 6, 112, 8, 228, 12,
-			160, 15, 0, 27, 60, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 214, 6,
-			176, 9, 228, 12, 160, 15, 0, 27, 20, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 6, 1,
-			130, 2, 255, 5, 30, 10, 72, 13, 48, 15, 144, 27, 50, 28, 38, 56, 43, 30, 23, 17, 8, 2, 168, 107, 97, 120, 120, 120, 30, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 32, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 88, 41, 90, 74, 54, 40, 25, 12, 6, 217, 155, 105, 120,
-			120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 115, 0, 4, 0, 5, 0, 236, 0, 124, 1, 214, 6, 112, 8, 228, 12, 160, 15, 0, 27, 50, 19, 54, 40, 23, 14,
-			12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 214, 6, 36, 9, 228, 12, 160, 15, 0, 27, 20, 19,
-			54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 22, 1, 226, 1, 249, 6, 0, 10, 228, 12, 88, 15,
-			240, 27, 45, 28, 41, 50, 45, 38, 30, 25, 9, 3, 182, 96, 124, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10,
-			104, 13, 15, 15, 224, 28, 0, 94, 44, 81, 86, 79, 61, 45, 15, 9, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 109, 0, 4, 0, 5, 0,
-			236, 0, 124, 1, 214, 6, 112, 8, 228, 12, 160, 15, 0, 27, 45, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120,
+			0, 0, 0, 250, 0, 0, 1, 0, 4, 1, 57, 3, 216, 5, 20, 10, 172, 13, 241, 14, 64, 25, 50, 26, 33, 43, 58, 43, 44, 27,
+			5, 0, 120, 90, 135, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 137, 3, 252, 4, 236, 9, 188, 12, 41, 14, 64, 27, 0, 92, 46, 74,
+			100, 77, 70, 57, 12, 0, 120, 165, 135, 120, 120, 120, 120, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 115, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13,
+			160, 15, 0, 27, 50, 16, 48, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 154, 1, 78, 7,
+			20, 10, 192, 13, 185, 15, 224, 27, 20, 18, 48, 35, 19, 17, 13, 13, 7, 0, 120, 30, 120, 120, 120, 120, 60, 120, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 32, 1,
+			78, 2, 169, 6, 20, 10, 192, 13, 185, 15, 224, 27, 45, 26, 43, 42, 55, 45, 42, 29, 5, 0, 120, 75, 120, 120, 120, 120, 90, 75,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 240, 0, 58, 2, 125, 6, 20, 10, 92, 13, 48, 17, 224, 27, 0, 73, 48, 61, 95, 89, 78, 33, 7, 0, 120, 120, 120, 120,
+			120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 108, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 53, 33, 23, 14,
+			12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 144, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 15, 15,
+			52, 31, 25, 18, 16, 18, 11, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 164, 1, 122, 7, 80, 10, 172, 13, 235, 15,
+			128, 27, 49, 23, 43, 38, 48, 50, 43, 29, 9, 0, 120, 75, 90, 120, 120, 120, 30, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 144, 1, 97, 8, 20, 10,
+			92, 13, 135, 15, 128, 27, 0, 81, 57, 73, 72, 90, 90, 58, 13, 0, 120, 105, 150, 120, 120, 120, 45, 105, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 107, 0, 4, 0, 5, 0,
+			220, 0, 164, 1, 133, 7, 20, 10, 52, 13, 29, 16, 0, 25, 45, 19, 54, 26, 9, 10, 9, 7, 8, 0, 120, 45, 120, 120, 120, 120,
+			75, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 5, 0, 220, 0, 164, 1, 249, 5, 196, 9, 108, 12, 141, 14, 128, 24, 20, 18, 52, 28, 18, 19, 10, 10, 8, 0, 120, 45,
+			120, 120, 120, 120, 75, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 252, 0, 224, 1, 18, 5, 196, 9, 228, 12, 41, 14, 128, 25, 43, 39, 54, 58, 54, 38, 37, 25,
+			12, 0, 120, 60, 120, 120, 120, 120, 90, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 224, 1, 178, 3, 236, 9, 8, 12, 222, 13, 128, 25, 0, 117, 65, 90,
+			99, 67, 78, 52, 17, 0, 120, 75, 150, 120, 120, 120, 90, 120, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 106, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13,
+			160, 15, 0, 27, 45, 18, 53, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 164, 1, 12, 7,
+			236, 9, 172, 13, 160, 15, 0, 27, 21, 17, 52, 39, 23, 16, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 150, 105, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 8, 1,
+			224, 1, 169, 6, 156, 9, 152, 13, 166, 14, 32, 27, 41, 27, 39, 45, 42, 41, 51, 30, 8, 0, 120, 75, 120, 120, 120, 120, 60, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 228, 0, 224, 1, 125, 6, 76, 9, 148, 12, 66, 14, 32, 27, 0, 102, 68, 83, 83, 94, 100, 68, 14, 0, 120, 90, 120, 120,
+			120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 60, 0, 3, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 16, 49, 35, 21, 13,
+			11, 13, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 22,
+			58, 41, 25, 16, 13, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15,
+			0, 27, 0, 22, 58, 41, 25, 16, 13, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 5, 0, 236, 0, 124, 1,
+			12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 20, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 19, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120,
 			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 236, 0, 124, 1, 214, 6, 36, 9, 228, 12, 160, 15, 0, 27, 15, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60,
-			90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 192, 0, 126, 1, 148, 7, 0, 10, 228, 12, 105, 15, 48, 26, 49, 28, 36, 57, 39, 33, 30, 23,
-			10, 3, 140, 76, 105, 131, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 0, 112, 42, 110,
-			80, 73, 69, 44, 18, 8, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 113, 0, 4, 0, 5, 0, 236, 0, 124, 1, 214, 6, 112, 8, 128, 12,
-			160, 15, 0, 27, 50, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 214, 6,
-			36, 9, 128, 12, 160, 15, 0, 27, 20, 19, 54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 214, 0,
-			210, 1, 25, 5, 216, 9, 118, 12, 0, 15, 79, 27, 43, 28, 38, 54, 50, 28, 26, 19, 11, 3, 146, 101, 112, 120, 120, 120, 30, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 0, 150, 38, 92, 100, 55, 53, 31, 20, 8, 172, 142, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 107, 0, 4, 0, 5, 0, 236, 0, 124, 1, 214, 6, 112, 8, 228, 12, 160, 15, 0, 27, 45, 19, 54, 40, 23, 14,
-			12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 214, 6, 112, 8, 228, 12, 160, 15, 0, 27, 21, 19,
-			54, 40, 23, 14, 12, 16, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 206, 0, 94, 1, 25, 5, 212, 8, 228, 12, 110, 15,
-			200, 26, 41, 28, 28, 57, 36, 19, 18, 26, 11, 4, 148, 92, 96, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9,
-			12, 13, 60, 15, 144, 26, 0, 66, 8, 84, 56, 28, 28, 40, 16, 10, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 5, 0,
-			236, 0, 124, 1, 214, 6, 112, 8, 72, 13, 160, 15, 0, 27, 20, 23, 59, 44, 25, 15, 13, 17, 8, 0, 120, 60, 90, 120, 120, 120,
+			0, 0, 100, 0, 3, 0, 5, 0, 236, 0, 124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41, 24, 20, 16, 13,
+			8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 124, 1, 8, 7, 236, 9, 172, 13, 160, 15, 0, 27, 40, 23, 53, 41,
+			24, 20, 16, 13, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 124, 1, 244, 6, 236, 9, 172, 13, 160, 15, 0, 27,
+			0, 14, 42, 32, 20, 16, 12, 9, 6, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 4, 0, 5, 0, 236, 0, 224, 1, 44, 6,
+			252, 8, 144, 11, 180, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150,
+			150, 55, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0,
+			224, 1, 44, 6, 252, 8, 144, 11, 180, 15, 0, 27, 30, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135,
+			105, 44, 20, 150, 150, 55, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 236, 0, 224, 1, 44, 6, 252, 8, 144, 11, 180, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120,
+			120, 120, 30, 135, 105, 44, 20, 150, 150, 55, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 44, 6, 252, 8, 144, 11, 180, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0,
+			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 150, 150, 55, 225, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 2, 0, 5, 0, 236, 0, 224, 1, 120, 5, 252, 8, 28, 12, 172, 13, 0, 27, 20, 18,
+			59, 30, 17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 224, 1, 120, 5, 252, 8, 28, 12, 172, 13,
+			0, 27, 0, 18, 59, 30, 17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 236, 0, 152, 1,
+			120, 5, 252, 8, 28, 12, 172, 13, 0, 27, 55, 19, 59, 30, 17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0,
+			236, 0, 152, 1, 120, 5, 252, 8, 28, 12, 172, 13, 0, 27, 40, 19, 59, 30, 17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120,
 			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 236, 0, 124, 1, 214, 6, 112, 8, 228, 12, 160, 15, 0, 27, 0, 23, 59, 44, 25, 15, 13, 17, 8, 0, 120, 60,
+			0, 0, 1, 0, 236, 0, 152, 1, 120, 5, 252, 8, 28, 12, 172, 13, 0, 27, 0, 12, 48, 24, 14, 7, 7, 3, 7, 0, 120, 60,
 			90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 95, 0, 3, 0, 5, 0, 236, 0, 152, 1, 120, 5, 252, 8, 28, 12, 172, 13, 0, 27, 55, 19, 59, 30,
-			17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 152, 1, 120, 5, 252, 8, 28, 12, 172, 13, 0, 27,
-			40, 19, 59, 30, 17, 8, 8, 4, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 152, 1, 120, 5, 252, 8, 28, 12,
-			172, 13, 0, 27, 0, 12, 48, 24, 14, 7, 7, 3, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 204, 0,
-			214, 1, 252, 8, 184, 11, 16, 14, 160, 15, 0, 27, 50, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135,
-			105, 44, 20, 150, 150, 51, 220, 10, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 160, 15, 0, 27, 0, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120,
-			120, 120, 45, 135, 105, 44, 20, 150, 150, 51, 220, 10, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 95, 0, 4, 0, 5, 0, 204, 0, 214, 1, 92, 8, 24, 11, 172, 13, 160, 15, 0, 27, 45, 29, 60, 48, 20, 24,
-			16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 51, 220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 214, 1, 92, 8, 24, 11, 172, 13, 160, 15, 0, 27, 50, 29,
-			60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 50, 220, 14, 0, 0, 60, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 4, 16,
-			0, 27, 0, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 50, 220, 14, 0, 0,
-			60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 214, 1, 252, 8, 184, 11,
-			16, 14, 4, 16, 0, 27, 0, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 50,
-			220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 145, 0, 6, 0, 5, 0,
-			204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 35, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120,
+			0, 0, 0, 250, 0, 0, 50, 0, 2, 0, 5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 160, 15, 0, 27, 50, 29, 60, 48,
+			20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 51, 220, 10, 0, 0, 60, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 160, 15, 0, 27,
+			0, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 51, 220, 10, 0, 0, 60, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 4, 0, 5, 0, 204, 0, 214, 1, 92, 8,
+			24, 11, 172, 13, 160, 15, 0, 27, 45, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150,
+			150, 51, 220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0,
+			214, 1, 92, 8, 24, 11, 172, 13, 160, 15, 0, 27, 50, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135,
+			105, 44, 20, 150, 150, 50, 220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 4, 16, 0, 27, 0, 29, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120,
+			120, 120, 45, 135, 105, 44, 20, 150, 150, 50, 220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 204, 0, 214, 1, 252, 8, 184, 11, 16, 14, 4, 16, 0, 27, 0, 29, 60, 48, 20, 24, 16, 16, 10, 0,
+			135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 20, 150, 150, 50, 220, 14, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 145, 0, 6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 35, 22,
+			44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15,
+			0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11,
+			172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 16, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 200, 0, 112, 1,
+			252, 8, 104, 11, 172, 13, 160, 15, 112, 23, 20, 28, 36, 32, 24, 24, 16, 16, 4, 8, 110, 180, 160, 200, 200, 175, 110, 180, 160, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0,
+			204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 60, 30, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120,
 			45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60,
+			0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 87, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 100, 0, 5, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48,
+			20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27,
+			50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13,
+			160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 16, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 29, 1, 192, 8,
+			104, 11, 172, 13, 160, 15, 0, 29, 80, 16, 6, 42, 19, 30, 34, 22, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 72, 1,
+			157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 111, 52, 100, 84, 56, 48, 28, 12, 8, 207, 150, 105, 120, 120, 120, 237, 165,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			100, 0, 6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0,
+			135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21,
+			16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21,
+			46, 46, 25, 21, 17, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 184, 0, 88, 1, 56, 9, 112, 11, 132, 13, 80, 15,
+			162, 23, 25, 31, 20, 40, 20, 28, 24, 18, 4, 8, 177, 192, 197, 235, 220, 175, 177, 192, 197, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 0, 2, 36, 8, 88, 10,
+			112, 13, 160, 15, 162, 23, 35, 47, 30, 60, 33, 40, 39, 18, 6, 6, 177, 162, 152, 235, 235, 207, 177, 162, 152, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 88, 2,
+			128, 7, 20, 10, 72, 13, 100, 15, 162, 23, 0, 113, 44, 103, 54, 60, 68, 28, 8, 8, 120, 162, 235, 235, 235, 255, 120, 162, 235, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0,
+			6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60,
 			90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 16, 16,
-			10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 200, 0, 112, 1, 252, 8, 104, 11, 172, 13, 160, 15, 112, 23, 20, 28, 36, 32,
-			24, 24, 16, 16, 4, 8, 110, 180, 160, 200, 200, 175, 110, 180, 160, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27,
-			60, 30, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12,
-			116, 14, 96, 27, 0, 87, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 5, 0, 5, 0, 204, 0,
-			120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120,
+			0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16,
+			10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46,
+			25, 21, 17, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 36, 9, 204, 11, 172, 13, 160, 15, 0, 27,
+			20, 26, 49, 45, 22, 19, 19, 15, 9, 0, 128, 60, 90, 120, 120, 120, 67, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 184, 0, 83, 1, 232, 8, 139, 11, 126, 13,
+			98, 15, 219, 26, 25, 30, 33, 58, 34, 39, 39, 22, 12, 3, 138, 77, 101, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8,
+			4, 11, 52, 13, 0, 15, 160, 26, 0, 72, 10, 83, 73, 74, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 7, 0,
+			5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120,
 			120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 16, 16, 10, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 180, 0, 29, 1, 192, 8, 104, 11, 172, 13, 160, 15, 0, 29, 80, 16, 6, 42, 19, 30,
-			34, 22, 6, 0, 120, 105, 120, 120, 120, 120, 45, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 111,
-			52, 100, 84, 56, 48, 28, 12, 8, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11,
-			172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1,
-			192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 17, 16, 10, 0, 120, 60, 90, 120, 120, 120,
-			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 37, 0, 184, 0, 88, 1, 56, 9, 112, 11, 132, 13, 80, 15, 162, 23, 25, 31, 20, 40, 20, 28, 24, 18, 4, 8, 177, 192,
-			197, 235, 220, 175, 177, 192, 197, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 176, 0, 0, 2, 36, 8, 88, 10, 112, 13, 160, 15, 162, 23, 35, 47, 30, 60, 33, 40, 39, 18,
-			6, 6, 177, 162, 152, 235, 235, 207, 177, 162, 152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 88, 2, 128, 7, 20, 10, 72, 13, 100, 15, 162, 23, 0, 113, 44, 103,
-			54, 60, 68, 28, 8, 8, 120, 162, 235, 235, 235, 255, 120, 162, 235, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13,
-			160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8,
-			28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0,
-			120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 17, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			5, 0, 204, 0, 120, 1, 36, 9, 204, 11, 172, 13, 160, 15, 0, 27, 20, 26, 49, 45, 22, 19, 19, 15, 9, 0, 128, 60, 90, 120,
-			120, 120, 67, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 5, 0, 184, 0, 83, 1, 232, 8, 139, 11, 126, 13, 98, 15, 219, 26, 25, 30, 33, 58, 34, 39, 39, 22, 12, 3,
-			138, 77, 101, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 0, 72, 10, 83, 73, 74,
-			75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 7, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15,
-			0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12,
-			172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59,
+			0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0,
+			135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21,
+			17, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 160, 0, 184, 1, 212, 8, 104, 11, 172, 13, 160, 15, 37, 23, 25, 29,
+			40, 32, 32, 20, 16, 16, 4, 8, 150, 187, 137, 187, 150, 237, 150, 187, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 216, 0, 248, 1, 64, 6, 176, 9, 68, 12, 176, 14,
+			37, 23, 25, 35, 39, 48, 30, 24, 21, 15, 3, 6, 150, 140, 182, 187, 222, 237, 150, 140, 182, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 216, 0, 60, 2, 136, 4, 176, 9,
+			8, 12, 216, 14, 218, 22, 30, 70, 52, 68, 52, 28, 28, 20, 4, 8, 182, 140, 182, 187, 222, 237, 182, 140, 182, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 232, 0, 64, 2,
+			252, 3, 120, 10, 68, 12, 216, 14, 193, 22, 0, 121, 36, 100, 64, 36, 44, 28, 8, 8, 182, 155, 145, 187, 222, 237, 182, 155, 145, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0,
+			6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60,
+			90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16,
+			10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 23, 48, 48,
+			26, 22, 18, 17, 11, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 176, 0, 120, 1, 152, 8, 104, 11, 172, 13, 160, 15, 62, 23,
+			25, 28, 40, 28, 23, 24, 16, 16, 4, 8, 150, 150, 170, 170, 237, 175, 150, 150, 170, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 167, 0, 116, 1, 48, 7, 186, 10, 34, 13,
+			76, 15, 61, 24, 35, 40, 44, 36, 28, 30, 23, 19, 8, 8, 153, 164, 164, 155, 202, 158, 150, 180, 170, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 144, 1, 172, 3,
+			36, 9, 224, 11, 136, 14, 144, 26, 0, 94, 36, 84, 72, 44, 40, 28, 20, 10, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 15, 0, 2, 0,
+			5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 15, 17, 45, 36, 15, 18, 12, 12, 7, 0, 135, 60, 90, 120,
+			120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 0, 30, 60, 48, 20, 24, 16, 16, 10, 0,
+			135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 150, 0, 5, 0, 5, 0, 204, 0, 112, 1, 92, 8, 184, 11, 172, 13, 160, 15, 0, 27, 30, 22,
+			44, 48, 24, 8, 8, 8, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 112, 1, 172, 8, 184, 11, 172, 13, 160, 15,
+			0, 27, 60, 24, 48, 48, 26, 8, 8, 8, 13, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 112, 1, 172, 8, 184, 11,
+			172, 13, 160, 15, 0, 27, 30, 24, 48, 48, 26, 8, 8, 8, 13, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59,
 			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1,
-			252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 21, 46, 46, 25, 21, 17, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			172, 8, 184, 11, 172, 13, 160, 15, 0, 27, 30, 19, 38, 45, 38, 30, 15, 15, 9, 0, 120, 60, 95, 120, 120, 120, 30, 135, 110, 44,
 			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0,
-			160, 0, 184, 1, 212, 8, 104, 11, 172, 13, 160, 15, 37, 23, 25, 29, 40, 32, 32, 20, 16, 16, 4, 8, 150, 187, 137, 187, 150, 237,
-			150, 187, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 37, 0, 216, 0, 248, 1, 64, 6, 176, 9, 68, 12, 176, 14, 37, 23, 25, 35, 39, 48, 30, 24, 21, 15, 3, 6, 150, 140,
-			182, 187, 222, 237, 150, 140, 182, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 216, 0, 60, 2, 136, 4, 176, 9, 8, 12, 216, 14, 218, 22, 30, 70, 52, 68, 52, 28, 28, 20,
-			4, 8, 182, 140, 182, 187, 222, 237, 182, 140, 182, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 232, 0, 64, 2, 252, 3, 120, 10, 68, 12, 216, 14, 193, 22, 0, 121, 36, 100,
-			64, 36, 44, 28, 8, 8, 182, 155, 145, 187, 222, 237, 182, 155, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 6, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13,
-			160, 15, 0, 27, 50, 22, 44, 48, 20, 20, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8,
-			28, 12, 172, 13, 160, 15, 0, 27, 50, 22, 46, 46, 21, 21, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0,
-			120, 1, 252, 8, 104, 11, 172, 13, 160, 15, 0, 27, 0, 23, 48, 48, 26, 22, 18, 17, 11, 0, 120, 60, 90, 120, 120, 120, 30, 135,
-			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			37, 0, 176, 0, 120, 1, 152, 8, 104, 11, 172, 13, 160, 15, 62, 23, 25, 28, 40, 28, 23, 24, 16, 16, 4, 8, 150, 150, 170, 170,
-			237, 175, 150, 150, 170, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 37, 0, 167, 0, 116, 1, 48, 7, 186, 10, 34, 13, 76, 15, 61, 24, 35, 40, 44, 36, 28, 30, 23, 19, 8, 8,
-			153, 164, 164, 155, 202, 158, 150, 180, 170, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 144, 1, 172, 3, 36, 9, 224, 11, 136, 14, 144, 26, 0, 94, 36, 84, 72, 44,
-			40, 28, 20, 10, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 15, 0, 2, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13, 160, 15,
-			0, 27, 15, 17, 45, 36, 15, 18, 12, 12, 7, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 92, 8, 124, 11,
-			172, 13, 160, 15, 0, 27, 0, 30, 60, 48, 20, 24, 16, 16, 10, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 150, 0, 5, 0, 5, 0,
-			204, 0, 112, 1, 92, 8, 184, 11, 172, 13, 160, 15, 0, 27, 30, 22, 44, 48, 24, 8, 8, 8, 10, 0, 135, 60, 90, 120, 120, 120,
-			45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 5, 0, 204, 0, 112, 1, 172, 8, 184, 11, 172, 13, 160, 15, 0, 27, 60, 24, 48, 48, 26, 8, 8, 8, 13, 0, 135, 60,
-			90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 112, 1, 172, 8, 184, 11, 172, 13, 160, 15, 0, 27, 30, 24, 48, 48, 26, 8, 8, 8,
-			13, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 120, 1, 172, 8, 184, 11, 172, 13, 160, 15, 0, 27, 30, 19, 38, 45,
-			38, 30, 15, 15, 9, 0, 120, 60, 95, 120, 120, 120, 30, 135, 110, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 37, 0, 200, 0, 144, 1, 172, 8, 184, 11, 172, 13, 160, 15, 112, 23,
-			0, 10, 20, 20, 28, 18, 10, 10, 2, 5, 110, 180, 160, 200, 200, 175, 110, 180, 160, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 90, 0, 4, 0, 5, 0, 236, 0, 234, 1, 52, 8,
-			236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200,
-			200, 54, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0,
-			234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135,
-			105, 44, 20, 200, 200, 54, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120,
-			120, 120, 30, 135, 105, 44, 20, 200, 200, 50, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 1, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0,
-			120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 50, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 90, 0, 4, 0, 5, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17,
-			54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15,
-			0, 27, 45, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0,
-			60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 234, 1, 52, 8, 236, 9,
-			172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55,
-			230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 234, 1,
-			52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
-			20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0,
-			3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90,
-			165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10,
-			3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 73, 2, 15, 6, 176, 9, 208, 12, 16, 14, 160, 27, 0, 99, 58, 71,
-			121, 73, 58, 41, 11, 0, 120, 120, 150, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14,
-			23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9,
-			124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0,
-			137, 3, 252, 4, 236, 9, 188, 12, 41, 14, 64, 27, 0, 92, 46, 74, 100, 77, 70, 57, 12, 0, 120, 165, 135, 120, 120, 120, 120, 90,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0,
-			120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5,
-			7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 58, 2, 125, 6, 20, 10, 92, 13, 48, 17, 224, 27, 0, 73,
-			48, 61, 95, 89, 78, 33, 7, 0, 120, 120, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11,
-			76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2,
-			248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 10, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			204, 0, 144, 1, 97, 8, 20, 10, 92, 13, 135, 15, 128, 27, 0, 81, 57, 73, 72, 90, 90, 58, 13, 0, 120, 105, 150, 120, 120, 120,
-			45, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10,
-			3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11,
-			11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 224, 1, 178, 3, 236, 9, 8, 12, 222, 13, 128, 25,
-			0, 117, 65, 90, 99, 67, 78, 52, 17, 0, 120, 75, 150, 120, 120, 120, 90, 120, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9,
-			124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0,
-			13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165,
+			200, 0, 144, 1, 172, 8, 184, 11, 172, 13, 160, 15, 112, 23, 0, 10, 20, 20, 28, 18, 10, 10, 2, 5, 110, 180, 160, 200, 200, 175,
+			110, 180, 160, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 90, 0, 4, 0, 5, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38, 23, 14, 12, 14,
+			8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27, 45, 17, 54, 38,
+			23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13, 160, 15, 0, 27,
+			0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0, 0, 0, 60, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 236, 0, 234, 1, 52, 8, 236, 9, 172, 13,
+			160, 15, 0, 27, 0, 17, 54, 38, 23, 14, 12, 14, 8, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 20, 200, 200, 55, 230, 0,
+			0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0,
+			13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165,
 			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 228, 0, 224, 1, 125, 6, 76, 9, 148, 12, 66, 14, 32, 27, 0, 102, 68, 83, 83, 94, 100, 68, 14, 0, 120, 90, 120, 120,
-			120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 49, 0, 3, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16, 64, 27, 50, 39, 52, 19, 25, 54,
-			27, 19, 8, 0, 150, 120, 120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16, 64, 27, 0, 39,
-			52, 19, 25, 54, 27, 19, 8, 0, 150, 120, 120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16,
-			64, 27, 0, 39, 52, 19, 25, 54, 27, 19, 8, 0, 150, 120, 120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 2, 0, 5, 0, 240, 0, 13, 2,
-			248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 70, 16, 48, 16, 16, 8, 8, 12, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 0, 16, 48, 16, 16, 8, 8, 12, 3, 0, 120, 90, 165, 120, 120, 120,
+			5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120,
+			120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 240, 0, 73, 2, 15, 6, 176, 9, 208, 12, 16, 14, 160, 27, 0, 99, 58, 71, 121, 73, 58, 41, 11, 0,
+			120, 120, 150, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13,
+			43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17,
+			224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 137, 3, 252, 4, 236, 9,
+			188, 12, 41, 14, 64, 27, 0, 92, 46, 74, 100, 77, 70, 57, 12, 0, 120, 165, 135, 120, 120, 120, 120, 90, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0,
+			240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120,
 			90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 30, 0, 2, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 30, 13, 43, 11, 11, 5, 7, 10,
-			3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 0, 13, 43, 11,
-			11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 109, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 212, 13,
-			200, 15, 224, 23, 60, 24, 52, 20, 19, 10, 12, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9,
-			124, 11, 212, 13, 200, 15, 224, 23, 50, 24, 52, 20, 19, 10, 12, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0,
-			13, 2, 248, 9, 124, 11, 212, 13, 160, 15, 224, 23, 0, 14, 40, 14, 10, 5, 7, 9, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			41, 0, 5, 0, 1, 0, 116, 0, 13, 2, 64, 6, 196, 9, 84, 11, 72, 13, 96, 27, 16, 16, 18, 36, 37, 24, 19, 17, 9, 4,
-			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 116, 0, 13, 2, 64, 6, 196, 9, 84, 11, 72, 13, 96, 27, 0, 22, 22, 43, 39, 24,
-			22, 19, 12, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 216, 1, 64, 6, 196, 9, 228, 12, 60, 15, 124, 21, 25, 20,
-			12, 40, 24, 8, 0, 0, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9, 228, 12, 60, 15,
-			124, 21, 0, 17, 12, 36, 24, 8, 0, 0, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0,
-			45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9,
-			228, 12, 60, 15, 124, 21, 0, 17, 12, 36, 24, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51,
-			0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 53, 0, 5, 0, 1, 0,
-			116, 0, 13, 2, 176, 4, 196, 9, 84, 11, 72, 13, 96, 27, 18, 16, 18, 36, 37, 24, 19, 17, 9, 4, 167, 150, 135, 120, 120, 120,
+			0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90,
+			165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 58, 2, 125, 6, 20, 10, 92, 13, 48, 17, 224, 27, 0, 73, 48, 61, 95, 89, 78, 33,
+			7, 0, 120, 120, 120, 120, 120, 120, 90, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23,
+			50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14,
+			23, 17, 224, 23, 80, 13, 43, 11, 11, 10, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 144, 1, 97, 8,
+			20, 10, 92, 13, 135, 15, 128, 27, 0, 81, 57, 73, 72, 90, 90, 58, 13, 0, 120, 105, 150, 120, 120, 120, 45, 105, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0,
+			5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120,
+			120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0,
+			120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 224, 1, 178, 3, 236, 9, 8, 12, 222, 13, 128, 25, 0, 117, 65, 90, 99, 67,
+			78, 52, 17, 0, 120, 75, 150, 120, 120, 120, 90, 120, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 129, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17,
+			224, 23, 50, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11,
+			76, 14, 23, 17, 224, 23, 80, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 228, 0, 224, 1,
+			125, 6, 76, 9, 148, 12, 66, 14, 32, 27, 0, 102, 68, 83, 83, 94, 100, 68, 14, 0, 120, 90, 120, 120, 120, 120, 90, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 49, 0,
+			3, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16, 64, 27, 50, 39, 52, 19, 25, 54, 27, 19, 8, 0, 150, 120,
+			120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16, 64, 27, 0, 39, 52, 19, 25, 54, 27, 19,
+			8, 0, 150, 120, 120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 12, 1, 249, 1, 61, 9, 96, 9, 152, 13, 29, 16, 64, 27, 0, 39, 52, 19,
+			25, 54, 27, 19, 8, 0, 150, 120, 120, 120, 120, 120, 135, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 2, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14,
+			23, 17, 224, 23, 70, 16, 48, 16, 16, 8, 8, 12, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 13, 2, 248, 9,
+			124, 11, 76, 14, 23, 17, 224, 23, 0, 16, 48, 16, 16, 8, 8, 12, 3, 0, 120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 30, 0, 2, 0,
+			5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 30, 13, 43, 11, 11, 5, 7, 10, 3, 0, 120, 90, 165, 120,
+			120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 0, 13, 43, 11, 11, 5, 7, 10, 3, 0,
+			120, 90, 165, 120, 120, 120, 90, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 109, 0, 3, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 212, 13, 200, 15, 224, 23, 60, 24,
+			52, 20, 19, 10, 12, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 212, 13, 200, 15,
+			224, 23, 50, 24, 52, 20, 19, 10, 12, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 240, 0, 13, 2, 248, 9, 124, 11,
+			212, 13, 160, 15, 224, 23, 0, 14, 40, 14, 10, 5, 7, 9, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 41, 0, 5, 0, 1, 0,
+			116, 0, 13, 2, 64, 6, 196, 9, 84, 11, 72, 13, 96, 27, 16, 16, 18, 36, 37, 24, 19, 17, 9, 4, 167, 150, 135, 120, 120, 120,
 			197, 120, 120, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 17, 0, 116, 0, 13, 2, 20, 5, 196, 9, 84, 11, 72, 13, 96, 27, 0, 22, 22, 43, 39, 24, 22, 19, 12, 4, 167, 150,
+			0, 0, 17, 0, 116, 0, 13, 2, 64, 6, 196, 9, 84, 11, 72, 13, 96, 27, 0, 22, 22, 43, 39, 24, 22, 19, 12, 4, 167, 150,
 			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21, 35, 20, 12, 40, 24, 8, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 216, 1, 64, 6, 196, 9, 228, 12, 60, 15, 124, 21, 25, 20, 12, 40, 24, 8, 0, 0,
 			0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21, 0, 16, 12, 36,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9, 228, 12, 60, 15, 124, 21, 0, 17, 12, 36,
 			24, 8, 0, 0, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21,
-			0, 16, 12, 36, 24, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 27, 0, 3, 0, 5, 0, 136, 0, 8, 2, 64, 6,
-			252, 8, 184, 11, 100, 15, 124, 21, 28, 14, 7, 36, 21, 14, 14, 14, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70,
-			130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0,
-			216, 1, 64, 6, 32, 8, 184, 11, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212,
-			187, 44, 45, 70, 130, 47, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
-			1, 0, 136, 0, 216, 1, 64, 6, 32, 8, 184, 11, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187,
-			205, 175, 200, 212, 187, 44, 45, 70, 130, 47, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 250, 0, 0, 34, 0, 4, 0, 5, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21, 12, 19, 8, 40, 32, 16,
-			16, 16, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21, 22, 4,
-			4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15,
-			124, 21, 0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 8, 2, 64, 6, 252, 8,
-			184, 11, 100, 15, 124, 21, 0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 35, 0, 2, 0, 5, 0,
-			136, 0, 216, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 35, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175,
-			200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
-			0, 0, 1, 0, 136, 0, 216, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212,
-			187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 250, 0, 0, 105, 0, 5, 0, 1, 0, 116, 0, 13, 2, 60, 5, 208, 7, 84, 11, 16, 14, 96, 27, 30, 13, 18, 33,
-			30, 22, 19, 17, 9, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 116, 0, 13, 2, 60, 5, 128, 7, 40, 10, 60, 15, 96, 27,
-			0, 19, 22, 39, 33, 26, 24, 8, 12, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 72, 2, 100, 5, 108, 7, 40, 10,
-			244, 11, 124, 21, 35, 14, 16, 32, 20, 20, 8, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 72, 2, 100, 5,
-			108, 7, 40, 10, 244, 11, 124, 21, 40, 14, 16, 32, 20, 20, 8, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0,
-			13, 2, 60, 5, 208, 7, 84, 11, 16, 14, 96, 27, 0, 19, 22, 39, 36, 26, 23, 20, 11, 5, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9, 228, 12, 60, 15, 124, 21,
+			0, 17, 12, 36, 24, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 53, 0, 5, 0, 1, 0, 116, 0, 13, 2, 176, 4,
+			196, 9, 84, 11, 72, 13, 96, 27, 18, 16, 18, 36, 37, 24, 19, 17, 9, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 116, 0,
+			13, 2, 20, 5, 196, 9, 84, 11, 72, 13, 96, 27, 0, 22, 22, 43, 39, 24, 22, 19, 12, 4, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			5, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21, 35, 20, 12, 40, 24, 8, 0, 0, 0, 0, 200, 212, 187, 187,
+			205, 175, 200, 212, 187, 44, 45, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21, 0, 16, 12, 36, 24, 8, 0, 0, 0, 0,
+			200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 224, 1, 24, 6, 196, 9, 228, 12, 60, 15, 124, 21, 0, 16, 12, 36, 24, 8,
+			4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 27, 0, 3, 0, 5, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15,
+			124, 21, 28, 14, 7, 36, 21, 14, 14, 14, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 50, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 32, 8,
+			184, 11, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 47,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 216, 1,
+			64, 6, 32, 8, 184, 11, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44,
+			45, 70, 130, 47, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 34, 0,
+			4, 0, 5, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21, 12, 19, 8, 40, 32, 16, 16, 16, 0, 0, 200, 212,
+			187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 51, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 5, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21, 22, 4, 4, 20, 16, 8, 4, 8,
+			0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21, 0, 4, 4, 20,
+			16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0, 8, 2, 64, 6, 252, 8, 184, 11, 100, 15, 124, 21,
+			0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 45, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 35, 0, 2, 0, 5, 0, 136, 0, 216, 0, 220, 5,
+			46, 9, 228, 12, 24, 16, 124, 21, 35, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50,
+			85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 136, 0,
+			216, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
+			187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
 			64, 0, 5, 0, 1, 0, 116, 0, 13, 2, 60, 5, 208, 7, 84, 11, 16, 14, 96, 27, 30, 13, 18, 33, 30, 22, 19, 17, 9, 4,
 			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 250, 0, 0, 17, 0, 116, 0, 13, 2, 60, 5, 128, 7, 40, 10, 60, 15, 96, 27, 0, 19, 22, 39, 33, 26,
@@ -1902,11 +1813,11 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 4, 1, 200, 3, 108, 7, 248, 12, 41, 14, 32, 27, 0, 24,
 			25, 34, 24, 15, 19, 19, 7, 0, 120, 135, 180, 120, 120, 120, 120, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 58, 0, 3, 0, 5, 0, 116, 0, 208, 0, 104, 6, 40, 10,
-			232, 13, 24, 16, 124, 21, 58, 7, 12, 16, 8, 4, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 50,
+			232, 13, 24, 16, 124, 21, 58, 7, 12, 16, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 50,
 			0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 208, 0,
-			104, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 7, 12, 16, 8, 4, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
+			104, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 7, 12, 16, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
 			30, 50, 85, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
-			116, 0, 208, 0, 104, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 7, 12, 16, 8, 4, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175,
+			116, 0, 208, 0, 104, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 7, 12, 16, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175,
 			200, 212, 187, 44, 30, 50, 85, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250,
 			0, 0, 70, 0, 3, 0, 1, 0, 116, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 70, 3, 9, 9, 4, 2, 2, 2,
 			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 50, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3852,502 +3763,506 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 11, 21, 253, 254, 4, 13, 15, 5, 7, 13, 17, 5, 2, 8, 13, 3, 27, 255, 249, 20, 22, 11, 17, 13, 0, 240, 244, 14, 252,
 			245, 249, 1, 4, 3, 251, 254, 240, 246, 2, 5, 253, 248, 2, 7, 22, 16, 9, 3, 0, 250, 3, 10, 3, 1, 0, 247, 6, 12, 254,
 			252, 1, 2, 4, 0, 253, 9, 11, 13, 10, 6, 5, 255, 249, 242, 247, 251, 244, 0, 4, 2, 255, 0, 4, 250, 253, 7, 20, 19, 15,
-			7, 0, 198, 2, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 1, 2, 0, 3, 1, 2, 1, 3, 253, 0, 3,
-			5, 5, 3, 0, 255, 254, 0, 2, 3, 2, 0, 254, 252, 253, 0, 0, 255, 0, 0, 1, 0, 0, 255, 253, 254, 0, 1, 0, 0, 0,
-			0, 0, 255, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
-			0, 1, 0, 0, 1, 0, 0, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 0, 0, 0, 255, 0, 255, 255, 0, 0, 0, 255, 0, 0,
-			0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 1, 1,
-			255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 2, 0, 2,
-			1, 0, 0, 1, 0, 1, 2, 2, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 255, 255,
-			255, 255, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 0, 2, 2,
-			3, 2, 2, 2, 3, 1, 7, 8, 1, 0, 254, 0, 1, 5, 6, 4, 0, 0, 255, 1, 3, 3, 3, 3, 1, 2, 2, 2, 0, 1,
-			0, 1, 1, 1, 0, 1, 1, 0, 3, 5, 7, 11, 13, 13, 9, 3, 254, 249, 249, 6, 2, 247, 245, 249, 250, 250, 245, 249, 245, 241,
-			244, 238, 237, 239, 235, 236, 233, 230, 234, 235, 229, 238, 233, 235, 234, 234, 235, 232, 234, 237, 236, 236, 239, 242, 245, 250, 254, 12, 20, 33,
-			43, 87, 125, 92, 105, 109, 41, 66, 75, 52, 59, 45, 37, 53, 37, 12, 33, 13, 4, 230, 214, 206, 185, 195, 215, 201, 208, 204, 199, 225,
-			211, 212, 215, 218, 229, 210, 222, 241, 237, 2, 14, 22, 23, 23, 18, 22, 51, 38, 32, 43, 24, 23, 27, 11, 9, 28, 12, 13, 11, 247,
-			254, 253, 253, 254, 250, 235, 228, 227, 216, 227, 228, 221, 236, 238, 233, 233, 238, 237, 251, 247, 241, 247, 232, 234, 245, 252, 253, 0, 8, 6,
-			14, 13, 8, 22, 23, 20, 24, 18, 2, 12, 10, 7, 14, 5, 2, 7, 3, 253, 5, 1, 0, 6, 2, 253, 0, 252, 0, 7, 3, 3,
-			6, 4, 6, 16, 15, 18, 21, 20, 20, 22, 15, 15, 17, 14, 15, 11, 254, 0, 7, 8, 5, 4, 251, 247, 238, 243, 244, 244, 244, 245,
-			245, 246, 246, 247, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, 0, 0, 0, 0,
-			0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-			2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			7, 0, 149, 3, 54, 0, 2, 2, 2, 1, 1, 0, 1, 0, 5, 4, 0, 254, 252, 255, 0, 3, 4, 2, 255, 255, 0, 1, 2, 2,
+			2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 255, 255, 0, 0, 0, 255, 255, 255, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0,
+			0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255,
+			255, 255, 255, 0, 255, 255, 254, 254, 254, 253, 254, 252, 253, 254, 253, 253, 253, 255, 255, 254, 254, 253, 253, 254, 255, 255, 253, 255, 255, 254,
+			255, 255, 254, 255, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 1, 2, 2, 2, 1, 3, 2, 2, 1, 3, 255, 0, 3, 5, 5, 3,
+			1, 0, 255, 0, 2, 3, 2, 0, 255, 254, 254, 0, 0, 0, 0, 0, 1, 0, 1, 0, 255, 255, 0, 1, 0, 0, 0, 0, 0, 0,
+			0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0,
+			255, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, 254, 254, 253, 254, 253, 253, 254, 253, 253, 253, 254, 254, 254, 255, 254,
+			255, 255, 254, 254, 254, 254, 254, 254, 253, 253, 253, 253, 253, 254, 254, 253, 254, 254, 254, 253, 253, 255, 254, 254, 255, 0, 0, 253, 254, 254,
+			255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 2, 1, 0, 1,
+			1, 1, 2, 3, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 1, 1, 1, 1, 2,
+			1, 2, 1, 2, 2, 2, 2, 2, 3, 4, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 4, 3, 4, 4, 3, 4, 4, 5, 4, 4,
+			4, 4, 4, 8, 9, 3, 2, 0, 1, 4, 6, 8, 6, 2, 2, 1, 4, 5, 6, 5, 6, 4, 5, 5, 5, 4, 5, 4, 5, 5,
+			6, 4, 6, 7, 6, 9, 11, 13, 16, 18, 19, 16, 11, 7, 4, 4, 16, 13, 5, 4, 6, 9, 8, 5, 9, 6, 4, 6, 3, 2,
+			4, 1, 3, 1, 0, 3, 4, 0, 7, 4, 6, 5, 6, 7, 5, 7, 10, 9, 10, 13, 15, 18, 21, 25, 37, 44, 54, 62, 97, 127,
+			100, 111, 114, 59, 79, 86, 68, 72, 61, 54, 67, 54, 33, 50, 33, 25, 1, 244, 237, 220, 227, 242, 231, 235, 231, 227, 247, 234, 235, 236,
+			238, 246, 230, 239, 253, 249, 9, 18, 23, 23, 23, 18, 21, 43, 32, 27, 35, 19, 18, 21, 7, 5, 20, 7, 7, 5, 245, 251, 249, 249,
+			250, 247, 234, 229, 228, 219, 228, 229, 223, 235, 237, 233, 233, 238, 237, 249, 246, 242, 247, 235, 237, 246, 252, 253, 0, 6, 6, 12, 12, 8,
+			20, 21, 19, 23, 19, 6, 16, 14, 13, 18, 12, 9, 14, 12, 7, 14, 11, 11, 16, 12, 8, 12, 8, 12, 19, 15, 16, 18, 17, 18,
+			26, 25, 28, 31, 30, 30, 31, 25, 26, 27, 25, 25, 22, 11, 13, 18, 19, 16, 15, 7, 4, 253, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 9,
-			28, 0, 246, 0, 11, 13, 16, 12, 252, 240, 252, 15, 15, 16, 10, 244, 239, 3, 22, 20, 15, 12, 3, 249, 3, 27, 35, 29, 13, 0,
-			3, 22, 23, 31, 32, 8, 9, 5, 3, 14, 23, 19, 16, 0, 247, 6, 27, 17, 250, 248, 253, 0, 15, 22, 255, 250, 0, 249, 7, 8,
-			7, 14, 7, 255, 253, 12, 12, 254, 16, 28, 8, 3, 8, 14, 13, 16, 8, 6, 13, 12, 9, 8, 12, 1, 242, 1, 25, 28, 15, 239,
-			230, 237, 14, 31, 22, 11, 234, 215, 245, 22, 37, 25, 13, 242, 218, 234, 15, 31, 31, 28, 11, 243, 237, 248, 17, 38, 26, 246, 233, 18,
-			40, 25, 3, 240, 241, 7, 31, 33, 28, 14, 249, 245, 0, 14, 27, 27, 12, 21, 10, 247, 251, 19, 25, 20, 19, 17, 2, 255, 20, 23,
-			1, 4, 10, 17, 11, 0, 8, 18, 255, 6, 250, 4, 30, 11, 1, 254, 8, 11, 251, 251, 22, 29, 15, 6, 243, 1, 34, 31, 9, 0,
-			6, 21, 7, 21, 23, 19, 25, 15, 247, 44, 47, 242, 235, 19, 32, 22, 29, 16, 246, 252, 4, 9, 25, 25, 11, 234, 232, 0, 20, 31,
-			15, 253, 230, 226, 246, 29, 27, 242, 246, 252, 1, 254, 246, 255, 2, 5, 3, 251, 248, 11, 0, 250, 20, 5, 244, 242, 14, 14, 12, 23,
-			247, 221, 255, 23, 23, 34, 16, 208, 211, 24, 52, 18, 232, 240, 13, 2, 0, 13, 16, 2, 232, 239, 9, 18, 39, 23, 229, 216, 245, 30,
-			43, 34, 16, 244, 234, 248, 26, 43, 34, 22, 6, 3, 5, 13, 27, 21, 31, 25, 15, 9, 10, 17, 14, 8, 30, 30, 14, 251, 236, 18,
-			48, 34, 246, 232, 3, 13, 17, 16, 11, 5, 242, 247, 249, 6, 21, 20, 20, 245, 219, 242, 18, 22, 20, 17, 254, 237, 243, 20, 38, 20,
-			8, 4, 240, 249, 27, 37, 28, 7, 254, 238, 247, 25, 45, 34, 1, 243, 244, 2, 32, 42, 17, 243, 245, 12, 20, 22, 23, 254, 254, 14,
-			18, 18, 23, 26, 20, 250, 248, 16, 27, 29, 24, 18, 3, 244, 1, 36, 35, 7, 254, 7, 14, 14, 13, 17, 250, 245, 10, 15, 18, 16,
-			240, 233, 11, 17, 4, 253, 11, 20, 251, 238, 251, 8, 12, 9, 240, 246, 14, 19, 5, 244, 252, 253, 247, 251, 9, 15, 5, 249, 243, 252,
-			8, 11, 251, 252, 248, 240, 1, 14, 25, 13, 221, 213, 9, 45, 25, 251, 250, 7, 251, 255, 6, 254, 13, 33, 20, 241, 248, 7, 32, 28,
-			248, 251, 18, 7, 17, 41, 21, 219, 238, 16, 34, 42, 20, 254, 3, 0, 244, 26, 50, 27, 245, 252, 16, 9, 5, 28, 44, 40, 255, 232,
-			255, 43, 55, 23, 254, 11, 30, 17, 22, 27, 13, 252, 0, 53, 52, 14, 0, 233, 4, 25, 15, 15, 29, 13, 247, 2, 246, 227, 11, 41,
-			14, 252, 252, 248, 241, 226, 252, 42, 11, 242, 241, 245, 11, 5, 233, 231, 13, 43, 27, 236, 227, 251, 3, 13, 23, 9, 14, 26, 2, 234,
-			2, 29, 10, 14, 2, 252, 2, 31, 25, 235, 214, 252, 20, 49, 24, 227, 241, 4, 253, 242, 15, 42, 5, 243, 255, 239, 239, 3, 31, 58,
-			15, 248, 249, 252, 26, 60, 244, 230, 49, 25, 252, 32, 59, 33, 252, 249, 235, 250, 52, 54, 22, 17, 251, 216, 242, 36, 35, 218, 225, 61,
-			27, 215, 2, 20, 195, 215, 49, 34, 1, 13, 254, 5, 10, 242, 228, 235, 53, 89, 1, 239, 28, 7, 241, 42, 63, 240, 249, 32, 9, 12,
-			18, 41, 34, 249, 0, 17, 244, 3, 40, 24, 241, 3, 28, 219, 232, 33, 19, 242, 253, 21, 8, 12, 1, 239, 248, 9, 8, 17, 35, 3,
-			11, 40, 0, 255, 41, 26, 250, 36, 27, 7, 26, 59, 7, 206, 20, 52, 252, 10, 38, 252, 245, 238, 7, 35, 33, 12, 244, 202, 219, 33,
-			35, 221, 226, 39, 26, 239, 232, 0, 9, 29, 26, 223, 228, 18, 47, 16, 3, 35, 253, 0, 35, 35, 6, 237, 28, 38, 3, 15, 34, 8,
-			12, 42, 8, 167, 235, 92, 89, 245, 191, 238, 0, 6, 37, 37, 227, 239, 7, 250, 249, 25, 28, 251, 224, 7, 19, 252, 21, 33, 2, 249,
-			19, 10, 16, 28, 11, 251, 245, 20, 32, 18, 38, 5, 221, 238, 69, 47, 232, 246, 1, 243, 13, 37, 26, 3, 255, 220, 249, 39, 251, 244,
-			23, 15, 21, 14, 250, 246, 12, 49, 252, 232, 22, 32, 16, 28, 10, 218, 11, 32, 20, 36, 20, 8, 240, 232, 14, 48, 39, 0, 2, 49,
-			34, 253, 247, 10, 26, 40, 38, 254, 251, 14, 32, 52, 9, 201, 249, 75, 29, 4, 33, 0, 218, 6, 5, 0, 17, 41, 20, 235, 248, 38,
-			8, 195, 217, 15, 56, 28, 12, 247, 238, 237, 240, 19, 21, 18, 24, 19, 6, 248, 203, 235, 55, 51, 14, 17, 25, 8, 5, 216, 224, 55,
-			83, 14, 227, 10, 59, 28, 209, 208, 13, 43, 22, 10, 254, 4, 13, 235, 202, 252, 24, 8, 38, 11, 232, 230, 9, 254, 224, 235, 54, 44,
-			254, 248, 246, 255, 251, 214, 245, 67, 69, 15, 238, 231, 241, 4, 18, 46, 52, 22, 3, 7, 17, 240, 239, 250, 30, 75, 46, 254, 3, 15,
-			246, 213, 245, 72, 68, 4, 0, 253, 249, 4, 244, 5, 67, 75, 21, 211, 229, 10, 241, 252, 63, 80, 51, 5, 197, 199, 1, 26, 240, 30,
-			63, 16, 246, 227, 0, 250, 222, 223, 252, 69, 85, 3, 208, 250, 7, 0, 55, 27, 235, 17, 14, 254, 0, 56, 64, 247, 248, 35, 22, 5,
-			5, 8, 45, 34, 248, 12, 35, 35, 1, 253, 230, 245, 38, 55, 43, 236, 201, 255, 9, 252, 37, 39, 232, 221, 12, 4, 224, 3, 49, 26,
-			243, 255, 5, 229, 254, 29, 26, 12, 248, 0, 12, 12, 58, 59, 245, 205, 225, 14, 46, 18, 0, 25, 34, 254, 230, 236, 3, 15, 234, 220,
-			43, 76, 16, 221, 227, 250, 227, 210, 10, 62, 30, 236, 226, 241, 11, 0, 241, 3, 240, 7, 28, 32, 2, 247, 247, 246, 251, 42, 96, 34,
-			250, 245, 239, 225, 241, 60, 123, 59, 237, 230, 252, 240, 12, 32, 32, 33, 10, 1, 12, 10, 245, 243, 14, 25, 9, 248, 13, 29, 13, 237,
-			228, 22, 51, 40, 14, 248, 0, 236, 252, 26, 37, 40, 11, 2, 8, 5, 248, 212, 1, 66, 25, 243, 27, 31, 246, 215, 234, 13, 21, 42,
-			42, 255, 220, 229, 21, 44, 251, 251, 16, 17, 16, 0, 229, 242, 20, 48, 23, 6, 249, 243, 16, 2, 231, 17, 53, 28, 11, 20, 15, 20,
-			249, 228, 254, 25, 39, 37, 2, 8, 14, 1, 230, 230, 11, 46, 37, 19, 248, 228, 248, 16, 15, 14, 14, 18, 20, 225, 233, 23, 253, 246,
-			31, 26, 14, 251, 253, 20, 37, 7, 212, 216, 42, 53, 16, 28, 9, 228, 243, 35, 62, 13, 211, 234, 1, 32, 46, 12, 248, 21, 30, 243,
-			208, 245, 36, 29, 4, 0, 252, 250, 255, 8, 18, 16, 240, 10, 31, 246, 244, 13, 28, 8, 10, 22, 18, 5, 241, 13, 16, 5, 36, 65,
-			27, 229, 234, 20, 4, 6, 36, 50, 42, 242, 218, 1, 20, 0, 2, 237, 14, 49, 25, 0, 0, 227, 192, 238, 63, 54, 26, 26, 254, 218,
-			240, 0, 245, 40, 52, 24, 29, 31, 250, 223, 230, 34, 54, 2, 12, 46, 14, 230, 4, 42, 34, 0, 255, 239, 245, 25, 32, 21, 244, 237,
-			11, 2, 242, 12, 33, 2, 242, 248, 1, 29, 55, 46, 227, 210, 2, 20, 252, 10, 39, 45, 255, 218, 0, 27, 2, 2, 25, 0, 250, 8,
-			24, 39, 29, 251, 252, 4, 4, 11, 5, 250, 252, 26, 29, 1, 242, 0, 44, 15, 218, 238, 4, 0, 55, 51, 228, 233, 23, 26, 1, 11,
-			31, 12, 13, 9, 236, 240, 27, 64, 40, 241, 239, 24, 0, 236, 249, 33, 50, 6, 225, 2, 6, 2, 5, 245, 253, 25, 33, 249, 234, 10,
-			6, 234, 246, 45, 61, 22, 245, 228, 222, 250, 22, 53, 38, 6, 5, 17, 15, 11, 253, 239, 254, 41, 31, 13, 26, 30, 22, 250, 254, 7,
-			251, 4, 28, 39, 30, 16, 5, 245, 253, 6, 247, 237, 33, 69, 7, 2, 16, 255, 236, 237, 245, 22, 71, 64, 0, 245, 242, 231, 252, 17,
-			36, 19, 33, 35, 0, 224, 249, 34, 3, 225, 4, 43, 41, 28, 12, 211, 205, 22, 39, 6, 15, 22, 246, 251, 17, 11, 253, 251, 2, 11,
-			248, 251, 48, 67, 1, 207, 232, 5, 37, 37, 250, 240, 22, 51, 0, 223, 13, 39, 9, 239, 10, 42, 6, 232, 11, 27, 233, 249, 40, 19,
-			17, 13, 217, 209, 16, 44, 19, 5, 32, 17, 214, 241, 38, 13, 248, 36, 58, 6, 219, 244, 31, 28, 18, 7, 0, 23, 29, 4, 238, 240,
-			254, 29, 39, 254, 230, 22, 51, 3, 210, 240, 25, 30, 8, 246, 0, 4, 0, 12, 27, 19, 241, 235, 8, 27, 27, 14, 11, 11, 6, 250,
-			6, 25, 33, 31, 25, 253, 226, 245, 25, 34, 17, 22, 27, 43, 29, 205, 203, 19, 53, 28, 7, 22, 36, 28, 0, 225, 227, 4, 44, 58,
-			55, 22, 231, 219, 230, 25, 48, 16, 24, 48, 0, 209, 238, 1, 22, 43, 12, 3, 20, 15, 253, 240, 234, 6, 34, 31, 27, 11, 248, 247,
-			6, 12, 253, 0, 26, 32, 16, 0, 248, 5, 30, 17, 254, 20, 26, 252, 4, 20, 22, 16, 1, 243, 253, 18, 5, 6, 29, 23, 248, 237,
-			5, 245, 234, 20, 40, 4, 236, 2, 17, 6, 12, 247, 222, 2, 22, 23, 36, 37, 13, 230, 238, 238, 241, 14, 46, 58, 27, 254, 253, 17,
-			13, 229, 223, 24, 68, 56, 5, 254, 15, 19, 7, 223, 240, 50, 61, 16, 245, 252, 12, 253, 248, 4, 16, 10, 15, 254, 248, 18, 6, 250,
-			243, 8, 29, 13, 254, 6, 11, 251, 3, 18, 32, 12, 241, 7, 30, 25, 15, 10, 7, 2, 11, 15, 16, 18, 14, 17, 9, 3, 252, 6,
-			31, 12, 249, 7, 18, 7, 10, 5, 247, 250, 18, 24, 5, 0, 15, 3, 245, 253, 16, 34, 30, 8, 234, 231, 10, 32, 18, 23, 35, 13,
-			241, 254, 16, 19, 19, 13, 16, 34, 30, 18, 2, 0, 3, 0, 12, 24, 23, 16, 11, 7, 251, 5, 25, 8, 252, 10, 36, 25, 240, 242,
-			6, 6, 7, 14, 22, 42, 24, 239, 231, 244, 255, 9, 9, 28, 53, 30, 240, 227, 249, 7, 5, 0, 12, 32, 32, 255, 250, 6, 254, 252,
-			14, 21, 16, 11, 13, 8, 248, 250, 9, 18, 26, 24, 1, 243, 2, 16, 10, 241, 252, 27, 29, 12, 16, 0, 247, 0, 0, 7, 22, 20,
-			7, 18, 9, 254, 14, 26, 15, 253, 249, 4, 28, 25, 2, 233, 0, 47, 37, 2, 1, 248, 233, 8, 30, 18, 11, 22, 12, 254, 4, 24,
-			26, 4, 254, 12, 12, 251, 12, 27, 23, 20, 11, 255, 254, 13, 13, 248, 254, 3, 6, 11, 20, 19, 1, 0, 252, 251, 7, 6, 250, 18,
-			20, 0, 19, 30, 10, 245, 240, 244, 0, 29, 53, 37, 3, 249, 241, 238, 8, 33, 33, 17, 12, 7, 246, 0, 21, 6, 250, 8, 32, 34,
-			0, 241, 0, 8, 1, 252, 1, 16, 23, 8, 248, 249, 4, 10, 253, 0, 14, 9, 2, 20, 29, 15, 1, 250, 252, 9, 33, 35, 21, 21,
-			16, 250, 251, 5, 11, 14, 11, 9, 7, 14, 24, 0, 239, 248, 254, 2, 15, 18, 8, 12, 13, 248, 233, 236, 5, 25, 14, 12, 18, 2,
-			249, 251, 3, 9, 17, 16, 22, 29, 10, 0, 6, 6, 10, 6, 6, 22, 27, 23, 22, 8, 250, 251, 9, 4, 1, 20, 29, 23, 15, 9,
-			8, 7, 7, 255, 252, 5, 15, 30, 35, 22, 253, 241, 254, 251, 248, 19, 28, 15, 3, 6, 10, 2, 0, 4, 10, 13, 19, 17, 254, 0,
-			21, 21, 0, 0, 24, 30, 14, 12, 9, 246, 251, 16, 12, 7, 22, 29, 8, 248, 8, 21, 9, 10, 10, 0, 0, 16, 24, 19, 6, 3,
-			1, 5, 15, 23, 10, 249, 245, 5, 15, 18, 15, 13, 5, 250, 234, 253, 26, 36, 31, 255, 237, 6, 23, 4, 8, 21, 18, 10, 9, 13,
-			16, 13, 6, 10, 13, 18, 18, 16, 8, 2, 250, 246, 8, 33, 28, 14, 15, 12, 254, 249, 2, 14, 5, 0, 3, 15, 30, 6, 246, 11,
-			6, 234, 240, 8, 26, 22, 2, 240, 247, 8, 15, 12, 0, 0, 0, 0, 21, 41, 20, 236, 243, 22, 23, 10, 10, 18, 15, 0, 252, 1,
-			6, 14, 23, 24, 17, 3, 0, 2, 250, 246, 2, 26, 38, 34, 6, 240, 244, 252, 7, 13, 2, 19, 37, 12, 247, 250, 4, 5, 5, 15,
-			15, 11, 16, 12, 255, 3, 9, 3, 11, 29, 30, 15, 5, 15, 10, 250, 252, 4, 18, 24, 21, 10, 15, 18, 2, 247, 248, 253, 10, 20,
-			23, 15, 5, 5, 0, 245, 0, 9, 8, 14, 17, 15, 9, 5, 252, 246, 0, 13, 18, 13, 12, 12, 3, 253, 255, 6, 6, 6, 9, 1,
-			3, 15, 12, 4, 2, 254, 0, 11, 16, 0, 249, 7, 14, 6, 1, 253, 254, 7, 20, 8, 255, 9, 11, 255, 2, 18, 12, 3, 8, 17,
-			12, 4, 15, 19, 8, 3, 8, 17, 21, 16, 14, 4, 2, 12, 11, 1, 8, 18, 20, 14, 4, 253, 249, 0, 0, 0, 58, 6, 43, 0,
-			255, 15, 12, 13, 10, 254, 255, 18, 15, 8, 0, 0, 6, 19, 19, 0, 4, 10, 0, 22, 11, 0, 2, 10, 17, 9, 15, 251, 249, 21,
-			15, 16, 17, 253, 235, 14, 31, 13, 14, 250, 254, 6, 13, 20, 26, 249, 241, 2, 35, 47, 254, 213, 0, 34, 21, 2, 13, 7, 251, 252,
-			10, 13, 9, 11, 13, 13, 248, 228, 254, 35, 40, 250, 249, 0, 238, 17, 30, 27, 6, 254, 1, 3, 14, 0, 10, 29, 18, 3, 3, 254,
-			243, 6, 46, 32, 246, 237, 17, 21, 253, 18, 2, 250, 12, 26, 9, 254, 2, 3, 10, 10, 7, 9, 0, 249, 236, 23, 34, 255, 0, 246,
-			12, 22, 220, 1, 31, 12, 245, 247, 8, 10, 3, 247, 245, 40, 24, 214, 242, 29, 5, 0, 23, 246, 0, 10, 246, 21, 21, 227, 239, 41,
-			36, 239, 229, 253, 24, 33, 253, 242, 3, 2, 9, 14, 253, 253, 17, 21, 235, 240, 40, 23, 230, 10, 18, 3, 246, 1, 23, 9, 252, 17,
-			13, 236, 13, 29, 221, 250, 64, 246, 236, 22, 251, 8, 5, 254, 20, 15, 14, 243, 237, 7, 17, 12, 27, 44, 213, 196, 12, 46, 31, 11,
-			228, 209, 255, 42, 24, 232, 243, 8, 0, 3, 1, 253, 3, 4, 12, 6, 252, 219, 250, 49, 22, 246, 8, 7, 254, 235, 48, 71, 222, 197,
-			16, 58, 12, 233, 26, 86, 244, 132, 36, 89, 6, 250, 13, 21, 238, 225, 19, 27, 43, 20, 236, 216, 244, 39, 33, 234, 249, 236, 234, 255,
-			48, 41, 171, 171, 46, 60, 244, 0, 22, 240, 209, 7, 47, 24, 5, 249, 9, 247, 10, 23, 254, 29, 22, 12, 31, 15, 22, 250, 12, 55,
-			2, 0, 40, 3, 8, 28, 247, 23, 44, 17, 245, 215, 7, 54, 19, 237, 7, 254, 3, 16, 247, 225, 249, 74, 46, 193, 178, 17, 90, 4,
-			206, 5, 19, 36, 247, 207, 246, 53, 15, 251, 28, 0, 225, 10, 55, 16, 216, 6, 60, 3, 1, 26, 9, 9, 25, 17, 227, 12, 19, 251,
-			36, 17, 244, 244, 31, 34, 228, 239, 4, 49, 12, 245, 38, 6, 212, 214, 22, 47, 33, 4, 226, 249, 12, 249, 248, 39, 251, 217, 0, 54,
-			17, 236, 252, 255, 253, 240, 10, 45, 10, 19, 2, 199, 251, 33, 48, 3, 232, 26, 2, 240, 41, 7, 210, 11, 42, 25, 5, 209, 214, 56,
-			52, 254, 0, 231, 248, 39, 7, 230, 19, 29, 245, 246, 10, 44, 239, 197, 20, 52, 18, 228, 229, 27, 6, 247, 2, 18, 10, 35, 20, 225,
-			219, 13, 56, 38, 219, 252, 249, 240, 40, 35, 40, 227, 223, 11, 3, 43, 7, 226, 25, 32, 252, 235, 18, 14, 7, 40, 6, 202, 239, 45,
-			36, 9, 19, 224, 192, 23, 118, 5, 165, 233, 34, 66, 18, 251, 238, 245, 21, 10, 233, 32, 48, 3, 215, 247, 56, 11, 230, 24, 35, 213,
-			227, 51, 30, 214, 2, 47, 0, 242, 25, 3, 220, 232, 39, 25, 8, 45, 227, 185, 36, 69, 251, 208, 61, 64, 154, 2, 83, 248, 21, 8,
-			251, 0, 232, 0, 46, 38, 42, 1, 187, 254, 33, 237, 36, 50, 0, 225, 251, 36, 216, 247, 55, 44, 196, 240, 72, 199, 7, 32, 222, 30,
-			42, 225, 249, 55, 250, 213, 14, 27, 46, 252, 239, 46, 251, 196, 3, 47, 48, 249, 180, 36, 67, 215, 8, 52, 232, 234, 21, 246, 34, 46,
-			0, 226, 235, 27, 65, 252, 210, 230, 25, 81, 240, 214, 39, 37, 244, 1, 202, 242, 70, 15, 247, 250, 238, 72, 27, 156, 0, 71, 255, 250,
-			21, 250, 251, 42, 0, 229, 21, 24, 15, 233, 243, 51, 222, 254, 102, 239, 189, 1, 30, 26, 1, 10, 249, 232, 45, 10, 254, 44, 14, 174,
-			226, 78, 43, 0, 216, 245, 57, 6, 227, 221, 254, 73, 30, 11, 205, 193, 19, 39, 24, 30, 252, 9, 26, 214, 206, 253, 60, 54, 30, 244,
-			176, 195, 48, 94, 247, 211, 33, 36, 249, 213, 2, 30, 232, 42, 47, 204, 43, 64, 158, 227, 94, 250, 196, 79, 87, 167, 177, 16, 41, 23,
-			32, 36, 220, 237, 240, 10, 40, 235, 8, 22, 29, 15, 212, 230, 244, 50, 35, 246, 28, 229, 248, 15, 9, 216, 255, 36, 72, 53, 205, 233,
-			229, 229, 48, 2, 26, 38, 12, 23, 240, 186, 12, 45, 222, 23, 22, 241, 70, 3, 189, 236, 52, 34, 226, 252, 82, 7, 211, 241, 10, 251,
-			20, 63, 241, 4, 255, 235, 69, 234, 255, 16, 234, 36, 24, 190, 255, 63, 52, 37, 217, 153, 26, 54, 17, 43, 28, 232, 240, 250, 11, 239,
-			6, 16, 54, 41, 203, 245, 14, 222, 14, 30, 18, 15, 238, 4, 20, 25, 51, 196, 149, 68, 73, 28, 13, 24, 19, 208, 205, 247, 11, 14,
-			79, 20, 234, 23, 219, 211, 237, 32, 57, 26, 237, 20, 12, 186, 247, 41, 52, 20, 12, 29, 0, 161, 193, 97, 100, 22, 205, 249, 13, 12,
-			12, 224, 7, 29, 222, 6, 81, 37, 226, 201, 233, 33, 25, 21, 10, 27, 21, 215, 206, 250, 41, 38, 248, 10, 248, 253, 26, 5, 190, 230,
-			99, 80, 238, 189, 215, 11, 47, 30, 47, 53, 189, 226, 0, 209, 30, 59, 16, 17, 30, 250, 194, 239, 20, 24, 13, 13, 9, 17, 240, 253,
-			20, 0, 235, 229, 255, 56, 51, 228, 224, 23, 253, 10, 248, 235, 21, 35, 31, 250, 18, 254, 215, 17, 36, 41, 235, 228, 8, 238, 21, 33,
-			27, 14, 239, 232, 222, 23, 27, 247, 9, 61, 18, 193, 217, 32, 51, 228, 253, 44, 46, 253, 188, 209, 33, 80, 5, 241, 239, 3, 2, 1,
-			3, 240, 16, 22, 245, 244, 15, 25, 234, 3, 41, 218, 214, 20, 36, 31, 1, 239, 4, 33, 249, 210, 13, 32, 20, 254, 0, 26, 0, 35,
-			44, 236, 214, 6, 27, 31, 15, 242, 15, 13, 45, 14, 191, 225, 69, 30, 35, 24, 178, 223, 31, 28, 253, 240, 41, 50, 238, 238, 217, 228,
-			250, 37, 50, 29, 247, 245, 25, 245, 236, 253, 41, 58, 241, 249, 21, 26, 252, 205, 2, 18, 54, 29, 2, 0, 255, 244, 0, 40, 251, 219,
-			24, 30, 35, 25, 233, 5, 14, 244, 246, 250, 29, 8, 234, 28, 16, 241, 243, 250, 14, 220, 232, 53, 45, 15, 246, 247, 236, 229, 4, 40,
-			73, 40, 237, 201, 10, 0, 245, 45, 5, 23, 40, 12, 228, 225, 253, 20, 23, 38, 24, 227, 10, 42, 251, 217, 248, 12, 36, 37, 0, 12,
-			233, 234, 28, 9, 224, 4, 3, 22, 10, 6, 247, 8, 242, 235, 18, 32, 26, 236, 211, 24, 74, 10, 224, 248, 39, 7, 236, 6, 36, 38,
-			28, 245, 224, 2, 252, 243, 6, 57, 70, 13, 198, 201, 240, 9, 42, 54, 14, 245, 15, 245, 239, 8, 249, 6, 51, 34, 13, 0, 232, 247,
-			237, 27, 45, 12, 232, 13, 46, 32, 2, 242, 245, 255, 11, 248, 246, 18, 55, 41, 254, 224, 243, 237, 243, 255, 254, 0, 57, 68, 248, 212,
-			225, 233, 21, 21, 5, 26, 16, 237, 234, 3, 30, 255, 242, 14, 4, 18, 32, 21, 254, 247, 242, 244, 1, 75, 50, 3, 16, 231, 214, 247,
-			40, 35, 12, 8, 33, 0, 204, 252, 12, 1, 23, 58, 8, 228, 0, 9, 232, 4, 35, 2, 14, 27, 234, 227, 250, 28, 38, 2, 2, 245,
-			227, 243, 18, 27, 10, 254, 6, 20, 5, 248, 218, 15, 44, 14, 8, 18, 27, 253, 228, 249, 253, 32, 54, 15, 247, 255, 241, 223, 11, 62,
-			39, 249, 251, 29, 254, 216, 254, 17, 47, 49, 17, 243, 241, 6, 245, 244, 28, 42, 19, 11, 246, 239, 246, 10, 27, 7, 249, 13, 11, 255,
-			19, 255, 243, 8, 0, 1, 13, 16, 12, 253, 15, 4, 233, 252, 25, 7, 255, 21, 22, 0, 253, 12, 252, 247, 252, 10, 25, 38, 14, 242,
-			255, 10, 5, 9, 16, 15, 244, 249, 23, 25, 1, 3, 7, 250, 1, 2, 14, 23, 15, 240, 245, 15, 12, 0, 6, 17, 10, 1, 243, 249,
-			13, 23, 0, 8, 16, 1, 7, 6, 1, 1, 10, 6, 12, 9, 7, 11, 5, 0, 3, 4, 8, 18, 2, 251, 10, 29, 25, 246, 237, 244,
-			16, 31, 23, 8, 0, 252, 251, 5, 7, 12, 18, 9, 4, 250, 251, 10, 5, 1, 9, 17, 255, 254, 11, 10, 7, 0, 2, 8, 2, 12,
-			14, 1, 8, 3, 243, 6, 20, 8, 250, 0, 16, 11, 2, 7, 4, 249, 4, 12, 10, 8, 4, 13, 14, 1, 0, 1, 6, 8, 5, 0,
-			2, 10, 7, 6, 250, 247, 4, 8, 12, 15, 4, 248, 244, 1, 10, 5, 2, 6, 13, 8, 251, 251, 12, 8, 246, 250, 4, 12, 12, 11,
-			9, 1, 250, 248, 4, 4, 5, 19, 19, 7, 255, 255, 6, 17, 11, 1, 10, 24, 7, 2, 10, 10, 254, 2, 22, 13, 254, 0, 9, 14,
-			7, 3, 2, 4, 8, 12, 11, 11, 10, 10, 13, 17, 2, 2, 14, 20, 11, 8, 27, 13, 254, 14, 13, 7, 8, 10, 13, 14, 13, 6,
-			6, 3, 3, 4, 0, 0, 254, 6, 29, 0, 249, 255, 10, 5, 11, 0, 255, 254, 2, 4, 4, 9, 252, 250, 6, 2, 10, 255, 239, 0,
-			12, 11, 0, 249, 246, 4, 12, 253, 253, 254, 18, 254, 236, 235, 13, 24, 254, 244, 246, 0, 5, 7, 3, 248, 0, 1, 241, 250, 12, 11,
-			3, 4, 2, 0, 247, 251, 2, 5, 14, 3, 254, 2, 234, 8, 31, 5, 238, 248, 252, 255, 20, 4, 243, 9, 5, 253, 246, 0, 253, 13,
-			2, 8, 242, 233, 18, 30, 5, 237, 235, 253, 11, 10, 10, 253, 235, 6, 9, 5, 255, 245, 254, 7, 5, 2, 244, 239, 255, 21, 16, 242,
-			0, 20, 239, 237, 18, 2, 251, 4, 254, 6, 247, 3, 31, 3, 0, 255, 226, 243, 29, 21, 244, 242, 9, 22, 255, 231, 243, 19, 12, 241,
-			248, 18, 4, 225, 254, 23, 6, 246, 240, 13, 6, 249, 18, 255, 243, 251, 11, 5, 248, 2, 246, 2, 15, 19, 7, 230, 233, 16, 12, 13,
-			5, 226, 232, 18, 41, 13, 232, 229, 6, 12, 10, 0, 237, 252, 7, 11, 10, 247, 244, 254, 0, 9, 0, 238, 10, 30, 4, 240, 241, 243,
-			17, 8, 2, 1, 245, 4, 12, 255, 255, 0, 6, 12, 251, 247, 8, 242, 238, 4, 24, 25, 253, 232, 227, 255, 42, 255, 247, 249, 252, 13,
-			10, 8, 255, 228, 245, 17, 10, 11, 236, 226, 21, 42, 252, 248, 228, 229, 16, 39, 14, 238, 3, 249, 240, 22, 254, 11, 236, 228, 26, 48,
-			3, 201, 0, 5, 40, 13, 211, 230, 14, 23, 253, 11, 247, 247, 248, 246, 29, 25, 247, 224, 224, 253, 41, 48, 228, 236, 247, 239, 51, 32,
-			208, 228, 17, 38, 14, 1, 250, 239, 230, 1, 38, 19, 230, 237, 28, 22, 243, 235, 5, 2, 244, 250, 8, 7, 0, 239, 238, 34, 9, 218,
-			3, 34, 233, 213, 22, 42, 23, 222, 219, 246, 47, 19, 226, 249, 1, 19, 18, 244, 255, 248, 233, 247, 20, 38, 253, 235, 44, 17, 195, 251,
-			49, 252, 231, 239, 0, 30, 20, 247, 247, 6, 242, 2, 4, 254, 248, 1, 39, 2, 214, 236, 26, 27, 250, 236, 237, 11, 22, 249, 0, 252,
-			249, 254, 249, 9, 0, 248, 17, 27, 235, 225, 252, 37, 40, 240, 194, 0, 31, 3, 240, 251, 28, 18, 14, 234, 226, 2, 23, 4, 2, 10,
-			1, 12, 236, 232, 3, 18, 247, 19, 25, 233, 225, 16, 13, 239, 245, 13, 254, 237, 43, 63, 225, 153, 231, 53, 35, 7, 2, 243, 211, 255,
-			33, 15, 224, 214, 36, 62, 9, 9, 249, 183, 240, 40, 33, 29, 233, 252, 239, 243, 55, 4, 198, 220, 33, 74, 29, 211, 211, 241, 8, 36,
-			16, 0, 227, 211, 22, 245, 9, 16, 20, 10, 214, 231, 5, 30, 230, 242, 38, 28, 25, 228, 220, 248, 249, 35, 47, 2, 215, 227, 21, 4,
-			255, 19, 6, 242, 209, 19, 54, 2, 233, 240, 0, 255, 28, 248, 228, 17, 12, 7, 8, 0, 249, 227, 24, 18, 4, 242, 232, 16, 8, 10,
-			240, 4, 15, 224, 223, 246, 36, 21, 48, 10, 195, 212, 253, 44, 22, 2, 249, 233, 6, 235, 2, 13, 38, 13, 194, 235, 0, 14, 247, 6,
-			77, 8, 171, 234, 49, 223, 9, 61, 249, 35, 11, 183, 241, 27, 24, 29, 253, 181, 215, 72, 81, 240, 222, 18, 11, 233, 211, 223, 81, 32,
-			184, 215, 65, 36, 215, 203, 247, 88, 18, 171, 223, 45, 29, 248, 229, 2, 31, 240, 190, 255, 66, 39, 4, 216, 255, 253, 236, 7, 27, 19,
-			233, 246, 42, 6, 230, 2, 22, 0, 249, 239, 8, 31, 246, 244, 235, 11, 18, 239, 237, 7, 25, 12, 254, 245, 243, 253, 37, 8, 221, 242,
-			43, 19, 196, 204, 33, 63, 7, 242, 191, 221, 45, 79, 26, 210, 185, 4, 55, 1, 223, 7, 35, 228, 217, 1, 78, 51, 177, 165, 41, 81,
-			4, 244, 223, 223, 83, 37, 213, 253, 17, 234, 235, 5, 32, 16, 236, 199, 229, 22, 86, 37, 174, 179, 20, 52, 29, 250, 222, 207, 10, 85,
-			36, 222, 182, 196, 48, 69, 20, 240, 235, 23, 7, 228, 251, 220, 246, 87, 66, 198, 140, 43, 80, 14, 4, 16, 203, 157, 7, 60, 59, 20,
-			225, 223, 26, 24, 235, 216, 175, 7, 46, 31, 20, 73, 23, 131, 204, 73, 27, 204, 249, 25, 10, 14, 36, 21, 204, 213, 11, 57, 18, 197,
-			198, 251, 68, 58, 235, 14, 235, 157, 215, 27, 125, 87, 175, 148, 13, 44, 26, 36, 228, 196, 8, 13, 39, 52, 234, 148, 252, 96, 60, 18,
-			170, 155, 64, 84, 234, 187, 225, 8, 19, 240, 9, 17, 14, 247, 192, 42, 73, 250, 236, 224, 238, 76, 33, 176, 218, 49, 47, 252, 223, 252,
-			248, 244, 63, 32, 164, 21, 52, 195, 211, 23, 44, 9, 225, 248, 57, 210, 246, 102, 208, 191, 37, 2, 227, 29, 53, 220, 242, 15, 15, 205,
-			238, 40, 27, 30, 216, 218, 12, 21, 220, 202, 23, 105, 37, 140, 208, 60, 7, 219, 35, 42, 232, 244, 255, 47, 46, 189, 167, 246, 55, 90,
-			12, 207, 162, 222, 64, 81, 47, 236, 173, 222, 81, 42, 243, 182, 203, 46, 46, 30, 202, 207, 24, 63, 20, 36, 23, 164, 163, 255, 77, 100,
-			250, 187, 223, 0, 245, 35, 71, 220, 196, 232, 18, 31, 21, 251, 239, 71, 224, 160, 15, 4, 10, 93, 12, 190, 241, 234, 187, 48, 59, 24,
-			21, 193, 215, 5, 25, 2, 232, 254, 12, 33, 248, 0, 240, 1, 41, 18, 5, 252, 232, 247, 42, 31, 201, 12, 74, 223, 229, 16, 20, 12,
-			242, 226, 235, 1, 14, 44, 0, 179, 245, 19, 187, 8, 107, 253, 186, 234, 44, 3, 216, 3, 24, 224, 3, 34, 1, 232, 7, 238, 201, 48,
-			67, 242, 2, 252, 10, 33, 225, 224, 8, 1, 14, 84, 243, 166, 34, 67, 222, 188, 51, 114, 230, 187, 180, 6, 114, 37, 200, 190, 254, 10,
-			20, 28, 21, 38, 187, 198, 9, 60, 3, 166, 245, 106, 43, 156, 233, 0, 33, 43, 177, 220, 32, 22, 0, 252, 226, 10, 77, 235, 165, 244,
-			62, 6, 247, 29, 251, 47, 252, 176, 221, 110, 44, 229, 12, 236, 222, 61, 26, 209, 237, 29, 36, 17, 211, 211, 8, 56, 11, 211, 6, 233,
-			217, 7, 61, 3, 221, 226, 251, 33, 246, 223, 42, 242, 214, 21, 50, 243, 240, 253, 226, 19, 47, 56, 220, 192, 245, 29, 33, 19, 220, 230,
-			44, 38, 238, 5, 221, 174, 98, 43, 206, 245, 250, 57, 250, 214, 27, 254, 197, 23, 55, 254, 172, 1, 72, 14, 201, 233, 54, 15, 203, 0,
-			69, 232, 240, 227, 223, 47, 77, 0, 182, 238, 51, 50, 243, 166, 19, 39, 234, 254, 47, 4, 215, 11, 10, 223, 253, 40, 55, 210, 235, 10,
-			7, 16, 176, 223, 96, 77, 210, 164, 212, 16, 90, 54, 162, 218, 10, 13, 65, 13, 185, 210, 36, 41, 37, 17, 214, 245, 238, 0, 54, 35,
-			217, 223, 20, 16, 227, 212, 60, 33, 221, 230, 12, 16, 22, 242, 229, 43, 240, 194, 14, 15, 223, 39, 70, 244, 186, 236, 46, 53, 233, 174,
-			9, 64, 12, 251, 220, 4, 31, 3, 218, 244, 30, 240, 14, 30, 18, 238, 40, 243, 163, 224, 74, 45, 198, 249, 255, 33, 3, 227, 10, 253,
-			254, 250, 31, 44, 254, 10, 215, 205, 29, 26, 212, 234, 23, 5, 10, 18, 241, 230, 45, 1, 218, 4, 37, 31, 192, 220, 50, 56, 234, 248,
-			14, 216, 11, 240, 11, 67, 210, 233, 21, 248, 214, 0, 39, 35, 0, 215, 35, 10, 210, 255, 16, 228, 210, 92, 61, 222, 189, 247, 21, 247,
-			10, 9, 24, 224, 220, 27, 68, 6, 193, 233, 48, 28, 204, 250, 49, 29, 221, 211, 23, 7, 248, 6, 10, 21, 255, 251, 214, 221, 29, 23,
-			0, 237, 8, 252, 241, 23, 23, 246, 216, 0, 22, 246, 29, 32, 230, 197, 26, 63, 6, 224, 247, 37, 43, 0, 210, 254, 236, 228, 77, 21,
-			174, 206, 15, 49, 14, 234, 227, 252, 251, 0, 9, 19, 5, 246, 1, 4, 17, 239, 208, 252, 30, 66, 46, 3, 199, 192, 6, 67, 66, 246,
-			199, 215, 66, 72, 220, 202, 255, 14, 27, 253, 216, 235, 242, 0, 57, 42, 191, 155, 229, 72, 49, 222, 0, 253, 188, 233, 21, 27, 16, 31,
-			9, 193, 213, 78, 55, 0, 237, 227, 36, 54, 22, 212, 221, 12, 74, 68, 206, 186, 27, 74, 27, 195, 216, 12, 0, 252, 5, 23, 1, 212,
-			208, 234, 50, 53, 240, 225, 199, 232, 15, 18, 10, 202, 207, 4, 19, 43, 23, 247, 4, 254, 238, 253, 22, 32, 238, 232, 66, 75, 222, 207,
-			225, 10, 61, 55, 242, 200, 239, 32, 14, 0, 240, 255, 21, 6, 239, 34, 20, 204, 246, 9, 235, 234, 255, 9, 0, 29, 0, 208, 220, 0,
-			58, 54, 217, 180, 253, 19, 37, 64, 251, 194, 219, 254, 28, 254, 253, 254, 29, 50, 0, 173, 212, 57, 74, 16, 223, 245, 2, 242, 8, 42,
-			0, 243, 4, 253, 9, 27, 241, 217, 1, 34, 36, 1, 223, 217, 250, 28, 30, 236, 224, 239, 242, 14, 20, 253, 232, 212, 232, 78, 65, 192,
-			166, 235, 42, 66, 14, 225, 228, 230, 12, 67, 48, 221, 208, 249, 29, 42, 44, 10, 201, 208, 52, 69, 230, 218, 24, 30, 20, 239, 208, 235,
-			23, 40, 29, 10, 249, 227, 205, 219, 4, 39, 27, 232, 224, 254, 28, 35, 231, 193, 228, 37, 9, 244, 255, 7, 33, 246, 225, 234, 246, 250,
-			16, 48, 37, 243, 204, 242, 35, 64, 19, 210, 219, 231, 243, 14, 43, 51, 32, 237, 206, 2, 19, 3, 2, 236, 252, 29, 9, 234, 8, 46,
-			9, 223, 234, 12, 24, 252, 229, 247, 249, 9, 16, 1, 233, 6, 14, 245, 250, 255, 251, 242, 252, 5, 6, 10, 233, 223, 5, 22, 12, 249,
-			4, 247, 240, 245, 27, 29, 231, 235, 26, 34, 15, 248, 223, 247, 14, 3, 0, 3, 22, 13, 230, 239, 43, 54, 236, 219, 233, 253, 19, 18,
-			9, 0, 5, 7, 0, 240, 236, 1, 18, 251, 16, 12, 239, 234, 5, 11, 242, 247, 12, 33, 250, 241, 0, 234, 240, 0, 10, 235, 219, 248,
-			0, 0, 72, 4, 48, 0, 20, 243, 243, 32, 248, 1, 249, 9, 17, 225, 246, 27, 7, 231, 12, 8, 254, 5, 245, 255, 15, 0, 210, 26,
-			28, 197, 8, 36, 238, 7, 245, 247, 30, 237, 0, 26, 235, 38, 16, 183, 40, 43, 183, 12, 55, 228, 255, 252, 3, 23, 227, 10, 24, 231,
-			32, 245, 220, 36, 4, 231, 28, 21, 247, 248, 8, 10, 208, 244, 18, 3, 226, 205, 40, 40, 222, 255, 22, 236, 18, 0, 0, 24, 243, 19,
-			14, 230, 2, 246, 237, 4, 242, 4, 37, 244, 5, 20, 2, 235, 220, 29, 82, 188, 216, 75, 243, 253, 253, 249, 27, 238, 242, 8, 1, 245,
-			16, 236, 228, 42, 48, 202, 236, 53, 231, 231, 36, 0, 249, 21, 204, 52, 228, 214, 65, 198, 214, 110, 251, 205, 32, 48, 10, 222, 0, 19,
-			228, 251, 10, 201, 8, 74, 235, 229, 251, 251, 253, 31, 233, 206, 66, 30, 205, 3, 6, 23, 248, 211, 15, 23, 249, 237, 6, 10, 33, 240,
-			201, 49, 22, 215, 247, 24, 24, 9, 240, 6, 47, 249, 228, 42, 5, 211, 1, 12, 37, 16, 216, 2, 29, 218, 208, 17, 249, 33, 1, 200,
-			46, 7, 228, 239, 255, 17, 232, 235, 35, 27, 222, 232, 17, 7, 240, 237, 17, 23, 216, 234, 44, 21, 240, 7, 44, 1, 224, 248, 48, 13,
-			217, 5, 20, 26, 0, 3, 17, 1, 214, 243, 42, 246, 232, 32, 31, 235, 243, 6, 243, 240, 7, 15, 4, 8, 244, 241, 254, 8, 4, 3,
-			0, 236, 237, 243, 23, 227, 0, 51, 196, 200, 76, 45, 201, 231, 15, 27, 249, 253, 9, 249, 37, 18, 194, 16, 69, 213, 211, 9, 19, 26,
-			244, 8, 23, 20, 238, 210, 9, 59, 221, 205, 82, 52, 181, 231, 26, 7, 230, 238, 37, 17, 4, 226, 239, 40, 32, 234, 203, 5, 38, 235,
-			228, 40, 220, 0, 65, 208, 210, 41, 26, 213, 238, 35, 43, 213, 228, 63, 217, 234, 22, 255, 8, 253, 233, 0, 47, 244, 5, 12, 2, 10,
-			240, 42, 240, 230, 46, 237, 234, 28, 24, 250, 3, 254, 237, 253, 10, 26, 213, 246, 87, 224, 155, 58, 64, 172, 167, 58, 52, 206, 0, 26,
-			252, 239, 238, 239, 233, 37, 16, 236, 245, 27, 20, 237, 30, 14, 225, 2, 17, 2, 254, 30, 10, 241, 18, 32, 10, 241, 251, 255, 13, 254,
-			234, 39, 4, 245, 17, 220, 0, 37, 243, 193, 36, 47, 195, 193, 76, 60, 177, 244, 40, 245, 210, 236, 255, 2, 252, 26, 3, 254, 45, 201,
-			196, 60, 238, 231, 53, 18, 244, 24, 245, 222, 20, 14, 2, 15, 242, 249, 246, 38, 28, 219, 235, 48, 49, 201, 228, 44, 16, 218, 17, 0,
-			10, 26, 1, 233, 226, 35, 19, 223, 208, 40, 25, 217, 1, 217, 24, 34, 242, 229, 238, 55, 48, 159, 183, 75, 51, 251, 229, 244, 41, 253,
-			179, 249, 66, 42, 229, 212, 47, 29, 212, 0, 25, 3, 2, 30, 19, 234, 0, 221, 20, 39, 235, 249, 5, 11, 5, 192, 232, 67, 0, 223,
-			20, 234, 12, 30, 212, 234, 4, 12, 7, 217, 15, 46, 217, 244, 6, 240, 23, 39, 236, 226, 30, 17, 242, 248, 1, 18, 251, 255, 255, 0,
-			11, 11, 0, 251, 16, 23, 241, 0, 11, 16, 248, 239, 245, 16, 12, 216, 0, 3, 10, 43, 246, 227, 13, 254, 205, 1, 47, 31, 234, 194,
-			35, 66, 234, 210, 228, 6, 62, 226, 202, 43, 19, 193, 227, 54, 33, 17, 228, 240, 254, 14, 14, 186, 30, 126, 219, 166, 31, 42, 248, 214,
-			231, 52, 2, 1, 39, 191, 228, 68, 227, 212, 63, 37, 3, 227, 215, 35, 31, 226, 0, 8, 250, 17, 240, 219, 18, 23, 253, 214, 0, 51,
-			0, 209, 21, 51, 242, 202, 252, 43, 8, 250, 16, 7, 18, 242, 218, 36, 13, 194, 246, 35, 12, 255, 219, 251, 71, 10, 189, 233, 15, 13,
-			0, 227, 41, 64, 236, 191, 212, 17, 36, 1, 215, 52, 43, 216, 186, 4, 65, 11, 236, 3, 16, 245, 253, 24, 5, 222, 15, 19, 2, 21,
-			243, 227, 32, 11, 200, 5, 58, 22, 220, 225, 21, 10, 14, 224, 185, 57, 66, 197, 248, 25, 230, 254, 249, 242, 26, 24, 238, 240, 253, 33,
-			14, 244, 26, 240, 206, 244, 8, 22, 20, 4, 4, 7, 16, 221, 225, 18, 33, 231, 235, 35, 24, 22, 238, 240, 253, 4, 8, 234, 236, 2,
-			21, 6, 30, 250, 221, 18, 6, 233, 244, 17, 22, 254, 244, 4, 21, 17, 241, 213, 16, 23, 223, 253, 18, 255, 5, 3, 225, 24, 4, 245,
-			239, 217, 27, 44, 247, 2, 7, 6, 0, 210, 244, 50, 9, 247, 9, 0, 20, 216, 232, 53, 11, 230, 2, 248, 8, 30, 250, 237, 241, 35,
-			50, 252, 210, 225, 6, 11, 8, 7, 22, 254, 231, 253, 255, 3, 15, 252, 241, 14, 11, 236, 230, 227, 250, 22, 22, 2, 7, 21, 0, 230,
-			253, 31, 9, 235, 245, 16, 13, 229, 239, 2, 5, 20, 250, 234, 27, 29, 225, 213, 4, 39, 48, 5, 231, 0, 3, 0, 14, 229, 227, 13,
-			17, 24, 15, 231, 229, 3, 246, 22, 6, 255, 17, 244, 239, 20, 3, 247, 16, 247, 234, 245, 21, 1, 217, 246, 43, 35, 2, 231, 241, 13,
-			247, 248, 20, 13, 18, 4, 229, 242, 7, 9, 250, 249, 17, 255, 245, 19, 0, 0, 19, 255, 6, 242, 237, 254, 254, 247, 10, 10, 247, 2,
-			251, 239, 242, 6, 36, 13, 242, 232, 13, 24, 255, 236, 246, 5, 9, 16, 29, 7, 219, 250, 18, 252, 247, 2, 25, 0, 222, 249, 25, 30,
-			0, 237, 216, 2, 31, 254, 244, 251, 1, 0, 252, 255, 24, 247, 224, 254, 18, 30, 8, 253, 251, 3, 0, 13, 251, 235, 16, 22, 5, 246,
-			246, 9, 16, 242, 253, 11, 9, 250, 208, 237, 22, 18, 255, 253, 6, 8, 237, 227, 249, 254, 250, 7, 10, 20, 12, 250, 248, 249, 0, 0,
-			0, 9, 19, 12, 17, 12, 253, 235, 242, 7, 19, 10, 244, 253, 9, 9, 8, 2, 255, 2, 244, 243, 254, 248, 246, 1, 22, 4, 0, 244,
-			251, 253, 243, 255, 17, 20, 244, 237, 253, 2, 7, 6, 250, 247, 249, 250, 4, 0, 1, 0, 6, 9, 169, 2, 15, 0, 248, 210, 174, 42,
-			30, 188, 13, 55, 245, 4, 253, 171, 232, 59, 16, 228, 244, 243, 221, 35, 28, 227, 237, 8, 48, 27, 3, 252, 218, 9, 14, 243, 249, 250,
-			4, 20, 3, 244, 243, 7, 37, 11, 227, 247, 251, 31, 58, 231, 237, 2, 5, 254, 227, 253, 15, 243, 248, 244, 19, 4, 249, 30, 11, 5,
-			27, 35, 35, 187, 131, 49, 46, 252, 236, 220, 241, 36, 60, 208, 211, 62, 254, 255, 25, 227, 2, 30, 27, 240, 198, 244, 37, 241, 213, 19,
-			241, 1, 34, 241, 17, 5, 230, 9, 12, 4, 254, 14, 5, 12, 244, 238, 23, 6, 21, 27, 231, 255, 16, 245, 232, 250, 4, 15, 7, 238,
-			225, 7, 255, 23, 15, 5, 229, 239, 26, 249, 234, 27, 254, 185, 229, 31, 239, 221, 18, 215, 172, 221, 43, 6, 238, 251, 234, 11, 34, 254,
-			254, 5, 11, 50, 34, 225, 243, 53, 49, 8, 233, 250, 41, 42, 42, 240, 252, 53, 31, 244, 246, 20, 25, 18, 235, 249, 42, 1, 238, 15,
-			1, 2, 29, 0, 2, 40, 254, 18, 11, 226, 15, 44, 231, 168, 243, 37, 48, 238, 190, 244, 17, 47, 245, 224, 4, 246, 23, 29, 247, 230,
-			244, 42, 37, 225, 204, 234, 37, 67, 210, 168, 236, 55, 67, 221, 192, 9, 67, 253, 218, 227, 3, 52, 22, 227, 203, 235, 86, 48, 210, 176,
-			21, 69, 30, 253, 230, 29, 38, 245, 248, 49, 28, 254, 26, 8, 237, 33, 57, 22, 245, 242, 32, 57, 0, 226, 15, 42, 20, 0, 233, 183,
-			238, 55, 45, 213, 172, 203, 29, 71, 254, 185, 170, 235, 49, 25, 190, 195, 21, 42, 250, 195, 230, 13, 27, 19, 239, 244, 226, 245, 0, 249,
-			4, 224, 204, 231, 50, 50, 208, 187, 204, 189, 231, 52, 18, 205, 191, 239, 26, 250, 241, 220, 228, 18, 23, 226, 210, 25, 71, 30, 195, 191,
-			9, 79, 62, 250, 2, 250, 3, 43, 44, 4, 250, 26, 10, 254, 30, 36, 5, 245, 17, 33, 10, 245, 4, 55, 3, 6, 50, 4, 254, 17,
-			249, 28, 26, 245, 0, 6, 240, 237, 16, 253, 204, 215, 248, 232, 30, 23, 190, 208, 26, 32, 225, 208, 243, 22, 3, 215, 241, 13, 46, 38,
-			253, 224, 229, 28, 37, 17, 5, 3, 244, 244, 0, 0, 225, 254, 17, 215, 198, 237, 35, 26, 233, 219, 213, 232, 30, 8, 244, 6, 242, 8,
-			36, 14, 196, 230, 50, 48, 249, 212, 245, 21, 27, 235, 236, 246, 2, 38, 2, 197, 209, 29, 28, 0, 9, 242, 248, 31, 32, 228, 226, 41,
-			68, 29, 221, 244, 45, 88, 62, 248, 238, 250, 49, 42, 50, 10, 195, 206, 76, 84, 197, 204, 29, 17, 183, 19, 59, 244, 201, 234, 252, 238,
-			29, 231, 221, 11, 16, 209, 245, 22, 236, 228, 13, 11, 225, 196, 229, 41, 32, 224, 232, 248, 255, 246, 226, 22, 28, 216, 174, 33, 78, 24,
-			216, 235, 32, 36, 11, 252, 250, 247, 31, 79, 26, 212, 247, 78, 69, 28, 236, 244, 65, 75, 30, 238, 24, 29, 248, 27, 78, 37, 255, 215,
-			230, 69, 64, 10, 12, 4, 0, 253, 24, 43, 16, 206, 235, 18, 42, 37, 2, 174, 176, 254, 43, 2, 221, 200, 219, 254, 241, 237, 229, 210,
-			237, 252, 221, 217, 242, 237, 215, 244, 17, 220, 172, 202, 26, 22, 242, 222, 250, 238, 216, 228, 233, 241, 244, 229, 220, 247, 233, 219, 215, 239,
-			251, 239, 216, 208, 226, 18, 44, 27, 0, 254, 242, 7, 29, 33, 20, 9, 15, 61, 59, 8, 224, 226, 29, 92, 85, 11, 211, 206, 250, 21,
-			235, 206, 240, 252, 204, 174, 217, 251, 237, 187, 186, 202, 216, 207, 173, 159, 178, 233, 241, 198, 169, 166, 181, 214, 9, 4, 209, 179, 193, 239,
-			8, 6, 249, 239, 235, 246, 7, 14, 0, 252, 12, 18, 21, 245, 228, 8, 31, 0, 0, 0, 183, 4, 23, 0, 11, 14, 14, 14, 12, 9,
-			7, 8, 15, 14, 14, 15, 11, 4, 2, 254, 251, 247, 248, 249, 254, 4, 8, 7, 6, 10, 9, 7, 11, 9, 3, 1, 7, 9, 6, 14,
-			13, 14, 10, 12, 12, 12, 15, 16, 14, 18, 14, 10, 11, 11, 9, 10, 12, 12, 18, 16, 6, 3, 0, 0, 0, 255, 0, 1, 9, 8,
-			14, 23, 21, 17, 22, 2, 250, 1, 255, 199, 133, 166, 246, 26, 34, 27, 1, 8, 21, 3, 233, 240, 3, 32, 53, 54, 43, 44, 39, 16,
-			1, 5, 22, 29, 30, 30, 34, 35, 30, 32, 18, 7, 8, 20, 33, 48, 45, 42, 32, 19, 10, 9, 9, 9, 4, 8, 14, 24, 16, 6,
-			1, 0, 246, 246, 6, 15, 14, 9, 7, 4, 10, 14, 244, 186, 206, 248, 29, 13, 18, 4, 7, 26, 4, 237, 224, 0, 25, 38, 33, 18,
-			23, 26, 17, 254, 4, 9, 18, 27, 31, 27, 24, 22, 11, 6, 253, 0, 6, 22, 20, 9, 5, 12, 14, 8, 1, 250, 248, 1, 3, 2,
-			255, 0, 4, 7, 255, 251, 255, 10, 17, 11, 9, 10, 12, 11, 8, 14, 17, 21, 28, 23, 25, 19, 17, 25, 26, 14, 9, 15, 29, 29,
-			17, 19, 17, 13, 16, 15, 15, 20, 17, 10, 254, 254, 0, 8, 8, 7, 9, 8, 4, 3, 0, 0, 255, 252, 255, 2, 15, 7, 11, 13,
-			15, 15, 13, 8, 16, 25, 17, 24, 28, 23, 23, 20, 28, 36, 33, 22, 15, 16, 26, 24, 14, 11, 12, 9, 15, 24, 15, 8, 7, 0,
-			251, 254, 0, 5, 10, 11, 16, 3, 5, 2, 0, 248, 246, 1, 9, 16, 7, 3, 4, 5, 8, 5, 0, 247, 4, 19, 10, 0, 254, 9,
-			14, 12, 1, 253, 14, 17, 14, 1, 1, 18, 19, 25, 17, 3, 9, 22, 19, 9, 2, 255, 0, 9, 8, 4, 10, 15, 13, 255, 248, 252,
-			6, 14, 13, 7, 6, 13, 8, 254, 254, 11, 13, 15, 11, 5, 12, 19, 16, 11, 3, 252, 7, 18, 20, 14, 11, 13, 18, 10, 12, 10,
-			4, 17, 13, 6, 1, 7, 12, 17, 9, 254, 0, 6, 13, 11, 10, 7, 10, 11, 7, 15, 9, 12, 18, 16, 19, 14, 9, 8, 17, 18,
-			21, 20, 17, 19, 18, 11, 0, 5, 16, 26, 17, 1, 5, 19, 24, 3, 249, 1, 7, 19, 10, 3, 10, 15, 13, 8, 0, 0, 14, 22,
-			7, 4, 22, 28, 22, 14, 4, 15, 23, 16, 16, 24, 34, 33, 19, 4, 0, 7, 21, 33, 27, 21, 14, 4, 0, 0, 6, 6, 11, 14,
-			11, 15, 10, 9, 3, 255, 6, 11, 22, 27, 21, 4, 9, 23, 20, 6, 8, 12, 18, 22, 12, 8, 14, 14, 10, 2, 0, 255, 6, 17,
-			18, 8, 5, 4, 252, 3, 0, 0, 6, 9, 10, 8, 4, 3, 13, 11, 3, 1, 0, 11, 23, 23, 16, 17, 14, 11, 13, 17, 12, 10,
-			8, 3, 6, 11, 15, 16, 11, 4, 11, 7, 248, 246, 5, 7, 3, 9, 12, 12, 11, 0, 252, 16, 22, 13, 13, 19, 32, 35, 26, 17,
-			15, 30, 34, 21, 4, 15, 34, 37, 23, 15, 18, 27, 37, 19, 7, 14, 23, 22, 17, 4, 0, 22, 24, 16, 7, 9, 19, 19, 14, 5,
-			6, 12, 12, 4, 5, 21, 19, 13, 8, 255, 250, 255, 10, 15, 9, 8, 14, 11, 3, 254, 1, 14, 18, 23, 24, 20, 24, 14, 4, 3,
-			8, 15, 28, 34, 20, 16, 12, 3, 2, 4, 1, 4, 11, 13, 16, 11, 0, 248, 255, 5, 3, 9, 4, 0, 7, 14, 1, 248, 0, 6,
-			13, 9, 0, 4, 15, 9, 10, 11, 9, 18, 23, 25, 15, 11, 14, 19, 23, 16, 13, 21, 27, 21, 8, 6, 12, 16, 7, 7, 8, 9,
-			14, 14, 4, 249, 0, 1, 0, 0, 254, 1, 1, 250, 242, 245, 0, 10, 2, 252, 248, 248, 252, 2, 0, 0, 7, 10, 18, 24, 17, 5,
-			5, 7, 4, 3, 7, 20, 22, 21, 20, 14, 5, 255, 7, 17, 14, 10, 11, 17, 15, 2, 0, 4, 4, 12, 17, 12, 10, 4, 0, 9,
-			14, 7, 4, 3, 6, 8, 10, 16, 17, 11, 11, 14, 14, 8, 9, 12, 13, 14, 7, 5, 16, 21, 18, 17, 14, 12, 17, 17, 15, 3,
-			255, 10, 29, 30, 21, 12, 1, 2, 0, 254, 5, 17, 18, 13, 3, 0, 7, 9, 2, 253, 249, 0, 6, 9, 1, 1, 8, 8, 2, 5,
-			7, 0, 254, 255, 1, 13, 20, 19, 17, 16, 15, 6, 5, 15, 16, 15, 18, 17, 17, 18, 14, 4, 253, 252, 255, 5, 13, 10, 1, 4,
-			7, 4, 253, 249, 253, 255, 0, 3, 10, 12, 11, 10, 6, 15, 20, 17, 15, 19, 23, 21, 20, 23, 16, 12, 24, 29, 22, 15, 9, 14,
-			16, 1, 246, 255, 11, 15, 17, 7, 255, 253, 251, 254, 255, 3, 5, 14, 20, 14, 8, 12, 18, 9, 5, 6, 13, 21, 21, 17, 17, 20,
-			23, 15, 9, 11, 17, 14, 15, 12, 11, 15, 21, 21, 13, 5, 8, 5, 8, 5, 2, 4, 11, 5, 7, 10, 4, 5, 10, 12, 9, 12,
-			10, 10, 12, 13, 10, 10, 15, 11, 14, 16, 16, 13, 9, 2, 6, 19, 18, 13, 11, 15, 15, 12, 5, 8, 14, 17, 20, 21, 18, 9,
-			7, 16, 14, 7, 11, 19, 18, 19, 17, 18, 14, 11, 7, 4, 6, 12, 14, 13, 7, 9, 15, 14, 3, 254, 0, 4, 6, 6, 6, 10,
-			13, 9, 255, 0, 10, 13, 9, 8, 3, 4, 14, 14, 8, 7, 9, 7, 5, 3, 6, 2, 5, 8, 8, 3, 4, 6, 4, 7, 6, 4,
-			3, 7, 6, 0, 3, 12, 20, 18, 8, 6, 12, 16, 12, 7, 6, 8, 13, 11, 12, 14, 19, 20, 15, 9, 7, 8, 5, 9, 7, 0,
-			2, 9, 8, 5, 8, 6, 5, 8, 6, 2, 7, 17, 18, 17, 15, 11, 13, 12, 10, 9, 11, 20, 26, 23, 17, 12, 13, 17, 14, 8,
-			9, 13, 17, 15, 13, 8, 12, 17, 15, 13, 9, 5, 7, 12, 12, 13, 14, 13, 7, 2, 7, 13, 17, 17, 11, 9, 9, 11, 10, 8,
-			7, 4, 5, 7, 16, 18, 11, 9, 11, 17, 19, 12, 5, 7, 11, 16, 17, 12, 13, 18, 17, 13, 5, 5, 12, 16, 14, 10, 9, 11,
-			12, 8, 4, 4, 11, 13, 9, 3, 5, 8, 3, 1, 3, 5, 8, 9, 7, 6, 5, 6, 11, 11, 6, 7, 11, 13, 15, 13, 10, 10,
-			10, 10, 8, 10, 13, 17, 18, 17, 15, 13, 11, 12, 8, 4, 8, 11, 9, 8, 9, 12, 10, 4, 6, 6, 7, 10, 12, 12, 10, 11,
-			9, 12, 11, 11, 8, 7, 13, 16, 15, 9, 10, 16, 14, 10, 7, 5, 7, 13, 9, 6, 8, 7, 8, 12, 12, 10, 3, 4, 4, 4,
-			5, 0, 58, 6, 27, 0, 8, 9, 9, 8, 10, 8, 9, 8, 10, 8, 8, 4, 5, 1, 250, 159, 133, 206, 248, 27, 55, 18, 7, 42,
-			51, 45, 26, 231, 224, 252, 15, 41, 48, 32, 37, 54, 57, 46, 31, 251, 246, 2, 9, 22, 19, 12, 24, 40, 44, 43, 28, 0, 251, 251,
-			253, 253, 246, 246, 3, 15, 28, 25, 13, 255, 246, 247, 250, 247, 242, 247, 255, 15, 25, 28, 22, 15, 3, 5, 0, 0, 255, 2, 4, 11,
-			23, 25, 25, 21, 18, 13, 7, 5, 1, 0, 2, 11, 14, 22, 23, 19, 17, 17, 13, 7, 3, 0, 255, 1, 3, 7, 12, 15, 15, 18,
-			11, 7, 6, 2, 4, 4, 1, 4, 6, 9, 15, 18, 10, 10, 8, 4, 11, 12, 9, 5, 9, 11, 22, 25, 19, 15, 10, 13, 15, 13,
-			5, 3, 6, 9, 14, 13, 14, 11, 9, 12, 19, 14, 6, 5, 7, 8, 15, 19, 12, 12, 14, 13, 15, 20, 253, 212, 0, 29, 31, 49,
-			43, 5, 5, 21, 15, 11, 1, 241, 251, 0, 24, 45, 39, 15, 16, 12, 17, 24, 21, 254, 0, 14, 31, 32, 27, 12, 12, 16, 21, 16,
-			16, 3, 27, 17, 29, 40, 22, 7, 14, 6, 253, 9, 254, 243, 244, 255, 4, 9, 12, 254, 247, 3, 2, 1, 1, 255, 246, 254, 254, 18,
-			17, 23, 15, 14, 8, 9, 1, 248, 248, 246, 240, 236, 191, 157, 211, 17, 55, 60, 62, 13, 37, 48, 58, 36, 24, 17, 13, 228, 21, 21,
-			236, 248, 18, 243, 14, 25, 7, 10, 250, 190, 211, 9, 37, 43, 43, 246, 192, 213, 229, 243, 231, 210, 185, 225, 0, 16, 26, 12, 2, 14,
-			37, 15, 7, 244, 242, 21, 35, 39, 38, 44, 48, 70, 72, 46, 23, 19, 19, 31, 39, 29, 13, 30, 46, 49, 54, 35, 13, 13, 10, 14,
-			4, 253, 241, 4, 22, 28, 23, 13, 3, 255, 13, 7, 243, 240, 238, 253, 7, 14, 1, 21, 12, 30, 34, 33, 20, 22, 22, 12, 29, 17,
-			12, 25, 29, 32, 34, 9, 20, 51, 46, 38, 44, 18, 3, 30, 32, 14, 12, 5, 254, 19, 21, 13, 8, 252, 236, 252, 2, 255, 3, 251,
-			252, 8, 5, 249, 243, 243, 253, 19, 6, 249, 252, 250, 251, 6, 4, 246, 249, 0, 10, 26, 21, 5, 5, 14, 10, 6, 21, 3, 4, 41,
-			35, 23, 32, 15, 5, 20, 32, 4, 2, 252, 236, 254, 8, 11, 241, 248, 247, 252, 10, 255, 240, 240, 2, 3, 2, 0, 241, 245, 5, 10,
-			14, 10, 252, 2, 6, 5, 8, 1, 237, 250, 10, 10, 13, 19, 13, 24, 36, 19, 3, 255, 0, 23, 38, 33, 11, 8, 16, 25, 24, 5,
-			239, 245, 247, 3, 10, 8, 8, 21, 36, 28, 12, 249, 242, 0, 21, 14, 252, 254, 247, 10, 37, 30, 2, 2, 27, 19, 12, 254, 233, 228,
-			244, 3, 8, 17, 11, 16, 35, 43, 44, 31, 17, 252, 243, 240, 246, 241, 1, 36, 38, 29, 29, 17, 5, 9, 9, 250, 239, 0, 13, 31,
-			33, 6, 251, 7, 18, 12, 23, 0, 244, 10, 5, 249, 246, 235, 233, 252, 9, 8, 0, 252, 3, 255, 248, 2, 8, 6, 8, 19, 26, 28,
-			28, 34, 26, 16, 12, 253, 253, 255, 242, 11, 42, 29, 28, 52, 22, 22, 52, 26, 245, 254, 233, 209, 248, 0, 234, 255, 8, 250, 19, 23,
-			253, 251, 1, 252, 5, 8, 237, 239, 249, 236, 244, 24, 247, 222, 255, 32, 48, 43, 40, 5, 253, 25, 14, 244, 237, 1, 30, 26, 28, 20,
-			254, 9, 15, 15, 12, 0, 5, 24, 12, 5, 4, 10, 4, 18, 25, 12, 25, 37, 15, 4, 10, 255, 236, 244, 253, 11, 20, 22, 18, 5,
-			10, 22, 16, 0, 229, 244, 12, 7, 4, 9, 249, 2, 26, 25, 11, 254, 254, 3, 5, 255, 241, 254, 2, 2, 29, 34, 24, 61, 55, 19,
-			10, 30, 33, 33, 37, 14, 4, 253, 6, 11, 2, 7, 250, 7, 3, 1, 20, 18, 15, 3, 7, 6, 9, 1, 250, 8, 245, 239, 202, 204,
-			235, 0, 8, 21, 254, 231, 7, 5, 252, 247, 244, 245, 5, 32, 36, 18, 4, 244, 18, 36, 26, 31, 53, 33, 37, 55, 24, 247, 5, 0,
-			247, 13, 0, 244, 9, 18, 22, 12, 252, 2, 11, 8, 244, 246, 240, 224, 242, 243, 234, 240, 253, 0, 248, 237, 248, 4, 11, 25, 35, 34,
-			24, 7, 12, 25, 5, 11, 11, 12, 48, 42, 41, 48, 45, 25, 24, 28, 12, 11, 22, 33, 11, 255, 242, 245, 2, 9, 16, 23, 24, 16,
-			8, 1, 244, 226, 211, 220, 229, 233, 235, 241, 0, 11, 34, 34, 27, 19, 25, 25, 10, 3, 248, 0, 12, 12, 8, 30, 41, 54, 53, 47,
-			47, 38, 27, 16, 5, 0, 0, 252, 9, 17, 10, 24, 35, 31, 47, 21, 245, 239, 241, 225, 213, 220, 223, 231, 253, 10, 10, 21, 4, 245,
-			5, 13, 246, 239, 233, 241, 15, 27, 28, 18, 22, 43, 36, 23, 16, 11, 5, 17, 34, 23, 13, 31, 24, 12, 15, 9, 26, 30, 19, 14,
-			2, 248, 246, 241, 234, 235, 232, 233, 226, 235, 13, 14, 3, 246, 250, 249, 241, 237, 234, 241, 0, 242, 253, 22, 24, 33, 44, 47, 37, 12,
-			4, 7, 7, 255, 5, 5, 241, 2, 26, 38, 26, 37, 56, 51, 31, 1, 230, 215, 220, 235, 241, 252, 10, 26, 29, 23, 22, 11, 5, 0,
-			250, 237, 228, 220, 236, 254, 6, 20, 21, 35, 35, 46, 34, 17, 20, 4, 255, 19, 10, 0, 10, 34, 45, 26, 33, 31, 26, 35, 27, 5,
-			0, 14, 15, 17, 20, 25, 22, 15, 18, 3, 250, 6, 19, 4, 247, 242, 0, 16, 12, 12, 11, 5, 6, 7, 244, 234, 253, 248, 2, 19,
-			15, 10, 19, 31, 17, 9, 23, 31, 21, 15, 2, 6, 255, 0, 17, 16, 15, 10, 17, 22, 31, 30, 17, 0, 241, 254, 5, 226, 220, 252,
-			20, 14, 25, 34, 37, 42, 28, 4, 255, 238, 231, 232, 226, 242, 5, 20, 38, 46, 33, 19, 20, 16, 253, 2, 19, 9, 1, 0, 4, 6,
-			11, 20, 23, 12, 0, 3, 1, 244, 235, 1, 6, 4, 1, 1, 10, 10, 2, 7, 11, 250, 0, 6, 255, 9, 9, 22, 22, 7, 13, 9,
-			5, 8, 16, 13, 0, 255, 9, 16, 8, 7, 30, 33, 12, 11, 17, 17, 27, 19, 4, 2, 0, 248, 0, 23, 18, 11, 12, 7, 10, 17,
-			24, 21, 0, 254, 8, 4, 254, 2, 1, 3, 21, 29, 26, 9, 14, 27, 20, 11, 4, 252, 244, 246, 250, 249, 245, 11, 34, 38, 32, 29,
-			38, 33, 13, 254, 254, 241, 246, 4, 7, 5, 20, 20, 21, 41, 41, 20, 27, 25, 250, 4, 5, 247, 249, 255, 253, 11, 22, 30, 37, 24,
-			6, 14, 10, 6, 4, 252, 253, 3, 247, 241, 251, 243, 235, 245, 250, 8, 23, 34, 44, 41, 37, 34, 11, 4, 13, 3, 9, 21, 21, 33,
-			38, 43, 46, 40, 45, 43, 30, 21, 25, 27, 30, 25, 13, 15, 0, 232, 240, 249, 241, 250, 10, 9, 252, 2, 0, 0, 2, 6, 247, 235,
-			234, 221, 223, 226, 239, 249, 243, 248, 5, 21, 30, 30, 34, 27, 5, 0, 4, 4, 3, 13, 25, 41, 48, 45, 53, 52, 49, 45, 37, 30,
-			24, 17, 11, 11, 8, 254, 247, 253, 3, 10, 255, 6, 21, 16, 8, 11, 3, 243, 246, 246, 235, 232, 241, 245, 8, 23, 24, 19, 15, 17,
-			18, 14, 13, 10, 5, 5, 3, 6, 15, 14, 20, 33, 37, 47, 50, 39, 27, 26, 22, 16, 6, 10, 9, 0, 9, 14, 4, 1, 2, 246,
-			249, 241, 229, 243, 3, 253, 252, 250, 239, 247, 255, 251, 248, 252, 1, 1, 8, 12, 8, 7, 18, 19, 15, 22, 22, 26, 31, 32, 32, 22,
-			14, 6, 3, 6, 3, 8, 15, 22, 30, 26, 19, 10, 6, 5, 253, 0, 0, 253, 253, 255, 254, 253, 2, 255, 0, 1, 2, 0, 254, 255,
-			251, 245, 243, 253, 4, 4, 9, 18, 19, 23, 24, 17, 4, 246, 250, 0, 1, 255, 3, 12, 12, 20, 26, 15, 11, 18, 18, 7, 253, 255,
-			2, 3, 7, 9, 2, 4, 10, 12, 14, 14, 12, 15, 16, 15, 18, 21, 20, 22, 23, 18, 17, 18, 21, 28, 34, 33, 35, 39, 35, 24,
-			25, 24, 6, 5, 255, 243, 237, 244, 249, 252, 255, 1, 9, 9, 8, 9, 2, 0, 249, 246, 252, 1, 4, 0, 255, 248, 250, 6, 5, 6,
-			7, 4, 6, 7, 2, 255, 251, 244, 249, 254, 255, 0, 4, 9, 9, 11, 9, 6, 7, 8, 5, 2, 0, 247, 234, 233, 226, 222, 226, 235,
-			241, 252, 2, 9, 14, 12, 11, 7, 10, 8, 7, 11, 14, 22, 25, 29, 26, 33, 44, 43, 48, 47, 48, 43, 37, 32, 24, 22, 23, 27,
-			23, 21, 24, 29, 38, 44, 47, 43, 39, 36, 31, 28, 24, 16, 12, 9, 9, 7, 10, 13, 20, 20, 12, 7, 8, 11, 15, 19, 16, 15,
-			13, 16, 17, 10, 9, 8, 12, 8, 11, 8, 0, 0, 195, 5, 51, 0, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 255, 0,
-			4, 5, 4, 2, 0, 0, 1, 2, 2, 3, 2, 3, 1, 248, 197, 214, 0, 44, 49, 16, 239, 219, 243, 0, 17, 24, 22, 18, 0, 247,
-			239, 0, 13, 24, 19, 12, 2, 0, 254, 2, 12, 13, 18, 11, 1, 1, 2, 8, 9, 8, 6, 5, 1, 2, 0, 0, 3, 6, 5, 3,
-			0, 0, 2, 1, 6, 2, 3, 0, 1, 3, 2, 3, 3, 3, 3, 3, 1, 5, 6, 3, 6, 4, 5, 2, 4, 3, 6, 4, 6, 4,
-			3, 2, 5, 6, 6, 4, 1, 3, 5, 6, 7, 4, 2, 3, 3, 4, 2, 2, 4, 5, 4, 3, 3, 1, 1, 2, 3, 5, 3, 1,
-			2, 2, 4, 6, 1, 254, 3, 0, 4, 5, 1, 1, 1, 255, 1, 2, 0, 0, 0, 5, 3, 3, 255, 253, 255, 4, 4, 1, 5, 0,
-			2, 2, 1, 0, 1, 2, 1, 7, 0, 0, 253, 253, 3, 9, 1, 255, 252, 251, 3, 6, 4, 2, 0, 251, 255, 4, 5, 5, 4, 1,
-			252, 254, 3, 4, 5, 3, 254, 0, 4, 254, 3, 3, 2, 4, 3, 0, 255, 2, 232, 237, 10, 18, 24, 11, 247, 239, 243, 254, 9, 17,
-			17, 5, 247, 247, 248, 255, 5, 6, 8, 4, 0, 251, 247, 1, 2, 6, 7, 1, 252, 1, 0, 0, 3, 4, 5, 4, 0, 251, 254, 7,
-			4, 13, 6, 254, 251, 1, 236, 255, 22, 18, 13, 1, 246, 249, 0, 2, 10, 9, 3, 1, 249, 255, 5, 11, 2, 0, 0, 255, 7, 254,
-			3, 0, 3, 5, 2, 9, 7, 9, 7, 6, 2, 3, 6, 3, 6, 0, 255, 1, 9, 3, 4, 4, 0, 5, 7, 2, 6, 3, 253, 3,
-			2, 9, 13, 4, 3, 2, 239, 195, 232, 27, 54, 38, 252, 217, 222, 251, 1, 9, 10, 14, 5, 243, 237, 242, 8, 27, 25, 12, 0, 250,
-			3, 6, 7, 15, 13, 12, 3, 0, 8, 17, 26, 26, 21, 20, 20, 17, 15, 14, 11, 43, 51, 24, 3, 219, 217, 237, 247, 255, 233, 182,
-			196, 224, 251, 26, 250, 222, 223, 221, 238, 255, 250, 254, 2, 245, 248, 244, 254, 18, 25, 24, 29, 24, 24, 35, 57, 62, 90, 38, 159, 185,
-			224, 57, 126, 67, 0, 201, 181, 221, 252, 13, 52, 50, 12, 220, 194, 209, 237, 19, 37, 31, 250, 220, 211, 222, 1, 20, 27, 11, 238, 226,
-			247, 12, 17, 18, 9, 16, 7, 252, 4, 9, 7, 24, 28, 18, 7, 244, 5, 17, 14, 22, 22, 10, 255, 3, 11, 22, 11, 6, 4, 3,
-			6, 15, 12, 0, 248, 250, 14, 6, 0, 255, 252, 7, 4, 1, 252, 246, 254, 4, 4, 1, 254, 1, 0, 4, 11, 10, 255, 255, 1, 5,
-			0, 254, 255, 4, 8, 9, 2, 1, 248, 247, 12, 12, 7, 254, 251, 6, 1, 254, 3, 0, 3, 6, 254, 250, 6, 255, 251, 249, 247, 255,
-			12, 10, 247, 243, 248, 0, 255, 254, 1, 247, 249, 253, 0, 8, 9, 252, 247, 5, 2, 252, 255, 1, 6, 0, 253, 252, 1, 14, 5, 248,
-			248, 0, 11, 10, 1, 5, 9, 253, 242, 248, 2, 16, 20, 5, 246, 243, 252, 0, 14, 11, 13, 17, 2, 240, 241, 5, 21, 27, 8, 248,
-			243, 251, 12, 5, 1, 2, 13, 3, 239, 243, 0, 9, 12, 15, 12, 250, 247, 4, 16, 15, 10, 2, 10, 17, 2, 252, 247, 12, 30, 18,
-			254, 249, 0, 5, 17, 16, 4, 0, 7, 7, 4, 3, 1, 253, 254, 7, 7, 250, 255, 248, 247, 12, 11, 3, 253, 242, 1, 12, 16, 9,
-			2, 246, 245, 0, 0, 5, 13, 2, 0, 254, 251, 3, 16, 2, 253, 13, 6, 0, 0, 255, 13, 11, 242, 244, 2, 19, 20, 7, 248, 248,
-			0, 9, 9, 4, 252, 250, 255, 1, 4, 0, 255, 4, 253, 252, 0, 253, 4, 13, 4, 2, 250, 249, 4, 0, 1, 12, 6, 3, 250, 249,
-			252, 11, 14, 2, 2, 2, 0, 253, 255, 255, 19, 22, 249, 243, 0, 0, 17, 20, 255, 241, 246, 8, 13, 250, 0, 7, 0, 251, 250, 254,
-			4, 6, 9, 0, 249, 238, 251, 14, 20, 11, 0, 245, 245, 1, 16, 8, 9, 9, 255, 247, 4, 10, 10, 20, 6, 250, 3, 4, 13, 18,
-			7, 252, 248, 13, 22, 12, 254, 250, 250, 0, 12, 15, 11, 2, 254, 0, 5, 9, 6, 1, 4, 254, 255, 251, 247, 5, 15, 11, 10, 1,
-			245, 255, 14, 14, 4, 12, 18, 254, 254, 7, 9, 17, 10, 252, 240, 0, 17, 13, 2, 243, 246, 21, 21, 1, 0, 250, 255, 7, 9, 4,
-			6, 7, 255, 254, 253, 9, 8, 252, 255, 4, 14, 11, 252, 244, 0, 15, 13, 5, 3, 247, 245, 255, 21, 13, 254, 251, 245, 255, 0, 249,
-			254, 12, 7, 248, 255, 251, 0, 15, 22, 5, 235, 247, 6, 14, 22, 7, 0, 251, 249, 5, 8, 2, 4, 4, 8, 4, 247, 255, 5, 4,
-			7, 8, 3, 0, 247, 238, 1, 19, 14, 3, 251, 253, 251, 249, 2, 16, 26, 10, 251, 242, 247, 15, 20, 11, 0, 2, 1, 245, 0, 6,
-			20, 14, 249, 236, 243, 5, 24, 25, 4, 249, 244, 254, 0, 0, 10, 16, 5, 2, 0, 254, 4, 13, 253, 3, 10, 5, 5, 12, 7, 3,
-			3, 0, 2, 252, 2, 15, 8, 253, 5, 0, 0, 3, 255, 9, 11, 252, 0, 4, 8, 6, 253, 248, 246, 2, 11, 6, 253, 241, 228, 226,
-			2, 22, 34, 25, 239, 204, 220, 7, 15, 251, 232, 239, 248, 4, 249, 232, 238, 15, 24, 9, 10, 249, 242, 4, 7, 16, 18, 18, 255, 237,
-			4, 25, 13, 11, 5, 251, 5, 2, 1, 11, 11, 8, 9, 4, 0, 247, 249, 9, 12, 5, 0, 1, 0, 245, 252, 14, 12, 253, 252, 248,
-			253, 6, 0, 249, 250, 255, 6, 13, 0, 255, 1, 255, 3, 6, 11, 8, 2, 8, 3, 8, 7, 252, 255, 5, 12, 16, 14, 2, 255, 253,
-			4, 0, 1, 8, 3, 10, 10, 2, 250, 246, 0, 9, 12, 10, 1, 253, 16, 7, 245, 251, 7, 19, 15, 2, 254, 2, 5, 8, 0, 0,
-			10, 12, 254, 249, 6, 18, 15, 7, 252, 246, 1, 9, 6, 12, 5, 249, 1, 6, 253, 5, 14, 7, 248, 242, 0, 15, 17, 6, 245, 246,
-			0, 2, 6, 4, 254, 253, 1, 5, 252, 241, 251, 12, 7, 3, 0, 242, 0, 0, 246, 255, 8, 9, 0, 244, 244, 2, 6, 14, 9, 252,
-			249, 4, 7, 5, 0, 255, 4, 6, 10, 4, 254, 0, 0, 5, 3, 0, 254, 253, 8, 13, 8, 253, 243, 246, 6, 8, 255, 0, 4, 3,
-			250, 246, 251, 6, 14, 1, 250, 252, 251, 0, 0, 251, 255, 9, 7, 2, 245, 241, 0, 11, 13, 10, 0, 251, 249, 247, 11, 20, 7, 252,
-			2, 9, 1, 5, 255, 1, 19, 13, 255, 255, 253, 3, 18, 4, 252, 4, 7, 12, 6, 5, 7, 9, 12, 3, 253, 0, 3, 4, 15, 15,
-			7, 248, 244, 0, 15, 20, 14, 4, 1, 0, 5, 3, 3, 17, 18, 6, 0, 2, 6, 16, 8, 1, 1, 4, 7, 3, 1, 7, 14, 8,
-			251, 244, 249, 4, 13, 6, 1, 2, 253, 248, 2, 12, 8, 2, 252, 0, 252, 252, 5, 10, 2, 0, 254, 253, 253, 3, 13, 9, 4, 254,
-			2, 7, 3, 255, 252, 1, 15, 17, 6, 252, 243, 253, 9, 9, 8, 1, 253, 252, 3, 3, 255, 254, 249, 254, 254, 252, 254, 0, 247, 252,
-			0, 253, 253, 250, 246, 248, 1, 6, 6, 253, 242, 240, 252, 6, 4, 1, 252, 252, 254, 250, 250, 0, 1, 255, 0, 2, 0, 247, 251, 5,
-			1, 255, 2, 4, 0, 252, 255, 4, 7, 14, 7, 254, 2, 9, 10, 9, 3, 3, 13, 16, 10, 5, 5, 7, 11, 14, 11, 10, 14, 13,
-			8, 3, 7, 17, 26, 20, 12, 10, 13, 14, 16, 18, 22, 28, 27, 19, 16, 8, 7, 20, 32, 33, 29, 26, 12, 2, 8, 21, 29, 32,
-			26, 20, 13, 9, 13, 13, 20, 31, 24, 15, 11, 10, 21, 19, 14, 12, 14, 16, 12, 3, 8, 16, 17, 15, 14, 2, 7, 8, 0, 10,
-			14, 20, 16, 6, 3, 5, 7, 10, 14, 14, 11, 13, 5, 0, 252, 253, 7, 7, 249, 230, 237, 0, 43, 6, 37, 0, 6, 8, 5, 6,
-			3, 1, 5, 8, 10, 13, 15, 19, 11, 6, 4, 1, 0, 5, 2, 6, 11, 13, 9, 8, 9, 9, 8, 7, 8, 12, 6, 4, 5, 3,
-			6, 12, 11, 11, 7, 0, 255, 2, 5, 5, 4, 11, 10, 11, 10, 5, 6, 0, 253, 254, 0, 251, 240, 0, 8, 15, 19, 24, 34, 54,
-			47, 60, 40, 205, 217, 208, 178, 228, 243, 228, 1, 11, 17, 23, 23, 15, 22, 10, 254, 235, 229, 232, 245, 255, 9, 16, 32, 37, 34, 24,
-			14, 254, 244, 241, 249, 248, 1, 10, 19, 29, 35, 28, 27, 17, 9, 2, 254, 247, 248, 252, 247, 255, 13, 16, 23, 20, 11, 1, 243, 239,
-			236, 238, 249, 244, 254, 250, 251, 0, 5, 9, 15, 15, 9, 254, 248, 248, 243, 2, 21, 13, 22, 33, 21, 23, 26, 1, 11, 25, 29, 37,
-			15, 12, 11, 24, 19, 19, 12, 3, 13, 19, 19, 12, 8, 241, 224, 12, 33, 1, 5, 244, 245, 32, 12, 253, 253, 250, 0, 17, 16, 252,
-			255, 4, 20, 22, 18, 22, 27, 28, 24, 16, 0, 4, 21, 17, 10, 8, 9, 252, 1, 16, 10, 9, 6, 12, 6, 254, 1, 22, 9, 6,
-			0, 250, 4, 3, 240, 233, 238, 252, 17, 250, 253, 16, 38, 23, 18, 7, 6, 248, 234, 224, 214, 231, 222, 241, 240, 219, 239, 243, 15, 28,
-			6, 3, 0, 5, 12, 7, 10, 23, 25, 32, 28, 25, 21, 30, 23, 21, 23, 8, 12, 23, 24, 23, 22, 22, 16, 16, 16, 7, 4, 4,
-			253, 255, 0, 254, 249, 251, 248, 0, 1, 3, 245, 244, 247, 0, 5, 8, 9, 8, 12, 7, 2, 10, 17, 16, 12, 12, 17, 22, 24, 19,
-			22, 26, 14, 12, 13, 12, 7, 6, 8, 11, 11, 16, 15, 20, 24, 5, 5, 0, 4, 7, 5, 9, 7, 6, 8, 9, 253, 255, 0, 0,
-			246, 251, 249, 3, 11, 18, 13, 11, 10, 0, 252, 5, 252, 244, 247, 0, 11, 14, 17, 27, 29, 29, 22, 9, 8, 6, 11, 254, 3, 252,
-			4, 23, 14, 8, 9, 5, 0, 253, 249, 241, 248, 5, 4, 9, 9, 15, 19, 20, 12, 3, 251, 250, 250, 253, 246, 247, 0, 6, 7, 14,
-			19, 15, 14, 9, 0, 7, 19, 4, 251, 2, 8, 10, 8, 13, 11, 4, 18, 19, 9, 12, 14, 4, 8, 14, 5, 2, 12, 14, 9, 12,
-			4, 4, 0, 4, 0, 251, 5, 254, 251, 1, 2, 5, 3, 4, 18, 19, 9, 6, 9, 0, 0, 0, 252, 246, 4, 11, 1, 6, 22, 16,
-			17, 10, 254, 1, 8, 7, 254, 1, 29, 19, 10, 11, 18, 11, 2, 250, 232, 245, 11, 0, 241, 247, 15, 18, 18, 22, 12, 16, 25, 16,
-			247, 4, 9, 248, 245, 254, 12, 18, 13, 255, 4, 13, 28, 8, 251, 0, 6, 2, 0, 5, 14, 18, 13, 251, 255, 4, 251, 244, 234, 245,
-			10, 7, 6, 7, 10, 28, 26, 9, 253, 0, 11, 12, 254, 240, 3, 15, 14, 26, 18, 13, 20, 13, 255, 6, 17, 1, 242, 247, 0, 13,
-			14, 15, 3, 8, 25, 7, 4, 6, 0, 255, 1, 8, 10, 14, 9, 9, 15, 8, 8, 0, 250, 0, 3, 250, 5, 17, 19, 19, 16, 17,
-			15, 21, 15, 7, 7, 9, 12, 0, 254, 0, 4, 11, 7, 0, 253, 0, 7, 6, 11, 10, 16, 13, 7, 11, 6, 6, 3, 1, 3, 9,
-			5, 2, 14, 15, 0, 1, 17, 28, 25, 11, 253, 3, 11, 7, 254, 251, 247, 8, 15, 6, 10, 28, 29, 25, 21, 10, 254, 0, 1, 246,
-			238, 255, 13, 15, 22, 27, 27, 28, 24, 10, 7, 6, 253, 251, 251, 244, 250, 6, 15, 13, 18, 23, 18, 11, 253, 252, 254, 251, 4, 18,
-			13, 14, 26, 24, 22, 19, 10, 7, 2, 6, 4, 238, 241, 12, 21, 7, 9, 17, 25, 25, 25, 14, 255, 17, 18, 6, 9, 1, 248, 252,
-			11, 2, 12, 11, 249, 11, 37, 30, 14, 5, 7, 3, 253, 22, 11, 9, 21, 2, 3, 25, 27, 7, 2, 11, 13, 18, 252, 0, 3, 5,
-			14, 235, 225, 242, 248, 255, 237, 236, 16, 31, 29, 7, 13, 10, 245, 234, 252, 245, 234, 228, 231, 249, 11, 4, 250, 1, 8, 253, 232, 240,
-			248, 235, 232, 249, 254, 245, 238, 235, 246, 249, 250, 252, 250, 255, 6, 252, 245, 244, 235, 235, 232, 238, 245, 235, 241, 0, 2, 253, 249, 0,
-			6, 252, 254, 0, 0, 253, 7, 14, 18, 24, 28, 25, 20, 11, 20, 33, 36, 44, 44, 49, 54, 38, 39, 38, 15, 9, 253, 228, 228, 198,
-			147, 154, 225, 50, 68, 40, 8, 10, 1, 220, 187, 212, 9, 38, 42, 10, 245, 8, 0, 189, 159, 210, 14, 49, 54, 55, 66, 49, 7, 243,
-			249, 25, 53, 66, 54, 40, 43, 30, 8, 255, 11, 31, 35, 44, 40, 24, 23, 16, 255, 255, 2, 255, 2, 15, 21, 30, 39, 19, 249, 244,
-			253, 21, 37, 42, 42, 20, 13, 14, 19, 30, 29, 21, 253, 192, 133, 158, 218, 19, 51, 72, 59, 20, 254, 227, 218, 236, 252, 19, 29, 15,
-			249, 233, 235, 249, 254, 15, 33, 27, 13, 243, 251, 4, 255, 250, 247, 255, 11, 2, 251, 3, 15, 22, 15, 11, 13, 12, 11, 14, 12, 8,
-			250, 1, 14, 9, 251, 242, 242, 246, 2, 255, 1, 10, 10, 4, 248, 251, 3, 255, 242, 246, 252, 243, 239, 243, 9, 6, 243, 224, 222, 0,
-			27, 37, 48, 58, 49, 32, 16, 16, 36, 59, 88, 92, 255, 196, 227, 248, 247, 5, 45, 64, 43, 255, 226, 226, 243, 230, 238, 6, 33, 32,
-			12, 0, 231, 237, 253, 1, 19, 31, 30, 25, 12, 6, 8, 245, 240, 25, 54, 55, 36, 32, 32, 21, 13, 28, 47, 34, 19, 29, 31, 23,
-			25, 23, 251, 236, 9, 43, 12, 233, 254, 25, 9, 237, 236, 0, 14, 0, 251, 255, 246, 243, 0, 242, 250, 13, 17, 6, 233, 241, 28, 15,
-			240, 242, 9, 30, 18, 255, 12, 33, 16, 243, 242, 7, 40, 40, 253, 240, 19, 27, 237, 227, 23, 48, 25, 251, 246, 0, 0, 0, 12, 12,
-			6, 248, 245, 243, 237, 8, 31, 15, 244, 246, 12, 12, 242, 0, 31, 2, 0, 4, 245, 254, 5, 13, 9, 4, 7, 13, 2, 251, 3, 20,
-			21, 5, 245, 0, 17, 15, 10, 0, 253, 254, 6, 10, 246, 245, 23, 21, 253, 247, 18, 23, 250, 249, 7, 6, 11, 12, 5, 4, 14, 21,
-			9, 246, 0, 31, 20, 255, 0, 13, 13, 7, 9, 13, 17, 22, 4, 244, 2, 14, 18, 6, 252, 21, 24, 0, 248, 247, 17, 33, 14, 4,
-			12, 3, 253, 252, 14, 30, 13, 252, 11, 15, 247, 5, 23, 17, 9, 4, 245, 239, 246, 10, 19, 0, 251, 15, 4, 237, 2, 22, 236, 217,
-			253, 12, 5, 5, 22, 23, 253, 239, 247, 250, 253, 11, 34, 32, 0, 250, 7, 7, 7, 11, 28, 30, 3, 243, 249, 16, 19, 16, 11, 6,
-			4, 2, 251, 255, 16, 10, 250, 252, 7, 6, 255, 2, 9, 2, 245, 243, 11, 16, 255, 250, 17, 13, 254, 1, 1, 255, 10, 12, 7, 6,
-			15, 11, 252, 249, 14, 19, 10, 9, 7, 7, 8, 0, 5, 16, 15, 4, 3, 13, 13, 254, 250, 14, 13, 11, 24, 8, 0, 12, 16, 15,
-			6, 0, 11, 20, 9, 13, 13, 3, 12, 17, 7, 14, 26, 13, 248, 248, 12, 21, 11, 0, 2, 18, 21, 16, 17, 16, 11, 7, 17, 27,
-			11, 0, 6, 12, 21, 24, 14, 11, 12, 10, 13, 17, 13, 14, 0, 246, 5, 15, 16, 2, 249, 13, 23, 9, 255, 10, 16, 8, 4, 7,
-			5, 251, 0, 11, 8, 1, 2, 255, 0, 9, 9, 1, 254, 5, 11, 8, 4, 8, 16, 15, 17, 9, 2, 9, 15, 12, 8, 12, 12, 3,
-			0, 12, 18, 10, 1, 10, 9, 0, 250, 251, 9, 20, 7, 0, 251, 255, 8, 13, 12, 254, 245, 251, 4, 4, 3, 5, 1, 251, 252, 0,
-			255, 4, 12, 13, 12, 2, 254, 11, 17, 9, 13, 10, 0, 1, 0, 7, 12, 6, 11, 24, 11, 255, 0, 12, 7, 253, 252, 7, 14, 7,
-			254, 254, 4, 13, 10, 7, 17, 17, 8, 8, 10, 16, 17, 8, 11, 11, 6, 13, 8, 9, 22, 24, 15, 6, 1, 8, 9, 4, 12, 14,
-			9, 6, 4, 8, 12, 14, 9, 1, 1, 9, 10, 3, 0, 10, 13, 10, 3, 251, 247, 3, 14, 10, 251, 246, 1, 12, 8, 2, 254, 244,
-			244, 3, 12, 7, 253, 248, 255, 6, 6, 7, 8, 4, 4, 15, 13, 2, 246, 251, 15, 24, 7, 243, 246, 2, 11, 7, 0, 2, 0, 251,
-			244, 247, 255, 5, 255, 246, 246, 255, 253, 245, 251, 0, 252, 240, 238, 252, 7, 0, 242, 240, 245, 249, 251, 247, 251, 255, 248, 250, 5, 1,
-			248, 249, 255, 2, 253, 241, 239, 254, 13, 8, 249, 244, 251, 6, 6, 0, 208, 4, 44, 0, 3, 1, 2, 1, 2, 1, 3, 2, 4, 236,
-			191, 217, 11, 26, 24, 27, 26, 24, 11, 246, 236, 247, 6, 12, 15, 16, 19, 15, 5, 252, 250, 252, 5, 17, 24, 23, 17, 16, 16, 1,
-			249, 251, 12, 14, 15, 0, 202, 203, 239, 22, 13, 13, 15, 21, 16, 248, 226, 229, 3, 15, 11, 9, 15, 11, 2, 254, 249, 249, 253, 15,
-			16, 26, 20, 15, 2, 254, 2, 4, 5, 10, 34, 36, 37, 14, 8, 211, 132, 222, 36, 36, 38, 37, 30, 19, 239, 208, 198, 241, 19, 26,
-			39, 40, 26, 254, 243, 230, 226, 242, 8, 39, 45, 33, 16, 6, 214, 182, 225, 0, 12, 27, 28, 33, 25, 1, 230, 220, 239, 3, 13, 25,
-			31, 29, 11, 254, 242, 234, 236, 248, 18, 33, 25, 21, 2, 247, 249, 242, 246, 6, 22, 32, 27, 10, 251, 241, 241, 244, 248, 17, 23, 24,
-			24, 9, 245, 241, 247, 244, 6, 12, 17, 24, 12, 6, 251, 242, 245, 248, 5, 16, 17, 16, 12, 2, 251, 252, 2, 1, 6, 2, 15, 19,
-			4, 252, 254, 245, 5, 15, 19, 15, 9, 8, 7, 254, 252, 9, 7, 16, 10, 6, 10, 15, 10, 0, 7, 217, 176, 205, 199, 227, 27, 48,
-			38, 36, 244, 223, 206, 214, 234, 9, 39, 54, 49, 12, 0, 244, 245, 0, 18, 31, 35, 56, 54, 29, 248, 2, 21, 248, 235, 11, 249, 217,
-			8, 32, 4, 232, 232, 242, 243, 10, 16, 16, 21, 46, 246, 180, 209, 244, 2, 11, 24, 5, 253, 232, 240, 251, 10, 33, 34, 28, 8, 247,
-			230, 231, 230, 233, 252, 7, 30, 18, 7, 241, 238, 250, 251, 254, 15, 32, 33, 17, 6, 7, 251, 0, 16, 12, 241, 242, 251, 10, 17, 20,
-			23, 13, 3, 12, 9, 243, 255, 19, 22, 18, 15, 255, 2, 10, 2, 16, 15, 15, 17, 19, 11, 11, 20, 15, 8, 17, 24, 12, 0, 4,
-			248, 254, 252, 251, 0, 0, 2, 1, 253, 4, 254, 245, 253, 14, 12, 6, 10, 6, 3, 0, 251, 253, 2, 21, 30, 9, 8, 0, 0, 2,
-			9, 4, 0, 8, 7, 19, 11, 8, 10, 10, 6, 251, 6, 20, 21, 18, 19, 3, 3, 255, 245, 248, 1, 7, 6, 0, 5, 12, 3, 8,
-			8, 246, 248, 14, 21, 16, 5, 4, 3, 0, 255, 1, 0, 12, 18, 8, 254, 250, 237, 245, 15, 13, 254, 246, 254, 15, 1, 230, 229, 246,
-			6, 0, 246, 250, 253, 238, 225, 234, 10, 11, 8, 15, 17, 12, 0, 231, 237, 10, 32, 45, 25, 242, 235, 11, 32, 28, 4, 7, 19, 29,
-			25, 255, 237, 9, 22, 6, 250, 6, 21, 3, 241, 245, 2, 252, 244, 247, 243, 0, 5, 1, 2, 254, 243, 248, 254, 254, 16, 11, 2, 8,
-			14, 10, 250, 229, 255, 20, 12, 7, 9, 21, 18, 249, 250, 10, 13, 14, 6, 255, 4, 15, 3, 243, 251, 4, 0, 252, 225, 226, 244, 4,
-			17, 11, 6, 9, 4, 243, 217, 229, 8, 28, 32, 26, 15, 1, 248, 239, 246, 255, 8, 19, 19, 14, 254, 250, 247, 253, 21, 38, 29, 254,
-			254, 249, 234, 236, 255, 12, 14, 6, 250, 246, 242, 236, 248, 14, 15, 2, 7, 249, 235, 243, 8, 5, 4, 2, 254, 7, 28, 14, 5, 26,
-			33, 18, 251, 246, 240, 249, 11, 24, 21, 14, 8, 249, 235, 242, 248, 1, 8, 4, 16, 17, 255, 239, 221, 240, 1, 1, 8, 24, 18, 255,
-			234, 228, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 9, 28, 0,
+			246, 0, 11, 13, 16, 12, 252, 240, 252, 15, 15, 16, 10, 244, 239, 3, 22, 20, 15, 12, 3, 249, 3, 27, 35, 29, 13, 0, 3, 22,
+			23, 31, 32, 8, 9, 5, 3, 14, 23, 19, 16, 0, 247, 6, 27, 17, 250, 248, 253, 0, 15, 22, 255, 250, 0, 249, 7, 8, 7, 14,
+			7, 255, 253, 12, 12, 254, 16, 28, 8, 3, 8, 14, 13, 16, 8, 6, 13, 12, 9, 8, 12, 1, 242, 1, 25, 28, 15, 239, 230, 237,
+			14, 31, 22, 11, 234, 215, 245, 22, 37, 25, 13, 242, 218, 234, 15, 31, 31, 28, 11, 243, 237, 248, 17, 38, 26, 246, 233, 18, 40, 25,
+			3, 240, 241, 7, 31, 33, 28, 14, 249, 245, 0, 14, 27, 27, 12, 21, 10, 247, 251, 19, 25, 20, 19, 17, 2, 255, 20, 23, 1, 4,
+			10, 17, 11, 0, 8, 18, 255, 6, 250, 4, 30, 11, 1, 254, 8, 11, 251, 251, 22, 29, 15, 6, 243, 1, 34, 31, 9, 0, 6, 21,
+			7, 21, 23, 19, 25, 15, 247, 44, 47, 242, 235, 19, 32, 22, 29, 16, 246, 252, 4, 9, 25, 25, 11, 234, 232, 0, 20, 31, 15, 253,
+			230, 226, 246, 29, 27, 242, 246, 252, 1, 254, 246, 255, 2, 5, 3, 251, 248, 11, 0, 250, 20, 5, 244, 242, 14, 14, 12, 23, 247, 221,
+			255, 23, 23, 34, 16, 208, 211, 24, 52, 18, 232, 240, 13, 2, 0, 13, 16, 2, 232, 239, 9, 18, 39, 23, 229, 216, 245, 30, 43, 34,
+			16, 244, 234, 248, 26, 43, 34, 22, 6, 3, 5, 13, 27, 21, 31, 25, 15, 9, 10, 17, 14, 8, 30, 30, 14, 251, 236, 18, 48, 34,
+			246, 232, 3, 13, 17, 16, 11, 5, 242, 247, 249, 6, 21, 20, 20, 245, 219, 242, 18, 22, 20, 17, 254, 237, 243, 20, 38, 20, 8, 4,
+			240, 249, 27, 37, 28, 7, 254, 238, 247, 25, 45, 34, 1, 243, 244, 2, 32, 42, 17, 243, 245, 12, 20, 22, 23, 254, 254, 14, 18, 18,
+			23, 26, 20, 250, 248, 16, 27, 29, 24, 18, 3, 244, 1, 36, 35, 7, 254, 7, 14, 14, 13, 17, 250, 245, 10, 15, 18, 16, 240, 233,
+			11, 17, 4, 253, 11, 20, 251, 238, 251, 8, 12, 9, 240, 246, 14, 19, 5, 244, 252, 253, 247, 251, 9, 15, 5, 249, 243, 252, 8, 11,
+			251, 252, 248, 240, 1, 14, 25, 13, 221, 213, 9, 45, 25, 251, 250, 7, 251, 255, 6, 254, 13, 33, 20, 241, 248, 7, 32, 28, 248, 251,
+			18, 7, 17, 41, 21, 219, 238, 16, 34, 42, 20, 254, 3, 0, 244, 26, 50, 27, 245, 252, 16, 9, 5, 28, 44, 40, 255, 232, 255, 43,
+			55, 23, 254, 11, 30, 17, 22, 27, 13, 252, 0, 53, 52, 14, 0, 233, 4, 25, 15, 15, 29, 13, 247, 2, 246, 227, 11, 41, 14, 252,
+			252, 248, 241, 226, 252, 42, 11, 242, 241, 245, 11, 5, 233, 231, 13, 43, 27, 236, 227, 251, 3, 13, 23, 9, 14, 26, 2, 234, 2, 29,
+			10, 14, 2, 252, 2, 31, 25, 235, 214, 252, 20, 49, 24, 227, 241, 4, 253, 242, 15, 42, 5, 243, 255, 239, 239, 3, 31, 58, 15, 248,
+			249, 252, 26, 60, 244, 230, 49, 25, 252, 32, 59, 33, 252, 249, 235, 250, 52, 54, 22, 17, 251, 216, 242, 36, 35, 218, 225, 61, 27, 215,
+			2, 20, 195, 215, 49, 34, 1, 13, 254, 5, 10, 242, 228, 235, 53, 89, 1, 239, 28, 7, 241, 42, 63, 240, 249, 32, 9, 12, 18, 41,
+			34, 249, 0, 17, 244, 3, 40, 24, 241, 3, 28, 219, 232, 33, 19, 242, 253, 21, 8, 12, 1, 239, 248, 9, 8, 17, 35, 3, 11, 40,
+			0, 255, 41, 26, 250, 36, 27, 7, 26, 59, 7, 206, 20, 52, 252, 10, 38, 252, 245, 238, 7, 35, 33, 12, 244, 202, 219, 33, 35, 221,
+			226, 39, 26, 239, 232, 0, 9, 29, 26, 223, 228, 18, 47, 16, 3, 35, 253, 0, 35, 35, 6, 237, 28, 38, 3, 15, 34, 8, 12, 42,
+			8, 167, 235, 92, 89, 245, 191, 238, 0, 6, 37, 37, 227, 239, 7, 250, 249, 25, 28, 251, 224, 7, 19, 252, 21, 33, 2, 249, 19, 10,
+			16, 28, 11, 251, 245, 20, 32, 18, 38, 5, 221, 238, 69, 47, 232, 246, 1, 243, 13, 37, 26, 3, 255, 220, 249, 39, 251, 244, 23, 15,
+			21, 14, 250, 246, 12, 49, 252, 232, 22, 32, 16, 28, 10, 218, 11, 32, 20, 36, 20, 8, 240, 232, 14, 48, 39, 0, 2, 49, 34, 253,
+			247, 10, 26, 40, 38, 254, 251, 14, 32, 52, 9, 201, 249, 75, 29, 4, 33, 0, 218, 6, 5, 0, 17, 41, 20, 235, 248, 38, 8, 195,
+			217, 15, 56, 28, 12, 247, 238, 237, 240, 19, 21, 18, 24, 19, 6, 248, 203, 235, 55, 51, 14, 17, 25, 8, 5, 216, 224, 55, 83, 14,
+			227, 10, 59, 28, 209, 208, 13, 43, 22, 10, 254, 4, 13, 235, 202, 252, 24, 8, 38, 11, 232, 230, 9, 254, 224, 235, 54, 44, 254, 248,
+			246, 255, 251, 214, 245, 67, 69, 15, 238, 231, 241, 4, 18, 46, 52, 22, 3, 7, 17, 240, 239, 250, 30, 75, 46, 254, 3, 15, 246, 213,
+			245, 72, 68, 4, 0, 253, 249, 4, 244, 5, 67, 75, 21, 211, 229, 10, 241, 252, 63, 80, 51, 5, 197, 199, 1, 26, 240, 30, 63, 16,
+			246, 227, 0, 250, 222, 223, 252, 69, 85, 3, 208, 250, 7, 0, 55, 27, 235, 17, 14, 254, 0, 56, 64, 247, 248, 35, 22, 5, 5, 8,
+			45, 34, 248, 12, 35, 35, 1, 253, 230, 245, 38, 55, 43, 236, 201, 255, 9, 252, 37, 39, 232, 221, 12, 4, 224, 3, 49, 26, 243, 255,
+			5, 229, 254, 29, 26, 12, 248, 0, 12, 12, 58, 59, 245, 205, 225, 14, 46, 18, 0, 25, 34, 254, 230, 236, 3, 15, 234, 220, 43, 76,
+			16, 221, 227, 250, 227, 210, 10, 62, 30, 236, 226, 241, 11, 0, 241, 3, 240, 7, 28, 32, 2, 247, 247, 246, 251, 42, 96, 34, 250, 245,
+			239, 225, 241, 60, 123, 59, 237, 230, 252, 240, 12, 32, 32, 33, 10, 1, 12, 10, 245, 243, 14, 25, 9, 248, 13, 29, 13, 237, 228, 22,
+			51, 40, 14, 248, 0, 236, 252, 26, 37, 40, 11, 2, 8, 5, 248, 212, 1, 66, 25, 243, 27, 31, 246, 215, 234, 13, 21, 42, 42, 255,
+			220, 229, 21, 44, 251, 251, 16, 17, 16, 0, 229, 242, 20, 48, 23, 6, 249, 243, 16, 2, 231, 17, 53, 28, 11, 20, 15, 20, 249, 228,
+			254, 25, 39, 37, 2, 8, 14, 1, 230, 230, 11, 46, 37, 19, 248, 228, 248, 16, 15, 14, 14, 18, 20, 225, 233, 23, 253, 246, 31, 26,
+			14, 251, 253, 20, 37, 7, 212, 216, 42, 53, 16, 28, 9, 228, 243, 35, 62, 13, 211, 234, 1, 32, 46, 12, 248, 21, 30, 243, 208, 245,
+			36, 29, 4, 0, 252, 250, 255, 8, 18, 16, 240, 10, 31, 246, 244, 13, 28, 8, 10, 22, 18, 5, 241, 13, 16, 5, 36, 65, 27, 229,
+			234, 20, 4, 6, 36, 50, 42, 242, 218, 1, 20, 0, 2, 237, 14, 49, 25, 0, 0, 227, 192, 238, 63, 54, 26, 26, 254, 218, 240, 0,
+			245, 40, 52, 24, 29, 31, 250, 223, 230, 34, 54, 2, 12, 46, 14, 230, 4, 42, 34, 0, 255, 239, 245, 25, 32, 21, 244, 237, 11, 2,
+			242, 12, 33, 2, 242, 248, 1, 29, 55, 46, 227, 210, 2, 20, 252, 10, 39, 45, 255, 218, 0, 27, 2, 2, 25, 0, 250, 8, 24, 39,
+			29, 251, 252, 4, 4, 11, 5, 250, 252, 26, 29, 1, 242, 0, 44, 15, 218, 238, 4, 0, 55, 51, 228, 233, 23, 26, 1, 11, 31, 12,
+			13, 9, 236, 240, 27, 64, 40, 241, 239, 24, 0, 236, 249, 33, 50, 6, 225, 2, 6, 2, 5, 245, 253, 25, 33, 249, 234, 10, 6, 234,
+			246, 45, 61, 22, 245, 228, 222, 250, 22, 53, 38, 6, 5, 17, 15, 11, 253, 239, 254, 41, 31, 13, 26, 30, 22, 250, 254, 7, 251, 4,
+			28, 39, 30, 16, 5, 245, 253, 6, 247, 237, 33, 69, 7, 2, 16, 255, 236, 237, 245, 22, 71, 64, 0, 245, 242, 231, 252, 17, 36, 19,
+			33, 35, 0, 224, 249, 34, 3, 225, 4, 43, 41, 28, 12, 211, 205, 22, 39, 6, 15, 22, 246, 251, 17, 11, 253, 251, 2, 11, 248, 251,
+			48, 67, 1, 207, 232, 5, 37, 37, 250, 240, 22, 51, 0, 223, 13, 39, 9, 239, 10, 42, 6, 232, 11, 27, 233, 249, 40, 19, 17, 13,
+			217, 209, 16, 44, 19, 5, 32, 17, 214, 241, 38, 13, 248, 36, 58, 6, 219, 244, 31, 28, 18, 7, 0, 23, 29, 4, 238, 240, 254, 29,
+			39, 254, 230, 22, 51, 3, 210, 240, 25, 30, 8, 246, 0, 4, 0, 12, 27, 19, 241, 235, 8, 27, 27, 14, 11, 11, 6, 250, 6, 25,
+			33, 31, 25, 253, 226, 245, 25, 34, 17, 22, 27, 43, 29, 205, 203, 19, 53, 28, 7, 22, 36, 28, 0, 225, 227, 4, 44, 58, 55, 22,
+			231, 219, 230, 25, 48, 16, 24, 48, 0, 209, 238, 1, 22, 43, 12, 3, 20, 15, 253, 240, 234, 6, 34, 31, 27, 11, 248, 247, 6, 12,
+			253, 0, 26, 32, 16, 0, 248, 5, 30, 17, 254, 20, 26, 252, 4, 20, 22, 16, 1, 243, 253, 18, 5, 6, 29, 23, 248, 237, 5, 245,
+			234, 20, 40, 4, 236, 2, 17, 6, 12, 247, 222, 2, 22, 23, 36, 37, 13, 230, 238, 238, 241, 14, 46, 58, 27, 254, 253, 17, 13, 229,
+			223, 24, 68, 56, 5, 254, 15, 19, 7, 223, 240, 50, 61, 16, 245, 252, 12, 253, 248, 4, 16, 10, 15, 254, 248, 18, 6, 250, 243, 8,
+			29, 13, 254, 6, 11, 251, 3, 18, 32, 12, 241, 7, 30, 25, 15, 10, 7, 2, 11, 15, 16, 18, 14, 17, 9, 3, 252, 6, 31, 12,
+			249, 7, 18, 7, 10, 5, 247, 250, 18, 24, 5, 0, 15, 3, 245, 253, 16, 34, 30, 8, 234, 231, 10, 32, 18, 23, 35, 13, 241, 254,
+			16, 19, 19, 13, 16, 34, 30, 18, 2, 0, 3, 0, 12, 24, 23, 16, 11, 7, 251, 5, 25, 8, 252, 10, 36, 25, 240, 242, 6, 6,
+			7, 14, 22, 42, 24, 239, 231, 244, 255, 9, 9, 28, 53, 30, 240, 227, 249, 7, 5, 0, 12, 32, 32, 255, 250, 6, 254, 252, 14, 21,
+			16, 11, 13, 8, 248, 250, 9, 18, 26, 24, 1, 243, 2, 16, 10, 241, 252, 27, 29, 12, 16, 0, 247, 0, 0, 7, 22, 20, 7, 18,
+			9, 254, 14, 26, 15, 253, 249, 4, 28, 25, 2, 233, 0, 47, 37, 2, 1, 248, 233, 8, 30, 18, 11, 22, 12, 254, 4, 24, 26, 4,
+			254, 12, 12, 251, 12, 27, 23, 20, 11, 255, 254, 13, 13, 248, 254, 3, 6, 11, 20, 19, 1, 0, 252, 251, 7, 6, 250, 18, 20, 0,
+			19, 30, 10, 245, 240, 244, 0, 29, 53, 37, 3, 249, 241, 238, 8, 33, 33, 17, 12, 7, 246, 0, 21, 6, 250, 8, 32, 34, 0, 241,
+			0, 8, 1, 252, 1, 16, 23, 8, 248, 249, 4, 10, 253, 0, 14, 9, 2, 20, 29, 15, 1, 250, 252, 9, 33, 35, 21, 21, 16, 250,
+			251, 5, 11, 14, 11, 9, 7, 14, 24, 0, 239, 248, 254, 2, 15, 18, 8, 12, 13, 248, 233, 236, 5, 25, 14, 12, 18, 2, 249, 251,
+			3, 9, 17, 16, 22, 29, 10, 0, 6, 6, 10, 6, 6, 22, 27, 23, 22, 8, 250, 251, 9, 4, 1, 20, 29, 23, 15, 9, 8, 7,
+			7, 255, 252, 5, 15, 30, 35, 22, 253, 241, 254, 251, 248, 19, 28, 15, 3, 6, 10, 2, 0, 4, 10, 13, 19, 17, 254, 0, 21, 21,
+			0, 0, 24, 30, 14, 12, 9, 246, 251, 16, 12, 7, 22, 29, 8, 248, 8, 21, 9, 10, 10, 0, 0, 16, 24, 19, 6, 3, 1, 5,
+			15, 23, 10, 249, 245, 5, 15, 18, 15, 13, 5, 250, 234, 253, 26, 36, 31, 255, 237, 6, 23, 4, 8, 21, 18, 10, 9, 13, 16, 13,
+			6, 10, 13, 18, 18, 16, 8, 2, 250, 246, 8, 33, 28, 14, 15, 12, 254, 249, 2, 14, 5, 0, 3, 15, 30, 6, 246, 11, 6, 234,
+			240, 8, 26, 22, 2, 240, 247, 8, 15, 12, 0, 0, 0, 0, 21, 41, 20, 236, 243, 22, 23, 10, 10, 18, 15, 0, 252, 1, 6, 14,
+			23, 24, 17, 3, 0, 2, 250, 246, 2, 26, 38, 34, 6, 240, 244, 252, 7, 13, 2, 19, 37, 12, 247, 250, 4, 5, 5, 15, 15, 11,
+			16, 12, 255, 3, 9, 3, 11, 29, 30, 15, 5, 15, 10, 250, 252, 4, 18, 24, 21, 10, 15, 18, 2, 247, 248, 253, 10, 20, 23, 15,
+			5, 5, 0, 245, 0, 9, 8, 14, 17, 15, 9, 5, 252, 246, 0, 13, 18, 13, 12, 12, 3, 253, 255, 6, 6, 6, 9, 1, 3, 15,
+			12, 4, 2, 254, 0, 11, 16, 0, 249, 7, 14, 6, 1, 253, 254, 7, 20, 8, 255, 9, 11, 255, 2, 18, 12, 3, 8, 17, 12, 4,
+			15, 19, 8, 3, 8, 17, 21, 16, 14, 4, 2, 12, 11, 1, 8, 18, 20, 14, 4, 253, 249, 0, 0, 0, 58, 6, 43, 0, 255, 15,
+			12, 13, 10, 254, 255, 18, 15, 8, 0, 0, 6, 19, 19, 0, 4, 10, 0, 22, 11, 0, 2, 10, 17, 9, 15, 251, 249, 21, 15, 16,
+			17, 253, 235, 14, 31, 13, 14, 250, 254, 6, 13, 20, 26, 249, 241, 2, 35, 47, 254, 213, 0, 34, 21, 2, 13, 7, 251, 252, 10, 13,
+			9, 11, 13, 13, 248, 228, 254, 35, 40, 250, 249, 0, 238, 17, 30, 27, 6, 254, 1, 3, 14, 0, 10, 29, 18, 3, 3, 254, 243, 6,
+			46, 32, 246, 237, 17, 21, 253, 18, 2, 250, 12, 26, 9, 254, 2, 3, 10, 10, 7, 9, 0, 249, 236, 23, 34, 255, 0, 246, 12, 22,
+			220, 1, 31, 12, 245, 247, 8, 10, 3, 247, 245, 40, 24, 214, 242, 29, 5, 0, 23, 246, 0, 10, 246, 21, 21, 227, 239, 41, 36, 239,
+			229, 253, 24, 33, 253, 242, 3, 2, 9, 14, 253, 253, 17, 21, 235, 240, 40, 23, 230, 10, 18, 3, 246, 1, 23, 9, 252, 17, 13, 236,
+			13, 29, 221, 250, 64, 246, 236, 22, 251, 8, 5, 254, 20, 15, 14, 243, 237, 7, 17, 12, 27, 44, 213, 196, 12, 46, 31, 11, 228, 209,
+			255, 42, 24, 232, 243, 8, 0, 3, 1, 253, 3, 4, 12, 6, 252, 219, 250, 49, 22, 246, 8, 7, 254, 235, 48, 71, 222, 197, 16, 58,
+			12, 233, 26, 86, 244, 132, 36, 89, 6, 250, 13, 21, 238, 225, 19, 27, 43, 20, 236, 216, 244, 39, 33, 234, 249, 236, 234, 255, 48, 41,
+			171, 171, 46, 60, 244, 0, 22, 240, 209, 7, 47, 24, 5, 249, 9, 247, 10, 23, 254, 29, 22, 12, 31, 15, 22, 250, 12, 55, 2, 0,
+			40, 3, 8, 28, 247, 23, 44, 17, 245, 215, 7, 54, 19, 237, 7, 254, 3, 16, 247, 225, 249, 74, 46, 193, 178, 17, 90, 4, 206, 5,
+			19, 36, 247, 207, 246, 53, 15, 251, 28, 0, 225, 10, 55, 16, 216, 6, 60, 3, 1, 26, 9, 9, 25, 17, 227, 12, 19, 251, 36, 17,
+			244, 244, 31, 34, 228, 239, 4, 49, 12, 245, 38, 6, 212, 214, 22, 47, 33, 4, 226, 249, 12, 249, 248, 39, 251, 217, 0, 54, 17, 236,
+			252, 255, 253, 240, 10, 45, 10, 19, 2, 199, 251, 33, 48, 3, 232, 26, 2, 240, 41, 7, 210, 11, 42, 25, 5, 209, 214, 56, 52, 254,
+			0, 231, 248, 39, 7, 230, 19, 29, 245, 246, 10, 44, 239, 197, 20, 52, 18, 228, 229, 27, 6, 247, 2, 18, 10, 35, 20, 225, 219, 13,
+			56, 38, 219, 252, 249, 240, 40, 35, 40, 227, 223, 11, 3, 43, 7, 226, 25, 32, 252, 235, 18, 14, 7, 40, 6, 202, 239, 45, 36, 9,
+			19, 224, 192, 23, 118, 5, 165, 233, 34, 66, 18, 251, 238, 245, 21, 10, 233, 32, 48, 3, 215, 247, 56, 11, 230, 24, 35, 213, 227, 51,
+			30, 214, 2, 47, 0, 242, 25, 3, 220, 232, 39, 25, 8, 45, 227, 185, 36, 69, 251, 208, 61, 64, 154, 2, 83, 248, 21, 8, 251, 0,
+			232, 0, 46, 38, 42, 1, 187, 254, 33, 237, 36, 50, 0, 225, 251, 36, 216, 247, 55, 44, 196, 240, 72, 199, 7, 32, 222, 30, 42, 225,
+			249, 55, 250, 213, 14, 27, 46, 252, 239, 46, 251, 196, 3, 47, 48, 249, 180, 36, 67, 215, 8, 52, 232, 234, 21, 246, 34, 46, 0, 226,
+			235, 27, 65, 252, 210, 230, 25, 81, 240, 214, 39, 37, 244, 1, 202, 242, 70, 15, 247, 250, 238, 72, 27, 156, 0, 71, 255, 250, 21, 250,
+			251, 42, 0, 229, 21, 24, 15, 233, 243, 51, 222, 254, 102, 239, 189, 1, 30, 26, 1, 10, 249, 232, 45, 10, 254, 44, 14, 174, 226, 78,
+			43, 0, 216, 245, 57, 6, 227, 221, 254, 73, 30, 11, 205, 193, 19, 39, 24, 30, 252, 9, 26, 214, 206, 253, 60, 54, 30, 244, 176, 195,
+			48, 94, 247, 211, 33, 36, 249, 213, 2, 30, 232, 42, 47, 204, 43, 64, 158, 227, 94, 250, 196, 79, 87, 167, 177, 16, 41, 23, 32, 36,
+			220, 237, 240, 10, 40, 235, 8, 22, 29, 15, 212, 230, 244, 50, 35, 246, 28, 229, 248, 15, 9, 216, 255, 36, 72, 53, 205, 233, 229, 229,
+			48, 2, 26, 38, 12, 23, 240, 186, 12, 45, 222, 23, 22, 241, 70, 3, 189, 236, 52, 34, 226, 252, 82, 7, 211, 241, 10, 251, 20, 63,
+			241, 4, 255, 235, 69, 234, 255, 16, 234, 36, 24, 190, 255, 63, 52, 37, 217, 153, 26, 54, 17, 43, 28, 232, 240, 250, 11, 239, 6, 16,
+			54, 41, 203, 245, 14, 222, 14, 30, 18, 15, 238, 4, 20, 25, 51, 196, 149, 68, 73, 28, 13, 24, 19, 208, 205, 247, 11, 14, 79, 20,
+			234, 23, 219, 211, 237, 32, 57, 26, 237, 20, 12, 186, 247, 41, 52, 20, 12, 29, 0, 161, 193, 97, 100, 22, 205, 249, 13, 12, 12, 224,
+			7, 29, 222, 6, 81, 37, 226, 201, 233, 33, 25, 21, 10, 27, 21, 215, 206, 250, 41, 38, 248, 10, 248, 253, 26, 5, 190, 230, 99, 80,
+			238, 189, 215, 11, 47, 30, 47, 53, 189, 226, 0, 209, 30, 59, 16, 17, 30, 250, 194, 239, 20, 24, 13, 13, 9, 17, 240, 253, 20, 0,
+			235, 229, 255, 56, 51, 228, 224, 23, 253, 10, 248, 235, 21, 35, 31, 250, 18, 254, 215, 17, 36, 41, 235, 228, 8, 238, 21, 33, 27, 14,
+			239, 232, 222, 23, 27, 247, 9, 61, 18, 193, 217, 32, 51, 228, 253, 44, 46, 253, 188, 209, 33, 80, 5, 241, 239, 3, 2, 1, 3, 240,
+			16, 22, 245, 244, 15, 25, 234, 3, 41, 218, 214, 20, 36, 31, 1, 239, 4, 33, 249, 210, 13, 32, 20, 254, 0, 26, 0, 35, 44, 236,
+			214, 6, 27, 31, 15, 242, 15, 13, 45, 14, 191, 225, 69, 30, 35, 24, 178, 223, 31, 28, 253, 240, 41, 50, 238, 238, 217, 228, 250, 37,
+			50, 29, 247, 245, 25, 245, 236, 253, 41, 58, 241, 249, 21, 26, 252, 205, 2, 18, 54, 29, 2, 0, 255, 244, 0, 40, 251, 219, 24, 30,
+			35, 25, 233, 5, 14, 244, 246, 250, 29, 8, 234, 28, 16, 241, 243, 250, 14, 220, 232, 53, 45, 15, 246, 247, 236, 229, 4, 40, 73, 40,
+			237, 201, 10, 0, 245, 45, 5, 23, 40, 12, 228, 225, 253, 20, 23, 38, 24, 227, 10, 42, 251, 217, 248, 12, 36, 37, 0, 12, 233, 234,
+			28, 9, 224, 4, 3, 22, 10, 6, 247, 8, 242, 235, 18, 32, 26, 236, 211, 24, 74, 10, 224, 248, 39, 7, 236, 6, 36, 38, 28, 245,
+			224, 2, 252, 243, 6, 57, 70, 13, 198, 201, 240, 9, 42, 54, 14, 245, 15, 245, 239, 8, 249, 6, 51, 34, 13, 0, 232, 247, 237, 27,
+			45, 12, 232, 13, 46, 32, 2, 242, 245, 255, 11, 248, 246, 18, 55, 41, 254, 224, 243, 237, 243, 255, 254, 0, 57, 68, 248, 212, 225, 233,
+			21, 21, 5, 26, 16, 237, 234, 3, 30, 255, 242, 14, 4, 18, 32, 21, 254, 247, 242, 244, 1, 75, 50, 3, 16, 231, 214, 247, 40, 35,
+			12, 8, 33, 0, 204, 252, 12, 1, 23, 58, 8, 228, 0, 9, 232, 4, 35, 2, 14, 27, 234, 227, 250, 28, 38, 2, 2, 245, 227, 243,
+			18, 27, 10, 254, 6, 20, 5, 248, 218, 15, 44, 14, 8, 18, 27, 253, 228, 249, 253, 32, 54, 15, 247, 255, 241, 223, 11, 62, 39, 249,
+			251, 29, 254, 216, 254, 17, 47, 49, 17, 243, 241, 6, 245, 244, 28, 42, 19, 11, 246, 239, 246, 10, 27, 7, 249, 13, 11, 255, 19, 255,
+			243, 8, 0, 1, 13, 16, 12, 253, 15, 4, 233, 252, 25, 7, 255, 21, 22, 0, 253, 12, 252, 247, 252, 10, 25, 38, 14, 242, 255, 10,
+			5, 9, 16, 15, 244, 249, 23, 25, 1, 3, 7, 250, 1, 2, 14, 23, 15, 240, 245, 15, 12, 0, 6, 17, 10, 1, 243, 249, 13, 23,
+			0, 8, 16, 1, 7, 6, 1, 1, 10, 6, 12, 9, 7, 11, 5, 0, 3, 4, 8, 18, 2, 251, 10, 29, 25, 246, 237, 244, 16, 31,
+			23, 8, 0, 252, 251, 5, 7, 12, 18, 9, 4, 250, 251, 10, 5, 1, 9, 17, 255, 254, 11, 10, 7, 0, 2, 8, 2, 12, 14, 1,
+			8, 3, 243, 6, 20, 8, 250, 0, 16, 11, 2, 7, 4, 249, 4, 12, 10, 8, 4, 13, 14, 1, 0, 1, 6, 8, 5, 0, 2, 10,
+			7, 6, 250, 247, 4, 8, 12, 15, 4, 248, 244, 1, 10, 5, 2, 6, 13, 8, 251, 251, 12, 8, 246, 250, 4, 12, 12, 11, 9, 1,
+			250, 248, 4, 4, 5, 19, 19, 7, 255, 255, 6, 17, 11, 1, 10, 24, 7, 2, 10, 10, 254, 2, 22, 13, 254, 0, 9, 14, 7, 3,
+			2, 4, 8, 12, 11, 11, 10, 10, 13, 17, 2, 2, 14, 20, 11, 8, 27, 13, 254, 14, 13, 7, 8, 10, 13, 14, 13, 6, 6, 3,
+			3, 4, 0, 0, 254, 6, 29, 0, 249, 255, 10, 5, 11, 0, 255, 254, 2, 4, 4, 9, 252, 250, 6, 2, 10, 255, 239, 0, 12, 11,
+			0, 249, 246, 4, 12, 253, 253, 254, 18, 254, 236, 235, 13, 24, 254, 244, 246, 0, 5, 7, 3, 248, 0, 1, 241, 250, 12, 11, 3, 4,
+			2, 0, 247, 251, 2, 5, 14, 3, 254, 2, 234, 8, 31, 5, 238, 248, 252, 255, 20, 4, 243, 9, 5, 253, 246, 0, 253, 13, 2, 8,
+			242, 233, 18, 30, 5, 237, 235, 253, 11, 10, 10, 253, 235, 6, 9, 5, 255, 245, 254, 7, 5, 2, 244, 239, 255, 21, 16, 242, 0, 20,
+			239, 237, 18, 2, 251, 4, 254, 6, 247, 3, 31, 3, 0, 255, 226, 243, 29, 21, 244, 242, 9, 22, 255, 231, 243, 19, 12, 241, 248, 18,
+			4, 225, 254, 23, 6, 246, 240, 13, 6, 249, 18, 255, 243, 251, 11, 5, 248, 2, 246, 2, 15, 19, 7, 230, 233, 16, 12, 13, 5, 226,
+			232, 18, 41, 13, 232, 229, 6, 12, 10, 0, 237, 252, 7, 11, 10, 247, 244, 254, 0, 9, 0, 238, 10, 30, 4, 240, 241, 243, 17, 8,
+			2, 1, 245, 4, 12, 255, 255, 0, 6, 12, 251, 247, 8, 242, 238, 4, 24, 25, 253, 232, 227, 255, 42, 255, 247, 249, 252, 13, 10, 8,
+			255, 228, 245, 17, 10, 11, 236, 226, 21, 42, 252, 248, 228, 229, 16, 39, 14, 238, 3, 249, 240, 22, 254, 11, 236, 228, 26, 48, 3, 201,
+			0, 5, 40, 13, 211, 230, 14, 23, 253, 11, 247, 247, 248, 246, 29, 25, 247, 224, 224, 253, 41, 48, 228, 236, 247, 239, 51, 32, 208, 228,
+			17, 38, 14, 1, 250, 239, 230, 1, 38, 19, 230, 237, 28, 22, 243, 235, 5, 2, 244, 250, 8, 7, 0, 239, 238, 34, 9, 218, 3, 34,
+			233, 213, 22, 42, 23, 222, 219, 246, 47, 19, 226, 249, 1, 19, 18, 244, 255, 248, 233, 247, 20, 38, 253, 235, 44, 17, 195, 251, 49, 252,
+			231, 239, 0, 30, 20, 247, 247, 6, 242, 2, 4, 254, 248, 1, 39, 2, 214, 236, 26, 27, 250, 236, 237, 11, 22, 249, 0, 252, 249, 254,
+			249, 9, 0, 248, 17, 27, 235, 225, 252, 37, 40, 240, 194, 0, 31, 3, 240, 251, 28, 18, 14, 234, 226, 2, 23, 4, 2, 10, 1, 12,
+			236, 232, 3, 18, 247, 19, 25, 233, 225, 16, 13, 239, 245, 13, 254, 237, 43, 63, 225, 153, 231, 53, 35, 7, 2, 243, 211, 255, 33, 15,
+			224, 214, 36, 62, 9, 9, 249, 183, 240, 40, 33, 29, 233, 252, 239, 243, 55, 4, 198, 220, 33, 74, 29, 211, 211, 241, 8, 36, 16, 0,
+			227, 211, 22, 245, 9, 16, 20, 10, 214, 231, 5, 30, 230, 242, 38, 28, 25, 228, 220, 248, 249, 35, 47, 2, 215, 227, 21, 4, 255, 19,
+			6, 242, 209, 19, 54, 2, 233, 240, 0, 255, 28, 248, 228, 17, 12, 7, 8, 0, 249, 227, 24, 18, 4, 242, 232, 16, 8, 10, 240, 4,
+			15, 224, 223, 246, 36, 21, 48, 10, 195, 212, 253, 44, 22, 2, 249, 233, 6, 235, 2, 13, 38, 13, 194, 235, 0, 14, 247, 6, 77, 8,
+			171, 234, 49, 223, 9, 61, 249, 35, 11, 183, 241, 27, 24, 29, 253, 181, 215, 72, 81, 240, 222, 18, 11, 233, 211, 223, 81, 32, 184, 215,
+			65, 36, 215, 203, 247, 88, 18, 171, 223, 45, 29, 248, 229, 2, 31, 240, 190, 255, 66, 39, 4, 216, 255, 253, 236, 7, 27, 19, 233, 246,
+			42, 6, 230, 2, 22, 0, 249, 239, 8, 31, 246, 244, 235, 11, 18, 239, 237, 7, 25, 12, 254, 245, 243, 253, 37, 8, 221, 242, 43, 19,
+			196, 204, 33, 63, 7, 242, 191, 221, 45, 79, 26, 210, 185, 4, 55, 1, 223, 7, 35, 228, 217, 1, 78, 51, 177, 165, 41, 81, 4, 244,
+			223, 223, 83, 37, 213, 253, 17, 234, 235, 5, 32, 16, 236, 199, 229, 22, 86, 37, 174, 179, 20, 52, 29, 250, 222, 207, 10, 85, 36, 222,
+			182, 196, 48, 69, 20, 240, 235, 23, 7, 228, 251, 220, 246, 87, 66, 198, 140, 43, 80, 14, 4, 16, 203, 157, 7, 60, 59, 20, 225, 223,
+			26, 24, 235, 216, 175, 7, 46, 31, 20, 73, 23, 131, 204, 73, 27, 204, 249, 25, 10, 14, 36, 21, 204, 213, 11, 57, 18, 197, 198, 251,
+			68, 58, 235, 14, 235, 157, 215, 27, 125, 87, 175, 148, 13, 44, 26, 36, 228, 196, 8, 13, 39, 52, 234, 148, 252, 96, 60, 18, 170, 155,
+			64, 84, 234, 187, 225, 8, 19, 240, 9, 17, 14, 247, 192, 42, 73, 250, 236, 224, 238, 76, 33, 176, 218, 49, 47, 252, 223, 252, 248, 244,
+			63, 32, 164, 21, 52, 195, 211, 23, 44, 9, 225, 248, 57, 210, 246, 102, 208, 191, 37, 2, 227, 29, 53, 220, 242, 15, 15, 205, 238, 40,
+			27, 30, 216, 218, 12, 21, 220, 202, 23, 105, 37, 140, 208, 60, 7, 219, 35, 42, 232, 244, 255, 47, 46, 189, 167, 246, 55, 90, 12, 207,
+			162, 222, 64, 81, 47, 236, 173, 222, 81, 42, 243, 182, 203, 46, 46, 30, 202, 207, 24, 63, 20, 36, 23, 164, 163, 255, 77, 100, 250, 187,
+			223, 0, 245, 35, 71, 220, 196, 232, 18, 31, 21, 251, 239, 71, 224, 160, 15, 4, 10, 93, 12, 190, 241, 234, 187, 48, 59, 24, 21, 193,
+			215, 5, 25, 2, 232, 254, 12, 33, 248, 0, 240, 1, 41, 18, 5, 252, 232, 247, 42, 31, 201, 12, 74, 223, 229, 16, 20, 12, 242, 226,
+			235, 1, 14, 44, 0, 179, 245, 19, 187, 8, 107, 253, 186, 234, 44, 3, 216, 3, 24, 224, 3, 34, 1, 232, 7, 238, 201, 48, 67, 242,
+			2, 252, 10, 33, 225, 224, 8, 1, 14, 84, 243, 166, 34, 67, 222, 188, 51, 114, 230, 187, 180, 6, 114, 37, 200, 190, 254, 10, 20, 28,
+			21, 38, 187, 198, 9, 60, 3, 166, 245, 106, 43, 156, 233, 0, 33, 43, 177, 220, 32, 22, 0, 252, 226, 10, 77, 235, 165, 244, 62, 6,
+			247, 29, 251, 47, 252, 176, 221, 110, 44, 229, 12, 236, 222, 61, 26, 209, 237, 29, 36, 17, 211, 211, 8, 56, 11, 211, 6, 233, 217, 7,
+			61, 3, 221, 226, 251, 33, 246, 223, 42, 242, 214, 21, 50, 243, 240, 253, 226, 19, 47, 56, 220, 192, 245, 29, 33, 19, 220, 230, 44, 38,
+			238, 5, 221, 174, 98, 43, 206, 245, 250, 57, 250, 214, 27, 254, 197, 23, 55, 254, 172, 1, 72, 14, 201, 233, 54, 15, 203, 0, 69, 232,
+			240, 227, 223, 47, 77, 0, 182, 238, 51, 50, 243, 166, 19, 39, 234, 254, 47, 4, 215, 11, 10, 223, 253, 40, 55, 210, 235, 10, 7, 16,
+			176, 223, 96, 77, 210, 164, 212, 16, 90, 54, 162, 218, 10, 13, 65, 13, 185, 210, 36, 41, 37, 17, 214, 245, 238, 0, 54, 35, 217, 223,
+			20, 16, 227, 212, 60, 33, 221, 230, 12, 16, 22, 242, 229, 43, 240, 194, 14, 15, 223, 39, 70, 244, 186, 236, 46, 53, 233, 174, 9, 64,
+			12, 251, 220, 4, 31, 3, 218, 244, 30, 240, 14, 30, 18, 238, 40, 243, 163, 224, 74, 45, 198, 249, 255, 33, 3, 227, 10, 253, 254, 250,
+			31, 44, 254, 10, 215, 205, 29, 26, 212, 234, 23, 5, 10, 18, 241, 230, 45, 1, 218, 4, 37, 31, 192, 220, 50, 56, 234, 248, 14, 216,
+			11, 240, 11, 67, 210, 233, 21, 248, 214, 0, 39, 35, 0, 215, 35, 10, 210, 255, 16, 228, 210, 92, 61, 222, 189, 247, 21, 247, 10, 9,
+			24, 224, 220, 27, 68, 6, 193, 233, 48, 28, 204, 250, 49, 29, 221, 211, 23, 7, 248, 6, 10, 21, 255, 251, 214, 221, 29, 23, 0, 237,
+			8, 252, 241, 23, 23, 246, 216, 0, 22, 246, 29, 32, 230, 197, 26, 63, 6, 224, 247, 37, 43, 0, 210, 254, 236, 228, 77, 21, 174, 206,
+			15, 49, 14, 234, 227, 252, 251, 0, 9, 19, 5, 246, 1, 4, 17, 239, 208, 252, 30, 66, 46, 3, 199, 192, 6, 67, 66, 246, 199, 215,
+			66, 72, 220, 202, 255, 14, 27, 253, 216, 235, 242, 0, 57, 42, 191, 155, 229, 72, 49, 222, 0, 253, 188, 233, 21, 27, 16, 31, 9, 193,
+			213, 78, 55, 0, 237, 227, 36, 54, 22, 212, 221, 12, 74, 68, 206, 186, 27, 74, 27, 195, 216, 12, 0, 252, 5, 23, 1, 212, 208, 234,
+			50, 53, 240, 225, 199, 232, 15, 18, 10, 202, 207, 4, 19, 43, 23, 247, 4, 254, 238, 253, 22, 32, 238, 232, 66, 75, 222, 207, 225, 10,
+			61, 55, 242, 200, 239, 32, 14, 0, 240, 255, 21, 6, 239, 34, 20, 204, 246, 9, 235, 234, 255, 9, 0, 29, 0, 208, 220, 0, 58, 54,
+			217, 180, 253, 19, 37, 64, 251, 194, 219, 254, 28, 254, 253, 254, 29, 50, 0, 173, 212, 57, 74, 16, 223, 245, 2, 242, 8, 42, 0, 243,
+			4, 253, 9, 27, 241, 217, 1, 34, 36, 1, 223, 217, 250, 28, 30, 236, 224, 239, 242, 14, 20, 253, 232, 212, 232, 78, 65, 192, 166, 235,
+			42, 66, 14, 225, 228, 230, 12, 67, 48, 221, 208, 249, 29, 42, 44, 10, 201, 208, 52, 69, 230, 218, 24, 30, 20, 239, 208, 235, 23, 40,
+			29, 10, 249, 227, 205, 219, 4, 39, 27, 232, 224, 254, 28, 35, 231, 193, 228, 37, 9, 244, 255, 7, 33, 246, 225, 234, 246, 250, 16, 48,
+			37, 243, 204, 242, 35, 64, 19, 210, 219, 231, 243, 14, 43, 51, 32, 237, 206, 2, 19, 3, 2, 236, 252, 29, 9, 234, 8, 46, 9, 223,
+			234, 12, 24, 252, 229, 247, 249, 9, 16, 1, 233, 6, 14, 245, 250, 255, 251, 242, 252, 5, 6, 10, 233, 223, 5, 22, 12, 249, 4, 247,
+			240, 245, 27, 29, 231, 235, 26, 34, 15, 248, 223, 247, 14, 3, 0, 3, 22, 13, 230, 239, 43, 54, 236, 219, 233, 253, 19, 18, 9, 0,
+			5, 7, 0, 240, 236, 1, 18, 251, 16, 12, 239, 234, 5, 11, 242, 247, 12, 33, 250, 241, 0, 234, 240, 0, 10, 235, 219, 248, 0, 0,
+			72, 4, 48, 0, 20, 243, 243, 32, 248, 1, 249, 9, 17, 225, 246, 27, 7, 231, 12, 8, 254, 5, 245, 255, 15, 0, 210, 26, 28, 197,
+			8, 36, 238, 7, 245, 247, 30, 237, 0, 26, 235, 38, 16, 183, 40, 43, 183, 12, 55, 228, 255, 252, 3, 23, 227, 10, 24, 231, 32, 245,
+			220, 36, 4, 231, 28, 21, 247, 248, 8, 10, 208, 244, 18, 3, 226, 205, 40, 40, 222, 255, 22, 236, 18, 0, 0, 24, 243, 19, 14, 230,
+			2, 246, 237, 4, 242, 4, 37, 244, 5, 20, 2, 235, 220, 29, 82, 188, 216, 75, 243, 253, 253, 249, 27, 238, 242, 8, 1, 245, 16, 236,
+			228, 42, 48, 202, 236, 53, 231, 231, 36, 0, 249, 21, 204, 52, 228, 214, 65, 198, 214, 110, 251, 205, 32, 48, 10, 222, 0, 19, 228, 251,
+			10, 201, 8, 74, 235, 229, 251, 251, 253, 31, 233, 206, 66, 30, 205, 3, 6, 23, 248, 211, 15, 23, 249, 237, 6, 10, 33, 240, 201, 49,
+			22, 215, 247, 24, 24, 9, 240, 6, 47, 249, 228, 42, 5, 211, 1, 12, 37, 16, 216, 2, 29, 218, 208, 17, 249, 33, 1, 200, 46, 7,
+			228, 239, 255, 17, 232, 235, 35, 27, 222, 232, 17, 7, 240, 237, 17, 23, 216, 234, 44, 21, 240, 7, 44, 1, 224, 248, 48, 13, 217, 5,
+			20, 26, 0, 3, 17, 1, 214, 243, 42, 246, 232, 32, 31, 235, 243, 6, 243, 240, 7, 15, 4, 8, 244, 241, 254, 8, 4, 3, 0, 236,
+			237, 243, 23, 227, 0, 51, 196, 200, 76, 45, 201, 231, 15, 27, 249, 253, 9, 249, 37, 18, 194, 16, 69, 213, 211, 9, 19, 26, 244, 8,
+			23, 20, 238, 210, 9, 59, 221, 205, 82, 52, 181, 231, 26, 7, 230, 238, 37, 17, 4, 226, 239, 40, 32, 234, 203, 5, 38, 235, 228, 40,
+			220, 0, 65, 208, 210, 41, 26, 213, 238, 35, 43, 213, 228, 63, 217, 234, 22, 255, 8, 253, 233, 0, 47, 244, 5, 12, 2, 10, 240, 42,
+			240, 230, 46, 237, 234, 28, 24, 250, 3, 254, 237, 253, 10, 26, 213, 246, 87, 224, 155, 58, 64, 172, 167, 58, 52, 206, 0, 26, 252, 239,
+			238, 239, 233, 37, 16, 236, 245, 27, 20, 237, 30, 14, 225, 2, 17, 2, 254, 30, 10, 241, 18, 32, 10, 241, 251, 255, 13, 254, 234, 39,
+			4, 245, 17, 220, 0, 37, 243, 193, 36, 47, 195, 193, 76, 60, 177, 244, 40, 245, 210, 236, 255, 2, 252, 26, 3, 254, 45, 201, 196, 60,
+			238, 231, 53, 18, 244, 24, 245, 222, 20, 14, 2, 15, 242, 249, 246, 38, 28, 219, 235, 48, 49, 201, 228, 44, 16, 218, 17, 0, 10, 26,
+			1, 233, 226, 35, 19, 223, 208, 40, 25, 217, 1, 217, 24, 34, 242, 229, 238, 55, 48, 159, 183, 75, 51, 251, 229, 244, 41, 253, 179, 249,
+			66, 42, 229, 212, 47, 29, 212, 0, 25, 3, 2, 30, 19, 234, 0, 221, 20, 39, 235, 249, 5, 11, 5, 192, 232, 67, 0, 223, 20, 234,
+			12, 30, 212, 234, 4, 12, 7, 217, 15, 46, 217, 244, 6, 240, 23, 39, 236, 226, 30, 17, 242, 248, 1, 18, 251, 255, 255, 0, 11, 11,
+			0, 251, 16, 23, 241, 0, 11, 16, 248, 239, 245, 16, 12, 216, 0, 3, 10, 43, 246, 227, 13, 254, 205, 1, 47, 31, 234, 194, 35, 66,
+			234, 210, 228, 6, 62, 226, 202, 43, 19, 193, 227, 54, 33, 17, 228, 240, 254, 14, 14, 186, 30, 126, 219, 166, 31, 42, 248, 214, 231, 52,
+			2, 1, 39, 191, 228, 68, 227, 212, 63, 37, 3, 227, 215, 35, 31, 226, 0, 8, 250, 17, 240, 219, 18, 23, 253, 214, 0, 51, 0, 209,
+			21, 51, 242, 202, 252, 43, 8, 250, 16, 7, 18, 242, 218, 36, 13, 194, 246, 35, 12, 255, 219, 251, 71, 10, 189, 233, 15, 13, 0, 227,
+			41, 64, 236, 191, 212, 17, 36, 1, 215, 52, 43, 216, 186, 4, 65, 11, 236, 3, 16, 245, 253, 24, 5, 222, 15, 19, 2, 21, 243, 227,
+			32, 11, 200, 5, 58, 22, 220, 225, 21, 10, 14, 224, 185, 57, 66, 197, 248, 25, 230, 254, 249, 242, 26, 24, 238, 240, 253, 33, 14, 244,
+			26, 240, 206, 244, 8, 22, 20, 4, 4, 7, 16, 221, 225, 18, 33, 231, 235, 35, 24, 22, 238, 240, 253, 4, 8, 234, 236, 2, 21, 6,
+			30, 250, 221, 18, 6, 233, 244, 17, 22, 254, 244, 4, 21, 17, 241, 213, 16, 23, 223, 253, 18, 255, 5, 3, 225, 24, 4, 245, 239, 217,
+			27, 44, 247, 2, 7, 6, 0, 210, 244, 50, 9, 247, 9, 0, 20, 216, 232, 53, 11, 230, 2, 248, 8, 30, 250, 237, 241, 35, 50, 252,
+			210, 225, 6, 11, 8, 7, 22, 254, 231, 253, 255, 3, 15, 252, 241, 14, 11, 236, 230, 227, 250, 22, 22, 2, 7, 21, 0, 230, 253, 31,
+			9, 235, 245, 16, 13, 229, 239, 2, 5, 20, 250, 234, 27, 29, 225, 213, 4, 39, 48, 5, 231, 0, 3, 0, 14, 229, 227, 13, 17, 24,
+			15, 231, 229, 3, 246, 22, 6, 255, 17, 244, 239, 20, 3, 247, 16, 247, 234, 245, 21, 1, 217, 246, 43, 35, 2, 231, 241, 13, 247, 248,
+			20, 13, 18, 4, 229, 242, 7, 9, 250, 249, 17, 255, 245, 19, 0, 0, 19, 255, 6, 242, 237, 254, 254, 247, 10, 10, 247, 2, 251, 239,
+			242, 6, 36, 13, 242, 232, 13, 24, 255, 236, 246, 5, 9, 16, 29, 7, 219, 250, 18, 252, 247, 2, 25, 0, 222, 249, 25, 30, 0, 237,
+			216, 2, 31, 254, 244, 251, 1, 0, 252, 255, 24, 247, 224, 254, 18, 30, 8, 253, 251, 3, 0, 13, 251, 235, 16, 22, 5, 246, 246, 9,
+			16, 242, 253, 11, 9, 250, 208, 237, 22, 18, 255, 253, 6, 8, 237, 227, 249, 254, 250, 7, 10, 20, 12, 250, 248, 249, 0, 0, 0, 9,
+			19, 12, 17, 12, 253, 235, 242, 7, 19, 10, 244, 253, 9, 9, 8, 2, 255, 2, 244, 243, 254, 248, 246, 1, 22, 4, 0, 244, 251, 253,
+			243, 255, 17, 20, 244, 237, 253, 2, 7, 6, 250, 247, 249, 250, 4, 0, 1, 0, 6, 9, 169, 2, 15, 0, 248, 210, 174, 42, 30, 188,
+			13, 55, 245, 4, 253, 171, 232, 59, 16, 228, 244, 243, 221, 35, 28, 227, 237, 8, 48, 27, 3, 252, 218, 9, 14, 243, 249, 250, 4, 20,
+			3, 244, 243, 7, 37, 11, 227, 247, 251, 31, 58, 231, 237, 2, 5, 254, 227, 253, 15, 243, 248, 244, 19, 4, 249, 30, 11, 5, 27, 35,
+			35, 187, 131, 49, 46, 252, 236, 220, 241, 36, 60, 208, 211, 62, 254, 255, 25, 227, 2, 30, 27, 240, 198, 244, 37, 241, 213, 19, 241, 1,
+			34, 241, 17, 5, 230, 9, 12, 4, 254, 14, 5, 12, 244, 238, 23, 6, 21, 27, 231, 255, 16, 245, 232, 250, 4, 15, 7, 238, 225, 7,
+			255, 23, 15, 5, 229, 239, 26, 249, 234, 27, 254, 185, 229, 31, 239, 221, 18, 215, 172, 221, 43, 6, 238, 251, 234, 11, 34, 254, 254, 5,
+			11, 50, 34, 225, 243, 53, 49, 8, 233, 250, 41, 42, 42, 240, 252, 53, 31, 244, 246, 20, 25, 18, 235, 249, 42, 1, 238, 15, 1, 2,
+			29, 0, 2, 40, 254, 18, 11, 226, 15, 44, 231, 168, 243, 37, 48, 238, 190, 244, 17, 47, 245, 224, 4, 246, 23, 29, 247, 230, 244, 42,
+			37, 225, 204, 234, 37, 67, 210, 168, 236, 55, 67, 221, 192, 9, 67, 253, 218, 227, 3, 52, 22, 227, 203, 235, 86, 48, 210, 176, 21, 69,
+			30, 253, 230, 29, 38, 245, 248, 49, 28, 254, 26, 8, 237, 33, 57, 22, 245, 242, 32, 57, 0, 226, 15, 42, 20, 0, 233, 183, 238, 55,
+			45, 213, 172, 203, 29, 71, 254, 185, 170, 235, 49, 25, 190, 195, 21, 42, 250, 195, 230, 13, 27, 19, 239, 244, 226, 245, 0, 249, 4, 224,
+			204, 231, 50, 50, 208, 187, 204, 189, 231, 52, 18, 205, 191, 239, 26, 250, 241, 220, 228, 18, 23, 226, 210, 25, 71, 30, 195, 191, 9, 79,
+			62, 250, 2, 250, 3, 43, 44, 4, 250, 26, 10, 254, 30, 36, 5, 245, 17, 33, 10, 245, 4, 55, 3, 6, 50, 4, 254, 17, 249, 28,
+			26, 245, 0, 6, 240, 237, 16, 253, 204, 215, 248, 232, 30, 23, 190, 208, 26, 32, 225, 208, 243, 22, 3, 215, 241, 13, 46, 38, 253, 224,
+			229, 28, 37, 17, 5, 3, 244, 244, 0, 0, 225, 254, 17, 215, 198, 237, 35, 26, 233, 219, 213, 232, 30, 8, 244, 6, 242, 8, 36, 14,
+			196, 230, 50, 48, 249, 212, 245, 21, 27, 235, 236, 246, 2, 38, 2, 197, 209, 29, 28, 0, 9, 242, 248, 31, 32, 228, 226, 41, 68, 29,
+			221, 244, 45, 88, 62, 248, 238, 250, 49, 42, 50, 10, 195, 206, 76, 84, 197, 204, 29, 17, 183, 19, 59, 244, 201, 234, 252, 238, 29, 231,
+			221, 11, 16, 209, 245, 22, 236, 228, 13, 11, 225, 196, 229, 41, 32, 224, 232, 248, 255, 246, 226, 22, 28, 216, 174, 33, 78, 24, 216, 235,
+			32, 36, 11, 252, 250, 247, 31, 79, 26, 212, 247, 78, 69, 28, 236, 244, 65, 75, 30, 238, 24, 29, 248, 27, 78, 37, 255, 215, 230, 69,
+			64, 10, 12, 4, 0, 253, 24, 43, 16, 206, 235, 18, 42, 37, 2, 174, 176, 254, 43, 2, 221, 200, 219, 254, 241, 237, 229, 210, 237, 252,
+			221, 217, 242, 237, 215, 244, 17, 220, 172, 202, 26, 22, 242, 222, 250, 238, 216, 228, 233, 241, 244, 229, 220, 247, 233, 219, 215, 239, 251, 239,
+			216, 208, 226, 18, 44, 27, 0, 254, 242, 7, 29, 33, 20, 9, 15, 61, 59, 8, 224, 226, 29, 92, 85, 11, 211, 206, 250, 21, 235, 206,
+			240, 252, 204, 174, 217, 251, 237, 187, 186, 202, 216, 207, 173, 159, 178, 233, 241, 198, 169, 166, 181, 214, 9, 4, 209, 179, 193, 239, 8, 6,
+			249, 239, 235, 246, 7, 14, 0, 252, 12, 18, 21, 245, 228, 8, 31, 0, 0, 0, 183, 4, 23, 0, 11, 14, 14, 14, 12, 9, 7, 8,
+			15, 14, 14, 15, 11, 4, 2, 254, 251, 247, 248, 249, 254, 4, 8, 7, 6, 10, 9, 7, 11, 9, 3, 1, 7, 9, 6, 14, 13, 14,
+			10, 12, 12, 12, 15, 16, 14, 18, 14, 10, 11, 11, 9, 10, 12, 12, 18, 16, 6, 3, 0, 0, 0, 255, 0, 1, 9, 8, 14, 23,
+			21, 17, 22, 2, 250, 1, 255, 199, 133, 166, 246, 26, 34, 27, 1, 8, 21, 3, 233, 240, 3, 32, 53, 54, 43, 44, 39, 16, 1, 5,
+			22, 29, 30, 30, 34, 35, 30, 32, 18, 7, 8, 20, 33, 48, 45, 42, 32, 19, 10, 9, 9, 9, 4, 8, 14, 24, 16, 6, 1, 0,
+			246, 246, 6, 15, 14, 9, 7, 4, 10, 14, 244, 186, 206, 248, 29, 13, 18, 4, 7, 26, 4, 237, 224, 0, 25, 38, 33, 18, 23, 26,
+			17, 254, 4, 9, 18, 27, 31, 27, 24, 22, 11, 6, 253, 0, 6, 22, 20, 9, 5, 12, 14, 8, 1, 250, 248, 1, 3, 2, 255, 0,
+			4, 7, 255, 251, 255, 10, 17, 11, 9, 10, 12, 11, 8, 14, 17, 21, 28, 23, 25, 19, 17, 25, 26, 14, 9, 15, 29, 29, 17, 19,
+			17, 13, 16, 15, 15, 20, 17, 10, 254, 254, 0, 8, 8, 7, 9, 8, 4, 3, 0, 0, 255, 252, 255, 2, 15, 7, 11, 13, 15, 15,
+			13, 8, 16, 25, 17, 24, 28, 23, 23, 20, 28, 36, 33, 22, 15, 16, 26, 24, 14, 11, 12, 9, 15, 24, 15, 8, 7, 0, 251, 254,
+			0, 5, 10, 11, 16, 3, 5, 2, 0, 248, 246, 1, 9, 16, 7, 3, 4, 5, 8, 5, 0, 247, 4, 19, 10, 0, 254, 9, 14, 12,
+			1, 253, 14, 17, 14, 1, 1, 18, 19, 25, 17, 3, 9, 22, 19, 9, 2, 255, 0, 9, 8, 4, 10, 15, 13, 255, 248, 252, 6, 14,
+			13, 7, 6, 13, 8, 254, 254, 11, 13, 15, 11, 5, 12, 19, 16, 11, 3, 252, 7, 18, 20, 14, 11, 13, 18, 10, 12, 10, 4, 17,
+			13, 6, 1, 7, 12, 17, 9, 254, 0, 6, 13, 11, 10, 7, 10, 11, 7, 15, 9, 12, 18, 16, 19, 14, 9, 8, 17, 18, 21, 20,
+			17, 19, 18, 11, 0, 5, 16, 26, 17, 1, 5, 19, 24, 3, 249, 1, 7, 19, 10, 3, 10, 15, 13, 8, 0, 0, 14, 22, 7, 4,
+			22, 28, 22, 14, 4, 15, 23, 16, 16, 24, 34, 33, 19, 4, 0, 7, 21, 33, 27, 21, 14, 4, 0, 0, 6, 6, 11, 14, 11, 15,
+			10, 9, 3, 255, 6, 11, 22, 27, 21, 4, 9, 23, 20, 6, 8, 12, 18, 22, 12, 8, 14, 14, 10, 2, 0, 255, 6, 17, 18, 8,
+			5, 4, 252, 3, 0, 0, 6, 9, 10, 8, 4, 3, 13, 11, 3, 1, 0, 11, 23, 23, 16, 17, 14, 11, 13, 17, 12, 10, 8, 3,
+			6, 11, 15, 16, 11, 4, 11, 7, 248, 246, 5, 7, 3, 9, 12, 12, 11, 0, 252, 16, 22, 13, 13, 19, 32, 35, 26, 17, 15, 30,
+			34, 21, 4, 15, 34, 37, 23, 15, 18, 27, 37, 19, 7, 14, 23, 22, 17, 4, 0, 22, 24, 16, 7, 9, 19, 19, 14, 5, 6, 12,
+			12, 4, 5, 21, 19, 13, 8, 255, 250, 255, 10, 15, 9, 8, 14, 11, 3, 254, 1, 14, 18, 23, 24, 20, 24, 14, 4, 3, 8, 15,
+			28, 34, 20, 16, 12, 3, 2, 4, 1, 4, 11, 13, 16, 11, 0, 248, 255, 5, 3, 9, 4, 0, 7, 14, 1, 248, 0, 6, 13, 9,
+			0, 4, 15, 9, 10, 11, 9, 18, 23, 25, 15, 11, 14, 19, 23, 16, 13, 21, 27, 21, 8, 6, 12, 16, 7, 7, 8, 9, 14, 14,
+			4, 249, 0, 1, 0, 0, 254, 1, 1, 250, 242, 245, 0, 10, 2, 252, 248, 248, 252, 2, 0, 0, 7, 10, 18, 24, 17, 5, 5, 7,
+			4, 3, 7, 20, 22, 21, 20, 14, 5, 255, 7, 17, 14, 10, 11, 17, 15, 2, 0, 4, 4, 12, 17, 12, 10, 4, 0, 9, 14, 7,
+			4, 3, 6, 8, 10, 16, 17, 11, 11, 14, 14, 8, 9, 12, 13, 14, 7, 5, 16, 21, 18, 17, 14, 12, 17, 17, 15, 3, 255, 10,
+			29, 30, 21, 12, 1, 2, 0, 254, 5, 17, 18, 13, 3, 0, 7, 9, 2, 253, 249, 0, 6, 9, 1, 1, 8, 8, 2, 5, 7, 0,
+			254, 255, 1, 13, 20, 19, 17, 16, 15, 6, 5, 15, 16, 15, 18, 17, 17, 18, 14, 4, 253, 252, 255, 5, 13, 10, 1, 4, 7, 4,
+			253, 249, 253, 255, 0, 3, 10, 12, 11, 10, 6, 15, 20, 17, 15, 19, 23, 21, 20, 23, 16, 12, 24, 29, 22, 15, 9, 14, 16, 1,
+			246, 255, 11, 15, 17, 7, 255, 253, 251, 254, 255, 3, 5, 14, 20, 14, 8, 12, 18, 9, 5, 6, 13, 21, 21, 17, 17, 20, 23, 15,
+			9, 11, 17, 14, 15, 12, 11, 15, 21, 21, 13, 5, 8, 5, 8, 5, 2, 4, 11, 5, 7, 10, 4, 5, 10, 12, 9, 12, 10, 10,
+			12, 13, 10, 10, 15, 11, 14, 16, 16, 13, 9, 2, 6, 19, 18, 13, 11, 15, 15, 12, 5, 8, 14, 17, 20, 21, 18, 9, 7, 16,
+			14, 7, 11, 19, 18, 19, 17, 18, 14, 11, 7, 4, 6, 12, 14, 13, 7, 9, 15, 14, 3, 254, 0, 4, 6, 6, 6, 10, 13, 9,
+			255, 0, 10, 13, 9, 8, 3, 4, 14, 14, 8, 7, 9, 7, 5, 3, 6, 2, 5, 8, 8, 3, 4, 6, 4, 7, 6, 4, 3, 7,
+			6, 0, 3, 12, 20, 18, 8, 6, 12, 16, 12, 7, 6, 8, 13, 11, 12, 14, 19, 20, 15, 9, 7, 8, 5, 9, 7, 0, 2, 9,
+			8, 5, 8, 6, 5, 8, 6, 2, 7, 17, 18, 17, 15, 11, 13, 12, 10, 9, 11, 20, 26, 23, 17, 12, 13, 17, 14, 8, 9, 13,
+			17, 15, 13, 8, 12, 17, 15, 13, 9, 5, 7, 12, 12, 13, 14, 13, 7, 2, 7, 13, 17, 17, 11, 9, 9, 11, 10, 8, 7, 4,
+			5, 7, 16, 18, 11, 9, 11, 17, 19, 12, 5, 7, 11, 16, 17, 12, 13, 18, 17, 13, 5, 5, 12, 16, 14, 10, 9, 11, 12, 8,
+			4, 4, 11, 13, 9, 3, 5, 8, 3, 1, 3, 5, 8, 9, 7, 6, 5, 6, 11, 11, 6, 7, 11, 13, 15, 13, 10, 10, 10, 10,
+			8, 10, 13, 17, 18, 17, 15, 13, 11, 12, 8, 4, 8, 11, 9, 8, 9, 12, 10, 4, 6, 6, 7, 10, 12, 12, 10, 11, 9, 12,
+			11, 11, 8, 7, 13, 16, 15, 9, 10, 16, 14, 10, 7, 5, 7, 13, 9, 6, 8, 7, 8, 12, 12, 10, 3, 4, 4, 4, 5, 0,
+			58, 6, 27, 0, 8, 9, 9, 8, 10, 8, 9, 8, 10, 8, 8, 4, 5, 1, 250, 159, 133, 206, 248, 27, 55, 18, 7, 42, 51, 45,
+			26, 231, 224, 252, 15, 41, 48, 32, 37, 54, 57, 46, 31, 251, 246, 2, 9, 22, 19, 12, 24, 40, 44, 43, 28, 0, 251, 251, 253, 253,
+			246, 246, 3, 15, 28, 25, 13, 255, 246, 247, 250, 247, 242, 247, 255, 15, 25, 28, 22, 15, 3, 5, 0, 0, 255, 2, 4, 11, 23, 25,
+			25, 21, 18, 13, 7, 5, 1, 0, 2, 11, 14, 22, 23, 19, 17, 17, 13, 7, 3, 0, 255, 1, 3, 7, 12, 15, 15, 18, 11, 7,
+			6, 2, 4, 4, 1, 4, 6, 9, 15, 18, 10, 10, 8, 4, 11, 12, 9, 5, 9, 11, 22, 25, 19, 15, 10, 13, 15, 13, 5, 3,
+			6, 9, 14, 13, 14, 11, 9, 12, 19, 14, 6, 5, 7, 8, 15, 19, 12, 12, 14, 13, 15, 20, 253, 212, 0, 29, 31, 49, 43, 5,
+			5, 21, 15, 11, 1, 241, 251, 0, 24, 45, 39, 15, 16, 12, 17, 24, 21, 254, 0, 14, 31, 32, 27, 12, 12, 16, 21, 16, 16, 3,
+			27, 17, 29, 40, 22, 7, 14, 6, 253, 9, 254, 243, 244, 255, 4, 9, 12, 254, 247, 3, 2, 1, 1, 255, 246, 254, 254, 18, 17, 23,
+			15, 14, 8, 9, 1, 248, 248, 246, 240, 236, 191, 157, 211, 17, 55, 60, 62, 13, 37, 48, 58, 36, 24, 17, 13, 228, 21, 21, 236, 248,
+			18, 243, 14, 25, 7, 10, 250, 190, 211, 9, 37, 43, 43, 246, 192, 213, 229, 243, 231, 210, 185, 225, 0, 16, 26, 12, 2, 14, 37, 15,
+			7, 244, 242, 21, 35, 39, 38, 44, 48, 70, 72, 46, 23, 19, 19, 31, 39, 29, 13, 30, 46, 49, 54, 35, 13, 13, 10, 14, 4, 253,
+			241, 4, 22, 28, 23, 13, 3, 255, 13, 7, 243, 240, 238, 253, 7, 14, 1, 21, 12, 30, 34, 33, 20, 22, 22, 12, 29, 17, 12, 25,
+			29, 32, 34, 9, 20, 51, 46, 38, 44, 18, 3, 30, 32, 14, 12, 5, 254, 19, 21, 13, 8, 252, 236, 252, 2, 255, 3, 251, 252, 8,
+			5, 249, 243, 243, 253, 19, 6, 249, 252, 250, 251, 6, 4, 246, 249, 0, 10, 26, 21, 5, 5, 14, 10, 6, 21, 3, 4, 41, 35, 23,
+			32, 15, 5, 20, 32, 4, 2, 252, 236, 254, 8, 11, 241, 248, 247, 252, 10, 255, 240, 240, 2, 3, 2, 0, 241, 245, 5, 10, 14, 10,
+			252, 2, 6, 5, 8, 1, 237, 250, 10, 10, 13, 19, 13, 24, 36, 19, 3, 255, 0, 23, 38, 33, 11, 8, 16, 25, 24, 5, 239, 245,
+			247, 3, 10, 8, 8, 21, 36, 28, 12, 249, 242, 0, 21, 14, 252, 254, 247, 10, 37, 30, 2, 2, 27, 19, 12, 254, 233, 228, 244, 3,
+			8, 17, 11, 16, 35, 43, 44, 31, 17, 252, 243, 240, 246, 241, 1, 36, 38, 29, 29, 17, 5, 9, 9, 250, 239, 0, 13, 31, 33, 6,
+			251, 7, 18, 12, 23, 0, 244, 10, 5, 249, 246, 235, 233, 252, 9, 8, 0, 252, 3, 255, 248, 2, 8, 6, 8, 19, 26, 28, 28, 34,
+			26, 16, 12, 253, 253, 255, 242, 11, 42, 29, 28, 52, 22, 22, 52, 26, 245, 254, 233, 209, 248, 0, 234, 255, 8, 250, 19, 23, 253, 251,
+			1, 252, 5, 8, 237, 239, 249, 236, 244, 24, 247, 222, 255, 32, 48, 43, 40, 5, 253, 25, 14, 244, 237, 1, 30, 26, 28, 20, 254, 9,
+			15, 15, 12, 0, 5, 24, 12, 5, 4, 10, 4, 18, 25, 12, 25, 37, 15, 4, 10, 255, 236, 244, 253, 11, 20, 22, 18, 5, 10, 22,
+			16, 0, 229, 244, 12, 7, 4, 9, 249, 2, 26, 25, 11, 254, 254, 3, 5, 255, 241, 254, 2, 2, 29, 34, 24, 61, 55, 19, 10, 30,
+			33, 33, 37, 14, 4, 253, 6, 11, 2, 7, 250, 7, 3, 1, 20, 18, 15, 3, 7, 6, 9, 1, 250, 8, 245, 239, 202, 204, 235, 0,
+			8, 21, 254, 231, 7, 5, 252, 247, 244, 245, 5, 32, 36, 18, 4, 244, 18, 36, 26, 31, 53, 33, 37, 55, 24, 247, 5, 0, 247, 13,
+			0, 244, 9, 18, 22, 12, 252, 2, 11, 8, 244, 246, 240, 224, 242, 243, 234, 240, 253, 0, 248, 237, 248, 4, 11, 25, 35, 34, 24, 7,
+			12, 25, 5, 11, 11, 12, 48, 42, 41, 48, 45, 25, 24, 28, 12, 11, 22, 33, 11, 255, 242, 245, 2, 9, 16, 23, 24, 16, 8, 1,
+			244, 226, 211, 220, 229, 233, 235, 241, 0, 11, 34, 34, 27, 19, 25, 25, 10, 3, 248, 0, 12, 12, 8, 30, 41, 54, 53, 47, 47, 38,
+			27, 16, 5, 0, 0, 252, 9, 17, 10, 24, 35, 31, 47, 21, 245, 239, 241, 225, 213, 220, 223, 231, 253, 10, 10, 21, 4, 245, 5, 13,
+			246, 239, 233, 241, 15, 27, 28, 18, 22, 43, 36, 23, 16, 11, 5, 17, 34, 23, 13, 31, 24, 12, 15, 9, 26, 30, 19, 14, 2, 248,
+			246, 241, 234, 235, 232, 233, 226, 235, 13, 14, 3, 246, 250, 249, 241, 237, 234, 241, 0, 242, 253, 22, 24, 33, 44, 47, 37, 12, 4, 7,
+			7, 255, 5, 5, 241, 2, 26, 38, 26, 37, 56, 51, 31, 1, 230, 215, 220, 235, 241, 252, 10, 26, 29, 23, 22, 11, 5, 0, 250, 237,
+			228, 220, 236, 254, 6, 20, 21, 35, 35, 46, 34, 17, 20, 4, 255, 19, 10, 0, 10, 34, 45, 26, 33, 31, 26, 35, 27, 5, 0, 14,
+			15, 17, 20, 25, 22, 15, 18, 3, 250, 6, 19, 4, 247, 242, 0, 16, 12, 12, 11, 5, 6, 7, 244, 234, 253, 248, 2, 19, 15, 10,
+			19, 31, 17, 9, 23, 31, 21, 15, 2, 6, 255, 0, 17, 16, 15, 10, 17, 22, 31, 30, 17, 0, 241, 254, 5, 226, 220, 252, 20, 14,
+			25, 34, 37, 42, 28, 4, 255, 238, 231, 232, 226, 242, 5, 20, 38, 46, 33, 19, 20, 16, 253, 2, 19, 9, 1, 0, 4, 6, 11, 20,
+			23, 12, 0, 3, 1, 244, 235, 1, 6, 4, 1, 1, 10, 10, 2, 7, 11, 250, 0, 6, 255, 9, 9, 22, 22, 7, 13, 9, 5, 8,
+			16, 13, 0, 255, 9, 16, 8, 7, 30, 33, 12, 11, 17, 17, 27, 19, 4, 2, 0, 248, 0, 23, 18, 11, 12, 7, 10, 17, 24, 21,
+			0, 254, 8, 4, 254, 2, 1, 3, 21, 29, 26, 9, 14, 27, 20, 11, 4, 252, 244, 246, 250, 249, 245, 11, 34, 38, 32, 29, 38, 33,
+			13, 254, 254, 241, 246, 4, 7, 5, 20, 20, 21, 41, 41, 20, 27, 25, 250, 4, 5, 247, 249, 255, 253, 11, 22, 30, 37, 24, 6, 14,
+			10, 6, 4, 252, 253, 3, 247, 241, 251, 243, 235, 245, 250, 8, 23, 34, 44, 41, 37, 34, 11, 4, 13, 3, 9, 21, 21, 33, 38, 43,
+			46, 40, 45, 43, 30, 21, 25, 27, 30, 25, 13, 15, 0, 232, 240, 249, 241, 250, 10, 9, 252, 2, 0, 0, 2, 6, 247, 235, 234, 221,
+			223, 226, 239, 249, 243, 248, 5, 21, 30, 30, 34, 27, 5, 0, 4, 4, 3, 13, 25, 41, 48, 45, 53, 52, 49, 45, 37, 30, 24, 17,
+			11, 11, 8, 254, 247, 253, 3, 10, 255, 6, 21, 16, 8, 11, 3, 243, 246, 246, 235, 232, 241, 245, 8, 23, 24, 19, 15, 17, 18, 14,
+			13, 10, 5, 5, 3, 6, 15, 14, 20, 33, 37, 47, 50, 39, 27, 26, 22, 16, 6, 10, 9, 0, 9, 14, 4, 1, 2, 246, 249, 241,
+			229, 243, 3, 253, 252, 250, 239, 247, 255, 251, 248, 252, 1, 1, 8, 12, 8, 7, 18, 19, 15, 22, 22, 26, 31, 32, 32, 22, 14, 6,
+			3, 6, 3, 8, 15, 22, 30, 26, 19, 10, 6, 5, 253, 0, 0, 253, 253, 255, 254, 253, 2, 255, 0, 1, 2, 0, 254, 255, 251, 245,
+			243, 253, 4, 4, 9, 18, 19, 23, 24, 17, 4, 246, 250, 0, 1, 255, 3, 12, 12, 20, 26, 15, 11, 18, 18, 7, 253, 255, 2, 3,
+			7, 9, 2, 4, 10, 12, 14, 14, 12, 15, 16, 15, 18, 21, 20, 22, 23, 18, 17, 18, 21, 28, 34, 33, 35, 39, 35, 24, 25, 24,
+			6, 5, 255, 243, 237, 244, 249, 252, 255, 1, 9, 9, 8, 9, 2, 0, 249, 246, 252, 1, 4, 0, 255, 248, 250, 6, 5, 6, 7, 4,
+			6, 7, 2, 255, 251, 244, 249, 254, 255, 0, 4, 9, 9, 11, 9, 6, 7, 8, 5, 2, 0, 247, 234, 233, 226, 222, 226, 235, 241, 252,
+			2, 9, 14, 12, 11, 7, 10, 8, 7, 11, 14, 22, 25, 29, 26, 33, 44, 43, 48, 47, 48, 43, 37, 32, 24, 22, 23, 27, 23, 21,
+			24, 29, 38, 44, 47, 43, 39, 36, 31, 28, 24, 16, 12, 9, 9, 7, 10, 13, 20, 20, 12, 7, 8, 11, 15, 19, 16, 15, 13, 16,
+			17, 10, 9, 8, 12, 8, 11, 8, 0, 0, 195, 5, 51, 0, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 255, 0, 4, 5,
+			4, 2, 0, 0, 1, 2, 2, 3, 2, 3, 1, 248, 197, 214, 0, 44, 49, 16, 239, 219, 243, 0, 17, 24, 22, 18, 0, 247, 239, 0,
+			13, 24, 19, 12, 2, 0, 254, 2, 12, 13, 18, 11, 1, 1, 2, 8, 9, 8, 6, 5, 1, 2, 0, 0, 3, 6, 5, 3, 0, 0,
+			2, 1, 6, 2, 3, 0, 1, 3, 2, 3, 3, 3, 3, 3, 1, 5, 6, 3, 6, 4, 5, 2, 4, 3, 6, 4, 6, 4, 3, 2,
+			5, 6, 6, 4, 1, 3, 5, 6, 7, 4, 2, 3, 3, 4, 2, 2, 4, 5, 4, 3, 3, 1, 1, 2, 3, 5, 3, 1, 2, 2,
+			4, 6, 1, 254, 3, 0, 4, 5, 1, 1, 1, 255, 1, 2, 0, 0, 0, 5, 3, 3, 255, 253, 255, 4, 4, 1, 5, 0, 2, 2,
+			1, 0, 1, 2, 1, 7, 0, 0, 253, 253, 3, 9, 1, 255, 252, 251, 3, 6, 4, 2, 0, 251, 255, 4, 5, 5, 4, 1, 252, 254,
+			3, 4, 5, 3, 254, 0, 4, 254, 3, 3, 2, 4, 3, 0, 255, 2, 232, 237, 10, 18, 24, 11, 247, 239, 243, 254, 9, 17, 17, 5,
+			247, 247, 248, 255, 5, 6, 8, 4, 0, 251, 247, 1, 2, 6, 7, 1, 252, 1, 0, 0, 3, 4, 5, 4, 0, 251, 254, 7, 4, 13,
+			6, 254, 251, 1, 236, 255, 22, 18, 13, 1, 246, 249, 0, 2, 10, 9, 3, 1, 249, 255, 5, 11, 2, 0, 0, 255, 7, 254, 3, 0,
+			3, 5, 2, 9, 7, 9, 7, 6, 2, 3, 6, 3, 6, 0, 255, 1, 9, 3, 4, 4, 0, 5, 7, 2, 6, 3, 253, 3, 2, 9,
+			13, 4, 3, 2, 239, 195, 232, 27, 54, 38, 252, 217, 222, 251, 1, 9, 10, 14, 5, 243, 237, 242, 8, 27, 25, 12, 0, 250, 3, 6,
+			7, 15, 13, 12, 3, 0, 8, 17, 26, 26, 21, 20, 20, 17, 15, 14, 11, 43, 51, 24, 3, 219, 217, 237, 247, 255, 233, 182, 196, 224,
+			251, 26, 250, 222, 223, 221, 238, 255, 250, 254, 2, 245, 248, 244, 254, 18, 25, 24, 29, 24, 24, 35, 57, 62, 90, 38, 159, 185, 224, 57,
+			126, 67, 0, 201, 181, 221, 252, 13, 52, 50, 12, 220, 194, 209, 237, 19, 37, 31, 250, 220, 211, 222, 1, 20, 27, 11, 238, 226, 247, 12,
+			17, 18, 9, 16, 7, 252, 4, 9, 7, 24, 28, 18, 7, 244, 5, 17, 14, 22, 22, 10, 255, 3, 11, 22, 11, 6, 4, 3, 6, 15,
+			12, 0, 248, 250, 14, 6, 0, 255, 252, 7, 4, 1, 252, 246, 254, 4, 4, 1, 254, 1, 0, 4, 11, 10, 255, 255, 1, 5, 0, 254,
+			255, 4, 8, 9, 2, 1, 248, 247, 12, 12, 7, 254, 251, 6, 1, 254, 3, 0, 3, 6, 254, 250, 6, 255, 251, 249, 247, 255, 12, 10,
+			247, 243, 248, 0, 255, 254, 1, 247, 249, 253, 0, 8, 9, 252, 247, 5, 2, 252, 255, 1, 6, 0, 253, 252, 1, 14, 5, 248, 248, 0,
+			11, 10, 1, 5, 9, 253, 242, 248, 2, 16, 20, 5, 246, 243, 252, 0, 14, 11, 13, 17, 2, 240, 241, 5, 21, 27, 8, 248, 243, 251,
+			12, 5, 1, 2, 13, 3, 239, 243, 0, 9, 12, 15, 12, 250, 247, 4, 16, 15, 10, 2, 10, 17, 2, 252, 247, 12, 30, 18, 254, 249,
+			0, 5, 17, 16, 4, 0, 7, 7, 4, 3, 1, 253, 254, 7, 7, 250, 255, 248, 247, 12, 11, 3, 253, 242, 1, 12, 16, 9, 2, 246,
+			245, 0, 0, 5, 13, 2, 0, 254, 251, 3, 16, 2, 253, 13, 6, 0, 0, 255, 13, 11, 242, 244, 2, 19, 20, 7, 248, 248, 0, 9,
+			9, 4, 252, 250, 255, 1, 4, 0, 255, 4, 253, 252, 0, 253, 4, 13, 4, 2, 250, 249, 4, 0, 1, 12, 6, 3, 250, 249, 252, 11,
+			14, 2, 2, 2, 0, 253, 255, 255, 19, 22, 249, 243, 0, 0, 17, 20, 255, 241, 246, 8, 13, 250, 0, 7, 0, 251, 250, 254, 4, 6,
+			9, 0, 249, 238, 251, 14, 20, 11, 0, 245, 245, 1, 16, 8, 9, 9, 255, 247, 4, 10, 10, 20, 6, 250, 3, 4, 13, 18, 7, 252,
+			248, 13, 22, 12, 254, 250, 250, 0, 12, 15, 11, 2, 254, 0, 5, 9, 6, 1, 4, 254, 255, 251, 247, 5, 15, 11, 10, 1, 245, 255,
+			14, 14, 4, 12, 18, 254, 254, 7, 9, 17, 10, 252, 240, 0, 17, 13, 2, 243, 246, 21, 21, 1, 0, 250, 255, 7, 9, 4, 6, 7,
+			255, 254, 253, 9, 8, 252, 255, 4, 14, 11, 252, 244, 0, 15, 13, 5, 3, 247, 245, 255, 21, 13, 254, 251, 245, 255, 0, 249, 254, 12,
+			7, 248, 255, 251, 0, 15, 22, 5, 235, 247, 6, 14, 22, 7, 0, 251, 249, 5, 8, 2, 4, 4, 8, 4, 247, 255, 5, 4, 7, 8,
+			3, 0, 247, 238, 1, 19, 14, 3, 251, 253, 251, 249, 2, 16, 26, 10, 251, 242, 247, 15, 20, 11, 0, 2, 1, 245, 0, 6, 20, 14,
+			249, 236, 243, 5, 24, 25, 4, 249, 244, 254, 0, 0, 10, 16, 5, 2, 0, 254, 4, 13, 253, 3, 10, 5, 5, 12, 7, 3, 3, 0,
+			2, 252, 2, 15, 8, 253, 5, 0, 0, 3, 255, 9, 11, 252, 0, 4, 8, 6, 253, 248, 246, 2, 11, 6, 253, 241, 228, 226, 2, 22,
+			34, 25, 239, 204, 220, 7, 15, 251, 232, 239, 248, 4, 249, 232, 238, 15, 24, 9, 10, 249, 242, 4, 7, 16, 18, 18, 255, 237, 4, 25,
+			13, 11, 5, 251, 5, 2, 1, 11, 11, 8, 9, 4, 0, 247, 249, 9, 12, 5, 0, 1, 0, 245, 252, 14, 12, 253, 252, 248, 253, 6,
+			0, 249, 250, 255, 6, 13, 0, 255, 1, 255, 3, 6, 11, 8, 2, 8, 3, 8, 7, 252, 255, 5, 12, 16, 14, 2, 255, 253, 4, 0,
+			1, 8, 3, 10, 10, 2, 250, 246, 0, 9, 12, 10, 1, 253, 16, 7, 245, 251, 7, 19, 15, 2, 254, 2, 5, 8, 0, 0, 10, 12,
+			254, 249, 6, 18, 15, 7, 252, 246, 1, 9, 6, 12, 5, 249, 1, 6, 253, 5, 14, 7, 248, 242, 0, 15, 17, 6, 245, 246, 0, 2,
+			6, 4, 254, 253, 1, 5, 252, 241, 251, 12, 7, 3, 0, 242, 0, 0, 246, 255, 8, 9, 0, 244, 244, 2, 6, 14, 9, 252, 249, 4,
+			7, 5, 0, 255, 4, 6, 10, 4, 254, 0, 0, 5, 3, 0, 254, 253, 8, 13, 8, 253, 243, 246, 6, 8, 255, 0, 4, 3, 250, 246,
+			251, 6, 14, 1, 250, 252, 251, 0, 0, 251, 255, 9, 7, 2, 245, 241, 0, 11, 13, 10, 0, 251, 249, 247, 11, 20, 7, 252, 2, 9,
+			1, 5, 255, 1, 19, 13, 255, 255, 253, 3, 18, 4, 252, 4, 7, 12, 6, 5, 7, 9, 12, 3, 253, 0, 3, 4, 15, 15, 7, 248,
+			244, 0, 15, 20, 14, 4, 1, 0, 5, 3, 3, 17, 18, 6, 0, 2, 6, 16, 8, 1, 1, 4, 7, 3, 1, 7, 14, 8, 251, 244,
+			249, 4, 13, 6, 1, 2, 253, 248, 2, 12, 8, 2, 252, 0, 252, 252, 5, 10, 2, 0, 254, 253, 253, 3, 13, 9, 4, 254, 2, 7,
+			3, 255, 252, 1, 15, 17, 6, 252, 243, 253, 9, 9, 8, 1, 253, 252, 3, 3, 255, 254, 249, 254, 254, 252, 254, 0, 247, 252, 0, 253,
+			253, 250, 246, 248, 1, 6, 6, 253, 242, 240, 252, 6, 4, 1, 252, 252, 254, 250, 250, 0, 1, 255, 0, 2, 0, 247, 251, 5, 1, 255,
+			2, 4, 0, 252, 255, 4, 7, 14, 7, 254, 2, 9, 10, 9, 3, 3, 13, 16, 10, 5, 5, 7, 11, 14, 11, 10, 14, 13, 8, 3,
+			7, 17, 26, 20, 12, 10, 13, 14, 16, 18, 22, 28, 27, 19, 16, 8, 7, 20, 32, 33, 29, 26, 12, 2, 8, 21, 29, 32, 26, 20,
+			13, 9, 13, 13, 20, 31, 24, 15, 11, 10, 21, 19, 14, 12, 14, 16, 12, 3, 8, 16, 17, 15, 14, 2, 7, 8, 0, 10, 14, 20,
+			16, 6, 3, 5, 7, 10, 14, 14, 11, 13, 5, 0, 252, 253, 7, 7, 249, 230, 237, 0, 43, 6, 37, 0, 6, 8, 5, 6, 3, 1,
+			5, 8, 10, 13, 15, 19, 11, 6, 4, 1, 0, 5, 2, 6, 11, 13, 9, 8, 9, 9, 8, 7, 8, 12, 6, 4, 5, 3, 6, 12,
+			11, 11, 7, 0, 255, 2, 5, 5, 4, 11, 10, 11, 10, 5, 6, 0, 253, 254, 0, 251, 240, 0, 8, 15, 19, 24, 34, 54, 47, 60,
+			40, 205, 217, 208, 178, 228, 243, 228, 1, 11, 17, 23, 23, 15, 22, 10, 254, 235, 229, 232, 245, 255, 9, 16, 32, 37, 34, 24, 14, 254,
+			244, 241, 249, 248, 1, 10, 19, 29, 35, 28, 27, 17, 9, 2, 254, 247, 248, 252, 247, 255, 13, 16, 23, 20, 11, 1, 243, 239, 236, 238,
+			249, 244, 254, 250, 251, 0, 5, 9, 15, 15, 9, 254, 248, 248, 243, 2, 21, 13, 22, 33, 21, 23, 26, 1, 11, 25, 29, 37, 15, 12,
+			11, 24, 19, 19, 12, 3, 13, 19, 19, 12, 8, 241, 224, 12, 33, 1, 5, 244, 245, 32, 12, 253, 253, 250, 0, 17, 16, 252, 255, 4,
+			20, 22, 18, 22, 27, 28, 24, 16, 0, 4, 21, 17, 10, 8, 9, 252, 1, 16, 10, 9, 6, 12, 6, 254, 1, 22, 9, 6, 0, 250,
+			4, 3, 240, 233, 238, 252, 17, 250, 253, 16, 38, 23, 18, 7, 6, 248, 234, 224, 214, 231, 222, 241, 240, 219, 239, 243, 15, 28, 6, 3,
+			0, 5, 12, 7, 10, 23, 25, 32, 28, 25, 21, 30, 23, 21, 23, 8, 12, 23, 24, 23, 22, 22, 16, 16, 16, 7, 4, 4, 253, 255,
+			0, 254, 249, 251, 248, 0, 1, 3, 245, 244, 247, 0, 5, 8, 9, 8, 12, 7, 2, 10, 17, 16, 12, 12, 17, 22, 24, 19, 22, 26,
+			14, 12, 13, 12, 7, 6, 8, 11, 11, 16, 15, 20, 24, 5, 5, 0, 4, 7, 5, 9, 7, 6, 8, 9, 253, 255, 0, 0, 246, 251,
+			249, 3, 11, 18, 13, 11, 10, 0, 252, 5, 252, 244, 247, 0, 11, 14, 17, 27, 29, 29, 22, 9, 8, 6, 11, 254, 3, 252, 4, 23,
+			14, 8, 9, 5, 0, 253, 249, 241, 248, 5, 4, 9, 9, 15, 19, 20, 12, 3, 251, 250, 250, 253, 246, 247, 0, 6, 7, 14, 19, 15,
+			14, 9, 0, 7, 19, 4, 251, 2, 8, 10, 8, 13, 11, 4, 18, 19, 9, 12, 14, 4, 8, 14, 5, 2, 12, 14, 9, 12, 4, 4,
+			0, 4, 0, 251, 5, 254, 251, 1, 2, 5, 3, 4, 18, 19, 9, 6, 9, 0, 0, 0, 252, 246, 4, 11, 1, 6, 22, 16, 17, 10,
+			254, 1, 8, 7, 254, 1, 29, 19, 10, 11, 18, 11, 2, 250, 232, 245, 11, 0, 241, 247, 15, 18, 18, 22, 12, 16, 25, 16, 247, 4,
+			9, 248, 245, 254, 12, 18, 13, 255, 4, 13, 28, 8, 251, 0, 6, 2, 0, 5, 14, 18, 13, 251, 255, 4, 251, 244, 234, 245, 10, 7,
+			6, 7, 10, 28, 26, 9, 253, 0, 11, 12, 254, 240, 3, 15, 14, 26, 18, 13, 20, 13, 255, 6, 17, 1, 242, 247, 0, 13, 14, 15,
+			3, 8, 25, 7, 4, 6, 0, 255, 1, 8, 10, 14, 9, 9, 15, 8, 8, 0, 250, 0, 3, 250, 5, 17, 19, 19, 16, 17, 15, 21,
+			15, 7, 7, 9, 12, 0, 254, 0, 4, 11, 7, 0, 253, 0, 7, 6, 11, 10, 16, 13, 7, 11, 6, 6, 3, 1, 3, 9, 5, 2,
+			14, 15, 0, 1, 17, 28, 25, 11, 253, 3, 11, 7, 254, 251, 247, 8, 15, 6, 10, 28, 29, 25, 21, 10, 254, 0, 1, 246, 238, 255,
+			13, 15, 22, 27, 27, 28, 24, 10, 7, 6, 253, 251, 251, 244, 250, 6, 15, 13, 18, 23, 18, 11, 253, 252, 254, 251, 4, 18, 13, 14,
+			26, 24, 22, 19, 10, 7, 2, 6, 4, 238, 241, 12, 21, 7, 9, 17, 25, 25, 25, 14, 255, 17, 18, 6, 9, 1, 248, 252, 11, 2,
+			12, 11, 249, 11, 37, 30, 14, 5, 7, 3, 253, 22, 11, 9, 21, 2, 3, 25, 27, 7, 2, 11, 13, 18, 252, 0, 3, 5, 14, 235,
+			225, 242, 248, 255, 237, 236, 16, 31, 29, 7, 13, 10, 245, 234, 252, 245, 234, 228, 231, 249, 11, 4, 250, 1, 8, 253, 232, 240, 248, 235,
+			232, 249, 254, 245, 238, 235, 246, 249, 250, 252, 250, 255, 6, 252, 245, 244, 235, 235, 232, 238, 245, 235, 241, 0, 2, 253, 249, 0, 6, 252,
+			254, 0, 0, 253, 7, 14, 18, 24, 28, 25, 20, 11, 20, 33, 36, 44, 44, 49, 54, 38, 39, 38, 15, 9, 253, 228, 228, 198, 147, 154,
+			225, 50, 68, 40, 8, 10, 1, 220, 187, 212, 9, 38, 42, 10, 245, 8, 0, 189, 159, 210, 14, 49, 54, 55, 66, 49, 7, 243, 249, 25,
+			53, 66, 54, 40, 43, 30, 8, 255, 11, 31, 35, 44, 40, 24, 23, 16, 255, 255, 2, 255, 2, 15, 21, 30, 39, 19, 249, 244, 253, 21,
+			37, 42, 42, 20, 13, 14, 19, 30, 29, 21, 253, 192, 133, 158, 218, 19, 51, 72, 59, 20, 254, 227, 218, 236, 252, 19, 29, 15, 249, 233,
+			235, 249, 254, 15, 33, 27, 13, 243, 251, 4, 255, 250, 247, 255, 11, 2, 251, 3, 15, 22, 15, 11, 13, 12, 11, 14, 12, 8, 250, 1,
+			14, 9, 251, 242, 242, 246, 2, 255, 1, 10, 10, 4, 248, 251, 3, 255, 242, 246, 252, 243, 239, 243, 9, 6, 243, 224, 222, 0, 27, 37,
+			48, 58, 49, 32, 16, 16, 36, 59, 88, 92, 255, 196, 227, 248, 247, 5, 45, 64, 43, 255, 226, 226, 243, 230, 238, 6, 33, 32, 12, 0,
+			231, 237, 253, 1, 19, 31, 30, 25, 12, 6, 8, 245, 240, 25, 54, 55, 36, 32, 32, 21, 13, 28, 47, 34, 19, 29, 31, 23, 25, 23,
+			251, 236, 9, 43, 12, 233, 254, 25, 9, 237, 236, 0, 14, 0, 251, 255, 246, 243, 0, 242, 250, 13, 17, 6, 233, 241, 28, 15, 240, 242,
+			9, 30, 18, 255, 12, 33, 16, 243, 242, 7, 40, 40, 253, 240, 19, 27, 237, 227, 23, 48, 25, 251, 246, 0, 0, 0, 12, 12, 6, 248,
+			245, 243, 237, 8, 31, 15, 244, 246, 12, 12, 242, 0, 31, 2, 0, 4, 245, 254, 5, 13, 9, 4, 7, 13, 2, 251, 3, 20, 21, 5,
+			245, 0, 17, 15, 10, 0, 253, 254, 6, 10, 246, 245, 23, 21, 253, 247, 18, 23, 250, 249, 7, 6, 11, 12, 5, 4, 14, 21, 9, 246,
+			0, 31, 20, 255, 0, 13, 13, 7, 9, 13, 17, 22, 4, 244, 2, 14, 18, 6, 252, 21, 24, 0, 248, 247, 17, 33, 14, 4, 12, 3,
+			253, 252, 14, 30, 13, 252, 11, 15, 247, 5, 23, 17, 9, 4, 245, 239, 246, 10, 19, 0, 251, 15, 4, 237, 2, 22, 236, 217, 253, 12,
+			5, 5, 22, 23, 253, 239, 247, 250, 253, 11, 34, 32, 0, 250, 7, 7, 7, 11, 28, 30, 3, 243, 249, 16, 19, 16, 11, 6, 4, 2,
+			251, 255, 16, 10, 250, 252, 7, 6, 255, 2, 9, 2, 245, 243, 11, 16, 255, 250, 17, 13, 254, 1, 1, 255, 10, 12, 7, 6, 15, 11,
+			252, 249, 14, 19, 10, 9, 7, 7, 8, 0, 5, 16, 15, 4, 3, 13, 13, 254, 250, 14, 13, 11, 24, 8, 0, 12, 16, 15, 6, 0,
+			11, 20, 9, 13, 13, 3, 12, 17, 7, 14, 26, 13, 248, 248, 12, 21, 11, 0, 2, 18, 21, 16, 17, 16, 11, 7, 17, 27, 11, 0,
+			6, 12, 21, 24, 14, 11, 12, 10, 13, 17, 13, 14, 0, 246, 5, 15, 16, 2, 249, 13, 23, 9, 255, 10, 16, 8, 4, 7, 5, 251,
+			0, 11, 8, 1, 2, 255, 0, 9, 9, 1, 254, 5, 11, 8, 4, 8, 16, 15, 17, 9, 2, 9, 15, 12, 8, 12, 12, 3, 0, 12,
+			18, 10, 1, 10, 9, 0, 250, 251, 9, 20, 7, 0, 251, 255, 8, 13, 12, 254, 245, 251, 4, 4, 3, 5, 1, 251, 252, 0, 255, 4,
+			12, 13, 12, 2, 254, 11, 17, 9, 13, 10, 0, 1, 0, 7, 12, 6, 11, 24, 11, 255, 0, 12, 7, 253, 252, 7, 14, 7, 254, 254,
+			4, 13, 10, 7, 17, 17, 8, 8, 10, 16, 17, 8, 11, 11, 6, 13, 8, 9, 22, 24, 15, 6, 1, 8, 9, 4, 12, 14, 9, 6,
+			4, 8, 12, 14, 9, 1, 1, 9, 10, 3, 0, 10, 13, 10, 3, 251, 247, 3, 14, 10, 251, 246, 1, 12, 8, 2, 254, 244, 244, 3,
+			12, 7, 253, 248, 255, 6, 6, 7, 8, 4, 4, 15, 13, 2, 246, 251, 15, 24, 7, 243, 246, 2, 11, 7, 0, 2, 0, 251, 244, 247,
+			255, 5, 255, 246, 246, 255, 253, 245, 251, 0, 252, 240, 238, 252, 7, 0, 242, 240, 245, 249, 251, 247, 251, 255, 248, 250, 5, 1, 248, 249,
+			255, 2, 253, 241, 239, 254, 13, 8, 249, 244, 251, 6, 6, 0, 208, 4, 44, 0, 3, 1, 2, 1, 2, 1, 3, 2, 4, 236, 191, 217,
+			11, 26, 24, 27, 26, 24, 11, 246, 236, 247, 6, 12, 15, 16, 19, 15, 5, 252, 250, 252, 5, 17, 24, 23, 17, 16, 16, 1, 249, 251,
+			12, 14, 15, 0, 202, 203, 239, 22, 13, 13, 15, 21, 16, 248, 226, 229, 3, 15, 11, 9, 15, 11, 2, 254, 249, 249, 253, 15, 16, 26,
+			20, 15, 2, 254, 2, 4, 5, 10, 34, 36, 37, 14, 8, 211, 132, 222, 36, 36, 38, 37, 30, 19, 239, 208, 198, 241, 19, 26, 39, 40,
+			26, 254, 243, 230, 226, 242, 8, 39, 45, 33, 16, 6, 214, 182, 225, 0, 12, 27, 28, 33, 25, 1, 230, 220, 239, 3, 13, 25, 31, 29,
+			11, 254, 242, 234, 236, 248, 18, 33, 25, 21, 2, 247, 249, 242, 246, 6, 22, 32, 27, 10, 251, 241, 241, 244, 248, 17, 23, 24, 24, 9,
+			245, 241, 247, 244, 6, 12, 17, 24, 12, 6, 251, 242, 245, 248, 5, 16, 17, 16, 12, 2, 251, 252, 2, 1, 6, 2, 15, 19, 4, 252,
+			254, 245, 5, 15, 19, 15, 9, 8, 7, 254, 252, 9, 7, 16, 10, 6, 10, 15, 10, 0, 7, 217, 176, 205, 199, 227, 27, 48, 38, 36,
+			244, 223, 206, 214, 234, 9, 39, 54, 49, 12, 0, 244, 245, 0, 18, 31, 35, 56, 54, 29, 248, 2, 21, 248, 235, 11, 249, 217, 8, 32,
+			4, 232, 232, 242, 243, 10, 16, 16, 21, 46, 246, 180, 209, 244, 2, 11, 24, 5, 253, 232, 240, 251, 10, 33, 34, 28, 8, 247, 230, 231,
+			230, 233, 252, 7, 30, 18, 7, 241, 238, 250, 251, 254, 15, 32, 33, 17, 6, 7, 251, 0, 16, 12, 241, 242, 251, 10, 17, 20, 23, 13,
+			3, 12, 9, 243, 255, 19, 22, 18, 15, 255, 2, 10, 2, 16, 15, 15, 17, 19, 11, 11, 20, 15, 8, 17, 24, 12, 0, 4, 248, 254,
+			252, 251, 0, 0, 2, 1, 253, 4, 254, 245, 253, 14, 12, 6, 10, 6, 3, 0, 251, 253, 2, 21, 30, 9, 8, 0, 0, 2, 9, 4,
+			0, 8, 7, 19, 11, 8, 10, 10, 6, 251, 6, 20, 21, 18, 19, 3, 3, 255, 245, 248, 1, 7, 6, 0, 5, 12, 3, 8, 8, 246,
+			248, 14, 21, 16, 5, 4, 3, 0, 255, 1, 0, 12, 18, 8, 254, 250, 237, 245, 15, 13, 254, 246, 254, 15, 1, 230, 229, 246, 6, 0,
+			246, 250, 253, 238, 225, 234, 10, 11, 8, 15, 17, 12, 0, 231, 237, 10, 32, 45, 25, 242, 235, 11, 32, 28, 4, 7, 19, 29, 25, 255,
+			237, 9, 22, 6, 250, 6, 21, 3, 241, 245, 2, 252, 244, 247, 243, 0, 5, 1, 2, 254, 243, 248, 254, 254, 16, 11, 2, 8, 14, 10,
+			250, 229, 255, 20, 12, 7, 9, 21, 18, 249, 250, 10, 13, 14, 6, 255, 4, 15, 3, 243, 251, 4, 0, 252, 225, 226, 244, 4, 17, 11,
+			6, 9, 4, 243, 217, 229, 8, 28, 32, 26, 15, 1, 248, 239, 246, 255, 8, 19, 19, 14, 254, 250, 247, 253, 21, 38, 29, 254, 254, 249,
+			234, 236, 255, 12, 14, 6, 250, 246, 242, 236, 248, 14, 15, 2, 7, 249, 235, 243, 8, 5, 4, 2, 254, 7, 28, 14, 5, 26, 33, 18,
+			251, 246, 240, 249, 11, 24, 21, 14, 8, 249, 235, 242, 248, 1, 8, 4, 16, 17, 255, 239, 221, 240, 1, 1, 8, 24, 18, 255, 234, 228,
+			241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4364,5479 +4279,8445 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 4, 44, 0, 3, 1, 2, 1,
-			2, 1, 3, 2, 4, 236, 191, 217, 11, 26, 24, 27, 26, 24, 11, 246, 236, 247, 6, 12, 15, 16, 19, 15, 5, 252, 250, 252, 5, 17,
-			24, 23, 17, 16, 16, 1, 249, 251, 12, 14, 15, 0, 202, 203, 239, 22, 13, 13, 15, 21, 16, 248, 226, 229, 3, 15, 11, 9, 15, 11,
-			2, 254, 249, 249, 253, 15, 16, 26, 20, 15, 2, 254, 2, 4, 5, 10, 34, 36, 37, 14, 8, 211, 132, 222, 36, 36, 38, 37, 30, 19,
-			239, 208, 198, 241, 19, 26, 39, 40, 26, 254, 243, 230, 226, 242, 8, 39, 45, 33, 16, 6, 214, 182, 225, 0, 12, 27, 28, 33, 25, 1,
-			230, 220, 239, 3, 13, 25, 31, 29, 11, 254, 242, 234, 236, 248, 18, 33, 25, 21, 2, 247, 249, 242, 246, 6, 22, 32, 27, 10, 251, 241,
-			241, 244, 248, 17, 23, 24, 24, 9, 245, 241, 247, 244, 6, 12, 17, 24, 12, 6, 251, 242, 245, 248, 5, 16, 17, 16, 12, 2, 251, 252,
-			2, 1, 6, 2, 15, 19, 4, 252, 254, 245, 5, 15, 19, 15, 9, 8, 7, 254, 252, 9, 7, 16, 10, 6, 10, 15, 10, 0, 7, 217,
-			176, 205, 199, 227, 27, 48, 38, 36, 244, 223, 206, 214, 234, 9, 39, 54, 49, 12, 0, 244, 245, 0, 18, 31, 35, 56, 54, 29, 248, 2,
-			21, 248, 235, 11, 249, 217, 8, 32, 4, 232, 232, 242, 243, 10, 16, 16, 21, 46, 246, 180, 209, 244, 2, 11, 24, 5, 253, 232, 240, 251,
-			10, 33, 34, 28, 8, 247, 230, 231, 230, 233, 252, 7, 30, 18, 7, 241, 238, 250, 251, 254, 15, 32, 33, 17, 6, 7, 251, 0, 16, 12,
-			241, 242, 251, 10, 17, 20, 23, 13, 3, 12, 9, 243, 255, 19, 22, 18, 15, 255, 2, 10, 2, 16, 15, 15, 17, 19, 11, 11, 20, 15,
-			8, 17, 24, 12, 0, 4, 248, 254, 252, 251, 0, 0, 2, 1, 253, 4, 254, 245, 253, 14, 12, 6, 10, 6, 3, 0, 251, 253, 2, 21,
-			30, 9, 8, 0, 0, 2, 9, 4, 0, 8, 7, 19, 11, 8, 10, 10, 6, 251, 6, 20, 21, 18, 19, 3, 3, 255, 245, 248, 1, 7,
-			6, 0, 5, 12, 3, 8, 8, 246, 248, 14, 21, 16, 5, 4, 3, 0, 255, 1, 0, 12, 18, 8, 254, 250, 237, 245, 15, 13, 254, 246,
-			254, 15, 1, 230, 229, 246, 6, 0, 246, 250, 253, 238, 225, 234, 10, 11, 8, 15, 17, 12, 0, 231, 237, 10, 32, 45, 25, 242, 235, 11,
-			32, 28, 4, 7, 19, 29, 25, 255, 237, 9, 22, 6, 250, 6, 21, 3, 241, 245, 2, 252, 244, 247, 243, 0, 5, 1, 2, 254, 243, 248,
-			254, 254, 16, 11, 2, 8, 14, 10, 250, 229, 255, 20, 12, 7, 9, 21, 18, 249, 250, 10, 13, 14, 6, 255, 4, 15, 3, 243, 251, 4,
-			0, 252, 225, 226, 244, 4, 17, 11, 6, 9, 4, 243, 217, 229, 8, 28, 32, 26, 15, 1, 248, 239, 246, 255, 8, 19, 19, 14, 254, 250,
-			247, 253, 21, 38, 29, 254, 254, 249, 234, 236, 255, 12, 14, 6, 250, 246, 242, 236, 248, 14, 15, 2, 7, 249, 235, 243, 8, 5, 4, 2,
-			254, 7, 28, 14, 5, 26, 33, 18, 251, 246, 240, 249, 11, 24, 21, 14, 8, 249, 235, 242, 248, 1, 8, 4, 16, 17, 255, 239, 221, 240,
-			1, 1, 8, 24, 18, 255, 234, 228, 241, 7, 30, 33, 18, 1, 239, 240, 4, 30, 18, 244, 245, 4, 4, 15, 11, 252, 15, 34, 20, 244,
-			253, 12, 27, 32, 27, 245, 246, 19, 20, 8, 247, 239, 238, 1, 20, 21, 10, 251, 251, 255, 3, 0, 249, 254, 254, 7, 9, 18, 4, 251,
-			247, 245, 4, 19, 5, 239, 2, 31, 39, 14, 240, 238, 254, 250, 0, 31, 34, 25, 7, 255, 254, 238, 237, 252, 31, 54, 42, 26, 247, 251,
-			246, 239, 245, 32, 60, 51, 12, 241, 232, 233, 239, 244, 23, 32, 19, 3, 246, 238, 229, 233, 245, 2, 16, 13, 245, 244, 7, 0, 239, 244,
-			254, 13, 13, 253, 0, 18, 13, 1, 249, 6, 28, 6, 0, 18, 31, 19, 7, 9, 7, 243, 244, 11, 32, 53, 24, 0, 3, 4, 244, 243,
-			9, 22, 2, 246, 10, 4, 243, 246, 245, 234, 238, 238, 255, 255, 2, 255, 9, 12, 6, 241, 235, 255, 27, 34, 21, 9, 23, 38, 13, 1,
-			6, 9, 14, 19, 22, 6, 255, 10, 7, 3, 3, 1, 2, 250, 1, 17, 9, 254, 248, 250, 251, 248, 252, 2, 1, 240, 244, 242, 255, 1,
-			6, 4, 254, 255, 244, 239, 239, 0, 26, 27, 252, 255, 23, 25, 8, 0, 1, 11, 27, 31, 21, 2, 7, 21, 1, 2, 6, 252, 7, 19,
-			7, 240, 243, 0, 250, 240, 243, 0, 1, 242, 234, 249, 5, 255, 247, 254, 254, 7, 15, 250, 221, 237, 13, 18, 1, 253, 4, 10, 15, 15,
-			17, 11, 9, 249, 1, 16, 34, 32, 26, 12, 250, 244, 1, 8, 17, 14, 0, 253, 2, 252, 246, 255, 1, 246, 241, 237, 232, 247, 7, 14,
-			4, 245, 241, 243, 243, 244, 251, 2, 10, 5, 251, 242, 252, 14, 7, 4, 0, 10, 25, 5, 251, 4, 12, 27, 24, 3, 255, 0, 248, 252,
-			7, 14, 253, 250, 255, 249, 251, 254, 249, 253, 255, 242, 250, 8, 16, 2, 238, 243, 0, 14, 19, 3, 251, 5, 15, 10, 253, 252, 6, 16,
-			27, 23, 3, 252, 15, 27, 6, 249, 5, 24, 24, 24, 19, 11, 7, 10, 10, 4, 4, 5, 4, 7, 12, 15, 13, 0, 0, 9, 12, 8,
-			4, 253, 250, 12, 11, 4, 2, 252, 4, 15, 16, 0, 245, 0, 5, 2, 255, 11, 10, 2, 13, 4, 244, 1, 17, 23, 15, 17, 12, 239,
-			240, 14, 25, 16, 15, 6, 245, 241, 4, 14, 254, 3, 26, 19, 2, 247, 247, 0, 247, 250, 6, 8, 249, 235, 253, 7, 1, 0, 248, 240,
-			248, 8, 14, 5, 3, 7, 2, 247, 249, 0, 10, 19, 19, 24, 18, 254, 245, 248, 255, 17, 30, 23, 10, 13, 7, 245, 254, 8, 3, 0,
-			14, 22, 15, 9, 255, 248, 255, 7, 0, 248, 253, 252, 7, 13, 254, 241, 245, 249, 248, 241, 12, 28, 15, 253, 0, 253, 238, 241, 1, 14,
-			6, 5, 14, 17, 10, 3, 0, 0, 246, 250, 250, 249, 10, 33, 38, 16, 246, 228, 228, 235, 255, 11, 26, 35, 252, 210, 233, 9, 5, 4,
-			6, 250, 232, 249, 11, 19, 20, 14, 249, 240, 237, 248, 254, 1, 13, 28, 50, 51, 18, 233, 229, 252, 11, 21, 36, 45, 33, 23, 30, 21,
-			3, 255, 8, 15, 38, 40, 22, 8, 10, 10, 2, 248, 0, 23, 50, 43, 6, 245, 0, 11, 6, 11, 36, 41, 21, 22, 9, 240, 0, 13,
-			17, 35, 44, 27, 245, 227, 248, 5, 19, 40, 32, 8, 252, 241, 229, 230, 249, 19, 23, 9, 251, 239, 240, 234, 234, 241, 232, 233, 102, 1,
-			41, 0, 0, 2, 5, 5, 3, 1, 6, 6, 3, 1, 6, 10, 4, 246, 229, 206, 184, 183, 209, 247, 22, 31, 26, 21, 37, 59, 61, 48,
-			21, 248, 216, 176, 160, 168, 181, 192, 222, 6, 44, 63, 76, 80, 81, 84, 79, 65, 40, 250, 140, 132, 192, 248, 218, 166, 183, 1, 35, 21,
-			53, 61, 25, 2, 11, 7, 210, 168, 169, 202, 210, 208, 208, 206, 244, 22, 54, 62, 50, 37, 38, 47, 33, 4, 241, 227, 226, 234, 233, 232,
-			229, 233, 253, 14, 25, 19, 19, 23, 13, 0, 3, 236, 237, 230, 239, 239, 238, 233, 242, 14, 16, 28, 24, 31, 34, 36, 27, 16, 2, 252,
-			247, 248, 254, 254, 1, 13, 23, 28, 30, 34, 27, 33, 35, 29, 9, 250, 249, 253, 248, 238, 235, 249, 8, 9, 21, 11, 255, 254, 8, 17,
-			8, 6, 5, 1, 249, 241, 236, 241, 248, 1, 5, 8, 253, 252, 0, 10, 12, 14, 8, 2, 0, 250, 0, 4, 251, 233, 244, 255, 9, 7,
-			255, 248, 247, 250, 255, 1, 251, 241, 246, 254, 1, 251, 243, 246, 254, 7, 13, 10, 0, 251, 251, 0, 255, 246, 234, 236, 243, 246, 248, 247,
-			1, 0, 8, 21, 24, 253, 250, 0, 10, 252, 245, 245, 244, 238, 237, 0, 253, 252, 244, 248, 245, 0, 4, 8, 251, 4, 12, 11, 7, 17,
-			31, 29, 23, 12, 17, 18, 15, 9, 10, 254, 1, 5, 12, 17, 27, 21, 17, 31, 48, 48, 33, 29, 27, 31, 20, 19, 17, 17, 11, 14,
-			17, 15, 14, 7, 255, 246, 250, 243, 240, 233, 232, 232, 231, 232, 229, 231, 233, 227, 233, 240, 249, 249, 248, 246, 251, 251, 251, 252, 1, 0,
-			253, 254, 254, 253, 251, 255, 250, 246, 243, 245, 248, 244, 235, 229, 224, 223, 221, 225, 227, 228, 235, 244, 251, 250, 248, 248, 251, 252, 255, 249,
-			245, 238, 236, 238, 230, 223, 222, 224, 233, 247, 244, 245, 251, 2, 1, 245, 246, 248, 252, 255, 13, 26, 19, 5, 243, 245, 2, 11, 11, 10,
-			0, 0, 27, 1, 19, 0, 4, 4, 5, 5, 6, 7, 8, 10, 13, 17, 23, 53, 94, 45, 40, 70, 104, 120, 65, 36, 65, 76, 65, 27,
-			255, 253, 7, 233, 207, 216, 190, 192, 190, 173, 190, 190, 185, 189, 197, 220, 240, 219, 219, 7, 13, 14, 7, 7, 36, 44, 15, 7, 35, 21,
-			13, 247, 0, 11, 242, 217, 236, 233, 219, 215, 212, 222, 229, 198, 216, 240, 228, 234, 233, 226, 0, 16, 248, 245, 0, 24, 24, 244, 9, 21,
-			0, 250, 10, 250, 251, 247, 227, 241, 238, 244, 225, 200, 249, 20, 226, 195, 246, 14, 253, 240, 246, 11, 33, 59, 23, 6, 48, 69, 60, 17,
-			45, 86, 46, 12, 47, 103, 79, 49, 8, 70, 100, 68, 22, 11, 42, 49, 3, 237, 1, 254, 206, 219, 227, 228, 206, 185, 205, 213, 227, 216,
-			218, 188, 255, 3, 237, 225, 12, 33, 0, 241, 23, 60, 14, 231, 16, 41, 28, 247, 244, 244, 20, 248, 225, 229, 245, 243, 214, 220, 252, 3,
-			205, 209, 7, 28, 14, 250, 247, 33, 45, 37, 5, 9, 28, 38, 17, 35, 38, 0, 0, 34, 47, 1, 239, 239, 12, 0, 238, 219, 224, 238,
-			230, 217, 221, 239, 235, 216, 228, 253, 253, 229, 238, 252, 255, 245, 246, 255, 253, 247, 238, 255, 6, 4, 241, 245, 10, 20, 14, 3, 7, 18,
-			25, 29, 22, 20, 21, 21, 24, 30, 23, 13, 5, 14, 29, 24, 0, 5, 14, 21, 13, 12, 3, 12, 9, 13, 7, 7, 6, 3, 4, 7,
-			11, 1, 3, 254, 13, 15, 9, 0, 12, 14, 17, 6, 10, 11, 17, 10, 1, 7, 12, 0, 202, 10, 6, 0, 5, 13, 51, 44, 21, 20,
-			8, 251, 242, 255, 3, 249, 230, 210, 223, 245, 245, 11, 19, 17, 49, 48, 16, 11, 7, 248, 236, 206, 183, 229, 246, 7, 22, 23, 33, 37,
-			41, 22, 250, 244, 254, 233, 214, 213, 250, 5, 21, 22, 11, 15, 255, 0, 255, 251, 6, 19, 12, 231, 229, 245, 239, 246, 0, 33, 9, 12,
-			14, 248, 0, 12, 2, 11, 27, 6, 243, 231, 226, 249, 199, 245, 20, 48, 54, 4, 235, 252, 254, 233, 236, 15, 6, 1, 0, 11, 18, 10,
-			10, 255, 240, 246, 7, 6, 243, 247, 238, 220, 13, 25, 19, 13, 23, 35, 250, 197, 226, 249, 10, 22, 0, 0, 255, 14, 21, 13, 237, 238,
-			216, 244, 16, 21, 52, 24, 4, 229, 242, 244, 2, 252, 250, 249, 6, 248, 242, 240, 6, 245, 8, 18, 13, 54, 0, 27, 29, 231, 192, 199,
-			21, 21, 9, 7, 16, 244, 235, 2, 30, 0, 250, 5, 253, 244, 234, 250, 238, 248, 13, 15, 24, 4, 25, 40, 3, 2, 251, 229, 217, 230,
-			7, 7, 23, 247, 249, 243, 30, 36, 9, 26, 229, 198, 217, 220, 250, 13, 29, 24, 32, 13, 7, 40, 36, 255, 15, 1, 219, 222, 219, 207,
-			221, 251, 37, 26, 14, 4, 27, 219, 230, 19, 10, 36, 5, 26, 9, 229, 234, 14, 14, 6, 8, 0, 10, 239, 204, 239, 227, 237, 29, 22,
-			13, 29, 41, 22, 228, 236, 244, 0, 244, 255, 240, 246, 254, 11, 240, 19, 43, 28, 20, 235, 14, 246, 252, 227, 220, 11, 252, 232, 15, 10,
-			23, 19, 243, 235, 0, 242, 8, 0, 250, 33, 248, 15, 15, 255, 226, 7, 15, 2, 11, 44, 32, 11, 222, 198, 229, 229, 193, 225, 25, 33,
-			35, 13, 30, 27, 234, 3, 30, 24, 14, 238, 218, 236, 12, 246, 11, 22, 15, 3, 251, 235, 255, 226, 214, 227, 11, 255, 6, 0, 18, 59,
-			49, 252, 233, 0, 31, 27, 247, 239, 234, 239, 219, 246, 15, 18, 254, 233, 250, 39, 28, 240, 235, 222, 4, 252, 12, 1, 7, 43, 250, 15,
-			6, 1, 11, 231, 0, 246, 247, 13, 16, 38, 251, 244, 214, 211, 228, 198, 34, 39, 27, 16, 5, 226, 31, 59, 28, 43, 22, 251, 192, 215,
-			211, 191, 230, 3, 8, 7, 59, 25, 52, 27, 240, 4, 236, 14, 0, 240, 235, 237, 234, 226, 188, 4, 82, 55, 26, 24, 12, 236, 241, 14,
-			2, 250, 208, 209, 235, 13, 38, 44, 7, 249, 247, 221, 225, 241, 72, 44, 17, 13, 238, 197, 213, 250, 26, 32, 5, 19, 228, 12, 46, 231,
-			241, 244, 16, 255, 235, 240, 251, 239, 221, 17, 42, 33, 45, 26, 15, 210, 230, 5, 244, 194, 11, 11, 22, 2, 254, 246, 3, 6, 9, 33,
-			24, 3, 237, 212, 236, 254, 18, 222, 25, 60, 1, 212, 224, 253, 2, 58, 14, 42, 254, 218, 6, 250, 32, 231, 190, 230, 3, 248, 6, 16,
-			242, 23, 42, 5, 35, 39, 3, 3, 235, 230, 203, 231, 220, 11, 54, 43, 241, 241, 2, 221, 239, 10, 18, 2, 22, 7, 251, 24, 27, 11,
-			240, 0, 31, 28, 16, 166, 168, 201, 242, 231, 250, 90, 73, 2, 9, 29, 15, 250, 249, 9, 52, 35, 251, 218, 174, 186, 19, 35, 0, 232,
-			220, 223, 197, 10, 44, 80, 39, 29, 50, 254, 8, 54, 253, 204, 241, 239, 201, 249, 220, 0, 240, 19, 29, 252, 254, 248, 12, 253, 219, 242,
-			34, 19, 18, 9, 6, 61, 63, 3, 222, 223, 249, 252, 231, 232, 4, 252, 205, 249, 255, 253, 45, 14, 207, 214, 15, 14, 20, 29, 28, 80,
-			37, 253, 243, 220, 3, 3, 220, 4, 217, 9, 248, 193, 242, 30, 44, 20, 207, 173, 9, 87, 249, 254, 45, 9, 4, 29, 39, 14, 36, 228,
-			175, 234, 232, 241, 230, 203, 31, 90, 56, 249, 213, 11, 13, 7, 238, 7, 10, 186, 174, 235, 37, 9, 28, 38, 54, 30, 26, 29, 2, 250,
-			252, 240, 216, 0, 240, 226, 164, 210, 240, 68, 41, 23, 68, 3, 214, 238, 22, 26, 246, 2, 232, 14, 223, 14, 32, 8, 18, 228, 24, 250,
-			37, 20, 242, 232, 222, 204, 225, 246, 219, 15, 29, 5, 11, 21, 22, 33, 29, 252, 14, 1, 31, 14, 232, 195, 14, 233, 20, 220, 214, 47,
-			24, 239, 241, 17, 243, 16, 238, 230, 7, 36, 232, 201, 251, 34, 68, 45, 33, 233, 2, 55, 247, 235, 195, 198, 211, 46, 42, 232, 24, 237,
-			241, 243, 13, 26, 32, 235, 211, 237, 1, 5, 248, 45, 5, 41, 16, 20, 18, 229, 29, 40, 235, 216, 227, 214, 214, 9, 15, 2, 241, 199,
-			19, 35, 11, 248, 1, 22, 238, 32, 32, 0, 26, 18, 34, 245, 23, 34, 235, 182, 205, 8, 235, 242, 242, 210, 222, 21, 8, 252, 22, 38,
-			60, 20, 254, 23, 33, 5, 219, 9, 15, 62, 241, 181, 245, 230, 228, 0, 214, 218, 16, 237, 255, 50, 67, 7, 249, 254, 7, 6, 242, 48,
-			31, 228, 225, 48, 223, 230, 10, 16, 19, 253, 230, 207, 235, 39, 36, 225, 218, 246, 254, 254, 226, 248, 63, 33, 33, 61, 35, 0, 28, 224,
-			192, 227, 4, 41, 230, 221, 212, 235, 226, 250, 247, 250, 59, 19, 13, 4, 16, 80, 70, 10, 17, 27, 209, 151, 148, 195, 1, 51, 21, 15,
-			24, 66, 10, 229, 236, 23, 31, 189, 219, 224, 11, 28, 8, 50, 35, 22, 1, 12, 15, 228, 249, 233, 189, 248, 249, 227, 220, 16, 42, 0,
-			243, 31, 79, 15, 24, 242, 14, 33, 251, 203, 242, 222, 246, 25, 208, 2, 225, 242, 7, 236, 45, 47, 236, 24, 60, 3, 2, 4, 230, 12,
-			246, 178, 6, 36, 2, 206, 231, 77, 19, 250, 10, 7, 254, 214, 233, 0, 5, 8, 15, 223, 245, 12, 65, 249, 234, 26, 53, 16, 226, 6,
-			228, 223, 9, 25, 207, 237, 227, 245, 14, 251, 25, 12, 29, 14, 238, 209, 40, 87, 5, 24, 254, 7, 220, 216, 177, 230, 26, 35, 26, 192,
-			249, 47, 11, 226, 12, 41, 0, 42, 242, 246, 255, 10, 11, 230, 222, 204, 246, 28, 12, 3, 53, 62, 7, 242, 240, 1, 238, 233, 211, 213,
-			13, 247, 4, 13, 23, 68, 16, 217, 252, 7, 245, 2, 236, 253, 42, 15, 47, 14, 26, 249, 204, 192, 193, 220, 230, 2, 22, 255, 28, 65,
-			60, 29, 254, 27, 25, 0, 218, 237, 199, 136, 228, 33, 69, 58, 60, 54, 224, 224, 229, 250, 233, 185, 220, 248, 47, 249, 49, 35, 30, 6,
-			19, 17, 225, 209, 240, 0, 4, 1, 250, 12, 31, 84, 4, 231, 223, 242, 195, 186, 250, 50, 22, 231, 0, 20, 8, 229, 2, 29, 51, 53,
-			250, 7, 1, 41, 3, 224, 241, 205, 193, 38, 232, 234, 18, 219, 189, 4, 57, 32, 73, 40, 26, 237, 228, 192, 252, 254, 2, 32, 28, 49,
-			35, 236, 251, 234, 207, 0, 255, 252, 220, 11, 222, 201, 250, 243, 236, 55, 70, 57, 13, 26, 4, 213, 72, 49, 14, 23, 173, 169, 212, 237,
-			240, 172, 253, 55, 74, 54, 60, 219, 179, 177, 220, 41, 123, 76, 250, 243, 30, 234, 0, 0, 3, 202, 218, 0, 8, 242, 219, 232, 246, 52,
-			26, 11, 16, 252, 230, 16, 6, 6, 18, 242, 1, 29, 65, 30, 210, 209, 214, 13, 207, 201, 27, 7, 255, 51, 33, 252, 244, 25, 20, 239,
-			249, 220, 193, 56, 65, 238, 242, 2, 4, 2, 44, 5, 245, 224, 219, 248, 29, 5, 184, 241, 72, 57, 238, 233, 230, 219, 28, 25, 255, 13,
-			7, 20, 4, 18, 3, 247, 20, 230, 21, 43, 209, 205, 238, 206, 177, 233, 82, 9, 53, 47, 8, 16, 5, 9, 234, 20, 37, 11, 228, 242,
-			229, 229, 224, 214, 17, 14, 10, 35, 21, 237, 253, 233, 8, 253, 28, 21, 204, 231, 31, 46, 56, 240, 3, 246, 233, 248, 230, 4, 251, 249,
-			14, 6, 3, 216, 23, 10, 216, 22, 246, 206, 66, 2, 216, 79, 76, 241, 226, 53, 6, 160, 175, 253, 20, 49, 10, 226, 253, 30, 247, 12,
-			240, 253, 1, 5, 245, 216, 2, 83, 34, 29, 27, 238, 216, 185, 237, 8, 54, 16, 203, 177, 14, 27, 13, 45, 246, 241, 13, 22, 6, 42,
-			14, 216, 249, 18, 35, 222, 1, 226, 4, 197, 231, 14, 240, 20, 240, 222, 95, 73, 230, 226, 1, 3, 15, 20, 253, 221, 69, 47, 238, 188,
-			239, 216, 201, 247, 243, 45, 17, 28, 31, 14, 242, 13, 223, 41, 31, 225, 255, 226, 211, 215, 47, 50, 26, 50, 255, 232, 246, 27, 166, 227,
-			14, 251, 245, 249, 10, 37, 21, 248, 2, 20, 21, 38, 191, 191, 29, 57, 214, 255, 16, 8, 18, 5, 0, 242, 1, 249, 243, 255, 247, 20,
-			253, 221, 219, 44, 11, 213, 244, 3, 50, 85, 23, 218, 221, 255, 27, 19, 27, 221, 221, 18, 230, 252, 249, 10, 250, 205, 7, 227, 239, 19,
-			58, 22, 18, 33, 247, 199, 248, 46, 65, 28, 8, 224, 236, 230, 187, 250, 237, 19, 29, 226, 220, 5, 25, 241, 13, 13, 38, 42, 31, 240,
-			248, 30, 5, 223, 12, 247, 162, 237, 24, 30, 39, 240, 7, 0, 203, 225, 246, 8, 28, 50, 38, 236, 254, 28, 247, 247, 250, 9, 11, 250,
-			204, 218, 62, 232, 238, 32, 6, 25, 235, 225, 37, 40, 49, 160, 194, 12, 40, 14, 11, 245, 6, 240, 237, 35, 241, 39, 9, 230, 15, 41,
-			247, 223, 223, 208, 11, 43, 6, 21, 236, 0, 8, 1, 255, 242, 6, 25, 6, 216, 241, 237, 252, 39, 7, 33, 0, 28, 39, 16, 231, 205,
-			235, 176, 218, 24, 47, 39, 222, 5, 20, 21, 47, 232, 189, 14, 28, 7, 34, 25, 225, 13, 228, 232, 16, 7, 214, 249, 43, 240, 206, 240,
-			0, 246, 10, 26, 47, 34, 55, 15, 249, 3, 245, 244, 208, 214, 237, 15, 2, 210, 202, 6, 35, 80, 68, 3, 252, 202, 19, 19, 193, 28,
-			36, 234, 235, 228, 244, 6, 242, 18, 67, 39, 246, 222, 5, 229, 9, 253, 231, 249, 225, 244, 2, 43, 6, 22, 28, 244, 48, 249, 223, 0,
-			239, 12, 233, 253, 23, 13, 248, 191, 239, 68, 19, 28, 219, 205, 2, 33, 35, 8, 251, 3, 242, 239, 244, 23, 245, 222, 217, 19, 16, 10,
-			51, 49, 32, 7, 225, 182, 209, 58, 21, 240, 210, 9, 19, 217, 2, 253, 4, 20, 58, 211, 253, 33, 28, 2, 182, 33, 80, 236, 236, 185,
-			236, 254, 6, 10, 73, 40, 248, 194, 251, 1, 26, 20, 193, 220, 202, 10, 66, 253, 30, 70, 6, 240, 228, 239, 26, 53, 205, 3, 22, 222,
-			228, 242, 247, 22, 237, 10, 234, 236, 3, 21, 41, 40, 249, 12, 235, 233, 20, 22, 29, 243, 224, 233, 16, 212, 228, 49, 234, 56, 11, 6,
-			230, 221, 4, 251, 199, 57, 45, 228, 58, 18, 234, 230, 239, 14, 5, 237, 38, 24, 237, 225, 243, 198, 29, 35, 30, 244, 225, 249, 237, 66,
-			218, 23, 14, 237, 247, 19, 62, 33, 244, 207, 0, 228, 234, 2, 234, 236, 22, 2, 242, 3, 236, 25, 38, 53, 43, 247, 210, 255, 23, 206,
-			226, 8, 27, 35, 236, 7, 16, 213, 240, 253, 194, 31, 20, 0, 240, 227, 37, 9, 29, 53, 76, 4, 204, 22, 228, 187, 14, 226, 0, 247,
-			247, 8, 242, 233, 251, 0, 238, 48, 50, 46, 45, 13, 221, 202, 236, 2, 21, 61, 10, 224, 233, 150, 205, 25, 1, 12, 45, 82, 9, 8,
-			252, 239, 255, 253, 5, 190, 254, 252, 18, 39, 0, 27, 4, 204, 1, 16, 8, 26, 237, 210, 236, 23, 9, 21, 225, 236, 243, 255, 70, 32,
-			0, 247, 29, 24, 210, 248, 44, 213, 232, 213, 181, 33, 48, 11, 15, 19, 14, 251, 5, 5, 224, 19, 3, 221, 9, 59, 240, 254, 11, 209,
-			5, 1, 239, 244, 22, 13, 247, 27, 255, 0, 24, 229, 42, 236, 215, 213, 18, 13, 240, 7, 6, 48, 231, 36, 45, 19, 208, 223, 241, 212,
-			4, 4, 35, 31, 29, 2, 249, 247, 225, 251, 240, 213, 248, 7, 4, 246, 50, 65, 252, 243, 19, 8, 18, 12, 215, 239, 241, 34, 247, 214,
-			228, 238, 2, 40, 20, 228, 0, 247, 31, 7, 226, 2, 4, 35, 51, 35, 0, 8, 208, 191, 9, 16, 17, 248, 233, 249, 237, 230, 229, 243,
-			46, 50, 25, 244, 253, 24, 235, 49, 9, 255, 232, 30, 243, 201, 5, 243, 14, 211, 250, 41, 242, 29, 236, 6, 240, 23, 255, 225, 19, 33,
-			24, 29, 12, 5, 215, 199, 223, 20, 11, 12, 0, 238, 5, 25, 31, 245, 255, 16, 6, 236, 248, 195, 226, 247, 254, 76, 53, 249, 10, 16,
-			43, 252, 248, 240, 153, 197, 19, 235, 40, 80, 42, 16, 224, 236, 198, 3, 249, 232, 42, 1, 30, 245, 1, 25, 253, 29, 41, 244, 214, 10,
-			226, 219, 3, 199, 235, 32, 45, 52, 34, 248, 240, 207, 242, 56, 24, 238, 247, 236, 3, 3, 193, 2, 8, 15, 38, 50, 15, 226, 229, 3,
-			32, 22, 249, 212, 225, 231, 254, 26, 252, 251, 254, 21, 4, 22, 241, 254, 0, 248, 39, 28, 14, 247, 249, 3, 235, 7, 244, 224, 20, 247,
-			227, 242, 241, 29, 247, 249, 36, 38, 23, 207, 233, 14, 255, 68, 69, 218, 238, 238, 226, 4, 246, 18, 249, 216, 209, 198, 0, 99, 39, 23,
-			53, 239, 13, 243, 186, 251, 20, 248, 239, 240, 241, 29, 28, 45, 21, 252, 226, 209, 252, 8, 22, 6, 11, 237, 245, 3, 201, 253, 254, 251,
-			55, 32, 10, 60, 2, 243, 250, 227, 17, 223, 211, 246, 210, 249, 56, 4, 4, 33, 37, 20, 245, 5, 246, 218, 204, 14, 17, 10, 28, 4,
-			0, 0, 250, 253, 239, 233, 28, 7, 0, 254, 247, 2, 0, 253, 19, 43, 243, 235, 1, 254, 225, 246, 232, 15, 59, 0, 1, 15, 246, 21,
-			212, 238, 253, 2, 9, 7, 18, 22, 13, 230, 25, 245, 225, 223, 241, 248, 247, 52, 11, 31, 7, 234, 240, 19, 28, 3, 18, 253, 228, 236,
-			223, 253, 2, 233, 3, 21, 32, 255, 11, 35, 247, 1, 249, 237, 221, 243, 2, 11, 249, 1, 35, 20, 8, 1, 13, 39, 242, 246, 254, 187,
-			233, 0, 251, 19, 247, 0, 19, 239, 239, 32, 12, 28, 41, 6, 21, 210, 255, 224, 208, 39, 25, 24, 9, 209, 218, 250, 233, 15, 32, 30,
-			15, 2, 254, 226, 233, 239, 250, 46, 32, 1, 22, 225, 248, 24, 3, 252, 248, 5, 22, 215, 220, 254, 236, 13, 13, 10, 21, 11, 3, 17,
-			249, 251, 9, 240, 230, 16, 10, 35, 214, 245, 255, 225, 4, 16, 49, 6, 6, 244, 37, 22, 203, 221, 247, 6, 247, 1, 235, 16, 36, 0,
-			0, 239, 233, 234, 27, 12, 44, 37, 5, 251, 217, 233, 14, 42, 232, 239, 8, 249, 226, 228, 9, 6, 25, 254, 24, 248, 234, 227, 252, 24,
-			8, 31, 16, 42, 11, 239, 240, 0, 251, 245, 242, 8, 252, 240, 231, 238, 3, 14, 10, 250, 7, 11, 7, 246, 11, 2, 7, 0, 24, 39,
-			254, 2, 250, 244, 235, 246, 241, 220, 13, 20, 10, 243, 232, 248, 8, 7, 0, 250, 34, 25, 0, 4, 251, 28, 253, 10, 1, 2, 251, 221,
-			228, 218, 2, 38, 6, 255, 16, 3, 244, 248, 234, 34, 18, 1, 2, 0, 247, 7, 251, 255, 17, 245, 248, 244, 5, 17, 0, 244, 6, 2,
-			243, 0, 242, 27, 20, 4, 255, 5, 5, 255, 224, 219, 241, 1, 16, 12, 7, 28, 251, 15, 39, 7, 230, 243, 0, 8, 253, 244, 0, 230,
-			239, 252, 236, 23, 47, 12, 246, 238, 249, 12, 231, 21, 38, 10, 12, 10, 233, 216, 233, 4, 6, 13, 7, 0, 1, 254, 0, 0, 233, 7,
-			15, 0, 2, 5, 24, 14, 23, 15, 18, 18, 22, 19, 26, 21, 27, 28, 17, 24, 30, 26, 17, 23, 26, 30, 31, 17, 28, 21, 16, 12,
-			29, 40, 4, 36, 18, 26, 31, 11, 21, 16, 29, 4, 19, 16, 20, 24, 7, 26, 14, 27, 8, 9, 11, 17, 23, 254, 22, 16, 24, 16,
-			18, 12, 253, 30, 1, 21, 18, 17, 28, 21, 14, 27, 23, 23, 14, 35, 33, 31, 27, 27, 25, 23, 13, 16, 33, 27, 3, 20, 12, 9,
-			36, 34, 20, 28, 13, 18, 12, 252, 20, 17, 8, 4, 13, 9, 2, 53, 18, 11, 14, 0, 0, 251, 20, 21, 16, 7, 0, 11, 22, 17,
-			27, 18, 14, 6, 8, 24, 23, 4, 32, 17, 26, 16, 24, 16, 28, 34, 15, 21, 33, 33, 26, 28, 3, 26, 21, 7, 34, 50, 18, 25,
-			4, 19, 37, 20, 19, 4, 20, 29, 9, 25, 21, 35, 23, 22, 9, 4, 23, 248, 30, 21, 18, 9, 8, 3, 29, 20, 10, 14, 13, 4,
-			9, 12, 27, 22, 0, 8, 10, 4, 4, 12, 20, 18, 20, 1, 20, 22, 12, 30, 9, 20, 27, 0, 11, 16, 34, 23, 37, 1, 33, 19,
-			11, 22, 11, 33, 14, 10, 25, 20, 21, 24, 1, 8, 29, 11, 14, 26, 19, 5, 13, 15, 17, 4, 14, 5, 4, 10, 11, 17, 4, 11,
-			17, 245, 11, 25, 8, 15, 3, 8, 10, 0, 18, 11, 14, 28, 31, 21, 7, 30, 11, 18, 34, 17, 42, 7, 9, 5, 9, 19, 11, 37,
-			13, 26, 31, 7, 20, 4, 30, 19, 28, 8, 16, 11, 30, 20, 5, 19, 17, 17, 5, 0, 2, 20, 10, 11, 25, 7, 26, 7, 10, 6,
-			15, 25, 7, 6, 7, 253, 21, 9, 16, 22, 27, 2, 18, 28, 5, 15, 12, 2, 23, 14, 37, 15, 10, 26, 14, 8, 21, 28, 12, 26,
-			9, 37, 21, 10, 30, 20, 13, 28, 30, 6, 17, 8, 4, 21, 6, 26, 27, 10, 23, 14, 14, 23, 11, 0, 12, 7, 10, 19, 14, 248,
-			18, 10, 1, 1, 2, 28, 14, 254, 4, 12, 9, 7, 17, 16, 27, 15, 3, 10, 31, 0, 11, 35, 11, 4, 19, 38, 23, 8, 13, 31,
-			18, 24, 18, 26, 32, 12, 26, 14, 24, 29, 11, 29, 13, 8, 21, 9, 4, 13, 19, 20, 8, 17, 17, 0, 10, 11, 11, 5, 1, 9,
-			0, 255, 10, 8, 8, 22, 4, 8, 20, 6, 252, 14, 25, 8, 24, 11, 19, 39, 30, 11, 34, 13, 11, 25, 3, 23, 38, 28, 40, 12,
-			27, 36, 11, 13, 24, 33, 20, 12, 26, 251, 35, 250, 8, 20, 18, 9, 0, 20, 4, 15, 13, 5, 250, 21, 0, 7, 2, 3, 9, 5,
-			0, 9, 20, 29, 0, 248, 15, 253, 10, 28, 33, 15, 14, 6, 13, 25, 29, 18, 3, 32, 44, 19, 22, 38, 5, 15, 24, 35, 7, 22,
-			24, 25, 26, 13, 8, 19, 31, 251, 10, 7, 237, 11, 247, 28, 1, 0, 13, 3, 2, 26, 2, 252, 13, 2, 17, 13, 5, 244, 1, 1,
-			9, 18, 15, 9, 12, 0, 41, 26, 22, 17, 0, 251, 13, 37, 22, 9, 1, 14, 58, 3, 20, 21, 13, 29, 16, 2, 41, 31, 0, 29,
-			18, 16, 18, 2, 24, 15, 10, 31, 253, 0, 27, 4, 37, 9, 1, 20, 3, 12, 9, 0, 11, 28, 251, 253, 14, 20, 28, 34, 249, 7,
-			12, 19, 16, 3, 2, 31, 7, 4, 6, 7, 32, 27, 0, 12, 7, 20, 14, 1, 253, 1, 35, 16, 249, 5, 24, 16, 15, 33, 252, 13,
-			7, 13, 23, 251, 43, 47, 252, 33, 38, 13, 33, 34, 248, 24, 32, 13, 37, 32, 22, 31, 16, 6, 16, 24, 34, 12, 0, 25, 26, 22,
-			25, 13, 24, 24, 240, 14, 27, 244, 15, 25, 239, 254, 8, 235, 37, 15, 6, 13, 254, 2, 12, 33, 250, 9, 236, 243, 9, 233, 26, 22,
-			20, 6, 24, 252, 24, 23, 15, 39, 8, 14, 30, 251, 34, 39, 0, 17, 43, 29, 26, 45, 23, 254, 43, 9, 45, 37, 14, 24, 34, 251,
-			51, 38, 11, 21, 16, 14, 28, 41, 15, 21, 250, 31, 4, 14, 24, 0, 5, 17, 27, 27, 15, 7, 0, 28, 26, 13, 15, 7, 17, 4,
-			246, 34, 23, 10, 18, 14, 7, 1, 14, 7, 20, 3, 13, 252, 240, 16, 23, 0, 21, 6, 3, 250, 255, 27, 15, 249, 5, 14, 4, 252,
-			29, 254, 247, 44, 20, 1, 30, 29, 243, 57, 27, 20, 28, 250, 36, 18, 11, 54, 35, 34, 36, 26, 43, 61, 22, 44, 20, 13, 34, 46,
-			44, 27, 41, 39, 6, 27, 0, 55, 32, 22, 9, 8, 16, 240, 25, 255, 15, 18, 6, 250, 247, 29, 10, 238, 18, 8, 230, 235, 250, 246,
-			11, 14, 236, 23, 250, 5, 6, 21, 250, 22, 42, 252, 11, 31, 31, 21, 23, 253, 22, 3, 30, 3, 32, 32, 249, 28, 14, 8, 24, 24,
-			254, 247, 2, 242, 244, 10, 15, 37, 254, 9, 11, 255, 17, 6, 38, 30, 23, 21, 15, 15, 20, 53, 18, 45, 22, 248, 24, 21, 28, 11,
-			72, 39, 31, 42, 4, 49, 19, 37, 27, 25, 32, 8, 21, 20, 40, 41, 4, 25, 6, 253, 23, 10, 11, 246, 5, 4, 253, 37, 15, 232,
-			0, 17, 254, 240, 28, 32, 7, 25, 233, 228, 11, 252, 0, 33, 28, 248, 12, 0, 15, 20, 19, 19, 48, 6, 12, 9, 2, 32, 11, 27,
-			33, 47, 19, 250, 41, 25, 23, 42, 36, 15, 35, 35, 254, 11, 6, 18, 65, 16, 255, 11, 22, 50, 255, 220, 0, 37, 232, 0, 3, 225,
-			22, 236, 185, 58, 82, 55, 30, 245, 245, 31, 17, 36, 238, 6, 55, 16, 19, 16, 47, 54, 45, 29, 31, 18, 65, 14, 29, 23, 55, 66,
-			19, 28, 39, 16, 27, 19, 227, 21, 27, 10, 19, 1, 235, 57, 20, 231, 3, 242, 9, 20, 251, 4, 229, 255, 28, 14, 248, 2, 15, 0,
-			3, 242, 8, 14, 17, 17, 234, 249, 47, 55, 13, 249, 58, 30, 31, 48, 1, 253, 26, 31, 24, 17, 245, 251, 33, 253, 241, 17, 83, 28,
-			4, 50, 29, 34, 42, 8, 222, 33, 60, 6, 15, 255, 249, 25, 72, 250, 235, 35, 37, 29, 224, 241, 252, 0, 242, 4, 32, 38, 13, 240,
-			221, 227, 16, 32, 229, 19, 14, 242, 21, 252, 9, 17, 12, 57, 72, 0, 0, 37, 250, 32, 21, 11, 60, 49, 1, 26, 255, 25, 68, 27,
-			250, 53, 30, 17, 24, 13, 29, 46, 6, 11, 27, 225, 251, 30, 17, 0, 4, 26, 24, 251, 239, 30, 21, 238, 10, 246, 236, 45, 47, 25,
-			6, 5, 18, 59, 252, 245, 39, 31, 26, 0, 249, 25, 40, 39, 19, 236, 232, 54, 5, 236, 14, 22, 48, 5, 250, 16, 230, 10, 46, 11,
-			242, 5, 0, 19, 250, 210, 23, 39, 246, 248, 254, 255, 8, 20, 241, 12, 31, 6, 41, 214, 238, 19, 36, 18, 40, 47, 54, 17, 43, 26,
-			238, 32, 25, 23, 32, 21, 15, 51, 11, 33, 57, 40, 47, 28, 8, 10, 23, 51, 40, 6, 9, 25, 12, 25, 25, 251, 22, 33, 1, 254,
-			252, 237, 11, 254, 22, 3, 14, 35, 245, 241, 2, 28, 22, 5, 10, 253, 254, 6, 23, 15, 9, 24, 36, 14, 255, 236, 6, 24, 30, 12,
-			34, 25, 14, 10, 23, 8, 13, 13, 22, 22, 6, 55, 44, 245, 251, 17, 5, 25, 34, 33, 22, 36, 50, 18, 17, 15, 30, 71, 71, 28,
-			29, 28, 20, 13, 244, 31, 29, 31, 46, 3, 11, 45, 248, 22, 33, 246, 27, 14, 229, 225, 232, 250, 220, 242, 234, 159, 137, 200, 232, 245,
-			239, 240, 24, 15, 5, 47, 34, 18, 33, 62, 0, 13, 51, 53, 30, 32, 121, 76, 19, 50, 47, 49, 85, 253, 17, 91, 53, 71, 85, 68,
-			42, 50, 21, 25, 47, 39, 14, 239, 16, 37, 246, 249, 251, 31, 31, 0, 14, 35, 236, 249, 254, 20, 23, 17, 22, 5, 245, 253, 37, 15,
-			9, 17, 10, 23, 255, 232, 9, 6, 10, 26, 16, 20, 16, 24, 9, 10, 8, 36, 23, 254, 233, 45, 30, 249, 6, 253, 9, 35, 18, 255,
-			7, 37, 34, 14, 12, 14, 31, 254, 252, 18, 7, 26, 30, 15, 27, 42, 21, 25, 22, 0, 8, 21, 23, 2, 250, 246, 36, 239, 8, 61,
-			245, 4, 13, 246, 16, 34, 247, 251, 6, 250, 250, 2, 21, 21, 16, 251, 253, 13, 250, 5, 254, 14, 26, 7, 3, 242, 233, 244, 13, 46,
-			28, 12, 16, 16, 4, 21, 45, 44, 27, 7, 6, 7, 15, 28, 40, 10, 22, 63, 42, 19, 15, 252, 28, 33, 17, 21, 18, 26, 19, 10,
-			8, 23, 18, 14, 1, 251, 35, 12, 25, 7, 255, 37, 10, 20, 9, 20, 25, 0, 242, 0, 36, 21, 16, 7, 251, 254, 13, 29, 243, 0,
-			2, 4, 14, 19, 1, 232, 11, 15, 42, 29, 11, 18, 8, 11, 9, 255, 253, 28, 11, 23, 20, 14, 19, 21, 14, 4, 15, 54, 23, 16,
-			17, 13, 14, 42, 9, 14, 50, 24, 14, 30, 10, 23, 250, 21, 22, 249, 70, 0, 0, 36, 245, 42, 41, 17, 38, 33, 254, 7, 21, 11,
-			42, 4, 21, 21, 4, 41, 36, 7, 28, 23, 40, 55, 47, 23, 17, 19, 22, 32, 4, 25, 57, 43, 42, 9, 253, 16, 17, 7, 24, 19,
-			20, 8, 242, 10, 27, 24, 19, 19, 43, 34, 10, 9, 3, 3, 22, 31, 21, 17, 10, 17, 37, 17, 26, 42, 28, 32, 26, 15, 33, 24,
-			5, 15, 7, 17, 38, 16, 13, 3, 14, 27, 24, 3, 254, 252, 5, 18, 16, 250, 255, 9, 252, 246, 4, 25, 7, 14, 7, 5, 5, 10,
-			254, 238, 4, 1, 5, 0, 255, 27, 45, 32, 29, 20, 12, 24, 42, 12, 46, 16, 40, 52, 14, 5, 6, 57, 26, 32, 60, 9, 20, 54,
-			3, 15, 33, 24, 20, 0, 2, 37, 27, 0, 1, 2, 32, 57, 18, 5, 24, 255, 253, 4, 7, 24, 47, 32, 15, 14, 12, 25, 23, 20,
-			24, 36, 47, 36, 21, 0, 9, 27, 18, 20, 12, 12, 11, 6, 254, 0, 16, 16, 16, 1, 10, 25, 15, 252, 239, 251, 25, 21, 18, 24,
-			28, 14, 3, 251, 247, 15, 32, 27, 15, 14, 19, 21, 16, 26, 44, 46, 32, 27, 252, 247, 255, 251, 20, 47, 44, 43, 38, 19, 25, 30,
-			3, 12, 11, 1, 21, 17, 10, 17, 17, 24, 41, 33, 27, 31, 22, 11, 4, 4, 8, 21, 22, 10, 15, 14, 1, 7, 253, 250, 24, 20,
-			1, 11, 1, 245, 4, 6, 9, 19, 15, 12, 3, 3, 11, 15, 5, 5, 13, 13, 17, 23, 9, 11, 25, 21, 14, 21, 26, 26, 19, 11,
-			11, 21, 18, 8, 11, 23, 12, 9, 28, 16, 16, 34, 49, 34, 14, 16, 35, 70, 19, 7, 36, 67, 21, 12, 35, 43, 52, 24, 11, 33,
-			44, 31, 20, 245, 30, 28, 7, 5, 0, 13, 36, 24, 3, 1, 18, 14, 252, 2, 12, 6, 18, 19, 0, 5, 21, 20, 15, 7, 6, 32,
-			31, 20, 24, 19, 22, 29, 34, 25, 24, 34, 35, 16, 13, 21, 25, 29, 21, 25, 17, 30, 18, 4, 23, 1, 15, 28, 6, 2, 0, 8,
-			253, 248, 241, 251, 10, 7, 4, 249, 8, 255, 1, 12, 6, 10, 18, 8, 0, 4, 7, 10, 23, 12, 13, 39, 38, 8, 15, 10, 6, 25,
-			31, 21, 10, 7, 9, 10, 13, 10, 22, 25, 25, 18, 255, 0, 255, 254, 2, 0, 0, 0, 122, 8, 8, 0, 10, 213, 185, 201, 218, 246,
-			30, 33, 19, 56, 71, 24, 0, 214, 189, 183, 232, 14, 26, 28, 12, 15, 57, 29, 252, 4, 244, 232, 213, 223, 2, 10, 16, 13, 5, 238,
-			255, 243, 245, 26, 10, 218, 238, 31, 37, 0, 0, 0, 1, 21, 21, 237, 233, 8, 244, 252, 45, 28, 219, 215, 249, 4, 251, 2, 229, 242,
-			250, 255, 14, 37, 36, 26, 0, 12, 6, 215, 225, 255, 12, 16, 2, 11, 17, 4, 248, 236, 0, 228, 217, 228, 3, 33, 7, 27, 18, 251,
-			28, 246, 235, 22, 246, 250, 248, 1, 59, 5, 229, 252, 251, 20, 2, 226, 11, 12, 229, 227, 253, 6, 247, 237, 253, 3, 20, 21, 251, 4,
-			21, 40, 20, 7, 238, 4, 35, 6, 224, 208, 223, 231, 252, 13, 2, 5, 4, 17, 13, 227, 252, 13, 250, 48, 14, 234, 220, 243, 18, 67,
-			52, 14, 253, 215, 213, 209, 236, 253, 247, 21, 31, 42, 5, 209, 241, 246, 38, 243, 215, 14, 41, 22, 35, 21, 210, 0, 245, 199, 13, 21,
-			10, 15, 252, 20, 22, 233, 233, 0, 12, 9, 205, 209, 244, 2, 9, 28, 42, 18, 23, 26, 20, 245, 229, 226, 13, 7, 230, 230, 242, 18,
-			33, 20, 253, 227, 214, 237, 1, 13, 2, 17, 37, 18, 25, 22, 209, 223, 29, 4, 27, 2, 210, 216, 249, 57, 255, 227, 0, 232, 4, 66,
-			0, 204, 0, 12, 253, 41, 46, 231, 231, 236, 247, 2, 246, 253, 3, 57, 68, 224, 211, 220, 218, 21, 9, 21, 2, 234, 11, 238, 12, 15,
-			16, 39, 213, 240, 32, 3, 251, 1, 4, 18, 7, 222, 230, 2, 239, 248, 244, 9, 33, 28, 252, 1, 241, 1, 246, 237, 16, 30, 28, 5,
-			0, 13, 16, 210, 197, 254, 20, 250, 12, 23, 225, 229, 254, 8, 39, 16, 222, 248, 20, 29, 15, 255, 42, 0, 203, 243, 1, 248, 240, 9,
-			6, 254, 0, 250, 244, 252, 23, 49, 237, 223, 238, 222, 252, 54, 42, 252, 23, 43, 0, 220, 239, 207, 11, 30, 216, 220, 40, 20, 241, 254,
-			40, 8, 216, 248, 27, 9, 234, 24, 217, 234, 20, 231, 0, 55, 31, 245, 34, 10, 214, 235, 24, 38, 25, 207, 174, 232, 9, 249, 23, 20,
-			27, 7, 255, 238, 238, 22, 231, 232, 61, 58, 235, 250, 19, 6, 10, 230, 217, 238, 32, 254, 212, 24, 6, 219, 13, 13, 249, 252, 248, 0,
-			254, 57, 32, 234, 249, 55, 240, 221, 1, 42, 244, 217, 212, 239, 32, 11, 6, 245, 36, 16, 183, 250, 14, 39, 44, 226, 223, 37, 1, 210,
-			23, 39, 255, 206, 225, 26, 43, 231, 238, 12, 44, 14, 216, 251, 41, 254, 210, 225, 38, 20, 235, 218, 33, 43, 13, 217, 172, 4, 66, 9,
-			16, 34, 5, 226, 228, 239, 49, 255, 237, 5, 252, 255, 231, 11, 28, 34, 18, 246, 216, 8, 233, 183, 216, 45, 34, 12, 20, 245, 17, 63,
-			28, 215, 254, 34, 211, 205, 236, 244, 44, 10, 28, 28, 237, 252, 241, 237, 233, 214, 226, 41, 63, 232, 0, 55, 24, 233, 240, 19, 234, 11,
-			19, 250, 12, 1, 213, 233, 80, 20, 157, 200, 25, 223, 5, 60, 7, 237, 44, 57, 2, 211, 20, 208, 3, 91, 231, 161, 12, 33, 0, 14,
-			44, 236, 177, 244, 21, 246, 8, 8, 237, 32, 3, 8, 27, 31, 212, 233, 62, 44, 212, 181, 4, 62, 217, 176, 8, 48, 22, 246, 4, 44,
-			15, 214, 250, 21, 212, 1, 55, 23, 3, 216, 211, 29, 29, 210, 242, 23, 4, 236, 231, 33, 34, 20, 234, 247, 19, 0, 228, 246, 28, 49,
-			42, 204, 172, 21, 91, 219, 190, 227, 14, 25, 25, 239, 252, 19, 237, 21, 11, 14, 18, 222, 26, 17, 0, 216, 243, 4, 9, 248, 232, 44,
-			10, 0, 248, 201, 21, 25, 214, 255, 14, 229, 246, 55, 46, 18, 235, 0, 18, 255, 244, 220, 247, 22, 243, 23, 236, 246, 33, 213, 250, 17,
-			213, 241, 48, 44, 234, 223, 61, 14, 224, 18, 7, 226, 230, 46, 55, 230, 224, 2, 250, 226, 8, 21, 237, 0, 247, 255, 240, 7, 251, 218,
-			60, 82, 226, 219, 78, 34, 191, 226, 7, 246, 8, 3, 222, 233, 31, 15, 233, 4, 41, 5, 207, 8, 18, 196, 11, 72, 245, 254, 31, 237,
-			229, 6, 233, 246, 56, 37, 222, 198, 38, 55, 187, 245, 55, 10, 199, 235, 232, 14, 33, 22, 4, 237, 53, 13, 231, 199, 33, 35, 172, 248,
-			51, 242, 7, 33, 15, 23, 220, 254, 251, 4, 217, 226, 48, 60, 212, 173, 6, 85, 33, 199, 227, 13, 48, 6, 242, 237, 21, 26, 22, 193,
-			184, 44, 60, 13, 40, 206, 168, 247, 39, 11, 20, 251, 12, 24, 1, 233, 203, 9, 58, 26, 252, 220, 223, 14, 244, 2, 50, 11, 227, 237,
-			244, 6, 31, 236, 252, 6, 36, 29, 0, 193, 36, 246, 215, 13, 3, 27, 248, 240, 193, 6, 68, 61, 246, 216, 10, 221, 245, 243, 250, 43,
-			13, 40, 231, 246, 17, 37, 238, 243, 199, 253, 20, 39, 3, 217, 0, 250, 16, 190, 202, 33, 58, 52, 9, 6, 248, 25, 30, 240, 243, 3,
-			223, 209, 13, 33, 217, 234, 38, 9, 236, 6, 246, 248, 254, 32, 9, 186, 61, 41, 240, 241, 8, 33, 230, 24, 31, 198, 20, 30, 174, 242,
-			19, 234, 53, 218, 215, 9, 18, 57, 11, 187, 4, 86, 18, 203, 209, 47, 53, 255, 230, 211, 245, 42, 12, 214, 240, 240, 8, 16, 229, 17,
-			71, 7, 196, 250, 23, 69, 253, 214, 253, 9, 246, 176, 243, 72, 15, 244, 32, 203, 190, 86, 59, 230, 234, 9, 19, 25, 234, 179, 229, 122,
-			81, 139, 229, 244, 253, 225, 246, 63, 47, 40, 214, 210, 7, 39, 177, 2, 98, 230, 242, 220, 39, 31, 15, 239, 224, 0, 5, 198, 3, 19,
-			17, 45, 206, 9, 73, 230, 193, 236, 70, 235, 224, 35, 59, 9, 165, 237, 10, 42, 16, 211, 239, 99, 249, 144, 63, 65, 242, 209, 251, 6,
-			226, 3, 5, 244, 19, 21, 208, 18, 66, 12, 247, 242, 39, 236, 195, 206, 2, 71, 27, 192, 12, 43, 13, 234, 218, 9, 50, 244, 210, 12,
-			47, 10, 207, 0, 4, 15, 189, 33, 56, 229, 230, 253, 34, 19, 252, 247, 2, 17, 6, 201, 235, 48, 13, 35, 221, 221, 221, 247, 26, 45,
-			1, 240, 22, 220, 28, 36, 215, 248, 81, 249, 212, 6, 243, 4, 222, 33, 195, 205, 120, 247, 188, 27, 39, 45, 17, 181, 236, 36, 26, 206,
-			21, 62, 22, 188, 253, 240, 28, 250, 172, 14, 80, 248, 206, 14, 3, 10, 215, 73, 36, 241, 7, 214, 186, 69, 36, 196, 13, 70, 19, 185,
-			223, 21, 33, 195, 248, 243, 248, 96, 0, 21, 17, 0, 175, 203, 78, 51, 180, 206, 34, 47, 245, 22, 12, 30, 224, 232, 4, 203, 7, 61,
-			248, 2, 247, 205, 34, 64, 31, 225, 215, 241, 224, 13, 1, 230, 5, 96, 220, 250, 16, 244, 11, 0, 5, 12, 246, 205, 31, 3, 13, 255,
-			245, 253, 0, 253, 27, 237, 207, 43, 14, 251, 18, 233, 9, 41, 238, 228, 241, 0, 250, 227, 69, 66, 162, 29, 70, 202, 157, 62, 51, 209,
-			9, 10, 10, 244, 18, 225, 20, 5, 254, 221, 216, 80, 195, 231, 59, 38, 247, 3, 244, 4, 37, 24, 229, 174, 29, 37, 237, 241, 6, 17,
-			9, 244, 227, 250, 4, 9, 251, 8, 4, 243, 245, 74, 7, 240, 51, 204, 208, 5, 209, 70, 43, 244, 23, 173, 250, 100, 174, 234, 35, 233,
-			39, 227, 246, 40, 13, 44, 241, 191, 226, 29, 5, 16, 246, 23, 246, 243, 14, 243, 32, 9, 245, 249, 73, 2, 150, 229, 28, 252, 231, 23,
-			30, 255, 252, 30, 235, 227, 72, 231, 222, 32, 20, 241, 235, 42, 249, 221, 2, 255, 235, 47, 254, 200, 28, 49, 191, 215, 104, 84, 194, 174,
-			22, 11, 202, 229, 54, 28, 28, 255, 216, 13, 56, 255, 189, 2, 52, 217, 233, 35, 241, 210, 42, 31, 246, 12, 7, 226, 249, 31, 214, 193,
-			6, 78, 40, 202, 30, 45, 241, 8, 233, 180, 7, 65, 243, 219, 64, 23, 183, 235, 71, 24, 210, 231, 194, 42, 79, 210, 203, 31, 52, 25,
-			221, 233, 43, 232, 251, 54, 16, 209, 242, 255, 254, 16, 230, 205, 21, 67, 250, 214, 254, 45, 2, 191, 52, 237, 7, 33, 247, 3, 10, 54,
-			193, 207, 60, 249, 189, 37, 34, 246, 1, 30, 221, 217, 29, 220, 219, 77, 27, 220, 1, 28, 21, 10, 254, 241, 246, 205, 247, 46, 244, 30,
-			55, 195, 206, 49, 8, 191, 25, 25, 240, 240, 18, 12, 232, 28, 5, 24, 14, 2, 232, 189, 253, 62, 10, 5, 15, 242, 237, 225, 255, 28,
-			245, 2, 7, 229, 17, 2, 214, 24, 76, 6, 0, 238, 239, 250, 222, 46, 251, 210, 44, 254, 232, 39, 235, 244, 14, 10, 18, 215, 211, 7,
-			32, 36, 10, 242, 23, 245, 222, 35, 0, 253, 0, 236, 255, 29, 247, 228, 249, 254, 37, 222, 20, 22, 252, 229, 27, 246, 246, 34, 3, 0,
-			4, 232, 229, 15, 14, 0, 2, 243, 8, 22, 8, 194, 23, 47, 229, 205, 15, 35, 251, 21, 237, 225, 20, 39, 209, 8, 75, 249, 174, 243,
-			15, 30, 30, 231, 248, 4, 7, 252, 225, 15, 39, 228, 2, 11, 233, 218, 23, 42, 14, 248, 5, 8, 221, 245, 9, 244, 19, 3, 245, 13,
-			13, 237, 29, 251, 1, 229, 227, 36, 249, 13, 14, 240, 236, 4, 16, 44, 244, 207, 251, 8, 0, 1, 0, 40, 24, 219, 237, 31, 235, 0,
-			22, 246, 17, 241, 236, 21, 0, 232, 255, 242, 1, 34, 225, 10, 35, 249, 253, 254, 28, 24, 248, 233, 251, 248, 3, 236, 253, 5, 11, 5,
-			247, 235, 24, 251, 245, 18, 12, 16, 244, 247, 12, 3, 254, 16, 238, 246, 252, 253, 21, 249, 12, 4, 252, 245, 239, 246, 1, 9, 23, 10,
-			247, 253, 9, 15, 246, 250, 1, 254, 5, 242, 247, 252, 13, 7, 251, 17, 21, 248, 238, 1, 4, 1, 235, 1, 242, 12, 32, 238, 235, 20,
-			12, 252, 5, 249, 26, 249, 246, 253, 247, 16, 253, 243, 2, 11, 246, 246, 19, 252, 11, 0, 244, 4, 3, 242, 248, 16, 11, 12, 0, 8,
-			246, 4, 238, 239, 16, 21, 255, 213, 22, 6, 243, 254, 26, 0, 244, 3, 242, 15, 15, 8, 233, 250, 31, 245, 244, 249, 5, 247, 11, 2,
-			242, 10, 26, 250, 227, 14, 12, 244, 231, 15, 27, 27, 254, 198, 248, 35, 7, 250, 245, 247, 253, 15, 0, 18, 6, 243, 245, 31, 6, 243,
-			248, 245, 14, 254, 242, 253, 12, 250, 17, 254, 232, 36, 246, 237, 0, 27, 0, 1, 253, 24, 255, 243, 11, 227, 241, 6, 25, 244, 242, 18,
-			11, 239, 13, 11, 251, 6, 242, 250, 5, 0, 22, 248, 250, 1, 3, 251, 0, 3, 253, 6, 242, 254, 25, 11, 231, 248, 24, 3, 255, 239,
-			8, 10, 232, 7, 12, 249, 242, 1, 19, 6, 11, 11, 242, 241, 1, 0, 241, 5, 9, 246, 3, 12, 5, 245, 18, 255, 240, 19, 7, 241,
-			239, 21, 4, 228, 3, 20, 252, 3, 11, 234, 243, 21, 13, 247, 236, 33, 255, 236, 23, 253, 251, 4, 5, 249, 239, 4, 20, 249, 16, 248,
-			225, 31, 254, 247, 2, 0, 12, 248, 239, 5, 3, 14, 13, 245, 1, 16, 237, 243, 14, 11, 8, 225, 253, 27, 241, 3, 11, 249, 16, 249,
-			232, 247, 23, 12, 221, 0, 33, 3, 253, 6, 247, 253, 0, 15, 1, 249, 7, 232, 10, 25, 3, 231, 237, 15, 255, 247, 5, 1, 235, 17,
-			24, 250, 10, 254, 13, 255, 248, 13, 246, 0, 0, 244, 2, 248, 239, 9, 14, 255, 251, 0, 9, 3, 238, 14, 5, 7, 4, 252, 10, 21,
-			1, 215, 249, 23, 249, 236, 9, 253, 240, 18, 14, 251, 7, 3, 238, 2, 18, 10, 234, 253, 17, 6, 246, 1, 3, 3, 9, 236, 251, 9,
-			2, 244, 244, 10, 9, 0, 241, 17, 12, 8, 0, 252, 243, 255, 0, 6, 254, 249, 9, 249, 3, 26, 16, 225, 1, 24, 238, 250, 236, 4,
-			10, 253, 7, 247, 252, 6, 6, 10, 1, 253, 10, 12, 227, 8, 18, 249, 246, 251, 255, 22, 253, 237, 1, 3, 1, 242, 2, 17, 250, 4,
-			7, 13, 5, 241, 0, 0, 147, 8, 9, 0, 250, 5, 240, 232, 11, 255, 245, 7, 234, 218, 30, 27, 215, 3, 33, 0, 232, 17, 7, 255,
-			23, 45, 13, 253, 246, 25, 33, 255, 227, 27, 13, 238, 4, 0, 241, 10, 245, 4, 29, 219, 235, 253, 240, 13, 234, 244, 1, 244, 0, 251,
-			5, 237, 34, 23, 226, 228, 38, 12, 204, 2, 42, 10, 239, 44, 14, 238, 15, 9, 27, 15, 5, 217, 244, 46, 254, 203, 18, 49, 248, 230,
-			247, 227, 239, 255, 9, 18, 242, 252, 231, 253, 238, 254, 251, 249, 3, 20, 246, 209, 25, 44, 3, 4, 25, 240, 248, 19, 12, 25, 241, 7,
-			31, 241, 9, 24, 244, 248, 26, 244, 236, 11, 7, 42, 240, 190, 28, 19, 252, 233, 254, 21, 228, 241, 227, 19, 10, 18, 235, 203, 40, 6,
-			167, 3, 63, 244, 228, 21, 2, 28, 240, 13, 6, 4, 58, 211, 253, 55, 254, 219, 37, 52, 215, 228, 21, 61, 243, 188, 248, 14, 35, 222,
-			219, 33, 5, 214, 17, 31, 229, 246, 30, 255, 211, 20, 12, 227, 16, 26, 248, 227, 14, 15, 219, 30, 26, 221, 0, 19, 233, 229, 69, 253,
-			206, 251, 29, 29, 238, 255, 17, 25, 235, 254, 24, 249, 242, 246, 0, 226, 247, 38, 0, 13, 0, 242, 243, 28, 42, 240, 205, 0, 15, 219,
-			21, 20, 228, 244, 41, 3, 235, 31, 249, 226, 21, 24, 235, 255, 11, 2, 5, 0, 59, 248, 210, 27, 32, 239, 252, 18, 230, 250, 18, 239,
-			242, 235, 24, 247, 6, 0, 233, 14, 226, 228, 251, 25, 244, 240, 5, 231, 18, 31, 243, 242, 24, 12, 5, 213, 33, 28, 215, 17, 4, 29,
-			55, 228, 239, 20, 2, 246, 243, 23, 26, 216, 238, 29, 255, 247, 249, 27, 4, 219, 248, 0, 30, 12, 215, 20, 41, 6, 193, 252, 60, 0,
-			185, 2, 29, 253, 0, 243, 9, 23, 0, 225, 240, 31, 35, 234, 223, 61, 2, 221, 20, 246, 10, 251, 243, 24, 7, 223, 231, 242, 2, 15,
-			248, 23, 249, 245, 254, 233, 25, 17, 1, 245, 31, 243, 238, 18, 247, 11, 252, 245, 253, 3, 243, 39, 238, 250, 60, 254, 252, 245, 8, 24,
-			253, 0, 9, 40, 252, 6, 2, 232, 244, 230, 4, 6, 230, 14, 0, 1, 241, 230, 0, 21, 250, 8, 250, 218, 28, 37, 231, 247, 5, 229,
-			9, 5, 252, 9, 239, 226, 18, 8, 232, 10, 3, 244, 29, 31, 8, 246, 250, 52, 10, 6, 8, 237, 18, 250, 209, 254, 38, 5, 238, 0,
-			34, 0, 202, 11, 49, 5, 212, 249, 38, 210, 232, 252, 41, 38, 224, 222, 6, 247, 7, 5, 204, 38, 32, 216, 1, 30, 12, 226, 244, 60,
-			4, 206, 7, 26, 234, 7, 19, 234, 33, 14, 234, 237, 22, 1, 235, 243, 0, 51, 234, 218, 34, 238, 9, 254, 233, 251, 25, 5, 254, 9,
-			244, 17, 4, 11, 250, 233, 18, 241, 22, 252, 246, 28, 241, 223, 251, 75, 244, 209, 20, 41, 2, 231, 21, 1, 24, 224, 217, 20, 38, 246,
-			198, 46, 26, 206, 243, 26, 20, 227, 255, 243, 220, 0, 252, 8, 3, 1, 44, 226, 229, 8, 19, 255, 33, 10, 233, 0, 243, 10, 28, 30,
-			24, 242, 16, 242, 9, 1, 226, 241, 26, 1, 199, 247, 37, 0, 213, 24, 35, 243, 243, 237, 1, 44, 250, 208, 240, 65, 248, 198, 13, 71,
-			246, 190, 6, 17, 237, 20, 9, 213, 16, 51, 214, 251, 38, 45, 254, 191, 67, 251, 255, 7, 225, 19, 53, 254, 183, 23, 45, 244, 215, 239,
-			41, 246, 238, 33, 226, 251, 254, 253, 244, 32, 237, 241, 41, 238, 249, 232, 240, 47, 232, 221, 247, 18, 20, 236, 17, 30, 31, 216, 7, 254,
-			242, 34, 252, 243, 14, 3, 247, 9, 28, 243, 234, 23, 37, 12, 207, 0, 0, 241, 30, 20, 201, 11, 38, 255, 239, 229, 34, 41, 224, 223,
-			240, 2, 38, 226, 9, 15, 14, 221, 226, 6, 28, 253, 227, 30, 2, 200, 4, 49, 241, 242, 21, 12, 23, 253, 213, 53, 37, 3, 213, 232,
-			60, 248, 214, 250, 52, 254, 255, 251, 244, 17, 7, 246, 6, 245, 246, 0, 240, 249, 229, 247, 23, 1, 217, 8, 11, 19, 30, 214, 238, 66,
-			33, 147, 222, 70, 252, 242, 250, 53, 246, 250, 53, 17, 241, 243, 22, 253, 37, 249, 227, 18, 250, 5, 253, 232, 27, 241, 225, 21, 50, 193,
-			3, 28, 19, 235, 219, 13, 28, 230, 240, 31, 10, 220, 232, 0, 37, 7, 191, 244, 16, 10, 250, 224, 52, 1, 214, 8, 47, 223, 249, 43,
-			237, 251, 22, 228, 1, 83, 212, 196, 20, 70, 21, 192, 254, 75, 243, 193, 38, 29, 253, 243, 251, 41, 238, 244, 13, 27, 247, 3, 252, 238,
-			18, 236, 228, 25, 27, 232, 210, 248, 38, 204, 221, 67, 22, 232, 236, 248, 35, 254, 212, 13, 36, 237, 233, 2, 20, 13, 20, 230, 3, 29,
-			246, 228, 245, 38, 23, 222, 11, 20, 20, 221, 247, 12, 27, 232, 253, 13, 247, 16, 243, 248, 29, 18, 234, 9, 243, 10, 245, 253, 255, 32,
-			231, 252, 0, 10, 8, 250, 255, 2, 234, 4, 40, 224, 207, 30, 58, 189, 220, 38, 50, 213, 248, 16, 21, 21, 228, 240, 16, 7, 253, 246,
-			14, 0, 224, 248, 13, 29, 234, 218, 24, 30, 214, 236, 34, 30, 233, 236, 61, 14, 206, 17, 53, 234, 241, 26, 45, 233, 197, 32, 0, 6,
-			248, 211, 26, 31, 204, 242, 58, 33, 222, 216, 20, 48, 230, 207, 17, 61, 186, 195, 67, 33, 173, 237, 23, 34, 44, 227, 239, 0, 45, 8,
-			203, 15, 40, 234, 234, 32, 12, 239, 255, 41, 5, 191, 34, 3, 206, 52, 43, 221, 229, 7, 13, 9, 227, 4, 0, 27, 20, 194, 220, 89,
-			27, 183, 242, 27, 24, 225, 246, 41, 250, 218, 2, 22, 3, 19, 222, 242, 17, 11, 2, 218, 25, 32, 239, 197, 26, 70, 246, 233, 17, 23,
-			244, 221, 22, 32, 251, 213, 2, 45, 5, 211, 227, 250, 45, 3, 210, 26, 33, 214, 248, 41, 15, 210, 243, 44, 234, 0, 23, 241, 253, 255,
-			17, 236, 254, 44, 250, 210, 42, 37, 223, 217, 252, 32, 253, 5, 248, 234, 22, 31, 254, 238, 21, 4, 240, 0, 12, 4, 209, 14, 22, 16,
-			249, 216, 251, 2, 29, 236, 7, 21, 230, 24, 9, 254, 219, 7, 4, 6, 23, 211, 1, 30, 255, 243, 244, 25, 3, 210, 20, 49, 7, 190,
-			252, 76, 248, 200, 21, 73, 204, 235, 240, 6, 78, 242, 232, 254, 37, 202, 229, 55, 37, 214, 242, 25, 6, 223, 216, 49, 44, 235, 193, 24,
-			21, 3, 203, 255, 46, 246, 239, 2, 0, 36, 221, 0, 10, 248, 243, 5, 241, 19, 19, 200, 16, 33, 21, 30, 242, 1, 15, 6, 234, 244,
-			9, 11, 14, 231, 245, 14, 19, 236, 240, 37, 1, 247, 213, 0, 14, 246, 9, 36, 19, 208, 6, 1, 17, 25, 227, 236, 41, 12, 213, 230,
-			20, 29, 237, 255, 4, 15, 229, 249, 28, 227, 6, 238, 49, 0, 219, 255, 11, 251, 225, 10, 251, 45, 14, 219, 246, 33, 13, 213, 46, 44,
-			181, 225, 55, 37, 239, 213, 16, 54, 9, 212, 227, 19, 34, 25, 188, 233, 86, 249, 185, 36, 54, 224, 242, 24, 238, 254, 234, 254, 251, 11,
-			3, 216, 61, 239, 221, 6, 255, 39, 243, 15, 11, 211, 251, 33, 13, 5, 0, 244, 10, 24, 242, 238, 17, 238, 250, 8, 10, 21, 212, 0,
-			8, 22, 251, 252, 247, 29, 243, 216, 33, 246, 230, 25, 243, 33, 12, 226, 0, 19, 235, 11, 254, 244, 28, 238, 4, 21, 213, 12, 25, 14,
-			239, 8, 7, 233, 4, 242, 13, 5, 2, 240, 4, 22, 243, 241, 46, 0, 224, 3, 49, 1, 236, 227, 242, 37, 245, 253, 19, 233, 15, 250,
-			249, 255, 0, 12, 1, 247, 239, 235, 255, 45, 13, 228, 253, 26, 0, 207, 253, 57, 25, 203, 247, 63, 218, 251, 10, 250, 41, 245, 198, 53,
-			24, 245, 204, 15, 83, 231, 198, 28, 28, 223, 229, 20, 233, 17, 255, 225, 35, 6, 236, 240, 48, 18, 207, 248, 63, 246, 167, 48, 26, 247,
-			28, 217, 58, 241, 214, 48, 14, 210, 222, 57, 32, 211, 246, 1, 19, 243, 4, 197, 23, 72, 215, 221, 48, 31, 2, 240, 241, 227, 22, 240,
-			21, 254, 231, 32, 229, 228, 12, 16, 8, 241, 14, 7, 6, 7, 1, 22, 5, 4, 218, 8, 18, 234, 246, 245, 49, 31, 204, 0, 39, 248,
-			230, 36, 13, 217, 0, 238, 16, 21, 235, 230, 24, 25, 214, 232, 25, 15, 227, 241, 22, 24, 245, 248, 38, 10, 234, 16, 222, 19, 249, 229,
-			24, 237, 11, 230, 1, 39, 3, 224, 253, 56, 226, 240, 6, 12, 20, 231, 0, 11, 250, 15, 247, 241, 40, 237, 230, 19, 252, 16, 17, 1,
-			0, 8, 253, 239, 7, 43, 0, 243, 250, 18, 4, 199, 46, 5, 248, 213, 246, 12, 247, 249, 235, 31, 14, 241, 254, 28, 15, 232, 217, 40,
-			49, 204, 221, 43, 27, 241, 226, 222, 30, 27, 234, 219, 30, 0, 246, 46, 255, 13, 7, 7, 237, 0, 0, 238, 6, 12, 255, 233, 32, 5,
-			211, 254, 16, 251, 249, 21, 10, 240, 234, 14, 84, 250, 205, 11, 28, 0, 218, 217, 39, 20, 251, 225, 240, 45, 23, 227, 226, 62, 237, 236,
-			254, 6, 10, 231, 0, 10, 240, 6, 33, 250, 221, 7, 9, 14, 230, 243, 30, 20, 249, 251, 0, 10, 255, 2, 34, 251, 236, 255, 9, 9,
-			255, 229, 31, 24, 196, 245, 236, 58, 253, 224, 6, 30, 8, 221, 217, 65, 9, 179, 229, 39, 2, 0, 243, 24, 70, 7, 209, 10, 29, 3,
-			209, 237, 67, 250, 196, 11, 74, 253, 6, 202, 17, 69, 194, 214, 52, 51, 233, 196, 245, 54, 10, 220, 34, 207, 248, 243, 233, 50, 28, 233,
-			203, 251, 40, 36, 239, 246, 32, 244, 200, 15, 216, 0, 59, 245, 228, 251, 1, 14, 24, 0, 8, 248, 244, 35, 240, 33, 10, 232, 20, 25,
-			1, 252, 33, 7, 12, 206, 227, 77, 246, 209, 6, 18, 25, 11, 235, 223, 23, 218, 236, 5, 11, 216, 231, 0, 48, 237, 249, 252, 17, 37,
-			226, 181, 23, 68, 219, 10, 16, 241, 6, 1, 17, 19, 248, 249, 247, 1, 19, 232, 205, 39, 48, 235, 247, 255, 253, 22, 220, 236, 44, 38,
-			249, 236, 236, 19, 2, 243, 0, 19, 255, 29, 254, 248, 17, 45, 239, 247, 60, 21, 216, 231, 60, 12, 222, 40, 37, 215, 236, 237, 9, 34,
-			245, 220, 4, 205, 227, 0, 226, 209, 184, 204, 193, 137, 190, 251, 22, 29, 18, 28, 36, 86, 82, 53, 51, 56, 60, 18, 38, 16, 0, 86,
-			69, 246, 207, 20, 57, 233, 202, 1, 36, 253, 208, 196, 245, 12, 232, 193, 0, 28, 214, 187, 0, 252, 196, 211, 249, 252, 243, 240, 230, 43,
-			77, 2, 213, 244, 68, 8, 227, 243, 6, 48, 233, 211, 253, 65, 27, 212, 249, 58, 32, 224, 236, 41, 47, 29, 10, 253, 16, 20, 238, 248,
-			0, 19, 5, 239, 6, 243, 242, 20, 221, 232, 14, 28, 12, 206, 247, 252, 210, 247, 241, 0, 26, 252, 233, 24, 9, 14, 15, 8, 7, 4,
-			41, 7, 193, 12, 77, 30, 21, 228, 241, 13, 237, 217, 254, 5, 227, 224, 210, 9, 20, 226, 214, 224, 30, 11, 227, 234, 6, 18, 255, 8,
-			15, 21, 243, 19, 43, 23, 26, 240, 46, 27, 0, 30, 0, 7, 14, 253, 234, 5, 27, 242, 242, 6, 8, 246, 228, 252, 2, 15, 1, 245,
-			239, 13, 254, 240, 252, 0, 2, 236, 235, 249, 243, 0, 231, 227, 14, 25, 230, 238, 11, 244, 253, 15, 19, 16, 18, 5, 8, 240, 249, 14,
-			225, 7, 41, 250, 231, 9, 25, 7, 7, 12, 6, 20, 0, 232, 0, 3, 255, 3, 19, 21, 0, 244, 255, 27, 238, 231, 8, 0, 250, 248,
-			240, 4, 18, 3, 5, 14, 24, 248, 247, 7, 238, 234, 10, 8, 1, 12, 243, 247, 247, 233, 8, 8, 1, 255, 249, 248, 241, 252, 16, 245,
-			245, 7, 20, 240, 245, 18, 10, 254, 7, 6, 0, 0, 249, 236, 13, 21, 239, 248, 9, 15, 6, 0, 10, 4, 10, 12, 0, 246, 13, 248,
-			239, 253, 4, 2, 246, 16, 253, 238, 2, 11, 252, 251, 17, 16, 253, 11, 7, 245, 0, 2, 6, 254, 251, 236, 0, 6, 239, 249, 0, 249,
-			1, 8, 242, 246, 7, 254, 1, 7, 252, 8, 13, 252, 1, 7, 21, 0, 171, 8, 22, 0, 3, 245, 0, 3, 242, 235, 252, 14, 28, 16,
-			241, 248, 2, 4, 237, 225, 245, 4, 0, 242, 9, 34, 7, 247, 5, 28, 5, 2, 239, 24, 30, 4, 241, 238, 7, 241, 230, 247, 242, 223,
-			12, 10, 2, 14, 249, 252, 36, 35, 244, 241, 18, 16, 8, 230, 248, 17, 22, 2, 221, 238, 10, 240, 218, 234, 36, 56, 244, 217, 249, 33,
-			28, 232, 253, 35, 29, 3, 240, 223, 254, 8, 9, 253, 229, 251, 6, 9, 5, 4, 9, 5, 18, 242, 223, 2, 230, 241, 14, 10, 34, 35,
-			245, 0, 9, 14, 0, 224, 229, 6, 4, 6, 248, 243, 14, 15, 245, 204, 23, 38, 4, 255, 3, 18, 24, 235, 255, 14, 239, 3, 208, 210,
-			4, 37, 31, 10, 241, 8, 12, 11, 18, 244, 253, 240, 254, 251, 237, 9, 30, 11, 228, 245, 9, 16, 230, 225, 244, 5, 12, 32, 51, 0,
-			227, 15, 30, 4, 247, 247, 242, 230, 249, 19, 3, 248, 252, 220, 222, 54, 8, 218, 248, 28, 45, 31, 244, 247, 37, 220, 2, 15, 244, 244,
-			17, 13, 243, 232, 8, 39, 177, 206, 76, 250, 211, 249, 16, 39, 18, 251, 0, 0, 42, 34, 220, 244, 6, 232, 238, 1, 23, 54, 237, 190,
-			13, 20, 226, 242, 2, 13, 227, 246, 42, 16, 9, 0, 253, 23, 24, 232, 249, 246, 235, 14, 20, 247, 239, 47, 2, 218, 251, 17, 13, 244,
-			233, 229, 6, 34, 250, 236, 255, 18, 245, 7, 6, 0, 10, 32, 5, 237, 6, 1, 5, 18, 16, 246, 221, 239, 4, 244, 241, 249, 13, 235,
-			218, 18, 33, 3, 42, 20, 11, 13, 232, 239, 5, 30, 255, 229, 1, 25, 21, 200, 237, 25, 225, 208, 245, 7, 9, 40, 23, 3, 27, 44,
-			231, 236, 25, 245, 231, 236, 246, 244, 35, 16, 217, 13, 18, 255, 6, 25, 200, 237, 44, 21, 220, 250, 37, 234, 16, 23, 231, 229, 238, 6,
-			233, 44, 32, 244, 254, 247, 40, 38, 244, 209, 247, 3, 243, 226, 254, 41, 26, 222, 254, 21, 34, 0, 185, 232, 32, 40, 12, 206, 215, 72,
-			33, 222, 6, 19, 239, 254, 1, 242, 1, 5, 29, 14, 220, 248, 35, 233, 252, 210, 239, 21, 234, 28, 37, 230, 34, 23, 242, 38, 0, 5,
-			248, 194, 234, 24, 48, 253, 192, 1, 25, 255, 240, 227, 13, 60, 244, 198, 38, 47, 38, 241, 202, 19, 44, 227, 207, 232, 42, 15, 207, 2,
-			20, 17, 252, 247, 242, 21, 47, 7, 247, 241, 232, 12, 64, 238, 156, 8, 35, 206, 53, 14, 167, 61, 65, 188, 240, 38, 67, 233, 208, 28,
-			2, 19, 13, 207, 1, 253, 208, 12, 243, 220, 81, 37, 227, 10, 232, 17, 25, 12, 2, 175, 19, 66, 200, 207, 74, 23, 222, 27, 210, 226,
-			40, 226, 243, 87, 26, 203, 243, 21, 41, 10, 202, 244, 0, 3, 236, 247, 251, 253, 34, 16, 254, 7, 8, 229, 236, 30, 74, 7, 177, 231,
-			49, 233, 224, 36, 255, 228, 22, 251, 6, 54, 178, 16, 45, 213, 6, 38, 212, 230, 71, 26, 3, 215, 232, 11, 209, 219, 86, 50, 193, 219,
-			65, 77, 218, 168, 10, 44, 15, 235, 0, 239, 232, 68, 242, 197, 35, 30, 189, 4, 49, 34, 214, 205, 33, 71, 10, 181, 223, 47, 28, 249,
-			23, 10, 180, 2, 28, 235, 44, 11, 223, 222, 250, 32, 20, 212, 213, 47, 59, 254, 248, 249, 15, 221, 6, 46, 244, 236, 34, 236, 215, 36,
-			239, 215, 20, 57, 211, 231, 43, 226, 17, 55, 3, 213, 254, 20, 203, 32, 38, 182, 216, 103, 54, 197, 18, 18, 201, 243, 60, 208, 240, 1,
-			206, 27, 61, 47, 224, 196, 229, 40, 81, 242, 190, 238, 15, 51, 25, 229, 248, 216, 40, 56, 175, 240, 0, 4, 250, 231, 81, 60, 166, 182,
-			75, 68, 248, 176, 4, 52, 237, 251, 245, 34, 29, 206, 220, 4, 77, 205, 220, 1, 58, 23, 200, 238, 56, 70, 198, 208, 48, 35, 187, 197,
-			47, 50, 225, 183, 43, 92, 223, 232, 17, 24, 232, 220, 235, 24, 40, 226, 5, 255, 49, 241, 210, 24, 21, 237, 1, 251, 215, 46, 32, 217,
-			244, 25, 18, 236, 20, 221, 231, 17, 38, 0, 203, 29, 29, 250, 229, 18, 26, 254, 33, 203, 249, 12, 254, 238, 251, 39, 243, 232, 246, 19,
-			7, 255, 28, 214, 62, 27, 169, 2, 19, 24, 37, 193, 224, 87, 246, 247, 204, 210, 94, 254, 200, 246, 17, 58, 248, 239, 8, 27, 23, 178,
-			254, 71, 255, 207, 220, 36, 58, 239, 146, 252, 123, 3, 192, 252, 252, 53, 8, 196, 38, 27, 240, 16, 231, 213, 72, 34, 195, 234, 236, 11,
-			43, 224, 1, 10, 228, 50, 20, 174, 251, 63, 255, 253, 1, 51, 1, 229, 209, 251, 55, 15, 195, 228, 45, 37, 224, 176, 27, 78, 224, 232,
-			11, 37, 12, 1, 225, 237, 255, 46, 35, 216, 246, 24, 1, 211, 249, 241, 20, 46, 233, 238, 19, 26, 245, 227, 248, 8, 24, 227, 5, 55,
-			202, 15, 17, 219, 23, 20, 12, 211, 222, 38, 70, 11, 207, 205, 41, 40, 219, 238, 232, 255, 31, 244, 196, 46, 93, 220, 205, 236, 75, 56,
-			173, 217, 56, 48, 236, 189, 244, 60, 18, 249, 0, 209, 1, 40, 229, 240, 14, 234, 233, 33, 14, 1, 2, 16, 255, 1, 31, 245, 7, 228,
-			245, 41, 24, 242, 224, 233, 228, 16, 41, 247, 181, 21, 26, 10, 7, 230, 72, 41, 204, 237, 50, 248, 249, 176, 189, 117, 70, 167, 180, 59,
-			110, 240, 200, 235, 19, 28, 233, 207, 247, 70, 40, 195, 197, 76, 79, 188, 203, 250, 46, 9, 194, 4, 37, 64, 249, 211, 34, 0, 245, 251,
-			212, 18, 15, 213, 13, 9, 228, 17, 75, 246, 186, 21, 66, 238, 216, 203, 30, 94, 220, 210, 33, 6, 14, 18, 173, 27, 65, 141, 249, 74,
-			13, 22, 219, 240, 28, 1, 21, 244, 195, 29, 7, 211, 38, 255, 240, 62, 240, 243, 79, 232, 205, 251, 247, 23, 241, 31, 15, 205, 245, 255,
-			34, 5, 209, 254, 12, 14, 11, 236, 19, 20, 9, 20, 231, 7, 55, 216, 215, 3, 34, 232, 195, 28, 246, 250, 54, 226, 249, 52, 226, 255,
-			255, 236, 30, 2, 41, 40, 172, 27, 63, 214, 161, 14, 99, 234, 203, 187, 48, 91, 206, 176, 27, 89, 23, 211, 209, 28, 25, 215, 232, 67,
-			59, 250, 170, 8, 94, 216, 172, 239, 47, 50, 239, 230, 227, 14, 37, 194, 1, 61, 42, 238, 188, 10, 36, 249, 3, 225, 45, 53, 202, 196,
-			18, 101, 247, 156, 231, 46, 50, 232, 204, 15, 27, 42, 232, 176, 32, 70, 240, 193, 5, 50, 70, 236, 184, 240, 27, 23, 2, 225, 7, 15,
-			13, 28, 226, 216, 0, 35, 227, 245, 5, 20, 233, 236, 32, 9, 18, 32, 229, 250, 81, 247, 162, 2, 58, 254, 210, 230, 22, 255, 244, 249,
-			243, 49, 27, 204, 3, 59, 22, 193, 211, 67, 254, 17, 1, 202, 16, 61, 215, 227, 51, 0, 223, 203, 40, 52, 169, 49, 29, 192, 55, 16,
-			198, 252, 53, 30, 207, 196, 34, 26, 28, 19, 211, 6, 43, 226, 220, 251, 24, 2, 238, 247, 22, 249, 7, 25, 209, 46, 20, 196, 27, 26,
-			185, 8, 30, 235, 3, 42, 25, 217, 2, 4, 5, 3, 252, 226, 5, 55, 222, 193, 50, 41, 4, 211, 208, 24, 74, 247, 135, 16, 112, 255,
-			175, 9, 75, 43, 192, 198, 101, 31, 158, 227, 39, 43, 225, 237, 249, 26, 37, 225, 166, 23, 66, 216, 220, 30, 32, 0, 2, 48, 248, 13,
-			40, 199, 202, 71, 246, 198, 24, 19, 235, 227, 10, 34, 25, 219, 210, 208, 63, 35, 228, 21, 245, 16, 48, 26, 207, 7, 34, 212, 0, 20,
-			236, 2, 10, 218, 233, 27, 3, 223, 242, 34, 19, 14, 240, 230, 20, 24, 4, 4, 14, 245, 250, 15, 2, 233, 2, 25, 208, 253, 62, 224,
-			232, 11, 221, 35, 51, 197, 234, 51, 214, 0, 245, 43, 65, 154, 21, 68, 221, 23, 251, 237, 26, 237, 240, 39, 209, 221, 13, 242, 67, 29,
-			201, 225, 30, 37, 233, 223, 250, 79, 242, 192, 33, 8, 24, 7, 215, 255, 57, 242, 213, 20, 241, 25, 247, 219, 42, 0, 254, 233, 214, 30,
-			43, 248, 218, 42, 19, 218, 249, 33, 22, 0, 210, 27, 16, 213, 30, 5, 208, 11, 250, 14, 67, 223, 194, 42, 255, 220, 29, 226, 1, 76,
-			255, 178, 32, 74, 245, 207, 219, 17, 83, 238, 176, 246, 47, 42, 230, 194, 5, 58, 29, 213, 190, 39, 107, 231, 131, 39, 113, 240, 141, 2,
-			84, 15, 223, 193, 32, 59, 245, 218, 250, 41, 33, 232, 181, 48, 24, 217, 228, 237, 74, 48, 174, 245, 52, 0, 247, 233, 249, 73, 246, 203,
-			38, 7, 249, 21, 249, 211, 1, 44, 230, 227, 10, 254, 4, 254, 26, 245, 228, 9, 43, 4, 217, 3, 64, 251, 234, 22, 254, 4, 236, 237,
-			20, 249, 212, 19, 0, 226, 55, 236, 196, 53, 44, 209, 248, 29, 9, 24, 252, 9, 19, 0, 236, 231, 244, 33, 1, 221, 25, 240, 233, 17,
-			246, 236, 3, 25, 15, 4, 237, 2, 38, 254, 249, 12, 255, 6, 231, 250, 37, 242, 253, 12, 209, 237, 42, 49, 204, 224, 30, 3, 246, 255,
-			30, 233, 239, 17, 17, 17, 0, 245, 9, 12, 3, 230, 2, 251, 3, 8, 221, 4, 55, 202, 0, 23, 230, 59, 201, 206, 97, 33, 198, 227,
-			18, 45, 1, 213, 17, 38, 228, 202, 21, 42, 232, 241, 8, 5, 28, 20, 213, 229, 40, 17, 228, 251, 12, 231, 19, 11, 236, 6, 35, 10,
-			198, 251, 47, 247, 232, 23, 4, 238, 27, 2, 225, 10, 20, 223, 250, 60, 239, 209, 12, 3, 230, 61, 30, 157, 18, 58, 251, 244, 218, 32,
-			28, 211, 16, 31, 235, 20, 6, 209, 7, 239, 0, 34, 221, 238, 51, 4, 225, 23, 7, 248, 7, 3, 244, 15, 13, 248, 12, 0, 22, 238,
-			215, 231, 21, 14, 232, 227, 33, 53, 197, 248, 59, 241, 241, 40, 10, 247, 0, 26, 13, 186, 13, 30, 189, 21, 9, 197, 55, 31, 237, 237,
-			225, 49, 16, 213, 31, 18, 240, 19, 236, 253, 59, 252, 181, 243, 71, 14, 187, 237, 40, 28, 248, 236, 2, 6, 248, 12, 6, 230, 16, 10,
-			228, 4, 18, 251, 7, 32, 248, 202, 21, 41, 1, 234, 244, 22, 235, 249, 21, 246, 10, 3, 239, 239, 23, 32, 193, 212, 70, 42, 222, 253,
-			17, 23, 237, 225, 18, 24, 24, 204, 227, 62, 20, 197, 234, 25, 24, 12, 224, 250, 18, 249, 8, 231, 255, 52, 240, 225, 9, 21, 24, 235,
-			220, 31, 44, 212, 227, 37, 24, 243, 0, 2, 226, 245, 4, 238, 25, 38, 233, 227, 17, 254, 16, 13, 226, 12, 29, 243, 221, 36, 47, 208,
-			233, 17, 18, 0, 234, 250, 1, 18, 3, 221, 0, 25, 2, 230, 252, 19, 24, 10, 234, 2, 46, 236, 218, 9, 232, 54, 23, 179, 4, 48,
-			245, 253, 232, 0, 44, 245, 224, 7, 253, 15, 5, 207, 28, 73, 226, 239, 245, 6, 55, 224, 205, 33, 9, 10, 226, 232, 36, 234, 20, 32,
-			221, 245, 22, 236, 250, 41, 248, 230, 32, 20, 227, 231, 16, 46, 238, 215, 21, 10, 10, 0, 228, 230, 50, 10, 218, 5, 0, 254, 11, 0,
-			242, 21, 26, 215, 222, 84, 47, 185, 232, 28, 15, 246, 243, 252, 217, 14, 25, 244, 236, 29, 39, 192, 8, 59, 247, 243, 246, 20, 6, 228,
-			250, 39, 227, 250, 26, 246, 21, 226, 224, 22, 24, 3, 226, 231, 50, 21, 217, 252, 32, 16, 243, 228, 23, 56, 201, 201, 36, 14, 23, 248,
-			213, 31, 14, 243, 3, 218, 12, 41, 238, 224, 22, 12, 10, 243, 233, 36, 13, 244, 252, 237, 26, 27, 219, 240, 25, 9, 248, 235, 247, 17,
-			12, 238, 246, 27, 10, 242, 246, 6, 22, 239, 6, 28, 236, 234, 1, 36, 11, 219, 248, 26, 245, 2, 4, 225, 19, 6, 252, 243, 0, 9,
-			33, 233, 217, 76, 11, 201, 255, 39, 240, 245, 245, 22, 10, 228, 16, 251, 253, 27, 231, 219, 54, 0, 229, 7, 18, 11, 233, 249, 14, 20,
-			247, 230, 18, 6, 10, 245, 220, 43, 0, 229, 5, 16, 18, 244, 240, 240, 21, 27, 222, 254, 14, 244, 10, 17, 242, 253, 17, 3, 0, 239,
-			1, 9, 246, 236, 16, 15, 253, 0, 233, 30, 19, 235, 246, 248, 28, 3, 220, 7, 6, 26, 0, 211, 21, 32, 249, 236, 247, 22, 14, 241,
-			244, 251, 22, 250, 244, 14, 252, 247, 5, 1, 14, 1, 238, 24, 4, 236, 5, 10, 243, 0, 153, 7, 51, 0, 12, 9, 4, 3, 255, 18,
-			20, 238, 7, 32, 4, 241, 4, 14, 2, 0, 26, 2, 233, 1, 17, 25, 12, 237, 252, 34, 14, 245, 252, 5, 24, 12, 3, 237, 251, 36,
-			2, 233, 0, 24, 13, 237, 246, 21, 9, 7, 3, 249, 17, 13, 251, 9, 9, 10, 11, 241, 12, 33, 235, 234, 33, 26, 234, 253, 23, 6,
-			254, 2, 11, 6, 6, 16, 13, 249, 12, 22, 0, 8, 9, 249, 1, 11, 4, 255, 12, 11, 2, 255, 5, 32, 11, 244, 16, 29, 4, 244,
-			11, 23, 244, 0, 36, 3, 247, 1, 251, 3, 40, 16, 228, 0, 28, 16, 251, 251, 13, 22, 9, 0, 238, 5, 35, 2, 253, 4, 2, 11,
-			8, 236, 245, 23, 27, 251, 246, 254, 10, 13, 7, 234, 10, 55, 243, 220, 4, 13, 21, 20, 232, 233, 24, 22, 252, 242, 12, 24, 250, 245,
-			255, 8, 12, 8, 248, 6, 25, 13, 233, 251, 35, 27, 239, 245, 15, 26, 0, 247, 13, 12, 3, 3, 250, 253, 7, 15, 3, 254, 13, 250,
-			235, 14, 14, 0, 25, 230, 252, 45, 243, 0, 29, 3, 0, 255, 12, 5, 252, 251, 28, 22, 235, 4, 21, 250, 10, 6, 253, 20, 19, 254,
-			253, 24, 22, 251, 0, 11, 7, 1, 0, 6, 250, 0, 33, 3, 236, 253, 16, 16, 252, 249, 3, 7, 21, 8, 242, 14, 25, 239, 14, 13,
-			232, 5, 17, 20, 8, 241, 245, 28, 8, 246, 17, 5, 3, 5, 246, 252, 14, 20, 10, 221, 16, 57, 238, 239, 3, 12, 26, 240, 253, 1,
-			248, 31, 4, 229, 25, 17, 249, 252, 21, 22, 241, 253, 18, 3, 255, 0, 251, 27, 6, 217, 19, 7, 244, 22, 245, 247, 12, 8, 254, 19,
-			6, 246, 10, 11, 8, 0, 234, 4, 27, 2, 254, 244, 13, 48, 1, 233, 3, 25, 5, 249, 1, 35, 6, 1, 7, 237, 24, 39, 249, 231,
-			22, 27, 242, 247, 17, 7, 11, 31, 234, 251, 22, 9, 20, 244, 250, 32, 247, 5, 21, 0, 21, 247, 246, 25, 5, 2, 25, 11, 243, 20,
-			13, 246, 23, 253, 6, 29, 253, 4, 17, 1, 10, 253, 250, 19, 5, 255, 0, 250, 21, 35, 233, 243, 32, 37, 254, 235, 13, 19, 0, 0,
-			255, 19, 255, 247, 22, 4, 250, 13, 249, 245, 31, 2, 250, 2, 254, 0, 38, 29, 231, 248, 32, 13, 241, 6, 6, 238, 20, 229, 227, 58,
-			16, 212, 253, 27, 12, 230, 253, 34, 20, 1, 240, 246, 7, 26, 9, 244, 252, 253, 249, 6, 4, 10, 0, 13, 15, 5, 254, 248, 30, 48,
-			225, 220, 42, 13, 252, 237, 215, 31, 68, 245, 218, 13, 55, 23, 197, 244, 52, 41, 253, 232, 2, 28, 17, 242, 0, 17, 255, 0, 245, 10,
-			43, 245, 220, 21, 59, 237, 223, 31, 38, 4, 244, 232, 19, 33, 2, 248, 243, 28, 20, 253, 252, 242, 37, 19, 214, 13, 24, 0, 12, 7,
-			239, 14, 27, 229, 250, 24, 7, 1, 241, 255, 33, 5, 233, 247, 40, 36, 245, 236, 2, 36, 17, 240, 251, 251, 14, 30, 240, 228, 21, 15,
-			8, 8, 228, 5, 43, 248, 253, 22, 19, 249, 238, 7, 28, 18, 222, 252, 21, 15, 4, 241, 238, 22, 19, 244, 248, 11, 3, 238, 43, 29,
-			236, 0, 17, 43, 7, 227, 18, 16, 6, 21, 227, 231, 31, 25, 244, 245, 244, 24, 21, 235, 0, 29, 2, 3, 18, 236, 252, 40, 0, 241,
-			9, 255, 31, 11, 214, 6, 27, 4, 248, 243, 246, 39, 9, 229, 8, 21, 9, 14, 244, 232, 30, 32, 248, 239, 3, 13, 239, 11, 16, 233,
-			11, 35, 250, 244, 24, 18, 235, 8, 30, 10, 241, 250, 32, 1, 255, 20, 244, 249, 28, 19, 247, 0, 10, 3, 18, 22, 218, 7, 42, 249,
-			5, 13, 244, 0, 247, 5, 31, 255, 251, 3, 5, 4, 10, 0, 3, 31, 242, 241, 13, 28, 6, 236, 21, 45, 250, 235, 12, 21, 15, 246,
-			6, 24, 251, 244, 254, 23, 13, 226, 254, 41, 239, 0, 26, 235, 7, 29, 255, 233, 229, 49, 22, 218, 10, 10, 2, 25, 254, 228, 14, 25,
-			243, 250, 6, 1, 9, 251, 250, 32, 255, 247, 31, 245, 242, 20, 10, 246, 30, 27, 222, 236, 46, 24, 209, 4, 30, 249, 0, 15, 236, 244,
-			36, 29, 240, 254, 35, 3, 241, 10, 9, 0, 222, 8, 41, 251, 211, 7, 43, 249, 252, 240, 245, 46, 6, 247, 5, 250, 43, 250, 213, 41,
-			28, 233, 6, 12, 38, 4, 211, 22, 51, 245, 233, 248, 29, 41, 249, 228, 0, 59, 36, 217, 239, 31, 20, 27, 222, 215, 62, 2, 211, 250,
-			37, 21, 243, 238, 2, 26, 5, 3, 0, 254, 3, 255, 5, 251, 15, 243, 254, 34, 13, 246, 255, 19, 24, 249, 230, 3, 35, 14, 244, 254,
-			8, 34, 13, 9, 251, 218, 18, 64, 222, 195, 14, 26, 24, 232, 235, 14, 11, 8, 236, 234, 56, 20, 204, 21, 36, 249, 8, 249, 249, 25,
-			237, 255, 18, 240, 14, 12, 230, 31, 41, 252, 227, 13, 29, 250, 229, 12, 37, 1, 235, 18, 245, 235, 67, 9, 227, 5, 11, 243, 9, 15,
-			246, 9, 21, 10, 248, 252, 251, 41, 37, 241, 248, 254, 11, 37, 18, 239, 5, 15, 20, 10, 250, 10, 6, 250, 27, 2, 237, 22, 0, 0,
-			26, 243, 1, 33, 231, 9, 46, 235, 245, 9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232, 20, 58, 246, 195, 11, 40, 18,
-			2, 200, 0, 60, 42, 225, 219, 32, 32, 4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230, 5, 26, 236, 255, 19, 8, 10,
-			21, 242, 238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250,
-			17, 31, 237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41,
-			222, 179, 29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60,
-			21, 231, 223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20,
-			17, 255, 249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13,
-			250, 243, 235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0,
-			48, 2, 226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37,
-			1, 239, 244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236,
-			32, 21, 237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243,
-			6, 2, 255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237,
-			51, 19, 232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1,
-			221, 31, 13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182,
-			1, 59, 19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3,
-			6, 30, 240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11,
-			20, 4, 254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234,
-			51, 249, 218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221,
-			212, 253, 34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173,
-			65, 92, 206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227,
-			0, 70, 241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247,
-			42, 228, 208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57,
-			5, 221, 250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228,
-			58, 252, 236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32,
-			252, 232, 42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233,
-			233, 48, 3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223,
-			11, 33, 246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247,
-			237, 7, 17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12,
-			1, 17, 6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38,
-			239, 12, 56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21, 222, 219, 35, 42, 215, 255, 7, 6, 40, 0, 188, 15, 76, 245,
-			193, 29, 25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13, 11, 247, 16, 19, 2, 239, 204, 71, 69, 188, 229, 30, 35, 0,
-			2, 14, 236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23, 237, 4, 46, 204, 233, 66, 250, 217, 22, 41, 2, 225, 27, 47,
-			234, 252, 10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18, 53, 242, 10, 6, 234, 30, 19, 235, 9, 42, 242, 224, 32, 0,
-			243, 16, 251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23, 249, 239, 13, 0, 0, 0, 172, 10, 36, 0, 2, 26, 14, 253,
-			249, 242, 249, 12, 10, 245, 245, 5, 17, 11, 247, 248, 3, 4, 242, 243, 251, 13, 38, 2, 239, 229, 238, 18, 32, 29, 251, 215, 251, 10,
-			254, 22, 5, 236, 0, 253, 249, 4, 245, 17, 37, 235, 225, 25, 14, 241, 235, 238, 21, 50, 5, 223, 245, 255, 4, 21, 251, 250, 15, 8,
-			224, 230, 4, 10, 6, 25, 39, 242, 232, 242, 238, 21, 16, 0, 249, 237, 8, 23, 246, 248, 2, 6, 15, 248, 241, 248, 246, 251, 24, 41,
-			19, 244, 218, 239, 0, 2, 23, 20, 229, 0, 16, 249, 252, 251, 243, 248, 2, 1, 17, 32, 19, 246, 233, 244, 16, 231, 228, 23, 35, 20,
-			0, 20, 236, 198, 228, 14, 29, 248, 3, 25, 26, 11, 227, 236, 252, 246, 5, 19, 20, 252, 238, 24, 15, 247, 249, 243, 236, 249, 14, 252,
-			0, 23, 15, 248, 228, 10, 11, 242, 244, 9, 42, 21, 247, 244, 220, 240, 21, 0, 254, 15, 14, 15, 234, 224, 255, 249, 249, 16, 32, 43,
-			13, 223, 209, 247, 27, 0, 248, 17, 23, 230, 215, 19, 42, 7, 253, 240, 228, 6, 255, 239, 29, 31, 27, 36, 223, 163, 202, 26, 61, 27,
-			12, 10, 4, 252, 222, 193, 239, 45, 44, 31, 40, 247, 167, 198, 37, 52, 11, 217, 226, 43, 54, 247, 244, 233, 231, 235, 228, 25, 94, 53,
-			235, 211, 190, 221, 25, 43, 37, 12, 245, 18, 16, 205, 169, 212, 34, 75, 50, 27, 0, 213, 227, 2, 255, 248, 0, 5, 6, 11, 48, 25,
-			221, 218, 225, 242, 7, 8, 9, 36, 25, 249, 230, 224, 4, 5, 4, 8, 42, 9, 216, 243, 25, 29, 239, 241, 17, 237, 208, 240, 19, 48,
-			30, 242, 252, 7, 251, 245, 217, 201, 23, 75, 51, 20, 238, 222, 229, 249, 240, 242, 24, 28, 3, 2, 250, 251, 16, 248, 236, 237, 1, 46,
-			22, 246, 205, 235, 25, 24, 30, 254, 16, 14, 209, 230, 12, 235, 226, 28, 40, 7, 0, 19, 4, 225, 223, 5, 16, 251, 10, 9, 4, 4,
-			252, 18, 252, 235, 226, 238, 14, 53, 51, 249, 205, 211, 250, 13, 5, 15, 42, 31, 245, 215, 219, 239, 14, 42, 9, 253, 23, 17, 224, 212,
-			246, 3, 244, 20, 46, 4, 227, 22, 41, 230, 216, 253, 241, 255, 35, 11, 1, 248, 241, 9, 244, 248, 58, 15, 206, 221, 11, 58, 253, 218,
-			0, 0, 238, 250, 69, 21, 189, 239, 53, 31, 242, 242, 236, 199, 219, 40, 71, 35, 20, 8, 189, 203, 19, 255, 243, 1, 21, 51, 43, 30,
-			180, 141, 25, 52, 245, 4, 33, 29, 0, 233, 234, 239, 238, 36, 57, 222, 223, 44, 14, 218, 222, 252, 5, 30, 34, 14, 10, 240, 224, 222,
-			229, 12, 36, 20, 11, 16, 247, 222, 252, 26, 6, 216, 214, 49, 76, 18, 228, 183, 215, 33, 38, 237, 29, 77, 232, 131, 206, 37, 69, 55,
-			38, 242, 198, 227, 251, 28, 15, 217, 222, 26, 27, 12, 47, 253, 196, 240, 29, 254, 224, 1, 37, 1, 245, 55, 7, 193, 204, 250, 40, 76,
-			26, 179, 232, 32, 240, 244, 36, 37, 239, 225, 242, 7, 39, 252, 200, 221, 37, 51, 7, 247, 253, 7, 16, 1, 230, 214, 234, 254, 56, 71,
-			17, 223, 200, 215, 246, 54, 47, 232, 218, 27, 39, 244, 197, 231, 43, 49, 0, 232, 2, 1, 243, 251, 17, 29, 2, 219, 208, 1, 55, 38,
-			223, 170, 254, 106, 48, 226, 246, 252, 213, 218, 6, 43, 49, 0, 198, 246, 25, 8, 10, 252, 234, 249, 24, 33, 11, 192, 196, 54, 52, 10,
-			241, 196, 237, 9, 26, 55, 14, 2, 10, 212, 209, 24, 18, 238, 247, 0, 29, 16, 241, 255, 0, 239, 241, 251, 0, 248, 40, 71, 4, 241,
-			8, 214, 166, 242, 68, 43, 255, 242, 0, 8, 249, 230, 231, 3, 41, 66, 10, 218, 210, 230, 244, 253, 60, 68, 237, 208, 249, 2, 243, 251,
-			255, 28, 37, 254, 226, 5, 17, 220, 218, 14, 29, 13, 15, 12, 241, 246, 12, 243, 227, 6, 14, 248, 36, 15, 217, 248, 250, 254, 34, 39,
-			245, 223, 224, 216, 8, 87, 68, 234, 233, 227, 222, 227, 244, 239, 9, 94, 46, 27, 18, 171, 146, 239, 30, 26, 60, 80, 5, 182, 198, 244,
-			42, 24, 219, 249, 45, 42, 224, 218, 18, 253, 227, 251, 17, 21, 244, 238, 36, 25, 241, 10, 28, 237, 211, 206, 237, 61, 79, 255, 230, 20,
-			235, 201, 232, 25, 49, 253, 222, 17, 0, 218, 20, 39, 12, 251, 227, 18, 23, 216, 219, 12, 11, 67, 18, 211, 4, 234, 234, 11, 9, 248,
-			241, 0, 19, 15, 0, 10, 8, 243, 240, 249, 29, 5, 242, 8, 252, 240, 23, 7, 219, 254, 34, 254, 242, 31, 14, 221, 233, 230, 235, 25,
-			61, 37, 250, 12, 245, 196, 221, 0, 35, 38, 3, 243, 220, 254, 56, 30, 217, 225, 2, 5, 230, 238, 66, 41, 220, 7, 236, 202, 28, 43,
-			239, 16, 23, 224, 227, 38, 26, 202, 217, 22, 34, 23, 254, 250, 255, 229, 241, 31, 20, 250, 12, 251, 228, 241, 235, 16, 52, 252, 254, 2,
-			8, 11, 218, 199, 25, 79, 0, 192, 251, 34, 13, 0, 3, 13, 241, 221, 215, 12, 39, 31, 63, 246, 171, 222, 31, 21, 19, 236, 241, 33,
-			0, 217, 37, 5, 209, 247, 18, 75, 29, 200, 189, 18, 23, 204, 8, 76, 54, 227, 203, 14, 7, 189, 244, 58, 0, 3, 67, 32, 196, 190,
-			202, 223, 37, 114, 93, 19, 173, 159, 193, 3, 78, 75, 10, 223, 254, 237, 231, 237, 6, 35, 251, 2, 43, 251, 214, 234, 20, 27, 11, 252,
-			221, 246, 252, 250, 42, 64, 0, 205, 239, 248, 237, 33, 27, 216, 235, 18, 10, 0, 32, 10, 228, 7, 16, 250, 226, 244, 8, 236, 0, 44,
-			13, 1, 54, 21, 170, 178, 226, 19, 73, 73, 28, 211, 209, 253, 11, 227, 189, 25, 95, 39, 248, 245, 218, 223, 244, 252, 10, 42, 38, 14,
-			246, 190, 215, 6, 12, 53, 73, 8, 207, 212, 229, 223, 230, 63, 89, 22, 231, 229, 211, 197, 254, 42, 63, 34, 8, 0, 223, 212, 228, 245,
-			21, 49, 51, 240, 196, 239, 15, 20, 247, 2, 7, 245, 240, 18, 32, 0, 245, 5, 5, 224, 237, 26, 7, 245, 16, 25, 0, 222, 233, 13,
-			33, 244, 244, 1, 6, 248, 239, 23, 24, 239, 14, 24, 227, 225, 10, 250, 251, 32, 50, 244, 217, 247, 239, 238, 2, 43, 50, 20, 227, 207,
-			193, 252, 26, 36, 37, 38, 24, 243, 197, 208, 246, 232, 21, 94, 64, 211, 187, 0, 20, 245, 209, 24, 69, 248, 238, 242, 238, 10, 241, 255,
-			37, 55, 251, 181, 244, 11, 32, 39, 243, 226, 233, 20, 9, 223, 254, 29, 5, 253, 12, 20, 11, 223, 197, 244, 22, 64, 66, 210, 187, 1,
-			27, 21, 0, 254, 252, 248, 248, 19, 250, 185, 5, 106, 55, 207, 205, 237, 229, 2, 32, 9, 5, 35, 32, 232, 218, 23, 230, 182, 0, 67,
-			73, 19, 233, 212, 202, 20, 27, 225, 249, 38, 24, 232, 252, 54, 23, 216, 208, 234, 255, 10, 38, 6, 239, 38, 21, 222, 223, 2, 6, 244,
-			16, 61, 3, 198, 242, 23, 255, 221, 4, 52, 10, 218, 218, 31, 60, 255, 231, 226, 235, 16, 255, 237, 38, 65, 0, 204, 233, 255, 6, 19,
-			19, 253, 252, 9, 211, 211, 1, 27, 54, 50, 1, 199, 215, 14, 13, 252, 7, 24, 27, 229, 214, 27, 21, 232, 239, 13, 11, 245, 250, 14,
-			23, 5, 5, 249, 220, 224, 255, 42, 44, 0, 242, 245, 232, 251, 25, 23, 243, 209, 237, 31, 59, 42, 254, 222, 205, 219, 254, 25, 44, 10,
-			230, 13, 30, 214, 214, 26, 35, 15, 241, 236, 250, 25, 13, 224, 249, 31, 13, 6, 225, 223, 27, 31, 225, 249, 42, 234, 255, 1, 233, 0,
-			20, 23, 11, 248, 227, 236, 4, 26, 23, 240, 253, 20, 251, 248, 234, 236, 41, 60, 242, 220, 232, 235, 249, 31, 30, 247, 252, 20, 235, 211,
-			17, 48, 8, 231, 31, 16, 225, 238, 250, 3, 229, 12, 75, 6, 199, 227, 7, 11, 25, 17, 231, 212, 247, 70, 22, 226, 18, 6, 201, 228,
-			42, 55, 243, 210, 10, 41, 242, 235, 16, 0, 220, 215, 16, 69, 24, 251, 246, 235, 220, 252, 27, 15, 243, 2, 29, 25, 254, 219, 221, 247,
-			11, 6, 5, 53, 45, 229, 180, 232, 56, 10, 218, 1, 30, 8, 242, 248, 35, 12, 204, 203, 15, 61, 52, 4, 216, 240, 12, 246, 201, 3,
-			62, 5, 232, 18, 38, 241, 187, 228, 21, 21, 46, 33, 217, 227, 38, 2, 215, 255, 11, 236, 0, 45, 44, 240, 226, 234, 241, 243, 253, 56,
-			27, 223, 4, 255, 249, 3, 255, 255, 2, 235, 9, 48, 245, 222, 235, 247, 41, 57, 17, 228, 198, 231, 255, 245, 10, 46, 62, 1, 242, 238,
-			211, 224, 0, 16, 24, 21, 39, 31, 218, 187, 223, 26, 50, 255, 239, 5, 248, 249, 23, 17, 245, 246, 31, 10, 213, 234, 23, 4, 229, 255,
-			43, 36, 228, 211, 15, 33, 228, 226, 30, 25, 243, 11, 0, 236, 14, 7, 240, 241, 2, 16, 249, 9, 35, 9, 214, 227, 10, 18, 253, 232,
-			12, 56, 34, 228, 202, 241, 250, 249, 30, 22, 25, 11, 205, 233, 36, 3, 228, 32, 35, 230, 210, 252, 28, 30, 5, 207, 236, 46, 31, 236,
-			221, 24, 29, 220, 231, 40, 15, 212, 4, 37, 3, 228, 0, 0, 241, 8, 31, 0, 237, 8, 16, 248, 248, 8, 2, 245, 208, 0, 70, 13,
-			234, 7, 7, 219, 223, 11, 20, 10, 19, 5, 5, 18, 5, 207, 218, 14, 1, 5, 21, 37, 34, 223, 209, 237, 233, 11, 28, 23, 34, 26,
-			223, 218, 241, 239, 3, 32, 37, 16, 241, 235, 246, 232, 243, 5, 22, 32, 23, 254, 228, 228, 234, 21, 29, 22, 254, 236, 242, 7, 7, 0,
-			251, 253, 236, 243, 39, 48, 248, 222, 252, 4, 247, 245, 254, 8, 23, 20, 5, 229, 242, 23, 20, 231, 204, 222, 44, 87, 26, 217, 210, 250,
-			12, 249, 253, 17, 23, 249, 236, 2, 16, 11, 239, 221, 3, 35, 24, 16, 219, 207, 19, 32, 23, 245, 206, 20, 47, 194, 209, 52, 71, 21,
-			212, 235, 5, 241, 231, 3, 2, 7, 42, 32, 13, 244, 182, 197, 255, 42, 70, 54, 253, 210, 212, 219, 0, 24, 29, 43, 0, 250, 7, 199,
-			217, 19, 14, 13, 30, 44, 5, 200, 198, 229, 15, 60, 71, 23, 206, 194, 223, 247, 31, 54, 26, 238, 244, 11, 3, 202, 235, 41, 26, 255,
-			23, 0, 206, 216, 255, 37, 33, 12, 0, 252, 255, 231, 224, 10, 40, 27, 5, 231, 232, 254, 243, 248, 1, 26, 46, 16, 236, 223, 200, 7,
-			66, 14, 228, 234, 2, 34, 17, 239, 244, 248, 0, 1, 246, 15, 30, 3, 232, 3, 0, 241, 250, 255, 12, 255, 253, 7, 250, 11, 43, 2,
-			224, 245, 236, 244, 21, 12, 255, 10, 10, 2, 1, 243, 236, 230, 0, 43, 44, 2, 214, 231, 11, 28, 254, 235, 5, 3, 252, 3, 7, 0,
-			4, 6, 233, 245, 29, 14, 233, 239, 7, 26, 31, 0, 235, 238, 235, 238, 232, 15, 99, 59, 218, 209, 236, 244, 231, 208, 20, 95, 80, 226,
-			174, 233, 18, 15, 3, 249, 9, 37, 2, 234, 226, 230, 7, 38, 46, 254, 200, 224, 36, 24, 207, 4, 62, 20, 233, 197, 243, 57, 31, 224,
-			217, 6, 42, 13, 202, 244, 70, 22, 206, 233, 11, 251, 6, 38, 13, 216, 235, 12, 14, 252, 233, 6, 38, 17, 228, 240, 10, 8, 5, 238,
-			252, 11, 251, 8, 25, 247, 224, 3, 17, 10, 251, 235, 255, 39, 5, 212, 0, 30, 5, 231, 232, 18, 43, 254, 231, 243, 1, 38, 14, 237,
-			226, 246, 14, 10, 3, 8, 7, 248, 252, 253, 250, 251, 15, 11, 243, 7, 13, 247, 1, 240, 239, 31, 29, 243, 238, 250, 244, 4, 12, 13,
-			13, 1, 247, 253, 248, 254, 242, 229, 30, 60, 15, 230, 231, 246, 245, 251, 5, 16, 253, 246, 16, 25, 3, 5, 240, 225, 252, 19, 8, 251,
-			6, 17, 246, 229, 21, 28, 237, 224, 3, 24, 249, 226, 14, 33, 6, 254, 30, 245, 206, 242, 17, 4, 245, 6, 27, 11, 246, 10, 251, 238,
-			254, 5, 252, 2, 16, 0, 251, 248, 6, 4, 244, 9, 8, 240, 252, 12, 12, 255, 251, 5, 4, 1, 241, 234, 255, 15, 29, 12, 249, 1,
-			248, 236, 249, 245, 16, 29, 12, 3, 249, 224, 219, 7, 51, 33, 240, 241, 255, 228, 254, 33, 0, 248, 13, 13, 0, 238, 244, 242, 241, 12,
-			37, 29, 253, 248, 243, 224, 244, 5, 9, 33, 25, 252, 245, 239, 228, 255, 13, 1, 21, 21, 247, 3, 11, 225, 227, 2, 22, 26, 253, 240,
-			9, 23, 242, 218, 244, 22, 33, 15, 246, 232, 235, 252, 30, 25, 0, 1, 3, 249, 241, 221, 234, 24, 42, 26, 252, 230, 247, 14, 247, 226,
-			3, 36, 15, 243, 250, 8, 253, 241, 0, 5, 20, 7, 238, 249, 250, 249, 9, 25, 10, 244, 4, 7, 238, 234, 6, 6, 248, 10, 10, 4,
-			30, 1, 225, 249, 3, 246, 252, 0, 4, 25, 9, 241, 14, 11, 235, 233, 244, 0, 15, 24, 16, 0, 251, 248, 242, 250, 253, 9, 255, 251,
-			31, 28, 238, 232, 18, 254, 211, 218, 34, 58, 8, 1, 5, 248, 232, 225, 238, 6, 32, 32, 37, 8, 215, 222, 249, 239, 254, 34, 31, 16,
-			2, 242, 215, 231, 14, 17, 10, 26, 14, 227, 235, 1, 2, 252, 14, 10, 249, 16, 21, 241, 216, 252, 4, 1, 25, 37, 9, 220, 223, 244,
-			6, 24, 25, 6, 217, 226, 29, 42, 7, 235, 231, 247, 20, 27, 6, 241, 221, 240, 17, 36, 39, 5, 208, 211, 15, 12, 255, 22, 22, 0,
-			230, 242, 8, 3, 255, 255, 11, 7, 254, 0, 3, 6, 247, 227, 6, 42, 0, 236, 246, 2, 3, 5, 12, 4, 250, 240, 250, 247, 0, 23,
-			16, 254, 4, 10, 237, 246, 8, 251, 252, 3, 7, 9, 11, 5, 236, 226, 1, 22, 9, 8, 3, 239, 251, 14, 249, 247, 13, 250, 247, 25,
-			8, 242, 11, 13, 245, 240, 2, 236, 255, 29, 20, 237, 228, 19, 26, 0, 245, 231, 240, 24, 25, 3, 7, 240, 226, 249, 4, 24, 44, 11,
-			227, 218, 234, 16, 9, 6, 21, 1, 248, 6, 5, 255, 234, 228, 253, 30, 38, 9, 247, 238, 244, 246, 252, 16, 24, 250, 234, 0, 3, 252,
-			21, 19, 1, 243, 229, 249, 21, 19, 244, 236, 5, 16, 4, 0, 13, 6, 235, 229, 251, 17, 27, 4, 237, 242, 11, 24, 14, 249, 219, 216,
-			5, 59, 40, 242, 222, 240, 255, 10, 16, 12, 0, 235, 231, 249, 21, 34, 9, 247, 236, 255, 16, 9, 252, 231, 237, 251, 25, 35, 16, 239,
-			224, 2, 2, 239, 11, 30, 6, 242, 255, 13, 6, 227, 230, 16, 20, 20, 5, 232, 1, 4, 233, 248, 13, 13, 24, 12, 234, 241, 6, 242,
-			226, 22, 48, 11, 242, 254, 248, 238, 236, 0, 22, 39, 10, 231, 235, 0, 249, 245, 13, 24, 19, 246, 253, 253, 243, 252, 244, 241, 21, 55,
-			19, 229, 225, 232, 255, 12, 18, 13, 8, 5, 243, 232, 1, 17, 3, 239, 0, 18, 7, 250, 255, 6, 245, 240, 3, 33, 25, 239, 222, 242,
-			9, 18, 10, 5, 4, 245, 235, 249, 9, 19, 11, 255, 252, 247, 2, 7, 243, 228, 0, 39, 29, 250, 242, 0, 247, 236, 254, 23, 169, 9,
-			63, 0, 14, 9, 244, 250, 10, 1, 244, 254, 255, 8, 16, 250, 252, 7, 7, 255, 245, 249, 252, 1, 5, 17, 18, 248, 234, 253, 2, 255,
-			8, 14, 0, 247, 0, 5, 10, 252, 239, 252, 11, 17, 255, 240, 246, 8, 15, 250, 3, 6, 252, 241, 251, 11, 9, 12, 10, 249, 243, 251,
-			255, 255, 254, 12, 16, 249, 241, 242, 5, 16, 4, 255, 2, 1, 246, 252, 1, 249, 0, 9, 10, 4, 251, 253, 247, 243, 9, 17, 1, 255,
-			6, 4, 247, 255, 3, 255, 16, 5, 0, 255, 240, 6, 12, 248, 241, 4, 21, 8, 255, 245, 243, 254, 1, 1, 253, 3, 13, 6, 252, 247,
-			233, 7, 8, 246, 1, 13, 9, 2, 255, 234, 243, 15, 21, 9, 3, 4, 239, 231, 254, 24, 17, 4, 254, 9, 2, 233, 244, 5, 12, 3,
-			9, 11, 251, 244, 250, 249, 4, 10, 254, 252, 8, 11, 246, 241, 247, 7, 20, 8, 249, 238, 244, 18, 31, 250, 232, 254, 12, 5, 253, 249,
-			0, 8, 1, 4, 1, 241, 250, 13, 0, 245, 7, 26, 5, 241, 245, 242, 249, 12, 26, 15, 253, 251, 3, 248, 230, 251, 18, 17, 6, 1,
-			254, 244, 254, 250, 234, 16, 35, 255, 241, 250, 18, 4, 231, 252, 27, 12, 251, 1, 2, 243, 243, 7, 10, 7, 7, 247, 227, 247, 15, 20,
-			15, 240, 228, 251, 15, 12, 13, 243, 243, 12, 245, 241, 6, 12, 9, 0, 10, 1, 234, 251, 14, 2, 1, 24, 14, 251, 231, 237, 16, 25,
-			10, 255, 250, 245, 254, 1, 255, 4, 12, 7, 243, 244, 255, 4, 254, 247, 0, 16, 4, 234, 226, 8, 35, 18, 244, 231, 249, 7, 243, 251,
-			34, 41, 248, 212, 245, 16, 14, 250, 3, 31, 16, 222, 227, 12, 39, 17, 241, 247, 0, 250, 255, 7, 12, 5, 0, 245, 244, 249, 0, 249,
-			3, 36, 18, 228, 231, 248, 246, 10, 19, 0, 8, 254, 230, 250, 5, 12, 14, 254, 0, 255, 0, 3, 250, 0, 254, 0, 5, 7, 10, 10,
-			246, 247, 1, 9, 9, 246, 244, 1, 14, 19, 14, 233, 236, 8, 4, 254, 252, 252, 12, 19, 4, 251, 248, 245, 253, 249, 234, 4, 34, 27,
-			5, 222, 237, 251, 240, 17, 21, 9, 253, 233, 238, 4, 22, 8, 0, 0, 14, 3, 226, 238, 25, 27, 5, 8, 14, 246, 216, 247, 28, 22,
-			250, 0, 3, 245, 244, 239, 2, 21, 9, 253, 5, 249, 239, 248, 254, 13, 6, 3, 250, 2, 17, 7, 241, 238, 0, 0, 23, 17, 245, 233,
-			11, 39, 247, 216, 242, 12, 23, 251, 252, 11, 28, 13, 230, 219, 229, 16, 42, 18, 5, 248, 243, 244, 248, 242, 245, 30, 36, 6, 238, 227,
-			241, 12, 19, 249, 253, 22, 15, 248, 247, 239, 246, 15, 19, 2, 254, 13, 1, 232, 238, 7, 15, 13, 8, 4, 254, 234, 233, 0, 14, 22,
-			8, 235, 247, 5, 5, 8, 248, 246, 8, 12, 255, 249, 253, 240, 2, 24, 12, 3, 8, 5, 227, 220, 0, 25, 25, 250, 7, 22, 245, 245,
-			240, 228, 6, 16, 9, 34, 18, 233, 242, 239, 242, 16, 24, 247, 255, 8, 1, 247, 238, 255, 254, 6, 27, 4, 247, 239, 3, 11, 247, 3,
-			8, 3, 0, 247, 247, 9, 22, 251, 248, 1, 2, 8, 249, 226, 7, 41, 255, 2, 18, 249, 236, 230, 250, 15, 16, 7, 11, 5, 244, 243,
-			239, 233, 6, 49, 15, 234, 252, 4, 237, 230, 9, 32, 25, 8, 239, 242, 241, 243, 0, 21, 23, 18, 0, 240, 245, 4, 242, 241, 16, 23,
-			14, 255, 10, 240, 221, 3, 24, 19, 253, 233, 252, 18, 7, 247, 237, 13, 20, 242, 231, 1, 12, 253, 13, 17, 255, 239, 0, 18, 246, 225,
-			3, 24, 7, 12, 10, 228, 236, 250, 24, 22, 242, 251, 254, 246, 25, 12, 232, 8, 10, 251, 250, 251, 8, 13, 240, 252, 17, 249, 0, 27,
-			16, 230, 201, 250, 44, 22, 228, 0, 38, 4, 222, 240, 14, 9, 255, 255, 34, 12, 209, 215, 30, 35, 237, 3, 27, 7, 248, 241, 229, 244,
-			17, 19, 1, 252, 11, 1, 221, 241, 24, 21, 247, 246, 15, 253, 232, 7, 31, 243, 220, 9, 57, 32, 226, 204, 254, 15, 241, 31, 40, 245,
-			241, 248, 5, 11, 233, 228, 27, 52, 254, 229, 2, 14, 233, 225, 251, 29, 47, 254, 223, 240, 250, 250, 249, 14, 16, 1, 0, 248, 249, 13,
-			247, 249, 243, 245, 28, 64, 6, 193, 252, 36, 246, 232, 5, 25, 5, 254, 11, 14, 245, 241, 239, 254, 19, 7, 18, 1, 224, 7, 7, 249,
-			255, 248, 0, 16, 7, 247, 250, 246, 242, 6, 17, 15, 255, 233, 232, 24, 32, 242, 3, 8, 246, 248, 7, 4, 252, 15, 0, 232, 252, 10,
-			2, 244, 24, 52, 0, 217, 231, 3, 7, 240, 254, 18, 35, 9, 246, 233, 223, 0, 2, 5, 25, 16, 20, 249, 211, 230, 13, 15, 11, 12,
-			13, 254, 243, 245, 234, 5, 29, 3, 243, 12, 34, 240, 196, 216, 15, 67, 51, 8, 226, 236, 247, 221, 236, 24, 47, 37, 251, 235, 238, 2,
-			246, 217, 248, 41, 43, 2, 250, 23, 250, 203, 208, 255, 50, 47, 20, 2, 225, 226, 225, 249, 25, 18, 15, 15, 2, 235, 233, 12, 21, 1,
-			237, 9, 14, 3, 241, 233, 252, 236, 27, 95, 248, 183, 241, 10, 238, 241, 35, 36, 2, 249, 245, 225, 255, 28, 255, 240, 7, 33, 0, 226,
-			241, 19, 17, 8, 248, 254, 247, 242, 20, 11, 245, 249, 11, 33, 248, 219, 228, 7, 39, 23, 245, 2, 19, 255, 224, 207, 8, 42, 24, 255,
-			17, 20, 213, 192, 221, 10, 47, 61, 49, 1, 211, 184, 217, 12, 35, 30, 27, 30, 253, 203, 198, 251, 42, 30, 4, 254, 251, 250, 238, 244,
-			11, 21, 24, 13, 237, 241, 254, 4, 5, 252, 21, 11, 0, 252, 241, 9, 5, 243, 5, 20, 228, 235, 31, 21, 236, 3, 13, 211, 225, 9,
-			36, 35, 9, 243, 207, 223, 14, 29, 11, 3, 9, 243, 247, 244, 246, 16, 5, 2, 13, 254, 9, 11, 235, 236, 25, 23, 255, 242, 253, 25,
-			20, 231, 244, 26, 252, 239, 254, 24, 48, 247, 197, 223, 27, 17, 253, 9, 248, 243, 28, 13, 222, 213, 249, 22, 18, 24, 4, 229, 209, 0,
-			48, 249, 226, 9, 39, 17, 248, 249, 246, 3, 11, 252, 234, 11, 36, 5, 242, 229, 14, 13, 13, 6, 245, 247, 8, 4, 5, 8, 251, 0,
-			246, 245, 12, 9, 0, 10, 251, 240, 2, 0, 224, 221, 21, 42, 21, 12, 242, 191, 221, 21, 26, 16, 3, 29, 10, 223, 234, 1, 14, 12,
-			5, 20, 0, 230, 5, 5, 243, 6, 32, 7, 240, 249, 244, 253, 21, 31, 4, 230, 249, 6, 226, 0, 18, 16, 247, 224, 1, 14, 241, 239,
-			5, 28, 21, 1, 240, 222, 251, 39, 26, 243, 226, 1, 9, 21, 241, 238, 17, 16, 13, 8, 6, 236, 213, 17, 39, 255, 253, 7, 3, 0,
-			238, 232, 246, 20, 40, 18, 2, 227, 198, 241, 26, 10, 13, 13, 6, 252, 253, 243, 247, 244, 14, 15, 247, 21, 36, 219, 204, 1, 41, 38,
-			231, 252, 41, 246, 179, 215, 46, 71, 24, 1, 230, 232, 249, 242, 246, 19, 40, 23, 244, 234, 253, 251, 230, 233, 15, 53, 31, 238, 233, 222,
-			236, 14, 33, 33, 0, 228, 228, 2, 14, 22, 0, 238, 3, 21, 12, 228, 235, 3, 0, 3, 33, 36, 227, 210, 244, 5, 16, 40, 21, 235,
-			246, 3, 239, 233, 255, 14, 0, 14, 26, 18, 239, 236, 240, 235, 2, 37, 12, 249, 250, 25, 253, 211, 239, 12, 55, 51, 249, 202, 175, 5,
-			70, 26, 239, 17, 33, 223, 190, 248, 46, 31, 244, 246, 245, 247, 19, 4, 0, 0, 241, 4, 4, 253, 10, 248, 221, 15, 53, 12, 239, 238,
-			227, 244, 252, 18, 32, 28, 14, 237, 205, 225, 21, 37, 5, 245, 33, 16, 205, 230, 24, 25, 16, 252, 4, 21, 238, 194, 18, 77, 20, 238,
-			222, 212, 215, 239, 26, 74, 58, 9, 238, 175, 172, 232, 49, 91, 42, 222, 214, 3, 10, 212, 195, 33, 125, 42, 184, 213, 255, 248, 19, 4,
-			254, 22, 47, 38, 190, 183, 34, 35, 236, 242, 46, 36, 241, 227, 237, 3, 6, 10, 4, 250, 5, 10, 242, 238, 255, 8, 3, 246, 244, 1,
-			255, 12, 39, 252, 201, 243, 21, 22, 7, 241, 244, 0, 19, 9, 234, 237, 27, 38, 6, 221, 222, 13, 7, 22, 14, 235, 16, 46, 12, 228,
-			209, 237, 4, 20, 50, 246, 234, 28, 0, 198, 225, 33, 47, 12, 238, 248, 252, 242, 241, 242, 253, 44, 21, 245, 7, 245, 224, 203, 0, 71,
-			52, 3, 237, 228, 3, 3, 245, 239, 20, 35, 3, 3, 219, 215, 38, 48, 255, 0, 248, 229, 234, 249, 4, 46, 48, 2, 215, 211, 221, 246,
-			30, 37, 32, 20, 253, 206, 208, 3, 28, 10, 249, 15, 38, 234, 236, 0, 245, 254, 249, 13, 22, 32, 25, 224, 214, 8, 13, 237, 250, 25,
-			32, 5, 236, 237, 247, 15, 9, 14, 0, 221, 251, 16, 1, 0, 10, 11, 248, 238, 240, 22, 5, 234, 251, 14, 41, 0, 217, 6, 8, 244,
-			233, 7, 20, 13, 7, 231, 0, 26, 9, 239, 254, 8, 252, 249, 248, 6, 25, 36, 253, 215, 228, 0, 16, 3, 25, 7, 9, 5, 223, 232,
-			247, 2, 13, 28, 11, 237, 246, 22, 0, 210, 225, 20, 51, 36, 0, 231, 253, 248, 216, 222, 16, 46, 51, 23, 241, 224, 241, 240, 234, 5,
-			26, 40, 10, 252, 244, 233, 240, 233, 246, 26, 61, 50, 237, 190, 208, 2, 27, 28, 39, 3, 230, 255, 242, 252, 40, 24, 223, 191, 3, 50,
-			27, 222, 248, 47, 15, 227, 211, 236, 255, 0, 38, 45, 9, 2, 209, 192, 250, 30, 34, 43, 50, 234, 184, 192, 253, 56, 22, 16, 42, 27,
-			233, 182, 208, 20, 28, 9, 15, 59, 12, 203, 194, 226, 4, 49, 61, 7, 234, 242, 245, 220, 231, 15, 25, 66, 28, 214, 242, 254, 211, 225,
-			49, 55, 27, 250, 243, 225, 191, 0, 42, 15, 57, 46, 207, 182, 230, 250, 14, 47, 42, 4, 229, 228, 229, 230, 10, 26, 27, 15, 255, 249,
-			241, 211, 238, 46, 50, 4, 7, 4, 220, 220, 3, 46, 18, 255, 26, 244, 195, 3, 31, 10, 36, 16, 197, 193, 20, 58, 28, 233, 240, 248,
-			11, 251, 191, 7, 77, 31, 206, 235, 13, 0, 243, 240, 21, 31, 3, 241, 250, 227, 237, 28, 36, 20, 238, 216, 240, 36, 11, 255, 37, 249,
-			221, 218, 2, 40, 39, 16, 248, 223, 234, 11, 19, 255, 3, 251, 246, 12, 1, 226, 25, 21, 220, 12, 26, 1, 244, 244, 250, 11, 14, 0,
-			250, 249, 1, 13, 227, 242, 17, 8, 5, 243, 0, 11, 255, 0, 2, 228, 255, 49, 4, 224, 255, 254, 0, 14, 7, 18, 0, 239, 238, 253,
-			3, 19, 19, 16, 13, 235, 215, 244, 28, 16, 242, 13, 29, 255, 213, 227, 0, 27, 24, 17, 3, 249, 236, 242, 13, 235, 253, 50, 12, 206,
-			243, 2, 5, 36, 37, 0, 225, 215, 0, 8, 242, 15, 34, 29, 247, 230, 0, 240, 231, 3, 6, 17, 45, 250, 222, 230, 7, 33, 254, 238,
-			3, 10, 9, 225, 241, 33, 29, 251, 219, 223, 34, 56, 242, 229, 12, 7, 252, 248, 255, 18, 22, 255, 248, 228, 245, 23, 23, 13, 0, 232,
-			235, 3, 13, 255, 254, 9, 248, 248, 232, 254, 28, 255, 252, 241, 254, 16, 250, 245, 247, 21, 17, 253, 9, 242, 234, 255, 14, 13, 25, 31,
-			239, 226, 246, 4, 5, 7, 29, 16, 253, 0, 235, 227, 251, 31, 15, 0, 7, 5, 239, 231, 229, 2, 29, 20, 253, 225, 248, 23, 239, 239,
-			11, 18, 18, 245, 226, 2, 3, 16, 20, 3, 249, 250, 239, 249, 13, 30, 17, 245, 252, 0, 250, 7, 2, 244, 250, 11, 10, 17, 14, 0,
-			240, 228, 248, 251, 4, 32, 28, 236, 219, 12, 21, 232, 233, 4, 25, 25, 253, 232, 244, 251, 255, 7, 6, 0, 9, 11, 247, 235, 8, 29,
-			11, 255, 251, 241, 252, 243, 6, 25, 6, 252, 0, 12, 254, 231, 250, 250, 5, 29, 24, 249, 235, 245, 227, 254, 36, 24, 4, 253, 2, 241,
-			221, 233, 24, 41, 2, 253, 17, 254, 232, 242, 254, 6, 11, 10, 5, 251, 6, 10, 239, 229, 248, 23, 19, 250, 240, 3, 14, 251, 3, 249,
-			240, 8, 11, 7, 9, 1, 228, 247, 9, 5, 10, 15, 15, 0, 240, 225, 251, 5, 13, 29, 31, 18, 235, 202, 228, 4, 21, 30, 24, 17,
-			243, 225, 239, 242, 236, 5, 31, 16, 24, 1, 222, 229, 241, 7, 36, 25, 238, 233, 2, 11, 0, 249, 249, 11, 14, 0, 253, 4, 5, 252,
-			246, 252, 16, 19, 1, 249, 241, 4, 1, 250, 12, 0, 255, 11, 11, 248, 241, 251, 250, 8, 21, 0, 249, 3, 254, 237, 243, 15, 13, 0,
-			249, 251, 10, 0, 250, 4, 250, 0, 14, 4, 247, 253, 2, 255, 6, 21, 2, 236, 254, 11, 255, 238, 244, 2, 11, 12, 19, 23, 241, 215,
-			224, 6, 36, 22, 0, 254, 8, 7, 248, 232, 247, 10, 13, 10, 8, 17, 9, 228, 226, 253, 8, 18, 14, 249, 243, 11, 2, 237, 0, 5,
-			250, 0, 3, 255, 255, 3, 251, 243, 255, 5, 4, 7, 6, 248, 254, 9, 245, 247, 18, 15, 2, 0, 249, 4, 10, 254, 6, 14, 250, 247,
-			5, 12, 0, 0, 3, 252, 0, 249, 239, 255, 7, 6, 7, 8, 250, 239, 241, 249, 6, 11, 3, 8, 1, 237, 249, 1, 9, 6, 0, 1,
-			6, 0, 249, 249, 1, 19, 18, 255, 248, 251, 246, 0, 14, 15, 3, 5, 5, 246, 239, 248, 2, 7, 5, 10, 15, 253, 241, 247, 247, 253,
-			3, 4, 10, 13, 251, 238, 245, 251, 5, 12, 254, 4, 12, 253, 250, 255, 254, 253, 0, 7, 7, 4, 254, 250, 1, 10, 3, 252, 0, 9,
-			3, 252, 252, 255, 5, 2, 4, 13, 5, 247, 241, 244, 0, 11, 12, 0, 0, 0, 152, 9, 27, 0, 229, 254, 18, 15, 23, 19, 255, 251,
-			251, 2, 4, 248, 244, 7, 12, 0, 11, 18, 11, 247, 229, 228, 236, 245, 5, 20, 17, 12, 8, 243, 231, 231, 219, 223, 230, 239, 2, 20,
-			24, 16, 12, 8, 245, 211, 201, 215, 222, 241, 2, 11, 27, 44, 35, 11, 239, 211, 203, 213, 234, 12, 51, 49, 28, 22, 15, 240, 234, 244,
-			242, 234, 232, 251, 17, 26, 8, 13, 14, 234, 233, 237, 229, 252, 5, 7, 11, 254, 0, 250, 235, 248, 1, 232, 216, 249, 21, 21, 6, 248,
-			253, 0, 10, 14, 3, 244, 240, 249, 242, 255, 7, 14, 7, 7, 16, 17, 9, 224, 211, 244, 13, 4, 18, 57, 20, 253, 0, 248, 219, 235,
-			255, 0, 7, 14, 9, 255, 248, 11, 28, 17, 16, 15, 241, 221, 213, 225, 254, 8, 16, 19, 27, 19, 254, 241, 232, 240, 248, 245, 21, 31,
-			10, 2, 0, 255, 236, 219, 233, 10, 36, 7, 254, 3, 16, 18, 250, 223, 234, 14, 19, 249, 242, 3, 20, 7, 233, 218, 231, 237, 253, 20,
-			17, 22, 29, 239, 215, 229, 236, 249, 253, 1, 250, 14, 38, 10, 253, 7, 6, 248, 227, 224, 237, 252, 16, 33, 16, 8, 30, 23, 5, 246,
-			232, 242, 245, 238, 236, 9, 34, 29, 0, 243, 246, 6, 255, 236, 238, 2, 4, 252, 250, 10, 22, 8, 7, 13, 249, 241, 1, 247, 245, 1,
-			252, 15, 28, 19, 24, 34, 16, 226, 218, 239, 236, 243, 24, 41, 18, 13, 18, 240, 211, 0, 21, 234, 240, 29, 19, 252, 12, 8, 242, 227,
-			240, 16, 23, 16, 10, 248, 244, 242, 224, 235, 10, 21, 7, 22, 55, 42, 241, 220, 223, 212, 225, 236, 249, 46, 61, 32, 6, 0, 216, 205,
-			229, 23, 56, 32, 253, 4, 237, 220, 243, 240, 234, 7, 35, 39, 12, 255, 248, 243, 252, 243, 236, 246, 4, 253, 246, 0, 248, 250, 255, 1,
-			16, 27, 248, 211, 223, 254, 13, 13, 18, 14, 6, 251, 248, 252, 7, 245, 231, 246, 16, 11, 251, 2, 22, 24, 11, 246, 224, 241, 0, 253,
-			254, 1, 252, 244, 6, 254, 233, 252, 1, 231, 248, 249, 13, 45, 38, 13, 5, 233, 198, 218, 235, 239, 21, 67, 39, 14, 24, 19, 241, 211,
-			206, 226, 246, 15, 36, 48, 31, 21, 255, 241, 243, 248, 227, 230, 2, 6, 251, 14, 27, 7, 225, 219, 226, 221, 238, 31, 33, 17, 15, 16,
-			1, 212, 203, 215, 206, 233, 28, 47, 49, 46, 35, 244, 228, 228, 225, 221, 213, 244, 18, 30, 41, 19, 8, 255, 254, 245, 244, 250, 242, 224,
-			241, 2, 16, 31, 44, 17, 238, 226, 223, 249, 17, 252, 235, 0, 5, 16, 35, 15, 7, 225, 222, 248, 0, 243, 229, 3, 23, 32, 33, 9,
-			226, 218, 239, 247, 243, 12, 9, 12, 30, 36, 28, 245, 226, 242, 231, 227, 246, 0, 11, 34, 27, 15, 8, 9, 237, 201, 200, 249, 5, 5,
-			33, 2, 8, 61, 15, 219, 217, 252, 248, 228, 217, 237, 15, 249, 5, 34, 29, 44, 20, 243, 243, 179, 133, 207, 22, 38, 70, 100, 72, 16,
-			251, 197, 172, 210, 225, 236, 37, 90, 41, 252, 254, 238, 234, 222, 241, 5, 3, 9, 9, 18, 24, 235, 172, 196, 238, 29, 72, 49, 0, 214,
-			206, 233, 234, 218, 250, 32, 64, 11, 238, 13, 7, 217, 203, 219, 234, 6, 28, 61, 56, 19, 12, 245, 195, 183, 209, 243, 16, 34, 40, 25,
-			10, 0, 238, 218, 1, 9, 229, 240, 37, 34, 27, 0, 0, 0, 242, 227, 229, 246, 1, 29, 33, 24, 247, 219, 231, 254, 250, 0, 2, 254,
-			13, 19, 235, 236, 0, 0, 231, 236, 34, 23, 23, 40, 6, 237, 239, 239, 222, 225, 26, 60, 11, 246, 251, 249, 250, 249, 251, 23, 34, 22,
-			6, 9, 242, 200, 200, 226, 0, 17, 14, 45, 61, 75, 19, 189, 182, 194, 202, 231, 26, 26, 60, 77, 8, 239, 241, 222, 204, 212, 2, 53,
-			37, 6, 5, 1, 242, 240, 246, 224, 240, 22, 39, 27, 0, 35, 23, 247, 60, 18, 198, 215, 238, 237, 255, 49, 57, 10, 1, 5, 239, 219,
-			216, 208, 19, 93, 53, 30, 14, 226, 162, 155, 209, 0, 24, 77, 79, 44, 22, 255, 217, 170, 173, 228, 29, 63, 60, 68, 67, 25, 222, 190,
-			191, 197, 229, 21, 54, 40, 26, 58, 43, 229, 199, 248, 13, 206, 219, 9, 41, 82, 59, 20, 14, 13, 249, 188, 203, 251, 245, 246, 23, 30,
-			241, 0, 19, 16, 13, 6, 0, 228, 203, 220, 250, 2, 26, 19, 16, 17, 1, 239, 232, 240, 199, 198, 34, 83, 51, 31, 11, 200, 215, 4,
-			225, 206, 231, 4, 30, 39, 57, 55, 248, 241, 13, 236, 207, 211, 229, 5, 35, 64, 61, 50, 26, 219, 180, 190, 248, 253, 232, 29, 37, 12,
-			2, 249, 182, 197, 242, 241, 26, 58, 54, 30, 242, 207, 199, 204, 225, 18, 33, 31, 46, 38, 21, 241, 189, 170, 190, 213, 13, 66, 59, 25,
-			241, 220, 223, 214, 206, 215, 248, 6, 18, 4, 255, 10, 238, 232, 7, 236, 194, 225, 13, 21, 41, 22, 250, 216, 220, 247, 217, 192, 19, 88,
-			241, 251, 24, 233, 214, 232, 246, 229, 238, 48, 64, 253, 42, 57, 238, 194, 221, 215, 220, 220, 240, 68, 54, 1, 244, 208, 230, 245, 211, 233,
-			16, 7, 236, 233, 4, 14, 1, 230, 205, 212, 30, 47, 220, 215, 38, 11, 218, 216, 254, 20, 238, 3, 38, 48, 81, 53, 231, 171, 178, 250,
-			23, 35, 69, 50, 254, 243, 5, 214, 206, 253, 30, 36, 33, 12, 227, 228, 230, 232, 212, 204, 248, 247, 12, 16, 16, 26, 29, 220, 192, 3,
-			255, 242, 6, 2, 213, 242, 45, 32, 255, 253, 0, 2, 251, 249, 17, 33, 36, 17, 7, 252, 6, 73, 57, 22, 233, 225, 227, 231, 251, 235,
-			230, 1, 37, 64, 55, 250, 173, 177, 193, 237, 9, 56, 45, 247, 249, 13, 217, 206, 233, 225, 237, 42, 79, 50, 27, 226, 197, 240, 4, 23,
-			14, 244, 20, 33, 246, 231, 223, 204, 1, 105, 100, 38, 246, 220, 227, 211, 212, 225, 243, 43, 71, 65, 80, 42, 221, 190, 222, 217, 196, 223,
-			48, 80, 54, 45, 23, 15, 217, 147, 153, 253, 92, 81, 254, 16, 57, 5, 203, 183, 202, 225, 227, 7, 10, 49, 118, 75, 236, 220, 229, 220,
-			220, 224, 7, 90, 79, 26, 35, 247, 193, 199, 221, 11, 32, 61, 56, 6, 250, 243, 245, 234, 213, 216, 230, 25, 52, 66, 61, 10, 227, 192,
-			185, 194, 225, 241, 240, 57, 96, 54, 26, 254, 219, 182, 199, 222, 253, 16, 255, 2, 37, 32, 253, 249, 249, 221, 226, 253, 14, 29, 50, 48,
-			12, 194, 205, 27, 23, 238, 0, 38, 231, 199, 30, 5, 223, 16, 49, 60, 37, 224, 190, 208, 206, 227, 249, 5, 57, 57, 16, 0, 227, 223,
-			234, 216, 241, 16, 27, 31, 52, 17, 223, 236, 240, 201, 248, 29, 247, 27, 79, 11, 241, 16, 25, 9, 25, 16, 183, 196, 9, 47, 25, 252,
-			5, 29, 13, 247, 243, 243, 219, 207, 221, 9, 38, 46, 18, 248, 0, 253, 249, 220, 241, 29, 15, 17, 9, 22, 27, 12, 11, 233, 239, 19,
-			20, 254, 240, 9, 49, 16, 22, 26, 247, 232, 2, 254, 216, 16, 28, 239, 249, 18, 23, 231, 197, 230, 233, 1, 34, 10, 12, 25, 7, 242,
-			212, 221, 251, 20, 32, 32, 0, 31, 11, 247, 237, 225, 251, 33, 15, 240, 252, 22, 33, 22, 239, 255, 22, 34, 243, 18, 24, 237, 18, 219,
-			231, 6, 224, 3, 16, 24, 26, 246, 242, 207, 210, 0, 56, 55, 241, 228, 217, 209, 245, 235, 240, 250, 33, 21, 23, 57, 24, 227, 187, 200,
-			24, 37, 3, 21, 16, 254, 30, 15, 216, 211, 217, 218, 252, 50, 103, 34, 189, 225, 246, 235, 20, 8, 214, 222, 17, 51, 18, 5, 230, 188,
-			205, 27, 68, 26, 224, 230, 3, 24, 31, 13, 243, 224, 211, 226, 3, 42, 70, 55, 242, 190, 185, 226, 229, 225, 35, 55, 43, 16, 233, 15,
-			24, 231, 156, 200, 8, 245, 0, 19, 23, 13, 10, 253, 11, 4, 219, 233, 238, 220, 228, 8, 55, 45, 41, 50, 22, 246, 193, 162, 194, 250,
-			0, 7, 44, 76, 34, 238, 40, 39, 222, 175, 160, 227, 0, 11, 50, 58, 35, 9, 231, 191, 188, 209, 234, 14, 35, 58, 48, 43, 2, 211,
-			191, 198, 206, 12, 25, 27, 25, 240, 244, 0, 249, 253, 250, 245, 37, 34, 5, 252, 251, 245, 236, 225, 240, 17, 57, 66, 251, 235, 14, 233,
-			193, 221, 38, 51, 36, 33, 56, 44, 223, 185, 181, 188, 211, 235, 23, 44, 87, 94, 8, 217, 6, 238, 183, 214, 3, 10, 12, 44, 36, 16,
-			15, 253, 189, 192, 9, 252, 225, 248, 48, 52, 239, 252, 7, 5, 28, 30, 213, 208, 7, 220, 206, 0, 52, 42, 14, 249, 194, 219, 29, 68,
-			24, 241, 247, 237, 0, 7, 4, 195, 212, 3, 5, 59, 89, 26, 229, 217, 214, 212, 237, 28, 89, 50, 255, 245, 215, 212, 233, 234, 251, 6,
-			13, 15, 239, 204, 190, 216, 253, 26, 57, 75, 47, 214, 212, 227, 217, 245, 10, 43, 18, 240, 252, 8, 29, 26, 25, 247, 253, 11, 204, 190,
-			5, 14, 46, 59, 77, 72, 251, 164, 165, 178, 220, 24, 19, 23, 97, 90, 25, 245, 206, 160, 156, 189, 227, 41, 69, 92, 114, 28, 191, 133,
-			163, 211, 6, 33, 29, 59, 49, 15, 1, 242, 187, 201, 242, 253, 11, 31, 38, 248, 20, 46, 255, 233, 217, 220, 231, 8, 9, 242, 249, 28,
-			54, 251, 217, 253, 3, 0, 13, 239, 255, 38, 15, 3, 248, 0, 27, 24, 0, 4, 11, 234, 212, 226, 237, 10, 43, 22, 1, 254, 16, 6,
-			213, 181, 200, 208, 3, 72, 107, 54, 248, 194, 188, 203, 218, 235, 3, 51, 79, 55, 37, 240, 237, 203, 175, 233, 26, 51, 49, 5, 234, 235,
-			238, 226, 6, 13, 213, 242, 38, 17, 9, 0, 242, 30, 75, 21, 218, 197, 196, 235, 243, 44, 90, 39, 50, 32, 250, 5, 246, 189, 187, 240,
-			234, 231, 37, 70, 56, 234, 201, 219, 226, 11, 40, 24, 254, 251, 221, 216, 245, 13, 20, 18, 25, 234, 228, 18, 248, 253, 12, 21, 17, 2,
-			246, 214, 223, 37, 32, 255, 18, 35, 2, 220, 0, 9, 229, 32, 28, 237, 225, 236, 250, 11, 16, 241, 235, 7, 3, 251, 247, 6, 237, 196,
-			215, 250, 7, 4, 248, 52, 90, 13, 187, 221, 45, 246, 194, 228, 19, 30, 32, 48, 17, 21, 12, 218, 224, 6, 5, 234, 242, 248, 14, 43,
-			34, 17, 246, 194, 236, 248, 251, 7, 51, 14, 214, 20, 31, 249, 235, 212, 223, 253, 21, 46, 19, 227, 226, 248, 15, 39, 21, 1, 5, 227,
-			218, 255, 245, 7, 10, 16, 1, 2, 19, 250, 242, 233, 3, 255, 248, 18, 252, 225, 227, 0, 10, 20, 45, 255, 224, 243, 248, 241, 224, 253,
-			42, 27, 17, 28, 24, 227, 203, 223, 0, 254, 9, 16, 30, 45, 8, 16, 0, 212, 228, 254, 14, 16, 28, 9, 252, 227, 224, 231, 249, 25,
-			55, 18, 241, 227, 226, 252, 249, 249, 0, 4, 28, 27, 255, 253, 4, 249, 184, 168, 238, 37, 39, 50, 75, 33, 204, 197, 180, 202, 0, 247,
-			249, 56, 78, 25, 233, 215, 200, 187, 236, 5, 247, 28, 96, 107, 29, 234, 216, 150, 131, 193, 21, 57, 71, 70, 41, 8, 225, 186, 176, 239,
-			34, 45, 26, 10, 14, 243, 246, 213, 192, 21, 97, 87, 34, 250, 204, 204, 207, 224, 6, 26, 21, 30, 41, 6, 220, 208, 222, 242, 225, 2,
-			59, 41, 21, 5, 204, 196, 198, 212, 246, 5, 14, 20, 15, 41, 25, 243, 209, 204, 236, 227, 6, 72, 75, 60, 254, 200, 231, 18, 251, 207,
-			252, 55, 48, 7, 225, 1, 28, 236, 227, 12, 44, 38, 254, 239, 12, 11, 238, 215, 237, 12, 33, 0, 250, 21, 7, 13, 247, 199, 208, 228,
-			0, 26, 12, 39, 53, 9, 226, 221, 232, 245, 242, 243, 28, 42, 29, 22, 236, 224, 6, 1, 222, 227, 6, 10, 250, 248, 3, 17, 5, 234,
-			234, 249, 247, 237, 252, 6, 254, 248, 225, 5, 47, 25, 6, 254, 221, 226, 19, 9, 238, 255, 32, 33, 37, 30, 238, 236, 0, 228, 220, 18,
-			5, 246, 14, 40, 22, 244, 239, 239, 221, 213, 218, 225, 6, 45, 8, 1, 46, 30, 220, 200, 225, 241, 252, 252, 6, 28, 24, 17, 7, 9,
-			12, 252, 222, 230, 18, 1, 249, 26, 0, 14, 32, 26, 33, 12, 229, 216, 210, 228, 34, 36, 31, 37, 6, 244, 253, 241, 240, 236, 229, 8,
-			29, 35, 39, 19, 226, 233, 17, 13, 252, 241, 247, 253, 250, 8, 15, 2, 245, 2, 9, 244, 228, 234, 247, 4, 10, 25, 45, 22, 4, 250,
-			227, 201, 197, 234, 0, 13, 50, 41, 12, 0, 231, 207, 238, 252, 249, 4, 32, 45, 23, 19, 44, 1, 220, 251, 6, 4, 16, 8, 7, 35,
-			39, 25, 11, 255, 234, 237, 5, 8, 0, 242, 224, 245, 11, 18, 22, 254, 232, 227, 222, 229, 255, 0, 1, 254, 236, 5, 44, 32, 249, 219,
-			217, 237, 247, 254, 11, 25, 37, 34, 0, 231, 252, 12, 234, 221, 1, 26, 47, 29, 253, 251, 250, 254, 244, 252, 15, 28, 9, 8, 3, 240,
-			246, 251, 246, 248, 255, 0, 255, 251, 246, 243, 240, 236, 241, 244, 1, 13, 6, 248, 239, 225, 224, 243, 250, 244, 1, 14, 34, 41, 17, 248,
-			247, 3, 0, 242, 246, 7, 19, 19, 10, 9, 21, 25, 9, 251, 254, 5, 0, 3, 9, 251, 242, 254, 255, 1, 248, 242, 9, 15, 0, 250,
-			242, 227, 219, 237, 252, 7, 0, 20, 29, 248, 215, 226, 235, 238, 246, 3, 18, 14, 4, 248, 248, 250, 246, 248, 248, 0, 19, 18, 2, 0,
-			12, 11, 253, 236, 250, 17, 9, 251, 244, 5, 20, 20, 5, 5, 7, 1, 251, 248, 63, 10, 39, 0, 13, 248, 245, 253, 241, 11, 3, 240,
-			16, 34, 30, 0, 248, 250, 240, 9, 254, 13, 21, 14, 253, 236, 234, 1, 24, 0, 229, 248, 4, 9, 250, 0, 255, 246, 251, 231, 247, 0,
-			3, 243, 245, 244, 248, 2, 248, 244, 3, 12, 240, 4, 0, 244, 4, 34, 255, 235, 252, 12, 1, 9, 11, 29, 26, 228, 229, 241, 254, 17,
-			23, 0, 250, 3, 249, 217, 237, 3, 15, 10, 0, 255, 10, 225, 210, 25, 39, 6, 2, 255, 250, 8, 4, 2, 7, 39, 44, 3, 223, 214,
-			2, 48, 25, 223, 234, 14, 19, 246, 206, 228, 45, 36, 16, 245, 236, 229, 228, 248, 43, 57, 13, 239, 243, 243, 245, 7, 29, 29, 24, 245,
-			228, 238, 247, 14, 49, 43, 227, 216, 0, 34, 0, 237, 12, 51, 24, 212, 212, 14, 10, 226, 252, 28, 253, 235, 235, 245, 254, 250, 228, 0,
-			19, 241, 232, 254, 1, 231, 240, 249, 5, 21, 18, 253, 252, 236, 237, 6, 23, 17, 24, 3, 236, 7, 9, 2, 17, 14, 254, 248, 2, 6,
-			15, 7, 249, 9, 26, 251, 234, 10, 41, 16, 230, 227, 12, 31, 252, 247, 30, 48, 6, 219, 241, 6, 251, 1, 15, 20, 11, 230, 223, 252,
-			10, 0, 241, 249, 255, 243, 236, 246, 7, 1, 16, 11, 241, 222, 238, 14, 22, 11, 5, 9, 13, 2, 241, 222, 6, 41, 26, 249, 253, 9,
-			247, 230, 245, 12, 28, 254, 238, 248, 0, 227, 246, 15, 8, 249, 222, 226, 244, 28, 16, 254, 6, 0, 250, 233, 2, 8, 251, 0, 17, 4,
-			226, 230, 7, 15, 0, 229, 254, 45, 15, 233, 1, 42, 21, 233, 247, 30, 48, 19, 233, 220, 24, 54, 19, 6, 250, 223, 226, 251, 7, 30,
-			22, 16, 251, 227, 203, 236, 20, 27, 14, 244, 242, 239, 250, 12, 12, 0, 4, 2, 255, 16, 12, 247, 243, 255, 13, 24, 242, 220, 5, 28,
-			248, 210, 242, 24, 14, 8, 244, 242, 17, 7, 231, 244, 16, 27, 22, 9, 238, 6, 249, 226, 254, 43, 30, 242, 219, 233, 1, 6, 7, 4,
-			5, 245, 245, 254, 13, 249, 248, 35, 247, 240, 248, 0, 11, 25, 36, 3, 5, 6, 213, 237, 33, 26, 2, 241, 242, 224, 246, 4, 35, 4,
-			241, 28, 246, 206, 241, 20, 31, 18, 17, 244, 218, 217, 248, 57, 42, 226, 217, 2, 19, 230, 229, 24, 60, 15, 225, 222, 252, 245, 231, 18,
-			42, 18, 253, 3, 250, 229, 236, 10, 27, 11, 243, 248, 1, 239, 223, 7, 37, 10, 228, 235, 12, 3, 237, 0, 27, 24, 239, 243, 249, 251,
-			5, 9, 48, 50, 245, 220, 0, 47, 25, 12, 22, 26, 12, 237, 231, 249, 28, 1, 244, 253, 11, 247, 234, 243, 246, 12, 25, 3, 242, 233,
-			2, 16, 22, 254, 231, 12, 27, 0, 253, 30, 15, 243, 237, 235, 21, 44, 226, 196, 241, 252, 230, 239, 239, 247, 7, 243, 246, 8, 2, 243,
-			243, 254, 22, 10, 240, 246, 27, 0, 236, 7, 23, 11, 7, 235, 229, 34, 53, 239, 209, 255, 33, 29, 8, 226, 250, 36, 16, 205, 216, 1,
-			21, 2, 2, 18, 13, 242, 219, 227, 14, 25, 10, 251, 254, 14, 250, 253, 255, 15, 30, 248, 237, 6, 5, 233, 210, 0, 59, 33, 234, 245,
-			3, 5, 2, 15, 41, 54, 254, 222, 227, 236, 40, 57, 26, 250, 245, 249, 251, 16, 17, 254, 238, 247, 10, 16, 246, 241, 36, 16, 180, 189,
-			31, 27, 2, 13, 245, 198, 196, 15, 50, 43, 248, 222, 250, 239, 231, 8, 45, 32, 9, 4, 221, 206, 221, 8, 48, 30, 0, 234, 249, 225,
-			230, 27, 67, 32, 233, 232, 239, 242, 17, 6, 3, 37, 18, 233, 204, 235, 21, 6, 248, 2, 30, 15, 216, 205, 254, 42, 25, 255, 236, 246,
-			253, 250, 252, 26, 13, 7, 18, 16, 253, 227, 235, 25, 25, 243, 229, 31, 52, 252, 229, 250, 246, 243, 28, 50, 254, 224, 238, 25, 38, 254,
-			236, 255, 26, 20, 216, 218, 24, 38, 249, 252, 248, 226, 245, 242, 18, 58, 36, 239, 233, 241, 235, 249, 252, 6, 22, 35, 254, 217, 197, 12,
-			57, 55, 24, 238, 235, 231, 9, 25, 11, 244, 214, 251, 18, 236, 178, 226, 20, 255, 237, 0, 8, 243, 211, 219, 14, 54, 43, 1, 7, 246,
-			227, 233, 34, 87, 62, 242, 204, 225, 14, 27, 18, 39, 45, 20, 210, 195, 215, 9, 53, 22, 248, 18, 14, 206, 189, 0, 52, 56, 11, 233,
-			244, 246, 229, 231, 238, 28, 8, 204, 10, 54, 248, 230, 240, 231, 8, 30, 17, 237, 210, 247, 60, 70, 0, 212, 21, 38, 242, 226, 26, 70,
-			35, 244, 231, 234, 251, 5, 27, 34, 26, 0, 222, 225, 226, 5, 76, 59, 217, 168, 233, 23, 1, 248, 29, 53, 11, 240, 213, 231, 11, 21,
-			6, 5, 4, 240, 231, 224, 228, 5, 2, 238, 232, 229, 244, 247, 241, 242, 3, 13, 9, 238, 224, 255, 3, 8, 24, 250, 247, 20, 20, 247,
-			244, 255, 29, 7, 214, 247, 52, 32, 218, 246, 15, 0, 245, 246, 11, 14, 0, 252, 18, 241, 215, 17, 58, 35, 0, 6, 7, 245, 228, 222,
-			6, 65, 60, 231, 200, 235, 25, 252, 242, 18, 31, 6, 250, 0, 9, 5, 216, 1, 62, 22, 1, 250, 9, 27, 28, 33, 32, 0, 229, 243,
-			248, 16, 14, 15, 6, 7, 249, 219, 227, 249, 11, 20, 4, 229, 241, 7, 0, 242, 254, 225, 185, 253, 58, 16, 216, 223, 232, 244, 246, 235,
-			13, 40, 8, 220, 201, 211, 8, 55, 18, 239, 241, 250, 254, 2, 18, 30, 22, 44, 22, 217, 193, 7, 70, 52, 28, 248, 218, 234, 238, 19,
-			37, 13, 254, 16, 1, 215, 222, 14, 28, 28, 14, 248, 240, 11, 0, 250, 18, 18, 255, 222, 241, 20, 29, 252, 233, 254, 7, 235, 231, 21,
-			38, 238, 226, 238, 236, 3, 25, 23, 11, 231, 234, 2, 1, 26, 43, 22, 223, 220, 241, 238, 254, 19, 33, 1, 234, 186, 207, 34, 47, 16,
-			245, 3, 10, 232, 204, 245, 60, 48, 235, 248, 16, 2, 0, 16, 11, 25, 37, 12, 254, 250, 251, 48, 53, 251, 236, 9, 25, 14, 247, 2,
-			250, 223, 172, 236, 25, 38, 47, 0, 174, 182, 237, 5, 5, 26, 47, 0, 204, 190, 199, 254, 72, 54, 251, 221, 236, 252, 18, 12, 12, 25,
-			23, 8, 234, 231, 19, 19, 239, 233, 25, 30, 0, 0, 21, 9, 241, 212, 222, 22, 45, 22, 217, 228, 18, 13, 237, 220, 233, 18, 33, 246,
-			201, 221, 1, 14, 2, 8, 11, 228, 228, 8, 20, 14, 18, 24, 252, 15, 21, 21, 29, 15, 0, 48, 74, 247, 223, 35, 57, 6, 18, 45,
-			27, 241, 237, 216, 247, 7, 249, 239, 252, 4, 5, 241, 245, 233, 226, 249, 255, 252, 227, 248, 25, 0, 186, 237, 43, 241, 226, 13, 31, 238,
-			178, 185, 17, 51, 3, 254, 25, 0, 205, 212, 255, 22, 39, 25, 254, 244, 246, 226, 254, 48, 40, 19, 235, 202, 225, 19, 19, 23, 46, 32,
-			236, 169, 168, 234, 51, 74, 66, 25, 212, 146, 199, 26, 83, 74, 35, 241, 196, 176, 224, 32, 92, 79, 12, 242, 207, 205, 0, 66, 111, 79,
-			242, 192, 199, 4, 63, 82, 48, 242, 227, 195, 210, 12, 71, 49, 251, 221, 185, 208, 242, 3, 34, 48, 6, 205, 202, 235, 15, 38, 22, 4,
-			228, 236, 250, 226, 229, 19, 34, 1, 251, 15, 11, 250, 212, 211, 10, 48, 26, 253, 0, 245, 235, 1, 11, 25, 11, 13, 20, 249, 216, 221,
-			13, 58, 30, 239, 201, 230, 244, 0, 0, 6, 251, 13, 11, 228, 225, 243, 29, 47, 13, 252, 251, 228, 223, 24, 57, 15, 0, 0, 2, 247,
-			236, 6, 22, 7, 0, 251, 243, 236, 238, 250, 9, 37, 35, 234, 207, 248, 17, 5, 255, 11, 1, 223, 205, 235, 48, 38, 8, 238, 221, 236,
-			5, 49, 45, 1, 233, 253, 8, 4, 17, 41, 35, 8, 246, 240, 5, 35, 33, 4, 23, 10, 232, 230, 243, 11, 28, 36, 4, 250, 247, 199,
-			220, 4, 28, 45, 15, 187, 187, 11, 17, 226, 240, 20, 11, 235, 202, 219, 238, 249, 241, 41, 54, 219, 207, 235, 248, 15, 18, 5, 34, 35,
-			247, 206, 247, 48, 54, 4, 219, 250, 18, 1, 1, 12, 253, 255, 18, 228, 226, 39, 31, 222, 244, 238, 236, 5, 9, 21, 42, 6, 206, 208,
-			234, 8, 73, 103, 1, 185, 201, 217, 2, 51, 64, 78, 42, 192, 152, 226, 31, 47, 65, 78, 42, 179, 132, 228, 36, 40, 60, 44, 22, 249,
-			218, 185, 236, 44, 32, 39, 53, 16, 218, 183, 226, 29, 48, 38, 235, 230, 10, 0, 226, 247, 27, 25, 253, 217, 239, 3, 250, 234, 239, 20,
-			233, 226, 2, 24, 38, 6, 192, 236, 31, 236, 230, 9, 26, 50, 10, 193, 186, 238, 26, 29, 19, 21, 1, 226, 205, 223, 250, 38, 45, 27,
-			251, 214, 190, 235, 33, 50, 37, 253, 216, 212, 238, 5, 23, 8, 21, 18, 242, 217, 207, 7, 39, 38, 6, 227, 246, 33, 37, 252, 9, 35,
-			1, 211, 243, 23, 42, 20, 246, 8, 19, 222, 199, 10, 70, 34, 230, 205, 224, 25, 14, 226, 12, 51, 245, 198, 1, 37, 254, 233, 254, 19,
-			43, 10, 208, 218, 9, 31, 40, 8, 223, 233, 8, 240, 226, 2, 57, 34, 241, 3, 255, 244, 9, 38, 42, 18, 251, 0, 255, 235, 8, 30,
-			4, 6, 16, 254, 240, 249, 11, 41, 247, 227, 252, 2, 2, 5, 254, 14, 26, 10, 228, 227, 243, 11, 19, 253, 243, 0, 4, 238, 240, 3,
-			18, 255, 229, 246, 246, 14, 245, 214, 240, 12, 8, 246, 246, 253, 8, 253, 250, 253, 9, 28, 0, 248, 255, 254, 248, 16, 10, 228, 247, 255,
-			248, 5, 255, 248, 0, 249, 247, 241, 238, 239, 242, 2, 28, 24, 7, 237, 211, 226, 19, 36, 33, 29, 4, 251, 221, 221, 17, 42, 30, 0,
-			252, 239, 220, 5, 17, 20, 13, 13, 241, 226, 241, 0, 7, 21, 32, 35, 16, 253, 254, 23, 2, 253, 29, 39, 16, 242, 242, 24, 14, 0,
-			12, 19, 0, 221, 225, 10, 35, 15, 249, 8, 7, 221, 222, 3, 17, 26, 8, 242, 255, 251, 237, 219, 1, 35, 40, 243, 189, 202, 235, 12,
-			16, 25, 33, 255, 195, 183, 222, 252, 51, 38, 5, 0, 233, 180, 184, 11, 90, 100, 41, 219, 208, 1, 239, 230, 34, 68, 46, 255, 227, 201,
-			220, 5, 19, 47, 38, 251, 201, 181, 243, 23, 25, 21, 21, 6, 235, 202, 196, 10, 58, 33, 253, 240, 236, 246, 18, 2, 244, 9, 36, 16,
-			238, 243, 4, 14, 24, 1, 223, 4, 43, 255, 221, 9, 31, 4, 233, 253, 33, 17, 7, 52, 50, 2, 230, 231, 248, 1, 3, 52, 62, 14,
-			219, 197, 250, 47, 14, 234, 16, 38, 245, 197, 205, 240, 17, 47, 44, 12, 194, 183, 241, 25, 44, 15, 254, 255, 227, 199, 229, 23, 40, 46,
-			6, 207, 186, 213, 249, 16, 41, 42, 43, 235, 160, 194, 27, 89, 51, 243, 238, 237, 213, 213, 14, 72, 62, 11, 240, 225, 221, 3, 46, 44,
-			28, 0, 228, 189, 213, 20, 26, 32, 31, 1, 229, 199, 215, 11, 36, 9, 248, 10, 2, 238, 0, 14, 20, 6, 12, 8, 244, 242, 9, 32,
-			2, 235, 2, 12, 1, 254, 12, 18, 0, 240, 252, 241, 243, 39, 33, 239, 213, 246, 14, 0, 247, 252, 38, 22, 199, 190, 241, 31, 28, 244,
-			237, 2, 246, 214, 254, 55, 27, 239, 239, 13, 14, 248, 8, 0, 0, 11, 243, 242, 245, 5, 33, 249, 225, 250, 20, 248, 222, 22, 56, 6,
-			201, 218, 14, 30, 7, 251, 23, 34, 246, 204, 233, 24, 54, 34, 6, 2, 246, 234, 228, 245, 39, 38, 6, 242, 233, 240, 3, 15, 23, 31,
-			9, 233, 243, 254, 0, 2, 23, 40, 26, 252, 232, 244, 245, 0, 37, 28, 250, 236, 223, 227, 251, 5, 21, 49, 26, 235, 202, 215, 11, 39,
-			19, 253, 235, 249, 249, 224, 227, 16, 43, 14, 245, 232, 239, 255, 254, 11, 19, 6, 238, 241, 5, 12, 0, 242, 245, 251, 2, 15, 252, 235,
-			254, 14, 253, 244, 27, 27, 237, 235, 1, 28, 12, 243, 249, 6, 5, 0, 0, 6, 1, 11, 1, 244, 1, 248, 238, 2, 21, 14, 5, 0,
-			0, 11, 252, 216, 220, 26, 61, 16, 244, 0, 4, 232, 225, 245, 32, 63, 29, 240, 228, 214, 228, 18, 38, 32, 5, 224, 223, 242, 252, 247,
-			28, 56, 11, 219, 206, 213, 251, 24, 36, 36, 32, 1, 219, 214, 232, 10, 51, 50, 21, 229, 212, 239, 250, 5, 38, 52, 25, 232, 194, 223,
-			7, 20, 28, 39, 18, 237, 214, 236, 249, 0, 30, 35, 14, 230, 219, 241, 251, 255, 12, 21, 243, 215, 234, 0, 7, 254, 1, 254, 248, 248,
-			252, 255, 251, 245, 235, 255, 46, 53, 3, 233, 243, 249, 241, 240, 0, 40, 65, 29, 214, 220, 255, 1, 255, 39, 52, 10, 231, 212, 230, 15,
-			43, 28, 252, 245, 243, 250, 8, 251, 0, 26, 37, 10, 233, 219, 236, 14, 39, 36, 5, 235, 243, 252, 239, 0, 34, 20, 247, 240, 8, 14,
-			237, 241, 13, 19, 1, 254, 5, 253, 237, 233, 0, 23, 18, 252, 237, 245, 4, 8, 250, 255, 6, 1, 232, 222, 3, 40, 39, 0, 229, 242,
-			247, 237, 248, 15, 32, 24, 235, 221, 238, 254, 2, 244, 0, 30, 14, 232, 217, 232, 0, 11, 18, 8, 9, 1, 222, 235, 11, 7, 16, 23,
-			249, 242, 250, 246, 8, 40, 9, 224, 245, 19, 22, 5, 0, 1, 255, 253, 0, 14, 12, 254, 254, 17, 12, 229, 232, 0, 11, 10, 7, 251,
-			242, 246, 231, 230, 8, 26, 23, 5, 226, 222, 252, 23, 23, 7, 254, 250, 4, 21, 21, 23, 31, 26, 0, 239, 249, 13, 20, 16, 18, 30,
-			17, 250, 0, 17, 11, 247, 245, 236, 0, 25, 13, 235, 237, 253, 249, 245, 240, 238, 246, 247, 250, 253, 0, 0, 244, 244, 239, 242, 5, 13,
-			254, 240, 236, 253, 5, 252, 251, 9, 6, 235, 217, 241, 11, 12, 10, 15, 18, 254, 234, 247, 20, 10, 245, 2, 22, 17, 250, 242, 4, 1,
-			245, 231, 249, 26, 26, 4, 6, 9, 243, 228, 245, 16, 33, 19, 240, 235, 4, 18, 247, 235, 8, 33, 11, 242, 237, 251, 12, 11, 8, 15,
-			10, 1, 254, 253, 245, 255, 20, 31, 18, 252, 244, 253, 7, 23, 29, 23, 0, 239, 235, 247, 17, 26, 17, 3, 249, 242, 229, 235, 0, 17,
-			13, 255, 245, 246, 245, 239, 242, 11, 27, 12, 245, 231, 241, 246, 248, 10, 34, 26, 246, 233, 241, 254, 255, 247, 22, 50, 21, 234, 231, 4,
-			17, 12, 7, 0, 248, 246, 254, 10, 0, 237, 252, 17, 9, 247, 225, 237, 13, 11, 0, 1, 247, 227, 222, 235, 4, 25, 15, 0, 238, 222,
-			215, 234, 3, 26, 22, 0, 35, 9, 17, 0, 236, 5, 4, 238, 4, 25, 5, 241, 231, 8, 35, 1, 223, 21, 16, 5, 243, 242, 12, 32,
-			16, 240, 211, 207, 18, 20, 252, 2, 247, 8, 0, 17, 23, 40, 29, 243, 207, 190, 244, 45, 62, 5, 244, 212, 237, 251, 232, 235, 35, 66,
-			40, 247, 203, 203, 3, 55, 45, 26, 229, 225, 254, 240, 212, 243, 45, 54, 35, 235, 168, 203, 40, 70, 46, 233, 199, 3, 20, 6, 0, 13,
-			7, 16, 214, 200, 8, 46, 51, 12, 187, 184, 21, 72, 22, 235, 231, 17, 47, 16, 226, 200, 1, 46, 5, 214, 221, 16, 43, 10, 230, 249,
-			27, 3, 225, 5, 35, 16, 8, 209, 200, 9, 5, 64, 80, 217, 195, 243, 254, 53, 18, 218, 226, 5, 255, 252, 240, 243, 38, 54, 240, 226,
-			28, 3, 246, 7, 9, 6, 242, 194, 236, 39, 51, 22, 226, 238, 9, 15, 234, 245, 24, 29, 2, 218, 194, 245, 36, 49, 24, 241, 225, 8,
-			31, 10, 6, 244, 233, 234, 247, 245, 25, 35, 16, 255, 234, 213, 10, 17, 0, 255, 12, 7, 3, 250, 0, 254, 12, 22, 235, 229, 222, 251,
-			47, 56, 5, 247, 204, 226, 1, 5, 20, 17, 52, 47, 208, 169, 228, 13, 37, 33, 43, 246, 206, 208, 255, 46, 13, 2, 13, 5, 2, 233,
-			230, 5, 37, 20, 243, 219, 219, 8, 45, 17, 8, 254, 236, 215, 245, 29, 56, 42, 242, 215, 211, 243, 252, 29, 61, 48, 224, 161, 201, 11,
-			59, 58, 32, 232, 221, 220, 244, 19, 46, 12, 0, 241, 223, 13, 36, 253, 240, 13, 245, 241, 248, 242, 249, 23, 1, 8, 20, 1, 255, 255,
-			0, 250, 254, 253, 28, 11, 244, 249, 227, 230, 35, 34, 1, 230, 216, 1, 49, 32, 241, 219, 213, 10, 58, 28, 9, 255, 230, 244, 2, 237,
-			251, 18, 0, 14, 16, 250, 237, 225, 230, 16, 32, 7, 3, 12, 2, 241, 231, 23, 57, 12, 230, 236, 247, 249, 4, 239, 229, 14, 8, 0,
-			9, 3, 21, 15, 222, 243, 25, 19, 17, 248, 250, 255, 224, 232, 22, 37, 10, 245, 240, 230, 4, 20, 231, 239, 40, 41, 252, 231, 254, 13,
-			4, 243, 254, 26, 2, 235, 217, 235, 5, 18, 26, 9, 2, 15, 15, 238, 235, 8, 33, 254, 237, 250, 12, 255, 217, 232, 14, 12, 10, 253,
-			252, 15, 24, 252, 238, 246, 9, 9, 14, 44, 11, 223, 202, 229, 15, 35, 39, 245, 236, 231, 234, 254, 43, 52, 1, 175, 170, 20, 70, 63,
-			13, 201, 11, 35, 248, 242, 14, 5, 35, 8, 187, 181, 240, 24, 40, 18, 229, 23, 18, 238, 242, 42, 48, 31, 232, 132, 203, 68, 61, 5,
-			236, 230, 14, 31, 242, 5, 12, 6, 210, 206, 13, 70, 39, 254, 241, 235, 249, 241, 232, 245, 23, 51, 19, 199, 200, 239, 46, 34, 20, 26,
-			20, 246, 226, 241, 0, 240, 20, 45, 248, 230, 241, 237, 16, 24, 230, 222, 2, 250, 17, 26, 8, 8, 252, 199, 231, 41, 64, 60, 5, 234,
-			249, 9, 218, 239, 28, 246, 202, 206, 228, 20, 33, 3, 10, 32, 7, 242, 4, 242, 39, 74, 16, 6, 220, 191, 227, 16, 39, 31, 235, 179,
-			189, 244, 15, 64, 101, 32, 195, 180, 210, 26, 78, 51, 41, 253, 196, 212, 228, 0, 53, 41, 251, 232, 218, 217, 254, 23, 9, 26, 29, 246,
-			226, 248, 17, 15, 2, 245, 2, 19, 241, 238, 13, 9, 25, 252, 241, 249, 251, 12, 252, 1, 251, 232, 248, 9, 253, 11, 8, 4, 6, 240,
-			5, 22, 21, 8, 3, 244, 252, 253, 248, 248, 213, 228, 17, 39, 18, 25, 0, 242, 241, 224, 235, 29, 28, 30, 6, 239, 3, 220, 222, 9,
-			37, 62, 26, 215, 211, 247, 17, 13, 227, 246, 0, 252, 251, 245, 2, 54, 67, 242, 197, 233, 17, 10, 43, 1, 199, 233, 26, 19, 0, 241,
-			7, 23, 2, 234, 225, 0, 0, 251, 255, 18, 43, 1, 219, 238, 28, 51, 34, 221, 210, 238, 248, 5, 19, 6, 254, 1, 254, 242, 9, 7,
-			6, 241, 238, 252, 251, 11, 33, 51, 22, 255, 225, 201, 229, 13, 27, 24, 8, 238, 236, 243, 240, 253, 0, 18, 20, 255, 1, 19, 35, 13,
-			230, 233, 249, 255, 27, 9, 251, 248, 238, 220, 220, 13, 63, 45, 250, 230, 187, 217, 45, 54, 39, 254, 231, 247, 17, 6, 7, 34, 45, 247,
-			185, 174, 211, 252, 21, 40, 50, 24, 236, 217, 227, 18, 52, 57, 26, 237, 221, 233, 248, 9, 235, 252, 28, 4, 248, 221, 236, 1, 11, 21,
-			18, 9, 1, 247, 11, 34, 241, 217, 235, 26, 41, 3, 236, 5, 4, 248, 212, 194, 13, 90, 59, 10, 202, 206, 1, 249, 0, 18, 37, 28,
-			249, 210, 212, 5, 33, 24, 37, 26, 227, 220, 233, 243, 14, 26, 14, 251, 254, 240, 214, 239, 30, 41, 41, 253, 222, 221, 227, 15, 56, 49,
-			10, 245, 222, 241, 245, 6, 255, 218, 243, 26, 19, 0, 247, 238, 32, 34, 243, 234, 236, 22, 39, 25, 4, 238, 230, 243, 232, 242, 9, 9,
-			34, 3, 236, 238, 255, 254, 20, 14, 10, 14, 16, 6, 204, 221, 11, 24, 31, 255, 241, 249, 248, 255, 246, 0, 24, 24, 3, 228, 236, 0,
-			250, 4, 15, 14, 16, 247, 232, 250, 28, 21, 247, 239, 2, 15, 8, 236, 215, 13, 31, 254, 221, 240, 40, 42, 244, 216, 255, 40, 16, 233,
-			222, 10, 55, 34, 220, 209, 232, 253, 247, 251, 53, 45, 1, 229, 219, 246, 32, 37, 243, 240, 3, 19, 255, 225, 219, 13, 22, 14, 5, 254,
-			3, 10, 238, 210, 243, 30, 40, 27, 16, 242, 246, 227, 229, 8, 18, 21, 14, 237, 238, 255, 241, 0, 253, 9, 36, 24, 230, 224, 0, 31,
-			35, 3, 238, 249, 3, 232, 222, 239, 11, 34, 15, 5, 249, 21, 10, 241, 239, 4, 30, 9, 225, 232, 13, 12, 246, 215, 242, 28, 29, 34,
-			15, 255, 246, 240, 230, 235, 30, 35, 254, 233, 235, 250, 8, 7, 249, 33, 39, 0, 228, 231, 240, 0, 245, 7, 22, 23, 15, 248, 218, 238,
-			12, 42, 28, 243, 239, 231, 221, 13, 32, 12, 0, 8, 249, 240, 231, 1, 37, 23, 14, 255, 224, 234, 237, 0, 24, 35, 251, 227, 251, 17,
-			2, 250, 253, 14, 27, 253, 226, 239, 13, 9, 255, 254, 24, 25, 242, 230, 231, 238, 10, 15, 22, 254, 253, 242, 10, 21, 237, 0, 19, 10,
-			11, 5, 227, 227, 13, 27, 255, 228, 245, 13, 18, 13, 234, 230, 13, 22, 254, 241, 4, 28, 20, 251, 235, 241, 5, 2, 248, 252, 252, 19,
-			12, 252, 251, 19, 3, 236, 5, 1, 252, 254, 243, 242, 13, 13, 249, 249, 2, 17, 28, 7, 246, 253, 249, 235, 6, 254, 5, 6, 254, 252,
-			6, 17, 242, 248, 244, 254, 39, 30, 224, 215, 255, 24, 27, 3, 228, 255, 18, 253, 229, 241, 17, 14, 31, 248, 234, 254, 15, 252, 11, 4,
-			0, 10, 9, 235, 213, 248, 34, 31, 242, 235, 242, 23, 7, 238, 252, 17, 3, 255, 2, 14, 37, 245, 220, 229, 9, 34, 15, 248, 244, 241,
-			238, 9, 36, 22, 241, 228, 230, 230, 18, 33, 23, 3, 234, 234, 22, 15, 237, 250, 16, 39, 21, 250, 226, 229, 251, 1, 15, 7, 6, 0,
-			238, 249, 254, 227, 241, 9, 33, 54, 30, 216, 198, 232, 11, 58, 59, 26, 255, 207, 199, 235, 0, 26, 44, 14, 234, 221, 242, 247, 245, 5,
-			26, 40, 9, 235, 224, 1, 23, 19, 5, 1, 0, 1, 252, 251, 255, 5, 25, 255, 217, 224, 249, 23, 16, 2, 241, 233, 255, 25, 10, 9,
-			11, 243, 3, 27, 14, 254, 252, 7, 225, 204, 8, 46, 20, 248, 214, 234, 15, 3, 253, 20, 21, 11, 246, 227, 0, 25, 28, 11, 227, 206,
-			247, 37, 42, 4, 247, 20, 240, 196, 207, 24, 51, 42, 8, 225, 239, 244, 250, 10, 24, 27, 7, 229, 209, 235, 15, 56, 40, 8, 229, 226,
-			232, 244, 6, 36, 12, 242, 227, 242, 11, 44, 29, 1, 0, 237, 230, 242, 6, 10, 28, 10, 207, 218, 11, 21, 31, 28, 235, 243, 254, 251,
-			251, 6, 32, 12, 252, 226, 0, 35, 249, 223, 230, 253, 29, 25, 243, 219, 2, 22, 7, 10, 245, 14, 27, 246, 235, 1, 0, 9, 12, 242,
-			239, 5, 4, 254, 247, 0, 10, 4, 250, 250, 30, 5, 220, 241, 9, 26, 26, 248, 242, 16, 20, 231, 212, 243, 15, 56, 18, 232, 247, 250,
-			238, 250, 246, 30, 32, 255, 239, 232, 232, 16, 26, 11, 26, 11, 254, 236, 226, 241, 5, 1, 250, 22, 18, 244, 225, 0, 24, 23, 19, 247,
-			242, 4, 0, 244, 253, 2, 22, 254, 223, 236, 14, 14, 250, 0, 24, 27, 250, 214, 222, 34, 58, 26, 221, 203, 253, 25, 19, 0, 240, 0,
-			11, 223, 243, 249, 11, 34, 252, 248, 14, 4, 25, 5, 223, 3, 14, 20, 0, 207, 227, 9, 21, 28, 9, 240, 243, 250, 0, 248, 2, 33,
-			22, 231, 210, 242, 37, 40, 15, 0, 238, 242, 6, 1, 228, 251, 19, 25, 255, 244, 242, 245, 239, 254, 15, 13, 18, 6, 253, 16, 7, 251,
-			251, 246, 254, 1, 3, 251, 231, 241, 1, 11, 36, 31, 243, 230, 13, 245, 247, 10, 254, 5, 26, 247, 215, 242, 11, 31, 28, 0, 246, 0,
-			239, 234, 242, 7, 16, 25, 0, 241, 253, 12, 0, 255, 250, 8, 29, 253, 221, 239, 16, 29, 15, 228, 216, 253, 25, 28, 255, 247, 255, 0,
-			22, 249, 237, 253, 8, 254, 252, 14, 19, 250, 251, 241, 252, 0, 13, 21, 5, 245, 233, 5, 9, 13, 12, 239, 214, 233, 18, 33, 29, 246,
-			232, 255, 31, 2, 255, 3, 250, 0, 252, 249, 8, 11, 240, 247, 0, 247, 7, 4, 246, 9, 28, 18, 246, 218, 238, 25, 29, 6, 249, 244,
-			238, 246, 255, 10, 38, 24, 241, 234, 240, 249, 16, 11, 20, 0, 240, 223, 232, 254, 33, 38, 14, 248, 220, 242, 12, 16, 17, 255, 243, 253,
-			0, 15, 12, 247, 1, 236, 218, 255, 25, 33, 27, 250, 234, 239, 0, 4, 242, 254, 39, 44, 0, 219, 206, 246, 20, 7, 243, 250, 30, 35,
-			237, 224, 255, 22, 30, 8, 5, 254, 5, 247, 229, 215, 252, 20, 28, 0, 234, 250, 3, 245, 245, 13, 28, 52, 18, 225, 224, 3, 23, 1,
-			254, 13, 2, 229, 206, 231, 13, 39, 19, 10, 0, 231, 236, 3, 17, 31, 28, 9, 247, 225, 217, 237, 5, 36, 37, 16, 237, 222, 227, 3,
-			15, 31, 10, 243, 246, 236, 18, 31, 247, 237, 6, 23, 2, 237, 240, 239, 5, 26, 2, 255, 2, 1, 13, 242, 242, 253, 0, 28, 29, 249,
-			226, 243, 2, 9, 255, 11, 18, 8, 242, 226, 232, 11, 22, 20, 13, 253, 244, 233, 228, 248, 15, 47, 42, 243, 228, 244, 252, 20, 21, 0,
-			10, 231, 207, 254, 26, 14, 254, 244, 248, 24, 13, 245, 224, 252, 29, 24, 0, 235, 2, 19, 26, 249, 231, 247, 17, 255, 236, 253, 7, 0,
-			248, 0, 2, 251, 0, 255, 14, 29, 12, 239, 238, 253, 8, 27, 9, 245, 237, 240, 1, 8, 3, 13, 5, 243, 236, 1, 2, 252, 4, 25,
-			6, 4, 255, 249, 255, 239, 10, 27, 254, 244, 246, 241, 0, 19, 4, 3, 9, 247, 1, 16, 240, 244, 248, 250, 6, 4, 13, 13, 249, 239,
-			255, 14, 23, 9, 251, 237, 246, 2, 28, 11, 245, 222, 243, 6, 18, 4, 1, 237, 1, 11, 7, 251, 246, 8, 29, 8, 2, 253, 236, 229,
-			5, 25, 13, 16, 245, 225, 232, 1, 15, 20, 7, 246, 4, 245, 0, 13, 1, 249, 8, 14, 18, 246, 211, 246, 25, 31, 0, 253, 249, 231,
-			0, 2, 7, 31, 16, 249, 228, 211, 241, 31, 35, 16, 2, 241, 241, 237, 255, 27, 21, 6, 243, 242, 252, 3, 14, 8, 1, 2, 248, 234,
-			2, 3, 13, 7, 230, 227, 14, 11, 13, 19, 2, 254, 2, 236, 244, 21, 19, 0, 255, 0, 250, 241, 233, 252, 18, 19, 19, 7, 241, 245,
-			239, 233, 9, 29, 28, 8, 253, 241, 238, 231, 242, 11, 43, 27, 5, 237, 223, 243, 15, 14, 11, 16, 0, 241, 247, 0, 245, 245, 245, 20,
-			38, 16, 243, 226, 236, 10, 21, 1, 247, 255, 0, 22, 3, 237, 0, 0, 10, 15, 1, 5, 248, 240, 1, 4, 249, 248, 255, 255, 2, 3,
-			2, 17, 8, 251, 235, 253, 24, 25, 7, 236, 239, 5, 254, 248, 6, 0, 8, 0, 246, 250, 4, 9, 17, 11, 245, 244, 246, 247, 14, 11,
-			242, 238, 6, 29, 30, 4, 232, 245, 253, 248, 0, 251, 0, 24, 23, 243, 220, 235, 7, 37, 32, 254, 238, 242, 255, 1, 7, 6, 8, 253,
-			235, 238, 7, 6, 7, 12, 2, 13, 248, 223, 11, 40, 14, 243, 240, 229, 228, 5, 23, 40, 44, 246, 206, 221, 240, 12, 28, 15, 8, 3,
-			0, 238, 230, 0, 37, 30, 251, 239, 254, 2, 246, 243, 246, 6, 22, 12, 1, 253, 246, 240, 251, 7, 15, 10, 4, 9, 248, 246, 242, 249,
-			255, 6, 15, 13, 7, 247, 244, 253, 0, 2, 16, 23, 251, 231, 244, 6, 9, 13, 252, 239, 251, 252, 252, 10, 13, 8, 254, 252, 243, 5,
-			13, 9, 2, 3, 247, 245, 6, 9, 0, 0, 85, 11, 17, 0, 226, 222, 223, 227, 234, 254, 34, 46, 27, 14, 35, 68, 75, 54, 29, 12,
-			1, 255, 246, 244, 242, 250, 3, 3, 253, 225, 207, 195, 187, 199, 222, 243, 11, 20, 11, 0, 2, 16, 29, 30, 20, 1, 247, 242, 240, 236,
-			0, 43, 78, 70, 35, 11, 3, 8, 4, 247, 229, 222, 226, 225, 229, 233, 244, 248, 10, 23, 17, 252, 241, 252, 2, 1, 8, 33, 47, 48,
-			29, 252, 243, 241, 232, 211, 195, 188, 208, 212, 224, 252, 42, 70, 84, 78, 67, 44, 22, 14, 242, 212, 187, 179, 186, 190, 180, 189, 210, 228,
-			242, 8, 17, 21, 39, 46, 37, 46, 62, 84, 83, 65, 51, 38, 7, 228, 203, 193, 188, 195, 192, 196, 220, 231, 0, 36, 61, 42, 16, 252,
-			4, 6, 11, 1, 243, 237, 254, 31, 52, 40, 9, 245, 252, 8, 13, 9, 13, 24, 36, 42, 42, 39, 40, 51, 53, 22, 226, 196, 200, 216,
-			218, 212, 229, 239, 227, 222, 231, 255, 0, 253, 243, 243, 250, 0, 1, 242, 230, 242, 17, 45, 31, 5, 3, 30, 12, 231, 208, 204, 232, 251,
-			239, 229, 241, 19, 65, 58, 35, 34, 45, 44, 17, 255, 245, 229, 212, 164, 132, 145, 179, 225, 27, 43, 23, 23, 42, 65, 51, 36, 22, 24,
-			25, 22, 6, 0, 253, 3, 26, 20, 20, 26, 16, 244, 230, 225, 0, 31, 27, 10, 11, 7, 245, 246, 245, 244, 254, 11, 9, 237, 228, 222,
-			245, 14, 19, 12, 10, 5, 15, 6, 243, 239, 239, 250, 0, 239, 207, 200, 215, 240, 0, 254, 1, 34, 57, 41, 6, 227, 208, 236, 13, 29,
-			250, 218, 215, 248, 4, 236, 229, 240, 26, 45, 24, 9, 0, 6, 33, 42, 27, 12, 17, 29, 28, 27, 22, 17, 18, 22, 6, 228, 199, 208,
-			231, 250, 242, 242, 241, 15, 39, 40, 11, 237, 242, 11, 16, 251, 208, 196, 240, 40, 30, 247, 251, 50, 82, 61, 253, 219, 223, 241, 254, 0,
-			0, 10, 30, 43, 26, 250, 229, 228, 227, 216, 184, 192, 206, 210, 220, 245, 2, 34, 58, 76, 80, 57, 16, 248, 226, 213, 202, 214, 225, 231,
-			238, 242, 237, 247, 18, 48, 40, 15, 252, 231, 235, 249, 2, 14, 20, 20, 25, 9, 227, 211, 250, 46, 56, 39, 23, 30, 54, 43, 32, 31,
-			28, 21, 253, 213, 202, 223, 3, 15, 242, 217, 239, 32, 24, 241, 216, 235, 16, 21, 240, 228, 3, 47, 44, 1, 230, 239, 0, 12, 254, 238,
-			223, 210, 231, 3, 15, 0, 9, 25, 9, 222, 202, 212, 226, 232, 223, 226, 227, 234, 245, 6, 10, 8, 12, 20, 9, 250, 231, 236, 8, 25,
-			21, 10, 9, 3, 6, 13, 26, 32, 38, 33, 33, 36, 23, 6, 255, 0, 9, 22, 28, 18, 253, 232, 231, 249, 2, 5, 253, 11, 52, 58,
-			45, 14, 17, 23, 42, 30, 7, 6, 25, 19, 254, 225, 227, 5, 8, 234, 217, 235, 15, 27, 1, 218, 200, 213, 241, 233, 216, 219, 207, 219,
-			246, 10, 251, 218, 207, 223, 217, 188, 182, 199, 240, 245, 220, 226, 19, 54, 67, 56, 33, 43, 31, 255, 244, 250, 242, 234, 239, 3, 4, 233,
-			239, 27, 59, 39, 243, 227, 248, 33, 46, 3, 220, 232, 19, 67, 76, 44, 24, 13, 16, 4, 247, 243, 11, 35, 28, 6, 250, 11, 57, 101,
-			101, 74, 38, 10, 16, 24, 13, 249, 222, 214, 226, 233, 206, 199, 243, 20, 8, 216, 205, 245, 250, 223, 229, 236, 230, 231, 248, 6, 8, 0,
-			0, 243, 226, 233, 243, 236, 241, 213, 176, 180, 244, 36, 38, 30, 24, 41, 28, 15, 244, 238, 4, 11, 238, 200, 188, 207, 228, 245, 1, 3,
-			250, 233, 236, 3, 6, 14, 24, 63, 91, 77, 60, 37, 23, 7, 254, 7, 1, 223, 196, 219, 10, 8, 2, 9, 54, 86, 65, 7, 2, 29,
-			33, 13, 240, 232, 0, 253, 2, 241, 225, 246, 16, 0, 255, 229, 211, 246, 244, 243, 0, 245, 253, 25, 26, 1, 250, 4, 24, 38, 255, 210,
-			225, 0, 248, 204, 202, 233, 1, 19, 44, 31, 1, 0, 8, 21, 0, 229, 243, 255, 21, 9, 250, 244, 234, 247, 10, 249, 210, 167, 174, 202,
-			221, 236, 247, 11, 45, 75, 61, 49, 44, 64, 79, 46, 2, 229, 227, 246, 10, 0, 253, 8, 12, 17, 249, 219, 231, 249, 9, 11, 247, 244,
-			251, 8, 27, 20, 11, 30, 39, 35, 4, 244, 235, 244, 7, 29, 26, 11, 5, 22, 18, 20, 28, 36, 38, 23, 14, 14, 7, 254, 244, 251,
-			14, 8, 237, 225, 227, 223, 225, 205, 199, 220, 246, 249, 200, 181, 221, 8, 16, 237, 235, 5, 28, 16, 233, 221, 237, 222, 235, 1, 214, 193,
-			222, 255, 244, 241, 239, 245, 237, 235, 232, 234, 225, 0, 28, 35, 26, 12, 12, 19, 24, 30, 9, 231, 239, 7, 3, 255, 12, 34, 63, 70,
-			36, 27, 34, 39, 5, 235, 4, 42, 46, 15, 1, 11, 28, 24, 20, 16, 2, 0, 5, 11, 242, 219, 233, 25, 46, 21, 246, 226, 244, 32,
-			31, 242, 225, 8, 66, 45, 225, 212, 250, 36, 44, 6, 232, 230, 17, 29, 255, 234, 255, 60, 85, 29, 217, 207, 5, 49, 33, 236, 236, 18,
-			33, 19, 253, 223, 224, 4, 7, 204, 173, 210, 252, 9, 247, 223, 235, 250, 251, 6, 248, 231, 234, 236, 247, 235, 226, 226, 233, 246, 248, 238,
-			254, 255, 242, 226, 213, 237, 0, 249, 226, 216, 220, 223, 226, 238, 249, 226, 216, 236, 240, 224, 232, 255, 32, 22, 250, 244, 4, 38, 54, 41,
-			34, 39, 48, 32, 255, 233, 243, 8, 33, 16, 248, 255, 25, 26, 27, 29, 48, 55, 43, 18, 11, 21, 17, 0, 253, 21, 48, 37, 23, 20,
-			36, 27, 13, 10, 17, 31, 8, 30, 48, 20, 11, 22, 48, 45, 2, 4, 9, 245, 232, 249, 241, 204, 190, 232, 31, 10, 235, 243, 27, 16,
-			239, 239, 244, 222, 221, 236, 235, 219, 216, 251, 10, 230, 207, 216, 248, 0, 226, 208, 229, 253, 242, 236, 221, 250, 38, 32, 3, 236, 224, 242,
-			11, 21, 11, 228, 235, 248, 239, 230, 220, 221, 241, 5, 246, 231, 248, 13, 20, 18, 18, 9, 18, 22, 0, 252, 1, 253, 36, 55, 38, 15,
-			239, 9, 45, 27, 9, 243, 253, 32, 18, 4, 249, 246, 34, 43, 254, 242, 235, 6, 7, 206, 183, 210, 237, 10, 250, 242, 253, 11, 42, 51,
-			33, 24, 26, 34, 27, 237, 221, 243, 237, 248, 3, 14, 13, 1, 9, 30, 6, 2, 19, 4, 3, 250, 250, 16, 44, 30, 8, 244, 249, 248,
-			233, 210, 208, 237, 6, 238, 227, 254, 38, 43, 24, 12, 249, 252, 253, 22, 3, 216, 225, 9, 27, 30, 248, 237, 0, 6, 255, 213, 217, 247,
-			11, 20, 39, 32, 21, 42, 63, 68, 31, 239, 242, 12, 2, 240, 250, 0, 247, 223, 213, 229, 213, 210, 246, 246, 211, 194, 218, 254, 11, 8,
-			14, 17, 1, 12, 10, 237, 211, 214, 237, 245, 233, 231, 7, 1, 10, 18, 27, 41, 39, 43, 5, 225, 223, 234, 17, 18, 243, 255, 12, 28,
-			22, 1, 254, 9, 9, 247, 214, 210, 250, 13, 24, 22, 22, 38, 38, 19, 253, 254, 5, 2, 6, 0, 12, 29, 13, 10, 18, 12, 1, 7,
-			0, 228, 229, 226, 220, 238, 0, 252, 18, 42, 55, 25, 31, 17, 234, 246, 246, 240, 230, 208, 210, 11, 58, 50, 8, 3, 30, 36, 255, 219,
-			234, 247, 244, 244, 233, 223, 226, 14, 46, 36, 224, 211, 0, 29, 245, 198, 219, 11, 29, 28, 251, 241, 246, 0, 13, 9, 241, 236, 252, 35,
-			32, 248, 244, 21, 46, 14, 231, 208, 215, 239, 241, 218, 224, 27, 55, 29, 19, 27, 26, 17, 2, 247, 237, 232, 230, 241, 4, 0, 15, 30,
-			12, 0, 251, 10, 23, 251, 207, 198, 242, 32, 34, 4, 0, 13, 25, 19, 7, 245, 244, 11, 18, 4, 1, 0, 6, 4, 0, 6, 7, 15,
-			3, 239, 246, 1, 249, 8, 16, 9, 246, 242, 248, 235, 232, 226, 242, 8, 33, 18, 8, 10, 254, 243, 243, 249, 241, 239, 231, 0, 8, 0,
-			3, 19, 1, 254, 8, 4, 250, 254, 248, 13, 24, 19, 26, 16, 16, 254, 244, 5, 0, 247, 248, 234, 235, 255, 9, 23, 10, 255, 251, 241,
-			248, 9, 0, 4, 12, 10, 15, 22, 14, 5, 2, 250, 246, 239, 243, 243, 241, 231, 230, 220, 254, 11, 250, 2, 19, 11, 252, 240, 246, 2,
-			11, 8, 240, 241, 237, 248, 3, 255, 224, 228, 247, 0, 250, 237, 243, 21, 40, 33, 24, 25, 41, 58, 41, 25, 19, 255, 250, 0, 11, 248,
-			238, 4, 0, 244, 250, 245, 2, 27, 16, 243, 236, 250, 17, 19, 13, 12, 10, 2, 11, 17, 248, 222, 221, 4, 26, 24, 238, 226, 252, 4,
-			0, 10, 2, 3, 37, 33, 31, 11, 244, 253, 247, 244, 239, 228, 230, 236, 0, 21, 8, 241, 255, 10, 4, 253, 244, 252, 252, 6, 26, 18,
-			252, 255, 13, 32, 13, 250, 230, 249, 0, 226, 199, 216, 246, 254, 238, 226, 227, 247, 0, 246, 238, 245, 13, 14, 11, 0, 237, 254, 12, 0,
-			229, 209, 223, 246, 249, 247, 241, 249, 255, 8, 4, 6, 248, 253, 10, 239, 225, 248, 24, 43, 15, 247, 252, 6, 20, 38, 2, 233, 3, 41,
-			38, 31, 11, 0, 29, 51, 50, 32, 21, 19, 15, 24, 20, 3, 8, 24, 46, 50, 30, 11, 0, 237, 2, 2, 235, 226, 252, 29, 33, 2,
-			246, 246, 251, 254, 243, 251, 10, 5, 244, 243, 232, 249, 18, 6, 221, 229, 238, 233, 239, 252, 245, 249, 3, 1, 8, 16, 252, 12, 44, 20,
-			237, 233, 244, 233, 252, 4, 7, 239, 218, 214, 222, 236, 233, 219, 224, 235, 249, 5, 17, 20, 13, 244, 254, 8, 233, 210, 214, 230, 236, 241,
-			0, 18, 32, 30, 33, 16, 11, 11, 253, 246, 229, 247, 25, 31, 15, 16, 40, 70, 50, 0, 233, 226, 232, 252, 7, 252, 251, 15, 45, 43,
-			16, 2, 2, 0, 0, 241, 235, 242, 248, 20, 13, 254, 1, 0, 0, 250, 226, 221, 220, 212, 224, 8, 25, 13, 249, 255, 10, 2, 245, 230,
-			219, 236, 22, 35, 8, 249, 3, 20, 15, 244, 219, 212, 213, 217, 237, 14, 47, 60, 34, 46, 52, 28, 1, 1, 0, 243, 251, 27, 35, 28,
-			32, 36, 35, 36, 14, 8, 10, 15, 16, 22, 34, 41, 54, 49, 39, 35, 22, 9, 244, 236, 246, 0, 248, 249, 246, 242, 6, 17, 233, 208,
-			234, 240, 229, 223, 229, 235, 246, 249, 252, 239, 226, 233, 239, 218, 188, 186, 211, 210, 199, 206, 230, 226, 213, 205, 210, 225, 239, 8, 22, 250,
-			224, 237, 2, 7, 0, 5, 24, 19, 15, 2, 0, 248, 3, 252, 0, 4, 18, 36, 33, 8, 14, 21, 20, 23, 12, 246, 236, 11, 48, 62,
-			32, 8, 24, 50, 52, 30, 17, 19, 13, 20, 28, 19, 16, 25, 40, 36, 22, 7, 4, 248, 227, 234, 252, 252, 250, 9, 6, 255, 249, 240,
-			237, 246, 5, 4, 238, 238, 21, 38, 28, 23, 15, 247, 201, 203, 230, 239, 244, 10, 14, 17, 13, 4, 250, 6, 250, 235, 237, 220, 213, 227,
-			14, 42, 31, 18, 4, 1, 7, 244, 233, 225, 217, 208, 214, 249, 23, 28, 35, 21, 0, 233, 218, 216, 240, 16, 17, 245, 250, 20, 25, 51,
-			55, 19, 243, 232, 243, 236, 225, 216, 241, 4, 250, 245, 2, 17, 2, 236, 220, 236, 245, 232, 222, 238, 9, 13, 7, 63, 87, 38, 239, 219,
-			243, 6, 235, 241, 11, 21, 32, 34, 45, 72, 46, 1, 5, 9, 0, 240, 235, 235, 233, 248, 35, 63, 48, 13, 253, 3, 253, 223, 205, 222,
-			233, 254, 20, 11, 13, 39, 64, 34, 236, 214, 245, 255, 249, 238, 234, 247, 8, 19, 4, 222, 210, 215, 218, 211, 201, 235, 0, 5, 0, 5,
-			15, 17, 11, 0, 238, 207, 203, 238, 25, 31, 21, 4, 5, 43, 47, 1, 214, 201, 215, 235, 9, 29, 29, 47, 65, 31, 237, 242, 10, 8,
-			4, 253, 252, 9, 10, 13, 36, 43, 34, 17, 6, 252, 246, 242, 15, 37, 46, 46, 41, 37, 14, 0, 6, 6, 249, 237, 236, 247, 246, 247,
-			252, 255, 7, 3, 239, 215, 203, 212, 231, 226, 205, 223, 13, 57, 45, 7, 3, 16, 250, 199, 192, 231, 16, 255, 219, 223, 254, 19, 29, 26,
-			5, 248, 250, 0, 249, 235, 248, 14, 20, 33, 24, 7, 255, 5, 14, 0, 231, 241, 20, 6, 228, 220, 3, 17, 248, 222, 237, 0, 0, 0,
-			13, 20, 4, 8, 31, 23, 248, 251, 17, 25, 6, 252, 1, 0, 250, 248, 3, 5, 248, 254, 18, 24, 4, 240, 240, 248, 238, 238, 4, 22,
-			8, 240, 242, 0, 255, 247, 245, 0, 8, 18, 32, 26, 5, 250, 0, 1, 245, 241, 24, 47, 11, 225, 244, 14, 24, 7, 5, 11, 252, 236,
-			251, 8, 4, 254, 255, 9, 0, 247, 8, 30, 20, 2, 229, 223, 239, 233, 224, 238, 252, 16, 23, 20, 251, 235, 244, 239, 236, 249, 252, 239,
-			227, 238, 7, 28, 19, 251, 254, 15, 8, 244, 240, 243, 1, 11, 17, 29, 37, 34, 24, 23, 31, 21, 253, 249, 5, 15, 12, 3, 5, 22,
-			29, 6, 240, 233, 250, 248, 239, 232, 234, 240, 0, 0, 0, 10, 16, 1, 249, 252, 2, 246, 225, 223, 243, 2, 16, 13, 3, 2, 3, 254,
-			247, 243, 253, 7, 12, 12, 4, 241, 247, 5, 7, 4, 248, 239, 244, 246, 250, 247, 249, 8, 9, 252, 244, 254, 14, 19, 1, 0, 1, 254,
-			2, 18, 19, 6, 3, 254, 249, 238, 244, 1, 23, 10, 251, 250, 4, 14, 14, 10, 5, 11, 11, 0, 244, 241, 254, 21, 27, 9, 244, 242,
-			247, 239, 248, 251, 6, 15, 4, 248, 239, 235, 234, 238, 249, 0, 253, 5, 9, 2, 0, 5, 9, 7, 0, 4, 255, 251, 239, 230, 233, 246,
-			14, 21, 13, 249, 3, 17, 253, 238, 253, 13, 251, 235, 242, 16, 18, 4, 12, 34, 24, 5, 0, 4, 250, 233, 254, 26, 18, 9, 11, 34,
-			32, 250, 243, 4, 4, 254, 239, 4, 19, 244, 224, 243, 255, 254, 251, 255, 7, 13, 7, 7, 7, 13, 14, 19, 13, 5, 3, 24, 22, 250,
-			239, 16, 30, 251, 219, 221, 249, 247, 225, 238, 6, 4, 249, 250, 8, 8, 242, 242, 249, 243, 245, 2, 245, 227, 231, 252, 5, 251, 246, 18,
-			23, 250, 248, 10, 30, 19, 2, 2, 17, 14, 4, 7, 8, 4, 1, 4, 255, 0, 254, 254, 249, 4, 0, 245, 250, 246, 232, 218, 234, 250,
-			11, 18, 27, 29, 12, 242, 235, 246, 0, 0, 252, 7, 18, 13, 15, 14, 244, 239, 249, 2, 253, 236, 237, 255, 8, 4, 9, 18, 8, 253,
-			253, 9, 5, 248, 241, 245, 255, 2, 252, 241, 240, 240, 242, 254, 253, 240, 242, 244, 239, 237, 245, 3, 2, 21, 21, 8, 253, 253, 252, 251,
-			252, 11, 22, 19, 4, 1, 253, 8, 5, 5, 21, 19, 12, 21, 32, 27, 30, 34, 34, 27, 26, 21, 11, 247, 241, 255, 14, 15, 12, 8,
-			9, 11, 9, 12, 1, 237, 233, 244, 253, 254, 252, 9, 17, 8, 255, 252, 1, 0, 246, 235, 240, 237, 251, 3, 9, 254, 249, 254, 250, 250,
-			238, 236, 239, 237, 240, 245, 246, 249, 0, 7, 9, 0, 239, 228, 223, 220, 237, 245, 238, 234, 252, 21, 12, 251, 241, 239, 238, 244, 247, 255,
-			254, 20, 37, 43, 28, 8, 2, 5, 245, 224, 237, 10, 10, 250, 237, 250, 2, 13, 29, 24, 255, 222, 233, 255, 12, 7, 0, 17, 29, 36,
-			29, 24, 11, 252, 4, 8, 245, 239, 252, 14, 18, 13, 11, 9, 8, 4, 5, 10, 7, 6, 22, 22, 4, 0, 6, 5, 1, 250, 243, 231,
-			229, 233, 239, 243, 243, 3, 27, 31, 18, 14, 18, 18, 6, 238, 235, 247, 0, 255, 9, 23, 26, 9, 240, 236, 229, 226, 226, 226, 241, 251,
-			3, 10, 7, 3, 255, 250, 241, 233, 231, 230, 240, 243, 251, 7, 18, 20, 23, 17, 15, 14, 0, 238, 247, 6, 12, 6, 6, 12, 18, 16,
-			16, 10, 8, 255, 252, 8, 18, 2, 235, 232, 0, 8, 251, 232, 242, 9, 17, 1, 1, 13, 21, 17, 247, 251, 3, 14, 8, 251, 237, 245,
-			2, 4, 250, 240, 245, 250, 249, 247, 255, 11, 8, 19, 16, 7, 246, 236, 251, 5, 0, 242, 243, 4, 23, 18, 3, 10, 15, 16, 250, 238,
-			248, 0, 250, 251, 253, 0, 0, 0, 15, 9, 76, 0, 239, 0, 5, 252, 8, 8, 8, 14, 14, 250, 7, 251, 253, 8, 245, 249, 0, 6,
-			18, 26, 22, 21, 15, 12, 0, 245, 240, 240, 247, 5, 17, 20, 27, 18, 18, 5, 248, 255, 248, 237, 246, 0, 1, 17, 25, 16, 4, 6,
-			2, 5, 5, 5, 245, 0, 9, 2, 255, 4, 248, 254, 14, 12, 14, 8, 0, 2, 5, 4, 253, 233, 249, 4, 11, 13, 8, 11, 17, 17,
-			252, 238, 233, 248, 247, 0, 2, 3, 22, 41, 18, 253, 253, 230, 236, 238, 228, 236, 14, 27, 32, 26, 9, 11, 6, 247, 233, 221, 226, 246,
-			255, 5, 17, 34, 28, 21, 5, 227, 226, 239, 245, 236, 238, 246, 7, 27, 26, 10, 7, 12, 12, 5, 254, 236, 239, 242, 244, 6, 7, 7,
-			16, 29, 19, 7, 10, 247, 235, 237, 232, 235, 245, 1, 6, 255, 15, 7, 15, 10, 253, 249, 248, 235, 238, 238, 237, 251, 255, 253, 12, 21,
-			13, 17, 251, 242, 243, 248, 248, 245, 247, 1, 6, 3, 11, 2, 3, 251, 249, 253, 243, 3, 11, 240, 244, 11, 251, 10, 22, 10, 18, 16,
-			10, 1, 238, 239, 241, 240, 251, 3, 8, 9, 1, 2, 8, 10, 0, 249, 241, 242, 251, 239, 236, 251, 9, 9, 20, 11, 15, 18, 1, 238,
-			224, 225, 241, 246, 250, 6, 24, 30, 35, 17, 10, 255, 254, 246, 238, 248, 254, 14, 14, 15, 8, 18, 11, 19, 2, 254, 3, 0, 0, 0,
-			251, 14, 15, 255, 9, 247, 4, 5, 247, 244, 241, 254, 25, 23, 16, 255, 255, 20, 12, 12, 252, 236, 0, 30, 9, 0, 255, 2, 15, 34,
-			16, 255, 255, 18, 28, 13, 251, 245, 14, 17, 18, 20, 0, 0, 18, 5, 254, 250, 250, 245, 252, 3, 242, 0, 13, 254, 10, 8, 252, 18,
-			30, 7, 0, 8, 10, 1, 8, 246, 224, 3, 29, 19, 20, 20, 2, 4, 252, 230, 227, 250, 4, 11, 10, 8, 11, 15, 10, 5, 245, 234,
-			9, 11, 3, 12, 26, 13, 25, 11, 255, 9, 14, 255, 243, 255, 12, 11, 29, 26, 29, 29, 5, 0, 249, 252, 239, 238, 242, 14, 32, 38,
-			28, 31, 18, 9, 237, 227, 225, 245, 252, 7, 29, 3, 32, 31, 8, 16, 247, 246, 5, 250, 253, 20, 17, 20, 19, 254, 22, 26, 18, 0,
-			251, 246, 247, 11, 5, 250, 5, 11, 5, 31, 13, 13, 15, 8, 1, 250, 0, 5, 14, 14, 24, 0, 13, 27, 8, 0, 250, 248, 3, 6,
-			3, 19, 8, 11, 21, 0, 245, 237, 233, 225, 236, 4, 10, 28, 36, 42, 41, 35, 8, 239, 220, 229, 222, 218, 241, 247, 27, 52, 35, 25,
-			27, 249, 246, 231, 211, 217, 247, 253, 15, 14, 4, 9, 21, 16, 5, 240, 222, 238, 242, 251, 239, 242, 9, 14, 19, 9, 243, 247, 0, 2,
-			243, 226, 234, 7, 12, 7, 246, 0, 9, 20, 16, 250, 237, 253, 7, 238, 0, 248, 2, 26, 18, 254, 11, 25, 13, 6, 3, 0, 10, 26,
-			0, 243, 2, 15, 12, 254, 239, 250, 8, 5, 231, 231, 236, 13, 26, 17, 10, 6, 6, 253, 223, 212, 219, 223, 249, 23, 30, 35, 34, 26,
-			251, 229, 219, 206, 225, 253, 2, 0, 22, 28, 35, 24, 31, 11, 243, 11, 249, 243, 240, 249, 251, 22, 21, 9, 28, 19, 0, 3, 245, 225,
-			0, 251, 253, 13, 7, 9, 27, 11, 1, 245, 240, 11, 250, 5, 253, 240, 6, 20, 9, 19, 11, 12, 5, 255, 6, 250, 245, 235, 250, 17,
-			41, 35, 40, 9, 254, 253, 246, 227, 231, 244, 245, 30, 27, 12, 26, 29, 249, 244, 233, 219, 251, 4, 232, 253, 20, 15, 45, 20, 243, 0,
-			8, 0, 253, 229, 247, 19, 3, 35, 27, 12, 17, 254, 241, 234, 229, 226, 241, 243, 20, 22, 17, 22, 9, 250, 251, 239, 238, 235, 233, 224,
-			252, 21, 6, 21, 14, 255, 16, 20, 234, 247, 244, 0, 10, 21, 26, 23, 40, 37, 2, 236, 221, 213, 236, 11, 0, 8, 22, 67, 56, 31,
-			5, 237, 246, 247, 214, 212, 250, 5, 22, 22, 22, 12, 34, 34, 0, 239, 249, 226, 246, 255, 232, 245, 1, 24, 37, 37, 31, 14, 8, 0,
-			241, 222, 214, 219, 234, 234, 12, 37, 44, 58, 41, 12, 254, 246, 243, 208, 201, 224, 3, 40, 54, 35, 20, 32, 43, 12, 233, 228, 228, 220,
-			240, 236, 235, 25, 51, 49, 32, 13, 0, 2, 247, 217, 191, 220, 232, 6, 41, 252, 7, 45, 12, 253, 238, 200, 253, 10, 252, 248, 232, 249,
-			26, 7, 18, 250, 6, 29, 0, 15, 5, 249, 244, 236, 235, 10, 20, 11, 247, 238, 4, 24, 15, 11, 0, 239, 233, 239, 228, 219, 230, 7,
-			0, 21, 21, 16, 24, 9, 221, 215, 217, 219, 5, 252, 16, 13, 19, 34, 40, 27, 252, 234, 237, 224, 224, 242, 223, 3, 30, 19, 34, 35,
-			18, 3, 220, 211, 191, 185, 221, 225, 252, 36, 50, 65, 54, 32, 4, 224, 211, 208, 192, 205, 239, 2, 6, 44, 55, 28, 40, 10, 240, 218,
-			216, 206, 206, 233, 249, 13, 35, 41, 45, 28, 14, 9, 241, 216, 204, 214, 240, 249, 9, 5, 3, 33, 18, 245, 228, 213, 239, 252, 254, 13,
-			21, 9, 31, 0, 228, 225, 230, 242, 9, 8, 0, 10, 12, 30, 13, 4, 238, 223, 243, 11, 236, 215, 205, 223, 4, 31, 23, 253, 9, 10,
-			0, 239, 209, 198, 233, 241, 246, 15, 0, 8, 30, 25, 35, 14, 234, 231, 220, 219, 220, 225, 244, 27, 42, 18, 36, 28, 255, 226, 212, 214,
-			242, 244, 0, 255, 4, 35, 40, 18, 246, 236, 241, 250, 236, 226, 216, 240, 4, 34, 20, 6, 7, 0, 5, 3, 251, 229, 3, 4, 13, 3,
-			11, 23, 22, 255, 5, 251, 1, 30, 15, 255, 230, 2, 6, 18, 5, 4, 9, 19, 23, 0, 239, 225, 234, 236, 21, 14, 12, 12, 15, 254,
-			250, 231, 206, 226, 231, 251, 19, 35, 9, 3, 4, 16, 2, 249, 252, 236, 230, 247, 233, 240, 1, 253, 17, 31, 43, 39, 13, 0, 247, 242,
-			255, 225, 232, 15, 28, 50, 34, 21, 36, 5, 238, 231, 203, 216, 227, 219, 245, 6, 20, 14, 30, 39, 248, 228, 234, 201, 204, 210, 198, 240,
-			12, 44, 58, 36, 37, 45, 19, 5, 246, 216, 212, 234, 250, 10, 47, 55, 59, 53, 10, 14, 26, 250, 220, 216, 228, 7, 32, 8, 0, 7,
-			242, 248, 240, 206, 219, 214, 209, 234, 250, 6, 15, 240, 254, 245, 236, 246, 245, 240, 11, 250, 2, 12, 252, 16, 13, 245, 248, 254, 14, 23,
-			14, 8, 255, 3, 29, 33, 252, 20, 11, 248, 252, 243, 236, 12, 6, 4, 1, 254, 237, 231, 23, 25, 30, 16, 22, 253, 254, 203, 189, 218,
-			211, 255, 15, 14, 53, 69, 27, 0, 223, 221, 229, 223, 229, 14, 27, 39, 69, 53, 23, 250, 222, 223, 240, 218, 220, 255, 27, 75, 73, 30,
-			27, 17, 242, 230, 223, 202, 223, 253, 248, 14, 47, 30, 8, 7, 11, 251, 238, 225, 211, 225, 11, 16, 16, 19, 254, 25, 29, 0, 240, 222,
-			245, 30, 28, 25, 15, 20, 29, 20, 7, 0, 249, 244, 15, 250, 251, 4, 0, 254, 21, 18, 3, 5, 253, 2, 0, 19, 11, 242, 20, 21,
-			4, 22, 238, 222, 239, 240, 1, 11, 34, 36, 27, 13, 36, 247, 230, 212, 186, 233, 3, 253, 17, 25, 20, 71, 48, 15, 244, 205, 200, 221,
-			222, 250, 38, 37, 57, 51, 36, 19, 252, 217, 197, 188, 229, 6, 250, 5, 11, 26, 39, 31, 3, 0, 248, 255, 249, 246, 1, 2, 32, 12,
-			9, 25, 58, 40, 29, 25, 2, 255, 233, 238, 217, 228, 239, 245, 17, 15, 238, 10, 3, 234, 249, 226, 203, 227, 18, 26, 252, 7, 6, 21,
-			33, 0, 236, 249, 235, 249, 249, 8, 37, 40, 47, 27, 17, 255, 5, 10, 13, 238, 254, 31, 5, 22, 35, 255, 31, 25, 225, 237, 234, 249,
-			255, 249, 227, 0, 9, 3, 244, 223, 245, 228, 244, 32, 20, 241, 224, 243, 4, 254, 11, 11, 238, 19, 34, 252, 3, 255, 227, 11, 7, 14,
-			18, 252, 2, 243, 250, 241, 238, 0, 12, 253, 3, 0, 7, 7, 14, 248, 237, 247, 231, 252, 7, 245, 244, 6, 247, 6, 20, 252, 254, 16,
-			250, 230, 236, 221, 215, 233, 4, 11, 19, 49, 57, 27, 252, 224, 218, 233, 240, 254, 252, 17, 50, 46, 48, 5, 237, 254, 240, 243, 26, 241,
-			216, 248, 232, 9, 23, 243, 254, 22, 243, 5, 242, 234, 246, 230, 241, 239, 1, 251, 20, 15, 19, 21, 31, 5, 0, 0, 247, 230, 255, 14,
-			6, 8, 245, 253, 231, 227, 212, 222, 248, 0, 237, 233, 220, 237, 250, 218, 245, 250, 5, 41, 41, 235, 4, 10, 255, 0, 0, 252, 238, 244,
-			12, 23, 50, 45, 17, 25, 35, 21, 240, 222, 219, 251, 254, 251, 229, 241, 14, 31, 47, 247, 248, 6, 252, 253, 231, 211, 218, 252, 6, 5,
-			34, 38, 20, 45, 23, 243, 230, 220, 183, 207, 233, 227, 26, 36, 67, 74, 67, 253, 252, 241, 210, 194, 199, 200, 236, 52, 15, 32, 42, 56,
-			59, 35, 220, 179, 213, 185, 195, 218, 236, 44, 114, 107, 84, 73, 10, 224, 170, 149, 151, 207, 250, 39, 89, 82, 98, 76, 42, 244, 202, 200,
-			150, 152, 202, 229, 244, 60, 79, 98, 97, 68, 3, 202, 179, 139, 132, 190, 252, 50, 92, 73, 89, 50, 255, 233, 187, 163, 200, 211, 213, 17,
-			14, 22, 64, 27, 19, 39, 0, 236, 2, 234, 236, 17, 10, 238, 15, 42, 27, 17, 7, 254, 23, 2, 252, 224, 227, 237, 227, 5, 16, 252,
-			28, 24, 246, 236, 200, 237, 249, 240, 237, 241, 239, 8, 7, 235, 0, 8, 30, 46, 36, 7, 9, 24, 27, 255, 253, 11, 253, 23, 253, 242,
-			248, 246, 249, 241, 241, 250, 5, 17, 8, 10, 8, 2, 10, 248, 244, 253, 249, 6, 255, 5, 1, 223, 231, 11, 255, 12, 16, 228, 228, 238,
-			209, 174, 200, 233, 20, 44, 46, 20, 7, 0, 0, 252, 225, 241, 14, 21, 11, 250, 18, 27, 246, 230, 212, 217, 217, 196, 227, 238, 238, 24,
-			30, 19, 0, 231, 221, 217, 207, 198, 192, 214, 253, 21, 34, 26, 36, 8, 229, 4, 234, 188, 213, 195, 191, 240, 29, 13, 68, 58, 49, 63,
-			11, 255, 247, 203, 219, 225, 232, 13, 18, 28, 61, 41, 28, 13, 207, 177, 192, 194, 215, 210, 234, 4, 37, 38, 29, 1, 24, 15, 3, 248,
-			217, 251, 21, 7, 246, 31, 44, 65, 62, 32, 247, 0, 255, 199, 202, 222, 255, 8, 27, 1, 240, 0, 12, 252, 230, 215, 243, 10, 4, 7,
-			239, 246, 252, 239, 5, 29, 6, 9, 22, 12, 23, 245, 245, 0, 21, 15, 14, 35, 29, 20, 23, 248, 231, 241, 254, 244, 247, 248, 5, 247,
-			228, 5, 8, 5, 9, 241, 200, 226, 238, 219, 235, 252, 24, 42, 58, 7, 247, 240, 234, 217, 236, 253, 37, 37, 254, 26, 246, 249, 0, 225,
-			230, 250, 20, 236, 244, 254, 248, 4, 246, 4, 31, 37, 36, 22, 12, 12, 23, 230, 176, 209, 242, 2, 43, 54, 89, 95, 81, 34, 221, 225,
-			217, 168, 178, 225, 14, 82, 100, 70, 38, 43, 34, 238, 209, 217, 201, 209, 246, 9, 9, 54, 62, 14, 17, 9, 250, 0, 236, 219, 237, 254,
-			31, 12, 14, 30, 24, 253, 254, 248, 238, 228, 244, 253, 7, 41, 15, 26, 7, 0, 1, 1, 235, 5, 8, 8, 34, 37, 19, 19, 24, 10,
-			25, 9, 14, 38, 18, 19, 15, 38, 23, 6, 238, 237, 246, 246, 15, 254, 28, 46, 34, 3, 223, 224, 255, 213, 222, 229, 232, 35, 34, 43,
-			33, 29, 254, 250, 237, 225, 231, 17, 39, 27, 60, 43, 30, 34, 23, 14, 238, 246, 251, 255, 14, 25, 45, 31, 18, 43, 28, 244, 230, 191,
-			168, 211, 215, 244, 26, 39, 48, 60, 37, 245, 242, 196, 189, 220, 216, 239, 18, 39, 60, 74, 48, 24, 230, 214, 228, 217, 234, 231, 238, 15,
-			53, 49, 56, 23, 1, 5, 230, 229, 207, 205, 223, 204, 218, 25, 42, 49, 23, 239, 241, 240, 240, 229, 200, 213, 248, 15, 29, 24, 32, 24,
-			14, 31, 31, 11, 8, 11, 15, 250, 253, 17, 253, 252, 249, 229, 245, 15, 250, 236, 232, 227, 230, 227, 226, 209, 224, 251, 246, 230, 242, 15,
-			21, 19, 244, 242, 3, 1, 206, 182, 186, 243, 37, 30, 6, 0, 56, 62, 16, 238, 216, 216, 215, 199, 222, 220, 7, 39, 32, 46, 38, 11,
-			242, 214, 188, 176, 182, 201, 230, 247, 16, 37, 27, 5, 253, 238, 225, 233, 219, 217, 237, 234, 242, 220, 246, 19, 26, 34, 41, 28, 23, 9,
-			231, 199, 199, 212, 226, 225, 234, 28, 35, 52, 38, 26, 2, 247, 237, 220, 209, 194, 214, 238, 6, 21, 22, 46, 64, 43, 17, 227, 215, 221,
-			215, 230, 234, 247, 26, 41, 48, 41, 255, 11, 16, 248, 236, 212, 209, 234, 239, 245, 18, 28, 51, 40, 1, 245, 235, 243, 244, 230, 242, 12,
-			26, 37, 0, 254, 252, 1, 10, 20, 9, 243, 255, 243, 228, 212, 209, 237, 0, 250, 11, 1, 243, 0, 79, 5, 27, 0, 0, 1, 0, 1,
-			4, 3, 253, 248, 251, 8, 10, 0, 2, 10, 10, 8, 5, 2, 0, 0, 2, 255, 248, 254, 5, 5, 251, 242, 247, 255, 254, 2, 7, 1,
-			248, 246, 242, 244, 245, 249, 4, 9, 6, 1, 254, 6, 10, 9, 11, 10, 9, 11, 5, 1, 0, 247, 247, 249, 248, 254, 2, 7, 11, 8,
-			2, 0, 254, 1, 5, 5, 2, 5, 2, 252, 251, 255, 0, 2, 4, 3, 1, 247, 240, 251, 249, 243, 246, 249, 254, 0, 3, 10, 9, 2,
-			5, 7, 255, 253, 3, 14, 22, 13, 2, 252, 255, 252, 251, 255, 2, 5, 3, 246, 241, 249, 255, 1, 0, 251, 254, 0, 250, 251, 0, 2,
-			5, 3, 252, 0, 7, 13, 11, 0, 247, 252, 253, 249, 2, 12, 14, 8, 255, 2, 3, 0, 254, 252, 0, 9, 10, 2, 1, 2, 2, 4,
-			2, 0, 1, 254, 251, 252, 249, 249, 249, 246, 239, 244, 1, 14, 16, 4, 253, 248, 245, 252, 0, 0, 0, 248, 244, 254, 4, 3, 3, 6,
-			12, 11, 2, 1, 6, 16, 18, 7, 9, 15, 13, 10, 12, 0, 254, 2, 247, 239, 236, 240, 0, 2, 248, 245, 247, 251, 0, 246, 245, 3,
-			2, 1, 253, 243, 3, 15, 15, 12, 5, 252, 2, 8, 0, 245, 245, 3, 3, 254, 0, 6, 8, 11, 7, 7, 6, 251, 254, 4, 0, 248,
-			253, 4, 1, 254, 1, 4, 8, 254, 244, 249, 253, 248, 248, 245, 254, 2, 4, 8, 0, 255, 10, 17, 9, 4, 7, 6, 0, 241, 234, 244,
-			1, 12, 14, 4, 6, 12, 12, 5, 250, 249, 2, 7, 5, 255, 251, 252, 1, 251, 246, 3, 1, 8, 14, 246, 240, 237, 235, 240, 241, 246,
-			4, 14, 15, 18, 16, 6, 0, 247, 250, 16, 10, 250, 255, 251, 251, 5, 8, 5, 251, 251, 8, 10, 5, 0, 254, 2, 255, 252, 2, 8,
-			8, 10, 6, 253, 251, 5, 13, 6, 253, 251, 250, 0, 4, 247, 239, 254, 249, 229, 235, 253, 6, 9, 3, 254, 4, 12, 5, 249, 250, 5,
-			14, 12, 0, 238, 249, 16, 17, 0, 247, 2, 18, 8, 252, 242, 245, 6, 10, 248, 250, 12, 18, 23, 17, 0, 1, 0, 251, 14, 8, 255,
-			1, 241, 230, 228, 221, 235, 252, 246, 249, 1, 0, 0, 254, 251, 254, 1, 19, 29, 14, 8, 16, 16, 18, 10, 2, 22, 25, 2, 246, 244,
-			250, 255, 250, 239, 231, 238, 5, 19, 255, 248, 8, 1, 2, 5, 250, 254, 0, 244, 235, 242, 244, 252, 10, 252, 247, 9, 5, 255, 1, 253,
-			5, 7, 15, 23, 7, 4, 15, 15, 9, 15, 26, 21, 5, 251, 255, 0, 239, 224, 239, 251, 5, 6, 248, 241, 232, 233, 248, 2, 244, 241,
-			251, 252, 6, 9, 5, 22, 15, 255, 2, 253, 8, 15, 3, 9, 1, 255, 3, 3, 12, 8, 12, 15, 0, 241, 242, 251, 8, 3, 255, 4,
-			3, 252, 252, 1, 5, 4, 245, 247, 1, 239, 237, 247, 249, 10, 19, 8, 6, 2, 11, 14, 246, 236, 231, 239, 249, 250, 10, 16, 2, 252,
-			249, 250, 254, 9, 23, 14, 17, 27, 23, 13, 249, 249, 3, 253, 4, 9, 0, 250, 229, 232, 0, 2, 254, 11, 14, 6, 0, 248, 249, 255,
-			252, 244, 233, 232, 3, 2, 253, 10, 252, 245, 12, 10, 11, 31, 9, 252, 7, 247, 252, 10, 4, 8, 6, 8, 13, 240, 219, 229, 240, 252,
-			14, 4, 247, 9, 13, 9, 16, 1, 4, 16, 254, 2, 253, 255, 19, 4, 2, 4, 242, 6, 18, 10, 1, 242, 234, 229, 229, 242, 253, 1,
-			255, 0, 5, 7, 5, 4, 7, 18, 21, 17, 12, 253, 1, 4, 255, 254, 243, 254, 15, 249, 249, 0, 240, 245, 244, 232, 255, 1, 5, 25,
-			253, 235, 246, 245, 1, 6, 252, 12, 14, 18, 36, 24, 251, 236, 248, 6, 19, 11, 251, 254, 0, 250, 255, 11, 0, 236, 241, 1, 248, 243,
-			4, 0, 242, 250, 13, 26, 20, 12, 18, 21, 8, 248, 234, 232, 241, 250, 5, 9, 244, 248, 20, 28, 20, 1, 248, 1, 255, 246, 225, 241,
-			1, 249, 250, 236, 231, 11, 27, 14, 14, 14, 17, 17, 242, 230, 252, 9, 6, 250, 232, 250, 14, 7, 13, 5, 242, 232, 230, 237, 7, 21,
-			17, 4, 236, 234, 255, 255, 11, 44, 28, 5, 19, 18, 14, 14, 21, 27, 15, 253, 255, 250, 240, 247, 228, 226, 2, 231, 213, 0, 15, 9,
-			248, 236, 253, 234, 228, 20, 41, 28, 21, 3, 7, 22, 2, 8, 22, 2, 251, 229, 207, 227, 248, 252, 23, 17, 249, 8, 9, 11, 253, 231,
-			247, 237, 228, 6, 2, 1, 22, 15, 8, 250, 239, 251, 6, 1, 4, 3, 253, 247, 247, 245, 10, 14, 13, 42, 27, 254, 5, 236, 245, 30,
-			18, 9, 240, 236, 18, 13, 4, 13, 255, 253, 9, 3, 251, 251, 253, 10, 22, 3, 224, 244, 251, 241, 245, 234, 235, 0, 244, 5, 12, 5,
-			35, 18, 242, 255, 248, 251, 253, 222, 221, 227, 244, 20, 18, 6, 22, 36, 29, 12, 6, 19, 0, 239, 212, 225, 14, 18, 11, 4, 243, 226,
-			249, 22, 238, 201, 238, 8, 23, 249, 226, 12, 24, 58, 71, 11, 6, 27, 14, 8, 243, 235, 19, 28, 242, 213, 230, 244, 254, 242, 226, 239,
-			250, 1, 7, 249, 4, 62, 65, 25, 249, 255, 39, 56, 13, 225, 225, 220, 247, 10, 235, 241, 2, 14, 24, 239, 215, 232, 234, 243, 1, 247,
-			244, 253, 3, 1, 240, 1, 15, 17, 252, 243, 3, 245, 222, 238, 236, 214, 238, 246, 248, 25, 33, 27, 27, 0, 233, 26, 44, 22, 249, 222,
-			254, 22, 252, 2, 9, 5, 10, 37, 45, 20, 5, 13, 17, 15, 0, 18, 30, 237, 242, 32, 44, 45, 18, 244, 41, 52, 28, 37, 251, 223,
-			224, 203, 229, 224, 195, 251, 16, 242, 228, 208, 186, 166, 144, 159, 190, 211, 193, 185, 190, 200, 230, 249, 16, 19, 3, 49, 107, 108, 124, 122,
-			106, 99, 81, 73, 67, 64, 55, 29, 12, 230, 218, 239, 231, 240, 240, 237, 14, 4, 231, 246, 233, 233, 254, 245, 239, 235, 227, 235, 233, 237,
-			4, 243, 237, 221, 190, 219, 242, 240, 235, 252, 23, 20, 251, 3, 27, 21, 7, 255, 222, 224, 250, 2, 2, 247, 250, 6, 25, 35, 29, 36,
-			7, 235, 228, 246, 6, 8, 13, 13, 24, 27, 48, 34, 254, 10, 22, 34, 41, 19, 10, 21, 8, 249, 248, 252, 248, 251, 249, 250, 9, 255,
-			224, 223, 227, 238, 14, 18, 241, 229, 235, 244, 238, 213, 231, 255, 245, 237, 241, 237, 232, 241, 234, 220, 231, 254, 21, 12, 249, 1, 13, 22,
-			12, 5, 22, 26, 21, 12, 6, 24, 20, 0, 4, 10, 29, 54, 34, 12, 14, 17, 21, 20, 242, 248, 2, 23, 28, 250, 235, 252, 23, 25,
-			3, 252, 14, 9, 234, 229, 242, 234, 217, 210, 221, 232, 253, 19, 25, 32, 4, 236, 0, 245, 220, 233, 25, 47, 13, 216, 234, 250, 227, 224,
-			221, 241, 230, 216, 252, 0, 236, 229, 239, 6, 0, 12, 27, 24, 11, 248, 253, 19, 19, 6, 16, 35, 48, 50, 42, 31, 8, 222, 235, 22,
-			26, 6, 15, 22, 15, 25, 61, 74, 51, 33, 37, 33, 30, 7, 220, 207, 214, 214, 206, 198, 213, 213, 214, 243, 237, 205, 193, 205, 233, 0,
-			253, 249, 236, 252, 23, 15, 17, 26, 10, 5, 9, 0, 235, 224, 255, 12, 243, 254, 26, 21, 11, 7, 24, 34, 18, 255, 245, 242, 8, 34,
-			33, 22, 2, 253, 13, 18, 0, 251, 251, 238, 227, 237, 250, 246, 229, 239, 252, 9, 13, 244, 242, 15, 18, 14, 15, 17, 36, 35, 31, 49,
-			38, 18, 25, 35, 5, 0, 120, 6, 13, 0, 0, 11, 15, 13, 14, 10, 20, 33, 25, 12, 252, 242, 235, 230, 232, 224, 228, 237, 248, 2,
-			246, 242, 0, 19, 30, 23, 18, 21, 13, 8, 1, 7, 8, 2, 3, 246, 235, 229, 230, 252, 0, 241, 251, 0, 254, 252, 7, 10, 11, 19,
-			20, 14, 5, 246, 3, 16, 8, 255, 240, 253, 6, 243, 230, 224, 246, 8, 19, 16, 246, 250, 20, 40, 33, 1, 3, 18, 8, 2, 239, 241,
-			255, 255, 250, 232, 228, 242, 253, 6, 0, 4, 9, 247, 248, 252, 8, 15, 1, 252, 243, 254, 7, 254, 253, 253, 4, 22, 14, 251, 248, 3,
-			12, 1, 1, 1, 255, 250, 240, 246, 1, 1, 254, 252, 7, 12, 13, 12, 9, 14, 14, 10, 4, 244, 254, 6, 245, 234, 220, 232, 0, 17,
-			10, 248, 250, 8, 22, 20, 11, 26, 39, 19, 251, 223, 229, 254, 10, 4, 225, 220, 226, 232, 239, 246, 246, 6, 17, 13, 10, 22, 34, 25,
-			16, 2, 19, 28, 13, 248, 234, 231, 245, 8, 254, 204, 193, 245, 39, 36, 2, 0, 10, 6, 7, 15, 14, 5, 252, 252, 239, 229, 241, 9,
-			4, 242, 247, 0, 9, 2, 7, 14, 14, 15, 15, 12, 20, 19, 21, 26, 8, 235, 230, 244, 239, 245, 247, 229, 222, 222, 247, 4, 255, 253,
-			1, 13, 6, 243, 1, 29, 40, 26, 4, 10, 22, 2, 251, 0, 7, 0, 248, 228, 221, 238, 255, 12, 19, 0, 0, 8, 8, 11, 5, 11,
-			0, 242, 255, 251, 245, 243, 254, 253, 236, 241, 6, 10, 6, 255, 0, 14, 19, 11, 1, 14, 13, 4, 253, 254, 250, 246, 1, 255, 230, 230,
-			249, 252, 250, 255, 3, 9, 5, 20, 20, 246, 245, 5, 19, 37, 33, 9, 0, 254, 240, 225, 245, 20, 20, 1, 246, 239, 228, 237, 11, 21,
-			10, 1, 240, 233, 244, 17, 25, 13, 16, 22, 8, 247, 249, 11, 1, 255, 241, 214, 211, 224, 255, 11, 15, 7, 247, 255, 3, 0, 22, 28,
-			24, 26, 15, 8, 245, 228, 249, 6, 249, 224, 228, 231, 238, 252, 2, 6, 16, 5, 10, 23, 33, 45, 31, 8, 6, 13, 9, 248, 235, 225,
-			238, 6, 252, 227, 210, 208, 245, 20, 36, 42, 31, 30, 27, 28, 25, 28, 34, 7, 235, 207, 199, 230, 230, 220, 217, 210, 206, 212, 246, 17,
-			45, 43, 19, 21, 16, 17, 47, 57, 50, 30, 5, 239, 232, 233, 223, 241, 247, 233, 222, 222, 225, 236, 254, 10, 17, 19, 31, 29, 30, 27,
-			30, 39, 29, 13, 0, 253, 239, 218, 211, 224, 226, 223, 233, 241, 236, 254, 15, 36, 58, 29, 2, 13, 21, 20, 20, 254, 247, 249, 230, 234,
-			245, 241, 255, 254, 228, 249, 16, 9, 0, 255, 3, 7, 253, 8, 16, 253, 0, 10, 9, 19, 12, 233, 230, 10, 39, 22, 231, 209, 217, 235,
-			10, 29, 12, 0, 0, 3, 18, 19, 19, 18, 0, 255, 247, 248, 7, 252, 230, 227, 240, 255, 4, 8, 6, 251, 12, 24, 2, 239, 253, 15,
-			11, 249, 242, 248, 253, 13, 14, 227, 204, 249, 16, 4, 6, 10, 16, 7, 16, 40, 41, 25, 16, 14, 0, 254, 10, 0, 233, 240, 229, 225,
-			236, 238, 254, 252, 237, 233, 238, 249, 16, 24, 245, 244, 4, 6, 18, 17, 14, 33, 44, 27, 254, 239, 245, 2, 242, 232, 249, 240, 220, 230,
-			248, 16, 30, 14, 239, 232, 8, 32, 8, 13, 47, 40, 7, 242, 230, 220, 237, 8, 12, 240, 218, 242, 255, 0, 29, 45, 42, 51, 53, 27,
-			237, 211, 226, 6, 7, 228, 208, 204, 221, 229, 235, 7, 27, 18, 255, 241, 244, 247, 252, 18, 23, 7, 4, 9, 5, 247, 28, 60, 31, 13,
-			20, 16, 255, 224, 226, 250, 10, 14, 242, 211, 214, 240, 0, 250, 247, 2, 29, 49, 30, 5, 0, 21, 29, 7, 249, 239, 225, 215, 211, 223,
-			0, 11, 5, 253, 0, 29, 47, 32, 21, 22, 13, 0, 254, 9, 13, 3, 237, 210, 222, 252, 240, 224, 218, 218, 226, 218, 216, 244, 0, 21,
-			57, 63, 66, 65, 48, 52, 69, 45, 29, 22, 239, 202, 204, 207, 205, 192, 201, 227, 222, 217, 238, 248, 24, 33, 0, 245, 22, 83, 79, 32,
-			247, 242, 17, 50, 47, 30, 232, 200, 225, 247, 252, 239, 214, 229, 244, 244, 245, 248, 244, 242, 4, 24, 30, 8, 0, 25, 26, 23, 40, 40,
-			11, 4, 5, 249, 238, 245, 3, 254, 215, 222, 236, 212, 188, 215, 244, 12, 13, 5, 251, 244, 12, 41, 49, 61, 53, 40, 17, 250, 20, 48,
-			26, 26, 0, 202, 199, 199, 194, 226, 248, 239, 234, 220, 197, 228, 21, 50, 66, 58, 39, 44, 42, 20, 7, 17, 14, 245, 215, 210, 250, 247,
-			218, 230, 238, 227, 241, 252, 17, 39, 25, 11, 0, 248, 11, 16, 237, 238, 8, 247, 243, 3, 244, 5, 18, 243, 11, 44, 3, 241, 250, 4,
-			54, 59, 3, 211, 212, 3, 60, 63, 2, 202, 191, 226, 20, 22, 1, 228, 207, 213, 234, 3, 2, 253, 0, 251, 246, 9, 16, 33, 38, 16,
-			44, 71, 23, 7, 30, 36, 57, 18, 194, 176, 175, 202, 250, 208, 165, 221, 2, 32, 40, 7, 240, 234, 20, 66, 51, 17, 2, 0, 9, 22,
-			39, 55, 45, 7, 240, 230, 234, 0, 245, 175, 185, 7, 248, 215, 227, 247, 10, 35, 42, 38, 251, 226, 32, 30, 246, 5, 32, 255, 228, 253,
-			27, 24, 21, 30, 11, 238, 237, 242, 231, 229, 5, 18, 239, 235, 233, 221, 228, 9, 48, 51, 15, 250, 2, 251, 251, 24, 252, 219, 230, 252,
-			246, 0, 246, 241, 20, 44, 38, 38, 34, 23, 26, 0, 245, 7, 203, 170, 218, 220, 195, 214, 240, 28, 14, 226, 15, 69, 63, 78, 84, 37,
-			255, 12, 36, 22, 240, 208, 242, 236, 198, 211, 0, 241, 218, 228, 214, 215, 7, 54, 61, 27, 0, 15, 26, 254, 9, 54, 46, 7, 246, 202,
-			163, 191, 249, 17, 242, 187, 219, 8, 3, 0, 16, 9, 22, 68, 75, 34, 23, 59, 76, 46, 0, 251, 15, 240, 208, 215, 206, 216, 198, 187,
-			221, 233, 245, 27, 15, 249, 24, 19, 31, 33, 12, 41, 50, 11, 251, 244, 252, 247, 198, 206, 218, 206, 241, 254, 225, 234, 4, 77, 97, 29,
-			24, 59, 49, 48, 51, 3, 224, 215, 216, 193, 156, 208, 27, 5, 226, 244, 248, 227, 243, 32, 39, 7, 25, 44, 249, 200, 15, 91, 61, 9,
-			2, 3, 255, 0, 23, 27, 239, 224, 225, 195, 210, 10, 20, 239, 196, 218, 17, 18, 25, 59, 38, 250, 255, 21, 18, 5, 1, 11, 236, 195,
-			212, 242, 209, 195, 5, 44, 10, 8, 12, 5, 22, 37, 55, 44, 249, 8, 77, 56, 5, 251, 249, 0, 248, 217, 211, 195, 195, 230, 214, 157,
-			186, 253, 15, 3, 250, 26, 77, 72, 57, 61, 42, 32, 42, 22, 249, 255, 249, 230, 213, 208, 226, 5, 6, 236, 244, 1, 6, 16, 12, 249,
-			6, 22, 10, 2, 14, 3, 236, 206, 226, 36, 32, 250, 0, 231, 193, 229, 43, 57, 9, 218, 209, 215, 217, 10, 45, 3, 254, 51, 34, 238,
-			237, 17, 38, 26, 32, 40, 12, 235, 8, 29, 15, 9, 25, 254, 199, 184, 237, 0, 239, 17, 1, 192, 183, 235, 42, 58, 15, 13, 6, 226,
-			240, 18, 8, 4, 22, 36, 32, 3, 239, 247, 0, 16, 37, 7, 220, 199, 197, 217, 242, 249, 0, 10, 233, 186, 222, 23, 43, 55, 35, 251,
-			4, 6, 35, 86, 73, 51, 56, 23, 3, 32, 15, 237, 226, 232, 250, 232, 196, 175, 156, 183, 250, 14, 254, 227, 197, 223, 3, 15, 68, 76,
-			35, 39, 42, 42, 50, 41, 45, 66, 26, 231, 230, 222, 205, 209, 218, 224, 217, 213, 211, 197, 188, 252, 60, 53, 253, 235, 253, 254, 13, 27,
-			14, 2, 4, 18, 248, 189, 222, 56, 60, 28, 14, 243, 243, 245, 2, 39, 39, 15, 25, 29, 229, 226, 18, 57, 67, 59, 45, 39, 15, 233,
-			226, 238, 200, 208, 229, 169, 137, 170, 186, 213, 5, 21, 57, 72, 39, 60, 82, 59, 62, 62, 0, 226, 239, 232, 221, 207, 209, 212, 208, 214,
-			238, 244, 224, 226, 0, 18, 20, 19, 16, 252, 14, 66, 91, 61, 15, 19, 32, 22, 8, 2, 231, 215, 210, 214, 213, 195, 190, 219, 238, 229,
-			246, 18, 27, 42, 64, 80, 78, 65, 44, 47, 54, 16, 242, 221, 182, 177, 202, 214, 212, 212, 215, 4, 29, 12, 22, 39, 35, 13, 237, 234,
-			244, 249, 246, 231, 215, 230, 21, 52, 39, 0, 23, 77, 70, 37, 33, 28, 15, 254, 230, 229, 225, 228, 255, 4, 247, 0, 11, 20, 18, 12,
-			23, 12, 222, 197, 202, 209, 206, 207, 202, 200, 201, 208, 234, 252, 2, 20, 47, 41, 18, 255, 250, 1, 30, 32, 17, 253, 229, 230, 253, 24,
-			39, 28, 17, 4, 14, 33, 47, 54, 48, 33, 19, 29, 22, 38, 39, 29, 23, 16, 8, 253, 246, 247, 2, 253, 14, 19, 8, 248, 215, 224,
-			3, 2, 244, 238, 194, 156, 170, 175, 210, 218, 190, 198, 209, 191, 208, 239, 250, 10, 28, 29, 18, 5, 15, 37, 50, 42, 35, 31, 2, 238,
-			231, 245, 252, 2, 2, 252, 233, 243, 24, 57, 73, 69, 67, 58, 41, 42, 43, 45, 22, 5, 6, 253, 236, 237, 253, 4, 16, 27, 25, 26,
-			21, 21, 38, 28, 8, 9, 253, 229, 224, 215, 214, 216, 215, 221, 225, 239, 142, 6, 24, 0, 1, 1, 3, 3, 253, 252, 0, 3, 8, 255,
-			231, 232, 255, 7, 15, 16, 9, 7, 0, 243, 249, 3, 9, 8, 0, 1, 6, 4, 7, 6, 253, 240, 244, 250, 0, 11, 8, 4, 11, 9,
-			4, 254, 244, 241, 253, 3, 6, 9, 1, 253, 254, 249, 248, 251, 249, 251, 2, 1, 0, 1, 0, 7, 12, 2, 251, 249, 249, 255, 7, 0,
-			245, 252, 0, 5, 11, 0, 248, 253, 255, 3, 4, 255, 0, 8, 11, 13, 16, 10, 5, 3, 253, 254, 2, 255, 0, 3, 251, 249, 252, 245,
-			249, 4, 1, 249, 251, 247, 0, 14, 8, 2, 5, 1, 0, 2, 250, 251, 2, 5, 10, 13, 7, 254, 254, 255, 243, 241, 247, 6, 20, 8,
-			253, 255, 250, 251, 252, 248, 253, 5, 7, 5, 0, 251, 249, 252, 2, 252, 251, 254, 251, 248, 251, 6, 18, 17, 5, 0, 253, 0, 9, 11,
-			4, 255, 252, 5, 13, 5, 248, 251, 1, 3, 3, 251, 247, 4, 9, 2, 0, 1, 3, 2, 251, 255, 16, 4, 249, 1, 6, 0, 247, 243,
-			250, 2, 6, 0, 240, 242, 246, 255, 4, 2, 3, 2, 255, 3, 252, 250, 5, 9, 13, 16, 7, 4, 6, 10, 7, 247, 237, 244, 255, 0,
-			0, 0, 6, 2, 254, 253, 1, 8, 2, 241, 240, 0, 2, 253, 251, 0, 18, 21, 9, 2, 250, 253, 2, 253, 0, 6, 5, 3, 255, 0,
-			252, 237, 239, 253, 1, 6, 2, 5, 6, 3, 8, 247, 236, 254, 19, 28, 25, 14, 12, 16, 11, 7, 254, 240, 240, 249, 0, 248, 236, 242,
-			253, 243, 237, 247, 0, 5, 16, 11, 253, 248, 246, 243, 3, 22, 11, 8, 20, 6, 245, 236, 242, 11, 13, 247, 244, 252, 253, 8, 4, 251,
-			2, 248, 241, 7, 27, 24, 21, 21, 1, 244, 253, 1, 4, 6, 246, 246, 5, 2, 250, 244, 243, 3, 9, 255, 250, 2, 9, 8, 1, 252,
-			248, 7, 22, 14, 7, 15, 11, 1, 250, 246, 254, 247, 231, 236, 245, 235, 238, 254, 7, 10, 254, 239, 246, 253, 2, 16, 12, 3, 6, 25,
-			19, 3, 5, 0, 248, 248, 230, 228, 5, 21, 25, 16, 247, 246, 0, 247, 249, 7, 15, 19, 13, 0, 253, 24, 36, 7, 246, 245, 238, 252,
-			15, 7, 254, 248, 241, 244, 245, 241, 250, 3, 5, 2, 255, 247, 242, 5, 21, 16, 2, 0, 6, 10, 1, 245, 243, 248, 253, 5, 2, 244,
-			245, 5, 12, 0, 229, 221, 248, 9, 9, 7, 253, 245, 11, 23, 13, 2, 252, 19, 37, 22, 8, 6, 4, 3, 3, 2, 242, 231, 243, 252,
-			6, 17, 1, 240, 237, 228, 244, 14, 15, 5, 254, 251, 3, 14, 22, 19, 3, 239, 236, 245, 254, 4, 10, 250, 239, 245, 251, 3, 17, 21,
-			0, 236, 235, 0, 32, 34, 11, 8, 6, 235, 226, 234, 246, 11, 17, 6, 242, 239, 250, 237, 237, 10, 11, 14, 10, 253, 9, 24, 25, 22,
-			253, 231, 4, 52, 65, 19, 222, 221, 220, 221, 250, 249, 249, 15, 28, 25, 231, 192, 218, 253, 26, 27, 255, 2, 10, 4, 34, 16, 235, 250,
-			254, 244, 4, 19, 16, 4, 3, 16, 253, 221, 220, 238, 13, 24, 12, 9, 0, 247, 7, 0, 236, 249, 254, 7, 30, 27, 3, 228, 204, 209,
-			1, 32, 14, 24, 44, 15, 251, 13, 244, 228, 6, 12, 7, 17, 249, 224, 237, 253, 11, 16, 4, 248, 248, 4, 252, 5, 29, 3, 221, 213,
-			223, 7, 61, 68, 32, 239, 209, 243, 17, 21, 20, 241, 212, 232, 7, 2, 237, 240, 0, 1, 13, 19, 1, 255, 255, 5, 19, 10, 0, 251,
-			238, 244, 0, 247, 242, 4, 25, 25, 10, 0, 251, 241, 243, 240, 242, 19, 27, 11, 19, 5, 252, 15, 16, 6, 2, 249, 0, 4, 248, 1,
-			2, 238, 240, 248, 241, 231, 249, 22, 5, 255, 20, 5, 245, 0, 252, 0, 251, 241, 4, 15, 23, 38, 18, 231, 225, 242, 248, 248, 238, 236,
-			6, 23, 18, 5, 255, 250, 242, 228, 241, 31, 59, 36, 254, 231, 241, 3, 9, 16, 18, 248, 235, 239, 244, 8, 31, 16, 248, 247, 2, 232,
-			212, 243, 20, 47, 49, 7, 234, 230, 246, 6, 5, 12, 27, 35, 17, 228, 199, 227, 5, 22, 25, 1, 221, 217, 241, 16, 48, 31, 221, 196,
-			211, 236, 19, 40, 36, 38, 48, 34, 18, 247, 224, 240, 244, 245, 239, 232, 3, 22, 8, 239, 227, 245, 2, 247, 235, 252, 16, 20, 21, 33,
-			21, 248, 1, 253, 226, 239, 252, 5, 45, 53, 28, 12, 2, 251, 250, 236, 234, 0, 15, 246, 232, 227, 205, 211, 0, 21, 13, 0, 239, 231,
-			1, 25, 28, 20, 14, 26, 43, 27, 5, 252, 236, 11, 46, 22, 226, 199, 195, 226, 20, 24, 4, 8, 0, 255, 23, 33, 8, 234, 240, 2,
-			2, 7, 13, 237, 237, 26, 252, 191, 195, 227, 254, 22, 21, 250, 236, 3, 53, 92, 61, 240, 200, 223, 28, 63, 44, 253, 239, 251, 4, 238,
-			211, 207, 207, 242, 12, 249, 237, 249, 7, 31, 51, 30, 236, 228, 0, 41, 68, 46, 0, 253, 25, 33, 3, 219, 190, 201, 251, 26, 19, 235,
-			180, 175, 217, 1, 46, 75, 47, 21, 0, 216, 228, 15, 44, 58, 30, 251, 252, 250, 246, 228, 219, 231, 246, 16, 31, 7, 245, 4, 11, 242,
-			232, 248, 251, 250, 254, 24, 32, 24, 5, 246, 248, 255, 251, 251, 244, 236, 254, 8, 0, 10, 27, 24, 10, 248, 222, 225, 3, 28, 31, 19,
-			6, 2, 0, 248, 228, 215, 241, 6, 249, 247, 16, 16, 237, 227, 3, 35, 21, 0, 3, 4, 23, 51, 27, 251, 238, 1, 16, 19, 245, 195,
-			202, 0, 18, 255, 243, 0, 251, 229, 230, 232, 231, 21, 60, 36, 21, 32, 28, 11, 5, 245, 232, 238, 251, 31, 49, 12, 229, 227, 220, 221,
-			240, 244, 255, 15, 0, 241, 233, 229, 239, 7, 28, 16, 14, 38, 37, 20, 1, 248, 3, 20, 23, 14, 253, 250, 240, 219, 254, 7, 232, 6,
-			49, 9, 235, 243, 235, 248, 14, 0, 240, 239, 234, 241, 28, 61, 26, 240, 204, 184, 222, 25, 60, 61, 22, 243, 233, 251, 1, 240, 228, 249,
-			7, 27, 49, 18, 211, 203, 250, 29, 35, 20, 7, 0, 250, 248, 248, 240, 5, 19, 11, 9, 19, 1, 251, 16, 12, 243, 244, 233, 225, 5,
-			45, 24, 237, 222, 228, 237, 18, 21, 228, 221, 36, 52, 4, 231, 214, 196, 243, 45, 64, 75, 47, 218, 175, 210, 248, 254, 4, 38, 33, 0,
-			6, 7, 209, 204, 245, 235, 234, 26, 45, 39, 19, 1, 11, 20, 24, 6, 229, 223, 28, 57, 40, 36, 20, 222, 218, 252, 246, 214, 215, 217,
-			219, 14, 35, 237, 242, 35, 26, 252, 233, 215, 213, 8, 76, 90, 35, 250, 0, 17, 29, 11, 214, 190, 214, 239, 3, 29, 12, 202, 192, 2,
-			8, 207, 232, 25, 33, 61, 87, 31, 216, 213, 252, 251, 236, 246, 237, 234, 255, 7, 26, 58, 36, 1, 255, 9, 23, 9, 1, 32, 32, 21,
-			74, 37, 190, 166, 210, 217, 215, 230, 242, 8, 49, 45, 239, 198, 203, 227, 245, 38, 68, 48, 21, 11, 10, 33, 33, 2, 233, 220, 207, 204,
-			250, 15, 5, 33, 61, 7, 199, 189, 206, 218, 5, 32, 16, 3, 16, 19, 14, 5, 12, 249, 243, 10, 14, 8, 42, 39, 29, 41, 18, 218,
-			194, 209, 238, 243, 238, 245, 248, 7, 16, 12, 233, 222, 247, 26, 45, 57, 27, 222, 198, 236, 45, 95, 72, 17, 215, 205, 228, 254, 15, 13,
-			11, 2, 230, 230, 244, 250, 246, 231, 227, 243, 242, 240, 16, 20, 3, 251, 11, 18, 22, 36, 37, 11, 244, 241, 4, 254, 3, 253, 251, 254,
-			241, 220, 207, 214, 248, 6, 21, 19, 251, 247, 3, 31, 62, 67, 33, 247, 219, 235, 247, 2, 18, 17, 1, 255, 222, 217, 253, 0, 222, 249,
-			21, 25, 24, 37, 15, 9, 28, 14, 226, 222, 254, 0, 249, 9, 14, 240, 233, 238, 216, 219, 253, 245, 243, 13, 30, 13, 8, 27, 14, 10,
-			25, 10, 246, 12, 33, 17, 7, 25, 4, 236, 242, 229, 195, 217, 9, 20, 18, 25, 247, 214, 235, 3, 237, 228, 250, 9, 8, 23, 32, 44,
-			49, 36, 255, 213, 219, 255, 253, 246, 12, 14, 242, 245, 8, 0, 248, 242, 230, 224, 240, 2, 18, 13, 254, 12, 30, 27, 21, 9, 252, 0,
-			254, 251, 7, 16, 18, 23, 38, 7, 219, 203, 199, 230, 22, 29, 26, 41, 33, 13, 1, 247, 220, 204, 225, 5, 17, 20, 17, 254, 240, 253,
-			26, 4, 222, 212, 213, 223, 255, 13, 9, 15, 23, 6, 249, 26, 36, 2, 223, 225, 236, 253, 17, 20, 254, 254, 30, 46, 253, 231, 251, 255,
-			254, 0, 252, 232, 231, 14, 47, 41, 21, 17, 247, 212, 252, 57, 53, 35, 29, 238, 198, 218, 31, 76, 51, 229, 154, 134, 202, 24, 70, 42,
-			10, 220, 184, 195, 235, 221, 219, 11, 68, 47, 23, 27, 18, 16, 22, 30, 25, 27, 9, 244, 241, 12, 21, 255, 213, 210, 213, 230, 2, 22,
-			13, 0, 247, 244, 249, 9, 1, 250, 3, 1, 245, 9, 25, 19, 5, 1, 5, 254, 251, 251, 235, 238, 1, 6, 253, 248, 5, 8, 253, 245,
-			251, 254, 11, 18, 12, 0, 251, 254, 244, 235, 252, 4, 254, 4, 16, 3, 235, 231, 254, 25, 40, 44, 27, 22, 28, 20, 14, 24, 33, 27,
-			3, 11, 25, 14, 6, 13, 10, 234, 219, 238, 246, 235, 243, 232, 209, 221, 11, 30, 0, 0, 147, 5, 17, 0, 252, 244, 246, 1, 12, 13,
-			9, 4, 253, 5, 9, 6, 251, 245, 249, 251, 10, 13, 16, 6, 239, 231, 245, 254, 7, 9, 8, 248, 231, 233, 243, 1, 4, 254, 246, 242,
-			0, 8, 6, 0, 247, 239, 244, 10, 28, 37, 26, 7, 249, 252, 0, 0, 5, 16, 25, 25, 15, 255, 240, 227, 229, 247, 12, 23, 16, 0,
-			243, 246, 247, 240, 241, 255, 11, 10, 0, 251, 253, 254, 250, 250, 240, 245, 2, 11, 12, 6, 5, 0, 0, 253, 250, 247, 0, 14, 20, 19,
-			18, 5, 240, 244, 0, 11, 20, 19, 10, 255, 247, 247, 253, 249, 248, 3, 5, 8, 1, 238, 229, 246, 5, 254, 251, 255, 6, 17, 12, 252,
-			242, 247, 255, 0, 13, 16, 11, 0, 244, 244, 248, 242, 245, 2, 8, 3, 7, 255, 240, 241, 253, 10, 14, 6, 253, 3, 18, 30, 33, 20,
-			9, 254, 249, 8, 10, 8, 3, 5, 5, 253, 249, 240, 235, 244, 4, 6, 253, 242, 237, 239, 248, 251, 0, 255, 248, 249, 243, 240, 242, 253,
-			12, 16, 5, 249, 239, 241, 1, 9, 15, 28, 25, 10, 252, 236, 244, 13, 24, 23, 23, 18, 10, 13, 8, 9, 8, 2, 254, 254, 3, 8,
-			14, 9, 252, 231, 223, 233, 241, 3, 12, 4, 239, 227, 232, 250, 0, 248, 255, 2, 248, 248, 250, 252, 4, 0, 0, 0, 251, 254, 20, 20,
-			1, 254, 0, 7, 14, 15, 15, 14, 14, 15, 14, 13, 14, 18, 14, 10, 2, 239, 225, 231, 255, 12, 13, 5, 245, 225, 221, 237, 2, 5,
-			0, 253, 250, 238, 228, 236, 4, 14, 8, 4, 1, 243, 234, 248, 16, 33, 35, 9, 240, 249, 5, 4, 0, 17, 38, 36, 22, 251, 242, 0,
-			20, 20, 249, 247, 2, 7, 2, 250, 234, 238, 247, 242, 239, 0, 12, 7, 247, 229, 225, 253, 11, 17, 15, 7, 247, 220, 233, 247, 253, 21,
-			41, 12, 236, 233, 241, 4, 22, 27, 15, 248, 250, 1, 0, 18, 15, 8, 7, 2, 8, 12, 5, 255, 3, 8, 6, 4, 247, 247, 254, 4,
-			0, 254, 244, 245, 252, 251, 246, 241, 244, 251, 9, 6, 254, 241, 239, 248, 4, 8, 2, 8, 13, 4, 246, 244, 6, 16, 22, 13, 254, 247,
-			236, 252, 24, 27, 4, 243, 247, 255, 9, 16, 18, 11, 10, 253, 254, 0, 253, 240, 246, 7, 22, 11, 252, 237, 225, 229, 235, 247, 254, 253,
-			6, 6, 255, 245, 244, 251, 255, 2, 13, 22, 14, 11, 14, 1, 244, 251, 12, 33, 40, 21, 244, 234, 250, 15, 22, 5, 233, 232, 7, 15,
-			248, 237, 0, 16, 14, 0, 232, 214, 222, 252, 20, 34, 25, 242, 237, 243, 250, 2, 2, 8, 240, 222, 229, 5, 28, 43, 18, 225, 228, 240,
-			254, 25, 57, 48, 4, 244, 241, 0, 16, 7, 3, 0, 6, 254, 14, 31, 25, 2, 232, 219, 213, 234, 15, 33, 25, 1, 249, 245, 241, 216,
-			196, 225, 24, 55, 19, 233, 228, 232, 244, 9, 10, 4, 25, 27, 15, 19, 250, 219, 233, 8, 19, 41, 50, 23, 247, 233, 226, 239, 16, 38,
-			20, 255, 242, 253, 252, 235, 244, 15, 34, 27, 242, 217, 233, 10, 14, 245, 214, 204, 231, 8, 29, 21, 255, 237, 226, 239, 15, 22, 6, 253,
-			20, 36, 37, 252, 214, 226, 20, 63, 65, 34, 1, 218, 221, 234, 251, 6, 252, 4, 16, 21, 17, 253, 234, 230, 243, 226, 242, 27, 64, 67,
-			17, 214, 174, 178, 244, 44, 48, 24, 0, 234, 217, 207, 207, 0, 33, 14, 3, 4, 4, 251, 230, 229, 1, 21, 12, 30, 53, 66, 42, 244,
-			212, 210, 245, 23, 52, 65, 48, 1, 231, 218, 215, 238, 16, 15, 16, 2, 242, 230, 210, 221, 246, 29, 37, 12, 231, 224, 6, 16, 253, 234,
-			224, 238, 19, 34, 6, 222, 214, 221, 243, 15, 24, 31, 37, 28, 0, 219, 210, 244, 45, 57, 52, 19, 246, 254, 20, 17, 252, 229, 234, 16,
-			47, 53, 28, 221, 192, 213, 240, 13, 38, 28, 11, 245, 230, 235, 227, 224, 228, 237, 8, 32, 31, 0, 249, 2, 255, 243, 210, 219, 10, 35,
-			53, 21, 238, 236, 255, 1, 242, 243, 6, 22, 22, 9, 1, 226, 3, 1, 248, 33, 23, 255, 243, 14, 19, 24, 42, 16, 238, 197, 217, 2,
-			23, 55, 38, 0, 224, 223, 235, 240, 15, 29, 13, 236, 227, 213, 218, 31, 32, 9, 244, 200, 203, 15, 49, 46, 29, 242, 219, 210, 232, 12,
-			25, 34, 34, 4, 243, 2, 0, 1, 3, 242, 1, 13, 27, 41, 33, 14, 246, 230, 232, 252, 239, 16, 46, 30, 5, 223, 233, 237, 247, 1,
-			232, 215, 255, 36, 6, 242, 245, 227, 233, 224, 243, 8, 17, 63, 44, 0, 219, 223, 231, 0, 53, 20, 36, 55, 25, 227, 181, 191, 236, 52,
-			81, 65, 8, 217, 221, 200, 203, 25, 69, 67, 33, 222, 208, 237, 17, 47, 10, 201, 205, 1, 33, 51, 250, 219, 242, 234, 234, 234, 209, 8,
-			67, 73, 36, 231, 180, 190, 231, 253, 48, 71, 67, 39, 204, 180, 206, 0, 38, 63, 19, 229, 212, 242, 61, 66, 12, 210, 177, 224, 37, 48,
-			43, 16, 0, 4, 245, 242, 216, 210, 16, 43, 20, 21, 9, 225, 217, 241, 255, 251, 247, 26, 61, 27, 231, 211, 213, 11, 50, 44, 245, 225,
-			215, 9, 51, 57, 11, 180, 162, 244, 41, 28, 11, 230, 205, 243, 12, 11, 239, 233, 239, 245, 40, 78, 29, 240, 220, 231, 244, 9, 39, 43,
-			36, 33, 20, 218, 219, 0, 248, 35, 55, 29, 236, 222, 6, 10, 14, 10, 15, 3, 230, 232, 238, 9, 44, 11, 229, 187, 179, 210, 249, 45,
-			2, 212, 211, 25, 35, 240, 239, 231, 0, 32, 27, 22, 6, 251, 11, 28, 38, 23, 0, 224, 222, 45, 47, 46, 10, 218, 238, 22, 18, 241,
-			4, 0, 8, 19, 252, 13, 0, 222, 242, 239, 235, 234, 20, 24, 235, 211, 204, 233, 231, 31, 46, 246, 230, 220, 210, 233, 26, 45, 29, 243,
-			236, 31, 41, 28, 32, 216, 254, 62, 41, 19, 29, 44, 1, 10, 225, 210, 216, 251, 87, 79, 2, 221, 174, 131, 223, 49, 37, 26, 15, 229,
-			216, 213, 230, 220, 214, 41, 56, 27, 231, 205, 217, 248, 64, 70, 250, 172, 227, 35, 41, 45, 23, 239, 248, 15, 31, 6, 7, 17, 39, 29,
-			233, 253, 13, 10, 23, 240, 234, 8, 15, 28, 38, 14, 201, 184, 184, 253, 94, 95, 3, 164, 131, 186, 20, 73, 41, 234, 195, 191, 11, 9,
-			239, 242, 244, 20, 40, 43, 239, 196, 228, 35, 94, 50, 236, 213, 200, 235, 32, 58, 49, 19, 226, 242, 15, 218, 227, 52, 74, 74, 15, 214,
-			0, 227, 250, 41, 38, 246, 8, 23, 231, 245, 237, 241, 230, 247, 32, 41, 5, 201, 210, 187, 216, 38, 50, 252, 237, 229, 232, 250, 0, 255,
-			237, 4, 10, 2, 240, 12, 12, 12, 9, 1, 5, 228, 12, 38, 15, 232, 247, 254, 241, 33, 47, 13, 210, 229, 20, 48, 18, 221, 237, 251,
-			26, 62, 8, 216, 246, 3, 2, 8, 30, 22, 18, 254, 249, 248, 241, 19, 23, 244, 253, 7, 248, 237, 6, 26, 3, 239, 242, 5, 7, 8,
-			12, 215, 217, 243, 255, 249, 251, 6, 236, 227, 245, 253, 253, 225, 231, 250, 234, 28, 25, 244, 210, 241, 6, 4, 28, 30, 47, 255, 227, 7,
-			247, 6, 50, 52, 11, 246, 9, 38, 0, 230, 252, 31, 20, 54, 61, 10, 216, 189, 233, 12, 39, 74, 30, 200, 147, 214, 50, 41, 16, 4,
-			243, 245, 204, 223, 218, 242, 242, 32, 53, 13, 6, 209, 196, 230, 28, 80, 61, 241, 186, 214, 26, 42, 65, 22, 234, 234, 238, 6, 17, 5,
-			245, 41, 42, 247, 237, 194, 208, 2, 19, 252, 18, 242, 238, 246, 224, 223, 216, 226, 13, 31, 30, 2, 228, 207, 218, 248, 14, 15, 255, 19,
-			18, 2, 14, 236, 241, 239, 7, 40, 44, 34, 9, 12, 251, 252, 22, 30, 38, 39, 31, 3, 20, 26, 9, 2, 8, 19, 38, 26, 28, 33,
-			13, 248, 1, 247, 239, 21, 56, 43, 12, 242, 239, 0, 183, 6, 8, 0, 1, 12, 253, 238, 243, 1, 5, 0, 5, 252, 253, 17, 26, 8,
-			255, 19, 43, 35, 14, 7, 17, 21, 19, 15, 8, 12, 12, 11, 252, 236, 255, 15, 10, 251, 235, 243, 238, 224, 225, 219, 217, 229, 228, 214,
-			198, 198, 224, 4, 245, 235, 14, 29, 26, 0, 3, 31, 47, 54, 54, 39, 16, 29, 56, 52, 33, 11, 18, 41, 23, 250, 246, 2, 1, 0,
-			253, 221, 220, 244, 237, 223, 209, 221, 249, 235, 204, 215, 245, 0, 245, 235, 247, 6, 17, 8, 245, 243, 0, 24, 16, 242, 243, 17, 30, 23,
-			0, 250, 16, 38, 29, 10, 9, 5, 21, 25, 4, 250, 21, 29, 16, 242, 240, 10, 18, 4, 245, 244, 244, 246, 241, 238, 230, 233, 237, 240,
-			229, 220, 243, 250, 251, 248, 4, 12, 21, 23, 14, 19, 29, 36, 40, 19, 9, 15, 16, 4, 3, 2, 251, 244, 237, 254, 0, 240, 244, 246,
-			233, 235, 249, 250, 236, 235, 246, 253, 243, 240, 2, 1, 247, 4, 9, 5, 8, 16, 24, 24, 2, 254, 13, 5, 252, 246, 254, 249, 0, 0,
-			254, 249, 248, 10, 13, 2, 15, 30, 32, 18, 5, 20, 20, 12, 0, 4, 3, 245, 253, 255, 249, 228, 236, 251, 251, 247, 249, 249, 0, 7,
-			10, 253, 240, 239, 255, 255, 229, 228, 254, 6, 247, 228, 238, 253, 0, 32, 48, 31, 7, 254, 255, 10, 2, 5, 30, 23, 248, 235, 253, 7,
-			248, 253, 31, 19, 240, 240, 253, 254, 255, 10, 18, 251, 227, 231, 253, 234, 237, 4, 6, 7, 245, 241, 248, 243, 253, 25, 17, 235, 250, 13,
-			254, 236, 252, 25, 34, 28, 11, 13, 20, 30, 46, 50, 32, 17, 30, 29, 252, 226, 247, 4, 242, 230, 233, 224, 189, 216, 2, 234, 208, 218,
-			249, 254, 217, 217, 242, 4, 2, 255, 8, 252, 245, 17, 38, 27, 3, 33, 64, 31, 12, 22, 26, 47, 40, 13, 14, 246, 6, 37, 3, 220,
-			219, 242, 252, 211, 173, 217, 246, 237, 229, 225, 220, 230, 3, 11, 244, 245, 13, 44, 25, 242, 247, 29, 47, 31, 24, 29, 43, 55, 43, 16,
-			7, 16, 47, 32, 243, 223, 0, 10, 249, 223, 213, 231, 249, 248, 235, 224, 211, 232, 1, 255, 230, 221, 244, 240, 238, 251, 1, 4, 1, 9,
-			10, 245, 250, 12, 35, 35, 10, 12, 2, 249, 1, 17, 38, 29, 13, 14, 4, 222, 245, 35, 35, 4, 241, 5, 15, 238, 224, 245, 5, 248,
-			252, 237, 218, 205, 225, 12, 6, 240, 252, 18, 4, 246, 254, 22, 38, 29, 30, 26, 4, 247, 19, 23, 4, 13, 21, 31, 13, 243, 251, 10,
-			14, 245, 246, 242, 248, 237, 209, 223, 233, 219, 223, 229, 226, 212, 228, 242, 0, 7, 13, 28, 14, 20, 49, 72, 60, 34, 42, 49, 38, 19,
-			4, 244, 254, 253, 244, 220, 205, 216, 247, 246, 209, 213, 243, 252, 0, 235, 236, 253, 254, 243, 13, 11, 249, 7, 23, 25, 248, 236, 27, 68,
-			30, 254, 20, 32, 10, 10, 2, 250, 235, 7, 36, 248, 202, 226, 10, 25, 248, 236, 6, 22, 26, 7, 247, 0, 31, 29, 2, 229, 224, 253,
-			8, 229, 203, 211, 240, 1, 239, 210, 223, 254, 3, 253, 239, 254, 12, 24, 2, 249, 0, 43, 58, 47, 16, 254, 33, 56, 50, 26, 18, 20,
-			16, 6, 255, 245, 244, 243, 6, 7, 225, 198, 222, 0, 249, 228, 242, 244, 234, 232, 248, 247, 226, 234, 9, 252, 230, 232, 0, 2, 251, 251,
-			5, 4, 251, 13, 21, 12, 9, 30, 32, 22, 10, 20, 49, 54, 37, 29, 27, 24, 45, 37, 246, 232, 245, 0, 238, 224, 219, 207, 194, 225,
-			226, 211, 199, 231, 2, 227, 206, 232, 12, 16, 14, 36, 34, 24, 19, 44, 46, 10, 20, 53, 62, 19, 240, 1, 22, 2, 6, 5, 252, 247,
-			223, 220, 234, 227, 248, 5, 241, 217, 218, 238, 230, 234, 6, 27, 22, 239, 240, 252, 2, 21, 30, 25, 11, 249, 253, 8, 10, 255, 19, 33,
-			5, 252, 243, 8, 27, 23, 13, 13, 16, 251, 248, 248, 250, 241, 0, 6, 254, 217, 222, 250, 241, 243, 8, 20, 6, 249, 247, 254, 6, 4,
-			18, 14, 227, 230, 12, 25, 248, 237, 244, 35, 4, 219, 6, 33, 19, 15, 24, 10, 250, 0, 33, 11, 209, 228, 255, 0, 229, 219, 237, 243,
-			228, 248, 26, 22, 14, 32, 41, 18, 254, 10, 46, 45, 27, 255, 241, 228, 251, 1, 240, 220, 224, 21, 10, 222, 243, 1, 12, 5, 241, 7,
-			13, 241, 231, 236, 241, 223, 252, 5, 240, 224, 220, 16, 14, 241, 255, 34, 20, 21, 43, 27, 36, 25, 35, 57, 23, 248, 3, 24, 4, 253,
-			246, 245, 0, 246, 250, 2, 242, 222, 4, 4, 226, 217, 228, 228, 205, 209, 244, 5, 225, 220, 254, 10, 255, 7, 55, 54, 41, 42, 40, 51,
-			43, 15, 10, 27, 19, 3, 233, 218, 224, 236, 236, 250, 239, 225, 0, 12, 242, 245, 2, 0, 6, 26, 4, 254, 4, 240, 242, 253, 245, 0,
-			7, 245, 0, 254, 250, 7, 248, 247, 13, 11, 243, 224, 240, 12, 1, 243, 246, 244, 249, 21, 10, 15, 13, 13, 33, 60, 44, 11, 11, 21,
-			37, 56, 11, 233, 247, 239, 0, 240, 207, 221, 243, 224, 223, 206, 187, 235, 7, 251, 246, 254, 13, 32, 20, 229, 0, 35, 46, 70, 33, 5,
-			29, 45, 27, 7, 253, 42, 69, 16, 216, 207, 221, 231, 231, 211, 190, 189, 200, 214, 223, 186, 196, 6, 41, 25, 239, 224, 6, 41, 38, 32,
-			26, 35, 63, 45, 35, 24, 16, 77, 112, 73, 10, 8, 28, 13, 244, 232, 240, 227, 186, 184, 170, 149, 158, 206, 219, 217, 238, 247, 3, 9,
-			7, 64, 100, 59, 39, 45, 49, 31, 22, 14, 31, 36, 0, 9, 247, 212, 3, 41, 34, 235, 202, 242, 246, 203, 177, 200, 221, 211, 204, 192,
-			207, 218, 11, 34, 13, 30, 44, 83, 69, 35, 44, 72, 92, 71, 11, 251, 228, 228, 0, 247, 200, 188, 216, 217, 194, 195, 240, 10, 251, 10,
-			26, 13, 8, 26, 59, 61, 42, 29, 5, 3, 4, 252, 0, 252, 1, 255, 233, 218, 219, 246, 255, 6, 250, 228, 244, 247, 244, 239, 245, 0,
-			19, 13, 237, 233, 230, 254, 34, 14, 24, 13, 21, 27, 8, 44, 45, 45, 58, 34, 1, 253, 4, 2, 254, 232, 207, 222, 207, 185, 195, 219,
-			241, 234, 235, 225, 229, 238, 240, 21, 33, 25, 47, 45, 33, 21, 19, 54, 65, 35, 18, 17, 254, 239, 241, 234, 226, 231, 5, 255, 229, 217,
-			205, 226, 0, 10, 14, 239, 241, 1, 5, 4, 9, 26, 25, 20, 38, 4, 238, 5, 35, 37, 16, 11, 2, 248, 245, 1, 252, 239, 239, 0,
-			245, 208, 209, 234, 227, 231, 9, 6, 8, 249, 251, 20, 28, 38, 58, 52, 19, 20, 26, 254, 245, 245, 1, 12, 232, 230, 232, 223, 231, 250,
-			15, 240, 236, 14, 249, 244, 241, 254, 2, 5, 27, 7, 234, 232, 17, 32, 0, 21, 26, 17, 249, 239, 253, 233, 3, 15, 254, 230, 207, 236,
-			237, 222, 243, 1, 15, 2, 4, 246, 7, 53, 53, 53, 53, 62, 52, 18, 27, 33, 41, 20, 253, 1, 212, 209, 227, 234, 218, 222, 229, 227,
-			227, 224, 236, 246, 237, 0, 246, 215, 220, 223, 235, 233, 0, 12, 0, 248, 247, 15, 30, 44, 73, 72, 44, 40, 35, 36, 36, 23, 20, 25,
-			248, 227, 227, 204, 211, 229, 245, 241, 223, 222, 238, 246, 254, 20, 38, 15, 10, 26, 2, 0, 14, 0, 249, 248, 251, 0, 228, 211, 242, 1,
-			15, 14, 11, 0, 251, 14, 6, 8, 24, 19, 17, 254, 233, 248, 248, 243, 19, 18, 234, 11, 11, 252, 254, 9, 44, 33, 254, 2, 6, 254,
-			231, 252, 12, 236, 229, 237, 224, 206, 220, 244, 255, 236, 228, 12, 7, 255, 16, 36, 41, 37, 38, 39, 15, 2, 11, 35, 23, 243, 18, 1,
-			229, 247, 237, 239, 2, 240, 246, 243, 229, 230, 255, 0, 244, 2, 249, 7, 6, 229, 240, 25, 43, 12, 255, 1, 247, 13, 14, 6, 11, 6,
-			3, 16, 235, 198, 0, 21, 7, 2, 220, 239, 18, 246, 248, 255, 9, 25, 33, 0, 244, 247, 6, 26, 25, 0, 248, 8, 1, 239, 238, 254,
-			7, 23, 5, 246, 248, 225, 239, 25, 4, 247, 3, 3, 9, 250, 244, 21, 36, 22, 11, 15, 10, 3, 23, 12, 1, 253, 2, 6, 244, 222,
-			218, 245, 250, 225, 226, 237, 238, 245, 244, 240, 237, 10, 10, 9, 249, 240, 31, 35, 18, 25, 251, 247, 21, 15, 244, 236, 247, 3, 14, 249,
-			238, 254, 252, 10, 24, 254, 252, 29, 24, 6, 12, 12, 30, 38, 21, 13, 11, 255, 9, 17, 8, 240, 242, 245, 224, 215, 223, 240, 242, 250,
-			233, 237, 238, 250, 15, 255, 247, 3, 19, 11, 1, 5, 0, 249, 19, 12, 9, 250, 2, 8, 7, 241, 26, 33, 253, 8, 247, 249, 252, 244,
-			6, 0, 220, 228, 241, 234, 235, 244, 244, 4, 253, 255, 8, 254, 9, 21, 29, 20, 16, 21, 29, 26, 7, 19, 26, 19, 23, 14, 12, 21,
-			253, 13, 4, 12, 2, 2, 250, 248, 247, 238, 237, 220, 230, 225, 222, 227, 211, 225, 229, 225, 245, 239, 241, 253, 3, 11, 8, 14, 17, 20,
-			17, 12, 12, 3, 6, 18, 5, 246, 246, 9, 14, 249, 247, 236, 245, 10, 10, 17, 0, 253, 19, 24, 16, 7, 37, 42, 28, 32, 14, 30,
-			16, 11, 29, 5, 251, 250, 8, 0, 229, 242, 234, 243, 244, 244, 249, 231, 239, 245, 5, 0, 237, 0, 250, 241, 252, 243, 10, 17, 254, 2,
-			2, 2, 2, 4, 2, 250, 244, 236, 249, 237, 219, 225, 239, 233, 214, 206, 222, 221, 225, 225, 227, 241, 227, 248, 0, 0, 30, 7, 15, 0,
-			0, 248, 249, 252, 250, 251, 254, 255, 255, 0, 249, 243, 242, 249, 1, 3, 0, 2, 3, 1, 253, 251, 247, 248, 252, 252, 255, 250, 253, 253,
-			255, 254, 0, 8, 16, 18, 18, 16, 12, 8, 6, 5, 7, 12, 17, 24, 24, 24, 21, 19, 20, 16, 13, 13, 7, 9, 8, 6, 7, 12,
-			14, 20, 21, 21, 19, 15, 7, 0, 249, 239, 242, 245, 243, 245, 247, 248, 251, 249, 251, 250, 243, 241, 237, 240, 241, 242, 244, 247, 248, 248,
-			249, 243, 241, 245, 247, 249, 248, 250, 0, 255, 254, 251, 251, 246, 239, 247, 241, 233, 230, 231, 236, 240, 245, 253, 0, 1, 3, 2, 0, 255,
-			0, 6, 8, 11, 16, 25, 27, 30, 36, 36, 26, 17, 5, 255, 253, 254, 0, 3, 9, 15, 19, 21, 21, 18, 12, 5, 5, 6, 5, 2,
-			2, 0, 253, 0, 12, 16, 12, 2, 246, 237, 235, 232, 227, 224, 226, 232, 238, 243, 247, 252, 255, 1, 3, 0, 251, 244, 242, 247, 251, 0,
-			4, 6, 1, 251, 248, 243, 247, 248, 249, 254, 4, 255, 255, 255, 253, 255, 4, 5, 5, 4, 0, 3, 2, 0, 254, 255, 3, 6, 12, 14,
-			10, 4, 0, 1, 3, 12, 20, 22, 26, 22, 20, 18, 15, 9, 4, 1, 0, 13, 15, 12, 11, 5, 254, 249, 241, 242, 238, 238, 243, 249,
-			247, 250, 253, 254, 255, 0, 1, 3, 6, 3, 0, 254, 254, 5, 7, 1, 0, 250, 248, 247, 240, 241, 241, 244, 248, 249, 250, 1, 4, 254,
-			0, 253, 253, 0, 0, 4, 10, 17, 21, 15, 4, 250, 242, 236, 230, 229, 234, 236, 239, 243, 0, 10, 19, 24, 22, 17, 18, 15, 17, 14,
-			11, 17, 31, 39, 44, 42, 34, 34, 30, 24, 14, 7, 255, 254, 0, 0, 1, 4, 11, 10, 7, 2, 2, 4, 1, 255, 250, 0, 5, 8,
-			8, 9, 6, 2, 1, 252, 243, 239, 237, 232, 230, 222, 221, 222, 229, 235, 235, 241, 240, 236, 237, 237, 242, 244, 244, 246, 245, 241, 245, 237,
-			231, 235, 235, 244, 248, 243, 240, 236, 234, 238, 236, 243, 252, 251, 254, 0, 252, 0, 0, 5, 9, 13, 18, 22, 21, 18, 22, 26, 36, 41,
-			38, 43, 40, 34, 26, 17, 11, 14, 8, 8, 8, 9, 18, 26, 24, 12, 254, 254, 254, 251, 254, 252, 253, 252, 253, 255, 1, 5, 6, 3,
-			254, 250, 250, 248, 241, 242, 245, 248, 254, 0, 3, 11, 11, 14, 9, 250, 236, 236, 235, 242, 246, 250, 251, 251, 0, 0, 252, 242, 234, 234,
-			230, 234, 238, 243, 246, 242, 250, 10, 16, 18, 15, 10, 3, 1, 254, 255, 251, 6, 20, 20, 25, 28, 20, 11, 1, 250, 250, 251, 252, 247,
-			246, 244, 254, 7, 0, 252, 255, 0, 3, 0, 1, 2, 12, 15, 22, 25, 21, 20, 11, 7, 10, 7, 8, 6, 2, 3, 9, 5, 255, 252,
-			239, 228, 230, 231, 233, 237, 237, 242, 248, 253, 8, 19, 16, 14, 9, 253, 253, 250, 244, 244, 243, 246, 253, 254, 252, 249, 238, 234, 237, 239,
-			243, 243, 252, 1, 0, 0, 11, 11, 12, 19, 23, 22, 20, 15, 16, 13, 9, 12, 20, 23, 28, 30, 26, 20, 12, 6, 6, 8, 10, 9,
-			7, 6, 9, 15, 24, 30, 29, 25, 12, 1, 250, 248, 245, 243, 237, 230, 224, 236, 244, 248, 242, 238, 241, 242, 249, 253, 246, 237, 233, 236,
-			248, 253, 3, 5, 5, 254, 252, 243, 242, 242, 241, 237, 231, 231, 232, 234, 244, 247, 255, 3, 0, 255, 255, 254, 2, 4, 254, 0, 3, 5,
-			7, 2, 2, 9, 14, 17, 14, 3, 254, 249, 244, 250, 246, 246, 252, 251, 0, 3, 8, 22, 29, 28, 33, 28, 25, 16, 6, 9, 5, 10,
-			18, 18, 17, 21, 23, 26, 15, 4, 3, 0, 253, 254, 249, 248, 246, 252, 2, 0, 255, 253, 254, 243, 239, 234, 224, 232, 242, 247, 3, 2,
-			2, 1, 243, 232, 239, 245, 253, 254, 255, 3, 10, 13, 12, 6, 255, 4, 7, 1, 250, 241, 240, 244, 246, 243, 247, 251, 2, 5, 0, 249,
-			233, 228, 229, 234, 250, 255, 253, 6, 27, 29, 28, 27, 21, 5, 255, 254, 255, 0, 253, 7, 11, 9, 17, 28, 29, 18, 3, 4, 4, 254,
-			251, 255, 1, 11, 16, 23, 29, 30, 31, 31, 23, 8, 250, 239, 238, 237, 244, 249, 251, 4, 5, 1, 2, 251, 242, 243, 241, 241, 233, 233,
-			245, 0, 14, 20, 16, 9, 0, 243, 239, 241, 235, 226, 224, 236, 249, 0, 4, 0, 251, 247, 240, 235, 236, 233, 237, 247, 1, 15, 27, 34,
-			35, 29, 21, 9, 3, 2, 253, 3, 8, 19, 25, 30, 26, 20, 15, 17, 14, 6, 248, 236, 245, 251, 252, 5, 9, 11, 16, 9, 4, 0,
-			244, 250, 254, 253, 5, 0, 0, 5, 252, 252, 0, 246, 247, 252, 243, 244, 241, 241, 250, 251, 251, 2, 10, 6, 3, 2, 250, 244, 235, 226,
-			232, 234, 234, 240, 239, 232, 227, 232, 240, 244, 246, 243, 241, 243, 244, 10, 24, 26, 29, 26, 20, 18, 21, 19, 14, 1, 3, 20, 16, 16,
-			23, 14, 6, 5, 5, 0, 253, 252, 253, 251, 253, 11, 22, 15, 17, 24, 29, 36, 40, 30, 17, 12, 255, 250, 242, 231, 234, 239, 229, 243,
-			253, 245, 253, 251, 248, 246, 230, 229, 242, 250, 6, 15, 21, 30, 23, 21, 17, 254, 254, 0, 255, 3, 255, 247, 248, 244, 254, 3, 251, 243,
-			231, 210, 215, 227, 230, 239, 250, 252, 0, 3, 10, 25, 36, 12, 253, 2, 241, 250, 3, 239, 242, 249, 3, 30, 40, 29, 15, 248, 229, 229,
-			243, 0, 4, 246, 243, 254, 11, 29, 34, 23, 20, 30, 33, 21, 8, 243, 233, 250, 15, 39, 52, 31, 18, 4, 236, 239, 236, 237, 244, 228,
-			228, 240, 255, 12, 20, 14, 255, 0, 13, 6, 17, 11, 229, 224, 237, 247, 14, 16, 10, 12, 254, 245, 236, 226, 220, 210, 216, 231, 233, 245,
-			247, 236, 246, 241, 247, 11, 15, 7, 255, 2, 0, 253, 12, 21, 29, 34, 17, 18, 25, 20, 23, 19, 24, 29, 32, 37, 33, 18, 10, 5,
-			0, 13, 10, 0, 251, 248, 246, 240, 243, 5, 25, 22, 23, 23, 20, 16, 252, 243, 245, 239, 248, 253, 248, 251, 245, 245, 253, 243, 235, 242,
-			235, 223, 216, 204, 190, 193, 205, 225, 249, 10, 8, 8, 250, 249, 4, 7, 13, 10, 2, 0, 252, 253, 245, 242, 246, 237, 243, 248, 237, 243,
-			237, 228, 251, 2, 19, 39, 22, 25, 24, 34, 51, 44, 41, 49, 48, 62, 56, 45, 38, 21, 23, 18, 254, 253, 230, 226, 241, 238, 255, 0,
-			252, 3, 243, 225, 241, 230, 244, 8, 254, 10, 9, 4, 21, 5, 10, 20, 255, 1, 242, 216, 229, 223, 209, 224, 217, 204, 226, 230, 223, 239,
-			246, 251, 18, 31, 39, 55, 52, 33, 16, 247, 243, 7, 4, 1, 1, 2, 12, 13, 255, 239, 216, 204, 212, 236, 246, 1, 8, 0, 255, 0,
-			8, 22, 18, 30, 42, 28, 21, 18, 6, 249, 230, 226, 239, 242, 241, 255, 1, 7, 23, 26, 31, 28, 23, 30, 31, 28, 24, 45, 57, 68,
-			70, 43, 30, 33, 39, 27, 5, 254, 232, 213, 207, 186, 189, 190, 183, 195, 213, 218, 224, 233, 219, 220, 224, 236, 243, 228, 235, 0, 5, 3,
-			14, 14, 249, 254, 1, 245, 241, 246, 253, 2, 3, 5, 8, 6, 251, 1, 1, 242, 245, 238, 236, 250, 3, 29, 48, 45, 43, 38, 23, 33,
-			29, 22, 19, 6, 1, 9, 6, 13, 18, 4, 4, 253, 2, 26, 29, 31, 19, 9, 8, 11, 18, 19, 26, 13, 9, 25, 12, 12, 2, 225,
-			227, 226, 214, 228, 229, 225, 239, 220, 191, 204, 208, 218, 237, 235, 244, 9, 22, 9, 235, 223, 226, 228, 253, 14, 4, 15, 13, 242, 246, 240,
-			245, 4, 0, 1, 10, 18, 17, 13, 25, 17, 9, 18, 26, 27, 28, 23, 23, 38, 43, 30, 35, 46, 24, 21, 15, 248, 253, 246, 216, 215,
-			214, 229, 0, 5, 9, 255, 236, 243, 234, 235, 231, 211, 224, 246, 240, 8, 10, 12, 30, 9, 255, 254, 0, 9, 6, 8, 2, 4, 19, 5,
-			14, 27, 17, 38, 44, 24, 19, 19, 4, 246, 238, 250, 2, 19, 24, 1, 1, 253, 246, 249, 239, 224, 219, 213, 213, 228, 252, 0, 252, 240,
-			242, 246, 255, 18, 29, 19, 17, 25, 22, 18, 18, 9, 12, 32, 26, 12, 9, 238, 227, 244, 229, 225, 3, 15, 21, 31, 29, 10, 10, 13,
-			249, 243, 236, 214, 211, 212, 209, 232, 251, 242, 231, 232, 225, 220, 227, 222, 214, 216, 231, 242, 249, 247, 254, 7, 14, 30, 41, 44, 34, 7,
-			1, 253, 244, 0, 0, 244, 5, 23, 30, 40, 14, 247, 249, 252, 255, 11, 24, 12, 0, 2, 2, 7, 27, 24, 14, 254, 245, 0, 241, 238,
-			244, 221, 234, 252, 250, 26, 36, 8, 15, 7, 249, 29, 48, 51, 73, 77, 79, 90, 81, 59, 47, 34, 28, 41, 36, 24, 30, 19, 6, 20,
-			18, 20, 34, 22, 4, 245, 229, 232, 222, 207, 212, 214, 237, 1, 255, 8, 0, 242, 240, 226, 217, 220, 215, 199, 193, 199, 222, 228, 245, 242,
-			211, 210, 207, 192, 197, 195, 183, 201, 215, 216, 231, 238, 221, 225, 242, 236, 240, 238, 215, 213, 221, 205, 212, 228, 220, 232, 254, 254, 8, 7,
-			251, 238, 234, 237, 242, 250, 0, 0, 5, 21, 39, 49, 77, 77, 62, 73, 65, 40, 26, 3, 3, 8, 21, 34, 43, 54, 40, 40, 36, 35,
-			43, 31, 36, 34, 26, 50, 53, 39, 47, 45, 45, 31, 34, 16, 243, 249, 227, 200, 220, 230, 232, 13, 15, 5, 31, 29, 33, 24, 7, 10,
-			11, 28, 30, 10, 36, 32, 39, 47, 22, 26, 32, 28, 19, 7, 4, 0, 9, 13, 4, 32, 52, 44, 54, 43, 7, 255, 235, 213, 210, 198,
-			192, 199, 191, 184, 171, 189, 198, 179, 186, 173, 157, 145, 133, 140, 143, 166, 200, 216, 227, 251, 233, 224, 219, 193, 197, 220, 224, 235, 255, 251,
-			251, 18, 30, 24, 36, 49, 50, 59, 50, 34, 31, 21, 15, 25, 39, 71, 65, 61, 53, 36, 32, 33, 20, 9, 5, 8, 21, 30, 22, 4,
-			13, 21, 23, 28, 24, 18, 14, 5, 253, 253, 254, 0, 3, 3, 4, 6, 7, 9, 6, 4, 3, 1, 0, 0, 168, 6, 10, 0, 0, 255,
-			0, 1, 254, 252, 1, 6, 8, 8, 10, 10, 9, 11, 11, 3, 250, 250, 253, 249, 246, 247, 248, 253, 0, 0, 4, 5, 253, 247, 245, 245,
-			242, 239, 244, 253, 3, 2, 3, 8, 5, 1, 0, 255, 3, 3, 0, 3, 7, 12, 13, 22, 27, 19, 10, 5, 9, 10, 7, 9, 9, 255,
-			247, 2, 9, 249, 237, 243, 250, 247, 244, 247, 239, 223, 235, 249, 251, 248, 239, 0, 14, 4, 253, 5, 9, 0, 1, 3, 6, 0, 254, 19,
-			17, 10, 17, 29, 31, 18, 13, 17, 21, 252, 238, 227, 204, 214, 246, 2, 4, 10, 21, 38, 37, 8, 227, 217, 225, 212, 196, 201, 217, 235,
-			19, 58, 48, 25, 30, 24, 253, 234, 231, 217, 226, 2, 0, 11, 38, 47, 61, 68, 48, 253, 233, 250, 242, 6, 14, 244, 249, 29, 69, 64,
-			50, 22, 0, 246, 232, 222, 185, 188, 230, 235, 242, 4, 6, 4, 14, 11, 217, 194, 213, 218, 218, 219, 235, 253, 17, 20, 0, 252, 6, 15,
-			23, 15, 251, 246, 0, 6, 249, 243, 24, 54, 49, 41, 44, 38, 6, 14, 26, 241, 191, 239, 38, 35, 28, 8, 17, 0, 234, 225, 220, 221,
-			199, 209, 241, 249, 0, 23, 13, 241, 236, 244, 6, 14, 12, 252, 236, 246, 250, 10, 31, 33, 29, 34, 76, 66, 3, 249, 13, 16, 5, 255,
-			216, 240, 43, 50, 38, 9, 2, 3, 238, 239, 233, 207, 236, 231, 216, 247, 225, 194, 217, 230, 196, 183, 227, 255, 244, 251, 31, 22, 3, 43,
-			44, 16, 9, 30, 28, 229, 231, 228, 230, 24, 55, 55, 51, 53, 35, 13, 240, 250, 254, 224, 237, 255, 243, 236, 250, 15, 37, 13, 229, 212,
-			214, 215, 212, 233, 248, 9, 16, 5, 30, 39, 38, 20, 238, 238, 237, 240, 244, 243, 13, 48, 79, 92, 62, 19, 2, 8, 252, 227, 232, 217,
-			231, 25, 46, 53, 35, 4, 1, 19, 253, 223, 215, 223, 244, 249, 5, 254, 7, 10, 5, 22, 248, 238, 226, 227, 239, 221, 220, 222, 0, 15,
-			30, 44, 20, 246, 201, 201, 241, 243, 251, 8, 14, 34, 35, 41, 31, 234, 168, 156, 183, 207, 245, 244, 242, 253, 255, 38, 78, 68, 28, 4,
-			232, 189, 169, 177, 207, 230, 9, 26, 23, 41, 79, 66, 52, 49, 234, 191, 225, 15, 42, 60, 52, 74, 101, 83, 92, 69, 32, 8, 235, 254,
-			253, 13, 36, 26, 34, 36, 12, 3, 11, 3, 226, 201, 188, 156, 171, 204, 222, 224, 2, 40, 21, 17, 10, 230, 199, 163, 143, 185, 247, 233,
-			219, 21, 38, 39, 39, 14, 250, 230, 203, 199, 230, 248, 241, 23, 88, 78, 61, 44, 252, 204, 199, 211, 190, 184, 210, 2, 23, 17, 46, 82,
-			112, 106, 46, 15, 235, 173, 150, 184, 239, 4, 43, 83, 99, 99, 52, 25, 35, 4, 237, 211, 198, 237, 237, 3, 40, 46, 43, 34, 36, 3,
-			224, 206, 203, 217, 234, 255, 244, 247, 21, 43, 36, 9, 242, 218, 215, 200, 218, 4, 250, 244, 32, 41, 21, 24, 14, 0, 228, 213, 227, 213,
-			219, 230, 203, 235, 37, 38, 50, 84, 63, 255, 215, 217, 202, 193, 218, 233, 243, 40, 86, 75, 68, 46, 2, 255, 14, 250, 197, 181, 222, 225,
-			0, 37, 12, 42, 69, 60, 32, 240, 226, 223, 217, 214, 222, 252, 13, 52, 79, 44, 46, 51, 24, 230, 220, 247, 230, 219, 207, 224, 1, 245,
-			228, 252, 40, 19, 220, 220, 214, 176, 188, 213, 229, 252, 255, 249, 249, 33, 25, 3, 26, 13, 250, 241, 38, 76, 61, 73, 62, 35, 31, 43,
-			46, 14, 235, 242, 35, 73, 59, 2, 228, 252, 247, 246, 14, 5, 224, 185, 208, 220, 187, 196, 206, 228, 249, 247, 11, 13, 236, 204, 218, 235,
-			235, 246, 253, 25, 39, 5, 251, 5, 27, 17, 0, 6, 14, 29, 37, 39, 30, 3, 242, 251, 250, 1, 12, 15, 0, 240, 29, 28, 8, 25,
-			4, 2, 247, 223, 239, 241, 251, 254, 229, 229, 0, 14, 12, 23, 13, 235, 241, 15, 243, 181, 225, 30, 31, 30, 245, 242, 0, 12, 27, 248,
-			236, 233, 253, 31, 40, 24, 250, 248, 16, 4, 227, 227, 231, 227, 249, 27, 48, 47, 41, 35, 29, 1, 229, 226, 225, 229, 225, 237, 17, 23,
-			249, 11, 44, 34, 19, 32, 23, 231, 222, 242, 244, 249, 12, 253, 249, 9, 22, 32, 27, 15, 242, 247, 14, 242, 195, 192, 212, 233, 243, 245,
-			245, 253, 20, 27, 12, 247, 255, 3, 228, 220, 215, 246, 16, 21, 49, 30, 20, 10, 245, 222, 216, 239, 242, 255, 0, 5, 37, 44, 34, 24,
-			23, 15, 241, 229, 246, 245, 229, 240, 0, 14, 35, 42, 39, 37, 29, 14, 241, 206, 204, 227, 216, 235, 7, 11, 45, 80, 83, 43, 21, 0,
-			226, 224, 206, 190, 202, 244, 40, 69, 69, 35, 15, 17, 234, 219, 217, 202, 221, 223, 228, 254, 17, 37, 61, 51, 27, 3, 196, 191, 232, 212,
-			190, 223, 12, 32, 26, 22, 12, 254, 230, 234, 232, 195, 198, 243, 12, 244, 252, 33, 73, 77, 43, 26, 8, 243, 221, 247, 18, 14, 14, 35,
-			93, 69, 23, 42, 39, 0, 236, 246, 252, 245, 245, 248, 245, 3, 16, 23, 33, 16, 230, 209, 198, 194, 194, 176, 185, 211, 199, 206, 228, 0,
-			2, 252, 43, 46, 4, 5, 10, 0, 246, 247, 26, 36, 30, 46, 58, 63, 93, 90, 54, 27, 13, 252, 234, 255, 2, 5, 0, 38, 43, 6,
-			17, 255, 217, 174, 149, 151, 159, 163, 175, 222, 15, 36, 12, 242, 0, 3, 225, 197, 205, 237, 237, 234, 24, 42, 46, 72, 57, 58, 47, 249,
-			0, 17, 16, 24, 27, 35, 24, 5, 24, 62, 50, 28, 22, 27, 21, 249, 221, 198, 211, 227, 249, 3, 11, 5, 232, 215, 212, 208, 186, 223,
-			7, 0, 239, 231, 255, 19, 38, 48, 58, 48, 32, 10, 231, 247, 242, 240, 12, 22, 18, 18, 65, 75, 45, 34, 16, 239, 207, 205, 201, 215,
-			224, 209, 234, 0, 245, 253, 16, 10, 248, 211, 208, 221, 217, 216, 219, 4, 44, 53, 38, 41, 28, 0, 1, 25, 26, 253, 253, 9, 31, 13,
-			251, 8, 23, 20, 0, 1, 248, 244, 241, 247, 9, 242, 225, 219, 233, 255, 233, 237, 239, 222, 205, 222, 235, 228, 5, 24, 31, 39, 39, 37,
-			43, 27, 236, 228, 5, 3, 240, 0, 35, 43, 32, 38, 26, 12, 20, 33, 46, 28, 249, 255, 39, 38, 12, 249, 254, 18, 8, 240, 205, 194,
-			219, 238, 244, 234, 234, 7, 20, 3, 234, 209, 194, 209, 238, 209, 209, 246, 0, 24, 24, 21, 19, 21, 18, 12, 12, 0, 247, 233, 7, 40,
-			17, 253, 254, 4, 26, 41, 19, 9, 37, 35, 23, 24, 16, 8, 243, 249, 243, 203, 207, 210, 201, 203, 230, 19, 29, 23, 9, 5, 5, 3,
-			253, 233, 231, 239, 254, 255, 250, 1, 12, 49, 73, 46, 16, 250, 251, 252, 245, 235, 208, 234, 9, 45, 82, 68, 49, 35, 33, 13, 236, 231,
-			217, 194, 201, 226, 243, 236, 236, 12, 25, 17, 10, 0, 12, 254, 220, 198, 187, 200, 223, 244, 250, 10, 10, 244, 8, 25, 15, 245, 225, 226,
-			233, 251, 4, 22, 27, 38, 66, 39, 29, 19, 6, 0, 241, 248, 249, 22, 33, 26, 31, 37, 45, 32, 11, 6, 253, 232, 236, 235, 232, 238,
-			242, 5, 23, 19, 2, 5, 253, 251, 231, 219, 238, 231, 234, 6, 19, 16, 23, 5, 4, 11, 5, 246, 241, 254, 237, 237, 251, 23, 43, 36,
-			30, 7, 246, 239, 239, 233, 227, 233, 245, 12, 14, 27, 39, 27, 33, 29, 248, 207, 200, 191, 176, 202, 232, 236, 246, 15, 23, 24, 3, 231,
-			238, 243, 238, 209, 225, 246, 243, 15, 36, 63, 72, 58, 35, 17, 4, 230, 218, 226, 249, 19, 31, 60, 65, 48, 64, 67, 35, 17, 239, 218,
-			218, 185, 177, 238, 50, 36, 30, 27, 9, 9, 10, 2, 219, 195, 192, 203, 222, 228, 252, 14, 34, 43, 33, 35, 21, 243, 209, 213, 235, 225,
-			227, 25, 63, 67, 68, 35, 239, 250, 233, 213, 248, 229, 210, 249, 21, 17, 24, 24, 26, 13, 227, 218, 215, 179, 156, 186, 241, 8, 255, 22,
-			65, 67, 48, 13, 247, 0, 233, 216, 238, 242, 244, 22, 77, 101, 71, 32, 22, 19, 254, 248, 0, 249, 232, 4, 46, 46, 37, 18, 246, 249,
-			252, 216, 181, 160, 160, 203, 11, 41, 25, 33, 58, 47, 20, 245, 200, 179, 205, 228, 233, 254, 21, 30, 37, 70, 67, 11, 7, 250, 207, 195,
-			213, 223, 235, 8, 18, 45, 66, 47, 19, 8, 4, 218, 200, 235, 2, 249, 242, 21, 36, 45, 29, 251, 234, 225, 207, 206, 252, 24, 26, 0,
-			19, 42, 16, 3, 0, 238, 206, 185, 202, 236, 0, 251, 31, 67, 40, 36, 44, 63, 25, 221, 218, 234, 249, 252, 3, 33, 52, 34, 31, 34,
-			9, 231, 195, 204, 230, 217, 221, 18, 43, 19, 17, 41, 17, 247, 240, 228, 235, 201, 175, 200, 247, 4, 248, 4, 15, 27, 24, 24, 25, 254,
-			236, 254, 33, 34, 10, 20, 43, 27, 4, 255, 16, 252, 235, 248, 250, 18, 15, 10, 8, 16, 6, 239, 247, 251, 243, 212, 204, 216, 231, 0,
-			254, 246, 252, 0, 1, 0, 245, 231, 229, 228, 252, 254, 2, 56, 54, 42, 35, 21, 21, 5, 254, 242, 253, 0, 243, 237, 248, 10, 13, 9,
-			10, 12, 15, 26, 12, 251, 240, 239, 251, 8, 16, 9, 0, 244, 249, 0, 4, 15, 5, 10, 12, 249, 236, 229, 0, 19, 20, 9, 2, 255,
-			244, 241, 252, 10, 255, 235, 241, 249, 234, 220, 226, 247, 6, 15, 12, 5, 13, 11, 1, 1, 0, 1, 89, 9, 40, 0, 2, 0, 0, 4,
-			1, 0, 2, 255, 254, 255, 250, 2, 254, 246, 254, 2, 255, 251, 251, 0, 253, 252, 253, 1, 0, 0, 2, 2, 1, 3, 4, 6, 2, 6,
-			7, 6, 4, 4, 6, 3, 3, 5, 5, 3, 255, 3, 1, 253, 2, 0, 252, 251, 255, 253, 250, 253, 0, 255, 251, 251, 253, 253, 0, 255,
-			250, 252, 1, 2, 255, 1, 0, 1, 2, 1, 1, 3, 2, 1, 1, 3, 8, 3, 3, 2, 6, 7, 6, 10, 254, 1, 11, 254, 255, 6,
-			0, 0, 0, 0, 6, 0, 251, 4, 0, 0, 2, 255, 0, 255, 1, 3, 248, 1, 3, 255, 3, 0, 2, 253, 251, 5, 0, 252, 255, 2,
-			1, 252, 249, 255, 240, 208, 216, 240, 247, 241, 244, 0, 255, 254, 254, 255, 15, 14, 5, 4, 7, 9, 14, 9, 14, 15, 10, 11, 1, 8,
-			19, 10, 11, 13, 9, 13, 8, 13, 5, 254, 253, 253, 0, 0, 247, 255, 251, 248, 0, 6, 247, 248, 5, 252, 250, 5, 4, 246, 4, 8,
-			3, 253, 5, 0, 8, 9, 254, 1, 2, 6, 5, 1, 2, 9, 4, 252, 227, 226, 225, 239, 242, 237, 246, 248, 249, 243, 246, 250, 0, 9,
-			5, 5, 5, 12, 22, 27, 24, 240, 8, 30, 235, 253, 23, 253, 246, 1, 15, 2, 251, 9, 6, 0, 6, 10, 6, 5, 21, 0, 243, 9,
-			15, 0, 234, 252, 3, 240, 235, 0, 254, 234, 244, 2, 2, 14, 15, 16, 2, 8, 11, 239, 3, 249, 247, 249, 1, 3, 240, 235, 2, 10,
-			240, 239, 251, 254, 249, 252, 12, 23, 6, 13, 12, 7, 10, 0, 0, 250, 4, 11, 0, 15, 5, 0, 31, 34, 0, 0, 11, 8, 8, 252,
-			8, 18, 252, 248, 241, 241, 249, 237, 239, 243, 241, 245, 2, 255, 252, 255, 0, 8, 13, 244, 206, 218, 240, 254, 0, 15, 252, 247, 10, 13,
-			1, 253, 10, 252, 11, 31, 4, 245, 14, 29, 10, 0, 9, 0, 4, 5, 254, 252, 255, 15, 5, 229, 16, 23, 230, 252, 19, 245, 243, 5,
-			251, 232, 10, 6, 241, 13, 10, 245, 240, 2, 21, 240, 230, 21, 13, 248, 242, 247, 25, 3, 252, 5, 239, 9, 25, 244, 246, 252, 16, 27,
-			245, 252, 21, 5, 251, 8, 12, 4, 250, 9, 19, 6, 237, 246, 26, 31, 225, 232, 40, 248, 250, 246, 239, 14, 1, 248, 4, 227, 9, 13,
-			211, 11, 27, 243, 230, 0, 9, 250, 249, 12, 13, 234, 235, 22, 11, 246, 245, 0, 1, 3, 11, 0, 2, 10, 254, 254, 0, 7, 5, 248,
-			254, 12, 13, 252, 237, 253, 13, 16, 250, 246, 28, 244, 224, 21, 32, 7, 197, 242, 62, 5, 227, 251, 17, 7, 238, 244, 19, 12, 241, 249,
-			0, 17, 18, 237, 7, 6, 250, 18, 246, 232, 17, 17, 238, 244, 247, 24, 7, 227, 0, 0, 9, 255, 242, 15, 1, 7, 253, 249, 16, 10,
-			6, 223, 16, 42, 241, 209, 17, 64, 237, 208, 4, 32, 15, 218, 249, 20, 253, 11, 245, 239, 27, 24, 222, 232, 30, 20, 239, 236, 17, 6,
-			231, 244, 17, 30, 222, 233, 20, 30, 249, 239, 246, 4, 28, 228, 228, 39, 7, 234, 5, 16, 17, 253, 216, 10, 23, 5, 239, 246, 46, 0,
-			232, 0, 251, 12, 8, 248, 238, 13, 20, 243, 238, 23, 2, 227, 12, 21, 244, 242, 22, 13, 249, 242, 254, 18, 9, 226, 248, 18, 27, 252,
-			198, 250, 57, 253, 215, 254, 40, 18, 203, 4, 46, 2, 1, 5, 240, 246, 58, 14, 208, 218, 42, 48, 208, 210, 49, 38, 214, 228, 0, 17,
-			15, 246, 234, 233, 43, 10, 196, 8, 34, 212, 0, 50, 235, 229, 12, 24, 6, 220, 240, 36, 20, 237, 233, 3, 56, 23, 199, 238, 53, 25,
-			214, 225, 42, 25, 228, 240, 24, 10, 18, 241, 206, 12, 52, 253, 193, 232, 55, 56, 223, 192, 23, 84, 215, 217, 48, 250, 234, 5, 49, 246,
-			204, 34, 42, 241, 217, 243, 57, 0, 210, 6, 243, 2, 12, 244, 7, 9, 2, 12, 249, 242, 240, 22, 35, 202, 0, 38, 248, 2, 244, 20,
-			3, 231, 10, 16, 4, 224, 1, 43, 235, 238, 44, 248, 241, 251, 254, 19, 248, 198, 40, 62, 196, 224, 62, 242, 232, 8, 4, 3, 246, 0,
-			27, 248, 204, 9, 51, 246, 234, 245, 15, 30, 220, 237, 26, 18, 253, 231, 15, 18, 0, 9, 245, 241, 30, 12, 19, 217, 236, 29, 20, 244,
-			249, 6, 241, 2, 10, 0, 237, 7, 249, 247, 18, 8, 243, 3, 21, 206, 5, 25, 13, 225, 219, 50, 247, 229, 4, 247, 7, 29, 241, 221,
-			47, 36, 211, 241, 34, 22, 240, 253, 21, 253, 0, 18, 245, 9, 8, 227, 23, 12, 229, 244, 11, 36, 236, 211, 30, 44, 252, 227, 250, 7,
-			249, 245, 21, 0, 235, 39, 221, 227, 55, 8, 254, 252, 218, 252, 39, 242, 217, 25, 29, 5, 202, 29, 73, 213, 197, 29, 30, 225, 12, 7,
-			253, 6, 220, 16, 21, 234, 248, 247, 17, 27, 249, 229, 255, 19, 37, 235, 236, 38, 231, 37, 247, 218, 52, 17, 217, 238, 251, 73, 13, 145,
-			31, 56, 223, 237, 0, 26, 0, 243, 1, 248, 3, 12, 252, 238, 12, 24, 238, 235, 22, 6, 220, 12, 16, 248, 3, 251, 2, 2, 24, 222,
-			247, 56, 238, 218, 13, 9, 252, 237, 255, 39, 236, 251, 26, 245, 246, 245, 2, 9, 8, 19, 208, 7, 74, 178, 238, 54, 243, 11, 230, 248,
-			27, 249, 12, 0, 235, 28, 56, 245, 191, 247, 104, 252, 180, 13, 36, 9, 232, 181, 56, 61, 207, 202, 252, 51, 17, 205, 237, 60, 225, 230,
-			64, 247, 249, 245, 222, 20, 55, 235, 233, 14, 1, 24, 249, 1, 27, 228, 251, 32, 213, 4, 98, 183, 173, 62, 61, 250, 178, 250, 68, 8,
-			209, 237, 24, 253, 249, 33, 206, 8, 30, 0, 235, 232, 64, 7, 215, 247, 15, 10, 254, 1, 0, 246, 226, 45, 30, 222, 230, 247, 17, 54,
-			14, 195, 20, 247, 19, 27, 215, 231, 48, 28, 199, 231, 43, 9, 236, 245, 225, 25, 74, 223, 187, 27, 34, 254, 248, 3, 248, 238, 57, 28,
-			161, 6, 101, 219, 245, 226, 23, 77, 166, 5, 16, 238, 37, 230, 222, 14, 4, 47, 220, 198, 57, 5, 214, 28, 228, 254, 55, 234, 227, 25,
-			252, 14, 250, 244, 47, 244, 0, 2, 225, 19, 25, 14, 194, 3, 53, 227, 247, 36, 241, 209, 17, 77, 224, 210, 51, 251, 0, 32, 12, 209,
-			237, 33, 8, 247, 251, 240, 28, 2, 229, 247, 34, 16, 240, 196, 16, 67, 235, 199, 255, 39, 6, 38, 199, 223, 126, 232, 183, 41, 246, 23,
-			210, 216, 79, 2, 182, 34, 60, 200, 228, 66, 251, 213, 18, 248, 9, 34, 228, 221, 255, 58, 47, 164, 244, 46, 237, 26, 244, 255, 20, 238,
-			219, 38, 34, 208, 9, 6, 6, 18, 202, 45, 18, 204, 13, 39, 243, 224, 32, 235, 226, 28, 44, 243, 200, 37, 33, 217, 244, 35, 249, 206,
-			7, 56, 26, 202, 228, 36, 1, 6, 221, 239, 64, 253, 200, 27, 58, 240, 221, 2, 14, 10, 254, 237, 244, 31, 21, 248, 249, 249, 22, 0,
-			224, 2, 36, 249, 206, 28, 18, 232, 241, 4, 32, 32, 209, 237, 47, 20, 240, 235, 7, 34, 249, 239, 235, 19, 24, 246, 187, 30, 62, 208,
-			16, 254, 236, 18, 212, 23, 66, 198, 231, 24, 253, 249, 18, 236, 0, 48, 220, 237, 27, 2, 20, 232, 240, 50, 18, 234, 235, 246, 66, 12,
-			159, 2, 68, 250, 220, 19, 249, 233, 40, 26, 184, 44, 26, 194, 255, 29, 252, 16, 255, 213, 31, 252, 245, 16, 1, 246, 13, 5, 233, 48,
-			220, 245, 34, 228, 52, 254, 203, 33, 16, 220, 253, 15, 249, 15, 231, 255, 51, 231, 250, 15, 250, 254, 30, 33, 205, 227, 39, 18, 255, 224,
-			247, 250, 233, 43, 255, 205, 248, 15, 18, 252, 214, 2, 64, 245, 191, 58, 52, 204, 22, 253, 240, 46, 254, 186, 39, 37, 236, 200, 17, 80,
-			232, 212, 250, 56, 3, 231, 243, 0, 44, 239, 210, 18, 30, 255, 230, 237, 5, 44, 233, 227, 31, 30, 254, 200, 12, 75, 233, 199, 3, 31,
-			22, 242, 0, 238, 7, 42, 224, 179, 86, 60, 174, 200, 64, 63, 206, 212, 30, 41, 13, 216, 243, 13, 12, 246, 14, 251, 208, 22, 29, 245,
-			244, 6, 10, 229, 254, 38, 204, 252, 58, 244, 193, 15, 61, 20, 207, 241, 29, 7, 1, 249, 8, 10, 253, 10, 247, 247, 21, 12, 216, 8,
-			11, 8, 6, 185, 1, 106, 207, 177, 42, 46, 11, 199, 208, 71, 11, 212, 229, 10, 26, 250, 234, 235, 37, 54, 249, 228, 0, 21, 40, 223,
-			205, 61, 47, 212, 220, 70, 46, 187, 225, 38, 51, 213, 222, 0, 22, 30, 218, 254, 17, 4, 251, 247, 253, 233, 248, 14, 4, 230, 234, 70,
-			18, 189, 16, 21, 5, 5, 242, 3, 3, 251, 18, 7, 237, 211, 64, 58, 166, 214, 65, 51, 194, 210, 56, 47, 231, 203, 232, 92, 55, 142,
-			230, 75, 34, 210, 200, 39, 255, 29, 19, 203, 252, 50, 253, 237, 5, 246, 37, 5, 215, 10, 1, 34, 251, 211, 34, 11, 218, 18, 24, 212,
-			25, 6, 210, 14, 23, 216, 243, 34, 27, 242, 214, 11, 23, 15, 244, 209, 255, 67, 243, 215, 12, 22, 36, 190, 250, 76, 244, 209, 5, 14,
-			39, 247, 211, 7, 30, 17, 252, 222, 0, 66, 240, 221, 254, 30, 17, 236, 226, 11, 22, 15, 241, 214, 10, 43, 246, 226, 247, 37, 20, 208,
-			248, 60, 242, 213, 3, 28, 22, 230, 254, 13, 250, 14, 32, 18, 200, 229, 61, 240, 249, 6, 222, 20, 21, 236, 240, 242, 24, 8, 235, 236,
-			13, 38, 234, 212, 4, 32, 35, 226, 228, 32, 253, 237, 252, 32, 243, 246, 24, 2, 246, 248, 254, 7, 16, 233, 254, 6, 253, 8, 244, 248,
-			18, 18, 0, 254, 243, 254, 3, 249, 4, 239, 18, 28, 219, 239, 28, 255, 250, 16, 249, 12, 6, 244, 17, 212, 30, 62, 193, 225, 73, 27,
-			188, 236, 67, 21, 214, 218, 34, 25, 242, 247, 240, 255, 38, 16, 227, 232, 252, 32, 34, 222, 233, 26, 31, 230, 227, 53, 27, 219, 218, 254,
-			18, 7, 8, 6, 6, 228, 4, 34, 223, 5, 29, 253, 241, 242, 9, 6, 252, 231, 8, 17, 0, 3, 214, 251, 31, 254, 10, 248, 253, 18,
-			245, 248, 249, 32, 39, 224, 244, 9, 4, 3, 249, 254, 8, 24, 220, 6, 26, 250, 228, 245, 35, 12, 252, 225, 0, 19, 13, 251, 230, 41,
-			240, 228, 23, 255, 241, 247, 5, 247, 235, 30, 15, 191, 17, 61, 228, 216, 28, 51, 226, 238, 27, 255, 21, 11, 220, 3, 45, 249, 242, 241,
-			231, 52, 250, 237, 8, 214, 37, 61, 192, 220, 38, 35, 23, 191, 240, 57, 245, 249, 3, 229, 17, 37, 227, 237, 12, 238, 12, 239, 231, 31,
-			21, 238, 239, 5, 36, 239, 217, 59, 17, 226, 254, 228, 16, 39, 1, 237, 253, 30, 7, 215, 239, 39, 14, 231, 236, 47, 236, 210, 56, 249,
-			235, 13, 0, 19, 255, 210, 30, 33, 202, 246, 41, 14, 240, 245, 0, 249, 248, 10, 15, 12, 227, 236, 23, 33, 251, 246, 14, 248, 9, 18,
-			249, 240, 228, 14, 51, 4, 195, 251, 70, 227, 242, 15, 2, 2, 232, 33, 8, 212, 26, 13, 217, 30, 10, 252, 13, 255, 249, 215, 35, 54,
-			212, 216, 19, 22, 248, 250, 214, 0, 77, 244, 191, 235, 77, 2, 202, 240, 37, 63, 221, 200, 14, 58, 13, 217, 249, 17, 9, 0, 244, 242,
-			11, 24, 240, 217, 41, 24, 197, 250, 18, 8, 243, 237, 23, 249, 10, 18, 232, 231, 45, 16, 216, 246, 6, 50, 218, 203, 56, 47, 226, 228,
-			6, 31, 15, 210, 248, 49, 17, 226, 223, 20, 55, 243, 214, 12, 36, 14, 240, 238, 19, 235, 255, 43, 247, 213, 5, 40, 250, 204, 0, 38,
-			4, 241, 250, 227, 26, 16, 232, 2, 0, 33, 231, 229, 34, 255, 244, 8, 255, 254, 15, 13, 231, 17, 23, 231, 5, 30, 246, 240, 251, 10,
-			37, 206, 230, 79, 232, 210, 17, 0, 12, 248, 242, 17, 226, 33, 28, 212, 252, 14, 3, 247, 9, 2, 228, 9, 9, 15, 251, 244, 12, 17,
-			0, 228, 4, 24, 251, 15, 17, 230, 247, 8, 34, 9, 215, 18, 25, 223, 14, 13, 234, 17, 3, 215, 15, 27, 217, 234, 16, 42, 215, 227,
-			34, 8, 3, 252, 225, 253, 49, 16, 233, 245, 23, 12, 235, 7, 8, 236, 35, 8, 204, 7, 44, 9, 218, 245, 50, 247, 195, 28, 35, 211,
-			0, 1, 17, 1, 248, 13, 235, 243, 7, 20, 252, 232, 0, 3, 255, 9, 241, 0, 7, 250, 6, 8, 241, 6, 5, 228, 31, 20, 247, 240,
-			252, 10, 253, 11, 16, 0, 2, 13, 252, 229, 21, 18, 253, 249, 209, 52, 55, 194, 224, 25, 26, 12, 216, 243, 35, 6, 221, 235, 33, 11,
-			243, 237, 245, 42, 8, 225, 255, 250, 1, 42, 250, 193, 24, 50, 240, 244, 242, 36, 34, 203, 239, 48, 6, 224, 251, 8, 251, 19, 7, 221,
-			247, 47, 6, 228, 242, 26, 0, 242, 38, 215, 239, 47, 12, 237, 235, 15, 16, 249, 225, 13, 18, 242, 253, 235, 9, 48, 224, 213, 34, 18,
-			234, 248, 18, 254, 231, 4, 36, 0, 237, 4, 10, 17, 3, 238, 13, 8, 253, 16, 242, 249, 33, 0, 228, 248, 41, 9, 216, 249, 18, 8,
-			247, 2, 17, 238, 237, 29, 19, 226, 244, 252, 19, 4, 252, 250, 5, 19, 244, 245, 1, 0, 0, 0, 86, 10, 51, 0, 1, 2, 2, 1,
-			1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 251,
-			236, 235, 251, 4, 3, 254, 252, 2, 6, 3, 254, 253, 255, 4, 3, 1, 1, 1, 5, 249, 231, 249, 9, 11, 6, 0, 4, 11, 15, 1,
-			254, 255, 2, 7, 3, 2, 0, 5, 4, 2, 1, 2, 4, 1, 1, 0, 0, 1, 0, 254, 0, 0, 0, 0, 255, 0, 0, 254, 255, 253,
-			0, 255, 253, 0, 254, 0, 255, 0, 0, 0, 0, 0, 2, 0, 1, 0, 250, 245, 244, 249, 248, 251, 249, 249, 1, 0, 3, 4, 2, 6,
-			1, 3, 3, 0, 3, 6, 5, 5, 7, 8, 9, 8, 6, 3, 6, 9, 255, 6, 1, 3, 0, 5, 0, 255, 255, 0, 2, 248, 0, 252,
-			255, 0, 249, 253, 254, 255, 255, 254, 250, 254, 2, 1, 250, 253, 255, 255, 5, 252, 253, 3, 249, 1, 9, 252, 253, 6, 255, 4, 3, 253,
-			7, 251, 3, 8, 251, 1, 255, 7, 251, 250, 10, 252, 255, 3, 0, 2, 1, 2, 0, 0, 3, 254, 1, 3, 248, 7, 3, 5, 9, 8,
-			9, 1, 255, 252, 254, 0, 5, 253, 252, 254, 254, 1, 254, 249, 253, 254, 252, 253, 249, 253, 253, 255, 3, 251, 5, 8, 4, 5, 0, 249,
-			0, 0, 0, 3, 7, 18, 16, 11, 13, 10, 252, 1, 255, 249, 2, 247, 0, 0, 250, 2, 244, 253, 250, 242, 254, 249, 244, 252, 249, 251,
-			4, 8, 15, 3, 255, 245, 242, 5, 5, 0, 255, 6, 16, 23, 25, 21, 13, 11, 246, 225, 232, 0, 4, 255, 0, 255, 12, 13, 252, 250,
-			0, 251, 250, 1, 248, 252, 5, 0, 1, 0, 0, 11, 0, 254, 254, 7, 10, 255, 255, 6, 2, 5, 11, 244, 250, 240, 243, 0, 0, 2,
-			255, 254, 247, 4, 5, 254, 248, 251, 0, 0, 7, 255, 2, 0, 14, 10, 255, 1, 2, 12, 9, 0, 4, 254, 1, 7, 251, 5, 7, 0,
-			2, 253, 2, 2, 243, 0, 6, 243, 245, 9, 0, 251, 249, 255, 16, 240, 0, 10, 245, 12, 254, 245, 6, 4, 250, 2, 2, 246, 8, 1,
-			251, 10, 250, 2, 12, 247, 252, 3, 12, 253, 0, 251, 11, 10, 238, 9, 1, 0, 21, 238, 254, 15, 251, 3, 8, 245, 1, 8, 248, 3,
-			4, 242, 2, 0, 248, 0, 253, 12, 247, 250, 10, 245, 9, 4, 241, 255, 17, 3, 245, 0, 4, 15, 250, 1, 9, 253, 6, 1, 0, 6,
-			247, 3, 7, 253, 0, 253, 10, 244, 5, 255, 243, 3, 252, 0, 254, 4, 1, 243, 4, 254, 12, 253, 245, 10, 5, 5, 3, 252, 7, 3,
-			2, 4, 0, 0, 4, 8, 251, 4, 2, 0, 249, 0, 8, 245, 0, 249, 254, 11, 241, 0, 251, 248, 16, 3, 244, 3, 1, 10, 1, 240,
-			14, 5, 1, 12, 240, 254, 13, 253, 1, 21, 241, 246, 15, 3, 1, 252, 249, 8, 3, 245, 254, 252, 252, 7, 250, 251, 253, 250, 0, 9,
-			7, 0, 3, 24, 250, 10, 13, 240, 27, 8, 240, 1, 6, 1, 7, 249, 242, 5, 254, 12, 247, 236, 7, 247, 255, 8, 231, 2, 252, 246,
-			2, 240, 12, 12, 234, 3, 9, 2, 11, 241, 0, 23, 6, 3, 12, 6, 248, 16, 14, 246, 4, 12, 254, 0, 0, 1, 9, 244, 247, 1,
-			2, 251, 251, 255, 2, 255, 237, 10, 14, 236, 18, 9, 233, 16, 4, 229, 1, 247, 255, 14, 224, 10, 11, 241, 13, 251, 3, 15, 6, 9,
-			3, 11, 24, 252, 251, 2, 254, 14, 6, 245, 253, 22, 238, 232, 34, 233, 255, 14, 223, 8, 5, 242, 245, 255, 10, 251, 249, 20, 19, 0,
-			14, 6, 14, 17, 243, 1, 3, 234, 6, 248, 247, 29, 255, 234, 246, 236, 10, 0, 248, 225, 252, 0, 11, 253, 235, 1, 1, 250, 8, 12,
-			247, 8, 4, 18, 10, 252, 21, 2, 17, 4, 10, 25, 244, 25, 4, 246, 17, 247, 11, 17, 13, 248, 253, 13, 254, 11, 234, 228, 253, 209,
-			231, 15, 236, 244, 1, 230, 18, 253, 253, 0, 248, 252, 245, 14, 13, 249, 8, 5, 253, 44, 251, 9, 19, 234, 24, 18, 246, 0, 0, 17,
-			5, 0, 1, 0, 17, 251, 239, 255, 12, 250, 249, 243, 10, 9, 229, 5, 0, 240, 4, 1, 249, 251, 2, 10, 251, 255, 0, 248, 14, 3,
-			243, 251, 12, 4, 235, 22, 9, 251, 0, 4, 12, 252, 242, 15, 1, 253, 19, 232, 4, 15, 2, 251, 245, 10, 11, 246, 249, 7, 1, 4,
-			1, 253, 2, 245, 12, 1, 252, 249, 247, 14, 8, 246, 1, 1, 11, 243, 252, 20, 240, 7, 7, 248, 2, 249, 19, 14, 226, 250, 20, 11,
-			248, 245, 0, 0, 11, 254, 244, 8, 249, 240, 17, 11, 239, 249, 0, 29, 236, 4, 5, 255, 20, 233, 1, 12, 3, 1, 252, 16, 254, 246,
-			17, 1, 11, 248, 254, 21, 238, 246, 15, 0, 2, 237, 250, 8, 0, 250, 255, 4, 235, 20, 2, 240, 5, 246, 7, 19, 246, 231, 25, 14,
-			254, 234, 249, 27, 4, 0, 18, 228, 249, 35, 2, 237, 8, 3, 247, 14, 9, 253, 228, 13, 16, 246, 5, 241, 3, 11, 235, 19, 0, 234,
-			29, 242, 1, 8, 245, 24, 244, 239, 25, 255, 255, 254, 251, 9, 250, 250, 12, 19, 218, 13, 9, 237, 33, 247, 226, 25, 248, 4, 4, 244,
-			11, 240, 19, 15, 230, 7, 0, 7, 253, 250, 3, 254, 23, 249, 222, 39, 9, 231, 30, 243, 252, 29, 222, 252, 14, 254, 9, 239, 2, 16,
-			244, 252, 15, 233, 247, 39, 241, 240, 19, 240, 12, 252, 2, 15, 237, 249, 0, 26, 255, 250, 255, 243, 28, 13, 244, 249, 239, 20, 24, 243,
-			238, 255, 1, 14, 30, 230, 246, 13, 0, 19, 238, 249, 12, 250, 248, 12, 251, 248, 20, 19, 254, 253, 24, 22, 251, 0, 11, 7, 1, 0,
-			6, 250, 0, 33, 3, 236, 253, 16, 16, 252, 249, 3, 7, 21, 8, 242, 14, 25, 239, 14, 13, 232, 5, 17, 20, 8, 241, 245, 28, 8,
-			246, 17, 5, 3, 5, 246, 252, 14, 20, 10, 221, 16, 57, 238, 239, 3, 12, 26, 240, 253, 1, 248, 31, 4, 229, 25, 17, 249, 252, 21,
-			22, 241, 253, 18, 3, 255, 0, 251, 27, 6, 217, 19, 7, 244, 22, 245, 247, 12, 8, 254, 19, 6, 246, 10, 11, 8, 0, 234, 4, 27,
-			2, 254, 244, 13, 48, 1, 233, 3, 25, 5, 249, 1, 35, 6, 1, 7, 237, 24, 39, 249, 231, 22, 27, 242, 247, 17, 7, 11, 31, 234,
-			251, 22, 9, 20, 244, 250, 32, 247, 5, 21, 0, 21, 247, 246, 25, 5, 2, 25, 11, 243, 20, 13, 246, 23, 253, 6, 29, 253, 4, 17,
-			1, 10, 253, 250, 19, 5, 255, 0, 250, 21, 35, 233, 243, 32, 37, 254, 235, 13, 19, 0, 0, 255, 19, 255, 247, 22, 4, 250, 13, 249,
-			245, 31, 2, 250, 2, 254, 0, 38, 29, 231, 248, 32, 13, 241, 6, 6, 238, 20, 229, 227, 58, 16, 212, 253, 27, 12, 230, 253, 34, 20,
-			1, 240, 246, 7, 26, 9, 244, 252, 253, 249, 6, 4, 10, 0, 13, 15, 5, 254, 248, 30, 48, 225, 220, 42, 13, 252, 237, 215, 31, 68,
-			245, 218, 13, 55, 23, 197, 244, 52, 41, 253, 232, 2, 28, 17, 242, 0, 17, 255, 0, 245, 10, 43, 245, 220, 21, 59, 237, 223, 31, 38,
-			4, 244, 232, 19, 33, 2, 248, 243, 28, 20, 253, 252, 242, 37, 19, 214, 13, 24, 0, 12, 7, 239, 14, 27, 229, 250, 24, 7, 1, 241,
-			255, 33, 5, 233, 247, 40, 36, 245, 236, 2, 36, 17, 240, 251, 251, 14, 30, 240, 228, 21, 15, 8, 8, 228, 5, 43, 248, 253, 22, 19,
-			249, 238, 7, 28, 18, 222, 252, 21, 15, 4, 241, 238, 22, 19, 244, 248, 11, 3, 238, 43, 29, 236, 0, 17, 43, 7, 227, 18, 16, 6,
-			21, 227, 231, 31, 25, 244, 245, 244, 24, 21, 235, 0, 29, 2, 3, 18, 236, 252, 40, 0, 241, 9, 255, 31, 11, 214, 6, 27, 4, 248,
-			243, 246, 39, 9, 229, 8, 21, 9, 14, 244, 232, 30, 32, 248, 239, 3, 13, 239, 11, 16, 233, 11, 35, 250, 244, 24, 18, 235, 8, 30,
-			10, 241, 250, 32, 1, 255, 20, 244, 249, 28, 19, 247, 0, 10, 3, 18, 22, 218, 7, 42, 249, 5, 13, 244, 0, 247, 5, 31, 255, 251,
-			3, 5, 4, 10, 0, 3, 31, 242, 241, 13, 28, 6, 236, 21, 45, 250, 235, 12, 21, 15, 246, 6, 24, 251, 244, 254, 23, 13, 226, 254,
-			41, 239, 0, 26, 235, 7, 29, 255, 233, 229, 49, 22, 218, 10, 10, 2, 25, 254, 228, 14, 25, 243, 250, 6, 1, 9, 251, 250, 32, 255,
-			247, 31, 245, 242, 20, 10, 246, 30, 27, 222, 236, 46, 24, 209, 4, 30, 249, 0, 15, 236, 244, 36, 29, 240, 254, 35, 3, 241, 10, 9,
-			0, 222, 8, 41, 251, 211, 7, 43, 249, 252, 240, 245, 46, 6, 247, 5, 250, 43, 250, 213, 41, 28, 233, 6, 12, 38, 4, 211, 22, 51,
-			245, 233, 248, 29, 41, 249, 228, 0, 59, 36, 217, 239, 31, 20, 27, 222, 215, 62, 2, 211, 250, 37, 21, 243, 238, 2, 26, 5, 3, 0,
-			254, 3, 255, 5, 251, 15, 243, 254, 34, 13, 246, 255, 19, 24, 249, 230, 3, 35, 14, 244, 254, 8, 34, 13, 9, 251, 218, 18, 64, 222,
-			195, 14, 26, 24, 232, 235, 14, 11, 8, 236, 234, 56, 20, 204, 21, 36, 249, 8, 249, 249, 25, 237, 255, 18, 240, 14, 12, 230, 31, 41,
-			252, 227, 13, 29, 250, 229, 12, 37, 1, 235, 18, 245, 235, 67, 9, 227, 5, 11, 243, 9, 15, 246, 9, 21, 10, 248, 252, 251, 41, 37,
-			241, 248, 254, 11, 37, 18, 239, 5, 15, 20, 10, 250, 10, 6, 250, 27, 2, 237, 22, 0, 0, 26, 243, 1, 33, 231, 9, 46, 235, 245,
-			9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232, 20, 58, 246, 195, 11, 40, 18, 2, 200, 0, 60, 42, 225, 219, 32, 32,
-			4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230, 5, 26, 236, 255, 19, 8, 10, 21, 242, 238, 36, 3, 9, 1, 243, 53,
-			29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250, 17, 31, 237, 219, 30, 38, 12, 249, 237,
-			0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41, 222, 179, 29, 40, 30, 238, 186, 37, 78,
-			238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60, 21, 231, 223, 21, 81, 219, 184, 42, 30,
-			0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20, 17, 255, 249, 243, 37, 42, 244, 226, 0,
-			25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13, 250, 243, 235, 40, 21, 193, 10, 46, 244,
-			242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0, 48, 2, 226, 27, 35, 233, 2, 24, 12,
-			1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37, 1, 239, 244, 44, 30, 236, 7, 247, 30,
-			34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236, 32, 21, 237, 35, 4, 209, 13, 62, 3,
-			229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243, 6, 2, 255, 35, 246, 10, 246, 242, 61,
-			235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237, 51, 19, 232, 18, 7, 238, 27, 17, 235,
-			8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1, 221, 31, 13, 251, 8, 248, 17, 255, 250,
-			32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182, 1, 59, 19, 246, 233, 25, 4, 6, 7,
-			214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3, 6, 30, 240, 245, 49, 243, 219, 16, 66,
-			11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11, 20, 4, 254, 243, 8, 35, 235, 220, 17,
-			22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234, 51, 249, 218, 23, 11, 7, 250, 223, 24,
-			33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221, 212, 253, 34, 62, 218, 221, 32, 13, 6,
-			7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173, 65, 92, 206, 232, 54, 17, 230, 36, 27,
-			194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227, 0, 70, 241, 226, 27, 21, 12, 225, 241,
-			27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247, 42, 228, 208, 44, 51, 239, 237, 245, 22,
-			56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57, 5, 221, 250, 0, 32, 22, 200, 35, 54,
-			217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228, 58, 252, 236, 29, 231, 16, 50, 212, 245,
-			17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32, 252, 232, 42, 11, 210, 39, 53, 250, 196,
-			8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233, 233, 48, 3, 234, 2, 13, 20, 14, 254,
-			10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223, 11, 33, 246, 255, 0, 243, 30, 32, 235,
-			219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247, 237, 7, 17, 16, 250, 222, 17, 69, 230,
-			224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12, 1, 17, 6, 240, 39, 225, 238, 76, 244,
-			216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38, 239, 12, 56, 221, 215, 33, 17, 252, 7,
-			2, 9, 0, 0, 90, 0, 3, 0, 5, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 55, 14, 13, 25, 10, 7,
-			3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 160, 0, 240, 0, 160, 5, 40, 10, 199, 14, 36, 19, 0, 25, 35, 13,
-			15, 25, 13, 9, 7, 3, 7, 7, 135, 142, 160, 160, 150, 175, 135, 142, 160, 44, 35, 30, 90, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 9, 0, 160, 0, 240, 0, 160, 5, 40, 10, 199, 14, 36, 19,
-			0, 25, 0, 13, 15, 25, 13, 9, 7, 3, 7, 7, 135, 142, 160, 160, 150, 175, 135, 142, 160, 44, 35, 30, 90, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 55, 1, 12, 0, 3, 4, 5, 1, 8, 248,
-			0, 178, 140, 255, 16, 1, 251, 245, 245, 245, 239, 226, 221, 249, 31, 37, 28, 33, 28, 31, 38, 43, 44, 49, 55, 52, 43, 43, 39, 41,
-			30, 29, 23, 25, 23, 21, 10, 6, 10, 3, 3, 0, 2, 3, 11, 11, 7, 240, 202, 209, 221, 230, 252, 13, 19, 14, 250, 9, 219, 164,
-			223, 255, 242, 234, 247, 246, 247, 250, 247, 255, 214, 197, 207, 206, 226, 238, 6, 14, 25, 40, 51, 58, 37, 11, 3, 7, 8, 2, 224, 231,
-			31, 56, 68, 76, 86, 82, 81, 65, 53, 57, 65, 34, 19, 51, 54, 62, 60, 41, 36, 22, 12, 248, 239, 235, 250, 250, 254, 11, 15, 28,
-			41, 48, 45, 37, 39, 24, 12, 253, 0, 29, 44, 54, 62, 65, 67, 59, 50, 40, 41, 41, 30, 35, 46, 55, 69, 78, 73, 68, 65, 56,
-			46, 42, 30, 22, 18, 18, 27, 254, 233, 4, 26, 27, 7, 0, 240, 233, 223, 213, 217, 235, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 4, 44, 0, 3, 1, 2, 1, 2, 1,
+			3, 2, 4, 236, 191, 217, 11, 26, 24, 27, 26, 24, 11, 246, 236, 247, 6, 12, 15, 16, 19, 15, 5, 252, 250, 252, 5, 17, 24, 23,
+			17, 16, 16, 1, 249, 251, 12, 14, 15, 0, 202, 203, 239, 22, 13, 13, 15, 21, 16, 248, 226, 229, 3, 15, 11, 9, 15, 11, 2, 254,
+			249, 249, 253, 15, 16, 26, 20, 15, 2, 254, 2, 4, 5, 10, 34, 36, 37, 14, 8, 211, 132, 222, 36, 36, 38, 37, 30, 19, 239, 208,
+			198, 241, 19, 26, 39, 40, 26, 254, 243, 230, 226, 242, 8, 39, 45, 33, 16, 6, 214, 182, 225, 0, 12, 27, 28, 33, 25, 1, 230, 220,
+			239, 3, 13, 25, 31, 29, 11, 254, 242, 234, 236, 248, 18, 33, 25, 21, 2, 247, 249, 242, 246, 6, 22, 32, 27, 10, 251, 241, 241, 244,
+			248, 17, 23, 24, 24, 9, 245, 241, 247, 244, 6, 12, 17, 24, 12, 6, 251, 242, 245, 248, 5, 16, 17, 16, 12, 2, 251, 252, 2, 1,
+			6, 2, 15, 19, 4, 252, 254, 245, 5, 15, 19, 15, 9, 8, 7, 254, 252, 9, 7, 16, 10, 6, 10, 15, 10, 0, 7, 217, 176, 205,
+			199, 227, 27, 48, 38, 36, 244, 223, 206, 214, 234, 9, 39, 54, 49, 12, 0, 244, 245, 0, 18, 31, 35, 56, 54, 29, 248, 2, 21, 248,
+			235, 11, 249, 217, 8, 32, 4, 232, 232, 242, 243, 10, 16, 16, 21, 46, 246, 180, 209, 244, 2, 11, 24, 5, 253, 232, 240, 251, 10, 33,
+			34, 28, 8, 247, 230, 231, 230, 233, 252, 7, 30, 18, 7, 241, 238, 250, 251, 254, 15, 32, 33, 17, 6, 7, 251, 0, 16, 12, 241, 242,
+			251, 10, 17, 20, 23, 13, 3, 12, 9, 243, 255, 19, 22, 18, 15, 255, 2, 10, 2, 16, 15, 15, 17, 19, 11, 11, 20, 15, 8, 17,
+			24, 12, 0, 4, 248, 254, 252, 251, 0, 0, 2, 1, 253, 4, 254, 245, 253, 14, 12, 6, 10, 6, 3, 0, 251, 253, 2, 21, 30, 9,
+			8, 0, 0, 2, 9, 4, 0, 8, 7, 19, 11, 8, 10, 10, 6, 251, 6, 20, 21, 18, 19, 3, 3, 255, 245, 248, 1, 7, 6, 0,
+			5, 12, 3, 8, 8, 246, 248, 14, 21, 16, 5, 4, 3, 0, 255, 1, 0, 12, 18, 8, 254, 250, 237, 245, 15, 13, 254, 246, 254, 15,
+			1, 230, 229, 246, 6, 0, 246, 250, 253, 238, 225, 234, 10, 11, 8, 15, 17, 12, 0, 231, 237, 10, 32, 45, 25, 242, 235, 11, 32, 28,
+			4, 7, 19, 29, 25, 255, 237, 9, 22, 6, 250, 6, 21, 3, 241, 245, 2, 252, 244, 247, 243, 0, 5, 1, 2, 254, 243, 248, 254, 254,
+			16, 11, 2, 8, 14, 10, 250, 229, 255, 20, 12, 7, 9, 21, 18, 249, 250, 10, 13, 14, 6, 255, 4, 15, 3, 243, 251, 4, 0, 252,
+			225, 226, 244, 4, 17, 11, 6, 9, 4, 243, 217, 229, 8, 28, 32, 26, 15, 1, 248, 239, 246, 255, 8, 19, 19, 14, 254, 250, 247, 253,
+			21, 38, 29, 254, 254, 249, 234, 236, 255, 12, 14, 6, 250, 246, 242, 236, 248, 14, 15, 2, 7, 249, 235, 243, 8, 5, 4, 2, 254, 7,
+			28, 14, 5, 26, 33, 18, 251, 246, 240, 249, 11, 24, 21, 14, 8, 249, 235, 242, 248, 1, 8, 4, 16, 17, 255, 239, 221, 240, 1, 1,
+			8, 24, 18, 255, 234, 228, 241, 7, 30, 33, 18, 1, 239, 240, 4, 30, 18, 244, 245, 4, 4, 15, 11, 252, 15, 34, 20, 244, 253, 12,
+			27, 32, 27, 245, 246, 19, 20, 8, 247, 239, 238, 1, 20, 21, 10, 251, 251, 255, 3, 0, 249, 254, 254, 7, 9, 18, 4, 251, 247, 245,
+			4, 19, 5, 239, 2, 31, 39, 14, 240, 238, 254, 250, 0, 31, 34, 25, 7, 255, 254, 238, 237, 252, 31, 54, 42, 26, 247, 251, 246, 239,
+			245, 32, 60, 51, 12, 241, 232, 233, 239, 244, 23, 32, 19, 3, 246, 238, 229, 233, 245, 2, 16, 13, 245, 244, 7, 0, 239, 244, 254, 13,
+			13, 253, 0, 18, 13, 1, 249, 6, 28, 6, 0, 18, 31, 19, 7, 9, 7, 243, 244, 11, 32, 53, 24, 0, 3, 4, 244, 243, 9, 22,
+			2, 246, 10, 4, 243, 246, 245, 234, 238, 238, 255, 255, 2, 255, 9, 12, 6, 241, 235, 255, 27, 34, 21, 9, 23, 38, 13, 1, 6, 9,
+			14, 19, 22, 6, 255, 10, 7, 3, 3, 1, 2, 250, 1, 17, 9, 254, 248, 250, 251, 248, 252, 2, 1, 240, 244, 242, 255, 1, 6, 4,
+			254, 255, 244, 239, 239, 0, 26, 27, 252, 255, 23, 25, 8, 0, 1, 11, 27, 31, 21, 2, 7, 21, 1, 2, 6, 252, 7, 19, 7, 240,
+			243, 0, 250, 240, 243, 0, 1, 242, 234, 249, 5, 255, 247, 254, 254, 7, 15, 250, 221, 237, 13, 18, 1, 253, 4, 10, 15, 15, 17, 11,
+			9, 249, 1, 16, 34, 32, 26, 12, 250, 244, 1, 8, 17, 14, 0, 253, 2, 252, 246, 255, 1, 246, 241, 237, 232, 247, 7, 14, 4, 245,
+			241, 243, 243, 244, 251, 2, 10, 5, 251, 242, 252, 14, 7, 4, 0, 10, 25, 5, 251, 4, 12, 27, 24, 3, 255, 0, 248, 252, 7, 14,
+			253, 250, 255, 249, 251, 254, 249, 253, 255, 242, 250, 8, 16, 2, 238, 243, 0, 14, 19, 3, 251, 5, 15, 10, 253, 252, 6, 16, 27, 23,
+			3, 252, 15, 27, 6, 249, 5, 24, 24, 24, 19, 11, 7, 10, 10, 4, 4, 5, 4, 7, 12, 15, 13, 0, 0, 9, 12, 8, 4, 253,
+			250, 12, 11, 4, 2, 252, 4, 15, 16, 0, 245, 0, 5, 2, 255, 11, 10, 2, 13, 4, 244, 1, 17, 23, 15, 17, 12, 239, 240, 14,
+			25, 16, 15, 6, 245, 241, 4, 14, 254, 3, 26, 19, 2, 247, 247, 0, 247, 250, 6, 8, 249, 235, 253, 7, 1, 0, 248, 240, 248, 8,
+			14, 5, 3, 7, 2, 247, 249, 0, 10, 19, 19, 24, 18, 254, 245, 248, 255, 17, 30, 23, 10, 13, 7, 245, 254, 8, 3, 0, 14, 22,
+			15, 9, 255, 248, 255, 7, 0, 248, 253, 252, 7, 13, 254, 241, 245, 249, 248, 241, 12, 28, 15, 253, 0, 253, 238, 241, 1, 14, 6, 5,
+			14, 17, 10, 3, 0, 0, 246, 250, 250, 249, 10, 33, 38, 16, 246, 228, 228, 235, 255, 11, 26, 35, 252, 210, 233, 9, 5, 4, 6, 250,
+			232, 249, 11, 19, 20, 14, 249, 240, 237, 248, 254, 1, 13, 28, 50, 51, 18, 233, 229, 252, 11, 21, 36, 45, 33, 23, 30, 21, 3, 255,
+			8, 15, 38, 40, 22, 8, 10, 10, 2, 248, 0, 23, 50, 43, 6, 245, 0, 11, 6, 11, 36, 41, 21, 22, 9, 240, 0, 13, 17, 35,
+			44, 27, 245, 227, 248, 5, 19, 40, 32, 8, 252, 241, 229, 230, 249, 19, 23, 9, 251, 239, 240, 234, 234, 241, 232, 233, 102, 1, 41, 0,
+			0, 2, 5, 5, 3, 1, 6, 6, 3, 1, 6, 10, 4, 246, 229, 206, 184, 183, 209, 247, 22, 31, 26, 21, 37, 59, 61, 48, 21, 248,
+			216, 176, 160, 168, 181, 192, 222, 6, 44, 63, 76, 80, 81, 84, 79, 65, 40, 250, 140, 132, 192, 248, 218, 166, 183, 1, 35, 21, 53, 61,
+			25, 2, 11, 7, 210, 168, 169, 202, 210, 208, 208, 206, 244, 22, 54, 62, 50, 37, 38, 47, 33, 4, 241, 227, 226, 234, 233, 232, 229, 233,
+			253, 14, 25, 19, 19, 23, 13, 0, 3, 236, 237, 230, 239, 239, 238, 233, 242, 14, 16, 28, 24, 31, 34, 36, 27, 16, 2, 252, 247, 248,
+			254, 254, 1, 13, 23, 28, 30, 34, 27, 33, 35, 29, 9, 250, 249, 253, 248, 238, 235, 249, 8, 9, 21, 11, 255, 254, 8, 17, 8, 6,
+			5, 1, 249, 241, 236, 241, 248, 1, 5, 8, 253, 252, 0, 10, 12, 14, 8, 2, 0, 250, 0, 4, 251, 233, 244, 255, 9, 7, 255, 248,
+			247, 250, 255, 1, 251, 241, 246, 254, 1, 251, 243, 246, 254, 7, 13, 10, 0, 251, 251, 0, 255, 246, 234, 236, 243, 246, 248, 247, 1, 0,
+			8, 21, 24, 253, 250, 0, 10, 252, 245, 245, 244, 238, 237, 0, 253, 252, 244, 248, 245, 0, 4, 8, 251, 4, 12, 11, 7, 17, 31, 29,
+			23, 12, 17, 18, 15, 9, 10, 254, 1, 5, 12, 17, 27, 21, 17, 31, 48, 48, 33, 29, 27, 31, 20, 19, 17, 17, 11, 14, 17, 15,
+			14, 7, 255, 246, 250, 243, 240, 233, 232, 232, 231, 232, 229, 231, 233, 227, 233, 240, 249, 249, 248, 246, 251, 251, 251, 252, 1, 0, 253, 254,
+			254, 253, 251, 255, 250, 246, 243, 245, 248, 244, 235, 229, 224, 223, 221, 225, 227, 228, 235, 244, 251, 250, 248, 248, 251, 252, 255, 249, 245, 238,
+			236, 238, 230, 223, 222, 224, 233, 247, 244, 245, 251, 2, 1, 245, 246, 248, 252, 255, 13, 26, 19, 5, 243, 245, 2, 11, 11, 10, 0, 0,
+			27, 1, 19, 0, 4, 4, 5, 5, 6, 7, 8, 10, 13, 17, 23, 53, 94, 45, 40, 70, 104, 120, 65, 36, 65, 76, 65, 27, 255, 253,
+			7, 233, 207, 216, 190, 192, 190, 173, 190, 190, 185, 189, 197, 220, 240, 219, 219, 7, 13, 14, 7, 7, 36, 44, 15, 7, 35, 21, 13, 247,
+			0, 11, 242, 217, 236, 233, 219, 215, 212, 222, 229, 198, 216, 240, 228, 234, 233, 226, 0, 16, 248, 245, 0, 24, 24, 244, 9, 21, 0, 250,
+			10, 250, 251, 247, 227, 241, 238, 244, 225, 200, 249, 20, 226, 195, 246, 14, 253, 240, 246, 11, 33, 59, 23, 6, 48, 69, 60, 17, 45, 86,
+			46, 12, 47, 103, 79, 49, 8, 70, 100, 68, 22, 11, 42, 49, 3, 237, 1, 254, 206, 219, 227, 228, 206, 185, 205, 213, 227, 216, 218, 188,
+			255, 3, 237, 225, 12, 33, 0, 241, 23, 60, 14, 231, 16, 41, 28, 247, 244, 244, 20, 248, 225, 229, 245, 243, 214, 220, 252, 3, 205, 209,
+			7, 28, 14, 250, 247, 33, 45, 37, 5, 9, 28, 38, 17, 35, 38, 0, 0, 34, 47, 1, 239, 239, 12, 0, 238, 219, 224, 238, 230, 217,
+			221, 239, 235, 216, 228, 253, 253, 229, 238, 252, 255, 245, 246, 255, 253, 247, 238, 255, 6, 4, 241, 245, 10, 20, 14, 3, 7, 18, 25, 29,
+			22, 20, 21, 21, 24, 30, 23, 13, 5, 14, 29, 24, 0, 5, 14, 21, 13, 12, 3, 12, 9, 13, 7, 7, 6, 3, 4, 7, 11, 1,
+			3, 254, 13, 15, 9, 0, 12, 14, 17, 6, 10, 11, 17, 10, 1, 7, 12, 0, 202, 10, 6, 0, 5, 13, 51, 44, 21, 20, 8, 251,
+			242, 255, 3, 249, 230, 210, 223, 245, 245, 11, 19, 17, 49, 48, 16, 11, 7, 248, 236, 206, 183, 229, 246, 7, 22, 23, 33, 37, 41, 22,
+			250, 244, 254, 233, 214, 213, 250, 5, 21, 22, 11, 15, 255, 0, 255, 251, 6, 19, 12, 231, 229, 245, 239, 246, 0, 33, 9, 12, 14, 248,
+			0, 12, 2, 11, 27, 6, 243, 231, 226, 249, 199, 245, 20, 48, 54, 4, 235, 252, 254, 233, 236, 15, 6, 1, 0, 11, 18, 10, 10, 255,
+			240, 246, 7, 6, 243, 247, 238, 220, 13, 25, 19, 13, 23, 35, 250, 197, 226, 249, 10, 22, 0, 0, 255, 14, 21, 13, 237, 238, 216, 244,
+			16, 21, 52, 24, 4, 229, 242, 244, 2, 252, 250, 249, 6, 248, 242, 240, 6, 245, 8, 18, 13, 54, 0, 27, 29, 231, 192, 199, 21, 21,
+			9, 7, 16, 244, 235, 2, 30, 0, 250, 5, 253, 244, 234, 250, 238, 248, 13, 15, 24, 4, 25, 40, 3, 2, 251, 229, 217, 230, 7, 7,
+			23, 247, 249, 243, 30, 36, 9, 26, 229, 198, 217, 220, 250, 13, 29, 24, 32, 13, 7, 40, 36, 255, 15, 1, 219, 222, 219, 207, 221, 251,
+			37, 26, 14, 4, 27, 219, 230, 19, 10, 36, 5, 26, 9, 229, 234, 14, 14, 6, 8, 0, 10, 239, 204, 239, 227, 237, 29, 22, 13, 29,
+			41, 22, 228, 236, 244, 0, 244, 255, 240, 246, 254, 11, 240, 19, 43, 28, 20, 235, 14, 246, 252, 227, 220, 11, 252, 232, 15, 10, 23, 19,
+			243, 235, 0, 242, 8, 0, 250, 33, 248, 15, 15, 255, 226, 7, 15, 2, 11, 44, 32, 11, 222, 198, 229, 229, 193, 225, 25, 33, 35, 13,
+			30, 27, 234, 3, 30, 24, 14, 238, 218, 236, 12, 246, 11, 22, 15, 3, 251, 235, 255, 226, 214, 227, 11, 255, 6, 0, 18, 59, 49, 252,
+			233, 0, 31, 27, 247, 239, 234, 239, 219, 246, 15, 18, 254, 233, 250, 39, 28, 240, 235, 222, 4, 252, 12, 1, 7, 43, 250, 15, 6, 1,
+			11, 231, 0, 246, 247, 13, 16, 38, 251, 244, 214, 211, 228, 198, 34, 39, 27, 16, 5, 226, 31, 59, 28, 43, 22, 251, 192, 215, 211, 191,
+			230, 3, 8, 7, 59, 25, 52, 27, 240, 4, 236, 14, 0, 240, 235, 237, 234, 226, 188, 4, 82, 55, 26, 24, 12, 236, 241, 14, 2, 250,
+			208, 209, 235, 13, 38, 44, 7, 249, 247, 221, 225, 241, 72, 44, 17, 13, 238, 197, 213, 250, 26, 32, 5, 19, 228, 12, 46, 231, 241, 244,
+			16, 255, 235, 240, 251, 239, 221, 17, 42, 33, 45, 26, 15, 210, 230, 5, 244, 194, 11, 11, 22, 2, 254, 246, 3, 6, 9, 33, 24, 3,
+			237, 212, 236, 254, 18, 222, 25, 60, 1, 212, 224, 253, 2, 58, 14, 42, 254, 218, 6, 250, 32, 231, 190, 230, 3, 248, 6, 16, 242, 23,
+			42, 5, 35, 39, 3, 3, 235, 230, 203, 231, 220, 11, 54, 43, 241, 241, 2, 221, 239, 10, 18, 2, 22, 7, 251, 24, 27, 11, 240, 0,
+			31, 28, 16, 166, 168, 201, 242, 231, 250, 90, 73, 2, 9, 29, 15, 250, 249, 9, 52, 35, 251, 218, 174, 186, 19, 35, 0, 232, 220, 223,
+			197, 10, 44, 80, 39, 29, 50, 254, 8, 54, 253, 204, 241, 239, 201, 249, 220, 0, 240, 19, 29, 252, 254, 248, 12, 253, 219, 242, 34, 19,
+			18, 9, 6, 61, 63, 3, 222, 223, 249, 252, 231, 232, 4, 252, 205, 249, 255, 253, 45, 14, 207, 214, 15, 14, 20, 29, 28, 80, 37, 253,
+			243, 220, 3, 3, 220, 4, 217, 9, 248, 193, 242, 30, 44, 20, 207, 173, 9, 87, 249, 254, 45, 9, 4, 29, 39, 14, 36, 228, 175, 234,
+			232, 241, 230, 203, 31, 90, 56, 249, 213, 11, 13, 7, 238, 7, 10, 186, 174, 235, 37, 9, 28, 38, 54, 30, 26, 29, 2, 250, 252, 240,
+			216, 0, 240, 226, 164, 210, 240, 68, 41, 23, 68, 3, 214, 238, 22, 26, 246, 2, 232, 14, 223, 14, 32, 8, 18, 228, 24, 250, 37, 20,
+			242, 232, 222, 204, 225, 246, 219, 15, 29, 5, 11, 21, 22, 33, 29, 252, 14, 1, 31, 14, 232, 195, 14, 233, 20, 220, 214, 47, 24, 239,
+			241, 17, 243, 16, 238, 230, 7, 36, 232, 201, 251, 34, 68, 45, 33, 233, 2, 55, 247, 235, 195, 198, 211, 46, 42, 232, 24, 237, 241, 243,
+			13, 26, 32, 235, 211, 237, 1, 5, 248, 45, 5, 41, 16, 20, 18, 229, 29, 40, 235, 216, 227, 214, 214, 9, 15, 2, 241, 199, 19, 35,
+			11, 248, 1, 22, 238, 32, 32, 0, 26, 18, 34, 245, 23, 34, 235, 182, 205, 8, 235, 242, 242, 210, 222, 21, 8, 252, 22, 38, 60, 20,
+			254, 23, 33, 5, 219, 9, 15, 62, 241, 181, 245, 230, 228, 0, 214, 218, 16, 237, 255, 50, 67, 7, 249, 254, 7, 6, 242, 48, 31, 228,
+			225, 48, 223, 230, 10, 16, 19, 253, 230, 207, 235, 39, 36, 225, 218, 246, 254, 254, 226, 248, 63, 33, 33, 61, 35, 0, 28, 224, 192, 227,
+			4, 41, 230, 221, 212, 235, 226, 250, 247, 250, 59, 19, 13, 4, 16, 80, 70, 10, 17, 27, 209, 151, 148, 195, 1, 51, 21, 15, 24, 66,
+			10, 229, 236, 23, 31, 189, 219, 224, 11, 28, 8, 50, 35, 22, 1, 12, 15, 228, 249, 233, 189, 248, 249, 227, 220, 16, 42, 0, 243, 31,
+			79, 15, 24, 242, 14, 33, 251, 203, 242, 222, 246, 25, 208, 2, 225, 242, 7, 236, 45, 47, 236, 24, 60, 3, 2, 4, 230, 12, 246, 178,
+			6, 36, 2, 206, 231, 77, 19, 250, 10, 7, 254, 214, 233, 0, 5, 8, 15, 223, 245, 12, 65, 249, 234, 26, 53, 16, 226, 6, 228, 223,
+			9, 25, 207, 237, 227, 245, 14, 251, 25, 12, 29, 14, 238, 209, 40, 87, 5, 24, 254, 7, 220, 216, 177, 230, 26, 35, 26, 192, 249, 47,
+			11, 226, 12, 41, 0, 42, 242, 246, 255, 10, 11, 230, 222, 204, 246, 28, 12, 3, 53, 62, 7, 242, 240, 1, 238, 233, 211, 213, 13, 247,
+			4, 13, 23, 68, 16, 217, 252, 7, 245, 2, 236, 253, 42, 15, 47, 14, 26, 249, 204, 192, 193, 220, 230, 2, 22, 255, 28, 65, 60, 29,
+			254, 27, 25, 0, 218, 237, 199, 136, 228, 33, 69, 58, 60, 54, 224, 224, 229, 250, 233, 185, 220, 248, 47, 249, 49, 35, 30, 6, 19, 17,
+			225, 209, 240, 0, 4, 1, 250, 12, 31, 84, 4, 231, 223, 242, 195, 186, 250, 50, 22, 231, 0, 20, 8, 229, 2, 29, 51, 53, 250, 7,
+			1, 41, 3, 224, 241, 205, 193, 38, 232, 234, 18, 219, 189, 4, 57, 32, 73, 40, 26, 237, 228, 192, 252, 254, 2, 32, 28, 49, 35, 236,
+			251, 234, 207, 0, 255, 252, 220, 11, 222, 201, 250, 243, 236, 55, 70, 57, 13, 26, 4, 213, 72, 49, 14, 23, 173, 169, 212, 237, 240, 172,
+			253, 55, 74, 54, 60, 219, 179, 177, 220, 41, 123, 76, 250, 243, 30, 234, 0, 0, 3, 202, 218, 0, 8, 242, 219, 232, 246, 52, 26, 11,
+			16, 252, 230, 16, 6, 6, 18, 242, 1, 29, 65, 30, 210, 209, 214, 13, 207, 201, 27, 7, 255, 51, 33, 252, 244, 25, 20, 239, 249, 220,
+			193, 56, 65, 238, 242, 2, 4, 2, 44, 5, 245, 224, 219, 248, 29, 5, 184, 241, 72, 57, 238, 233, 230, 219, 28, 25, 255, 13, 7, 20,
+			4, 18, 3, 247, 20, 230, 21, 43, 209, 205, 238, 206, 177, 233, 82, 9, 53, 47, 8, 16, 5, 9, 234, 20, 37, 11, 228, 242, 229, 229,
+			224, 214, 17, 14, 10, 35, 21, 237, 253, 233, 8, 253, 28, 21, 204, 231, 31, 46, 56, 240, 3, 246, 233, 248, 230, 4, 251, 249, 14, 6,
+			3, 216, 23, 10, 216, 22, 246, 206, 66, 2, 216, 79, 76, 241, 226, 53, 6, 160, 175, 253, 20, 49, 10, 226, 253, 30, 247, 12, 240, 253,
+			1, 5, 245, 216, 2, 83, 34, 29, 27, 238, 216, 185, 237, 8, 54, 16, 203, 177, 14, 27, 13, 45, 246, 241, 13, 22, 6, 42, 14, 216,
+			249, 18, 35, 222, 1, 226, 4, 197, 231, 14, 240, 20, 240, 222, 95, 73, 230, 226, 1, 3, 15, 20, 253, 221, 69, 47, 238, 188, 239, 216,
+			201, 247, 243, 45, 17, 28, 31, 14, 242, 13, 223, 41, 31, 225, 255, 226, 211, 215, 47, 50, 26, 50, 255, 232, 246, 27, 166, 227, 14, 251,
+			245, 249, 10, 37, 21, 248, 2, 20, 21, 38, 191, 191, 29, 57, 214, 255, 16, 8, 18, 5, 0, 242, 1, 249, 243, 255, 247, 20, 253, 221,
+			219, 44, 11, 213, 244, 3, 50, 85, 23, 218, 221, 255, 27, 19, 27, 221, 221, 18, 230, 252, 249, 10, 250, 205, 7, 227, 239, 19, 58, 22,
+			18, 33, 247, 199, 248, 46, 65, 28, 8, 224, 236, 230, 187, 250, 237, 19, 29, 226, 220, 5, 25, 241, 13, 13, 38, 42, 31, 240, 248, 30,
+			5, 223, 12, 247, 162, 237, 24, 30, 39, 240, 7, 0, 203, 225, 246, 8, 28, 50, 38, 236, 254, 28, 247, 247, 250, 9, 11, 250, 204, 218,
+			62, 232, 238, 32, 6, 25, 235, 225, 37, 40, 49, 160, 194, 12, 40, 14, 11, 245, 6, 240, 237, 35, 241, 39, 9, 230, 15, 41, 247, 223,
+			223, 208, 11, 43, 6, 21, 236, 0, 8, 1, 255, 242, 6, 25, 6, 216, 241, 237, 252, 39, 7, 33, 0, 28, 39, 16, 231, 205, 235, 176,
+			218, 24, 47, 39, 222, 5, 20, 21, 47, 232, 189, 14, 28, 7, 34, 25, 225, 13, 228, 232, 16, 7, 214, 249, 43, 240, 206, 240, 0, 246,
+			10, 26, 47, 34, 55, 15, 249, 3, 245, 244, 208, 214, 237, 15, 2, 210, 202, 6, 35, 80, 68, 3, 252, 202, 19, 19, 193, 28, 36, 234,
+			235, 228, 244, 6, 242, 18, 67, 39, 246, 222, 5, 229, 9, 253, 231, 249, 225, 244, 2, 43, 6, 22, 28, 244, 48, 249, 223, 0, 239, 12,
+			233, 253, 23, 13, 248, 191, 239, 68, 19, 28, 219, 205, 2, 33, 35, 8, 251, 3, 242, 239, 244, 23, 245, 222, 217, 19, 16, 10, 51, 49,
+			32, 7, 225, 182, 209, 58, 21, 240, 210, 9, 19, 217, 2, 253, 4, 20, 58, 211, 253, 33, 28, 2, 182, 33, 80, 236, 236, 185, 236, 254,
+			6, 10, 73, 40, 248, 194, 251, 1, 26, 20, 193, 220, 202, 10, 66, 253, 30, 70, 6, 240, 228, 239, 26, 53, 205, 3, 22, 222, 228, 242,
+			247, 22, 237, 10, 234, 236, 3, 21, 41, 40, 249, 12, 235, 233, 20, 22, 29, 243, 224, 233, 16, 212, 228, 49, 234, 56, 11, 6, 230, 221,
+			4, 251, 199, 57, 45, 228, 58, 18, 234, 230, 239, 14, 5, 237, 38, 24, 237, 225, 243, 198, 29, 35, 30, 244, 225, 249, 237, 66, 218, 23,
+			14, 237, 247, 19, 62, 33, 244, 207, 0, 228, 234, 2, 234, 236, 22, 2, 242, 3, 236, 25, 38, 53, 43, 247, 210, 255, 23, 206, 226, 8,
+			27, 35, 236, 7, 16, 213, 240, 253, 194, 31, 20, 0, 240, 227, 37, 9, 29, 53, 76, 4, 204, 22, 228, 187, 14, 226, 0, 247, 247, 8,
+			242, 233, 251, 0, 238, 48, 50, 46, 45, 13, 221, 202, 236, 2, 21, 61, 10, 224, 233, 150, 205, 25, 1, 12, 45, 82, 9, 8, 252, 239,
+			255, 253, 5, 190, 254, 252, 18, 39, 0, 27, 4, 204, 1, 16, 8, 26, 237, 210, 236, 23, 9, 21, 225, 236, 243, 255, 70, 32, 0, 247,
+			29, 24, 210, 248, 44, 213, 232, 213, 181, 33, 48, 11, 15, 19, 14, 251, 5, 5, 224, 19, 3, 221, 9, 59, 240, 254, 11, 209, 5, 1,
+			239, 244, 22, 13, 247, 27, 255, 0, 24, 229, 42, 236, 215, 213, 18, 13, 240, 7, 6, 48, 231, 36, 45, 19, 208, 223, 241, 212, 4, 4,
+			35, 31, 29, 2, 249, 247, 225, 251, 240, 213, 248, 7, 4, 246, 50, 65, 252, 243, 19, 8, 18, 12, 215, 239, 241, 34, 247, 214, 228, 238,
+			2, 40, 20, 228, 0, 247, 31, 7, 226, 2, 4, 35, 51, 35, 0, 8, 208, 191, 9, 16, 17, 248, 233, 249, 237, 230, 229, 243, 46, 50,
+			25, 244, 253, 24, 235, 49, 9, 255, 232, 30, 243, 201, 5, 243, 14, 211, 250, 41, 242, 29, 236, 6, 240, 23, 255, 225, 19, 33, 24, 29,
+			12, 5, 215, 199, 223, 20, 11, 12, 0, 238, 5, 25, 31, 245, 255, 16, 6, 236, 248, 195, 226, 247, 254, 76, 53, 249, 10, 16, 43, 252,
+			248, 240, 153, 197, 19, 235, 40, 80, 42, 16, 224, 236, 198, 3, 249, 232, 42, 1, 30, 245, 1, 25, 253, 29, 41, 244, 214, 10, 226, 219,
+			3, 199, 235, 32, 45, 52, 34, 248, 240, 207, 242, 56, 24, 238, 247, 236, 3, 3, 193, 2, 8, 15, 38, 50, 15, 226, 229, 3, 32, 22,
+			249, 212, 225, 231, 254, 26, 252, 251, 254, 21, 4, 22, 241, 254, 0, 248, 39, 28, 14, 247, 249, 3, 235, 7, 244, 224, 20, 247, 227, 242,
+			241, 29, 247, 249, 36, 38, 23, 207, 233, 14, 255, 68, 69, 218, 238, 238, 226, 4, 246, 18, 249, 216, 209, 198, 0, 99, 39, 23, 53, 239,
+			13, 243, 186, 251, 20, 248, 239, 240, 241, 29, 28, 45, 21, 252, 226, 209, 252, 8, 22, 6, 11, 237, 245, 3, 201, 253, 254, 251, 55, 32,
+			10, 60, 2, 243, 250, 227, 17, 223, 211, 246, 210, 249, 56, 4, 4, 33, 37, 20, 245, 5, 246, 218, 204, 14, 17, 10, 28, 4, 0, 0,
+			250, 253, 239, 233, 28, 7, 0, 254, 247, 2, 0, 253, 19, 43, 243, 235, 1, 254, 225, 246, 232, 15, 59, 0, 1, 15, 246, 21, 212, 238,
+			253, 2, 9, 7, 18, 22, 13, 230, 25, 245, 225, 223, 241, 248, 247, 52, 11, 31, 7, 234, 240, 19, 28, 3, 18, 253, 228, 236, 223, 253,
+			2, 233, 3, 21, 32, 255, 11, 35, 247, 1, 249, 237, 221, 243, 2, 11, 249, 1, 35, 20, 8, 1, 13, 39, 242, 246, 254, 187, 233, 0,
+			251, 19, 247, 0, 19, 239, 239, 32, 12, 28, 41, 6, 21, 210, 255, 224, 208, 39, 25, 24, 9, 209, 218, 250, 233, 15, 32, 30, 15, 2,
+			254, 226, 233, 239, 250, 46, 32, 1, 22, 225, 248, 24, 3, 252, 248, 5, 22, 215, 220, 254, 236, 13, 13, 10, 21, 11, 3, 17, 249, 251,
+			9, 240, 230, 16, 10, 35, 214, 245, 255, 225, 4, 16, 49, 6, 6, 244, 37, 22, 203, 221, 247, 6, 247, 1, 235, 16, 36, 0, 0, 239,
+			233, 234, 27, 12, 44, 37, 5, 251, 217, 233, 14, 42, 232, 239, 8, 249, 226, 228, 9, 6, 25, 254, 24, 248, 234, 227, 252, 24, 8, 31,
+			16, 42, 11, 239, 240, 0, 251, 245, 242, 8, 252, 240, 231, 238, 3, 14, 10, 250, 7, 11, 7, 246, 11, 2, 7, 0, 24, 39, 254, 2,
+			250, 244, 235, 246, 241, 220, 13, 20, 10, 243, 232, 248, 8, 7, 0, 250, 34, 25, 0, 4, 251, 28, 253, 10, 1, 2, 251, 221, 228, 218,
+			2, 38, 6, 255, 16, 3, 244, 248, 234, 34, 18, 1, 2, 0, 247, 7, 251, 255, 17, 245, 248, 244, 5, 17, 0, 244, 6, 2, 243, 0,
+			242, 27, 20, 4, 255, 5, 5, 255, 224, 219, 241, 1, 16, 12, 7, 28, 251, 15, 39, 7, 230, 243, 0, 8, 253, 244, 0, 230, 239, 252,
+			236, 23, 47, 12, 246, 238, 249, 12, 231, 21, 38, 10, 12, 10, 233, 216, 233, 4, 6, 13, 7, 0, 1, 254, 0, 0, 233, 7, 15, 0,
+			2, 5, 24, 14, 23, 15, 18, 18, 22, 19, 26, 21, 27, 28, 17, 24, 30, 26, 17, 23, 26, 30, 31, 17, 28, 21, 16, 12, 29, 40,
+			4, 36, 18, 26, 31, 11, 21, 16, 29, 4, 19, 16, 20, 24, 7, 26, 14, 27, 8, 9, 11, 17, 23, 254, 22, 16, 24, 16, 18, 12,
+			253, 30, 1, 21, 18, 17, 28, 21, 14, 27, 23, 23, 14, 35, 33, 31, 27, 27, 25, 23, 13, 16, 33, 27, 3, 20, 12, 9, 36, 34,
+			20, 28, 13, 18, 12, 252, 20, 17, 8, 4, 13, 9, 2, 53, 18, 11, 14, 0, 0, 251, 20, 21, 16, 7, 0, 11, 22, 17, 27, 18,
+			14, 6, 8, 24, 23, 4, 32, 17, 26, 16, 24, 16, 28, 34, 15, 21, 33, 33, 26, 28, 3, 26, 21, 7, 34, 50, 18, 25, 4, 19,
+			37, 20, 19, 4, 20, 29, 9, 25, 21, 35, 23, 22, 9, 4, 23, 248, 30, 21, 18, 9, 8, 3, 29, 20, 10, 14, 13, 4, 9, 12,
+			27, 22, 0, 8, 10, 4, 4, 12, 20, 18, 20, 1, 20, 22, 12, 30, 9, 20, 27, 0, 11, 16, 34, 23, 37, 1, 33, 19, 11, 22,
+			11, 33, 14, 10, 25, 20, 21, 24, 1, 8, 29, 11, 14, 26, 19, 5, 13, 15, 17, 4, 14, 5, 4, 10, 11, 17, 4, 11, 17, 245,
+			11, 25, 8, 15, 3, 8, 10, 0, 18, 11, 14, 28, 31, 21, 7, 30, 11, 18, 34, 17, 42, 7, 9, 5, 9, 19, 11, 37, 13, 26,
+			31, 7, 20, 4, 30, 19, 28, 8, 16, 11, 30, 20, 5, 19, 17, 17, 5, 0, 2, 20, 10, 11, 25, 7, 26, 7, 10, 6, 15, 25,
+			7, 6, 7, 253, 21, 9, 16, 22, 27, 2, 18, 28, 5, 15, 12, 2, 23, 14, 37, 15, 10, 26, 14, 8, 21, 28, 12, 26, 9, 37,
+			21, 10, 30, 20, 13, 28, 30, 6, 17, 8, 4, 21, 6, 26, 27, 10, 23, 14, 14, 23, 11, 0, 12, 7, 10, 19, 14, 248, 18, 10,
+			1, 1, 2, 28, 14, 254, 4, 12, 9, 7, 17, 16, 27, 15, 3, 10, 31, 0, 11, 35, 11, 4, 19, 38, 23, 8, 13, 31, 18, 24,
+			18, 26, 32, 12, 26, 14, 24, 29, 11, 29, 13, 8, 21, 9, 4, 13, 19, 20, 8, 17, 17, 0, 10, 11, 11, 5, 1, 9, 0, 255,
+			10, 8, 8, 22, 4, 8, 20, 6, 252, 14, 25, 8, 24, 11, 19, 39, 30, 11, 34, 13, 11, 25, 3, 23, 38, 28, 40, 12, 27, 36,
+			11, 13, 24, 33, 20, 12, 26, 251, 35, 250, 8, 20, 18, 9, 0, 20, 4, 15, 13, 5, 250, 21, 0, 7, 2, 3, 9, 5, 0, 9,
+			20, 29, 0, 248, 15, 253, 10, 28, 33, 15, 14, 6, 13, 25, 29, 18, 3, 32, 44, 19, 22, 38, 5, 15, 24, 35, 7, 22, 24, 25,
+			26, 13, 8, 19, 31, 251, 10, 7, 237, 11, 247, 28, 1, 0, 13, 3, 2, 26, 2, 252, 13, 2, 17, 13, 5, 244, 1, 1, 9, 18,
+			15, 9, 12, 0, 41, 26, 22, 17, 0, 251, 13, 37, 22, 9, 1, 14, 58, 3, 20, 21, 13, 29, 16, 2, 41, 31, 0, 29, 18, 16,
+			18, 2, 24, 15, 10, 31, 253, 0, 27, 4, 37, 9, 1, 20, 3, 12, 9, 0, 11, 28, 251, 253, 14, 20, 28, 34, 249, 7, 12, 19,
+			16, 3, 2, 31, 7, 4, 6, 7, 32, 27, 0, 12, 7, 20, 14, 1, 253, 1, 35, 16, 249, 5, 24, 16, 15, 33, 252, 13, 7, 13,
+			23, 251, 43, 47, 252, 33, 38, 13, 33, 34, 248, 24, 32, 13, 37, 32, 22, 31, 16, 6, 16, 24, 34, 12, 0, 25, 26, 22, 25, 13,
+			24, 24, 240, 14, 27, 244, 15, 25, 239, 254, 8, 235, 37, 15, 6, 13, 254, 2, 12, 33, 250, 9, 236, 243, 9, 233, 26, 22, 20, 6,
+			24, 252, 24, 23, 15, 39, 8, 14, 30, 251, 34, 39, 0, 17, 43, 29, 26, 45, 23, 254, 43, 9, 45, 37, 14, 24, 34, 251, 51, 38,
+			11, 21, 16, 14, 28, 41, 15, 21, 250, 31, 4, 14, 24, 0, 5, 17, 27, 27, 15, 7, 0, 28, 26, 13, 15, 7, 17, 4, 246, 34,
+			23, 10, 18, 14, 7, 1, 14, 7, 20, 3, 13, 252, 240, 16, 23, 0, 21, 6, 3, 250, 255, 27, 15, 249, 5, 14, 4, 252, 29, 254,
+			247, 44, 20, 1, 30, 29, 243, 57, 27, 20, 28, 250, 36, 18, 11, 54, 35, 34, 36, 26, 43, 61, 22, 44, 20, 13, 34, 46, 44, 27,
+			41, 39, 6, 27, 0, 55, 32, 22, 9, 8, 16, 240, 25, 255, 15, 18, 6, 250, 247, 29, 10, 238, 18, 8, 230, 235, 250, 246, 11, 14,
+			236, 23, 250, 5, 6, 21, 250, 22, 42, 252, 11, 31, 31, 21, 23, 253, 22, 3, 30, 3, 32, 32, 249, 28, 14, 8, 24, 24, 254, 247,
+			2, 242, 244, 10, 15, 37, 254, 9, 11, 255, 17, 6, 38, 30, 23, 21, 15, 15, 20, 53, 18, 45, 22, 248, 24, 21, 28, 11, 72, 39,
+			31, 42, 4, 49, 19, 37, 27, 25, 32, 8, 21, 20, 40, 41, 4, 25, 6, 253, 23, 10, 11, 246, 5, 4, 253, 37, 15, 232, 0, 17,
+			254, 240, 28, 32, 7, 25, 233, 228, 11, 252, 0, 33, 28, 248, 12, 0, 15, 20, 19, 19, 48, 6, 12, 9, 2, 32, 11, 27, 33, 47,
+			19, 250, 41, 25, 23, 42, 36, 15, 35, 35, 254, 11, 6, 18, 65, 16, 255, 11, 22, 50, 255, 220, 0, 37, 232, 0, 3, 225, 22, 236,
+			185, 58, 82, 55, 30, 245, 245, 31, 17, 36, 238, 6, 55, 16, 19, 16, 47, 54, 45, 29, 31, 18, 65, 14, 29, 23, 55, 66, 19, 28,
+			39, 16, 27, 19, 227, 21, 27, 10, 19, 1, 235, 57, 20, 231, 3, 242, 9, 20, 251, 4, 229, 255, 28, 14, 248, 2, 15, 0, 3, 242,
+			8, 14, 17, 17, 234, 249, 47, 55, 13, 249, 58, 30, 31, 48, 1, 253, 26, 31, 24, 17, 245, 251, 33, 253, 241, 17, 83, 28, 4, 50,
+			29, 34, 42, 8, 222, 33, 60, 6, 15, 255, 249, 25, 72, 250, 235, 35, 37, 29, 224, 241, 252, 0, 242, 4, 32, 38, 13, 240, 221, 227,
+			16, 32, 229, 19, 14, 242, 21, 252, 9, 17, 12, 57, 72, 0, 0, 37, 250, 32, 21, 11, 60, 49, 1, 26, 255, 25, 68, 27, 250, 53,
+			30, 17, 24, 13, 29, 46, 6, 11, 27, 225, 251, 30, 17, 0, 4, 26, 24, 251, 239, 30, 21, 238, 10, 246, 236, 45, 47, 25, 6, 5,
+			18, 59, 252, 245, 39, 31, 26, 0, 249, 25, 40, 39, 19, 236, 232, 54, 5, 236, 14, 22, 48, 5, 250, 16, 230, 10, 46, 11, 242, 5,
+			0, 19, 250, 210, 23, 39, 246, 248, 254, 255, 8, 20, 241, 12, 31, 6, 41, 214, 238, 19, 36, 18, 40, 47, 54, 17, 43, 26, 238, 32,
+			25, 23, 32, 21, 15, 51, 11, 33, 57, 40, 47, 28, 8, 10, 23, 51, 40, 6, 9, 25, 12, 25, 25, 251, 22, 33, 1, 254, 252, 237,
+			11, 254, 22, 3, 14, 35, 245, 241, 2, 28, 22, 5, 10, 253, 254, 6, 23, 15, 9, 24, 36, 14, 255, 236, 6, 24, 30, 12, 34, 25,
+			14, 10, 23, 8, 13, 13, 22, 22, 6, 55, 44, 245, 251, 17, 5, 25, 34, 33, 22, 36, 50, 18, 17, 15, 30, 71, 71, 28, 29, 28,
+			20, 13, 244, 31, 29, 31, 46, 3, 11, 45, 248, 22, 33, 246, 27, 14, 229, 225, 232, 250, 220, 242, 234, 159, 137, 200, 232, 245, 239, 240,
+			24, 15, 5, 47, 34, 18, 33, 62, 0, 13, 51, 53, 30, 32, 121, 76, 19, 50, 47, 49, 85, 253, 17, 91, 53, 71, 85, 68, 42, 50,
+			21, 25, 47, 39, 14, 239, 16, 37, 246, 249, 251, 31, 31, 0, 14, 35, 236, 249, 254, 20, 23, 17, 22, 5, 245, 253, 37, 15, 9, 17,
+			10, 23, 255, 232, 9, 6, 10, 26, 16, 20, 16, 24, 9, 10, 8, 36, 23, 254, 233, 45, 30, 249, 6, 253, 9, 35, 18, 255, 7, 37,
+			34, 14, 12, 14, 31, 254, 252, 18, 7, 26, 30, 15, 27, 42, 21, 25, 22, 0, 8, 21, 23, 2, 250, 246, 36, 239, 8, 61, 245, 4,
+			13, 246, 16, 34, 247, 251, 6, 250, 250, 2, 21, 21, 16, 251, 253, 13, 250, 5, 254, 14, 26, 7, 3, 242, 233, 244, 13, 46, 28, 12,
+			16, 16, 4, 21, 45, 44, 27, 7, 6, 7, 15, 28, 40, 10, 22, 63, 42, 19, 15, 252, 28, 33, 17, 21, 18, 26, 19, 10, 8, 23,
+			18, 14, 1, 251, 35, 12, 25, 7, 255, 37, 10, 20, 9, 20, 25, 0, 242, 0, 36, 21, 16, 7, 251, 254, 13, 29, 243, 0, 2, 4,
+			14, 19, 1, 232, 11, 15, 42, 29, 11, 18, 8, 11, 9, 255, 253, 28, 11, 23, 20, 14, 19, 21, 14, 4, 15, 54, 23, 16, 17, 13,
+			14, 42, 9, 14, 50, 24, 14, 30, 10, 23, 250, 21, 22, 249, 70, 0, 0, 36, 245, 42, 41, 17, 38, 33, 254, 7, 21, 11, 42, 4,
+			21, 21, 4, 41, 36, 7, 28, 23, 40, 55, 47, 23, 17, 19, 22, 32, 4, 25, 57, 43, 42, 9, 253, 16, 17, 7, 24, 19, 20, 8,
+			242, 10, 27, 24, 19, 19, 43, 34, 10, 9, 3, 3, 22, 31, 21, 17, 10, 17, 37, 17, 26, 42, 28, 32, 26, 15, 33, 24, 5, 15,
+			7, 17, 38, 16, 13, 3, 14, 27, 24, 3, 254, 252, 5, 18, 16, 250, 255, 9, 252, 246, 4, 25, 7, 14, 7, 5, 5, 10, 254, 238,
+			4, 1, 5, 0, 255, 27, 45, 32, 29, 20, 12, 24, 42, 12, 46, 16, 40, 52, 14, 5, 6, 57, 26, 32, 60, 9, 20, 54, 3, 15,
+			33, 24, 20, 0, 2, 37, 27, 0, 1, 2, 32, 57, 18, 5, 24, 255, 253, 4, 7, 24, 47, 32, 15, 14, 12, 25, 23, 20, 24, 36,
+			47, 36, 21, 0, 9, 27, 18, 20, 12, 12, 11, 6, 254, 0, 16, 16, 16, 1, 10, 25, 15, 252, 239, 251, 25, 21, 18, 24, 28, 14,
+			3, 251, 247, 15, 32, 27, 15, 14, 19, 21, 16, 26, 44, 46, 32, 27, 252, 247, 255, 251, 20, 47, 44, 43, 38, 19, 25, 30, 3, 12,
+			11, 1, 21, 17, 10, 17, 17, 24, 41, 33, 27, 31, 22, 11, 4, 4, 8, 21, 22, 10, 15, 14, 1, 7, 253, 250, 24, 20, 1, 11,
+			1, 245, 4, 6, 9, 19, 15, 12, 3, 3, 11, 15, 5, 5, 13, 13, 17, 23, 9, 11, 25, 21, 14, 21, 26, 26, 19, 11, 11, 21,
+			18, 8, 11, 23, 12, 9, 28, 16, 16, 34, 49, 34, 14, 16, 35, 70, 19, 7, 36, 67, 21, 12, 35, 43, 52, 24, 11, 33, 44, 31,
+			20, 245, 30, 28, 7, 5, 0, 13, 36, 24, 3, 1, 18, 14, 252, 2, 12, 6, 18, 19, 0, 5, 21, 20, 15, 7, 6, 32, 31, 20,
+			24, 19, 22, 29, 34, 25, 24, 34, 35, 16, 13, 21, 25, 29, 21, 25, 17, 30, 18, 4, 23, 1, 15, 28, 6, 2, 0, 8, 253, 248,
+			241, 251, 10, 7, 4, 249, 8, 255, 1, 12, 6, 10, 18, 8, 0, 4, 7, 10, 23, 12, 13, 39, 38, 8, 15, 10, 6, 25, 31, 21,
+			10, 7, 9, 10, 13, 10, 22, 25, 25, 18, 255, 0, 255, 254, 2, 0, 0, 0, 122, 8, 8, 0, 10, 213, 185, 201, 218, 246, 30, 33,
+			19, 56, 71, 24, 0, 214, 189, 183, 232, 14, 26, 28, 12, 15, 57, 29, 252, 4, 244, 232, 213, 223, 2, 10, 16, 13, 5, 238, 255, 243,
+			245, 26, 10, 218, 238, 31, 37, 0, 0, 0, 1, 21, 21, 237, 233, 8, 244, 252, 45, 28, 219, 215, 249, 4, 251, 2, 229, 242, 250, 255,
+			14, 37, 36, 26, 0, 12, 6, 215, 225, 255, 12, 16, 2, 11, 17, 4, 248, 236, 0, 228, 217, 228, 3, 33, 7, 27, 18, 251, 28, 246,
+			235, 22, 246, 250, 248, 1, 59, 5, 229, 252, 251, 20, 2, 226, 11, 12, 229, 227, 253, 6, 247, 237, 253, 3, 20, 21, 251, 4, 21, 40,
+			20, 7, 238, 4, 35, 6, 224, 208, 223, 231, 252, 13, 2, 5, 4, 17, 13, 227, 252, 13, 250, 48, 14, 234, 220, 243, 18, 67, 52, 14,
+			253, 215, 213, 209, 236, 253, 247, 21, 31, 42, 5, 209, 241, 246, 38, 243, 215, 14, 41, 22, 35, 21, 210, 0, 245, 199, 13, 21, 10, 15,
+			252, 20, 22, 233, 233, 0, 12, 9, 205, 209, 244, 2, 9, 28, 42, 18, 23, 26, 20, 245, 229, 226, 13, 7, 230, 230, 242, 18, 33, 20,
+			253, 227, 214, 237, 1, 13, 2, 17, 37, 18, 25, 22, 209, 223, 29, 4, 27, 2, 210, 216, 249, 57, 255, 227, 0, 232, 4, 66, 0, 204,
+			0, 12, 253, 41, 46, 231, 231, 236, 247, 2, 246, 253, 3, 57, 68, 224, 211, 220, 218, 21, 9, 21, 2, 234, 11, 238, 12, 15, 16, 39,
+			213, 240, 32, 3, 251, 1, 4, 18, 7, 222, 230, 2, 239, 248, 244, 9, 33, 28, 252, 1, 241, 1, 246, 237, 16, 30, 28, 5, 0, 13,
+			16, 210, 197, 254, 20, 250, 12, 23, 225, 229, 254, 8, 39, 16, 222, 248, 20, 29, 15, 255, 42, 0, 203, 243, 1, 248, 240, 9, 6, 254,
+			0, 250, 244, 252, 23, 49, 237, 223, 238, 222, 252, 54, 42, 252, 23, 43, 0, 220, 239, 207, 11, 30, 216, 220, 40, 20, 241, 254, 40, 8,
+			216, 248, 27, 9, 234, 24, 217, 234, 20, 231, 0, 55, 31, 245, 34, 10, 214, 235, 24, 38, 25, 207, 174, 232, 9, 249, 23, 20, 27, 7,
+			255, 238, 238, 22, 231, 232, 61, 58, 235, 250, 19, 6, 10, 230, 217, 238, 32, 254, 212, 24, 6, 219, 13, 13, 249, 252, 248, 0, 254, 57,
+			32, 234, 249, 55, 240, 221, 1, 42, 244, 217, 212, 239, 32, 11, 6, 245, 36, 16, 183, 250, 14, 39, 44, 226, 223, 37, 1, 210, 23, 39,
+			255, 206, 225, 26, 43, 231, 238, 12, 44, 14, 216, 251, 41, 254, 210, 225, 38, 20, 235, 218, 33, 43, 13, 217, 172, 4, 66, 9, 16, 34,
+			5, 226, 228, 239, 49, 255, 237, 5, 252, 255, 231, 11, 28, 34, 18, 246, 216, 8, 233, 183, 216, 45, 34, 12, 20, 245, 17, 63, 28, 215,
+			254, 34, 211, 205, 236, 244, 44, 10, 28, 28, 237, 252, 241, 237, 233, 214, 226, 41, 63, 232, 0, 55, 24, 233, 240, 19, 234, 11, 19, 250,
+			12, 1, 213, 233, 80, 20, 157, 200, 25, 223, 5, 60, 7, 237, 44, 57, 2, 211, 20, 208, 3, 91, 231, 161, 12, 33, 0, 14, 44, 236,
+			177, 244, 21, 246, 8, 8, 237, 32, 3, 8, 27, 31, 212, 233, 62, 44, 212, 181, 4, 62, 217, 176, 8, 48, 22, 246, 4, 44, 15, 214,
+			250, 21, 212, 1, 55, 23, 3, 216, 211, 29, 29, 210, 242, 23, 4, 236, 231, 33, 34, 20, 234, 247, 19, 0, 228, 246, 28, 49, 42, 204,
+			172, 21, 91, 219, 190, 227, 14, 25, 25, 239, 252, 19, 237, 21, 11, 14, 18, 222, 26, 17, 0, 216, 243, 4, 9, 248, 232, 44, 10, 0,
+			248, 201, 21, 25, 214, 255, 14, 229, 246, 55, 46, 18, 235, 0, 18, 255, 244, 220, 247, 22, 243, 23, 236, 246, 33, 213, 250, 17, 213, 241,
+			48, 44, 234, 223, 61, 14, 224, 18, 7, 226, 230, 46, 55, 230, 224, 2, 250, 226, 8, 21, 237, 0, 247, 255, 240, 7, 251, 218, 60, 82,
+			226, 219, 78, 34, 191, 226, 7, 246, 8, 3, 222, 233, 31, 15, 233, 4, 41, 5, 207, 8, 18, 196, 11, 72, 245, 254, 31, 237, 229, 6,
+			233, 246, 56, 37, 222, 198, 38, 55, 187, 245, 55, 10, 199, 235, 232, 14, 33, 22, 4, 237, 53, 13, 231, 199, 33, 35, 172, 248, 51, 242,
+			7, 33, 15, 23, 220, 254, 251, 4, 217, 226, 48, 60, 212, 173, 6, 85, 33, 199, 227, 13, 48, 6, 242, 237, 21, 26, 22, 193, 184, 44,
+			60, 13, 40, 206, 168, 247, 39, 11, 20, 251, 12, 24, 1, 233, 203, 9, 58, 26, 252, 220, 223, 14, 244, 2, 50, 11, 227, 237, 244, 6,
+			31, 236, 252, 6, 36, 29, 0, 193, 36, 246, 215, 13, 3, 27, 248, 240, 193, 6, 68, 61, 246, 216, 10, 221, 245, 243, 250, 43, 13, 40,
+			231, 246, 17, 37, 238, 243, 199, 253, 20, 39, 3, 217, 0, 250, 16, 190, 202, 33, 58, 52, 9, 6, 248, 25, 30, 240, 243, 3, 223, 209,
+			13, 33, 217, 234, 38, 9, 236, 6, 246, 248, 254, 32, 9, 186, 61, 41, 240, 241, 8, 33, 230, 24, 31, 198, 20, 30, 174, 242, 19, 234,
+			53, 218, 215, 9, 18, 57, 11, 187, 4, 86, 18, 203, 209, 47, 53, 255, 230, 211, 245, 42, 12, 214, 240, 240, 8, 16, 229, 17, 71, 7,
+			196, 250, 23, 69, 253, 214, 253, 9, 246, 176, 243, 72, 15, 244, 32, 203, 190, 86, 59, 230, 234, 9, 19, 25, 234, 179, 229, 122, 81, 139,
+			229, 244, 253, 225, 246, 63, 47, 40, 214, 210, 7, 39, 177, 2, 98, 230, 242, 220, 39, 31, 15, 239, 224, 0, 5, 198, 3, 19, 17, 45,
+			206, 9, 73, 230, 193, 236, 70, 235, 224, 35, 59, 9, 165, 237, 10, 42, 16, 211, 239, 99, 249, 144, 63, 65, 242, 209, 251, 6, 226, 3,
+			5, 244, 19, 21, 208, 18, 66, 12, 247, 242, 39, 236, 195, 206, 2, 71, 27, 192, 12, 43, 13, 234, 218, 9, 50, 244, 210, 12, 47, 10,
+			207, 0, 4, 15, 189, 33, 56, 229, 230, 253, 34, 19, 252, 247, 2, 17, 6, 201, 235, 48, 13, 35, 221, 221, 221, 247, 26, 45, 1, 240,
+			22, 220, 28, 36, 215, 248, 81, 249, 212, 6, 243, 4, 222, 33, 195, 205, 120, 247, 188, 27, 39, 45, 17, 181, 236, 36, 26, 206, 21, 62,
+			22, 188, 253, 240, 28, 250, 172, 14, 80, 248, 206, 14, 3, 10, 215, 73, 36, 241, 7, 214, 186, 69, 36, 196, 13, 70, 19, 185, 223, 21,
+			33, 195, 248, 243, 248, 96, 0, 21, 17, 0, 175, 203, 78, 51, 180, 206, 34, 47, 245, 22, 12, 30, 224, 232, 4, 203, 7, 61, 248, 2,
+			247, 205, 34, 64, 31, 225, 215, 241, 224, 13, 1, 230, 5, 96, 220, 250, 16, 244, 11, 0, 5, 12, 246, 205, 31, 3, 13, 255, 245, 253,
+			0, 253, 27, 237, 207, 43, 14, 251, 18, 233, 9, 41, 238, 228, 241, 0, 250, 227, 69, 66, 162, 29, 70, 202, 157, 62, 51, 209, 9, 10,
+			10, 244, 18, 225, 20, 5, 254, 221, 216, 80, 195, 231, 59, 38, 247, 3, 244, 4, 37, 24, 229, 174, 29, 37, 237, 241, 6, 17, 9, 244,
+			227, 250, 4, 9, 251, 8, 4, 243, 245, 74, 7, 240, 51, 204, 208, 5, 209, 70, 43, 244, 23, 173, 250, 100, 174, 234, 35, 233, 39, 227,
+			246, 40, 13, 44, 241, 191, 226, 29, 5, 16, 246, 23, 246, 243, 14, 243, 32, 9, 245, 249, 73, 2, 150, 229, 28, 252, 231, 23, 30, 255,
+			252, 30, 235, 227, 72, 231, 222, 32, 20, 241, 235, 42, 249, 221, 2, 255, 235, 47, 254, 200, 28, 49, 191, 215, 104, 84, 194, 174, 22, 11,
+			202, 229, 54, 28, 28, 255, 216, 13, 56, 255, 189, 2, 52, 217, 233, 35, 241, 210, 42, 31, 246, 12, 7, 226, 249, 31, 214, 193, 6, 78,
+			40, 202, 30, 45, 241, 8, 233, 180, 7, 65, 243, 219, 64, 23, 183, 235, 71, 24, 210, 231, 194, 42, 79, 210, 203, 31, 52, 25, 221, 233,
+			43, 232, 251, 54, 16, 209, 242, 255, 254, 16, 230, 205, 21, 67, 250, 214, 254, 45, 2, 191, 52, 237, 7, 33, 247, 3, 10, 54, 193, 207,
+			60, 249, 189, 37, 34, 246, 1, 30, 221, 217, 29, 220, 219, 77, 27, 220, 1, 28, 21, 10, 254, 241, 246, 205, 247, 46, 244, 30, 55, 195,
+			206, 49, 8, 191, 25, 25, 240, 240, 18, 12, 232, 28, 5, 24, 14, 2, 232, 189, 253, 62, 10, 5, 15, 242, 237, 225, 255, 28, 245, 2,
+			7, 229, 17, 2, 214, 24, 76, 6, 0, 238, 239, 250, 222, 46, 251, 210, 44, 254, 232, 39, 235, 244, 14, 10, 18, 215, 211, 7, 32, 36,
+			10, 242, 23, 245, 222, 35, 0, 253, 0, 236, 255, 29, 247, 228, 249, 254, 37, 222, 20, 22, 252, 229, 27, 246, 246, 34, 3, 0, 4, 232,
+			229, 15, 14, 0, 2, 243, 8, 22, 8, 194, 23, 47, 229, 205, 15, 35, 251, 21, 237, 225, 20, 39, 209, 8, 75, 249, 174, 243, 15, 30,
+			30, 231, 248, 4, 7, 252, 225, 15, 39, 228, 2, 11, 233, 218, 23, 42, 14, 248, 5, 8, 221, 245, 9, 244, 19, 3, 245, 13, 13, 237,
+			29, 251, 1, 229, 227, 36, 249, 13, 14, 240, 236, 4, 16, 44, 244, 207, 251, 8, 0, 1, 0, 40, 24, 219, 237, 31, 235, 0, 22, 246,
+			17, 241, 236, 21, 0, 232, 255, 242, 1, 34, 225, 10, 35, 249, 253, 254, 28, 24, 248, 233, 251, 248, 3, 236, 253, 5, 11, 5, 247, 235,
+			24, 251, 245, 18, 12, 16, 244, 247, 12, 3, 254, 16, 238, 246, 252, 253, 21, 249, 12, 4, 252, 245, 239, 246, 1, 9, 23, 10, 247, 253,
+			9, 15, 246, 250, 1, 254, 5, 242, 247, 252, 13, 7, 251, 17, 21, 248, 238, 1, 4, 1, 235, 1, 242, 12, 32, 238, 235, 20, 12, 252,
+			5, 249, 26, 249, 246, 253, 247, 16, 253, 243, 2, 11, 246, 246, 19, 252, 11, 0, 244, 4, 3, 242, 248, 16, 11, 12, 0, 8, 246, 4,
+			238, 239, 16, 21, 255, 213, 22, 6, 243, 254, 26, 0, 244, 3, 242, 15, 15, 8, 233, 250, 31, 245, 244, 249, 5, 247, 11, 2, 242, 10,
+			26, 250, 227, 14, 12, 244, 231, 15, 27, 27, 254, 198, 248, 35, 7, 250, 245, 247, 253, 15, 0, 18, 6, 243, 245, 31, 6, 243, 248, 245,
+			14, 254, 242, 253, 12, 250, 17, 254, 232, 36, 246, 237, 0, 27, 0, 1, 253, 24, 255, 243, 11, 227, 241, 6, 25, 244, 242, 18, 11, 239,
+			13, 11, 251, 6, 242, 250, 5, 0, 22, 248, 250, 1, 3, 251, 0, 3, 253, 6, 242, 254, 25, 11, 231, 248, 24, 3, 255, 239, 8, 10,
+			232, 7, 12, 249, 242, 1, 19, 6, 11, 11, 242, 241, 1, 0, 241, 5, 9, 246, 3, 12, 5, 245, 18, 255, 240, 19, 7, 241, 239, 21,
+			4, 228, 3, 20, 252, 3, 11, 234, 243, 21, 13, 247, 236, 33, 255, 236, 23, 253, 251, 4, 5, 249, 239, 4, 20, 249, 16, 248, 225, 31,
+			254, 247, 2, 0, 12, 248, 239, 5, 3, 14, 13, 245, 1, 16, 237, 243, 14, 11, 8, 225, 253, 27, 241, 3, 11, 249, 16, 249, 232, 247,
+			23, 12, 221, 0, 33, 3, 253, 6, 247, 253, 0, 15, 1, 249, 7, 232, 10, 25, 3, 231, 237, 15, 255, 247, 5, 1, 235, 17, 24, 250,
+			10, 254, 13, 255, 248, 13, 246, 0, 0, 244, 2, 248, 239, 9, 14, 255, 251, 0, 9, 3, 238, 14, 5, 7, 4, 252, 10, 21, 1, 215,
+			249, 23, 249, 236, 9, 253, 240, 18, 14, 251, 7, 3, 238, 2, 18, 10, 234, 253, 17, 6, 246, 1, 3, 3, 9, 236, 251, 9, 2, 244,
+			244, 10, 9, 0, 241, 17, 12, 8, 0, 252, 243, 255, 0, 6, 254, 249, 9, 249, 3, 26, 16, 225, 1, 24, 238, 250, 236, 4, 10, 253,
+			7, 247, 252, 6, 6, 10, 1, 253, 10, 12, 227, 8, 18, 249, 246, 251, 255, 22, 253, 237, 1, 3, 1, 242, 2, 17, 250, 4, 7, 13,
+			5, 241, 0, 0, 147, 8, 9, 0, 250, 5, 240, 232, 11, 255, 245, 7, 234, 218, 30, 27, 215, 3, 33, 0, 232, 17, 7, 255, 23, 45,
+			13, 253, 246, 25, 33, 255, 227, 27, 13, 238, 4, 0, 241, 10, 245, 4, 29, 219, 235, 253, 240, 13, 234, 244, 1, 244, 0, 251, 5, 237,
+			34, 23, 226, 228, 38, 12, 204, 2, 42, 10, 239, 44, 14, 238, 15, 9, 27, 15, 5, 217, 244, 46, 254, 203, 18, 49, 248, 230, 247, 227,
+			239, 255, 9, 18, 242, 252, 231, 253, 238, 254, 251, 249, 3, 20, 246, 209, 25, 44, 3, 4, 25, 240, 248, 19, 12, 25, 241, 7, 31, 241,
+			9, 24, 244, 248, 26, 244, 236, 11, 7, 42, 240, 190, 28, 19, 252, 233, 254, 21, 228, 241, 227, 19, 10, 18, 235, 203, 40, 6, 167, 3,
+			63, 244, 228, 21, 2, 28, 240, 13, 6, 4, 58, 211, 253, 55, 254, 219, 37, 52, 215, 228, 21, 61, 243, 188, 248, 14, 35, 222, 219, 33,
+			5, 214, 17, 31, 229, 246, 30, 255, 211, 20, 12, 227, 16, 26, 248, 227, 14, 15, 219, 30, 26, 221, 0, 19, 233, 229, 69, 253, 206, 251,
+			29, 29, 238, 255, 17, 25, 235, 254, 24, 249, 242, 246, 0, 226, 247, 38, 0, 13, 0, 242, 243, 28, 42, 240, 205, 0, 15, 219, 21, 20,
+			228, 244, 41, 3, 235, 31, 249, 226, 21, 24, 235, 255, 11, 2, 5, 0, 59, 248, 210, 27, 32, 239, 252, 18, 230, 250, 18, 239, 242, 235,
+			24, 247, 6, 0, 233, 14, 226, 228, 251, 25, 244, 240, 5, 231, 18, 31, 243, 242, 24, 12, 5, 213, 33, 28, 215, 17, 4, 29, 55, 228,
+			239, 20, 2, 246, 243, 23, 26, 216, 238, 29, 255, 247, 249, 27, 4, 219, 248, 0, 30, 12, 215, 20, 41, 6, 193, 252, 60, 0, 185, 2,
+			29, 253, 0, 243, 9, 23, 0, 225, 240, 31, 35, 234, 223, 61, 2, 221, 20, 246, 10, 251, 243, 24, 7, 223, 231, 242, 2, 15, 248, 23,
+			249, 245, 254, 233, 25, 17, 1, 245, 31, 243, 238, 18, 247, 11, 252, 245, 253, 3, 243, 39, 238, 250, 60, 254, 252, 245, 8, 24, 253, 0,
+			9, 40, 252, 6, 2, 232, 244, 230, 4, 6, 230, 14, 0, 1, 241, 230, 0, 21, 250, 8, 250, 218, 28, 37, 231, 247, 5, 229, 9, 5,
+			252, 9, 239, 226, 18, 8, 232, 10, 3, 244, 29, 31, 8, 246, 250, 52, 10, 6, 8, 237, 18, 250, 209, 254, 38, 5, 238, 0, 34, 0,
+			202, 11, 49, 5, 212, 249, 38, 210, 232, 252, 41, 38, 224, 222, 6, 247, 7, 5, 204, 38, 32, 216, 1, 30, 12, 226, 244, 60, 4, 206,
+			7, 26, 234, 7, 19, 234, 33, 14, 234, 237, 22, 1, 235, 243, 0, 51, 234, 218, 34, 238, 9, 254, 233, 251, 25, 5, 254, 9, 244, 17,
+			4, 11, 250, 233, 18, 241, 22, 252, 246, 28, 241, 223, 251, 75, 244, 209, 20, 41, 2, 231, 21, 1, 24, 224, 217, 20, 38, 246, 198, 46,
+			26, 206, 243, 26, 20, 227, 255, 243, 220, 0, 252, 8, 3, 1, 44, 226, 229, 8, 19, 255, 33, 10, 233, 0, 243, 10, 28, 30, 24, 242,
+			16, 242, 9, 1, 226, 241, 26, 1, 199, 247, 37, 0, 213, 24, 35, 243, 243, 237, 1, 44, 250, 208, 240, 65, 248, 198, 13, 71, 246, 190,
+			6, 17, 237, 20, 9, 213, 16, 51, 214, 251, 38, 45, 254, 191, 67, 251, 255, 7, 225, 19, 53, 254, 183, 23, 45, 244, 215, 239, 41, 246,
+			238, 33, 226, 251, 254, 253, 244, 32, 237, 241, 41, 238, 249, 232, 240, 47, 232, 221, 247, 18, 20, 236, 17, 30, 31, 216, 7, 254, 242, 34,
+			252, 243, 14, 3, 247, 9, 28, 243, 234, 23, 37, 12, 207, 0, 0, 241, 30, 20, 201, 11, 38, 255, 239, 229, 34, 41, 224, 223, 240, 2,
+			38, 226, 9, 15, 14, 221, 226, 6, 28, 253, 227, 30, 2, 200, 4, 49, 241, 242, 21, 12, 23, 253, 213, 53, 37, 3, 213, 232, 60, 248,
+			214, 250, 52, 254, 255, 251, 244, 17, 7, 246, 6, 245, 246, 0, 240, 249, 229, 247, 23, 1, 217, 8, 11, 19, 30, 214, 238, 66, 33, 147,
+			222, 70, 252, 242, 250, 53, 246, 250, 53, 17, 241, 243, 22, 253, 37, 249, 227, 18, 250, 5, 253, 232, 27, 241, 225, 21, 50, 193, 3, 28,
+			19, 235, 219, 13, 28, 230, 240, 31, 10, 220, 232, 0, 37, 7, 191, 244, 16, 10, 250, 224, 52, 1, 214, 8, 47, 223, 249, 43, 237, 251,
+			22, 228, 1, 83, 212, 196, 20, 70, 21, 192, 254, 75, 243, 193, 38, 29, 253, 243, 251, 41, 238, 244, 13, 27, 247, 3, 252, 238, 18, 236,
+			228, 25, 27, 232, 210, 248, 38, 204, 221, 67, 22, 232, 236, 248, 35, 254, 212, 13, 36, 237, 233, 2, 20, 13, 20, 230, 3, 29, 246, 228,
+			245, 38, 23, 222, 11, 20, 20, 221, 247, 12, 27, 232, 253, 13, 247, 16, 243, 248, 29, 18, 234, 9, 243, 10, 245, 253, 255, 32, 231, 252,
+			0, 10, 8, 250, 255, 2, 234, 4, 40, 224, 207, 30, 58, 189, 220, 38, 50, 213, 248, 16, 21, 21, 228, 240, 16, 7, 253, 246, 14, 0,
+			224, 248, 13, 29, 234, 218, 24, 30, 214, 236, 34, 30, 233, 236, 61, 14, 206, 17, 53, 234, 241, 26, 45, 233, 197, 32, 0, 6, 248, 211,
+			26, 31, 204, 242, 58, 33, 222, 216, 20, 48, 230, 207, 17, 61, 186, 195, 67, 33, 173, 237, 23, 34, 44, 227, 239, 0, 45, 8, 203, 15,
+			40, 234, 234, 32, 12, 239, 255, 41, 5, 191, 34, 3, 206, 52, 43, 221, 229, 7, 13, 9, 227, 4, 0, 27, 20, 194, 220, 89, 27, 183,
+			242, 27, 24, 225, 246, 41, 250, 218, 2, 22, 3, 19, 222, 242, 17, 11, 2, 218, 25, 32, 239, 197, 26, 70, 246, 233, 17, 23, 244, 221,
+			22, 32, 251, 213, 2, 45, 5, 211, 227, 250, 45, 3, 210, 26, 33, 214, 248, 41, 15, 210, 243, 44, 234, 0, 23, 241, 253, 255, 17, 236,
+			254, 44, 250, 210, 42, 37, 223, 217, 252, 32, 253, 5, 248, 234, 22, 31, 254, 238, 21, 4, 240, 0, 12, 4, 209, 14, 22, 16, 249, 216,
+			251, 2, 29, 236, 7, 21, 230, 24, 9, 254, 219, 7, 4, 6, 23, 211, 1, 30, 255, 243, 244, 25, 3, 210, 20, 49, 7, 190, 252, 76,
+			248, 200, 21, 73, 204, 235, 240, 6, 78, 242, 232, 254, 37, 202, 229, 55, 37, 214, 242, 25, 6, 223, 216, 49, 44, 235, 193, 24, 21, 3,
+			203, 255, 46, 246, 239, 2, 0, 36, 221, 0, 10, 248, 243, 5, 241, 19, 19, 200, 16, 33, 21, 30, 242, 1, 15, 6, 234, 244, 9, 11,
+			14, 231, 245, 14, 19, 236, 240, 37, 1, 247, 213, 0, 14, 246, 9, 36, 19, 208, 6, 1, 17, 25, 227, 236, 41, 12, 213, 230, 20, 29,
+			237, 255, 4, 15, 229, 249, 28, 227, 6, 238, 49, 0, 219, 255, 11, 251, 225, 10, 251, 45, 14, 219, 246, 33, 13, 213, 46, 44, 181, 225,
+			55, 37, 239, 213, 16, 54, 9, 212, 227, 19, 34, 25, 188, 233, 86, 249, 185, 36, 54, 224, 242, 24, 238, 254, 234, 254, 251, 11, 3, 216,
+			61, 239, 221, 6, 255, 39, 243, 15, 11, 211, 251, 33, 13, 5, 0, 244, 10, 24, 242, 238, 17, 238, 250, 8, 10, 21, 212, 0, 8, 22,
+			251, 252, 247, 29, 243, 216, 33, 246, 230, 25, 243, 33, 12, 226, 0, 19, 235, 11, 254, 244, 28, 238, 4, 21, 213, 12, 25, 14, 239, 8,
+			7, 233, 4, 242, 13, 5, 2, 240, 4, 22, 243, 241, 46, 0, 224, 3, 49, 1, 236, 227, 242, 37, 245, 253, 19, 233, 15, 250, 249, 255,
+			0, 12, 1, 247, 239, 235, 255, 45, 13, 228, 253, 26, 0, 207, 253, 57, 25, 203, 247, 63, 218, 251, 10, 250, 41, 245, 198, 53, 24, 245,
+			204, 15, 83, 231, 198, 28, 28, 223, 229, 20, 233, 17, 255, 225, 35, 6, 236, 240, 48, 18, 207, 248, 63, 246, 167, 48, 26, 247, 28, 217,
+			58, 241, 214, 48, 14, 210, 222, 57, 32, 211, 246, 1, 19, 243, 4, 197, 23, 72, 215, 221, 48, 31, 2, 240, 241, 227, 22, 240, 21, 254,
+			231, 32, 229, 228, 12, 16, 8, 241, 14, 7, 6, 7, 1, 22, 5, 4, 218, 8, 18, 234, 246, 245, 49, 31, 204, 0, 39, 248, 230, 36,
+			13, 217, 0, 238, 16, 21, 235, 230, 24, 25, 214, 232, 25, 15, 227, 241, 22, 24, 245, 248, 38, 10, 234, 16, 222, 19, 249, 229, 24, 237,
+			11, 230, 1, 39, 3, 224, 253, 56, 226, 240, 6, 12, 20, 231, 0, 11, 250, 15, 247, 241, 40, 237, 230, 19, 252, 16, 17, 1, 0, 8,
+			253, 239, 7, 43, 0, 243, 250, 18, 4, 199, 46, 5, 248, 213, 246, 12, 247, 249, 235, 31, 14, 241, 254, 28, 15, 232, 217, 40, 49, 204,
+			221, 43, 27, 241, 226, 222, 30, 27, 234, 219, 30, 0, 246, 46, 255, 13, 7, 7, 237, 0, 0, 238, 6, 12, 255, 233, 32, 5, 211, 254,
+			16, 251, 249, 21, 10, 240, 234, 14, 84, 250, 205, 11, 28, 0, 218, 217, 39, 20, 251, 225, 240, 45, 23, 227, 226, 62, 237, 236, 254, 6,
+			10, 231, 0, 10, 240, 6, 33, 250, 221, 7, 9, 14, 230, 243, 30, 20, 249, 251, 0, 10, 255, 2, 34, 251, 236, 255, 9, 9, 255, 229,
+			31, 24, 196, 245, 236, 58, 253, 224, 6, 30, 8, 221, 217, 65, 9, 179, 229, 39, 2, 0, 243, 24, 70, 7, 209, 10, 29, 3, 209, 237,
+			67, 250, 196, 11, 74, 253, 6, 202, 17, 69, 194, 214, 52, 51, 233, 196, 245, 54, 10, 220, 34, 207, 248, 243, 233, 50, 28, 233, 203, 251,
+			40, 36, 239, 246, 32, 244, 200, 15, 216, 0, 59, 245, 228, 251, 1, 14, 24, 0, 8, 248, 244, 35, 240, 33, 10, 232, 20, 25, 1, 252,
+			33, 7, 12, 206, 227, 77, 246, 209, 6, 18, 25, 11, 235, 223, 23, 218, 236, 5, 11, 216, 231, 0, 48, 237, 249, 252, 17, 37, 226, 181,
+			23, 68, 219, 10, 16, 241, 6, 1, 17, 19, 248, 249, 247, 1, 19, 232, 205, 39, 48, 235, 247, 255, 253, 22, 220, 236, 44, 38, 249, 236,
+			236, 19, 2, 243, 0, 19, 255, 29, 254, 248, 17, 45, 239, 247, 60, 21, 216, 231, 60, 12, 222, 40, 37, 215, 236, 237, 9, 34, 245, 220,
+			4, 205, 227, 0, 226, 209, 184, 204, 193, 137, 190, 251, 22, 29, 18, 28, 36, 86, 82, 53, 51, 56, 60, 18, 38, 16, 0, 86, 69, 246,
+			207, 20, 57, 233, 202, 1, 36, 253, 208, 196, 245, 12, 232, 193, 0, 28, 214, 187, 0, 252, 196, 211, 249, 252, 243, 240, 230, 43, 77, 2,
+			213, 244, 68, 8, 227, 243, 6, 48, 233, 211, 253, 65, 27, 212, 249, 58, 32, 224, 236, 41, 47, 29, 10, 253, 16, 20, 238, 248, 0, 19,
+			5, 239, 6, 243, 242, 20, 221, 232, 14, 28, 12, 206, 247, 252, 210, 247, 241, 0, 26, 252, 233, 24, 9, 14, 15, 8, 7, 4, 41, 7,
+			193, 12, 77, 30, 21, 228, 241, 13, 237, 217, 254, 5, 227, 224, 210, 9, 20, 226, 214, 224, 30, 11, 227, 234, 6, 18, 255, 8, 15, 21,
+			243, 19, 43, 23, 26, 240, 46, 27, 0, 30, 0, 7, 14, 253, 234, 5, 27, 242, 242, 6, 8, 246, 228, 252, 2, 15, 1, 245, 239, 13,
+			254, 240, 252, 0, 2, 236, 235, 249, 243, 0, 231, 227, 14, 25, 230, 238, 11, 244, 253, 15, 19, 16, 18, 5, 8, 240, 249, 14, 225, 7,
+			41, 250, 231, 9, 25, 7, 7, 12, 6, 20, 0, 232, 0, 3, 255, 3, 19, 21, 0, 244, 255, 27, 238, 231, 8, 0, 250, 248, 240, 4,
+			18, 3, 5, 14, 24, 248, 247, 7, 238, 234, 10, 8, 1, 12, 243, 247, 247, 233, 8, 8, 1, 255, 249, 248, 241, 252, 16, 245, 245, 7,
+			20, 240, 245, 18, 10, 254, 7, 6, 0, 0, 249, 236, 13, 21, 239, 248, 9, 15, 6, 0, 10, 4, 10, 12, 0, 246, 13, 248, 239, 253,
+			4, 2, 246, 16, 253, 238, 2, 11, 252, 251, 17, 16, 253, 11, 7, 245, 0, 2, 6, 254, 251, 236, 0, 6, 239, 249, 0, 249, 1, 8,
+			242, 246, 7, 254, 1, 7, 252, 8, 13, 252, 1, 7, 21, 0, 171, 8, 22, 0, 3, 245, 0, 3, 242, 235, 252, 14, 28, 16, 241, 248,
+			2, 4, 237, 225, 245, 4, 0, 242, 9, 34, 7, 247, 5, 28, 5, 2, 239, 24, 30, 4, 241, 238, 7, 241, 230, 247, 242, 223, 12, 10,
+			2, 14, 249, 252, 36, 35, 244, 241, 18, 16, 8, 230, 248, 17, 22, 2, 221, 238, 10, 240, 218, 234, 36, 56, 244, 217, 249, 33, 28, 232,
+			253, 35, 29, 3, 240, 223, 254, 8, 9, 253, 229, 251, 6, 9, 5, 4, 9, 5, 18, 242, 223, 2, 230, 241, 14, 10, 34, 35, 245, 0,
+			9, 14, 0, 224, 229, 6, 4, 6, 248, 243, 14, 15, 245, 204, 23, 38, 4, 255, 3, 18, 24, 235, 255, 14, 239, 3, 208, 210, 4, 37,
+			31, 10, 241, 8, 12, 11, 18, 244, 253, 240, 254, 251, 237, 9, 30, 11, 228, 245, 9, 16, 230, 225, 244, 5, 12, 32, 51, 0, 227, 15,
+			30, 4, 247, 247, 242, 230, 249, 19, 3, 248, 252, 220, 222, 54, 8, 218, 248, 28, 45, 31, 244, 247, 37, 220, 2, 15, 244, 244, 17, 13,
+			243, 232, 8, 39, 177, 206, 76, 250, 211, 249, 16, 39, 18, 251, 0, 0, 42, 34, 220, 244, 6, 232, 238, 1, 23, 54, 237, 190, 13, 20,
+			226, 242, 2, 13, 227, 246, 42, 16, 9, 0, 253, 23, 24, 232, 249, 246, 235, 14, 20, 247, 239, 47, 2, 218, 251, 17, 13, 244, 233, 229,
+			6, 34, 250, 236, 255, 18, 245, 7, 6, 0, 10, 32, 5, 237, 6, 1, 5, 18, 16, 246, 221, 239, 4, 244, 241, 249, 13, 235, 218, 18,
+			33, 3, 42, 20, 11, 13, 232, 239, 5, 30, 255, 229, 1, 25, 21, 200, 237, 25, 225, 208, 245, 7, 9, 40, 23, 3, 27, 44, 231, 236,
+			25, 245, 231, 236, 246, 244, 35, 16, 217, 13, 18, 255, 6, 25, 200, 237, 44, 21, 220, 250, 37, 234, 16, 23, 231, 229, 238, 6, 233, 44,
+			32, 244, 254, 247, 40, 38, 244, 209, 247, 3, 243, 226, 254, 41, 26, 222, 254, 21, 34, 0, 185, 232, 32, 40, 12, 206, 215, 72, 33, 222,
+			6, 19, 239, 254, 1, 242, 1, 5, 29, 14, 220, 248, 35, 233, 252, 210, 239, 21, 234, 28, 37, 230, 34, 23, 242, 38, 0, 5, 248, 194,
+			234, 24, 48, 253, 192, 1, 25, 255, 240, 227, 13, 60, 244, 198, 38, 47, 38, 241, 202, 19, 44, 227, 207, 232, 42, 15, 207, 2, 20, 17,
+			252, 247, 242, 21, 47, 7, 247, 241, 232, 12, 64, 238, 156, 8, 35, 206, 53, 14, 167, 61, 65, 188, 240, 38, 67, 233, 208, 28, 2, 19,
+			13, 207, 1, 253, 208, 12, 243, 220, 81, 37, 227, 10, 232, 17, 25, 12, 2, 175, 19, 66, 200, 207, 74, 23, 222, 27, 210, 226, 40, 226,
+			243, 87, 26, 203, 243, 21, 41, 10, 202, 244, 0, 3, 236, 247, 251, 253, 34, 16, 254, 7, 8, 229, 236, 30, 74, 7, 177, 231, 49, 233,
+			224, 36, 255, 228, 22, 251, 6, 54, 178, 16, 45, 213, 6, 38, 212, 230, 71, 26, 3, 215, 232, 11, 209, 219, 86, 50, 193, 219, 65, 77,
+			218, 168, 10, 44, 15, 235, 0, 239, 232, 68, 242, 197, 35, 30, 189, 4, 49, 34, 214, 205, 33, 71, 10, 181, 223, 47, 28, 249, 23, 10,
+			180, 2, 28, 235, 44, 11, 223, 222, 250, 32, 20, 212, 213, 47, 59, 254, 248, 249, 15, 221, 6, 46, 244, 236, 34, 236, 215, 36, 239, 215,
+			20, 57, 211, 231, 43, 226, 17, 55, 3, 213, 254, 20, 203, 32, 38, 182, 216, 103, 54, 197, 18, 18, 201, 243, 60, 208, 240, 1, 206, 27,
+			61, 47, 224, 196, 229, 40, 81, 242, 190, 238, 15, 51, 25, 229, 248, 216, 40, 56, 175, 240, 0, 4, 250, 231, 81, 60, 166, 182, 75, 68,
+			248, 176, 4, 52, 237, 251, 245, 34, 29, 206, 220, 4, 77, 205, 220, 1, 58, 23, 200, 238, 56, 70, 198, 208, 48, 35, 187, 197, 47, 50,
+			225, 183, 43, 92, 223, 232, 17, 24, 232, 220, 235, 24, 40, 226, 5, 255, 49, 241, 210, 24, 21, 237, 1, 251, 215, 46, 32, 217, 244, 25,
+			18, 236, 20, 221, 231, 17, 38, 0, 203, 29, 29, 250, 229, 18, 26, 254, 33, 203, 249, 12, 254, 238, 251, 39, 243, 232, 246, 19, 7, 255,
+			28, 214, 62, 27, 169, 2, 19, 24, 37, 193, 224, 87, 246, 247, 204, 210, 94, 254, 200, 246, 17, 58, 248, 239, 8, 27, 23, 178, 254, 71,
+			255, 207, 220, 36, 58, 239, 146, 252, 123, 3, 192, 252, 252, 53, 8, 196, 38, 27, 240, 16, 231, 213, 72, 34, 195, 234, 236, 11, 43, 224,
+			1, 10, 228, 50, 20, 174, 251, 63, 255, 253, 1, 51, 1, 229, 209, 251, 55, 15, 195, 228, 45, 37, 224, 176, 27, 78, 224, 232, 11, 37,
+			12, 1, 225, 237, 255, 46, 35, 216, 246, 24, 1, 211, 249, 241, 20, 46, 233, 238, 19, 26, 245, 227, 248, 8, 24, 227, 5, 55, 202, 15,
+			17, 219, 23, 20, 12, 211, 222, 38, 70, 11, 207, 205, 41, 40, 219, 238, 232, 255, 31, 244, 196, 46, 93, 220, 205, 236, 75, 56, 173, 217,
+			56, 48, 236, 189, 244, 60, 18, 249, 0, 209, 1, 40, 229, 240, 14, 234, 233, 33, 14, 1, 2, 16, 255, 1, 31, 245, 7, 228, 245, 41,
+			24, 242, 224, 233, 228, 16, 41, 247, 181, 21, 26, 10, 7, 230, 72, 41, 204, 237, 50, 248, 249, 176, 189, 117, 70, 167, 180, 59, 110, 240,
+			200, 235, 19, 28, 233, 207, 247, 70, 40, 195, 197, 76, 79, 188, 203, 250, 46, 9, 194, 4, 37, 64, 249, 211, 34, 0, 245, 251, 212, 18,
+			15, 213, 13, 9, 228, 17, 75, 246, 186, 21, 66, 238, 216, 203, 30, 94, 220, 210, 33, 6, 14, 18, 173, 27, 65, 141, 249, 74, 13, 22,
+			219, 240, 28, 1, 21, 244, 195, 29, 7, 211, 38, 255, 240, 62, 240, 243, 79, 232, 205, 251, 247, 23, 241, 31, 15, 205, 245, 255, 34, 5,
+			209, 254, 12, 14, 11, 236, 19, 20, 9, 20, 231, 7, 55, 216, 215, 3, 34, 232, 195, 28, 246, 250, 54, 226, 249, 52, 226, 255, 255, 236,
+			30, 2, 41, 40, 172, 27, 63, 214, 161, 14, 99, 234, 203, 187, 48, 91, 206, 176, 27, 89, 23, 211, 209, 28, 25, 215, 232, 67, 59, 250,
+			170, 8, 94, 216, 172, 239, 47, 50, 239, 230, 227, 14, 37, 194, 1, 61, 42, 238, 188, 10, 36, 249, 3, 225, 45, 53, 202, 196, 18, 101,
+			247, 156, 231, 46, 50, 232, 204, 15, 27, 42, 232, 176, 32, 70, 240, 193, 5, 50, 70, 236, 184, 240, 27, 23, 2, 225, 7, 15, 13, 28,
+			226, 216, 0, 35, 227, 245, 5, 20, 233, 236, 32, 9, 18, 32, 229, 250, 81, 247, 162, 2, 58, 254, 210, 230, 22, 255, 244, 249, 243, 49,
+			27, 204, 3, 59, 22, 193, 211, 67, 254, 17, 1, 202, 16, 61, 215, 227, 51, 0, 223, 203, 40, 52, 169, 49, 29, 192, 55, 16, 198, 252,
+			53, 30, 207, 196, 34, 26, 28, 19, 211, 6, 43, 226, 220, 251, 24, 2, 238, 247, 22, 249, 7, 25, 209, 46, 20, 196, 27, 26, 185, 8,
+			30, 235, 3, 42, 25, 217, 2, 4, 5, 3, 252, 226, 5, 55, 222, 193, 50, 41, 4, 211, 208, 24, 74, 247, 135, 16, 112, 255, 175, 9,
+			75, 43, 192, 198, 101, 31, 158, 227, 39, 43, 225, 237, 249, 26, 37, 225, 166, 23, 66, 216, 220, 30, 32, 0, 2, 48, 248, 13, 40, 199,
+			202, 71, 246, 198, 24, 19, 235, 227, 10, 34, 25, 219, 210, 208, 63, 35, 228, 21, 245, 16, 48, 26, 207, 7, 34, 212, 0, 20, 236, 2,
+			10, 218, 233, 27, 3, 223, 242, 34, 19, 14, 240, 230, 20, 24, 4, 4, 14, 245, 250, 15, 2, 233, 2, 25, 208, 253, 62, 224, 232, 11,
+			221, 35, 51, 197, 234, 51, 214, 0, 245, 43, 65, 154, 21, 68, 221, 23, 251, 237, 26, 237, 240, 39, 209, 221, 13, 242, 67, 29, 201, 225,
+			30, 37, 233, 223, 250, 79, 242, 192, 33, 8, 24, 7, 215, 255, 57, 242, 213, 20, 241, 25, 247, 219, 42, 0, 254, 233, 214, 30, 43, 248,
+			218, 42, 19, 218, 249, 33, 22, 0, 210, 27, 16, 213, 30, 5, 208, 11, 250, 14, 67, 223, 194, 42, 255, 220, 29, 226, 1, 76, 255, 178,
+			32, 74, 245, 207, 219, 17, 83, 238, 176, 246, 47, 42, 230, 194, 5, 58, 29, 213, 190, 39, 107, 231, 131, 39, 113, 240, 141, 2, 84, 15,
+			223, 193, 32, 59, 245, 218, 250, 41, 33, 232, 181, 48, 24, 217, 228, 237, 74, 48, 174, 245, 52, 0, 247, 233, 249, 73, 246, 203, 38, 7,
+			249, 21, 249, 211, 1, 44, 230, 227, 10, 254, 4, 254, 26, 245, 228, 9, 43, 4, 217, 3, 64, 251, 234, 22, 254, 4, 236, 237, 20, 249,
+			212, 19, 0, 226, 55, 236, 196, 53, 44, 209, 248, 29, 9, 24, 252, 9, 19, 0, 236, 231, 244, 33, 1, 221, 25, 240, 233, 17, 246, 236,
+			3, 25, 15, 4, 237, 2, 38, 254, 249, 12, 255, 6, 231, 250, 37, 242, 253, 12, 209, 237, 42, 49, 204, 224, 30, 3, 246, 255, 30, 233,
+			239, 17, 17, 17, 0, 245, 9, 12, 3, 230, 2, 251, 3, 8, 221, 4, 55, 202, 0, 23, 230, 59, 201, 206, 97, 33, 198, 227, 18, 45,
+			1, 213, 17, 38, 228, 202, 21, 42, 232, 241, 8, 5, 28, 20, 213, 229, 40, 17, 228, 251, 12, 231, 19, 11, 236, 6, 35, 10, 198, 251,
+			47, 247, 232, 23, 4, 238, 27, 2, 225, 10, 20, 223, 250, 60, 239, 209, 12, 3, 230, 61, 30, 157, 18, 58, 251, 244, 218, 32, 28, 211,
+			16, 31, 235, 20, 6, 209, 7, 239, 0, 34, 221, 238, 51, 4, 225, 23, 7, 248, 7, 3, 244, 15, 13, 248, 12, 0, 22, 238, 215, 231,
+			21, 14, 232, 227, 33, 53, 197, 248, 59, 241, 241, 40, 10, 247, 0, 26, 13, 186, 13, 30, 189, 21, 9, 197, 55, 31, 237, 237, 225, 49,
+			16, 213, 31, 18, 240, 19, 236, 253, 59, 252, 181, 243, 71, 14, 187, 237, 40, 28, 248, 236, 2, 6, 248, 12, 6, 230, 16, 10, 228, 4,
+			18, 251, 7, 32, 248, 202, 21, 41, 1, 234, 244, 22, 235, 249, 21, 246, 10, 3, 239, 239, 23, 32, 193, 212, 70, 42, 222, 253, 17, 23,
+			237, 225, 18, 24, 24, 204, 227, 62, 20, 197, 234, 25, 24, 12, 224, 250, 18, 249, 8, 231, 255, 52, 240, 225, 9, 21, 24, 235, 220, 31,
+			44, 212, 227, 37, 24, 243, 0, 2, 226, 245, 4, 238, 25, 38, 233, 227, 17, 254, 16, 13, 226, 12, 29, 243, 221, 36, 47, 208, 233, 17,
+			18, 0, 234, 250, 1, 18, 3, 221, 0, 25, 2, 230, 252, 19, 24, 10, 234, 2, 46, 236, 218, 9, 232, 54, 23, 179, 4, 48, 245, 253,
+			232, 0, 44, 245, 224, 7, 253, 15, 5, 207, 28, 73, 226, 239, 245, 6, 55, 224, 205, 33, 9, 10, 226, 232, 36, 234, 20, 32, 221, 245,
+			22, 236, 250, 41, 248, 230, 32, 20, 227, 231, 16, 46, 238, 215, 21, 10, 10, 0, 228, 230, 50, 10, 218, 5, 0, 254, 11, 0, 242, 21,
+			26, 215, 222, 84, 47, 185, 232, 28, 15, 246, 243, 252, 217, 14, 25, 244, 236, 29, 39, 192, 8, 59, 247, 243, 246, 20, 6, 228, 250, 39,
+			227, 250, 26, 246, 21, 226, 224, 22, 24, 3, 226, 231, 50, 21, 217, 252, 32, 16, 243, 228, 23, 56, 201, 201, 36, 14, 23, 248, 213, 31,
+			14, 243, 3, 218, 12, 41, 238, 224, 22, 12, 10, 243, 233, 36, 13, 244, 252, 237, 26, 27, 219, 240, 25, 9, 248, 235, 247, 17, 12, 238,
+			246, 27, 10, 242, 246, 6, 22, 239, 6, 28, 236, 234, 1, 36, 11, 219, 248, 26, 245, 2, 4, 225, 19, 6, 252, 243, 0, 9, 33, 233,
+			217, 76, 11, 201, 255, 39, 240, 245, 245, 22, 10, 228, 16, 251, 253, 27, 231, 219, 54, 0, 229, 7, 18, 11, 233, 249, 14, 20, 247, 230,
+			18, 6, 10, 245, 220, 43, 0, 229, 5, 16, 18, 244, 240, 240, 21, 27, 222, 254, 14, 244, 10, 17, 242, 253, 17, 3, 0, 239, 1, 9,
+			246, 236, 16, 15, 253, 0, 233, 30, 19, 235, 246, 248, 28, 3, 220, 7, 6, 26, 0, 211, 21, 32, 249, 236, 247, 22, 14, 241, 244, 251,
+			22, 250, 244, 14, 252, 247, 5, 1, 14, 1, 238, 24, 4, 236, 5, 10, 243, 0, 153, 7, 51, 0, 12, 9, 4, 3, 255, 18, 20, 238,
+			7, 32, 4, 241, 4, 14, 2, 0, 26, 2, 233, 1, 17, 25, 12, 237, 252, 34, 14, 245, 252, 5, 24, 12, 3, 237, 251, 36, 2, 233,
+			0, 24, 13, 237, 246, 21, 9, 7, 3, 249, 17, 13, 251, 9, 9, 10, 11, 241, 12, 33, 235, 234, 33, 26, 234, 253, 23, 6, 254, 2,
+			11, 6, 6, 16, 13, 249, 12, 22, 0, 8, 9, 249, 1, 11, 4, 255, 12, 11, 2, 255, 5, 32, 11, 244, 16, 29, 4, 244, 11, 23,
+			244, 0, 36, 3, 247, 1, 251, 3, 40, 16, 228, 0, 28, 16, 251, 251, 13, 22, 9, 0, 238, 5, 35, 2, 253, 4, 2, 11, 8, 236,
+			245, 23, 27, 251, 246, 254, 10, 13, 7, 234, 10, 55, 243, 220, 4, 13, 21, 20, 232, 233, 24, 22, 252, 242, 12, 24, 250, 245, 255, 8,
+			12, 8, 248, 6, 25, 13, 233, 251, 35, 27, 239, 245, 15, 26, 0, 247, 13, 12, 3, 3, 250, 253, 7, 15, 3, 254, 13, 250, 235, 14,
+			14, 0, 25, 230, 252, 45, 243, 0, 29, 3, 0, 255, 12, 5, 252, 251, 28, 22, 235, 4, 21, 250, 10, 6, 253, 20, 19, 254, 253, 24,
+			22, 251, 0, 11, 7, 1, 0, 6, 250, 0, 33, 3, 236, 253, 16, 16, 252, 249, 3, 7, 21, 8, 242, 14, 25, 239, 14, 13, 232, 5,
+			17, 20, 8, 241, 245, 28, 8, 246, 17, 5, 3, 5, 246, 252, 14, 20, 10, 221, 16, 57, 238, 239, 3, 12, 26, 240, 253, 1, 248, 31,
+			4, 229, 25, 17, 249, 252, 21, 22, 241, 253, 18, 3, 255, 0, 251, 27, 6, 217, 19, 7, 244, 22, 245, 247, 12, 8, 254, 19, 6, 246,
+			10, 11, 8, 0, 234, 4, 27, 2, 254, 244, 13, 48, 1, 233, 3, 25, 5, 249, 1, 35, 6, 1, 7, 237, 24, 39, 249, 231, 22, 27,
+			242, 247, 17, 7, 11, 31, 234, 251, 22, 9, 20, 244, 250, 32, 247, 5, 21, 0, 21, 247, 246, 25, 5, 2, 25, 11, 243, 20, 13, 246,
+			23, 253, 6, 29, 253, 4, 17, 1, 10, 253, 250, 19, 5, 255, 0, 250, 21, 35, 233, 243, 32, 37, 254, 235, 13, 19, 0, 0, 255, 19,
+			255, 247, 22, 4, 250, 13, 249, 245, 31, 2, 250, 2, 254, 0, 38, 29, 231, 248, 32, 13, 241, 6, 6, 238, 20, 229, 227, 58, 16, 212,
+			253, 27, 12, 230, 253, 34, 20, 1, 240, 246, 7, 26, 9, 244, 252, 253, 249, 6, 4, 10, 0, 13, 15, 5, 254, 248, 30, 48, 225, 220,
+			42, 13, 252, 237, 215, 31, 68, 245, 218, 13, 55, 23, 197, 244, 52, 41, 253, 232, 2, 28, 17, 242, 0, 17, 255, 0, 245, 10, 43, 245,
+			220, 21, 59, 237, 223, 31, 38, 4, 244, 232, 19, 33, 2, 248, 243, 28, 20, 253, 252, 242, 37, 19, 214, 13, 24, 0, 12, 7, 239, 14,
+			27, 229, 250, 24, 7, 1, 241, 255, 33, 5, 233, 247, 40, 36, 245, 236, 2, 36, 17, 240, 251, 251, 14, 30, 240, 228, 21, 15, 8, 8,
+			228, 5, 43, 248, 253, 22, 19, 249, 238, 7, 28, 18, 222, 252, 21, 15, 4, 241, 238, 22, 19, 244, 248, 11, 3, 238, 43, 29, 236, 0,
+			17, 43, 7, 227, 18, 16, 6, 21, 227, 231, 31, 25, 244, 245, 244, 24, 21, 235, 0, 29, 2, 3, 18, 236, 252, 40, 0, 241, 9, 255,
+			31, 11, 214, 6, 27, 4, 248, 243, 246, 39, 9, 229, 8, 21, 9, 14, 244, 232, 30, 32, 248, 239, 3, 13, 239, 11, 16, 233, 11, 35,
+			250, 244, 24, 18, 235, 8, 30, 10, 241, 250, 32, 1, 255, 20, 244, 249, 28, 19, 247, 0, 10, 3, 18, 22, 218, 7, 42, 249, 5, 13,
+			244, 0, 247, 5, 31, 255, 251, 3, 5, 4, 10, 0, 3, 31, 242, 241, 13, 28, 6, 236, 21, 45, 250, 235, 12, 21, 15, 246, 6, 24,
+			251, 244, 254, 23, 13, 226, 254, 41, 239, 0, 26, 235, 7, 29, 255, 233, 229, 49, 22, 218, 10, 10, 2, 25, 254, 228, 14, 25, 243, 250,
+			6, 1, 9, 251, 250, 32, 255, 247, 31, 245, 242, 20, 10, 246, 30, 27, 222, 236, 46, 24, 209, 4, 30, 249, 0, 15, 236, 244, 36, 29,
+			240, 254, 35, 3, 241, 10, 9, 0, 222, 8, 41, 251, 211, 7, 43, 249, 252, 240, 245, 46, 6, 247, 5, 250, 43, 250, 213, 41, 28, 233,
+			6, 12, 38, 4, 211, 22, 51, 245, 233, 248, 29, 41, 249, 228, 0, 59, 36, 217, 239, 31, 20, 27, 222, 215, 62, 2, 211, 250, 37, 21,
+			243, 238, 2, 26, 5, 3, 0, 254, 3, 255, 5, 251, 15, 243, 254, 34, 13, 246, 255, 19, 24, 249, 230, 3, 35, 14, 244, 254, 8, 34,
+			13, 9, 251, 218, 18, 64, 222, 195, 14, 26, 24, 232, 235, 14, 11, 8, 236, 234, 56, 20, 204, 21, 36, 249, 8, 249, 249, 25, 237, 255,
+			18, 240, 14, 12, 230, 31, 41, 252, 227, 13, 29, 250, 229, 12, 37, 1, 235, 18, 245, 235, 67, 9, 227, 5, 11, 243, 9, 15, 246, 9,
+			21, 10, 248, 252, 251, 41, 37, 241, 248, 254, 11, 37, 18, 239, 5, 15, 20, 10, 250, 10, 6, 250, 27, 2, 237, 22, 0, 0, 26, 243,
+			1, 33, 231, 9, 46, 235, 245, 9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232, 20, 58, 246, 195, 11, 40, 18, 2, 200,
+			0, 60, 42, 225, 219, 32, 32, 4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230, 5, 26, 236, 255, 19, 8, 10, 21, 242,
+			238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250, 17, 31,
+			237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41, 222, 179,
+			29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60, 21, 231,
+			223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20, 17, 255,
+			249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13, 250, 243,
+			235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0, 48, 2,
+			226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37, 1, 239,
+			244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236, 32, 21,
+			237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243, 6, 2,
+			255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237, 51, 19,
+			232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1, 221, 31,
+			13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182, 1, 59,
+			19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3, 6, 30,
+			240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11, 20, 4,
+			254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234, 51, 249,
+			218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221, 212, 253,
+			34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173, 65, 92,
+			206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227, 0, 70,
+			241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247, 42, 228,
+			208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57, 5, 221,
+			250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228, 58, 252,
+			236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32, 252, 232,
+			42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233, 233, 48,
+			3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223, 11, 33,
+			246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247, 237, 7,
+			17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12, 1, 17,
+			6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38, 239, 12,
+			56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21, 222, 219, 35, 42, 215, 255, 7, 6, 40, 0, 188, 15, 76, 245, 193, 29,
+			25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13, 11, 247, 16, 19, 2, 239, 204, 71, 69, 188, 229, 30, 35, 0, 2, 14,
+			236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23, 237, 4, 46, 204, 233, 66, 250, 217, 22, 41, 2, 225, 27, 47, 234, 252,
+			10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18, 53, 242, 10, 6, 234, 30, 19, 235, 9, 42, 242, 224, 32, 0, 243, 16,
+			251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23, 249, 239, 13, 0, 0, 0, 172, 10, 36, 0, 2, 26, 14, 253, 249, 242,
+			249, 12, 10, 245, 245, 5, 17, 11, 247, 248, 3, 4, 242, 243, 251, 13, 38, 2, 239, 229, 238, 18, 32, 29, 251, 215, 251, 10, 254, 22,
+			5, 236, 0, 253, 249, 4, 245, 17, 37, 235, 225, 25, 14, 241, 235, 238, 21, 50, 5, 223, 245, 255, 4, 21, 251, 250, 15, 8, 224, 230,
+			4, 10, 6, 25, 39, 242, 232, 242, 238, 21, 16, 0, 249, 237, 8, 23, 246, 248, 2, 6, 15, 248, 241, 248, 246, 251, 24, 41, 19, 244,
+			218, 239, 0, 2, 23, 20, 229, 0, 16, 249, 252, 251, 243, 248, 2, 1, 17, 32, 19, 246, 233, 244, 16, 231, 228, 23, 35, 20, 0, 20,
+			236, 198, 228, 14, 29, 248, 3, 25, 26, 11, 227, 236, 252, 246, 5, 19, 20, 252, 238, 24, 15, 247, 249, 243, 236, 249, 14, 252, 0, 23,
+			15, 248, 228, 10, 11, 242, 244, 9, 42, 21, 247, 244, 220, 240, 21, 0, 254, 15, 14, 15, 234, 224, 255, 249, 249, 16, 32, 43, 13, 223,
+			209, 247, 27, 0, 248, 17, 23, 230, 215, 19, 42, 7, 253, 240, 228, 6, 255, 239, 29, 31, 27, 36, 223, 163, 202, 26, 61, 27, 12, 10,
+			4, 252, 222, 193, 239, 45, 44, 31, 40, 247, 167, 198, 37, 52, 11, 217, 226, 43, 54, 247, 244, 233, 231, 235, 228, 25, 94, 53, 235, 211,
+			190, 221, 25, 43, 37, 12, 245, 18, 16, 205, 169, 212, 34, 75, 50, 27, 0, 213, 227, 2, 255, 248, 0, 5, 6, 11, 48, 25, 221, 218,
+			225, 242, 7, 8, 9, 36, 25, 249, 230, 224, 4, 5, 4, 8, 42, 9, 216, 243, 25, 29, 239, 241, 17, 237, 208, 240, 19, 48, 30, 242,
+			252, 7, 251, 245, 217, 201, 23, 75, 51, 20, 238, 222, 229, 249, 240, 242, 24, 28, 3, 2, 250, 251, 16, 248, 236, 237, 1, 46, 22, 246,
+			205, 235, 25, 24, 30, 254, 16, 14, 209, 230, 12, 235, 226, 28, 40, 7, 0, 19, 4, 225, 223, 5, 16, 251, 10, 9, 4, 4, 252, 18,
+			252, 235, 226, 238, 14, 53, 51, 249, 205, 211, 250, 13, 5, 15, 42, 31, 245, 215, 219, 239, 14, 42, 9, 253, 23, 17, 224, 212, 246, 3,
+			244, 20, 46, 4, 227, 22, 41, 230, 216, 253, 241, 255, 35, 11, 1, 248, 241, 9, 244, 248, 58, 15, 206, 221, 11, 58, 253, 218, 0, 0,
+			238, 250, 69, 21, 189, 239, 53, 31, 242, 242, 236, 199, 219, 40, 71, 35, 20, 8, 189, 203, 19, 255, 243, 1, 21, 51, 43, 30, 180, 141,
+			25, 52, 245, 4, 33, 29, 0, 233, 234, 239, 238, 36, 57, 222, 223, 44, 14, 218, 222, 252, 5, 30, 34, 14, 10, 240, 224, 222, 229, 12,
+			36, 20, 11, 16, 247, 222, 252, 26, 6, 216, 214, 49, 76, 18, 228, 183, 215, 33, 38, 237, 29, 77, 232, 131, 206, 37, 69, 55, 38, 242,
+			198, 227, 251, 28, 15, 217, 222, 26, 27, 12, 47, 253, 196, 240, 29, 254, 224, 1, 37, 1, 245, 55, 7, 193, 204, 250, 40, 76, 26, 179,
+			232, 32, 240, 244, 36, 37, 239, 225, 242, 7, 39, 252, 200, 221, 37, 51, 7, 247, 253, 7, 16, 1, 230, 214, 234, 254, 56, 71, 17, 223,
+			200, 215, 246, 54, 47, 232, 218, 27, 39, 244, 197, 231, 43, 49, 0, 232, 2, 1, 243, 251, 17, 29, 2, 219, 208, 1, 55, 38, 223, 170,
+			254, 106, 48, 226, 246, 252, 213, 218, 6, 43, 49, 0, 198, 246, 25, 8, 10, 252, 234, 249, 24, 33, 11, 192, 196, 54, 52, 10, 241, 196,
+			237, 9, 26, 55, 14, 2, 10, 212, 209, 24, 18, 238, 247, 0, 29, 16, 241, 255, 0, 239, 241, 251, 0, 248, 40, 71, 4, 241, 8, 214,
+			166, 242, 68, 43, 255, 242, 0, 8, 249, 230, 231, 3, 41, 66, 10, 218, 210, 230, 244, 253, 60, 68, 237, 208, 249, 2, 243, 251, 255, 28,
+			37, 254, 226, 5, 17, 220, 218, 14, 29, 13, 15, 12, 241, 246, 12, 243, 227, 6, 14, 248, 36, 15, 217, 248, 250, 254, 34, 39, 245, 223,
+			224, 216, 8, 87, 68, 234, 233, 227, 222, 227, 244, 239, 9, 94, 46, 27, 18, 171, 146, 239, 30, 26, 60, 80, 5, 182, 198, 244, 42, 24,
+			219, 249, 45, 42, 224, 218, 18, 253, 227, 251, 17, 21, 244, 238, 36, 25, 241, 10, 28, 237, 211, 206, 237, 61, 79, 255, 230, 20, 235, 201,
+			232, 25, 49, 253, 222, 17, 0, 218, 20, 39, 12, 251, 227, 18, 23, 216, 219, 12, 11, 67, 18, 211, 4, 234, 234, 11, 9, 248, 241, 0,
+			19, 15, 0, 10, 8, 243, 240, 249, 29, 5, 242, 8, 252, 240, 23, 7, 219, 254, 34, 254, 242, 31, 14, 221, 233, 230, 235, 25, 61, 37,
+			250, 12, 245, 196, 221, 0, 35, 38, 3, 243, 220, 254, 56, 30, 217, 225, 2, 5, 230, 238, 66, 41, 220, 7, 236, 202, 28, 43, 239, 16,
+			23, 224, 227, 38, 26, 202, 217, 22, 34, 23, 254, 250, 255, 229, 241, 31, 20, 250, 12, 251, 228, 241, 235, 16, 52, 252, 254, 2, 8, 11,
+			218, 199, 25, 79, 0, 192, 251, 34, 13, 0, 3, 13, 241, 221, 215, 12, 39, 31, 63, 246, 171, 222, 31, 21, 19, 236, 241, 33, 0, 217,
+			37, 5, 209, 247, 18, 75, 29, 200, 189, 18, 23, 204, 8, 76, 54, 227, 203, 14, 7, 189, 244, 58, 0, 3, 67, 32, 196, 190, 202, 223,
+			37, 114, 93, 19, 173, 159, 193, 3, 78, 75, 10, 223, 254, 237, 231, 237, 6, 35, 251, 2, 43, 251, 214, 234, 20, 27, 11, 252, 221, 246,
+			252, 250, 42, 64, 0, 205, 239, 248, 237, 33, 27, 216, 235, 18, 10, 0, 32, 10, 228, 7, 16, 250, 226, 244, 8, 236, 0, 44, 13, 1,
+			54, 21, 170, 178, 226, 19, 73, 73, 28, 211, 209, 253, 11, 227, 189, 25, 95, 39, 248, 245, 218, 223, 244, 252, 10, 42, 38, 14, 246, 190,
+			215, 6, 12, 53, 73, 8, 207, 212, 229, 223, 230, 63, 89, 22, 231, 229, 211, 197, 254, 42, 63, 34, 8, 0, 223, 212, 228, 245, 21, 49,
+			51, 240, 196, 239, 15, 20, 247, 2, 7, 245, 240, 18, 32, 0, 245, 5, 5, 224, 237, 26, 7, 245, 16, 25, 0, 222, 233, 13, 33, 244,
+			244, 1, 6, 248, 239, 23, 24, 239, 14, 24, 227, 225, 10, 250, 251, 32, 50, 244, 217, 247, 239, 238, 2, 43, 50, 20, 227, 207, 193, 252,
+			26, 36, 37, 38, 24, 243, 197, 208, 246, 232, 21, 94, 64, 211, 187, 0, 20, 245, 209, 24, 69, 248, 238, 242, 238, 10, 241, 255, 37, 55,
+			251, 181, 244, 11, 32, 39, 243, 226, 233, 20, 9, 223, 254, 29, 5, 253, 12, 20, 11, 223, 197, 244, 22, 64, 66, 210, 187, 1, 27, 21,
+			0, 254, 252, 248, 248, 19, 250, 185, 5, 106, 55, 207, 205, 237, 229, 2, 32, 9, 5, 35, 32, 232, 218, 23, 230, 182, 0, 67, 73, 19,
+			233, 212, 202, 20, 27, 225, 249, 38, 24, 232, 252, 54, 23, 216, 208, 234, 255, 10, 38, 6, 239, 38, 21, 222, 223, 2, 6, 244, 16, 61,
+			3, 198, 242, 23, 255, 221, 4, 52, 10, 218, 218, 31, 60, 255, 231, 226, 235, 16, 255, 237, 38, 65, 0, 204, 233, 255, 6, 19, 19, 253,
+			252, 9, 211, 211, 1, 27, 54, 50, 1, 199, 215, 14, 13, 252, 7, 24, 27, 229, 214, 27, 21, 232, 239, 13, 11, 245, 250, 14, 23, 5,
+			5, 249, 220, 224, 255, 42, 44, 0, 242, 245, 232, 251, 25, 23, 243, 209, 237, 31, 59, 42, 254, 222, 205, 219, 254, 25, 44, 10, 230, 13,
+			30, 214, 214, 26, 35, 15, 241, 236, 250, 25, 13, 224, 249, 31, 13, 6, 225, 223, 27, 31, 225, 249, 42, 234, 255, 1, 233, 0, 20, 23,
+			11, 248, 227, 236, 4, 26, 23, 240, 253, 20, 251, 248, 234, 236, 41, 60, 242, 220, 232, 235, 249, 31, 30, 247, 252, 20, 235, 211, 17, 48,
+			8, 231, 31, 16, 225, 238, 250, 3, 229, 12, 75, 6, 199, 227, 7, 11, 25, 17, 231, 212, 247, 70, 22, 226, 18, 6, 201, 228, 42, 55,
+			243, 210, 10, 41, 242, 235, 16, 0, 220, 215, 16, 69, 24, 251, 246, 235, 220, 252, 27, 15, 243, 2, 29, 25, 254, 219, 221, 247, 11, 6,
+			5, 53, 45, 229, 180, 232, 56, 10, 218, 1, 30, 8, 242, 248, 35, 12, 204, 203, 15, 61, 52, 4, 216, 240, 12, 246, 201, 3, 62, 5,
+			232, 18, 38, 241, 187, 228, 21, 21, 46, 33, 217, 227, 38, 2, 215, 255, 11, 236, 0, 45, 44, 240, 226, 234, 241, 243, 253, 56, 27, 223,
+			4, 255, 249, 3, 255, 255, 2, 235, 9, 48, 245, 222, 235, 247, 41, 57, 17, 228, 198, 231, 255, 245, 10, 46, 62, 1, 242, 238, 211, 224,
+			0, 16, 24, 21, 39, 31, 218, 187, 223, 26, 50, 255, 239, 5, 248, 249, 23, 17, 245, 246, 31, 10, 213, 234, 23, 4, 229, 255, 43, 36,
+			228, 211, 15, 33, 228, 226, 30, 25, 243, 11, 0, 236, 14, 7, 240, 241, 2, 16, 249, 9, 35, 9, 214, 227, 10, 18, 253, 232, 12, 56,
+			34, 228, 202, 241, 250, 249, 30, 22, 25, 11, 205, 233, 36, 3, 228, 32, 35, 230, 210, 252, 28, 30, 5, 207, 236, 46, 31, 236, 221, 24,
+			29, 220, 231, 40, 15, 212, 4, 37, 3, 228, 0, 0, 241, 8, 31, 0, 237, 8, 16, 248, 248, 8, 2, 245, 208, 0, 70, 13, 234, 7,
+			7, 219, 223, 11, 20, 10, 19, 5, 5, 18, 5, 207, 218, 14, 1, 5, 21, 37, 34, 223, 209, 237, 233, 11, 28, 23, 34, 26, 223, 218,
+			241, 239, 3, 32, 37, 16, 241, 235, 246, 232, 243, 5, 22, 32, 23, 254, 228, 228, 234, 21, 29, 22, 254, 236, 242, 7, 7, 0, 251, 253,
+			236, 243, 39, 48, 248, 222, 252, 4, 247, 245, 254, 8, 23, 20, 5, 229, 242, 23, 20, 231, 204, 222, 44, 87, 26, 217, 210, 250, 12, 249,
+			253, 17, 23, 249, 236, 2, 16, 11, 239, 221, 3, 35, 24, 16, 219, 207, 19, 32, 23, 245, 206, 20, 47, 194, 209, 52, 71, 21, 212, 235,
+			5, 241, 231, 3, 2, 7, 42, 32, 13, 244, 182, 197, 255, 42, 70, 54, 253, 210, 212, 219, 0, 24, 29, 43, 0, 250, 7, 199, 217, 19,
+			14, 13, 30, 44, 5, 200, 198, 229, 15, 60, 71, 23, 206, 194, 223, 247, 31, 54, 26, 238, 244, 11, 3, 202, 235, 41, 26, 255, 23, 0,
+			206, 216, 255, 37, 33, 12, 0, 252, 255, 231, 224, 10, 40, 27, 5, 231, 232, 254, 243, 248, 1, 26, 46, 16, 236, 223, 200, 7, 66, 14,
+			228, 234, 2, 34, 17, 239, 244, 248, 0, 1, 246, 15, 30, 3, 232, 3, 0, 241, 250, 255, 12, 255, 253, 7, 250, 11, 43, 2, 224, 245,
+			236, 244, 21, 12, 255, 10, 10, 2, 1, 243, 236, 230, 0, 43, 44, 2, 214, 231, 11, 28, 254, 235, 5, 3, 252, 3, 7, 0, 4, 6,
+			233, 245, 29, 14, 233, 239, 7, 26, 31, 0, 235, 238, 235, 238, 232, 15, 99, 59, 218, 209, 236, 244, 231, 208, 20, 95, 80, 226, 174, 233,
+			18, 15, 3, 249, 9, 37, 2, 234, 226, 230, 7, 38, 46, 254, 200, 224, 36, 24, 207, 4, 62, 20, 233, 197, 243, 57, 31, 224, 217, 6,
+			42, 13, 202, 244, 70, 22, 206, 233, 11, 251, 6, 38, 13, 216, 235, 12, 14, 252, 233, 6, 38, 17, 228, 240, 10, 8, 5, 238, 252, 11,
+			251, 8, 25, 247, 224, 3, 17, 10, 251, 235, 255, 39, 5, 212, 0, 30, 5, 231, 232, 18, 43, 254, 231, 243, 1, 38, 14, 237, 226, 246,
+			14, 10, 3, 8, 7, 248, 252, 253, 250, 251, 15, 11, 243, 7, 13, 247, 1, 240, 239, 31, 29, 243, 238, 250, 244, 4, 12, 13, 13, 1,
+			247, 253, 248, 254, 242, 229, 30, 60, 15, 230, 231, 246, 245, 251, 5, 16, 253, 246, 16, 25, 3, 5, 240, 225, 252, 19, 8, 251, 6, 17,
+			246, 229, 21, 28, 237, 224, 3, 24, 249, 226, 14, 33, 6, 254, 30, 245, 206, 242, 17, 4, 245, 6, 27, 11, 246, 10, 251, 238, 254, 5,
+			252, 2, 16, 0, 251, 248, 6, 4, 244, 9, 8, 240, 252, 12, 12, 255, 251, 5, 4, 1, 241, 234, 255, 15, 29, 12, 249, 1, 248, 236,
+			249, 245, 16, 29, 12, 3, 249, 224, 219, 7, 51, 33, 240, 241, 255, 228, 254, 33, 0, 248, 13, 13, 0, 238, 244, 242, 241, 12, 37, 29,
+			253, 248, 243, 224, 244, 5, 9, 33, 25, 252, 245, 239, 228, 255, 13, 1, 21, 21, 247, 3, 11, 225, 227, 2, 22, 26, 253, 240, 9, 23,
+			242, 218, 244, 22, 33, 15, 246, 232, 235, 252, 30, 25, 0, 1, 3, 249, 241, 221, 234, 24, 42, 26, 252, 230, 247, 14, 247, 226, 3, 36,
+			15, 243, 250, 8, 253, 241, 0, 5, 20, 7, 238, 249, 250, 249, 9, 25, 10, 244, 4, 7, 238, 234, 6, 6, 248, 10, 10, 4, 30, 1,
+			225, 249, 3, 246, 252, 0, 4, 25, 9, 241, 14, 11, 235, 233, 244, 0, 15, 24, 16, 0, 251, 248, 242, 250, 253, 9, 255, 251, 31, 28,
+			238, 232, 18, 254, 211, 218, 34, 58, 8, 1, 5, 248, 232, 225, 238, 6, 32, 32, 37, 8, 215, 222, 249, 239, 254, 34, 31, 16, 2, 242,
+			215, 231, 14, 17, 10, 26, 14, 227, 235, 1, 2, 252, 14, 10, 249, 16, 21, 241, 216, 252, 4, 1, 25, 37, 9, 220, 223, 244, 6, 24,
+			25, 6, 217, 226, 29, 42, 7, 235, 231, 247, 20, 27, 6, 241, 221, 240, 17, 36, 39, 5, 208, 211, 15, 12, 255, 22, 22, 0, 230, 242,
+			8, 3, 255, 255, 11, 7, 254, 0, 3, 6, 247, 227, 6, 42, 0, 236, 246, 2, 3, 5, 12, 4, 250, 240, 250, 247, 0, 23, 16, 254,
+			4, 10, 237, 246, 8, 251, 252, 3, 7, 9, 11, 5, 236, 226, 1, 22, 9, 8, 3, 239, 251, 14, 249, 247, 13, 250, 247, 25, 8, 242,
+			11, 13, 245, 240, 2, 236, 255, 29, 20, 237, 228, 19, 26, 0, 245, 231, 240, 24, 25, 3, 7, 240, 226, 249, 4, 24, 44, 11, 227, 218,
+			234, 16, 9, 6, 21, 1, 248, 6, 5, 255, 234, 228, 253, 30, 38, 9, 247, 238, 244, 246, 252, 16, 24, 250, 234, 0, 3, 252, 21, 19,
+			1, 243, 229, 249, 21, 19, 244, 236, 5, 16, 4, 0, 13, 6, 235, 229, 251, 17, 27, 4, 237, 242, 11, 24, 14, 249, 219, 216, 5, 59,
+			40, 242, 222, 240, 255, 10, 16, 12, 0, 235, 231, 249, 21, 34, 9, 247, 236, 255, 16, 9, 252, 231, 237, 251, 25, 35, 16, 239, 224, 2,
+			2, 239, 11, 30, 6, 242, 255, 13, 6, 227, 230, 16, 20, 20, 5, 232, 1, 4, 233, 248, 13, 13, 24, 12, 234, 241, 6, 242, 226, 22,
+			48, 11, 242, 254, 248, 238, 236, 0, 22, 39, 10, 231, 235, 0, 249, 245, 13, 24, 19, 246, 253, 253, 243, 252, 244, 241, 21, 55, 19, 229,
+			225, 232, 255, 12, 18, 13, 8, 5, 243, 232, 1, 17, 3, 239, 0, 18, 7, 250, 255, 6, 245, 240, 3, 33, 25, 239, 222, 242, 9, 18,
+			10, 5, 4, 245, 235, 249, 9, 19, 11, 255, 252, 247, 2, 7, 243, 228, 0, 39, 29, 250, 242, 0, 247, 236, 254, 23, 169, 9, 63, 0,
+			14, 9, 244, 250, 10, 1, 244, 254, 255, 8, 16, 250, 252, 7, 7, 255, 245, 249, 252, 1, 5, 17, 18, 248, 234, 253, 2, 255, 8, 14,
+			0, 247, 0, 5, 10, 252, 239, 252, 11, 17, 255, 240, 246, 8, 15, 250, 3, 6, 252, 241, 251, 11, 9, 12, 10, 249, 243, 251, 255, 255,
+			254, 12, 16, 249, 241, 242, 5, 16, 4, 255, 2, 1, 246, 252, 1, 249, 0, 9, 10, 4, 251, 253, 247, 243, 9, 17, 1, 255, 6, 4,
+			247, 255, 3, 255, 16, 5, 0, 255, 240, 6, 12, 248, 241, 4, 21, 8, 255, 245, 243, 254, 1, 1, 253, 3, 13, 6, 252, 247, 233, 7,
+			8, 246, 1, 13, 9, 2, 255, 234, 243, 15, 21, 9, 3, 4, 239, 231, 254, 24, 17, 4, 254, 9, 2, 233, 244, 5, 12, 3, 9, 11,
+			251, 244, 250, 249, 4, 10, 254, 252, 8, 11, 246, 241, 247, 7, 20, 8, 249, 238, 244, 18, 31, 250, 232, 254, 12, 5, 253, 249, 0, 8,
+			1, 4, 1, 241, 250, 13, 0, 245, 7, 26, 5, 241, 245, 242, 249, 12, 26, 15, 253, 251, 3, 248, 230, 251, 18, 17, 6, 1, 254, 244,
+			254, 250, 234, 16, 35, 255, 241, 250, 18, 4, 231, 252, 27, 12, 251, 1, 2, 243, 243, 7, 10, 7, 7, 247, 227, 247, 15, 20, 15, 240,
+			228, 251, 15, 12, 13, 243, 243, 12, 245, 241, 6, 12, 9, 0, 10, 1, 234, 251, 14, 2, 1, 24, 14, 251, 231, 237, 16, 25, 10, 255,
+			250, 245, 254, 1, 255, 4, 12, 7, 243, 244, 255, 4, 254, 247, 0, 16, 4, 234, 226, 8, 35, 18, 244, 231, 249, 7, 243, 251, 34, 41,
+			248, 212, 245, 16, 14, 250, 3, 31, 16, 222, 227, 12, 39, 17, 241, 247, 0, 250, 255, 7, 12, 5, 0, 245, 244, 249, 0, 249, 3, 36,
+			18, 228, 231, 248, 246, 10, 19, 0, 8, 254, 230, 250, 5, 12, 14, 254, 0, 255, 0, 3, 250, 0, 254, 0, 5, 7, 10, 10, 246, 247,
+			1, 9, 9, 246, 244, 1, 14, 19, 14, 233, 236, 8, 4, 254, 252, 252, 12, 19, 4, 251, 248, 245, 253, 249, 234, 4, 34, 27, 5, 222,
+			237, 251, 240, 17, 21, 9, 253, 233, 238, 4, 22, 8, 0, 0, 14, 3, 226, 238, 25, 27, 5, 8, 14, 246, 216, 247, 28, 22, 250, 0,
+			3, 245, 244, 239, 2, 21, 9, 253, 5, 249, 239, 248, 254, 13, 6, 3, 250, 2, 17, 7, 241, 238, 0, 0, 23, 17, 245, 233, 11, 39,
+			247, 216, 242, 12, 23, 251, 252, 11, 28, 13, 230, 219, 229, 16, 42, 18, 5, 248, 243, 244, 248, 242, 245, 30, 36, 6, 238, 227, 241, 12,
+			19, 249, 253, 22, 15, 248, 247, 239, 246, 15, 19, 2, 254, 13, 1, 232, 238, 7, 15, 13, 8, 4, 254, 234, 233, 0, 14, 22, 8, 235,
+			247, 5, 5, 8, 248, 246, 8, 12, 255, 249, 253, 240, 2, 24, 12, 3, 8, 5, 227, 220, 0, 25, 25, 250, 7, 22, 245, 245, 240, 228,
+			6, 16, 9, 34, 18, 233, 242, 239, 242, 16, 24, 247, 255, 8, 1, 247, 238, 255, 254, 6, 27, 4, 247, 239, 3, 11, 247, 3, 8, 3,
+			0, 247, 247, 9, 22, 251, 248, 1, 2, 8, 249, 226, 7, 41, 255, 2, 18, 249, 236, 230, 250, 15, 16, 7, 11, 5, 244, 243, 239, 233,
+			6, 49, 15, 234, 252, 4, 237, 230, 9, 32, 25, 8, 239, 242, 241, 243, 0, 21, 23, 18, 0, 240, 245, 4, 242, 241, 16, 23, 14, 255,
+			10, 240, 221, 3, 24, 19, 253, 233, 252, 18, 7, 247, 237, 13, 20, 242, 231, 1, 12, 253, 13, 17, 255, 239, 0, 18, 246, 225, 3, 24,
+			7, 12, 10, 228, 236, 250, 24, 22, 242, 251, 254, 246, 25, 12, 232, 8, 10, 251, 250, 251, 8, 13, 240, 252, 17, 249, 0, 27, 16, 230,
+			201, 250, 44, 22, 228, 0, 38, 4, 222, 240, 14, 9, 255, 255, 34, 12, 209, 215, 30, 35, 237, 3, 27, 7, 248, 241, 229, 244, 17, 19,
+			1, 252, 11, 1, 221, 241, 24, 21, 247, 246, 15, 253, 232, 7, 31, 243, 220, 9, 57, 32, 226, 204, 254, 15, 241, 31, 40, 245, 241, 248,
+			5, 11, 233, 228, 27, 52, 254, 229, 2, 14, 233, 225, 251, 29, 47, 254, 223, 240, 250, 250, 249, 14, 16, 1, 0, 248, 249, 13, 247, 249,
+			243, 245, 28, 64, 6, 193, 252, 36, 246, 232, 5, 25, 5, 254, 11, 14, 245, 241, 239, 254, 19, 7, 18, 1, 224, 7, 7, 249, 255, 248,
+			0, 16, 7, 247, 250, 246, 242, 6, 17, 15, 255, 233, 232, 24, 32, 242, 3, 8, 246, 248, 7, 4, 252, 15, 0, 232, 252, 10, 2, 244,
+			24, 52, 0, 217, 231, 3, 7, 240, 254, 18, 35, 9, 246, 233, 223, 0, 2, 5, 25, 16, 20, 249, 211, 230, 13, 15, 11, 12, 13, 254,
+			243, 245, 234, 5, 29, 3, 243, 12, 34, 240, 196, 216, 15, 67, 51, 8, 226, 236, 247, 221, 236, 24, 47, 37, 251, 235, 238, 2, 246, 217,
+			248, 41, 43, 2, 250, 23, 250, 203, 208, 255, 50, 47, 20, 2, 225, 226, 225, 249, 25, 18, 15, 15, 2, 235, 233, 12, 21, 1, 237, 9,
+			14, 3, 241, 233, 252, 236, 27, 95, 248, 183, 241, 10, 238, 241, 35, 36, 2, 249, 245, 225, 255, 28, 255, 240, 7, 33, 0, 226, 241, 19,
+			17, 8, 248, 254, 247, 242, 20, 11, 245, 249, 11, 33, 248, 219, 228, 7, 39, 23, 245, 2, 19, 255, 224, 207, 8, 42, 24, 255, 17, 20,
+			213, 192, 221, 10, 47, 61, 49, 1, 211, 184, 217, 12, 35, 30, 27, 30, 253, 203, 198, 251, 42, 30, 4, 254, 251, 250, 238, 244, 11, 21,
+			24, 13, 237, 241, 254, 4, 5, 252, 21, 11, 0, 252, 241, 9, 5, 243, 5, 20, 228, 235, 31, 21, 236, 3, 13, 211, 225, 9, 36, 35,
+			9, 243, 207, 223, 14, 29, 11, 3, 9, 243, 247, 244, 246, 16, 5, 2, 13, 254, 9, 11, 235, 236, 25, 23, 255, 242, 253, 25, 20, 231,
+			244, 26, 252, 239, 254, 24, 48, 247, 197, 223, 27, 17, 253, 9, 248, 243, 28, 13, 222, 213, 249, 22, 18, 24, 4, 229, 209, 0, 48, 249,
+			226, 9, 39, 17, 248, 249, 246, 3, 11, 252, 234, 11, 36, 5, 242, 229, 14, 13, 13, 6, 245, 247, 8, 4, 5, 8, 251, 0, 246, 245,
+			12, 9, 0, 10, 251, 240, 2, 0, 224, 221, 21, 42, 21, 12, 242, 191, 221, 21, 26, 16, 3, 29, 10, 223, 234, 1, 14, 12, 5, 20,
+			0, 230, 5, 5, 243, 6, 32, 7, 240, 249, 244, 253, 21, 31, 4, 230, 249, 6, 226, 0, 18, 16, 247, 224, 1, 14, 241, 239, 5, 28,
+			21, 1, 240, 222, 251, 39, 26, 243, 226, 1, 9, 21, 241, 238, 17, 16, 13, 8, 6, 236, 213, 17, 39, 255, 253, 7, 3, 0, 238, 232,
+			246, 20, 40, 18, 2, 227, 198, 241, 26, 10, 13, 13, 6, 252, 253, 243, 247, 244, 14, 15, 247, 21, 36, 219, 204, 1, 41, 38, 231, 252,
+			41, 246, 179, 215, 46, 71, 24, 1, 230, 232, 249, 242, 246, 19, 40, 23, 244, 234, 253, 251, 230, 233, 15, 53, 31, 238, 233, 222, 236, 14,
+			33, 33, 0, 228, 228, 2, 14, 22, 0, 238, 3, 21, 12, 228, 235, 3, 0, 3, 33, 36, 227, 210, 244, 5, 16, 40, 21, 235, 246, 3,
+			239, 233, 255, 14, 0, 14, 26, 18, 239, 236, 240, 235, 2, 37, 12, 249, 250, 25, 253, 211, 239, 12, 55, 51, 249, 202, 175, 5, 70, 26,
+			239, 17, 33, 223, 190, 248, 46, 31, 244, 246, 245, 247, 19, 4, 0, 0, 241, 4, 4, 253, 10, 248, 221, 15, 53, 12, 239, 238, 227, 244,
+			252, 18, 32, 28, 14, 237, 205, 225, 21, 37, 5, 245, 33, 16, 205, 230, 24, 25, 16, 252, 4, 21, 238, 194, 18, 77, 20, 238, 222, 212,
+			215, 239, 26, 74, 58, 9, 238, 175, 172, 232, 49, 91, 42, 222, 214, 3, 10, 212, 195, 33, 125, 42, 184, 213, 255, 248, 19, 4, 254, 22,
+			47, 38, 190, 183, 34, 35, 236, 242, 46, 36, 241, 227, 237, 3, 6, 10, 4, 250, 5, 10, 242, 238, 255, 8, 3, 246, 244, 1, 255, 12,
+			39, 252, 201, 243, 21, 22, 7, 241, 244, 0, 19, 9, 234, 237, 27, 38, 6, 221, 222, 13, 7, 22, 14, 235, 16, 46, 12, 228, 209, 237,
+			4, 20, 50, 246, 234, 28, 0, 198, 225, 33, 47, 12, 238, 248, 252, 242, 241, 242, 253, 44, 21, 245, 7, 245, 224, 203, 0, 71, 52, 3,
+			237, 228, 3, 3, 245, 239, 20, 35, 3, 3, 219, 215, 38, 48, 255, 0, 248, 229, 234, 249, 4, 46, 48, 2, 215, 211, 221, 246, 30, 37,
+			32, 20, 253, 206, 208, 3, 28, 10, 249, 15, 38, 234, 236, 0, 245, 254, 249, 13, 22, 32, 25, 224, 214, 8, 13, 237, 250, 25, 32, 5,
+			236, 237, 247, 15, 9, 14, 0, 221, 251, 16, 1, 0, 10, 11, 248, 238, 240, 22, 5, 234, 251, 14, 41, 0, 217, 6, 8, 244, 233, 7,
+			20, 13, 7, 231, 0, 26, 9, 239, 254, 8, 252, 249, 248, 6, 25, 36, 253, 215, 228, 0, 16, 3, 25, 7, 9, 5, 223, 232, 247, 2,
+			13, 28, 11, 237, 246, 22, 0, 210, 225, 20, 51, 36, 0, 231, 253, 248, 216, 222, 16, 46, 51, 23, 241, 224, 241, 240, 234, 5, 26, 40,
+			10, 252, 244, 233, 240, 233, 246, 26, 61, 50, 237, 190, 208, 2, 27, 28, 39, 3, 230, 255, 242, 252, 40, 24, 223, 191, 3, 50, 27, 222,
+			248, 47, 15, 227, 211, 236, 255, 0, 38, 45, 9, 2, 209, 192, 250, 30, 34, 43, 50, 234, 184, 192, 253, 56, 22, 16, 42, 27, 233, 182,
+			208, 20, 28, 9, 15, 59, 12, 203, 194, 226, 4, 49, 61, 7, 234, 242, 245, 220, 231, 15, 25, 66, 28, 214, 242, 254, 211, 225, 49, 55,
+			27, 250, 243, 225, 191, 0, 42, 15, 57, 46, 207, 182, 230, 250, 14, 47, 42, 4, 229, 228, 229, 230, 10, 26, 27, 15, 255, 249, 241, 211,
+			238, 46, 50, 4, 7, 4, 220, 220, 3, 46, 18, 255, 26, 244, 195, 3, 31, 10, 36, 16, 197, 193, 20, 58, 28, 233, 240, 248, 11, 251,
+			191, 7, 77, 31, 206, 235, 13, 0, 243, 240, 21, 31, 3, 241, 250, 227, 237, 28, 36, 20, 238, 216, 240, 36, 11, 255, 37, 249, 221, 218,
+			2, 40, 39, 16, 248, 223, 234, 11, 19, 255, 3, 251, 246, 12, 1, 226, 25, 21, 220, 12, 26, 1, 244, 244, 250, 11, 14, 0, 250, 249,
+			1, 13, 227, 242, 17, 8, 5, 243, 0, 11, 255, 0, 2, 228, 255, 49, 4, 224, 255, 254, 0, 14, 7, 18, 0, 239, 238, 253, 3, 19,
+			19, 16, 13, 235, 215, 244, 28, 16, 242, 13, 29, 255, 213, 227, 0, 27, 24, 17, 3, 249, 236, 242, 13, 235, 253, 50, 12, 206, 243, 2,
+			5, 36, 37, 0, 225, 215, 0, 8, 242, 15, 34, 29, 247, 230, 0, 240, 231, 3, 6, 17, 45, 250, 222, 230, 7, 33, 254, 238, 3, 10,
+			9, 225, 241, 33, 29, 251, 219, 223, 34, 56, 242, 229, 12, 7, 252, 248, 255, 18, 22, 255, 248, 228, 245, 23, 23, 13, 0, 232, 235, 3,
+			13, 255, 254, 9, 248, 248, 232, 254, 28, 255, 252, 241, 254, 16, 250, 245, 247, 21, 17, 253, 9, 242, 234, 255, 14, 13, 25, 31, 239, 226,
+			246, 4, 5, 7, 29, 16, 253, 0, 235, 227, 251, 31, 15, 0, 7, 5, 239, 231, 229, 2, 29, 20, 253, 225, 248, 23, 239, 239, 11, 18,
+			18, 245, 226, 2, 3, 16, 20, 3, 249, 250, 239, 249, 13, 30, 17, 245, 252, 0, 250, 7, 2, 244, 250, 11, 10, 17, 14, 0, 240, 228,
+			248, 251, 4, 32, 28, 236, 219, 12, 21, 232, 233, 4, 25, 25, 253, 232, 244, 251, 255, 7, 6, 0, 9, 11, 247, 235, 8, 29, 11, 255,
+			251, 241, 252, 243, 6, 25, 6, 252, 0, 12, 254, 231, 250, 250, 5, 29, 24, 249, 235, 245, 227, 254, 36, 24, 4, 253, 2, 241, 221, 233,
+			24, 41, 2, 253, 17, 254, 232, 242, 254, 6, 11, 10, 5, 251, 6, 10, 239, 229, 248, 23, 19, 250, 240, 3, 14, 251, 3, 249, 240, 8,
+			11, 7, 9, 1, 228, 247, 9, 5, 10, 15, 15, 0, 240, 225, 251, 5, 13, 29, 31, 18, 235, 202, 228, 4, 21, 30, 24, 17, 243, 225,
+			239, 242, 236, 5, 31, 16, 24, 1, 222, 229, 241, 7, 36, 25, 238, 233, 2, 11, 0, 249, 249, 11, 14, 0, 253, 4, 5, 252, 246, 252,
+			16, 19, 1, 249, 241, 4, 1, 250, 12, 0, 255, 11, 11, 248, 241, 251, 250, 8, 21, 0, 249, 3, 254, 237, 243, 15, 13, 0, 249, 251,
+			10, 0, 250, 4, 250, 0, 14, 4, 247, 253, 2, 255, 6, 21, 2, 236, 254, 11, 255, 238, 244, 2, 11, 12, 19, 23, 241, 215, 224, 6,
+			36, 22, 0, 254, 8, 7, 248, 232, 247, 10, 13, 10, 8, 17, 9, 228, 226, 253, 8, 18, 14, 249, 243, 11, 2, 237, 0, 5, 250, 0,
+			3, 255, 255, 3, 251, 243, 255, 5, 4, 7, 6, 248, 254, 9, 245, 247, 18, 15, 2, 0, 249, 4, 10, 254, 6, 14, 250, 247, 5, 12,
+			0, 0, 3, 252, 0, 249, 239, 255, 7, 6, 7, 8, 250, 239, 241, 249, 6, 11, 3, 8, 1, 237, 249, 1, 9, 6, 0, 1, 6, 0,
+			249, 249, 1, 19, 18, 255, 248, 251, 246, 0, 14, 15, 3, 5, 5, 246, 239, 248, 2, 7, 5, 10, 15, 253, 241, 247, 247, 253, 3, 4,
+			10, 13, 251, 238, 245, 251, 5, 12, 254, 4, 12, 253, 250, 255, 254, 253, 0, 7, 7, 4, 254, 250, 1, 10, 3, 252, 0, 9, 3, 252,
+			252, 255, 5, 2, 4, 13, 5, 247, 241, 244, 0, 11, 12, 0, 0, 0, 152, 9, 27, 0, 229, 254, 18, 15, 23, 19, 255, 251, 251, 2,
+			4, 248, 244, 7, 12, 0, 11, 18, 11, 247, 229, 228, 236, 245, 5, 20, 17, 12, 8, 243, 231, 231, 219, 223, 230, 239, 2, 20, 24, 16,
+			12, 8, 245, 211, 201, 215, 222, 241, 2, 11, 27, 44, 35, 11, 239, 211, 203, 213, 234, 12, 51, 49, 28, 22, 15, 240, 234, 244, 242, 234,
+			232, 251, 17, 26, 8, 13, 14, 234, 233, 237, 229, 252, 5, 7, 11, 254, 0, 250, 235, 248, 1, 232, 216, 249, 21, 21, 6, 248, 253, 0,
+			10, 14, 3, 244, 240, 249, 242, 255, 7, 14, 7, 7, 16, 17, 9, 224, 211, 244, 13, 4, 18, 57, 20, 253, 0, 248, 219, 235, 255, 0,
+			7, 14, 9, 255, 248, 11, 28, 17, 16, 15, 241, 221, 213, 225, 254, 8, 16, 19, 27, 19, 254, 241, 232, 240, 248, 245, 21, 31, 10, 2,
+			0, 255, 236, 219, 233, 10, 36, 7, 254, 3, 16, 18, 250, 223, 234, 14, 19, 249, 242, 3, 20, 7, 233, 218, 231, 237, 253, 20, 17, 22,
+			29, 239, 215, 229, 236, 249, 253, 1, 250, 14, 38, 10, 253, 7, 6, 248, 227, 224, 237, 252, 16, 33, 16, 8, 30, 23, 5, 246, 232, 242,
+			245, 238, 236, 9, 34, 29, 0, 243, 246, 6, 255, 236, 238, 2, 4, 252, 250, 10, 22, 8, 7, 13, 249, 241, 1, 247, 245, 1, 252, 15,
+			28, 19, 24, 34, 16, 226, 218, 239, 236, 243, 24, 41, 18, 13, 18, 240, 211, 0, 21, 234, 240, 29, 19, 252, 12, 8, 242, 227, 240, 16,
+			23, 16, 10, 248, 244, 242, 224, 235, 10, 21, 7, 22, 55, 42, 241, 220, 223, 212, 225, 236, 249, 46, 61, 32, 6, 0, 216, 205, 229, 23,
+			56, 32, 253, 4, 237, 220, 243, 240, 234, 7, 35, 39, 12, 255, 248, 243, 252, 243, 236, 246, 4, 253, 246, 0, 248, 250, 255, 1, 16, 27,
+			248, 211, 223, 254, 13, 13, 18, 14, 6, 251, 248, 252, 7, 245, 231, 246, 16, 11, 251, 2, 22, 24, 11, 246, 224, 241, 0, 253, 254, 1,
+			252, 244, 6, 254, 233, 252, 1, 231, 248, 249, 13, 45, 38, 13, 5, 233, 198, 218, 235, 239, 21, 67, 39, 14, 24, 19, 241, 211, 206, 226,
+			246, 15, 36, 48, 31, 21, 255, 241, 243, 248, 227, 230, 2, 6, 251, 14, 27, 7, 225, 219, 226, 221, 238, 31, 33, 17, 15, 16, 1, 212,
+			203, 215, 206, 233, 28, 47, 49, 46, 35, 244, 228, 228, 225, 221, 213, 244, 18, 30, 41, 19, 8, 255, 254, 245, 244, 250, 242, 224, 241, 2,
+			16, 31, 44, 17, 238, 226, 223, 249, 17, 252, 235, 0, 5, 16, 35, 15, 7, 225, 222, 248, 0, 243, 229, 3, 23, 32, 33, 9, 226, 218,
+			239, 247, 243, 12, 9, 12, 30, 36, 28, 245, 226, 242, 231, 227, 246, 0, 11, 34, 27, 15, 8, 9, 237, 201, 200, 249, 5, 5, 33, 2,
+			8, 61, 15, 219, 217, 252, 248, 228, 217, 237, 15, 249, 5, 34, 29, 44, 20, 243, 243, 179, 133, 207, 22, 38, 70, 100, 72, 16, 251, 197,
+			172, 210, 225, 236, 37, 90, 41, 252, 254, 238, 234, 222, 241, 5, 3, 9, 9, 18, 24, 235, 172, 196, 238, 29, 72, 49, 0, 214, 206, 233,
+			234, 218, 250, 32, 64, 11, 238, 13, 7, 217, 203, 219, 234, 6, 28, 61, 56, 19, 12, 245, 195, 183, 209, 243, 16, 34, 40, 25, 10, 0,
+			238, 218, 1, 9, 229, 240, 37, 34, 27, 0, 0, 0, 242, 227, 229, 246, 1, 29, 33, 24, 247, 219, 231, 254, 250, 0, 2, 254, 13, 19,
+			235, 236, 0, 0, 231, 236, 34, 23, 23, 40, 6, 237, 239, 239, 222, 225, 26, 60, 11, 246, 251, 249, 250, 249, 251, 23, 34, 22, 6, 9,
+			242, 200, 200, 226, 0, 17, 14, 45, 61, 75, 19, 189, 182, 194, 202, 231, 26, 26, 60, 77, 8, 239, 241, 222, 204, 212, 2, 53, 37, 6,
+			5, 1, 242, 240, 246, 224, 240, 22, 39, 27, 0, 35, 23, 247, 60, 18, 198, 215, 238, 237, 255, 49, 57, 10, 1, 5, 239, 219, 216, 208,
+			19, 93, 53, 30, 14, 226, 162, 155, 209, 0, 24, 77, 79, 44, 22, 255, 217, 170, 173, 228, 29, 63, 60, 68, 67, 25, 222, 190, 191, 197,
+			229, 21, 54, 40, 26, 58, 43, 229, 199, 248, 13, 206, 219, 9, 41, 82, 59, 20, 14, 13, 249, 188, 203, 251, 245, 246, 23, 30, 241, 0,
+			19, 16, 13, 6, 0, 228, 203, 220, 250, 2, 26, 19, 16, 17, 1, 239, 232, 240, 199, 198, 34, 83, 51, 31, 11, 200, 215, 4, 225, 206,
+			231, 4, 30, 39, 57, 55, 248, 241, 13, 236, 207, 211, 229, 5, 35, 64, 61, 50, 26, 219, 180, 190, 248, 253, 232, 29, 37, 12, 2, 249,
+			182, 197, 242, 241, 26, 58, 54, 30, 242, 207, 199, 204, 225, 18, 33, 31, 46, 38, 21, 241, 189, 170, 190, 213, 13, 66, 59, 25, 241, 220,
+			223, 214, 206, 215, 248, 6, 18, 4, 255, 10, 238, 232, 7, 236, 194, 225, 13, 21, 41, 22, 250, 216, 220, 247, 217, 192, 19, 88, 241, 251,
+			24, 233, 214, 232, 246, 229, 238, 48, 64, 253, 42, 57, 238, 194, 221, 215, 220, 220, 240, 68, 54, 1, 244, 208, 230, 245, 211, 233, 16, 7,
+			236, 233, 4, 14, 1, 230, 205, 212, 30, 47, 220, 215, 38, 11, 218, 216, 254, 20, 238, 3, 38, 48, 81, 53, 231, 171, 178, 250, 23, 35,
+			69, 50, 254, 243, 5, 214, 206, 253, 30, 36, 33, 12, 227, 228, 230, 232, 212, 204, 248, 247, 12, 16, 16, 26, 29, 220, 192, 3, 255, 242,
+			6, 2, 213, 242, 45, 32, 255, 253, 0, 2, 251, 249, 17, 33, 36, 17, 7, 252, 6, 73, 57, 22, 233, 225, 227, 231, 251, 235, 230, 1,
+			37, 64, 55, 250, 173, 177, 193, 237, 9, 56, 45, 247, 249, 13, 217, 206, 233, 225, 237, 42, 79, 50, 27, 226, 197, 240, 4, 23, 14, 244,
+			20, 33, 246, 231, 223, 204, 1, 105, 100, 38, 246, 220, 227, 211, 212, 225, 243, 43, 71, 65, 80, 42, 221, 190, 222, 217, 196, 223, 48, 80,
+			54, 45, 23, 15, 217, 147, 153, 253, 92, 81, 254, 16, 57, 5, 203, 183, 202, 225, 227, 7, 10, 49, 118, 75, 236, 220, 229, 220, 220, 224,
+			7, 90, 79, 26, 35, 247, 193, 199, 221, 11, 32, 61, 56, 6, 250, 243, 245, 234, 213, 216, 230, 25, 52, 66, 61, 10, 227, 192, 185, 194,
+			225, 241, 240, 57, 96, 54, 26, 254, 219, 182, 199, 222, 253, 16, 255, 2, 37, 32, 253, 249, 249, 221, 226, 253, 14, 29, 50, 48, 12, 194,
+			205, 27, 23, 238, 0, 38, 231, 199, 30, 5, 223, 16, 49, 60, 37, 224, 190, 208, 206, 227, 249, 5, 57, 57, 16, 0, 227, 223, 234, 216,
+			241, 16, 27, 31, 52, 17, 223, 236, 240, 201, 248, 29, 247, 27, 79, 11, 241, 16, 25, 9, 25, 16, 183, 196, 9, 47, 25, 252, 5, 29,
+			13, 247, 243, 243, 219, 207, 221, 9, 38, 46, 18, 248, 0, 253, 249, 220, 241, 29, 15, 17, 9, 22, 27, 12, 11, 233, 239, 19, 20, 254,
+			240, 9, 49, 16, 22, 26, 247, 232, 2, 254, 216, 16, 28, 239, 249, 18, 23, 231, 197, 230, 233, 1, 34, 10, 12, 25, 7, 242, 212, 221,
+			251, 20, 32, 32, 0, 31, 11, 247, 237, 225, 251, 33, 15, 240, 252, 22, 33, 22, 239, 255, 22, 34, 243, 18, 24, 237, 18, 219, 231, 6,
+			224, 3, 16, 24, 26, 246, 242, 207, 210, 0, 56, 55, 241, 228, 217, 209, 245, 235, 240, 250, 33, 21, 23, 57, 24, 227, 187, 200, 24, 37,
+			3, 21, 16, 254, 30, 15, 216, 211, 217, 218, 252, 50, 103, 34, 189, 225, 246, 235, 20, 8, 214, 222, 17, 51, 18, 5, 230, 188, 205, 27,
+			68, 26, 224, 230, 3, 24, 31, 13, 243, 224, 211, 226, 3, 42, 70, 55, 242, 190, 185, 226, 229, 225, 35, 55, 43, 16, 233, 15, 24, 231,
+			156, 200, 8, 245, 0, 19, 23, 13, 10, 253, 11, 4, 219, 233, 238, 220, 228, 8, 55, 45, 41, 50, 22, 246, 193, 162, 194, 250, 0, 7,
+			44, 76, 34, 238, 40, 39, 222, 175, 160, 227, 0, 11, 50, 58, 35, 9, 231, 191, 188, 209, 234, 14, 35, 58, 48, 43, 2, 211, 191, 198,
+			206, 12, 25, 27, 25, 240, 244, 0, 249, 253, 250, 245, 37, 34, 5, 252, 251, 245, 236, 225, 240, 17, 57, 66, 251, 235, 14, 233, 193, 221,
+			38, 51, 36, 33, 56, 44, 223, 185, 181, 188, 211, 235, 23, 44, 87, 94, 8, 217, 6, 238, 183, 214, 3, 10, 12, 44, 36, 16, 15, 253,
+			189, 192, 9, 252, 225, 248, 48, 52, 239, 252, 7, 5, 28, 30, 213, 208, 7, 220, 206, 0, 52, 42, 14, 249, 194, 219, 29, 68, 24, 241,
+			247, 237, 0, 7, 4, 195, 212, 3, 5, 59, 89, 26, 229, 217, 214, 212, 237, 28, 89, 50, 255, 245, 215, 212, 233, 234, 251, 6, 13, 15,
+			239, 204, 190, 216, 253, 26, 57, 75, 47, 214, 212, 227, 217, 245, 10, 43, 18, 240, 252, 8, 29, 26, 25, 247, 253, 11, 204, 190, 5, 14,
+			46, 59, 77, 72, 251, 164, 165, 178, 220, 24, 19, 23, 97, 90, 25, 245, 206, 160, 156, 189, 227, 41, 69, 92, 114, 28, 191, 133, 163, 211,
+			6, 33, 29, 59, 49, 15, 1, 242, 187, 201, 242, 253, 11, 31, 38, 248, 20, 46, 255, 233, 217, 220, 231, 8, 9, 242, 249, 28, 54, 251,
+			217, 253, 3, 0, 13, 239, 255, 38, 15, 3, 248, 0, 27, 24, 0, 4, 11, 234, 212, 226, 237, 10, 43, 22, 1, 254, 16, 6, 213, 181,
+			200, 208, 3, 72, 107, 54, 248, 194, 188, 203, 218, 235, 3, 51, 79, 55, 37, 240, 237, 203, 175, 233, 26, 51, 49, 5, 234, 235, 238, 226,
+			6, 13, 213, 242, 38, 17, 9, 0, 242, 30, 75, 21, 218, 197, 196, 235, 243, 44, 90, 39, 50, 32, 250, 5, 246, 189, 187, 240, 234, 231,
+			37, 70, 56, 234, 201, 219, 226, 11, 40, 24, 254, 251, 221, 216, 245, 13, 20, 18, 25, 234, 228, 18, 248, 253, 12, 21, 17, 2, 246, 214,
+			223, 37, 32, 255, 18, 35, 2, 220, 0, 9, 229, 32, 28, 237, 225, 236, 250, 11, 16, 241, 235, 7, 3, 251, 247, 6, 237, 196, 215, 250,
+			7, 4, 248, 52, 90, 13, 187, 221, 45, 246, 194, 228, 19, 30, 32, 48, 17, 21, 12, 218, 224, 6, 5, 234, 242, 248, 14, 43, 34, 17,
+			246, 194, 236, 248, 251, 7, 51, 14, 214, 20, 31, 249, 235, 212, 223, 253, 21, 46, 19, 227, 226, 248, 15, 39, 21, 1, 5, 227, 218, 255,
+			245, 7, 10, 16, 1, 2, 19, 250, 242, 233, 3, 255, 248, 18, 252, 225, 227, 0, 10, 20, 45, 255, 224, 243, 248, 241, 224, 253, 42, 27,
+			17, 28, 24, 227, 203, 223, 0, 254, 9, 16, 30, 45, 8, 16, 0, 212, 228, 254, 14, 16, 28, 9, 252, 227, 224, 231, 249, 25, 55, 18,
+			241, 227, 226, 252, 249, 249, 0, 4, 28, 27, 255, 253, 4, 249, 184, 168, 238, 37, 39, 50, 75, 33, 204, 197, 180, 202, 0, 247, 249, 56,
+			78, 25, 233, 215, 200, 187, 236, 5, 247, 28, 96, 107, 29, 234, 216, 150, 131, 193, 21, 57, 71, 70, 41, 8, 225, 186, 176, 239, 34, 45,
+			26, 10, 14, 243, 246, 213, 192, 21, 97, 87, 34, 250, 204, 204, 207, 224, 6, 26, 21, 30, 41, 6, 220, 208, 222, 242, 225, 2, 59, 41,
+			21, 5, 204, 196, 198, 212, 246, 5, 14, 20, 15, 41, 25, 243, 209, 204, 236, 227, 6, 72, 75, 60, 254, 200, 231, 18, 251, 207, 252, 55,
+			48, 7, 225, 1, 28, 236, 227, 12, 44, 38, 254, 239, 12, 11, 238, 215, 237, 12, 33, 0, 250, 21, 7, 13, 247, 199, 208, 228, 0, 26,
+			12, 39, 53, 9, 226, 221, 232, 245, 242, 243, 28, 42, 29, 22, 236, 224, 6, 1, 222, 227, 6, 10, 250, 248, 3, 17, 5, 234, 234, 249,
+			247, 237, 252, 6, 254, 248, 225, 5, 47, 25, 6, 254, 221, 226, 19, 9, 238, 255, 32, 33, 37, 30, 238, 236, 0, 228, 220, 18, 5, 246,
+			14, 40, 22, 244, 239, 239, 221, 213, 218, 225, 6, 45, 8, 1, 46, 30, 220, 200, 225, 241, 252, 252, 6, 28, 24, 17, 7, 9, 12, 252,
+			222, 230, 18, 1, 249, 26, 0, 14, 32, 26, 33, 12, 229, 216, 210, 228, 34, 36, 31, 37, 6, 244, 253, 241, 240, 236, 229, 8, 29, 35,
+			39, 19, 226, 233, 17, 13, 252, 241, 247, 253, 250, 8, 15, 2, 245, 2, 9, 244, 228, 234, 247, 4, 10, 25, 45, 22, 4, 250, 227, 201,
+			197, 234, 0, 13, 50, 41, 12, 0, 231, 207, 238, 252, 249, 4, 32, 45, 23, 19, 44, 1, 220, 251, 6, 4, 16, 8, 7, 35, 39, 25,
+			11, 255, 234, 237, 5, 8, 0, 242, 224, 245, 11, 18, 22, 254, 232, 227, 222, 229, 255, 0, 1, 254, 236, 5, 44, 32, 249, 219, 217, 237,
+			247, 254, 11, 25, 37, 34, 0, 231, 252, 12, 234, 221, 1, 26, 47, 29, 253, 251, 250, 254, 244, 252, 15, 28, 9, 8, 3, 240, 246, 251,
+			246, 248, 255, 0, 255, 251, 246, 243, 240, 236, 241, 244, 1, 13, 6, 248, 239, 225, 224, 243, 250, 244, 1, 14, 34, 41, 17, 248, 247, 3,
+			0, 242, 246, 7, 19, 19, 10, 9, 21, 25, 9, 251, 254, 5, 0, 3, 9, 251, 242, 254, 255, 1, 248, 242, 9, 15, 0, 250, 242, 227,
+			219, 237, 252, 7, 0, 20, 29, 248, 215, 226, 235, 238, 246, 3, 18, 14, 4, 248, 248, 250, 246, 248, 248, 0, 19, 18, 2, 0, 12, 11,
+			253, 236, 250, 17, 9, 251, 244, 5, 20, 20, 5, 5, 7, 1, 251, 248, 63, 10, 39, 0, 13, 248, 245, 253, 241, 11, 3, 240, 16, 34,
+			30, 0, 248, 250, 240, 9, 254, 13, 21, 14, 253, 236, 234, 1, 24, 0, 229, 248, 4, 9, 250, 0, 255, 246, 251, 231, 247, 0, 3, 243,
+			245, 244, 248, 2, 248, 244, 3, 12, 240, 4, 0, 244, 4, 34, 255, 235, 252, 12, 1, 9, 11, 29, 26, 228, 229, 241, 254, 17, 23, 0,
+			250, 3, 249, 217, 237, 3, 15, 10, 0, 255, 10, 225, 210, 25, 39, 6, 2, 255, 250, 8, 4, 2, 7, 39, 44, 3, 223, 214, 2, 48,
+			25, 223, 234, 14, 19, 246, 206, 228, 45, 36, 16, 245, 236, 229, 228, 248, 43, 57, 13, 239, 243, 243, 245, 7, 29, 29, 24, 245, 228, 238,
+			247, 14, 49, 43, 227, 216, 0, 34, 0, 237, 12, 51, 24, 212, 212, 14, 10, 226, 252, 28, 253, 235, 235, 245, 254, 250, 228, 0, 19, 241,
+			232, 254, 1, 231, 240, 249, 5, 21, 18, 253, 252, 236, 237, 6, 23, 17, 24, 3, 236, 7, 9, 2, 17, 14, 254, 248, 2, 6, 15, 7,
+			249, 9, 26, 251, 234, 10, 41, 16, 230, 227, 12, 31, 252, 247, 30, 48, 6, 219, 241, 6, 251, 1, 15, 20, 11, 230, 223, 252, 10, 0,
+			241, 249, 255, 243, 236, 246, 7, 1, 16, 11, 241, 222, 238, 14, 22, 11, 5, 9, 13, 2, 241, 222, 6, 41, 26, 249, 253, 9, 247, 230,
+			245, 12, 28, 254, 238, 248, 0, 227, 246, 15, 8, 249, 222, 226, 244, 28, 16, 254, 6, 0, 250, 233, 2, 8, 251, 0, 17, 4, 226, 230,
+			7, 15, 0, 229, 254, 45, 15, 233, 1, 42, 21, 233, 247, 30, 48, 19, 233, 220, 24, 54, 19, 6, 250, 223, 226, 251, 7, 30, 22, 16,
+			251, 227, 203, 236, 20, 27, 14, 244, 242, 239, 250, 12, 12, 0, 4, 2, 255, 16, 12, 247, 243, 255, 13, 24, 242, 220, 5, 28, 248, 210,
+			242, 24, 14, 8, 244, 242, 17, 7, 231, 244, 16, 27, 22, 9, 238, 6, 249, 226, 254, 43, 30, 242, 219, 233, 1, 6, 7, 4, 5, 245,
+			245, 254, 13, 249, 248, 35, 247, 240, 248, 0, 11, 25, 36, 3, 5, 6, 213, 237, 33, 26, 2, 241, 242, 224, 246, 4, 35, 4, 241, 28,
+			246, 206, 241, 20, 31, 18, 17, 244, 218, 217, 248, 57, 42, 226, 217, 2, 19, 230, 229, 24, 60, 15, 225, 222, 252, 245, 231, 18, 42, 18,
+			253, 3, 250, 229, 236, 10, 27, 11, 243, 248, 1, 239, 223, 7, 37, 10, 228, 235, 12, 3, 237, 0, 27, 24, 239, 243, 249, 251, 5, 9,
+			48, 50, 245, 220, 0, 47, 25, 12, 22, 26, 12, 237, 231, 249, 28, 1, 244, 253, 11, 247, 234, 243, 246, 12, 25, 3, 242, 233, 2, 16,
+			22, 254, 231, 12, 27, 0, 253, 30, 15, 243, 237, 235, 21, 44, 226, 196, 241, 252, 230, 239, 239, 247, 7, 243, 246, 8, 2, 243, 243, 254,
+			22, 10, 240, 246, 27, 0, 236, 7, 23, 11, 7, 235, 229, 34, 53, 239, 209, 255, 33, 29, 8, 226, 250, 36, 16, 205, 216, 1, 21, 2,
+			2, 18, 13, 242, 219, 227, 14, 25, 10, 251, 254, 14, 250, 253, 255, 15, 30, 248, 237, 6, 5, 233, 210, 0, 59, 33, 234, 245, 3, 5,
+			2, 15, 41, 54, 254, 222, 227, 236, 40, 57, 26, 250, 245, 249, 251, 16, 17, 254, 238, 247, 10, 16, 246, 241, 36, 16, 180, 189, 31, 27,
+			2, 13, 245, 198, 196, 15, 50, 43, 248, 222, 250, 239, 231, 8, 45, 32, 9, 4, 221, 206, 221, 8, 48, 30, 0, 234, 249, 225, 230, 27,
+			67, 32, 233, 232, 239, 242, 17, 6, 3, 37, 18, 233, 204, 235, 21, 6, 248, 2, 30, 15, 216, 205, 254, 42, 25, 255, 236, 246, 253, 250,
+			252, 26, 13, 7, 18, 16, 253, 227, 235, 25, 25, 243, 229, 31, 52, 252, 229, 250, 246, 243, 28, 50, 254, 224, 238, 25, 38, 254, 236, 255,
+			26, 20, 216, 218, 24, 38, 249, 252, 248, 226, 245, 242, 18, 58, 36, 239, 233, 241, 235, 249, 252, 6, 22, 35, 254, 217, 197, 12, 57, 55,
+			24, 238, 235, 231, 9, 25, 11, 244, 214, 251, 18, 236, 178, 226, 20, 255, 237, 0, 8, 243, 211, 219, 14, 54, 43, 1, 7, 246, 227, 233,
+			34, 87, 62, 242, 204, 225, 14, 27, 18, 39, 45, 20, 210, 195, 215, 9, 53, 22, 248, 18, 14, 206, 189, 0, 52, 56, 11, 233, 244, 246,
+			229, 231, 238, 28, 8, 204, 10, 54, 248, 230, 240, 231, 8, 30, 17, 237, 210, 247, 60, 70, 0, 212, 21, 38, 242, 226, 26, 70, 35, 244,
+			231, 234, 251, 5, 27, 34, 26, 0, 222, 225, 226, 5, 76, 59, 217, 168, 233, 23, 1, 248, 29, 53, 11, 240, 213, 231, 11, 21, 6, 5,
+			4, 240, 231, 224, 228, 5, 2, 238, 232, 229, 244, 247, 241, 242, 3, 13, 9, 238, 224, 255, 3, 8, 24, 250, 247, 20, 20, 247, 244, 255,
+			29, 7, 214, 247, 52, 32, 218, 246, 15, 0, 245, 246, 11, 14, 0, 252, 18, 241, 215, 17, 58, 35, 0, 6, 7, 245, 228, 222, 6, 65,
+			60, 231, 200, 235, 25, 252, 242, 18, 31, 6, 250, 0, 9, 5, 216, 1, 62, 22, 1, 250, 9, 27, 28, 33, 32, 0, 229, 243, 248, 16,
+			14, 15, 6, 7, 249, 219, 227, 249, 11, 20, 4, 229, 241, 7, 0, 242, 254, 225, 185, 253, 58, 16, 216, 223, 232, 244, 246, 235, 13, 40,
+			8, 220, 201, 211, 8, 55, 18, 239, 241, 250, 254, 2, 18, 30, 22, 44, 22, 217, 193, 7, 70, 52, 28, 248, 218, 234, 238, 19, 37, 13,
+			254, 16, 1, 215, 222, 14, 28, 28, 14, 248, 240, 11, 0, 250, 18, 18, 255, 222, 241, 20, 29, 252, 233, 254, 7, 235, 231, 21, 38, 238,
+			226, 238, 236, 3, 25, 23, 11, 231, 234, 2, 1, 26, 43, 22, 223, 220, 241, 238, 254, 19, 33, 1, 234, 186, 207, 34, 47, 16, 245, 3,
+			10, 232, 204, 245, 60, 48, 235, 248, 16, 2, 0, 16, 11, 25, 37, 12, 254, 250, 251, 48, 53, 251, 236, 9, 25, 14, 247, 2, 250, 223,
+			172, 236, 25, 38, 47, 0, 174, 182, 237, 5, 5, 26, 47, 0, 204, 190, 199, 254, 72, 54, 251, 221, 236, 252, 18, 12, 12, 25, 23, 8,
+			234, 231, 19, 19, 239, 233, 25, 30, 0, 0, 21, 9, 241, 212, 222, 22, 45, 22, 217, 228, 18, 13, 237, 220, 233, 18, 33, 246, 201, 221,
+			1, 14, 2, 8, 11, 228, 228, 8, 20, 14, 18, 24, 252, 15, 21, 21, 29, 15, 0, 48, 74, 247, 223, 35, 57, 6, 18, 45, 27, 241,
+			237, 216, 247, 7, 249, 239, 252, 4, 5, 241, 245, 233, 226, 249, 255, 252, 227, 248, 25, 0, 186, 237, 43, 241, 226, 13, 31, 238, 178, 185,
+			17, 51, 3, 254, 25, 0, 205, 212, 255, 22, 39, 25, 254, 244, 246, 226, 254, 48, 40, 19, 235, 202, 225, 19, 19, 23, 46, 32, 236, 169,
+			168, 234, 51, 74, 66, 25, 212, 146, 199, 26, 83, 74, 35, 241, 196, 176, 224, 32, 92, 79, 12, 242, 207, 205, 0, 66, 111, 79, 242, 192,
+			199, 4, 63, 82, 48, 242, 227, 195, 210, 12, 71, 49, 251, 221, 185, 208, 242, 3, 34, 48, 6, 205, 202, 235, 15, 38, 22, 4, 228, 236,
+			250, 226, 229, 19, 34, 1, 251, 15, 11, 250, 212, 211, 10, 48, 26, 253, 0, 245, 235, 1, 11, 25, 11, 13, 20, 249, 216, 221, 13, 58,
+			30, 239, 201, 230, 244, 0, 0, 6, 251, 13, 11, 228, 225, 243, 29, 47, 13, 252, 251, 228, 223, 24, 57, 15, 0, 0, 2, 247, 236, 6,
+			22, 7, 0, 251, 243, 236, 238, 250, 9, 37, 35, 234, 207, 248, 17, 5, 255, 11, 1, 223, 205, 235, 48, 38, 8, 238, 221, 236, 5, 49,
+			45, 1, 233, 253, 8, 4, 17, 41, 35, 8, 246, 240, 5, 35, 33, 4, 23, 10, 232, 230, 243, 11, 28, 36, 4, 250, 247, 199, 220, 4,
+			28, 45, 15, 187, 187, 11, 17, 226, 240, 20, 11, 235, 202, 219, 238, 249, 241, 41, 54, 219, 207, 235, 248, 15, 18, 5, 34, 35, 247, 206,
+			247, 48, 54, 4, 219, 250, 18, 1, 1, 12, 253, 255, 18, 228, 226, 39, 31, 222, 244, 238, 236, 5, 9, 21, 42, 6, 206, 208, 234, 8,
+			73, 103, 1, 185, 201, 217, 2, 51, 64, 78, 42, 192, 152, 226, 31, 47, 65, 78, 42, 179, 132, 228, 36, 40, 60, 44, 22, 249, 218, 185,
+			236, 44, 32, 39, 53, 16, 218, 183, 226, 29, 48, 38, 235, 230, 10, 0, 226, 247, 27, 25, 253, 217, 239, 3, 250, 234, 239, 20, 233, 226,
+			2, 24, 38, 6, 192, 236, 31, 236, 230, 9, 26, 50, 10, 193, 186, 238, 26, 29, 19, 21, 1, 226, 205, 223, 250, 38, 45, 27, 251, 214,
+			190, 235, 33, 50, 37, 253, 216, 212, 238, 5, 23, 8, 21, 18, 242, 217, 207, 7, 39, 38, 6, 227, 246, 33, 37, 252, 9, 35, 1, 211,
+			243, 23, 42, 20, 246, 8, 19, 222, 199, 10, 70, 34, 230, 205, 224, 25, 14, 226, 12, 51, 245, 198, 1, 37, 254, 233, 254, 19, 43, 10,
+			208, 218, 9, 31, 40, 8, 223, 233, 8, 240, 226, 2, 57, 34, 241, 3, 255, 244, 9, 38, 42, 18, 251, 0, 255, 235, 8, 30, 4, 6,
+			16, 254, 240, 249, 11, 41, 247, 227, 252, 2, 2, 5, 254, 14, 26, 10, 228, 227, 243, 11, 19, 253, 243, 0, 4, 238, 240, 3, 18, 255,
+			229, 246, 246, 14, 245, 214, 240, 12, 8, 246, 246, 253, 8, 253, 250, 253, 9, 28, 0, 248, 255, 254, 248, 16, 10, 228, 247, 255, 248, 5,
+			255, 248, 0, 249, 247, 241, 238, 239, 242, 2, 28, 24, 7, 237, 211, 226, 19, 36, 33, 29, 4, 251, 221, 221, 17, 42, 30, 0, 252, 239,
+			220, 5, 17, 20, 13, 13, 241, 226, 241, 0, 7, 21, 32, 35, 16, 253, 254, 23, 2, 253, 29, 39, 16, 242, 242, 24, 14, 0, 12, 19,
+			0, 221, 225, 10, 35, 15, 249, 8, 7, 221, 222, 3, 17, 26, 8, 242, 255, 251, 237, 219, 1, 35, 40, 243, 189, 202, 235, 12, 16, 25,
+			33, 255, 195, 183, 222, 252, 51, 38, 5, 0, 233, 180, 184, 11, 90, 100, 41, 219, 208, 1, 239, 230, 34, 68, 46, 255, 227, 201, 220, 5,
+			19, 47, 38, 251, 201, 181, 243, 23, 25, 21, 21, 6, 235, 202, 196, 10, 58, 33, 253, 240, 236, 246, 18, 2, 244, 9, 36, 16, 238, 243,
+			4, 14, 24, 1, 223, 4, 43, 255, 221, 9, 31, 4, 233, 253, 33, 17, 7, 52, 50, 2, 230, 231, 248, 1, 3, 52, 62, 14, 219, 197,
+			250, 47, 14, 234, 16, 38, 245, 197, 205, 240, 17, 47, 44, 12, 194, 183, 241, 25, 44, 15, 254, 255, 227, 199, 229, 23, 40, 46, 6, 207,
+			186, 213, 249, 16, 41, 42, 43, 235, 160, 194, 27, 89, 51, 243, 238, 237, 213, 213, 14, 72, 62, 11, 240, 225, 221, 3, 46, 44, 28, 0,
+			228, 189, 213, 20, 26, 32, 31, 1, 229, 199, 215, 11, 36, 9, 248, 10, 2, 238, 0, 14, 20, 6, 12, 8, 244, 242, 9, 32, 2, 235,
+			2, 12, 1, 254, 12, 18, 0, 240, 252, 241, 243, 39, 33, 239, 213, 246, 14, 0, 247, 252, 38, 22, 199, 190, 241, 31, 28, 244, 237, 2,
+			246, 214, 254, 55, 27, 239, 239, 13, 14, 248, 8, 0, 0, 11, 243, 242, 245, 5, 33, 249, 225, 250, 20, 248, 222, 22, 56, 6, 201, 218,
+			14, 30, 7, 251, 23, 34, 246, 204, 233, 24, 54, 34, 6, 2, 246, 234, 228, 245, 39, 38, 6, 242, 233, 240, 3, 15, 23, 31, 9, 233,
+			243, 254, 0, 2, 23, 40, 26, 252, 232, 244, 245, 0, 37, 28, 250, 236, 223, 227, 251, 5, 21, 49, 26, 235, 202, 215, 11, 39, 19, 253,
+			235, 249, 249, 224, 227, 16, 43, 14, 245, 232, 239, 255, 254, 11, 19, 6, 238, 241, 5, 12, 0, 242, 245, 251, 2, 15, 252, 235, 254, 14,
+			253, 244, 27, 27, 237, 235, 1, 28, 12, 243, 249, 6, 5, 0, 0, 6, 1, 11, 1, 244, 1, 248, 238, 2, 21, 14, 5, 0, 0, 11,
+			252, 216, 220, 26, 61, 16, 244, 0, 4, 232, 225, 245, 32, 63, 29, 240, 228, 214, 228, 18, 38, 32, 5, 224, 223, 242, 252, 247, 28, 56,
+			11, 219, 206, 213, 251, 24, 36, 36, 32, 1, 219, 214, 232, 10, 51, 50, 21, 229, 212, 239, 250, 5, 38, 52, 25, 232, 194, 223, 7, 20,
+			28, 39, 18, 237, 214, 236, 249, 0, 30, 35, 14, 230, 219, 241, 251, 255, 12, 21, 243, 215, 234, 0, 7, 254, 1, 254, 248, 248, 252, 255,
+			251, 245, 235, 255, 46, 53, 3, 233, 243, 249, 241, 240, 0, 40, 65, 29, 214, 220, 255, 1, 255, 39, 52, 10, 231, 212, 230, 15, 43, 28,
+			252, 245, 243, 250, 8, 251, 0, 26, 37, 10, 233, 219, 236, 14, 39, 36, 5, 235, 243, 252, 239, 0, 34, 20, 247, 240, 8, 14, 237, 241,
+			13, 19, 1, 254, 5, 253, 237, 233, 0, 23, 18, 252, 237, 245, 4, 8, 250, 255, 6, 1, 232, 222, 3, 40, 39, 0, 229, 242, 247, 237,
+			248, 15, 32, 24, 235, 221, 238, 254, 2, 244, 0, 30, 14, 232, 217, 232, 0, 11, 18, 8, 9, 1, 222, 235, 11, 7, 16, 23, 249, 242,
+			250, 246, 8, 40, 9, 224, 245, 19, 22, 5, 0, 1, 255, 253, 0, 14, 12, 254, 254, 17, 12, 229, 232, 0, 11, 10, 7, 251, 242, 246,
+			231, 230, 8, 26, 23, 5, 226, 222, 252, 23, 23, 7, 254, 250, 4, 21, 21, 23, 31, 26, 0, 239, 249, 13, 20, 16, 18, 30, 17, 250,
+			0, 17, 11, 247, 245, 236, 0, 25, 13, 235, 237, 253, 249, 245, 240, 238, 246, 247, 250, 253, 0, 0, 244, 244, 239, 242, 5, 13, 254, 240,
+			236, 253, 5, 252, 251, 9, 6, 235, 217, 241, 11, 12, 10, 15, 18, 254, 234, 247, 20, 10, 245, 2, 22, 17, 250, 242, 4, 1, 245, 231,
+			249, 26, 26, 4, 6, 9, 243, 228, 245, 16, 33, 19, 240, 235, 4, 18, 247, 235, 8, 33, 11, 242, 237, 251, 12, 11, 8, 15, 10, 1,
+			254, 253, 245, 255, 20, 31, 18, 252, 244, 253, 7, 23, 29, 23, 0, 239, 235, 247, 17, 26, 17, 3, 249, 242, 229, 235, 0, 17, 13, 255,
+			245, 246, 245, 239, 242, 11, 27, 12, 245, 231, 241, 246, 248, 10, 34, 26, 246, 233, 241, 254, 255, 247, 22, 50, 21, 234, 231, 4, 17, 12,
+			7, 0, 248, 246, 254, 10, 0, 237, 252, 17, 9, 247, 225, 237, 13, 11, 0, 1, 247, 227, 222, 235, 4, 25, 15, 0, 238, 222, 215, 234,
+			3, 26, 22, 0, 35, 9, 17, 0, 236, 5, 4, 238, 4, 25, 5, 241, 231, 8, 35, 1, 223, 21, 16, 5, 243, 242, 12, 32, 16, 240,
+			211, 207, 18, 20, 252, 2, 247, 8, 0, 17, 23, 40, 29, 243, 207, 190, 244, 45, 62, 5, 244, 212, 237, 251, 232, 235, 35, 66, 40, 247,
+			203, 203, 3, 55, 45, 26, 229, 225, 254, 240, 212, 243, 45, 54, 35, 235, 168, 203, 40, 70, 46, 233, 199, 3, 20, 6, 0, 13, 7, 16,
+			214, 200, 8, 46, 51, 12, 187, 184, 21, 72, 22, 235, 231, 17, 47, 16, 226, 200, 1, 46, 5, 214, 221, 16, 43, 10, 230, 249, 27, 3,
+			225, 5, 35, 16, 8, 209, 200, 9, 5, 64, 80, 217, 195, 243, 254, 53, 18, 218, 226, 5, 255, 252, 240, 243, 38, 54, 240, 226, 28, 3,
+			246, 7, 9, 6, 242, 194, 236, 39, 51, 22, 226, 238, 9, 15, 234, 245, 24, 29, 2, 218, 194, 245, 36, 49, 24, 241, 225, 8, 31, 10,
+			6, 244, 233, 234, 247, 245, 25, 35, 16, 255, 234, 213, 10, 17, 0, 255, 12, 7, 3, 250, 0, 254, 12, 22, 235, 229, 222, 251, 47, 56,
+			5, 247, 204, 226, 1, 5, 20, 17, 52, 47, 208, 169, 228, 13, 37, 33, 43, 246, 206, 208, 255, 46, 13, 2, 13, 5, 2, 233, 230, 5,
+			37, 20, 243, 219, 219, 8, 45, 17, 8, 254, 236, 215, 245, 29, 56, 42, 242, 215, 211, 243, 252, 29, 61, 48, 224, 161, 201, 11, 59, 58,
+			32, 232, 221, 220, 244, 19, 46, 12, 0, 241, 223, 13, 36, 253, 240, 13, 245, 241, 248, 242, 249, 23, 1, 8, 20, 1, 255, 255, 0, 250,
+			254, 253, 28, 11, 244, 249, 227, 230, 35, 34, 1, 230, 216, 1, 49, 32, 241, 219, 213, 10, 58, 28, 9, 255, 230, 244, 2, 237, 251, 18,
+			0, 14, 16, 250, 237, 225, 230, 16, 32, 7, 3, 12, 2, 241, 231, 23, 57, 12, 230, 236, 247, 249, 4, 239, 229, 14, 8, 0, 9, 3,
+			21, 15, 222, 243, 25, 19, 17, 248, 250, 255, 224, 232, 22, 37, 10, 245, 240, 230, 4, 20, 231, 239, 40, 41, 252, 231, 254, 13, 4, 243,
+			254, 26, 2, 235, 217, 235, 5, 18, 26, 9, 2, 15, 15, 238, 235, 8, 33, 254, 237, 250, 12, 255, 217, 232, 14, 12, 10, 253, 252, 15,
+			24, 252, 238, 246, 9, 9, 14, 44, 11, 223, 202, 229, 15, 35, 39, 245, 236, 231, 234, 254, 43, 52, 1, 175, 170, 20, 70, 63, 13, 201,
+			11, 35, 248, 242, 14, 5, 35, 8, 187, 181, 240, 24, 40, 18, 229, 23, 18, 238, 242, 42, 48, 31, 232, 132, 203, 68, 61, 5, 236, 230,
+			14, 31, 242, 5, 12, 6, 210, 206, 13, 70, 39, 254, 241, 235, 249, 241, 232, 245, 23, 51, 19, 199, 200, 239, 46, 34, 20, 26, 20, 246,
+			226, 241, 0, 240, 20, 45, 248, 230, 241, 237, 16, 24, 230, 222, 2, 250, 17, 26, 8, 8, 252, 199, 231, 41, 64, 60, 5, 234, 249, 9,
+			218, 239, 28, 246, 202, 206, 228, 20, 33, 3, 10, 32, 7, 242, 4, 242, 39, 74, 16, 6, 220, 191, 227, 16, 39, 31, 235, 179, 189, 244,
+			15, 64, 101, 32, 195, 180, 210, 26, 78, 51, 41, 253, 196, 212, 228, 0, 53, 41, 251, 232, 218, 217, 254, 23, 9, 26, 29, 246, 226, 248,
+			17, 15, 2, 245, 2, 19, 241, 238, 13, 9, 25, 252, 241, 249, 251, 12, 252, 1, 251, 232, 248, 9, 253, 11, 8, 4, 6, 240, 5, 22,
+			21, 8, 3, 244, 252, 253, 248, 248, 213, 228, 17, 39, 18, 25, 0, 242, 241, 224, 235, 29, 28, 30, 6, 239, 3, 220, 222, 9, 37, 62,
+			26, 215, 211, 247, 17, 13, 227, 246, 0, 252, 251, 245, 2, 54, 67, 242, 197, 233, 17, 10, 43, 1, 199, 233, 26, 19, 0, 241, 7, 23,
+			2, 234, 225, 0, 0, 251, 255, 18, 43, 1, 219, 238, 28, 51, 34, 221, 210, 238, 248, 5, 19, 6, 254, 1, 254, 242, 9, 7, 6, 241,
+			238, 252, 251, 11, 33, 51, 22, 255, 225, 201, 229, 13, 27, 24, 8, 238, 236, 243, 240, 253, 0, 18, 20, 255, 1, 19, 35, 13, 230, 233,
+			249, 255, 27, 9, 251, 248, 238, 220, 220, 13, 63, 45, 250, 230, 187, 217, 45, 54, 39, 254, 231, 247, 17, 6, 7, 34, 45, 247, 185, 174,
+			211, 252, 21, 40, 50, 24, 236, 217, 227, 18, 52, 57, 26, 237, 221, 233, 248, 9, 235, 252, 28, 4, 248, 221, 236, 1, 11, 21, 18, 9,
+			1, 247, 11, 34, 241, 217, 235, 26, 41, 3, 236, 5, 4, 248, 212, 194, 13, 90, 59, 10, 202, 206, 1, 249, 0, 18, 37, 28, 249, 210,
+			212, 5, 33, 24, 37, 26, 227, 220, 233, 243, 14, 26, 14, 251, 254, 240, 214, 239, 30, 41, 41, 253, 222, 221, 227, 15, 56, 49, 10, 245,
+			222, 241, 245, 6, 255, 218, 243, 26, 19, 0, 247, 238, 32, 34, 243, 234, 236, 22, 39, 25, 4, 238, 230, 243, 232, 242, 9, 9, 34, 3,
+			236, 238, 255, 254, 20, 14, 10, 14, 16, 6, 204, 221, 11, 24, 31, 255, 241, 249, 248, 255, 246, 0, 24, 24, 3, 228, 236, 0, 250, 4,
+			15, 14, 16, 247, 232, 250, 28, 21, 247, 239, 2, 15, 8, 236, 215, 13, 31, 254, 221, 240, 40, 42, 244, 216, 255, 40, 16, 233, 222, 10,
+			55, 34, 220, 209, 232, 253, 247, 251, 53, 45, 1, 229, 219, 246, 32, 37, 243, 240, 3, 19, 255, 225, 219, 13, 22, 14, 5, 254, 3, 10,
+			238, 210, 243, 30, 40, 27, 16, 242, 246, 227, 229, 8, 18, 21, 14, 237, 238, 255, 241, 0, 253, 9, 36, 24, 230, 224, 0, 31, 35, 3,
+			238, 249, 3, 232, 222, 239, 11, 34, 15, 5, 249, 21, 10, 241, 239, 4, 30, 9, 225, 232, 13, 12, 246, 215, 242, 28, 29, 34, 15, 255,
+			246, 240, 230, 235, 30, 35, 254, 233, 235, 250, 8, 7, 249, 33, 39, 0, 228, 231, 240, 0, 245, 7, 22, 23, 15, 248, 218, 238, 12, 42,
+			28, 243, 239, 231, 221, 13, 32, 12, 0, 8, 249, 240, 231, 1, 37, 23, 14, 255, 224, 234, 237, 0, 24, 35, 251, 227, 251, 17, 2, 250,
+			253, 14, 27, 253, 226, 239, 13, 9, 255, 254, 24, 25, 242, 230, 231, 238, 10, 15, 22, 254, 253, 242, 10, 21, 237, 0, 19, 10, 11, 5,
+			227, 227, 13, 27, 255, 228, 245, 13, 18, 13, 234, 230, 13, 22, 254, 241, 4, 28, 20, 251, 235, 241, 5, 2, 248, 252, 252, 19, 12, 252,
+			251, 19, 3, 236, 5, 1, 252, 254, 243, 242, 13, 13, 249, 249, 2, 17, 28, 7, 246, 253, 249, 235, 6, 254, 5, 6, 254, 252, 6, 17,
+			242, 248, 244, 254, 39, 30, 224, 215, 255, 24, 27, 3, 228, 255, 18, 253, 229, 241, 17, 14, 31, 248, 234, 254, 15, 252, 11, 4, 0, 10,
+			9, 235, 213, 248, 34, 31, 242, 235, 242, 23, 7, 238, 252, 17, 3, 255, 2, 14, 37, 245, 220, 229, 9, 34, 15, 248, 244, 241, 238, 9,
+			36, 22, 241, 228, 230, 230, 18, 33, 23, 3, 234, 234, 22, 15, 237, 250, 16, 39, 21, 250, 226, 229, 251, 1, 15, 7, 6, 0, 238, 249,
+			254, 227, 241, 9, 33, 54, 30, 216, 198, 232, 11, 58, 59, 26, 255, 207, 199, 235, 0, 26, 44, 14, 234, 221, 242, 247, 245, 5, 26, 40,
+			9, 235, 224, 1, 23, 19, 5, 1, 0, 1, 252, 251, 255, 5, 25, 255, 217, 224, 249, 23, 16, 2, 241, 233, 255, 25, 10, 9, 11, 243,
+			3, 27, 14, 254, 252, 7, 225, 204, 8, 46, 20, 248, 214, 234, 15, 3, 253, 20, 21, 11, 246, 227, 0, 25, 28, 11, 227, 206, 247, 37,
+			42, 4, 247, 20, 240, 196, 207, 24, 51, 42, 8, 225, 239, 244, 250, 10, 24, 27, 7, 229, 209, 235, 15, 56, 40, 8, 229, 226, 232, 244,
+			6, 36, 12, 242, 227, 242, 11, 44, 29, 1, 0, 237, 230, 242, 6, 10, 28, 10, 207, 218, 11, 21, 31, 28, 235, 243, 254, 251, 251, 6,
+			32, 12, 252, 226, 0, 35, 249, 223, 230, 253, 29, 25, 243, 219, 2, 22, 7, 10, 245, 14, 27, 246, 235, 1, 0, 9, 12, 242, 239, 5,
+			4, 254, 247, 0, 10, 4, 250, 250, 30, 5, 220, 241, 9, 26, 26, 248, 242, 16, 20, 231, 212, 243, 15, 56, 18, 232, 247, 250, 238, 250,
+			246, 30, 32, 255, 239, 232, 232, 16, 26, 11, 26, 11, 254, 236, 226, 241, 5, 1, 250, 22, 18, 244, 225, 0, 24, 23, 19, 247, 242, 4,
+			0, 244, 253, 2, 22, 254, 223, 236, 14, 14, 250, 0, 24, 27, 250, 214, 222, 34, 58, 26, 221, 203, 253, 25, 19, 0, 240, 0, 11, 223,
+			243, 249, 11, 34, 252, 248, 14, 4, 25, 5, 223, 3, 14, 20, 0, 207, 227, 9, 21, 28, 9, 240, 243, 250, 0, 248, 2, 33, 22, 231,
+			210, 242, 37, 40, 15, 0, 238, 242, 6, 1, 228, 251, 19, 25, 255, 244, 242, 245, 239, 254, 15, 13, 18, 6, 253, 16, 7, 251, 251, 246,
+			254, 1, 3, 251, 231, 241, 1, 11, 36, 31, 243, 230, 13, 245, 247, 10, 254, 5, 26, 247, 215, 242, 11, 31, 28, 0, 246, 0, 239, 234,
+			242, 7, 16, 25, 0, 241, 253, 12, 0, 255, 250, 8, 29, 253, 221, 239, 16, 29, 15, 228, 216, 253, 25, 28, 255, 247, 255, 0, 22, 249,
+			237, 253, 8, 254, 252, 14, 19, 250, 251, 241, 252, 0, 13, 21, 5, 245, 233, 5, 9, 13, 12, 239, 214, 233, 18, 33, 29, 246, 232, 255,
+			31, 2, 255, 3, 250, 0, 252, 249, 8, 11, 240, 247, 0, 247, 7, 4, 246, 9, 28, 18, 246, 218, 238, 25, 29, 6, 249, 244, 238, 246,
+			255, 10, 38, 24, 241, 234, 240, 249, 16, 11, 20, 0, 240, 223, 232, 254, 33, 38, 14, 248, 220, 242, 12, 16, 17, 255, 243, 253, 0, 15,
+			12, 247, 1, 236, 218, 255, 25, 33, 27, 250, 234, 239, 0, 4, 242, 254, 39, 44, 0, 219, 206, 246, 20, 7, 243, 250, 30, 35, 237, 224,
+			255, 22, 30, 8, 5, 254, 5, 247, 229, 215, 252, 20, 28, 0, 234, 250, 3, 245, 245, 13, 28, 52, 18, 225, 224, 3, 23, 1, 254, 13,
+			2, 229, 206, 231, 13, 39, 19, 10, 0, 231, 236, 3, 17, 31, 28, 9, 247, 225, 217, 237, 5, 36, 37, 16, 237, 222, 227, 3, 15, 31,
+			10, 243, 246, 236, 18, 31, 247, 237, 6, 23, 2, 237, 240, 239, 5, 26, 2, 255, 2, 1, 13, 242, 242, 253, 0, 28, 29, 249, 226, 243,
+			2, 9, 255, 11, 18, 8, 242, 226, 232, 11, 22, 20, 13, 253, 244, 233, 228, 248, 15, 47, 42, 243, 228, 244, 252, 20, 21, 0, 10, 231,
+			207, 254, 26, 14, 254, 244, 248, 24, 13, 245, 224, 252, 29, 24, 0, 235, 2, 19, 26, 249, 231, 247, 17, 255, 236, 253, 7, 0, 248, 0,
+			2, 251, 0, 255, 14, 29, 12, 239, 238, 253, 8, 27, 9, 245, 237, 240, 1, 8, 3, 13, 5, 243, 236, 1, 2, 252, 4, 25, 6, 4,
+			255, 249, 255, 239, 10, 27, 254, 244, 246, 241, 0, 19, 4, 3, 9, 247, 1, 16, 240, 244, 248, 250, 6, 4, 13, 13, 249, 239, 255, 14,
+			23, 9, 251, 237, 246, 2, 28, 11, 245, 222, 243, 6, 18, 4, 1, 237, 1, 11, 7, 251, 246, 8, 29, 8, 2, 253, 236, 229, 5, 25,
+			13, 16, 245, 225, 232, 1, 15, 20, 7, 246, 4, 245, 0, 13, 1, 249, 8, 14, 18, 246, 211, 246, 25, 31, 0, 253, 249, 231, 0, 2,
+			7, 31, 16, 249, 228, 211, 241, 31, 35, 16, 2, 241, 241, 237, 255, 27, 21, 6, 243, 242, 252, 3, 14, 8, 1, 2, 248, 234, 2, 3,
+			13, 7, 230, 227, 14, 11, 13, 19, 2, 254, 2, 236, 244, 21, 19, 0, 255, 0, 250, 241, 233, 252, 18, 19, 19, 7, 241, 245, 239, 233,
+			9, 29, 28, 8, 253, 241, 238, 231, 242, 11, 43, 27, 5, 237, 223, 243, 15, 14, 11, 16, 0, 241, 247, 0, 245, 245, 245, 20, 38, 16,
+			243, 226, 236, 10, 21, 1, 247, 255, 0, 22, 3, 237, 0, 0, 10, 15, 1, 5, 248, 240, 1, 4, 249, 248, 255, 255, 2, 3, 2, 17,
+			8, 251, 235, 253, 24, 25, 7, 236, 239, 5, 254, 248, 6, 0, 8, 0, 246, 250, 4, 9, 17, 11, 245, 244, 246, 247, 14, 11, 242, 238,
+			6, 29, 30, 4, 232, 245, 253, 248, 0, 251, 0, 24, 23, 243, 220, 235, 7, 37, 32, 254, 238, 242, 255, 1, 7, 6, 8, 253, 235, 238,
+			7, 6, 7, 12, 2, 13, 248, 223, 11, 40, 14, 243, 240, 229, 228, 5, 23, 40, 44, 246, 206, 221, 240, 12, 28, 15, 8, 3, 0, 238,
+			230, 0, 37, 30, 251, 239, 254, 2, 246, 243, 246, 6, 22, 12, 1, 253, 246, 240, 251, 7, 15, 10, 4, 9, 248, 246, 242, 249, 255, 6,
+			15, 13, 7, 247, 244, 253, 0, 2, 16, 23, 251, 231, 244, 6, 9, 13, 252, 239, 251, 252, 252, 10, 13, 8, 254, 252, 243, 5, 13, 9,
+			2, 3, 247, 245, 6, 9, 0, 0, 95, 9, 10, 0, 223, 218, 13, 232, 202, 44, 18, 246, 1, 244, 0, 22, 52, 32, 248, 255, 36, 26,
+			5, 21, 28, 252, 15, 227, 225, 204, 189, 5, 237, 242, 244, 207, 2, 240, 254, 62, 56, 11, 255, 52, 34, 28, 42, 53, 11, 173, 209, 255,
+			13, 243, 224, 183, 191, 210, 26, 43, 246, 24, 39, 22, 254, 249, 20, 84, 64, 3, 236, 201, 192, 225, 0, 12, 29, 26, 238, 204, 243, 250,
+			246, 62, 46, 45, 246, 226, 187, 209, 13, 63, 75, 9, 216, 233, 204, 203, 8, 41, 40, 7, 17, 217, 206, 25, 50, 43, 55, 40, 1, 207,
+			187, 212, 21, 10, 6, 226, 188, 207, 239, 0, 10, 60, 74, 57, 5, 229, 9, 65, 53, 46, 238, 206, 218, 245, 203, 148, 179, 4, 40, 1,
+			2, 212, 223, 56, 105, 101, 51, 2, 46, 16, 20, 23, 201, 177, 209, 225, 228, 207, 161, 205, 11, 240, 26, 59, 72, 73, 51, 47, 32, 17,
+			9, 49, 251, 229, 204, 201, 207, 167, 188, 16, 244, 248, 27, 252, 241, 20, 64, 91, 52, 23, 28, 6, 224, 239, 250, 242, 231, 238, 216, 183,
+			243, 45, 46, 239, 11, 0, 5, 11, 7, 29, 225, 248, 38, 0, 198, 220, 23, 25, 7, 23, 17, 225, 0, 44, 32, 8, 6, 21, 238, 204,
+			226, 223, 242, 236, 6, 247, 204, 211, 38, 96, 39, 249, 10, 20, 51, 50, 12, 0, 234, 227, 0, 251, 202, 184, 223, 5, 247, 218, 251, 15,
+			7, 60, 34, 10, 47, 30, 7, 243, 13, 42, 242, 241, 233, 209, 200, 240, 27, 8, 229, 253, 19, 217, 253, 58, 245, 235, 47, 49, 25, 229,
+			253, 14, 19, 10, 1, 230, 215, 231, 10, 238, 204, 249, 12, 254, 14, 52, 16, 230, 33, 45, 236, 29, 33, 31, 223, 164, 239, 30, 234, 218,
+			253, 242, 238, 239, 22, 19, 40, 18, 46, 46, 16, 248, 244, 250, 234, 247, 11, 239, 206, 177, 227, 32, 38, 11, 240, 14, 33, 37, 0, 240,
+			250, 35, 74, 30, 214, 169, 215, 39, 24, 23, 210, 196, 0, 236, 4, 33, 2, 35, 48, 28, 251, 184, 226, 59, 41, 243, 253, 223, 231, 239,
+			232, 250, 4, 76, 79, 2, 218, 204, 231, 17, 46, 32, 237, 230, 236, 250, 224, 214, 2, 19, 49, 34, 251, 182, 220, 49, 65, 53, 18, 13,
+			242, 229, 19, 2, 216, 221, 255, 26, 253, 207, 159, 202, 10, 60, 52, 19, 12, 22, 47, 24, 235, 3, 55, 65, 54, 188, 160, 178, 211, 250,
+			40, 19, 221, 231, 211, 205, 32, 70, 61, 50, 34, 16, 247, 240, 253, 31, 33, 4, 0, 171, 200, 235, 251, 219, 209, 60, 14, 233, 242, 17,
+			38, 45, 59, 63, 250, 207, 21, 28, 196, 225, 22, 7, 178, 186, 59, 238, 199, 244, 24, 37, 17, 26, 58, 250, 7, 66, 21, 242, 5, 19,
+			240, 199, 178, 235, 38, 35, 201, 141, 166, 40, 104, 47, 234, 5, 74, 53, 22, 1, 5, 64, 70, 3, 185, 146, 191, 0, 4, 192, 211, 223,
+			19, 6, 228, 2, 33, 66, 84, 84, 36, 229, 0, 21, 42, 19, 220, 244, 180, 179, 238, 227, 211, 158, 226, 61, 32, 31, 25, 18, 47, 72,
+			85, 27, 21, 18, 0, 210, 187, 230, 218, 189, 231, 232, 2, 238, 218, 6, 48, 65, 27, 19, 39, 37, 251, 12, 59, 26, 231, 199, 218, 214,
+			175, 220, 50, 12, 224, 211, 254, 14, 28, 62, 81, 45, 19, 21, 1, 201, 215, 54, 16, 241, 202, 154, 168, 3, 22, 7, 253, 15, 28, 21,
+			32, 37, 51, 26, 57, 36, 0, 234, 225, 218, 177, 220, 5, 250, 237, 188, 191, 253, 36, 48, 57, 39, 11, 23, 29, 20, 19, 37, 36, 0,
+			213, 245, 225, 244, 201, 195, 230, 237, 12, 9, 232, 187, 19, 45, 64, 66, 22, 19, 11, 32, 49, 27, 1, 224, 217, 211, 210, 221, 212, 218,
+			248, 31, 222, 255, 34, 26, 21, 32, 59, 17, 10, 45, 5, 246, 227, 231, 13, 237, 200, 213, 240, 210, 241, 47, 34, 25, 251, 1, 38, 26,
+			14, 20, 45, 6, 216, 231, 246, 220, 203, 254, 33, 244, 238, 252, 0, 229, 2, 60, 27, 38, 9, 5, 252, 255, 2, 27, 237, 220, 16, 44,
+			202, 178, 244, 254, 28, 33, 244, 177, 35, 47, 6, 255, 247, 55, 39, 251, 227, 253, 25, 22, 243, 233, 223, 20, 246, 219, 229, 3, 35, 254,
+			17, 217, 0, 5, 30, 64, 245, 194, 255, 38, 24, 241, 3, 10, 236, 224, 33, 17, 231, 213, 9, 52, 255, 0, 5, 211, 230, 35, 61, 21,
+			174, 231, 17, 254, 0, 24, 12, 228, 27, 2, 236, 229, 9, 61, 35, 12, 241, 207, 250, 253, 47, 22, 202, 226, 226, 4, 251, 251, 5, 18,
+			16, 11, 23, 0, 229, 236, 40, 60, 17, 216, 229, 224, 13, 31, 7, 229, 226, 254, 31, 4, 218, 234, 22, 46, 21, 17, 217, 207, 8, 38,
+			20, 234, 238, 19, 2, 232, 5, 19, 12, 249, 3, 9, 21, 234, 235, 18, 4, 10, 13, 245, 212, 227, 28, 11, 237, 0, 1, 252, 235, 22,
+			17, 15, 22, 19, 27, 250, 5, 1, 223, 242, 10, 20, 221, 219, 230, 225, 17, 24, 10, 231, 24, 64, 16, 242, 224, 16, 47, 36, 1, 224,
+			209, 247, 4, 251, 234, 243, 251, 253, 15, 6, 254, 236, 7, 55, 44, 254, 201, 246, 53, 20, 251, 231, 236, 23, 19, 5, 180, 217, 23, 22,
+			247, 237, 240, 22, 17, 9, 2, 248, 20, 30, 62, 14, 238, 2, 245, 245, 222, 240, 254, 223, 0, 233, 202, 12, 12, 29, 251, 34, 54, 250,
+			1, 10, 28, 7, 19, 27, 237, 208, 233, 8, 246, 232, 2, 245, 224, 9, 5, 243, 210, 33, 55, 249, 229, 254, 68, 4, 251, 35, 32, 27,
+			6, 10, 227, 164, 5, 59, 232, 168, 248, 247, 223, 247, 13, 10, 228, 50, 53, 16, 11, 18, 66, 0, 6, 23, 0, 252, 222, 236, 218, 188,
+			235, 243, 7, 227, 229, 18, 11, 19, 32, 50, 39, 17, 41, 14, 225, 242, 25, 28, 191, 214, 7, 249, 206, 229, 255, 4, 238, 59, 7, 209,
+			35, 57, 11, 211, 34, 54, 20, 224, 224, 242, 0, 0, 32, 210, 213, 10, 31, 9, 211, 4, 254, 43, 37, 235, 230, 251, 7, 46, 1, 220,
+			228, 48, 47, 213, 233, 233, 10, 48, 6, 232, 206, 249, 36, 13, 5, 235, 5, 13, 2, 2, 210, 0, 56, 51, 231, 208, 32, 5, 241, 247,
+			5, 233, 255, 34, 241, 205, 241, 32, 44, 41, 234, 200, 11, 29, 20, 18, 217, 237, 19, 7, 252, 236, 250, 3, 16, 32, 236, 223, 254, 255,
+			42, 12, 215, 237, 29, 38, 250, 244, 244, 246, 31, 17, 221, 234, 33, 28, 224, 210, 2, 32, 51, 2, 215, 228, 5, 40, 8, 232, 227, 13,
+			48, 254, 239, 230, 225, 58, 45, 1, 183, 220, 23, 42, 34, 170, 226, 70, 56, 237, 203, 255, 33, 50, 19, 221, 216, 230, 20, 14, 228, 3,
+			0, 255, 233, 245, 9, 5, 35, 254, 13, 5, 35, 18, 2, 237, 254, 15, 17, 232, 195, 235, 15, 253, 232, 237, 229, 28, 43, 25, 225, 235,
+			38, 50, 42, 232, 0, 4, 28, 13, 238, 208, 242, 10, 13, 214, 213, 238, 22, 246, 215, 255, 15, 52, 37, 246, 38, 32, 46, 3, 212, 6,
+			6, 30, 232, 196, 215, 241, 5, 196, 236, 35, 19, 34, 245, 246, 39, 30, 14, 7, 45, 34, 249, 228, 179, 216, 20, 48, 247, 203, 208, 249,
+			12, 7, 22, 35, 34, 26, 13, 14, 244, 249, 12, 0, 3, 242, 201, 208, 214, 237, 9, 48, 30, 10, 227, 231, 27, 59, 67, 36, 27, 247,
+			222, 233, 237, 234, 245, 237, 223, 252, 227, 214, 4, 220, 251, 55, 81, 57, 3, 239, 244, 33, 54, 36, 22, 3, 241, 199, 188, 195, 228, 8,
+			2, 240, 0, 222, 246, 235, 27, 80, 36, 32, 60, 36, 237, 206, 247, 48, 39, 11, 230, 173, 172, 246, 22, 250, 244, 243, 3, 255, 3, 239,
+			24, 45, 48, 24, 21, 12, 241, 252, 4, 253, 3, 247, 5, 227, 190, 227, 230, 38, 46, 238, 250, 15, 8, 21, 228, 249, 71, 8, 246, 247,
+			245, 226, 235, 35, 39, 211, 5, 21, 22, 239, 215, 24, 34, 17, 12, 217, 211, 0, 6, 231, 217, 255, 17, 29, 255, 255, 250, 40, 45, 20,
+			33, 22, 3, 4, 218, 235, 221, 236, 2, 225, 225, 216, 233, 2, 7, 23, 26, 48, 21, 13, 28, 14, 35, 34, 30, 4, 202, 236, 211, 224,
+			251, 215, 225, 224, 233, 1, 253, 15, 16, 36, 56, 53, 52, 16, 15, 3, 0, 1, 245, 238, 216, 223, 220, 225, 219, 224, 252, 5, 24, 11,
+			5, 22, 47, 40, 4, 24, 32, 51, 11, 230, 246, 248, 220, 219, 225, 222, 217, 254, 242, 209, 252, 30, 75, 32, 11, 2, 25, 63, 27, 253,
+			246, 251, 4, 249, 238, 213, 219, 230, 222, 0, 240, 229, 18, 16, 13, 0, 35, 45, 32, 14, 23, 33, 12, 233, 244, 10, 236, 212, 247, 211,
+			189, 235, 22, 252, 249, 10, 13, 32, 29, 14, 23, 27, 57, 51, 254, 210, 213, 5, 247, 239, 235, 229, 213, 251, 3, 200, 234, 37, 48, 52,
+			11, 252, 2, 8, 36, 35, 15, 248, 247, 20, 235, 212, 236, 243, 1, 1, 232, 237, 236, 239, 0, 17, 12, 252, 21, 51, 12, 1, 21, 19,
+			12, 23, 30, 7, 210, 228, 234, 230, 220, 226, 2, 0, 221, 238, 1, 2, 28, 40, 41, 38, 23, 8, 254, 11, 31, 22, 239, 235, 228, 232,
+			237, 214, 223, 238, 252, 9, 1, 241, 0, 17, 31, 34, 35, 23, 7, 35, 25, 254, 224, 253, 241, 249, 251, 236, 221, 226, 246, 247, 246, 247,
+			12, 22, 24, 21, 255, 255, 18, 34, 41, 9, 241, 230, 11, 20, 214, 212, 10, 6, 235, 236, 236, 0, 5, 15, 9, 241, 4, 48, 48, 247,
+			215, 11, 23, 20, 13, 249, 232, 226, 7, 250, 244, 233, 236, 11, 11, 245, 252, 11, 24, 5, 18, 32, 4, 254, 25, 6, 242, 229, 236, 248,
+			240, 243, 6, 249, 226, 250, 13, 20, 17, 20, 31, 8, 255, 32, 253, 217, 7, 15, 249, 252, 247, 227, 208, 235, 20, 13, 255, 242, 17, 37,
+			20, 13, 5, 246, 19, 39, 18, 219, 216, 249, 245, 255, 236, 230, 0, 28, 12, 213, 253, 38, 31, 36, 227, 241, 21, 40, 31, 233, 204, 231,
+			33, 38, 228, 201, 231, 18, 22, 252, 234, 229, 21, 37, 36, 5, 236, 7, 32, 1, 241, 4, 3, 253, 10, 17, 215, 225, 7, 248, 237, 246,
+			3, 243, 0, 23, 11, 250, 11, 36, 22, 9, 13, 15, 255, 247, 253, 246, 225, 2, 11, 218, 215, 245, 0, 15, 7, 8, 255, 5, 32, 2,
+			0, 15, 37, 37, 249, 223, 227, 15, 25, 243, 214, 243, 13, 235, 225, 250, 15, 22, 8, 6, 0, 246, 18, 41, 0, 0, 7, 3, 245, 245,
+			246, 253, 5, 236, 231, 5, 11, 21, 0, 255, 4, 252, 16, 1, 7, 3, 252, 8, 231, 243, 250, 16, 2, 246, 9, 250, 241, 1, 8, 242,
+			1, 36, 18, 2, 255, 0, 6, 15, 31, 12, 246, 223, 235, 240, 207, 230, 1, 11, 255, 238, 231, 254, 33, 62, 34, 28, 42, 27, 23, 16,
+			226, 221, 253, 0, 233, 206, 195, 198, 223, 250, 3, 13, 17, 22, 42, 40, 37, 41, 37, 34, 26, 10, 0, 236, 216, 204, 214, 223, 216, 221,
+			248, 5, 241, 249, 3, 23, 60, 55, 33, 21, 7, 23, 25, 254, 238, 235, 245, 236, 234, 222, 216, 249, 9, 252, 0, 19, 48, 13, 233, 254,
+			18, 42, 7, 239, 239, 228, 248, 0, 254, 250, 0, 17, 11, 0, 10, 31, 20, 2, 253, 11, 250, 239, 230, 211, 234, 6, 249, 239, 236, 0,
+			20, 11, 19, 27, 40, 39, 16, 16, 28, 248, 243, 250, 237, 229, 211, 228, 232, 221, 236, 241, 253, 252, 45, 66, 9, 13, 47, 38, 36, 5,
+			0, 246, 239, 15, 240, 196, 173, 206, 16, 12, 241, 239, 247, 19, 32, 29, 32, 31, 54, 46, 16, 242, 235, 243, 243, 235, 216, 205, 231, 246,
+			246, 240, 253, 16, 46, 39, 17, 20, 11, 14, 16, 9, 3, 255, 0, 254, 229, 200, 218, 255, 5, 17, 234, 239, 1, 11, 20, 11, 15, 37,
+			36, 19, 255, 233, 4, 10, 7, 0, 221, 226, 236, 228, 231, 240, 13, 6, 2, 16, 14, 17, 26, 19, 21, 29, 19, 2, 248, 225, 237, 254,
+			0, 241, 214, 238, 247, 251, 4, 1, 250, 23, 30, 10, 8, 12, 6, 8, 15, 7, 245, 253, 22, 252, 231, 229, 247, 11, 8, 247, 235, 250,
+			255, 247, 243, 19, 5, 7, 33, 16, 245, 238, 24, 34, 250, 254, 14, 255, 236, 249, 8, 226, 232, 12, 20, 248, 232, 245, 249, 0, 11, 17,
+			3, 251, 36, 26, 239, 245, 22, 21, 248, 254, 13, 242, 225, 247, 245, 232, 13, 22, 249, 245, 7, 3, 243, 20, 33, 251, 253, 7, 255, 244,
+			251, 248, 252, 24, 19, 248, 239, 245, 12, 255, 242, 13, 30, 6, 245, 233, 240, 0, 27, 14, 245, 245, 244, 1, 21, 239, 228, 5, 36, 28,
+			245, 233, 245, 21, 29, 14, 245, 252, 7, 7, 253, 229, 228, 253, 20, 253, 229, 232, 254, 12, 14, 11, 5, 7, 31, 41, 2, 247, 0, 26,
+			2, 235, 244, 229, 248, 236, 209, 237, 1, 0, 6, 19, 21, 21, 13, 15, 27, 18, 25, 18, 245, 221, 246, 20, 232, 195, 229, 7, 17, 244,
+			229, 239, 9, 39, 38, 7, 238, 23, 58, 22, 218, 240, 21, 23, 240, 221, 233, 235, 247, 254, 8, 246, 241, 29, 11, 238, 1, 18, 28, 22,
+			255, 1, 253, 4, 11, 242, 229, 254, 15, 249, 233, 0, 15, 9, 76, 0, 239, 0, 5, 252, 8, 8, 8, 14, 14, 250, 7, 251, 253, 8,
+			245, 249, 0, 6, 18, 26, 22, 21, 15, 12, 0, 245, 240, 240, 247, 5, 17, 20, 27, 18, 18, 5, 248, 255, 248, 237, 246, 0, 1, 17,
+			25, 16, 4, 6, 2, 5, 5, 5, 245, 0, 9, 2, 255, 4, 248, 254, 14, 12, 14, 8, 0, 2, 5, 4, 253, 233, 249, 4, 11, 13,
+			8, 11, 17, 17, 252, 238, 233, 248, 247, 0, 2, 3, 22, 41, 18, 253, 253, 230, 236, 238, 228, 236, 14, 27, 32, 26, 9, 11, 6, 247,
+			233, 221, 226, 246, 255, 5, 17, 34, 28, 21, 5, 227, 226, 239, 245, 236, 238, 246, 7, 27, 26, 10, 7, 12, 12, 5, 254, 236, 239, 242,
+			244, 6, 7, 7, 16, 29, 19, 7, 10, 247, 235, 237, 232, 235, 245, 1, 6, 255, 15, 7, 15, 10, 253, 249, 248, 235, 238, 238, 237, 251,
+			255, 253, 12, 21, 13, 17, 251, 242, 243, 248, 248, 245, 247, 1, 6, 3, 11, 2, 3, 251, 249, 253, 243, 3, 11, 240, 244, 11, 251, 10,
+			22, 10, 18, 16, 10, 1, 238, 239, 241, 240, 251, 3, 8, 9, 1, 2, 8, 10, 0, 249, 241, 242, 251, 239, 236, 251, 9, 9, 20, 11,
+			15, 18, 1, 238, 224, 225, 241, 246, 250, 6, 24, 30, 35, 17, 10, 255, 254, 246, 238, 248, 254, 14, 14, 15, 8, 18, 11, 19, 2, 254,
+			3, 0, 0, 0, 251, 14, 15, 255, 9, 247, 4, 5, 247, 244, 241, 254, 25, 23, 16, 255, 255, 20, 12, 12, 252, 236, 0, 30, 9, 0,
+			255, 2, 15, 34, 16, 255, 255, 18, 28, 13, 251, 245, 14, 17, 18, 20, 0, 0, 18, 5, 254, 250, 250, 245, 252, 3, 242, 0, 13, 254,
+			10, 8, 252, 18, 30, 7, 0, 8, 10, 1, 8, 246, 224, 3, 29, 19, 20, 20, 2, 4, 252, 230, 227, 250, 4, 11, 10, 8, 11, 15,
+			10, 5, 245, 234, 9, 11, 3, 12, 26, 13, 25, 11, 255, 9, 14, 255, 243, 255, 12, 11, 29, 26, 29, 29, 5, 0, 249, 252, 239, 238,
+			242, 14, 32, 38, 28, 31, 18, 9, 237, 227, 225, 245, 252, 7, 29, 3, 32, 31, 8, 16, 247, 246, 5, 250, 253, 20, 17, 20, 19, 254,
+			22, 26, 18, 0, 251, 246, 247, 11, 5, 250, 5, 11, 5, 31, 13, 13, 15, 8, 1, 250, 0, 5, 14, 14, 24, 0, 13, 27, 8, 0,
+			250, 248, 3, 6, 3, 19, 8, 11, 21, 0, 245, 237, 233, 225, 236, 4, 10, 28, 36, 42, 41, 35, 8, 239, 220, 229, 222, 218, 241, 247,
+			27, 52, 35, 25, 27, 249, 246, 231, 211, 217, 247, 253, 15, 14, 4, 9, 21, 16, 5, 240, 222, 238, 242, 251, 239, 242, 9, 14, 19, 9,
+			243, 247, 0, 2, 243, 226, 234, 7, 12, 7, 246, 0, 9, 20, 16, 250, 237, 253, 7, 238, 0, 248, 2, 26, 18, 254, 11, 25, 13, 6,
+			3, 0, 10, 26, 0, 243, 2, 15, 12, 254, 239, 250, 8, 5, 231, 231, 236, 13, 26, 17, 10, 6, 6, 253, 223, 212, 219, 223, 249, 23,
+			30, 35, 34, 26, 251, 229, 219, 206, 225, 253, 2, 0, 22, 28, 35, 24, 31, 11, 243, 11, 249, 243, 240, 249, 251, 22, 21, 9, 28, 19,
+			0, 3, 245, 225, 0, 251, 253, 13, 7, 9, 27, 11, 1, 245, 240, 11, 250, 5, 253, 240, 6, 20, 9, 19, 11, 12, 5, 255, 6, 250,
+			245, 235, 250, 17, 41, 35, 40, 9, 254, 253, 246, 227, 231, 244, 245, 30, 27, 12, 26, 29, 249, 244, 233, 219, 251, 4, 232, 253, 20, 15,
+			45, 20, 243, 0, 8, 0, 253, 229, 247, 19, 3, 35, 27, 12, 17, 254, 241, 234, 229, 226, 241, 243, 20, 22, 17, 22, 9, 250, 251, 239,
+			238, 235, 233, 224, 252, 21, 6, 21, 14, 255, 16, 20, 234, 247, 244, 0, 10, 21, 26, 23, 40, 37, 2, 236, 221, 213, 236, 11, 0, 8,
+			22, 67, 56, 31, 5, 237, 246, 247, 214, 212, 250, 5, 22, 22, 22, 12, 34, 34, 0, 239, 249, 226, 246, 255, 232, 245, 1, 24, 37, 37,
+			31, 14, 8, 0, 241, 222, 214, 219, 234, 234, 12, 37, 44, 58, 41, 12, 254, 246, 243, 208, 201, 224, 3, 40, 54, 35, 20, 32, 43, 12,
+			233, 228, 228, 220, 240, 236, 235, 25, 51, 49, 32, 13, 0, 2, 247, 217, 191, 220, 232, 6, 41, 252, 7, 45, 12, 253, 238, 200, 253, 10,
+			252, 248, 232, 249, 26, 7, 18, 250, 6, 29, 0, 15, 5, 249, 244, 236, 235, 10, 20, 11, 247, 238, 4, 24, 15, 11, 0, 239, 233, 239,
+			228, 219, 230, 7, 0, 21, 21, 16, 24, 9, 221, 215, 217, 219, 5, 252, 16, 13, 19, 34, 40, 27, 252, 234, 237, 224, 224, 242, 223, 3,
+			30, 19, 34, 35, 18, 3, 220, 211, 191, 185, 221, 225, 252, 36, 50, 65, 54, 32, 4, 224, 211, 208, 192, 205, 239, 2, 6, 44, 55, 28,
+			40, 10, 240, 218, 216, 206, 206, 233, 249, 13, 35, 41, 45, 28, 14, 9, 241, 216, 204, 214, 240, 249, 9, 5, 3, 33, 18, 245, 228, 213,
+			239, 252, 254, 13, 21, 9, 31, 0, 228, 225, 230, 242, 9, 8, 0, 10, 12, 30, 13, 4, 238, 223, 243, 11, 236, 215, 205, 223, 4, 31,
+			23, 253, 9, 10, 0, 239, 209, 198, 233, 241, 246, 15, 0, 8, 30, 25, 35, 14, 234, 231, 220, 219, 220, 225, 244, 27, 42, 18, 36, 28,
+			255, 226, 212, 214, 242, 244, 0, 255, 4, 35, 40, 18, 246, 236, 241, 250, 236, 226, 216, 240, 4, 34, 20, 6, 7, 0, 5, 3, 251, 229,
+			3, 4, 13, 3, 11, 23, 22, 255, 5, 251, 1, 30, 15, 255, 230, 2, 6, 18, 5, 4, 9, 19, 23, 0, 239, 225, 234, 236, 21, 14,
+			12, 12, 15, 254, 250, 231, 206, 226, 231, 251, 19, 35, 9, 3, 4, 16, 2, 249, 252, 236, 230, 247, 233, 240, 1, 253, 17, 31, 43, 39,
+			13, 0, 247, 242, 255, 225, 232, 15, 28, 50, 34, 21, 36, 5, 238, 231, 203, 216, 227, 219, 245, 6, 20, 14, 30, 39, 248, 228, 234, 201,
+			204, 210, 198, 240, 12, 44, 58, 36, 37, 45, 19, 5, 246, 216, 212, 234, 250, 10, 47, 55, 59, 53, 10, 14, 26, 250, 220, 216, 228, 7,
+			32, 8, 0, 7, 242, 248, 240, 206, 219, 214, 209, 234, 250, 6, 15, 240, 254, 245, 236, 246, 245, 240, 11, 250, 2, 12, 252, 16, 13, 245,
+			248, 254, 14, 23, 14, 8, 255, 3, 29, 33, 252, 20, 11, 248, 252, 243, 236, 12, 6, 4, 1, 254, 237, 231, 23, 25, 30, 16, 22, 253,
+			254, 203, 189, 218, 211, 255, 15, 14, 53, 69, 27, 0, 223, 221, 229, 223, 229, 14, 27, 39, 69, 53, 23, 250, 222, 223, 240, 218, 220, 255,
+			27, 75, 73, 30, 27, 17, 242, 230, 223, 202, 223, 253, 248, 14, 47, 30, 8, 7, 11, 251, 238, 225, 211, 225, 11, 16, 16, 19, 254, 25,
+			29, 0, 240, 222, 245, 30, 28, 25, 15, 20, 29, 20, 7, 0, 249, 244, 15, 250, 251, 4, 0, 254, 21, 18, 3, 5, 253, 2, 0, 19,
+			11, 242, 20, 21, 4, 22, 238, 222, 239, 240, 1, 11, 34, 36, 27, 13, 36, 247, 230, 212, 186, 233, 3, 253, 17, 25, 20, 71, 48, 15,
+			244, 205, 200, 221, 222, 250, 38, 37, 57, 51, 36, 19, 252, 217, 197, 188, 229, 6, 250, 5, 11, 26, 39, 31, 3, 0, 248, 255, 249, 246,
+			1, 2, 32, 12, 9, 25, 58, 40, 29, 25, 2, 255, 233, 238, 217, 228, 239, 245, 17, 15, 238, 10, 3, 234, 249, 226, 203, 227, 18, 26,
+			252, 7, 6, 21, 33, 0, 236, 249, 235, 249, 249, 8, 37, 40, 47, 27, 17, 255, 5, 10, 13, 238, 254, 31, 5, 22, 35, 255, 31, 25,
+			225, 237, 234, 249, 255, 249, 227, 0, 9, 3, 244, 223, 245, 228, 244, 32, 20, 241, 224, 243, 4, 254, 11, 11, 238, 19, 34, 252, 3, 255,
+			227, 11, 7, 14, 18, 252, 2, 243, 250, 241, 238, 0, 12, 253, 3, 0, 7, 7, 14, 248, 237, 247, 231, 252, 7, 245, 244, 6, 247, 6,
+			20, 252, 254, 16, 250, 230, 236, 221, 215, 233, 4, 11, 19, 49, 57, 27, 252, 224, 218, 233, 240, 254, 252, 17, 50, 46, 48, 5, 237, 254,
+			240, 243, 26, 241, 216, 248, 232, 9, 23, 243, 254, 22, 243, 5, 242, 234, 246, 230, 241, 239, 1, 251, 20, 15, 19, 21, 31, 5, 0, 0,
+			247, 230, 255, 14, 6, 8, 245, 253, 231, 227, 212, 222, 248, 0, 237, 233, 220, 237, 250, 218, 245, 250, 5, 41, 41, 235, 4, 10, 255, 0,
+			0, 252, 238, 244, 12, 23, 50, 45, 17, 25, 35, 21, 240, 222, 219, 251, 254, 251, 229, 241, 14, 31, 47, 247, 248, 6, 252, 253, 231, 211,
+			218, 252, 6, 5, 34, 38, 20, 45, 23, 243, 230, 220, 183, 207, 233, 227, 26, 36, 67, 74, 67, 253, 252, 241, 210, 194, 199, 200, 236, 52,
+			15, 32, 42, 56, 59, 35, 220, 179, 213, 185, 195, 218, 236, 44, 114, 107, 84, 73, 10, 224, 170, 149, 151, 207, 250, 39, 89, 82, 98, 76,
+			42, 244, 202, 200, 150, 152, 202, 229, 244, 60, 79, 98, 97, 68, 3, 202, 179, 139, 132, 190, 252, 50, 92, 73, 89, 50, 255, 233, 187, 163,
+			200, 211, 213, 17, 14, 22, 64, 27, 19, 39, 0, 236, 2, 234, 236, 17, 10, 238, 15, 42, 27, 17, 7, 254, 23, 2, 252, 224, 227, 237,
+			227, 5, 16, 252, 28, 24, 246, 236, 200, 237, 249, 240, 237, 241, 239, 8, 7, 235, 0, 8, 30, 46, 36, 7, 9, 24, 27, 255, 253, 11,
+			253, 23, 253, 242, 248, 246, 249, 241, 241, 250, 5, 17, 8, 10, 8, 2, 10, 248, 244, 253, 249, 6, 255, 5, 1, 223, 231, 11, 255, 12,
+			16, 228, 228, 238, 209, 174, 200, 233, 20, 44, 46, 20, 7, 0, 0, 252, 225, 241, 14, 21, 11, 250, 18, 27, 246, 230, 212, 217, 217, 196,
+			227, 238, 238, 24, 30, 19, 0, 231, 221, 217, 207, 198, 192, 214, 253, 21, 34, 26, 36, 8, 229, 4, 234, 188, 213, 195, 191, 240, 29, 13,
+			68, 58, 49, 63, 11, 255, 247, 203, 219, 225, 232, 13, 18, 28, 61, 41, 28, 13, 207, 177, 192, 194, 215, 210, 234, 4, 37, 38, 29, 1,
+			24, 15, 3, 248, 217, 251, 21, 7, 246, 31, 44, 65, 62, 32, 247, 0, 255, 199, 202, 222, 255, 8, 27, 1, 240, 0, 12, 252, 230, 215,
+			243, 10, 4, 7, 239, 246, 252, 239, 5, 29, 6, 9, 22, 12, 23, 245, 245, 0, 21, 15, 14, 35, 29, 20, 23, 248, 231, 241, 254, 244,
+			247, 248, 5, 247, 228, 5, 8, 5, 9, 241, 200, 226, 238, 219, 235, 252, 24, 42, 58, 7, 247, 240, 234, 217, 236, 253, 37, 37, 254, 26,
+			246, 249, 0, 225, 230, 250, 20, 236, 244, 254, 248, 4, 246, 4, 31, 37, 36, 22, 12, 12, 23, 230, 176, 209, 242, 2, 43, 54, 89, 95,
+			81, 34, 221, 225, 217, 168, 178, 225, 14, 82, 100, 70, 38, 43, 34, 238, 209, 217, 201, 209, 246, 9, 9, 54, 62, 14, 17, 9, 250, 0,
+			236, 219, 237, 254, 31, 12, 14, 30, 24, 253, 254, 248, 238, 228, 244, 253, 7, 41, 15, 26, 7, 0, 1, 1, 235, 5, 8, 8, 34, 37,
+			19, 19, 24, 10, 25, 9, 14, 38, 18, 19, 15, 38, 23, 6, 238, 237, 246, 246, 15, 254, 28, 46, 34, 3, 223, 224, 255, 213, 222, 229,
+			232, 35, 34, 43, 33, 29, 254, 250, 237, 225, 231, 17, 39, 27, 60, 43, 30, 34, 23, 14, 238, 246, 251, 255, 14, 25, 45, 31, 18, 43,
+			28, 244, 230, 191, 168, 211, 215, 244, 26, 39, 48, 60, 37, 245, 242, 196, 189, 220, 216, 239, 18, 39, 60, 74, 48, 24, 230, 214, 228, 217,
+			234, 231, 238, 15, 53, 49, 56, 23, 1, 5, 230, 229, 207, 205, 223, 204, 218, 25, 42, 49, 23, 239, 241, 240, 240, 229, 200, 213, 248, 15,
+			29, 24, 32, 24, 14, 31, 31, 11, 8, 11, 15, 250, 253, 17, 253, 252, 249, 229, 245, 15, 250, 236, 232, 227, 230, 227, 226, 209, 224, 251,
+			246, 230, 242, 15, 21, 19, 244, 242, 3, 1, 206, 182, 186, 243, 37, 30, 6, 0, 56, 62, 16, 238, 216, 216, 215, 199, 222, 220, 7, 39,
+			32, 46, 38, 11, 242, 214, 188, 176, 182, 201, 230, 247, 16, 37, 27, 5, 253, 238, 225, 233, 219, 217, 237, 234, 242, 220, 246, 19, 26, 34,
+			41, 28, 23, 9, 231, 199, 199, 212, 226, 225, 234, 28, 35, 52, 38, 26, 2, 247, 237, 220, 209, 194, 214, 238, 6, 21, 22, 46, 64, 43,
+			17, 227, 215, 221, 215, 230, 234, 247, 26, 41, 48, 41, 255, 11, 16, 248, 236, 212, 209, 234, 239, 245, 18, 28, 51, 40, 1, 245, 235, 243,
+			244, 230, 242, 12, 26, 37, 0, 254, 252, 1, 10, 20, 9, 243, 255, 243, 228, 212, 209, 237, 0, 250, 11, 1, 243, 0, 79, 5, 27, 0,
+			0, 1, 0, 1, 4, 3, 253, 248, 251, 8, 10, 0, 2, 10, 10, 8, 5, 2, 0, 0, 2, 255, 248, 254, 5, 5, 251, 242, 247, 255,
+			254, 2, 7, 1, 248, 246, 242, 244, 245, 249, 4, 9, 6, 1, 254, 6, 10, 9, 11, 10, 9, 11, 5, 1, 0, 247, 247, 249, 248, 254,
+			2, 7, 11, 8, 2, 0, 254, 1, 5, 5, 2, 5, 2, 252, 251, 255, 0, 2, 4, 3, 1, 247, 240, 251, 249, 243, 246, 249, 254, 0,
+			3, 10, 9, 2, 5, 7, 255, 253, 3, 14, 22, 13, 2, 252, 255, 252, 251, 255, 2, 5, 3, 246, 241, 249, 255, 1, 0, 251, 254, 0,
+			250, 251, 0, 2, 5, 3, 252, 0, 7, 13, 11, 0, 247, 252, 253, 249, 2, 12, 14, 8, 255, 2, 3, 0, 254, 252, 0, 9, 10, 2,
+			1, 2, 2, 4, 2, 0, 1, 254, 251, 252, 249, 249, 249, 246, 239, 244, 1, 14, 16, 4, 253, 248, 245, 252, 0, 0, 0, 248, 244, 254,
+			4, 3, 3, 6, 12, 11, 2, 1, 6, 16, 18, 7, 9, 15, 13, 10, 12, 0, 254, 2, 247, 239, 236, 240, 0, 2, 248, 245, 247, 251,
+			0, 246, 245, 3, 2, 1, 253, 243, 3, 15, 15, 12, 5, 252, 2, 8, 0, 245, 245, 3, 3, 254, 0, 6, 8, 11, 7, 7, 6, 251,
+			254, 4, 0, 248, 253, 4, 1, 254, 1, 4, 8, 254, 244, 249, 253, 248, 248, 245, 254, 2, 4, 8, 0, 255, 10, 17, 9, 4, 7, 6,
+			0, 241, 234, 244, 1, 12, 14, 4, 6, 12, 12, 5, 250, 249, 2, 7, 5, 255, 251, 252, 1, 251, 246, 3, 1, 8, 14, 246, 240, 237,
+			235, 240, 241, 246, 4, 14, 15, 18, 16, 6, 0, 247, 250, 16, 10, 250, 255, 251, 251, 5, 8, 5, 251, 251, 8, 10, 5, 0, 254, 2,
+			255, 252, 2, 8, 8, 10, 6, 253, 251, 5, 13, 6, 253, 251, 250, 0, 4, 247, 239, 254, 249, 229, 235, 253, 6, 9, 3, 254, 4, 12,
+			5, 249, 250, 5, 14, 12, 0, 238, 249, 16, 17, 0, 247, 2, 18, 8, 252, 242, 245, 6, 10, 248, 250, 12, 18, 23, 17, 0, 1, 0,
+			251, 14, 8, 255, 1, 241, 230, 228, 221, 235, 252, 246, 249, 1, 0, 0, 254, 251, 254, 1, 19, 29, 14, 8, 16, 16, 18, 10, 2, 22,
+			25, 2, 246, 244, 250, 255, 250, 239, 231, 238, 5, 19, 255, 248, 8, 1, 2, 5, 250, 254, 0, 244, 235, 242, 244, 252, 10, 252, 247, 9,
+			5, 255, 1, 253, 5, 7, 15, 23, 7, 4, 15, 15, 9, 15, 26, 21, 5, 251, 255, 0, 239, 224, 239, 251, 5, 6, 248, 241, 232, 233,
+			248, 2, 244, 241, 251, 252, 6, 9, 5, 22, 15, 255, 2, 253, 8, 15, 3, 9, 1, 255, 3, 3, 12, 8, 12, 15, 0, 241, 242, 251,
+			8, 3, 255, 4, 3, 252, 252, 1, 5, 4, 245, 247, 1, 239, 237, 247, 249, 10, 19, 8, 6, 2, 11, 14, 246, 236, 231, 239, 249, 250,
+			10, 16, 2, 252, 249, 250, 254, 9, 23, 14, 17, 27, 23, 13, 249, 249, 3, 253, 4, 9, 0, 250, 229, 232, 0, 2, 254, 11, 14, 6,
+			0, 248, 249, 255, 252, 244, 233, 232, 3, 2, 253, 10, 252, 245, 12, 10, 11, 31, 9, 252, 7, 247, 252, 10, 4, 8, 6, 8, 13, 240,
+			219, 229, 240, 252, 14, 4, 247, 9, 13, 9, 16, 1, 4, 16, 254, 2, 253, 255, 19, 4, 2, 4, 242, 6, 18, 10, 1, 242, 234, 229,
+			229, 242, 253, 1, 255, 0, 5, 7, 5, 4, 7, 18, 21, 17, 12, 253, 1, 4, 255, 254, 243, 254, 15, 249, 249, 0, 240, 245, 244, 232,
+			255, 1, 5, 25, 253, 235, 246, 245, 1, 6, 252, 12, 14, 18, 36, 24, 251, 236, 248, 6, 19, 11, 251, 254, 0, 250, 255, 11, 0, 236,
+			241, 1, 248, 243, 4, 0, 242, 250, 13, 26, 20, 12, 18, 21, 8, 248, 234, 232, 241, 250, 5, 9, 244, 248, 20, 28, 20, 1, 248, 1,
+			255, 246, 225, 241, 1, 249, 250, 236, 231, 11, 27, 14, 14, 14, 17, 17, 242, 230, 252, 9, 6, 250, 232, 250, 14, 7, 13, 5, 242, 232,
+			230, 237, 7, 21, 17, 4, 236, 234, 255, 255, 11, 44, 28, 5, 19, 18, 14, 14, 21, 27, 15, 253, 255, 250, 240, 247, 228, 226, 2, 231,
+			213, 0, 15, 9, 248, 236, 253, 234, 228, 20, 41, 28, 21, 3, 7, 22, 2, 8, 22, 2, 251, 229, 207, 227, 248, 252, 23, 17, 249, 8,
+			9, 11, 253, 231, 247, 237, 228, 6, 2, 1, 22, 15, 8, 250, 239, 251, 6, 1, 4, 3, 253, 247, 247, 245, 10, 14, 13, 42, 27, 254,
+			5, 236, 245, 30, 18, 9, 240, 236, 18, 13, 4, 13, 255, 253, 9, 3, 251, 251, 253, 10, 22, 3, 224, 244, 251, 241, 245, 234, 235, 0,
+			244, 5, 12, 5, 35, 18, 242, 255, 248, 251, 253, 222, 221, 227, 244, 20, 18, 6, 22, 36, 29, 12, 6, 19, 0, 239, 212, 225, 14, 18,
+			11, 4, 243, 226, 249, 22, 238, 201, 238, 8, 23, 249, 226, 12, 24, 58, 71, 11, 6, 27, 14, 8, 243, 235, 19, 28, 242, 213, 230, 244,
+			254, 242, 226, 239, 250, 1, 7, 249, 4, 62, 65, 25, 249, 255, 39, 56, 13, 225, 225, 220, 247, 10, 235, 241, 2, 14, 24, 239, 215, 232,
+			234, 243, 1, 247, 244, 253, 3, 1, 240, 1, 15, 17, 252, 243, 3, 245, 222, 238, 236, 214, 238, 246, 248, 25, 33, 27, 27, 0, 233, 26,
+			44, 22, 249, 222, 254, 22, 252, 2, 9, 5, 10, 37, 45, 20, 5, 13, 17, 15, 0, 18, 30, 237, 242, 32, 44, 45, 18, 244, 41, 52,
+			28, 37, 251, 223, 224, 203, 229, 224, 195, 251, 16, 242, 228, 208, 186, 166, 144, 159, 190, 211, 193, 185, 190, 200, 230, 249, 16, 19, 3, 49,
+			107, 108, 124, 122, 106, 99, 81, 73, 67, 64, 55, 29, 12, 230, 218, 239, 231, 240, 240, 237, 14, 4, 231, 246, 233, 233, 254, 245, 239, 235,
+			227, 235, 233, 237, 4, 243, 237, 221, 190, 219, 242, 240, 235, 252, 23, 20, 251, 3, 27, 21, 7, 255, 222, 224, 250, 2, 2, 247, 250, 6,
+			25, 35, 29, 36, 7, 235, 228, 246, 6, 8, 13, 13, 24, 27, 48, 34, 254, 10, 22, 34, 41, 19, 10, 21, 8, 249, 248, 252, 248, 251,
+			249, 250, 9, 255, 224, 223, 227, 238, 14, 18, 241, 229, 235, 244, 238, 213, 231, 255, 245, 237, 241, 237, 232, 241, 234, 220, 231, 254, 21, 12,
+			249, 1, 13, 22, 12, 5, 22, 26, 21, 12, 6, 24, 20, 0, 4, 10, 29, 54, 34, 12, 14, 17, 21, 20, 242, 248, 2, 23, 28, 250,
+			235, 252, 23, 25, 3, 252, 14, 9, 234, 229, 242, 234, 217, 210, 221, 232, 253, 19, 25, 32, 4, 236, 0, 245, 220, 233, 25, 47, 13, 216,
+			234, 250, 227, 224, 221, 241, 230, 216, 252, 0, 236, 229, 239, 6, 0, 12, 27, 24, 11, 248, 253, 19, 19, 6, 16, 35, 48, 50, 42, 31,
+			8, 222, 235, 22, 26, 6, 15, 22, 15, 25, 61, 74, 51, 33, 37, 33, 30, 7, 220, 207, 214, 214, 206, 198, 213, 213, 214, 243, 237, 205,
+			193, 205, 233, 0, 253, 249, 236, 252, 23, 15, 17, 26, 10, 5, 9, 0, 235, 224, 255, 12, 243, 254, 26, 21, 11, 7, 24, 34, 18, 255,
+			245, 242, 8, 34, 33, 22, 2, 253, 13, 18, 0, 251, 251, 238, 227, 237, 250, 246, 229, 239, 252, 9, 13, 244, 242, 15, 18, 14, 15, 17,
+			36, 35, 31, 49, 38, 18, 25, 35, 5, 0, 120, 6, 13, 0, 0, 11, 15, 13, 14, 10, 20, 33, 25, 12, 252, 242, 235, 230, 232, 224,
+			228, 237, 248, 2, 246, 242, 0, 19, 30, 23, 18, 21, 13, 8, 1, 7, 8, 2, 3, 246, 235, 229, 230, 252, 0, 241, 251, 0, 254, 252,
+			7, 10, 11, 19, 20, 14, 5, 246, 3, 16, 8, 255, 240, 253, 6, 243, 230, 224, 246, 8, 19, 16, 246, 250, 20, 40, 33, 1, 3, 18,
+			8, 2, 239, 241, 255, 255, 250, 232, 228, 242, 253, 6, 0, 4, 9, 247, 248, 252, 8, 15, 1, 252, 243, 254, 7, 254, 253, 253, 4, 22,
+			14, 251, 248, 3, 12, 1, 1, 1, 255, 250, 240, 246, 1, 1, 254, 252, 7, 12, 13, 12, 9, 14, 14, 10, 4, 244, 254, 6, 245, 234,
+			220, 232, 0, 17, 10, 248, 250, 8, 22, 20, 11, 26, 39, 19, 251, 223, 229, 254, 10, 4, 225, 220, 226, 232, 239, 246, 246, 6, 17, 13,
+			10, 22, 34, 25, 16, 2, 19, 28, 13, 248, 234, 231, 245, 8, 254, 204, 193, 245, 39, 36, 2, 0, 10, 6, 7, 15, 14, 5, 252, 252,
+			239, 229, 241, 9, 4, 242, 247, 0, 9, 2, 7, 14, 14, 15, 15, 12, 20, 19, 21, 26, 8, 235, 230, 244, 239, 245, 247, 229, 222, 222,
+			247, 4, 255, 253, 1, 13, 6, 243, 1, 29, 40, 26, 4, 10, 22, 2, 251, 0, 7, 0, 248, 228, 221, 238, 255, 12, 19, 0, 0, 8,
+			8, 11, 5, 11, 0, 242, 255, 251, 245, 243, 254, 253, 236, 241, 6, 10, 6, 255, 0, 14, 19, 11, 1, 14, 13, 4, 253, 254, 250, 246,
+			1, 255, 230, 230, 249, 252, 250, 255, 3, 9, 5, 20, 20, 246, 245, 5, 19, 37, 33, 9, 0, 254, 240, 225, 245, 20, 20, 1, 246, 239,
+			228, 237, 11, 21, 10, 1, 240, 233, 244, 17, 25, 13, 16, 22, 8, 247, 249, 11, 1, 255, 241, 214, 211, 224, 255, 11, 15, 7, 247, 255,
+			3, 0, 22, 28, 24, 26, 15, 8, 245, 228, 249, 6, 249, 224, 228, 231, 238, 252, 2, 6, 16, 5, 10, 23, 33, 45, 31, 8, 6, 13,
+			9, 248, 235, 225, 238, 6, 252, 227, 210, 208, 245, 20, 36, 42, 31, 30, 27, 28, 25, 28, 34, 7, 235, 207, 199, 230, 230, 220, 217, 210,
+			206, 212, 246, 17, 45, 43, 19, 21, 16, 17, 47, 57, 50, 30, 5, 239, 232, 233, 223, 241, 247, 233, 222, 222, 225, 236, 254, 10, 17, 19,
+			31, 29, 30, 27, 30, 39, 29, 13, 0, 253, 239, 218, 211, 224, 226, 223, 233, 241, 236, 254, 15, 36, 58, 29, 2, 13, 21, 20, 20, 254,
+			247, 249, 230, 234, 245, 241, 255, 254, 228, 249, 16, 9, 0, 255, 3, 7, 253, 8, 16, 253, 0, 10, 9, 19, 12, 233, 230, 10, 39, 22,
+			231, 209, 217, 235, 10, 29, 12, 0, 0, 3, 18, 19, 19, 18, 0, 255, 247, 248, 7, 252, 230, 227, 240, 255, 4, 8, 6, 251, 12, 24,
+			2, 239, 253, 15, 11, 249, 242, 248, 253, 13, 14, 227, 204, 249, 16, 4, 6, 10, 16, 7, 16, 40, 41, 25, 16, 14, 0, 254, 10, 0,
+			233, 240, 229, 225, 236, 238, 254, 252, 237, 233, 238, 249, 16, 24, 245, 244, 4, 6, 18, 17, 14, 33, 44, 27, 254, 239, 245, 2, 242, 232,
+			249, 240, 220, 230, 248, 16, 30, 14, 239, 232, 8, 32, 8, 13, 47, 40, 7, 242, 230, 220, 237, 8, 12, 240, 218, 242, 255, 0, 29, 45,
+			42, 51, 53, 27, 237, 211, 226, 6, 7, 228, 208, 204, 221, 229, 235, 7, 27, 18, 255, 241, 244, 247, 252, 18, 23, 7, 4, 9, 5, 247,
+			28, 60, 31, 13, 20, 16, 255, 224, 226, 250, 10, 14, 242, 211, 214, 240, 0, 250, 247, 2, 29, 49, 30, 5, 0, 21, 29, 7, 249, 239,
+			225, 215, 211, 223, 0, 11, 5, 253, 0, 29, 47, 32, 21, 22, 13, 0, 254, 9, 13, 3, 237, 210, 222, 252, 240, 224, 218, 218, 226, 218,
+			216, 244, 0, 21, 57, 63, 66, 65, 48, 52, 69, 45, 29, 22, 239, 202, 204, 207, 205, 192, 201, 227, 222, 217, 238, 248, 24, 33, 0, 245,
+			22, 83, 79, 32, 247, 242, 17, 50, 47, 30, 232, 200, 225, 247, 252, 239, 214, 229, 244, 244, 245, 248, 244, 242, 4, 24, 30, 8, 0, 25,
+			26, 23, 40, 40, 11, 4, 5, 249, 238, 245, 3, 254, 215, 222, 236, 212, 188, 215, 244, 12, 13, 5, 251, 244, 12, 41, 49, 61, 53, 40,
+			17, 250, 20, 48, 26, 26, 0, 202, 199, 199, 194, 226, 248, 239, 234, 220, 197, 228, 21, 50, 66, 58, 39, 44, 42, 20, 7, 17, 14, 245,
+			215, 210, 250, 247, 218, 230, 238, 227, 241, 252, 17, 39, 25, 11, 0, 248, 11, 16, 237, 238, 8, 247, 243, 3, 244, 5, 18, 243, 11, 44,
+			3, 241, 250, 4, 54, 59, 3, 211, 212, 3, 60, 63, 2, 202, 191, 226, 20, 22, 1, 228, 207, 213, 234, 3, 2, 253, 0, 251, 246, 9,
+			16, 33, 38, 16, 44, 71, 23, 7, 30, 36, 57, 18, 194, 176, 175, 202, 250, 208, 165, 221, 2, 32, 40, 7, 240, 234, 20, 66, 51, 17,
+			2, 0, 9, 22, 39, 55, 45, 7, 240, 230, 234, 0, 245, 175, 185, 7, 248, 215, 227, 247, 10, 35, 42, 38, 251, 226, 32, 30, 246, 5,
+			32, 255, 228, 253, 27, 24, 21, 30, 11, 238, 237, 242, 231, 229, 5, 18, 239, 235, 233, 221, 228, 9, 48, 51, 15, 250, 2, 251, 251, 24,
+			252, 219, 230, 252, 246, 0, 246, 241, 20, 44, 38, 38, 34, 23, 26, 0, 245, 7, 203, 170, 218, 220, 195, 214, 240, 28, 14, 226, 15, 69,
+			63, 78, 84, 37, 255, 12, 36, 22, 240, 208, 242, 236, 198, 211, 0, 241, 218, 228, 214, 215, 7, 54, 61, 27, 0, 15, 26, 254, 9, 54,
+			46, 7, 246, 202, 163, 191, 249, 17, 242, 187, 219, 8, 3, 0, 16, 9, 22, 68, 75, 34, 23, 59, 76, 46, 0, 251, 15, 240, 208, 215,
+			206, 216, 198, 187, 221, 233, 245, 27, 15, 249, 24, 19, 31, 33, 12, 41, 50, 11, 251, 244, 252, 247, 198, 206, 218, 206, 241, 254, 225, 234,
+			4, 77, 97, 29, 24, 59, 49, 48, 51, 3, 224, 215, 216, 193, 156, 208, 27, 5, 226, 244, 248, 227, 243, 32, 39, 7, 25, 44, 249, 200,
+			15, 91, 61, 9, 2, 3, 255, 0, 23, 27, 239, 224, 225, 195, 210, 10, 20, 239, 196, 218, 17, 18, 25, 59, 38, 250, 255, 21, 18, 5,
+			1, 11, 236, 195, 212, 242, 209, 195, 5, 44, 10, 8, 12, 5, 22, 37, 55, 44, 249, 8, 77, 56, 5, 251, 249, 0, 248, 217, 211, 195,
+			195, 230, 214, 157, 186, 253, 15, 3, 250, 26, 77, 72, 57, 61, 42, 32, 42, 22, 249, 255, 249, 230, 213, 208, 226, 5, 6, 236, 244, 1,
+			6, 16, 12, 249, 6, 22, 10, 2, 14, 3, 236, 206, 226, 36, 32, 250, 0, 231, 193, 229, 43, 57, 9, 218, 209, 215, 217, 10, 45, 3,
+			254, 51, 34, 238, 237, 17, 38, 26, 32, 40, 12, 235, 8, 29, 15, 9, 25, 254, 199, 184, 237, 0, 239, 17, 1, 192, 183, 235, 42, 58,
+			15, 13, 6, 226, 240, 18, 8, 4, 22, 36, 32, 3, 239, 247, 0, 16, 37, 7, 220, 199, 197, 217, 242, 249, 0, 10, 233, 186, 222, 23,
+			43, 55, 35, 251, 4, 6, 35, 86, 73, 51, 56, 23, 3, 32, 15, 237, 226, 232, 250, 232, 196, 175, 156, 183, 250, 14, 254, 227, 197, 223,
+			3, 15, 68, 76, 35, 39, 42, 42, 50, 41, 45, 66, 26, 231, 230, 222, 205, 209, 218, 224, 217, 213, 211, 197, 188, 252, 60, 53, 253, 235,
+			253, 254, 13, 27, 14, 2, 4, 18, 248, 189, 222, 56, 60, 28, 14, 243, 243, 245, 2, 39, 39, 15, 25, 29, 229, 226, 18, 57, 67, 59,
+			45, 39, 15, 233, 226, 238, 200, 208, 229, 169, 137, 170, 186, 213, 5, 21, 57, 72, 39, 60, 82, 59, 62, 62, 0, 226, 239, 232, 221, 207,
+			209, 212, 208, 214, 238, 244, 224, 226, 0, 18, 20, 19, 16, 252, 14, 66, 91, 61, 15, 19, 32, 22, 8, 2, 231, 215, 210, 214, 213, 195,
+			190, 219, 238, 229, 246, 18, 27, 42, 64, 80, 78, 65, 44, 47, 54, 16, 242, 221, 182, 177, 202, 214, 212, 212, 215, 4, 29, 12, 22, 39,
+			35, 13, 237, 234, 244, 249, 246, 231, 215, 230, 21, 52, 39, 0, 23, 77, 70, 37, 33, 28, 15, 254, 230, 229, 225, 228, 255, 4, 247, 0,
+			11, 20, 18, 12, 23, 12, 222, 197, 202, 209, 206, 207, 202, 200, 201, 208, 234, 252, 2, 20, 47, 41, 18, 255, 250, 1, 30, 32, 17, 253,
+			229, 230, 253, 24, 39, 28, 17, 4, 14, 33, 47, 54, 48, 33, 19, 29, 22, 38, 39, 29, 23, 16, 8, 253, 246, 247, 2, 253, 14, 19,
+			8, 248, 215, 224, 3, 2, 244, 238, 194, 156, 170, 175, 210, 218, 190, 198, 209, 191, 208, 239, 250, 10, 28, 29, 18, 5, 15, 37, 50, 42,
+			35, 31, 2, 238, 231, 245, 252, 2, 2, 252, 233, 243, 24, 57, 73, 69, 67, 58, 41, 42, 43, 45, 22, 5, 6, 253, 236, 237, 253, 4,
+			16, 27, 25, 26, 21, 21, 38, 28, 8, 9, 253, 229, 224, 215, 214, 216, 215, 221, 225, 239, 142, 6, 24, 0, 1, 1, 3, 3, 253, 252,
+			0, 3, 8, 255, 231, 232, 255, 7, 15, 16, 9, 7, 0, 243, 249, 3, 9, 8, 0, 1, 6, 4, 7, 6, 253, 240, 244, 250, 0, 11,
+			8, 4, 11, 9, 4, 254, 244, 241, 253, 3, 6, 9, 1, 253, 254, 249, 248, 251, 249, 251, 2, 1, 0, 1, 0, 7, 12, 2, 251, 249,
+			249, 255, 7, 0, 245, 252, 0, 5, 11, 0, 248, 253, 255, 3, 4, 255, 0, 8, 11, 13, 16, 10, 5, 3, 253, 254, 2, 255, 0, 3,
+			251, 249, 252, 245, 249, 4, 1, 249, 251, 247, 0, 14, 8, 2, 5, 1, 0, 2, 250, 251, 2, 5, 10, 13, 7, 254, 254, 255, 243, 241,
+			247, 6, 20, 8, 253, 255, 250, 251, 252, 248, 253, 5, 7, 5, 0, 251, 249, 252, 2, 252, 251, 254, 251, 248, 251, 6, 18, 17, 5, 0,
+			253, 0, 9, 11, 4, 255, 252, 5, 13, 5, 248, 251, 1, 3, 3, 251, 247, 4, 9, 2, 0, 1, 3, 2, 251, 255, 16, 4, 249, 1,
+			6, 0, 247, 243, 250, 2, 6, 0, 240, 242, 246, 255, 4, 2, 3, 2, 255, 3, 252, 250, 5, 9, 13, 16, 7, 4, 6, 10, 7, 247,
+			237, 244, 255, 0, 0, 0, 6, 2, 254, 253, 1, 8, 2, 241, 240, 0, 2, 253, 251, 0, 18, 21, 9, 2, 250, 253, 2, 253, 0, 6,
+			5, 3, 255, 0, 252, 237, 239, 253, 1, 6, 2, 5, 6, 3, 8, 247, 236, 254, 19, 28, 25, 14, 12, 16, 11, 7, 254, 240, 240, 249,
+			0, 248, 236, 242, 253, 243, 237, 247, 0, 5, 16, 11, 253, 248, 246, 243, 3, 22, 11, 8, 20, 6, 245, 236, 242, 11, 13, 247, 244, 252,
+			253, 8, 4, 251, 2, 248, 241, 7, 27, 24, 21, 21, 1, 244, 253, 1, 4, 6, 246, 246, 5, 2, 250, 244, 243, 3, 9, 255, 250, 2,
+			9, 8, 1, 252, 248, 7, 22, 14, 7, 15, 11, 1, 250, 246, 254, 247, 231, 236, 245, 235, 238, 254, 7, 10, 254, 239, 246, 253, 2, 16,
+			12, 3, 6, 25, 19, 3, 5, 0, 248, 248, 230, 228, 5, 21, 25, 16, 247, 246, 0, 247, 249, 7, 15, 19, 13, 0, 253, 24, 36, 7,
+			246, 245, 238, 252, 15, 7, 254, 248, 241, 244, 245, 241, 250, 3, 5, 2, 255, 247, 242, 5, 21, 16, 2, 0, 6, 10, 1, 245, 243, 248,
+			253, 5, 2, 244, 245, 5, 12, 0, 229, 221, 248, 9, 9, 7, 253, 245, 11, 23, 13, 2, 252, 19, 37, 22, 8, 6, 4, 3, 3, 2,
+			242, 231, 243, 252, 6, 17, 1, 240, 237, 228, 244, 14, 15, 5, 254, 251, 3, 14, 22, 19, 3, 239, 236, 245, 254, 4, 10, 250, 239, 245,
+			251, 3, 17, 21, 0, 236, 235, 0, 32, 34, 11, 8, 6, 235, 226, 234, 246, 11, 17, 6, 242, 239, 250, 237, 237, 10, 11, 14, 10, 253,
+			9, 24, 25, 22, 253, 231, 4, 52, 65, 19, 222, 221, 220, 221, 250, 249, 249, 15, 28, 25, 231, 192, 218, 253, 26, 27, 255, 2, 10, 4,
+			34, 16, 235, 250, 254, 244, 4, 19, 16, 4, 3, 16, 253, 221, 220, 238, 13, 24, 12, 9, 0, 247, 7, 0, 236, 249, 254, 7, 30, 27,
+			3, 228, 204, 209, 1, 32, 14, 24, 44, 15, 251, 13, 244, 228, 6, 12, 7, 17, 249, 224, 237, 253, 11, 16, 4, 248, 248, 4, 252, 5,
+			29, 3, 221, 213, 223, 7, 61, 68, 32, 239, 209, 243, 17, 21, 20, 241, 212, 232, 7, 2, 237, 240, 0, 1, 13, 19, 1, 255, 255, 5,
+			19, 10, 0, 251, 238, 244, 0, 247, 242, 4, 25, 25, 10, 0, 251, 241, 243, 240, 242, 19, 27, 11, 19, 5, 252, 15, 16, 6, 2, 249,
+			0, 4, 248, 1, 2, 238, 240, 248, 241, 231, 249, 22, 5, 255, 20, 5, 245, 0, 252, 0, 251, 241, 4, 15, 23, 38, 18, 231, 225, 242,
+			248, 248, 238, 236, 6, 23, 18, 5, 255, 250, 242, 228, 241, 31, 59, 36, 254, 231, 241, 3, 9, 16, 18, 248, 235, 239, 244, 8, 31, 16,
+			248, 247, 2, 232, 212, 243, 20, 47, 49, 7, 234, 230, 246, 6, 5, 12, 27, 35, 17, 228, 199, 227, 5, 22, 25, 1, 221, 217, 241, 16,
+			48, 31, 221, 196, 211, 236, 19, 40, 36, 38, 48, 34, 18, 247, 224, 240, 244, 245, 239, 232, 3, 22, 8, 239, 227, 245, 2, 247, 235, 252,
+			16, 20, 21, 33, 21, 248, 1, 253, 226, 239, 252, 5, 45, 53, 28, 12, 2, 251, 250, 236, 234, 0, 15, 246, 232, 227, 205, 211, 0, 21,
+			13, 0, 239, 231, 1, 25, 28, 20, 14, 26, 43, 27, 5, 252, 236, 11, 46, 22, 226, 199, 195, 226, 20, 24, 4, 8, 0, 255, 23, 33,
+			8, 234, 240, 2, 2, 7, 13, 237, 237, 26, 252, 191, 195, 227, 254, 22, 21, 250, 236, 3, 53, 92, 61, 240, 200, 223, 28, 63, 44, 253,
+			239, 251, 4, 238, 211, 207, 207, 242, 12, 249, 237, 249, 7, 31, 51, 30, 236, 228, 0, 41, 68, 46, 0, 253, 25, 33, 3, 219, 190, 201,
+			251, 26, 19, 235, 180, 175, 217, 1, 46, 75, 47, 21, 0, 216, 228, 15, 44, 58, 30, 251, 252, 250, 246, 228, 219, 231, 246, 16, 31, 7,
+			245, 4, 11, 242, 232, 248, 251, 250, 254, 24, 32, 24, 5, 246, 248, 255, 251, 251, 244, 236, 254, 8, 0, 10, 27, 24, 10, 248, 222, 225,
+			3, 28, 31, 19, 6, 2, 0, 248, 228, 215, 241, 6, 249, 247, 16, 16, 237, 227, 3, 35, 21, 0, 3, 4, 23, 51, 27, 251, 238, 1,
+			16, 19, 245, 195, 202, 0, 18, 255, 243, 0, 251, 229, 230, 232, 231, 21, 60, 36, 21, 32, 28, 11, 5, 245, 232, 238, 251, 31, 49, 12,
+			229, 227, 220, 221, 240, 244, 255, 15, 0, 241, 233, 229, 239, 7, 28, 16, 14, 38, 37, 20, 1, 248, 3, 20, 23, 14, 253, 250, 240, 219,
+			254, 7, 232, 6, 49, 9, 235, 243, 235, 248, 14, 0, 240, 239, 234, 241, 28, 61, 26, 240, 204, 184, 222, 25, 60, 61, 22, 243, 233, 251,
+			1, 240, 228, 249, 7, 27, 49, 18, 211, 203, 250, 29, 35, 20, 7, 0, 250, 248, 248, 240, 5, 19, 11, 9, 19, 1, 251, 16, 12, 243,
+			244, 233, 225, 5, 45, 24, 237, 222, 228, 237, 18, 21, 228, 221, 36, 52, 4, 231, 214, 196, 243, 45, 64, 75, 47, 218, 175, 210, 248, 254,
+			4, 38, 33, 0, 6, 7, 209, 204, 245, 235, 234, 26, 45, 39, 19, 1, 11, 20, 24, 6, 229, 223, 28, 57, 40, 36, 20, 222, 218, 252,
+			246, 214, 215, 217, 219, 14, 35, 237, 242, 35, 26, 252, 233, 215, 213, 8, 76, 90, 35, 250, 0, 17, 29, 11, 214, 190, 214, 239, 3, 29,
+			12, 202, 192, 2, 8, 207, 232, 25, 33, 61, 87, 31, 216, 213, 252, 251, 236, 246, 237, 234, 255, 7, 26, 58, 36, 1, 255, 9, 23, 9,
+			1, 32, 32, 21, 74, 37, 190, 166, 210, 217, 215, 230, 242, 8, 49, 45, 239, 198, 203, 227, 245, 38, 68, 48, 21, 11, 10, 33, 33, 2,
+			233, 220, 207, 204, 250, 15, 5, 33, 61, 7, 199, 189, 206, 218, 5, 32, 16, 3, 16, 19, 14, 5, 12, 249, 243, 10, 14, 8, 42, 39,
+			29, 41, 18, 218, 194, 209, 238, 243, 238, 245, 248, 7, 16, 12, 233, 222, 247, 26, 45, 57, 27, 222, 198, 236, 45, 95, 72, 17, 215, 205,
+			228, 254, 15, 13, 11, 2, 230, 230, 244, 250, 246, 231, 227, 243, 242, 240, 16, 20, 3, 251, 11, 18, 22, 36, 37, 11, 244, 241, 4, 254,
+			3, 253, 251, 254, 241, 220, 207, 214, 248, 6, 21, 19, 251, 247, 3, 31, 62, 67, 33, 247, 219, 235, 247, 2, 18, 17, 1, 255, 222, 217,
+			253, 0, 222, 249, 21, 25, 24, 37, 15, 9, 28, 14, 226, 222, 254, 0, 249, 9, 14, 240, 233, 238, 216, 219, 253, 245, 243, 13, 30, 13,
+			8, 27, 14, 10, 25, 10, 246, 12, 33, 17, 7, 25, 4, 236, 242, 229, 195, 217, 9, 20, 18, 25, 247, 214, 235, 3, 237, 228, 250, 9,
+			8, 23, 32, 44, 49, 36, 255, 213, 219, 255, 253, 246, 12, 14, 242, 245, 8, 0, 248, 242, 230, 224, 240, 2, 18, 13, 254, 12, 30, 27,
+			21, 9, 252, 0, 254, 251, 7, 16, 18, 23, 38, 7, 219, 203, 199, 230, 22, 29, 26, 41, 33, 13, 1, 247, 220, 204, 225, 5, 17, 20,
+			17, 254, 240, 253, 26, 4, 222, 212, 213, 223, 255, 13, 9, 15, 23, 6, 249, 26, 36, 2, 223, 225, 236, 253, 17, 20, 254, 254, 30, 46,
+			253, 231, 251, 255, 254, 0, 252, 232, 231, 14, 47, 41, 21, 17, 247, 212, 252, 57, 53, 35, 29, 238, 198, 218, 31, 76, 51, 229, 154, 134,
+			202, 24, 70, 42, 10, 220, 184, 195, 235, 221, 219, 11, 68, 47, 23, 27, 18, 16, 22, 30, 25, 27, 9, 244, 241, 12, 21, 255, 213, 210,
+			213, 230, 2, 22, 13, 0, 247, 244, 249, 9, 1, 250, 3, 1, 245, 9, 25, 19, 5, 1, 5, 254, 251, 251, 235, 238, 1, 6, 253, 248,
+			5, 8, 253, 245, 251, 254, 11, 18, 12, 0, 251, 254, 244, 235, 252, 4, 254, 4, 16, 3, 235, 231, 254, 25, 40, 44, 27, 22, 28, 20,
+			14, 24, 33, 27, 3, 11, 25, 14, 6, 13, 10, 234, 219, 238, 246, 235, 243, 232, 209, 221, 11, 30, 0, 0, 147, 5, 17, 0, 252, 244,
+			246, 1, 12, 13, 9, 4, 253, 5, 9, 6, 251, 245, 249, 251, 10, 13, 16, 6, 239, 231, 245, 254, 7, 9, 8, 248, 231, 233, 243, 1,
+			4, 254, 246, 242, 0, 8, 6, 0, 247, 239, 244, 10, 28, 37, 26, 7, 249, 252, 0, 0, 5, 16, 25, 25, 15, 255, 240, 227, 229, 247,
+			12, 23, 16, 0, 243, 246, 247, 240, 241, 255, 11, 10, 0, 251, 253, 254, 250, 250, 240, 245, 2, 11, 12, 6, 5, 0, 0, 253, 250, 247,
+			0, 14, 20, 19, 18, 5, 240, 244, 0, 11, 20, 19, 10, 255, 247, 247, 253, 249, 248, 3, 5, 8, 1, 238, 229, 246, 5, 254, 251, 255,
+			6, 17, 12, 252, 242, 247, 255, 0, 13, 16, 11, 0, 244, 244, 248, 242, 245, 2, 8, 3, 7, 255, 240, 241, 253, 10, 14, 6, 253, 3,
+			18, 30, 33, 20, 9, 254, 249, 8, 10, 8, 3, 5, 5, 253, 249, 240, 235, 244, 4, 6, 253, 242, 237, 239, 248, 251, 0, 255, 248, 249,
+			243, 240, 242, 253, 12, 16, 5, 249, 239, 241, 1, 9, 15, 28, 25, 10, 252, 236, 244, 13, 24, 23, 23, 18, 10, 13, 8, 9, 8, 2,
+			254, 254, 3, 8, 14, 9, 252, 231, 223, 233, 241, 3, 12, 4, 239, 227, 232, 250, 0, 248, 255, 2, 248, 248, 250, 252, 4, 0, 0, 0,
+			251, 254, 20, 20, 1, 254, 0, 7, 14, 15, 15, 14, 14, 15, 14, 13, 14, 18, 14, 10, 2, 239, 225, 231, 255, 12, 13, 5, 245, 225,
+			221, 237, 2, 5, 0, 253, 250, 238, 228, 236, 4, 14, 8, 4, 1, 243, 234, 248, 16, 33, 35, 9, 240, 249, 5, 4, 0, 17, 38, 36,
+			22, 251, 242, 0, 20, 20, 249, 247, 2, 7, 2, 250, 234, 238, 247, 242, 239, 0, 12, 7, 247, 229, 225, 253, 11, 17, 15, 7, 247, 220,
+			233, 247, 253, 21, 41, 12, 236, 233, 241, 4, 22, 27, 15, 248, 250, 1, 0, 18, 15, 8, 7, 2, 8, 12, 5, 255, 3, 8, 6, 4,
+			247, 247, 254, 4, 0, 254, 244, 245, 252, 251, 246, 241, 244, 251, 9, 6, 254, 241, 239, 248, 4, 8, 2, 8, 13, 4, 246, 244, 6, 16,
+			22, 13, 254, 247, 236, 252, 24, 27, 4, 243, 247, 255, 9, 16, 18, 11, 10, 253, 254, 0, 253, 240, 246, 7, 22, 11, 252, 237, 225, 229,
+			235, 247, 254, 253, 6, 6, 255, 245, 244, 251, 255, 2, 13, 22, 14, 11, 14, 1, 244, 251, 12, 33, 40, 21, 244, 234, 250, 15, 22, 5,
+			233, 232, 7, 15, 248, 237, 0, 16, 14, 0, 232, 214, 222, 252, 20, 34, 25, 242, 237, 243, 250, 2, 2, 8, 240, 222, 229, 5, 28, 43,
+			18, 225, 228, 240, 254, 25, 57, 48, 4, 244, 241, 0, 16, 7, 3, 0, 6, 254, 14, 31, 25, 2, 232, 219, 213, 234, 15, 33, 25, 1,
+			249, 245, 241, 216, 196, 225, 24, 55, 19, 233, 228, 232, 244, 9, 10, 4, 25, 27, 15, 19, 250, 219, 233, 8, 19, 41, 50, 23, 247, 233,
+			226, 239, 16, 38, 20, 255, 242, 253, 252, 235, 244, 15, 34, 27, 242, 217, 233, 10, 14, 245, 214, 204, 231, 8, 29, 21, 255, 237, 226, 239,
+			15, 22, 6, 253, 20, 36, 37, 252, 214, 226, 20, 63, 65, 34, 1, 218, 221, 234, 251, 6, 252, 4, 16, 21, 17, 253, 234, 230, 243, 226,
+			242, 27, 64, 67, 17, 214, 174, 178, 244, 44, 48, 24, 0, 234, 217, 207, 207, 0, 33, 14, 3, 4, 4, 251, 230, 229, 1, 21, 12, 30,
+			53, 66, 42, 244, 212, 210, 245, 23, 52, 65, 48, 1, 231, 218, 215, 238, 16, 15, 16, 2, 242, 230, 210, 221, 246, 29, 37, 12, 231, 224,
+			6, 16, 253, 234, 224, 238, 19, 34, 6, 222, 214, 221, 243, 15, 24, 31, 37, 28, 0, 219, 210, 244, 45, 57, 52, 19, 246, 254, 20, 17,
+			252, 229, 234, 16, 47, 53, 28, 221, 192, 213, 240, 13, 38, 28, 11, 245, 230, 235, 227, 224, 228, 237, 8, 32, 31, 0, 249, 2, 255, 243,
+			210, 219, 10, 35, 53, 21, 238, 236, 255, 1, 242, 243, 6, 22, 22, 9, 1, 226, 3, 1, 248, 33, 23, 255, 243, 14, 19, 24, 42, 16,
+			238, 197, 217, 2, 23, 55, 38, 0, 224, 223, 235, 240, 15, 29, 13, 236, 227, 213, 218, 31, 32, 9, 244, 200, 203, 15, 49, 46, 29, 242,
+			219, 210, 232, 12, 25, 34, 34, 4, 243, 2, 0, 1, 3, 242, 1, 13, 27, 41, 33, 14, 246, 230, 232, 252, 239, 16, 46, 30, 5, 223,
+			233, 237, 247, 1, 232, 215, 255, 36, 6, 242, 245, 227, 233, 224, 243, 8, 17, 63, 44, 0, 219, 223, 231, 0, 53, 20, 36, 55, 25, 227,
+			181, 191, 236, 52, 81, 65, 8, 217, 221, 200, 203, 25, 69, 67, 33, 222, 208, 237, 17, 47, 10, 201, 205, 1, 33, 51, 250, 219, 242, 234,
+			234, 234, 209, 8, 67, 73, 36, 231, 180, 190, 231, 253, 48, 71, 67, 39, 204, 180, 206, 0, 38, 63, 19, 229, 212, 242, 61, 66, 12, 210,
+			177, 224, 37, 48, 43, 16, 0, 4, 245, 242, 216, 210, 16, 43, 20, 21, 9, 225, 217, 241, 255, 251, 247, 26, 61, 27, 231, 211, 213, 11,
+			50, 44, 245, 225, 215, 9, 51, 57, 11, 180, 162, 244, 41, 28, 11, 230, 205, 243, 12, 11, 239, 233, 239, 245, 40, 78, 29, 240, 220, 231,
+			244, 9, 39, 43, 36, 33, 20, 218, 219, 0, 248, 35, 55, 29, 236, 222, 6, 10, 14, 10, 15, 3, 230, 232, 238, 9, 44, 11, 229, 187,
+			179, 210, 249, 45, 2, 212, 211, 25, 35, 240, 239, 231, 0, 32, 27, 22, 6, 251, 11, 28, 38, 23, 0, 224, 222, 45, 47, 46, 10, 218,
+			238, 22, 18, 241, 4, 0, 8, 19, 252, 13, 0, 222, 242, 239, 235, 234, 20, 24, 235, 211, 204, 233, 231, 31, 46, 246, 230, 220, 210, 233,
+			26, 45, 29, 243, 236, 31, 41, 28, 32, 216, 254, 62, 41, 19, 29, 44, 1, 10, 225, 210, 216, 251, 87, 79, 2, 221, 174, 131, 223, 49,
+			37, 26, 15, 229, 216, 213, 230, 220, 214, 41, 56, 27, 231, 205, 217, 248, 64, 70, 250, 172, 227, 35, 41, 45, 23, 239, 248, 15, 31, 6,
+			7, 17, 39, 29, 233, 253, 13, 10, 23, 240, 234, 8, 15, 28, 38, 14, 201, 184, 184, 253, 94, 95, 3, 164, 131, 186, 20, 73, 41, 234,
+			195, 191, 11, 9, 239, 242, 244, 20, 40, 43, 239, 196, 228, 35, 94, 50, 236, 213, 200, 235, 32, 58, 49, 19, 226, 242, 15, 218, 227, 52,
+			74, 74, 15, 214, 0, 227, 250, 41, 38, 246, 8, 23, 231, 245, 237, 241, 230, 247, 32, 41, 5, 201, 210, 187, 216, 38, 50, 252, 237, 229,
+			232, 250, 0, 255, 237, 4, 10, 2, 240, 12, 12, 12, 9, 1, 5, 228, 12, 38, 15, 232, 247, 254, 241, 33, 47, 13, 210, 229, 20, 48,
+			18, 221, 237, 251, 26, 62, 8, 216, 246, 3, 2, 8, 30, 22, 18, 254, 249, 248, 241, 19, 23, 244, 253, 7, 248, 237, 6, 26, 3, 239,
+			242, 5, 7, 8, 12, 215, 217, 243, 255, 249, 251, 6, 236, 227, 245, 253, 253, 225, 231, 250, 234, 28, 25, 244, 210, 241, 6, 4, 28, 30,
+			47, 255, 227, 7, 247, 6, 50, 52, 11, 246, 9, 38, 0, 230, 252, 31, 20, 54, 61, 10, 216, 189, 233, 12, 39, 74, 30, 200, 147, 214,
+			50, 41, 16, 4, 243, 245, 204, 223, 218, 242, 242, 32, 53, 13, 6, 209, 196, 230, 28, 80, 61, 241, 186, 214, 26, 42, 65, 22, 234, 234,
+			238, 6, 17, 5, 245, 41, 42, 247, 237, 194, 208, 2, 19, 252, 18, 242, 238, 246, 224, 223, 216, 226, 13, 31, 30, 2, 228, 207, 218, 248,
+			14, 15, 255, 19, 18, 2, 14, 236, 241, 239, 7, 40, 44, 34, 9, 12, 251, 252, 22, 30, 38, 39, 31, 3, 20, 26, 9, 2, 8, 19,
+			38, 26, 28, 33, 13, 248, 1, 247, 239, 21, 56, 43, 12, 242, 239, 0, 183, 6, 8, 0, 1, 12, 253, 238, 243, 1, 5, 0, 5, 252,
+			253, 17, 26, 8, 255, 19, 43, 35, 14, 7, 17, 21, 19, 15, 8, 12, 12, 11, 252, 236, 255, 15, 10, 251, 235, 243, 238, 224, 225, 219,
+			217, 229, 228, 214, 198, 198, 224, 4, 245, 235, 14, 29, 26, 0, 3, 31, 47, 54, 54, 39, 16, 29, 56, 52, 33, 11, 18, 41, 23, 250,
+			246, 2, 1, 0, 253, 221, 220, 244, 237, 223, 209, 221, 249, 235, 204, 215, 245, 0, 245, 235, 247, 6, 17, 8, 245, 243, 0, 24, 16, 242,
+			243, 17, 30, 23, 0, 250, 16, 38, 29, 10, 9, 5, 21, 25, 4, 250, 21, 29, 16, 242, 240, 10, 18, 4, 245, 244, 244, 246, 241, 238,
+			230, 233, 237, 240, 229, 220, 243, 250, 251, 248, 4, 12, 21, 23, 14, 19, 29, 36, 40, 19, 9, 15, 16, 4, 3, 2, 251, 244, 237, 254,
+			0, 240, 244, 246, 233, 235, 249, 250, 236, 235, 246, 253, 243, 240, 2, 1, 247, 4, 9, 5, 8, 16, 24, 24, 2, 254, 13, 5, 252, 246,
+			254, 249, 0, 0, 254, 249, 248, 10, 13, 2, 15, 30, 32, 18, 5, 20, 20, 12, 0, 4, 3, 245, 253, 255, 249, 228, 236, 251, 251, 247,
+			249, 249, 0, 7, 10, 253, 240, 239, 255, 255, 229, 228, 254, 6, 247, 228, 238, 253, 0, 32, 48, 31, 7, 254, 255, 10, 2, 5, 30, 23,
+			248, 235, 253, 7, 248, 253, 31, 19, 240, 240, 253, 254, 255, 10, 18, 251, 227, 231, 253, 234, 237, 4, 6, 7, 245, 241, 248, 243, 253, 25,
+			17, 235, 250, 13, 254, 236, 252, 25, 34, 28, 11, 13, 20, 30, 46, 50, 32, 17, 30, 29, 252, 226, 247, 4, 242, 230, 233, 224, 189, 216,
+			2, 234, 208, 218, 249, 254, 217, 217, 242, 4, 2, 255, 8, 252, 245, 17, 38, 27, 3, 33, 64, 31, 12, 22, 26, 47, 40, 13, 14, 246,
+			6, 37, 3, 220, 219, 242, 252, 211, 173, 217, 246, 237, 229, 225, 220, 230, 3, 11, 244, 245, 13, 44, 25, 242, 247, 29, 47, 31, 24, 29,
+			43, 55, 43, 16, 7, 16, 47, 32, 243, 223, 0, 10, 249, 223, 213, 231, 249, 248, 235, 224, 211, 232, 1, 255, 230, 221, 244, 240, 238, 251,
+			1, 4, 1, 9, 10, 245, 250, 12, 35, 35, 10, 12, 2, 249, 1, 17, 38, 29, 13, 14, 4, 222, 245, 35, 35, 4, 241, 5, 15, 238,
+			224, 245, 5, 248, 252, 237, 218, 205, 225, 12, 6, 240, 252, 18, 4, 246, 254, 22, 38, 29, 30, 26, 4, 247, 19, 23, 4, 13, 21, 31,
+			13, 243, 251, 10, 14, 245, 246, 242, 248, 237, 209, 223, 233, 219, 223, 229, 226, 212, 228, 242, 0, 7, 13, 28, 14, 20, 49, 72, 60, 34,
+			42, 49, 38, 19, 4, 244, 254, 253, 244, 220, 205, 216, 247, 246, 209, 213, 243, 252, 0, 235, 236, 253, 254, 243, 13, 11, 249, 7, 23, 25,
+			248, 236, 27, 68, 30, 254, 20, 32, 10, 10, 2, 250, 235, 7, 36, 248, 202, 226, 10, 25, 248, 236, 6, 22, 26, 7, 247, 0, 31, 29,
+			2, 229, 224, 253, 8, 229, 203, 211, 240, 1, 239, 210, 223, 254, 3, 253, 239, 254, 12, 24, 2, 249, 0, 43, 58, 47, 16, 254, 33, 56,
+			50, 26, 18, 20, 16, 6, 255, 245, 244, 243, 6, 7, 225, 198, 222, 0, 249, 228, 242, 244, 234, 232, 248, 247, 226, 234, 9, 252, 230, 232,
+			0, 2, 251, 251, 5, 4, 251, 13, 21, 12, 9, 30, 32, 22, 10, 20, 49, 54, 37, 29, 27, 24, 45, 37, 246, 232, 245, 0, 238, 224,
+			219, 207, 194, 225, 226, 211, 199, 231, 2, 227, 206, 232, 12, 16, 14, 36, 34, 24, 19, 44, 46, 10, 20, 53, 62, 19, 240, 1, 22, 2,
+			6, 5, 252, 247, 223, 220, 234, 227, 248, 5, 241, 217, 218, 238, 230, 234, 6, 27, 22, 239, 240, 252, 2, 21, 30, 25, 11, 249, 253, 8,
+			10, 255, 19, 33, 5, 252, 243, 8, 27, 23, 13, 13, 16, 251, 248, 248, 250, 241, 0, 6, 254, 217, 222, 250, 241, 243, 8, 20, 6, 249,
+			247, 254, 6, 4, 18, 14, 227, 230, 12, 25, 248, 237, 244, 35, 4, 219, 6, 33, 19, 15, 24, 10, 250, 0, 33, 11, 209, 228, 255, 0,
+			229, 219, 237, 243, 228, 248, 26, 22, 14, 32, 41, 18, 254, 10, 46, 45, 27, 255, 241, 228, 251, 1, 240, 220, 224, 21, 10, 222, 243, 1,
+			12, 5, 241, 7, 13, 241, 231, 236, 241, 223, 252, 5, 240, 224, 220, 16, 14, 241, 255, 34, 20, 21, 43, 27, 36, 25, 35, 57, 23, 248,
+			3, 24, 4, 253, 246, 245, 0, 246, 250, 2, 242, 222, 4, 4, 226, 217, 228, 228, 205, 209, 244, 5, 225, 220, 254, 10, 255, 7, 55, 54,
+			41, 42, 40, 51, 43, 15, 10, 27, 19, 3, 233, 218, 224, 236, 236, 250, 239, 225, 0, 12, 242, 245, 2, 0, 6, 26, 4, 254, 4, 240,
+			242, 253, 245, 0, 7, 245, 0, 254, 250, 7, 248, 247, 13, 11, 243, 224, 240, 12, 1, 243, 246, 244, 249, 21, 10, 15, 13, 13, 33, 60,
+			44, 11, 11, 21, 37, 56, 11, 233, 247, 239, 0, 240, 207, 221, 243, 224, 223, 206, 187, 235, 7, 251, 246, 254, 13, 32, 20, 229, 0, 35,
+			46, 70, 33, 5, 29, 45, 27, 7, 253, 42, 69, 16, 216, 207, 221, 231, 231, 211, 190, 189, 200, 214, 223, 186, 196, 6, 41, 25, 239, 224,
+			6, 41, 38, 32, 26, 35, 63, 45, 35, 24, 16, 77, 112, 73, 10, 8, 28, 13, 244, 232, 240, 227, 186, 184, 170, 149, 158, 206, 219, 217,
+			238, 247, 3, 9, 7, 64, 100, 59, 39, 45, 49, 31, 22, 14, 31, 36, 0, 9, 247, 212, 3, 41, 34, 235, 202, 242, 246, 203, 177, 200,
+			221, 211, 204, 192, 207, 218, 11, 34, 13, 30, 44, 83, 69, 35, 44, 72, 92, 71, 11, 251, 228, 228, 0, 247, 200, 188, 216, 217, 194, 195,
+			240, 10, 251, 10, 26, 13, 8, 26, 59, 61, 42, 29, 5, 3, 4, 252, 0, 252, 1, 255, 233, 218, 219, 246, 255, 6, 250, 228, 244, 247,
+			244, 239, 245, 0, 19, 13, 237, 233, 230, 254, 34, 14, 24, 13, 21, 27, 8, 44, 45, 45, 58, 34, 1, 253, 4, 2, 254, 232, 207, 222,
+			207, 185, 195, 219, 241, 234, 235, 225, 229, 238, 240, 21, 33, 25, 47, 45, 33, 21, 19, 54, 65, 35, 18, 17, 254, 239, 241, 234, 226, 231,
+			5, 255, 229, 217, 205, 226, 0, 10, 14, 239, 241, 1, 5, 4, 9, 26, 25, 20, 38, 4, 238, 5, 35, 37, 16, 11, 2, 248, 245, 1,
+			252, 239, 239, 0, 245, 208, 209, 234, 227, 231, 9, 6, 8, 249, 251, 20, 28, 38, 58, 52, 19, 20, 26, 254, 245, 245, 1, 12, 232, 230,
+			232, 223, 231, 250, 15, 240, 236, 14, 249, 244, 241, 254, 2, 5, 27, 7, 234, 232, 17, 32, 0, 21, 26, 17, 249, 239, 253, 233, 3, 15,
+			254, 230, 207, 236, 237, 222, 243, 1, 15, 2, 4, 246, 7, 53, 53, 53, 53, 62, 52, 18, 27, 33, 41, 20, 253, 1, 212, 209, 227, 234,
+			218, 222, 229, 227, 227, 224, 236, 246, 237, 0, 246, 215, 220, 223, 235, 233, 0, 12, 0, 248, 247, 15, 30, 44, 73, 72, 44, 40, 35, 36,
+			36, 23, 20, 25, 248, 227, 227, 204, 211, 229, 245, 241, 223, 222, 238, 246, 254, 20, 38, 15, 10, 26, 2, 0, 14, 0, 249, 248, 251, 0,
+			228, 211, 242, 1, 15, 14, 11, 0, 251, 14, 6, 8, 24, 19, 17, 254, 233, 248, 248, 243, 19, 18, 234, 11, 11, 252, 254, 9, 44, 33,
+			254, 2, 6, 254, 231, 252, 12, 236, 229, 237, 224, 206, 220, 244, 255, 236, 228, 12, 7, 255, 16, 36, 41, 37, 38, 39, 15, 2, 11, 35,
+			23, 243, 18, 1, 229, 247, 237, 239, 2, 240, 246, 243, 229, 230, 255, 0, 244, 2, 249, 7, 6, 229, 240, 25, 43, 12, 255, 1, 247, 13,
+			14, 6, 11, 6, 3, 16, 235, 198, 0, 21, 7, 2, 220, 239, 18, 246, 248, 255, 9, 25, 33, 0, 244, 247, 6, 26, 25, 0, 248, 8,
+			1, 239, 238, 254, 7, 23, 5, 246, 248, 225, 239, 25, 4, 247, 3, 3, 9, 250, 244, 21, 36, 22, 11, 15, 10, 3, 23, 12, 1, 253,
+			2, 6, 244, 222, 218, 245, 250, 225, 226, 237, 238, 245, 244, 240, 237, 10, 10, 9, 249, 240, 31, 35, 18, 25, 251, 247, 21, 15, 244, 236,
+			247, 3, 14, 249, 238, 254, 252, 10, 24, 254, 252, 29, 24, 6, 12, 12, 30, 38, 21, 13, 11, 255, 9, 17, 8, 240, 242, 245, 224, 215,
+			223, 240, 242, 250, 233, 237, 238, 250, 15, 255, 247, 3, 19, 11, 1, 5, 0, 249, 19, 12, 9, 250, 2, 8, 7, 241, 26, 33, 253, 8,
+			247, 249, 252, 244, 6, 0, 220, 228, 241, 234, 235, 244, 244, 4, 253, 255, 8, 254, 9, 21, 29, 20, 16, 21, 29, 26, 7, 19, 26, 19,
+			23, 14, 12, 21, 253, 13, 4, 12, 2, 2, 250, 248, 247, 238, 237, 220, 230, 225, 222, 227, 211, 225, 229, 225, 245, 239, 241, 253, 3, 11,
+			8, 14, 17, 20, 17, 12, 12, 3, 6, 18, 5, 246, 246, 9, 14, 249, 247, 236, 245, 10, 10, 17, 0, 253, 19, 24, 16, 7, 37, 42,
+			28, 32, 14, 30, 16, 11, 29, 5, 251, 250, 8, 0, 229, 242, 234, 243, 244, 244, 249, 231, 239, 245, 5, 0, 237, 0, 250, 241, 252, 243,
+			10, 17, 254, 2, 2, 2, 2, 4, 2, 250, 244, 236, 249, 237, 219, 225, 239, 233, 214, 206, 222, 221, 225, 225, 227, 241, 227, 248, 0, 0,
+			30, 7, 15, 0, 0, 248, 249, 252, 250, 251, 254, 255, 255, 0, 249, 243, 242, 249, 1, 3, 0, 2, 3, 1, 253, 251, 247, 248, 252, 252,
+			255, 250, 253, 253, 255, 254, 0, 8, 16, 18, 18, 16, 12, 8, 6, 5, 7, 12, 17, 24, 24, 24, 21, 19, 20, 16, 13, 13, 7, 9,
+			8, 6, 7, 12, 14, 20, 21, 21, 19, 15, 7, 0, 249, 239, 242, 245, 243, 245, 247, 248, 251, 249, 251, 250, 243, 241, 237, 240, 241, 242,
+			244, 247, 248, 248, 249, 243, 241, 245, 247, 249, 248, 250, 0, 255, 254, 251, 251, 246, 239, 247, 241, 233, 230, 231, 236, 240, 245, 253, 0, 1,
+			3, 2, 0, 255, 0, 6, 8, 11, 16, 25, 27, 30, 36, 36, 26, 17, 5, 255, 253, 254, 0, 3, 9, 15, 19, 21, 21, 18, 12, 5,
+			5, 6, 5, 2, 2, 0, 253, 0, 12, 16, 12, 2, 246, 237, 235, 232, 227, 224, 226, 232, 238, 243, 247, 252, 255, 1, 3, 0, 251, 244,
+			242, 247, 251, 0, 4, 6, 1, 251, 248, 243, 247, 248, 249, 254, 4, 255, 255, 255, 253, 255, 4, 5, 5, 4, 0, 3, 2, 0, 254, 255,
+			3, 6, 12, 14, 10, 4, 0, 1, 3, 12, 20, 22, 26, 22, 20, 18, 15, 9, 4, 1, 0, 13, 15, 12, 11, 5, 254, 249, 241, 242,
+			238, 238, 243, 249, 247, 250, 253, 254, 255, 0, 1, 3, 6, 3, 0, 254, 254, 5, 7, 1, 0, 250, 248, 247, 240, 241, 241, 244, 248, 249,
+			250, 1, 4, 254, 0, 253, 253, 0, 0, 4, 10, 17, 21, 15, 4, 250, 242, 236, 230, 229, 234, 236, 239, 243, 0, 10, 19, 24, 22, 17,
+			18, 15, 17, 14, 11, 17, 31, 39, 44, 42, 34, 34, 30, 24, 14, 7, 255, 254, 0, 0, 1, 4, 11, 10, 7, 2, 2, 4, 1, 255,
+			250, 0, 5, 8, 8, 9, 6, 2, 1, 252, 243, 239, 237, 232, 230, 222, 221, 222, 229, 235, 235, 241, 240, 236, 237, 237, 242, 244, 244, 246,
+			245, 241, 245, 237, 231, 235, 235, 244, 248, 243, 240, 236, 234, 238, 236, 243, 252, 251, 254, 0, 252, 0, 0, 5, 9, 13, 18, 22, 21, 18,
+			22, 26, 36, 41, 38, 43, 40, 34, 26, 17, 11, 14, 8, 8, 8, 9, 18, 26, 24, 12, 254, 254, 254, 251, 254, 252, 253, 252, 253, 255,
+			1, 5, 6, 3, 254, 250, 250, 248, 241, 242, 245, 248, 254, 0, 3, 11, 11, 14, 9, 250, 236, 236, 235, 242, 246, 250, 251, 251, 0, 0,
+			252, 242, 234, 234, 230, 234, 238, 243, 246, 242, 250, 10, 16, 18, 15, 10, 3, 1, 254, 255, 251, 6, 20, 20, 25, 28, 20, 11, 1, 250,
+			250, 251, 252, 247, 246, 244, 254, 7, 0, 252, 255, 0, 3, 0, 1, 2, 12, 15, 22, 25, 21, 20, 11, 7, 10, 7, 8, 6, 2, 3,
+			9, 5, 255, 252, 239, 228, 230, 231, 233, 237, 237, 242, 248, 253, 8, 19, 16, 14, 9, 253, 253, 250, 244, 244, 243, 246, 253, 254, 252, 249,
+			238, 234, 237, 239, 243, 243, 252, 1, 0, 0, 11, 11, 12, 19, 23, 22, 20, 15, 16, 13, 9, 12, 20, 23, 28, 30, 26, 20, 12, 6,
+			6, 8, 10, 9, 7, 6, 9, 15, 24, 30, 29, 25, 12, 1, 250, 248, 245, 243, 237, 230, 224, 236, 244, 248, 242, 238, 241, 242, 249, 253,
+			246, 237, 233, 236, 248, 253, 3, 5, 5, 254, 252, 243, 242, 242, 241, 237, 231, 231, 232, 234, 244, 247, 255, 3, 0, 255, 255, 254, 2, 4,
+			254, 0, 3, 5, 7, 2, 2, 9, 14, 17, 14, 3, 254, 249, 244, 250, 246, 246, 252, 251, 0, 3, 8, 22, 29, 28, 33, 28, 25, 16,
+			6, 9, 5, 10, 18, 18, 17, 21, 23, 26, 15, 4, 3, 0, 253, 254, 249, 248, 246, 252, 2, 0, 255, 253, 254, 243, 239, 234, 224, 232,
+			242, 247, 3, 2, 2, 1, 243, 232, 239, 245, 253, 254, 255, 3, 10, 13, 12, 6, 255, 4, 7, 1, 250, 241, 240, 244, 246, 243, 247, 251,
+			2, 5, 0, 249, 233, 228, 229, 234, 250, 255, 253, 6, 27, 29, 28, 27, 21, 5, 255, 254, 255, 0, 253, 7, 11, 9, 17, 28, 29, 18,
+			3, 4, 4, 254, 251, 255, 1, 11, 16, 23, 29, 30, 31, 31, 23, 8, 250, 239, 238, 237, 244, 249, 251, 4, 5, 1, 2, 251, 242, 243,
+			241, 241, 233, 233, 245, 0, 14, 20, 16, 9, 0, 243, 239, 241, 235, 226, 224, 236, 249, 0, 4, 0, 251, 247, 240, 235, 236, 233, 237, 247,
+			1, 15, 27, 34, 35, 29, 21, 9, 3, 2, 253, 3, 8, 19, 25, 30, 26, 20, 15, 17, 14, 6, 248, 236, 245, 251, 252, 5, 9, 11,
+			16, 9, 4, 0, 244, 250, 254, 253, 5, 0, 0, 5, 252, 252, 0, 246, 247, 252, 243, 244, 241, 241, 250, 251, 251, 2, 10, 6, 3, 2,
+			250, 244, 235, 226, 232, 234, 234, 240, 239, 232, 227, 232, 240, 244, 246, 243, 241, 243, 244, 10, 24, 26, 29, 26, 20, 18, 21, 19, 14, 1,
+			3, 20, 16, 16, 23, 14, 6, 5, 5, 0, 253, 252, 253, 251, 253, 11, 22, 15, 17, 24, 29, 36, 40, 30, 17, 12, 255, 250, 242, 231,
+			234, 239, 229, 243, 253, 245, 253, 251, 248, 246, 230, 229, 242, 250, 6, 15, 21, 30, 23, 21, 17, 254, 254, 0, 255, 3, 255, 247, 248, 244,
+			254, 3, 251, 243, 231, 210, 215, 227, 230, 239, 250, 252, 0, 3, 10, 25, 36, 12, 253, 2, 241, 250, 3, 239, 242, 249, 3, 30, 40, 29,
+			15, 248, 229, 229, 243, 0, 4, 246, 243, 254, 11, 29, 34, 23, 20, 30, 33, 21, 8, 243, 233, 250, 15, 39, 52, 31, 18, 4, 236, 239,
+			236, 237, 244, 228, 228, 240, 255, 12, 20, 14, 255, 0, 13, 6, 17, 11, 229, 224, 237, 247, 14, 16, 10, 12, 254, 245, 236, 226, 220, 210,
+			216, 231, 233, 245, 247, 236, 246, 241, 247, 11, 15, 7, 255, 2, 0, 253, 12, 21, 29, 34, 17, 18, 25, 20, 23, 19, 24, 29, 32, 37,
+			33, 18, 10, 5, 0, 13, 10, 0, 251, 248, 246, 240, 243, 5, 25, 22, 23, 23, 20, 16, 252, 243, 245, 239, 248, 253, 248, 251, 245, 245,
+			253, 243, 235, 242, 235, 223, 216, 204, 190, 193, 205, 225, 249, 10, 8, 8, 250, 249, 4, 7, 13, 10, 2, 0, 252, 253, 245, 242, 246, 237,
+			243, 248, 237, 243, 237, 228, 251, 2, 19, 39, 22, 25, 24, 34, 51, 44, 41, 49, 48, 62, 56, 45, 38, 21, 23, 18, 254, 253, 230, 226,
+			241, 238, 255, 0, 252, 3, 243, 225, 241, 230, 244, 8, 254, 10, 9, 4, 21, 5, 10, 20, 255, 1, 242, 216, 229, 223, 209, 224, 217, 204,
+			226, 230, 223, 239, 246, 251, 18, 31, 39, 55, 52, 33, 16, 247, 243, 7, 4, 1, 1, 2, 12, 13, 255, 239, 216, 204, 212, 236, 246, 1,
+			8, 0, 255, 0, 8, 22, 18, 30, 42, 28, 21, 18, 6, 249, 230, 226, 239, 242, 241, 255, 1, 7, 23, 26, 31, 28, 23, 30, 31, 28,
+			24, 45, 57, 68, 70, 43, 30, 33, 39, 27, 5, 254, 232, 213, 207, 186, 189, 190, 183, 195, 213, 218, 224, 233, 219, 220, 224, 236, 243, 228,
+			235, 0, 5, 3, 14, 14, 249, 254, 1, 245, 241, 246, 253, 2, 3, 5, 8, 6, 251, 1, 1, 242, 245, 238, 236, 250, 3, 29, 48, 45,
+			43, 38, 23, 33, 29, 22, 19, 6, 1, 9, 6, 13, 18, 4, 4, 253, 2, 26, 29, 31, 19, 9, 8, 11, 18, 19, 26, 13, 9, 25,
+			12, 12, 2, 225, 227, 226, 214, 228, 229, 225, 239, 220, 191, 204, 208, 218, 237, 235, 244, 9, 22, 9, 235, 223, 226, 228, 253, 14, 4, 15,
+			13, 242, 246, 240, 245, 4, 0, 1, 10, 18, 17, 13, 25, 17, 9, 18, 26, 27, 28, 23, 23, 38, 43, 30, 35, 46, 24, 21, 15, 248,
+			253, 246, 216, 215, 214, 229, 0, 5, 9, 255, 236, 243, 234, 235, 231, 211, 224, 246, 240, 8, 10, 12, 30, 9, 255, 254, 0, 9, 6, 8,
+			2, 4, 19, 5, 14, 27, 17, 38, 44, 24, 19, 19, 4, 246, 238, 250, 2, 19, 24, 1, 1, 253, 246, 249, 239, 224, 219, 213, 213, 228,
+			252, 0, 252, 240, 242, 246, 255, 18, 29, 19, 17, 25, 22, 18, 18, 9, 12, 32, 26, 12, 9, 238, 227, 244, 229, 225, 3, 15, 21, 31,
+			29, 10, 10, 13, 249, 243, 236, 214, 211, 212, 209, 232, 251, 242, 231, 232, 225, 220, 227, 222, 214, 216, 231, 242, 249, 247, 254, 7, 14, 30,
+			41, 44, 34, 7, 1, 253, 244, 0, 0, 244, 5, 23, 30, 40, 14, 247, 249, 252, 255, 11, 24, 12, 0, 2, 2, 7, 27, 24, 14, 254,
+			245, 0, 241, 238, 244, 221, 234, 252, 250, 26, 36, 8, 15, 7, 249, 29, 48, 51, 73, 77, 79, 90, 81, 59, 47, 34, 28, 41, 36, 24,
+			30, 19, 6, 20, 18, 20, 34, 22, 4, 245, 229, 232, 222, 207, 212, 214, 237, 1, 255, 8, 0, 242, 240, 226, 217, 220, 215, 199, 193, 199,
+			222, 228, 245, 242, 211, 210, 207, 192, 197, 195, 183, 201, 215, 216, 231, 238, 221, 225, 242, 236, 240, 238, 215, 213, 221, 205, 212, 228, 220, 232,
+			254, 254, 8, 7, 251, 238, 234, 237, 242, 250, 0, 0, 5, 21, 39, 49, 77, 77, 62, 73, 65, 40, 26, 3, 3, 8, 21, 34, 43, 54,
+			40, 40, 36, 35, 43, 31, 36, 34, 26, 50, 53, 39, 47, 45, 45, 31, 34, 16, 243, 249, 227, 200, 220, 230, 232, 13, 15, 5, 31, 29,
+			33, 24, 7, 10, 11, 28, 30, 10, 36, 32, 39, 47, 22, 26, 32, 28, 19, 7, 4, 0, 9, 13, 4, 32, 52, 44, 54, 43, 7, 255,
+			235, 213, 210, 198, 192, 199, 191, 184, 171, 189, 198, 179, 186, 173, 157, 145, 133, 140, 143, 166, 200, 216, 227, 251, 233, 224, 219, 193, 197, 220,
+			224, 235, 255, 251, 251, 18, 30, 24, 36, 49, 50, 59, 50, 34, 31, 21, 15, 25, 39, 71, 65, 61, 53, 36, 32, 33, 20, 9, 5, 8,
+			21, 30, 22, 4, 13, 21, 23, 28, 24, 18, 14, 5, 253, 253, 254, 0, 3, 3, 4, 6, 7, 9, 6, 4, 3, 1, 0, 0, 168, 6,
+			10, 0, 0, 255, 0, 1, 254, 252, 1, 6, 8, 8, 10, 10, 9, 11, 11, 3, 250, 250, 253, 249, 246, 247, 248, 253, 0, 0, 4, 5,
+			253, 247, 245, 245, 242, 239, 244, 253, 3, 2, 3, 8, 5, 1, 0, 255, 3, 3, 0, 3, 7, 12, 13, 22, 27, 19, 10, 5, 9, 10,
+			7, 9, 9, 255, 247, 2, 9, 249, 237, 243, 250, 247, 244, 247, 239, 223, 235, 249, 251, 248, 239, 0, 14, 4, 253, 5, 9, 0, 1, 3,
+			6, 0, 254, 19, 17, 10, 17, 29, 31, 18, 13, 17, 21, 252, 238, 227, 204, 214, 246, 2, 4, 10, 21, 38, 37, 8, 227, 217, 225, 212,
+			196, 201, 217, 235, 19, 58, 48, 25, 30, 24, 253, 234, 231, 217, 226, 2, 0, 11, 38, 47, 61, 68, 48, 253, 233, 250, 242, 6, 14, 244,
+			249, 29, 69, 64, 50, 22, 0, 246, 232, 222, 185, 188, 230, 235, 242, 4, 6, 4, 14, 11, 217, 194, 213, 218, 218, 219, 235, 253, 17, 20,
+			0, 252, 6, 15, 23, 15, 251, 246, 0, 6, 249, 243, 24, 54, 49, 41, 44, 38, 6, 14, 26, 241, 191, 239, 38, 35, 28, 8, 17, 0,
+			234, 225, 220, 221, 199, 209, 241, 249, 0, 23, 13, 241, 236, 244, 6, 14, 12, 252, 236, 246, 250, 10, 31, 33, 29, 34, 76, 66, 3, 249,
+			13, 16, 5, 255, 216, 240, 43, 50, 38, 9, 2, 3, 238, 239, 233, 207, 236, 231, 216, 247, 225, 194, 217, 230, 196, 183, 227, 255, 244, 251,
+			31, 22, 3, 43, 44, 16, 9, 30, 28, 229, 231, 228, 230, 24, 55, 55, 51, 53, 35, 13, 240, 250, 254, 224, 237, 255, 243, 236, 250, 15,
+			37, 13, 229, 212, 214, 215, 212, 233, 248, 9, 16, 5, 30, 39, 38, 20, 238, 238, 237, 240, 244, 243, 13, 48, 79, 92, 62, 19, 2, 8,
+			252, 227, 232, 217, 231, 25, 46, 53, 35, 4, 1, 19, 253, 223, 215, 223, 244, 249, 5, 254, 7, 10, 5, 22, 248, 238, 226, 227, 239, 221,
+			220, 222, 0, 15, 30, 44, 20, 246, 201, 201, 241, 243, 251, 8, 14, 34, 35, 41, 31, 234, 168, 156, 183, 207, 245, 244, 242, 253, 255, 38,
+			78, 68, 28, 4, 232, 189, 169, 177, 207, 230, 9, 26, 23, 41, 79, 66, 52, 49, 234, 191, 225, 15, 42, 60, 52, 74, 101, 83, 92, 69,
+			32, 8, 235, 254, 253, 13, 36, 26, 34, 36, 12, 3, 11, 3, 226, 201, 188, 156, 171, 204, 222, 224, 2, 40, 21, 17, 10, 230, 199, 163,
+			143, 185, 247, 233, 219, 21, 38, 39, 39, 14, 250, 230, 203, 199, 230, 248, 241, 23, 88, 78, 61, 44, 252, 204, 199, 211, 190, 184, 210, 2,
+			23, 17, 46, 82, 112, 106, 46, 15, 235, 173, 150, 184, 239, 4, 43, 83, 99, 99, 52, 25, 35, 4, 237, 211, 198, 237, 237, 3, 40, 46,
+			43, 34, 36, 3, 224, 206, 203, 217, 234, 255, 244, 247, 21, 43, 36, 9, 242, 218, 215, 200, 218, 4, 250, 244, 32, 41, 21, 24, 14, 0,
+			228, 213, 227, 213, 219, 230, 203, 235, 37, 38, 50, 84, 63, 255, 215, 217, 202, 193, 218, 233, 243, 40, 86, 75, 68, 46, 2, 255, 14, 250,
+			197, 181, 222, 225, 0, 37, 12, 42, 69, 60, 32, 240, 226, 223, 217, 214, 222, 252, 13, 52, 79, 44, 46, 51, 24, 230, 220, 247, 230, 219,
+			207, 224, 1, 245, 228, 252, 40, 19, 220, 220, 214, 176, 188, 213, 229, 252, 255, 249, 249, 33, 25, 3, 26, 13, 250, 241, 38, 76, 61, 73,
+			62, 35, 31, 43, 46, 14, 235, 242, 35, 73, 59, 2, 228, 252, 247, 246, 14, 5, 224, 185, 208, 220, 187, 196, 206, 228, 249, 247, 11, 13,
+			236, 204, 218, 235, 235, 246, 253, 25, 39, 5, 251, 5, 27, 17, 0, 6, 14, 29, 37, 39, 30, 3, 242, 251, 250, 1, 12, 15, 0, 240,
+			29, 28, 8, 25, 4, 2, 247, 223, 239, 241, 251, 254, 229, 229, 0, 14, 12, 23, 13, 235, 241, 15, 243, 181, 225, 30, 31, 30, 245, 242,
+			0, 12, 27, 248, 236, 233, 253, 31, 40, 24, 250, 248, 16, 4, 227, 227, 231, 227, 249, 27, 48, 47, 41, 35, 29, 1, 229, 226, 225, 229,
+			225, 237, 17, 23, 249, 11, 44, 34, 19, 32, 23, 231, 222, 242, 244, 249, 12, 253, 249, 9, 22, 32, 27, 15, 242, 247, 14, 242, 195, 192,
+			212, 233, 243, 245, 245, 253, 20, 27, 12, 247, 255, 3, 228, 220, 215, 246, 16, 21, 49, 30, 20, 10, 245, 222, 216, 239, 242, 255, 0, 5,
+			37, 44, 34, 24, 23, 15, 241, 229, 246, 245, 229, 240, 0, 14, 35, 42, 39, 37, 29, 14, 241, 206, 204, 227, 216, 235, 7, 11, 45, 80,
+			83, 43, 21, 0, 226, 224, 206, 190, 202, 244, 40, 69, 69, 35, 15, 17, 234, 219, 217, 202, 221, 223, 228, 254, 17, 37, 61, 51, 27, 3,
+			196, 191, 232, 212, 190, 223, 12, 32, 26, 22, 12, 254, 230, 234, 232, 195, 198, 243, 12, 244, 252, 33, 73, 77, 43, 26, 8, 243, 221, 247,
+			18, 14, 14, 35, 93, 69, 23, 42, 39, 0, 236, 246, 252, 245, 245, 248, 245, 3, 16, 23, 33, 16, 230, 209, 198, 194, 194, 176, 185, 211,
+			199, 206, 228, 0, 2, 252, 43, 46, 4, 5, 10, 0, 246, 247, 26, 36, 30, 46, 58, 63, 93, 90, 54, 27, 13, 252, 234, 255, 2, 5,
+			0, 38, 43, 6, 17, 255, 217, 174, 149, 151, 159, 163, 175, 222, 15, 36, 12, 242, 0, 3, 225, 197, 205, 237, 237, 234, 24, 42, 46, 72,
+			57, 58, 47, 249, 0, 17, 16, 24, 27, 35, 24, 5, 24, 62, 50, 28, 22, 27, 21, 249, 221, 198, 211, 227, 249, 3, 11, 5, 232, 215,
+			212, 208, 186, 223, 7, 0, 239, 231, 255, 19, 38, 48, 58, 48, 32, 10, 231, 247, 242, 240, 12, 22, 18, 18, 65, 75, 45, 34, 16, 239,
+			207, 205, 201, 215, 224, 209, 234, 0, 245, 253, 16, 10, 248, 211, 208, 221, 217, 216, 219, 4, 44, 53, 38, 41, 28, 0, 1, 25, 26, 253,
+			253, 9, 31, 13, 251, 8, 23, 20, 0, 1, 248, 244, 241, 247, 9, 242, 225, 219, 233, 255, 233, 237, 239, 222, 205, 222, 235, 228, 5, 24,
+			31, 39, 39, 37, 43, 27, 236, 228, 5, 3, 240, 0, 35, 43, 32, 38, 26, 12, 20, 33, 46, 28, 249, 255, 39, 38, 12, 249, 254, 18,
+			8, 240, 205, 194, 219, 238, 244, 234, 234, 7, 20, 3, 234, 209, 194, 209, 238, 209, 209, 246, 0, 24, 24, 21, 19, 21, 18, 12, 12, 0,
+			247, 233, 7, 40, 17, 253, 254, 4, 26, 41, 19, 9, 37, 35, 23, 24, 16, 8, 243, 249, 243, 203, 207, 210, 201, 203, 230, 19, 29, 23,
+			9, 5, 5, 3, 253, 233, 231, 239, 254, 255, 250, 1, 12, 49, 73, 46, 16, 250, 251, 252, 245, 235, 208, 234, 9, 45, 82, 68, 49, 35,
+			33, 13, 236, 231, 217, 194, 201, 226, 243, 236, 236, 12, 25, 17, 10, 0, 12, 254, 220, 198, 187, 200, 223, 244, 250, 10, 10, 244, 8, 25,
+			15, 245, 225, 226, 233, 251, 4, 22, 27, 38, 66, 39, 29, 19, 6, 0, 241, 248, 249, 22, 33, 26, 31, 37, 45, 32, 11, 6, 253, 232,
+			236, 235, 232, 238, 242, 5, 23, 19, 2, 5, 253, 251, 231, 219, 238, 231, 234, 6, 19, 16, 23, 5, 4, 11, 5, 246, 241, 254, 237, 237,
+			251, 23, 43, 36, 30, 7, 246, 239, 239, 233, 227, 233, 245, 12, 14, 27, 39, 27, 33, 29, 248, 207, 200, 191, 176, 202, 232, 236, 246, 15,
+			23, 24, 3, 231, 238, 243, 238, 209, 225, 246, 243, 15, 36, 63, 72, 58, 35, 17, 4, 230, 218, 226, 249, 19, 31, 60, 65, 48, 64, 67,
+			35, 17, 239, 218, 218, 185, 177, 238, 50, 36, 30, 27, 9, 9, 10, 2, 219, 195, 192, 203, 222, 228, 252, 14, 34, 43, 33, 35, 21, 243,
+			209, 213, 235, 225, 227, 25, 63, 67, 68, 35, 239, 250, 233, 213, 248, 229, 210, 249, 21, 17, 24, 24, 26, 13, 227, 218, 215, 179, 156, 186,
+			241, 8, 255, 22, 65, 67, 48, 13, 247, 0, 233, 216, 238, 242, 244, 22, 77, 101, 71, 32, 22, 19, 254, 248, 0, 249, 232, 4, 46, 46,
+			37, 18, 246, 249, 252, 216, 181, 160, 160, 203, 11, 41, 25, 33, 58, 47, 20, 245, 200, 179, 205, 228, 233, 254, 21, 30, 37, 70, 67, 11,
+			7, 250, 207, 195, 213, 223, 235, 8, 18, 45, 66, 47, 19, 8, 4, 218, 200, 235, 2, 249, 242, 21, 36, 45, 29, 251, 234, 225, 207, 206,
+			252, 24, 26, 0, 19, 42, 16, 3, 0, 238, 206, 185, 202, 236, 0, 251, 31, 67, 40, 36, 44, 63, 25, 221, 218, 234, 249, 252, 3, 33,
+			52, 34, 31, 34, 9, 231, 195, 204, 230, 217, 221, 18, 43, 19, 17, 41, 17, 247, 240, 228, 235, 201, 175, 200, 247, 4, 248, 4, 15, 27,
+			24, 24, 25, 254, 236, 254, 33, 34, 10, 20, 43, 27, 4, 255, 16, 252, 235, 248, 250, 18, 15, 10, 8, 16, 6, 239, 247, 251, 243, 212,
+			204, 216, 231, 0, 254, 246, 252, 0, 1, 0, 245, 231, 229, 228, 252, 254, 2, 56, 54, 42, 35, 21, 21, 5, 254, 242, 253, 0, 243, 237,
+			248, 10, 13, 9, 10, 12, 15, 26, 12, 251, 240, 239, 251, 8, 16, 9, 0, 244, 249, 0, 4, 15, 5, 10, 12, 249, 236, 229, 0, 19,
+			20, 9, 2, 255, 244, 241, 252, 10, 255, 235, 241, 249, 234, 220, 226, 247, 6, 15, 12, 5, 13, 11, 1, 1, 0, 1, 89, 9, 40, 0,
+			2, 0, 0, 4, 1, 0, 2, 255, 254, 255, 250, 2, 254, 246, 254, 2, 255, 251, 251, 0, 253, 252, 253, 1, 0, 0, 2, 2, 1, 3,
+			4, 6, 2, 6, 7, 6, 4, 4, 6, 3, 3, 5, 5, 3, 255, 3, 1, 253, 2, 0, 252, 251, 255, 253, 250, 253, 0, 255, 251, 251,
+			253, 253, 0, 255, 250, 252, 1, 2, 255, 1, 0, 1, 2, 1, 1, 3, 2, 1, 1, 3, 8, 3, 3, 2, 6, 7, 6, 10, 254, 1,
+			11, 254, 255, 6, 0, 0, 0, 0, 6, 0, 251, 4, 0, 0, 2, 255, 0, 255, 1, 3, 248, 1, 3, 255, 3, 0, 2, 253, 251, 5,
+			0, 252, 255, 2, 1, 252, 249, 255, 240, 208, 216, 240, 247, 241, 244, 0, 255, 254, 254, 255, 15, 14, 5, 4, 7, 9, 14, 9, 14, 15,
+			10, 11, 1, 8, 19, 10, 11, 13, 9, 13, 8, 13, 5, 254, 253, 253, 0, 0, 247, 255, 251, 248, 0, 6, 247, 248, 5, 252, 250, 5,
+			4, 246, 4, 8, 3, 253, 5, 0, 8, 9, 254, 1, 2, 6, 5, 1, 2, 9, 4, 252, 227, 226, 225, 239, 242, 237, 246, 248, 249, 243,
+			246, 250, 0, 9, 5, 5, 5, 12, 22, 27, 24, 240, 8, 30, 235, 253, 23, 253, 246, 1, 15, 2, 251, 9, 6, 0, 6, 10, 6, 5,
+			21, 0, 243, 9, 15, 0, 234, 252, 3, 240, 235, 0, 254, 234, 244, 2, 2, 14, 15, 16, 2, 8, 11, 239, 3, 249, 247, 249, 1, 3,
+			240, 235, 2, 10, 240, 239, 251, 254, 249, 252, 12, 23, 6, 13, 12, 7, 10, 0, 0, 250, 4, 11, 0, 15, 5, 0, 31, 34, 0, 0,
+			11, 8, 8, 252, 8, 18, 252, 248, 241, 241, 249, 237, 239, 243, 241, 245, 2, 255, 252, 255, 0, 8, 13, 244, 206, 218, 240, 254, 0, 15,
+			252, 247, 10, 13, 1, 253, 10, 252, 11, 31, 4, 245, 14, 29, 10, 0, 9, 0, 4, 5, 254, 252, 255, 15, 5, 229, 16, 23, 230, 252,
+			19, 245, 243, 5, 251, 232, 10, 6, 241, 13, 10, 245, 240, 2, 21, 240, 230, 21, 13, 248, 242, 247, 25, 3, 252, 5, 239, 9, 25, 244,
+			246, 252, 16, 27, 245, 252, 21, 5, 251, 8, 12, 4, 250, 9, 19, 6, 237, 246, 26, 31, 225, 232, 40, 248, 250, 246, 239, 14, 1, 248,
+			4, 227, 9, 13, 211, 11, 27, 243, 230, 0, 9, 250, 249, 12, 13, 234, 235, 22, 11, 246, 245, 0, 1, 3, 11, 0, 2, 10, 254, 254,
+			0, 7, 5, 248, 254, 12, 13, 252, 237, 253, 13, 16, 250, 246, 28, 244, 224, 21, 32, 7, 197, 242, 62, 5, 227, 251, 17, 7, 238, 244,
+			19, 12, 241, 249, 0, 17, 18, 237, 7, 6, 250, 18, 246, 232, 17, 17, 238, 244, 247, 24, 7, 227, 0, 0, 9, 255, 242, 15, 1, 7,
+			253, 249, 16, 10, 6, 223, 16, 42, 241, 209, 17, 64, 237, 208, 4, 32, 15, 218, 249, 20, 253, 11, 245, 239, 27, 24, 222, 232, 30, 20,
+			239, 236, 17, 6, 231, 244, 17, 30, 222, 233, 20, 30, 249, 239, 246, 4, 28, 228, 228, 39, 7, 234, 5, 16, 17, 253, 216, 10, 23, 5,
+			239, 246, 46, 0, 232, 0, 251, 12, 8, 248, 238, 13, 20, 243, 238, 23, 2, 227, 12, 21, 244, 242, 22, 13, 249, 242, 254, 18, 9, 226,
+			248, 18, 27, 252, 198, 250, 57, 253, 215, 254, 40, 18, 203, 4, 46, 2, 1, 5, 240, 246, 58, 14, 208, 218, 42, 48, 208, 210, 49, 38,
+			214, 228, 0, 17, 15, 246, 234, 233, 43, 10, 196, 8, 34, 212, 0, 50, 235, 229, 12, 24, 6, 220, 240, 36, 20, 237, 233, 3, 56, 23,
+			199, 238, 53, 25, 214, 225, 42, 25, 228, 240, 24, 10, 18, 241, 206, 12, 52, 253, 193, 232, 55, 56, 223, 192, 23, 84, 215, 217, 48, 250,
+			234, 5, 49, 246, 204, 34, 42, 241, 217, 243, 57, 0, 210, 6, 243, 2, 12, 244, 7, 9, 2, 12, 249, 242, 240, 22, 35, 202, 0, 38,
+			248, 2, 244, 20, 3, 231, 10, 16, 4, 224, 1, 43, 235, 238, 44, 248, 241, 251, 254, 19, 248, 198, 40, 62, 196, 224, 62, 242, 232, 8,
+			4, 3, 246, 0, 27, 248, 204, 9, 51, 246, 234, 245, 15, 30, 220, 237, 26, 18, 253, 231, 15, 18, 0, 9, 245, 241, 30, 12, 19, 217,
+			236, 29, 20, 244, 249, 6, 241, 2, 10, 0, 237, 7, 249, 247, 18, 8, 243, 3, 21, 206, 5, 25, 13, 225, 219, 50, 247, 229, 4, 247,
+			7, 29, 241, 221, 47, 36, 211, 241, 34, 22, 240, 253, 21, 253, 0, 18, 245, 9, 8, 227, 23, 12, 229, 244, 11, 36, 236, 211, 30, 44,
+			252, 227, 250, 7, 249, 245, 21, 0, 235, 39, 221, 227, 55, 8, 254, 252, 218, 252, 39, 242, 217, 25, 29, 5, 202, 29, 73, 213, 197, 29,
+			30, 225, 12, 7, 253, 6, 220, 16, 21, 234, 248, 247, 17, 27, 249, 229, 255, 19, 37, 235, 236, 38, 231, 37, 247, 218, 52, 17, 217, 238,
+			251, 73, 13, 145, 31, 56, 223, 237, 0, 26, 0, 243, 1, 248, 3, 12, 252, 238, 12, 24, 238, 235, 22, 6, 220, 12, 16, 248, 3, 251,
+			2, 2, 24, 222, 247, 56, 238, 218, 13, 9, 252, 237, 255, 39, 236, 251, 26, 245, 246, 245, 2, 9, 8, 19, 208, 7, 74, 178, 238, 54,
+			243, 11, 230, 248, 27, 249, 12, 0, 235, 28, 56, 245, 191, 247, 104, 252, 180, 13, 36, 9, 232, 181, 56, 61, 207, 202, 252, 51, 17, 205,
+			237, 60, 225, 230, 64, 247, 249, 245, 222, 20, 55, 235, 233, 14, 1, 24, 249, 1, 27, 228, 251, 32, 213, 4, 98, 183, 173, 62, 61, 250,
+			178, 250, 68, 8, 209, 237, 24, 253, 249, 33, 206, 8, 30, 0, 235, 232, 64, 7, 215, 247, 15, 10, 254, 1, 0, 246, 226, 45, 30, 222,
+			230, 247, 17, 54, 14, 195, 20, 247, 19, 27, 215, 231, 48, 28, 199, 231, 43, 9, 236, 245, 225, 25, 74, 223, 187, 27, 34, 254, 248, 3,
+			248, 238, 57, 28, 161, 6, 101, 219, 245, 226, 23, 77, 166, 5, 16, 238, 37, 230, 222, 14, 4, 47, 220, 198, 57, 5, 214, 28, 228, 254,
+			55, 234, 227, 25, 252, 14, 250, 244, 47, 244, 0, 2, 225, 19, 25, 14, 194, 3, 53, 227, 247, 36, 241, 209, 17, 77, 224, 210, 51, 251,
+			0, 32, 12, 209, 237, 33, 8, 247, 251, 240, 28, 2, 229, 247, 34, 16, 240, 196, 16, 67, 235, 199, 255, 39, 6, 38, 199, 223, 126, 232,
+			183, 41, 246, 23, 210, 216, 79, 2, 182, 34, 60, 200, 228, 66, 251, 213, 18, 248, 9, 34, 228, 221, 255, 58, 47, 164, 244, 46, 237, 26,
+			244, 255, 20, 238, 219, 38, 34, 208, 9, 6, 6, 18, 202, 45, 18, 204, 13, 39, 243, 224, 32, 235, 226, 28, 44, 243, 200, 37, 33, 217,
+			244, 35, 249, 206, 7, 56, 26, 202, 228, 36, 1, 6, 221, 239, 64, 253, 200, 27, 58, 240, 221, 2, 14, 10, 254, 237, 244, 31, 21, 248,
+			249, 249, 22, 0, 224, 2, 36, 249, 206, 28, 18, 232, 241, 4, 32, 32, 209, 237, 47, 20, 240, 235, 7, 34, 249, 239, 235, 19, 24, 246,
+			187, 30, 62, 208, 16, 254, 236, 18, 212, 23, 66, 198, 231, 24, 253, 249, 18, 236, 0, 48, 220, 237, 27, 2, 20, 232, 240, 50, 18, 234,
+			235, 246, 66, 12, 159, 2, 68, 250, 220, 19, 249, 233, 40, 26, 184, 44, 26, 194, 255, 29, 252, 16, 255, 213, 31, 252, 245, 16, 1, 246,
+			13, 5, 233, 48, 220, 245, 34, 228, 52, 254, 203, 33, 16, 220, 253, 15, 249, 15, 231, 255, 51, 231, 250, 15, 250, 254, 30, 33, 205, 227,
+			39, 18, 255, 224, 247, 250, 233, 43, 255, 205, 248, 15, 18, 252, 214, 2, 64, 245, 191, 58, 52, 204, 22, 253, 240, 46, 254, 186, 39, 37,
+			236, 200, 17, 80, 232, 212, 250, 56, 3, 231, 243, 0, 44, 239, 210, 18, 30, 255, 230, 237, 5, 44, 233, 227, 31, 30, 254, 200, 12, 75,
+			233, 199, 3, 31, 22, 242, 0, 238, 7, 42, 224, 179, 86, 60, 174, 200, 64, 63, 206, 212, 30, 41, 13, 216, 243, 13, 12, 246, 14, 251,
+			208, 22, 29, 245, 244, 6, 10, 229, 254, 38, 204, 252, 58, 244, 193, 15, 61, 20, 207, 241, 29, 7, 1, 249, 8, 10, 253, 10, 247, 247,
+			21, 12, 216, 8, 11, 8, 6, 185, 1, 106, 207, 177, 42, 46, 11, 199, 208, 71, 11, 212, 229, 10, 26, 250, 234, 235, 37, 54, 249, 228,
+			0, 21, 40, 223, 205, 61, 47, 212, 220, 70, 46, 187, 225, 38, 51, 213, 222, 0, 22, 30, 218, 254, 17, 4, 251, 247, 253, 233, 248, 14,
+			4, 230, 234, 70, 18, 189, 16, 21, 5, 5, 242, 3, 3, 251, 18, 7, 237, 211, 64, 58, 166, 214, 65, 51, 194, 210, 56, 47, 231, 203,
+			232, 92, 55, 142, 230, 75, 34, 210, 200, 39, 255, 29, 19, 203, 252, 50, 253, 237, 5, 246, 37, 5, 215, 10, 1, 34, 251, 211, 34, 11,
+			218, 18, 24, 212, 25, 6, 210, 14, 23, 216, 243, 34, 27, 242, 214, 11, 23, 15, 244, 209, 255, 67, 243, 215, 12, 22, 36, 190, 250, 76,
+			244, 209, 5, 14, 39, 247, 211, 7, 30, 17, 252, 222, 0, 66, 240, 221, 254, 30, 17, 236, 226, 11, 22, 15, 241, 214, 10, 43, 246, 226,
+			247, 37, 20, 208, 248, 60, 242, 213, 3, 28, 22, 230, 254, 13, 250, 14, 32, 18, 200, 229, 61, 240, 249, 6, 222, 20, 21, 236, 240, 242,
+			24, 8, 235, 236, 13, 38, 234, 212, 4, 32, 35, 226, 228, 32, 253, 237, 252, 32, 243, 246, 24, 2, 246, 248, 254, 7, 16, 233, 254, 6,
+			253, 8, 244, 248, 18, 18, 0, 254, 243, 254, 3, 249, 4, 239, 18, 28, 219, 239, 28, 255, 250, 16, 249, 12, 6, 244, 17, 212, 30, 62,
+			193, 225, 73, 27, 188, 236, 67, 21, 214, 218, 34, 25, 242, 247, 240, 255, 38, 16, 227, 232, 252, 32, 34, 222, 233, 26, 31, 230, 227, 53,
+			27, 219, 218, 254, 18, 7, 8, 6, 6, 228, 4, 34, 223, 5, 29, 253, 241, 242, 9, 6, 252, 231, 8, 17, 0, 3, 214, 251, 31, 254,
+			10, 248, 253, 18, 245, 248, 249, 32, 39, 224, 244, 9, 4, 3, 249, 254, 8, 24, 220, 6, 26, 250, 228, 245, 35, 12, 252, 225, 0, 19,
+			13, 251, 230, 41, 240, 228, 23, 255, 241, 247, 5, 247, 235, 30, 15, 191, 17, 61, 228, 216, 28, 51, 226, 238, 27, 255, 21, 11, 220, 3,
+			45, 249, 242, 241, 231, 52, 250, 237, 8, 214, 37, 61, 192, 220, 38, 35, 23, 191, 240, 57, 245, 249, 3, 229, 17, 37, 227, 237, 12, 238,
+			12, 239, 231, 31, 21, 238, 239, 5, 36, 239, 217, 59, 17, 226, 254, 228, 16, 39, 1, 237, 253, 30, 7, 215, 239, 39, 14, 231, 236, 47,
+			236, 210, 56, 249, 235, 13, 0, 19, 255, 210, 30, 33, 202, 246, 41, 14, 240, 245, 0, 249, 248, 10, 15, 12, 227, 236, 23, 33, 251, 246,
+			14, 248, 9, 18, 249, 240, 228, 14, 51, 4, 195, 251, 70, 227, 242, 15, 2, 2, 232, 33, 8, 212, 26, 13, 217, 30, 10, 252, 13, 255,
+			249, 215, 35, 54, 212, 216, 19, 22, 248, 250, 214, 0, 77, 244, 191, 235, 77, 2, 202, 240, 37, 63, 221, 200, 14, 58, 13, 217, 249, 17,
+			9, 0, 244, 242, 11, 24, 240, 217, 41, 24, 197, 250, 18, 8, 243, 237, 23, 249, 10, 18, 232, 231, 45, 16, 216, 246, 6, 50, 218, 203,
+			56, 47, 226, 228, 6, 31, 15, 210, 248, 49, 17, 226, 223, 20, 55, 243, 214, 12, 36, 14, 240, 238, 19, 235, 255, 43, 247, 213, 5, 40,
+			250, 204, 0, 38, 4, 241, 250, 227, 26, 16, 232, 2, 0, 33, 231, 229, 34, 255, 244, 8, 255, 254, 15, 13, 231, 17, 23, 231, 5, 30,
+			246, 240, 251, 10, 37, 206, 230, 79, 232, 210, 17, 0, 12, 248, 242, 17, 226, 33, 28, 212, 252, 14, 3, 247, 9, 2, 228, 9, 9, 15,
+			251, 244, 12, 17, 0, 228, 4, 24, 251, 15, 17, 230, 247, 8, 34, 9, 215, 18, 25, 223, 14, 13, 234, 17, 3, 215, 15, 27, 217, 234,
+			16, 42, 215, 227, 34, 8, 3, 252, 225, 253, 49, 16, 233, 245, 23, 12, 235, 7, 8, 236, 35, 8, 204, 7, 44, 9, 218, 245, 50, 247,
+			195, 28, 35, 211, 0, 1, 17, 1, 248, 13, 235, 243, 7, 20, 252, 232, 0, 3, 255, 9, 241, 0, 7, 250, 6, 8, 241, 6, 5, 228,
+			31, 20, 247, 240, 252, 10, 253, 11, 16, 0, 2, 13, 252, 229, 21, 18, 253, 249, 209, 52, 55, 194, 224, 25, 26, 12, 216, 243, 35, 6,
+			221, 235, 33, 11, 243, 237, 245, 42, 8, 225, 255, 250, 1, 42, 250, 193, 24, 50, 240, 244, 242, 36, 34, 203, 239, 48, 6, 224, 251, 8,
+			251, 19, 7, 221, 247, 47, 6, 228, 242, 26, 0, 242, 38, 215, 239, 47, 12, 237, 235, 15, 16, 249, 225, 13, 18, 242, 253, 235, 9, 48,
+			224, 213, 34, 18, 234, 248, 18, 254, 231, 4, 36, 0, 237, 4, 10, 17, 3, 238, 13, 8, 253, 16, 242, 249, 33, 0, 228, 248, 41, 9,
+			216, 249, 18, 8, 247, 2, 17, 238, 237, 29, 19, 226, 244, 252, 19, 4, 252, 250, 5, 19, 244, 245, 1, 0, 0, 0, 86, 10, 51, 0,
+			1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1,
+			1, 0, 0, 251, 236, 235, 251, 4, 3, 254, 252, 2, 6, 3, 254, 253, 255, 4, 3, 1, 1, 1, 5, 249, 231, 249, 9, 11, 6, 0,
+			4, 11, 15, 1, 254, 255, 2, 7, 3, 2, 0, 5, 4, 2, 1, 2, 4, 1, 1, 0, 0, 1, 0, 254, 0, 0, 0, 0, 255, 0,
+			0, 254, 255, 253, 0, 255, 253, 0, 254, 0, 255, 0, 0, 0, 0, 0, 2, 0, 1, 0, 250, 245, 244, 249, 248, 251, 249, 249, 1, 0,
+			3, 4, 2, 6, 1, 3, 3, 0, 3, 6, 5, 5, 7, 8, 9, 8, 6, 3, 6, 9, 255, 6, 1, 3, 0, 5, 0, 255, 255, 0,
+			2, 248, 0, 252, 255, 0, 249, 253, 254, 255, 255, 254, 250, 254, 2, 1, 250, 253, 255, 255, 5, 252, 253, 3, 249, 1, 9, 252, 253, 6,
+			255, 4, 3, 253, 7, 251, 3, 8, 251, 1, 255, 7, 251, 250, 10, 252, 255, 3, 0, 2, 1, 2, 0, 0, 3, 254, 1, 3, 248, 7,
+			3, 5, 9, 8, 9, 1, 255, 252, 254, 0, 5, 253, 252, 254, 254, 1, 254, 249, 253, 254, 252, 253, 249, 253, 253, 255, 3, 251, 5, 8,
+			4, 5, 0, 249, 0, 0, 0, 3, 7, 18, 16, 11, 13, 10, 252, 1, 255, 249, 2, 247, 0, 0, 250, 2, 244, 253, 250, 242, 254, 249,
+			244, 252, 249, 251, 4, 8, 15, 3, 255, 245, 242, 5, 5, 0, 255, 6, 16, 23, 25, 21, 13, 11, 246, 225, 232, 0, 4, 255, 0, 255,
+			12, 13, 252, 250, 0, 251, 250, 1, 248, 252, 5, 0, 1, 0, 0, 11, 0, 254, 254, 7, 10, 255, 255, 6, 2, 5, 11, 244, 250, 240,
+			243, 0, 0, 2, 255, 254, 247, 4, 5, 254, 248, 251, 0, 0, 7, 255, 2, 0, 14, 10, 255, 1, 2, 12, 9, 0, 4, 254, 1, 7,
+			251, 5, 7, 0, 2, 253, 2, 2, 243, 0, 6, 243, 245, 9, 0, 251, 249, 255, 16, 240, 0, 10, 245, 12, 254, 245, 6, 4, 250, 2,
+			2, 246, 8, 1, 251, 10, 250, 2, 12, 247, 252, 3, 12, 253, 0, 251, 11, 10, 238, 9, 1, 0, 21, 238, 254, 15, 251, 3, 8, 245,
+			1, 8, 248, 3, 4, 242, 2, 0, 248, 0, 253, 12, 247, 250, 10, 245, 9, 4, 241, 255, 17, 3, 245, 0, 4, 15, 250, 1, 9, 253,
+			6, 1, 0, 6, 247, 3, 7, 253, 0, 253, 10, 244, 5, 255, 243, 3, 252, 0, 254, 4, 1, 243, 4, 254, 12, 253, 245, 10, 5, 5,
+			3, 252, 7, 3, 2, 4, 0, 0, 4, 8, 251, 4, 2, 0, 249, 0, 8, 245, 0, 249, 254, 11, 241, 0, 251, 248, 16, 3, 244, 3,
+			1, 10, 1, 240, 14, 5, 1, 12, 240, 254, 13, 253, 1, 21, 241, 246, 15, 3, 1, 252, 249, 8, 3, 245, 254, 252, 252, 7, 250, 251,
+			253, 250, 0, 9, 7, 0, 3, 24, 250, 10, 13, 240, 27, 8, 240, 1, 6, 1, 7, 249, 242, 5, 254, 12, 247, 236, 7, 247, 255, 8,
+			231, 2, 252, 246, 2, 240, 12, 12, 234, 3, 9, 2, 11, 241, 0, 23, 6, 3, 12, 6, 248, 16, 14, 246, 4, 12, 254, 0, 0, 1,
+			9, 244, 247, 1, 2, 251, 251, 255, 2, 255, 237, 10, 14, 236, 18, 9, 233, 16, 4, 229, 1, 247, 255, 14, 224, 10, 11, 241, 13, 251,
+			3, 15, 6, 9, 3, 11, 24, 252, 251, 2, 254, 14, 6, 245, 253, 22, 238, 232, 34, 233, 255, 14, 223, 8, 5, 242, 245, 255, 10, 251,
+			249, 20, 19, 0, 14, 6, 14, 17, 243, 1, 3, 234, 6, 248, 247, 29, 255, 234, 246, 236, 10, 0, 248, 225, 252, 0, 11, 253, 235, 1,
+			1, 250, 8, 12, 247, 8, 4, 18, 10, 252, 21, 2, 17, 4, 10, 25, 244, 25, 4, 246, 17, 247, 11, 17, 13, 248, 253, 13, 254, 11,
+			234, 228, 253, 209, 231, 15, 236, 244, 1, 230, 18, 253, 253, 0, 248, 252, 245, 14, 13, 249, 8, 5, 253, 44, 251, 9, 19, 234, 24, 18,
+			246, 0, 0, 17, 5, 0, 1, 0, 17, 251, 239, 255, 12, 250, 249, 243, 10, 9, 229, 5, 0, 240, 4, 1, 249, 251, 2, 10, 251, 255,
+			0, 248, 14, 3, 243, 251, 12, 4, 235, 22, 9, 251, 0, 4, 12, 252, 242, 15, 1, 253, 19, 232, 4, 15, 2, 251, 245, 10, 11, 246,
+			249, 7, 1, 4, 1, 253, 2, 245, 12, 1, 252, 249, 247, 14, 8, 246, 1, 1, 11, 243, 252, 20, 240, 7, 7, 248, 2, 249, 19, 14,
+			226, 250, 20, 11, 248, 245, 0, 0, 11, 254, 244, 8, 249, 240, 17, 11, 239, 249, 0, 29, 236, 4, 5, 255, 20, 233, 1, 12, 3, 1,
+			252, 16, 254, 246, 17, 1, 11, 248, 254, 21, 238, 246, 15, 0, 2, 237, 250, 8, 0, 250, 255, 4, 235, 20, 2, 240, 5, 246, 7, 19,
+			246, 231, 25, 14, 254, 234, 249, 27, 4, 0, 18, 228, 249, 35, 2, 237, 8, 3, 247, 14, 9, 253, 228, 13, 16, 246, 5, 241, 3, 11,
+			235, 19, 0, 234, 29, 242, 1, 8, 245, 24, 244, 239, 25, 255, 255, 254, 251, 9, 250, 250, 12, 19, 218, 13, 9, 237, 33, 247, 226, 25,
+			248, 4, 4, 244, 11, 240, 19, 15, 230, 7, 0, 7, 253, 250, 3, 254, 23, 249, 222, 39, 9, 231, 30, 243, 252, 29, 222, 252, 14, 254,
+			9, 239, 2, 16, 244, 252, 15, 233, 247, 39, 241, 240, 19, 240, 12, 252, 2, 15, 237, 249, 0, 26, 255, 250, 255, 243, 28, 13, 244, 249,
+			239, 20, 24, 243, 238, 255, 1, 14, 30, 230, 246, 13, 0, 19, 238, 249, 12, 250, 248, 12, 251, 248, 20, 19, 254, 253, 24, 22, 251, 0,
+			11, 7, 1, 0, 6, 250, 0, 33, 3, 236, 253, 16, 16, 252, 249, 3, 7, 21, 8, 242, 14, 25, 239, 14, 13, 232, 5, 17, 20, 8,
+			241, 245, 28, 8, 246, 17, 5, 3, 5, 246, 252, 14, 20, 10, 221, 16, 57, 238, 239, 3, 12, 26, 240, 253, 1, 248, 31, 4, 229, 25,
+			17, 249, 252, 21, 22, 241, 253, 18, 3, 255, 0, 251, 27, 6, 217, 19, 7, 244, 22, 245, 247, 12, 8, 254, 19, 6, 246, 10, 11, 8,
+			0, 234, 4, 27, 2, 254, 244, 13, 48, 1, 233, 3, 25, 5, 249, 1, 35, 6, 1, 7, 237, 24, 39, 249, 231, 22, 27, 242, 247, 17,
+			7, 11, 31, 234, 251, 22, 9, 20, 244, 250, 32, 247, 5, 21, 0, 21, 247, 246, 25, 5, 2, 25, 11, 243, 20, 13, 246, 23, 253, 6,
+			29, 253, 4, 17, 1, 10, 253, 250, 19, 5, 255, 0, 250, 21, 35, 233, 243, 32, 37, 254, 235, 13, 19, 0, 0, 255, 19, 255, 247, 22,
+			4, 250, 13, 249, 245, 31, 2, 250, 2, 254, 0, 38, 29, 231, 248, 32, 13, 241, 6, 6, 238, 20, 229, 227, 58, 16, 212, 253, 27, 12,
+			230, 253, 34, 20, 1, 240, 246, 7, 26, 9, 244, 252, 253, 249, 6, 4, 10, 0, 13, 15, 5, 254, 248, 30, 48, 225, 220, 42, 13, 252,
+			237, 215, 31, 68, 245, 218, 13, 55, 23, 197, 244, 52, 41, 253, 232, 2, 28, 17, 242, 0, 17, 255, 0, 245, 10, 43, 245, 220, 21, 59,
+			237, 223, 31, 38, 4, 244, 232, 19, 33, 2, 248, 243, 28, 20, 253, 252, 242, 37, 19, 214, 13, 24, 0, 12, 7, 239, 14, 27, 229, 250,
+			24, 7, 1, 241, 255, 33, 5, 233, 247, 40, 36, 245, 236, 2, 36, 17, 240, 251, 251, 14, 30, 240, 228, 21, 15, 8, 8, 228, 5, 43,
+			248, 253, 22, 19, 249, 238, 7, 28, 18, 222, 252, 21, 15, 4, 241, 238, 22, 19, 244, 248, 11, 3, 238, 43, 29, 236, 0, 17, 43, 7,
+			227, 18, 16, 6, 21, 227, 231, 31, 25, 244, 245, 244, 24, 21, 235, 0, 29, 2, 3, 18, 236, 252, 40, 0, 241, 9, 255, 31, 11, 214,
+			6, 27, 4, 248, 243, 246, 39, 9, 229, 8, 21, 9, 14, 244, 232, 30, 32, 248, 239, 3, 13, 239, 11, 16, 233, 11, 35, 250, 244, 24,
+			18, 235, 8, 30, 10, 241, 250, 32, 1, 255, 20, 244, 249, 28, 19, 247, 0, 10, 3, 18, 22, 218, 7, 42, 249, 5, 13, 244, 0, 247,
+			5, 31, 255, 251, 3, 5, 4, 10, 0, 3, 31, 242, 241, 13, 28, 6, 236, 21, 45, 250, 235, 12, 21, 15, 246, 6, 24, 251, 244, 254,
+			23, 13, 226, 254, 41, 239, 0, 26, 235, 7, 29, 255, 233, 229, 49, 22, 218, 10, 10, 2, 25, 254, 228, 14, 25, 243, 250, 6, 1, 9,
+			251, 250, 32, 255, 247, 31, 245, 242, 20, 10, 246, 30, 27, 222, 236, 46, 24, 209, 4, 30, 249, 0, 15, 236, 244, 36, 29, 240, 254, 35,
+			3, 241, 10, 9, 0, 222, 8, 41, 251, 211, 7, 43, 249, 252, 240, 245, 46, 6, 247, 5, 250, 43, 250, 213, 41, 28, 233, 6, 12, 38,
+			4, 211, 22, 51, 245, 233, 248, 29, 41, 249, 228, 0, 59, 36, 217, 239, 31, 20, 27, 222, 215, 62, 2, 211, 250, 37, 21, 243, 238, 2,
+			26, 5, 3, 0, 254, 3, 255, 5, 251, 15, 243, 254, 34, 13, 246, 255, 19, 24, 249, 230, 3, 35, 14, 244, 254, 8, 34, 13, 9, 251,
+			218, 18, 64, 222, 195, 14, 26, 24, 232, 235, 14, 11, 8, 236, 234, 56, 20, 204, 21, 36, 249, 8, 249, 249, 25, 237, 255, 18, 240, 14,
+			12, 230, 31, 41, 252, 227, 13, 29, 250, 229, 12, 37, 1, 235, 18, 245, 235, 67, 9, 227, 5, 11, 243, 9, 15, 246, 9, 21, 10, 248,
+			252, 251, 41, 37, 241, 248, 254, 11, 37, 18, 239, 5, 15, 20, 10, 250, 10, 6, 250, 27, 2, 237, 22, 0, 0, 26, 243, 1, 33, 231,
+			9, 46, 235, 245, 9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232, 20, 58, 246, 195, 11, 40, 18, 2, 200, 0, 60, 42,
+			225, 219, 32, 32, 4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230, 5, 26, 236, 255, 19, 8, 10, 21, 242, 238, 36, 3,
+			9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250, 17, 31, 237, 219, 30,
+			38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41, 222, 179, 29, 40, 30,
+			238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60, 21, 231, 223, 21, 81,
+			219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20, 17, 255, 249, 243, 37,
+			42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13, 250, 243, 235, 40, 21,
+			193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0, 48, 2, 226, 27, 35,
+			233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37, 1, 239, 244, 44, 30,
+			236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236, 32, 21, 237, 35, 4,
+			209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243, 6, 2, 255, 35, 246,
+			10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237, 51, 19, 232, 18, 7,
+			238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1, 221, 31, 13, 251, 8,
+			248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182, 1, 59, 19, 246, 233,
+			25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3, 6, 30, 240, 245, 49,
+			243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11, 20, 4, 254, 243, 8,
+			35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234, 51, 249, 218, 23, 11,
+			7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221, 212, 253, 34, 62, 218,
+			221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173, 65, 92, 206, 232, 54,
+			17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227, 0, 70, 241, 226, 27,
+			21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247, 42, 228, 208, 44, 51,
+			239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57, 5, 221, 250, 0, 32,
+			22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228, 58, 252, 236, 29, 231,
+			16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32, 252, 232, 42, 11, 210,
+			39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233, 233, 48, 3, 234, 2,
+			13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223, 11, 33, 246, 255, 0,
+			243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247, 237, 7, 17, 16, 250,
+			222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12, 1, 17, 6, 240, 39,
+			225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38, 239, 12, 56, 221, 215,
+			33, 17, 252, 7, 2, 9, 0, 0, 90, 0, 3, 0, 5, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 55, 14,
+			13, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 55, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 160, 0, 240, 0, 160, 5, 40, 10, 199, 14, 36, 19,
+			0, 25, 35, 13, 15, 25, 13, 9, 7, 3, 7, 7, 135, 142, 160, 160, 150, 175, 135, 142, 160, 44, 35, 30, 90, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 9, 0, 160, 0, 240, 0, 160, 5, 40, 10,
+			199, 14, 36, 19, 0, 25, 0, 13, 15, 25, 13, 9, 7, 3, 7, 7, 135, 142, 160, 160, 150, 175, 135, 142, 160, 44, 35, 30, 90, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 55, 1, 12, 0, 3, 4,
+			5, 1, 8, 248, 0, 178, 140, 255, 16, 1, 251, 245, 245, 245, 239, 226, 221, 249, 31, 37, 28, 33, 28, 31, 38, 43, 44, 49, 55, 52,
+			43, 43, 39, 41, 30, 29, 23, 25, 23, 21, 10, 6, 10, 3, 3, 0, 2, 3, 11, 11, 7, 240, 202, 209, 221, 230, 252, 13, 19, 14,
+			250, 9, 219, 164, 223, 255, 242, 234, 247, 246, 247, 250, 247, 255, 214, 197, 207, 206, 226, 238, 6, 14, 25, 40, 51, 58, 37, 11, 3, 7,
+			8, 2, 224, 231, 31, 56, 68, 76, 86, 82, 81, 65, 53, 57, 65, 34, 19, 51, 54, 62, 60, 41, 36, 22, 12, 248, 239, 235, 250, 250,
+			254, 11, 15, 28, 41, 48, 45, 37, 39, 24, 12, 253, 0, 29, 44, 54, 62, 65, 67, 59, 50, 40, 41, 41, 30, 35, 46, 55, 69, 78,
+			73, 68, 65, 56, 46, 42, 30, 22, 18, 18, 27, 254, 233, 4, 26, 27, 7, 0, 240, 233, 223, 213, 217, 235, 249, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 253, 4, 19, 0, 13, 13, 5, 6, 19, 14, 14, 11, 10, 6, 249, 248, 0, 254, 11, 6, 6, 4, 3, 211,
-			167, 140, 139, 164, 184, 212, 239, 17, 19, 2, 249, 9, 15, 12, 13, 20, 26, 27, 27, 23, 9, 1, 246, 243, 2, 22, 44, 52, 55, 53,
-			50, 50, 51, 58, 57, 53, 50, 45, 24, 10, 0, 246, 1, 4, 7, 255, 213, 209, 197, 175, 173, 188, 217, 225, 220, 239, 239, 223, 222, 229,
-			234, 245, 247, 251, 0, 0, 3, 3, 4, 5, 1, 0, 0, 1, 7, 9, 7, 11, 16, 18, 17, 22, 26, 26, 29, 24, 21, 21, 20, 23,
-			12, 15, 14, 11, 10, 4, 253, 248, 232, 227, 239, 239, 239, 249, 0, 8, 1, 1, 6, 2, 249, 251, 223, 235, 1, 254, 241, 235, 245, 255,
-			249, 241, 247, 0, 2, 0, 250, 3, 13, 9, 13, 19, 24, 25, 23, 17, 21, 22, 16, 10, 7, 7, 12, 5, 3, 2, 4, 8, 4, 1,
-			0, 255, 255, 254, 248, 244, 245, 250, 245, 244, 244, 232, 227, 232, 237, 236, 237, 238, 242, 246, 250, 253, 253, 0, 9, 13, 17, 17, 13, 16,
-			18, 21, 20, 14, 9, 11, 12, 10, 13, 12, 11, 9, 4, 254, 0, 253, 252, 249, 233, 231, 235, 229, 240, 2, 2, 254, 247, 245, 244, 241,
-			242, 247, 0, 7, 11, 13, 19, 22, 19, 14, 11, 11, 7, 2, 1, 5, 10, 18, 19, 16, 20, 12, 0, 247, 246, 247, 247, 249, 249, 251,
-			251, 244, 248, 250, 247, 245, 236, 231, 232, 232, 235, 245, 254, 2, 4, 5, 9, 5, 254, 0, 4, 12, 10, 9, 12, 19, 27, 32, 27, 24,
-			19, 16, 7, 5, 6, 2, 254, 255, 254, 248, 245, 235, 228, 230, 234, 237, 233, 234, 233, 236, 241, 252, 9, 9, 4, 0, 251, 242, 249, 15,
-			22, 17, 16, 18, 14, 17, 23, 26, 17, 6, 255, 255, 247, 244, 241, 244, 247, 255, 255, 249, 246, 255, 1, 6, 9, 7, 10, 10, 14, 14,
-			12, 9, 0, 0, 8, 22, 37, 39, 19, 255, 242, 237, 236, 245, 252, 252, 244, 238, 240, 244, 248, 250, 250, 246, 1, 18, 24, 4, 3, 29,
-			33, 11, 11, 15, 10, 251, 241, 1, 12, 255, 230, 210, 207, 225, 225, 221, 213, 210, 225, 243, 240, 245, 249, 7, 15, 20, 44, 38, 25, 26,
-			28, 12, 0, 14, 15, 248, 0, 24, 17, 12, 0, 242, 227, 227, 11, 7, 214, 233, 255, 248, 251, 2, 27, 16, 2, 17, 17, 3, 21, 5,
-			233, 223, 2, 24, 242, 220, 244, 252, 243, 4, 18, 1, 231, 250, 2, 234, 248, 11, 13, 0, 18, 66, 55, 33, 40, 31, 2, 224, 231, 0,
-			2, 6, 7, 250, 247, 6, 238, 211, 208, 247, 15, 249, 231, 234, 245, 15, 25, 6, 245, 237, 239, 243, 9, 34, 61, 66, 37, 5, 0, 12,
-			2, 224, 222, 22, 38, 22, 22, 23, 16, 16, 13, 7, 2, 22, 41, 28, 7, 253, 238, 4, 58, 77, 60, 15, 224, 207, 213, 254, 6, 222,
-			218, 240, 241, 220, 214, 228, 220, 225, 248, 18, 39, 5, 214, 185, 214, 0, 32, 12, 243, 216, 221, 242, 246, 231, 243, 247, 235, 199, 185, 210,
-			211, 205, 222, 245, 251, 239, 245, 240, 223, 242, 0, 253, 13, 47, 63, 47, 40, 36, 19, 14, 30, 7, 223, 225, 238, 238, 216, 221, 251, 10,
-			2, 246, 239, 12, 9, 11, 19, 55, 105, 106, 97, 71, 39, 22, 26, 25, 33, 41, 73, 69, 27, 238, 239, 244, 9, 42, 31, 11, 6, 23,
-			11, 39, 79, 44, 244, 6, 57, 80, 32, 253, 242, 8, 18, 6, 237, 203, 251, 41, 6, 230, 251, 229, 191, 202, 228, 248, 0, 7, 248, 219,
-			245, 245, 221, 200, 222, 243, 212, 191, 206, 5, 20, 244, 186, 163, 176, 186, 229, 244, 219, 230, 249, 251, 221, 211, 195, 210, 230, 248, 6, 224,
-			221, 231, 1, 12, 5, 244, 226, 237, 6, 4, 250, 2, 9, 241, 244, 29, 50, 23, 0, 16, 14, 1, 1, 16, 14, 13, 25, 32, 6, 236,
-			254, 10, 251, 242, 5, 13, 0, 31, 77, 72, 22, 2, 16, 16, 19, 29, 28, 26, 57, 59, 22, 242, 236, 245, 248, 5, 28, 53, 72, 70,
-			40, 5, 245, 248, 5, 21, 34, 25, 0, 2, 15, 11, 253, 242, 238, 245, 15, 28, 16, 244, 239, 243, 8, 24, 1, 223, 214, 243, 34, 33,
-			240, 187, 212, 14, 64, 57, 19, 0, 226, 218, 189, 198, 239, 26, 44, 12, 231, 216, 223, 200, 166, 189, 231, 249, 243, 22, 46, 254, 236, 221,
-			226, 240, 34, 27, 244, 6, 64, 87, 39, 49, 70, 16, 229, 244, 9, 5, 18, 56, 59, 33, 29, 0, 195, 209, 231, 230, 220, 243, 14, 242,
-			241, 13, 20, 0, 6, 12, 0, 255, 252, 17, 3, 21, 5, 233, 223, 2, 24, 242, 220, 244, 252, 243, 4, 18, 1, 231, 250, 2, 234, 248,
-			11, 13, 0, 18, 66, 55, 33, 40, 31, 2, 224, 231, 0, 2, 6, 7, 250, 247, 6, 238, 211, 208, 247, 15, 249, 231, 234, 245, 15, 25,
-			6, 245, 237, 239, 243, 9, 34, 61, 66, 37, 5, 0, 12, 2, 224, 222, 22, 38, 22, 22, 23, 16, 16, 13, 7, 2, 22, 41, 28, 7,
-			253, 238, 4, 58, 77, 60, 15, 224, 207, 213, 254, 6, 222, 218, 240, 241, 220, 214, 228, 220, 225, 248, 18, 39, 5, 214, 185, 214, 0, 32,
-			12, 243, 216, 221, 242, 246, 231, 243, 247, 235, 199, 185, 210, 211, 205, 222, 245, 251, 239, 245, 240, 223, 242, 0, 253, 13, 47, 63, 47, 40,
-			36, 19, 14, 30, 7, 223, 225, 238, 238, 216, 221, 251, 10, 2, 246, 239, 12, 9, 11, 19, 55, 105, 106, 97, 71, 39, 22, 26, 25, 33,
-			41, 73, 69, 27, 238, 239, 244, 9, 42, 31, 11, 6, 23, 11, 39, 79, 44, 244, 6, 57, 80, 32, 253, 242, 8, 18, 6, 237, 203, 251,
-			41, 6, 230, 251, 229, 191, 202, 228, 248, 0, 7, 248, 219, 245, 245, 221, 200, 222, 243, 212, 191, 206, 5, 20, 244, 186, 163, 176, 186, 229,
-			244, 219, 230, 249, 251, 221, 211, 195, 210, 230, 248, 6, 224, 221, 231, 1, 12, 5, 244, 226, 237, 6, 4, 250, 2, 9, 241, 244, 29, 50,
-			23, 0, 16, 14, 1, 1, 16, 14, 13, 25, 32, 6, 236, 254, 10, 251, 242, 5, 13, 0, 31, 77, 72, 22, 2, 16, 16, 19, 29, 28,
-			26, 57, 59, 22, 242, 236, 245, 248, 5, 28, 53, 72, 70, 40, 5, 245, 248, 5, 21, 34, 25, 0, 2, 15, 11, 253, 242, 238, 245, 15,
-			28, 16, 244, 239, 243, 8, 24, 1, 223, 214, 243, 34, 33, 240, 187, 212, 14, 64, 57, 19, 0, 226, 218, 189, 198, 239, 26, 44, 12, 231,
-			216, 223, 200, 166, 189, 231, 249, 243, 22, 46, 254, 236, 221, 226, 240, 34, 27, 244, 6, 64, 87, 39, 49, 70, 16, 229, 244, 9, 5, 18,
-			56, 59, 33, 29, 0, 195, 209, 231, 230, 220, 243, 14, 242, 241, 13, 20, 0, 6, 12, 0, 255, 252, 4, 0, 18, 36, 31, 26, 252, 221,
-			182, 181, 209, 192, 210, 237, 23, 17, 235, 180, 131, 157, 210, 229, 216, 219, 230, 227, 248, 16, 41, 20, 250, 17, 33, 38, 22, 0, 0, 0,
-			63, 2, 30, 0, 3, 7, 4, 5, 7, 0, 3, 254, 217, 209, 5, 49, 40, 4, 238, 252, 21, 22, 6, 0, 8, 16, 13, 3, 2, 8,
-			10, 8, 7, 6, 6, 9, 13, 12, 9, 7, 8, 6, 5, 8, 8, 8, 7, 4, 5, 6, 6, 6, 3, 3, 6, 3, 4, 4, 253, 5,
-			8, 233, 222, 2, 38, 35, 246, 219, 4, 48, 53, 25, 216, 200, 12, 40, 10, 5, 20, 38, 40, 1, 237, 8, 31, 36, 26, 6, 7, 19,
-			8, 232, 212, 223, 249, 11, 10, 0, 9, 23, 10, 12, 19, 252, 246, 2, 0, 9, 10, 253, 10, 11, 246, 1, 16, 24, 33, 1, 240, 12,
-			10, 3, 13, 242, 235, 14, 13, 2, 11, 254, 244, 13, 29, 23, 6, 245, 0, 30, 25, 2, 253, 248, 246, 6, 8, 252, 2, 10, 9, 12,
-			1, 249, 13, 28, 23, 17, 3, 1, 20, 23, 16, 19, 15, 16, 22, 8, 3, 16, 243, 209, 245, 29, 21, 12, 8, 6, 13, 0, 253, 23,
-			15, 0, 15, 5, 253, 15, 8, 0, 4, 247, 0, 12, 252, 1, 14, 7, 9, 0, 249, 13, 13, 4, 3, 246, 255, 16, 7, 4, 2, 2,
-			17, 254, 247, 22, 6, 245, 9, 0, 0, 15, 253, 8, 24, 250, 254, 21, 15, 10, 246, 249, 35, 11, 233, 15, 22, 4, 26, 13, 242, 5,
-			19, 3, 253, 0, 4, 14, 19, 5, 255, 8, 3, 0, 7, 247, 0, 31, 248, 227, 24, 15, 236, 22, 27, 225, 243, 40, 14, 227, 252, 32,
-			14, 242, 244, 9, 17, 252, 249, 18, 11, 1, 2, 233, 0, 44, 254, 232, 21, 9, 4, 23, 240, 241, 20, 3, 9, 15, 253, 18, 2, 232,
-			25, 16, 240, 22, 2, 243, 41, 9, 229, 18, 7, 252, 30, 7, 235, 240, 0, 23, 0, 236, 13, 0, 240, 12, 251, 243, 22, 255, 238, 16,
-			12, 7, 35, 16, 240, 6, 27, 8, 10, 31, 23, 5, 253, 1, 21, 24, 13, 3, 248, 14, 35, 14, 9, 241, 229, 48, 33, 220, 19, 12,
-			231, 48, 10, 220, 51, 0, 208, 58, 22, 200, 255, 31, 39, 11, 221, 13, 29, 1, 20, 245, 253, 47, 246, 241, 27, 243, 1, 19, 0, 37,
-			247, 209, 44, 32, 239, 18, 7, 15, 30, 234, 255, 36, 7, 249, 236, 9, 44, 249, 244, 18, 7, 19, 249, 246, 42, 239, 230, 46, 6, 14,
-			35, 216, 11, 39, 226, 31, 14, 205, 53, 35, 205, 15, 21, 248, 16, 10, 19, 252, 243, 36, 248, 13, 66, 183, 216, 118, 4, 212, 27, 228,
-			16, 64, 235, 242, 248, 228, 20, 11, 23, 30, 195, 249, 72, 250, 248, 0, 221, 33, 39, 247, 20, 252, 236, 26, 20, 21, 13, 232, 3, 28,
-			26, 8, 208, 248, 58, 0, 220, 222, 237, 65, 33, 183, 4, 96, 26, 192, 224, 99, 91, 197, 210, 61, 30, 234, 250, 7, 254, 244, 252, 20,
-			41, 5, 222, 36, 65, 228, 231, 25, 3, 25, 24, 252, 32, 238, 192, 42, 54, 222, 225, 14, 43, 3, 219, 27, 26, 228, 19, 21, 254, 22,
-			231, 220, 26, 18, 8, 19, 28, 31, 224, 248, 59, 227, 243, 53, 202, 21, 126, 193, 181, 65, 22, 40, 30, 177, 253, 47, 240, 5, 240, 247,
-			51, 216, 210, 53, 241, 227, 47, 255, 243, 0, 191, 4, 21, 0, 219, 229, 3, 19, 255, 1, 253, 238, 240, 255, 11, 255, 208, 218, 22, 67,
-			15, 200, 201, 255, 40, 29, 223, 234, 62, 56, 20, 217, 220, 255, 20, 18, 38, 11, 209, 222, 6, 56, 28, 232, 29, 32, 24, 239, 191, 255,
-			32, 13, 241, 204, 241, 19, 237, 210, 230, 232, 233, 49, 50, 234, 189, 201, 35, 55, 228, 191, 206, 254, 35, 236, 225, 8, 23, 0, 211, 236,
-			24, 61, 33, 232, 235, 17, 63, 26, 247, 2, 245, 32, 17, 49, 10, 236, 30, 48, 36, 1, 243, 5, 19, 25, 244, 241, 10, 34, 16, 2,
-			246, 239, 28, 26, 0, 253, 1, 242, 239, 246, 3, 10, 0, 242, 215, 0, 30, 10, 5, 249, 239, 227, 237, 239, 6, 238, 15, 47, 10, 247,
-			232, 7, 4, 239, 251, 24, 8, 251, 218, 206, 17, 11, 210, 214, 255, 21, 19, 27, 8, 254, 251, 17, 246, 253, 13, 10, 0, 8, 248, 248,
-			0, 244, 244, 0, 40, 27, 249, 235, 1, 23, 239, 222, 242, 12, 37, 255, 216, 237, 25, 28, 0, 254, 5, 254, 244, 236, 2, 37, 11, 233,
-			0, 0, 253, 6, 244, 255, 28, 24, 218, 233, 238, 234, 0, 3, 1, 14, 13, 5, 248, 7, 244, 237, 2, 35, 11, 239, 242, 18, 25, 4,
-			249, 251, 23, 27, 236, 236, 4, 5, 2, 246, 235, 253, 243, 240, 249, 254, 2, 18, 47, 14, 246, 252, 14, 29, 6, 222, 239, 15, 32, 30,
-			10, 226, 237, 3, 26, 31, 232, 247, 2, 231, 12, 19, 10, 0, 220, 241, 31, 7, 18, 1, 243, 243, 10, 30, 2, 228, 221, 255, 4, 252,
-			233, 4, 16, 242, 15, 249, 5, 17, 1, 25, 33, 243, 230, 226, 0, 26, 7, 212, 241, 247, 243, 33, 25, 2, 0, 14, 26, 244, 227, 247,
-			5, 228, 228, 3, 30, 23, 17, 208, 180, 236, 38, 32, 240, 230, 254, 11, 5, 254, 237, 225, 8, 35, 60, 229, 212, 21, 28, 35, 17, 248,
-			212, 208, 0, 39, 29, 227, 204, 215, 3, 45, 35, 4, 6, 7, 14, 1, 4, 253, 251, 17, 42, 46, 236, 247, 0, 2, 14, 14, 6, 0,
-			245, 208, 249, 14, 17, 14, 233, 239, 20, 250, 245, 4, 9, 28, 233, 5, 62, 23, 233, 199, 247, 48, 24, 239, 207, 13, 27, 245, 237, 239,
-			237, 247, 20, 20, 241, 242, 14, 8, 251, 214, 203, 5, 77, 5, 229, 233, 239, 36, 58, 10, 7, 12, 237, 244, 16, 25, 2, 251, 1, 24,
-			3, 224, 252, 27, 21, 250, 228, 242, 44, 57, 30, 226, 170, 8, 58, 28, 209, 249, 7, 4, 21, 241, 202, 0, 7, 251, 207, 252, 1, 233,
-			7, 5, 17, 36, 253, 232, 219, 3, 55, 65, 224, 209, 243, 0, 251, 2, 25, 15, 11, 218, 217, 17, 15, 13, 9, 0, 229, 228, 7, 6,
-			254, 241, 6, 42, 246, 187, 213, 245, 36, 27, 3, 233, 213, 245, 11, 19, 254, 0, 12, 244, 243, 17, 21, 252, 246, 19, 18, 26, 254, 229,
-			235, 35, 68, 21, 230, 216, 252, 33, 32, 18, 242, 247, 13, 21, 8, 250, 8, 20, 247, 247, 18, 21, 230, 238, 42, 16, 7, 249, 0, 9,
-			0, 9, 24, 23, 234, 10, 40, 15, 0, 233, 0, 25, 0, 228, 7, 13, 253, 24, 24, 221, 199, 244, 20, 228, 205, 1, 48, 26, 208, 219,
-			7, 13, 237, 255, 27, 27, 223, 185, 197, 27, 0, 229, 230, 216, 240, 37, 42, 247, 225, 200, 36, 70, 23, 248, 1, 42, 229, 204, 3, 18,
-			29, 11, 226, 246, 17, 15, 12, 20, 22, 21, 0, 205, 224, 253, 43, 63, 32, 209, 201, 235, 0, 38, 13, 255, 189, 221, 25, 20, 255, 238,
-			235, 255, 27, 20, 238, 234, 6, 248, 12, 19, 239, 242, 33, 30, 15, 230, 246, 15, 22, 26, 16, 12, 0, 252, 11, 31, 20, 244, 247, 40,
-			45, 6, 221, 225, 40, 29, 240, 190, 194, 18, 54, 254, 210, 219, 249, 27, 13, 230, 225, 220, 254, 61, 43, 223, 197, 202, 0, 79, 48, 243,
-			203, 205, 40, 96, 43, 230, 192, 246, 47, 40, 2, 235, 205, 6, 66, 9, 209, 203, 230, 45, 44, 255, 241, 211, 221, 22, 63, 54, 1, 205,
-			207, 35, 67, 36, 21, 252, 233, 19, 34, 46, 255, 199, 1, 88, 67, 215, 135, 235, 72, 62, 252, 176, 231, 1, 12, 0, 233, 222, 239, 27,
-			249, 219, 228, 255, 8, 231, 206, 224, 14, 26, 24, 10, 253, 217, 203, 205, 39, 83, 42, 237, 162, 237, 50, 11, 2, 242, 39, 240, 237, 245,
-			254, 8, 254, 11, 235, 201, 246, 17, 241, 27, 33, 21, 25, 236, 228, 12, 49, 64, 34, 0, 207, 18, 56, 16, 231, 243, 16, 9, 255, 235,
-			20, 53, 27, 226, 200, 180, 3, 68, 22, 5, 215, 249, 17, 255, 7, 250, 13, 8, 4, 41, 33, 232, 224, 6, 15, 255, 234, 220, 252, 40,
-			35, 254, 187, 199, 232, 34, 51, 248, 233, 220, 232, 55, 0, 216, 1, 27, 27, 251, 220, 213, 250, 47, 50, 8, 201, 195, 11, 25, 11, 3,
-			11, 29, 14, 230, 2, 45, 47, 24, 19, 247, 215, 216, 25, 47, 7, 219, 227, 7, 32, 30, 15, 23, 255, 226, 208, 233, 23, 2, 243, 250,
-			2, 2, 211, 198, 234, 2, 50, 27, 206, 196, 232, 9, 13, 13, 250, 244, 231, 244, 241, 5, 16, 1, 242, 10, 4, 239, 240, 21, 41, 23,
-			219, 227, 50, 37, 15, 251, 2, 22, 5, 3, 184, 227, 91, 45, 20, 245, 234, 235, 241, 15, 22, 251, 253, 245, 32, 18, 233, 215, 246, 34,
-			51, 29, 13, 237, 19, 58, 19, 241, 3, 18, 250, 11, 32, 37, 8, 247, 2, 11, 235, 211, 216, 17, 99, 20, 224, 200, 217, 252, 231, 252,
-			19, 3, 244, 246, 17, 34, 8, 219, 240, 3, 234, 248, 254, 3, 7, 23, 25, 243, 226, 251, 21, 47, 15, 242, 246, 26, 35, 14, 204, 178,
-			242, 29, 10, 19, 25, 12, 233, 240, 238, 242, 249, 14, 240, 215, 248, 4, 15, 21, 247, 247, 8, 5, 250, 254, 2, 254, 253, 2, 237, 233,
-			19, 36, 16, 249, 251, 34, 28, 245, 237, 244, 16, 39, 10, 251, 244, 244, 13, 12, 225, 212, 224, 29, 9, 239, 244, 0, 1, 11, 12, 7,
-			252, 248, 7, 0, 249, 224, 217, 239, 14, 24, 6, 225, 175, 190, 0, 26, 11, 3, 243, 253, 249, 11, 31, 27, 243, 228, 29, 32, 5, 0,
-			243, 252, 10, 52, 37, 239, 195, 251, 74, 46, 4, 211, 167, 32, 119, 72, 12, 212, 210, 2, 19, 12, 33, 53, 19, 11, 3, 223, 239, 9,
-			18, 31, 8, 223, 207, 246, 13, 17, 16, 244, 230, 230, 30, 46, 15, 249, 224, 250, 20, 6, 238, 239, 18, 24, 20, 1, 221, 196, 241, 25,
-			39, 38, 4, 230, 225, 34, 29, 237, 204, 236, 16, 50, 47, 240, 177, 207, 14, 26, 22, 229, 196, 247, 1, 251, 0, 229, 243, 12, 10, 0,
-			46, 3, 31, 0, 14, 38, 18, 32, 39, 17, 243, 10, 31, 23, 4, 9, 21, 31, 17, 8, 19, 34, 19, 38, 9, 255, 18, 33, 29, 22,
-			31, 239, 6, 20, 17, 41, 17, 5, 6, 16, 45, 17, 5, 36, 34, 7, 5, 37, 42, 25, 1, 14, 15, 21, 252, 6, 22, 31, 35, 0,
-			3, 250, 45, 32, 24, 24, 245, 16, 27, 23, 48, 38, 15, 249, 250, 25, 9, 250, 24, 16, 39, 16, 24, 27, 39, 31, 232, 29, 33, 30,
-			24, 14, 9, 26, 0, 0, 21, 38, 26, 23, 23, 4, 1, 36, 8, 16, 25, 250, 6, 13, 57, 7, 240, 10, 35, 28, 27, 30, 21, 28,
-			16, 42, 23, 3, 19, 13, 37, 18, 19, 37, 63, 9, 0, 42, 55, 53, 231, 15, 63, 55, 15, 1, 24, 253, 40, 32, 40, 6, 31, 27,
-			250, 10, 25, 34, 13, 9, 31, 19, 15, 20, 30, 10, 15, 3, 60, 43, 224, 0, 45, 53, 18, 5, 40, 19, 252, 27, 10, 12, 49, 22,
-			242, 252, 44, 18, 45, 14, 2, 233, 37, 36, 242, 7, 37, 19, 3, 24, 30, 1, 5, 58, 3, 252, 8, 29, 40, 15, 11, 14, 3, 255,
-			0, 37, 36, 11, 245, 17, 55, 249, 255, 25, 48, 21, 252, 18, 48, 23, 237, 235, 34, 38, 235, 240, 39, 36, 16, 23, 21, 1, 15, 20,
-			26, 44, 1, 19, 23, 10, 46, 33, 221, 229, 36, 32, 241, 254, 1, 12, 39, 56, 60, 251, 8, 19, 248, 34, 26, 21, 16, 19, 17, 14,
-			20, 249, 28, 18, 21, 29, 242, 239, 35, 47, 53, 25, 234, 34, 47, 255, 15, 45, 32, 15, 27, 3, 249, 12, 46, 36, 22, 41, 47, 222,
-			238, 62, 42, 11, 228, 11, 55, 29, 221, 5, 73, 31, 13, 20, 248, 252, 5, 42, 59, 15, 27, 14, 31, 10, 244, 48, 51, 33, 245, 11,
-			31, 253, 252, 9, 48, 18, 217, 242, 21, 53, 84, 25, 218, 33, 34, 39, 26, 21, 28, 1, 29, 4, 238, 12, 249, 32, 50, 0, 230, 36,
-			35, 10, 245, 225, 2, 75, 65, 2, 0, 246, 48, 45, 241, 235, 14, 34, 51, 45, 4, 224, 6, 15, 90, 23, 190, 33, 93, 28, 61, 28,
-			241, 183, 15, 47, 30, 12, 243, 240, 2, 89, 65, 216, 221, 22, 58, 65, 8, 234, 6, 30, 10, 21, 68, 242, 202, 60, 42, 3, 245, 176,
-			6, 45, 64, 25, 229, 222, 32, 47, 16, 238, 223, 65, 50, 241, 236, 27, 81, 252, 57, 64, 7, 235, 253, 22, 46, 23, 252, 0, 55, 61,
-			8, 255, 215, 255, 49, 85, 23, 206, 253, 10, 237, 71, 230, 201, 41, 49, 47, 25, 225, 208, 65, 66, 251, 246, 6, 69, 41, 20, 21, 245,
-			242, 27, 49, 4, 38, 52, 1, 220, 2, 48, 221, 248, 6, 11, 46, 55, 199, 208, 34, 16, 45, 29, 177, 41, 84, 33, 254, 8, 216, 55,
-			66, 22, 248, 208, 4, 63, 33, 21, 4, 253, 251, 28, 11, 37, 84, 42, 21, 239, 188, 44, 51, 31, 29, 41, 9, 219, 1, 243, 38, 108,
-			191, 254, 62, 242, 239, 60, 12, 13, 71, 11, 215, 32, 74, 1, 238, 55, 53, 248, 225, 227, 88, 112, 0, 57, 11, 217, 36, 4, 25, 55,
-			38, 44, 9, 3, 57, 81, 18, 247, 233, 63, 8, 9, 43, 52, 12, 21, 32, 22, 48, 44, 253, 9, 60, 56, 50, 30, 2, 211, 26, 78,
-			75, 43, 3, 13, 46, 255, 250, 57, 228, 211, 52, 82, 255, 233, 50, 200, 232, 66, 107, 252, 12, 10, 50, 22, 242, 23, 12, 14, 18, 47,
-			25, 2, 3, 32, 53, 39, 15, 228, 47, 9, 13, 17, 46, 241, 234, 59, 16, 233, 20, 20, 50, 250, 92, 17, 218, 253, 248, 243, 58, 7,
-			201, 20, 232, 221, 9, 87, 96, 3, 225, 242, 250, 14, 13, 0, 20, 64, 9, 13, 231, 238, 63, 49, 36, 253, 209, 207, 254, 70, 40, 30,
-			252, 131, 206, 66, 21, 51, 26, 241, 28, 17, 242, 255, 248, 61, 42, 233, 20, 77, 46, 222, 188, 25, 98, 85, 55, 243, 8, 16, 249, 7,
-			60, 43, 48, 55, 8, 185, 223, 76, 249, 14, 23, 11, 253, 66, 39, 255, 235, 7, 37, 5, 41, 18, 42, 232, 251, 38, 92, 50, 192, 2,
-			1, 245, 5, 53, 87, 9, 250, 236, 245, 22, 36, 213, 236, 62, 109, 71, 243, 224, 253, 80, 101, 248, 232, 57, 71, 38, 255, 254, 34, 48,
-			232, 240, 91, 78, 171, 193, 43, 91, 49, 246, 221, 250, 235, 61, 84, 227, 223, 4, 14, 27, 29, 198, 238, 31, 8, 82, 2, 184, 50, 42,
-			251, 254, 30, 33, 63, 39, 234, 234, 0, 0, 254, 6, 35, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 0, 0, 0, 253, 251, 250, 247,
-			243, 240, 239, 242, 249, 2, 5, 11, 15, 18, 17, 20, 19, 14, 11, 1, 235, 224, 232, 234, 223, 235, 0, 253, 250, 14, 25, 21, 24, 26,
-			22, 20, 11, 254, 253, 249, 235, 232, 240, 241, 240, 249, 255, 7, 12, 19, 21, 26, 21, 14, 15, 6, 0, 248, 250, 241, 241, 245, 244, 246,
-			255, 6, 8, 14, 20, 15, 13, 16, 11, 5, 2, 239, 210, 214, 230, 219, 220, 244, 246, 245, 12, 25, 26, 37, 33, 22, 26, 15, 254, 250,
-			250, 236, 236, 243, 241, 245, 249, 4, 17, 26, 23, 25, 39, 27, 12, 16, 9, 242, 214, 192, 208, 228, 222, 206, 235, 251, 237, 5, 34, 46,
-			41, 40, 38, 36, 28, 1, 255, 4, 242, 227, 240, 252, 241, 241, 7, 19, 17, 24, 28, 32, 23, 18, 10, 9, 253, 234, 243, 242, 235, 243,
-			27, 52, 245, 4, 31, 44, 247, 28, 43, 245, 246, 241, 235, 219, 210, 203, 210, 238, 241, 7, 38, 22, 48, 61, 51, 24, 252, 228, 200, 200,
-			173, 166, 202, 221, 210, 248, 27, 49, 35, 67, 63, 40, 14, 245, 232, 189, 174, 162, 179, 174, 189, 226, 8, 30, 55, 92, 86, 75, 72, 54,
-			22, 0, 253, 224, 204, 207, 193, 211, 227, 17, 26, 56, 76, 84, 83, 72, 63, 44, 11, 248, 248, 224, 212, 215, 229, 221, 241, 6, 4, 23,
-			27, 32, 39, 13, 254, 2, 248, 212, 199, 208, 165, 183, 203, 200, 221, 25, 61, 46, 65, 85, 60, 33, 44, 0, 185, 182, 194, 158, 159, 224,
-			222, 0, 46, 64, 73, 111, 120, 86, 86, 67, 17, 248, 226, 206, 181, 183, 198, 217, 242, 2, 29, 46, 48, 45, 45, 24, 243, 205, 180, 153,
-			131, 148, 158, 168, 192, 231, 15, 49, 86, 95, 104, 105, 94, 69, 48, 23, 255, 234, 215, 211, 207, 210, 221, 242, 8, 31, 66, 70, 79, 88,
-			68, 48, 25, 5, 239, 220, 197, 201, 203, 205, 221, 254, 1, 14, 36, 42, 34, 31, 27, 1, 241, 244, 219, 199, 208, 213, 203, 220, 1, 0,
-			3, 38, 39, 28, 27, 36, 13, 0, 241, 229, 222, 224, 236, 238, 242, 247, 3, 1, 0, 4, 249, 235, 238, 239, 233, 241, 248, 0, 2, 22,
-			45, 53, 48, 42, 33, 24, 35, 2, 249, 254, 243, 211, 237, 247, 224, 250, 10, 10, 253, 14, 6, 14, 14, 9, 0, 1, 248, 238, 248, 251,
-			244, 231, 232, 234, 2, 0, 249, 4, 11, 7, 8, 21, 19, 13, 18, 11, 242, 238, 246, 252, 245, 239, 241, 0, 2, 2, 0, 3, 12, 5,
-			7, 2, 6, 2, 13, 6, 238, 242, 4, 13, 0, 247, 7, 16, 20, 12, 11, 12, 28, 38, 23, 13, 12, 6, 247, 244, 225, 219, 217, 230,
-			223, 233, 0, 5, 8, 20, 17, 15, 19, 23, 1, 12, 32, 33, 19, 18, 13, 238, 252, 253, 239, 235, 252, 225, 205, 237, 229, 216, 253, 250,
-			235, 231, 249, 227, 234, 253, 248, 238, 246, 253, 0, 6, 27, 33, 51, 52, 40, 33, 56, 47, 42, 32, 27, 3, 6, 19, 248, 235, 230, 221,
-			216, 226, 231, 216, 228, 240, 222, 234, 254, 250, 232, 234, 233, 221, 221, 232, 230, 236, 247, 7, 2, 248, 2, 13, 23, 30, 33, 26, 28, 39,
-			46, 52, 51, 46, 44, 34, 22, 27, 26, 2, 10, 3, 241, 233, 252, 253, 245, 4, 15, 0, 5, 10, 9, 235, 238, 234, 215, 212, 219, 203,
-			200, 223, 239, 238, 14, 29, 1, 10, 20, 17, 5, 252, 252, 236, 238, 231, 255, 234, 233, 241, 244, 247, 9, 22, 25, 22, 31, 24, 29, 20,
-			17, 8, 4, 255, 254, 22, 15, 247, 240, 239, 0, 2, 17, 28, 32, 28, 14, 10, 5, 11, 253, 251, 1, 0, 9, 29, 23, 3, 5, 1,
-			250, 246, 252, 234, 238, 2, 243, 240, 247, 0, 253, 2, 245, 237, 243, 0, 5, 13, 14, 30, 42, 16, 5, 5, 12, 246, 255, 234, 208, 212,
-			232, 241, 1, 2, 251, 237, 232, 212, 221, 198, 176, 178, 186, 199, 229, 248, 0, 23, 44, 65, 72, 78, 67, 47, 22, 7, 1, 253, 253, 4,
-			30, 22, 28, 59, 70, 48, 56, 64, 19, 3, 236, 180, 155, 162, 154, 138, 159, 183, 203, 242, 22, 57, 66, 64, 67, 55, 42, 28, 35, 0,
-			232, 245, 0, 235, 9, 39, 29, 37, 79, 81, 56, 65, 35, 231, 212, 213, 200, 181, 192, 181, 184, 208, 239, 4, 34, 56, 55, 56, 63, 38,
-			22, 14, 239, 221, 219, 246, 248, 17, 20, 30, 29, 22, 25, 20, 10, 5, 5, 252, 252, 255, 238, 235, 250, 243, 1, 246, 222, 234, 253, 247,
-			238, 241, 246, 239, 254, 241, 241, 15, 29, 25, 4, 24, 6, 255, 245, 222, 213, 242, 15, 4, 1, 26, 38, 45, 34, 16, 5, 3, 12, 242,
-			221, 224, 218, 203, 206, 202, 215, 247, 5, 6, 253, 27, 28, 44, 26, 6, 10, 1, 232, 212, 214, 220, 238, 17, 23, 30, 67, 42, 19, 7,
-			247, 206, 211, 227, 181, 181, 214, 202, 209, 241, 10, 3, 36, 61, 42, 47, 50, 13, 250, 243, 226, 220, 225, 217, 214, 5, 34, 41, 72, 84,
-			81, 65, 58, 43, 19, 21, 247, 226, 231, 235, 236, 242, 11, 11, 22, 43, 31, 20, 18, 15, 234, 207, 212, 190, 198, 222, 208, 208, 241, 9,
-			243, 24, 45, 50, 65, 76, 58, 40, 39, 28, 255, 249, 249, 238, 232, 235, 245, 5, 20, 30, 27, 21, 33, 32, 21, 247, 226, 204, 194, 184,
-			181, 175, 177, 197, 222, 222, 234, 12, 30, 37, 48, 58, 43, 48, 41, 10, 233, 233, 220, 206, 233, 240, 237, 252, 30, 27, 66, 80, 71, 53,
-			61, 19, 245, 246, 231, 198, 215, 206, 176, 200, 249, 240, 252, 34, 30, 29, 37, 33, 29, 29, 15, 241, 227, 210, 212, 214, 232, 248, 2, 21,
-			35, 50, 53, 69, 48, 49, 22, 5, 0, 251, 221, 226, 224, 232, 232, 3, 241, 254, 36, 18, 21, 23, 16, 236, 245, 238, 207, 222, 237, 198,
-			223, 253, 4, 4, 13, 17, 254, 15, 3, 246, 251, 250, 235, 212, 223, 243, 247, 5, 0, 5, 19, 33, 54, 43, 44, 26, 12, 240, 227, 221,
-			237, 238, 230, 215, 252, 14, 14, 7, 5, 10, 4, 5, 237, 232, 0, 15, 15, 248, 242, 254, 4, 245, 249, 0, 7, 14, 18, 250, 0, 23,
-			19, 6, 12, 19, 24, 21, 15, 2, 250, 251, 248, 244, 242, 244, 0, 246, 237, 221, 250, 242, 236, 240, 238, 227, 239, 7, 2, 10, 39, 43,
-			30, 39, 44, 20, 22, 17, 16, 6, 35, 23, 3, 253, 14, 9, 7, 14, 13, 3, 9, 24, 251, 227, 249, 252, 210, 217, 244, 226, 227, 245,
-			232, 226, 11, 6, 244, 251, 17, 9, 17, 11, 9, 255, 1, 248, 249, 249, 14, 19, 4, 0, 14, 13, 14, 30, 19, 255, 255, 247, 237, 238,
-			238, 243, 249, 250, 5, 7, 27, 23, 16, 17, 30, 6, 7, 4, 236, 233, 248, 226, 199, 231, 251, 247, 12, 29, 255, 254, 26, 10, 243, 254,
-			250, 210, 219, 224, 223, 231, 250, 244, 246, 6, 9, 250, 254, 4, 11, 9, 0, 255, 246, 249, 10, 12, 0, 26, 40, 19, 4, 27, 11, 0,
-			4, 237, 217, 244, 16, 253, 244, 3, 1, 250, 1, 2, 250, 9, 20, 2, 225, 235, 14, 10, 251, 9, 251, 254, 20, 23, 3, 18, 35, 29,
-			20, 15, 19, 20, 21, 19, 248, 232, 8, 254, 247, 247, 242, 237, 253, 10, 240, 245, 236, 235, 248, 236, 239, 239, 221, 240, 244, 242, 242, 8,
-			3, 3, 11, 22, 26, 30, 23, 28, 0, 17, 24, 246, 251, 1, 1, 240, 5, 239, 236, 24, 36, 27, 253, 24, 16, 249, 253, 243, 217, 244,
-			3, 212, 185, 220, 239, 238, 238, 249, 241, 253, 32, 31, 6, 21, 40, 19, 23, 33, 26, 13, 20, 14, 23, 35, 41, 22, 5, 22, 18, 27,
-			12, 250, 251, 254, 243, 224, 229, 226, 248, 244, 236, 239, 255, 8, 28, 15, 2, 18, 24, 16, 27, 15, 236, 254, 255, 249, 0, 254, 3, 4,
-			33, 22, 42, 31, 29, 23, 18, 4, 246, 237, 208, 234, 229, 226, 216, 242, 251, 253, 249, 15, 4, 16, 13, 254, 248, 1, 26, 235, 230, 248,
-			251, 231, 248, 254, 11, 18, 28, 232, 248, 20, 6, 243, 229, 246, 241, 244, 238, 228, 228, 1, 4, 235, 225, 246, 248, 235, 245, 9, 235, 231,
-			0, 1, 245, 17, 8, 247, 11, 36, 22, 249, 7, 19, 1, 248, 19, 241, 242, 2, 251, 216, 244, 8, 5, 255, 4, 11, 249, 8, 20, 13,
-			255, 7, 240, 238, 246, 252, 245, 229, 240, 252, 243, 1, 24, 12, 253, 37, 29, 1, 1, 18, 250, 250, 8, 249, 244, 7, 10, 255, 15, 44,
-			35, 21, 33, 37, 15, 8, 0, 234, 244, 253, 234, 209, 222, 222, 252, 249, 255, 253, 10, 252, 9, 2, 4, 253, 1, 250, 238, 251, 229, 3,
-			254, 20, 0, 11, 3, 24, 33, 21, 7, 11, 20, 23, 22, 0, 6, 253, 249, 238, 235, 247, 241, 232, 221, 243, 247, 240, 234, 242, 254, 2,
-			226, 232, 0, 15, 23, 250, 244, 255, 22, 20, 0, 9, 27, 38, 3, 2, 255, 15, 20, 11, 233, 228, 237, 251, 231, 218, 228, 248, 0, 8,
-			250, 251, 28, 30, 21, 15, 0, 18, 28, 2, 251, 232, 229, 248, 13, 240, 229, 234, 246, 17, 17, 250, 241, 17, 37, 27, 245, 232, 244, 17,
-			14, 240, 226, 245, 19, 37, 16, 244, 10, 28, 35, 30, 14, 14, 20, 24, 6, 10, 0, 5, 9, 9, 11, 4, 0, 23, 8, 9, 19, 4,
-			4, 27, 12, 242, 0, 0, 231, 255, 234, 253, 238, 245, 241, 246, 9, 5, 254, 1, 9, 251, 6, 0, 2, 0, 2, 228, 249, 234, 238, 0,
-			2, 0, 19, 39, 27, 27, 36, 51, 32, 22, 12, 253, 5, 252, 221, 234, 248, 249, 3, 4, 252, 39, 34, 9, 22, 44, 33, 30, 255, 226,
-			14, 12, 245, 225, 235, 253, 0, 2, 4, 11, 0, 17, 18, 253, 248, 241, 223, 247, 235, 224, 224, 230, 211, 239, 253, 241, 0, 10, 245, 241,
-			0, 249, 244, 250, 0, 0, 97, 7, 59, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 1, 0, 2, 0, 1, 254, 2, 254, 0, 178, 131,
-			162, 204, 38, 88, 60, 49, 12, 195, 182, 193, 0, 67, 76, 40, 9, 253, 255, 230, 223, 245, 25, 58, 46, 8, 246, 247, 255, 250, 251, 6,
-			24, 30, 20, 248, 242, 252, 0, 8, 9, 11, 20, 13, 2, 247, 242, 254, 6, 8, 239, 188, 189, 198, 236, 21, 38, 45, 42, 250, 224, 217,
-			239, 20, 35, 254, 212, 223, 232, 248, 6, 0, 20, 40, 234, 191, 209, 233, 38, 47, 10, 6, 5, 250, 229, 218, 244, 27, 39, 20, 253, 253,
-			255, 252, 240, 244, 17, 29, 17, 1, 244, 250, 6, 252, 254, 253, 6, 16, 6, 251, 241, 242, 1, 251, 245, 1, 7, 19, 12, 249, 246, 252,
-			2, 6, 2, 6, 13, 8, 253, 244, 253, 11, 16, 7, 6, 4, 7, 0, 242, 247, 10, 23, 26, 0, 222, 224, 236, 250, 16, 14, 14, 18,
-			248, 228, 231, 245, 9, 15, 0, 244, 249, 255, 252, 254, 2, 10, 15, 7, 251, 248, 249, 255, 1, 6, 11, 7, 1, 251, 242, 250, 7, 15,
-			18, 13, 3, 252, 248, 253, 2, 10, 15, 7, 255, 255, 1, 255, 0, 11, 18, 12, 11, 2, 254, 255, 249, 251, 8, 16, 18, 12, 246, 239,
-			248, 3, 12, 12, 6, 9, 2, 253, 252, 1, 9, 11, 10, 4, 11, 11, 254, 0, 3, 7, 16, 4, 6, 9, 2, 0, 249, 3, 15, 249,
-			222, 217, 223, 248, 17, 21, 9, 3, 233, 216, 217, 242, 11, 24, 25, 1, 232, 234, 235, 243, 6, 16, 17, 6, 254, 238, 238, 4, 6, 3,
-			7, 3, 8, 10, 253, 0, 7, 4, 6, 0, 4, 16, 9, 1, 253, 254, 247, 241, 247, 8, 37, 43, 26, 8, 250, 245, 6, 8, 27, 30,
-			2, 3, 239, 218, 244, 1, 16, 36, 20, 14, 12, 3, 4, 241, 2, 23, 8, 12, 0, 244, 19, 25, 3, 249, 8, 23, 15, 7, 4, 255,
-			23, 248, 198, 239, 6, 23, 38, 246, 222, 233, 234, 233, 239, 10, 31, 26, 6, 221, 234, 253, 246, 250, 248, 27, 36, 238, 226, 224, 234, 16,
-			0, 240, 245, 248, 239, 214, 225, 1, 11, 3, 236, 230, 242, 245, 244, 248, 12, 25, 1, 232, 227, 248, 18, 13, 1, 254, 0, 8, 0, 248,
-			5, 12, 10, 4, 252, 0, 4, 1, 3, 9, 13, 7, 253, 252, 255, 2, 3, 254, 252, 2, 5, 7, 254, 251, 255, 2, 7, 5, 6, 8,
-			3, 254, 253, 0, 12, 9, 4, 3, 250, 251, 249, 251, 10, 13, 14, 7, 249, 246, 254, 6, 11, 4, 253, 251, 251, 251, 251, 2, 8, 12,
-			0, 240, 241, 246, 0, 10, 8, 4, 0, 0, 1, 246, 249, 4, 7, 254, 246, 252, 4, 7, 0, 244, 249, 3, 253, 243, 249, 3, 7, 4,
-			255, 248, 246, 241, 243, 254, 15, 17, 2, 244, 237, 242, 3, 12, 13, 16, 17, 3, 245, 248, 1, 7, 8, 1, 0, 1, 254, 252, 250, 0,
-			1, 247, 243, 244, 253, 4, 1, 253, 249, 253, 253, 251, 0, 0, 1, 252, 246, 253, 3, 8, 12, 9, 254, 244, 240, 253, 8, 15, 20, 7,
-			239, 231, 239, 0, 20, 14, 1, 253, 243, 243, 250, 252, 2, 11, 6, 0, 253, 243, 245, 246, 251, 9, 9, 8, 0, 246, 246, 248, 254, 3,
-			1, 0, 247, 242, 248, 4, 13, 0, 244, 242, 247, 1, 4, 9, 12, 4, 0, 0, 6, 23, 21, 5, 248, 253, 10, 17, 27, 23, 13, 10,
-			252, 242, 253, 12, 23, 20, 1, 249, 248, 249, 254, 0, 5, 11, 14, 8, 251, 244, 245, 245, 251, 9, 12, 4, 252, 241, 240, 254, 11, 16,
-			13, 0, 241, 239, 246, 2, 13, 16, 15, 7, 0, 251, 251, 1, 10, 13, 15, 13, 4, 252, 251, 0, 8, 11, 4, 0, 253, 251, 3, 2,
-			11, 11, 254, 240, 233, 249, 8, 11, 11, 0, 240, 233, 236, 252, 10, 16, 13, 251, 243, 240, 249, 1, 7, 19, 20, 13, 3, 249, 254, 255,
-			248, 2, 20, 27, 20, 255, 243, 250, 1, 6, 11, 14, 16, 8, 255, 254, 4, 11, 7, 7, 10, 12, 12, 2, 248, 250, 3, 5, 4, 13,
-			14, 6, 251, 238, 241, 252, 2, 10, 19, 16, 253, 239, 234, 244, 255, 0, 254, 255, 5, 0, 242, 243, 254, 7, 5, 255, 252, 252, 246, 244,
-			5, 14, 11, 254, 231, 236, 253, 0, 8, 10, 10, 8, 245, 237, 242, 253, 10, 7, 0, 9, 1, 245, 241, 246, 9, 11, 3, 246, 242, 2,
-			255, 0, 11, 11, 13, 255, 244, 253, 3, 18, 18, 17, 16, 0, 248, 247, 4, 25, 16, 9, 1, 252, 0, 251, 3, 20, 19, 22, 6, 245,
-			250, 254, 5, 14, 20, 17, 1, 245, 240, 1, 16, 19, 17, 5, 0, 0, 249, 252, 6, 10, 17, 6, 254, 255, 251, 248, 246, 255, 3, 249,
-			239, 233, 235, 244, 245, 245, 251, 252, 240, 233, 236, 245, 250, 253, 0, 5, 6, 244, 240, 253, 11, 24, 19, 5, 1, 253, 252, 255, 14, 27,
-			23, 7, 248, 246, 253, 8, 16, 16, 10, 254, 233, 235, 249, 8, 14, 254, 237, 224, 223, 232, 244, 4, 9, 249, 238, 230, 233, 245, 253, 5,
-			21, 25, 8, 243, 237, 235, 254, 20, 30, 34, 20, 3, 246, 245, 5, 25, 36, 29, 13, 5, 5, 3, 12, 15, 21, 25, 5, 253, 252, 254,
-			4, 1, 1, 0, 251, 250, 248, 250, 2, 1, 251, 243, 248, 0, 0, 3, 5, 4, 0, 245, 236, 244, 249, 253, 248, 0, 5, 255, 249, 239,
-			248, 15, 21, 13, 4, 0, 2, 8, 13, 19, 24, 16, 251, 240, 248, 8, 16, 1, 246, 245, 243, 245, 251, 3, 11, 5, 242, 225, 231, 253,
-			7, 9, 6, 255, 249, 239, 238, 251, 5, 9, 2, 254, 253, 0, 1, 0, 0, 3, 3, 253, 247, 251, 6, 16, 20, 9, 251, 240, 237, 251,
-			8, 12, 15, 3, 250, 251, 245, 248, 0, 1, 1, 253, 0, 5, 0, 250, 247, 250, 2, 2, 3, 8, 12, 14, 252, 242, 243, 249, 6, 10,
-			20, 31, 25, 8, 246, 237, 244, 1, 11, 21, 29, 27, 13, 253, 247, 248, 254, 4, 12, 18, 24, 18, 0, 242, 232, 239, 0, 13, 16, 10,
-			251, 243, 240, 245, 255, 7, 9, 3, 251, 245, 247, 249, 244, 242, 247, 251, 0, 251, 246, 252, 252, 246, 245, 249, 251, 253, 248, 246, 2, 8,
-			0, 249, 242, 247, 255, 2, 9, 14, 20, 13, 255, 253, 8, 25, 32, 35, 30, 24, 13, 252, 248, 2, 23, 27, 19, 9, 255, 248, 247, 253,
-			1, 6, 5, 252, 248, 253, 255, 253, 246, 237, 239, 241, 245, 249, 249, 250, 243, 231, 233, 235, 242, 250, 252, 255, 0, 252, 251, 254, 4, 13,
-			18, 18, 18, 17, 15, 14, 13, 14, 16, 17, 15, 16, 12, 7, 4, 2, 4, 1, 247, 239, 244, 0, 14, 18, 11, 0, 239, 232, 236, 246,
-			8, 12, 6, 254, 242, 239, 239, 238, 242, 255, 9, 9, 2, 249, 242, 242, 250, 6, 20, 26, 28, 21, 14, 13, 5, 7, 10, 11, 16, 11,
-			7, 7, 5, 3, 253, 248, 248, 241, 238, 239, 242, 249, 253, 249, 246, 242, 241, 242, 244, 245, 244, 241, 237, 238, 246, 254, 251, 248, 247, 242,
-			248, 253, 3, 11, 19, 22, 24, 25, 20, 14, 12, 16, 26, 33, 36, 26, 15, 7, 4, 2, 6, 6, 1, 253, 250, 251, 254, 251, 246, 236,
-			239, 242, 244, 253, 251, 243, 235, 226, 222, 228, 240, 245, 248, 243, 233, 225, 228, 234, 245, 2, 8, 11, 13, 6, 5, 4, 10, 22, 34, 37,
-			35, 33, 27, 24, 23, 20, 23, 22, 19, 11, 7, 9, 3, 251, 239, 232, 229, 237, 243, 246, 249, 238, 228, 221, 225, 237, 246, 250, 249, 248,
-			246, 250, 254, 252, 252, 251, 249, 253, 0, 7, 19, 25, 24, 21, 15, 11, 9, 15, 29, 34, 34, 26, 13, 5, 3, 2, 5, 11, 12, 9,
-			5, 0, 246, 239, 230, 231, 242, 245, 245, 236, 229, 232, 237, 243, 243, 245, 246, 245, 246, 250, 255, 4, 1, 251, 253, 252, 248, 249, 253, 6,
-			16, 21, 17, 4, 254, 244, 244, 0, 14, 27, 27, 17, 6, 248, 245, 249, 0, 12, 14, 10, 2, 254, 253, 253, 252, 255, 255, 250, 245, 244,
-			248, 254, 5, 2, 1, 255, 246, 242, 246, 4, 18, 20, 16, 6, 0, 255, 1, 4, 9, 12, 15, 8, 2, 255, 249, 248, 255, 2, 6, 2,
-			249, 243, 245, 255, 3, 8, 2, 249, 243, 242, 251, 4, 8, 5, 0, 254, 252, 251, 250, 249, 0, 10, 13, 6, 253, 244, 243, 250, 1, 10,
-			12, 8, 1, 255, 1, 9, 11, 8, 7, 8, 13, 10, 6, 0, 255, 3, 0, 253, 247, 239, 236, 237, 246, 255, 6, 255, 241, 238, 239, 252,
-			6, 9, 10, 9, 7, 2, 6, 9, 15, 14, 9, 6, 0, 2, 0, 2, 10, 10, 11, 2, 255, 0, 4, 11, 17, 22, 18, 10, 0, 250,
-			255, 7, 18, 23, 18, 0, 232, 212, 211, 227, 249, 4, 1, 243, 228, 222, 225, 238, 254, 9, 13, 5, 6, 8, 13, 17, 17, 21, 21, 17,
-			7, 1, 2, 6, 14, 16, 12, 10, 1, 1, 3, 12, 17, 15, 9, 9, 9, 11, 11, 9, 5, 5, 2, 0, 252, 249, 246, 246, 247, 244,
-			245, 246, 252, 0, 5, 8, 6, 2, 252, 248, 252, 0, 5, 11, 13, 10, 4, 255, 248, 250, 255, 2, 4, 0, 250, 249, 251, 0, 2, 1,
-			248, 240, 241, 243, 249, 253, 249, 247, 248, 251, 252, 254, 254, 254, 1, 6, 11, 6, 253, 246, 251, 6, 14, 19, 11, 2, 0, 255, 0, 6,
-			12, 14, 15, 17, 16, 16, 9, 254, 250, 0, 10, 18, 20, 12, 0, 245, 238, 237, 241, 0, 8, 13, 6, 253, 244, 241, 245, 0, 10, 17,
-			12, 7, 254, 249, 249, 250, 251, 251, 250, 252, 255, 2, 3, 3, 254, 249, 244, 243, 250, 5, 17, 22, 17, 9, 250, 243, 241, 248, 6, 14,
-			21, 17, 5, 248, 237, 233, 234, 246, 2, 11, 15, 11, 7, 0, 254, 250, 253, 1, 6, 15, 20, 18, 12, 2, 245, 237, 242, 250, 4, 10,
-			10, 1, 252, 243, 239, 242, 252, 4, 12, 14, 8, 1, 252, 251, 249, 251, 252, 251, 253, 253, 253, 254, 251, 246, 239, 237, 237, 249, 0, 3,
-			1, 0, 254, 250, 249, 247, 249, 0, 3, 4, 4, 4, 253, 247, 249, 248, 249, 252, 254, 0, 3, 5, 0, 252, 249, 249, 255, 3, 7, 6,
-			5, 0, 250, 253, 253, 0, 1, 252, 250, 247, 247, 248, 0, 4, 1, 255, 245, 237, 240, 247, 1, 8, 10, 1, 250, 244, 239, 247, 0, 7,
-			5, 255, 247, 242, 244, 248, 252, 3, 2, 0, 0, 0, 127, 8, 58, 0, 3, 3, 3, 4, 5, 6, 6, 6, 6, 4, 4, 3, 1, 0,
-			1, 0, 0, 0, 255, 0, 1, 0, 1, 0, 0, 0, 0, 255, 253, 253, 251, 249, 247, 247, 246, 234, 219, 220, 225, 241, 1, 16, 40, 50,
-			55, 48, 39, 33, 17, 253, 234, 218, 220, 219, 224, 234, 248, 14, 28, 34, 41, 40, 40, 28, 13, 0, 242, 237, 226, 222, 229, 233, 250, 2,
-			13, 28, 33, 37, 32, 23, 18, 9, 2, 254, 0, 254, 225, 193, 184, 166, 172, 177, 189, 230, 255, 28, 43, 58, 83, 73, 60, 28, 9, 0,
-			233, 215, 199, 203, 232, 249, 5, 24, 41, 65, 60, 53, 38, 25, 18, 245, 227, 211, 209, 217, 223, 229, 254, 15, 40, 43, 4, 241, 253, 230,
-			213, 195, 192, 223, 224, 242, 243, 33, 66, 64, 56, 41, 44, 48, 11, 237, 217, 220, 233, 220, 222, 237, 13, 36, 30, 37, 38, 49, 39, 8,
-			251, 245, 243, 235, 218, 221, 237, 254, 4, 3, 14, 26, 32, 20, 7, 0, 243, 235, 217, 202, 209, 213, 229, 233, 242, 12, 24, 41, 37, 33,
-			33, 21, 9, 244, 230, 231, 229, 227, 234, 241, 7, 16, 22, 26, 29, 35, 25, 14, 0, 248, 242, 232, 225, 230, 236, 250, 255, 5, 14, 16,
-			21, 22, 10, 9, 251, 241, 231, 219, 223, 226, 238, 249, 1, 15, 28, 36, 36, 32, 26, 20, 12, 255, 245, 240, 242, 244, 250, 254, 7, 18,
-			18, 21, 21, 21, 19, 9, 1, 253, 250, 250, 242, 246, 0, 1, 14, 11, 22, 28, 32, 26, 3, 1, 1, 249, 239, 239, 224, 240, 237, 236,
-			250, 253, 22, 28, 21, 11, 11, 14, 247, 229, 204, 184, 190, 179, 180, 191, 220, 249, 6, 8, 21, 23, 38, 19, 255, 1, 238, 242, 228, 217,
-			230, 244, 6, 17, 27, 36, 41, 47, 34, 16, 6, 249, 224, 221, 187, 209, 225, 235, 253, 245, 4, 13, 5, 8, 253, 250, 10, 243, 246, 251,
-			7, 30, 24, 7, 6, 242, 243, 222, 211, 218, 239, 236, 250, 251, 17, 43, 43, 58, 44, 58, 41, 26, 2, 246, 247, 240, 234, 247, 254, 9,
-			27, 24, 39, 42, 38, 30, 8, 1, 225, 216, 197, 200, 212, 223, 242, 253, 7, 19, 31, 30, 36, 27, 21, 14, 255, 1, 245, 250, 16, 5,
-			27, 28, 43, 44, 32, 44, 21, 17, 7, 244, 245, 245, 245, 5, 244, 15, 9, 28, 31, 13, 21, 1, 255, 231, 218, 204, 194, 185, 166, 182,
-			199, 232, 246, 18, 34, 53, 66, 71, 52, 59, 54, 24, 249, 237, 221, 226, 229, 227, 1, 17, 48, 53, 42, 66, 23, 1, 227, 211, 210, 197,
-			212, 215, 243, 0, 15, 24, 45, 38, 34, 21, 6, 248, 232, 218, 221, 212, 217, 232, 250, 25, 52, 65, 83, 70, 71, 54, 31, 24, 245, 224,
-			200, 199, 199, 210, 239, 21, 39, 73, 26, 18, 0, 227, 231, 182, 208, 197, 211, 219, 220, 14, 24, 46, 41, 18, 34, 24, 242, 239, 226, 238,
-			14, 2, 25, 27, 63, 67, 63, 62, 40, 51, 32, 3, 246, 240, 240, 249, 247, 17, 14, 253, 236, 221, 229, 202, 212, 218, 233, 3, 18, 27,
-			48, 36, 24, 248, 226, 218, 199, 201, 191, 215, 241, 252, 20, 27, 57, 75, 56, 41, 16, 0, 235, 212, 198, 187, 194, 205, 209, 243, 1, 21,
-			25, 18, 22, 5, 254, 225, 213, 212, 214, 219, 229, 225, 244, 9, 18, 37, 33, 43, 27, 11, 247, 228, 230, 225, 232, 237, 246, 0, 25, 24,
-			47, 44, 45, 41, 20, 4, 253, 248, 238, 231, 227, 232, 247, 254, 0, 7, 12, 20, 19, 23, 7, 248, 252, 230, 233, 236, 239, 254, 3, 14,
-			17, 23, 21, 30, 19, 7, 244, 237, 225, 217, 219, 229, 248, 2, 13, 21, 21, 23, 27, 13, 0, 2, 242, 243, 234, 239, 245, 3, 13, 13,
-			16, 7, 6, 250, 236, 230, 222, 210, 218, 233, 232, 9, 1, 24, 37, 38, 57, 38, 48, 38, 13, 0, 232, 230, 220, 209, 214, 215, 238, 253,
-			4, 20, 33, 34, 36, 18, 15, 7, 4, 248, 227, 228, 214, 220, 231, 234, 246, 1, 250, 0, 250, 247, 246, 240, 233, 227, 236, 237, 250, 3,
-			20, 26, 52, 43, 56, 40, 28, 11, 244, 230, 214, 219, 220, 222, 235, 231, 251, 6, 14, 30, 28, 24, 14, 254, 245, 241, 243, 233, 239, 241,
-			249, 253, 1, 2, 14, 15, 16, 20, 14, 13, 251, 231, 223, 226, 236, 248, 7, 26, 30, 38, 43, 35, 40, 24, 15, 5, 250, 254, 0, 248,
-			0, 253, 0, 1, 3, 8, 0, 249, 240, 238, 246, 255, 9, 21, 29, 37, 39, 27, 23, 17, 249, 241, 222, 199, 199, 182, 183, 198, 220, 255,
-			18, 45, 58, 64, 75, 57, 52, 42, 25, 13, 253, 239, 244, 240, 235, 237, 247, 14, 20, 29, 24, 22, 29, 13, 5, 3, 248, 253, 242, 236,
-			249, 252, 6, 11, 16, 33, 37, 31, 14, 252, 245, 228, 219, 220, 228, 249, 7, 26, 45, 67, 68, 69, 50, 30, 19, 252, 232, 202, 198, 194,
-			192, 200, 210, 223, 243, 8, 19, 31, 41, 35, 21, 10, 253, 237, 227, 214, 200, 198, 198, 215, 230, 242, 2, 11, 16, 26, 21, 25, 29, 23,
-			29, 28, 27, 34, 39, 46, 48, 48, 45, 32, 21, 2, 240, 227, 203, 192, 189, 187, 200, 217, 237, 0, 16, 29, 41, 51, 42, 46, 31, 18,
-			7, 247, 242, 232, 234, 238, 233, 240, 252, 4, 9, 13, 14, 24, 24, 27, 24, 27, 35, 25, 25, 36, 26, 31, 16, 1, 4, 253, 246, 232,
-			215, 210, 198, 196, 208, 222, 244, 6, 14, 37, 42, 45, 47, 26, 19, 7, 236, 239, 224, 227, 237, 237, 249, 9, 16, 26, 20, 17, 17, 3,
-			0, 255, 0, 1, 0, 1, 8, 9, 10, 7, 11, 14, 11, 8, 5, 1, 252, 239, 246, 246, 254, 254, 1, 17, 21, 21, 7, 253, 246, 246,
-			238, 239, 246, 3, 5, 4, 12, 19, 36, 43, 43, 54, 46, 33, 12, 249, 235, 234, 223, 223, 228, 236, 250, 255, 9, 13, 12, 10, 2, 254,
-			236, 212, 198, 193, 198, 220, 235, 9, 32, 43, 46, 49, 50, 35, 17, 246, 229, 215, 198, 188, 184, 196, 212, 238, 255, 32, 53, 63, 67, 58,
-			48, 35, 9, 243, 233, 219, 212, 202, 195, 194, 214, 232, 254, 10, 19, 19, 10, 6, 2, 253, 245, 241, 241, 248, 2, 10, 21, 25, 37, 34,
-			39, 35, 22, 10, 250, 238, 232, 219, 208, 208, 214, 229, 246, 253, 6, 20, 24, 29, 28, 19, 8, 245, 232, 227, 224, 219, 211, 210, 220, 236,
-			0, 14, 25, 23, 25, 26, 36, 29, 27, 15, 250, 241, 224, 223, 222, 223, 237, 244, 254, 8, 14, 11, 7, 245, 234, 227, 219, 215, 201, 199,
-			196, 208, 232, 251, 20, 37, 43, 45, 38, 26, 26, 8, 249, 233, 218, 213, 214, 210, 219, 229, 241, 1, 12, 23, 28, 29, 21, 7, 248, 241,
-			229, 221, 224, 226, 247, 0, 16, 33, 40, 44, 44, 39, 32, 28, 6, 247, 232, 224, 223, 224, 231, 241, 255, 9, 20, 30, 44, 43, 35, 30,
-			26, 27, 19, 8, 7, 13, 16, 20, 26, 37, 41, 26, 12, 252, 240, 226, 207, 197, 201, 209, 218, 228, 239, 8, 31, 44, 61, 65, 64, 46,
-			20, 2, 246, 230, 229, 229, 243, 5, 20, 38, 51, 60, 63, 51, 33, 14, 240, 216, 196, 183, 185, 183, 194, 214, 241, 10, 29, 45, 53, 57,
-			45, 32, 10, 251, 228, 215, 209, 218, 236, 250, 15, 37, 62, 76, 84, 82, 71, 48, 17, 243, 214, 193, 175, 169, 172, 195, 226, 4, 35, 57,
-			77, 82, 84, 73, 57, 33, 10, 243, 229, 226, 230, 232, 235, 243, 250, 4, 13, 19, 15, 2, 242, 234, 227, 230, 229, 229, 227, 238, 255, 14,
-			27, 37, 44, 40, 27, 8, 241, 219, 198, 189, 190, 202, 217, 237, 1, 26, 60, 93, 113, 125, 118, 98, 68, 28, 252, 224, 202, 191, 186, 187,
-			192, 198, 210, 230, 249, 4, 8, 10, 13, 9, 0, 242, 232, 230, 235, 249, 17, 38, 44, 35, 21, 11, 8, 1, 245, 229, 218, 211, 207, 203,
-			209, 223, 237, 1, 28, 53, 68, 68, 54, 44, 28, 14, 253, 226, 204, 187, 183, 190, 206, 221, 245, 7, 28, 54, 67, 77, 65, 48, 28, 9,
-			245, 232, 214, 205, 204, 211, 227, 249, 11, 34, 46, 52, 55, 49, 41, 28, 9, 250, 234, 221, 210, 201, 202, 214, 229, 244, 1, 16, 29, 38,
-			37, 35, 29, 15, 4, 255, 255, 0, 255, 251, 245, 241, 242, 246, 247, 249, 245, 243, 246, 249, 0, 6, 8, 8, 10, 10, 9, 2, 1, 0,
-			1, 0, 0, 1, 253, 249, 240, 241, 241, 241, 244, 246, 251, 254, 5, 5, 10, 6, 5, 5, 5, 12, 20, 27, 30, 30, 23, 15, 0, 242,
-			230, 218, 210, 209, 213, 219, 222, 222, 227, 235, 253, 13, 23, 27, 24, 17, 14, 15, 19, 25, 29, 23, 12, 1, 253, 242, 222, 202, 192, 192,
-			198, 203, 214, 229, 240, 0, 18, 41, 61, 71, 72, 67, 62, 54, 36, 12, 244, 229, 217, 209, 200, 197, 200, 210, 226, 251, 22, 43, 54, 54,
-			50, 42, 28, 7, 243, 220, 209, 206, 211, 218, 229, 250, 10, 29, 45, 56, 58, 48, 29, 6, 243, 230, 221, 211, 211, 211, 216, 220, 224, 237,
-			254, 15, 31, 40, 40, 42, 34, 28, 22, 17, 9, 252, 241, 239, 248, 250, 248, 240, 236, 233, 229, 231, 238, 244, 240, 235, 242, 2, 20, 31,
-			37, 45, 53, 57, 53, 36, 19, 253, 227, 210, 207, 216, 218, 209, 205, 216, 231, 249, 7, 24, 41, 49, 55, 59, 58, 48, 37, 26, 25, 26,
-			24, 9, 244, 222, 205, 195, 189, 190, 191, 192, 201, 217, 246, 19, 39, 51, 63, 73, 76, 70, 58, 42, 23, 2, 237, 223, 217, 208, 202, 200,
-			211, 227, 238, 243, 250, 8, 24, 31, 34, 32, 23, 7, 254, 254, 8, 16, 17, 15, 16, 21, 22, 18, 16, 16, 13, 6, 249, 237, 225, 212,
-			200, 201, 221, 243, 253, 0, 9, 25, 39, 51, 60, 65, 51, 30, 5, 246, 233, 225, 217, 216, 220, 231, 245, 0, 11, 21, 29, 35, 39, 40,
-			32, 18, 255, 242, 233, 232, 236, 247, 2, 12, 20, 31, 43, 52, 49, 35, 14, 252, 230, 210, 196, 192, 197, 204, 215, 237, 9, 37, 56, 71,
-			79, 75, 58, 28, 3, 240, 230, 224, 225, 222, 223, 219, 225, 241, 5, 22, 32, 29, 22, 14, 7, 251, 236, 225, 217, 219, 228, 247, 3, 12,
-			20, 19, 27, 29, 20, 1, 233, 213, 194, 186, 188, 201, 220, 244, 14, 44, 72, 85, 85, 74, 58, 39, 19, 251, 224, 198, 182, 177, 185, 205,
-			232, 3, 30, 50, 63, 72, 70, 59, 38, 22, 7, 251, 234, 220, 211, 211, 216, 225, 240, 253, 8, 14, 15, 18, 18, 17, 11, 4, 1, 1,
-			1, 255, 251, 250, 250, 253, 3, 10, 15, 13, 4, 248, 238, 230, 225, 225, 227, 231, 238, 246, 3, 15, 28, 39, 42, 39, 28, 9, 239, 210,
-			192, 187, 191, 200, 220, 241, 5, 19, 33, 47, 52, 47, 37, 23, 8, 247, 229, 216, 208, 205, 210, 220, 233, 248, 4, 12, 17, 23, 28, 30,
-			25, 21, 16, 11, 7, 4, 6, 8, 5, 2, 254, 254, 247, 237, 224, 213, 205, 203, 207, 216, 230, 249, 10, 27, 44, 57, 64, 67, 61, 49,
-			32, 9, 239, 213, 191, 176, 167, 169, 185, 210, 236, 6, 31, 56, 70, 81, 90, 93, 81, 56, 27, 254, 227, 206, 189, 184, 184, 192, 202, 217,
-			231, 243, 254, 10, 24, 33, 40, 40, 35, 31, 30, 30, 30, 26, 19, 10, 1, 249, 241, 233, 226, 223, 225, 228, 230, 230, 227, 228, 236, 253,
-			16, 31, 34, 33, 27, 27, 26, 26, 23, 17, 5, 253, 248, 247, 249, 252, 0, 10, 21, 33, 40, 37, 30, 22, 19, 21, 24, 26, 20, 8,
-			255, 245, 235, 227, 227, 227, 227, 228, 236, 244, 250, 252, 0, 10, 23, 31, 34, 33, 27, 21, 15, 13, 10, 5, 254, 245, 237, 232, 229, 226,
-			225, 225, 231, 242, 253, 1, 3, 5, 5, 7, 10, 12, 12, 6, 0, 250, 251, 252, 252, 251, 252, 253, 0, 2, 3, 3, 0, 250, 246, 244,
-			248, 248, 248, 246, 248, 249, 252, 251, 250, 247, 243, 240, 239, 240, 240, 237, 231, 228, 228, 232, 239, 245, 245, 239, 233, 231, 235, 243, 252, 0,
-			255, 0, 170, 7, 51, 0, 21, 242, 238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28,
-			12, 233, 10, 17, 0, 250, 17, 31, 237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12,
-			106, 244, 132, 46, 76, 41, 222, 179, 29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26,
-			57, 239, 25, 236, 237, 60, 21, 231, 223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9,
-			244, 2, 23, 255, 230, 20, 17, 255, 249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34,
-			10, 22, 238, 231, 33, 13, 250, 243, 235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232,
-			14, 252, 39, 22, 231, 0, 48, 2, 226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6,
-			5, 50, 247, 212, 26, 37, 1, 239, 244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24,
-			240, 237, 47, 20, 242, 236, 32, 21, 237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227,
-			73, 17, 203, 11, 38, 243, 6, 2, 255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5,
-			9, 237, 24, 47, 227, 237, 51, 19, 232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231,
-			3, 22, 253, 229, 38, 1, 221, 31, 13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32,
-			55, 217, 214, 74, 45, 182, 1, 59, 19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7,
-			0, 43, 12, 235, 10, 3, 6, 30, 240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204,
-			232, 10, 50, 1, 225, 11, 20, 4, 254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238,
-			0, 9, 0, 35, 235, 234, 51, 249, 218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78,
-			56, 189, 200, 68, 66, 221, 212, 253, 34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29,
-			29, 252, 245, 60, 246, 173, 65, 92, 206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5,
-			249, 239, 28, 10, 0, 227, 0, 70, 241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248,
-			220, 33, 10, 247, 247, 247, 42, 228, 208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232,
-			33, 31, 236, 233, 6, 57, 5, 221, 250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36,
-			254, 208, 4, 81, 223, 228, 58, 252, 236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252,
-			249, 18, 48, 250, 247, 32, 252, 232, 42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232,
-			248, 41, 15, 235, 31, 233, 233, 48, 3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17,
-			244, 222, 0, 47, 12, 223, 11, 33, 246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2,
-			247, 27, 252, 240, 45, 247, 237, 7, 17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238,
-			22, 239, 31, 29, 223, 12, 1, 17, 6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12,
-			249, 1, 56, 233, 234, 38, 239, 12, 56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21, 222, 219, 35, 42, 215, 255, 7, 6,
-			40, 0, 188, 15, 76, 245, 193, 29, 25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13, 11, 247, 16, 19, 2, 239, 204, 71,
-			69, 188, 229, 30, 35, 0, 2, 14, 236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23, 237, 4, 46, 204, 233, 66, 250, 217,
-			22, 41, 2, 225, 27, 47, 234, 252, 10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18, 53, 242, 10, 6, 234, 30, 19, 235,
-			9, 42, 242, 224, 32, 0, 243, 16, 251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23, 249, 239, 13, 237, 22, 0, 0, 26,
-			243, 1, 33, 231, 9, 46, 235, 245, 9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232, 20, 58, 246, 195, 11, 40, 18, 2,
-			200, 0, 60, 42, 225, 219, 32, 32, 4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230, 5, 26, 236, 255, 19, 8, 10, 21,
-			242, 238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250, 17,
-			31, 237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41, 222,
-			179, 29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60, 21,
-			231, 223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20, 17,
-			255, 249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13, 250,
-			243, 235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0, 48,
-			2, 226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37, 1,
-			239, 244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236, 32,
-			21, 237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243, 6,
-			2, 255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237, 51,
-			19, 232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1, 221,
-			31, 13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182, 1,
-			59, 19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3, 6,
-			30, 240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11, 20,
-			4, 254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234, 51,
-			249, 218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221, 212,
-			253, 34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173, 65,
-			92, 206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227, 0,
-			70, 241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247, 42,
-			228, 208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57, 5,
-			221, 250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228, 58,
-			252, 236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32, 252,
-			232, 42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233, 233,
-			48, 3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223, 11,
-			33, 246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247, 237,
-			7, 17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12, 1,
-			17, 6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38, 239,
-			12, 56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21, 222, 219, 35, 42, 215, 255, 7, 6, 40, 0, 188, 15, 76, 245, 193,
-			29, 25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13, 11, 247, 16, 19, 2, 239, 204, 71, 69, 188, 229, 30, 35, 0, 2,
-			14, 236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23, 237, 4, 46, 204, 233, 66, 250, 217, 22, 41, 2, 225, 27, 47, 234,
-			252, 10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18, 53, 242, 10, 6, 234, 30, 19, 235, 9, 42, 242, 224, 32, 0, 243,
-			16, 251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23, 249, 239, 13, 0, 0, 150, 0, 4, 0, 1, 0, 224, 0, 248, 2,
-			140, 5, 60, 10, 20, 13, 175, 14, 117, 27, 50, 43, 29, 57, 48, 41, 35, 29, 12, 3, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			224, 0, 248, 2, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 60, 67, 36, 71, 61, 52, 44, 37, 15, 4, 196, 162, 200, 120, 120, 120,
-			249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 224, 0, 248, 2, 120, 5, 40, 10, 20, 13, 175, 14, 117, 27, 40, 55, 33, 64, 55, 40, 36, 33, 14, 4, 196, 162,
-			200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 208, 0, 224, 2, 100, 5, 236, 9, 1, 13, 155, 14, 105, 27, 0, 33, 26, 52, 37, 27, 24, 24,
-			11, 3, 192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 240, 0, 128, 3, 160, 5, 150, 10, 164, 13, 45, 15, 195, 27,
-			45, 45, 31, 64, 57, 40, 30, 20, 9, 4, 235, 162, 134, 132, 120, 120, 247, 170, 165, 44, 65, 70, 130, 55, 0, 0, 0, 0, 45, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 128, 3, 160, 5, 150, 10, 164, 13,
-			45, 15, 195, 27, 50, 82, 42, 87, 77, 54, 41, 27, 12, 5, 235, 162, 134, 132, 120, 120, 247, 170, 165, 44, 65, 70, 130, 55, 0, 0,
-			0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 128, 3, 160, 5,
-			150, 10, 164, 13, 45, 15, 195, 27, 80, 67, 37, 78, 69, 48, 37, 24, 11, 5, 235, 162, 134, 132, 120, 120, 247, 170, 165, 44, 65, 70,
-			130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 240, 0,
-			128, 3, 160, 5, 150, 10, 164, 13, 45, 15, 195, 27, 0, 37, 28, 58, 52, 36, 27, 18, 8, 3, 235, 162, 134, 132, 120, 120, 247, 170,
-			165, 44, 65, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			0, 0, 5, 0, 1, 0, 240, 0, 200, 2, 224, 6, 176, 9, 112, 13, 10, 15, 96, 27, 44, 46, 34, 65, 59, 56, 38, 23, 6, 8,
-			165, 135, 240, 120, 120, 120, 195, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 208, 2, 224, 6, 116, 9, 112, 13, 60, 15, 96, 27, 77, 68, 36, 76, 79, 74,
-			40, 24, 8, 6, 170, 120, 180, 120, 120, 120, 200, 120, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 192, 2, 202, 6, 116, 9, 72, 13, 60, 15, 96, 27, 77, 53,
-			29, 62, 71, 62, 56, 25, 13, 6, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 240, 0, 160, 2, 114, 6, 196, 9, 172, 13, 60, 15,
-			96, 28, 35, 38, 27, 56, 50, 49, 42, 26, 10, 7, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 240, 0, 160, 2, 26, 6, 216, 9,
-			172, 13, 60, 15, 96, 28, 0, 33, 26, 55, 45, 42, 36, 22, 7, 9, 167, 105, 180, 120, 120, 120, 242, 135, 150, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 215, 0, 5, 0, 1, 0,
-			153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 54, 22, 57, 64, 38, 35, 20, 14, 6, 165, 126, 145, 120, 120, 120,
-			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 90, 82, 28, 70, 78, 46, 43, 24, 17, 7, 165, 126,
-			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 45, 74, 26, 66, 74, 44, 41, 23,
-			16, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 153, 0, 176, 1, 56, 3, 216, 9, 194, 11, 151, 14, 244, 26, 30, 45, 20, 54,
-			57, 34, 31, 18, 13, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 153, 0, 176, 1, 56, 3, 216, 9, 194, 11, 151, 14, 244, 26,
-			0, 36, 18, 49, 52, 31, 28, 16, 11, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 184, 0, 72, 2, 172, 3,
-			20, 10, 164, 11, 53, 14, 160, 27, 45, 56, 25, 59, 71, 35, 34, 19, 12, 5, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0,
-			72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 80, 106, 34, 81, 98, 48, 46, 27, 17, 7, 173, 142, 135, 120, 120, 120, 182, 105,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 60, 95, 33, 77, 93, 46, 44, 25, 16, 7, 173, 142, 135, 120,
-			120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 0, 51, 24, 56, 68, 33, 32, 18, 12, 5,
-			173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 45, 39,
-			2, 67, 43, 20, 20, 26, 8, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15,
-			144, 26, 70, 66, 3, 87, 57, 26, 26, 34, 11, 9, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 172, 0, 64, 1, 228, 2, 96, 9,
-			12, 13, 60, 15, 144, 26, 60, 59, 3, 83, 54, 25, 25, 32, 10, 9, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 172, 0, 64, 1,
-			228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 0, 37, 2, 65, 42, 19, 19, 25, 8, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 110, 0,
-			4, 0, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 50, 51, 26, 61, 52, 32, 29, 20, 14, 7, 162, 127,
-			150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 60, 78, 32, 75, 64, 39, 36, 25,
-			18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 60, 67, 30, 71,
-			57, 37, 33, 23, 16, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 138, 1, 212, 3, 56, 9, 224, 11, 136, 14, 144, 26,
-			0, 31, 21, 46, 40, 33, 29, 18, 13, 5, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 50, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6,
-			36, 9, 228, 12, 96, 14, 100, 25, 45, 34, 17, 54, 37, 31, 34, 31, 8, 11, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0,
-			24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 50, 59, 22, 71, 47, 41, 45, 41, 11, 15, 167, 90, 135, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 85, 54, 21, 68, 46, 39, 43, 39, 10, 14, 167, 90, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 40, 42, 19, 60, 41, 35, 38, 35, 9, 12,
-			165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 29, 15, 50, 34, 29,
-			31, 29, 7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 200, 0, 4, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14,
-			95, 27, 50, 49, 28, 59, 69, 41, 43, 30, 17, 6, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 122, 0, 192, 1, 240, 5, 116, 9,
-			228, 12, 246, 14, 95, 27, 70, 71, 34, 71, 83, 49, 52, 37, 20, 8, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 122, 0, 192, 1,
-			240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 64, 32, 68, 79, 47, 49, 35, 19, 7, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			121, 0, 207, 1, 240, 5, 96, 9, 220, 12, 220, 14, 95, 27, 0, 39, 26, 53, 62, 37, 39, 27, 15, 5, 170, 136, 135, 122, 123, 126,
-			197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 0, 0, 6, 0, 1, 0, 235, 0, 79, 3, 103, 5, 206, 9, 184, 12, 181, 14, 193, 27, 45, 62, 28, 63, 72, 40, 41, 26,
-			9, 5, 233, 132, 198, 126, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 235, 0, 79, 3, 103, 5, 206, 9, 184, 12, 181, 14, 193, 27, 60, 108, 37, 83,
-			94, 54, 54, 35, 13, 6, 233, 132, 198, 126, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 220, 0, 42, 3, 252, 4, 36, 9, 128, 12, 41, 14, 224, 27,
-			41, 66, 32, 59, 75, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 211, 0, 97, 2, 24, 4, 39, 9, 164, 12,
-			137, 14, 93, 27, 40, 64, 23, 64, 64, 33, 41, 32, 13, 7, 181, 134, 172, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 201, 0, 152, 1, 52, 3,
-			43, 9, 201, 12, 233, 14, 217, 26, 60, 51, 15, 65, 51, 24, 29, 31, 12, 7, 195, 149, 134, 120, 120, 120, 141, 120, 147, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0,
-			104, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 31, 8, 55, 37, 20, 20, 26, 11, 7, 177, 125, 110, 120, 120, 120, 177, 125,
-			125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			240, 0, 5, 0, 1, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14, 104, 28, 45, 29, 21, 46, 46, 49, 37, 28, 9, 6,
-			184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14, 104, 28, 50, 84, 36, 79, 78, 83,
-			63, 48, 15, 11, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 198, 0, 192, 1, 44, 7, 195, 9, 213, 12, 91, 14, 62, 28, 75, 71,
-			31, 76, 61, 74, 57, 44, 14, 10, 183, 109, 149, 120, 120, 120, 185, 107, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 178, 0, 71, 1, 179, 3, 63, 9, 9, 13, 48, 15,
-			166, 26, 70, 42, 4, 71, 37, 23, 22, 30, 12, 7, 178, 124, 103, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 178, 0, 71, 1, 179, 3, 63, 9,
-			9, 13, 48, 15, 166, 26, 0, 30, 3, 60, 31, 19, 18, 25, 10, 6, 178, 124, 103, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 255, 0, 6, 0, 33, 0,
-			152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 45, 6, 66, 59, 59, 60, 29, 14, 6, 175, 105, 120, 120, 120, 120,
-			175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 40, 65, 9, 78, 70, 70, 71, 34, 16, 8, 167, 105,
-			120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 24, 1, 172, 8, 240, 10, 32, 13, 0, 15, 160, 26, 50, 64, 9, 78, 64, 70, 71, 34,
-			16, 8, 167, 105, 130, 120, 120, 120, 167, 90, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 158, 0, 48, 1, 168, 7, 140, 10, 240, 12, 232, 14, 194, 26, 80, 50, 12, 70,
-			44, 58, 57, 29, 15, 7, 166, 109, 158, 120, 120, 120, 167, 90, 158, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 72, 1, 16, 4, 36, 9, 224, 11, 136, 14, 244, 26,
-			40, 29, 19, 45, 31, 26, 24, 16, 12, 6, 162, 127, 175, 120, 120, 120, 162, 127, 190, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 72, 1, 189, 3, 92, 8, 204, 11,
-			141, 14, 88, 27, 0, 30, 21, 52, 36, 20, 14, 11, 8, 7, 155, 105, 97, 120, 120, 120, 110, 105, 97, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 215, 0, 5, 0, 1, 0, 232, 0,
-			144, 3, 40, 5, 180, 10, 212, 13, 100, 15, 102, 27, 45, 57, 32, 62, 59, 39, 37, 22, 9, 3, 255, 170, 163, 145, 120, 120, 255, 174,
-			173, 44, 60, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 232, 0, 144, 3, 40, 5, 180, 10, 212, 13, 100, 15, 102, 27, 50, 99, 42, 82, 78, 52, 49, 29, 13, 4, 255, 170, 163, 145,
-			120, 120, 255, 174, 173, 44, 60, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 225, 0, 72, 3, 138, 5, 220, 10, 212, 13, 80, 15, 120, 27, 60, 66, 39, 73, 57, 49, 46, 28, 12, 5,
-			247, 162, 178, 142, 120, 120, 255, 174, 190, 44, 55, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 104, 1, 152, 8, 4, 11, 172, 13, 60, 15, 32, 28, 60, 30, 30, 47, 48, 44,
-			40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 104, 1, 152, 8, 4, 11, 112, 13, 20, 15, 32, 28, 0, 26,
-			27, 43, 44, 40, 37, 29, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 245, 0, 5, 0, 1, 0, 200, 0, 208, 1, 188, 7, 216, 9,
-			248, 12, 66, 14, 128, 28, 45, 29, 21, 47, 46, 50, 38, 29, 8, 6, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 208, 1,
-			188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 70, 85, 36, 79, 79, 85, 65, 49, 15, 11, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			196, 0, 200, 1, 210, 7, 234, 9, 8, 13, 76, 14, 119, 28, 60, 72, 33, 73, 72, 78, 59, 45, 13, 10, 183, 105, 134, 120, 120, 120,
-			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 156, 0, 88, 1, 172, 8, 140, 10, 152, 13, 166, 14, 32, 28, 70, 45, 33, 56, 50, 60, 46, 33, 10, 8, 167, 90,
-			195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 144, 0, 72, 1, 232, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 24, 18, 44, 44, 40, 37, 29,
-			8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 20, 0, 6, 0, 1, 0, 56, 1, 168, 2, 8, 7, 136, 9, 32, 13, 141, 14, 32, 29,
-			34, 43, 31, 54, 66, 53, 40, 30, 10, 6, 255, 172, 180, 120, 120, 120, 105, 172, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 56, 1, 168, 2, 8, 7, 136, 9, 32, 13,
-			141, 14, 32, 29, 20, 75, 42, 72, 88, 70, 53, 40, 14, 8, 255, 172, 180, 120, 120, 120, 105, 172, 150, 44, 45, 70, 130, 58, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 56, 1, 168, 2, 8, 7,
-			136, 9, 32, 13, 141, 14, 32, 29, 46, 45, 32, 56, 68, 54, 41, 31, 10, 6, 255, 172, 180, 120, 120, 120, 105, 172, 150, 44, 45, 70,
-			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 240, 0,
-			78, 2, 67, 7, 176, 9, 32, 13, 116, 14, 32, 28, 94, 49, 29, 58, 68, 60, 49, 40, 12, 6, 184, 135, 168, 120, 120, 120, 169, 138,
-			150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			5, 0, 156, 0, 99, 1, 141, 8, 140, 10, 112, 13, 0, 15, 32, 28, 40, 34, 29, 50, 45, 54, 41, 29, 9, 7, 167, 90, 195, 120,
-			120, 120, 122, 120, 135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 112, 13, 10, 15, 32, 28, 0, 30, 30, 47, 45, 43, 40, 31, 9, 8,
-			167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 144, 0, 213, 1, 96, 3, 136, 9, 254, 11, 157, 14, 216, 26, 24, 59,
-			25, 66, 64, 38, 35, 20, 15, 7, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 213, 1, 96, 3, 136, 9, 254, 11, 157, 14,
-			216, 26, 55, 83, 30, 79, 76, 45, 41, 24, 17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 224, 1, 72, 3, 96, 9,
-			244, 11, 35, 15, 224, 27, 65, 84, 34, 78, 94, 48, 55, 28, 16, 7, 170, 120, 90, 120, 120, 120, 170, 75, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0, 184, 0, 209, 1,
-			106, 5, 132, 8, 48, 12, 191, 14, 64, 27, 25, 50, 37, 69, 40, 60, 39, 22, 15, 7, 167, 100, 152, 120, 120, 120, 137, 115, 167, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			208, 0, 149, 1, 246, 6, 152, 8, 128, 12, 191, 14, 64, 27, 48, 46, 32, 58, 36, 60, 35, 23, 14, 7, 155, 105, 150, 120, 120, 120,
-			125, 150, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 1, 0, 160, 0, 54, 1, 199, 7, 136, 9, 228, 12, 191, 14, 64, 27, 30, 33, 24, 51, 34, 29, 39, 25, 16, 7, 155, 105,
-			135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36,
-			0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 248, 7, 136, 9, 72, 13, 191, 14, 64, 27, 0, 30, 22, 48, 32, 28, 37, 24,
-			15, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170,
-			0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0, 175, 0, 65, 1, 197, 3, 73, 9, 19, 13, 53, 15, 164, 26,
-			45, 37, 3, 65, 33, 20, 20, 27, 11, 6, 177, 123, 107, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 175, 0, 65, 1, 197, 3, 73, 9, 19, 13,
-			53, 15, 164, 26, 80, 75, 5, 94, 48, 29, 28, 39, 15, 9, 177, 123, 107, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 173, 0, 70, 1, 126, 4,
-			196, 9, 38, 13, 32, 15, 221, 26, 80, 56, 8, 79, 36, 30, 28, 34, 13, 8, 175, 118, 150, 120, 120, 120, 177, 125, 147, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 158, 0,
-			80, 1, 12, 8, 130, 10, 86, 13, 13, 15, 255, 27, 45, 31, 15, 53, 30, 37, 37, 31, 9, 8, 168, 109, 155, 120, 120, 120, 177, 109,
-			152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 156, 0, 72, 1, 112, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 18, 55, 33, 36, 37, 29, 8, 7, 167, 105, 155, 120,
-			120, 120, 122, 105, 140, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 70, 0, 3, 0, 5, 0, 124, 0, 72, 1, 170, 2, 20, 10, 8, 12, 10, 15, 32, 27, 40, 22, 14, 46, 42, 20,
-			18, 13, 9, 3, 141, 97, 120, 120, 120, 120, 60, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 124, 0, 72, 1, 170, 2, 20, 10, 8, 12, 10, 15, 32, 27, 30, 35,
-			18, 58, 52, 26, 23, 16, 12, 4, 141, 97, 120, 120, 120, 120, 60, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14,
-			128, 26, 0, 72, 32, 68, 70, 45, 36, 28, 20, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 81, 2, 31, 0, 5, 251, 3, 14, 16, 10,
-			2, 0, 251, 4, 5, 238, 6, 31, 245, 248, 21, 249, 255, 20, 1, 2, 248, 237, 9, 252, 240, 21, 12, 254, 3, 231, 222, 231, 223, 229,
-			207, 194, 231, 228, 219, 250, 253, 2, 10, 249, 12, 24, 6, 23, 19, 16, 54, 30, 0, 41, 49, 22, 14, 5, 11, 23, 22, 18, 7, 12,
-			22, 7, 4, 13, 9, 4, 251, 255, 0, 238, 239, 229, 222, 17, 255, 189, 238, 253, 202, 244, 3, 212, 230, 1, 8, 7, 238, 1, 35, 14,
-			5, 12, 6, 0, 246, 9, 18, 249, 26, 22, 209, 0, 46, 252, 6, 15, 229, 15, 49, 245, 217, 248, 12, 2, 241, 240, 238, 244, 10, 1,
-			223, 229, 9, 7, 236, 250, 248, 214, 0, 24, 232, 18, 64, 252, 249, 46, 31, 29, 53, 54, 44, 42, 58, 43, 34, 91, 58, 225, 23, 62,
-			1, 6, 247, 164, 185, 34, 74, 0, 178, 181, 177, 157, 154, 132, 186, 250, 166, 136, 222, 211, 184, 224, 239, 243, 232, 224, 2, 12, 22, 52,
-			54, 76, 50, 233, 52, 125, 41, 37, 77, 19, 46, 107, 41, 15, 77, 72, 32, 34, 16, 238, 21, 60, 2, 234, 22, 240, 188, 246, 25, 224,
-			189, 214, 236, 220, 203, 214, 237, 246, 215, 182, 223, 254, 206, 210, 8, 250, 232, 1, 253, 0, 35, 30, 13, 7, 4, 23, 29, 12, 9, 3,
-			28, 55, 248, 228, 53, 44, 235, 247, 18, 30, 0, 213, 19, 51, 219, 216, 12, 248, 240, 242, 238, 16, 11, 238, 3, 10, 252, 249, 0, 21,
-			250, 223, 45, 63, 238, 237, 12, 20, 41, 11, 243, 17, 253, 226, 251, 255, 255, 0, 238, 226, 220, 3, 45, 230, 204, 23, 0, 234, 40, 12,
-			248, 44, 1, 218, 11, 11, 247, 8, 31, 38, 238, 215, 15, 232, 185, 0, 4, 241, 49, 5, 190, 20, 57, 236, 241, 28, 249, 228, 8, 245,
-			204, 29, 81, 233, 208, 36, 11, 225, 7, 3, 246, 26, 5, 220, 253, 15, 236, 245, 28, 11, 242, 1, 253, 232, 9, 32, 248, 255, 47, 5,
-			227, 34, 25, 223, 27, 56, 239, 245, 24, 246, 0, 41, 15, 240, 14, 41, 246, 204, 252, 17, 244, 252, 238, 219, 24, 33, 214, 223, 9, 232,
-			220, 11, 15, 240, 244, 242, 232, 15, 31, 245, 252, 35, 18, 232, 223, 247, 4, 6, 33, 24, 251, 20, 250, 208, 40, 69, 243, 12, 26, 211,
-			249, 46, 249, 233, 14, 30, 12, 230, 222, 229, 235, 34, 39, 216, 225, 20, 238, 232, 41, 27, 210, 223, 25, 6, 223, 2, 19, 242, 7, 27,
-			233, 239, 31, 250, 230, 36, 28, 231, 8, 40, 4, 253, 10, 252, 0, 41, 50, 246, 212, 12, 15, 204, 240, 32, 231, 238, 18, 211, 230, 54,
-			0, 216, 21, 12, 227, 237, 251, 2, 0, 9, 35, 251, 224, 27, 18, 237, 22, 7, 221, 12, 18, 229, 3, 40, 5, 231, 18, 44, 225, 218,
-			67, 25, 169, 224, 23, 0, 37, 19, 201, 6, 63, 231, 213, 46, 30, 223, 1, 15, 212, 238, 53, 16, 216, 250, 13, 238, 252, 26, 247, 237,
-			26, 4, 224, 16, 24, 228, 1, 36, 239, 226, 12, 16, 11, 13, 241, 249, 42, 27, 232, 236, 4, 14, 18, 3, 246, 2, 18, 255, 222, 248,
-			29, 244, 219, 0, 250, 251, 29, 240, 206, 13, 34, 252, 241, 246, 250, 252, 8, 0, 0, 0, 45, 0, 3, 0, 5, 0, 136, 0, 200, 0,
-			64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 45, 5, 8, 15, 6, 4, 2, 2, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
-			30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0,
-			136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 14, 14, 24, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175,
-			200, 212, 187, 44, 30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 14, 14, 24, 10, 7, 3, 3, 0, 0, 200, 212,
-			187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 24, 0, 3, 0, 5, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 25, 15, 14, 25,
-			10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21,
-			0, 15, 14, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 57, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13,
-			24, 16, 124, 21, 0, 15, 14, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 57, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 45, 0, 3, 0, 5, 0, 116, 0,
-			232, 0, 164, 6, 176, 9, 152, 13, 60, 15, 124, 21, 45, 2, 11, 6, 4, 2, 2, 2, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
-			187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 7, 17, 10, 7, 14, 3, 3, 0, 0, 200, 212, 187, 255,
-			255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 7, 17, 10, 7, 3, 3, 3, 0, 0,
-			200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 24, 0, 3, 0, 5, 0, 136, 0, 216, 1, 64, 6, 196, 9, 128, 12, 100, 15, 124, 21, 25, 14,
-			3, 36, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9, 128, 12, 100, 15,
-			124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 196, 9,
-			128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 185, 3, 16, 0, 255, 254,
-			255, 0, 0, 2, 3, 4, 4, 4, 3, 3, 3, 1, 1, 1, 1, 0, 0, 255, 253, 251, 252, 253, 254, 253, 254, 255, 255, 1, 4, 4,
-			6, 4, 5, 3, 3, 5, 4, 2, 0, 1, 0, 255, 255, 253, 252, 250, 251, 249, 251, 252, 255, 0, 2, 3, 5, 3, 5, 8, 12, 12,
-			13, 15, 16, 14, 17, 233, 133, 161, 0, 56, 75, 57, 15, 3, 245, 228, 211, 211, 248, 30, 57, 51, 22, 255, 233, 218, 213, 237, 5, 23,
-			25, 25, 18, 1, 240, 222, 226, 240, 2, 18, 31, 27, 12, 250, 250, 245, 243, 248, 254, 4, 9, 8, 14, 8, 255, 240, 241, 250, 0, 2,
-			8, 10, 5, 3, 0, 254, 251, 247, 247, 0, 6, 10, 11, 5, 1, 254, 247, 255, 1, 0, 2, 0, 1, 4, 0, 254, 248, 250, 253, 254,
-			7, 13, 9, 6, 1, 251, 249, 248, 250, 253, 3, 8, 14, 11, 4, 251, 247, 248, 245, 250, 1, 7, 10, 13, 5, 1, 250, 244, 249, 253,
-			0, 9, 14, 14, 5, 0, 238, 246, 249, 246, 250, 4, 16, 16, 7, 7, 4, 252, 249, 243, 242, 250, 1, 8, 12, 8, 4, 0, 246, 0,
-			254, 4, 16, 20, 3, 223, 7, 7, 253, 0, 235, 234, 1, 2, 17, 13, 1, 0, 254, 253, 0, 6, 20, 21, 11, 5, 0, 243, 226, 224,
-			233, 253, 13, 20, 20, 13, 2, 246, 249, 252, 0, 8, 7, 15, 13, 254, 254, 244, 237, 245, 251, 9, 15, 10, 14, 2, 245, 250, 246, 250,
-			2, 3, 6, 5, 0, 254, 251, 252, 254, 4, 15, 14, 8, 252, 254, 251, 248, 251, 252, 2, 5, 0, 2, 249, 253, 0, 255, 0, 1, 9,
-			19, 8, 3, 245, 243, 247, 251, 5, 6, 15, 9, 250, 253, 3, 241, 244, 249, 11, 1, 251, 24, 8, 240, 4, 4, 5, 14, 251, 1, 18,
-			237, 0, 0, 244, 247, 251, 251, 8, 6, 238, 250, 1, 8, 16, 8, 253, 2, 22, 12, 15, 0, 250, 12, 26, 12, 184, 158, 200, 25, 50,
-			34, 29, 6, 12, 2, 0, 252, 243, 255, 14, 30, 20, 251, 218, 219, 246, 251, 16, 21, 20, 253, 0, 4, 242, 223, 232, 7, 26, 27, 5,
-			8, 7, 248, 237, 243, 14, 21, 13, 6, 248, 247, 236, 246, 255, 15, 11, 11, 10, 255, 233, 193, 224, 12, 33, 31, 31, 28, 7, 8, 255,
-			2, 222, 207, 253, 22, 29, 2, 255, 245, 234, 243, 0, 10, 251, 253, 9, 33, 23, 252, 244, 246, 0, 2, 5, 12, 5, 246, 243, 252, 254,
-			0, 1, 0, 254, 255, 2, 4, 7, 253, 249, 2, 9, 9, 4, 255, 255, 251, 254, 3, 7, 2, 250, 250, 2, 2, 247, 251, 3, 3, 1,
-			4, 2, 4, 0, 0, 3, 2, 0, 0, 1, 0, 250, 254, 0, 7, 2, 252, 1, 3, 1, 252, 252, 0, 1, 5, 7, 8, 1, 254, 248,
-			251, 255, 1, 4, 3, 2, 3, 2, 0, 252, 251, 252, 1, 3, 4, 0, 4, 0, 2, 252, 254, 0, 2, 1, 0, 2, 0, 1, 253, 250,
-			7, 2, 254, 3, 253, 251, 2, 4, 0, 13, 2, 253, 251, 247, 255, 8, 1, 251, 0, 4, 4, 7, 254, 0, 0, 254, 249, 254, 0, 3,
-			14, 8, 252, 253, 253, 246, 251, 252, 255, 11, 16, 8, 0, 244, 252, 0, 3, 4, 4, 4, 255, 251, 252, 1, 0, 0, 252, 254, 3, 5,
-			6, 4, 255, 248, 248, 7, 2, 255, 255, 12, 10, 4, 254, 245, 248, 252, 0, 0, 7, 4, 0, 0, 253, 2, 0, 253, 255, 0, 3, 2,
-			2, 6, 7, 254, 253, 255, 248, 250, 7, 9, 2, 1, 0, 4, 5, 253, 244, 246, 255, 1, 9, 13, 0, 255, 255, 0, 254, 250, 0, 7,
-			6, 2, 0, 1, 1, 254, 246, 245, 2, 15, 11, 255, 249, 249, 5, 3, 255, 254, 253, 0, 8, 2, 5, 1, 251, 255, 0, 1, 5, 1,
-			252, 252, 0, 3, 0, 2, 8, 0, 253, 0, 255, 2, 253, 255, 0, 0, 0, 1, 2, 10, 0, 251, 255, 4, 7, 3, 249, 246, 250, 2,
-			11, 9, 253, 246, 255, 8, 6, 1, 253, 253, 3, 254, 2, 0, 254, 252, 2, 7, 8, 1, 249, 253, 0, 0, 0, 3, 6, 0, 254, 255,
-			1, 1, 0, 254, 250, 254, 5, 10, 9, 0, 246, 252, 2, 5, 5, 255, 255, 0, 251, 255, 5, 255, 0, 3, 2, 4, 254, 252, 0, 0,
-			0, 3, 2, 5, 0, 251, 0, 253, 0, 0, 0, 3, 3, 5, 4, 0, 253, 252, 250, 0, 7, 3, 2, 0, 254, 0, 255, 253, 253, 255,
-			3, 3, 5, 5, 0, 254, 253, 251, 3, 9, 7, 0, 253, 252, 251, 251, 253, 254, 2, 8, 9, 4, 2, 254, 252, 254, 255, 2, 5, 5,
-			0, 255, 250, 253, 2, 2, 1, 1, 0, 3, 1, 0, 253, 251, 254, 1, 5, 5, 0, 249, 254, 3, 5, 4, 3, 1, 254, 254, 255, 0,
-			0, 0, 0, 6, 2, 254, 253, 254, 253, 0, 2, 5, 7, 0, 255, 254, 253, 0, 0, 3, 7, 4, 251, 249, 254, 3, 6, 3, 2, 0,
-			254, 0, 254, 252, 252, 255, 1, 5, 8, 6, 2, 0, 253, 251, 253, 254, 3, 6, 5, 4, 0, 251, 253, 255, 252, 0, 1, 2, 5, 2,
-			1, 0, 254, 0, 0, 2, 0, 254, 0, 0, 0, 255, 5, 5, 2, 0, 253, 0, 0, 254, 254, 0, 0, 0, 0, 0, 3, 0, 5, 0,
-			128, 0, 64, 1, 196, 4, 244, 6, 148, 12, 20, 15, 225, 25, 20, 24, 6, 51, 24, 18, 0, 9, 3, 6, 105, 155, 167, 142, 180, 175,
-			105, 155, 167, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 5, 0, 136, 0, 208, 1, 80, 5, 228, 7, 108, 12, 216, 14, 225, 25, 30, 67, 30, 90, 45, 30, 21, 15, 3, 9, 105, 125,
-			167, 142, 150, 175, 105, 125, 167, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 240, 1, 80, 5, 12, 8, 108, 12, 56, 14, 225, 25, 0, 70, 30, 84, 51, 33, 18, 18,
-			3, 9, 105, 170, 167, 157, 150, 175, 105, 170, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 3, 0, 5, 0, 228, 0, 80, 1, 136, 4, 164, 6, 168, 12, 236, 14, 200, 25,
-			20, 31, 18, 39, 27, 15, 0, 6, 6, 6, 150, 252, 157, 160, 150, 175, 150, 252, 157, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 224, 0, 32, 2, 0, 5, 68, 7, 128, 12,
-			76, 14, 200, 25, 30, 77, 15, 87, 66, 36, 15, 18, 6, 6, 150, 167, 157, 160, 150, 175, 150, 167, 157, 44, 45, 70, 130, 56, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 232, 0, 168, 2, 0, 5,
-			252, 8, 128, 12, 36, 14, 200, 25, 0, 56, 45, 60, 60, 27, 27, 21, 3, 6, 150, 167, 207, 255, 182, 175, 150, 167, 207, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 4, 0,
-			5, 0, 232, 0, 136, 1, 196, 4, 164, 6, 184, 12, 220, 15, 124, 21, 20, 31, 30, 36, 24, 15, 0, 3, 0, 0, 180, 152, 180, 150,
-			250, 175, 180, 152, 180, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 5, 0, 0, 1, 248, 1, 160, 5, 52, 8, 184, 12, 200, 15, 124, 21, 20, 61, 27, 69, 36, 24, 9, 12, 3, 3,
-			197, 152, 217, 210, 250, 175, 197, 152, 217, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 5, 0, 0, 1, 72, 2, 4, 6, 132, 8, 184, 12, 90, 14, 124, 21, 24, 80, 30, 84, 54, 39,
-			24, 15, 3, 3, 197, 152, 217, 210, 250, 175, 197, 152, 217, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 120, 2, 121, 6, 64, 9, 184, 12, 90, 14, 124, 21, 0, 61,
-			30, 69, 66, 45, 42, 27, 3, 3, 252, 152, 157, 210, 250, 175, 252, 152, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 3, 0, 5, 0, 208, 0, 136, 1, 176, 4, 164, 6,
-			80, 12, 185, 15, 169, 26, 20, 30, 27, 42, 21, 12, 0, 3, 0, 6, 150, 147, 172, 160, 150, 175, 150, 147, 172, 44, 45, 70, 130, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 208, 0, 192, 1,
-			180, 5, 52, 8, 80, 12, 185, 15, 169, 26, 30, 39, 27, 51, 30, 21, 15, 12, 0, 6, 150, 185, 152, 160, 150, 175, 150, 185, 152, 44,
-			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			208, 0, 240, 1, 224, 6, 16, 9, 148, 12, 76, 14, 88, 27, 0, 58, 27, 75, 33, 33, 30, 24, 6, 6, 150, 142, 170, 160, 150, 175,
-			150, 142, 170, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 0, 0, 3, 0, 5, 0, 200, 0, 136, 1, 76, 4, 164, 6, 212, 12, 14, 15, 150, 25, 19, 27, 39, 27, 18, 12, 0, 3,
-			6, 3, 150, 155, 195, 137, 255, 252, 150, 155, 195, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 200, 0, 204, 1, 176, 4, 168, 7, 212, 12, 14, 15, 150, 25, 30, 71, 39, 72,
-			51, 21, 15, 12, 6, 6, 150, 155, 195, 137, 255, 252, 150, 155, 195, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 80, 2, 252, 3, 76, 9, 88, 12, 196, 14, 150, 25,
-			0, 78, 40, 78, 52, 23, 20, 20, 5, 5, 150, 155, 162, 185, 217, 210, 150, 155, 162, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 3, 0, 5, 0, 128, 0, 64, 1, 196, 4,
-			164, 6, 148, 12, 20, 15, 225, 25, 20, 24, 6, 51, 24, 18, 0, 9, 3, 6, 105, 155, 167, 142, 180, 175, 105, 155, 167, 44, 45, 70,
-			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 136, 0,
-			208, 1, 80, 5, 228, 7, 108, 12, 216, 14, 225, 25, 30, 67, 30, 90, 45, 30, 21, 15, 3, 9, 105, 125, 167, 142, 150, 175, 105, 125,
-			167, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 136, 0, 240, 1, 80, 5, 12, 8, 108, 12, 56, 14, 225, 25, 0, 70, 30, 84, 51, 33, 18, 18, 3, 9, 105, 170, 167, 157,
-			150, 175, 105, 170, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 139, 0, 4, 0, 1, 0, 128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14, 96, 27, 50, 59, 34, 66, 80, 45,
-			47, 36, 16, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14, 96, 27, 50, 81,
-			40, 76, 93, 52, 55, 42, 15, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14,
-			96, 27, 40, 69, 37, 71, 86, 48, 51, 39, 14, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 128, 0, 40, 2, 161, 5, 96, 9,
-			188, 12, 116, 14, 96, 27, 0, 46, 31, 58, 70, 39, 35, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 3, 0, 1, 0,
-			196, 0, 229, 1, 255, 3, 0, 10, 28, 12, 116, 14, 160, 26, 53, 62, 35, 71, 73, 28, 34, 20, 9, 8, 162, 120, 132, 120, 120, 120,
-			162, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 7, 0, 208, 0, 229, 1, 123, 3, 220, 10, 204, 11, 141, 14, 0, 26, 75, 64, 38, 81, 60, 33, 35, 16, 11, 8, 162, 105,
-			87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 194, 1, 24, 3, 164, 11, 68, 12, 241, 14, 0, 26, 0, 27, 28, 46, 28, 31, 28, 16,
-			11, 8, 162, 135, 87, 120, 120, 120, 162, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 151, 0, 4, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28,
-			46, 50, 30, 67, 55, 40, 30, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13,
-			191, 14, 32, 28, 40, 84, 40, 87, 72, 52, 39, 24, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0,
-			0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 32, 1, 88, 3, 40, 5,
-			140, 10, 112, 13, 191, 14, 32, 28, 65, 82, 39, 86, 71, 52, 38, 24, 11, 5, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75,
-			130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 32, 1,
-			88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 50, 30, 67, 55, 40, 30, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170,
-			165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			150, 0, 4, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 40, 30, 58, 58, 36, 29, 23, 13, 0,
-			180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 60, 78, 42, 80, 80, 51,
-			40, 33, 18, 0, 180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 40, 55,
-			35, 67, 67, 43, 33, 27, 15, 0, 180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14,
-			160, 27, 0, 33, 30, 51, 51, 33, 28, 23, 12, 0, 180, 150, 177, 120, 120, 120, 200, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 200, 0, 4, 0, 1, 0, 248, 0, 134, 2,
-			244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 45, 39, 28, 52, 57, 51, 36, 22, 7, 5, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 85, 83, 41, 76, 83, 75, 53, 33, 11, 7, 193, 135, 180, 120, 120, 120,
-			217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 70, 67, 37, 68, 75, 67, 47, 29, 10, 6, 193, 135,
-			180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 0, 31, 25, 46, 50, 45, 32, 20,
-			6, 4, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 100, 0, 4, 0, 1, 0, 192, 0, 144, 1, 168, 7, 40, 10, 92, 13, 120, 15, 96, 25,
-			50, 51, 30, 72, 58, 50, 42, 30, 12, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0, 152, 1, 148, 7, 40, 10, 92, 13,
-			120, 15, 96, 25, 60, 92, 41, 98, 79, 68, 57, 41, 17, 7, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 152, 1, 148, 7,
-			40, 10, 92, 13, 120, 15, 96, 25, 40, 74, 37, 88, 71, 61, 51, 37, 15, 6, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0,
-			152, 1, 148, 7, 40, 10, 92, 13, 120, 15, 96, 25, 0, 43, 28, 67, 54, 46, 39, 28, 11, 5, 160, 90, 120, 120, 120, 120, 130, 90,
-			120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			149, 0, 4, 0, 1, 0, 176, 0, 152, 1, 128, 7, 0, 10, 92, 13, 20, 15, 96, 25, 50, 53, 26, 83, 45, 45, 42, 25, 14, 7,
-			150, 105, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0, 152, 1, 128, 7, 20, 10, 92, 13, 120, 15, 96, 25, 60, 98, 38, 106, 57, 67,
-			67, 39, 16, 7, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 160, 1, 108, 7, 20, 10, 92, 13, 120, 15, 96, 25, 40, 73,
-			35, 90, 49, 57, 57, 33, 13, 7, 160, 97, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 160, 1, 108, 7, 20, 10, 92, 13, 120, 15,
-			96, 25, 0, 50, 31, 75, 42, 47, 47, 27, 10, 8, 160, 105, 120, 120, 120, 120, 130, 60, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 170, 0, 120, 1,
-			178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 45, 44, 25, 67, 44, 47, 45, 28, 11, 5, 160, 91, 120, 131, 120, 120, 130, 95, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 70, 88, 36, 95, 63, 66, 64, 39, 16, 7, 160, 91, 120, 131, 120, 120,
-			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 60, 70, 32, 85, 56, 59, 58, 35, 14, 6, 160, 91,
-			120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 0, 35, 22, 60, 39, 42, 41, 25,
-			10, 4, 160, 91, 120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 232, 0, 218, 2, 222, 3, 60, 10, 224, 11, 222, 13, 160, 28,
-			50, 64, 34, 59, 74, 34, 35, 24, 9, 7, 230, 150, 120, 120, 120, 120, 185, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 232, 0, 158, 2, 178, 3, 60, 10, 224, 11,
-			222, 13, 32, 28, 60, 103, 27, 76, 97, 40, 40, 26, 14, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 232, 0, 158, 2, 178, 3,
-			60, 10, 224, 11, 222, 13, 32, 28, 40, 102, 27, 76, 97, 39, 40, 26, 14, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 228, 0,
-			118, 2, 134, 3, 140, 10, 224, 11, 66, 14, 32, 28, 0, 56, 31, 52, 75, 41, 39, 25, 13, 9, 177, 150, 120, 120, 120, 120, 177, 75,
-			120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			185, 0, 4, 0, 1, 0, 216, 0, 142, 2, 250, 4, 26, 10, 32, 13, 20, 15, 210, 27, 45, 45, 30, 55, 66, 39, 38, 24, 13, 5,
-			185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 216, 0, 142, 2, 250, 4, 26, 10, 12, 13, 20, 15, 210, 27, 80, 86, 39, 78, 90, 51,
-			50, 31, 18, 7, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 142, 2, 250, 4, 26, 10, 32, 13, 20, 15, 210, 27, 60, 75,
-			37, 73, 84, 47, 47, 29, 16, 6, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 216, 0, 142, 2, 250, 4, 26, 10, 32, 13, 20, 15,
-			210, 27, 0, 39, 28, 51, 61, 36, 36, 22, 12, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 140, 0, 4, 0, 1, 0, 184, 0, 189, 1,
-			134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 50, 57, 28, 61, 63, 40, 32, 25, 18, 7, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 50, 83, 38, 71, 75, 52, 42, 33, 24, 6, 162, 135, 150, 120, 120, 120,
-			162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 40, 69, 35, 65, 68, 47, 39, 30, 22, 6, 162, 135,
-			150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 0, 47, 26, 56, 57, 37, 29, 23,
-			16, 7, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 244, 0, 77, 3, 87, 4, 160, 10, 148, 12, 41, 14, 96, 27,
-			50, 59, 26, 60, 76, 28, 19, 17, 5, 7, 225, 195, 120, 120, 120, 120, 165, 105, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 244, 0, 7, 3, 43, 4, 240, 10, 148, 12,
-			41, 14, 96, 27, 45, 107, 29, 67, 105, 48, 41, 41, 13, 6, 200, 165, 135, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 57, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 27, 3, 255, 3,
-			64, 11, 228, 12, 41, 14, 224, 27, 59, 101, 33, 69, 92, 41, 45, 45, 11, 6, 200, 135, 150, 120, 120, 120, 200, 75, 210, 44, 45, 70,
-			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 228, 0,
-			7, 3, 10, 4, 240, 10, 52, 13, 41, 14, 224, 27, 58, 94, 32, 72, 86, 48, 50, 47, 11, 6, 200, 135, 150, 120, 120, 120, 200, 90,
-			135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 228, 0, 243, 2, 255, 3, 160, 10, 148, 12, 41, 14, 224, 27, 38, 63, 32, 63, 82, 35, 38, 36, 13, 7, 167, 135, 120, 120,
-			120, 120, 167, 75, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 164, 0, 27, 3, 98, 4, 20, 10, 148, 12, 41, 14, 224, 27, 0, 39, 23, 59, 58, 28, 24, 24, 7, 7,
-			167, 120, 120, 120, 120, 120, 227, 105, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 140, 0, 244, 1, 172, 5, 36, 9, 248, 12, 41, 14, 32, 27, 45, 48,
-			30, 63, 56, 56, 40, 40, 15, 8, 167, 135, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 140, 0, 224, 1, 128, 5, 16, 9, 148, 12, 41, 14,
-			32, 27, 48, 69, 26, 68, 82, 75, 61, 50, 25, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 172, 0, 224, 1, 128, 5, 16, 9,
-			168, 12, 41, 14, 160, 27, 41, 75, 33, 70, 90, 74, 60, 53, 17, 8, 170, 120, 150, 120, 120, 120, 170, 120, 90, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 204, 0, 249, 1,
-			139, 5, 16, 9, 168, 12, 41, 14, 160, 27, 78, 53, 34, 68, 67, 54, 45, 35, 15, 8, 170, 120, 150, 120, 120, 120, 140, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			204, 0, 33, 2, 139, 5, 16, 9, 168, 12, 141, 14, 160, 27, 0, 35, 31, 52, 54, 52, 38, 30, 11, 8, 170, 135, 150, 120, 120, 120,
-			140, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 76, 0, 4, 0, 45, 0, 40, 0, 112, 1, 68, 3, 36, 9, 28, 12, 216, 14, 32, 28, 0, 45, 19, 77, 28, 16, 16, 12,
-			8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 37, 0, 40, 0, 112, 1, 68, 3, 36, 9, 28, 12, 216, 14, 32, 28, 40, 45, 19, 77,
-			28, 16, 16, 12, 8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 37, 0, 72, 0, 104, 1, 153, 4, 36, 9, 148, 12, 166, 14, 192, 27,
-			36, 46, 16, 80, 33, 22, 26, 17, 13, 0, 120, 90, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 40, 0, 79, 1, 221, 7, 96, 9, 208, 12,
-			116, 14, 192, 27, 0, 90, 9, 86, 74, 89, 97, 58, 13, 0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 33, 0, 152, 0,
-			48, 1, 174, 8, 200, 10, 92, 13, 135, 15, 160, 26, 52, 58, 8, 76, 67, 65, 53, 30, 14, 8, 180, 120, 120, 120, 120, 120, 180, 105,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 152, 0, 40, 1, 172, 8, 4, 11, 92, 13, 135, 15, 160, 26, 75, 69, 8, 83, 73, 74, 75, 36, 17, 8, 167, 105, 120, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 152, 0, 39, 1, 229, 8, 4, 11, 12, 13, 216, 14, 64, 26, 40, 43, 8, 60, 60, 63, 63, 34, 11, 8,
-			167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 125, 0, 0, 1, 56, 9, 4, 11, 20, 13, 0, 15, 64, 26, 40, 33, 8, 52, 52, 53,
-			54, 29, 11, 8, 167, 99, 114, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 84, 0, 216, 0, 96, 9, 4, 11, 32, 13, 60, 15, 64, 26, 0, 20,
-			8, 40, 41, 39, 40, 23, 10, 8, 167, 90, 105, 120, 120, 120, 167, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 152, 0, 209, 1, 112, 3, 80, 10,
-			104, 11, 141, 14, 192, 27, 43, 48, 27, 57, 61, 29, 29, 16, 12, 6, 162, 135, 165, 120, 120, 120, 117, 105, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 209, 1,
-			68, 3, 80, 10, 104, 11, 141, 14, 32, 27, 93, 92, 29, 72, 80, 48, 44, 26, 16, 6, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			168, 0, 209, 1, 13, 3, 120, 10, 104, 11, 141, 14, 160, 27, 42, 77, 32, 74, 65, 49, 43, 25, 18, 7, 167, 135, 120, 120, 120, 120,
-			122, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 200, 0, 13, 2, 57, 3, 120, 10, 104, 11, 141, 14, 160, 27, 77, 39, 27, 46, 51, 38, 36, 14, 10, 7, 167, 135,
-			135, 120, 120, 120, 137, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 232, 0, 18, 2, 233, 3, 60, 10, 8, 12, 141, 14, 160, 27, 0, 26, 30, 41, 48, 23, 20, 17,
-			8, 7, 167, 120, 135, 120, 120, 120, 137, 105, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6, 212, 8, 148, 12, 41, 14, 64, 26,
-			42, 48, 17, 72, 53, 40, 40, 37, 11, 0, 120, 150, 135, 120, 120, 120, 60, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 128, 1, 0, 5, 232, 8, 48, 12,
-			136, 14, 192, 25, 40, 67, 19, 79, 82, 64, 53, 45, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 152, 1, 232, 3,
-			96, 9, 28, 12, 236, 14, 128, 26, 50, 62, 26, 66, 68, 45, 37, 28, 21, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 84, 0,
-			88, 1, 212, 3, 196, 9, 148, 12, 196, 14, 192, 25, 67, 56, 16, 83, 38, 36, 30, 29, 13, 0, 120, 145, 135, 120, 120, 120, 60, 100,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 27, 16, 57, 35, 17, 20, 20, 10, 0, 120, 135, 135, 120,
-			120, 120, 60, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6, 212, 8, 148, 12, 41, 14, 64, 26, 42, 43, 17, 65, 54, 40,
-			34, 31, 11, 7, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 104, 1, 26, 6, 212, 8, 148, 12, 116, 14, 192, 25, 40, 71,
-			19, 81, 83, 74, 54, 46, 18, 7, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 88, 0, 104, 1, 48, 6, 172, 8, 148, 12, 116, 14,
-			192, 25, 50, 73, 19, 91, 65, 65, 53, 46, 20, 7, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 84, 0, 64, 1, 106, 5, 192, 8,
-			68, 12, 116, 14, 192, 25, 67, 30, 11, 58, 41, 36, 31, 23, 13, 7, 165, 135, 135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 84, 0, 34, 1,
-			255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 28, 16, 54, 35, 17, 20, 20, 9, 7, 165, 135, 135, 120, 120, 120, 105, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0,
-			6, 0, 1, 0, 236, 0, 82, 3, 84, 5, 116, 9, 88, 12, 116, 14, 224, 27, 50, 57, 28, 58, 75, 41, 43, 27, 10, 8, 250, 120,
-			210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 236, 0, 62, 3, 84, 5, 136, 9, 88, 12, 116, 14, 224, 27, 66, 104, 30, 81, 98, 53, 57, 36,
-			12, 6, 225, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 220, 0, 42, 3, 252, 4, 36, 9, 128, 12, 41, 14, 224, 27, 41, 69, 27, 59,
-			81, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 173, 2, 87, 4, 16, 9, 48, 12, 41, 14, 128, 27,
-			40, 60, 28, 49, 77, 34, 51, 36, 15, 6, 237, 207, 192, 120, 120, 120, 141, 120, 147, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 0, 1, 234, 1, 189, 3, 16, 9, 8, 12,
-			41, 14, 96, 27, 40, 62, 36, 68, 59, 21, 35, 23, 15, 8, 205, 90, 180, 120, 120, 120, 145, 120, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 172, 0, 232, 1, 132, 3,
-			192, 8, 168, 12, 60, 15, 96, 27, 0, 29, 25, 50, 42, 16, 18, 13, 11, 9, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70,
-			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 6, 0,
-			1, 0, 232, 0, 38, 2, 117, 5, 116, 9, 108, 12, 10, 15, 96, 28, 46, 56, 40, 60, 61, 44, 32, 36, 20, 8, 167, 120, 165, 120,
-			120, 120, 227, 150, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 248, 0, 118, 2, 73, 5, 36, 9, 28, 12, 166, 14, 96, 28, 25, 107, 47, 85, 109, 75, 55, 45, 19, 8,
-			167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 118, 2, 73, 5, 212, 8, 28, 12, 141, 14, 96, 28, 43, 79, 36, 73, 95, 72,
-			54, 42, 18, 7, 170, 120, 165, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 8, 1, 18, 2, 117, 5, 132, 8, 204, 11, 166, 14, 96, 28, 48, 53,
-			24, 70, 70, 36, 32, 26, 15, 8, 165, 120, 135, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0, 192, 0, 174, 1, 197, 4, 172, 8, 204, 11, 141, 14,
-			224, 28, 46, 40, 28, 64, 39, 27, 18, 16, 8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 134, 1, 189, 3, 92, 8,
-			204, 11, 141, 14, 224, 28, 0, 33, 24, 58, 38, 22, 15, 12, 9, 8, 152, 120, 75, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 226, 0, 7, 0, 5, 0,
-			44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 51, 47, 28, 58, 63, 37, 40, 27, 4, 4, 167, 165, 165, 120, 120, 120,
-			167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 70, 100, 41, 85, 92, 54, 58, 39, 9, 7, 167, 165,
-			165, 120, 120, 120, 167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 44, 1, 120, 3, 216, 4, 200, 10, 72, 13, 191, 14, 64, 27, 15, 92, 39, 80, 87, 51, 55, 37,
-			8, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 33, 0, 20, 1, 80, 3, 29, 5, 216, 9, 72, 13, 136, 14, 64, 27, 23, 59, 29, 68,
-			71, 53, 51, 35, 8, 6, 167, 172, 120, 120, 120, 120, 167, 172, 165, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 216, 0, 16, 3, 4, 6, 196, 9, 52, 13, 176, 14, 64, 27,
-			33, 43, 32, 66, 56, 47, 43, 39, 8, 7, 167, 150, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 212, 0, 232, 1, 188, 7, 40, 10, 92, 13,
-			120, 15, 64, 27, 34, 35, 37, 54, 51, 51, 39, 38, 13, 9, 167, 90, 180, 120, 120, 120, 137, 75, 150, 44, 45, 70, 130, 53, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 196, 0, 159, 1, 252, 7,
-			40, 10, 112, 13, 120, 15, 220, 27, 0, 37, 39, 55, 48, 48, 39, 32, 11, 10, 167, 90, 114, 120, 120, 120, 122, 75, 90, 44, 45, 70,
-			130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 7, 0,
-			1, 0, 16, 1, 53, 2, 12, 3, 160, 10, 244, 11, 35, 15, 96, 28, 24, 63, 33, 62, 70, 43, 37, 17, 11, 7, 167, 120, 90, 120,
-			120, 120, 167, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 0, 1, 33, 2, 12, 3, 160, 10, 244, 11, 35, 15, 224, 27, 49, 112, 43, 87, 92, 61, 53, 26, 15, 6,
-			165, 120, 90, 120, 120, 120, 165, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 33, 2, 72, 3, 40, 10, 244, 11, 35, 15, 224, 27, 65, 92, 39, 81, 98, 49,
-			57, 29, 17, 7, 170, 120, 90, 120, 120, 120, 170, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 37, 0, 184, 0, 209, 1, 106, 5, 172, 8, 108, 12, 216, 14, 64, 27, 30, 48,
-			36, 68, 39, 59, 38, 22, 15, 7, 167, 100, 152, 120, 120, 120, 137, 115, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 208, 0, 149, 1, 246, 6, 172, 8, 188, 12, 236, 14,
-			64, 27, 48, 43, 32, 56, 36, 59, 35, 22, 13, 7, 155, 105, 150, 120, 120, 120, 125, 150, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 160, 0, 54, 1, 199, 7, 136, 9,
-			112, 13, 60, 15, 64, 27, 26, 35, 25, 53, 36, 30, 41, 27, 16, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1,
-			210, 7, 196, 9, 92, 13, 60, 15, 64, 28, 0, 24, 27, 45, 27, 20, 32, 21, 12, 7, 157, 105, 135, 120, 120, 120, 82, 105, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0,
-			6, 0, 1, 0, 96, 0, 104, 1, 92, 8, 80, 10, 232, 13, 60, 15, 160, 27, 42, 48, 10, 66, 51, 58, 42, 33, 10, 8, 155, 165,
-			150, 120, 120, 120, 155, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 104, 0, 112, 1, 108, 8, 160, 10, 72, 13, 60, 15, 32, 27, 70, 59, 19, 64, 74, 76, 66, 36,
-			14, 8, 150, 120, 150, 120, 120, 120, 150, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 104, 0, 119, 1, 52, 8, 160, 10, 72, 13, 60, 15, 32, 27, 40, 52, 18, 61,
-			70, 72, 63, 34, 14, 7, 150, 120, 150, 120, 120, 120, 150, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 239, 1, 111, 7, 196, 9, 112, 13, 60, 15, 64, 27,
-			44, 52, 30, 75, 59, 58, 44, 30, 14, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0, 152, 0, 16, 2, 124, 6, 156, 9, 32, 13,
-			85, 15, 64, 28, 35, 27, 23, 45, 46, 48, 38, 21, 7, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 16, 2, 59, 6,
-			156, 9, 112, 13, 29, 16, 192, 28, 0, 25, 26, 43, 39, 39, 31, 17, 5, 9, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 190, 0, 5, 0,
-			1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 40, 30, 52, 60, 40, 33, 28, 16, 6, 167, 148, 143, 120,
-			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 71, 40, 70, 80, 54, 44, 38, 22, 8,
-			167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 16, 2, 220, 4, 106, 9, 146, 12, 144, 14, 87, 27, 40, 57, 35, 64, 74, 48,
-			41, 35, 19, 8, 167, 148, 140, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 123, 0, 16, 2, 48, 5, 56, 9, 128, 12, 132, 14, 91, 27, 50, 42,
-			29, 55, 65, 39, 37, 30, 16, 7, 167, 149, 138, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 119, 0, 12, 2, 121, 5, 252, 8, 108, 12, 122, 14,
-			94, 27, 0, 35, 25, 50, 61, 38, 35, 27, 14, 7, 167, 149, 136, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 140, 0, 174, 1,
-			152, 3, 36, 9, 164, 11, 16, 14, 96, 25, 48, 61, 31, 70, 69, 41, 27, 15, 12, 7, 167, 120, 120, 120, 120, 120, 167, 120, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			140, 0, 174, 1, 192, 3, 36, 9, 164, 11, 16, 14, 96, 25, 36, 75, 35, 82, 66, 44, 35, 22, 16, 6, 165, 120, 120, 120, 120, 120,
-			165, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 140, 0, 154, 1, 156, 3, 36, 9, 164, 11, 16, 14, 96, 25, 49, 76, 34, 76, 81, 39, 33, 21, 20, 6, 167, 120,
-			120, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 228, 0, 239, 1, 255, 3, 252, 8, 184, 11, 16, 14, 192, 25, 49, 60, 31, 62, 76, 40, 30, 20,
-			18, 7, 167, 111, 135, 120, 120, 120, 191, 129, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 186, 0, 14, 2, 137, 4, 252, 8, 8, 12, 41, 14, 112, 26, 47, 35, 26, 49,
-			62, 35, 28, 19, 13, 6, 167, 115, 131, 120, 120, 120, 191, 129, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 144, 0, 46, 2, 20, 5, 252, 8, 88, 12, 66, 14, 32, 27,
-			0, 29, 25, 45, 57, 36, 31, 23, 11, 7, 167, 120, 127, 120, 120, 120, 255, 105, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 7, 0, 5, 0, 44, 1, 92, 3, 216, 4,
-			4, 11, 72, 13, 191, 14, 64, 27, 45, 47, 28, 58, 63, 37, 40, 27, 6, 4, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70,
-			130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 44, 1,
-			92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 40, 107, 42, 88, 95, 55, 60, 40, 9, 7, 167, 165, 165, 120, 120, 120, 167, 105,
-			165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 80, 1, 132, 3, 161, 5, 36, 9, 112, 13, 241, 14, 64, 27, 31, 71, 36, 76, 95, 55, 45, 28, 10, 7, 240, 165, 120, 120,
-			120, 120, 195, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 32, 1, 248, 2, 191, 6, 36, 9, 192, 13, 241, 14, 64, 27, 25, 41, 32, 47, 53, 53, 50, 47, 11, 7,
-			255, 180, 180, 120, 120, 120, 200, 195, 180, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 224, 0, 224, 1, 45, 7, 136, 9, 112, 13, 241, 14, 64, 27, 27, 42, 34, 43, 61, 61,
-			51, 50, 12, 8, 255, 105, 180, 120, 120, 120, 165, 120, 135, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 224, 0, 8, 2, 23, 7, 176, 9, 112, 13, 241, 14, 64, 27, 52, 37,
-			28, 51, 56, 56, 49, 43, 8, 8, 255, 90, 180, 120, 120, 120, 187, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 208, 0, 128, 2, 238, 5, 96, 9, 52, 13, 216, 14,
-			64, 27, 0, 21, 20, 40, 48, 36, 32, 28, 7, 8, 252, 90, 165, 120, 120, 120, 252, 105, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 0, 1, 136, 3,
-			200, 5, 110, 10, 154, 13, 40, 15, 67, 27, 45, 46, 28, 60, 58, 41, 34, 27, 9, 4, 228, 152, 186, 132, 120, 120, 255, 174, 173, 44,
-			45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			0, 1, 136, 3, 200, 5, 110, 10, 154, 13, 40, 15, 67, 27, 29, 90, 39, 85, 81, 57, 48, 38, 12, 5, 228, 152, 186, 132, 120, 120,
-			255, 174, 173, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 5, 0, 8, 1, 136, 3, 62, 5, 20, 10, 188, 12, 166, 14, 32, 27, 39, 88, 33, 76, 89, 68, 56, 46, 13, 6, 185, 180,
-			165, 120, 120, 120, 245, 135, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 5, 0, 8, 1, 178, 2, 32, 4, 116, 9, 8, 12, 166, 14, 64, 27, 42, 90, 37, 64, 99, 52, 43, 35,
-			14, 7, 185, 135, 150, 120, 120, 120, 194, 105, 111, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 33, 2, 178, 3, 36, 9, 8, 12, 216, 14, 160, 27, 84, 49, 27, 58,
-			75, 37, 32, 23, 12, 8, 177, 120, 120, 120, 120, 120, 147, 105, 105, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 193, 2, 64, 5, 16, 9, 128, 12, 241, 14, 32, 28,
-			0, 28, 28, 44, 60, 36, 32, 26, 8, 8, 185, 150, 120, 120, 120, 120, 155, 150, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 140, 0, 5, 0, 1, 0, 192, 0, 32, 2, 60, 5,
-			156, 9, 92, 13, 52, 18, 0, 28, 45, 54, 25, 63, 72, 40, 34, 17, 14, 6, 170, 165, 135, 120, 120, 120, 170, 180, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0,
-			32, 2, 60, 5, 156, 9, 92, 13, 52, 18, 0, 28, 50, 96, 34, 84, 96, 53, 45, 22, 19, 8, 170, 165, 135, 120, 120, 120, 170, 180,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 192, 0, 32, 2, 60, 5, 156, 9, 92, 13, 52, 18, 0, 28, 60, 87, 32, 80, 91, 50, 43, 21, 18, 7, 170, 165, 135, 120,
-			120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 201, 0, 104, 2, 166, 4, 146, 9, 240, 10, 127, 18, 0, 28, 35, 29, 25, 49, 38, 30, 24, 8, 11, 4,
-			170, 165, 136, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 201, 0, 104, 2, 166, 4, 146, 9, 240, 10, 127, 18, 0, 28, 0, 28, 24, 48, 38, 30,
-			23, 8, 10, 4, 170, 165, 136, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 135, 0, 5, 0, 1, 0, 216, 0, 136, 2, 156, 4, 35, 10, 227, 12, 20, 15,
-			214, 27, 45, 70, 34, 68, 76, 43, 39, 30, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 216, 0, 136, 2, 156, 4, 35, 10,
-			227, 12, 20, 15, 214, 27, 50, 124, 45, 90, 101, 57, 52, 40, 20, 8, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 136, 2,
-			176, 4, 35, 10, 227, 12, 20, 15, 214, 27, 55, 111, 43, 86, 96, 54, 49, 38, 19, 8, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 35, 33, 30, 51, 34, 32, 27, 6, 11, 4, 170, 165, 137, 120, 120, 120,
-			170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 0, 28, 25, 48, 32, 30, 25, 6, 10, 4, 170, 165,
-			137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 190, 0, 5, 0, 1, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 50, 42, 31, 49,
-			62, 20, 36, 20, 5, 5, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28,
-			50, 82, 43, 68, 86, 28, 50, 28, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12,
-			36, 14, 15, 28, 50, 82, 43, 68, 86, 28, 50, 28, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 170, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 80, 2, 232, 3,
-			80, 10, 28, 12, 36, 14, 15, 28, 40, 59, 36, 58, 73, 24, 42, 24, 6, 6, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70,
-			130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 0, 1,
-			80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 0, 25, 24, 38, 48, 16, 28, 16, 4, 4, 186, 151, 122, 120, 120, 120, 105, 164,
-			135, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			190, 0, 5, 0, 1, 0, 228, 0, 28, 2, 128, 3, 72, 10, 190, 11, 15, 14, 216, 27, 50, 57, 28, 61, 69, 28, 35, 19, 9, 5,
-			180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 228, 0, 28, 2, 128, 3, 72, 10, 190, 11, 15, 14, 216, 27, 50, 90, 35, 76, 87, 35,
-			44, 24, 11, 6, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 0, 2, 132, 3, 64, 10, 216, 11, 234, 13, 15, 28, 50, 74,
-			39, 57, 91, 24, 46, 25, 8, 7, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 0, 2, 132, 3, 64, 10, 216, 11, 234, 13,
-			15, 28, 40, 59, 35, 51, 81, 21, 41, 22, 7, 6, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 165, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 8, 1, 0, 2, 132, 3, 60, 10,
-			224, 11, 222, 13, 32, 28, 0, 20, 27, 31, 51, 12, 23, 14, 4, 4, 180, 75, 120, 120, 120, 120, 85, 75, 120, 44, 45, 70, 130, 59,
-			165, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 140, 0, 3, 0, 1, 0,
-			112, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27, 50, 48, 30, 59, 72, 40, 42, 32, 16, 7, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 116, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27, 90, 78, 39, 75, 91, 51, 54, 41, 21, 8, 167, 150,
-			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27, 0, 46, 30, 58, 70, 39, 41, 32,
-			16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 139, 0, 3, 0, 1, 0, 112, 0, 244, 1, 132, 5, 36, 9, 188, 12, 116, 14, 96, 27,
-			50, 56, 31, 63, 76, 38, 46, 34, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 244, 1, 132, 5, 16, 9, 188, 12,
-			116, 14, 96, 27, 90, 80, 37, 72, 96, 48, 60, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 244, 1, 132, 5,
-			36, 9, 188, 12, 116, 14, 96, 27, 0, 48, 30, 58, 70, 31, 44, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 190, 0, 4, 0,
-			1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 50, 45, 30, 56, 65, 54, 35, 25, 8, 5, 255, 142, 180, 120,
-			120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 90, 86, 41, 77, 90, 75, 49, 35, 12, 7,
-			255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 50, 78, 39, 73, 85, 71,
-			46, 33, 11, 7, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 0, 35,
-			26, 50, 57, 48, 31, 22, 7, 4, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 148, 0, 128, 1, 238, 7, 50, 10,
-			42, 13, 50, 15, 96, 25, 45, 48, 27, 72, 52, 48, 45, 29, 11, 5, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 148, 0, 128, 1,
-			238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 70, 97, 39, 102, 74, 68, 64, 41, 16, 8, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 60, 87, 37, 97, 70, 64, 61, 39, 15, 7, 160, 92, 120, 143, 120, 120,
-			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 0, 38, 24, 64, 47, 43, 40, 26, 10, 5, 160, 92,
-			120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 184, 0, 160, 1, 92, 8, 100, 10, 212, 13, 60, 15, 128, 28, 45, 39, 25, 53,
-			56, 47, 39, 34, 11, 8, 185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 160, 1, 92, 8, 100, 10, 212, 13, 60, 15, 128, 28,
-			70, 81, 37, 76, 80, 68, 56, 48, 16, 12, 185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 1, 92, 8, 100, 10, 212, 13,
-			60, 15, 128, 28, 60, 66, 33, 68, 72, 61, 50, 43, 14, 10, 185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 160, 1, 92, 8,
-			100, 10, 212, 13, 60, 15, 128, 28, 0, 29, 22, 45, 48, 40, 33, 29, 9, 7, 185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0,
-			1, 0, 216, 0, 118, 2, 152, 3, 67, 10, 194, 11, 10, 14, 224, 27, 45, 50, 21, 50, 63, 30, 30, 18, 11, 4, 178, 146, 127, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 216, 0, 118, 2, 152, 3, 67, 10, 194, 11, 10, 14, 224, 27, 80, 131, 34, 80, 103, 49, 49, 30, 18, 7,
-			178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 104, 2, 172, 3, 67, 10, 194, 11, 10, 14, 224, 27, 70, 105, 32, 74, 95, 46,
-			45, 28, 16, 7, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 216, 0, 104, 2, 172, 3, 67, 10, 194, 11, 10, 14, 224, 27, 0, 44,
-			20, 47, 62, 29, 28, 17, 10, 4, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 188, 0, 221, 1, 200, 3, 60, 10,
-			104, 12, 166, 14, 204, 26, 45, 42, 27, 51, 58, 37, 33, 23, 16, 5, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 188, 0, 221, 1,
-			200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 70, 87, 39, 74, 84, 53, 47, 33, 24, 7, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 60, 70, 35, 66, 75, 48, 42, 30, 21, 6, 164, 141, 150, 120, 120, 120,
-			162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 0, 37, 25, 48, 54, 34, 31, 22, 15, 4, 164, 141,
-			150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 248, 1, 97, 3, 7, 5, 60, 10, 72, 13, 141, 14, 88, 27, 65, 48, 25, 51,
-			60, 25, 22, 20, 6, 6, 255, 162, 210, 120, 120, 120, 120, 162, 120, 44, 60, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 104, 1, 136, 3, 219, 4, 60, 10, 72, 13, 141, 14, 88, 27,
-			75, 111, 36, 82, 86, 52, 35, 33, 13, 7, 210, 175, 150, 120, 120, 120, 210, 175, 120, 44, 60, 70, 130, 55, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 104, 1, 128, 3, 219, 4, 196, 9, 32, 13,
-			116, 14, 88, 27, 63, 110, 36, 82, 86, 52, 35, 33, 13, 7, 210, 175, 150, 120, 120, 120, 210, 175, 120, 44, 55, 70, 130, 55, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 104, 1, 134, 3, 219, 4,
-			184, 9, 20, 13, 116, 14, 33, 27, 71, 104, 35, 79, 85, 50, 35, 33, 13, 8, 214, 172, 150, 120, 120, 120, 210, 175, 120, 44, 45, 70,
-			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 104, 1,
-			127, 3, 220, 4, 156, 9, 248, 12, 116, 14, 160, 26, 0, 41, 24, 51, 61, 32, 26, 22, 8, 8, 225, 165, 150, 120, 120, 120, 225, 120,
-			120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			211, 0, 5, 0, 1, 0, 140, 0, 224, 1, 100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 45, 40, 22, 52, 62, 57, 47, 38, 19, 6,
-			170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 140, 0, 224, 1, 100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 48, 63, 28, 65, 78, 71,
-			58, 48, 23, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 140, 0, 224, 1, 100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 40, 63,
-			28, 65, 78, 71, 58, 48, 23, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 140, 0, 248, 1, 100, 5, 252, 8, 28, 12, 192, 13,
-			32, 27, 78, 45, 25, 55, 66, 61, 49, 40, 20, 6, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 140, 0, 8, 2, 100, 5, 252, 8,
-			28, 12, 192, 13, 32, 27, 0, 31, 21, 46, 55, 51, 41, 34, 16, 5, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 220, 0, 5, 0, 1, 0,
-			168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 55, 21, 52, 64, 39, 36, 18, 13, 5, 167, 135, 150, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 40, 107, 29, 73, 89, 54, 50, 25, 18, 7, 167, 135,
-			150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 90, 103, 34, 73, 85, 51, 41, 24,
-			18, 7, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 59, 26, 58,
-			60, 39, 31, 18, 13, 5, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27,
-			0, 27, 18, 40, 40, 23, 20, 12, 9, 3, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 4, 0, 1, 0, 236, 0, 28, 2, 167, 3,
-			0, 10, 128, 12, 10, 15, 96, 28, 50, 64, 34, 58, 76, 48, 26, 21, 16, 7, 120, 135, 135, 120, 120, 120, 135, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 236, 0,
-			63, 2, 123, 3, 80, 10, 48, 12, 66, 14, 224, 27, 106, 123, 47, 82, 94, 55, 34, 21, 16, 7, 120, 135, 135, 120, 120, 120, 135, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 236, 0, 23, 2, 123, 3, 0, 10, 48, 12, 191, 14, 224, 27, 79, 96, 32, 67, 102, 58, 35, 28, 18, 7, 120, 135, 105, 120,
-			120, 120, 135, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 216, 0, 68, 2, 255, 3, 176, 9, 128, 12, 191, 14, 224, 27, 0, 49, 27, 52, 77, 41, 28, 24, 9, 7,
-			120, 135, 135, 120, 120, 120, 135, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 76, 1, 247, 5, 208, 8, 132, 12, 116, 14, 192, 25, 42, 48,
-			16, 69, 62, 55, 44, 40, 14, 6, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 76, 1, 247, 5, 208, 8, 132, 12, 116, 14,
-			192, 25, 40, 76, 20, 87, 78, 69, 55, 50, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 84, 0, 64, 1, 106, 5, 192, 8,
-			68, 12, 116, 14, 192, 25, 50, 75, 16, 93, 59, 53, 45, 43, 19, 11, 165, 135, 135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 84, 0, 64, 1,
-			106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 67, 39, 12, 67, 43, 38, 32, 31, 14, 8, 165, 135, 135, 120, 120, 120, 105, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 34, 17, 60, 37, 18, 21, 21, 10, 8, 165, 135, 135, 120, 120, 120,
-			105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 0, 0, 5, 0, 1, 0, 220, 0, 148, 2, 4, 6, 56, 9, 84, 11, 16, 14, 192, 28, 34, 47, 34, 53, 70, 53, 36, 48,
-			13, 8, 120, 165, 150, 120, 120, 120, 165, 210, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 220, 0, 148, 2, 26, 6, 56, 9, 124, 11, 116, 14, 192, 28, 60, 82, 42, 76,
-			91, 74, 45, 57, 24, 8, 120, 165, 150, 120, 120, 120, 165, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 220, 0, 224, 1, 4, 6, 232, 8, 68, 12, 191, 14, 192, 28,
-			54, 54, 36, 55, 79, 57, 35, 30, 16, 7, 120, 120, 120, 120, 120, 120, 165, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 220, 0, 164, 1, 120, 4, 152, 8, 88, 12,
-			141, 14, 64, 28, 45, 56, 44, 77, 54, 30, 24, 26, 15, 9, 120, 120, 120, 120, 120, 120, 60, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 140, 0, 84, 1, 222, 3,
-			56, 9, 188, 12, 141, 14, 192, 27, 0, 21, 28, 46, 37, 15, 7, 9, 9, 8, 120, 105, 90, 120, 120, 120, 60, 120, 75, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 6, 0,
-			1, 0, 44, 1, 120, 3, 80, 5, 60, 10, 112, 13, 191, 14, 64, 27, 41, 30, 24, 49, 53, 37, 31, 23, 3, 4, 167, 165, 165, 120,
-			120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 44, 1, 92, 3, 80, 5, 100, 10, 112, 13, 191, 14, 64, 27, 77, 90, 41, 86, 93, 58, 59, 40, 5, 7,
-			167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 44, 1, 136, 3, 140, 5, 20, 10, 152, 13, 191, 14, 64, 27, 33, 80, 40, 82, 89, 55,
-			56, 38, 5, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 216, 0, 92, 3, 59, 6, 252, 8, 192, 13, 241, 14, 160, 28, 31, 63,
-			32, 65, 87, 53, 49, 32, 7, 7, 120, 75, 195, 120, 120, 120, 255, 180, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 43, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 240, 0, 203, 2, 224, 6, 176, 9, 112, 13, 10, 15,
-			96, 27, 53, 48, 32, 63, 65, 62, 36, 22, 5, 7, 165, 135, 240, 120, 120, 120, 195, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 212, 0, 232, 1, 48, 7, 136, 9,
-			172, 13, 80, 15, 64, 27, 0, 26, 32, 46, 44, 44, 33, 32, 13, 7, 167, 90, 180, 120, 120, 120, 137, 75, 150, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0,
-			52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 44, 45, 28, 57, 65, 54, 36, 26, 9, 5, 255, 142, 180, 120, 120, 120,
-			150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 77, 83, 39, 77, 88, 73, 49, 35, 12, 7, 255, 142,
-			180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 136, 2, 224, 6, 116, 9, 72, 13, 60, 15, 96, 27, 77, 56, 30, 63, 71, 62, 57, 25,
-			13, 7, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 178, 0, 103, 2, 84, 6, 76, 9, 2, 13, 216, 14, 96, 27, 35, 38, 25, 52,
-			61, 45, 43, 24, 12, 7, 167, 135, 157, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 163, 0, 81, 2, 17, 6, 66, 9, 241, 12, 191, 14, 96, 27,
-			0, 34, 26, 48, 55, 38, 38, 25, 13, 7, 167, 138, 152, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 40, 0, 7, 0, 1, 0, 136, 0, 64, 1, 172, 8,
-			240, 10, 152, 13, 120, 15, 236, 26, 42, 44, 7, 65, 55, 56, 44, 27, 11, 7, 172, 133, 129, 120, 120, 120, 180, 105, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 128, 0,
-			64, 1, 172, 8, 240, 10, 112, 13, 100, 15, 224, 26, 40, 64, 10, 75, 75, 77, 72, 37, 16, 8, 158, 112, 135, 120, 120, 120, 167, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 128, 0, 64, 1, 172, 8, 240, 10, 112, 13, 100, 15, 224, 26, 28, 60, 10, 73, 73, 74, 70, 36, 16, 8, 158, 112, 135, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 104, 0, 136, 1, 52, 8, 80, 10, 52, 13, 60, 15, 64, 27, 31, 59, 17, 81, 60, 61, 57, 31, 12, 8,
-			160, 90, 150, 120, 120, 120, 160, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 248, 1, 111, 7, 96, 9, 72, 13, 20, 15, 64, 27, 34, 53, 30, 75, 59, 58,
-			44, 30, 14, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 16, 2, 64, 6, 36, 9, 238, 12, 90, 15, 128, 28, 45, 26,
-			24, 44, 48, 48, 31, 19, 6, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 16, 2, 240, 5, 56, 9, 248, 12, 160, 15,
-			192, 28, 0, 22, 25, 41, 37, 37, 24, 16, 5, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 155, 0, 4, 0, 1, 0, 142, 0, 224, 1,
-			180, 5, 110, 8, 88, 12, 110, 14, 38, 27, 45, 41, 25, 56, 62, 50, 43, 35, 16, 6, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			142, 0, 224, 1, 180, 5, 110, 8, 88, 12, 110, 14, 38, 27, 60, 51, 28, 62, 69, 56, 48, 40, 18, 6, 170, 135, 161, 120, 120, 120,
-			140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 142, 0, 212, 1, 164, 5, 240, 7, 72, 12, 146, 14, 38, 27, 50, 46, 28, 59, 66, 50, 40, 33, 13, 6, 170, 135,
-			161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 142, 0, 208, 1, 160, 5, 208, 7, 68, 12, 156, 14, 38, 27, 0, 36, 25, 52, 58, 41, 35, 29,
-			10, 5, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 140, 0, 3, 0, 1, 0, 112, 0, 240, 1, 220, 5, 116, 9, 228, 12, 156, 14, 96, 27,
-			50, 47, 25, 59, 72, 40, 42, 32, 16, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 240, 1, 220, 5, 116, 9, 228, 12,
-			156, 14, 96, 27, 90, 77, 34, 75, 91, 51, 54, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 240, 1, 220, 5,
-			116, 9, 228, 12, 116, 14, 96, 27, 0, 47, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 135, 0, 3, 0,
-			1, 0, 152, 0, 72, 2, 120, 5, 134, 9, 195, 12, 165, 14, 141, 27, 45, 49, 32, 59, 72, 43, 45, 30, 16, 6, 174, 154, 137, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 152, 0, 72, 2, 120, 5, 134, 9, 195, 12, 165, 14, 141, 27, 90, 77, 40, 74, 91, 53, 56, 38, 21, 8,
-			174, 154, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 80, 2, 120, 5, 134, 9, 195, 12, 165, 14, 141, 27, 0, 38, 28, 52, 64, 37,
-			39, 27, 14, 5, 174, 154, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 180, 0, 5, 0, 1, 0, 55, 1, 158, 2, 183, 6, 252, 9, 163, 13, 121, 15,
-			154, 28, 50, 41, 34, 51, 63, 49, 34, 24, 9, 5, 255, 140, 173, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 160, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 55, 1, 158, 2, 183, 6, 252, 9,
-			163, 13, 121, 15, 154, 28, 40, 75, 46, 70, 86, 66, 46, 33, 12, 7, 255, 140, 173, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59,
-			160, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 61, 1, 178, 2,
-			159, 6, 56, 10, 143, 13, 44, 15, 103, 28, 50, 56, 48, 54, 80, 51, 42, 28, 11, 6, 226, 136, 157, 120, 120, 120, 150, 180, 150, 44,
-			45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			61, 1, 178, 2, 159, 6, 56, 10, 143, 13, 44, 15, 103, 28, 40, 50, 45, 51, 75, 48, 39, 26, 10, 6, 226, 136, 157, 120, 120, 120,
-			150, 180, 150, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 68, 1, 198, 2, 136, 6, 111, 10, 123, 13, 229, 14, 57, 28, 0, 21, 33, 28, 51, 26, 26, 16, 7, 4, 195, 132,
-			142, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 78, 1, 188, 2, 144, 6, 202, 9, 184, 13, 183, 15, 10, 29, 45, 40, 38, 49,
-			58, 48, 37, 28, 10, 6, 255, 151, 208, 120, 120, 120, 135, 180, 182, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 78, 1, 188, 2, 144, 6, 202, 9, 184, 13, 183, 15, 10, 29,
-			80, 60, 47, 60, 71, 58, 45, 34, 12, 8, 255, 151, 208, 120, 120, 120, 135, 180, 182, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 34, 1, 166, 2, 48, 6, 186, 9, 152, 13,
-			191, 15, 176, 28, 60, 49, 39, 56, 67, 51, 41, 31, 12, 8, 255, 157, 191, 120, 120, 120, 135, 180, 182, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 236, 0, 140, 2, 208, 5,
-			166, 9, 112, 13, 200, 15, 64, 28, 0, 42, 33, 53, 64, 43, 38, 29, 12, 9, 233, 165, 170, 120, 120, 120, 135, 165, 175, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0, 4, 0,
-			1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 50, 47, 31, 57, 61, 56, 43, 31, 10, 6, 244, 132, 159, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 80, 80, 40, 74, 79, 72, 56, 41, 13, 8,
-			244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 211, 0, 64, 2, 144, 6, 20, 10, 117, 13, 160, 15, 149, 28, 40, 57, 36, 62, 68, 56,
-			46, 34, 12, 7, 208, 142, 158, 120, 120, 120, 189, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 215, 0, 96, 2, 64, 6, 20, 10, 123, 13, 160, 15, 73, 28, 0, 40,
-			32, 56, 58, 44, 39, 29, 11, 6, 228, 153, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 190, 0, 4, 0, 1, 0, 168, 0, 160, 1, 8, 7, 0, 10,
-			72, 13, 200, 15, 163, 25, 50, 41, 32, 62, 49, 47, 44, 32, 14, 6, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 160, 1,
-			8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 80, 65, 40, 78, 61, 59, 55, 40, 17, 8, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 60, 55, 37, 71, 56, 54, 51, 37, 16, 7, 161, 98, 126, 120, 120, 120,
-			130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 0, 31, 28, 54, 42, 41, 38, 28, 12, 5, 161, 98,
-			126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 190, 0, 4, 0, 1, 0, 168, 0, 192, 1, 124, 6, 224, 9, 12, 13, 60, 15, 230, 25, 50, 42, 29, 59,
-			53, 50, 47, 34, 15, 6, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 192, 1, 124, 6, 224, 9, 12, 13, 60, 15, 230, 25,
-			80, 69, 38, 76, 69, 65, 61, 44, 19, 8, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 192, 1, 124, 6, 224, 9, 12, 13,
-			60, 15, 230, 25, 60, 56, 34, 69, 62, 58, 55, 39, 17, 7, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 192, 1, 124, 6,
-			224, 9, 12, 13, 60, 15, 230, 25, 0, 32, 26, 52, 47, 44, 41, 30, 13, 5, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0,
-			1, 0, 126, 0, 112, 1, 52, 8, 100, 10, 47, 13, 60, 15, 96, 25, 45, 40, 25, 65, 47, 43, 43, 26, 10, 4, 160, 93, 120, 155,
-			120, 120, 130, 95, 120, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 126, 0, 112, 1, 52, 8, 100, 10, 47, 13, 60, 15, 96, 25, 70, 66, 31, 84, 60, 56, 56, 34, 14, 6,
-			160, 93, 120, 155, 120, 120, 130, 95, 120, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 126, 0, 88, 1, 98, 8, 140, 10, 41, 13, 45, 15, 152, 25, 60, 39, 22, 64, 44, 41,
-			41, 24, 11, 5, 161, 95, 118, 147, 120, 120, 130, 95, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 126, 0, 88, 1, 98, 8, 140, 10, 41, 13, 45, 15, 152, 25, 0, 20,
-			16, 47, 32, 30, 30, 18, 8, 4, 161, 95, 118, 147, 120, 120, 130, 95, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 0, 1, 216, 2, 176, 4, 100, 10,
-			188, 12, 176, 14, 87, 27, 45, 43, 29, 54, 65, 39, 35, 32, 10, 5, 175, 147, 147, 120, 120, 120, 175, 142, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 216, 2,
-			176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 80, 84, 41, 76, 90, 54, 48, 44, 14, 7, 175, 147, 147, 120, 120, 120, 175, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			0, 1, 208, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 60, 66, 36, 67, 80, 48, 43, 39, 12, 6, 175, 147, 147, 120, 120, 120,
-			175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 0, 1, 200, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 0, 44, 29, 54, 67, 38, 34, 31, 10, 5, 175, 147,
-			147, 120, 120, 120, 175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 184, 0, 4, 0, 1, 0, 208, 0, 120, 2, 20, 5, 40, 10, 228, 12, 0, 15, 210, 27, 45, 46, 30, 53,
-			70, 42, 39, 25, 14, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 208, 0, 120, 2, 20, 5, 40, 10, 228, 12, 0, 15, 210, 27,
-			80, 85, 41, 72, 95, 57, 53, 34, 19, 7, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 208, 0, 114, 2, 36, 5, 40, 10, 228, 12,
-			0, 15, 210, 27, 60, 68, 35, 64, 85, 51, 47, 30, 17, 6, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 208, 0, 104, 2, 60, 5,
-			40, 10, 228, 12, 0, 15, 210, 27, 0, 39, 26, 49, 65, 39, 36, 23, 13, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0,
-			1, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 45, 53, 30, 64, 67, 35, 37, 31, 16, 6, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 70, 101, 41, 88, 92, 48, 52, 43, 23, 8,
-			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 60, 82, 37, 79, 82, 43,
-			46, 39, 20, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 0, 46,
-			28, 59, 62, 32, 35, 29, 15, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 255, 0, 6, 0, 1, 0, 250, 0, 216, 2, 176, 4, 40, 10,
-			188, 12, 92, 14, 87, 27, 45, 47, 29, 54, 70, 40, 36, 33, 9, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 250, 0, 216, 2,
-			176, 4, 40, 10, 188, 12, 92, 14, 87, 27, 85, 94, 41, 77, 99, 57, 51, 46, 13, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			250, 0, 200, 2, 176, 4, 196, 9, 128, 12, 92, 14, 87, 27, 50, 66, 35, 65, 84, 48, 43, 39, 11, 6, 167, 147, 147, 120, 120, 120,
-			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 5, 0, 116, 0, 80, 2, 236, 4, 128, 7, 164, 11, 232, 13, 96, 27, 35, 40, 26, 60, 58, 35, 36, 28, 14, 8, 167, 150,
-			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 5, 0, 116, 0, 8, 2, 236, 4, 108, 7, 164, 11, 232, 13, 96, 27, 40, 34, 23, 54, 52, 31, 32, 25,
-			12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 116, 0, 8, 2, 236, 4, 108, 7, 164, 11, 232, 13, 96, 27, 0, 27, 20, 48,
-			46, 28, 28, 22, 11, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 185, 0, 5, 0, 1, 0, 140, 0, 224, 1, 128, 5, 16, 9, 148, 12,
-			41, 14, 32, 27, 45, 44, 22, 54, 66, 60, 49, 40, 20, 6, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 140, 0, 224, 1, 128, 5,
-			16, 9, 148, 12, 41, 14, 32, 27, 40, 61, 24, 64, 77, 71, 57, 47, 23, 7, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 141, 0,
-			218, 1, 146, 5, 128, 8, 118, 12, 78, 14, 35, 27, 50, 48, 24, 59, 69, 58, 47, 38, 17, 6, 170, 135, 163, 120, 120, 120, 140, 120,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 142, 0, 212, 1, 164, 5, 240, 7, 88, 12, 116, 14, 38, 27, 50, 43, 25, 58, 64, 49, 39, 33, 12, 6, 170, 135, 161, 120,
-			120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 142, 0, 208, 1, 160, 5, 208, 7, 88, 12, 136, 14, 38, 27, 0, 38, 24, 54, 60, 42, 36, 30, 10, 6,
-			170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 230, 0, 6, 0, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 40, 61,
-			26, 61, 74, 36, 35, 20, 13, 5, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14,
-			160, 27, 50, 111, 36, 83, 100, 49, 47, 27, 18, 7, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10,
-			164, 11, 53, 14, 160, 27, 70, 90, 32, 75, 90, 44, 42, 25, 16, 6, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0, 116, 0, 0, 2,
-			176, 4, 8, 7, 144, 11, 172, 13, 96, 27, 35, 42, 25, 59, 59, 34, 35, 27, 13, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0,
-			116, 0, 0, 2, 176, 4, 8, 7, 144, 11, 172, 13, 96, 27, 35, 35, 23, 54, 54, 31, 32, 25, 12, 7, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 1, 0, 129, 0, 232, 1, 40, 5, 68, 7, 184, 11, 212, 13, 67, 27, 0, 35, 24, 52, 56, 36, 33, 27, 11, 6, 168, 142,
-			148, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36,
-			0, 0, 0, 250, 0, 0, 165, 0, 4, 0, 1, 0, 232, 0, 200, 2, 232, 3, 60, 10, 224, 11, 222, 13, 160, 28, 45, 58, 33, 56,
-			73, 34, 35, 23, 9, 8, 230, 150, 120, 120, 120, 120, 185, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 232, 0, 144, 2, 232, 3, 60, 10, 224, 11, 222, 13, 32, 28,
-			80, 94, 29, 78, 98, 44, 45, 29, 16, 7, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 232, 0, 144, 2, 232, 3, 60, 10, 224, 11,
-			222, 13, 32, 28, 40, 75, 28, 73, 83, 42, 42, 28, 15, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 228, 0, 118, 2, 192, 3,
-			140, 10, 224, 11, 66, 14, 32, 28, 0, 45, 29, 49, 70, 38, 37, 23, 12, 9, 177, 150, 120, 120, 120, 120, 177, 75, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 220, 0, 5, 0,
-			1, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 45, 50, 23, 51, 59, 38, 35, 17, 13, 5, 165, 135, 150, 120,
-			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 55, 96, 32, 72, 82, 53, 48, 24, 18, 7,
-			165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 75, 78, 29, 64, 74, 48,
-			44, 22, 16, 6, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 8, 2, 136, 4, 108, 7, 144, 11, 116, 14, 96, 27, 45, 35,
-			24, 54, 54, 32, 33, 25, 12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 116, 0, 8, 2, 136, 4, 108, 7, 124, 11, 212, 13,
-			96, 27, 0, 31, 22, 50, 50, 30, 31, 24, 12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 228, 0, 145, 2,
-			76, 4, 143, 10, 188, 12, 99, 14, 87, 27, 45, 46, 26, 53, 66, 37, 34, 31, 11, 5, 167, 143, 143, 120, 120, 120, 167, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			228, 0, 145, 2, 76, 4, 143, 10, 188, 12, 99, 14, 87, 27, 60, 89, 36, 74, 92, 52, 48, 43, 15, 7, 167, 143, 143, 120, 120, 120,
-			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 228, 0, 145, 2, 96, 4, 143, 10, 188, 12, 99, 14, 87, 27, 80, 77, 34, 70, 87, 49, 45, 40, 14, 7, 167, 143,
-			143, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 228, 0, 145, 2, 96, 4, 143, 10, 188, 12, 99, 14, 87, 27, 0, 44, 25, 53, 65, 37, 34, 30,
-			10, 5, 167, 143, 143, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 96, 1, 180, 5, 212, 8, 148, 12, 41, 14, 64, 26,
-			42, 46, 16, 68, 54, 37, 37, 35, 10, 7, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 96, 1, 140, 5, 212, 8, 148, 12,
-			116, 14, 192, 25, 40, 71, 20, 82, 78, 69, 54, 50, 17, 7, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 88, 0, 96, 1, 120, 5,
-			172, 8, 148, 12, 116, 14, 192, 25, 50, 67, 21, 84, 64, 66, 50, 47, 19, 7, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 98, 0,
-			80, 1, 236, 4, 179, 8, 86, 12, 118, 14, 218, 25, 67, 46, 15, 70, 56, 49, 40, 36, 15, 6, 166, 127, 128, 120, 120, 120, 107, 90,
-			128, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 109, 0, 64, 1, 76, 4, 187, 8, 23, 12, 121, 14, 244, 25, 0, 27, 8, 51, 40, 30, 28, 24, 11, 5, 165, 135, 138, 120,
-			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 210, 0, 5, 0, 1, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 45, 46, 31, 58, 62, 38,
-			39, 24, 12, 5, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 80, 88,
-			43, 81, 86, 54, 54, 34, 18, 7, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 234, 2, 20, 5, 80, 10, 248, 12, 140, 15,
-			220, 27, 45, 70, 38, 71, 76, 47, 47, 29, 16, 6, 184, 154, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 185, 0, 64, 2, 16, 4, 68, 10,
-			8, 12, 20, 15, 89, 27, 40, 35, 22, 45, 48, 29, 25, 16, 10, 4, 172, 140, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 168, 0, 240, 1,
-			132, 3, 60, 10, 144, 11, 176, 14, 32, 27, 0, 33, 21, 45, 47, 28, 23, 14, 10, 4, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 45, 0,
-			5, 0, 1, 0, 169, 0, 37, 2, 92, 4, 76, 9, 72, 13, 64, 16, 98, 27, 45, 34, 28, 49, 54, 38, 33, 24, 14, 5, 167, 141,
-			152, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 169, 0, 37, 2, 92, 4, 76, 9, 72, 13, 64, 16, 98, 27, 80, 60, 37, 64, 72, 50, 44, 32,
-			19, 7, 167, 141, 152, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 8, 2, 212, 3, 36, 9, 32, 13, 64, 16, 71, 27, 50, 60, 30, 61,
-			71, 48, 45, 25, 17, 6, 167, 144, 151, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 178, 0, 162, 1, 77, 3, 116, 9, 7, 13, 160, 15, 178, 26,
-			40, 36, 21, 45, 48, 32, 27, 19, 13, 6, 163, 137, 150, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 128, 1, 32, 3, 156, 9, 12, 13,
-			160, 15, 128, 26, 0, 29, 19, 41, 41, 27, 22, 17, 12, 5, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 205, 0, 6, 0, 5, 0, 28, 1,
-			28, 3, 236, 4, 50, 10, 112, 13, 254, 14, 176, 27, 45, 51, 30, 69, 65, 42, 35, 25, 7, 5, 192, 145, 135, 120, 120, 120, 167, 135,
-			165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 28, 1, 28, 3, 236, 4, 50, 10, 112, 13, 254, 14, 176, 27, 80, 96, 41, 94, 89, 58, 48, 34, 9, 7, 192, 145, 135, 120,
-			120, 120, 167, 135, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 11, 1, 15, 3, 36, 5, 28, 10, 104, 13, 254, 14, 154, 27, 40, 71, 37, 82, 76, 51, 44, 33, 8, 6,
-			187, 148, 144, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 196, 0, 216, 2, 4, 6, 196, 9, 72, 13, 0, 15, 64, 27, 40, 47, 35, 66, 56, 47,
-			47, 43, 8, 7, 167, 162, 180, 120, 120, 120, 167, 132, 135, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 205, 0, 48, 2, 28, 7, 196, 9, 72, 13, 0, 15, 63, 27, 40, 38,
-			32, 56, 51, 47, 43, 41, 12, 8, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 205, 0, 48, 2, 28, 7, 196, 9, 72, 13, 0, 15,
-			63, 27, 0, 35, 30, 53, 48, 45, 41, 39, 11, 7, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 58, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 230, 0, 5, 0, 1, 0, 0, 1, 24, 2,
-			8, 7, 236, 9, 104, 13, 15, 15, 224, 28, 45, 30, 25, 47, 53, 44, 37, 27, 9, 6, 216, 138, 159, 120, 120, 120, 107, 138, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			0, 1, 24, 2, 8, 7, 236, 9, 104, 13, 15, 15, 224, 28, 90, 67, 38, 70, 80, 66, 56, 41, 13, 9, 216, 138, 159, 120, 120, 120,
-			107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 216, 0, 232, 1, 108, 7, 40, 10, 163, 13, 57, 15, 148, 28, 55, 56, 37, 67, 69, 62, 51, 39, 12, 9, 197, 114,
-			149, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 40, 30, 27, 50, 48, 46, 40, 32,
-			9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 0, 27, 26, 47,
-			45, 44, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 179, 0, 50, 2, 175, 3, 96, 10, 15, 12,
-			141, 14, 32, 27, 45, 35, 22, 45, 52, 33, 32, 15, 11, 4, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 179, 0, 50, 2, 175, 3,
-			96, 10, 15, 12, 141, 14, 32, 27, 40, 114, 40, 82, 93, 59, 58, 27, 20, 8, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 179, 0,
-			50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 70, 94, 36, 74, 84, 53, 52, 24, 18, 7, 166, 135, 150, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 196, 0, 24, 2, 164, 6, 116, 9, 228, 12, 36, 14, 64, 27, 30, 49, 30, 57, 68, 57, 53, 46, 8, 8, 167, 135, 180, 120,
-			120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 5, 0, 199, 0, 101, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 40, 37, 24, 47, 48, 45, 44, 36, 10, 6,
-			156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 199, 0, 101, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 0, 29, 21, 41, 42, 39,
-			39, 31, 9, 5, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 235, 0, 6, 0, 1, 0, 14, 1, 24, 2, 240, 6, 236, 9, 112, 13, 80, 15,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 4, 19, 0, 13, 13, 5, 6, 19, 14, 14, 11, 10, 6, 249, 248, 0, 254, 11, 6,
+			6, 4, 3, 211, 167, 140, 139, 164, 184, 212, 239, 17, 19, 2, 249, 9, 15, 12, 13, 20, 26, 27, 27, 23, 9, 1, 246, 243, 2, 22,
+			44, 52, 55, 53, 50, 50, 51, 58, 57, 53, 50, 45, 24, 10, 0, 246, 1, 4, 7, 255, 213, 209, 197, 175, 173, 188, 217, 225, 220, 239,
+			239, 223, 222, 229, 234, 245, 247, 251, 0, 0, 3, 3, 4, 5, 1, 0, 0, 1, 7, 9, 7, 11, 16, 18, 17, 22, 26, 26, 29, 24,
+			21, 21, 20, 23, 12, 15, 14, 11, 10, 4, 253, 248, 232, 227, 239, 239, 239, 249, 0, 8, 1, 1, 6, 2, 249, 251, 223, 235, 1, 254,
+			241, 235, 245, 255, 249, 241, 247, 0, 2, 0, 250, 3, 13, 9, 13, 19, 24, 25, 23, 17, 21, 22, 16, 10, 7, 7, 12, 5, 3, 2,
+			4, 8, 4, 1, 0, 255, 255, 254, 248, 244, 245, 250, 245, 244, 244, 232, 227, 232, 237, 236, 237, 238, 242, 246, 250, 253, 253, 0, 9, 13,
+			17, 17, 13, 16, 18, 21, 20, 14, 9, 11, 12, 10, 13, 12, 11, 9, 4, 254, 0, 253, 252, 249, 233, 231, 235, 229, 240, 2, 2, 254,
+			247, 245, 244, 241, 242, 247, 0, 7, 11, 13, 19, 22, 19, 14, 11, 11, 7, 2, 1, 5, 10, 18, 19, 16, 20, 12, 0, 247, 246, 247,
+			247, 249, 249, 251, 251, 244, 248, 250, 247, 245, 236, 231, 232, 232, 235, 245, 254, 2, 4, 5, 9, 5, 254, 0, 4, 12, 10, 9, 12, 19,
+			27, 32, 27, 24, 19, 16, 7, 5, 6, 2, 254, 255, 254, 248, 245, 235, 228, 230, 234, 237, 233, 234, 233, 236, 241, 252, 9, 9, 4, 0,
+			251, 242, 249, 15, 22, 17, 16, 18, 14, 17, 23, 26, 17, 6, 255, 255, 247, 244, 241, 244, 247, 255, 255, 249, 246, 255, 1, 6, 9, 7,
+			10, 10, 14, 14, 12, 9, 0, 0, 8, 22, 37, 39, 19, 255, 242, 237, 236, 245, 252, 252, 244, 238, 240, 244, 248, 250, 250, 246, 1, 18,
+			24, 4, 3, 29, 33, 11, 11, 15, 10, 251, 241, 1, 12, 255, 230, 210, 207, 225, 225, 221, 213, 210, 225, 243, 240, 245, 249, 7, 15, 20,
+			44, 38, 25, 26, 28, 12, 0, 14, 15, 248, 0, 24, 17, 12, 0, 242, 227, 227, 11, 7, 214, 233, 255, 248, 251, 2, 27, 16, 2, 17,
+			17, 3, 21, 5, 233, 223, 2, 24, 242, 220, 244, 252, 243, 4, 18, 1, 231, 250, 2, 234, 248, 11, 13, 0, 18, 66, 55, 33, 40, 31,
+			2, 224, 231, 0, 2, 6, 7, 250, 247, 6, 238, 211, 208, 247, 15, 249, 231, 234, 245, 15, 25, 6, 245, 237, 239, 243, 9, 34, 61, 66,
+			37, 5, 0, 12, 2, 224, 222, 22, 38, 22, 22, 23, 16, 16, 13, 7, 2, 22, 41, 28, 7, 253, 238, 4, 58, 77, 60, 15, 224, 207,
+			213, 254, 6, 222, 218, 240, 241, 220, 214, 228, 220, 225, 248, 18, 39, 5, 214, 185, 214, 0, 32, 12, 243, 216, 221, 242, 246, 231, 243, 247,
+			235, 199, 185, 210, 211, 205, 222, 245, 251, 239, 245, 240, 223, 242, 0, 253, 13, 47, 63, 47, 40, 36, 19, 14, 30, 7, 223, 225, 238, 238,
+			216, 221, 251, 10, 2, 246, 239, 12, 9, 11, 19, 55, 105, 106, 97, 71, 39, 22, 26, 25, 33, 41, 73, 69, 27, 238, 239, 244, 9, 42,
+			31, 11, 6, 23, 11, 39, 79, 44, 244, 6, 57, 80, 32, 253, 242, 8, 18, 6, 237, 203, 251, 41, 6, 230, 251, 229, 191, 202, 228, 248,
+			0, 7, 248, 219, 245, 245, 221, 200, 222, 243, 212, 191, 206, 5, 20, 244, 186, 163, 176, 186, 229, 244, 219, 230, 249, 251, 221, 211, 195, 210,
+			230, 248, 6, 224, 221, 231, 1, 12, 5, 244, 226, 237, 6, 4, 250, 2, 9, 241, 244, 29, 50, 23, 0, 16, 14, 1, 1, 16, 14, 13,
+			25, 32, 6, 236, 254, 10, 251, 242, 5, 13, 0, 31, 77, 72, 22, 2, 16, 16, 19, 29, 28, 26, 57, 59, 22, 242, 236, 245, 248, 5,
+			28, 53, 72, 70, 40, 5, 245, 248, 5, 21, 34, 25, 0, 2, 15, 11, 253, 242, 238, 245, 15, 28, 16, 244, 239, 243, 8, 24, 1, 223,
+			214, 243, 34, 33, 240, 187, 212, 14, 64, 57, 19, 0, 226, 218, 189, 198, 239, 26, 44, 12, 231, 216, 223, 200, 166, 189, 231, 249, 243, 22,
+			46, 254, 236, 221, 226, 240, 34, 27, 244, 6, 64, 87, 39, 49, 70, 16, 229, 244, 9, 5, 18, 56, 59, 33, 29, 0, 195, 209, 231, 230,
+			220, 243, 14, 242, 241, 13, 20, 0, 6, 12, 0, 255, 252, 17, 3, 21, 5, 233, 223, 2, 24, 242, 220, 244, 252, 243, 4, 18, 1, 231,
+			250, 2, 234, 248, 11, 13, 0, 18, 66, 55, 33, 40, 31, 2, 224, 231, 0, 2, 6, 7, 250, 247, 6, 238, 211, 208, 247, 15, 249, 231,
+			234, 245, 15, 25, 6, 245, 237, 239, 243, 9, 34, 61, 66, 37, 5, 0, 12, 2, 224, 222, 22, 38, 22, 22, 23, 16, 16, 13, 7, 2,
+			22, 41, 28, 7, 253, 238, 4, 58, 77, 60, 15, 224, 207, 213, 254, 6, 222, 218, 240, 241, 220, 214, 228, 220, 225, 248, 18, 39, 5, 214,
+			185, 214, 0, 32, 12, 243, 216, 221, 242, 246, 231, 243, 247, 235, 199, 185, 210, 211, 205, 222, 245, 251, 239, 245, 240, 223, 242, 0, 253, 13,
+			47, 63, 47, 40, 36, 19, 14, 30, 7, 223, 225, 238, 238, 216, 221, 251, 10, 2, 246, 239, 12, 9, 11, 19, 55, 105, 106, 97, 71, 39,
+			22, 26, 25, 33, 41, 73, 69, 27, 238, 239, 244, 9, 42, 31, 11, 6, 23, 11, 39, 79, 44, 244, 6, 57, 80, 32, 253, 242, 8, 18,
+			6, 237, 203, 251, 41, 6, 230, 251, 229, 191, 202, 228, 248, 0, 7, 248, 219, 245, 245, 221, 200, 222, 243, 212, 191, 206, 5, 20, 244, 186,
+			163, 176, 186, 229, 244, 219, 230, 249, 251, 221, 211, 195, 210, 230, 248, 6, 224, 221, 231, 1, 12, 5, 244, 226, 237, 6, 4, 250, 2, 9,
+			241, 244, 29, 50, 23, 0, 16, 14, 1, 1, 16, 14, 13, 25, 32, 6, 236, 254, 10, 251, 242, 5, 13, 0, 31, 77, 72, 22, 2, 16,
+			16, 19, 29, 28, 26, 57, 59, 22, 242, 236, 245, 248, 5, 28, 53, 72, 70, 40, 5, 245, 248, 5, 21, 34, 25, 0, 2, 15, 11, 253,
+			242, 238, 245, 15, 28, 16, 244, 239, 243, 8, 24, 1, 223, 214, 243, 34, 33, 240, 187, 212, 14, 64, 57, 19, 0, 226, 218, 189, 198, 239,
+			26, 44, 12, 231, 216, 223, 200, 166, 189, 231, 249, 243, 22, 46, 254, 236, 221, 226, 240, 34, 27, 244, 6, 64, 87, 39, 49, 70, 16, 229,
+			244, 9, 5, 18, 56, 59, 33, 29, 0, 195, 209, 231, 230, 220, 243, 14, 242, 241, 13, 20, 0, 6, 12, 0, 255, 252, 4, 0, 18, 36,
+			31, 26, 252, 221, 182, 181, 209, 192, 210, 237, 23, 17, 235, 180, 131, 157, 210, 229, 216, 219, 230, 227, 248, 16, 41, 20, 250, 17, 33, 38,
+			22, 0, 0, 0, 63, 2, 30, 0, 3, 7, 4, 5, 7, 0, 3, 254, 217, 209, 5, 49, 40, 4, 238, 252, 21, 22, 6, 0, 8, 16,
+			13, 3, 2, 8, 10, 8, 7, 6, 6, 9, 13, 12, 9, 7, 8, 6, 5, 8, 8, 8, 7, 4, 5, 6, 6, 6, 3, 3, 6, 3,
+			4, 4, 253, 5, 8, 233, 222, 2, 38, 35, 246, 219, 4, 48, 53, 25, 216, 200, 12, 40, 10, 5, 20, 38, 40, 1, 237, 8, 31, 36,
+			26, 6, 7, 19, 8, 232, 212, 223, 249, 11, 10, 0, 9, 23, 10, 12, 19, 252, 246, 2, 0, 9, 10, 253, 10, 11, 246, 1, 16, 24,
+			33, 1, 240, 12, 10, 3, 13, 242, 235, 14, 13, 2, 11, 254, 244, 13, 29, 23, 6, 245, 0, 30, 25, 2, 253, 248, 246, 6, 8, 252,
+			2, 10, 9, 12, 1, 249, 13, 28, 23, 17, 3, 1, 20, 23, 16, 19, 15, 16, 22, 8, 3, 16, 243, 209, 245, 29, 21, 12, 8, 6,
+			13, 0, 253, 23, 15, 0, 15, 5, 253, 15, 8, 0, 4, 247, 0, 12, 252, 1, 14, 7, 9, 0, 249, 13, 13, 4, 3, 246, 255, 16,
+			7, 4, 2, 2, 17, 254, 247, 22, 6, 245, 9, 0, 0, 15, 253, 8, 24, 250, 254, 21, 15, 10, 246, 249, 35, 11, 233, 15, 22, 4,
+			26, 13, 242, 5, 19, 3, 253, 0, 4, 14, 19, 5, 255, 8, 3, 0, 7, 247, 0, 31, 248, 227, 24, 15, 236, 22, 27, 225, 243, 40,
+			14, 227, 252, 32, 14, 242, 244, 9, 17, 252, 249, 18, 11, 1, 2, 233, 0, 44, 254, 232, 21, 9, 4, 23, 240, 241, 20, 3, 9, 15,
+			253, 18, 2, 232, 25, 16, 240, 22, 2, 243, 41, 9, 229, 18, 7, 252, 30, 7, 235, 240, 0, 23, 0, 236, 13, 0, 240, 12, 251, 243,
+			22, 255, 238, 16, 12, 7, 35, 16, 240, 6, 27, 8, 10, 31, 23, 5, 253, 1, 21, 24, 13, 3, 248, 14, 35, 14, 9, 241, 229, 48,
+			33, 220, 19, 12, 231, 48, 10, 220, 51, 0, 208, 58, 22, 200, 255, 31, 39, 11, 221, 13, 29, 1, 20, 245, 253, 47, 246, 241, 27, 243,
+			1, 19, 0, 37, 247, 209, 44, 32, 239, 18, 7, 15, 30, 234, 255, 36, 7, 249, 236, 9, 44, 249, 244, 18, 7, 19, 249, 246, 42, 239,
+			230, 46, 6, 14, 35, 216, 11, 39, 226, 31, 14, 205, 53, 35, 205, 15, 21, 248, 16, 10, 19, 252, 243, 36, 248, 13, 66, 183, 216, 118,
+			4, 212, 27, 228, 16, 64, 235, 242, 248, 228, 20, 11, 23, 30, 195, 249, 72, 250, 248, 0, 221, 33, 39, 247, 20, 252, 236, 26, 20, 21,
+			13, 232, 3, 28, 26, 8, 208, 248, 58, 0, 220, 222, 237, 65, 33, 183, 4, 96, 26, 192, 224, 99, 91, 197, 210, 61, 30, 234, 250, 7,
+			254, 244, 252, 20, 41, 5, 222, 36, 65, 228, 231, 25, 3, 25, 24, 252, 32, 238, 192, 42, 54, 222, 225, 14, 43, 3, 219, 27, 26, 228,
+			19, 21, 254, 22, 231, 220, 26, 18, 8, 19, 28, 31, 224, 248, 59, 227, 243, 53, 202, 21, 126, 193, 181, 65, 22, 40, 30, 177, 253, 47,
+			240, 5, 240, 247, 51, 216, 210, 53, 241, 227, 47, 255, 243, 0, 191, 4, 21, 0, 219, 229, 3, 19, 255, 1, 253, 238, 240, 255, 11, 255,
+			208, 218, 22, 67, 15, 200, 201, 255, 40, 29, 223, 234, 62, 56, 20, 217, 220, 255, 20, 18, 38, 11, 209, 222, 6, 56, 28, 232, 29, 32,
+			24, 239, 191, 255, 32, 13, 241, 204, 241, 19, 237, 210, 230, 232, 233, 49, 50, 234, 189, 201, 35, 55, 228, 191, 206, 254, 35, 236, 225, 8,
+			23, 0, 211, 236, 24, 61, 33, 232, 235, 17, 63, 26, 247, 2, 245, 32, 17, 49, 10, 236, 30, 48, 36, 1, 243, 5, 19, 25, 244, 241,
+			10, 34, 16, 2, 246, 239, 28, 26, 0, 253, 1, 242, 239, 246, 3, 10, 0, 242, 215, 0, 30, 10, 5, 249, 239, 227, 237, 239, 6, 238,
+			15, 47, 10, 247, 232, 7, 4, 239, 251, 24, 8, 251, 218, 206, 17, 11, 210, 214, 255, 21, 19, 27, 8, 254, 251, 17, 246, 253, 13, 10,
+			0, 8, 248, 248, 0, 244, 244, 0, 40, 27, 249, 235, 1, 23, 239, 222, 242, 12, 37, 255, 216, 237, 25, 28, 0, 254, 5, 254, 244, 236,
+			2, 37, 11, 233, 0, 0, 253, 6, 244, 255, 28, 24, 218, 233, 238, 234, 0, 3, 1, 14, 13, 5, 248, 7, 244, 237, 2, 35, 11, 239,
+			242, 18, 25, 4, 249, 251, 23, 27, 236, 236, 4, 5, 2, 246, 235, 253, 243, 240, 249, 254, 2, 18, 47, 14, 246, 252, 14, 29, 6, 222,
+			239, 15, 32, 30, 10, 226, 237, 3, 26, 31, 232, 247, 2, 231, 12, 19, 10, 0, 220, 241, 31, 7, 18, 1, 243, 243, 10, 30, 2, 228,
+			221, 255, 4, 252, 233, 4, 16, 242, 15, 249, 5, 17, 1, 25, 33, 243, 230, 226, 0, 26, 7, 212, 241, 247, 243, 33, 25, 2, 0, 14,
+			26, 244, 227, 247, 5, 228, 228, 3, 30, 23, 17, 208, 180, 236, 38, 32, 240, 230, 254, 11, 5, 254, 237, 225, 8, 35, 60, 229, 212, 21,
+			28, 35, 17, 248, 212, 208, 0, 39, 29, 227, 204, 215, 3, 45, 35, 4, 6, 7, 14, 1, 4, 253, 251, 17, 42, 46, 236, 247, 0, 2,
+			14, 14, 6, 0, 245, 208, 249, 14, 17, 14, 233, 239, 20, 250, 245, 4, 9, 28, 233, 5, 62, 23, 233, 199, 247, 48, 24, 239, 207, 13,
+			27, 245, 237, 239, 237, 247, 20, 20, 241, 242, 14, 8, 251, 214, 203, 5, 77, 5, 229, 233, 239, 36, 58, 10, 7, 12, 237, 244, 16, 25,
+			2, 251, 1, 24, 3, 224, 252, 27, 21, 250, 228, 242, 44, 57, 30, 226, 170, 8, 58, 28, 209, 249, 7, 4, 21, 241, 202, 0, 7, 251,
+			207, 252, 1, 233, 7, 5, 17, 36, 253, 232, 219, 3, 55, 65, 224, 209, 243, 0, 251, 2, 25, 15, 11, 218, 217, 17, 15, 13, 9, 0,
+			229, 228, 7, 6, 254, 241, 6, 42, 246, 187, 213, 245, 36, 27, 3, 233, 213, 245, 11, 19, 254, 0, 12, 244, 243, 17, 21, 252, 246, 19,
+			18, 26, 254, 229, 235, 35, 68, 21, 230, 216, 252, 33, 32, 18, 242, 247, 13, 21, 8, 250, 8, 20, 247, 247, 18, 21, 230, 238, 42, 16,
+			7, 249, 0, 9, 0, 9, 24, 23, 234, 10, 40, 15, 0, 233, 0, 25, 0, 228, 7, 13, 253, 24, 24, 221, 199, 244, 20, 228, 205, 1,
+			48, 26, 208, 219, 7, 13, 237, 255, 27, 27, 223, 185, 197, 27, 0, 229, 230, 216, 240, 37, 42, 247, 225, 200, 36, 70, 23, 248, 1, 42,
+			229, 204, 3, 18, 29, 11, 226, 246, 17, 15, 12, 20, 22, 21, 0, 205, 224, 253, 43, 63, 32, 209, 201, 235, 0, 38, 13, 255, 189, 221,
+			25, 20, 255, 238, 235, 255, 27, 20, 238, 234, 6, 248, 12, 19, 239, 242, 33, 30, 15, 230, 246, 15, 22, 26, 16, 12, 0, 252, 11, 31,
+			20, 244, 247, 40, 45, 6, 221, 225, 40, 29, 240, 190, 194, 18, 54, 254, 210, 219, 249, 27, 13, 230, 225, 220, 254, 61, 43, 223, 197, 202,
+			0, 79, 48, 243, 203, 205, 40, 96, 43, 230, 192, 246, 47, 40, 2, 235, 205, 6, 66, 9, 209, 203, 230, 45, 44, 255, 241, 211, 221, 22,
+			63, 54, 1, 205, 207, 35, 67, 36, 21, 252, 233, 19, 34, 46, 255, 199, 1, 88, 67, 215, 135, 235, 72, 62, 252, 176, 231, 1, 12, 0,
+			233, 222, 239, 27, 249, 219, 228, 255, 8, 231, 206, 224, 14, 26, 24, 10, 253, 217, 203, 205, 39, 83, 42, 237, 162, 237, 50, 11, 2, 242,
+			39, 240, 237, 245, 254, 8, 254, 11, 235, 201, 246, 17, 241, 27, 33, 21, 25, 236, 228, 12, 49, 64, 34, 0, 207, 18, 56, 16, 231, 243,
+			16, 9, 255, 235, 20, 53, 27, 226, 200, 180, 3, 68, 22, 5, 215, 249, 17, 255, 7, 250, 13, 8, 4, 41, 33, 232, 224, 6, 15, 255,
+			234, 220, 252, 40, 35, 254, 187, 199, 232, 34, 51, 248, 233, 220, 232, 55, 0, 216, 1, 27, 27, 251, 220, 213, 250, 47, 50, 8, 201, 195,
+			11, 25, 11, 3, 11, 29, 14, 230, 2, 45, 47, 24, 19, 247, 215, 216, 25, 47, 7, 219, 227, 7, 32, 30, 15, 23, 255, 226, 208, 233,
+			23, 2, 243, 250, 2, 2, 211, 198, 234, 2, 50, 27, 206, 196, 232, 9, 13, 13, 250, 244, 231, 244, 241, 5, 16, 1, 242, 10, 4, 239,
+			240, 21, 41, 23, 219, 227, 50, 37, 15, 251, 2, 22, 5, 3, 184, 227, 91, 45, 20, 245, 234, 235, 241, 15, 22, 251, 253, 245, 32, 18,
+			233, 215, 246, 34, 51, 29, 13, 237, 19, 58, 19, 241, 3, 18, 250, 11, 32, 37, 8, 247, 2, 11, 235, 211, 216, 17, 99, 20, 224, 200,
+			217, 252, 231, 252, 19, 3, 244, 246, 17, 34, 8, 219, 240, 3, 234, 248, 254, 3, 7, 23, 25, 243, 226, 251, 21, 47, 15, 242, 246, 26,
+			35, 14, 204, 178, 242, 29, 10, 19, 25, 12, 233, 240, 238, 242, 249, 14, 240, 215, 248, 4, 15, 21, 247, 247, 8, 5, 250, 254, 2, 254,
+			253, 2, 237, 233, 19, 36, 16, 249, 251, 34, 28, 245, 237, 244, 16, 39, 10, 251, 244, 244, 13, 12, 225, 212, 224, 29, 9, 239, 244, 0,
+			1, 11, 12, 7, 252, 248, 7, 0, 249, 224, 217, 239, 14, 24, 6, 225, 175, 190, 0, 26, 11, 3, 243, 253, 249, 11, 31, 27, 243, 228,
+			29, 32, 5, 0, 243, 252, 10, 52, 37, 239, 195, 251, 74, 46, 4, 211, 167, 32, 119, 72, 12, 212, 210, 2, 19, 12, 33, 53, 19, 11,
+			3, 223, 239, 9, 18, 31, 8, 223, 207, 246, 13, 17, 16, 244, 230, 230, 30, 46, 15, 249, 224, 250, 20, 6, 238, 239, 18, 24, 20, 1,
+			221, 196, 241, 25, 39, 38, 4, 230, 225, 34, 29, 237, 204, 236, 16, 50, 47, 240, 177, 207, 14, 26, 22, 229, 196, 247, 1, 251, 0, 229,
+			243, 12, 10, 0, 46, 3, 31, 0, 14, 38, 18, 32, 39, 17, 243, 10, 31, 23, 4, 9, 21, 31, 17, 8, 19, 34, 19, 38, 9, 255,
+			18, 33, 29, 22, 31, 239, 6, 20, 17, 41, 17, 5, 6, 16, 45, 17, 5, 36, 34, 7, 5, 37, 42, 25, 1, 14, 15, 21, 252, 6,
+			22, 31, 35, 0, 3, 250, 45, 32, 24, 24, 245, 16, 27, 23, 48, 38, 15, 249, 250, 25, 9, 250, 24, 16, 39, 16, 24, 27, 39, 31,
+			232, 29, 33, 30, 24, 14, 9, 26, 0, 0, 21, 38, 26, 23, 23, 4, 1, 36, 8, 16, 25, 250, 6, 13, 57, 7, 240, 10, 35, 28,
+			27, 30, 21, 28, 16, 42, 23, 3, 19, 13, 37, 18, 19, 37, 63, 9, 0, 42, 55, 53, 231, 15, 63, 55, 15, 1, 24, 253, 40, 32,
+			40, 6, 31, 27, 250, 10, 25, 34, 13, 9, 31, 19, 15, 20, 30, 10, 15, 3, 60, 43, 224, 0, 45, 53, 18, 5, 40, 19, 252, 27,
+			10, 12, 49, 22, 242, 252, 44, 18, 45, 14, 2, 233, 37, 36, 242, 7, 37, 19, 3, 24, 30, 1, 5, 58, 3, 252, 8, 29, 40, 15,
+			11, 14, 3, 255, 0, 37, 36, 11, 245, 17, 55, 249, 255, 25, 48, 21, 252, 18, 48, 23, 237, 235, 34, 38, 235, 240, 39, 36, 16, 23,
+			21, 1, 15, 20, 26, 44, 1, 19, 23, 10, 46, 33, 221, 229, 36, 32, 241, 254, 1, 12, 39, 56, 60, 251, 8, 19, 248, 34, 26, 21,
+			16, 19, 17, 14, 20, 249, 28, 18, 21, 29, 242, 239, 35, 47, 53, 25, 234, 34, 47, 255, 15, 45, 32, 15, 27, 3, 249, 12, 46, 36,
+			22, 41, 47, 222, 238, 62, 42, 11, 228, 11, 55, 29, 221, 5, 73, 31, 13, 20, 248, 252, 5, 42, 59, 15, 27, 14, 31, 10, 244, 48,
+			51, 33, 245, 11, 31, 253, 252, 9, 48, 18, 217, 242, 21, 53, 84, 25, 218, 33, 34, 39, 26, 21, 28, 1, 29, 4, 238, 12, 249, 32,
+			50, 0, 230, 36, 35, 10, 245, 225, 2, 75, 65, 2, 0, 246, 48, 45, 241, 235, 14, 34, 51, 45, 4, 224, 6, 15, 90, 23, 190, 33,
+			93, 28, 61, 28, 241, 183, 15, 47, 30, 12, 243, 240, 2, 89, 65, 216, 221, 22, 58, 65, 8, 234, 6, 30, 10, 21, 68, 242, 202, 60,
+			42, 3, 245, 176, 6, 45, 64, 25, 229, 222, 32, 47, 16, 238, 223, 65, 50, 241, 236, 27, 81, 252, 57, 64, 7, 235, 253, 22, 46, 23,
+			252, 0, 55, 61, 8, 255, 215, 255, 49, 85, 23, 206, 253, 10, 237, 71, 230, 201, 41, 49, 47, 25, 225, 208, 65, 66, 251, 246, 6, 69,
+			41, 20, 21, 245, 242, 27, 49, 4, 38, 52, 1, 220, 2, 48, 221, 248, 6, 11, 46, 55, 199, 208, 34, 16, 45, 29, 177, 41, 84, 33,
+			254, 8, 216, 55, 66, 22, 248, 208, 4, 63, 33, 21, 4, 253, 251, 28, 11, 37, 84, 42, 21, 239, 188, 44, 51, 31, 29, 41, 9, 219,
+			1, 243, 38, 108, 191, 254, 62, 242, 239, 60, 12, 13, 71, 11, 215, 32, 74, 1, 238, 55, 53, 248, 225, 227, 88, 112, 0, 57, 11, 217,
+			36, 4, 25, 55, 38, 44, 9, 3, 57, 81, 18, 247, 233, 63, 8, 9, 43, 52, 12, 21, 32, 22, 48, 44, 253, 9, 60, 56, 50, 30,
+			2, 211, 26, 78, 75, 43, 3, 13, 46, 255, 250, 57, 228, 211, 52, 82, 255, 233, 50, 200, 232, 66, 107, 252, 12, 10, 50, 22, 242, 23,
+			12, 14, 18, 47, 25, 2, 3, 32, 53, 39, 15, 228, 47, 9, 13, 17, 46, 241, 234, 59, 16, 233, 20, 20, 50, 250, 92, 17, 218, 253,
+			248, 243, 58, 7, 201, 20, 232, 221, 9, 87, 96, 3, 225, 242, 250, 14, 13, 0, 20, 64, 9, 13, 231, 238, 63, 49, 36, 253, 209, 207,
+			254, 70, 40, 30, 252, 131, 206, 66, 21, 51, 26, 241, 28, 17, 242, 255, 248, 61, 42, 233, 20, 77, 46, 222, 188, 25, 98, 85, 55, 243,
+			8, 16, 249, 7, 60, 43, 48, 55, 8, 185, 223, 76, 249, 14, 23, 11, 253, 66, 39, 255, 235, 7, 37, 5, 41, 18, 42, 232, 251, 38,
+			92, 50, 192, 2, 1, 245, 5, 53, 87, 9, 250, 236, 245, 22, 36, 213, 236, 62, 109, 71, 243, 224, 253, 80, 101, 248, 232, 57, 71, 38,
+			255, 254, 34, 48, 232, 240, 91, 78, 171, 193, 43, 91, 49, 246, 221, 250, 235, 61, 84, 227, 223, 4, 14, 27, 29, 198, 238, 31, 8, 82,
+			2, 184, 50, 42, 251, 254, 30, 33, 63, 39, 234, 234, 0, 0, 254, 6, 35, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 0, 0, 0,
+			253, 251, 250, 247, 243, 240, 239, 242, 249, 2, 5, 11, 15, 18, 17, 20, 19, 14, 11, 1, 235, 224, 232, 234, 223, 235, 0, 253, 250, 14,
+			25, 21, 24, 26, 22, 20, 11, 254, 253, 249, 235, 232, 240, 241, 240, 249, 255, 7, 12, 19, 21, 26, 21, 14, 15, 6, 0, 248, 250, 241,
+			241, 245, 244, 246, 255, 6, 8, 14, 20, 15, 13, 16, 11, 5, 2, 239, 210, 214, 230, 219, 220, 244, 246, 245, 12, 25, 26, 37, 33, 22,
+			26, 15, 254, 250, 250, 236, 236, 243, 241, 245, 249, 4, 17, 26, 23, 25, 39, 27, 12, 16, 9, 242, 214, 192, 208, 228, 222, 206, 235, 251,
+			237, 5, 34, 46, 41, 40, 38, 36, 28, 1, 255, 4, 242, 227, 240, 252, 241, 241, 7, 19, 17, 24, 28, 32, 23, 18, 10, 9, 253, 234,
+			243, 242, 235, 243, 27, 52, 245, 4, 31, 44, 247, 28, 43, 245, 246, 241, 235, 219, 210, 203, 210, 238, 241, 7, 38, 22, 48, 61, 51, 24,
+			252, 228, 200, 200, 173, 166, 202, 221, 210, 248, 27, 49, 35, 67, 63, 40, 14, 245, 232, 189, 174, 162, 179, 174, 189, 226, 8, 30, 55, 92,
+			86, 75, 72, 54, 22, 0, 253, 224, 204, 207, 193, 211, 227, 17, 26, 56, 76, 84, 83, 72, 63, 44, 11, 248, 248, 224, 212, 215, 229, 221,
+			241, 6, 4, 23, 27, 32, 39, 13, 254, 2, 248, 212, 199, 208, 165, 183, 203, 200, 221, 25, 61, 46, 65, 85, 60, 33, 44, 0, 185, 182,
+			194, 158, 159, 224, 222, 0, 46, 64, 73, 111, 120, 86, 86, 67, 17, 248, 226, 206, 181, 183, 198, 217, 242, 2, 29, 46, 48, 45, 45, 24,
+			243, 205, 180, 153, 131, 148, 158, 168, 192, 231, 15, 49, 86, 95, 104, 105, 94, 69, 48, 23, 255, 234, 215, 211, 207, 210, 221, 242, 8, 31,
+			66, 70, 79, 88, 68, 48, 25, 5, 239, 220, 197, 201, 203, 205, 221, 254, 1, 14, 36, 42, 34, 31, 27, 1, 241, 244, 219, 199, 208, 213,
+			203, 220, 1, 0, 3, 38, 39, 28, 27, 36, 13, 0, 241, 229, 222, 224, 236, 238, 242, 247, 3, 1, 0, 4, 249, 235, 238, 239, 233, 241,
+			248, 0, 2, 22, 45, 53, 48, 42, 33, 24, 35, 2, 249, 254, 243, 211, 237, 247, 224, 250, 10, 10, 253, 14, 6, 14, 14, 9, 0, 1,
+			248, 238, 248, 251, 244, 231, 232, 234, 2, 0, 249, 4, 11, 7, 8, 21, 19, 13, 18, 11, 242, 238, 246, 252, 245, 239, 241, 0, 2, 2,
+			0, 3, 12, 5, 7, 2, 6, 2, 13, 6, 238, 242, 4, 13, 0, 247, 7, 16, 20, 12, 11, 12, 28, 38, 23, 13, 12, 6, 247, 244,
+			225, 219, 217, 230, 223, 233, 0, 5, 8, 20, 17, 15, 19, 23, 1, 12, 32, 33, 19, 18, 13, 238, 252, 253, 239, 235, 252, 225, 205, 237,
+			229, 216, 253, 250, 235, 231, 249, 227, 234, 253, 248, 238, 246, 253, 0, 6, 27, 33, 51, 52, 40, 33, 56, 47, 42, 32, 27, 3, 6, 19,
+			248, 235, 230, 221, 216, 226, 231, 216, 228, 240, 222, 234, 254, 250, 232, 234, 233, 221, 221, 232, 230, 236, 247, 7, 2, 248, 2, 13, 23, 30,
+			33, 26, 28, 39, 46, 52, 51, 46, 44, 34, 22, 27, 26, 2, 10, 3, 241, 233, 252, 253, 245, 4, 15, 0, 5, 10, 9, 235, 238, 234,
+			215, 212, 219, 203, 200, 223, 239, 238, 14, 29, 1, 10, 20, 17, 5, 252, 252, 236, 238, 231, 255, 234, 233, 241, 244, 247, 9, 22, 25, 22,
+			31, 24, 29, 20, 17, 8, 4, 255, 254, 22, 15, 247, 240, 239, 0, 2, 17, 28, 32, 28, 14, 10, 5, 11, 253, 251, 1, 0, 9, 29,
+			23, 3, 5, 1, 250, 246, 252, 234, 238, 2, 243, 240, 247, 0, 253, 2, 245, 237, 243, 0, 5, 13, 14, 30, 42, 16, 5, 5, 12, 246,
+			255, 234, 208, 212, 232, 241, 1, 2, 251, 237, 232, 212, 221, 198, 176, 178, 186, 199, 229, 248, 0, 23, 44, 65, 72, 78, 67, 47, 22, 7,
+			1, 253, 253, 4, 30, 22, 28, 59, 70, 48, 56, 64, 19, 3, 236, 180, 155, 162, 154, 138, 159, 183, 203, 242, 22, 57, 66, 64, 67, 55,
+			42, 28, 35, 0, 232, 245, 0, 235, 9, 39, 29, 37, 79, 81, 56, 65, 35, 231, 212, 213, 200, 181, 192, 181, 184, 208, 239, 4, 34, 56,
+			55, 56, 63, 38, 22, 14, 239, 221, 219, 246, 248, 17, 20, 30, 29, 22, 25, 20, 10, 5, 5, 252, 252, 255, 238, 235, 250, 243, 1, 246,
+			222, 234, 253, 247, 238, 241, 246, 239, 254, 241, 241, 15, 29, 25, 4, 24, 6, 255, 245, 222, 213, 242, 15, 4, 1, 26, 38, 45, 34, 16,
+			5, 3, 12, 242, 221, 224, 218, 203, 206, 202, 215, 247, 5, 6, 253, 27, 28, 44, 26, 6, 10, 1, 232, 212, 214, 220, 238, 17, 23, 30,
+			67, 42, 19, 7, 247, 206, 211, 227, 181, 181, 214, 202, 209, 241, 10, 3, 36, 61, 42, 47, 50, 13, 250, 243, 226, 220, 225, 217, 214, 5,
+			34, 41, 72, 84, 81, 65, 58, 43, 19, 21, 247, 226, 231, 235, 236, 242, 11, 11, 22, 43, 31, 20, 18, 15, 234, 207, 212, 190, 198, 222,
+			208, 208, 241, 9, 243, 24, 45, 50, 65, 76, 58, 40, 39, 28, 255, 249, 249, 238, 232, 235, 245, 5, 20, 30, 27, 21, 33, 32, 21, 247,
+			226, 204, 194, 184, 181, 175, 177, 197, 222, 222, 234, 12, 30, 37, 48, 58, 43, 48, 41, 10, 233, 233, 220, 206, 233, 240, 237, 252, 30, 27,
+			66, 80, 71, 53, 61, 19, 245, 246, 231, 198, 215, 206, 176, 200, 249, 240, 252, 34, 30, 29, 37, 33, 29, 29, 15, 241, 227, 210, 212, 214,
+			232, 248, 2, 21, 35, 50, 53, 69, 48, 49, 22, 5, 0, 251, 221, 226, 224, 232, 232, 3, 241, 254, 36, 18, 21, 23, 16, 236, 245, 238,
+			207, 222, 237, 198, 223, 253, 4, 4, 13, 17, 254, 15, 3, 246, 251, 250, 235, 212, 223, 243, 247, 5, 0, 5, 19, 33, 54, 43, 44, 26,
+			12, 240, 227, 221, 237, 238, 230, 215, 252, 14, 14, 7, 5, 10, 4, 5, 237, 232, 0, 15, 15, 248, 242, 254, 4, 245, 249, 0, 7, 14,
+			18, 250, 0, 23, 19, 6, 12, 19, 24, 21, 15, 2, 250, 251, 248, 244, 242, 244, 0, 246, 237, 221, 250, 242, 236, 240, 238, 227, 239, 7,
+			2, 10, 39, 43, 30, 39, 44, 20, 22, 17, 16, 6, 35, 23, 3, 253, 14, 9, 7, 14, 13, 3, 9, 24, 251, 227, 249, 252, 210, 217,
+			244, 226, 227, 245, 232, 226, 11, 6, 244, 251, 17, 9, 17, 11, 9, 255, 1, 248, 249, 249, 14, 19, 4, 0, 14, 13, 14, 30, 19, 255,
+			255, 247, 237, 238, 238, 243, 249, 250, 5, 7, 27, 23, 16, 17, 30, 6, 7, 4, 236, 233, 248, 226, 199, 231, 251, 247, 12, 29, 255, 254,
+			26, 10, 243, 254, 250, 210, 219, 224, 223, 231, 250, 244, 246, 6, 9, 250, 254, 4, 11, 9, 0, 255, 246, 249, 10, 12, 0, 26, 40, 19,
+			4, 27, 11, 0, 4, 237, 217, 244, 16, 253, 244, 3, 1, 250, 1, 2, 250, 9, 20, 2, 225, 235, 14, 10, 251, 9, 251, 254, 20, 23,
+			3, 18, 35, 29, 20, 15, 19, 20, 21, 19, 248, 232, 8, 254, 247, 247, 242, 237, 253, 10, 240, 245, 236, 235, 248, 236, 239, 239, 221, 240,
+			244, 242, 242, 8, 3, 3, 11, 22, 26, 30, 23, 28, 0, 17, 24, 246, 251, 1, 1, 240, 5, 239, 236, 24, 36, 27, 253, 24, 16, 249,
+			253, 243, 217, 244, 3, 212, 185, 220, 239, 238, 238, 249, 241, 253, 32, 31, 6, 21, 40, 19, 23, 33, 26, 13, 20, 14, 23, 35, 41, 22,
+			5, 22, 18, 27, 12, 250, 251, 254, 243, 224, 229, 226, 248, 244, 236, 239, 255, 8, 28, 15, 2, 18, 24, 16, 27, 15, 236, 254, 255, 249,
+			0, 254, 3, 4, 33, 22, 42, 31, 29, 23, 18, 4, 246, 237, 208, 234, 229, 226, 216, 242, 251, 253, 249, 15, 4, 16, 13, 254, 248, 1,
+			26, 235, 230, 248, 251, 231, 248, 254, 11, 18, 28, 232, 248, 20, 6, 243, 229, 246, 241, 244, 238, 228, 228, 1, 4, 235, 225, 246, 248, 235,
+			245, 9, 235, 231, 0, 1, 245, 17, 8, 247, 11, 36, 22, 249, 7, 19, 1, 248, 19, 241, 242, 2, 251, 216, 244, 8, 5, 255, 4, 11,
+			249, 8, 20, 13, 255, 7, 240, 238, 246, 252, 245, 229, 240, 252, 243, 1, 24, 12, 253, 37, 29, 1, 1, 18, 250, 250, 8, 249, 244, 7,
+			10, 255, 15, 44, 35, 21, 33, 37, 15, 8, 0, 234, 244, 253, 234, 209, 222, 222, 252, 249, 255, 253, 10, 252, 9, 2, 4, 253, 1, 250,
+			238, 251, 229, 3, 254, 20, 0, 11, 3, 24, 33, 21, 7, 11, 20, 23, 22, 0, 6, 253, 249, 238, 235, 247, 241, 232, 221, 243, 247, 240,
+			234, 242, 254, 2, 226, 232, 0, 15, 23, 250, 244, 255, 22, 20, 0, 9, 27, 38, 3, 2, 255, 15, 20, 11, 233, 228, 237, 251, 231, 218,
+			228, 248, 0, 8, 250, 251, 28, 30, 21, 15, 0, 18, 28, 2, 251, 232, 229, 248, 13, 240, 229, 234, 246, 17, 17, 250, 241, 17, 37, 27,
+			245, 232, 244, 17, 14, 240, 226, 245, 19, 37, 16, 244, 10, 28, 35, 30, 14, 14, 20, 24, 6, 10, 0, 5, 9, 9, 11, 4, 0, 23,
+			8, 9, 19, 4, 4, 27, 12, 242, 0, 0, 231, 255, 234, 253, 238, 245, 241, 246, 9, 5, 254, 1, 9, 251, 6, 0, 2, 0, 2, 228,
+			249, 234, 238, 0, 2, 0, 19, 39, 27, 27, 36, 51, 32, 22, 12, 253, 5, 252, 221, 234, 248, 249, 3, 4, 252, 39, 34, 9, 22, 44,
+			33, 30, 255, 226, 14, 12, 245, 225, 235, 253, 0, 2, 4, 11, 0, 17, 18, 253, 248, 241, 223, 247, 235, 224, 224, 230, 211, 239, 253, 241,
+			0, 10, 245, 241, 0, 249, 244, 250, 0, 0, 170, 7, 51, 0, 21, 242, 238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1,
+			188, 17, 48, 233, 0, 7, 240, 28, 12, 233, 10, 17, 0, 250, 17, 31, 237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60,
+			17, 164, 60, 69, 186, 246, 2, 12, 106, 244, 132, 46, 76, 41, 222, 179, 29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250,
+			249, 21, 27, 237, 8, 47, 202, 26, 57, 239, 25, 236, 237, 60, 21, 231, 223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250,
+			232, 250, 0, 32, 7, 228, 22, 9, 244, 2, 23, 255, 230, 20, 17, 255, 249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15,
+			41, 228, 203, 64, 67, 199, 241, 34, 10, 22, 238, 231, 33, 13, 250, 243, 235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244,
+			35, 50, 223, 212, 37, 47, 229, 232, 14, 252, 39, 22, 231, 0, 48, 2, 226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27,
+			10, 27, 253, 252, 15, 250, 2, 6, 5, 50, 247, 212, 26, 37, 1, 239, 244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197,
+			22, 59, 255, 233, 254, 1, 23, 24, 240, 237, 47, 20, 242, 236, 32, 21, 237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2,
+			39, 224, 255, 38, 243, 8, 244, 227, 73, 17, 203, 11, 38, 243, 6, 2, 255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248,
+			246, 42, 13, 226, 253, 37, 13, 5, 9, 237, 24, 47, 227, 237, 51, 19, 232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37,
+			2, 243, 12, 9, 8, 27, 0, 231, 3, 22, 253, 229, 38, 1, 221, 31, 13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50,
+			0, 241, 23, 230, 28, 24, 208, 32, 55, 217, 214, 74, 45, 182, 1, 59, 19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16,
+			21, 16, 218, 14, 61, 242, 245, 7, 0, 43, 12, 235, 10, 3, 6, 30, 240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10,
+			212, 50, 100, 166, 173, 111, 43, 204, 232, 10, 50, 1, 225, 11, 20, 4, 254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6,
+			248, 243, 44, 0, 230, 6, 15, 238, 0, 9, 0, 35, 235, 234, 51, 249, 218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201,
+			15, 25, 248, 31, 27, 218, 212, 78, 56, 189, 200, 68, 66, 221, 212, 253, 34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23,
+			30, 210, 250, 62, 19, 230, 227, 29, 29, 252, 245, 60, 246, 173, 65, 92, 206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244,
+			197, 38, 59, 212, 253, 12, 7, 5, 249, 239, 28, 10, 0, 227, 0, 70, 241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223,
+			1, 34, 11, 7, 224, 14, 56, 248, 220, 33, 10, 247, 247, 247, 42, 228, 208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2,
+			245, 43, 251, 220, 18, 29, 246, 232, 33, 31, 236, 233, 6, 57, 5, 221, 250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211,
+			0, 27, 26, 253, 228, 0, 35, 36, 254, 208, 4, 81, 223, 228, 58, 252, 236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20,
+			237, 240, 243, 43, 27, 252, 3, 252, 249, 18, 48, 250, 247, 32, 252, 232, 42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254,
+			45, 230, 242, 3, 30, 28, 239, 232, 248, 41, 15, 235, 31, 233, 233, 48, 3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241,
+			224, 41, 18, 254, 224, 6, 39, 17, 244, 222, 0, 47, 12, 223, 11, 33, 246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224,
+			30, 34, 237, 223, 25, 30, 252, 2, 247, 27, 252, 240, 45, 247, 237, 7, 17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56,
+			34, 215, 25, 10, 238, 42, 11, 238, 22, 239, 31, 29, 223, 12, 1, 17, 6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46,
+			227, 20, 52, 174, 4, 61, 246, 12, 249, 1, 56, 233, 234, 38, 239, 12, 56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21,
+			222, 219, 35, 42, 215, 255, 7, 6, 40, 0, 188, 15, 76, 245, 193, 29, 25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13,
+			11, 247, 16, 19, 2, 239, 204, 71, 69, 188, 229, 30, 35, 0, 2, 14, 236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23,
+			237, 4, 46, 204, 233, 66, 250, 217, 22, 41, 2, 225, 27, 47, 234, 252, 10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18,
+			53, 242, 10, 6, 234, 30, 19, 235, 9, 42, 242, 224, 32, 0, 243, 16, 251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23,
+			249, 239, 13, 237, 22, 0, 0, 26, 243, 1, 33, 231, 9, 46, 235, 245, 9, 30, 30, 186, 244, 60, 27, 7, 219, 251, 54, 24, 255, 232,
+			20, 58, 246, 195, 11, 40, 18, 2, 200, 0, 60, 42, 225, 219, 32, 32, 4, 232, 254, 5, 13, 37, 225, 247, 42, 255, 227, 19, 10, 230,
+			5, 26, 236, 255, 19, 8, 10, 21, 242, 238, 36, 3, 9, 1, 243, 53, 29, 200, 245, 43, 246, 25, 1, 188, 17, 48, 233, 0, 7, 240,
+			28, 12, 233, 10, 17, 0, 250, 17, 31, 237, 219, 30, 38, 12, 249, 237, 0, 38, 249, 9, 12, 224, 60, 17, 164, 60, 69, 186, 246, 2,
+			12, 106, 244, 132, 46, 76, 41, 222, 179, 29, 40, 30, 238, 186, 37, 78, 238, 227, 0, 40, 33, 7, 250, 249, 21, 27, 237, 8, 47, 202,
+			26, 57, 239, 25, 236, 237, 60, 21, 231, 223, 21, 81, 219, 184, 42, 30, 0, 25, 255, 224, 15, 38, 250, 232, 250, 0, 32, 7, 228, 22,
+			9, 244, 2, 23, 255, 230, 20, 17, 255, 249, 243, 37, 42, 244, 226, 0, 25, 5, 245, 12, 12, 242, 15, 41, 228, 203, 64, 67, 199, 241,
+			34, 10, 22, 238, 231, 33, 13, 250, 243, 235, 40, 21, 193, 10, 46, 244, 242, 253, 24, 40, 251, 232, 244, 35, 50, 223, 212, 37, 47, 229,
+			232, 14, 252, 39, 22, 231, 0, 48, 2, 226, 27, 35, 233, 2, 24, 12, 1, 209, 37, 53, 221, 246, 27, 10, 27, 253, 252, 15, 250, 2,
+			6, 5, 50, 247, 212, 26, 37, 1, 239, 244, 44, 30, 236, 7, 247, 30, 34, 228, 242, 4, 45, 0, 197, 22, 59, 255, 233, 254, 1, 23,
+			24, 240, 237, 47, 20, 242, 236, 32, 21, 237, 35, 4, 209, 13, 62, 3, 229, 15, 253, 10, 20, 235, 2, 39, 224, 255, 38, 243, 8, 244,
+			227, 73, 17, 203, 11, 38, 243, 6, 2, 255, 35, 246, 10, 246, 242, 61, 235, 206, 61, 254, 232, 39, 248, 246, 42, 13, 226, 253, 37, 13,
+			5, 9, 237, 24, 47, 227, 237, 51, 19, 232, 18, 7, 238, 27, 17, 235, 8, 14, 228, 21, 11, 236, 37, 2, 243, 12, 9, 8, 27, 0,
+			231, 3, 22, 253, 229, 38, 1, 221, 31, 13, 251, 8, 248, 17, 255, 250, 32, 5, 14, 30, 232, 246, 50, 0, 241, 23, 230, 28, 24, 208,
+			32, 55, 217, 214, 74, 45, 182, 1, 59, 19, 246, 233, 25, 4, 6, 7, 214, 40, 29, 241, 252, 0, 16, 21, 16, 218, 14, 61, 242, 245,
+			7, 0, 43, 12, 235, 10, 3, 6, 30, 240, 245, 49, 243, 219, 16, 66, 11, 175, 2, 101, 238, 236, 10, 212, 50, 100, 166, 173, 111, 43,
+			204, 232, 10, 50, 1, 225, 11, 20, 4, 254, 243, 8, 35, 235, 220, 17, 22, 241, 242, 34, 6, 243, 6, 248, 243, 44, 0, 230, 6, 15,
+			238, 0, 9, 0, 35, 235, 234, 51, 249, 218, 23, 11, 7, 250, 223, 24, 33, 7, 228, 230, 58, 27, 201, 15, 25, 248, 31, 27, 218, 212,
+			78, 56, 189, 200, 68, 66, 221, 212, 253, 34, 62, 218, 221, 32, 13, 6, 7, 7, 8, 14, 251, 6, 23, 30, 210, 250, 62, 19, 230, 227,
+			29, 29, 252, 245, 60, 246, 173, 65, 92, 206, 232, 54, 17, 230, 36, 27, 194, 14, 52, 208, 250, 50, 244, 197, 38, 59, 212, 253, 12, 7,
+			5, 249, 239, 28, 10, 0, 227, 0, 70, 241, 226, 27, 21, 12, 225, 241, 27, 18, 3, 226, 7, 33, 223, 1, 34, 11, 7, 224, 14, 56,
+			248, 220, 33, 10, 247, 247, 247, 42, 228, 208, 44, 51, 239, 237, 245, 22, 56, 202, 245, 54, 241, 1, 2, 245, 43, 251, 220, 18, 29, 246,
+			232, 33, 31, 236, 233, 6, 57, 5, 221, 250, 0, 32, 22, 200, 35, 54, 217, 10, 2, 233, 60, 35, 211, 0, 27, 26, 253, 228, 0, 35,
+			36, 254, 208, 4, 81, 223, 228, 58, 252, 236, 29, 231, 16, 50, 212, 245, 17, 33, 30, 191, 245, 72, 20, 237, 240, 243, 43, 27, 252, 3,
+			252, 249, 18, 48, 250, 247, 32, 252, 232, 42, 11, 210, 39, 53, 250, 196, 8, 57, 250, 243, 34, 242, 254, 45, 230, 242, 3, 30, 28, 239,
+			232, 248, 41, 15, 235, 31, 233, 233, 48, 3, 234, 2, 13, 20, 14, 254, 10, 235, 247, 40, 246, 28, 241, 224, 41, 18, 254, 224, 6, 39,
+			17, 244, 222, 0, 47, 12, 223, 11, 33, 246, 255, 0, 243, 30, 32, 235, 219, 35, 12, 241, 38, 253, 224, 30, 34, 237, 223, 25, 30, 252,
+			2, 247, 27, 252, 240, 45, 247, 237, 7, 17, 16, 250, 222, 17, 69, 230, 224, 37, 7, 53, 247, 198, 56, 34, 215, 25, 10, 238, 42, 11,
+			238, 22, 239, 31, 29, 223, 12, 1, 17, 6, 240, 39, 225, 238, 76, 244, 216, 6, 33, 32, 239, 241, 46, 227, 20, 52, 174, 4, 61, 246,
+			12, 249, 1, 56, 233, 234, 38, 239, 12, 56, 221, 215, 33, 17, 252, 7, 2, 9, 6, 233, 251, 44, 21, 222, 219, 35, 42, 215, 255, 7,
+			6, 40, 0, 188, 15, 76, 245, 193, 29, 25, 23, 8, 182, 44, 68, 240, 236, 240, 53, 10, 225, 18, 13, 11, 247, 16, 19, 2, 239, 204,
+			71, 69, 188, 229, 30, 35, 0, 2, 14, 236, 15, 32, 228, 249, 49, 3, 218, 5, 31, 2, 0, 11, 23, 237, 4, 46, 204, 233, 66, 250,
+			217, 22, 41, 2, 225, 27, 47, 234, 252, 10, 16, 32, 207, 1, 42, 242, 20, 254, 219, 33, 33, 214, 18, 53, 242, 10, 6, 234, 30, 19,
+			235, 9, 42, 242, 224, 32, 0, 243, 16, 251, 11, 23, 244, 253, 40, 252, 250, 35, 247, 246, 16, 251, 23, 249, 239, 13, 0, 0, 150, 0,
+			4, 0, 1, 0, 224, 0, 248, 2, 140, 5, 60, 10, 20, 13, 175, 14, 117, 27, 50, 43, 29, 57, 48, 41, 35, 29, 12, 3, 196, 162,
+			200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 224, 0, 248, 2, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 60, 67, 36, 71, 61, 52, 44, 37,
+			15, 4, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 248, 2, 120, 5, 40, 10, 20, 13, 175, 14, 117, 27, 40, 55, 33, 64,
+			55, 40, 36, 33, 14, 4, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 208, 0, 224, 2, 100, 5, 236, 9, 1, 13, 155, 14, 105, 27,
+			0, 33, 26, 52, 37, 27, 24, 24, 11, 3, 192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 240, 0, 128, 3, 160, 5,
+			150, 10, 164, 13, 45, 15, 195, 27, 45, 45, 31, 64, 57, 40, 30, 20, 9, 4, 235, 162, 134, 132, 120, 120, 247, 170, 165, 44, 65, 70,
+			130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0,
+			128, 3, 160, 5, 150, 10, 164, 13, 45, 15, 195, 27, 50, 82, 42, 87, 77, 54, 41, 27, 12, 5, 235, 162, 134, 132, 120, 120, 247, 170,
+			165, 44, 65, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 240, 0, 128, 3, 160, 5, 150, 10, 164, 13, 45, 15, 195, 27, 80, 67, 37, 78, 69, 48, 37, 24, 11, 5, 235, 162, 134, 132,
+			120, 120, 247, 170, 165, 44, 65, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 240, 0, 128, 3, 160, 5, 150, 10, 164, 13, 45, 15, 195, 27, 0, 37, 28, 58, 52, 36, 27, 18, 8, 3,
+			235, 162, 134, 132, 120, 120, 247, 170, 165, 44, 65, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 5, 0, 1, 0, 240, 0, 200, 2, 224, 6, 176, 9, 112, 13, 10, 15, 96, 27, 44, 46,
+			34, 65, 59, 56, 38, 23, 6, 8, 165, 135, 240, 120, 120, 120, 195, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0, 208, 2, 224, 6, 116, 9, 112, 13, 60, 15,
+			96, 27, 77, 68, 36, 76, 79, 74, 40, 24, 8, 6, 170, 120, 180, 120, 120, 120, 200, 120, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0, 192, 2, 202, 6, 116, 9,
+			72, 13, 60, 15, 96, 27, 77, 53, 29, 62, 71, 62, 56, 25, 13, 6, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 57,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 240, 0, 160, 2,
+			114, 6, 196, 9, 172, 13, 60, 15, 96, 28, 35, 38, 27, 56, 50, 49, 42, 26, 10, 7, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44,
+			45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			240, 0, 160, 2, 26, 6, 216, 9, 172, 13, 60, 15, 96, 28, 0, 33, 26, 55, 45, 42, 36, 22, 7, 9, 167, 105, 180, 120, 120, 120,
+			242, 135, 150, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 215, 0, 5, 0, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 54, 22, 57, 64, 38, 35, 20,
+			14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 90, 82, 28, 70,
+			78, 46, 43, 24, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26,
+			45, 74, 26, 66, 74, 44, 41, 23, 16, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 153, 0, 176, 1, 56, 3, 216, 9, 194, 11,
+			151, 14, 244, 26, 30, 45, 20, 54, 57, 34, 31, 18, 13, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 153, 0, 176, 1, 56, 3,
+			216, 9, 194, 11, 151, 14, 244, 26, 0, 36, 18, 49, 52, 31, 28, 16, 11, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 185, 0, 4, 0,
+			1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 45, 56, 25, 59, 71, 35, 34, 19, 12, 5, 173, 142, 135, 120,
+			120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 80, 106, 34, 81, 98, 48, 46, 27, 17, 7,
+			173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 60, 95, 33, 77, 93, 46,
+			44, 25, 16, 7, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 0, 51,
+			24, 56, 68, 33, 32, 18, 12, 5, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 172, 0, 64, 1, 228, 2, 96, 9,
+			12, 13, 60, 15, 144, 26, 45, 39, 2, 67, 43, 20, 20, 26, 8, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 172, 0, 64, 1,
+			228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 70, 66, 3, 87, 57, 26, 26, 34, 11, 9, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 60, 59, 3, 83, 54, 25, 25, 32, 10, 9, 177, 117, 100, 120, 120, 120,
+			177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 0, 37, 2, 65, 42, 19, 19, 25, 8, 7, 177, 117,
+			100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 110, 0, 4, 0, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 50, 51, 26, 61,
+			52, 32, 29, 20, 14, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26,
+			60, 78, 32, 75, 64, 39, 36, 25, 18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11,
+			136, 14, 144, 26, 60, 67, 30, 71, 57, 37, 33, 23, 16, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 138, 1, 212, 3,
+			56, 9, 224, 11, 136, 14, 144, 26, 0, 31, 21, 46, 40, 33, 29, 18, 13, 5, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 50, 0, 5, 0,
+			1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 34, 17, 54, 37, 31, 34, 31, 8, 11, 160, 90, 135, 120,
+			120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 50, 59, 22, 71, 47, 41, 45, 41, 11, 15,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 85, 54, 21, 68, 46, 39,
+			43, 39, 10, 14, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 40, 42,
+			19, 60, 41, 35, 38, 35, 9, 12, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14,
+			100, 25, 0, 29, 15, 50, 34, 29, 31, 29, 7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 200, 0, 4, 0, 1, 0, 122, 0, 192, 1,
+			240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 50, 49, 28, 59, 69, 41, 43, 30, 17, 6, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 70, 71, 34, 71, 83, 49, 52, 37, 20, 8, 170, 133, 135, 122, 124, 128,
+			197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 64, 32, 68, 79, 47, 49, 35, 19, 7, 170, 133,
+			135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 121, 0, 207, 1, 240, 5, 96, 9, 220, 12, 220, 14, 95, 27, 0, 39, 26, 53, 62, 37, 39, 27,
+			15, 5, 170, 136, 135, 122, 123, 126, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 235, 0, 79, 3, 103, 5, 206, 9, 184, 12, 181, 14, 193, 27,
+			45, 62, 28, 63, 72, 40, 41, 26, 9, 5, 233, 132, 198, 126, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 235, 0, 79, 3, 103, 5, 206, 9, 184, 12,
+			181, 14, 193, 27, 60, 108, 37, 83, 94, 54, 54, 35, 13, 6, 233, 132, 198, 126, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 220, 0, 42, 3, 252, 4,
+			36, 9, 128, 12, 41, 14, 224, 27, 41, 66, 32, 59, 75, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 211, 0,
+			97, 2, 24, 4, 39, 9, 164, 12, 137, 14, 93, 27, 40, 64, 23, 64, 64, 33, 41, 32, 13, 7, 181, 134, 172, 120, 120, 120, 255, 120,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 201, 0, 152, 1, 52, 3, 43, 9, 201, 12, 233, 14, 217, 26, 60, 51, 15, 65, 51, 24, 29, 31, 12, 7, 195, 149, 134, 120,
+			120, 120, 141, 120, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 176, 0, 104, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 31, 8, 55, 37, 20, 20, 26, 11, 7,
+			177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 240, 0, 5, 0, 1, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14, 104, 28, 45, 29,
+			21, 46, 46, 49, 37, 28, 9, 6, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14,
+			104, 28, 50, 84, 36, 79, 78, 83, 63, 48, 15, 11, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 198, 0, 192, 1, 44, 7, 195, 9,
+			213, 12, 91, 14, 62, 28, 75, 71, 31, 76, 61, 74, 57, 44, 14, 10, 183, 109, 149, 120, 120, 120, 185, 107, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 178, 0, 71, 1,
+			179, 3, 63, 9, 9, 13, 48, 15, 166, 26, 70, 42, 4, 71, 37, 23, 22, 30, 12, 7, 178, 124, 103, 120, 120, 120, 185, 107, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			178, 0, 71, 1, 179, 3, 63, 9, 9, 13, 48, 15, 166, 26, 0, 30, 3, 60, 31, 19, 18, 25, 10, 6, 178, 124, 103, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 255, 0, 6, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 45, 6, 66, 59, 59, 60, 29,
+			14, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 40, 65, 9, 78,
+			70, 70, 71, 34, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 24, 1, 172, 8, 240, 10, 32, 13, 0, 15, 160, 26,
+			50, 64, 9, 78, 64, 70, 71, 34, 16, 8, 167, 105, 130, 120, 120, 120, 167, 90, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 158, 0, 48, 1, 168, 7, 140, 10, 240, 12,
+			232, 14, 194, 26, 80, 50, 12, 70, 44, 58, 57, 29, 15, 7, 166, 109, 158, 120, 120, 120, 167, 90, 158, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 72, 1, 16, 4,
+			36, 9, 224, 11, 136, 14, 244, 26, 40, 29, 19, 45, 31, 26, 24, 16, 12, 6, 162, 127, 175, 120, 120, 120, 162, 127, 190, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0,
+			72, 1, 189, 3, 92, 8, 204, 11, 141, 14, 88, 27, 0, 30, 21, 52, 36, 20, 14, 11, 8, 7, 155, 105, 97, 120, 120, 120, 110, 105,
+			97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			215, 0, 5, 0, 1, 0, 232, 0, 144, 3, 40, 5, 180, 10, 212, 13, 100, 15, 102, 27, 45, 57, 32, 62, 59, 39, 37, 22, 9, 3,
+			255, 170, 163, 145, 120, 120, 255, 174, 173, 44, 60, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 232, 0, 144, 3, 40, 5, 180, 10, 212, 13, 100, 15, 102, 27, 50, 99, 42, 82, 78, 52,
+			49, 29, 13, 4, 255, 170, 163, 145, 120, 120, 255, 174, 173, 44, 60, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 225, 0, 72, 3, 138, 5, 220, 10, 212, 13, 80, 15, 120, 27, 60, 66,
+			39, 73, 57, 49, 46, 28, 12, 5, 247, 162, 178, 142, 120, 120, 255, 174, 190, 44, 55, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 104, 1, 152, 8, 4, 11, 172, 13, 60, 15,
+			32, 28, 60, 30, 30, 47, 48, 44, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 104, 1, 152, 8, 4, 11,
+			112, 13, 20, 15, 32, 28, 0, 26, 27, 43, 44, 40, 37, 29, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 245, 0, 5, 0, 1, 0,
+			200, 0, 208, 1, 188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 45, 29, 21, 47, 46, 50, 38, 29, 8, 6, 185, 107, 127, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 200, 0, 208, 1, 188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 70, 85, 36, 79, 79, 85, 65, 49, 15, 11, 185, 107,
+			127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 196, 0, 200, 1, 210, 7, 234, 9, 8, 13, 76, 14, 119, 28, 60, 72, 33, 73, 72, 78, 59, 45,
+			13, 10, 183, 105, 134, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 88, 1, 172, 8, 140, 10, 152, 13, 166, 14, 32, 28, 70, 45, 33, 56,
+			50, 60, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 72, 1, 232, 8, 160, 10, 92, 13, 10, 15, 32, 28,
+			0, 24, 18, 44, 44, 40, 37, 29, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 6, 0, 1, 0, 56, 1, 168, 2, 8, 7,
+			136, 9, 32, 13, 141, 14, 32, 29, 34, 43, 31, 54, 66, 53, 40, 30, 10, 6, 255, 172, 180, 120, 120, 120, 105, 172, 150, 44, 45, 70,
+			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 56, 1,
+			168, 2, 8, 7, 136, 9, 32, 13, 141, 14, 32, 29, 20, 75, 42, 72, 88, 70, 53, 40, 14, 8, 255, 172, 180, 120, 120, 120, 105, 172,
+			150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 56, 1, 168, 2, 8, 7, 136, 9, 32, 13, 141, 14, 32, 29, 46, 45, 32, 56, 68, 54, 41, 31, 10, 6, 255, 172, 180, 120,
+			120, 120, 105, 172, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 240, 0, 78, 2, 67, 7, 176, 9, 32, 13, 116, 14, 32, 28, 94, 49, 29, 58, 68, 60, 49, 40, 12, 6,
+			184, 135, 168, 120, 120, 120, 169, 138, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 5, 0, 156, 0, 99, 1, 141, 8, 140, 10, 112, 13, 0, 15, 32, 28, 40, 34, 29, 50, 45, 54,
+			41, 29, 9, 7, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 112, 13, 10, 15, 32, 28, 0, 30,
+			30, 47, 45, 43, 40, 31, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 144, 0, 213, 1, 96, 3, 136, 9,
+			254, 11, 157, 14, 216, 26, 24, 59, 25, 66, 64, 38, 35, 20, 15, 7, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 144, 0, 213, 1,
+			96, 3, 136, 9, 254, 11, 157, 14, 216, 26, 55, 83, 30, 79, 76, 45, 41, 24, 17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			216, 0, 224, 1, 72, 3, 96, 9, 244, 11, 35, 15, 224, 27, 65, 84, 34, 78, 94, 48, 55, 28, 16, 7, 170, 120, 90, 120, 120, 120,
+			170, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 5, 0, 184, 0, 209, 1, 106, 5, 132, 8, 48, 12, 191, 14, 64, 27, 25, 50, 37, 69, 40, 60, 39, 22, 15, 7, 167, 100,
+			152, 120, 120, 120, 137, 115, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 208, 0, 149, 1, 246, 6, 152, 8, 128, 12, 191, 14, 64, 27, 48, 46, 32, 58, 36, 60, 35, 23,
+			14, 7, 155, 105, 150, 120, 120, 120, 125, 150, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 199, 7, 136, 9, 228, 12, 191, 14, 64, 27, 30, 33, 24, 51,
+			34, 29, 39, 25, 16, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 248, 7, 136, 9, 72, 13, 191, 14, 64, 27,
+			0, 30, 22, 48, 32, 28, 37, 24, 15, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 250, 0, 5, 0, 1, 0, 175, 0, 65, 1, 197, 3,
+			73, 9, 19, 13, 53, 15, 164, 26, 45, 37, 3, 65, 33, 20, 20, 27, 11, 6, 177, 123, 107, 120, 120, 120, 177, 125, 117, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 175, 0,
+			65, 1, 197, 3, 73, 9, 19, 13, 53, 15, 164, 26, 80, 75, 5, 94, 48, 29, 28, 39, 15, 9, 177, 123, 107, 120, 120, 120, 177, 125,
+			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 173, 0, 70, 1, 126, 4, 196, 9, 38, 13, 32, 15, 221, 26, 80, 56, 8, 79, 36, 30, 28, 34, 13, 8, 175, 118, 150, 120,
+			120, 120, 177, 125, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 158, 0, 80, 1, 12, 8, 130, 10, 86, 13, 13, 15, 255, 27, 45, 31, 15, 53, 30, 37, 37, 31, 9, 8,
+			168, 109, 155, 120, 120, 120, 177, 109, 152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 72, 1, 112, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 18, 55, 33, 36,
+			37, 29, 8, 7, 167, 105, 155, 120, 120, 120, 122, 105, 140, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 70, 0, 3, 0, 5, 0, 124, 0, 72, 1, 170, 2, 20, 10, 8, 12, 10, 15,
+			32, 27, 40, 22, 14, 46, 42, 20, 18, 13, 9, 3, 141, 97, 120, 120, 120, 120, 60, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 124, 0, 72, 1, 170, 2, 20, 10,
+			8, 12, 10, 15, 32, 27, 30, 35, 18, 58, 52, 26, 23, 16, 12, 4, 141, 97, 120, 120, 120, 120, 60, 97, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 189, 1,
+			134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 0, 72, 32, 68, 70, 45, 36, 28, 20, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 81, 2,
+			31, 0, 5, 251, 3, 14, 16, 10, 2, 0, 251, 4, 5, 238, 6, 31, 245, 248, 21, 249, 255, 20, 1, 2, 248, 237, 9, 252, 240, 21,
+			12, 254, 3, 231, 222, 231, 223, 229, 207, 194, 231, 228, 219, 250, 253, 2, 10, 249, 12, 24, 6, 23, 19, 16, 54, 30, 0, 41, 49, 22,
+			14, 5, 11, 23, 22, 18, 7, 12, 22, 7, 4, 13, 9, 4, 251, 255, 0, 238, 239, 229, 222, 17, 255, 189, 238, 253, 202, 244, 3, 212,
+			230, 1, 8, 7, 238, 1, 35, 14, 5, 12, 6, 0, 246, 9, 18, 249, 26, 22, 209, 0, 46, 252, 6, 15, 229, 15, 49, 245, 217, 248,
+			12, 2, 241, 240, 238, 244, 10, 1, 223, 229, 9, 7, 236, 250, 248, 214, 0, 24, 232, 18, 64, 252, 249, 46, 31, 29, 53, 54, 44, 42,
+			58, 43, 34, 91, 58, 225, 23, 62, 1, 6, 247, 164, 185, 34, 74, 0, 178, 181, 177, 157, 154, 132, 186, 250, 166, 136, 222, 211, 184, 224,
+			239, 243, 232, 224, 2, 12, 22, 52, 54, 76, 50, 233, 52, 125, 41, 37, 77, 19, 46, 107, 41, 15, 77, 72, 32, 34, 16, 238, 21, 60,
+			2, 234, 22, 240, 188, 246, 25, 224, 189, 214, 236, 220, 203, 214, 237, 246, 215, 182, 223, 254, 206, 210, 8, 250, 232, 1, 253, 0, 35, 30,
+			13, 7, 4, 23, 29, 12, 9, 3, 28, 55, 248, 228, 53, 44, 235, 247, 18, 30, 0, 213, 19, 51, 219, 216, 12, 248, 240, 242, 238, 16,
+			11, 238, 3, 10, 252, 249, 0, 21, 250, 223, 45, 63, 238, 237, 12, 20, 41, 11, 243, 17, 253, 226, 251, 255, 255, 0, 238, 226, 220, 3,
+			45, 230, 204, 23, 0, 234, 40, 12, 248, 44, 1, 218, 11, 11, 247, 8, 31, 38, 238, 215, 15, 232, 185, 0, 4, 241, 49, 5, 190, 20,
+			57, 236, 241, 28, 249, 228, 8, 245, 204, 29, 81, 233, 208, 36, 11, 225, 7, 3, 246, 26, 5, 220, 253, 15, 236, 245, 28, 11, 242, 1,
+			253, 232, 9, 32, 248, 255, 47, 5, 227, 34, 25, 223, 27, 56, 239, 245, 24, 246, 0, 41, 15, 240, 14, 41, 246, 204, 252, 17, 244, 252,
+			238, 219, 24, 33, 214, 223, 9, 232, 220, 11, 15, 240, 244, 242, 232, 15, 31, 245, 252, 35, 18, 232, 223, 247, 4, 6, 33, 24, 251, 20,
+			250, 208, 40, 69, 243, 12, 26, 211, 249, 46, 249, 233, 14, 30, 12, 230, 222, 229, 235, 34, 39, 216, 225, 20, 238, 232, 41, 27, 210, 223,
+			25, 6, 223, 2, 19, 242, 7, 27, 233, 239, 31, 250, 230, 36, 28, 231, 8, 40, 4, 253, 10, 252, 0, 41, 50, 246, 212, 12, 15, 204,
+			240, 32, 231, 238, 18, 211, 230, 54, 0, 216, 21, 12, 227, 237, 251, 2, 0, 9, 35, 251, 224, 27, 18, 237, 22, 7, 221, 12, 18, 229,
+			3, 40, 5, 231, 18, 44, 225, 218, 67, 25, 169, 224, 23, 0, 37, 19, 201, 6, 63, 231, 213, 46, 30, 223, 1, 15, 212, 238, 53, 16,
+			216, 250, 13, 238, 252, 26, 247, 237, 26, 4, 224, 16, 24, 228, 1, 36, 239, 226, 12, 16, 11, 13, 241, 249, 42, 27, 232, 236, 4, 14,
+			18, 3, 246, 2, 18, 255, 222, 248, 29, 244, 219, 0, 250, 251, 29, 240, 206, 13, 34, 252, 241, 246, 250, 252, 8, 0, 0, 0, 45, 0,
+			3, 0, 5, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 45, 5, 8, 15, 6, 4, 2, 2, 0, 0, 200, 212,
+			187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 1, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 14, 14, 24, 10, 7, 3, 3,
+			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 14, 14, 24,
+			10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 24, 0, 3, 0, 5, 0, 136, 0, 200, 0, 64, 6, 40, 10, 232, 13,
+			24, 16, 124, 21, 25, 15, 14, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 57, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 136, 0, 200, 0, 64, 6,
+			40, 10, 232, 13, 24, 16, 124, 21, 0, 15, 14, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50,
+			85, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0,
+			200, 0, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 15, 14, 25, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
+			187, 44, 30, 50, 85, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			45, 0, 3, 0, 5, 0, 116, 0, 232, 0, 164, 6, 176, 9, 152, 13, 60, 15, 124, 21, 45, 2, 11, 6, 4, 2, 2, 2, 0, 0,
+			200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 7, 17, 10, 7, 14,
+			3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 7,
+			17, 10, 7, 3, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 24, 0, 3, 0, 5, 0, 136, 0, 216, 1, 64, 6, 196, 9,
+			128, 12, 100, 15, 124, 21, 25, 14, 3, 36, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 136, 0, 216, 1,
+			64, 6, 196, 9, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			136, 0, 216, 1, 64, 6, 196, 9, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175,
+			200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 185, 3, 16, 0, 255, 254, 255, 0, 0, 2, 3, 4, 4, 4, 3, 3, 3, 1, 1, 1, 1, 0, 0, 255, 253, 251, 252, 253,
+			254, 253, 254, 255, 255, 1, 4, 4, 6, 4, 5, 3, 3, 5, 4, 2, 0, 1, 0, 255, 255, 253, 252, 250, 251, 249, 251, 252, 255, 0,
+			2, 3, 5, 3, 5, 8, 12, 12, 13, 15, 16, 14, 17, 233, 133, 161, 0, 56, 75, 57, 15, 3, 245, 228, 211, 211, 248, 30, 57, 51,
+			22, 255, 233, 218, 213, 237, 5, 23, 25, 25, 18, 1, 240, 222, 226, 240, 2, 18, 31, 27, 12, 250, 250, 245, 243, 248, 254, 4, 9, 8,
+			14, 8, 255, 240, 241, 250, 0, 2, 8, 10, 5, 3, 0, 254, 251, 247, 247, 0, 6, 10, 11, 5, 1, 254, 247, 255, 1, 0, 2, 0,
+			1, 4, 0, 254, 248, 250, 253, 254, 7, 13, 9, 6, 1, 251, 249, 248, 250, 253, 3, 8, 14, 11, 4, 251, 247, 248, 245, 250, 1, 7,
+			10, 13, 5, 1, 250, 244, 249, 253, 0, 9, 14, 14, 5, 0, 238, 246, 249, 246, 250, 4, 16, 16, 7, 7, 4, 252, 249, 243, 242, 250,
+			1, 8, 12, 8, 4, 0, 246, 0, 254, 4, 16, 20, 3, 223, 7, 7, 253, 0, 235, 234, 1, 2, 17, 13, 1, 0, 254, 253, 0, 6,
+			20, 21, 11, 5, 0, 243, 226, 224, 233, 253, 13, 20, 20, 13, 2, 246, 249, 252, 0, 8, 7, 15, 13, 254, 254, 244, 237, 245, 251, 9,
+			15, 10, 14, 2, 245, 250, 246, 250, 2, 3, 6, 5, 0, 254, 251, 252, 254, 4, 15, 14, 8, 252, 254, 251, 248, 251, 252, 2, 5, 0,
+			2, 249, 253, 0, 255, 0, 1, 9, 19, 8, 3, 245, 243, 247, 251, 5, 6, 15, 9, 250, 253, 3, 241, 244, 249, 11, 1, 251, 24, 8,
+			240, 4, 4, 5, 14, 251, 1, 18, 237, 0, 0, 244, 247, 251, 251, 8, 6, 238, 250, 1, 8, 16, 8, 253, 2, 22, 12, 15, 0, 250,
+			12, 26, 12, 184, 158, 200, 25, 50, 34, 29, 6, 12, 2, 0, 252, 243, 255, 14, 30, 20, 251, 218, 219, 246, 251, 16, 21, 20, 253, 0,
+			4, 242, 223, 232, 7, 26, 27, 5, 8, 7, 248, 237, 243, 14, 21, 13, 6, 248, 247, 236, 246, 255, 15, 11, 11, 10, 255, 233, 193, 224,
+			12, 33, 31, 31, 28, 7, 8, 255, 2, 222, 207, 253, 22, 29, 2, 255, 245, 234, 243, 0, 10, 251, 253, 9, 33, 23, 252, 244, 246, 0,
+			2, 5, 12, 5, 246, 243, 252, 254, 0, 1, 0, 254, 255, 2, 4, 7, 253, 249, 2, 9, 9, 4, 255, 255, 251, 254, 3, 7, 2, 250,
+			250, 2, 2, 247, 251, 3, 3, 1, 4, 2, 4, 0, 0, 3, 2, 0, 0, 1, 0, 250, 254, 0, 7, 2, 252, 1, 3, 1, 252, 252,
+			0, 1, 5, 7, 8, 1, 254, 248, 251, 255, 1, 4, 3, 2, 3, 2, 0, 252, 251, 252, 1, 3, 4, 0, 4, 0, 2, 252, 254, 0,
+			2, 1, 0, 2, 0, 1, 253, 250, 7, 2, 254, 3, 253, 251, 2, 4, 0, 13, 2, 253, 251, 247, 255, 8, 1, 251, 0, 4, 4, 7,
+			254, 0, 0, 254, 249, 254, 0, 3, 14, 8, 252, 253, 253, 246, 251, 252, 255, 11, 16, 8, 0, 244, 252, 0, 3, 4, 4, 4, 255, 251,
+			252, 1, 0, 0, 252, 254, 3, 5, 6, 4, 255, 248, 248, 7, 2, 255, 255, 12, 10, 4, 254, 245, 248, 252, 0, 0, 7, 4, 0, 0,
+			253, 2, 0, 253, 255, 0, 3, 2, 2, 6, 7, 254, 253, 255, 248, 250, 7, 9, 2, 1, 0, 4, 5, 253, 244, 246, 255, 1, 9, 13,
+			0, 255, 255, 0, 254, 250, 0, 7, 6, 2, 0, 1, 1, 254, 246, 245, 2, 15, 11, 255, 249, 249, 5, 3, 255, 254, 253, 0, 8, 2,
+			5, 1, 251, 255, 0, 1, 5, 1, 252, 252, 0, 3, 0, 2, 8, 0, 253, 0, 255, 2, 253, 255, 0, 0, 0, 1, 2, 10, 0, 251,
+			255, 4, 7, 3, 249, 246, 250, 2, 11, 9, 253, 246, 255, 8, 6, 1, 253, 253, 3, 254, 2, 0, 254, 252, 2, 7, 8, 1, 249, 253,
+			0, 0, 0, 3, 6, 0, 254, 255, 1, 1, 0, 254, 250, 254, 5, 10, 9, 0, 246, 252, 2, 5, 5, 255, 255, 0, 251, 255, 5, 255,
+			0, 3, 2, 4, 254, 252, 0, 0, 0, 3, 2, 5, 0, 251, 0, 253, 0, 0, 0, 3, 3, 5, 4, 0, 253, 252, 250, 0, 7, 3,
+			2, 0, 254, 0, 255, 253, 253, 255, 3, 3, 5, 5, 0, 254, 253, 251, 3, 9, 7, 0, 253, 252, 251, 251, 253, 254, 2, 8, 9, 4,
+			2, 254, 252, 254, 255, 2, 5, 5, 0, 255, 250, 253, 2, 2, 1, 1, 0, 3, 1, 0, 253, 251, 254, 1, 5, 5, 0, 249, 254, 3,
+			5, 4, 3, 1, 254, 254, 255, 0, 0, 0, 0, 6, 2, 254, 253, 254, 253, 0, 2, 5, 7, 0, 255, 254, 253, 0, 0, 3, 7, 4,
+			251, 249, 254, 3, 6, 3, 2, 0, 254, 0, 254, 252, 252, 255, 1, 5, 8, 6, 2, 0, 253, 251, 253, 254, 3, 6, 5, 4, 0, 251,
+			253, 255, 252, 0, 1, 2, 5, 2, 1, 0, 254, 0, 0, 2, 0, 254, 0, 0, 0, 255, 5, 5, 2, 0, 253, 0, 0, 254, 254, 0,
+			0, 0, 0, 0, 3, 0, 5, 0, 128, 0, 64, 1, 196, 4, 244, 6, 148, 12, 20, 15, 225, 25, 20, 24, 6, 51, 24, 18, 0, 9,
+			3, 6, 105, 155, 167, 142, 180, 175, 105, 155, 167, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 136, 0, 208, 1, 80, 5, 228, 7, 108, 12, 216, 14, 225, 25, 30, 67, 30, 90,
+			45, 30, 21, 15, 3, 9, 105, 125, 167, 142, 150, 175, 105, 125, 167, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 240, 1, 80, 5, 12, 8, 108, 12, 56, 14, 225, 25,
+			0, 70, 30, 84, 51, 33, 18, 18, 3, 9, 105, 170, 167, 157, 150, 175, 105, 170, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0, 5, 0, 228, 0, 80, 1, 136, 4,
+			164, 6, 168, 12, 236, 14, 200, 25, 20, 31, 18, 39, 27, 15, 0, 6, 6, 6, 150, 252, 157, 160, 150, 175, 150, 252, 157, 44, 45, 70,
+			130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 224, 0,
+			32, 2, 0, 5, 68, 7, 128, 12, 76, 14, 200, 25, 30, 77, 15, 87, 66, 36, 15, 18, 6, 6, 150, 167, 157, 160, 150, 175, 150, 167,
+			157, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 232, 0, 168, 2, 0, 5, 252, 8, 128, 12, 36, 14, 200, 25, 0, 56, 45, 60, 60, 27, 27, 21, 3, 6, 150, 167, 207, 255,
+			182, 175, 150, 167, 207, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 0, 0, 4, 0, 5, 0, 232, 0, 136, 1, 196, 4, 164, 6, 184, 12, 220, 15, 124, 21, 20, 31, 30, 36, 24, 15,
+			0, 3, 0, 0, 180, 152, 180, 150, 250, 175, 180, 152, 180, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 0, 1, 248, 1, 160, 5, 52, 8, 184, 12, 200, 15, 124, 21, 20, 61,
+			27, 69, 36, 24, 9, 12, 3, 3, 197, 152, 217, 210, 250, 175, 197, 152, 217, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 0, 1, 72, 2, 4, 6, 132, 8, 184, 12, 90, 14,
+			124, 21, 24, 80, 30, 84, 54, 39, 24, 15, 3, 3, 197, 152, 217, 210, 250, 175, 197, 152, 217, 44, 45, 70, 130, 56, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 120, 2, 121, 6, 64, 9,
+			184, 12, 90, 14, 124, 21, 0, 61, 30, 69, 66, 45, 42, 27, 3, 3, 252, 152, 157, 210, 250, 175, 252, 152, 157, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 3, 0, 5, 0,
+			208, 0, 136, 1, 176, 4, 164, 6, 80, 12, 185, 15, 169, 26, 20, 30, 27, 42, 21, 12, 0, 3, 0, 6, 150, 147, 172, 160, 150, 175,
+			150, 147, 172, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 5, 0, 208, 0, 192, 1, 180, 5, 52, 8, 80, 12, 185, 15, 169, 26, 30, 39, 27, 51, 30, 21, 15, 12, 0, 6, 150, 185,
+			152, 160, 150, 175, 150, 185, 152, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 208, 0, 240, 1, 224, 6, 16, 9, 148, 12, 76, 14, 88, 27, 0, 58, 27, 75, 33, 33, 30, 24,
+			6, 6, 150, 142, 170, 160, 150, 175, 150, 142, 170, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0, 5, 0, 200, 0, 136, 1, 76, 4, 164, 6, 212, 12, 14, 15, 150, 25,
+			19, 27, 39, 27, 18, 12, 0, 3, 6, 3, 150, 155, 195, 137, 255, 252, 150, 155, 195, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 200, 0, 204, 1, 176, 4, 168, 7, 212, 12,
+			14, 15, 150, 25, 30, 71, 39, 72, 51, 21, 15, 12, 6, 6, 150, 155, 195, 137, 255, 252, 150, 155, 195, 44, 45, 70, 130, 56, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 80, 2, 252, 3,
+			76, 9, 88, 12, 196, 14, 150, 25, 0, 78, 40, 78, 52, 23, 20, 20, 5, 5, 150, 155, 162, 185, 217, 210, 150, 155, 162, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0,
+			5, 0, 128, 0, 64, 1, 196, 4, 164, 6, 148, 12, 20, 15, 225, 25, 20, 24, 6, 51, 24, 18, 0, 9, 3, 6, 105, 155, 167, 142,
+			180, 175, 105, 155, 167, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 5, 0, 136, 0, 208, 1, 80, 5, 228, 7, 108, 12, 216, 14, 225, 25, 30, 67, 30, 90, 45, 30, 21, 15, 3, 9,
+			105, 125, 167, 142, 150, 175, 105, 125, 167, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 240, 1, 80, 5, 12, 8, 108, 12, 56, 14, 225, 25, 0, 70, 30, 84, 51, 33,
+			18, 18, 3, 9, 105, 170, 167, 157, 150, 175, 105, 170, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 139, 0, 4, 0, 1, 0, 128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14,
+			96, 27, 50, 59, 34, 66, 80, 45, 47, 36, 16, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 128, 0, 40, 2, 161, 5, 96, 9,
+			188, 12, 116, 14, 96, 27, 50, 81, 40, 76, 93, 52, 55, 42, 15, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 40, 2,
+			161, 5, 96, 9, 188, 12, 116, 14, 96, 27, 40, 69, 37, 71, 86, 48, 51, 39, 14, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14, 96, 27, 0, 46, 31, 58, 70, 39, 35, 32, 16, 9, 167, 150, 135, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 0, 0, 3, 0, 1, 0, 196, 0, 229, 1, 255, 3, 0, 10, 28, 12, 116, 14, 160, 26, 53, 62, 35, 71, 73, 28, 34, 20,
+			9, 8, 162, 120, 132, 120, 120, 120, 162, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0, 208, 0, 229, 1, 123, 3, 220, 10, 204, 11, 141, 14, 0, 26, 75, 64, 38, 81,
+			60, 33, 35, 16, 11, 8, 162, 105, 87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 194, 1, 24, 3, 164, 11, 68, 12, 241, 14, 0, 26,
+			0, 27, 28, 46, 28, 31, 28, 16, 11, 8, 162, 135, 87, 120, 120, 120, 162, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 151, 0, 4, 0, 1, 0, 32, 1, 88, 3, 40, 5,
+			140, 10, 112, 13, 191, 14, 32, 28, 46, 50, 30, 67, 55, 40, 30, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75,
+			130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 32, 1,
+			88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 40, 84, 40, 87, 72, 52, 39, 24, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170,
+			165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 82, 39, 86, 71, 52, 38, 24, 11, 5, 217, 155, 105, 120,
+			120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 50, 30, 67, 55, 40, 30, 19, 9, 4,
+			217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 40,
+			30, 58, 58, 36, 29, 23, 13, 0, 180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14,
+			160, 27, 60, 78, 42, 80, 80, 51, 40, 33, 18, 0, 180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9,
+			248, 12, 141, 14, 160, 27, 40, 55, 35, 67, 67, 43, 33, 27, 15, 0, 180, 150, 172, 120, 120, 120, 200, 120, 167, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 186, 0, 146, 2,
+			128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 0, 33, 30, 51, 51, 33, 28, 23, 12, 0, 180, 150, 177, 120, 120, 120, 200, 120, 172, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 200, 0,
+			4, 0, 1, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 45, 39, 28, 52, 57, 51, 36, 22, 7, 5, 193, 135,
+			180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 85, 83, 41, 76, 83, 75, 53, 33,
+			11, 7, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28, 70, 67, 37, 68,
+			75, 67, 47, 29, 10, 6, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 248, 0, 134, 2, 244, 6, 196, 9, 52, 13, 196, 14, 64, 28,
+			0, 31, 25, 46, 50, 45, 32, 20, 6, 4, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 100, 0, 4, 0, 1, 0, 192, 0, 144, 1, 168, 7,
+			40, 10, 92, 13, 120, 15, 96, 25, 50, 51, 30, 72, 58, 50, 42, 30, 12, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 192, 0,
+			152, 1, 148, 7, 40, 10, 92, 13, 120, 15, 96, 25, 60, 92, 41, 98, 79, 68, 57, 41, 17, 7, 160, 90, 120, 120, 120, 120, 130, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 192, 0, 152, 1, 148, 7, 40, 10, 92, 13, 120, 15, 96, 25, 40, 74, 37, 88, 71, 61, 51, 37, 15, 6, 160, 90, 120, 120,
+			120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 192, 0, 152, 1, 148, 7, 40, 10, 92, 13, 120, 15, 96, 25, 0, 43, 28, 67, 54, 46, 39, 28, 11, 5,
+			160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 149, 0, 4, 0, 1, 0, 176, 0, 152, 1, 128, 7, 0, 10, 92, 13, 20, 15, 96, 25, 50, 53,
+			26, 83, 45, 45, 42, 25, 14, 7, 150, 105, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 192, 0, 152, 1, 128, 7, 20, 10, 92, 13, 120, 15,
+			96, 25, 60, 98, 38, 106, 57, 67, 67, 39, 16, 7, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0, 160, 1, 108, 7, 20, 10,
+			92, 13, 120, 15, 96, 25, 40, 73, 35, 90, 49, 57, 57, 33, 13, 7, 160, 97, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 160, 1,
+			108, 7, 20, 10, 92, 13, 120, 15, 96, 25, 0, 50, 31, 75, 42, 47, 47, 27, 10, 8, 160, 105, 120, 120, 120, 120, 130, 60, 120, 44,
+			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0,
+			4, 0, 1, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 45, 44, 25, 67, 44, 47, 45, 28, 11, 5, 160, 91,
+			120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 70, 88, 36, 95, 63, 66, 64, 39,
+			16, 7, 160, 91, 120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25, 60, 70, 32, 85,
+			56, 59, 58, 35, 14, 6, 160, 91, 120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 170, 0, 120, 1, 178, 7, 25, 10, 37, 13, 55, 15, 96, 25,
+			0, 35, 22, 60, 39, 42, 41, 25, 10, 4, 160, 91, 120, 131, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 232, 0, 218, 2, 222, 3,
+			60, 10, 224, 11, 222, 13, 160, 28, 50, 64, 34, 59, 74, 34, 35, 24, 9, 7, 230, 150, 120, 120, 120, 120, 185, 105, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 232, 0,
+			158, 2, 178, 3, 60, 10, 224, 11, 222, 13, 32, 28, 60, 103, 27, 76, 97, 40, 40, 26, 14, 6, 182, 150, 120, 120, 120, 120, 182, 105,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 232, 0, 158, 2, 178, 3, 60, 10, 224, 11, 222, 13, 32, 28, 40, 102, 27, 76, 97, 39, 40, 26, 14, 6, 182, 150, 120, 120,
+			120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 228, 0, 118, 2, 134, 3, 140, 10, 224, 11, 66, 14, 32, 28, 0, 56, 31, 52, 75, 41, 39, 25, 13, 9,
+			177, 150, 120, 120, 120, 120, 177, 75, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 4, 0, 1, 0, 216, 0, 142, 2, 250, 4, 26, 10, 32, 13, 20, 15, 210, 27, 45, 45,
+			30, 55, 66, 39, 38, 24, 13, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 216, 0, 142, 2, 250, 4, 26, 10, 12, 13, 20, 15,
+			210, 27, 80, 86, 39, 78, 90, 51, 50, 31, 18, 7, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 142, 2, 250, 4, 26, 10,
+			32, 13, 20, 15, 210, 27, 60, 75, 37, 73, 84, 47, 47, 29, 16, 6, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 216, 0, 142, 2,
+			250, 4, 26, 10, 32, 13, 20, 15, 210, 27, 0, 39, 28, 51, 61, 36, 36, 22, 12, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 140, 0,
+			4, 0, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 50, 57, 28, 61, 63, 40, 32, 25, 18, 7, 162, 135,
+			150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 50, 83, 38, 71, 75, 52, 42, 33,
+			24, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26, 40, 69, 35, 65,
+			68, 47, 39, 30, 22, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 189, 1, 134, 3, 60, 10, 88, 12, 141, 14, 128, 26,
+			0, 47, 26, 56, 57, 37, 29, 23, 16, 7, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 244, 0, 77, 3, 87, 4,
+			160, 10, 148, 12, 41, 14, 96, 27, 50, 59, 26, 60, 76, 28, 19, 17, 5, 7, 225, 195, 120, 120, 120, 120, 165, 105, 120, 44, 45, 70,
+			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 244, 0,
+			7, 3, 43, 4, 240, 10, 148, 12, 41, 14, 96, 27, 45, 107, 29, 67, 105, 48, 41, 41, 13, 6, 200, 165, 135, 120, 120, 120, 200, 120,
+			135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 0, 1, 27, 3, 255, 3, 64, 11, 228, 12, 41, 14, 224, 27, 59, 101, 33, 69, 92, 41, 45, 45, 11, 6, 200, 135, 150, 120,
+			120, 120, 200, 75, 210, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 228, 0, 7, 3, 10, 4, 240, 10, 52, 13, 41, 14, 224, 27, 58, 94, 32, 72, 86, 48, 50, 47, 11, 6,
+			200, 135, 150, 120, 120, 120, 200, 90, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 228, 0, 243, 2, 255, 3, 160, 10, 148, 12, 41, 14, 224, 27, 38, 63, 32, 63, 82, 35,
+			38, 36, 13, 7, 167, 135, 120, 120, 120, 120, 167, 75, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 164, 0, 27, 3, 98, 4, 20, 10, 148, 12, 41, 14, 224, 27, 0, 39,
+			23, 59, 58, 28, 24, 24, 7, 7, 167, 120, 120, 120, 120, 120, 227, 105, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 140, 0, 244, 1, 172, 5, 36, 9,
+			248, 12, 41, 14, 32, 27, 45, 48, 30, 63, 56, 56, 40, 40, 15, 8, 167, 135, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 140, 0, 224, 1,
+			128, 5, 16, 9, 148, 12, 41, 14, 32, 27, 48, 69, 26, 68, 82, 75, 61, 50, 25, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			172, 0, 224, 1, 128, 5, 16, 9, 168, 12, 41, 14, 160, 27, 41, 75, 33, 70, 90, 74, 60, 53, 17, 8, 170, 120, 150, 120, 120, 120,
+			170, 120, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 204, 0, 249, 1, 139, 5, 16, 9, 168, 12, 41, 14, 160, 27, 78, 53, 34, 68, 67, 54, 45, 35, 15, 8, 170, 120,
+			150, 120, 120, 120, 140, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 204, 0, 33, 2, 139, 5, 16, 9, 168, 12, 141, 14, 160, 27, 0, 35, 31, 52, 54, 52, 38, 30,
+			11, 8, 170, 135, 150, 120, 120, 120, 140, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 76, 0, 4, 0, 45, 0, 40, 0, 112, 1, 68, 3, 36, 9, 28, 12, 216, 14, 32, 28,
+			0, 45, 19, 77, 28, 16, 16, 12, 8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 37, 0, 40, 0, 112, 1, 68, 3, 36, 9, 28, 12,
+			216, 14, 32, 28, 40, 45, 19, 77, 28, 16, 16, 12, 8, 0, 120, 105, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 37, 0, 72, 0, 104, 1, 153, 4,
+			36, 9, 148, 12, 166, 14, 192, 27, 36, 46, 16, 80, 33, 22, 26, 17, 13, 0, 120, 90, 120, 120, 120, 120, 120, 90, 105, 44, 45, 70,
+			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 40, 0,
+			79, 1, 221, 7, 96, 9, 208, 12, 116, 14, 192, 27, 0, 90, 9, 86, 74, 89, 97, 58, 13, 0, 120, 120, 120, 120, 120, 120, 120, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			0, 0, 5, 0, 33, 0, 152, 0, 48, 1, 174, 8, 200, 10, 92, 13, 135, 15, 160, 26, 52, 58, 8, 76, 67, 65, 53, 30, 14, 8,
+			180, 120, 120, 120, 120, 120, 180, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 40, 1, 172, 8, 4, 11, 92, 13, 135, 15, 160, 26, 75, 69, 8, 83, 73, 74,
+			75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 39, 1, 229, 8, 4, 11, 12, 13, 216, 14, 64, 26, 40, 43,
+			8, 60, 60, 63, 63, 34, 11, 8, 167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 125, 0, 0, 1, 56, 9, 4, 11, 20, 13, 0, 15,
+			64, 26, 40, 33, 8, 52, 52, 53, 54, 29, 11, 8, 167, 99, 114, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 84, 0, 216, 0, 96, 9, 4, 11,
+			32, 13, 60, 15, 64, 26, 0, 20, 8, 40, 41, 39, 40, 23, 10, 8, 167, 90, 105, 120, 120, 120, 167, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0,
+			152, 0, 209, 1, 112, 3, 80, 10, 104, 11, 141, 14, 192, 27, 43, 48, 27, 57, 61, 29, 29, 16, 12, 6, 162, 135, 165, 120, 120, 120,
+			117, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 168, 0, 209, 1, 68, 3, 80, 10, 104, 11, 141, 14, 32, 27, 93, 92, 29, 72, 80, 48, 44, 26, 16, 6, 165, 135,
+			150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 209, 1, 13, 3, 120, 10, 104, 11, 141, 14, 160, 27, 42, 77, 32, 74, 65, 49, 43, 25,
+			18, 7, 167, 135, 120, 120, 120, 120, 122, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 13, 2, 57, 3, 120, 10, 104, 11, 141, 14, 160, 27, 77, 39, 27, 46,
+			51, 38, 36, 14, 10, 7, 167, 135, 135, 120, 120, 120, 137, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 232, 0, 18, 2, 233, 3, 60, 10, 8, 12, 141, 14, 160, 27,
+			0, 26, 30, 41, 48, 23, 20, 17, 8, 7, 167, 120, 135, 120, 120, 120, 137, 105, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6,
+			212, 8, 148, 12, 41, 14, 64, 26, 42, 48, 17, 72, 53, 40, 40, 37, 11, 0, 120, 150, 135, 120, 120, 120, 60, 135, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0,
+			128, 1, 0, 5, 232, 8, 48, 12, 136, 14, 192, 25, 40, 67, 19, 79, 82, 64, 53, 45, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 184, 0, 152, 1, 232, 3, 96, 9, 28, 12, 236, 14, 128, 26, 50, 62, 26, 66, 68, 45, 37, 28, 21, 6, 162, 135, 150, 120,
+			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 84, 0, 88, 1, 212, 3, 196, 9, 148, 12, 196, 14, 192, 25, 67, 56, 16, 83, 38, 36, 30, 29, 13, 0,
+			120, 145, 135, 120, 120, 120, 60, 100, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 27, 16, 57, 35, 17,
+			20, 20, 10, 0, 120, 135, 135, 120, 120, 120, 60, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6, 212, 8, 148, 12, 41, 14,
+			64, 26, 42, 43, 17, 65, 54, 40, 34, 31, 11, 7, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0, 104, 1, 26, 6, 212, 8,
+			148, 12, 116, 14, 192, 25, 40, 71, 19, 81, 83, 74, 54, 46, 18, 7, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 88, 0, 104, 1,
+			48, 6, 172, 8, 148, 12, 116, 14, 192, 25, 50, 73, 19, 91, 65, 65, 53, 46, 20, 7, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			84, 0, 64, 1, 106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 67, 30, 11, 58, 41, 36, 31, 23, 13, 7, 165, 135, 135, 120, 120, 120,
+			105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 28, 16, 54, 35, 17, 20, 20, 9, 7, 165, 135,
+			135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 236, 0, 82, 3, 84, 5, 116, 9, 88, 12, 116, 14, 224, 27, 50, 57, 28, 58,
+			75, 41, 43, 27, 10, 8, 250, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 236, 0, 62, 3, 84, 5, 136, 9, 88, 12, 116, 14, 224, 27,
+			66, 104, 30, 81, 98, 53, 57, 36, 12, 6, 225, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 220, 0, 42, 3, 252, 4, 36, 9, 128, 12,
+			41, 14, 224, 27, 41, 69, 27, 59, 81, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 56, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 0, 1, 173, 2, 87, 4,
+			16, 9, 48, 12, 41, 14, 128, 27, 40, 60, 28, 49, 77, 34, 51, 36, 15, 6, 237, 207, 192, 120, 120, 120, 141, 120, 147, 44, 45, 70,
+			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 0, 1,
+			234, 1, 189, 3, 16, 9, 8, 12, 41, 14, 96, 27, 40, 62, 36, 68, 59, 21, 35, 23, 15, 8, 205, 90, 180, 120, 120, 120, 145, 120,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 172, 0, 232, 1, 132, 3, 192, 8, 168, 12, 60, 15, 96, 27, 0, 29, 25, 50, 42, 16, 18, 13, 11, 9, 200, 90, 120, 120,
+			120, 120, 200, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182,
+			0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 232, 0, 38, 2, 117, 5, 116, 9, 108, 12, 10, 15, 96, 28, 46, 56, 40, 60, 61, 44,
+			32, 36, 20, 8, 167, 120, 165, 120, 120, 120, 227, 150, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 118, 2, 73, 5, 36, 9, 28, 12, 166, 14, 96, 28, 25, 107,
+			47, 85, 109, 75, 55, 45, 19, 8, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0, 118, 2, 73, 5, 212, 8, 28, 12, 141, 14,
+			96, 28, 43, 79, 36, 73, 95, 72, 54, 42, 18, 7, 170, 120, 165, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 8, 1, 18, 2, 117, 5, 132, 8,
+			204, 11, 166, 14, 96, 28, 48, 53, 24, 70, 70, 36, 32, 26, 15, 8, 165, 120, 135, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 5, 0, 192, 0, 174, 1,
+			197, 4, 172, 8, 204, 11, 141, 14, 224, 28, 46, 40, 28, 64, 39, 27, 18, 16, 8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			176, 0, 134, 1, 189, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 24, 58, 38, 22, 15, 12, 9, 8, 152, 120, 75, 120, 120, 120,
+			107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250,
+			0, 0, 226, 0, 7, 0, 5, 0, 44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 51, 47, 28, 58, 63, 37, 40, 27,
+			4, 4, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 70, 100, 41, 85,
+			92, 54, 58, 39, 9, 7, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 44, 1, 120, 3, 216, 4, 200, 10, 72, 13, 191, 14, 64, 27,
+			15, 92, 39, 80, 87, 51, 55, 37, 8, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 60, 70, 130, 55, 0, 0, 0, 0, 45, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 33, 0, 20, 1, 80, 3, 29, 5, 216, 9, 72, 13,
+			136, 14, 64, 27, 23, 59, 29, 68, 71, 53, 51, 35, 8, 6, 167, 172, 120, 120, 120, 120, 167, 172, 165, 44, 45, 70, 130, 55, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 216, 0, 16, 3, 4, 6,
+			196, 9, 52, 13, 176, 14, 64, 27, 33, 43, 32, 66, 56, 47, 43, 39, 8, 7, 167, 150, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0,
+			232, 1, 188, 7, 40, 10, 92, 13, 120, 15, 64, 27, 34, 35, 37, 54, 51, 51, 39, 38, 13, 9, 167, 90, 180, 120, 120, 120, 137, 75,
+			150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			1, 0, 196, 0, 159, 1, 252, 7, 40, 10, 112, 13, 120, 15, 220, 27, 0, 37, 39, 55, 48, 48, 39, 32, 11, 10, 167, 90, 114, 120,
+			120, 120, 122, 75, 90, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182,
+			76, 250, 23, 8, 0, 0, 7, 0, 1, 0, 16, 1, 53, 2, 12, 3, 160, 10, 244, 11, 35, 15, 96, 28, 24, 63, 33, 62, 70, 43,
+			37, 17, 11, 7, 167, 120, 90, 120, 120, 120, 167, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 0, 1, 33, 2, 12, 3, 160, 10, 244, 11, 35, 15, 224, 27, 49, 112,
+			43, 87, 92, 61, 53, 26, 15, 6, 165, 120, 90, 120, 120, 120, 165, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 33, 2, 72, 3, 40, 10, 244, 11, 35, 15,
+			224, 27, 65, 92, 39, 81, 98, 49, 57, 29, 17, 7, 170, 120, 90, 120, 120, 120, 170, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 37, 0, 184, 0, 209, 1, 106, 5, 172, 8,
+			108, 12, 216, 14, 64, 27, 22, 48, 36, 68, 39, 59, 38, 22, 15, 7, 167, 100, 152, 120, 120, 120, 137, 115, 167, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 208, 0, 149, 1,
+			246, 6, 172, 8, 188, 12, 236, 14, 64, 27, 48, 43, 32, 56, 36, 59, 35, 22, 13, 7, 155, 105, 150, 120, 120, 120, 125, 150, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			160, 0, 54, 1, 199, 7, 136, 9, 112, 13, 60, 15, 64, 27, 26, 35, 25, 53, 36, 30, 41, 27, 16, 7, 155, 105, 135, 120, 120, 120,
+			125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250,
+			0, 0, 1, 0, 160, 0, 54, 1, 210, 7, 196, 9, 92, 13, 60, 15, 64, 28, 0, 24, 27, 45, 27, 20, 32, 21, 12, 7, 157, 105,
+			135, 120, 120, 120, 82, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244,
+			194, 182, 76, 250, 23, 8, 0, 0, 6, 0, 1, 0, 96, 0, 104, 1, 92, 8, 80, 10, 232, 13, 60, 15, 160, 27, 42, 48, 10, 66,
+			51, 58, 42, 33, 10, 8, 155, 165, 150, 120, 120, 120, 155, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 104, 0, 112, 1, 108, 8, 160, 10, 72, 13, 60, 15, 32, 27,
+			70, 59, 19, 64, 74, 76, 66, 36, 14, 8, 150, 120, 150, 120, 120, 120, 150, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 104, 0, 119, 1, 52, 8, 160, 10, 72, 13,
+			60, 15, 32, 27, 40, 52, 18, 61, 70, 72, 63, 34, 14, 7, 150, 120, 150, 120, 120, 120, 150, 120, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 239, 1, 111, 7,
+			196, 9, 112, 13, 60, 15, 64, 27, 44, 52, 30, 75, 59, 58, 44, 30, 14, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 5, 0, 152, 0,
+			16, 2, 124, 6, 156, 9, 32, 13, 85, 15, 64, 28, 35, 27, 23, 45, 46, 48, 38, 21, 7, 8, 167, 150, 120, 120, 120, 120, 167, 105,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 200, 0, 16, 2, 59, 6, 156, 9, 112, 13, 29, 16, 192, 28, 0, 25, 26, 43, 39, 39, 31, 17, 5, 9, 167, 150, 120, 120,
+			120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182,
+			0, 250, 0, 0, 190, 0, 5, 0, 1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 40, 30, 52, 60, 40,
+			33, 28, 16, 6, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 71,
+			40, 70, 80, 54, 44, 38, 22, 8, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 16, 2, 220, 4, 106, 9, 146, 12, 144, 14,
+			87, 27, 40, 57, 35, 64, 74, 48, 41, 35, 19, 8, 167, 148, 140, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 123, 0, 16, 2, 48, 5, 56, 9,
+			128, 12, 132, 14, 91, 27, 50, 42, 29, 55, 65, 39, 37, 30, 16, 7, 167, 149, 138, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 119, 0, 12, 2,
+			121, 5, 252, 8, 108, 12, 122, 14, 94, 27, 0, 35, 25, 50, 61, 38, 35, 27, 14, 7, 167, 149, 136, 120, 120, 120, 197, 135, 120, 44,
+			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
+			6, 0, 1, 0, 140, 0, 174, 1, 152, 3, 36, 9, 164, 11, 16, 14, 96, 25, 48, 61, 31, 70, 69, 41, 27, 15, 12, 7, 167, 120,
+			120, 120, 120, 120, 167, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 140, 0, 174, 1, 192, 3, 36, 9, 164, 11, 16, 14, 96, 25, 36, 75, 35, 82, 66, 44, 35, 22,
+			16, 6, 165, 120, 120, 120, 120, 120, 165, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 140, 0, 154, 1, 156, 3, 36, 9, 164, 11, 16, 14, 96, 25, 49, 76, 34, 76,
+			81, 39, 33, 21, 20, 6, 167, 120, 120, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 228, 0, 239, 1, 255, 3, 252, 8, 184, 11, 16, 14, 192, 25,
+			49, 60, 31, 62, 76, 40, 30, 20, 18, 7, 167, 111, 135, 120, 120, 120, 191, 129, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 186, 0, 14, 2, 137, 4, 252, 8, 8, 12,
+			41, 14, 112, 26, 47, 35, 26, 49, 62, 35, 28, 19, 13, 6, 167, 115, 131, 120, 120, 120, 191, 129, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 144, 0, 46, 2, 20, 5,
+			252, 8, 88, 12, 66, 14, 32, 27, 0, 29, 25, 45, 57, 36, 31, 23, 11, 7, 167, 120, 127, 120, 120, 120, 255, 105, 90, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 7, 0,
+			5, 0, 44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 45, 47, 28, 58, 63, 37, 40, 27, 6, 4, 167, 165, 165, 120,
+			120, 120, 167, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 44, 1, 92, 3, 216, 4, 4, 11, 72, 13, 191, 14, 64, 27, 40, 107, 42, 88, 95, 55, 60, 40, 9, 7,
+			167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 80, 1, 132, 3, 161, 5, 36, 9, 112, 13, 241, 14, 64, 27, 31, 71, 36, 76, 95, 55,
+			45, 28, 10, 7, 240, 165, 120, 120, 120, 120, 195, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 32, 1, 248, 2, 191, 6, 36, 9, 192, 13, 241, 14, 64, 27, 25, 41,
+			32, 47, 53, 53, 50, 47, 11, 7, 255, 180, 180, 120, 120, 120, 200, 195, 180, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 224, 0, 224, 1, 45, 7, 136, 9, 112, 13, 241, 14,
+			64, 27, 27, 42, 34, 43, 61, 61, 51, 50, 12, 8, 255, 105, 180, 120, 120, 120, 165, 120, 135, 44, 45, 70, 130, 58, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 224, 0, 8, 2, 23, 7, 176, 9,
+			112, 13, 241, 14, 64, 27, 52, 37, 28, 51, 56, 56, 49, 43, 8, 8, 255, 90, 180, 120, 120, 120, 187, 105, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 208, 0, 128, 2,
+			238, 5, 96, 9, 52, 13, 216, 14, 64, 27, 0, 21, 20, 40, 48, 36, 32, 28, 7, 8, 252, 90, 165, 120, 120, 120, 252, 105, 120, 44,
+			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0,
+			6, 0, 1, 0, 0, 1, 136, 3, 200, 5, 110, 10, 154, 13, 40, 15, 67, 27, 45, 46, 28, 60, 58, 41, 34, 27, 9, 4, 228, 152,
+			186, 132, 120, 120, 255, 174, 173, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 0, 1, 136, 3, 200, 5, 110, 10, 154, 13, 40, 15, 67, 27, 29, 90, 39, 85, 81, 57, 48, 38,
+			12, 5, 228, 152, 186, 132, 120, 120, 255, 174, 173, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 8, 1, 136, 3, 62, 5, 20, 10, 188, 12, 166, 14, 32, 27, 39, 88, 33, 76,
+			89, 68, 56, 46, 13, 6, 185, 180, 165, 120, 120, 120, 245, 135, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 5, 0, 8, 1, 178, 2, 32, 4, 116, 9, 8, 12, 166, 14, 64, 27,
+			42, 90, 37, 64, 99, 52, 43, 35, 14, 7, 185, 135, 150, 120, 120, 120, 194, 105, 111, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 200, 0, 33, 2, 178, 3, 36, 9, 8, 12,
+			216, 14, 160, 27, 84, 49, 27, 58, 75, 37, 32, 23, 12, 8, 177, 120, 120, 120, 120, 120, 147, 105, 105, 44, 45, 70, 130, 57, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 193, 2, 64, 5,
+			16, 9, 128, 12, 241, 14, 32, 28, 0, 28, 28, 44, 60, 36, 32, 26, 8, 8, 185, 150, 120, 120, 120, 120, 155, 150, 105, 44, 45, 70,
+			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 140, 0, 5, 0,
+			1, 0, 192, 0, 32, 2, 60, 5, 156, 9, 92, 13, 52, 18, 0, 28, 45, 54, 25, 63, 72, 40, 34, 17, 14, 6, 170, 165, 135, 120,
+			120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 192, 0, 32, 2, 60, 5, 156, 9, 92, 13, 52, 18, 0, 28, 50, 96, 34, 84, 96, 53, 45, 22, 19, 8,
+			170, 165, 135, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0, 32, 2, 60, 5, 156, 9, 92, 13, 52, 18, 0, 28, 60, 87, 32, 80, 91, 50,
+			43, 21, 18, 7, 170, 165, 135, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 201, 0, 104, 2, 166, 4, 146, 9, 240, 10, 127, 18, 0, 28, 35, 29,
+			25, 49, 38, 30, 24, 8, 11, 4, 170, 165, 136, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 201, 0, 104, 2, 166, 4, 146, 9, 240, 10, 127, 18,
+			0, 28, 0, 28, 24, 48, 38, 30, 23, 8, 10, 4, 170, 165, 136, 120, 120, 120, 170, 180, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 135, 0, 5, 0, 1, 0, 216, 0, 136, 2,
+			156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 45, 70, 34, 68, 76, 43, 39, 30, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			216, 0, 136, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 50, 124, 45, 90, 101, 57, 52, 40, 20, 8, 189, 159, 136, 120, 120, 120,
+			237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 216, 0, 136, 2, 176, 4, 35, 10, 227, 12, 20, 15, 214, 27, 55, 111, 43, 86, 96, 54, 49, 38, 19, 8, 189, 159,
+			136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 35, 33, 30, 51, 34, 32, 27, 6,
+			11, 4, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 0, 28, 25, 48,
+			32, 30, 25, 6, 10, 4, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 190, 0, 5, 0, 1, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12,
+			36, 14, 15, 28, 50, 42, 31, 49, 62, 20, 36, 20, 6, 5, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 0, 1, 80, 2, 232, 3,
+			80, 10, 28, 12, 36, 14, 15, 28, 50, 82, 43, 68, 86, 28, 50, 28, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 0, 1,
+			80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 50, 82, 43, 68, 86, 28, 50, 28, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 40, 59, 36, 58, 73, 24, 42, 24, 7, 6, 186, 151, 122, 120,
+			120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 0, 1, 80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 0, 25, 24, 38, 48, 16, 28, 16, 4, 4,
+			186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 190, 0, 5, 0, 1, 0, 228, 0, 28, 2, 128, 3, 72, 10, 190, 11, 15, 14, 216, 27, 50, 57,
+			28, 61, 69, 28, 35, 19, 9, 5, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 228, 0, 28, 2, 128, 3, 72, 10, 190, 11, 15, 14,
+			216, 27, 50, 90, 35, 76, 87, 35, 44, 24, 11, 6, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 0, 1, 0, 2, 132, 3, 64, 10,
+			216, 11, 234, 13, 15, 28, 50, 74, 39, 57, 91, 24, 46, 25, 8, 7, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 0, 1, 0, 2,
+			132, 3, 64, 10, 216, 11, 234, 13, 15, 28, 40, 59, 35, 51, 81, 22, 42, 22, 7, 6, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			8, 1, 0, 2, 132, 3, 60, 10, 224, 11, 222, 13, 32, 28, 0, 20, 27, 31, 51, 12, 23, 14, 4, 4, 180, 75, 120, 120, 120, 120,
+			85, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 140, 0, 3, 0, 1, 0, 112, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27, 50, 48, 30, 59, 72, 40, 42, 32,
+			16, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27, 90, 78, 39, 75,
+			91, 51, 54, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 16, 2, 220, 5, 76, 9, 188, 12, 116, 14, 96, 27,
+			0, 46, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 139, 0, 3, 0, 1, 0, 112, 0, 244, 1, 132, 5,
+			36, 9, 188, 12, 116, 14, 96, 27, 50, 56, 31, 63, 76, 38, 46, 34, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0,
+			244, 1, 132, 5, 16, 9, 188, 12, 116, 14, 96, 27, 90, 80, 37, 72, 96, 48, 60, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 116, 0, 244, 1, 132, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 48, 30, 58, 70, 31, 44, 32, 16, 9, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 190, 0, 4, 0, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 50, 45, 30, 56, 65, 54,
+			35, 25, 8, 5, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 90, 86,
+			41, 77, 90, 75, 49, 35, 12, 7, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15,
+			176, 28, 50, 78, 39, 73, 85, 71, 46, 33, 11, 7, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9,
+			172, 13, 154, 15, 176, 28, 0, 35, 26, 50, 57, 48, 31, 22, 7, 4, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 57,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0,
+			148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 45, 48, 27, 72, 52, 48, 45, 29, 11, 5, 160, 92, 120, 143, 120, 120,
+			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 70, 97, 39, 102, 74, 68, 64, 41, 16, 8, 160, 92,
+			120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 60, 87, 37, 97, 70, 64, 61, 39,
+			15, 7, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 148, 0, 128, 1, 238, 7, 50, 10, 42, 13, 50, 15, 96, 25, 0, 38, 24, 64,
+			47, 43, 40, 26, 10, 5, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 200, 0, 4, 0, 1, 0, 158, 0, 118, 1, 192, 8, 44, 11, 132, 13,
+			0, 15, 8, 28, 50, 40, 18, 55, 57, 49, 46, 30, 11, 8, 180, 111, 153, 120, 120, 120, 185, 112, 155, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 158, 0, 118, 1, 192, 8,
+			44, 11, 132, 13, 0, 15, 8, 28, 80, 75, 26, 76, 78, 68, 63, 42, 16, 11, 180, 111, 153, 120, 120, 120, 185, 112, 155, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 158, 0,
+			118, 1, 192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 70, 63, 23, 69, 72, 62, 58, 38, 15, 10, 180, 111, 153, 120, 120, 120, 185, 112,
+			155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 158, 0, 118, 1, 192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 0, 29, 16, 47, 48, 42, 39, 26, 10, 6, 180, 111, 153, 120,
+			120, 120, 185, 112, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 216, 0, 118, 2, 152, 3, 67, 10, 194, 11, 10, 14, 224, 27, 45, 50, 21, 50, 63, 30,
+			30, 18, 11, 4, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 216, 0, 118, 2, 152, 3, 67, 10, 194, 11, 10, 14, 224, 27, 80, 131,
+			34, 80, 103, 49, 49, 30, 18, 7, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 104, 2, 172, 3, 67, 10, 194, 11, 10, 14,
+			224, 27, 70, 105, 32, 74, 95, 46, 45, 28, 16, 7, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 216, 0, 104, 2, 172, 3, 67, 10,
+			194, 11, 10, 14, 224, 27, 0, 44, 20, 47, 62, 29, 28, 17, 10, 4, 178, 146, 127, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0,
+			188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 45, 42, 27, 51, 58, 37, 33, 23, 16, 5, 164, 141, 150, 120, 120, 120,
+			162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 70, 87, 39, 74, 84, 53, 47, 33, 24, 7, 164, 141,
+			150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 60, 70, 35, 66, 75, 48, 42, 30,
+			21, 6, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 188, 0, 221, 1, 200, 3, 60, 10, 104, 12, 166, 14, 204, 26, 0, 37, 25, 48,
+			54, 34, 31, 22, 15, 4, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 5, 0, 1, 0, 248, 1, 97, 3, 7, 5, 60, 10, 72, 13,
+			141, 14, 88, 27, 65, 48, 25, 51, 60, 25, 22, 20, 6, 6, 255, 162, 210, 120, 120, 120, 120, 162, 120, 44, 60, 70, 130, 55, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 104, 1, 136, 3, 219, 4,
+			60, 10, 72, 13, 141, 14, 88, 27, 75, 111, 36, 82, 86, 52, 35, 33, 13, 7, 210, 175, 150, 120, 120, 120, 210, 175, 120, 44, 60, 70,
+			130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 104, 1,
+			128, 3, 219, 4, 196, 9, 32, 13, 116, 14, 88, 27, 63, 110, 36, 82, 86, 52, 35, 33, 13, 7, 210, 175, 150, 120, 120, 120, 210, 175,
+			120, 44, 55, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 104, 1, 134, 3, 219, 4, 184, 9, 20, 13, 116, 14, 33, 27, 71, 104, 35, 79, 85, 50, 35, 33, 13, 8, 214, 172, 150, 120,
+			120, 120, 210, 175, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 104, 1, 127, 3, 220, 4, 156, 9, 248, 12, 116, 14, 160, 26, 0, 41, 24, 51, 61, 32, 26, 22, 8, 8,
+			225, 165, 150, 120, 120, 120, 225, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 211, 0, 5, 0, 1, 0, 140, 0, 224, 1, 100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 45, 40,
+			22, 52, 62, 57, 47, 38, 19, 6, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 140, 0, 224, 1, 100, 5, 252, 8, 28, 12, 192, 13,
+			32, 27, 48, 63, 28, 65, 78, 71, 58, 48, 23, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 140, 0, 224, 1, 100, 5, 252, 8,
+			28, 12, 192, 13, 32, 27, 40, 63, 28, 65, 78, 71, 58, 48, 23, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 140, 0, 248, 1,
+			100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 78, 45, 25, 55, 66, 61, 49, 40, 20, 6, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			140, 0, 8, 2, 100, 5, 252, 8, 28, 12, 192, 13, 32, 27, 0, 31, 21, 46, 55, 51, 41, 34, 16, 5, 170, 135, 165, 120, 120, 120,
+			140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 220, 0, 5, 0, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 55, 21, 52, 64, 39, 36, 18,
+			13, 5, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 40, 107, 29, 73,
+			89, 54, 50, 25, 18, 7, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27,
+			90, 103, 34, 73, 85, 51, 41, 24, 18, 7, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 0, 2, 92, 3, 88, 10, 104, 11,
+			141, 14, 32, 27, 45, 59, 26, 58, 60, 39, 31, 18, 13, 5, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 168, 0, 0, 2, 92, 3,
+			88, 10, 104, 11, 141, 14, 32, 27, 0, 27, 18, 40, 40, 23, 20, 12, 9, 3, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0,
+			1, 0, 236, 0, 28, 2, 167, 3, 0, 10, 128, 12, 10, 15, 96, 28, 50, 64, 34, 58, 76, 48, 26, 21, 16, 7, 120, 135, 135, 120,
+			120, 120, 135, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 236, 0, 63, 2, 123, 3, 80, 10, 48, 12, 66, 14, 224, 27, 106, 123, 47, 82, 94, 55, 34, 21, 16, 7,
+			120, 135, 135, 120, 120, 120, 135, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 236, 0, 23, 2, 123, 3, 0, 10, 48, 12, 191, 14, 224, 27, 79, 96, 32, 67, 102, 58,
+			35, 28, 18, 7, 120, 135, 105, 120, 120, 120, 135, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 216, 0, 68, 2, 255, 3, 176, 9, 128, 12, 191, 14, 224, 27, 0, 49,
+			27, 52, 77, 41, 28, 24, 9, 7, 120, 135, 135, 120, 120, 120, 135, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 76, 1, 247, 5, 208, 8,
+			132, 12, 116, 14, 192, 25, 42, 48, 16, 69, 62, 55, 44, 40, 14, 6, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0, 76, 1,
+			247, 5, 208, 8, 132, 12, 116, 14, 192, 25, 40, 76, 20, 87, 78, 69, 55, 50, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			84, 0, 64, 1, 106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 50, 75, 16, 93, 59, 53, 45, 43, 19, 11, 165, 135, 135, 120, 120, 120,
+			105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 84, 0, 64, 1, 106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 67, 39, 12, 67, 43, 38, 32, 31, 14, 8, 165, 135,
+			135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 34, 17, 60, 37, 18, 21, 21,
+			10, 8, 165, 135, 135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 220, 0, 148, 2, 4, 6, 56, 9, 84, 11, 16, 14, 192, 28,
+			34, 47, 34, 53, 70, 53, 36, 48, 13, 8, 120, 165, 150, 120, 120, 120, 165, 210, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 220, 0, 148, 2, 26, 6, 56, 9, 124, 11,
+			116, 14, 192, 28, 60, 82, 42, 76, 91, 74, 45, 57, 24, 8, 120, 165, 150, 120, 120, 120, 165, 120, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 220, 0, 224, 1, 4, 6,
+			232, 8, 68, 12, 191, 14, 192, 28, 54, 54, 36, 55, 79, 57, 35, 30, 16, 7, 120, 120, 120, 120, 120, 120, 165, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 220, 0,
+			164, 1, 120, 4, 152, 8, 88, 12, 141, 14, 64, 28, 45, 56, 44, 77, 54, 30, 24, 26, 15, 9, 120, 120, 120, 120, 120, 120, 60, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 140, 0, 84, 1, 222, 3, 56, 9, 188, 12, 141, 14, 192, 27, 0, 21, 28, 46, 37, 15, 7, 9, 9, 8, 120, 105, 90, 120,
+			120, 120, 60, 120, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 44, 1, 120, 3, 80, 5, 60, 10, 112, 13, 191, 14, 64, 27, 41, 30, 24, 49, 53, 37,
+			31, 23, 3, 4, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 44, 1, 92, 3, 80, 5, 100, 10, 112, 13, 191, 14, 64, 27, 77, 90,
+			41, 86, 93, 58, 59, 40, 5, 7, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 44, 1, 136, 3, 140, 5, 20, 10, 152, 13, 191, 14,
+			64, 27, 33, 80, 40, 82, 89, 55, 56, 38, 5, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0,
+			45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 216, 0, 92, 3, 59, 6, 252, 8,
+			192, 13, 241, 14, 160, 28, 31, 63, 32, 65, 87, 53, 49, 32, 7, 7, 120, 75, 195, 120, 120, 120, 255, 180, 135, 44, 45, 70, 130, 56,
+			0, 0, 0, 0, 43, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 240, 0, 203, 2,
+			224, 6, 176, 9, 112, 13, 10, 15, 96, 27, 53, 48, 32, 63, 65, 62, 36, 22, 5, 7, 165, 135, 240, 120, 120, 120, 195, 105, 165, 44,
+			45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			212, 0, 232, 1, 48, 7, 136, 9, 172, 13, 80, 15, 64, 27, 0, 26, 32, 46, 44, 44, 33, 32, 13, 7, 167, 90, 180, 120, 120, 120,
+			137, 75, 150, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250,
+			0, 0, 0, 0, 5, 0, 1, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 44, 45, 28, 57, 65, 54, 36, 26,
+			9, 5, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 52, 1, 135, 2, 242, 6, 226, 9, 172, 13, 154, 15, 176, 28, 77, 83, 39, 77,
+			88, 73, 49, 35, 12, 7, 255, 142, 180, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0, 136, 2, 224, 6, 116, 9, 72, 13, 60, 15, 96, 27,
+			77, 56, 30, 63, 71, 62, 57, 25, 13, 7, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 178, 0, 103, 2, 84, 6, 76, 9, 2, 13,
+			216, 14, 96, 27, 35, 38, 25, 52, 61, 45, 43, 24, 12, 7, 167, 135, 157, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 163, 0, 81, 2, 17, 6,
+			66, 9, 241, 12, 191, 14, 96, 27, 0, 34, 26, 48, 55, 38, 38, 25, 13, 7, 167, 138, 152, 120, 120, 120, 242, 150, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 40, 0, 7, 0,
+			1, 0, 136, 0, 64, 1, 172, 8, 240, 10, 152, 13, 120, 15, 236, 26, 42, 44, 7, 65, 55, 56, 44, 27, 11, 7, 172, 133, 129, 120,
+			120, 120, 180, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 128, 0, 64, 1, 172, 8, 240, 10, 112, 13, 100, 15, 224, 26, 40, 64, 10, 75, 75, 77, 72, 37, 16, 8,
+			158, 112, 135, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 64, 1, 172, 8, 240, 10, 112, 13, 100, 15, 224, 26, 28, 60, 10, 73, 73, 74,
+			70, 36, 16, 8, 158, 112, 135, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 104, 0, 136, 1, 52, 8, 80, 10, 52, 13, 60, 15, 64, 27, 31, 59,
+			17, 81, 60, 61, 57, 31, 12, 8, 160, 90, 150, 120, 120, 120, 160, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 248, 1, 111, 7, 96, 9, 72, 13, 20, 15,
+			64, 27, 34, 53, 30, 75, 59, 58, 44, 30, 14, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 16, 2, 64, 6, 36, 9,
+			238, 12, 90, 15, 128, 28, 45, 26, 24, 44, 48, 48, 31, 19, 6, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 200, 0, 16, 2,
+			240, 5, 56, 9, 248, 12, 160, 15, 192, 28, 0, 22, 25, 41, 37, 37, 24, 16, 5, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 155, 0,
+			4, 0, 1, 0, 142, 0, 224, 1, 180, 5, 110, 8, 88, 12, 110, 14, 38, 27, 45, 41, 25, 56, 62, 50, 43, 35, 16, 6, 170, 135,
+			161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 142, 0, 224, 1, 180, 5, 110, 8, 88, 12, 110, 14, 38, 27, 60, 51, 28, 62, 69, 56, 48, 40,
+			18, 6, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 142, 0, 212, 1, 164, 5, 240, 7, 72, 12, 146, 14, 38, 27, 50, 46, 28, 59,
+			66, 50, 40, 33, 13, 6, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 142, 0, 208, 1, 160, 5, 208, 7, 68, 12, 156, 14, 38, 27,
+			0, 36, 25, 52, 58, 41, 35, 29, 10, 5, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 140, 0, 3, 0, 1, 0, 112, 0, 240, 1, 220, 5,
+			116, 9, 228, 12, 156, 14, 96, 27, 50, 47, 25, 59, 72, 40, 42, 32, 16, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0,
+			240, 1, 220, 5, 116, 9, 228, 12, 156, 14, 96, 27, 90, 77, 34, 75, 91, 51, 54, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 116, 0, 240, 1, 220, 5, 116, 9, 228, 12, 116, 14, 96, 27, 0, 47, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 135, 0, 3, 0, 1, 0, 152, 0, 72, 2, 120, 5, 134, 9, 195, 12, 165, 14, 141, 27, 45, 49, 32, 59, 72, 43,
+			45, 30, 16, 6, 174, 154, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 72, 2, 120, 5, 134, 9, 195, 12, 165, 14, 141, 27, 90, 77,
+			40, 74, 91, 53, 56, 38, 21, 8, 174, 154, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 80, 2, 120, 5, 134, 9, 195, 12, 165, 14,
+			141, 27, 0, 38, 28, 52, 64, 37, 39, 27, 14, 5, 174, 154, 137, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 180, 0, 5, 0, 1, 0, 55, 1, 158, 2,
+			183, 6, 252, 9, 163, 13, 121, 15, 154, 28, 50, 41, 34, 52, 64, 49, 35, 24, 9, 5, 255, 140, 173, 120, 120, 120, 150, 180, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			55, 1, 158, 2, 183, 6, 252, 9, 163, 13, 121, 15, 154, 28, 40, 76, 46, 70, 86, 66, 47, 33, 12, 7, 255, 140, 173, 120, 120, 120,
+			150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 61, 1, 178, 2, 159, 6, 56, 10, 143, 13, 44, 15, 103, 28, 50, 57, 48, 54, 80, 51, 42, 28, 12, 6, 226, 136,
+			157, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 61, 1, 178, 2, 159, 6, 56, 10, 143, 13, 44, 15, 103, 28, 40, 51, 45, 51, 76, 48, 40, 27,
+			11, 6, 226, 136, 157, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 68, 1, 198, 2, 136, 6, 111, 10, 123, 13, 229, 14, 57, 28, 0, 21, 34, 28,
+			51, 26, 26, 17, 7, 4, 195, 132, 142, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 185, 0, 4, 0, 1, 0, 78, 1, 188, 2, 144, 6, 202, 9, 184, 13,
+			183, 15, 10, 29, 45, 40, 38, 49, 58, 48, 37, 28, 10, 6, 255, 151, 208, 120, 120, 120, 135, 180, 182, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 78, 1, 188, 2, 144, 6,
+			202, 9, 184, 13, 183, 15, 10, 29, 80, 60, 47, 60, 71, 58, 45, 34, 12, 8, 255, 151, 208, 120, 120, 120, 135, 180, 182, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 34, 1,
+			166, 2, 48, 6, 186, 9, 152, 13, 191, 15, 176, 28, 60, 49, 39, 56, 67, 51, 41, 31, 12, 8, 255, 157, 191, 120, 120, 120, 135, 180,
+			182, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 236, 0, 140, 2, 208, 5, 166, 9, 112, 13, 200, 15, 64, 28, 0, 42, 33, 53, 64, 43, 38, 29, 12, 9, 233, 165, 170, 120,
+			120, 120, 135, 165, 175, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 50, 47, 31, 57, 61, 56,
+			43, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 80, 80,
+			40, 74, 79, 72, 56, 41, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 211, 0, 64, 2, 144, 6, 20, 10, 117, 13, 160, 15,
+			149, 28, 40, 57, 36, 62, 68, 56, 46, 34, 12, 7, 208, 142, 158, 120, 120, 120, 189, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 215, 0, 96, 2, 64, 6, 20, 10,
+			123, 13, 160, 15, 73, 28, 0, 40, 32, 56, 58, 44, 39, 29, 11, 6, 228, 153, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 190, 0, 4, 0, 1, 0,
+			168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 50, 41, 32, 62, 49, 47, 44, 32, 14, 6, 161, 98, 126, 120, 120, 120,
+			130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 80, 65, 40, 78, 61, 59, 55, 40, 17, 8, 161, 98,
+			126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 60, 55, 37, 71, 56, 54, 51, 37,
+			16, 7, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 160, 1, 8, 7, 0, 10, 72, 13, 200, 15, 163, 25, 0, 31, 28, 54,
+			42, 41, 38, 28, 12, 5, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 190, 0, 4, 0, 1, 0, 168, 0, 192, 1, 124, 6, 224, 9, 12, 13,
+			60, 15, 230, 25, 50, 42, 29, 59, 53, 50, 47, 34, 15, 6, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 192, 1, 124, 6,
+			224, 9, 12, 13, 60, 15, 230, 25, 80, 69, 38, 76, 69, 65, 61, 44, 19, 8, 163, 119, 133, 120, 120, 120, 130, 119, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0,
+			192, 1, 124, 6, 224, 9, 12, 13, 60, 15, 230, 25, 60, 56, 34, 69, 62, 58, 55, 39, 17, 7, 163, 119, 133, 120, 120, 120, 130, 119,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 168, 0, 192, 1, 124, 6, 224, 9, 12, 13, 60, 15, 230, 25, 0, 32, 26, 52, 47, 44, 41, 30, 13, 5, 163, 119, 133, 120,
+			120, 120, 130, 119, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 126, 0, 112, 1, 52, 8, 100, 10, 47, 13, 60, 15, 96, 25, 45, 40, 25, 65, 47, 43,
+			43, 26, 10, 4, 160, 93, 120, 155, 120, 120, 130, 95, 120, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 126, 0, 112, 1, 52, 8, 100, 10, 47, 13, 60, 15, 96, 25, 70, 66,
+			31, 84, 60, 56, 56, 34, 14, 6, 160, 93, 120, 155, 120, 120, 130, 95, 120, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 126, 0, 88, 1, 98, 8, 140, 10, 41, 13, 45, 15,
+			152, 25, 60, 39, 22, 64, 44, 41, 41, 24, 11, 5, 161, 95, 118, 147, 120, 120, 130, 95, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 126, 0, 88, 1, 98, 8, 140, 10,
+			41, 13, 45, 15, 152, 25, 0, 20, 16, 47, 32, 30, 30, 18, 8, 4, 161, 95, 118, 147, 120, 120, 130, 95, 120, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 4, 0, 1, 0,
+			0, 1, 216, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 45, 43, 29, 54, 65, 39, 35, 32, 10, 5, 175, 147, 147, 120, 120, 120,
+			175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 0, 1, 216, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 80, 84, 41, 76, 90, 54, 48, 44, 14, 7, 175, 147,
+			147, 120, 120, 120, 175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 0, 1, 208, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 60, 66, 36, 67, 80, 48, 43, 39,
+			12, 6, 175, 147, 147, 120, 120, 120, 175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 0, 1, 200, 2, 176, 4, 100, 10, 188, 12, 176, 14, 87, 27, 0, 44, 29, 54,
+			67, 38, 34, 31, 10, 5, 175, 147, 147, 120, 120, 120, 175, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 184, 0, 4, 0, 1, 0, 208, 0, 120, 2, 20, 5, 40, 10, 228, 12,
+			0, 15, 210, 27, 45, 46, 30, 53, 70, 42, 39, 25, 14, 5, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 208, 0, 120, 2, 20, 5,
+			40, 10, 228, 12, 0, 15, 210, 27, 80, 85, 41, 72, 95, 57, 53, 34, 19, 7, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 208, 0,
+			114, 2, 36, 5, 40, 10, 228, 12, 0, 15, 210, 27, 60, 68, 35, 64, 85, 51, 47, 30, 17, 6, 185, 160, 141, 120, 120, 120, 235, 150,
+			118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 208, 0, 104, 2, 60, 5, 40, 10, 228, 12, 0, 15, 210, 27, 0, 39, 26, 49, 65, 39, 36, 23, 13, 5, 185, 160, 141, 120,
+			120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 45, 53, 30, 64, 67, 35,
+			37, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14, 96, 27, 70, 101,
+			41, 88, 92, 48, 52, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 240, 1, 16, 4, 0, 10, 168, 12, 96, 14,
+			96, 27, 60, 82, 37, 79, 82, 43, 46, 39, 20, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 240, 1, 16, 4, 0, 10,
+			168, 12, 96, 14, 96, 27, 0, 46, 28, 59, 62, 32, 35, 29, 15, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 240, 0, 6, 0, 1, 0,
+			250, 0, 216, 2, 176, 4, 40, 10, 188, 12, 92, 14, 87, 27, 45, 47, 29, 54, 70, 40, 36, 33, 9, 5, 167, 147, 147, 120, 120, 120,
+			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 250, 0, 216, 2, 176, 4, 40, 10, 188, 12, 92, 14, 87, 27, 85, 95, 41, 77, 100, 57, 51, 47, 13, 8, 167, 147,
+			147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 250, 0, 200, 2, 176, 4, 196, 9, 128, 12, 92, 14, 87, 27, 50, 66, 35, 65, 84, 48, 43, 39,
+			11, 6, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 80, 2, 236, 4, 128, 7, 164, 11, 232, 13, 96, 27, 35, 40, 26, 60,
+			58, 35, 36, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 116, 0, 8, 2, 236, 4, 108, 7, 164, 11, 232, 13, 96, 27,
+			25, 34, 23, 54, 52, 31, 32, 25, 12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 8, 2, 236, 4, 108, 7, 164, 11,
+			232, 13, 96, 27, 0, 27, 20, 48, 46, 28, 28, 22, 11, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 185, 0, 5, 0, 1, 0, 140, 0,
+			224, 1, 128, 5, 16, 9, 148, 12, 41, 14, 32, 27, 45, 44, 22, 54, 66, 60, 49, 40, 20, 6, 170, 135, 165, 120, 120, 120, 140, 120,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 140, 0, 224, 1, 128, 5, 16, 9, 148, 12, 41, 14, 32, 27, 40, 61, 24, 64, 77, 71, 57, 47, 23, 7, 170, 135, 165, 120,
+			120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 141, 0, 218, 1, 146, 5, 128, 8, 118, 12, 78, 14, 35, 27, 50, 48, 24, 59, 69, 58, 47, 38, 17, 6,
+			170, 135, 163, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 142, 0, 212, 1, 164, 5, 240, 7, 88, 12, 116, 14, 38, 27, 50, 43, 25, 58, 64, 49,
+			39, 33, 12, 6, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 142, 0, 208, 1, 160, 5, 208, 7, 88, 12, 136, 14, 38, 27, 0, 38,
+			24, 54, 60, 42, 36, 30, 10, 6, 170, 135, 161, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 210, 0, 5, 0, 1, 0, 232, 0, 100, 2, 232, 3, 40, 10,
+			224, 11, 222, 13, 32, 28, 40, 51, 23, 55, 71, 34, 35, 23, 12, 5, 182, 127, 125, 120, 120, 120, 182, 127, 125, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 232, 0, 100, 2,
+			232, 3, 40, 10, 224, 11, 222, 13, 32, 28, 50, 93, 31, 75, 97, 47, 47, 31, 17, 7, 182, 127, 125, 120, 120, 120, 182, 127, 125, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			232, 0, 96, 2, 232, 3, 20, 10, 224, 11, 222, 13, 32, 28, 80, 72, 29, 68, 84, 42, 43, 28, 15, 6, 182, 127, 125, 120, 120, 120,
+			182, 127, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 116, 0, 0, 2, 176, 4, 8, 7, 144, 11, 172, 13, 96, 27, 40, 42, 26, 59, 59, 35, 36, 28, 14, 8, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 116, 0, 0, 2, 176, 4, 8, 7, 144, 11, 172, 13, 96, 27, 0, 35, 24, 54, 54, 32, 33, 25,
+			12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 165, 0, 4, 0, 1, 0, 232, 0, 200, 2, 232, 3, 60, 10, 224, 11, 222, 13, 160, 28,
+			45, 58, 33, 56, 73, 34, 35, 23, 9, 8, 230, 150, 120, 120, 120, 120, 185, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 232, 0, 144, 2, 232, 3, 60, 10, 224, 11,
+			222, 13, 32, 28, 80, 94, 29, 78, 98, 44, 45, 29, 16, 7, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 232, 0, 144, 2, 232, 3,
+			60, 10, 224, 11, 222, 13, 32, 28, 40, 75, 28, 73, 83, 42, 42, 28, 15, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 228, 0,
+			118, 2, 192, 3, 140, 10, 224, 11, 66, 14, 32, 28, 0, 45, 29, 49, 70, 38, 37, 23, 12, 9, 177, 150, 120, 120, 120, 120, 177, 75,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			220, 0, 5, 0, 1, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 45, 50, 23, 51, 59, 38, 35, 17, 13, 5,
+			165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 55, 96, 32, 72, 82, 53,
+			48, 24, 18, 7, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 212, 1, 72, 3, 100, 10, 124, 11, 196, 14, 32, 27, 75, 78,
+			29, 64, 74, 48, 44, 22, 16, 6, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 8, 2, 136, 4, 108, 7, 144, 11, 116, 14,
+			96, 27, 45, 35, 24, 54, 54, 32, 33, 25, 12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 116, 0, 8, 2, 136, 4, 108, 7,
+			124, 11, 212, 13, 96, 27, 0, 31, 22, 50, 50, 30, 31, 24, 12, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 185, 0, 4, 0, 1, 0,
+			228, 0, 145, 2, 76, 4, 143, 10, 188, 12, 99, 14, 87, 27, 45, 46, 26, 53, 66, 37, 34, 31, 11, 5, 167, 143, 143, 120, 120, 120,
+			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 228, 0, 145, 2, 76, 4, 143, 10, 188, 12, 99, 14, 87, 27, 60, 89, 36, 74, 92, 52, 48, 43, 15, 7, 167, 143,
+			143, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 228, 0, 145, 2, 96, 4, 143, 10, 188, 12, 99, 14, 87, 27, 80, 77, 34, 70, 87, 49, 45, 40,
+			14, 7, 167, 143, 143, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 228, 0, 145, 2, 96, 4, 143, 10, 188, 12, 99, 14, 87, 27, 0, 44, 25, 53,
+			65, 37, 34, 30, 10, 5, 167, 143, 143, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 96, 1, 180, 5, 212, 8, 148, 12,
+			41, 14, 64, 26, 42, 46, 16, 68, 54, 38, 38, 35, 11, 7, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0, 96, 1, 140, 5,
+			212, 8, 148, 12, 116, 14, 192, 25, 40, 71, 20, 82, 78, 69, 54, 50, 17, 7, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 88, 0,
+			96, 1, 120, 5, 172, 8, 148, 12, 116, 14, 192, 25, 50, 67, 21, 84, 64, 66, 50, 47, 19, 7, 167, 120, 135, 120, 120, 120, 107, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 98, 0, 80, 1, 236, 4, 179, 8, 86, 12, 118, 14, 218, 25, 67, 47, 15, 71, 56, 50, 40, 37, 15, 7, 166, 127, 128, 120,
+			120, 120, 107, 90, 128, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 109, 0, 64, 1, 96, 4, 187, 8, 23, 12, 121, 14, 244, 25, 0, 28, 8, 51, 43, 31, 28, 25, 11, 6,
+			165, 135, 138, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 210, 0, 5, 0, 1, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 45, 46,
+			31, 58, 62, 38, 39, 24, 12, 5, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15,
+			238, 27, 80, 88, 43, 81, 86, 54, 54, 34, 18, 7, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 234, 2, 20, 5, 80, 10,
+			248, 12, 140, 15, 220, 27, 45, 70, 38, 71, 76, 47, 47, 29, 16, 6, 184, 154, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 185, 0, 64, 2,
+			16, 4, 68, 10, 8, 12, 20, 15, 89, 27, 40, 35, 22, 45, 48, 29, 25, 16, 10, 4, 172, 140, 148, 120, 120, 120, 237, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			168, 0, 240, 1, 132, 3, 60, 10, 144, 11, 176, 14, 32, 27, 0, 33, 21, 45, 47, 28, 23, 14, 10, 4, 167, 135, 150, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 45, 0, 5, 0, 1, 0, 169, 0, 37, 2, 92, 4, 76, 9, 72, 13, 64, 16, 98, 27, 45, 34, 28, 49, 54, 38, 33, 24,
+			14, 5, 167, 141, 152, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 169, 0, 37, 2, 92, 4, 76, 9, 72, 13, 64, 16, 98, 27, 80, 60, 37, 64,
+			72, 50, 44, 32, 19, 7, 167, 141, 152, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 160, 0, 8, 2, 212, 3, 36, 9, 32, 13, 64, 16, 71, 27,
+			50, 60, 30, 61, 71, 48, 45, 25, 17, 6, 167, 144, 151, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 178, 0, 162, 1, 77, 3, 116, 9, 7, 13,
+			160, 15, 178, 26, 40, 36, 21, 45, 48, 32, 27, 19, 13, 6, 163, 137, 150, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 128, 1, 32, 3,
+			156, 9, 12, 13, 160, 15, 128, 26, 0, 29, 19, 41, 41, 27, 22, 17, 12, 5, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 205, 0, 6, 0,
+			5, 0, 28, 1, 28, 3, 236, 4, 50, 10, 112, 13, 254, 14, 176, 27, 45, 51, 30, 69, 65, 42, 35, 25, 7, 5, 192, 145, 135, 120,
+			120, 120, 167, 135, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 28, 1, 28, 3, 236, 4, 50, 10, 112, 13, 254, 14, 176, 27, 80, 96, 41, 94, 89, 58, 48, 34, 9, 7,
+			192, 145, 135, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 11, 1, 15, 3, 36, 5, 28, 10, 104, 13, 254, 14, 154, 27, 40, 71, 37, 82, 76, 51,
+			44, 33, 8, 6, 187, 148, 144, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 196, 0, 216, 2, 4, 6, 196, 9, 72, 13, 0, 15, 64, 27, 40, 47,
+			35, 66, 56, 47, 47, 43, 8, 7, 167, 162, 180, 120, 120, 120, 167, 132, 135, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 205, 0, 48, 2, 28, 7, 196, 9, 72, 13, 0, 15,
+			63, 27, 40, 38, 32, 56, 51, 47, 43, 41, 12, 8, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 58, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 205, 0, 48, 2, 28, 7, 196, 9,
+			72, 13, 0, 15, 63, 27, 0, 35, 30, 53, 48, 45, 41, 39, 11, 7, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 58,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 230, 0, 5, 0, 1, 0,
+			0, 1, 24, 2, 8, 7, 236, 9, 104, 13, 15, 15, 224, 28, 45, 30, 25, 47, 53, 44, 37, 27, 9, 6, 216, 138, 159, 120, 120, 120,
+			107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 0, 1, 24, 2, 8, 7, 236, 9, 104, 13, 15, 15, 224, 28, 90, 67, 38, 70, 80, 66, 56, 41, 13, 9, 216, 138,
+			159, 120, 120, 120, 107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 232, 1, 108, 7, 40, 10, 163, 13, 57, 15, 148, 28, 55, 56, 37, 67, 69, 62, 51, 39,
+			12, 9, 197, 114, 149, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 40, 30, 27, 50,
+			48, 46, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28,
+			0, 27, 26, 47, 45, 44, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 165, 0, 5, 0, 1, 0, 179, 0, 40, 2, 172, 3,
+			96, 10, 15, 12, 141, 14, 32, 27, 45, 47, 26, 53, 60, 38, 37, 17, 13, 5, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 179, 0,
+			40, 2, 172, 3, 96, 10, 15, 12, 141, 14, 32, 27, 75, 97, 37, 76, 86, 54, 53, 25, 18, 7, 166, 135, 150, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 179, 0, 27, 2, 0, 4, 91, 10, 35, 12, 144, 14, 18, 27, 50, 68, 33, 68, 75, 49, 48, 24, 16, 7, 165, 134, 149, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 180, 0, 158, 1, 244, 6, 38, 10, 218, 12, 175, 14, 141, 26, 45, 32, 22, 50, 42, 40, 36, 27, 10, 5,
+			161, 128, 142, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 181, 0, 144, 1, 13, 7, 32, 10, 239, 12, 179, 14, 126, 26, 0, 24, 20, 46, 38, 37,
+			34, 26, 9, 4, 160, 127, 142, 120, 120, 120, 130, 87, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 230, 0, 6, 0, 1, 0, 14, 1, 24, 2, 240, 6, 236, 9, 112, 13, 80, 15,
 			186, 28, 50, 42, 28, 57, 61, 55, 44, 32, 10, 7, 211, 132, 156, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 14, 1, 24, 2, 240, 6, 236, 9,
-			112, 13, 80, 15, 186, 28, 70, 67, 35, 72, 77, 70, 55, 40, 13, 8, 211, 132, 156, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 14, 1, 24, 2,
-			240, 6, 196, 9, 112, 13, 80, 15, 186, 28, 40, 53, 31, 64, 69, 61, 48, 35, 11, 7, 211, 132, 156, 120, 120, 120, 107, 131, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0,
-			116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 56, 14, 96, 27, 40, 31, 26, 49, 49, 29, 29, 23, 11, 6, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 5, 0, 116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 252, 13, 96, 27, 35, 28, 25, 47, 47, 27, 28, 21, 10, 6, 167, 150,
-			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 252, 13, 96, 27, 0, 24, 23, 44, 44, 25, 26, 20,
-			10, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 250, 0, 6, 0, 1, 0, 187, 0, 149, 1, 140, 7, 245, 9, 50, 13, 120, 15, 96, 25,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 14, 1, 24, 2, 240, 6, 236, 9,
+			112, 13, 80, 15, 186, 28, 75, 67, 35, 72, 77, 70, 55, 40, 13, 8, 211, 132, 156, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 14, 1, 24, 2,
+			240, 6, 196, 9, 112, 13, 80, 15, 186, 28, 45, 53, 31, 64, 69, 61, 48, 35, 11, 7, 211, 132, 156, 120, 120, 120, 107, 131, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 56, 14, 96, 27, 35, 31, 26, 49, 49, 29, 29, 23, 11, 6, 167, 150, 135, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 252, 13, 96, 27, 25, 28, 25, 47, 47, 27, 28, 21, 10, 6, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 8, 2, 120, 5, 8, 7, 144, 11, 252, 13, 96, 27, 0, 24, 23, 44, 44, 25, 26, 20,
+			10, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66,
+			0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 250, 0, 6, 0, 1, 0, 187, 0, 149, 1, 140, 7, 245, 9, 50, 13, 120, 15, 96, 25,
 			45, 42, 25, 69, 36, 43, 43, 26, 10, 4, 160, 90, 120, 122, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 187, 0, 149, 1, 140, 7, 245, 9, 50, 13,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 187, 0, 149, 1, 140, 7, 245, 9, 50, 13,
 			120, 15, 96, 25, 65, 78, 34, 94, 50, 59, 59, 35, 14, 6, 160, 90, 120, 122, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 187, 0, 149, 1, 140, 7,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 187, 0, 149, 1, 140, 7,
 			196, 9, 50, 13, 120, 15, 96, 25, 45, 58, 30, 82, 43, 44, 47, 30, 12, 5, 160, 90, 120, 145, 120, 120, 130, 95, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 120, 0,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 120, 0,
 			250, 1, 144, 6, 188, 7, 164, 11, 16, 14, 13, 27, 50, 27, 25, 49, 47, 29, 30, 22, 10, 6, 166, 144, 133, 123, 120, 120, 130, 95,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
 			1, 0, 120, 0, 250, 1, 180, 5, 28, 7, 144, 11, 252, 13, 44, 27, 45, 27, 27, 49, 47, 29, 30, 22, 10, 6, 166, 144, 133, 123,
-			120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 120, 0, 250, 1, 180, 5, 28, 7, 144, 11, 252, 13, 44, 27, 0, 24, 25, 46, 44, 28, 28, 21, 10, 5,
-			166, 144, 133, 123, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 220, 0, 5, 0, 1, 0, 116, 0, 200, 1, 56, 4, 96, 9, 168, 12, 96, 14, 96, 27, 45, 43,
+			120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 120, 0, 250, 1, 180, 5, 28, 7, 144, 11, 252, 13, 44, 27, 0, 24, 25, 46, 44, 28, 28, 21, 10, 5,
+			166, 144, 133, 123, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 220, 0, 5, 0, 1, 0, 116, 0, 200, 1, 56, 4, 96, 9, 168, 12, 96, 14, 96, 27, 45, 43,
 			28, 58, 58, 33, 36, 30, 16, 5, 167, 140, 135, 120, 120, 120, 197, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 200, 1, 56, 4, 96, 9, 168, 12, 96, 14,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 200, 1, 56, 4, 96, 9, 168, 12, 96, 14,
 			96, 27, 80, 66, 35, 71, 71, 41, 44, 37, 19, 7, 167, 140, 135, 120, 120, 120, 197, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 208, 1, 56, 4, 46, 9,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 208, 1, 56, 4, 46, 9,
 			140, 12, 98, 14, 96, 27, 55, 59, 33, 68, 68, 39, 42, 35, 18, 7, 167, 141, 135, 120, 120, 120, 197, 110, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 8, 2,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 8, 2,
 			156, 4, 188, 7, 104, 11, 212, 13, 96, 27, 40, 39, 25, 57, 57, 33, 35, 27, 13, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
 			116, 0, 8, 2, 156, 4, 188, 7, 104, 11, 212, 13, 96, 27, 0, 32, 23, 51, 51, 30, 31, 24, 12, 7, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 70, 0, 6, 0, 1, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 45, 54, 29, 64, 70, 37, 40, 32,
-			5, 6, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 50, 83, 36, 79,
-			86, 46, 50, 39, 6, 7, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 208, 2, 136, 5, 176, 9, 36, 14, 180, 15, 117, 27,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 70, 0, 6, 0, 1, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 45, 54, 29, 64, 70, 37, 40, 32,
+			5, 6, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 50, 83, 36, 79,
+			86, 46, 50, 39, 6, 7, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 208, 2, 136, 5, 176, 9, 36, 14, 180, 15, 117, 27,
 			68, 67, 36, 71, 61, 44, 40, 37, 15, 4, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 195, 0, 112, 2, 238, 5, 126, 9, 76, 14,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 195, 0, 112, 2, 238, 5, 126, 9, 76, 14,
 			240, 15, 35, 27, 40, 57, 34, 66, 59, 45, 41, 34, 14, 5, 181, 137, 168, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 160, 0, 72, 2, 220, 5,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 160, 0, 72, 2, 220, 5,
 			96, 9, 16, 14, 44, 16, 199, 27, 25, 38, 30, 53, 56, 42, 36, 23, 14, 5, 171, 161, 165, 121, 122, 125, 171, 137, 172, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 160, 0,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0,
 			72, 2, 220, 5, 96, 9, 16, 14, 44, 16, 199, 27, 0, 32, 28, 49, 52, 39, 33, 22, 13, 5, 171, 161, 165, 121, 122, 125, 171, 137,
-			172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			125, 0, 7, 0, 1, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 45, 54, 29, 64, 70, 37, 40, 32, 4, 5,
-			167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 50, 83, 36, 79, 86, 46,
-			50, 39, 5, 7, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 208, 2, 136, 5, 176, 9, 232, 13, 180, 15, 117, 27, 50, 66,
+			172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			70, 0, 6, 0, 1, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 45, 54, 29, 64, 70, 37, 40, 32, 5, 6,
+			167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0, 224, 2, 196, 4, 140, 10, 232, 13, 160, 15, 64, 27, 50, 83, 36, 79, 86, 46,
+			50, 39, 6, 7, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 208, 2, 136, 5, 176, 9, 36, 14, 180, 15, 117, 27, 68, 66,
 			36, 71, 61, 44, 40, 36, 15, 4, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 165, 0, 16, 2, 84, 6, 36, 9, 232, 13, 44, 16,
-			208, 26, 30, 39, 31, 61, 57, 48, 42, 34, 14, 6, 165, 113, 136, 120, 120, 120, 130, 113, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0, 153, 0, 249, 1, 225, 5, 133, 8,
-			12, 13, 90, 15, 40, 27, 40, 38, 28, 56, 60, 45, 38, 30, 11, 6, 168, 133, 154, 120, 120, 121, 130, 113, 136, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 5, 0, 147, 0, 248, 1,
-			175, 5, 248, 7, 128, 12, 236, 14, 79, 27, 40, 35, 25, 50, 56, 39, 34, 26, 10, 5, 170, 141, 162, 120, 120, 121, 171, 137, 172, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0,
-			147, 0, 248, 1, 175, 5, 248, 7, 128, 12, 236, 14, 79, 27, 0, 30, 23, 46, 52, 37, 31, 24, 9, 5, 170, 141, 162, 120, 120, 121,
-			171, 137, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250,
-			23, 8, 19, 1, 7, 0, 1, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 45, 46, 31, 58, 62, 38, 39, 24,
-			12, 5, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 65, 88, 43, 81,
-			86, 54, 54, 34, 18, 7, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 234, 2, 20, 5, 40, 10, 248, 12, 140, 15, 220, 27,
-			45, 70, 38, 71, 76, 47, 47, 29, 16, 6, 184, 154, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 185, 0, 64, 2, 76, 4, 0, 10, 68, 12,
-			60, 15, 89, 27, 40, 32, 23, 45, 48, 29, 25, 16, 10, 4, 172, 140, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0, 164, 0, 8, 2, 0, 5,
-			10, 9, 48, 12, 216, 14, 64, 27, 40, 30, 21, 45, 50, 32, 28, 20, 10, 4, 171, 137, 155, 120, 120, 120, 237, 165, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 5, 0, 149, 0,
-			225, 1, 112, 5, 47, 8, 62, 12, 174, 14, 46, 27, 40, 28, 20, 43, 48, 32, 28, 22, 8, 4, 170, 135, 159, 120, 120, 120, 237, 165,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			1, 0, 142, 0, 208, 1, 160, 5, 208, 7, 68, 12, 156, 14, 38, 27, 0, 26, 22, 45, 50, 35, 30, 25, 8, 5, 170, 135, 161, 120,
-			120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182,
-			64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 45, 66, 33, 67, 77, 42,
-			51, 25, 15, 6, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 80, 101,
-			41, 84, 95, 52, 63, 31, 18, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15,
-			0, 28, 40, 83, 37, 76, 87, 48, 57, 28, 17, 7, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 204, 0, 100, 2, 216, 4, 60, 10,
-			168, 12, 10, 15, 0, 28, 0, 51, 31, 59, 68, 37, 45, 22, 13, 9, 167, 165, 150, 120, 120, 120, 167, 180, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0,
-			24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 52, 29, 59, 64, 45, 35, 22, 10, 5, 186, 152, 135, 120, 120, 120,
-			192, 155, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 80, 99, 40, 81, 89, 62, 48, 31, 14, 7, 186, 152,
-			135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 70, 89, 38, 77, 84, 59, 45, 29,
-			14, 7, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 24, 1, 8, 3, 176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 0, 47, 28, 58,
-			61, 42, 33, 22, 10, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 160, 0, 4, 0, 1, 0, 215, 0, 6, 2, 128, 7, 236, 9, 251, 12,
-			61, 14, 144, 28, 50, 45, 31, 61, 55, 60, 46, 36, 11, 8, 175, 109, 133, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 215, 0, 6, 2, 128, 7,
-			236, 9, 251, 12, 61, 14, 144, 28, 70, 80, 42, 81, 74, 80, 61, 48, 15, 11, 175, 109, 133, 120, 120, 120, 160, 105, 127, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 202, 0,
-			62, 2, 30, 7, 236, 9, 82, 13, 228, 14, 207, 28, 40, 62, 39, 70, 73, 69, 53, 39, 13, 8, 195, 127, 153, 120, 120, 120, 160, 105,
-			127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 200, 0, 69, 2, 18, 7, 236, 9, 92, 13, 247, 14, 215, 28, 0, 35, 29, 51, 54, 50, 39, 28, 9, 6, 198, 129, 156, 120,
-			120, 120, 198, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14, 96, 26, 50, 39, 29, 58, 54, 47,
-			42, 30, 14, 6, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14, 96, 26, 60, 76,
-			41, 81, 76, 65, 58, 42, 20, 8, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14,
-			96, 26, 60, 68, 39, 77, 72, 62, 55, 40, 18, 7, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9,
-			238, 12, 216, 14, 96, 26, 0, 34, 27, 54, 50, 44, 39, 28, 13, 5, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 200, 0, 4, 0, 1, 0,
-			184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 50, 40, 27, 55, 61, 58, 43, 32, 11, 8, 185, 117, 127, 120, 120, 120,
-			185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 70, 76, 38, 76, 83, 80, 60, 44, 16, 12, 185, 117,
-			127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 80, 43, 28, 57, 62, 60, 45, 33,
-			12, 9, 185, 117, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 0, 27, 22, 45,
-			50, 48, 36, 26, 9, 7, 185, 117, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 199, 0, 54, 2, 122, 3, 81, 10, 163, 11,
-			54, 14, 159, 27, 50, 61, 22, 57, 69, 34, 33, 19, 12, 5, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 199, 0, 54, 2, 122, 3,
-			81, 10, 163, 11, 54, 14, 159, 27, 60, 115, 30, 78, 96, 47, 45, 26, 17, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 199, 0,
-			54, 2, 122, 3, 81, 10, 163, 11, 54, 14, 159, 27, 40, 104, 29, 74, 91, 45, 43, 25, 16, 6, 172, 142, 135, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 199, 0, 54, 2, 122, 3, 81, 10, 163, 11, 54, 14, 159, 27, 0, 52, 20, 52, 64, 32, 30, 17, 11, 4, 172, 142, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 45, 44, 27, 54, 58, 34,
-			31, 24, 12, 4, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 80, 96,
-			40, 81, 86, 51, 46, 36, 18, 7, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15,
-			214, 27, 50, 85, 38, 76, 81, 48, 44, 34, 17, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10,
-			227, 12, 20, 15, 214, 27, 0, 42, 27, 54, 57, 34, 31, 24, 12, 4, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0,
-			135, 0, 151, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 45, 43, 21, 58, 55, 49, 40, 32, 10, 11, 178, 126, 132, 123, 123, 141,
-			187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 135, 0, 151, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 80, 65, 26, 72, 68, 61, 49, 39, 12, 13, 178, 126,
-			132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 135, 0, 151, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 70, 56, 24, 67, 63, 56, 45, 36,
-			12, 12, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 135, 0, 136, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 0, 38, 20, 55,
-			52, 46, 37, 30, 9, 10, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 240, 0, 7, 0, 1, 0, 24, 1, 240, 2, 166, 4, 80, 10, 192, 13,
-			150, 15, 32, 28, 45, 57, 30, 66, 66, 46, 36, 23, 11, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 240, 2, 166, 4,
-			80, 10, 192, 13, 150, 15, 32, 28, 70, 109, 41, 91, 91, 63, 49, 32, 15, 8, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 24, 1,
-			228, 2, 175, 4, 58, 10, 204, 13, 162, 15, 32, 28, 50, 94, 40, 84, 85, 57, 48, 31, 14, 7, 186, 152, 135, 120, 120, 120, 192, 155,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			5, 0, 24, 1, 199, 2, 196, 4, 4, 10, 232, 13, 192, 15, 32, 28, 30, 77, 38, 76, 78, 46, 47, 29, 13, 7, 186, 152, 135, 120,
-			120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 5, 0, 24, 1, 184, 2, 20, 5, 176, 9, 244, 11, 120, 15, 32, 28, 25, 31, 28, 51, 40, 30, 33, 20, 9, 5,
-			186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 24, 1, 176, 2, 40, 5, 176, 9, 204, 11, 236, 14, 32, 28, 20, 30, 28, 52, 24, 7,
-			14, 14, 9, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 24, 1, 176, 2, 40, 5, 176, 9, 204, 11, 236, 14, 32, 28, 0, 33,
-			28, 52, 40, 31, 33, 14, 9, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 29, 1, 6, 0, 1, 0, 200, 0, 208, 1, 188, 7, 216, 9,
-			248, 12, 66, 14, 128, 28, 45, 44, 25, 57, 56, 61, 46, 34, 10, 8, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 208, 1,
-			188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 70, 77, 34, 75, 75, 81, 61, 46, 14, 10, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			199, 0, 227, 1, 131, 7, 210, 9, 248, 12, 73, 14, 106, 28, 90, 66, 32, 71, 72, 74, 57, 42, 13, 8, 184, 111, 127, 120, 120, 120,
-			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 186, 0, 152, 2, 220, 5, 196, 9, 168, 12, 56, 14, 160, 27, 40, 50, 34, 66, 63, 36, 41, 30, 15, 0, 180, 150,
-			125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 40, 39, 30, 56, 38, 35, 30, 7,
-			12, 5, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 204, 0, 128, 2, 116, 4, 156, 9, 240, 10, 152, 18, 0, 28, 0, 39, 30, 56,
-			38, 35, 30, 7, 12, 5, 170, 165, 137, 120, 120, 120, 170, 180, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 45, 0, 4, 0, 1, 0, 152, 0, 72, 1, 76, 9, 124, 11, 172, 13,
-			120, 15, 160, 26, 45, 41, 17, 60, 53, 49, 49, 26, 12, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 72, 1, 76, 9,
-			124, 11, 172, 13, 120, 15, 160, 26, 100, 69, 22, 78, 70, 64, 64, 34, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0,
-			24, 1, 136, 9, 164, 11, 16, 14, 120, 15, 160, 26, 40, 67, 21, 74, 66, 57, 61, 32, 15, 7, 167, 97, 120, 120, 120, 120, 167, 97,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 152, 0, 24, 1, 136, 9, 164, 11, 16, 14, 120, 15, 160, 26, 0, 38, 16, 56, 50, 43, 46, 24, 11, 5, 167, 97, 120, 120,
-			120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 50, 59, 24, 59, 64, 35,
-			34, 20, 12, 5, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 60, 124,
-			36, 85, 93, 52, 50, 29, 18, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 40, 2, 132, 3, 100, 10, 164, 11, 96, 14,
-			159, 27, 40, 97, 32, 77, 83, 46, 45, 26, 16, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 40, 2, 56, 4, 0, 10,
-			104, 11, 36, 14, 159, 27, 0, 34, 21, 51, 55, 31, 30, 17, 11, 4, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0,
-			135, 0, 136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 45, 42, 22, 57, 51, 48, 39, 31, 10, 11, 178, 126, 132, 123, 123, 141,
-			187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 135, 0, 136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 80, 73, 30, 76, 68, 64, 52, 41, 13, 14, 178, 126,
-			132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 135, 0, 136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 70, 59, 27, 68, 61, 57, 46, 37,
-			12, 13, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 135, 0, 136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 0, 37, 21, 53,
-			48, 45, 36, 29, 9, 10, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 235, 0, 5, 0, 1, 0, 24, 1, 186, 2, 40, 5, 180, 9, 98, 13,
-			20, 15, 71, 28, 45, 42, 28, 56, 57, 42, 34, 27, 9, 6, 210, 133, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 186, 2, 40, 5,
-			180, 9, 98, 13, 20, 15, 71, 28, 60, 81, 39, 79, 80, 58, 48, 37, 13, 8, 210, 133, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 10, 1,
-			145, 2, 70, 5, 166, 9, 86, 13, 2, 15, 254, 27, 80, 64, 33, 70, 69, 51, 43, 34, 11, 8, 205, 129, 141, 120, 120, 120, 237, 165,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 132, 0, 24, 1, 84, 6, 36, 9, 228, 12, 96, 14, 100, 25, 50, 43, 19, 61, 41, 35, 38, 35, 9, 12, 165, 90, 135, 120,
-			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 64, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 27, 15, 48, 33, 28, 30, 28, 7, 10,
-			165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 220, 0, 5, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 45,
-			14, 61, 43, 32, 35, 26, 14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14,
-			244, 26, 90, 77, 19, 79, 57, 41, 46, 34, 19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10,
-			148, 12, 176, 14, 244, 26, 50, 62, 17, 71, 51, 37, 41, 30, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 153, 0, 156, 1,
-			248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 30, 51, 15, 65, 46, 34, 38, 28, 15, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 0, 30, 11, 50, 35, 26, 29, 21, 11, 5, 165, 126, 145, 120, 120, 120,
-			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 0, 0, 6, 0, 1, 0, 51, 1, 124, 3, 60, 5, 124, 10, 93, 13, 187, 14, 253, 27, 45, 59, 32, 70, 62, 38, 33, 22,
-			10, 5, 205, 152, 124, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 51, 1, 124, 3, 60, 5, 124, 10, 93, 13, 187, 14, 253, 27, 50, 117, 45, 99,
-			87, 54, 47, 31, 15, 7, 205, 152, 124, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 9, 1, 254, 2, 28, 6, 68, 10, 45, 13, 119, 14, 49, 28,
-			50, 93, 43, 90, 79, 62, 51, 33, 14, 8, 187, 133, 125, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 64, 2, 108, 7, 240, 9, 228, 12,
-			16, 14, 128, 28, 50, 57, 37, 72, 64, 71, 54, 34, 13, 10, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 224, 0, 40, 2, 8, 7,
-			176, 9, 112, 13, 241, 14, 64, 27, 40, 42, 28, 60, 56, 56, 49, 43, 8, 8, 255, 90, 180, 120, 120, 120, 187, 105, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 224, 0,
-			40, 2, 8, 7, 176, 9, 112, 13, 241, 14, 64, 27, 0, 34, 25, 54, 50, 50, 44, 39, 7, 7, 255, 90, 180, 120, 120, 120, 187, 105,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			245, 0, 6, 0, 1, 0, 24, 1, 248, 2, 176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 60, 34, 66, 63, 43, 37, 24, 11, 6,
-			186, 152, 152, 120, 120, 120, 192, 155, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 248, 2, 176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 60, 116, 48, 92, 88, 60,
-			52, 34, 16, 8, 186, 152, 152, 120, 120, 120, 192, 155, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 12, 1, 224, 2, 100, 5, 134, 10, 158, 13, 64, 15, 41, 28, 40, 94,
-			45, 93, 72, 60, 49, 33, 15, 8, 186, 148, 160, 120, 120, 120, 192, 155, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 214, 0, 28, 2, 28, 7, 177, 10, 185, 13, 82, 15,
-			84, 28, 40, 65, 36, 72, 61, 57, 48, 35, 14, 9, 185, 127, 169, 120, 120, 120, 192, 155, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 160, 0, 88, 1, 212, 8, 220, 10,
-			212, 13, 100, 15, 128, 28, 60, 41, 16, 61, 42, 44, 39, 30, 11, 8, 185, 107, 177, 120, 120, 120, 185, 107, 177, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 204, 0, 96, 1,
-			232, 8, 220, 10, 16, 14, 196, 19, 88, 27, 0, 33, 20, 48, 32, 36, 32, 12, 11, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 45, 0,
-			6, 0, 1, 0, 208, 0, 112, 2, 212, 3, 60, 10, 188, 12, 92, 14, 87, 27, 45, 57, 26, 56, 67, 40, 36, 33, 9, 5, 167, 147,
-			147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 208, 0, 112, 2, 212, 3, 60, 10, 188, 12, 92, 14, 87, 27, 75, 104, 36, 76, 90, 54, 48, 44,
-			12, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 16, 2, 180, 5, 192, 8, 32, 13, 199, 14, 92, 26, 69, 77, 41, 83,
-			68, 57, 53, 42, 15, 8, 163, 119, 156, 137, 120, 120, 167, 142, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 152, 0, 88, 1, 238, 7, 100, 10, 132, 13, 50, 15, 96, 25,
-			30, 59, 27, 78, 48, 48, 52, 30, 13, 6, 160, 92, 147, 155, 120, 120, 130, 95, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 80, 1, 30, 8, 240, 10, 229, 13,
-			181, 15, 20, 26, 30, 78, 34, 87, 56, 53, 54, 37, 16, 8, 162, 95, 159, 149, 120, 120, 130, 95, 147, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 79, 8,
-			124, 11, 71, 14, 56, 16, 200, 26, 0, 38, 27, 58, 40, 35, 32, 27, 12, 7, 165, 99, 171, 142, 120, 120, 130, 99, 147, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 240, 0, 5, 0,
-			1, 0, 200, 0, 208, 1, 188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 45, 44, 25, 57, 57, 61, 46, 35, 10, 8, 185, 107, 127, 120,
-			120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 200, 0, 208, 1, 188, 7, 216, 9, 248, 12, 66, 14, 128, 28, 70, 77, 34, 75, 75, 81, 61, 46, 14, 10,
-			185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 199, 0, 227, 1, 131, 7, 210, 9, 248, 12, 73, 14, 106, 28, 75, 67, 33, 72, 72, 74,
-			57, 43, 14, 9, 184, 111, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 62,
-			37, 71, 79, 48, 44, 32, 16, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14,
-			160, 27, 0, 38, 29, 56, 62, 38, 35, 25, 13, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 210, 0, 5, 0, 1, 0, 148, 0, 128, 1,
-			238, 7, 60, 10, 42, 13, 50, 15, 96, 25, 45, 39, 23, 65, 47, 43, 41, 26, 10, 5, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			148, 0, 128, 1, 238, 7, 60, 10, 42, 13, 50, 15, 96, 25, 60, 71, 32, 88, 64, 58, 55, 35, 14, 6, 160, 92, 120, 143, 120, 120,
-			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 148, 0, 128, 1, 228, 7, 216, 9, 248, 12, 0, 15, 96, 25, 60, 62, 27, 83, 60, 55, 52, 33, 13, 6, 160, 92,
-			120, 155, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 120, 0, 250, 1, 144, 6, 188, 7, 164, 11, 16, 14, 13, 27, 45, 27, 24, 49, 46, 29, 30, 22,
-			11, 6, 166, 144, 133, 123, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 120, 0, 250, 1, 180, 5, 28, 7, 144, 11, 252, 13, 44, 27, 0, 26, 24, 49,
-			46, 29, 30, 22, 11, 6, 166, 144, 133, 123, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 75, 0, 5, 0, 1, 0, 135, 0, 88, 1, 224, 6, 192, 8, 188, 12,
-			128, 14, 153, 24, 45, 51, 22, 63, 57, 50, 41, 32, 10, 11, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 135, 0, 88, 1, 204, 6,
-			192, 8, 188, 12, 128, 14, 153, 24, 70, 74, 26, 76, 68, 61, 49, 39, 12, 13, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 150, 0,
-			162, 1, 48, 6, 246, 8, 164, 12, 131, 14, 85, 25, 70, 70, 30, 74, 72, 56, 45, 37, 13, 9, 178, 128, 130, 122, 122, 134, 187, 126,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 186, 0, 80, 2, 196, 4, 116, 9, 108, 12, 141, 14, 13, 27, 30, 64, 37, 70, 79, 47, 38, 32, 16, 0, 180, 135, 125, 120,
-			120, 120, 200, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 186, 0, 80, 2, 196, 4, 96, 9, 108, 12, 141, 14, 13, 27, 0, 49, 32, 61, 69, 41, 33, 28, 14, 0,
-			180, 135, 125, 120, 120, 120, 200, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 4, 0, 1, 0, 196, 0, 104, 2, 252, 3, 0, 10, 28, 12, 116, 14, 119, 26, 53, 61,
-			35, 71, 73, 28, 34, 20, 9, 8, 162, 105, 132, 120, 120, 120, 162, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 7, 0, 208, 0, 48, 2, 132, 3, 220, 10, 204, 11, 141, 14,
-			0, 26, 24, 60, 38, 81, 60, 33, 35, 16, 11, 8, 162, 105, 87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 208, 0, 229, 1, 123, 3, 220, 10,
-			204, 11, 141, 14, 0, 26, 51, 41, 30, 65, 48, 27, 28, 13, 9, 6, 162, 105, 87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 194, 1,
-			24, 3, 164, 11, 68, 12, 241, 14, 0, 26, 0, 25, 28, 46, 28, 24, 20, 16, 11, 8, 162, 135, 87, 120, 120, 120, 162, 75, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 135, 0,
-			3, 0, 1, 0, 176, 0, 72, 2, 160, 5, 156, 9, 188, 12, 116, 14, 88, 27, 45, 50, 33, 60, 73, 41, 39, 33, 17, 6, 167, 135,
-			135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 72, 2, 160, 5, 156, 9, 188, 12, 116, 14, 88, 27, 90, 78, 41, 75, 91, 51, 49, 41,
-			21, 8, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 88, 2, 160, 5, 156, 9, 188, 12, 116, 14, 88, 27, 0, 33, 27, 50,
-			60, 34, 32, 27, 14, 5, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 185, 0, 4, 0, 1, 0, 240, 0, 224, 2, 4, 6, 196, 9, 92, 13,
-			80, 15, 153, 28, 45, 37, 29, 51, 56, 41, 29, 26, 9, 5, 197, 176, 161, 135, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 224, 2, 4, 6,
-			196, 9, 92, 13, 80, 15, 153, 28, 80, 59, 37, 64, 71, 53, 37, 33, 11, 6, 197, 176, 161, 135, 120, 120, 220, 176, 161, 44, 45, 70,
-			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0,
-			232, 2, 4, 6, 196, 9, 92, 13, 80, 15, 153, 28, 60, 55, 35, 64, 64, 50, 35, 31, 11, 6, 197, 179, 161, 135, 120, 120, 220, 179,
-			161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 240, 0, 240, 2, 4, 6, 196, 9, 92, 13, 80, 15, 153, 28, 0, 33, 27, 50, 50, 39, 27, 24, 8, 5, 197, 179, 161, 135,
-			120, 120, 220, 179, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 50, 34, 26, 48, 51, 47,
-			36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 60, 68,
-			37, 68, 73, 67, 51, 38, 12, 7, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15,
-			224, 28, 60, 68, 37, 68, 73, 67, 51, 38, 12, 7, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10,
-			104, 13, 15, 15, 224, 28, 0, 34, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 160, 0, 4, 0, 1, 0,
-			229, 0, 183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27, 50, 43, 28, 56, 58, 35, 35, 23, 12, 5, 190, 159, 148, 120, 120, 120,
-			237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 229, 0, 183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27, 60, 86, 40, 80, 82, 50, 50, 32, 17, 7, 190, 159,
-			148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 229, 0, 183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27, 50, 76, 38, 75, 78, 47, 47, 30,
-			16, 6, 190, 159, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 229, 0, 183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27, 0, 38, 27, 53,
-			55, 33, 33, 21, 11, 4, 190, 159, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12,
-			141, 14, 128, 26, 45, 40, 24, 52, 57, 37, 31, 24, 17, 4, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 192, 1, 232, 3,
-			216, 9, 88, 12, 141, 14, 128, 26, 70, 95, 38, 79, 88, 57, 47, 37, 27, 7, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0,
-			192, 1, 232, 3, 216, 9, 88, 12, 141, 14, 128, 26, 60, 76, 34, 71, 79, 51, 42, 33, 24, 6, 162, 127, 157, 120, 120, 120, 162, 127,
-			157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12, 141, 14, 128, 26, 0, 36, 23, 49, 54, 35, 29, 23, 17, 4, 162, 127, 157, 120,
-			120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 225, 0, 5, 0, 1, 0, 224, 0, 136, 2, 84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 45, 34, 20, 41, 60, 29,
-			29, 29, 9, 4, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 224, 0, 136, 2, 84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 60, 114,
-			38, 76, 110, 53, 53, 53, 16, 8, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 136, 2, 84, 4, 24, 11, 228, 12, 136, 14,
-			96, 27, 60, 102, 36, 72, 104, 50, 50, 50, 15, 7, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 224, 0, 128, 2, 84, 4, 24, 11,
-			228, 12, 136, 14, 96, 27, 60, 61, 28, 56, 81, 39, 39, 39, 12, 6, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 224, 0, 120, 2,
-			116, 4, 24, 11, 228, 12, 136, 14, 96, 27, 0, 26, 18, 37, 54, 26, 26, 26, 8, 4, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0,
-			5, 0, 1, 0, 140, 0, 32, 2, 160, 5, 36, 9, 248, 12, 41, 14, 32, 27, 45, 47, 30, 64, 56, 56, 40, 40, 15, 8, 167, 135,
-			180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 32, 2, 160, 5, 16, 9, 148, 12, 41, 14, 32, 27, 48, 82, 37, 79, 86, 79, 64, 53,
-			26, 9, 170, 135, 157, 120, 120, 120, 140, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 172, 0, 32, 2, 160, 5, 16, 9, 168, 12, 41, 14, 160, 27, 50, 67, 34, 67,
-			86, 71, 57, 51, 16, 8, 170, 120, 120, 120, 120, 120, 170, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 204, 0, 32, 2, 148, 5, 16, 9, 168, 12, 41, 14, 160, 27,
-			60, 52, 34, 68, 67, 54, 45, 35, 15, 8, 170, 120, 135, 120, 120, 120, 140, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 204, 0, 33, 2, 140, 5, 16, 9, 168, 12,
-			141, 14, 160, 27, 0, 39, 31, 52, 64, 56, 38, 30, 11, 8, 170, 135, 150, 120, 120, 120, 140, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 4, 0, 1, 0, 180, 0,
-			64, 1, 76, 4, 212, 8, 28, 12, 226, 14, 144, 26, 50, 40, 13, 59, 45, 30, 33, 29, 14, 7, 170, 130, 126, 120, 120, 120, 162, 120,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 180, 0, 64, 1, 76, 4, 212, 8, 28, 12, 226, 14, 144, 26, 85, 59, 16, 72, 55, 37, 41, 36, 18, 9, 170, 130, 126, 120,
-			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 180, 0, 64, 1, 76, 4, 212, 8, 28, 12, 226, 14, 144, 26, 56, 43, 13, 61, 47, 32, 35, 30, 15, 7,
-			170, 130, 126, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 180, 0, 64, 1, 252, 3, 152, 8, 28, 12, 226, 14, 144, 26, 0, 36, 12, 57, 37, 23,
-			25, 23, 11, 7, 170, 130, 148, 120, 120, 120, 162, 120, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 236, 0, 136, 3, 140, 5, 116, 9, 88, 12, 116, 14,
-			224, 27, 50, 55, 32, 56, 75, 41, 43, 27, 10, 8, 250, 120, 210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			45, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 236, 0, 136, 3, 140, 5, 136, 9,
-			88, 12, 116, 14, 224, 27, 75, 103, 34, 81, 98, 53, 57, 36, 12, 6, 225, 120, 210, 120, 120, 120, 255, 120, 165, 44, 60, 70, 130, 57,
-			0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 220, 0, 80, 3,
-			80, 5, 36, 9, 128, 12, 41, 14, 224, 27, 40, 64, 28, 59, 81, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44,
-			60, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			0, 1, 173, 2, 87, 4, 16, 9, 48, 12, 41, 14, 128, 27, 35, 60, 28, 49, 77, 34, 51, 36, 15, 6, 237, 207, 192, 120, 120, 120,
-			141, 120, 147, 44, 55, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 0, 1, 76, 2, 10, 4, 16, 9, 28, 12, 41, 14, 112, 27, 35, 70, 35, 63, 75, 31, 48, 33, 17, 8, 221, 148,
-			186, 120, 120, 120, 141, 120, 147, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 0, 1, 24, 2, 172, 3, 252, 8, 28, 12, 41, 14, 112, 27, 0, 23, 20, 36, 37, 17, 25, 19,
-			9, 4, 221, 148, 186, 120, 120, 120, 141, 120, 147, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 248, 0, 56, 2, 84, 6, 36, 9, 28, 12, 166, 14, 96, 28,
-			49, 28, 22, 43, 55, 38, 28, 23, 9, 4, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 56, 2, 84, 6, 36, 9, 28, 12,
-			166, 14, 96, 28, 41, 87, 39, 77, 98, 67, 50, 41, 17, 7, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 248, 0, 8, 2, 84, 6,
-			212, 8, 28, 12, 166, 14, 96, 28, 31, 82, 37, 72, 92, 63, 47, 38, 16, 7, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 8, 1,
-			232, 1, 44, 6, 152, 8, 204, 11, 166, 14, 96, 28, 90, 50, 23, 66, 66, 38, 30, 25, 14, 8, 165, 120, 135, 120, 120, 120, 150, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 190, 0, 120, 1, 231, 4, 195, 8, 205, 12, 116, 14, 160, 28, 0, 33, 30, 54, 32, 25, 21, 18, 7, 7, 120, 103, 105, 120,
-			120, 120, 120, 100, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 196, 0, 7, 0, 5, 0, 72, 1, 136, 3, 62, 5, 140, 10, 112, 13, 191, 14, 32, 28, 51, 43, 28, 63, 56, 33,
-			28, 18, 8, 4, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 72, 1, 136, 3, 62, 5, 140, 10, 112, 13, 191, 14, 32, 28, 45, 104,
-			44, 98, 87, 51, 44, 28, 13, 6, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 72, 1, 136, 3, 62, 5, 140, 10, 112, 13, 191, 14,
-			32, 28, 14, 92, 41, 92, 82, 48, 41, 26, 12, 6, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0,
-			45, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 33, 0, 6, 1, 95, 3, 155, 5, 186, 9,
-			22, 13, 91, 14, 176, 27, 23, 65, 36, 77, 72, 48, 45, 36, 10, 7, 187, 142, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 33, 0, 196, 0, 32, 3,
-			249, 5, 232, 8, 188, 12, 247, 13, 64, 27, 33, 41, 29, 58, 60, 50, 50, 50, 9, 8, 167, 135, 180, 120, 120, 120, 167, 105, 135, 44,
-			45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0,
-			212, 0, 244, 1, 133, 7, 136, 9, 228, 12, 91, 14, 64, 27, 30, 38, 38, 56, 53, 53, 40, 39, 16, 9, 167, 90, 180, 120, 120, 120,
-			137, 75, 150, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250,
-			0, 0, 1, 0, 212, 0, 184, 1, 177, 7, 196, 9, 52, 13, 91, 14, 192, 27, 0, 34, 40, 51, 44, 44, 32, 28, 11, 10, 167, 90,
-			105, 120, 120, 120, 122, 75, 90, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200,
-			53, 182, 64, 250, 23, 8, 230, 0, 5, 0, 1, 0, 0, 1, 24, 2, 108, 7, 236, 9, 104, 13, 15, 15, 224, 28, 45, 29, 25, 47,
-			53, 44, 37, 27, 9, 6, 216, 138, 159, 120, 120, 120, 107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 24, 2, 108, 7, 236, 9, 104, 13, 15, 15, 224, 28,
-			90, 67, 38, 70, 80, 66, 56, 41, 13, 9, 216, 138, 159, 120, 120, 120, 107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 232, 1, 188, 7, 40, 10, 163, 13,
-			57, 15, 148, 28, 55, 55, 37, 67, 69, 62, 51, 39, 12, 9, 197, 114, 149, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 144, 0, 125, 1, 52, 8,
-			148, 10, 188, 13, 76, 15, 32, 28, 40, 30, 27, 50, 48, 46, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 144, 0,
-			125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 0, 27, 26, 47, 45, 44, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			0, 0, 5, 0, 1, 0, 240, 0, 168, 2, 28, 7, 176, 9, 112, 13, 10, 15, 96, 27, 44, 48, 34, 65, 59, 56, 38, 23, 6, 8,
-			165, 135, 240, 120, 120, 120, 195, 105, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 176, 2, 28, 7, 136, 9, 112, 13, 60, 15, 96, 27, 77, 68, 36, 76, 79, 74,
-			40, 24, 8, 6, 170, 120, 180, 120, 120, 120, 200, 120, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 163, 2, 244, 6, 116, 9, 72, 13, 60, 15, 96, 27, 77, 54,
-			29, 62, 71, 62, 56, 25, 13, 6, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 240, 0, 223, 2, 114, 6, 216, 9, 172, 13, 60, 15,
-			96, 28, 35, 36, 27, 56, 50, 49, 42, 26, 10, 7, 167, 120, 180, 120, 120, 120, 242, 150, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 240, 0, 223, 2, 26, 6, 236, 9,
-			172, 13, 60, 15, 96, 28, 0, 28, 25, 53, 43, 40, 35, 21, 7, 8, 167, 105, 180, 120, 120, 120, 242, 135, 150, 44, 45, 70, 130, 57,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 193, 0, 6, 0, 1, 0,
-			104, 0, 160, 1, 9, 8, 80, 10, 72, 13, 60, 15, 160, 27, 42, 46, 10, 66, 56, 58, 42, 33, 10, 8, 150, 165, 150, 120, 120, 120,
-			150, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 104, 0, 160, 1, 20, 8, 160, 10, 72, 13, 60, 15, 32, 27, 40, 63, 20, 72, 72, 77, 67, 37, 15, 8, 167, 120,
-			150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 179, 1, 232, 7, 80, 10, 52, 13, 60, 15, 64, 27, 51, 45, 20, 70, 53, 50, 46, 25,
-			9, 8, 180, 90, 150, 120, 120, 120, 180, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 198, 0, 48, 2, 8, 7, 136, 9, 46, 13, 249, 14, 212, 25, 30, 40, 24, 62,
-			57, 51, 41, 26, 11, 8, 157, 117, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 201, 0, 94, 2, 44, 6, 72, 9, 183, 12, 226, 14, 170, 25,
-			30, 17, 18, 36, 40, 36, 29, 17, 5, 6, 148, 154, 138, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 210, 0, 141, 2, 150, 5, 24, 9, 128, 12,
-			15, 15, 77, 25, 0, 19, 23, 36, 44, 37, 29, 17, 3, 8, 139, 168, 138, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 180, 0, 4, 0, 1, 0, 168, 0,
-			232, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 45, 56, 28, 58, 64, 39, 36, 18, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 168, 0, 232, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 70, 115, 40, 83, 92, 56, 51, 26, 19, 8, 165, 135, 150, 120,
-			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 168, 0, 232, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 65, 93, 36, 74, 83, 50, 46, 23, 17, 7,
-			165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 232, 1, 152, 3, 216, 9, 164, 11, 141, 14, 32, 27, 0, 35, 25, 45, 52, 29,
-			27, 15, 11, 4, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 24, 1, 168, 3, 205, 5, 60, 10, 92, 13, 216, 14,
-			32, 27, 36, 52, 28, 64, 61, 46, 40, 35, 8, 4, 200, 135, 210, 120, 120, 120, 255, 150, 135, 44, 60, 70, 130, 55, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 168, 3, 205, 5, 60, 10,
-			92, 13, 216, 14, 32, 27, 29, 112, 41, 94, 90, 67, 58, 52, 12, 6, 200, 135, 210, 120, 120, 120, 255, 150, 135, 44, 60, 70, 130, 55,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 5, 0, 8, 1, 168, 3,
-			62, 5, 216, 9, 188, 12, 166, 14, 32, 27, 39, 128, 38, 94, 103, 79, 65, 53, 16, 8, 185, 180, 165, 120, 120, 120, 245, 135, 120, 44,
-			60, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0,
-			2, 1, 128, 3, 34, 5, 184, 9, 164, 12, 173, 14, 60, 27, 42, 108, 37, 86, 98, 72, 60, 48, 15, 8, 185, 175, 159, 120, 120, 120,
-			245, 135, 120, 44, 50, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 232, 0, 185, 2, 116, 4, 56, 9, 68, 12, 203, 14, 176, 27, 84, 52, 33, 55, 80, 46, 39, 31, 11, 8, 185, 157,
-			135, 120, 120, 120, 194, 105, 111, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 193, 2, 196, 4, 252, 8, 128, 12, 241, 14, 32, 28, 0, 26, 28, 42, 56, 36, 32, 26,
-			8, 8, 185, 180, 120, 120, 120, 120, 155, 120, 105, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 139, 0, 3, 0, 1, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26,
-			50, 32, 10, 59, 42, 49, 50, 25, 11, 5, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13,
-			9, 15, 112, 26, 90, 73, 15, 88, 64, 74, 75, 37, 17, 8, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 158, 0, 56, 1, 165, 8,
-			215, 10, 49, 13, 9, 15, 112, 26, 0, 33, 10, 60, 43, 50, 51, 25, 11, 5, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 235, 0, 5, 0,
-			1, 0, 192, 0, 176, 1, 188, 7, 60, 10, 102, 13, 191, 14, 128, 28, 45, 27, 21, 44, 45, 44, 34, 28, 8, 6, 185, 107, 135, 120,
-			120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 192, 0, 176, 1, 188, 7, 60, 10, 102, 13, 191, 14, 128, 28, 70, 80, 35, 76, 77, 75, 59, 47, 15, 11,
-			185, 107, 135, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 188, 0, 164, 1, 212, 7, 72, 10, 99, 13, 196, 14, 96, 28, 70, 69, 32, 71, 72, 69,
-			55, 44, 14, 10, 184, 107, 134, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 17, 1, 207, 8, 213, 10, 57, 13, 7, 15, 236, 26, 50, 38,
-			13, 54, 50, 49, 46, 28, 11, 7, 174, 105, 118, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 118, 0, 224, 0, 35, 9, 4, 11, 42, 13, 30, 15,
-			112, 26, 0, 23, 7, 45, 40, 39, 39, 21, 10, 6, 171, 105, 112, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 116, 0, 13, 2,
-			161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 34, 35, 26, 50, 60, 34, 36, 27, 14, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 60, 80, 39, 76, 92, 52, 54, 42, 22, 8, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 220, 0, 224, 1, 120, 5, 232, 8, 68, 12, 191, 14, 192, 28, 54, 54, 36, 55, 79, 57, 35, 30, 16, 7, 120, 120,
-			120, 120, 120, 120, 165, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 220, 0, 164, 1, 120, 4, 152, 8, 88, 12, 141, 14, 64, 28, 45, 56, 44, 77, 54, 30, 24, 26,
-			15, 9, 120, 120, 120, 120, 120, 120, 60, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 140, 0, 84, 1, 222, 3, 56, 9, 188, 12, 141, 14, 192, 27, 0, 21, 28, 46,
-			37, 15, 7, 9, 9, 8, 120, 105, 90, 120, 120, 120, 60, 120, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 248, 0, 104, 2, 196, 4, 76, 9, 28, 12,
-			166, 14, 96, 28, 46, 45, 26, 58, 66, 49, 36, 30, 12, 5, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 104, 2, 196, 4,
-			76, 9, 28, 12, 166, 14, 96, 28, 25, 103, 40, 88, 100, 75, 55, 45, 19, 8, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 248, 0,
-			104, 2, 176, 4, 76, 9, 28, 12, 166, 14, 96, 28, 43, 73, 33, 73, 84, 63, 46, 38, 16, 7, 167, 120, 165, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 198, 0, 248, 1, 176, 4, 76, 9, 58, 12, 204, 14, 112, 28, 48, 72, 28, 76, 72, 41, 43, 25, 14, 8, 166, 142, 142, 120,
-			120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 5, 0, 192, 0, 174, 1, 196, 4, 172, 8, 204, 11, 141, 14, 224, 28, 46, 40, 28, 64, 39, 27, 18, 16, 8, 8,
-			162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 134, 1, 189, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 24, 58, 38, 22,
-			15, 12, 9, 8, 152, 120, 75, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 180, 0, 137, 2, 205, 5, 126, 9, 233, 12, 116, 14,
-			176, 27, 40, 46, 32, 60, 68, 44, 39, 31, 13, 3, 174, 157, 145, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 180, 0, 137, 2, 205, 5, 126, 9,
-			233, 12, 116, 14, 176, 27, 66, 104, 48, 89, 101, 65, 58, 47, 20, 4, 174, 157, 145, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 102, 2,
-			173, 6, 120, 9, 242, 12, 86, 14, 243, 27, 94, 61, 33, 67, 76, 59, 50, 41, 14, 6, 180, 144, 158, 120, 120, 120, 200, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 44, 33, 56, 50, 60, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120,
-			122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 30, 47, 48, 44, 40, 32, 9, 8, 167, 90,
-			135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 95, 0, 6, 0, 1, 0, 136, 0, 72, 1, 138, 8, 200, 10, 134, 13, 113, 15, 236, 26, 45, 44, 7, 65,
-			55, 56, 44, 27, 11, 7, 172, 133, 129, 120, 120, 120, 180, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 128, 0, 72, 1, 142, 8, 210, 10, 82, 13, 98, 15, 224, 26,
-			50, 64, 10, 75, 75, 77, 72, 37, 16, 8, 158, 112, 135, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 72, 1, 142, 8, 210, 10, 82, 13,
-			98, 15, 224, 26, 40, 64, 10, 75, 75, 77, 72, 37, 16, 8, 158, 112, 135, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 169, 0, 216, 1, 108, 7,
-			60, 10, 92, 13, 20, 15, 32, 27, 35, 66, 33, 76, 73, 60, 56, 36, 18, 4, 173, 127, 122, 120, 120, 120, 167, 97, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 116, 0,
-			13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 37, 26, 51, 63, 35, 36, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 21, 20, 38, 47, 26, 27, 21, 10, 6, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0,
-			0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 179, 0, 50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 45, 36, 22, 46, 52, 33,
-			32, 15, 11, 4, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 179, 0, 50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 40, 116,
-			40, 82, 93, 59, 58, 27, 20, 8, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 179, 0, 50, 2, 175, 3, 96, 10, 15, 12, 141, 14,
-			32, 27, 70, 94, 36, 74, 84, 53, 52, 24, 18, 7, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 196, 0, 24, 2, 164, 6, 116, 9,
-			228, 12, 36, 14, 64, 27, 30, 49, 30, 57, 68, 57, 53, 46, 8, 8, 167, 135, 180, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 199, 0, 112, 1,
-			123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 35, 37, 24, 47, 48, 45, 44, 36, 11, 6, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0,
-			199, 0, 112, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 55, 37, 24, 47, 48, 45, 44, 36, 11, 6, 156, 128, 153, 120, 120, 120,
-			167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250,
-			0, 0, 1, 0, 208, 0, 128, 2, 238, 5, 96, 9, 52, 13, 216, 14, 64, 27, 0, 21, 20, 40, 48, 36, 32, 28, 7, 8, 252, 90,
-			165, 120, 120, 120, 252, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200,
-			53, 182, 64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 188, 0, 0, 2, 84, 6, 0, 10, 132, 13, 170, 15, 32, 27, 50, 33, 26, 55,
-			43, 41, 38, 26, 9, 5, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 188, 0, 0, 2, 84, 6, 0, 10, 132, 13, 170, 15, 32, 27,
-			60, 84, 41, 87, 68, 66, 60, 42, 15, 8, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 188, 0, 0, 2, 84, 6, 0, 10, 132, 13,
-			170, 15, 32, 27, 60, 75, 39, 82, 64, 62, 57, 40, 14, 8, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 188, 0, 0, 2, 84, 6,
-			0, 10, 132, 13, 170, 15, 32, 27, 0, 33, 26, 55, 43, 41, 38, 26, 9, 5, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 100, 0, 4, 0,
-			1, 0, 176, 0, 112, 1, 112, 3, 136, 9, 184, 11, 60, 15, 144, 26, 50, 50, 12, 64, 58, 30, 27, 18, 15, 7, 162, 127, 150, 120,
-			120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 176, 0, 112, 1, 112, 3, 136, 9, 184, 11, 60, 15, 144, 26, 50, 84, 16, 84, 76, 40, 36, 24, 20, 10,
-			162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 112, 1, 112, 3, 136, 9, 184, 11, 60, 15, 144, 26, 70, 67, 14, 74, 67, 35,
-			32, 21, 17, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 112, 1, 132, 3, 136, 9, 184, 11, 60, 15, 144, 26, 0, 34,
-			12, 52, 47, 25, 22, 15, 12, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 4, 0, 33, 0, 152, 0, 48, 1, 136, 9, 204, 11,
-			232, 13, 220, 15, 160, 26, 52, 45, 18, 59, 59, 53, 47, 28, 13, 6, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 48, 1,
-			136, 9, 204, 11, 232, 13, 220, 15, 160, 26, 75, 71, 23, 74, 74, 66, 58, 35, 17, 8, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			152, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15, 160, 26, 78, 52, 20, 64, 64, 57, 50, 30, 14, 7, 167, 110, 120, 120, 120, 120,
-			167, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 84, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15, 64, 26, 0, 20, 11, 40, 41, 38, 39, 22, 9, 8, 175, 105,
-			105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 210, 0, 5, 0, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 57, 24, 58,
-			65, 39, 36, 20, 14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26,
-			40, 96, 31, 76, 85, 51, 46, 26, 19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11,
-			151, 14, 244, 26, 70, 96, 31, 76, 85, 51, 46, 26, 19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 14, 2, 162, 3,
-			255, 9, 218, 11, 171, 14, 124, 27, 50, 69, 33, 65, 78, 42, 41, 26, 17, 7, 170, 136, 137, 120, 120, 120, 165, 115, 130, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 192, 0,
-			32, 2, 192, 3, 0, 10, 224, 11, 176, 14, 159, 27, 0, 40, 25, 49, 59, 31, 31, 20, 12, 5, 172, 138, 135, 120, 120, 120, 167, 138,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			45, 0, 5, 0, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 45, 50, 25, 57, 68, 37, 31, 26, 10, 5,
-			165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 50, 107, 37, 84, 100, 54,
-			45, 38, 14, 7, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 218, 0, 120, 2, 169, 3, 161, 10, 109, 12, 71, 14, 60, 27, 60, 103,
-			28, 69, 91, 51, 41, 36, 16, 8, 166, 145, 137, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14,
-			216, 26, 50, 65, 24, 63, 63, 44, 40, 23, 17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 144, 0, 216, 1, 12, 3, 196, 9,
-			254, 11, 157, 14, 216, 26, 0, 42, 20, 51, 51, 35, 32, 19, 14, 6, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 250, 0, 5, 0, 33, 0,
-			152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 44, 6, 66, 58, 59, 60, 28, 13, 6, 175, 105, 120, 120, 120, 120,
-			175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 70, 72, 10, 83, 73, 74, 75, 36, 17, 8, 167, 105,
-			120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 24, 1, 172, 8, 4, 11, 12, 13, 216, 14, 64, 26, 70, 45, 10, 60, 60, 63, 63, 34,
-			11, 8, 167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0, 240, 0, 168, 2, 164, 6, 136, 9, 72, 13, 60, 15, 96, 27, 65, 36, 27, 54,
-			45, 54, 45, 22, 12, 6, 167, 135, 180, 120, 120, 120, 242, 135, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 240, 0, 216, 2, 26, 6, 216, 9, 172, 13, 60, 15, 96, 28,
-			0, 32, 28, 56, 44, 44, 36, 21, 7, 8, 167, 120, 180, 120, 120, 120, 242, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 165, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5,
-			116, 9, 188, 12, 116, 14, 88, 27, 110, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 7, 0, 116, 0,
-			24, 2, 136, 5, 16, 9, 88, 12, 16, 14, 88, 27, 55, 24, 22, 43, 46, 30, 28, 21, 11, 4, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 116, 0, 72, 2, 120, 5, 208, 7, 224, 11, 152, 13, 88, 27, 0, 21, 22, 43, 37, 30, 13, 11, 6, 4, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 0, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 50, 50, 31, 60, 73, 41,
-			43, 33, 17, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 90, 86,
-			41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14,
-			88, 27, 0, 42, 28, 55, 67, 38, 39, 30, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 160, 0, 4, 0, 1, 0, 200, 0, 248, 1,
-			108, 7, 236, 9, 228, 12, 16, 14, 128, 28, 50, 45, 27, 61, 54, 66, 52, 36, 11, 8, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			200, 0, 248, 1, 108, 7, 240, 9, 228, 12, 16, 14, 128, 28, 50, 80, 36, 81, 72, 88, 70, 48, 15, 11, 160, 105, 127, 120, 120, 120,
-			160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 200, 0, 248, 1, 108, 7, 240, 9, 228, 12, 16, 14, 128, 28, 60, 65, 32, 73, 64, 79, 63, 44, 13, 10, 160, 105,
-			127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 240, 1, 128, 7, 248, 9, 228, 12, 16, 14, 128, 28, 0, 35, 24, 53, 47, 58, 46, 32,
-			10, 7, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 3, 0, 1, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27,
-			50, 49, 30, 62, 69, 42, 44, 32, 16, 6, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12,
-			136, 14, 38, 27, 90, 88, 40, 83, 92, 56, 58, 43, 22, 8, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 123, 0, 15, 2, 181, 5,
-			176, 9, 198, 12, 136, 14, 38, 27, 0, 42, 27, 57, 63, 38, 40, 30, 15, 5, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 3, 0,
-			1, 0, 200, 0, 40, 2, 12, 3, 200, 10, 188, 12, 36, 14, 32, 28, 50, 64, 25, 60, 60, 38, 38, 22, 15, 6, 182, 150, 120, 120,
-			120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 200, 0, 40, 2, 12, 3, 200, 10, 188, 12, 36, 14, 32, 28, 90, 100, 32, 76, 76, 48, 48, 28, 19, 8,
-			182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 40, 2, 12, 3, 200, 10, 188, 12, 36, 14, 32, 28, 0, 54, 26, 55, 55, 35,
-			35, 20, 14, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 116, 0, 13, 2, 40, 5, 152, 8, 228, 12, 136, 14,
-			96, 27, 50, 49, 30, 59, 72, 40, 42, 32, 17, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 13, 2, 40, 5, 152, 8,
-			228, 12, 136, 14, 96, 27, 70, 87, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 13, 2,
-			40, 5, 152, 8, 228, 12, 136, 14, 96, 27, 30, 49, 30, 59, 72, 40, 42, 32, 17, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			116, 0, 13, 2, 40, 5, 152, 8, 228, 12, 136, 14, 96, 27, 0, 40, 27, 53, 65, 36, 38, 29, 15, 5, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 50, 0, 3, 0, 1, 0, 184, 0, 96, 1, 232, 3, 192, 8, 144, 11, 136, 14, 144, 26, 50, 42, 23, 49, 55, 43, 40, 29,
-			17, 7, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 96, 1, 232, 3, 192, 8, 144, 11, 136, 14, 144, 26, 100, 58, 27, 58,
-			64, 51, 47, 34, 20, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 96, 1, 232, 3, 152, 8, 104, 11, 136, 14, 144, 26,
-			0, 34, 22, 44, 49, 38, 33, 22, 16, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 100, 0, 3, 0, 1, 0, 216, 0, 68, 2, 0, 5,
-			160, 10, 248, 12, 191, 14, 64, 29, 45, 40, 26, 55, 68, 37, 42, 32, 19, 0, 150, 144, 120, 120, 120, 120, 150, 93, 105, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 192, 0,
-			224, 1, 16, 4, 180, 10, 12, 13, 140, 15, 128, 28, 100, 28, 27, 45, 50, 33, 27, 20, 7, 0, 150, 120, 120, 120, 120, 120, 150, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			17, 0, 192, 0, 224, 1, 16, 4, 180, 10, 12, 13, 140, 15, 128, 28, 0, 23, 26, 42, 42, 32, 25, 19, 7, 0, 150, 120, 120, 120,
-			120, 120, 150, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 140, 0, 3, 0, 1, 0, 8, 1, 223, 2, 224, 6, 116, 9, 112, 13, 60, 15, 96, 27, 50, 31, 25, 51, 52, 46,
-			27, 15, 5, 4, 225, 120, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 8, 1, 223, 2, 224, 6, 116, 9, 112, 13, 60, 15, 96, 27, 90, 83,
-			41, 83, 85, 75, 44, 25, 9, 7, 225, 120, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 163, 2, 202, 6, 116, 9, 72, 13, 60, 15,
-			96, 27, 0, 32, 23, 48, 54, 44, 39, 19, 10, 5, 192, 120, 180, 120, 120, 120, 255, 150, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 4, 0, 1, 0, 244, 0, 152, 2,
-			16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 45, 49, 21, 52, 68, 32, 27, 27, 11, 5, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			244, 0, 152, 2, 16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 80, 109, 30, 74, 104, 50, 46, 46, 15, 7, 167, 142, 135, 120, 120, 120,
-			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 244, 0, 136, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27, 90, 85, 29, 71, 92, 47, 44, 44, 14, 7, 167, 142,
-			135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 244, 0, 136, 2, 36, 4, 24, 11, 168, 12, 76, 14, 96, 27, 0, 63, 26, 63, 76, 42, 39, 39,
-			13, 6, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 104, 0, 8, 1, 72, 8, 64, 11, 228, 12, 88, 17, 160, 27,
-			45, 42, 11, 57, 39, 57, 61, 22, 13, 9, 150, 135, 157, 120, 120, 120, 150, 135, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 104, 0, 8, 1, 132, 8, 224, 11, 32, 13,
-			48, 17, 32, 27, 50, 52, 17, 61, 44, 57, 61, 22, 16, 9, 167, 120, 150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 104, 0, 24, 1, 112, 8,
-			224, 11, 32, 13, 68, 17, 32, 27, 50, 36, 15, 51, 35, 47, 51, 19, 14, 8, 167, 120, 150, 120, 120, 120, 167, 120, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 128, 0,
-			128, 1, 168, 7, 220, 10, 72, 13, 164, 16, 64, 27, 40, 52, 22, 66, 30, 57, 51, 28, 13, 9, 180, 137, 200, 140, 120, 120, 180, 152,
-			215, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 168, 0, 3, 2, 28, 7, 80, 10, 32, 13, 120, 15, 64, 28, 33, 50, 27, 68, 55, 42, 51, 21, 6, 9, 167, 150, 120, 120,
-			120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 168, 0, 232, 1, 164, 6, 40, 10, 52, 13, 140, 15, 64, 28, 0, 44, 30, 61, 48, 50, 48, 22, 6, 9,
-			167, 127, 120, 120, 120, 120, 167, 127, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 60, 0, 4, 0, 1, 0, 160, 0, 16, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 50, 37,
-			15, 50, 35, 39, 46, 15, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 148, 0, 16, 1, 199, 8, 28, 12, 132, 13, 8, 17,
-			88, 27, 60, 47, 17, 57, 39, 44, 52, 17, 17, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 32, 1, 199, 8, 28, 12,
-			132, 13, 8, 17, 88, 27, 50, 46, 17, 57, 39, 44, 52, 17, 17, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 160, 0, 32, 1,
-			199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 0, 33, 14, 48, 33, 37, 44, 14, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0,
-			6, 0, 1, 0, 152, 0, 72, 1, 172, 3, 76, 9, 48, 12, 92, 13, 128, 26, 45, 42, 26, 52, 43, 32, 29, 28, 17, 6, 162, 127,
-			150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 80, 1, 36, 4, 56, 9, 168, 12, 232, 13, 128, 26, 50, 61, 32, 64, 54, 39, 36, 35,
-			21, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 136, 1, 76, 4, 36, 9, 148, 12, 36, 14, 128, 26, 33, 61, 32, 68,
-			54, 43, 39, 32, 21, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 140, 0, 200, 1, 236, 4, 252, 8, 128, 12, 212, 13, 32, 27,
-			26, 60, 24, 64, 74, 68, 55, 45, 22, 7, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 140, 0, 224, 1, 80, 5, 232, 8, 188, 12,
-			56, 14, 32, 27, 40, 58, 24, 64, 74, 68, 55, 45, 22, 7, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 116, 0, 224, 1, 200, 5,
-			196, 9, 228, 12, 116, 14, 88, 27, 0, 51, 32, 62, 68, 42, 44, 25, 18, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 60, 0, 4, 0,
-			1, 0, 153, 0, 52, 1, 16, 8, 20, 10, 132, 13, 80, 15, 88, 27, 50, 39, 28, 44, 44, 42, 48, 12, 15, 8, 187, 125, 137, 137,
-			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 153, 0, 72, 1, 52, 8, 20, 10, 132, 13, 80, 15, 88, 27, 60, 55, 33, 52, 52, 50, 57, 14, 18, 9,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 153, 0, 72, 1, 52, 8, 20, 10, 132, 13, 80, 15, 88, 27, 50, 38, 28, 44, 44, 42,
-			48, 12, 15, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 153, 0, 48, 1, 112, 8, 80, 10, 212, 13, 80, 15, 88, 27, 0, 29,
-			28, 36, 24, 28, 32, 12, 15, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 7, 0, 1, 0, 195, 0, 39, 1, 167, 8, 244, 11,
-			212, 13, 56, 19, 88, 27, 40, 45, 15, 60, 30, 35, 45, 15, 20, 10, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 180, 0, 24, 1,
-			132, 8, 224, 11, 132, 13, 152, 18, 88, 27, 20, 57, 15, 68, 36, 42, 52, 21, 15, 10, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			195, 0, 39, 1, 167, 8, 211, 11, 115, 13, 36, 19, 88, 27, 55, 40, 15, 55, 30, 35, 40, 15, 15, 10, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 195, 0, 39, 1, 92, 8, 176, 9, 52, 13, 12, 18, 88, 27, 80, 48, 14, 62, 48, 33, 43, 14, 14, 9, 187, 125,
-			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 195, 0, 39, 1, 156, 4, 252, 8, 168, 12, 60, 15, 88, 27, 60, 58, 14, 72, 48, 28, 33, 9,
-			9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 195, 0, 39, 1, 172, 3, 252, 8, 168, 12, 60, 15, 88, 27, 45, 35, 14, 52,
-			33, 24, 24, 14, 9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 16, 1, 132, 3, 252, 8, 168, 12, 60, 15, 88, 27,
-			0, 30, 14, 48, 33, 24, 24, 14, 9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 186, 0, 108, 2, 221, 4,
-			250, 8, 154, 12, 103, 14, 96, 28, 40, 47, 30, 59, 70, 52, 38, 31, 13, 6, 167, 120, 149, 120, 120, 120, 197, 120, 142, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 186, 0,
-			108, 2, 221, 4, 250, 8, 154, 12, 103, 14, 96, 28, 47, 97, 43, 85, 100, 75, 55, 45, 19, 8, 167, 120, 149, 120, 120, 120, 197, 120,
-			142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 104, 0, 208, 1, 136, 4, 152, 8, 188, 12, 76, 14, 96, 28, 28, 76, 32, 85, 68, 52, 52, 32, 19, 8, 167, 120, 142, 120,
-			120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 137, 0, 160, 1, 16, 4, 185, 8, 163, 12, 101, 14, 151, 27, 39, 69, 32, 76, 62, 36, 36, 24, 19, 8,
-			165, 123, 145, 120, 120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 120, 1, 212, 3, 232, 8, 128, 12, 136, 14, 128, 26, 60, 42, 35, 46, 43, 31,
-			31, 18, 15, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 184, 0, 120, 1, 112, 3, 232, 8, 128, 12, 136, 14, 128, 26, 0, 38,
-			32, 43, 40, 26, 29, 17, 14, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 24, 1, 0, 3, 176, 4, 4, 11,
-			172, 13, 200, 15, 64, 27, 45, 56, 30, 58, 72, 40, 34, 24, 4, 5, 187, 135, 165, 120, 120, 120, 187, 135, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 0, 3,
-			176, 4, 4, 11, 172, 13, 200, 15, 64, 27, 56, 114, 43, 83, 102, 57, 49, 34, 6, 8, 187, 135, 165, 120, 120, 120, 187, 135, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			246, 0, 208, 2, 140, 5, 20, 10, 252, 13, 64, 16, 88, 27, 50, 85, 38, 84, 92, 52, 44, 24, 18, 10, 226, 150, 128, 120, 120, 120,
-			235, 150, 128, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 227, 0, 80, 2, 8, 7, 20, 10, 252, 13, 108, 17, 88, 27, 44, 48, 28, 60, 64, 44, 36, 20, 15, 9, 208, 138,
-			160, 128, 134, 145, 235, 150, 156, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 204, 0, 112, 1, 52, 8, 160, 10, 16, 14, 36, 19, 88, 27, 75, 40, 22, 52, 44, 39, 39, 15,
-			13, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 204, 0, 56, 1, 192, 8, 124, 11, 16, 14, 196, 19, 88, 27, 0, 35, 20, 48,
-			32, 36, 32, 12, 11, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 244, 0, 152, 2, 16, 4, 240, 10, 148, 12,
-			41, 14, 96, 27, 50, 55, 23, 57, 69, 41, 35, 35, 12, 5, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 244, 0, 152, 2, 16, 4,
-			240, 10, 148, 12, 41, 14, 96, 27, 80, 105, 30, 74, 100, 54, 46, 46, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0,
-			136, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27, 34, 86, 29, 71, 92, 51, 44, 44, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 244, 0, 216, 2, 116, 4, 160, 10, 148, 12, 41, 14, 96, 27, 60, 78, 30, 65, 94, 47, 40, 40, 15, 7, 167, 142, 135, 120,
-			120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 246, 0, 200, 2, 120, 5, 216, 9, 132, 13, 224, 16, 88, 27, 50, 64, 34, 76, 64, 48, 44, 20, 12, 10,
-			226, 150, 136, 120, 120, 120, 235, 150, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 204, 0, 128, 1, 52, 8, 44, 11, 248, 12, 164, 16, 88, 27, 68, 32, 20, 48, 36, 36,
-			36, 16, 12, 8, 187, 125, 145, 137, 150, 175, 187, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 56, 1, 192, 8, 124, 11, 16, 14, 172, 18, 88, 27, 0, 36,
-			21, 48, 32, 36, 36, 16, 8, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 174, 0, 128, 2, 26, 6, 96, 9,
-			218, 12, 91, 14, 192, 27, 40, 49, 33, 60, 68, 48, 40, 37, 13, 7, 168, 165, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 174, 0, 128, 2,
-			26, 6, 96, 9, 218, 12, 91, 14, 192, 27, 66, 93, 46, 82, 94, 66, 55, 51, 18, 10, 168, 165, 165, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			240, 0, 78, 2, 67, 7, 116, 9, 248, 12, 66, 14, 32, 28, 94, 53, 28, 61, 69, 60, 49, 41, 13, 6, 184, 135, 168, 120, 120, 120,
-			169, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 40, 31, 54, 47, 57, 44, 32, 10, 8, 167, 90,
-			195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 34, 31, 49, 49, 45, 42, 33,
-			9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 7, 0, 1, 0, 0, 1, 8, 2, 12, 3, 100, 10, 108, 12, 60, 15, 224, 27,
-			41, 82, 39, 72, 72, 48, 42, 23, 13, 6, 165, 97, 107, 120, 120, 120, 165, 97, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 8, 2, 12, 3, 100, 10, 108, 12,
-			60, 15, 224, 27, 30, 131, 49, 91, 91, 60, 53, 29, 17, 7, 165, 97, 107, 120, 120, 120, 165, 97, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 8, 2, 12, 3,
-			100, 10, 108, 12, 60, 15, 224, 27, 35, 131, 49, 91, 91, 60, 53, 29, 17, 7, 165, 97, 107, 120, 120, 120, 165, 97, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 144, 0,
-			24, 2, 100, 5, 252, 8, 188, 12, 156, 14, 32, 27, 60, 58, 28, 76, 56, 60, 56, 40, 20, 8, 170, 135, 200, 120, 120, 120, 140, 120,
-			185, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 160, 0, 144, 1, 208, 7, 120, 10, 172, 13, 224, 16, 88, 27, 48, 43, 20, 60, 52, 40, 48, 16, 16, 8, 187, 125, 137, 137,
-			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 5, 0, 160, 0, 72, 1, 52, 8, 4, 11, 192, 13, 224, 16, 88, 27, 45, 36, 16, 52, 48, 40, 48, 16, 16, 8,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 72, 1, 92, 8, 220, 10, 36, 14, 224, 16, 88, 27, 0, 29, 16, 46, 42, 37,
-			33, 16, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 7, 0, 1, 0, 152, 0, 80, 1, 132, 3, 232, 8, 168, 12, 232, 13,
-			128, 26, 40, 51, 25, 61, 51, 30, 23, 23, 17, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 80, 1, 16, 4, 56, 9,
-			168, 12, 232, 13, 128, 26, 82, 70, 30, 72, 60, 44, 40, 39, 24, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 240, 1,
-			180, 5, 172, 8, 221, 12, 78, 14, 88, 27, 49, 48, 28, 60, 52, 64, 42, 39, 17, 8, 166, 137, 154, 150, 120, 120, 162, 127, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			169, 0, 125, 1, 88, 7, 36, 9, 254, 12, 140, 14, 218, 27, 39, 45, 24, 48, 60, 64, 44, 39, 13, 8, 168, 144, 156, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 165, 0, 64, 1, 52, 8, 216, 9, 28, 13, 180, 14, 240, 27, 44, 44, 16, 60, 60, 51, 43, 37, 12, 8, 83, 127,
-			134, 120, 120, 120, 112, 120, 134, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 140, 0, 24, 1, 172, 8, 80, 10, 92, 13, 231, 14, 12, 28, 41, 40, 20, 48, 56, 52, 41, 34,
-			10, 8, 168, 105, 130, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 48, 1, 56, 9, 120, 10, 92, 13, 10, 15, 32, 28, 0, 34, 20, 52,
-			48, 44, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 184, 0, 96, 1, 112, 3, 192, 8, 144, 11,
-			136, 14, 144, 26, 55, 29, 19, 40, 45, 31, 28, 21, 14, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 96, 1, 192, 3,
-			192, 8, 144, 11, 136, 14, 144, 26, 20, 59, 27, 58, 65, 51, 48, 34, 20, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 33, 0, 179, 0,
-			80, 1, 232, 3, 96, 9, 48, 12, 6, 15, 177, 26, 60, 66, 29, 65, 56, 52, 54, 36, 22, 9, 166, 133, 148, 122, 124, 129, 162, 120,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			33, 0, 164, 0, 56, 1, 148, 7, 36, 9, 148, 12, 57, 16, 2, 27, 79, 49, 22, 58, 32, 48, 52, 26, 19, 8, 176, 129, 143, 129,
-			137, 151, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 148, 0, 16, 1, 152, 8, 200, 10, 188, 12, 128, 17, 88, 27, 84, 37, 16, 52, 36, 40, 48, 16, 16, 8,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 160, 0, 40, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 0, 36, 16, 52, 36, 36,
-			40, 16, 12, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 40, 0, 6, 0, 1, 0, 140, 0, 232, 1, 196, 4, 36, 9, 128, 12, 41, 14,
-			32, 27, 40, 51, 30, 65, 61, 55, 44, 43, 21, 7, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 140, 0, 240, 1, 196, 4, 36, 9,
-			128, 12, 41, 14, 32, 27, 45, 65, 34, 73, 69, 62, 50, 49, 24, 8, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 158, 0, 8, 2,
-			80, 5, 16, 9, 188, 12, 148, 14, 0, 28, 50, 59, 34, 72, 64, 59, 53, 42, 18, 9, 172, 128, 153, 127, 132, 143, 140, 120, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			184, 0, 192, 1, 84, 6, 56, 9, 208, 12, 40, 15, 51, 29, 45, 55, 27, 68, 51, 51, 51, 30, 10, 10, 175, 120, 137, 137, 150, 175,
-			175, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 153, 0, 96, 1, 148, 7, 196, 9, 92, 13, 80, 15, 88, 27, 15, 31, 28, 40, 40, 36, 44, 12, 9, 8, 187, 125,
-			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 153, 0, 40, 1, 228, 7, 96, 9, 112, 13, 80, 15, 88, 27, 0, 26, 28, 32, 28, 28, 24, 8,
-			9, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 188, 0, 40, 1, 228, 7, 136, 9, 52, 13, 8, 17, 88, 27,
-			40, 36, 9, 54, 51, 42, 39, 12, 12, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 188, 0, 40, 1, 188, 7, 176, 9, 12, 13,
-			188, 17, 88, 27, 65, 55, 11, 68, 64, 53, 49, 15, 15, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 154, 0, 96, 1, 244, 6,
-			156, 9, 208, 12, 244, 16, 88, 27, 50, 52, 15, 66, 57, 49, 49, 22, 17, 8, 178, 137, 161, 129, 135, 148, 187, 125, 162, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0,
-			160, 1, 84, 6, 96, 9, 188, 12, 164, 16, 88, 27, 40, 33, 23, 48, 51, 34, 37, 25, 15, 6, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 116, 0, 224, 1, 44, 6, 116, 9, 12, 13, 224, 16, 88, 27, 0, 30, 24, 48, 50, 34, 34, 21, 13, 5, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 190, 0, 5, 0, 1, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 50, 34, 28, 41, 62, 28,
-			36, 23, 5, 5, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 50, 69,
-			39, 64, 82, 39, 50, 32, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12, 36, 14,
-			15, 28, 50, 69, 39, 64, 82, 39, 50, 32, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 170, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 88, 2, 36, 4, 80, 10,
-			28, 12, 36, 14, 15, 28, 40, 50, 33, 55, 70, 33, 42, 27, 6, 6, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59,
-			170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 0, 1, 88, 2,
-			36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 0, 24, 23, 38, 49, 23, 30, 19, 4, 4, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44,
-			45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 200, 0,
-			4, 0, 1, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14, 128, 28, 50, 36, 26, 44, 49, 52, 44, 30, 11, 8, 185, 153,
-			127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14, 128, 28, 80, 68, 36, 60, 68, 72, 60, 41,
-			15, 11, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14, 128, 28, 70, 55, 34, 52,
-			62, 66, 55, 38, 13, 10, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14, 128, 28,
-			0, 23, 25, 32, 37, 37, 32, 25, 9, 7, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 200, 0, 5, 0, 1, 0, 184, 0, 136, 1, 188, 2,
-			160, 10, 88, 12, 176, 14, 159, 27, 50, 37, 28, 41, 51, 23, 33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70,
-			130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0,
-			136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 72, 39, 57, 72, 32, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120, 105, 135,
-			135, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 72, 39, 57, 72, 32, 45, 25, 13, 7, 177, 100, 131, 120,
-			120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 52, 33, 48, 61, 27, 39, 21, 11, 6,
-			177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 0, 34, 31, 45, 41, 20,
-			33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 83, 9, 26, 0, 255, 7, 255, 250, 3, 1, 3, 248, 252, 4, 19, 15, 0, 254,
-			1, 6, 0, 251, 254, 255, 255, 4, 242, 243, 0, 1, 7, 10, 3, 1, 9, 6, 248, 255, 23, 0, 235, 0, 253, 229, 4, 22, 255, 0,
-			21, 16, 0, 0, 255, 245, 4, 6, 255, 233, 237, 5, 248, 246, 17, 29, 10, 247, 6, 11, 4, 241, 255, 251, 243, 13, 245, 223, 0, 34,
-			8, 13, 7, 246, 255, 242, 17, 12, 243, 7, 254, 230, 254, 24, 4, 244, 250, 243, 233, 254, 27, 7, 230, 254, 26, 22, 233, 0, 24, 0,
-			243, 250, 253, 243, 248, 232, 243, 4, 34, 53, 237, 242, 14, 255, 7, 252, 6, 243, 233, 1, 15, 229, 2, 51, 249, 250, 248, 21, 33, 246,
-			243, 232, 2, 16, 255, 243, 15, 29, 252, 250, 238, 27, 27, 13, 2, 239, 12, 15, 249, 253, 7, 1, 14, 255, 243, 2, 248, 255, 14, 0,
-			7, 255, 246, 245, 251, 6, 11, 252, 238, 243, 233, 252, 26, 255, 249, 0, 4, 8, 250, 255, 254, 252, 246, 251, 244, 244, 1, 0, 244, 6,
-			12, 8, 8, 249, 4, 253, 252, 2, 242, 244, 1, 4, 255, 0, 2, 4, 7, 7, 13, 2, 252, 251, 2, 255, 249, 0, 6, 2, 246, 7,
-			8, 8, 16, 252, 252, 1, 4, 3, 243, 252, 1, 0, 7, 10, 253, 5, 9, 6, 6, 3, 250, 0, 6, 4, 249, 255, 9, 244, 4, 4,
-			1, 4, 8, 8, 250, 252, 8, 5, 14, 246, 250, 4, 253, 1, 248, 254, 241, 0, 254, 0, 252, 244, 13, 0, 250, 15, 20, 255, 2, 18,
-			247, 232, 249, 9, 2, 248, 242, 237, 0, 1, 7, 19, 18, 10, 4, 254, 238, 18, 20, 237, 245, 245, 242, 242, 249, 250, 250, 19, 9, 249,
-			6, 13, 17, 3, 14, 24, 5, 7, 243, 245, 2, 0, 7, 238, 236, 243, 244, 252, 8, 4, 246, 12, 16, 18, 254, 11, 8, 6, 1, 241,
-			248, 247, 2, 247, 247, 231, 4, 11, 9, 5, 251, 14, 254, 255, 6, 248, 6, 16, 4, 245, 241, 11, 19, 11, 2, 239, 249, 6, 2, 245,
-			250, 253, 234, 7, 13, 20, 4, 13, 18, 3, 11, 250, 249, 246, 239, 240, 239, 250, 243, 249, 6, 5, 24, 20, 25, 253, 1, 254, 251, 2,
-			250, 242, 236, 250, 254, 18, 13, 2, 0, 11, 31, 0, 255, 8, 247, 249, 252, 249, 252, 0, 246, 253, 3, 9, 5, 11, 10, 245, 4, 11,
-			3, 1, 7, 249, 253, 242, 253, 254, 245, 6, 250, 251, 6, 9, 6, 9, 10, 8, 4, 254, 241, 247, 255, 251, 242, 245, 249, 248, 24, 6,
-			6, 14, 8, 12, 247, 237, 239, 11, 250, 239, 250, 251, 11, 20, 18, 5, 24, 19, 253, 249, 237, 241, 248, 248, 236, 237, 254, 6, 21, 23,
-			15, 18, 18, 3, 248, 1, 246, 247, 252, 232, 243, 1, 11, 2, 0, 252, 6, 10, 0, 2, 10, 1, 250, 249, 245, 5, 12, 20, 255, 0,
-			247, 247, 5, 10, 16, 247, 250, 12, 249, 6, 20, 6, 14, 241, 6, 1, 250, 0, 237, 250, 4, 253, 0, 15, 12, 21, 11, 4, 247, 248,
-			1, 242, 234, 231, 1, 244, 238, 7, 255, 20, 24, 8, 8, 252, 11, 241, 2, 249, 245, 253, 248, 255, 0, 23, 251, 6, 20, 253, 7, 247,
-			250, 255, 2, 9, 247, 239, 254, 249, 0, 247, 0, 1, 246, 3, 0, 0, 11, 11, 3, 254, 0, 245, 255, 6, 249, 238, 1, 1, 249, 19,
-			25, 10, 18, 7, 245, 1, 9, 4, 238, 251, 1, 238, 7, 0, 9, 2, 9, 33, 14, 236, 6, 8, 241, 244, 234, 241, 237, 6, 253, 238,
-			12, 52, 10, 3, 15, 1, 4, 239, 228, 230, 224, 13, 228, 230, 9, 34, 44, 28, 28, 25, 29, 10, 253, 247, 245, 242, 226, 241, 238, 244,
-			36, 0, 252, 22, 3, 35, 15, 2, 0, 3, 9, 246, 231, 241, 10, 246, 250, 13, 240, 246, 253, 14, 22, 19, 39, 11, 235, 1, 253, 230,
-			243, 236, 228, 219, 239, 6, 240, 0, 14, 20, 245, 5, 38, 11, 228, 2, 24, 243, 243, 250, 196, 243, 18, 250, 6, 243, 46, 4, 44, 250,
-			4, 27, 3, 13, 203, 252, 245, 247, 238, 232, 29, 255, 27, 9, 32, 16, 228, 33, 245, 241, 253, 255, 244, 250, 19, 241, 255, 4, 7, 22,
-			24, 12, 206, 234, 33, 230, 246, 250, 10, 21, 6, 27, 14, 20, 15, 239, 15, 233, 242, 7, 238, 254, 249, 3, 9, 21, 6, 11, 252, 6,
-			12, 243, 6, 221, 236, 9, 2, 0, 249, 245, 255, 25, 19, 255, 250, 20, 246, 251, 253, 233, 8, 2, 9, 248, 251, 30, 22, 16, 3, 254,
-			9, 255, 240, 235, 242, 230, 247, 17, 251, 250, 5, 3, 253, 8, 20, 3, 0, 6, 238, 236, 253, 2, 5, 249, 239, 254, 18, 0, 240, 241,
-			15, 18, 250, 1, 9, 12, 6, 246, 0, 248, 1, 4, 244, 236, 251, 253, 7, 0, 253, 0, 5, 30, 13, 232, 250, 18, 0, 2, 9, 249,
-			243, 11, 5, 252, 11, 13, 255, 0, 249, 227, 254, 19, 2, 241, 1, 24, 27, 35, 0, 249, 11, 4, 0, 240, 249, 247, 249, 0, 246, 5,
-			18, 22, 14, 5, 4, 0, 12, 2, 246, 0, 253, 251, 254, 250, 246, 249, 3, 1, 250, 252, 252, 7, 5, 254, 235, 240, 254, 251, 230, 241,
-			239, 246, 237, 246, 255, 10, 7, 255, 254, 251, 9, 0, 17, 6, 5, 13, 252, 3, 17, 13, 24, 13, 21, 14, 11, 12, 6, 7, 7, 3,
-			252, 248, 236, 247, 0, 252, 253, 252, 4, 1, 254, 255, 2, 252, 248, 241, 245, 251, 251, 7, 0, 0, 14, 5, 12, 15, 16, 9, 18, 8,
-			244, 8, 7, 254, 4, 5, 1, 0, 0, 10, 8, 251, 251, 5, 250, 243, 0, 9, 245, 245, 247, 235, 241, 8, 253, 242, 12, 3, 244, 246,
-			0, 250, 14, 7, 253, 248, 248, 243, 244, 237, 240, 247, 254, 5, 8, 253, 8, 24, 21, 252, 0, 1, 236, 241, 242, 241, 1, 8, 248, 12,
-			23, 8, 35, 15, 0, 9, 14, 250, 244, 10, 230, 218, 250, 10, 249, 3, 17, 247, 43, 13, 243, 29, 8, 2, 216, 0, 251, 246, 18, 250,
-			26, 1, 44, 29, 34, 13, 239, 252, 235, 19, 239, 15, 19, 9, 25, 4, 38, 230, 245, 36, 234, 214, 209, 223, 2, 255, 252, 23, 35, 9,
-			240, 251, 3, 0, 9, 194, 229, 226, 213, 22, 244, 0, 6, 46, 11, 15, 55, 8, 18, 252, 245, 219, 244, 251, 201, 250, 247, 244, 32, 26,
-			11, 2, 37, 6, 249, 1, 210, 233, 234, 221, 1, 8, 249, 249, 36, 253, 31, 13, 247, 26, 237, 235, 253, 3, 252, 240, 247, 32, 16, 24,
-			11, 1, 14, 9, 245, 1, 236, 223, 4, 246, 0, 14, 45, 22, 33, 27, 233, 18, 12, 219, 234, 223, 231, 13, 17, 223, 11, 46, 25, 2,
-			34, 41, 163, 34, 242, 189, 0, 253, 250, 210, 255, 48, 10, 15, 64, 250, 220, 58, 229, 229, 19, 240, 247, 1, 219, 220, 24, 46, 240, 2,
-			23, 26, 3, 238, 11, 244, 33, 14, 240, 249, 226, 217, 8, 2, 3, 23, 247, 33, 233, 250, 50, 9, 1, 3, 249, 226, 236, 7, 230, 235,
-			14, 41, 250, 7, 39, 223, 254, 27, 21, 251, 22, 211, 250, 233, 233, 18, 227, 0, 16, 254, 0, 31, 20, 250, 10, 34, 233, 227, 243, 5,
-			219, 22, 12, 202, 17, 38, 247, 13, 29, 231, 255, 19, 227, 200, 249, 55, 243, 1, 12, 7, 8, 17, 251, 208, 255, 29, 244, 251, 251, 2,
-			249, 3, 33, 240, 4, 18, 235, 219, 7, 247, 244, 41, 19, 0, 255, 34, 251, 18, 27, 245, 244, 14, 218, 244, 249, 6, 233, 21, 10, 238,
-			17, 17, 3, 243, 30, 11, 1, 246, 245, 234, 255, 246, 231, 6, 6, 253, 245, 27, 18, 9, 44, 13, 249, 36, 19, 228, 11, 249, 223, 245,
-			14, 5, 14, 11, 252, 237, 9, 14, 253, 13, 253, 244, 249, 246, 228, 250, 7, 3, 251, 236, 236, 242, 242, 255, 5, 246, 1, 11, 5, 0,
-			10, 18, 15, 253, 231, 238, 248, 11, 19, 0, 1, 12, 21, 19, 14, 20, 3, 3, 1, 235, 231, 243, 242, 238, 248, 239, 248, 15, 19, 2,
-			9, 9, 253, 254, 248, 246, 247, 3, 0, 252, 5, 7, 4, 13, 10, 13, 8, 0, 251, 248, 0, 254, 255, 255, 3, 18, 16, 0, 0, 11,
-			9, 254, 239, 246, 253, 255, 254, 247, 0, 9, 14, 6, 0, 5, 19, 25, 6, 249, 251, 250, 250, 255, 255, 255, 3, 253, 255, 254, 246, 249,
-			255, 12, 0, 251, 2, 1, 3, 7, 4, 0, 0, 12, 2, 246, 239, 246, 7, 0, 0, 11, 3, 246, 246, 253, 9, 11, 252, 249, 255, 248,
-			242, 238, 247, 240, 245, 4, 249, 242, 253, 3, 12, 23, 25, 10, 17, 24, 0, 246, 255, 1, 254, 254, 246, 236, 0, 9, 9, 15, 11, 6,
-			17, 25, 7, 245, 248, 255, 3, 243, 241, 238, 238, 1, 248, 236, 245, 6, 32, 34, 253, 252, 2, 14, 20, 0, 6, 0, 248, 241, 226, 223,
-			252, 41, 39, 251, 252, 3, 10, 8, 23, 26, 6, 0, 232, 215, 9, 26, 11, 229, 214, 4, 233, 241, 10, 253, 18, 26, 241, 2, 17, 2,
-			20, 0, 250, 217, 233, 26, 221, 213, 5, 5, 42, 8, 238, 35, 13, 21, 28, 249, 252, 29, 10, 242, 233, 32, 3, 237, 6, 254, 0, 232,
-			249, 220, 4, 38, 13, 6, 250, 27, 10, 218, 51, 52, 219, 254, 227, 133, 235, 27, 239, 244, 15, 232, 7, 57, 31, 1, 49, 52, 213, 229,
-			205, 227, 30, 239, 229, 233, 14, 23, 247, 4, 28, 36, 5, 2, 226, 209, 0, 251, 16, 33, 6, 8, 12, 59, 11, 22, 3, 212, 221, 240,
-			217, 199, 14, 238, 231, 41, 4, 34, 80, 53, 13, 35, 233, 232, 254, 223, 218, 250, 217, 248, 32, 226, 17, 22, 46, 34, 26, 25, 237, 240,
-			1, 232, 222, 21, 219, 223, 28, 4, 11, 245, 8, 46, 243, 7, 246, 1, 255, 228, 243, 243, 0, 17, 17, 7, 26, 248, 0, 20, 14, 245,
-			221, 16, 1, 219, 0, 12, 242, 252, 49, 32, 235, 232, 10, 210, 2, 226, 208, 0, 9, 5, 214, 31, 42, 13, 51, 22, 0, 12, 246, 226,
-			244, 0, 241, 253, 243, 4, 0, 32, 28, 19, 32, 26, 249, 236, 229, 2, 252, 248, 240, 230, 249, 242, 5, 246, 2, 5, 248, 1, 238, 236,
-			245, 246, 6, 19, 19, 5, 7, 17, 0, 1, 24, 14, 7, 3, 10, 232, 253, 12, 11, 251, 248, 9, 253, 12, 12, 0, 245, 248, 15, 8,
-			10, 1, 0, 0, 240, 242, 239, 248, 13, 10, 224, 228, 4, 29, 17, 4, 248, 9, 24, 15, 250, 242, 1, 16, 4, 235, 238, 6, 1, 252,
-			250, 3, 14, 17, 252, 252, 7, 5, 247, 252, 10, 246, 251, 246, 250, 8, 239, 248, 252, 5, 6, 27, 19, 251, 240, 0, 11, 15, 9, 237,
-			251, 252, 242, 250, 252, 2, 10, 10, 0, 252, 238, 3, 23, 1, 0, 255, 255, 0, 11, 255, 238, 1, 4, 243, 252, 3, 245, 239, 12, 12,
-			7, 3, 6, 21, 17, 1, 252, 249, 4, 0, 247, 236, 243, 245, 249, 1, 9, 13, 16, 13, 13, 14, 0, 243, 251, 253, 246, 247, 238, 243,
-			0, 10, 21, 21, 19, 21, 9, 0, 243, 242, 247, 229, 244, 0, 245, 254, 0, 12, 28, 21, 8, 6, 0, 250, 247, 242, 244, 0, 251, 246,
-			2, 4, 5, 17, 21, 10, 9, 2, 248, 247, 250, 251, 247, 252, 254, 251, 10, 7, 0, 6, 8, 7, 254, 249, 251, 252, 245, 254, 4, 251,
-			1, 2, 250, 4, 13, 2, 252, 254, 2, 9, 3, 253, 0, 7, 9, 0, 255, 250, 249, 248, 246, 253, 5, 2, 14, 17, 7, 5, 7, 8,
-			7, 0, 243, 240, 238, 238, 254, 0, 0, 7, 24, 22, 9, 253, 248, 254, 254, 248, 249, 249, 248, 247, 0, 4, 7, 18, 10, 0, 14, 3,
-			243, 235, 237, 249, 254, 5, 8, 2, 12, 14, 11, 16, 13, 0, 3, 253, 246, 239, 245, 10, 3, 1, 9, 6, 248, 255, 14, 0, 253, 255,
-			249, 238, 244, 241, 243, 3, 6, 8, 7, 6, 10, 9, 0, 3, 10, 254, 253, 254, 248, 251, 255, 255, 3, 11, 5, 249, 18, 24, 9, 1,
-			0, 3, 0, 254, 248, 241, 240, 237, 248, 249, 238, 249, 6, 12, 10, 9, 6, 13, 11, 1, 251, 253, 253, 237, 238, 245, 245, 247, 255, 13,
-			19, 8, 13, 23, 19, 15, 12, 254, 250, 250, 247, 243, 247, 251, 0, 0, 8, 11, 246, 246, 15, 19, 244, 252, 15, 248, 242, 250, 4, 249,
-			3, 3, 241, 0, 0, 252, 250, 253, 7, 5, 6, 4, 15, 15, 5, 0, 2, 14, 17, 3, 252, 254, 3, 5, 9, 10, 0, 3, 249, 247,
-			0, 246, 249, 251, 235, 253, 9, 3, 7, 11, 8, 8, 1, 249, 0, 12, 250, 231, 242, 6, 4, 240, 242, 18, 34, 23, 14, 10, 7, 3,
-			1, 1, 243, 252, 249, 242, 245, 235, 245, 9, 4, 247, 253, 253, 2, 3, 250, 248, 245, 248, 254, 249, 251, 4, 8, 2, 254, 5, 13, 12,
-			12, 6, 252, 0, 4, 251, 241, 238, 249, 254, 245, 235, 249, 1, 252, 253, 1, 8, 15, 17, 1, 250, 1, 5, 8, 248, 232, 0, 15, 253,
-			245, 252, 13, 26, 13, 15, 17, 8, 15, 2, 249, 246, 8, 21, 13, 22, 10, 255, 255, 9, 6, 9, 18, 2, 244, 241, 0, 6, 255, 17,
-			26, 14, 7, 0, 140, 0, 4, 0, 1, 0, 0, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 50, 47, 31, 55, 66, 49,
-			36, 28, 9, 7, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 50, 90,
-			43, 76, 91, 68, 51, 39, 13, 7, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15,
-			32, 29, 40, 68, 37, 66, 79, 59, 45, 34, 11, 6, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 133, 2, 169, 6, 216, 9,
-			192, 13, 185, 15, 32, 29, 0, 49, 31, 56, 68, 51, 38, 28, 9, 9, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0,
-			104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 45, 49, 25, 74, 48, 46, 48, 28, 11, 5, 160, 95, 120, 167, 120, 120,
-			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 70, 100, 36, 105, 69, 65, 68, 40, 16, 7, 160, 95,
-			120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 60, 80, 32, 94, 62, 58, 61, 35,
-			14, 6, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 104, 0, 104, 1, 72, 8, 100, 10, 72, 13, 40, 15, 96, 25, 0, 40, 23, 66,
-			43, 41, 43, 25, 10, 4, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 148, 0, 48, 1, 238, 7, 60, 10, 42, 13,
-			50, 15, 96, 25, 45, 37, 15, 54, 57, 51, 48, 33, 13, 6, 160, 111, 120, 143, 120, 120, 130, 111, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 148, 0, 48, 1, 238, 7,
-			60, 10, 42, 13, 50, 15, 96, 25, 75, 65, 20, 72, 76, 68, 64, 44, 18, 8, 160, 111, 120, 143, 120, 120, 130, 111, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 148, 0,
-			40, 1, 12, 8, 92, 10, 42, 13, 50, 15, 96, 25, 65, 48, 17, 61, 64, 57, 54, 37, 15, 7, 160, 111, 120, 143, 120, 120, 130, 111,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 148, 0, 40, 1, 32, 8, 140, 10, 42, 13, 50, 15, 96, 25, 0, 24, 12, 43, 46, 41, 39, 27, 11, 5, 160, 111, 120, 143,
-			120, 120, 130, 111, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 105, 0, 5, 0, 1, 0, 144, 0, 176, 1, 32, 3, 20, 10, 148, 12, 120, 15, 88, 27, 45, 42, 22, 48, 58, 37,
-			34, 19, 13, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 168, 1, 32, 3, 20, 10, 148, 12, 120, 15, 88, 27, 60, 80,
-			28, 70, 77, 46, 43, 24, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 144, 0, 168, 1, 32, 3, 20, 10, 148, 12, 120, 15,
-			88, 27, 40, 71, 26, 66, 72, 43, 40, 23, 16, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 160, 1, 22, 3, 30, 10,
-			148, 12, 120, 15, 88, 27, 40, 49, 22, 55, 60, 36, 33, 19, 13, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 128, 0, 152, 1,
-			12, 3, 40, 10, 148, 12, 120, 15, 88, 27, 0, 43, 20, 51, 56, 34, 31, 18, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 40, 0,
-			5, 0, 1, 0, 176, 0, 168, 1, 88, 7, 216, 9, 32, 13, 60, 15, 96, 25, 45, 103, 44, 108, 68, 68, 75, 44, 18, 8, 160, 90,
-			120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 177, 0, 149, 1, 254, 6, 138, 9, 240, 12, 24, 15, 141, 25, 44, 91, 42, 98, 65, 63, 69, 40,
-			18, 8, 160, 93, 125, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 180, 0, 104, 1, 44, 6, 212, 8, 128, 12, 196, 14, 248, 25, 71, 72, 40, 76,
-			60, 52, 55, 32, 19, 8, 161, 101, 138, 120, 120, 120, 130, 101, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 88, 1, 56, 4, 152, 8, 104, 11, 136, 14, 144, 26,
-			40, 45, 36, 44, 52, 36, 36, 20, 20, 8, 162, 135, 157, 120, 120, 120, 162, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 88, 1, 56, 4, 152, 8, 104, 11,
-			136, 14, 144, 26, 0, 35, 31, 38, 45, 31, 31, 17, 17, 7, 162, 135, 157, 120, 120, 120, 162, 120, 157, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 75, 0, 6, 0, 1, 0, 184, 0,
-			96, 1, 192, 3, 36, 9, 224, 11, 136, 14, 144, 26, 50, 46, 20, 55, 58, 40, 35, 26, 14, 7, 162, 127, 157, 120, 120, 120, 162, 127,
-			157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 184, 0, 96, 1, 192, 3, 36, 9, 224, 11, 136, 14, 144, 26, 50, 63, 23, 64, 68, 47, 40, 30, 17, 8, 162, 127, 157, 120,
-			120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 183, 0, 96, 1, 11, 4, 46, 9, 241, 11, 137, 14, 166, 26, 50, 53, 23, 59, 61, 45, 39, 29, 16, 8,
-			162, 126, 164, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 174, 0, 97, 1, 182, 5, 108, 9, 83, 12, 147, 14, 38, 27, 50, 36, 24, 48, 39, 45,
-			40, 28, 14, 7, 164, 118, 201, 120, 120, 120, 162, 120, 200, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 168, 0, 91, 1, 240, 6, 229, 9, 206, 12, 153, 14, 143, 27, 25, 26,
-			22, 42, 33, 36, 33, 22, 10, 6, 165, 106, 186, 120, 120, 120, 162, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 164, 0, 87, 1, 119, 7, 26, 10, 3, 13, 157, 14,
-			189, 27, 0, 23, 21, 40, 33, 32, 27, 20, 6, 6, 166, 101, 183, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 140, 0, 4, 0, 1, 0, 56, 1, 73, 3,
-			129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 50, 26, 22, 47, 48, 30, 24, 17, 7, 3, 211, 144, 124, 120, 120, 120, 237, 165, 165, 44,
-			45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			56, 1, 73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 25, 85, 40, 85, 86, 54, 43, 30, 12, 6, 211, 144, 124, 120, 120, 120,
-			237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 56, 1, 73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 65, 85, 40, 85, 86, 54, 43, 30, 12, 6, 211, 144,
-			124, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 56, 1, 73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 0, 27, 23, 48, 49, 30, 24, 17,
-			7, 3, 211, 144, 124, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 235, 0, 6, 0, 1, 0, 176, 0, 72, 2, 120, 5, 156, 9, 188, 12, 116, 14, 88, 27,
-			45, 49, 33, 60, 69, 41, 39, 33, 17, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 72, 2, 120, 5, 156, 9, 188, 12,
-			116, 14, 88, 27, 60, 76, 41, 75, 87, 51, 49, 41, 21, 8, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 72, 2, 100, 5,
-			156, 9, 188, 12, 116, 14, 88, 27, 40, 61, 37, 67, 78, 46, 44, 37, 19, 7, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0,
-			184, 1, 66, 4, 106, 9, 228, 12, 216, 14, 244, 26, 40, 53, 20, 68, 59, 32, 32, 33, 15, 7, 172, 130, 122, 120, 120, 120, 197, 135,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 176, 0, 92, 1, 32, 3, 246, 8, 172, 12, 8, 15, 65, 27, 50, 47, 10, 68, 42, 22, 20, 26, 11, 8, 170, 123, 106, 120,
-			120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 176, 0, 92, 1, 32, 3, 246, 8, 172, 12, 8, 15, 65, 27, 0, 32, 8, 57, 35, 18, 17, 22, 9, 6,
-			170, 123, 106, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 215, 0, 6, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 45, 44,
-			6, 70, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15,
-			144, 26, 30, 68, 7, 87, 45, 26, 26, 38, 15, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9,
-			12, 13, 60, 15, 144, 26, 50, 61, 7, 83, 43, 25, 25, 36, 14, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 146, 0, 166, 1,
-			126, 4, 46, 9, 228, 12, 216, 14, 248, 26, 50, 47, 16, 68, 52, 30, 30, 32, 14, 8, 172, 137, 118, 120, 120, 120, 177, 125, 117, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			125, 0, 240, 1, 78, 5, 39, 9, 200, 12, 145, 14, 66, 27, 40, 32, 21, 51, 55, 31, 32, 27, 13, 7, 169, 146, 130, 120, 120, 120,
-			177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 1, 0, 122, 0, 8, 2, 102, 5, 38, 9, 196, 12, 136, 14, 75, 27, 0, 31, 22, 50, 55, 31, 32, 26, 13, 7, 168, 147,
-			131, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36,
-			0, 0, 0, 250, 0, 0, 100, 0, 5, 0, 1, 0, 32, 1, 32, 3, 236, 4, 160, 10, 172, 13, 180, 15, 32, 28, 50, 46, 32, 56,
-			66, 39, 32, 22, 9, 4, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 32, 1, 32, 3, 216, 4, 160, 10, 172, 13, 180, 15, 32, 28,
-			50, 91, 44, 82, 88, 54, 44, 30, 13, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 32, 1, 32, 3, 0, 5, 160, 10, 172, 13,
-			180, 15, 32, 28, 50, 87, 44, 82, 88, 54, 44, 30, 13, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 32, 1, 13, 3, 0, 5,
-			120, 10, 52, 13, 120, 15, 32, 28, 50, 68, 39, 69, 82, 48, 39, 27, 12, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 32, 1,
-			13, 3, 0, 5, 120, 10, 52, 13, 120, 15, 32, 28, 0, 35, 28, 50, 59, 35, 28, 19, 8, 4, 162, 155, 135, 120, 120, 120, 192, 155,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			160, 0, 4, 0, 1, 0, 149, 0, 24, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 44, 7, 62, 51, 47, 51, 23, 16, 8,
-			182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 149, 0, 24, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 60, 56, 8, 70, 58, 53,
-			58, 26, 18, 9, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 149, 0, 8, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 49,
-			14, 62, 47, 46, 49, 21, 16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 149, 0, 8, 1, 207, 8, 214, 11, 112, 13, 134, 16,
-			42, 27, 0, 45, 14, 59, 45, 44, 47, 20, 15, 7, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 125, 0, 6, 0, 1, 0, 14, 1, 8, 3,
-			176, 4, 200, 10, 2, 13, 238, 14, 192, 27, 45, 42, 24, 56, 63, 36, 30, 25, 9, 4, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			14, 1, 8, 3, 176, 4, 200, 10, 2, 13, 238, 14, 192, 27, 40, 92, 36, 82, 93, 53, 44, 37, 13, 6, 165, 148, 135, 120, 120, 120,
-			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 14, 1, 8, 3, 176, 4, 200, 10, 2, 13, 238, 14, 192, 27, 35, 75, 32, 74, 84, 48, 39, 33, 12, 6, 165, 148,
-			135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 245, 0, 150, 2, 86, 4, 144, 10, 229, 12, 209, 14, 107, 27, 80, 62, 28, 69, 70, 43, 36, 31,
-			13, 6, 164, 144, 140, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 186, 0, 137, 1, 132, 3, 13, 10, 159, 12, 139, 14, 164, 26, 40, 48, 21, 61,
-			38, 31, 28, 28, 17, 7, 163, 134, 154, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 184, 0, 112, 1, 132, 3, 236, 9, 148, 12, 136, 14, 144, 26,
-			0, 32, 18, 50, 30, 25, 23, 23, 14, 6, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 230, 0, 5, 0, 1, 0, 72, 1, 136, 3, 40, 5,
-			180, 10, 112, 13, 191, 14, 32, 28, 45, 45, 30, 64, 55, 34, 30, 19, 9, 4, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 65, 70,
-			130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 72, 1,
-			136, 3, 40, 5, 180, 10, 112, 13, 191, 14, 32, 28, 70, 103, 45, 97, 83, 52, 45, 28, 13, 6, 207, 150, 105, 120, 120, 120, 237, 165,
-			165, 44, 65, 70, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 55, 1, 100, 3, 140, 5, 160, 10, 116, 13, 189, 14, 32, 28, 70, 80, 40, 88, 78, 48, 40, 26, 12, 6, 203, 144, 114, 120,
-			120, 120, 237, 165, 165, 44, 60, 70, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 156, 0, 88, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 45, 40, 27, 54, 49, 58, 45, 32, 9, 7,
-			167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 88, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 25, 22, 44, 45, 41,
-			37, 30, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 200, 0, 4, 0, 1, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14,
-			128, 28, 50, 37, 26, 54, 56, 55, 44, 32, 11, 6, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 160, 0, 232, 1, 198, 7, 236, 9,
-			12, 13, 101, 14, 128, 28, 80, 57, 32, 66, 69, 68, 54, 40, 13, 8, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 232, 1,
-			198, 7, 236, 9, 12, 13, 101, 14, 128, 28, 70, 59, 33, 68, 70, 69, 55, 41, 13, 8, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14, 128, 28, 0, 27, 22, 45, 47, 47, 37, 27, 9, 5, 185, 112, 127, 120, 120, 120,
-			185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 60, 0, 4, 0, 1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 45, 35, 18, 54, 40, 32, 35, 31,
-			9, 10, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 60, 68, 25, 76,
-			56, 45, 48, 43, 13, 15, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25,
-			60, 55, 23, 68, 50, 40, 44, 39, 11, 13, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12,
-			99, 14, 151, 25, 0, 44, 20, 61, 45, 36, 39, 35, 10, 12, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 55, 0, 2, 0, 5, 0, 76, 0,
-			104, 1, 8, 7, 124, 11, 172, 13, 160, 15, 32, 29, 55, 17, 9, 45, 22, 18, 34, 20, 8, 0, 155, 135, 97, 120, 120, 120, 95, 105,
-			97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			5, 0, 76, 0, 104, 1, 8, 7, 124, 11, 172, 13, 160, 15, 32, 29, 0, 12, 7, 38, 23, 15, 28, 16, 7, 0, 150, 135, 97, 120,
-			120, 120, 90, 105, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 18, 0, 2, 0, 5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 18, 14, 3, 39, 18, 28,
-			36, 20, 6, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 0, 26,
-			4, 52, 24, 38, 48, 27, 8, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 245, 0, 6, 0, 1, 0, 149, 0, 24, 1, 207, 8, 214, 11,
-			112, 13, 134, 16, 42, 27, 45, 48, 8, 65, 54, 50, 54, 25, 16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 149, 0, 24, 1,
-			207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 100, 60, 9, 73, 61, 56, 61, 28, 18, 9, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			156, 0, 67, 1, 137, 8, 108, 11, 112, 13, 68, 16, 46, 27, 30, 50, 12, 67, 55, 52, 52, 26, 15, 8, 179, 114, 136, 130, 138, 153,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 184, 0, 239, 1, 111, 7, 196, 9, 112, 13, 60, 15, 64, 27, 35, 41, 27, 67, 53, 52, 39, 27, 12, 7, 167, 90,
-			150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 2, 124, 6, 136, 9, 32, 13, 85, 15, 64, 28, 35, 26, 28, 44, 46, 48, 38, 21,
-			7, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 88, 2, 240, 5, 136, 9, 112, 13, 29, 16, 192, 28, 0, 23, 28, 42,
-			38, 38, 30, 16, 5, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 150, 0, 5, 0, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11,
-			136, 14, 144, 26, 50, 51, 26, 61, 52, 32, 29, 20, 14, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 132, 1, 172, 3,
-			116, 9, 224, 11, 136, 14, 144, 26, 60, 78, 32, 75, 64, 39, 36, 25, 18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0,
-			132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 40, 67, 30, 71, 57, 37, 33, 23, 16, 8, 162, 127, 150, 120, 120, 120, 162, 127,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 128, 0, 32, 2, 156, 4, 252, 8, 68, 12, 136, 14, 96, 27, 40, 34, 29, 53, 50, 34, 31, 29, 15, 5, 167, 135, 135, 120,
-			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 128, 0, 32, 2, 156, 4, 252, 8, 68, 12, 136, 14, 96, 27, 0, 34, 29, 53, 50, 34, 31, 29, 15, 5,
-			167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 190, 0, 5, 0, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 50, 34,
-			23, 44, 44, 18, 36, 20, 5, 5, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14,
-			15, 28, 50, 66, 32, 61, 61, 25, 50, 28, 8, 7, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 160, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11,
-			48, 12, 36, 14, 15, 28, 50, 66, 32, 61, 61, 25, 50, 28, 8, 7, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59,
-			175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 112, 2,
-			192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 40, 47, 27, 52, 52, 21, 42, 24, 6, 6, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44,
-			45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 0, 20, 18, 34, 34, 14, 28, 16, 4, 4, 186, 175, 135, 120, 120, 120,
-			105, 185, 148, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 255, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 5, 0, 1, 0, 244, 0, 35, 2, 63, 7,
-			232, 9, 38, 13, 144, 14, 176, 28, 45, 32, 26, 49, 47, 49, 41, 30, 9, 6, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 244, 0,
-			35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 71, 38, 72, 72, 76, 63, 46, 14, 10, 202, 118, 143, 120, 120, 120, 135, 180,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 60, 50, 32, 60, 60, 64, 53, 38, 12, 8, 202, 118, 143, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 144, 0, 64, 1, 252, 8, 180, 10, 152, 13, 10, 15, 32, 28, 60, 25, 18, 46, 43, 39, 36, 28, 8, 7,
-			167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 144, 0, 64, 1, 252, 8, 180, 10, 152, 13, 10, 15, 32, 28, 0, 23, 17, 45, 41, 38,
-			35, 27, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 156, 0, 56, 1, 252, 8, 4, 11, 212, 13, 120, 15,
-			144, 27, 45, 40, 11, 59, 53, 52, 45, 28, 11, 7, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 156, 0, 56, 1, 252, 8, 4, 11,
-			212, 13, 120, 15, 144, 27, 70, 83, 17, 85, 76, 75, 65, 40, 16, 10, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 156, 0, 56, 1,
-			252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 60, 67, 15, 76, 69, 67, 58, 36, 15, 9, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			156, 0, 48, 1, 252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 0, 30, 10, 51, 46, 45, 39, 24, 10, 6, 176, 106, 143, 120, 120, 120,
-			185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 185, 0, 4, 0, 1, 0, 248, 0, 200, 2, 136, 4, 220, 10, 52, 13, 68, 15, 176, 27, 45, 50, 30, 61, 64, 39, 36, 25,
-			7, 5, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 200, 2, 136, 4, 220, 10, 52, 13, 68, 15, 176, 27, 60, 96, 42, 85,
-			89, 55, 49, 35, 10, 7, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 248, 0, 192, 2, 136, 4, 220, 10, 52, 13, 68, 15, 176, 27,
-			80, 85, 40, 80, 84, 52, 47, 33, 9, 7, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 248, 0, 184, 2, 136, 4, 220, 10, 52, 13,
-			68, 15, 176, 27, 0, 48, 30, 60, 63, 39, 35, 25, 7, 5, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 100, 0, 4, 0, 1, 0, 176, 0,
-			88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 47, 3, 73, 43, 21, 21, 30, 12, 7, 177, 125, 110, 120, 120, 120, 177, 125,
-			125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 79, 4, 96, 56, 28, 28, 40, 16, 10, 177, 125, 110, 120,
-			120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 63, 3, 85, 49, 24, 24, 35, 14, 8,
-			177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 31, 2, 60, 35, 17,
-			17, 25, 10, 6, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15,
-			144, 26, 45, 55, 12, 64, 58, 30, 27, 24, 15, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 112, 1, 32, 3, 100, 10,
-			48, 12, 60, 15, 144, 26, 70, 92, 16, 84, 76, 40, 36, 32, 20, 10, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 112, 1,
-			32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 60, 75, 14, 75, 68, 36, 32, 28, 18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 0, 49, 11, 61, 55, 29, 26, 23, 14, 7, 162, 127, 150, 120, 120, 120,
-			162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 0, 0, 6, 0, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 45, 60, 24, 58, 73, 41, 37, 34,
-			9, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 30, 103, 32, 76,
-			95, 54, 48, 44, 12, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0, 216, 2, 116, 4, 160, 10, 148, 12, 41, 14, 96, 27,
-			35, 85, 32, 68, 98, 49, 41, 41, 16, 8, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 246, 0, 200, 2, 120, 5, 216, 9, 132, 13,
-			224, 16, 88, 27, 50, 64, 34, 76, 64, 48, 44, 20, 12, 10, 226, 150, 136, 120, 120, 120, 235, 150, 136, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 5, 0, 166, 0, 80, 1, 192, 8,
-			229, 10, 132, 13, 94, 15, 138, 27, 70, 50, 16, 60, 60, 57, 50, 30, 13, 8, 181, 110, 142, 120, 120, 120, 235, 150, 136, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 156, 0,
-			56, 1, 252, 8, 4, 11, 132, 13, 50, 15, 144, 27, 0, 40, 11, 59, 53, 52, 45, 28, 11, 7, 176, 106, 143, 120, 120, 120, 185, 107,
-			167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			255, 0, 5, 0, 1, 0, 24, 1, 232, 2, 4, 6, 196, 9, 112, 13, 40, 15, 153, 28, 45, 45, 31, 60, 60, 46, 36, 28, 10, 6,
-			215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 232, 2, 4, 6, 196, 9, 112, 13, 40, 15, 153, 28, 75, 88, 44, 84, 84, 64,
-			51, 39, 14, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 24, 1, 232, 2, 4, 6, 196, 9, 112, 13, 40, 15, 153, 28, 65, 79,
-			41, 79, 79, 60, 48, 37, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 80, 1, 192, 8, 140, 10, 152, 13, 166, 14,
-			32, 28, 70, 43, 32, 55, 49, 58, 45, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 72, 1, 232, 8, 160, 10,
-			92, 13, 10, 15, 32, 28, 0, 30, 28, 45, 45, 41, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0,
-			122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 45, 49, 28, 59, 69, 41, 43, 30, 17, 6, 170, 133, 135, 122, 124, 128,
-			197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 79, 36, 75, 88, 52, 55, 38, 21, 8, 170, 133,
-			135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 64, 32, 68, 79, 47, 49, 35,
-			19, 7, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 45, 43, 32, 56,
-			49, 59, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28,
-			0, 27, 28, 44, 44, 40, 37, 29, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 210, 0, 5, 0, 1, 0, 172, 0, 64, 1, 228, 2,
-			96, 9, 12, 13, 60, 15, 144, 26, 45, 35, 2, 64, 42, 19, 19, 25, 8, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 172, 0,
-			64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 75, 74, 4, 92, 64, 28, 28, 36, 12, 10, 177, 117, 100, 120, 120, 120, 177, 117,
-			115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 170, 0, 60, 1, 122, 3, 166, 9, 24, 13, 106, 15, 164, 26, 30, 52, 4, 79, 39, 26, 27, 30, 11, 8, 178, 118, 103, 121,
-			123, 125, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 9, 0, 148, 0, 16, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 60, 35, 15, 49, 34, 38, 45, 15, 15, 7,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 148, 0, 16, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 0, 33, 14, 47, 33, 36,
-			44, 14, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 75, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6, 16, 9, 228, 12, 96, 14,
-			100, 25, 45, 42, 18, 60, 40, 35, 37, 34, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 24, 1, 184, 6, 16, 9,
-			228, 12, 96, 14, 100, 25, 75, 78, 25, 82, 56, 47, 51, 47, 12, 17, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 133, 0, 27, 1,
-			40, 7, 96, 9, 253, 12, 122, 14, 196, 25, 75, 61, 23, 71, 51, 46, 48, 41, 11, 14, 167, 91, 138, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			136, 0, 38, 1, 187, 8, 180, 10, 86, 13, 215, 14, 33, 27, 45, 49, 21, 60, 52, 55, 50, 32, 12, 9, 169, 96, 152, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 137, 0, 40, 1, 232, 8, 220, 10, 97, 13, 226, 14, 72, 27, 0, 38, 20, 55, 49, 53, 47, 29, 11, 8, 169, 97,
-			153, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 125, 0, 6, 0, 1, 0, 240, 0, 176, 2, 36, 4, 20, 10, 188, 12, 92, 14, 87, 27, 45, 44, 21, 50,
-			62, 33, 33, 29, 8, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 240, 0, 176, 2, 36, 4, 20, 10, 188, 12, 92, 14, 87, 27,
-			40, 96, 30, 73, 92, 48, 48, 43, 12, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 232, 0, 148, 2, 12, 4, 76, 10, 200, 12,
-			104, 14, 87, 27, 35, 78, 27, 66, 81, 43, 43, 38, 11, 6, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 32, 2, 172, 3,
-			220, 10, 248, 12, 156, 14, 87, 27, 80, 74, 27, 66, 75, 43, 43, 38, 11, 6, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 186, 0,
-			137, 1, 132, 3, 13, 10, 159, 12, 139, 14, 164, 26, 40, 49, 22, 61, 38, 31, 28, 28, 17, 7, 163, 134, 154, 120, 120, 120, 167, 142,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			1, 0, 184, 0, 112, 1, 132, 3, 236, 9, 148, 12, 136, 14, 144, 26, 0, 32, 18, 50, 30, 25, 23, 23, 14, 6, 162, 133, 155, 120,
-			120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0,
-			0, 250, 0, 0, 255, 0, 5, 0, 1, 0, 168, 0, 4, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 56, 21, 52, 64, 39,
-			36, 18, 13, 5, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 4, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 70, 108,
-			29, 73, 89, 54, 50, 25, 18, 7, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 240, 1, 92, 3, 60, 10, 146, 11, 158, 14,
-			18, 27, 80, 90, 25, 71, 81, 49, 45, 25, 17, 7, 168, 134, 145, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 56, 1, 92, 3, 56, 9,
-			12, 13, 60, 15, 144, 26, 60, 53, 3, 79, 43, 23, 23, 33, 13, 8, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 56, 1,
-			92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 33, 2, 62, 35, 19, 19, 27, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 250, 0,
-			5, 0, 1, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14, 104, 28, 45, 29, 21, 46, 46, 49, 37, 28, 9, 6, 184, 108,
-			128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14, 104, 28, 60, 84, 36, 79, 78, 83, 63, 48,
-			15, 11, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 198, 0, 192, 1, 44, 7, 195, 9, 213, 12, 91, 14, 62, 28, 80, 71, 31, 76,
-			61, 74, 57, 44, 14, 10, 183, 109, 149, 120, 120, 120, 185, 107, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 178, 0, 71, 1, 179, 3, 63, 9, 9, 13, 48, 15, 166, 26,
-			65, 42, 4, 71, 37, 23, 22, 30, 12, 7, 178, 124, 103, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 178, 0, 71, 1, 179, 3, 63, 9, 9, 13,
-			48, 15, 166, 26, 0, 30, 3, 60, 31, 19, 18, 25, 10, 6, 178, 124, 103, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 4, 1, 6, 0, 1, 0, 152, 0,
-			40, 1, 152, 8, 4, 11, 92, 13, 135, 15, 160, 26, 45, 21, 4, 46, 41, 41, 42, 20, 9, 4, 167, 105, 120, 120, 120, 120, 167, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 152, 0, 40, 1, 132, 8, 4, 11, 92, 13, 135, 15, 160, 26, 60, 62, 7, 78, 70, 70, 71, 34, 16, 8, 167, 105, 120, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 155, 0, 43, 1, 188, 7, 195, 10, 81, 13, 125, 15, 158, 26, 80, 53, 6, 76, 54, 61, 61, 33, 15, 7,
-			168, 107, 150, 120, 120, 120, 167, 90, 152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 174, 0, 62, 1, 199, 3, 80, 9, 17, 13, 64, 15, 145, 26, 35, 39, 3, 71, 36, 22,
-			22, 29, 12, 7, 176, 123, 103, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 64, 1, 152, 3, 56, 9, 12, 13, 60, 15, 144, 26, 40, 37,
-			2, 67, 33, 19, 19, 28, 11, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 64, 1, 152, 3, 56, 9, 12, 13, 60, 15,
-			144, 26, 0, 30, 2, 60, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 40, 1, 232, 2,
-			240, 5, 196, 9, 112, 13, 40, 15, 153, 28, 45, 42, 29, 57, 60, 43, 35, 26, 9, 5, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			40, 1, 232, 2, 240, 5, 196, 9, 112, 13, 40, 15, 153, 28, 80, 81, 41, 79, 83, 60, 48, 37, 13, 8, 215, 138, 143, 120, 120, 120,
-			237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 24, 1, 186, 2, 4, 6, 180, 9, 98, 13, 20, 15, 71, 28, 80, 64, 35, 71, 72, 53, 43, 34, 12, 7, 210, 133,
-			142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 40, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 42, 19, 61, 41, 35, 38, 35,
-			9, 12, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 40, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 26, 15, 48,
-			33, 28, 30, 28, 7, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13,
-			144, 14, 176, 28, 45, 28, 23, 46, 45, 48, 37, 27, 8, 6, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 244, 0, 35, 2, 63, 7,
-			232, 9, 38, 13, 144, 14, 176, 28, 80, 82, 40, 79, 77, 81, 63, 46, 14, 10, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0,
-			35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 73, 38, 75, 72, 77, 60, 43, 13, 9, 202, 118, 143, 120, 120, 120, 135, 180,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 47, 20, 63, 43, 37, 40, 36, 10, 13, 165, 90, 135, 120,
-			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 30, 16, 50, 34, 29, 32, 29, 8, 10,
-			165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 45, 49,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 165, 0, 16, 2, 84, 6, 76, 9, 116, 14, 44, 16,
+			208, 26, 40, 39, 31, 61, 57, 48, 42, 34, 14, 6, 165, 113, 136, 120, 120, 120, 130, 113, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 160, 0, 16, 2, 220, 5, 232, 8,
+			232, 13, 44, 16, 199, 27, 25, 39, 28, 53, 56, 42, 36, 23, 14, 5, 171, 161, 165, 121, 122, 125, 171, 137, 172, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 151, 0, 12, 2,
+			190, 5, 142, 8, 42, 13, 100, 15, 119, 27, 0, 30, 24, 46, 52, 37, 32, 24, 11, 5, 170, 148, 163, 120, 121, 122, 171, 137, 172, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 19, 1,
+			7, 0, 1, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 45, 46, 31, 58, 62, 38, 39, 24, 12, 5, 186, 155,
+			145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 229, 0, 16, 3, 40, 5, 60, 10, 52, 13, 160, 15, 238, 27, 75, 88, 43, 81, 86, 54, 54, 34,
+			18, 7, 186, 155, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 234, 2, 20, 5, 40, 10, 248, 12, 140, 15, 220, 27, 45, 70, 38, 71,
+			76, 47, 47, 29, 16, 6, 184, 154, 145, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 185, 0, 64, 2, 76, 4, 236, 9, 28, 12, 20, 15, 89, 27,
+			40, 32, 23, 45, 48, 29, 25, 16, 10, 4, 172, 140, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 164, 0, 8, 2, 0, 5, 10, 9, 38, 12,
+			216, 14, 64, 27, 40, 25, 19, 41, 45, 29, 25, 18, 9, 4, 171, 137, 155, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 153, 0, 236, 1, 50, 5,
+			109, 8, 53, 12, 186, 14, 51, 27, 30, 23, 17, 39, 44, 29, 25, 19, 8, 4, 170, 136, 158, 120, 120, 120, 237, 165, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 142, 0,
+			208, 1, 100, 5, 208, 7, 68, 12, 156, 14, 38, 27, 0, 15, 14, 34, 39, 27, 23, 19, 6, 3, 170, 135, 161, 120, 120, 120, 140, 120,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8,
+			165, 0, 4, 0, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 45, 66, 33, 67, 77, 42, 51, 25, 15, 6,
+			170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 80, 101, 41, 84, 95, 52,
+			63, 31, 18, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 40, 83,
+			37, 76, 87, 48, 57, 28, 17, 7, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 204, 0, 100, 2, 216, 4, 60, 10, 168, 12, 10, 15,
+			0, 28, 0, 51, 31, 59, 68, 37, 45, 22, 13, 9, 167, 165, 150, 120, 120, 120, 167, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 24, 1, 16, 3,
+			156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 52, 29, 59, 64, 45, 35, 22, 10, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44,
+			45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 80, 99, 40, 81, 89, 62, 48, 31, 14, 7, 186, 152, 135, 120, 120, 120,
+			192, 155, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 70, 89, 38, 77, 84, 59, 45, 29, 14, 7, 186, 152,
+			135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 24, 1, 8, 3, 176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 0, 47, 28, 58, 61, 42, 33, 22,
+			10, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 160, 0, 4, 0, 1, 0, 215, 0, 6, 2, 128, 7, 236, 9, 251, 12, 61, 14, 144, 28,
+			50, 45, 31, 61, 55, 60, 46, 36, 11, 8, 175, 109, 133, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 215, 0, 6, 2, 128, 7, 236, 9, 251, 12,
+			61, 14, 144, 28, 70, 80, 42, 81, 74, 80, 61, 48, 15, 11, 175, 109, 133, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 202, 0, 62, 2, 30, 7,
+			236, 9, 82, 13, 228, 14, 207, 28, 40, 62, 39, 70, 73, 69, 53, 39, 13, 8, 195, 127, 153, 120, 120, 120, 160, 105, 127, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0,
+			69, 2, 18, 7, 236, 9, 92, 13, 247, 14, 215, 28, 0, 35, 29, 51, 54, 50, 39, 28, 9, 6, 198, 129, 156, 120, 120, 120, 198, 105,
+			127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			170, 0, 4, 0, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14, 96, 26, 50, 39, 29, 58, 54, 47, 42, 30, 14, 6,
+			163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14, 96, 26, 60, 76, 41, 81, 76, 65,
+			58, 42, 20, 8, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14, 96, 26, 60, 68,
+			39, 77, 72, 62, 55, 40, 18, 7, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 154, 0, 248, 1, 164, 6, 176, 9, 238, 12, 216, 14,
+			96, 26, 0, 34, 27, 54, 50, 44, 39, 28, 13, 5, 163, 133, 150, 120, 120, 120, 130, 128, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 200, 0, 4, 0, 1, 0, 184, 0, 8, 2,
+			208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 50, 40, 27, 55, 61, 58, 43, 32, 11, 8, 185, 117, 127, 120, 120, 120, 185, 117, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 70, 76, 38, 76, 83, 80, 60, 44, 16, 12, 185, 117, 127, 120, 120, 120,
+			185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 80, 43, 28, 57, 62, 60, 45, 33, 12, 9, 185, 117,
+			127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 8, 2, 208, 7, 236, 9, 248, 12, 66, 14, 128, 28, 0, 27, 22, 45, 50, 48, 36, 26,
+			9, 7, 185, 117, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 199, 0, 54, 2, 122, 3, 81, 10, 163, 11, 54, 14, 159, 27,
+			50, 61, 22, 57, 69, 34, 33, 19, 12, 5, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 199, 0, 54, 2, 122, 3, 81, 10, 163, 11,
+			54, 14, 159, 27, 60, 115, 30, 78, 96, 47, 45, 26, 17, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 199, 0, 54, 2, 122, 3,
+			81, 10, 163, 11, 54, 14, 159, 27, 40, 104, 29, 74, 91, 45, 43, 25, 16, 6, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 199, 0,
+			54, 2, 122, 3, 81, 10, 163, 11, 54, 14, 159, 27, 0, 52, 20, 52, 64, 32, 30, 17, 11, 4, 172, 142, 135, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			175, 0, 4, 0, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 45, 44, 27, 54, 58, 34, 31, 24, 12, 4,
+			189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 80, 96, 40, 81, 86, 51,
+			46, 36, 18, 7, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15, 214, 27, 50, 85,
+			38, 76, 81, 48, 44, 34, 17, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 216, 0, 160, 2, 156, 4, 35, 10, 227, 12, 20, 15,
+			214, 27, 0, 42, 27, 54, 57, 34, 31, 24, 12, 4, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 135, 0, 151, 1,
+			220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 45, 43, 21, 58, 55, 49, 40, 32, 10, 11, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			135, 0, 151, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 80, 65, 26, 72, 68, 61, 49, 39, 12, 13, 178, 126, 132, 123, 123, 141,
+			187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 135, 0, 151, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 70, 56, 24, 67, 63, 56, 45, 36, 12, 12, 178, 126,
+			132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 135, 0, 136, 1, 220, 5, 112, 8, 188, 12, 136, 14, 153, 24, 0, 38, 20, 55, 52, 46, 37, 30,
+			9, 10, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 240, 0, 7, 0, 1, 0, 24, 1, 240, 2, 166, 4, 80, 10, 192, 13, 150, 15, 32, 28,
+			45, 57, 30, 66, 66, 46, 36, 23, 11, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 24, 1, 240, 2, 166, 4, 80, 10, 192, 13,
+			150, 15, 32, 28, 70, 109, 41, 91, 91, 63, 49, 32, 15, 8, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 24, 1, 228, 2, 175, 4,
+			58, 10, 204, 13, 162, 15, 32, 28, 50, 94, 40, 84, 85, 57, 48, 31, 14, 7, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 5, 0, 24, 1,
+			199, 2, 196, 4, 4, 10, 232, 13, 192, 15, 32, 28, 30, 77, 38, 76, 78, 46, 47, 29, 13, 7, 186, 152, 135, 120, 120, 120, 192, 155,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			5, 0, 24, 1, 184, 2, 20, 5, 176, 9, 244, 11, 120, 15, 32, 28, 25, 31, 28, 51, 40, 30, 33, 20, 9, 5, 186, 152, 135, 120,
+			120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 24, 1, 176, 2, 40, 5, 176, 9, 204, 11, 236, 14, 32, 28, 20, 30, 28, 52, 24, 7, 14, 14, 9, 5,
+			186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 24, 1, 176, 2, 40, 5, 176, 9, 204, 11, 236, 14, 32, 28, 0, 33, 28, 52, 40, 31,
+			33, 14, 9, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 240, 0, 5, 0, 1, 0, 200, 0, 208, 1, 188, 7, 216, 9, 248, 12, 66, 14,
+			128, 28, 45, 44, 25, 57, 57, 61, 46, 35, 10, 8, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 208, 1, 188, 7, 216, 9,
+			248, 12, 66, 14, 128, 28, 70, 77, 34, 75, 75, 81, 61, 46, 14, 10, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 199, 0, 227, 1,
+			131, 7, 210, 9, 248, 12, 73, 14, 106, 28, 75, 67, 33, 72, 72, 74, 57, 43, 14, 9, 184, 111, 127, 120, 120, 120, 185, 107, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 62, 37, 71, 79, 48, 44, 32, 16, 0, 180, 150, 125, 120, 120, 120,
+			200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 0, 38, 29, 56, 62, 38, 35, 25, 13, 0, 180, 150,
+			125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 45, 0, 4, 0, 1, 0, 152, 0, 72, 1, 76, 9, 124, 11, 172, 13, 120, 15, 160, 26, 45, 41, 17, 60,
+			53, 49, 49, 26, 12, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 72, 1, 76, 9, 124, 11, 172, 13, 120, 15, 160, 26,
+			100, 69, 22, 78, 70, 64, 64, 34, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 24, 1, 136, 9, 164, 11, 16, 14,
+			120, 15, 160, 26, 40, 67, 21, 74, 66, 57, 61, 32, 15, 7, 167, 97, 120, 120, 120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 24, 1, 136, 9,
+			164, 11, 16, 14, 120, 15, 160, 26, 0, 38, 16, 56, 50, 43, 46, 24, 11, 5, 167, 97, 120, 120, 120, 120, 167, 97, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 150, 0, 4, 0,
+			1, 0, 192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 50, 59, 24, 59, 64, 35, 34, 20, 12, 5, 172, 142, 135, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 192, 0, 40, 2, 112, 3, 100, 10, 164, 11, 96, 14, 159, 27, 60, 124, 36, 85, 93, 52, 50, 29, 18, 7,
+			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0, 40, 2, 132, 3, 100, 10, 164, 11, 96, 14, 159, 27, 40, 97, 32, 77, 83, 46,
+			45, 26, 16, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 40, 2, 56, 4, 0, 10, 104, 11, 36, 14, 159, 27, 0, 34,
+			21, 51, 55, 31, 30, 17, 11, 4, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 6, 0, 1, 0, 153, 0, 168, 1, 12, 3, 120, 10,
+			168, 12, 196, 14, 244, 26, 45, 64, 21, 71, 54, 37, 41, 30, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 153, 0, 168, 1,
+			12, 3, 120, 10, 168, 12, 196, 14, 244, 26, 60, 89, 25, 84, 64, 44, 49, 36, 20, 9, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			153, 0, 192, 1, 32, 3, 120, 10, 168, 12, 176, 14, 244, 26, 50, 79, 23, 79, 60, 41, 41, 38, 19, 8, 165, 126, 145, 120, 120, 120,
+			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 153, 0, 224, 1, 112, 3, 196, 9, 168, 12, 156, 14, 244, 26, 45, 68, 32, 75, 57, 21, 39, 36, 18, 8, 165, 126,
+			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 153, 0, 248, 1, 172, 3, 252, 8, 128, 12, 116, 14, 244, 26, 30, 33, 28, 54, 31, 23, 28, 25,
+			11, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 153, 0, 248, 1, 172, 3, 28, 7, 84, 11, 72, 13, 244, 26, 0, 31, 27, 51,
+			38, 16, 27, 24, 10, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 195, 0, 4, 0, 1, 0, 135, 0, 136, 1, 164, 6, 192, 8, 188, 12,
+			128, 14, 153, 24, 45, 42, 22, 57, 51, 48, 39, 31, 10, 11, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 135, 0, 136, 1, 164, 6,
+			192, 8, 188, 12, 128, 14, 153, 24, 80, 73, 30, 76, 68, 64, 52, 41, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 135, 0,
+			136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 70, 59, 27, 68, 61, 57, 46, 37, 12, 13, 178, 126, 132, 123, 123, 141, 187, 126,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 135, 0, 136, 1, 164, 6, 192, 8, 188, 12, 128, 14, 153, 24, 0, 37, 21, 53, 48, 45, 36, 29, 9, 10, 178, 126, 132, 123,
+			123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 235, 0, 5, 0, 1, 0, 24, 1, 186, 2, 40, 5, 180, 9, 98, 13, 20, 15, 71, 28, 45, 42, 28, 56, 57, 42,
+			34, 27, 9, 6, 210, 133, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 24, 1, 186, 2, 40, 5, 180, 9, 98, 13, 20, 15, 71, 28, 60, 81,
+			39, 79, 80, 58, 48, 37, 13, 8, 210, 133, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 10, 1, 145, 2, 70, 5, 166, 9, 86, 13, 2, 15,
+			254, 27, 80, 64, 33, 70, 69, 51, 43, 34, 11, 8, 205, 129, 141, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 24, 1, 84, 6, 36, 9,
+			228, 12, 96, 14, 100, 25, 50, 43, 19, 61, 41, 35, 38, 35, 9, 12, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1,
+			64, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 27, 15, 48, 33, 28, 30, 28, 7, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 220, 0,
+			5, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 45, 14, 61, 43, 32, 35, 26, 14, 6, 165, 126,
+			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 90, 77, 19, 79, 57, 41, 46, 34,
+			19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 62, 17, 71,
+			51, 37, 41, 30, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26,
+			30, 51, 15, 65, 46, 34, 38, 28, 15, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12,
+			176, 14, 244, 26, 0, 30, 11, 50, 35, 26, 29, 21, 11, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 51, 1,
+			124, 3, 60, 5, 124, 10, 93, 13, 187, 14, 253, 27, 45, 59, 32, 70, 62, 38, 33, 22, 10, 5, 205, 152, 124, 120, 120, 120, 249, 174,
+			255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 51, 1, 124, 3, 60, 5, 124, 10, 93, 13, 187, 14, 253, 27, 50, 117, 45, 99, 87, 54, 47, 31, 15, 7, 205, 152, 124, 120,
+			120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 9, 1, 254, 2, 28, 6, 68, 10, 45, 13, 119, 14, 49, 28, 50, 93, 43, 90, 79, 62, 51, 33, 14, 8,
+			187, 133, 125, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 64, 2, 108, 7, 240, 9, 228, 12, 16, 14, 128, 28, 50, 57, 37, 72, 64, 71,
+			54, 34, 13, 10, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 224, 0, 40, 2, 8, 7, 176, 9, 112, 13, 241, 14, 64, 27, 40, 42,
+			28, 60, 56, 56, 49, 43, 8, 8, 255, 90, 180, 120, 120, 120, 187, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 224, 0, 40, 2, 8, 7, 176, 9, 112, 13, 241, 14,
+			64, 27, 0, 34, 25, 54, 50, 50, 44, 39, 7, 7, 255, 90, 180, 120, 120, 120, 187, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 245, 0, 6, 0, 1, 0, 24, 1, 248, 2,
+			176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 60, 34, 66, 63, 43, 37, 24, 11, 6, 186, 152, 152, 120, 120, 120, 192, 155, 167, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			24, 1, 248, 2, 176, 4, 120, 10, 152, 13, 60, 15, 32, 28, 60, 116, 48, 92, 88, 60, 52, 34, 16, 8, 186, 152, 152, 120, 120, 120,
+			192, 155, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 12, 1, 224, 2, 100, 5, 134, 10, 158, 13, 64, 15, 41, 28, 40, 94, 45, 93, 72, 60, 49, 33, 15, 8, 186, 148,
+			160, 120, 120, 120, 192, 155, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 214, 0, 28, 2, 28, 7, 177, 10, 185, 13, 82, 15, 84, 28, 40, 65, 36, 72, 61, 57, 48, 35,
+			14, 9, 185, 127, 169, 120, 120, 120, 192, 155, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 160, 0, 88, 1, 212, 8, 220, 10, 212, 13, 100, 15, 128, 28, 60, 41, 16, 61,
+			42, 44, 39, 30, 11, 8, 185, 107, 177, 120, 120, 120, 185, 107, 177, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 96, 1, 232, 8, 220, 10, 16, 14, 196, 19, 88, 27,
+			0, 33, 20, 48, 32, 36, 32, 12, 11, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 184, 0, 160, 1, 92, 8,
+			100, 10, 212, 13, 60, 15, 128, 28, 45, 39, 25, 53, 56, 47, 39, 34, 11, 8, 185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0,
+			160, 1, 92, 8, 100, 10, 212, 13, 60, 15, 128, 28, 70, 81, 37, 76, 80, 68, 56, 48, 16, 12, 185, 107, 143, 120, 120, 120, 185, 107,
+			167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 184, 0, 160, 1, 92, 8, 100, 10, 212, 13, 60, 15, 128, 28, 60, 66, 33, 68, 72, 61, 50, 43, 14, 10, 185, 107, 143, 120,
+			120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 184, 0, 160, 1, 92, 8, 100, 10, 212, 13, 60, 15, 128, 28, 0, 29, 22, 45, 48, 40, 33, 29, 9, 7,
+			185, 107, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 6, 0, 1, 0, 208, 0, 112, 2, 212, 3, 60, 10, 188, 12, 92, 14, 87, 27, 45, 57,
+			26, 56, 67, 40, 36, 33, 9, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 208, 0, 112, 2, 212, 3, 60, 10, 188, 12, 92, 14,
+			87, 27, 75, 104, 36, 76, 90, 54, 48, 44, 12, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 16, 2, 180, 5, 192, 8,
+			32, 13, 199, 14, 92, 26, 69, 77, 41, 83, 68, 57, 53, 42, 15, 8, 163, 119, 156, 137, 120, 120, 167, 142, 157, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 88, 1,
+			238, 7, 100, 10, 132, 13, 50, 15, 96, 25, 30, 59, 27, 78, 48, 48, 52, 30, 13, 6, 160, 92, 147, 155, 120, 120, 130, 95, 147, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			152, 0, 80, 1, 30, 8, 240, 10, 229, 13, 181, 15, 20, 26, 30, 78, 34, 87, 56, 53, 54, 37, 16, 8, 162, 95, 159, 149, 120, 120,
+			130, 95, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 152, 0, 72, 1, 79, 8, 124, 11, 71, 14, 56, 16, 200, 26, 0, 38, 27, 58, 40, 35, 32, 27, 12, 7, 165, 99,
+			171, 142, 120, 120, 130, 99, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8,
+			87, 182, 0, 250, 0, 0, 210, 0, 5, 0, 1, 0, 148, 0, 128, 1, 238, 7, 60, 10, 42, 13, 50, 15, 96, 25, 45, 39, 23, 65,
+			47, 43, 41, 26, 10, 5, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 148, 0, 128, 1, 238, 7, 60, 10, 42, 13, 50, 15, 96, 25,
+			60, 71, 32, 88, 64, 58, 55, 35, 14, 6, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 128, 1, 228, 7, 216, 9, 248, 12,
+			0, 15, 96, 25, 60, 62, 27, 83, 60, 55, 52, 33, 13, 6, 160, 92, 120, 155, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 120, 0, 250, 1, 144, 6,
+			188, 7, 164, 11, 16, 14, 13, 27, 45, 27, 24, 49, 46, 29, 30, 22, 11, 6, 166, 144, 133, 123, 120, 120, 130, 95, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 120, 0,
+			250, 1, 180, 5, 28, 7, 144, 11, 252, 13, 44, 27, 0, 26, 24, 49, 46, 29, 30, 22, 11, 6, 166, 144, 133, 123, 120, 120, 130, 95,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			75, 0, 5, 0, 1, 0, 135, 0, 88, 1, 224, 6, 192, 8, 188, 12, 128, 14, 153, 24, 45, 51, 22, 63, 57, 50, 41, 32, 10, 11,
+			178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 135, 0, 88, 1, 204, 6, 192, 8, 188, 12, 128, 14, 153, 24, 70, 74, 26, 76, 68, 61,
+			49, 39, 12, 13, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 150, 0, 162, 1, 48, 6, 246, 8, 164, 12, 131, 14, 85, 25, 70, 70,
+			30, 74, 72, 56, 45, 37, 13, 9, 178, 128, 130, 122, 122, 134, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 186, 0, 80, 2, 196, 4, 116, 9, 108, 12, 141, 14,
+			13, 27, 30, 64, 37, 70, 79, 47, 38, 32, 16, 0, 180, 135, 125, 120, 120, 120, 200, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 186, 0, 80, 2, 196, 4, 96, 9,
+			108, 12, 141, 14, 13, 27, 0, 49, 32, 61, 69, 41, 33, 28, 14, 0, 180, 135, 125, 120, 120, 120, 200, 135, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0,
+			196, 0, 104, 2, 252, 3, 0, 10, 28, 12, 116, 14, 119, 26, 53, 61, 35, 71, 73, 28, 34, 20, 9, 8, 162, 105, 132, 120, 120, 120,
+			162, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 7, 0, 208, 0, 48, 2, 132, 3, 220, 10, 204, 11, 141, 14, 0, 26, 24, 60, 38, 81, 60, 33, 35, 16, 11, 8, 162, 105,
+			87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 208, 0, 229, 1, 123, 3, 220, 10, 204, 11, 141, 14, 0, 26, 51, 41, 30, 65, 48, 27, 28, 13,
+			9, 6, 162, 105, 87, 120, 120, 120, 162, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 136, 0, 194, 1, 24, 3, 164, 11, 68, 12, 241, 14, 0, 26, 0, 25, 28, 46,
+			28, 24, 20, 16, 11, 8, 162, 135, 87, 120, 120, 120, 162, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 135, 0, 3, 0, 1, 0, 176, 0, 72, 2, 160, 5, 156, 9, 188, 12,
+			116, 14, 88, 27, 45, 50, 33, 60, 73, 41, 39, 33, 17, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 72, 2, 160, 5,
+			156, 9, 188, 12, 116, 14, 88, 27, 90, 78, 41, 75, 91, 51, 49, 41, 21, 8, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0,
+			88, 2, 160, 5, 156, 9, 188, 12, 116, 14, 88, 27, 0, 33, 27, 50, 60, 34, 32, 27, 14, 5, 167, 135, 135, 120, 120, 120, 197, 135,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			185, 0, 4, 0, 1, 0, 240, 0, 224, 2, 4, 6, 196, 9, 92, 13, 80, 15, 153, 28, 45, 37, 29, 51, 56, 41, 29, 26, 9, 5,
+			197, 176, 161, 135, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0, 224, 2, 4, 6, 196, 9, 92, 13, 80, 15, 153, 28, 80, 59, 37, 64, 71, 53,
+			37, 33, 11, 6, 197, 176, 161, 135, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0, 232, 2, 4, 6, 196, 9, 92, 13, 80, 15, 153, 28, 60, 55,
+			35, 64, 64, 50, 35, 31, 11, 6, 197, 179, 161, 135, 120, 120, 220, 179, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 240, 0, 240, 2, 4, 6, 196, 9, 92, 13, 80, 15,
+			153, 28, 0, 33, 27, 50, 50, 39, 27, 24, 8, 5, 197, 179, 161, 135, 120, 120, 220, 179, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 64, 1, 72, 2,
+			28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 50, 34, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 60, 68, 37, 68, 73, 67, 51, 38, 12, 7, 244, 132, 159, 120, 120, 120,
+			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 60, 68, 37, 68, 73, 67, 51, 38, 12, 7, 244, 132,
+			159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 0, 34, 26, 48, 51, 47, 36, 27,
+			9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 160, 0, 4, 0, 1, 0, 229, 0, 183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27,
+			50, 43, 28, 56, 58, 35, 35, 23, 12, 5, 190, 159, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 229, 0, 183, 2, 36, 5, 196, 9, 228, 12,
+			216, 14, 197, 27, 60, 86, 40, 80, 82, 50, 50, 32, 17, 7, 190, 159, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 58, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 229, 0, 183, 2, 36, 5,
+			196, 9, 228, 12, 216, 14, 197, 27, 50, 76, 38, 75, 78, 47, 47, 30, 16, 6, 190, 159, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70,
+			130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 229, 0,
+			183, 2, 36, 5, 196, 9, 228, 12, 216, 14, 197, 27, 0, 38, 27, 53, 55, 33, 33, 21, 11, 4, 190, 159, 148, 120, 120, 120, 237, 165,
+			165, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			175, 0, 4, 0, 1, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12, 141, 14, 128, 26, 45, 40, 24, 52, 57, 37, 31, 24, 17, 4,
+			162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12, 141, 14, 128, 26, 70, 95, 38, 79, 88, 57,
+			47, 37, 27, 7, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12, 141, 14, 128, 26, 60, 76,
+			34, 71, 79, 51, 42, 33, 24, 6, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 192, 1, 232, 3, 216, 9, 88, 12, 141, 14,
+			128, 26, 0, 36, 23, 49, 54, 35, 29, 23, 17, 4, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 225, 0, 5, 0, 1, 0, 224, 0, 136, 2,
+			84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 45, 34, 20, 41, 60, 29, 29, 29, 9, 4, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			224, 0, 136, 2, 84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 60, 114, 38, 76, 110, 53, 53, 53, 16, 8, 167, 167, 135, 120, 120, 120,
+			167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 224, 0, 136, 2, 84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 60, 102, 36, 72, 104, 50, 50, 50, 15, 7, 167, 167,
+			135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 224, 0, 128, 2, 84, 4, 24, 11, 228, 12, 136, 14, 96, 27, 60, 61, 28, 56, 81, 39, 39, 39,
+			12, 6, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 224, 0, 120, 2, 116, 4, 24, 11, 228, 12, 136, 14, 96, 27, 0, 26, 18, 37,
+			54, 26, 26, 26, 8, 4, 167, 167, 135, 120, 120, 120, 167, 167, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 140, 0, 32, 2, 160, 5, 36, 9, 248, 12,
+			41, 14, 32, 27, 45, 47, 30, 64, 56, 56, 40, 40, 15, 8, 167, 135, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 32, 2, 160, 5,
+			16, 9, 148, 12, 41, 14, 32, 27, 48, 82, 37, 79, 86, 79, 64, 53, 26, 9, 170, 135, 157, 120, 120, 120, 140, 120, 157, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 172, 0,
+			32, 2, 160, 5, 16, 9, 168, 12, 41, 14, 160, 27, 50, 67, 34, 67, 86, 71, 57, 51, 16, 8, 170, 120, 120, 120, 120, 120, 170, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 204, 0, 32, 2, 148, 5, 16, 9, 168, 12, 41, 14, 160, 27, 60, 52, 34, 68, 67, 54, 45, 35, 15, 8, 170, 120, 135, 120,
+			120, 120, 140, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 204, 0, 33, 2, 140, 5, 16, 9, 168, 12, 141, 14, 160, 27, 0, 39, 31, 52, 64, 56, 38, 30, 11, 8,
+			170, 135, 150, 120, 120, 120, 140, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0, 1, 0, 180, 0, 64, 1, 76, 4, 212, 8, 28, 12, 226, 14, 144, 26, 50, 40,
+			13, 59, 45, 30, 33, 29, 14, 7, 170, 130, 126, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 180, 0, 64, 1, 76, 4, 212, 8, 28, 12, 226, 14,
+			144, 26, 85, 59, 16, 72, 55, 37, 41, 36, 18, 9, 170, 130, 126, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 180, 0, 64, 1, 76, 4, 212, 8,
+			28, 12, 226, 14, 144, 26, 56, 43, 13, 61, 47, 32, 35, 30, 15, 7, 170, 130, 126, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 180, 0, 64, 1,
+			252, 3, 152, 8, 28, 12, 226, 14, 144, 26, 0, 36, 12, 57, 37, 23, 25, 23, 11, 7, 170, 130, 148, 120, 120, 120, 162, 120, 148, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0,
+			6, 0, 1, 0, 236, 0, 136, 3, 140, 5, 116, 9, 88, 12, 116, 14, 224, 27, 50, 55, 32, 56, 75, 41, 43, 27, 10, 8, 250, 120,
+			210, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 236, 0, 136, 3, 140, 5, 136, 9, 88, 12, 116, 14, 224, 27, 75, 103, 34, 81, 98, 53, 57, 36,
+			12, 6, 225, 120, 210, 120, 120, 120, 255, 120, 165, 44, 60, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 220, 0, 80, 3, 80, 5, 36, 9, 128, 12, 41, 14, 224, 27, 40, 64, 28, 59,
+			81, 41, 52, 32, 12, 7, 167, 120, 210, 120, 120, 120, 255, 120, 165, 44, 60, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 0, 1, 173, 2, 87, 4, 16, 9, 48, 12, 41, 14, 128, 27,
+			35, 60, 28, 49, 77, 34, 51, 36, 15, 6, 237, 207, 192, 120, 120, 120, 141, 120, 147, 44, 55, 70, 130, 57, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 0, 1, 76, 2, 10, 4, 16, 9, 28, 12,
+			41, 14, 112, 27, 35, 70, 35, 63, 75, 31, 48, 33, 17, 8, 221, 148, 186, 120, 120, 120, 141, 120, 147, 44, 45, 70, 130, 57, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 0, 1, 24, 2, 172, 3,
+			252, 8, 28, 12, 41, 14, 112, 27, 0, 23, 20, 36, 37, 17, 25, 19, 9, 4, 221, 148, 186, 120, 120, 120, 141, 120, 147, 44, 45, 70,
+			130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 5, 0,
+			1, 0, 248, 0, 56, 2, 84, 6, 36, 9, 28, 12, 166, 14, 96, 28, 49, 28, 22, 43, 55, 38, 28, 23, 9, 4, 167, 120, 165, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 248, 0, 56, 2, 84, 6, 36, 9, 28, 12, 166, 14, 96, 28, 41, 87, 39, 77, 98, 67, 50, 41, 17, 7,
+			167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 248, 0, 8, 2, 84, 6, 212, 8, 28, 12, 166, 14, 96, 28, 31, 82, 37, 72, 92, 63,
+			47, 38, 16, 7, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 8, 1, 232, 1, 44, 6, 152, 8, 204, 11, 166, 14, 96, 28, 90, 50,
+			23, 66, 66, 38, 30, 25, 14, 8, 165, 120, 135, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 190, 0, 120, 1, 231, 4, 195, 8, 205, 12, 116, 14,
+			160, 28, 0, 33, 30, 54, 32, 25, 21, 18, 7, 7, 120, 103, 105, 120, 120, 120, 120, 100, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 196, 0, 7, 0, 5, 0, 72, 1, 136, 3,
+			62, 5, 140, 10, 112, 13, 191, 14, 32, 28, 51, 43, 28, 63, 56, 33, 28, 18, 8, 4, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44,
+			45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			72, 1, 136, 3, 62, 5, 140, 10, 112, 13, 191, 14, 32, 28, 45, 104, 44, 98, 87, 51, 44, 28, 13, 6, 207, 150, 105, 120, 120, 120,
+			237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 72, 1, 136, 3, 62, 5, 140, 10, 112, 13, 191, 14, 32, 28, 14, 92, 41, 92, 82, 48, 41, 26, 12, 6, 207, 150,
+			105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 33, 0, 6, 1, 95, 3, 155, 5, 186, 9, 22, 13, 91, 14, 176, 27, 23, 65, 36, 77, 72, 48, 45, 36,
+			10, 7, 187, 142, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 33, 0, 196, 0, 32, 3, 249, 5, 232, 8, 188, 12, 247, 13, 64, 27, 33, 41, 29, 58,
+			60, 50, 50, 50, 9, 8, 167, 135, 180, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 212, 0, 244, 1, 133, 7, 136, 9, 228, 12, 91, 14, 64, 27,
+			30, 38, 38, 56, 53, 53, 40, 39, 16, 9, 167, 90, 180, 120, 120, 120, 137, 75, 150, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 212, 0, 184, 1, 177, 7, 196, 9, 52, 13,
+			91, 14, 192, 27, 0, 34, 40, 51, 44, 44, 32, 28, 11, 10, 167, 90, 105, 120, 120, 120, 122, 75, 90, 44, 45, 70, 130, 56, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 230, 0, 5, 0, 1, 0, 0, 1,
+			24, 2, 108, 7, 236, 9, 104, 13, 15, 15, 224, 28, 45, 29, 25, 47, 53, 44, 37, 27, 9, 6, 216, 138, 159, 120, 120, 120, 107, 138,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 0, 1, 24, 2, 108, 7, 236, 9, 104, 13, 15, 15, 224, 28, 90, 67, 38, 70, 80, 66, 56, 41, 13, 9, 216, 138, 159, 120,
+			120, 120, 107, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 216, 0, 232, 1, 188, 7, 40, 10, 163, 13, 57, 15, 148, 28, 55, 55, 37, 67, 69, 62, 51, 39, 12, 9,
+			197, 114, 149, 120, 120, 120, 107, 131, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 40, 30, 27, 50, 48, 46,
+			40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 125, 1, 52, 8, 148, 10, 188, 13, 76, 15, 32, 28, 0, 27,
+			26, 47, 45, 44, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 179, 0, 50, 2, 175, 3, 96, 10,
+			15, 12, 141, 14, 32, 27, 45, 36, 22, 46, 52, 33, 32, 15, 11, 4, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 179, 0, 50, 2,
+			175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 40, 116, 40, 82, 93, 59, 58, 27, 20, 8, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			179, 0, 50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 70, 94, 36, 74, 84, 53, 52, 24, 18, 7, 166, 135, 150, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 196, 0, 24, 2, 164, 6, 116, 9, 228, 12, 36, 14, 64, 27, 30, 49, 30, 57, 68, 57, 53, 46, 8, 8, 167, 135,
+			180, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 199, 0, 101, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 35, 38, 24, 47, 48, 45, 44, 36,
+			11, 6, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 199, 0, 101, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 0, 29, 21, 41,
+			42, 39, 39, 31, 9, 5, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 240, 0, 168, 2, 28, 7, 176, 9, 112, 13,
+			10, 15, 96, 27, 44, 48, 34, 65, 59, 56, 38, 23, 6, 8, 165, 135, 240, 120, 120, 120, 195, 105, 165, 44, 45, 70, 130, 57, 0, 0,
+			0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 240, 0, 176, 2, 28, 7,
+			136, 9, 112, 13, 60, 15, 96, 27, 77, 68, 36, 76, 79, 74, 40, 24, 8, 6, 170, 120, 180, 120, 120, 120, 200, 120, 165, 44, 45, 70,
+			130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0,
+			163, 2, 244, 6, 116, 9, 72, 13, 60, 15, 96, 27, 77, 54, 29, 62, 71, 62, 56, 25, 13, 6, 167, 120, 180, 120, 120, 120, 242, 150,
+			150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 43, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 240, 0, 223, 2, 114, 6, 216, 9, 172, 13, 60, 15, 96, 28, 35, 36, 27, 56, 50, 49, 42, 26, 10, 7, 167, 120, 180, 120,
+			120, 120, 242, 150, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 240, 0, 223, 2, 26, 6, 236, 9, 172, 13, 60, 15, 96, 28, 0, 28, 25, 53, 43, 40, 35, 21, 7, 8,
+			167, 105, 180, 120, 120, 120, 242, 135, 150, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 193, 0, 6, 0, 1, 0, 104, 0, 160, 1, 9, 8, 80, 10, 72, 13, 60, 15, 160, 27, 42, 46,
+			10, 66, 56, 58, 42, 33, 10, 8, 150, 165, 150, 120, 120, 120, 150, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 104, 0, 160, 1, 20, 8, 160, 10, 72, 13, 60, 15,
+			32, 27, 40, 63, 20, 72, 72, 77, 67, 37, 15, 8, 167, 120, 150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 179, 1, 232, 7, 80, 10,
+			52, 13, 60, 15, 64, 27, 51, 45, 20, 70, 53, 50, 46, 25, 9, 8, 180, 90, 150, 120, 120, 120, 180, 105, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 198, 0, 48, 2,
+			8, 7, 136, 9, 46, 13, 249, 14, 212, 25, 30, 40, 24, 62, 57, 51, 41, 26, 11, 8, 157, 117, 150, 120, 120, 120, 167, 90, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			201, 0, 94, 2, 44, 6, 72, 9, 183, 12, 226, 14, 170, 25, 30, 17, 18, 36, 40, 36, 29, 17, 5, 6, 148, 154, 138, 120, 120, 120,
+			167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 210, 0, 141, 2, 150, 5, 24, 9, 128, 12, 15, 15, 77, 25, 0, 19, 23, 36, 44, 37, 29, 17, 3, 8, 139, 168,
+			138, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8,
+			87, 182, 0, 250, 0, 0, 180, 0, 4, 0, 1, 0, 168, 0, 232, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 45, 56, 28, 58,
+			64, 39, 36, 18, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 232, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27,
+			70, 115, 40, 83, 92, 56, 51, 26, 19, 8, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 232, 1, 132, 3, 216, 9, 164, 11,
+			141, 14, 32, 27, 65, 93, 36, 74, 83, 50, 46, 23, 17, 7, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 232, 1, 152, 3,
+			216, 9, 164, 11, 141, 14, 32, 27, 0, 35, 25, 45, 52, 29, 27, 15, 11, 4, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0,
+			1, 0, 24, 1, 168, 3, 205, 5, 60, 10, 92, 13, 216, 14, 32, 27, 36, 52, 28, 64, 61, 46, 40, 35, 8, 4, 200, 135, 210, 120,
+			120, 120, 255, 150, 135, 44, 60, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 24, 1, 168, 3, 205, 5, 60, 10, 92, 13, 216, 14, 32, 27, 29, 112, 41, 94, 90, 67, 58, 52, 12, 6,
+			200, 135, 210, 120, 120, 120, 255, 150, 135, 44, 60, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 8, 1, 168, 3, 62, 5, 216, 9, 188, 12, 166, 14, 32, 27, 39, 128, 38, 94, 103, 79,
+			65, 53, 16, 8, 185, 180, 165, 120, 120, 120, 245, 135, 120, 44, 60, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 5, 0, 2, 1, 128, 3, 34, 5, 184, 9, 164, 12, 173, 14, 60, 27, 42, 108,
+			37, 86, 98, 72, 60, 48, 15, 8, 185, 175, 159, 120, 120, 120, 245, 135, 120, 44, 50, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 232, 0, 185, 2, 116, 4, 56, 9, 68, 12, 203, 14,
+			176, 27, 84, 52, 33, 55, 80, 46, 39, 31, 11, 8, 185, 157, 135, 120, 120, 120, 194, 105, 111, 44, 45, 70, 130, 57, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 200, 0, 193, 2, 196, 4, 252, 8,
+			128, 12, 241, 14, 32, 28, 0, 26, 28, 42, 56, 36, 32, 26, 8, 8, 185, 180, 120, 120, 120, 120, 155, 120, 105, 44, 45, 70, 130, 56,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 139, 0, 3, 0, 1, 0,
+			158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 50, 32, 10, 59, 42, 49, 50, 25, 11, 5, 166, 105, 120, 120, 120, 120,
+			130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 90, 73, 15, 88, 64, 74, 75, 37, 17, 8, 166, 105,
+			120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 0, 33, 10, 60, 43, 50, 51, 25,
+			11, 5, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 235, 0, 5, 0, 1, 0, 192, 0, 176, 1, 188, 7, 60, 10, 102, 13, 191, 14, 128, 28,
+			45, 27, 21, 44, 45, 44, 34, 28, 8, 6, 185, 107, 135, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 192, 0, 176, 1, 188, 7, 60, 10, 102, 13,
+			191, 14, 128, 28, 70, 80, 35, 76, 77, 75, 59, 47, 15, 11, 185, 107, 135, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 188, 0, 164, 1, 212, 7,
+			72, 10, 99, 13, 196, 14, 96, 28, 70, 69, 32, 71, 72, 69, 55, 44, 14, 10, 184, 107, 134, 120, 120, 120, 185, 107, 167, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 136, 0,
+			17, 1, 207, 8, 213, 10, 57, 13, 7, 15, 236, 26, 50, 38, 13, 54, 50, 49, 46, 28, 11, 7, 174, 105, 118, 120, 120, 120, 185, 107,
+			167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 118, 0, 224, 0, 35, 9, 4, 11, 42, 13, 30, 15, 112, 26, 0, 23, 7, 45, 40, 39, 39, 21, 10, 6, 171, 105, 112, 120,
+			120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 34, 35, 26, 50, 60, 34,
+			36, 27, 14, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 60, 80,
+			39, 76, 92, 52, 54, 42, 22, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 220, 0, 224, 1, 120, 5, 232, 8, 68, 12, 191, 14,
+			192, 28, 54, 54, 36, 55, 79, 57, 35, 30, 16, 7, 120, 120, 120, 120, 120, 120, 165, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 220, 0, 164, 1, 120, 4, 152, 8,
+			88, 12, 141, 14, 64, 28, 45, 56, 44, 77, 54, 30, 24, 26, 15, 9, 120, 120, 120, 120, 120, 120, 60, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 140, 0, 84, 1,
+			222, 3, 56, 9, 188, 12, 141, 14, 192, 27, 0, 21, 28, 46, 37, 15, 7, 9, 9, 8, 120, 105, 90, 120, 120, 120, 60, 120, 75, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
+			6, 0, 1, 0, 248, 0, 104, 2, 196, 4, 76, 9, 28, 12, 166, 14, 96, 28, 46, 45, 26, 58, 66, 49, 36, 30, 12, 5, 167, 120,
+			165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 104, 2, 196, 4, 76, 9, 28, 12, 166, 14, 96, 28, 25, 103, 40, 88, 100, 75, 55, 45,
+			19, 8, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 248, 0, 104, 2, 176, 4, 76, 9, 28, 12, 166, 14, 96, 28, 43, 73, 33, 73,
+			84, 63, 46, 38, 16, 7, 167, 120, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 198, 0, 248, 1, 176, 4, 76, 9, 58, 12, 204, 14, 112, 28,
+			48, 72, 28, 76, 72, 41, 43, 25, 14, 8, 166, 142, 142, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 5, 0, 192, 0, 174, 1, 196, 4, 172, 8, 204, 11,
+			141, 14, 224, 28, 46, 40, 28, 64, 39, 27, 18, 16, 8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 134, 1, 189, 3,
+			92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 24, 58, 38, 22, 15, 12, 9, 8, 152, 120, 75, 120, 120, 120, 107, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 5, 0,
+			1, 0, 180, 0, 137, 2, 205, 5, 126, 9, 233, 12, 116, 14, 176, 27, 40, 46, 32, 60, 68, 44, 39, 31, 13, 3, 174, 157, 145, 120,
+			120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 180, 0, 137, 2, 205, 5, 126, 9, 233, 12, 116, 14, 176, 27, 66, 104, 48, 89, 101, 65, 58, 47, 20, 4,
+			174, 157, 145, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0, 102, 2, 173, 6, 120, 9, 242, 12, 86, 14, 243, 27, 94, 61, 33, 67, 76, 59,
+			50, 41, 14, 6, 180, 144, 158, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 44,
+			33, 56, 50, 60, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15,
+			32, 28, 0, 31, 30, 47, 48, 44, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 95, 0, 6, 0, 1, 0, 136, 0, 72, 1,
+			138, 8, 200, 10, 134, 13, 113, 15, 236, 26, 45, 44, 7, 65, 55, 56, 44, 27, 11, 7, 172, 133, 129, 120, 120, 120, 180, 105, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			128, 0, 72, 1, 142, 8, 210, 10, 82, 13, 98, 15, 224, 26, 50, 64, 10, 75, 75, 77, 72, 37, 16, 8, 158, 112, 135, 120, 120, 120,
+			167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 128, 0, 72, 1, 142, 8, 210, 10, 82, 13, 98, 15, 224, 26, 40, 64, 10, 75, 75, 77, 72, 37, 16, 8, 158, 112,
+			135, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 169, 0, 216, 1, 108, 7, 60, 10, 92, 13, 20, 15, 32, 27, 35, 66, 33, 76, 73, 60, 56, 36,
+			18, 4, 173, 127, 122, 120, 120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 37, 26, 51,
+			63, 35, 36, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27,
+			0, 21, 20, 38, 47, 26, 27, 21, 10, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 179, 0, 50, 2, 175, 3,
+			96, 10, 15, 12, 141, 14, 32, 27, 45, 36, 22, 46, 52, 33, 32, 15, 11, 4, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 179, 0,
+			50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 40, 116, 40, 82, 93, 59, 58, 27, 20, 8, 166, 135, 150, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 179, 0, 50, 2, 175, 3, 96, 10, 15, 12, 141, 14, 32, 27, 70, 94, 36, 74, 84, 53, 52, 24, 18, 7, 166, 135, 150, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 196, 0, 24, 2, 164, 6, 116, 9, 228, 12, 36, 14, 64, 27, 30, 49, 30, 57, 68, 57, 53, 46, 8, 8,
+			167, 135, 180, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 199, 0, 112, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 35, 37, 24, 47, 48, 45,
+			44, 36, 11, 6, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 199, 0, 112, 1, 123, 7, 201, 10, 228, 12, 107, 14, 64, 27, 55, 37,
+			24, 47, 48, 45, 44, 36, 11, 6, 156, 128, 153, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 208, 0, 128, 2, 238, 5, 96, 9, 52, 13, 216, 14,
+			64, 27, 0, 21, 20, 40, 48, 36, 32, 28, 7, 8, 252, 90, 165, 120, 120, 120, 252, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 170, 0, 4, 0, 1, 0, 188, 0, 0, 2,
+			84, 6, 0, 10, 132, 13, 170, 15, 32, 27, 50, 33, 26, 55, 43, 41, 38, 26, 9, 5, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			188, 0, 0, 2, 84, 6, 0, 10, 132, 13, 170, 15, 32, 27, 60, 84, 41, 87, 68, 66, 60, 42, 15, 8, 152, 126, 147, 120, 120, 120,
+			144, 148, 174, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 188, 0, 0, 2, 84, 6, 0, 10, 132, 13, 170, 15, 32, 27, 60, 75, 39, 82, 64, 62, 57, 40, 14, 8, 152, 126,
+			147, 120, 120, 120, 144, 148, 174, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 188, 0, 0, 2, 84, 6, 0, 10, 132, 13, 170, 15, 32, 27, 0, 33, 26, 55, 43, 41, 38, 26,
+			9, 5, 152, 126, 147, 120, 120, 120, 144, 148, 174, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 100, 0, 4, 0, 1, 0, 176, 0, 112, 1, 112, 3, 136, 9, 184, 11, 60, 15, 144, 26,
+			50, 50, 12, 64, 58, 30, 27, 18, 15, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 112, 1, 112, 3, 136, 9, 184, 11,
+			60, 15, 144, 26, 50, 84, 16, 84, 76, 40, 36, 24, 20, 10, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 112, 1, 112, 3,
+			136, 9, 184, 11, 60, 15, 144, 26, 70, 67, 14, 74, 67, 35, 32, 21, 17, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0,
+			112, 1, 132, 3, 136, 9, 184, 11, 60, 15, 144, 26, 0, 34, 12, 52, 47, 25, 22, 15, 12, 6, 162, 127, 150, 120, 120, 120, 162, 127,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			0, 0, 4, 0, 33, 0, 152, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15, 160, 26, 52, 45, 18, 59, 59, 53, 47, 28, 13, 6,
+			167, 110, 120, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15, 160, 26, 75, 71, 23, 74, 74, 66,
+			58, 35, 17, 8, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15, 160, 26, 78, 52,
+			20, 64, 64, 57, 50, 30, 14, 7, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 84, 0, 48, 1, 136, 9, 204, 11, 232, 13, 220, 15,
+			64, 26, 0, 20, 11, 40, 41, 38, 39, 22, 9, 8, 175, 105, 105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 210, 0, 5, 0, 1, 0, 153, 0, 198, 1,
+			44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 57, 24, 58, 65, 39, 36, 20, 14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 40, 96, 31, 76, 85, 51, 46, 26, 19, 8, 165, 126, 145, 120, 120, 120,
+			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 70, 96, 31, 76, 85, 51, 46, 26, 19, 8, 165, 126,
+			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 14, 2, 162, 3, 255, 9, 218, 11, 171, 14, 124, 27, 50, 69, 33, 65, 78, 42, 41, 26,
+			17, 7, 170, 136, 137, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 192, 0, 32, 2, 192, 3, 0, 10, 224, 11, 176, 14, 159, 27, 0, 40, 25, 49,
+			59, 31, 31, 20, 12, 5, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 45, 0, 5, 0, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13,
+			238, 14, 192, 27, 45, 50, 25, 57, 68, 37, 31, 26, 10, 5, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 14, 1, 212, 2, 106, 4,
+			200, 10, 2, 13, 238, 14, 192, 27, 50, 107, 37, 84, 100, 54, 45, 38, 14, 7, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 218, 0,
+			120, 2, 169, 3, 161, 10, 109, 12, 71, 14, 60, 27, 60, 103, 28, 69, 91, 51, 41, 36, 16, 8, 166, 145, 137, 120, 120, 120, 167, 142,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 50, 65, 24, 63, 63, 44, 40, 23, 17, 8, 163, 120, 143, 120,
+			120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 0, 42, 20, 51, 51, 35, 32, 19, 14, 6,
+			163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 44,
+			6, 66, 58, 59, 60, 28, 13, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15,
+			160, 26, 70, 72, 10, 83, 73, 74, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 24, 1, 172, 8, 4, 11,
+			12, 13, 216, 14, 64, 26, 70, 45, 10, 60, 60, 63, 63, 34, 11, 8, 167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 5, 0, 240, 0, 168, 2,
+			164, 6, 136, 9, 72, 13, 60, 15, 96, 27, 65, 36, 27, 54, 45, 54, 45, 22, 12, 6, 167, 135, 180, 120, 120, 120, 242, 135, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			240, 0, 216, 2, 26, 6, 216, 9, 172, 13, 60, 15, 96, 28, 0, 32, 28, 56, 44, 44, 36, 21, 7, 8, 167, 120, 180, 120, 120, 120,
+			242, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 165, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 110, 86, 41, 79, 96, 54, 56, 43,
+			23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0, 116, 0, 24, 2, 136, 5, 16, 9, 88, 12, 16, 14, 88, 27, 55, 24, 22, 43,
+			46, 30, 28, 21, 11, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 72, 2, 120, 5, 208, 7, 224, 11, 152, 13, 88, 27,
+			0, 21, 22, 43, 37, 30, 13, 11, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5,
+			116, 9, 188, 12, 116, 14, 88, 27, 50, 50, 31, 60, 73, 41, 43, 33, 17, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0,
+			24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 90, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 0, 42, 28, 55, 67, 38, 39, 30, 16, 6, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 160, 0, 4, 0, 1, 0, 200, 0, 248, 1, 108, 7, 236, 9, 228, 12, 16, 14, 128, 28, 50, 45, 27, 61, 54, 66,
+			52, 36, 11, 8, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 248, 1, 108, 7, 240, 9, 228, 12, 16, 14, 128, 28, 50, 80,
+			36, 81, 72, 88, 70, 48, 15, 11, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 248, 1, 108, 7, 240, 9, 228, 12, 16, 14,
+			128, 28, 60, 65, 32, 73, 64, 79, 63, 44, 13, 10, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 240, 1, 128, 7, 248, 9,
+			228, 12, 16, 14, 128, 28, 0, 35, 24, 53, 47, 58, 46, 32, 10, 7, 160, 105, 127, 120, 120, 120, 160, 105, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 3, 0, 1, 0,
+			123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27, 50, 49, 30, 62, 69, 42, 44, 32, 16, 6, 166, 145, 133, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27, 90, 88, 40, 83, 92, 56, 58, 43, 22, 8, 166, 145,
+			133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27, 0, 42, 27, 57, 63, 38, 40, 30,
+			15, 5, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0, 1, 0, 200, 0, 40, 2, 12, 3, 200, 10, 188, 12, 36, 14, 32, 28,
+			50, 64, 25, 60, 60, 38, 38, 22, 15, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 40, 2, 12, 3, 200, 10, 188, 12,
+			36, 14, 32, 28, 90, 100, 32, 76, 76, 48, 48, 28, 19, 8, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 40, 2, 12, 3,
+			200, 10, 188, 12, 36, 14, 32, 28, 0, 54, 26, 55, 55, 35, 35, 20, 14, 6, 182, 150, 120, 120, 120, 120, 182, 105, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 140, 0, 3, 0,
+			1, 0, 116, 0, 13, 2, 40, 5, 152, 8, 228, 12, 136, 14, 96, 27, 50, 49, 30, 59, 72, 40, 42, 32, 17, 6, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 116, 0, 13, 2, 40, 5, 152, 8, 228, 12, 136, 14, 96, 27, 90, 88, 41, 79, 96, 54, 56, 43, 23, 8,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 13, 2, 40, 5, 152, 8, 228, 12, 136, 14, 96, 27, 0, 40, 28, 53, 65, 36,
+			38, 29, 15, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 50, 0, 3, 0, 1, 0, 184, 0, 96, 1, 232, 3, 192, 8, 144, 11, 136, 14,
+			144, 26, 50, 42, 23, 49, 55, 43, 40, 29, 17, 7, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 96, 1, 232, 3, 192, 8,
+			144, 11, 136, 14, 144, 26, 100, 58, 27, 58, 64, 51, 47, 34, 20, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 96, 1,
+			232, 3, 152, 8, 104, 11, 136, 14, 144, 26, 0, 34, 22, 44, 49, 38, 33, 22, 16, 6, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 100, 0,
+			3, 0, 1, 0, 216, 0, 68, 2, 0, 5, 160, 10, 248, 12, 191, 14, 64, 29, 45, 40, 26, 55, 68, 37, 42, 32, 19, 0, 150, 144,
+			120, 120, 120, 120, 150, 93, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 1, 0, 192, 0, 224, 1, 16, 4, 180, 10, 12, 13, 140, 15, 128, 28, 100, 28, 27, 45, 50, 33, 27, 20,
+			7, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 17, 0, 192, 0, 224, 1, 16, 4, 180, 10, 12, 13, 140, 15, 128, 28, 0, 23, 26, 42,
+			42, 32, 25, 19, 7, 0, 150, 120, 120, 120, 120, 120, 150, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 140, 0, 3, 0, 1, 0, 8, 1, 223, 2, 224, 6, 116, 9, 112, 13,
+			60, 15, 96, 27, 50, 31, 25, 51, 52, 46, 27, 15, 5, 4, 225, 120, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 8, 1, 223, 2, 224, 6,
+			116, 9, 112, 13, 60, 15, 96, 27, 90, 83, 41, 83, 85, 75, 44, 25, 9, 7, 225, 120, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0,
+			163, 2, 202, 6, 116, 9, 72, 13, 60, 15, 96, 27, 0, 32, 23, 48, 54, 44, 39, 19, 10, 5, 192, 120, 180, 120, 120, 120, 255, 150,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			0, 0, 4, 0, 1, 0, 244, 0, 152, 2, 16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 45, 49, 21, 52, 68, 32, 27, 27, 11, 5,
+			167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 244, 0, 152, 2, 16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 80, 109, 30, 74, 104, 50,
+			46, 46, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 136, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27, 90, 85,
+			29, 71, 92, 47, 44, 44, 14, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 244, 0, 136, 2, 36, 4, 24, 11, 168, 12, 76, 14,
+			96, 27, 0, 63, 26, 63, 76, 42, 39, 39, 13, 6, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 104, 0, 8, 1,
+			72, 8, 64, 11, 228, 12, 88, 17, 160, 27, 45, 42, 11, 57, 39, 57, 61, 22, 13, 9, 150, 135, 157, 120, 120, 120, 150, 135, 157, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			104, 0, 8, 1, 132, 8, 224, 11, 32, 13, 48, 17, 32, 27, 50, 52, 17, 61, 44, 57, 61, 22, 16, 9, 167, 120, 150, 120, 120, 120,
+			167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 104, 0, 24, 1, 112, 8, 224, 11, 32, 13, 68, 17, 32, 27, 50, 36, 15, 51, 35, 47, 51, 19, 14, 8, 167, 120,
+			150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 128, 0, 128, 1, 168, 7, 220, 10, 72, 13, 164, 16, 64, 27, 40, 52, 22, 66, 30, 57, 51, 28,
+			13, 9, 180, 137, 200, 140, 120, 120, 180, 152, 215, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 168, 0, 3, 2, 28, 7, 80, 10, 32, 13, 120, 15, 64, 28, 33, 50, 27, 68,
+			55, 42, 51, 21, 6, 9, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 168, 0, 232, 1, 164, 6, 40, 10, 52, 13, 140, 15, 64, 28,
+			0, 44, 30, 61, 48, 50, 48, 22, 6, 9, 167, 127, 120, 120, 120, 120, 167, 127, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 60, 0, 4, 0, 1, 0, 160, 0, 16, 1, 199, 8,
+			28, 12, 132, 13, 8, 17, 88, 27, 50, 37, 15, 50, 35, 39, 46, 15, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 148, 0,
+			16, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 60, 47, 17, 57, 39, 44, 52, 17, 17, 8, 187, 125, 137, 137, 150, 175, 187, 125,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 160, 0, 32, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 50, 46, 17, 57, 39, 44, 52, 17, 17, 8, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 160, 0, 32, 1, 199, 8, 28, 12, 132, 13, 8, 17, 88, 27, 0, 33, 14, 48, 33, 37, 44, 14, 14, 7,
+			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 152, 0, 72, 1, 172, 3, 76, 9, 48, 12, 92, 13, 128, 26, 45, 42,
+			26, 52, 43, 32, 29, 28, 17, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 80, 1, 36, 4, 56, 9, 168, 12, 232, 13,
+			128, 26, 50, 61, 32, 64, 54, 39, 36, 35, 21, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 136, 1, 76, 4, 36, 9,
+			148, 12, 36, 14, 128, 26, 33, 61, 32, 68, 54, 43, 39, 32, 21, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 140, 0, 200, 1,
+			236, 4, 252, 8, 128, 12, 212, 13, 32, 27, 26, 60, 24, 64, 74, 68, 55, 45, 22, 7, 170, 135, 165, 120, 120, 120, 140, 120, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			140, 0, 224, 1, 80, 5, 232, 8, 188, 12, 56, 14, 32, 27, 40, 58, 24, 64, 74, 68, 55, 45, 22, 7, 170, 135, 165, 120, 120, 120,
+			140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 116, 0, 224, 1, 200, 5, 196, 9, 228, 12, 116, 14, 88, 27, 0, 51, 32, 62, 68, 42, 44, 25, 18, 6, 167, 135,
+			135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8,
+			87, 182, 0, 250, 0, 0, 60, 0, 4, 0, 1, 0, 153, 0, 52, 1, 16, 8, 20, 10, 132, 13, 80, 15, 88, 27, 50, 39, 28, 44,
+			44, 42, 48, 12, 15, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 153, 0, 72, 1, 52, 8, 20, 10, 132, 13, 80, 15, 88, 27,
+			60, 55, 33, 52, 52, 50, 57, 14, 18, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 153, 0, 72, 1, 52, 8, 20, 10, 132, 13,
+			80, 15, 88, 27, 50, 38, 28, 44, 44, 42, 48, 12, 15, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 153, 0, 48, 1, 112, 8,
+			80, 10, 212, 13, 80, 15, 88, 27, 0, 29, 28, 36, 24, 28, 32, 12, 15, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 7, 0,
+			1, 0, 195, 0, 39, 1, 167, 8, 244, 11, 212, 13, 56, 19, 88, 27, 40, 45, 15, 60, 30, 35, 45, 15, 20, 10, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 180, 0, 24, 1, 132, 8, 224, 11, 132, 13, 152, 18, 88, 27, 20, 57, 15, 68, 36, 42, 52, 21, 15, 10,
+			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 195, 0, 39, 1, 167, 8, 211, 11, 115, 13, 36, 19, 88, 27, 55, 40, 15, 55, 30, 35,
+			40, 15, 15, 10, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 195, 0, 39, 1, 92, 8, 176, 9, 52, 13, 12, 18, 88, 27, 80, 48,
+			14, 62, 48, 33, 43, 14, 14, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 195, 0, 39, 1, 156, 4, 252, 8, 168, 12, 60, 15,
+			88, 27, 60, 58, 14, 72, 48, 28, 33, 9, 9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 195, 0, 39, 1, 172, 3, 252, 8,
+			168, 12, 60, 15, 88, 27, 45, 35, 14, 52, 33, 24, 24, 14, 9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 172, 0, 16, 1,
+			132, 3, 252, 8, 168, 12, 60, 15, 88, 27, 0, 30, 14, 48, 33, 24, 24, 14, 9, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0,
+			6, 0, 1, 0, 186, 0, 108, 2, 221, 4, 250, 8, 154, 12, 103, 14, 96, 28, 40, 47, 30, 59, 70, 52, 38, 31, 13, 6, 167, 120,
+			149, 120, 120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 186, 0, 108, 2, 221, 4, 250, 8, 154, 12, 103, 14, 96, 28, 47, 97, 43, 85, 100, 75, 55, 45,
+			19, 8, 167, 120, 149, 120, 120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 104, 0, 208, 1, 136, 4, 152, 8, 188, 12, 76, 14, 96, 28, 28, 76, 32, 85,
+			68, 52, 52, 32, 19, 8, 167, 120, 142, 120, 120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 137, 0, 160, 1, 16, 4, 185, 8, 163, 12, 101, 14, 151, 27,
+			39, 69, 32, 76, 62, 36, 36, 24, 19, 8, 165, 123, 145, 120, 120, 120, 197, 120, 142, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 120, 1, 212, 3, 232, 8, 128, 12,
+			136, 14, 128, 26, 60, 42, 35, 46, 43, 31, 31, 18, 15, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 120, 1, 112, 3,
+			232, 8, 128, 12, 136, 14, 128, 26, 0, 38, 32, 43, 40, 26, 29, 17, 14, 6, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 6, 0,
+			1, 0, 24, 1, 0, 3, 176, 4, 4, 11, 172, 13, 200, 15, 64, 27, 45, 56, 30, 58, 72, 40, 34, 24, 4, 5, 187, 135, 165, 120,
+			120, 120, 187, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 24, 1, 0, 3, 176, 4, 4, 11, 172, 13, 200, 15, 64, 27, 56, 114, 43, 83, 102, 57, 49, 34, 6, 8,
+			187, 135, 165, 120, 120, 120, 187, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 246, 0, 208, 2, 140, 5, 20, 10, 252, 13, 64, 16, 88, 27, 50, 85, 38, 84, 92, 52,
+			44, 24, 18, 10, 226, 150, 128, 120, 120, 120, 235, 150, 128, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 227, 0, 80, 2, 8, 7, 20, 10, 252, 13, 108, 17, 88, 27, 44, 48,
+			28, 60, 64, 44, 36, 20, 15, 9, 208, 138, 160, 128, 134, 145, 235, 150, 156, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 204, 0, 112, 1, 52, 8, 160, 10, 16, 14, 36, 19,
+			88, 27, 75, 40, 22, 52, 44, 39, 39, 15, 13, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 56, 1, 192, 8, 124, 11,
+			16, 14, 196, 19, 88, 27, 0, 35, 20, 48, 32, 36, 32, 12, 11, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0,
+			244, 0, 152, 2, 16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 50, 55, 23, 57, 69, 41, 35, 35, 12, 5, 167, 142, 135, 120, 120, 120,
+			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 244, 0, 152, 2, 16, 4, 240, 10, 148, 12, 41, 14, 96, 27, 80, 105, 30, 74, 100, 54, 46, 46, 15, 7, 167, 142,
+			135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 136, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27, 34, 86, 29, 71, 92, 51, 44, 44,
+			15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 244, 0, 216, 2, 116, 4, 160, 10, 148, 12, 41, 14, 96, 27, 60, 78, 30, 65,
+			94, 47, 40, 40, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 246, 0, 200, 2, 120, 5, 216, 9, 132, 13, 224, 16, 88, 27,
+			50, 64, 34, 76, 64, 48, 44, 20, 12, 10, 226, 150, 136, 120, 120, 120, 235, 150, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 204, 0, 128, 1, 52, 8, 44, 11, 248, 12,
+			164, 16, 88, 27, 68, 32, 20, 48, 36, 36, 36, 16, 12, 8, 187, 125, 145, 137, 150, 175, 187, 125, 145, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 204, 0, 56, 1, 192, 8,
+			124, 11, 16, 14, 172, 18, 88, 27, 0, 36, 21, 48, 32, 36, 36, 16, 8, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 5, 0,
+			1, 0, 174, 0, 128, 2, 26, 6, 96, 9, 218, 12, 91, 14, 192, 27, 40, 49, 33, 60, 68, 48, 40, 37, 13, 7, 168, 165, 165, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 174, 0, 128, 2, 26, 6, 96, 9, 218, 12, 91, 14, 192, 27, 66, 93, 46, 82, 94, 66, 55, 51, 18, 10,
+			168, 165, 165, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 240, 0, 78, 2, 67, 7, 116, 9, 248, 12, 66, 14, 32, 28, 94, 53, 28, 61, 69, 60,
+			49, 41, 13, 6, 184, 135, 168, 120, 120, 120, 169, 138, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 40,
+			31, 54, 47, 57, 44, 32, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15,
+			32, 28, 0, 34, 31, 49, 49, 45, 42, 33, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 0, 1, 8, 2,
+			12, 3, 100, 10, 108, 12, 60, 15, 224, 27, 41, 82, 39, 72, 72, 48, 42, 23, 13, 6, 165, 97, 107, 120, 120, 120, 165, 97, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			0, 1, 8, 2, 12, 3, 100, 10, 108, 12, 60, 15, 224, 27, 30, 131, 49, 91, 91, 60, 53, 29, 17, 7, 165, 97, 107, 120, 120, 120,
+			165, 97, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 0, 1, 8, 2, 12, 3, 100, 10, 108, 12, 60, 15, 224, 27, 35, 131, 49, 91, 91, 60, 53, 29, 17, 7, 165, 97,
+			107, 120, 120, 120, 165, 97, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 24, 2, 100, 5, 252, 8, 188, 12, 156, 14, 32, 27, 60, 58, 28, 76, 56, 60, 56, 40,
+			20, 8, 170, 135, 200, 120, 120, 120, 140, 120, 185, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 160, 0, 144, 1, 208, 7, 120, 10, 172, 13, 224, 16, 88, 27, 48, 43, 20, 60,
+			52, 40, 48, 16, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 72, 1, 52, 8, 4, 11, 192, 13, 224, 16, 88, 27,
+			45, 36, 16, 52, 48, 40, 48, 16, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 160, 0, 72, 1, 92, 8, 220, 10, 36, 14,
+			224, 16, 88, 27, 0, 29, 16, 46, 42, 37, 33, 16, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 7, 0, 1, 0, 152, 0,
+			80, 1, 132, 3, 232, 8, 168, 12, 232, 13, 128, 26, 40, 51, 25, 61, 51, 30, 23, 23, 17, 7, 162, 127, 150, 120, 120, 120, 162, 127,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 152, 0, 80, 1, 16, 4, 56, 9, 168, 12, 232, 13, 128, 26, 82, 70, 30, 72, 60, 44, 40, 39, 24, 8, 162, 127, 150, 120,
+			120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 176, 0, 240, 1, 180, 5, 172, 8, 221, 12, 78, 14, 88, 27, 49, 48, 28, 60, 52, 64, 42, 39, 17, 8,
+			166, 137, 154, 150, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 169, 0, 125, 1, 88, 7, 36, 9, 254, 12, 140, 14, 218, 27, 39, 45, 24, 48, 60, 64,
+			44, 39, 13, 8, 168, 144, 156, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 165, 0, 64, 1, 52, 8, 216, 9, 28, 13, 180, 14, 240, 27, 44, 44,
+			16, 60, 60, 51, 43, 37, 12, 8, 83, 127, 134, 120, 120, 120, 112, 120, 134, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 140, 0, 24, 1, 172, 8, 80, 10, 92, 13, 231, 14,
+			12, 28, 41, 40, 20, 48, 56, 52, 41, 34, 10, 8, 168, 105, 130, 120, 120, 120, 197, 120, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 156, 0, 48, 1, 56, 9, 120, 10,
+			92, 13, 10, 15, 32, 28, 0, 34, 20, 52, 48, 44, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 6, 0, 1, 0,
+			184, 0, 96, 1, 112, 3, 192, 8, 144, 11, 136, 14, 144, 26, 55, 29, 19, 40, 45, 31, 28, 21, 14, 6, 162, 135, 150, 120, 120, 120,
+			162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 184, 0, 96, 1, 192, 3, 192, 8, 144, 11, 136, 14, 144, 26, 20, 59, 27, 58, 65, 51, 48, 34, 20, 8, 162, 135,
+			150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 33, 0, 179, 0, 80, 1, 232, 3, 96, 9, 48, 12, 6, 15, 177, 26, 60, 66, 29, 65, 56, 52, 54, 36,
+			22, 9, 166, 133, 148, 122, 124, 129, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 33, 0, 164, 0, 56, 1, 148, 7, 36, 9, 148, 12, 57, 16, 2, 27, 79, 49, 22, 58,
+			32, 48, 52, 26, 19, 8, 176, 129, 143, 129, 137, 151, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 148, 0, 16, 1, 152, 8, 200, 10, 188, 12, 128, 17, 88, 27,
+			84, 37, 16, 52, 36, 40, 48, 16, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 40, 1, 199, 8, 28, 12, 132, 13,
+			8, 17, 88, 27, 0, 36, 16, 52, 36, 36, 40, 16, 12, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 40, 0, 6, 0, 1, 0, 140, 0,
+			232, 1, 196, 4, 36, 9, 128, 12, 41, 14, 32, 27, 40, 51, 30, 65, 61, 55, 44, 43, 21, 7, 170, 135, 165, 120, 120, 120, 140, 120,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 140, 0, 240, 1, 196, 4, 36, 9, 128, 12, 41, 14, 32, 27, 45, 65, 34, 73, 69, 62, 50, 49, 24, 8, 170, 135, 165, 120,
+			120, 120, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 158, 0, 8, 2, 80, 5, 16, 9, 188, 12, 148, 14, 0, 28, 50, 59, 34, 72, 64, 59, 53, 42, 18, 9,
+			172, 128, 153, 127, 132, 143, 140, 120, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 192, 1, 84, 6, 56, 9, 208, 12, 40, 15, 51, 29, 45, 55, 27, 68, 51, 51,
+			51, 30, 10, 10, 175, 120, 137, 137, 150, 175, 175, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 153, 0, 96, 1, 148, 7, 196, 9, 92, 13, 80, 15, 88, 27, 15, 31,
+			28, 40, 40, 36, 44, 12, 9, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 153, 0, 40, 1, 228, 7, 96, 9, 112, 13, 80, 15,
+			88, 27, 0, 26, 28, 32, 28, 28, 24, 8, 9, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 188, 0, 40, 1,
+			228, 7, 136, 9, 52, 13, 8, 17, 88, 27, 40, 36, 9, 54, 51, 42, 39, 12, 12, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			188, 0, 40, 1, 188, 7, 176, 9, 12, 13, 188, 17, 88, 27, 65, 55, 11, 68, 64, 53, 49, 15, 15, 9, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 154, 0, 96, 1, 244, 6, 156, 9, 208, 12, 244, 16, 88, 27, 50, 52, 15, 66, 57, 49, 49, 22, 17, 8, 178, 137,
+			161, 129, 135, 148, 187, 125, 162, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 160, 1, 84, 6, 96, 9, 188, 12, 164, 16, 88, 27, 40, 33, 23, 48, 51, 34, 37, 25,
+			15, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 116, 0, 224, 1, 44, 6, 116, 9, 12, 13, 224, 16, 88, 27, 0, 30, 24, 48,
+			50, 34, 34, 21, 13, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 190, 0, 5, 0, 1, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12,
+			36, 14, 15, 28, 50, 34, 28, 41, 62, 28, 36, 23, 6, 5, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 0, 1, 88, 2, 36, 4,
+			80, 10, 28, 12, 36, 14, 15, 28, 50, 69, 39, 64, 82, 39, 50, 32, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 0, 1,
+			88, 2, 36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 50, 69, 39, 64, 82, 39, 50, 32, 8, 7, 186, 151, 122, 120, 120, 120, 105, 164,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 40, 50, 33, 55, 70, 33, 42, 27, 7, 6, 186, 151, 122, 120,
+			120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 0, 1, 88, 2, 36, 4, 80, 10, 28, 12, 36, 14, 15, 28, 0, 24, 23, 38, 49, 23, 30, 19, 5, 4,
+			186, 151, 122, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 200, 0, 4, 0, 1, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14, 128, 28, 50, 36,
+			26, 44, 49, 52, 44, 30, 11, 8, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 200, 1, 168, 7, 216, 9, 248, 12, 66, 14,
+			128, 28, 80, 68, 36, 60, 68, 72, 60, 41, 15, 11, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 200, 1, 168, 7, 216, 9,
+			248, 12, 66, 14, 128, 28, 70, 56, 34, 52, 62, 66, 55, 38, 13, 10, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 200, 1,
+			168, 7, 216, 9, 248, 12, 66, 14, 128, 28, 0, 23, 25, 32, 37, 37, 32, 25, 9, 7, 185, 153, 127, 120, 120, 120, 185, 200, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 200, 0,
+			5, 0, 1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 37, 28, 41, 51, 23, 33, 18, 9, 5, 177, 100,
+			131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 72, 39, 57, 72, 32, 45, 25,
+			13, 7, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 50, 72, 39, 57,
+			72, 32, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27,
+			50, 52, 33, 48, 61, 27, 39, 21, 11, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 136, 1, 188, 2, 160, 10, 88, 12,
+			176, 14, 159, 27, 0, 34, 31, 45, 41, 20, 33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 83, 9, 26, 0, 255, 7, 255, 250,
+			3, 1, 3, 248, 252, 4, 19, 15, 0, 254, 1, 6, 0, 251, 254, 255, 255, 4, 242, 243, 0, 1, 7, 10, 3, 1, 9, 6, 248, 255,
+			23, 0, 235, 0, 253, 229, 4, 22, 255, 0, 21, 16, 0, 0, 255, 245, 4, 6, 255, 233, 237, 5, 248, 246, 17, 29, 10, 247, 6, 11,
+			4, 241, 255, 251, 243, 13, 245, 223, 0, 34, 8, 13, 7, 246, 255, 242, 17, 12, 243, 7, 254, 230, 254, 24, 4, 244, 250, 243, 233, 254,
+			27, 7, 230, 254, 26, 22, 233, 0, 24, 0, 243, 250, 253, 243, 248, 232, 243, 4, 34, 53, 237, 242, 14, 255, 7, 252, 6, 243, 233, 1,
+			15, 229, 2, 51, 249, 250, 248, 21, 33, 246, 243, 232, 2, 16, 255, 243, 15, 29, 252, 250, 238, 27, 27, 13, 2, 239, 12, 15, 249, 253,
+			7, 1, 14, 255, 243, 2, 248, 255, 14, 0, 7, 255, 246, 245, 251, 6, 11, 252, 238, 243, 233, 252, 26, 255, 249, 0, 4, 8, 250, 255,
+			254, 252, 246, 251, 244, 244, 1, 0, 244, 6, 12, 8, 8, 249, 4, 253, 252, 2, 242, 244, 1, 4, 255, 0, 2, 4, 7, 7, 13, 2,
+			252, 251, 2, 255, 249, 0, 6, 2, 246, 7, 8, 8, 16, 252, 252, 1, 4, 3, 243, 252, 1, 0, 7, 10, 253, 5, 9, 6, 6, 3,
+			250, 0, 6, 4, 249, 255, 9, 244, 4, 4, 1, 4, 8, 8, 250, 252, 8, 5, 14, 246, 250, 4, 253, 1, 248, 254, 241, 0, 254, 0,
+			252, 244, 13, 0, 250, 15, 20, 255, 2, 18, 247, 232, 249, 9, 2, 248, 242, 237, 0, 1, 7, 19, 18, 10, 4, 254, 238, 18, 20, 237,
+			245, 245, 242, 242, 249, 250, 250, 19, 9, 249, 6, 13, 17, 3, 14, 24, 5, 7, 243, 245, 2, 0, 7, 238, 236, 243, 244, 252, 8, 4,
+			246, 12, 16, 18, 254, 11, 8, 6, 1, 241, 248, 247, 2, 247, 247, 231, 4, 11, 9, 5, 251, 14, 254, 255, 6, 248, 6, 16, 4, 245,
+			241, 11, 19, 11, 2, 239, 249, 6, 2, 245, 250, 253, 234, 7, 13, 20, 4, 13, 18, 3, 11, 250, 249, 246, 239, 240, 239, 250, 243, 249,
+			6, 5, 24, 20, 25, 253, 1, 254, 251, 2, 250, 242, 236, 250, 254, 18, 13, 2, 0, 11, 31, 0, 255, 8, 247, 249, 252, 249, 252, 0,
+			246, 253, 3, 9, 5, 11, 10, 245, 4, 11, 3, 1, 7, 249, 253, 242, 253, 254, 245, 6, 250, 251, 6, 9, 6, 9, 10, 8, 4, 254,
+			241, 247, 255, 251, 242, 245, 249, 248, 24, 6, 6, 14, 8, 12, 247, 237, 239, 11, 250, 239, 250, 251, 11, 20, 18, 5, 24, 19, 253, 249,
+			237, 241, 248, 248, 236, 237, 254, 6, 21, 23, 15, 18, 18, 3, 248, 1, 246, 247, 252, 232, 243, 1, 11, 2, 0, 252, 6, 10, 0, 2,
+			10, 1, 250, 249, 245, 5, 12, 20, 255, 0, 247, 247, 5, 10, 16, 247, 250, 12, 249, 6, 20, 6, 14, 241, 6, 1, 250, 0, 237, 250,
+			4, 253, 0, 15, 12, 21, 11, 4, 247, 248, 1, 242, 234, 231, 1, 244, 238, 7, 255, 20, 24, 8, 8, 252, 11, 241, 2, 249, 245, 253,
+			248, 255, 0, 23, 251, 6, 20, 253, 7, 247, 250, 255, 2, 9, 247, 239, 254, 249, 0, 247, 0, 1, 246, 3, 0, 0, 11, 11, 3, 254,
+			0, 245, 255, 6, 249, 238, 1, 1, 249, 19, 25, 10, 18, 7, 245, 1, 9, 4, 238, 251, 1, 238, 7, 0, 9, 2, 9, 33, 14, 236,
+			6, 8, 241, 244, 234, 241, 237, 6, 253, 238, 12, 52, 10, 3, 15, 1, 4, 239, 228, 230, 224, 13, 228, 230, 9, 34, 44, 28, 28, 25,
+			29, 10, 253, 247, 245, 242, 226, 241, 238, 244, 36, 0, 252, 22, 3, 35, 15, 2, 0, 3, 9, 246, 231, 241, 10, 246, 250, 13, 240, 246,
+			253, 14, 22, 19, 39, 11, 235, 1, 253, 230, 243, 236, 228, 219, 239, 6, 240, 0, 14, 20, 245, 5, 38, 11, 228, 2, 24, 243, 243, 250,
+			196, 243, 18, 250, 6, 243, 46, 4, 44, 250, 4, 27, 3, 13, 203, 252, 245, 247, 238, 232, 29, 255, 27, 9, 32, 16, 228, 33, 245, 241,
+			253, 255, 244, 250, 19, 241, 255, 4, 7, 22, 24, 12, 206, 234, 33, 230, 246, 250, 10, 21, 6, 27, 14, 20, 15, 239, 15, 233, 242, 7,
+			238, 254, 249, 3, 9, 21, 6, 11, 252, 6, 12, 243, 6, 221, 236, 9, 2, 0, 249, 245, 255, 25, 19, 255, 250, 20, 246, 251, 253, 233,
+			8, 2, 9, 248, 251, 30, 22, 16, 3, 254, 9, 255, 240, 235, 242, 230, 247, 17, 251, 250, 5, 3, 253, 8, 20, 3, 0, 6, 238, 236,
+			253, 2, 5, 249, 239, 254, 18, 0, 240, 241, 15, 18, 250, 1, 9, 12, 6, 246, 0, 248, 1, 4, 244, 236, 251, 253, 7, 0, 253, 0,
+			5, 30, 13, 232, 250, 18, 0, 2, 9, 249, 243, 11, 5, 252, 11, 13, 255, 0, 249, 227, 254, 19, 2, 241, 1, 24, 27, 35, 0, 249,
+			11, 4, 0, 240, 249, 247, 249, 0, 246, 5, 18, 22, 14, 5, 4, 0, 12, 2, 246, 0, 253, 251, 254, 250, 246, 249, 3, 1, 250, 252,
+			252, 7, 5, 254, 235, 240, 254, 251, 230, 241, 239, 246, 237, 246, 255, 10, 7, 255, 254, 251, 9, 0, 17, 6, 5, 13, 252, 3, 17, 13,
+			24, 13, 21, 14, 11, 12, 6, 7, 7, 3, 252, 248, 236, 247, 0, 252, 253, 252, 4, 1, 254, 255, 2, 252, 248, 241, 245, 251, 251, 7,
+			0, 0, 14, 5, 12, 15, 16, 9, 18, 8, 244, 8, 7, 254, 4, 5, 1, 0, 0, 10, 8, 251, 251, 5, 250, 243, 0, 9, 245, 245,
+			247, 235, 241, 8, 253, 242, 12, 3, 244, 246, 0, 250, 14, 7, 253, 248, 248, 243, 244, 237, 240, 247, 254, 5, 8, 253, 8, 24, 21, 252,
+			0, 1, 236, 241, 242, 241, 1, 8, 248, 12, 23, 8, 35, 15, 0, 9, 14, 250, 244, 10, 230, 218, 250, 10, 249, 3, 17, 247, 43, 13,
+			243, 29, 8, 2, 216, 0, 251, 246, 18, 250, 26, 1, 44, 29, 34, 13, 239, 252, 235, 19, 239, 15, 19, 9, 25, 4, 38, 230, 245, 36,
+			234, 214, 209, 223, 2, 255, 252, 23, 35, 9, 240, 251, 3, 0, 9, 194, 229, 226, 213, 22, 244, 0, 6, 46, 11, 15, 55, 8, 18, 252,
+			245, 219, 244, 251, 201, 250, 247, 244, 32, 26, 11, 2, 37, 6, 249, 1, 210, 233, 234, 221, 1, 8, 249, 249, 36, 253, 31, 13, 247, 26,
+			237, 235, 253, 3, 252, 240, 247, 32, 16, 24, 11, 1, 14, 9, 245, 1, 236, 223, 4, 246, 0, 14, 45, 22, 33, 27, 233, 18, 12, 219,
+			234, 223, 231, 13, 17, 223, 11, 46, 25, 2, 34, 41, 163, 34, 242, 189, 0, 253, 250, 210, 255, 48, 10, 15, 64, 250, 220, 58, 229, 229,
+			19, 240, 247, 1, 219, 220, 24, 46, 240, 2, 23, 26, 3, 238, 11, 244, 33, 14, 240, 249, 226, 217, 8, 2, 3, 23, 247, 33, 233, 250,
+			50, 9, 1, 3, 249, 226, 236, 7, 230, 235, 14, 41, 250, 7, 39, 223, 254, 27, 21, 251, 22, 211, 250, 233, 233, 18, 227, 0, 16, 254,
+			0, 31, 20, 250, 10, 34, 233, 227, 243, 5, 219, 22, 12, 202, 17, 38, 247, 13, 29, 231, 255, 19, 227, 200, 249, 55, 243, 1, 12, 7,
+			8, 17, 251, 208, 255, 29, 244, 251, 251, 2, 249, 3, 33, 240, 4, 18, 235, 219, 7, 247, 244, 41, 19, 0, 255, 34, 251, 18, 27, 245,
+			244, 14, 218, 244, 249, 6, 233, 21, 10, 238, 17, 17, 3, 243, 30, 11, 1, 246, 245, 234, 255, 246, 231, 6, 6, 253, 245, 27, 18, 9,
+			44, 13, 249, 36, 19, 228, 11, 249, 223, 245, 14, 5, 14, 11, 252, 237, 9, 14, 253, 13, 253, 244, 249, 246, 228, 250, 7, 3, 251, 236,
+			236, 242, 242, 255, 5, 246, 1, 11, 5, 0, 10, 18, 15, 253, 231, 238, 248, 11, 19, 0, 1, 12, 21, 19, 14, 20, 3, 3, 1, 235,
+			231, 243, 242, 238, 248, 239, 248, 15, 19, 2, 9, 9, 253, 254, 248, 246, 247, 3, 0, 252, 5, 7, 4, 13, 10, 13, 8, 0, 251, 248,
+			0, 254, 255, 255, 3, 18, 16, 0, 0, 11, 9, 254, 239, 246, 253, 255, 254, 247, 0, 9, 14, 6, 0, 5, 19, 25, 6, 249, 251, 250,
+			250, 255, 255, 255, 3, 253, 255, 254, 246, 249, 255, 12, 0, 251, 2, 1, 3, 7, 4, 0, 0, 12, 2, 246, 239, 246, 7, 0, 0, 11,
+			3, 246, 246, 253, 9, 11, 252, 249, 255, 248, 242, 238, 247, 240, 245, 4, 249, 242, 253, 3, 12, 23, 25, 10, 17, 24, 0, 246, 255, 1,
+			254, 254, 246, 236, 0, 9, 9, 15, 11, 6, 17, 25, 7, 245, 248, 255, 3, 243, 241, 238, 238, 1, 248, 236, 245, 6, 32, 34, 253, 252,
+			2, 14, 20, 0, 6, 0, 248, 241, 226, 223, 252, 41, 39, 251, 252, 3, 10, 8, 23, 26, 6, 0, 232, 215, 9, 26, 11, 229, 214, 4,
+			233, 241, 10, 253, 18, 26, 241, 2, 17, 2, 20, 0, 250, 217, 233, 26, 221, 213, 5, 5, 42, 8, 238, 35, 13, 21, 28, 249, 252, 29,
+			10, 242, 233, 32, 3, 237, 6, 254, 0, 232, 249, 220, 4, 38, 13, 6, 250, 27, 10, 218, 51, 52, 219, 254, 227, 133, 235, 27, 239, 244,
+			15, 232, 7, 57, 31, 1, 49, 52, 213, 229, 205, 227, 30, 239, 229, 233, 14, 23, 247, 4, 28, 36, 5, 2, 226, 209, 0, 251, 16, 33,
+			6, 8, 12, 59, 11, 22, 3, 212, 221, 240, 217, 199, 14, 238, 231, 41, 4, 34, 80, 53, 13, 35, 233, 232, 254, 223, 218, 250, 217, 248,
+			32, 226, 17, 22, 46, 34, 26, 25, 237, 240, 1, 232, 222, 21, 219, 223, 28, 4, 11, 245, 8, 46, 243, 7, 246, 1, 255, 228, 243, 243,
+			0, 17, 17, 7, 26, 248, 0, 20, 14, 245, 221, 16, 1, 219, 0, 12, 242, 252, 49, 32, 235, 232, 10, 210, 2, 226, 208, 0, 9, 5,
+			214, 31, 42, 13, 51, 22, 0, 12, 246, 226, 244, 0, 241, 253, 243, 4, 0, 32, 28, 19, 32, 26, 249, 236, 229, 2, 252, 248, 240, 230,
+			249, 242, 5, 246, 2, 5, 248, 1, 238, 236, 245, 246, 6, 19, 19, 5, 7, 17, 0, 1, 24, 14, 7, 3, 10, 232, 253, 12, 11, 251,
+			248, 9, 253, 12, 12, 0, 245, 248, 15, 8, 10, 1, 0, 0, 240, 242, 239, 248, 13, 10, 224, 228, 4, 29, 17, 4, 248, 9, 24, 15,
+			250, 242, 1, 16, 4, 235, 238, 6, 1, 252, 250, 3, 14, 17, 252, 252, 7, 5, 247, 252, 10, 246, 251, 246, 250, 8, 239, 248, 252, 5,
+			6, 27, 19, 251, 240, 0, 11, 15, 9, 237, 251, 252, 242, 250, 252, 2, 10, 10, 0, 252, 238, 3, 23, 1, 0, 255, 255, 0, 11, 255,
+			238, 1, 4, 243, 252, 3, 245, 239, 12, 12, 7, 3, 6, 21, 17, 1, 252, 249, 4, 0, 247, 236, 243, 245, 249, 1, 9, 13, 16, 13,
+			13, 14, 0, 243, 251, 253, 246, 247, 238, 243, 0, 10, 21, 21, 19, 21, 9, 0, 243, 242, 247, 229, 244, 0, 245, 254, 0, 12, 28, 21,
+			8, 6, 0, 250, 247, 242, 244, 0, 251, 246, 2, 4, 5, 17, 21, 10, 9, 2, 248, 247, 250, 251, 247, 252, 254, 251, 10, 7, 0, 6,
+			8, 7, 254, 249, 251, 252, 245, 254, 4, 251, 1, 2, 250, 4, 13, 2, 252, 254, 2, 9, 3, 253, 0, 7, 9, 0, 255, 250, 249, 248,
+			246, 253, 5, 2, 14, 17, 7, 5, 7, 8, 7, 0, 243, 240, 238, 238, 254, 0, 0, 7, 24, 22, 9, 253, 248, 254, 254, 248, 249, 249,
+			248, 247, 0, 4, 7, 18, 10, 0, 14, 3, 243, 235, 237, 249, 254, 5, 8, 2, 12, 14, 11, 16, 13, 0, 3, 253, 246, 239, 245, 10,
+			3, 1, 9, 6, 248, 255, 14, 0, 253, 255, 249, 238, 244, 241, 243, 3, 6, 8, 7, 6, 10, 9, 0, 3, 10, 254, 253, 254, 248, 251,
+			255, 255, 3, 11, 5, 249, 18, 24, 9, 1, 0, 3, 0, 254, 248, 241, 240, 237, 248, 249, 238, 249, 6, 12, 10, 9, 6, 13, 11, 1,
+			251, 253, 253, 237, 238, 245, 245, 247, 255, 13, 19, 8, 13, 23, 19, 15, 12, 254, 250, 250, 247, 243, 247, 251, 0, 0, 8, 11, 246, 246,
+			15, 19, 244, 252, 15, 248, 242, 250, 4, 249, 3, 3, 241, 0, 0, 252, 250, 253, 7, 5, 6, 4, 15, 15, 5, 0, 2, 14, 17, 3,
+			252, 254, 3, 5, 9, 10, 0, 3, 249, 247, 0, 246, 249, 251, 235, 253, 9, 3, 7, 11, 8, 8, 1, 249, 0, 12, 250, 231, 242, 6,
+			4, 240, 242, 18, 34, 23, 14, 10, 7, 3, 1, 1, 243, 252, 249, 242, 245, 235, 245, 9, 4, 247, 253, 253, 2, 3, 250, 248, 245, 248,
+			254, 249, 251, 4, 8, 2, 254, 5, 13, 12, 12, 6, 252, 0, 4, 251, 241, 238, 249, 254, 245, 235, 249, 1, 252, 253, 1, 8, 15, 17,
+			1, 250, 1, 5, 8, 248, 232, 0, 15, 253, 245, 252, 13, 26, 13, 15, 17, 8, 15, 2, 249, 246, 8, 21, 13, 22, 10, 255, 255, 9,
+			6, 9, 18, 2, 244, 241, 0, 6, 255, 17, 26, 14, 7, 0, 140, 0, 4, 0, 1, 0, 0, 1, 133, 2, 169, 6, 216, 9, 192, 13,
+			185, 15, 32, 29, 50, 47, 31, 55, 66, 49, 36, 28, 9, 7, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 0, 1, 133, 2, 169, 6,
+			216, 9, 192, 13, 185, 15, 32, 29, 50, 90, 43, 76, 91, 68, 51, 39, 13, 7, 217, 150, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 0, 1,
+			133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 40, 68, 37, 66, 79, 59, 45, 34, 11, 6, 217, 150, 180, 120, 120, 120, 217, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 0, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 0, 49, 31, 56, 68, 51, 38, 28, 9, 9, 217, 150, 180, 120,
+			120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 45, 49, 25, 74, 48, 46,
+			48, 28, 11, 5, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 70, 100,
+			36, 105, 69, 65, 68, 40, 16, 7, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15,
+			96, 25, 60, 80, 32, 94, 62, 58, 61, 35, 14, 6, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 104, 0, 104, 1, 72, 8, 100, 10,
+			72, 13, 40, 15, 96, 25, 0, 40, 23, 66, 43, 41, 43, 25, 10, 4, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 4, 0, 1, 0,
+			148, 0, 48, 1, 238, 7, 60, 10, 42, 13, 50, 15, 96, 25, 45, 37, 15, 54, 57, 51, 48, 33, 13, 6, 160, 111, 120, 143, 120, 120,
+			130, 111, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 148, 0, 48, 1, 238, 7, 60, 10, 42, 13, 50, 15, 96, 25, 75, 65, 20, 72, 76, 68, 64, 44, 18, 8, 160, 111,
+			120, 143, 120, 120, 130, 111, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 40, 1, 12, 8, 92, 10, 42, 13, 50, 15, 96, 25, 65, 48, 17, 61, 64, 57, 54, 37,
+			15, 7, 160, 111, 120, 143, 120, 120, 130, 111, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 148, 0, 40, 1, 32, 8, 140, 10, 42, 13, 50, 15, 96, 25, 0, 24, 12, 43,
+			46, 41, 39, 27, 11, 5, 160, 111, 120, 143, 120, 120, 130, 111, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 105, 0, 5, 0, 1, 0, 144, 0, 176, 1, 32, 3, 20, 10, 148, 12,
+			120, 15, 88, 27, 45, 42, 22, 48, 58, 37, 34, 19, 13, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 144, 0, 168, 1, 32, 3,
+			20, 10, 148, 12, 120, 15, 88, 27, 60, 80, 28, 70, 77, 46, 43, 24, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 144, 0,
+			168, 1, 32, 3, 20, 10, 148, 12, 120, 15, 88, 27, 40, 71, 26, 66, 72, 43, 40, 23, 16, 7, 165, 126, 145, 120, 120, 120, 165, 115,
+			130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 136, 0, 160, 1, 22, 3, 30, 10, 148, 12, 120, 15, 88, 27, 40, 49, 22, 55, 60, 36, 33, 19, 13, 6, 165, 126, 145, 120,
+			120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 128, 0, 152, 1, 12, 3, 40, 10, 148, 12, 120, 15, 88, 27, 0, 43, 20, 51, 56, 34, 31, 18, 12, 5,
+			165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 40, 0, 5, 0, 1, 0, 176, 0, 168, 1, 88, 7, 216, 9, 32, 13, 60, 15, 96, 25, 45, 103,
+			44, 108, 68, 68, 75, 44, 18, 8, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 177, 0, 149, 1, 254, 6, 138, 9, 240, 12, 24, 15,
+			141, 25, 44, 91, 42, 98, 65, 63, 69, 40, 18, 8, 160, 93, 125, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 180, 0, 104, 1, 44, 6, 212, 8,
+			128, 12, 196, 14, 248, 25, 71, 72, 40, 76, 60, 52, 55, 32, 19, 8, 161, 101, 138, 120, 120, 120, 130, 101, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 88, 1,
+			56, 4, 152, 8, 104, 11, 136, 14, 144, 26, 40, 45, 36, 44, 52, 36, 36, 20, 20, 8, 162, 135, 157, 120, 120, 120, 162, 120, 157, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			184, 0, 88, 1, 56, 4, 152, 8, 104, 11, 136, 14, 144, 26, 0, 35, 31, 38, 45, 31, 31, 17, 17, 7, 162, 135, 157, 120, 120, 120,
+			162, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 75, 0, 6, 0, 1, 0, 184, 0, 96, 1, 192, 3, 36, 9, 224, 11, 136, 14, 144, 26, 50, 46, 20, 55, 58, 40, 35, 26,
+			14, 7, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 96, 1, 192, 3, 36, 9, 224, 11, 136, 14, 144, 26, 50, 63, 23, 64,
+			68, 47, 40, 30, 17, 8, 162, 127, 157, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 183, 0, 96, 1, 11, 4, 46, 9, 241, 11, 137, 14, 166, 26,
+			50, 53, 23, 59, 61, 45, 39, 29, 16, 8, 162, 126, 164, 120, 120, 120, 162, 127, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 174, 0, 97, 1, 182, 5, 108, 9, 83, 12,
+			147, 14, 38, 27, 50, 36, 24, 48, 39, 45, 40, 28, 14, 7, 164, 118, 201, 120, 120, 120, 162, 120, 200, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 168, 0, 91, 1, 240, 6,
+			229, 9, 206, 12, 153, 14, 143, 27, 25, 26, 22, 42, 33, 36, 33, 22, 10, 6, 165, 106, 186, 120, 120, 120, 162, 120, 172, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 164, 0,
+			87, 1, 119, 7, 26, 10, 3, 13, 157, 14, 189, 27, 0, 23, 21, 40, 33, 32, 27, 20, 6, 6, 166, 101, 183, 120, 120, 120, 162, 120,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			100, 0, 5, 0, 1, 0, 32, 1, 32, 3, 236, 4, 160, 10, 172, 13, 180, 15, 32, 28, 50, 46, 32, 56, 66, 39, 32, 22, 9, 4,
+			162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 32, 1, 32, 3, 216, 4, 160, 10, 172, 13, 180, 15, 32, 28, 50, 91, 44, 82, 88, 54,
+			44, 30, 13, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 32, 1, 32, 3, 0, 5, 160, 10, 172, 13, 180, 15, 32, 28, 50, 87,
+			44, 82, 88, 54, 44, 30, 13, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 32, 1, 13, 3, 0, 5, 120, 10, 52, 13, 120, 15,
+			32, 28, 50, 68, 39, 69, 82, 48, 39, 27, 12, 6, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 32, 1, 13, 3, 0, 5, 120, 10,
+			52, 13, 120, 15, 32, 28, 0, 35, 28, 50, 59, 35, 28, 19, 8, 4, 162, 155, 135, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 160, 0, 4, 0, 1, 0,
+			149, 0, 24, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 44, 7, 62, 51, 47, 51, 23, 16, 8, 182, 120, 133, 133, 142, 161,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 149, 0, 24, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 60, 56, 8, 70, 58, 53, 58, 26, 18, 9, 182, 120,
+			133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 149, 0, 8, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 49, 14, 62, 47, 46, 49, 21,
+			16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 149, 0, 8, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 0, 45, 14, 59,
+			45, 44, 47, 20, 15, 7, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 125, 0, 6, 0, 1, 0, 14, 1, 8, 3, 176, 4, 200, 10, 2, 13,
+			238, 14, 192, 27, 45, 42, 24, 56, 63, 36, 30, 25, 9, 4, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 14, 1, 8, 3, 176, 4,
+			200, 10, 2, 13, 238, 14, 192, 27, 40, 92, 36, 82, 93, 53, 44, 37, 13, 6, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 14, 1,
+			8, 3, 176, 4, 200, 10, 2, 13, 238, 14, 192, 27, 35, 75, 32, 74, 84, 48, 39, 33, 12, 6, 165, 148, 135, 120, 120, 120, 167, 142,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 245, 0, 150, 2, 86, 4, 144, 10, 229, 12, 209, 14, 107, 27, 80, 62, 28, 69, 70, 43, 36, 31, 13, 6, 164, 144, 140, 120,
+			120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 186, 0, 137, 1, 132, 3, 13, 10, 159, 12, 139, 14, 164, 26, 40, 48, 21, 61, 38, 31, 28, 28, 17, 7,
+			163, 134, 154, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 112, 1, 132, 3, 236, 9, 148, 12, 136, 14, 144, 26, 0, 32, 18, 50, 30, 25,
+			23, 23, 14, 6, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 230, 0, 5, 0, 1, 0, 72, 1, 136, 3, 40, 5, 180, 10, 112, 13, 191, 14,
+			32, 28, 45, 45, 30, 64, 55, 34, 30, 19, 9, 4, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 65, 70, 130, 54, 0, 0, 0, 0,
+			50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 72, 1, 136, 3, 40, 5, 180, 10,
+			112, 13, 191, 14, 32, 28, 70, 103, 45, 97, 83, 52, 45, 28, 13, 6, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 65, 70, 130, 54,
+			0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 55, 1, 100, 3,
+			140, 5, 160, 10, 116, 13, 189, 14, 32, 28, 70, 80, 40, 88, 78, 48, 40, 26, 12, 6, 203, 144, 114, 120, 120, 120, 237, 165, 165, 44,
+			60, 70, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			156, 0, 88, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 45, 40, 27, 54, 49, 58, 45, 32, 9, 7, 167, 90, 195, 120, 120, 120,
+			122, 120, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 156, 0, 88, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 25, 22, 44, 45, 41, 37, 30, 8, 7, 167, 90,
+			135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 200, 0, 4, 0, 1, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14, 128, 28, 50, 37, 26, 54,
+			56, 55, 44, 32, 11, 6, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14, 128, 28,
+			80, 57, 32, 66, 69, 68, 54, 40, 13, 8, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13,
+			101, 14, 128, 28, 70, 59, 33, 68, 70, 69, 55, 41, 13, 8, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 160, 0, 232, 1, 198, 7,
+			236, 9, 12, 13, 101, 14, 128, 28, 0, 27, 22, 45, 47, 47, 37, 27, 9, 5, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 60, 0, 4, 0,
+			1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 45, 35, 18, 54, 40, 32, 35, 31, 9, 10, 167, 96, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 60, 68, 25, 76, 56, 45, 48, 43, 13, 15,
+			167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 60, 55, 23, 68, 50, 40,
+			44, 39, 11, 13, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 130, 0, 49, 1, 164, 6, 36, 9, 228, 12, 99, 14, 151, 25, 0, 44,
+			20, 61, 45, 36, 39, 35, 10, 12, 167, 96, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 55, 0, 2, 0, 5, 0, 76, 0, 104, 1, 8, 7, 124, 11,
+			172, 13, 160, 15, 32, 29, 55, 17, 9, 45, 22, 18, 34, 20, 8, 0, 155, 135, 97, 120, 120, 120, 95, 105, 97, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 76, 0, 104, 1,
+			8, 7, 124, 11, 172, 13, 160, 15, 32, 29, 0, 12, 7, 38, 23, 15, 28, 16, 7, 0, 150, 135, 97, 120, 120, 120, 90, 105, 97, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 18, 0,
+			2, 0, 5, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 18, 14, 3, 39, 18, 28, 36, 20, 6, 0, 120, 105,
+			150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 1, 0, 180, 0, 29, 1, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29, 0, 26, 4, 52, 24, 38, 48, 27,
+			8, 0, 120, 105, 150, 120, 120, 120, 45, 135, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 35, 0, 3, 0, 5, 0, 224, 0, 224, 2, 40, 5, 76, 9, 208, 12, 136, 14, 117, 27,
+			35, 30, 23, 47, 39, 34, 28, 23, 9, 2, 196, 162, 195, 120, 120, 120, 249, 174, 250, 44, 35, 70, 130, 50, 0, 0, 0, 0, 45, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 224, 0, 224, 2, 40, 5, 76, 9, 208, 12,
+			136, 14, 117, 27, 40, 30, 23, 47, 39, 34, 28, 23, 9, 2, 196, 162, 195, 120, 120, 120, 249, 174, 250, 44, 35, 70, 130, 50, 0, 0,
+			0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 208, 0, 208, 2, 60, 5,
+			76, 9, 208, 12, 136, 14, 105, 27, 0, 24, 22, 44, 31, 23, 21, 21, 10, 2, 192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 35, 70,
+			130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 35, 0, 3, 0,
+			5, 0, 116, 0, 32, 2, 100, 5, 252, 8, 168, 12, 116, 14, 96, 27, 35, 28, 23, 45, 56, 31, 32, 24, 12, 7, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 5, 0, 116, 0, 32, 2, 100, 5, 252, 8, 168, 12, 116, 14, 96, 27, 40, 28, 23, 45, 56, 31, 32, 24, 12, 7,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 32, 2, 100, 5, 252, 8, 168, 12, 116, 14, 96, 27, 0, 22, 20, 40, 50, 28,
+			28, 22, 11, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 35, 0, 3, 0, 5, 0, 208, 0, 120, 2, 20, 5, 252, 8, 88, 12, 196, 14,
+			210, 27, 35, 34, 27, 45, 60, 36, 33, 21, 12, 4, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 208, 0, 120, 2, 20, 5, 252, 8,
+			88, 12, 196, 14, 210, 27, 40, 34, 27, 45, 60, 36, 33, 21, 12, 4, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 208, 0, 120, 2,
+			20, 5, 252, 8, 88, 12, 156, 14, 210, 27, 0, 27, 25, 41, 52, 30, 28, 19, 11, 4, 185, 160, 141, 120, 120, 120, 235, 150, 118, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 150, 0,
+			5, 0, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 50, 51, 26, 61, 52, 32, 29, 20, 14, 7, 162, 127,
+			150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 60, 78, 32, 75, 64, 39, 36, 25,
+			18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 132, 1, 172, 3, 116, 9, 224, 11, 136, 14, 144, 26, 40, 67, 30, 71,
+			57, 37, 33, 23, 16, 8, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 128, 0, 32, 2, 156, 4, 252, 8, 68, 12, 136, 14, 96, 27,
+			40, 34, 29, 53, 50, 34, 31, 29, 15, 5, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 128, 0, 32, 2, 156, 4, 252, 8, 68, 12,
+			136, 14, 96, 27, 0, 34, 29, 53, 50, 34, 31, 29, 15, 5, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 190, 0, 5, 0, 1, 0, 0, 1,
+			112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 50, 34, 23, 44, 44, 18, 36, 20, 5, 5, 186, 175, 135, 120, 120, 120, 105, 185,
+			148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 50, 66, 32, 61, 61, 25, 50, 28, 8, 7, 186, 175, 135, 120,
+			120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 50, 66, 32, 61, 61, 25, 50, 28, 8, 7,
+			186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 40, 47, 27, 52, 52, 21,
+			42, 24, 6, 6, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 0, 20,
+			18, 34, 34, 14, 28, 16, 4, 4, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 255, 0, 0, 3, 0, 0, 0, 0, 0, 127, 0, 114, 0, 0,
+			0, 0, 245, 0, 5, 0, 1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 45, 32, 26, 49, 47, 49, 41, 30,
+			9, 6, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 71, 38, 72,
+			72, 76, 63, 46, 14, 10, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28,
+			60, 50, 32, 60, 60, 64, 53, 38, 12, 8, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 64, 1, 252, 8, 180, 10, 152, 13,
+			10, 15, 32, 28, 60, 25, 18, 46, 43, 39, 36, 28, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 64, 1, 252, 8,
+			180, 10, 152, 13, 10, 15, 32, 28, 0, 23, 17, 45, 41, 38, 35, 27, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 175, 0, 4, 0,
+			1, 0, 156, 0, 56, 1, 252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 45, 40, 11, 59, 53, 52, 45, 28, 11, 7, 176, 106, 143, 120,
+			120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 156, 0, 56, 1, 252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 70, 83, 17, 85, 76, 75, 65, 40, 16, 10,
+			176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 156, 0, 56, 1, 252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 60, 67, 15, 76, 69, 67,
+			58, 36, 15, 9, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 48, 1, 252, 8, 4, 11, 212, 13, 120, 15, 144, 27, 0, 30,
+			10, 51, 46, 45, 39, 24, 10, 6, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 4, 0, 1, 0, 248, 0, 200, 2, 136, 4, 220, 10,
+			52, 13, 68, 15, 176, 27, 45, 50, 30, 61, 64, 39, 36, 25, 7, 5, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 200, 2,
+			136, 4, 220, 10, 52, 13, 68, 15, 176, 27, 60, 96, 42, 85, 89, 55, 49, 35, 10, 7, 165, 130, 155, 120, 120, 120, 167, 130, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			248, 0, 192, 2, 136, 4, 220, 10, 52, 13, 68, 15, 176, 27, 80, 85, 40, 80, 84, 52, 47, 33, 9, 7, 165, 130, 155, 120, 120, 120,
+			167, 130, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 248, 0, 184, 2, 136, 4, 220, 10, 52, 13, 68, 15, 176, 27, 0, 48, 30, 60, 63, 39, 35, 25, 7, 5, 165, 130,
+			155, 120, 120, 120, 167, 130, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 100, 0, 4, 0, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 47, 3, 73,
+			43, 21, 21, 30, 12, 7, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26,
+			50, 79, 4, 96, 56, 28, 28, 40, 16, 10, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13,
+			60, 15, 144, 26, 70, 63, 3, 85, 49, 24, 24, 35, 14, 8, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 88, 1, 32, 3,
+			56, 9, 12, 13, 60, 15, 144, 26, 0, 31, 2, 60, 35, 17, 17, 25, 10, 6, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0,
+			1, 0, 176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 45, 55, 12, 64, 58, 30, 27, 24, 15, 7, 162, 127, 150, 120,
+			120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 70, 92, 16, 84, 76, 40, 36, 32, 20, 10,
+			162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 60, 75, 14, 75, 68, 36,
+			32, 28, 18, 9, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 112, 1, 32, 3, 100, 10, 48, 12, 60, 15, 144, 26, 0, 49,
+			11, 61, 55, 29, 26, 23, 14, 7, 162, 127, 150, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10,
+			188, 12, 92, 14, 87, 27, 45, 60, 24, 58, 73, 41, 37, 34, 9, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 250, 0, 176, 2,
+			40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 30, 103, 32, 76, 95, 54, 48, 44, 12, 7, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			244, 0, 216, 2, 116, 4, 160, 10, 148, 12, 41, 14, 96, 27, 35, 85, 32, 68, 98, 49, 41, 41, 16, 8, 167, 142, 135, 120, 120, 120,
+			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 246, 0, 200, 2, 120, 5, 216, 9, 132, 13, 224, 16, 88, 27, 50, 64, 34, 76, 64, 48, 44, 20, 12, 10, 226, 150,
+			136, 120, 120, 120, 235, 150, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 5, 0, 166, 0, 80, 1, 192, 8, 229, 10, 132, 13, 94, 15, 138, 27, 70, 50, 16, 60, 60, 57, 50, 30,
+			13, 8, 181, 110, 142, 120, 120, 120, 235, 150, 136, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 56, 1, 252, 8, 4, 11, 132, 13, 50, 15, 144, 27, 0, 40, 11, 59,
+			53, 52, 45, 28, 11, 7, 176, 106, 143, 120, 120, 120, 185, 107, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 255, 0, 5, 0, 1, 0, 24, 1, 232, 2, 4, 6, 196, 9, 112, 13,
+			40, 15, 153, 28, 45, 45, 31, 60, 60, 46, 36, 28, 10, 6, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 24, 1, 232, 2, 4, 6,
+			196, 9, 112, 13, 40, 15, 153, 28, 75, 88, 44, 84, 84, 64, 51, 39, 14, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 24, 1,
+			232, 2, 4, 6, 196, 9, 112, 13, 40, 15, 153, 28, 65, 79, 41, 79, 79, 60, 48, 37, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 156, 0, 80, 1, 192, 8, 140, 10, 152, 13, 166, 14, 32, 28, 70, 43, 32, 55, 49, 58, 45, 33, 10, 8, 167, 90, 195, 120,
+			120, 120, 122, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 156, 0, 72, 1, 232, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 30, 28, 45, 45, 41, 38, 30, 8, 8,
+			167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 45, 49,
 			28, 59, 69, 41, 43, 30, 17, 6, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14,
 			95, 27, 80, 79, 36, 75, 88, 52, 55, 38, 21, 8, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9,
 			228, 12, 246, 14, 95, 27, 80, 64, 32, 68, 79, 47, 49, 35, 19, 7, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1,
-			184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 47, 20, 63, 43, 37, 40, 36, 10, 13, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 30, 16, 50, 34, 29, 32, 29, 8, 10, 165, 90, 135, 120, 120, 120,
-			165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 250, 0, 5, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 45, 6, 66, 59, 59, 60, 29,
-			14, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 80, 72, 10, 83,
-			73, 74, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 4, 11, 12, 13, 216, 14, 64, 26,
-			80, 45, 10, 60, 60, 63, 63, 34, 11, 8, 167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12,
-			96, 14, 100, 25, 45, 47, 20, 63, 43, 37, 40, 36, 10, 13, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 184, 6,
-			36, 9, 228, 12, 96, 14, 100, 25, 0, 30, 16, 50, 34, 29, 32, 29, 8, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 185, 0, 5, 0,
-			1, 0, 176, 0, 88, 1, 128, 3, 71, 9, 213, 12, 38, 15, 162, 26, 45, 47, 6, 73, 41, 23, 23, 29, 12, 7, 176, 126, 108, 120,
-			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 176, 0, 88, 1, 128, 3, 71, 9, 213, 12, 38, 15, 162, 26, 80, 80, 8, 94, 53, 31, 30, 38, 16, 9,
-			176, 126, 108, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 103, 1, 125, 3, 80, 9, 181, 12, 25, 15, 173, 26, 65, 60, 9, 80, 48, 28,
-			26, 31, 13, 7, 175, 126, 112, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 5, 0, 170, 0, 224, 1, 99, 3, 155, 9, 98, 12, 223, 14, 7, 27, 60, 47,
-			22, 59, 51, 32, 27, 19, 12, 5, 169, 133, 142, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 169, 0, 238, 1, 96, 3, 164, 9, 88, 12, 216, 14,
-			18, 27, 0, 33, 19, 48, 44, 26, 23, 15, 11, 4, 168, 134, 145, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 80, 0, 5, 0, 1, 0, 132, 0, 24, 1,
-			184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 35, 17, 55, 37, 32, 35, 32, 8, 11, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 80, 67, 24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 80, 54, 21, 68, 46, 39, 43, 39, 10, 14, 167, 90,
-			135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 45, 38, 25, 52, 61, 36, 38, 27,
-			15, 5, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 0, 27, 21, 44,
-			52, 30, 32, 23, 12, 5, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 65, 0, 4, 0, 5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12,
-			212, 13, 96, 27, 20, 8, 14, 26, 25, 12, 12, 12, 7, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 116, 0, 13, 2, 161, 5,
-			152, 8, 128, 12, 212, 13, 96, 27, 25, 15, 19, 35, 33, 16, 16, 16, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 5, 0, 116, 0,
-			13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 20, 15, 19, 35, 33, 16, 16, 16, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 0, 9, 15, 28, 26, 13, 13, 13, 7, 4, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 234, 8, 18, 0, 253, 253, 0, 0, 249, 246, 252, 252, 244, 236, 237, 245, 247, 248, 252, 254, 2, 10, 16, 10, 13, 22,
-			7, 13, 34, 24, 31, 29, 14, 29, 17, 7, 25, 0, 230, 246, 252, 249, 247, 228, 229, 242, 246, 232, 229, 240, 238, 245, 1, 252, 215, 217,
-			5, 13, 18, 35, 17, 20, 45, 18, 244, 251, 254, 0, 17, 252, 225, 245, 2, 29, 10, 214, 234, 22, 55, 56, 13, 2, 28, 34, 40, 24,
-			228, 233, 251, 253, 37, 250, 182, 232, 30, 33, 245, 208, 223, 245, 231, 217, 220, 197, 216, 8, 234, 158, 176, 233, 228, 240, 246, 252, 40, 51,
-			23, 37, 82, 62, 43, 73, 90, 92, 101, 75, 32, 44, 50, 20, 12, 5, 239, 216, 208, 226, 230, 167, 151, 213, 223, 225, 233, 220, 234, 10,
-			42, 34, 4, 37, 71, 36, 31, 49, 246, 226, 15, 248, 229, 238, 211, 238, 5, 225, 250, 249, 204, 238, 22, 12, 10, 20, 34, 43, 33, 45,
-			64, 46, 36, 60, 60, 32, 245, 230, 16, 29, 228, 223, 218, 162, 218, 0, 199, 217, 235, 226, 39, 30, 244, 34, 5, 242, 30, 25, 17, 12,
-			7, 20, 44, 22, 240, 243, 231, 210, 1, 19, 208, 221, 252, 238, 238, 204, 185, 246, 246, 221, 32, 35, 237, 3, 41, 40, 25, 10, 22, 70,
-			103, 70, 50, 74, 68, 49, 38, 12, 251, 22, 14, 238, 7, 220, 153, 181, 212, 215, 209, 171, 165, 225, 239, 204, 206, 224, 204, 248, 19, 241,
-			3, 255, 2, 49, 58, 12, 237, 19, 48, 25, 18, 19, 6, 15, 35, 37, 18, 220, 224, 42, 25, 238, 231, 243, 17, 12, 10, 44, 22, 18,
-			88, 50, 245, 18, 241, 197, 3, 22, 240, 243, 201, 184, 244, 238, 212, 227, 237, 14, 55, 32, 222, 248, 95, 72, 228, 196, 223, 255, 10, 6,
-			231, 253, 40, 4, 18, 47, 220, 226, 65, 61, 34, 33, 13, 18, 41, 23, 253, 242, 248, 5, 8, 251, 215, 197, 206, 196, 168, 164, 201, 206,
-			222, 26, 245, 186, 227, 4, 53, 90, 6, 219, 39, 43, 0, 10, 236, 205, 244, 7, 255, 3, 233, 217, 15, 36, 250, 234, 0, 0, 254, 24,
-			3, 236, 29, 71, 55, 37, 43, 0, 232, 9, 5, 243, 239, 236, 230, 243, 242, 232, 245, 247, 215, 190, 215, 222, 221, 253, 255, 240, 5, 23,
-			29, 61, 48, 3, 29, 31, 4, 28, 14, 8, 13, 241, 15, 33, 1, 246, 255, 7, 231, 214, 14, 22, 251, 251, 228, 251, 254, 215, 246, 21,
-			241, 233, 0, 254, 46, 59, 0, 7, 58, 49, 7, 246, 241, 8, 38, 241, 175, 184, 205, 232, 252, 193, 156, 206, 253, 5, 239, 207, 229, 12,
-			46, 70, 27, 20, 69, 76, 69, 60, 34, 65, 55, 255, 21, 0, 182, 205, 252, 254, 238, 207, 186, 212, 7, 238, 214, 221, 204, 244, 46, 40,
-			6, 243, 253, 39, 33, 242, 229, 232, 1, 0, 224, 2, 253, 217, 253, 13, 245, 254, 252, 251, 56, 28, 232, 3, 241, 245, 16, 17, 12, 252,
-			15, 31, 23, 26, 6, 238, 2, 15, 11, 48, 64, 39, 2, 46, 101, 19, 219, 14, 41, 7, 234, 200, 219, 244, 206, 222, 13, 4, 230, 234,
-			243, 3, 34, 30, 27, 35, 31, 59, 80, 56, 49, 51, 26, 9, 3, 7, 242, 196, 216, 1, 210, 193, 193, 161, 224, 5, 177, 158, 221, 243,
-			1, 246, 215, 9, 46, 16, 33, 51, 35, 55, 36, 255, 22, 20, 216, 182, 213, 220, 208, 214, 214, 202, 218, 252, 1, 253, 254, 252, 21, 38,
-			254, 15, 66, 43, 62, 105, 73, 65, 77, 58, 49, 40, 241, 232, 34, 239, 180, 237, 234, 189, 234, 254, 226, 242, 254, 5, 53, 61, 3, 3,
-			62, 61, 37, 11, 249, 0, 10, 240, 197, 221, 243, 204, 224, 30, 226, 211, 35, 251, 234, 10, 242, 37, 49, 204, 13, 85, 4, 7, 45, 250,
-			238, 9, 244, 247, 9, 6, 32, 42, 1, 238, 252, 252, 248, 25, 5, 182, 212, 49, 41, 239, 235, 239, 4, 29, 225, 199, 227, 189, 208, 7,
-			219, 214, 11, 241, 217, 3, 49, 38, 16, 21, 55, 97, 48, 2, 43, 26, 198, 221, 4, 198, 203, 235, 195, 231, 237, 180, 238, 34, 5, 10,
-			21, 53, 108, 80, 46, 52, 46, 46, 35, 17, 13, 242, 230, 251, 206, 155, 190, 214, 187, 208, 217, 195, 11, 17, 231, 33, 40, 5, 26, 21,
-			24, 43, 238, 229, 22, 14, 238, 200, 239, 34, 34, 34, 251, 205, 234, 56, 35, 231, 19, 53, 37, 33, 251, 244, 51, 26, 230, 3, 233, 209,
-			1, 247, 231, 0, 216, 167, 218, 228, 191, 221, 231, 219, 14, 5, 219, 26, 29, 250, 44, 61, 19, 252, 8, 33, 62, 46, 0, 246, 9, 22,
-			5, 242, 236, 231, 228, 243, 227, 219, 6, 11, 30, 62, 17, 40, 106, 70, 93, 104, 14, 17, 55, 30, 242, 196, 183, 221, 233, 176, 136, 156,
-			192, 179, 183, 184, 158, 189, 227, 245, 244, 251, 22, 56, 66, 39, 2, 6, 28, 248, 237, 255, 248, 231, 209, 220, 222, 236, 15, 7, 8, 16,
-			6, 33, 47, 34, 53, 59, 40, 42, 42, 47, 39, 0, 7, 2, 220, 207, 178, 154, 195, 216, 179, 178, 193, 215, 26, 10, 235, 58, 67, 16,
-			71, 93, 29, 9, 24, 48, 54, 11, 245, 23, 33, 1, 216, 223, 25, 37, 66, 67, 248, 226, 13, 28, 16, 9, 225, 227, 7, 225, 229, 3,
-			220, 229, 0, 251, 37, 14, 225, 19, 21, 230, 226, 242, 7, 16, 254, 5, 14, 242, 244, 19, 26, 13, 252, 10, 14, 6, 25, 6, 232, 255,
-			18, 244, 233, 17, 31, 6, 255, 22, 27, 241, 203, 229, 8, 251, 226, 238, 6, 241, 239, 9, 228, 249, 61, 9, 226, 33, 30, 1, 42, 6,
-			242, 44, 15, 251, 34, 255, 250, 27, 245, 227, 9, 33, 17, 28, 9, 199, 215, 15, 243, 205, 208, 190, 211, 8, 248, 207, 240, 252, 226, 7,
-			8, 237, 50, 74, 47, 87, 54, 10, 65, 46, 253, 239, 243, 0, 250, 0, 230, 225, 238, 220, 254, 22, 200, 204, 22, 243, 1, 34, 232, 231,
-			40, 38, 251, 17, 8, 2, 79, 45, 224, 28, 56, 17, 32, 245, 187, 244, 42, 0, 219, 239, 242, 233, 242, 220, 205, 244, 236, 215, 255, 0,
-			237, 12, 37, 46, 55, 53, 58, 55, 27, 21, 30, 30, 36, 19, 248, 249, 235, 231, 253, 207, 161, 208, 242, 221, 210, 236, 12, 9, 227, 216,
-			7, 6, 243, 249, 251, 6, 18, 47, 46, 17, 30, 21, 6, 71, 96, 46, 50, 35, 1, 16, 231, 200, 239, 252, 252, 3, 225, 184, 180, 190,
-			211, 232, 225, 221, 1, 22, 29, 22, 255, 28, 46, 33, 59, 48, 19, 36, 17, 244, 254, 237, 236, 248, 240, 247, 228, 212, 189, 164, 178, 222,
-			6, 0, 254, 19, 46, 67, 55, 4, 251, 38, 46, 44, 58, 40, 19, 12, 2, 10, 14, 234, 214, 243, 228, 180, 173, 186, 210, 243, 221, 192,
-			232, 248, 246, 13, 0, 225, 9, 59, 45, 35, 29, 18, 24, 32, 26, 30, 54, 42, 2, 11, 23, 4, 1, 10, 246, 218, 249, 240, 198, 217,
-			235, 244, 250, 234, 231, 3, 20, 10, 24, 35, 7, 0, 24, 245, 215, 228, 228, 223, 209, 219, 220, 206, 211, 225, 215, 192, 215, 245, 248, 9,
-			27, 17, 30, 64, 53, 52, 74, 80, 94, 86, 51, 41, 27, 241, 221, 245, 233, 221, 10, 2, 225, 244, 234, 216, 1, 254, 211, 10, 62, 12,
-			237, 253, 254, 12, 44, 15, 249, 27, 9, 241, 247, 213, 193, 230, 242, 214, 216, 2, 31, 22, 7, 237, 242, 37, 51, 29, 27, 27, 9, 32,
-			18, 205, 215, 254, 253, 3, 247, 238, 1, 8, 1, 242, 215, 227, 16, 15, 3, 251, 250, 15, 246, 245, 18, 3, 12, 35, 241, 208, 254, 249,
-			223, 227, 214, 223, 252, 4, 6, 10, 251, 247, 25, 28, 253, 10, 35, 21, 22, 40, 8, 247, 16, 19, 4, 5, 237, 218, 7, 6, 208, 215,
-			230, 231, 1, 248, 228, 253, 254, 231, 0, 11, 244, 3, 40, 25, 7, 21, 4, 0, 23, 1, 0, 16, 7, 25, 13, 241, 253, 245, 217, 220,
-			232, 253, 12, 252, 237, 19, 52, 19, 18, 41, 18, 37, 64, 22, 4, 1, 243, 3, 23, 17, 3, 6, 15, 0, 9, 13, 223, 252, 31, 5,
-			17, 26, 245, 248, 16, 7, 20, 40, 3, 237, 31, 25, 232, 223, 199, 210, 243, 210, 204, 238, 229, 232, 245, 246, 244, 251, 19, 42, 69, 72,
-			16, 243, 24, 45, 15, 237, 228, 233, 246, 240, 214, 227, 254, 247, 244, 235, 224, 250, 18, 13, 254, 233, 243, 2, 16, 44, 19, 11, 44, 53,
-			37, 15, 17, 22, 19, 34, 27, 249, 251, 16, 24, 255, 231, 249, 253, 3, 255, 223, 245, 14, 249, 214, 222, 247, 248, 2, 251, 236, 233, 227,
-			238, 17, 18, 238, 248, 4, 11, 36, 15, 234, 16, 56, 40, 45, 28, 1, 33, 18, 227, 233, 244, 242, 4, 8, 251, 254, 250, 248, 7, 11,
-			10, 14, 5, 5, 22, 26, 5, 255, 249, 229, 231, 255, 243, 212, 234, 243, 198, 216, 1, 243, 236, 247, 247, 250, 238, 238, 25, 33, 23, 28,
-			47, 52, 47, 72, 45, 249, 247, 6, 14, 14, 8, 241, 237, 247, 251, 243, 221, 210, 226, 14, 12, 232, 239, 4, 12, 8, 244, 225, 246, 6,
-			246, 242, 242, 240, 246, 243, 213, 224, 16, 255, 248, 6, 247, 8, 31, 10, 16, 38, 29, 42, 50, 39, 37, 23, 9, 249, 1, 28, 2, 243,
-			237, 208, 223, 241, 228, 230, 228, 217, 235, 236, 218, 239, 254, 223, 229, 12, 9, 13, 29, 27, 40, 40, 44, 48, 13, 239, 245, 18, 27, 253,
-			222, 226, 242, 231, 221, 211, 200, 228, 237, 211, 205, 213, 241, 22, 35, 36, 34, 46, 61, 57, 52, 35, 30, 48, 39, 25, 19, 239, 222, 238,
-			235, 203, 189, 192, 187, 204, 228, 210, 205, 234, 0, 27, 25, 5, 24, 34, 25, 32, 27, 17, 32, 50, 35, 9, 14, 13, 249, 245, 244, 248,
-			8, 245, 227, 246, 239, 229, 252, 238, 206, 229, 248, 244, 9, 12, 255, 15, 24, 14, 22, 29, 5, 12, 35, 12, 9, 10, 236, 234, 250, 225,
-			201, 213, 204, 186, 203, 220, 220, 240, 242, 238, 252, 4, 18, 26, 18, 17, 52, 63, 37, 38, 67, 58, 23, 30, 15, 239, 252, 255, 237, 224,
-			204, 215, 241, 213, 199, 221, 222, 223, 254, 8, 248, 22, 52, 49, 61, 56, 49, 73, 76, 60, 77, 52, 15, 34, 29, 15, 13, 232, 209, 229,
-			219, 184, 189, 219, 208, 192, 223, 243, 243, 5, 11, 5, 22, 27, 34, 71, 63, 33, 60, 63, 20, 18, 23, 255, 0, 8, 244, 245, 5, 237,
-			215, 222, 208, 213, 220, 177, 174, 219, 222, 218, 235, 219, 239, 38, 47, 45, 50, 23, 17, 61, 46, 3, 6, 245, 244, 8, 224, 186, 203, 206,
-			208, 219, 188, 188, 241, 9, 15, 15, 7, 7, 40, 73, 66, 67, 70, 53, 77, 90, 38, 19, 28, 253, 0, 19, 230, 207, 237, 241, 231, 221,
-			191, 207, 1, 1, 245, 255, 250, 7, 41, 35, 35, 36, 27, 57, 80, 51, 20, 19, 26, 33, 8, 219, 229, 7, 253, 236, 216, 194, 213, 231,
-			215, 218, 239, 234, 247, 6, 248, 252, 8, 7, 26, 44, 30, 26, 33, 36, 47, 57, 21, 240, 246, 247, 247, 249, 229, 208, 225, 237, 221, 220,
-			225, 230, 246, 11, 17, 20, 40, 35, 49, 80, 51, 34, 56, 40, 14, 28, 1, 215, 231, 230, 217, 211, 193, 201, 218, 203, 195, 220, 233, 232,
-			250, 3, 0, 7, 17, 17, 14, 10, 26, 49, 45, 34, 37, 41, 27, 9, 8, 16, 15, 2, 242, 233, 241, 244, 234, 230, 245, 251, 255, 21,
-			17, 0, 23, 45, 25, 7, 10, 21, 24, 23, 19, 4, 253, 0, 249, 227, 218, 225, 234, 225, 219, 218, 194, 201, 224, 223, 230, 233, 222, 242,
-			12, 251, 245, 10, 8, 16, 31, 8, 5, 45, 34, 252, 13, 10, 240, 247, 251, 244, 244, 247, 245, 0, 1, 240, 5, 27, 8, 16, 38, 20,
-			20, 22, 248, 252, 19, 9, 5, 6, 231, 221, 236, 226, 214, 221, 221, 223, 242, 241, 231, 243, 245, 242, 7, 19, 1, 0, 8, 252, 15, 34,
-			7, 15, 30, 14, 28, 35, 3, 7, 23, 1, 8, 28, 2, 251, 8, 242, 248, 15, 239, 229, 255, 239, 238, 11, 1, 253, 13, 8, 6, 6,
-			234, 223, 251, 253, 236, 250, 0, 249, 254, 248, 241, 249, 242, 247, 12, 0, 250, 14, 14, 8, 10, 17, 28, 39, 22, 0, 14, 21, 1, 3,
-			11, 251, 255, 5, 249, 1, 5, 238, 241, 1, 237, 228, 238, 244, 7, 254, 229, 243, 5, 5, 249, 254, 14, 23, 28, 21, 8, 252, 251, 4,
-			2, 247, 244, 248, 250, 251, 242, 238, 250, 3, 2, 253, 252, 248, 255, 24, 13, 247, 254, 7, 13, 6, 246, 248, 255, 255, 247, 238, 245, 249,
-			253, 0, 249, 254, 6, 2, 3, 5, 1, 4, 0, 0, 185, 0, 4, 0, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14,
-			87, 27, 45, 46, 22, 50, 61, 38, 34, 31, 9, 5, 167, 157, 147, 120, 120, 120, 167, 152, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 250, 0, 176, 2, 40, 4, 246, 10,
-			188, 12, 92, 14, 87, 27, 60, 88, 31, 70, 84, 52, 47, 43, 12, 7, 167, 157, 147, 120, 120, 120, 167, 152, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 250, 0, 176, 2,
-			40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 80, 79, 29, 66, 79, 49, 45, 41, 11, 7, 167, 157, 147, 120, 120, 120, 167, 152, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			250, 0, 160, 2, 76, 4, 246, 10, 188, 12, 92, 14, 87, 27, 0, 42, 22, 50, 60, 37, 34, 31, 8, 5, 167, 159, 147, 120, 120, 120,
-			167, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 200, 0, 4, 0, 1, 0, 191, 0, 196, 1, 88, 7, 216, 9, 248, 12, 123, 14, 185, 27, 50, 42, 27, 55, 55, 57, 48, 34,
-			11, 7, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 191, 0, 196, 1, 88, 7, 216, 9, 248, 12, 123, 14, 185, 27, 80, 80, 37, 76,
-			76, 79, 65, 47, 16, 10, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 191, 0, 196, 1, 88, 7, 216, 9, 248, 12, 123, 14, 185, 27,
-			70, 67, 34, 69, 70, 73, 60, 43, 15, 9, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 191, 0, 196, 1, 88, 7, 216, 9, 248, 12,
-			123, 14, 185, 27, 0, 30, 23, 47, 47, 49, 40, 29, 10, 6, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 200, 0,
-			80, 2, 44, 6, 176, 9, 52, 13, 7, 15, 8, 28, 50, 48, 31, 58, 68, 47, 38, 28, 12, 5, 221, 163, 157, 120, 120, 120, 150, 163,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 200, 0, 80, 2, 44, 6, 176, 9, 52, 13, 7, 15, 8, 28, 80, 83, 41, 76, 90, 62, 51, 38, 17, 7, 221, 163, 157, 120,
-			120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 200, 0, 80, 2, 44, 6, 156, 9, 52, 13, 7, 15, 8, 28, 40, 63, 36, 66, 78, 54, 44, 33, 14, 6,
-			221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 80, 2, 44, 6, 156, 9, 52, 13, 7, 15, 8, 28, 0, 33, 27, 50, 54, 40,
-			33, 24, 11, 4, 221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 160, 0, 4, 0, 1, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16,
-			42, 27, 50, 42, 7, 61, 51, 47, 51, 23, 15, 7, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 172, 0, 64, 1, 207, 8, 214, 11,
-			112, 13, 134, 16, 42, 27, 60, 54, 8, 69, 58, 53, 58, 26, 17, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 172, 0, 64, 1,
-			207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 47, 14, 61, 47, 46, 49, 20, 15, 7, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 0, 34, 12, 53, 41, 40, 42, 17, 13, 6, 182, 120, 133, 133, 142, 161,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 195, 0, 4, 0, 33, 0, 152, 0, 8, 1, 36, 9, 64, 11, 132, 13, 100, 15, 160, 26, 50, 43, 8, 65, 53, 53, 53, 28,
-			13, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 8, 1, 36, 9, 64, 11, 132, 13, 100, 15, 160, 26, 75, 66, 10, 80,
-			65, 65, 65, 35, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 8, 1, 36, 9, 84, 11, 132, 13, 100, 15, 160, 26,
-			70, 54, 9, 73, 59, 59, 59, 31, 15, 7, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 118, 0, 240, 0, 35, 9, 44, 11, 72, 13,
-			60, 15, 112, 26, 0, 26, 7, 48, 42, 41, 42, 23, 10, 6, 171, 105, 112, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0, 120, 0,
-			80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26, 45, 32, 25, 51, 51, 44, 38, 32, 17, 6, 168, 112, 148, 120, 120, 120, 107, 112,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26, 75, 46, 30, 60, 60, 53, 45, 38, 20, 8, 168, 112, 148, 120,
-			120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26, 75, 41, 28, 57, 57, 50, 43, 36, 19, 7,
-			168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26, 0, 32, 25, 51, 51, 44,
-			38, 32, 17, 6, 168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 120, 0, 4, 0, 1, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15,
-			144, 26, 50, 35, 6, 61, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 64, 1, 52, 3, 56, 9,
-			12, 13, 60, 15, 144, 26, 70, 59, 8, 80, 48, 28, 28, 40, 16, 10, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1,
-			52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 36, 6, 62, 37, 21, 21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 23, 5, 50, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120,
-			177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 175, 0, 4, 0, 1, 0, 172, 0, 40, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 45, 40, 3, 67, 48, 19, 25, 28,
-			9, 8, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 172, 0, 40, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 70, 63, 4, 84,
-			60, 24, 32, 36, 12, 10, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 172, 0, 40, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26,
-			60, 56, 3, 79, 57, 22, 30, 34, 11, 9, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 172, 0, 40, 1, 228, 2, 96, 9, 12, 13,
-			60, 15, 144, 26, 0, 38, 3, 65, 46, 18, 24, 28, 9, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 125, 0, 4, 0, 1, 0, 176, 0,
-			104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26, 45, 43, 6, 69, 44, 22, 25, 25, 12, 7, 177, 125, 110, 120, 120, 120, 177, 125,
-			125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26, 80, 70, 8, 88, 56, 28, 32, 32, 16, 10, 177, 125, 110, 120,
-			120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26, 70, 57, 7, 79, 50, 25, 28, 28, 14, 9,
-			177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26, 0, 38, 5, 65, 41, 20,
-			23, 23, 11, 7, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14,
-			144, 26, 45, 34, 24, 51, 51, 36, 36, 30, 15, 7, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 180, 0, 192, 1, 196, 4, 212, 8,
-			148, 12, 226, 14, 144, 26, 70, 60, 32, 68, 68, 48, 48, 40, 20, 10, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 180, 0, 192, 1,
-			196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 50, 54, 30, 64, 64, 45, 45, 38, 19, 9, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 0, 29, 22, 47, 47, 33, 33, 28, 14, 7, 170, 125, 145, 120, 120, 120,
-			162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 175, 0, 4, 0, 1, 0, 116, 0, 208, 1, 116, 4, 80, 10, 48, 12, 196, 14, 96, 27, 45, 40, 23, 57, 57, 37, 34, 31,
-			16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 208, 1, 116, 4, 80, 10, 48, 12, 196, 14, 96, 27, 70, 79, 32, 80,
-			80, 52, 48, 44, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 208, 1, 116, 4, 80, 10, 48, 12, 196, 14, 96, 27,
-			60, 64, 28, 72, 72, 46, 43, 39, 20, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 208, 1, 116, 4, 80, 10, 48, 12,
-			196, 14, 96, 27, 0, 35, 21, 53, 53, 34, 32, 29, 15, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 116, 0,
-			24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 40, 44, 29, 57, 69, 39, 40, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 66, 97, 43, 84, 102, 57, 60, 46, 24, 9, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 124, 0, 244, 1, 40, 6, 172, 9, 232, 12, 126, 14, 128, 27, 94, 50, 32, 60, 70, 44, 44, 33, 16, 6,
-			167, 138, 147, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 40, 31, 54, 47, 57,
-			44, 32, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 34,
-			31, 49, 49, 45, 42, 33, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 175, 8, 35, 0, 10, 234, 191, 13, 42, 250, 10, 243, 236, 16,
-			5, 2, 0, 226, 210, 25, 80, 2, 180, 13, 43, 252, 13, 226, 242, 255, 251, 50, 248, 205, 34, 7, 237, 34, 235, 12, 251, 235, 63, 0,
-			246, 239, 1, 49, 228, 236, 20, 211, 14, 67, 204, 220, 28, 253, 0, 12, 231, 222, 16, 35, 16, 227, 216, 47, 50, 231, 255, 236, 0, 24,
-			232, 29, 26, 225, 208, 57, 84, 205, 220, 5, 40, 27, 220, 19, 14, 228, 26, 30, 250, 255, 4, 230, 244, 60, 7, 184, 230, 76, 37, 188,
-			252, 20, 235, 3, 42, 7, 221, 0, 3, 19, 45, 234, 227, 8, 26, 52, 220, 232, 34, 216, 6, 42, 7, 216, 192, 39, 57, 236, 222, 8,
-			10, 249, 20, 241, 0, 5, 230, 62, 23, 235, 213, 249, 95, 226, 213, 34, 6, 227, 223, 49, 34, 195, 248, 59, 236, 236, 38, 17, 231, 253,
-			23, 13, 246, 226, 28, 212, 4, 66, 199, 10, 250, 241, 56, 231, 224, 35, 251, 228, 20, 12, 6, 247, 236, 21, 32, 244, 228, 0, 11, 8,
-			0, 12, 18, 8, 233, 251, 29, 244, 242, 25, 1, 11, 6, 219, 58, 11, 193, 255, 38, 27, 178, 22, 25, 194, 42, 18, 221, 230, 9, 10,
-			244, 243, 2, 11, 254, 0, 229, 250, 255, 9, 28, 226, 226, 48, 40, 209, 12, 3, 249, 57, 193, 33, 63, 167, 62, 22, 229, 65, 179, 0,
-			103, 215, 191, 51, 39, 177, 3, 47, 245, 250, 220, 7, 44, 219, 233, 11, 206, 25, 8, 162, 49, 33, 179, 22, 33, 214, 242, 11, 245, 252,
-			32, 32, 212, 27, 80, 181, 225, 71, 249, 232, 70, 10, 204, 50, 239, 238, 42, 205, 227, 230, 23, 65, 165, 245, 78, 170, 245, 45, 176, 35,
-			35, 184, 81, 24, 182, 42, 242, 242, 39, 230, 231, 11, 12, 241, 5, 28, 251, 222, 20, 32, 212, 250, 35, 1, 231, 29, 32, 174, 253, 60,
-			222, 244, 14, 244, 0, 254, 8, 19, 245, 241, 242, 16, 18, 211, 1, 23, 252, 26, 244, 221, 14, 22, 225, 224, 17, 9, 242, 7, 21, 242,
-			250, 25, 252, 231, 30, 252, 213, 66, 20, 227, 254, 249, 40, 7, 207, 217, 55, 32, 209, 227, 249, 66, 210, 193, 91, 214, 188, 37, 8, 22,
-			240, 233, 17, 243, 21, 0, 231, 245, 12, 54, 228, 241, 27, 204, 246, 60, 233, 222, 3, 1, 41, 232, 238, 42, 249, 226, 11, 25, 221, 26,
-			14, 217, 48, 23, 206, 225, 54, 248, 185, 48, 28, 216, 251, 244, 12, 24, 230, 2, 10, 20, 251, 238, 26, 238, 34, 228, 186, 105, 1, 145,
-			33, 71, 221, 195, 32, 24, 191, 20, 31, 197, 10, 33, 7, 229, 16, 42, 179, 30, 95, 213, 240, 11, 29, 15, 204, 56, 251, 165, 80, 43,
-			199, 248, 12, 247, 29, 31, 178, 240, 36, 245, 25, 225, 248, 59, 225, 207, 3, 46, 214, 198, 65, 17, 245, 242, 6, 255, 249, 49, 196, 254,
-			67, 220, 5, 14, 243, 55, 247, 177, 64, 10, 184, 47, 0, 221, 53, 250, 216, 18, 245, 255, 243, 232, 41, 22, 225, 250, 38, 251, 241, 217,
-			38, 89, 154, 236, 108, 244, 195, 249, 47, 22, 229, 218, 19, 49, 191, 216, 81, 247, 231, 21, 220, 0, 46, 10, 236, 6, 242, 229, 30, 228,
-			230, 59, 233, 231, 31, 241, 10, 212, 246, 99, 224, 225, 37, 238, 24, 28, 226, 33, 21, 202, 6, 51, 3, 206, 17, 52, 224, 233, 245, 19,
-			12, 160, 46, 104, 168, 230, 252, 2, 53, 189, 11, 23, 218, 41, 249, 4, 14, 201, 13, 60, 21, 217, 226, 56, 11, 10, 42, 225, 209, 11,
-			69, 220, 201, 58, 19, 231, 241, 40, 20, 163, 230, 123, 17, 163, 16, 40, 237, 240, 27, 4, 208, 29, 28, 207, 19, 27, 199, 242, 84, 9,
-			163, 25, 25, 225, 43, 250, 11, 3, 194, 68, 52, 192, 11, 24, 246, 7, 224, 14, 17, 197, 35, 54, 213, 4, 13, 215, 253, 33, 31, 251,
-			226, 243, 75, 15, 142, 24, 38, 236, 255, 249, 69, 218, 187, 111, 26, 166, 243, 10, 251, 14, 12, 214, 9, 93, 204, 176, 66, 21, 191, 25,
-			68, 210, 218, 52, 12, 224, 28, 10, 237, 22, 252, 8, 250, 5, 36, 232, 247, 255, 21, 251, 201, 48, 31, 201, 234, 21, 32, 241, 212, 247,
-			48, 28, 200, 239, 20, 22, 18, 193, 2, 81, 200, 209, 120, 3, 144, 69, 52, 179, 12, 12, 254, 13, 199, 49, 56, 163, 255, 76, 243, 211,
-			247, 66, 38, 170, 242, 68, 43, 204, 184, 72, 32, 230, 224, 46, 86, 146, 218, 126, 12, 165, 0, 53, 223, 5, 42, 220, 230, 31, 254, 230,
-			19, 1, 230, 19, 5, 254, 0, 243, 15, 231, 21, 33, 207, 0, 251, 237, 29, 228, 234, 23, 226, 27, 32, 231, 1, 255, 42, 252, 203, 34,
-			48, 255, 252, 1, 26, 10, 214, 22, 17, 230, 221, 3, 65, 235, 214, 11, 15, 252, 246, 12, 248, 247, 17, 255, 253, 253, 255, 12, 220, 23,
-			15, 214, 26, 252, 24, 2, 226, 34, 223, 254, 39, 216, 248, 7, 8, 20, 231, 248, 8, 25, 246, 255, 42, 221, 247, 255, 21, 35, 201, 4,
-			17, 239, 24, 250, 20, 3, 217, 69, 243, 222, 28, 228, 48, 246, 220, 26, 239, 226, 228, 36, 27, 204, 228, 25, 14, 252, 0, 255, 7, 1,
-			255, 45, 232, 191, 66, 14, 202, 21, 29, 223, 240, 74, 252, 196, 24, 18, 229, 17, 26, 250, 251, 243, 44, 17, 197, 18, 55, 214, 237, 35,
-			249, 6, 246, 14, 253, 213, 62, 6, 172, 40, 65, 194, 232, 44, 1, 196, 234, 61, 233, 238, 43, 233, 248, 13, 0, 2, 247, 22, 250, 240,
-			45, 236, 231, 28, 5, 253, 240, 244, 15, 50, 249, 213, 74, 16, 197, 26, 1, 10, 233, 232, 75, 221, 7, 18, 204, 70, 227, 233, 64, 226,
-			238, 1, 7, 13, 245, 240, 7, 16, 209, 212, 23, 251, 251, 18, 222, 18, 19, 220, 10, 4, 18, 248, 253, 40, 238, 246, 33, 37, 239, 251,
-			23, 237, 14, 9, 233, 19, 44, 217, 6, 41, 189, 1, 4, 33, 255, 146, 74, 37, 174, 1, 16, 1, 246, 1, 19, 237, 233, 39, 253, 226,
-			32, 20, 225, 222, 82, 8, 145, 56, 61, 231, 236, 243, 56, 232, 229, 28, 246, 66, 236, 200, 49, 252, 246, 253, 236, 13, 33, 201, 189, 103,
-			8, 140, 31, 48, 234, 243, 10, 32, 9, 226, 22, 60, 210, 214, 47, 23, 237, 241, 47, 12, 216, 24, 35, 236, 232, 49, 10, 192, 20, 42,
-			226, 236, 41, 16, 192, 230, 46, 18, 208, 217, 53, 22, 185, 3, 61, 241, 238, 7, 9, 5, 223, 0, 245, 36, 54, 175, 11, 40, 232, 6,
-			241, 37, 249, 216, 80, 254, 197, 36, 16, 15, 247, 228, 9, 1, 25, 216, 235, 81, 233, 208, 52, 21, 224, 255, 47, 6, 214, 23, 14, 221,
-			244, 23, 21, 245, 250, 237, 245, 16, 12, 229, 235, 44, 243, 229, 58, 214, 192, 88, 238, 187, 34, 34, 0, 208, 69, 27, 181, 43, 238, 231,
-			30, 238, 18, 245, 1, 41, 217, 16, 254, 201, 74, 0, 191, 41, 12, 250, 2, 250, 33, 11, 242, 223, 18, 45, 210, 241, 31, 26, 209, 204,
-			41, 233, 241, 26, 219, 14, 40, 205, 240, 45, 12, 224, 237, 54, 9, 210, 223, 48, 47, 170, 253, 56, 255, 5, 223, 248, 54, 6, 214, 4,
-			31, 0, 224, 245, 44, 241, 231, 37, 0, 1, 247, 240, 23, 5, 237, 3, 19, 215, 4, 6, 217, 42, 253, 219, 8, 39, 249, 198, 48, 41,
-			204, 18, 48, 211, 249, 22, 4, 245, 229, 78, 0, 176, 31, 53, 9, 200, 241, 64, 238, 210, 60, 26, 210, 21, 32, 241, 245, 19, 235, 241,
-			62, 209, 189, 50, 252, 231, 244, 246, 29, 245, 252, 16, 2, 2, 254, 10, 249, 30, 252, 214, 43, 0, 2, 18, 229, 1, 23, 26, 7, 230,
-			8, 60, 179, 231, 92, 189, 244, 7, 235, 61, 232, 215, 42, 19, 205, 4, 49, 221, 224, 59, 10, 217, 9, 243, 7, 3, 233, 3, 12, 9,
-			234, 8, 0, 12, 22, 190, 29, 37, 189, 31, 10, 233, 60, 237, 227, 24, 232, 23, 3, 223, 32, 252, 28, 7, 221, 61, 9, 241, 244, 37,
-			43, 159, 9, 73, 236, 205, 254, 50, 220, 220, 37, 249, 217, 11, 41, 238, 220, 41, 254, 253, 25, 212, 35, 246, 219, 57, 245, 238, 254, 0,
-			3, 25, 251, 203, 48, 15, 211, 19, 45, 255, 217, 21, 32, 246, 17, 10, 230, 40, 12, 218, 20, 0, 49, 6, 216, 36, 191, 0, 40, 182,
-			7, 7, 255, 18, 229, 6, 9, 230, 243, 58, 4, 146, 38, 73, 196, 244, 23, 242, 224, 28, 21, 213, 11, 13, 3, 10, 246, 16, 10, 247,
-			6, 37, 29, 233, 2, 28, 237, 0, 29, 1, 206, 8, 62, 211, 246, 18, 204, 249, 19, 12, 0, 220, 0, 24, 246, 9, 246, 226, 248, 23,
-			24, 220, 11, 7, 248, 33, 227, 235, 244, 223, 33, 42, 236, 197, 4, 78, 6, 230, 248, 247, 22, 39, 254, 217, 28, 33, 248, 0, 8, 6,
-			225, 244, 77, 40, 147, 12, 57, 205, 41, 3, 248, 228, 215, 78, 253, 211, 236, 0, 38, 219, 5, 36, 164, 240, 83, 228, 187, 236, 44, 30,
-			205, 43, 37, 182, 36, 46, 227, 255, 25, 250, 218, 66, 29, 173, 250, 73, 11, 213, 246, 23, 43, 196, 5, 63, 186, 7, 250, 247, 40, 213,
-			255, 6, 232, 53, 2, 174, 16, 35, 229, 218, 15, 15, 202, 32, 30, 240, 6, 247, 17, 249, 18, 14, 205, 23, 21, 253, 15, 252, 24, 4,
-			229, 245, 28, 6, 200, 23, 21, 249, 16, 219, 14, 43, 230, 239, 5, 234, 12, 33, 249, 234, 249, 51, 224, 203, 56, 231, 231, 46, 235, 211,
-			30, 21, 212, 10, 22, 0, 246, 216, 39, 17, 206, 53, 13, 214, 61, 246, 217, 21, 247, 9, 253, 4, 26, 242, 218, 41, 61, 167, 248, 68,
-			190, 222, 43, 243, 206, 34, 51, 220, 222, 24, 30, 239, 223, 39, 9, 217, 44, 0, 240, 32, 15, 240, 217, 47, 246, 199, 33, 253, 16, 12,
-			244, 26, 235, 9, 11, 212, 7, 235, 0, 50, 1, 231, 3, 66, 212, 191, 29, 253, 11, 252, 8, 20, 248, 35, 5, 203, 6, 36, 211, 251,
-			59, 248, 243, 34, 1, 13, 12, 212, 54, 5, 190, 69, 248, 229, 53, 218, 3, 33, 200, 0, 15, 203, 1, 31, 220, 245, 70, 230, 193, 72,
-			8, 233, 23, 206, 6, 45, 210, 219, 63, 44, 226, 246, 0, 48, 16, 203, 39, 6, 235, 47, 221, 254, 59, 203, 0, 53, 222, 255, 4, 244,
-			44, 2, 225, 19, 1, 249, 23, 219, 222, 27, 242, 245, 2, 8, 28, 237, 235, 247, 23, 248, 167, 52, 74, 177, 252, 65, 244, 248, 0, 1,
-			29, 234, 241, 27, 16, 28, 247, 245, 59, 243, 227, 29, 214, 13, 36, 223, 24, 0, 227, 14, 255, 252, 255, 242, 254, 1, 8, 16, 232, 12,
-			40, 223, 5, 10, 230, 14, 229, 10, 43, 222, 243, 254, 3, 2, 243, 7, 242, 27, 248, 217, 46, 7, 23, 11, 213, 28, 33, 237, 237, 38,
-			14, 242, 24, 246, 232, 21, 242, 226, 51, 1, 198, 248, 41, 1, 206, 14, 28, 249, 207, 240, 57, 242, 204, 55, 31, 201, 24, 248, 245, 45,
-			233, 225, 21, 28, 215, 0, 21, 243, 9, 228, 13, 38, 240, 3, 8, 13, 34, 246, 9, 22, 225, 11, 43, 208, 222, 70, 255, 201, 0, 43,
-			226, 209, 53, 228, 226, 34, 250, 239, 241, 14, 9, 239, 237, 253, 36, 2, 242, 24, 253, 31, 14, 248, 18, 244, 29, 234, 239, 32, 15, 0,
-			200, 10, 47, 215, 205, 51, 251, 204, 27, 1, 254, 18, 21, 235, 8, 29, 212, 252, 16, 2, 18, 239, 250, 41, 227, 238, 43, 241, 241, 31,
-			247, 212, 48, 11, 173, 25, 61, 213, 209, 5, 31, 15, 214, 13, 40, 242, 249, 10, 14, 237, 252, 20, 4, 255, 236, 32, 10, 208, 51, 14,
-			219, 28, 223, 231, 64, 250, 209, 49, 5, 234, 26, 247, 2, 4, 248, 19, 19, 216, 247, 19, 219, 0, 18, 2, 238, 0, 8, 243, 18, 6,
-			229, 242, 24, 245, 223, 9, 19, 8, 243, 8, 30, 237, 228, 36, 17, 230, 9, 17, 250, 255, 242, 5, 11, 219, 23, 21, 202, 255, 46, 10,
-			231, 242, 46, 248, 163, 62, 48, 167, 245, 52, 32, 201, 237, 61, 232, 223, 31, 246, 254, 244, 216, 57, 0, 236, 28, 211, 2, 34, 226, 241,
-			12, 10, 12, 249, 10, 10, 227, 11, 25, 7, 7, 218, 18, 60, 200, 252, 59, 214, 1, 47, 229, 237, 4, 0, 58, 0, 3, 0, 5, 0,
-			116, 0, 232, 0, 52, 8, 140, 10, 16, 14, 104, 16, 124, 21, 58, 14, 25, 15, 10, 10, 10, 10, 5, 5, 200, 212, 187, 255, 255, 175,
-			200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 116, 0, 232, 0, 52, 8, 140, 10, 16, 14, 104, 16, 124, 21, 0, 14, 25, 15, 10, 10, 10, 10, 5, 5, 200, 212,
-			187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 52, 8, 140, 10, 16, 14, 104, 16, 124, 21, 0, 14, 25, 15, 10, 5, 5, 5,
-			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 14, 4, 30, 0, 1, 1, 1, 248, 1, 254, 243, 4, 9, 5, 0, 4, 5, 15, 15, 16,
-			12, 15, 146, 182, 22, 55, 66, 236, 245, 250, 3, 18, 227, 255, 36, 231, 7, 17, 254, 15, 253, 241, 243, 232, 4, 21, 231, 9, 10, 252,
-			15, 8, 14, 0, 247, 7, 242, 253, 24, 226, 220, 17, 39, 31, 248, 243, 232, 226, 250, 21, 15, 13, 249, 7, 13, 6, 23, 216, 228, 252,
-			24, 10, 5, 33, 223, 222, 250, 32, 253, 10, 17, 211, 15, 252, 2, 252, 20, 3, 20, 19, 28, 181, 196, 10, 7, 68, 6, 9, 233, 236,
-			231, 40, 253, 237, 14, 231, 50, 247, 17, 234, 225, 38, 20, 2, 254, 255, 222, 192, 243, 67, 47, 34, 247, 192, 0, 43, 230, 239, 16, 228,
-			27, 254, 23, 18, 218, 27, 3, 210, 242, 36, 253, 9, 214, 15, 54, 14, 3, 222, 246, 242, 248, 230, 61, 42, 154, 13, 31, 70, 2, 162,
-			18, 32, 216, 232, 49, 34, 205, 236, 87, 1, 223, 225, 225, 60, 14, 181, 215, 96, 71, 194, 225, 15, 97, 161, 199, 65, 4, 0, 216, 11,
-			84, 182, 14, 0, 220, 44, 248, 2, 245, 204, 48, 78, 208, 253, 22, 224, 14, 12, 241, 229, 210, 34, 16, 40, 17, 243, 241, 217, 15, 5,
-			24, 252, 215, 33, 40, 237, 216, 31, 29, 222, 193, 47, 39, 227, 238, 242, 61, 43, 163, 236, 41, 71, 238, 208, 225, 255, 36, 5, 226, 37,
-			41, 245, 219, 250, 9, 227, 237, 44, 66, 230, 166, 247, 60, 39, 49, 178, 175, 58, 50, 17, 242, 178, 221, 96, 49, 2, 232, 206, 219, 3,
-			238, 22, 54, 53, 18, 173, 250, 25, 252, 249, 208, 246, 80, 13, 242, 5, 238, 219, 36, 226, 255, 37, 254, 36, 198, 2, 48, 11, 228, 193,
-			252, 53, 35, 12, 222, 205, 44, 49, 224, 210, 42, 253, 225, 18, 235, 17, 69, 239, 211, 9, 0, 15, 180, 237, 114, 26, 219, 255, 0, 8,
-			239, 211, 235, 62, 5, 14, 225, 238, 9, 20, 44, 11, 217, 218, 242, 18, 49, 5, 245, 203, 229, 53, 23, 249, 50, 221, 215, 224, 249, 60,
-			37, 231, 50, 7, 149, 236, 55, 45, 218, 235, 245, 255, 44, 37, 252, 202, 34, 232, 233, 23, 41, 252, 191, 225, 36, 79, 3, 243, 231, 240,
-			23, 210, 184, 54, 82, 14, 18, 244, 244, 214, 234, 31, 215, 246, 24, 18, 45, 7, 237, 242, 235, 249, 33, 53, 23, 164, 133, 22, 96, 96,
-			9, 166, 0, 39, 1, 214, 184, 253, 73, 18, 0, 33, 21, 249, 182, 218, 33, 43, 12, 217, 234, 14, 23, 69, 236, 178, 250, 51, 237, 232,
-			30, 229, 11, 50, 13, 237, 253, 245, 179, 1, 9, 51, 73, 15, 209, 246, 248, 243, 206, 0, 255, 16, 38, 28, 249, 240, 29, 15, 246, 204,
-			228, 243, 36, 75, 232, 209, 243, 24, 38, 243, 3, 255, 204, 241, 57, 55, 222, 195, 13, 38, 1, 13, 26, 208, 214, 237, 251, 55, 25, 24,
-			8, 237, 6, 214, 190, 50, 3, 21, 30, 223, 17, 29, 252, 223, 221, 244, 19, 9, 3, 11, 10, 63, 240, 223, 255, 242, 238, 204, 240, 50,
-			68, 56, 1, 165, 230, 20, 19, 11, 209, 1, 40, 198, 17, 57, 25, 37, 251, 158, 201, 76, 27, 203, 213, 0, 66, 28, 23, 2, 0, 247,
-			217, 250, 229, 9, 31, 217, 19, 64, 246, 242, 235, 250, 20, 214, 255, 40, 237, 3, 249, 6, 87, 0, 196, 247, 244, 237, 241, 252, 56, 37,
-			224, 250, 245, 3, 15, 4, 15, 214, 2, 19, 247, 250, 54, 236, 192, 3, 29, 68, 233, 227, 37, 197, 238, 5, 238, 39, 74, 25, 217, 222,
-			232, 208, 234, 67, 77, 249, 209, 22, 41, 218, 206, 222, 244, 17, 92, 50, 201, 231, 14, 229, 214, 28, 47, 35, 0, 185, 210, 30, 52, 229,
-			244, 41, 55, 10, 164, 232, 4, 198, 240, 78, 104, 52, 235, 165, 170, 1, 43, 26, 13, 20, 3, 252, 209, 228, 12, 26, 24, 25, 238, 225,
-			14, 5, 238, 11, 12, 253, 7, 9, 245, 241, 252, 233, 2, 38, 0, 14, 4, 24, 227, 210, 250, 9, 20, 17, 29, 20, 235, 233, 201, 230,
-			32, 44, 0, 26, 54, 230, 164, 209, 36, 42, 25, 239, 20, 29, 250, 236, 202, 236, 12, 39, 16, 15, 244, 19, 222, 197, 43, 239, 46, 43,
-			253, 236, 222, 212, 7, 35, 251, 39, 4, 20, 224, 224, 241, 250, 14, 5, 37, 61, 242, 196, 17, 202, 238, 13, 15, 50, 38, 252, 218, 225,
-			234, 8, 254, 50, 35, 227, 250, 226, 6, 252, 15, 22, 237, 234, 37, 251, 236, 249, 20, 18, 240, 22, 246, 248, 0, 0, 239, 243, 17, 13,
-			25, 253, 253, 236, 241, 45, 244, 222, 248, 15, 22, 25, 255, 241, 249, 237, 252, 23, 21, 238, 242, 2, 6, 240, 7, 23, 25, 34, 233, 223,
-			194, 201, 45, 76, 40, 252, 250, 234, 245, 250, 236, 225, 40, 35, 253, 16, 9, 233, 238, 207, 235, 42, 37, 59, 15, 239, 240, 178, 191, 9,
-			61, 81, 46, 213, 222, 233, 240, 1, 238, 10, 16, 27, 44, 10, 215, 212, 240, 33, 7, 6, 2, 27, 253, 214, 217, 229, 55, 63, 29, 14,
-			231, 204, 201, 240, 17, 41, 26, 27, 34, 237, 182, 211, 23, 53, 21, 13, 0, 221, 230, 244, 255, 2, 27, 17, 14, 21, 246, 249, 227, 218,
-			5, 20, 30, 36, 3, 229, 218, 224, 0, 24, 32, 50, 243, 214, 1, 250, 240, 254, 7, 27, 42, 14, 228, 206, 238, 0, 1, 21, 38, 8,
-			242, 227, 253, 20, 0, 6, 12, 241, 244, 23, 2, 243, 14, 245, 242, 243, 9, 22, 6, 6, 230, 233, 33, 11, 244, 24, 20, 234, 230, 241,
-			22, 5, 239, 9, 6, 37, 11, 212, 223, 251, 10, 245, 11, 63, 43, 223, 214, 240, 3, 39, 248, 231, 241, 1, 0, 1, 32, 29, 10, 232,
-			220, 252, 0, 0, 125, 0, 2, 0, 17, 0, 158, 0, 220, 1, 180, 5, 166, 9, 103, 12, 96, 14, 162, 26, 125, 21, 25, 43, 26, 25,
-			25, 22, 6, 6, 153, 115, 128, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15,
-			40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 60, 0, 2, 0, 1, 0, 252, 0, 90, 2, 230, 5, 20, 10,
-			169, 12, 184, 14, 96, 28, 60, 13, 27, 28, 29, 28, 20, 22, 8, 3, 193, 136, 140, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2,
-			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 65, 0,
-			2, 0, 17, 0, 220, 0, 110, 2, 56, 4, 180, 10, 13, 12, 66, 14, 248, 27, 65, 11, 23, 26, 26, 16, 20, 16, 5, 3, 164, 157,
-			128, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12,
-			4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 95, 0, 3, 0, 5, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28,
-			80, 45, 45, 48, 68, 35, 38, 25, 11, 5, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 37, 0, 205, 0, 164, 2, 200, 4, 44, 10, 41, 12,
-			125, 14, 244, 27, 15, 17, 37, 31, 23, 20, 18, 13, 4, 0, 154, 139, 127, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 56, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 37, 0, 184, 0, 160, 2, 176, 4,
-			40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 95, 0, 3, 0,
-			5, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 80, 46, 31, 46, 57, 25, 36, 20, 10, 5, 177, 100, 131, 120,
-			120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 15, 11, 34, 27, 13, 17, 13, 10, 3, 0,
-			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 18, 40, 32, 16, 20,
-			16, 12, 4, 0, 142, 140, 122, 120, 120, 120, 172, 110, 152, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 90, 0, 2, 0, 17, 0, 150, 0, 60, 2, 41, 5, 166, 9, 83, 12, 106, 14,
-			160, 27, 90, 13, 28, 26, 29, 22, 17, 19, 9, 4, 155, 145, 128, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10,
-			234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 65, 0, 2, 0, 17, 0,
-			236, 0, 226, 2, 236, 4, 90, 10, 173, 12, 144, 14, 0, 28, 65, 16, 26, 32, 28, 23, 16, 16, 7, 3, 180, 147, 113, 120, 120, 120,
-			247, 170, 165, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175,
-			150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 70, 0, 2, 0, 1, 0, 172, 0, 68, 2, 59, 6, 10, 10, 123, 12, 99, 14, 48, 28, 70, 32, 35, 50,
-			44, 46, 36, 26, 9, 4, 163, 126, 125, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
-			0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 50, 0, 2, 0, 17, 0, 178, 0, 214, 1, 192, 6,
-			255, 10, 173, 12, 115, 15, 133, 27, 50, 21, 18, 40, 33, 35, 33, 17, 10, 4, 162, 130, 127, 126, 131, 140, 187, 125, 137, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1,
+			152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 45, 43, 32, 56, 49, 59, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 27, 28, 44, 44, 40, 37, 29, 8, 7, 167, 90, 135, 120, 120, 120,
+			122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 210, 0, 5, 0, 1, 0, 172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 45, 35, 2, 64, 42, 19, 19, 25,
+			8, 7, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 172, 0, 64, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 75, 74, 4, 92,
+			64, 28, 28, 36, 12, 10, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 170, 0, 60, 1, 122, 3, 166, 9, 24, 13, 106, 15, 164, 26,
+			30, 52, 4, 79, 39, 26, 27, 30, 11, 8, 178, 118, 103, 121, 123, 125, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 9, 0, 148, 0, 16, 1, 199, 8, 28, 12, 132, 13,
+			8, 17, 88, 27, 60, 35, 15, 49, 34, 38, 45, 15, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 148, 0, 16, 1, 199, 8,
+			28, 12, 132, 13, 8, 17, 88, 27, 0, 33, 14, 47, 33, 36, 44, 14, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 75, 0, 5, 0,
+			1, 0, 132, 0, 24, 1, 184, 6, 16, 9, 228, 12, 96, 14, 100, 25, 45, 42, 18, 60, 40, 35, 37, 34, 9, 12, 167, 90, 135, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 132, 0, 24, 1, 184, 6, 16, 9, 228, 12, 96, 14, 100, 25, 75, 78, 25, 82, 56, 47, 51, 47, 12, 17,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 133, 0, 27, 1, 40, 7, 96, 9, 253, 12, 122, 14, 196, 25, 75, 61, 23, 71, 51, 46,
+			48, 41, 11, 14, 167, 91, 138, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 136, 0, 38, 1, 187, 8, 180, 10, 86, 13, 215, 14, 33, 27, 45, 49,
+			21, 60, 52, 55, 50, 32, 12, 9, 169, 96, 152, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 137, 0, 40, 1, 232, 8, 220, 10, 97, 13, 226, 14,
+			72, 27, 0, 38, 20, 55, 49, 53, 47, 29, 11, 8, 169, 97, 153, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 125, 0, 6, 0, 1, 0, 240, 0, 176, 2,
+			36, 4, 20, 10, 188, 12, 92, 14, 87, 27, 45, 44, 21, 50, 62, 33, 33, 29, 8, 5, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			240, 0, 176, 2, 36, 4, 20, 10, 188, 12, 92, 14, 87, 27, 40, 96, 30, 73, 92, 48, 48, 43, 12, 7, 167, 147, 147, 120, 120, 120,
+			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 232, 0, 148, 2, 12, 4, 76, 10, 200, 12, 104, 14, 87, 27, 35, 78, 27, 66, 81, 43, 43, 38, 11, 6, 167, 147,
+			147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 32, 2, 172, 3, 220, 10, 248, 12, 156, 14, 87, 27, 80, 74, 27, 66, 75, 43, 43, 38,
+			11, 6, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 186, 0, 137, 1, 132, 3, 13, 10, 159, 12, 139, 14, 164, 26, 40, 49, 22, 61,
+			38, 31, 28, 28, 17, 7, 163, 134, 154, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 112, 1, 132, 3, 236, 9, 148, 12, 136, 14, 144, 26,
+			0, 32, 18, 50, 30, 25, 23, 23, 14, 6, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 255, 0, 5, 0, 1, 0, 168, 0, 4, 2, 92, 3,
+			88, 10, 104, 11, 141, 14, 32, 27, 45, 56, 21, 52, 64, 39, 36, 18, 13, 5, 167, 135, 150, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0,
+			4, 2, 92, 3, 88, 10, 104, 11, 141, 14, 32, 27, 70, 108, 29, 73, 89, 54, 50, 25, 18, 7, 167, 135, 150, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 168, 0, 240, 1, 92, 3, 60, 10, 146, 11, 158, 14, 18, 27, 80, 90, 25, 71, 81, 49, 45, 25, 17, 7, 168, 134, 145, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 176, 0, 56, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 60, 53, 3, 79, 43, 23, 23, 33, 13, 8,
+			177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 56, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 33, 2, 62, 35, 19,
+			19, 27, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 200, 0, 204, 1, 137, 7, 208, 9, 208, 12, 69, 14,
+			104, 28, 45, 29, 21, 46, 46, 49, 37, 28, 9, 6, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 204, 1, 137, 7, 208, 9,
+			208, 12, 69, 14, 104, 28, 60, 84, 36, 79, 78, 83, 63, 48, 15, 11, 184, 108, 128, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 198, 0, 192, 1,
+			44, 7, 195, 9, 213, 12, 91, 14, 62, 28, 80, 71, 31, 76, 61, 74, 57, 44, 14, 10, 183, 109, 149, 120, 120, 120, 185, 107, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			178, 0, 71, 1, 179, 3, 63, 9, 9, 13, 48, 15, 166, 26, 65, 42, 4, 71, 37, 23, 22, 30, 12, 7, 178, 124, 103, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 178, 0, 71, 1, 179, 3, 63, 9, 9, 13, 48, 15, 166, 26, 0, 30, 3, 60, 31, 19, 18, 25, 10, 6, 178, 124,
+			103, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 4, 1, 6, 0, 1, 0, 152, 0, 40, 1, 152, 8, 4, 11, 92, 13, 135, 15, 160, 26, 45, 21, 4, 46,
+			41, 41, 42, 20, 9, 4, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 40, 1, 132, 8, 4, 11, 92, 13, 135, 15, 160, 26,
+			60, 62, 7, 78, 70, 70, 71, 34, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 155, 0, 43, 1, 188, 7, 195, 10, 81, 13,
+			125, 15, 158, 26, 80, 53, 6, 76, 54, 61, 61, 33, 15, 7, 168, 107, 150, 120, 120, 120, 167, 90, 152, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 174, 0, 62, 1, 199, 3,
+			80, 9, 17, 13, 64, 15, 145, 26, 35, 39, 3, 71, 36, 22, 22, 29, 12, 7, 176, 123, 103, 120, 120, 120, 167, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0,
+			64, 1, 152, 3, 56, 9, 12, 13, 60, 15, 144, 26, 40, 37, 2, 67, 33, 19, 19, 28, 11, 7, 177, 125, 102, 120, 120, 120, 177, 125,
+			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			1, 0, 176, 0, 64, 1, 152, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 30, 2, 60, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182,
+			0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 40, 1, 232, 2, 240, 5, 196, 9, 112, 13, 40, 15, 153, 28, 45, 42, 29, 57, 60, 43,
+			35, 26, 9, 5, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 40, 1, 232, 2, 240, 5, 196, 9, 112, 13, 40, 15, 153, 28, 80, 81,
+			41, 79, 83, 60, 48, 37, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 24, 1, 186, 2, 4, 6, 180, 9, 98, 13, 20, 15,
+			71, 28, 80, 64, 35, 71, 72, 53, 43, 34, 12, 7, 210, 133, 142, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 40, 1, 184, 6, 36, 9,
+			228, 12, 96, 14, 100, 25, 45, 42, 19, 61, 41, 35, 38, 35, 9, 12, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 40, 1,
+			184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 26, 15, 48, 33, 28, 30, 28, 7, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 0,
+			5, 0, 1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 45, 28, 23, 46, 45, 48, 37, 27, 8, 6, 202, 118,
+			143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 82, 40, 79, 77, 81, 63, 46,
+			14, 10, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 35, 2, 63, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 73, 38, 75,
+			72, 77, 60, 43, 13, 9, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25,
+			45, 47, 20, 63, 43, 37, 40, 36, 10, 13, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12,
+			96, 14, 100, 25, 0, 30, 16, 50, 34, 29, 32, 29, 8, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 122, 0,
+			192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 45, 49, 28, 59, 69, 41, 43, 30, 17, 6, 170, 133, 135, 122, 124, 128, 197, 131,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 79, 36, 75, 88, 52, 55, 38, 21, 8, 170, 133, 135, 122,
+			124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 80, 64, 32, 68, 79, 47, 49, 35, 19, 7,
+			170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 47, 20, 63, 43, 37,
+			40, 36, 10, 13, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 30,
+			16, 50, 34, 29, 32, 29, 8, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11,
+			52, 13, 0, 15, 160, 26, 45, 45, 6, 66, 59, 59, 60, 29, 14, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 24, 1,
+			232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 80, 72, 10, 83, 73, 74, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			152, 0, 24, 1, 232, 8, 4, 11, 12, 13, 216, 14, 64, 26, 80, 45, 10, 60, 60, 63, 63, 34, 11, 8, 167, 105, 120, 120, 120, 120,
+			167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 47, 20, 63, 43, 37, 40, 36, 10, 13, 165, 90,
+			135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 30, 16, 50, 34, 29, 32, 29,
+			8, 10, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 185, 0, 5, 0, 1, 0, 176, 0, 88, 1, 128, 3, 71, 9, 213, 12, 38, 15, 162, 26,
+			45, 47, 6, 73, 41, 23, 23, 29, 12, 7, 176, 126, 108, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 88, 1, 128, 3, 71, 9, 213, 12,
+			38, 15, 162, 26, 80, 80, 8, 94, 53, 31, 30, 38, 16, 9, 176, 126, 108, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 103, 1, 125, 3,
+			80, 9, 181, 12, 25, 15, 173, 26, 65, 60, 9, 80, 48, 28, 26, 31, 13, 7, 175, 126, 112, 120, 120, 120, 177, 125, 117, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 5, 0, 170, 0,
+			224, 1, 99, 3, 155, 9, 98, 12, 223, 14, 7, 27, 60, 47, 22, 59, 51, 32, 27, 19, 12, 5, 169, 133, 142, 120, 120, 120, 177, 125,
+			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 169, 0, 238, 1, 96, 3, 164, 9, 88, 12, 216, 14, 18, 27, 0, 33, 19, 48, 44, 26, 23, 15, 11, 4, 168, 134, 145, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 80, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 35, 17, 55, 37, 32,
+			35, 32, 8, 11, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 80, 67,
+			24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14,
+			100, 25, 80, 54, 21, 68, 46, 39, 43, 39, 10, 14, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 122, 0, 192, 1, 240, 5, 116, 9,
+			228, 12, 246, 14, 95, 27, 45, 38, 25, 52, 61, 36, 38, 27, 15, 5, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 122, 0, 192, 1,
+			240, 5, 116, 9, 228, 12, 246, 14, 95, 27, 0, 27, 21, 44, 52, 30, 32, 23, 12, 5, 170, 133, 135, 122, 124, 128, 197, 131, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 65, 0,
+			4, 0, 5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 20, 8, 14, 26, 25, 12, 12, 12, 7, 4, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 25, 15, 19, 35, 33, 16, 16, 16,
+			9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27, 20, 15, 19, 35,
+			33, 16, 16, 16, 9, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 13, 2, 161, 5, 152, 8, 128, 12, 212, 13, 96, 27,
+			0, 9, 15, 28, 26, 13, 13, 13, 7, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 234, 8, 18, 0, 253, 253, 0, 0, 249, 246, 252, 252,
+			244, 236, 237, 245, 247, 248, 252, 254, 2, 10, 16, 10, 13, 22, 7, 13, 34, 24, 31, 29, 14, 29, 17, 7, 25, 0, 230, 246, 252, 249,
+			247, 228, 229, 242, 246, 232, 229, 240, 238, 245, 1, 252, 215, 217, 5, 13, 18, 35, 17, 20, 45, 18, 244, 251, 254, 0, 17, 252, 225, 245,
+			2, 29, 10, 214, 234, 22, 55, 56, 13, 2, 28, 34, 40, 24, 228, 233, 251, 253, 37, 250, 182, 232, 30, 33, 245, 208, 223, 245, 231, 217,
+			220, 197, 216, 8, 234, 158, 176, 233, 228, 240, 246, 252, 40, 51, 23, 37, 82, 62, 43, 73, 90, 92, 101, 75, 32, 44, 50, 20, 12, 5,
+			239, 216, 208, 226, 230, 167, 151, 213, 223, 225, 233, 220, 234, 10, 42, 34, 4, 37, 71, 36, 31, 49, 246, 226, 15, 248, 229, 238, 211, 238,
+			5, 225, 250, 249, 204, 238, 22, 12, 10, 20, 34, 43, 33, 45, 64, 46, 36, 60, 60, 32, 245, 230, 16, 29, 228, 223, 218, 162, 218, 0,
+			199, 217, 235, 226, 39, 30, 244, 34, 5, 242, 30, 25, 17, 12, 7, 20, 44, 22, 240, 243, 231, 210, 1, 19, 208, 221, 252, 238, 238, 204,
+			185, 246, 246, 221, 32, 35, 237, 3, 41, 40, 25, 10, 22, 70, 103, 70, 50, 74, 68, 49, 38, 12, 251, 22, 14, 238, 7, 220, 153, 181,
+			212, 215, 209, 171, 165, 225, 239, 204, 206, 224, 204, 248, 19, 241, 3, 255, 2, 49, 58, 12, 237, 19, 48, 25, 18, 19, 6, 15, 35, 37,
+			18, 220, 224, 42, 25, 238, 231, 243, 17, 12, 10, 44, 22, 18, 88, 50, 245, 18, 241, 197, 3, 22, 240, 243, 201, 184, 244, 238, 212, 227,
+			237, 14, 55, 32, 222, 248, 95, 72, 228, 196, 223, 255, 10, 6, 231, 253, 40, 4, 18, 47, 220, 226, 65, 61, 34, 33, 13, 18, 41, 23,
+			253, 242, 248, 5, 8, 251, 215, 197, 206, 196, 168, 164, 201, 206, 222, 26, 245, 186, 227, 4, 53, 90, 6, 219, 39, 43, 0, 10, 236, 205,
+			244, 7, 255, 3, 233, 217, 15, 36, 250, 234, 0, 0, 254, 24, 3, 236, 29, 71, 55, 37, 43, 0, 232, 9, 5, 243, 239, 236, 230, 243,
+			242, 232, 245, 247, 215, 190, 215, 222, 221, 253, 255, 240, 5, 23, 29, 61, 48, 3, 29, 31, 4, 28, 14, 8, 13, 241, 15, 33, 1, 246,
+			255, 7, 231, 214, 14, 22, 251, 251, 228, 251, 254, 215, 246, 21, 241, 233, 0, 254, 46, 59, 0, 7, 58, 49, 7, 246, 241, 8, 38, 241,
+			175, 184, 205, 232, 252, 193, 156, 206, 253, 5, 239, 207, 229, 12, 46, 70, 27, 20, 69, 76, 69, 60, 34, 65, 55, 255, 21, 0, 182, 205,
+			252, 254, 238, 207, 186, 212, 7, 238, 214, 221, 204, 244, 46, 40, 6, 243, 253, 39, 33, 242, 229, 232, 1, 0, 224, 2, 253, 217, 253, 13,
+			245, 254, 252, 251, 56, 28, 232, 3, 241, 245, 16, 17, 12, 252, 15, 31, 23, 26, 6, 238, 2, 15, 11, 48, 64, 39, 2, 46, 101, 19,
+			219, 14, 41, 7, 234, 200, 219, 244, 206, 222, 13, 4, 230, 234, 243, 3, 34, 30, 27, 35, 31, 59, 80, 56, 49, 51, 26, 9, 3, 7,
+			242, 196, 216, 1, 210, 193, 193, 161, 224, 5, 177, 158, 221, 243, 1, 246, 215, 9, 46, 16, 33, 51, 35, 55, 36, 255, 22, 20, 216, 182,
+			213, 220, 208, 214, 214, 202, 218, 252, 1, 253, 254, 252, 21, 38, 254, 15, 66, 43, 62, 105, 73, 65, 77, 58, 49, 40, 241, 232, 34, 239,
+			180, 237, 234, 189, 234, 254, 226, 242, 254, 5, 53, 61, 3, 3, 62, 61, 37, 11, 249, 0, 10, 240, 197, 221, 243, 204, 224, 30, 226, 211,
+			35, 251, 234, 10, 242, 37, 49, 204, 13, 85, 4, 7, 45, 250, 238, 9, 244, 247, 9, 6, 32, 42, 1, 238, 252, 252, 248, 25, 5, 182,
+			212, 49, 41, 239, 235, 239, 4, 29, 225, 199, 227, 189, 208, 7, 219, 214, 11, 241, 217, 3, 49, 38, 16, 21, 55, 97, 48, 2, 43, 26,
+			198, 221, 4, 198, 203, 235, 195, 231, 237, 180, 238, 34, 5, 10, 21, 53, 108, 80, 46, 52, 46, 46, 35, 17, 13, 242, 230, 251, 206, 155,
+			190, 214, 187, 208, 217, 195, 11, 17, 231, 33, 40, 5, 26, 21, 24, 43, 238, 229, 22, 14, 238, 200, 239, 34, 34, 34, 251, 205, 234, 56,
+			35, 231, 19, 53, 37, 33, 251, 244, 51, 26, 230, 3, 233, 209, 1, 247, 231, 0, 216, 167, 218, 228, 191, 221, 231, 219, 14, 5, 219, 26,
+			29, 250, 44, 61, 19, 252, 8, 33, 62, 46, 0, 246, 9, 22, 5, 242, 236, 231, 228, 243, 227, 219, 6, 11, 30, 62, 17, 40, 106, 70,
+			93, 104, 14, 17, 55, 30, 242, 196, 183, 221, 233, 176, 136, 156, 192, 179, 183, 184, 158, 189, 227, 245, 244, 251, 22, 56, 66, 39, 2, 6,
+			28, 248, 237, 255, 248, 231, 209, 220, 222, 236, 15, 7, 8, 16, 6, 33, 47, 34, 53, 59, 40, 42, 42, 47, 39, 0, 7, 2, 220, 207,
+			178, 154, 195, 216, 179, 178, 193, 215, 26, 10, 235, 58, 67, 16, 71, 93, 29, 9, 24, 48, 54, 11, 245, 23, 33, 1, 216, 223, 25, 37,
+			66, 67, 248, 226, 13, 28, 16, 9, 225, 227, 7, 225, 229, 3, 220, 229, 0, 251, 37, 14, 225, 19, 21, 230, 226, 242, 7, 16, 254, 5,
+			14, 242, 244, 19, 26, 13, 252, 10, 14, 6, 25, 6, 232, 255, 18, 244, 233, 17, 31, 6, 255, 22, 27, 241, 203, 229, 8, 251, 226, 238,
+			6, 241, 239, 9, 228, 249, 61, 9, 226, 33, 30, 1, 42, 6, 242, 44, 15, 251, 34, 255, 250, 27, 245, 227, 9, 33, 17, 28, 9, 199,
+			215, 15, 243, 205, 208, 190, 211, 8, 248, 207, 240, 252, 226, 7, 8, 237, 50, 74, 47, 87, 54, 10, 65, 46, 253, 239, 243, 0, 250, 0,
+			230, 225, 238, 220, 254, 22, 200, 204, 22, 243, 1, 34, 232, 231, 40, 38, 251, 17, 8, 2, 79, 45, 224, 28, 56, 17, 32, 245, 187, 244,
+			42, 0, 219, 239, 242, 233, 242, 220, 205, 244, 236, 215, 255, 0, 237, 12, 37, 46, 55, 53, 58, 55, 27, 21, 30, 30, 36, 19, 248, 249,
+			235, 231, 253, 207, 161, 208, 242, 221, 210, 236, 12, 9, 227, 216, 7, 6, 243, 249, 251, 6, 18, 47, 46, 17, 30, 21, 6, 71, 96, 46,
+			50, 35, 1, 16, 231, 200, 239, 252, 252, 3, 225, 184, 180, 190, 211, 232, 225, 221, 1, 22, 29, 22, 255, 28, 46, 33, 59, 48, 19, 36,
+			17, 244, 254, 237, 236, 248, 240, 247, 228, 212, 189, 164, 178, 222, 6, 0, 254, 19, 46, 67, 55, 4, 251, 38, 46, 44, 58, 40, 19, 12,
+			2, 10, 14, 234, 214, 243, 228, 180, 173, 186, 210, 243, 221, 192, 232, 248, 246, 13, 0, 225, 9, 59, 45, 35, 29, 18, 24, 32, 26, 30,
+			54, 42, 2, 11, 23, 4, 1, 10, 246, 218, 249, 240, 198, 217, 235, 244, 250, 234, 231, 3, 20, 10, 24, 35, 7, 0, 24, 245, 215, 228,
+			228, 223, 209, 219, 220, 206, 211, 225, 215, 192, 215, 245, 248, 9, 27, 17, 30, 64, 53, 52, 74, 80, 94, 86, 51, 41, 27, 241, 221, 245,
+			233, 221, 10, 2, 225, 244, 234, 216, 1, 254, 211, 10, 62, 12, 237, 253, 254, 12, 44, 15, 249, 27, 9, 241, 247, 213, 193, 230, 242, 214,
+			216, 2, 31, 22, 7, 237, 242, 37, 51, 29, 27, 27, 9, 32, 18, 205, 215, 254, 253, 3, 247, 238, 1, 8, 1, 242, 215, 227, 16, 15,
+			3, 251, 250, 15, 246, 245, 18, 3, 12, 35, 241, 208, 254, 249, 223, 227, 214, 223, 252, 4, 6, 10, 251, 247, 25, 28, 253, 10, 35, 21,
+			22, 40, 8, 247, 16, 19, 4, 5, 237, 218, 7, 6, 208, 215, 230, 231, 1, 248, 228, 253, 254, 231, 0, 11, 244, 3, 40, 25, 7, 21,
+			4, 0, 23, 1, 0, 16, 7, 25, 13, 241, 253, 245, 217, 220, 232, 253, 12, 252, 237, 19, 52, 19, 18, 41, 18, 37, 64, 22, 4, 1,
+			243, 3, 23, 17, 3, 6, 15, 0, 9, 13, 223, 252, 31, 5, 17, 26, 245, 248, 16, 7, 20, 40, 3, 237, 31, 25, 232, 223, 199, 210,
+			243, 210, 204, 238, 229, 232, 245, 246, 244, 251, 19, 42, 69, 72, 16, 243, 24, 45, 15, 237, 228, 233, 246, 240, 214, 227, 254, 247, 244, 235,
+			224, 250, 18, 13, 254, 233, 243, 2, 16, 44, 19, 11, 44, 53, 37, 15, 17, 22, 19, 34, 27, 249, 251, 16, 24, 255, 231, 249, 253, 3,
+			255, 223, 245, 14, 249, 214, 222, 247, 248, 2, 251, 236, 233, 227, 238, 17, 18, 238, 248, 4, 11, 36, 15, 234, 16, 56, 40, 45, 28, 1,
+			33, 18, 227, 233, 244, 242, 4, 8, 251, 254, 250, 248, 7, 11, 10, 14, 5, 5, 22, 26, 5, 255, 249, 229, 231, 255, 243, 212, 234, 243,
+			198, 216, 1, 243, 236, 247, 247, 250, 238, 238, 25, 33, 23, 28, 47, 52, 47, 72, 45, 249, 247, 6, 14, 14, 8, 241, 237, 247, 251, 243,
+			221, 210, 226, 14, 12, 232, 239, 4, 12, 8, 244, 225, 246, 6, 246, 242, 242, 240, 246, 243, 213, 224, 16, 255, 248, 6, 247, 8, 31, 10,
+			16, 38, 29, 42, 50, 39, 37, 23, 9, 249, 1, 28, 2, 243, 237, 208, 223, 241, 228, 230, 228, 217, 235, 236, 218, 239, 254, 223, 229, 12,
+			9, 13, 29, 27, 40, 40, 44, 48, 13, 239, 245, 18, 27, 253, 222, 226, 242, 231, 221, 211, 200, 228, 237, 211, 205, 213, 241, 22, 35, 36,
+			34, 46, 61, 57, 52, 35, 30, 48, 39, 25, 19, 239, 222, 238, 235, 203, 189, 192, 187, 204, 228, 210, 205, 234, 0, 27, 25, 5, 24, 34,
+			25, 32, 27, 17, 32, 50, 35, 9, 14, 13, 249, 245, 244, 248, 8, 245, 227, 246, 239, 229, 252, 238, 206, 229, 248, 244, 9, 12, 255, 15,
+			24, 14, 22, 29, 5, 12, 35, 12, 9, 10, 236, 234, 250, 225, 201, 213, 204, 186, 203, 220, 220, 240, 242, 238, 252, 4, 18, 26, 18, 17,
+			52, 63, 37, 38, 67, 58, 23, 30, 15, 239, 252, 255, 237, 224, 204, 215, 241, 213, 199, 221, 222, 223, 254, 8, 248, 22, 52, 49, 61, 56,
+			49, 73, 76, 60, 77, 52, 15, 34, 29, 15, 13, 232, 209, 229, 219, 184, 189, 219, 208, 192, 223, 243, 243, 5, 11, 5, 22, 27, 34, 71,
+			63, 33, 60, 63, 20, 18, 23, 255, 0, 8, 244, 245, 5, 237, 215, 222, 208, 213, 220, 177, 174, 219, 222, 218, 235, 219, 239, 38, 47, 45,
+			50, 23, 17, 61, 46, 3, 6, 245, 244, 8, 224, 186, 203, 206, 208, 219, 188, 188, 241, 9, 15, 15, 7, 7, 40, 73, 66, 67, 70, 53,
+			77, 90, 38, 19, 28, 253, 0, 19, 230, 207, 237, 241, 231, 221, 191, 207, 1, 1, 245, 255, 250, 7, 41, 35, 35, 36, 27, 57, 80, 51,
+			20, 19, 26, 33, 8, 219, 229, 7, 253, 236, 216, 194, 213, 231, 215, 218, 239, 234, 247, 6, 248, 252, 8, 7, 26, 44, 30, 26, 33, 36,
+			47, 57, 21, 240, 246, 247, 247, 249, 229, 208, 225, 237, 221, 220, 225, 230, 246, 11, 17, 20, 40, 35, 49, 80, 51, 34, 56, 40, 14, 28,
+			1, 215, 231, 230, 217, 211, 193, 201, 218, 203, 195, 220, 233, 232, 250, 3, 0, 7, 17, 17, 14, 10, 26, 49, 45, 34, 37, 41, 27, 9,
+			8, 16, 15, 2, 242, 233, 241, 244, 234, 230, 245, 251, 255, 21, 17, 0, 23, 45, 25, 7, 10, 21, 24, 23, 19, 4, 253, 0, 249, 227,
+			218, 225, 234, 225, 219, 218, 194, 201, 224, 223, 230, 233, 222, 242, 12, 251, 245, 10, 8, 16, 31, 8, 5, 45, 34, 252, 13, 10, 240, 247,
+			251, 244, 244, 247, 245, 0, 1, 240, 5, 27, 8, 16, 38, 20, 20, 22, 248, 252, 19, 9, 5, 6, 231, 221, 236, 226, 214, 221, 221, 223,
+			242, 241, 231, 243, 245, 242, 7, 19, 1, 0, 8, 252, 15, 34, 7, 15, 30, 14, 28, 35, 3, 7, 23, 1, 8, 28, 2, 251, 8, 242,
+			248, 15, 239, 229, 255, 239, 238, 11, 1, 253, 13, 8, 6, 6, 234, 223, 251, 253, 236, 250, 0, 249, 254, 248, 241, 249, 242, 247, 12, 0,
+			250, 14, 14, 8, 10, 17, 28, 39, 22, 0, 14, 21, 1, 3, 11, 251, 255, 5, 249, 1, 5, 238, 241, 1, 237, 228, 238, 244, 7, 254,
+			229, 243, 5, 5, 249, 254, 14, 23, 28, 21, 8, 252, 251, 4, 2, 247, 244, 248, 250, 251, 242, 238, 250, 3, 2, 253, 252, 248, 255, 24,
+			13, 247, 254, 7, 13, 6, 246, 248, 255, 255, 247, 238, 245, 249, 253, 0, 249, 254, 6, 2, 3, 5, 1, 4, 0, 0, 185, 0, 4, 0,
+			1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 45, 46, 22, 50, 61, 38, 34, 31, 9, 5, 167, 157, 147, 120,
+			120, 120, 167, 152, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 60, 88, 31, 70, 84, 52, 47, 43, 12, 7,
+			167, 157, 147, 120, 120, 120, 167, 152, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 80, 79, 29, 66, 79, 49,
+			45, 41, 11, 7, 167, 157, 147, 120, 120, 120, 167, 152, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 250, 0, 160, 2, 76, 4, 246, 10, 188, 12, 92, 14, 87, 27, 0, 42,
+			22, 50, 60, 37, 34, 31, 8, 5, 167, 159, 147, 120, 120, 120, 167, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 200, 0, 4, 0, 1, 0, 191, 0, 196, 1, 88, 7, 216, 9,
+			248, 12, 123, 14, 185, 27, 50, 42, 27, 55, 55, 57, 48, 34, 11, 7, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 191, 0, 196, 1,
+			88, 7, 216, 9, 248, 12, 123, 14, 185, 27, 80, 80, 37, 76, 76, 79, 65, 47, 16, 10, 178, 107, 129, 120, 120, 120, 185, 107, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			191, 0, 196, 1, 88, 7, 216, 9, 248, 12, 123, 14, 185, 27, 70, 67, 34, 69, 70, 73, 60, 43, 15, 9, 178, 107, 129, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 191, 0, 196, 1, 88, 7, 216, 9, 248, 12, 123, 14, 185, 27, 0, 30, 23, 47, 47, 49, 40, 29, 10, 6, 178, 107,
+			129, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 200, 0, 80, 2, 44, 6, 176, 9, 52, 13, 7, 15, 8, 28, 50, 48, 31, 58,
+			68, 47, 38, 28, 12, 5, 221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 80, 2, 44, 6, 176, 9, 52, 13, 7, 15, 8, 28,
+			80, 83, 41, 76, 90, 62, 51, 38, 17, 7, 221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 80, 2, 44, 6, 156, 9, 52, 13,
+			7, 15, 8, 28, 40, 63, 36, 66, 78, 54, 44, 33, 14, 6, 221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 80, 2, 44, 6,
+			156, 9, 52, 13, 7, 15, 8, 28, 0, 33, 27, 50, 54, 40, 33, 24, 11, 4, 221, 163, 157, 120, 120, 120, 150, 163, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 160, 0, 4, 0,
+			1, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 42, 7, 61, 51, 47, 51, 23, 15, 7, 182, 120, 133, 133,
+			142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 60, 54, 8, 69, 58, 53, 58, 26, 17, 8,
+			182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 47, 14, 61, 47, 46,
+			49, 20, 15, 7, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 0, 34,
+			12, 53, 41, 40, 42, 17, 13, 6, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 33, 0, 152, 0, 8, 1, 36, 9, 64, 11,
+			132, 13, 100, 15, 160, 26, 50, 43, 8, 65, 53, 53, 53, 28, 13, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 8, 1,
+			36, 9, 64, 11, 132, 13, 100, 15, 160, 26, 75, 66, 10, 80, 65, 65, 65, 35, 16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			152, 0, 8, 1, 36, 9, 84, 11, 132, 13, 100, 15, 160, 26, 70, 54, 9, 73, 59, 59, 59, 31, 15, 7, 167, 105, 120, 120, 120, 120,
+			167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 118, 0, 240, 0, 35, 9, 44, 11, 72, 13, 60, 15, 112, 26, 0, 26, 7, 48, 42, 41, 42, 23, 10, 6, 171, 105,
+			112, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26, 45, 32, 25, 51,
+			51, 44, 38, 32, 17, 6, 168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12, 100, 15, 90, 26,
+			75, 46, 30, 60, 60, 53, 45, 38, 20, 8, 168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 120, 0, 80, 1, 160, 5, 156, 9, 228, 12,
+			100, 15, 90, 26, 75, 41, 28, 57, 57, 50, 43, 36, 19, 7, 168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 120, 0, 80, 1, 160, 5,
+			156, 9, 228, 12, 100, 15, 90, 26, 0, 32, 25, 51, 51, 44, 38, 32, 17, 6, 168, 112, 148, 120, 120, 120, 107, 112, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 120, 0, 4, 0,
+			1, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 35, 6, 61, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 59, 8, 80, 48, 28, 28, 40, 16, 10,
+			177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 36, 6, 62, 37, 21,
+			21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 23,
+			5, 50, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 172, 0, 40, 1, 228, 2, 96, 9,
+			12, 13, 60, 15, 144, 26, 45, 40, 3, 67, 48, 19, 25, 28, 9, 8, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 172, 0, 40, 1,
+			228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 70, 63, 4, 84, 60, 24, 32, 36, 12, 10, 177, 117, 100, 120, 120, 120, 177, 117, 115, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			172, 0, 40, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 60, 56, 3, 79, 57, 22, 30, 34, 11, 9, 177, 117, 100, 120, 120, 120,
+			177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 172, 0, 40, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 0, 38, 3, 65, 46, 18, 24, 28, 9, 7, 177, 117,
+			100, 120, 120, 120, 177, 117, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 125, 0, 4, 0, 1, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26, 45, 43, 6, 69,
+			44, 22, 25, 25, 12, 7, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12, 60, 15, 144, 26,
+			80, 70, 8, 88, 56, 28, 32, 32, 16, 10, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 104, 1, 92, 3, 56, 9, 108, 12,
+			60, 15, 144, 26, 70, 57, 7, 79, 50, 25, 28, 28, 14, 9, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 104, 1, 92, 3,
+			56, 9, 108, 12, 60, 15, 144, 26, 0, 38, 5, 65, 41, 20, 23, 23, 11, 7, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 165, 0, 4, 0,
+			1, 0, 180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 45, 34, 24, 51, 51, 36, 36, 30, 15, 7, 170, 125, 145, 120,
+			120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 70, 60, 32, 68, 68, 48, 48, 40, 20, 10,
+			170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 50, 54, 30, 64, 64, 45,
+			45, 38, 19, 9, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 180, 0, 192, 1, 196, 4, 212, 8, 148, 12, 226, 14, 144, 26, 0, 29,
+			22, 47, 47, 33, 33, 28, 14, 7, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 116, 0, 208, 1, 116, 4, 80, 10,
+			48, 12, 196, 14, 96, 27, 45, 40, 23, 57, 57, 37, 34, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 208, 1,
+			116, 4, 80, 10, 48, 12, 196, 14, 96, 27, 70, 79, 32, 80, 80, 52, 48, 44, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			116, 0, 208, 1, 116, 4, 80, 10, 48, 12, 196, 14, 96, 27, 60, 64, 28, 72, 72, 46, 43, 39, 20, 7, 167, 150, 135, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 116, 0, 208, 1, 116, 4, 80, 10, 48, 12, 196, 14, 96, 27, 0, 35, 21, 53, 53, 34, 32, 29, 15, 5, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 0, 0, 5, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 40, 44, 29, 57,
+			69, 39, 40, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27,
+			66, 97, 43, 84, 102, 57, 60, 46, 24, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 124, 0, 244, 1, 40, 6, 172, 9, 232, 12,
+			126, 14, 128, 27, 94, 50, 32, 60, 70, 44, 44, 33, 16, 6, 167, 138, 147, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1, 152, 8,
+			140, 10, 152, 13, 166, 14, 32, 28, 40, 40, 31, 54, 47, 57, 44, 32, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0,
+			99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 34, 31, 49, 49, 45, 42, 33, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			175, 8, 35, 0, 10, 234, 191, 13, 42, 250, 10, 243, 236, 16, 5, 2, 0, 226, 210, 25, 80, 2, 180, 13, 43, 252, 13, 226, 242, 255,
+			251, 50, 248, 205, 34, 7, 237, 34, 235, 12, 251, 235, 63, 0, 246, 239, 1, 49, 228, 236, 20, 211, 14, 67, 204, 220, 28, 253, 0, 12,
+			231, 222, 16, 35, 16, 227, 216, 47, 50, 231, 255, 236, 0, 24, 232, 29, 26, 225, 208, 57, 84, 205, 220, 5, 40, 27, 220, 19, 14, 228,
+			26, 30, 250, 255, 4, 230, 244, 60, 7, 184, 230, 76, 37, 188, 252, 20, 235, 3, 42, 7, 221, 0, 3, 19, 45, 234, 227, 8, 26, 52,
+			220, 232, 34, 216, 6, 42, 7, 216, 192, 39, 57, 236, 222, 8, 10, 249, 20, 241, 0, 5, 230, 62, 23, 235, 213, 249, 95, 226, 213, 34,
+			6, 227, 223, 49, 34, 195, 248, 59, 236, 236, 38, 17, 231, 253, 23, 13, 246, 226, 28, 212, 4, 66, 199, 10, 250, 241, 56, 231, 224, 35,
+			251, 228, 20, 12, 6, 247, 236, 21, 32, 244, 228, 0, 11, 8, 0, 12, 18, 8, 233, 251, 29, 244, 242, 25, 1, 11, 6, 219, 58, 11,
+			193, 255, 38, 27, 178, 22, 25, 194, 42, 18, 221, 230, 9, 10, 244, 243, 2, 11, 254, 0, 229, 250, 255, 9, 28, 226, 226, 48, 40, 209,
+			12, 3, 249, 57, 193, 33, 63, 167, 62, 22, 229, 65, 179, 0, 103, 215, 191, 51, 39, 177, 3, 47, 245, 250, 220, 7, 44, 219, 233, 11,
+			206, 25, 8, 162, 49, 33, 179, 22, 33, 214, 242, 11, 245, 252, 32, 32, 212, 27, 80, 181, 225, 71, 249, 232, 70, 10, 204, 50, 239, 238,
+			42, 205, 227, 230, 23, 65, 165, 245, 78, 170, 245, 45, 176, 35, 35, 184, 81, 24, 182, 42, 242, 242, 39, 230, 231, 11, 12, 241, 5, 28,
+			251, 222, 20, 32, 212, 250, 35, 1, 231, 29, 32, 174, 253, 60, 222, 244, 14, 244, 0, 254, 8, 19, 245, 241, 242, 16, 18, 211, 1, 23,
+			252, 26, 244, 221, 14, 22, 225, 224, 17, 9, 242, 7, 21, 242, 250, 25, 252, 231, 30, 252, 213, 66, 20, 227, 254, 249, 40, 7, 207, 217,
+			55, 32, 209, 227, 249, 66, 210, 193, 91, 214, 188, 37, 8, 22, 240, 233, 17, 243, 21, 0, 231, 245, 12, 54, 228, 241, 27, 204, 246, 60,
+			233, 222, 3, 1, 41, 232, 238, 42, 249, 226, 11, 25, 221, 26, 14, 217, 48, 23, 206, 225, 54, 248, 185, 48, 28, 216, 251, 244, 12, 24,
+			230, 2, 10, 20, 251, 238, 26, 238, 34, 228, 186, 105, 1, 145, 33, 71, 221, 195, 32, 24, 191, 20, 31, 197, 10, 33, 7, 229, 16, 42,
+			179, 30, 95, 213, 240, 11, 29, 15, 204, 56, 251, 165, 80, 43, 199, 248, 12, 247, 29, 31, 178, 240, 36, 245, 25, 225, 248, 59, 225, 207,
+			3, 46, 214, 198, 65, 17, 245, 242, 6, 255, 249, 49, 196, 254, 67, 220, 5, 14, 243, 55, 247, 177, 64, 10, 184, 47, 0, 221, 53, 250,
+			216, 18, 245, 255, 243, 232, 41, 22, 225, 250, 38, 251, 241, 217, 38, 89, 154, 236, 108, 244, 195, 249, 47, 22, 229, 218, 19, 49, 191, 216,
+			81, 247, 231, 21, 220, 0, 46, 10, 236, 6, 242, 229, 30, 228, 230, 59, 233, 231, 31, 241, 10, 212, 246, 99, 224, 225, 37, 238, 24, 28,
+			226, 33, 21, 202, 6, 51, 3, 206, 17, 52, 224, 233, 245, 19, 12, 160, 46, 104, 168, 230, 252, 2, 53, 189, 11, 23, 218, 41, 249, 4,
+			14, 201, 13, 60, 21, 217, 226, 56, 11, 10, 42, 225, 209, 11, 69, 220, 201, 58, 19, 231, 241, 40, 20, 163, 230, 123, 17, 163, 16, 40,
+			237, 240, 27, 4, 208, 29, 28, 207, 19, 27, 199, 242, 84, 9, 163, 25, 25, 225, 43, 250, 11, 3, 194, 68, 52, 192, 11, 24, 246, 7,
+			224, 14, 17, 197, 35, 54, 213, 4, 13, 215, 253, 33, 31, 251, 226, 243, 75, 15, 142, 24, 38, 236, 255, 249, 69, 218, 187, 111, 26, 166,
+			243, 10, 251, 14, 12, 214, 9, 93, 204, 176, 66, 21, 191, 25, 68, 210, 218, 52, 12, 224, 28, 10, 237, 22, 252, 8, 250, 5, 36, 232,
+			247, 255, 21, 251, 201, 48, 31, 201, 234, 21, 32, 241, 212, 247, 48, 28, 200, 239, 20, 22, 18, 193, 2, 81, 200, 209, 120, 3, 144, 69,
+			52, 179, 12, 12, 254, 13, 199, 49, 56, 163, 255, 76, 243, 211, 247, 66, 38, 170, 242, 68, 43, 204, 184, 72, 32, 230, 224, 46, 86, 146,
+			218, 126, 12, 165, 0, 53, 223, 5, 42, 220, 230, 31, 254, 230, 19, 1, 230, 19, 5, 254, 0, 243, 15, 231, 21, 33, 207, 0, 251, 237,
+			29, 228, 234, 23, 226, 27, 32, 231, 1, 255, 42, 252, 203, 34, 48, 255, 252, 1, 26, 10, 214, 22, 17, 230, 221, 3, 65, 235, 214, 11,
+			15, 252, 246, 12, 248, 247, 17, 255, 253, 253, 255, 12, 220, 23, 15, 214, 26, 252, 24, 2, 226, 34, 223, 254, 39, 216, 248, 7, 8, 20,
+			231, 248, 8, 25, 246, 255, 42, 221, 247, 255, 21, 35, 201, 4, 17, 239, 24, 250, 20, 3, 217, 69, 243, 222, 28, 228, 48, 246, 220, 26,
+			239, 226, 228, 36, 27, 204, 228, 25, 14, 252, 0, 255, 7, 1, 255, 45, 232, 191, 66, 14, 202, 21, 29, 223, 240, 74, 252, 196, 24, 18,
+			229, 17, 26, 250, 251, 243, 44, 17, 197, 18, 55, 214, 237, 35, 249, 6, 246, 14, 253, 213, 62, 6, 172, 40, 65, 194, 232, 44, 1, 196,
+			234, 61, 233, 238, 43, 233, 248, 13, 0, 2, 247, 22, 250, 240, 45, 236, 231, 28, 5, 253, 240, 244, 15, 50, 249, 213, 74, 16, 197, 26,
+			1, 10, 233, 232, 75, 221, 7, 18, 204, 70, 227, 233, 64, 226, 238, 1, 7, 13, 245, 240, 7, 16, 209, 212, 23, 251, 251, 18, 222, 18,
+			19, 220, 10, 4, 18, 248, 253, 40, 238, 246, 33, 37, 239, 251, 23, 237, 14, 9, 233, 19, 44, 217, 6, 41, 189, 1, 4, 33, 255, 146,
+			74, 37, 174, 1, 16, 1, 246, 1, 19, 237, 233, 39, 253, 226, 32, 20, 225, 222, 82, 8, 145, 56, 61, 231, 236, 243, 56, 232, 229, 28,
+			246, 66, 236, 200, 49, 252, 246, 253, 236, 13, 33, 201, 189, 103, 8, 140, 31, 48, 234, 243, 10, 32, 9, 226, 22, 60, 210, 214, 47, 23,
+			237, 241, 47, 12, 216, 24, 35, 236, 232, 49, 10, 192, 20, 42, 226, 236, 41, 16, 192, 230, 46, 18, 208, 217, 53, 22, 185, 3, 61, 241,
+			238, 7, 9, 5, 223, 0, 245, 36, 54, 175, 11, 40, 232, 6, 241, 37, 249, 216, 80, 254, 197, 36, 16, 15, 247, 228, 9, 1, 25, 216,
+			235, 81, 233, 208, 52, 21, 224, 255, 47, 6, 214, 23, 14, 221, 244, 23, 21, 245, 250, 237, 245, 16, 12, 229, 235, 44, 243, 229, 58, 214,
+			192, 88, 238, 187, 34, 34, 0, 208, 69, 27, 181, 43, 238, 231, 30, 238, 18, 245, 1, 41, 217, 16, 254, 201, 74, 0, 191, 41, 12, 250,
+			2, 250, 33, 11, 242, 223, 18, 45, 210, 241, 31, 26, 209, 204, 41, 233, 241, 26, 219, 14, 40, 205, 240, 45, 12, 224, 237, 54, 9, 210,
+			223, 48, 47, 170, 253, 56, 255, 5, 223, 248, 54, 6, 214, 4, 31, 0, 224, 245, 44, 241, 231, 37, 0, 1, 247, 240, 23, 5, 237, 3,
+			19, 215, 4, 6, 217, 42, 253, 219, 8, 39, 249, 198, 48, 41, 204, 18, 48, 211, 249, 22, 4, 245, 229, 78, 0, 176, 31, 53, 9, 200,
+			241, 64, 238, 210, 60, 26, 210, 21, 32, 241, 245, 19, 235, 241, 62, 209, 189, 50, 252, 231, 244, 246, 29, 245, 252, 16, 2, 2, 254, 10,
+			249, 30, 252, 214, 43, 0, 2, 18, 229, 1, 23, 26, 7, 230, 8, 60, 179, 231, 92, 189, 244, 7, 235, 61, 232, 215, 42, 19, 205, 4,
+			49, 221, 224, 59, 10, 217, 9, 243, 7, 3, 233, 3, 12, 9, 234, 8, 0, 12, 22, 190, 29, 37, 189, 31, 10, 233, 60, 237, 227, 24,
+			232, 23, 3, 223, 32, 252, 28, 7, 221, 61, 9, 241, 244, 37, 43, 159, 9, 73, 236, 205, 254, 50, 220, 220, 37, 249, 217, 11, 41, 238,
+			220, 41, 254, 253, 25, 212, 35, 246, 219, 57, 245, 238, 254, 0, 3, 25, 251, 203, 48, 15, 211, 19, 45, 255, 217, 21, 32, 246, 17, 10,
+			230, 40, 12, 218, 20, 0, 49, 6, 216, 36, 191, 0, 40, 182, 7, 7, 255, 18, 229, 6, 9, 230, 243, 58, 4, 146, 38, 73, 196, 244,
+			23, 242, 224, 28, 21, 213, 11, 13, 3, 10, 246, 16, 10, 247, 6, 37, 29, 233, 2, 28, 237, 0, 29, 1, 206, 8, 62, 211, 246, 18,
+			204, 249, 19, 12, 0, 220, 0, 24, 246, 9, 246, 226, 248, 23, 24, 220, 11, 7, 248, 33, 227, 235, 244, 223, 33, 42, 236, 197, 4, 78,
+			6, 230, 248, 247, 22, 39, 254, 217, 28, 33, 248, 0, 8, 6, 225, 244, 77, 40, 147, 12, 57, 205, 41, 3, 248, 228, 215, 78, 253, 211,
+			236, 0, 38, 219, 5, 36, 164, 240, 83, 228, 187, 236, 44, 30, 205, 43, 37, 182, 36, 46, 227, 255, 25, 250, 218, 66, 29, 173, 250, 73,
+			11, 213, 246, 23, 43, 196, 5, 63, 186, 7, 250, 247, 40, 213, 255, 6, 232, 53, 2, 174, 16, 35, 229, 218, 15, 15, 202, 32, 30, 240,
+			6, 247, 17, 249, 18, 14, 205, 23, 21, 253, 15, 252, 24, 4, 229, 245, 28, 6, 200, 23, 21, 249, 16, 219, 14, 43, 230, 239, 5, 234,
+			12, 33, 249, 234, 249, 51, 224, 203, 56, 231, 231, 46, 235, 211, 30, 21, 212, 10, 22, 0, 246, 216, 39, 17, 206, 53, 13, 214, 61, 246,
+			217, 21, 247, 9, 253, 4, 26, 242, 218, 41, 61, 167, 248, 68, 190, 222, 43, 243, 206, 34, 51, 220, 222, 24, 30, 239, 223, 39, 9, 217,
+			44, 0, 240, 32, 15, 240, 217, 47, 246, 199, 33, 253, 16, 12, 244, 26, 235, 9, 11, 212, 7, 235, 0, 50, 1, 231, 3, 66, 212, 191,
+			29, 253, 11, 252, 8, 20, 248, 35, 5, 203, 6, 36, 211, 251, 59, 248, 243, 34, 1, 13, 12, 212, 54, 5, 190, 69, 248, 229, 53, 218,
+			3, 33, 200, 0, 15, 203, 1, 31, 220, 245, 70, 230, 193, 72, 8, 233, 23, 206, 6, 45, 210, 219, 63, 44, 226, 246, 0, 48, 16, 203,
+			39, 6, 235, 47, 221, 254, 59, 203, 0, 53, 222, 255, 4, 244, 44, 2, 225, 19, 1, 249, 23, 219, 222, 27, 242, 245, 2, 8, 28, 237,
+			235, 247, 23, 248, 167, 52, 74, 177, 252, 65, 244, 248, 0, 1, 29, 234, 241, 27, 16, 28, 247, 245, 59, 243, 227, 29, 214, 13, 36, 223,
+			24, 0, 227, 14, 255, 252, 255, 242, 254, 1, 8, 16, 232, 12, 40, 223, 5, 10, 230, 14, 229, 10, 43, 222, 243, 254, 3, 2, 243, 7,
+			242, 27, 248, 217, 46, 7, 23, 11, 213, 28, 33, 237, 237, 38, 14, 242, 24, 246, 232, 21, 242, 226, 51, 1, 198, 248, 41, 1, 206, 14,
+			28, 249, 207, 240, 57, 242, 204, 55, 31, 201, 24, 248, 245, 45, 233, 225, 21, 28, 215, 0, 21, 243, 9, 228, 13, 38, 240, 3, 8, 13,
+			34, 246, 9, 22, 225, 11, 43, 208, 222, 70, 255, 201, 0, 43, 226, 209, 53, 228, 226, 34, 250, 239, 241, 14, 9, 239, 237, 253, 36, 2,
+			242, 24, 253, 31, 14, 248, 18, 244, 29, 234, 239, 32, 15, 0, 200, 10, 47, 215, 205, 51, 251, 204, 27, 1, 254, 18, 21, 235, 8, 29,
+			212, 252, 16, 2, 18, 239, 250, 41, 227, 238, 43, 241, 241, 31, 247, 212, 48, 11, 173, 25, 61, 213, 209, 5, 31, 15, 214, 13, 40, 242,
+			249, 10, 14, 237, 252, 20, 4, 255, 236, 32, 10, 208, 51, 14, 219, 28, 223, 231, 64, 250, 209, 49, 5, 234, 26, 247, 2, 4, 248, 19,
+			19, 216, 247, 19, 219, 0, 18, 2, 238, 0, 8, 243, 18, 6, 229, 242, 24, 245, 223, 9, 19, 8, 243, 8, 30, 237, 228, 36, 17, 230,
+			9, 17, 250, 255, 242, 5, 11, 219, 23, 21, 202, 255, 46, 10, 231, 242, 46, 248, 163, 62, 48, 167, 245, 52, 32, 201, 237, 61, 232, 223,
+			31, 246, 254, 244, 216, 57, 0, 236, 28, 211, 2, 34, 226, 241, 12, 10, 12, 249, 10, 10, 227, 11, 25, 7, 7, 218, 18, 60, 200, 252,
+			59, 214, 1, 47, 229, 237, 4, 0, 58, 0, 3, 0, 5, 0, 116, 0, 232, 0, 52, 8, 140, 10, 16, 14, 104, 16, 124, 21, 58, 14,
+			25, 15, 10, 10, 10, 10, 5, 5, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 52, 8, 140, 10, 16, 14, 104, 16,
+			124, 21, 0, 14, 25, 15, 10, 10, 10, 10, 5, 5, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 232, 0, 52, 8, 140, 10,
+			16, 14, 104, 16, 124, 21, 0, 14, 25, 15, 10, 5, 5, 5, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 14, 4, 30, 0, 1, 1,
+			1, 248, 1, 254, 243, 4, 9, 5, 0, 4, 5, 15, 15, 16, 12, 15, 146, 182, 22, 55, 66, 236, 245, 250, 3, 18, 227, 255, 36, 231,
+			7, 17, 254, 15, 253, 241, 243, 232, 4, 21, 231, 9, 10, 252, 15, 8, 14, 0, 247, 7, 242, 253, 24, 226, 220, 17, 39, 31, 248, 243,
+			232, 226, 250, 21, 15, 13, 249, 7, 13, 6, 23, 216, 228, 252, 24, 10, 5, 33, 223, 222, 250, 32, 253, 10, 17, 211, 15, 252, 2, 252,
+			20, 3, 20, 19, 28, 181, 196, 10, 7, 68, 6, 9, 233, 236, 231, 40, 253, 237, 14, 231, 50, 247, 17, 234, 225, 38, 20, 2, 254, 255,
+			222, 192, 243, 67, 47, 34, 247, 192, 0, 43, 230, 239, 16, 228, 27, 254, 23, 18, 218, 27, 3, 210, 242, 36, 253, 9, 214, 15, 54, 14,
+			3, 222, 246, 242, 248, 230, 61, 42, 154, 13, 31, 70, 2, 162, 18, 32, 216, 232, 49, 34, 205, 236, 87, 1, 223, 225, 225, 60, 14, 181,
+			215, 96, 71, 194, 225, 15, 97, 161, 199, 65, 4, 0, 216, 11, 84, 182, 14, 0, 220, 44, 248, 2, 245, 204, 48, 78, 208, 253, 22, 224,
+			14, 12, 241, 229, 210, 34, 16, 40, 17, 243, 241, 217, 15, 5, 24, 252, 215, 33, 40, 237, 216, 31, 29, 222, 193, 47, 39, 227, 238, 242,
+			61, 43, 163, 236, 41, 71, 238, 208, 225, 255, 36, 5, 226, 37, 41, 245, 219, 250, 9, 227, 237, 44, 66, 230, 166, 247, 60, 39, 49, 178,
+			175, 58, 50, 17, 242, 178, 221, 96, 49, 2, 232, 206, 219, 3, 238, 22, 54, 53, 18, 173, 250, 25, 252, 249, 208, 246, 80, 13, 242, 5,
+			238, 219, 36, 226, 255, 37, 254, 36, 198, 2, 48, 11, 228, 193, 252, 53, 35, 12, 222, 205, 44, 49, 224, 210, 42, 253, 225, 18, 235, 17,
+			69, 239, 211, 9, 0, 15, 180, 237, 114, 26, 219, 255, 0, 8, 239, 211, 235, 62, 5, 14, 225, 238, 9, 20, 44, 11, 217, 218, 242, 18,
+			49, 5, 245, 203, 229, 53, 23, 249, 50, 221, 215, 224, 249, 60, 37, 231, 50, 7, 149, 236, 55, 45, 218, 235, 245, 255, 44, 37, 252, 202,
+			34, 232, 233, 23, 41, 252, 191, 225, 36, 79, 3, 243, 231, 240, 23, 210, 184, 54, 82, 14, 18, 244, 244, 214, 234, 31, 215, 246, 24, 18,
+			45, 7, 237, 242, 235, 249, 33, 53, 23, 164, 133, 22, 96, 96, 9, 166, 0, 39, 1, 214, 184, 253, 73, 18, 0, 33, 21, 249, 182, 218,
+			33, 43, 12, 217, 234, 14, 23, 69, 236, 178, 250, 51, 237, 232, 30, 229, 11, 50, 13, 237, 253, 245, 179, 1, 9, 51, 73, 15, 209, 246,
+			248, 243, 206, 0, 255, 16, 38, 28, 249, 240, 29, 15, 246, 204, 228, 243, 36, 75, 232, 209, 243, 24, 38, 243, 3, 255, 204, 241, 57, 55,
+			222, 195, 13, 38, 1, 13, 26, 208, 214, 237, 251, 55, 25, 24, 8, 237, 6, 214, 190, 50, 3, 21, 30, 223, 17, 29, 252, 223, 221, 244,
+			19, 9, 3, 11, 10, 63, 240, 223, 255, 242, 238, 204, 240, 50, 68, 56, 1, 165, 230, 20, 19, 11, 209, 1, 40, 198, 17, 57, 25, 37,
+			251, 158, 201, 76, 27, 203, 213, 0, 66, 28, 23, 2, 0, 247, 217, 250, 229, 9, 31, 217, 19, 64, 246, 242, 235, 250, 20, 214, 255, 40,
+			237, 3, 249, 6, 87, 0, 196, 247, 244, 237, 241, 252, 56, 37, 224, 250, 245, 3, 15, 4, 15, 214, 2, 19, 247, 250, 54, 236, 192, 3,
+			29, 68, 233, 227, 37, 197, 238, 5, 238, 39, 74, 25, 217, 222, 232, 208, 234, 67, 77, 249, 209, 22, 41, 218, 206, 222, 244, 17, 92, 50,
+			201, 231, 14, 229, 214, 28, 47, 35, 0, 185, 210, 30, 52, 229, 244, 41, 55, 10, 164, 232, 4, 198, 240, 78, 104, 52, 235, 165, 170, 1,
+			43, 26, 13, 20, 3, 252, 209, 228, 12, 26, 24, 25, 238, 225, 14, 5, 238, 11, 12, 253, 7, 9, 245, 241, 252, 233, 2, 38, 0, 14,
+			4, 24, 227, 210, 250, 9, 20, 17, 29, 20, 235, 233, 201, 230, 32, 44, 0, 26, 54, 230, 164, 209, 36, 42, 25, 239, 20, 29, 250, 236,
+			202, 236, 12, 39, 16, 15, 244, 19, 222, 197, 43, 239, 46, 43, 253, 236, 222, 212, 7, 35, 251, 39, 4, 20, 224, 224, 241, 250, 14, 5,
+			37, 61, 242, 196, 17, 202, 238, 13, 15, 50, 38, 252, 218, 225, 234, 8, 254, 50, 35, 227, 250, 226, 6, 252, 15, 22, 237, 234, 37, 251,
+			236, 249, 20, 18, 240, 22, 246, 248, 0, 0, 239, 243, 17, 13, 25, 253, 253, 236, 241, 45, 244, 222, 248, 15, 22, 25, 255, 241, 249, 237,
+			252, 23, 21, 238, 242, 2, 6, 240, 7, 23, 25, 34, 233, 223, 194, 201, 45, 76, 40, 252, 250, 234, 245, 250, 236, 225, 40, 35, 253, 16,
+			9, 233, 238, 207, 235, 42, 37, 59, 15, 239, 240, 178, 191, 9, 61, 81, 46, 213, 222, 233, 240, 1, 238, 10, 16, 27, 44, 10, 215, 212,
+			240, 33, 7, 6, 2, 27, 253, 214, 217, 229, 55, 63, 29, 14, 231, 204, 201, 240, 17, 41, 26, 27, 34, 237, 182, 211, 23, 53, 21, 13,
+			0, 221, 230, 244, 255, 2, 27, 17, 14, 21, 246, 249, 227, 218, 5, 20, 30, 36, 3, 229, 218, 224, 0, 24, 32, 50, 243, 214, 1, 250,
+			240, 254, 7, 27, 42, 14, 228, 206, 238, 0, 1, 21, 38, 8, 242, 227, 253, 20, 0, 6, 12, 241, 244, 23, 2, 243, 14, 245, 242, 243,
+			9, 22, 6, 6, 230, 233, 33, 11, 244, 24, 20, 234, 230, 241, 22, 5, 239, 9, 6, 37, 11, 212, 223, 251, 10, 245, 11, 63, 43, 223,
+			214, 240, 3, 39, 248, 231, 241, 1, 0, 1, 32, 29, 10, 232, 220, 252, 0, 0, 125, 0, 2, 0, 17, 0, 158, 0, 220, 1, 180, 5,
+			166, 9, 103, 12, 96, 14, 162, 26, 125, 21, 25, 43, 26, 25, 25, 22, 6, 6, 153, 115, 128, 120, 120, 120, 165, 135, 135, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0,
 			160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130,
-			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			40, 0, 2, 0, 17, 0, 172, 0, 70, 2, 26, 4, 0, 10, 199, 11, 119, 14, 128, 27, 40, 25, 29, 40, 46, 33, 28, 15, 10, 3,
-			153, 137, 136, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20,
-			16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 50, 0, 2, 0, 17, 0, 180, 0, 214, 1, 242, 3, 176, 9, 123, 12, 206, 14,
-			56, 27, 50, 14, 14, 37, 23, 18, 15, 19, 7, 3, 160, 132, 112, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10,
-			234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0,
-			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
-			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 0, 34, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132,
-			159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32,
-			16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14, 96, 27,
-			0, 36, 28, 51, 63, 35, 32, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4,
-			40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 0, 1,
-			112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 0, 42, 25, 48, 48, 20, 40, 23, 6, 5, 186, 175, 135, 120, 120, 120, 105, 185,
-			148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0,
-			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 0, 45, 45, 48, 68, 35,
-			38, 25, 11, 5, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
-			224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9,
-			228, 12, 96, 14, 100, 25, 0, 67, 24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0,
-			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
-			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 192, 0, 179, 1, 92, 3, 252, 8, 184, 11, 60, 15, 32, 28, 0, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82,
-			90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32,
-			16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27,
-			0, 46, 31, 46, 57, 25, 36, 20, 10, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 100, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4,
-			40, 10, 234, 11, 96, 14, 224, 27, 100, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 156, 0,
-			99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 21, 25, 39, 40, 37, 30, 20, 7, 6, 167, 90, 135, 120, 120, 120, 122, 120,
-			120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0,
-			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 112, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 0, 60, 34, 66, 80, 45,
-			47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
-			224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10,
-			112, 13, 191, 14, 32, 28, 0, 53, 31, 69, 57, 42, 31, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54,
-			0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0,
-			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
-			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14, 128, 28, 0, 41, 27, 56, 59, 58, 46, 34, 11, 7, 185, 112,
-			127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 100, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 100, 15, 40, 32,
-			16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27,
-			0, 27, 6, 49, 41, 38, 41, 19, 12, 6, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4,
-			40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 153, 0,
-			156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 0, 35, 17, 52, 37, 27, 30, 22, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115,
-			130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0,
-			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 35, 6, 61, 36, 21,
-			21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 12, 0, 2, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
-			224, 27, 12, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10,
+			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			60, 0, 2, 0, 1, 0, 252, 0, 90, 2, 230, 5, 20, 10, 169, 12, 184, 14, 96, 28, 60, 13, 27, 28, 29, 28, 20, 22, 8, 3,
+			193, 136, 140, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20,
+			16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 65, 0, 2, 0, 17, 0, 220, 0, 110, 2, 56, 4, 180, 10, 13, 12, 66, 14,
+			248, 27, 65, 11, 23, 26, 26, 16, 20, 16, 5, 3, 164, 157, 128, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10,
 			234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 60, 0, 3, 0, 5, 0,
-			200, 0, 160, 2, 176, 4, 40, 10, 84, 11, 96, 14, 224, 27, 30, 2, 16, 12, 9, 12, 9, 12, 4, 0, 150, 175, 175, 120, 120, 120,
-			100, 125, 125, 44, 45, 70, 130, 40, 0, 25, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 5, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 30, 4, 17, 18, 11, 14, 11, 15, 4, 0, 150, 175,
-			175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 48, 0, 25, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 160, 2, 176, 4, 40, 10, 28, 12, 96, 14, 224, 27, 0, 5, 16, 23, 13, 15, 12, 16,
-			5, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 48, 0, 20, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 55, 0, 2, 0, 5, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
-			55, 5, 16, 23, 12, 15, 12, 16, 5, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11,
-			96, 14, 224, 27, 0, 5, 16, 23, 12, 15, 12, 16, 5, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 90, 0, 2, 0, 17, 0, 116, 0,
-			13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 90, 21, 28, 36, 46, 24, 22, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150,
-			150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 65, 0, 2, 0, 17, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 35, 32, 53, 48, 31,
-			24, 25, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10,
-			35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 60, 0, 2, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10,
-			104, 13, 15, 15, 224, 28, 60, 31, 31, 43, 49, 39, 30, 38, 12, 7, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 108, 2,
-			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 50, 0,
-			2, 0, 17, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 50, 47, 8, 65, 54, 50, 54, 25, 16, 8, 182, 120,
-			133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12,
-			5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 40, 0, 2, 0, 17, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27,
-			40, 87, 34, 66, 84, 51, 46, 23, 17, 6, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11,
-			96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 50, 0, 2, 0, 17, 0, 176, 0,
-			64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 36, 6, 62, 37, 21, 21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125,
-			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150,
-			150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 40, 0, 2, 0, 17, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 40, 43, 19, 60, 40, 35,
-			38, 35, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10,
-			35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 47, 0, 3, 0, 37, 0, 184, 0, 108, 2, 176, 4, 40, 10,
-			234, 11, 96, 14, 224, 27, 27, 6, 28, 16, 12, 20, 12, 10, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 37, 0, 172, 0, 134, 2,
-			176, 4, 80, 10, 234, 11, 96, 14, 224, 27, 20, 9, 34, 12, 12, 23, 10, 9, 6, 0, 106, 157, 136, 135, 135, 120, 85, 130, 187, 44,
-			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			160, 0, 160, 2, 176, 4, 120, 10, 234, 11, 96, 14, 224, 27, 0, 6, 27, 6, 9, 18, 6, 6, 6, 0, 142, 140, 122, 120, 120, 120,
-			172, 110, 152, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 45, 0, 2, 0, 37, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 45, 10, 35, 20, 15, 25, 15, 12,
-			5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 4, 22, 13,
-			9, 16, 9, 7, 3, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 47, 0, 4, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11,
-			96, 14, 224, 27, 7, 5, 27, 12, 20, 10, 4, 4, 2, 0, 70, 175, 150, 150, 150, 120, 85, 130, 137, 44, 35, 50, 60, 53, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0, 160, 2, 176, 4,
-			40, 10, 234, 11, 96, 14, 224, 27, 20, 9, 32, 21, 21, 13, 6, 5, 2, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70,
-			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0,
-			160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 20, 11, 35, 26, 18, 16, 10, 8, 2, 0, 70, 175, 150, 150, 150, 120, 85, 130,
-			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 12, 37, 27, 19, 17, 11, 9, 3, 0, 70, 175, 150, 150,
-			150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 45, 0, 4, 0, 1, 0, 160, 0, 160, 2, 76, 4, 40, 10, 234, 11, 96, 14, 224, 27, 5, 21, 47, 38, 19, 24,
-			15, 11, 4, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 172, 0, 160, 2, 126, 4, 40, 10, 234, 11, 96, 14, 224, 27, 35, 20,
-			42, 34, 17, 21, 15, 11, 3, 0, 142, 140, 122, 120, 120, 120, 172, 110, 152, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
-			224, 27, 5, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10,
-			234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 45, 0, 2, 0, 5, 0,
-			148, 0, 120, 1, 100, 5, 84, 11, 32, 13, 135, 15, 224, 28, 45, 35, 32, 58, 36, 40, 51, 27, 10, 0, 102, 105, 127, 120, 120, 120,
-			102, 90, 127, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 124, 0, 209, 1, 112, 3, 84, 11, 68, 12, 191, 14, 160, 26, 0, 66, 26, 78, 70, 48, 48, 30, 17, 0, 120, 120,
-			120, 120, 120, 120, 75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 0, 0, 2, 0, 5, 0, 98, 0, 106, 1, 230, 5, 60, 10, 12, 13, 37, 15, 114, 26, 75, 20, 14, 45,
-			29, 19, 17, 16, 9, 8, 155, 112, 127, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 17, 0, 64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27,
-			0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120, 120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 140, 0, 3, 0, 1, 0, 115, 0, 200, 1, 180, 5,
-			122, 9, 200, 12, 179, 14, 96, 27, 50, 42, 26, 54, 67, 41, 43, 34, 16, 6, 167, 134, 130, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 115, 0,
-			200, 1, 180, 5, 122, 9, 200, 12, 179, 14, 96, 27, 90, 74, 35, 72, 89, 54, 57, 44, 22, 8, 167, 134, 130, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 115, 0, 200, 1, 180, 5, 122, 9, 200, 12, 179, 14, 96, 27, 0, 38, 25, 51, 64, 39, 41, 32, 16, 6, 167, 134, 130, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 45, 53, 31, 69, 57, 41,
-			31, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 50, 96,
-			42, 93, 77, 56, 42, 26, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14,
-			32, 28, 80, 78, 38, 84, 69, 51, 37, 24, 11, 5, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0,
-			50, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10,
-			112, 13, 191, 14, 32, 28, 0, 43, 28, 62, 52, 37, 28, 17, 8, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54,
-			0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 4, 0, 33, 0,
-			156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 52, 21, 24, 39, 39, 36, 29, 19, 7, 6, 167, 90, 135, 120, 120, 120,
-			122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 75, 29, 29, 46, 47, 43, 35, 23, 8, 7, 167, 90,
-			135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 70, 23, 26, 41, 42, 38, 31, 21,
-			7, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 25, 27, 43,
-			44, 40, 33, 22, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 220, 0, 5, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12,
-			176, 14, 244, 26, 50, 44, 11, 61, 43, 32, 35, 26, 14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 153, 0, 156, 1, 248, 2,
-			120, 10, 148, 12, 176, 14, 244, 26, 90, 75, 15, 79, 57, 41, 46, 34, 19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 153, 0,
-			156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 60, 13, 71, 51, 37, 41, 30, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115,
-			130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 30, 50, 12, 65, 46, 34, 38, 28, 15, 7, 165, 126, 145, 120,
-			120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 0, 29, 9, 50, 35, 26, 29, 21, 11, 5,
-			165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 45, 41,
-			23, 45, 58, 35, 32, 16, 11, 4, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14,
-			32, 27, 50, 75, 32, 61, 78, 47, 43, 21, 16, 6, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 32, 2, 132, 3, 216, 9,
-			164, 11, 141, 14, 32, 27, 80, 61, 29, 55, 70, 43, 39, 19, 14, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 160, 0, 32, 2,
-			132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 0, 34, 21, 41, 52, 32, 29, 14, 10, 4, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 71, 0,
-			3, 0, 5, 0, 192, 0, 179, 1, 92, 3, 252, 8, 184, 11, 60, 15, 32, 28, 26, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82,
-			90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 5, 0, 208, 0, 199, 1, 132, 3, 16, 9, 184, 11, 60, 15, 32, 28, 45, 62, 31, 81, 61, 30, 24, 15,
-			8, 0, 120, 120, 150, 120, 120, 120, 75, 90, 105, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 53, 31, 69,
-			57, 42, 31, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 180, 0, 5, 0, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13,
-			33, 15, 96, 28, 50, 36, 40, 43, 61, 31, 34, 23, 9, 5, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 160, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 63, 1, 182, 2, 80, 5,
-			64, 10, 139, 13, 33, 15, 96, 28, 40, 67, 54, 58, 82, 43, 46, 31, 13, 7, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70,
-			130, 59, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 63, 1,
-			182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 50, 54, 49, 52, 74, 38, 42, 28, 12, 6, 221, 135, 155, 120, 120, 120, 150, 180,
-			150, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 40, 48, 46, 49, 70, 36, 39, 26, 11, 6, 221, 135, 155, 120,
-			120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 0, 21, 30, 32, 46, 24, 26, 17, 7, 4,
-			221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 200, 0, 5, 0, 1, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 37,
-			28, 41, 51, 15, 25, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14,
-			159, 27, 50, 58, 35, 51, 64, 19, 32, 22, 12, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 160, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 88, 1, 188, 2, 60, 10,
-			88, 12, 176, 14, 159, 27, 50, 58, 35, 51, 64, 19, 32, 22, 12, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60,
-			165, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 88, 1,
-			188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 51, 33, 48, 61, 18, 30, 21, 11, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44,
-			45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 0, 37, 28, 41, 51, 15, 25, 18, 9, 5, 177, 100, 131, 120, 120, 120,
-			105, 135, 135, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 58, 0, 3, 0, 5, 0, 116, 0, 200, 0, 26, 4, 102, 8, 232, 13, 24, 16, 124, 21, 48, 10, 21, 12, 8, 4, 4, 4,
-			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 55, 65, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 116, 0, 216, 0, 251, 4, 202, 8, 102, 13, 24, 16, 124, 21, 10, 12, 20, 16,
-			10, 6, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 55, 65, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
-			0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 35, 0, 2, 0, 5, 0, 116, 0, 232, 0, 252, 3,
-			60, 10, 232, 13, 24, 16, 124, 21, 35, 8, 16, 14, 4, 2, 2, 2, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0,
-			160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 4, 22, 17, 8, 11, 8, 6, 2, 0, 70, 175, 150, 120, 120, 120, 85, 130,
-			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			58, 0, 3, 0, 5, 0, 116, 0, 208, 0, 104, 6, 40, 10, 232, 13, 24, 16, 124, 21, 48, 7, 12, 16, 8, 4, 4, 4, 0, 0,
-			200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 126, 0, 212, 0, 34, 6, 171, 9, 102, 13, 24, 16, 124, 21, 10, 10, 16, 18, 10, 6,
-			4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 216, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 15,
-			20, 20, 12, 8, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 58, 0, 3, 0, 5, 0, 116, 0, 200, 0, 208, 7, 34, 11,
-			232, 13, 24, 16, 124, 21, 48, 11, 22, 13, 9, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 75, 140, 48,
-			0, 0, 0, 0, 60, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 116, 0, 200, 0,
-			214, 6, 40, 10, 102, 13, 24, 16, 124, 21, 10, 12, 20, 16, 10, 6, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
-			30, 75, 140, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			116, 0, 200, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 12, 18, 18, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175,
-			200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 35, 0, 3, 0, 5, 0, 116, 0, 200, 0, 198, 7, 34, 11, 232, 13, 24, 16, 124, 21, 20, 10, 19, 19, 7, 3, 3, 3,
-			0, 0, 100, 150, 150, 150, 150, 150, 100, 150, 150, 44, 30, 75, 140, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 150, 0, 180, 1, 59, 6, 165, 10, 233, 12, 60, 15, 174, 24, 15, 11, 28, 24,
-			11, 11, 9, 7, 1, 0, 85, 162, 150, 135, 135, 135, 100, 150, 150, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
-			0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 188, 2, 51, 0, 255, 0, 0, 1, 0, 2, 2, 5,
-			3, 6, 5, 8, 5, 8, 2, 0, 197, 190, 230, 30, 57, 50, 29, 11, 254, 227, 221, 233, 4, 27, 27, 14, 254, 235, 231, 234, 243, 254,
-			14, 25, 22, 11, 3, 250, 246, 245, 249, 2, 8, 11, 10, 5, 0, 247, 251, 248, 250, 1, 1, 2, 3, 255, 7, 251, 250, 249, 246, 6,
-			9, 17, 21, 18, 14, 14, 14, 16, 217, 147, 162, 234, 65, 82, 67, 26, 6, 228, 208, 211, 245, 23, 42, 52, 46, 4, 203, 170, 192, 245,
-			35, 57, 45, 26, 9, 236, 231, 212, 239, 3, 20, 34, 34, 12, 244, 221, 213, 247, 5, 23, 34, 25, 13, 9, 245, 243, 196, 218, 233, 25,
-			56, 34, 23, 246, 229, 224, 245, 2, 20, 23, 29, 16, 251, 231, 236, 228, 244, 3, 16, 26, 12, 252, 0, 239, 253, 239, 10, 15, 16, 4,
-			4, 253, 245, 250, 247, 6, 9, 255, 18, 0, 246, 250, 236, 11, 14, 12, 240, 242, 250, 249, 16, 16, 2, 250, 0, 1, 13, 14, 11, 23,
-			252, 235, 212, 208, 241, 14, 34, 37, 31, 16, 254, 229, 215, 230, 244, 249, 34, 47, 61, 25, 234, 208, 221, 238, 2, 225, 248, 49, 55, 24,
-			235, 198, 230, 251, 8, 27, 20, 20, 18, 3, 238, 243, 242, 255, 1, 252, 13, 13, 0, 235, 243, 3, 254, 253, 254, 13, 15, 12, 0, 249,
-			3, 3, 254, 18, 15, 8, 254, 208, 217, 227, 254, 40, 27, 23, 15, 0, 251, 240, 242, 4, 6, 14, 16, 1, 250, 230, 228, 240, 0, 15,
-			26, 21, 8, 250, 254, 255, 252, 252, 3, 4, 17, 15, 253, 246, 219, 232, 1, 12, 12, 10, 255, 255, 253, 249, 255, 2, 13, 22, 0, 59,
-			23, 15, 0, 202, 131, 161, 242, 60, 99, 41, 39, 0, 245, 220, 219, 248, 17, 65, 81, 15, 197, 157, 184, 227, 24, 67, 64, 44, 233, 204,
-			227, 244, 241, 31, 44, 46, 20, 253, 233, 202, 206, 235, 26, 66, 33, 13, 239, 212, 218, 234, 28, 26, 24, 21, 4, 253, 236, 219, 246, 0,
-			6, 35, 34, 25, 240, 234, 230, 235, 239, 242, 13, 39, 46, 30, 0, 225, 190, 215, 12, 36, 38, 23, 253, 241, 248, 3, 0, 247, 233, 236,
-			14, 34, 32, 6, 247, 228, 235, 0, 8, 10, 0, 246, 0, 19, 16, 4, 250, 239, 237, 249, 14, 13, 9, 6, 252, 6, 3, 251, 236, 242,
-			244, 1, 27, 27, 17, 7, 243, 238, 239, 239, 252, 1, 22, 21, 16, 12, 233, 236, 246, 247, 5, 8, 3, 16, 18, 14, 4, 235, 227, 227,
-			253, 21, 26, 23, 7, 247, 240, 245, 236, 0, 6, 0, 32, 8, 16, 0, 237, 247, 232, 3, 11, 23, 6, 230, 250, 253, 9, 16, 3, 0,
-			241, 1, 253, 13, 252, 244, 23, 15, 2, 248, 230, 240, 2, 6, 20, 24, 4, 1, 244, 226, 254, 236, 8, 27, 4, 15, 9, 250, 240, 238,
-			247, 28, 30, 20, 245, 216, 223, 242, 12, 27, 31, 14, 252, 247, 239, 242, 252, 0, 32, 19, 5, 253, 232, 220, 242, 16, 30, 35, 8, 249,
-			229, 226, 250, 18, 39, 21, 235, 226, 223, 234, 26, 52, 50, 13, 223, 202, 216, 252, 37, 35, 13, 247, 238, 11, 20, 2, 236, 218, 229, 8,
-			42, 51, 24, 238, 214, 223, 250, 14, 21, 11, 255, 250, 3, 12, 6, 249, 242, 242, 255, 10, 9, 10, 3, 250, 254, 254, 0, 1, 0, 1,
-			255, 252, 1, 7, 8, 7, 254, 246, 245, 248, 3, 12, 10, 0, 255, 250, 0, 11, 2, 253, 244, 245, 2, 15, 16, 12, 245, 240, 242, 251,
-			15, 11, 7, 252, 0, 5, 6, 254, 246, 242, 253, 12, 12, 6, 249, 247, 251, 4, 7, 8, 0, 250, 254, 5, 0, 5, 3, 247, 7, 253,
-			255, 0, 242, 252, 0, 14, 16, 0, 249, 0, 253, 6, 10, 252, 251, 253, 255, 6, 7, 249, 249, 252, 1, 7, 9, 6, 244, 247, 249, 3,
-			13, 6, 125, 0, 3, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 65, 23, 53, 41, 25, 16, 13, 16,
-			8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41,
-			25, 16, 13, 16, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27,
-			0, 13, 42, 29, 18, 11, 9, 11, 6, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 136, 2, 15, 0, 32, 20, 44, 55, 14, 36, 37, 12,
-			13, 23, 241, 240, 13, 253, 5, 17, 226, 0, 245, 12, 228, 250, 230, 250, 237, 251, 22, 3, 53, 11, 2, 39, 1, 20, 40, 35, 9, 221,
-			25, 18, 17, 227, 252, 27, 247, 0, 51, 28, 29, 37, 34, 30, 48, 18, 30, 63, 55, 54, 252, 61, 66, 33, 52, 35, 69, 52, 75, 53,
-			31, 54, 72, 31, 27, 58, 12, 41, 44, 43, 245, 26, 23, 5, 237, 4, 247, 244, 21, 3, 241, 21, 3, 6, 5, 31, 7, 25, 43, 11,
-			36, 64, 37, 82, 41, 21, 47, 36, 40, 21, 51, 64, 13, 18, 59, 22, 49, 255, 17, 45, 30, 21, 23, 18, 15, 32, 25, 22, 226, 19,
-			26, 247, 32, 248, 5, 17, 41, 6, 24, 12, 234, 27, 23, 59, 249, 1, 14, 32, 43, 250, 246, 252, 42, 35, 251, 8, 45, 245, 6, 3,
-			5, 7, 40, 226, 18, 30, 0, 243, 22, 251, 3, 57, 50, 230, 235, 89, 9, 234, 62, 14, 240, 82, 68, 216, 7, 20, 16, 10, 247, 21,
-			236, 223, 59, 40, 166, 4, 245, 223, 22, 252, 17, 15, 27, 249, 32, 22, 245, 3, 46, 49, 228, 59, 41, 249, 44, 29, 25, 9, 246, 69,
-			241, 36, 25, 7, 0, 18, 47, 217, 248, 0, 241, 32, 46, 251, 238, 24, 67, 28, 230, 35, 31, 47, 13, 41, 85, 0, 14, 72, 239, 57,
-			70, 245, 16, 31, 22, 24, 32, 30, 36, 39, 75, 7, 217, 13, 61, 15, 253, 57, 66, 223, 38, 77, 36, 235, 242, 66, 60, 237, 2, 52,
-			8, 48, 25, 208, 61, 45, 234, 227, 12, 68, 202, 242, 97, 227, 252, 94, 216, 240, 50, 255, 4, 252, 41, 235, 18, 81, 235, 17, 251, 64,
-			214, 213, 80, 239, 210, 80, 33, 185, 39, 226, 37, 239, 224, 47, 255, 36, 38, 14, 62, 254, 12, 42, 23, 239, 48, 4, 16, 239, 5, 60,
-			245, 68, 221, 240, 54, 234, 212, 22, 22, 16, 253, 95, 49, 146, 20, 89, 202, 10, 102, 228, 243, 84, 26, 248, 22, 78, 235, 224, 38, 37,
-			196, 28, 75, 209, 16, 62, 234, 247, 13, 244, 56, 11, 237, 35, 58, 233, 251, 67, 36, 214, 53, 61, 0, 77, 236, 5, 58, 47, 10, 251,
-			11, 42, 0, 224, 14, 10, 21, 241, 20, 50, 28, 203, 238, 72, 60, 12, 250, 18, 53, 1, 14, 30, 238, 41, 60, 255, 253, 41, 29, 236,
-			202, 59, 73, 203, 2, 255, 187, 77, 30, 153, 253, 96, 2, 144, 24, 109, 205, 195, 66, 55, 9, 236, 192, 41, 44, 7, 203, 41, 97, 239,
-			215, 252, 69, 53, 244, 226, 85, 95, 183, 208, 72, 64, 242, 231, 245, 32, 51, 235, 10, 252, 49, 11, 161, 64, 78, 240, 248, 16, 72, 52,
-			234, 45, 31, 226, 4, 238, 3, 40, 17, 244, 254, 248, 242, 250, 239, 13, 13, 221, 9, 215, 2, 80, 10, 248, 40, 14, 38, 34, 210, 245,
-			34, 253, 7, 7, 70, 13, 215, 13, 34, 47, 230, 218, 68, 51, 8, 36, 236, 10, 50, 183, 6, 0, 187, 20, 28, 215, 234, 6, 245, 53,
-			239, 198, 36, 7, 237, 36, 34, 16, 14, 215, 4, 55, 245, 14, 91, 59, 6, 2, 19, 44, 40, 237, 72, 120, 64, 6, 39, 66, 47, 16,
-			14, 71, 57, 19, 252, 23, 13, 9, 70, 25, 200, 11, 18, 233, 230, 36, 51, 29, 65, 45, 18, 249, 8, 7, 237, 41, 26, 250, 72, 87,
-			203, 240, 85, 2, 144, 217, 11, 13, 37, 4, 41, 120, 30, 195, 248, 67, 11, 184, 215, 60, 43, 214, 27, 120, 49, 209, 223, 20, 40, 194,
-			173, 246, 53, 20, 253, 23, 249, 1, 249, 213, 3, 0, 0, 44, 0, 0, 0, 0, 126, 127, 0, 114, 117, 34, 0, 131, 117, 12, 34, 0,
-			13, 117, 0, 14, 117, 0, 115, 117, 0, 116, 117, 0, 118, 117, 55, 0, 119, 122, 0, 121, 35, 12, 0, 130, 35, 34, 0, 120, 35, 12,
-			0, 140, 35, 57, 0, 148, 35, 57, 131, 34, 0, 147, 35, 57, 131, 34, 0, 138, 35, 58, 0, 149, 35, 58, 13, 0, 153, 113, 0, 122,
-			112, 0, 155, 36, 0, 143, 112, 12, 34, 0, 141, 112, 12, 118, 0, 124, 125, 0, 113, 126, 0, 132, 37, 12, 0, 144, 37, 34, 0, 145,
-			37, 12, 34, 0, 134, 127, 0, 133, 127, 12, 0, 152, 39, 0, 135, 127, 34, 0, 136, 127, 34, 0, 142, 127, 57, 0, 139, 128, 0, 154,
-			116, 0, 117, 40, 0, 137, 129, 0, 146, 40, 34, 0, 129, 142, 0, 150, 37, 34, 0, 151, 117, 34, 0, 44, 34, 0, 108, 47, 0, 58,
-			133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 5, 0, 1, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28,
-			50, 38, 37, 37, 65, 40, 34, 23, 9, 5, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13,
-			33, 15, 96, 28, 40, 70, 50, 50, 89, 54, 46, 31, 13, 7, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 175, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 63, 1, 160, 2, 124, 6,
-			64, 10, 139, 13, 33, 15, 96, 28, 50, 57, 45, 45, 80, 49, 42, 28, 12, 6, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70,
-			130, 59, 185, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 63, 1,
-			160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 40, 45, 40, 40, 71, 43, 37, 25, 10, 5, 221, 200, 155, 120, 120, 120, 150, 245,
-			150, 44, 45, 70, 130, 59, 185, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 0, 22, 28, 28, 49, 30, 26, 17, 7, 4, 221, 200, 155, 120,
-			120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 185, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 141, 0, 97, 1, 68, 7, 134, 9, 242, 12, 208, 14, 66, 26, 45, 39, 21, 58, 49, 47,
-			48, 27, 11, 7, 167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 141, 0, 97, 1, 68, 7, 134, 9, 242, 12, 208, 14, 66, 26, 70, 75,
-			29, 81, 68, 66, 66, 38, 15, 10, 167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 141, 0, 97, 1, 68, 7, 134, 9, 242, 12, 208, 14,
-			66, 26, 60, 61, 26, 73, 61, 59, 60, 34, 14, 9, 167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 141, 0, 97, 1, 68, 7, 134, 9,
-			242, 12, 208, 14, 66, 26, 0, 34, 20, 55, 46, 45, 45, 26, 10, 7, 167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 215, 0, 5, 0, 1, 0,
-			32, 1, 92, 3, 192, 5, 102, 10, 158, 13, 27, 15, 118, 27, 45, 35, 30, 56, 58, 37, 34, 23, 6, 4, 209, 165, 164, 130, 120, 120,
-			167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 32, 1, 92, 3, 192, 5, 102, 10, 158, 13, 27, 15, 118, 27, 60, 74, 44, 82, 84, 54, 49, 34, 9, 6, 209, 165,
-			164, 130, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 56, 1, 207, 2, 86, 6, 216, 9, 152, 13, 112, 15, 220, 28, 70, 68, 39, 69, 75, 57, 44, 34,
-			12, 7, 255, 144, 161, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 6, 1, 50, 2, 45, 7, 223, 9, 77, 13, 225, 14, 189, 28, 40, 48, 32, 52,
-			60, 51, 42, 35, 11, 7, 228, 126, 148, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 0, 1, 32, 2, 70, 7, 225, 9, 68, 13, 208, 14, 185, 28,
-			0, 31, 25, 41, 48, 41, 34, 29, 9, 6, 224, 124, 146, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 105, 0, 4, 0, 1, 0, 116, 0, 13, 2, 161, 5,
-			232, 8, 188, 12, 116, 14, 96, 27, 30, 16, 19, 37, 29, 17, 15, 15, 5, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 116, 0,
-			13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 45, 19, 22, 41, 33, 19, 17, 17, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 30, 19, 22, 41, 33, 19, 17, 17, 6, 4, 167, 150, 135, 120,
-			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 0, 13, 16, 31, 34, 21, 22, 17, 8, 5,
-			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 144, 0, 224, 1, 32, 3, 140, 10, 228, 12, 120, 15, 88, 27, 45, 51,
-			23, 55, 59, 35, 32, 18, 13, 5, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 224, 1, 32, 3, 140, 10, 228, 12, 120, 15,
-			88, 27, 60, 94, 32, 75, 80, 47, 44, 25, 18, 8, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 144, 0, 224, 1, 32, 3, 140, 10,
-			228, 12, 120, 15, 88, 27, 60, 75, 29, 67, 71, 42, 39, 22, 16, 7, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 144, 0, 224, 1,
-			32, 3, 140, 10, 228, 12, 120, 15, 88, 27, 0, 44, 22, 51, 54, 32, 30, 17, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 95, 0, 3, 0, 5, 0,
+			63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 80, 45, 45, 48, 68, 35, 38, 25, 11, 5, 221, 135, 155, 120, 120, 120,
+			150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 37, 0, 205, 0, 164, 2, 200, 4, 44, 10, 41, 12, 125, 14, 244, 27, 15, 17, 37, 31, 23, 20, 18, 13, 4, 0, 154, 139,
+			127, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12,
+			4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 95, 0, 3, 0, 5, 0, 184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27,
+			80, 46, 31, 46, 57, 25, 36, 20, 10, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11,
+			96, 14, 224, 27, 15, 11, 34, 27, 13, 17, 13, 10, 3, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 37, 0, 184, 0, 160, 2, 176, 4,
+			40, 10, 234, 11, 96, 14, 224, 27, 0, 18, 40, 32, 16, 20, 16, 12, 4, 0, 142, 140, 122, 120, 120, 120, 172, 110, 152, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 90, 0, 2, 0,
+			17, 0, 150, 0, 60, 2, 41, 5, 166, 9, 83, 12, 106, 14, 160, 27, 90, 13, 28, 26, 29, 22, 17, 19, 9, 4, 155, 145, 128, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0,
+			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 65, 0, 2, 0, 17, 0, 236, 0, 226, 2, 236, 4, 90, 10, 173, 12, 144, 14, 0, 28, 65, 16,
+			26, 32, 28, 23, 16, 16, 7, 3, 180, 147, 113, 120, 120, 120, 247, 170, 165, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
+			224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 70, 0, 2, 0, 1, 0, 172, 0, 68, 2,
+			59, 6, 10, 10, 123, 12, 99, 14, 48, 28, 70, 32, 35, 50, 44, 46, 36, 26, 9, 4, 163, 126, 125, 120, 120, 120, 185, 117, 127, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0,
+			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
+			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 50, 0, 2, 0, 17, 0, 178, 0, 214, 1, 192, 6, 255, 10, 173, 12, 115, 15, 133, 27, 50, 21, 18, 40, 33, 35, 33, 17,
+			10, 4, 162, 130, 127, 126, 131, 140, 187, 125, 137, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32,
+			16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 40, 0, 2, 0, 17, 0, 172, 0, 70, 2, 26, 4, 0, 10, 199, 11,
+			119, 14, 128, 27, 40, 25, 29, 40, 46, 33, 28, 15, 10, 3, 153, 137, 136, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4,
+			40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 50, 0, 2, 0,
+			17, 0, 180, 0, 214, 1, 242, 3, 176, 9, 123, 12, 206, 14, 56, 27, 50, 14, 14, 37, 23, 18, 15, 19, 7, 3, 160, 132, 112, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 17, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0,
+			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15,
+			40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15,
+			224, 28, 0, 34, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2,
+			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			128, 0, 40, 2, 161, 5, 96, 9, 188, 12, 116, 14, 96, 27, 0, 36, 28, 51, 63, 35, 32, 28, 14, 8, 167, 150, 135, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12,
+			4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 0, 1, 112, 2, 192, 3, 64, 11, 48, 12, 36, 14, 15, 28, 0, 42, 25, 48,
+			48, 20, 40, 23, 6, 5, 186, 175, 135, 120, 120, 120, 105, 185, 148, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11,
+			96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 63, 1, 182, 2, 80, 5,
+			64, 10, 139, 13, 33, 15, 96, 28, 0, 45, 45, 48, 68, 35, 38, 25, 11, 5, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0,
+			37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120,
+			120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 0, 67, 24, 76, 51, 44, 48, 44, 12, 16,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15,
+			40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 192, 0, 179, 1, 92, 3, 252, 8, 184, 11, 60, 15,
+			32, 28, 0, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82, 90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 75, 0, 2, 0, 37, 0, 184, 0, 160, 2,
+			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			184, 0, 136, 1, 188, 2, 160, 10, 88, 12, 176, 14, 159, 27, 0, 46, 31, 46, 57, 25, 36, 20, 10, 5, 177, 100, 131, 120, 120, 120,
+			105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 100, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 100, 15, 40, 32, 16, 20, 16, 12,
+			4, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 21, 25, 39,
+			40, 37, 30, 20, 7, 6, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11,
+			96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 112, 0, 13, 2, 161, 5,
+			36, 9, 188, 12, 116, 14, 96, 27, 0, 60, 34, 66, 80, 45, 47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 75, 0, 2, 0,
+			37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120,
+			120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 53, 31, 69, 57, 42, 31, 19, 9, 4,
+			217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15,
+			40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 160, 0, 232, 1, 198, 7, 236, 9, 12, 13, 101, 14,
+			128, 28, 0, 41, 27, 56, 59, 58, 46, 34, 11, 7, 185, 112, 127, 120, 120, 120, 185, 117, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 100, 0, 2, 0, 37, 0, 184, 0, 160, 2,
+			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 100, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16, 42, 27, 0, 27, 6, 49, 41, 38, 41, 19, 12, 6, 182, 120, 133, 133, 142, 161,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12,
+			4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 0, 35, 17, 52,
+			37, 27, 30, 22, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 74, 0, 2, 0, 37, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11,
+			96, 14, 224, 27, 75, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 52, 3,
+			56, 9, 12, 13, 60, 15, 144, 26, 0, 35, 6, 61, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 12, 0, 2, 0,
+			1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 12, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120,
+			120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0,
+			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 60, 0, 3, 0, 5, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 30, 4,
+			20, 15, 12, 15, 12, 16, 5, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14,
+			224, 27, 30, 4, 17, 18, 11, 14, 11, 15, 4, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 160, 2, 176, 4, 40, 10,
+			234, 11, 96, 14, 224, 27, 0, 4, 14, 20, 10, 13, 10, 14, 4, 0, 150, 175, 175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 55, 0, 2, 0, 5, 0,
+			200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 55, 5, 16, 23, 12, 15, 12, 16, 5, 0, 150, 175, 175, 120, 120, 120,
+			100, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 1, 0, 200, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 5, 16, 23, 12, 15, 12, 16, 5, 0, 150, 175,
+			175, 120, 120, 120, 100, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 90, 0, 2, 0, 17, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 90, 21, 28, 36,
+			46, 24, 22, 28, 14, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
+			0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 65, 0, 2, 0, 17, 0, 32, 1, 88, 3, 40, 5,
+			140, 10, 112, 13, 191, 14, 32, 28, 65, 35, 32, 53, 48, 31, 24, 25, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75,
+			130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0,
+			108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130,
+			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			60, 0, 2, 0, 1, 0, 64, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 60, 31, 31, 43, 49, 39, 30, 38, 12, 7,
+			244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25,
+			15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 50, 0, 2, 0, 17, 0, 172, 0, 64, 1, 207, 8, 214, 11, 112, 13, 134, 16,
+			42, 27, 50, 47, 8, 65, 54, 50, 54, 25, 16, 8, 182, 120, 133, 133, 142, 161, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10,
+			234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 40, 0, 2, 0, 17, 0,
+			160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 40, 87, 34, 66, 84, 51, 46, 23, 17, 6, 165, 135, 150, 120, 120, 120,
+			165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175,
+			150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 50, 0, 2, 0, 17, 0, 176, 0, 64, 1, 52, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 36, 6, 62,
+			37, 21, 21, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
+			0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 40, 0, 2, 0, 17, 0, 132, 0, 24, 1, 184, 6,
+			36, 9, 228, 12, 96, 14, 100, 25, 40, 43, 19, 60, 40, 35, 38, 35, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0, 184, 0,
+			108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130,
+			187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			47, 0, 3, 0, 37, 0, 184, 0, 108, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 27, 6, 28, 16, 12, 20, 12, 10, 5, 0,
+			70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 37, 0, 172, 0, 134, 2, 176, 4, 80, 10, 234, 11, 96, 14, 224, 27, 20, 9, 34, 12, 12, 23,
+			10, 9, 6, 0, 106, 157, 136, 135, 135, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 160, 0, 160, 2, 176, 4, 120, 10, 234, 11, 96, 14, 224, 27, 0, 6,
+			27, 6, 9, 18, 6, 6, 6, 0, 142, 140, 122, 120, 120, 120, 172, 110, 152, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 45, 0, 2, 0, 37, 0, 184, 0, 108, 2, 176, 4, 40, 10,
+			234, 11, 96, 14, 224, 27, 45, 10, 35, 20, 15, 25, 15, 12, 5, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 184, 0, 108, 2,
+			176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 4, 22, 13, 9, 16, 9, 7, 3, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44,
+			45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 47, 0,
+			4, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 7, 5, 27, 12, 20, 10, 4, 4, 2, 0, 70, 175,
+			150, 150, 150, 120, 85, 130, 137, 44, 35, 50, 60, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 20, 9, 32, 21, 21, 13, 6, 5,
+			2, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 20, 11, 35, 26,
+			18, 16, 10, 8, 2, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27,
+			0, 12, 37, 27, 19, 17, 11, 9, 3, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 4, 0, 1, 0, 160, 0, 160, 2, 76, 4,
+			40, 10, 234, 11, 96, 14, 224, 27, 5, 21, 47, 38, 19, 24, 15, 11, 4, 0, 70, 175, 150, 150, 150, 120, 85, 130, 187, 44, 45, 70,
+			130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 172, 0,
+			160, 2, 126, 4, 40, 10, 234, 11, 96, 14, 224, 27, 35, 20, 42, 34, 17, 21, 15, 11, 3, 0, 142, 140, 122, 120, 120, 120, 172, 110,
+			152, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 5, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120,
+			120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0,
+			70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 2, 0, 5, 0, 148, 0, 120, 1, 100, 5, 84, 11, 32, 13, 135, 15, 224, 28, 45, 35,
+			32, 58, 36, 40, 51, 27, 10, 0, 102, 105, 127, 120, 120, 120, 102, 90, 127, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 124, 0, 209, 1, 112, 3, 84, 11, 68, 12, 191, 14,
+			160, 26, 0, 66, 26, 78, 70, 48, 48, 30, 17, 0, 120, 120, 120, 120, 120, 120, 75, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 0, 0, 2, 0, 5, 0, 98, 0, 106, 1,
+			230, 5, 60, 10, 12, 13, 37, 15, 114, 26, 75, 20, 14, 45, 29, 19, 17, 16, 9, 8, 155, 112, 127, 120, 120, 120, 160, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 17, 0,
+			64, 0, 189, 1, 20, 5, 84, 11, 52, 13, 235, 15, 128, 27, 0, 18, 16, 48, 32, 17, 11, 10, 7, 0, 150, 135, 120, 120, 120, 120,
+			120, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 140, 0, 3, 0, 1, 0, 115, 0, 200, 1, 180, 5, 122, 9, 200, 12, 179, 14, 96, 27, 50, 42, 26, 54, 67, 41, 43, 34,
+			16, 6, 167, 134, 130, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 115, 0, 200, 1, 180, 5, 122, 9, 200, 12, 179, 14, 96, 27, 90, 74, 35, 72,
+			89, 54, 57, 44, 22, 8, 167, 134, 130, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 115, 0, 200, 1, 180, 5, 122, 9, 200, 12, 179, 14, 96, 27,
+			0, 38, 25, 51, 64, 39, 41, 32, 16, 6, 167, 134, 130, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 175, 0, 4, 0, 1, 0, 32, 1, 88, 3, 40, 5,
+			140, 10, 112, 13, 191, 14, 32, 28, 45, 53, 31, 69, 57, 41, 31, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75,
+			130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 32, 1,
+			88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 50, 96, 42, 93, 77, 56, 42, 26, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170,
+			165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 80, 78, 38, 84, 69, 51, 37, 24, 11, 5, 217, 155, 105, 120,
+			120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 32, 1, 88, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 43, 28, 62, 52, 37, 28, 17, 8, 4,
+			217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 4, 0, 33, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 52, 21,
+			24, 39, 39, 36, 29, 19, 7, 6, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15,
+			32, 28, 75, 29, 29, 46, 47, 43, 35, 23, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10,
+			92, 13, 10, 15, 32, 28, 70, 23, 26, 41, 42, 38, 31, 21, 7, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 57,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1,
+			174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 25, 27, 43, 44, 40, 33, 22, 8, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44,
+			45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 220, 0,
+			5, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 44, 11, 61, 43, 32, 35, 26, 14, 6, 165, 126,
+			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 90, 75, 15, 79, 57, 41, 46, 34,
+			19, 8, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26, 50, 60, 13, 71,
+			51, 37, 41, 30, 17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12, 176, 14, 244, 26,
+			30, 50, 12, 65, 46, 34, 38, 28, 15, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 153, 0, 156, 1, 248, 2, 120, 10, 148, 12,
+			176, 14, 244, 26, 0, 29, 9, 50, 35, 26, 29, 21, 11, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 160, 0,
+			32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 45, 41, 23, 45, 58, 35, 32, 16, 11, 4, 165, 135, 150, 120, 120, 120, 165, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 50, 75, 32, 61, 78, 47, 43, 21, 16, 6, 165, 135, 150, 120,
+			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 80, 61, 29, 55, 70, 43, 39, 19, 14, 5,
+			165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 160, 0, 32, 2, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 0, 34, 21, 41, 52, 32,
+			29, 14, 10, 4, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 71, 0, 3, 0, 5, 0, 192, 0, 179, 1, 92, 3, 252, 8, 184, 11, 60, 15,
+			32, 28, 26, 43, 19, 81, 28, 14, 11, 8, 7, 0, 120, 82, 90, 120, 120, 120, 75, 82, 90, 44, 45, 70, 130, 53, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 208, 0, 199, 1, 132, 3, 16, 9,
+			184, 11, 60, 15, 32, 28, 45, 62, 31, 81, 61, 30, 24, 15, 8, 0, 120, 120, 150, 120, 120, 120, 75, 90, 105, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 32, 1, 88, 3,
+			40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 0, 53, 31, 69, 57, 42, 31, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44,
+			65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 180, 0,
+			5, 0, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 50, 37, 40, 43, 61, 31, 35, 23, 10, 5, 221, 135,
+			155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 40, 67, 55, 59, 82, 43, 47, 31,
+			13, 7, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28, 50, 54, 49, 53,
+			74, 38, 42, 28, 12, 6, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13, 33, 15, 96, 28,
+			40, 48, 46, 50, 70, 36, 40, 26, 11, 6, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 63, 1, 182, 2, 80, 5, 64, 10, 139, 13,
+			33, 15, 96, 28, 0, 21, 30, 33, 46, 24, 26, 17, 7, 4, 221, 135, 155, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 200, 0, 5, 0, 1, 0, 184, 0,
+			88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 37, 28, 41, 51, 15, 25, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 58, 35, 51, 64, 19, 32, 22, 12, 6, 177, 100, 131, 120,
+			120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 58, 35, 51, 64, 19, 32, 22, 12, 6,
+			177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 50, 51, 33, 48, 61, 18,
+			30, 21, 11, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 88, 1, 188, 2, 60, 10, 88, 12, 176, 14, 159, 27, 0, 37,
+			28, 41, 51, 15, 25, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 58, 0, 3, 0, 5, 0, 116, 0, 200, 0, 26, 4, 102, 8,
+			232, 13, 24, 16, 124, 21, 48, 10, 21, 12, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 55, 65, 50,
+			0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0, 216, 0,
+			251, 4, 202, 8, 102, 13, 24, 16, 124, 21, 10, 12, 20, 16, 10, 6, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
+			30, 55, 65, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
+			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 35, 0, 2, 0, 5, 0, 116, 0, 232, 0, 252, 3, 60, 10, 232, 13, 24, 16, 124, 21, 35, 8, 16, 14, 4, 2, 2, 2,
+			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 4, 22, 17,
+			8, 11, 8, 6, 2, 0, 70, 175, 150, 120, 120, 120, 85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 58, 0, 3, 0, 5, 0, 116, 0, 208, 0, 104, 6, 40, 10, 232, 13,
+			24, 16, 124, 21, 48, 7, 12, 16, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 50, 0, 0,
+			0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 126, 0, 212, 0, 34, 6,
+			171, 9, 102, 13, 24, 16, 124, 21, 10, 10, 16, 18, 10, 6, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50,
+			85, 50, 0, 0, 0, 0, 60, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0,
+			216, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 15, 20, 20, 12, 8, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
+			187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			58, 0, 3, 0, 5, 0, 116, 0, 200, 0, 208, 7, 34, 11, 232, 13, 24, 16, 124, 21, 48, 11, 22, 13, 9, 4, 4, 4, 0, 0,
+			200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 75, 140, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0, 200, 0, 214, 6, 40, 10, 102, 13, 24, 16, 124, 21, 10, 12, 20, 16, 10, 6,
+			4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 75, 140, 48, 0, 0, 0, 0, 60, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 200, 0, 220, 5, 46, 9, 228, 12, 24, 16, 124, 21, 0, 12,
+			18, 18, 10, 7, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 35, 0, 3, 0, 5, 0, 116, 0, 200, 0, 198, 7, 34, 11,
+			232, 13, 24, 16, 124, 21, 20, 10, 19, 19, 7, 3, 3, 3, 0, 0, 100, 150, 150, 150, 150, 150, 100, 150, 150, 44, 30, 75, 140, 56,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 150, 0, 180, 1,
+			59, 6, 165, 10, 233, 12, 60, 15, 174, 24, 15, 11, 28, 24, 11, 11, 9, 7, 1, 0, 85, 162, 150, 135, 135, 135, 100, 150, 150, 44,
+			30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			184, 0, 160, 2, 176, 4, 40, 10, 234, 11, 96, 14, 224, 27, 0, 15, 40, 32, 16, 20, 16, 12, 4, 0, 70, 175, 150, 120, 120, 120,
+			85, 130, 187, 44, 45, 70, 130, 53, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 188, 2, 51, 0, 255, 0, 0, 1, 0, 2, 2, 5, 3, 6, 5, 8, 5, 8, 2, 0, 197, 190, 230, 30, 57, 50, 29, 11,
+			254, 227, 221, 233, 4, 27, 27, 14, 254, 235, 231, 234, 243, 254, 14, 25, 22, 11, 3, 250, 246, 245, 249, 2, 8, 11, 10, 5, 0, 247,
+			251, 248, 250, 1, 1, 2, 3, 255, 7, 251, 250, 249, 246, 6, 9, 17, 21, 18, 14, 14, 14, 16, 217, 147, 162, 234, 65, 82, 67, 26,
+			6, 228, 208, 211, 245, 23, 42, 52, 46, 4, 203, 170, 192, 245, 35, 57, 45, 26, 9, 236, 231, 212, 239, 3, 20, 34, 34, 12, 244, 221,
+			213, 247, 5, 23, 34, 25, 13, 9, 245, 243, 196, 218, 233, 25, 56, 34, 23, 246, 229, 224, 245, 2, 20, 23, 29, 16, 251, 231, 236, 228,
+			244, 3, 16, 26, 12, 252, 0, 239, 253, 239, 10, 15, 16, 4, 4, 253, 245, 250, 247, 6, 9, 255, 18, 0, 246, 250, 236, 11, 14, 12,
+			240, 242, 250, 249, 16, 16, 2, 250, 0, 1, 13, 14, 11, 23, 252, 235, 212, 208, 241, 14, 34, 37, 31, 16, 254, 229, 215, 230, 244, 249,
+			34, 47, 61, 25, 234, 208, 221, 238, 2, 225, 248, 49, 55, 24, 235, 198, 230, 251, 8, 27, 20, 20, 18, 3, 238, 243, 242, 255, 1, 252,
+			13, 13, 0, 235, 243, 3, 254, 253, 254, 13, 15, 12, 0, 249, 3, 3, 254, 18, 15, 8, 254, 208, 217, 227, 254, 40, 27, 23, 15, 0,
+			251, 240, 242, 4, 6, 14, 16, 1, 250, 230, 228, 240, 0, 15, 26, 21, 8, 250, 254, 255, 252, 252, 3, 4, 17, 15, 253, 246, 219, 232,
+			1, 12, 12, 10, 255, 255, 253, 249, 255, 2, 13, 22, 0, 59, 23, 15, 0, 202, 131, 161, 242, 60, 99, 41, 39, 0, 245, 220, 219, 248,
+			17, 65, 81, 15, 197, 157, 184, 227, 24, 67, 64, 44, 233, 204, 227, 244, 241, 31, 44, 46, 20, 253, 233, 202, 206, 235, 26, 66, 33, 13,
+			239, 212, 218, 234, 28, 26, 24, 21, 4, 253, 236, 219, 246, 0, 6, 35, 34, 25, 240, 234, 230, 235, 239, 242, 13, 39, 46, 30, 0, 225,
+			190, 215, 12, 36, 38, 23, 253, 241, 248, 3, 0, 247, 233, 236, 14, 34, 32, 6, 247, 228, 235, 0, 8, 10, 0, 246, 0, 19, 16, 4,
+			250, 239, 237, 249, 14, 13, 9, 6, 252, 6, 3, 251, 236, 242, 244, 1, 27, 27, 17, 7, 243, 238, 239, 239, 252, 1, 22, 21, 16, 12,
+			233, 236, 246, 247, 5, 8, 3, 16, 18, 14, 4, 235, 227, 227, 253, 21, 26, 23, 7, 247, 240, 245, 236, 0, 6, 0, 32, 8, 16, 0,
+			237, 247, 232, 3, 11, 23, 6, 230, 250, 253, 9, 16, 3, 0, 241, 1, 253, 13, 252, 244, 23, 15, 2, 248, 230, 240, 2, 6, 20, 24,
+			4, 1, 244, 226, 254, 236, 8, 27, 4, 15, 9, 250, 240, 238, 247, 28, 30, 20, 245, 216, 223, 242, 12, 27, 31, 14, 252, 247, 239, 242,
+			252, 0, 32, 19, 5, 253, 232, 220, 242, 16, 30, 35, 8, 249, 229, 226, 250, 18, 39, 21, 235, 226, 223, 234, 26, 52, 50, 13, 223, 202,
+			216, 252, 37, 35, 13, 247, 238, 11, 20, 2, 236, 218, 229, 8, 42, 51, 24, 238, 214, 223, 250, 14, 21, 11, 255, 250, 3, 12, 6, 249,
+			242, 242, 255, 10, 9, 10, 3, 250, 254, 254, 0, 1, 0, 1, 255, 252, 1, 7, 8, 7, 254, 246, 245, 248, 3, 12, 10, 0, 255, 250,
+			0, 11, 2, 253, 244, 245, 2, 15, 16, 12, 245, 240, 242, 251, 15, 11, 7, 252, 0, 5, 6, 254, 246, 242, 253, 12, 12, 6, 249, 247,
+			251, 4, 7, 8, 0, 250, 254, 5, 0, 5, 3, 247, 7, 253, 255, 0, 242, 252, 0, 14, 16, 0, 249, 0, 253, 6, 10, 252, 251, 253,
+			255, 6, 7, 249, 249, 252, 1, 7, 9, 6, 244, 247, 249, 3, 13, 6, 125, 0, 3, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9,
+			172, 13, 160, 15, 0, 27, 65, 23, 53, 41, 25, 16, 13, 16, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 236, 0, 124, 1,
+			12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 60, 23, 53, 41, 25, 16, 13, 16, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 13, 42, 29, 18, 11, 9, 11, 6, 0, 132, 60, 90, 120, 120, 120,
+			42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 136, 2, 15, 0, 32, 20, 44, 55, 14, 36, 37, 12, 13, 23, 241, 240, 13, 253, 5, 17, 226, 0, 245, 12, 228, 250, 230, 250,
+			237, 251, 22, 3, 53, 11, 2, 39, 1, 20, 40, 35, 9, 221, 25, 18, 17, 227, 252, 27, 247, 0, 51, 28, 29, 37, 34, 30, 48, 18,
+			30, 63, 55, 54, 252, 61, 66, 33, 52, 35, 69, 52, 75, 53, 31, 54, 72, 31, 27, 58, 12, 41, 44, 43, 245, 26, 23, 5, 237, 4,
+			247, 244, 21, 3, 241, 21, 3, 6, 5, 31, 7, 25, 43, 11, 36, 64, 37, 82, 41, 21, 47, 36, 40, 21, 51, 64, 13, 18, 59, 22,
+			49, 255, 17, 45, 30, 21, 23, 18, 15, 32, 25, 22, 226, 19, 26, 247, 32, 248, 5, 17, 41, 6, 24, 12, 234, 27, 23, 59, 249, 1,
+			14, 32, 43, 250, 246, 252, 42, 35, 251, 8, 45, 245, 6, 3, 5, 7, 40, 226, 18, 30, 0, 243, 22, 251, 3, 57, 50, 230, 235, 89,
+			9, 234, 62, 14, 240, 82, 68, 216, 7, 20, 16, 10, 247, 21, 236, 223, 59, 40, 166, 4, 245, 223, 22, 252, 17, 15, 27, 249, 32, 22,
+			245, 3, 46, 49, 228, 59, 41, 249, 44, 29, 25, 9, 246, 69, 241, 36, 25, 7, 0, 18, 47, 217, 248, 0, 241, 32, 46, 251, 238, 24,
+			67, 28, 230, 35, 31, 47, 13, 41, 85, 0, 14, 72, 239, 57, 70, 245, 16, 31, 22, 24, 32, 30, 36, 39, 75, 7, 217, 13, 61, 15,
+			253, 57, 66, 223, 38, 77, 36, 235, 242, 66, 60, 237, 2, 52, 8, 48, 25, 208, 61, 45, 234, 227, 12, 68, 202, 242, 97, 227, 252, 94,
+			216, 240, 50, 255, 4, 252, 41, 235, 18, 81, 235, 17, 251, 64, 214, 213, 80, 239, 210, 80, 33, 185, 39, 226, 37, 239, 224, 47, 255, 36,
+			38, 14, 62, 254, 12, 42, 23, 239, 48, 4, 16, 239, 5, 60, 245, 68, 221, 240, 54, 234, 212, 22, 22, 16, 253, 95, 49, 146, 20, 89,
+			202, 10, 102, 228, 243, 84, 26, 248, 22, 78, 235, 224, 38, 37, 196, 28, 75, 209, 16, 62, 234, 247, 13, 244, 56, 11, 237, 35, 58, 233,
+			251, 67, 36, 214, 53, 61, 0, 77, 236, 5, 58, 47, 10, 251, 11, 42, 0, 224, 14, 10, 21, 241, 20, 50, 28, 203, 238, 72, 60, 12,
+			250, 18, 53, 1, 14, 30, 238, 41, 60, 255, 253, 41, 29, 236, 202, 59, 73, 203, 2, 255, 187, 77, 30, 153, 253, 96, 2, 144, 24, 109,
+			205, 195, 66, 55, 9, 236, 192, 41, 44, 7, 203, 41, 97, 239, 215, 252, 69, 53, 244, 226, 85, 95, 183, 208, 72, 64, 242, 231, 245, 32,
+			51, 235, 10, 252, 49, 11, 161, 64, 78, 240, 248, 16, 72, 52, 234, 45, 31, 226, 4, 238, 3, 40, 17, 244, 254, 248, 242, 250, 239, 13,
+			13, 221, 9, 215, 2, 80, 10, 248, 40, 14, 38, 34, 210, 245, 34, 253, 7, 7, 70, 13, 215, 13, 34, 47, 230, 218, 68, 51, 8, 36,
+			236, 10, 50, 183, 6, 0, 187, 20, 28, 215, 234, 6, 245, 53, 239, 198, 36, 7, 237, 36, 34, 16, 14, 215, 4, 55, 245, 14, 91, 59,
+			6, 2, 19, 44, 40, 237, 72, 120, 64, 6, 39, 66, 47, 16, 14, 71, 57, 19, 252, 23, 13, 9, 70, 25, 200, 11, 18, 233, 230, 36,
+			51, 29, 65, 45, 18, 249, 8, 7, 237, 41, 26, 250, 72, 87, 203, 240, 85, 2, 144, 217, 11, 13, 37, 4, 41, 120, 30, 195, 248, 67,
+			11, 184, 215, 60, 43, 214, 27, 120, 49, 209, 223, 20, 40, 194, 173, 246, 53, 20, 253, 23, 249, 1, 249, 213, 3, 0, 0, 44, 0, 0,
+			0, 0, 124, 127, 0, 114, 117, 34, 0, 128, 117, 12, 34, 0, 13, 117, 0, 14, 117, 0, 115, 117, 0, 116, 117, 0, 118, 117, 55, 0,
+			119, 122, 0, 126, 35, 12, 0, 127, 35, 34, 0, 120, 35, 12, 0, 137, 35, 57, 0, 145, 35, 57, 131, 34, 0, 144, 35, 57, 131, 34,
+			0, 135, 35, 58, 0, 146, 35, 58, 13, 0, 150, 113, 0, 121, 112, 0, 152, 36, 0, 140, 112, 12, 34, 0, 138, 112, 12, 118, 0, 122,
+			125, 0, 113, 126, 0, 129, 37, 12, 0, 141, 37, 34, 0, 142, 37, 12, 34, 0, 131, 127, 0, 130, 127, 12, 0, 149, 39, 0, 132, 127,
+			34, 0, 133, 127, 34, 0, 139, 127, 57, 0, 136, 128, 0, 151, 116, 0, 117, 40, 0, 134, 129, 0, 143, 40, 34, 0, 125, 142, 0, 147,
+			37, 34, 0, 148, 117, 34, 0, 44, 34, 0, 108, 47, 0, 58, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 5, 0, 1, 0,
+			63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 50, 38, 37, 37, 66, 41, 35, 23, 10, 5, 221, 200, 155, 120, 120, 120,
+			150, 245, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 40, 71, 50, 50, 89, 55, 47, 31, 13, 7, 221, 200,
+			155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 50, 57, 45, 45, 80, 49, 42, 28,
+			12, 6, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28, 40, 45, 40, 40,
+			71, 44, 37, 25, 10, 6, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 63, 1, 160, 2, 124, 6, 64, 10, 139, 13, 33, 15, 96, 28,
+			0, 22, 28, 28, 50, 31, 26, 17, 7, 4, 221, 200, 155, 120, 120, 120, 150, 245, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 141, 0, 97, 1, 68, 7,
+			134, 9, 242, 12, 208, 14, 66, 26, 45, 39, 21, 58, 49, 47, 48, 27, 11, 7, 167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 141, 0,
+			97, 1, 68, 7, 134, 9, 242, 12, 208, 14, 66, 26, 70, 75, 29, 81, 68, 66, 66, 38, 15, 10, 167, 100, 124, 120, 120, 120, 167, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 141, 0, 97, 1, 68, 7, 134, 9, 242, 12, 208, 14, 66, 26, 60, 61, 26, 73, 61, 59, 60, 34, 14, 9, 167, 100, 124, 120,
+			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 141, 0, 97, 1, 68, 7, 134, 9, 242, 12, 208, 14, 66, 26, 0, 34, 20, 55, 46, 45, 45, 26, 10, 7,
+			167, 100, 124, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 215, 0, 5, 0, 1, 0, 32, 1, 92, 3, 192, 5, 102, 10, 158, 13, 27, 15, 118, 27, 45, 35,
+			30, 56, 58, 37, 34, 23, 6, 4, 209, 165, 164, 130, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 32, 1, 92, 3, 192, 5, 102, 10, 158, 13, 27, 15,
+			118, 27, 60, 74, 44, 82, 84, 54, 49, 34, 9, 6, 209, 165, 164, 130, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 56, 1, 207, 2, 86, 6, 216, 9,
+			152, 13, 112, 15, 220, 28, 70, 68, 39, 69, 75, 57, 44, 34, 12, 7, 255, 144, 161, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 6, 1, 50, 2,
+			45, 7, 223, 9, 77, 13, 225, 14, 189, 28, 40, 48, 32, 52, 60, 51, 42, 35, 11, 7, 228, 126, 148, 120, 120, 120, 237, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			0, 1, 32, 2, 70, 7, 225, 9, 68, 13, 208, 14, 185, 28, 0, 31, 25, 41, 48, 41, 34, 29, 9, 6, 224, 124, 146, 120, 120, 120,
+			237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 105, 0, 4, 0, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 30, 16, 19, 37, 29, 17, 15, 15,
+			5, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 45, 19, 22, 41,
+			33, 19, 17, 17, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27,
+			30, 19, 22, 41, 33, 19, 17, 17, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12,
+			116, 14, 96, 27, 0, 13, 16, 31, 34, 21, 22, 17, 8, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 128, 0,
+			32, 2, 196, 4, 216, 9, 188, 12, 20, 15, 96, 27, 45, 45, 33, 61, 58, 39, 36, 33, 17, 6, 167, 135, 135, 120, 120, 120, 197, 135,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 128, 0, 32, 2, 196, 4, 216, 9, 188, 12, 20, 15, 96, 27, 60, 71, 42, 76, 72, 49, 46, 42, 22, 7, 167, 135, 135, 120,
+			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 128, 0, 32, 2, 196, 4, 216, 9, 188, 12, 20, 15, 96, 27, 70, 57, 38, 69, 65, 44, 41, 38, 19, 6,
+			167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 128, 0, 32, 2, 236, 4, 216, 9, 188, 12, 20, 15, 96, 27, 0, 41, 32, 58, 55, 37,
+			35, 32, 16, 5, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 156, 0, 40, 1, 172, 8, 64, 11, 192, 13, 120, 15,
+			144, 27, 45, 40, 11, 59, 53, 50, 42, 28, 11, 7, 176, 106, 155, 120, 120, 120, 185, 107, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 156, 0, 40, 1, 172, 8, 64, 11,
+			192, 13, 120, 15, 144, 27, 80, 74, 16, 81, 73, 68, 57, 38, 15, 9, 176, 106, 155, 120, 120, 120, 185, 107, 155, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 156, 0, 36, 1,
+			196, 8, 76, 11, 216, 13, 144, 15, 144, 27, 50, 63, 14, 75, 67, 63, 52, 35, 14, 9, 176, 106, 155, 120, 120, 120, 185, 107, 155, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			156, 0, 32, 1, 212, 8, 84, 11, 232, 13, 160, 15, 144, 27, 0, 33, 10, 53, 48, 45, 37, 25, 10, 6, 176, 106, 155, 120, 120, 120,
+			185, 107, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 250, 0, 5, 0, 1, 0, 248, 0, 144, 2, 204, 6, 196, 9, 242, 13, 183, 15, 64, 28, 45, 28, 24, 44, 49, 44, 29, 19,
+			7, 4, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 144, 2, 204, 6, 196, 9, 242, 13, 183, 15, 64, 28, 80, 82, 41, 76,
+			83, 75, 49, 33, 12, 8, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 128, 2, 204, 6, 208, 9, 225, 13, 155, 15, 70, 28,
+			80, 74, 39, 72, 78, 72, 48, 33, 11, 8, 193, 132, 174, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 214, 0, 33, 2, 59, 7, 27, 10, 118, 13,
+			233, 14, 110, 28, 45, 48, 28, 58, 59, 61, 44, 33, 10, 7, 187, 115, 141, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 200, 0, 248, 1, 108, 7,
+			60, 10, 72, 13, 156, 14, 128, 28, 0, 30, 23, 48, 48, 52, 39, 30, 9, 6, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 4, 0,
+			33, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 52, 28, 19, 35, 41, 45, 45, 29, 11, 5, 166, 170, 129, 120,
+			120, 120, 167, 190, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 75, 44, 24, 44, 52, 56, 56, 36, 14, 6,
+			166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 79, 35, 21, 39, 46, 50,
+			51, 33, 13, 6, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 0, 33,
+			25, 36, 43, 46, 46, 33, 13, 6, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 184, 0, 152, 1, 128, 7, 236, 9,
+			52, 13, 80, 15, 96, 25, 50, 41, 35, 59, 42, 57, 53, 28, 12, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 152, 1,
+			128, 7, 236, 9, 52, 13, 80, 15, 96, 25, 60, 74, 47, 79, 57, 76, 71, 38, 17, 7, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			184, 0, 152, 1, 128, 7, 236, 9, 52, 13, 80, 15, 96, 25, 40, 60, 42, 71, 51, 68, 64, 34, 15, 6, 160, 90, 120, 120, 120, 120,
+			130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 184, 0, 160, 1, 108, 7, 20, 10, 92, 13, 120, 15, 96, 25, 0, 44, 34, 68, 38, 51, 47, 27, 10, 8, 160, 105,
+			120, 120, 120, 120, 130, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 190, 0, 5, 0, 1, 0, 251, 0, 136, 2, 96, 4, 92, 10, 60, 12, 48, 14, 235, 27, 50, 39, 30, 52,
+			63, 24, 35, 22, 7, 5, 182, 149, 126, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 251, 0, 136, 2, 96, 4, 92, 10, 60, 12, 48, 14, 235, 27,
+			50, 77, 41, 72, 87, 33, 49, 31, 9, 7, 182, 149, 126, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 251, 0, 136, 2, 96, 4, 92, 10, 60, 12,
+			48, 14, 235, 27, 50, 77, 41, 72, 87, 33, 49, 31, 9, 7, 182, 149, 126, 120, 120, 120, 105, 164, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 251, 0, 136, 2, 96, 4,
+			92, 10, 60, 12, 48, 14, 235, 27, 40, 55, 35, 61, 74, 28, 42, 26, 8, 6, 182, 149, 126, 120, 120, 120, 105, 164, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 0, 1,
+			80, 2, 232, 3, 80, 10, 28, 12, 36, 14, 15, 28, 0, 25, 24, 38, 48, 16, 28, 16, 4, 4, 186, 151, 122, 120, 120, 120, 105, 164,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			165, 0, 4, 0, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 45, 48, 34, 51, 73, 40, 48, 24, 14, 6,
+			170, 150, 150, 120, 120, 120, 170, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 80, 68, 41, 61, 87, 48,
+			57, 28, 17, 7, 170, 150, 150, 120, 120, 120, 170, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 40, 59,
+			38, 55, 82, 45, 54, 27, 16, 6, 170, 150, 150, 120, 120, 120, 170, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 204, 0, 100, 2, 216, 4, 60, 10, 168, 12, 10, 15,
+			0, 28, 0, 40, 37, 46, 64, 35, 42, 21, 12, 9, 167, 150, 150, 120, 120, 120, 167, 165, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 190, 0, 5, 0, 1, 0, 192, 0, 192, 1,
+			72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 50, 40, 25, 45, 62, 20, 33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 50, 77, 35, 63, 87, 28, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120,
+			105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 50, 77, 35, 63, 87, 28, 45, 25, 13, 7, 177, 100,
+			131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 40, 49, 31, 53, 66, 24, 39, 21,
+			11, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 0, 28, 28, 45,
+			41, 20, 33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 100, 0, 4, 0, 1, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13,
+			60, 15, 144, 26, 50, 36, 3, 58, 43, 21, 21, 30, 15, 7, 177, 175, 102, 120, 120, 120, 177, 175, 117, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 72, 1, 132, 3,
+			56, 9, 12, 13, 60, 15, 144, 26, 50, 61, 4, 76, 56, 28, 28, 40, 20, 10, 177, 175, 102, 120, 120, 120, 177, 175, 117, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0,
+			72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 45, 3, 64, 49, 24, 24, 35, 17, 8, 177, 180, 102, 120, 120, 120, 177, 180,
+			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 24, 2, 45, 35, 17, 17, 25, 12, 6, 177, 200, 102, 120,
+			120, 120, 177, 200, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 110, 0, 6, 0, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 45, 58, 27, 62, 74, 40,
+			33, 28, 10, 5, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 65, 137,
+			42, 95, 114, 62, 51, 43, 16, 8, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14,
+			192, 27, 40, 111, 38, 86, 102, 55, 46, 39, 15, 7, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 218, 0, 120, 2, 232, 3, 161, 10,
+			109, 12, 71, 14, 60, 27, 50, 94, 29, 71, 93, 53, 42, 37, 17, 8, 166, 145, 137, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 216, 1,
+			12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 40, 75, 26, 68, 68, 47, 43, 25, 18, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0,
+			144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 0, 53, 22, 57, 57, 40, 36, 21, 15, 7, 163, 120, 143, 120, 120, 120,
+			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250,
+			0, 0, 45, 0, 3, 0, 5, 0, 116, 0, 232, 0, 164, 6, 176, 9, 152, 13, 60, 15, 124, 21, 45, 9, 20, 12, 8, 4, 4, 4,
+			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 9, 20, 12,
+			8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21,
+			0, 9, 20, 12, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 58, 0, 3, 0, 5, 0, 116, 0, 232, 0, 252, 8,
+			240, 10, 232, 13, 24, 16, 124, 21, 58, 11, 22, 13, 9, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 116, 0,
+			232, 0, 252, 8, 240, 10, 232, 13, 24, 16, 124, 21, 0, 11, 22, 13, 9, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
+			187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 116, 0, 232, 0, 252, 8, 240, 10, 232, 13, 24, 16, 124, 21, 0, 11, 22, 13, 9, 4, 4, 4, 0, 0, 200, 212, 187, 255,
+			255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 42, 3, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 14, 26, 36, 42,
+			44, 45, 42, 34, 23, 3, 230, 196, 171, 166, 179, 204, 230, 249, 5, 15, 25, 30, 24, 0, 222, 185, 164, 168, 195, 224, 243, 0, 17, 47,
+			80, 102, 102, 79, 44, 11, 244, 226, 206, 185, 168, 166, 187, 230, 25, 68, 91, 97, 98, 100, 96, 75, 34, 239, 189, 158, 150, 159, 174, 191,
+			213, 245, 32, 78, 113, 125, 112, 81, 44, 9, 234, 200, 165, 137, 131, 153, 198, 251, 39, 70, 91, 106, 114, 110, 87, 46, 252, 202, 168, 153,
+			153, 163, 180, 204, 239, 26, 71, 104, 116, 106, 82, 53, 22, 245, 208, 171, 144, 137, 154, 187, 228, 9, 40, 64, 82, 92, 91, 73, 40, 255,
+			216, 188, 174, 170, 172, 180, 198, 229, 10, 48, 75, 85, 80, 66, 46, 22, 250, 216, 184, 161, 154, 166, 192, 225, 1, 31, 57, 77, 91, 94,
+			82, 55, 20, 244, 219, 203, 193, 189, 193, 206, 229, 1, 30, 51, 61, 62, 55, 42, 25, 4, 237, 213, 195, 187, 192, 206, 225, 245, 7, 25,
+			41, 52, 54, 45, 29, 8, 245, 229, 217, 210, 207, 210, 220, 235, 255, 17, 32, 40, 41, 38, 31, 21, 7, 248, 231, 219, 214, 217, 226, 238,
+			251, 7, 20, 31, 39, 40, 33, 21, 7, 250, 238, 229, 224, 223, 225, 233, 244, 2, 16, 27, 32, 33, 31, 26, 18, 7, 252, 240, 232, 228,
+			230, 235, 243, 253, 6, 17, 26, 31, 32, 28, 20, 9, 255, 246, 238, 233, 231, 232, 238, 246, 0, 10, 17, 22, 24, 23, 20, 13, 5, 253,
+			245, 238, 235, 235, 239, 245, 252, 2, 10, 17, 21, 22, 20, 15, 8, 1, 251, 246, 242, 240, 240, 243, 249, 255, 4, 9, 13, 15, 15, 13,
+			10, 5, 0, 251, 248, 245, 245, 246, 249, 252, 0, 3, 7, 10, 11, 10, 8, 5, 2, 0, 253, 251, 250, 250, 251, 253, 255, 1, 3, 5,
+			5, 6, 5, 4, 2, 0, 0, 255, 254, 254, 254, 255, 0, 0, 1, 1, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 4, 0, 1, 0, 32, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28,
+			45, 49, 30, 65, 58, 38, 30, 19, 9, 4, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 32, 1, 66, 3, 196, 4, 130, 10, 112, 13,
+			48, 15, 32, 28, 70, 100, 43, 92, 83, 55, 43, 28, 13, 6, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 57, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 32, 1, 66, 3, 196, 4,
+			130, 10, 112, 13, 48, 15, 32, 28, 60, 82, 38, 83, 75, 50, 38, 25, 11, 5, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70,
+			130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 32, 1,
+			66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 0, 43, 28, 61, 55, 36, 28, 18, 8, 4, 186, 152, 120, 120, 120, 120, 192, 155,
+			135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			175, 0, 4, 0, 1, 0, 130, 0, 80, 1, 162, 8, 240, 10, 112, 13, 100, 15, 120, 26, 45, 48, 19, 68, 52, 50, 43, 30, 11, 6,
+			168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 130, 0, 80, 1, 162, 8, 240, 10, 112, 13, 100, 15, 120, 26, 70, 89, 26, 93, 71, 68,
+			59, 40, 16, 8, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 130, 0, 80, 1, 162, 8, 200, 10, 112, 13, 100, 15, 120, 26, 60, 81,
+			24, 88, 67, 64, 56, 38, 15, 8, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 130, 0, 80, 1, 162, 8, 200, 10, 112, 13, 100, 15,
+			120, 26, 0, 36, 16, 58, 44, 43, 37, 25, 10, 5, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 176, 0, 64, 1,
+			172, 3, 56, 9, 228, 12, 60, 15, 144, 26, 45, 39, 5, 66, 34, 17, 26, 29, 11, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			176, 0, 64, 1, 172, 3, 56, 9, 228, 12, 60, 15, 144, 26, 80, 65, 7, 85, 44, 22, 33, 37, 14, 9, 177, 125, 102, 120, 120, 120,
+			177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 176, 0, 64, 1, 152, 3, 56, 9, 228, 12, 60, 15, 144, 26, 50, 48, 6, 73, 38, 19, 28, 31, 12, 7, 177, 125,
+			102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 228, 12, 60, 15, 144, 26, 0, 35, 5, 62, 32, 16, 24, 27,
+			10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 133, 0, 93, 1, 164, 6, 242, 8, 208, 12, 114, 14, 24, 25,
+			45, 41, 21, 57, 47, 41, 38, 32, 10, 11, 173, 111, 133, 121, 121, 130, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 133, 0, 93, 1, 164, 6, 242, 8, 208, 12,
+			114, 14, 24, 25, 80, 71, 27, 76, 62, 54, 50, 42, 13, 14, 173, 111, 133, 121, 121, 130, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 133, 0, 93, 1, 164, 6,
+			242, 8, 208, 12, 114, 14, 24, 25, 70, 57, 25, 68, 55, 49, 45, 38, 12, 13, 173, 111, 133, 121, 121, 130, 187, 126, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 133, 0,
+			93, 1, 164, 6, 242, 8, 208, 12, 114, 14, 24, 25, 0, 35, 19, 54, 44, 38, 35, 30, 9, 10, 173, 111, 133, 121, 121, 130, 187, 126,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			245, 0, 6, 0, 1, 0, 72, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 45, 50, 32, 67, 59, 34, 30, 19, 9, 4,
+			207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 72, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 40, 101, 43, 96, 85, 49,
+			43, 27, 13, 6, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 55, 1, 100, 3, 128, 5, 140, 10, 116, 13, 189, 14, 32, 28, 75, 82,
+			41, 88, 78, 48, 40, 26, 12, 6, 203, 144, 114, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 48, 1, 56, 9, 164, 11, 232, 13, 220, 15,
+			160, 26, 40, 59, 21, 68, 68, 61, 54, 32, 15, 7, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 105, 0, 48, 1, 56, 9, 164, 11,
+			232, 13, 220, 15, 93, 26, 45, 31, 15, 51, 51, 47, 46, 26, 12, 8, 172, 106, 109, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 55,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 105, 0, 48, 1,
+			56, 9, 164, 11, 232, 13, 220, 15, 93, 26, 0, 31, 15, 51, 51, 47, 46, 26, 12, 8, 172, 106, 109, 120, 120, 120, 167, 110, 120, 44,
+			45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 170, 0,
 			4, 0, 1, 0, 229, 0, 216, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27, 50, 53, 31, 61, 69, 39, 42, 24, 13, 6, 189, 159,
-			136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 229, 0, 216, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27, 70, 82, 38, 77, 86, 48, 53, 29,
-			17, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 229, 0, 216, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27, 50, 68, 35, 70,
-			78, 44, 48, 27, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 229, 0, 224, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27,
+			136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 229, 0, 216, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27, 70, 82, 38, 77, 86, 48, 53, 29,
+			17, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 229, 0, 216, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27, 50, 68, 35, 70,
+			78, 44, 48, 27, 15, 6, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 229, 0, 224, 2, 20, 5, 35, 10, 227, 12, 233, 14, 214, 27,
 			0, 38, 27, 54, 55, 34, 37, 21, 12, 5, 189, 159, 136, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 156, 0, 4, 0, 1, 0, 253, 0, 32, 3, 40, 5,
-			77, 10, 28, 13, 216, 14, 244, 27, 46, 49, 30, 64, 61, 39, 37, 21, 11, 5, 200, 157, 123, 120, 120, 120, 247, 170, 165, 44, 65, 75,
-			130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 253, 0,
-			32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 50, 85, 40, 84, 80, 52, 48, 28, 15, 6, 200, 157, 123, 120, 120, 120, 247, 170,
-			165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 60, 79, 38, 81, 77, 50, 46, 27, 14, 6, 200, 157, 123, 120,
-			120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 0, 52, 31, 66, 63, 40, 38, 22, 11, 5,
-			200, 157, 123, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 4, 0, 1, 0, 136, 0, 224, 1, 4, 6, 36, 9, 248, 12, 220, 15, 95, 27, 45, 47,
-			29, 60, 60, 42, 44, 25, 17, 6, 170, 137, 153, 122, 124, 128, 197, 137, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 136, 0, 224, 1, 4, 6, 36, 9, 248, 12, 220, 15,
-			95, 27, 50, 74, 36, 76, 76, 52, 55, 32, 21, 8, 170, 137, 153, 122, 124, 128, 197, 137, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 168, 1, 180, 5, 72, 8,
-			248, 12, 220, 15, 95, 27, 70, 79, 36, 76, 68, 52, 55, 32, 21, 8, 170, 137, 165, 122, 124, 128, 197, 137, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 144, 1,
-			84, 6, 72, 8, 248, 12, 220, 15, 95, 27, 0, 38, 24, 51, 54, 35, 29, 21, 14, 5, 170, 137, 135, 122, 124, 128, 197, 137, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 240, 0,
-			5, 0, 1, 0, 168, 0, 240, 1, 132, 3, 216, 9, 224, 11, 141, 14, 32, 27, 45, 56, 27, 57, 64, 39, 35, 21, 13, 5, 165, 135,
-			150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 240, 1, 132, 3, 216, 9, 224, 11, 141, 14, 32, 27, 80, 108, 38, 80, 89, 54, 49, 29,
-			18, 7, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 170, 0, 224, 1, 138, 3, 186, 9, 224, 11, 141, 14, 76, 27, 55, 85, 31, 74,
-			79, 48, 43, 27, 16, 6, 164, 133, 148, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 181, 0, 172, 1, 115, 3, 51, 9, 224, 11, 141, 14, 22, 28,
-			60, 73, 31, 73, 64, 40, 33, 21, 12, 7, 163, 126, 141, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 192, 0, 120, 1, 92, 3, 172, 8, 224, 11,
-			141, 14, 224, 28, 0, 39, 25, 58, 35, 24, 16, 14, 7, 7, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 215, 0, 6, 0, 1, 0, 132, 0,
-			16, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 37, 18, 57, 36, 30, 30, 30, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 132, 0, 16, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 20, 68, 24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 70, 54, 21, 68, 46, 39, 43, 39, 10, 14,
-			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 178, 0, 126, 1, 31, 4, 53, 9, 251, 11, 131, 14, 113, 26, 40, 37, 22, 51, 47, 36,
-			32, 21, 14, 7, 163, 128, 153, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 138, 1, 212, 3, 56, 9, 224, 11, 136, 14, 144, 26, 40, 41,
-			24, 53, 51, 38, 33, 21, 15, 6, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 184, 0, 138, 1, 212, 3, 56, 9, 224, 11, 136, 14,
-			144, 26, 0, 29, 20, 44, 42, 31, 27, 17, 13, 5, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 100, 0, 3, 0, 5, 0, 4, 0, 176, 0,
-			208, 7, 184, 11, 58, 14, 136, 19, 224, 21, 40, 4, 0, 24, 2, 2, 4, 4, 4, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0,
-			4, 0, 176, 0, 208, 7, 184, 11, 58, 14, 136, 19, 224, 21, 60, 5, 0, 25, 2, 2, 4, 4, 5, 4, 150, 125, 137, 137, 150, 175,
-			150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 9, 0, 4, 0, 176, 0, 108, 7, 184, 11, 58, 14, 136, 19, 224, 21, 0, 5, 0, 25, 2, 2, 4, 4, 5, 4, 150, 125,
-			137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 198, 8, 12, 0, 0, 255, 254, 252, 251, 251, 253, 0, 1, 1, 2, 2, 2, 0, 253, 251, 248, 245, 241, 237,
-			235, 236, 236, 237, 237, 237, 240, 243, 246, 245, 241, 238, 236, 235, 236, 237, 239, 244, 250, 253, 254, 0, 5, 10, 10, 4, 254, 250, 247, 240,
-			232, 227, 227, 228, 227, 230, 235, 240, 244, 245, 241, 240, 247, 0, 6, 6, 255, 247, 241, 231, 223, 230, 239, 242, 243, 247, 255, 8, 11, 6,
-			5, 6, 10, 22, 38, 49, 60, 70, 70, 66, 65, 65, 65, 64, 59, 49, 38, 23, 4, 244, 232, 218, 206, 202, 199, 196, 196, 197, 196, 199,
-			203, 207, 213, 221, 228, 233, 237, 239, 238, 238, 242, 247, 0, 14, 26, 30, 33, 37, 37, 39, 42, 41, 43, 47, 47, 46, 47, 43, 36, 31,
-			29, 27, 30, 39, 48, 56, 60, 58, 56, 61, 71, 81, 93, 105, 114, 120, 125, 123, 116, 113, 113, 109, 103, 104, 105, 102, 97, 90, 81, 78,
-			75, 60, 44, 38, 32, 25, 19, 6, 246, 235, 227, 225, 235, 249, 0, 0, 253, 249, 250, 254, 3, 11, 16, 16, 6, 252, 249, 254, 2, 2,
-			255, 251, 249, 242, 230, 214, 201, 197, 200, 200, 200, 207, 215, 224, 231, 231, 234, 246, 255, 252, 246, 241, 235, 227, 217, 211, 220, 242, 2, 8,
-			11, 14, 12, 1, 243, 227, 216, 210, 199, 182, 171, 172, 178, 183, 185, 188, 195, 208, 219, 222, 218, 214, 212, 210, 209, 213, 218, 225, 237, 249,
-			254, 0, 4, 14, 22, 20, 11, 3, 1, 250, 235, 222, 219, 222, 225, 228, 234, 241, 247, 255, 1, 3, 13, 27, 35, 34, 26, 17, 13, 4,
-			249, 246, 249, 249, 248, 249, 254, 4, 9, 7, 6, 9, 12, 19, 27, 29, 28, 28, 27, 22, 18, 18, 17, 13, 8, 3, 0, 250, 241, 234,
-			234, 237, 236, 235, 237, 238, 235, 227, 219, 220, 232, 249, 4, 14, 22, 30, 37, 37, 31, 25, 22, 16, 11, 11, 11, 13, 19, 24, 33, 39,
-			35, 27, 25, 18, 5, 254, 254, 0, 0, 251, 245, 241, 235, 229, 231, 236, 239, 239, 239, 239, 236, 232, 234, 242, 251, 0, 2, 7, 7, 255,
-			248, 247, 242, 227, 204, 190, 198, 217, 232, 247, 1, 2, 253, 244, 242, 9, 40, 37, 9, 246, 235, 223, 216, 220, 232, 244, 241, 223, 223, 251,
-			14, 7, 0, 253, 235, 216, 218, 236, 250, 249, 246, 254, 10, 19, 25, 36, 59, 70, 51, 31, 32, 31, 17, 3, 3, 22, 44, 48, 38, 29,
-			31, 30, 16, 254, 244, 244, 239, 226, 218, 230, 251, 8, 14, 20, 28, 29, 18, 2, 245, 235, 235, 244, 251, 3, 20, 35, 33, 21, 23, 44,
-			51, 21, 245, 245, 246, 234, 239, 1, 14, 17, 8, 252, 7, 32, 42, 35, 23, 12, 5, 255, 245, 242, 244, 240, 236, 241, 246, 247, 255, 9,
-			16, 20, 15, 12, 22, 24, 8, 1, 6, 8, 11, 9, 253, 251, 6, 11, 14, 15, 13, 24, 38, 30, 18, 21, 21, 8, 250, 244, 252, 5,
-			9, 20, 30, 19, 6, 13, 26, 29, 19, 6, 7, 16, 21, 33, 51, 56, 43, 23, 10, 11, 20, 31, 29, 11, 251, 244, 249, 9, 11, 251,
-			251, 10, 8, 250, 251, 13, 28, 22, 11, 15, 24, 15, 0, 255, 3, 4, 10, 18, 15, 8, 2, 3, 12, 13, 15, 35, 32, 249, 235, 1,
-			6, 251, 0, 13, 6, 251, 252, 11, 31, 32, 15, 15, 24, 18, 6, 255, 253, 2, 1, 251, 3, 19, 21, 12, 1, 3, 19, 27, 15, 254,
-			237, 221, 218, 234, 245, 241, 248, 2, 248, 236, 4, 45, 58, 42, 32, 40, 43, 36, 35, 41, 29, 252, 226, 228, 237, 245, 12, 34, 29, 11,
-			249, 236, 241, 252, 249, 241, 234, 228, 235, 246, 0, 28, 54, 45, 19, 6, 10, 24, 22, 251, 231, 237, 252, 11, 23, 27, 21, 5, 249, 1,
-			15, 21, 24, 14, 248, 241, 251, 8, 23, 26, 14, 10, 7, 249, 249, 17, 26, 0, 232, 238, 2, 0, 244, 251, 13, 16, 0, 247, 8, 29,
-			21, 0, 1, 11, 2, 231, 209, 223, 4, 18, 3, 0, 20, 29, 9, 5, 46, 62, 13, 235, 254, 17, 11, 254, 251, 12, 18, 252, 241, 4,
-			18, 5, 242, 245, 15, 27, 13, 4, 7, 6, 7, 18, 25, 12, 251, 253, 15, 17, 6, 13, 27, 12, 240, 244, 24, 38, 10, 235, 233, 252,
-			10, 2, 252, 5, 6, 0, 10, 17, 16, 24, 21, 0, 252, 4, 11, 19, 12, 255, 18, 46, 40, 33, 40, 33, 23, 27, 13, 243, 233, 237,
-			241, 247, 242, 241, 9, 36, 33, 3, 235, 226, 212, 195, 205, 229, 243, 254, 3, 255, 6, 38, 71, 76, 43, 13, 25, 47, 39, 13, 9, 37,
-			43, 255, 221, 243, 27, 38, 255, 204, 211, 249, 244, 226, 246, 20, 24, 15, 11, 25, 42, 35, 1, 234, 246, 0, 245, 249, 8, 245, 221, 248,
-			34, 38, 3, 231, 252, 35, 8, 203, 221, 34, 22, 199, 199, 33, 76, 21, 241, 29, 75, 58, 15, 254, 2, 252, 219, 202, 241, 25, 13, 246,
-			9, 44, 48, 33, 27, 24, 6, 238, 229, 246, 7, 234, 190, 204, 242, 243, 232, 249, 8, 3, 4, 24, 34, 26, 11, 250, 237, 235, 246, 17,
-			31, 9, 248, 250, 3, 30, 45, 29, 26, 25, 0, 240, 242, 239, 245, 252, 242, 236, 247, 6, 22, 30, 19, 252, 243, 252, 246, 227, 222, 224,
-			221, 221, 231, 252, 21, 21, 255, 246, 5, 24, 26, 252, 222, 232, 248, 237, 235, 0, 9, 255, 246, 3, 42, 69, 45, 6, 249, 250, 255, 254,
-			244, 246, 246, 215, 206, 255, 43, 33, 251, 236, 251, 0, 237, 234, 253, 249, 212, 182, 206, 254, 253, 224, 236, 15, 24, 13, 0, 0, 20, 16,
-			238, 239, 26, 31, 246, 226, 252, 37, 47, 3, 236, 15, 24, 238, 221, 244, 0, 234, 199, 209, 253, 0, 239, 246, 9, 32, 31, 253, 244, 254,
-			234, 215, 217, 234, 9, 16, 6, 31, 49, 33, 28, 18, 246, 231, 224, 223, 240, 232, 202, 195, 208, 229, 6, 28, 30, 25, 15, 0, 251, 5,
-			10, 241, 203, 201, 244, 31, 31, 12, 15, 17, 1, 249, 253, 239, 201, 186, 226, 7, 7, 10, 8, 249, 244, 235, 228, 250, 246, 211, 207, 218,
-			232, 6, 10, 252, 0, 248, 237, 0, 3, 248, 250, 238, 229, 250, 12, 14, 13, 14, 16, 7, 1, 3, 242, 231, 249, 254, 239, 231, 224, 230,
-			248, 253, 3, 14, 0, 227, 216, 231, 248, 254, 253, 241, 228, 228, 230, 239, 6, 15, 247, 219, 232, 10, 9, 243, 252, 17, 22, 2, 225, 236,
-			15, 252, 233, 13, 31, 11, 250, 247, 21, 48, 22, 238, 221, 228, 238, 228, 234, 13, 3, 218, 226, 5, 32, 36, 250, 215, 232, 231, 212, 233,
-			251, 226, 207, 235, 35, 55, 13, 236, 254, 20, 15, 252, 239, 240, 243, 247, 13, 34, 13, 238, 242, 6, 20, 23, 255, 219, 218, 239, 246, 243,
-			246, 247, 237, 230, 240, 0, 9, 8, 248, 237, 3, 7, 215, 189, 217, 233, 233, 247, 247, 231, 240, 255, 2, 21, 25, 12, 21, 25, 253, 234,
-			234, 245, 7, 11, 18, 27, 249, 222, 7, 47, 54, 31, 224, 196, 230, 234, 224, 240, 219, 189, 200, 223, 4, 34, 5, 234, 249, 0, 0, 8,
-			255, 234, 223, 222, 230, 233, 238, 0, 14, 15, 20, 35, 50, 45, 22, 11, 8, 247, 231, 238, 243, 227, 209, 210, 229, 5, 26, 14, 251, 244,
-			240, 234, 228, 221, 219, 216, 218, 236, 249, 250, 3, 17, 25, 31, 14, 238, 229, 232, 224, 225, 242, 2, 16, 14, 17, 48, 57, 21, 4, 8,
-			249, 227, 215, 217, 243, 7, 1, 255, 1, 247, 234, 240, 5, 19, 2, 219, 203, 235, 11, 253, 227, 239, 12, 22, 5, 243, 2, 14, 230, 199,
-			219, 229, 215, 217, 234, 14, 53, 38, 252, 248, 19, 33, 18, 243, 222, 219, 213, 203, 223, 255, 243, 211, 224, 16, 52, 50, 14, 249, 6, 21,
-			11, 241, 221, 216, 195, 177, 210, 250, 240, 215, 222, 15, 57, 48, 29, 15, 241, 231, 241, 237, 233, 214, 192, 227, 18, 35, 65, 71, 36, 29,
-			30, 8, 246, 205, 162, 174, 195, 204, 223, 235, 2, 31, 29, 38, 52, 17, 239, 239, 254, 4, 214, 156, 187, 252, 12, 23, 45, 48, 20, 240,
-			245, 37, 53, 5, 207, 197, 214, 214, 214, 233, 248, 250, 243, 246, 30, 62, 38, 0, 228, 216, 244, 15, 10, 254, 232, 218, 239, 251, 249, 13,
-			8, 228, 230, 13, 46, 43, 255, 222, 237, 5, 7, 232, 199, 214, 237, 227, 239, 24, 34, 6, 229, 243, 41, 37, 222, 188, 226, 8, 4, 239,
-			237, 252, 10, 15, 12, 33, 50, 8, 222, 229, 245, 254, 237, 196, 205, 237, 229, 240, 254, 220, 228, 24, 48, 68, 56, 250, 235, 4, 8, 15,
-			255, 204, 197, 207, 203, 239, 21, 2, 234, 243, 21, 58, 42, 246, 227, 236, 243, 243, 229, 224, 241, 243, 234, 247, 4, 8, 14, 13, 3, 2,
-			0, 247, 0, 9, 253, 251, 0, 235, 227, 1, 5, 236, 228, 230, 241, 5, 3, 251, 253, 240, 234, 253, 254, 248, 254, 245, 239, 1, 17, 26,
-			28, 15, 0, 248, 243, 247, 251, 249, 245, 226, 222, 0, 18, 3, 248, 245, 251, 0, 242, 237, 248, 240, 227, 229, 234, 249, 253, 234, 242, 12,
-			14, 8, 3, 0, 17, 17, 250, 254, 7, 255, 0, 248, 233, 251, 0, 244, 0, 6, 253, 0, 240, 229, 13, 31, 5, 254, 255, 248, 245, 228,
-			237, 20, 4, 220, 240, 24, 36, 11, 213, 214, 12, 255, 210, 230, 255, 250, 244, 242, 23, 65, 21, 222, 249, 25, 7, 227, 209, 228, 239, 217,
-			227, 7, 16, 12, 2, 2, 42, 57, 18, 254, 250, 230, 216, 206, 218, 1, 3, 238, 8, 49, 45, 12, 240, 236, 240, 237, 232, 225, 218, 214,
-			209, 240, 47, 63, 22, 240, 234, 253, 254, 222, 213, 237, 242, 230, 236, 12, 45, 38, 6, 253, 14, 20, 248, 212, 211, 227, 231, 236, 255, 19,
-			24, 8, 4, 30, 51, 37, 6, 237, 228, 222, 211, 216, 232, 235, 229, 231, 255, 30, 27, 253, 250, 22, 34, 255, 208, 207, 231, 229, 227, 242,
-			4, 20, 11, 251, 31, 65, 29, 254, 11, 22, 17, 241, 204, 223, 246, 226, 224, 251, 2, 2, 0, 250, 6, 17, 1, 239, 237, 240, 231, 213,
-			223, 254, 9, 1, 246, 239, 5, 29, 16, 5, 7, 240, 224, 238, 252, 10, 14, 244, 236, 7, 27, 39, 37, 4, 243, 247, 245, 248, 248, 227,
-			218, 221, 226, 248, 16, 21, 12, 4, 18, 42, 34, 9, 250, 233, 224, 225, 218, 218, 234, 243, 245, 251, 4, 27, 41, 20, 253, 1, 5, 244,
-			222, 223, 252, 9, 242, 232, 5, 22, 9, 253, 253, 10, 10, 232, 213, 245, 4, 237, 226, 240, 252, 6, 8, 255, 0, 0, 247, 251, 1, 0,
-			253, 230, 222, 16, 51, 29, 14, 11, 255, 0, 0, 241, 230, 214, 202, 220, 246, 250, 248, 3, 18, 24, 28, 23, 254, 230, 225, 226, 235, 255,
-			17, 12, 249, 2, 29, 26, 10, 6, 254, 248, 235, 223, 253, 18, 236, 219, 249, 12, 35, 49, 21, 255, 1, 3, 12, 13, 238, 205, 194, 202,
-			231, 2, 3, 255, 8, 28, 41, 41, 31, 10, 238, 214, 205, 216, 230, 238, 244, 244, 247, 11, 29, 26, 12, 253, 252, 5, 250, 232, 236, 237,
-			225, 223, 241, 23, 46, 28, 9, 7, 5, 0, 242, 229, 235, 238, 232, 235, 244, 4, 19, 10, 4, 14, 8, 251, 236, 227, 242, 0, 253, 0,
-			7, 15, 23, 5, 247, 252, 236, 224, 245, 249, 241, 250, 250, 253, 18, 27, 34, 46, 36, 4, 235, 221, 211, 212, 232, 253, 0, 251, 253, 19,
-			49, 53, 30, 8, 249, 232, 215, 204, 211, 228, 229, 222, 244, 35, 63, 48, 17, 1, 1, 254, 237, 221, 219, 224, 233, 244, 255, 14, 24, 11,
-			253, 2, 14, 17, 9, 245, 229, 235, 249, 1, 0, 242, 230, 244, 18, 28, 17, 12, 4, 253, 8, 0, 224, 213, 205, 200, 238, 15, 12, 16,
-			19, 11, 28, 46, 30, 255, 231, 234, 253, 247, 232, 237, 242, 253, 19, 20, 14, 14, 3, 4, 20, 3, 242, 252, 248, 255, 26, 12, 245, 0,
-			4, 5, 24, 16, 253, 244, 233, 249, 19, 5, 243, 235, 228, 254, 12, 244, 240, 247, 240, 5, 20, 5, 13, 7, 239, 12, 37, 16, 10, 0,
-			238, 0, 253, 227, 249, 9, 250, 251, 245, 240, 11, 9, 236, 248, 4, 240, 231, 246, 4, 0, 233, 227, 246, 254, 253, 5, 11, 2, 246, 245,
-			0, 254, 244, 241, 243, 247, 249, 0, 20, 30, 13, 1, 13, 24, 22, 9, 252, 254, 1, 244, 233, 239, 242, 240, 241, 240, 242, 253, 253, 247,
-			254, 1, 254, 254, 250, 250, 0, 0, 175, 0, 4, 0, 1, 0, 128, 0, 32, 2, 196, 4, 216, 9, 188, 12, 20, 15, 96, 27, 45, 45,
-			33, 61, 58, 39, 36, 33, 17, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 128, 0, 32, 2, 196, 4, 216, 9, 188, 12, 20, 15,
-			96, 27, 60, 71, 42, 76, 72, 49, 46, 42, 22, 7, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 32, 2, 196, 4, 216, 9,
-			188, 12, 20, 15, 96, 27, 70, 57, 38, 69, 65, 44, 41, 38, 19, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 128, 0, 32, 2,
-			236, 4, 216, 9, 188, 12, 20, 15, 96, 27, 0, 41, 32, 58, 55, 37, 35, 32, 16, 5, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 250, 0,
-			5, 0, 1, 0, 248, 0, 144, 2, 204, 6, 196, 9, 242, 13, 183, 15, 64, 28, 45, 28, 24, 44, 49, 44, 29, 19, 7, 4, 193, 135,
-			180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 144, 2, 204, 6, 196, 9, 242, 13, 183, 15, 64, 28, 80, 82, 41, 76, 83, 75, 49, 33,
-			12, 8, 193, 135, 180, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0, 128, 2, 204, 6, 208, 9, 225, 13, 155, 15, 70, 28, 80, 74, 39, 72,
-			78, 72, 48, 33, 11, 8, 193, 132, 174, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 214, 0, 33, 2, 59, 7, 27, 10, 118, 13, 233, 14, 110, 28,
-			45, 48, 28, 58, 59, 61, 44, 33, 10, 7, 187, 115, 141, 120, 120, 120, 217, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 248, 1, 108, 7, 60, 10, 72, 13,
-			156, 14, 128, 28, 0, 30, 23, 48, 48, 52, 39, 30, 9, 6, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 32, 1,
-			66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 45, 49, 30, 65, 58, 38, 30, 19, 9, 4, 186, 152, 120, 120, 120, 120, 192, 155,
-			135, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 32, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 70, 100, 43, 92, 83, 55, 43, 28, 13, 6, 186, 152, 120, 120,
-			120, 120, 192, 155, 135, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 32, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 60, 82, 38, 83, 75, 50, 38, 25, 11, 5,
-			186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 32, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 0, 43, 28, 61, 55, 36,
-			28, 18, 8, 4, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 4, 0, 33, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15,
-			20, 26, 52, 28, 19, 35, 41, 44, 44, 28, 11, 4, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 165, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 169, 0, 56, 1, 192, 8, 28, 11,
-			84, 13, 40, 15, 20, 26, 75, 43, 24, 44, 52, 56, 56, 36, 14, 6, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60,
-			165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 169, 0, 56, 1,
-			192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 79, 35, 21, 39, 46, 50, 50, 32, 12, 5, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44,
-			45, 70, 130, 60, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 0, 33, 25, 36, 43, 46, 46, 32, 12, 5, 166, 170, 129, 120, 120, 120,
-			167, 190, 120, 44, 45, 70, 130, 60, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 150, 0, 4, 0, 1, 0, 184, 0, 152, 1, 128, 7, 236, 9, 52, 13, 80, 15, 96, 25, 50, 41, 35, 59, 42, 57, 53, 28,
-			12, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 184, 0, 152, 1, 128, 7, 236, 9, 52, 13, 80, 15, 96, 25, 60, 74, 47, 79,
-			57, 76, 71, 38, 17, 7, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 184, 0, 152, 1, 128, 7, 236, 9, 52, 13, 80, 15, 96, 25,
-			40, 60, 42, 71, 51, 68, 64, 34, 15, 6, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 160, 1, 108, 7, 20, 10, 92, 13,
-			120, 15, 96, 25, 0, 44, 34, 68, 38, 51, 47, 27, 10, 8, 160, 105, 120, 120, 120, 120, 130, 60, 120, 44, 45, 70, 130, 60, 165, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 216, 0,
-			248, 2, 140, 5, 60, 10, 20, 13, 175, 14, 117, 27, 50, 38, 30, 48, 51, 44, 37, 30, 12, 3, 196, 162, 200, 120, 120, 120, 249, 174,
-			255, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 216, 0, 248, 2, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 60, 50, 38, 50, 64, 46, 46, 38, 16, 4, 196, 162, 200, 120,
-			120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 208, 0, 248, 2, 120, 5, 40, 10, 20, 13, 175, 14, 117, 27, 40, 38, 36, 43, 55, 33, 36, 33, 13, 3,
-			196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 208, 0, 226, 2, 80, 5, 236, 9, 1, 13, 155, 14, 105, 27, 0, 20, 29, 29, 37, 22,
-			24, 24, 11, 3, 192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 204, 0, 100, 2, 208, 4, 60, 10, 168, 12, 10, 15,
-			0, 28, 45, 47, 34, 51, 72, 40, 48, 23, 14, 5, 170, 150, 150, 120, 120, 120, 170, 165, 120, 44, 45, 70, 130, 59, 160, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 204, 0, 100, 2, 208, 4, 60, 10,
-			168, 12, 10, 15, 0, 28, 80, 67, 41, 61, 86, 47, 57, 28, 17, 6, 170, 150, 150, 120, 120, 120, 170, 165, 120, 44, 45, 70, 130, 59,
-			165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 204, 0, 100, 2,
-			208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 40, 58, 38, 55, 81, 45, 54, 26, 16, 6, 170, 150, 150, 120, 120, 120, 170, 165, 120, 44,
-			45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			204, 0, 100, 2, 216, 4, 60, 10, 168, 12, 10, 15, 0, 28, 0, 39, 37, 46, 64, 34, 42, 21, 11, 8, 167, 150, 150, 120, 120, 120,
-			167, 165, 120, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 190, 0, 5, 0, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 50, 39, 25, 45, 62, 20, 33, 18,
-			9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 50, 76, 35, 63,
-			86, 28, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27,
-			50, 76, 35, 63, 86, 28, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 192, 1, 72, 3, 38, 10, 208, 11,
-			47, 14, 159, 27, 40, 48, 30, 53, 65, 24, 39, 21, 11, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 165, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 192, 0, 192, 1, 72, 3,
-			38, 10, 208, 11, 47, 14, 159, 27, 0, 28, 28, 45, 41, 20, 33, 18, 9, 5, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70,
-			130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 100, 0, 4, 0,
-			1, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 36, 3, 58, 43, 21, 21, 30, 15, 7, 177, 175, 102, 120,
-			120, 120, 177, 175, 117, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 61, 4, 76, 56, 28, 28, 40, 20, 10,
-			177, 175, 102, 120, 120, 120, 177, 175, 117, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 45, 3, 64, 49, 24,
-			24, 35, 17, 8, 177, 180, 102, 120, 120, 120, 177, 180, 117, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 72, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 24,
-			2, 45, 35, 17, 17, 25, 12, 6, 177, 200, 102, 120, 120, 120, 177, 200, 117, 44, 45, 70, 130, 60, 160, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 110, 0, 6, 0, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10,
-			2, 13, 238, 14, 192, 27, 45, 52, 26, 59, 70, 38, 32, 27, 10, 5, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 14, 1, 212, 2,
-			106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 65, 111, 37, 85, 102, 55, 46, 38, 14, 7, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 40, 100, 36, 81, 97, 53, 44, 37, 14, 7, 165, 148, 135, 120, 120, 120,
-			167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 218, 0, 120, 2, 232, 3, 161, 10, 109, 12, 71, 14, 60, 27, 50, 85, 27, 67, 88, 50, 40, 35, 16, 7, 166, 145,
-			137, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 40, 68, 25, 64, 64, 45, 41, 24,
-			17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 144, 0, 216, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 0, 48, 21, 54,
-			54, 38, 34, 20, 14, 7, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 45, 0, 3, 0, 5, 0, 116, 0, 232, 0, 164, 6, 176, 9, 152, 13,
-			60, 15, 124, 21, 45, 9, 20, 12, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 116, 0, 232, 0, 164, 6,
-			216, 9, 192, 13, 80, 15, 124, 21, 0, 9, 20, 12, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0,
-			232, 0, 164, 6, 216, 9, 192, 13, 80, 15, 124, 21, 0, 9, 20, 12, 8, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
-			187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			254, 5, 22, 0, 235, 3, 25, 4, 249, 243, 11, 15, 250, 0, 16, 8, 247, 255, 5, 0, 249, 254, 18, 17, 7, 1, 250, 15, 11, 0,
-			253, 2, 13, 2, 255, 22, 12, 244, 16, 10, 0, 234, 10, 1, 249, 12, 240, 239, 0, 12, 3, 248, 228, 252, 249, 252, 1, 245, 7, 23,
-			218, 230, 7, 33, 4, 248, 255, 4, 27, 15, 234, 238, 255, 7, 0, 15, 3, 8, 255, 9, 3, 242, 8, 19, 248, 255, 8, 13, 4, 230,
-			235, 1, 31, 7, 239, 235, 0, 1, 244, 4, 20, 23, 237, 225, 239, 10, 22, 0, 252, 237, 0, 25, 241, 234, 11, 18, 254, 233, 240, 15,
-			9, 245, 255, 4, 218, 7, 25, 230, 247, 12, 246, 231, 0, 251, 13, 12, 255, 232, 232, 3, 3, 14, 3, 6, 3, 14, 27, 56, 71, 6,
-			221, 183, 203, 28, 228, 244, 53, 41, 18, 211, 239, 5, 53, 110, 73, 10, 226, 230, 234, 251, 0, 32, 33, 20, 6, 250, 216, 197, 213, 27,
-			12, 253, 241, 223, 19, 232, 247, 33, 12, 242, 222, 242, 18, 254, 18, 249, 219, 8, 10, 10, 6, 25, 34, 229, 221, 249, 0, 251, 235, 27,
-			40, 233, 255, 8, 12, 246, 230, 247, 244, 233, 1, 33, 34, 219, 15, 25, 252, 237, 4, 16, 12, 10, 0, 235, 235, 236, 224, 233, 224, 16,
-			46, 232, 212, 233, 7, 0, 0, 211, 239, 9, 55, 52, 246, 26, 66, 247, 191, 251, 246, 7, 19, 73, 105, 35, 20, 49, 245, 207, 219, 15,
-			33, 235, 194, 246, 63, 255, 195, 218, 253, 236, 200, 30, 44, 219, 24, 38, 167, 196, 255, 79, 85, 247, 237, 3, 200, 172, 231, 11, 28, 13,
-			0, 245, 1, 241, 0, 53, 7, 228, 27, 67, 27, 18, 68, 117, 46, 177, 190, 49, 82, 200, 155, 88, 124, 255, 169, 184, 252, 38, 243, 190,
-			206, 252, 246, 167, 191, 226, 40, 27, 210, 3, 34, 230, 217, 208, 34, 255, 233, 11, 30, 231, 247, 67, 44, 237, 220, 10, 23, 27, 34, 0,
-			12, 36, 252, 23, 1, 38, 70, 16, 32, 21, 208, 250, 23, 223, 183, 58, 68, 205, 208, 253, 48, 220, 174, 227, 32, 18, 204, 255, 51, 254,
-			233, 210, 6, 32, 239, 252, 229, 247, 62, 8, 216, 249, 4, 20, 254, 25, 26, 9, 239, 242, 5, 248, 2, 53, 244, 246, 52, 33, 2, 234,
-			240, 39, 251, 163, 246, 26, 236, 188, 235, 39, 17, 204, 221, 8, 62, 35, 0, 227, 246, 41, 255, 194, 255, 72, 27, 238, 210, 43, 49, 18,
-			25, 234, 223, 19, 33, 240, 16, 45, 46, 235, 3, 248, 12, 46, 247, 236, 8, 20, 248, 252, 234, 27, 18, 237, 6, 228, 7, 58, 231, 183,
-			16, 48, 241, 225, 230, 3, 237, 1, 10, 248, 224, 221, 238, 250, 21, 8, 232, 243, 234, 235, 241, 239, 13, 39, 248, 196, 243, 53, 32, 225,
-			214, 45, 30, 5, 221, 205, 17, 233, 235, 228, 238, 7, 22, 5, 226, 232, 49, 32, 0, 248, 51, 71, 223, 244, 38, 41, 23, 252, 20, 30,
-			234, 237, 253, 11, 20, 7, 217, 216, 1, 236, 217, 38, 47, 240, 242, 30, 42, 11, 224, 3, 46, 253, 238, 222, 237, 10, 236, 220, 2, 32,
-			15, 27, 211, 249, 60, 27, 224, 231, 2, 17, 17, 227, 7, 47, 24, 217, 228, 5, 248, 193, 239, 6, 232, 228, 18, 25, 10, 254, 15, 35,
-			18, 248, 252, 239, 238, 1, 255, 243, 19, 48, 46, 3, 254, 4, 255, 239, 226, 241, 246, 244, 1, 10, 8, 28, 35, 253, 3, 22, 9, 21,
-			7, 240, 253, 252, 17, 18, 19, 4, 2, 61, 11, 218, 218, 253, 248, 221, 251, 35, 46, 56, 41, 23, 14, 20, 1, 7, 18, 20, 16, 14,
-			242, 249, 32, 32, 224, 229, 227, 239, 244, 233, 231, 250, 231, 210, 198, 212, 242, 241, 243, 4, 248, 237, 214, 205, 238, 21, 251, 236, 248, 246,
-			243, 222, 235, 30, 30, 43, 17, 252, 0, 248, 238, 248, 253, 12, 6, 0, 22, 27, 28, 247, 241, 244, 244, 210, 208, 229, 219, 190, 238, 17,
-			16, 250, 253, 38, 27, 1, 230, 19, 243, 232, 9, 33, 246, 244, 36, 23, 0, 16, 9, 255, 238, 226, 8, 5, 24, 242, 238, 28, 48, 50,
-			34, 3, 18, 15, 227, 238, 2, 19, 32, 53, 54, 18, 250, 5, 23, 248, 249, 235, 243, 242, 236, 9, 29, 30, 42, 31, 7, 7, 5, 236,
-			222, 244, 1, 41, 42, 21, 8, 0, 14, 2, 231, 251, 4, 237, 214, 234, 21, 26, 10, 4, 34, 63, 23, 237, 248, 19, 20, 0, 238, 8,
-			39, 21, 234, 240, 14, 27, 226, 209, 222, 13, 20, 240, 229, 0, 250, 251, 4, 31, 42, 30, 13, 255, 242, 235, 227, 238, 3, 17, 24, 242,
-			237, 244, 228, 212, 228, 4, 2, 243, 236, 245, 247, 249, 252, 242, 247, 250, 255, 246, 239, 241, 245, 234, 225, 238, 246, 249, 7, 248, 219, 229,
-			253, 227, 226, 229, 17, 36, 245, 227, 233, 245, 12, 244, 246, 9, 249, 232, 234, 255, 15, 247, 235, 6, 0, 0, 33, 28, 253, 245, 30, 42,
-			11, 243, 8, 61, 63, 30, 11, 13, 3, 1, 8, 11, 14, 35, 41, 31, 254, 10, 19, 249, 254, 0, 16, 29, 24, 18, 8, 12, 16, 16,
-			40, 31, 34, 18, 1, 244, 246, 28, 21, 255, 14, 16, 7, 251, 239, 253, 14, 17, 246, 231, 231, 221, 206, 226, 244, 21, 12, 246, 250, 3,
-			250, 250, 246, 235, 232, 243, 10, 10, 1, 245, 0, 8, 6, 0, 238, 213, 208, 232, 239, 203, 203, 233, 231, 229, 232, 227, 225, 231, 234, 233,
-			255, 0, 239, 220, 219, 0, 16, 16, 8, 247, 230, 235, 15, 18, 240, 234, 243, 253, 9, 246, 248, 1, 12, 33, 27, 18, 15, 13, 14, 29,
-			33, 35, 19, 251, 232, 243, 4, 26, 9, 253, 250, 1, 5, 6, 5, 249, 6, 11, 11, 16, 23, 14, 26, 39, 45, 15, 247, 243, 3, 16,
-			20, 5, 250, 230, 218, 247, 35, 31, 32, 31, 44, 31, 19, 12, 11, 4, 14, 44, 67, 39, 0, 243, 249, 0, 255, 0, 246, 249, 15, 2,
-			252, 1, 1, 243, 240, 22, 58, 26, 0, 255, 26, 14, 242, 239, 12, 20, 19, 11, 17, 13, 239, 215, 225, 14, 26, 26, 19, 25, 31, 8,
-			254, 13, 10, 249, 255, 22, 15, 255, 248, 254, 253, 16, 255, 245, 249, 248, 240, 230, 216, 223, 218, 203, 221, 17, 43, 42, 18, 17, 21, 8,
-			255, 5, 2, 239, 234, 240, 225, 221, 221, 222, 227, 215, 221, 224, 222, 205, 204, 224, 7, 5, 250, 250, 241, 247, 253, 5, 250, 239, 212, 215,
-			229, 246, 237, 224, 217, 244, 246, 220, 204, 200, 204, 208, 243, 0, 238, 229, 242, 13, 15, 4, 245, 255, 246, 241, 242, 251, 248, 216, 225, 254,
-			15, 6, 3, 5, 2, 250, 0, 24, 30, 18, 4, 27, 44, 37, 23, 34, 38, 37, 35, 37, 14, 251, 235, 254, 4, 5, 13, 19, 12, 23,
-			56, 67, 63, 46, 35, 41, 41, 36, 34, 20, 29, 16, 23, 19, 12, 18, 13, 30, 35, 26, 4, 4, 6, 11, 24, 38, 37, 37, 36, 19,
-			9, 0, 9, 13, 12, 3, 6, 249, 244, 242, 239, 5, 15, 4, 251, 248, 252, 247, 233, 237, 237, 244, 238, 226, 234, 234, 233, 217, 233, 234,
-			231, 233, 232, 234, 221, 224, 1, 254, 223, 220, 227, 240, 228, 229, 249, 251, 229, 222, 225, 230, 217, 208, 208, 221, 236, 249, 6, 14, 252, 8,
-			40, 30, 7, 0, 26, 20, 7, 10, 20, 27, 253, 1, 13, 19, 6, 9, 30, 9, 238, 242, 8, 14, 2, 18, 37, 51, 48, 48, 55, 46,
-			36, 46, 56, 50, 47, 36, 16, 251, 0, 15, 29, 4, 237, 244, 244, 247, 3, 0, 16, 27, 35, 47, 45, 17, 7, 0, 7, 238, 226, 216,
-			207, 213, 226, 235, 237, 225, 223, 234, 244, 248, 3, 0, 233, 209, 217, 242, 246, 235, 234, 238, 254, 0, 247, 218, 201, 189, 204, 230, 220, 209,
-			215, 222, 227, 209, 203, 222, 228, 215, 245, 246, 247, 241, 237, 236, 229, 234, 8, 38, 30, 10, 6, 27, 26, 10, 251, 6, 8, 13, 37, 31,
-			4, 1, 27, 52, 45, 4, 252, 10, 21, 19, 27, 20, 19, 15, 10, 24, 26, 32, 37, 30, 18, 9, 21, 24, 24, 246, 0, 33, 47, 23,
-			11, 0, 10, 29, 40, 43, 25, 9, 0, 16, 16, 16, 14, 7, 10, 12, 1, 249, 4, 253, 247, 255, 12, 26, 16, 255, 238, 246, 251, 0,
-			10, 16, 10, 6, 14, 15, 8, 255, 255, 9, 252, 3, 5, 6, 235, 234, 248, 16, 17, 13, 15, 13, 19, 21, 25, 251, 237, 255, 17, 248,
-			237, 240, 242, 253, 14, 29, 21, 235, 0, 0, 188, 4, 48, 0, 2, 252, 253, 253, 7, 7, 0, 0, 248, 251, 0, 6, 8, 0, 248, 248,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 115, 0, 4, 0, 1, 0, 136, 0, 224, 1, 24, 6,
+			116, 9, 248, 12, 240, 15, 95, 27, 45, 44, 27, 57, 66, 39, 41, 24, 16, 6, 170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 136, 0,
+			224, 1, 24, 6, 116, 9, 248, 12, 220, 15, 95, 27, 70, 71, 34, 72, 83, 49, 52, 30, 20, 8, 170, 137, 135, 122, 124, 128, 197, 137,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 136, 0, 234, 1, 4, 6, 92, 9, 227, 12, 157, 15, 95, 27, 70, 64, 33, 69, 79, 47, 50, 30, 19, 7, 170, 137, 135, 122,
+			124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 136, 0, 4, 2, 240, 5, 36, 9, 178, 12, 10, 15, 95, 27, 0, 36, 24, 52, 59, 35, 38, 25, 14, 5,
+			170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 5, 0, 1, 0, 144, 0, 120, 1, 188, 7, 120, 10, 132, 13, 160, 15, 128, 28, 45, 45,
+			22, 58, 58, 58, 47, 44, 11, 8, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 144, 0, 120, 1, 188, 7, 120, 10, 132, 13, 160, 15,
+			128, 28, 41, 91, 32, 84, 84, 84, 68, 64, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 208, 1, 188, 7, 80, 10,
+			132, 13, 216, 14, 128, 28, 74, 93, 38, 84, 88, 84, 68, 51, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 208, 1,
+			148, 7, 60, 10, 92, 13, 196, 14, 128, 28, 40, 93, 38, 84, 88, 84, 68, 51, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			200, 0, 32, 2, 8, 7, 136, 9, 228, 12, 76, 14, 128, 28, 0, 44, 30, 58, 61, 58, 47, 36, 11, 8, 185, 107, 127, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 255, 0, 5, 0, 1, 0, 31, 1, 64, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 45, 37, 28, 51, 55, 50, 39, 28,
+			9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 22, 1, 160, 2, 204, 6, 255, 9, 124, 13, 33, 15, 156, 28, 70, 58, 37, 68,
+			71, 61, 48, 35, 12, 7, 245, 138, 159, 124, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 242, 0, 97, 3, 196, 5, 122, 10, 204, 13, 109, 15, 140, 27,
+			80, 78, 43, 84, 81, 56, 44, 31, 14, 6, 250, 166, 163, 142, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10, 216, 13,
+			120, 15, 102, 27, 60, 83, 41, 81, 77, 51, 41, 29, 13, 5, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 236, 0, 128, 3, 160, 5,
+			140, 10, 216, 13, 120, 15, 102, 27, 0, 50, 32, 63, 60, 40, 32, 22, 10, 4, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 199, 0, 6, 0,
+			5, 0, 24, 1, 240, 2, 116, 4, 4, 11, 152, 13, 35, 15, 64, 27, 51, 53, 27, 57, 72, 38, 39, 19, 3, 8, 225, 165, 135, 120,
+			120, 120, 225, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 24, 1, 240, 2, 116, 4, 4, 11, 72, 13, 191, 14, 64, 27, 75, 95, 34, 81, 88, 51, 55, 37, 5, 7,
+			167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 24, 1, 240, 2, 196, 4, 200, 10, 72, 13, 191, 14, 64, 27, 30, 77, 32, 77, 83, 48,
+			52, 35, 5, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 33, 0, 196, 0, 224, 2, 249, 5, 232, 8, 188, 12, 247, 13, 64, 27, 33, 39,
+			29, 59, 54, 45, 44, 45, 8, 8, 167, 150, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 193, 0, 208, 1, 160, 7, 173, 9, 21, 13, 229, 14,
+			64, 27, 40, 41, 30, 57, 50, 49, 43, 40, 14, 9, 167, 105, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 192, 0, 168, 1, 208, 7, 196, 9,
+			32, 13, 0, 15, 64, 27, 0, 30, 27, 50, 44, 44, 38, 34, 13, 8, 167, 100, 180, 120, 120, 120, 137, 85, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 225, 0, 6, 0, 1, 0,
+			177, 0, 117, 1, 37, 3, 102, 10, 50, 12, 55, 15, 148, 26, 45, 38, 11, 53, 49, 26, 23, 20, 12, 6, 162, 127, 149, 120, 120, 120,
+			162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 177, 0, 117, 1, 37, 3, 102, 10, 50, 12, 55, 15, 148, 26, 50, 60, 13, 66, 61, 32, 29, 26, 16, 8, 162, 127,
+			149, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 189, 0, 168, 1, 84, 3, 128, 10, 68, 12, 5, 15, 185, 26, 50, 64, 24, 59, 72, 37, 34, 31,
+			17, 8, 163, 130, 147, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 244, 0, 128, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27, 40, 94, 30, 75,
+			97, 50, 46, 46, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 244, 0, 128, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27,
+			40, 84, 29, 71, 92, 47, 44, 44, 14, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 244, 0, 128, 2, 36, 4, 240, 10, 148, 12,
+			41, 14, 96, 27, 0, 45, 23, 53, 64, 36, 33, 33, 11, 5, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 152, 0,
+			24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 27, 6, 51, 45, 46, 46, 22, 10, 5, 167, 105, 120, 120, 120, 120, 167, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 80, 65, 9, 78, 70, 70, 71, 34, 16, 8, 167, 105, 120, 120,
+			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 161, 0, 67, 1, 160, 8, 207, 10, 36, 13, 208, 14, 0, 27, 65, 48, 12, 66, 59, 62, 59, 31, 13, 7,
+			166, 105, 121, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 31, 1, 72, 2, 244, 6, 0, 10, 104, 13, 15, 15, 224, 28, 60, 38, 30, 52, 55, 49,
+			38, 27, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 31, 1, 72, 2, 244, 6, 0, 10, 104, 13, 15, 15, 224, 28, 0, 33,
+			28, 48, 51, 46, 35, 25, 9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 240, 0, 5, 0, 1, 0, 168, 0, 240, 1, 132, 3, 216, 9,
+			164, 11, 141, 14, 32, 27, 45, 54, 23, 57, 64, 39, 35, 17, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 240, 1,
+			132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 80, 105, 33, 80, 89, 54, 49, 24, 18, 7, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			170, 0, 224, 1, 138, 3, 186, 9, 168, 11, 141, 14, 76, 27, 55, 83, 27, 74, 79, 48, 43, 22, 16, 6, 164, 133, 148, 120, 120, 120,
+			165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 192, 0, 120, 1, 32, 3, 172, 8, 204, 11, 141, 14, 224, 28, 60, 44, 23, 63, 38, 26, 17, 15, 7, 7, 162, 120,
+			135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 104, 1, 32, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 19, 57, 37, 21, 14, 11,
+			8, 7, 152, 120, 97, 120, 120, 120, 107, 90, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 16, 1, 96, 2, 8, 7, 225, 9, 104, 13, 15, 15, 224, 28,
+			40, 29, 23, 47, 51, 46, 36, 26, 8, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 16, 1, 96, 2, 8, 7, 225, 9, 104, 13,
+			15, 15, 224, 28, 66, 69, 36, 73, 77, 71, 55, 40, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 6, 1, 64, 2, 20, 7,
+			226, 9, 99, 13, 18, 15, 157, 28, 94, 58, 30, 66, 70, 65, 50, 37, 12, 8, 237, 130, 156, 120, 120, 120, 135, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0,
+			112, 1, 128, 7, 40, 10, 50, 13, 48, 15, 64, 26, 40, 37, 19, 53, 51, 51, 47, 29, 11, 8, 181, 111, 129, 120, 120, 120, 135, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 152, 0, 152, 1, 168, 7, 40, 10, 52, 13, 60, 15, 96, 25, 0, 30, 24, 56, 44, 48, 45, 26, 10, 8, 160, 105, 120, 120,
+			120, 120, 130, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 201, 4, 37, 0, 1, 5, 238, 14, 15, 233, 0, 15, 12, 244, 232, 21, 11, 0, 252, 238, 27, 254, 250, 251, 0, 30,
+			251, 232, 4, 19, 244, 249, 15, 238, 27, 244, 247, 11, 249, 2, 8, 250, 2, 7, 249, 8, 243, 14, 242, 2, 29, 243, 242, 0, 20, 248,
+			3, 5, 245, 7, 2, 12, 248, 239, 10, 18, 3, 229, 11, 9, 248, 28, 222, 16, 19, 252, 19, 249, 5, 237, 227, 235, 239, 35, 16, 242,
+			248, 244, 11, 239, 33, 20, 213, 26, 249, 5, 21, 227, 0, 35, 39, 240, 220, 12, 29, 29, 243, 242, 16, 29, 2, 229, 13, 0, 19, 8,
+			250, 245, 19, 4, 247, 220, 239, 234, 211, 242, 20, 8, 0, 6, 12, 238, 224, 14, 41, 195, 231, 247, 188, 236, 15, 234, 1, 25, 3, 231,
+			252, 28, 27, 35, 252, 236, 23, 58, 255, 232, 34, 41, 255, 8, 19, 252, 252, 29, 46, 235, 238, 74, 8, 189, 13, 27, 235, 233, 31, 14,
+			236, 228, 253, 23, 237, 239, 16, 234, 231, 29, 241, 242, 4, 16, 236, 239, 38, 228, 234, 68, 238, 216, 40, 240, 255, 24, 247, 11, 239, 255,
+			3, 21, 18, 227, 243, 44, 224, 253, 15, 5, 10, 216, 247, 51, 8, 200, 4, 36, 250, 2, 218, 249, 45, 2, 213, 11, 13, 177, 229, 20,
+			1, 232, 30, 21, 208, 26, 55, 18, 194, 20, 42, 7, 14, 218, 8, 59, 243, 251, 29, 252, 2, 247, 1, 15, 18, 243, 253, 10, 4, 255,
+			11, 252, 232, 248, 23, 250, 242, 243, 21, 246, 222, 33, 252, 244, 13, 253, 221, 255, 38, 250, 201, 55, 247, 214, 13, 0, 250, 2, 217, 218,
+			251, 51, 210, 204, 33, 55, 237, 217, 34, 13, 11, 232, 0, 80, 228, 255, 8, 19, 58, 210, 25, 40, 226, 51, 246, 237, 37, 12, 255, 234,
+			27, 26, 203, 36, 19, 221, 3, 1, 0, 237, 250, 28, 221, 237, 35, 240, 240, 1, 229, 253, 0, 7, 9, 244, 245, 233, 46, 251, 210, 26,
+			14, 248, 238, 33, 13, 203, 28, 26, 224, 5, 5, 252, 25, 245, 15, 1, 250, 29, 236, 237, 54, 221, 206, 247, 8, 247, 187, 21, 51, 222,
+			25, 35, 233, 12, 25, 219, 254, 45, 3, 245, 21, 26, 5, 253, 0, 5, 237, 35, 236, 226, 22, 43, 206, 238, 52, 19, 226, 236, 21, 1,
+			249, 244, 244, 4, 54, 223, 204, 22, 5, 0, 11, 197, 240, 53, 218, 232, 53, 210, 10, 21, 251, 244, 0, 2, 11, 8, 255, 249, 241, 38,
+			249, 217, 26, 27, 5, 11, 251, 218, 55, 26, 199, 5, 30, 10, 12, 198, 38, 7, 221, 38, 255, 227, 13, 6, 43, 224, 215, 62, 0, 235,
+			42, 212, 243, 43, 253, 253, 224, 16, 28, 244, 12, 4, 223, 251, 51, 226, 239, 19, 225, 30, 32, 213, 238, 6, 32, 231, 232, 27, 240, 238,
+			13, 11, 233, 247, 27, 237, 3, 250, 2, 22, 216, 19, 25, 222, 36, 10, 211, 254, 37, 46, 215, 220, 50, 230, 240, 30, 250, 246, 232, 31,
+			5, 232, 32, 243, 42, 239, 253, 31, 233, 14, 220, 48, 31, 210, 15, 245, 11, 15, 2, 237, 24, 251, 8, 217, 47, 33, 207, 7, 31, 17,
+			190, 11, 20, 242, 218, 34, 10, 179, 23, 52, 222, 236, 14, 25, 16, 246, 243, 10, 239, 183, 244, 12, 195, 241, 62, 188, 9, 23, 249, 246,
+			232, 88, 27, 171, 23, 49, 21, 34, 27, 225, 11, 7, 71, 197, 217, 93, 254, 213, 27, 22, 240, 25, 16, 224, 23, 23, 223, 36, 243, 220,
+			57, 242, 219, 218, 38, 13, 172, 28, 18, 226, 179, 57, 41, 164, 244, 66, 208, 251, 248, 234, 23, 34, 29, 195, 45, 248, 250, 12, 0, 20,
+			234, 33, 47, 208, 3, 63, 207, 34, 18, 185, 0, 31, 252, 216, 254, 19, 36, 10, 217, 220, 22, 34, 251, 217, 245, 70, 2, 181, 18, 35,
+			220, 96, 161, 18, 92, 165, 252, 42, 254, 10, 1, 228, 32, 0, 246, 2, 4, 30, 18, 240, 235, 26, 235, 225, 246, 35, 31, 184, 224, 65,
+			251, 241, 246, 13, 28, 232, 234, 48, 191, 233, 90, 231, 226, 43, 8, 191, 24, 62, 206, 221, 38, 25, 189, 252, 72, 218, 222, 69, 5, 208,
+			46, 245, 209, 21, 53, 250, 180, 54, 0, 198, 76, 7, 194, 26, 41, 235, 1, 240, 31, 240, 237, 51, 199, 237, 112, 217, 177, 52, 24, 222,
+			6, 238, 241, 55, 217, 183, 59, 58, 208, 241, 17, 35, 214, 0, 25, 255, 31, 219, 233, 54, 0, 247, 1, 228, 30, 215, 20, 53, 200, 20,
+			249, 238, 83, 254, 142, 16, 125, 236, 153, 40, 54, 253, 18, 206, 254, 49, 36, 205, 182, 51, 75, 223, 172, 9, 247, 48, 245, 240, 251, 8,
+			20, 226, 1, 24, 232, 3, 29, 15, 4, 252, 252, 12, 0, 16, 242, 66, 239, 184, 4, 38, 15, 225, 245, 21, 1, 241, 3, 219, 11, 227,
+			250, 38, 248, 188, 216, 77, 64, 187, 240, 5, 69, 230, 203, 57, 39, 243, 5, 240, 39, 19, 208, 248, 28, 2, 234, 248, 6, 248, 14, 11,
+			250, 24, 30, 221, 218, 44, 9, 250, 203, 242, 17, 19, 254, 202, 217, 49, 241, 241, 0, 238, 14, 32, 0, 230, 253, 44, 0, 223, 86, 233,
+			246, 39, 1, 246, 6, 4, 12, 234, 3, 38, 237, 16, 223, 223, 50, 23, 229, 211, 250, 27, 254, 246, 233, 219, 46, 250, 188, 40, 20, 239,
+			244, 42, 19, 233, 48, 18, 202, 9, 11, 229, 16, 22, 218, 245, 35, 32, 238, 223, 58, 7, 0, 11, 205, 221, 74, 25, 186, 10, 34, 244,
+			222, 250, 53, 16, 200, 20, 37, 254, 252, 227, 13, 18, 14, 252, 252, 31, 216, 204, 28, 50, 6, 234, 225, 35, 1, 230, 251, 22, 11, 2,
+			237, 0, 42, 241, 212, 38, 32, 227, 13, 9, 209, 10, 27, 238, 210, 248, 20, 231, 249, 13, 33, 0, 236, 34, 21, 9, 11, 227, 12, 29,
+			249, 226, 245, 14, 224, 196, 1, 3, 196, 242, 12, 37, 234, 243, 40, 16, 250, 21, 3, 252, 18, 11, 209, 241, 70, 18, 248, 3, 1, 249,
+			229, 16, 29, 236, 64, 29, 214, 13, 18, 4, 253, 240, 15, 4, 15, 239, 216, 10, 32, 246, 4, 239, 232, 222, 241, 4, 10, 1, 242, 238,
+			255, 12, 227, 242, 16, 248, 244, 10, 248, 244, 7, 0, 28, 35, 12, 237, 5, 32, 20, 17, 226, 0, 26, 4, 231, 15, 26, 224, 239, 31,
+			22, 244, 233, 246, 0, 0, 18, 246, 244, 24, 11, 253, 3, 242, 241, 0, 14, 18, 254, 247, 249, 1, 0, 243, 4, 13, 2, 243, 0, 6,
+			1, 29, 219, 236, 44, 3, 248, 243, 6, 48, 241, 242, 31, 4, 12, 252, 250, 22, 13, 240, 247, 1, 253, 237, 231, 246, 6, 1, 241, 252,
+			1, 6, 252, 247, 16, 11, 0, 17, 7, 7, 253, 0, 10, 232, 254, 20, 3, 250, 237, 245, 0, 0, 14, 254, 247, 252, 243, 0, 252, 248,
+			6, 7, 252, 0, 0, 0, 165, 0, 4, 0, 1, 0, 144, 0, 224, 1, 32, 3, 140, 10, 228, 12, 120, 15, 88, 27, 45, 51, 23, 55,
+			59, 35, 32, 18, 13, 5, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 144, 0, 224, 1, 32, 3, 140, 10, 228, 12, 120, 15, 88, 27,
+			60, 94, 32, 75, 80, 47, 44, 25, 18, 8, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 144, 0, 224, 1, 32, 3, 140, 10, 228, 12,
+			120, 15, 88, 27, 60, 75, 29, 67, 71, 42, 39, 22, 16, 7, 165, 131, 145, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 224, 1, 32, 3,
+			140, 10, 228, 12, 120, 15, 88, 27, 0, 44, 22, 51, 54, 32, 30, 17, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 156, 0, 4, 0,
+			1, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 46, 49, 30, 64, 61, 39, 37, 21, 11, 5, 200, 157, 123, 120,
+			120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 50, 85, 40, 84, 80, 52, 48, 28, 15, 6,
+			200, 157, 123, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 60, 79, 38, 81, 77, 50,
+			46, 27, 14, 6, 200, 157, 123, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 253, 0, 32, 3, 40, 5, 77, 10, 28, 13, 216, 14, 244, 27, 0, 52,
+			31, 66, 63, 40, 38, 22, 11, 5, 200, 157, 123, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 4, 0, 1, 0, 136, 0, 224, 1, 4, 6, 36, 9,
+			248, 12, 220, 15, 95, 27, 45, 47, 29, 60, 60, 42, 44, 25, 17, 6, 170, 137, 153, 122, 124, 128, 197, 137, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 136, 0, 224, 1,
+			4, 6, 36, 9, 248, 12, 220, 15, 95, 27, 50, 74, 36, 76, 76, 52, 55, 32, 21, 8, 170, 137, 153, 122, 124, 128, 197, 137, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			136, 0, 168, 1, 180, 5, 72, 8, 248, 12, 220, 15, 95, 27, 70, 79, 36, 76, 68, 52, 55, 32, 21, 8, 170, 137, 165, 122, 124, 128,
+			197, 137, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 136, 0, 144, 1, 84, 6, 72, 8, 248, 12, 220, 15, 95, 27, 0, 38, 24, 51, 54, 35, 29, 21, 14, 5, 170, 137,
+			135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 240, 0, 5, 0, 1, 0, 168, 0, 240, 1, 132, 3, 216, 9, 224, 11, 141, 14, 32, 27, 45, 56, 27, 57,
+			64, 39, 35, 21, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 168, 0, 240, 1, 132, 3, 216, 9, 224, 11, 141, 14, 32, 27,
+			80, 108, 38, 80, 89, 54, 49, 29, 18, 7, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 170, 0, 224, 1, 138, 3, 186, 9, 224, 11,
+			141, 14, 76, 27, 55, 85, 31, 74, 79, 48, 43, 27, 16, 6, 164, 133, 148, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 181, 0, 172, 1, 115, 3,
+			51, 9, 224, 11, 141, 14, 22, 28, 60, 73, 31, 73, 64, 40, 33, 21, 12, 7, 163, 126, 141, 120, 120, 120, 165, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 192, 0,
+			120, 1, 92, 3, 172, 8, 224, 11, 141, 14, 224, 28, 0, 39, 25, 58, 35, 24, 16, 14, 7, 7, 162, 120, 135, 120, 120, 120, 117, 90,
+			180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			215, 0, 6, 0, 1, 0, 132, 0, 16, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 37, 18, 57, 36, 30, 30, 30, 9, 12,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 16, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 20, 68, 24, 76, 51, 44,
+			48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 70, 54,
+			21, 68, 46, 39, 43, 39, 10, 14, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 178, 0, 126, 1, 31, 4, 53, 9, 251, 11, 131, 14,
+			113, 26, 40, 37, 22, 51, 47, 36, 32, 21, 14, 7, 163, 128, 153, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 138, 1, 212, 3, 56, 9,
+			224, 11, 136, 14, 144, 26, 40, 41, 24, 53, 51, 38, 33, 21, 15, 6, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0, 138, 1,
+			212, 3, 56, 9, 224, 11, 136, 14, 144, 26, 0, 29, 20, 44, 42, 31, 27, 17, 13, 5, 162, 133, 155, 120, 120, 120, 162, 127, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 100, 0,
+			3, 0, 5, 0, 4, 0, 176, 0, 208, 7, 184, 11, 58, 14, 136, 19, 224, 21, 40, 4, 0, 24, 2, 2, 4, 4, 4, 4, 150, 125,
+			137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 5, 0, 4, 0, 176, 0, 208, 7, 184, 11, 58, 14, 136, 19, 224, 21, 60, 5, 0, 25, 2, 2, 4, 4,
+			5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 9, 0, 4, 0, 176, 0, 108, 7, 184, 11, 58, 14, 136, 19, 224, 21, 0, 5, 0, 25,
+			2, 2, 4, 4, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 198, 8, 12, 0, 0, 255, 254, 252, 251, 251, 253, 0, 1, 1, 2, 2,
+			2, 0, 253, 251, 248, 245, 241, 237, 235, 236, 236, 237, 237, 237, 240, 243, 246, 245, 241, 238, 236, 235, 236, 237, 239, 244, 250, 253, 254, 0,
+			5, 10, 10, 4, 254, 250, 247, 240, 232, 227, 227, 228, 227, 230, 235, 240, 244, 245, 241, 240, 247, 0, 6, 6, 255, 247, 241, 231, 223, 230,
+			239, 242, 243, 247, 255, 8, 11, 6, 5, 6, 10, 22, 38, 49, 60, 70, 70, 66, 65, 65, 65, 64, 59, 49, 38, 23, 4, 244, 232, 218,
+			206, 202, 199, 196, 196, 197, 196, 199, 203, 207, 213, 221, 228, 233, 237, 239, 238, 238, 242, 247, 0, 14, 26, 30, 33, 37, 37, 39, 42, 41,
+			43, 47, 47, 46, 47, 43, 36, 31, 29, 27, 30, 39, 48, 56, 60, 58, 56, 61, 71, 81, 93, 105, 114, 120, 125, 123, 116, 113, 113, 109,
+			103, 104, 105, 102, 97, 90, 81, 78, 75, 60, 44, 38, 32, 25, 19, 6, 246, 235, 227, 225, 235, 249, 0, 0, 253, 249, 250, 254, 3, 11,
+			16, 16, 6, 252, 249, 254, 2, 2, 255, 251, 249, 242, 230, 214, 201, 197, 200, 200, 200, 207, 215, 224, 231, 231, 234, 246, 255, 252, 246, 241,
+			235, 227, 217, 211, 220, 242, 2, 8, 11, 14, 12, 1, 243, 227, 216, 210, 199, 182, 171, 172, 178, 183, 185, 188, 195, 208, 219, 222, 218, 214,
+			212, 210, 209, 213, 218, 225, 237, 249, 254, 0, 4, 14, 22, 20, 11, 3, 1, 250, 235, 222, 219, 222, 225, 228, 234, 241, 247, 255, 1, 3,
+			13, 27, 35, 34, 26, 17, 13, 4, 249, 246, 249, 249, 248, 249, 254, 4, 9, 7, 6, 9, 12, 19, 27, 29, 28, 28, 27, 22, 18, 18,
+			17, 13, 8, 3, 0, 250, 241, 234, 234, 237, 236, 235, 237, 238, 235, 227, 219, 220, 232, 249, 4, 14, 22, 30, 37, 37, 31, 25, 22, 16,
+			11, 11, 11, 13, 19, 24, 33, 39, 35, 27, 25, 18, 5, 254, 254, 0, 0, 251, 245, 241, 235, 229, 231, 236, 239, 239, 239, 239, 236, 232,
+			234, 242, 251, 0, 2, 7, 7, 255, 248, 247, 242, 227, 204, 190, 198, 217, 232, 247, 1, 2, 253, 244, 242, 9, 40, 37, 9, 246, 235, 223,
+			216, 220, 232, 244, 241, 223, 223, 251, 14, 7, 0, 253, 235, 216, 218, 236, 250, 249, 246, 254, 10, 19, 25, 36, 59, 70, 51, 31, 32, 31,
+			17, 3, 3, 22, 44, 48, 38, 29, 31, 30, 16, 254, 244, 244, 239, 226, 218, 230, 251, 8, 14, 20, 28, 29, 18, 2, 245, 235, 235, 244,
+			251, 3, 20, 35, 33, 21, 23, 44, 51, 21, 245, 245, 246, 234, 239, 1, 14, 17, 8, 252, 7, 32, 42, 35, 23, 12, 5, 255, 245, 242,
+			244, 240, 236, 241, 246, 247, 255, 9, 16, 20, 15, 12, 22, 24, 8, 1, 6, 8, 11, 9, 253, 251, 6, 11, 14, 15, 13, 24, 38, 30,
+			18, 21, 21, 8, 250, 244, 252, 5, 9, 20, 30, 19, 6, 13, 26, 29, 19, 6, 7, 16, 21, 33, 51, 56, 43, 23, 10, 11, 20, 31,
+			29, 11, 251, 244, 249, 9, 11, 251, 251, 10, 8, 250, 251, 13, 28, 22, 11, 15, 24, 15, 0, 255, 3, 4, 10, 18, 15, 8, 2, 3,
+			12, 13, 15, 35, 32, 249, 235, 1, 6, 251, 0, 13, 6, 251, 252, 11, 31, 32, 15, 15, 24, 18, 6, 255, 253, 2, 1, 251, 3, 19,
+			21, 12, 1, 3, 19, 27, 15, 254, 237, 221, 218, 234, 245, 241, 248, 2, 248, 236, 4, 45, 58, 42, 32, 40, 43, 36, 35, 41, 29, 252,
+			226, 228, 237, 245, 12, 34, 29, 11, 249, 236, 241, 252, 249, 241, 234, 228, 235, 246, 0, 28, 54, 45, 19, 6, 10, 24, 22, 251, 231, 237,
+			252, 11, 23, 27, 21, 5, 249, 1, 15, 21, 24, 14, 248, 241, 251, 8, 23, 26, 14, 10, 7, 249, 249, 17, 26, 0, 232, 238, 2, 0,
+			244, 251, 13, 16, 0, 247, 8, 29, 21, 0, 1, 11, 2, 231, 209, 223, 4, 18, 3, 0, 20, 29, 9, 5, 46, 62, 13, 235, 254, 17,
+			11, 254, 251, 12, 18, 252, 241, 4, 18, 5, 242, 245, 15, 27, 13, 4, 7, 6, 7, 18, 25, 12, 251, 253, 15, 17, 6, 13, 27, 12,
+			240, 244, 24, 38, 10, 235, 233, 252, 10, 2, 252, 5, 6, 0, 10, 17, 16, 24, 21, 0, 252, 4, 11, 19, 12, 255, 18, 46, 40, 33,
+			40, 33, 23, 27, 13, 243, 233, 237, 241, 247, 242, 241, 9, 36, 33, 3, 235, 226, 212, 195, 205, 229, 243, 254, 3, 255, 6, 38, 71, 76,
+			43, 13, 25, 47, 39, 13, 9, 37, 43, 255, 221, 243, 27, 38, 255, 204, 211, 249, 244, 226, 246, 20, 24, 15, 11, 25, 42, 35, 1, 234,
+			246, 0, 245, 249, 8, 245, 221, 248, 34, 38, 3, 231, 252, 35, 8, 203, 221, 34, 22, 199, 199, 33, 76, 21, 241, 29, 75, 58, 15, 254,
+			2, 252, 219, 202, 241, 25, 13, 246, 9, 44, 48, 33, 27, 24, 6, 238, 229, 246, 7, 234, 190, 204, 242, 243, 232, 249, 8, 3, 4, 24,
+			34, 26, 11, 250, 237, 235, 246, 17, 31, 9, 248, 250, 3, 30, 45, 29, 26, 25, 0, 240, 242, 239, 245, 252, 242, 236, 247, 6, 22, 30,
+			19, 252, 243, 252, 246, 227, 222, 224, 221, 221, 231, 252, 21, 21, 255, 246, 5, 24, 26, 252, 222, 232, 248, 237, 235, 0, 9, 255, 246, 3,
+			42, 69, 45, 6, 249, 250, 255, 254, 244, 246, 246, 215, 206, 255, 43, 33, 251, 236, 251, 0, 237, 234, 253, 249, 212, 182, 206, 254, 253, 224,
+			236, 15, 24, 13, 0, 0, 20, 16, 238, 239, 26, 31, 246, 226, 252, 37, 47, 3, 236, 15, 24, 238, 221, 244, 0, 234, 199, 209, 253, 0,
+			239, 246, 9, 32, 31, 253, 244, 254, 234, 215, 217, 234, 9, 16, 6, 31, 49, 33, 28, 18, 246, 231, 224, 223, 240, 232, 202, 195, 208, 229,
+			6, 28, 30, 25, 15, 0, 251, 5, 10, 241, 203, 201, 244, 31, 31, 12, 15, 17, 1, 249, 253, 239, 201, 186, 226, 7, 7, 10, 8, 249,
+			244, 235, 228, 250, 246, 211, 207, 218, 232, 6, 10, 252, 0, 248, 237, 0, 3, 248, 250, 238, 229, 250, 12, 14, 13, 14, 16, 7, 1, 3,
+			242, 231, 249, 254, 239, 231, 224, 230, 248, 253, 3, 14, 0, 227, 216, 231, 248, 254, 253, 241, 228, 228, 230, 239, 6, 15, 247, 219, 232, 10,
+			9, 243, 252, 17, 22, 2, 225, 236, 15, 252, 233, 13, 31, 11, 250, 247, 21, 48, 22, 238, 221, 228, 238, 228, 234, 13, 3, 218, 226, 5,
+			32, 36, 250, 215, 232, 231, 212, 233, 251, 226, 207, 235, 35, 55, 13, 236, 254, 20, 15, 252, 239, 240, 243, 247, 13, 34, 13, 238, 242, 6,
+			20, 23, 255, 219, 218, 239, 246, 243, 246, 247, 237, 230, 240, 0, 9, 8, 248, 237, 3, 7, 215, 189, 217, 233, 233, 247, 247, 231, 240, 255,
+			2, 21, 25, 12, 21, 25, 253, 234, 234, 245, 7, 11, 18, 27, 249, 222, 7, 47, 54, 31, 224, 196, 230, 234, 224, 240, 219, 189, 200, 223,
+			4, 34, 5, 234, 249, 0, 0, 8, 255, 234, 223, 222, 230, 233, 238, 0, 14, 15, 20, 35, 50, 45, 22, 11, 8, 247, 231, 238, 243, 227,
+			209, 210, 229, 5, 26, 14, 251, 244, 240, 234, 228, 221, 219, 216, 218, 236, 249, 250, 3, 17, 25, 31, 14, 238, 229, 232, 224, 225, 242, 2,
+			16, 14, 17, 48, 57, 21, 4, 8, 249, 227, 215, 217, 243, 7, 1, 255, 1, 247, 234, 240, 5, 19, 2, 219, 203, 235, 11, 253, 227, 239,
+			12, 22, 5, 243, 2, 14, 230, 199, 219, 229, 215, 217, 234, 14, 53, 38, 252, 248, 19, 33, 18, 243, 222, 219, 213, 203, 223, 255, 243, 211,
+			224, 16, 52, 50, 14, 249, 6, 21, 11, 241, 221, 216, 195, 177, 210, 250, 240, 215, 222, 15, 57, 48, 29, 15, 241, 231, 241, 237, 233, 214,
+			192, 227, 18, 35, 65, 71, 36, 29, 30, 8, 246, 205, 162, 174, 195, 204, 223, 235, 2, 31, 29, 38, 52, 17, 239, 239, 254, 4, 214, 156,
+			187, 252, 12, 23, 45, 48, 20, 240, 245, 37, 53, 5, 207, 197, 214, 214, 214, 233, 248, 250, 243, 246, 30, 62, 38, 0, 228, 216, 244, 15,
+			10, 254, 232, 218, 239, 251, 249, 13, 8, 228, 230, 13, 46, 43, 255, 222, 237, 5, 7, 232, 199, 214, 237, 227, 239, 24, 34, 6, 229, 243,
+			41, 37, 222, 188, 226, 8, 4, 239, 237, 252, 10, 15, 12, 33, 50, 8, 222, 229, 245, 254, 237, 196, 205, 237, 229, 240, 254, 220, 228, 24,
+			48, 68, 56, 250, 235, 4, 8, 15, 255, 204, 197, 207, 203, 239, 21, 2, 234, 243, 21, 58, 42, 246, 227, 236, 243, 243, 229, 224, 241, 243,
+			234, 247, 4, 8, 14, 13, 3, 2, 0, 247, 0, 9, 253, 251, 0, 235, 227, 1, 5, 236, 228, 230, 241, 5, 3, 251, 253, 240, 234, 253,
+			254, 248, 254, 245, 239, 1, 17, 26, 28, 15, 0, 248, 243, 247, 251, 249, 245, 226, 222, 0, 18, 3, 248, 245, 251, 0, 242, 237, 248, 240,
+			227, 229, 234, 249, 253, 234, 242, 12, 14, 8, 3, 0, 17, 17, 250, 254, 7, 255, 0, 248, 233, 251, 0, 244, 0, 6, 253, 0, 240, 229,
+			13, 31, 5, 254, 255, 248, 245, 228, 237, 20, 4, 220, 240, 24, 36, 11, 213, 214, 12, 255, 210, 230, 255, 250, 244, 242, 23, 65, 21, 222,
+			249, 25, 7, 227, 209, 228, 239, 217, 227, 7, 16, 12, 2, 2, 42, 57, 18, 254, 250, 230, 216, 206, 218, 1, 3, 238, 8, 49, 45, 12,
+			240, 236, 240, 237, 232, 225, 218, 214, 209, 240, 47, 63, 22, 240, 234, 253, 254, 222, 213, 237, 242, 230, 236, 12, 45, 38, 6, 253, 14, 20,
+			248, 212, 211, 227, 231, 236, 255, 19, 24, 8, 4, 30, 51, 37, 6, 237, 228, 222, 211, 216, 232, 235, 229, 231, 255, 30, 27, 253, 250, 22,
+			34, 255, 208, 207, 231, 229, 227, 242, 4, 20, 11, 251, 31, 65, 29, 254, 11, 22, 17, 241, 204, 223, 246, 226, 224, 251, 2, 2, 0, 250,
+			6, 17, 1, 239, 237, 240, 231, 213, 223, 254, 9, 1, 246, 239, 5, 29, 16, 5, 7, 240, 224, 238, 252, 10, 14, 244, 236, 7, 27, 39,
+			37, 4, 243, 247, 245, 248, 248, 227, 218, 221, 226, 248, 16, 21, 12, 4, 18, 42, 34, 9, 250, 233, 224, 225, 218, 218, 234, 243, 245, 251,
+			4, 27, 41, 20, 253, 1, 5, 244, 222, 223, 252, 9, 242, 232, 5, 22, 9, 253, 253, 10, 10, 232, 213, 245, 4, 237, 226, 240, 252, 6,
+			8, 255, 0, 0, 247, 251, 1, 0, 253, 230, 222, 16, 51, 29, 14, 11, 255, 0, 0, 241, 230, 214, 202, 220, 246, 250, 248, 3, 18, 24,
+			28, 23, 254, 230, 225, 226, 235, 255, 17, 12, 249, 2, 29, 26, 10, 6, 254, 248, 235, 223, 253, 18, 236, 219, 249, 12, 35, 49, 21, 255,
+			1, 3, 12, 13, 238, 205, 194, 202, 231, 2, 3, 255, 8, 28, 41, 41, 31, 10, 238, 214, 205, 216, 230, 238, 244, 244, 247, 11, 29, 26,
+			12, 253, 252, 5, 250, 232, 236, 237, 225, 223, 241, 23, 46, 28, 9, 7, 5, 0, 242, 229, 235, 238, 232, 235, 244, 4, 19, 10, 4, 14,
+			8, 251, 236, 227, 242, 0, 253, 0, 7, 15, 23, 5, 247, 252, 236, 224, 245, 249, 241, 250, 250, 253, 18, 27, 34, 46, 36, 4, 235, 221,
+			211, 212, 232, 253, 0, 251, 253, 19, 49, 53, 30, 8, 249, 232, 215, 204, 211, 228, 229, 222, 244, 35, 63, 48, 17, 1, 1, 254, 237, 221,
+			219, 224, 233, 244, 255, 14, 24, 11, 253, 2, 14, 17, 9, 245, 229, 235, 249, 1, 0, 242, 230, 244, 18, 28, 17, 12, 4, 253, 8, 0,
+			224, 213, 205, 200, 238, 15, 12, 16, 19, 11, 28, 46, 30, 255, 231, 234, 253, 247, 232, 237, 242, 253, 19, 20, 14, 14, 3, 4, 20, 3,
+			242, 252, 248, 255, 26, 12, 245, 0, 4, 5, 24, 16, 253, 244, 233, 249, 19, 5, 243, 235, 228, 254, 12, 244, 240, 247, 240, 5, 20, 5,
+			13, 7, 239, 12, 37, 16, 10, 0, 238, 0, 253, 227, 249, 9, 250, 251, 245, 240, 11, 9, 236, 248, 4, 240, 231, 246, 4, 0, 233, 227,
+			246, 254, 253, 5, 11, 2, 246, 245, 0, 254, 244, 241, 243, 247, 249, 0, 20, 30, 13, 1, 13, 24, 22, 9, 252, 254, 1, 244, 233, 239,
+			242, 240, 241, 240, 242, 253, 253, 247, 254, 1, 254, 254, 250, 250, 0, 0, 175, 0, 4, 0, 1, 0, 208, 0, 144, 2, 24, 6, 136, 9,
+			22, 13, 216, 14, 92, 27, 45, 38, 30, 55, 57, 46, 32, 23, 10, 5, 168, 135, 157, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 208, 0, 144, 2,
+			24, 6, 136, 9, 22, 13, 216, 14, 92, 27, 70, 61, 38, 70, 73, 58, 41, 29, 13, 6, 168, 135, 157, 120, 120, 120, 200, 127, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			202, 0, 136, 2, 0, 6, 140, 9, 4, 13, 196, 14, 92, 27, 60, 50, 35, 63, 67, 51, 37, 27, 13, 6, 168, 136, 153, 120, 120, 120,
+			200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 202, 0, 136, 2, 0, 6, 140, 9, 4, 13, 196, 14, 92, 27, 0, 27, 27, 46, 49, 37, 23, 17, 9, 4, 168, 136,
+			153, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27, 45, 56, 28, 56,
+			68, 34, 34, 22, 14, 6, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27,
+			80, 111, 40, 80, 96, 48, 48, 31, 20, 8, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11,
+			196, 14, 159, 27, 70, 96, 38, 72, 91, 45, 45, 29, 19, 8, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 24, 2, 152, 3,
+			40, 10, 244, 11, 196, 14, 159, 27, 0, 47, 26, 50, 64, 32, 32, 20, 13, 5, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 190, 0, 4, 0,
+			1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 50, 42, 32, 62, 49, 52, 44, 32, 14, 6, 161, 98, 126, 120,
+			120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 80, 67, 40, 78, 61, 66, 55, 40, 17, 8,
+			161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 60, 56, 37, 71, 56, 61,
+			51, 37, 16, 7, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 0, 32,
+			28, 54, 42, 46, 38, 28, 12, 5, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0, 6, 0, 1, 0, 186, 0, 176, 2, 84, 6, 80, 10,
+			192, 13, 100, 15, 160, 27, 50, 41, 39, 54, 66, 42, 33, 27, 15, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 186, 0, 176, 2,
+			84, 6, 80, 10, 192, 13, 100, 15, 160, 27, 50, 63, 48, 66, 81, 52, 40, 33, 18, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			186, 0, 160, 2, 84, 6, 80, 10, 192, 13, 100, 15, 160, 27, 45, 47, 42, 52, 75, 45, 36, 29, 16, 0, 180, 150, 125, 120, 120, 120,
+			200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 188, 0, 34, 2, 57, 5, 54, 10, 250, 12, 206, 14, 197, 27, 45, 26, 37, 37, 42, 31, 26, 21, 10, 2, 180, 119,
+			122, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 192, 0, 135, 1, 222, 3, 20, 10, 6, 12, 21, 14, 244, 27, 40, 20, 40, 29, 26, 17, 22, 16,
+			6, 5, 180, 81, 119, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 192, 0, 135, 1, 222, 3, 20, 10, 6, 12, 21, 14, 244, 27, 0, 14, 34, 24,
+			14, 14, 18, 14, 5, 4, 180, 81, 119, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 244, 0, 6, 0, 1, 0, 228, 0, 40, 2, 128, 3, 120, 10, 8, 12,
+			15, 14, 216, 27, 50, 61, 29, 60, 73, 30, 34, 21, 10, 6, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 228, 0, 40, 2, 128, 3,
+			120, 10, 8, 12, 15, 14, 216, 27, 40, 85, 35, 71, 86, 35, 40, 25, 12, 7, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 228, 0,
+			40, 2, 128, 3, 120, 10, 8, 12, 15, 14, 216, 27, 45, 75, 33, 67, 81, 33, 38, 23, 11, 6, 180, 112, 128, 120, 120, 120, 105, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 215, 0, 229, 1, 83, 3, 127, 10, 228, 12, 60, 15, 176, 27, 50, 47, 41, 51, 63, 25, 25, 19, 11, 5, 164, 96, 118, 120,
+			120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 205, 0, 184, 1, 52, 3, 132, 10, 248, 12, 4, 16, 148, 27, 60, 21, 43, 30, 30, 20, 13, 13, 9, 4,
+			153, 85, 112, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 205, 0, 184, 1, 52, 3, 132, 10, 248, 12, 4, 16, 148, 27, 0, 16, 37, 26, 26, 17,
+			11, 11, 8, 3, 153, 85, 112, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 139, 0, 3, 0, 1, 0, 80, 1, 168, 2, 124, 6, 216, 9, 192, 13, 185, 15,
+			32, 29, 50, 49, 35, 57, 69, 51, 38, 29, 10, 8, 255, 150, 180, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 88, 1, 168, 2, 124, 6, 216, 9,
+			192, 13, 185, 15, 32, 29, 90, 82, 45, 74, 89, 66, 50, 38, 13, 8, 255, 150, 180, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 88, 1, 168, 2,
+			124, 6, 216, 9, 192, 13, 185, 15, 32, 29, 0, 47, 34, 56, 67, 50, 38, 28, 9, 9, 255, 150, 180, 120, 120, 120, 135, 180, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 167, 10,
+			52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 255, 253, 255, 0, 1, 1, 0, 255, 253, 255, 1,
+			0, 254, 0, 7, 6, 254, 2, 3, 1, 0, 0, 0, 253, 253, 244, 245, 8, 21, 10, 251, 249, 4, 0, 0, 4, 4, 246, 237, 246, 10,
+			15, 27, 27, 225, 225, 2, 34, 31, 7, 252, 226, 4, 33, 247, 210, 242, 25, 37, 13, 247, 241, 243, 25, 28, 247, 237, 254, 65, 35, 236,
+			218, 188, 249, 59, 78, 31, 199, 236, 10, 229, 22, 50, 36, 238, 191, 14, 47, 241, 234, 236, 224, 68, 38, 10, 241, 213, 43, 0, 6, 33,
+			244, 26, 235, 221, 6, 233, 38, 252, 235, 235, 5, 57, 253, 254, 18, 15, 5, 221, 203, 212, 219, 255, 22, 52, 57, 23, 218, 184, 213, 244,
+			18, 31, 40, 10, 225, 228, 236, 242, 245, 17, 29, 243, 221, 245, 24, 23, 17, 251, 237, 225, 237, 0, 250, 243, 0, 20, 17, 21, 246, 216,
+			245, 30, 55, 242, 209, 2, 7, 27, 23, 248, 236, 219, 6, 19, 254, 47, 23, 250, 227, 207, 5, 12, 23, 13, 7, 0, 251, 249, 249, 250,
+			254, 0, 255, 251, 248, 248, 254, 5, 8, 12, 12, 255, 254, 13, 0, 243, 245, 247, 0, 0, 10, 14, 2, 250, 247, 251, 4, 1, 253, 243,
+			250, 4, 4, 255, 1, 2, 2, 1, 4, 0, 1, 255, 0, 3, 5, 7, 4, 5, 9, 5, 1, 0, 3, 4, 11, 8, 5, 0, 2, 3,
+			6, 4, 255, 255, 0, 1, 1, 1, 2, 8, 9, 6, 3, 252, 250, 248, 252, 5, 8, 5, 4, 0, 255, 252, 253, 251, 1, 7, 4, 0,
+			252, 254, 253, 1, 3, 2, 254, 0, 255, 252, 252, 255, 254, 1, 3, 253, 253, 0, 3, 255, 253, 2, 4, 4, 6, 2, 255, 249, 252, 4,
+			4, 8, 8, 3, 1, 255, 3, 254, 250, 0, 4, 6, 0, 252, 1, 255, 1, 1, 255, 248, 253, 2, 5, 9, 255, 247, 251, 251, 0, 10,
+			2, 251, 236, 250, 2, 7, 6, 0, 1, 11, 7, 5, 4, 3, 3, 245, 253, 6, 253, 0, 0, 254, 243, 244, 1, 5, 4, 251, 248, 247,
+			236, 249, 5, 6, 250, 252, 6, 12, 254, 248, 242, 245, 21, 37, 248, 234, 3, 248, 247, 20, 30, 246, 224, 0, 34, 13, 14, 239, 248, 10,
+			0, 16, 0, 3, 9, 253, 3, 3, 247, 244, 238, 23, 49, 1, 247, 225, 0, 29, 245, 1, 3, 253, 236, 249, 11, 14, 14, 13, 10, 10,
+			11, 10, 6, 254, 244, 240, 254, 13, 5, 254, 254, 18, 0, 4, 206, 237, 18, 253, 25, 241, 250, 1, 243, 32, 206, 6, 52, 241, 211, 219,
+			46, 28, 221, 18, 238, 221, 47, 39, 8, 197, 0, 239, 208, 39, 69, 254, 208, 241, 15, 5, 245, 0, 238, 41, 15, 190, 47, 15, 242, 226,
+			247, 28, 10, 22, 2, 230, 214, 17, 16, 46, 16, 161, 31, 46, 223, 245, 241, 64, 206, 19, 20, 216, 36, 208, 34, 18, 211, 27, 207, 62,
+			231, 221, 100, 183, 255, 41, 235, 242, 245, 100, 239, 150, 0, 52, 13, 16, 253, 8, 23, 0, 248, 15, 24, 206, 211, 226, 64, 40, 42, 23,
+			151, 194, 28, 50, 19, 214, 3, 19, 224, 241, 244, 45, 255, 230, 255, 24, 24, 245, 246, 213, 241, 46, 1, 232, 236, 30, 30, 5, 77, 20,
+			2, 57, 17, 35, 9, 250, 10, 221, 25, 21, 255, 15, 213, 226, 5, 241, 238, 208, 211, 12, 234, 0, 244, 188, 253, 26, 246, 211, 240, 21,
+			3, 6, 236, 225, 231, 233, 46, 49, 13, 243, 2, 34, 12, 243, 3, 0, 19, 54, 56, 13, 14, 10, 36, 8, 232, 1, 0, 252, 2, 4,
+			255, 228, 250, 246, 250, 244, 226, 235, 242, 236, 237, 213, 231, 10, 23, 242, 225, 242, 26, 5, 251, 250, 9, 8, 13, 8, 0, 1, 11, 18,
+			16, 9, 7, 12, 17, 14, 1, 245, 243, 22, 49, 38, 246, 247, 247, 7, 8, 253, 221, 229, 21, 10, 247, 240, 237, 9, 15, 232, 229, 252,
+			33, 22, 237, 1, 249, 228, 0, 14, 37, 4, 226, 21, 0, 214, 14, 41, 39, 4, 217, 243, 17, 22, 6, 243, 12, 15, 2, 18, 4, 219,
+			242, 254, 17, 31, 248, 246, 248, 252, 241, 253, 19, 2, 15, 252, 240, 253, 252, 247, 244, 5, 23, 12, 21, 217, 210, 0, 5, 39, 7, 239,
+			249, 248, 25, 0, 251, 240, 221, 36, 49, 14, 244, 224, 0, 10, 226, 247, 24, 9, 18, 10, 5, 250, 235, 5, 243, 1, 18, 250, 245, 250,
+			14, 15, 243, 244, 10, 12, 246, 229, 241, 23, 34, 253, 219, 213, 4, 52, 34, 27, 224, 233, 16, 247, 252, 21, 248, 233, 7, 3, 3, 237,
+			225, 12, 23, 26, 17, 251, 4, 243, 224, 235, 240, 22, 23, 29, 11, 212, 215, 28, 18, 12, 0, 248, 8, 237, 247, 250, 222, 23, 23, 23,
+			32, 229, 228, 248, 254, 28, 12, 253, 251, 227, 234, 38, 31, 9, 2, 230, 251, 0, 246, 26, 26, 10, 255, 234, 29, 39, 207, 213, 230, 7,
+			66, 19, 238, 242, 223, 247, 13, 25, 38, 6, 230, 233, 0, 0, 255, 239, 250, 0, 24, 36, 9, 239, 236, 255, 11, 12, 5, 2, 3, 5,
+			5, 5, 3, 4, 5, 2, 255, 248, 240, 242, 250, 5, 252, 39, 5, 213, 9, 20, 254, 237, 230, 50, 60, 240, 249, 3, 212, 244, 22, 2,
+			21, 239, 17, 27, 220, 228, 35, 6, 221, 239, 11, 52, 14, 210, 8, 25, 4, 229, 200, 38, 22, 236, 33, 5, 215, 207, 253, 52, 11, 254,
+			16, 227, 217, 5, 44, 244, 171, 225, 40, 27, 32, 35, 223, 212, 243, 28, 21, 223, 237, 5, 231, 235, 57, 72, 238, 166, 222, 248, 23, 45,
+			52, 14, 170, 252, 54, 249, 220, 198, 30, 43, 215, 18, 38, 19, 241, 245, 10, 211, 195, 55, 73, 250, 226, 0, 37, 226, 199, 47, 63, 212,
+			13, 46, 3, 32, 187, 236, 102, 1, 235, 10, 221, 66, 15, 169, 50, 213, 249, 117, 242, 244, 237, 221, 36, 9, 241, 19, 219, 246, 65, 218,
+			215, 27, 33, 13, 209, 13, 250, 225, 243, 75, 45, 191, 223, 223, 19, 33, 5, 66, 208, 188, 29, 11, 39, 246, 221, 38, 228, 2, 35, 229,
+			21, 243, 212, 79, 252, 229, 17, 240, 24, 201, 220, 82, 27, 215, 231, 7, 21, 243, 239, 18, 246, 235, 4, 251, 24, 243, 5, 6, 221, 5,
+			16, 23, 230, 247, 23, 251, 224, 228, 35, 41, 1, 237, 205, 20, 68, 243, 219, 235, 16, 31, 240, 243, 218, 225, 255, 11, 8, 1, 2, 7,
+			9, 7, 2, 253, 1, 14, 13, 2, 252, 7, 19, 239, 11, 11, 1, 251, 229, 18, 11, 1, 235, 22, 7, 230, 244, 28, 252, 24, 243, 252,
+			241, 12, 7, 34, 230, 239, 22, 239, 34, 249, 239, 246, 244, 29, 16, 252, 4, 0, 201, 16, 37, 247, 244, 6, 19, 251, 210, 247, 86, 250,
+			197, 239, 23, 42, 0, 221, 31, 246, 197, 22, 50, 14, 6, 207, 15, 7, 211, 47, 22, 245, 254, 216, 5, 4, 24, 48, 245, 175, 199, 75,
+			66, 45, 209, 179, 241, 241, 71, 92, 223, 203, 205, 16, 23, 255, 24, 23, 244, 242, 239, 242, 11, 2, 45, 254, 229, 205, 235, 84, 45, 222,
+			203, 220, 66, 2, 22, 25, 212, 243, 240, 11, 28, 236, 12, 36, 252, 231, 236, 228, 47, 31, 232, 232, 239, 8, 25, 10, 17, 200, 238, 35,
+			34, 35, 238, 224, 229, 222, 249, 57, 66, 23, 185, 189, 244, 58, 55, 226, 253, 5, 244, 8, 232, 0, 11, 21, 19, 203, 212, 50, 0, 36,
+			42, 231, 206, 207, 48, 45, 252, 236, 220, 42, 15, 3, 2, 201, 232, 73, 45, 247, 212, 239, 1, 1, 41, 2, 227, 234, 10, 30, 14, 241,
+			252, 17, 0, 236, 25, 236, 247, 29, 12, 250, 250, 233, 21, 5, 252, 251, 21, 17, 32, 210, 237, 229, 243, 13, 0, 252, 244, 241, 253, 5,
+			6, 5, 7, 11, 13, 6, 232, 205, 232, 45, 97, 10, 211, 208, 238, 35, 10, 11, 2, 231, 3, 38, 6, 246, 228, 220, 49, 29, 234, 224,
+			220, 12, 45, 49, 250, 185, 227, 22, 52, 49, 242, 178, 237, 22, 44, 11, 209, 247, 6, 227, 34, 25, 18, 243, 22, 67, 7, 202, 13, 60,
+			255, 229, 188, 253, 72, 10, 236, 231, 183, 255, 78, 30, 244, 193, 251, 14, 46, 49, 227, 207, 198, 34, 62, 5, 232, 245, 13, 236, 228, 0,
+			15, 237, 214, 233, 1, 3, 28, 249, 1, 253, 18, 17, 0, 6, 6, 241, 16, 0, 0, 4, 238, 255, 22, 31, 254, 202, 2, 26, 243, 13,
+			25, 20, 0, 193, 255, 20, 242, 27, 17, 246, 216, 224, 29, 50, 0, 240, 234, 228, 219, 40, 95, 19, 173, 225, 63, 42, 7, 0, 0, 241,
+			251, 19, 28, 240, 223, 238, 46, 39, 219, 201, 245, 13, 31, 11, 219, 195, 255, 51, 28, 214, 198, 7, 41, 37, 20, 254, 198, 208, 215, 52,
+			74, 36, 251, 191, 206, 20, 45, 54, 233, 241, 4, 19, 25, 17, 241, 235, 232, 1, 38, 36, 9, 253, 233, 211, 255, 49, 11, 222, 20, 56,
+			247, 208, 181, 243, 55, 21, 14, 23, 240, 212, 253, 24, 29, 33, 201, 225, 14, 39, 68, 254, 193, 212, 252, 20, 2, 252, 249, 248, 254, 1,
+			0, 255, 3, 10, 15, 12, 255, 243, 255, 11, 13, 242, 237, 202, 20, 88, 19, 223, 203, 213, 23, 26, 15, 41, 247, 204, 250, 243, 47, 44,
+			215, 205, 17, 11, 40, 4, 232, 253, 8, 235, 1, 14, 14, 7, 241, 11, 24, 2, 240, 241, 234, 218, 10, 87, 37, 227, 178, 202, 24, 65,
+			27, 253, 221, 204, 239, 40, 49, 21, 216, 202, 247, 11, 48, 44, 251, 203, 215, 7, 85, 29, 210, 171, 246, 63, 84, 225, 184, 250, 34, 254,
+			245, 248, 45, 19, 223, 227, 227, 50, 74, 13, 251, 185, 194, 38, 248, 15, 59, 253, 234, 196, 231, 127, 5, 228, 216, 209, 76, 19, 200, 255,
+			4, 8, 58, 210, 219, 11, 245, 92, 29, 225, 4, 195, 234, 69, 3, 225, 242, 15, 50, 231, 214, 10, 247, 219, 59, 59, 227, 199, 188, 53,
+			85, 245, 237, 218, 214, 44, 50, 237, 214, 13, 46, 14, 233, 251, 251, 242, 251, 37, 19, 216, 211, 22, 59, 26, 217, 229, 18, 22, 15, 252,
+			252, 243, 222, 243, 29, 41, 235, 214, 32, 32, 42, 226, 200, 8, 236, 39, 39, 239, 0, 8, 223, 237, 21, 43, 31, 236, 200, 19, 51, 22,
+			235, 217, 0, 6, 230, 31, 48, 24, 251, 201, 214, 27, 39, 17, 236, 207, 251, 48, 10, 248, 235, 2, 14, 247, 254, 0, 253, 253, 251, 249,
+			250, 252, 0, 9, 17, 21, 12, 250, 237, 233, 238, 250, 38, 249, 216, 245, 30, 43, 28, 189, 208, 21, 25, 37, 8, 213, 200, 220, 39, 66,
+			252, 242, 219, 248, 21, 13, 9, 12, 226, 193, 254, 61, 37, 230, 199, 234, 17, 50, 6, 254, 249, 221, 11, 36, 248, 245, 15, 11, 225, 225,
+			28, 59, 21, 232, 241, 228, 20, 28, 23, 4, 207, 218, 4, 37, 57, 240, 213, 0, 255, 16, 16, 0, 233, 245, 17, 15, 22, 252, 231, 15,
+			252, 228, 253, 10, 52, 41, 231, 244, 236, 211, 5, 29, 53, 24, 222, 207, 224, 30, 75, 14, 224, 220, 253, 48, 18, 202, 222, 46, 63, 0,
+			198, 209, 25, 47, 11, 227, 233, 6, 39, 16, 234, 246, 251, 240, 2, 252, 11, 46, 242, 211, 251, 37, 33, 243, 218, 251, 29, 0, 252, 251,
+			3, 248, 242, 21, 15, 6, 251, 239, 252, 252, 1, 5, 23, 8, 222, 232, 27, 30, 247, 228, 252, 13, 6, 19, 13, 244, 218, 229, 16, 36,
+			15, 1, 240, 1, 16, 11, 255, 255, 229, 250, 22, 0, 241, 23, 27, 13, 233, 217, 8, 25, 21, 14, 221, 246, 14, 19, 255, 245, 229, 240,
+			22, 37, 25, 242, 209, 244, 3, 17, 26, 240, 220, 234, 2, 48, 24, 235, 218, 224, 16, 39, 247, 246, 2, 17, 1, 244, 238, 241, 253, 7,
+			8, 1, 254, 4, 14, 16, 2, 241, 232, 253, 18, 32, 255, 210, 227, 10, 50, 2, 218, 240, 244, 36, 43, 242, 226, 222, 255, 35, 47, 253,
+			213, 216, 245, 33, 39, 16, 247, 238, 253, 10, 5, 15, 255, 231, 247, 6, 7, 5, 27, 3, 237, 7, 0, 0, 7, 12, 2, 237, 242, 11,
+			17, 24, 252, 217, 253, 19, 28, 6, 232, 239, 254, 247, 5, 18, 19, 3, 230, 6, 24, 233, 247, 28, 4, 241, 243, 11, 13, 4, 244, 249,
+			0, 252, 25, 25, 255, 231, 220, 16, 37, 250, 232, 238, 36, 33, 250, 1, 253, 226, 248, 6, 36, 5, 219, 234, 245, 10, 38, 16, 238, 211,
+			255, 32, 24, 252, 239, 232, 236, 0, 29, 11, 252, 242, 254, 24, 15, 248, 240, 243, 253, 1, 20, 7, 236, 240, 7, 15, 12, 6, 247, 4,
+			251, 255, 16, 254, 250, 255, 254, 0, 252, 16, 37, 13, 231, 236, 2, 21, 23, 6, 241, 245, 255, 18, 12, 246, 244, 10, 24, 10, 238, 242,
+			8, 18, 20, 13, 239, 240, 4, 13, 4, 250, 254, 16, 20, 0, 235, 246, 14, 27, 1, 248, 235, 241, 16, 17, 254, 243, 234, 238, 6, 27,
+			1, 245, 253, 7, 232, 233, 5, 254, 253, 12, 0, 248, 244, 6, 246, 220, 2, 9, 9, 18, 245, 242, 248, 249, 2, 3, 252, 247, 255, 8,
+			12, 10, 6, 2, 1, 6, 9, 6, 2, 247, 237, 230, 16, 251, 228, 31, 16, 245, 244, 235, 254, 252, 21, 62, 252, 208, 219, 221, 30, 71,
+			253, 213, 251, 18, 8, 238, 36, 36, 231, 212, 248, 232, 42, 78, 14, 181, 209, 40, 31, 234, 30, 59, 241, 182, 5, 28, 6, 235, 20, 38,
+			213, 202, 27, 53, 15, 10, 11, 225, 180, 21, 79, 30, 226, 207, 180, 234, 66, 83, 21, 196, 218, 241, 0, 32, 10, 1, 235, 187, 2, 67,
+			39, 231, 189, 235, 40, 51, 22, 205, 209, 13, 31, 10, 244, 220, 242, 32, 45, 18, 232, 218, 247, 21, 31, 23, 228, 210, 5, 54, 45, 246,
+			201, 235, 16, 40, 26, 248, 232, 245, 4, 18, 6, 247, 251, 14, 17, 15, 0, 250, 3, 15, 19, 10, 3, 11, 17, 19, 25, 15, 9, 19,
+			25, 18, 7, 17, 28, 23, 12, 9, 6, 5, 12, 20, 14, 255, 250, 0, 10, 10, 254, 242, 241, 247, 249, 249, 244, 244, 244, 247, 246, 233,
+			228, 242, 245, 237, 234, 227, 227, 241, 245, 236, 226, 240, 2, 255, 242, 233, 223, 230, 243, 254, 255, 250, 245, 231, 239, 23, 28, 245, 218, 235,
+			0, 8, 9, 14, 247, 236, 229, 252, 23, 28, 13, 246, 240, 0, 251, 4, 8, 1, 0, 254, 4, 0, 15, 17, 3, 253, 253, 250, 248, 249,
+			251, 252, 252, 2, 11, 19, 16, 6, 6, 15, 25, 3, 244, 18, 7, 0, 26, 44, 7, 222, 255, 32, 7, 25, 32, 230, 218, 20, 51, 16,
+			231, 222, 253, 55, 21, 219, 253, 32, 3, 239, 2, 242, 231, 12, 14, 8, 18, 247, 212, 246, 43, 12, 223, 251, 36, 2, 221, 240, 10, 19,
+			9, 240, 230, 252, 29, 29, 0, 231, 214, 242, 29, 31, 251, 230, 250, 4, 6, 21, 15, 1, 252, 251, 252, 252, 11, 12, 253, 252, 253, 249,
+			251, 10, 10, 7, 10, 18, 35, 55, 52, 27, 252, 0, 24, 28, 32, 32, 18, 9, 21, 36, 34, 25, 18, 9, 6, 10, 8, 244, 235, 0,
+			85, 0, 3, 0, 5, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18, 174, 21, 55, 2, 12, 14, 4, 4, 4, 3, 5, 5,
+			92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18, 174, 21, 30, 3, 14, 16, 5, 5,
+			5, 4, 6, 6, 92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 9, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18, 174, 21, 0, 3,
+			13, 15, 4, 4, 4, 3, 5, 5, 92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 240, 0, 5, 0, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10,
+			164, 11, 53, 14, 160, 27, 45, 61, 26, 62, 74, 37, 35, 20, 13, 5, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 184, 0, 72, 2,
+			172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 75, 118, 36, 86, 103, 51, 49, 28, 18, 7, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			184, 0, 52, 2, 158, 3, 240, 9, 168, 11, 61, 14, 192, 27, 60, 96, 33, 79, 91, 46, 43, 26, 16, 7, 172, 140, 135, 120, 120, 120,
+			182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 192, 0, 120, 1, 32, 3, 172, 8, 204, 11, 141, 14, 224, 28, 60, 47, 27, 63, 39, 27, 18, 16, 8, 8, 162, 120,
+			135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 104, 1, 32, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 36, 23, 58, 38, 22, 15, 12,
+			9, 8, 152, 120, 97, 120, 120, 120, 107, 90, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 144, 9, 55, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, 1, 0, 2, 4, 3, 1,
+			1, 0, 0, 0, 1, 0, 255, 254, 255, 0, 1, 1, 0, 255, 254, 255, 255, 254, 254, 253, 251, 252, 253, 254, 0, 1, 1, 1, 2, 2,
+			0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 3, 3, 3, 2, 3, 3, 3, 1, 0, 0, 255, 255, 0, 1, 0, 0, 255, 255, 255,
+			254, 253, 254, 0, 2, 3, 4, 4, 2, 0, 254, 253, 253, 253, 252, 251, 252, 255, 0, 0, 0, 1, 2, 2, 1, 0, 255, 254, 253, 252,
+			253, 255, 0, 1, 2, 3, 3, 2, 3, 3, 0, 255, 0, 0, 253, 251, 252, 254, 0, 3, 5, 4, 3, 3, 1, 0, 0, 1, 0, 253,
+			253, 255, 0, 0, 255, 254, 255, 0, 0, 0, 254, 254, 255, 255, 0, 0, 255, 0, 1, 1, 1, 4, 6, 1, 253, 254, 2, 8, 8, 5,
+			0, 255, 254, 254, 0, 2, 0, 255, 255, 1, 4, 6, 6, 4, 3, 2, 1, 0, 255, 254, 250, 246, 243, 245, 249, 0, 6, 11, 11, 6,
+			255, 250, 248, 249, 251, 251, 250, 249, 251, 2, 7, 6, 4, 5, 8, 11, 12, 8, 5, 2, 253, 245, 245, 249, 250, 251, 1, 10, 15, 17,
+			15, 5, 252, 251, 248, 241, 243, 251, 252, 251, 0, 2, 0, 253, 253, 252, 255, 4, 5, 0, 1, 4, 1, 250, 245, 245, 248, 1, 11, 15,
+			13, 8, 4, 0, 250, 249, 0, 4, 6, 11, 17, 16, 9, 1, 249, 243, 246, 253, 252, 250, 254, 4, 12, 14, 8, 0, 254, 0, 254, 248,
+			246, 246, 239, 238, 254, 14, 14, 1, 248, 247, 1, 14, 15, 4, 254, 252, 250, 252, 253, 248, 245, 0, 11, 11, 8, 11, 9, 3, 4, 9,
+			5, 250, 241, 241, 251, 10, 19, 10, 254, 253, 2, 7, 13, 11, 249, 232, 239, 0, 8, 10, 10, 5, 0, 252, 250, 250, 250, 246, 244, 0,
+			16, 18, 6, 255, 2, 8, 10, 4, 250, 244, 248, 251, 249, 252, 1, 0, 253, 2, 10, 12, 12, 13, 8, 255, 248, 246, 243, 241, 246, 252,
+			0, 8, 16, 16, 12, 10, 6, 254, 249, 253, 252, 244, 243, 249, 253, 255, 6, 13, 12, 10, 7, 4, 5, 7, 3, 246, 236, 245, 2, 6,
+			8, 8, 2, 255, 254, 253, 251, 253, 0, 253, 251, 255, 4, 8, 10, 4, 251, 253, 6, 6, 254, 250, 252, 0, 2, 0, 248, 252, 7, 5,
+			255, 7, 16, 0, 238, 243, 0, 8, 12, 6, 250, 252, 11, 14, 5, 1, 1, 252, 247, 249, 250, 249, 252, 254, 252, 0, 15, 20, 9, 251,
+			245, 248, 255, 1, 253, 248, 1, 10, 5, 254, 254, 0, 254, 254, 2, 11, 15, 5, 247, 242, 248, 0, 2, 1, 0, 3, 4, 4, 6, 2,
+			245, 242, 0, 10, 1, 253, 0, 252, 246, 0, 14, 11, 255, 247, 244, 244, 254, 3, 253, 248, 252, 255, 2, 12, 13, 0, 247, 249, 253, 1,
+			10, 12, 254, 237, 238, 250, 254, 1, 11, 14, 8, 10, 17, 12, 254, 246, 244, 243, 249, 3, 7, 5, 2, 255, 254, 5, 7, 6, 12, 18,
+			4, 241, 245, 6, 1, 239, 242, 9, 18, 4, 247, 245, 251, 2, 4, 3, 8, 6, 246, 239, 0, 16, 8, 251, 247, 247, 255, 19, 33, 16,
+			243, 235, 246, 0, 5, 3, 253, 251, 1, 4, 2, 8, 13, 1, 244, 252, 10, 6, 253, 2, 11, 5, 251, 253, 8, 13, 6, 254, 248, 243,
+			237, 236, 251, 14, 19, 16, 13, 9, 0, 247, 245, 251, 0, 0, 253, 254, 6, 12, 11, 1, 244, 239, 250, 7, 12, 7, 4, 2, 255, 247,
+			245, 0, 6, 251, 242, 255, 16, 19, 6, 245, 235, 240, 1, 20, 26, 14, 242, 225, 235, 249, 1, 17, 31, 15, 240, 236, 0, 11, 3, 249,
+			248, 2, 15, 17, 6, 251, 243, 234, 236, 4, 32, 29, 5, 255, 3, 254, 247, 0, 9, 2, 252, 1, 0, 233, 219, 236, 8, 28, 32, 16,
+			248, 245, 5, 2, 241, 240, 250, 250, 1, 23, 22, 246, 226, 236, 251, 6, 20, 17, 247, 240, 14, 31, 10, 242, 238, 240, 238, 249, 16, 23,
+			6, 250, 3, 23, 32, 17, 246, 233, 240, 244, 242, 246, 0, 9, 15, 19, 19, 4, 244, 244, 250, 243, 234, 248, 20, 22, 1, 254, 2, 249,
+			237, 243, 255, 254, 251, 2, 10, 7, 5, 4, 253, 247, 251, 251, 244, 252, 6, 254, 246, 11, 31, 17, 248, 239, 247, 8, 26, 15, 241, 238,
+			1, 254, 235, 255, 29, 5, 213, 219, 12, 42, 38, 17, 245, 231, 243, 255, 1, 4, 251, 224, 226, 10, 34, 17, 13, 30, 13, 236, 243, 11,
+			8, 238, 218, 225, 255, 24, 20, 2, 0, 10, 16, 27, 28, 255, 219, 221, 255, 20, 6, 234, 225, 248, 22, 28, 7, 248, 254, 4, 251, 243,
+			6, 30, 19, 240, 227, 248, 6, 1, 247, 243, 251, 13, 32, 33, 8, 238, 237, 253, 249, 232, 251, 26, 16, 247, 0, 17, 4, 242, 249, 1,
+			255, 1, 8, 9, 17, 16, 247, 234, 255, 250, 215, 231, 36, 45, 253, 240, 11, 4, 222, 219, 250, 9, 11, 21, 14, 252, 251, 251, 234, 227,
+			248, 17, 23, 20, 13, 250, 237, 250, 12, 252, 226, 243, 16, 12, 3, 21, 21, 248, 240, 254, 248, 237, 0, 19, 6, 252, 8, 8, 250, 255,
+			2, 238, 230, 251, 10, 5, 7, 25, 30, 14, 246, 228, 225, 238, 5, 19, 10, 246, 233, 242, 14, 41, 35, 251, 211, 215, 11, 51, 29, 239,
+			227, 239, 235, 229, 249, 23, 37, 14, 244, 4, 37, 18, 229, 231, 253, 232, 209, 245, 35, 26, 247, 243, 17, 42, 29, 5, 6, 9, 236, 211,
+			235, 7, 252, 248, 33, 58, 29, 248, 244, 10, 15, 234, 204, 237, 22, 2, 226, 246, 33, 46, 26, 251, 231, 241, 6, 3, 244, 252, 2, 242,
+			237, 252, 0, 255, 15, 26, 12, 3, 3, 246, 237, 255, 12, 254, 249, 13, 11, 236, 236, 14, 24, 3, 2, 27, 31, 252, 212, 216, 253, 8,
+			246, 251, 35, 62, 43, 7, 233, 218, 235, 253, 230, 214, 255, 44, 32, 5, 11, 23, 15, 0, 230, 196, 220, 24, 26, 236, 234, 14, 12, 247,
+			2, 20, 17, 28, 28, 232, 192, 232, 24, 5, 225, 235, 3, 5, 14, 37, 35, 6, 242, 242, 242, 241, 0, 32, 40, 3, 229, 245, 5, 240,
+			226, 0, 30, 22, 3, 3, 14, 13, 247, 214, 211, 3, 50, 30, 247, 11, 42, 0, 198, 213, 3, 13, 254, 248, 0, 20, 48, 39, 251, 236,
+			254, 237, 204, 225, 17, 27, 4, 248, 241, 250, 33, 64, 36, 239, 221, 239, 4, 9, 252, 242, 242, 247, 248, 246, 4, 31, 35, 12, 0, 7,
+			10, 254, 236, 229, 242, 254, 252, 2, 20, 15, 249, 252, 14, 4, 240, 254, 20, 254, 222, 240, 24, 19, 236, 223, 0, 28, 17, 255, 13, 37,
+			15, 215, 195, 231, 18, 25, 12, 5, 6, 8, 8, 6, 255, 246, 247, 0, 254, 238, 239, 14, 31, 6, 245, 5, 11, 252, 0, 14, 254, 233,
+			249, 11, 0, 240, 250, 9, 12, 4, 253, 3, 19, 11, 245, 244, 251, 240, 237, 6, 20, 3, 243, 237, 243, 14, 34, 23, 5, 1, 247, 238,
+			1, 20, 254, 226, 244, 14, 0, 237, 1, 29, 22, 1, 0, 7, 5, 250, 243, 240, 241, 0, 13, 8, 245, 228, 239, 30, 63, 18, 210, 224,
+			27, 41, 2, 230, 240, 3, 252, 227, 237, 16, 25, 9, 255, 254, 252, 2, 17, 2, 216, 213, 12, 54, 39, 2, 237, 239, 6, 21, 250, 221,
+			250, 24, 3, 253, 23, 11, 211, 199, 255, 44, 45, 24, 248, 216, 225, 9, 22, 0, 253, 20, 5, 207, 216, 54, 74, 208, 156, 32, 126, 27,
+			176, 223, 44, 32, 230, 203, 234, 31, 37, 250, 239, 18, 27, 3, 255, 244, 211, 233, 32, 18, 229, 250, 36, 17, 245, 6, 23, 248, 212, 224,
+			7, 23, 7, 251, 1, 5, 0, 11, 30, 5, 225, 247, 33, 7, 211, 231, 34, 25, 209, 198, 36, 79, 248, 193, 8, 62, 254, 189, 224, 25,
+			15, 230, 231, 21, 53, 30, 242, 238, 8, 2, 235, 253, 20, 0, 240, 3, 252, 206, 218, 41, 68, 15, 250, 20, 14, 233, 217, 217, 213, 239,
+			38, 51, 3, 228, 249, 17, 15, 9, 6, 254, 249, 248, 233, 221, 244, 23, 21, 255, 4, 26, 28, 12, 251, 236, 227, 232, 253, 9, 2, 249,
+			246, 2, 30, 37, 12, 251, 4, 4, 233, 207, 212, 252, 35, 30, 0, 3, 38, 27, 238, 235, 13, 9, 225, 219, 3, 29, 17, 253, 237, 222,
+			234, 23, 66, 66, 27, 231, 201, 216, 241, 231, 219, 2, 72, 95, 45, 236, 205, 218, 231, 223, 240, 23, 37, 24, 4, 241, 228, 240, 11, 17,
+			4, 6, 13, 8, 0, 243, 224, 221, 238, 255, 3, 20, 56, 56, 9, 232, 221, 200, 188, 233, 40, 52, 31, 16, 255, 228, 212, 224, 9, 59,
+			62, 251, 195, 224, 22, 14, 228, 234, 15, 19, 0, 254, 16, 35, 25, 239, 208, 229, 16, 23, 253, 246, 8, 8, 250, 253, 0, 1, 30, 49,
+			0, 183, 182, 252, 42, 14, 230, 247, 35, 44, 9, 228, 213, 223, 1, 33, 30, 255, 225, 222, 247, 18, 27, 21, 25, 37, 24, 233, 190, 198,
+			242, 20, 34, 32, 12, 241, 236, 2, 17, 13, 17, 32, 12, 201, 170, 229, 48, 53, 1, 235, 11, 39, 12, 223, 225, 12, 23, 241, 219, 246,
+			11, 255, 242, 4, 32, 34, 14, 8, 16, 247, 198, 201, 8, 46, 6, 229, 22, 67, 10, 184, 204, 36, 71, 35, 247, 226, 214, 202, 217, 14,
+			75, 87, 42, 250, 219, 201, 204, 247, 45, 38, 238, 217, 239, 242, 233, 17, 74, 60, 254, 216, 227, 248, 244, 230, 239, 10, 14, 1, 11, 24,
+			9, 250, 24, 67, 33, 190, 141, 193, 18, 57, 57, 29, 253, 247, 247, 238, 242, 11, 37, 26, 241, 216, 240, 5, 223, 186, 245, 93, 106, 9,
+			204, 243, 26, 8, 234, 220, 218, 238, 21, 39, 18, 7, 27, 24, 243, 222, 240, 16, 22, 248, 218, 233, 18, 26, 253, 247, 23, 29, 242, 228,
+			26, 65, 4, 170, 171, 0, 65, 54, 10, 236, 228, 234, 252, 41, 79, 44, 215, 160, 181, 247, 48, 60, 30, 7, 9, 18, 1, 217, 197, 231,
+			35, 62, 36, 246, 216, 219, 233, 236, 3, 42, 48, 19, 252, 0, 11, 248, 205, 193, 238, 38, 57, 35, 250, 217, 221, 4, 39, 30, 251, 245,
+			14, 12, 230, 223, 253, 251, 215, 231, 56, 102, 45, 216, 200, 238, 2, 5, 12, 6, 243, 232, 240, 1, 24, 28, 12, 12, 13, 247, 229, 236,
+			237, 229, 250, 25, 22, 254, 246, 252, 0, 7, 29, 33, 253, 205, 190, 226, 31, 58, 25, 240, 244, 11, 20, 24, 18, 236, 201, 219, 253, 12,
+			21, 22, 0, 240, 251, 6, 13, 32, 39, 7, 222, 221, 245, 252, 247, 250, 3, 18, 31, 26, 254, 221, 213, 243, 28, 39, 10, 231, 214, 228,
+			3, 28, 23, 6, 11, 15, 0, 253, 7, 238, 198, 225, 45, 66, 19, 240, 229, 220, 229, 5, 28, 29, 28, 22, 1, 230, 209, 218, 9, 49,
+			35, 245, 228, 242, 249, 3, 30, 34, 6, 244, 251, 0, 245, 227, 223, 251, 13, 1, 1, 21, 16, 245, 242, 9, 17, 9, 12, 6, 235, 222,
+			238, 237, 224, 11, 74, 49, 226, 214, 21, 55, 16, 216, 216, 5, 11, 221, 205, 4, 56, 34, 251, 11, 33, 254, 208, 225, 14, 23, 254, 222,
+			210, 240, 35, 49, 20, 6, 10, 248, 221, 240, 24, 21, 234, 209, 228, 10, 26, 7, 5, 51, 71, 11, 194, 179, 219, 14, 44, 45, 22, 247,
+			214, 191, 228, 62, 106, 55, 238, 217, 211, 198, 216, 8, 43, 45, 32, 13, 242, 230, 236, 233, 235, 20, 68, 52, 241, 200, 203, 222, 253, 30,
+			48, 52, 42, 251, 176, 164, 238, 49, 51, 27, 19, 8, 251, 243, 224, 217, 6, 61, 39, 221, 214, 18, 30, 255, 252, 10, 251, 222, 239, 47,
+			80, 30, 204, 168, 190, 226, 9, 74, 112, 58, 213, 169, 207, 242, 239, 255, 46, 71, 28, 221, 195, 213, 12, 59, 47, 2, 239, 251, 250, 227,
+			228, 3, 30, 27, 7, 253, 1, 4, 254, 250, 255, 252, 243, 250, 8, 6, 253, 250, 248, 253, 19, 35, 12, 230, 222, 245, 0, 246, 249, 4,
+			8, 12, 24, 27, 10, 237, 215, 223, 4, 32, 10, 223, 229, 16, 26, 255, 2, 32, 20, 231, 215, 247, 21, 16, 243, 228, 245, 15, 19, 0,
+			246, 10, 30, 24, 11, 249, 207, 168, 192, 17, 80, 78, 22, 225, 216, 233, 0, 27, 48, 33, 239, 201, 210, 240, 255, 251, 7, 38, 58, 41,
+			254, 226, 240, 1, 248, 235, 243, 251, 249, 6, 22, 8, 251, 19, 42, 21, 246, 238, 237, 231, 240, 8, 15, 5, 255, 246, 248, 21, 46, 29,
+			249, 239, 249, 250, 237, 223, 226, 253, 34, 53, 38, 2, 234, 234, 249, 9, 18, 3, 229, 219, 248, 16, 18, 17, 17, 254, 231, 247, 25, 23,
+			239, 211, 222, 248, 7, 15, 22, 23, 9, 238, 229, 5, 39, 25, 239, 227, 244, 250, 241, 249, 20, 34, 20, 251, 242, 1, 15, 4, 245, 244,
+			255, 6, 0, 239, 231, 1, 38, 44, 21, 249, 236, 241, 243, 236, 245, 20, 31, 253, 222, 238, 16, 25, 17, 16, 8, 247, 243, 247, 245, 245,
+			253, 2, 8, 21, 24, 5, 247, 250, 250, 236, 239, 10, 25, 8, 240, 231, 238, 253, 8, 9, 6, 9, 12, 0, 231, 227, 252, 13, 9, 8,
+			9, 0, 245, 247, 252, 254, 2, 9, 2, 249, 255, 16, 23, 17, 4, 241, 223, 230, 7, 28, 15, 252, 247, 255, 6, 7, 11, 15, 5, 239,
+			229, 244, 3, 3, 0, 6, 7, 249, 240, 250, 10, 20, 18, 0, 231, 220, 236, 11, 28, 16, 1, 0, 4, 247, 226, 234, 15, 44, 32, 0,
+			238, 238, 8, 7, 88, 0, 0, 0, 0, 0, 0, 0, 255, 0, 2, 2, 0, 255, 254, 253, 254, 0, 4, 8, 8, 5, 1, 0, 254, 254,
+			0, 1, 2, 1, 255, 254, 254, 0, 1, 2, 2, 1, 0, 0, 0, 255, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 255,
+			0, 1, 3, 5, 9, 18, 26, 21, 254, 230, 223, 231, 248, 4, 10, 14, 12, 1, 251, 251, 0, 0, 255, 255, 0, 255, 252, 252, 4, 13,
+			14, 8, 0, 245, 231, 224, 234, 1, 23, 26, 17, 7, 3, 3, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 255,
+			255, 0, 0, 0, 1, 2, 2, 1, 255, 254, 254, 0, 2, 3, 1, 255, 254, 254, 0, 2, 6, 8, 7, 3, 0, 253, 253, 254, 255, 0,
+			3, 3, 0, 255, 0, 0, 0, 0, 1, 1, 0, 255, 0, 1, 0, 255, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+			0, 0, 2, 7, 13, 15, 6, 247, 235, 236, 246, 1, 9, 14, 13, 7, 254, 250, 251, 253, 255, 0, 2, 4, 3, 1, 0, 0, 255, 252,
+			252, 254, 0, 0, 255, 255, 0, 1, 3, 5, 6, 6, 3, 0, 253, 253, 254, 255, 255, 0, 0, 0, 1, 5, 9, 6, 255, 251, 252, 0,
+			2, 1, 0, 0, 4, 7, 4, 252, 246, 248, 255, 5, 9, 6, 255, 249, 250, 1, 15, 35, 51, 47, 20, 246, 225, 214, 219, 241, 13, 27,
+			16, 255, 247, 252, 0, 253, 252, 255, 245, 229, 247, 23, 13, 233, 234, 11, 17, 244, 228, 243, 0, 249, 228, 223, 251, 22, 24, 23, 23, 1,
+			232, 240, 11, 13, 253, 251, 0, 1, 6, 17, 18, 4, 251, 7, 15, 252, 242, 7, 22, 7, 244, 249, 7, 11, 6, 3, 2, 4, 255, 238,
+			227, 248, 21, 16, 241, 239, 20, 35, 251, 215, 240, 22, 18, 242, 233, 252, 249, 228, 246, 32, 23, 238, 242, 16, 17, 253, 240, 245, 4, 6,
+			243, 246, 24, 29, 250, 231, 252, 24, 10, 229, 237, 21, 15, 233, 236, 16, 28, 11, 244, 245, 7, 3, 240, 251, 27, 27, 243, 225, 253, 19,
+			7, 0, 19, 22, 238, 203, 235, 40, 41, 241, 220, 246, 13, 22, 5, 233, 239, 13, 18, 249, 236, 255, 16, 10, 249, 241, 246, 246, 244, 10,
+			40, 23, 229, 222, 5, 18, 0, 247, 0, 14, 4, 232, 239, 25, 31, 251, 238, 0, 13, 10, 244, 242, 25, 43, 254, 207, 226, 20, 37, 13,
+			250, 3, 27, 16, 220, 207, 255, 25, 15, 14, 23, 6, 233, 220, 236, 27, 44, 250, 206, 230, 18, 29, 22, 0, 224, 220, 247, 26, 35, 10,
+			241, 224, 219, 244, 36, 46, 12, 250, 246, 234, 238, 255, 253, 248, 25, 53, 1, 179, 199, 42, 68, 254, 220, 1, 20, 248, 231, 253, 14, 3,
+			1, 20, 19, 246, 221, 241, 37, 35, 221, 192, 251, 49, 35, 0, 242, 242, 242, 239, 249, 15, 30, 28, 8, 220, 195, 1, 69, 16, 190, 221,
+			65, 80, 243, 190, 242, 30, 255, 221, 9, 75, 46, 209, 183, 241, 18, 250, 243, 25, 45, 254, 192, 232, 64, 53, 234, 205, 241, 30, 20, 231,
+			232, 25, 40, 238, 188, 232, 53, 58, 7, 227, 211, 212, 4, 61, 44, 247, 237, 242, 223, 240, 39, 47, 253, 214, 225, 3, 28, 23, 6, 0,
+			242, 230, 255, 34, 27, 0, 245, 226, 203, 240, 65, 86, 6, 174, 182, 23, 78, 10, 190, 212, 20, 39, 23, 7, 243, 227, 246, 22, 17, 247,
+			252, 37, 31, 193, 177, 54, 117, 7, 203, 30, 47, 191, 164, 39, 126, 29, 169, 209, 38, 15, 223, 29, 106, 46, 184, 176, 5, 29, 232, 235,
+			55, 67, 228, 176, 0, 67, 10, 203, 245, 33, 249, 222, 10, 22, 231, 229, 27, 34, 236, 208, 239, 16, 8, 237, 235, 1, 16, 10, 255, 250,
+			5, 29, 28, 245, 215, 237, 23, 26, 0, 7, 37, 21, 221, 213, 15, 54, 23, 234, 241, 24, 24, 238, 214, 242, 28, 36, 11, 248, 241, 232,
+			226, 244, 14, 23, 14, 247, 228, 245, 12, 248, 213, 247, 66, 45, 184, 148, 8, 106, 41, 190, 222, 68, 44, 191, 198, 56, 86, 250, 194, 242,
+			32, 8, 229, 0, 50, 47, 242, 197, 236, 49, 45, 246, 231, 0, 6, 1, 5, 6, 9, 11, 239, 205, 244, 59, 31, 197, 213, 54, 54, 227,
+			224, 25, 15, 226, 242, 18, 13, 6, 4, 230, 220, 19, 41, 245, 241, 36, 14, 219, 249, 38, 3, 219, 2, 39, 255, 229, 20, 46, 248, 205,
+			249, 50, 27, 217, 218, 29, 42, 220, 183, 11, 73, 10, 207, 246, 46, 10, 176, 206, 71, 74, 237, 237, 46, 7, 175, 220, 81, 74, 220, 197,
+			12, 29, 244, 246, 22, 22, 247, 225, 241, 18, 35, 20, 234, 215, 245, 21, 25, 18, 4, 234, 245, 26, 4, 226, 9, 48, 247, 196, 253, 52,
+			25, 249, 251, 237, 232, 7, 32, 25, 238, 192, 211, 35, 79, 35, 220, 180, 208, 32, 73, 32, 236, 224, 225, 240, 12, 22, 27, 28, 252, 218,
+			235, 15, 11, 243, 249, 18, 24, 9, 248, 236, 240, 9, 24, 6, 238, 245, 19, 23, 240, 220, 3, 35, 18, 241, 227, 247, 21, 25, 2, 244,
+			222, 197, 248, 83, 78, 238, 184, 221, 8, 11, 10, 34, 40, 236, 190, 241, 45, 19, 240, 23, 48, 228, 177, 255, 70, 23, 205, 206, 9, 37,
+			11, 255, 11, 249, 214, 243, 48, 35, 230, 230, 6, 250, 239, 14, 38, 27, 255, 246, 6, 0, 228, 233, 21, 28, 243, 244, 40, 35, 229, 208,
+			244, 30, 40, 3, 214, 219, 15, 35, 251, 229, 12, 42, 13, 215, 209, 19, 39, 224, 205, 18, 46, 0, 227, 255, 20, 5, 252, 253, 245, 241,
+			248, 11, 36, 29, 244, 218, 239, 19, 24, 6, 254, 244, 232, 244, 12, 17, 5, 0, 250, 242, 6, 31, 4, 212, 224, 15, 12, 240, 4, 28,
+			253, 225, 252, 26, 0, 214, 232, 25, 25, 244, 241, 18, 25, 248, 225, 246, 28, 32, 244, 218, 3, 34, 242, 202, 1, 57, 19, 230, 241, 249,
+			238, 7, 28, 2, 245, 1, 247, 229, 0, 37, 21, 242, 238, 241, 242, 9, 28, 14, 243, 215, 220, 14, 59, 48, 250, 197, 189, 245, 53, 48,
+			2, 237, 233, 228, 246, 22, 33, 27, 1, 227, 229, 1, 14, 1, 250, 3, 12, 10, 4, 250, 241, 252, 16, 14, 246, 235, 2, 27, 8, 222,
+			231, 23, 35, 4, 233, 237, 6, 21, 10, 253, 245, 218, 217, 35, 90, 32, 198, 193, 246, 13, 3, 15, 38, 7, 203, 206, 18, 37, 247, 252,
+			47, 16, 185, 206, 54, 65, 240, 197, 240, 36, 27, 255, 6, 11, 233, 222, 19, 51, 3, 221, 250, 4, 238, 252, 30, 35, 9, 243, 253, 7,
+			239, 218, 252, 35, 8, 231, 10, 49, 9, 212, 223, 14, 45, 25, 227, 203, 243, 32, 12, 224, 244, 38, 35, 244, 211, 249, 49, 8, 201, 243,
+			56, 33, 228, 233, 18, 17, 251, 251, 253, 241, 236, 253, 30, 42, 6, 222, 224, 4, 27, 20, 9, 249, 223, 226, 12, 30, 6, 249, 4, 2,
+			244, 8, 28, 241, 204, 242, 28, 19, 2, 9, 6, 236, 232, 8, 33, 5, 216, 221, 14, 29, 253, 246, 23, 20, 222, 198, 0, 68, 47, 214,
+			206, 30, 32, 210, 232, 81, 74, 228, 202, 243, 249, 248, 24, 39, 17, 238, 207, 222, 27, 62, 28, 233, 219, 227, 239, 19, 47, 16, 227, 215,
+			239, 20, 41, 29, 0, 227, 215, 232, 13, 33, 17, 1, 6, 244, 220, 253, 50, 38, 232, 208, 240, 8, 5, 12, 29, 15, 237, 226, 255, 23,
+			17, 0, 250, 252, 254, 247, 246, 18, 49, 20, 211, 211, 22, 42, 251, 236, 2, 250, 230, 252, 34, 34, 0, 231, 235, 251, 3, 14, 25, 5,
+			219, 230, 31, 37, 243, 228, 15, 37, 254, 219, 248, 33, 14, 228, 241, 23, 7, 227, 246, 27, 5, 227, 255, 36, 0, 212, 254, 52, 25, 228,
+			217, 239, 6, 15, 17, 23, 17, 237, 216, 4, 48, 8, 211, 242, 27, 249, 213, 1, 40, 1, 230, 10, 28, 240, 218, 252, 4, 234, 245, 18,
+			10, 1, 17, 6, 217, 220, 28, 48, 249, 211, 224, 0, 25, 26, 5, 1, 21, 13, 229, 229, 30, 50, 245, 196, 226, 16, 23, 22, 34, 25,
+			245, 217, 221, 248, 26, 45, 18, 225, 212, 248, 20, 17, 18, 23, 1, 224, 218, 246, 16, 20, 9, 252, 243, 247, 5, 9, 1, 7, 16, 255,
+			220, 216, 5, 48, 37, 247, 222, 236, 9, 23, 11, 247, 242, 0, 10, 0, 244, 252, 7, 8, 0, 248, 252, 3, 5, 255, 250, 2, 9, 246,
+			231, 249, 16, 9, 250, 0, 12, 5, 243, 237, 251, 13, 10, 246, 246, 11, 9, 237, 240, 22, 42, 23, 249, 228, 225, 248, 25, 31, 8, 251,
+			252, 250, 254, 16, 28, 10, 238, 231, 247, 5, 14, 10, 254, 249, 253, 248, 246, 6, 20, 1, 235, 243, 3, 253, 237, 244, 13, 27, 11, 244,
+			232, 229, 246, 20, 33, 16, 248, 242, 247, 243, 239, 255, 26, 32, 12, 245, 231, 241, 11, 22, 11, 0, 250, 237, 242, 13, 24, 8, 255, 7,
+			4, 245, 247, 9, 14, 3, 251, 246, 240, 246, 12, 25, 18, 2, 249, 244, 247, 255, 3, 6, 12, 12, 254, 236, 242, 4, 11, 9, 12, 8,
+			249, 236, 240, 0, 15, 16, 6, 2, 4, 255, 242, 243, 6, 18, 12, 2, 254, 252, 251, 255, 2, 2, 0, 0, 2, 4, 0, 253, 1, 8,
+			1, 246, 248, 5, 9, 0, 248, 248, 249, 246, 250, 6, 10, 253, 238, 240, 251, 1, 4, 3, 255, 252, 252, 253, 0, 2, 0, 253, 254, 2,
+			8, 12, 5, 249, 248, 3, 11, 11, 13, 13, 252, 235, 244, 9, 18, 13, 7, 3, 254, 248, 246, 252, 3, 6, 3, 255, 254, 253, 252, 253,
+			2, 6, 2, 250, 244, 242, 244, 251, 0, 253, 248, 254, 5, 3, 255, 0, 0, 249, 243, 245, 253, 6, 10, 6, 0, 254, 254, 3, 12, 11,
+			1, 248, 244, 247, 3, 15, 16, 11, 8, 8, 7, 5, 6, 4, 251, 244, 249, 1, 5, 6, 11, 13, 6, 0, 0, 254, 250, 249, 248, 249,
+			251, 0, 4, 7, 10, 10, 122, 6, 55, 0, 253, 254, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 255, 255, 254, 255, 0, 2, 1,
+			0, 254, 253, 0, 6, 7, 5, 2, 255, 250, 255, 9, 11, 2, 253, 0, 3, 2, 255, 0, 4, 3, 3, 1, 255, 0, 4, 1, 254, 3,
+			7, 0, 248, 248, 254, 4, 9, 5, 253, 248, 250, 255, 8, 9, 250, 243, 253, 4, 2, 255, 254, 255, 253, 252, 255, 5, 8, 5, 0, 251,
+			248, 253, 10, 15, 6, 247, 237, 248, 5, 6, 4, 3, 252, 245, 249, 0, 5, 12, 11, 254, 248, 0, 6, 1, 251, 250, 255, 9, 14, 252,
+			236, 251, 9, 13, 12, 248, 235, 1, 25, 11, 251, 253, 251, 250, 5, 10, 6, 8, 255, 231, 233, 7, 28, 26, 2, 234, 243, 23, 37, 20,
+			4, 246, 233, 240, 0, 11, 17, 9, 235, 228, 247, 252, 8, 25, 12, 244, 238, 244, 249, 13, 30, 10, 236, 230, 238, 248, 11, 21, 5, 245,
+			245, 249, 250, 254, 7, 24, 27, 251, 221, 238, 15, 18, 11, 13, 0, 239, 247, 7, 8, 7, 2, 250, 4, 10, 246, 240, 9, 28, 16, 250,
+			236, 235, 252, 20, 26, 4, 239, 241, 254, 4, 10, 12, 253, 232, 241, 13, 17, 0, 252, 245, 238, 13, 31, 0, 236, 238, 245, 4, 20, 10,
+			7, 20, 253, 222, 242, 16, 15, 8, 6, 248, 244, 255, 254, 253, 3, 8, 14, 14, 249, 230, 245, 2, 254, 5, 23, 23, 3, 232, 219, 241,
+			21, 34, 24, 1, 223, 212, 253, 41, 38, 11, 242, 220, 230, 16, 37, 15, 245, 227, 228, 8, 42, 30, 252, 226, 218, 249, 40, 30, 252, 4,
+			3, 222, 230, 27, 28, 253, 1, 1, 223, 224, 14, 34, 23, 7, 239, 219, 228, 3, 39, 47, 252, 192, 213, 19, 48, 42, 3, 195, 202, 45,
+			73, 252, 213, 244, 6, 253, 251, 13, 29, 13, 230, 225, 2, 29, 26, 249, 211, 232, 44, 58, 250, 199, 205, 1, 61, 50, 237, 209, 243, 2,
+			255, 28, 53, 0, 201, 223, 1, 23, 39, 25, 3, 12, 19, 253, 0, 43, 59, 26, 235, 219, 245, 2, 239, 227, 246, 251, 247, 9, 7, 229,
+			220, 247, 10, 21, 21, 246, 239, 24, 8, 184, 204, 51, 53, 249, 218, 188, 194, 27, 90, 29, 214, 235, 16, 5, 0, 12, 7, 27, 50, 3,
+			195, 222, 33, 46, 32, 6, 221, 205, 244, 68, 82, 250, 192, 220, 3, 31, 48, 11, 211, 227, 1, 240, 245, 25, 12, 235, 246, 250, 232, 252,
+			13, 253, 24, 60, 215, 132, 252, 115, 83, 234, 156, 175, 8, 67, 41, 247, 245, 11, 1, 255, 4, 235, 234, 20, 48, 40, 5, 222, 216, 245,
+			12, 41, 73, 27, 214, 209, 212, 236, 60, 99, 28, 197, 184, 226, 40, 62, 0, 223, 248, 254, 234, 242, 16, 7, 235, 255, 12, 239, 250, 16,
+			244, 231, 1, 252, 245, 43, 55, 249, 219, 217, 230, 28, 76, 36, 212, 203, 251, 21, 2, 242, 17, 40, 8, 219, 208, 240, 29, 55, 39, 241,
+			200, 218, 10, 49, 57, 0, 189, 205, 13, 59, 49, 234, 173, 228, 62, 51, 10, 5, 233, 203, 234, 21, 29, 39, 25, 220, 199, 252, 27, 6,
+			255, 250, 242, 10, 16, 237, 244, 45, 43, 251, 235, 224, 230, 18, 41, 23, 250, 228, 229, 11, 42, 27, 2, 222, 191, 223, 31, 54, 34, 1,
+			215, 221, 23, 29, 0, 11, 15, 232, 207, 231, 11, 45, 50, 1, 210, 225, 18, 27, 250, 233, 251, 9, 0, 235, 248, 52, 50, 224, 198, 247,
+			31, 34, 255, 209, 217, 20, 44, 33, 26, 248, 204, 226, 30, 40, 1, 218, 209, 8, 66, 30, 224, 237, 17, 2, 237, 243, 8, 26, 252, 209,
+			232, 35, 57, 24, 238, 215, 220, 252, 23, 12, 5, 25, 0, 209, 229, 34, 51, 33, 255, 199, 196, 252, 27, 33, 25, 247, 218, 239, 19, 32,
+			27, 251, 217, 227, 255, 22, 42, 26, 234, 240, 26, 3, 232, 0, 11, 11, 8, 229, 199, 249, 53, 38, 11, 253, 219, 208, 251, 26, 29, 49,
+			22, 192, 184, 26, 76, 26, 226, 194, 220, 40, 67, 22, 228, 208, 221, 17, 61, 41, 252, 217, 210, 246, 33, 33, 0, 243, 9, 13, 223, 202,
+			0, 67, 61, 247, 205, 221, 244, 24, 56, 23, 233, 244, 4, 235, 248, 20, 245, 239, 11, 255, 239, 11, 11, 228, 237, 4, 240, 238, 29, 54,
+			2, 190, 193, 2, 69, 84, 11, 199, 212, 230, 251, 48, 64, 17, 241, 237, 220, 240, 40, 47, 22, 248, 224, 244, 15, 11, 0, 255, 246, 5,
+			55, 42, 217, 170, 199, 25, 86, 52, 217, 188, 0, 40, 0, 245, 18, 255, 240, 0, 234, 225, 7, 30, 20, 5, 235, 203, 228, 37, 48, 2,
+			229, 223, 241, 35, 53, 21, 250, 233, 229, 255, 32, 32, 5, 231, 218, 1, 39, 24, 22, 24, 237, 208, 241, 19, 13, 16, 13, 242, 243, 17,
+			2, 226, 253, 21, 242, 214, 235, 1, 14, 33, 28, 249, 227, 232, 254, 23, 19, 241, 226, 239, 245, 7, 36, 32, 252, 213, 203, 6, 87, 43,
+			199, 216, 12, 16, 28, 47, 25, 1, 247, 201, 197, 12, 54, 50, 17, 208, 192, 27, 76, 255, 220, 252, 239, 239, 47, 35, 198, 212, 25, 34,
+			34, 14, 202, 186, 5, 32, 248, 242, 3, 20, 38, 19, 224, 227, 21, 28, 1, 222, 206, 5, 57, 20, 240, 3, 255, 227, 3, 36, 33, 30,
+			233, 165, 208, 70, 121, 70, 235, 153, 163, 254, 58, 69, 40, 220, 161, 217, 49, 43, 14, 33, 4, 170, 175, 24, 65, 18, 236, 213, 225, 45,
+			57, 214, 188, 26, 57, 236, 204, 232, 0, 40, 80, 39, 221, 212, 239, 2, 26, 34, 2, 231, 238, 242, 252, 27, 51, 48, 3, 201, 198, 251,
+			35, 36, 12, 227, 221, 16, 35, 6, 3, 6, 225, 210, 3, 31, 21, 5, 233, 222, 255, 45, 64, 26, 204, 155, 196, 21, 56, 50, 24, 220,
+			179, 234, 69, 87, 22, 194, 161, 222, 61, 78, 15, 234, 242, 240, 236, 6, 32, 24, 253, 219, 203, 245, 60, 81, 42, 8, 242, 207, 212, 4,
+			23, 25, 25, 237, 191, 237, 60, 45, 234, 216, 248, 13, 253, 230, 237, 13, 31, 16, 251, 249, 5, 7, 241, 216, 232, 13, 12, 5, 20, 7,
+			240, 5, 28, 253, 230, 245, 243, 245, 9, 30, 41, 12, 228, 225, 248, 30, 57, 14, 191, 191, 14, 56, 47, 33, 0, 217, 230, 32, 57, 29,
+			252, 237, 240, 5, 31, 36, 33, 18, 232, 196, 216, 5, 14, 248, 229, 233, 247, 242, 232, 234, 241, 254, 0, 234, 217, 224, 232, 247, 32, 45,
+			3, 229, 226, 243, 22, 44, 24, 245, 227, 233, 21, 70, 55, 0, 228, 238, 14, 48, 42, 0, 231, 245, 9, 18, 22, 15, 0, 250, 252, 241,
+			228, 249, 23, 23, 2, 234, 222, 239, 11, 22, 3, 238, 238, 251, 254, 245, 246, 3, 10, 0, 246, 2, 23, 13, 239, 235, 3, 18, 11, 2,
+			4, 2, 249, 247, 10, 28, 17, 250, 235, 241, 4, 15, 8, 255, 253, 0, 7, 7, 248, 243, 4, 14, 9, 6, 4, 251, 249, 3, 13, 14,
+			8, 252, 240, 242, 3, 14, 5, 253, 1, 5, 6, 12, 7, 239, 228, 245, 6, 9, 3, 248, 239, 250, 7, 0, 245, 251, 0, 250, 247, 248,
+			247, 253, 11, 19, 5, 235, 231, 0, 22, 20, 5, 241, 230, 255, 28, 24, 10, 1, 253, 255, 252, 249, 0, 10, 16, 16, 7, 251, 255, 8,
+			5, 0, 1, 255, 254, 3, 6, 253, 242, 242, 253, 10, 19, 8, 239, 223, 230, 247, 6, 23, 22, 4, 249, 241, 240, 0, 22, 20, 252, 235,
+			241, 3, 21, 24, 11, 247, 231, 235, 11, 35, 20, 250, 237, 240, 2, 21, 27, 21, 13, 255, 231, 222, 246, 25, 34, 11, 236, 222, 236, 11,
+			33, 19, 239, 217, 232, 13, 36, 20, 240, 224, 243, 17, 27, 15, 3, 249, 243, 251, 2, 0, 1, 9, 14, 10, 253, 238, 239, 4, 25, 24,
+			7, 251, 252, 252, 249, 251, 8, 24, 24, 2, 229, 221, 242, 14, 26, 9, 241, 237, 252, 7, 8, 255, 248, 254, 5, 9, 12, 6, 246, 228,
+			230, 3, 31, 26, 255, 231, 227, 244, 10, 21, 15, 3, 249, 242, 243, 251, 6, 12, 1, 241, 242, 253, 0, 255, 249, 244, 253, 5, 6, 0,
+			247, 246, 255, 1, 252, 254, 7, 9, 3, 253, 249, 250, 0, 6, 6, 3, 2, 1, 255, 2, 11, 15, 11, 9, 6, 0, 0, 5, 8, 10,
+			7, 0, 254, 0, 4, 7, 5, 0, 252, 251, 255, 3, 2, 0, 255, 0, 255, 254, 253, 253, 254, 255, 0, 0, 0, 0, 3, 1, 252, 250,
+			255, 4, 7, 6, 1, 254, 255, 4, 10, 10, 6, 1, 0, 3, 8, 12, 12, 12, 6, 255, 0, 3, 3, 4, 6, 3, 253, 248, 252, 2,
+			7, 8, 2, 251, 253, 0, 251, 244, 251, 6, 6, 0, 248, 246, 252, 1, 254, 246, 242, 248, 8, 13, 254, 244, 243, 246, 0, 12, 19, 15,
+			253, 231, 227, 246, 17, 32, 17, 240, 223, 238, 3, 12, 11, 6, 0, 251, 251, 3, 10, 0, 241, 239, 255, 21, 23, 252, 226, 224, 247, 20,
+			29, 14, 254, 247, 250, 254, 253, 2, 18, 27, 14, 246, 234, 247, 7, 15, 11, 4, 0, 0, 255, 247, 245, 0, 14, 22, 21, 0, 229, 231,
+			8, 34, 25, 246, 218, 229, 7, 32, 22, 246, 223, 230, 2, 29, 31, 3, 227, 223, 0, 0, 60, 0, 3, 0, 5, 0, 176, 0, 248, 1,
+			176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 60, 2, 16, 5, 3, 1, 0, 0, 0, 0, 210, 75, 120, 120, 120, 120, 120, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			176, 0, 248, 1, 176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 0, 11, 35, 12, 8, 3, 1, 1, 1, 0, 210, 75, 120, 120, 120, 120,
+			120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 176, 0, 248, 1, 176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 0, 11, 35, 12, 8, 3, 1, 1, 1, 0, 210, 75,
+			120, 120, 120, 120, 120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 52, 3, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 4, 7, 13, 21, 16, 235,
+			225, 4, 24, 254, 238, 0, 14, 0, 243, 2, 13, 254, 247, 11, 17, 255, 251, 7, 9, 5, 2, 4, 0, 251, 0, 5, 1, 253, 254, 0,
+			0, 249, 254, 3, 1, 255, 253, 253, 252, 247, 242, 7, 16, 255, 2, 26, 30, 218, 217, 27, 25, 228, 218, 26, 92, 34, 201, 216, 21, 41,
+			254, 232, 31, 59, 222, 164, 0, 79, 91, 225, 131, 243, 104, 75, 234, 182, 9, 69, 38, 233, 212, 247, 18, 20, 249, 218, 254, 25, 9, 234,
+			237, 3, 13, 4, 239, 249, 9, 12, 243, 3, 11, 10, 17, 13, 15, 254, 234, 229, 249, 25, 19, 230, 226, 16, 13, 245, 249, 17, 2, 4,
+			252, 248, 255, 21, 33, 226, 222, 19, 30, 22, 26, 252, 241, 247, 35, 24, 221, 241, 21, 17, 7, 0, 27, 32, 51, 47, 19, 239, 18, 28,
+			6, 225, 254, 5, 244, 230, 9, 7, 7, 2, 5, 6, 12, 246, 245, 12, 10, 235, 214, 14, 21, 252, 7, 24, 254, 15, 45, 16, 208, 227,
+			7, 0, 219, 217, 22, 51, 4, 248, 30, 14, 2, 19, 15, 242, 219, 249, 33, 238, 230, 16, 17, 245, 245, 34, 24, 224, 240, 51, 27, 223,
+			237, 17, 15, 251, 8, 33, 24, 4, 25, 19, 253, 4, 9, 254, 251, 245, 12, 0, 237, 2, 21, 255, 8, 31, 250, 248, 16, 6, 245, 248,
+			248, 12, 15, 249, 250, 9, 5, 3, 2, 4, 255, 252, 251, 252, 1, 251, 245, 1, 20, 0, 251, 10, 7, 246, 12, 18, 245, 245, 9, 0,
+			245, 255, 253, 238, 240, 5, 7, 251, 239, 0, 255, 254, 248, 252, 9, 245, 238, 14, 6, 240, 0, 16, 9, 1, 5, 14, 1, 252, 20, 12,
+			240, 5, 26, 2, 247, 13, 19, 251, 0, 20, 255, 0, 15, 255, 252, 3, 3, 7, 252, 248, 252, 8, 254, 6, 4, 253, 9, 11, 250, 241,
+			0, 6, 250, 2, 2, 248, 6, 13, 252, 242, 6, 5, 254, 251, 248, 14, 13, 241, 253, 6, 251, 241, 250, 0, 248, 242, 3, 254, 242, 0,
+			251, 244, 237, 240, 249, 254, 240, 237, 242, 237, 239, 245, 238, 236, 1, 224, 244, 230, 234, 242, 241, 238, 240, 249, 227, 252, 4, 211, 17, 252,
+			240, 0, 8, 250, 249, 5, 3, 250, 4, 9, 4, 8, 23, 11, 11, 14, 18, 14, 255, 19, 17, 6, 10, 25, 17, 10, 21, 12, 1, 14,
+			14, 1, 13, 17, 4, 5, 13, 10, 241, 19, 0, 245, 16, 0, 0, 1, 255, 8, 247, 6, 5, 7, 239, 16, 251, 244, 255, 0, 254, 247,
+			0, 5, 249, 2, 4, 246, 2, 5, 1, 252, 1, 253, 9, 1, 3, 253, 16, 4, 14, 9, 2, 11, 14, 4, 5, 18, 14, 6, 20, 16,
+			3, 19, 24, 8, 11, 20, 14, 10, 10, 15, 10, 5, 18, 18, 254, 17, 27, 0, 13, 22, 1, 9, 20, 9, 3, 11, 27, 6, 7, 30,
+			255, 7, 20, 247, 0, 5, 6, 7, 12, 246, 9, 244, 245, 8, 232, 246, 251, 247, 226, 250, 235, 236, 250, 245, 236, 237, 6, 234, 231, 250,
+			235, 243, 5, 250, 229, 14, 234, 237, 3, 217, 237, 12, 221, 252, 25, 233, 244, 29, 184, 13, 1, 201, 33, 226, 0, 14, 235, 253, 245, 246,
+			255, 254, 238, 237, 0, 238, 239, 247, 255, 241, 20, 18, 244, 21, 25, 242, 20, 7, 12, 23, 28, 7, 8, 31, 22, 11, 24, 5, 18, 15,
+			22, 2, 245, 10, 4, 239, 14, 253, 236, 20, 0, 249, 254, 19, 243, 4, 8, 233, 5, 0, 236, 6, 227, 4, 4, 243, 244, 0, 233, 248,
+			253, 228, 232, 236, 250, 230, 237, 252, 235, 238, 254, 237, 227, 0, 244, 228, 5, 234, 237, 247, 246, 230, 249, 238, 250, 254, 234, 0, 255, 248,
+			8, 0, 239, 14, 17, 255, 22, 9, 9, 32, 18, 14, 28, 28, 16, 33, 18, 7, 23, 29, 14, 12, 24, 19, 21, 24, 10, 14, 16, 24,
+			14, 7, 21, 21, 14, 18, 17, 9, 18, 18, 17, 3, 15, 11, 0, 8, 0, 0, 7, 1, 0, 254, 251, 6, 0, 246, 8, 247, 254, 5,
+			247, 2, 247, 2, 2, 250, 4, 1, 240, 244, 253, 254, 240, 10, 250, 235, 249, 239, 244, 220, 252, 227, 233, 244, 246, 221, 228, 2, 216, 222,
+			248, 225, 210, 11, 241, 213, 4, 244, 193, 218, 234, 177, 215, 248, 193, 205, 225, 226, 214, 206, 1, 205, 211, 31, 224, 211, 32, 13, 232, 49,
+			47, 14, 52, 83, 38, 38, 78, 66, 32, 60, 52, 11, 40, 46, 10, 14, 29, 21, 19, 14, 24, 0, 3, 0, 5, 0, 116, 0, 232, 0,
+			240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 25, 3, 12, 8, 4, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			116, 0, 232, 0, 240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 0, 3, 12, 8, 4, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175,
+			200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 116, 0, 232, 0, 240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 0, 3, 12, 8, 4, 4, 4, 4, 0, 0, 200, 212,
+			187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 219, 11, 36, 0, 7, 17, 19, 225, 216, 254, 31, 13, 216, 207, 17, 33, 10, 243, 229, 3, 15, 238, 228, 235,
+			33, 49, 231, 196, 4, 51, 235, 175, 11, 48, 5, 236, 241, 241, 15, 13, 230, 226, 14, 25, 243, 241, 6, 250, 8, 247, 239, 250, 26, 19,
+			216, 234, 44, 11, 226, 0, 19, 245, 247, 1, 255, 14, 11, 239, 1, 4, 231, 0, 33, 21, 242, 237, 5, 229, 244, 45, 15, 223, 0, 13,
+			226, 250, 35, 5, 2, 10, 211, 255, 49, 252, 251, 6, 28, 30, 252, 213, 220, 8, 20, 14, 11, 254, 0, 5, 2, 251, 242, 248, 37, 12,
+			245, 8, 0, 229, 252, 1, 234, 10, 16, 10, 13, 228, 222, 22, 38, 252, 210, 243, 36, 252, 227, 22, 38, 233, 246, 2, 237, 8, 31, 244,
+			238, 17, 8, 229, 213, 8, 67, 9, 187, 227, 35, 34, 215, 224, 42, 44, 247, 206, 227, 24, 54, 229, 215, 14, 31, 11, 243, 222, 0, 45,
+			9, 221, 236, 8, 25, 24, 241, 226, 10, 31, 229, 230, 18, 28, 11, 241, 213, 242, 39, 5, 239, 10, 251, 236, 7, 22, 255, 0, 4, 251,
+			0, 9, 251, 253, 238, 226, 19, 42, 14, 238, 0, 238, 231, 245, 23, 50, 11, 233, 252, 12, 230, 234, 29, 49, 3, 209, 226, 26, 48, 249,
+			228, 34, 37, 211, 200, 18, 53, 34, 240, 229, 0, 37, 254, 206, 250, 78, 44, 196, 221, 36, 22, 243, 230, 252, 32, 32, 244, 239, 249, 14,
+			252, 234, 13, 39, 238, 231, 6, 250, 253, 252, 232, 11, 51, 0, 202, 219, 35, 30, 210, 230, 42, 9, 238, 251, 255, 22, 10, 214, 224, 17,
+			32, 15, 235, 252, 24, 251, 213, 28, 33, 238, 13, 13, 238, 1, 20, 246, 249, 2, 14, 19, 254, 233, 248, 28, 9, 5, 0, 230, 230, 6,
+			21, 19, 27, 242, 229, 245, 2, 250, 39, 36, 228, 222, 25, 1, 218, 15, 37, 235, 17, 20, 215, 238, 15, 253, 253, 14, 37, 5, 220, 220,
+			21, 21, 1, 234, 253, 37, 3, 191, 10, 57, 240, 236, 21, 230, 244, 33, 235, 228, 18, 24, 250, 242, 223, 3, 44, 5, 238, 246, 4, 13,
+			231, 237, 44, 65, 223, 196, 6, 51, 19, 220, 227, 52, 39, 237, 204, 255, 33, 247, 223, 14, 22, 251, 241, 238, 238, 13, 30, 0, 240, 255,
+			6, 247, 243, 12, 1, 7, 25, 246, 250, 15, 251, 230, 255, 30, 25, 237, 225, 11, 19, 240, 254, 17, 21, 1, 215, 219, 71, 59, 224, 212,
+			6, 19, 8, 244, 7, 25, 2, 227, 251, 254, 8, 31, 14, 182, 241, 44, 12, 1, 252, 240, 1, 18, 248, 216, 5, 41, 239, 243, 37, 234,
+			209, 16, 53, 218, 230, 52, 8, 193, 247, 50, 26, 238, 239, 0, 28, 38, 219, 185, 31, 81, 249, 201, 19, 40, 230, 204, 251, 52, 54, 1,
+			201, 208, 27, 37, 241, 251, 35, 5, 227, 218, 235, 62, 45, 214, 214, 25, 28, 220, 212, 46, 61, 220, 206, 13, 27, 12, 237, 0, 15, 27,
+			253, 231, 15, 17, 250, 233, 3, 2, 16, 15, 0, 234, 7, 11, 235, 7, 14, 248, 236, 254, 30, 22, 235, 236, 251, 13, 13, 247, 230, 8,
+			12, 1, 14, 10, 6, 245, 223, 26, 51, 223, 229, 36, 249, 239, 26, 25, 248, 0, 242, 238, 9, 35, 0, 235, 26, 7, 223, 253, 33, 251,
+			240, 4, 2, 29, 28, 227, 228, 13, 252, 242, 255, 32, 51, 235, 200, 254, 26, 244, 255, 22, 8, 251, 237, 5, 18, 253, 244, 21, 13, 4,
+			249, 240, 0, 7, 19, 9, 234, 247, 8, 244, 223, 19, 55, 24, 203, 212, 17, 12, 244, 22, 24, 0, 254, 231, 233, 14, 36, 6, 231, 252,
+			29, 252, 233, 0, 235, 0, 44, 234, 230, 35, 8, 212, 233, 21, 24, 246, 210, 10, 45, 3, 230, 216, 26, 40, 235, 235, 32, 26, 242, 233,
+			253, 15, 27, 5, 3, 228, 245, 20, 254, 240, 22, 11, 7, 30, 242, 208, 11, 18, 239, 18, 49, 2, 209, 240, 254, 8, 15, 28, 5, 248,
+			231, 235, 6, 25, 6, 245, 237, 230, 18, 18, 228, 2, 25, 244, 221, 1, 22, 28, 252, 218, 252, 5, 252, 23, 232, 224, 51, 24, 224, 7,
+			8, 231, 10, 17, 10, 31, 251, 192, 230, 48, 26, 236, 1, 22, 244, 226, 247, 246, 39, 53, 215, 197, 31, 41, 245, 234, 245, 27, 34, 251,
+			219, 249, 31, 243, 228, 38, 46, 227, 231, 242, 241, 31, 57, 250, 196, 245, 20, 26, 0, 1, 15, 244, 228, 220, 13, 25, 15, 9, 238, 243,
+			6, 246, 234, 10, 15, 5, 249, 250, 253, 0, 5, 243, 236, 14, 48, 240, 222, 5, 4, 16, 12, 238, 0, 30, 239, 228, 15, 20, 13, 8,
+			231, 218, 27, 56, 252, 217, 238, 16, 36, 247, 220, 18, 35, 237, 210, 235, 48, 55, 251, 210, 249, 4, 229, 228, 45, 57, 7, 245, 223, 226,
+			229, 247, 27, 67, 10, 225, 1, 222, 235, 27, 29, 4, 255, 247, 238, 237, 16, 43, 0, 251, 250, 255, 234, 251, 15, 35, 18, 245, 231, 248,
+			15, 255, 248, 242, 35, 29, 252, 215, 234, 12, 19, 250, 220, 5, 20, 244, 244, 17, 19, 20, 192, 207, 51, 21, 223, 9, 23, 246, 250, 234,
+			232, 13, 29, 21, 239, 227, 13, 18, 228, 252, 33, 3, 250, 230, 226, 16, 39, 1, 248, 250, 4, 0, 232, 255, 47, 232, 213, 40, 52, 221,
+			206, 13, 30, 6, 231, 238, 23, 35, 251, 206, 9, 29, 244, 236, 11, 33, 17, 221, 175, 3, 80, 11, 227, 11, 0, 223, 252, 2, 252, 28,
+			34, 247, 203, 232, 42, 52, 232, 210, 38, 56, 227, 209, 29, 37, 211, 247, 72, 11, 205, 241, 2, 1, 26, 38, 13, 248, 204, 229, 54, 36,
+			218, 10, 57, 204, 194, 15, 35, 7, 24, 242, 214, 9, 0, 232, 14, 25, 17, 16, 232, 194, 245, 22, 17, 4, 11, 7, 224, 254, 249, 235,
+			21, 31, 233, 245, 25, 233, 238, 40, 2, 229, 12, 42, 226, 212, 19, 46, 243, 3, 22, 208, 246, 53, 246, 228, 22, 35, 244, 208, 23, 41,
+			239, 228, 0, 15, 0, 14, 255, 229, 8, 12, 249, 232, 11, 41, 234, 187, 14, 69, 240, 225, 10, 3, 221, 243, 33, 24, 250, 2, 250, 223,
+			9, 27, 12, 28, 237, 201, 254, 40, 3, 11, 253, 218, 16, 21, 240, 5, 244, 247, 8, 246, 10, 42, 9, 212, 220, 24, 33, 9, 225, 6,
+			14, 252, 245, 247, 22, 30, 239, 234, 18, 243, 2, 36, 216, 249, 70, 241, 206, 37, 252, 237, 56, 2, 207, 16, 21, 249, 0, 233, 15, 13,
+			208, 2, 77, 14, 210, 228, 253, 4, 1, 23, 20, 5, 219, 205, 2, 43, 24, 255, 217, 252, 15, 4, 11, 247, 227, 0, 253, 255, 10, 12,
+			253, 0, 32, 250, 222, 240, 1, 21, 21, 241, 255, 36, 254, 194, 238, 29, 26, 10, 19, 15, 233, 209, 4, 28, 15, 11, 251, 247, 252, 250,
+			8, 23, 0, 4, 240, 222, 16, 24, 9, 26, 2, 222, 234, 9, 22, 5, 248, 32, 21, 224, 241, 1, 14, 9, 249, 251, 24, 12, 222, 250,
+			16, 29, 15, 207, 239, 69, 8, 199, 7, 254, 247, 42, 243, 181, 40, 84, 209, 178, 18, 68, 16, 223, 223, 35, 42, 227, 200, 18, 81, 241,
+			210, 42, 27, 210, 235, 247, 19, 53, 6, 188, 238, 66, 23, 192, 216, 28, 65, 234, 229, 33, 26, 240, 247, 245, 242, 32, 43, 237, 237, 23,
+			15, 253, 17, 0, 223, 0, 34, 16, 21, 25, 247, 216, 221, 11, 61, 30, 242, 233, 238, 6, 8, 20, 22, 255, 221, 227, 16, 26, 11, 16,
+			244, 216, 245, 3, 3, 34, 38, 240, 191, 247, 21, 254, 21, 48, 227, 170, 0, 71, 246, 228, 14, 238, 219, 21, 20, 253, 33, 251, 205, 1,
+			19, 12, 7, 252, 2, 234, 225, 14, 21, 13, 26, 223, 213, 19, 3, 13, 53, 234, 207, 14, 254, 243, 41, 20, 222, 35, 2, 196, 232, 58,
+			67, 239, 213, 34, 34, 191, 215, 45, 33, 23, 36, 223, 199, 36, 13, 212, 4, 59, 14, 196, 231, 12, 207, 9, 85, 241, 187, 0, 247, 2,
+			45, 242, 226, 43, 0, 189, 251, 22, 5, 13, 0, 250, 15, 237, 214, 7, 14, 31, 19, 195, 225, 63, 13, 191, 255, 18, 11, 252, 209, 5,
+			63, 242, 190, 49, 27, 231, 238, 208, 10, 75, 0, 205, 9, 29, 32, 219, 174, 48, 81, 238, 203, 29, 42, 249, 209, 225, 13, 31, 10, 11,
+			17, 5, 217, 209, 6, 29, 31, 0, 242, 10, 253, 234, 243, 23, 44, 245, 220, 14, 9, 239, 34, 27, 229, 238, 4, 17, 11, 253, 3, 250,
+			219, 252, 55, 32, 211, 242, 59, 13, 201, 224, 46, 44, 222, 242, 34, 28, 213, 223, 54, 255, 195, 19, 63, 0, 224, 0, 20, 244, 18, 8,
+			239, 6, 3, 231, 12, 41, 16, 212, 254, 44, 239, 241, 250, 233, 38, 51, 224, 209, 25, 45, 233, 214, 234, 19, 49, 236, 215, 37, 16, 219,
+			225, 2, 48, 43, 252, 221, 217, 0, 17, 250, 250, 43, 26, 205, 195, 26, 46, 245, 229, 73, 66, 159, 165, 68, 48, 233, 251, 231, 36, 77,
+			191, 151, 53, 92, 238, 221, 32, 60, 252, 203, 218, 6, 76, 94, 3, 186, 9, 27, 228, 240, 52, 62, 20, 181, 215, 72, 25, 240, 13, 21,
+			12, 229, 203, 13, 90, 33, 229, 210, 246, 19, 246, 232, 38, 81, 5, 205, 196, 242, 35, 2, 6, 33, 248, 212, 216, 245, 48, 69, 6, 194,
+			220, 33, 34, 26, 254, 239, 6, 43, 241, 192, 37, 72, 237, 225, 41, 12, 226, 244, 236, 3, 34, 1, 222, 15, 62, 229, 166, 5, 86, 250,
+			177, 18, 52, 234, 225, 245, 13, 30, 227, 234, 40, 11, 192, 231, 18, 33, 251, 225, 44, 31, 175, 205, 28, 232, 0, 92, 17, 190, 207, 25,
+			6, 225, 9, 29, 249, 231, 215, 252, 54, 0, 196, 236, 12, 245, 244, 24, 18, 233, 205, 237, 43, 26, 229, 211, 240, 31, 3, 252, 5, 239,
+			249, 240, 208, 54, 61, 196, 226, 36, 245, 204, 14, 5, 0, 14, 233, 252, 8, 251, 249, 252, 216, 19, 51, 14, 229, 197, 234, 56, 42, 250,
+			251, 5, 216, 236, 28, 255, 255, 42, 27, 200, 195, 49, 61, 211, 220, 35, 13, 231, 249, 50, 35, 204, 217, 29, 28, 248, 234, 13, 28, 251,
+			213, 9, 68, 236, 208, 13, 9, 10, 22, 250, 226, 236, 58, 23, 211, 250, 34, 195, 213, 86, 52, 219, 205, 0, 24, 26, 248, 233, 249, 8,
+			22, 237, 6, 37, 250, 231, 223, 2, 77, 30, 181, 210, 43, 19, 254, 253, 6, 27, 246, 167, 2, 95, 12, 177, 5, 50, 0, 225, 208, 238,
+			35, 45, 9, 208, 220, 47, 251, 178, 12, 69, 23, 240, 196, 251, 78, 254, 163, 249, 73, 11, 202, 228, 38, 38, 233, 241, 4, 11, 8, 242,
+			220, 19, 46, 250, 238, 250, 9, 250, 222, 240, 50, 61, 242, 199, 253, 33, 243, 233, 13, 60, 15, 217, 211, 25, 72, 7, 189, 3, 63, 251,
+			210, 17, 29, 241, 253, 36, 249, 234, 21, 248, 202, 35, 114, 34, 177, 208, 6, 15, 25, 41, 18, 251, 5, 221, 211, 31, 21, 231, 32, 42,
+			214, 212, 3, 22, 61, 238, 205, 47, 16, 157, 234, 89, 47, 243, 246, 240, 241, 3, 246, 235, 49, 58, 230, 184, 251, 13, 238, 26, 16, 192,
+			5, 75, 251, 165, 3, 61, 20, 234, 2, 13, 3, 230, 3, 40, 5, 221, 24, 24, 191, 245, 61, 30, 246, 207, 2, 12, 10, 13, 4, 243,
+			254, 239, 219, 43, 21, 238, 38, 248, 183, 29, 56, 204, 14, 37, 215, 242, 40, 234, 215, 47, 35, 218, 224, 1, 251, 253, 31, 15, 237, 28,
+			2, 178, 36, 60, 201, 252, 59, 244, 11, 16, 220, 18, 47, 236, 6, 6, 247, 44, 15, 161, 228, 106, 40, 183, 219, 53, 63, 187, 199, 64,
+			47, 238, 233, 204, 43, 117, 226, 164, 27, 75, 234, 197, 222, 48, 72, 233, 223, 22, 252, 194, 214, 50, 75, 215, 173, 49, 71, 198, 192, 18,
+			60, 246, 203, 236, 38, 50, 16, 225, 186, 3, 97, 1, 150, 228, 84, 57, 192, 191, 30, 35, 186, 217, 57, 37, 230, 240, 208, 212, 22, 20,
+			255, 23, 8, 245, 191, 179, 33, 84, 250, 242, 254, 207, 224, 229, 248, 77, 52, 193, 203, 23, 3, 0, 235, 251, 71, 242, 160, 11, 44, 253,
+			230, 221, 78, 69, 147, 150, 97, 91, 202, 195, 234, 1, 20, 20, 36, 28, 244, 199, 204, 0, 54, 24, 31, 52, 229, 169, 251, 27, 23, 54,
+			39, 195, 218, 46, 7, 249, 51, 17, 222, 8, 61, 235, 227, 49, 10, 5, 65, 255, 180, 30, 83, 221, 226, 97, 31, 172, 0, 32, 32, 46,
+			234, 225, 20, 22, 245, 237, 31, 40, 229, 199, 39, 50, 218, 243, 50, 2, 198, 252, 38, 36, 227, 206, 29, 99, 8, 175, 1, 71, 244, 203,
+			62, 47, 218, 233, 1, 233, 10, 69, 5, 209, 209, 11, 23, 6, 222, 13, 72, 211, 136, 32, 115, 202, 161, 79, 87, 207, 157, 14, 77, 7,
+			211, 249, 4, 30, 249, 179, 251, 76, 249, 190, 24, 16, 252, 27, 244, 229, 29, 23, 238, 255, 38, 18, 206, 213, 66, 95, 236, 164, 253, 82,
+			0, 137, 9, 119, 5, 173, 255, 16, 5, 17, 200, 201, 124, 106, 142, 160, 70, 25, 206, 253, 51, 56, 247, 169, 210, 47, 53, 240, 228, 6,
+			15, 215, 221, 4, 24, 39, 243, 190, 10, 66, 247, 223, 228, 22, 52, 242, 194, 5, 69, 9, 220, 210, 254, 57, 27, 210, 221, 33, 19, 219,
+			221, 60, 41, 225, 7, 56, 248, 236, 209, 234, 70, 64, 234, 13, 22, 231, 230, 11, 5, 40, 40, 217, 223, 0, 236, 15, 54, 254, 225, 251,
+			11, 208, 212, 72, 65, 211, 213, 43, 234, 211, 24, 24, 0, 33, 251, 189, 245, 23, 18, 19, 223, 206, 44, 60, 206, 181, 23, 88, 230, 156,
+			47, 71, 193, 200, 20, 29, 22, 234, 245, 10, 245, 244, 30, 226, 233, 48, 13, 224, 219, 254, 35, 4, 251, 32, 37, 203, 186, 255, 29, 21,
+			16, 36, 4, 209, 179, 30, 95, 6, 216, 11, 17, 218, 219, 21, 45, 253, 6, 37, 235, 188, 0, 36, 251, 238, 25, 7, 224, 251, 20, 214,
+			213, 58, 43, 208, 211, 6, 5, 250, 246, 12, 22, 0, 210, 217, 27, 34, 249, 9, 27, 233, 248, 250, 224, 6, 79, 17, 228, 9, 235, 215,
+			25, 42, 249, 252, 31, 234, 153, 243, 105, 42, 229, 5, 237, 232, 253, 249, 27, 79, 6, 183, 243, 63, 7, 239, 251, 16, 237, 236, 30, 1,
+			198, 10, 34, 213, 250, 44, 223, 230, 18, 229, 255, 42, 230, 242, 33, 4, 206, 245, 56, 65, 243, 178, 216, 44, 61, 255, 185, 29, 76, 186,
+			137, 44, 90, 0, 192, 245, 17, 244, 253, 33, 248, 231, 39, 10, 195, 248, 61, 35, 244, 218, 1, 254, 223, 231, 61, 72, 226, 157, 228, 68,
+			52, 199, 216, 62, 62, 233, 209, 246, 34, 250, 249, 39, 17, 190, 232, 11, 22, 29, 23, 5, 226, 0, 23, 254, 244, 54, 50, 249, 222, 241,
+			14, 16, 244, 248, 27, 29, 244, 244, 31, 10, 211, 228, 44, 34, 212, 240, 25, 7, 2, 255, 250, 14, 8, 228, 226, 9, 33, 30, 0, 191,
+			220, 25, 18, 241, 248, 44, 12, 201, 199, 28, 36, 7, 251, 219, 220, 22, 252, 216, 39, 67, 235, 217, 252, 11, 6, 15, 234, 239, 59, 42,
+			178, 210, 68, 24, 200, 6, 56, 18, 247, 223, 196, 40, 97, 250, 213, 25, 29, 213, 218, 32, 70, 21, 210, 220, 3, 1, 250, 243, 26, 52,
+			228, 212, 32, 43, 223, 235, 41, 21, 254, 249, 232, 232, 36, 34, 220, 239, 26, 7, 218, 236, 33, 29, 232, 229, 253, 13, 14, 239, 235, 27,
+			41, 250, 199, 243, 44, 19, 214, 233, 54, 253, 203, 240, 20, 11, 250, 230, 10, 44, 230, 209, 13, 35, 249, 230, 249, 16, 9, 245, 251, 11,
+			17, 7, 211, 225, 31, 29, 7, 253, 230, 233, 15, 16, 1, 8, 241, 238, 8, 250, 251, 32, 19, 226, 226, 254, 19, 35, 0, 232, 232, 248,
+			22, 254, 237, 4, 14, 253, 244, 248, 10, 22, 238, 235, 22, 36, 0, 253, 243, 242, 27, 32, 3, 8, 7, 250, 239, 13, 42, 2, 215, 245,
+			11, 26, 28, 251, 226, 12, 25, 233, 255, 42, 0, 223, 246, 5, 9, 11, 230, 236, 10, 4, 252, 249, 251, 7, 248, 227, 249, 44, 41, 220,
+			211, 9, 25, 254, 7, 13, 248, 255, 0, 235, 10, 23, 235, 232, 20, 25, 254, 235, 241, 4, 8, 252, 3, 27, 3, 237, 251, 16, 11, 7,
+			15, 0, 239, 249, 2, 254, 15, 32, 1, 223, 242, 14, 11, 254, 240, 247, 22, 4, 208, 0, 49, 250, 234, 34, 16, 227, 252, 12, 4, 16,
+			12, 9, 6, 241, 244, 251, 1, 23, 30, 253, 236, 245, 0, 6, 0, 11, 44, 10, 210, 234, 24, 28, 5, 238, 0, 24, 244, 218, 4, 32,
+			12, 246, 244, 254, 8, 253, 237, 251, 27, 12, 241, 235, 254, 252, 253, 243, 250, 13, 4, 230, 221, 254, 16, 3, 246, 251, 251, 239, 236, 255,
+			16, 13, 234, 211, 254, 27, 246, 230, 247, 2, 246, 240, 246, 2, 244, 0, 121, 8, 30, 0, 248, 12, 23, 0, 234, 214, 221, 242, 8, 252,
+			4, 28, 34, 36, 47, 28, 249, 224, 232, 242, 227, 215, 244, 15, 6, 13, 43, 54, 41, 33, 40, 28, 245, 226, 226, 222, 197, 220, 255, 254,
+			29, 57, 36, 31, 48, 58, 3, 235, 23, 251, 212, 0, 30, 244, 252, 34, 38, 42, 42, 13, 8, 14, 247, 233, 230, 219, 200, 242, 23, 18,
+			10, 48, 61, 46, 39, 236, 225, 252, 225, 204, 217, 233, 237, 27, 53, 33, 48, 44, 255, 20, 5, 220, 223, 230, 200, 214, 24, 1, 245, 53,
+			49, 15, 38, 19, 223, 224, 249, 219, 203, 254, 14, 11, 29, 32, 29, 27, 34, 29, 254, 6, 2, 212, 209, 230, 218, 201, 217, 19, 24, 12,
+			37, 49, 27, 18, 31, 244, 212, 235, 244, 224, 223, 254, 11, 9, 26, 30, 29, 39, 28, 15, 1, 225, 219, 244, 227, 234, 9, 243, 231, 17,
+			28, 245, 253, 30, 255, 236, 16, 23, 247, 254, 3, 0, 240, 243, 248, 0, 2, 242, 12, 19, 253, 253, 24, 32, 2, 4, 255, 237, 241, 236,
+			212, 241, 19, 11, 17, 56, 50, 16, 37, 17, 184, 192, 223, 179, 180, 2, 27, 33, 73, 93, 66, 41, 41, 13, 224, 217, 214, 187, 189, 211,
+			243, 14, 36, 60, 87, 53, 33, 51, 6, 219, 227, 199, 167, 195, 220, 211, 240, 17, 33, 63, 89, 45, 25, 43, 244, 180, 222, 206, 188, 240,
+			242, 242, 34, 46, 22, 34, 24, 250, 247, 241, 211, 211, 228, 234, 249, 13, 32, 18, 37, 62, 32, 23, 34, 6, 227, 242, 223, 206, 235, 226,
+			225, 3, 13, 1, 25, 44, 26, 8, 10, 254, 224, 209, 207, 201, 201, 214, 244, 38, 51, 27, 54, 71, 23, 3, 15, 219, 192, 223, 215, 220,
+			238, 235, 11, 46, 32, 38, 41, 6, 0, 245, 221, 208, 219, 232, 228, 246, 8, 16, 28, 46, 43, 32, 4, 223, 218, 236, 205, 205, 234, 249,
+			35, 29, 40, 85, 58, 7, 6, 3, 207, 181, 205, 206, 202, 6, 17, 32, 76, 82, 30, 29, 54, 238, 188, 226, 208, 179, 220, 233, 246, 12,
+			31, 39, 67, 69, 42, 59, 26, 210, 177, 182, 194, 184, 223, 9, 16, 52, 92, 78, 63, 43, 0, 217, 213, 213, 188, 203, 215, 247, 16, 29,
+			47, 56, 37, 39, 24, 5, 6, 240, 221, 208, 238, 240, 226, 243, 28, 48, 34, 24, 43, 26, 16, 0, 223, 200, 210, 224, 225, 247, 244, 240,
+			34, 39, 8, 42, 59, 6, 243, 6, 247, 211, 217, 203, 215, 1, 6, 21, 51, 54, 37, 20, 21, 30, 0, 223, 229, 207, 199, 228, 238, 243,
+			39, 47, 44, 63, 58, 33, 17, 248, 221, 209, 201, 215, 214, 194, 239, 23, 18, 33, 61, 48, 30, 10, 0, 2, 234, 225, 230, 239, 0, 14,
+			37, 32, 36, 46, 59, 31, 247, 234, 236, 203, 213, 236, 206, 214, 3, 19, 11, 47, 64, 19, 31, 50, 255, 231, 250, 224, 182, 194, 219, 218,
+			243, 49, 35, 33, 86, 64, 26, 51, 14, 193, 226, 233, 177, 196, 250, 251, 237, 33, 54, 27, 27, 46, 9, 239, 2, 252, 219, 219, 206, 212,
+			4, 16, 16, 29, 48, 64, 19, 10, 27, 224, 202, 230, 219, 224, 1, 22, 37, 37, 22, 17, 46, 27, 210, 191, 228, 202, 168, 237, 251, 248,
+			42, 47, 32, 49, 53, 254, 244, 3, 233, 209, 208, 218, 222, 240, 0, 2, 16, 54, 29, 24, 38, 12, 240, 252, 4, 220, 198, 220, 244, 252,
+			21, 29, 25, 31, 62, 49, 251, 13, 14, 217, 219, 220, 217, 232, 243, 19, 49, 67, 45, 32, 44, 15, 239, 215, 207, 208, 221, 231, 233, 244,
+			249, 6, 26, 40, 62, 54, 15, 16, 4, 220, 205, 209, 211, 229, 217, 236, 17, 41, 59, 62, 41, 43, 54, 17, 232, 233, 216, 178, 178, 216,
+			232, 245, 27, 41, 36, 63, 68, 40, 1, 232, 241, 200, 159, 182, 226, 231, 247, 44, 63, 64, 70, 67, 4, 3, 254, 176, 166, 235, 224, 180,
+			1, 26, 28, 58, 65, 38, 45, 41, 248, 218, 224, 222, 192, 218, 233, 223, 253, 61, 39, 25, 54, 67, 43, 0, 212, 213, 213, 197, 210, 249,
+			248, 2, 56, 51, 34, 41, 27, 7, 22, 250, 209, 185, 203, 246, 210, 213, 42, 46, 11, 78, 74, 35, 59, 28, 231, 240, 217, 161, 170, 204,
+			232, 242, 42, 45, 25, 62, 69, 24, 8, 10, 239, 223, 227, 171, 197, 247, 217, 245, 27, 26, 48, 57, 28, 4, 252, 243, 233, 228, 227, 8,
+			31, 41, 24, 29, 37, 17, 240, 230, 239, 226, 228, 249, 3, 6, 7, 23, 15, 5, 42, 28, 222, 248, 5, 235, 239, 223, 216, 41, 20, 217,
+			22, 58, 3, 5, 28, 10, 231, 218, 235, 233, 225, 252, 230, 243, 55, 16, 24, 76, 39, 0, 20, 12, 217, 224, 237, 225, 192, 231, 18, 252,
+			248, 39, 32, 19, 48, 19, 235, 247, 243, 238, 221, 197, 221, 251, 237, 217, 26, 63, 30, 5, 42, 49, 253, 244, 3, 237, 224, 251, 225, 211,
+			240, 3, 251, 22, 9, 239, 23, 63, 47, 7, 40, 23, 194, 225, 30, 195, 158, 7, 12, 243, 42, 66, 32, 8, 20, 19, 243, 226, 2, 8,
+			254, 12, 244, 238, 14, 13, 235, 252, 242, 237, 8, 254, 5, 11, 15, 4, 5, 0, 252, 241, 247, 4, 8, 243, 0, 16, 253, 2, 24, 250,
+			243, 22, 17, 223, 225, 13, 237, 205, 253, 40, 3, 3, 61, 39, 27, 53, 248, 196, 227, 205, 175, 204, 230, 216, 20, 52, 33, 52, 65, 32,
+			243, 6, 25, 217, 215, 11, 243, 216, 234, 9, 32, 25, 22, 41, 43, 20, 26, 16, 239, 225, 228, 229, 236, 229, 229, 240, 21, 28, 22, 39,
+			45, 24, 41, 32, 237, 241, 236, 207, 215, 232, 229, 234, 10, 45, 43, 45, 58, 21, 19, 31, 229, 200, 223, 226, 204, 220, 248, 255, 249, 20,
+			47, 26, 0, 17, 42, 21, 248, 246, 12, 0, 219, 229, 228, 216, 225, 13, 25, 6, 24, 31, 10, 0, 10, 0, 207, 218, 20, 240, 220, 26,
+			255, 0, 50, 8, 230, 20, 8, 252, 1, 245, 18, 25, 11, 13, 9, 236, 218, 237, 249, 207, 231, 32, 41, 0, 21, 54, 41, 23, 14, 8,
+			250, 227, 226, 206, 216, 245, 244, 20, 49, 60, 63, 61, 29, 1, 13, 211, 149, 215, 209, 148, 216, 51, 6, 2, 67, 44, 23, 55, 10, 201,
+			6, 247, 183, 223, 22, 227, 247, 58, 18, 45, 71, 13, 252, 18, 2, 239, 244, 227, 188, 220, 0, 221, 212, 35, 30, 254, 44, 60, 248, 229,
+			12, 231, 200, 226, 251, 196, 195, 10, 29, 11, 23, 43, 31, 13, 14, 8, 241, 244, 238, 238, 9, 34, 27, 19, 6, 19, 248, 234, 10, 1,
+			221, 230, 13, 237, 241, 255, 22, 6, 0, 22, 12, 29, 0, 234, 24, 9, 198, 215, 6, 249, 230, 22, 39, 0, 37, 62, 211, 180, 247, 210,
+			228, 52, 253, 228, 74, 52, 2, 74, 34, 212, 26, 31, 214, 225, 8, 231, 211, 9, 233, 211, 65, 37, 218, 30, 53, 232, 242, 30, 205, 180,
+			252, 240, 227, 6, 1, 252, 41, 51, 6, 238, 5, 11, 238, 249, 0, 239, 255, 36, 28, 8, 52, 40, 234, 235, 239, 208, 212, 244, 206, 223,
+			46, 22, 245, 48, 70, 238, 241, 20, 227, 190, 252, 248, 218, 253, 23, 22, 29, 11, 6, 35, 241, 208, 49, 51, 197, 242, 45, 0, 248, 17,
+			250, 245, 20, 249, 225, 17, 28, 211, 221, 32, 248, 233, 54, 45, 39, 38, 9, 3, 10, 230, 196, 199, 193, 203, 224, 17, 24, 15, 77, 78,
+			22, 45, 66, 233, 214, 17, 219, 154, 201, 255, 235, 9, 9, 251, 36, 73, 8, 0, 17, 214, 201, 215, 209, 215, 15, 63, 5, 18, 90, 31,
+			204, 9, 12, 210, 3, 20, 203, 243, 41, 249, 15, 67, 255, 248, 67, 40, 0, 24, 236, 203, 204, 221, 202, 226, 0, 13, 53, 55, 31, 35,
+			73, 3, 195, 247, 232, 166, 212, 1, 229, 232, 24, 0, 243, 71, 50, 5, 37, 14, 218, 255, 12, 202, 220, 243, 212, 221, 20, 21, 14, 26,
+			56, 54, 24, 22, 20, 246, 248, 232, 203, 231, 2, 235, 226, 252, 10, 32, 47, 3, 19, 69, 28, 218, 253, 19, 205, 185, 20, 21, 210, 26,
+			70, 3, 15, 61, 254, 252, 19, 206, 205, 234, 215, 211, 242, 230, 246, 35, 39, 21, 28, 39, 54, 23, 228, 234, 241, 235, 214, 246, 24, 16,
+			0, 9, 14, 245, 231, 232, 255, 6, 240, 241, 12, 8, 3, 38, 42, 248, 237, 12, 2, 244, 239, 223, 222, 5, 11, 6, 50, 54, 26, 38,
+			48, 248, 229, 244, 227, 192, 214, 241, 1, 33, 56, 68, 52, 36, 4, 1, 27, 227, 183, 187, 194, 208, 230, 35, 59, 68, 70, 47, 36, 22,
+			231, 179, 196, 213, 178, 214, 12, 0, 20, 63, 55, 42, 44, 26, 243, 200, 187, 182, 201, 215, 234, 0, 48, 51, 30, 56, 65, 26, 11, 247,
+			206, 207, 197, 201, 216, 237, 245, 244, 14, 79, 98, 79, 76, 50, 247, 219, 199, 152, 159, 180, 200, 219, 8, 76, 94, 103, 89, 64, 55, 10,
+			226, 212, 206, 186, 140, 172, 234, 13, 6, 46, 101, 78, 93, 94, 3, 204, 172, 156, 156, 188, 196, 192, 31, 57, 30, 84, 94, 29, 25, 63,
+			248, 155, 199, 203, 149, 192, 0, 239, 29, 125, 94, 52, 89, 46, 205, 225, 199, 141, 175, 203, 220, 1, 43, 49, 67, 56, 10, 34, 39, 214,
+			205, 253, 233, 219, 0, 20, 5, 44, 67, 20, 24, 18, 236, 237, 219, 198, 254, 14, 227, 26, 72, 16, 4, 55, 38, 246, 240, 241, 215, 219,
+			252, 248, 253, 15, 2, 255, 19, 248, 230, 17, 241, 193, 24, 84, 244, 225, 43, 25, 219, 230, 248, 236, 237, 253, 253, 255, 19, 11, 3, 30,
+			34, 8, 229, 230, 240, 229, 222, 220, 243, 23, 24, 28, 26, 19, 39, 40, 244, 204, 233, 241, 195, 209, 241, 8, 5, 13, 81, 87, 17, 12,
+			39, 249, 202, 241, 220, 188, 235, 253, 227, 255, 47, 26, 20, 35, 253, 251, 30, 17, 251, 222, 225, 0, 252, 250, 6, 244, 247, 5, 1, 14,
+			17, 253, 29, 80, 7, 230, 12, 3, 210, 196, 230, 246, 232, 252, 47, 43, 35, 19, 8, 23, 11, 232, 225, 221, 200, 203, 238, 242, 250, 80,
+			102, 43, 43, 80, 35, 211, 211, 230, 192, 152, 185, 241, 251, 14, 89, 78, 42, 94, 91, 1, 228, 248, 179, 149, 183, 174, 177, 228, 251, 53,
+			104, 62, 77, 111, 39, 232, 230, 198, 154, 162, 215, 231, 227, 44, 103, 67, 70, 101, 49, 12, 243, 215, 194, 164, 161, 207, 226, 238, 47, 52,
+			33, 79, 69, 6, 21, 18, 225, 162, 175, 206, 177, 216, 18, 15, 37, 97, 84, 33, 23, 36, 232, 180, 168, 177, 197, 186, 226, 45, 91, 70,
+			68, 102, 87, 35, 254, 231, 204, 184, 173, 193, 221, 250, 21, 59, 57, 62, 112, 98, 33, 237, 221, 195, 143, 164, 206, 200, 228, 241, 23, 49,
+			65, 57, 41, 47, 9, 6, 251, 206, 209, 227, 220, 214, 221, 253, 29, 22, 24, 59, 64, 27, 22, 32, 9, 253, 236, 228, 237, 224, 239, 248,
+			223, 255, 30, 7, 20, 52, 37, 41, 29, 7, 251, 225, 223, 227, 210, 219, 232, 232, 244, 21, 15, 27, 47, 41, 41, 12, 21, 18, 222, 232,
+			228, 229, 245, 234, 244, 18, 5, 12, 29, 13, 16, 24, 1, 27, 17, 241, 254, 243, 222, 230, 236, 229, 210, 248, 17, 18, 244, 12, 49, 11,
+			21, 38, 6, 235, 251, 236, 205, 237, 247, 251, 12, 19, 40, 35, 25, 15, 13, 255, 241, 252, 249, 221, 206, 247, 245, 216, 246, 33, 32, 35,
+			27, 39, 62, 12, 0, 234, 209, 214, 187, 183, 248, 231, 248, 41, 33, 43, 67, 42, 30, 24, 243, 216, 216, 190, 193, 214, 219, 229, 19, 26,
+			36, 43, 54, 54, 23, 10, 0, 232, 201, 215, 218, 178, 231, 38, 5, 34, 99, 52, 32, 72, 22, 247, 5, 199, 203, 236, 204, 240, 10, 2,
+			22, 33, 47, 31, 255, 10, 6, 233, 225, 229, 230, 221, 249, 0, 0, 34, 34, 15, 40, 10, 252, 0, 231, 205, 228, 253, 235, 230, 21, 20,
+			24, 28, 31, 41, 8, 13, 5, 244, 5, 231, 222, 253, 1, 233, 12, 16, 3, 41, 27, 16, 6, 250, 255, 240, 217, 234, 249, 242, 246, 0,
+			0, 0, 76, 11, 178, 0, 10, 246, 247, 248, 0, 19, 0, 242, 9, 16, 0, 239, 239, 3, 14, 11, 4, 253, 1, 252, 245, 250, 2, 10,
+			19, 12, 242, 231, 246, 9, 15, 8, 3, 2, 249, 240, 254, 9, 255, 1, 9, 11, 15, 245, 216, 244, 30, 29, 4, 238, 244, 11, 253, 232,
+			5, 27, 16, 5, 242, 231, 0, 17, 0, 236, 253, 31, 27, 244, 233, 253, 1, 247, 5, 27, 8, 235, 242, 3, 1, 250, 6, 37, 21, 221,
+			219, 0, 20, 16, 248, 248, 30, 22, 215, 204, 16, 49, 11, 239, 0, 21, 244, 213, 251, 25, 8, 12, 19, 248, 236, 245, 1, 15, 2, 245,
+			14, 13, 241, 246, 254, 255, 19, 20, 253, 248, 247, 246, 250, 249, 7, 23, 18, 250, 236, 248, 2, 3, 255, 253, 13, 27, 248, 216, 241, 27,
+			30, 254, 249, 12, 251, 221, 245, 32, 25, 242, 242, 14, 13, 240, 235, 5, 13, 5, 11, 3, 240, 241, 253, 13, 11, 241, 253, 45, 18, 194,
+			206, 35, 53, 248, 226, 7, 26, 250, 230, 254, 19, 10, 2, 3, 250, 242, 0, 13, 246, 232, 16, 42, 11, 230, 230, 0, 254, 254, 27, 19,
+			250, 250, 251, 244, 244, 3, 29, 13, 251, 3, 247, 222, 237, 16, 32, 20, 253, 253, 247, 225, 253, 34, 8, 238, 3, 30, 21, 216, 185, 1,
+			70, 37, 1, 246, 233, 243, 245, 250, 15, 32, 20, 231, 225, 12, 13, 232, 244, 41, 46, 240, 202, 240, 24, 8, 238, 0, 40, 28, 229, 217,
+			251, 22, 7, 250, 5, 29, 9, 212, 221, 24, 31, 0, 254, 13, 0, 233, 235, 250, 8, 24, 35, 11, 231, 225, 241, 4, 24, 27, 10, 238,
+			232, 247, 4, 255, 3, 28, 25, 245, 230, 240, 6, 9, 252, 6, 22, 253, 227, 246, 5, 9, 21, 4, 241, 0, 10, 244, 230, 8, 45, 14,
+			219, 235, 32, 20, 227, 224, 11, 39, 8, 235, 8, 11, 234, 239, 8, 26, 19, 238, 235, 3, 254, 244, 0, 21, 34, 4, 232, 243, 249, 254,
+			10, 11, 255, 2, 7, 244, 232, 254, 24, 20, 3, 254, 247, 242, 247, 4, 12, 0, 2, 36, 8, 204, 222, 24, 42, 13, 238, 238, 3, 4,
+			240, 240, 14, 40, 23, 231, 217, 254, 20, 7, 252, 254, 4, 10, 253, 242, 0, 7, 254, 11, 26, 255, 225, 231, 4, 21, 11, 8, 3, 238,
+			235, 4, 13, 0, 0, 9, 15, 9, 241, 232, 244, 252, 11, 28, 21, 245, 229, 250, 20, 12, 254, 253, 3, 249, 234, 251, 17, 22, 9, 234,
+			236, 23, 25, 245, 230, 247, 21, 17, 254, 253, 247, 240, 255, 17, 26, 16, 246, 230, 246, 11, 242, 223, 20, 63, 13, 206, 219, 40, 43, 218,
+			207, 29, 57, 3, 213, 223, 28, 35, 237, 237, 26, 12, 232, 231, 12, 42, 4, 221, 1, 22, 236, 217, 13, 54, 26, 226, 215, 248, 21, 37,
+			2, 215, 241, 25, 23, 6, 236, 232, 12, 20, 254, 0, 245, 254, 28, 7, 232, 242, 0, 6, 255, 3, 28, 3, 237, 254, 4, 0, 7, 0,
+			233, 244, 20, 19, 251, 247, 18, 20, 239, 215, 246, 21, 13, 6, 26, 8, 219, 215, 7, 44, 25, 233, 242, 36, 6, 188, 219, 49, 64, 1,
+			204, 236, 26, 7, 246, 10, 18, 13, 253, 214, 225, 33, 36, 249, 243, 19, 7, 217, 229, 23, 28, 20, 13, 240, 225, 231, 9, 23, 255, 11,
+			34, 247, 207, 232, 13, 22, 18, 22, 2, 225, 236, 11, 9, 252, 0, 29, 17, 217, 222, 21, 20, 249, 2, 11, 0, 0, 5, 245, 229, 251,
+			39, 33, 233, 229, 10, 10, 238, 247, 10, 17, 17, 3, 237, 238, 254, 8, 3, 254, 22, 30, 230, 197, 245, 43, 40, 253, 248, 8, 237, 219,
+			5, 29, 15, 11, 255, 236, 240, 249, 10, 9, 10, 23, 254, 223, 247, 25, 6, 232, 1, 26, 9, 245, 225, 232, 24, 49, 6, 217, 253, 41,
+			251, 214, 247, 23, 13, 253, 0, 14, 254, 226, 251, 39, 13, 233, 245, 255, 4, 14, 253, 234, 253, 24, 30, 247, 222, 254, 27, 3, 230, 252,
+			15, 3, 255, 11, 9, 240, 237, 11, 25, 4, 235, 243, 19, 7, 238, 2, 29, 6, 227, 232, 13, 25, 247, 241, 21, 12, 224, 237, 28, 29,
+			238, 228, 25, 43, 240, 200, 242, 48, 27, 229, 0, 27, 244, 224, 4, 25, 12, 251, 249, 2, 248, 238, 7, 15, 2, 10, 2, 240, 237, 237,
+			16, 53, 6, 224, 238, 12, 34, 3, 204, 225, 33, 47, 6, 229, 237, 13, 15, 247, 239, 253, 10, 17, 9, 246, 244, 6, 1, 234, 4, 44,
+			8, 210, 228, 32, 46, 246, 216, 255, 23, 1, 247, 249, 6, 24, 8, 227, 233, 18, 18, 248, 249, 10, 13, 3, 0, 251, 238, 249, 14, 12,
+			255, 242, 4, 21, 244, 229, 249, 17, 29, 6, 244, 255, 3, 250, 6, 2, 238, 1, 23, 253, 235, 245, 22, 44, 250, 197, 238, 46, 36, 234,
+			201, 0, 62, 20, 220, 225, 10, 40, 5, 222, 251, 21, 13, 236, 215, 15, 55, 4, 215, 235, 15, 27, 2, 251, 23, 0, 206, 239, 27, 17,
+			2, 14, 15, 245, 214, 251, 29, 13, 5, 246, 232, 255, 3, 1, 19, 13, 245, 251, 8, 6, 251, 236, 247, 27, 18, 245, 245, 8, 7, 238,
+			232, 19, 34, 15, 0, 250, 241, 217, 224, 30, 65, 7, 214, 234, 21, 28, 247, 228, 1, 25, 12, 238, 227, 0, 15, 9, 16, 14, 232, 226,
+			6, 27, 22, 245, 223, 7, 30, 242, 218, 4, 52, 30, 223, 227, 9, 0, 250, 18, 19, 244, 239, 2, 249, 247, 25, 43, 246, 202, 238, 39,
+			32, 235, 223, 4, 32, 9, 220, 238, 47, 39, 213, 199, 43, 76, 223, 168, 250, 75, 34, 215, 235, 31, 12, 230, 246, 18, 16, 0, 228, 231,
+			22, 31, 249, 245, 0, 0, 9, 11, 242, 252, 13, 246, 251, 11, 0, 0, 0, 248, 14, 23, 239, 238, 0, 3, 14, 0, 236, 1, 0, 0,
+			20, 17, 235, 221, 23, 46, 243, 213, 16, 55, 247, 182, 242, 73, 40, 218, 216, 18, 31, 241, 226, 2, 19, 10, 247, 255, 22, 6, 220, 230,
+			27, 22, 236, 4, 32, 11, 233, 224, 0, 24, 254, 247, 15, 14, 248, 241, 252, 4, 4, 3, 2, 0, 8, 2, 247, 248, 0, 16, 12, 240,
+			240, 9, 23, 10, 230, 231, 22, 23, 244, 238, 0, 17, 11, 232, 254, 23, 0, 1, 254, 212, 252, 53, 26, 254, 235, 208, 254, 46, 23, 248,
+			234, 238, 15, 12, 243, 4, 252, 240, 33, 34, 234, 227, 0, 12, 247, 249, 19, 16, 244, 245, 8, 3, 251, 7, 0, 246, 15, 8, 229, 243,
+			8, 26, 34, 0, 212, 224, 27, 40, 248, 218, 251, 36, 15, 228, 235, 23, 11, 233, 1, 31, 9, 245, 225, 229, 23, 42, 13, 240, 232, 253,
+			21, 252, 216, 3, 61, 33, 216, 190, 246, 50, 41, 1, 232, 237, 17, 27, 240, 203, 244, 63, 49, 232, 207, 254, 28, 10, 249, 237, 235, 21,
+			34, 247, 217, 0, 35, 14, 237, 231, 4, 19, 0, 0, 17, 248, 224, 254, 50, 18, 200, 218, 34, 44, 0, 238, 249, 9, 7, 255, 245, 0,
+			10, 250, 245, 27, 30, 221, 199, 14, 61, 24, 227, 227, 17, 3, 210, 255, 44, 18, 236, 233, 31, 47, 207, 161, 11, 104, 43, 230, 223, 226,
+			244, 4, 20, 25, 20, 2, 244, 236, 244, 244, 0, 16, 26, 21, 248, 217, 224, 11, 55, 25, 220, 221, 13, 22, 239, 229, 12, 45, 11, 223,
+			247, 17, 0, 252, 244, 254, 21, 14, 248, 225, 243, 33, 15, 234, 255, 31, 17, 223, 223, 11, 15, 255, 9, 7, 8, 2, 236, 224, 3, 47,
+			25, 246, 228, 253, 30, 236, 191, 12, 66, 26, 255, 217, 222, 36, 23, 216, 245, 26, 28, 13, 209, 201, 35, 61, 251, 225, 17, 39, 222, 184,
+			3, 81, 17, 173, 237, 94, 37, 205, 217, 3, 32, 19, 235, 241, 9, 241, 240, 30, 16, 250, 20, 4, 218, 240, 31, 11, 218, 225, 27, 54,
+			11, 216, 234, 22, 12, 252, 9, 7, 240, 241, 9, 2, 244, 17, 17, 246, 241, 255, 14, 5, 242, 5, 10, 244, 255, 21, 244, 220, 0, 43,
+			40, 229, 206, 3, 38, 9, 240, 240, 12, 7, 241, 11, 9, 239, 0, 20, 5, 249, 238, 10, 24, 245, 239, 16, 14, 245, 232, 239, 30, 43,
+			252, 231, 244, 245, 12, 17, 1, 255, 242, 247, 0, 1, 34, 23, 200, 223, 53, 34, 218, 205, 21, 84, 7, 169, 218, 57, 62, 221, 177, 26,
+			98, 251, 173, 233, 60, 62, 209, 181, 49, 67, 212, 201, 10, 52, 26, 216, 225, 41, 12, 212, 3, 45, 0, 228, 230, 252, 23, 11, 11, 20,
+			218, 209, 26, 42, 0, 241, 234, 4, 39, 2, 218, 245, 31, 26, 240, 219, 246, 36, 36, 246, 219, 246, 26, 24, 254, 216, 226, 38, 71, 250,
+			191, 237, 46, 22, 212, 233, 40, 17, 239, 1, 5, 234, 230, 14, 50, 252, 212, 11, 25, 236, 239, 18, 37, 8, 223, 215, 17, 38, 0, 0,
+			15, 228, 219, 11, 32, 20, 9, 245, 229, 1, 12, 252, 248, 0, 18, 14, 232, 224, 13, 37, 15, 248, 229, 243, 15, 15, 247, 231, 6, 54,
+			250, 182, 246, 77, 32, 210, 224, 39, 14, 197, 251, 74, 20, 212, 215, 252, 46, 20, 242, 11, 11, 234, 237, 252, 255, 30, 27, 227, 225, 29,
+			6, 227, 3, 21, 3, 251, 244, 5, 8, 254, 9, 16, 241, 206, 255, 62, 20, 227, 238, 10, 8, 240, 238, 38, 37, 213, 212, 25, 42, 20,
+			242, 202, 238, 46, 32, 233, 226, 4, 46, 38, 205, 187, 26, 68, 13, 221, 219, 15, 35, 252, 223, 230, 9, 43, 16, 244, 0, 249, 212, 246,
+			27, 22, 24, 16, 222, 220, 3, 32, 38, 246, 206, 255, 27, 239, 0, 35, 15, 254, 225, 215, 12, 39, 12, 1, 255, 239, 254, 13, 245, 243,
+			13, 20, 248, 221, 8, 55, 11, 197, 227, 32, 32, 4, 238, 235, 5, 29, 11, 231, 240, 13, 7, 244, 245, 9, 27, 8, 233, 233, 16, 6,
+			229, 16, 64, 1, 197, 228, 27, 16, 237, 6, 27, 0, 245, 4, 10, 1, 226, 233, 36, 38, 3, 233, 211, 251, 57, 19, 211, 235, 30, 14,
+			234, 10, 15, 233, 243, 28, 11, 237, 229, 248, 24, 21, 3, 12, 2, 232, 221, 255, 45, 12, 242, 14, 11, 219, 218, 21, 37, 250, 11, 37,
+			216, 181, 22, 95, 18, 185, 207, 37, 47, 242, 223, 9, 22, 0, 253, 253, 229, 242, 37, 40, 242, 222, 249, 26, 2, 210, 248, 69, 21, 216,
+			245, 9, 253, 244, 251, 31, 27, 234, 226, 6, 32, 252, 217, 240, 35, 31, 246, 236, 22, 24, 239, 231, 238, 249, 47, 30, 212, 225, 25, 33,
+			2, 212, 219, 65, 81, 231, 158, 238, 69, 31, 205, 239, 28, 12, 238, 240, 26, 27, 219, 248, 56, 239, 158, 239, 101, 75, 197, 176, 43, 83,
+			223, 180, 8, 79, 7, 189, 233, 39, 29, 227, 217, 42, 48, 204, 236, 74, 32, 185, 188, 25, 64, 243, 231, 27, 12, 223, 242, 20, 24, 3,
+			243, 6, 10, 212, 203, 30, 77, 22, 203, 211, 30, 55, 244, 203, 251, 61, 28, 204, 207, 17, 46, 5, 238, 2, 1, 240, 0, 23, 13, 252,
+			239, 234, 0, 26, 2, 241, 12, 16, 241, 230, 6, 69, 25, 176, 195, 49, 68, 246, 201, 2, 61, 1, 185, 219, 28, 50, 37, 248, 216, 227,
+			20, 11, 228, 255, 70, 26, 192, 204, 38, 46, 224, 227, 53, 37, 202, 200, 31, 67, 6, 185, 224, 65, 58, 206, 189, 27, 46, 245, 240, 19,
+			18, 241, 220, 249, 22, 28, 24, 239, 226, 0, 17, 250, 229, 3, 36, 24, 237, 226, 238, 9, 32, 20, 233, 239, 24, 6, 226, 254, 23, 24,
+			242, 207, 4, 89, 12, 166, 200, 30, 64, 30, 213, 225, 39, 17, 220, 239, 33, 37, 248, 203, 237, 53, 21, 214, 252, 32, 16, 236, 212, 245,
+			58, 45, 224, 212, 12, 33, 226, 194, 18, 91, 21, 184, 230, 54, 7, 202, 248, 51, 44, 246, 174, 219, 79, 53, 208, 224, 24, 33, 4, 216,
+			235, 46, 33, 233, 232, 233, 250, 32, 43, 6, 192, 206, 56, 55, 212, 225, 33, 30, 246, 216, 251, 35, 19, 234, 198, 248, 105, 50, 156, 177,
+			81, 103, 213, 130, 5, 114, 12, 179, 241, 59, 32, 216, 200, 26, 69, 242, 198, 14, 46, 244, 209, 253, 59, 27, 201, 215, 23, 33, 25, 242,
+			210, 2, 35, 249, 233, 17, 37, 2, 222, 209, 2, 54, 28, 221, 202, 12, 70, 14, 199, 248, 60, 253, 174, 253, 83, 32, 207, 234, 22, 250,
+			236, 22, 30, 237, 213, 15, 72, 4, 182, 238, 48, 10, 215, 233, 24, 56, 13, 216, 239, 251, 236, 252, 29, 46, 0, 204, 247, 37, 12, 244,
+			238, 238, 248, 20, 67, 36, 192, 171, 6, 84, 35, 187, 222, 85, 46, 175, 186, 52, 92, 255, 170, 218, 53, 32, 233, 237, 25, 25, 230, 216,
+			2, 35, 36, 229, 202, 16, 51, 250, 208, 244, 40, 58, 2, 228, 0, 238, 192, 243, 56, 49, 249, 217, 4, 46, 245, 214, 5, 43, 16, 216,
+			220, 28, 27, 250, 246, 1, 4, 235, 239, 60, 52, 197, 189, 25, 46, 252, 231, 20, 51, 230, 155, 243, 96, 48, 196, 207, 33, 70, 0, 180,
+			224, 52, 31, 248, 14, 246, 212, 10, 38, 2, 223, 216, 43, 76, 230, 201, 8, 38, 3, 204, 199, 45, 75, 11, 229, 228, 5, 6, 218, 255,
+			62, 31, 219, 191, 240, 63, 42, 224, 214, 0, 37, 8, 236, 33, 38, 202, 217, 40, 14, 211, 0, 76, 34, 176, 194, 53, 52, 227, 215, 28,
+			55, 242, 192, 237, 35, 42, 253, 222, 1, 36, 20, 232, 215, 18, 29, 198, 209, 53, 87, 13, 171, 178, 35, 92, 16, 207, 222, 27, 28, 222,
+			245, 58, 18, 202, 218, 30, 46, 8, 246, 251, 246, 230, 237, 8, 25, 22, 3, 242, 248, 0, 244, 252, 255, 21, 25, 242, 229, 40, 16, 173,
+			225, 87, 61, 217, 186, 242, 27, 10, 23, 34, 242, 204, 1, 67, 14, 165, 220, 89, 40, 206, 220, 25, 56, 253, 195, 251, 37, 254, 225, 254,
+			26, 11, 250, 224, 0, 49, 11, 208, 246, 39, 32, 245, 204, 228, 58, 42, 205, 214, 34, 56, 11, 214, 228, 34, 17, 221, 239, 36, 8, 207,
+			229, 47, 35, 241, 236, 246, 13, 19, 250, 0, 15, 245, 217, 234, 24, 44, 17, 224, 251, 51, 8, 200, 217, 28, 53, 6, 220, 248, 12, 250,
+			248, 6, 19, 0, 247, 6, 1, 238, 255, 35, 19, 221, 222, 16, 15, 249, 17, 24, 242, 204, 243, 45, 39, 249, 218, 244, 43, 253, 211, 0,
+			30, 6, 247, 246, 30, 25, 218, 211, 20, 58, 8, 209, 242, 15, 10, 12, 247, 0, 30, 0, 242, 254, 242, 244, 14, 17, 254, 223, 244, 48,
+			23, 224, 239, 19, 31, 240, 206, 6, 41, 4, 231, 233, 12, 30, 0, 224, 249, 32, 33, 0, 220, 225, 18, 38, 255, 224, 244, 32, 21, 226,
+			234, 33, 38, 246, 218, 243, 36, 13, 222, 231, 11, 40, 14, 219, 236, 38, 29, 232, 233, 16, 14, 231, 233, 32, 33, 223, 213, 26, 57, 0,
+			218, 242, 6, 0, 254, 253, 8, 11, 0, 247, 252, 11, 5, 2, 7, 250, 240, 245, 16, 30, 2, 234, 244, 245, 9, 33, 11, 242, 246, 3,
+			6, 249, 243, 15, 14, 227, 239, 25, 21, 252, 242, 0, 13, 253, 239, 0, 21, 7, 239, 245, 2, 9, 13, 247, 252, 252, 251, 20, 14, 244,
+			239, 250, 12, 25, 0, 211, 252, 54, 11, 228, 251, 11, 0, 238, 236, 31, 41, 232, 233, 12, 0, 244, 250, 11, 39, 6, 233, 253, 251, 227,
+			241, 27, 44, 13, 240, 233, 224, 248, 35, 33, 10, 239, 219, 243, 20, 17, 15, 13, 245, 228, 227, 6, 44, 27, 243, 230, 237, 252, 13, 14,
+			2, 6, 6, 252, 5, 4, 249, 251, 249, 252, 14, 0, 243, 3, 15, 5, 253, 249, 255, 5, 14, 5, 239, 234, 252, 19, 16, 255, 236, 239,
+			11, 30, 18, 254, 238, 251, 0, 246, 0, 6, 11, 14, 248, 242, 255, 1, 16, 8, 249, 8, 0, 233, 241, 9, 12, 6, 1, 254, 253, 252,
+			254, 14, 10, 249, 7, 11, 222, 222, 22, 34, 6, 247, 248, 5, 1, 243, 7, 13, 0, 3, 252, 244, 0, 9, 2, 5, 5, 244, 243, 4,
+			5, 3, 6, 253, 253, 5, 0, 254, 1, 3, 9, 9, 248, 245, 0, 255, 1, 2, 182, 7, 69, 0, 0, 7, 18, 244, 226, 0, 8, 237,
+			247, 12, 250, 247, 255, 237, 242, 6, 18, 0, 235, 225, 244, 23, 11, 246, 247, 242, 237, 247, 14, 21, 244, 222, 239, 10, 8, 246, 255, 251,
+			239, 1, 3, 244, 248, 0, 251, 253, 251, 237, 8, 22, 229, 226, 11, 9, 253, 240, 247, 10, 251, 236, 255, 15, 241, 224, 16, 24, 229, 225,
+			17, 10, 227, 2, 12, 240, 240, 255, 6, 2, 244, 246, 249, 248, 11, 0, 235, 245, 3, 1, 248, 3, 253, 241, 2, 250, 238, 0, 8, 4,
+			247, 238, 243, 7, 14, 242, 248, 6, 243, 232, 8, 20, 254, 234, 250, 0, 233, 251, 35, 7, 202, 238, 28, 5, 239, 0, 0, 230, 242, 27,
+			2, 234, 4, 253, 215, 3, 53, 246, 208, 252, 10, 243, 255, 19, 5, 244, 228, 233, 4, 22, 13, 243, 228, 239, 9, 20, 245, 232, 0, 2,
+			242, 0, 21, 235, 220, 22, 22, 225, 240, 18, 253, 232, 5, 15, 238, 235, 15, 6, 235, 239, 13, 12, 240, 231, 255, 19, 2, 230, 251, 255,
+			241, 10, 3, 252, 8, 245, 215, 255, 40, 5, 223, 237, 7, 3, 254, 15, 253, 217, 237, 11, 22, 12, 235, 242, 4, 233, 229, 27, 32, 245,
+			233, 242, 242, 250, 30, 20, 228, 229, 4, 1, 244, 6, 14, 246, 228, 255, 13, 0, 249, 252, 248, 230, 249, 42, 12, 213, 234, 15, 4, 250,
+			253, 8, 255, 224, 241, 24, 21, 234, 227, 13, 16, 229, 245, 21, 253, 237, 240, 248, 12, 25, 1, 225, 229, 0, 14, 9, 9, 234, 241, 2,
+			248, 12, 21, 238, 211, 252, 34, 19, 226, 247, 17, 242, 226, 18, 38, 239, 227, 253, 4, 5, 9, 255, 240, 247, 246, 250, 22, 15, 243, 237,
+			244, 0, 7, 2, 254, 249, 255, 249, 245, 9, 8, 252, 233, 244, 8, 9, 1, 252, 251, 247, 244, 3, 17, 253, 233, 248, 6, 2, 5, 245,
+			238, 14, 14, 230, 242, 17, 250, 238, 14, 18, 253, 229, 233, 4, 24, 7, 227, 0, 19, 241, 231, 18, 17, 240, 237, 8, 10, 252, 249, 246,
+			250, 7, 9, 237, 251, 26, 246, 225, 253, 4, 252, 251, 0, 29, 16, 212, 230, 36, 24, 212, 231, 38, 15, 224, 241, 10, 252, 8, 23, 247,
+			227, 222, 0, 53, 31, 219, 215, 253, 13, 252, 251, 19, 10, 235, 226, 249, 16, 9, 0, 243, 249, 10, 251, 235, 5, 21, 245, 230, 247, 15,
+			26, 253, 213, 235, 23, 20, 235, 235, 22, 2, 224, 9, 21, 232, 238, 22, 10, 235, 239, 19, 19, 236, 228, 7, 5, 242, 14, 34, 246, 208,
+			2, 25, 246, 248, 6, 253, 249, 0, 11, 247, 236, 3, 3, 249, 0, 3, 249, 235, 255, 38, 16, 217, 219, 17, 19, 237, 4, 27, 244, 224,
+			0, 11, 249, 4, 18, 246, 222, 252, 16, 13, 242, 229, 16, 28, 229, 219, 17, 23, 241, 240, 7, 11, 246, 249, 11, 255, 229, 252, 18, 10,
+			239, 227, 6, 30, 3, 228, 235, 11, 17, 0, 243, 248, 8, 255, 240, 249, 26, 13, 217, 234, 10, 12, 8, 12, 3, 225, 234, 14, 2, 252,
+			23, 6, 224, 229, 5, 28, 3, 227, 248, 21, 3, 241, 245, 9, 244, 242, 27, 18, 231, 243, 4, 240, 250, 37, 7, 226, 240, 254, 15, 0,
+			233, 10, 30, 255, 234, 252, 7, 250, 241, 13, 21, 240, 235, 6, 6, 240, 0, 13, 4, 242, 239, 5, 0, 240, 6, 12, 4, 237, 212, 27,
+			50, 228, 205, 20, 48, 225, 196, 26, 55, 237, 211, 0, 14, 247, 246, 14, 15, 246, 244, 236, 230, 5, 42, 17, 237, 226, 242, 16, 16, 1,
+			8, 243, 201, 239, 43, 62, 251, 201, 233, 0, 245, 253, 49, 41, 244, 176, 191, 42, 44, 1, 240, 238, 240, 234, 16, 64, 3, 212, 11, 4,
+			227, 7, 23, 17, 246, 223, 238, 11, 25, 251, 229, 255, 18, 0, 250, 245, 241, 7, 1, 248, 4, 243, 1, 24, 236, 218, 251, 30, 24, 229,
+			246, 27, 215, 211, 54, 51, 245, 233, 251, 255, 240, 15, 29, 0, 228, 228, 0, 13, 248, 5, 31, 243, 196, 242, 47, 18, 241, 24, 250, 191,
+			245, 58, 21, 217, 248, 21, 240, 245, 1, 9, 1, 233, 245, 22, 24, 240, 216, 246, 20, 8, 230, 0, 46, 35, 196, 169, 1, 54, 45, 21,
+			233, 202, 220, 9, 44, 21, 214, 240, 34, 245, 196, 23, 80, 0, 151, 233, 88, 22, 219, 245, 9, 253, 249, 2, 21, 10, 232, 243, 20, 245,
+			224, 14, 50, 12, 204, 229, 31, 18, 245, 14, 247, 215, 238, 50, 48, 249, 194, 217, 0, 27, 36, 5, 221, 235, 4, 5, 244, 254, 32, 26,
+			221, 187, 254, 55, 67, 235, 155, 240, 48, 10, 241, 21, 37, 214, 176, 9, 94, 11, 193, 220, 19, 35, 26, 223, 212, 13, 25, 14, 230, 220,
+			14, 32, 245, 243, 252, 11, 0, 216, 5, 46, 16, 221, 212, 25, 47, 218, 199, 11, 20, 36, 43, 234, 181, 195, 8, 86, 46, 242, 236, 248,
+			233, 190, 252, 100, 49, 206, 181, 237, 35, 32, 239, 250, 25, 251, 216, 253, 43, 13, 227, 209, 252, 45, 32, 240, 225, 226, 242, 12, 39, 45,
+			231, 215, 235, 220, 252, 78, 48, 219, 236, 246, 245, 18, 14, 16, 1, 228, 253, 25, 10, 231, 219, 13, 51, 254, 233, 242, 236, 250, 50, 48,
+			222, 197, 217, 247, 25, 57, 49, 233, 190, 233, 6, 246, 8, 24, 36, 5, 224, 0, 11, 208, 183, 22, 90, 34, 234, 0, 238, 176, 183, 38,
+			113, 95, 243, 130, 194, 11, 5, 38, 68, 30, 207, 200, 246, 245, 234, 24, 32, 35, 44, 230, 179, 199, 228, 21, 89, 86, 255, 143, 199, 9,
+			4, 11, 61, 253, 208, 252, 39, 19, 168, 173, 60, 120, 29, 173, 175, 235, 16, 73, 66, 219, 177, 233, 12, 36, 5, 230, 8, 13, 242, 252,
+			243, 248, 14, 2, 254, 4, 253, 244, 225, 32, 68, 226, 181, 236, 26, 44, 54, 238, 167, 200, 84, 91, 213, 157, 236, 57, 12, 243, 41, 42,
+			213, 163, 206, 53, 69, 26, 2, 234, 179, 206, 33, 78, 29, 194, 228, 31, 243, 210, 50, 46, 233, 185, 251, 94, 26, 177, 207, 32, 34, 2,
+			12, 11, 245, 203, 210, 0, 48, 105, 30, 134, 139, 19, 68, 46, 11, 6, 224, 216, 232, 26, 39, 228, 7, 36, 15, 227, 182, 217, 51, 45,
+			31, 9, 198, 214, 5, 6, 15, 15, 254, 30, 28, 194, 168, 31, 76, 33, 203, 226, 41, 4, 238, 248, 250, 239, 18, 20, 253, 9, 22, 231,
+			187, 240, 59, 66, 246, 188, 217, 6, 35, 24, 7, 0, 232, 217, 240, 22, 54, 3, 231, 3, 0, 236, 224, 250, 62, 8, 213, 25, 24, 230,
+			218, 252, 2, 232, 11, 87, 46, 179, 151, 253, 65, 16, 234, 54, 65, 200, 136, 216, 60, 80, 19, 252, 206, 181, 255, 93, 69, 184, 189, 33,
+			29, 187, 220, 100, 52, 183, 199, 27, 10, 226, 9, 56, 15, 196, 216, 18, 25, 3, 255, 0, 30, 13, 192, 221, 34, 36, 238, 246, 45, 8,
+			167, 226, 70, 26, 189, 217, 98, 77, 177, 134, 4, 72, 13, 244, 26, 29, 210, 171, 249, 70, 38, 15, 0, 222, 208, 235, 7, 8, 34, 36,
+			10, 244, 209, 207, 7, 31, 14, 253, 254, 1, 27, 5, 194, 223, 28, 48, 18, 10, 246, 174, 174, 38, 112, 60, 231, 161, 206, 251, 241, 23,
+			77, 50, 229, 208, 188, 236, 37, 24, 252, 22, 31, 245, 210, 212, 1, 15, 237, 4, 68, 50, 188, 153, 224, 41, 63, 43, 22, 245, 179, 178,
+			237, 52, 82, 24, 236, 228, 216, 234, 238, 33, 97, 10, 172, 199, 24, 39, 3, 246, 244, 247, 246, 240, 255, 20, 7, 232, 233, 253, 28, 4,
+			246, 4, 242, 232, 235, 22, 46, 13, 214, 184, 241, 36, 31, 4, 7, 224, 190, 239, 53, 46, 8, 223, 213, 243, 10, 26, 9, 231, 240, 246,
+			243, 25, 50, 3, 213, 186, 223, 34, 61, 17, 241, 215, 233, 4, 248, 5, 19, 5, 232, 231, 10, 6, 253, 255, 250, 237, 240, 7, 33, 13,
+			236, 195, 223, 42, 18, 238, 8, 11, 221, 195, 246, 59, 28, 246, 240, 0, 238, 195, 0, 59, 7, 238, 4, 0, 227, 203, 16, 57, 4, 210,
+			240, 10, 243, 245, 2, 0, 255, 13, 20, 238, 207, 241, 20, 1, 10, 38, 24, 223, 189, 229, 19, 28, 34, 31, 222, 197, 248, 42, 15, 229,
+			14, 20, 240, 226, 237, 5, 20, 10, 0, 0, 236, 240, 0, 232, 247, 41, 39, 243, 208, 226, 25, 15, 238, 4, 4, 3, 244, 242, 14, 19,
+			2, 226, 3, 29, 233, 219, 251, 36, 15, 236, 4, 26, 234, 213, 245, 11, 15, 1, 13, 12, 242, 221, 233, 35, 39, 236, 221, 0, 23, 255,
+			219, 248, 37, 28, 240, 229, 236, 12, 28, 254, 243, 19, 14, 235, 239, 1, 20, 2, 240, 14, 14, 250, 250, 255, 0, 17, 10, 233, 242, 8,
+			16, 236, 251, 46, 27, 245, 204, 229, 1, 33, 49, 10, 236, 225, 248, 4, 13, 247, 250, 26, 21, 230, 234, 15, 24, 237, 226, 0, 37, 31,
+			249, 229, 244, 255, 2, 14, 43, 21, 230, 226, 254, 15, 0, 252, 20, 18, 253, 240, 239, 1, 20, 9, 230, 248, 46, 22, 241, 226, 244, 11,
+			254, 6, 19, 11, 247, 236, 7, 32, 245, 230, 19, 40, 3, 214, 255, 33, 250, 227, 3, 39, 13, 233, 251, 10, 9, 231, 237, 38, 38, 247,
+			232, 0, 12, 238, 3, 26, 22, 5, 228, 241, 14, 254, 243, 5, 42, 24, 233, 246, 253, 250, 253, 3, 26, 10, 247, 250, 4, 6, 0, 235,
+			0, 43, 13, 243, 243, 251, 5, 4, 3, 28, 8, 247, 236, 249, 13, 16, 2, 2, 11, 11, 238, 248, 4, 13, 11, 245, 3, 2, 5, 1,
+			251, 252, 13, 8, 251, 4, 23, 245, 224, 6, 27, 14, 245, 0, 27, 248, 234, 2, 18, 7, 1, 17, 11, 229, 252, 12, 16, 14, 234, 248,
+			6, 245, 7, 2, 16, 11, 237, 7, 12, 1, 251, 245, 17, 32, 250, 0, 15, 1, 233, 232, 27, 41, 242, 243, 36, 19, 209, 216, 28, 33,
+			4, 7, 8, 5, 239, 227, 13, 34, 14, 244, 252, 19, 247, 234, 18, 24, 255, 252, 14, 10, 245, 249, 7, 2, 2, 0, 24, 20, 238, 226,
+			239, 36, 25, 245, 245, 10, 18, 1, 227, 248, 22, 11, 246, 1, 12, 7, 5, 0, 244, 252, 250, 0, 15, 23, 253, 236, 2, 5, 251, 20,
+			9, 0, 242, 253, 18, 250, 0, 1, 248, 18, 13, 243, 251, 3, 10, 255, 239, 17, 38, 16, 241, 231, 250, 18, 0, 237, 7, 36, 8, 244,
+			239, 0, 19, 243, 242, 24, 19, 250, 249, 8, 31, 244, 219, 14, 32, 244, 227, 6, 23, 1, 246, 252, 1, 1, 2, 253, 239, 233, 250, 21,
+			15, 248, 249, 0, 248, 246, 244, 19, 11, 246, 248, 9, 16, 242, 246, 13, 12, 234, 230, 11, 38, 0, 238, 254, 5, 5, 251, 3, 11, 249,
+			244, 255, 18, 10, 8, 0, 252, 245, 254, 9, 247, 249, 9, 11, 12, 243, 242, 8, 6, 2, 248, 241, 14, 26, 251, 235, 251, 13, 2, 248,
+			22, 21, 233, 216, 253, 27, 7, 251, 13, 12, 239, 228, 252, 22, 5, 236, 0, 0, 18, 9, 134, 0, 0, 0, 0, 1, 4, 8, 6, 252,
+			244, 248, 0, 2, 2, 4, 4, 255, 251, 250, 254, 1, 3, 4, 3, 1, 255, 253, 253, 255, 2, 3, 2, 0, 255, 253, 253, 255, 1, 2,
+			1, 0, 254, 254, 254, 255, 0, 0, 0, 0, 255, 254, 254, 255, 0, 0, 0, 0, 255, 254, 254, 255, 255, 255, 0, 0, 0, 254, 254, 255,
+			255, 0, 0, 254, 254, 0, 255, 253, 254, 0, 1, 1, 0, 253, 254, 0, 0, 255, 255, 0, 1, 0, 254, 253, 0, 4, 4, 4, 0, 247,
+			245, 0, 5, 2, 0, 3, 2, 250, 246, 254, 5, 4, 2, 1, 0, 254, 0, 0, 253, 255, 5, 5, 0, 254, 0, 0, 255, 255, 0, 2,
+			2, 0, 0, 254, 253, 0, 3, 1, 255, 0, 0, 253, 255, 0, 0, 0, 1, 253, 253, 2, 255, 252, 3, 5, 253, 253, 255, 255, 2, 3,
+			0, 1, 0, 250, 253, 3, 3, 0, 252, 249, 0, 6, 1, 252, 253, 255, 0, 0, 253, 254, 2, 0, 252, 251, 254, 1, 0, 252, 254, 5,
+			1, 249, 250, 1, 5, 0, 254, 255, 251, 252, 4, 3, 254, 254, 0, 0, 2, 1, 249, 244, 4, 18, 2, 242, 250, 3, 255, 255, 8, 6,
+			252, 246, 249, 1, 7, 5, 1, 252, 244, 251, 9, 2, 249, 1, 8, 0, 245, 250, 5, 1, 253, 3, 3, 0, 253, 250, 254, 5, 0, 255,
+			1, 253, 252, 7, 8, 249, 242, 252, 12, 14, 248, 235, 6, 16, 246, 243, 12, 8, 248, 253, 254, 1, 6, 252, 242, 1, 5, 253, 0, 1,
+			252, 3, 4, 253, 1, 5, 255, 1, 4, 254, 255, 8, 3, 246, 245, 6, 15, 252, 242, 4, 9, 3, 2, 255, 248, 253, 12, 11, 244, 245,
+			11, 250, 234, 13, 31, 253, 229, 241, 0, 6, 4, 3, 8, 251, 234, 248, 12, 1, 252, 8, 3, 249, 252, 253, 251, 0, 9, 2, 252, 252,
+			254, 253, 253, 4, 5, 251, 253, 7, 253, 235, 254, 22, 8, 246, 250, 1, 253, 251, 2, 12, 8, 248, 238, 253, 16, 4, 245, 255, 3, 253,
+			0, 4, 254, 0, 1, 249, 248, 9, 8, 243, 254, 11, 247, 244, 9, 8, 254, 244, 253, 14, 1, 238, 253, 11, 0, 252, 1, 3, 252, 247,
+			1, 8, 254, 250, 0, 0, 254, 8, 0, 236, 253, 23, 1, 242, 1, 5, 254, 253, 254, 2, 8, 253, 252, 4, 0, 248, 7, 6, 244, 255,
+			22, 255, 232, 0, 18, 5, 251, 246, 248, 14, 17, 245, 240, 4, 11, 1, 248, 0, 12, 7, 243, 242, 12, 16, 249, 240, 253, 10, 11, 245,
+			239, 15, 22, 240, 239, 11, 10, 253, 252, 253, 255, 8, 1, 248, 255, 5, 4, 9, 1, 247, 1, 6, 254, 250, 0, 2, 4, 2, 255, 249,
+			252, 0, 2, 7, 8, 249, 247, 4, 2, 253, 12, 5, 230, 241, 20, 17, 241, 241, 3, 0, 248, 0, 5, 0, 248, 253, 6, 249, 239, 5,
+			15, 1, 7, 5, 237, 1, 40, 31, 1, 247, 254, 7, 247, 227, 249, 17, 8, 241, 242, 25, 17, 203, 226, 58, 33, 214, 238, 37, 13, 229,
+			4, 34, 0, 239, 248, 244, 11, 24, 244, 235, 252, 254, 16, 8, 249, 253, 251, 0, 255, 242, 9, 36, 248, 207, 247, 28, 13, 3, 249, 244,
+			8, 9, 246, 253, 14, 255, 244, 252, 255, 4, 14, 253, 242, 1, 255, 237, 9, 35, 243, 223, 10, 19, 248, 255, 17, 0, 237, 241, 7, 33,
+			1, 215, 247, 20, 253, 247, 9, 0, 245, 2, 3, 242, 250, 15, 7, 243, 245, 2, 9, 245, 244, 27, 9, 221, 237, 20, 19, 237, 238, 31,
+			11, 216, 229, 19, 32, 252, 234, 4, 4, 250, 248, 250, 22, 21, 242, 230, 253, 20, 0, 236, 6, 25, 1, 240, 243, 2, 11, 255, 253, 5,
+			12, 242, 223, 13, 37, 254, 240, 245, 249, 12, 13, 243, 254, 12, 247, 236, 16, 19, 246, 251, 0, 241, 1, 10, 255, 6, 254, 244, 4, 13,
+			253, 237, 13, 21, 232, 240, 17, 6, 252, 2, 248, 250, 12, 2, 238, 237, 12, 30, 253, 228, 3, 18, 242, 232, 23, 33, 245, 220, 240, 27,
+			23, 239, 239, 15, 21, 252, 228, 246, 37, 8, 220, 0, 16, 253, 0, 249, 244, 29, 22, 216, 217, 33, 55, 251, 207, 239, 33, 12, 240, 252,
+			9, 0, 245, 249, 4, 9, 3, 1, 245, 241, 9, 22, 245, 249, 4, 1, 251, 254, 253, 11, 15, 238, 224, 28, 47, 211, 212, 46, 36, 215,
+			233, 42, 41, 224, 179, 254, 75, 22, 207, 230, 17, 8, 251, 17, 8, 225, 247, 21, 254, 245, 22, 17, 239, 243, 16, 4, 12, 18, 243, 226,
+			254, 240, 241, 14, 32, 34, 248, 198, 251, 67, 28, 221, 232, 21, 24, 242, 227, 25, 48, 227, 191, 7, 41, 254, 223, 255, 36, 251, 220, 5,
+			18, 14, 11, 242, 231, 11, 29, 0, 219, 250, 42, 9, 215, 253, 30, 248, 232, 8, 15, 11, 1, 213, 247, 54, 25, 231, 235, 9, 30, 3,
+			208, 245, 33, 13, 1, 5, 255, 2, 1, 226, 230, 18, 29, 242, 226, 15, 30, 234, 233, 16, 254, 247, 11, 10, 243, 243, 11, 29, 252, 226,
+			255, 15, 249, 248, 12, 7, 239, 254, 24, 247, 226, 17, 26, 237, 252, 19, 249, 233, 1, 28, 18, 232, 222, 17, 33, 232, 242, 47, 9, 202,
+			239, 50, 18, 209, 235, 29, 4, 237, 9, 19, 247, 223, 250, 36, 34, 238, 221, 251, 9, 14, 24, 0, 213, 239, 33, 22, 250, 244, 233, 251,
+			27, 5, 243, 252, 255, 250, 241, 8, 36, 4, 225, 244, 2, 10, 12, 254, 254, 2, 241, 236, 22, 35, 243, 215, 4, 22, 3, 240, 244, 17,
+			0, 213, 251, 68, 22, 184, 221, 45, 24, 249, 243, 0, 254, 244, 246, 20, 21, 233, 238, 19, 4, 235, 9, 32, 239, 200, 0, 54, 12, 213,
+			0, 33, 245, 210, 9, 60, 12, 208, 208, 34, 50, 217, 219, 36, 35, 232, 215, 12, 35, 254, 241, 3, 241, 249, 24, 0, 251, 32, 11, 207,
+			220, 35, 43, 253, 229, 236, 253, 11, 8, 15, 1, 240, 244, 8, 16, 2, 240, 252, 16, 3, 252, 253, 253, 2, 254, 0, 19, 7, 247, 245,
+			255, 9, 0, 243, 4, 18, 253, 235, 15, 26, 246, 232, 251, 40, 28, 212, 211, 29, 29, 9, 20, 231, 184, 5, 78, 10, 213, 238, 7, 255,
+			253, 17, 23, 242, 227, 2, 15, 20, 12, 230, 237, 27, 254, 239, 27, 5, 213, 7, 38, 243, 237, 10, 3, 4, 253, 239, 20, 36, 233, 224,
+			16, 12, 253, 25, 15, 228, 226, 18, 31, 6, 248, 240, 8, 17, 239, 253, 31, 248, 231, 19, 9, 224, 9, 53, 243, 207, 255, 34, 18, 252,
+			226, 230, 32, 21, 237, 4, 11, 245, 10, 0, 218, 13, 70, 246, 193, 254, 38, 13, 247, 7, 33, 11, 222, 228, 21, 49, 246, 194, 26, 58,
+			213, 215, 36, 40, 2, 210, 223, 58, 48, 205, 227, 46, 7, 227, 12, 254, 240, 24, 17, 223, 237, 12, 20, 10, 245, 254, 20, 250, 227, 7,
+			41, 11, 219, 238, 24, 15, 254, 255, 1, 16, 18, 225, 207, 43, 72, 232, 178, 252, 69, 36, 205, 211, 45, 34, 214, 226, 46, 27, 217, 232,
+			38, 39, 236, 234, 254, 255, 19, 22, 233, 246, 29, 242, 213, 22, 53, 253, 224, 230, 12, 46, 247, 204, 28, 45, 234, 226, 3, 18, 21, 239,
+			215, 27, 45, 244, 222, 8, 33, 15, 226, 219, 26, 40, 250, 255, 255, 234, 244, 26, 40, 12, 220, 221, 26, 40, 225, 207, 47, 54, 219, 189,
+			18, 74, 2, 194, 0, 59, 5, 215, 246, 37, 29, 11, 0, 211, 231, 48, 39, 220, 221, 16, 25, 5, 243, 250, 28, 2, 230, 6, 21, 8,
+			8, 8, 10, 23, 11, 237, 237, 13, 35, 244, 205, 8, 43, 10, 228, 209, 9, 55, 8, 204, 218, 22, 60, 25, 210, 226, 34, 19, 211, 226,
+			55, 40, 199, 215, 37, 41, 5, 206, 222, 50, 38, 231, 225, 6, 32, 255, 217, 228, 40, 59, 215, 157, 39, 111, 221, 131, 7, 98, 17, 181,
+			214, 64, 37, 197, 221, 31, 19, 252, 229, 244, 39, 0, 189, 4, 79, 246, 184, 2, 43, 243, 228, 29, 5, 215, 1, 42, 233, 232, 27, 14,
+			231, 231, 11, 21, 246, 243, 255, 240, 244, 18, 11, 241, 252, 1, 226, 2, 53, 244, 197, 14, 16, 235, 34, 21, 181, 220, 50, 38, 225, 219,
+			30, 3, 194, 7, 70, 251, 167, 234, 85, 24, 155, 234, 89, 245, 187, 7, 43, 22, 218, 206, 35, 53, 216, 222, 28, 255, 249, 0, 240, 251,
+			26, 243, 229, 29, 36, 205, 202, 44, 49, 228, 226, 18, 4, 250, 10, 247, 239, 20, 255, 231, 12, 19, 253, 237, 241, 8, 21, 1, 244, 245,
+			249, 3, 0, 13, 2, 244, 8, 20, 219, 223, 31, 31, 233, 223, 15, 25, 217, 211, 37, 45, 4, 221, 223, 17, 41, 240, 249, 4, 233, 11,
+			9, 224, 8, 58, 229, 177, 13, 74, 7, 205, 238, 14, 9, 249, 235, 6, 33, 255, 220, 229, 13, 29, 12, 250, 245, 248, 245, 19, 23, 231,
+			232, 12, 9, 248, 0, 7, 2, 0, 2, 246, 2, 8, 255, 248, 250, 254, 17, 12, 255, 251, 240, 9, 29, 242, 221, 32, 27, 211, 246, 53,
+			255, 199, 2, 50, 17, 216, 226, 30, 30, 232, 239, 24, 249, 231, 11, 19, 253, 253, 1, 243, 236, 43, 47, 198, 194, 38, 35, 233, 232, 12,
+			12, 232, 233, 33, 30, 230, 241, 18, 254, 247, 32, 1, 206, 250, 42, 4, 239, 251, 234, 9, 58, 229, 199, 47, 24, 196, 11, 42, 249, 251,
+			239, 236, 24, 22, 245, 249, 6, 5, 244, 241, 5, 27, 15, 235, 233, 2, 16, 22, 1, 213, 235, 32, 22, 224, 245, 31, 253, 226, 254, 20,
+			22, 5, 212, 243, 24, 245, 240, 30, 5, 225, 238, 7, 19, 245, 0, 18, 235, 224, 21, 20, 237, 10, 31, 239, 226, 4, 11, 9, 11, 241,
+			213, 251, 37, 23, 248, 217, 231, 32, 44, 221, 196, 28, 64, 230, 184, 22, 56, 244, 210, 252, 29, 10, 236, 6, 12, 215, 250, 59, 13, 200,
+			240, 35, 11, 237, 242, 240, 12, 42, 236, 214, 21, 35, 232, 245, 37, 10, 210, 247, 40, 251, 230, 25, 20, 215, 1, 38, 246, 222, 12, 29,
+			8, 232, 232, 16, 15, 243, 253, 12, 249, 250, 16, 10, 237, 0, 31, 244, 227, 37, 30, 207, 223, 46, 45, 239, 200, 1, 62, 10, 202, 236,
+			48, 26, 218, 248, 55, 251, 202, 25, 52, 234, 233, 14, 23, 0, 236, 253, 18, 12, 249, 255, 241, 3, 36, 20, 221, 245, 18, 3, 0, 12,
+			3, 0, 246, 253, 14, 13, 254, 241, 253, 26, 20, 213, 241, 56, 24, 216, 223, 37, 43, 220, 217, 51, 24, 203, 245, 35, 21, 241, 228, 22,
+			33, 240, 240, 18, 253, 253, 23, 8, 238, 14, 31, 244, 223, 251, 23, 24, 248, 232, 254, 21, 6, 231, 18, 46, 237, 197, 11, 41, 15, 239,
+			226, 12, 30, 253, 239, 19, 12, 232, 239, 22, 26, 250, 236, 254, 6, 16, 7, 239, 2, 24, 249, 236, 17, 8, 253, 0, 5, 13, 21, 241,
+			223, 21, 41, 239, 210, 14, 45, 2, 224, 0, 18, 5, 0, 250, 0, 12, 255, 245, 5, 3, 0, 22, 5, 235, 255, 25, 2, 245, 15, 10,
+			237, 251, 25, 9, 245, 10, 11, 237, 254, 22, 247, 245, 31, 20, 217, 213, 47, 69, 215, 180, 34, 69, 240, 196, 14, 65, 252, 211, 247, 25,
+			19, 239, 235, 29, 16, 213, 243, 45, 23, 226, 225, 13, 36, 247, 229, 9, 8, 241, 10, 15, 240, 238, 18, 22, 226, 242, 42, 7, 219, 6,
+			23, 6, 5, 255, 250, 249, 0, 14, 13, 4, 3, 232, 236, 28, 34, 243, 237, 8, 245, 233, 20, 38, 247, 209, 254, 40, 1, 238, 29, 33,
+			224, 195, 14, 77, 17, 195, 235, 32, 246, 230, 32, 34, 242, 223, 249, 19, 20, 13, 255, 231, 248, 43, 11, 213, 255, 46, 0, 225, 1, 32,
+			19, 237, 222, 10, 47, 1, 211, 250, 51, 21, 209, 235, 50, 28, 224, 239, 46, 26, 200, 211, 50, 51, 233, 216, 7, 41, 0, 209, 1, 43,
+			255, 218, 8, 40, 243, 207, 8, 54, 1, 208, 247, 40, 4, 217, 245, 30, 7, 228, 251, 32, 12, 237, 245, 2, 14, 8, 4, 5, 243, 242,
+			16, 17, 7, 251, 225, 13, 39, 235, 223, 27, 12, 225, 4, 37, 4, 226, 230, 12, 46, 13, 221, 242, 23, 248, 239, 29, 22, 232, 239, 14,
+			11, 3, 2, 4, 254, 243, 11, 35, 3, 206, 247, 54, 7, 205, 7, 51, 241, 208, 26, 49, 231, 209, 11, 41, 3, 219, 250, 36, 8, 230,
+			243, 28, 28, 241, 229, 9, 21, 252, 242, 13, 19, 240, 236, 21, 9, 225, 254, 47, 3, 208, 252, 49, 12, 221, 249, 30, 10, 232, 245, 16,
+			15, 251, 247, 0, 2, 0, 6, 3, 0, 2, 244, 246, 10, 16, 3, 255, 252, 253, 1, 0, 10, 15, 248, 235, 5, 25, 2, 233, 248, 18,
+			8, 245, 249, 7, 9, 246, 241, 17, 17, 239, 250, 28, 6, 226, 252, 31, 13, 225, 239, 25, 17, 232, 242, 27, 11, 232, 2, 25, 2, 250,
+			3, 255, 247, 4, 0, 0, 225, 1, 33, 0, 8, 4, 7, 7, 20, 44, 10, 4, 9, 250, 252, 247, 237, 225, 218, 237, 231, 235, 246, 241,
+			0, 9, 13, 10, 0, 14, 14, 2, 3, 246, 240, 239, 232, 230, 219, 224, 229, 226, 235, 237, 236, 246, 248, 247, 245, 244, 247, 241, 236, 233,
+			223, 217, 220, 218, 209, 207, 210, 214, 222, 230, 235, 237, 243, 251, 0, 255, 255, 252, 252, 253, 253, 250, 250, 0, 6, 10, 14, 19, 24, 34,
+			38, 41, 43, 50, 56, 54, 55, 57, 61, 79, 76, 73, 75, 67, 65, 59, 47, 32, 16, 15, 11, 6, 5, 4, 11, 21, 28, 36, 30, 33,
+			35, 25, 21, 12, 253, 245, 233, 220, 213, 200, 197, 192, 192, 198, 192, 197, 212, 215, 223, 231, 236, 239, 236, 241, 236, 222, 224, 218, 215, 212,
+			206, 205, 204, 208, 221, 219, 227, 231, 242, 253, 0, 2, 0, 0, 4, 0, 0, 0, 1, 0, 2, 8, 6, 13, 16, 20, 24, 27, 27, 25,
+			27, 24, 8, 4, 254, 231, 221, 178, 176, 59, 41, 45, 88, 81, 98, 114, 125, 80, 4, 22, 232, 215, 213, 158, 170, 198, 247, 18, 0, 44,
+			85, 91, 125, 107, 85, 60, 43, 37, 241, 222, 212, 196, 224, 225, 222, 239, 3, 18, 3, 5, 16, 19, 26, 29, 16, 254, 255, 14, 6, 2,
+			245, 226, 242, 245, 252, 247, 228, 235, 246, 246, 250, 237, 231, 228, 228, 235, 217, 218, 213, 205, 221, 216, 222, 235, 234, 242, 235, 236, 235, 226,
+			231, 213, 204, 208, 206, 205, 203, 205, 209, 217, 235, 245, 249, 0, 10, 12, 22, 28, 24, 14, 17, 15, 14, 20, 27, 37, 41, 49, 60, 59,
+			65, 63, 62, 66, 63, 68, 66, 63, 63, 58, 59, 59, 61, 56, 42, 42, 45, 40, 47, 37, 30, 20, 8, 6, 1, 250, 243, 237, 243, 244,
+			243, 244, 231, 230, 236, 224, 230, 219, 211, 211, 212, 214, 211, 205, 209, 197, 202, 191, 187, 194, 195, 203, 202, 206, 217, 217, 229, 236, 219, 218,
+			203, 207, 209, 209, 218, 221, 233, 248, 0, 14, 11, 20, 28, 27, 35, 16, 1, 0, 252, 1, 254, 249, 0, 9, 36, 50, 71, 96, 98, 110,
+			120, 114, 104, 103, 84, 64, 43, 27, 13, 249, 234, 219, 215, 226, 228, 238, 248, 254, 16, 27, 36, 42, 34, 23, 15, 254, 239, 221, 194, 182,
+			179, 181, 197, 214, 236, 1, 17, 49, 59, 66, 64, 45, 35, 14, 1, 246, 222, 223, 224, 232, 3, 15, 29, 43, 53, 67, 60, 49, 37, 14,
+			253, 234, 217, 201, 191, 190, 191, 193, 204, 214, 223, 235, 242, 241, 240, 233, 225, 213, 204, 187, 179, 171, 164, 160, 160, 178, 210, 226, 244, 4,
+			0, 247, 239, 240, 224, 217, 225, 217, 230, 246, 0, 0, 0, 0, 108, 0, 5, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12,
+			91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0, 196, 0, 114, 1, 84, 4,
+			252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 216, 0,
+			184, 1, 169, 6, 96, 9, 128, 12, 66, 14, 192, 27, 9, 17, 28, 40, 36, 33, 32, 19, 7, 0, 120, 105, 120, 120, 120, 120, 30, 105,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 212, 0, 179, 1, 155, 7, 96, 9, 228, 12, 216, 14, 160, 27, 29, 15, 25, 37, 34, 40, 30, 18, 6, 0, 120, 105, 180, 120,
+			120, 120, 24, 96, 99, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 200, 0, 164, 1, 141, 8, 0, 10, 32, 13, 110, 15, 64, 27, 0, 95, 63, 93, 97, 97, 76, 45, 16, 0,
+			120, 105, 120, 120, 120, 120, 15, 75, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 140, 0, 3, 0, 1, 0, 148, 0, 128, 1, 168, 7, 196, 9, 228, 12, 50, 15, 96, 25, 50, 6,
+			8, 22, 28, 22, 24, 15, 6, 3, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 148, 0, 128, 1, 168, 7, 196, 9, 228, 12, 50, 15,
+			96, 25, 90, 6, 8, 22, 28, 22, 24, 15, 6, 3, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 80, 1, 32, 8, 60, 10,
+			42, 13, 50, 15, 96, 25, 0, 1, 4, 11, 14, 12, 12, 7, 3, 1, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 175, 0, 4, 0, 1, 0,
+			104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 45, 54, 26, 77, 50, 48, 50, 29, 12, 5, 160, 95, 120, 167, 120, 120,
+			130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 70, 120, 40, 116, 76, 72, 75, 44, 18, 8, 160, 95,
+			120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 60, 97, 36, 104, 68, 64, 67, 39,
+			16, 7, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 104, 0, 104, 1, 72, 8, 100, 10, 72, 13, 40, 15, 96, 25, 0, 43, 24, 69,
+			45, 43, 45, 26, 10, 5, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 90, 0, 3, 0, 1, 0, 192, 0, 144, 1, 168, 7, 236, 9, 32, 13,
+			60, 15, 96, 25, 50, 38, 29, 64, 37, 26, 24, 8, 5, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 192, 0, 152, 1, 148, 7,
+			236, 9, 32, 13, 60, 15, 96, 25, 90, 84, 44, 96, 64, 44, 40, 20, 8, 8, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0,
+			152, 1, 168, 7, 236, 9, 32, 13, 60, 15, 96, 25, 0, 31, 26, 58, 41, 29, 21, 14, 4, 5, 160, 90, 120, 120, 120, 120, 130, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			195, 0, 4, 0, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15, 104, 25, 45, 64, 13, 76, 60, 68, 68, 40, 15, 12,
+			174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15, 104, 25, 80, 64, 13, 76, 60, 68,
+			68, 40, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15, 104, 25, 70, 53,
+			11, 69, 54, 62, 61, 36, 13, 11, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15,
+			104, 25, 0, 34, 9, 55, 43, 49, 49, 29, 11, 8, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 31, 1, 77, 2,
+			255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 50, 32, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 81, 42, 77, 82, 75, 58, 42, 14, 9, 244, 132, 159, 120, 120, 120,
+			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 73, 40, 73, 77, 71, 55, 40, 13, 8, 244, 132,
+			159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48, 51, 47, 36, 27,
+			9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 31, 1, 176, 1, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28,
+			50, 34, 26, 40, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 31, 1, 184, 1, 255, 6, 225, 9, 104, 13,
+			15, 15, 224, 28, 60, 71, 42, 49, 82, 75, 58, 42, 14, 9, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 31, 1, 160, 1, 255, 6,
+			225, 9, 104, 13, 15, 15, 224, 28, 60, 60, 40, 39, 77, 71, 55, 40, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 31, 1,
+			168, 1, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 26, 26, 26, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			170, 0, 4, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 50, 24, 26, 40, 43, 38, 31, 21, 9, 5,
+			244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 55, 42, 60, 64, 57,
+			49, 34, 14, 9, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 54,
+			40, 61, 64, 54, 50, 32, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15,
+			224, 28, 0, 23, 26, 40, 40, 38, 31, 21, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 220, 0, 4, 0, 1, 0, 153, 0, 198, 1,
+			44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 41, 24, 49, 52, 39, 36, 20, 14, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 90, 63, 31, 60, 64, 51, 46, 26, 19, 8, 165, 126, 145, 120, 120, 120,
+			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 153, 0, 192, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 80, 53, 28, 54, 61, 45, 42, 23, 17, 7, 165, 126,
+			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 153, 0, 176, 1, 56, 3, 216, 9, 194, 11, 151, 14, 244, 26, 0, 31, 21, 43, 46, 34, 31, 18,
+			12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 140, 0, 3, 0, 1, 0, 204, 0, 158, 2, 252, 4, 60, 10, 168, 12, 10, 15, 0, 28,
+			50, 54, 35, 56, 76, 42, 50, 25, 14, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 204, 0, 93, 2, 208, 4, 60, 10, 168, 12,
+			10, 15, 0, 28, 90, 108, 43, 86, 98, 54, 65, 32, 19, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 204, 0, 93, 2, 252, 4,
+			60, 10, 168, 12, 10, 15, 0, 28, 0, 52, 31, 61, 69, 38, 46, 22, 13, 9, 167, 165, 150, 120, 120, 120, 167, 180, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 100, 0, 4, 0,
+			1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 45, 3, 73, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 77, 4, 96, 48, 28, 28, 40, 16, 10,
+			177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 61, 3, 85, 42, 24,
+			24, 35, 14, 8, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 30,
+			2, 60, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 50, 0, 5, 0, 1, 0, 135, 0, 96, 1, 138, 6, 68, 9,
+			128, 12, 128, 14, 153, 24, 50, 48, 12, 67, 56, 50, 45, 32, 10, 11, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 135, 0, 96, 1,
+			138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 115, 80, 16, 86, 72, 64, 58, 41, 13, 14, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			135, 0, 96, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 55, 51, 12, 69, 58, 51, 47, 33, 10, 11, 178, 122, 132, 123, 123, 141,
+			187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 135, 0, 88, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 40, 43, 10, 64, 51, 48, 44, 31, 10, 10, 178, 122,
+			132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 135, 0, 80, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 0, 40, 9, 63, 46, 40, 35, 30,
+			8, 8, 181, 122, 132, 123, 123, 141, 190, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6, 212, 8, 148, 12, 41, 14, 64, 26,
+			42, 56, 18, 76, 56, 42, 42, 39, 12, 8, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0, 104, 1, 26, 6, 212, 8, 148, 12,
+			116, 14, 192, 25, 40, 87, 23, 91, 86, 77, 60, 55, 19, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 88, 0, 104, 1, 48, 6,
+			172, 8, 148, 12, 116, 14, 192, 25, 50, 80, 24, 94, 68, 74, 55, 53, 21, 8, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 84, 0,
+			64, 1, 106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 67, 39, 12, 67, 43, 38, 32, 31, 14, 8, 165, 135, 135, 120, 120, 120, 105, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 34, 17, 60, 37, 18, 21, 21, 10, 8, 165, 135, 135, 120,
+			120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 139, 0, 3, 0, 1, 0, 112, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 60, 34, 66, 80, 45,
+			47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 90, 87,
+			41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14,
+			96, 27, 0, 46, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 105, 0, 4, 0, 5, 0, 88, 0, 24, 1,
+			6, 9, 140, 10, 32, 13, 191, 14, 224, 28, 30, 19, 10, 42, 37, 34, 45, 22, 7, 0, 135, 120, 135, 120, 120, 120, 30, 105, 75, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0,
+			88, 0, 24, 1, 174, 8, 196, 9, 32, 13, 91, 14, 224, 28, 17, 24, 7, 55, 33, 35, 37, 24, 7, 0, 135, 90, 135, 120, 120, 120,
+			30, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 5, 0, 88, 0, 84, 1, 188, 7, 36, 9, 168, 12, 191, 14, 224, 28, 58, 20, 5, 45, 20, 48, 40, 26, 5, 0, 135, 135,
+			135, 120, 120, 120, 30, 90, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 144, 1, 56, 7, 212, 8, 168, 12, 191, 14, 224, 28, 0, 86, 34, 108, 58, 77, 61, 37,
+			10, 0, 120, 105, 120, 120, 120, 120, 30, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 5, 0, 180, 0, 248, 2, 185, 8, 200, 10, 32, 13, 116, 14, 0, 29,
+			45, 13, 4, 8, 23, 36, 46, 26, 7, 0, 120, 62, 150, 120, 120, 120, 45, 92, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 196, 0, 229, 1, 136, 6, 36, 9, 28, 12,
+			116, 14, 0, 28, 50, 37, 32, 53, 66, 51, 49, 29, 6, 0, 120, 120, 150, 120, 120, 120, 75, 105, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 7, 3, 43, 4,
+			240, 10, 148, 12, 41, 14, 96, 27, 59, 126, 29, 73, 116, 52, 45, 45, 15, 7, 167, 165, 135, 120, 120, 120, 167, 120, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 228, 0,
+			7, 3, 10, 4, 240, 10, 52, 13, 41, 14, 224, 27, 58, 116, 30, 82, 97, 55, 57, 54, 13, 8, 167, 135, 150, 120, 120, 120, 167, 90,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 228, 0, 243, 2, 255, 3, 160, 10, 148, 12, 41, 14, 224, 27, 38, 71, 34, 67, 87, 37, 41, 38, 14, 8, 167, 135, 120, 120,
+			120, 120, 167, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 164, 0, 27, 3, 98, 4, 20, 10, 148, 12, 41, 14, 224, 27, 0, 40, 24, 60, 59, 29, 25, 25, 8, 8,
+			167, 120, 120, 120, 120, 120, 227, 105, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 154, 0, 4, 0, 1, 0, 248, 0, 137, 3, 40, 5, 140, 10, 112, 13, 35, 15, 32, 28, 50, 60,
+			34, 70, 69, 40, 27, 24, 9, 8, 210, 150, 105, 120, 120, 120, 255, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14,
+			32, 28, 40, 66, 42, 75, 65, 49, 43, 27, 13, 7, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 72, 1, 157, 3, 40, 5, 140, 10,
+			112, 13, 191, 14, 32, 28, 65, 72, 41, 80, 67, 56, 42, 26, 13, 6, 210, 150, 105, 120, 120, 120, 240, 165, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 16, 1, 128, 3,
+			60, 5, 100, 10, 112, 13, 191, 14, 160, 28, 0, 54, 35, 70, 63, 37, 33, 26, 8, 9, 210, 135, 105, 120, 120, 120, 255, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 154, 0,
+			4, 0, 1, 0, 248, 0, 137, 3, 40, 5, 140, 10, 112, 13, 35, 15, 32, 28, 50, 60, 34, 70, 69, 40, 27, 24, 9, 8, 210, 150,
+			105, 120, 120, 120, 255, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 40, 102, 42, 95, 85, 49, 43, 27,
+			13, 7, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 97, 41, 93,
+			83, 56, 42, 26, 13, 6, 210, 150, 105, 120, 120, 120, 240, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 16, 1, 128, 3, 60, 5, 100, 10, 112, 13, 191, 14, 160, 28,
+			0, 54, 35, 70, 63, 37, 33, 26, 8, 9, 210, 135, 105, 120, 120, 120, 255, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 50, 0, 4, 0, 5, 0, 4, 0, 16, 1, 220, 5,
+			136, 9, 58, 14, 216, 19, 224, 21, 40, 5, 8, 23, 10, 6, 6, 6, 4, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 4, 0,
+			16, 1, 220, 5, 136, 9, 58, 14, 216, 19, 224, 21, 10, 6, 9, 25, 11, 6, 6, 6, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			5, 0, 4, 0, 16, 1, 220, 5, 144, 9, 58, 14, 216, 19, 224, 21, 0, 6, 9, 26, 12, 7, 7, 7, 5, 4, 150, 125, 137, 137,
+			150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 17, 0, 4, 0, 16, 1, 220, 5, 160, 9, 58, 14, 216, 19, 224, 21, 0, 6, 9, 25, 11, 6, 6, 6, 5, 4,
+			150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 253, 2, 193, 0, 1, 254, 252, 255, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 2, 4, 6, 8,
+			9, 11, 10, 9, 8, 6, 5, 5, 6, 7, 8, 10, 11, 12, 13, 13, 12, 11, 10, 10, 9, 8, 8, 8, 8, 9, 9, 8, 7, 5,
+			3, 3, 4, 4, 1, 254, 251, 251, 251, 252, 252, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 251, 245, 236, 226, 218, 215, 216, 221,
+			227, 234, 238, 240, 239, 237, 234, 231, 229, 228, 230, 234, 238, 242, 246, 252, 0, 6, 10, 15, 17, 18, 16, 13, 9, 6, 5, 7, 11, 17,
+			22, 26, 28, 28, 27, 23, 19, 15, 10, 7, 4, 1, 0, 255, 255, 254, 254, 254, 254, 253, 252, 250, 247, 243, 240, 237, 235, 234, 235, 237,
+			239, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 254, 255, 0, 0, 1, 3, 4, 5, 6, 6, 5, 4, 2, 0, 253, 252, 251, 252, 254,
+			0, 3, 5, 5, 5, 3, 1, 0, 254, 253, 251, 250, 250, 251, 253, 0, 1, 3, 3, 3, 3, 2, 1, 0, 0, 0, 1, 2, 3, 4,
+			4, 4, 4, 3, 3, 3, 4, 4, 4, 4, 3, 2, 1, 0, 0, 255, 255, 255, 255, 0, 0, 1, 2, 3, 2, 0, 255, 253, 252, 253,
+			254, 0, 0, 2, 3, 4, 4, 3, 2, 2, 2, 3, 3, 2, 0, 0, 0, 2, 4, 5, 6, 6, 4, 2, 0, 254, 253, 252, 251, 250,
+			250, 252, 255, 0, 0, 0, 255, 255, 0, 0, 255, 253, 252, 252, 253, 253, 253, 252, 252, 253, 252, 251, 250, 252, 253, 252, 250, 251, 0, 8,
+			14, 16, 14, 13, 13, 13, 11, 8, 6, 6, 7, 9, 15, 23, 32, 39, 40, 27, 253, 209, 166, 138, 130, 142, 167, 197, 229, 255, 12, 11,
+			0, 241, 231, 228, 231, 236, 242, 248, 253, 0, 3, 9, 20, 36, 53, 67, 73, 68, 54, 34, 13, 253, 242, 239, 244, 255, 12, 23, 27, 23,
+			14, 3, 249, 240, 234, 230, 229, 227, 224, 219, 215, 212, 214, 220, 230, 240, 249, 254, 255, 250, 243, 235, 229, 228, 232, 241, 252, 6, 15, 21,
+			24, 25, 24, 22, 22, 21, 20, 17, 14, 10, 5, 2, 0, 0, 3, 7, 11, 13, 12, 7, 0, 248, 240, 234, 229, 228, 229, 232, 236, 240,
+			242, 244, 245, 246, 247, 248, 250, 253, 255, 0, 0, 0, 0, 2, 5, 10, 15, 20, 25, 26, 26, 23, 19, 15, 11, 8, 7, 6, 5, 4,
+			4, 3, 3, 3, 3, 3, 2, 0, 254, 250, 245, 241, 237, 237, 238, 242, 246, 252, 1, 7, 11, 12, 12, 11, 10, 8, 6, 6, 6, 8,
+			10, 12, 15, 17, 20, 22, 24, 24, 21, 15, 9, 3, 0, 252, 249, 249, 251, 255, 2, 3, 2, 0, 255, 252, 250, 247, 245, 246, 249, 252,
+			254, 254, 252, 252, 252, 255, 3, 8, 11, 12, 9, 6, 3, 2, 1, 2, 3, 4, 6, 7, 8, 9, 9, 8, 6, 4, 3, 3, 4, 7,
+			9, 9, 8, 5, 2, 1, 3, 7, 12, 14, 12, 4, 249, 234, 221, 213, 214, 223, 237, 254, 13, 23, 24, 17, 6, 252, 243, 237, 238, 244,
+			254, 4, 5, 0, 252, 252, 252, 247, 237, 226, 218, 215, 216, 221, 227, 234, 239, 240, 239, 238, 235, 232, 230, 229, 231, 234, 239, 243, 247, 252,
+			1, 6, 11, 15, 17, 18, 17, 14, 10, 7, 6, 8, 12, 17, 23, 27, 29, 29, 27, 24, 19, 15, 11, 7, 4, 1, 0, 0, 255, 254,
+			254, 254, 254, 254, 253, 250, 247, 244, 241, 238, 235, 234, 235, 237, 240, 242, 244, 246, 248, 250, 251, 252, 252, 253, 254, 255, 0, 0, 1, 3,
+			4, 5, 6, 7, 7, 6, 5, 2, 0, 254, 252, 251, 252, 255, 1, 3, 5, 6, 5, 4, 2, 0, 255, 253, 251, 250, 251, 252, 254, 0,
+			2, 3, 3, 3, 3, 3, 2, 0, 0, 0, 1, 2, 3, 4, 5, 5, 4, 4, 4, 4, 4, 5, 5, 4, 4, 3, 2, 0, 0, 0,
+			255, 255, 0, 0, 0, 1, 3, 3, 3, 1, 0, 254, 253, 253, 255, 0, 1, 3, 4, 4, 5, 4, 3, 2, 2, 3, 3, 3, 1, 1,
+			1, 3, 5, 6, 7, 6, 5, 2, 0, 255, 253, 252, 251, 250, 251, 253, 255, 1, 1, 0, 255, 0, 0, 0, 0, 254, 252, 0, 0, 0,
+			50, 0, 5, 0, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 45, 35, 17, 54, 37, 34, 34, 31, 8, 11,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 50, 68, 24, 76, 52, 48,
+			48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 85, 55,
+			21, 68, 46, 43, 43, 39, 10, 14, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14,
+			100, 25, 40, 43, 19, 60, 41, 38, 38, 35, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 16, 1, 8, 7, 212, 8,
+			228, 12, 96, 14, 100, 25, 0, 29, 15, 50, 34, 29, 31, 29, 7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 235, 0, 5, 0, 1, 0,
+			244, 0, 35, 2, 48, 7, 232, 9, 38, 13, 144, 14, 176, 28, 45, 28, 23, 46, 45, 48, 37, 27, 8, 6, 202, 118, 143, 120, 120, 120,
+			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 244, 0, 35, 2, 48, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 82, 40, 79, 77, 81, 63, 46, 14, 10, 202, 118,
+			143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 238, 0, 18, 2, 230, 6, 214, 9, 6, 13, 144, 14, 122, 28, 80, 72, 37, 74, 71, 73, 58, 41,
+			14, 9, 198, 118, 144, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 184, 0, 120, 1, 192, 3, 46, 9, 224, 11, 136, 14, 144, 26, 30, 48, 26, 59,
+			47, 37, 32, 21, 15, 7, 162, 122, 155, 120, 120, 120, 162, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 120, 1, 212, 3, 56, 9, 224, 11, 136, 14, 144, 26,
+			0, 29, 20, 45, 39, 32, 28, 17, 13, 5, 162, 125, 155, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 140, 0, 4, 0, 1, 0, 56, 1, 73, 3, 129, 5,
+			246, 9, 86, 13, 211, 14, 92, 28, 50, 26, 22, 47, 48, 30, 24, 17, 7, 3, 211, 144, 124, 120, 120, 120, 237, 165, 165, 44, 45, 70,
+			130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 56, 1,
+			73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 25, 91, 41, 88, 89, 56, 45, 32, 13, 7, 211, 144, 124, 120, 120, 120, 237, 165,
+			165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 56, 1, 73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 65, 87, 40, 86, 87, 54, 44, 31, 13, 6, 211, 144, 124, 120,
+			120, 120, 237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 56, 1, 73, 3, 129, 5, 246, 9, 86, 13, 211, 14, 92, 28, 0, 27, 23, 48, 49, 30, 24, 17, 7, 3,
+			211, 144, 124, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 48, 0, 3, 0, 5, 0, 168, 0, 160, 1, 232, 3, 216, 9, 72, 13, 168, 17, 106, 24, 25, 10,
+			31, 19, 3, 3, 7, 3, 7, 11, 97, 125, 137, 137, 150, 175, 97, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 9, 0, 168, 0, 160, 1, 232, 3, 216, 9, 72, 13, 168, 17,
+			106, 24, 23, 10, 31, 19, 3, 3, 7, 3, 7, 7, 97, 125, 137, 137, 150, 175, 97, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 168, 0, 160, 1, 232, 3, 216, 9,
+			72, 13, 168, 17, 106, 24, 0, 10, 31, 19, 3, 3, 7, 3, 7, 7, 97, 125, 137, 137, 150, 175, 97, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 175, 0, 4, 0, 1, 0,
+			24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 45, 44, 27, 62, 53, 40, 30, 19, 9, 4, 217, 155, 105, 120, 120, 120,
+			247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 70, 93, 40, 90, 76, 58, 43, 27, 13, 6, 217, 155,
+			105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 60, 83, 38, 85, 72, 55, 41, 26,
+			12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 0, 39, 26, 58,
+			50, 38, 28, 18, 8, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 4, 0, 33, 0, 152, 0, 40, 1, 232, 8, 4, 11, 52, 13,
+			0, 15, 160, 26, 52, 30, 12, 39, 42, 51, 51, 33, 13, 6, 167, 190, 120, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 40, 1, 232, 8,
+			4, 11, 52, 13, 0, 15, 160, 26, 75, 47, 15, 49, 53, 64, 64, 41, 16, 8, 167, 190, 120, 120, 120, 120, 167, 190, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0,
+			40, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 79, 38, 13, 44, 47, 58, 58, 37, 14, 7, 167, 190, 120, 120, 120, 120, 167, 190,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 84, 0, 240, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26, 0, 22, 11, 34, 39, 37, 38, 21, 9, 8, 175, 200, 105, 120,
+			120, 120, 175, 200, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 150, 0, 4, 0, 1, 0, 186, 0, 152, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 37, 31, 52, 63, 36,
+			29, 23, 13, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 186, 0, 152, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 60, 68,
+			43, 72, 86, 50, 39, 32, 18, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 186, 0, 152, 2, 128, 5, 156, 9, 248, 12, 141, 14,
+			160, 27, 40, 61, 40, 68, 81, 47, 37, 30, 17, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 186, 0, 152, 2, 128, 5, 156, 9,
+			248, 12, 141, 14, 160, 27, 0, 32, 29, 49, 59, 34, 27, 22, 12, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 247, 0, 5, 0, 1, 0,
+			186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 45, 41, 33, 55, 66, 38, 30, 24, 13, 0, 180, 150, 125, 120, 120, 120,
+			200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 3, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 60, 62, 41, 68, 82, 47, 37, 30, 17, 0, 180, 150,
+			125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 80, 49, 36, 60, 72, 42, 33, 27,
+			15, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 208, 0, 136, 1, 8, 2, 20, 10, 216, 11, 234, 13, 15, 28, 62, 27, 39, 30,
+			16, 28, 28, 19, 6, 6, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 208, 0, 136, 1, 8, 2, 20, 10, 216, 11, 234, 13, 15, 28,
+			0, 16, 32, 22, 14, 24, 24, 17, 5, 5, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 7, 0, 1, 0, 206, 0, 200, 1, 72, 3,
+			38, 10, 208, 11, 47, 14, 159, 27, 24, 50, 28, 50, 69, 23, 36, 20, 10, 6, 177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 206, 0,
+			200, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 55, 78, 35, 63, 87, 28, 45, 25, 13, 7, 177, 100, 131, 120, 120, 120, 105, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 206, 0, 200, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 65, 70, 33, 60, 82, 27, 43, 24, 12, 7, 177, 100, 131, 120,
+			120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 5, 0, 201, 0, 184, 1, 80, 5, 16, 9, 243, 11, 67, 14, 134, 27, 25, 40, 26, 56, 46, 36, 43, 24, 12, 7,
+			176, 151, 153, 120, 120, 120, 105, 177, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 120, 1, 244, 6, 172, 8, 168, 12, 0, 15, 160, 26, 48, 30, 14, 43, 43, 39,
+			46, 32, 15, 7, 167, 197, 120, 120, 120, 120, 167, 197, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 56, 1, 248, 7, 220, 10, 12, 13, 0, 15, 160, 26, 30, 27,
+			12, 42, 35, 29, 35, 29, 14, 6, 167, 200, 120, 120, 120, 120, 167, 200, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 152, 0, 56, 1, 248, 7, 220, 10, 52, 13, 0, 15,
+			160, 26, 0, 21, 11, 37, 28, 28, 28, 23, 12, 6, 167, 200, 120, 120, 120, 120, 167, 200, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 7, 0, 1, 0, 232, 0, 218, 2,
+			222, 3, 60, 10, 224, 11, 222, 13, 160, 28, 40, 57, 32, 56, 70, 33, 33, 22, 9, 7, 230, 150, 120, 120, 120, 120, 185, 105, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			232, 0, 158, 2, 178, 3, 60, 10, 224, 11, 222, 13, 32, 28, 49, 114, 28, 81, 103, 42, 43, 28, 15, 6, 182, 150, 120, 120, 120, 120,
+			182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 228, 0, 138, 2, 222, 3, 14, 10, 232, 11, 244, 13, 10, 28, 65, 105, 30, 83, 101, 46, 44, 29, 16, 7, 181, 145,
+			123, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 37, 0, 184, 0, 209, 1, 106, 5, 112, 8, 48, 12, 191, 14, 64, 27, 22, 49, 37, 68, 39, 59, 39, 22,
+			15, 7, 167, 100, 152, 120, 120, 120, 137, 115, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 208, 0, 149, 1, 246, 6, 112, 8, 128, 12, 191, 14, 64, 27, 48, 45, 32, 57,
+			36, 60, 35, 23, 14, 7, 155, 105, 150, 120, 120, 120, 125, 150, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 199, 7, 136, 9, 228, 12, 191, 14, 64, 27,
+			26, 36, 25, 53, 36, 30, 41, 27, 16, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 210, 7, 252, 8, 92, 13,
+			35, 15, 64, 28, 0, 25, 27, 45, 27, 21, 33, 22, 13, 8, 157, 105, 135, 120, 120, 120, 82, 105, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 5, 0, 1, 0, 88, 1,
+			128, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 46, 46, 33, 54, 65, 48, 36, 27, 9, 8, 255, 150, 180, 120, 120, 120, 135, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 88, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 61, 85, 45, 74, 89, 66, 50, 38, 13, 8, 255, 150, 180, 120,
+			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 36, 1, 64, 2, 241, 5, 12, 9, 148, 12, 20, 15, 173, 28, 48, 56, 30, 66, 71, 45, 36, 29, 13, 7,
+			222, 132, 153, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 174, 1, 156, 4, 172, 8, 204, 11, 141, 14, 224, 28, 46, 36, 26, 61, 37, 26,
+			17, 15, 8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 134, 1, 189, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 29,
+			25, 53, 35, 20, 14, 11, 8, 7, 155, 120, 75, 120, 120, 120, 110, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 195, 0, 4, 0, 1, 0, 112, 0, 120, 1, 235, 5, 156, 9,
+			208, 12, 60, 15, 90, 26, 45, 28, 23, 48, 46, 43, 40, 28, 15, 6, 168, 135, 148, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 112, 0, 120, 1,
+			235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 75, 39, 27, 58, 54, 51, 47, 34, 18, 7, 168, 135, 148, 120, 120, 120, 107, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			112, 0, 120, 1, 235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 75, 35, 25, 55, 51, 48, 45, 32, 17, 6, 168, 135, 148, 120, 120, 120,
+			107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 112, 0, 120, 1, 235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 0, 28, 23, 48, 46, 43, 40, 28, 15, 6, 168, 135,
+			148, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 105, 0, 4, 0, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 30, 13, 18, 34,
+			28, 16, 14, 14, 5, 3, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27,
+			45, 16, 20, 38, 32, 18, 16, 16, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12,
+			116, 14, 96, 27, 30, 16, 20, 38, 32, 18, 16, 16, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 13, 2, 161, 5,
+			232, 8, 188, 12, 116, 14, 96, 27, 0, 11, 15, 29, 35, 19, 20, 16, 8, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 80, 0, 4, 0,
+			1, 0, 104, 0, 44, 1, 172, 5, 84, 11, 12, 13, 135, 15, 32, 28, 0, 32, 17, 53, 34, 32, 55, 26, 8, 0, 150, 120, 150, 120,
+			120, 120, 120, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 11, 0, 104, 0, 44, 1, 172, 5, 84, 11, 12, 13, 135, 15, 32, 28, 40, 23, 14, 45, 29, 27, 47, 22, 7, 0,
+			150, 120, 150, 120, 120, 120, 120, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 9, 0, 136, 0, 184, 1, 48, 6, 84, 11, 92, 13, 210, 15, 32, 28, 40, 14, 13, 41, 31, 28,
+			27, 13, 5, 0, 150, 105, 150, 120, 120, 120, 120, 45, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 136, 0, 104, 1, 152, 8, 84, 11, 32, 13, 210, 15, 32, 28, 0, 76,
+			20, 78, 80, 78, 76, 34, 10, 0, 150, 150, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 103, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9,
+			172, 13, 160, 15, 0, 27, 40, 14, 48, 29, 21, 13, 11, 13, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0, 236, 0, 144, 1,
+			12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 15, 12, 46, 28, 22, 16, 14, 16, 10, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			236, 0, 164, 1, 122, 7, 80, 10, 172, 13, 235, 15, 128, 27, 49, 9, 28, 24, 31, 32, 28, 18, 6, 0, 120, 75, 90, 120, 120, 120,
+			30, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 204, 0, 144, 1, 97, 8, 20, 10, 92, 13, 135, 15, 128, 27, 0, 66, 51, 66, 65, 81, 81, 52, 12, 0, 120, 105,
+			150, 120, 120, 120, 45, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 140, 0, 3, 0, 1, 0, 148, 0, 128, 1, 32, 8, 60, 10, 42, 13, 50, 15, 96, 25, 50, 6, 8, 21,
+			26, 24, 23, 14, 6, 2, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 148, 0, 128, 1, 32, 8, 60, 10, 42, 13, 50, 15, 96, 25,
+			90, 7, 8, 22, 28, 25, 24, 15, 6, 2, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 128, 1, 32, 8, 60, 10, 42, 13,
+			50, 15, 96, 25, 0, 1, 4, 11, 14, 12, 12, 7, 3, 1, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 46, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 175, 0, 4, 0, 1, 0, 176, 0,
+			240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 45, 50, 29, 56, 64, 39, 34, 24, 17, 5, 164, 141, 150, 120, 120, 120, 162, 120,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 70, 109, 43, 83, 95, 57, 51, 36, 26, 8, 164, 141, 150, 120,
+			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 60, 88, 39, 75, 85, 51, 46, 32, 23, 7,
+			164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 0, 44, 27, 53, 60, 36,
+			32, 23, 16, 5, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 235, 0, 6, 0, 1, 0, 176, 0, 72, 2, 120, 5, 156, 9, 188, 12, 116, 14,
+			88, 27, 45, 49, 33, 60, 69, 41, 39, 33, 17, 6, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 72, 2, 120, 5, 156, 9,
+			188, 12, 116, 14, 88, 27, 60, 76, 41, 75, 87, 51, 49, 41, 21, 8, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 72, 2,
+			100, 5, 156, 9, 188, 12, 116, 14, 88, 27, 40, 61, 37, 67, 78, 46, 44, 37, 19, 7, 167, 135, 135, 120, 120, 120, 197, 135, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			176, 0, 184, 1, 66, 4, 106, 9, 228, 12, 216, 14, 244, 26, 40, 53, 20, 68, 59, 32, 32, 33, 15, 7, 172, 130, 122, 120, 120, 120,
+			197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 176, 0, 92, 1, 32, 3, 246, 8, 172, 12, 8, 15, 65, 27, 50, 47, 10, 68, 42, 22, 20, 26, 11, 8, 170, 123,
+			106, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 176, 0, 92, 1, 32, 3, 246, 8, 172, 12, 8, 15, 65, 27, 0, 32, 8, 57, 35, 18, 17, 22,
+			9, 6, 170, 123, 106, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66,
+			0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 120, 0, 7, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11, 52, 13, 0, 15, 160, 26,
+			52, 43, 6, 65, 57, 58, 58, 28, 13, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13,
+			0, 15, 160, 26, 50, 69, 9, 81, 72, 72, 73, 35, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 152, 0, 24, 1, 232, 8,
+			4, 11, 52, 13, 0, 15, 160, 26, 40, 50, 8, 69, 61, 61, 62, 30, 14, 7, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0,
+			24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 30, 44, 7, 65, 57, 58, 58, 28, 13, 6, 167, 105, 120, 120, 120, 120, 167, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 152, 0, 24, 1, 252, 8, 4, 11, 52, 13, 0, 15, 160, 26, 48, 62, 9, 77, 68, 69, 69, 33, 16, 8, 167, 105, 120, 120,
+			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 152, 0, 24, 1, 252, 8, 4, 11, 12, 13, 216, 14, 64, 26, 60, 44, 9, 58, 58, 61, 62, 33, 11, 8,
+			167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 84, 0, 200, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26, 0, 21, 7, 40, 41, 38,
+			39, 22, 9, 8, 175, 105, 105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 250, 0, 5, 0, 1, 0, 141, 0, 80, 1, 244, 6, 236, 9, 32, 13, 160, 15,
+			104, 25, 45, 40, 9, 60, 53, 53, 51, 31, 11, 9, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 141, 0, 80, 1, 244, 6, 236, 9,
+			32, 13, 160, 15, 104, 25, 80, 64, 12, 76, 68, 68, 65, 39, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 143, 0, 66, 1,
+			116, 7, 51, 10, 27, 13, 109, 15, 159, 25, 80, 48, 10, 64, 59, 60, 58, 34, 12, 10, 172, 113, 125, 121, 121, 129, 187, 130, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			152, 0, 24, 1, 232, 8, 4, 11, 12, 13, 216, 14, 64, 26, 45, 39, 9, 55, 55, 58, 59, 31, 11, 7, 167, 105, 120, 120, 120, 120,
+			167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 84, 0, 200, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26, 0, 22, 8, 41, 41, 39, 40, 23, 10, 8, 175, 105,
+			105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 180, 5, 212, 8, 148, 12, 41, 14, 64, 26, 42, 51, 17, 72,
+			57, 40, 40, 37, 11, 8, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 84, 0, 104, 1, 140, 5, 212, 8, 148, 12, 116, 14, 192, 25,
+			40, 79, 21, 87, 82, 73, 57, 52, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 88, 0, 96, 1, 120, 5, 172, 8, 148, 12,
+			116, 14, 192, 25, 50, 74, 22, 89, 68, 70, 52, 50, 20, 8, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 109, 0, 64, 1, 113, 4,
+			187, 8, 23, 12, 121, 14, 244, 25, 67, 49, 11, 68, 57, 41, 37, 33, 15, 8, 165, 135, 138, 120, 120, 120, 162, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 84, 0,
+			34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 30, 16, 57, 35, 17, 20, 20, 10, 8, 165, 135, 135, 120, 120, 120, 105, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
+			235, 0, 6, 0, 1, 0, 0, 1, 43, 2, 64, 6, 243, 9, 229, 12, 226, 14, 112, 28, 45, 37, 27, 53, 51, 46, 38, 25, 10, 5,
+			222, 133, 154, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 19, 0, 0, 1, 43, 2, 241, 5, 243, 9, 229, 12, 226, 14, 112, 28, 40, 46, 31, 59, 57, 52,
+			42, 28, 11, 6, 222, 133, 154, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 162, 0, 16, 2, 16, 4, 216, 9, 58, 12, 176, 14, 121, 27, 40, 48,
+			30, 55, 67, 39, 35, 26, 16, 6, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 162, 0, 16, 2, 16, 4, 216, 9, 58, 12, 176, 14,
+			121, 27, 70, 54, 32, 58, 71, 41, 37, 27, 16, 6, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 162, 0, 16, 2, 16, 4, 216, 9,
+			58, 12, 176, 14, 121, 27, 40, 60, 34, 62, 74, 43, 39, 28, 17, 6, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 162, 0, 16, 2,
+			16, 4, 216, 9, 58, 12, 176, 14, 121, 27, 0, 38, 27, 49, 59, 34, 31, 23, 14, 5, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 255, 0,
+			5, 0, 1, 0, 243, 0, 200, 1, 8, 7, 216, 9, 28, 13, 170, 14, 164, 28, 45, 36, 23, 48, 54, 53, 41, 30, 9, 6, 214, 120,
+			143, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 237, 0, 196, 1, 174, 6, 202, 9, 27, 13, 183, 14, 116, 28, 70, 57, 27, 62, 67, 63, 49, 38,
+			12, 8, 210, 120, 140, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 183, 0, 160, 1, 123, 3, 71, 9, 14, 13, 46, 15, 193, 26, 80, 82, 23, 87,
+			71, 32, 30, 40, 15, 9, 181, 124, 113, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13, 60, 15, 144, 26,
+			60, 64, 3, 86, 50, 25, 25, 36, 14, 9, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9, 12, 13,
+			60, 15, 144, 26, 0, 31, 2, 60, 35, 17, 17, 25, 10, 6, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 255, 0, 5, 0, 1, 0, 168, 0,
+			16, 2, 112, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 52, 20, 51, 63, 38, 35, 17, 13, 5, 167, 135, 150, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 195, 0, 156, 2, 68, 4, 108, 10, 97, 12, 235, 14, 60, 27, 70, 83, 34, 75, 82, 52, 45, 26, 16, 6, 201, 149, 155, 130,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 231, 0, 105, 3, 125, 5, 136, 10, 178, 13, 105, 15, 97, 27, 80, 78, 43, 85, 82, 54, 44, 30, 14, 5,
+			246, 167, 162, 143, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10, 216, 13, 120, 15, 102, 27, 60, 83, 41, 81, 77, 51,
+			41, 29, 13, 5, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10, 216, 13, 120, 15, 102, 27, 0, 56,
+			34, 67, 63, 42, 34, 23, 11, 4, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 20, 0, 3, 0, 5, 0, 136, 0, 216, 1, 64, 6, 32, 8,
+			128, 12, 100, 15, 124, 21, 20, 14, 3, 36, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 136, 0, 216, 1,
+			64, 6, 32, 8, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			136, 0, 216, 1, 64, 6, 32, 8, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175,
+			200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 20, 0, 3, 0, 5, 0, 136, 0, 8, 2, 120, 5, 148, 7, 128, 12, 100, 15, 124, 21, 20, 4, 4, 20, 16, 8, 4, 8,
+			0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 136, 0, 8, 2, 120, 5, 148, 7, 128, 12, 100, 15, 124, 21, 0, 4, 4, 20,
+			16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 8, 2, 120, 5, 148, 7, 128, 12, 100, 15, 124, 21,
+			0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 8, 1, 23, 0, 255, 2, 250, 255, 251, 0, 253, 255,
+			253, 252, 1, 2, 2, 1, 253, 8, 5, 6, 7, 14, 13, 12, 17, 13, 16, 5, 164, 135, 240, 0, 35, 45, 3, 43, 36, 3, 19, 0,
+			247, 11, 247, 252, 12, 228, 242, 255, 240, 250, 251, 3, 3, 244, 8, 13, 1, 248, 3, 3, 2, 25, 11, 0, 16, 22, 6, 22, 212, 179,
+			243, 250, 37, 8, 255, 19, 4, 12, 254, 239, 7, 240, 219, 252, 239, 251, 42, 29, 42, 28, 15, 28, 249, 214, 226, 225, 240, 240, 240, 15,
+			9, 245, 23, 14, 4, 246, 238, 11, 21, 16, 5, 249, 251, 23, 6, 9, 5, 248, 241, 251, 246, 255, 227, 234, 255, 5, 20, 13, 0, 253,
+			252, 247, 42, 12, 247, 248, 6, 30, 30, 0, 3, 18, 191, 220, 208, 229, 20, 255, 12, 19, 5, 53, 25, 245, 19, 215, 7, 47, 251, 12,
+			213, 238, 248, 247, 4, 229, 37, 250, 228, 246, 12, 20, 37, 3, 230, 33, 231, 223, 243, 40, 76, 233, 219, 36, 242, 246, 242, 41, 16, 230,
+			220, 215, 0, 21, 251, 224, 251, 54, 217, 217, 22, 40, 26, 42, 59, 27, 220, 15, 72, 244, 207, 167, 168, 209, 3, 239, 12, 33, 63, 6,
+			218, 45, 55, 222, 243, 44, 11, 241, 23, 29, 247, 250, 16, 193, 238, 25, 218, 204, 251, 37, 16, 218, 24, 18, 213, 50, 43, 230, 3, 22,
+			230, 243, 4, 43, 25, 243, 18, 232, 222, 32, 6, 226, 228, 242, 229, 212, 50, 0, 5, 0, 1, 0, 132, 0, 24, 1, 12, 8, 36, 9,
+			228, 12, 96, 14, 100, 25, 45, 35, 17, 54, 37, 31, 34, 31, 8, 11, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 24, 1,
+			188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 50, 68, 24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			132, 0, 24, 1, 168, 7, 36, 9, 228, 12, 96, 14, 100, 25, 85, 55, 21, 68, 46, 39, 43, 39, 10, 14, 167, 90, 135, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 132, 0, 24, 1, 188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 40, 43, 19, 60, 41, 35, 38, 35, 9, 12, 165, 90,
+			135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 0, 29, 15, 50, 34, 29, 31, 29,
+			7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 144, 0, 128, 1, 128, 7, 176, 9, 248, 12, 0, 15, 160, 26,
+			45, 42, 23, 60, 54, 54, 54, 26, 12, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 144, 0, 128, 1, 128, 7, 176, 9, 248, 12,
+			0, 15, 160, 26, 70, 81, 32, 84, 76, 76, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 144, 0, 128, 1, 128, 7,
+			176, 9, 248, 12, 0, 15, 160, 26, 60, 65, 28, 75, 68, 68, 67, 32, 15, 7, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0,
+			128, 1, 128, 7, 136, 9, 32, 13, 0, 15, 160, 26, 0, 35, 19, 56, 50, 50, 51, 24, 11, 5, 167, 105, 120, 120, 120, 120, 167, 90,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			175, 0, 4, 0, 1, 0, 135, 0, 120, 1, 4, 6, 212, 8, 72, 13, 0, 15, 50, 25, 45, 40, 14, 59, 47, 56, 44, 26, 10, 5,
+			178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 135, 0, 104, 1, 4, 6, 172, 8, 72, 13, 0, 15, 50, 25, 70, 73, 20, 80, 64, 68,
+			60, 36, 13, 8, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 135, 0, 104, 1, 4, 6, 192, 8, 72, 13, 0, 15, 50, 25, 60, 59,
+			18, 72, 57, 61, 54, 32, 12, 7, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 135, 0, 104, 1, 24, 6, 232, 8, 72, 13, 0, 15,
+			50, 25, 0, 30, 12, 51, 40, 43, 38, 23, 8, 5, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 115, 0, 3, 0, 1, 0, 160, 0, 75, 2,
+			220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 45, 53, 37, 66, 63, 47, 41, 27, 15, 6, 171, 143, 165, 121, 122, 125, 171, 120, 172, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			160, 0, 75, 2, 220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 70, 85, 48, 84, 80, 60, 52, 34, 20, 8, 171, 143, 165, 121, 122, 125,
+			171, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 160, 0, 75, 2, 220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 0, 68, 43, 75, 72, 54, 46, 31, 18, 7, 171, 143,
+			165, 121, 122, 125, 171, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 205, 0, 4, 0, 1, 0, 248, 0, 152, 2, 232, 3, 160, 10, 216, 12, 109, 14, 87, 27, 45, 50, 25, 54,
+			60, 33, 35, 31, 9, 5, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 248, 0, 152, 2, 232, 3, 160, 10, 216, 12, 109, 14, 87, 27,
+			90, 91, 34, 73, 81, 45, 47, 42, 12, 7, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 248, 0, 144, 2, 252, 3, 140, 10, 216, 12,
+			109, 14, 87, 27, 70, 73, 31, 67, 74, 41, 43, 38, 11, 6, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 248, 0, 144, 2, 16, 4,
+			80, 10, 168, 12, 109, 14, 87, 27, 0, 46, 25, 54, 60, 33, 35, 31, 9, 5, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 67, 8, 23, 0,
+			1, 5, 2, 0, 254, 252, 253, 251, 251, 248, 247, 250, 1, 12, 15, 13, 5, 0, 248, 241, 243, 249, 255, 0, 8, 22, 34, 38, 35, 30,
+			23, 10, 1, 251, 238, 223, 220, 231, 239, 243, 247, 253, 251, 246, 252, 0, 249, 238, 235, 237, 242, 254, 4, 0, 243, 239, 245, 249, 253, 1,
+			10, 18, 21, 22, 24, 34, 43, 47, 42, 36, 32, 30, 25, 13, 2, 254, 254, 0, 11, 28, 37, 34, 33, 32, 24, 15, 9, 5, 249, 242,
+			245, 242, 219, 197, 197, 210, 219, 221, 226, 244, 17, 48, 58, 44, 25, 20, 20, 7, 242, 225, 224, 238, 2, 14, 12, 20, 40, 58, 48, 27,
+			18, 23, 21, 0, 231, 213, 204, 203, 210, 214, 212, 213, 234, 1, 6, 252, 251, 1, 250, 231, 217, 220, 230, 244, 254, 0, 253, 4, 22, 30,
+			21, 10, 6, 10, 13, 11, 1, 249, 255, 8, 9, 252, 244, 251, 13, 29, 33, 32, 31, 38, 44, 39, 24, 14, 11, 4, 249, 236, 231, 236,
+			244, 253, 0, 249, 242, 249, 6, 5, 246, 230, 230, 241, 248, 248, 248, 247, 248, 251, 251, 241, 230, 227, 231, 237, 235, 234, 234, 239, 245, 250,
+			246, 235, 234, 243, 246, 237, 232, 239, 249, 0, 253, 248, 242, 242, 249, 251, 243, 232, 238, 250, 5, 8, 8, 13, 25, 34, 31, 20, 10, 14,
+			26, 31, 20, 14, 22, 30, 28, 19, 20, 21, 11, 3, 12, 26, 25, 14, 9, 12, 18, 13, 5, 254, 249, 243, 238, 238, 239, 244, 241, 238,
+			243, 2, 10, 12, 15, 19, 15, 3, 250, 248, 248, 239, 230, 223, 227, 241, 2, 12, 24, 45, 60, 61, 52, 36, 21, 13, 13, 10, 2, 0,
+			5, 20, 30, 37, 29, 14, 2, 254, 251, 246, 248, 242, 228, 217, 210, 203, 198, 211, 234, 250, 0, 1, 11, 14, 11, 5, 253, 243, 238, 248,
+			1, 11, 18, 23, 20, 11, 6, 11, 14, 2, 245, 246, 2, 11, 12, 5, 8, 19, 31, 33, 22, 2, 247, 251, 249, 229, 213, 214, 228, 237,
+			239, 240, 243, 255, 12, 23, 9, 240, 223, 222, 230, 236, 237, 233, 242, 2, 16, 21, 24, 31, 45, 54, 46, 25, 10, 5, 0, 237, 208, 195,
+			202, 221, 234, 243, 251, 8, 18, 21, 20, 15, 0, 251, 253, 237, 205, 193, 212, 228, 236, 247, 16, 42, 54, 56, 44, 24, 8, 255, 243, 223,
+			219, 231, 246, 6, 19, 35, 38, 39, 42, 43, 25, 251, 238, 238, 236, 231, 234, 242, 246, 254, 16, 34, 43, 36, 29, 17, 4, 0, 2, 2,
+			252, 254, 0, 6, 8, 13, 13, 3, 242, 230, 231, 238, 244, 240, 223, 213, 226, 243, 243, 226, 222, 234, 252, 8, 16, 18, 14, 15, 17, 11,
+			252, 244, 249, 253, 251, 253, 5, 22, 31, 40, 41, 31, 19, 24, 42, 37, 18, 14, 30, 31, 9, 253, 5, 11, 4, 250, 245, 241, 241, 248,
+			246, 240, 236, 238, 237, 233, 231, 221, 208, 213, 231, 236, 211, 206, 234, 9, 26, 32, 36, 25, 30, 52, 62, 39, 6, 254, 254, 254, 0, 5,
+			9, 11, 26, 35, 34, 33, 35, 32, 12, 246, 222, 209, 201, 199, 198, 195, 201, 225, 5, 20, 10, 6, 25, 32, 2, 230, 227, 225, 211, 207,
+			221, 230, 237, 11, 43, 44, 28, 35, 57, 55, 23, 247, 236, 247, 254, 246, 229, 239, 14, 40, 46, 40, 41, 36, 31, 13, 243, 221, 219, 230,
+			232, 228, 231, 247, 7, 13, 2, 247, 253, 8, 254, 231, 229, 249, 253, 250, 255, 8, 13, 29, 54, 54, 29, 8, 9, 254, 230, 210, 212, 222,
+			231, 251, 13, 29, 33, 44, 55, 51, 29, 7, 249, 229, 216, 226, 234, 221, 209, 229, 249, 246, 253, 17, 21, 251, 246, 2, 3, 243, 251, 9,
+			254, 237, 244, 10, 12, 5, 4, 4, 2, 12, 28, 32, 26, 32, 40, 28, 5, 0, 7, 244, 210, 198, 211, 220, 224, 241, 6, 17, 28, 41,
+			46, 30, 14, 0, 235, 223, 227, 239, 235, 234, 253, 24, 39, 41, 37, 28, 20, 21, 18, 0, 236, 234, 243, 245, 248, 6, 14, 13, 26, 47,
+			46, 16, 253, 0, 0, 235, 210, 201, 199, 211, 228, 243, 249, 0, 13, 20, 13, 5, 249, 231, 216, 218, 229, 234, 235, 251, 19, 32, 33, 30,
+			28, 23, 31, 36, 22, 251, 243, 253, 238, 214, 221, 1, 21, 24, 25, 38, 40, 37, 16, 244, 219, 211, 213, 217, 234, 248, 253, 5, 30, 40,
+			7, 227, 233, 4, 253, 220, 210, 234, 253, 3, 11, 25, 16, 11, 18, 26, 5, 248, 6, 19, 4, 238, 242, 251, 252, 0, 12, 21, 26, 42,
+			56, 38, 10, 2, 9, 1, 234, 226, 218, 213, 214, 234, 240, 226, 224, 4, 35, 44, 55, 82, 77, 26, 233, 218, 207, 181, 171, 185, 194, 188,
+			216, 21, 62, 53, 40, 65, 86, 80, 50, 26, 255, 228, 217, 214, 202, 196, 224, 13, 38, 43, 50, 68, 80, 62, 25, 249, 230, 219, 197, 176,
+			172, 188, 212, 248, 27, 47, 43, 49, 67, 68, 24, 233, 223, 237, 233, 211, 199, 209, 231, 5, 34, 42, 31, 36, 63, 75, 43, 246, 224, 227,
+			227, 209, 205, 215, 231, 250, 9, 27, 30, 39, 44, 36, 12, 255, 253, 251, 236, 220, 203, 192, 191, 213, 240, 252, 254, 8, 36, 58, 63, 55,
+			45, 40, 33, 10, 223, 195, 211, 243, 245, 212, 211, 252, 35, 37, 25, 27, 27, 29, 31, 34, 13, 236, 230, 237, 222, 194, 197, 228, 243, 253,
+			23, 48, 43, 40, 56, 45, 3, 238, 254, 251, 220, 205, 214, 214, 211, 236, 2, 2, 0, 21, 42, 34, 19, 16, 14, 247, 229, 231, 249, 249,
+			236, 235, 251, 8, 9, 15, 28, 32, 33, 39, 50, 36, 3, 232, 223, 232, 233, 224, 213, 232, 3, 20, 28, 49, 63, 46, 15, 2, 243, 211,
+			199, 208, 205, 180, 194, 245, 33, 29, 27, 35, 41, 35, 27, 15, 242, 218, 224, 244, 237, 209, 218, 6, 31, 18, 13, 44, 56, 41, 41, 54,
+			32, 244, 234, 246, 231, 199, 192, 211, 227, 252, 34, 48, 38, 42, 75, 80, 37, 240, 233, 239, 224, 188, 182, 204, 225, 244, 11, 27, 24, 32,
+			56, 56, 16, 238, 237, 240, 228, 220, 230, 226, 226, 248, 24, 25, 8, 16, 34, 23, 255, 253, 8, 1, 248, 1, 10, 12, 13, 26, 22, 2,
+			245, 245, 246, 243, 239, 228, 228, 242, 6, 9, 16, 27, 42, 34, 29, 28, 23, 244, 202, 173, 168, 174, 190, 219, 235, 250, 21, 85, 125, 114,
+			68, 41, 30, 5, 218, 189, 180, 168, 172, 207, 10, 34, 36, 52, 96, 110, 84, 39, 4, 226, 204, 194, 179, 162, 168, 215, 5, 29, 38, 47,
+			60, 59, 49, 23, 245, 213, 191, 190, 197, 205, 209, 221, 255, 42, 80, 84, 67, 48, 35, 20, 254, 228, 205, 188, 194, 223, 244, 244, 0, 30,
+			51, 52, 51, 56, 48, 31, 14, 250, 217, 192, 201, 211, 218, 216, 229, 255, 27, 43, 44, 39, 45, 56, 50, 13, 235, 227, 231, 220, 196, 191,
+			196, 198, 219, 20, 62, 50, 36, 70, 105, 74, 19, 3, 1, 217, 179, 186, 210, 203, 211, 245, 18, 9, 13, 42, 67, 57, 43, 31, 8, 243,
+			239, 238, 215, 192, 194, 224, 244, 251, 0, 13, 24, 25, 23, 16, 11, 3, 2, 2, 251, 245, 252, 3, 5, 3, 10, 12, 6, 251, 245, 247,
+			253, 2, 0, 2, 22, 46, 43, 16, 5, 14, 21, 14, 252, 238, 217, 210, 219, 233, 229, 217, 228, 9, 47, 46, 25, 15, 18, 14, 251, 229,
+			212, 202, 211, 243, 9, 0, 253, 28, 53, 42, 14, 16, 26, 15, 255, 247, 239, 219, 216, 239, 1, 0, 246, 3, 31, 55, 50, 24, 6, 11,
+			24, 6, 225, 205, 218, 240, 246, 247, 249, 255, 7, 24, 36, 20, 245, 246, 0, 249, 216, 214, 245, 3, 244, 240, 0, 6, 6, 15, 27, 21,
+			7, 19, 37, 19, 233, 214, 224, 232, 221, 218, 235, 6, 20, 43, 60, 56, 34, 27, 36, 36, 9, 239, 224, 220, 213, 212, 210, 224, 4, 42,
+			52, 34, 40, 56, 58, 22, 241, 219, 206, 196, 205, 217, 215, 212, 233, 11, 19, 9, 11, 37, 42, 28, 16, 10, 255, 240, 244, 243, 230, 216,
+			239, 6, 5, 251, 2, 22, 37, 35, 28, 5, 250, 4, 20, 10, 249, 0, 15, 13, 255, 252, 248, 232, 228, 246, 1, 243, 239, 16, 45, 38,
+			13, 0, 253, 241, 236, 232, 224, 213, 233, 0, 4, 5, 28, 46, 40, 29, 23, 18, 253, 235, 221, 201, 196, 224, 254, 14, 26, 41, 49, 40,
+			33, 18, 251, 224, 222, 229, 229, 230, 243, 0, 0, 250, 1, 17, 21, 10, 10, 20, 25, 18, 7, 249, 235, 237, 0, 1, 234, 221, 247, 17,
+			12, 254, 1, 6, 12, 16, 25, 10, 245, 244, 9, 5, 235, 218, 223, 240, 255, 8, 8, 9, 19, 35, 31, 12, 0, 253, 241, 233, 231, 235,
+			247, 7, 23, 16, 255, 251, 8, 21, 24, 16, 255, 246, 255, 13, 7, 243, 228, 227, 236, 246, 250, 249, 246, 0, 7, 11, 14, 24, 26, 28,
+			33, 32, 10, 243, 236, 239, 225, 205, 212, 240, 4, 7, 16, 35, 51, 46, 35, 27, 6, 238, 228, 233, 230, 220, 226, 248, 8, 15, 24, 27,
+			22, 14, 7, 248, 234, 233, 232, 220, 214, 223, 237, 247, 5, 18, 16, 11, 27, 44, 40, 23, 17, 15, 11, 3, 251, 238, 227, 227, 231, 226,
+			227, 250, 23, 41, 47, 52, 58, 54, 36, 13, 241, 210, 199, 208, 214, 207, 214, 253, 36, 49, 46, 46, 36, 21, 13, 0, 223, 195, 202, 219,
+			210, 196, 213, 244, 2, 8, 16, 24, 29, 42, 45, 25, 0, 252, 255, 246, 228, 223, 237, 0, 22, 31, 26, 21, 31, 43, 38, 12, 243, 233,
+			238, 247, 251, 237, 221, 230, 4, 20, 14, 6, 14, 21, 19, 13, 4, 247, 240, 240, 236, 227, 230, 245, 1, 4, 4, 1, 5, 15, 25, 18,
+			1, 248, 252, 252, 243, 228, 219, 224, 238, 253, 5, 17, 33, 50, 52, 37, 15, 0, 246, 234, 221, 207, 200, 210, 238, 7, 15, 20, 34, 48,
+			55, 54, 44, 23, 4, 254, 245, 227, 215, 225, 236, 243, 252, 14, 24, 29, 37, 41, 24, 0, 249, 250, 237, 215, 201, 195, 200, 217, 240, 245,
+			241, 249, 16, 33, 31, 22, 15, 9, 7, 13, 10, 250, 238, 248, 9, 7, 254, 0, 9, 14, 26, 39, 39, 31, 38, 49, 38, 16, 10, 7,
+			246, 228, 226, 223, 217, 227, 249, 254, 242, 242, 1, 5, 253, 244, 240, 236, 238, 249, 1, 253, 248, 0, 8, 3, 248, 249, 3, 7, 6, 6,
+			8, 13, 29, 38, 23, 0, 252, 6, 6, 251, 239, 236, 241, 3, 20, 20, 11, 16, 31, 34, 12, 244, 234, 233, 228, 219, 212, 213, 226, 246,
+			3, 0, 251, 255, 4, 0, 243, 230, 224, 228, 244, 255, 1, 6, 23, 42, 45, 36, 26, 21, 18, 12, 4, 254, 253, 3, 11, 13, 9, 10,
+			18, 22, 17, 11, 8, 5, 0, 251, 247, 244, 247, 252, 255, 0, 5, 10, 13, 12, 3, 245, 231, 226, 223, 217, 215, 217, 220, 223, 230, 236,
+			242, 251, 4, 8, 4, 0, 0, 4, 5, 1, 251, 246, 244, 251, 8, 16, 12, 9, 14, 21, 23, 24, 25, 20, 12, 9, 10, 6, 1, 2,
+			7, 10, 15, 25, 35, 34, 26, 19, 12, 0, 243, 233, 222, 214, 217, 235, 0, 11, 18, 23, 29, 34, 29, 10, 244, 225, 210, 199, 197, 204,
+			217, 230, 244, 3, 22, 40, 49, 50, 44, 36, 26, 17, 8, 249, 234, 228, 235, 245, 0, 6, 16, 33, 57, 65, 50, 32, 26, 21, 1, 236,
+			227, 232, 242, 250, 0, 8, 20, 31, 35, 27, 11, 252, 245, 237, 222, 203, 193, 191, 197, 206, 215, 219, 232, 254, 16, 19, 15, 14, 15, 11,
+			253, 233, 218, 219, 229, 240, 250, 3, 16, 35, 55, 62, 54, 43, 38, 32, 21, 7, 254, 250, 255, 6, 8, 6, 14, 30, 41, 36, 24, 13,
+			6, 254, 236, 214, 199, 197, 204, 211, 211, 211, 217, 228, 232, 223, 215, 0, 185, 0, 4, 0, 1, 0, 147, 0, 22, 1, 238, 7, 186, 9,
+			17, 13, 141, 14, 81, 26, 45, 41, 10, 62, 52, 48, 52, 29, 12, 8, 167, 101, 123, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 147, 0, 22, 1,
+			238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 70, 75, 14, 84, 71, 65, 70, 39, 16, 10, 167, 101, 123, 120, 120, 120, 167, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 70, 61, 12, 76, 63, 58, 63, 35, 15, 9, 167, 101, 123, 120, 120, 120,
+			167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 0, 30, 8, 54, 45, 41, 45, 25, 10, 6, 167, 101,
+			123, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 165, 0, 4, 0, 1, 0, 160, 0, 248, 1, 60, 5, 172, 8, 228, 12, 246, 14, 95, 27, 45, 43, 27, 55,
+			64, 43, 40, 30, 16, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 160, 0, 248, 1, 60, 5, 172, 8, 228, 12, 246, 14, 95, 27,
+			60, 72, 36, 72, 84, 56, 52, 38, 21, 8, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 160, 0, 248, 1, 60, 5, 172, 8, 228, 12,
+			246, 14, 95, 27, 60, 60, 32, 65, 76, 50, 47, 35, 19, 7, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 160, 0, 248, 1, 60, 5,
+			172, 8, 228, 12, 246, 14, 95, 27, 0, 36, 28, 50, 58, 39, 36, 27, 15, 5, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 4, 0,
+			1, 0, 122, 0, 136, 1, 180, 5, 132, 8, 228, 12, 246, 14, 95, 27, 45, 41, 18, 54, 67, 39, 42, 29, 16, 6, 170, 133, 127, 122,
+			124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 122, 0, 136, 1, 180, 5, 132, 8, 228, 12, 246, 14, 95, 27, 97, 72, 24, 72, 88, 52, 55, 38, 21, 8,
+			170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 122, 0, 136, 1, 120, 5, 112, 8, 228, 12, 246, 14, 95, 27, 73, 62, 21, 68, 79, 47,
+			43, 35, 19, 7, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 122, 0, 152, 1, 79, 5, 153, 8, 228, 12, 246, 14, 95, 27, 0, 39,
+			23, 54, 57, 37, 34, 23, 11, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 165, 0, 4, 0, 1, 0, 24, 1, 248, 2, 236, 4, 196, 9,
+			112, 13, 40, 15, 153, 28, 45, 48, 28, 57, 63, 46, 37, 28, 10, 6, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 24, 1, 248, 2,
+			236, 4, 196, 9, 112, 13, 40, 15, 153, 28, 60, 83, 38, 76, 83, 60, 48, 37, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			24, 1, 248, 2, 20, 5, 196, 9, 112, 13, 40, 15, 153, 28, 60, 73, 36, 72, 79, 57, 46, 35, 13, 7, 215, 138, 143, 120, 120, 120,
+			237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 24, 1, 248, 2, 40, 5, 196, 9, 112, 13, 40, 15, 153, 28, 0, 40, 26, 53, 59, 43, 34, 26, 9, 5, 215, 138,
+			143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 132, 0, 67, 1, 240, 5, 92, 8, 228, 12, 96, 14, 100, 25, 45, 41, 18, 63,
+			40, 35, 37, 34, 9, 12, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 67, 1, 240, 5, 92, 8, 228, 12, 96, 14, 100, 25,
+			70, 66, 22, 80, 51, 44, 48, 44, 12, 16, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 67, 1, 240, 5, 112, 8, 228, 12,
+			96, 14, 100, 25, 60, 58, 21, 75, 48, 41, 45, 41, 11, 15, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 67, 1, 240, 5,
+			112, 8, 228, 12, 96, 14, 100, 25, 0, 41, 18, 63, 40, 35, 37, 34, 9, 12, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 210, 0, 5, 0,
+			1, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25, 45, 42, 15, 62, 40, 34, 37, 34, 9, 12, 167, 90, 135, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25, 60, 69, 20, 80, 51, 44, 48, 44, 12, 16,
+			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25, 70, 62, 19, 76, 49, 42,
+			45, 41, 11, 15, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 132, 0, 24, 1, 24, 6, 72, 8, 228, 12, 96, 14, 100, 25, 35, 41,
+			15, 62, 40, 34, 37, 34, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 24, 6, 72, 8, 228, 12, 96, 14,
+			100, 25, 0, 36, 14, 58, 37, 32, 35, 32, 8, 11, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 235, 0, 5, 0, 1, 0, 8, 1, 8, 3,
+			60, 5, 236, 9, 32, 13, 191, 14, 64, 27, 45, 53, 34, 66, 72, 43, 43, 31, 4, 6, 167, 135, 165, 120, 120, 120, 167, 135, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			8, 1, 8, 3, 60, 5, 236, 9, 32, 13, 191, 14, 64, 27, 80, 103, 48, 92, 100, 60, 60, 44, 6, 8, 167, 135, 165, 120, 120, 120,
+			167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 254, 0, 222, 2, 146, 5, 252, 9, 44, 13, 189, 14, 86, 27, 70, 92, 46, 88, 95, 60, 58, 43, 7, 8, 167, 130,
+			168, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 43, 32, 55, 49, 58, 45, 33,
+			10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 28, 28, 44,
+			45, 41, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0, 1, 0, 122, 0, 240, 1, 140, 5, 132, 8, 228, 12,
+			246, 14, 95, 27, 45, 38, 25, 54, 60, 37, 39, 28, 15, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 122, 0, 240, 1, 140, 5,
+			132, 8, 228, 12, 246, 14, 95, 27, 75, 74, 36, 76, 84, 52, 55, 38, 21, 8, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 125, 0,
+			218, 1, 214, 5, 191, 8, 236, 12, 247, 14, 76, 27, 60, 72, 31, 76, 82, 53, 57, 38, 21, 8, 170, 129, 127, 122, 124, 127, 197, 131,
+			127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			1, 0, 152, 0, 11, 1, 112, 8, 212, 10, 52, 13, 0, 15, 160, 26, 70, 40, 4, 64, 57, 46, 58, 28, 13, 6, 167, 99, 120, 120,
+			120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 152, 0, 11, 1, 112, 8, 212, 10, 52, 13, 0, 15, 160, 26, 0, 34, 3, 59, 53, 43, 54, 26, 12, 6,
+			167, 99, 120, 120, 120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0,
+			0, 0, 0, 0, 0, 250, 0, 0, 40, 0, 7, 0, 1, 0, 24, 1, 232, 2, 140, 5, 196, 9, 112, 13, 40, 15, 153, 28, 40, 50,
+			33, 63, 63, 48, 38, 29, 10, 6, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 24, 1, 232, 2, 140, 5, 196, 9, 112, 13, 40, 15,
+			153, 28, 35, 89, 44, 84, 84, 64, 51, 39, 14, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 245, 0, 176, 2, 104, 5, 160, 9,
+			112, 13, 40, 15, 153, 28, 40, 81, 41, 79, 79, 53, 49, 38, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 195, 0, 56, 2,
+			122, 5, 68, 9, 112, 13, 30, 15, 83, 27, 50, 73, 33, 76, 65, 46, 53, 38, 13, 7, 201, 130, 147, 121, 121, 127, 237, 165, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			144, 0, 173, 1, 140, 5, 232, 8, 55, 13, 20, 15, 13, 26, 60, 55, 21, 69, 49, 38, 39, 32, 12, 7, 188, 123, 151, 122, 122, 135,
+			237, 165, 151, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 1, 0, 147, 0, 64, 1, 20, 5, 34, 9, 40, 13, 15, 15, 105, 25, 35, 37, 10, 61, 46, 28, 25, 18, 12, 7, 181, 109,
+			137, 123, 123, 139, 187, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8,
+			87, 182, 0, 250, 0, 0, 1, 0, 147, 0, 64, 1, 20, 5, 34, 9, 40, 13, 15, 15, 105, 25, 0, 29, 9, 54, 41, 25, 22, 16,
+			11, 6, 181, 109, 137, 123, 123, 139, 187, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65,
+			0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 155, 0, 4, 0, 1, 0, 133, 0, 144, 1, 64, 6, 116, 9, 196, 12, 151, 14, 39, 25,
+			50, 40, 23, 56, 50, 37, 41, 32, 12, 10, 177, 127, 132, 124, 123, 138, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 133, 0, 144, 1, 64, 6, 116, 9, 196, 12,
+			151, 14, 39, 25, 70, 52, 26, 64, 57, 43, 46, 37, 13, 11, 177, 127, 132, 124, 123, 138, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 133, 0, 144, 1, 64, 6,
+			116, 9, 196, 12, 151, 14, 39, 25, 35, 52, 26, 64, 57, 43, 46, 37, 13, 11, 177, 127, 132, 124, 123, 138, 187, 126, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 133, 0,
+			144, 1, 64, 6, 116, 9, 196, 12, 151, 14, 39, 25, 0, 31, 20, 50, 44, 33, 36, 28, 10, 9, 177, 127, 132, 124, 123, 138, 187, 126,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			95, 0, 4, 0, 1, 0, 135, 0, 151, 1, 220, 5, 96, 9, 188, 12, 136, 14, 153, 24, 45, 43, 21, 59, 56, 46, 37, 28, 10, 11,
+			178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 135, 0, 151, 1, 220, 5, 96, 9, 188, 12, 136, 14, 153, 24, 80, 71, 28, 76, 72, 60,
+			48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 135, 0, 202, 1, 233, 5, 179, 9, 188, 12, 136, 14, 153, 24, 50, 76,
+			33, 81, 72, 60, 48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 135, 0, 202, 1, 233, 5, 179, 9, 188, 12, 136, 14,
+			153, 24, 0, 76, 33, 81, 72, 60, 48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 4, 0, 1, 0, 168, 0, 232, 1,
+			152, 3, 136, 9, 244, 11, 141, 14, 32, 27, 45, 55, 28, 58, 65, 39, 32, 18, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			168, 0, 232, 1, 152, 3, 136, 9, 244, 11, 141, 14, 32, 27, 90, 109, 42, 80, 92, 59, 48, 27, 20, 8, 165, 135, 150, 120, 120, 120,
+			165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 171, 0, 160, 1, 211, 2, 101, 9, 239, 12, 42, 15, 89, 27, 60, 57, 28, 60, 52, 27, 22, 14, 11, 8, 196, 108,
+			123, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 172, 0, 160, 1, 188, 2, 96, 9, 12, 13, 60, 15, 96, 27, 0, 36, 24, 48, 40, 24, 20, 12,
+			10, 8, 200, 105, 120, 120, 120, 120, 200, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 155, 0, 5, 0, 1, 0, 136, 0, 232, 1, 64, 6, 140, 10, 232, 13, 64, 16, 95, 27,
+			45, 44, 24, 58, 58, 43, 33, 27, 16, 6, 170, 152, 153, 122, 124, 128, 197, 152, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 136, 0, 232, 1, 64, 6, 140, 10, 232, 13,
+			64, 16, 95, 27, 60, 67, 30, 72, 72, 53, 41, 34, 20, 8, 170, 152, 153, 122, 124, 128, 197, 152, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 232, 1, 64, 6,
+			140, 10, 232, 13, 64, 16, 95, 27, 40, 60, 28, 68, 68, 50, 39, 32, 19, 7, 170, 152, 153, 122, 124, 128, 197, 152, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 160, 0,
+			136, 1, 12, 8, 60, 10, 127, 13, 159, 14, 16, 28, 50, 46, 31, 55, 51, 54, 33, 36, 10, 7, 168, 109, 141, 120, 120, 120, 200, 109,
+			141, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 160, 0, 136, 1, 12, 8, 60, 10, 127, 13, 159, 14, 16, 28, 0, 32, 26, 46, 43, 45, 27, 30, 8, 6, 168, 109, 141, 120,
+			120, 120, 200, 109, 141, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 90, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 35, 13, 36, 20, 38, 12,
+			16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 25, 13,
+			36, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14,
+			32, 27, 30, 5, 22, 11, 22, 8, 11, 11, 4, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 196, 0, 114, 1, 84, 4, 252, 8,
+			88, 12, 91, 14, 32, 27, 0, 3, 19, 9, 19, 7, 9, 9, 3, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 90, 0, 4, 0, 5, 0,
+			236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 35, 17, 40, 41, 25, 16, 13, 16, 8, 0, 132, 60, 90, 120, 120, 120,
+			42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250,
+			0, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 25, 14, 36, 37, 22, 14, 12, 14, 8, 0, 132, 60,
+			90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59,
+			105, 182, 200, 250, 21, 8, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 30, 5, 22, 22, 20, 12, 10, 12,
+			7, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165,
+			0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 0, 3, 16, 16,
+			15, 9, 8, 9, 5, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 100, 0, 4, 0, 5, 0, 204, 0, 120, 1, 92, 8, 124, 11, 172, 13,
+			160, 15, 0, 27, 30, 19, 41, 45, 19, 19, 15, 15, 9, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 204, 0, 120, 1, 192, 8,
+			28, 12, 172, 13, 160, 15, 0, 27, 25, 16, 39, 39, 18, 18, 15, 14, 9, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 5, 0, 204, 0,
+			120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 45, 4, 21, 21, 15, 15, 12, 12, 7, 0, 135, 60, 90, 120, 120, 120, 45, 135,
+			105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			37, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 0, 4, 21, 21, 15, 15, 12, 12, 7, 0, 135, 60, 90, 120,
+			120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 95, 0, 4, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 40, 17, 44, 14, 19, 10,
+			10, 13, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23, 25, 17,
+			44, 14, 19, 10, 10, 13, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 232, 0, 13, 2, 236, 9, 44, 11, 76, 14, 23, 17,
+			224, 23, 30, 5, 25, 6, 15, 8, 8, 10, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 232, 0, 13, 2, 236, 9, 44, 11,
+			76, 14, 23, 17, 224, 23, 0, 4, 22, 5, 13, 7, 7, 9, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 97, 9, 23, 0, 0, 255,
+			255, 254, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 254, 254, 254, 255, 255, 254, 255, 255, 254, 255, 0, 255, 255, 254, 255, 0,
+			0, 255, 255, 255, 0, 255, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 254, 255, 0, 0, 0, 0, 0, 0, 0, 7, 40, 43,
+			3, 236, 248, 2, 254, 9, 28, 28, 15, 6, 0, 251, 1, 17, 25, 17, 16, 22, 13, 9, 24, 30, 25, 29, 91, 77, 249, 254, 0, 245,
+			246, 42, 53, 24, 241, 196, 216, 250, 239, 246, 4, 245, 195, 162, 180, 212, 233, 249, 235, 204, 175, 172, 165, 194, 235, 223, 215, 169, 135, 191,
+			226, 235, 0, 249, 242, 239, 213, 191, 2, 90, 36, 246, 254, 12, 72, 57, 93, 127, 43, 26, 20, 11, 36, 68, 78, 30, 14, 239, 229, 46,
+			32, 240, 14, 37, 231, 164, 187, 7, 26, 223, 167, 175, 221, 208, 181, 182, 227, 241, 173, 188, 230, 216, 197, 211, 247, 213, 230, 240, 192, 228,
+			1, 8, 26, 5, 224, 3, 32, 24, 15, 20, 16, 23, 0, 6, 20, 4, 32, 64, 49, 40, 78, 49, 13, 11, 29, 50, 28, 255, 241, 20,
+			36, 254, 207, 251, 69, 29, 220, 197, 244, 18, 234, 202, 238, 44, 6, 161, 164, 1, 39, 17, 202, 184, 9, 25, 210, 178, 243, 56, 29, 215,
+			166, 250, 83, 246, 197, 14, 80, 17, 190, 216, 15, 58, 55, 31, 6, 243, 241, 251, 33, 38, 249, 24, 40, 233, 183, 219, 29, 50, 31, 245,
+			252, 24, 11, 222, 198, 250, 61, 38, 251, 241, 5, 18, 254, 247, 62, 62, 44, 4, 207, 214, 245, 33, 62, 32, 250, 252, 226, 202, 207, 241,
+			26, 47, 29, 187, 175, 228, 242, 236, 243, 11, 11, 228, 208, 180, 194, 235, 46, 31, 222, 220, 242, 250, 202, 215, 2, 47, 23, 216, 229, 253,
+			236, 244, 247, 242, 26, 33, 229, 193, 246, 15, 3, 5, 5, 17, 253, 236, 220, 238, 36, 23, 251, 202, 209, 11, 23, 248, 242, 37, 8, 193,
+			208, 245, 10, 31, 2, 240, 1, 254, 228, 192, 221, 16, 38, 27, 244, 253, 244, 209, 223, 0, 40, 39, 241, 239, 2, 10, 243, 227, 12, 44,
+			40, 19, 237, 230, 243, 253, 8, 0, 49, 63, 19, 249, 208, 238, 22, 21, 4, 254, 35, 13, 246, 0, 248, 251, 0, 10, 23, 32, 29, 254,
+			252, 243, 240, 16, 32, 13, 19, 38, 11, 246, 0, 251, 251, 7, 29, 41, 34, 28, 232, 231, 10, 9, 254, 4, 47, 48, 12, 226, 245, 27,
+			2, 230, 232, 35, 44, 241, 227, 247, 14, 248, 205, 235, 23, 21, 3, 3, 252, 235, 199, 213, 3, 25, 16, 5, 253, 4, 10, 232, 217, 248,
+			39, 18, 226, 248, 32, 13, 222, 197, 251, 44, 248, 236, 45, 45, 0, 220, 216, 251, 3, 4, 7, 22, 33, 252, 216, 243, 255, 255, 255, 245,
+			4, 243, 245, 1, 4, 225, 212, 241, 241, 253, 3, 2, 229, 233, 254, 227, 234, 244, 238, 236, 6, 7, 251, 237, 242, 247, 234, 247, 14, 2,
+			0, 248, 241, 238, 235, 255, 8, 17, 255, 248, 14, 18, 240, 207, 7, 63, 27, 234, 242, 20, 11, 224, 217, 1, 53, 20, 236, 244, 12, 26,
+			240, 242, 254, 21, 4, 221, 239, 29, 14, 222, 209, 7, 18, 242, 229, 230, 242, 232, 226, 254, 19, 9, 240, 222, 243, 2, 19, 232, 219, 17,
+			25, 0, 238, 29, 24, 242, 237, 255, 7, 245, 254, 23, 19, 29, 2, 221, 235, 1, 15, 2, 7, 13, 16, 242, 221, 229, 245, 5, 3, 231,
+			248, 26, 8, 206, 210, 59, 23, 203, 217, 12, 16, 204, 226, 12, 14, 241, 247, 247, 251, 246, 203, 236, 10, 28, 3, 249, 10, 38, 14, 225,
+			250, 18, 5, 235, 11, 35, 24, 5, 8, 4, 246, 1, 237, 240, 245, 239, 0, 17, 4, 231, 11, 6, 211, 223, 252, 19, 249, 242, 247, 8,
+			0, 225, 237, 248, 254, 252, 10, 10, 2, 10, 237, 243, 22, 21, 2, 4, 1, 228, 7, 21, 246, 237, 25, 31, 246, 246, 252, 0, 247, 254,
+			4, 32, 32, 15, 18, 254, 255, 231, 240, 252, 27, 21, 247, 252, 250, 14, 2, 253, 3, 250, 238, 244, 3, 254, 0, 9, 31, 6, 233, 243,
+			238, 238, 222, 245, 24, 16, 3, 8, 17, 239, 217, 234, 234, 211, 221, 15, 48, 24, 254, 251, 251, 2, 9, 236, 242, 6, 3, 223, 242, 29,
+			8, 244, 229, 13, 251, 218, 219, 241, 0, 231, 0, 42, 57, 49, 28, 29, 14, 6, 3, 12, 21, 23, 19, 35, 38, 12, 22, 41, 18, 238,
+			233, 1, 237, 222, 246, 255, 5, 1, 249, 234, 250, 247, 219, 210, 234, 5, 0, 244, 243, 11, 23, 4, 253, 4, 0, 237, 242, 13, 34, 7,
+			0, 21, 21, 11, 2, 251, 246, 3, 11, 18, 15, 1, 2, 2, 5, 242, 232, 227, 240, 255, 249, 230, 222, 242, 251, 235, 228, 5, 13, 246,
+			224, 230, 243, 244, 235, 237, 243, 252, 6, 254, 4, 250, 239, 238, 218, 213, 242, 247, 234, 248, 3, 247, 221, 231, 240, 221, 202, 201, 206, 223,
+			234, 249, 251, 246, 225, 225, 228, 212, 215, 238, 0, 250, 238, 245, 12, 252, 226, 228, 242, 241, 226, 229, 252, 4, 1, 250, 0, 4, 10, 2,
+			252, 0, 0, 253, 231, 245, 21, 15, 246, 242, 0, 2, 241, 27, 52, 7, 235, 0, 16, 216, 212, 232, 221, 218, 242, 3, 2, 9, 4, 234,
+			232, 234, 240, 235, 228, 235, 228, 238, 0, 251, 4, 17, 17, 13, 244, 222, 226, 237, 246, 6, 29, 58, 54, 33, 11, 249, 0, 236, 224, 252,
+			18, 29, 24, 27, 45, 23, 237, 236, 237, 226, 211, 215, 229, 239, 248, 8, 28, 16, 10, 5, 252, 206, 179, 219, 229, 227, 18, 45, 36, 18,
+			25, 11, 236, 227, 223, 231, 9, 20, 7, 13, 49, 29, 246, 232, 225, 213, 224, 237, 229, 5, 28, 16, 253, 252, 19, 11, 252, 246, 219, 226,
+			0, 254, 250, 28, 57, 42, 10, 250, 248, 229, 238, 3, 10, 50, 49, 32, 14, 241, 229, 232, 221, 216, 229, 12, 21, 254, 4, 16, 16, 246,
+			219, 226, 241, 252, 242, 0, 23, 28, 0, 223, 242, 10, 7, 253, 254, 4, 246, 225, 242, 6, 17, 18, 19, 16, 1, 7, 10, 251, 0, 20,
+			30, 32, 35, 33, 1, 10, 23, 14, 26, 11, 243, 242, 239, 240, 239, 11, 18, 8, 19, 26, 19, 243, 231, 228, 204, 203, 195, 225, 24, 39,
+			35, 24, 28, 13, 228, 198, 197, 222, 243, 237, 244, 34, 76, 71, 38, 43, 42, 17, 237, 235, 6, 24, 6, 246, 23, 56, 42, 4, 4, 20,
+			246, 225, 225, 226, 0, 4, 247, 248, 248, 237, 219, 241, 248, 227, 211, 230, 251, 226, 245, 22, 31, 36, 19, 254, 1, 12, 238, 200, 233, 20,
+			15, 26, 49, 42, 27, 45, 7, 216, 235, 5, 243, 229, 32, 45, 10, 16, 25, 21, 6, 228, 221, 241, 220, 186, 212, 7, 2, 247, 13, 48,
+			27, 220, 191, 183, 191, 189, 193, 6, 68, 55, 10, 0, 2, 229, 194, 194, 223, 252, 13, 24, 45, 50, 41, 31, 27, 17, 248, 228, 229, 219,
+			222, 7, 28, 27, 26, 30, 26, 8, 231, 207, 198, 204, 220, 222, 0, 37, 41, 40, 40, 18, 238, 243, 244, 225, 221, 230, 247, 239, 236, 12,
+			35, 27, 10, 4, 250, 235, 239, 247, 242, 243, 14, 16, 6, 250, 235, 242, 249, 227, 202, 232, 3, 240, 240, 4, 16, 22, 251, 222, 231, 1,
+			10, 0, 1, 33, 48, 27, 253, 227, 237, 3, 240, 226, 7, 27, 15, 11, 25, 31, 15, 22, 252, 234, 245, 241, 247, 238, 218, 228, 4, 6,
+			222, 247, 11, 249, 232, 228, 0, 1, 227, 224, 249, 5, 6, 240, 222, 216, 224, 230, 225, 248, 23, 30, 43, 43, 16, 9, 7, 0, 230, 223,
+			249, 29, 33, 25, 30, 23, 23, 16, 242, 237, 9, 12, 243, 230, 244, 243, 238, 211, 205, 239, 7, 5, 244, 3, 9, 254, 226, 219, 241, 241,
+			235, 236, 250, 4, 9, 249, 222, 5, 33, 27, 10, 251, 3, 6, 255, 233, 223, 228, 220, 231, 12, 25, 22, 30, 41, 27, 252, 229, 234, 229,
+			220, 228, 241, 250, 246, 7, 29, 32, 12, 232, 224, 213, 212, 230, 229, 240, 239, 8, 21, 19, 28, 26, 13, 236, 218, 241, 250, 4, 12, 5,
+			29, 46, 25, 254, 235, 236, 244, 235, 228, 217, 233, 16, 21, 242, 243, 13, 22, 0, 254, 0, 249, 254, 247, 243, 252, 255, 7, 23, 46, 37,
+			13, 16, 247, 228, 222, 237, 10, 27, 23, 24, 45, 51, 26, 241, 236, 227, 211, 229, 0, 3, 3, 14, 19, 13, 21, 31, 0, 206, 202, 219,
+			242, 248, 220, 245, 39, 28, 3, 252, 253, 239, 210, 199, 215, 233, 26, 55, 48, 42, 38, 30, 9, 227, 212, 214, 221, 247, 8, 11, 28, 48,
+			45, 25, 253, 250, 245, 218, 197, 202, 236, 15, 15, 30, 33, 9, 7, 250, 217, 206, 214, 226, 255, 18, 22, 47, 74, 46, 8, 244, 236, 234,
+			232, 250, 9, 39, 90, 87, 52, 25, 12, 9, 231, 190, 199, 224, 244, 22, 30, 40, 45, 21, 239, 218, 199, 190, 226, 22, 44, 21, 47, 60,
+			19, 223, 204, 233, 235, 220, 220, 3, 42, 50, 30, 15, 3, 239, 232, 217, 214, 239, 14, 29, 32, 39, 42, 47, 25, 245, 226, 234, 241, 244,
+			7, 13, 14, 9, 21, 6, 234, 221, 213, 231, 245, 252, 251, 243, 10, 11, 251, 242, 253, 239, 211, 206, 230, 244, 241, 0, 16, 27, 29, 13,
+			235, 222, 208, 206, 244, 10, 4, 1, 29, 43, 24, 253, 238, 239, 235, 237, 235, 243, 13, 28, 21, 6, 15, 20, 6, 244, 225, 222, 245, 6,
+			2, 8, 25, 39, 33, 2, 227, 225, 246, 212, 186, 230, 21, 28, 22, 31, 33, 255, 229, 215, 199, 223, 251, 252, 18, 61, 59, 38, 17, 7,
+			250, 231, 222, 218, 232, 249, 10, 38, 57, 35, 5, 249, 239, 227, 213, 221, 5, 14, 3, 19, 36, 43, 36, 7, 235, 214, 218, 222, 211, 212,
+			253, 29, 25, 16, 1, 232, 212, 203, 213, 233, 250, 7, 29, 47, 18, 4, 3, 245, 224, 208, 241, 17, 23, 0, 248, 14, 27, 23, 242, 242,
+			255, 249, 250, 252, 253, 2, 7, 0, 247, 239, 223, 205, 231, 254, 245, 254, 250, 7, 249, 220, 237, 18, 254, 222, 232, 2, 16, 247, 230, 246,
+			9, 14, 249, 233, 246, 8, 15, 9, 253, 255, 18, 15, 252, 247, 0, 248, 233, 241, 240, 251, 27, 46, 43, 16, 249, 236, 221, 218, 220, 238,
+			8, 17, 21, 251, 238, 1, 252, 225, 207, 221, 252, 9, 9, 10, 18, 26, 7, 227, 221, 235, 233, 238, 11, 27, 40, 42, 30, 18, 241, 217,
+			218, 217, 230, 2, 10, 33, 56, 47, 255, 226, 213, 204, 210, 212, 231, 17, 38, 26, 7, 250, 0, 245, 210, 199, 216, 234, 253, 12, 22, 21,
+			7, 245, 231, 211, 218, 249, 7, 11, 24, 24, 17, 10, 240, 229, 226, 235, 4, 14, 34, 40, 23, 17, 1, 232, 228, 244, 252, 13, 31, 29,
+			28, 5, 247, 244, 211, 218, 250, 3, 2, 18, 12, 249, 242, 245, 242, 219, 226, 255, 14, 17, 14, 6, 2, 251, 244, 238, 236, 253, 8, 18,
+			37, 38, 13, 226, 231, 254, 249, 255, 19, 35, 37, 26, 9, 0, 236, 212, 226, 249, 251, 252, 31, 64, 40, 245, 240, 241, 214, 200, 227, 21,
+			40, 18, 22, 32, 5, 246, 238, 232, 242, 243, 252, 11, 16, 12, 12, 20, 3, 236, 240, 3, 16, 12, 15, 18, 11, 250, 247, 248, 238, 240,
+			250, 254, 11, 16, 33, 35, 9, 236, 225, 239, 10, 0, 233, 5, 27, 10, 245, 239, 254, 8, 3, 2, 14, 1, 8, 15, 231, 217, 240, 251,
+			11, 22, 2, 11, 22, 19, 250, 232, 1, 17, 0, 247, 249, 254, 1, 248, 232, 240, 7, 30, 21, 253, 251, 235, 226, 245, 253, 243, 253, 28,
+			36, 20, 5, 0, 7, 1, 234, 220, 228, 245, 7, 12, 4, 245, 247, 254, 243, 224, 230, 238, 246, 10, 7, 249, 237, 251, 10, 6, 250, 255,
+			17, 21, 4, 240, 250, 21, 16, 253, 241, 243, 11, 15, 255, 254, 0, 243, 231, 249, 13, 7, 4, 7, 1, 250, 230, 223, 251, 3, 254, 12,
+			34, 36, 15, 252, 243, 245, 239, 244, 255, 15, 20, 26, 31, 7, 243, 222, 220, 236, 243, 0, 21, 20, 8, 7, 1, 241, 225, 239, 4, 7,
+			250, 252, 19, 13, 248, 240, 240, 241, 247, 252, 252, 252, 11, 20, 8, 250, 254, 5, 2, 247, 240, 5, 35, 19, 0, 9, 17, 18, 12, 3,
+			0, 253, 239, 239, 3, 3, 243, 252, 16, 8, 237, 233, 237, 232, 229, 227, 239, 20, 20, 253, 248, 242, 228, 240, 249, 246, 4, 28, 33, 11,
+			250, 240, 230, 239, 244, 250, 17, 33, 25, 14, 2, 239, 230, 238, 245, 250, 10, 42, 51, 18, 244, 229, 238, 230, 216, 231, 6, 32, 28, 2,
+			235, 228, 218, 192, 183, 222, 15, 37, 26, 5, 244, 237, 226, 225, 248, 8, 21, 42, 56, 41, 10, 242, 230, 231, 242, 249, 17, 50, 52, 18,
+			248, 244, 233, 225, 228, 238, 6, 43, 45, 22, 6, 248, 231, 219, 213, 225, 0, 31, 39, 16, 245, 231, 217, 210, 225, 253, 25, 45, 31, 4,
+			236, 228, 239, 239, 240, 249, 19, 37, 22, 4, 245, 241, 249, 245, 243, 5, 21, 16, 2, 252, 250, 255, 0, 241, 227, 230, 251, 251, 251, 11,
+			9, 252, 231, 219, 228, 240, 252, 7, 8, 6, 8, 4, 253, 242, 234, 241, 15, 29, 22, 12, 7, 0, 255, 247, 234, 248, 12, 22, 14, 0,
+			0, 0, 90, 0, 2, 0, 37, 0, 184, 0, 24, 2, 112, 5, 72, 8, 0, 10, 188, 12, 136, 19, 90, 2, 9, 16, 4, 6, 8, 3,
+			3, 3, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0, 184, 0, 24, 2, 112, 5, 248, 7, 236, 9, 188, 12, 131, 24, 0, 0, 7, 2,
+			3, 8, 6, 2, 1, 1, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29,
+			31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89,
+			91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149,
+			151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209,
+			211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 254, 254, 253, 252, 251, 250, 249, 247,
+			246, 245, 244, 243, 241, 240, 239, 237, 236, 234, 233, 231, 230, 228, 226, 225, 223, 221, 220, 218, 216, 214, 212, 210, 209, 207, 205, 203, 201, 199,
+			197, 195, 193, 191, 189, 186, 184, 182, 180, 178, 176, 174, 171, 169, 167, 165, 162, 160, 158, 156, 153, 151, 149, 147, 144, 142, 140, 137, 135, 133,
+			131, 128, 126, 124, 121, 119, 117, 114, 112, 110, 108, 105, 103, 101, 99, 96, 94, 92, 90, 88, 85, 83, 81, 79, 77, 75, 73, 70, 68, 66,
+			64, 62, 59, 57, 55, 53, 51, 49, 46, 44, 42, 40, 38, 35, 33, 31, 29, 27, 25, 23, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2,
+			0, 2, 4, 6, 8, 10, 11, 13, 15, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 36, 37, 38,
+			39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 62, 63, 64, 66, 68, 69,
+			71, 73, 75, 77, 79, 81, 83, 85, 88, 90, 93, 95, 98, 101, 104, 107, 110, 114, 117, 121, 124, 128, 132, 136, 140, 145, 149, 154, 159, 163,
+			166, 170, 174, 177, 181, 184, 188, 192, 195, 199, 202, 206, 209, 213, 216, 219, 223, 226, 229, 232, 235, 238, 241, 243, 245, 247, 249, 250, 252, 253,
+			254, 255, 255, 255, 255, 255, 255, 255, 254, 251, 248, 245, 242, 238, 234, 230, 227, 222, 218, 214, 210, 205, 201, 196, 191, 187, 182, 177, 172, 167,
+			162, 157, 152, 147, 142, 137, 132, 127, 122, 117, 112, 107, 102, 97, 92, 87, 82, 78, 73, 69, 64, 60, 56, 51, 47, 43, 40, 36, 32, 29,
+			26, 23, 20, 17, 14, 12, 9, 7, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 7, 10, 12, 15, 19,
+			23, 27, 31, 36, 41, 46, 52, 58, 65, 72, 79, 86, 94, 103, 112, 117, 122, 127, 132, 137, 142, 147, 152, 157, 162, 167, 172, 177, 182, 187,
+			191, 196, 201, 205, 210, 214, 218, 222, 227, 230, 234, 238, 242, 245, 248, 251, 127, 123, 118, 114, 110, 105, 101, 97, 94, 90, 86, 82, 79, 75,
+			72, 68, 65, 62, 59, 56, 53, 50, 47, 44, 42, 39, 37, 34, 32, 30, 28, 26, 24, 22, 20, 19, 17, 16, 14, 13, 12, 11, 10, 9,
+			8, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 21, 23, 25,
+			27, 30, 32, 34, 37, 40, 42, 45, 48, 51, 55, 58, 61, 65, 68, 72, 76, 80, 84, 88, 93, 97, 101, 105, 109, 113, 117, 122, 126, 130,
+			134, 139, 143, 148, 152, 157, 162, 166, 171, 176, 181, 186, 191, 196, 201, 206, 211, 217, 222, 227, 233, 238, 243, 249, 152, 152, 152, 152, 152, 152,
+			152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+			152, 152, 152, 152, 152, 152, 152, 152, 152, 151, 143, 136, 128, 121, 114, 108, 101, 95, 90, 85, 81, 77, 73, 70, 68, 66, 65, 65, 66, 67,
+			69, 72, 76, 81, 86, 93, 101, 109, 119, 130, 142, 152, 152, 152, 152, 151, 151, 151, 151, 150, 150, 150, 150, 149, 149, 149, 149, 148, 148, 148,
+			148, 147, 147, 147, 147, 146, 146, 146, 146, 145, 145, 145, 145, 144, 144, 144, 144, 143, 143, 143, 143, 142, 142, 142, 142, 141, 141, 141, 141, 140,
+			140, 140, 254, 251, 248, 244, 241, 237, 233, 229, 225, 221, 217, 213, 208, 204, 199, 195, 190, 185, 180, 176, 171, 166, 161, 156, 151, 146, 141, 136,
+			131, 126, 121, 117, 112, 107, 102, 97, 93, 88, 83, 79, 74, 70, 66, 61, 57, 53, 49, 45, 42, 38, 35, 31, 28, 25, 22, 19, 17, 14,
+			12, 10, 8, 6, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 5, 7, 9, 12, 14, 17, 21, 24, 27, 29, 32, 34,
+			37, 39, 42, 45, 47, 49, 52, 54, 57, 59, 61, 63, 65, 67, 69, 71, 73, 74, 76, 77, 78, 80, 80, 81, 82, 82, 82, 83, 82, 82,
+			82, 81, 80, 79, 77, 76, 74, 71, 69, 66, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+			127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+			127, 127, 124, 120, 116, 112, 108, 104, 101, 97, 94, 91, 88, 86, 84, 82, 80, 78, 77, 76, 75, 75, 75, 76, 76, 78, 79, 81, 84, 86,
+			90, 94, 98, 103, 108, 114, 120, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 175, 0, 4, 0, 1, 0, 153, 0, 128, 1, 224, 2,
+			200, 10, 148, 12, 176, 14, 244, 26, 45, 54, 16, 64, 49, 33, 40, 27, 15, 6, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 153, 0,
+			128, 1, 224, 2, 200, 10, 148, 12, 176, 14, 244, 26, 70, 91, 22, 84, 64, 44, 52, 36, 20, 9, 165, 126, 145, 120, 120, 120, 165, 115,
+			130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 153, 0, 128, 1, 224, 2, 200, 10, 148, 12, 176, 14, 244, 26, 60, 91, 22, 84, 64, 44, 52, 36, 20, 9, 165, 126, 145, 120,
+			120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0,
+			240, 250, 209, 182, 1, 0, 153, 0, 128, 1, 224, 2, 200, 10, 148, 12, 176, 14, 244, 26, 0, 91, 22, 84, 64, 44, 52, 36, 20, 9,
+			165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 160, 0, 4, 0, 1, 0, 130, 0, 48, 1, 24, 6, 36, 9, 12, 13, 0, 15, 151, 25, 45, 40,
+			19, 58, 43, 34, 40, 30, 10, 11, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 130, 0, 48, 1, 24, 6, 36, 9, 12, 13, 0, 15,
+			151, 25, 70, 69, 25, 76, 56, 45, 52, 40, 13, 15, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 130, 0, 48, 1, 24, 6, 36, 9,
+			12, 13, 0, 15, 151, 25, 45, 56, 23, 68, 50, 40, 46, 36, 11, 13, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250, 209, 182, 1, 0, 130, 0, 48, 1,
+			24, 6, 36, 9, 12, 13, 0, 15, 151, 25, 0, 69, 25, 76, 56, 45, 52, 40, 13, 15, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0,
+			4, 0, 1, 0, 112, 0, 244, 1, 132, 5, 36, 9, 188, 12, 116, 14, 96, 27, 45, 41, 27, 54, 66, 33, 39, 30, 15, 7, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0,
+			0, 0, 1, 250, 0, 0, 3, 0, 116, 0, 244, 1, 132, 5, 16, 9, 188, 12, 116, 14, 96, 27, 80, 67, 34, 66, 88, 44, 55, 40,
+			21, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 244, 1, 132, 5, 16, 9, 188, 12, 116, 14, 96, 27, 60, 54, 30, 59,
+			79, 39, 49, 36, 19, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 244, 1, 132, 5, 36, 9, 188, 12, 116, 14, 96, 27,
+			0, 32, 24, 47, 58, 25, 36, 26, 13, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0, 180, 0, 160, 2, 180, 5,
+			126, 9, 233, 12, 116, 14, 176, 27, 40, 41, 33, 52, 68, 44, 39, 31, 13, 3, 174, 157, 145, 120, 120, 120, 200, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 180, 0,
+			160, 2, 180, 5, 126, 9, 233, 12, 116, 14, 176, 27, 50, 92, 50, 78, 101, 65, 58, 47, 20, 4, 174, 157, 145, 120, 120, 120, 200, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 180, 0, 160, 2, 180, 5, 126, 9, 233, 12, 116, 14, 176, 27, 50, 69, 44, 68, 88, 57, 50, 41, 17, 4, 174, 157, 145, 120,
+			120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0,
+			240, 250, 209, 182, 1, 0, 174, 0, 104, 2, 63, 6, 195, 9, 22, 13, 128, 14, 204, 27, 60, 47, 36, 57, 68, 50, 43, 34, 14, 4,
+			172, 140, 150, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 160, 0, 189, 1, 132, 7, 102, 10, 127, 13, 159, 14, 16, 28, 30, 49, 34, 59, 55, 59,
+			47, 34, 11, 7, 168, 99, 162, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0, 156, 0, 144, 1, 208, 7, 140, 10, 152, 13, 166, 14, 32, 28, 0, 33,
+			29, 51, 45, 54, 42, 30, 9, 7, 167, 90, 165, 120, 120, 120, 122, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 76, 8, 87, 182, 53, 250, 0, 0, 250, 0, 5, 0, 1, 0, 135, 0, 88, 1, 220, 5, 132, 8,
+			128, 12, 128, 14, 153, 24, 45, 38, 11, 58, 50, 44, 41, 29, 9, 10, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 135, 0, 88, 1,
+			220, 5, 132, 8, 128, 12, 128, 14, 153, 24, 80, 77, 16, 84, 72, 64, 58, 41, 13, 14, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			141, 0, 86, 1, 132, 6, 29, 9, 192, 12, 170, 14, 158, 25, 80, 50, 14, 68, 54, 50, 47, 35, 11, 11, 175, 118, 139, 122, 122, 134,
+			187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250,
+			209, 182, 1, 0, 158, 0, 80, 1, 12, 8, 130, 10, 86, 13, 13, 15, 255, 27, 45, 31, 15, 53, 30, 37, 37, 31, 9, 8, 168, 109,
+			155, 120, 120, 120, 177, 109, 152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 72, 1, 112, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 18, 55, 33, 36, 37, 29,
+			8, 7, 167, 105, 155, 120, 120, 120, 122, 105, 140, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+			0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 0, 0, 6, 0, 1, 0, 224, 0, 8, 3, 216, 4, 236, 9, 8, 12, 116, 14, 224, 27,
+			46, 69, 26, 64, 75, 42, 45, 28, 10, 5, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 224, 0, 8, 3, 216, 4, 236, 9, 8, 12,
+			116, 14, 224, 27, 60, 111, 34, 82, 95, 54, 57, 36, 13, 7, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 208, 2, 16, 4,
+			96, 9, 8, 12, 116, 14, 224, 27, 70, 100, 32, 77, 64, 51, 54, 34, 12, 6, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250, 209, 182, 1, 0, 240, 0,
+			24, 2, 92, 3, 56, 9, 48, 12, 79, 14, 160, 27, 70, 93, 38, 68, 40, 36, 48, 33, 15, 8, 215, 112, 172, 120, 120, 120, 255, 120,
+			187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 0, 1, 200, 1, 52, 3, 16, 9, 8, 12, 41, 14, 96, 27, 30, 84, 36, 76, 59, 21, 35, 23, 15, 8, 205, 105, 157, 120,
+			120, 120, 145, 105, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191,
+			251, 250, 194, 182, 1, 0, 172, 0, 152, 1, 188, 2, 192, 8, 88, 12, 60, 15, 96, 27, 0, 37, 24, 48, 40, 24, 20, 12, 10, 8,
+			200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			76, 8, 87, 182, 53, 250, 0, 0, 217, 0, 6, 0, 1, 0, 104, 0, 144, 1, 132, 8, 160, 10, 72, 13, 60, 15, 32, 27, 42, 45,
+			17, 61, 61, 61, 57, 31, 12, 7, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 3, 0, 104, 0, 144, 1, 132, 8, 160, 10, 72, 13, 60, 15,
+			32, 27, 40, 63, 20, 72, 72, 72, 67, 37, 15, 8, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 117, 0, 192, 1, 9, 8, 113, 10,
+			47, 13, 24, 15, 42, 27, 50, 64, 24, 74, 74, 68, 64, 38, 16, 8, 167, 122, 153, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250, 209, 182, 1, 0, 169, 0, 69, 2,
+			26, 6, 180, 9, 201, 12, 135, 14, 82, 27, 50, 64, 37, 74, 74, 50, 48, 38, 20, 7, 167, 133, 137, 120, 120, 120, 167, 120, 157, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			176, 0, 128, 2, 220, 5, 156, 9, 188, 12, 116, 14, 88, 27, 35, 58, 37, 71, 71, 46, 44, 37, 19, 7, 167, 135, 135, 120, 120, 120,
+			197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250,
+			194, 182, 1, 0, 176, 0, 128, 2, 220, 5, 156, 9, 188, 12, 116, 14, 88, 27, 0, 39, 30, 58, 58, 38, 36, 30, 16, 6, 167, 135,
+			135, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 8,
+			87, 182, 53, 250, 0, 0, 110, 0, 4, 0, 5, 0, 76, 0, 80, 1, 200, 5, 40, 10, 152, 13, 160, 15, 32, 29, 40, 19, 11, 48,
+			18, 14, 36, 21, 9, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 76, 0, 80, 1, 200, 5, 40, 10, 152, 13, 160, 15, 32, 29,
+			35, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 17, 0, 76, 0, 80, 1, 200, 5, 40, 10, 152, 13,
+			160, 15, 32, 29, 35, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 2, 0, 0, 0, 240, 250, 209, 182, 1, 0, 76, 0, 80, 1, 200, 5,
+			40, 10, 152, 13, 160, 15, 32, 29, 0, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 46, 0, 8, 0,
+			1, 0, 200, 0, 127, 2, 126, 5, 127, 9, 197, 12, 114, 14, 244, 26, 12, 59, 40, 72, 72, 40, 28, 20, 16, 12, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 200, 0, 125, 2, 136, 5, 127, 9, 207, 12, 123, 14, 244, 26, 12, 66, 52, 72, 72, 44, 32, 28, 20, 8,
+			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 103, 2, 9, 6, 181, 9, 248, 12, 224, 14, 244, 26, 12, 53, 52, 60, 64, 36,
+			28, 28, 20, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 65, 2, 159, 6, 235, 9, 253, 12, 61, 15, 244, 26, 12, 43,
+			52, 48, 52, 28, 28, 28, 8, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15,
+			159, 27, 48, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11,
+			16, 14, 200, 15, 159, 27, 24, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1,
+			208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 24, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 1, 0,
+			152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 188, 69, 0, 182, 129, 244, 194, 182, 2, 250,
+			0, 0, 0, 0, 9, 0, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 28, 62, 24, 59, 74, 42, 38, 34,
+			10, 6, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 35, 127, 35, 84,
+			105, 60, 54, 49, 14, 8, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27,
+			29, 127, 35, 84, 105, 60, 54, 49, 14, 8, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 250, 0, 160, 2, 76, 4, 246, 10, 188, 12,
+			92, 14, 87, 27, 43, 118, 35, 84, 105, 60, 54, 49, 14, 8, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 204, 0, 93, 2, 252, 4,
+			60, 10, 168, 12, 10, 15, 0, 28, 50, 40, 28, 53, 61, 33, 40, 20, 11, 8, 167, 165, 150, 120, 120, 120, 167, 180, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0,
+			200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 21, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 21, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182,
+			76, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 43, 22, 36, 20, 20, 8, 4, 4, 8, 8,
+			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 188, 69, 0, 182,
+			129, 244, 194, 182, 2, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8,
+			4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 239, 208, 182,
+			96, 1, 0, 182, 29, 32, 0, 0, 152, 250, 227, 191, 0, 0, 6, 0, 1, 0, 228, 0, 224, 2, 180, 5, 196, 9, 68, 12, 216, 14,
+			80, 28, 45, 46, 25, 55, 66, 44, 36, 32, 12, 5, 172, 142, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 228, 0, 224, 2, 180, 5, 196, 9,
+			68, 12, 216, 14, 80, 28, 66, 83, 34, 75, 90, 60, 49, 43, 17, 7, 172, 142, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 222, 0, 224, 2,
+			40, 5, 96, 9, 98, 12, 76, 14, 247, 27, 41, 73, 29, 63, 84, 46, 52, 35, 14, 7, 168, 124, 204, 120, 120, 120, 255, 120, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0,
+			0, 1, 96, 2, 87, 4, 16, 9, 48, 12, 41, 14, 128, 27, 40, 64, 28, 61, 77, 35, 52, 36, 15, 7, 237, 126, 192, 120, 120, 120,
+			141, 126, 147, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250,
+			0, 0, 1, 0, 0, 1, 208, 1, 189, 3, 16, 9, 8, 12, 41, 14, 96, 27, 40, 65, 36, 68, 59, 21, 35, 23, 15, 8, 205, 90,
+			180, 120, 120, 120, 145, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0,
+			0, 0, 0, 250, 0, 0, 1, 0, 172, 0, 200, 1, 152, 3, 192, 8, 168, 12, 60, 15, 96, 27, 0, 30, 25, 50, 42, 16, 18, 13,
+			11, 9, 200, 90, 120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66,
+			0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 34, 0, 8, 0, 1, 0, 200, 0, 196, 2, 190, 6, 114, 9, 178, 13, 224, 13, 244, 26,
+			12, 56, 40, 72, 68, 64, 20, 20, 20, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 201, 2, 197, 6, 100, 9, 129, 13,
+			48, 14, 244, 26, 12, 66, 40, 80, 76, 64, 24, 24, 16, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 200, 2, 192, 6,
+			98, 9, 90, 13, 131, 14, 244, 26, 12, 56, 40, 72, 72, 60, 40, 0, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0,
+			197, 2, 184, 6, 97, 9, 75, 13, 174, 14, 244, 26, 24, 51, 36, 68, 68, 56, 48, 12, 16, 16, 187, 125, 137, 137, 150, 175, 187, 125,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 200, 0, 182, 2, 153, 6, 108, 9, 67, 13, 220, 14, 244, 26, 36, 48, 36, 68, 60, 48, 44, 28, 16, 12, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 24, 32, 36, 32, 44, 36, 32, 20, 16, 8,
+			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 36, 22, 36, 20, 20, 8,
+			4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22,
+			36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 188, 69, 0, 182, 129, 244, 194, 182, 2, 250, 0, 0, 89, 0, 9, 0, 1, 0, 200, 0, 104, 1, 38, 8, 98, 10,
+			18, 13, 10, 15, 244, 26, 12, 55, 30, 57, 48, 42, 39, 24, 12, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 200, 0, 136, 1,
+			230, 7, 48, 10, 17, 13, 30, 15, 244, 26, 12, 111, 36, 92, 64, 64, 56, 36, 20, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			200, 0, 136, 1, 223, 7, 46, 10, 23, 13, 38, 15, 244, 26, 12, 110, 40, 88, 64, 64, 56, 40, 24, 16, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 1, 0, 200, 0, 136, 1, 224, 7, 48, 10, 26, 13, 40, 15, 244, 26, 12, 97, 36, 84, 60, 60, 56, 36, 24, 12, 187, 125,
+			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236,
+			45, 182, 1, 250, 0, 0, 1, 0, 200, 0, 144, 1, 245, 7, 60, 10, 43, 13, 84, 15, 244, 26, 12, 68, 40, 60, 56, 56, 56, 40,
+			20, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0,
+			0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 200, 1, 152, 8, 140, 10, 16, 14, 180, 15, 159, 27, 24, 24, 36, 32,
+			36, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 168, 0, 96, 1, 204, 6, 196, 9, 176, 14, 48, 17, 244, 26,
+			42, 37, 44, 40, 8, 36, 24, 12, 0, 0, 125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 1, 0, 168, 0, 96, 1, 204, 6, 196, 9, 176, 14,
+			68, 17, 244, 26, 30, 37, 44, 40, 8, 36, 24, 12, 0, 0, 125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 188, 69, 0, 182, 129, 244, 194, 182, 2, 250, 0, 0, 1, 0, 168, 0, 96, 1, 204, 6,
+			196, 9, 176, 14, 68, 17, 244, 26, 0, 26, 40, 32, 8, 16, 8, 12, 0, 0, 125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 239, 208, 182, 96, 1, 0, 182, 29, 32, 0, 0, 152, 250, 227, 191, 0, 0, 5, 0,
+			1, 0, 200, 0, 38, 1, 6, 5, 126, 10, 152, 11, 253, 14, 244, 26, 29, 91, 56, 52, 48, 44, 16, 28, 12, 8, 187, 125, 137, 137,
+			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 3, 0, 200, 0, 58, 1, 37, 5, 140, 10, 174, 16, 160, 15, 244, 26, 51, 74, 48, 52, 40, 36, 12, 16, 16, 12,
+			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 42, 1, 244, 4, 57, 10, 85, 10, 215, 16, 244, 26, 98, 59, 48, 40, 32, 20,
+			8, 4, 4, 4, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 104, 52,
+			52, 36, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15,
+			159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 23, 0, 7, 0, 1, 0, 200, 0, 191, 1,
+			229, 5, 86, 9, 209, 12, 236, 14, 244, 26, 23, 73, 36, 72, 76, 40, 40, 28, 24, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			200, 0, 193, 1, 232, 5, 89, 9, 218, 12, 246, 14, 244, 26, 24, 70, 32, 72, 76, 44, 44, 36, 28, 16, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 200, 0, 194, 1, 241, 5, 85, 9, 209, 12, 239, 14, 244, 26, 12, 55, 32, 64, 60, 36, 36, 28, 20, 8, 187, 125,
+			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 200, 1, 119, 6, 146, 9, 16, 13, 86, 15, 244, 26, 12, 38, 36, 48, 40, 32, 32, 24,
+			16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 36, 39, 44, 36,
+			44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27,
+			48, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14,
+			200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 232, 65, 0, 191, 129, 244, 194, 182, 76, 250, 23, 8, 0, 0, 6, 0, 1, 0, 152, 0,
+			56, 2, 132, 3, 44, 11, 192, 13, 120, 15, 159, 27, 45, 62, 29, 67, 58, 32, 29, 22, 14, 6, 172, 142, 135, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			3, 0, 152, 0, 56, 2, 132, 3, 44, 11, 192, 13, 120, 15, 159, 27, 84, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120,
+			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 152, 0, 72, 2, 92, 3, 144, 11, 232, 13, 140, 15, 159, 27, 40, 112, 40, 80, 80, 44, 40, 31, 20, 8,
+			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 55, 32, 36, 32, 44, 36,
+			32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 60, 22,
+			36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15,
+			159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 152, 0, 56, 2,
+			132, 3, 44, 11, 192, 13, 120, 15, 159, 27, 55, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 1, 0,
+			152, 0, 56, 2, 132, 3, 44, 11, 192, 13, 120, 15, 159, 27, 74, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 3, 0, 176, 0, 56, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26, 46, 78, 4, 96, 52, 28, 28, 40, 16, 10, 177, 125,
+			102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 17, 32, 36, 32, 44, 36, 32, 20,
+			16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 16, 22, 36, 20,
+			20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36,
+			23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27,
+			0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 116, 0, 232, 1, 136, 4,
+			236, 9, 168, 12, 156, 14, 96, 27, 45, 48, 27, 63, 60, 34, 37, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0,
+			232, 1, 136, 4, 236, 9, 168, 12, 156, 14, 96, 27, 70, 93, 38, 88, 84, 48, 52, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 116, 0, 232, 1, 136, 4, 236, 9, 168, 12, 156, 14, 96, 27, 60, 75, 34, 79, 75, 43, 46, 39, 20, 7, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 116, 0, 232, 1, 136, 4, 236, 9, 168, 12, 156, 14, 96, 27, 0, 41, 25, 58, 56, 32, 34, 29, 15, 5,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 152, 153, 153, 154, 156, 157, 159, 161, 164, 167, 169, 172, 176, 179, 182, 186, 190, 193, 197, 201, 205, 209,
+			212, 216, 220, 223, 227, 230, 234, 237, 240, 242, 245, 247, 249, 251, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 248, 246,
+			243, 241, 238, 236, 233, 230, 228, 224, 221, 218, 215, 211, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 167, 163, 159, 154, 150, 145, 141, 136,
+			132, 127, 123, 118, 114, 109, 105, 101, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 57, 53, 50, 47, 43, 40, 38, 35, 32, 29, 26, 23,
+			21, 18, 15, 13, 10, 8, 7, 5, 3, 2, 1, 0, 0, 0, 0, 0, 110, 0, 3, 0, 5, 0, 240, 0, 13, 2, 108, 7, 128, 12,
+			156, 14, 23, 17, 224, 23, 60, 24, 54, 8, 8, 16, 6, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 5, 0, 240, 0, 13, 2,
+			108, 7, 128, 12, 156, 14, 23, 17, 224, 23, 50, 24, 54, 8, 8, 16, 6, 8, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			240, 0, 13, 2, 108, 7, 128, 12, 156, 14, 23, 17, 224, 23, 0, 15, 43, 6, 6, 13, 5, 6, 3, 0, 162, 90, 165, 120, 120, 120,
+			132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250,
+			209, 182, 181, 2, 30, 0, 23, 23, 23, 23, 23, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 23, 23, 24, 24, 23, 23,
+			24, 24, 24, 23, 23, 22, 22, 22, 21, 21, 22, 22, 22, 22, 22, 22, 21, 22, 22, 22, 22, 21, 21, 21, 22, 21, 21, 22, 21, 21,
+			21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 20, 20, 19, 19, 19, 19, 19, 19, 19,
+			19, 19, 19, 19, 19, 19, 18, 18, 17, 18, 18, 18, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17,
+			17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 16, 16, 15, 16,
+			17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 17, 17, 17, 16, 17, 17, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+			17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+			18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 18, 19, 18, 18, 18, 18, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18,
+			18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 20, 20, 19, 19, 19, 19, 19, 19, 20, 20, 19, 19,
+			20, 20, 20, 20, 19, 19, 20, 20, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 21, 21, 21, 21, 21, 21,
+			22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 24, 23, 23, 23, 23, 23, 23,
+			23, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 24, 24, 24,
+			24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+			24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21,
+			22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 20, 21, 21, 20, 20, 20, 19, 19, 18, 18, 17, 14, 12,
+			7, 1, 222, 165, 138, 148, 195, 198, 198, 244, 25, 46, 55, 66, 97, 101, 57, 31, 23, 253, 219, 214, 234, 2, 15, 26, 54, 77, 73, 65,
+			79, 75, 55, 28, 2, 254, 245, 236, 249, 23, 34, 48, 51, 57, 73, 62, 47, 36, 29, 22, 3, 249, 248, 1, 11, 20, 50, 73, 76, 44,
+			6, 13, 30, 51, 1, 2, 2, 251, 226, 225, 253, 13, 8, 4, 31, 33, 20, 10, 32, 44, 25, 243, 222, 217, 210, 204, 204, 253, 34, 46,
+			54, 65, 72, 71, 46, 40, 52, 37, 7, 255, 7, 22, 2, 246, 23, 47, 56, 15, 36, 47, 51, 22, 16, 49, 55, 31, 255, 25, 43, 30,
+			1, 22, 43, 40, 6, 19, 42, 28, 242, 222, 9, 8, 241, 226, 12, 37, 31, 35, 46, 81, 83, 51, 45, 74, 60, 27, 17, 41, 65, 55,
+			29, 42, 42, 247, 179, 146, 149, 154, 146, 144, 229, 243, 17, 31, 88, 105, 125, 118, 68, 76, 252, 220, 204, 207, 195, 218, 252, 22, 59, 44,
+			8, 243, 191, 206, 217, 166, 153, 171, 211, 228, 251, 20, 87, 118, 103, 109, 84, 65, 31, 255, 232, 250, 252, 253, 9, 18, 43, 85, 96, 88,
+			59, 31, 48, 48, 245, 191, 205, 221, 31, 35, 18, 39, 43, 19, 237, 232, 244, 248, 215, 195, 212, 205, 218, 236, 20, 42, 32, 19, 12, 21,
+			246, 225, 229, 255, 2, 1, 27, 51, 57, 0, 0, 0, 75, 8, 18, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39,
+			40, 39, 39, 39, 38, 39, 38, 38, 38, 38, 38, 38, 38, 37, 37, 36, 36, 36, 36, 36, 35, 35, 36, 35, 35, 34, 35, 34, 34, 33,
+			33, 33, 33, 33, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 30, 29,
+			29, 29, 28, 29, 28, 28, 28, 28, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 26, 26, 27, 27, 26, 26, 25,
+			25, 25, 26, 26, 26, 26, 26, 26, 25, 25, 26, 26, 26, 26, 25, 26, 26, 26, 26, 25, 24, 24, 25, 25, 25, 25, 26, 25, 26, 26,
+			26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 25, 25, 26, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26,
+			27, 26, 26, 26, 26, 26, 26, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 28, 27, 28, 28, 28, 28, 28, 28, 28,
+			28, 28, 28, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 30, 30, 30, 31, 31, 31, 31, 30, 30,
+			30, 30, 30, 30, 30, 31, 31, 30, 31, 31, 31, 31, 31, 31, 32, 32, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34,
+			34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 37, 37, 36, 36, 36, 37, 37, 37, 37, 37, 38, 37, 37, 37, 38, 38, 38,
+			38, 38, 38, 39, 39, 38, 39, 40, 40, 39, 39, 39, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 42, 42,
+			42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 44, 44, 45, 45, 45, 45,
+			45, 46, 45, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44,
+			44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, 42, 42, 42, 42,
+			42, 42, 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, 42, 42, 42, 41, 42, 42, 42,
+			42, 42, 42, 42, 41, 42, 41, 41, 41, 41, 41, 41, 41, 42, 42, 41, 41, 40, 40, 40, 40, 39, 39, 39, 39, 39, 38, 38, 38, 38,
+			38, 38, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 37, 37, 38, 37, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35,
+			35, 35, 36, 35, 34, 32, 32, 33, 34, 34, 34, 33, 32, 31, 32, 33, 32, 32, 31, 31, 30, 30, 31, 31, 31, 31, 30, 30, 30, 31,
+			31, 31, 32, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 28, 29, 31, 33, 31, 26, 25, 27, 30, 31, 31, 29, 27, 27, 28, 28, 29,
+			31, 31, 28, 26, 27, 26, 26, 18, 238, 195, 224, 70, 120, 72, 11, 245, 235, 247, 42, 84, 72, 32, 5, 251, 0, 31, 65, 61, 27, 7,
+			10, 20, 34, 48, 49, 33, 16, 12, 20, 33, 45, 48, 35, 16, 8, 19, 36, 44, 42, 32, 20, 14, 19, 33, 44, 43, 31, 18, 16, 23,
+			33, 38, 36, 28, 22, 21, 24, 28, 29, 30, 32, 33, 29, 23, 23, 29, 32, 31, 32, 32, 27, 22, 23, 28, 30, 32, 31, 22, 21, 28,
+			33, 31, 30, 30, 25, 21, 22, 31, 38, 33, 21, 20, 29, 32, 28, 29, 32, 26, 21, 29, 37, 33, 27, 28, 28, 27, 32, 37, 30, 23,
+			28, 35, 32, 28, 30, 36, 38, 32, 21, 25, 42, 41, 29, 29, 34, 29, 29, 39, 43, 34, 26, 26, 29, 33, 40, 42, 38, 31, 29, 31,
+			32, 33, 41, 47, 40, 27, 23, 28, 38, 47, 46, 31, 24, 38, 45, 32, 30, 45, 46, 34, 33, 39, 36, 35, 41, 42, 37, 34, 35, 34,
+			35, 43, 46, 37, 33, 40, 42, 34, 37, 46, 40, 32, 43, 48, 33, 29, 45, 52, 42, 33, 32, 38, 44, 44, 46, 49, 41, 28, 33, 52,
+			57, 40, 25, 36, 53, 52, 36, 32, 46, 54, 44, 37, 46, 45, 33, 42, 58, 52, 37, 36, 38, 38, 48, 58, 48, 32, 31, 42, 50, 51,
+			42, 34, 43, 54, 46, 36, 44, 45, 34, 42, 60, 51, 31, 43, 58, 37, 22, 47, 62, 47, 42, 45, 33, 32, 54, 59, 39, 31, 36, 45,
+			55, 46, 31, 31, 43, 53, 58, 51, 33, 22, 28, 44, 61, 59, 39, 30, 34, 34, 42, 54, 47, 33, 36, 44, 34, 32, 61, 70, 25, 0,
+			32, 61, 64, 66, 45, 254, 255, 58, 82, 50, 35, 40, 26, 21, 48, 60, 45, 46, 41, 13, 25, 74, 70, 25, 23, 42, 38, 36, 49, 52,
+			46, 45, 35, 21, 38, 63, 55, 37, 30, 28, 36, 47, 47, 50, 50, 33, 15, 30, 60, 58, 34, 34, 44, 29, 18, 48, 77, 55, 19, 17,
+			30, 29, 47, 73, 56, 21, 16, 28, 39, 48, 47, 35, 33, 42, 42, 30, 26, 33, 38, 37, 43, 52, 43, 21, 14, 34, 46, 37, 34, 44,
+			41, 23, 17, 24, 36, 52, 59, 39, 2, 254, 30, 46, 46, 62, 53, 3, 243, 29, 51, 30, 33, 58, 41, 7, 12, 33, 38, 42, 42, 19,
+			13, 44, 46, 9, 6, 45, 55, 26, 12, 31, 33, 9, 23, 63, 51, 255, 246, 30, 54, 41, 33, 35, 16, 255, 13, 37, 49, 52, 40, 8,
+			241, 8, 57, 70, 41, 11, 0, 255, 22, 66, 72, 29, 255, 3, 20, 35, 44, 41, 25, 15, 26, 34, 21, 19, 39, 51, 30, 0, 8, 44,
+			48, 20, 13, 29, 29, 25, 42, 48, 22, 4, 19, 35, 32, 36, 48, 39, 17, 5, 13, 32, 48, 48, 27, 16, 30, 32, 13, 12, 39, 54,
+			38, 22, 22, 21, 16, 28, 36, 31, 35, 46, 42, 13, 240, 2, 60, 89, 52, 253, 243, 4, 31, 71, 79, 22, 234, 9, 45, 33, 37, 63,
+			36, 243, 2, 54, 58, 29, 22, 22, 16, 35, 62, 42, 7, 6, 27, 48, 50, 33, 22, 26, 24, 20, 31, 53, 48, 18, 10, 32, 45, 40,
+			25, 17, 40, 57, 33, 8, 16, 41, 53, 32, 21, 45, 48, 17, 255, 22, 69, 78, 34, 254, 14, 49, 39, 14, 50, 73, 18, 245, 43, 83,
+			43, 253, 7, 50, 66, 52, 37, 21, 3, 17, 61, 75, 52, 26, 6, 4, 37, 71, 63, 35, 27, 21, 13, 40, 74, 58, 26, 20, 24, 44,
+			62, 47, 26, 27, 30, 43, 60, 59, 35, 2, 9, 48, 72, 69, 48, 23, 17, 24, 34, 59, 69, 33, 17, 60, 73, 14, 246, 43, 78, 66,
+			51, 30, 10, 23, 54, 64, 49, 38, 38, 32, 35, 52, 47, 30, 40, 59, 44, 21, 37, 54, 38, 36, 57, 44, 17, 44, 72, 37, 9, 42,
+			65, 45, 37, 44, 36, 29, 45, 55, 35, 25, 51, 61, 39, 27, 35, 40, 48, 60, 46, 19, 31, 57, 50, 38, 46, 46, 21, 21, 57, 72,
+			48, 26, 11, 17, 69, 88, 32, 252, 31, 60, 39, 34, 59, 56, 23, 15, 37, 42, 34, 55, 74, 42, 254, 9, 57, 67, 49, 36, 31, 28,
+			28, 43, 60, 56, 39, 23, 10, 25, 62, 74, 48, 22, 20, 27, 33, 48, 64, 58, 33, 14, 18, 40, 57, 57, 55, 34, 0, 9, 59, 74,
+			54, 37, 15, 254, 25, 74, 71, 26, 17, 49, 42, 4, 24, 73, 62, 23, 22, 34, 25, 26, 62, 69, 18, 0, 41, 57, 28, 23, 48, 43,
+			17, 28, 46, 33, 27, 36, 28, 29, 50, 45, 16, 15, 44, 53, 31, 20, 33, 38, 34, 40, 33, 11, 20, 49, 49, 29, 19, 26, 41, 42,
+			15, 0, 31, 58, 47, 31, 24, 10, 8, 36, 55, 41, 27, 21, 10, 9, 34, 57, 43, 18, 27, 36, 10, 2, 39, 51, 29, 28, 30, 10,
+			16, 46, 37, 5, 14, 43, 45, 26, 15, 23, 29, 25, 28, 38, 39, 27, 21, 24, 22, 15, 26, 46, 38, 15, 15, 28, 34, 29, 24, 21,
+			27, 36, 27, 16, 28, 40, 28, 11, 22, 48, 39, 5, 9, 40, 44, 30, 28, 27, 14, 12, 33, 54, 46, 21, 5, 8, 30, 50, 45, 27,
+			16, 18, 26, 37, 42, 31, 14, 18, 32, 24, 21, 48, 57, 27, 0, 4, 27, 50, 52, 26, 9, 23, 38, 27, 19, 30, 38, 35, 34, 28,
+			14, 13, 29, 45, 44, 31, 22, 20, 22, 26, 30, 35, 35, 25, 21, 30, 37, 33, 29, 27, 19, 23, 43, 46, 25, 15, 22, 24, 32, 48,
+			44, 18, 7, 25, 41, 33, 25, 34, 40, 26, 19, 31, 34, 26, 34, 41, 28, 18, 27, 36, 29, 29, 44, 42, 19, 14, 35, 43, 27, 23,
+			43, 45, 20, 16, 36, 45, 41, 42, 31, 15, 27, 49, 44, 27, 28, 37, 33, 34, 44, 37, 20, 26, 45, 47, 34, 31, 36, 37, 32, 33,
+			43, 46, 36, 31, 33, 32, 32, 42, 50, 43, 30, 27, 36, 46, 46, 37, 33, 32, 32, 43, 58, 53, 31, 22, 30, 41, 52, 56, 44, 31,
+			28, 30, 37, 53, 59, 42, 23, 27, 42, 51, 50, 42, 29, 26, 42, 58, 57, 42, 27, 24, 35, 50, 55, 47, 34, 32, 38, 41, 43, 47,
+			46, 37, 31, 36, 42, 43, 42, 47, 46, 33, 27, 41, 56, 49, 35, 34, 37, 38, 44, 51, 46, 37, 36, 37, 37, 40, 46, 46, 39, 30,
+			31, 41, 48, 45, 41, 38, 32, 31, 39, 46, 44, 41, 41, 38, 34, 35, 40, 43, 44, 44, 38, 31, 33, 41, 42, 40, 36, 39, 46, 42,
+			28, 31, 43, 42, 37, 42, 43, 36, 37, 41, 33, 29, 40, 44, 35, 34, 41, 39, 32, 31, 37, 42, 42, 36, 32, 33, 33, 34, 41, 45,
+			38, 30, 33, 37, 35, 34, 38, 40, 37, 33, 34, 38, 38, 37, 37, 36, 34, 34, 36, 36, 36, 35, 32, 30, 37, 47, 41, 26, 24, 33,
+			38, 41, 43, 36, 25, 27, 36, 40, 42, 39, 31, 25, 29, 35, 36, 38, 39, 33, 27, 31, 34, 33, 35, 36, 31, 28, 32, 34, 33, 36,
+			36, 30, 27, 33, 35, 32, 33, 32, 30, 29, 32, 34, 34, 34, 29, 23, 25, 32, 36, 34, 29, 27, 28, 27, 27, 31, 35, 31, 25, 22,
+			23, 26, 31, 33, 31, 29, 27, 22, 22, 29, 34, 33, 29, 25, 21, 25, 32, 34, 29, 27, 27, 26, 25, 25, 27, 29, 30, 28, 27, 26,
+			24, 23, 24, 28, 29, 27, 25, 24, 26, 28, 30, 29, 26, 25, 26, 29, 28, 24, 22, 27, 31, 30, 29, 29, 25, 22, 25, 29, 28, 29,
+			30, 27, 23, 24, 28, 29, 30, 30, 27, 23, 24, 27, 31, 33, 33, 27, 24, 26, 30, 31, 31, 32, 28, 24, 26, 31, 31, 30, 30, 28,
+			25, 27, 32, 31, 26, 26, 29, 29, 30, 32, 30, 27, 28, 30, 30, 29, 30, 32, 32, 29, 27, 28, 31, 34, 33, 28, 27, 28, 29, 29,
+			33, 34, 29, 27, 30, 31, 31, 32, 32, 29, 28, 30, 31, 32, 33, 31, 28, 28, 31, 32, 32, 32, 30, 27, 29, 33, 33, 32, 31, 31,
+			31, 32, 33, 32, 32, 35, 36, 33, 33, 34, 35, 33, 33, 35, 36, 34, 33, 33, 34, 34, 34, 34, 34, 33, 33, 33, 33, 34, 35, 35,
+			35, 34, 33, 33, 34, 35, 35, 35, 34, 35, 37, 37, 36, 35, 35, 36, 37, 39, 39, 38, 36, 36, 36, 38, 39, 37, 37, 38, 38, 37,
+			37, 38, 38, 38, 38, 38, 39, 38, 37, 38, 39, 38, 37, 38, 38, 37, 37, 38, 38, 38, 37, 37, 38, 39, 39, 38, 38, 39, 40, 39,
+			39, 39, 39, 39, 38, 39, 41, 41, 39, 37, 39, 40, 40, 40, 41, 40, 38, 39, 40, 40, 41, 42, 40, 38, 39, 39, 41, 41, 39, 38,
+			38, 40, 42, 40, 39, 39, 40, 40, 40, 0, 59, 11, 50, 0, 7, 251, 250, 9, 253, 8, 246, 253, 17, 225, 2, 33, 228, 2, 29, 239,
+			238, 19, 3, 255, 0, 249, 12, 254, 3, 7, 252, 250, 241, 17, 31, 231, 239, 24, 248, 234, 10, 12, 16, 253, 242, 4, 252, 6, 11, 238,
+			253, 254, 30, 19, 213, 253, 23, 235, 254, 20, 252, 17, 3, 232, 15, 245, 237, 33, 254, 225, 15, 25, 255, 246, 4, 252, 234, 13, 11, 235,
+			10, 27, 253, 242, 14, 243, 239, 14, 241, 22, 48, 245, 211, 236, 6, 8, 18, 11, 248, 234, 0, 18, 244, 251, 21, 245, 236, 5, 4, 24,
+			4, 229, 254, 17, 5, 244, 4, 19, 240, 246, 21, 10, 240, 2, 2, 229, 19, 14, 5, 7, 224, 244, 23, 9, 240, 252, 34, 253, 206, 8,
+			50, 235, 0, 25, 229, 4, 32, 237, 243, 12, 6, 16, 239, 236, 27, 254, 4, 254, 244, 28, 247, 253, 21, 244, 241, 9, 248, 13, 20, 236,
+			13, 10, 232, 244, 25, 4, 217, 12, 38, 254, 223, 224, 0, 43, 40, 243, 222, 238, 15, 27, 236, 239, 32, 20, 214, 225, 21, 29, 247, 241,
+			0, 11, 31, 248, 220, 7, 0, 21, 22, 217, 203, 39, 56, 222, 237, 20, 253, 4, 9, 238, 227, 9, 23, 11, 0, 242, 242, 242, 53, 4,
+			207, 45, 255, 228, 27, 255, 220, 12, 45, 250, 249, 244, 235, 8, 19, 8, 253, 18, 241, 212, 249, 40, 39, 244, 225, 248, 23, 12, 255, 8,
+			217, 0, 42, 251, 233, 22, 29, 215, 234, 19, 6, 253, 0, 19, 250, 238, 3, 3, 24, 35, 221, 209, 36, 21, 237, 10, 8, 250, 228, 6,
+			29, 10, 243, 227, 247, 0, 5, 29, 18, 216, 243, 46, 231, 252, 22, 244, 254, 249, 249, 255, 1, 250, 7, 14, 252, 29, 246, 189, 21, 33,
+			9, 13, 233, 246, 0, 243, 12, 30, 249, 221, 40, 20, 210, 252, 255, 1, 46, 25, 220, 237, 15, 13, 31, 233, 209, 30, 44, 219, 230, 29,
+			238, 253, 35, 255, 236, 251, 7, 253, 5, 254, 19, 48, 197, 189, 50, 11, 34, 29, 191, 4, 34, 236, 247, 242, 246, 35, 43, 231, 216, 7,
+			9, 37, 3, 190, 247, 64, 16, 216, 5, 243, 241, 59, 237, 197, 19, 56, 18, 207, 223, 253, 37, 45, 215, 206, 32, 51, 232, 224, 13, 26,
+			37, 229, 222, 251, 22, 43, 226, 219, 28, 251, 247, 13, 2, 0, 253, 3, 251, 240, 31, 25, 226, 232, 2, 25, 37, 254, 217, 234, 26, 21,
+			246, 232, 245, 18, 31, 247, 216, 15, 20, 231, 226, 16, 55, 250, 218, 12, 57, 216, 206, 81, 255, 199, 44, 51, 221, 198, 6, 248, 27, 58,
+			225, 215, 243, 27, 48, 239, 188, 47, 52, 186, 242, 45, 6, 0, 237, 203, 5, 85, 241, 190, 21, 15, 235, 49, 33, 167, 255, 98, 212, 241,
+			46, 194, 0, 48, 236, 9, 2, 222, 23, 35, 0, 232, 0, 25, 249, 9, 4, 227, 4, 37, 46, 240, 171, 233, 46, 11, 225, 19, 18, 228,
+			231, 248, 33, 28, 215, 241, 35, 241, 6, 69, 223, 151, 32, 72, 199, 19, 69, 188, 199, 35, 46, 243, 226, 34, 3, 200, 246, 46, 34, 255,
+			249, 231, 231, 41, 27, 211, 220, 24, 38, 24, 243, 0, 254, 205, 243, 56, 1, 254, 22, 226, 244, 12, 244, 247, 26, 54, 239, 222, 241, 3,
+			46, 28, 247, 204, 236, 32, 14, 245, 238, 30, 23, 252, 245, 210, 0, 34, 227, 244, 74, 7, 237, 4, 202, 243, 44, 36, 245, 249, 9, 241,
+			238, 232, 59, 55, 157, 197, 93, 60, 204, 250, 23, 177, 244, 82, 8, 1, 6, 199, 5, 35, 2, 6, 197, 234, 54, 9, 18, 6, 216, 229,
+			13, 25, 27, 255, 181, 252, 73, 253, 236, 236, 246, 51, 33, 234, 224, 10, 11, 248, 5, 0, 235, 24, 21, 234, 18, 0, 224, 31, 31, 199,
+			236, 46, 252, 234, 239, 5, 48, 246, 216, 24, 26, 226, 217, 249, 52, 52, 3, 241, 206, 207, 23, 39, 12, 255, 31, 247, 194, 22, 51, 0,
+			210, 201, 55, 90, 228, 187, 249, 14, 16, 22, 254, 246, 249, 226, 13, 31, 243, 253, 34, 0, 238, 7, 0, 241, 246, 238, 39, 56, 232, 210,
+			227, 253, 33, 28, 228, 214, 55, 56, 208, 213, 15, 252, 217, 222, 26, 103, 29, 197, 232, 251, 228, 0, 233, 29, 96, 245, 215, 0, 0, 245,
+			242, 34, 31, 24, 25, 202, 180, 254, 8, 35, 65, 216, 219, 48, 53, 252, 159, 205, 49, 81, 27, 209, 182, 224, 78, 31, 231, 4, 255, 30,
+			238, 200, 16, 2, 238, 10, 250, 30, 67, 220, 165, 4, 64, 38, 254, 214, 215, 33, 50, 254, 234, 204, 7, 61, 39, 242, 214, 16, 246, 218,
+			11, 20, 32, 30, 247, 179, 228, 97, 35, 196, 212, 16, 34, 3, 5, 5, 215, 225, 4, 16, 52, 27, 214, 245, 247, 239, 17, 24, 1, 239,
+			240, 34, 50, 233, 176, 239, 69, 48, 210, 203, 250, 54, 82, 209, 200, 41, 240, 243, 21, 242, 241, 24, 24, 2, 244, 4, 255, 238, 10, 7,
+			246, 23, 1, 250, 24, 237, 227, 19, 7, 9, 9, 233, 250, 0, 254, 23, 251, 4, 245, 208, 32, 60, 251, 198, 199, 40, 91, 11, 180, 213,
+			48, 22, 233, 240, 0, 249, 255, 36, 12, 243, 211, 226, 46, 48, 241, 243, 239, 207, 225, 38, 81, 23, 213, 239, 17, 39, 7, 220, 225, 249,
+			13, 0, 246, 33, 36, 248, 243, 0, 247, 248, 2, 20, 24, 4, 238, 229, 2, 240, 223, 28, 88, 27, 202, 211, 244, 6, 217, 13, 77, 223,
+			220, 43, 242, 231, 38, 1, 24, 29, 175, 213, 33, 2, 21, 28, 10, 241, 250, 4, 246, 236, 11, 31, 253, 25, 25, 207, 248, 14, 8, 32,
+			246, 202, 237, 8, 57, 34, 227, 199, 243, 12, 244, 42, 48, 242, 222, 221, 43, 34, 197, 200, 13, 72, 22, 244, 222, 189, 13, 34, 1, 37,
+			38, 194, 194, 47, 19, 250, 0, 179, 4, 125, 15, 171, 248, 3, 219, 50, 64, 199, 213, 77, 44, 244, 0, 168, 224, 91, 4, 222, 32, 40,
+			239, 248, 7, 249, 6, 10, 14, 16, 250, 5, 238, 224, 37, 25, 247, 246, 192, 230, 99, 69, 186, 201, 34, 13, 240, 242, 6, 20, 40, 8,
+			202, 253, 252, 223, 30, 28, 243, 254, 248, 4, 20, 230, 237, 249, 3, 36, 241, 193, 242, 36, 30, 1, 236, 244, 210, 226, 85, 78, 227, 203,
+			203, 250, 47, 5, 1, 51, 35, 246, 234, 194, 208, 30, 54, 42, 15, 211, 226, 21, 19, 246, 236, 6, 46, 18, 235, 206, 216, 27, 28, 43,
+			13, 195, 251, 12, 18, 23, 236, 5, 30, 230, 236, 18, 221, 231, 59, 50, 233, 200, 14, 62, 239, 220, 41, 240, 240, 39, 14, 222, 244, 48,
+			41, 244, 223, 242, 251, 216, 246, 62, 31, 224, 245, 25, 7, 220, 232, 4, 5, 19, 7, 231, 11, 10, 241, 1, 227, 237, 42, 44, 0, 230,
+			244, 239, 238, 30, 34, 19, 234, 196, 215, 23, 37, 14, 3, 214, 0, 36, 255, 192, 185, 50, 91, 43, 253, 218, 226, 244, 2, 250, 243, 41,
+			28, 243, 10, 9, 226, 245, 242, 246, 63, 33, 239, 21, 212, 202, 11, 37, 53, 32, 252, 229, 208, 243, 6, 252, 37, 59, 21, 233, 226, 211,
+			228, 33, 38, 247, 229, 7, 4, 243, 221, 224, 83, 74, 210, 198, 202, 5, 62, 27, 245, 232, 17, 3, 210, 25, 76, 241, 185, 29, 80, 236,
+			201, 228, 20, 78, 39, 240, 185, 200, 56, 76, 13, 237, 223, 200, 246, 48, 32, 251, 249, 13, 39, 14, 199, 171, 10, 79, 44, 241, 166, 181,
+			37, 66, 33, 242, 221, 233, 240, 252, 39, 20, 216, 2, 249, 2, 26, 194, 221, 52, 40, 18, 7, 243, 219, 227, 14, 26, 48, 21, 206, 241,
+			13, 217, 254, 43, 3, 0, 30, 241, 221, 5, 12, 20, 49, 28, 202, 178, 227, 13, 41, 51, 29, 0, 216, 208, 251, 34, 1, 237, 3, 2,
+			5, 4, 230, 240, 7, 42, 31, 246, 207, 213, 19, 6, 27, 82, 243, 194, 220, 10, 42, 32, 230, 208, 63, 60, 192, 239, 16, 251, 34, 47,
+			2, 229, 13, 4, 199, 3, 62, 47, 248, 190, 197, 253, 17, 37, 55, 231, 151, 37, 71, 194, 214, 42, 23, 0, 252, 252, 2, 10, 7, 9,
+			3, 242, 251, 241, 223, 248, 36, 61, 255, 187, 203, 246, 12, 22, 39, 0, 236, 253, 232, 11, 52, 8, 202, 199, 6, 68, 42, 241, 236, 5,
+			255, 0, 15, 249, 0, 243, 252, 60, 38, 215, 184, 231, 37, 66, 34, 229, 237, 17, 11, 244, 7, 16, 254, 253, 25, 0, 212, 251, 2, 222,
+			249, 30, 40, 1, 232, 240, 7, 1, 236, 242, 255, 5, 17, 4, 248, 0, 238, 250, 252, 244, 29, 24, 243, 212, 245, 22, 222, 6, 56, 245,
+			215, 3, 0, 1, 20, 240, 8, 14, 222, 42, 72, 223, 213, 234, 15, 33, 21, 11, 234, 12, 25, 247, 237, 6, 252, 5, 20, 237, 251, 18,
+			255, 17, 12, 4, 251, 214, 239, 21, 12, 41, 11, 180, 214, 52, 31, 238, 248, 2, 8, 29, 247, 216, 2, 40, 248, 240, 7, 243, 22, 18,
+			233, 246, 245, 238, 34, 52, 249, 252, 253, 221, 241, 1, 26, 35, 229, 218, 10, 41, 22, 235, 1, 14, 237, 233, 252, 252, 0, 18, 22, 24,
+			5, 246, 245, 245, 219, 254, 53, 14, 249, 11, 1, 225, 245, 255, 2, 20, 37, 255, 214, 224, 16, 22, 249, 234, 224, 253, 17, 250, 3, 249,
+			227, 233, 255, 54, 44, 225, 209, 209, 232, 60, 95, 239, 172, 222, 31, 27, 252, 12, 0, 252, 32, 37, 35, 224, 180, 246, 55, 47, 11, 231,
+			213, 2, 28, 3, 37, 23, 231, 192, 232, 41, 17, 242, 247, 253, 25, 39, 236, 212, 244, 18, 45, 244, 245, 1, 221, 8, 28, 252, 253, 13,
+			230, 216, 14, 23, 35, 33, 243, 5, 11, 245, 230, 241, 29, 24, 0, 12, 16, 0, 11, 8, 254, 2, 246, 234, 243, 250, 33, 44, 0, 217,
+			214, 238, 15, 50, 11, 215, 211, 6, 28, 254, 2, 234, 219, 23, 24, 37, 25, 218, 243, 255, 233, 246, 25, 13, 251, 28, 11, 14, 33, 223,
+			174, 0, 60, 0, 240, 248, 232, 254, 18, 21, 29, 26, 208, 187, 13, 11, 50, 48, 215, 223, 252, 251, 253, 41, 64, 26, 220, 200, 1, 238,
+			234, 30, 48, 59, 242, 206, 223, 189, 255, 83, 50, 249, 218, 197, 227, 29, 23, 0, 250, 236, 236, 9, 36, 231, 203, 21, 33, 251, 249, 219,
+			221, 243, 51, 33, 243, 240, 223, 21, 15, 0, 51, 252, 191, 17, 68, 32, 242, 238, 232, 225, 32, 62, 6, 206, 1, 29, 233, 221, 248, 20,
+			32, 57, 46, 227, 202, 215, 235, 25, 59, 47, 244, 203, 0, 33, 4, 4, 8, 235, 208, 231, 20, 36, 19, 253, 1, 241, 228, 0, 21, 12,
+			246, 248, 0, 47, 10, 214, 229, 215, 12, 55, 27, 243, 200, 236, 32, 52, 47, 5, 213, 212, 227, 252, 37, 69, 31, 246, 225, 231, 6, 32,
+			49, 205, 190, 21, 238, 210, 243, 5, 12, 27, 55, 253, 169, 195, 239, 19, 11, 45, 63, 219, 192, 4, 255, 246, 27, 11, 249, 38, 52, 38,
+			14, 237, 235, 234, 11, 64, 36, 8, 255, 237, 251, 13, 244, 229, 246, 31, 49, 35, 230, 178, 201, 240, 16, 34, 37, 246, 201, 233, 212, 212,
+			35, 60, 39, 252, 186, 178, 253, 41, 45, 67, 12, 228, 226, 195, 211, 52, 104, 46, 225, 238, 244, 248, 21, 237, 232, 59, 69, 15, 191, 169,
+			251, 50, 67, 33, 253, 232, 212, 236, 245, 254, 26, 14, 252, 242, 245, 221, 193, 246, 31, 60, 77, 16, 170, 160, 240, 57, 64, 19, 225, 220,
+			219, 7, 44, 238, 251, 53, 3, 226, 5, 244, 234, 11, 35, 38, 0, 251, 3, 251, 11, 17, 8, 251, 241, 240, 8, 20, 251, 0, 238, 248,
+			43, 0, 234, 4, 243, 251, 29, 250, 242, 52, 44, 229, 207, 250, 11, 7, 49, 30, 232, 8, 251, 215, 211, 228, 31, 46, 39, 253, 196, 185,
+			253, 51, 4, 253, 14, 240, 242, 3, 253, 236, 249, 16, 22, 22, 4, 254, 0, 252, 248, 238, 249, 243, 252, 27, 8, 222, 235, 22, 12, 242,
+			229, 232, 14, 44, 26, 246, 240, 254, 13, 7, 236, 249, 38, 20, 10, 33, 220, 198, 7, 24, 31, 10, 251, 2, 227, 236, 24, 44, 1, 215,
+			250, 5, 34, 28, 237, 1, 48, 44, 213, 167, 212, 2, 48, 70, 28, 219, 192, 214, 42, 68, 236, 236, 9, 252, 237, 242, 11, 29, 14, 234,
+			213, 219, 232, 20, 57, 32, 246, 194, 196, 239, 26, 53, 35, 28, 246, 228, 241, 3, 50, 33, 19, 34, 14, 234, 218, 245, 9, 26, 44, 16,
+			239, 240, 214, 228, 34, 41, 8, 244, 214, 222, 4, 255, 16, 36, 248, 211, 204, 249, 22, 19, 14, 237, 224, 235, 248, 233, 241, 41, 84, 35,
+			204, 213, 15, 2, 236, 5, 30, 37, 246, 193, 220, 23, 65, 66, 8, 223, 224, 210, 205, 23, 68, 43, 20, 235, 230, 240, 3, 18, 4, 21,
+			30, 254, 248, 10, 3, 253, 10, 23, 26, 245, 240, 4, 217, 207, 6, 28, 7, 253, 226, 197, 1, 41, 13, 248, 212, 224, 242, 247, 25, 45,
+			39, 226, 225, 18, 19, 25, 9, 220, 7, 67, 43, 243, 193, 197, 14, 94, 77, 8, 227, 216, 252, 14, 2, 8, 28, 5, 170, 178, 20, 57,
+			32, 204, 164, 218, 37, 60, 34, 230, 217, 1, 244, 240, 16, 16, 0, 237, 1, 35, 252, 232, 228, 227, 40, 50, 9, 221, 200, 7, 84, 73,
+			26, 244, 174, 182, 39, 81, 49, 17, 194, 183, 0, 28, 45, 27, 227, 230, 2, 12, 251, 244, 248, 218, 10, 25, 3, 22, 238, 233, 246, 233,
+			36, 60, 13, 247, 2, 12, 0, 21, 7, 224, 18, 58, 36, 243, 191, 207, 238, 18, 32, 28, 33, 3, 238, 251, 14, 251, 217, 239, 3, 3,
+			33, 6, 218, 227, 251, 36, 40, 245, 207, 194, 218, 25, 54, 10, 233, 3, 249, 231, 4, 35, 12, 240, 238, 4, 15, 244, 239, 16, 9, 18,
+			15, 224, 251, 18, 12, 247, 1, 17, 253, 254, 254, 7, 245, 4, 52, 7, 202, 226, 6, 14, 17, 22, 242, 214, 3, 33, 21, 19, 228, 199,
+			252, 38, 65, 44, 214, 187, 232, 11, 37, 61, 22, 197, 179, 227, 17, 34, 31, 12, 244, 1, 245, 222, 250, 252, 8, 28, 14, 248, 234, 235,
+			225, 252, 40, 43, 10, 227, 229, 1, 26, 41, 23, 233, 203, 222, 248, 47, 74, 16, 237, 216, 235, 29, 27, 251, 2, 250, 220, 236, 6, 0,
+			9, 49, 56, 15, 218, 197, 210, 249, 46, 46, 16, 251, 225, 225, 2, 13, 11, 32, 253, 211, 247, 12, 240, 251, 14, 243, 13, 49, 12, 218,
+			226, 243, 2, 30, 49, 22, 249, 232, 228, 1, 18, 5, 248, 255, 7, 12, 16, 16, 246, 230, 3, 23, 19, 0, 235, 233, 14, 49, 17, 254,
+			235, 205, 249, 12, 35, 16, 215, 218, 3, 30, 245, 218, 223, 222, 248, 31, 41, 17, 237, 227, 243, 248, 249, 7, 11, 16, 36, 9, 244, 8,
+			8, 247, 255, 39, 36, 240, 220, 245, 20, 41, 17, 243, 254, 13, 15, 13, 250, 230, 238, 252, 11, 15, 9, 1, 11, 22, 253, 223, 232, 8,
+			0, 255, 6, 248, 230, 236, 0, 1, 13, 19, 255, 242, 227, 230, 3, 18, 250, 241, 238, 241, 9, 21, 23, 16, 13, 250, 222, 231, 4, 31,
+			37, 21, 254, 244, 227, 230, 2, 22, 32, 23, 253, 228, 216, 248, 37, 56, 29, 251, 214, 209, 243, 13, 39, 42, 247, 236, 239, 240, 18, 246,
+			254, 31, 246, 235, 3, 245, 250, 10, 13, 22, 20, 11, 239, 228, 227, 4, 17, 6, 17, 16, 0, 236, 12, 33, 250, 254, 247, 241, 14, 249,
+			249, 12, 4, 2, 6, 243, 228, 254, 16, 10, 12, 14, 4, 246, 245, 252, 245, 6, 19, 3, 15, 5, 248, 250, 247, 2, 255, 0, 12, 1,
+			240, 228, 247, 20, 30, 4, 231, 235, 251, 253, 231, 240, 35, 34, 254, 254, 248, 226, 240, 248, 14, 31, 4, 245, 254, 251, 9, 17, 12, 22,
+			4, 227, 222, 5, 29, 16, 245, 239, 24, 8, 246, 14, 13, 244, 228, 238, 5, 29, 18, 5, 249, 229, 250, 3, 15, 15, 247, 241, 237, 248,
+			18, 2, 3, 10, 253, 7, 2, 232, 237, 0, 116, 8, 28, 0, 1, 1, 1, 0, 1, 3, 2, 255, 252, 252, 255, 3, 7, 8, 5, 0,
+			253, 253, 255, 0, 3, 3, 2, 0, 254, 1, 4, 4, 2, 0, 255, 0, 0, 0, 0, 0, 3, 5, 4, 0, 253, 249, 250, 253, 0, 0,
+			254, 253, 254, 1, 8, 10, 5, 255, 244, 238, 239, 246, 245, 231, 228, 234, 249, 20, 41, 42, 24, 1, 239, 232, 245, 9, 24, 27, 17, 1,
+			247, 247, 254, 5, 9, 8, 5, 2, 1, 1, 1, 3, 7, 8, 5, 0, 252, 250, 250, 253, 1, 6, 8, 6, 4, 0, 255, 255, 0, 0,
+			0, 254, 253, 254, 255, 0, 1, 4, 7, 6, 2, 255, 251, 249, 252, 2, 7, 7, 8, 9, 11, 14, 15, 5, 240, 223, 215, 197, 189, 207,
+			232, 6, 33, 41, 31, 15, 4, 253, 254, 4, 12, 21, 21, 15, 8, 254, 248, 249, 255, 2, 1, 0, 3, 3, 0, 254, 0, 3, 6, 9,
+			9, 6, 6, 7, 2, 0, 2, 255, 254, 255, 251, 253, 1, 2, 1, 0, 1, 1, 0, 0, 253, 252, 253, 0, 7, 2, 255, 0, 255, 255,
+			0, 0, 254, 249, 248, 247, 253, 4, 254, 0, 2, 245, 240, 250, 251, 246, 0, 6, 0, 4, 10, 3, 1, 6, 3, 4, 5, 7, 8, 12,
+			2, 252, 0, 2, 0, 9, 7, 255, 6, 12, 254, 254, 9, 251, 241, 6, 13, 247, 253, 8, 249, 254, 10, 2, 1, 1, 251, 252, 4, 251,
+			254, 12, 255, 238, 0, 3, 249, 0, 14, 8, 246, 0, 4, 246, 255, 1, 253, 5, 3, 252, 252, 255, 250, 1, 9, 0, 0, 6, 252, 249,
+			1, 4, 10, 2, 0, 5, 242, 253, 15, 255, 252, 9, 255, 244, 4, 11, 0, 4, 5, 251, 253, 250, 0, 9, 255, 253, 7, 255, 242, 254,
+			4, 248, 12, 17, 245, 253, 0, 246, 8, 9, 249, 6, 3, 244, 253, 4, 248, 4, 10, 253, 0, 7, 2, 4, 254, 0, 254, 252, 254, 251,
+			252, 9, 6, 13, 6, 247, 252, 5, 250, 6, 4, 251, 2, 2, 252, 5, 4, 0, 3, 252, 250, 255, 253, 4, 14, 0, 244, 2, 254, 253,
+			11, 3, 0, 6, 250, 240, 0, 5, 0, 9, 6, 252, 0, 248, 245, 6, 10, 6, 2, 252, 4, 250, 253, 5, 7, 6, 0, 255, 5, 252,
+			252, 0, 3, 2, 252, 255, 5, 248, 0, 5, 245, 251, 17, 6, 0, 9, 249, 248, 3, 2, 0, 6, 6, 248, 240, 0, 254, 248, 14, 12,
+			5, 9, 253, 1, 4, 242, 5, 11, 246, 6, 11, 250, 3, 1, 1, 255, 238, 2, 0, 237, 12, 14, 243, 7, 10, 249, 9, 12, 246, 3,
+			2, 242, 1, 12, 250, 254, 11, 2, 248, 0, 248, 244, 4, 246, 252, 16, 0, 10, 13, 231, 253, 10, 246, 4, 25, 1, 249, 3, 0, 244,
+			1, 12, 6, 4, 6, 0, 250, 248, 252, 255, 2, 1, 10, 0, 245, 254, 8, 1, 0, 11, 1, 241, 1, 0, 243, 15, 15, 240, 11, 11,
+			231, 1, 16, 250, 8, 11, 246, 250, 252, 250, 0, 6, 7, 2, 16, 0, 240, 4, 248, 234, 20, 6, 237, 13, 8, 235, 5, 12, 0, 2,
+			0, 252, 10, 252, 254, 0, 248, 255, 0, 255, 0, 248, 7, 10, 255, 11, 1, 245, 9, 5, 248, 3, 2, 248, 1, 9, 4, 7, 255, 1,
+			13, 249, 247, 9, 248, 245, 15, 8, 4, 14, 247, 246, 11, 246, 242, 19, 0, 245, 16, 251, 239, 16, 246, 233, 24, 6, 237, 17, 252, 235,
+			13, 0, 246, 26, 4, 249, 28, 254, 225, 4, 250, 239, 14, 254, 251, 15, 11, 0, 255, 249, 254, 255, 0, 253, 12, 17, 254, 249, 247, 249,
+			10, 10, 0, 4, 3, 252, 0, 250, 240, 9, 12, 248, 10, 12, 246, 2, 255, 246, 11, 2, 247, 18, 11, 241, 4, 2, 233, 10, 15, 243,
+			0, 2, 247, 3, 254, 254, 19, 8, 251, 0, 252, 240, 243, 4, 4, 9, 19, 0, 248, 10, 239, 239, 18, 252, 1, 22, 248, 247, 14, 251,
+			2, 9, 241, 253, 4, 243, 5, 13, 0, 5, 255, 253, 1, 254, 4, 244, 246, 27, 255, 252, 22, 250, 234, 6, 7, 251, 3, 15, 250, 248,
+			7, 240, 232, 19, 12, 253, 27, 6, 227, 6, 255, 234, 15, 16, 0, 13, 2, 246, 0, 7, 249, 241, 7, 7, 247, 18, 2, 245, 19, 255,
+			230, 10, 245, 249, 34, 7, 247, 28, 249, 223, 2, 2, 250, 13, 13, 249, 249, 245, 3, 13, 255, 251, 5, 241, 246, 19, 2, 251, 16, 249,
+			235, 12, 8, 250, 7, 254, 238, 0, 12, 3, 248, 11, 11, 251, 20, 0, 230, 22, 7, 249, 10, 239, 242, 21, 243, 250, 24, 252, 244, 11,
+			249, 250, 8, 9, 2, 247, 250, 0, 251, 12, 8, 253, 11, 6, 249, 254, 255, 0, 247, 252, 15, 0, 242, 10, 10, 254, 245, 250, 6, 253,
+			250, 21, 255, 241, 0, 1, 255, 247, 2, 27, 241, 247, 25, 255, 236, 3, 237, 244, 13, 10, 15, 19, 3, 11, 250, 233, 11, 15, 247, 8,
+			4, 239, 13, 0, 235, 10, 12, 241, 254, 3, 246, 24, 22, 243, 10, 244, 214, 6, 6, 254, 39, 12, 239, 4, 6, 241, 248, 16, 253, 251,
+			18, 241, 238, 31, 238, 217, 41, 8, 215, 35, 20, 216, 17, 18, 225, 9, 7, 236, 12, 7, 238, 4, 255, 255, 20, 241, 252, 31, 0, 243,
+			20, 8, 238, 6, 1, 6, 252, 234, 18, 18, 235, 14, 250, 242, 14, 252, 249, 26, 251, 233, 253, 13, 251, 232, 22, 33, 242, 250, 30, 239,
+			225, 16, 2, 217, 26, 31, 232, 251, 27, 248, 247, 6, 255, 4, 4, 243, 9, 8, 243, 3, 0, 9, 13, 226, 12, 5, 218, 40, 38, 230,
+			26, 242, 233, 13, 233, 248, 41, 236, 245, 31, 234, 245, 19, 233, 2, 17, 231, 4, 11, 230, 254, 13, 247, 16, 20, 7, 8, 246, 240, 0,
+			243, 8, 36, 2, 229, 22, 15, 229, 13, 6, 245, 4, 0, 243, 244, 9, 26, 232, 14, 45, 217, 245, 34, 212, 255, 51, 235, 235, 50, 245,
+			248, 36, 228, 220, 18, 238, 250, 27, 244, 238, 12, 245, 248, 14, 254, 254, 25, 6, 248, 7, 238, 254, 27, 2, 249, 6, 235, 9, 7, 11,
+			5, 248, 252, 253, 230, 249, 24, 3, 240, 42, 23, 233, 10, 254, 219, 3, 0, 233, 18, 18, 235, 3, 29, 0, 234, 247, 247, 252, 254, 11,
+			21, 0, 253, 253, 237, 11, 42, 237, 252, 29, 232, 225, 21, 254, 7, 8, 219, 249, 39, 231, 22, 47, 219, 6, 41, 225, 9, 11, 221, 3,
+			19, 250, 1, 9, 240, 252, 4, 255, 11, 239, 254, 23, 254, 237, 22, 253, 245, 19, 247, 237, 14, 245, 244, 21, 5, 244, 1, 1, 6, 251,
+			253, 37, 7, 230, 37, 17, 207, 6, 31, 229, 242, 28, 251, 234, 13, 244, 250, 24, 249, 3, 13, 214, 18, 47, 242, 12, 3, 245, 44, 7,
+			224, 43, 255, 223, 45, 245, 233, 22, 252, 255, 255, 203, 245, 221, 170, 235, 244, 185, 26, 35, 218, 12, 20, 237, 40, 35, 238, 43, 32, 236,
+			46, 20, 220, 62, 253, 205, 55, 6, 197, 57, 251, 209, 49, 23, 225, 43, 244, 227, 23, 20, 244, 0, 18, 12, 221, 245, 47, 234, 243, 48,
+			249, 193, 37, 13, 210, 11, 34, 254, 10, 244, 25, 4, 215, 13, 17, 201, 22, 7, 187, 38, 30, 204, 40, 12, 212, 9, 242, 230, 21, 220,
+			0, 45, 229, 236, 25, 249, 17, 23, 253, 10, 254, 24, 242, 239, 17, 240, 230, 41, 5, 216, 19, 29, 222, 11, 62, 219, 202, 48, 245, 216,
+			44, 21, 213, 21, 1, 229, 253, 11, 0, 8, 233, 19, 9, 252, 254, 252, 16, 40, 241, 251, 13, 230, 249, 17, 2, 0, 9, 19, 3, 238,
+			15, 241, 251, 24, 248, 4, 4, 231, 235, 245, 7, 37, 14, 253, 14, 3, 221, 0, 233, 245, 25, 4, 3, 67, 225, 220, 55, 231, 194, 74,
+			230, 203, 79, 237, 180, 76, 232, 231, 116, 223, 210, 46, 174, 240, 68, 180, 34, 50, 185, 40, 39, 162, 23, 38, 217, 29, 41, 200, 28, 28,
+			200, 11, 38, 194, 16, 45, 244, 4, 13, 231, 6, 7, 211, 35, 19, 217, 0, 14, 240, 15, 14, 12, 254, 250, 24, 245, 252, 32, 224, 0,
+			44, 204, 13, 21, 223, 37, 248, 194, 77, 6, 179, 56, 20, 171, 37, 22, 184, 47, 22, 226, 56, 231, 204, 78, 231, 199, 69, 235, 210, 63,
+			229, 228, 82, 221, 215, 85, 191, 216, 86, 229, 225, 90, 220, 209, 51, 246, 211, 59, 12, 222, 47, 249, 179, 63, 21, 160, 89, 23, 159, 66,
+			27, 130, 31, 55, 192, 12, 60, 209, 3, 56, 232, 247, 42, 243, 226, 33, 243, 198, 23, 9, 216, 36, 16, 201, 251, 25, 255, 245, 18, 22,
+			250, 8, 19, 210, 17, 9, 237, 50, 11, 201, 45, 8, 207, 36, 251, 239, 37, 238, 215, 49, 1, 222, 56, 26, 210, 251, 245, 236, 34, 19,
+			238, 1, 25, 205, 236, 50, 243, 216, 46, 14, 219, 12, 1, 220, 37, 31, 215, 23, 5, 224, 15, 17, 248, 24, 218, 236, 36, 210, 32, 44,
+			182, 24, 92, 168, 243, 73, 212, 241, 60, 226, 237, 43, 212, 250, 36, 252, 254, 29, 220, 18, 4, 218, 11, 17, 224, 68, 35, 166, 19, 7,
+			191, 49, 42, 220, 32, 246, 246, 16, 200, 21, 79, 208, 16, 59, 150, 233, 49, 212, 16, 52, 232, 253, 19, 210, 228, 0, 7, 10, 22, 23,
+			249, 214, 37, 251, 199, 20, 41, 224, 36, 27, 185, 2, 25, 208, 33, 52, 207, 15, 28, 218, 18, 17, 238, 48, 16, 200, 17, 253, 213, 41,
+			29, 223, 4, 0, 0, 29, 247, 230, 5, 242, 248, 31, 17, 235, 244, 239, 27, 11, 245, 27, 239, 226, 58, 9, 206, 19, 244, 239, 76, 253,
+			210, 20, 254, 254, 25, 237, 249, 41, 12, 228, 249, 253, 236, 2, 40, 18, 210, 247, 12, 243, 239, 232, 246, 13, 240, 37, 27, 213, 23, 41,
+			196, 247, 46, 233, 237, 25, 0, 242, 6, 238, 0, 31, 4, 249, 9, 254, 238, 248, 25, 26, 237, 244, 21, 238, 242, 32, 251, 225, 5, 255,
+			221, 14, 19, 244, 18, 7, 13, 22, 243, 253, 236, 246, 35, 15, 243, 25, 2, 243, 18, 15, 247, 22, 248, 237, 35, 0, 231, 8, 246, 245,
+			14, 246, 5, 3, 231, 16, 232, 228, 19, 253, 245, 34, 251, 250, 30, 240, 231, 33, 251, 240, 13, 228, 247, 33, 223, 3, 44, 248, 253, 10,
+			252, 7, 30, 33, 0, 3, 14, 7, 249, 246, 0, 247, 241, 23, 11, 253, 1, 229, 230, 16, 248, 234, 11, 222, 224, 38, 0, 217, 31, 0,
+			206, 47, 5, 206, 54, 20, 207, 32, 18, 204, 19, 67, 209, 237, 49, 209, 228, 60, 217, 229, 66, 241, 214, 50, 9, 224, 38, 3, 215, 31,
+			10, 231, 36, 5, 223, 14, 24, 220, 2, 39, 210, 215, 58, 239, 204, 51, 254, 201, 33, 0, 203, 30, 28, 222, 18, 38, 211, 236, 47, 220,
+			241, 40, 253, 237, 47, 43, 214, 6, 53, 240, 0, 47, 252, 0, 42, 20, 244, 9, 6, 244, 4, 19, 3, 252, 7, 4, 226, 245, 24, 244,
+			253, 37, 245, 225, 20, 242, 223, 11, 8, 241, 21, 21, 233, 0, 12, 221, 254, 13, 221, 0, 8, 211, 243, 249, 242, 251, 0, 228, 241, 250,
+			236, 11, 7, 243, 16, 1, 250, 7, 253, 247, 8, 1, 247, 20, 6, 218, 12, 27, 249, 11, 29, 249, 6, 7, 255, 16, 255, 6, 40, 6,
+			2, 30, 10, 249, 251, 6, 244, 239, 2, 2, 253, 10, 22, 253, 6, 25, 252, 247, 28, 1, 233, 2, 251, 227, 1, 15, 228, 244, 8, 234,
+			249, 22, 255, 252, 9, 3, 239, 0, 11, 5, 246, 0, 5, 253, 8, 3, 250, 242, 4, 5, 235, 243, 15, 245, 247, 8, 244, 246, 8, 4,
+			251, 13, 254, 255, 11, 12, 9, 14, 28, 12, 255, 13, 6, 250, 3, 11, 4, 10, 23, 0, 236, 1, 15, 251, 4, 11, 250, 255, 4, 247,
+			249, 8, 253, 253, 12, 255, 237, 251, 3, 246, 248, 245, 238, 250, 3, 254, 8, 5, 1, 252, 1, 253, 241, 7, 15, 237, 240, 0, 232, 248,
+			15, 248, 237, 242, 232, 247, 254, 242, 250, 250, 252, 1, 0, 251, 5, 251, 2, 11, 232, 11, 45, 0, 13, 13, 13, 13, 13, 13, 13, 13,
+			13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+			13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
+			15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 16,
+			17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18,
+			18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+			18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+			17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 17, 17, 17, 16, 16, 16, 16, 16, 16,
+			16, 16, 16, 16, 16, 16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
+			16, 15, 15, 15, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13,
+			13, 14, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+			11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+			9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9,
+			9, 10, 10, 10, 10, 9, 9, 9, 10, 10, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+			9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+			9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+			10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+			12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+			14, 14, 15, 15, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 15, 15,
+			16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+			16, 16, 16, 16, 16, 17, 16, 16, 16, 16, 17, 17, 16, 16, 17, 17, 17, 17, 16, 16, 16, 16, 17, 17, 16, 17, 17, 17, 17, 17,
+			16, 17, 17, 17, 17, 17, 17, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16,
+			16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 15, 15,
+			15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+			14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 12, 12,
+			12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 11, 11, 11, 11,
+			11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+			10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+			10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+			10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+			11, 11, 11, 12, 12, 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
+			13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+			13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 9, 3, 0, 0, 12, 42, 58, 34, 0, 250, 6, 11, 11, 14, 16, 14, 14, 19, 23, 24,
+			20, 14, 10, 10, 11, 13, 17, 22, 23, 20, 15, 13, 15, 17, 18, 18, 16, 13, 12, 14, 19, 22, 23, 21, 17, 14, 12, 13, 17, 20,
+			21, 21, 19, 17, 16, 16, 17, 17, 18, 19, 20, 19, 17, 17, 19, 19, 17, 17, 17, 17, 18, 19, 19, 19, 17, 16, 15, 16, 17, 19,
+			20, 20, 18, 17, 16, 17, 17, 17, 17, 18, 19, 18, 17, 16, 17, 17, 18, 18, 17, 16, 16, 17, 17, 17, 18, 18, 19, 19, 18, 17,
+			15, 17, 18, 16, 16, 19, 20, 17, 16, 18, 18, 17, 16, 17, 18, 18, 17, 17, 17, 18, 18, 17, 16, 17, 17, 17, 16, 17, 18, 17,
+			17, 18, 18, 18, 16, 16, 14, 8, 249, 229, 213, 226, 37, 119, 127, 62, 10, 0, 241, 208, 200, 228, 1, 13, 22, 44, 70, 85, 77, 49,
+			14, 239, 221, 226, 248, 11, 13, 5, 5, 20, 35, 46, 55, 61, 51, 13, 214, 182, 207, 7, 48, 60, 61, 55, 37, 12, 254, 0, 3, 0,
+			253, 3, 17, 30, 42, 46, 36, 16, 255, 243, 246, 10, 29, 26, 16, 15, 9, 247, 227, 214, 223, 9, 67, 95, 76, 37, 8, 0, 1, 0,
+			255, 249, 238, 245, 24, 54, 52, 41, 38, 18, 239, 227, 250, 22, 32, 33, 32, 23, 6, 0, 14, 26, 12, 250, 251, 5, 13, 24, 31, 28,
+			21, 17, 11, 1, 0, 0, 3, 15, 25, 17, 7, 13, 29, 34, 14, 243, 244, 14, 24, 6, 252, 5, 24, 34, 22, 10, 14, 15, 0, 253,
+			18, 22, 1, 253, 14, 20, 13, 10, 12, 21, 25, 11, 254, 6, 19, 16, 6, 6, 8, 10, 21, 29, 17, 254, 249, 6, 29, 36, 12, 251,
+			4, 13, 8, 16, 27, 19, 10, 7, 0, 7, 32, 30, 251, 240, 14, 36, 20, 11, 22, 15, 0, 2, 10, 20, 29, 10, 239, 3, 45, 35,
+			251, 2, 39, 29, 243, 233, 8, 47, 42, 5, 249, 10, 23, 19, 12, 6, 9, 17, 20, 13, 3, 9, 28, 33, 12, 240, 239, 11, 44, 48,
+			23, 0, 247, 247, 5, 31, 43, 28, 6, 0, 6, 6, 3, 13, 20, 15, 13, 20, 21, 11, 8, 22, 22, 250, 243, 14, 26, 17, 26, 42,
+			19, 237, 240, 30, 45, 2, 240, 19, 35, 10, 8, 30, 25, 7, 13, 19, 253, 237, 11, 57, 52, 2, 233, 4, 34, 23, 8, 18, 25, 8,
+			1, 20, 32, 21, 8, 8, 10, 9, 6, 16, 42, 48, 16, 241, 244, 18, 44, 39, 18, 4, 247, 244, 20, 63, 44, 248, 249, 28, 28, 8,
+			7, 15, 20, 27, 17, 3, 14, 31, 19, 250, 248, 9, 16, 252, 221, 216, 242, 20, 55, 92, 103, 60, 3, 241, 250, 244, 228, 252, 47, 54,
+			11, 8, 68, 92, 33, 216, 200, 251, 45, 30, 9, 55, 79, 9, 225, 18, 41, 10, 13, 39, 26, 247, 225, 251, 61, 76, 22, 4, 34, 31,
+			1, 246, 252, 12, 33, 47, 37, 0, 239, 26, 60, 20, 244, 24, 43, 0, 237, 21, 56, 33, 251, 241, 9, 58, 67, 13, 242, 13, 14, 246,
+			12, 38, 18, 8, 24, 28, 23, 17, 14, 26, 22, 246, 248, 27, 33, 25, 32, 11, 239, 8, 50, 35, 255, 249, 17, 40, 29, 2, 5, 34,
+			19, 234, 6, 69, 43, 241, 251, 21, 37, 51, 16, 207, 211, 32, 90, 74, 14, 230, 237, 17, 44, 41, 9, 236, 253, 35, 36, 19, 21, 13,
+			13, 50, 38, 212, 204, 50, 94, 18, 228, 5, 34, 32, 22, 2, 253, 19, 17, 249, 19, 64, 47, 1, 236, 239, 15, 44, 24, 253, 21, 40,
+			3, 239, 11, 41, 39, 31, 12, 229, 222, 3, 41, 46, 33, 12, 4, 26, 27, 242, 220, 8, 59, 41, 252, 252, 10, 4, 11, 41, 38, 252,
+			234, 14, 48, 20, 236, 235, 22, 60, 34, 228, 238, 55, 67, 4, 205, 208, 18, 85, 66, 253, 228, 240, 2, 39, 53, 20, 0, 253, 232, 245,
+			48, 50, 248, 235, 26, 64, 31, 209, 194, 39, 106, 18, 191, 238, 56, 47, 253, 243, 24, 32, 246, 249, 43, 33, 242, 252, 17, 0, 8, 41,
+			32, 254, 245, 0, 3, 12, 36, 47, 18, 232, 232, 24, 50, 7, 225, 248, 35, 45, 31, 0, 215, 239, 64, 80, 0, 210, 241, 20, 26, 28,
+			15, 250, 0, 32, 43, 13, 246, 244, 2, 17, 16, 10, 24, 27, 245, 251, 42, 33, 252, 254, 250, 246, 30, 47, 10, 2, 20, 5, 243, 10,
+			37, 28, 10, 252, 240, 254, 31, 54, 33, 240, 214, 254, 67, 70, 242, 200, 7, 46, 15, 19, 36, 253, 228, 15, 34, 11, 12, 19, 3, 13,
+			36, 7, 237, 14, 28, 254, 5, 37, 14, 249, 26, 37, 247, 232, 23, 47, 13, 243, 253, 12, 24, 52, 48, 253, 235, 5, 8, 245, 5, 41,
+			46, 16, 2, 21, 22, 241, 221, 20, 88, 59, 216, 193, 34, 98, 30, 225, 254, 10, 248, 32, 85, 37, 217, 230, 26, 30, 14, 28, 38, 24,
+			255, 240, 5, 40, 24, 242, 18, 75, 50, 242, 227, 242, 13, 56, 59, 11, 242, 253, 17, 40, 39, 11, 250, 253, 15, 50, 56, 3, 222, 0,
+			41, 26, 19, 41, 24, 233, 244, 47, 45, 0, 1, 37, 30, 3, 7, 23, 24, 9, 2, 9, 16, 34, 54, 38, 254, 237, 245, 0, 27, 61,
+			55, 9, 246, 10, 14, 2, 19, 44, 33, 252, 237, 16, 69, 54, 238, 225, 30, 58, 25, 252, 238, 244, 50, 97, 26, 201, 231, 37, 43, 48,
+			41, 241, 233, 35, 37, 254, 26, 59, 1, 207, 249, 44, 63, 68, 30, 222, 213, 1, 37, 53, 44, 1, 240, 27, 43, 0, 1, 45, 28, 236,
+			248, 26, 28, 24, 23, 16, 27, 35, 6, 243, 5, 21, 25, 29, 21, 9, 12, 13, 9, 26, 40, 17, 235, 235, 29, 78, 61, 254, 225, 240,
+			6, 38, 55, 24, 251, 6, 23, 21, 25, 24, 3, 253, 15, 24, 25, 23, 11, 11, 29, 27, 13, 9, 254, 255, 33, 54, 21, 245, 3, 31,
+			25, 0, 255, 27, 48, 20, 238, 244, 31, 52, 30, 246, 234, 13, 45, 33, 4, 1, 15, 26, 21, 0, 244, 7, 46, 47, 6, 239, 3, 24,
+			11, 8, 30, 26, 250, 251, 17, 31, 37, 9, 225, 250, 47, 36, 0, 1, 19, 17, 1, 3, 19, 18, 5, 19, 28, 253, 240, 10, 26, 21,
+			25, 19, 0, 250, 3, 18, 25, 24, 12, 255, 252, 16, 38, 7, 226, 10, 83, 51, 215, 199, 5, 56, 48, 7, 238, 2, 26, 13, 0, 24,
+			35, 4, 247, 12, 12, 254, 10, 21, 9, 2, 13, 29, 32, 12, 242, 254, 27, 18, 243, 239, 16, 54, 50, 10, 242, 253, 8, 3, 14, 38,
+			22, 242, 244, 12, 35, 47, 20, 230, 241, 30, 22, 4, 36, 41, 234, 214, 22, 58, 26, 254, 253, 13, 32, 30, 3, 247, 6, 16, 9, 18,
+			41, 27, 243, 242, 22, 44, 22, 3, 6, 253, 248, 29, 55, 14, 241, 12, 38, 18, 251, 8, 35, 23, 239, 231, 18, 60, 48, 12, 6, 250,
+			215, 246, 83, 94, 3, 210, 225, 243, 26, 85, 73, 250, 206, 238, 38, 64, 29, 226, 222, 32, 84, 34, 203, 218, 63, 74, 236, 209, 25, 66,
+			36, 4, 248, 237, 241, 15, 57, 61, 6, 222, 249, 47, 54, 5, 224, 247, 35, 40, 12, 5, 19, 5, 247, 27, 64, 25, 226, 238, 31, 42,
+			22, 4, 247, 252, 28, 49, 46, 28, 247, 221, 246, 33, 57, 53, 12, 229, 248, 42, 43, 0, 239, 13, 45, 47, 32, 0, 231, 253, 34, 31,
+			16, 25, 30, 8, 254, 28, 44, 10, 242, 6, 31, 30, 30, 33, 14, 248, 253, 17, 26, 33, 44, 30, 253, 248, 15, 24, 18, 15, 15, 23,
+			29, 18, 7, 12, 26, 37, 28, 247, 230, 19, 61, 38, 4, 8, 10, 2, 21, 46, 39, 12, 244, 235, 13, 58, 40, 0, 10, 38, 17, 242,
+			5, 47, 44, 1, 246, 17, 36, 27, 10, 12, 21, 8, 0, 24, 50, 39, 8, 250, 9, 28, 2, 242, 31, 67, 32, 0, 8, 13, 7, 7,
+			20, 34, 29, 14, 7, 2, 0, 27, 56, 35, 247, 240, 15, 36, 24, 9, 14, 24, 15, 3, 14, 32, 30, 17, 0, 239, 2, 54, 55, 4,
+			246, 21, 26, 254, 253, 25, 45, 27, 254, 255, 18, 21, 13, 21, 31, 14, 249, 253, 7, 21, 48, 50, 7, 233, 247, 20, 32, 22, 16, 18,
+			15, 9, 7, 8, 20, 34, 21, 253, 0, 25, 31, 6, 0, 26, 36, 5, 239, 9, 54, 46, 1, 245, 255, 0, 16, 44, 45, 11, 240, 0,
+			31, 29, 7, 0, 13, 33, 29, 0, 246, 8, 35, 35, 4, 253, 27, 28, 243, 247, 52, 59, 250, 217, 254, 31, 30, 28, 21, 4, 2, 12,
+			12, 17, 31, 18, 242, 241, 21, 38, 15, 9, 33, 27, 247, 243, 12, 19, 11, 20, 31, 13, 0, 8, 4, 252, 20, 38, 13, 247, 6, 20,
+			18, 34, 30, 240, 221, 5, 35, 26, 15, 13, 20, 21, 254, 241, 13, 36, 15, 247, 250, 7, 29, 45, 17, 239, 255, 19, 2, 1, 22, 18,
+			10, 13, 4, 7, 30, 20, 238, 242, 27, 32, 11, 15, 12, 247, 3, 32, 15, 252, 11, 16, 247, 249, 37, 53, 5, 219, 245, 34, 39, 8,
+			247, 3, 18, 11, 6, 26, 32, 0, 232, 248, 21, 29, 20, 15, 9, 5, 9, 8, 2, 3, 2, 4, 27, 35, 7, 254, 17, 9, 246, 10,
+			32, 13, 249, 3, 27, 30, 13, 0, 3, 11, 12, 6, 255, 253, 15, 46, 48, 11, 236, 240, 1, 16, 30, 32, 10, 240, 251, 35, 53, 27,
+			239, 222, 251, 38, 51, 27, 252, 241, 4, 33, 33, 12, 0, 253, 252, 12, 36, 34, 10, 255, 9, 17, 11, 13, 22, 9, 244, 4, 40, 44,
+			15, 241, 241, 21, 43, 20, 0, 3, 12, 17, 19, 17, 15, 6, 0, 18, 39, 17, 241, 251, 22, 20, 12, 28, 42, 19, 240, 235, 9, 38,
+			34, 13, 9, 19, 5, 249, 23, 49, 19, 240, 254, 31, 32, 7, 1, 13, 18, 21, 27, 21, 9, 8, 4, 2, 20, 37, 28, 15, 16, 15,
+			5, 253, 4, 25, 37, 33, 23, 12, 7, 5, 5, 14, 24, 18, 14, 28, 38, 25, 253, 241, 2, 29, 38, 30, 21, 16, 5, 254, 8, 24,
+			29, 32, 26, 8, 8, 19, 9, 254, 19, 42, 30, 8, 5, 13, 17, 15, 14, 11, 9, 17, 39, 46, 14, 234, 241, 18, 31, 22, 25, 34,
+			31, 13, 246, 242, 11, 35, 34, 29, 26, 9, 250, 255, 17, 30, 27, 8, 2, 27, 41, 19, 255, 2, 6, 4, 13, 32, 41, 27, 6, 4,
+			18, 16, 254, 252, 19, 40, 33, 11, 6, 12, 7, 8, 31, 41, 14, 242, 248, 20, 42, 35, 7, 248, 5, 25, 27, 21, 23, 22, 1, 242,
+			5, 35, 32, 13, 13, 24, 21, 8, 255, 4, 21, 27, 20, 13, 9, 11, 22, 23, 8, 5, 19, 21, 8, 2, 10, 25, 36, 27, 1, 248,
+			12, 30, 13, 252, 18, 40, 14, 248, 11, 30, 20, 11, 14, 8, 1, 9, 22, 22, 15, 11, 10, 10, 13, 15, 16, 17, 17, 10, 2, 6,
+			17, 19, 15, 16, 15, 10, 9, 13, 12, 10, 14, 15, 13, 11, 8, 7, 13, 17, 12, 11, 21, 18, 2, 255, 9, 13, 14, 19, 16, 9,
+			8, 9, 5, 6, 18, 24, 13, 255, 4, 20, 17, 3, 8, 19, 10, 253, 2, 20, 23, 11, 5, 13, 17, 7, 1, 6, 12, 15, 13, 8,
+			2, 6, 18, 24, 13, 0, 1, 12, 10, 2, 11, 20, 12, 2, 4, 10, 16, 15, 6, 3, 12, 14, 8, 10, 14, 9, 4, 7, 8, 7,
+			14, 23, 19, 5, 0, 8, 14, 12, 9, 7, 6, 12, 17, 10, 2, 9, 21, 22, 11, 0, 0, 12, 16, 10, 9, 12, 8, 7, 13, 12,
+			7, 11, 21, 21, 11, 4, 5, 10, 9, 3, 218, 12, 24, 0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22,
+			22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 22, 22, 22, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+			22, 23, 23, 23, 23, 23, 23, 23, 22, 23, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 23,
+			23, 24, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
+			23, 23, 23, 24, 24, 24, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+			25, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 26, 26, 26, 27, 27, 27, 27, 27, 27, 28, 28,
+			28, 28, 28, 28, 28, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 28, 28, 28, 28, 29, 28, 28, 28, 29, 29, 29, 29,
+			29, 29, 29, 29, 29, 29, 30, 30, 29, 29, 29, 30, 29, 29, 29, 29, 29, 30, 30, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+			29, 29, 29, 29, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 29, 29, 29,
+			28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 28, 28, 28, 27, 28, 28, 28, 27, 27, 27, 27, 28, 27, 27, 28, 28, 28, 28, 28,
+			28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+			28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26,
+			26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23,
+			23, 23, 24, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 22, 23, 22, 22, 22, 22,
+			22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 21, 21, 21, 21, 21,
+			22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 22, 22, 23, 22, 22, 22, 23,
+			23, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22,
+			22, 22, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 23, 23, 23,
+			23, 22, 22, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+			24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+			26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 27, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27,
+			27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 31, 30,
+			30, 30, 30, 30, 30, 29, 30, 30, 30, 31, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+			30, 30, 30, 30, 30, 30, 30, 30, 29, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+			29, 29, 29, 29, 29, 28, 28, 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+			28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 28, 28, 28, 28, 27, 27, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27,
+			27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 26, 26, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+			25, 25, 26, 26, 26, 25, 26, 26, 26, 25, 25, 25, 25, 24, 25, 25, 25, 25, 25, 24, 24, 24, 24, 23, 23, 23, 23, 23, 22, 23,
+			23, 23, 23, 23, 22, 23, 22, 22, 22, 22, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 20,
+			21, 21, 22, 22, 22, 21, 20, 19, 19, 19, 20, 20, 20, 21, 20, 20, 20, 21, 22, 21, 20, 20, 18, 1, 223, 195, 201, 247, 42, 74,
+			82, 63, 30, 3, 239, 210, 185, 197, 243, 24, 43, 60, 71, 65, 53, 43, 28, 6, 246, 241, 247, 6, 31, 56, 69, 66, 48, 24, 2, 250,
+			253, 5, 14, 23, 30, 34, 37, 38, 33, 25, 18, 11, 7, 3, 4, 12, 23, 33, 39, 39, 34, 24, 14, 7, 4, 5, 16, 34, 44, 35,
+			22, 16, 24, 25, 13, 9, 24, 35, 27, 11, 13, 31, 44, 39, 22, 12, 10, 13, 18, 26, 35, 39, 32, 17, 10, 15, 22, 30, 36, 34,
+			24, 14, 15, 26, 34, 30, 20, 22, 25, 24, 23, 26, 28, 26, 31, 38, 23, 4, 8, 37, 49, 32, 15, 16, 28, 32, 25, 22, 23, 19,
+			25, 32, 34, 27, 22, 19, 20, 30, 36, 33, 23, 18, 14, 21, 26, 32, 45, 43, 15, 242, 252, 15, 17, 6, 21, 48, 55, 54, 39, 12,
+			4, 29, 52, 25, 7, 27, 38, 17, 18, 53, 54, 23, 19, 42, 37, 3, 252, 33, 64, 47, 12, 14, 33, 42, 35, 31, 16, 13, 44, 47,
+			5, 4, 42, 51, 32, 29, 35, 8, 15, 39, 52, 39, 35, 41, 16, 254, 12, 66, 73, 32, 254, 252, 40, 71, 52, 15, 24, 50, 32, 3,
+			10, 44, 49, 33, 31, 31, 11, 234, 227, 236, 6, 39, 50, 44, 23, 28, 57, 60, 34, 34, 41, 26, 14, 18, 22, 38, 67, 70, 35, 1,
+			1, 27, 53, 49, 27, 20, 29, 27, 11, 9, 39, 66, 51, 41, 28, 249, 240, 27, 71, 48, 16, 32, 34, 8, 23, 61, 40, 9, 27, 37,
+			13, 1, 38, 56, 28, 35, 74, 29, 206, 243, 85, 88, 29, 37, 44, 253, 229, 28, 76, 58, 26, 24, 29, 16, 26, 31, 42, 39, 24, 15,
+			15, 48, 53, 23, 4, 31, 50, 35, 29, 32, 28, 23, 25, 14, 29, 51, 23, 3, 45, 75, 18, 231, 26, 88, 47, 244, 247, 31, 48, 44,
+			33, 22, 21, 30, 38, 21, 12, 15, 39, 68, 39, 249, 5, 39, 23, 1, 34, 83, 51, 235, 246, 51, 57, 18, 25, 24, 246, 248, 71, 98,
+			15, 231, 1, 28, 32, 46, 70, 19, 227, 4, 59, 49, 23, 4, 252, 27, 48, 24, 22, 78, 39, 214, 230, 56, 60, 252, 22, 68, 26, 212,
+			12, 82, 34, 236, 22, 74, 18, 232, 22, 59, 36, 247, 13, 55, 25, 1, 24, 53, 17, 237, 2, 36, 34, 33, 69, 27, 213, 246, 65, 42,
+			248, 4, 46, 52, 20, 18, 13, 245, 24, 66, 39, 237, 244, 35, 27, 34, 57, 36, 251, 245, 40, 25, 243, 15, 52, 64, 7, 211, 0, 87,
+			73, 244, 227, 29, 53, 247, 245, 66, 72, 0, 246, 28, 19, 250, 22, 72, 41, 235, 238, 22, 70, 59, 5, 0, 26, 19, 245, 7, 58, 67,
+			25, 19, 34, 248, 217, 14, 84, 79, 5, 243, 2, 9, 37, 57, 33, 253, 255, 27, 49, 43, 15, 6, 31, 63, 14, 201, 255, 89, 76, 245,
+			251, 57, 67, 7, 235, 19, 21, 0, 50, 86, 25, 226, 7, 45, 25, 4, 35, 57, 28, 39, 37, 239, 231, 44, 73, 9, 241, 43, 62, 3,
+			237, 67, 91, 253, 219, 11, 33, 33, 25, 45, 54, 15, 19, 29, 4, 249, 46, 78, 7, 229, 36, 79, 64, 23, 238, 248, 38, 51, 36, 21,
+			8, 20, 52, 28, 239, 19, 69, 58, 27, 21, 24, 247, 236, 47, 64, 25, 42, 80, 30, 241, 254, 23, 59, 59, 39, 0, 235, 39, 67, 41,
+			39, 46, 12, 237, 255, 47, 81, 69, 21, 1, 12, 26, 41, 34, 35, 59, 57, 254, 238, 68, 79, 10, 255, 35, 45, 2, 15, 71, 94, 40,
+			217, 246, 69, 58, 251, 14, 92, 59, 243, 20, 74, 8, 229, 75, 97, 6, 221, 25, 67, 51, 42, 55, 21, 240, 36, 52, 20, 34, 55, 22,
+			6, 42, 78, 31, 229, 252, 82, 122, 40, 207, 229, 59, 71, 32, 20, 33, 63, 34, 246, 2, 54, 89, 62, 17, 239, 242, 37, 57, 27, 24,
+			58, 65, 25, 11, 41, 40, 254, 255, 34, 46, 62, 62, 18, 243, 25, 88, 53, 0, 23, 28, 254, 252, 67, 93, 12, 241, 34, 55, 15, 255,
+			53, 59, 36, 23, 16, 11, 13, 51, 63, 20, 247, 36, 76, 45, 8, 1, 14, 37, 41, 45, 26, 0, 22, 59, 43, 25, 41, 31, 252, 3,
+			33, 70, 64, 24, 33, 9, 242, 18, 64, 51, 18, 16, 25, 16, 36, 73, 38, 235, 237, 39, 48, 22, 39, 37, 8, 23, 55, 17, 234, 10,
+			36, 38, 37, 32, 0, 251, 24, 39, 33, 35, 20, 0, 32, 44, 28, 21, 38, 20, 238, 29, 90, 56, 235, 254, 33, 25, 29, 69, 55, 246,
+			245, 31, 37, 6, 31, 65, 32, 234, 243, 59, 71, 5, 221, 1, 42, 44, 42, 14, 252, 23, 41, 21, 4, 13, 32, 27, 250, 9, 43, 44,
+			37, 22, 5, 5, 14, 14, 26, 38, 16, 0, 31, 48, 27, 255, 254, 251, 10, 64, 70, 12, 220, 243, 35, 22, 244, 25, 71, 45, 239, 241,
+			11, 254, 15, 65, 42, 235, 225, 8, 45, 56, 35, 251, 232, 4, 39, 27, 249, 8, 46, 26, 251, 17, 35, 18, 0, 10, 30, 17, 14, 20,
+			18, 6, 254, 9, 28, 28, 16, 39, 54, 4, 202, 226, 21, 57, 71, 46, 1, 227, 245, 24, 29, 22, 14, 22, 45, 20, 240, 10, 40, 30,
+			8, 250, 13, 48, 45, 15, 253, 254, 13, 18, 39, 41, 250, 231, 15, 67, 56, 21, 245, 247, 5, 249, 228, 230, 4, 10, 12, 18, 248, 233,
+			6, 43, 59, 32, 236, 247, 49, 73, 37, 9, 13, 29, 35, 23, 13, 8, 18, 36, 36, 16, 4, 27, 47, 15, 254, 30, 61, 39, 250, 246,
+			17, 22, 24, 36, 20, 0, 3, 18, 22, 28, 33, 16, 252, 3, 29, 39, 37, 34, 20, 13, 27, 34, 15, 13, 46, 63, 52, 14, 247, 8,
+			45, 66, 44, 7, 1, 19, 34, 35, 22, 30, 46, 47, 18, 252, 5, 12, 30, 57, 56, 28, 253, 3, 30, 26, 20, 33, 38, 33, 37, 34,
+			16, 14, 32, 50, 40, 5, 255, 29, 59, 61, 33, 19, 33, 38, 8, 248, 24, 61, 61, 28, 11, 28, 39, 34, 31, 41, 30, 10, 25, 56,
+			25, 254, 29, 42, 25, 32, 57, 42, 20, 20, 20, 16, 39, 60, 38, 2, 16, 71, 69, 20, 22, 41, 44, 35, 23, 37, 31, 22, 44, 66,
+			37, 1, 9, 36, 51, 25, 26, 58, 42, 3, 2, 35, 49, 34, 18, 10, 29, 56, 53, 19, 5, 15, 29, 41, 34, 36, 26, 18, 33, 60,
+			61, 42, 14, 251, 17, 56, 69, 34, 16, 26, 28, 33, 40, 42, 34, 28, 28, 23, 25, 43, 49, 22, 16, 42, 48, 26, 24, 44, 54, 35,
+			24, 26, 9, 17, 63, 71, 15, 248, 24, 76, 78, 17, 231, 1, 53, 57, 23, 18, 39, 25, 252, 28, 86, 54, 0, 2, 49, 55, 1, 10,
+			66, 77, 42, 10, 4, 25, 34, 28, 21, 39, 68, 48, 9, 8, 41, 47, 28, 29, 20, 16, 35, 66, 68, 12, 246, 32, 56, 46, 29, 24,
+			27, 22, 35, 62, 52, 10, 244, 21, 74, 75, 20, 13, 51, 38, 251, 0, 40, 48, 26, 30, 33, 25, 21, 38, 44, 19, 14, 21, 15, 5,
+			37, 70, 55, 15, 0, 3, 18, 45, 40, 24, 29, 41, 34, 17, 5, 19, 39, 45, 31, 25, 50, 65, 3, 221, 0, 58, 52, 1, 14, 52,
+			53, 22, 250, 0, 53, 72, 37, 251, 239, 23, 69, 56, 21, 19, 49, 45, 252, 247, 27, 57, 55, 52, 17, 247, 19, 25, 27, 56, 77, 38,
+			239, 250, 19, 43, 75, 75, 14, 223, 16, 87, 81, 22, 237, 244, 36, 68, 40, 255, 9, 69, 66, 29, 33, 22, 246, 16, 72, 70, 27, 22,
+			32, 14, 15, 22, 43, 48, 64, 76, 19, 247, 22, 22, 253, 30, 93, 71, 2, 12, 58, 50, 7, 2, 37, 48, 29, 31, 36, 22, 11, 20,
+			36, 30, 33, 43, 22, 7, 26, 50, 55, 50, 21, 3, 250, 22, 73, 66, 34, 18, 39, 35, 4, 0, 21, 44, 33, 26, 40, 39, 15, 3,
+			48, 75, 28, 238, 3, 31, 30, 49, 52, 25, 13, 36, 41, 15, 1, 13, 38, 56, 54, 21, 249, 32, 66, 32, 252, 25, 65, 31, 242, 249,
+			54, 80, 47, 17, 7, 11, 9, 21, 37, 50, 41, 27, 36, 20, 240, 2, 54, 68, 41, 26, 16, 18, 24, 30, 32, 31, 31, 32, 24, 254,
+			17, 47, 45, 22, 30, 37, 25, 17, 19, 13, 13, 54, 61, 30, 248, 3, 42, 62, 48, 13, 12, 37, 36, 21, 12, 42, 63, 47, 28, 16,
+			25, 19, 17, 32, 61, 58, 19, 17, 39, 39, 25, 36, 56, 30, 20, 38, 42, 28, 18, 21, 21, 54, 75, 37, 249, 244, 11, 31, 66, 72,
+			22, 248, 7, 38, 38, 41, 50, 35, 255, 5, 48, 54, 31, 23, 16, 20, 51, 64, 40, 3, 1, 46, 37, 1, 28, 67, 41, 0, 19, 51,
+			36, 17, 25, 37, 31, 44, 64, 35, 0, 18, 30, 24, 18, 34, 58, 49, 34, 17, 25, 13, 3, 28, 51, 49, 25, 30, 42, 37, 24, 28,
+			40, 6, 4, 41, 59, 55, 47, 40, 12, 6, 27, 24, 17, 51, 75, 42, 0, 12, 45, 34, 13, 19, 26, 28, 44, 66, 51, 16, 0, 6,
+			29, 60, 69, 46, 24, 21, 14, 13, 36, 57, 56, 37, 25, 13, 16, 42, 57, 43, 35, 30, 10, 19, 60, 66, 19, 16, 49, 42, 14, 11,
+			26, 42, 42, 23, 12, 20, 50, 55, 46, 47, 33, 250, 248, 51, 71, 29, 9, 41, 53, 37, 46, 56, 31, 255, 6, 33, 40, 43, 43, 28,
+			14, 26, 50, 41, 16, 39, 50, 19, 0, 6, 21, 44, 59, 35, 0, 255, 47, 91, 70, 20, 245, 254, 39, 44, 17, 12, 38, 63, 40, 8,
+			20, 41, 21, 1, 24, 37, 10, 242, 21, 54, 68, 54, 7, 248, 12, 30, 21, 17, 24, 38, 24, 11, 19, 17, 18, 38, 48, 38, 16, 0,
+			1, 1, 19, 45, 47, 34, 18, 16, 33, 27, 19, 27, 40, 37, 3, 248, 13, 21, 17, 30, 64, 80, 32, 240, 2, 24, 255, 240, 42, 71,
+			17, 248, 30, 48, 21, 20, 30, 7, 233, 1, 50, 46, 16, 10, 9, 0, 16, 42, 49, 35, 18, 9, 7, 23, 29, 8, 3, 20, 41, 51,
+			44, 36, 21, 4, 247, 6, 35, 31, 20, 17, 15, 20, 50, 56, 22, 255, 1, 12, 21, 35, 20, 243, 252, 35, 36, 24, 28, 25, 6, 3,
+			33, 43, 17, 5, 10, 16, 37, 52, 37, 26, 29, 35, 28, 12, 11, 27, 23, 5, 2, 16, 44, 54, 29, 5, 19, 19, 253, 7, 30, 14,
+			0, 26, 51, 30, 0, 4, 37, 46, 29, 19, 12, 12, 15, 14, 3, 2, 29, 48, 27, 6, 18, 43, 19, 237, 5, 52, 45, 14, 11, 19,
+			26, 52, 53, 10, 4, 37, 34, 3, 14, 40, 25, 255, 17, 43, 28, 5, 14, 36, 23, 11, 18, 28, 41, 41, 250, 212, 251, 68, 83, 46,
+			18, 4, 251, 13, 60, 64, 19, 254, 0, 22, 43, 37, 26, 41, 46, 23, 0, 1, 17, 23, 27, 33, 29, 14, 22, 49, 32, 245, 241, 22,
+			57, 61, 41, 8, 238, 247, 24, 41, 34, 29, 28, 17, 254, 2, 45, 65, 31, 0, 6, 10, 4, 17, 41, 51, 44, 21, 0, 9, 22, 28,
+			38, 33, 8, 5, 30, 29, 28, 35, 28, 3, 5, 46, 60, 28, 3, 5, 11, 28, 42, 56, 53, 21, 240, 2, 40, 46, 43, 37, 27, 17,
+			17, 14, 9, 19, 43, 41, 25, 26, 34, 28, 29, 35, 23, 9, 12, 32, 34, 31, 37, 35, 17, 17, 38, 42, 33, 28, 30, 22, 24, 37,
+			32, 14, 12, 30, 34, 32, 47, 50, 31, 17, 8, 1, 11, 29, 47, 56, 39, 22, 16, 26, 46, 50, 48, 28, 0, 4, 34, 46, 35, 19,
+			10, 17, 33, 38, 28, 18, 27, 32, 13, 3, 25, 51, 39, 14, 12, 27, 37, 35, 28, 25, 23, 29, 36, 22, 14, 16, 27, 41, 39, 34,
+			32, 31, 28, 24, 25, 34, 32, 12, 9, 29, 42, 32, 20, 24, 28, 26, 32, 30, 21, 10, 7, 18, 39, 46, 38, 30, 21, 21, 21, 26,
+			36, 36, 11, 6, 32, 38, 28, 34, 39, 29, 17, 17, 28, 37, 33, 17, 14, 22, 22, 18, 29, 40, 35, 23, 21, 34, 31, 10, 255, 6,
+			19, 26, 33, 31, 21, 19, 27, 33, 31, 27, 19, 6, 11, 30, 22, 5, 16, 33, 40, 39, 31, 23, 8, 5, 21, 31, 22, 11, 17, 30,
+			38, 32, 25, 26, 31, 28, 20, 18, 19, 20, 26, 41, 34, 3, 247, 17, 43, 39, 29, 31, 24, 10, 6, 5, 1, 9, 31, 39, 17, 0,
+			13, 36, 31, 14, 8, 10, 20, 29, 19, 6, 11, 25, 24, 21, 34, 39, 19, 4, 19, 32, 26, 23, 33, 19, 249, 0, 35, 43, 25, 21,
+			27, 19, 4, 15, 27, 20, 16, 19, 17, 9, 13, 28, 37, 31, 27, 30, 26, 17, 13, 17, 18, 19, 32, 42, 35, 23, 22, 26, 23, 18,
+			27, 34, 33, 30, 17, 8, 13, 31, 34, 30, 36, 34, 23, 18, 17, 16, 24, 32, 27, 13, 9, 21, 33, 32, 26, 27, 26, 17, 9, 13,
+			24, 31, 32, 31, 28, 19, 13, 20, 31, 31, 29, 32, 31, 20, 12, 13, 25, 32, 30, 24, 22, 28, 26, 17, 16, 22, 27, 31, 33, 26,
+			16, 20, 27, 30, 29, 30, 26, 17, 19, 25, 27, 25, 26, 31, 30, 21, 15, 18, 26, 34, 36, 28, 15, 10, 21, 29, 27, 28, 35, 33,
+			23, 20, 24, 26, 29, 35, 31, 21, 18, 22, 28, 30, 27, 27, 31, 33, 30, 22, 18, 23, 33, 35, 26, 19, 25, 32, 28, 26, 29, 30,
+			26, 26, 26, 19, 0, 0, 175, 0, 4, 0, 1, 0, 44, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 45, 50, 30, 64,
+			60, 39, 31, 20, 9, 5, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 44, 1, 66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28,
+			70, 104, 44, 92, 87, 57, 44, 29, 13, 7, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 44, 1, 66, 3, 216, 4, 240, 10, 112, 13,
+			48, 15, 32, 28, 60, 80, 45, 77, 82, 54, 42, 27, 13, 6, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 44, 1, 66, 3, 216, 4,
+			84, 11, 152, 13, 80, 15, 32, 28, 0, 30, 37, 35, 56, 37, 29, 19, 9, 4, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 45, 0, 5, 0,
+			1, 0, 240, 0, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 45, 61, 34, 63, 75, 41, 34, 29, 11, 5, 165, 148, 135, 120,
+			120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0,
+			1, 250, 0, 0, 3, 0, 248, 0, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 130, 112, 43, 86, 102, 55, 46, 39, 15, 7,
+			165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 218, 0, 120, 2, 169, 3, 161, 10, 109, 12, 71, 14, 60, 27, 55, 109, 34, 71, 93, 53,
+			42, 37, 17, 8, 166, 145, 137, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 144, 0, 208, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 40, 67,
+			25, 64, 64, 45, 41, 24, 17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 144, 0, 208, 1, 12, 3, 196, 9, 254, 11, 157, 14,
+			216, 26, 0, 42, 19, 51, 51, 35, 32, 19, 14, 6, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 195, 0, 4, 0, 1, 0, 141, 0, 80, 1,
+			204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 45, 36, 12, 54, 51, 51, 49, 30, 11, 9, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0,
+			141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 75, 63, 16, 72, 68, 68, 65, 39, 15, 12, 174, 115, 127, 122, 122, 132,
+			187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 75, 46, 13, 61, 57, 57, 55, 33, 12, 10, 174, 115,
+			127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0,
+			0, 0, 240, 250, 209, 182, 1, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 0, 30, 11, 49, 46, 47, 45, 27,
+			10, 8, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 210, 0, 5, 0, 1, 0, 171, 0, 105, 1, 248, 7, 2, 11, 28, 13, 224, 14, 196, 26,
+			45, 29, 17, 48, 48, 38, 38, 24, 10, 5, 167, 113, 125, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 214, 0, 18, 2, 160, 6, 203, 10, 77, 13,
+			4, 15, 79, 27, 60, 58, 30, 71, 73, 55, 50, 32, 14, 7, 175, 128, 129, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 24, 1, 16, 3, 156, 4,
+			120, 10, 152, 13, 60, 15, 32, 28, 60, 73, 36, 66, 79, 56, 43, 28, 13, 7, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 24, 1,
+			16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 65, 37, 62, 75, 52, 40, 27, 12, 6, 186, 152, 135, 120, 120, 120, 192, 155,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 0, 43, 30, 50, 61, 42, 33, 22, 10, 5, 186, 152, 135, 120,
+			120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191,
+			251, 250, 194, 182, 203, 0, 6, 0, 1, 0, 200, 0, 29, 1, 245, 8, 36, 11, 186, 12, 165, 15, 244, 26, 61, 64, 0, 88, 56, 44,
+			48, 36, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+			3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 200, 0, 34, 2, 165, 7, 70, 9, 110, 13, 79, 15, 244, 26, 70, 85,
+			40, 88, 68, 64, 40, 20, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 9, 3, 208, 4, 241, 9, 60, 13, 194, 14,
+			244, 26, 72, 99, 52, 96, 92, 48, 44, 32, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10,
+			2, 13, 238, 14, 192, 27, 61, 140, 52, 95, 114, 62, 51, 43, 16, 8, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 200, 0, 145, 2,
+			228, 3, 118, 10, 225, 12, 56, 15, 244, 26, 60, 127, 48, 108, 68, 40, 44, 28, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0,
+			200, 0, 45, 2, 57, 3, 209, 10, 2, 13, 122, 15, 244, 26, 0, 106, 46, 86, 54, 36, 32, 18, 14, 7, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 48, 250,
+			48, 0, 215, 0, 5, 0, 33, 0, 173, 0, 64, 1, 156, 8, 220, 10, 66, 13, 19, 15, 228, 26, 45, 44, 12, 60, 60, 59, 56, 29,
+			13, 6, 182, 105, 128, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0,
+			0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 173, 0, 64, 1, 156, 8, 220, 10, 66, 13, 19, 15, 228, 26, 40, 56, 14, 68,
+			68, 66, 64, 32, 14, 7, 182, 105, 128, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 244, 0, 229, 1, 108, 7, 82, 10, 89, 13, 17, 15, 34, 28,
+			90, 58, 28, 67, 66, 65, 55, 35, 13, 8, 221, 122, 147, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 31, 1, 72, 2, 204, 6, 0, 10, 104, 13,
+			15, 15, 224, 28, 40, 43, 31, 56, 56, 55, 42, 31, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 31, 1, 72, 2, 204, 6,
+			0, 10, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48, 48, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 225, 0, 5, 0,
+			1, 0, 136, 0, 44, 1, 8, 7, 96, 9, 148, 12, 41, 14, 144, 26, 45, 27, 13, 56, 44, 37, 29, 23, 11, 0, 120, 120, 105, 120,
+			120, 120, 60, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0,
+			1, 250, 0, 0, 3, 0, 136, 0, 164, 1, 120, 5, 196, 9, 48, 12, 41, 14, 144, 26, 40, 52, 27, 82, 60, 46, 40, 29, 19, 0,
+			120, 120, 112, 120, 120, 120, 60, 75, 112, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 192, 0, 40, 2, 132, 3, 20, 10, 204, 11, 96, 14, 88, 27, 80, 106, 35, 84, 81, 51,
+			49, 28, 18, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 60, 105,
+			32, 76, 83, 46, 44, 26, 16, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14,
+			159, 27, 0, 55, 23, 55, 60, 34, 32, 18, 12, 5, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 102, 0, 6, 0, 1, 0, 200, 0, 14, 1,
+			21, 9, 210, 11, 91, 12, 164, 15, 244, 26, 43, 65, 3, 83, 38, 41, 38, 38, 11, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0,
+			144, 0, 76, 1, 251, 8, 200, 10, 111, 12, 209, 14, 244, 26, 60, 104, 11, 102, 72, 64, 60, 49, 15, 9, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 104, 0, 154, 1, 228, 6, 50, 9, 139, 12, 250, 14, 244, 26, 107, 56, 33, 69, 42, 48, 42, 27, 12, 6, 187, 125,
+			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0,
+			0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 207, 1, 11, 4, 244, 9, 110, 12, 228, 14, 244, 26, 124, 75, 32, 80, 54, 35, 25, 16,
+			12, 6, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 104, 0, 168, 1, 29, 3, 47, 10, 55, 12, 77, 15, 244, 26, 35, 84, 41, 76,
+			64, 22, 15, 7, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0, 200, 0, 114, 1, 202, 2, 115, 10, 103, 12, 72, 15, 244, 26,
+			0, 64, 24, 63, 45, 21, 15, 9, 12, 6, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 48, 250, 48, 0, 160, 0, 4, 0, 1, 0, 132, 0, 8, 2, 136, 4,
+			136, 9, 128, 12, 156, 14, 84, 27, 50, 40, 30, 52, 60, 40, 33, 28, 16, 6, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 132, 0,
+			8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 60, 71, 40, 70, 80, 54, 44, 38, 22, 8, 167, 148, 143, 120, 120, 120, 197, 135,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 53, 34, 60, 69, 46, 38, 33, 19, 7, 167, 148, 143, 120,
+			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0,
+			240, 250, 209, 182, 1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 0, 33, 27, 48, 55, 37, 30, 26, 15, 5,
+			167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 239, 0, 5, 0, 1, 0, 80, 0, 96, 1, 52, 3, 193, 10, 228, 12, 114, 15, 244, 26, 87, 79,
+			30, 80, 61, 42, 30, 0, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 80, 0, 191, 1, 17, 3, 196, 10, 108, 12, 119, 15,
+			244, 26, 50, 97, 53, 83, 53, 41, 38, 34, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 80, 2, 81, 3, 120, 10,
+			94, 12, 201, 14, 244, 26, 53, 122, 49, 83, 79, 38, 30, 19, 19, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 57, 3,
+			115, 4, 10, 10, 41, 12, 214, 13, 244, 26, 49, 96, 50, 90, 75, 54, 28, 39, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			200, 0, 57, 3, 115, 4, 10, 10, 41, 12, 214, 13, 244, 26, 0, 97, 54, 90, 75, 54, 28, 39, 14, 7, 187, 125, 137, 137, 150, 175,
+			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250,
+			194, 182, 14, 1, 6, 0, 1, 0, 200, 0, 68, 1, 46, 3, 69, 11, 54, 13, 160, 15, 244, 26, 48, 50, 11, 68, 41, 15, 11, 0,
+			15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0,
+			0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 200, 0, 124, 1, 239, 2, 107, 10, 86, 12, 52, 16, 244, 26, 45, 96, 30, 79,
+			57, 26, 22, 15, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 197, 2, 187, 3, 240, 9, 163, 12, 23, 15, 244, 26,
+			67, 134, 49, 91, 83, 49, 38, 30, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 224, 0, 30, 3, 60, 5, 1, 9, 112, 13,
+			119, 14, 244, 26, 70, 94, 49, 106, 68, 57, 38, 0, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 200, 0, 190, 1, 106, 8,
+			33, 10, 134, 12, 93, 14, 244, 26, 40, 58, 27, 69, 54, 46, 34, 31, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0, 200, 0,
+			190, 1, 106, 8, 33, 10, 134, 12, 93, 14, 244, 26, 0, 23, 17, 44, 34, 29, 22, 19, 7, 4, 187, 125, 137, 137, 150, 175, 187, 125,
+			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 48, 250, 48, 0,
+			38, 1, 6, 0, 1, 0, 200, 0, 126, 1, 12, 3, 253, 9, 107, 12, 48, 14, 244, 26, 46, 107, 24, 88, 72, 40, 40, 40, 16, 8,
+			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+			3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 168, 0, 215, 1, 238, 3, 112, 9, 161, 12, 217, 14, 244, 26, 50, 145, 48, 100, 100, 44,
+			40, 44, 16, 8, 187, 125, 175, 137, 150, 175, 187, 125, 175, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 200, 0, 203, 1, 170, 6, 140, 8, 3, 12, 148, 13, 244, 26, 62, 128,
+			45, 98, 60, 91, 68, 38, 15, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 200, 0, 176, 1, 88, 8, 132, 9, 72, 12, 130, 14,
+			244, 26, 60, 81, 32, 75, 68, 57, 57, 32, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 176, 0, 88, 1, 180, 8, 228, 10,
+			161, 12, 16, 15, 244, 26, 76, 85, 12, 92, 64, 60, 56, 28, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0, 152, 0, 72, 1,
+			232, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 46, 26, 66, 44, 44, 37, 29, 11, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 48, 250, 48, 0, 240, 0,
+			6, 0, 1, 0, 142, 0, 62, 1, 138, 2, 166, 9, 38, 12, 203, 14, 24, 27, 40, 35, 7, 66, 37, 18, 19, 14, 8, 4, 148, 126,
+			80, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0,
+			0, 0, 1, 250, 0, 0, 3, 0, 142, 0, 62, 1, 138, 2, 166, 9, 38, 12, 203, 14, 24, 27, 40, 39, 8, 69, 39, 18, 20, 15,
+			8, 4, 148, 126, 80, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 147, 0, 85, 1, 159, 2, 185, 9, 25, 12, 193, 14, 37, 27, 40, 38, 10, 68,
+			43, 21, 22, 20, 9, 4, 151, 127, 85, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14, 159, 27,
+			70, 99, 31, 74, 81, 45, 43, 25, 16, 6, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11,
+			53, 14, 160, 27, 50, 81, 30, 71, 86, 42, 41, 23, 15, 6, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 1, 0, 184, 0, 72, 2, 172, 3,
+			20, 10, 164, 11, 53, 14, 160, 27, 0, 46, 23, 54, 64, 32, 30, 18, 11, 4, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 48, 250, 48, 0, 205, 0, 5, 0,
+			1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 27, 15, 48, 33, 28, 30, 28, 7, 10, 160, 90, 135, 120,
+			120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0,
+			1, 250, 0, 0, 3, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 40, 38, 18, 58, 39, 33, 36, 33, 9, 12,
+			160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 142, 0, 83, 1, 156, 6, 74, 9, 252, 12, 124, 14, 151, 25, 80, 53, 24, 69, 50, 41,
+			43, 38, 11, 13, 169, 98, 137, 122, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182, 1, 0, 232, 0, 104, 3, 160, 5, 160, 10, 216, 13, 120, 15, 102, 27, 40, 84,
+			44, 78, 82, 54, 44, 30, 14, 5, 255, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 232, 0, 104, 3, 160, 5, 160, 10, 216, 13, 120, 15,
+			102, 27, 0, 45, 32, 57, 60, 40, 32, 22, 10, 4, 255, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 205, 0, 5, 0, 1, 0, 147, 0, 22, 1,
+			238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 45, 38, 10, 60, 51, 47, 50, 28, 12, 7, 167, 101, 123, 120, 120, 120, 167, 90, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0,
+			132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 30, 40, 18, 58, 39, 36, 36, 33, 9, 12, 167, 90, 135, 120, 120, 120,
+			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 147, 0, 54, 1, 186, 6, 58, 9, 241, 12, 113, 14, 189, 25, 80, 54, 23, 68, 49, 43, 44, 39, 11, 13, 168, 94,
+			137, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0,
+			0, 0, 240, 250, 209, 182, 1, 0, 3, 1, 17, 2, 200, 6, 216, 9, 80, 13, 239, 14, 63, 28, 50, 61, 34, 68, 64, 62, 50, 38,
+			12, 9, 228, 124, 154, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 31, 1, 72, 2, 204, 6, 0, 10, 104, 13, 15, 15, 224, 28, 0, 35, 28, 51,
+			50, 49, 38, 28, 9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
+			0, 0, 1, 0, 0, 0, 108, 65, 227, 191, 251, 250, 194, 182, 0, 0, 5, 0, 1, 0, 132, 0, 16, 1, 8, 7, 232, 8, 228, 12,
+			96, 14, 100, 25, 40, 39, 18, 57, 39, 36, 36, 33, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 250, 0, 0, 3, 0, 132, 0, 16, 1, 8, 7,
+			232, 8, 228, 12, 96, 14, 100, 25, 65, 61, 22, 72, 49, 45, 45, 41, 11, 15, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0,
+			52, 1, 219, 6, 6, 9, 218, 12, 241, 14, 225, 25, 50, 59, 24, 70, 54, 45, 46, 39, 13, 13, 167, 105, 135, 120, 120, 120, 167, 135,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 3, 0, 0, 0, 240, 250, 209, 182,
+			1, 0, 116, 0, 160, 1, 84, 6, 96, 9, 188, 12, 164, 16, 88, 27, 40, 33, 23, 48, 51, 34, 37, 25, 15, 6, 167, 150, 135, 120,
+			120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182,
+			1, 250, 0, 0, 1, 0, 116, 0, 224, 1, 44, 6, 116, 9, 12, 13, 224, 16, 88, 27, 0, 30, 24, 48, 50, 34, 34, 21, 13, 5,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+			108, 65, 227, 191, 251, 250, 194, 182, 174, 0, 4, 0, 1, 0, 136, 0, 200, 1, 216, 4, 96, 9, 100, 12, 156, 14, 12, 27, 44, 39,
+			25, 55, 58, 34, 33, 25, 14, 5, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 136, 0, 200, 1, 216, 4, 96, 9, 100, 12, 156, 14,
+			12, 27, 80, 58, 31, 67, 71, 41, 40, 30, 17, 6, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 136, 0, 200, 1, 216, 4, 96, 9,
+			100, 12, 156, 14, 12, 27, 50, 52, 29, 63, 67, 39, 38, 28, 16, 6, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 136, 0, 200, 1,
+			216, 4, 96, 9, 100, 12, 156, 14, 12, 27, 0, 35, 24, 52, 55, 32, 31, 23, 13, 5, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 160, 0,
+			4, 0, 1, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27, 50, 42, 31, 57, 60, 33, 36, 28, 16, 6, 168, 147,
+			130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27, 60, 75, 42, 76, 80, 44, 49, 38,
+			22, 8, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27, 50, 57, 36, 66,
+			69, 38, 42, 33, 19, 7, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27,
+			0, 35, 28, 52, 55, 30, 33, 26, 15, 5, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 160, 0, 4, 0, 1, 0, 169, 0, 193, 1, 89, 3,
+			196, 9, 244, 11, 146, 14, 186, 26, 50, 43, 23, 52, 55, 34, 29, 20, 14, 4, 163, 130, 148, 120, 120, 120, 162, 120, 165, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 169, 0,
+			193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 70, 85, 33, 72, 77, 48, 41, 28, 20, 6, 163, 130, 148, 120, 120, 120, 162, 120,
+			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 40, 71, 30, 66, 71, 44, 38, 25, 18, 6, 163, 130, 148, 120,
+			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 0, 43, 23, 52, 55, 34, 29, 20, 14, 4,
+			163, 130, 148, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 165, 0, 4, 0, 1, 0, 180, 0, 144, 1, 216, 4, 152, 8, 148, 12, 226, 14, 144, 26, 45, 36,
+			24, 51, 51, 36, 36, 30, 15, 7, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 180, 0, 144, 1, 216, 4, 152, 8, 148, 12, 226, 14,
+			144, 26, 80, 65, 32, 68, 68, 48, 48, 40, 20, 10, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 180, 0, 144, 1, 216, 4, 152, 8,
+			148, 12, 226, 14, 144, 26, 40, 58, 30, 64, 64, 45, 45, 38, 19, 9, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 180, 0, 144, 1,
+			216, 4, 152, 8, 148, 12, 226, 14, 144, 26, 0, 31, 22, 47, 47, 33, 33, 28, 14, 7, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 185, 0,
+			4, 0, 1, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27, 45, 59, 31, 64, 78, 41, 48, 37, 19, 7, 167, 150,
+			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190,
+			111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27, 80, 73, 35, 72, 86, 45, 53, 41,
+			21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64,
+			0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27, 60, 59, 31, 64,
+			78, 41, 48, 37, 19, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186,
+			209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27,
+			0, 73, 35, 72, 86, 45, 53, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 170, 0, 4, 0, 1, 0, 246, 0, 80, 2, 164, 6,
+			201, 9, 70, 13, 255, 14, 73, 28, 50, 33, 27, 49, 54, 44, 34, 25, 9, 5, 219, 138, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 246, 0,
+			80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 60, 83, 43, 78, 87, 70, 54, 39, 15, 8, 219, 138, 158, 120, 120, 120, 135, 180,
+			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 60, 74, 40, 74, 82, 67, 51, 37, 14, 8, 219, 138, 158, 120,
+			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 0, 33, 27, 49, 54, 44, 34, 25, 9, 5,
+			219, 138, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 190, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 40, 23,
+			14, 45, 31, 26, 28, 26, 7, 9, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14,
+			100, 25, 30, 48, 20, 64, 44, 37, 40, 37, 10, 13, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 166, 0, 136, 1, 18, 7, 138, 9,
+			228, 12, 56, 14, 242, 26, 40, 68, 30, 76, 60, 65, 57, 45, 13, 13, 160, 97, 131, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 6, 1, 33, 2,
+			26, 7, 232, 9, 77, 13, 228, 14, 125, 28, 80, 71, 37, 72, 73, 69, 54, 41, 13, 9, 227, 125, 153, 120, 120, 120, 160, 135, 135, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0,
+			31, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120,
+			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250,
+			0, 0, 125, 0, 5, 0, 13, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14, 220, 15, 32, 29, 0, 19, 7, 46, 7, 28, 21, 10,
+			7, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 13, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14, 220, 15, 32, 29, 50, 19, 7, 46,
+			7, 28, 21, 10, 7, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14, 220, 15, 32, 29,
+			45, 17, 6, 44, 10, 27, 20, 10, 6, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14,
+			220, 15, 32, 29, 30, 13, 6, 39, 9, 24, 18, 9, 6, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 76, 0, 224, 0, 136, 9,
+			4, 11, 156, 14, 220, 15, 32, 29, 0, 15, 6, 41, 9, 28, 22, 12, 6, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 105, 0, 4, 0,
+			1, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 35, 19, 7, 46, 10, 28, 18, 10, 5, 3, 150, 115, 97, 120,
+			120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182,
+			1, 250, 0, 0, 13, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 40, 19, 7, 46, 10, 28, 18, 10, 5, 3,
+			150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191,
+			233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 30, 19, 7, 46, 10, 28,
+			18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182,
+			49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 0, 19,
+			7, 46, 10, 28, 18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 65, 0, 3, 0, 5, 0, 140, 0, 224, 1, 178, 3, 84, 11,
+			152, 13, 104, 16, 0, 27, 35, 16, 16, 43, 23, 15, 10, 13, 7, 0, 160, 150, 120, 120, 120, 120, 145, 60, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 140, 0, 224, 1,
+			178, 3, 84, 11, 152, 13, 104, 16, 0, 27, 30, 20, 18, 48, 25, 17, 12, 14, 8, 0, 160, 150, 120, 120, 120, 120, 145, 60, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			140, 0, 224, 1, 178, 3, 84, 11, 152, 13, 104, 16, 0, 27, 0, 20, 18, 48, 25, 17, 12, 14, 8, 0, 160, 150, 120, 120, 120, 120,
+			145, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 170, 0, 4, 0, 1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 45, 52, 22, 54, 54, 36, 34, 22,
+			14, 6, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 70, 92, 30, 72,
+			72, 48, 46, 30, 19, 8, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27,
+			55, 83, 28, 68, 68, 45, 43, 28, 18, 8, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12,
+			236, 14, 38, 27, 0, 45, 21, 50, 50, 33, 32, 21, 13, 5, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 35, 0, 3, 0, 5, 0, 224, 0,
+			248, 2, 140, 5, 60, 10, 20, 13, 175, 14, 117, 27, 35, 24, 21, 43, 36, 31, 26, 21, 9, 2, 196, 162, 200, 120, 120, 120, 249, 174,
+			255, 44, 35, 70, 130, 50, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0,
+			5, 0, 224, 0, 248, 2, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 40, 22, 21, 41, 35, 30, 25, 21, 8, 2, 196, 162, 200, 120,
+			120, 120, 249, 174, 255, 44, 35, 70, 130, 50, 0, 0, 0, 0, 45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182,
+			200, 250, 21, 8, 1, 0, 208, 0, 224, 2, 100, 5, 236, 9, 1, 13, 155, 14, 105, 27, 0, 22, 21, 42, 30, 22, 20, 20, 9, 2,
+			192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 35, 70, 130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182,
+			29, 32, 0, 0, 240, 250, 209, 182, 45, 0, 3, 0, 5, 0, 224, 0, 216, 2, 80, 5, 232, 8, 20, 13, 175, 14, 117, 27, 45, 15,
+			19, 32, 27, 23, 19, 16, 6, 1, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 46, 0, 0, 0, 0, 45, 0, 0, 0,
+			0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 5, 0, 224, 0, 216, 2, 80, 5, 232, 8, 20, 13, 175, 14,
+			117, 27, 35, 22, 20, 40, 34, 29, 24, 20, 8, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 50, 0, 0, 0, 0,
+			45, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 224, 0, 216, 2, 80, 5, 232, 8,
+			20, 13, 175, 14, 117, 27, 0, 23, 21, 41, 34, 30, 25, 20, 8, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 50,
+			0, 0, 0, 0, 45, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 199, 7, 49, 0, 6, 7,
+			6, 7, 6, 6, 3, 4, 1, 3, 232, 221, 255, 253, 1, 246, 234, 38, 20, 20, 249, 11, 15, 37, 242, 0, 223, 1, 242, 224, 248, 229,
+			2, 0, 244, 3, 39, 10, 27, 238, 36, 13, 2, 233, 224, 225, 240, 219, 218, 221, 237, 4, 13, 12, 25, 14, 37, 219, 243, 224, 244, 213,
+			217, 230, 34, 40, 20, 19, 19, 65, 20, 240, 235, 232, 251, 242, 239, 255, 19, 7, 5, 245, 254, 241, 220, 205, 220, 230, 240, 234, 228, 7,
+			25, 35, 19, 13, 30, 29, 24, 244, 3, 253, 247, 252, 227, 19, 2, 20, 253, 31, 12, 39, 7, 244, 247, 244, 245, 229, 202, 210, 242, 245,
+			238, 246, 249, 41, 32, 10, 31, 17, 28, 19, 243, 255, 2, 245, 253, 238, 0, 24, 11, 12, 24, 22, 25, 16, 243, 254, 252, 236, 232, 173,
+			27, 27, 7, 222, 38, 97, 105, 9, 251, 67, 56, 20, 196, 211, 0, 24, 230, 246, 1, 51, 59, 18, 10, 50, 36, 17, 222, 237, 13, 250,
+			216, 221, 253, 24, 17, 248, 12, 39, 30, 30, 243, 239, 192, 215, 187, 180, 173, 203, 244, 247, 25, 17, 56, 61, 58, 22, 0, 1, 225, 228,
+			193, 222, 230, 253, 0, 3, 20, 50, 18, 19, 10, 253, 246, 223, 203, 223, 219, 212, 238, 234, 20, 10, 20, 25, 24, 22, 8, 250, 229, 224,
+			228, 238, 210, 236, 233, 255, 10, 30, 19, 24, 37, 14, 6, 248, 213, 238, 211, 221, 222, 241, 0, 16, 8, 61, 48, 66, 34, 47, 21, 10,
+			253, 220, 221, 225, 217, 243, 2, 253, 33, 8, 44, 53, 14, 11, 254, 251, 239, 219, 214, 219, 235, 227, 244, 0, 17, 16, 24, 20, 39, 16,
+			1, 0, 246, 248, 253, 220, 243, 231, 10, 3, 18, 16, 54, 42, 42, 31, 17, 29, 17, 242, 252, 223, 4, 245, 1, 234, 57, 35, 22, 33,
+			16, 19, 6, 219, 202, 236, 193, 215, 200, 248, 22, 23, 16, 64, 52, 76, 45, 45, 67, 62, 30, 39, 19, 44, 36, 11, 25, 35, 40, 9,
+			226, 201, 234, 186, 152, 133, 162, 197, 193, 162, 194, 0, 7, 4, 2, 17, 39, 22, 240, 241, 245, 2, 247, 239, 16, 42, 59, 55, 57, 77,
+			97, 59, 41, 22, 28, 13, 239, 202, 212, 222, 210, 213, 219, 236, 247, 238, 233, 230, 208, 211, 194, 196, 186, 193, 200, 197, 205, 232, 254, 5,
+			9, 26, 26, 49, 21, 23, 29, 21, 39, 30, 5, 32, 33, 10, 14, 17, 15, 33, 4, 238, 7, 247, 236, 231, 225, 238, 0, 245, 223, 220,
+			226, 247, 242, 226, 4, 251, 19, 0, 249, 6, 19, 24, 38, 19, 49, 37, 28, 24, 11, 10, 18, 1, 15, 47, 39, 35, 28, 43, 24, 6,
+			251, 246, 2, 0, 223, 244, 250, 237, 240, 242, 246, 2, 249, 0, 3, 7, 7, 13, 255, 0, 0, 251, 219, 240, 245, 8, 0, 9, 36, 42,
+			40, 25, 14, 36, 33, 252, 5, 242, 1, 252, 250, 2, 24, 27, 47, 6, 19, 25, 254, 238, 230, 215, 222, 228, 235, 251, 17, 15, 3, 7,
+			5, 248, 232, 194, 200, 232, 187, 213, 196, 2, 7, 15, 1, 28, 10, 7, 241, 227, 230, 210, 214, 206, 238, 242, 233, 243, 13, 11, 27, 37,
+			19, 26, 7, 239, 196, 199, 180, 213, 190, 231, 253, 28, 44, 67, 54, 74, 39, 7, 2, 234, 211, 212, 212, 225, 233, 7, 10, 31, 47, 59,
+			48, 58, 9, 2, 243, 213, 220, 213, 201, 232, 244, 0, 2, 14, 32, 31, 35, 254, 250, 229, 208, 215, 189, 207, 223, 244, 20, 18, 44, 59,
+			37, 27, 40, 25, 29, 254, 242, 248, 248, 14, 8, 20, 45, 57, 74, 59, 71, 79, 72, 37, 21, 5, 242, 244, 248, 9, 10, 41, 43, 55,
+			54, 63, 48, 37, 30, 6, 252, 239, 206, 231, 227, 219, 252, 12, 10, 35, 30, 49, 40, 39, 35, 18, 25, 5, 1, 237, 230, 228, 218, 224,
+			225, 231, 251, 253, 224, 233, 224, 233, 207, 204, 192, 223, 200, 195, 201, 218, 217, 216, 233, 233, 237, 244, 236, 6, 6, 246, 8, 7, 13, 28,
+			13, 23, 31, 33, 43, 23, 28, 31, 38, 33, 7, 25, 247, 2, 247, 249, 231, 246, 244, 244, 237, 252, 4, 0, 248, 255, 10, 253, 243, 251,
+			234, 254, 237, 235, 226, 243, 224, 247, 239, 2, 1, 4, 12, 8, 8, 251, 247, 250, 245, 243, 236, 247, 0, 2, 247, 3, 245, 249, 243, 229,
+			236, 227, 237, 236, 253, 244, 3, 5, 7, 10, 14, 8, 254, 11, 8, 34, 18, 25, 16, 47, 28, 37, 18, 22, 28, 35, 30, 36, 41, 26,
+			34, 39, 25, 34, 24, 245, 0, 20, 228, 252, 220, 231, 252, 233, 214, 249, 232, 237, 243, 234, 250, 243, 206, 235, 221, 237, 243, 224, 238, 0,
+			0, 6, 246, 252, 12, 21, 25, 9, 17, 6, 5, 7, 241, 254, 238, 236, 242, 243, 5, 248, 253, 252, 0, 237, 251, 223, 250, 217, 237, 228,
+			226, 243, 239, 12, 2, 23, 9, 37, 37, 19, 25, 4, 19, 255, 0, 248, 249, 248, 3, 235, 246, 255, 249, 239, 249, 18, 17, 14, 8, 16,
+			10, 7, 248, 0, 255, 251, 254, 16, 4, 8, 22, 28, 33, 28, 26, 39, 30, 36, 38, 48, 43, 48, 72, 25, 48, 39, 49, 47, 33, 37,
+			40, 15, 17, 251, 255, 241, 218, 223, 213, 206, 221, 217, 226, 209, 238, 241, 0, 247, 253, 232, 241, 242, 244, 235, 240, 0, 12, 2, 36, 14,
+			13, 27, 8, 6, 1, 231, 232, 226, 223, 236, 204, 251, 215, 239, 252, 242, 251, 236, 238, 249, 209, 220, 202, 189, 203, 196, 193, 208, 210, 236,
+			228, 10, 255, 14, 12, 9, 8, 248, 6, 0, 254, 248, 8, 27, 31, 23, 48, 66, 64, 77, 44, 60, 31, 53, 4, 29, 11, 13, 26, 18,
+			18, 21, 26, 29, 20, 25, 24, 20, 7, 9, 18, 14, 237, 19, 253, 255, 247, 250, 252, 6, 0, 252, 8, 245, 17, 4, 14, 13, 30, 252,
+			25, 254, 6, 17, 229, 4, 243, 238, 250, 239, 250, 234, 248, 238, 249, 243, 243, 252, 244, 254, 244, 1, 249, 248, 230, 253, 239, 241, 244, 242,
+			251, 9, 244, 248, 5, 6, 254, 231, 223, 237, 211, 215, 209, 229, 241, 229, 232, 239, 227, 246, 221, 232, 231, 232, 232, 224, 238, 247, 253, 242,
+			0, 8, 9, 251, 254, 0, 11, 251, 248, 6, 5, 9, 1, 4, 10, 7, 16, 12, 9, 13, 23, 13, 19, 25, 18, 25, 25, 31, 33, 17,
+			13, 27, 5, 35, 8, 27, 26, 38, 22, 26, 8, 19, 1, 8, 252, 253, 4, 254, 253, 7, 11, 17, 4, 15, 35, 7, 16, 22, 17, 24,
+			15, 13, 31, 14, 28, 21, 16, 14, 4, 17, 0, 254, 5, 2, 11, 255, 9, 0, 246, 0, 0, 0, 243, 238, 251, 248, 234, 242, 255, 249,
+			246, 251, 2, 0, 247, 239, 5, 239, 229, 242, 227, 243, 217, 219, 228, 217, 226, 227, 224, 242, 227, 249, 250, 226, 255, 247, 243, 249, 238, 10,
+			238, 238, 242, 232, 252, 228, 229, 0, 242, 0, 254, 6, 20, 251, 22, 28, 18, 30, 24, 25, 21, 14, 26, 6, 22, 7, 19, 34, 22, 28,
+			22, 24, 23, 8, 16, 25, 12, 16, 15, 10, 12, 4, 7, 3, 12, 1, 9, 3, 247, 1, 251, 247, 254, 246, 248, 249, 229, 249, 231, 244,
+			239, 246, 253, 252, 0, 0, 0, 247, 251, 246, 248, 241, 236, 245, 225, 221, 244, 226, 238, 246, 241, 255, 6, 6, 22, 1, 18, 18, 11, 18,
+			3, 22, 10, 5, 22, 5, 251, 2, 231, 249, 248, 240, 0, 253, 8, 27, 15, 23, 30, 27, 29, 16, 11, 10, 253, 247, 237, 241, 235, 227,
+			231, 233, 234, 249, 253, 0, 9, 254, 6, 3, 255, 9, 250, 248, 246, 252, 243, 235, 239, 234, 2, 233, 238, 251, 253, 244, 250, 243, 5, 14,
+			249, 16, 9, 13, 9, 7, 20, 11, 16, 7, 9, 9, 0, 254, 243, 244, 4, 0, 251, 17, 16, 23, 26, 13, 35, 30, 16, 21, 19, 28,
+			25, 19, 32, 27, 33, 28, 28, 33, 25, 11, 11, 7, 5, 252, 245, 251, 0, 253, 253, 252, 254, 252, 249, 253, 244, 255, 246, 254, 244, 4,
+			251, 254, 237, 244, 254, 245, 253, 252, 5, 1, 2, 1, 12, 254, 236, 235, 229, 225, 223, 218, 233, 224, 239, 247, 253, 249, 253, 254, 252, 248,
+			3, 255, 248, 248, 251, 0, 252, 2, 253, 3, 251, 1, 254, 3, 255, 5, 248, 23, 6, 1, 251, 250, 249, 242, 238, 239, 248, 232, 240, 251,
+			255, 8, 3, 10, 5, 1, 2, 254, 253, 250, 4, 254, 0, 247, 255, 239, 255, 0, 22, 4, 17, 20, 20, 14, 17, 24, 23, 8, 5, 5,
+			254, 239, 231, 235, 239, 245, 248, 6, 9, 15, 4, 14, 1, 14, 0, 0, 0, 11, 7, 12, 0, 13, 10, 10, 6, 17, 12, 16, 2, 17,
+			14, 22, 10, 7, 13, 0, 254, 239, 254, 235, 243, 239, 255, 255, 1, 253, 10, 255, 15, 13, 25, 16, 21, 17, 11, 0, 0, 2, 244, 247,
+			0, 13, 252, 0, 6, 9, 3, 252, 15, 8, 253, 250, 254, 253, 235, 243, 238, 243, 230, 248, 244, 239, 241, 0, 0, 254, 6, 25, 12, 0,
+			9, 11, 7, 242, 2, 2, 1, 241, 255, 249, 246, 237, 244, 247, 248, 247, 252, 247, 247, 0, 248, 2, 252, 17, 0, 255, 255, 255, 254, 237,
+			2, 4, 0, 8, 3, 18, 254, 1, 246, 255, 248, 0, 254, 0, 3, 2, 3, 0, 9, 1, 3, 248, 3, 251, 246, 238, 244, 243, 239, 245,
+			250, 7, 2, 11, 11, 16, 21, 17, 22, 12, 20, 2, 3, 241, 242, 244, 239, 242, 240, 255, 246, 251, 243, 2, 255, 0, 246, 1, 4, 1,
+			254, 255, 5, 5, 4, 0, 14, 11, 14, 3, 9, 10, 252, 248, 248, 254, 242, 244, 252, 244, 252, 246, 3, 248, 0, 7, 9, 4, 10, 20,
+			8, 4, 0, 10, 251, 252, 253, 253, 252, 254, 252, 249, 253, 244, 255, 246, 254, 244, 4, 251, 254, 237, 244, 254, 245, 253, 252, 5, 1, 2,
+			1, 12, 254, 236, 235, 229, 225, 223, 218, 233, 224, 239, 247, 253, 249, 253, 254, 252, 248, 3, 255, 248, 248, 251, 0, 252, 2, 253, 3, 251,
+			1, 254, 3, 255, 5, 248, 23, 6, 1, 251, 250, 249, 242, 238, 239, 248, 232, 240, 251, 255, 8, 3, 10, 5, 1, 2, 254, 253, 250, 4,
+			254, 0, 247, 255, 239, 255, 0, 22, 4, 17, 20, 20, 14, 17, 24, 23, 8, 5, 5, 254, 239, 231, 235, 239, 245, 248, 6, 9, 15, 4,
+			14, 1, 14, 0, 0, 0, 11, 7, 12, 0, 13, 10, 10, 6, 17, 12, 16, 2, 17, 14, 22, 10, 7, 13, 0, 254, 239, 254, 235, 243,
+			239, 255, 255, 1, 253, 10, 255, 15, 13, 25, 16, 21, 17, 11, 0, 0, 2, 244, 247, 0, 13, 252, 0, 6, 9, 3, 252, 15, 8, 253,
+			250, 254, 253, 235, 243, 238, 243, 230, 248, 244, 239, 241, 0, 0, 254, 6, 25, 12, 0, 9, 11, 7, 242, 2, 2, 1, 241, 255, 249, 246,
+			237, 244, 247, 248, 247, 252, 247, 247, 0, 248, 2, 252, 17, 0, 255, 255, 255, 254, 237, 2, 4, 0, 8, 3, 18, 254, 1, 246, 255, 248,
+			0, 254, 0, 3, 2, 3, 0, 9, 1, 0, 0, 7, 15, 22, 29, 36, 43, 50, 57, 63, 70, 76, 83, 89, 95, 101, 107, 112, 118, 123,
+			129, 134, 139, 144, 149, 153, 158, 162, 167, 171, 175, 179, 183, 187, 190, 194, 197, 201, 204, 207, 210, 213, 215, 218, 220, 223, 225, 227, 229, 231,
+			232, 234, 236, 237, 238, 239, 240, 241, 242, 243, 243, 244, 244, 244, 244, 244, 244, 244, 243, 243, 242, 241, 240, 239, 238, 237, 236, 234, 232, 231,
+			229, 227, 225, 223, 220, 218, 215, 213, 210, 207, 204, 201, 197, 194, 190, 187, 183, 179, 175, 171, 167, 162, 158, 153, 149, 144, 139, 134, 129, 123,
+			118, 112, 107, 101, 95, 89, 83, 76, 70, 63, 57, 50, 43, 36, 29, 22, 15, 7, 0, 0, 6, 0, 1, 0, 204, 0, 158, 2, 252, 4,
+			60, 10, 168, 12, 10, 15, 0, 28, 40, 47, 32, 52, 71, 39, 47, 23, 13, 7, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 204, 0,
+			93, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 50, 115, 45, 89, 101, 56, 67, 33, 20, 8, 170, 165, 150, 120, 120, 120, 170, 180,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8,
+			1, 0, 204, 0, 93, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 30, 104, 42, 84, 96, 53, 64, 32, 19, 8, 170, 165, 150, 120,
+			120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0,
+			240, 250, 209, 182, 1, 0, 190, 0, 32, 2, 242, 5, 84, 10, 240, 12, 236, 14, 9, 28, 75, 69, 37, 71, 77, 51, 55, 30, 15, 7,
+			169, 142, 163, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191,
+			145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 156, 0, 144, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 30, 37, 31, 54, 47, 57,
+			44, 32, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8,
+			28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 156, 0, 144, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31,
+			31, 49, 49, 45, 42, 33, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0, 22, 21, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 254, 255, 255, 254, 253, 251, 249,
+			245, 238, 230, 224, 229, 251, 22, 38, 34, 17, 252, 234, 229, 235, 252, 10, 15, 20, 16, 5, 250, 236, 241, 247, 254, 12, 15, 16, 3, 244,
+			232, 235, 254, 11, 24, 26, 27, 17, 250, 243, 242, 251, 1, 247, 239, 244, 4, 7, 234, 201, 193, 236, 60, 94, 65, 11, 222, 209, 192, 184,
+			221, 27, 76, 64, 17, 235, 218, 205, 200, 222, 14, 62, 62, 32, 1, 238, 233, 228, 239, 6, 26, 16, 5, 8, 239, 1, 11, 1, 28, 250,
+			249, 2, 223, 246, 247, 254, 35, 17, 3, 250, 221, 235, 241, 232, 251, 0, 27, 40, 10, 5, 242, 218, 231, 248, 13, 30, 26, 11, 248, 237,
+			236, 240, 2, 19, 19, 8, 250, 244, 237, 233, 249, 7, 20, 29, 22, 0, 240, 238, 245, 247, 248, 5, 27, 37, 23, 253, 242, 239, 248, 1,
+			249, 233, 234, 40, 82, 39, 234, 205, 234, 253, 248, 3, 8, 31, 31, 245, 251, 252, 233, 249, 248, 12, 25, 5, 8, 249, 240, 253, 244, 7,
+			34, 18, 8, 249, 236, 243, 250, 18, 18, 1, 11, 4, 7, 27, 4, 233, 228, 234, 26, 48, 25, 14, 0, 3, 5, 234, 219, 246, 33, 49,
+			30, 253, 237, 232, 231, 239, 249, 36, 65, 16, 223, 219, 249, 26, 19, 246, 238, 5, 30, 25, 13, 4, 252, 1, 253, 230, 245, 20, 20, 4,
+			247, 9, 38, 41, 13, 224, 219, 229, 203, 203, 252, 43, 65, 46, 8, 245, 224, 199, 201, 231, 14, 36, 37, 23, 253, 241, 228, 220, 254, 15,
+			11, 18, 12, 9, 3, 241, 239, 251, 252, 240, 242, 3, 17, 10, 254, 252, 0, 7, 255, 242, 240, 242, 249, 11, 20, 0, 237, 237, 250, 6,
+			9, 1, 2, 7, 247, 234, 247, 9, 9, 1, 0, 2, 252, 236, 236, 252, 10, 11, 0, 0, 2, 254, 244, 232, 239, 252, 250, 255, 15, 9,
+			247, 242, 252, 5, 4, 250, 0, 14, 1, 243, 234, 242, 18, 22, 255, 244, 249, 14, 32, 4, 221, 226, 252, 13, 14, 10, 20, 24, 4, 242,
+			236, 244, 252, 1, 16, 21, 27, 14, 243, 248, 0, 243, 247, 13, 19, 14, 3, 250, 3, 18, 3, 247, 254, 0, 20, 20, 247, 249, 5, 5,
+			0, 252, 8, 18, 253, 249, 3, 3, 20, 17, 7, 16, 13, 247, 233, 240, 250, 26, 42, 3, 240, 245, 250, 12, 18, 10, 5, 253, 6, 6,
+			244, 241, 251, 16, 12, 253, 4, 8, 1, 239, 224, 5, 39, 18, 4, 0, 245, 255, 0, 246, 2, 24, 21, 18, 22, 15, 244, 208, 227, 19,
+			24, 11, 17, 2, 230, 0, 246, 217, 19, 28, 17, 21, 246, 245, 236, 239, 245, 1, 56, 61, 6, 240, 240, 212, 253, 22, 247, 24, 33, 34,
+			3, 214, 239, 218, 251, 58, 31, 39, 43, 220, 170, 1, 35, 5, 27, 0, 10, 32, 5, 7, 248, 228, 254, 29, 29, 23, 238, 227, 24, 7,
+			213, 207, 226, 17, 66, 61, 7, 229, 249, 12, 4, 2, 3, 6, 32, 19, 226, 220, 1, 8, 245, 24, 31, 9, 29, 255, 220, 237, 2, 249,
+			232, 24, 52, 7, 248, 5, 0, 4, 3, 220, 240, 45, 37, 0, 254, 5, 249, 241, 229, 217, 250, 10, 247, 247, 13, 15, 244, 244, 249, 214,
+			217, 9, 8, 243, 252, 246, 245, 3, 241, 220, 225, 2, 16, 255, 11, 255, 221, 240, 255, 9, 31, 4, 213, 220, 252, 1, 1, 5, 16, 36,
+			14, 213, 193, 232, 26, 33, 16, 6, 242, 240, 5, 250, 218, 223, 7, 35, 7, 242, 3, 3, 247, 228, 227, 1, 22, 15, 244, 237, 248, 252,
+			245, 255, 15, 1, 0, 246, 227, 249, 4, 2, 6, 13, 13, 3, 242, 228, 246, 248, 14, 43, 12, 4, 242, 219, 233, 248, 17, 17, 26, 25,
+			253, 246, 243, 8, 253, 229, 11, 16, 5, 32, 30, 246, 232, 227, 242, 22, 12, 35, 56, 1, 241, 1, 11, 250, 232, 250, 28, 50, 250, 228,
+			11, 22, 9, 219, 217, 29, 61, 2, 223, 255, 8, 5, 239, 212, 22, 87, 27, 218, 223, 0, 24, 4, 228, 253, 79, 89, 235, 169, 233, 48,
+			17, 205, 241, 76, 83, 23, 201, 183, 223, 19, 57, 16, 17, 49, 3, 237, 247, 244, 0, 0, 9, 53, 25, 226, 239, 13, 47, 56, 247, 213,
+			4, 6, 223, 218, 235, 51, 122, 57, 223, 233, 6, 251, 200, 181, 6, 81, 62, 0, 237, 10, 18, 250, 220, 232, 2, 11, 36, 16, 248, 22,
+			21, 248, 0, 10, 1, 252, 246, 241, 209, 207, 11, 66, 96, 37, 208, 225, 249, 234, 224, 220, 21, 84, 72, 58, 27, 220, 201, 209, 228, 22,
+			37, 8, 242, 8, 36, 245, 215, 229, 218, 248, 23, 19, 10, 248, 244, 248, 2, 241, 232, 15, 2, 232, 1, 25, 9, 237, 206, 212, 17, 33,
+			4, 246, 221, 194, 207, 255, 31, 37, 10, 249, 240, 204, 215, 237, 249, 22, 25, 45, 16, 215, 210, 209, 236, 8, 13, 21, 40, 12, 213, 202,
+			209, 12, 29, 8, 11, 249, 6, 232, 186, 234, 24, 38, 38, 255, 226, 238, 230, 238, 244, 0, 45, 23, 8, 4, 226, 243, 9, 255, 242, 14,
+			37, 7, 240, 220, 220, 23, 46, 0, 0, 11, 2, 227, 195, 248, 21, 33, 47, 13, 7, 221, 199, 243, 24, 62, 38, 8, 0, 239, 253, 250,
+			224, 236, 24, 66, 54, 241, 227, 2, 250, 249, 252, 250, 21, 32, 11, 246, 241, 246, 243, 242, 1, 55, 66, 245, 188, 193, 2, 56, 40, 15,
+			17, 28, 245, 199, 203, 234, 22, 49, 45, 31, 35, 23, 224, 183, 202, 0, 52, 80, 31, 230, 245, 0, 234, 228, 247, 8, 48, 60, 249, 222,
+			236, 255, 21, 0, 23, 55, 0, 223, 189, 188, 32, 89, 50, 224, 217, 20, 7, 220, 191, 251, 75, 40, 1, 249, 252, 252, 234, 252, 19, 30,
+			35, 250, 236, 8, 12, 25, 249, 215, 239, 7, 21, 255, 2, 47, 43, 242, 207, 243, 17, 0, 221, 226, 54, 104, 34, 185, 166, 0, 65, 12,
+			209, 250, 47, 30, 240, 229, 19, 23, 246, 231, 233, 31, 49, 245, 193, 212, 52, 89, 249, 185, 254, 44, 23, 3, 238, 237, 254, 12, 4, 243,
+			15, 15, 253, 253, 221, 246, 255, 229, 253, 14, 45, 23, 206, 159, 173, 251, 57, 101, 70, 239, 196, 209, 250, 4, 247, 241, 9, 5, 228, 212,
+			219, 25, 39, 245, 234, 22, 54, 0, 194, 204, 11, 46, 2, 216, 223, 251, 36, 32, 210, 189, 13, 50, 7, 210, 203, 13, 35, 254, 242, 245,
+			35, 50, 249, 221, 231, 12, 47, 1, 175, 177, 8, 95, 97, 11, 208, 206, 215, 233, 9, 49, 61, 54, 12, 223, 207, 198, 235, 44, 80, 44,
+			249, 8, 13, 226, 195, 221, 33, 77, 69, 12, 218, 222, 224, 226, 8, 38, 35, 24, 19, 17, 232, 186, 215, 1, 53, 76, 3, 217, 252, 19,
+			5, 215, 206, 54, 114, 28, 205, 195, 239, 28, 30, 25, 6, 230, 246, 10, 254, 18, 40, 18, 242, 200, 202, 244, 16, 56, 62, 25, 2, 212,
+			199, 9, 35, 23, 29, 29, 9, 231, 230, 253, 237, 0, 60, 55, 254, 237, 12, 252, 229, 248, 250, 6, 41, 40, 3, 236, 215, 246, 34, 234,
+			214, 21, 84, 72, 252, 195, 184, 7, 44, 250, 234, 9, 68, 34, 210, 213, 238, 20, 29, 238, 246, 31, 33, 254, 221, 237, 2, 12, 250, 245,
+			47, 66, 13, 229, 214, 191, 240, 64, 58, 34, 7, 1, 37, 252, 166, 174, 253, 65, 61, 26, 56, 29, 206, 188, 188, 231, 250, 9, 108, 112,
+			18, 211, 181, 213, 252, 0, 35, 76, 22, 227, 225, 201, 244, 47, 47, 26, 0, 0, 242, 238, 248, 239, 9, 27, 0, 245, 12, 34, 24, 229,
+			193, 221, 250, 17, 16, 247, 247, 255, 251, 226, 197, 213, 24, 56, 10, 247, 255, 237, 231, 223, 248, 47, 28, 4, 6, 2, 1, 237, 241, 11,
+			4, 236, 8, 47, 1, 217, 228, 253, 17, 7, 7, 16, 241, 219, 235, 234, 221, 248, 25, 27, 2, 230, 228, 245, 252, 254, 253, 249, 254, 253,
+			249, 246, 0, 18, 12, 254, 236, 240, 6, 4, 250, 246, 2, 19, 9, 246, 233, 236, 251, 7, 8, 249, 246, 245, 252, 0, 234, 245, 5, 0,
+			15, 11, 237, 233, 1, 28, 20, 251, 243, 230, 248, 39, 30, 235, 236, 23, 36, 241, 223, 11, 23, 18, 253, 252, 9, 251, 0, 243, 2, 16,
+			242, 12, 17, 247, 230, 230, 20, 45, 27, 231, 197, 240, 21, 12, 8, 9, 33, 42, 240, 210, 219, 14, 47, 14, 3, 248, 5, 38, 5, 194,
+			202, 39, 48, 236, 232, 8, 24, 255, 202, 229, 48, 60, 12, 208, 221, 6, 5, 18, 26, 20, 10, 221, 221, 9, 28, 20, 7, 18, 26, 13,
+			237, 227, 6, 32, 17, 0, 5, 6, 28, 23, 235, 227, 18, 48, 250, 229, 10, 47, 52, 243, 223, 3, 33, 40, 244, 219, 253, 18, 24, 1,
+			245, 35, 34, 231, 221, 5, 24, 227, 206, 249, 62, 112, 32, 195, 208, 14, 22, 239, 246, 13, 21, 25, 15, 250, 7, 18, 254, 237, 223, 13,
+			55, 8, 188, 192, 6, 33, 34, 10, 231, 250, 27, 0, 200, 219, 26, 49, 25, 2, 233, 219, 247, 17, 13, 4, 3, 240, 250, 15, 0, 242,
+			225, 231, 242, 241, 17, 43, 9, 216, 225, 8, 10, 219, 198, 224, 11, 50, 19, 244, 252, 240, 215, 199, 231, 28, 33, 0, 249, 255, 230, 231,
+			248, 242, 1, 4, 239, 247, 252, 251, 249, 225, 240, 254, 235, 244, 6, 23, 19, 255, 230, 201, 228, 17, 20, 249, 235, 2, 20, 9, 221, 210,
+			255, 21, 17, 4, 236, 234, 245, 230, 243, 6, 255, 4, 250, 234, 243, 245, 233, 237, 2, 8, 7, 238, 221, 251, 11, 246, 232, 253, 11, 23,
+			2, 213, 225, 247, 17, 21, 241, 0, 12, 250, 1, 245, 229, 224, 1, 52, 24, 1, 234, 231, 8, 241, 243, 250, 18, 48, 0, 252, 251, 236,
+			253, 243, 4, 19, 38, 54, 242, 206, 233, 0, 5, 2, 31, 23, 32, 44, 233, 210, 232, 13, 12, 254, 23, 14, 3, 244, 240, 17, 29, 25,
+			8, 233, 230, 239, 20, 70, 21, 239, 16, 6, 5, 24, 4, 2, 11, 1, 7, 25, 31, 17, 240, 210, 255, 53, 50, 31, 0, 0, 14, 13,
+			0, 237, 6, 41, 48, 27, 250, 235, 242, 16, 35, 24, 9, 17, 21, 248, 224, 207, 245, 80, 78, 33, 22, 251, 237, 214, 215, 26, 32, 27,
+			58, 49, 19, 218, 167, 180, 247, 66, 94, 50, 244, 254, 12, 227, 214, 253, 27, 10, 243, 3, 62, 88, 34, 209, 177, 236, 40, 35, 4, 240,
+			248, 8, 247, 234, 254, 249, 253, 11, 7, 15, 237, 195, 215, 7, 33, 20, 15, 2, 255, 1, 221, 207, 237, 4, 16, 13, 8, 17, 7, 226,
+			207, 223, 252, 254, 251, 19, 22, 16, 14, 230, 205, 217, 242, 3, 246, 6, 24, 4, 249, 229, 216, 214, 243, 26, 24, 1, 228, 233, 251, 242,
+			238, 244, 250, 250, 253, 12, 20, 241, 199, 202, 249, 39, 4, 218, 234, 253, 254, 213, 197, 229, 10, 25, 2, 248, 229, 210, 225, 0, 1, 232,
+			7, 23, 0, 7, 246, 215, 217, 255, 20, 249, 2, 1, 244, 23, 248, 226, 0, 248, 6, 5, 236, 243, 6, 18, 246, 219, 242, 3, 17, 19,
+			237, 245, 252, 230, 249, 245, 0, 31, 23, 5, 220, 211, 246, 0, 16, 24, 34, 16, 215, 212, 226, 19, 39, 255, 29, 25, 9, 254, 206, 231,
+			254, 28, 41, 4, 25, 13, 4, 254, 209, 215, 0, 60, 59, 14, 255, 15, 29, 221, 209, 18, 29, 12, 9, 17, 3, 243, 252, 251, 12, 35,
+			5, 254, 5, 237, 250, 250, 247, 36, 22, 244, 3, 21, 5, 241, 244, 0, 24, 20, 0, 254, 251, 39, 42, 244, 235, 246, 8, 13, 15, 10,
+			246, 1, 14, 15, 5, 248, 252, 32, 40, 217, 201, 15, 39, 18, 250, 5, 15, 238, 225, 250, 14, 16, 9, 3, 4, 255, 2, 10, 255, 250,
+			237, 242, 255, 6, 47, 50, 9, 228, 197, 217, 19, 45, 27, 252, 245, 252, 244, 243, 253, 244, 251, 30, 32, 236, 198, 226, 2, 13, 13, 0,
+			3, 24, 11, 223, 222, 0, 254, 248, 6, 5, 255, 253, 22, 35, 248, 238, 229, 201, 251, 17, 4, 10, 250, 9, 24, 238, 191, 204, 6, 44,
+			35, 246, 226, 241, 7, 251, 211, 224, 4, 22, 17, 0, 246, 228, 243, 4, 239, 239, 3, 14, 6, 245, 239, 224, 226, 0, 9, 10, 19, 6,
+			241, 231, 226, 234, 3, 13, 4, 254, 255, 252, 246, 241, 221, 230, 13, 13, 0, 0, 243, 247, 255, 239, 233, 241, 17, 31, 253, 236, 238, 0,
+			17, 2, 219, 223, 19, 22, 2, 0, 227, 221, 20, 18, 241, 247, 237, 1, 14, 238, 244, 13, 9, 231, 237, 7, 7, 15, 254, 243, 11, 21,
+			243, 222, 244, 8, 31, 32, 8, 247, 251, 255, 228, 237, 21, 27, 23, 0, 248, 13, 244, 220, 245, 10, 25, 32, 26, 3, 231, 226, 246, 25,
+			21, 237, 249, 32, 27, 7, 247, 249, 7, 235, 223, 10, 33, 30, 17, 239, 252, 45, 23, 234, 228, 253, 27, 31, 24, 11, 254, 244, 236, 9,
+			37, 17, 0, 255, 16, 32, 7, 245, 3, 30, 41, 12, 255, 12, 26, 15, 221, 236, 37, 24, 0, 6, 22, 39, 20, 235, 231, 15, 41, 20,
+			253, 13, 20, 5, 255, 244, 17, 32, 251, 236, 6, 33, 32, 16, 8, 9, 245, 235, 251, 3, 32, 32, 5, 5, 1, 250, 253, 243, 243, 25,
+			55, 41, 5, 245, 238, 215, 217, 10, 51, 43, 16, 5, 0, 236, 227, 238, 1, 14, 15, 23, 4, 241, 242, 247, 2, 13, 22, 8, 237, 229,
+			3, 28, 14, 255, 238, 249, 19, 22, 4, 233, 250, 17, 7, 245, 238, 3, 31, 24, 234, 226, 9, 36, 13, 218, 223, 23, 41, 253, 229, 243,
+			2, 20, 248, 228, 12, 11, 247, 248, 255, 1, 247, 254, 1, 14, 20, 247, 248, 18, 4, 230, 247, 247, 245, 39, 24, 243, 241, 248, 9, 254,
+			254, 1, 2, 13, 246, 232, 244, 249, 0, 17, 24, 5, 238, 240, 14, 2, 219, 233, 26, 52, 13, 236, 230, 245, 17, 249, 234, 250, 24, 50,
+			3, 230, 235, 241, 3, 7, 20, 24, 12, 250, 225, 241, 12, 12, 0, 238, 251, 17, 3, 251, 244, 2, 15, 250, 251, 3, 2, 2, 9, 6,
+			250, 247, 246, 2, 2, 4, 14, 253, 245, 252, 5, 248, 234, 246, 252, 24, 37, 8, 227, 225, 15, 8, 230, 247, 27, 40, 11, 238, 235, 2,
+			14, 240, 222, 3, 43, 19, 229, 240, 24, 23, 254, 246, 3, 11, 252, 241, 248, 8, 6, 4, 16, 6, 1, 5, 245, 244, 251, 255, 7, 6,
+			21, 24, 9, 248, 227, 254, 16, 245, 237, 6, 36, 30, 251, 230, 240, 252, 4, 6, 1, 12, 32, 22, 239, 224, 249, 22, 20, 244, 252, 31,
+			29, 13, 253, 241, 244, 3, 23, 13, 0, 3, 5, 22, 26, 255, 243, 255, 10, 14, 0, 250, 5, 13, 24, 25, 5, 255, 20, 23, 230, 200,
+			236, 39, 58, 20, 245, 9, 26, 0, 228, 216, 246, 31, 26, 1, 0, 23, 15, 246, 241, 250, 10, 18, 7, 3, 12, 6, 244, 237, 0, 25,
+			16, 1, 2, 1, 2, 3, 7, 5, 255, 253, 244, 3, 34, 25, 0, 238, 236, 10, 27, 2, 231, 255, 29, 20, 1, 237, 247, 21, 16, 254,
+			246, 246, 8, 19, 3, 250, 239, 242, 12, 18, 1, 248, 250, 10, 15, 0, 239, 244, 17, 11, 246, 249, 248, 3, 10, 252, 2, 12, 255, 251,
+			2, 251, 246, 252, 255, 5, 9, 6, 0, 252, 240, 234, 0, 30, 27, 248, 231, 240, 5, 13, 238, 228, 3, 20, 22, 7, 233, 233, 255, 255,
+			255, 255, 253, 12, 13, 2, 238, 227, 255, 1, 252, 8, 19, 24, 243, 225, 2, 0, 240, 242, 250, 13, 17, 7, 17, 6, 224, 232, 249, 241,
+			9, 18, 5, 10, 6, 4, 246, 240, 11, 3, 242, 251, 244, 17, 45, 255, 230, 247, 8, 12, 230, 218, 15, 56, 26, 227, 223, 0, 14, 2,
+			238, 236, 17, 39, 4, 244, 3, 0, 251, 240, 229, 252, 16, 24, 20, 243, 226, 245, 252, 2, 2, 240, 247, 21, 35, 16, 241, 237, 239, 233,
+			250, 16, 34, 33, 253, 240, 4, 4, 246, 243, 249, 3, 19, 20, 15, 1, 243, 0, 0, 238, 246, 17, 21, 1, 251, 248, 6, 10, 239, 242,
+			7, 14, 7, 250, 246, 254, 9, 0, 243, 246, 3, 18, 9, 250, 244, 247, 249, 252, 6, 8, 9, 7, 253, 251, 254, 255, 251, 247, 0, 11,
+			8, 1, 4, 0, 242, 241, 254, 18, 25, 11, 245, 243, 6, 9, 252, 237, 254, 29, 23, 250, 237, 255, 14, 2, 235, 240, 24, 41, 13, 239,
+			232, 246, 0, 6, 13, 19, 20, 14, 255, 240, 246, 249, 249, 2, 15, 33, 28, 4, 236, 233, 255, 5, 0, 0, 14, 26, 12, 5, 0, 239,
+			252, 9, 10, 17, 6, 0, 10, 3, 1, 1, 245, 245, 1, 14, 17, 13, 5, 253, 253, 254, 245, 243, 5, 24, 22, 8, 1, 249, 232, 223,
+			239, 17, 37, 25, 252, 235, 240, 255, 6, 248, 245, 12, 23, 13, 2, 247, 242, 238, 237, 1, 14, 9, 22, 23, 251, 234, 230, 237, 6, 21,
+			13, 0, 9, 16, 255, 244, 239, 241, 242, 6, 27, 18, 24, 7, 232, 231, 234, 255, 18, 17, 22, 11, 239, 231, 239, 252, 17, 23, 2, 0,
+			5, 250, 237, 229, 249, 21, 25, 7, 251, 10, 8, 251, 249, 228, 222, 4, 38, 29, 10, 250, 245, 251, 248, 0, 9, 12, 16, 4, 4, 7,
+			231, 216, 250, 23, 26, 21, 5, 238, 245, 253, 248, 250, 243, 1, 17, 20, 10, 232, 243, 249, 233, 14, 30, 12, 1, 249, 248, 0, 16, 2,
+			249, 6, 9, 5, 241, 247, 6, 246, 247, 255, 2, 10, 4, 255, 253, 3, 3, 246, 240, 249, 19, 26, 250, 240, 255, 1, 254, 250, 254, 3,
+			17, 8, 231, 245, 10, 4, 7, 6, 4, 9, 254, 235, 244, 16, 31, 8, 238, 250, 17, 16, 245, 234, 249, 0, 7, 12, 6, 0, 247, 244,
+			249, 1, 9, 3, 251, 2, 7, 254, 244, 248, 0, 1, 8, 6, 252, 245, 247, 0, 9, 9, 252, 235, 240, 9, 20, 3, 242, 253, 9, 252,
+			240, 249, 14, 17, 251, 240, 251, 9, 15, 255, 239, 252, 7, 249, 249, 1, 1, 8, 6, 247, 240, 254, 13, 9, 252, 243, 249, 0, 4, 10,
+			7, 2, 0, 253, 245, 241, 253, 5, 5, 2, 249, 2, 12, 0, 247, 243, 252, 11, 7, 247, 248, 5, 5, 0, 0, 0, 246, 246, 6, 21,
+			18, 254, 247, 246, 241, 249, 251, 0, 9, 19, 19, 0, 246, 244, 251, 249, 238, 248, 12, 30, 19, 242, 238, 252, 253, 250, 1, 8, 12, 12,
+			0, 248, 4, 0, 230, 233, 10, 24, 18, 255, 247, 0, 1, 243, 232, 255, 21, 19, 7, 249, 2, 9, 249, 232, 242, 12, 11, 244, 248, 18,
+			21, 1, 245, 243, 249, 253, 0, 0, 8, 13, 255, 251, 251, 249, 251, 254, 4, 4, 8, 2, 248, 255, 0, 0, 9, 3, 243, 245, 5, 14,
+			6, 248, 0, 5, 251, 249, 250, 1, 9, 7, 0, 246, 247, 1, 3, 7, 253, 250, 6, 248, 242, 0, 1, 18, 17, 247, 246, 4, 9, 250,
+			232, 239, 12, 33, 24, 6, 247, 245, 248, 246, 255, 7, 9, 16, 26, 22, 253, 224, 224, 245, 3, 21, 14, 5, 19, 5, 249, 240, 228, 244,
+			18, 27, 5, 2, 255, 248, 5, 4, 2, 1, 10, 21, 254, 234, 255, 18, 8, 6, 14, 4, 1, 1, 246, 247, 255, 0, 255, 13, 28, 10,
+			247, 235, 232, 246, 8, 34, 31, 0, 247, 242, 242, 252, 251, 1, 20, 18, 255, 240, 246, 255, 3, 5, 0, 252, 253, 5, 11, 255, 240, 251,
+			14, 7, 248, 0, 15, 4, 241, 239, 252, 15, 10, 247, 251, 254, 0, 11, 0, 239, 248, 255, 255, 1, 249, 250, 10, 14, 0, 238, 246, 0,
+			252, 251, 1, 8, 5, 254, 246, 249, 2, 255, 248, 249, 0, 10, 15, 251, 234, 252, 8, 254, 243, 245, 5, 18, 10, 248, 243, 0, 5, 245,
+			238, 254, 11, 17, 6, 249, 249, 253, 248, 239, 247, 8, 12, 5, 253, 0, 5, 250, 238, 242, 2, 14, 7, 0, 1, 0, 246, 238, 249, 7,
+			9, 7, 1, 1, 0, 240, 239, 252, 2, 12, 13, 9, 0, 246, 240, 244, 4, 5, 0, 4, 8, 13, 7, 242, 239, 0, 7, 252, 242, 0,
+			13, 10, 252, 245, 1, 7, 246, 240, 252, 8, 12, 1, 252, 0, 0, 254, 252, 254, 1, 3, 4, 1, 1, 0, 252, 253, 250, 250, 3, 8,
+			9, 2, 249, 246, 0, 11, 1, 252, 252, 254, 7, 6, 252, 254, 10, 9, 247, 240, 254, 14, 7, 252, 1, 5, 9, 0, 236, 244, 8, 11,
+			4, 250, 0, 15, 7, 245, 246, 3, 8, 3, 6, 253, 251, 8, 253, 249, 11, 9, 248, 247, 9, 9, 1, 6, 254, 253, 4, 251, 248, 2,
+			12, 7, 254, 6, 12, 252, 244, 251, 0, 11, 4, 247, 0, 11, 15, 3, 245, 246, 254, 13, 9, 246, 255, 9, 5, 4, 2, 251, 254, 8,
+			1, 247, 255, 11, 14, 7, 252, 254, 8, 4, 4, 252, 248, 20, 23, 5, 253, 248, 5, 10, 254, 244, 1, 28, 21, 3, 243, 237, 10, 15,
+			246, 253, 19, 21, 14, 255, 244, 0, 254, 245, 254, 14, 32, 24, 247, 230, 248, 14, 11, 250, 249, 6, 22, 25, 255, 237, 253, 9, 18, 10,
+			239, 243, 11, 18, 6, 255, 253, 6, 21, 3, 243, 245, 253, 15, 15, 0, 0, 8, 5, 249, 239, 246, 13, 20, 4, 0, 4, 251, 241, 252,
+			11, 12, 4, 251, 252, 1, 1, 3, 4, 1, 3, 2, 0, 2, 5, 1, 249, 246, 252, 6, 14, 7, 250, 248, 251, 255, 254, 254, 5, 12,
+			11, 255, 244, 240, 246, 4, 9, 4, 3, 6, 5, 1, 248, 241, 253, 9, 7, 3, 3, 1, 252, 248, 244, 250, 8, 13, 5, 250, 244, 248,
+			1, 4, 253, 251, 4, 7, 0, 251, 248, 248, 2, 7, 254, 249, 2, 8, 2, 250, 247, 0, 5, 254, 247, 251, 8, 13, 0, 242, 246, 0,
+			3, 0, 250, 250, 1, 7, 3, 248, 245, 253, 2, 5, 252, 246, 2, 8, 0, 249, 246, 251, 2, 6, 2, 252, 253, 250, 255, 4, 251, 247,
+			0, 4, 7, 7, 253, 248, 248, 250, 1, 3, 254, 253, 0, 5, 8, 253, 244, 248, 1, 1, 250, 0, 8, 11, 5, 250, 248, 250, 251, 253,
+			1, 9, 7, 0, 254, 254, 253, 251, 253, 3, 2, 255, 254, 2, 10, 253, 246, 0, 2, 6, 1, 254, 2, 2, 0, 253, 255, 4, 1, 255,
+			0, 2, 7, 4, 248, 245, 3, 13, 3, 251, 254, 7, 15, 2, 241, 238, 251, 12, 14, 11, 5, 255, 0, 247, 245, 252, 0, 12, 15, 9,
+			255, 247, 255, 0, 254, 3, 7, 1, 3, 6, 1, 254, 246, 247, 4, 10, 5, 0, 10, 7, 246, 246, 253, 10, 16, 7, 254, 248, 0, 1,
+			254, 3, 0, 254, 7, 13, 9, 251, 243, 255, 9, 3, 247, 246, 10, 20, 11, 251, 240, 255, 4, 252, 254, 0, 0, 4, 9, 11, 11, 0,
+			244, 249, 0, 6, 7, 2, 4, 6, 8, 3, 249, 247, 252, 3, 9, 9, 7, 0, 249, 253, 0, 255, 4, 2, 3, 10, 6, 4, 255, 248,
+			255, 1, 4, 13, 13, 254, 245, 249, 0, 4, 254, 250, 4, 20, 18, 254, 238, 242, 255, 2, 0, 4, 14, 16, 0, 249, 250, 250, 0, 0,
+			0, 11, 16, 10, 253, 245, 251, 0, 253, 252, 5, 9, 14, 10, 251, 251, 0, 248, 244, 1, 11, 14, 18, 6, 249, 245, 243, 250, 0, 2,
+			1, 10, 18, 5, 249, 248, 251, 252, 249, 252, 12, 21, 7, 252, 248, 252, 1, 249, 241, 254, 21, 26, 11, 250, 240, 246, 253, 249, 253, 10,
+			18, 16, 3, 250, 245, 239, 246, 3, 7, 9, 9, 4, 0, 252, 249, 252, 254, 0, 4, 5, 8, 9, 255, 242, 241, 253, 10, 6, 252, 253,
+			2, 9, 6, 246, 238, 250, 10, 8, 255, 0, 3, 0, 253, 250, 248, 1, 10, 2, 247, 248, 4, 5, 253, 254, 0, 5, 5, 253, 248, 252,
+			255, 255, 2, 5, 6, 1, 253, 253, 0, 255, 252, 0, 1, 2, 3, 255, 249, 250, 0, 3, 1, 253, 252, 0, 0, 249, 253, 4, 4, 0,
+			252, 251, 1, 4, 253, 249, 0, 3, 3, 255, 250, 254, 254, 253, 254, 0, 3, 1, 0, 253, 1, 6, 0, 249, 249, 255, 3, 2, 0, 255,
+			0, 254, 255, 0, 252, 255, 6, 3, 252, 250, 255, 255, 0, 1, 253, 2, 6, 0, 252, 249, 0, 4, 4, 0, 247, 252, 3, 3, 1, 251,
+			0, 6, 2, 254, 248, 246, 255, 2, 0, 3, 9, 9, 0, 245, 243, 250, 0, 4, 2, 4, 11, 7, 253, 244, 246, 255, 4, 4, 3, 5,
+			9, 2, 248, 249, 248, 252, 1, 3, 12, 14, 5, 250, 243, 246, 246, 252, 6, 12, 16, 9, 252, 244, 243, 241, 249, 10, 18, 18, 6, 253,
+			252, 243, 239, 252, 8, 18, 24, 10, 245, 237, 241, 251, 2, 9, 15, 12, 8, 2, 245, 241, 245, 254, 8, 14, 10, 4, 5, 3, 248, 238,
+			241, 0, 16, 20, 10, 1, 253, 249, 247, 248, 0, 10, 15, 10, 0, 253, 254, 252, 245, 252, 9, 11, 12, 9, 0, 248, 246, 251, 255, 2,
+			8, 9, 10, 7, 252, 244, 247, 253, 0, 6, 9, 8, 8, 3, 253, 249, 246, 248, 7, 16, 7, 0, 251, 255, 8, 2, 249, 248, 252, 3,
+			12, 8, 255, 253, 1, 0, 249, 251, 5, 16, 14, 2, 254, 251, 252, 254, 254, 3, 9, 10, 6, 253, 248, 250, 0, 3, 5, 8, 8, 0,
+			252, 252, 250, 253, 5, 7, 9, 10, 1, 251, 251, 254, 0, 0, 0, 5, 7, 6, 4, 2, 0, 251, 249, 253, 0, 4, 3, 6, 11, 2,
+			253, 253, 252, 254, 0, 1, 8, 12, 8, 3, 249, 243, 249, 1, 7, 7, 7, 8, 4, 253, 250, 250, 251, 3, 11, 9, 2, 254, 255, 0,
+			255, 255, 2, 6, 7, 1, 255, 254, 250, 251, 0, 4, 8, 6, 0, 255, 0, 254, 251, 255, 6, 8, 4, 254, 252, 0, 2, 0, 0, 0,
+			2, 3, 3, 1, 255, 254, 255, 0, 0, 2, 1, 4, 2, 251, 249, 254, 5, 9, 5, 0, 0, 3, 1, 251, 250, 1, 10, 7, 254, 253,
+			0, 1, 0, 251, 251, 4, 7, 3, 255, 0, 1, 255, 252, 252, 255, 4, 5, 0, 0, 4, 1, 251, 251, 255, 3, 2, 255, 0, 8, 9,
+			255, 250, 252, 253, 0, 3, 3, 2, 2, 2, 0, 251, 251, 255, 0, 2, 3, 3, 6, 4, 255, 248, 248, 254, 3, 7, 8, 3, 0, 254,
+			251, 253, 254, 255, 3, 9, 5, 0, 2, 0, 253, 250, 250, 1, 10, 10, 1, 254, 0, 0, 254, 251, 253, 0, 6, 8, 6, 1, 248, 245,
+			253, 3, 6, 7, 5, 2, 0, 251, 250, 253, 0, 2, 5, 9, 8, 255, 248, 249, 251, 2, 8, 7, 3, 0, 0, 255, 251, 250, 254, 8,
+			10, 0, 255, 0, 0, 253, 252, 1, 5, 8, 4, 252, 251, 254, 0, 0, 255, 3, 8, 4, 254, 254, 254, 255, 0, 1, 3, 3, 0, 253,
+			254, 3, 1, 254, 1, 6, 4, 0, 254, 254, 0, 1, 1, 0, 2, 2, 2, 255, 254, 0, 0, 1, 2, 1, 2, 0, 253, 254, 255, 2,
+			8, 4, 1, 1, 251, 251, 0, 6, 5, 2, 1, 1, 0, 254, 252, 255, 1, 3, 5, 3, 3, 3, 254, 250, 254, 2, 5, 5, 3, 0,
+			255, 0, 0, 0, 0, 3, 5, 3, 254, 251, 254, 4, 6, 2, 0, 0, 1, 1, 0, 255, 2, 7, 7, 3, 254, 251, 253, 3, 2, 253,
+			1, 8, 7, 3, 0, 253, 253, 255, 0, 1, 5, 6, 1, 253, 252, 253, 1, 1, 1, 4, 4, 5, 3, 253, 251, 252, 255, 1, 5, 6,
+			5, 1, 251, 251, 255, 0, 0, 1, 3, 2, 2, 1, 253, 253, 0, 0, 1, 3, 0, 254, 255, 2, 3, 255, 252, 254, 2, 2, 0, 255,
+			2, 5, 3, 254, 249, 254, 5, 3, 0, 0, 4, 2, 255, 253, 255, 0, 0, 0, 0, 0, 200, 0, 4, 0, 1, 0, 191, 0, 180, 1,
+			28, 8, 44, 10, 124, 13, 216, 14, 128, 28, 50, 41, 25, 54, 56, 53, 42, 34, 11, 8, 185, 107, 137, 120, 120, 120, 185, 107, 127, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			191, 0, 180, 1, 28, 8, 44, 10, 124, 13, 216, 14, 128, 28, 80, 77, 35, 75, 77, 73, 57, 47, 15, 11, 185, 107, 137, 120, 120, 120,
+			185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 191, 0, 180, 1, 28, 8, 44, 10, 124, 13, 216, 14, 128, 28, 70, 65, 32, 69, 71, 67, 53, 43, 13, 10, 185, 107,
+			137, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 191, 0, 180, 1, 28, 8, 44, 10, 124, 13, 216, 14, 128, 28, 0, 29, 22, 46, 48, 45, 35, 29,
+			9, 7, 185, 107, 137, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 188, 4, 48, 0, 2, 252, 253, 253, 7, 7, 0, 0, 248, 251, 0, 6, 8, 0, 248, 248,
 			0, 7, 4, 2, 252, 247, 0, 255, 7, 6, 251, 243, 249, 3, 14, 16, 0, 247, 246, 252, 2, 8, 0, 0, 250, 253, 7, 4, 255, 252,
 			253, 251, 2, 2, 249, 252, 2, 16, 12, 246, 236, 252, 4, 18, 6, 248, 246, 241, 12, 7, 5, 253, 241, 248, 7, 7, 8, 254, 243, 245,
 			4, 10, 11, 8, 234, 234, 6, 19, 11, 7, 240, 240, 12, 18, 255, 237, 245, 252, 6, 1, 8, 21, 2, 236, 242, 250, 1, 32, 30, 243,
@@ -9876,4580 +12757,840 @@ autoFileInMemorySet create_espeakdata_phons () {
 			3, 3, 3, 255, 255, 2, 2, 0, 0, 0, 1, 1, 0, 255, 2, 0, 2, 3, 0, 0, 255, 0, 0, 2, 3, 3, 255, 255, 5, 2,
 			255, 3, 0, 253, 255, 2, 4, 5, 0, 253, 1, 3, 2, 2, 255, 254, 2, 0, 3, 4, 254, 252, 4, 6, 0, 255, 0, 1, 2, 2,
 			0, 254, 0, 3, 1, 5, 4, 254, 1, 0, 1, 1, 255, 0, 5, 4, 254, 0, 2, 1, 2, 1, 255, 0, 2, 2, 0, 1, 0, 0,
-			3, 1, 0, 0, 3, 0, 255, 4, 255, 254, 2, 0, 2, 3, 0, 254, 255, 2, 2, 0, 2, 0, 255, 1, 3, 2, 58, 0, 3, 0,
-			5, 0, 116, 0, 232, 0, 252, 8, 240, 10, 232, 13, 24, 16, 124, 21, 58, 11, 22, 13, 9, 4, 4, 4, 0, 0, 200, 212, 187, 255,
-			255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 1, 0, 116, 0, 232, 0, 252, 8, 240, 10, 232, 13, 24, 16, 124, 21, 0, 11, 22, 13, 9, 4, 4, 4, 0, 0,
-			200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 252, 8, 240, 10, 232, 13, 24, 16, 124, 21, 0, 11, 22, 13, 9, 4,
-			4, 4, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 42, 3, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			3, 1, 0, 0, 3, 0, 255, 4, 255, 254, 2, 0, 2, 3, 0, 254, 255, 2, 2, 0, 2, 0, 255, 1, 3, 2, 172, 7, 130, 0,
+			1, 1, 1, 1, 1, 1, 1, 2, 4, 12, 31, 46, 11, 197, 182, 214, 6, 55, 45, 33, 240, 222, 13, 255, 213, 207, 230, 4, 90, 100,
+			0, 167, 227, 243, 38, 96, 2, 131, 232, 24, 14, 75, 16, 202, 2, 34, 243, 255, 239, 214, 7, 41, 2, 11, 20, 17, 13, 235, 211, 226,
+			247, 19, 6, 19, 16, 35, 6, 1, 9, 216, 216, 255, 0, 52, 53, 255, 249, 242, 247, 255, 249, 232, 207, 233, 32, 41, 0, 21, 2, 234,
+			252, 251, 29, 57, 247, 206, 220, 232, 54, 39, 14, 222, 240, 239, 8, 49, 37, 3, 222, 223, 0, 37, 16, 240, 237, 249, 24, 10, 245, 212,
+			227, 7, 52, 32, 244, 226, 230, 4, 0, 0, 16, 41, 45, 23, 212, 217, 231, 17, 26, 4, 238, 218, 239, 254, 249, 255, 226, 247, 7, 1,
+			233, 217, 238, 19, 40, 64, 20, 3, 242, 231, 246, 3, 250, 0, 18, 18, 10, 14, 22, 9, 10, 251, 217, 235, 10, 10, 15, 12, 24, 32,
+			30, 230, 222, 231, 1, 9, 4, 251, 252, 20, 27, 15, 254, 231, 231, 241, 255, 7, 9, 5, 3, 246, 254, 12, 236, 238, 225, 7, 13, 8,
+			12, 246, 4, 10, 8, 249, 239, 1, 2, 231, 227, 10, 21, 81, 57, 250, 200, 214, 225, 6, 24, 1, 253, 9, 22, 12, 251, 230, 232, 250,
+			18, 12, 7, 247, 249, 246, 249, 253, 5, 4, 6, 255, 240, 235, 248, 23, 42, 9, 248, 229, 0, 6, 19, 0, 239, 247, 8, 20, 8, 255,
+			248, 5, 22, 32, 11, 244, 228, 238, 254, 12, 10, 0, 252, 3, 4, 0, 4, 0, 253, 249, 251, 3, 11, 5, 5, 248, 233, 247, 0, 10,
+			8, 250, 237, 247, 5, 3, 255, 2, 249, 249, 0, 3, 2, 0, 251, 250, 4, 3, 5, 12, 12, 2, 252, 252, 250, 8, 10, 5, 6, 13,
+			3, 3, 7, 251, 255, 253, 244, 250, 4, 0, 3, 4, 253, 243, 246, 250, 1, 1, 251, 245, 255, 3, 2, 2, 251, 244, 247, 251, 251, 8,
+			2, 248, 254, 5, 6, 2, 5, 255, 0, 253, 250, 7, 10, 7, 255, 0, 0, 5, 11, 10, 6, 1, 250, 0, 3, 2, 251, 253, 3, 9,
+			10, 2, 255, 253, 254, 6, 10, 8, 0, 252, 4, 10, 5, 253, 246, 252, 0, 7, 7, 1, 3, 252, 253, 0, 4, 1, 0, 255, 253, 253,
+			0, 255, 1, 0, 254, 253, 2, 2, 0, 2, 1, 255, 255, 255, 0, 4, 3, 0, 0, 0, 1, 1, 2, 2, 2, 3, 0, 2, 3, 1,
+			0, 0, 255, 0, 0, 2, 2, 3, 2, 1, 0, 254, 252, 0, 0, 0, 0, 255, 255, 0, 0, 255, 254, 253, 253, 254, 0, 0, 2, 255,
+			251, 251, 254, 0, 2, 0, 255, 255, 255, 1, 2, 0, 255, 255, 255, 0, 3, 2, 1, 255, 254, 254, 0, 2, 2, 0, 255, 255, 0, 0,
+			0, 0, 0, 0, 255, 254, 0, 1, 1, 254, 254, 255, 255, 1, 1, 255, 254, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 255,
+			254, 254, 0, 1, 2, 2, 0, 255, 0, 1, 0, 1, 0, 254, 1, 2, 2, 1, 0, 255, 0, 0, 0, 1, 0, 0, 255, 0, 0, 2,
+			2, 2, 0, 255, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 255,
+			0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1,
+			0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+			255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 255, 0, 0, 1, 0, 0, 255, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
+			1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 1, 0, 0, 0,
+			0, 2, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 1, 1, 1, 0,
+			0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 1, 1, 1, 1,
+			0, 1, 1, 0, 0, 0, 1, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 1, 0, 0, 2, 0, 0, 0,
+			0, 2, 2, 0, 0, 0, 2, 1, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1,
+			0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 1, 0, 0, 1,
+			1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 255, 0, 0, 1, 2,
+			0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 1, 0, 0, 0, 255, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 2, 6, 14, 26, 36, 42, 44, 45, 42, 34, 23, 3, 230, 196, 171, 166, 179, 204, 230, 249, 5, 15, 25, 30, 24, 0, 222, 185,
-			164, 168, 195, 224, 243, 0, 17, 47, 80, 102, 102, 79, 44, 11, 244, 226, 206, 185, 168, 166, 187, 230, 25, 68, 91, 97, 98, 100, 96, 75,
-			34, 239, 189, 158, 150, 159, 174, 191, 213, 245, 32, 78, 113, 125, 112, 81, 44, 9, 234, 200, 165, 137, 131, 153, 198, 251, 39, 70, 91, 106,
-			114, 110, 87, 46, 252, 202, 168, 153, 153, 163, 180, 204, 239, 26, 71, 104, 116, 106, 82, 53, 22, 245, 208, 171, 144, 137, 154, 187, 228, 9,
-			40, 64, 82, 92, 91, 73, 40, 255, 216, 188, 174, 170, 172, 180, 198, 229, 10, 48, 75, 85, 80, 66, 46, 22, 250, 216, 184, 161, 154, 166,
-			192, 225, 1, 31, 57, 77, 91, 94, 82, 55, 20, 244, 219, 203, 193, 189, 193, 206, 229, 1, 30, 51, 61, 62, 55, 42, 25, 4, 237, 213,
-			195, 187, 192, 206, 225, 245, 7, 25, 41, 52, 54, 45, 29, 8, 245, 229, 217, 210, 207, 210, 220, 235, 255, 17, 32, 40, 41, 38, 31, 21,
-			7, 248, 231, 219, 214, 217, 226, 238, 251, 7, 20, 31, 39, 40, 33, 21, 7, 250, 238, 229, 224, 223, 225, 233, 244, 2, 16, 27, 32, 33,
-			31, 26, 18, 7, 252, 240, 232, 228, 230, 235, 243, 253, 6, 17, 26, 31, 32, 28, 20, 9, 255, 246, 238, 233, 231, 232, 238, 246, 0, 10,
-			17, 22, 24, 23, 20, 13, 5, 253, 245, 238, 235, 235, 239, 245, 252, 2, 10, 17, 21, 22, 20, 15, 8, 1, 251, 246, 242, 240, 240, 243,
-			249, 255, 4, 9, 13, 15, 15, 13, 10, 5, 0, 251, 248, 245, 245, 246, 249, 252, 0, 3, 7, 10, 11, 10, 8, 5, 2, 0, 253, 251,
-			250, 250, 251, 253, 255, 1, 3, 5, 5, 6, 5, 4, 2, 0, 0, 255, 254, 254, 254, 255, 0, 0, 1, 1, 2, 2, 1, 1, 1, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 3, 2, 255, 251, 247,
+			247, 251, 1, 8, 10, 7, 4, 1, 254, 252, 249, 250, 248, 255, 4, 9, 10, 4, 2, 0, 255, 254, 253, 255, 254, 1, 3, 3, 1, 255,
+			255, 254, 0, 0, 1, 3, 2, 1, 0, 254, 254, 252, 254, 254, 0, 2, 3, 4, 4, 2, 0, 254, 254, 254, 255, 0, 2, 3, 3, 2,
+			2, 0, 255, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 254, 251, 252, 255, 1, 3, 3, 3, 2, 1, 0,
+			0, 253, 252, 253, 0, 4, 5, 5, 4, 2, 0, 0, 0, 254, 254, 0, 2, 3, 1, 1, 0, 0, 255, 0, 0, 0, 1, 1, 0, 0,
+			0, 0, 0, 0, 255, 0, 2, 4, 3, 2, 0, 0, 0, 0, 255, 0, 0, 2, 3, 3, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 1, 0, 0, 0, 0, 0, 1, 1,
+			1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 254, 253, 255, 2, 5, 6, 3, 0, 254, 253, 255, 0, 0, 0, 2, 4,
+			5, 5, 2, 0, 254, 253, 255, 1, 2, 1, 0, 0, 0, 0, 1, 0, 255, 255, 0, 1, 2, 1, 0, 0, 255, 255, 0, 0, 0, 0,
+			2, 3, 2, 2, 0, 255, 0, 0, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 2, 2, 1, 0, 255, 253, 251, 251, 253, 0, 2, 5,
+			7, 5, 1, 254, 253, 252, 252, 253, 255, 2, 5, 7, 7, 4, 0, 254, 254, 255, 0, 0, 0, 2, 2, 1, 1, 0, 255, 255, 255, 0,
+			1, 1, 1, 0, 255, 255, 255, 255, 255, 0, 0, 2, 4, 3, 2, 1, 0, 254, 255, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 255,
+			0, 0, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 254, 253, 253, 253, 254,
+			1, 3, 6, 7, 3, 255, 251, 251, 253, 255, 255, 0, 2, 4, 5, 5, 1, 254, 252, 252, 0, 1, 2, 1, 1, 0, 1, 1, 0, 255,
+			254, 0, 2, 3, 2, 0, 0, 254, 255, 0, 0, 0, 0, 0, 2, 3, 2, 0, 255, 255, 255, 0, 0, 1, 1, 1, 2, 1, 0, 0,
+			255, 0, 0, 0, 1, 2, 1, 0, 255, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 255, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2, 2, 1, 0, 254, 253, 252, 254, 1, 2, 3, 4, 3, 2, 255, 253, 254,
+			255, 0, 0, 3, 4, 2, 1, 0, 0, 255, 0, 1, 1, 2, 0, 0, 0, 0, 0, 255, 0, 0, 0, 2, 2, 3, 1, 0, 0, 255,
+			255, 255, 0, 1, 1, 2, 3, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+			0, 0, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+			0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0,
+			0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 254, 254, 0, 2, 4, 3, 2, 0, 0, 0, 1, 1, 0, 0, 0, 2,
+			3, 2, 0, 0, 255, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+			1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+			1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+			0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 4, 0, 1, 0, 156, 0, 40, 1, 172, 8,
-			64, 11, 192, 13, 120, 15, 144, 27, 45, 40, 11, 59, 53, 50, 42, 28, 11, 7, 176, 106, 155, 120, 120, 120, 185, 107, 155, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 156, 0,
-			40, 1, 172, 8, 64, 11, 192, 13, 120, 15, 144, 27, 80, 74, 16, 81, 73, 68, 57, 38, 15, 9, 176, 106, 155, 120, 120, 120, 185, 107,
-			155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 156, 0, 36, 1, 196, 8, 76, 11, 216, 13, 144, 15, 144, 27, 50, 63, 14, 75, 67, 63, 52, 35, 14, 9, 176, 106, 155, 120,
-			120, 120, 185, 107, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 156, 0, 32, 1, 212, 8, 84, 11, 232, 13, 160, 15, 144, 27, 0, 33, 10, 53, 48, 45, 37, 25, 10, 6,
-			176, 106, 155, 120, 120, 120, 185, 107, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 36, 1, 196, 2, 104, 6, 206, 9, 142, 13, 132, 15, 220, 28, 45, 41,
-			30, 51, 59, 44, 32, 26, 9, 5, 248, 163, 170, 127, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 36, 1, 196, 2, 104, 6, 206, 9, 142, 13, 132, 15,
-			220, 28, 80, 65, 38, 65, 75, 56, 41, 33, 11, 6, 248, 163, 170, 127, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 36, 1, 196, 2, 104, 6, 206, 9,
-			142, 13, 132, 15, 220, 28, 60, 59, 36, 62, 71, 53, 38, 31, 11, 6, 248, 163, 170, 127, 120, 120, 220, 176, 161, 44, 45, 70, 130, 58,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 36, 1, 196, 2,
-			104, 6, 206, 9, 142, 13, 132, 15, 220, 28, 0, 35, 28, 48, 55, 41, 30, 24, 8, 5, 248, 163, 170, 127, 120, 120, 220, 176, 161, 44,
-			45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0,
-			4, 0, 1, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27, 45, 56, 28, 56, 68, 34, 34, 22, 14, 6, 172, 138,
-			135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27, 80, 111, 40, 80, 96, 48, 48, 31,
-			20, 8, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27, 70, 86, 36, 68,
-			86, 43, 43, 27, 18, 7, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 24, 2, 152, 3, 40, 10, 244, 11, 196, 14, 159, 27,
-			0, 47, 26, 50, 64, 32, 32, 20, 13, 5, 172, 138, 135, 120, 120, 120, 167, 138, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 66, 4, 15, 0, 0, 0, 255, 255, 253, 253, 255, 252,
-			251, 250, 248, 246, 243, 239, 233, 196, 188, 233, 27, 45, 16, 245, 239, 0, 16, 21, 11, 4, 3, 18, 20, 7, 246, 248, 1, 23, 28, 8,
-			0, 251, 1, 6, 255, 202, 190, 242, 37, 47, 4, 229, 239, 30, 51, 26, 2, 248, 0, 249, 219, 216, 250, 24, 15, 253, 227, 239, 251, 6,
-			242, 252, 248, 247, 250, 226, 244, 254, 18, 18, 13, 12, 18, 25, 20, 21, 25, 13, 22, 6, 15, 25, 27, 36, 6, 232, 235, 7, 25, 27,
-			240, 235, 238, 252, 15, 242, 0, 244, 5, 0, 251, 244, 191, 182, 211, 7, 44, 10, 204, 212, 236, 32, 35, 11, 252, 2, 32, 35, 15, 245,
-			248, 5, 24, 29, 22, 12, 250, 2, 19, 28, 15, 20, 14, 9, 23, 15, 14, 6, 7, 14, 14, 10, 251, 4, 4, 7, 253, 244, 2, 5,
-			13, 249, 243, 244, 0, 255, 250, 254, 5, 5, 235, 250, 2, 253, 1, 244, 247, 8, 6, 254, 240, 242, 5, 6, 10, 7, 247, 246, 249, 250,
-			3, 5, 247, 244, 10, 0, 245, 2, 0, 251, 235, 243, 13, 6, 12, 240, 232, 254, 253, 9, 248, 247, 10, 254, 0, 245, 249, 4, 9, 3,
-			250, 11, 242, 249, 8, 6, 6, 246, 241, 7, 8, 9, 9, 241, 244, 10, 19, 254, 233, 242, 12, 36, 247, 223, 238, 2, 21, 15, 251, 229,
-			240, 10, 16, 248, 7, 245, 255, 19, 5, 248, 212, 0, 51, 24, 253, 237, 241, 14, 10, 238, 4, 18, 241, 12, 4, 0, 9, 249, 12, 20,
-			7, 250, 12, 249, 254, 11, 255, 3, 252, 253, 15, 11, 236, 12, 15, 250, 244, 245, 25, 42, 238, 228, 255, 17, 21, 8, 3, 6, 251, 240,
-			17, 34, 0, 249, 18, 3, 236, 252, 15, 9, 254, 248, 0, 248, 253, 248, 241, 10, 243, 244, 23, 0, 225, 218, 248, 21, 38, 239, 216, 238,
-			0, 12, 0, 241, 229, 252, 12, 25, 239, 245, 4, 3, 5, 252, 246, 11, 33, 13, 253, 231, 242, 248, 25, 27, 254, 16, 239, 231, 15, 2,
-			25, 22, 209, 0, 43, 239, 255, 11, 11, 232, 241, 14, 245, 13, 14, 242, 237, 235, 245, 25, 0, 253, 15, 233, 249, 9, 252, 21, 23, 233,
-			247, 6, 253, 25, 20, 251, 226, 23, 29, 247, 241, 17, 24, 225, 218, 246, 29, 52, 29, 199, 191, 5, 69, 61, 240, 208, 227, 22, 6, 234,
-			10, 46, 3, 11, 248, 205, 252, 45, 13, 6, 30, 211, 226, 12, 45, 40, 215, 208, 242, 46, 50, 235, 145, 162, 221, 249, 25, 235, 177, 218,
-			241, 254, 44, 2, 244, 19, 11, 2, 32, 54, 45, 251, 210, 245, 62, 74, 233, 250, 15, 250, 5, 22, 68, 33, 237, 237, 249, 52, 52, 204,
-			233, 8, 251, 29, 58, 46, 193, 149, 244, 88, 34, 250, 238, 201, 17, 73, 252, 219, 215, 224, 35, 40, 41, 214, 207, 61, 28, 220, 0, 10,
-			36, 240, 193, 14, 241, 241, 112, 36, 176, 209, 240, 35, 32, 239, 239, 249, 2, 252, 247, 18, 25, 197, 201, 54, 56, 253, 222, 227, 7, 254,
-			1, 27, 249, 235, 19, 28, 14, 210, 247, 24, 229, 232, 12, 32, 46, 0, 199, 211, 239, 37, 254, 226, 34, 31, 248, 210, 12, 72, 250, 158,
-			208, 68, 81, 9, 185, 160, 17, 61, 32, 253, 224, 7, 0, 242, 247, 240, 32, 42, 252, 235, 216, 23, 34, 228, 234, 64, 19, 19, 85, 250,
-			163, 235, 82, 53, 12, 231, 18, 59, 246, 252, 17, 231, 11, 93, 10, 237, 3, 239, 31, 25, 247, 13, 5, 27, 52, 11, 213, 230, 7, 41,
-			70, 216, 168, 246, 16, 253, 21, 248, 226, 7, 243, 250, 240, 210, 23, 9, 0, 21, 231, 236, 216, 0, 22, 247, 226, 238, 44, 56, 21, 171,
-			161, 255, 39, 60, 51, 200, 158, 221, 20, 28, 0, 204, 229, 27, 238, 207, 232, 253, 43, 15, 224, 182, 253, 91, 23, 250, 178, 140, 250, 103,
-			66, 252, 215, 17, 90, 234, 201, 201, 14, 94, 12, 215, 22, 30, 251, 228, 178, 210, 32, 51, 4, 204, 195, 30, 8, 186, 199, 31, 70, 1,
-			230, 209, 231, 253, 253, 35, 63, 21, 2, 21, 218, 246, 15, 243, 33, 43, 63, 48, 194, 178, 246, 9, 44, 86, 24, 168, 196, 27, 48, 14,
-			217, 213, 14, 59, 44, 228, 185, 237, 35, 8, 9, 29, 6, 245, 196, 210, 225, 220, 254, 66, 61, 179, 174, 3, 74, 236, 151, 230, 13, 28,
-			3, 16, 200, 207, 248, 230, 1, 15, 28, 179, 167, 242, 18, 242, 250, 24, 223, 235, 27, 29, 218, 158, 224, 49, 63, 44, 40, 230, 185, 191,
-			241, 26, 63, 39, 0, 15, 235, 221, 248, 61, 18, 17, 48, 248, 31, 45, 232, 202, 23, 75, 74, 69, 245, 211, 218, 246, 41, 76, 76, 39,
-			34, 17, 226, 244, 45, 10, 24, 64, 61, 88, 33, 187, 221, 52, 57, 80, 66, 11, 232, 7, 7, 6, 14, 89, 66, 0, 49, 10, 202, 230,
-			27, 91, 75, 13, 10, 229, 233, 1, 252, 8, 43, 56, 251, 183, 219, 1, 33, 29, 0, 213, 13, 78, 221, 133, 220, 47, 80, 0, 205, 6,
-			237, 233, 215, 208, 236, 3, 34, 18, 194, 215, 17, 250, 225, 188, 239, 68, 48, 236, 206, 237, 232, 246, 61, 48, 255, 246, 24, 253, 203, 212,
-			247, 34, 74, 25, 208, 240, 37, 235, 236, 3, 42, 32, 229, 9, 254, 2, 46, 41, 7, 221, 244, 33, 22, 5, 222, 204, 56, 114, 18, 213,
-			215, 236, 7, 53, 65, 10, 236, 246, 19, 20, 246, 243, 29, 57, 241, 192, 9, 28, 20, 244, 218, 229, 34, 33, 237, 223, 214, 233, 250, 12,
-			11, 234, 209, 222, 247, 23, 0, 253, 247, 200, 208, 248, 0, 5, 219, 228, 1, 231, 221, 198, 209, 242, 252, 246, 242, 233, 238, 218, 186, 197,
-			242, 33, 11, 244, 212, 233, 241, 244, 202, 135, 165, 32, 94, 244, 138, 153, 214, 2, 18, 224, 172, 209, 246, 218, 196, 204, 221, 225, 218, 4,
-			240, 202, 195, 164, 190, 255, 1, 241, 219, 172, 170, 221, 12, 251, 208, 174, 186, 201, 198, 210, 249, 242, 194, 148, 132, 218, 21, 231, 195, 161,
-			168, 246, 0, 0, 199, 0, 6, 0, 5, 0, 24, 1, 240, 2, 116, 4, 4, 11, 152, 13, 35, 15, 64, 27, 51, 53, 27, 57, 72, 38,
-			39, 19, 3, 8, 225, 165, 135, 120, 120, 120, 225, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 240, 2, 116, 4, 4, 11, 72, 13, 191, 14, 64, 27, 75, 95,
-			34, 81, 88, 51, 55, 37, 5, 7, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 24, 1, 240, 2, 196, 4, 200, 10, 72, 13, 191, 14,
-			64, 27, 30, 77, 32, 77, 83, 48, 52, 35, 5, 6, 167, 165, 165, 120, 120, 120, 167, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 33, 0, 196, 0, 224, 2, 249, 5, 232, 8,
-			188, 12, 247, 13, 64, 27, 33, 39, 29, 59, 54, 45, 44, 45, 8, 8, 167, 150, 180, 120, 120, 120, 167, 120, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 193, 0, 208, 1,
-			160, 7, 173, 9, 21, 13, 229, 14, 64, 27, 40, 41, 30, 57, 50, 49, 43, 40, 14, 9, 167, 105, 180, 120, 120, 120, 167, 120, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0,
-			192, 0, 168, 1, 208, 7, 196, 9, 32, 13, 0, 15, 64, 27, 0, 30, 27, 50, 44, 44, 38, 34, 13, 8, 167, 100, 180, 120, 120, 120,
-			137, 85, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250,
-			0, 0, 0, 0, 6, 0, 1, 0, 204, 0, 158, 2, 252, 4, 60, 10, 168, 12, 10, 15, 0, 28, 40, 47, 32, 52, 71, 39, 47, 23,
-			13, 7, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 204, 0, 93, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28, 50, 115, 45, 89,
-			101, 56, 67, 33, 20, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 204, 0, 93, 2, 208, 4, 60, 10, 168, 12, 10, 15, 0, 28,
-			30, 104, 42, 84, 96, 53, 64, 32, 19, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 190, 0, 32, 2, 242, 5, 84, 10, 240, 12,
-			236, 14, 9, 28, 75, 69, 37, 71, 77, 51, 55, 30, 15, 7, 169, 142, 163, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 144, 1, 152, 8,
-			140, 10, 152, 13, 166, 14, 32, 28, 30, 37, 31, 54, 47, 57, 44, 32, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 156, 0,
-			144, 1, 174, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 31, 49, 49, 45, 42, 33, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			254, 251, 248, 244, 241, 237, 233, 229, 225, 221, 217, 213, 208, 204, 199, 195, 190, 185, 180, 176, 171, 166, 161, 156, 151, 146, 141, 136, 131, 126,
-			121, 117, 112, 107, 102, 97, 93, 88, 83, 79, 74, 70, 66, 61, 57, 53, 49, 45, 42, 38, 35, 31, 28, 25, 22, 19, 17, 14, 12, 10,
-			8, 6, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 5, 7, 9, 12, 14, 17, 21, 24, 27, 29, 32, 34, 37, 39,
-			42, 45, 47, 49, 52, 54, 57, 59, 61, 63, 65, 67, 69, 71, 73, 74, 76, 77, 78, 80, 80, 81, 82, 82, 82, 83, 82, 82, 82, 81,
-			80, 79, 77, 76, 74, 71, 69, 66, 175, 0, 4, 0, 1, 0, 130, 0, 80, 1, 162, 8, 240, 10, 112, 13, 100, 15, 120, 26, 45, 48,
-			19, 68, 52, 50, 43, 30, 11, 6, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 130, 0, 80, 1, 162, 8, 240, 10, 112, 13, 100, 15,
-			120, 26, 70, 89, 26, 93, 71, 68, 59, 40, 16, 8, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 130, 0, 80, 1, 162, 8, 200, 10,
-			112, 13, 100, 15, 120, 26, 60, 81, 24, 88, 67, 64, 56, 38, 15, 8, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 130, 0, 80, 1,
-			162, 8, 200, 10, 112, 13, 100, 15, 120, 26, 0, 36, 16, 58, 44, 43, 37, 25, 10, 5, 168, 95, 132, 143, 120, 120, 185, 102, 167, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0,
-			4, 0, 1, 0, 176, 0, 64, 1, 172, 3, 56, 9, 228, 12, 60, 15, 144, 26, 45, 39, 5, 66, 34, 17, 26, 29, 11, 7, 177, 125,
-			102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 64, 1, 172, 3, 56, 9, 228, 12, 60, 15, 144, 26, 80, 65, 7, 85, 44, 22, 33, 37,
-			14, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 152, 3, 56, 9, 228, 12, 60, 15, 144, 26, 50, 48, 6, 73,
-			38, 19, 28, 31, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 228, 12, 60, 15, 144, 26,
-			0, 35, 5, 62, 32, 16, 24, 27, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0, 133, 0, 93, 1, 164, 6,
-			242, 8, 208, 12, 114, 14, 24, 25, 45, 41, 21, 57, 47, 41, 38, 32, 10, 11, 173, 111, 133, 121, 121, 130, 187, 126, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 133, 0,
-			93, 1, 164, 6, 242, 8, 208, 12, 114, 14, 24, 25, 80, 71, 27, 76, 62, 54, 50, 42, 13, 14, 173, 111, 133, 121, 121, 130, 187, 126,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 133, 0, 93, 1, 164, 6, 242, 8, 208, 12, 114, 14, 24, 25, 70, 57, 25, 68, 55, 49, 45, 38, 12, 13, 173, 111, 133, 121,
-			121, 130, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 133, 0, 93, 1, 164, 6, 242, 8, 208, 12, 114, 14, 24, 25, 0, 35, 19, 54, 44, 38, 35, 30, 9, 10,
-			173, 111, 133, 121, 121, 130, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 245, 0, 6, 0, 1, 0, 72, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 45, 50,
-			32, 67, 59, 34, 30, 19, 9, 4, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56, 0, 0, 0, 0, 45, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 72, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14,
-			32, 28, 40, 101, 43, 96, 85, 49, 43, 27, 13, 6, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 57, 0, 0, 0, 0,
-			45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 55, 1, 100, 3, 128, 5, 140, 10,
-			116, 13, 189, 14, 32, 28, 75, 82, 41, 88, 78, 48, 40, 26, 12, 6, 203, 144, 114, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 56,
-			0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 152, 0, 48, 1,
-			56, 9, 164, 11, 232, 13, 220, 15, 160, 26, 40, 59, 21, 68, 68, 61, 54, 32, 15, 7, 167, 110, 120, 120, 120, 120, 167, 110, 120, 44,
-			45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			105, 0, 48, 1, 56, 9, 164, 11, 232, 13, 220, 15, 93, 26, 45, 31, 15, 51, 51, 47, 46, 26, 12, 8, 172, 106, 109, 120, 120, 120,
-			167, 110, 120, 44, 45, 70, 130, 55, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 1, 0, 105, 0, 48, 1, 56, 9, 164, 11, 232, 13, 220, 15, 93, 26, 0, 31, 15, 51, 51, 47, 46, 26, 12, 8, 172, 106,
-			109, 120, 120, 120, 167, 110, 120, 44, 45, 70, 130, 54, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36,
-			0, 0, 0, 250, 0, 0, 60, 0, 5, 0, 5, 0, 100, 0, 16, 1, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 15, 1, 4, 9,
-			0, 0, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 49, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 100, 0, 16, 1, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21,
-			25, 5, 8, 16, 1, 1, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 49, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 5, 0, 100, 0, 16, 1, 64, 6, 40, 10, 232, 13,
-			24, 16, 124, 21, 20, 5, 8, 16, 1, 1, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 49, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 100, 0, 16, 1, 64, 6,
-			40, 10, 232, 13, 24, 16, 124, 21, 0, 3, 8, 11, 1, 1, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70,
-			130, 49, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 100, 0,
-			16, 1, 64, 6, 40, 10, 232, 13, 24, 16, 124, 21, 0, 2, 7, 9, 1, 1, 0, 0, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212,
-			187, 44, 45, 70, 130, 49, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			115, 0, 4, 0, 1, 0, 136, 0, 224, 1, 24, 6, 116, 9, 248, 12, 240, 15, 95, 27, 45, 44, 27, 57, 66, 39, 41, 24, 16, 6,
-			170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 136, 0, 224, 1, 24, 6, 116, 9, 248, 12, 220, 15, 95, 27, 70, 71, 34, 72, 83, 49,
-			52, 30, 20, 8, 170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 234, 1, 4, 6, 92, 9, 227, 12, 157, 15, 95, 27, 70, 64,
-			33, 69, 79, 47, 50, 30, 19, 7, 170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 4, 2, 240, 5, 36, 9, 178, 12, 10, 15,
-			95, 27, 0, 36, 24, 52, 59, 35, 38, 25, 14, 5, 170, 137, 135, 122, 124, 128, 197, 137, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 200, 0, 4, 0, 1, 0, 158, 0, 118, 1,
-			192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 50, 40, 18, 55, 57, 49, 46, 30, 11, 8, 180, 111, 153, 120, 120, 120, 185, 112, 155, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			158, 0, 118, 1, 192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 80, 75, 26, 76, 78, 68, 63, 42, 16, 11, 180, 111, 153, 120, 120, 120,
-			185, 112, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 158, 0, 118, 1, 192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 70, 63, 23, 69, 72, 62, 58, 38, 15, 10, 180, 111,
-			153, 120, 120, 120, 185, 112, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 158, 0, 118, 1, 192, 8, 44, 11, 132, 13, 0, 15, 8, 28, 0, 29, 16, 47, 48, 42, 39, 26,
-			10, 6, 180, 111, 153, 120, 120, 120, 185, 112, 155, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 45, 0, 5, 0, 1, 0, 144, 0, 120, 1, 188, 7, 120, 10, 132, 13, 160, 15, 128, 28,
-			45, 45, 22, 58, 58, 58, 47, 44, 11, 8, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 120, 1, 188, 7, 120, 10, 132, 13,
-			160, 15, 128, 28, 41, 91, 32, 84, 84, 84, 68, 64, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 208, 1, 188, 7,
-			80, 10, 132, 13, 216, 14, 128, 28, 74, 93, 38, 84, 88, 84, 68, 51, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0,
-			208, 1, 148, 7, 60, 10, 92, 13, 196, 14, 128, 28, 40, 93, 38, 84, 88, 84, 68, 51, 16, 12, 185, 107, 127, 120, 120, 120, 185, 107,
-			127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 200, 0, 32, 2, 8, 7, 136, 9, 228, 12, 76, 14, 128, 28, 0, 44, 30, 58, 61, 58, 47, 36, 11, 8, 185, 107, 127, 120,
-			120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 255, 0, 5, 0, 1, 0, 31, 1, 64, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 45, 37, 28, 51, 55, 50,
-			39, 28, 9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 22, 1, 160, 2, 204, 6, 255, 9, 124, 13, 33, 15, 156, 28, 70, 58,
-			37, 68, 71, 61, 48, 35, 12, 7, 245, 138, 159, 124, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 242, 0, 97, 3, 196, 5, 122, 10, 204, 13, 109, 15,
-			140, 27, 80, 78, 43, 84, 81, 56, 44, 31, 14, 6, 250, 166, 163, 142, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10,
-			216, 13, 120, 15, 102, 27, 60, 83, 41, 81, 77, 51, 41, 29, 13, 5, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 236, 0, 128, 3,
-			160, 5, 140, 10, 216, 13, 120, 15, 102, 27, 0, 50, 32, 63, 60, 40, 32, 22, 10, 4, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 225, 0,
-			6, 0, 1, 0, 177, 0, 117, 1, 37, 3, 102, 10, 50, 12, 55, 15, 148, 26, 45, 38, 11, 53, 49, 26, 23, 20, 12, 6, 162, 127,
-			149, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 177, 0, 117, 1, 37, 3, 102, 10, 50, 12, 55, 15, 148, 26, 50, 60, 13, 66, 61, 32, 29, 26,
-			16, 8, 162, 127, 149, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 189, 0, 168, 1, 84, 3, 128, 10, 68, 12, 5, 15, 185, 26, 50, 64, 24, 59,
-			72, 37, 34, 31, 17, 8, 163, 130, 147, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 244, 0, 128, 2, 36, 4, 240, 10, 148, 12, 41, 14, 96, 27,
-			40, 94, 30, 75, 97, 50, 46, 46, 15, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 244, 0, 128, 2, 36, 4, 240, 10, 148, 12,
-			41, 14, 96, 27, 40, 84, 29, 71, 92, 47, 44, 44, 14, 7, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 244, 0, 128, 2, 36, 4,
-			240, 10, 148, 12, 41, 14, 96, 27, 0, 45, 23, 53, 64, 36, 33, 33, 11, 5, 167, 142, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 250, 0, 5, 0,
-			1, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 27, 6, 51, 45, 46, 46, 22, 10, 5, 167, 105, 120, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 80, 65, 9, 78, 70, 70, 71, 34, 16, 8,
-			167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 161, 0, 67, 1, 160, 8, 207, 10, 36, 13, 208, 14, 0, 27, 65, 48, 12, 66, 59, 62,
-			59, 31, 13, 7, 166, 105, 121, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 31, 1, 72, 2, 244, 6, 0, 10, 104, 13, 15, 15, 224, 28, 60, 38,
-			30, 52, 55, 49, 38, 27, 10, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 31, 1, 72, 2, 244, 6, 0, 10, 104, 13, 15, 15,
-			224, 28, 0, 33, 28, 48, 51, 46, 35, 25, 9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 240, 0, 5, 0, 1, 0, 168, 0, 240, 1,
-			132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 45, 54, 23, 57, 64, 39, 35, 17, 13, 5, 165, 135, 150, 120, 120, 120, 165, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			168, 0, 240, 1, 132, 3, 216, 9, 164, 11, 141, 14, 32, 27, 80, 105, 33, 80, 89, 54, 49, 24, 18, 7, 165, 135, 150, 120, 120, 120,
-			165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 170, 0, 224, 1, 138, 3, 186, 9, 168, 11, 141, 14, 76, 27, 55, 83, 27, 74, 79, 48, 43, 22, 16, 6, 164, 133,
-			148, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 120, 1, 32, 3, 172, 8, 204, 11, 141, 14, 224, 28, 60, 44, 23, 63, 38, 26, 17, 15,
-			7, 7, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 104, 1, 32, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 19, 57,
-			37, 21, 14, 11, 8, 7, 152, 120, 97, 120, 120, 120, 107, 90, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 16, 1, 96, 2, 8, 7, 225, 9, 104, 13,
-			15, 15, 224, 28, 40, 29, 23, 47, 51, 46, 36, 26, 8, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 16, 1, 96, 2, 8, 7,
-			225, 9, 104, 13, 15, 15, 224, 28, 66, 69, 36, 73, 77, 71, 55, 40, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 6, 1,
-			64, 2, 20, 7, 226, 9, 99, 13, 18, 15, 157, 28, 94, 58, 30, 66, 70, 65, 50, 37, 12, 8, 237, 130, 156, 120, 120, 120, 135, 180,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 168, 0, 112, 1, 128, 7, 40, 10, 50, 13, 48, 15, 64, 26, 40, 37, 19, 53, 51, 51, 47, 29, 11, 8, 181, 111, 129, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 152, 0, 152, 1, 168, 7, 40, 10, 52, 13, 60, 15, 96, 25, 0, 30, 24, 56, 44, 48, 45, 26, 10, 8,
-			160, 105, 120, 120, 120, 120, 130, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 201, 4, 37, 0, 1, 5, 238, 14, 15, 233, 0, 15, 12, 244, 232, 21, 11, 0, 252, 238, 27, 254,
-			250, 251, 0, 30, 251, 232, 4, 19, 244, 249, 15, 238, 27, 244, 247, 11, 249, 2, 8, 250, 2, 7, 249, 8, 243, 14, 242, 2, 29, 243,
-			242, 0, 20, 248, 3, 5, 245, 7, 2, 12, 248, 239, 10, 18, 3, 229, 11, 9, 248, 28, 222, 16, 19, 252, 19, 249, 5, 237, 227, 235,
-			239, 35, 16, 242, 248, 244, 11, 239, 33, 20, 213, 26, 249, 5, 21, 227, 0, 35, 39, 240, 220, 12, 29, 29, 243, 242, 16, 29, 2, 229,
-			13, 0, 19, 8, 250, 245, 19, 4, 247, 220, 239, 234, 211, 242, 20, 8, 0, 6, 12, 238, 224, 14, 41, 195, 231, 247, 188, 236, 15, 234,
-			1, 25, 3, 231, 252, 28, 27, 35, 252, 236, 23, 58, 255, 232, 34, 41, 255, 8, 19, 252, 252, 29, 46, 235, 238, 74, 8, 189, 13, 27,
-			235, 233, 31, 14, 236, 228, 253, 23, 237, 239, 16, 234, 231, 29, 241, 242, 4, 16, 236, 239, 38, 228, 234, 68, 238, 216, 40, 240, 255, 24,
-			247, 11, 239, 255, 3, 21, 18, 227, 243, 44, 224, 253, 15, 5, 10, 216, 247, 51, 8, 200, 4, 36, 250, 2, 218, 249, 45, 2, 213, 11,
-			13, 177, 229, 20, 1, 232, 30, 21, 208, 26, 55, 18, 194, 20, 42, 7, 14, 218, 8, 59, 243, 251, 29, 252, 2, 247, 1, 15, 18, 243,
-			253, 10, 4, 255, 11, 252, 232, 248, 23, 250, 242, 243, 21, 246, 222, 33, 252, 244, 13, 253, 221, 255, 38, 250, 201, 55, 247, 214, 13, 0,
-			250, 2, 217, 218, 251, 51, 210, 204, 33, 55, 237, 217, 34, 13, 11, 232, 0, 80, 228, 255, 8, 19, 58, 210, 25, 40, 226, 51, 246, 237,
-			37, 12, 255, 234, 27, 26, 203, 36, 19, 221, 3, 1, 0, 237, 250, 28, 221, 237, 35, 240, 240, 1, 229, 253, 0, 7, 9, 244, 245, 233,
-			46, 251, 210, 26, 14, 248, 238, 33, 13, 203, 28, 26, 224, 5, 5, 252, 25, 245, 15, 1, 250, 29, 236, 237, 54, 221, 206, 247, 8, 247,
-			187, 21, 51, 222, 25, 35, 233, 12, 25, 219, 254, 45, 3, 245, 21, 26, 5, 253, 0, 5, 237, 35, 236, 226, 22, 43, 206, 238, 52, 19,
-			226, 236, 21, 1, 249, 244, 244, 4, 54, 223, 204, 22, 5, 0, 11, 197, 240, 53, 218, 232, 53, 210, 10, 21, 251, 244, 0, 2, 11, 8,
-			255, 249, 241, 38, 249, 217, 26, 27, 5, 11, 251, 218, 55, 26, 199, 5, 30, 10, 12, 198, 38, 7, 221, 38, 255, 227, 13, 6, 43, 224,
-			215, 62, 0, 235, 42, 212, 243, 43, 253, 253, 224, 16, 28, 244, 12, 4, 223, 251, 51, 226, 239, 19, 225, 30, 32, 213, 238, 6, 32, 231,
-			232, 27, 240, 238, 13, 11, 233, 247, 27, 237, 3, 250, 2, 22, 216, 19, 25, 222, 36, 10, 211, 254, 37, 46, 215, 220, 50, 230, 240, 30,
-			250, 246, 232, 31, 5, 232, 32, 243, 42, 239, 253, 31, 233, 14, 220, 48, 31, 210, 15, 245, 11, 15, 2, 237, 24, 251, 8, 217, 47, 33,
-			207, 7, 31, 17, 190, 11, 20, 242, 218, 34, 10, 179, 23, 52, 222, 236, 14, 25, 16, 246, 243, 10, 239, 183, 244, 12, 195, 241, 62, 188,
-			9, 23, 249, 246, 232, 88, 27, 171, 23, 49, 21, 34, 27, 225, 11, 7, 71, 197, 217, 93, 254, 213, 27, 22, 240, 25, 16, 224, 23, 23,
-			223, 36, 243, 220, 57, 242, 219, 218, 38, 13, 172, 28, 18, 226, 179, 57, 41, 164, 244, 66, 208, 251, 248, 234, 23, 34, 29, 195, 45, 248,
-			250, 12, 0, 20, 234, 33, 47, 208, 3, 63, 207, 34, 18, 185, 0, 31, 252, 216, 254, 19, 36, 10, 217, 220, 22, 34, 251, 217, 245, 70,
-			2, 181, 18, 35, 220, 96, 161, 18, 92, 165, 252, 42, 254, 10, 1, 228, 32, 0, 246, 2, 4, 30, 18, 240, 235, 26, 235, 225, 246, 35,
-			31, 184, 224, 65, 251, 241, 246, 13, 28, 232, 234, 48, 191, 233, 90, 231, 226, 43, 8, 191, 24, 62, 206, 221, 38, 25, 189, 252, 72, 218,
-			222, 69, 5, 208, 46, 245, 209, 21, 53, 250, 180, 54, 0, 198, 76, 7, 194, 26, 41, 235, 1, 240, 31, 240, 237, 51, 199, 237, 112, 217,
-			177, 52, 24, 222, 6, 238, 241, 55, 217, 183, 59, 58, 208, 241, 17, 35, 214, 0, 25, 255, 31, 219, 233, 54, 0, 247, 1, 228, 30, 215,
-			20, 53, 200, 20, 249, 238, 83, 254, 142, 16, 125, 236, 153, 40, 54, 253, 18, 206, 254, 49, 36, 205, 182, 51, 75, 223, 172, 9, 247, 48,
-			245, 240, 251, 8, 20, 226, 1, 24, 232, 3, 29, 15, 4, 252, 252, 12, 0, 16, 242, 66, 239, 184, 4, 38, 15, 225, 245, 21, 1, 241,
-			3, 219, 11, 227, 250, 38, 248, 188, 216, 77, 64, 187, 240, 5, 69, 230, 203, 57, 39, 243, 5, 240, 39, 19, 208, 248, 28, 2, 234, 248,
-			6, 248, 14, 11, 250, 24, 30, 221, 218, 44, 9, 250, 203, 242, 17, 19, 254, 202, 217, 49, 241, 241, 0, 238, 14, 32, 0, 230, 253, 44,
-			0, 223, 86, 233, 246, 39, 1, 246, 6, 4, 12, 234, 3, 38, 237, 16, 223, 223, 50, 23, 229, 211, 250, 27, 254, 246, 233, 219, 46, 250,
-			188, 40, 20, 239, 244, 42, 19, 233, 48, 18, 202, 9, 11, 229, 16, 22, 218, 245, 35, 32, 238, 223, 58, 7, 0, 11, 205, 221, 74, 25,
-			186, 10, 34, 244, 222, 250, 53, 16, 200, 20, 37, 254, 252, 227, 13, 18, 14, 252, 252, 31, 216, 204, 28, 50, 6, 234, 225, 35, 1, 230,
-			251, 22, 11, 2, 237, 0, 42, 241, 212, 38, 32, 227, 13, 9, 209, 10, 27, 238, 210, 248, 20, 231, 249, 13, 33, 0, 236, 34, 21, 9,
-			11, 227, 12, 29, 249, 226, 245, 14, 224, 196, 1, 3, 196, 242, 12, 37, 234, 243, 40, 16, 250, 21, 3, 252, 18, 11, 209, 241, 70, 18,
-			248, 3, 1, 249, 229, 16, 29, 236, 64, 29, 214, 13, 18, 4, 253, 240, 15, 4, 15, 239, 216, 10, 32, 246, 4, 239, 232, 222, 241, 4,
-			10, 1, 242, 238, 255, 12, 227, 242, 16, 248, 244, 10, 248, 244, 7, 0, 28, 35, 12, 237, 5, 32, 20, 17, 226, 0, 26, 4, 231, 15,
-			26, 224, 239, 31, 22, 244, 233, 246, 0, 0, 18, 246, 244, 24, 11, 253, 3, 242, 241, 0, 14, 18, 254, 247, 249, 1, 0, 243, 4, 13,
-			2, 243, 0, 6, 1, 29, 219, 236, 44, 3, 248, 243, 6, 48, 241, 242, 31, 4, 12, 252, 250, 22, 13, 240, 247, 1, 253, 237, 231, 246,
-			6, 1, 241, 252, 1, 6, 252, 247, 16, 11, 0, 17, 7, 7, 253, 0, 10, 232, 254, 20, 3, 250, 237, 245, 0, 0, 14, 254, 247, 252,
-			243, 0, 252, 248, 6, 7, 252, 0, 0, 0, 175, 0, 4, 0, 1, 0, 208, 0, 144, 2, 24, 6, 136, 9, 22, 13, 216, 14, 92, 27,
-			45, 38, 30, 55, 57, 46, 32, 23, 10, 5, 168, 135, 157, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 208, 0, 144, 2, 24, 6, 136, 9, 22, 13,
-			216, 14, 92, 27, 70, 61, 38, 70, 73, 58, 41, 29, 13, 6, 168, 135, 157, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 202, 0, 136, 2, 0, 6,
-			140, 9, 4, 13, 196, 14, 92, 27, 60, 50, 35, 63, 67, 51, 37, 27, 13, 6, 168, 136, 153, 120, 120, 120, 200, 127, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 202, 0,
-			136, 2, 0, 6, 140, 9, 4, 13, 196, 14, 92, 27, 0, 27, 27, 46, 49, 37, 23, 17, 9, 4, 168, 136, 153, 120, 120, 120, 200, 127,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			190, 0, 4, 0, 1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 50, 42, 32, 62, 49, 52, 44, 32, 14, 6,
-			161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 80, 67, 40, 78, 61, 66,
-			55, 40, 17, 8, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15, 163, 25, 60, 56,
-			37, 71, 56, 61, 51, 37, 16, 7, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 152, 1, 224, 6, 236, 9, 72, 13, 180, 15,
-			163, 25, 0, 32, 28, 54, 42, 46, 38, 28, 12, 5, 161, 98, 126, 120, 120, 120, 130, 107, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 185, 0, 6, 0, 1, 0, 186, 0, 176, 2,
-			84, 6, 80, 10, 192, 13, 100, 15, 160, 27, 50, 41, 39, 54, 66, 42, 33, 27, 15, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44,
-			45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			186, 0, 176, 2, 84, 6, 80, 10, 192, 13, 100, 15, 160, 27, 50, 63, 48, 66, 81, 52, 40, 33, 18, 0, 180, 150, 125, 120, 120, 120,
-			200, 120, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 186, 0, 160, 2, 84, 6, 80, 10, 192, 13, 100, 15, 160, 27, 45, 47, 42, 52, 75, 45, 36, 29, 16, 0, 180, 150,
-			125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 188, 0, 34, 2, 57, 5, 54, 10, 250, 12, 206, 14, 197, 27, 45, 25, 37, 37, 42, 30, 25, 21,
-			10, 2, 180, 119, 122, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 192, 0, 135, 1, 222, 3, 20, 10, 6, 12, 21, 14, 244, 27, 40, 19, 40, 29,
-			26, 17, 21, 16, 6, 5, 180, 81, 119, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 192, 0, 135, 1, 222, 3, 20, 10, 6, 12, 21, 14, 244, 27,
-			0, 13, 34, 24, 14, 14, 18, 14, 5, 4, 180, 81, 119, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 245, 0, 6, 0, 1, 0, 228, 0, 40, 2, 128, 3,
-			120, 10, 8, 12, 15, 14, 216, 27, 50, 61, 29, 60, 73, 29, 34, 20, 10, 5, 180, 112, 128, 120, 120, 120, 105, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 228, 0,
-			40, 2, 128, 3, 120, 10, 8, 12, 15, 14, 216, 27, 40, 85, 34, 71, 86, 34, 40, 24, 11, 6, 180, 112, 128, 120, 120, 120, 105, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 228, 0, 40, 2, 128, 3, 120, 10, 8, 12, 15, 14, 216, 27, 45, 75, 32, 67, 81, 32, 38, 23, 11, 6, 180, 112, 128, 120,
-			120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 215, 0, 229, 1, 83, 3, 127, 10, 228, 12, 60, 15, 176, 27, 50, 46, 41, 51, 63, 25, 25, 18, 10, 5,
-			164, 96, 118, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 205, 0, 184, 1, 52, 3, 132, 10, 248, 12, 4, 16, 148, 27, 60, 21, 43, 30, 30, 20,
-			13, 13, 9, 4, 153, 85, 112, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 205, 0, 184, 1, 52, 3, 132, 10, 248, 12, 4, 16, 148, 27, 0, 16,
-			37, 26, 26, 17, 11, 11, 8, 3, 153, 85, 112, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 175, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 139, 0, 3, 0, 1, 0, 80, 1, 168, 2, 124, 6, 216, 9,
-			192, 13, 185, 15, 32, 29, 50, 49, 35, 57, 69, 51, 38, 29, 10, 8, 255, 150, 180, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 88, 1, 168, 2,
-			124, 6, 216, 9, 192, 13, 185, 15, 32, 29, 90, 82, 45, 74, 89, 66, 50, 38, 13, 8, 255, 150, 180, 120, 120, 120, 135, 180, 150, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			88, 1, 168, 2, 124, 6, 216, 9, 192, 13, 185, 15, 32, 29, 0, 47, 34, 56, 67, 50, 38, 28, 9, 9, 255, 150, 180, 120, 120, 120,
-			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 167, 10, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 255, 253, 255, 0, 1, 1, 0,
-			255, 253, 255, 1, 0, 254, 0, 7, 6, 254, 2, 3, 1, 0, 0, 0, 253, 253, 244, 245, 8, 21, 10, 251, 249, 4, 0, 0, 4, 4,
-			246, 237, 246, 10, 15, 27, 27, 225, 225, 2, 34, 31, 7, 252, 226, 4, 33, 247, 210, 242, 25, 37, 13, 247, 241, 243, 25, 28, 247, 237,
-			254, 65, 35, 236, 218, 188, 249, 59, 78, 31, 199, 236, 10, 229, 22, 50, 36, 238, 191, 14, 47, 241, 234, 236, 224, 68, 38, 10, 241, 213,
-			43, 0, 6, 33, 244, 26, 235, 221, 6, 233, 38, 252, 235, 235, 5, 57, 253, 254, 18, 15, 5, 221, 203, 212, 219, 255, 22, 52, 57, 23,
-			218, 184, 213, 244, 18, 31, 40, 10, 225, 228, 236, 242, 245, 17, 29, 243, 221, 245, 24, 23, 17, 251, 237, 225, 237, 0, 250, 243, 0, 20,
-			17, 21, 246, 216, 245, 30, 55, 242, 209, 2, 7, 27, 23, 248, 236, 219, 6, 19, 254, 47, 23, 250, 227, 207, 5, 12, 23, 13, 7, 0,
-			251, 249, 249, 250, 254, 0, 255, 251, 248, 248, 254, 5, 8, 12, 12, 255, 254, 13, 0, 243, 245, 247, 0, 0, 10, 14, 2, 250, 247, 251,
-			4, 1, 253, 243, 250, 4, 4, 255, 1, 2, 2, 1, 4, 0, 1, 255, 0, 3, 5, 7, 4, 5, 9, 5, 1, 0, 3, 4, 11, 8,
-			5, 0, 2, 3, 6, 4, 255, 255, 0, 1, 1, 1, 2, 8, 9, 6, 3, 252, 250, 248, 252, 5, 8, 5, 4, 0, 255, 252, 253, 251,
-			1, 7, 4, 0, 252, 254, 253, 1, 3, 2, 254, 0, 255, 252, 252, 255, 254, 1, 3, 253, 253, 0, 3, 255, 253, 2, 4, 4, 6, 2,
-			255, 249, 252, 4, 4, 8, 8, 3, 1, 255, 3, 254, 250, 0, 4, 6, 0, 252, 1, 255, 1, 1, 255, 248, 253, 2, 5, 9, 255, 247,
-			251, 251, 0, 10, 2, 251, 236, 250, 2, 7, 6, 0, 1, 11, 7, 5, 4, 3, 3, 245, 253, 6, 253, 0, 0, 254, 243, 244, 1, 5,
-			4, 251, 248, 247, 236, 249, 5, 6, 250, 252, 6, 12, 254, 248, 242, 245, 21, 37, 248, 234, 3, 248, 247, 20, 30, 246, 224, 0, 34, 13,
-			14, 239, 248, 10, 0, 16, 0, 3, 9, 253, 3, 3, 247, 244, 238, 23, 49, 1, 247, 225, 0, 29, 245, 1, 3, 253, 236, 249, 11, 14,
-			14, 13, 10, 10, 11, 10, 6, 254, 244, 240, 254, 13, 5, 254, 254, 18, 0, 4, 206, 237, 18, 253, 25, 241, 250, 1, 243, 32, 206, 6,
-			52, 241, 211, 219, 46, 28, 221, 18, 238, 221, 47, 39, 8, 197, 0, 239, 208, 39, 69, 254, 208, 241, 15, 5, 245, 0, 238, 41, 15, 190,
-			47, 15, 242, 226, 247, 28, 10, 22, 2, 230, 214, 17, 16, 46, 16, 161, 31, 46, 223, 245, 241, 64, 206, 19, 20, 216, 36, 208, 34, 18,
-			211, 27, 207, 62, 231, 221, 100, 183, 255, 41, 235, 242, 245, 100, 239, 150, 0, 52, 13, 16, 253, 8, 23, 0, 248, 15, 24, 206, 211, 226,
-			64, 40, 42, 23, 151, 194, 28, 50, 19, 214, 3, 19, 224, 241, 244, 45, 255, 230, 255, 24, 24, 245, 246, 213, 241, 46, 1, 232, 236, 30,
-			30, 5, 77, 20, 2, 57, 17, 35, 9, 250, 10, 221, 25, 21, 255, 15, 213, 226, 5, 241, 238, 208, 211, 12, 234, 0, 244, 188, 253, 26,
-			246, 211, 240, 21, 3, 6, 236, 225, 231, 233, 46, 49, 13, 243, 2, 34, 12, 243, 3, 0, 19, 54, 56, 13, 14, 10, 36, 8, 232, 1,
-			0, 252, 2, 4, 255, 228, 250, 246, 250, 244, 226, 235, 242, 236, 237, 213, 231, 10, 23, 242, 225, 242, 26, 5, 251, 250, 9, 8, 13, 8,
-			0, 1, 11, 18, 16, 9, 7, 12, 17, 14, 1, 245, 243, 22, 49, 38, 246, 247, 247, 7, 8, 253, 221, 229, 21, 10, 247, 240, 237, 9,
-			15, 232, 229, 252, 33, 22, 237, 1, 249, 228, 0, 14, 37, 4, 226, 21, 0, 214, 14, 41, 39, 4, 217, 243, 17, 22, 6, 243, 12, 15,
-			2, 18, 4, 219, 242, 254, 17, 31, 248, 246, 248, 252, 241, 253, 19, 2, 15, 252, 240, 253, 252, 247, 244, 5, 23, 12, 21, 217, 210, 0,
-			5, 39, 7, 239, 249, 248, 25, 0, 251, 240, 221, 36, 49, 14, 244, 224, 0, 10, 226, 247, 24, 9, 18, 10, 5, 250, 235, 5, 243, 1,
-			18, 250, 245, 250, 14, 15, 243, 244, 10, 12, 246, 229, 241, 23, 34, 253, 219, 213, 4, 52, 34, 27, 224, 233, 16, 247, 252, 21, 248, 233,
-			7, 3, 3, 237, 225, 12, 23, 26, 17, 251, 4, 243, 224, 235, 240, 22, 23, 29, 11, 212, 215, 28, 18, 12, 0, 248, 8, 237, 247, 250,
-			222, 23, 23, 23, 32, 229, 228, 248, 254, 28, 12, 253, 251, 227, 234, 38, 31, 9, 2, 230, 251, 0, 246, 26, 26, 10, 255, 234, 29, 39,
-			207, 213, 230, 7, 66, 19, 238, 242, 223, 247, 13, 25, 38, 6, 230, 233, 0, 0, 255, 239, 250, 0, 24, 36, 9, 239, 236, 255, 11, 12,
-			5, 2, 3, 5, 5, 5, 3, 4, 5, 2, 255, 248, 240, 242, 250, 5, 252, 39, 5, 213, 9, 20, 254, 237, 230, 50, 60, 240, 249, 3,
-			212, 244, 22, 2, 21, 239, 17, 27, 220, 228, 35, 6, 221, 239, 11, 52, 14, 210, 8, 25, 4, 229, 200, 38, 22, 236, 33, 5, 215, 207,
-			253, 52, 11, 254, 16, 227, 217, 5, 44, 244, 171, 225, 40, 27, 32, 35, 223, 212, 243, 28, 21, 223, 237, 5, 231, 235, 57, 72, 238, 166,
-			222, 248, 23, 45, 52, 14, 170, 252, 54, 249, 220, 198, 30, 43, 215, 18, 38, 19, 241, 245, 10, 211, 195, 55, 73, 250, 226, 0, 37, 226,
-			199, 47, 63, 212, 13, 46, 3, 32, 187, 236, 102, 1, 235, 10, 221, 66, 15, 169, 50, 213, 249, 117, 242, 244, 237, 221, 36, 9, 241, 19,
-			219, 246, 65, 218, 215, 27, 33, 13, 209, 13, 250, 225, 243, 75, 45, 191, 223, 223, 19, 33, 5, 66, 208, 188, 29, 11, 39, 246, 221, 38,
-			228, 2, 35, 229, 21, 243, 212, 79, 252, 229, 17, 240, 24, 201, 220, 82, 27, 215, 231, 7, 21, 243, 239, 18, 246, 235, 4, 251, 24, 243,
-			5, 6, 221, 5, 16, 23, 230, 247, 23, 251, 224, 228, 35, 41, 1, 237, 205, 20, 68, 243, 219, 235, 16, 31, 240, 243, 218, 225, 255, 11,
-			8, 1, 2, 7, 9, 7, 2, 253, 1, 14, 13, 2, 252, 7, 19, 239, 11, 11, 1, 251, 229, 18, 11, 1, 235, 22, 7, 230, 244, 28,
-			252, 24, 243, 252, 241, 12, 7, 34, 230, 239, 22, 239, 34, 249, 239, 246, 244, 29, 16, 252, 4, 0, 201, 16, 37, 247, 244, 6, 19, 251,
-			210, 247, 86, 250, 197, 239, 23, 42, 0, 221, 31, 246, 197, 22, 50, 14, 6, 207, 15, 7, 211, 47, 22, 245, 254, 216, 5, 4, 24, 48,
-			245, 175, 199, 75, 66, 45, 209, 179, 241, 241, 71, 92, 223, 203, 205, 16, 23, 255, 24, 23, 244, 242, 239, 242, 11, 2, 45, 254, 229, 205,
-			235, 84, 45, 222, 203, 220, 66, 2, 22, 25, 212, 243, 240, 11, 28, 236, 12, 36, 252, 231, 236, 228, 47, 31, 232, 232, 239, 8, 25, 10,
-			17, 200, 238, 35, 34, 35, 238, 224, 229, 222, 249, 57, 66, 23, 185, 189, 244, 58, 55, 226, 253, 5, 244, 8, 232, 0, 11, 21, 19, 203,
-			212, 50, 0, 36, 42, 231, 206, 207, 48, 45, 252, 236, 220, 42, 15, 3, 2, 201, 232, 73, 45, 247, 212, 239, 1, 1, 41, 2, 227, 234,
-			10, 30, 14, 241, 252, 17, 0, 236, 25, 236, 247, 29, 12, 250, 250, 233, 21, 5, 252, 251, 21, 17, 32, 210, 237, 229, 243, 13, 0, 252,
-			244, 241, 253, 5, 6, 5, 7, 11, 13, 6, 232, 205, 232, 45, 97, 10, 211, 208, 238, 35, 10, 11, 2, 231, 3, 38, 6, 246, 228, 220,
-			49, 29, 234, 224, 220, 12, 45, 49, 250, 185, 227, 22, 52, 49, 242, 178, 237, 22, 44, 11, 209, 247, 6, 227, 34, 25, 18, 243, 22, 67,
-			7, 202, 13, 60, 255, 229, 188, 253, 72, 10, 236, 231, 183, 255, 78, 30, 244, 193, 251, 14, 46, 49, 227, 207, 198, 34, 62, 5, 232, 245,
-			13, 236, 228, 0, 15, 237, 214, 233, 1, 3, 28, 249, 1, 253, 18, 17, 0, 6, 6, 241, 16, 0, 0, 4, 238, 255, 22, 31, 254, 202,
-			2, 26, 243, 13, 25, 20, 0, 193, 255, 20, 242, 27, 17, 246, 216, 224, 29, 50, 0, 240, 234, 228, 219, 40, 95, 19, 173, 225, 63, 42,
-			7, 0, 0, 241, 251, 19, 28, 240, 223, 238, 46, 39, 219, 201, 245, 13, 31, 11, 219, 195, 255, 51, 28, 214, 198, 7, 41, 37, 20, 254,
-			198, 208, 215, 52, 74, 36, 251, 191, 206, 20, 45, 54, 233, 241, 4, 19, 25, 17, 241, 235, 232, 1, 38, 36, 9, 253, 233, 211, 255, 49,
-			11, 222, 20, 56, 247, 208, 181, 243, 55, 21, 14, 23, 240, 212, 253, 24, 29, 33, 201, 225, 14, 39, 68, 254, 193, 212, 252, 20, 2, 252,
-			249, 248, 254, 1, 0, 255, 3, 10, 15, 12, 255, 243, 255, 11, 13, 242, 237, 202, 20, 88, 19, 223, 203, 213, 23, 26, 15, 41, 247, 204,
-			250, 243, 47, 44, 215, 205, 17, 11, 40, 4, 232, 253, 8, 235, 1, 14, 14, 7, 241, 11, 24, 2, 240, 241, 234, 218, 10, 87, 37, 227,
-			178, 202, 24, 65, 27, 253, 221, 204, 239, 40, 49, 21, 216, 202, 247, 11, 48, 44, 251, 203, 215, 7, 85, 29, 210, 171, 246, 63, 84, 225,
-			184, 250, 34, 254, 245, 248, 45, 19, 223, 227, 227, 50, 74, 13, 251, 185, 194, 38, 248, 15, 59, 253, 234, 196, 231, 127, 5, 228, 216, 209,
-			76, 19, 200, 255, 4, 8, 58, 210, 219, 11, 245, 92, 29, 225, 4, 195, 234, 69, 3, 225, 242, 15, 50, 231, 214, 10, 247, 219, 59, 59,
-			227, 199, 188, 53, 85, 245, 237, 218, 214, 44, 50, 237, 214, 13, 46, 14, 233, 251, 251, 242, 251, 37, 19, 216, 211, 22, 59, 26, 217, 229,
-			18, 22, 15, 252, 252, 243, 222, 243, 29, 41, 235, 214, 32, 32, 42, 226, 200, 8, 236, 39, 39, 239, 0, 8, 223, 237, 21, 43, 31, 236,
-			200, 19, 51, 22, 235, 217, 0, 6, 230, 31, 48, 24, 251, 201, 214, 27, 39, 17, 236, 207, 251, 48, 10, 248, 235, 2, 14, 247, 254, 0,
-			253, 253, 251, 249, 250, 252, 0, 9, 17, 21, 12, 250, 237, 233, 238, 250, 38, 249, 216, 245, 30, 43, 28, 189, 208, 21, 25, 37, 8, 213,
-			200, 220, 39, 66, 252, 242, 219, 248, 21, 13, 9, 12, 226, 193, 254, 61, 37, 230, 199, 234, 17, 50, 6, 254, 249, 221, 11, 36, 248, 245,
-			15, 11, 225, 225, 28, 59, 21, 232, 241, 228, 20, 28, 23, 4, 207, 218, 4, 37, 57, 240, 213, 0, 255, 16, 16, 0, 233, 245, 17, 15,
-			22, 252, 231, 15, 252, 228, 253, 10, 52, 41, 231, 244, 236, 211, 5, 29, 53, 24, 222, 207, 224, 30, 75, 14, 224, 220, 253, 48, 18, 202,
-			222, 46, 63, 0, 198, 209, 25, 47, 11, 227, 233, 6, 39, 16, 234, 246, 251, 240, 2, 252, 11, 46, 242, 211, 251, 37, 33, 243, 218, 251,
-			29, 0, 252, 251, 3, 248, 242, 21, 15, 6, 251, 239, 252, 252, 1, 5, 23, 8, 222, 232, 27, 30, 247, 228, 252, 13, 6, 19, 13, 244,
-			218, 229, 16, 36, 15, 1, 240, 1, 16, 11, 255, 255, 229, 250, 22, 0, 241, 23, 27, 13, 233, 217, 8, 25, 21, 14, 221, 246, 14, 19,
-			255, 245, 229, 240, 22, 37, 25, 242, 209, 244, 3, 17, 26, 240, 220, 234, 2, 48, 24, 235, 218, 224, 16, 39, 247, 246, 2, 17, 1, 244,
-			238, 241, 253, 7, 8, 1, 254, 4, 14, 16, 2, 241, 232, 253, 18, 32, 255, 210, 227, 10, 50, 2, 218, 240, 244, 36, 43, 242, 226, 222,
-			255, 35, 47, 253, 213, 216, 245, 33, 39, 16, 247, 238, 253, 10, 5, 15, 255, 231, 247, 6, 7, 5, 27, 3, 237, 7, 0, 0, 7, 12,
-			2, 237, 242, 11, 17, 24, 252, 217, 253, 19, 28, 6, 232, 239, 254, 247, 5, 18, 19, 3, 230, 6, 24, 233, 247, 28, 4, 241, 243, 11,
-			13, 4, 244, 249, 0, 252, 25, 25, 255, 231, 220, 16, 37, 250, 232, 238, 36, 33, 250, 1, 253, 226, 248, 6, 36, 5, 219, 234, 245, 10,
-			38, 16, 238, 211, 255, 32, 24, 252, 239, 232, 236, 0, 29, 11, 252, 242, 254, 24, 15, 248, 240, 243, 253, 1, 20, 7, 236, 240, 7, 15,
-			12, 6, 247, 4, 251, 255, 16, 254, 250, 255, 254, 0, 252, 16, 37, 13, 231, 236, 2, 21, 23, 6, 241, 245, 255, 18, 12, 246, 244, 10,
-			24, 10, 238, 242, 8, 18, 20, 13, 239, 240, 4, 13, 4, 250, 254, 16, 20, 0, 235, 246, 14, 27, 1, 248, 235, 241, 16, 17, 254, 243,
-			234, 238, 6, 27, 1, 245, 253, 7, 232, 233, 5, 254, 253, 12, 0, 248, 244, 6, 246, 220, 2, 9, 9, 18, 245, 242, 248, 249, 2, 3,
-			252, 247, 255, 8, 12, 10, 6, 2, 1, 6, 9, 6, 2, 247, 237, 230, 16, 251, 228, 31, 16, 245, 244, 235, 254, 252, 21, 62, 252, 208,
-			219, 221, 30, 71, 253, 213, 251, 18, 8, 238, 36, 36, 231, 212, 248, 232, 42, 78, 14, 181, 209, 40, 31, 234, 30, 59, 241, 182, 5, 28,
-			6, 235, 20, 38, 213, 202, 27, 53, 15, 10, 11, 225, 180, 21, 79, 30, 226, 207, 180, 234, 66, 83, 21, 196, 218, 241, 0, 32, 10, 1,
-			235, 187, 2, 67, 39, 231, 189, 235, 40, 51, 22, 205, 209, 13, 31, 10, 244, 220, 242, 32, 45, 18, 232, 218, 247, 21, 31, 23, 228, 210,
-			5, 54, 45, 246, 201, 235, 16, 40, 26, 248, 232, 245, 4, 18, 6, 247, 251, 14, 17, 15, 0, 250, 3, 15, 19, 10, 3, 11, 17, 19,
-			25, 15, 9, 19, 25, 18, 7, 17, 28, 23, 12, 9, 6, 5, 12, 20, 14, 255, 250, 0, 10, 10, 254, 242, 241, 247, 249, 249, 244, 244,
-			244, 247, 246, 233, 228, 242, 245, 237, 234, 227, 227, 241, 245, 236, 226, 240, 2, 255, 242, 233, 223, 230, 243, 254, 255, 250, 245, 231, 239, 23,
-			28, 245, 218, 235, 0, 8, 9, 14, 247, 236, 229, 252, 23, 28, 13, 246, 240, 0, 251, 4, 8, 1, 0, 254, 4, 0, 15, 17, 3, 253,
-			253, 250, 248, 249, 251, 252, 252, 2, 11, 19, 16, 6, 6, 15, 25, 3, 244, 18, 7, 0, 26, 44, 7, 222, 255, 32, 7, 25, 32, 230,
-			218, 20, 51, 16, 231, 222, 253, 55, 21, 219, 253, 32, 3, 239, 2, 242, 231, 12, 14, 8, 18, 247, 212, 246, 43, 12, 223, 251, 36, 2,
-			221, 240, 10, 19, 9, 240, 230, 252, 29, 29, 0, 231, 214, 242, 29, 31, 251, 230, 250, 4, 6, 21, 15, 1, 252, 251, 252, 252, 11, 12,
-			253, 252, 253, 249, 251, 10, 10, 7, 10, 18, 35, 55, 52, 27, 252, 0, 24, 28, 32, 32, 18, 9, 21, 36, 34, 25, 18, 9, 6, 10,
-			8, 244, 235, 0, 85, 0, 3, 0, 5, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18, 174, 21, 55, 2, 12, 14, 4, 4,
-			4, 3, 5, 5, 92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18, 174, 21, 30, 3,
-			14, 16, 5, 5, 5, 4, 6, 6, 92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 9, 0, 112, 0, 144, 1, 8, 7, 152, 8, 216, 14, 14, 18,
-			174, 21, 0, 3, 13, 15, 4, 4, 4, 3, 5, 5, 92, 165, 137, 137, 150, 175, 92, 165, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 240, 0, 5, 0, 1, 0, 184, 0, 72, 2,
-			172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 45, 61, 26, 62, 74, 37, 35, 20, 13, 5, 173, 142, 135, 120, 120, 120, 182, 105, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 75, 118, 36, 86, 103, 51, 49, 28, 18, 7, 173, 142, 135, 120, 120, 120,
-			182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 184, 0, 52, 2, 158, 3, 240, 9, 168, 11, 61, 14, 192, 27, 60, 96, 33, 79, 91, 46, 43, 26, 16, 7, 172, 140,
-			135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 120, 1, 32, 3, 172, 8, 204, 11, 141, 14, 224, 28, 60, 47, 27, 63, 39, 27, 18, 16,
-			8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 104, 1, 32, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 36, 23, 58,
-			38, 22, 15, 12, 9, 8, 152, 120, 97, 120, 120, 120, 107, 90, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 144, 9, 55, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, 1, 0,
-			2, 4, 3, 1, 1, 0, 0, 0, 1, 0, 255, 254, 255, 0, 1, 1, 0, 255, 254, 255, 255, 254, 254, 253, 251, 252, 253, 254, 0, 1,
-			1, 1, 2, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 3, 3, 3, 2, 3, 3, 3, 1, 0, 0, 255, 255, 0, 1, 0,
-			0, 255, 255, 255, 254, 253, 254, 0, 2, 3, 4, 4, 2, 0, 254, 253, 253, 253, 252, 251, 252, 255, 0, 0, 0, 1, 2, 2, 1, 0,
-			255, 254, 253, 252, 253, 255, 0, 1, 2, 3, 3, 2, 3, 3, 0, 255, 0, 0, 253, 251, 252, 254, 0, 3, 5, 4, 3, 3, 1, 0,
-			0, 1, 0, 253, 253, 255, 0, 0, 255, 254, 255, 0, 0, 0, 254, 254, 255, 255, 0, 0, 255, 0, 1, 1, 1, 4, 6, 1, 253, 254,
-			2, 8, 8, 5, 0, 255, 254, 254, 0, 2, 0, 255, 255, 1, 4, 6, 6, 4, 3, 2, 1, 0, 255, 254, 250, 246, 243, 245, 249, 0,
-			6, 11, 11, 6, 255, 250, 248, 249, 251, 251, 250, 249, 251, 2, 7, 6, 4, 5, 8, 11, 12, 8, 5, 2, 253, 245, 245, 249, 250, 251,
-			1, 10, 15, 17, 15, 5, 252, 251, 248, 241, 243, 251, 252, 251, 0, 2, 0, 253, 253, 252, 255, 4, 5, 0, 1, 4, 1, 250, 245, 245,
-			248, 1, 11, 15, 13, 8, 4, 0, 250, 249, 0, 4, 6, 11, 17, 16, 9, 1, 249, 243, 246, 253, 252, 250, 254, 4, 12, 14, 8, 0,
-			254, 0, 254, 248, 246, 246, 239, 238, 254, 14, 14, 1, 248, 247, 1, 14, 15, 4, 254, 252, 250, 252, 253, 248, 245, 0, 11, 11, 8, 11,
-			9, 3, 4, 9, 5, 250, 241, 241, 251, 10, 19, 10, 254, 253, 2, 7, 13, 11, 249, 232, 239, 0, 8, 10, 10, 5, 0, 252, 250, 250,
-			250, 246, 244, 0, 16, 18, 6, 255, 2, 8, 10, 4, 250, 244, 248, 251, 249, 252, 1, 0, 253, 2, 10, 12, 12, 13, 8, 255, 248, 246,
-			243, 241, 246, 252, 0, 8, 16, 16, 12, 10, 6, 254, 249, 253, 252, 244, 243, 249, 253, 255, 6, 13, 12, 10, 7, 4, 5, 7, 3, 246,
-			236, 245, 2, 6, 8, 8, 2, 255, 254, 253, 251, 253, 0, 253, 251, 255, 4, 8, 10, 4, 251, 253, 6, 6, 254, 250, 252, 0, 2, 0,
-			248, 252, 7, 5, 255, 7, 16, 0, 238, 243, 0, 8, 12, 6, 250, 252, 11, 14, 5, 1, 1, 252, 247, 249, 250, 249, 252, 254, 252, 0,
-			15, 20, 9, 251, 245, 248, 255, 1, 253, 248, 1, 10, 5, 254, 254, 0, 254, 254, 2, 11, 15, 5, 247, 242, 248, 0, 2, 1, 0, 3,
-			4, 4, 6, 2, 245, 242, 0, 10, 1, 253, 0, 252, 246, 0, 14, 11, 255, 247, 244, 244, 254, 3, 253, 248, 252, 255, 2, 12, 13, 0,
-			247, 249, 253, 1, 10, 12, 254, 237, 238, 250, 254, 1, 11, 14, 8, 10, 17, 12, 254, 246, 244, 243, 249, 3, 7, 5, 2, 255, 254, 5,
-			7, 6, 12, 18, 4, 241, 245, 6, 1, 239, 242, 9, 18, 4, 247, 245, 251, 2, 4, 3, 8, 6, 246, 239, 0, 16, 8, 251, 247, 247,
-			255, 19, 33, 16, 243, 235, 246, 0, 5, 3, 253, 251, 1, 4, 2, 8, 13, 1, 244, 252, 10, 6, 253, 2, 11, 5, 251, 253, 8, 13,
-			6, 254, 248, 243, 237, 236, 251, 14, 19, 16, 13, 9, 0, 247, 245, 251, 0, 0, 253, 254, 6, 12, 11, 1, 244, 239, 250, 7, 12, 7,
-			4, 2, 255, 247, 245, 0, 6, 251, 242, 255, 16, 19, 6, 245, 235, 240, 1, 20, 26, 14, 242, 225, 235, 249, 1, 17, 31, 15, 240, 236,
-			0, 11, 3, 249, 248, 2, 15, 17, 6, 251, 243, 234, 236, 4, 32, 29, 5, 255, 3, 254, 247, 0, 9, 2, 252, 1, 0, 233, 219, 236,
-			8, 28, 32, 16, 248, 245, 5, 2, 241, 240, 250, 250, 1, 23, 22, 246, 226, 236, 251, 6, 20, 17, 247, 240, 14, 31, 10, 242, 238, 240,
-			238, 249, 16, 23, 6, 250, 3, 23, 32, 17, 246, 233, 240, 244, 242, 246, 0, 9, 15, 19, 19, 4, 244, 244, 250, 243, 234, 248, 20, 22,
-			1, 254, 2, 249, 237, 243, 255, 254, 251, 2, 10, 7, 5, 4, 253, 247, 251, 251, 244, 252, 6, 254, 246, 11, 31, 17, 248, 239, 247, 8,
-			26, 15, 241, 238, 1, 254, 235, 255, 29, 5, 213, 219, 12, 42, 38, 17, 245, 231, 243, 255, 1, 4, 251, 224, 226, 10, 34, 17, 13, 30,
-			13, 236, 243, 11, 8, 238, 218, 225, 255, 24, 20, 2, 0, 10, 16, 27, 28, 255, 219, 221, 255, 20, 6, 234, 225, 248, 22, 28, 7, 248,
-			254, 4, 251, 243, 6, 30, 19, 240, 227, 248, 6, 1, 247, 243, 251, 13, 32, 33, 8, 238, 237, 253, 249, 232, 251, 26, 16, 247, 0, 17,
-			4, 242, 249, 1, 255, 1, 8, 9, 17, 16, 247, 234, 255, 250, 215, 231, 36, 45, 253, 240, 11, 4, 222, 219, 250, 9, 11, 21, 14, 252,
-			251, 251, 234, 227, 248, 17, 23, 20, 13, 250, 237, 250, 12, 252, 226, 243, 16, 12, 3, 21, 21, 248, 240, 254, 248, 237, 0, 19, 6, 252,
-			8, 8, 250, 255, 2, 238, 230, 251, 10, 5, 7, 25, 30, 14, 246, 228, 225, 238, 5, 19, 10, 246, 233, 242, 14, 41, 35, 251, 211, 215,
-			11, 51, 29, 239, 227, 239, 235, 229, 249, 23, 37, 14, 244, 4, 37, 18, 229, 231, 253, 232, 209, 245, 35, 26, 247, 243, 17, 42, 29, 5,
-			6, 9, 236, 211, 235, 7, 252, 248, 33, 58, 29, 248, 244, 10, 15, 234, 204, 237, 22, 2, 226, 246, 33, 46, 26, 251, 231, 241, 6, 3,
-			244, 252, 2, 242, 237, 252, 0, 255, 15, 26, 12, 3, 3, 246, 237, 255, 12, 254, 249, 13, 11, 236, 236, 14, 24, 3, 2, 27, 31, 252,
-			212, 216, 253, 8, 246, 251, 35, 62, 43, 7, 233, 218, 235, 253, 230, 214, 255, 44, 32, 5, 11, 23, 15, 0, 230, 196, 220, 24, 26, 236,
-			234, 14, 12, 247, 2, 20, 17, 28, 28, 232, 192, 232, 24, 5, 225, 235, 3, 5, 14, 37, 35, 6, 242, 242, 242, 241, 0, 32, 40, 3,
-			229, 245, 5, 240, 226, 0, 30, 22, 3, 3, 14, 13, 247, 214, 211, 3, 50, 30, 247, 11, 42, 0, 198, 213, 3, 13, 254, 248, 0, 20,
-			48, 39, 251, 236, 254, 237, 204, 225, 17, 27, 4, 248, 241, 250, 33, 64, 36, 239, 221, 239, 4, 9, 252, 242, 242, 247, 248, 246, 4, 31,
-			35, 12, 0, 7, 10, 254, 236, 229, 242, 254, 252, 2, 20, 15, 249, 252, 14, 4, 240, 254, 20, 254, 222, 240, 24, 19, 236, 223, 0, 28,
-			17, 255, 13, 37, 15, 215, 195, 231, 18, 25, 12, 5, 6, 8, 8, 6, 255, 246, 247, 0, 254, 238, 239, 14, 31, 6, 245, 5, 11, 252,
-			0, 14, 254, 233, 249, 11, 0, 240, 250, 9, 12, 4, 253, 3, 19, 11, 245, 244, 251, 240, 237, 6, 20, 3, 243, 237, 243, 14, 34, 23,
-			5, 1, 247, 238, 1, 20, 254, 226, 244, 14, 0, 237, 1, 29, 22, 1, 0, 7, 5, 250, 243, 240, 241, 0, 13, 8, 245, 228, 239, 30,
-			63, 18, 210, 224, 27, 41, 2, 230, 240, 3, 252, 227, 237, 16, 25, 9, 255, 254, 252, 2, 17, 2, 216, 213, 12, 54, 39, 2, 237, 239,
-			6, 21, 250, 221, 250, 24, 3, 253, 23, 11, 211, 199, 255, 44, 45, 24, 248, 216, 225, 9, 22, 0, 253, 20, 5, 207, 216, 54, 74, 208,
-			156, 32, 126, 27, 176, 223, 44, 32, 230, 203, 234, 31, 37, 250, 239, 18, 27, 3, 255, 244, 211, 233, 32, 18, 229, 250, 36, 17, 245, 6,
-			23, 248, 212, 224, 7, 23, 7, 251, 1, 5, 0, 11, 30, 5, 225, 247, 33, 7, 211, 231, 34, 25, 209, 198, 36, 79, 248, 193, 8, 62,
-			254, 189, 224, 25, 15, 230, 231, 21, 53, 30, 242, 238, 8, 2, 235, 253, 20, 0, 240, 3, 252, 206, 218, 41, 68, 15, 250, 20, 14, 233,
-			217, 217, 213, 239, 38, 51, 3, 228, 249, 17, 15, 9, 6, 254, 249, 248, 233, 221, 244, 23, 21, 255, 4, 26, 28, 12, 251, 236, 227, 232,
-			253, 9, 2, 249, 246, 2, 30, 37, 12, 251, 4, 4, 233, 207, 212, 252, 35, 30, 0, 3, 38, 27, 238, 235, 13, 9, 225, 219, 3, 29,
-			17, 253, 237, 222, 234, 23, 66, 66, 27, 231, 201, 216, 241, 231, 219, 2, 72, 95, 45, 236, 205, 218, 231, 223, 240, 23, 37, 24, 4, 241,
-			228, 240, 11, 17, 4, 6, 13, 8, 0, 243, 224, 221, 238, 255, 3, 20, 56, 56, 9, 232, 221, 200, 188, 233, 40, 52, 31, 16, 255, 228,
-			212, 224, 9, 59, 62, 251, 195, 224, 22, 14, 228, 234, 15, 19, 0, 254, 16, 35, 25, 239, 208, 229, 16, 23, 253, 246, 8, 8, 250, 253,
-			0, 1, 30, 49, 0, 183, 182, 252, 42, 14, 230, 247, 35, 44, 9, 228, 213, 223, 1, 33, 30, 255, 225, 222, 247, 18, 27, 21, 25, 37,
-			24, 233, 190, 198, 242, 20, 34, 32, 12, 241, 236, 2, 17, 13, 17, 32, 12, 201, 170, 229, 48, 53, 1, 235, 11, 39, 12, 223, 225, 12,
-			23, 241, 219, 246, 11, 255, 242, 4, 32, 34, 14, 8, 16, 247, 198, 201, 8, 46, 6, 229, 22, 67, 10, 184, 204, 36, 71, 35, 247, 226,
-			214, 202, 217, 14, 75, 87, 42, 250, 219, 201, 204, 247, 45, 38, 238, 217, 239, 242, 233, 17, 74, 60, 254, 216, 227, 248, 244, 230, 239, 10,
-			14, 1, 11, 24, 9, 250, 24, 67, 33, 190, 141, 193, 18, 57, 57, 29, 253, 247, 247, 238, 242, 11, 37, 26, 241, 216, 240, 5, 223, 186,
-			245, 93, 106, 9, 204, 243, 26, 8, 234, 220, 218, 238, 21, 39, 18, 7, 27, 24, 243, 222, 240, 16, 22, 248, 218, 233, 18, 26, 253, 247,
-			23, 29, 242, 228, 26, 65, 4, 170, 171, 0, 65, 54, 10, 236, 228, 234, 252, 41, 79, 44, 215, 160, 181, 247, 48, 60, 30, 7, 9, 18,
-			1, 217, 197, 231, 35, 62, 36, 246, 216, 219, 233, 236, 3, 42, 48, 19, 252, 0, 11, 248, 205, 193, 238, 38, 57, 35, 250, 217, 221, 4,
-			39, 30, 251, 245, 14, 12, 230, 223, 253, 251, 215, 231, 56, 102, 45, 216, 200, 238, 2, 5, 12, 6, 243, 232, 240, 1, 24, 28, 12, 12,
-			13, 247, 229, 236, 237, 229, 250, 25, 22, 254, 246, 252, 0, 7, 29, 33, 253, 205, 190, 226, 31, 58, 25, 240, 244, 11, 20, 24, 18, 236,
-			201, 219, 253, 12, 21, 22, 0, 240, 251, 6, 13, 32, 39, 7, 222, 221, 245, 252, 247, 250, 3, 18, 31, 26, 254, 221, 213, 243, 28, 39,
-			10, 231, 214, 228, 3, 28, 23, 6, 11, 15, 0, 253, 7, 238, 198, 225, 45, 66, 19, 240, 229, 220, 229, 5, 28, 29, 28, 22, 1, 230,
-			209, 218, 9, 49, 35, 245, 228, 242, 249, 3, 30, 34, 6, 244, 251, 0, 245, 227, 223, 251, 13, 1, 1, 21, 16, 245, 242, 9, 17, 9,
-			12, 6, 235, 222, 238, 237, 224, 11, 74, 49, 226, 214, 21, 55, 16, 216, 216, 5, 11, 221, 205, 4, 56, 34, 251, 11, 33, 254, 208, 225,
-			14, 23, 254, 222, 210, 240, 35, 49, 20, 6, 10, 248, 221, 240, 24, 21, 234, 209, 228, 10, 26, 7, 5, 51, 71, 11, 194, 179, 219, 14,
-			44, 45, 22, 247, 214, 191, 228, 62, 106, 55, 238, 217, 211, 198, 216, 8, 43, 45, 32, 13, 242, 230, 236, 233, 235, 20, 68, 52, 241, 200,
-			203, 222, 253, 30, 48, 52, 42, 251, 176, 164, 238, 49, 51, 27, 19, 8, 251, 243, 224, 217, 6, 61, 39, 221, 214, 18, 30, 255, 252, 10,
-			251, 222, 239, 47, 80, 30, 204, 168, 190, 226, 9, 74, 112, 58, 213, 169, 207, 242, 239, 255, 46, 71, 28, 221, 195, 213, 12, 59, 47, 2,
-			239, 251, 250, 227, 228, 3, 30, 27, 7, 253, 1, 4, 254, 250, 255, 252, 243, 250, 8, 6, 253, 250, 248, 253, 19, 35, 12, 230, 222, 245,
-			0, 246, 249, 4, 8, 12, 24, 27, 10, 237, 215, 223, 4, 32, 10, 223, 229, 16, 26, 255, 2, 32, 20, 231, 215, 247, 21, 16, 243, 228,
-			245, 15, 19, 0, 246, 10, 30, 24, 11, 249, 207, 168, 192, 17, 80, 78, 22, 225, 216, 233, 0, 27, 48, 33, 239, 201, 210, 240, 255, 251,
-			7, 38, 58, 41, 254, 226, 240, 1, 248, 235, 243, 251, 249, 6, 22, 8, 251, 19, 42, 21, 246, 238, 237, 231, 240, 8, 15, 5, 255, 246,
-			248, 21, 46, 29, 249, 239, 249, 250, 237, 223, 226, 253, 34, 53, 38, 2, 234, 234, 249, 9, 18, 3, 229, 219, 248, 16, 18, 17, 17, 254,
-			231, 247, 25, 23, 239, 211, 222, 248, 7, 15, 22, 23, 9, 238, 229, 5, 39, 25, 239, 227, 244, 250, 241, 249, 20, 34, 20, 251, 242, 1,
-			15, 4, 245, 244, 255, 6, 0, 239, 231, 1, 38, 44, 21, 249, 236, 241, 243, 236, 245, 20, 31, 253, 222, 238, 16, 25, 17, 16, 8, 247,
-			243, 247, 245, 245, 253, 2, 8, 21, 24, 5, 247, 250, 250, 236, 239, 10, 25, 8, 240, 231, 238, 253, 8, 9, 6, 9, 12, 0, 231, 227,
-			252, 13, 9, 8, 9, 0, 245, 247, 252, 254, 2, 9, 2, 249, 255, 16, 23, 17, 4, 241, 223, 230, 7, 28, 15, 252, 247, 255, 6, 7,
-			11, 15, 5, 239, 229, 244, 3, 3, 0, 6, 7, 249, 240, 250, 10, 20, 18, 0, 231, 220, 236, 11, 28, 16, 1, 0, 4, 247, 226, 234,
-			15, 44, 32, 0, 238, 238, 8, 7, 88, 0, 0, 0, 0, 0, 0, 0, 255, 0, 2, 2, 0, 255, 254, 253, 254, 0, 4, 8, 8, 5,
-			1, 0, 254, 254, 0, 1, 2, 1, 255, 254, 254, 0, 1, 2, 2, 1, 0, 0, 0, 255, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0,
-			0, 0, 0, 255, 0, 1, 3, 5, 9, 18, 26, 21, 254, 230, 223, 231, 248, 4, 10, 14, 12, 1, 251, 251, 0, 0, 255, 255, 0, 255,
-			252, 252, 4, 13, 14, 8, 0, 245, 231, 224, 234, 1, 23, 26, 17, 7, 3, 3, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
-			2, 2, 0, 255, 255, 0, 0, 0, 1, 2, 2, 1, 255, 254, 254, 0, 2, 3, 1, 255, 254, 254, 0, 2, 6, 8, 7, 3, 0, 253,
-			253, 254, 255, 0, 3, 3, 0, 255, 0, 0, 0, 0, 1, 1, 0, 255, 0, 1, 0, 255, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1,
-			0, 0, 0, 0, 0, 0, 2, 7, 13, 15, 6, 247, 235, 236, 246, 1, 9, 14, 13, 7, 254, 250, 251, 253, 255, 0, 2, 4, 3, 1,
-			0, 0, 255, 252, 252, 254, 0, 0, 255, 255, 0, 1, 3, 5, 6, 6, 3, 0, 253, 253, 254, 255, 255, 0, 0, 0, 1, 5, 9, 6,
-			255, 251, 252, 0, 2, 1, 0, 0, 4, 7, 4, 252, 246, 248, 255, 5, 9, 6, 255, 249, 250, 1, 15, 35, 51, 47, 20, 246, 225, 214,
-			219, 241, 13, 27, 16, 255, 247, 252, 0, 253, 252, 255, 245, 229, 247, 23, 13, 233, 234, 11, 17, 244, 228, 243, 0, 249, 228, 223, 251, 22,
-			24, 23, 23, 1, 232, 240, 11, 13, 253, 251, 0, 1, 6, 17, 18, 4, 251, 7, 15, 252, 242, 7, 22, 7, 244, 249, 7, 11, 6, 3,
-			2, 4, 255, 238, 227, 248, 21, 16, 241, 239, 20, 35, 251, 215, 240, 22, 18, 242, 233, 252, 249, 228, 246, 32, 23, 238, 242, 16, 17, 253,
-			240, 245, 4, 6, 243, 246, 24, 29, 250, 231, 252, 24, 10, 229, 237, 21, 15, 233, 236, 16, 28, 11, 244, 245, 7, 3, 240, 251, 27, 27,
-			243, 225, 253, 19, 7, 0, 19, 22, 238, 203, 235, 40, 41, 241, 220, 246, 13, 22, 5, 233, 239, 13, 18, 249, 236, 255, 16, 10, 249, 241,
-			246, 246, 244, 10, 40, 23, 229, 222, 5, 18, 0, 247, 0, 14, 4, 232, 239, 25, 31, 251, 238, 0, 13, 10, 244, 242, 25, 43, 254, 207,
-			226, 20, 37, 13, 250, 3, 27, 16, 220, 207, 255, 25, 15, 14, 23, 6, 233, 220, 236, 27, 44, 250, 206, 230, 18, 29, 22, 0, 224, 220,
-			247, 26, 35, 10, 241, 224, 219, 244, 36, 46, 12, 250, 246, 234, 238, 255, 253, 248, 25, 53, 1, 179, 199, 42, 68, 254, 220, 1, 20, 248,
-			231, 253, 14, 3, 1, 20, 19, 246, 221, 241, 37, 35, 221, 192, 251, 49, 35, 0, 242, 242, 242, 239, 249, 15, 30, 28, 8, 220, 195, 1,
-			69, 16, 190, 221, 65, 80, 243, 190, 242, 30, 255, 221, 9, 75, 46, 209, 183, 241, 18, 250, 243, 25, 45, 254, 192, 232, 64, 53, 234, 205,
-			241, 30, 20, 231, 232, 25, 40, 238, 188, 232, 53, 58, 7, 227, 211, 212, 4, 61, 44, 247, 237, 242, 223, 240, 39, 47, 253, 214, 225, 3,
-			28, 23, 6, 0, 242, 230, 255, 34, 27, 0, 245, 226, 203, 240, 65, 86, 6, 174, 182, 23, 78, 10, 190, 212, 20, 39, 23, 7, 243, 227,
-			246, 22, 17, 247, 252, 37, 31, 193, 177, 54, 117, 7, 203, 30, 47, 191, 164, 39, 126, 29, 169, 209, 38, 15, 223, 29, 106, 46, 184, 176,
-			5, 29, 232, 235, 55, 67, 228, 176, 0, 67, 10, 203, 245, 33, 249, 222, 10, 22, 231, 229, 27, 34, 236, 208, 239, 16, 8, 237, 235, 1,
-			16, 10, 255, 250, 5, 29, 28, 245, 215, 237, 23, 26, 0, 7, 37, 21, 221, 213, 15, 54, 23, 234, 241, 24, 24, 238, 214, 242, 28, 36,
-			11, 248, 241, 232, 226, 244, 14, 23, 14, 247, 228, 245, 12, 248, 213, 247, 66, 45, 184, 148, 8, 106, 41, 190, 222, 68, 44, 191, 198, 56,
-			86, 250, 194, 242, 32, 8, 229, 0, 50, 47, 242, 197, 236, 49, 45, 246, 231, 0, 6, 1, 5, 6, 9, 11, 239, 205, 244, 59, 31, 197,
-			213, 54, 54, 227, 224, 25, 15, 226, 242, 18, 13, 6, 4, 230, 220, 19, 41, 245, 241, 36, 14, 219, 249, 38, 3, 219, 2, 39, 255, 229,
-			20, 46, 248, 205, 249, 50, 27, 217, 218, 29, 42, 220, 183, 11, 73, 10, 207, 246, 46, 10, 176, 206, 71, 74, 237, 237, 46, 7, 175, 220,
-			81, 74, 220, 197, 12, 29, 244, 246, 22, 22, 247, 225, 241, 18, 35, 20, 234, 215, 245, 21, 25, 18, 4, 234, 245, 26, 4, 226, 9, 48,
-			247, 196, 253, 52, 25, 249, 251, 237, 232, 7, 32, 25, 238, 192, 211, 35, 79, 35, 220, 180, 208, 32, 73, 32, 236, 224, 225, 240, 12, 22,
-			27, 28, 252, 218, 235, 15, 11, 243, 249, 18, 24, 9, 248, 236, 240, 9, 24, 6, 238, 245, 19, 23, 240, 220, 3, 35, 18, 241, 227, 247,
-			21, 25, 2, 244, 222, 197, 248, 83, 78, 238, 184, 221, 8, 11, 10, 34, 40, 236, 190, 241, 45, 19, 240, 23, 48, 228, 177, 255, 70, 23,
-			205, 206, 9, 37, 11, 255, 11, 249, 214, 243, 48, 35, 230, 230, 6, 250, 239, 14, 38, 27, 255, 246, 6, 0, 228, 233, 21, 28, 243, 244,
-			40, 35, 229, 208, 244, 30, 40, 3, 214, 219, 15, 35, 251, 229, 12, 42, 13, 215, 209, 19, 39, 224, 205, 18, 46, 0, 227, 255, 20, 5,
-			252, 253, 245, 241, 248, 11, 36, 29, 244, 218, 239, 19, 24, 6, 254, 244, 232, 244, 12, 17, 5, 0, 250, 242, 6, 31, 4, 212, 224, 15,
-			12, 240, 4, 28, 253, 225, 252, 26, 0, 214, 232, 25, 25, 244, 241, 18, 25, 248, 225, 246, 28, 32, 244, 218, 3, 34, 242, 202, 1, 57,
-			19, 230, 241, 249, 238, 7, 28, 2, 245, 1, 247, 229, 0, 37, 21, 242, 238, 241, 242, 9, 28, 14, 243, 215, 220, 14, 59, 48, 250, 197,
-			189, 245, 53, 48, 2, 237, 233, 228, 246, 22, 33, 27, 1, 227, 229, 1, 14, 1, 250, 3, 12, 10, 4, 250, 241, 252, 16, 14, 246, 235,
-			2, 27, 8, 222, 231, 23, 35, 4, 233, 237, 6, 21, 10, 253, 245, 218, 217, 35, 90, 32, 198, 193, 246, 13, 3, 15, 38, 7, 203, 206,
-			18, 37, 247, 252, 47, 16, 185, 206, 54, 65, 240, 197, 240, 36, 27, 255, 6, 11, 233, 222, 19, 51, 3, 221, 250, 4, 238, 252, 30, 35,
-			9, 243, 253, 7, 239, 218, 252, 35, 8, 231, 10, 49, 9, 212, 223, 14, 45, 25, 227, 203, 243, 32, 12, 224, 244, 38, 35, 244, 211, 249,
-			49, 8, 201, 243, 56, 33, 228, 233, 18, 17, 251, 251, 253, 241, 236, 253, 30, 42, 6, 222, 224, 4, 27, 20, 9, 249, 223, 226, 12, 30,
-			6, 249, 4, 2, 244, 8, 28, 241, 204, 242, 28, 19, 2, 9, 6, 236, 232, 8, 33, 5, 216, 221, 14, 29, 253, 246, 23, 20, 222, 198,
-			0, 68, 47, 214, 206, 30, 32, 210, 232, 81, 74, 228, 202, 243, 249, 248, 24, 39, 17, 238, 207, 222, 27, 62, 28, 233, 219, 227, 239, 19,
-			47, 16, 227, 215, 239, 20, 41, 29, 0, 227, 215, 232, 13, 33, 17, 1, 6, 244, 220, 253, 50, 38, 232, 208, 240, 8, 5, 12, 29, 15,
-			237, 226, 255, 23, 17, 0, 250, 252, 254, 247, 246, 18, 49, 20, 211, 211, 22, 42, 251, 236, 2, 250, 230, 252, 34, 34, 0, 231, 235, 251,
-			3, 14, 25, 5, 219, 230, 31, 37, 243, 228, 15, 37, 254, 219, 248, 33, 14, 228, 241, 23, 7, 227, 246, 27, 5, 227, 255, 36, 0, 212,
-			254, 52, 25, 228, 217, 239, 6, 15, 17, 23, 17, 237, 216, 4, 48, 8, 211, 242, 27, 249, 213, 1, 40, 1, 230, 10, 28, 240, 218, 252,
-			4, 234, 245, 18, 10, 1, 17, 6, 217, 220, 28, 48, 249, 211, 224, 0, 25, 26, 5, 1, 21, 13, 229, 229, 30, 50, 245, 196, 226, 16,
-			23, 22, 34, 25, 245, 217, 221, 248, 26, 45, 18, 225, 212, 248, 20, 17, 18, 23, 1, 224, 218, 246, 16, 20, 9, 252, 243, 247, 5, 9,
-			1, 7, 16, 255, 220, 216, 5, 48, 37, 247, 222, 236, 9, 23, 11, 247, 242, 0, 10, 0, 244, 252, 7, 8, 0, 248, 252, 3, 5, 255,
-			250, 2, 9, 246, 231, 249, 16, 9, 250, 0, 12, 5, 243, 237, 251, 13, 10, 246, 246, 11, 9, 237, 240, 22, 42, 23, 249, 228, 225, 248,
-			25, 31, 8, 251, 252, 250, 254, 16, 28, 10, 238, 231, 247, 5, 14, 10, 254, 249, 253, 248, 246, 6, 20, 1, 235, 243, 3, 253, 237, 244,
-			13, 27, 11, 244, 232, 229, 246, 20, 33, 16, 248, 242, 247, 243, 239, 255, 26, 32, 12, 245, 231, 241, 11, 22, 11, 0, 250, 237, 242, 13,
-			24, 8, 255, 7, 4, 245, 247, 9, 14, 3, 251, 246, 240, 246, 12, 25, 18, 2, 249, 244, 247, 255, 3, 6, 12, 12, 254, 236, 242, 4,
-			11, 9, 12, 8, 249, 236, 240, 0, 15, 16, 6, 2, 4, 255, 242, 243, 6, 18, 12, 2, 254, 252, 251, 255, 2, 2, 0, 0, 2, 4,
-			0, 253, 1, 8, 1, 246, 248, 5, 9, 0, 248, 248, 249, 246, 250, 6, 10, 253, 238, 240, 251, 1, 4, 3, 255, 252, 252, 253, 0, 2,
-			0, 253, 254, 2, 8, 12, 5, 249, 248, 3, 11, 11, 13, 13, 252, 235, 244, 9, 18, 13, 7, 3, 254, 248, 246, 252, 3, 6, 3, 255,
-			254, 253, 252, 253, 2, 6, 2, 250, 244, 242, 244, 251, 0, 253, 248, 254, 5, 3, 255, 0, 0, 249, 243, 245, 253, 6, 10, 6, 0, 254,
-			254, 3, 12, 11, 1, 248, 244, 247, 3, 15, 16, 11, 8, 8, 7, 5, 6, 4, 251, 244, 249, 1, 5, 6, 11, 13, 6, 0, 0, 254,
-			250, 249, 248, 249, 251, 0, 4, 7, 10, 10, 122, 6, 55, 0, 253, 254, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 255, 255, 254,
-			255, 0, 2, 1, 0, 254, 253, 0, 6, 7, 5, 2, 255, 250, 255, 9, 11, 2, 253, 0, 3, 2, 255, 0, 4, 3, 3, 1, 255, 0,
-			4, 1, 254, 3, 7, 0, 248, 248, 254, 4, 9, 5, 253, 248, 250, 255, 8, 9, 250, 243, 253, 4, 2, 255, 254, 255, 253, 252, 255, 5,
-			8, 5, 0, 251, 248, 253, 10, 15, 6, 247, 237, 248, 5, 6, 4, 3, 252, 245, 249, 0, 5, 12, 11, 254, 248, 0, 6, 1, 251, 250,
-			255, 9, 14, 252, 236, 251, 9, 13, 12, 248, 235, 1, 25, 11, 251, 253, 251, 250, 5, 10, 6, 8, 255, 231, 233, 7, 28, 26, 2, 234,
-			243, 23, 37, 20, 4, 246, 233, 240, 0, 11, 17, 9, 235, 228, 247, 252, 8, 25, 12, 244, 238, 244, 249, 13, 30, 10, 236, 230, 238, 248,
-			11, 21, 5, 245, 245, 249, 250, 254, 7, 24, 27, 251, 221, 238, 15, 18, 11, 13, 0, 239, 247, 7, 8, 7, 2, 250, 4, 10, 246, 240,
-			9, 28, 16, 250, 236, 235, 252, 20, 26, 4, 239, 241, 254, 4, 10, 12, 253, 232, 241, 13, 17, 0, 252, 245, 238, 13, 31, 0, 236, 238,
-			245, 4, 20, 10, 7, 20, 253, 222, 242, 16, 15, 8, 6, 248, 244, 255, 254, 253, 3, 8, 14, 14, 249, 230, 245, 2, 254, 5, 23, 23,
-			3, 232, 219, 241, 21, 34, 24, 1, 223, 212, 253, 41, 38, 11, 242, 220, 230, 16, 37, 15, 245, 227, 228, 8, 42, 30, 252, 226, 218, 249,
-			40, 30, 252, 4, 3, 222, 230, 27, 28, 253, 1, 1, 223, 224, 14, 34, 23, 7, 239, 219, 228, 3, 39, 47, 252, 192, 213, 19, 48, 42,
-			3, 195, 202, 45, 73, 252, 213, 244, 6, 253, 251, 13, 29, 13, 230, 225, 2, 29, 26, 249, 211, 232, 44, 58, 250, 199, 205, 1, 61, 50,
-			237, 209, 243, 2, 255, 28, 53, 0, 201, 223, 1, 23, 39, 25, 3, 12, 19, 253, 0, 43, 59, 26, 235, 219, 245, 2, 239, 227, 246, 251,
-			247, 9, 7, 229, 220, 247, 10, 21, 21, 246, 239, 24, 8, 184, 204, 51, 53, 249, 218, 188, 194, 27, 90, 29, 214, 235, 16, 5, 0, 12,
-			7, 27, 50, 3, 195, 222, 33, 46, 32, 6, 221, 205, 244, 68, 82, 250, 192, 220, 3, 31, 48, 11, 211, 227, 1, 240, 245, 25, 12, 235,
-			246, 250, 232, 252, 13, 253, 24, 60, 215, 132, 252, 115, 83, 234, 156, 175, 8, 67, 41, 247, 245, 11, 1, 255, 4, 235, 234, 20, 48, 40,
-			5, 222, 216, 245, 12, 41, 73, 27, 214, 209, 212, 236, 60, 99, 28, 197, 184, 226, 40, 62, 0, 223, 248, 254, 234, 242, 16, 7, 235, 255,
-			12, 239, 250, 16, 244, 231, 1, 252, 245, 43, 55, 249, 219, 217, 230, 28, 76, 36, 212, 203, 251, 21, 2, 242, 17, 40, 8, 219, 208, 240,
-			29, 55, 39, 241, 200, 218, 10, 49, 57, 0, 189, 205, 13, 59, 49, 234, 173, 228, 62, 51, 10, 5, 233, 203, 234, 21, 29, 39, 25, 220,
-			199, 252, 27, 6, 255, 250, 242, 10, 16, 237, 244, 45, 43, 251, 235, 224, 230, 18, 41, 23, 250, 228, 229, 11, 42, 27, 2, 222, 191, 223,
-			31, 54, 34, 1, 215, 221, 23, 29, 0, 11, 15, 232, 207, 231, 11, 45, 50, 1, 210, 225, 18, 27, 250, 233, 251, 9, 0, 235, 248, 52,
-			50, 224, 198, 247, 31, 34, 255, 209, 217, 20, 44, 33, 26, 248, 204, 226, 30, 40, 1, 218, 209, 8, 66, 30, 224, 237, 17, 2, 237, 243,
-			8, 26, 252, 209, 232, 35, 57, 24, 238, 215, 220, 252, 23, 12, 5, 25, 0, 209, 229, 34, 51, 33, 255, 199, 196, 252, 27, 33, 25, 247,
-			218, 239, 19, 32, 27, 251, 217, 227, 255, 22, 42, 26, 234, 240, 26, 3, 232, 0, 11, 11, 8, 229, 199, 249, 53, 38, 11, 253, 219, 208,
-			251, 26, 29, 49, 22, 192, 184, 26, 76, 26, 226, 194, 220, 40, 67, 22, 228, 208, 221, 17, 61, 41, 252, 217, 210, 246, 33, 33, 0, 243,
-			9, 13, 223, 202, 0, 67, 61, 247, 205, 221, 244, 24, 56, 23, 233, 244, 4, 235, 248, 20, 245, 239, 11, 255, 239, 11, 11, 228, 237, 4,
-			240, 238, 29, 54, 2, 190, 193, 2, 69, 84, 11, 199, 212, 230, 251, 48, 64, 17, 241, 237, 220, 240, 40, 47, 22, 248, 224, 244, 15, 11,
-			0, 255, 246, 5, 55, 42, 217, 170, 199, 25, 86, 52, 217, 188, 0, 40, 0, 245, 18, 255, 240, 0, 234, 225, 7, 30, 20, 5, 235, 203,
-			228, 37, 48, 2, 229, 223, 241, 35, 53, 21, 250, 233, 229, 255, 32, 32, 5, 231, 218, 1, 39, 24, 22, 24, 237, 208, 241, 19, 13, 16,
-			13, 242, 243, 17, 2, 226, 253, 21, 242, 214, 235, 1, 14, 33, 28, 249, 227, 232, 254, 23, 19, 241, 226, 239, 245, 7, 36, 32, 252, 213,
-			203, 6, 87, 43, 199, 216, 12, 16, 28, 47, 25, 1, 247, 201, 197, 12, 54, 50, 17, 208, 192, 27, 76, 255, 220, 252, 239, 239, 47, 35,
-			198, 212, 25, 34, 34, 14, 202, 186, 5, 32, 248, 242, 3, 20, 38, 19, 224, 227, 21, 28, 1, 222, 206, 5, 57, 20, 240, 3, 255, 227,
-			3, 36, 33, 30, 233, 165, 208, 70, 121, 70, 235, 153, 163, 254, 58, 69, 40, 220, 161, 217, 49, 43, 14, 33, 4, 170, 175, 24, 65, 18,
-			236, 213, 225, 45, 57, 214, 188, 26, 57, 236, 204, 232, 0, 40, 80, 39, 221, 212, 239, 2, 26, 34, 2, 231, 238, 242, 252, 27, 51, 48,
-			3, 201, 198, 251, 35, 36, 12, 227, 221, 16, 35, 6, 3, 6, 225, 210, 3, 31, 21, 5, 233, 222, 255, 45, 64, 26, 204, 155, 196, 21,
-			56, 50, 24, 220, 179, 234, 69, 87, 22, 194, 161, 222, 61, 78, 15, 234, 242, 240, 236, 6, 32, 24, 253, 219, 203, 245, 60, 81, 42, 8,
-			242, 207, 212, 4, 23, 25, 25, 237, 191, 237, 60, 45, 234, 216, 248, 13, 253, 230, 237, 13, 31, 16, 251, 249, 5, 7, 241, 216, 232, 13,
-			12, 5, 20, 7, 240, 5, 28, 253, 230, 245, 243, 245, 9, 30, 41, 12, 228, 225, 248, 30, 57, 14, 191, 191, 14, 56, 47, 33, 0, 217,
-			230, 32, 57, 29, 252, 237, 240, 5, 31, 36, 33, 18, 232, 196, 216, 5, 14, 248, 229, 233, 247, 242, 232, 234, 241, 254, 0, 234, 217, 224,
-			232, 247, 32, 45, 3, 229, 226, 243, 22, 44, 24, 245, 227, 233, 21, 70, 55, 0, 228, 238, 14, 48, 42, 0, 231, 245, 9, 18, 22, 15,
-			0, 250, 252, 241, 228, 249, 23, 23, 2, 234, 222, 239, 11, 22, 3, 238, 238, 251, 254, 245, 246, 3, 10, 0, 246, 2, 23, 13, 239, 235,
-			3, 18, 11, 2, 4, 2, 249, 247, 10, 28, 17, 250, 235, 241, 4, 15, 8, 255, 253, 0, 7, 7, 248, 243, 4, 14, 9, 6, 4, 251,
-			249, 3, 13, 14, 8, 252, 240, 242, 3, 14, 5, 253, 1, 5, 6, 12, 7, 239, 228, 245, 6, 9, 3, 248, 239, 250, 7, 0, 245, 251,
-			0, 250, 247, 248, 247, 253, 11, 19, 5, 235, 231, 0, 22, 20, 5, 241, 230, 255, 28, 24, 10, 1, 253, 255, 252, 249, 0, 10, 16, 16,
-			7, 251, 255, 8, 5, 0, 1, 255, 254, 3, 6, 253, 242, 242, 253, 10, 19, 8, 239, 223, 230, 247, 6, 23, 22, 4, 249, 241, 240, 0,
-			22, 20, 252, 235, 241, 3, 21, 24, 11, 247, 231, 235, 11, 35, 20, 250, 237, 240, 2, 21, 27, 21, 13, 255, 231, 222, 246, 25, 34, 11,
-			236, 222, 236, 11, 33, 19, 239, 217, 232, 13, 36, 20, 240, 224, 243, 17, 27, 15, 3, 249, 243, 251, 2, 0, 1, 9, 14, 10, 253, 238,
-			239, 4, 25, 24, 7, 251, 252, 252, 249, 251, 8, 24, 24, 2, 229, 221, 242, 14, 26, 9, 241, 237, 252, 7, 8, 255, 248, 254, 5, 9,
-			12, 6, 246, 228, 230, 3, 31, 26, 255, 231, 227, 244, 10, 21, 15, 3, 249, 242, 243, 251, 6, 12, 1, 241, 242, 253, 0, 255, 249, 244,
-			253, 5, 6, 0, 247, 246, 255, 1, 252, 254, 7, 9, 3, 253, 249, 250, 0, 6, 6, 3, 2, 1, 255, 2, 11, 15, 11, 9, 6, 0,
-			0, 5, 8, 10, 7, 0, 254, 0, 4, 7, 5, 0, 252, 251, 255, 3, 2, 0, 255, 0, 255, 254, 253, 253, 254, 255, 0, 0, 0, 0,
-			3, 1, 252, 250, 255, 4, 7, 6, 1, 254, 255, 4, 10, 10, 6, 1, 0, 3, 8, 12, 12, 12, 6, 255, 0, 3, 3, 4, 6, 3,
-			253, 248, 252, 2, 7, 8, 2, 251, 253, 0, 251, 244, 251, 6, 6, 0, 248, 246, 252, 1, 254, 246, 242, 248, 8, 13, 254, 244, 243, 246,
-			0, 12, 19, 15, 253, 231, 227, 246, 17, 32, 17, 240, 223, 238, 3, 12, 11, 6, 0, 251, 251, 3, 10, 0, 241, 239, 255, 21, 23, 252,
-			226, 224, 247, 20, 29, 14, 254, 247, 250, 254, 253, 2, 18, 27, 14, 246, 234, 247, 7, 15, 11, 4, 0, 0, 255, 247, 245, 0, 14, 22,
-			21, 0, 229, 231, 8, 34, 25, 246, 218, 229, 7, 32, 22, 246, 223, 230, 2, 29, 31, 3, 227, 223, 0, 0, 60, 0, 3, 0, 5, 0,
-			176, 0, 248, 1, 176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 60, 2, 16, 5, 3, 1, 0, 0, 0, 0, 210, 75, 120, 120, 120, 120,
-			120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 176, 0, 248, 1, 176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 0, 11, 35, 12, 8, 3, 1, 1, 1, 0, 210, 75,
-			120, 120, 120, 120, 120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 248, 1, 176, 4, 192, 8, 48, 12, 210, 15, 96, 27, 0, 11, 35, 12, 8, 3, 1, 1,
-			1, 0, 210, 75, 120, 120, 120, 120, 120, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 52, 3, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 4, 7,
-			13, 21, 16, 235, 225, 4, 24, 254, 238, 0, 14, 0, 243, 2, 13, 254, 247, 11, 17, 255, 251, 7, 9, 5, 2, 4, 0, 251, 0, 5,
-			1, 253, 254, 0, 0, 249, 254, 3, 1, 255, 253, 253, 252, 247, 242, 7, 16, 255, 2, 26, 30, 218, 217, 27, 25, 228, 218, 26, 92, 34,
-			201, 216, 21, 41, 254, 232, 31, 59, 222, 164, 0, 79, 91, 225, 131, 243, 104, 75, 234, 182, 9, 69, 38, 233, 212, 247, 18, 20, 249, 218,
-			254, 25, 9, 234, 237, 3, 13, 4, 239, 249, 9, 12, 243, 3, 11, 10, 17, 13, 15, 254, 234, 229, 249, 25, 19, 230, 226, 16, 13, 245,
-			249, 17, 2, 4, 252, 248, 255, 21, 33, 226, 222, 19, 30, 22, 26, 252, 241, 247, 35, 24, 221, 241, 21, 17, 7, 0, 27, 32, 51, 47,
-			19, 239, 18, 28, 6, 225, 254, 5, 244, 230, 9, 7, 7, 2, 5, 6, 12, 246, 245, 12, 10, 235, 214, 14, 21, 252, 7, 24, 254, 15,
-			45, 16, 208, 227, 7, 0, 219, 217, 22, 51, 4, 248, 30, 14, 2, 19, 15, 242, 219, 249, 33, 238, 230, 16, 17, 245, 245, 34, 24, 224,
-			240, 51, 27, 223, 237, 17, 15, 251, 8, 33, 24, 4, 25, 19, 253, 4, 9, 254, 251, 245, 12, 0, 237, 2, 21, 255, 8, 31, 250, 248,
-			16, 6, 245, 248, 248, 12, 15, 249, 250, 9, 5, 3, 2, 4, 255, 252, 251, 252, 1, 251, 245, 1, 20, 0, 251, 10, 7, 246, 12, 18,
-			245, 245, 9, 0, 245, 255, 253, 238, 240, 5, 7, 251, 239, 0, 255, 254, 248, 252, 9, 245, 238, 14, 6, 240, 0, 16, 9, 1, 5, 14,
-			1, 252, 20, 12, 240, 5, 26, 2, 247, 13, 19, 251, 0, 20, 255, 0, 15, 255, 252, 3, 3, 7, 252, 248, 252, 8, 254, 6, 4, 253,
-			9, 11, 250, 241, 0, 6, 250, 2, 2, 248, 6, 13, 252, 242, 6, 5, 254, 251, 248, 14, 13, 241, 253, 6, 251, 241, 250, 0, 248, 242,
-			3, 254, 242, 0, 251, 244, 237, 240, 249, 254, 240, 237, 242, 237, 239, 245, 238, 236, 1, 224, 244, 230, 234, 242, 241, 238, 240, 249, 227, 252,
-			4, 211, 17, 252, 240, 0, 8, 250, 249, 5, 3, 250, 4, 9, 4, 8, 23, 11, 11, 14, 18, 14, 255, 19, 17, 6, 10, 25, 17, 10,
-			21, 12, 1, 14, 14, 1, 13, 17, 4, 5, 13, 10, 241, 19, 0, 245, 16, 0, 0, 1, 255, 8, 247, 6, 5, 7, 239, 16, 251, 244,
-			255, 0, 254, 247, 0, 5, 249, 2, 4, 246, 2, 5, 1, 252, 1, 253, 9, 1, 3, 253, 16, 4, 14, 9, 2, 11, 14, 4, 5, 18,
-			14, 6, 20, 16, 3, 19, 24, 8, 11, 20, 14, 10, 10, 15, 10, 5, 18, 18, 254, 17, 27, 0, 13, 22, 1, 9, 20, 9, 3, 11,
-			27, 6, 7, 30, 255, 7, 20, 247, 0, 5, 6, 7, 12, 246, 9, 244, 245, 8, 232, 246, 251, 247, 226, 250, 235, 236, 250, 245, 236, 237,
-			6, 234, 231, 250, 235, 243, 5, 250, 229, 14, 234, 237, 3, 217, 237, 12, 221, 252, 25, 233, 244, 29, 184, 13, 1, 201, 33, 226, 0, 14,
-			235, 253, 245, 246, 255, 254, 238, 237, 0, 238, 239, 247, 255, 241, 20, 18, 244, 21, 25, 242, 20, 7, 12, 23, 28, 7, 8, 31, 22, 11,
-			24, 5, 18, 15, 22, 2, 245, 10, 4, 239, 14, 253, 236, 20, 0, 249, 254, 19, 243, 4, 8, 233, 5, 0, 236, 6, 227, 4, 4, 243,
-			244, 0, 233, 248, 253, 228, 232, 236, 250, 230, 237, 252, 235, 238, 254, 237, 227, 0, 244, 228, 5, 234, 237, 247, 246, 230, 249, 238, 250, 254,
-			234, 0, 255, 248, 8, 0, 239, 14, 17, 255, 22, 9, 9, 32, 18, 14, 28, 28, 16, 33, 18, 7, 23, 29, 14, 12, 24, 19, 21, 24,
-			10, 14, 16, 24, 14, 7, 21, 21, 14, 18, 17, 9, 18, 18, 17, 3, 15, 11, 0, 8, 0, 0, 7, 1, 0, 254, 251, 6, 0, 246,
-			8, 247, 254, 5, 247, 2, 247, 2, 2, 250, 4, 1, 240, 244, 253, 254, 240, 10, 250, 235, 249, 239, 244, 220, 252, 227, 233, 244, 246, 221,
-			228, 2, 216, 222, 248, 225, 210, 11, 241, 213, 4, 244, 193, 218, 234, 177, 215, 248, 193, 205, 225, 226, 214, 206, 1, 205, 211, 31, 224, 211,
-			32, 13, 232, 49, 47, 14, 52, 83, 38, 38, 78, 66, 32, 60, 52, 11, 40, 46, 10, 14, 29, 21, 19, 14, 24, 0, 3, 0, 5, 0,
-			116, 0, 232, 0, 240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 25, 3, 12, 8, 4, 4, 4, 4, 0, 0, 200, 212, 187, 255, 255, 175,
-			200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 1, 0, 116, 0, 232, 0, 240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 0, 3, 12, 8, 4, 4, 4, 4, 0, 0, 200, 212,
-			187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 0, 240, 5, 176, 9, 152, 13, 60, 15, 124, 21, 0, 3, 12, 8, 4, 4, 4, 4,
-			0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 219, 11, 36, 0, 7, 17, 19, 225, 216, 254, 31, 13, 216, 207, 17, 33, 10, 243, 229, 3,
-			15, 238, 228, 235, 33, 49, 231, 196, 4, 51, 235, 175, 11, 48, 5, 236, 241, 241, 15, 13, 230, 226, 14, 25, 243, 241, 6, 250, 8, 247,
-			239, 250, 26, 19, 216, 234, 44, 11, 226, 0, 19, 245, 247, 1, 255, 14, 11, 239, 1, 4, 231, 0, 33, 21, 242, 237, 5, 229, 244, 45,
-			15, 223, 0, 13, 226, 250, 35, 5, 2, 10, 211, 255, 49, 252, 251, 6, 28, 30, 252, 213, 220, 8, 20, 14, 11, 254, 0, 5, 2, 251,
-			242, 248, 37, 12, 245, 8, 0, 229, 252, 1, 234, 10, 16, 10, 13, 228, 222, 22, 38, 252, 210, 243, 36, 252, 227, 22, 38, 233, 246, 2,
-			237, 8, 31, 244, 238, 17, 8, 229, 213, 8, 67, 9, 187, 227, 35, 34, 215, 224, 42, 44, 247, 206, 227, 24, 54, 229, 215, 14, 31, 11,
-			243, 222, 0, 45, 9, 221, 236, 8, 25, 24, 241, 226, 10, 31, 229, 230, 18, 28, 11, 241, 213, 242, 39, 5, 239, 10, 251, 236, 7, 22,
-			255, 0, 4, 251, 0, 9, 251, 253, 238, 226, 19, 42, 14, 238, 0, 238, 231, 245, 23, 50, 11, 233, 252, 12, 230, 234, 29, 49, 3, 209,
-			226, 26, 48, 249, 228, 34, 37, 211, 200, 18, 53, 34, 240, 229, 0, 37, 254, 206, 250, 78, 44, 196, 221, 36, 22, 243, 230, 252, 32, 32,
-			244, 239, 249, 14, 252, 234, 13, 39, 238, 231, 6, 250, 253, 252, 232, 11, 51, 0, 202, 219, 35, 30, 210, 230, 42, 9, 238, 251, 255, 22,
-			10, 214, 224, 17, 32, 15, 235, 252, 24, 251, 213, 28, 33, 238, 13, 13, 238, 1, 20, 246, 249, 2, 14, 19, 254, 233, 248, 28, 9, 5,
-			0, 230, 230, 6, 21, 19, 27, 242, 229, 245, 2, 250, 39, 36, 228, 222, 25, 1, 218, 15, 37, 235, 17, 20, 215, 238, 15, 253, 253, 14,
-			37, 5, 220, 220, 21, 21, 1, 234, 253, 37, 3, 191, 10, 57, 240, 236, 21, 230, 244, 33, 235, 228, 18, 24, 250, 242, 223, 3, 44, 5,
-			238, 246, 4, 13, 231, 237, 44, 65, 223, 196, 6, 51, 19, 220, 227, 52, 39, 237, 204, 255, 33, 247, 223, 14, 22, 251, 241, 238, 238, 13,
-			30, 0, 240, 255, 6, 247, 243, 12, 1, 7, 25, 246, 250, 15, 251, 230, 255, 30, 25, 237, 225, 11, 19, 240, 254, 17, 21, 1, 215, 219,
-			71, 59, 224, 212, 6, 19, 8, 244, 7, 25, 2, 227, 251, 254, 8, 31, 14, 182, 241, 44, 12, 1, 252, 240, 1, 18, 248, 216, 5, 41,
-			239, 243, 37, 234, 209, 16, 53, 218, 230, 52, 8, 193, 247, 50, 26, 238, 239, 0, 28, 38, 219, 185, 31, 81, 249, 201, 19, 40, 230, 204,
-			251, 52, 54, 1, 201, 208, 27, 37, 241, 251, 35, 5, 227, 218, 235, 62, 45, 214, 214, 25, 28, 220, 212, 46, 61, 220, 206, 13, 27, 12,
-			237, 0, 15, 27, 253, 231, 15, 17, 250, 233, 3, 2, 16, 15, 0, 234, 7, 11, 235, 7, 14, 248, 236, 254, 30, 22, 235, 236, 251, 13,
-			13, 247, 230, 8, 12, 1, 14, 10, 6, 245, 223, 26, 51, 223, 229, 36, 249, 239, 26, 25, 248, 0, 242, 238, 9, 35, 0, 235, 26, 7,
-			223, 253, 33, 251, 240, 4, 2, 29, 28, 227, 228, 13, 252, 242, 255, 32, 51, 235, 200, 254, 26, 244, 255, 22, 8, 251, 237, 5, 18, 253,
-			244, 21, 13, 4, 249, 240, 0, 7, 19, 9, 234, 247, 8, 244, 223, 19, 55, 24, 203, 212, 17, 12, 244, 22, 24, 0, 254, 231, 233, 14,
-			36, 6, 231, 252, 29, 252, 233, 0, 235, 0, 44, 234, 230, 35, 8, 212, 233, 21, 24, 246, 210, 10, 45, 3, 230, 216, 26, 40, 235, 235,
-			32, 26, 242, 233, 253, 15, 27, 5, 3, 228, 245, 20, 254, 240, 22, 11, 7, 30, 242, 208, 11, 18, 239, 18, 49, 2, 209, 240, 254, 8,
-			15, 28, 5, 248, 231, 235, 6, 25, 6, 245, 237, 230, 18, 18, 228, 2, 25, 244, 221, 1, 22, 28, 252, 218, 252, 5, 252, 23, 232, 224,
-			51, 24, 224, 7, 8, 231, 10, 17, 10, 31, 251, 192, 230, 48, 26, 236, 1, 22, 244, 226, 247, 246, 39, 53, 215, 197, 31, 41, 245, 234,
-			245, 27, 34, 251, 219, 249, 31, 243, 228, 38, 46, 227, 231, 242, 241, 31, 57, 250, 196, 245, 20, 26, 0, 1, 15, 244, 228, 220, 13, 25,
-			15, 9, 238, 243, 6, 246, 234, 10, 15, 5, 249, 250, 253, 0, 5, 243, 236, 14, 48, 240, 222, 5, 4, 16, 12, 238, 0, 30, 239, 228,
-			15, 20, 13, 8, 231, 218, 27, 56, 252, 217, 238, 16, 36, 247, 220, 18, 35, 237, 210, 235, 48, 55, 251, 210, 249, 4, 229, 228, 45, 57,
-			7, 245, 223, 226, 229, 247, 27, 67, 10, 225, 1, 222, 235, 27, 29, 4, 255, 247, 238, 237, 16, 43, 0, 251, 250, 255, 234, 251, 15, 35,
-			18, 245, 231, 248, 15, 255, 248, 242, 35, 29, 252, 215, 234, 12, 19, 250, 220, 5, 20, 244, 244, 17, 19, 20, 192, 207, 51, 21, 223, 9,
-			23, 246, 250, 234, 232, 13, 29, 21, 239, 227, 13, 18, 228, 252, 33, 3, 250, 230, 226, 16, 39, 1, 248, 250, 4, 0, 232, 255, 47, 232,
-			213, 40, 52, 221, 206, 13, 30, 6, 231, 238, 23, 35, 251, 206, 9, 29, 244, 236, 11, 33, 17, 221, 175, 3, 80, 11, 227, 11, 0, 223,
-			252, 2, 252, 28, 34, 247, 203, 232, 42, 52, 232, 210, 38, 56, 227, 209, 29, 37, 211, 247, 72, 11, 205, 241, 2, 1, 26, 38, 13, 248,
-			204, 229, 54, 36, 218, 10, 57, 204, 194, 15, 35, 7, 24, 242, 214, 9, 0, 232, 14, 25, 17, 16, 232, 194, 245, 22, 17, 4, 11, 7,
-			224, 254, 249, 235, 21, 31, 233, 245, 25, 233, 238, 40, 2, 229, 12, 42, 226, 212, 19, 46, 243, 3, 22, 208, 246, 53, 246, 228, 22, 35,
-			244, 208, 23, 41, 239, 228, 0, 15, 0, 14, 255, 229, 8, 12, 249, 232, 11, 41, 234, 187, 14, 69, 240, 225, 10, 3, 221, 243, 33, 24,
-			250, 2, 250, 223, 9, 27, 12, 28, 237, 201, 254, 40, 3, 11, 253, 218, 16, 21, 240, 5, 244, 247, 8, 246, 10, 42, 9, 212, 220, 24,
-			33, 9, 225, 6, 14, 252, 245, 247, 22, 30, 239, 234, 18, 243, 2, 36, 216, 249, 70, 241, 206, 37, 252, 237, 56, 2, 207, 16, 21, 249,
-			0, 233, 15, 13, 208, 2, 77, 14, 210, 228, 253, 4, 1, 23, 20, 5, 219, 205, 2, 43, 24, 255, 217, 252, 15, 4, 11, 247, 227, 0,
-			253, 255, 10, 12, 253, 0, 32, 250, 222, 240, 1, 21, 21, 241, 255, 36, 254, 194, 238, 29, 26, 10, 19, 15, 233, 209, 4, 28, 15, 11,
-			251, 247, 252, 250, 8, 23, 0, 4, 240, 222, 16, 24, 9, 26, 2, 222, 234, 9, 22, 5, 248, 32, 21, 224, 241, 1, 14, 9, 249, 251,
-			24, 12, 222, 250, 16, 29, 15, 207, 239, 69, 8, 199, 7, 254, 247, 42, 243, 181, 40, 84, 209, 178, 18, 68, 16, 223, 223, 35, 42, 227,
-			200, 18, 81, 241, 210, 42, 27, 210, 235, 247, 19, 53, 6, 188, 238, 66, 23, 192, 216, 28, 65, 234, 229, 33, 26, 240, 247, 245, 242, 32,
-			43, 237, 237, 23, 15, 253, 17, 0, 223, 0, 34, 16, 21, 25, 247, 216, 221, 11, 61, 30, 242, 233, 238, 6, 8, 20, 22, 255, 221, 227,
-			16, 26, 11, 16, 244, 216, 245, 3, 3, 34, 38, 240, 191, 247, 21, 254, 21, 48, 227, 170, 0, 71, 246, 228, 14, 238, 219, 21, 20, 253,
-			33, 251, 205, 1, 19, 12, 7, 252, 2, 234, 225, 14, 21, 13, 26, 223, 213, 19, 3, 13, 53, 234, 207, 14, 254, 243, 41, 20, 222, 35,
-			2, 196, 232, 58, 67, 239, 213, 34, 34, 191, 215, 45, 33, 23, 36, 223, 199, 36, 13, 212, 4, 59, 14, 196, 231, 12, 207, 9, 85, 241,
-			187, 0, 247, 2, 45, 242, 226, 43, 0, 189, 251, 22, 5, 13, 0, 250, 15, 237, 214, 7, 14, 31, 19, 195, 225, 63, 13, 191, 255, 18,
-			11, 252, 209, 5, 63, 242, 190, 49, 27, 231, 238, 208, 10, 75, 0, 205, 9, 29, 32, 219, 174, 48, 81, 238, 203, 29, 42, 249, 209, 225,
-			13, 31, 10, 11, 17, 5, 217, 209, 6, 29, 31, 0, 242, 10, 253, 234, 243, 23, 44, 245, 220, 14, 9, 239, 34, 27, 229, 238, 4, 17,
-			11, 253, 3, 250, 219, 252, 55, 32, 211, 242, 59, 13, 201, 224, 46, 44, 222, 242, 34, 28, 213, 223, 54, 255, 195, 19, 63, 0, 224, 0,
-			20, 244, 18, 8, 239, 6, 3, 231, 12, 41, 16, 212, 254, 44, 239, 241, 250, 233, 38, 51, 224, 209, 25, 45, 233, 214, 234, 19, 49, 236,
-			215, 37, 16, 219, 225, 2, 48, 43, 252, 221, 217, 0, 17, 250, 250, 43, 26, 205, 195, 26, 46, 245, 229, 73, 66, 159, 165, 68, 48, 233,
-			251, 231, 36, 77, 191, 151, 53, 92, 238, 221, 32, 60, 252, 203, 218, 6, 76, 94, 3, 186, 9, 27, 228, 240, 52, 62, 20, 181, 215, 72,
-			25, 240, 13, 21, 12, 229, 203, 13, 90, 33, 229, 210, 246, 19, 246, 232, 38, 81, 5, 205, 196, 242, 35, 2, 6, 33, 248, 212, 216, 245,
-			48, 69, 6, 194, 220, 33, 34, 26, 254, 239, 6, 43, 241, 192, 37, 72, 237, 225, 41, 12, 226, 244, 236, 3, 34, 1, 222, 15, 62, 229,
-			166, 5, 86, 250, 177, 18, 52, 234, 225, 245, 13, 30, 227, 234, 40, 11, 192, 231, 18, 33, 251, 225, 44, 31, 175, 205, 28, 232, 0, 92,
-			17, 190, 207, 25, 6, 225, 9, 29, 249, 231, 215, 252, 54, 0, 196, 236, 12, 245, 244, 24, 18, 233, 205, 237, 43, 26, 229, 211, 240, 31,
-			3, 252, 5, 239, 249, 240, 208, 54, 61, 196, 226, 36, 245, 204, 14, 5, 0, 14, 233, 252, 8, 251, 249, 252, 216, 19, 51, 14, 229, 197,
-			234, 56, 42, 250, 251, 5, 216, 236, 28, 255, 255, 42, 27, 200, 195, 49, 61, 211, 220, 35, 13, 231, 249, 50, 35, 204, 217, 29, 28, 248,
-			234, 13, 28, 251, 213, 9, 68, 236, 208, 13, 9, 10, 22, 250, 226, 236, 58, 23, 211, 250, 34, 195, 213, 86, 52, 219, 205, 0, 24, 26,
-			248, 233, 249, 8, 22, 237, 6, 37, 250, 231, 223, 2, 77, 30, 181, 210, 43, 19, 254, 253, 6, 27, 246, 167, 2, 95, 12, 177, 5, 50,
-			0, 225, 208, 238, 35, 45, 9, 208, 220, 47, 251, 178, 12, 69, 23, 240, 196, 251, 78, 254, 163, 249, 73, 11, 202, 228, 38, 38, 233, 241,
-			4, 11, 8, 242, 220, 19, 46, 250, 238, 250, 9, 250, 222, 240, 50, 61, 242, 199, 253, 33, 243, 233, 13, 60, 15, 217, 211, 25, 72, 7,
-			189, 3, 63, 251, 210, 17, 29, 241, 253, 36, 249, 234, 21, 248, 202, 35, 114, 34, 177, 208, 6, 15, 25, 41, 18, 251, 5, 221, 211, 31,
-			21, 231, 32, 42, 214, 212, 3, 22, 61, 238, 205, 47, 16, 157, 234, 89, 47, 243, 246, 240, 241, 3, 246, 235, 49, 58, 230, 184, 251, 13,
-			238, 26, 16, 192, 5, 75, 251, 165, 3, 61, 20, 234, 2, 13, 3, 230, 3, 40, 5, 221, 24, 24, 191, 245, 61, 30, 246, 207, 2, 12,
-			10, 13, 4, 243, 254, 239, 219, 43, 21, 238, 38, 248, 183, 29, 56, 204, 14, 37, 215, 242, 40, 234, 215, 47, 35, 218, 224, 1, 251, 253,
-			31, 15, 237, 28, 2, 178, 36, 60, 201, 252, 59, 244, 11, 16, 220, 18, 47, 236, 6, 6, 247, 44, 15, 161, 228, 106, 40, 183, 219, 53,
-			63, 187, 199, 64, 47, 238, 233, 204, 43, 117, 226, 164, 27, 75, 234, 197, 222, 48, 72, 233, 223, 22, 252, 194, 214, 50, 75, 215, 173, 49,
-			71, 198, 192, 18, 60, 246, 203, 236, 38, 50, 16, 225, 186, 3, 97, 1, 150, 228, 84, 57, 192, 191, 30, 35, 186, 217, 57, 37, 230, 240,
-			208, 212, 22, 20, 255, 23, 8, 245, 191, 179, 33, 84, 250, 242, 254, 207, 224, 229, 248, 77, 52, 193, 203, 23, 3, 0, 235, 251, 71, 242,
-			160, 11, 44, 253, 230, 221, 78, 69, 147, 150, 97, 91, 202, 195, 234, 1, 20, 20, 36, 28, 244, 199, 204, 0, 54, 24, 31, 52, 229, 169,
-			251, 27, 23, 54, 39, 195, 218, 46, 7, 249, 51, 17, 222, 8, 61, 235, 227, 49, 10, 5, 65, 255, 180, 30, 83, 221, 226, 97, 31, 172,
-			0, 32, 32, 46, 234, 225, 20, 22, 245, 237, 31, 40, 229, 199, 39, 50, 218, 243, 50, 2, 198, 252, 38, 36, 227, 206, 29, 99, 8, 175,
-			1, 71, 244, 203, 62, 47, 218, 233, 1, 233, 10, 69, 5, 209, 209, 11, 23, 6, 222, 13, 72, 211, 136, 32, 115, 202, 161, 79, 87, 207,
-			157, 14, 77, 7, 211, 249, 4, 30, 249, 179, 251, 76, 249, 190, 24, 16, 252, 27, 244, 229, 29, 23, 238, 255, 38, 18, 206, 213, 66, 95,
-			236, 164, 253, 82, 0, 137, 9, 119, 5, 173, 255, 16, 5, 17, 200, 201, 124, 106, 142, 160, 70, 25, 206, 253, 51, 56, 247, 169, 210, 47,
-			53, 240, 228, 6, 15, 215, 221, 4, 24, 39, 243, 190, 10, 66, 247, 223, 228, 22, 52, 242, 194, 5, 69, 9, 220, 210, 254, 57, 27, 210,
-			221, 33, 19, 219, 221, 60, 41, 225, 7, 56, 248, 236, 209, 234, 70, 64, 234, 13, 22, 231, 230, 11, 5, 40, 40, 217, 223, 0, 236, 15,
-			54, 254, 225, 251, 11, 208, 212, 72, 65, 211, 213, 43, 234, 211, 24, 24, 0, 33, 251, 189, 245, 23, 18, 19, 223, 206, 44, 60, 206, 181,
-			23, 88, 230, 156, 47, 71, 193, 200, 20, 29, 22, 234, 245, 10, 245, 244, 30, 226, 233, 48, 13, 224, 219, 254, 35, 4, 251, 32, 37, 203,
-			186, 255, 29, 21, 16, 36, 4, 209, 179, 30, 95, 6, 216, 11, 17, 218, 219, 21, 45, 253, 6, 37, 235, 188, 0, 36, 251, 238, 25, 7,
-			224, 251, 20, 214, 213, 58, 43, 208, 211, 6, 5, 250, 246, 12, 22, 0, 210, 217, 27, 34, 249, 9, 27, 233, 248, 250, 224, 6, 79, 17,
-			228, 9, 235, 215, 25, 42, 249, 252, 31, 234, 153, 243, 105, 42, 229, 5, 237, 232, 253, 249, 27, 79, 6, 183, 243, 63, 7, 239, 251, 16,
-			237, 236, 30, 1, 198, 10, 34, 213, 250, 44, 223, 230, 18, 229, 255, 42, 230, 242, 33, 4, 206, 245, 56, 65, 243, 178, 216, 44, 61, 255,
-			185, 29, 76, 186, 137, 44, 90, 0, 192, 245, 17, 244, 253, 33, 248, 231, 39, 10, 195, 248, 61, 35, 244, 218, 1, 254, 223, 231, 61, 72,
-			226, 157, 228, 68, 52, 199, 216, 62, 62, 233, 209, 246, 34, 250, 249, 39, 17, 190, 232, 11, 22, 29, 23, 5, 226, 0, 23, 254, 244, 54,
-			50, 249, 222, 241, 14, 16, 244, 248, 27, 29, 244, 244, 31, 10, 211, 228, 44, 34, 212, 240, 25, 7, 2, 255, 250, 14, 8, 228, 226, 9,
-			33, 30, 0, 191, 220, 25, 18, 241, 248, 44, 12, 201, 199, 28, 36, 7, 251, 219, 220, 22, 252, 216, 39, 67, 235, 217, 252, 11, 6, 15,
-			234, 239, 59, 42, 178, 210, 68, 24, 200, 6, 56, 18, 247, 223, 196, 40, 97, 250, 213, 25, 29, 213, 218, 32, 70, 21, 210, 220, 3, 1,
-			250, 243, 26, 52, 228, 212, 32, 43, 223, 235, 41, 21, 254, 249, 232, 232, 36, 34, 220, 239, 26, 7, 218, 236, 33, 29, 232, 229, 253, 13,
-			14, 239, 235, 27, 41, 250, 199, 243, 44, 19, 214, 233, 54, 253, 203, 240, 20, 11, 250, 230, 10, 44, 230, 209, 13, 35, 249, 230, 249, 16,
-			9, 245, 251, 11, 17, 7, 211, 225, 31, 29, 7, 253, 230, 233, 15, 16, 1, 8, 241, 238, 8, 250, 251, 32, 19, 226, 226, 254, 19, 35,
-			0, 232, 232, 248, 22, 254, 237, 4, 14, 253, 244, 248, 10, 22, 238, 235, 22, 36, 0, 253, 243, 242, 27, 32, 3, 8, 7, 250, 239, 13,
-			42, 2, 215, 245, 11, 26, 28, 251, 226, 12, 25, 233, 255, 42, 0, 223, 246, 5, 9, 11, 230, 236, 10, 4, 252, 249, 251, 7, 248, 227,
-			249, 44, 41, 220, 211, 9, 25, 254, 7, 13, 248, 255, 0, 235, 10, 23, 235, 232, 20, 25, 254, 235, 241, 4, 8, 252, 3, 27, 3, 237,
-			251, 16, 11, 7, 15, 0, 239, 249, 2, 254, 15, 32, 1, 223, 242, 14, 11, 254, 240, 247, 22, 4, 208, 0, 49, 250, 234, 34, 16, 227,
-			252, 12, 4, 16, 12, 9, 6, 241, 244, 251, 1, 23, 30, 253, 236, 245, 0, 6, 0, 11, 44, 10, 210, 234, 24, 28, 5, 238, 0, 24,
-			244, 218, 4, 32, 12, 246, 244, 254, 8, 253, 237, 251, 27, 12, 241, 235, 254, 252, 253, 243, 250, 13, 4, 230, 221, 254, 16, 3, 246, 251,
-			251, 239, 236, 255, 16, 13, 234, 211, 254, 27, 246, 230, 247, 2, 246, 240, 246, 2, 244, 0, 121, 8, 30, 0, 248, 12, 23, 0, 234, 214,
-			221, 242, 8, 252, 4, 28, 34, 36, 47, 28, 249, 224, 232, 242, 227, 215, 244, 15, 6, 13, 43, 54, 41, 33, 40, 28, 245, 226, 226, 222,
-			197, 220, 255, 254, 29, 57, 36, 31, 48, 58, 3, 235, 23, 251, 212, 0, 30, 244, 252, 34, 38, 42, 42, 13, 8, 14, 247, 233, 230, 219,
-			200, 242, 23, 18, 10, 48, 61, 46, 39, 236, 225, 252, 225, 204, 217, 233, 237, 27, 53, 33, 48, 44, 255, 20, 5, 220, 223, 230, 200, 214,
-			24, 1, 245, 53, 49, 15, 38, 19, 223, 224, 249, 219, 203, 254, 14, 11, 29, 32, 29, 27, 34, 29, 254, 6, 2, 212, 209, 230, 218, 201,
-			217, 19, 24, 12, 37, 49, 27, 18, 31, 244, 212, 235, 244, 224, 223, 254, 11, 9, 26, 30, 29, 39, 28, 15, 1, 225, 219, 244, 227, 234,
-			9, 243, 231, 17, 28, 245, 253, 30, 255, 236, 16, 23, 247, 254, 3, 0, 240, 243, 248, 0, 2, 242, 12, 19, 253, 253, 24, 32, 2, 4,
-			255, 237, 241, 236, 212, 241, 19, 11, 17, 56, 50, 16, 37, 17, 184, 192, 223, 179, 180, 2, 27, 33, 73, 93, 66, 41, 41, 13, 224, 217,
-			214, 187, 189, 211, 243, 14, 36, 60, 87, 53, 33, 51, 6, 219, 227, 199, 167, 195, 220, 211, 240, 17, 33, 63, 89, 45, 25, 43, 244, 180,
-			222, 206, 188, 240, 242, 242, 34, 46, 22, 34, 24, 250, 247, 241, 211, 211, 228, 234, 249, 13, 32, 18, 37, 62, 32, 23, 34, 6, 227, 242,
-			223, 206, 235, 226, 225, 3, 13, 1, 25, 44, 26, 8, 10, 254, 224, 209, 207, 201, 201, 214, 244, 38, 51, 27, 54, 71, 23, 3, 15, 219,
-			192, 223, 215, 220, 238, 235, 11, 46, 32, 38, 41, 6, 0, 245, 221, 208, 219, 232, 228, 246, 8, 16, 28, 46, 43, 32, 4, 223, 218, 236,
-			205, 205, 234, 249, 35, 29, 40, 85, 58, 7, 6, 3, 207, 181, 205, 206, 202, 6, 17, 32, 76, 82, 30, 29, 54, 238, 188, 226, 208, 179,
-			220, 233, 246, 12, 31, 39, 67, 69, 42, 59, 26, 210, 177, 182, 194, 184, 223, 9, 16, 52, 92, 78, 63, 43, 0, 217, 213, 213, 188, 203,
-			215, 247, 16, 29, 47, 56, 37, 39, 24, 5, 6, 240, 221, 208, 238, 240, 226, 243, 28, 48, 34, 24, 43, 26, 16, 0, 223, 200, 210, 224,
-			225, 247, 244, 240, 34, 39, 8, 42, 59, 6, 243, 6, 247, 211, 217, 203, 215, 1, 6, 21, 51, 54, 37, 20, 21, 30, 0, 223, 229, 207,
-			199, 228, 238, 243, 39, 47, 44, 63, 58, 33, 17, 248, 221, 209, 201, 215, 214, 194, 239, 23, 18, 33, 61, 48, 30, 10, 0, 2, 234, 225,
-			230, 239, 0, 14, 37, 32, 36, 46, 59, 31, 247, 234, 236, 203, 213, 236, 206, 214, 3, 19, 11, 47, 64, 19, 31, 50, 255, 231, 250, 224,
-			182, 194, 219, 218, 243, 49, 35, 33, 86, 64, 26, 51, 14, 193, 226, 233, 177, 196, 250, 251, 237, 33, 54, 27, 27, 46, 9, 239, 2, 252,
-			219, 219, 206, 212, 4, 16, 16, 29, 48, 64, 19, 10, 27, 224, 202, 230, 219, 224, 1, 22, 37, 37, 22, 17, 46, 27, 210, 191, 228, 202,
-			168, 237, 251, 248, 42, 47, 32, 49, 53, 254, 244, 3, 233, 209, 208, 218, 222, 240, 0, 2, 16, 54, 29, 24, 38, 12, 240, 252, 4, 220,
-			198, 220, 244, 252, 21, 29, 25, 31, 62, 49, 251, 13, 14, 217, 219, 220, 217, 232, 243, 19, 49, 67, 45, 32, 44, 15, 239, 215, 207, 208,
-			221, 231, 233, 244, 249, 6, 26, 40, 62, 54, 15, 16, 4, 220, 205, 209, 211, 229, 217, 236, 17, 41, 59, 62, 41, 43, 54, 17, 232, 233,
-			216, 178, 178, 216, 232, 245, 27, 41, 36, 63, 68, 40, 1, 232, 241, 200, 159, 182, 226, 231, 247, 44, 63, 64, 70, 67, 4, 3, 254, 176,
-			166, 235, 224, 180, 1, 26, 28, 58, 65, 38, 45, 41, 248, 218, 224, 222, 192, 218, 233, 223, 253, 61, 39, 25, 54, 67, 43, 0, 212, 213,
-			213, 197, 210, 249, 248, 2, 56, 51, 34, 41, 27, 7, 22, 250, 209, 185, 203, 246, 210, 213, 42, 46, 11, 78, 74, 35, 59, 28, 231, 240,
-			217, 161, 170, 204, 232, 242, 42, 45, 25, 62, 69, 24, 8, 10, 239, 223, 227, 171, 197, 247, 217, 245, 27, 26, 48, 57, 28, 4, 252, 243,
-			233, 228, 227, 8, 31, 41, 24, 29, 37, 17, 240, 230, 239, 226, 228, 249, 3, 6, 7, 23, 15, 5, 42, 28, 222, 248, 5, 235, 239, 223,
-			216, 41, 20, 217, 22, 58, 3, 5, 28, 10, 231, 218, 235, 233, 225, 252, 230, 243, 55, 16, 24, 76, 39, 0, 20, 12, 217, 224, 237, 225,
-			192, 231, 18, 252, 248, 39, 32, 19, 48, 19, 235, 247, 243, 238, 221, 197, 221, 251, 237, 217, 26, 63, 30, 5, 42, 49, 253, 244, 3, 237,
-			224, 251, 225, 211, 240, 3, 251, 22, 9, 239, 23, 63, 47, 7, 40, 23, 194, 225, 30, 195, 158, 7, 12, 243, 42, 66, 32, 8, 20, 19,
-			243, 226, 2, 8, 254, 12, 244, 238, 14, 13, 235, 252, 242, 237, 8, 254, 5, 11, 15, 4, 5, 0, 252, 241, 247, 4, 8, 243, 0, 16,
-			253, 2, 24, 250, 243, 22, 17, 223, 225, 13, 237, 205, 253, 40, 3, 3, 61, 39, 27, 53, 248, 196, 227, 205, 175, 204, 230, 216, 20, 52,
-			33, 52, 65, 32, 243, 6, 25, 217, 215, 11, 243, 216, 234, 9, 32, 25, 22, 41, 43, 20, 26, 16, 239, 225, 228, 229, 236, 229, 229, 240,
-			21, 28, 22, 39, 45, 24, 41, 32, 237, 241, 236, 207, 215, 232, 229, 234, 10, 45, 43, 45, 58, 21, 19, 31, 229, 200, 223, 226, 204, 220,
-			248, 255, 249, 20, 47, 26, 0, 17, 42, 21, 248, 246, 12, 0, 219, 229, 228, 216, 225, 13, 25, 6, 24, 31, 10, 0, 10, 0, 207, 218,
-			20, 240, 220, 26, 255, 0, 50, 8, 230, 20, 8, 252, 1, 245, 18, 25, 11, 13, 9, 236, 218, 237, 249, 207, 231, 32, 41, 0, 21, 54,
-			41, 23, 14, 8, 250, 227, 226, 206, 216, 245, 244, 20, 49, 60, 63, 61, 29, 1, 13, 211, 149, 215, 209, 148, 216, 51, 6, 2, 67, 44,
-			23, 55, 10, 201, 6, 247, 183, 223, 22, 227, 247, 58, 18, 45, 71, 13, 252, 18, 2, 239, 244, 227, 188, 220, 0, 221, 212, 35, 30, 254,
-			44, 60, 248, 229, 12, 231, 200, 226, 251, 196, 195, 10, 29, 11, 23, 43, 31, 13, 14, 8, 241, 244, 238, 238, 9, 34, 27, 19, 6, 19,
-			248, 234, 10, 1, 221, 230, 13, 237, 241, 255, 22, 6, 0, 22, 12, 29, 0, 234, 24, 9, 198, 215, 6, 249, 230, 22, 39, 0, 37, 62,
-			211, 180, 247, 210, 228, 52, 253, 228, 74, 52, 2, 74, 34, 212, 26, 31, 214, 225, 8, 231, 211, 9, 233, 211, 65, 37, 218, 30, 53, 232,
-			242, 30, 205, 180, 252, 240, 227, 6, 1, 252, 41, 51, 6, 238, 5, 11, 238, 249, 0, 239, 255, 36, 28, 8, 52, 40, 234, 235, 239, 208,
-			212, 244, 206, 223, 46, 22, 245, 48, 70, 238, 241, 20, 227, 190, 252, 248, 218, 253, 23, 22, 29, 11, 6, 35, 241, 208, 49, 51, 197, 242,
-			45, 0, 248, 17, 250, 245, 20, 249, 225, 17, 28, 211, 221, 32, 248, 233, 54, 45, 39, 38, 9, 3, 10, 230, 196, 199, 193, 203, 224, 17,
-			24, 15, 77, 78, 22, 45, 66, 233, 214, 17, 219, 154, 201, 255, 235, 9, 9, 251, 36, 73, 8, 0, 17, 214, 201, 215, 209, 215, 15, 63,
-			5, 18, 90, 31, 204, 9, 12, 210, 3, 20, 203, 243, 41, 249, 15, 67, 255, 248, 67, 40, 0, 24, 236, 203, 204, 221, 202, 226, 0, 13,
-			53, 55, 31, 35, 73, 3, 195, 247, 232, 166, 212, 1, 229, 232, 24, 0, 243, 71, 50, 5, 37, 14, 218, 255, 12, 202, 220, 243, 212, 221,
-			20, 21, 14, 26, 56, 54, 24, 22, 20, 246, 248, 232, 203, 231, 2, 235, 226, 252, 10, 32, 47, 3, 19, 69, 28, 218, 253, 19, 205, 185,
-			20, 21, 210, 26, 70, 3, 15, 61, 254, 252, 19, 206, 205, 234, 215, 211, 242, 230, 246, 35, 39, 21, 28, 39, 54, 23, 228, 234, 241, 235,
-			214, 246, 24, 16, 0, 9, 14, 245, 231, 232, 255, 6, 240, 241, 12, 8, 3, 38, 42, 248, 237, 12, 2, 244, 239, 223, 222, 5, 11, 6,
-			50, 54, 26, 38, 48, 248, 229, 244, 227, 192, 214, 241, 1, 33, 56, 68, 52, 36, 4, 1, 27, 227, 183, 187, 194, 208, 230, 35, 59, 68,
-			70, 47, 36, 22, 231, 179, 196, 213, 178, 214, 12, 0, 20, 63, 55, 42, 44, 26, 243, 200, 187, 182, 201, 215, 234, 0, 48, 51, 30, 56,
-			65, 26, 11, 247, 206, 207, 197, 201, 216, 237, 245, 244, 14, 79, 98, 79, 76, 50, 247, 219, 199, 152, 159, 180, 200, 219, 8, 76, 94, 103,
-			89, 64, 55, 10, 226, 212, 206, 186, 140, 172, 234, 13, 6, 46, 101, 78, 93, 94, 3, 204, 172, 156, 156, 188, 196, 192, 31, 57, 30, 84,
-			94, 29, 25, 63, 248, 155, 199, 203, 149, 192, 0, 239, 29, 125, 94, 52, 89, 46, 205, 225, 199, 141, 175, 203, 220, 1, 43, 49, 67, 56,
-			10, 34, 39, 214, 205, 253, 233, 219, 0, 20, 5, 44, 67, 20, 24, 18, 236, 237, 219, 198, 254, 14, 227, 26, 72, 16, 4, 55, 38, 246,
-			240, 241, 215, 219, 252, 248, 253, 15, 2, 255, 19, 248, 230, 17, 241, 193, 24, 84, 244, 225, 43, 25, 219, 230, 248, 236, 237, 253, 253, 255,
-			19, 11, 3, 30, 34, 8, 229, 230, 240, 229, 222, 220, 243, 23, 24, 28, 26, 19, 39, 40, 244, 204, 233, 241, 195, 209, 241, 8, 5, 13,
-			81, 87, 17, 12, 39, 249, 202, 241, 220, 188, 235, 253, 227, 255, 47, 26, 20, 35, 253, 251, 30, 17, 251, 222, 225, 0, 252, 250, 6, 244,
-			247, 5, 1, 14, 17, 253, 29, 80, 7, 230, 12, 3, 210, 196, 230, 246, 232, 252, 47, 43, 35, 19, 8, 23, 11, 232, 225, 221, 200, 203,
-			238, 242, 250, 80, 102, 43, 43, 80, 35, 211, 211, 230, 192, 152, 185, 241, 251, 14, 89, 78, 42, 94, 91, 1, 228, 248, 179, 149, 183, 174,
-			177, 228, 251, 53, 104, 62, 77, 111, 39, 232, 230, 198, 154, 162, 215, 231, 227, 44, 103, 67, 70, 101, 49, 12, 243, 215, 194, 164, 161, 207,
-			226, 238, 47, 52, 33, 79, 69, 6, 21, 18, 225, 162, 175, 206, 177, 216, 18, 15, 37, 97, 84, 33, 23, 36, 232, 180, 168, 177, 197, 186,
-			226, 45, 91, 70, 68, 102, 87, 35, 254, 231, 204, 184, 173, 193, 221, 250, 21, 59, 57, 62, 112, 98, 33, 237, 221, 195, 143, 164, 206, 200,
-			228, 241, 23, 49, 65, 57, 41, 47, 9, 6, 251, 206, 209, 227, 220, 214, 221, 253, 29, 22, 24, 59, 64, 27, 22, 32, 9, 253, 236, 228,
-			237, 224, 239, 248, 223, 255, 30, 7, 20, 52, 37, 41, 29, 7, 251, 225, 223, 227, 210, 219, 232, 232, 244, 21, 15, 27, 47, 41, 41, 12,
-			21, 18, 222, 232, 228, 229, 245, 234, 244, 18, 5, 12, 29, 13, 16, 24, 1, 27, 17, 241, 254, 243, 222, 230, 236, 229, 210, 248, 17, 18,
-			244, 12, 49, 11, 21, 38, 6, 235, 251, 236, 205, 237, 247, 251, 12, 19, 40, 35, 25, 15, 13, 255, 241, 252, 249, 221, 206, 247, 245, 216,
-			246, 33, 32, 35, 27, 39, 62, 12, 0, 234, 209, 214, 187, 183, 248, 231, 248, 41, 33, 43, 67, 42, 30, 24, 243, 216, 216, 190, 193, 214,
-			219, 229, 19, 26, 36, 43, 54, 54, 23, 10, 0, 232, 201, 215, 218, 178, 231, 38, 5, 34, 99, 52, 32, 72, 22, 247, 5, 199, 203, 236,
-			204, 240, 10, 2, 22, 33, 47, 31, 255, 10, 6, 233, 225, 229, 230, 221, 249, 0, 0, 34, 34, 15, 40, 10, 252, 0, 231, 205, 228, 253,
-			235, 230, 21, 20, 24, 28, 31, 41, 8, 13, 5, 244, 5, 231, 222, 253, 1, 233, 12, 16, 3, 41, 27, 16, 6, 250, 255, 240, 217, 234,
-			249, 242, 246, 0, 0, 0, 76, 11, 178, 0, 10, 246, 247, 248, 0, 19, 0, 242, 9, 16, 0, 239, 239, 3, 14, 11, 4, 253, 1, 252,
-			245, 250, 2, 10, 19, 12, 242, 231, 246, 9, 15, 8, 3, 2, 249, 240, 254, 9, 255, 1, 9, 11, 15, 245, 216, 244, 30, 29, 4, 238,
-			244, 11, 253, 232, 5, 27, 16, 5, 242, 231, 0, 17, 0, 236, 253, 31, 27, 244, 233, 253, 1, 247, 5, 27, 8, 235, 242, 3, 1, 250,
-			6, 37, 21, 221, 219, 0, 20, 16, 248, 248, 30, 22, 215, 204, 16, 49, 11, 239, 0, 21, 244, 213, 251, 25, 8, 12, 19, 248, 236, 245,
-			1, 15, 2, 245, 14, 13, 241, 246, 254, 255, 19, 20, 253, 248, 247, 246, 250, 249, 7, 23, 18, 250, 236, 248, 2, 3, 255, 253, 13, 27,
-			248, 216, 241, 27, 30, 254, 249, 12, 251, 221, 245, 32, 25, 242, 242, 14, 13, 240, 235, 5, 13, 5, 11, 3, 240, 241, 253, 13, 11, 241,
-			253, 45, 18, 194, 206, 35, 53, 248, 226, 7, 26, 250, 230, 254, 19, 10, 2, 3, 250, 242, 0, 13, 246, 232, 16, 42, 11, 230, 230, 0,
-			254, 254, 27, 19, 250, 250, 251, 244, 244, 3, 29, 13, 251, 3, 247, 222, 237, 16, 32, 20, 253, 253, 247, 225, 253, 34, 8, 238, 3, 30,
-			21, 216, 185, 1, 70, 37, 1, 246, 233, 243, 245, 250, 15, 32, 20, 231, 225, 12, 13, 232, 244, 41, 46, 240, 202, 240, 24, 8, 238, 0,
-			40, 28, 229, 217, 251, 22, 7, 250, 5, 29, 9, 212, 221, 24, 31, 0, 254, 13, 0, 233, 235, 250, 8, 24, 35, 11, 231, 225, 241, 4,
-			24, 27, 10, 238, 232, 247, 4, 255, 3, 28, 25, 245, 230, 240, 6, 9, 252, 6, 22, 253, 227, 246, 5, 9, 21, 4, 241, 0, 10, 244,
-			230, 8, 45, 14, 219, 235, 32, 20, 227, 224, 11, 39, 8, 235, 8, 11, 234, 239, 8, 26, 19, 238, 235, 3, 254, 244, 0, 21, 34, 4,
-			232, 243, 249, 254, 10, 11, 255, 2, 7, 244, 232, 254, 24, 20, 3, 254, 247, 242, 247, 4, 12, 0, 2, 36, 8, 204, 222, 24, 42, 13,
-			238, 238, 3, 4, 240, 240, 14, 40, 23, 231, 217, 254, 20, 7, 252, 254, 4, 10, 253, 242, 0, 7, 254, 11, 26, 255, 225, 231, 4, 21,
-			11, 8, 3, 238, 235, 4, 13, 0, 0, 9, 15, 9, 241, 232, 244, 252, 11, 28, 21, 245, 229, 250, 20, 12, 254, 253, 3, 249, 234, 251,
-			17, 22, 9, 234, 236, 23, 25, 245, 230, 247, 21, 17, 254, 253, 247, 240, 255, 17, 26, 16, 246, 230, 246, 11, 242, 223, 20, 63, 13, 206,
-			219, 40, 43, 218, 207, 29, 57, 3, 213, 223, 28, 35, 237, 237, 26, 12, 232, 231, 12, 42, 4, 221, 1, 22, 236, 217, 13, 54, 26, 226,
-			215, 248, 21, 37, 2, 215, 241, 25, 23, 6, 236, 232, 12, 20, 254, 0, 245, 254, 28, 7, 232, 242, 0, 6, 255, 3, 28, 3, 237, 254,
-			4, 0, 7, 0, 233, 244, 20, 19, 251, 247, 18, 20, 239, 215, 246, 21, 13, 6, 26, 8, 219, 215, 7, 44, 25, 233, 242, 36, 6, 188,
-			219, 49, 64, 1, 204, 236, 26, 7, 246, 10, 18, 13, 253, 214, 225, 33, 36, 249, 243, 19, 7, 217, 229, 23, 28, 20, 13, 240, 225, 231,
-			9, 23, 255, 11, 34, 247, 207, 232, 13, 22, 18, 22, 2, 225, 236, 11, 9, 252, 0, 29, 17, 217, 222, 21, 20, 249, 2, 11, 0, 0,
-			5, 245, 229, 251, 39, 33, 233, 229, 10, 10, 238, 247, 10, 17, 17, 3, 237, 238, 254, 8, 3, 254, 22, 30, 230, 197, 245, 43, 40, 253,
-			248, 8, 237, 219, 5, 29, 15, 11, 255, 236, 240, 249, 10, 9, 10, 23, 254, 223, 247, 25, 6, 232, 1, 26, 9, 245, 225, 232, 24, 49,
-			6, 217, 253, 41, 251, 214, 247, 23, 13, 253, 0, 14, 254, 226, 251, 39, 13, 233, 245, 255, 4, 14, 253, 234, 253, 24, 30, 247, 222, 254,
-			27, 3, 230, 252, 15, 3, 255, 11, 9, 240, 237, 11, 25, 4, 235, 243, 19, 7, 238, 2, 29, 6, 227, 232, 13, 25, 247, 241, 21, 12,
-			224, 237, 28, 29, 238, 228, 25, 43, 240, 200, 242, 48, 27, 229, 0, 27, 244, 224, 4, 25, 12, 251, 249, 2, 248, 238, 7, 15, 2, 10,
-			2, 240, 237, 237, 16, 53, 6, 224, 238, 12, 34, 3, 204, 225, 33, 47, 6, 229, 237, 13, 15, 247, 239, 253, 10, 17, 9, 246, 244, 6,
-			1, 234, 4, 44, 8, 210, 228, 32, 46, 246, 216, 255, 23, 1, 247, 249, 6, 24, 8, 227, 233, 18, 18, 248, 249, 10, 13, 3, 0, 251,
-			238, 249, 14, 12, 255, 242, 4, 21, 244, 229, 249, 17, 29, 6, 244, 255, 3, 250, 6, 2, 238, 1, 23, 253, 235, 245, 22, 44, 250, 197,
-			238, 46, 36, 234, 201, 0, 62, 20, 220, 225, 10, 40, 5, 222, 251, 21, 13, 236, 215, 15, 55, 4, 215, 235, 15, 27, 2, 251, 23, 0,
-			206, 239, 27, 17, 2, 14, 15, 245, 214, 251, 29, 13, 5, 246, 232, 255, 3, 1, 19, 13, 245, 251, 8, 6, 251, 236, 247, 27, 18, 245,
-			245, 8, 7, 238, 232, 19, 34, 15, 0, 250, 241, 217, 224, 30, 65, 7, 214, 234, 21, 28, 247, 228, 1, 25, 12, 238, 227, 0, 15, 9,
-			16, 14, 232, 226, 6, 27, 22, 245, 223, 7, 30, 242, 218, 4, 52, 30, 223, 227, 9, 0, 250, 18, 19, 244, 239, 2, 249, 247, 25, 43,
-			246, 202, 238, 39, 32, 235, 223, 4, 32, 9, 220, 238, 47, 39, 213, 199, 43, 76, 223, 168, 250, 75, 34, 215, 235, 31, 12, 230, 246, 18,
-			16, 0, 228, 231, 22, 31, 249, 245, 0, 0, 9, 11, 242, 252, 13, 246, 251, 11, 0, 0, 0, 248, 14, 23, 239, 238, 0, 3, 14, 0,
-			236, 1, 0, 0, 20, 17, 235, 221, 23, 46, 243, 213, 16, 55, 247, 182, 242, 73, 40, 218, 216, 18, 31, 241, 226, 2, 19, 10, 247, 255,
-			22, 6, 220, 230, 27, 22, 236, 4, 32, 11, 233, 224, 0, 24, 254, 247, 15, 14, 248, 241, 252, 4, 4, 3, 2, 0, 8, 2, 247, 248,
-			0, 16, 12, 240, 240, 9, 23, 10, 230, 231, 22, 23, 244, 238, 0, 17, 11, 232, 254, 23, 0, 1, 254, 212, 252, 53, 26, 254, 235, 208,
-			254, 46, 23, 248, 234, 238, 15, 12, 243, 4, 252, 240, 33, 34, 234, 227, 0, 12, 247, 249, 19, 16, 244, 245, 8, 3, 251, 7, 0, 246,
-			15, 8, 229, 243, 8, 26, 34, 0, 212, 224, 27, 40, 248, 218, 251, 36, 15, 228, 235, 23, 11, 233, 1, 31, 9, 245, 225, 229, 23, 42,
-			13, 240, 232, 253, 21, 252, 216, 3, 61, 33, 216, 190, 246, 50, 41, 1, 232, 237, 17, 27, 240, 203, 244, 63, 49, 232, 207, 254, 28, 10,
-			249, 237, 235, 21, 34, 247, 217, 0, 35, 14, 237, 231, 4, 19, 0, 0, 17, 248, 224, 254, 50, 18, 200, 218, 34, 44, 0, 238, 249, 9,
-			7, 255, 245, 0, 10, 250, 245, 27, 30, 221, 199, 14, 61, 24, 227, 227, 17, 3, 210, 255, 44, 18, 236, 233, 31, 47, 207, 161, 11, 104,
-			43, 230, 223, 226, 244, 4, 20, 25, 20, 2, 244, 236, 244, 244, 0, 16, 26, 21, 248, 217, 224, 11, 55, 25, 220, 221, 13, 22, 239, 229,
-			12, 45, 11, 223, 247, 17, 0, 252, 244, 254, 21, 14, 248, 225, 243, 33, 15, 234, 255, 31, 17, 223, 223, 11, 15, 255, 9, 7, 8, 2,
-			236, 224, 3, 47, 25, 246, 228, 253, 30, 236, 191, 12, 66, 26, 255, 217, 222, 36, 23, 216, 245, 26, 28, 13, 209, 201, 35, 61, 251, 225,
-			17, 39, 222, 184, 3, 81, 17, 173, 237, 94, 37, 205, 217, 3, 32, 19, 235, 241, 9, 241, 240, 30, 16, 250, 20, 4, 218, 240, 31, 11,
-			218, 225, 27, 54, 11, 216, 234, 22, 12, 252, 9, 7, 240, 241, 9, 2, 244, 17, 17, 246, 241, 255, 14, 5, 242, 5, 10, 244, 255, 21,
-			244, 220, 0, 43, 40, 229, 206, 3, 38, 9, 240, 240, 12, 7, 241, 11, 9, 239, 0, 20, 5, 249, 238, 10, 24, 245, 239, 16, 14, 245,
-			232, 239, 30, 43, 252, 231, 244, 245, 12, 17, 1, 255, 242, 247, 0, 1, 34, 23, 200, 223, 53, 34, 218, 205, 21, 84, 7, 169, 218, 57,
-			62, 221, 177, 26, 98, 251, 173, 233, 60, 62, 209, 181, 49, 67, 212, 201, 10, 52, 26, 216, 225, 41, 12, 212, 3, 45, 0, 228, 230, 252,
-			23, 11, 11, 20, 218, 209, 26, 42, 0, 241, 234, 4, 39, 2, 218, 245, 31, 26, 240, 219, 246, 36, 36, 246, 219, 246, 26, 24, 254, 216,
-			226, 38, 71, 250, 191, 237, 46, 22, 212, 233, 40, 17, 239, 1, 5, 234, 230, 14, 50, 252, 212, 11, 25, 236, 239, 18, 37, 8, 223, 215,
-			17, 38, 0, 0, 15, 228, 219, 11, 32, 20, 9, 245, 229, 1, 12, 252, 248, 0, 18, 14, 232, 224, 13, 37, 15, 248, 229, 243, 15, 15,
-			247, 231, 6, 54, 250, 182, 246, 77, 32, 210, 224, 39, 14, 197, 251, 74, 20, 212, 215, 252, 46, 20, 242, 11, 11, 234, 237, 252, 255, 30,
-			27, 227, 225, 29, 6, 227, 3, 21, 3, 251, 244, 5, 8, 254, 9, 16, 241, 206, 255, 62, 20, 227, 238, 10, 8, 240, 238, 38, 37, 213,
-			212, 25, 42, 20, 242, 202, 238, 46, 32, 233, 226, 4, 46, 38, 205, 187, 26, 68, 13, 221, 219, 15, 35, 252, 223, 230, 9, 43, 16, 244,
-			0, 249, 212, 246, 27, 22, 24, 16, 222, 220, 3, 32, 38, 246, 206, 255, 27, 239, 0, 35, 15, 254, 225, 215, 12, 39, 12, 1, 255, 239,
-			254, 13, 245, 243, 13, 20, 248, 221, 8, 55, 11, 197, 227, 32, 32, 4, 238, 235, 5, 29, 11, 231, 240, 13, 7, 244, 245, 9, 27, 8,
-			233, 233, 16, 6, 229, 16, 64, 1, 197, 228, 27, 16, 237, 6, 27, 0, 245, 4, 10, 1, 226, 233, 36, 38, 3, 233, 211, 251, 57, 19,
-			211, 235, 30, 14, 234, 10, 15, 233, 243, 28, 11, 237, 229, 248, 24, 21, 3, 12, 2, 232, 221, 255, 45, 12, 242, 14, 11, 219, 218, 21,
-			37, 250, 11, 37, 216, 181, 22, 95, 18, 185, 207, 37, 47, 242, 223, 9, 22, 0, 253, 253, 229, 242, 37, 40, 242, 222, 249, 26, 2, 210,
-			248, 69, 21, 216, 245, 9, 253, 244, 251, 31, 27, 234, 226, 6, 32, 252, 217, 240, 35, 31, 246, 236, 22, 24, 239, 231, 238, 249, 47, 30,
-			212, 225, 25, 33, 2, 212, 219, 65, 81, 231, 158, 238, 69, 31, 205, 239, 28, 12, 238, 240, 26, 27, 219, 248, 56, 239, 158, 239, 101, 75,
-			197, 176, 43, 83, 223, 180, 8, 79, 7, 189, 233, 39, 29, 227, 217, 42, 48, 204, 236, 74, 32, 185, 188, 25, 64, 243, 231, 27, 12, 223,
-			242, 20, 24, 3, 243, 6, 10, 212, 203, 30, 77, 22, 203, 211, 30, 55, 244, 203, 251, 61, 28, 204, 207, 17, 46, 5, 238, 2, 1, 240,
-			0, 23, 13, 252, 239, 234, 0, 26, 2, 241, 12, 16, 241, 230, 6, 69, 25, 176, 195, 49, 68, 246, 201, 2, 61, 1, 185, 219, 28, 50,
-			37, 248, 216, 227, 20, 11, 228, 255, 70, 26, 192, 204, 38, 46, 224, 227, 53, 37, 202, 200, 31, 67, 6, 185, 224, 65, 58, 206, 189, 27,
-			46, 245, 240, 19, 18, 241, 220, 249, 22, 28, 24, 239, 226, 0, 17, 250, 229, 3, 36, 24, 237, 226, 238, 9, 32, 20, 233, 239, 24, 6,
-			226, 254, 23, 24, 242, 207, 4, 89, 12, 166, 200, 30, 64, 30, 213, 225, 39, 17, 220, 239, 33, 37, 248, 203, 237, 53, 21, 214, 252, 32,
-			16, 236, 212, 245, 58, 45, 224, 212, 12, 33, 226, 194, 18, 91, 21, 184, 230, 54, 7, 202, 248, 51, 44, 246, 174, 219, 79, 53, 208, 224,
-			24, 33, 4, 216, 235, 46, 33, 233, 232, 233, 250, 32, 43, 6, 192, 206, 56, 55, 212, 225, 33, 30, 246, 216, 251, 35, 19, 234, 198, 248,
-			105, 50, 156, 177, 81, 103, 213, 130, 5, 114, 12, 179, 241, 59, 32, 216, 200, 26, 69, 242, 198, 14, 46, 244, 209, 253, 59, 27, 201, 215,
-			23, 33, 25, 242, 210, 2, 35, 249, 233, 17, 37, 2, 222, 209, 2, 54, 28, 221, 202, 12, 70, 14, 199, 248, 60, 253, 174, 253, 83, 32,
-			207, 234, 22, 250, 236, 22, 30, 237, 213, 15, 72, 4, 182, 238, 48, 10, 215, 233, 24, 56, 13, 216, 239, 251, 236, 252, 29, 46, 0, 204,
-			247, 37, 12, 244, 238, 238, 248, 20, 67, 36, 192, 171, 6, 84, 35, 187, 222, 85, 46, 175, 186, 52, 92, 255, 170, 218, 53, 32, 233, 237,
-			25, 25, 230, 216, 2, 35, 36, 229, 202, 16, 51, 250, 208, 244, 40, 58, 2, 228, 0, 238, 192, 243, 56, 49, 249, 217, 4, 46, 245, 214,
-			5, 43, 16, 216, 220, 28, 27, 250, 246, 1, 4, 235, 239, 60, 52, 197, 189, 25, 46, 252, 231, 20, 51, 230, 155, 243, 96, 48, 196, 207,
-			33, 70, 0, 180, 224, 52, 31, 248, 14, 246, 212, 10, 38, 2, 223, 216, 43, 76, 230, 201, 8, 38, 3, 204, 199, 45, 75, 11, 229, 228,
-			5, 6, 218, 255, 62, 31, 219, 191, 240, 63, 42, 224, 214, 0, 37, 8, 236, 33, 38, 202, 217, 40, 14, 211, 0, 76, 34, 176, 194, 53,
-			52, 227, 215, 28, 55, 242, 192, 237, 35, 42, 253, 222, 1, 36, 20, 232, 215, 18, 29, 198, 209, 53, 87, 13, 171, 178, 35, 92, 16, 207,
-			222, 27, 28, 222, 245, 58, 18, 202, 218, 30, 46, 8, 246, 251, 246, 230, 237, 8, 25, 22, 3, 242, 248, 0, 244, 252, 255, 21, 25, 242,
-			229, 40, 16, 173, 225, 87, 61, 217, 186, 242, 27, 10, 23, 34, 242, 204, 1, 67, 14, 165, 220, 89, 40, 206, 220, 25, 56, 253, 195, 251,
-			37, 254, 225, 254, 26, 11, 250, 224, 0, 49, 11, 208, 246, 39, 32, 245, 204, 228, 58, 42, 205, 214, 34, 56, 11, 214, 228, 34, 17, 221,
-			239, 36, 8, 207, 229, 47, 35, 241, 236, 246, 13, 19, 250, 0, 15, 245, 217, 234, 24, 44, 17, 224, 251, 51, 8, 200, 217, 28, 53, 6,
-			220, 248, 12, 250, 248, 6, 19, 0, 247, 6, 1, 238, 255, 35, 19, 221, 222, 16, 15, 249, 17, 24, 242, 204, 243, 45, 39, 249, 218, 244,
-			43, 253, 211, 0, 30, 6, 247, 246, 30, 25, 218, 211, 20, 58, 8, 209, 242, 15, 10, 12, 247, 0, 30, 0, 242, 254, 242, 244, 14, 17,
-			254, 223, 244, 48, 23, 224, 239, 19, 31, 240, 206, 6, 41, 4, 231, 233, 12, 30, 0, 224, 249, 32, 33, 0, 220, 225, 18, 38, 255, 224,
-			244, 32, 21, 226, 234, 33, 38, 246, 218, 243, 36, 13, 222, 231, 11, 40, 14, 219, 236, 38, 29, 232, 233, 16, 14, 231, 233, 32, 33, 223,
-			213, 26, 57, 0, 218, 242, 6, 0, 254, 253, 8, 11, 0, 247, 252, 11, 5, 2, 7, 250, 240, 245, 16, 30, 2, 234, 244, 245, 9, 33,
-			11, 242, 246, 3, 6, 249, 243, 15, 14, 227, 239, 25, 21, 252, 242, 0, 13, 253, 239, 0, 21, 7, 239, 245, 2, 9, 13, 247, 252, 252,
-			251, 20, 14, 244, 239, 250, 12, 25, 0, 211, 252, 54, 11, 228, 251, 11, 0, 238, 236, 31, 41, 232, 233, 12, 0, 244, 250, 11, 39, 6,
-			233, 253, 251, 227, 241, 27, 44, 13, 240, 233, 224, 248, 35, 33, 10, 239, 219, 243, 20, 17, 15, 13, 245, 228, 227, 6, 44, 27, 243, 230,
-			237, 252, 13, 14, 2, 6, 6, 252, 5, 4, 249, 251, 249, 252, 14, 0, 243, 3, 15, 5, 253, 249, 255, 5, 14, 5, 239, 234, 252, 19,
-			16, 255, 236, 239, 11, 30, 18, 254, 238, 251, 0, 246, 0, 6, 11, 14, 248, 242, 255, 1, 16, 8, 249, 8, 0, 233, 241, 9, 12, 6,
-			1, 254, 253, 252, 254, 14, 10, 249, 7, 11, 222, 222, 22, 34, 6, 247, 248, 5, 1, 243, 7, 13, 0, 3, 252, 244, 0, 9, 2, 5,
-			5, 244, 243, 4, 5, 3, 6, 253, 253, 5, 0, 254, 1, 3, 9, 9, 248, 245, 0, 255, 1, 2, 182, 7, 69, 0, 0, 7, 18, 244,
-			226, 0, 8, 237, 247, 12, 250, 247, 255, 237, 242, 6, 18, 0, 235, 225, 244, 23, 11, 246, 247, 242, 237, 247, 14, 21, 244, 222, 239, 10,
-			8, 246, 255, 251, 239, 1, 3, 244, 248, 0, 251, 253, 251, 237, 8, 22, 229, 226, 11, 9, 253, 240, 247, 10, 251, 236, 255, 15, 241, 224,
-			16, 24, 229, 225, 17, 10, 227, 2, 12, 240, 240, 255, 6, 2, 244, 246, 249, 248, 11, 0, 235, 245, 3, 1, 248, 3, 253, 241, 2, 250,
-			238, 0, 8, 4, 247, 238, 243, 7, 14, 242, 248, 6, 243, 232, 8, 20, 254, 234, 250, 0, 233, 251, 35, 7, 202, 238, 28, 5, 239, 0,
-			0, 230, 242, 27, 2, 234, 4, 253, 215, 3, 53, 246, 208, 252, 10, 243, 255, 19, 5, 244, 228, 233, 4, 22, 13, 243, 228, 239, 9, 20,
-			245, 232, 0, 2, 242, 0, 21, 235, 220, 22, 22, 225, 240, 18, 253, 232, 5, 15, 238, 235, 15, 6, 235, 239, 13, 12, 240, 231, 255, 19,
-			2, 230, 251, 255, 241, 10, 3, 252, 8, 245, 215, 255, 40, 5, 223, 237, 7, 3, 254, 15, 253, 217, 237, 11, 22, 12, 235, 242, 4, 233,
-			229, 27, 32, 245, 233, 242, 242, 250, 30, 20, 228, 229, 4, 1, 244, 6, 14, 246, 228, 255, 13, 0, 249, 252, 248, 230, 249, 42, 12, 213,
-			234, 15, 4, 250, 253, 8, 255, 224, 241, 24, 21, 234, 227, 13, 16, 229, 245, 21, 253, 237, 240, 248, 12, 25, 1, 225, 229, 0, 14, 9,
-			9, 234, 241, 2, 248, 12, 21, 238, 211, 252, 34, 19, 226, 247, 17, 242, 226, 18, 38, 239, 227, 253, 4, 5, 9, 255, 240, 247, 246, 250,
-			22, 15, 243, 237, 244, 0, 7, 2, 254, 249, 255, 249, 245, 9, 8, 252, 233, 244, 8, 9, 1, 252, 251, 247, 244, 3, 17, 253, 233, 248,
-			6, 2, 5, 245, 238, 14, 14, 230, 242, 17, 250, 238, 14, 18, 253, 229, 233, 4, 24, 7, 227, 0, 19, 241, 231, 18, 17, 240, 237, 8,
-			10, 252, 249, 246, 250, 7, 9, 237, 251, 26, 246, 225, 253, 4, 252, 251, 0, 29, 16, 212, 230, 36, 24, 212, 231, 38, 15, 224, 241, 10,
-			252, 8, 23, 247, 227, 222, 0, 53, 31, 219, 215, 253, 13, 252, 251, 19, 10, 235, 226, 249, 16, 9, 0, 243, 249, 10, 251, 235, 5, 21,
-			245, 230, 247, 15, 26, 253, 213, 235, 23, 20, 235, 235, 22, 2, 224, 9, 21, 232, 238, 22, 10, 235, 239, 19, 19, 236, 228, 7, 5, 242,
-			14, 34, 246, 208, 2, 25, 246, 248, 6, 253, 249, 0, 11, 247, 236, 3, 3, 249, 0, 3, 249, 235, 255, 38, 16, 217, 219, 17, 19, 237,
-			4, 27, 244, 224, 0, 11, 249, 4, 18, 246, 222, 252, 16, 13, 242, 229, 16, 28, 229, 219, 17, 23, 241, 240, 7, 11, 246, 249, 11, 255,
-			229, 252, 18, 10, 239, 227, 6, 30, 3, 228, 235, 11, 17, 0, 243, 248, 8, 255, 240, 249, 26, 13, 217, 234, 10, 12, 8, 12, 3, 225,
-			234, 14, 2, 252, 23, 6, 224, 229, 5, 28, 3, 227, 248, 21, 3, 241, 245, 9, 244, 242, 27, 18, 231, 243, 4, 240, 250, 37, 7, 226,
-			240, 254, 15, 0, 233, 10, 30, 255, 234, 252, 7, 250, 241, 13, 21, 240, 235, 6, 6, 240, 0, 13, 4, 242, 239, 5, 0, 240, 6, 12,
-			4, 237, 212, 27, 50, 228, 205, 20, 48, 225, 196, 26, 55, 237, 211, 0, 14, 247, 246, 14, 15, 246, 244, 236, 230, 5, 42, 17, 237, 226,
-			242, 16, 16, 1, 8, 243, 201, 239, 43, 62, 251, 201, 233, 0, 245, 253, 49, 41, 244, 176, 191, 42, 44, 1, 240, 238, 240, 234, 16, 64,
-			3, 212, 11, 4, 227, 7, 23, 17, 246, 223, 238, 11, 25, 251, 229, 255, 18, 0, 250, 245, 241, 7, 1, 248, 4, 243, 1, 24, 236, 218,
-			251, 30, 24, 229, 246, 27, 215, 211, 54, 51, 245, 233, 251, 255, 240, 15, 29, 0, 228, 228, 0, 13, 248, 5, 31, 243, 196, 242, 47, 18,
-			241, 24, 250, 191, 245, 58, 21, 217, 248, 21, 240, 245, 1, 9, 1, 233, 245, 22, 24, 240, 216, 246, 20, 8, 230, 0, 46, 35, 196, 169,
-			1, 54, 45, 21, 233, 202, 220, 9, 44, 21, 214, 240, 34, 245, 196, 23, 80, 0, 151, 233, 88, 22, 219, 245, 9, 253, 249, 2, 21, 10,
-			232, 243, 20, 245, 224, 14, 50, 12, 204, 229, 31, 18, 245, 14, 247, 215, 238, 50, 48, 249, 194, 217, 0, 27, 36, 5, 221, 235, 4, 5,
-			244, 254, 32, 26, 221, 187, 254, 55, 67, 235, 155, 240, 48, 10, 241, 21, 37, 214, 176, 9, 94, 11, 193, 220, 19, 35, 26, 223, 212, 13,
-			25, 14, 230, 220, 14, 32, 245, 243, 252, 11, 0, 216, 5, 46, 16, 221, 212, 25, 47, 218, 199, 11, 20, 36, 43, 234, 181, 195, 8, 86,
-			46, 242, 236, 248, 233, 190, 252, 100, 49, 206, 181, 237, 35, 32, 239, 250, 25, 251, 216, 253, 43, 13, 227, 209, 252, 45, 32, 240, 225, 226,
-			242, 12, 39, 45, 231, 215, 235, 220, 252, 78, 48, 219, 236, 246, 245, 18, 14, 16, 1, 228, 253, 25, 10, 231, 219, 13, 51, 254, 233, 242,
-			236, 250, 50, 48, 222, 197, 217, 247, 25, 57, 49, 233, 190, 233, 6, 246, 8, 24, 36, 5, 224, 0, 11, 208, 183, 22, 90, 34, 234, 0,
-			238, 176, 183, 38, 113, 95, 243, 130, 194, 11, 5, 38, 68, 30, 207, 200, 246, 245, 234, 24, 32, 35, 44, 230, 179, 199, 228, 21, 89, 86,
-			255, 143, 199, 9, 4, 11, 61, 253, 208, 252, 39, 19, 168, 173, 60, 120, 29, 173, 175, 235, 16, 73, 66, 219, 177, 233, 12, 36, 5, 230,
-			8, 13, 242, 252, 243, 248, 14, 2, 254, 4, 253, 244, 225, 32, 68, 226, 181, 236, 26, 44, 54, 238, 167, 200, 84, 91, 213, 157, 236, 57,
-			12, 243, 41, 42, 213, 163, 206, 53, 69, 26, 2, 234, 179, 206, 33, 78, 29, 194, 228, 31, 243, 210, 50, 46, 233, 185, 251, 94, 26, 177,
-			207, 32, 34, 2, 12, 11, 245, 203, 210, 0, 48, 105, 30, 134, 139, 19, 68, 46, 11, 6, 224, 216, 232, 26, 39, 228, 7, 36, 15, 227,
-			182, 217, 51, 45, 31, 9, 198, 214, 5, 6, 15, 15, 254, 30, 28, 194, 168, 31, 76, 33, 203, 226, 41, 4, 238, 248, 250, 239, 18, 20,
-			253, 9, 22, 231, 187, 240, 59, 66, 246, 188, 217, 6, 35, 24, 7, 0, 232, 217, 240, 22, 54, 3, 231, 3, 0, 236, 224, 250, 62, 8,
-			213, 25, 24, 230, 218, 252, 2, 232, 11, 87, 46, 179, 151, 253, 65, 16, 234, 54, 65, 200, 136, 216, 60, 80, 19, 252, 206, 181, 255, 93,
-			69, 184, 189, 33, 29, 187, 220, 100, 52, 183, 199, 27, 10, 226, 9, 56, 15, 196, 216, 18, 25, 3, 255, 0, 30, 13, 192, 221, 34, 36,
-			238, 246, 45, 8, 167, 226, 70, 26, 189, 217, 98, 77, 177, 134, 4, 72, 13, 244, 26, 29, 210, 171, 249, 70, 38, 15, 0, 222, 208, 235,
-			7, 8, 34, 36, 10, 244, 209, 207, 7, 31, 14, 253, 254, 1, 27, 5, 194, 223, 28, 48, 18, 10, 246, 174, 174, 38, 112, 60, 231, 161,
-			206, 251, 241, 23, 77, 50, 229, 208, 188, 236, 37, 24, 252, 22, 31, 245, 210, 212, 1, 15, 237, 4, 68, 50, 188, 153, 224, 41, 63, 43,
-			22, 245, 179, 178, 237, 52, 82, 24, 236, 228, 216, 234, 238, 33, 97, 10, 172, 199, 24, 39, 3, 246, 244, 247, 246, 240, 255, 20, 7, 232,
-			233, 253, 28, 4, 246, 4, 242, 232, 235, 22, 46, 13, 214, 184, 241, 36, 31, 4, 7, 224, 190, 239, 53, 46, 8, 223, 213, 243, 10, 26,
-			9, 231, 240, 246, 243, 25, 50, 3, 213, 186, 223, 34, 61, 17, 241, 215, 233, 4, 248, 5, 19, 5, 232, 231, 10, 6, 253, 255, 250, 237,
-			240, 7, 33, 13, 236, 195, 223, 42, 18, 238, 8, 11, 221, 195, 246, 59, 28, 246, 240, 0, 238, 195, 0, 59, 7, 238, 4, 0, 227, 203,
-			16, 57, 4, 210, 240, 10, 243, 245, 2, 0, 255, 13, 20, 238, 207, 241, 20, 1, 10, 38, 24, 223, 189, 229, 19, 28, 34, 31, 222, 197,
-			248, 42, 15, 229, 14, 20, 240, 226, 237, 5, 20, 10, 0, 0, 236, 240, 0, 232, 247, 41, 39, 243, 208, 226, 25, 15, 238, 4, 4, 3,
-			244, 242, 14, 19, 2, 226, 3, 29, 233, 219, 251, 36, 15, 236, 4, 26, 234, 213, 245, 11, 15, 1, 13, 12, 242, 221, 233, 35, 39, 236,
-			221, 0, 23, 255, 219, 248, 37, 28, 240, 229, 236, 12, 28, 254, 243, 19, 14, 235, 239, 1, 20, 2, 240, 14, 14, 250, 250, 255, 0, 17,
-			10, 233, 242, 8, 16, 236, 251, 46, 27, 245, 204, 229, 1, 33, 49, 10, 236, 225, 248, 4, 13, 247, 250, 26, 21, 230, 234, 15, 24, 237,
-			226, 0, 37, 31, 249, 229, 244, 255, 2, 14, 43, 21, 230, 226, 254, 15, 0, 252, 20, 18, 253, 240, 239, 1, 20, 9, 230, 248, 46, 22,
-			241, 226, 244, 11, 254, 6, 19, 11, 247, 236, 7, 32, 245, 230, 19, 40, 3, 214, 255, 33, 250, 227, 3, 39, 13, 233, 251, 10, 9, 231,
-			237, 38, 38, 247, 232, 0, 12, 238, 3, 26, 22, 5, 228, 241, 14, 254, 243, 5, 42, 24, 233, 246, 253, 250, 253, 3, 26, 10, 247, 250,
-			4, 6, 0, 235, 0, 43, 13, 243, 243, 251, 5, 4, 3, 28, 8, 247, 236, 249, 13, 16, 2, 2, 11, 11, 238, 248, 4, 13, 11, 245,
-			3, 2, 5, 1, 251, 252, 13, 8, 251, 4, 23, 245, 224, 6, 27, 14, 245, 0, 27, 248, 234, 2, 18, 7, 1, 17, 11, 229, 252, 12,
-			16, 14, 234, 248, 6, 245, 7, 2, 16, 11, 237, 7, 12, 1, 251, 245, 17, 32, 250, 0, 15, 1, 233, 232, 27, 41, 242, 243, 36, 19,
-			209, 216, 28, 33, 4, 7, 8, 5, 239, 227, 13, 34, 14, 244, 252, 19, 247, 234, 18, 24, 255, 252, 14, 10, 245, 249, 7, 2, 2, 0,
-			24, 20, 238, 226, 239, 36, 25, 245, 245, 10, 18, 1, 227, 248, 22, 11, 246, 1, 12, 7, 5, 0, 244, 252, 250, 0, 15, 23, 253, 236,
-			2, 5, 251, 20, 9, 0, 242, 253, 18, 250, 0, 1, 248, 18, 13, 243, 251, 3, 10, 255, 239, 17, 38, 16, 241, 231, 250, 18, 0, 237,
-			7, 36, 8, 244, 239, 0, 19, 243, 242, 24, 19, 250, 249, 8, 31, 244, 219, 14, 32, 244, 227, 6, 23, 1, 246, 252, 1, 1, 2, 253,
-			239, 233, 250, 21, 15, 248, 249, 0, 248, 246, 244, 19, 11, 246, 248, 9, 16, 242, 246, 13, 12, 234, 230, 11, 38, 0, 238, 254, 5, 5,
-			251, 3, 11, 249, 244, 255, 18, 10, 8, 0, 252, 245, 254, 9, 247, 249, 9, 11, 12, 243, 242, 8, 6, 2, 248, 241, 14, 26, 251, 235,
-			251, 13, 2, 248, 22, 21, 233, 216, 253, 27, 7, 251, 13, 12, 239, 228, 252, 22, 5, 236, 0, 0, 18, 9, 134, 0, 0, 0, 0, 1,
-			4, 8, 6, 252, 244, 248, 0, 2, 2, 4, 4, 255, 251, 250, 254, 1, 3, 4, 3, 1, 255, 253, 253, 255, 2, 3, 2, 0, 255, 253,
-			253, 255, 1, 2, 1, 0, 254, 254, 254, 255, 0, 0, 0, 0, 255, 254, 254, 255, 0, 0, 0, 0, 255, 254, 254, 255, 255, 255, 0, 0,
-			0, 254, 254, 255, 255, 0, 0, 254, 254, 0, 255, 253, 254, 0, 1, 1, 0, 253, 254, 0, 0, 255, 255, 0, 1, 0, 254, 253, 0, 4,
-			4, 4, 0, 247, 245, 0, 5, 2, 0, 3, 2, 250, 246, 254, 5, 4, 2, 1, 0, 254, 0, 0, 253, 255, 5, 5, 0, 254, 0, 0,
-			255, 255, 0, 2, 2, 0, 0, 254, 253, 0, 3, 1, 255, 0, 0, 253, 255, 0, 0, 0, 1, 253, 253, 2, 255, 252, 3, 5, 253, 253,
-			255, 255, 2, 3, 0, 1, 0, 250, 253, 3, 3, 0, 252, 249, 0, 6, 1, 252, 253, 255, 0, 0, 253, 254, 2, 0, 252, 251, 254, 1,
-			0, 252, 254, 5, 1, 249, 250, 1, 5, 0, 254, 255, 251, 252, 4, 3, 254, 254, 0, 0, 2, 1, 249, 244, 4, 18, 2, 242, 250, 3,
-			255, 255, 8, 6, 252, 246, 249, 1, 7, 5, 1, 252, 244, 251, 9, 2, 249, 1, 8, 0, 245, 250, 5, 1, 253, 3, 3, 0, 253, 250,
-			254, 5, 0, 255, 1, 253, 252, 7, 8, 249, 242, 252, 12, 14, 248, 235, 6, 16, 246, 243, 12, 8, 248, 253, 254, 1, 6, 252, 242, 1,
-			5, 253, 0, 1, 252, 3, 4, 253, 1, 5, 255, 1, 4, 254, 255, 8, 3, 246, 245, 6, 15, 252, 242, 4, 9, 3, 2, 255, 248, 253,
-			12, 11, 244, 245, 11, 250, 234, 13, 31, 253, 229, 241, 0, 6, 4, 3, 8, 251, 234, 248, 12, 1, 252, 8, 3, 249, 252, 253, 251, 0,
-			9, 2, 252, 252, 254, 253, 253, 4, 5, 251, 253, 7, 253, 235, 254, 22, 8, 246, 250, 1, 253, 251, 2, 12, 8, 248, 238, 253, 16, 4,
-			245, 255, 3, 253, 0, 4, 254, 0, 1, 249, 248, 9, 8, 243, 254, 11, 247, 244, 9, 8, 254, 244, 253, 14, 1, 238, 253, 11, 0, 252,
-			1, 3, 252, 247, 1, 8, 254, 250, 0, 0, 254, 8, 0, 236, 253, 23, 1, 242, 1, 5, 254, 253, 254, 2, 8, 253, 252, 4, 0, 248,
-			7, 6, 244, 255, 22, 255, 232, 0, 18, 5, 251, 246, 248, 14, 17, 245, 240, 4, 11, 1, 248, 0, 12, 7, 243, 242, 12, 16, 249, 240,
-			253, 10, 11, 245, 239, 15, 22, 240, 239, 11, 10, 253, 252, 253, 255, 8, 1, 248, 255, 5, 4, 9, 1, 247, 1, 6, 254, 250, 0, 2,
-			4, 2, 255, 249, 252, 0, 2, 7, 8, 249, 247, 4, 2, 253, 12, 5, 230, 241, 20, 17, 241, 241, 3, 0, 248, 0, 5, 0, 248, 253,
-			6, 249, 239, 5, 15, 1, 7, 5, 237, 1, 40, 31, 1, 247, 254, 7, 247, 227, 249, 17, 8, 241, 242, 25, 17, 203, 226, 58, 33, 214,
-			238, 37, 13, 229, 4, 34, 0, 239, 248, 244, 11, 24, 244, 235, 252, 254, 16, 8, 249, 253, 251, 0, 255, 242, 9, 36, 248, 207, 247, 28,
-			13, 3, 249, 244, 8, 9, 246, 253, 14, 255, 244, 252, 255, 4, 14, 253, 242, 1, 255, 237, 9, 35, 243, 223, 10, 19, 248, 255, 17, 0,
-			237, 241, 7, 33, 1, 215, 247, 20, 253, 247, 9, 0, 245, 2, 3, 242, 250, 15, 7, 243, 245, 2, 9, 245, 244, 27, 9, 221, 237, 20,
-			19, 237, 238, 31, 11, 216, 229, 19, 32, 252, 234, 4, 4, 250, 248, 250, 22, 21, 242, 230, 253, 20, 0, 236, 6, 25, 1, 240, 243, 2,
-			11, 255, 253, 5, 12, 242, 223, 13, 37, 254, 240, 245, 249, 12, 13, 243, 254, 12, 247, 236, 16, 19, 246, 251, 0, 241, 1, 10, 255, 6,
-			254, 244, 4, 13, 253, 237, 13, 21, 232, 240, 17, 6, 252, 2, 248, 250, 12, 2, 238, 237, 12, 30, 253, 228, 3, 18, 242, 232, 23, 33,
-			245, 220, 240, 27, 23, 239, 239, 15, 21, 252, 228, 246, 37, 8, 220, 0, 16, 253, 0, 249, 244, 29, 22, 216, 217, 33, 55, 251, 207, 239,
-			33, 12, 240, 252, 9, 0, 245, 249, 4, 9, 3, 1, 245, 241, 9, 22, 245, 249, 4, 1, 251, 254, 253, 11, 15, 238, 224, 28, 47, 211,
-			212, 46, 36, 215, 233, 42, 41, 224, 179, 254, 75, 22, 207, 230, 17, 8, 251, 17, 8, 225, 247, 21, 254, 245, 22, 17, 239, 243, 16, 4,
-			12, 18, 243, 226, 254, 240, 241, 14, 32, 34, 248, 198, 251, 67, 28, 221, 232, 21, 24, 242, 227, 25, 48, 227, 191, 7, 41, 254, 223, 255,
-			36, 251, 220, 5, 18, 14, 11, 242, 231, 11, 29, 0, 219, 250, 42, 9, 215, 253, 30, 248, 232, 8, 15, 11, 1, 213, 247, 54, 25, 231,
-			235, 9, 30, 3, 208, 245, 33, 13, 1, 5, 255, 2, 1, 226, 230, 18, 29, 242, 226, 15, 30, 234, 233, 16, 254, 247, 11, 10, 243, 243,
-			11, 29, 252, 226, 255, 15, 249, 248, 12, 7, 239, 254, 24, 247, 226, 17, 26, 237, 252, 19, 249, 233, 1, 28, 18, 232, 222, 17, 33, 232,
-			242, 47, 9, 202, 239, 50, 18, 209, 235, 29, 4, 237, 9, 19, 247, 223, 250, 36, 34, 238, 221, 251, 9, 14, 24, 0, 213, 239, 33, 22,
-			250, 244, 233, 251, 27, 5, 243, 252, 255, 250, 241, 8, 36, 4, 225, 244, 2, 10, 12, 254, 254, 2, 241, 236, 22, 35, 243, 215, 4, 22,
-			3, 240, 244, 17, 0, 213, 251, 68, 22, 184, 221, 45, 24, 249, 243, 0, 254, 244, 246, 20, 21, 233, 238, 19, 4, 235, 9, 32, 239, 200,
-			0, 54, 12, 213, 0, 33, 245, 210, 9, 60, 12, 208, 208, 34, 50, 217, 219, 36, 35, 232, 215, 12, 35, 254, 241, 3, 241, 249, 24, 0,
-			251, 32, 11, 207, 220, 35, 43, 253, 229, 236, 253, 11, 8, 15, 1, 240, 244, 8, 16, 2, 240, 252, 16, 3, 252, 253, 253, 2, 254, 0,
-			19, 7, 247, 245, 255, 9, 0, 243, 4, 18, 253, 235, 15, 26, 246, 232, 251, 40, 28, 212, 211, 29, 29, 9, 20, 231, 184, 5, 78, 10,
-			213, 238, 7, 255, 253, 17, 23, 242, 227, 2, 15, 20, 12, 230, 237, 27, 254, 239, 27, 5, 213, 7, 38, 243, 237, 10, 3, 4, 253, 239,
-			20, 36, 233, 224, 16, 12, 253, 25, 15, 228, 226, 18, 31, 6, 248, 240, 8, 17, 239, 253, 31, 248, 231, 19, 9, 224, 9, 53, 243, 207,
-			255, 34, 18, 252, 226, 230, 32, 21, 237, 4, 11, 245, 10, 0, 218, 13, 70, 246, 193, 254, 38, 13, 247, 7, 33, 11, 222, 228, 21, 49,
-			246, 194, 26, 58, 213, 215, 36, 40, 2, 210, 223, 58, 48, 205, 227, 46, 7, 227, 12, 254, 240, 24, 17, 223, 237, 12, 20, 10, 245, 254,
-			20, 250, 227, 7, 41, 11, 219, 238, 24, 15, 254, 255, 1, 16, 18, 225, 207, 43, 72, 232, 178, 252, 69, 36, 205, 211, 45, 34, 214, 226,
-			46, 27, 217, 232, 38, 39, 236, 234, 254, 255, 19, 22, 233, 246, 29, 242, 213, 22, 53, 253, 224, 230, 12, 46, 247, 204, 28, 45, 234, 226,
-			3, 18, 21, 239, 215, 27, 45, 244, 222, 8, 33, 15, 226, 219, 26, 40, 250, 255, 255, 234, 244, 26, 40, 12, 220, 221, 26, 40, 225, 207,
-			47, 54, 219, 189, 18, 74, 2, 194, 0, 59, 5, 215, 246, 37, 29, 11, 0, 211, 231, 48, 39, 220, 221, 16, 25, 5, 243, 250, 28, 2,
-			230, 6, 21, 8, 8, 8, 10, 23, 11, 237, 237, 13, 35, 244, 205, 8, 43, 10, 228, 209, 9, 55, 8, 204, 218, 22, 60, 25, 210, 226,
-			34, 19, 211, 226, 55, 40, 199, 215, 37, 41, 5, 206, 222, 50, 38, 231, 225, 6, 32, 255, 217, 228, 40, 59, 215, 157, 39, 111, 221, 131,
-			7, 98, 17, 181, 214, 64, 37, 197, 221, 31, 19, 252, 229, 244, 39, 0, 189, 4, 79, 246, 184, 2, 43, 243, 228, 29, 5, 215, 1, 42,
-			233, 232, 27, 14, 231, 231, 11, 21, 246, 243, 255, 240, 244, 18, 11, 241, 252, 1, 226, 2, 53, 244, 197, 14, 16, 235, 34, 21, 181, 220,
-			50, 38, 225, 219, 30, 3, 194, 7, 70, 251, 167, 234, 85, 24, 155, 234, 89, 245, 187, 7, 43, 22, 218, 206, 35, 53, 216, 222, 28, 255,
-			249, 0, 240, 251, 26, 243, 229, 29, 36, 205, 202, 44, 49, 228, 226, 18, 4, 250, 10, 247, 239, 20, 255, 231, 12, 19, 253, 237, 241, 8,
-			21, 1, 244, 245, 249, 3, 0, 13, 2, 244, 8, 20, 219, 223, 31, 31, 233, 223, 15, 25, 217, 211, 37, 45, 4, 221, 223, 17, 41, 240,
-			249, 4, 233, 11, 9, 224, 8, 58, 229, 177, 13, 74, 7, 205, 238, 14, 9, 249, 235, 6, 33, 255, 220, 229, 13, 29, 12, 250, 245, 248,
-			245, 19, 23, 231, 232, 12, 9, 248, 0, 7, 2, 0, 2, 246, 2, 8, 255, 248, 250, 254, 17, 12, 255, 251, 240, 9, 29, 242, 221, 32,
-			27, 211, 246, 53, 255, 199, 2, 50, 17, 216, 226, 30, 30, 232, 239, 24, 249, 231, 11, 19, 253, 253, 1, 243, 236, 43, 47, 198, 194, 38,
-			35, 233, 232, 12, 12, 232, 233, 33, 30, 230, 241, 18, 254, 247, 32, 1, 206, 250, 42, 4, 239, 251, 234, 9, 58, 229, 199, 47, 24, 196,
-			11, 42, 249, 251, 239, 236, 24, 22, 245, 249, 6, 5, 244, 241, 5, 27, 15, 235, 233, 2, 16, 22, 1, 213, 235, 32, 22, 224, 245, 31,
-			253, 226, 254, 20, 22, 5, 212, 243, 24, 245, 240, 30, 5, 225, 238, 7, 19, 245, 0, 18, 235, 224, 21, 20, 237, 10, 31, 239, 226, 4,
-			11, 9, 11, 241, 213, 251, 37, 23, 248, 217, 231, 32, 44, 221, 196, 28, 64, 230, 184, 22, 56, 244, 210, 252, 29, 10, 236, 6, 12, 215,
-			250, 59, 13, 200, 240, 35, 11, 237, 242, 240, 12, 42, 236, 214, 21, 35, 232, 245, 37, 10, 210, 247, 40, 251, 230, 25, 20, 215, 1, 38,
-			246, 222, 12, 29, 8, 232, 232, 16, 15, 243, 253, 12, 249, 250, 16, 10, 237, 0, 31, 244, 227, 37, 30, 207, 223, 46, 45, 239, 200, 1,
-			62, 10, 202, 236, 48, 26, 218, 248, 55, 251, 202, 25, 52, 234, 233, 14, 23, 0, 236, 253, 18, 12, 249, 255, 241, 3, 36, 20, 221, 245,
-			18, 3, 0, 12, 3, 0, 246, 253, 14, 13, 254, 241, 253, 26, 20, 213, 241, 56, 24, 216, 223, 37, 43, 220, 217, 51, 24, 203, 245, 35,
-			21, 241, 228, 22, 33, 240, 240, 18, 253, 253, 23, 8, 238, 14, 31, 244, 223, 251, 23, 24, 248, 232, 254, 21, 6, 231, 18, 46, 237, 197,
-			11, 41, 15, 239, 226, 12, 30, 253, 239, 19, 12, 232, 239, 22, 26, 250, 236, 254, 6, 16, 7, 239, 2, 24, 249, 236, 17, 8, 253, 0,
-			5, 13, 21, 241, 223, 21, 41, 239, 210, 14, 45, 2, 224, 0, 18, 5, 0, 250, 0, 12, 255, 245, 5, 3, 0, 22, 5, 235, 255, 25,
-			2, 245, 15, 10, 237, 251, 25, 9, 245, 10, 11, 237, 254, 22, 247, 245, 31, 20, 217, 213, 47, 69, 215, 180, 34, 69, 240, 196, 14, 65,
-			252, 211, 247, 25, 19, 239, 235, 29, 16, 213, 243, 45, 23, 226, 225, 13, 36, 247, 229, 9, 8, 241, 10, 15, 240, 238, 18, 22, 226, 242,
-			42, 7, 219, 6, 23, 6, 5, 255, 250, 249, 0, 14, 13, 4, 3, 232, 236, 28, 34, 243, 237, 8, 245, 233, 20, 38, 247, 209, 254, 40,
-			1, 238, 29, 33, 224, 195, 14, 77, 17, 195, 235, 32, 246, 230, 32, 34, 242, 223, 249, 19, 20, 13, 255, 231, 248, 43, 11, 213, 255, 46,
-			0, 225, 1, 32, 19, 237, 222, 10, 47, 1, 211, 250, 51, 21, 209, 235, 50, 28, 224, 239, 46, 26, 200, 211, 50, 51, 233, 216, 7, 41,
-			0, 209, 1, 43, 255, 218, 8, 40, 243, 207, 8, 54, 1, 208, 247, 40, 4, 217, 245, 30, 7, 228, 251, 32, 12, 237, 245, 2, 14, 8,
-			4, 5, 243, 242, 16, 17, 7, 251, 225, 13, 39, 235, 223, 27, 12, 225, 4, 37, 4, 226, 230, 12, 46, 13, 221, 242, 23, 248, 239, 29,
-			22, 232, 239, 14, 11, 3, 2, 4, 254, 243, 11, 35, 3, 206, 247, 54, 7, 205, 7, 51, 241, 208, 26, 49, 231, 209, 11, 41, 3, 219,
-			250, 36, 8, 230, 243, 28, 28, 241, 229, 9, 21, 252, 242, 13, 19, 240, 236, 21, 9, 225, 254, 47, 3, 208, 252, 49, 12, 221, 249, 30,
-			10, 232, 245, 16, 15, 251, 247, 0, 2, 0, 6, 3, 0, 2, 244, 246, 10, 16, 3, 255, 252, 253, 1, 0, 10, 15, 248, 235, 5, 25,
-			2, 233, 248, 18, 8, 245, 249, 7, 9, 246, 241, 17, 17, 239, 250, 28, 6, 226, 252, 31, 13, 225, 239, 25, 17, 232, 242, 27, 11, 232,
-			2, 25, 2, 250, 3, 255, 247, 4, 0, 0, 225, 1, 33, 0, 8, 4, 7, 7, 20, 44, 10, 4, 9, 250, 252, 247, 237, 225, 218, 237,
-			231, 235, 246, 241, 0, 9, 13, 10, 0, 14, 14, 2, 3, 246, 240, 239, 232, 230, 219, 224, 229, 226, 235, 237, 236, 246, 248, 247, 245, 244,
-			247, 241, 236, 233, 223, 217, 220, 218, 209, 207, 210, 214, 222, 230, 235, 237, 243, 251, 0, 255, 255, 252, 252, 253, 253, 250, 250, 0, 6, 10,
-			14, 19, 24, 34, 38, 41, 43, 50, 56, 54, 55, 57, 61, 79, 76, 73, 75, 67, 65, 59, 47, 32, 16, 15, 11, 6, 5, 4, 11, 21,
-			28, 36, 30, 33, 35, 25, 21, 12, 253, 245, 233, 220, 213, 200, 197, 192, 192, 198, 192, 197, 212, 215, 223, 231, 236, 239, 236, 241, 236, 222,
-			224, 218, 215, 212, 206, 205, 204, 208, 221, 219, 227, 231, 242, 253, 0, 2, 0, 0, 4, 0, 0, 0, 1, 0, 2, 8, 6, 13, 16, 20,
-			24, 27, 27, 25, 27, 24, 8, 4, 254, 231, 221, 178, 176, 59, 41, 45, 88, 81, 98, 114, 125, 80, 4, 22, 232, 215, 213, 158, 170, 198,
-			247, 18, 0, 44, 85, 91, 125, 107, 85, 60, 43, 37, 241, 222, 212, 196, 224, 225, 222, 239, 3, 18, 3, 5, 16, 19, 26, 29, 16, 254,
-			255, 14, 6, 2, 245, 226, 242, 245, 252, 247, 228, 235, 246, 246, 250, 237, 231, 228, 228, 235, 217, 218, 213, 205, 221, 216, 222, 235, 234, 242,
-			235, 236, 235, 226, 231, 213, 204, 208, 206, 205, 203, 205, 209, 217, 235, 245, 249, 0, 10, 12, 22, 28, 24, 14, 17, 15, 14, 20, 27, 37,
-			41, 49, 60, 59, 65, 63, 62, 66, 63, 68, 66, 63, 63, 58, 59, 59, 61, 56, 42, 42, 45, 40, 47, 37, 30, 20, 8, 6, 1, 250,
-			243, 237, 243, 244, 243, 244, 231, 230, 236, 224, 230, 219, 211, 211, 212, 214, 211, 205, 209, 197, 202, 191, 187, 194, 195, 203, 202, 206, 217, 217,
-			229, 236, 219, 218, 203, 207, 209, 209, 218, 221, 233, 248, 0, 14, 11, 20, 28, 27, 35, 16, 1, 0, 252, 1, 254, 249, 0, 9, 36, 50,
-			71, 96, 98, 110, 120, 114, 104, 103, 84, 64, 43, 27, 13, 249, 234, 219, 215, 226, 228, 238, 248, 254, 16, 27, 36, 42, 34, 23, 15, 254,
-			239, 221, 194, 182, 179, 181, 197, 214, 236, 1, 17, 49, 59, 66, 64, 45, 35, 14, 1, 246, 222, 223, 224, 232, 3, 15, 29, 43, 53, 67,
-			60, 49, 37, 14, 253, 234, 217, 201, 191, 190, 191, 193, 204, 214, 223, 235, 242, 241, 240, 233, 225, 213, 204, 187, 179, 171, 164, 160, 160, 178,
-			210, 226, 244, 4, 0, 247, 239, 240, 224, 217, 225, 217, 230, 246, 0, 0, 0, 0, 108, 0, 5, 0, 5, 0, 196, 0, 114, 1, 84, 4,
-			252, 8, 88, 12, 91, 14, 32, 27, 70, 18, 46, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 7, 0, 196, 0,
-			114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 19, 47, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 216, 0, 184, 1, 169, 6, 96, 9, 128, 12, 66, 14, 192, 27, 9, 17, 28, 40, 36, 33, 32, 19, 7, 0, 120, 105, 120, 120,
-			120, 120, 30, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 212, 0, 179, 1, 155, 7, 96, 9, 228, 12, 216, 14, 160, 27, 29, 15, 25, 37, 34, 40, 30, 18, 6, 0,
-			120, 105, 180, 120, 120, 120, 24, 96, 99, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 164, 1, 141, 8, 0, 10, 32, 13, 110, 15, 64, 27, 0, 95, 63, 93, 97, 97,
-			76, 45, 16, 0, 120, 105, 120, 120, 120, 120, 15, 75, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 140, 0, 3, 0, 1, 0, 148, 0, 128, 1, 168, 7, 196, 9, 228, 12, 50, 15,
-			96, 25, 50, 6, 8, 22, 28, 22, 24, 15, 6, 3, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 148, 0, 128, 1, 168, 7, 196, 9,
-			228, 12, 50, 15, 96, 25, 90, 6, 8, 22, 28, 22, 24, 15, 6, 3, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 148, 0, 80, 1,
-			32, 8, 60, 10, 42, 13, 50, 15, 96, 25, 0, 1, 4, 11, 14, 12, 12, 7, 3, 1, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 175, 0,
-			4, 0, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 45, 54, 26, 77, 50, 48, 50, 29, 12, 5, 160, 95,
-			120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 70, 120, 40, 116, 76, 72, 75, 44,
-			18, 8, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 104, 0, 104, 1, 72, 8, 120, 10, 52, 13, 40, 15, 96, 25, 60, 97, 36, 104,
-			68, 64, 67, 39, 16, 7, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 104, 0, 104, 1, 72, 8, 100, 10, 72, 13, 40, 15, 96, 25,
-			0, 43, 24, 69, 45, 43, 45, 26, 10, 5, 160, 95, 120, 167, 120, 120, 130, 95, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 90, 0, 3, 0, 1, 0, 192, 0, 144, 1, 168, 7,
-			236, 9, 32, 13, 60, 15, 96, 25, 50, 38, 29, 64, 37, 26, 24, 8, 5, 5, 160, 90, 120, 120, 120, 120, 130, 90, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 192, 0,
-			152, 1, 148, 7, 236, 9, 32, 13, 60, 15, 96, 25, 90, 84, 44, 96, 64, 44, 40, 20, 8, 8, 160, 90, 120, 120, 120, 120, 130, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 192, 0, 152, 1, 168, 7, 236, 9, 32, 13, 60, 15, 96, 25, 0, 31, 26, 58, 41, 29, 21, 14, 4, 5, 160, 90, 120, 120,
-			120, 120, 130, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 195, 0, 4, 0, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15, 104, 25, 45, 64, 13, 76, 60, 68,
-			68, 40, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15, 104, 25, 80, 64,
-			13, 76, 60, 68, 68, 40, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9, 172, 13, 160, 15,
-			104, 25, 70, 53, 11, 69, 54, 62, 61, 36, 13, 11, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 141, 0, 84, 1, 144, 6, 16, 9,
-			172, 13, 160, 15, 104, 25, 0, 34, 9, 55, 43, 49, 49, 29, 11, 8, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0, 4, 0, 1, 0,
-			31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 50, 32, 26, 48, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120,
-			135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 81, 42, 77, 82, 75, 58, 42, 14, 9, 244, 132,
-			159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 73, 40, 73, 77, 71, 55, 40,
-			13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48,
-			51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 31, 1, 176, 1, 255, 6, 225, 9, 104, 13,
-			15, 15, 224, 28, 50, 34, 26, 40, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 31, 1, 184, 1, 255, 6,
-			225, 9, 104, 13, 15, 15, 224, 28, 60, 71, 42, 49, 82, 75, 58, 42, 14, 9, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 31, 1,
-			160, 1, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 60, 40, 39, 77, 71, 55, 40, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180,
-			150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 31, 1, 168, 1, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 0, 26, 26, 26, 51, 47, 36, 27, 9, 5, 244, 132, 159, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 170, 0, 4, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 50, 24, 26, 40, 43, 38,
-			31, 21, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15, 224, 28, 60, 55,
-			42, 60, 64, 57, 49, 34, 14, 9, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9, 104, 13, 15, 15,
-			224, 28, 60, 54, 40, 61, 64, 54, 50, 32, 13, 8, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 31, 1, 77, 2, 255, 6, 225, 9,
-			104, 13, 15, 15, 224, 28, 0, 23, 26, 40, 40, 38, 31, 21, 9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 220, 0, 4, 0, 1, 0,
-			153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 41, 24, 49, 52, 39, 36, 20, 14, 6, 165, 126, 145, 120, 120, 120,
-			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 90, 63, 31, 60, 64, 51, 46, 26, 19, 8, 165, 126,
-			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 153, 0, 192, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 80, 53, 28, 54, 61, 45, 42, 23,
-			17, 7, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 153, 0, 176, 1, 56, 3, 216, 9, 194, 11, 151, 14, 244, 26, 0, 31, 21, 43,
-			46, 34, 31, 18, 12, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 140, 0, 3, 0, 1, 0, 204, 0, 158, 2, 252, 4, 60, 10, 168, 12,
-			10, 15, 0, 28, 50, 54, 35, 56, 76, 42, 50, 25, 14, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 204, 0, 93, 2, 208, 4,
-			60, 10, 168, 12, 10, 15, 0, 28, 90, 108, 43, 86, 98, 54, 65, 32, 19, 8, 170, 165, 150, 120, 120, 120, 170, 180, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 204, 0,
-			93, 2, 252, 4, 60, 10, 168, 12, 10, 15, 0, 28, 0, 52, 31, 61, 69, 38, 46, 22, 13, 9, 167, 165, 150, 120, 120, 120, 167, 180,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			100, 0, 4, 0, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 45, 3, 73, 36, 21, 21, 30, 12, 7,
-			177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 50, 77, 4, 96, 48, 28,
-			28, 40, 16, 10, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15, 144, 26, 70, 61,
-			3, 85, 42, 24, 24, 35, 14, 8, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 64, 1, 132, 3, 56, 9, 12, 13, 60, 15,
-			144, 26, 0, 30, 2, 60, 30, 17, 17, 25, 10, 6, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 50, 0, 5, 0, 1, 0, 135, 0, 96, 1,
-			138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 50, 48, 12, 67, 56, 50, 45, 32, 10, 11, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			135, 0, 96, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 115, 80, 16, 86, 72, 64, 58, 41, 13, 14, 178, 122, 132, 123, 123, 141,
-			187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 135, 0, 96, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 55, 51, 12, 69, 58, 51, 47, 33, 10, 11, 178, 122,
-			132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 135, 0, 88, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 40, 43, 10, 64, 51, 48, 44, 31,
-			10, 10, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 135, 0, 80, 1, 138, 6, 68, 9, 128, 12, 128, 14, 153, 24, 0, 40, 9, 63,
-			46, 40, 35, 30, 8, 8, 181, 122, 132, 123, 123, 141, 190, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 70, 6, 212, 8, 148, 12,
-			41, 14, 64, 26, 42, 56, 18, 76, 56, 42, 42, 39, 12, 8, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 104, 1, 26, 6,
-			212, 8, 148, 12, 116, 14, 192, 25, 40, 87, 23, 91, 86, 77, 60, 55, 19, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 88, 0,
-			104, 1, 48, 6, 172, 8, 148, 12, 116, 14, 192, 25, 50, 80, 24, 94, 68, 74, 55, 53, 21, 8, 167, 120, 135, 120, 120, 120, 107, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 84, 0, 64, 1, 106, 5, 192, 8, 68, 12, 116, 14, 192, 25, 67, 39, 12, 67, 43, 38, 32, 31, 14, 8, 165, 135, 135, 120,
-			120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 34, 17, 60, 37, 18, 21, 21, 10, 8,
-			165, 135, 135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 139, 0, 3, 0, 1, 0, 112, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14, 96, 27, 50, 60,
-			34, 66, 80, 45, 47, 36, 18, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 13, 2, 161, 5, 36, 9, 188, 12, 116, 14,
-			96, 27, 90, 87, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5, 36, 9,
-			188, 12, 116, 14, 96, 27, 0, 46, 30, 58, 70, 39, 41, 32, 16, 9, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 105, 0, 4, 0, 5, 0,
-			88, 0, 24, 1, 6, 9, 140, 10, 32, 13, 191, 14, 224, 28, 30, 19, 10, 42, 37, 34, 45, 22, 7, 0, 135, 120, 135, 120, 120, 120,
-			30, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 7, 0, 88, 0, 24, 1, 174, 8, 196, 9, 32, 13, 91, 14, 224, 28, 17, 24, 7, 55, 33, 35, 37, 24, 7, 0, 135, 90,
-			135, 120, 120, 120, 30, 105, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 5, 0, 88, 0, 84, 1, 188, 7, 36, 9, 168, 12, 191, 14, 224, 28, 58, 20, 5, 45, 20, 48, 40, 26,
-			5, 0, 135, 135, 135, 120, 120, 120, 30, 90, 75, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 144, 1, 56, 7, 212, 8, 168, 12, 191, 14, 224, 28, 0, 86, 34, 108,
-			58, 77, 61, 37, 10, 0, 120, 105, 120, 120, 120, 120, 30, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 5, 0, 180, 0, 248, 2, 185, 8, 200, 10, 32, 13,
-			116, 14, 0, 29, 45, 13, 4, 8, 23, 36, 46, 26, 7, 0, 120, 62, 150, 120, 120, 120, 45, 92, 90, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 196, 0, 229, 1, 136, 6,
-			36, 9, 28, 12, 116, 14, 0, 28, 50, 37, 32, 53, 66, 51, 49, 29, 6, 0, 120, 120, 150, 120, 120, 120, 75, 105, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0,
-			7, 3, 43, 4, 240, 10, 148, 12, 41, 14, 96, 27, 59, 126, 29, 73, 116, 52, 45, 45, 15, 7, 167, 165, 135, 120, 120, 120, 167, 120,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 228, 0, 7, 3, 10, 4, 240, 10, 52, 13, 41, 14, 224, 27, 58, 116, 30, 82, 97, 55, 57, 54, 13, 8, 167, 135, 150, 120,
-			120, 120, 167, 90, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 228, 0, 243, 2, 255, 3, 160, 10, 148, 12, 41, 14, 224, 27, 38, 71, 34, 67, 87, 37, 41, 38, 14, 8,
-			167, 135, 120, 120, 120, 120, 167, 75, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 164, 0, 27, 3, 98, 4, 20, 10, 148, 12, 41, 14, 224, 27, 0, 40, 24, 60, 59, 29,
-			25, 25, 8, 8, 167, 120, 120, 120, 120, 120, 227, 105, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 154, 0, 4, 0, 1, 0, 248, 0, 137, 3, 40, 5, 140, 10, 112, 13, 35, 15,
-			32, 28, 50, 60, 34, 70, 69, 40, 27, 24, 9, 8, 210, 150, 105, 120, 120, 120, 255, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 72, 1, 157, 3, 40, 5, 140, 10,
-			112, 13, 191, 14, 32, 28, 40, 66, 42, 75, 65, 49, 43, 27, 13, 7, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 72, 1, 157, 3,
-			40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 65, 72, 41, 80, 67, 56, 42, 26, 13, 6, 210, 150, 105, 120, 120, 120, 240, 165, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			16, 1, 128, 3, 60, 5, 100, 10, 112, 13, 191, 14, 160, 28, 0, 54, 35, 70, 63, 37, 33, 26, 8, 9, 210, 135, 105, 120, 120, 120,
-			255, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 154, 0, 4, 0, 1, 0, 248, 0, 137, 3, 40, 5, 140, 10, 112, 13, 35, 15, 32, 28, 50, 60, 34, 70, 69, 40, 27, 24,
-			9, 8, 210, 150, 105, 120, 120, 120, 255, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 40, 102, 42, 95,
-			85, 49, 43, 27, 13, 7, 207, 150, 105, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 72, 1, 157, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28,
-			65, 97, 41, 93, 83, 56, 42, 26, 13, 6, 210, 150, 105, 120, 120, 120, 240, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 16, 1, 128, 3, 60, 5, 100, 10, 112, 13,
-			191, 14, 160, 28, 0, 54, 35, 70, 63, 37, 33, 26, 8, 9, 210, 135, 105, 120, 120, 120, 255, 165, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 50, 0, 4, 0, 5, 0, 4, 0,
-			16, 1, 220, 5, 136, 9, 58, 14, 216, 19, 224, 21, 40, 5, 8, 23, 10, 6, 6, 6, 4, 4, 150, 125, 137, 137, 150, 175, 150, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			5, 0, 4, 0, 16, 1, 220, 5, 136, 9, 58, 14, 216, 19, 224, 21, 10, 6, 9, 25, 11, 6, 6, 6, 5, 4, 150, 125, 137, 137,
-			150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 5, 0, 4, 0, 16, 1, 220, 5, 144, 9, 58, 14, 216, 19, 224, 21, 0, 6, 9, 26, 12, 7, 7, 7, 5, 4,
-			150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 17, 0, 4, 0, 16, 1, 220, 5, 160, 9, 58, 14, 216, 19, 224, 21, 0, 6, 9, 25, 11, 6,
-			6, 6, 5, 4, 150, 125, 137, 137, 150, 175, 150, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 253, 2, 193, 0, 1, 254, 252, 255, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
-			2, 4, 6, 8, 9, 11, 10, 9, 8, 6, 5, 5, 6, 7, 8, 10, 11, 12, 13, 13, 12, 11, 10, 10, 9, 8, 8, 8, 8, 9,
-			9, 8, 7, 5, 3, 3, 4, 4, 1, 254, 251, 251, 251, 252, 252, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 251, 245, 236, 226,
-			218, 215, 216, 221, 227, 234, 238, 240, 239, 237, 234, 231, 229, 228, 230, 234, 238, 242, 246, 252, 0, 6, 10, 15, 17, 18, 16, 13, 9, 6,
-			5, 7, 11, 17, 22, 26, 28, 28, 27, 23, 19, 15, 10, 7, 4, 1, 0, 255, 255, 254, 254, 254, 254, 253, 252, 250, 247, 243, 240, 237,
-			235, 234, 235, 237, 239, 242, 244, 246, 248, 249, 250, 251, 252, 253, 254, 254, 255, 0, 0, 1, 3, 4, 5, 6, 6, 5, 4, 2, 0, 253,
-			252, 251, 252, 254, 0, 3, 5, 5, 5, 3, 1, 0, 254, 253, 251, 250, 250, 251, 253, 0, 1, 3, 3, 3, 3, 2, 1, 0, 0, 0,
-			1, 2, 3, 4, 4, 4, 4, 3, 3, 3, 4, 4, 4, 4, 3, 2, 1, 0, 0, 255, 255, 255, 255, 0, 0, 1, 2, 3, 2, 0,
-			255, 253, 252, 253, 254, 0, 0, 2, 3, 4, 4, 3, 2, 2, 2, 3, 3, 2, 0, 0, 0, 2, 4, 5, 6, 6, 4, 2, 0, 254,
-			253, 252, 251, 250, 250, 252, 255, 0, 0, 0, 255, 255, 0, 0, 255, 253, 252, 252, 253, 253, 253, 252, 252, 253, 252, 251, 250, 252, 253, 252,
-			250, 251, 0, 8, 14, 16, 14, 13, 13, 13, 11, 8, 6, 6, 7, 9, 15, 23, 32, 39, 40, 27, 253, 209, 166, 138, 130, 142, 167, 197,
-			229, 255, 12, 11, 0, 241, 231, 228, 231, 236, 242, 248, 253, 0, 3, 9, 20, 36, 53, 67, 73, 68, 54, 34, 13, 253, 242, 239, 244, 255,
-			12, 23, 27, 23, 14, 3, 249, 240, 234, 230, 229, 227, 224, 219, 215, 212, 214, 220, 230, 240, 249, 254, 255, 250, 243, 235, 229, 228, 232, 241,
-			252, 6, 15, 21, 24, 25, 24, 22, 22, 21, 20, 17, 14, 10, 5, 2, 0, 0, 3, 7, 11, 13, 12, 7, 0, 248, 240, 234, 229, 228,
-			229, 232, 236, 240, 242, 244, 245, 246, 247, 248, 250, 253, 255, 0, 0, 0, 0, 2, 5, 10, 15, 20, 25, 26, 26, 23, 19, 15, 11, 8,
-			7, 6, 5, 4, 4, 3, 3, 3, 3, 3, 2, 0, 254, 250, 245, 241, 237, 237, 238, 242, 246, 252, 1, 7, 11, 12, 12, 11, 10, 8,
-			6, 6, 6, 8, 10, 12, 15, 17, 20, 22, 24, 24, 21, 15, 9, 3, 0, 252, 249, 249, 251, 255, 2, 3, 2, 0, 255, 252, 250, 247,
-			245, 246, 249, 252, 254, 254, 252, 252, 252, 255, 3, 8, 11, 12, 9, 6, 3, 2, 1, 2, 3, 4, 6, 7, 8, 9, 9, 8, 6, 4,
-			3, 3, 4, 7, 9, 9, 8, 5, 2, 1, 3, 7, 12, 14, 12, 4, 249, 234, 221, 213, 214, 223, 237, 254, 13, 23, 24, 17, 6, 252,
-			243, 237, 238, 244, 254, 4, 5, 0, 252, 252, 252, 247, 237, 226, 218, 215, 216, 221, 227, 234, 239, 240, 239, 238, 235, 232, 230, 229, 231, 234,
-			239, 243, 247, 252, 1, 6, 11, 15, 17, 18, 17, 14, 10, 7, 6, 8, 12, 17, 23, 27, 29, 29, 27, 24, 19, 15, 11, 7, 4, 1,
-			0, 0, 255, 254, 254, 254, 254, 254, 253, 250, 247, 244, 241, 238, 235, 234, 235, 237, 240, 242, 244, 246, 248, 250, 251, 252, 252, 253, 254, 255,
-			0, 0, 1, 3, 4, 5, 6, 7, 7, 6, 5, 2, 0, 254, 252, 251, 252, 255, 1, 3, 5, 6, 5, 4, 2, 0, 255, 253, 251, 250,
-			251, 252, 254, 0, 2, 3, 3, 3, 3, 3, 2, 0, 0, 0, 1, 2, 3, 4, 5, 5, 4, 4, 4, 4, 4, 5, 5, 4, 4, 3,
-			2, 0, 0, 0, 255, 255, 0, 0, 0, 1, 3, 3, 3, 1, 0, 254, 253, 253, 255, 0, 1, 3, 4, 4, 5, 4, 3, 2, 2, 3,
-			3, 3, 1, 1, 1, 3, 5, 6, 7, 6, 5, 2, 0, 255, 253, 252, 251, 250, 251, 253, 255, 1, 1, 0, 255, 0, 0, 0, 0, 254,
-			252, 0, 0, 0, 50, 0, 5, 0, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 45, 35, 17, 54, 37, 34,
-			34, 31, 8, 11, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 50, 68,
-			24, 76, 52, 48, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14,
-			100, 25, 85, 55, 21, 68, 46, 43, 43, 39, 10, 14, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 16, 1, 28, 7, 232, 8,
-			228, 12, 96, 14, 100, 25, 40, 43, 19, 60, 41, 38, 38, 35, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 16, 1,
-			8, 7, 212, 8, 228, 12, 96, 14, 100, 25, 0, 29, 15, 50, 34, 29, 31, 29, 7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 235, 0,
-			5, 0, 1, 0, 244, 0, 35, 2, 48, 7, 232, 9, 38, 13, 144, 14, 176, 28, 45, 28, 23, 46, 45, 48, 37, 27, 8, 6, 202, 118,
-			143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 244, 0, 35, 2, 48, 7, 232, 9, 38, 13, 144, 14, 176, 28, 80, 82, 40, 79, 77, 81, 63, 46,
-			14, 10, 202, 118, 143, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 238, 0, 18, 2, 230, 6, 214, 9, 6, 13, 144, 14, 122, 28, 80, 72, 37, 74,
-			71, 73, 58, 41, 14, 9, 198, 118, 144, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 120, 1, 192, 3, 46, 9, 224, 11, 136, 14, 144, 26,
-			30, 48, 26, 59, 47, 37, 32, 21, 15, 7, 162, 122, 155, 120, 120, 120, 162, 120, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 184, 0, 120, 1, 212, 3, 56, 9, 224, 11,
-			136, 14, 144, 26, 0, 29, 20, 45, 39, 32, 28, 17, 13, 5, 162, 125, 155, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 48, 0, 3, 0, 5, 0, 168, 0,
-			160, 1, 232, 3, 216, 9, 72, 13, 168, 17, 106, 24, 25, 10, 31, 19, 3, 3, 7, 3, 7, 11, 97, 125, 137, 137, 150, 175, 97, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			9, 0, 168, 0, 160, 1, 232, 3, 216, 9, 72, 13, 168, 17, 106, 24, 23, 10, 31, 19, 3, 3, 7, 3, 7, 7, 97, 125, 137, 137,
-			150, 175, 97, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 168, 0, 160, 1, 232, 3, 216, 9, 72, 13, 168, 17, 106, 24, 0, 10, 31, 19, 3, 3, 7, 3, 7, 7,
-			97, 125, 137, 137, 150, 175, 97, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 175, 0, 4, 0, 1, 0, 24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 45, 44,
-			27, 62, 53, 40, 30, 19, 9, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 96, 3, 0, 5, 140, 10, 132, 13, 140, 15,
-			32, 28, 70, 93, 40, 90, 76, 58, 43, 27, 13, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0,
-			50, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 24, 1, 96, 3, 0, 5, 140, 10,
-			132, 13, 140, 15, 32, 28, 60, 83, 38, 85, 72, 55, 41, 26, 12, 6, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54,
-			0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 24, 1, 96, 3,
-			0, 5, 140, 10, 132, 13, 140, 15, 32, 28, 0, 39, 26, 58, 50, 38, 28, 18, 8, 4, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44,
-			65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0,
-			4, 0, 33, 0, 152, 0, 40, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 52, 30, 12, 39, 42, 51, 51, 33, 12, 6, 167, 190,
-			120, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 40, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 75, 47, 15, 49, 53, 64, 64, 41,
-			16, 7, 167, 190, 120, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 40, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 79, 38, 13, 44,
-			47, 58, 58, 37, 14, 6, 167, 190, 120, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 84, 0, 240, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26,
-			0, 21, 11, 34, 38, 37, 38, 21, 9, 7, 175, 200, 105, 120, 120, 120, 175, 200, 120, 44, 45, 70, 130, 60, 170, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 253, 0, 152, 2, 120, 5,
-			238, 9, 66, 13, 215, 14, 0, 28, 50, 35, 35, 47, 62, 34, 31, 23, 11, 2, 200, 140, 140, 120, 120, 120, 150, 180, 150, 44, 45, 70,
-			130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 253, 0,
-			152, 2, 120, 5, 238, 9, 66, 13, 215, 14, 0, 28, 60, 66, 48, 64, 84, 46, 43, 31, 15, 3, 200, 140, 140, 120, 120, 120, 150, 180,
-			150, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 253, 0, 152, 2, 120, 5, 238, 9, 66, 13, 215, 14, 0, 28, 40, 59, 45, 61, 79, 44, 40, 29, 14, 3, 200, 140, 140, 120,
-			120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 253, 0, 152, 2, 120, 5, 238, 9, 66, 13, 215, 14, 0, 28, 0, 31, 33, 44, 58, 32, 29, 21, 10, 2,
-			200, 140, 140, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 150, 0, 4, 0, 1, 0, 186, 0, 152, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 50, 37,
-			31, 52, 63, 36, 29, 23, 13, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 186, 0, 152, 2, 128, 5, 156, 9, 248, 12, 141, 14,
-			160, 27, 60, 68, 43, 72, 86, 50, 39, 32, 18, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 186, 0, 152, 2, 128, 5, 156, 9,
-			248, 12, 141, 14, 160, 27, 40, 61, 40, 68, 81, 47, 37, 30, 17, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44, 45, 70, 130, 59,
-			155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 186, 0, 152, 2,
-			128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 0, 32, 29, 49, 59, 34, 27, 22, 12, 0, 180, 145, 125, 120, 120, 120, 200, 127, 120, 44,
-			45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 247, 0,
-			5, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 45, 41, 33, 55, 66, 38, 30, 24, 13, 0, 180, 150,
-			125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 60, 62, 41, 68, 82, 47, 37, 30,
-			17, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 186, 0, 146, 2, 128, 5, 156, 9, 248, 12, 141, 14, 160, 27, 80, 49, 36, 60,
-			72, 42, 33, 27, 15, 0, 180, 150, 125, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 208, 0, 136, 1, 8, 2, 20, 10, 216, 11, 234, 13, 15, 28,
-			62, 26, 39, 30, 16, 28, 28, 19, 6, 5, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 165, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 208, 0, 136, 1, 8, 2, 20, 10, 216, 11,
-			234, 13, 15, 28, 0, 16, 32, 22, 14, 24, 24, 17, 5, 4, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 59, 175, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 7, 0, 1, 0, 206, 0,
-			200, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 24, 49, 28, 50, 69, 23, 36, 20, 10, 5, 177, 100, 131, 120, 120, 120, 105, 135,
-			135, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 206, 0, 200, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 55, 77, 35, 63, 86, 28, 45, 25, 13, 7, 177, 100, 131, 120,
-			120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 206, 0, 200, 1, 72, 3, 38, 10, 208, 11, 47, 14, 159, 27, 65, 69, 33, 59, 82, 27, 43, 23, 12, 6,
-			177, 100, 131, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 165, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 5, 0, 201, 0, 184, 1, 80, 5, 16, 9, 243, 11, 67, 14, 134, 27, 25, 39, 26, 56, 46, 36,
-			43, 24, 12, 6, 176, 151, 153, 120, 120, 120, 105, 177, 157, 44, 45, 70, 130, 60, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 120, 1, 244, 6, 172, 8, 168, 12, 0, 15, 160, 26, 48, 30,
-			14, 43, 43, 39, 46, 32, 15, 7, 167, 197, 120, 120, 120, 120, 167, 197, 120, 44, 45, 70, 130, 60, 170, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 56, 1, 248, 7, 220, 10, 12, 13, 0, 15,
-			160, 26, 30, 27, 12, 42, 35, 29, 35, 29, 13, 6, 167, 200, 120, 120, 120, 120, 167, 200, 120, 44, 45, 70, 130, 60, 170, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 56, 1, 248, 7, 220, 10,
-			52, 13, 0, 15, 160, 26, 0, 21, 11, 37, 28, 28, 28, 23, 12, 5, 167, 200, 120, 120, 120, 120, 167, 200, 120, 44, 45, 70, 130, 60,
-			170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 7, 0, 1, 0,
-			232, 0, 218, 2, 222, 3, 60, 10, 224, 11, 222, 13, 160, 28, 40, 57, 32, 56, 70, 33, 33, 22, 9, 7, 230, 150, 120, 120, 120, 120,
-			185, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 232, 0, 158, 2, 178, 3, 60, 10, 224, 11, 222, 13, 32, 28, 49, 114, 28, 81, 103, 42, 43, 28, 15, 6, 182, 150,
-			120, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 228, 0, 138, 2, 222, 3, 14, 10, 232, 11, 244, 13, 10, 28, 65, 105, 30, 83, 101, 46, 44, 29,
-			16, 7, 181, 145, 123, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 37, 0, 184, 0, 209, 1, 106, 5, 112, 8, 48, 12, 191, 14, 64, 27, 22, 49, 37, 68,
-			39, 59, 39, 22, 15, 7, 167, 100, 152, 120, 120, 120, 137, 115, 167, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 208, 0, 149, 1, 246, 6, 112, 8, 128, 12, 191, 14, 64, 27,
-			48, 45, 32, 57, 36, 60, 35, 23, 14, 7, 155, 105, 150, 120, 120, 120, 125, 150, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 160, 0, 54, 1, 199, 7, 136, 9, 228, 12,
-			191, 14, 64, 27, 26, 36, 25, 53, 36, 30, 41, 27, 16, 7, 155, 105, 135, 120, 120, 120, 125, 105, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 160, 0, 54, 1, 210, 7,
-			252, 8, 92, 13, 35, 15, 64, 28, 0, 25, 27, 45, 27, 21, 33, 22, 13, 8, 157, 105, 135, 120, 120, 120, 82, 105, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 5, 0,
-			1, 0, 88, 1, 128, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 46, 46, 33, 54, 65, 48, 36, 27, 9, 8, 255, 150, 180, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 88, 1, 133, 2, 169, 6, 216, 9, 192, 13, 185, 15, 32, 29, 61, 85, 45, 74, 89, 66, 50, 38, 13, 8,
-			255, 150, 180, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 36, 1, 64, 2, 241, 5, 12, 9, 148, 12, 20, 15, 173, 28, 48, 56, 30, 66, 71, 45,
-			36, 29, 13, 7, 222, 132, 153, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 174, 1, 156, 4, 172, 8, 204, 11, 141, 14, 224, 28, 46, 36,
-			26, 61, 37, 26, 17, 15, 8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 134, 1, 189, 3, 92, 8, 204, 11, 141, 14,
-			224, 28, 0, 29, 25, 53, 35, 20, 14, 11, 8, 7, 155, 120, 75, 120, 120, 120, 110, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 195, 0, 4, 0, 1, 0, 112, 0, 120, 1,
-			235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 45, 28, 23, 48, 46, 43, 40, 28, 15, 6, 168, 135, 148, 120, 120, 120, 107, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			112, 0, 120, 1, 235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 75, 39, 27, 58, 54, 51, 47, 34, 18, 7, 168, 135, 148, 120, 120, 120,
-			107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 112, 0, 120, 1, 235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 75, 35, 25, 55, 51, 48, 45, 32, 17, 6, 168, 135,
-			148, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 112, 0, 120, 1, 235, 5, 156, 9, 208, 12, 60, 15, 90, 26, 0, 28, 23, 48, 46, 43, 40, 28,
-			15, 6, 168, 135, 148, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 105, 0, 4, 0, 1, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27,
-			30, 13, 18, 34, 28, 16, 14, 14, 5, 3, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 116, 0, 13, 2, 161, 5, 232, 8, 188, 12,
-			116, 14, 96, 27, 45, 16, 20, 38, 32, 18, 16, 16, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 13, 2, 161, 5,
-			232, 8, 188, 12, 116, 14, 96, 27, 30, 16, 20, 38, 32, 18, 16, 16, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0,
-			13, 2, 161, 5, 232, 8, 188, 12, 116, 14, 96, 27, 0, 11, 15, 29, 35, 19, 20, 16, 8, 4, 167, 150, 135, 120, 120, 120, 197, 120,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			80, 0, 4, 0, 1, 0, 104, 0, 44, 1, 172, 5, 84, 11, 12, 13, 135, 15, 32, 28, 0, 32, 17, 53, 34, 32, 55, 26, 8, 0,
-			150, 120, 150, 120, 120, 120, 120, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 11, 0, 104, 0, 44, 1, 172, 5, 84, 11, 12, 13, 135, 15, 32, 28, 40, 23, 14, 45, 29, 27,
-			47, 22, 7, 0, 150, 120, 150, 120, 120, 120, 120, 105, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 9, 0, 136, 0, 184, 1, 48, 6, 84, 11, 92, 13, 210, 15, 32, 28, 40, 14,
-			13, 41, 31, 28, 27, 13, 5, 0, 150, 105, 150, 120, 120, 120, 120, 45, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 136, 0, 104, 1, 152, 8, 84, 11, 32, 13, 210, 15,
-			32, 28, 0, 76, 20, 78, 80, 78, 76, 34, 10, 0, 150, 150, 120, 120, 120, 120, 120, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 103, 0, 4, 0, 5, 0, 236, 0, 124, 1,
-			12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 40, 14, 48, 29, 21, 13, 11, 13, 7, 0, 120, 60, 90, 120, 120, 120, 30, 135, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 7, 0,
-			236, 0, 144, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 15, 12, 46, 28, 22, 16, 14, 16, 10, 0, 120, 60, 90, 120, 120, 120,
-			30, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 236, 0, 164, 1, 122, 7, 80, 10, 172, 13, 235, 15, 128, 27, 49, 9, 28, 24, 31, 32, 28, 18, 6, 0, 120, 75,
-			90, 120, 120, 120, 30, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 204, 0, 144, 1, 97, 8, 20, 10, 92, 13, 135, 15, 128, 27, 0, 66, 51, 66, 65, 81, 81, 52,
-			12, 0, 120, 105, 150, 120, 120, 120, 45, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 140, 0, 3, 0, 1, 0, 148, 0, 128, 1, 32, 8, 60, 10, 42, 13, 50, 15, 96, 25,
-			50, 6, 8, 21, 26, 24, 23, 14, 6, 2, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 52, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 148, 0, 128, 1, 32, 8, 60, 10, 42, 13,
-			50, 15, 96, 25, 90, 7, 8, 22, 28, 25, 24, 15, 6, 2, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70, 130, 54, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 148, 0, 128, 1, 32, 8,
-			60, 10, 42, 13, 50, 15, 96, 25, 0, 1, 4, 11, 14, 12, 12, 7, 3, 1, 160, 92, 120, 143, 120, 120, 130, 95, 120, 44, 45, 70,
-			130, 46, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 175, 0, 4, 0,
-			1, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 45, 50, 29, 56, 64, 39, 34, 24, 17, 5, 164, 141, 150, 120,
-			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 70, 109, 43, 83, 95, 57, 51, 36, 26, 8,
-			164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 60, 88, 39, 75, 85, 51,
-			46, 32, 23, 7, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 240, 1, 204, 3, 196, 9, 104, 12, 166, 14, 204, 26, 0, 44,
-			27, 53, 60, 36, 32, 23, 16, 5, 164, 141, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 120, 0, 7, 0, 33, 0, 152, 0, 32, 1, 224, 8, 4, 11,
-			52, 13, 0, 15, 160, 26, 52, 43, 6, 65, 57, 58, 58, 28, 13, 6, 175, 105, 120, 120, 120, 120, 175, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 24, 1,
-			232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 50, 69, 9, 81, 72, 72, 73, 35, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 40, 50, 8, 69, 61, 61, 62, 30, 14, 7, 167, 105, 120, 120, 120, 120,
-			167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 30, 44, 7, 65, 57, 58, 58, 28, 13, 6, 167, 105,
-			120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 24, 1, 252, 8, 4, 11, 52, 13, 0, 15, 160, 26, 48, 62, 9, 77, 68, 69, 69, 33,
-			16, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 24, 1, 252, 8, 4, 11, 12, 13, 216, 14, 64, 26, 60, 44, 9, 58,
-			58, 61, 62, 33, 11, 8, 167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 84, 0, 200, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26,
-			0, 21, 7, 40, 41, 38, 39, 22, 9, 8, 175, 105, 105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0, 141, 0, 80, 1, 244, 6,
-			236, 9, 32, 13, 160, 15, 104, 25, 45, 40, 9, 60, 53, 53, 51, 31, 11, 9, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 141, 0,
-			80, 1, 244, 6, 236, 9, 32, 13, 160, 15, 104, 25, 80, 64, 12, 76, 68, 68, 65, 39, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 143, 0, 66, 1, 116, 7, 51, 10, 27, 13, 109, 15, 159, 25, 80, 48, 10, 64, 59, 60, 58, 34, 12, 10, 172, 113, 125, 121,
-			121, 129, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 152, 0, 24, 1, 232, 8, 4, 11, 12, 13, 216, 14, 64, 26, 45, 39, 9, 55, 55, 58, 59, 31, 11, 7,
-			167, 105, 120, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 84, 0, 200, 0, 94, 9, 4, 11, 32, 13, 60, 15, 64, 26, 0, 22, 8, 41, 41, 39,
-			40, 23, 10, 8, 175, 105, 105, 120, 120, 120, 175, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182,
-			200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0, 1, 0, 84, 0, 104, 1, 180, 5, 212, 8, 148, 12, 41, 14,
-			64, 26, 42, 51, 17, 72, 57, 40, 40, 37, 11, 8, 162, 150, 135, 120, 120, 120, 102, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 84, 0, 104, 1, 140, 5, 212, 8,
-			148, 12, 116, 14, 192, 25, 40, 79, 21, 87, 82, 73, 57, 52, 18, 8, 167, 135, 135, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 88, 0, 96, 1,
-			120, 5, 172, 8, 148, 12, 116, 14, 192, 25, 50, 74, 22, 89, 68, 70, 52, 50, 20, 8, 167, 120, 135, 120, 120, 120, 107, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			109, 0, 64, 1, 113, 4, 187, 8, 23, 12, 121, 14, 244, 25, 67, 49, 11, 68, 57, 41, 37, 33, 15, 8, 165, 135, 138, 120, 120, 120,
-			162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 84, 0, 34, 1, 255, 3, 172, 8, 28, 12, 116, 14, 192, 25, 0, 30, 16, 57, 35, 17, 20, 20, 10, 8, 165, 135,
-			135, 120, 120, 120, 105, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 235, 0, 6, 0, 1, 0, 0, 1, 43, 2, 64, 6, 243, 9, 229, 12, 226, 14, 112, 28, 45, 37, 27, 53,
-			51, 46, 38, 25, 10, 5, 222, 133, 154, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 19, 0, 0, 1, 43, 2, 241, 5, 243, 9, 229, 12, 226, 14, 112, 28,
-			40, 46, 31, 59, 57, 52, 42, 28, 11, 6, 222, 133, 154, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 162, 0, 16, 2, 16, 4, 216, 9, 58, 12,
-			176, 14, 121, 27, 40, 48, 30, 55, 67, 39, 35, 26, 16, 6, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 162, 0, 16, 2, 16, 4,
-			216, 9, 58, 12, 176, 14, 121, 27, 70, 54, 32, 58, 71, 41, 37, 27, 16, 6, 169, 143, 139, 120, 120, 120, 197, 135, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 162, 0,
-			16, 2, 16, 4, 216, 9, 58, 12, 176, 14, 121, 27, 40, 60, 34, 62, 74, 43, 39, 28, 17, 6, 169, 143, 139, 120, 120, 120, 197, 135,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			1, 0, 162, 0, 16, 2, 16, 4, 216, 9, 58, 12, 176, 14, 121, 27, 0, 38, 27, 49, 59, 34, 31, 23, 14, 5, 169, 143, 139, 120,
-			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0,
-			0, 250, 0, 0, 255, 0, 5, 0, 1, 0, 243, 0, 200, 1, 8, 7, 216, 9, 28, 13, 170, 14, 164, 28, 45, 36, 23, 48, 54, 53,
-			41, 30, 9, 6, 214, 120, 143, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 237, 0, 196, 1, 174, 6, 202, 9, 27, 13, 183, 14, 116, 28, 70, 57,
-			27, 62, 67, 63, 49, 38, 12, 8, 210, 120, 140, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 183, 0, 160, 1, 123, 3, 71, 9, 14, 13, 46, 15,
-			193, 26, 80, 82, 23, 87, 71, 32, 30, 40, 15, 9, 181, 124, 113, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 176, 0, 88, 1, 32, 3, 56, 9,
-			12, 13, 60, 15, 144, 26, 60, 64, 3, 86, 50, 25, 25, 36, 14, 9, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0, 88, 1,
-			32, 3, 56, 9, 12, 13, 60, 15, 144, 26, 0, 31, 2, 60, 35, 17, 17, 25, 10, 6, 177, 125, 110, 120, 120, 120, 177, 125, 125, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 255, 0,
-			5, 0, 1, 0, 168, 0, 16, 2, 112, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 52, 20, 51, 63, 38, 35, 17, 13, 5, 167, 135,
-			150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 3, 0, 195, 0, 156, 2, 68, 4, 108, 10, 97, 12, 235, 14, 60, 27, 70, 83, 34, 75, 82, 52, 45, 26,
-			16, 6, 201, 149, 155, 130, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 231, 0, 105, 3, 125, 5, 136, 10, 178, 13, 105, 15, 97, 27, 80, 78, 43, 85,
-			82, 54, 44, 30, 14, 5, 246, 167, 162, 143, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10, 216, 13, 120, 15, 102, 27,
-			60, 83, 41, 81, 77, 51, 41, 29, 13, 5, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 236, 0, 128, 3, 160, 5, 140, 10, 216, 13,
-			120, 15, 102, 27, 0, 56, 34, 67, 63, 42, 34, 23, 11, 4, 251, 170, 163, 145, 120, 120, 255, 174, 173, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 20, 0, 3, 0, 5, 0, 136, 0,
-			216, 1, 64, 6, 32, 8, 128, 12, 100, 15, 124, 21, 20, 14, 3, 36, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212,
-			187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			1, 0, 136, 0, 216, 1, 64, 6, 32, 8, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0, 200, 212, 187, 187,
-			205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 136, 0, 216, 1, 64, 6, 32, 8, 128, 12, 100, 15, 124, 21, 0, 11, 3, 32, 21, 7, 3, 7, 0, 0,
-			200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 20, 0, 3, 0, 5, 0, 136, 0, 8, 2, 120, 5, 148, 7, 128, 12, 100, 15, 124, 21, 20, 4,
-			4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 136, 0, 8, 2, 120, 5, 148, 7, 128, 12, 100, 15,
-			124, 21, 0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 8, 2, 120, 5, 148, 7,
-			128, 12, 100, 15, 124, 21, 0, 4, 4, 20, 16, 8, 4, 8, 0, 0, 200, 212, 187, 187, 205, 175, 200, 212, 187, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 8, 1, 23, 0, 255, 2,
-			250, 255, 251, 0, 253, 255, 253, 252, 1, 2, 2, 1, 253, 8, 5, 6, 7, 14, 13, 12, 17, 13, 16, 5, 164, 135, 240, 0, 35, 45,
-			3, 43, 36, 3, 19, 0, 247, 11, 247, 252, 12, 228, 242, 255, 240, 250, 251, 3, 3, 244, 8, 13, 1, 248, 3, 3, 2, 25, 11, 0,
-			16, 22, 6, 22, 212, 179, 243, 250, 37, 8, 255, 19, 4, 12, 254, 239, 7, 240, 219, 252, 239, 251, 42, 29, 42, 28, 15, 28, 249, 214,
-			226, 225, 240, 240, 240, 15, 9, 245, 23, 14, 4, 246, 238, 11, 21, 16, 5, 249, 251, 23, 6, 9, 5, 248, 241, 251, 246, 255, 227, 234,
-			255, 5, 20, 13, 0, 253, 252, 247, 42, 12, 247, 248, 6, 30, 30, 0, 3, 18, 191, 220, 208, 229, 20, 255, 12, 19, 5, 53, 25, 245,
-			19, 215, 7, 47, 251, 12, 213, 238, 248, 247, 4, 229, 37, 250, 228, 246, 12, 20, 37, 3, 230, 33, 231, 223, 243, 40, 76, 233, 219, 36,
-			242, 246, 242, 41, 16, 230, 220, 215, 0, 21, 251, 224, 251, 54, 217, 217, 22, 40, 26, 42, 59, 27, 220, 15, 72, 244, 207, 167, 168, 209,
-			3, 239, 12, 33, 63, 6, 218, 45, 55, 222, 243, 44, 11, 241, 23, 29, 247, 250, 16, 193, 238, 25, 218, 204, 251, 37, 16, 218, 24, 18,
-			213, 50, 43, 230, 3, 22, 230, 243, 4, 43, 25, 243, 18, 232, 222, 32, 6, 226, 228, 242, 229, 212, 50, 0, 5, 0, 1, 0, 132, 0,
-			24, 1, 12, 8, 36, 9, 228, 12, 96, 14, 100, 25, 45, 35, 17, 54, 37, 31, 34, 31, 8, 11, 160, 90, 135, 120, 120, 120, 160, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 132, 0, 24, 1, 188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 50, 68, 24, 76, 51, 44, 48, 44, 12, 16, 167, 90, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 168, 7, 36, 9, 228, 12, 96, 14, 100, 25, 85, 55, 21, 68, 46, 39, 43, 39, 10, 14,
-			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 40, 43, 19, 60, 41, 35,
-			38, 35, 9, 12, 165, 90, 135, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 188, 7, 36, 9, 228, 12, 96, 14, 100, 25, 0, 29,
-			15, 50, 34, 29, 31, 29, 7, 10, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 144, 0, 128, 1, 128, 7, 176, 9,
-			248, 12, 0, 15, 160, 26, 45, 42, 23, 60, 54, 54, 54, 26, 12, 6, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 128, 1,
-			128, 7, 176, 9, 248, 12, 0, 15, 160, 26, 70, 81, 32, 84, 76, 76, 75, 36, 17, 8, 167, 105, 120, 120, 120, 120, 167, 90, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			144, 0, 128, 1, 128, 7, 176, 9, 248, 12, 0, 15, 160, 26, 60, 65, 28, 75, 68, 68, 67, 32, 15, 7, 167, 105, 120, 120, 120, 120,
-			167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 152, 0, 128, 1, 128, 7, 136, 9, 32, 13, 0, 15, 160, 26, 0, 35, 19, 56, 50, 50, 51, 24, 11, 5, 167, 105,
-			120, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 135, 0, 120, 1, 4, 6, 212, 8, 72, 13, 0, 15, 50, 25, 45, 40, 14, 59,
-			47, 56, 44, 26, 10, 5, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 135, 0, 104, 1, 4, 6, 172, 8, 72, 13, 0, 15, 50, 25,
-			70, 73, 20, 80, 64, 68, 60, 36, 13, 8, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 135, 0, 104, 1, 4, 6, 192, 8, 72, 13,
-			0, 15, 50, 25, 60, 59, 18, 72, 57, 61, 54, 32, 12, 7, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 135, 0, 104, 1, 24, 6,
-			232, 8, 72, 13, 0, 15, 50, 25, 0, 30, 12, 51, 40, 43, 38, 23, 8, 5, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 115, 0, 3, 0,
-			1, 0, 160, 0, 75, 2, 220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 45, 53, 37, 66, 63, 47, 41, 27, 15, 6, 171, 143, 165, 121,
-			122, 125, 171, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 160, 0, 75, 2, 220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 70, 85, 48, 84, 80, 60, 52, 34, 20, 8,
-			171, 143, 165, 121, 122, 125, 171, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 75, 2, 220, 5, 252, 8, 148, 12, 165, 15, 199, 27, 0, 68, 43, 75, 72, 54,
-			46, 31, 18, 7, 171, 143, 165, 121, 122, 125, 171, 120, 172, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 205, 0, 4, 0, 1, 0, 248, 0, 152, 2, 232, 3, 160, 10, 216, 12, 109, 14,
-			87, 27, 45, 50, 25, 54, 60, 33, 35, 31, 9, 5, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 152, 2, 232, 3, 160, 10,
-			216, 12, 109, 14, 87, 27, 90, 91, 34, 73, 81, 45, 47, 42, 12, 7, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 248, 0, 144, 2,
-			252, 3, 140, 10, 216, 12, 109, 14, 87, 27, 70, 73, 31, 67, 74, 41, 43, 38, 11, 6, 167, 148, 135, 120, 120, 120, 167, 145, 131, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			248, 0, 144, 2, 16, 4, 80, 10, 168, 12, 109, 14, 87, 27, 0, 46, 25, 54, 60, 33, 35, 31, 9, 5, 167, 148, 135, 120, 120, 120,
-			167, 145, 131, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 67, 8, 23, 0, 1, 5, 2, 0, 254, 252, 253, 251, 251, 248, 247, 250, 1, 12, 15, 13, 5, 0, 248, 241, 243, 249, 255, 0,
-			8, 22, 34, 38, 35, 30, 23, 10, 1, 251, 238, 223, 220, 231, 239, 243, 247, 253, 251, 246, 252, 0, 249, 238, 235, 237, 242, 254, 4, 0,
-			243, 239, 245, 249, 253, 1, 10, 18, 21, 22, 24, 34, 43, 47, 42, 36, 32, 30, 25, 13, 2, 254, 254, 0, 11, 28, 37, 34, 33, 32,
-			24, 15, 9, 5, 249, 242, 245, 242, 219, 197, 197, 210, 219, 221, 226, 244, 17, 48, 58, 44, 25, 20, 20, 7, 242, 225, 224, 238, 2, 14,
-			12, 20, 40, 58, 48, 27, 18, 23, 21, 0, 231, 213, 204, 203, 210, 214, 212, 213, 234, 1, 6, 252, 251, 1, 250, 231, 217, 220, 230, 244,
-			254, 0, 253, 4, 22, 30, 21, 10, 6, 10, 13, 11, 1, 249, 255, 8, 9, 252, 244, 251, 13, 29, 33, 32, 31, 38, 44, 39, 24, 14,
-			11, 4, 249, 236, 231, 236, 244, 253, 0, 249, 242, 249, 6, 5, 246, 230, 230, 241, 248, 248, 248, 247, 248, 251, 251, 241, 230, 227, 231, 237,
-			235, 234, 234, 239, 245, 250, 246, 235, 234, 243, 246, 237, 232, 239, 249, 0, 253, 248, 242, 242, 249, 251, 243, 232, 238, 250, 5, 8, 8, 13,
-			25, 34, 31, 20, 10, 14, 26, 31, 20, 14, 22, 30, 28, 19, 20, 21, 11, 3, 12, 26, 25, 14, 9, 12, 18, 13, 5, 254, 249, 243,
-			238, 238, 239, 244, 241, 238, 243, 2, 10, 12, 15, 19, 15, 3, 250, 248, 248, 239, 230, 223, 227, 241, 2, 12, 24, 45, 60, 61, 52, 36,
-			21, 13, 13, 10, 2, 0, 5, 20, 30, 37, 29, 14, 2, 254, 251, 246, 248, 242, 228, 217, 210, 203, 198, 211, 234, 250, 0, 1, 11, 14,
-			11, 5, 253, 243, 238, 248, 1, 11, 18, 23, 20, 11, 6, 11, 14, 2, 245, 246, 2, 11, 12, 5, 8, 19, 31, 33, 22, 2, 247, 251,
-			249, 229, 213, 214, 228, 237, 239, 240, 243, 255, 12, 23, 9, 240, 223, 222, 230, 236, 237, 233, 242, 2, 16, 21, 24, 31, 45, 54, 46, 25,
-			10, 5, 0, 237, 208, 195, 202, 221, 234, 243, 251, 8, 18, 21, 20, 15, 0, 251, 253, 237, 205, 193, 212, 228, 236, 247, 16, 42, 54, 56,
-			44, 24, 8, 255, 243, 223, 219, 231, 246, 6, 19, 35, 38, 39, 42, 43, 25, 251, 238, 238, 236, 231, 234, 242, 246, 254, 16, 34, 43, 36,
-			29, 17, 4, 0, 2, 2, 252, 254, 0, 6, 8, 13, 13, 3, 242, 230, 231, 238, 244, 240, 223, 213, 226, 243, 243, 226, 222, 234, 252, 8,
-			16, 18, 14, 15, 17, 11, 252, 244, 249, 253, 251, 253, 5, 22, 31, 40, 41, 31, 19, 24, 42, 37, 18, 14, 30, 31, 9, 253, 5, 11,
-			4, 250, 245, 241, 241, 248, 246, 240, 236, 238, 237, 233, 231, 221, 208, 213, 231, 236, 211, 206, 234, 9, 26, 32, 36, 25, 30, 52, 62, 39,
-			6, 254, 254, 254, 0, 5, 9, 11, 26, 35, 34, 33, 35, 32, 12, 246, 222, 209, 201, 199, 198, 195, 201, 225, 5, 20, 10, 6, 25, 32,
-			2, 230, 227, 225, 211, 207, 221, 230, 237, 11, 43, 44, 28, 35, 57, 55, 23, 247, 236, 247, 254, 246, 229, 239, 14, 40, 46, 40, 41, 36,
-			31, 13, 243, 221, 219, 230, 232, 228, 231, 247, 7, 13, 2, 247, 253, 8, 254, 231, 229, 249, 253, 250, 255, 8, 13, 29, 54, 54, 29, 8,
-			9, 254, 230, 210, 212, 222, 231, 251, 13, 29, 33, 44, 55, 51, 29, 7, 249, 229, 216, 226, 234, 221, 209, 229, 249, 246, 253, 17, 21, 251,
-			246, 2, 3, 243, 251, 9, 254, 237, 244, 10, 12, 5, 4, 4, 2, 12, 28, 32, 26, 32, 40, 28, 5, 0, 7, 244, 210, 198, 211, 220,
-			224, 241, 6, 17, 28, 41, 46, 30, 14, 0, 235, 223, 227, 239, 235, 234, 253, 24, 39, 41, 37, 28, 20, 21, 18, 0, 236, 234, 243, 245,
-			248, 6, 14, 13, 26, 47, 46, 16, 253, 0, 0, 235, 210, 201, 199, 211, 228, 243, 249, 0, 13, 20, 13, 5, 249, 231, 216, 218, 229, 234,
-			235, 251, 19, 32, 33, 30, 28, 23, 31, 36, 22, 251, 243, 253, 238, 214, 221, 1, 21, 24, 25, 38, 40, 37, 16, 244, 219, 211, 213, 217,
-			234, 248, 253, 5, 30, 40, 7, 227, 233, 4, 253, 220, 210, 234, 253, 3, 11, 25, 16, 11, 18, 26, 5, 248, 6, 19, 4, 238, 242, 251,
-			252, 0, 12, 21, 26, 42, 56, 38, 10, 2, 9, 1, 234, 226, 218, 213, 214, 234, 240, 226, 224, 4, 35, 44, 55, 82, 77, 26, 233, 218,
-			207, 181, 171, 185, 194, 188, 216, 21, 62, 53, 40, 65, 86, 80, 50, 26, 255, 228, 217, 214, 202, 196, 224, 13, 38, 43, 50, 68, 80, 62,
-			25, 249, 230, 219, 197, 176, 172, 188, 212, 248, 27, 47, 43, 49, 67, 68, 24, 233, 223, 237, 233, 211, 199, 209, 231, 5, 34, 42, 31, 36,
-			63, 75, 43, 246, 224, 227, 227, 209, 205, 215, 231, 250, 9, 27, 30, 39, 44, 36, 12, 255, 253, 251, 236, 220, 203, 192, 191, 213, 240, 252,
-			254, 8, 36, 58, 63, 55, 45, 40, 33, 10, 223, 195, 211, 243, 245, 212, 211, 252, 35, 37, 25, 27, 27, 29, 31, 34, 13, 236, 230, 237,
-			222, 194, 197, 228, 243, 253, 23, 48, 43, 40, 56, 45, 3, 238, 254, 251, 220, 205, 214, 214, 211, 236, 2, 2, 0, 21, 42, 34, 19, 16,
-			14, 247, 229, 231, 249, 249, 236, 235, 251, 8, 9, 15, 28, 32, 33, 39, 50, 36, 3, 232, 223, 232, 233, 224, 213, 232, 3, 20, 28, 49,
-			63, 46, 15, 2, 243, 211, 199, 208, 205, 180, 194, 245, 33, 29, 27, 35, 41, 35, 27, 15, 242, 218, 224, 244, 237, 209, 218, 6, 31, 18,
-			13, 44, 56, 41, 41, 54, 32, 244, 234, 246, 231, 199, 192, 211, 227, 252, 34, 48, 38, 42, 75, 80, 37, 240, 233, 239, 224, 188, 182, 204,
-			225, 244, 11, 27, 24, 32, 56, 56, 16, 238, 237, 240, 228, 220, 230, 226, 226, 248, 24, 25, 8, 16, 34, 23, 255, 253, 8, 1, 248, 1,
-			10, 12, 13, 26, 22, 2, 245, 245, 246, 243, 239, 228, 228, 242, 6, 9, 16, 27, 42, 34, 29, 28, 23, 244, 202, 173, 168, 174, 190, 219,
-			235, 250, 21, 85, 125, 114, 68, 41, 30, 5, 218, 189, 180, 168, 172, 207, 10, 34, 36, 52, 96, 110, 84, 39, 4, 226, 204, 194, 179, 162,
-			168, 215, 5, 29, 38, 47, 60, 59, 49, 23, 245, 213, 191, 190, 197, 205, 209, 221, 255, 42, 80, 84, 67, 48, 35, 20, 254, 228, 205, 188,
-			194, 223, 244, 244, 0, 30, 51, 52, 51, 56, 48, 31, 14, 250, 217, 192, 201, 211, 218, 216, 229, 255, 27, 43, 44, 39, 45, 56, 50, 13,
-			235, 227, 231, 220, 196, 191, 196, 198, 219, 20, 62, 50, 36, 70, 105, 74, 19, 3, 1, 217, 179, 186, 210, 203, 211, 245, 18, 9, 13, 42,
-			67, 57, 43, 31, 8, 243, 239, 238, 215, 192, 194, 224, 244, 251, 0, 13, 24, 25, 23, 16, 11, 3, 2, 2, 251, 245, 252, 3, 5, 3,
-			10, 12, 6, 251, 245, 247, 253, 2, 0, 2, 22, 46, 43, 16, 5, 14, 21, 14, 252, 238, 217, 210, 219, 233, 229, 217, 228, 9, 47, 46,
-			25, 15, 18, 14, 251, 229, 212, 202, 211, 243, 9, 0, 253, 28, 53, 42, 14, 16, 26, 15, 255, 247, 239, 219, 216, 239, 1, 0, 246, 3,
-			31, 55, 50, 24, 6, 11, 24, 6, 225, 205, 218, 240, 246, 247, 249, 255, 7, 24, 36, 20, 245, 246, 0, 249, 216, 214, 245, 3, 244, 240,
-			0, 6, 6, 15, 27, 21, 7, 19, 37, 19, 233, 214, 224, 232, 221, 218, 235, 6, 20, 43, 60, 56, 34, 27, 36, 36, 9, 239, 224, 220,
-			213, 212, 210, 224, 4, 42, 52, 34, 40, 56, 58, 22, 241, 219, 206, 196, 205, 217, 215, 212, 233, 11, 19, 9, 11, 37, 42, 28, 16, 10,
-			255, 240, 244, 243, 230, 216, 239, 6, 5, 251, 2, 22, 37, 35, 28, 5, 250, 4, 20, 10, 249, 0, 15, 13, 255, 252, 248, 232, 228, 246,
-			1, 243, 239, 16, 45, 38, 13, 0, 253, 241, 236, 232, 224, 213, 233, 0, 4, 5, 28, 46, 40, 29, 23, 18, 253, 235, 221, 201, 196, 224,
-			254, 14, 26, 41, 49, 40, 33, 18, 251, 224, 222, 229, 229, 230, 243, 0, 0, 250, 1, 17, 21, 10, 10, 20, 25, 18, 7, 249, 235, 237,
-			0, 1, 234, 221, 247, 17, 12, 254, 1, 6, 12, 16, 25, 10, 245, 244, 9, 5, 235, 218, 223, 240, 255, 8, 8, 9, 19, 35, 31, 12,
-			0, 253, 241, 233, 231, 235, 247, 7, 23, 16, 255, 251, 8, 21, 24, 16, 255, 246, 255, 13, 7, 243, 228, 227, 236, 246, 250, 249, 246, 0,
-			7, 11, 14, 24, 26, 28, 33, 32, 10, 243, 236, 239, 225, 205, 212, 240, 4, 7, 16, 35, 51, 46, 35, 27, 6, 238, 228, 233, 230, 220,
-			226, 248, 8, 15, 24, 27, 22, 14, 7, 248, 234, 233, 232, 220, 214, 223, 237, 247, 5, 18, 16, 11, 27, 44, 40, 23, 17, 15, 11, 3,
-			251, 238, 227, 227, 231, 226, 227, 250, 23, 41, 47, 52, 58, 54, 36, 13, 241, 210, 199, 208, 214, 207, 214, 253, 36, 49, 46, 46, 36, 21,
-			13, 0, 223, 195, 202, 219, 210, 196, 213, 244, 2, 8, 16, 24, 29, 42, 45, 25, 0, 252, 255, 246, 228, 223, 237, 0, 22, 31, 26, 21,
-			31, 43, 38, 12, 243, 233, 238, 247, 251, 237, 221, 230, 4, 20, 14, 6, 14, 21, 19, 13, 4, 247, 240, 240, 236, 227, 230, 245, 1, 4,
-			4, 1, 5, 15, 25, 18, 1, 248, 252, 252, 243, 228, 219, 224, 238, 253, 5, 17, 33, 50, 52, 37, 15, 0, 246, 234, 221, 207, 200, 210,
-			238, 7, 15, 20, 34, 48, 55, 54, 44, 23, 4, 254, 245, 227, 215, 225, 236, 243, 252, 14, 24, 29, 37, 41, 24, 0, 249, 250, 237, 215,
-			201, 195, 200, 217, 240, 245, 241, 249, 16, 33, 31, 22, 15, 9, 7, 13, 10, 250, 238, 248, 9, 7, 254, 0, 9, 14, 26, 39, 39, 31,
-			38, 49, 38, 16, 10, 7, 246, 228, 226, 223, 217, 227, 249, 254, 242, 242, 1, 5, 253, 244, 240, 236, 238, 249, 1, 253, 248, 0, 8, 3,
-			248, 249, 3, 7, 6, 6, 8, 13, 29, 38, 23, 0, 252, 6, 6, 251, 239, 236, 241, 3, 20, 20, 11, 16, 31, 34, 12, 244, 234, 233,
-			228, 219, 212, 213, 226, 246, 3, 0, 251, 255, 4, 0, 243, 230, 224, 228, 244, 255, 1, 6, 23, 42, 45, 36, 26, 21, 18, 12, 4, 254,
-			253, 3, 11, 13, 9, 10, 18, 22, 17, 11, 8, 5, 0, 251, 247, 244, 247, 252, 255, 0, 5, 10, 13, 12, 3, 245, 231, 226, 223, 217,
-			215, 217, 220, 223, 230, 236, 242, 251, 4, 8, 4, 0, 0, 4, 5, 1, 251, 246, 244, 251, 8, 16, 12, 9, 14, 21, 23, 24, 25, 20,
-			12, 9, 10, 6, 1, 2, 7, 10, 15, 25, 35, 34, 26, 19, 12, 0, 243, 233, 222, 214, 217, 235, 0, 11, 18, 23, 29, 34, 29, 10,
-			244, 225, 210, 199, 197, 204, 217, 230, 244, 3, 22, 40, 49, 50, 44, 36, 26, 17, 8, 249, 234, 228, 235, 245, 0, 6, 16, 33, 57, 65,
-			50, 32, 26, 21, 1, 236, 227, 232, 242, 250, 0, 8, 20, 31, 35, 27, 11, 252, 245, 237, 222, 203, 193, 191, 197, 206, 215, 219, 232, 254,
-			16, 19, 15, 14, 15, 11, 253, 233, 218, 219, 229, 240, 250, 3, 16, 35, 55, 62, 54, 43, 38, 32, 21, 7, 254, 250, 255, 6, 8, 6,
-			14, 30, 41, 36, 24, 13, 6, 254, 236, 214, 199, 197, 204, 211, 211, 211, 217, 228, 232, 223, 215, 0, 185, 0, 4, 0, 1, 0, 147, 0,
-			22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 45, 41, 10, 62, 52, 48, 52, 29, 12, 8, 167, 101, 123, 120, 120, 120, 167, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 70, 75, 14, 84, 71, 65, 70, 39, 16, 10, 167, 101, 123, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 70, 61, 12, 76, 63, 58, 63, 35, 15, 9,
-			167, 101, 123, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 0, 30, 8, 54, 45, 41,
-			45, 25, 10, 6, 167, 101, 123, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 160, 0, 248, 1, 60, 5, 172, 8, 228, 12, 246, 14,
-			95, 27, 45, 43, 27, 55, 64, 43, 40, 30, 16, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 160, 0, 248, 1, 60, 5, 172, 8,
-			228, 12, 246, 14, 95, 27, 60, 72, 36, 72, 84, 56, 52, 38, 21, 8, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 160, 0, 248, 1,
-			60, 5, 172, 8, 228, 12, 246, 14, 95, 27, 60, 60, 32, 65, 76, 50, 47, 35, 19, 7, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			160, 0, 248, 1, 60, 5, 172, 8, 228, 12, 246, 14, 95, 27, 0, 36, 28, 50, 58, 39, 36, 27, 15, 5, 170, 133, 127, 122, 124, 128,
-			197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 45, 0, 4, 0, 1, 0, 122, 0, 136, 1, 180, 5, 132, 8, 228, 12, 246, 14, 95, 27, 45, 41, 18, 54, 67, 39, 42, 29,
-			16, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 122, 0, 136, 1, 180, 5, 132, 8, 228, 12, 246, 14, 95, 27, 97, 72, 24, 72,
-			88, 52, 55, 38, 21, 8, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 122, 0, 136, 1, 120, 5, 112, 8, 228, 12, 246, 14, 95, 27,
-			73, 62, 21, 68, 79, 47, 43, 35, 19, 7, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 122, 0, 152, 1, 79, 5, 153, 8, 228, 12,
-			246, 14, 95, 27, 0, 39, 23, 54, 57, 37, 34, 23, 11, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 24, 1,
-			248, 2, 236, 4, 196, 9, 112, 13, 40, 15, 153, 28, 45, 48, 28, 57, 63, 46, 37, 28, 10, 6, 215, 138, 143, 120, 120, 120, 237, 165,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 24, 1, 248, 2, 236, 4, 196, 9, 112, 13, 40, 15, 153, 28, 60, 83, 38, 76, 83, 60, 48, 37, 13, 8, 215, 138, 143, 120,
-			120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 24, 1, 248, 2, 20, 5, 196, 9, 112, 13, 40, 15, 153, 28, 60, 73, 36, 72, 79, 57, 46, 35, 13, 7,
-			215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 24, 1, 248, 2, 40, 5, 196, 9, 112, 13, 40, 15, 153, 28, 0, 40, 26, 53, 59, 43,
-			34, 26, 9, 5, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 175, 0, 4, 0, 1, 0, 132, 0, 67, 1, 240, 5, 92, 8, 228, 12, 96, 14,
-			100, 25, 45, 41, 18, 63, 40, 35, 37, 34, 9, 12, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 67, 1, 240, 5, 92, 8,
-			228, 12, 96, 14, 100, 25, 70, 66, 22, 80, 51, 44, 48, 44, 12, 16, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 132, 0, 67, 1,
-			240, 5, 112, 8, 228, 12, 96, 14, 100, 25, 60, 58, 21, 75, 48, 41, 45, 41, 11, 15, 167, 105, 135, 120, 120, 120, 167, 112, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			132, 0, 67, 1, 240, 5, 112, 8, 228, 12, 96, 14, 100, 25, 0, 41, 18, 63, 40, 35, 37, 34, 9, 12, 167, 105, 135, 120, 120, 120,
-			167, 112, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 210, 0, 5, 0, 1, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25, 45, 42, 15, 62, 40, 34, 37, 34,
-			9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25, 60, 69, 20, 80,
-			51, 44, 48, 44, 12, 16, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 132, 0, 16, 1, 240, 5, 52, 8, 228, 12, 96, 14, 100, 25,
-			70, 62, 19, 76, 49, 42, 45, 41, 11, 15, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 24, 1, 24, 6, 72, 8, 228, 12,
-			96, 14, 100, 25, 35, 41, 15, 62, 40, 34, 37, 34, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 132, 0, 24, 1, 24, 6,
-			72, 8, 228, 12, 96, 14, 100, 25, 0, 36, 14, 58, 37, 32, 35, 32, 8, 11, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 235, 0, 5, 0,
-			1, 0, 8, 1, 8, 3, 60, 5, 236, 9, 32, 13, 191, 14, 64, 27, 45, 53, 34, 66, 72, 43, 43, 31, 4, 6, 167, 135, 165, 120,
-			120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 8, 1, 8, 3, 60, 5, 236, 9, 32, 13, 191, 14, 64, 27, 80, 103, 48, 92, 100, 60, 60, 44, 6, 8,
-			167, 135, 165, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 254, 0, 222, 2, 146, 5, 252, 9, 44, 13, 189, 14, 86, 27, 70, 92, 46, 88, 95, 60,
-			58, 43, 7, 8, 167, 130, 168, 120, 120, 120, 167, 135, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 99, 1, 152, 8, 140, 10, 152, 13, 166, 14, 32, 28, 40, 43,
-			32, 55, 49, 58, 45, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 99, 1, 174, 8, 160, 10, 92, 13, 10, 15,
-			32, 28, 0, 28, 28, 44, 45, 41, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 250, 0, 5, 0, 1, 0, 122, 0, 240, 1,
-			140, 5, 132, 8, 228, 12, 246, 14, 95, 27, 45, 38, 25, 54, 60, 37, 39, 28, 15, 6, 170, 133, 127, 122, 124, 128, 197, 131, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			122, 0, 240, 1, 140, 5, 132, 8, 228, 12, 246, 14, 95, 27, 75, 74, 36, 76, 84, 52, 55, 38, 21, 8, 170, 133, 127, 122, 124, 128,
-			197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 125, 0, 218, 1, 214, 5, 191, 8, 236, 12, 247, 14, 76, 27, 60, 72, 31, 76, 82, 53, 57, 38, 21, 8, 170, 129,
-			127, 122, 124, 127, 197, 131, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 152, 0, 11, 1, 112, 8, 212, 10, 52, 13, 0, 15, 160, 26, 70, 40, 4, 64, 57, 46, 58, 28,
-			13, 6, 167, 99, 120, 120, 120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 11, 1, 112, 8, 212, 10, 52, 13, 0, 15, 160, 26, 0, 34, 3, 59,
-			53, 43, 54, 26, 12, 6, 167, 99, 120, 120, 120, 120, 167, 97, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 40, 0, 7, 0, 1, 0, 24, 1, 232, 2, 140, 5, 196, 9, 112, 13,
-			40, 15, 153, 28, 40, 50, 33, 63, 63, 48, 38, 29, 10, 6, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 24, 1, 232, 2, 140, 5,
-			196, 9, 112, 13, 40, 15, 153, 28, 35, 89, 44, 84, 84, 64, 51, 39, 14, 8, 215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 245, 0,
-			176, 2, 104, 5, 160, 9, 112, 13, 40, 15, 153, 28, 40, 81, 41, 79, 79, 53, 49, 38, 13, 8, 215, 138, 143, 120, 120, 120, 237, 165,
-			165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 195, 0, 56, 2, 122, 5, 68, 9, 112, 13, 30, 15, 83, 27, 50, 73, 33, 76, 65, 46, 53, 38, 13, 7, 201, 130, 147, 121,
-			121, 127, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 144, 0, 173, 1, 140, 5, 232, 8, 55, 13, 20, 15, 13, 26, 60, 55, 21, 69, 49, 38, 39, 32, 12, 7,
-			188, 123, 151, 122, 122, 135, 237, 165, 151, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 147, 0, 64, 1, 20, 5, 34, 9, 40, 13, 15, 15, 105, 25, 35, 37, 10, 61, 46, 28,
-			25, 18, 12, 7, 181, 109, 137, 123, 123, 139, 187, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 147, 0, 64, 1, 20, 5, 34, 9, 40, 13, 15, 15, 105, 25, 0, 29,
-			9, 54, 41, 25, 22, 16, 11, 6, 181, 109, 137, 123, 123, 139, 187, 120, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 155, 0, 4, 0, 1, 0, 133, 0, 144, 1, 64, 6, 116, 9,
-			196, 12, 151, 14, 39, 25, 50, 40, 23, 56, 50, 37, 41, 32, 12, 10, 177, 127, 132, 124, 123, 138, 187, 126, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 133, 0, 144, 1,
-			64, 6, 116, 9, 196, 12, 151, 14, 39, 25, 70, 52, 26, 64, 57, 43, 46, 37, 13, 11, 177, 127, 132, 124, 123, 138, 187, 126, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			133, 0, 144, 1, 64, 6, 116, 9, 196, 12, 151, 14, 39, 25, 35, 52, 26, 64, 57, 43, 46, 37, 13, 11, 177, 127, 132, 124, 123, 138,
-			187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 133, 0, 144, 1, 64, 6, 116, 9, 196, 12, 151, 14, 39, 25, 0, 31, 20, 50, 44, 33, 36, 28, 10, 9, 177, 127,
-			132, 124, 123, 138, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 95, 0, 4, 0, 1, 0, 135, 0, 151, 1, 220, 5, 96, 9, 188, 12, 136, 14, 153, 24, 45, 43, 21, 59,
-			56, 46, 37, 28, 10, 11, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 135, 0, 151, 1, 220, 5, 96, 9, 188, 12, 136, 14, 153, 24,
-			80, 71, 28, 76, 72, 60, 48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 135, 0, 202, 1, 233, 5, 179, 9, 188, 12,
-			136, 14, 153, 24, 50, 76, 33, 81, 72, 60, 48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 135, 0, 202, 1, 233, 5,
-			179, 9, 188, 12, 136, 14, 153, 24, 0, 76, 33, 81, 72, 60, 48, 36, 13, 14, 178, 126, 132, 123, 123, 141, 187, 126, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 4, 0,
-			1, 0, 168, 0, 232, 1, 152, 3, 136, 9, 244, 11, 141, 14, 32, 27, 45, 55, 28, 58, 65, 39, 32, 18, 13, 5, 165, 135, 150, 120,
-			120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 168, 0, 232, 1, 152, 3, 136, 9, 244, 11, 141, 14, 32, 27, 90, 109, 42, 80, 92, 59, 48, 27, 20, 8,
-			165, 135, 150, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 171, 0, 160, 1, 211, 2, 101, 9, 239, 12, 42, 15, 89, 27, 60, 57, 28, 60, 52, 27,
-			22, 14, 11, 8, 196, 108, 123, 120, 120, 120, 165, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 172, 0, 160, 1, 188, 2, 96, 9, 12, 13, 60, 15, 96, 27, 0, 36,
-			24, 48, 40, 24, 20, 12, 10, 8, 200, 105, 120, 120, 120, 120, 200, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 155, 0, 5, 0, 1, 0, 136, 0, 232, 1, 64, 6, 140, 10,
-			232, 13, 64, 16, 95, 27, 45, 44, 24, 58, 58, 43, 33, 27, 16, 6, 170, 152, 153, 122, 124, 128, 197, 152, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 136, 0, 232, 1,
-			64, 6, 140, 10, 232, 13, 64, 16, 95, 27, 60, 67, 30, 72, 72, 53, 41, 34, 20, 8, 170, 152, 153, 122, 124, 128, 197, 152, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			136, 0, 232, 1, 64, 6, 140, 10, 232, 13, 64, 16, 95, 27, 40, 60, 28, 68, 68, 50, 39, 32, 19, 7, 170, 152, 153, 122, 124, 128,
-			197, 152, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 160, 0, 136, 1, 12, 8, 60, 10, 127, 13, 159, 14, 16, 28, 50, 46, 31, 55, 51, 54, 33, 36, 10, 7, 168, 109,
-			141, 120, 120, 120, 200, 109, 141, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 160, 0, 136, 1, 12, 8, 60, 10, 127, 13, 159, 14, 16, 28, 0, 32, 26, 46, 43, 45, 27, 30,
-			8, 6, 168, 109, 141, 120, 120, 120, 200, 109, 141, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 90, 0, 4, 0, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27,
-			35, 13, 36, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 196, 0, 114, 1, 84, 4, 252, 8, 88, 12,
-			91, 14, 32, 27, 25, 13, 36, 20, 38, 12, 16, 16, 6, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 5, 0, 196, 0, 114, 1, 84, 4,
-			252, 8, 88, 12, 91, 14, 32, 27, 30, 5, 22, 11, 22, 8, 11, 11, 4, 0, 125, 60, 135, 120, 120, 120, 80, 75, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 196, 0,
-			114, 1, 84, 4, 252, 8, 88, 12, 91, 14, 32, 27, 0, 3, 19, 9, 19, 7, 9, 9, 3, 0, 125, 60, 135, 120, 120, 120, 80, 75,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			90, 0, 4, 0, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 35, 17, 40, 41, 25, 16, 13, 16, 8, 0,
-			132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 25, 14, 36, 37, 22, 14,
-			12, 14, 8, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15, 0, 27, 30, 5,
-			22, 22, 20, 12, 10, 12, 7, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 236, 0, 124, 1, 12, 7, 236, 9, 172, 13, 160, 15,
-			0, 27, 0, 3, 16, 16, 15, 9, 8, 9, 5, 0, 132, 60, 90, 120, 120, 120, 42, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 100, 0, 4, 0, 5, 0, 204, 0, 120, 1,
-			92, 8, 124, 11, 172, 13, 160, 15, 0, 27, 30, 19, 41, 45, 19, 19, 15, 15, 9, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0,
-			204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 25, 16, 39, 39, 18, 18, 15, 14, 9, 0, 135, 60, 90, 120, 120, 120,
-			45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 5, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 45, 4, 21, 21, 15, 15, 12, 12, 7, 0, 135, 60,
-			90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 37, 0, 204, 0, 120, 1, 192, 8, 28, 12, 172, 13, 160, 15, 0, 27, 0, 4, 21, 21, 15, 15, 12, 12,
-			7, 0, 135, 60, 90, 120, 120, 120, 45, 135, 105, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 95, 0, 4, 0, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14, 23, 17, 224, 23,
-			40, 17, 44, 14, 19, 10, 10, 13, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 240, 0, 13, 2, 248, 9, 124, 11, 76, 14,
-			23, 17, 224, 23, 25, 17, 44, 14, 19, 10, 10, 13, 4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 232, 0, 13, 2, 236, 9,
-			44, 11, 76, 14, 23, 17, 224, 23, 30, 5, 25, 6, 15, 8, 8, 10, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 232, 0,
-			13, 2, 236, 9, 44, 11, 76, 14, 23, 17, 224, 23, 0, 4, 22, 5, 13, 7, 7, 9, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			97, 9, 23, 0, 0, 255, 255, 254, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 254, 254, 254, 255, 255, 254, 255, 255, 254, 255,
-			0, 255, 255, 254, 255, 0, 0, 255, 255, 255, 0, 255, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 254, 255, 0, 0, 0, 0,
-			0, 0, 0, 7, 40, 43, 3, 236, 248, 2, 254, 9, 28, 28, 15, 6, 0, 251, 1, 17, 25, 17, 16, 22, 13, 9, 24, 30, 25, 29,
-			91, 77, 249, 254, 0, 245, 246, 42, 53, 24, 241, 196, 216, 250, 239, 246, 4, 245, 195, 162, 180, 212, 233, 249, 235, 204, 175, 172, 165, 194,
-			235, 223, 215, 169, 135, 191, 226, 235, 0, 249, 242, 239, 213, 191, 2, 90, 36, 246, 254, 12, 72, 57, 93, 127, 43, 26, 20, 11, 36, 68,
-			78, 30, 14, 239, 229, 46, 32, 240, 14, 37, 231, 164, 187, 7, 26, 223, 167, 175, 221, 208, 181, 182, 227, 241, 173, 188, 230, 216, 197, 211,
-			247, 213, 230, 240, 192, 228, 1, 8, 26, 5, 224, 3, 32, 24, 15, 20, 16, 23, 0, 6, 20, 4, 32, 64, 49, 40, 78, 49, 13, 11,
-			29, 50, 28, 255, 241, 20, 36, 254, 207, 251, 69, 29, 220, 197, 244, 18, 234, 202, 238, 44, 6, 161, 164, 1, 39, 17, 202, 184, 9, 25,
-			210, 178, 243, 56, 29, 215, 166, 250, 83, 246, 197, 14, 80, 17, 190, 216, 15, 58, 55, 31, 6, 243, 241, 251, 33, 38, 249, 24, 40, 233,
-			183, 219, 29, 50, 31, 245, 252, 24, 11, 222, 198, 250, 61, 38, 251, 241, 5, 18, 254, 247, 62, 62, 44, 4, 207, 214, 245, 33, 62, 32,
-			250, 252, 226, 202, 207, 241, 26, 47, 29, 187, 175, 228, 242, 236, 243, 11, 11, 228, 208, 180, 194, 235, 46, 31, 222, 220, 242, 250, 202, 215,
-			2, 47, 23, 216, 229, 253, 236, 244, 247, 242, 26, 33, 229, 193, 246, 15, 3, 5, 5, 17, 253, 236, 220, 238, 36, 23, 251, 202, 209, 11,
-			23, 248, 242, 37, 8, 193, 208, 245, 10, 31, 2, 240, 1, 254, 228, 192, 221, 16, 38, 27, 244, 253, 244, 209, 223, 0, 40, 39, 241, 239,
-			2, 10, 243, 227, 12, 44, 40, 19, 237, 230, 243, 253, 8, 0, 49, 63, 19, 249, 208, 238, 22, 21, 4, 254, 35, 13, 246, 0, 248, 251,
-			0, 10, 23, 32, 29, 254, 252, 243, 240, 16, 32, 13, 19, 38, 11, 246, 0, 251, 251, 7, 29, 41, 34, 28, 232, 231, 10, 9, 254, 4,
-			47, 48, 12, 226, 245, 27, 2, 230, 232, 35, 44, 241, 227, 247, 14, 248, 205, 235, 23, 21, 3, 3, 252, 235, 199, 213, 3, 25, 16, 5,
-			253, 4, 10, 232, 217, 248, 39, 18, 226, 248, 32, 13, 222, 197, 251, 44, 248, 236, 45, 45, 0, 220, 216, 251, 3, 4, 7, 22, 33, 252,
-			216, 243, 255, 255, 255, 245, 4, 243, 245, 1, 4, 225, 212, 241, 241, 253, 3, 2, 229, 233, 254, 227, 234, 244, 238, 236, 6, 7, 251, 237,
-			242, 247, 234, 247, 14, 2, 0, 248, 241, 238, 235, 255, 8, 17, 255, 248, 14, 18, 240, 207, 7, 63, 27, 234, 242, 20, 11, 224, 217, 1,
-			53, 20, 236, 244, 12, 26, 240, 242, 254, 21, 4, 221, 239, 29, 14, 222, 209, 7, 18, 242, 229, 230, 242, 232, 226, 254, 19, 9, 240, 222,
-			243, 2, 19, 232, 219, 17, 25, 0, 238, 29, 24, 242, 237, 255, 7, 245, 254, 23, 19, 29, 2, 221, 235, 1, 15, 2, 7, 13, 16, 242,
-			221, 229, 245, 5, 3, 231, 248, 26, 8, 206, 210, 59, 23, 203, 217, 12, 16, 204, 226, 12, 14, 241, 247, 247, 251, 246, 203, 236, 10, 28,
-			3, 249, 10, 38, 14, 225, 250, 18, 5, 235, 11, 35, 24, 5, 8, 4, 246, 1, 237, 240, 245, 239, 0, 17, 4, 231, 11, 6, 211, 223,
-			252, 19, 249, 242, 247, 8, 0, 225, 237, 248, 254, 252, 10, 10, 2, 10, 237, 243, 22, 21, 2, 4, 1, 228, 7, 21, 246, 237, 25, 31,
-			246, 246, 252, 0, 247, 254, 4, 32, 32, 15, 18, 254, 255, 231, 240, 252, 27, 21, 247, 252, 250, 14, 2, 253, 3, 250, 238, 244, 3, 254,
-			0, 9, 31, 6, 233, 243, 238, 238, 222, 245, 24, 16, 3, 8, 17, 239, 217, 234, 234, 211, 221, 15, 48, 24, 254, 251, 251, 2, 9, 236,
-			242, 6, 3, 223, 242, 29, 8, 244, 229, 13, 251, 218, 219, 241, 0, 231, 0, 42, 57, 49, 28, 29, 14, 6, 3, 12, 21, 23, 19, 35,
-			38, 12, 22, 41, 18, 238, 233, 1, 237, 222, 246, 255, 5, 1, 249, 234, 250, 247, 219, 210, 234, 5, 0, 244, 243, 11, 23, 4, 253, 4,
-			0, 237, 242, 13, 34, 7, 0, 21, 21, 11, 2, 251, 246, 3, 11, 18, 15, 1, 2, 2, 5, 242, 232, 227, 240, 255, 249, 230, 222, 242,
-			251, 235, 228, 5, 13, 246, 224, 230, 243, 244, 235, 237, 243, 252, 6, 254, 4, 250, 239, 238, 218, 213, 242, 247, 234, 248, 3, 247, 221, 231,
-			240, 221, 202, 201, 206, 223, 234, 249, 251, 246, 225, 225, 228, 212, 215, 238, 0, 250, 238, 245, 12, 252, 226, 228, 242, 241, 226, 229, 252, 4,
-			1, 250, 0, 4, 10, 2, 252, 0, 0, 253, 231, 245, 21, 15, 246, 242, 0, 2, 241, 27, 52, 7, 235, 0, 16, 216, 212, 232, 221, 218,
-			242, 3, 2, 9, 4, 234, 232, 234, 240, 235, 228, 235, 228, 238, 0, 251, 4, 17, 17, 13, 244, 222, 226, 237, 246, 6, 29, 58, 54, 33,
-			11, 249, 0, 236, 224, 252, 18, 29, 24, 27, 45, 23, 237, 236, 237, 226, 211, 215, 229, 239, 248, 8, 28, 16, 10, 5, 252, 206, 179, 219,
-			229, 227, 18, 45, 36, 18, 25, 11, 236, 227, 223, 231, 9, 20, 7, 13, 49, 29, 246, 232, 225, 213, 224, 237, 229, 5, 28, 16, 253, 252,
-			19, 11, 252, 246, 219, 226, 0, 254, 250, 28, 57, 42, 10, 250, 248, 229, 238, 3, 10, 50, 49, 32, 14, 241, 229, 232, 221, 216, 229, 12,
-			21, 254, 4, 16, 16, 246, 219, 226, 241, 252, 242, 0, 23, 28, 0, 223, 242, 10, 7, 253, 254, 4, 246, 225, 242, 6, 17, 18, 19, 16,
-			1, 7, 10, 251, 0, 20, 30, 32, 35, 33, 1, 10, 23, 14, 26, 11, 243, 242, 239, 240, 239, 11, 18, 8, 19, 26, 19, 243, 231, 228,
-			204, 203, 195, 225, 24, 39, 35, 24, 28, 13, 228, 198, 197, 222, 243, 237, 244, 34, 76, 71, 38, 43, 42, 17, 237, 235, 6, 24, 6, 246,
-			23, 56, 42, 4, 4, 20, 246, 225, 225, 226, 0, 4, 247, 248, 248, 237, 219, 241, 248, 227, 211, 230, 251, 226, 245, 22, 31, 36, 19, 254,
-			1, 12, 238, 200, 233, 20, 15, 26, 49, 42, 27, 45, 7, 216, 235, 5, 243, 229, 32, 45, 10, 16, 25, 21, 6, 228, 221, 241, 220, 186,
-			212, 7, 2, 247, 13, 48, 27, 220, 191, 183, 191, 189, 193, 6, 68, 55, 10, 0, 2, 229, 194, 194, 223, 252, 13, 24, 45, 50, 41, 31,
-			27, 17, 248, 228, 229, 219, 222, 7, 28, 27, 26, 30, 26, 8, 231, 207, 198, 204, 220, 222, 0, 37, 41, 40, 40, 18, 238, 243, 244, 225,
-			221, 230, 247, 239, 236, 12, 35, 27, 10, 4, 250, 235, 239, 247, 242, 243, 14, 16, 6, 250, 235, 242, 249, 227, 202, 232, 3, 240, 240, 4,
-			16, 22, 251, 222, 231, 1, 10, 0, 1, 33, 48, 27, 253, 227, 237, 3, 240, 226, 7, 27, 15, 11, 25, 31, 15, 22, 252, 234, 245, 241,
-			247, 238, 218, 228, 4, 6, 222, 247, 11, 249, 232, 228, 0, 1, 227, 224, 249, 5, 6, 240, 222, 216, 224, 230, 225, 248, 23, 30, 43, 43,
-			16, 9, 7, 0, 230, 223, 249, 29, 33, 25, 30, 23, 23, 16, 242, 237, 9, 12, 243, 230, 244, 243, 238, 211, 205, 239, 7, 5, 244, 3,
-			9, 254, 226, 219, 241, 241, 235, 236, 250, 4, 9, 249, 222, 5, 33, 27, 10, 251, 3, 6, 255, 233, 223, 228, 220, 231, 12, 25, 22, 30,
-			41, 27, 252, 229, 234, 229, 220, 228, 241, 250, 246, 7, 29, 32, 12, 232, 224, 213, 212, 230, 229, 240, 239, 8, 21, 19, 28, 26, 13, 236,
-			218, 241, 250, 4, 12, 5, 29, 46, 25, 254, 235, 236, 244, 235, 228, 217, 233, 16, 21, 242, 243, 13, 22, 0, 254, 0, 249, 254, 247, 243,
-			252, 255, 7, 23, 46, 37, 13, 16, 247, 228, 222, 237, 10, 27, 23, 24, 45, 51, 26, 241, 236, 227, 211, 229, 0, 3, 3, 14, 19, 13,
-			21, 31, 0, 206, 202, 219, 242, 248, 220, 245, 39, 28, 3, 252, 253, 239, 210, 199, 215, 233, 26, 55, 48, 42, 38, 30, 9, 227, 212, 214,
-			221, 247, 8, 11, 28, 48, 45, 25, 253, 250, 245, 218, 197, 202, 236, 15, 15, 30, 33, 9, 7, 250, 217, 206, 214, 226, 255, 18, 22, 47,
-			74, 46, 8, 244, 236, 234, 232, 250, 9, 39, 90, 87, 52, 25, 12, 9, 231, 190, 199, 224, 244, 22, 30, 40, 45, 21, 239, 218, 199, 190,
-			226, 22, 44, 21, 47, 60, 19, 223, 204, 233, 235, 220, 220, 3, 42, 50, 30, 15, 3, 239, 232, 217, 214, 239, 14, 29, 32, 39, 42, 47,
-			25, 245, 226, 234, 241, 244, 7, 13, 14, 9, 21, 6, 234, 221, 213, 231, 245, 252, 251, 243, 10, 11, 251, 242, 253, 239, 211, 206, 230, 244,
-			241, 0, 16, 27, 29, 13, 235, 222, 208, 206, 244, 10, 4, 1, 29, 43, 24, 253, 238, 239, 235, 237, 235, 243, 13, 28, 21, 6, 15, 20,
-			6, 244, 225, 222, 245, 6, 2, 8, 25, 39, 33, 2, 227, 225, 246, 212, 186, 230, 21, 28, 22, 31, 33, 255, 229, 215, 199, 223, 251, 252,
-			18, 61, 59, 38, 17, 7, 250, 231, 222, 218, 232, 249, 10, 38, 57, 35, 5, 249, 239, 227, 213, 221, 5, 14, 3, 19, 36, 43, 36, 7,
-			235, 214, 218, 222, 211, 212, 253, 29, 25, 16, 1, 232, 212, 203, 213, 233, 250, 7, 29, 47, 18, 4, 3, 245, 224, 208, 241, 17, 23, 0,
-			248, 14, 27, 23, 242, 242, 255, 249, 250, 252, 253, 2, 7, 0, 247, 239, 223, 205, 231, 254, 245, 254, 250, 7, 249, 220, 237, 18, 254, 222,
-			232, 2, 16, 247, 230, 246, 9, 14, 249, 233, 246, 8, 15, 9, 253, 255, 18, 15, 252, 247, 0, 248, 233, 241, 240, 251, 27, 46, 43, 16,
-			249, 236, 221, 218, 220, 238, 8, 17, 21, 251, 238, 1, 252, 225, 207, 221, 252, 9, 9, 10, 18, 26, 7, 227, 221, 235, 233, 238, 11, 27,
-			40, 42, 30, 18, 241, 217, 218, 217, 230, 2, 10, 33, 56, 47, 255, 226, 213, 204, 210, 212, 231, 17, 38, 26, 7, 250, 0, 245, 210, 199,
-			216, 234, 253, 12, 22, 21, 7, 245, 231, 211, 218, 249, 7, 11, 24, 24, 17, 10, 240, 229, 226, 235, 4, 14, 34, 40, 23, 17, 1, 232,
-			228, 244, 252, 13, 31, 29, 28, 5, 247, 244, 211, 218, 250, 3, 2, 18, 12, 249, 242, 245, 242, 219, 226, 255, 14, 17, 14, 6, 2, 251,
-			244, 238, 236, 253, 8, 18, 37, 38, 13, 226, 231, 254, 249, 255, 19, 35, 37, 26, 9, 0, 236, 212, 226, 249, 251, 252, 31, 64, 40, 245,
-			240, 241, 214, 200, 227, 21, 40, 18, 22, 32, 5, 246, 238, 232, 242, 243, 252, 11, 16, 12, 12, 20, 3, 236, 240, 3, 16, 12, 15, 18,
-			11, 250, 247, 248, 238, 240, 250, 254, 11, 16, 33, 35, 9, 236, 225, 239, 10, 0, 233, 5, 27, 10, 245, 239, 254, 8, 3, 2, 14, 1,
-			8, 15, 231, 217, 240, 251, 11, 22, 2, 11, 22, 19, 250, 232, 1, 17, 0, 247, 249, 254, 1, 248, 232, 240, 7, 30, 21, 253, 251, 235,
-			226, 245, 253, 243, 253, 28, 36, 20, 5, 0, 7, 1, 234, 220, 228, 245, 7, 12, 4, 245, 247, 254, 243, 224, 230, 238, 246, 10, 7, 249,
-			237, 251, 10, 6, 250, 255, 17, 21, 4, 240, 250, 21, 16, 253, 241, 243, 11, 15, 255, 254, 0, 243, 231, 249, 13, 7, 4, 7, 1, 250,
-			230, 223, 251, 3, 254, 12, 34, 36, 15, 252, 243, 245, 239, 244, 255, 15, 20, 26, 31, 7, 243, 222, 220, 236, 243, 0, 21, 20, 8, 7,
-			1, 241, 225, 239, 4, 7, 250, 252, 19, 13, 248, 240, 240, 241, 247, 252, 252, 252, 11, 20, 8, 250, 254, 5, 2, 247, 240, 5, 35, 19,
-			0, 9, 17, 18, 12, 3, 0, 253, 239, 239, 3, 3, 243, 252, 16, 8, 237, 233, 237, 232, 229, 227, 239, 20, 20, 253, 248, 242, 228, 240,
-			249, 246, 4, 28, 33, 11, 250, 240, 230, 239, 244, 250, 17, 33, 25, 14, 2, 239, 230, 238, 245, 250, 10, 42, 51, 18, 244, 229, 238, 230,
-			216, 231, 6, 32, 28, 2, 235, 228, 218, 192, 183, 222, 15, 37, 26, 5, 244, 237, 226, 225, 248, 8, 21, 42, 56, 41, 10, 242, 230, 231,
-			242, 249, 17, 50, 52, 18, 248, 244, 233, 225, 228, 238, 6, 43, 45, 22, 6, 248, 231, 219, 213, 225, 0, 31, 39, 16, 245, 231, 217, 210,
-			225, 253, 25, 45, 31, 4, 236, 228, 239, 239, 240, 249, 19, 37, 22, 4, 245, 241, 249, 245, 243, 5, 21, 16, 2, 252, 250, 255, 0, 241,
-			227, 230, 251, 251, 251, 11, 9, 252, 231, 219, 228, 240, 252, 7, 8, 6, 8, 4, 253, 242, 234, 241, 15, 29, 22, 12, 7, 0, 255, 247,
-			234, 248, 12, 22, 14, 0, 0, 0, 90, 0, 2, 0, 37, 0, 184, 0, 24, 2, 112, 5, 72, 8, 0, 10, 188, 12, 136, 19, 90, 2,
-			9, 16, 4, 6, 8, 3, 3, 3, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 184, 0, 24, 2, 112, 5, 248, 7, 236, 9, 188, 12,
-			131, 24, 0, 0, 7, 2, 3, 8, 6, 2, 1, 1, 157, 125, 137, 137, 150, 175, 157, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 0, 1, 3, 5, 7, 9, 11, 13, 15, 17,
-			19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
-			79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137,
-			139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197,
-			199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 254, 254,
-			253, 252, 251, 250, 249, 247, 246, 245, 244, 243, 241, 240, 239, 237, 236, 234, 233, 231, 230, 228, 226, 225, 223, 221, 220, 218, 216, 214, 212, 210,
-			209, 207, 205, 203, 201, 199, 197, 195, 193, 191, 189, 186, 184, 182, 180, 178, 176, 174, 171, 169, 167, 165, 162, 160, 158, 156, 153, 151, 149, 147,
-			144, 142, 140, 137, 135, 133, 131, 128, 126, 124, 121, 119, 117, 114, 112, 110, 108, 105, 103, 101, 99, 96, 94, 92, 90, 88, 85, 83, 81, 79,
-			77, 75, 73, 70, 68, 66, 64, 62, 59, 57, 55, 53, 51, 49, 46, 44, 42, 40, 38, 35, 33, 31, 29, 27, 25, 23, 20, 18, 16, 14,
-			12, 10, 8, 6, 4, 2, 0, 2, 4, 6, 8, 10, 11, 13, 15, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-			34, 35, 36, 36, 37, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60,
-			62, 63, 64, 66, 68, 69, 71, 73, 75, 77, 79, 81, 83, 85, 88, 90, 93, 95, 98, 101, 104, 107, 110, 114, 117, 121, 124, 128, 132, 136,
-			140, 145, 149, 154, 159, 163, 166, 170, 174, 177, 181, 184, 188, 192, 195, 199, 202, 206, 209, 213, 216, 219, 223, 226, 229, 232, 235, 238, 241, 243,
-			245, 247, 249, 250, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 254, 251, 248, 245, 242, 238, 234, 230, 227, 222, 218, 214, 210, 205, 201, 196,
-			191, 187, 182, 177, 172, 167, 162, 157, 152, 147, 142, 137, 132, 127, 122, 117, 112, 107, 102, 97, 92, 87, 82, 78, 73, 69, 64, 60, 56, 51,
-			47, 43, 40, 36, 32, 29, 26, 23, 20, 17, 14, 12, 9, 7, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,
-			5, 7, 10, 12, 15, 19, 23, 27, 31, 36, 41, 46, 52, 58, 65, 72, 79, 86, 94, 103, 112, 117, 122, 127, 132, 137, 142, 147, 152, 157,
-			162, 167, 172, 177, 182, 187, 191, 196, 201, 205, 210, 214, 218, 222, 227, 230, 234, 238, 242, 245, 248, 251, 127, 123, 118, 114, 110, 105, 101, 97,
-			94, 90, 86, 82, 79, 75, 72, 68, 65, 62, 59, 56, 53, 50, 47, 44, 42, 39, 37, 34, 32, 30, 28, 26, 24, 22, 20, 19, 17, 16,
-			14, 13, 12, 11, 10, 9, 8, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 15,
-			16, 18, 20, 21, 23, 25, 27, 30, 32, 34, 37, 40, 42, 45, 48, 51, 55, 58, 61, 65, 68, 72, 76, 80, 84, 88, 93, 97, 101, 105,
-			109, 113, 117, 122, 126, 130, 134, 139, 143, 148, 152, 157, 162, 166, 171, 176, 181, 186, 191, 196, 201, 206, 211, 217, 222, 227, 233, 238, 243, 249,
-			152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
-			152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 151, 143, 136, 128, 121, 114, 108, 101, 95, 90, 85, 81, 77, 73, 70,
-			68, 66, 65, 65, 66, 67, 69, 72, 76, 81, 86, 93, 101, 109, 119, 130, 142, 152, 152, 152, 152, 151, 151, 151, 151, 150, 150, 150, 150, 149,
-			149, 149, 149, 148, 148, 148, 148, 147, 147, 147, 147, 146, 146, 146, 146, 145, 145, 145, 145, 144, 144, 144, 144, 143, 143, 143, 143, 142, 142, 142,
-			142, 141, 141, 141, 141, 140, 140, 140, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-			127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-			124, 120, 116, 112, 108, 104, 101, 97, 94, 91, 88, 86, 84, 82, 80, 78, 77, 76, 75, 75, 75, 76, 76, 78, 79, 81, 84, 86, 90, 94,
-			98, 103, 108, 114, 120, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 160, 0, 4, 0, 1, 0, 130, 0, 48, 1, 24, 6, 36, 9,
-			12, 13, 0, 15, 151, 25, 45, 37, 19, 55, 43, 34, 40, 30, 10, 11, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 130, 0, 48, 1,
-			24, 6, 36, 9, 12, 13, 0, 15, 151, 25, 70, 63, 25, 72, 56, 45, 52, 40, 13, 15, 167, 96, 127, 120, 120, 120, 197, 120, 127, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			130, 0, 48, 1, 24, 6, 36, 9, 12, 13, 0, 15, 151, 25, 45, 51, 22, 64, 50, 40, 46, 36, 11, 13, 167, 96, 127, 120, 120, 120,
-			197, 120, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 130, 0, 48, 1, 24, 6, 36, 9, 12, 13, 0, 15, 151, 25, 0, 63, 25, 72, 56, 45, 52, 40, 13, 15, 167, 96,
-			127, 120, 120, 120, 197, 120, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 112, 0, 244, 1, 132, 5, 36, 9, 188, 12, 116, 14, 96, 27, 45, 41, 27, 54,
-			66, 33, 39, 30, 15, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 116, 0, 244, 1, 132, 5, 16, 9, 188, 12, 116, 14, 96, 27,
-			80, 67, 34, 66, 88, 44, 55, 40, 21, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 244, 1, 132, 5, 16, 9, 188, 12,
-			116, 14, 96, 27, 60, 54, 30, 59, 79, 39, 49, 36, 19, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 244, 1, 132, 5,
-			36, 9, 188, 12, 116, 14, 96, 27, 0, 32, 24, 47, 58, 25, 36, 26, 13, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 250, 0, 5, 0,
-			1, 0, 24, 1, 224, 2, 220, 5, 196, 9, 112, 13, 40, 15, 153, 28, 45, 46, 31, 60, 60, 46, 36, 28, 10, 6, 215, 138, 143, 120,
-			120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0,
-			176, 250, 118, 0, 3, 0, 24, 1, 224, 2, 220, 5, 196, 9, 112, 13, 40, 15, 153, 28, 80, 89, 44, 84, 84, 64, 51, 39, 14, 8,
-			215, 138, 143, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 218, 0, 8, 2, 168, 7, 50, 10, 102, 13, 25, 15, 93, 28, 80, 58, 35, 62, 62, 51,
-			43, 33, 11, 8, 191, 114, 139, 120, 120, 120, 237, 165, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 156, 0, 56, 1, 36, 9, 160, 10, 92, 13, 10, 15, 32, 28, 45, 34,
-			30, 46, 47, 43, 39, 31, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 56, 1, 36, 9, 160, 10, 92, 13, 10, 15,
-			32, 28, 0, 31, 28, 44, 45, 41, 38, 30, 8, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 165, 0, 5, 0, 1, 0, 179, 0, 40, 2,
-			172, 3, 96, 10, 15, 12, 141, 14, 32, 27, 45, 47, 26, 53, 60, 38, 37, 17, 13, 5, 166, 135, 150, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0,
-			179, 0, 40, 2, 172, 3, 96, 10, 15, 12, 141, 14, 32, 27, 75, 97, 37, 76, 86, 54, 53, 25, 18, 7, 166, 135, 150, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 179, 0, 27, 2, 0, 4, 91, 10, 35, 12, 144, 14, 18, 27, 50, 68, 33, 68, 75, 49, 48, 24, 16, 7, 165, 134,
-			149, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0,
-			0, 0, 1, 250, 0, 0, 5, 0, 180, 0, 158, 1, 244, 6, 38, 10, 218, 12, 175, 14, 141, 26, 45, 32, 22, 49, 42, 40, 36, 27,
-			10, 4, 161, 128, 142, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 181, 0, 144, 1, 13, 7, 32, 10, 239, 12, 179, 14, 126, 26, 0, 24, 20, 45,
-			37, 37, 34, 26, 9, 4, 160, 127, 142, 120, 120, 120, 130, 87, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 250, 0, 5, 0, 1, 0, 135, 0, 88, 1, 220, 5, 132, 8, 128, 12,
-			128, 14, 153, 24, 45, 38, 11, 58, 50, 44, 41, 29, 9, 10, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 135, 0, 88, 1, 220, 5,
-			132, 8, 128, 12, 128, 14, 153, 24, 80, 77, 16, 84, 72, 64, 58, 41, 13, 14, 178, 122, 132, 123, 123, 141, 187, 130, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 141, 0,
-			86, 1, 132, 6, 29, 9, 192, 12, 170, 14, 158, 25, 80, 50, 14, 68, 54, 50, 47, 35, 11, 11, 175, 118, 139, 122, 122, 134, 187, 130,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 158, 0, 80, 1, 12, 8, 130, 10, 86, 13, 13, 15, 255, 27, 45, 31, 15, 53, 30, 37, 37, 31, 9, 8, 168, 109, 155, 120,
-			120, 120, 177, 109, 152, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 156, 0, 72, 1, 112, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 31, 18, 55, 33, 36, 37, 29, 8, 7,
-			167, 105, 155, 120, 120, 120, 122, 105, 140, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-			124, 169, 247, 191, 251, 250, 201, 182, 0, 0, 6, 0, 1, 0, 224, 0, 8, 3, 216, 4, 236, 9, 8, 12, 116, 14, 224, 27, 46, 69,
-			26, 64, 75, 42, 45, 28, 10, 5, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 224, 0, 8, 3, 216, 4, 236, 9, 8, 12, 116, 14,
-			224, 27, 60, 111, 34, 82, 95, 54, 57, 36, 13, 7, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 224, 0, 208, 2, 16, 4, 96, 9,
-			8, 12, 116, 14, 224, 27, 70, 100, 32, 77, 64, 51, 54, 34, 12, 6, 225, 120, 187, 120, 120, 120, 255, 120, 187, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 240, 0, 24, 2,
-			92, 3, 56, 9, 48, 12, 79, 14, 160, 27, 70, 93, 38, 68, 40, 36, 48, 33, 15, 8, 215, 112, 172, 120, 120, 120, 255, 120, 187, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			0, 1, 200, 1, 52, 3, 16, 9, 8, 12, 41, 14, 96, 27, 30, 84, 36, 76, 59, 21, 35, 23, 15, 8, 205, 105, 157, 120, 120, 120,
-			145, 105, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250,
-			201, 182, 1, 0, 172, 0, 152, 1, 188, 2, 192, 8, 88, 12, 60, 15, 96, 27, 0, 37, 24, 48, 40, 24, 20, 12, 10, 8, 200, 90,
-			120, 120, 120, 120, 200, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36,
-			0, 0, 53, 250, 0, 0, 217, 0, 6, 0, 1, 0, 104, 0, 144, 1, 132, 8, 160, 10, 72, 13, 60, 15, 32, 27, 42, 45, 17, 61,
-			61, 61, 57, 31, 12, 7, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 104, 0, 144, 1, 132, 8, 160, 10, 72, 13, 60, 15, 32, 27,
-			40, 63, 20, 72, 72, 72, 67, 37, 15, 8, 167, 120, 157, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 117, 0, 192, 1, 9, 8, 113, 10, 47, 13,
-			24, 15, 42, 27, 50, 64, 24, 74, 74, 68, 64, 38, 16, 8, 167, 122, 153, 120, 120, 120, 167, 120, 157, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 169, 0, 69, 2, 26, 6,
-			180, 9, 201, 12, 135, 14, 82, 27, 50, 64, 37, 74, 74, 50, 48, 38, 20, 7, 167, 133, 137, 120, 120, 120, 167, 120, 157, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 176, 0,
-			128, 2, 220, 5, 156, 9, 188, 12, 116, 14, 88, 27, 35, 58, 37, 71, 71, 46, 44, 37, 19, 7, 167, 135, 135, 120, 120, 120, 197, 135,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182,
-			1, 0, 176, 0, 128, 2, 220, 5, 156, 9, 188, 12, 116, 14, 88, 27, 0, 39, 30, 58, 58, 38, 36, 30, 16, 6, 167, 135, 135, 120,
-			120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0,
-			53, 250, 0, 0, 247, 0, 5, 0, 1, 0, 216, 0, 5, 3, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 45, 36, 32, 42, 54, 47,
-			39, 32, 13, 3, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 216, 0, 5, 3, 140, 5, 40, 10, 20, 13, 175, 14, 117, 27, 60, 52,
-			38, 50, 64, 55, 46, 38, 16, 4, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 216, 0, 223, 2, 50, 5, 38, 10, 245, 12, 156, 14,
-			132, 27, 80, 40, 35, 43, 54, 48, 41, 33, 13, 4, 195, 154, 192, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 59, 170, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 208, 0, 136, 1, 8, 2, 20, 10,
-			216, 11, 234, 13, 15, 28, 62, 26, 39, 30, 16, 28, 28, 19, 6, 5, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44, 45, 70, 130, 60,
-			155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 208, 0, 136, 1,
-			8, 2, 20, 10, 216, 11, 234, 13, 15, 28, 0, 16, 32, 22, 14, 24, 24, 17, 5, 4, 186, 83, 122, 120, 120, 120, 105, 135, 135, 44,
-			45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 255, 0,
-			5, 0, 1, 0, 168, 0, 16, 2, 112, 3, 88, 10, 104, 11, 141, 14, 32, 27, 45, 52, 20, 51, 62, 38, 34, 17, 12, 5, 167, 135,
-			150, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0,
-			0, 0, 176, 250, 118, 0, 3, 0, 55, 1, 158, 2, 183, 6, 252, 9, 163, 13, 121, 15, 154, 28, 70, 68, 44, 66, 82, 63, 44, 31,
-			11, 6, 255, 140, 173, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 55, 1, 158, 2, 183, 6, 252, 9, 163, 13, 121, 15, 154, 28, 80, 68, 44, 66,
-			82, 63, 44, 31, 11, 6, 255, 140, 173, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 61, 1, 178, 2, 159, 6, 56, 10, 143, 13, 44, 15, 103, 28,
-			60, 56, 48, 54, 80, 51, 42, 28, 11, 6, 226, 136, 157, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 61, 1, 178, 2, 159, 6, 56, 10, 143, 13,
-			44, 15, 103, 28, 0, 38, 39, 44, 65, 41, 34, 23, 9, 5, 226, 136, 157, 120, 120, 120, 150, 180, 150, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 250, 0, 5, 0, 1, 0, 152, 0,
-			24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 45, 27, 6, 51, 45, 45, 46, 22, 10, 4, 167, 105, 120, 120, 120, 120, 167, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0,
-			3, 0, 152, 0, 24, 1, 232, 8, 4, 11, 52, 13, 0, 15, 160, 26, 80, 65, 9, 78, 69, 70, 71, 34, 16, 7, 167, 105, 120, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 200, 0, 200, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 65, 55, 30, 64, 64, 64, 54, 40, 12, 6,
-			185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			2, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 192, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 60, 41, 26, 55, 55, 55,
-			46, 35, 11, 5, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 184, 1, 188, 7, 236, 9, 32, 13, 136, 14, 128, 28, 0, 36,
-			24, 51, 51, 51, 43, 33, 10, 5, 185, 107, 127, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 175, 0, 4, 0, 1, 0, 148, 0, 0, 1, 228, 2, 96, 9,
-			12, 13, 60, 15, 144, 26, 45, 30, 3, 59, 39, 16, 26, 29, 9, 8, 177, 105, 100, 120, 120, 120, 177, 105, 115, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 3, 0, 148, 0, 0, 1,
-			228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 70, 44, 4, 72, 48, 20, 32, 36, 12, 10, 177, 105, 100, 120, 120, 120, 177, 105, 115, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			148, 0, 0, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 60, 39, 3, 68, 45, 19, 30, 34, 11, 9, 177, 105, 100, 120, 120, 120,
-			177, 105, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 148, 0, 0, 1, 228, 2, 96, 9, 12, 13, 60, 15, 144, 26, 0, 26, 3, 56, 37, 15, 24, 28, 9, 7, 177, 105,
-			100, 120, 120, 120, 177, 105, 115, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 199, 1, 107, 0, 228, 227, 236, 249, 249, 248, 3, 11, 2, 254, 6, 17, 19, 15, 253, 221, 196, 203, 14, 49,
-			10, 9, 24, 68, 126, 69, 24, 33, 24, 255, 225, 210, 227, 248, 226, 203, 208, 217, 213, 219, 247, 11, 11, 3, 254, 0, 253, 244, 245, 6,
-			30, 37, 31, 27, 20, 15, 18, 17, 11, 14, 15, 6, 254, 249, 239, 232, 244, 4, 8, 15, 29, 29, 17, 19, 15, 234, 201, 204, 218, 222,
-			226, 234, 240, 250, 9, 13, 12, 30, 55, 56, 44, 36, 23, 5, 0, 252, 231, 219, 233, 251, 251, 249, 0, 2, 254, 1, 7, 0, 241, 241,
-			4, 18, 14, 3, 245, 226, 220, 232, 244, 0, 27, 58, 58, 37, 29, 29, 19, 12, 14, 7, 1, 14, 19, 252, 230, 229, 229, 222, 229, 243,
-			245, 240, 246, 254, 246, 232, 233, 240, 246, 2, 25, 40, 34, 24, 24, 21, 11, 6, 8, 6, 4, 11, 11, 252, 242, 251, 2, 4, 12, 23,
-			25, 23, 21, 7, 241, 230, 233, 233, 229, 230, 235, 238, 243, 251, 255, 0, 11, 25, 30, 29, 29, 27, 20, 10, 0, 250, 251, 252, 251, 253,
-			253, 250, 251, 1, 7, 8, 0, 249, 250, 1, 1, 255, 0, 4, 1, 0, 3, 3, 254, 2, 17, 15, 0, 0, 10, 4, 251, 255, 2, 0,
-			2, 10, 10, 8, 10, 11, 9, 8, 8, 8, 5, 0, 251, 245, 246, 254, 252, 243, 248, 2, 0, 253, 5, 8, 0, 255, 10, 14, 4, 1,
-			8, 3, 249, 252, 7, 4, 252, 0, 9, 11, 6, 4, 5, 3, 1, 7, 13, 11, 7, 7, 9, 3, 253, 253, 254, 248, 244, 250, 0, 0,
-			255, 0, 1, 4, 4, 5, 9, 10, 9, 11, 10, 7, 3, 255, 251, 252, 254, 254, 1, 2, 255, 0, 3, 4, 2, 2, 4, 5, 4, 4,
-			6, 5, 0, 255, 1, 0, 0, 1, 2, 2, 2, 0, 1, 4, 6, 10, 12, 8, 3, 4, 8, 9, 4, 1, 3, 1, 252, 251, 253, 252,
-			252, 0, 0, 255, 255, 3, 6, 7, 7, 7, 7, 7, 5, 3, 3, 0, 251, 0, 6, 2, 254, 2, 4, 0, 0, 4, 2, 3, 8, 5,
-			0, 0, 1, 2, 1, 0, 0, 2, 4, 7, 7, 4, 4, 6, 6, 5, 7, 7, 5, 2, 255, 255, 0, 0, 255, 0, 255, 0, 5, 4,
-			0, 0, 2, 2, 2, 0, 1, 4, 6, 3, 2, 2, 4, 4, 4, 5, 7, 8, 9, 10, 5, 255, 0, 4, 2, 1, 1, 0, 0, 1,
-			1, 0, 0, 2, 3, 4, 3, 1, 1, 3, 5, 3, 3, 4, 3, 0, 110, 0, 4, 0, 5, 0, 76, 0, 80, 1, 200, 5, 40, 10,
-			152, 13, 160, 15, 32, 29, 40, 19, 11, 48, 18, 14, 36, 21, 9, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 2, 0, 0, 0, 2, 0, 0, 0, 176, 250, 118, 0, 1, 0, 76, 0, 80, 1,
-			200, 5, 40, 10, 152, 13, 160, 15, 32, 29, 35, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123, 97, 120, 120, 120, 90, 116, 97, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 17, 0,
-			76, 0, 80, 1, 200, 5, 40, 10, 152, 13, 160, 15, 32, 29, 35, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123, 97, 120, 120, 120,
-			90, 116, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 2, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 76, 0, 80, 1, 200, 5, 40, 10, 152, 13, 160, 15, 32, 29, 0, 27, 13, 57, 22, 17, 42, 25, 11, 0, 150, 123,
-			97, 120, 120, 120, 90, 116, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 236, 5, 35, 0, 255, 2, 6, 7, 2, 254, 3, 10, 4, 248, 254, 10, 1, 243, 253, 8, 255, 251, 5, 5,
-			252, 247, 246, 254, 7, 0, 248, 1, 10, 5, 255, 252, 1, 10, 4, 249, 254, 5, 1, 0, 5, 9, 7, 252, 245, 0, 10, 1, 245, 246,
-			3, 10, 250, 239, 6, 20, 254, 242, 3, 7, 251, 251, 5, 8, 1, 252, 0, 2, 253, 254, 8, 10, 3, 251, 246, 2, 12, 250, 238, 3,
-			12, 250, 251, 10, 3, 250, 5, 6, 247, 252, 6, 244, 243, 41, 55, 238, 208, 12, 30, 226, 204, 1, 49, 35, 236, 215, 3, 25, 238, 217,
-			1, 32, 17, 0, 2, 6, 251, 247, 4, 2, 242, 6, 34, 9, 242, 3, 7, 250, 0, 9, 252, 241, 244, 253, 253, 236, 241, 20, 16, 233,
-			239, 13, 5, 251, 6, 16, 20, 12, 251, 6, 22, 248, 231, 7, 10, 238, 245, 8, 252, 228, 225, 4, 39, 10, 227, 5, 47, 23, 255, 253,
-			243, 245, 255, 247, 248, 4, 255, 1, 10, 245, 235, 4, 254, 234, 255, 14, 3, 17, 30, 1, 242, 5, 9, 245, 237, 3, 17, 253, 248, 14,
-			251, 222, 8, 28, 228, 232, 39, 13, 222, 4, 22, 233, 243, 27, 6, 238, 0, 11, 4, 5, 252, 242, 5, 18, 243, 216, 255, 43, 7, 214,
-			253, 33, 222, 189, 40, 106, 17, 203, 2, 47, 255, 210, 251, 51, 16, 200, 227, 43, 13, 199, 218, 254, 237, 243, 25, 11, 232, 250, 42, 49,
-			4, 235, 25, 60, 0, 204, 250, 29, 248, 238, 13, 249, 200, 229, 42, 22, 195, 214, 61, 46, 199, 222, 61, 34, 220, 2, 53, 6, 213, 243,
-			35, 19, 220, 220, 20, 30, 242, 234, 12, 24, 0, 229, 238, 19, 19, 241, 251, 18, 247, 234, 20, 22, 228, 230, 20, 16, 227, 219, 0, 24,
-			13, 250, 252, 20, 22, 236, 218, 16, 45, 248, 226, 20, 31, 248, 246, 11, 0, 245, 5, 14, 253, 238, 253, 10, 249, 237, 1, 2, 237, 254,
-			26, 4, 233, 0, 24, 5, 246, 255, 247, 241, 15, 27, 242, 240, 39, 35, 220, 212, 14, 28, 241, 224, 10, 44, 6, 214, 246, 33, 1, 226,
-			5, 31, 253, 224, 251, 34, 19, 225, 229, 27, 25, 231, 232, 13, 19, 4, 254, 4, 16, 253, 220, 246, 30, 255, 217, 255, 43, 20, 224, 216,
-			15, 47, 244, 200, 6, 59, 9, 212, 236, 36, 40, 231, 202, 19, 66, 2, 210, 245, 26, 22, 243, 216, 255, 52, 17, 209, 220, 8, 19, 2,
-			242, 251, 16, 1, 237, 8, 28, 252, 231, 2, 35, 25, 231, 216, 25, 56, 235, 190, 255, 40, 0, 232, 253, 2, 248, 254, 14, 12, 244, 229,
-			0, 41, 29, 229, 223, 26, 46, 250, 217, 240, 9, 18, 11, 234, 221, 11, 38, 247, 223, 10, 28, 248, 238, 14, 15, 234, 234, 25, 43, 254,
-			222, 255, 36, 15, 219, 208, 8, 59, 17, 205, 221, 19, 8, 231, 245, 12, 16, 19, 8, 246, 254, 4, 243, 255, 30, 8, 227, 253, 33, 13,
-			240, 240, 249, 4, 16, 6, 237, 232, 3, 24, 0, 222, 237, 20, 26, 255, 235, 251, 36, 41, 251, 230, 0, 4, 250, 9, 14, 246, 245, 13,
-			9, 238, 224, 235, 3, 22, 19, 255, 247, 4, 16, 3, 242, 246, 0, 5, 11, 11, 1, 3, 16, 11, 244, 230, 241, 2, 3, 246, 247, 5,
-			8, 3, 7, 12, 6, 254, 250, 2, 5, 242, 236, 14, 31, 250, 228, 8, 36, 2, 220, 230, 8, 14, 254, 255, 12, 11, 3, 4, 3, 250,
-			244, 245, 1, 12, 2, 248, 0, 0, 247, 253, 2, 251, 0, 10, 2, 253, 255, 255, 10, 12, 244, 246, 16, 2, 236, 254, 11, 2, 0, 249,
-			0, 21, 2, 222, 248, 24, 249, 231, 9, 20, 0, 0, 9, 9, 8, 5, 252, 248, 244, 241, 251, 9, 1, 244, 255, 15, 10, 250, 243, 4,
-			24, 7, 237, 250, 3, 239, 251, 30, 9, 236, 2, 12, 242, 242, 7, 3, 246, 255, 14, 3, 241, 0, 15, 249, 250, 29, 11, 228, 250, 16,
-			251, 246, 254, 249, 7, 21, 251, 232, 249, 7, 8, 3, 255, 10, 17, 255, 249, 253, 235, 229, 3, 18, 3, 1, 7, 4, 10, 18, 1, 247,
-			5, 8, 253, 1, 9, 10, 12, 251, 224, 238, 2, 242, 255, 32, 3, 232, 14, 22, 236, 236, 4, 255, 252, 2, 254, 248, 245, 248, 9, 17,
-			6, 0, 253, 255, 8, 252, 231, 255, 24, 6, 245, 0, 6, 255, 249, 2, 20, 16, 251, 247, 0, 255, 1, 9, 12, 13, 8, 0, 252, 247,
-			250, 0, 250, 244, 1, 5, 255, 0, 255, 0, 13, 0, 239, 6, 24, 255, 238, 253, 9, 2, 233, 229, 3, 4, 231, 249, 31, 19, 249, 255,
-			12, 12, 253, 239, 3, 31, 12, 241, 1, 21, 0, 235, 252, 3, 239, 248, 21, 5, 242, 8, 10, 245, 249, 247, 233, 254, 22, 19, 6, 239,
-			220, 240, 255, 241, 253, 24, 36, 37, 11, 238, 11, 42, 1, 222, 244, 15, 21, 4, 240, 253, 12, 251, 244, 255, 248, 248, 16, 22, 253, 230,
-			223, 230, 244, 2, 8, 0, 0, 21, 22, 237, 213, 238, 13, 21, 10, 5, 16, 18, 1, 241, 236, 245, 4, 1, 245, 0, 14, 10, 4, 3,
-			0, 0, 0, 0, 8, 9, 255, 0, 8, 4, 254, 253, 7, 21, 10, 248, 253, 1, 255, 252, 236, 232, 4, 12, 251, 5, 16, 251, 247, 0,
-			244, 246, 8, 6, 251, 249, 245, 248, 9, 15, 3, 254, 7, 8, 248, 244, 252, 253, 4, 10, 5, 14, 16, 244, 246, 21, 1, 239, 15, 12,
-			245, 20, 23, 233, 232, 1, 5, 2, 243, 246, 27, 17, 235, 253, 0, 232, 15, 36, 243, 250, 22, 237, 232, 8, 228, 219, 30, 32, 245, 3,
-			8, 224, 212, 234, 250, 5, 17, 39, 62, 50, 21, 11, 4, 249, 254, 7, 8, 17, 29, 9, 233, 232, 243, 237, 247, 11, 254, 247, 12, 246,
-			207, 224, 239, 233, 9, 26, 249, 254, 27, 10, 246, 244, 225, 230, 5, 1, 242, 0, 27, 37, 20, 246, 245, 13, 19, 17, 16, 255, 242, 2,
-			15, 2, 245, 255, 15, 12, 3, 5, 5, 4, 9, 247, 229, 251, 7, 245, 249, 8, 3, 9, 18, 0, 242, 246, 249, 248, 245, 245, 253, 252,
-			244, 252, 1, 246, 240, 248, 1, 9, 2, 254, 10, 7, 250, 4, 14, 7, 5, 1, 0, 15, 8, 252, 12, 9, 243, 3, 15, 249, 248, 6,
-			10, 15, 2, 241, 248, 237, 229, 10, 8, 235, 17, 27, 230, 2, 42, 232, 217, 25, 2, 217, 255, 9, 232, 239, 10, 14, 0, 251, 15, 9,
-			226, 246, 30, 253, 235, 18, 2, 218, 230, 231, 230, 19, 44, 40, 55, 49, 26, 31, 13, 236, 255, 22, 3, 0, 4, 245, 251, 7, 243, 221,
-			228, 241, 251, 249, 237, 239, 254, 244, 226, 235, 245, 240, 255, 23, 9, 251, 11, 6, 241, 2, 15, 246, 247, 21, 19, 253, 244, 245, 2, 16,
-			17, 19, 17, 0, 0, 12, 3, 2, 16, 11, 6, 23, 28, 11, 250, 244, 0, 5, 250, 245, 246, 246, 4, 9, 242, 234, 248, 243, 236, 245,
-			245, 243, 253, 255, 253, 255, 248, 248, 0, 254, 254, 10, 13, 1, 254, 252, 249, 0, 2, 1, 8, 17, 18, 13, 10, 6, 0, 254, 7, 7,
-			1, 11, 16, 0, 0, 19, 11, 250, 2, 6, 240, 234, 248, 239, 228, 246, 251, 230, 242, 10, 253, 250, 12, 3, 0, 13, 250, 246, 21, 249,
-			221, 18, 17, 230, 22, 31, 214, 251, 43, 229, 243, 51, 229, 210, 50, 3, 203, 34, 249, 130, 231, 69, 246, 14, 105, 44, 13, 82, 46, 232,
-			0, 20, 14, 7, 221, 233, 30, 230, 184, 0, 246, 185, 7, 44, 200, 213, 43, 238, 179, 236, 247, 229, 17, 24, 253, 13, 9, 248, 17, 8,
-			239, 24, 21, 205, 232, 44, 14, 253, 34, 19, 254, 30, 42, 17, 255, 241, 250, 8, 246, 246, 19, 3, 242, 27, 39, 0, 14, 49, 21, 246,
-			249, 236, 220, 237, 245, 228, 225, 240, 247, 241, 230, 237, 0, 253, 239, 254, 254, 227, 248, 23, 249, 240, 31, 35, 7, 21, 24, 253, 249, 254,
-			3, 18, 6, 253, 25, 18, 244, 11, 24, 249, 4, 33, 11, 252, 8, 6, 0, 245, 233, 250, 254, 231, 245, 13, 0, 253, 253, 225, 222, 248,
-			254, 251, 250, 250, 6, 6, 252, 8, 12, 0, 16, 15, 243, 3, 16, 234, 237, 7, 247, 0, 19, 243, 248, 25, 1, 254, 21, 245, 231, 238,
-			182, 195, 32, 25, 24, 116, 94, 26, 93, 87, 228, 254, 50, 229, 192, 231, 231, 228, 223, 192, 207, 232, 227, 21, 63, 252, 233, 2, 151, 0,
-			3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3,
-			3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 4, 3, 3, 3, 2, 1, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2,
-			2, 2, 3, 3, 3, 3, 3, 2, 2, 1, 2, 2, 2, 3, 3, 3, 3, 2, 2, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 1,
-			1, 1, 1, 2, 3, 3, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 1,
-			0, 0, 1, 1, 3, 4, 4, 4, 4, 3, 1, 1, 0, 0, 2, 3, 4, 5, 5, 4, 2, 0, 0, 0, 1, 3, 5, 5, 5, 4,
-			3, 2, 1, 1, 3, 4, 5, 7, 8, 7, 10, 14, 11, 4, 2, 6, 12, 19, 25, 23, 12, 0, 250, 252, 3, 11, 15, 14, 11, 7,
-			4, 0, 0, 4, 9, 15, 15, 12, 13, 19, 23, 19, 12, 7, 7, 11, 18, 26, 34, 35, 27, 13, 0, 251, 0, 4, 11, 23, 24, 11,
-			3, 7, 8, 5, 5, 5, 5, 14, 23, 23, 16, 9, 5, 0, 251, 250, 4, 14, 14, 18, 24, 16, 5, 2, 254, 249, 1, 16, 19, 21,
-			24, 20, 12, 7, 3, 2, 7, 19, 33, 34, 23, 20, 20, 12, 7, 9, 7, 4, 3, 0, 255, 11, 23, 24, 15, 0, 250, 0, 4, 0,
-			0, 3, 8, 11, 12, 8, 5, 255, 245, 244, 0, 5, 5, 7, 8, 11, 17, 17, 6, 247, 239, 248, 10, 19, 17, 21, 22, 13, 4, 3,
-			3, 2, 0, 253, 251, 0, 3, 3, 8, 20, 23, 9, 252, 255, 9, 11, 9, 14, 17, 15, 13, 11, 2, 251, 248, 247, 252, 9, 18, 14,
-			10, 8, 4, 255, 250, 249, 0, 8, 5, 1, 8, 12, 10, 9, 6, 253, 248, 252, 1, 6, 11, 16, 15, 5, 254, 0, 5, 9, 9, 5,
-			0, 4, 13, 10, 3, 0, 254, 255, 2, 4, 4, 7, 8, 4, 0, 255, 255, 0, 253, 250, 251, 255, 2, 7, 7, 0, 249, 246, 247, 252,
-			0, 253, 250, 251, 0, 0, 253, 248, 248, 254, 1, 1, 255, 252, 251, 252, 252, 251, 252, 253, 254, 0, 0, 0, 0, 2, 3, 1, 255, 255,
-			2, 4, 4, 4, 4, 5, 5, 4, 2, 0, 3, 7, 9, 9, 8, 6, 6, 7, 9, 10, 8, 6, 6, 9, 14, 15, 13, 11, 9, 10,
-			12, 14, 15, 14, 13, 10, 9, 11, 14, 13, 8, 6, 7, 10, 11, 10, 7, 3, 0, 254, 253, 252, 251, 250, 248, 244, 240, 239, 240, 240,
-			239, 236, 230, 227, 224, 221, 217, 213, 211, 210, 210, 209, 206, 201, 199, 202, 209, 213, 214, 214, 216, 218, 221, 225, 229, 232, 235, 239, 243, 248,
-			254, 1, 4, 6, 8, 11, 14, 16, 19, 22, 24, 26, 27, 27, 26, 24, 23, 24, 26, 26, 25, 21, 16, 12, 9, 7, 5, 5, 4, 3,
-			3, 4, 5, 5, 1, 255, 255, 1, 4, 7, 9, 10, 8, 8, 10, 12, 15, 19, 24, 29, 34, 36, 35, 31, 28, 29, 34, 39, 41, 43,
-			44, 43, 40, 38, 35, 31, 29, 27, 25, 23, 18, 8, 254, 246, 241, 238, 239, 243, 243, 238, 229, 217, 202, 185, 171, 164, 163, 165, 167, 167,
-			160, 146, 136, 142, 162, 181, 194, 203, 204, 197, 193, 199, 210, 222, 235, 248, 0, 13, 26, 32, 30, 29, 35, 40, 44, 49, 54, 55, 53, 50,
-			46, 40, 32, 26, 20, 17, 20, 21, 14, 1, 246, 235, 224, 215, 211, 209, 205, 200, 197, 194, 194, 196, 195, 192, 192, 195, 197, 198, 204, 214,
-			226, 238, 249, 0, 5, 12, 17, 23, 31, 41, 51, 61, 69, 77, 83, 86, 86, 85, 83, 82, 80, 79, 79, 79, 79, 76, 72, 68, 63, 56,
-			50, 46, 43, 41, 37, 33, 28, 23, 19, 15, 14, 16, 17, 15, 10, 6, 1, 252, 246, 242, 239, 237, 236, 233, 229, 224, 218, 208, 196, 187,
-			180, 172, 165, 159, 152, 143, 134, 131, 139, 162, 193, 218, 232, 236, 233, 224, 216, 218, 229, 245, 8, 32, 56, 73, 80, 0, 0, 0, 160, 5,
-			191, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
-			0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 255, 0, 2, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 255, 1, 0, 254, 0, 1, 0, 254, 255, 1,
-			1, 0, 255, 2, 3, 0, 255, 1, 1, 0, 0, 1, 1, 0, 255, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 255, 0, 1, 1, 0,
-			0, 2, 0, 254, 0, 4, 1, 253, 255, 1, 0, 252, 253, 1, 4, 2, 0, 1, 2, 0, 0, 255, 255, 0, 254, 250, 251, 2, 7, 8,
-			5, 2, 3, 4, 255, 249, 253, 3, 3, 0, 253, 253, 0, 0, 254, 0, 2, 0, 253, 254, 1, 3, 2, 0, 1, 4, 0, 254, 4, 10,
-			7, 0, 253, 252, 250, 249, 253, 6, 10, 6, 2, 0, 253, 253, 0, 1, 2, 3, 0, 255, 0, 0, 254, 0, 2, 0, 252, 253, 2, 5,
-			0, 255, 6, 7, 251, 246, 0, 6, 4, 2, 1, 0, 253, 247, 248, 0, 3, 0, 2, 6, 3, 255, 255, 0, 3, 2, 0, 5, 0, 232,
-			223, 243, 6, 13, 25, 43, 43, 11, 227, 213, 228, 249, 9, 24, 30, 22, 8, 248, 233, 238, 4, 21, 15, 253, 235, 234, 247, 1, 9, 20,
-			25, 13, 249, 232, 226, 236, 254, 7, 4, 1, 3, 3, 255, 248, 253, 8, 7, 251, 244, 246, 250, 255, 6, 12, 16, 20, 14, 254, 245, 248,
-			251, 249, 249, 3, 17, 22, 15, 6, 1, 251, 247, 248, 250, 0, 8, 8, 0, 0, 4, 3, 2, 0, 250, 245, 248, 247, 243, 249, 3, 9,
-			9, 3, 255, 250, 241, 235, 244, 0, 4, 11, 24, 25, 9, 249, 243, 248, 255, 0, 0, 8, 13, 10, 3, 0, 1, 9, 10, 0, 244, 241,
-			246, 0, 8, 8, 8, 10, 6, 251, 242, 242, 248, 1, 6, 1, 254, 2, 4, 255, 253, 254, 250, 247, 252, 254, 253, 2, 10, 9, 1, 251,
-			253, 2, 5, 7, 3, 231, 190, 220, 43, 40, 246, 27, 127, 75, 201, 159, 206, 253, 9, 25, 53, 54, 20, 249, 235, 227, 225, 232, 249, 252,
-			225, 213, 254, 44, 31, 250, 246, 244, 235, 234, 219, 235, 2, 9, 14, 14, 13, 20, 18, 252, 232, 232, 248, 250, 1, 31, 26, 255, 12, 37,
-			17, 251, 250, 0, 255, 245, 241, 2, 21, 19, 9, 9, 7, 241, 224, 228, 234, 233, 243, 7, 20, 12, 251, 245, 249, 241, 229, 235, 245, 249,
-			0, 8, 7, 10, 15, 10, 5, 0, 247, 248, 0, 255, 1, 10, 18, 26, 31, 21, 10, 255, 243, 247, 251, 237, 241, 15, 25, 1, 241, 244,
-			245, 234, 226, 236, 248, 251, 3, 13, 9, 6, 6, 252, 248, 252, 244, 246, 10, 13, 1, 5, 11, 8, 3, 250, 242, 242, 244, 255, 9, 0,
-			255, 12, 4, 255, 12, 4, 245, 0, 231, 185, 249, 59, 13, 16, 98, 76, 242, 188, 195, 234, 250, 1, 36, 42, 8, 2, 1, 233, 221, 220,
-			228, 255, 246, 214, 243, 35, 30, 243, 236, 5, 5, 233, 230, 0, 5, 239, 249, 33, 34, 7, 11, 19, 252, 235, 246, 253, 2, 18, 21, 13,
-			17, 24, 17, 0, 242, 240, 244, 245, 245, 248, 252, 6, 13, 0, 244, 255, 251, 225, 221, 236, 240, 247, 11, 18, 8, 2, 2, 253, 242, 236,
-			243, 255, 3, 10, 21, 19, 13, 21, 18, 0, 252, 3, 7, 2, 248, 248, 13, 28, 14, 252, 250, 251, 239, 225, 230, 247, 253, 253, 3, 6,
-			0, 250, 247, 243, 239, 241, 251, 4, 9, 13, 13, 10, 9, 4, 0, 4, 1, 242, 251, 15, 7, 249, 2, 7, 255, 250, 248, 250, 1, 0,
-			248, 248, 0, 11, 11, 254, 255, 244, 194, 192, 18, 57, 30, 47, 83, 38, 219, 203, 224, 246, 7, 20, 25, 19, 17, 13, 235, 206, 223, 237,
-			225, 239, 7, 255, 252, 15, 6, 242, 255, 9, 248, 237, 252, 3, 247, 251, 23, 27, 0, 2, 25, 11, 245, 253, 255, 244, 5, 28, 20, 9,
-			15, 16, 3, 251, 249, 243, 241, 249, 252, 245, 247, 2, 1, 252, 254, 251, 240, 238, 244, 246, 245, 0, 16, 13, 2, 2, 1, 249, 248, 253,
-			249, 246, 0, 16, 26, 20, 8, 9, 10, 1, 255, 2, 254, 254, 3, 4, 4, 7, 6, 0, 247, 237, 236, 242, 245, 249, 252, 254, 6, 10,
-			0, 251, 253, 246, 240, 248, 1, 7, 12, 14, 11, 6, 0, 1, 5, 253, 245, 254, 8, 6, 1, 0, 1, 5, 0, 240, 238, 3, 14, 249,
-			235, 4, 25, 4, 247, 252, 229, 192, 218, 31, 38, 48, 78, 63, 6, 206, 206, 234, 250, 14, 40, 30, 13, 19, 7, 224, 205, 218, 227, 233,
-			252, 6, 1, 4, 14, 255, 235, 251, 9, 247, 241, 4, 4, 244, 3, 29, 15, 248, 11, 37, 9, 234, 248, 252, 238, 6, 37, 24, 14, 25,
-			7, 238, 249, 5, 248, 236, 250, 5, 249, 240, 3, 11, 251, 247, 249, 234, 234, 251, 248, 246, 13, 24, 11, 2, 0, 248, 244, 246, 253, 0,
-			253, 1, 20, 28, 18, 3, 250, 253, 5, 0, 0, 14, 17, 4, 253, 251, 254, 9, 9, 247, 237, 244, 248, 241, 243, 1, 5, 254, 1, 4,
-			247, 246, 0, 250, 244, 5, 15, 8, 11, 17, 4, 246, 252, 10, 3, 245, 252, 9, 2, 255, 3, 255, 251, 2, 0, 245, 251, 7, 5, 249,
-			248, 11, 17, 0, 0, 244, 187, 189, 31, 46, 26, 81, 93, 18, 203, 198, 223, 245, 7, 32, 44, 30, 12, 6, 237, 201, 203, 226, 235, 250,
-			10, 9, 5, 8, 254, 241, 251, 1, 248, 245, 0, 6, 1, 2, 15, 19, 6, 7, 23, 13, 242, 239, 250, 247, 0, 31, 40, 16, 4, 6,
-			254, 244, 248, 251, 246, 250, 5, 4, 250, 252, 4, 254, 242, 248, 254, 241, 234, 244, 252, 5, 20, 20, 5, 253, 249, 242, 238, 247, 4, 10,
-			7, 13, 21, 13, 0, 251, 247, 253, 10, 11, 3, 5, 10, 7, 0, 0, 9, 5, 245, 245, 254, 250, 247, 250, 250, 0, 7, 0, 251, 254,
-			245, 239, 245, 251, 5, 15, 6, 1, 13, 9, 252, 251, 0, 6, 6, 253, 4, 18, 1, 244, 2, 2, 251, 254, 246, 247, 7, 0, 249, 10,
-			2, 249, 18, 16, 243, 234, 206, 197, 22, 44, 28, 94, 90, 247, 196, 212, 219, 241, 17, 27, 34, 39, 22, 5, 233, 201, 193, 216, 237, 0,
-			20, 14, 10, 13, 249, 238, 2, 251, 230, 242, 1, 6, 13, 11, 8, 12, 8, 6, 19, 9, 235, 233, 247, 3, 21, 33, 27, 13, 253, 247,
-			253, 249, 242, 249, 255, 1, 16, 17, 255, 243, 244, 245, 247, 254, 0, 247, 241, 248, 0, 5, 14, 11, 249, 241, 249, 252, 249, 246, 245, 0,
-			18, 25, 18, 8, 3, 0, 244, 237, 2, 23, 14, 4, 4, 4, 10, 13, 252, 242, 254, 4, 254, 250, 251, 253, 254, 255, 3, 1, 249, 247,
-			248, 242, 244, 255, 4, 9, 9, 1, 254, 2, 3, 253, 248, 255, 12, 13, 5, 6, 1, 249, 253, 254, 251, 254, 253, 254, 8, 1, 248, 10,
-			6, 241, 7, 24, 250, 243, 241, 190, 220, 47, 31, 55, 101, 47, 223, 198, 202, 219, 251, 21, 46, 51, 28, 19, 251, 208, 192, 193, 221, 252,
-			27, 29, 16, 20, 11, 235, 235, 250, 233, 230, 249, 7, 18, 22, 15, 5, 255, 250, 0, 5, 252, 248, 250, 0, 22, 35, 22, 16, 13, 247,
-			238, 254, 251, 242, 0, 11, 8, 12, 13, 253, 235, 237, 248, 251, 251, 0, 0, 249, 1, 12, 4, 251, 252, 249, 240, 245, 0, 253, 250, 5,
-			11, 2, 6, 11, 255, 248, 255, 250, 246, 12, 27, 13, 4, 15, 16, 253, 240, 249, 4, 6, 7, 5, 255, 0, 6, 249, 240, 255, 3, 246,
-			246, 0, 255, 251, 250, 253, 4, 5, 252, 250, 1, 0, 254, 1, 8, 9, 3, 1, 5, 0, 245, 250, 7, 8, 255, 250, 2, 8, 252, 244,
-			255, 2, 85, 5, 64, 0, 0, 0, 255, 0, 2, 0, 0, 2, 1, 255, 0, 0, 255, 0, 1, 1, 3, 2, 0, 0, 3, 1, 255, 0,
-			0, 0, 0, 2, 1, 0, 1, 0, 255, 1, 2, 255, 254, 0, 0, 0, 1, 1, 0, 1, 0, 254, 255, 0, 1, 4, 3, 255, 255, 0,
-			0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 254, 0, 3, 2, 0, 255, 0, 2, 3, 0, 0, 2, 1, 255, 0, 0, 0, 0, 1, 2,
-			1, 255, 253, 255, 1, 2, 0, 254, 0, 3, 1, 255, 0, 1, 0, 255, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 255, 255,
-			2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 2, 1, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 2, 1, 1, 0,
-			0, 1, 0, 0, 1, 0, 0, 1, 2, 0, 0, 0, 254, 255, 3, 2, 255, 0, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2, 253, 253,
-			0, 2, 2, 2, 0, 255, 1, 3, 1, 0, 0, 1, 0, 255, 0, 1, 3, 3, 255, 253, 0, 0, 2, 4, 1, 254, 254, 0, 0, 3,
-			1, 254, 0, 3, 2, 0, 0, 255, 1, 4, 255, 251, 1, 8, 5, 0, 0, 254, 245, 245, 12, 35, 15, 229, 225, 1, 20, 12, 1, 240,
-			231, 5, 34, 13, 241, 243, 251, 254, 9, 12, 255, 247, 252, 3, 13, 13, 250, 238, 252, 13, 7, 251, 1, 8, 252, 248, 5, 3, 247, 254,
-			10, 6, 254, 252, 0, 7, 4, 251, 252, 3, 6, 5, 1, 251, 251, 255, 7, 11, 252, 240, 4, 18, 251, 239, 5, 14, 251, 248, 7, 3,
-			245, 1, 17, 1, 244, 0, 1, 251, 7, 4, 246, 8, 13, 236, 246, 28, 4, 235, 7, 10, 238, 0, 21, 0, 242, 0, 13, 9, 243, 234,
-			9, 29, 255, 237, 255, 1, 250, 3, 12, 1, 250, 1, 8, 4, 248, 239, 5, 35, 8, 220, 246, 26, 255, 250, 29, 247, 200, 7, 54, 4,
-			233, 248, 251, 15, 23, 244, 242, 11, 252, 248, 15, 2, 236, 255, 16, 8, 253, 245, 0, 10, 248, 251, 26, 12, 234, 250, 15, 246, 236, 21,
-			36, 245, 220, 1, 16, 247, 248, 10, 10, 16, 6, 223, 234, 26, 20, 255, 6, 241, 226, 21, 42, 248, 230, 253, 254, 254, 8, 5, 2, 2,
-			253, 5, 7, 236, 237, 19, 25, 4, 253, 238, 237, 14, 21, 240, 234, 9, 26, 14, 237, 218, 2, 48, 20, 225, 230, 13, 20, 246, 244, 25,
-			29, 240, 219, 245, 17, 24, 254, 239, 19, 21, 212, 214, 36, 56, 0, 209, 222, 37, 53, 223, 199, 15, 44, 30, 254, 191, 220, 62, 31, 218,
-			7, 14, 218, 1, 33, 246, 249, 253, 229, 32, 70, 229, 178, 250, 57, 50, 234, 184, 250, 48, 9, 5, 10, 207, 222, 51, 41, 238, 230, 245,
-			14, 21, 245, 251, 18, 245, 242, 19, 5, 249, 2, 243, 254, 23, 250, 247, 18, 246, 243, 22, 239, 221, 39, 44, 238, 237, 0, 0, 4, 238,
-			243, 49, 37, 208, 206, 32, 59, 230, 176, 19, 87, 251, 220, 20, 227, 201, 44, 46, 238, 9, 3, 217, 253, 3, 0, 61, 19, 180, 239, 27,
-			238, 27, 47, 219, 229, 8, 231, 33, 54, 180, 202, 87, 44, 239, 14, 202, 170, 43, 80, 11, 3, 231, 213, 28, 6, 181, 22, 121, 248, 149,
-			1, 72, 250, 208, 16, 46, 254, 220, 236, 8, 26, 254, 214, 4, 77, 33, 184, 162, 247, 87, 69, 238, 242, 12, 211, 211, 27, 15, 11, 58,
-			241, 182, 31, 34, 175, 250, 112, 18, 185, 221, 248, 25, 41, 235, 4, 82, 230, 132, 248, 51, 251, 44, 61, 204, 218, 43, 217, 167, 32, 98,
-			53, 252, 178, 184, 45, 62, 225, 225, 29, 33, 0, 205, 213, 41, 35, 227, 39, 77, 186, 135, 23, 90, 20, 233, 251, 23, 12, 216, 210, 248,
-			7, 31, 48, 7, 239, 0, 239, 214, 235, 15, 55, 50, 234, 216, 1, 230, 213, 35, 69, 16, 215, 184, 251, 100, 28, 164, 1, 96, 238, 166,
-			253, 44, 20, 3, 254, 13, 1, 200, 233, 66, 15, 183, 250, 86, 32, 190, 195, 30, 61, 245, 219, 22, 20, 235, 255, 6, 243, 9, 2, 225,
-			13, 44, 240, 229, 1, 236, 10, 68, 253, 192, 11, 40, 245, 245, 244, 227, 21, 44, 251, 4, 16, 201, 212, 47, 16, 209, 27, 88, 14, 188,
-			186, 249, 51, 25, 249, 28, 0, 196, 6, 37, 194, 242, 118, 16, 160, 17, 42, 189, 237, 53, 247, 8, 73, 236, 166, 243, 15, 242, 23, 64,
-			35, 227, 189, 233, 36, 10, 238, 18, 30, 8, 253, 221, 213, 21, 38, 242, 253, 52, 23, 199, 187, 2, 47, 7, 250, 51, 40, 198, 175, 241,
-			25, 19, 9, 21, 41, 17, 217, 205, 230, 250, 31, 64, 38, 250, 231, 201, 196, 18, 80, 29, 237, 6, 252, 196, 215, 21, 34, 36, 38, 241,
-			200, 230, 247, 230, 5, 64, 69, 16, 223, 220, 219, 198, 244, 79, 66, 250, 10, 27, 206, 171, 239, 31, 23, 16, 16, 12, 5, 239, 214, 232,
-			25, 31, 251, 253, 22, 251, 220, 0, 39, 25, 242, 213, 232, 21, 13, 249, 27, 26, 220, 227, 23, 7, 229, 246, 13, 22, 25, 13, 253, 237,
-			228, 249, 11, 0, 5, 15, 252, 252, 22, 5, 229, 237, 248, 242, 2, 33, 34, 4, 240, 248, 252, 240, 248, 6, 10, 22, 16, 240, 250, 17,
-			231, 213, 18, 35, 248, 245, 9, 10, 10, 249, 227, 251, 25, 13, 241, 235, 6, 35, 13, 229, 236, 0, 6, 21, 7, 229, 253, 34, 252, 218,
-			0, 20, 250, 255, 25, 9, 231, 236, 6, 7, 250, 245, 249, 14, 37, 7, 215, 241, 44, 18, 208, 224, 28, 28, 255, 6, 17, 243, 227, 255,
-			14, 248, 232, 254, 27, 22, 253, 0, 8, 236, 219, 0, 23, 0, 243, 15, 45, 27, 223, 205, 5, 26, 228, 214, 25, 67, 23, 221, 234, 25,
-			5, 207, 238, 35, 0, 233, 31, 41, 244, 236, 253, 242, 248, 10, 254, 250, 14, 7, 250, 12, 15, 233, 217, 0, 34, 12, 244, 16, 34, 239,
-			209, 253, 19, 251, 251, 5, 255, 5, 14, 1, 254, 254, 231, 236, 21, 24, 253, 2, 17, 5, 244, 239, 245, 253, 251, 1, 20, 21, 9, 6,
-			248, 230, 242, 0, 253, 5, 16, 13, 17, 13, 241, 232, 248, 248, 248, 6, 8, 11, 25, 9, 234, 243, 9, 1, 240, 236, 0, 31, 29, 0,
-			245, 250, 247, 250, 2, 0, 254, 0, 1, 3, 0, 248, 6, 17, 244, 228, 3, 16, 2, 9, 15, 251, 244, 0, 5, 4, 254, 239, 247, 15,
-			17, 3, 255, 255, 255, 252, 244, 245, 0, 9, 22, 27, 8, 247, 246, 234, 230, 2, 22, 12, 13, 11, 238, 238, 13, 6, 236, 246, 3, 255,
-			5, 15, 5, 254, 255, 251, 247, 255, 6, 255, 239, 253, 30, 24, 248, 250, 251, 215, 217, 13, 22, 2, 32, 54, 14, 239, 238, 226, 221, 246,
-			14, 24, 32, 35, 20, 244, 215, 215, 231, 246, 19, 40, 18, 5, 27, 16, 233, 232, 243, 229, 240, 19, 24, 11, 13, 7, 245, 238, 238, 240,
-			245, 248, 4, 22, 17, 5, 13, 5, 235, 237, 1, 252, 243, 255, 8, 14, 24, 22, 6, 246, 226, 226, 251, 8, 7, 16, 20, 11, 12, 3,
-			233, 231, 248, 247, 0, 27, 25, 5, 8, 9, 247, 243, 0, 2, 255, 252, 0, 6, 9, 8, 11, 6, 244, 239, 251, 250, 245, 0, 6, 4,
-			13, 15, 255, 250, 254, 241, 238, 3, 5, 252, 9, 17, 0, 249, 252, 245, 246, 253, 255, 6, 7, 0, 12, 18, 249, 243, 0, 240, 232, 8,
-			20, 8, 19, 21, 0, 250, 255, 247, 246, 0, 6, 10, 13, 12, 4, 246, 242, 0, 0, 242, 250, 0, 0, 0, 152, 153, 153, 154, 156, 157,
-			159, 161, 164, 167, 169, 172, 176, 179, 182, 186, 190, 193, 197, 201, 205, 209, 212, 216, 220, 223, 227, 230, 234, 237, 240, 242, 245, 247, 249, 251,
-			252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 248, 246, 243, 241, 238, 236, 233, 230, 228, 224, 221, 218, 215, 211, 208, 204,
-			200, 196, 192, 188, 184, 180, 176, 172, 167, 163, 159, 154, 150, 145, 141, 136, 132, 127, 123, 118, 114, 109, 105, 101, 96, 92, 88, 84, 80, 76,
-			72, 68, 64, 60, 57, 53, 50, 47, 43, 40, 38, 35, 32, 29, 26, 23, 21, 18, 15, 13, 10, 8, 7, 5, 3, 2, 1, 0, 0, 0,
-			0, 0, 81, 0, 5, 0, 1, 0, 16, 1, 136, 3, 40, 5, 140, 10, 112, 13, 35, 15, 32, 28, 32, 58, 36, 70, 64, 40, 27, 24,
-			9, 8, 217, 150, 105, 120, 120, 120, 255, 180, 150, 44, 65, 70, 130, 53, 0, 0, 0, 0, 50, 0, 0, 0, 0, 210, 117, 182, 3, 0,
-			0, 0, 3, 0, 0, 0, 176, 250, 118, 0, 3, 0, 32, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28, 16, 146, 53, 116,
-			96, 70, 52, 33, 16, 8, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 54, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 32, 1, 136, 3, 40, 5, 140, 10, 112, 13, 191, 14, 32, 28,
-			17, 146, 53, 116, 96, 70, 52, 33, 16, 8, 217, 155, 105, 120, 120, 120, 247, 170, 165, 44, 65, 75, 130, 53, 0, 0, 0, 0, 50, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 3, 0, 0, 0, 1, 250, 0, 0, 1, 0, 16, 1, 128, 3, 60, 5, 100, 10, 112, 13,
-			191, 14, 160, 28, 16, 45, 33, 64, 58, 33, 30, 23, 7, 8, 217, 135, 105, 120, 120, 120, 255, 165, 165, 44, 65, 70, 130, 53, 0, 0,
-			0, 0, 50, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 216, 1, 111, 5,
-			196, 9, 224, 13, 160, 15, 244, 26, 0, 1, 0, 16, 8, 8, 4, 4, 0, 0, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 124, 169, 247, 191, 251, 250, 201, 182, 170, 0, 4, 0,
-			1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 45, 52, 22, 54, 54, 36, 34, 22, 14, 6, 165, 131, 156, 120,
-			120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 3, 0, 0, 0, 3, 0, 0, 0,
-			176, 250, 118, 0, 3, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 70, 92, 30, 72, 72, 48, 46, 30, 19, 8,
-			165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 55, 83, 28, 68, 68, 45,
-			43, 28, 18, 8, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 3, 0, 0, 0, 1, 250, 0, 0, 1, 0, 148, 0, 224, 1, 248, 2, 150, 10, 188, 12, 236, 14, 38, 27, 0, 45,
-			21, 50, 50, 33, 32, 21, 13, 5, 165, 131, 156, 120, 120, 120, 165, 110, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 46, 0, 8, 0, 1, 0, 200, 0, 127, 2, 126, 5, 127, 9,
-			197, 12, 114, 14, 244, 26, 12, 59, 40, 72, 72, 40, 28, 20, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 125, 2,
-			136, 5, 127, 9, 207, 12, 123, 14, 244, 26, 12, 66, 52, 72, 72, 44, 32, 28, 20, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			200, 0, 103, 2, 9, 6, 181, 9, 248, 12, 224, 14, 244, 26, 12, 53, 52, 60, 64, 36, 28, 28, 20, 16, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 200, 0, 65, 2, 159, 6, 235, 9, 253, 12, 61, 15, 244, 26, 12, 43, 52, 48, 52, 28, 28, 28, 8, 8, 187, 125,
-			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 48, 32, 36, 32, 44, 36, 32, 20,
-			16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 24, 22, 36, 20,
-			20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27,
-			24, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14,
-			200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 188, 37, 0, 182, 112, 172, 75, 8, 104, 250, 215, 182, 0, 0, 9, 0, 1, 0, 250, 0,
-			176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 28, 62, 24, 59, 74, 42, 38, 34, 10, 6, 167, 147, 147, 120, 120, 120, 167, 142,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 35, 127, 35, 84, 105, 60, 54, 49, 14, 8, 167, 147, 147, 120,
-			120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 250, 0, 176, 2, 40, 4, 246, 10, 188, 12, 92, 14, 87, 27, 29, 127, 35, 84, 105, 60, 54, 49, 14, 8,
-			167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 250, 0, 160, 2, 76, 4, 246, 10, 188, 12, 92, 14, 87, 27, 43, 118, 35, 84, 105, 60,
-			54, 49, 14, 8, 167, 147, 147, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 204, 0, 93, 2, 252, 4, 60, 10, 168, 12, 10, 15, 0, 28, 50, 40,
-			28, 53, 61, 33, 40, 20, 11, 8, 167, 165, 150, 120, 120, 120, 167, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15,
-			159, 27, 21, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11,
-			16, 14, 200, 15, 159, 27, 21, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1,
-			208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 43, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 188, 37, 0, 182, 112, 172, 75, 8, 104, 250, 215, 182, 1, 0,
-			152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 207, 215, 182, 49, 133, 0, 182, 200, 172, 75, 8, 168, 250,
-			247, 191, 0, 0, 6, 0, 1, 0, 228, 0, 224, 2, 180, 5, 196, 9, 68, 12, 216, 14, 80, 28, 45, 46, 25, 55, 66, 44, 36, 32,
-			12, 5, 172, 142, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 228, 0, 224, 2, 180, 5, 196, 9, 68, 12, 216, 14, 80, 28, 66, 83, 34, 75,
-			90, 60, 49, 43, 17, 7, 172, 142, 180, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 222, 0, 224, 2, 40, 5, 96, 9, 98, 12, 76, 14, 247, 27,
-			41, 73, 29, 63, 84, 46, 52, 35, 14, 7, 168, 124, 204, 120, 120, 120, 255, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 0, 1, 96, 2, 87, 4, 16, 9, 48, 12,
-			41, 14, 128, 27, 40, 64, 28, 61, 77, 35, 52, 36, 15, 7, 237, 126, 192, 120, 120, 120, 141, 126, 147, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 0, 1, 208, 1, 189, 3,
-			16, 9, 8, 12, 41, 14, 96, 27, 40, 65, 36, 68, 59, 21, 35, 23, 15, 8, 205, 90, 180, 120, 120, 120, 145, 120, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 172, 0,
-			200, 1, 152, 3, 192, 8, 168, 12, 60, 15, 96, 27, 0, 30, 25, 50, 42, 16, 18, 13, 11, 9, 200, 90, 120, 120, 120, 120, 200, 120,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			34, 0, 8, 0, 1, 0, 200, 0, 196, 2, 190, 6, 114, 9, 178, 13, 224, 13, 244, 26, 12, 56, 40, 72, 68, 64, 20, 20, 20, 12,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 201, 2, 197, 6, 100, 9, 129, 13, 48, 14, 244, 26, 12, 66, 40, 80, 76, 64,
-			24, 24, 16, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 200, 2, 192, 6, 98, 9, 90, 13, 131, 14, 244, 26, 12, 56,
-			40, 72, 72, 60, 40, 0, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 197, 2, 184, 6, 97, 9, 75, 13, 174, 14,
-			244, 26, 24, 51, 36, 68, 68, 56, 48, 12, 16, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 182, 2, 153, 6, 108, 9,
-			67, 13, 220, 14, 244, 26, 36, 48, 36, 68, 60, 48, 44, 28, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 200, 1,
-			12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 24, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 1, 0,
-			152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 36, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142,
-			135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 188, 37, 0, 182, 112, 172,
-			75, 8, 104, 250, 215, 182, 89, 0, 9, 0, 1, 0, 200, 0, 104, 1, 38, 8, 98, 10, 18, 13, 10, 15, 244, 26, 12, 55, 30, 57,
-			48, 42, 39, 24, 12, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 136, 1, 230, 7, 48, 10, 17, 13, 30, 15, 244, 26,
-			12, 111, 36, 92, 64, 64, 56, 36, 20, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 136, 1, 223, 7, 46, 10, 23, 13,
-			38, 15, 244, 26, 12, 110, 40, 88, 64, 64, 56, 40, 24, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 136, 1, 224, 7,
-			48, 10, 26, 13, 40, 15, 244, 26, 12, 97, 36, 84, 60, 60, 56, 36, 24, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0,
-			144, 1, 245, 7, 60, 10, 43, 13, 84, 15, 244, 26, 12, 68, 40, 60, 56, 56, 56, 40, 20, 12, 187, 125, 137, 137, 150, 175, 187, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8,
-			1, 0, 152, 0, 200, 1, 152, 8, 140, 10, 16, 14, 180, 15, 159, 27, 24, 24, 36, 32, 36, 36, 32, 20, 16, 8, 172, 142, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0,
-			0, 250, 0, 0, 1, 0, 168, 0, 96, 1, 204, 6, 196, 9, 176, 14, 48, 17, 244, 26, 42, 37, 44, 40, 8, 36, 24, 12, 0, 0,
-			125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 24, 170, 0, 191,
-			188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 168, 0, 96, 1, 204, 6, 196, 9, 176, 14, 68, 17, 244, 26, 30, 37, 44, 40, 8, 36,
-			24, 12, 0, 0, 125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			188, 37, 0, 182, 112, 172, 75, 8, 104, 250, 215, 182, 1, 0, 168, 0, 96, 1, 204, 6, 196, 9, 176, 14, 68, 17, 244, 26, 0, 26,
-			40, 32, 8, 16, 8, 12, 0, 0, 125, 125, 137, 137, 150, 175, 125, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 207, 215, 182, 49, 133, 0, 182, 200, 172, 75, 8, 168, 250, 247, 191, 0, 0, 5, 0, 1, 0, 200, 0, 38, 1, 6, 5, 126, 10,
-			152, 11, 253, 14, 244, 26, 29, 91, 56, 52, 48, 44, 16, 28, 12, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 58, 1,
-			37, 5, 140, 10, 174, 16, 160, 15, 244, 26, 51, 74, 48, 52, 40, 36, 12, 16, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			200, 0, 42, 1, 244, 4, 57, 10, 85, 10, 215, 16, 244, 26, 98, 59, 48, 40, 32, 20, 8, 4, 4, 4, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 104, 52, 52, 36, 20, 8, 4, 4, 8, 8, 172, 142,
-			135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4,
-			8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 23, 0, 7, 0, 1, 0, 200, 0, 191, 1, 229, 5, 86, 9, 209, 12, 236, 14, 244, 26,
-			23, 73, 36, 72, 76, 40, 40, 28, 24, 12, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 193, 1, 232, 5, 89, 9, 218, 12,
-			246, 14, 244, 26, 24, 70, 32, 72, 76, 44, 44, 36, 28, 16, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 194, 1, 241, 5,
-			85, 9, 209, 12, 239, 14, 244, 26, 12, 55, 32, 64, 60, 36, 36, 28, 20, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0,
-			200, 1, 119, 6, 146, 9, 16, 13, 86, 15, 244, 26, 12, 38, 36, 48, 40, 32, 32, 24, 16, 12, 187, 125, 137, 137, 150, 175, 187, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 36, 39, 44, 36, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 48, 22, 36, 20, 20, 8, 4, 4, 8, 8,
-			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8,
-			4, 4, 8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			24, 170, 0, 191, 188, 200, 53, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 152, 0, 56, 2, 132, 3, 44, 11, 192, 13, 120, 15,
-			159, 27, 45, 62, 29, 67, 58, 32, 29, 22, 14, 6, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 152, 0, 56, 2, 132, 3, 44, 11,
-			192, 13, 120, 15, 159, 27, 84, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 152, 0, 72, 2,
-			92, 3, 144, 11, 232, 13, 140, 15, 159, 27, 40, 112, 40, 80, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			152, 0, 200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 55, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 60, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142,
-			135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4,
-			8, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 0, 0, 6, 0, 1, 0, 152, 0, 56, 2, 132, 3, 44, 11, 192, 13, 120, 15, 159, 27,
-			55, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 152, 0, 56, 2, 132, 3, 44, 11, 192, 13,
-			120, 15, 159, 27, 74, 116, 40, 92, 80, 44, 40, 31, 20, 8, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 3, 0, 176, 0, 56, 1, 92, 3,
-			56, 9, 12, 13, 60, 15, 144, 26, 46, 78, 4, 96, 52, 28, 28, 40, 16, 10, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 152, 0,
-			200, 1, 12, 3, 144, 11, 16, 14, 180, 15, 159, 27, 17, 32, 36, 32, 44, 36, 32, 20, 16, 8, 172, 142, 135, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 16, 22, 36, 20, 20, 8, 4, 4, 8, 8, 172, 142, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 208, 2, 144, 11, 16, 14, 200, 15, 159, 27, 0, 22, 36, 20, 20, 8, 4, 4, 8, 8,
-			172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 175, 0, 4, 0, 1, 0, 116, 0, 232, 1, 136, 4, 236, 9, 168, 12, 156, 14, 96, 27, 45, 48,
-			27, 63, 60, 34, 37, 31, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 232, 1, 136, 4, 236, 9, 168, 12, 156, 14,
-			96, 27, 70, 93, 38, 88, 84, 48, 52, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 232, 1, 136, 4, 236, 9,
-			168, 12, 156, 14, 96, 27, 60, 75, 34, 79, 75, 43, 46, 39, 20, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 232, 1,
-			136, 4, 236, 9, 168, 12, 156, 14, 96, 27, 0, 41, 25, 58, 56, 32, 34, 29, 15, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 110, 0,
-			3, 0, 5, 0, 240, 0, 13, 2, 108, 7, 128, 12, 156, 14, 23, 17, 224, 23, 60, 24, 54, 8, 8, 16, 6, 8, 4, 0, 162, 90,
-			165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184,
-			216, 182, 176, 250, 118, 182, 5, 0, 240, 0, 13, 2, 108, 7, 128, 12, 156, 14, 23, 17, 224, 23, 50, 24, 54, 8, 8, 16, 6, 8,
-			4, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168,
-			0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 240, 0, 13, 2, 108, 7, 128, 12, 156, 14, 23, 17, 224, 23, 0, 15, 43, 6,
-			6, 13, 5, 6, 3, 0, 162, 90, 165, 120, 120, 120, 132, 165, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 181, 2, 30, 0, 23, 23, 23, 23, 23, 22, 22, 23, 23, 23, 23, 23,
-			23, 23, 23, 23, 22, 22, 23, 23, 24, 24, 23, 23, 24, 24, 24, 23, 23, 22, 22, 22, 21, 21, 22, 22, 22, 22, 22, 22, 21, 22,
-			22, 22, 22, 21, 21, 21, 22, 21, 21, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20,
-			19, 19, 19, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 17, 18, 18, 18, 17, 17, 17, 17, 18, 18,
-			18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16,
-			16, 16, 16, 16, 17, 17, 17, 17, 16, 16, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 17, 17, 17, 16, 17, 17,
-			16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 17, 17, 17, 17, 17, 17, 17, 17,
-			17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 18, 19, 18, 18,
-			18, 18, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
-			20, 20, 19, 19, 19, 19, 19, 19, 20, 20, 19, 19, 20, 20, 20, 20, 19, 19, 20, 20, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21,
-			21, 21, 21, 21, 20, 20, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23,
-			23, 23, 23, 23, 23, 24, 23, 23, 23, 23, 23, 23, 23, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23,
-			23, 23, 24, 24, 24, 24, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 24, 24, 24, 24, 24, 24,
-			24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22,
-			22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 20,
-			21, 21, 20, 20, 20, 19, 19, 18, 18, 17, 14, 12, 7, 1, 222, 165, 138, 148, 195, 198, 198, 244, 25, 46, 55, 66, 97, 101, 57, 31,
-			23, 253, 219, 214, 234, 2, 15, 26, 54, 77, 73, 65, 79, 75, 55, 28, 2, 254, 245, 236, 249, 23, 34, 48, 51, 57, 73, 62, 47, 36,
-			29, 22, 3, 249, 248, 1, 11, 20, 50, 73, 76, 44, 6, 13, 30, 51, 1, 2, 2, 251, 226, 225, 253, 13, 8, 4, 31, 33, 20, 10,
-			32, 44, 25, 243, 222, 217, 210, 204, 204, 253, 34, 46, 54, 65, 72, 71, 46, 40, 52, 37, 7, 255, 7, 22, 2, 246, 23, 47, 56, 15,
-			36, 47, 51, 22, 16, 49, 55, 31, 255, 25, 43, 30, 1, 22, 43, 40, 6, 19, 42, 28, 242, 222, 9, 8, 241, 226, 12, 37, 31, 35,
-			46, 81, 83, 51, 45, 74, 60, 27, 17, 41, 65, 55, 29, 42, 42, 247, 179, 146, 149, 154, 146, 144, 229, 243, 17, 31, 88, 105, 125, 118,
-			68, 76, 252, 220, 204, 207, 195, 218, 252, 22, 59, 44, 8, 243, 191, 206, 217, 166, 153, 171, 211, 228, 251, 20, 87, 118, 103, 109, 84, 65,
-			31, 255, 232, 250, 252, 253, 9, 18, 43, 85, 96, 88, 59, 31, 48, 48, 245, 191, 205, 221, 31, 35, 18, 39, 43, 19, 237, 232, 244, 248,
-			215, 195, 212, 205, 218, 236, 20, 42, 32, 19, 12, 21, 246, 225, 229, 255, 2, 1, 27, 51, 57, 0, 0, 0, 75, 8, 18, 0, 40, 40,
-			40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39, 40, 39, 39, 39, 38, 39, 38, 38, 38, 38, 38, 38, 38, 37, 37, 36, 36, 36,
-			36, 36, 35, 35, 36, 35, 35, 34, 35, 34, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30,
-			30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 30, 29, 29, 29, 28, 29, 28, 28, 28, 28, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27,
-			27, 27, 27, 27, 26, 26, 26, 27, 27, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 26, 25, 25, 26, 26, 26, 26, 25, 26, 26, 26,
-			26, 25, 24, 24, 25, 25, 25, 25, 26, 25, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 25,
-			25, 26, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26,
-			26, 27, 27, 28, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
-			30, 30, 29, 30, 30, 30, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 31, 31, 30, 31, 31, 31, 31, 31, 31, 32, 32, 33, 33,
-			33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 37, 37, 36, 36, 36,
-			37, 37, 37, 37, 37, 38, 37, 37, 37, 38, 38, 38, 38, 38, 38, 39, 39, 38, 39, 40, 40, 39, 39, 39, 40, 41, 41, 41, 41, 42,
-			42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 43, 43, 43, 43, 44, 44, 44, 44,
-			45, 45, 45, 45, 45, 45, 44, 44, 45, 45, 45, 45, 45, 46, 45, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44,
-			44, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
-			44, 44, 43, 43, 43, 43, 43, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
-			41, 41, 41, 41, 41, 42, 42, 42, 41, 42, 42, 42, 42, 42, 42, 42, 41, 42, 41, 41, 41, 41, 41, 41, 41, 42, 42, 41, 41, 40,
-			40, 40, 40, 39, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 37, 37, 38, 37, 36,
-			36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35, 35, 36, 35, 34, 32, 32, 33, 34, 34, 34, 33, 32, 31, 32, 33, 32, 32,
-			31, 31, 30, 30, 31, 31, 31, 31, 30, 30, 30, 31, 31, 31, 32, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 28, 29, 31, 33, 31,
-			26, 25, 27, 30, 31, 31, 29, 27, 27, 28, 28, 29, 31, 31, 28, 26, 27, 26, 26, 18, 238, 195, 224, 70, 120, 72, 11, 245, 235, 247,
-			42, 84, 72, 32, 5, 251, 0, 31, 65, 61, 27, 7, 10, 20, 34, 48, 49, 33, 16, 12, 20, 33, 45, 48, 35, 16, 8, 19, 36, 44,
-			42, 32, 20, 14, 19, 33, 44, 43, 31, 18, 16, 23, 33, 38, 36, 28, 22, 21, 24, 28, 29, 30, 32, 33, 29, 23, 23, 29, 32, 31,
-			32, 32, 27, 22, 23, 28, 30, 32, 31, 22, 21, 28, 33, 31, 30, 30, 25, 21, 22, 31, 38, 33, 21, 20, 29, 32, 28, 29, 32, 26,
-			21, 29, 37, 33, 27, 28, 28, 27, 32, 37, 30, 23, 28, 35, 32, 28, 30, 36, 38, 32, 21, 25, 42, 41, 29, 29, 34, 29, 29, 39,
-			43, 34, 26, 26, 29, 33, 40, 42, 38, 31, 29, 31, 32, 33, 41, 47, 40, 27, 23, 28, 38, 47, 46, 31, 24, 38, 45, 32, 30, 45,
-			46, 34, 33, 39, 36, 35, 41, 42, 37, 34, 35, 34, 35, 43, 46, 37, 33, 40, 42, 34, 37, 46, 40, 32, 43, 48, 33, 29, 45, 52,
-			42, 33, 32, 38, 44, 44, 46, 49, 41, 28, 33, 52, 57, 40, 25, 36, 53, 52, 36, 32, 46, 54, 44, 37, 46, 45, 33, 42, 58, 52,
-			37, 36, 38, 38, 48, 58, 48, 32, 31, 42, 50, 51, 42, 34, 43, 54, 46, 36, 44, 45, 34, 42, 60, 51, 31, 43, 58, 37, 22, 47,
-			62, 47, 42, 45, 33, 32, 54, 59, 39, 31, 36, 45, 55, 46, 31, 31, 43, 53, 58, 51, 33, 22, 28, 44, 61, 59, 39, 30, 34, 34,
-			42, 54, 47, 33, 36, 44, 34, 32, 61, 70, 25, 0, 32, 61, 64, 66, 45, 254, 255, 58, 82, 50, 35, 40, 26, 21, 48, 60, 45, 46,
-			41, 13, 25, 74, 70, 25, 23, 42, 38, 36, 49, 52, 46, 45, 35, 21, 38, 63, 55, 37, 30, 28, 36, 47, 47, 50, 50, 33, 15, 30,
-			60, 58, 34, 34, 44, 29, 18, 48, 77, 55, 19, 17, 30, 29, 47, 73, 56, 21, 16, 28, 39, 48, 47, 35, 33, 42, 42, 30, 26, 33,
-			38, 37, 43, 52, 43, 21, 14, 34, 46, 37, 34, 44, 41, 23, 17, 24, 36, 52, 59, 39, 2, 254, 30, 46, 46, 62, 53, 3, 243, 29,
-			51, 30, 33, 58, 41, 7, 12, 33, 38, 42, 42, 19, 13, 44, 46, 9, 6, 45, 55, 26, 12, 31, 33, 9, 23, 63, 51, 255, 246, 30,
-			54, 41, 33, 35, 16, 255, 13, 37, 49, 52, 40, 8, 241, 8, 57, 70, 41, 11, 0, 255, 22, 66, 72, 29, 255, 3, 20, 35, 44, 41,
-			25, 15, 26, 34, 21, 19, 39, 51, 30, 0, 8, 44, 48, 20, 13, 29, 29, 25, 42, 48, 22, 4, 19, 35, 32, 36, 48, 39, 17, 5,
-			13, 32, 48, 48, 27, 16, 30, 32, 13, 12, 39, 54, 38, 22, 22, 21, 16, 28, 36, 31, 35, 46, 42, 13, 240, 2, 60, 89, 52, 253,
-			243, 4, 31, 71, 79, 22, 234, 9, 45, 33, 37, 63, 36, 243, 2, 54, 58, 29, 22, 22, 16, 35, 62, 42, 7, 6, 27, 48, 50, 33,
-			22, 26, 24, 20, 31, 53, 48, 18, 10, 32, 45, 40, 25, 17, 40, 57, 33, 8, 16, 41, 53, 32, 21, 45, 48, 17, 255, 22, 69, 78,
-			34, 254, 14, 49, 39, 14, 50, 73, 18, 245, 43, 83, 43, 253, 7, 50, 66, 52, 37, 21, 3, 17, 61, 75, 52, 26, 6, 4, 37, 71,
-			63, 35, 27, 21, 13, 40, 74, 58, 26, 20, 24, 44, 62, 47, 26, 27, 30, 43, 60, 59, 35, 2, 9, 48, 72, 69, 48, 23, 17, 24,
-			34, 59, 69, 33, 17, 60, 73, 14, 246, 43, 78, 66, 51, 30, 10, 23, 54, 64, 49, 38, 38, 32, 35, 52, 47, 30, 40, 59, 44, 21,
-			37, 54, 38, 36, 57, 44, 17, 44, 72, 37, 9, 42, 65, 45, 37, 44, 36, 29, 45, 55, 35, 25, 51, 61, 39, 27, 35, 40, 48, 60,
-			46, 19, 31, 57, 50, 38, 46, 46, 21, 21, 57, 72, 48, 26, 11, 17, 69, 88, 32, 252, 31, 60, 39, 34, 59, 56, 23, 15, 37, 42,
-			34, 55, 74, 42, 254, 9, 57, 67, 49, 36, 31, 28, 28, 43, 60, 56, 39, 23, 10, 25, 62, 74, 48, 22, 20, 27, 33, 48, 64, 58,
-			33, 14, 18, 40, 57, 57, 55, 34, 0, 9, 59, 74, 54, 37, 15, 254, 25, 74, 71, 26, 17, 49, 42, 4, 24, 73, 62, 23, 22, 34,
-			25, 26, 62, 69, 18, 0, 41, 57, 28, 23, 48, 43, 17, 28, 46, 33, 27, 36, 28, 29, 50, 45, 16, 15, 44, 53, 31, 20, 33, 38,
-			34, 40, 33, 11, 20, 49, 49, 29, 19, 26, 41, 42, 15, 0, 31, 58, 47, 31, 24, 10, 8, 36, 55, 41, 27, 21, 10, 9, 34, 57,
-			43, 18, 27, 36, 10, 2, 39, 51, 29, 28, 30, 10, 16, 46, 37, 5, 14, 43, 45, 26, 15, 23, 29, 25, 28, 38, 39, 27, 21, 24,
-			22, 15, 26, 46, 38, 15, 15, 28, 34, 29, 24, 21, 27, 36, 27, 16, 28, 40, 28, 11, 22, 48, 39, 5, 9, 40, 44, 30, 28, 27,
-			14, 12, 33, 54, 46, 21, 5, 8, 30, 50, 45, 27, 16, 18, 26, 37, 42, 31, 14, 18, 32, 24, 21, 48, 57, 27, 0, 4, 27, 50,
-			52, 26, 9, 23, 38, 27, 19, 30, 38, 35, 34, 28, 14, 13, 29, 45, 44, 31, 22, 20, 22, 26, 30, 35, 35, 25, 21, 30, 37, 33,
-			29, 27, 19, 23, 43, 46, 25, 15, 22, 24, 32, 48, 44, 18, 7, 25, 41, 33, 25, 34, 40, 26, 19, 31, 34, 26, 34, 41, 28, 18,
-			27, 36, 29, 29, 44, 42, 19, 14, 35, 43, 27, 23, 43, 45, 20, 16, 36, 45, 41, 42, 31, 15, 27, 49, 44, 27, 28, 37, 33, 34,
-			44, 37, 20, 26, 45, 47, 34, 31, 36, 37, 32, 33, 43, 46, 36, 31, 33, 32, 32, 42, 50, 43, 30, 27, 36, 46, 46, 37, 33, 32,
-			32, 43, 58, 53, 31, 22, 30, 41, 52, 56, 44, 31, 28, 30, 37, 53, 59, 42, 23, 27, 42, 51, 50, 42, 29, 26, 42, 58, 57, 42,
-			27, 24, 35, 50, 55, 47, 34, 32, 38, 41, 43, 47, 46, 37, 31, 36, 42, 43, 42, 47, 46, 33, 27, 41, 56, 49, 35, 34, 37, 38,
-			44, 51, 46, 37, 36, 37, 37, 40, 46, 46, 39, 30, 31, 41, 48, 45, 41, 38, 32, 31, 39, 46, 44, 41, 41, 38, 34, 35, 40, 43,
-			44, 44, 38, 31, 33, 41, 42, 40, 36, 39, 46, 42, 28, 31, 43, 42, 37, 42, 43, 36, 37, 41, 33, 29, 40, 44, 35, 34, 41, 39,
-			32, 31, 37, 42, 42, 36, 32, 33, 33, 34, 41, 45, 38, 30, 33, 37, 35, 34, 38, 40, 37, 33, 34, 38, 38, 37, 37, 36, 34, 34,
-			36, 36, 36, 35, 32, 30, 37, 47, 41, 26, 24, 33, 38, 41, 43, 36, 25, 27, 36, 40, 42, 39, 31, 25, 29, 35, 36, 38, 39, 33,
-			27, 31, 34, 33, 35, 36, 31, 28, 32, 34, 33, 36, 36, 30, 27, 33, 35, 32, 33, 32, 30, 29, 32, 34, 34, 34, 29, 23, 25, 32,
-			36, 34, 29, 27, 28, 27, 27, 31, 35, 31, 25, 22, 23, 26, 31, 33, 31, 29, 27, 22, 22, 29, 34, 33, 29, 25, 21, 25, 32, 34,
-			29, 27, 27, 26, 25, 25, 27, 29, 30, 28, 27, 26, 24, 23, 24, 28, 29, 27, 25, 24, 26, 28, 30, 29, 26, 25, 26, 29, 28, 24,
-			22, 27, 31, 30, 29, 29, 25, 22, 25, 29, 28, 29, 30, 27, 23, 24, 28, 29, 30, 30, 27, 23, 24, 27, 31, 33, 33, 27, 24, 26,
-			30, 31, 31, 32, 28, 24, 26, 31, 31, 30, 30, 28, 25, 27, 32, 31, 26, 26, 29, 29, 30, 32, 30, 27, 28, 30, 30, 29, 30, 32,
-			32, 29, 27, 28, 31, 34, 33, 28, 27, 28, 29, 29, 33, 34, 29, 27, 30, 31, 31, 32, 32, 29, 28, 30, 31, 32, 33, 31, 28, 28,
-			31, 32, 32, 32, 30, 27, 29, 33, 33, 32, 31, 31, 31, 32, 33, 32, 32, 35, 36, 33, 33, 34, 35, 33, 33, 35, 36, 34, 33, 33,
-			34, 34, 34, 34, 34, 33, 33, 33, 33, 34, 35, 35, 35, 34, 33, 33, 34, 35, 35, 35, 34, 35, 37, 37, 36, 35, 35, 36, 37, 39,
-			39, 38, 36, 36, 36, 38, 39, 37, 37, 38, 38, 37, 37, 38, 38, 38, 38, 38, 39, 38, 37, 38, 39, 38, 37, 38, 38, 37, 37, 38,
-			38, 38, 37, 37, 38, 39, 39, 38, 38, 39, 40, 39, 39, 39, 39, 39, 38, 39, 41, 41, 39, 37, 39, 40, 40, 40, 41, 40, 38, 39,
-			40, 40, 41, 42, 40, 38, 39, 39, 41, 41, 39, 38, 38, 40, 42, 40, 39, 39, 40, 40, 40, 0, 59, 11, 50, 0, 7, 251, 250, 9,
-			253, 8, 246, 253, 17, 225, 2, 33, 228, 2, 29, 239, 238, 19, 3, 255, 0, 249, 12, 254, 3, 7, 252, 250, 241, 17, 31, 231, 239, 24,
-			248, 234, 10, 12, 16, 253, 242, 4, 252, 6, 11, 238, 253, 254, 30, 19, 213, 253, 23, 235, 254, 20, 252, 17, 3, 232, 15, 245, 237, 33,
-			254, 225, 15, 25, 255, 246, 4, 252, 234, 13, 11, 235, 10, 27, 253, 242, 14, 243, 239, 14, 241, 22, 48, 245, 211, 236, 6, 8, 18, 11,
-			248, 234, 0, 18, 244, 251, 21, 245, 236, 5, 4, 24, 4, 229, 254, 17, 5, 244, 4, 19, 240, 246, 21, 10, 240, 2, 2, 229, 19, 14,
-			5, 7, 224, 244, 23, 9, 240, 252, 34, 253, 206, 8, 50, 235, 0, 25, 229, 4, 32, 237, 243, 12, 6, 16, 239, 236, 27, 254, 4, 254,
-			244, 28, 247, 253, 21, 244, 241, 9, 248, 13, 20, 236, 13, 10, 232, 244, 25, 4, 217, 12, 38, 254, 223, 224, 0, 43, 40, 243, 222, 238,
-			15, 27, 236, 239, 32, 20, 214, 225, 21, 29, 247, 241, 0, 11, 31, 248, 220, 7, 0, 21, 22, 217, 203, 39, 56, 222, 237, 20, 253, 4,
-			9, 238, 227, 9, 23, 11, 0, 242, 242, 242, 53, 4, 207, 45, 255, 228, 27, 255, 220, 12, 45, 250, 249, 244, 235, 8, 19, 8, 253, 18,
-			241, 212, 249, 40, 39, 244, 225, 248, 23, 12, 255, 8, 217, 0, 42, 251, 233, 22, 29, 215, 234, 19, 6, 253, 0, 19, 250, 238, 3, 3,
-			24, 35, 221, 209, 36, 21, 237, 10, 8, 250, 228, 6, 29, 10, 243, 227, 247, 0, 5, 29, 18, 216, 243, 46, 231, 252, 22, 244, 254, 249,
-			249, 255, 1, 250, 7, 14, 252, 29, 246, 189, 21, 33, 9, 13, 233, 246, 0, 243, 12, 30, 249, 221, 40, 20, 210, 252, 255, 1, 46, 25,
-			220, 237, 15, 13, 31, 233, 209, 30, 44, 219, 230, 29, 238, 253, 35, 255, 236, 251, 7, 253, 5, 254, 19, 48, 197, 189, 50, 11, 34, 29,
-			191, 4, 34, 236, 247, 242, 246, 35, 43, 231, 216, 7, 9, 37, 3, 190, 247, 64, 16, 216, 5, 243, 241, 59, 237, 197, 19, 56, 18, 207,
-			223, 253, 37, 45, 215, 206, 32, 51, 232, 224, 13, 26, 37, 229, 222, 251, 22, 43, 226, 219, 28, 251, 247, 13, 2, 0, 253, 3, 251, 240,
-			31, 25, 226, 232, 2, 25, 37, 254, 217, 234, 26, 21, 246, 232, 245, 18, 31, 247, 216, 15, 20, 231, 226, 16, 55, 250, 218, 12, 57, 216,
-			206, 81, 255, 199, 44, 51, 221, 198, 6, 248, 27, 58, 225, 215, 243, 27, 48, 239, 188, 47, 52, 186, 242, 45, 6, 0, 237, 203, 5, 85,
-			241, 190, 21, 15, 235, 49, 33, 167, 255, 98, 212, 241, 46, 194, 0, 48, 236, 9, 2, 222, 23, 35, 0, 232, 0, 25, 249, 9, 4, 227,
-			4, 37, 46, 240, 171, 233, 46, 11, 225, 19, 18, 228, 231, 248, 33, 28, 215, 241, 35, 241, 6, 69, 223, 151, 32, 72, 199, 19, 69, 188,
-			199, 35, 46, 243, 226, 34, 3, 200, 246, 46, 34, 255, 249, 231, 231, 41, 27, 211, 220, 24, 38, 24, 243, 0, 254, 205, 243, 56, 1, 254,
-			22, 226, 244, 12, 244, 247, 26, 54, 239, 222, 241, 3, 46, 28, 247, 204, 236, 32, 14, 245, 238, 30, 23, 252, 245, 210, 0, 34, 227, 244,
-			74, 7, 237, 4, 202, 243, 44, 36, 245, 249, 9, 241, 238, 232, 59, 55, 157, 197, 93, 60, 204, 250, 23, 177, 244, 82, 8, 1, 6, 199,
-			5, 35, 2, 6, 197, 234, 54, 9, 18, 6, 216, 229, 13, 25, 27, 255, 181, 252, 73, 253, 236, 236, 246, 51, 33, 234, 224, 10, 11, 248,
-			5, 0, 235, 24, 21, 234, 18, 0, 224, 31, 31, 199, 236, 46, 252, 234, 239, 5, 48, 246, 216, 24, 26, 226, 217, 249, 52, 52, 3, 241,
-			206, 207, 23, 39, 12, 255, 31, 247, 194, 22, 51, 0, 210, 201, 55, 90, 228, 187, 249, 14, 16, 22, 254, 246, 249, 226, 13, 31, 243, 253,
-			34, 0, 238, 7, 0, 241, 246, 238, 39, 56, 232, 210, 227, 253, 33, 28, 228, 214, 55, 56, 208, 213, 15, 252, 217, 222, 26, 103, 29, 197,
-			232, 251, 228, 0, 233, 29, 96, 245, 215, 0, 0, 245, 242, 34, 31, 24, 25, 202, 180, 254, 8, 35, 65, 216, 219, 48, 53, 252, 159, 205,
-			49, 81, 27, 209, 182, 224, 78, 31, 231, 4, 255, 30, 238, 200, 16, 2, 238, 10, 250, 30, 67, 220, 165, 4, 64, 38, 254, 214, 215, 33,
-			50, 254, 234, 204, 7, 61, 39, 242, 214, 16, 246, 218, 11, 20, 32, 30, 247, 179, 228, 97, 35, 196, 212, 16, 34, 3, 5, 5, 215, 225,
-			4, 16, 52, 27, 214, 245, 247, 239, 17, 24, 1, 239, 240, 34, 50, 233, 176, 239, 69, 48, 210, 203, 250, 54, 82, 209, 200, 41, 240, 243,
-			21, 242, 241, 24, 24, 2, 244, 4, 255, 238, 10, 7, 246, 23, 1, 250, 24, 237, 227, 19, 7, 9, 9, 233, 250, 0, 254, 23, 251, 4,
-			245, 208, 32, 60, 251, 198, 199, 40, 91, 11, 180, 213, 48, 22, 233, 240, 0, 249, 255, 36, 12, 243, 211, 226, 46, 48, 241, 243, 239, 207,
-			225, 38, 81, 23, 213, 239, 17, 39, 7, 220, 225, 249, 13, 0, 246, 33, 36, 248, 243, 0, 247, 248, 2, 20, 24, 4, 238, 229, 2, 240,
-			223, 28, 88, 27, 202, 211, 244, 6, 217, 13, 77, 223, 220, 43, 242, 231, 38, 1, 24, 29, 175, 213, 33, 2, 21, 28, 10, 241, 250, 4,
-			246, 236, 11, 31, 253, 25, 25, 207, 248, 14, 8, 32, 246, 202, 237, 8, 57, 34, 227, 199, 243, 12, 244, 42, 48, 242, 222, 221, 43, 34,
-			197, 200, 13, 72, 22, 244, 222, 189, 13, 34, 1, 37, 38, 194, 194, 47, 19, 250, 0, 179, 4, 125, 15, 171, 248, 3, 219, 50, 64, 199,
-			213, 77, 44, 244, 0, 168, 224, 91, 4, 222, 32, 40, 239, 248, 7, 249, 6, 10, 14, 16, 250, 5, 238, 224, 37, 25, 247, 246, 192, 230,
-			99, 69, 186, 201, 34, 13, 240, 242, 6, 20, 40, 8, 202, 253, 252, 223, 30, 28, 243, 254, 248, 4, 20, 230, 237, 249, 3, 36, 241, 193,
-			242, 36, 30, 1, 236, 244, 210, 226, 85, 78, 227, 203, 203, 250, 47, 5, 1, 51, 35, 246, 234, 194, 208, 30, 54, 42, 15, 211, 226, 21,
-			19, 246, 236, 6, 46, 18, 235, 206, 216, 27, 28, 43, 13, 195, 251, 12, 18, 23, 236, 5, 30, 230, 236, 18, 221, 231, 59, 50, 233, 200,
-			14, 62, 239, 220, 41, 240, 240, 39, 14, 222, 244, 48, 41, 244, 223, 242, 251, 216, 246, 62, 31, 224, 245, 25, 7, 220, 232, 4, 5, 19,
-			7, 231, 11, 10, 241, 1, 227, 237, 42, 44, 0, 230, 244, 239, 238, 30, 34, 19, 234, 196, 215, 23, 37, 14, 3, 214, 0, 36, 255, 192,
-			185, 50, 91, 43, 253, 218, 226, 244, 2, 250, 243, 41, 28, 243, 10, 9, 226, 245, 242, 246, 63, 33, 239, 21, 212, 202, 11, 37, 53, 32,
-			252, 229, 208, 243, 6, 252, 37, 59, 21, 233, 226, 211, 228, 33, 38, 247, 229, 7, 4, 243, 221, 224, 83, 74, 210, 198, 202, 5, 62, 27,
-			245, 232, 17, 3, 210, 25, 76, 241, 185, 29, 80, 236, 201, 228, 20, 78, 39, 240, 185, 200, 56, 76, 13, 237, 223, 200, 246, 48, 32, 251,
-			249, 13, 39, 14, 199, 171, 10, 79, 44, 241, 166, 181, 37, 66, 33, 242, 221, 233, 240, 252, 39, 20, 216, 2, 249, 2, 26, 194, 221, 52,
-			40, 18, 7, 243, 219, 227, 14, 26, 48, 21, 206, 241, 13, 217, 254, 43, 3, 0, 30, 241, 221, 5, 12, 20, 49, 28, 202, 178, 227, 13,
-			41, 51, 29, 0, 216, 208, 251, 34, 1, 237, 3, 2, 5, 4, 230, 240, 7, 42, 31, 246, 207, 213, 19, 6, 27, 82, 243, 194, 220, 10,
-			42, 32, 230, 208, 63, 60, 192, 239, 16, 251, 34, 47, 2, 229, 13, 4, 199, 3, 62, 47, 248, 190, 197, 253, 17, 37, 55, 231, 151, 37,
-			71, 194, 214, 42, 23, 0, 252, 252, 2, 10, 7, 9, 3, 242, 251, 241, 223, 248, 36, 61, 255, 187, 203, 246, 12, 22, 39, 0, 236, 253,
-			232, 11, 52, 8, 202, 199, 6, 68, 42, 241, 236, 5, 255, 0, 15, 249, 0, 243, 252, 60, 38, 215, 184, 231, 37, 66, 34, 229, 237, 17,
-			11, 244, 7, 16, 254, 253, 25, 0, 212, 251, 2, 222, 249, 30, 40, 1, 232, 240, 7, 1, 236, 242, 255, 5, 17, 4, 248, 0, 238, 250,
-			252, 244, 29, 24, 243, 212, 245, 22, 222, 6, 56, 245, 215, 3, 0, 1, 20, 240, 8, 14, 222, 42, 72, 223, 213, 234, 15, 33, 21, 11,
-			234, 12, 25, 247, 237, 6, 252, 5, 20, 237, 251, 18, 255, 17, 12, 4, 251, 214, 239, 21, 12, 41, 11, 180, 214, 52, 31, 238, 248, 2,
-			8, 29, 247, 216, 2, 40, 248, 240, 7, 243, 22, 18, 233, 246, 245, 238, 34, 52, 249, 252, 253, 221, 241, 1, 26, 35, 229, 218, 10, 41,
-			22, 235, 1, 14, 237, 233, 252, 252, 0, 18, 22, 24, 5, 246, 245, 245, 219, 254, 53, 14, 249, 11, 1, 225, 245, 255, 2, 20, 37, 255,
-			214, 224, 16, 22, 249, 234, 224, 253, 17, 250, 3, 249, 227, 233, 255, 54, 44, 225, 209, 209, 232, 60, 95, 239, 172, 222, 31, 27, 252, 12,
-			0, 252, 32, 37, 35, 224, 180, 246, 55, 47, 11, 231, 213, 2, 28, 3, 37, 23, 231, 192, 232, 41, 17, 242, 247, 253, 25, 39, 236, 212,
-			244, 18, 45, 244, 245, 1, 221, 8, 28, 252, 253, 13, 230, 216, 14, 23, 35, 33, 243, 5, 11, 245, 230, 241, 29, 24, 0, 12, 16, 0,
-			11, 8, 254, 2, 246, 234, 243, 250, 33, 44, 0, 217, 214, 238, 15, 50, 11, 215, 211, 6, 28, 254, 2, 234, 219, 23, 24, 37, 25, 218,
-			243, 255, 233, 246, 25, 13, 251, 28, 11, 14, 33, 223, 174, 0, 60, 0, 240, 248, 232, 254, 18, 21, 29, 26, 208, 187, 13, 11, 50, 48,
-			215, 223, 252, 251, 253, 41, 64, 26, 220, 200, 1, 238, 234, 30, 48, 59, 242, 206, 223, 189, 255, 83, 50, 249, 218, 197, 227, 29, 23, 0,
-			250, 236, 236, 9, 36, 231, 203, 21, 33, 251, 249, 219, 221, 243, 51, 33, 243, 240, 223, 21, 15, 0, 51, 252, 191, 17, 68, 32, 242, 238,
-			232, 225, 32, 62, 6, 206, 1, 29, 233, 221, 248, 20, 32, 57, 46, 227, 202, 215, 235, 25, 59, 47, 244, 203, 0, 33, 4, 4, 8, 235,
-			208, 231, 20, 36, 19, 253, 1, 241, 228, 0, 21, 12, 246, 248, 0, 47, 10, 214, 229, 215, 12, 55, 27, 243, 200, 236, 32, 52, 47, 5,
-			213, 212, 227, 252, 37, 69, 31, 246, 225, 231, 6, 32, 49, 205, 190, 21, 238, 210, 243, 5, 12, 27, 55, 253, 169, 195, 239, 19, 11, 45,
-			63, 219, 192, 4, 255, 246, 27, 11, 249, 38, 52, 38, 14, 237, 235, 234, 11, 64, 36, 8, 255, 237, 251, 13, 244, 229, 246, 31, 49, 35,
-			230, 178, 201, 240, 16, 34, 37, 246, 201, 233, 212, 212, 35, 60, 39, 252, 186, 178, 253, 41, 45, 67, 12, 228, 226, 195, 211, 52, 104, 46,
-			225, 238, 244, 248, 21, 237, 232, 59, 69, 15, 191, 169, 251, 50, 67, 33, 253, 232, 212, 236, 245, 254, 26, 14, 252, 242, 245, 221, 193, 246,
-			31, 60, 77, 16, 170, 160, 240, 57, 64, 19, 225, 220, 219, 7, 44, 238, 251, 53, 3, 226, 5, 244, 234, 11, 35, 38, 0, 251, 3, 251,
-			11, 17, 8, 251, 241, 240, 8, 20, 251, 0, 238, 248, 43, 0, 234, 4, 243, 251, 29, 250, 242, 52, 44, 229, 207, 250, 11, 7, 49, 30,
-			232, 8, 251, 215, 211, 228, 31, 46, 39, 253, 196, 185, 253, 51, 4, 253, 14, 240, 242, 3, 253, 236, 249, 16, 22, 22, 4, 254, 0, 252,
-			248, 238, 249, 243, 252, 27, 8, 222, 235, 22, 12, 242, 229, 232, 14, 44, 26, 246, 240, 254, 13, 7, 236, 249, 38, 20, 10, 33, 220, 198,
-			7, 24, 31, 10, 251, 2, 227, 236, 24, 44, 1, 215, 250, 5, 34, 28, 237, 1, 48, 44, 213, 167, 212, 2, 48, 70, 28, 219, 192, 214,
-			42, 68, 236, 236, 9, 252, 237, 242, 11, 29, 14, 234, 213, 219, 232, 20, 57, 32, 246, 194, 196, 239, 26, 53, 35, 28, 246, 228, 241, 3,
-			50, 33, 19, 34, 14, 234, 218, 245, 9, 26, 44, 16, 239, 240, 214, 228, 34, 41, 8, 244, 214, 222, 4, 255, 16, 36, 248, 211, 204, 249,
-			22, 19, 14, 237, 224, 235, 248, 233, 241, 41, 84, 35, 204, 213, 15, 2, 236, 5, 30, 37, 246, 193, 220, 23, 65, 66, 8, 223, 224, 210,
-			205, 23, 68, 43, 20, 235, 230, 240, 3, 18, 4, 21, 30, 254, 248, 10, 3, 253, 10, 23, 26, 245, 240, 4, 217, 207, 6, 28, 7, 253,
-			226, 197, 1, 41, 13, 248, 212, 224, 242, 247, 25, 45, 39, 226, 225, 18, 19, 25, 9, 220, 7, 67, 43, 243, 193, 197, 14, 94, 77, 8,
-			227, 216, 252, 14, 2, 8, 28, 5, 170, 178, 20, 57, 32, 204, 164, 218, 37, 60, 34, 230, 217, 1, 244, 240, 16, 16, 0, 237, 1, 35,
-			252, 232, 228, 227, 40, 50, 9, 221, 200, 7, 84, 73, 26, 244, 174, 182, 39, 81, 49, 17, 194, 183, 0, 28, 45, 27, 227, 230, 2, 12,
-			251, 244, 248, 218, 10, 25, 3, 22, 238, 233, 246, 233, 36, 60, 13, 247, 2, 12, 0, 21, 7, 224, 18, 58, 36, 243, 191, 207, 238, 18,
-			32, 28, 33, 3, 238, 251, 14, 251, 217, 239, 3, 3, 33, 6, 218, 227, 251, 36, 40, 245, 207, 194, 218, 25, 54, 10, 233, 3, 249, 231,
-			4, 35, 12, 240, 238, 4, 15, 244, 239, 16, 9, 18, 15, 224, 251, 18, 12, 247, 1, 17, 253, 254, 254, 7, 245, 4, 52, 7, 202, 226,
-			6, 14, 17, 22, 242, 214, 3, 33, 21, 19, 228, 199, 252, 38, 65, 44, 214, 187, 232, 11, 37, 61, 22, 197, 179, 227, 17, 34, 31, 12,
-			244, 1, 245, 222, 250, 252, 8, 28, 14, 248, 234, 235, 225, 252, 40, 43, 10, 227, 229, 1, 26, 41, 23, 233, 203, 222, 248, 47, 74, 16,
-			237, 216, 235, 29, 27, 251, 2, 250, 220, 236, 6, 0, 9, 49, 56, 15, 218, 197, 210, 249, 46, 46, 16, 251, 225, 225, 2, 13, 11, 32,
-			253, 211, 247, 12, 240, 251, 14, 243, 13, 49, 12, 218, 226, 243, 2, 30, 49, 22, 249, 232, 228, 1, 18, 5, 248, 255, 7, 12, 16, 16,
-			246, 230, 3, 23, 19, 0, 235, 233, 14, 49, 17, 254, 235, 205, 249, 12, 35, 16, 215, 218, 3, 30, 245, 218, 223, 222, 248, 31, 41, 17,
-			237, 227, 243, 248, 249, 7, 11, 16, 36, 9, 244, 8, 8, 247, 255, 39, 36, 240, 220, 245, 20, 41, 17, 243, 254, 13, 15, 13, 250, 230,
-			238, 252, 11, 15, 9, 1, 11, 22, 253, 223, 232, 8, 0, 255, 6, 248, 230, 236, 0, 1, 13, 19, 255, 242, 227, 230, 3, 18, 250, 241,
-			238, 241, 9, 21, 23, 16, 13, 250, 222, 231, 4, 31, 37, 21, 254, 244, 227, 230, 2, 22, 32, 23, 253, 228, 216, 248, 37, 56, 29, 251,
-			214, 209, 243, 13, 39, 42, 247, 236, 239, 240, 18, 246, 254, 31, 246, 235, 3, 245, 250, 10, 13, 22, 20, 11, 239, 228, 227, 4, 17, 6,
-			17, 16, 0, 236, 12, 33, 250, 254, 247, 241, 14, 249, 249, 12, 4, 2, 6, 243, 228, 254, 16, 10, 12, 14, 4, 246, 245, 252, 245, 6,
-			19, 3, 15, 5, 248, 250, 247, 2, 255, 0, 12, 1, 240, 228, 247, 20, 30, 4, 231, 235, 251, 253, 231, 240, 35, 34, 254, 254, 248, 226,
-			240, 248, 14, 31, 4, 245, 254, 251, 9, 17, 12, 22, 4, 227, 222, 5, 29, 16, 245, 239, 24, 8, 246, 14, 13, 244, 228, 238, 5, 29,
-			18, 5, 249, 229, 250, 3, 15, 15, 247, 241, 237, 248, 18, 2, 3, 10, 253, 7, 2, 232, 237, 0, 116, 8, 28, 0, 1, 1, 1, 0,
-			1, 3, 2, 255, 252, 252, 255, 3, 7, 8, 5, 0, 253, 253, 255, 0, 3, 3, 2, 0, 254, 1, 4, 4, 2, 0, 255, 0, 0, 0,
-			0, 0, 3, 5, 4, 0, 253, 249, 250, 253, 0, 0, 254, 253, 254, 1, 8, 10, 5, 255, 244, 238, 239, 246, 245, 231, 228, 234, 249, 20,
-			41, 42, 24, 1, 239, 232, 245, 9, 24, 27, 17, 1, 247, 247, 254, 5, 9, 8, 5, 2, 1, 1, 1, 3, 7, 8, 5, 0, 252, 250,
-			250, 253, 1, 6, 8, 6, 4, 0, 255, 255, 0, 0, 0, 254, 253, 254, 255, 0, 1, 4, 7, 6, 2, 255, 251, 249, 252, 2, 7, 7,
-			8, 9, 11, 14, 15, 5, 240, 223, 215, 197, 189, 207, 232, 6, 33, 41, 31, 15, 4, 253, 254, 4, 12, 21, 21, 15, 8, 254, 248, 249,
-			255, 2, 1, 0, 3, 3, 0, 254, 0, 3, 6, 9, 9, 6, 6, 7, 2, 0, 2, 255, 254, 255, 251, 253, 1, 2, 1, 0, 1, 1,
-			0, 0, 253, 252, 253, 0, 7, 2, 255, 0, 255, 255, 0, 0, 254, 249, 248, 247, 253, 4, 254, 0, 2, 245, 240, 250, 251, 246, 0, 6,
-			0, 4, 10, 3, 1, 6, 3, 4, 5, 7, 8, 12, 2, 252, 0, 2, 0, 9, 7, 255, 6, 12, 254, 254, 9, 251, 241, 6, 13, 247,
-			253, 8, 249, 254, 10, 2, 1, 1, 251, 252, 4, 251, 254, 12, 255, 238, 0, 3, 249, 0, 14, 8, 246, 0, 4, 246, 255, 1, 253, 5,
-			3, 252, 252, 255, 250, 1, 9, 0, 0, 6, 252, 249, 1, 4, 10, 2, 0, 5, 242, 253, 15, 255, 252, 9, 255, 244, 4, 11, 0, 4,
-			5, 251, 253, 250, 0, 9, 255, 253, 7, 255, 242, 254, 4, 248, 12, 17, 245, 253, 0, 246, 8, 9, 249, 6, 3, 244, 253, 4, 248, 4,
-			10, 253, 0, 7, 2, 4, 254, 0, 254, 252, 254, 251, 252, 9, 6, 13, 6, 247, 252, 5, 250, 6, 4, 251, 2, 2, 252, 5, 4, 0,
-			3, 252, 250, 255, 253, 4, 14, 0, 244, 2, 254, 253, 11, 3, 0, 6, 250, 240, 0, 5, 0, 9, 6, 252, 0, 248, 245, 6, 10, 6,
-			2, 252, 4, 250, 253, 5, 7, 6, 0, 255, 5, 252, 252, 0, 3, 2, 252, 255, 5, 248, 0, 5, 245, 251, 17, 6, 0, 9, 249, 248,
-			3, 2, 0, 6, 6, 248, 240, 0, 254, 248, 14, 12, 5, 9, 253, 1, 4, 242, 5, 11, 246, 6, 11, 250, 3, 1, 1, 255, 238, 2,
-			0, 237, 12, 14, 243, 7, 10, 249, 9, 12, 246, 3, 2, 242, 1, 12, 250, 254, 11, 2, 248, 0, 248, 244, 4, 246, 252, 16, 0, 10,
-			13, 231, 253, 10, 246, 4, 25, 1, 249, 3, 0, 244, 1, 12, 6, 4, 6, 0, 250, 248, 252, 255, 2, 1, 10, 0, 245, 254, 8, 1,
-			0, 11, 1, 241, 1, 0, 243, 15, 15, 240, 11, 11, 231, 1, 16, 250, 8, 11, 246, 250, 252, 250, 0, 6, 7, 2, 16, 0, 240, 4,
-			248, 234, 20, 6, 237, 13, 8, 235, 5, 12, 0, 2, 0, 252, 10, 252, 254, 0, 248, 255, 0, 255, 0, 248, 7, 10, 255, 11, 1, 245,
-			9, 5, 248, 3, 2, 248, 1, 9, 4, 7, 255, 1, 13, 249, 247, 9, 248, 245, 15, 8, 4, 14, 247, 246, 11, 246, 242, 19, 0, 245,
-			16, 251, 239, 16, 246, 233, 24, 6, 237, 17, 252, 235, 13, 0, 246, 26, 4, 249, 28, 254, 225, 4, 250, 239, 14, 254, 251, 15, 11, 0,
-			255, 249, 254, 255, 0, 253, 12, 17, 254, 249, 247, 249, 10, 10, 0, 4, 3, 252, 0, 250, 240, 9, 12, 248, 10, 12, 246, 2, 255, 246,
-			11, 2, 247, 18, 11, 241, 4, 2, 233, 10, 15, 243, 0, 2, 247, 3, 254, 254, 19, 8, 251, 0, 252, 240, 243, 4, 4, 9, 19, 0,
-			248, 10, 239, 239, 18, 252, 1, 22, 248, 247, 14, 251, 2, 9, 241, 253, 4, 243, 5, 13, 0, 5, 255, 253, 1, 254, 4, 244, 246, 27,
-			255, 252, 22, 250, 234, 6, 7, 251, 3, 15, 250, 248, 7, 240, 232, 19, 12, 253, 27, 6, 227, 6, 255, 234, 15, 16, 0, 13, 2, 246,
-			0, 7, 249, 241, 7, 7, 247, 18, 2, 245, 19, 255, 230, 10, 245, 249, 34, 7, 247, 28, 249, 223, 2, 2, 250, 13, 13, 249, 249, 245,
-			3, 13, 255, 251, 5, 241, 246, 19, 2, 251, 16, 249, 235, 12, 8, 250, 7, 254, 238, 0, 12, 3, 248, 11, 11, 251, 20, 0, 230, 22,
-			7, 249, 10, 239, 242, 21, 243, 250, 24, 252, 244, 11, 249, 250, 8, 9, 2, 247, 250, 0, 251, 12, 8, 253, 11, 6, 249, 254, 255, 0,
-			247, 252, 15, 0, 242, 10, 10, 254, 245, 250, 6, 253, 250, 21, 255, 241, 0, 1, 255, 247, 2, 27, 241, 247, 25, 255, 236, 3, 237, 244,
-			13, 10, 15, 19, 3, 11, 250, 233, 11, 15, 247, 8, 4, 239, 13, 0, 235, 10, 12, 241, 254, 3, 246, 24, 22, 243, 10, 244, 214, 6,
-			6, 254, 39, 12, 239, 4, 6, 241, 248, 16, 253, 251, 18, 241, 238, 31, 238, 217, 41, 8, 215, 35, 20, 216, 17, 18, 225, 9, 7, 236,
-			12, 7, 238, 4, 255, 255, 20, 241, 252, 31, 0, 243, 20, 8, 238, 6, 1, 6, 252, 234, 18, 18, 235, 14, 250, 242, 14, 252, 249, 26,
-			251, 233, 253, 13, 251, 232, 22, 33, 242, 250, 30, 239, 225, 16, 2, 217, 26, 31, 232, 251, 27, 248, 247, 6, 255, 4, 4, 243, 9, 8,
-			243, 3, 0, 9, 13, 226, 12, 5, 218, 40, 38, 230, 26, 242, 233, 13, 233, 248, 41, 236, 245, 31, 234, 245, 19, 233, 2, 17, 231, 4,
-			11, 230, 254, 13, 247, 16, 20, 7, 8, 246, 240, 0, 243, 8, 36, 2, 229, 22, 15, 229, 13, 6, 245, 4, 0, 243, 244, 9, 26, 232,
-			14, 45, 217, 245, 34, 212, 255, 51, 235, 235, 50, 245, 248, 36, 228, 220, 18, 238, 250, 27, 244, 238, 12, 245, 248, 14, 254, 254, 25, 6,
-			248, 7, 238, 254, 27, 2, 249, 6, 235, 9, 7, 11, 5, 248, 252, 253, 230, 249, 24, 3, 240, 42, 23, 233, 10, 254, 219, 3, 0, 233,
-			18, 18, 235, 3, 29, 0, 234, 247, 247, 252, 254, 11, 21, 0, 253, 253, 237, 11, 42, 237, 252, 29, 232, 225, 21, 254, 7, 8, 219, 249,
-			39, 231, 22, 47, 219, 6, 41, 225, 9, 11, 221, 3, 19, 250, 1, 9, 240, 252, 4, 255, 11, 239, 254, 23, 254, 237, 22, 253, 245, 19,
-			247, 237, 14, 245, 244, 21, 5, 244, 1, 1, 6, 251, 253, 37, 7, 230, 37, 17, 207, 6, 31, 229, 242, 28, 251, 234, 13, 244, 250, 24,
-			249, 3, 13, 214, 18, 47, 242, 12, 3, 245, 44, 7, 224, 43, 255, 223, 45, 245, 233, 22, 252, 255, 255, 203, 245, 221, 170, 235, 244, 185,
-			26, 35, 218, 12, 20, 237, 40, 35, 238, 43, 32, 236, 46, 20, 220, 62, 253, 205, 55, 6, 197, 57, 251, 209, 49, 23, 225, 43, 244, 227,
-			23, 20, 244, 0, 18, 12, 221, 245, 47, 234, 243, 48, 249, 193, 37, 13, 210, 11, 34, 254, 10, 244, 25, 4, 215, 13, 17, 201, 22, 7,
-			187, 38, 30, 204, 40, 12, 212, 9, 242, 230, 21, 220, 0, 45, 229, 236, 25, 249, 17, 23, 253, 10, 254, 24, 242, 239, 17, 240, 230, 41,
-			5, 216, 19, 29, 222, 11, 62, 219, 202, 48, 245, 216, 44, 21, 213, 21, 1, 229, 253, 11, 0, 8, 233, 19, 9, 252, 254, 252, 16, 40,
-			241, 251, 13, 230, 249, 17, 2, 0, 9, 19, 3, 238, 15, 241, 251, 24, 248, 4, 4, 231, 235, 245, 7, 37, 14, 253, 14, 3, 221, 0,
-			233, 245, 25, 4, 3, 67, 225, 220, 55, 231, 194, 74, 230, 203, 79, 237, 180, 76, 232, 231, 116, 223, 210, 46, 174, 240, 68, 180, 34, 50,
-			185, 40, 39, 162, 23, 38, 217, 29, 41, 200, 28, 28, 200, 11, 38, 194, 16, 45, 244, 4, 13, 231, 6, 7, 211, 35, 19, 217, 0, 14,
-			240, 15, 14, 12, 254, 250, 24, 245, 252, 32, 224, 0, 44, 204, 13, 21, 223, 37, 248, 194, 77, 6, 179, 56, 20, 171, 37, 22, 184, 47,
-			22, 226, 56, 231, 204, 78, 231, 199, 69, 235, 210, 63, 229, 228, 82, 221, 215, 85, 191, 216, 86, 229, 225, 90, 220, 209, 51, 246, 211, 59,
-			12, 222, 47, 249, 179, 63, 21, 160, 89, 23, 159, 66, 27, 130, 31, 55, 192, 12, 60, 209, 3, 56, 232, 247, 42, 243, 226, 33, 243, 198,
-			23, 9, 216, 36, 16, 201, 251, 25, 255, 245, 18, 22, 250, 8, 19, 210, 17, 9, 237, 50, 11, 201, 45, 8, 207, 36, 251, 239, 37, 238,
-			215, 49, 1, 222, 56, 26, 210, 251, 245, 236, 34, 19, 238, 1, 25, 205, 236, 50, 243, 216, 46, 14, 219, 12, 1, 220, 37, 31, 215, 23,
-			5, 224, 15, 17, 248, 24, 218, 236, 36, 210, 32, 44, 182, 24, 92, 168, 243, 73, 212, 241, 60, 226, 237, 43, 212, 250, 36, 252, 254, 29,
-			220, 18, 4, 218, 11, 17, 224, 68, 35, 166, 19, 7, 191, 49, 42, 220, 32, 246, 246, 16, 200, 21, 79, 208, 16, 59, 150, 233, 49, 212,
-			16, 52, 232, 253, 19, 210, 228, 0, 7, 10, 22, 23, 249, 214, 37, 251, 199, 20, 41, 224, 36, 27, 185, 2, 25, 208, 33, 52, 207, 15,
-			28, 218, 18, 17, 238, 48, 16, 200, 17, 253, 213, 41, 29, 223, 4, 0, 0, 29, 247, 230, 5, 242, 248, 31, 17, 235, 244, 239, 27, 11,
-			245, 27, 239, 226, 58, 9, 206, 19, 244, 239, 76, 253, 210, 20, 254, 254, 25, 237, 249, 41, 12, 228, 249, 253, 236, 2, 40, 18, 210, 247,
-			12, 243, 239, 232, 246, 13, 240, 37, 27, 213, 23, 41, 196, 247, 46, 233, 237, 25, 0, 242, 6, 238, 0, 31, 4, 249, 9, 254, 238, 248,
-			25, 26, 237, 244, 21, 238, 242, 32, 251, 225, 5, 255, 221, 14, 19, 244, 18, 7, 13, 22, 243, 253, 236, 246, 35, 15, 243, 25, 2, 243,
-			18, 15, 247, 22, 248, 237, 35, 0, 231, 8, 246, 245, 14, 246, 5, 3, 231, 16, 232, 228, 19, 253, 245, 34, 251, 250, 30, 240, 231, 33,
-			251, 240, 13, 228, 247, 33, 223, 3, 44, 248, 253, 10, 252, 7, 30, 33, 0, 3, 14, 7, 249, 246, 0, 247, 241, 23, 11, 253, 1, 229,
-			230, 16, 248, 234, 11, 222, 224, 38, 0, 217, 31, 0, 206, 47, 5, 206, 54, 20, 207, 32, 18, 204, 19, 67, 209, 237, 49, 209, 228, 60,
-			217, 229, 66, 241, 214, 50, 9, 224, 38, 3, 215, 31, 10, 231, 36, 5, 223, 14, 24, 220, 2, 39, 210, 215, 58, 239, 204, 51, 254, 201,
-			33, 0, 203, 30, 28, 222, 18, 38, 211, 236, 47, 220, 241, 40, 253, 237, 47, 43, 214, 6, 53, 240, 0, 47, 252, 0, 42, 20, 244, 9,
-			6, 244, 4, 19, 3, 252, 7, 4, 226, 245, 24, 244, 253, 37, 245, 225, 20, 242, 223, 11, 8, 241, 21, 21, 233, 0, 12, 221, 254, 13,
-			221, 0, 8, 211, 243, 249, 242, 251, 0, 228, 241, 250, 236, 11, 7, 243, 16, 1, 250, 7, 253, 247, 8, 1, 247, 20, 6, 218, 12, 27,
-			249, 11, 29, 249, 6, 7, 255, 16, 255, 6, 40, 6, 2, 30, 10, 249, 251, 6, 244, 239, 2, 2, 253, 10, 22, 253, 6, 25, 252, 247,
-			28, 1, 233, 2, 251, 227, 1, 15, 228, 244, 8, 234, 249, 22, 255, 252, 9, 3, 239, 0, 11, 5, 246, 0, 5, 253, 8, 3, 250, 242,
-			4, 5, 235, 243, 15, 245, 247, 8, 244, 246, 8, 4, 251, 13, 254, 255, 11, 12, 9, 14, 28, 12, 255, 13, 6, 250, 3, 11, 4, 10,
-			23, 0, 236, 1, 15, 251, 4, 11, 250, 255, 4, 247, 249, 8, 253, 253, 12, 255, 237, 251, 3, 246, 248, 245, 238, 250, 3, 254, 8, 5,
-			1, 252, 1, 253, 241, 7, 15, 237, 240, 0, 232, 248, 15, 248, 237, 242, 232, 247, 254, 242, 250, 250, 252, 1, 0, 251, 5, 251, 2, 11,
-			232, 11, 45, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14,
-			13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
-			14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 16, 16,
-			16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
-			17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-			18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 18, 17, 17, 17, 17, 17, 17,
-			17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16,
-			16, 16, 16, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-			16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 15, 15, 15, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-			15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 14, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-			12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10,
-			10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
-			9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 10, 10, 10, 10, 9, 9, 9, 10, 10, 9, 9, 9, 10, 10, 10, 10, 10,
-			10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
-			9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10,
-			10, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-			11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14,
-			14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-			15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 15, 15, 16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16,
-			16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 16, 16, 16, 16, 17, 17, 16, 16, 17, 17, 17, 17,
-			16, 16, 16, 16, 17, 17, 16, 17, 17, 17, 17, 17, 16, 17, 17, 17, 17, 17, 17, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
-			17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 15, 16,
-			16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14,
-			14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 14, 13, 13, 13, 13, 13, 13, 13,
-			13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11,
-			11, 11, 11, 11, 11, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-			10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-			10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11,
-			11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-			11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-			12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-			13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 9, 3, 0, 0, 12, 42, 58, 34,
-			0, 250, 6, 11, 11, 14, 16, 14, 14, 19, 23, 24, 20, 14, 10, 10, 11, 13, 17, 22, 23, 20, 15, 13, 15, 17, 18, 18, 16, 13,
-			12, 14, 19, 22, 23, 21, 17, 14, 12, 13, 17, 20, 21, 21, 19, 17, 16, 16, 17, 17, 18, 19, 20, 19, 17, 17, 19, 19, 17, 17,
-			17, 17, 18, 19, 19, 19, 17, 16, 15, 16, 17, 19, 20, 20, 18, 17, 16, 17, 17, 17, 17, 18, 19, 18, 17, 16, 17, 17, 18, 18,
-			17, 16, 16, 17, 17, 17, 18, 18, 19, 19, 18, 17, 15, 17, 18, 16, 16, 19, 20, 17, 16, 18, 18, 17, 16, 17, 18, 18, 17, 17,
-			17, 18, 18, 17, 16, 17, 17, 17, 16, 17, 18, 17, 17, 18, 18, 18, 16, 16, 14, 8, 249, 229, 213, 226, 37, 119, 127, 62, 10, 0,
-			241, 208, 200, 228, 1, 13, 22, 44, 70, 85, 77, 49, 14, 239, 221, 226, 248, 11, 13, 5, 5, 20, 35, 46, 55, 61, 51, 13, 214, 182,
-			207, 7, 48, 60, 61, 55, 37, 12, 254, 0, 3, 0, 253, 3, 17, 30, 42, 46, 36, 16, 255, 243, 246, 10, 29, 26, 16, 15, 9, 247,
-			227, 214, 223, 9, 67, 95, 76, 37, 8, 0, 1, 0, 255, 249, 238, 245, 24, 54, 52, 41, 38, 18, 239, 227, 250, 22, 32, 33, 32, 23,
-			6, 0, 14, 26, 12, 250, 251, 5, 13, 24, 31, 28, 21, 17, 11, 1, 0, 0, 3, 15, 25, 17, 7, 13, 29, 34, 14, 243, 244, 14,
-			24, 6, 252, 5, 24, 34, 22, 10, 14, 15, 0, 253, 18, 22, 1, 253, 14, 20, 13, 10, 12, 21, 25, 11, 254, 6, 19, 16, 6, 6,
-			8, 10, 21, 29, 17, 254, 249, 6, 29, 36, 12, 251, 4, 13, 8, 16, 27, 19, 10, 7, 0, 7, 32, 30, 251, 240, 14, 36, 20, 11,
-			22, 15, 0, 2, 10, 20, 29, 10, 239, 3, 45, 35, 251, 2, 39, 29, 243, 233, 8, 47, 42, 5, 249, 10, 23, 19, 12, 6, 9, 17,
-			20, 13, 3, 9, 28, 33, 12, 240, 239, 11, 44, 48, 23, 0, 247, 247, 5, 31, 43, 28, 6, 0, 6, 6, 3, 13, 20, 15, 13, 20,
-			21, 11, 8, 22, 22, 250, 243, 14, 26, 17, 26, 42, 19, 237, 240, 30, 45, 2, 240, 19, 35, 10, 8, 30, 25, 7, 13, 19, 253, 237,
-			11, 57, 52, 2, 233, 4, 34, 23, 8, 18, 25, 8, 1, 20, 32, 21, 8, 8, 10, 9, 6, 16, 42, 48, 16, 241, 244, 18, 44, 39,
-			18, 4, 247, 244, 20, 63, 44, 248, 249, 28, 28, 8, 7, 15, 20, 27, 17, 3, 14, 31, 19, 250, 248, 9, 16, 252, 221, 216, 242, 20,
-			55, 92, 103, 60, 3, 241, 250, 244, 228, 252, 47, 54, 11, 8, 68, 92, 33, 216, 200, 251, 45, 30, 9, 55, 79, 9, 225, 18, 41, 10,
-			13, 39, 26, 247, 225, 251, 61, 76, 22, 4, 34, 31, 1, 246, 252, 12, 33, 47, 37, 0, 239, 26, 60, 20, 244, 24, 43, 0, 237, 21,
-			56, 33, 251, 241, 9, 58, 67, 13, 242, 13, 14, 246, 12, 38, 18, 8, 24, 28, 23, 17, 14, 26, 22, 246, 248, 27, 33, 25, 32, 11,
-			239, 8, 50, 35, 255, 249, 17, 40, 29, 2, 5, 34, 19, 234, 6, 69, 43, 241, 251, 21, 37, 51, 16, 207, 211, 32, 90, 74, 14, 230,
-			237, 17, 44, 41, 9, 236, 253, 35, 36, 19, 21, 13, 13, 50, 38, 212, 204, 50, 94, 18, 228, 5, 34, 32, 22, 2, 253, 19, 17, 249,
-			19, 64, 47, 1, 236, 239, 15, 44, 24, 253, 21, 40, 3, 239, 11, 41, 39, 31, 12, 229, 222, 3, 41, 46, 33, 12, 4, 26, 27, 242,
-			220, 8, 59, 41, 252, 252, 10, 4, 11, 41, 38, 252, 234, 14, 48, 20, 236, 235, 22, 60, 34, 228, 238, 55, 67, 4, 205, 208, 18, 85,
-			66, 253, 228, 240, 2, 39, 53, 20, 0, 253, 232, 245, 48, 50, 248, 235, 26, 64, 31, 209, 194, 39, 106, 18, 191, 238, 56, 47, 253, 243,
-			24, 32, 246, 249, 43, 33, 242, 252, 17, 0, 8, 41, 32, 254, 245, 0, 3, 12, 36, 47, 18, 232, 232, 24, 50, 7, 225, 248, 35, 45,
-			31, 0, 215, 239, 64, 80, 0, 210, 241, 20, 26, 28, 15, 250, 0, 32, 43, 13, 246, 244, 2, 17, 16, 10, 24, 27, 245, 251, 42, 33,
-			252, 254, 250, 246, 30, 47, 10, 2, 20, 5, 243, 10, 37, 28, 10, 252, 240, 254, 31, 54, 33, 240, 214, 254, 67, 70, 242, 200, 7, 46,
-			15, 19, 36, 253, 228, 15, 34, 11, 12, 19, 3, 13, 36, 7, 237, 14, 28, 254, 5, 37, 14, 249, 26, 37, 247, 232, 23, 47, 13, 243,
-			253, 12, 24, 52, 48, 253, 235, 5, 8, 245, 5, 41, 46, 16, 2, 21, 22, 241, 221, 20, 88, 59, 216, 193, 34, 98, 30, 225, 254, 10,
-			248, 32, 85, 37, 217, 230, 26, 30, 14, 28, 38, 24, 255, 240, 5, 40, 24, 242, 18, 75, 50, 242, 227, 242, 13, 56, 59, 11, 242, 253,
-			17, 40, 39, 11, 250, 253, 15, 50, 56, 3, 222, 0, 41, 26, 19, 41, 24, 233, 244, 47, 45, 0, 1, 37, 30, 3, 7, 23, 24, 9,
-			2, 9, 16, 34, 54, 38, 254, 237, 245, 0, 27, 61, 55, 9, 246, 10, 14, 2, 19, 44, 33, 252, 237, 16, 69, 54, 238, 225, 30, 58,
-			25, 252, 238, 244, 50, 97, 26, 201, 231, 37, 43, 48, 41, 241, 233, 35, 37, 254, 26, 59, 1, 207, 249, 44, 63, 68, 30, 222, 213, 1,
-			37, 53, 44, 1, 240, 27, 43, 0, 1, 45, 28, 236, 248, 26, 28, 24, 23, 16, 27, 35, 6, 243, 5, 21, 25, 29, 21, 9, 12, 13,
-			9, 26, 40, 17, 235, 235, 29, 78, 61, 254, 225, 240, 6, 38, 55, 24, 251, 6, 23, 21, 25, 24, 3, 253, 15, 24, 25, 23, 11, 11,
-			29, 27, 13, 9, 254, 255, 33, 54, 21, 245, 3, 31, 25, 0, 255, 27, 48, 20, 238, 244, 31, 52, 30, 246, 234, 13, 45, 33, 4, 1,
-			15, 26, 21, 0, 244, 7, 46, 47, 6, 239, 3, 24, 11, 8, 30, 26, 250, 251, 17, 31, 37, 9, 225, 250, 47, 36, 0, 1, 19, 17,
-			1, 3, 19, 18, 5, 19, 28, 253, 240, 10, 26, 21, 25, 19, 0, 250, 3, 18, 25, 24, 12, 255, 252, 16, 38, 7, 226, 10, 83, 51,
-			215, 199, 5, 56, 48, 7, 238, 2, 26, 13, 0, 24, 35, 4, 247, 12, 12, 254, 10, 21, 9, 2, 13, 29, 32, 12, 242, 254, 27, 18,
-			243, 239, 16, 54, 50, 10, 242, 253, 8, 3, 14, 38, 22, 242, 244, 12, 35, 47, 20, 230, 241, 30, 22, 4, 36, 41, 234, 214, 22, 58,
-			26, 254, 253, 13, 32, 30, 3, 247, 6, 16, 9, 18, 41, 27, 243, 242, 22, 44, 22, 3, 6, 253, 248, 29, 55, 14, 241, 12, 38, 18,
-			251, 8, 35, 23, 239, 231, 18, 60, 48, 12, 6, 250, 215, 246, 83, 94, 3, 210, 225, 243, 26, 85, 73, 250, 206, 238, 38, 64, 29, 226,
-			222, 32, 84, 34, 203, 218, 63, 74, 236, 209, 25, 66, 36, 4, 248, 237, 241, 15, 57, 61, 6, 222, 249, 47, 54, 5, 224, 247, 35, 40,
-			12, 5, 19, 5, 247, 27, 64, 25, 226, 238, 31, 42, 22, 4, 247, 252, 28, 49, 46, 28, 247, 221, 246, 33, 57, 53, 12, 229, 248, 42,
-			43, 0, 239, 13, 45, 47, 32, 0, 231, 253, 34, 31, 16, 25, 30, 8, 254, 28, 44, 10, 242, 6, 31, 30, 30, 33, 14, 248, 253, 17,
-			26, 33, 44, 30, 253, 248, 15, 24, 18, 15, 15, 23, 29, 18, 7, 12, 26, 37, 28, 247, 230, 19, 61, 38, 4, 8, 10, 2, 21, 46,
-			39, 12, 244, 235, 13, 58, 40, 0, 10, 38, 17, 242, 5, 47, 44, 1, 246, 17, 36, 27, 10, 12, 21, 8, 0, 24, 50, 39, 8, 250,
-			9, 28, 2, 242, 31, 67, 32, 0, 8, 13, 7, 7, 20, 34, 29, 14, 7, 2, 0, 27, 56, 35, 247, 240, 15, 36, 24, 9, 14, 24,
-			15, 3, 14, 32, 30, 17, 0, 239, 2, 54, 55, 4, 246, 21, 26, 254, 253, 25, 45, 27, 254, 255, 18, 21, 13, 21, 31, 14, 249, 253,
-			7, 21, 48, 50, 7, 233, 247, 20, 32, 22, 16, 18, 15, 9, 7, 8, 20, 34, 21, 253, 0, 25, 31, 6, 0, 26, 36, 5, 239, 9,
-			54, 46, 1, 245, 255, 0, 16, 44, 45, 11, 240, 0, 31, 29, 7, 0, 13, 33, 29, 0, 246, 8, 35, 35, 4, 253, 27, 28, 243, 247,
-			52, 59, 250, 217, 254, 31, 30, 28, 21, 4, 2, 12, 12, 17, 31, 18, 242, 241, 21, 38, 15, 9, 33, 27, 247, 243, 12, 19, 11, 20,
-			31, 13, 0, 8, 4, 252, 20, 38, 13, 247, 6, 20, 18, 34, 30, 240, 221, 5, 35, 26, 15, 13, 20, 21, 254, 241, 13, 36, 15, 247,
-			250, 7, 29, 45, 17, 239, 255, 19, 2, 1, 22, 18, 10, 13, 4, 7, 30, 20, 238, 242, 27, 32, 11, 15, 12, 247, 3, 32, 15, 252,
-			11, 16, 247, 249, 37, 53, 5, 219, 245, 34, 39, 8, 247, 3, 18, 11, 6, 26, 32, 0, 232, 248, 21, 29, 20, 15, 9, 5, 9, 8,
-			2, 3, 2, 4, 27, 35, 7, 254, 17, 9, 246, 10, 32, 13, 249, 3, 27, 30, 13, 0, 3, 11, 12, 6, 255, 253, 15, 46, 48, 11,
-			236, 240, 1, 16, 30, 32, 10, 240, 251, 35, 53, 27, 239, 222, 251, 38, 51, 27, 252, 241, 4, 33, 33, 12, 0, 253, 252, 12, 36, 34,
-			10, 255, 9, 17, 11, 13, 22, 9, 244, 4, 40, 44, 15, 241, 241, 21, 43, 20, 0, 3, 12, 17, 19, 17, 15, 6, 0, 18, 39, 17,
-			241, 251, 22, 20, 12, 28, 42, 19, 240, 235, 9, 38, 34, 13, 9, 19, 5, 249, 23, 49, 19, 240, 254, 31, 32, 7, 1, 13, 18, 21,
-			27, 21, 9, 8, 4, 2, 20, 37, 28, 15, 16, 15, 5, 253, 4, 25, 37, 33, 23, 12, 7, 5, 5, 14, 24, 18, 14, 28, 38, 25,
-			253, 241, 2, 29, 38, 30, 21, 16, 5, 254, 8, 24, 29, 32, 26, 8, 8, 19, 9, 254, 19, 42, 30, 8, 5, 13, 17, 15, 14, 11,
-			9, 17, 39, 46, 14, 234, 241, 18, 31, 22, 25, 34, 31, 13, 246, 242, 11, 35, 34, 29, 26, 9, 250, 255, 17, 30, 27, 8, 2, 27,
-			41, 19, 255, 2, 6, 4, 13, 32, 41, 27, 6, 4, 18, 16, 254, 252, 19, 40, 33, 11, 6, 12, 7, 8, 31, 41, 14, 242, 248, 20,
-			42, 35, 7, 248, 5, 25, 27, 21, 23, 22, 1, 242, 5, 35, 32, 13, 13, 24, 21, 8, 255, 4, 21, 27, 20, 13, 9, 11, 22, 23,
-			8, 5, 19, 21, 8, 2, 10, 25, 36, 27, 1, 248, 12, 30, 13, 252, 18, 40, 14, 248, 11, 30, 20, 11, 14, 8, 1, 9, 22, 22,
-			15, 11, 10, 10, 13, 15, 16, 17, 17, 10, 2, 6, 17, 19, 15, 16, 15, 10, 9, 13, 12, 10, 14, 15, 13, 11, 8, 7, 13, 17,
-			12, 11, 21, 18, 2, 255, 9, 13, 14, 19, 16, 9, 8, 9, 5, 6, 18, 24, 13, 255, 4, 20, 17, 3, 8, 19, 10, 253, 2, 20,
-			23, 11, 5, 13, 17, 7, 1, 6, 12, 15, 13, 8, 2, 6, 18, 24, 13, 0, 1, 12, 10, 2, 11, 20, 12, 2, 4, 10, 16, 15,
-			6, 3, 12, 14, 8, 10, 14, 9, 4, 7, 8, 7, 14, 23, 19, 5, 0, 8, 14, 12, 9, 7, 6, 12, 17, 10, 2, 9, 21, 22,
-			11, 0, 0, 12, 16, 10, 9, 12, 8, 7, 13, 12, 7, 11, 21, 21, 11, 4, 5, 10, 9, 3, 218, 12, 24, 0, 23, 23, 23, 23,
-			23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 22, 22, 22,
-			21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 22, 23, 22, 22, 22, 22, 23, 23, 23, 23,
-			23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 23, 23, 24, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23,
-			23, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24,
-			24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26,
-			25, 26, 26, 26, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29,
-			28, 28, 28, 28, 29, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 29, 29, 29, 30, 29, 29, 29, 29, 29, 30,
-			30, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-			29, 29, 29, 28, 28, 28, 28, 28, 28, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 28, 28, 28, 27, 28, 28, 28,
-			27, 27, 27, 27, 28, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-			28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27,
-			27, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-			25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 24, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-			22, 22, 22, 22, 22, 23, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21,
-			21, 21, 21, 22, 22, 22, 22, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-			22, 22, 22, 21, 21, 22, 22, 23, 22, 22, 22, 23, 23, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22,
-			22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23,
-			23, 23, 23, 23, 23, 22, 22, 22, 22, 23, 23, 23, 23, 22, 22, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 23, 24, 24, 24,
-			24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26,
-			26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
-			28, 27, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 28, 29, 29, 29, 29, 29,
-			29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 31, 30, 30, 30, 30, 30, 30, 29, 30, 30, 30, 31, 31, 30, 30, 30, 30, 30, 30, 30,
-			30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 30, 29, 29, 29, 29, 29, 29, 29, 29,
-			29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28,
-			28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 28, 28, 28, 28,
-			27, 27, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 26,
-			26, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 26, 26, 26, 25, 26, 26, 26, 25, 25, 25, 25, 24, 25, 25, 25, 25,
-			25, 24, 24, 24, 24, 23, 23, 23, 23, 23, 22, 23, 23, 23, 23, 23, 22, 23, 22, 22, 22, 22, 23, 23, 23, 22, 22, 22, 22, 22,
-			22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 20, 21, 21, 22, 22, 22, 21, 20, 19, 19, 19, 20, 20, 20, 21, 20, 20, 20, 21,
-			22, 21, 20, 20, 18, 1, 223, 195, 201, 247, 42, 74, 82, 63, 30, 3, 239, 210, 185, 197, 243, 24, 43, 60, 71, 65, 53, 43, 28, 6,
-			246, 241, 247, 6, 31, 56, 69, 66, 48, 24, 2, 250, 253, 5, 14, 23, 30, 34, 37, 38, 33, 25, 18, 11, 7, 3, 4, 12, 23, 33,
-			39, 39, 34, 24, 14, 7, 4, 5, 16, 34, 44, 35, 22, 16, 24, 25, 13, 9, 24, 35, 27, 11, 13, 31, 44, 39, 22, 12, 10, 13,
-			18, 26, 35, 39, 32, 17, 10, 15, 22, 30, 36, 34, 24, 14, 15, 26, 34, 30, 20, 22, 25, 24, 23, 26, 28, 26, 31, 38, 23, 4,
-			8, 37, 49, 32, 15, 16, 28, 32, 25, 22, 23, 19, 25, 32, 34, 27, 22, 19, 20, 30, 36, 33, 23, 18, 14, 21, 26, 32, 45, 43,
-			15, 242, 252, 15, 17, 6, 21, 48, 55, 54, 39, 12, 4, 29, 52, 25, 7, 27, 38, 17, 18, 53, 54, 23, 19, 42, 37, 3, 252, 33,
-			64, 47, 12, 14, 33, 42, 35, 31, 16, 13, 44, 47, 5, 4, 42, 51, 32, 29, 35, 8, 15, 39, 52, 39, 35, 41, 16, 254, 12, 66,
-			73, 32, 254, 252, 40, 71, 52, 15, 24, 50, 32, 3, 10, 44, 49, 33, 31, 31, 11, 234, 227, 236, 6, 39, 50, 44, 23, 28, 57, 60,
-			34, 34, 41, 26, 14, 18, 22, 38, 67, 70, 35, 1, 1, 27, 53, 49, 27, 20, 29, 27, 11, 9, 39, 66, 51, 41, 28, 249, 240, 27,
-			71, 48, 16, 32, 34, 8, 23, 61, 40, 9, 27, 37, 13, 1, 38, 56, 28, 35, 74, 29, 206, 243, 85, 88, 29, 37, 44, 253, 229, 28,
-			76, 58, 26, 24, 29, 16, 26, 31, 42, 39, 24, 15, 15, 48, 53, 23, 4, 31, 50, 35, 29, 32, 28, 23, 25, 14, 29, 51, 23, 3,
-			45, 75, 18, 231, 26, 88, 47, 244, 247, 31, 48, 44, 33, 22, 21, 30, 38, 21, 12, 15, 39, 68, 39, 249, 5, 39, 23, 1, 34, 83,
-			51, 235, 246, 51, 57, 18, 25, 24, 246, 248, 71, 98, 15, 231, 1, 28, 32, 46, 70, 19, 227, 4, 59, 49, 23, 4, 252, 27, 48, 24,
-			22, 78, 39, 214, 230, 56, 60, 252, 22, 68, 26, 212, 12, 82, 34, 236, 22, 74, 18, 232, 22, 59, 36, 247, 13, 55, 25, 1, 24, 53,
-			17, 237, 2, 36, 34, 33, 69, 27, 213, 246, 65, 42, 248, 4, 46, 52, 20, 18, 13, 245, 24, 66, 39, 237, 244, 35, 27, 34, 57, 36,
-			251, 245, 40, 25, 243, 15, 52, 64, 7, 211, 0, 87, 73, 244, 227, 29, 53, 247, 245, 66, 72, 0, 246, 28, 19, 250, 22, 72, 41, 235,
-			238, 22, 70, 59, 5, 0, 26, 19, 245, 7, 58, 67, 25, 19, 34, 248, 217, 14, 84, 79, 5, 243, 2, 9, 37, 57, 33, 253, 255, 27,
-			49, 43, 15, 6, 31, 63, 14, 201, 255, 89, 76, 245, 251, 57, 67, 7, 235, 19, 21, 0, 50, 86, 25, 226, 7, 45, 25, 4, 35, 57,
-			28, 39, 37, 239, 231, 44, 73, 9, 241, 43, 62, 3, 237, 67, 91, 253, 219, 11, 33, 33, 25, 45, 54, 15, 19, 29, 4, 249, 46, 78,
-			7, 229, 36, 79, 64, 23, 238, 248, 38, 51, 36, 21, 8, 20, 52, 28, 239, 19, 69, 58, 27, 21, 24, 247, 236, 47, 64, 25, 42, 80,
-			30, 241, 254, 23, 59, 59, 39, 0, 235, 39, 67, 41, 39, 46, 12, 237, 255, 47, 81, 69, 21, 1, 12, 26, 41, 34, 35, 59, 57, 254,
-			238, 68, 79, 10, 255, 35, 45, 2, 15, 71, 94, 40, 217, 246, 69, 58, 251, 14, 92, 59, 243, 20, 74, 8, 229, 75, 97, 6, 221, 25,
-			67, 51, 42, 55, 21, 240, 36, 52, 20, 34, 55, 22, 6, 42, 78, 31, 229, 252, 82, 122, 40, 207, 229, 59, 71, 32, 20, 33, 63, 34,
-			246, 2, 54, 89, 62, 17, 239, 242, 37, 57, 27, 24, 58, 65, 25, 11, 41, 40, 254, 255, 34, 46, 62, 62, 18, 243, 25, 88, 53, 0,
-			23, 28, 254, 252, 67, 93, 12, 241, 34, 55, 15, 255, 53, 59, 36, 23, 16, 11, 13, 51, 63, 20, 247, 36, 76, 45, 8, 1, 14, 37,
-			41, 45, 26, 0, 22, 59, 43, 25, 41, 31, 252, 3, 33, 70, 64, 24, 33, 9, 242, 18, 64, 51, 18, 16, 25, 16, 36, 73, 38, 235,
-			237, 39, 48, 22, 39, 37, 8, 23, 55, 17, 234, 10, 36, 38, 37, 32, 0, 251, 24, 39, 33, 35, 20, 0, 32, 44, 28, 21, 38, 20,
-			238, 29, 90, 56, 235, 254, 33, 25, 29, 69, 55, 246, 245, 31, 37, 6, 31, 65, 32, 234, 243, 59, 71, 5, 221, 1, 42, 44, 42, 14,
-			252, 23, 41, 21, 4, 13, 32, 27, 250, 9, 43, 44, 37, 22, 5, 5, 14, 14, 26, 38, 16, 0, 31, 48, 27, 255, 254, 251, 10, 64,
-			70, 12, 220, 243, 35, 22, 244, 25, 71, 45, 239, 241, 11, 254, 15, 65, 42, 235, 225, 8, 45, 56, 35, 251, 232, 4, 39, 27, 249, 8,
-			46, 26, 251, 17, 35, 18, 0, 10, 30, 17, 14, 20, 18, 6, 254, 9, 28, 28, 16, 39, 54, 4, 202, 226, 21, 57, 71, 46, 1, 227,
-			245, 24, 29, 22, 14, 22, 45, 20, 240, 10, 40, 30, 8, 250, 13, 48, 45, 15, 253, 254, 13, 18, 39, 41, 250, 231, 15, 67, 56, 21,
-			245, 247, 5, 249, 228, 230, 4, 10, 12, 18, 248, 233, 6, 43, 59, 32, 236, 247, 49, 73, 37, 9, 13, 29, 35, 23, 13, 8, 18, 36,
-			36, 16, 4, 27, 47, 15, 254, 30, 61, 39, 250, 246, 17, 22, 24, 36, 20, 0, 3, 18, 22, 28, 33, 16, 252, 3, 29, 39, 37, 34,
-			20, 13, 27, 34, 15, 13, 46, 63, 52, 14, 247, 8, 45, 66, 44, 7, 1, 19, 34, 35, 22, 30, 46, 47, 18, 252, 5, 12, 30, 57,
-			56, 28, 253, 3, 30, 26, 20, 33, 38, 33, 37, 34, 16, 14, 32, 50, 40, 5, 255, 29, 59, 61, 33, 19, 33, 38, 8, 248, 24, 61,
-			61, 28, 11, 28, 39, 34, 31, 41, 30, 10, 25, 56, 25, 254, 29, 42, 25, 32, 57, 42, 20, 20, 20, 16, 39, 60, 38, 2, 16, 71,
-			69, 20, 22, 41, 44, 35, 23, 37, 31, 22, 44, 66, 37, 1, 9, 36, 51, 25, 26, 58, 42, 3, 2, 35, 49, 34, 18, 10, 29, 56,
-			53, 19, 5, 15, 29, 41, 34, 36, 26, 18, 33, 60, 61, 42, 14, 251, 17, 56, 69, 34, 16, 26, 28, 33, 40, 42, 34, 28, 28, 23,
-			25, 43, 49, 22, 16, 42, 48, 26, 24, 44, 54, 35, 24, 26, 9, 17, 63, 71, 15, 248, 24, 76, 78, 17, 231, 1, 53, 57, 23, 18,
-			39, 25, 252, 28, 86, 54, 0, 2, 49, 55, 1, 10, 66, 77, 42, 10, 4, 25, 34, 28, 21, 39, 68, 48, 9, 8, 41, 47, 28, 29,
-			20, 16, 35, 66, 68, 12, 246, 32, 56, 46, 29, 24, 27, 22, 35, 62, 52, 10, 244, 21, 74, 75, 20, 13, 51, 38, 251, 0, 40, 48,
-			26, 30, 33, 25, 21, 38, 44, 19, 14, 21, 15, 5, 37, 70, 55, 15, 0, 3, 18, 45, 40, 24, 29, 41, 34, 17, 5, 19, 39, 45,
-			31, 25, 50, 65, 3, 221, 0, 58, 52, 1, 14, 52, 53, 22, 250, 0, 53, 72, 37, 251, 239, 23, 69, 56, 21, 19, 49, 45, 252, 247,
-			27, 57, 55, 52, 17, 247, 19, 25, 27, 56, 77, 38, 239, 250, 19, 43, 75, 75, 14, 223, 16, 87, 81, 22, 237, 244, 36, 68, 40, 255,
-			9, 69, 66, 29, 33, 22, 246, 16, 72, 70, 27, 22, 32, 14, 15, 22, 43, 48, 64, 76, 19, 247, 22, 22, 253, 30, 93, 71, 2, 12,
-			58, 50, 7, 2, 37, 48, 29, 31, 36, 22, 11, 20, 36, 30, 33, 43, 22, 7, 26, 50, 55, 50, 21, 3, 250, 22, 73, 66, 34, 18,
-			39, 35, 4, 0, 21, 44, 33, 26, 40, 39, 15, 3, 48, 75, 28, 238, 3, 31, 30, 49, 52, 25, 13, 36, 41, 15, 1, 13, 38, 56,
-			54, 21, 249, 32, 66, 32, 252, 25, 65, 31, 242, 249, 54, 80, 47, 17, 7, 11, 9, 21, 37, 50, 41, 27, 36, 20, 240, 2, 54, 68,
-			41, 26, 16, 18, 24, 30, 32, 31, 31, 32, 24, 254, 17, 47, 45, 22, 30, 37, 25, 17, 19, 13, 13, 54, 61, 30, 248, 3, 42, 62,
-			48, 13, 12, 37, 36, 21, 12, 42, 63, 47, 28, 16, 25, 19, 17, 32, 61, 58, 19, 17, 39, 39, 25, 36, 56, 30, 20, 38, 42, 28,
-			18, 21, 21, 54, 75, 37, 249, 244, 11, 31, 66, 72, 22, 248, 7, 38, 38, 41, 50, 35, 255, 5, 48, 54, 31, 23, 16, 20, 51, 64,
-			40, 3, 1, 46, 37, 1, 28, 67, 41, 0, 19, 51, 36, 17, 25, 37, 31, 44, 64, 35, 0, 18, 30, 24, 18, 34, 58, 49, 34, 17,
-			25, 13, 3, 28, 51, 49, 25, 30, 42, 37, 24, 28, 40, 6, 4, 41, 59, 55, 47, 40, 12, 6, 27, 24, 17, 51, 75, 42, 0, 12,
-			45, 34, 13, 19, 26, 28, 44, 66, 51, 16, 0, 6, 29, 60, 69, 46, 24, 21, 14, 13, 36, 57, 56, 37, 25, 13, 16, 42, 57, 43,
-			35, 30, 10, 19, 60, 66, 19, 16, 49, 42, 14, 11, 26, 42, 42, 23, 12, 20, 50, 55, 46, 47, 33, 250, 248, 51, 71, 29, 9, 41,
-			53, 37, 46, 56, 31, 255, 6, 33, 40, 43, 43, 28, 14, 26, 50, 41, 16, 39, 50, 19, 0, 6, 21, 44, 59, 35, 0, 255, 47, 91,
-			70, 20, 245, 254, 39, 44, 17, 12, 38, 63, 40, 8, 20, 41, 21, 1, 24, 37, 10, 242, 21, 54, 68, 54, 7, 248, 12, 30, 21, 17,
-			24, 38, 24, 11, 19, 17, 18, 38, 48, 38, 16, 0, 1, 1, 19, 45, 47, 34, 18, 16, 33, 27, 19, 27, 40, 37, 3, 248, 13, 21,
-			17, 30, 64, 80, 32, 240, 2, 24, 255, 240, 42, 71, 17, 248, 30, 48, 21, 20, 30, 7, 233, 1, 50, 46, 16, 10, 9, 0, 16, 42,
-			49, 35, 18, 9, 7, 23, 29, 8, 3, 20, 41, 51, 44, 36, 21, 4, 247, 6, 35, 31, 20, 17, 15, 20, 50, 56, 22, 255, 1, 12,
-			21, 35, 20, 243, 252, 35, 36, 24, 28, 25, 6, 3, 33, 43, 17, 5, 10, 16, 37, 52, 37, 26, 29, 35, 28, 12, 11, 27, 23, 5,
-			2, 16, 44, 54, 29, 5, 19, 19, 253, 7, 30, 14, 0, 26, 51, 30, 0, 4, 37, 46, 29, 19, 12, 12, 15, 14, 3, 2, 29, 48,
-			27, 6, 18, 43, 19, 237, 5, 52, 45, 14, 11, 19, 26, 52, 53, 10, 4, 37, 34, 3, 14, 40, 25, 255, 17, 43, 28, 5, 14, 36,
-			23, 11, 18, 28, 41, 41, 250, 212, 251, 68, 83, 46, 18, 4, 251, 13, 60, 64, 19, 254, 0, 22, 43, 37, 26, 41, 46, 23, 0, 1,
-			17, 23, 27, 33, 29, 14, 22, 49, 32, 245, 241, 22, 57, 61, 41, 8, 238, 247, 24, 41, 34, 29, 28, 17, 254, 2, 45, 65, 31, 0,
-			6, 10, 4, 17, 41, 51, 44, 21, 0, 9, 22, 28, 38, 33, 8, 5, 30, 29, 28, 35, 28, 3, 5, 46, 60, 28, 3, 5, 11, 28,
-			42, 56, 53, 21, 240, 2, 40, 46, 43, 37, 27, 17, 17, 14, 9, 19, 43, 41, 25, 26, 34, 28, 29, 35, 23, 9, 12, 32, 34, 31,
-			37, 35, 17, 17, 38, 42, 33, 28, 30, 22, 24, 37, 32, 14, 12, 30, 34, 32, 47, 50, 31, 17, 8, 1, 11, 29, 47, 56, 39, 22,
-			16, 26, 46, 50, 48, 28, 0, 4, 34, 46, 35, 19, 10, 17, 33, 38, 28, 18, 27, 32, 13, 3, 25, 51, 39, 14, 12, 27, 37, 35,
-			28, 25, 23, 29, 36, 22, 14, 16, 27, 41, 39, 34, 32, 31, 28, 24, 25, 34, 32, 12, 9, 29, 42, 32, 20, 24, 28, 26, 32, 30,
-			21, 10, 7, 18, 39, 46, 38, 30, 21, 21, 21, 26, 36, 36, 11, 6, 32, 38, 28, 34, 39, 29, 17, 17, 28, 37, 33, 17, 14, 22,
-			22, 18, 29, 40, 35, 23, 21, 34, 31, 10, 255, 6, 19, 26, 33, 31, 21, 19, 27, 33, 31, 27, 19, 6, 11, 30, 22, 5, 16, 33,
-			40, 39, 31, 23, 8, 5, 21, 31, 22, 11, 17, 30, 38, 32, 25, 26, 31, 28, 20, 18, 19, 20, 26, 41, 34, 3, 247, 17, 43, 39,
-			29, 31, 24, 10, 6, 5, 1, 9, 31, 39, 17, 0, 13, 36, 31, 14, 8, 10, 20, 29, 19, 6, 11, 25, 24, 21, 34, 39, 19, 4,
-			19, 32, 26, 23, 33, 19, 249, 0, 35, 43, 25, 21, 27, 19, 4, 15, 27, 20, 16, 19, 17, 9, 13, 28, 37, 31, 27, 30, 26, 17,
-			13, 17, 18, 19, 32, 42, 35, 23, 22, 26, 23, 18, 27, 34, 33, 30, 17, 8, 13, 31, 34, 30, 36, 34, 23, 18, 17, 16, 24, 32,
-			27, 13, 9, 21, 33, 32, 26, 27, 26, 17, 9, 13, 24, 31, 32, 31, 28, 19, 13, 20, 31, 31, 29, 32, 31, 20, 12, 13, 25, 32,
-			30, 24, 22, 28, 26, 17, 16, 22, 27, 31, 33, 26, 16, 20, 27, 30, 29, 30, 26, 17, 19, 25, 27, 25, 26, 31, 30, 21, 15, 18,
-			26, 34, 36, 28, 15, 10, 21, 29, 27, 28, 35, 33, 23, 20, 24, 26, 29, 35, 31, 21, 18, 22, 28, 30, 27, 27, 31, 33, 30, 22,
-			18, 23, 33, 35, 26, 19, 25, 32, 28, 26, 29, 30, 26, 26, 26, 19, 0, 0, 175, 0, 4, 0, 1, 0, 44, 1, 66, 3, 196, 4,
-			130, 10, 112, 13, 48, 15, 32, 28, 45, 50, 30, 64, 60, 39, 31, 20, 9, 5, 186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 44, 1,
-			66, 3, 196, 4, 130, 10, 112, 13, 48, 15, 32, 28, 70, 104, 44, 92, 87, 57, 44, 29, 13, 7, 186, 152, 120, 120, 120, 120, 192, 155,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0,
-			1, 0, 44, 1, 66, 3, 216, 4, 240, 10, 112, 13, 48, 15, 32, 28, 60, 80, 45, 77, 82, 54, 42, 27, 13, 6, 186, 152, 120, 120,
-			120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0,
-			1, 250, 0, 0, 1, 0, 44, 1, 66, 3, 216, 4, 84, 11, 152, 13, 80, 15, 32, 28, 0, 30, 37, 35, 56, 37, 29, 19, 9, 4,
-			186, 152, 120, 120, 120, 120, 192, 155, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0,
-			188, 200, 53, 182, 64, 250, 23, 8, 45, 0, 5, 0, 1, 0, 240, 0, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 45, 61,
-			34, 63, 75, 41, 34, 29, 11, 5, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 248, 0, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14,
-			192, 27, 130, 112, 43, 86, 102, 55, 46, 39, 15, 7, 165, 148, 135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 218, 0, 120, 2, 169, 3, 161, 10,
-			109, 12, 71, 14, 60, 27, 55, 109, 34, 71, 93, 53, 42, 37, 17, 8, 166, 145, 137, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 144, 0, 208, 1,
-			12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 40, 67, 25, 64, 64, 45, 41, 24, 17, 8, 163, 120, 143, 120, 120, 120, 165, 115, 130, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			144, 0, 208, 1, 12, 3, 196, 9, 254, 11, 157, 14, 216, 26, 0, 42, 19, 51, 51, 35, 32, 19, 14, 6, 163, 120, 143, 120, 120, 120,
-			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 195, 0, 4, 0, 1, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 45, 36, 12, 54, 51, 51, 49, 30,
-			11, 9, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25, 75, 63, 16, 72,
-			68, 68, 65, 39, 15, 12, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12, 40, 15, 104, 25,
-			75, 46, 13, 61, 57, 57, 55, 33, 12, 10, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 141, 0, 80, 1, 204, 6, 0, 10, 208, 12,
-			40, 15, 104, 25, 0, 30, 11, 49, 46, 47, 45, 27, 10, 8, 174, 115, 127, 122, 122, 132, 187, 130, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 210, 0, 5, 0, 1, 0, 171, 0,
-			105, 1, 248, 7, 2, 11, 28, 13, 224, 14, 196, 26, 45, 29, 17, 48, 48, 38, 38, 24, 10, 5, 167, 113, 125, 120, 120, 120, 167, 90,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 214, 0, 18, 2, 160, 6, 203, 10, 77, 13, 4, 15, 79, 27, 60, 58, 30, 71, 73, 55, 50, 32, 14, 7, 175, 128, 129, 120,
-			120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 60, 73, 36, 66, 79, 56, 43, 28, 13, 7,
-			186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 45, 65, 37, 62, 75, 52,
-			40, 27, 12, 6, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 24, 1, 16, 3, 156, 4, 120, 10, 152, 13, 60, 15, 32, 28, 0, 43,
-			30, 50, 61, 42, 33, 22, 10, 5, 186, 152, 135, 120, 120, 120, 192, 155, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 203, 0, 6, 0, 1, 0, 200, 0, 29, 1, 245, 8, 36, 11,
-			186, 12, 165, 15, 244, 26, 61, 64, 0, 88, 56, 44, 48, 36, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 34, 2,
-			165, 7, 70, 9, 110, 13, 79, 15, 244, 26, 70, 85, 40, 88, 68, 64, 40, 20, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			200, 0, 9, 3, 208, 4, 241, 9, 60, 13, 194, 14, 244, 26, 72, 99, 52, 96, 92, 48, 44, 32, 16, 8, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 14, 1, 212, 2, 106, 4, 200, 10, 2, 13, 238, 14, 192, 27, 61, 140, 52, 95, 114, 62, 51, 43, 16, 8, 165, 148,
-			135, 120, 120, 120, 167, 142, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 145, 2, 228, 3, 118, 10, 225, 12, 56, 15, 244, 26, 60, 127, 48, 108, 68, 40, 44, 28,
-			16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 45, 2, 57, 3, 209, 10, 2, 13, 122, 15, 244, 26, 0, 106, 46, 86,
-			54, 36, 32, 18, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 215, 0, 5, 0, 33, 0, 173, 0, 64, 1, 156, 8, 220, 10, 66, 13,
-			19, 15, 228, 26, 45, 44, 12, 60, 60, 59, 56, 29, 13, 6, 182, 105, 128, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 173, 0, 64, 1, 156, 8,
-			220, 10, 66, 13, 19, 15, 228, 26, 40, 56, 14, 68, 68, 66, 64, 32, 14, 7, 182, 105, 128, 120, 120, 120, 167, 105, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 244, 0,
-			229, 1, 108, 7, 82, 10, 89, 13, 17, 15, 34, 28, 90, 58, 28, 67, 66, 65, 55, 35, 13, 8, 221, 122, 147, 120, 120, 120, 167, 105,
-			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 31, 1, 72, 2, 204, 6, 0, 10, 104, 13, 15, 15, 224, 28, 40, 43, 31, 56, 56, 55, 42, 31, 10, 6, 244, 132, 159, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 31, 1, 72, 2, 204, 6, 0, 10, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48, 48, 47, 36, 27, 9, 5,
-			244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 225, 0, 5, 0, 1, 0, 136, 0, 44, 1, 8, 7, 96, 9, 148, 12, 41, 14, 144, 26, 45, 27,
-			13, 56, 44, 37, 29, 23, 11, 0, 120, 120, 105, 120, 120, 120, 60, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 136, 0, 164, 1, 120, 5, 196, 9, 48, 12, 41, 14,
-			144, 26, 40, 52, 27, 82, 60, 46, 40, 29, 19, 0, 120, 120, 112, 120, 120, 120, 60, 75, 112, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 192, 0, 40, 2, 132, 3, 20, 10,
-			204, 11, 96, 14, 88, 27, 80, 106, 35, 84, 81, 51, 49, 28, 18, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0, 40, 2,
-			92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 60, 105, 32, 76, 83, 46, 44, 26, 16, 7, 172, 142, 135, 120, 120, 120, 167, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			192, 0, 40, 2, 92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 0, 55, 23, 55, 60, 34, 32, 18, 12, 5, 172, 142, 135, 120, 120, 120,
-			167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 102, 0, 6, 0, 1, 0, 200, 0, 14, 1, 21, 9, 210, 11, 91, 12, 164, 15, 244, 26, 43, 65, 3, 83, 38, 41, 38, 38,
-			11, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 144, 0, 76, 1, 251, 8, 200, 10, 111, 12, 209, 14, 244, 26, 60, 104, 11, 102,
-			72, 64, 60, 49, 15, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 104, 0, 154, 1, 228, 6, 50, 9, 139, 12, 250, 14, 244, 26,
-			107, 56, 33, 69, 42, 48, 42, 27, 12, 6, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 207, 1, 11, 4, 244, 9, 110, 12,
-			228, 14, 244, 26, 124, 75, 32, 80, 54, 35, 25, 16, 12, 6, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 104, 0, 168, 1, 29, 3,
-			47, 10, 55, 12, 77, 15, 244, 26, 35, 84, 41, 76, 64, 22, 15, 7, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0,
-			114, 1, 202, 2, 115, 10, 103, 12, 72, 15, 244, 26, 0, 64, 24, 63, 45, 21, 15, 9, 12, 6, 187, 125, 137, 137, 150, 175, 187, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0,
-			160, 0, 4, 0, 1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 40, 30, 52, 60, 40, 33, 28, 16, 6,
-			167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 60, 71, 40, 70, 80, 54,
-			44, 38, 22, 8, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14, 84, 27, 50, 53,
-			34, 60, 69, 46, 38, 33, 19, 7, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 132, 0, 8, 2, 136, 4, 136, 9, 128, 12, 156, 14,
-			84, 27, 0, 33, 27, 48, 55, 37, 30, 26, 15, 5, 167, 148, 143, 120, 120, 120, 197, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 239, 0, 5, 0, 1, 0, 80, 0, 96, 1,
-			52, 3, 193, 10, 228, 12, 114, 15, 244, 26, 87, 79, 30, 80, 61, 42, 30, 0, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			80, 0, 191, 1, 17, 3, 196, 10, 108, 12, 119, 15, 244, 26, 50, 97, 53, 83, 53, 41, 38, 34, 15, 7, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 128, 0, 80, 2, 81, 3, 120, 10, 94, 12, 201, 14, 244, 26, 53, 122, 49, 83, 79, 38, 30, 19, 19, 7, 187, 125,
-			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 200, 0, 57, 3, 115, 4, 10, 10, 41, 12, 214, 13, 244, 26, 49, 96, 50, 90, 75, 54, 28, 39,
-			14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 200, 0, 57, 3, 115, 4, 10, 10, 41, 12, 214, 13, 244, 26, 0, 97, 54, 90,
-			75, 54, 28, 39, 14, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200,
-			53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 14, 1, 6, 0, 1, 0, 200, 0, 68, 1, 46, 3, 69, 11, 54, 13,
-			160, 15, 244, 26, 48, 50, 11, 68, 41, 15, 11, 0, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 200, 0, 124, 1, 239, 2,
-			107, 10, 86, 12, 52, 16, 244, 26, 45, 96, 30, 79, 57, 26, 22, 15, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0,
-			197, 2, 187, 3, 240, 9, 163, 12, 23, 15, 244, 26, 67, 134, 49, 91, 83, 49, 38, 30, 15, 7, 187, 125, 137, 137, 150, 175, 187, 125,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 224, 0, 30, 3, 60, 5, 1, 9, 112, 13, 119, 14, 244, 26, 70, 94, 49, 106, 68, 57, 38, 0, 15, 7, 187, 125, 137, 137,
-			150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 200, 0, 190, 1, 106, 8, 33, 10, 134, 12, 93, 14, 244, 26, 40, 58, 27, 69, 54, 46, 34, 31, 15, 7,
-			187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 200, 0, 190, 1, 106, 8, 33, 10, 134, 12, 93, 14, 244, 26, 0, 23, 17, 44, 34, 29,
-			22, 19, 7, 4, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 38, 1, 6, 0, 1, 0, 200, 0, 126, 1, 12, 3, 253, 9, 107, 12, 48, 14,
-			244, 26, 46, 107, 24, 88, 72, 40, 40, 40, 16, 8, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 168, 0, 215, 1, 238, 3, 112, 9,
-			161, 12, 217, 14, 244, 26, 50, 145, 48, 100, 100, 44, 40, 44, 16, 8, 187, 125, 175, 137, 150, 175, 187, 125, 175, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 200, 0, 203, 1,
-			170, 6, 140, 8, 3, 12, 148, 13, 244, 26, 62, 128, 45, 98, 60, 91, 68, 38, 15, 9, 187, 125, 137, 137, 150, 175, 187, 125, 137, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0,
-			200, 0, 176, 1, 88, 8, 132, 9, 72, 12, 130, 14, 244, 26, 60, 81, 32, 75, 68, 57, 57, 32, 14, 7, 187, 125, 137, 137, 150, 175,
-			187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250,
-			23, 8, 1, 0, 176, 0, 88, 1, 180, 8, 228, 10, 161, 12, 16, 15, 244, 26, 76, 85, 12, 92, 64, 60, 56, 28, 16, 8, 187, 125,
-			137, 137, 150, 175, 187, 125, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220,
-			52, 182, 64, 250, 23, 8, 1, 0, 152, 0, 72, 1, 232, 8, 160, 10, 92, 13, 10, 15, 32, 28, 0, 46, 26, 66, 44, 44, 37, 29,
-			11, 7, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 240, 0, 6, 0, 1, 0, 142, 0, 62, 1, 138, 2, 166, 9, 38, 12, 203, 14, 24, 27,
-			40, 35, 7, 66, 37, 18, 19, 14, 8, 4, 148, 126, 80, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 142, 0, 62, 1, 138, 2, 166, 9, 38, 12,
-			203, 14, 24, 27, 40, 39, 8, 69, 39, 18, 20, 15, 8, 4, 148, 126, 80, 120, 120, 120, 75, 90, 90, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 147, 0, 85, 1, 159, 2,
-			185, 9, 25, 12, 193, 14, 37, 27, 40, 38, 10, 68, 43, 21, 22, 20, 9, 4, 151, 127, 85, 120, 120, 120, 75, 90, 90, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 192, 0,
-			40, 2, 92, 3, 100, 10, 164, 11, 96, 14, 159, 27, 70, 99, 31, 74, 81, 45, 43, 25, 16, 6, 172, 142, 135, 120, 120, 120, 167, 135,
-			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 50, 81, 30, 71, 86, 42, 41, 23, 15, 6, 173, 142, 135, 120,
-			120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 1, 0, 184, 0, 72, 2, 172, 3, 20, 10, 164, 11, 53, 14, 160, 27, 0, 46, 23, 54, 64, 32, 30, 18, 11, 4,
-			173, 142, 135, 120, 120, 120, 182, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			165, 36, 0, 0, 0, 250, 0, 0, 205, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 45, 27,
-			15, 48, 33, 28, 30, 28, 7, 10, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 24, 1, 184, 6, 36, 9, 228, 12, 96, 14,
-			100, 25, 40, 38, 18, 58, 39, 33, 36, 33, 9, 12, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 142, 0, 83, 1, 156, 6, 74, 9,
-			252, 12, 124, 14, 151, 25, 80, 53, 24, 69, 50, 41, 43, 38, 11, 13, 169, 98, 137, 122, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 232, 0, 104, 3,
-			160, 5, 160, 10, 216, 13, 120, 15, 102, 27, 40, 84, 44, 78, 82, 54, 44, 30, 14, 5, 255, 170, 163, 145, 120, 120, 255, 174, 173, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0,
-			232, 0, 104, 3, 160, 5, 160, 10, 216, 13, 120, 15, 102, 27, 0, 45, 32, 57, 60, 40, 32, 22, 10, 4, 255, 170, 163, 145, 120, 120,
-			255, 174, 173, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250,
-			23, 8, 205, 0, 5, 0, 1, 0, 147, 0, 22, 1, 238, 7, 186, 9, 17, 13, 141, 14, 81, 26, 45, 38, 10, 60, 51, 47, 50, 28,
-			12, 7, 167, 101, 123, 120, 120, 120, 167, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168,
-			0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 16, 1, 28, 7, 232, 8, 228, 12, 96, 14, 100, 25, 30, 40, 18, 58,
-			39, 36, 36, 33, 9, 12, 167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 147, 0, 54, 1, 186, 6, 58, 9, 241, 12, 113, 14, 189, 25,
-			80, 54, 23, 68, 49, 43, 44, 39, 11, 13, 168, 94, 137, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 3, 1, 17, 2, 200, 6, 216, 9, 80, 13,
-			239, 14, 63, 28, 50, 61, 34, 68, 64, 62, 50, 38, 12, 9, 228, 124, 154, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 31, 1, 72, 2, 204, 6,
-			0, 10, 104, 13, 15, 15, 224, 28, 0, 35, 28, 51, 50, 49, 38, 28, 9, 6, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 5, 0,
-			1, 0, 132, 0, 16, 1, 8, 7, 232, 8, 228, 12, 96, 14, 100, 25, 40, 39, 18, 57, 39, 36, 36, 33, 9, 12, 167, 90, 135, 120,
-			120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 132, 0, 16, 1, 8, 7, 232, 8, 228, 12, 96, 14, 100, 25, 65, 61, 22, 72, 49, 45, 45, 41, 11, 15,
-			167, 90, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 52, 1, 219, 6, 6, 9, 218, 12, 241, 14, 225, 25, 50, 59, 24, 70, 54, 45,
-			46, 39, 13, 13, 167, 105, 135, 120, 120, 120, 167, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 160, 1, 84, 6, 96, 9, 188, 12, 164, 16, 88, 27, 40, 33,
-			23, 48, 51, 34, 37, 25, 15, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 116, 0, 224, 1, 44, 6, 116, 9, 12, 13, 224, 16,
-			88, 27, 0, 30, 24, 48, 50, 34, 34, 21, 13, 5, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 220, 0, 4, 0, 1, 0, 153, 0, 208, 1,
-			52, 3, 255, 9, 194, 11, 151, 14, 244, 26, 50, 36, 18, 47, 51, 30, 28, 15, 11, 5, 165, 126, 145, 120, 120, 120, 165, 115, 130, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0,
-			153, 0, 208, 1, 52, 3, 255, 9, 194, 11, 151, 14, 244, 26, 90, 94, 30, 77, 82, 49, 45, 25, 18, 8, 165, 126, 145, 120, 120, 120,
-			165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250,
-			0, 0, 1, 0, 153, 0, 198, 1, 44, 3, 255, 9, 194, 11, 151, 14, 244, 26, 80, 82, 28, 71, 76, 45, 42, 23, 17, 7, 165, 126,
-			145, 120, 120, 120, 165, 115, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0,
-			0, 0, 1, 250, 0, 0, 1, 0, 184, 0, 184, 1, 52, 3, 40, 10, 244, 11, 141, 14, 128, 26, 0, 55, 27, 57, 58, 38, 30, 24,
-			17, 8, 162, 135, 150, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0,
-			0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 59, 2, 47, 0, 8, 6, 5, 4, 199, 131, 133, 214, 44, 105, 96, 34, 233, 229, 248, 253,
-			2, 24, 34, 7, 223, 227, 0, 36, 38, 3, 228, 232, 220, 203, 209, 208, 225, 2, 22, 15, 252, 223, 199, 197, 227, 232, 242, 233, 212, 232,
-			248, 255, 9, 28, 14, 253, 5, 253, 244, 16, 43, 37, 2, 240, 254, 0, 1, 7, 10, 24, 19, 25, 245, 243, 4, 24, 7, 246, 7, 252,
-			6, 11, 5, 232, 16, 33, 2, 12, 23, 233, 219, 16, 40, 4, 249, 28, 17, 247, 0, 33, 28, 6, 0, 5, 31, 21, 19, 2, 242, 24,
-			28, 0, 236, 241, 246, 243, 5, 242, 235, 253, 33, 16, 236, 238, 241, 5, 19, 10, 0, 8, 7, 253, 253, 12, 14, 10, 3, 13, 10, 0,
-			248, 255, 11, 10, 11, 1, 246, 250, 8, 16, 0, 4, 254, 249, 252, 247, 250, 243, 251, 242, 245, 19, 18, 238, 202, 214, 222, 225, 236, 246,
-			248, 233, 250, 255, 235, 235, 251, 3, 12, 20, 15, 255, 3, 9, 23, 24, 16, 7, 0, 12, 28, 19, 9, 17, 27, 22, 16, 0, 251, 2,
-			8, 3, 5, 8, 10, 251, 239, 245, 1, 0, 231, 226, 222, 236, 243, 252, 248, 245, 246, 243, 240, 240, 244, 238, 235, 241, 253, 3, 10, 14,
-			5, 0, 251, 254, 1, 1, 12, 12, 3, 0, 10, 22, 38, 42, 27, 14, 13, 13, 8, 6, 254, 245, 252, 5, 6, 0, 250, 242, 242, 237,
-			238, 238, 242, 242, 247, 249, 0, 10, 16, 14, 6, 10, 15, 11, 17, 20, 19, 21, 19, 14, 4, 8, 13, 12, 9, 12, 14, 8, 254, 253,
-			255, 252, 249, 253, 8, 11, 10, 1, 1, 4, 4, 3, 251, 248, 247, 247, 249, 250, 246, 248, 249, 247, 250, 243, 239, 236, 231, 231, 246, 254,
-			245, 240, 245, 254, 0, 0, 255, 250, 245, 242, 242, 245, 250, 254, 252, 1, 4, 0, 0, 0, 255, 251, 248, 253, 3, 0, 255, 3, 7, 15,
-			23, 22, 15, 6, 6, 11, 9, 9, 14, 14, 14, 14, 13, 7, 1, 3, 7, 4, 255, 250, 247, 248, 250, 1, 3, 2, 255, 252, 249, 249,
-			247, 244, 250, 253, 254, 251, 254, 252, 249, 253, 0, 2, 3, 4, 3, 0, 0, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 4, 8, 8,
-			6, 3, 0, 3, 5, 4, 1, 0, 1, 3, 1, 0, 5, 7, 6, 7, 8, 8, 5, 2, 0, 1, 4, 9, 9, 7, 4, 2, 6, 11,
-			13, 11, 8, 4, 0, 0, 253, 251, 253, 1, 6, 7, 5, 7, 1, 253, 251, 251, 251, 250, 251, 254, 0, 255, 0, 2, 2, 0, 255, 254,
-			253, 253, 255, 0, 255, 0, 2, 1, 0, 254, 253, 254, 0, 255, 254, 253, 252, 252, 253, 255, 254, 253, 0, 0, 253, 250, 250, 250, 252, 255,
-			0, 1, 0, 254, 254, 254, 255, 255, 1, 0, 255, 254, 254, 255, 0, 1, 2, 2, 1, 255, 251, 251, 252, 251, 254, 252, 251, 250, 251, 253,
-			253, 253, 252, 251, 250, 251, 249, 247, 245, 247, 250, 252, 251, 248, 244, 245, 247, 249, 250, 252, 250, 246, 244, 242, 243, 244, 247, 250, 251, 249,
-			249, 245, 242, 244, 246, 249, 249, 248, 245, 245, 244, 245, 249, 254, 0, 0, 174, 0, 4, 0, 1, 0, 136, 0, 192, 1, 0, 5, 96, 9,
-			100, 12, 156, 14, 12, 27, 44, 39, 23, 57, 56, 39, 34, 26, 14, 5, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 136, 0, 192, 1,
-			0, 5, 96, 9, 100, 12, 156, 14, 12, 27, 80, 58, 28, 69, 68, 47, 41, 31, 17, 6, 165, 141, 141, 120, 120, 120, 162, 127, 165, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			136, 0, 192, 1, 0, 5, 96, 9, 100, 12, 156, 14, 12, 27, 50, 52, 26, 65, 64, 45, 39, 29, 16, 6, 165, 141, 141, 120, 120, 120,
-			162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 136, 0, 192, 1, 0, 5, 96, 9, 100, 12, 156, 14, 12, 27, 0, 35, 22, 54, 53, 37, 32, 24, 14, 5, 165, 141,
-			141, 120, 120, 120, 162, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 160, 0, 4, 0, 1, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27, 50, 42, 31, 57,
-			60, 33, 36, 28, 16, 6, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12, 236, 14, 99, 27,
-			60, 75, 42, 76, 80, 44, 49, 38, 22, 8, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 142, 0, 52, 2, 136, 4, 160, 10, 188, 12,
-			236, 14, 99, 27, 50, 57, 36, 66, 69, 38, 42, 33, 19, 7, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 142, 0, 52, 2, 136, 4,
-			160, 10, 188, 12, 236, 14, 99, 27, 0, 35, 28, 52, 55, 30, 33, 26, 15, 5, 168, 147, 130, 120, 120, 120, 197, 135, 130, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 160, 0, 4, 0,
-			1, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 50, 43, 23, 52, 55, 34, 29, 20, 14, 4, 163, 130, 148, 120,
-			120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 70, 85, 33, 72, 77, 48, 41, 28, 20, 6,
-			163, 130, 148, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 40, 71, 30, 66, 71, 44,
-			38, 25, 18, 6, 163, 130, 148, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 169, 0, 193, 1, 89, 3, 196, 9, 244, 11, 146, 14, 186, 26, 0, 43,
-			23, 52, 55, 34, 29, 20, 14, 4, 163, 130, 148, 120, 120, 120, 162, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 165, 0, 4, 0, 1, 0, 180, 0, 144, 1, 216, 4, 152, 8,
-			148, 12, 226, 14, 144, 26, 45, 36, 24, 51, 51, 36, 36, 30, 15, 7, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 180, 0, 144, 1,
-			216, 4, 152, 8, 148, 12, 226, 14, 144, 26, 80, 65, 32, 68, 68, 48, 48, 40, 20, 10, 170, 125, 145, 120, 120, 120, 162, 125, 145, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			180, 0, 144, 1, 216, 4, 152, 8, 148, 12, 226, 14, 144, 26, 40, 58, 30, 64, 64, 45, 45, 38, 19, 9, 170, 125, 145, 120, 120, 120,
-			162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 180, 0, 144, 1, 216, 4, 152, 8, 148, 12, 226, 14, 144, 26, 0, 31, 22, 47, 47, 33, 33, 28, 14, 7, 170, 125,
-			145, 120, 120, 120, 162, 125, 145, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 185, 0, 4, 0, 1, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27, 45, 59, 31, 64,
-			78, 41, 48, 37, 19, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210,
-			117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12, 132, 14, 96, 27,
-			80, 73, 35, 72, 86, 45, 53, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 240, 1, 32, 5, 104, 9, 180, 12,
-			132, 14, 96, 27, 60, 59, 31, 64, 78, 41, 48, 37, 19, 7, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 116, 0, 240, 1, 32, 5,
-			104, 9, 180, 12, 132, 14, 96, 27, 0, 73, 35, 72, 86, 45, 53, 41, 21, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 170, 0, 4, 0,
-			1, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 50, 33, 27, 49, 54, 44, 34, 25, 9, 5, 219, 138, 158, 120,
-			120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 60, 83, 43, 78, 87, 70, 54, 39, 15, 8,
-			219, 138, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 60, 74, 40, 74, 82, 67,
-			51, 37, 14, 8, 219, 138, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 246, 0, 80, 2, 164, 6, 201, 9, 70, 13, 255, 14, 73, 28, 0, 33,
-			27, 49, 54, 44, 34, 25, 9, 5, 219, 138, 158, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 190, 0, 5, 0, 1, 0, 132, 0, 24, 1, 184, 6, 36, 9,
-			228, 12, 96, 14, 100, 25, 40, 23, 14, 45, 31, 26, 28, 26, 7, 9, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 132, 0, 24, 1,
-			184, 6, 36, 9, 228, 12, 96, 14, 100, 25, 30, 48, 20, 64, 44, 37, 40, 37, 10, 13, 160, 90, 135, 120, 120, 120, 160, 135, 135, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			166, 0, 136, 1, 18, 7, 138, 9, 228, 12, 56, 14, 242, 26, 40, 68, 30, 76, 60, 65, 57, 45, 13, 13, 160, 97, 131, 120, 120, 120,
-			160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 6, 1, 33, 2, 26, 7, 232, 9, 77, 13, 228, 14, 125, 28, 80, 71, 37, 72, 73, 69, 54, 41, 13, 9, 227, 125,
-			153, 120, 120, 120, 160, 135, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 1, 0, 31, 1, 72, 2, 28, 7, 0, 10, 104, 13, 15, 15, 224, 28, 0, 32, 26, 48, 51, 47, 36, 27,
-			9, 5, 244, 132, 159, 120, 120, 120, 135, 180, 150, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 125, 0, 5, 0, 13, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14, 220, 15, 32, 29,
-			0, 19, 7, 46, 7, 28, 21, 10, 7, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 13, 0, 76, 0, 224, 0, 8, 7, 4, 11, 156, 14,
-			220, 15, 32, 29, 50, 19, 7, 46, 7, 28, 21, 10, 7, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 76, 0, 224, 0, 8, 7,
-			4, 11, 156, 14, 220, 15, 32, 29, 45, 17, 6, 44, 10, 27, 20, 10, 6, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 76, 0,
-			224, 0, 8, 7, 4, 11, 156, 14, 220, 15, 32, 29, 30, 13, 6, 39, 9, 24, 18, 9, 6, 3, 150, 115, 97, 120, 120, 120, 90, 130,
-			97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			1, 0, 76, 0, 224, 0, 136, 9, 4, 11, 156, 14, 220, 15, 32, 29, 0, 15, 6, 41, 9, 28, 22, 12, 6, 3, 150, 115, 97, 120,
-			120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182,
-			64, 250, 23, 8, 105, 0, 4, 0, 1, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 35, 19, 7, 46, 10, 28,
-			18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182,
-			200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 13, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15, 32, 29, 40, 19,
-			7, 46, 10, 28, 18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 76, 0, 224, 0, 156, 9, 4, 11, 156, 14, 220, 15,
-			32, 29, 30, 19, 7, 46, 10, 28, 18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 76, 0, 224, 0, 156, 9, 4, 11,
-			156, 14, 220, 15, 32, 29, 0, 19, 7, 46, 10, 28, 18, 10, 5, 3, 150, 115, 97, 120, 120, 120, 90, 130, 97, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 65, 0, 3, 0, 5, 0,
-			140, 0, 224, 1, 178, 3, 84, 11, 152, 13, 104, 16, 0, 27, 35, 16, 16, 43, 23, 15, 10, 13, 7, 0, 160, 150, 120, 120, 120, 120,
-			145, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 5, 0, 140, 0, 224, 1, 178, 3, 84, 11, 152, 13, 104, 16, 0, 27, 30, 20, 18, 48, 25, 17, 12, 14, 8, 0, 160, 150,
-			120, 120, 120, 120, 145, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 140, 0, 224, 1, 178, 3, 84, 11, 152, 13, 104, 16, 0, 27, 0, 20, 18, 48, 25, 17, 12, 14,
-			8, 0, 160, 150, 120, 120, 120, 120, 145, 60, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 35, 0, 3, 0, 5, 0, 224, 0, 248, 2, 140, 5, 60, 10, 20, 13, 175, 14, 117, 27,
-			35, 24, 21, 43, 36, 31, 26, 21, 9, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 35, 70, 130, 50, 0, 0, 0, 0, 45, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 5, 0, 224, 0, 248, 2, 140, 5, 40, 10, 20, 13,
-			175, 14, 117, 27, 40, 22, 21, 41, 35, 30, 25, 21, 8, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 35, 70, 130, 50, 0, 0,
-			0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 208, 0, 224, 2, 100, 5,
-			236, 9, 1, 13, 155, 14, 105, 27, 0, 22, 21, 42, 30, 22, 20, 20, 9, 2, 192, 158, 201, 120, 120, 120, 249, 174, 255, 44, 35, 70,
-			130, 52, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 75, 0, 4, 0,
-			5, 0, 224, 0, 216, 2, 60, 5, 232, 8, 20, 13, 175, 14, 117, 27, 60, 15, 19, 32, 27, 23, 19, 16, 6, 1, 196, 162, 200, 120,
-			120, 120, 249, 174, 255, 44, 45, 70, 130, 46, 0, 0, 0, 0, 45, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 5, 0, 224, 0, 216, 2, 60, 5, 232, 8, 20, 13, 175, 14, 117, 27, 0, 22, 20, 40, 34, 29, 24, 20, 8, 2,
-			196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 50, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 13, 0, 224, 0, 216, 2, 60, 5, 232, 8, 20, 13, 175, 14, 117, 27, 15, 21, 20, 40, 33, 28,
-			24, 20, 8, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 50, 0, 0, 0, 0, 45, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 224, 0, 216, 2, 80, 5, 232, 8, 20, 13, 175, 14, 117, 27, 0, 23,
-			21, 41, 34, 30, 25, 20, 8, 2, 196, 162, 200, 120, 120, 120, 249, 174, 255, 44, 45, 70, 130, 50, 0, 0, 0, 0, 45, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 42, 8, 58, 0, 5, 3, 2, 1, 1, 1, 1, 1, 0, 255,
-			0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 0, 0, 251, 205, 197, 210, 213, 253, 5, 20, 56, 54, 53, 43, 36, 36, 15,
-			234, 214, 204, 220, 221, 221, 228, 253, 22, 35, 32, 35, 44, 42, 30, 4, 246, 242, 237, 227, 216, 222, 237, 251, 4, 5, 19, 30, 31, 28,
-			16, 5, 230, 203, 181, 162, 174, 184, 205, 237, 4, 33, 58, 75, 86, 79, 61, 41, 17, 252, 226, 207, 202, 209, 219, 233, 248, 11, 33, 44,
-			49, 48, 42, 33, 17, 254, 239, 229, 222, 220, 218, 226, 240, 254, 7, 18, 24, 30, 31, 23, 17, 7, 0, 248, 238, 238, 240, 247, 253, 255,
-			241, 232, 232, 226, 226, 224, 228, 245, 0, 9, 18, 24, 7, 249, 237, 226, 230, 228, 232, 243, 253, 10, 21, 31, 48, 51, 41, 28, 16, 9,
-			255, 237, 226, 225, 227, 233, 234, 246, 8, 20, 28, 27, 22, 25, 16, 3, 247, 236, 232, 232, 225, 224, 235, 245, 254, 7, 12, 22, 27, 22,
-			14, 10, 3, 1, 249, 243, 242, 249, 253, 0, 3, 12, 20, 23, 20, 16, 13, 9, 1, 251, 244, 242, 242, 245, 246, 250, 0, 5, 9, 9,
-			8, 11, 9, 0, 253, 246, 246, 246, 245, 245, 250, 0, 3, 7, 8, 12, 8, 7, 4, 253, 253, 245, 243, 244, 243, 248, 252, 255, 4, 5,
-			8, 8, 10, 7, 4, 5, 0, 252, 253, 251, 255, 5, 1, 5, 10, 3, 8, 8, 2, 5, 3, 1, 0, 253, 254, 0, 1, 4, 1, 4,
-			5, 5, 3, 255, 254, 0, 253, 250, 252, 252, 255, 2, 254, 3, 9, 8, 11, 5, 6, 13, 12, 9, 4, 7, 7, 6, 2, 0, 1, 7,
-			6, 0, 0, 2, 6, 2, 0, 1, 4, 4, 2, 252, 251, 227, 222, 204, 199, 209, 209, 234, 246, 1, 22, 27, 40, 47, 38, 30, 22, 9,
-			1, 245, 236, 235, 243, 245, 252, 0, 8, 20, 22, 26, 25, 25, 16, 4, 252, 245, 243, 241, 237, 240, 247, 255, 2, 3, 11, 15, 19, 18,
-			15, 13, 13, 12, 9, 11, 8, 251, 245, 246, 255, 7, 18, 35, 57, 72, 47, 19, 252, 228, 213, 173, 156, 173, 186, 192, 199, 221, 8, 59,
-			62, 52, 66, 62, 55, 28, 246, 242, 248, 241, 222, 226, 243, 18, 37, 35, 47, 64, 67, 52, 21, 0, 248, 239, 220, 207, 210, 225, 245, 251,
-			3, 20, 40, 49, 40, 24, 15, 231, 219, 215, 215, 247, 15, 30, 48, 55, 46, 52, 47, 24, 253, 197, 162, 144, 132, 140, 150, 182, 228, 8,
-			22, 46, 60, 75, 66, 41, 11, 254, 230, 211, 198, 198, 225, 249, 8, 26, 44, 65, 67, 55, 38, 27, 13, 245, 220, 204, 200, 211, 218, 228,
-			244, 7, 17, 24, 17, 13, 10, 253, 242, 225, 213, 214, 216, 219, 234, 248, 12, 33, 38, 44, 42, 42, 36, 28, 4, 254, 248, 244, 243, 242,
-			252, 6, 25, 25, 30, 31, 31, 28, 18, 5, 254, 0, 255, 249, 250, 248, 5, 252, 226, 226, 225, 237, 242, 243, 249, 8, 13, 2, 254, 1,
-			4, 250, 233, 220, 230, 237, 235, 232, 243, 7, 21, 19, 13, 19, 30, 22, 13, 9, 6, 11, 2, 245, 249, 2, 6, 9, 4, 4, 14, 13,
-			7, 0, 255, 252, 247, 242, 238, 245, 249, 245, 248, 252, 0, 6, 5, 253, 252, 250, 249, 249, 245, 248, 0, 254, 1, 2, 8, 15, 14, 11,
-			6, 9, 4, 6, 255, 255, 0, 254, 252, 255, 1, 8, 5, 4, 1, 8, 10, 3, 0, 252, 248, 248, 241, 242, 247, 246, 249, 252, 0, 5,
-			11, 3, 0, 2, 255, 0, 247, 250, 246, 250, 254, 252, 2, 6, 5, 9, 255, 252, 248, 238, 234, 231, 225, 229, 237, 239, 254, 6, 11, 27,
-			29, 23, 23, 13, 5, 0, 246, 238, 241, 246, 245, 252, 3, 10, 21, 17, 23, 14, 22, 5, 250, 237, 233, 230, 236, 241, 254, 8, 19, 19,
-			21, 16, 15, 9, 4, 243, 243, 234, 235, 234, 240, 252, 10, 24, 20, 23, 22, 12, 18, 5, 255, 249, 249, 242, 241, 247, 243, 255, 5, 0,
-			11, 10, 10, 12, 6, 0, 4, 5, 252, 0, 251, 248, 251, 251, 250, 0, 2, 9, 10, 9, 4, 6, 3, 255, 252, 247, 247, 252, 250, 2,
-			5, 9, 17, 10, 18, 12, 15, 5, 12, 0, 1, 0, 0, 0, 1, 255, 3, 6, 0, 252, 1, 1, 5, 2, 0, 255, 2, 250, 252, 252,
-			252, 0, 255, 253, 2, 7, 7, 7, 7, 0, 254, 252, 244, 242, 244, 245, 248, 255, 2, 14, 12, 13, 12, 3, 2, 252, 240, 236, 239, 233,
-			242, 246, 252, 4, 8, 12, 21, 20, 15, 16, 14, 7, 4, 254, 247, 245, 245, 246, 0, 7, 12, 25, 29, 28, 31, 21, 10, 1, 242, 238,
-			238, 238, 243, 254, 3, 13, 14, 20, 19, 19, 11, 0, 246, 239, 243, 244, 247, 247, 250, 0, 1, 7, 11, 21, 22, 19, 5, 0, 254, 248,
-			248, 244, 250, 5, 8, 12, 7, 7, 16, 15, 2, 250, 246, 246, 244, 238, 242, 247, 0, 0, 254, 0, 8, 7, 10, 2, 0, 3, 255, 250,
-			242, 247, 247, 255, 254, 0, 6, 13, 17, 18, 16, 9, 4, 252, 247, 240, 236, 234, 237, 245, 246, 3, 9, 11, 12, 7, 6, 1, 1, 243,
-			242, 244, 240, 249, 249, 255, 5, 4, 3, 7, 12, 13, 9, 2, 251, 244, 231, 225, 225, 228, 236, 243, 252, 0, 10, 15, 11, 14, 12, 14,
-			4, 248, 236, 236, 237, 240, 244, 251, 7, 20, 21, 23, 30, 27, 25, 16, 6, 250, 247, 236, 237, 242, 251, 4, 8, 8, 9, 16, 15, 17,
-			18, 7, 6, 253, 240, 236, 236, 236, 244, 250, 250, 7, 14, 23, 32, 30, 25, 11, 0, 248, 248, 248, 245, 251, 254, 6, 9, 16, 13, 7,
-			10, 5, 7, 1, 0, 252, 249, 245, 240, 244, 244, 246, 244, 245, 255, 0, 255, 252, 248, 253, 247, 242, 244, 242, 251, 252, 0, 5, 9, 5,
-			2, 4, 4, 9, 8, 4, 1, 0, 248, 246, 241, 241, 243, 247, 253, 5, 8, 9, 10, 11, 11, 4, 254, 252, 250, 248, 243, 246, 247, 248,
-			255, 0, 6, 14, 13, 14, 12, 10, 0, 254, 244, 239, 246, 244, 255, 4, 11, 14, 15, 9, 8, 11, 5, 3, 252, 254, 249, 249, 248, 255,
-			3, 8, 10, 7, 12, 14, 10, 13, 2, 255, 251, 254, 0, 2, 0, 0, 2, 1, 6, 6, 9, 8, 3, 254, 245, 251, 253, 252, 249, 244,
-			249, 253, 1, 2, 14, 21, 20, 12, 7, 6, 6, 1, 245, 247, 244, 254, 254, 253, 10, 16, 20, 19, 17, 14, 14, 0, 245, 241, 247, 244,
-			242, 243, 249, 6, 13, 17, 14, 14, 15, 5, 255, 250, 244, 243, 237, 227, 234, 246, 249, 255, 3, 5, 8, 9, 8, 8, 3, 4, 252, 248,
-			240, 240, 247, 0, 7, 5, 13, 15, 15, 12, 6, 7, 8, 12, 11, 16, 16, 16, 17, 12, 8, 9, 11, 9, 5, 7, 1, 6, 6, 0,
-			11, 9, 11, 11, 5, 0, 251, 254, 253, 254, 1, 1, 2, 0, 251, 244, 246, 248, 254, 2, 6, 10, 10, 1, 247, 240, 239, 239, 238, 236,
-			246, 251, 1, 2, 17, 20, 23, 24, 12, 7, 4, 0, 251, 255, 250, 251, 0, 249, 255, 4, 5, 12, 19, 17, 13, 10, 3, 2, 2, 250,
-			243, 238, 228, 230, 230, 234, 237, 244, 247, 254, 4, 9, 14, 16, 11, 6, 3, 0, 254, 2, 1, 5, 9, 12, 21, 21, 31, 31, 30, 21,
-			6, 1, 255, 0, 0, 255, 0, 4, 5, 9, 8, 10, 11, 11, 12, 4, 3, 1, 254, 248, 247, 245, 244, 248, 241, 239, 240, 247, 249, 254,
-			0, 0, 4, 0, 254, 250, 249, 252, 247, 249, 247, 246, 246, 249, 252, 251, 254, 251, 243, 242, 238, 241, 246, 253, 1, 10, 17, 19, 22, 19,
-			19, 13, 8, 253, 244, 240, 236, 237, 242, 246, 253, 2, 12, 14, 16, 15, 13, 7, 255, 242, 229, 221, 210, 213, 221, 233, 250, 3, 15, 19,
-			26, 24, 21, 13, 5, 2, 251, 244, 240, 241, 247, 255, 1, 8, 15, 17, 17, 15, 13, 12, 11, 4, 251, 245, 246, 245, 249, 248, 254, 8,
-			14, 17, 16, 18, 14, 9, 250, 245, 238, 239, 234, 230, 233, 234, 246, 250, 3, 8, 13, 15, 10, 7, 255, 248, 242, 235, 235, 233, 235, 233,
-			237, 242, 250, 4, 6, 8, 8, 8, 6, 8, 8, 253, 254, 248, 242, 246, 246, 250, 250, 251, 253, 255, 6, 4, 255, 251, 249, 253, 255, 252,
-			0, 6, 10, 12, 12, 12, 10, 6, 0, 0, 3, 6, 8, 8, 10, 17, 20, 17, 17, 19, 22, 24, 21, 19, 20, 22, 17, 11, 5, 252,
-			247, 239, 231, 233, 237, 241, 244, 248, 255, 2, 6, 2, 0, 252, 248, 242, 234, 232, 231, 231, 230, 231, 236, 241, 246, 249, 251, 253, 0, 0,
-			255, 252, 252, 0, 255, 254, 254, 254, 252, 249, 247, 247, 248, 250, 249, 250, 0, 1, 2, 1, 251, 250, 253, 255, 0, 0, 0, 0, 2, 2,
-			1, 4, 1, 254, 252, 252, 252, 254, 254, 252, 252, 255, 0, 4, 7, 6, 8, 6, 9, 12, 15, 13, 14, 8, 6, 4, 2, 2, 4, 5,
-			4, 1, 1, 255, 0, 2, 8, 13, 19, 22, 24, 24, 21, 18, 13, 5, 0, 255, 255, 254, 253, 251, 253, 0, 3, 6, 9, 14, 13, 11,
-			7, 2, 0, 252, 251, 0, 4, 9, 8, 8, 5, 8, 10, 11, 12, 10, 7, 1, 252, 246, 244, 245, 244, 246, 248, 254, 1, 3, 8, 10,
-			7, 4, 0, 252, 251, 251, 251, 251, 253, 253, 0, 4, 8, 11, 9, 8, 5, 4, 4, 4, 6, 9, 11, 11, 11, 9, 7, 5, 2, 254,
-			250, 246, 248, 252, 2, 2, 4, 3, 4, 5, 2, 0, 251, 247, 239, 238, 237, 235, 237, 239, 244, 252, 5, 14, 20, 25, 27, 28, 23, 15,
-			5, 0, 251, 251, 253, 252, 252, 252, 253, 2, 5, 12, 16, 19, 22, 20, 16, 12, 7, 2, 254, 252, 248, 247, 245, 244, 248, 250, 254, 254,
-			255, 254, 253, 255, 252, 249, 243, 244, 249, 253, 1, 2, 1, 252, 248, 243, 245, 251, 0, 5, 4, 5, 3, 0, 254, 250, 250, 249, 246, 245,
-			246, 245, 248, 251, 0, 0, 1, 0, 0, 0, 253, 253, 254, 254, 0, 3, 4, 4, 5, 7, 8, 9, 11, 15, 13, 9, 4, 255, 250, 247,
-			246, 247, 249, 0, 8, 16, 20, 22, 22, 19, 15, 8, 4, 254, 249, 244, 239, 240, 241, 242, 242, 243, 244, 250, 3, 11, 18, 23, 24, 24,
-			21, 18, 12, 7, 0, 250, 247, 241, 239, 239, 239, 242, 250, 2, 10, 15, 17, 18, 17, 17, 13, 6, 255, 245, 238, 232, 231, 232, 234, 236,
-			240, 246, 252, 4, 9, 13, 15, 13, 11, 7, 2, 254, 251, 248, 245, 244, 244, 246, 248, 250, 255, 2, 4, 5, 4, 4, 3, 3, 0, 251,
-			245, 241, 235, 229, 227, 227, 233, 241, 253, 4, 11, 14, 13, 13, 10, 10, 10, 7, 3, 254, 251, 247, 247, 244, 245, 249, 254, 1, 5, 10,
-			16, 21, 23, 24, 22, 18, 14, 8, 3, 255, 251, 250, 247, 247, 247, 248, 247, 247, 247, 245, 247, 246, 249, 252, 251, 251, 248, 248, 248, 249,
-			250, 250, 250, 251, 254, 1, 6, 11, 14, 12, 8, 5, 0, 0, 253, 249, 245, 241, 238, 236, 237, 242, 248, 255, 4, 9, 12, 16, 15, 12,
-			7, 2, 254, 253, 252, 251, 251, 250, 249, 249, 250, 252, 255, 3, 6, 5, 6, 3, 3, 3, 3, 3, 0, 253, 248, 248, 250, 252, 254, 254,
-			254, 255, 0, 3, 3, 4, 3, 2, 3, 3, 3, 4, 3, 5, 6, 8, 10, 10, 11, 11, 11, 10, 9, 8, 7, 5, 3, 4, 4, 4,
-			2, 0, 254, 251, 248, 246, 247, 247, 249, 252, 0, 0, 0, 7, 15, 22, 29, 36, 43, 50, 57, 63, 70, 76, 83, 89, 95, 101, 107, 112,
-			118, 123, 129, 134, 139, 144, 149, 153, 158, 162, 167, 171, 175, 179, 183, 187, 190, 194, 197, 201, 204, 207, 210, 213, 215, 218, 220, 223, 225, 227,
-			229, 231, 232, 234, 236, 237, 238, 239, 240, 241, 242, 243, 243, 244, 244, 244, 244, 244, 244, 244, 243, 243, 242, 241, 240, 239, 238, 237, 236, 234,
-			232, 231, 229, 227, 225, 223, 220, 218, 215, 213, 210, 207, 204, 201, 197, 194, 190, 187, 183, 179, 175, 171, 167, 162, 158, 153, 149, 144, 139, 134,
-			129, 123, 118, 112, 107, 101, 95, 89, 83, 76, 70, 63, 57, 50, 43, 36, 29, 22, 15, 7, 6, 4, 18, 0, 2, 2, 3, 4, 1, 253,
-			253, 255, 255, 251, 250, 254, 0, 254, 247, 244, 246, 253, 4, 7, 5, 0, 251, 249, 249, 250, 253, 1, 6, 9, 6, 0, 252, 250, 251, 0,
-			7, 15, 21, 16, 5, 251, 2, 22, 57, 89, 49, 247, 211, 200, 229, 18, 45, 32, 1, 230, 221, 226, 236, 3, 21, 17, 0, 232, 213, 217,
-			238, 2, 9, 5, 251, 240, 235, 237, 243, 248, 3, 14, 7, 244, 237, 240, 243, 249, 4, 12, 13, 6, 1, 254, 239, 230, 244, 11, 32, 50,
-			105, 109, 22, 211, 165, 174, 230, 50, 98, 75, 8, 212, 223, 4, 11, 255, 210, 196, 14, 70, 52, 251, 226, 207, 227, 2, 8, 20, 24, 10,
-			245, 233, 6, 52, 44, 0, 210, 148, 137, 233, 50, 104, 109, 35, 224, 209, 210, 200, 225, 29, 101, 122, 52, 217, 138, 136, 248, 99, 123, 55,
-			219, 172, 180, 225, 25, 55, 39, 15, 5, 249, 234, 242, 15, 23, 12, 0, 228, 207, 215, 236, 8, 23, 12, 251, 233, 225, 225, 242, 245, 237,
-			0, 16, 5, 239, 232, 242, 0, 14, 15, 18, 30, 32, 30, 18, 3, 0, 5, 11, 19, 21, 14, 12, 4, 3, 22, 24, 7, 243, 245, 6,
-			11, 8, 3, 246, 246, 254, 0, 3, 253, 226, 218, 246, 7, 15, 28, 17, 251, 248, 250, 246, 243, 247, 255, 6, 7, 3, 251, 239, 236, 244,
-			11, 14, 6, 5, 3, 255, 249, 245, 242, 249, 7, 22, 19, 255, 237, 234, 243, 2, 13, 14, 252, 245, 247, 247, 5, 11, 0, 241, 242, 251,
-			6, 12, 7, 254, 246, 249, 0, 0, 254, 0, 2, 9, 9, 2, 251, 242, 245, 3, 15, 18, 8, 253, 246, 251, 0, 2, 6, 11, 14, 4,
-			252, 247, 254, 11, 14, 9, 0, 249, 0, 13, 11, 2, 251, 249, 255, 6, 14, 14, 5, 251, 0, 9, 6, 9, 9, 3, 5, 1, 244, 243,
-			251, 7, 23, 20, 0, 240, 235, 238, 0, 17, 14, 2, 250, 243, 244, 4, 14, 6, 252, 250, 255, 255, 255, 0, 252, 253, 5, 7, 248, 236,
-			238, 253, 8, 14, 11, 250, 241, 246, 251, 255, 9, 13, 6, 247, 243, 253, 253, 2, 5, 8, 8, 253, 245, 246, 2, 15, 17, 2, 248, 245,
-			251, 0, 2, 1, 0, 3, 0, 0, 252, 246, 254, 6, 11, 11, 7, 253, 247, 253, 4, 8, 7, 5, 1, 2, 3, 0, 252, 255, 4, 1,
-			0, 1, 3, 1, 252, 255, 0, 254, 2, 7, 5, 3, 255, 250, 250, 0, 8, 12, 5, 254, 249, 253, 1, 2, 3, 1, 252, 251, 2, 6,
-			1, 250, 250, 255, 0, 4, 5, 251, 253, 4, 2, 3, 4, 247, 239, 248, 5, 8, 3, 1, 252, 247, 0, 4, 251, 251, 2, 0, 255, 5,
-			2, 250, 251, 7, 12, 8, 3, 0, 251, 255, 7, 6, 252, 248, 255, 7, 13, 6, 254, 253, 255, 5, 8, 6, 3, 0, 0, 5, 6, 0,
-			0, 5, 8, 5, 1, 1, 0, 253, 253, 2, 5, 4, 1, 255, 253, 254, 0, 0, 0, 0, 254, 254, 254, 255, 0, 0, 254, 253, 252, 253,
-			0, 1, 0, 253, 247, 250, 0, 2, 4, 2, 253, 250, 249, 250, 1, 2, 255, 255, 255, 0, 1, 0, 255, 254, 254, 1, 4, 2, 0, 255,
-			254, 254, 254, 2, 7, 7, 0, 251, 248, 252, 4, 8, 9, 0, 249, 246, 249, 4, 8, 6, 1, 253, 254, 1, 6, 6, 2, 1, 4, 5,
-			2, 0, 2, 4, 5, 9, 7, 1, 254, 255, 0, 3, 5, 4, 3, 2, 2, 2, 1, 0, 0, 2, 6, 7, 3, 0, 255, 0, 3, 6,
-			3, 255, 253, 255, 3, 3, 0, 0, 0, 1, 2, 1, 0, 0, 0, 2, 3, 1, 255, 254, 0, 1, 1, 2, 0, 252, 251, 255, 1, 3,
-			3, 1, 253, 250, 253, 0, 2, 1, 0, 0, 255, 254, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 22, 21, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-			0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 254, 255, 255, 254, 253, 251, 249, 245, 238, 230, 224, 229, 251, 22, 38, 34, 17,
-			252, 234, 229, 235, 252, 10, 15, 20, 16, 5, 250, 236, 241, 247, 254, 12, 15, 16, 3, 244, 232, 235, 254, 11, 24, 26, 27, 17, 250, 243,
-			242, 251, 1, 247, 239, 244, 4, 7, 234, 201, 193, 236, 60, 94, 65, 11, 222, 209, 192, 184, 221, 27, 76, 64, 17, 235, 218, 205, 200, 222,
-			14, 62, 62, 32, 1, 238, 233, 228, 239, 6, 26, 16, 5, 8, 239, 1, 11, 1, 28, 250, 249, 2, 223, 246, 247, 254, 35, 17, 3, 250,
-			221, 235, 241, 232, 251, 0, 27, 40, 10, 5, 242, 218, 231, 248, 13, 30, 26, 11, 248, 237, 236, 240, 2, 19, 19, 8, 250, 244, 237, 233,
-			249, 7, 20, 29, 22, 0, 240, 238, 245, 247, 248, 5, 27, 37, 23, 253, 242, 239, 248, 1, 249, 233, 234, 40, 82, 39, 234, 205, 234, 253,
-			248, 3, 8, 31, 31, 245, 251, 252, 233, 249, 248, 12, 25, 5, 8, 249, 240, 253, 244, 7, 34, 18, 8, 249, 236, 243, 250, 18, 18, 1,
-			11, 4, 7, 27, 4, 233, 228, 234, 26, 48, 25, 14, 0, 3, 5, 234, 219, 246, 33, 49, 30, 253, 237, 232, 231, 239, 249, 36, 65, 16,
-			223, 219, 249, 26, 19, 246, 238, 5, 30, 25, 13, 4, 252, 1, 253, 230, 245, 20, 20, 4, 247, 9, 38, 41, 13, 224, 219, 229, 203, 203,
-			252, 43, 65, 46, 8, 245, 224, 199, 201, 231, 14, 36, 37, 23, 253, 241, 228, 220, 254, 15, 11, 18, 12, 9, 3, 241, 239, 251, 252, 240,
-			242, 3, 17, 10, 254, 252, 0, 7, 255, 242, 240, 242, 249, 11, 20, 0, 237, 237, 250, 6, 9, 1, 2, 7, 247, 234, 247, 9, 9, 1,
-			0, 2, 252, 236, 236, 252, 10, 11, 0, 0, 2, 254, 244, 232, 239, 252, 250, 255, 15, 9, 247, 242, 252, 5, 4, 250, 0, 14, 1, 243,
-			234, 242, 18, 22, 255, 244, 249, 14, 32, 4, 221, 226, 252, 13, 14, 10, 20, 24, 4, 242, 236, 244, 252, 1, 16, 21, 27, 14, 243, 248,
-			0, 243, 247, 13, 19, 14, 3, 250, 3, 18, 3, 247, 254, 0, 20, 20, 247, 249, 5, 5, 0, 252, 8, 18, 253, 249, 3, 3, 20, 17,
-			7, 16, 13, 247, 233, 240, 250, 26, 42, 3, 240, 245, 250, 12, 18, 10, 5, 253, 6, 6, 244, 241, 251, 16, 12, 253, 4, 8, 1, 239,
-			224, 5, 39, 18, 4, 0, 245, 255, 0, 246, 2, 24, 21, 18, 22, 15, 244, 208, 227, 19, 24, 11, 17, 2, 230, 0, 246, 217, 19, 28,
-			17, 21, 246, 245, 236, 239, 245, 1, 56, 61, 6, 240, 240, 212, 253, 22, 247, 24, 33, 34, 3, 214, 239, 218, 251, 58, 31, 39, 43, 220,
-			170, 1, 35, 5, 27, 0, 10, 32, 5, 7, 248, 228, 254, 29, 29, 23, 238, 227, 24, 7, 213, 207, 226, 17, 66, 61, 7, 229, 249, 12,
-			4, 2, 3, 6, 32, 19, 226, 220, 1, 8, 245, 24, 31, 9, 29, 255, 220, 237, 2, 249, 232, 24, 52, 7, 248, 5, 0, 4, 3, 220,
-			240, 45, 37, 0, 254, 5, 249, 241, 229, 217, 250, 10, 247, 247, 13, 15, 244, 244, 249, 214, 217, 9, 8, 243, 252, 246, 245, 3, 241, 220,
-			225, 2, 16, 255, 11, 255, 221, 240, 255, 9, 31, 4, 213, 220, 252, 1, 1, 5, 16, 36, 14, 213, 193, 232, 26, 33, 16, 6, 242, 240,
-			5, 250, 218, 223, 7, 35, 7, 242, 3, 3, 247, 228, 227, 1, 22, 15, 244, 237, 248, 252, 245, 255, 15, 1, 0, 246, 227, 249, 4, 2,
-			6, 13, 13, 3, 242, 228, 246, 248, 14, 43, 12, 4, 242, 219, 233, 248, 17, 17, 26, 25, 253, 246, 243, 8, 253, 229, 11, 16, 5, 32,
-			30, 246, 232, 227, 242, 22, 12, 35, 56, 1, 241, 1, 11, 250, 232, 250, 28, 50, 250, 228, 11, 22, 9, 219, 217, 29, 61, 2, 223, 255,
-			8, 5, 239, 212, 22, 87, 27, 218, 223, 0, 24, 4, 228, 253, 79, 89, 235, 169, 233, 48, 17, 205, 241, 76, 83, 23, 201, 183, 223, 19,
-			57, 16, 17, 49, 3, 237, 247, 244, 0, 0, 9, 53, 25, 226, 239, 13, 47, 56, 247, 213, 4, 6, 223, 218, 235, 51, 122, 57, 223, 233,
-			6, 251, 200, 181, 6, 81, 62, 0, 237, 10, 18, 250, 220, 232, 2, 11, 36, 16, 248, 22, 21, 248, 0, 10, 1, 252, 246, 241, 209, 207,
-			11, 66, 96, 37, 208, 225, 249, 234, 224, 220, 21, 84, 72, 58, 27, 220, 201, 209, 228, 22, 37, 8, 242, 8, 36, 245, 215, 229, 218, 248,
-			23, 19, 10, 248, 244, 248, 2, 241, 232, 15, 2, 232, 1, 25, 9, 237, 206, 212, 17, 33, 4, 246, 221, 194, 207, 255, 31, 37, 10, 249,
-			240, 204, 215, 237, 249, 22, 25, 45, 16, 215, 210, 209, 236, 8, 13, 21, 40, 12, 213, 202, 209, 12, 29, 8, 11, 249, 6, 232, 186, 234,
-			24, 38, 38, 255, 226, 238, 230, 238, 244, 0, 45, 23, 8, 4, 226, 243, 9, 255, 242, 14, 37, 7, 240, 220, 220, 23, 46, 0, 0, 11,
-			2, 227, 195, 248, 21, 33, 47, 13, 7, 221, 199, 243, 24, 62, 38, 8, 0, 239, 253, 250, 224, 236, 24, 66, 54, 241, 227, 2, 250, 249,
-			252, 250, 21, 32, 11, 246, 241, 246, 243, 242, 1, 55, 66, 245, 188, 193, 2, 56, 40, 15, 17, 28, 245, 199, 203, 234, 22, 49, 45, 31,
-			35, 23, 224, 183, 202, 0, 52, 80, 31, 230, 245, 0, 234, 228, 247, 8, 48, 60, 249, 222, 236, 255, 21, 0, 23, 55, 0, 223, 189, 188,
-			32, 89, 50, 224, 217, 20, 7, 220, 191, 251, 75, 40, 1, 249, 252, 252, 234, 252, 19, 30, 35, 250, 236, 8, 12, 25, 249, 215, 239, 7,
-			21, 255, 2, 47, 43, 242, 207, 243, 17, 0, 221, 226, 54, 104, 34, 185, 166, 0, 65, 12, 209, 250, 47, 30, 240, 229, 19, 23, 246, 231,
-			233, 31, 49, 245, 193, 212, 52, 89, 249, 185, 254, 44, 23, 3, 238, 237, 254, 12, 4, 243, 15, 15, 253, 253, 221, 246, 255, 229, 253, 14,
-			45, 23, 206, 159, 173, 251, 57, 101, 70, 239, 196, 209, 250, 4, 247, 241, 9, 5, 228, 212, 219, 25, 39, 245, 234, 22, 54, 0, 194, 204,
-			11, 46, 2, 216, 223, 251, 36, 32, 210, 189, 13, 50, 7, 210, 203, 13, 35, 254, 242, 245, 35, 50, 249, 221, 231, 12, 47, 1, 175, 177,
-			8, 95, 97, 11, 208, 206, 215, 233, 9, 49, 61, 54, 12, 223, 207, 198, 235, 44, 80, 44, 249, 8, 13, 226, 195, 221, 33, 77, 69, 12,
-			218, 222, 224, 226, 8, 38, 35, 24, 19, 17, 232, 186, 215, 1, 53, 76, 3, 217, 252, 19, 5, 215, 206, 54, 114, 28, 205, 195, 239, 28,
-			30, 25, 6, 230, 246, 10, 254, 18, 40, 18, 242, 200, 202, 244, 16, 56, 62, 25, 2, 212, 199, 9, 35, 23, 29, 29, 9, 231, 230, 253,
-			237, 0, 60, 55, 254, 237, 12, 252, 229, 248, 250, 6, 41, 40, 3, 236, 215, 246, 34, 234, 214, 21, 84, 72, 252, 195, 184, 7, 44, 250,
-			234, 9, 68, 34, 210, 213, 238, 20, 29, 238, 246, 31, 33, 254, 221, 237, 2, 12, 250, 245, 47, 66, 13, 229, 214, 191, 240, 64, 58, 34,
-			7, 1, 37, 252, 166, 174, 253, 65, 61, 26, 56, 29, 206, 188, 188, 231, 250, 9, 108, 112, 18, 211, 181, 213, 252, 0, 35, 76, 22, 227,
-			225, 201, 244, 47, 47, 26, 0, 0, 242, 238, 248, 239, 9, 27, 0, 245, 12, 34, 24, 229, 193, 221, 250, 17, 16, 247, 247, 255, 251, 226,
-			197, 213, 24, 56, 10, 247, 255, 237, 231, 223, 248, 47, 28, 4, 6, 2, 1, 237, 241, 11, 4, 236, 8, 47, 1, 217, 228, 253, 17, 7,
-			7, 16, 241, 219, 235, 234, 221, 248, 25, 27, 2, 230, 228, 245, 252, 254, 253, 249, 254, 253, 249, 246, 0, 18, 12, 254, 236, 240, 6, 4,
-			250, 246, 2, 19, 9, 246, 233, 236, 251, 7, 8, 249, 246, 245, 252, 0, 234, 245, 5, 0, 15, 11, 237, 233, 1, 28, 20, 251, 243, 230,
-			248, 39, 30, 235, 236, 23, 36, 241, 223, 11, 23, 18, 253, 252, 9, 251, 0, 243, 2, 16, 242, 12, 17, 247, 230, 230, 20, 45, 27, 231,
-			197, 240, 21, 12, 8, 9, 33, 42, 240, 210, 219, 14, 47, 14, 3, 248, 5, 38, 5, 194, 202, 39, 48, 236, 232, 8, 24, 255, 202, 229,
-			48, 60, 12, 208, 221, 6, 5, 18, 26, 20, 10, 221, 221, 9, 28, 20, 7, 18, 26, 13, 237, 227, 6, 32, 17, 0, 5, 6, 28, 23,
-			235, 227, 18, 48, 250, 229, 10, 47, 52, 243, 223, 3, 33, 40, 244, 219, 253, 18, 24, 1, 245, 35, 34, 231, 221, 5, 24, 227, 206, 249,
-			62, 112, 32, 195, 208, 14, 22, 239, 246, 13, 21, 25, 15, 250, 7, 18, 254, 237, 223, 13, 55, 8, 188, 192, 6, 33, 34, 10, 231, 250,
-			27, 0, 200, 219, 26, 49, 25, 2, 233, 219, 247, 17, 13, 4, 3, 240, 250, 15, 0, 242, 225, 231, 242, 241, 17, 43, 9, 216, 225, 8,
-			10, 219, 198, 224, 11, 50, 19, 244, 252, 240, 215, 199, 231, 28, 33, 0, 249, 255, 230, 231, 248, 242, 1, 4, 239, 247, 252, 251, 249, 225,
-			240, 254, 235, 244, 6, 23, 19, 255, 230, 201, 228, 17, 20, 249, 235, 2, 20, 9, 221, 210, 255, 21, 17, 4, 236, 234, 245, 230, 243, 6,
-			255, 4, 250, 234, 243, 245, 233, 237, 2, 8, 7, 238, 221, 251, 11, 246, 232, 253, 11, 23, 2, 213, 225, 247, 17, 21, 241, 0, 12, 250,
-			1, 245, 229, 224, 1, 52, 24, 1, 234, 231, 8, 241, 243, 250, 18, 48, 0, 252, 251, 236, 253, 243, 4, 19, 38, 54, 242, 206, 233, 0,
-			5, 2, 31, 23, 32, 44, 233, 210, 232, 13, 12, 254, 23, 14, 3, 244, 240, 17, 29, 25, 8, 233, 230, 239, 20, 70, 21, 239, 16, 6,
-			5, 24, 4, 2, 11, 1, 7, 25, 31, 17, 240, 210, 255, 53, 50, 31, 0, 0, 14, 13, 0, 237, 6, 41, 48, 27, 250, 235, 242, 16,
-			35, 24, 9, 17, 21, 248, 224, 207, 245, 80, 78, 33, 22, 251, 237, 214, 215, 26, 32, 27, 58, 49, 19, 218, 167, 180, 247, 66, 94, 50,
-			244, 254, 12, 227, 214, 253, 27, 10, 243, 3, 62, 88, 34, 209, 177, 236, 40, 35, 4, 240, 248, 8, 247, 234, 254, 249, 253, 11, 7, 15,
-			237, 195, 215, 7, 33, 20, 15, 2, 255, 1, 221, 207, 237, 4, 16, 13, 8, 17, 7, 226, 207, 223, 252, 254, 251, 19, 22, 16, 14, 230,
-			205, 217, 242, 3, 246, 6, 24, 4, 249, 229, 216, 214, 243, 26, 24, 1, 228, 233, 251, 242, 238, 244, 250, 250, 253, 12, 20, 241, 199, 202,
-			249, 39, 4, 218, 234, 253, 254, 213, 197, 229, 10, 25, 2, 248, 229, 210, 225, 0, 1, 232, 7, 23, 0, 7, 246, 215, 217, 255, 20, 249,
-			2, 1, 244, 23, 248, 226, 0, 248, 6, 5, 236, 243, 6, 18, 246, 219, 242, 3, 17, 19, 237, 245, 252, 230, 249, 245, 0, 31, 23, 5,
-			220, 211, 246, 0, 16, 24, 34, 16, 215, 212, 226, 19, 39, 255, 29, 25, 9, 254, 206, 231, 254, 28, 41, 4, 25, 13, 4, 254, 209, 215,
-			0, 60, 59, 14, 255, 15, 29, 221, 209, 18, 29, 12, 9, 17, 3, 243, 252, 251, 12, 35, 5, 254, 5, 237, 250, 250, 247, 36, 22, 244,
-			3, 21, 5, 241, 244, 0, 24, 20, 0, 254, 251, 39, 42, 244, 235, 246, 8, 13, 15, 10, 246, 1, 14, 15, 5, 248, 252, 32, 40, 217,
-			201, 15, 39, 18, 250, 5, 15, 238, 225, 250, 14, 16, 9, 3, 4, 255, 2, 10, 255, 250, 237, 242, 255, 6, 47, 50, 9, 228, 197, 217,
-			19, 45, 27, 252, 245, 252, 244, 243, 253, 244, 251, 30, 32, 236, 198, 226, 2, 13, 13, 0, 3, 24, 11, 223, 222, 0, 254, 248, 6, 5,
-			255, 253, 22, 35, 248, 238, 229, 201, 251, 17, 4, 10, 250, 9, 24, 238, 191, 204, 6, 44, 35, 246, 226, 241, 7, 251, 211, 224, 4, 22,
-			17, 0, 246, 228, 243, 4, 239, 239, 3, 14, 6, 245, 239, 224, 226, 0, 9, 10, 19, 6, 241, 231, 226, 234, 3, 13, 4, 254, 255, 252,
-			246, 241, 221, 230, 13, 13, 0, 0, 243, 247, 255, 239, 233, 241, 17, 31, 253, 236, 238, 0, 17, 2, 219, 223, 19, 22, 2, 0, 227, 221,
-			20, 18, 241, 247, 237, 1, 14, 238, 244, 13, 9, 231, 237, 7, 7, 15, 254, 243, 11, 21, 243, 222, 244, 8, 31, 32, 8, 247, 251, 255,
-			228, 237, 21, 27, 23, 0, 248, 13, 244, 220, 245, 10, 25, 32, 26, 3, 231, 226, 246, 25, 21, 237, 249, 32, 27, 7, 247, 249, 7, 235,
-			223, 10, 33, 30, 17, 239, 252, 45, 23, 234, 228, 253, 27, 31, 24, 11, 254, 244, 236, 9, 37, 17, 0, 255, 16, 32, 7, 245, 3, 30,
-			41, 12, 255, 12, 26, 15, 221, 236, 37, 24, 0, 6, 22, 39, 20, 235, 231, 15, 41, 20, 253, 13, 20, 5, 255, 244, 17, 32, 251, 236,
-			6, 33, 32, 16, 8, 9, 245, 235, 251, 3, 32, 32, 5, 5, 1, 250, 253, 243, 243, 25, 55, 41, 5, 245, 238, 215, 217, 10, 51, 43,
-			16, 5, 0, 236, 227, 238, 1, 14, 15, 23, 4, 241, 242, 247, 2, 13, 22, 8, 237, 229, 3, 28, 14, 255, 238, 249, 19, 22, 4, 233,
-			250, 17, 7, 245, 238, 3, 31, 24, 234, 226, 9, 36, 13, 218, 223, 23, 41, 253, 229, 243, 2, 20, 248, 228, 12, 11, 247, 248, 255, 1,
-			247, 254, 1, 14, 20, 247, 248, 18, 4, 230, 247, 247, 245, 39, 24, 243, 241, 248, 9, 254, 254, 1, 2, 13, 246, 232, 244, 249, 0, 17,
-			24, 5, 238, 240, 14, 2, 219, 233, 26, 52, 13, 236, 230, 245, 17, 249, 234, 250, 24, 50, 3, 230, 235, 241, 3, 7, 20, 24, 12, 250,
-			225, 241, 12, 12, 0, 238, 251, 17, 3, 251, 244, 2, 15, 250, 251, 3, 2, 2, 9, 6, 250, 247, 246, 2, 2, 4, 14, 253, 245, 252,
-			5, 248, 234, 246, 252, 24, 37, 8, 227, 225, 15, 8, 230, 247, 27, 40, 11, 238, 235, 2, 14, 240, 222, 3, 43, 19, 229, 240, 24, 23,
-			254, 246, 3, 11, 252, 241, 248, 8, 6, 4, 16, 6, 1, 5, 245, 244, 251, 255, 7, 6, 21, 24, 9, 248, 227, 254, 16, 245, 237, 6,
-			36, 30, 251, 230, 240, 252, 4, 6, 1, 12, 32, 22, 239, 224, 249, 22, 20, 244, 252, 31, 29, 13, 253, 241, 244, 3, 23, 13, 0, 3,
-			5, 22, 26, 255, 243, 255, 10, 14, 0, 250, 5, 13, 24, 25, 5, 255, 20, 23, 230, 200, 236, 39, 58, 20, 245, 9, 26, 0, 228, 216,
-			246, 31, 26, 1, 0, 23, 15, 246, 241, 250, 10, 18, 7, 3, 12, 6, 244, 237, 0, 25, 16, 1, 2, 1, 2, 3, 7, 5, 255, 253,
-			244, 3, 34, 25, 0, 238, 236, 10, 27, 2, 231, 255, 29, 20, 1, 237, 247, 21, 16, 254, 246, 246, 8, 19, 3, 250, 239, 242, 12, 18,
-			1, 248, 250, 10, 15, 0, 239, 244, 17, 11, 246, 249, 248, 3, 10, 252, 2, 12, 255, 251, 2, 251, 246, 252, 255, 5, 9, 6, 0, 252,
-			240, 234, 0, 30, 27, 248, 231, 240, 5, 13, 238, 228, 3, 20, 22, 7, 233, 233, 255, 255, 255, 255, 253, 12, 13, 2, 238, 227, 255, 1,
-			252, 8, 19, 24, 243, 225, 2, 0, 240, 242, 250, 13, 17, 7, 17, 6, 224, 232, 249, 241, 9, 18, 5, 10, 6, 4, 246, 240, 11, 3,
-			242, 251, 244, 17, 45, 255, 230, 247, 8, 12, 230, 218, 15, 56, 26, 227, 223, 0, 14, 2, 238, 236, 17, 39, 4, 244, 3, 0, 251, 240,
-			229, 252, 16, 24, 20, 243, 226, 245, 252, 2, 2, 240, 247, 21, 35, 16, 241, 237, 239, 233, 250, 16, 34, 33, 253, 240, 4, 4, 246, 243,
-			249, 3, 19, 20, 15, 1, 243, 0, 0, 238, 246, 17, 21, 1, 251, 248, 6, 10, 239, 242, 7, 14, 7, 250, 246, 254, 9, 0, 243, 246,
-			3, 18, 9, 250, 244, 247, 249, 252, 6, 8, 9, 7, 253, 251, 254, 255, 251, 247, 0, 11, 8, 1, 4, 0, 242, 241, 254, 18, 25, 11,
-			245, 243, 6, 9, 252, 237, 254, 29, 23, 250, 237, 255, 14, 2, 235, 240, 24, 41, 13, 239, 232, 246, 0, 6, 13, 19, 20, 14, 255, 240,
-			246, 249, 249, 2, 15, 33, 28, 4, 236, 233, 255, 5, 0, 0, 14, 26, 12, 5, 0, 239, 252, 9, 10, 17, 6, 0, 10, 3, 1, 1,
-			245, 245, 1, 14, 17, 13, 5, 253, 253, 254, 245, 243, 5, 24, 22, 8, 1, 249, 232, 223, 239, 17, 37, 25, 252, 235, 240, 255, 6, 248,
-			245, 12, 23, 13, 2, 247, 242, 238, 237, 1, 14, 9, 22, 23, 251, 234, 230, 237, 6, 21, 13, 0, 9, 16, 255, 244, 239, 241, 242, 6,
-			27, 18, 24, 7, 232, 231, 234, 255, 18, 17, 22, 11, 239, 231, 239, 252, 17, 23, 2, 0, 5, 250, 237, 229, 249, 21, 25, 7, 251, 10,
-			8, 251, 249, 228, 222, 4, 38, 29, 10, 250, 245, 251, 248, 0, 9, 12, 16, 4, 4, 7, 231, 216, 250, 23, 26, 21, 5, 238, 245, 253,
-			248, 250, 243, 1, 17, 20, 10, 232, 243, 249, 233, 14, 30, 12, 1, 249, 248, 0, 16, 2, 249, 6, 9, 5, 241, 247, 6, 246, 247, 255,
-			2, 10, 4, 255, 253, 3, 3, 246, 240, 249, 19, 26, 250, 240, 255, 1, 254, 250, 254, 3, 17, 8, 231, 245, 10, 4, 7, 6, 4, 9,
-			254, 235, 244, 16, 31, 8, 238, 250, 17, 16, 245, 234, 249, 0, 7, 12, 6, 0, 247, 244, 249, 1, 9, 3, 251, 2, 7, 254, 244, 248,
-			0, 1, 8, 6, 252, 245, 247, 0, 9, 9, 252, 235, 240, 9, 20, 3, 242, 253, 9, 252, 240, 249, 14, 17, 251, 240, 251, 9, 15, 255,
-			239, 252, 7, 249, 249, 1, 1, 8, 6, 247, 240, 254, 13, 9, 252, 243, 249, 0, 4, 10, 7, 2, 0, 253, 245, 241, 253, 5, 5, 2,
-			249, 2, 12, 0, 247, 243, 252, 11, 7, 247, 248, 5, 5, 0, 0, 0, 246, 246, 6, 21, 18, 254, 247, 246, 241, 249, 251, 0, 9, 19,
-			19, 0, 246, 244, 251, 249, 238, 248, 12, 30, 19, 242, 238, 252, 253, 250, 1, 8, 12, 12, 0, 248, 4, 0, 230, 233, 10, 24, 18, 255,
-			247, 0, 1, 243, 232, 255, 21, 19, 7, 249, 2, 9, 249, 232, 242, 12, 11, 244, 248, 18, 21, 1, 245, 243, 249, 253, 0, 0, 8, 13,
-			255, 251, 251, 249, 251, 254, 4, 4, 8, 2, 248, 255, 0, 0, 9, 3, 243, 245, 5, 14, 6, 248, 0, 5, 251, 249, 250, 1, 9, 7,
-			0, 246, 247, 1, 3, 7, 253, 250, 6, 248, 242, 0, 1, 18, 17, 247, 246, 4, 9, 250, 232, 239, 12, 33, 24, 6, 247, 245, 248, 246,
-			255, 7, 9, 16, 26, 22, 253, 224, 224, 245, 3, 21, 14, 5, 19, 5, 249, 240, 228, 244, 18, 27, 5, 2, 255, 248, 5, 4, 2, 1,
-			10, 21, 254, 234, 255, 18, 8, 6, 14, 4, 1, 1, 246, 247, 255, 0, 255, 13, 28, 10, 247, 235, 232, 246, 8, 34, 31, 0, 247, 242,
-			242, 252, 251, 1, 20, 18, 255, 240, 246, 255, 3, 5, 0, 252, 253, 5, 11, 255, 240, 251, 14, 7, 248, 0, 15, 4, 241, 239, 252, 15,
-			10, 247, 251, 254, 0, 11, 0, 239, 248, 255, 255, 1, 249, 250, 10, 14, 0, 238, 246, 0, 252, 251, 1, 8, 5, 254, 246, 249, 2, 255,
-			248, 249, 0, 10, 15, 251, 234, 252, 8, 254, 243, 245, 5, 18, 10, 248, 243, 0, 5, 245, 238, 254, 11, 17, 6, 249, 249, 253, 248, 239,
-			247, 8, 12, 5, 253, 0, 5, 250, 238, 242, 2, 14, 7, 0, 1, 0, 246, 238, 249, 7, 9, 7, 1, 1, 0, 240, 239, 252, 2, 12,
-			13, 9, 0, 246, 240, 244, 4, 5, 0, 4, 8, 13, 7, 242, 239, 0, 7, 252, 242, 0, 13, 10, 252, 245, 1, 7, 246, 240, 252, 8,
-			12, 1, 252, 0, 0, 254, 252, 254, 1, 3, 4, 1, 1, 0, 252, 253, 250, 250, 3, 8, 9, 2, 249, 246, 0, 11, 1, 252, 252, 254,
-			7, 6, 252, 254, 10, 9, 247, 240, 254, 14, 7, 252, 1, 5, 9, 0, 236, 244, 8, 11, 4, 250, 0, 15, 7, 245, 246, 3, 8, 3,
-			6, 253, 251, 8, 253, 249, 11, 9, 248, 247, 9, 9, 1, 6, 254, 253, 4, 251, 248, 2, 12, 7, 254, 6, 12, 252, 244, 251, 0, 11,
-			4, 247, 0, 11, 15, 3, 245, 246, 254, 13, 9, 246, 255, 9, 5, 4, 2, 251, 254, 8, 1, 247, 255, 11, 14, 7, 252, 254, 8, 4,
-			4, 252, 248, 20, 23, 5, 253, 248, 5, 10, 254, 244, 1, 28, 21, 3, 243, 237, 10, 15, 246, 253, 19, 21, 14, 255, 244, 0, 254, 245,
-			254, 14, 32, 24, 247, 230, 248, 14, 11, 250, 249, 6, 22, 25, 255, 237, 253, 9, 18, 10, 239, 243, 11, 18, 6, 255, 253, 6, 21, 3,
-			243, 245, 253, 15, 15, 0, 0, 8, 5, 249, 239, 246, 13, 20, 4, 0, 4, 251, 241, 252, 11, 12, 4, 251, 252, 1, 1, 3, 4, 1,
-			3, 2, 0, 2, 5, 1, 249, 246, 252, 6, 14, 7, 250, 248, 251, 255, 254, 254, 5, 12, 11, 255, 244, 240, 246, 4, 9, 4, 3, 6,
-			5, 1, 248, 241, 253, 9, 7, 3, 3, 1, 252, 248, 244, 250, 8, 13, 5, 250, 244, 248, 1, 4, 253, 251, 4, 7, 0, 251, 248, 248,
-			2, 7, 254, 249, 2, 8, 2, 250, 247, 0, 5, 254, 247, 251, 8, 13, 0, 242, 246, 0, 3, 0, 250, 250, 1, 7, 3, 248, 245, 253,
-			2, 5, 252, 246, 2, 8, 0, 249, 246, 251, 2, 6, 2, 252, 253, 250, 255, 4, 251, 247, 0, 4, 7, 7, 253, 248, 248, 250, 1, 3,
-			254, 253, 0, 5, 8, 253, 244, 248, 1, 1, 250, 0, 8, 11, 5, 250, 248, 250, 251, 253, 1, 9, 7, 0, 254, 254, 253, 251, 253, 3,
-			2, 255, 254, 2, 10, 253, 246, 0, 2, 6, 1, 254, 2, 2, 0, 253, 255, 4, 1, 255, 0, 2, 7, 4, 248, 245, 3, 13, 3, 251,
-			254, 7, 15, 2, 241, 238, 251, 12, 14, 11, 5, 255, 0, 247, 245, 252, 0, 12, 15, 9, 255, 247, 255, 0, 254, 3, 7, 1, 3, 6,
-			1, 254, 246, 247, 4, 10, 5, 0, 10, 7, 246, 246, 253, 10, 16, 7, 254, 248, 0, 1, 254, 3, 0, 254, 7, 13, 9, 251, 243, 255,
-			9, 3, 247, 246, 10, 20, 11, 251, 240, 255, 4, 252, 254, 0, 0, 4, 9, 11, 11, 0, 244, 249, 0, 6, 7, 2, 4, 6, 8, 3,
-			249, 247, 252, 3, 9, 9, 7, 0, 249, 253, 0, 255, 4, 2, 3, 10, 6, 4, 255, 248, 255, 1, 4, 13, 13, 254, 245, 249, 0, 4,
-			254, 250, 4, 20, 18, 254, 238, 242, 255, 2, 0, 4, 14, 16, 0, 249, 250, 250, 0, 0, 0, 11, 16, 10, 253, 245, 251, 0, 253, 252,
-			5, 9, 14, 10, 251, 251, 0, 248, 244, 1, 11, 14, 18, 6, 249, 245, 243, 250, 0, 2, 1, 10, 18, 5, 249, 248, 251, 252, 249, 252,
-			12, 21, 7, 252, 248, 252, 1, 249, 241, 254, 21, 26, 11, 250, 240, 246, 253, 249, 253, 10, 18, 16, 3, 250, 245, 239, 246, 3, 7, 9,
-			9, 4, 0, 252, 249, 252, 254, 0, 4, 5, 8, 9, 255, 242, 241, 253, 10, 6, 252, 253, 2, 9, 6, 246, 238, 250, 10, 8, 255, 0,
-			3, 0, 253, 250, 248, 1, 10, 2, 247, 248, 4, 5, 253, 254, 0, 5, 5, 253, 248, 252, 255, 255, 2, 5, 6, 1, 253, 253, 0, 255,
-			252, 0, 1, 2, 3, 255, 249, 250, 0, 3, 1, 253, 252, 0, 0, 249, 253, 4, 4, 0, 252, 251, 1, 4, 253, 249, 0, 3, 3, 255,
-			250, 254, 254, 253, 254, 0, 3, 1, 0, 253, 1, 6, 0, 249, 249, 255, 3, 2, 0, 255, 0, 254, 255, 0, 252, 255, 6, 3, 252, 250,
-			255, 255, 0, 1, 253, 2, 6, 0, 252, 249, 0, 4, 4, 0, 247, 252, 3, 3, 1, 251, 0, 6, 2, 254, 248, 246, 255, 2, 0, 3,
-			9, 9, 0, 245, 243, 250, 0, 4, 2, 4, 11, 7, 253, 244, 246, 255, 4, 4, 3, 5, 9, 2, 248, 249, 248, 252, 1, 3, 12, 14,
-			5, 250, 243, 246, 246, 252, 6, 12, 16, 9, 252, 244, 243, 241, 249, 10, 18, 18, 6, 253, 252, 243, 239, 252, 8, 18, 24, 10, 245, 237,
-			241, 251, 2, 9, 15, 12, 8, 2, 245, 241, 245, 254, 8, 14, 10, 4, 5, 3, 248, 238, 241, 0, 16, 20, 10, 1, 253, 249, 247, 248,
-			0, 10, 15, 10, 0, 253, 254, 252, 245, 252, 9, 11, 12, 9, 0, 248, 246, 251, 255, 2, 8, 9, 10, 7, 252, 244, 247, 253, 0, 6,
-			9, 8, 8, 3, 253, 249, 246, 248, 7, 16, 7, 0, 251, 255, 8, 2, 249, 248, 252, 3, 12, 8, 255, 253, 1, 0, 249, 251, 5, 16,
-			14, 2, 254, 251, 252, 254, 254, 3, 9, 10, 6, 253, 248, 250, 0, 3, 5, 8, 8, 0, 252, 252, 250, 253, 5, 7, 9, 10, 1, 251,
-			251, 254, 0, 0, 0, 5, 7, 6, 4, 2, 0, 251, 249, 253, 0, 4, 3, 6, 11, 2, 253, 253, 252, 254, 0, 1, 8, 12, 8, 3,
-			249, 243, 249, 1, 7, 7, 7, 8, 4, 253, 250, 250, 251, 3, 11, 9, 2, 254, 255, 0, 255, 255, 2, 6, 7, 1, 255, 254, 250, 251,
-			0, 4, 8, 6, 0, 255, 0, 254, 251, 255, 6, 8, 4, 254, 252, 0, 2, 0, 0, 0, 2, 3, 3, 1, 255, 254, 255, 0, 0, 2,
-			1, 4, 2, 251, 249, 254, 5, 9, 5, 0, 0, 3, 1, 251, 250, 1, 10, 7, 254, 253, 0, 1, 0, 251, 251, 4, 7, 3, 255, 0,
-			1, 255, 252, 252, 255, 4, 5, 0, 0, 4, 1, 251, 251, 255, 3, 2, 255, 0, 8, 9, 255, 250, 252, 253, 0, 3, 3, 2, 2, 2,
-			0, 251, 251, 255, 0, 2, 3, 3, 6, 4, 255, 248, 248, 254, 3, 7, 8, 3, 0, 254, 251, 253, 254, 255, 3, 9, 5, 0, 2, 0,
-			253, 250, 250, 1, 10, 10, 1, 254, 0, 0, 254, 251, 253, 0, 6, 8, 6, 1, 248, 245, 253, 3, 6, 7, 5, 2, 0, 251, 250, 253,
-			0, 2, 5, 9, 8, 255, 248, 249, 251, 2, 8, 7, 3, 0, 0, 255, 251, 250, 254, 8, 10, 0, 255, 0, 0, 253, 252, 1, 5, 8,
-			4, 252, 251, 254, 0, 0, 255, 3, 8, 4, 254, 254, 254, 255, 0, 1, 3, 3, 0, 253, 254, 3, 1, 254, 1, 6, 4, 0, 254, 254,
-			0, 1, 1, 0, 2, 2, 2, 255, 254, 0, 0, 1, 2, 1, 2, 0, 253, 254, 255, 2, 8, 4, 1, 1, 251, 251, 0, 6, 5, 2,
-			1, 1, 0, 254, 252, 255, 1, 3, 5, 3, 3, 3, 254, 250, 254, 2, 5, 5, 3, 0, 255, 0, 0, 0, 0, 3, 5, 3, 254, 251,
-			254, 4, 6, 2, 0, 0, 1, 1, 0, 255, 2, 7, 7, 3, 254, 251, 253, 3, 2, 253, 1, 8, 7, 3, 0, 253, 253, 255, 0, 1,
-			5, 6, 1, 253, 252, 253, 1, 1, 1, 4, 4, 5, 3, 253, 251, 252, 255, 1, 5, 6, 5, 1, 251, 251, 255, 0, 0, 1, 3, 2,
-			2, 1, 253, 253, 0, 0, 1, 3, 0, 254, 255, 2, 3, 255, 252, 254, 2, 2, 0, 255, 2, 5, 3, 254, 249, 254, 5, 3, 0, 0,
-			4, 2, 255, 253, 255, 0, 0, 0, 0, 0, 200, 0, 4, 0, 1, 0, 191, 0, 180, 1, 28, 8, 44, 10, 124, 13, 216, 14, 128, 28,
-			50, 41, 25, 54, 56, 53, 42, 34, 11, 8, 185, 107, 137, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 191, 0, 180, 1, 28, 8, 44, 10, 124, 13,
-			216, 14, 128, 28, 80, 77, 35, 75, 77, 73, 57, 47, 15, 11, 185, 107, 137, 120, 120, 120, 185, 107, 127, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 191, 0, 180, 1, 28, 8,
-			44, 10, 124, 13, 216, 14, 128, 28, 70, 65, 32, 69, 71, 67, 53, 43, 13, 10, 185, 107, 137, 120, 120, 120, 185, 107, 127, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 191, 0,
-			180, 1, 28, 8, 44, 10, 124, 13, 216, 14, 128, 28, 0, 29, 22, 46, 48, 45, 35, 29, 9, 7, 185, 107, 137, 120, 120, 120, 185, 107,
-			127, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8,
-			175, 0, 4, 0, 1, 0, 214, 0, 168, 2, 240, 5, 200, 9, 22, 13, 200, 14, 102, 27, 45, 38, 30, 56, 55, 42, 32, 25, 11, 3,
-			179, 145, 174, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191,
-			197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 214, 0, 168, 2, 240, 5, 200, 9, 22, 13, 200, 14, 102, 27, 70, 61, 38, 71, 70, 53,
-			40, 31, 14, 5, 179, 145, 174, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
-			184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 214, 0, 168, 2, 240, 5, 200, 9, 22, 13, 200, 14, 102, 27, 60, 51,
-			35, 65, 64, 48, 37, 29, 13, 4, 179, 145, 174, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 214, 0, 168, 2, 240, 5, 200, 9, 22, 13, 200, 14,
-			102, 27, 0, 28, 25, 48, 47, 36, 27, 21, 9, 3, 179, 145, 174, 120, 120, 120, 200, 127, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 172, 7, 130, 0, 1, 1, 1, 1, 1, 1,
-			1, 2, 4, 12, 31, 46, 11, 197, 182, 214, 6, 55, 45, 33, 240, 222, 13, 255, 213, 207, 230, 4, 90, 100, 0, 167, 227, 243, 38, 96,
-			2, 131, 232, 24, 14, 75, 16, 202, 2, 34, 243, 255, 239, 214, 7, 41, 2, 11, 20, 17, 13, 235, 211, 226, 247, 19, 6, 19, 16, 35,
-			6, 1, 9, 216, 216, 255, 0, 52, 53, 255, 249, 242, 247, 255, 249, 232, 207, 233, 32, 41, 0, 21, 2, 234, 252, 251, 29, 57, 247, 206,
-			220, 232, 54, 39, 14, 222, 240, 239, 8, 49, 37, 3, 222, 223, 0, 37, 16, 240, 237, 249, 24, 10, 245, 212, 227, 7, 52, 32, 244, 226,
-			230, 4, 0, 0, 16, 41, 45, 23, 212, 217, 231, 17, 26, 4, 238, 218, 239, 254, 249, 255, 226, 247, 7, 1, 233, 217, 238, 19, 40, 64,
-			20, 3, 242, 231, 246, 3, 250, 0, 18, 18, 10, 14, 22, 9, 10, 251, 217, 235, 10, 10, 15, 12, 24, 32, 30, 230, 222, 231, 1, 9,
-			4, 251, 252, 20, 27, 15, 254, 231, 231, 241, 255, 7, 9, 5, 3, 246, 254, 12, 236, 238, 225, 7, 13, 8, 12, 246, 4, 10, 8, 249,
-			239, 1, 2, 231, 227, 10, 21, 81, 57, 250, 200, 214, 225, 6, 24, 1, 253, 9, 22, 12, 251, 230, 232, 250, 18, 12, 7, 247, 249, 246,
-			249, 253, 5, 4, 6, 255, 240, 235, 248, 23, 42, 9, 248, 229, 0, 6, 19, 0, 239, 247, 8, 20, 8, 255, 248, 5, 22, 32, 11, 244,
-			228, 238, 254, 12, 10, 0, 252, 3, 4, 0, 4, 0, 253, 249, 251, 3, 11, 5, 5, 248, 233, 247, 0, 10, 8, 250, 237, 247, 5, 3,
-			255, 2, 249, 249, 0, 3, 2, 0, 251, 250, 4, 3, 5, 12, 12, 2, 252, 252, 250, 8, 10, 5, 6, 13, 3, 3, 7, 251, 255, 253,
-			244, 250, 4, 0, 3, 4, 253, 243, 246, 250, 1, 1, 251, 245, 255, 3, 2, 2, 251, 244, 247, 251, 251, 8, 2, 248, 254, 5, 6, 2,
-			5, 255, 0, 253, 250, 7, 10, 7, 255, 0, 0, 5, 11, 10, 6, 1, 250, 0, 3, 2, 251, 253, 3, 9, 10, 2, 255, 253, 254, 6,
-			10, 8, 0, 252, 4, 10, 5, 253, 246, 252, 0, 7, 7, 1, 3, 252, 253, 0, 4, 1, 0, 255, 253, 253, 0, 255, 1, 0, 254, 253,
-			2, 2, 0, 2, 1, 255, 255, 255, 0, 4, 3, 0, 0, 0, 1, 1, 2, 2, 2, 3, 0, 2, 3, 1, 0, 0, 255, 0, 0, 2,
-			2, 3, 2, 1, 0, 254, 252, 0, 0, 0, 0, 255, 255, 0, 0, 255, 254, 253, 253, 254, 0, 0, 2, 255, 251, 251, 254, 0, 2, 0,
-			255, 255, 255, 1, 2, 0, 255, 255, 255, 0, 3, 2, 1, 255, 254, 254, 0, 2, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 254,
-			0, 1, 1, 254, 254, 255, 255, 1, 1, 255, 254, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 255, 254, 254, 0, 1, 2, 2,
-			0, 255, 0, 1, 0, 1, 0, 254, 1, 2, 2, 1, 0, 255, 0, 0, 0, 1, 0, 0, 255, 0, 0, 2, 2, 2, 0, 255, 0, 0,
-			1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 255, 0, 0, 0, 1, 0, 0,
-			0, 1, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 0, 0, 255, 0, 0, 0,
-			0, 0, 0, 0, 1, 1, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 255, 0, 0, 0, 0, 0,
-			0, 0, 0, 1, 0, 0, 255, 0, 0, 1, 0, 0, 255, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
-			1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 2, 1, 1, 0, 0,
-			0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1,
-			1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0,
-			1, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0,
-			2, 1, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1,
-			0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1,
-			1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 255, 0, 0, 1, 2, 0, 255, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 3, 2, 255, 251, 247, 247, 251, 1, 8, 10, 7,
-			4, 1, 254, 252, 249, 250, 248, 255, 4, 9, 10, 4, 2, 0, 255, 254, 253, 255, 254, 1, 3, 3, 1, 255, 255, 254, 0, 0, 1, 3,
-			2, 1, 0, 254, 254, 252, 254, 254, 0, 2, 3, 4, 4, 2, 0, 254, 254, 254, 255, 0, 2, 3, 3, 2, 2, 0, 255, 0, 0, 0,
-			1, 2, 1, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 254, 251, 252, 255, 1, 3, 3, 3, 2, 1, 0, 0, 253, 252, 253, 0, 4,
-			5, 5, 4, 2, 0, 0, 0, 254, 254, 0, 2, 3, 1, 1, 0, 0, 255, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 255, 0,
-			2, 4, 3, 2, 0, 0, 0, 0, 255, 0, 0, 2, 3, 3, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 255, 254, 253, 255, 2, 5, 6, 3, 0, 254, 253, 255, 0, 0, 0, 2, 4, 5, 5, 2, 0, 254, 253,
-			255, 1, 2, 1, 0, 0, 0, 0, 1, 0, 255, 255, 0, 1, 2, 1, 0, 0, 255, 255, 0, 0, 0, 0, 2, 3, 2, 2, 0, 255,
-			0, 0, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 2, 2, 1, 0, 255, 253, 251, 251, 253, 0, 2, 5, 7, 5, 1, 254, 253, 252,
-			252, 253, 255, 2, 5, 7, 7, 4, 0, 254, 254, 255, 0, 0, 0, 2, 2, 1, 1, 0, 255, 255, 255, 0, 1, 1, 1, 0, 255, 255,
-			255, 255, 255, 0, 0, 2, 4, 3, 2, 1, 0, 254, 255, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 255, 0, 0, 1, 0, 0, 0,
-			255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 254, 253, 253, 253, 254, 1, 3, 6, 7, 3, 255,
-			251, 251, 253, 255, 255, 0, 2, 4, 5, 5, 1, 254, 252, 252, 0, 1, 2, 1, 1, 0, 1, 1, 0, 255, 254, 0, 2, 3, 2, 0,
-			0, 254, 255, 0, 0, 0, 0, 0, 2, 3, 2, 0, 255, 255, 255, 0, 0, 1, 1, 1, 2, 1, 0, 0, 255, 0, 0, 0, 1, 2,
-			1, 0, 255, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 255, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 1, 1, 0, 0, 0, 0, 2, 2, 1, 0, 254, 253, 252, 254, 1, 2, 3, 4, 3, 2, 255, 253, 254, 255, 0, 0, 3, 4, 2,
-			1, 0, 0, 255, 0, 1, 1, 2, 0, 0, 0, 0, 0, 255, 0, 0, 0, 2, 2, 3, 1, 0, 0, 255, 255, 255, 0, 1, 1, 2,
-			3, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2,
-			1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1,
-			0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1,
-			1, 0, 0, 0, 0, 0, 0, 0, 254, 254, 0, 2, 4, 3, 2, 0, 0, 0, 1, 1, 0, 0, 0, 2, 3, 2, 0, 0, 255, 0,
-			1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1,
-			0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 3, 0, 5, 0, 136, 0, 216, 0, 220, 5, 140, 10, 228, 12, 24, 16, 124, 21, 35, 9,
-			16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 1, 0, 136, 0, 216, 0, 220, 5, 140, 10, 228, 12, 24, 16,
-			124, 21, 0, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 136, 0, 216, 0, 220, 5, 140, 10,
-			228, 12, 24, 16, 124, 21, 0, 9, 16, 16, 9, 6, 3, 3, 0, 0, 200, 212, 187, 255, 255, 175, 200, 212, 187, 44, 30, 50, 85, 54,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 6, 0, 1, 0,
-			180, 0, 128, 2, 120, 5, 126, 9, 233, 12, 116, 14, 176, 27, 40, 47, 32, 60, 67, 43, 38, 31, 13, 3, 174, 157, 145, 120, 120, 120,
-			200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 180, 0, 128, 2, 120, 5, 126, 9, 233, 12, 116, 14, 176, 27, 45, 105, 48, 89, 101, 65, 57, 47, 19, 4, 174, 157,
-			145, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 187, 0, 120, 2, 181, 5, 125, 9, 234, 12, 110, 14, 189, 27, 45, 78, 41, 77, 87, 59, 51, 42,
-			16, 4, 175, 155, 147, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 216, 0, 88, 2, 184, 6, 136, 9, 242, 12, 86, 14, 243, 27, 70, 61, 33, 67,
-			75, 58, 50, 40, 14, 5, 180, 144, 158, 120, 120, 120, 200, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 156, 0, 96, 1, 192, 8, 140, 10, 152, 13, 166, 14, 32, 28,
-			40, 44, 33, 56, 50, 60, 46, 33, 10, 8, 167, 90, 195, 120, 120, 120, 122, 120, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 156, 0, 96, 1, 192, 8, 160, 10, 92, 13,
-			10, 15, 32, 28, 0, 31, 30, 47, 48, 44, 40, 32, 9, 8, 167, 90, 135, 120, 120, 120, 122, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 245, 0, 5, 0, 1, 0, 253, 0,
-			168, 2, 120, 5, 238, 9, 66, 13, 215, 14, 0, 28, 45, 45, 40, 54, 70, 39, 36, 26, 12, 3, 200, 140, 140, 120, 120, 120, 150, 175,
-			150, 44, 45, 70, 130, 59, 155, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182,
-			3, 0, 253, 0, 168, 2, 120, 5, 238, 9, 66, 13, 215, 14, 0, 28, 70, 81, 54, 72, 94, 52, 48, 35, 17, 4, 200, 140, 140, 120,
-			120, 120, 150, 175, 150, 44, 45, 70, 130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182,
-			1, 250, 0, 0, 1, 0, 211, 0, 232, 1, 108, 7, 133, 10, 75, 13, 255, 14, 10, 27, 70, 48, 35, 52, 65, 48, 46, 31, 13, 4,
-			183, 150, 134, 120, 120, 120, 158, 175, 135, 44, 45, 70, 130, 60, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182,
-			8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 60, 31, 20, 37, 44, 47,
-			47, 30, 11, 5, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 175, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 169, 0, 56, 1, 192, 8, 28, 11, 84, 13, 40, 15, 20, 26, 0, 16,
-			14, 27, 32, 34, 34, 22, 8, 3, 166, 170, 129, 120, 120, 120, 167, 190, 120, 44, 45, 70, 130, 60, 175, 0, 0, 0, 40, 0, 0, 0,
-			0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 0, 0, 6, 0, 1, 0, 238, 0, 168, 2, 60, 5, 136, 9,
-			48, 12, 191, 14, 88, 28, 46, 47, 26, 58, 67, 47, 36, 31, 12, 5, 170, 131, 172, 120, 120, 120, 255, 120, 142, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 238, 0, 168, 2,
-			60, 5, 136, 9, 48, 12, 191, 14, 88, 28, 25, 108, 40, 88, 102, 72, 56, 48, 19, 8, 170, 131, 172, 120, 120, 120, 255, 120, 142, 44,
-			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0,
-			230, 0, 128, 2, 32, 5, 124, 9, 50, 12, 193, 14, 92, 28, 43, 69, 31, 71, 80, 54, 44, 36, 15, 6, 169, 133, 166, 120, 120, 120,
-			255, 132, 138, 44, 45, 70, 130, 58, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250,
-			0, 0, 1, 0, 198, 0, 248, 1, 176, 4, 76, 9, 58, 12, 204, 14, 112, 28, 60, 71, 28, 76, 72, 41, 43, 25, 14, 8, 166, 142,
-			142, 120, 120, 120, 170, 180, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200,
-			53, 182, 64, 250, 23, 8, 5, 0, 192, 0, 174, 1, 196, 4, 172, 8, 204, 11, 141, 14, 224, 28, 46, 39, 28, 64, 39, 27, 18, 16,
-			8, 8, 162, 120, 135, 120, 120, 120, 117, 90, 180, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169,
-			0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 176, 0, 134, 1, 189, 3, 92, 8, 204, 11, 141, 14, 224, 28, 0, 33, 24, 58,
-			38, 22, 15, 12, 9, 8, 152, 120, 75, 120, 120, 120, 107, 90, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 247, 0, 5, 0, 1, 0, 251, 0, 128, 2, 96, 4, 92, 10, 60, 12,
-			48, 14, 235, 27, 45, 49, 32, 65, 69, 26, 39, 24, 7, 5, 182, 124, 126, 120, 120, 120, 105, 139, 135, 44, 45, 70, 130, 59, 160, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 251, 0, 128, 2, 96, 4,
-			92, 10, 60, 12, 48, 14, 235, 27, 60, 70, 39, 78, 82, 31, 47, 29, 8, 6, 182, 124, 126, 120, 120, 120, 105, 139, 135, 44, 45, 70,
-			130, 59, 160, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 230, 0,
-			8, 2, 52, 3, 56, 10, 10, 12, 13, 14, 253, 27, 80, 44, 41, 50, 48, 30, 37, 25, 7, 6, 184, 116, 124, 120, 120, 120, 105, 149,
-			135, 44, 45, 70, 130, 59, 170, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 208, 0, 136, 1, 8, 2, 20, 10, 216, 11, 234, 13, 15, 28, 62, 26, 39, 30, 16, 28, 28, 19, 6, 5, 186, 83, 122, 120,
-			120, 120, 105, 135, 135, 44, 45, 70, 130, 60, 155, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 1, 0, 222, 0, 130, 1, 0, 5, 0, 10, 194, 12, 197, 14, 136, 27, 0, 22, 47, 35, 19, 23, 22, 17, 6, 3,
-			153, 71, 106, 120, 120, 120, 67, 135, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191,
-			77, 220, 52, 182, 64, 250, 23, 8, 165, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 110, 86,
-			41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 7, 0, 116, 0, 24, 2, 136, 5, 16, 9, 88, 12, 16, 14,
-			88, 27, 55, 24, 22, 43, 46, 30, 28, 21, 11, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 72, 2, 120, 5, 208, 7,
-			224, 11, 152, 13, 88, 27, 0, 21, 22, 43, 37, 30, 13, 11, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 3, 0, 1, 0,
-			116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 50, 50, 31, 60, 73, 41, 43, 33, 17, 6, 167, 150, 135, 120, 120, 120,
-			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 90, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150,
-			135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 0, 42, 28, 55, 67, 38, 39, 30,
-			16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 0, 0, 3, 0, 1, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27,
-			50, 49, 30, 62, 69, 42, 44, 32, 16, 6, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
-			0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 123, 0, 15, 2, 181, 5, 176, 9, 198, 12,
-			136, 14, 38, 27, 90, 88, 40, 83, 92, 56, 58, 43, 22, 8, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 123, 0, 15, 2, 181, 5,
-			176, 9, 198, 12, 136, 14, 38, 27, 0, 42, 27, 57, 63, 38, 40, 30, 15, 5, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 201, 0, 6, 0,
-			1, 0, 104, 0, 139, 1, 9, 8, 80, 10, 72, 13, 60, 15, 160, 27, 42, 46, 10, 66, 56, 58, 42, 33, 10, 8, 150, 165, 150, 120,
-			120, 120, 150, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182,
-			176, 250, 118, 182, 3, 0, 104, 0, 139, 1, 20, 8, 160, 10, 72, 13, 60, 15, 32, 27, 50, 60, 16, 66, 78, 77, 67, 37, 15, 8,
-			167, 120, 150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191,
-			197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 128, 0, 179, 1, 232, 7, 80, 10, 52, 13, 60, 15, 64, 27, 31, 45, 20, 70, 53, 50,
-			46, 25, 9, 8, 180, 90, 150, 120, 120, 120, 180, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182,
-			49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 168, 0, 3, 2, 67, 7, 196, 9, 112, 13, 60, 15, 64, 27, 44, 40,
-			25, 65, 56, 50, 38, 25, 12, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
-			0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 1, 0, 168, 0, 3, 2, 103, 6, 156, 9, 32, 13, 85, 15,
-			64, 28, 34, 25, 21, 43, 43, 45, 36, 20, 6, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59, 0, 0, 0, 0,
-			40, 0, 0, 0, 0, 200, 53, 182, 200, 169, 0, 191, 77, 220, 52, 182, 64, 250, 23, 8, 1, 0, 184, 0, 3, 2, 59, 6, 156, 9,
-			112, 13, 29, 16, 192, 28, 0, 25, 26, 43, 39, 39, 31, 16, 4, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70, 130, 59,
-			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 36, 0, 0, 0, 250, 0, 0, 180, 0, 4, 0, 1, 0,
-			158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 50, 32, 10, 58, 42, 49, 50, 24, 11, 5, 166, 105, 120, 120, 120, 120,
-			130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250,
-			118, 182, 3, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 70, 73, 15, 88, 64, 74, 75, 37, 17, 8, 166, 105,
-			120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158,
-			118, 182, 1, 250, 0, 0, 1, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 60, 65, 14, 83, 60, 70, 71, 35,
-			16, 7, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133,
-			0, 182, 8, 0, 0, 0, 1, 250, 0, 0, 1, 0, 125, 0, 0, 1, 56, 9, 4, 11, 20, 13, 0, 15, 64, 26, 0, 33, 8, 52,
-			52, 53, 54, 29, 11, 8, 167, 99, 114, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154,
-			216, 182, 0, 0, 0, 0, 188, 200, 53, 182, 64, 250, 23, 8, 95, 0, 4, 0, 1, 0, 157, 0, 144, 1, 90, 5, 252, 8, 168, 12,
-			181, 14, 148, 25, 45, 41, 21, 56, 54, 42, 37, 29, 12, 9, 174, 125, 138, 121, 121, 130, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0,
-			0, 0, 40, 0, 0, 0, 0, 210, 117, 182, 200, 168, 0, 191, 197, 184, 216, 182, 176, 250, 118, 182, 3, 0, 157, 0, 144, 1, 90, 5,
-			252, 8, 168, 12, 181, 14, 148, 25, 90, 74, 29, 75, 73, 56, 50, 39, 16, 12, 174, 125, 138, 121, 121, 130, 187, 126, 137, 44, 45, 70,
-			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 184, 168, 0, 191, 197, 158, 118, 182, 1, 250, 0, 0, 1, 0, 143, 0,
-			183, 1, 0, 5, 65, 9, 121, 12, 164, 14, 155, 26, 50, 60, 29, 67, 70, 44, 41, 32, 16, 7, 168, 136, 140, 120, 120, 123, 187, 126,
-			137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 49, 133, 0, 182, 8, 0, 0, 0, 1, 250, 0, 0,
-			1, 0, 143, 0, 183, 1, 0, 5, 65, 9, 121, 12, 164, 14, 155, 26, 0, 44, 25, 58, 60, 38, 36, 27, 14, 6, 168, 136, 140, 120,
-			120, 123, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 154, 216, 182, 0, 0, 0, 0, 188, 200, 53, 182,
-			64, 250, 23, 8, 51, 1, 61, 0, 0, 0, 3, 3, 34, 126, 63, 228, 224, 253, 19, 246, 245, 31, 94, 39, 4, 4, 31, 47, 12, 255,
-			17, 4, 41, 10, 7, 12, 9, 8, 13, 12, 5, 243, 226, 244, 244, 251, 240, 226, 238, 62, 71, 228, 217, 12, 18, 14, 249, 10, 3, 233,
-			224, 4, 36, 44, 25, 254, 4, 35, 16, 240, 229, 2, 18, 12, 5, 11, 0, 245, 243, 249, 16, 11, 253, 241, 231, 251, 4, 238, 233, 250,
-			8, 11, 3, 252, 0, 250, 243, 254, 5, 37, 34, 8, 239, 251, 34, 27, 27, 11, 16, 40, 29, 12, 11, 7, 7, 239, 247, 6, 23, 9,
-			245, 233, 8, 7, 6, 247, 234, 6, 236, 209, 242, 5, 246, 224, 219, 0, 30, 9, 224, 212, 223, 249, 246, 235, 227, 234, 10, 15, 237, 7,
-			242, 22, 6, 217, 215, 0, 48, 10, 217, 227, 12, 32, 7, 235, 2, 9, 231, 226, 241, 248, 28, 221, 213, 247, 17, 5, 248, 246, 244, 214,
-			224, 245, 234, 241, 2, 19, 221, 246, 6, 247, 236, 228, 23, 0, 240, 234, 11, 5, 253, 1, 10, 3, 32, 19, 241, 254, 15, 249, 240, 14,
-			35, 8, 238, 20, 47, 17, 252, 246, 241, 0, 13, 33, 1, 9, 5, 9, 0, 6, 20, 0, 249, 244, 3, 250, 0, 39, 11, 220, 241, 39,
-			38, 14, 227, 236, 255, 255, 252, 250, 251, 4, 250, 246, 254, 254, 245, 231, 234, 248, 248, 243, 243, 244, 246, 245, 240, 236, 238, 239, 239, 240,
-			239, 242, 244, 238, 233, 239, 242, 243, 242, 235, 234, 238, 236, 240, 240, 246, 0, 5, 6, 9, 5, 241, 242, 245, 251, 10, 2, 19, 23, 19,
-			23, 15, 15, 2, 0, 253, 5, 13, 19, 19, 6, 8, 4, 247, 246, 0, 0};
-		autoFileInMemory espeakdata_phons2 = FileInMemory_createWithData (406336, reinterpret_cast<const char *> (&espeakdata_phons2_data), 
-			U"/home/david/projects/praat/espeak-work/espeak-1.48.04-source/espeak-data/phondata", 
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12,
+			116, 14, 88, 27, 110, 86, 41, 79, 96, 54, 56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 7, 0, 116, 0, 24, 2, 136, 5,
+			16, 9, 88, 12, 16, 14, 88, 27, 55, 24, 22, 43, 46, 30, 28, 21, 11, 4, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0,
+			72, 2, 120, 5, 208, 7, 224, 11, 152, 13, 88, 27, 0, 21, 22, 43, 37, 30, 13, 11, 6, 4, 167, 150, 135, 120, 120, 120, 197, 120,
+			120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182,
+			0, 0, 3, 0, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 50, 50, 31, 60, 73, 41, 43, 33, 17, 6,
+			167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 90, 86, 41, 79, 96, 54,
+			56, 43, 23, 8, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 116, 0, 24, 2, 140, 5, 116, 9, 188, 12, 116, 14, 88, 27, 0, 42,
+			28, 55, 67, 38, 39, 30, 16, 6, 167, 150, 135, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 0, 0, 3, 0, 1, 0, 123, 0, 15, 2, 181, 5, 176, 9,
+			198, 12, 136, 14, 38, 27, 50, 49, 30, 62, 69, 42, 44, 32, 16, 6, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44, 45, 70, 130, 59,
+			0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 123, 0, 15, 2,
+			181, 5, 176, 9, 198, 12, 136, 14, 38, 27, 90, 88, 40, 83, 92, 56, 58, 43, 22, 8, 166, 145, 133, 120, 120, 120, 197, 120, 120, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0,
+			123, 0, 15, 2, 181, 5, 176, 9, 198, 12, 136, 14, 38, 27, 0, 42, 27, 57, 63, 38, 40, 30, 15, 5, 166, 145, 133, 120, 120, 120,
+			197, 120, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250,
+			209, 182, 201, 0, 6, 0, 1, 0, 104, 0, 139, 1, 9, 8, 80, 10, 72, 13, 60, 15, 160, 27, 42, 46, 10, 66, 56, 58, 42, 33,
+			10, 8, 150, 165, 150, 120, 120, 120, 150, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64,
+			0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 104, 0, 139, 1, 20, 8, 160, 10, 72, 13, 60, 15, 32, 27, 50, 60, 16, 66,
+			78, 77, 67, 37, 15, 8, 167, 120, 150, 120, 120, 120, 167, 120, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242,
+			110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 128, 0, 179, 1, 232, 7, 80, 10, 52, 13, 60, 15, 64, 27,
+			31, 45, 20, 70, 53, 50, 46, 25, 9, 8, 180, 90, 150, 120, 120, 120, 180, 105, 165, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 168, 0, 3, 2, 67, 7, 196, 9, 112, 13,
+			60, 15, 64, 27, 44, 40, 25, 65, 56, 50, 38, 25, 12, 8, 167, 90, 150, 120, 120, 120, 167, 90, 165, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 1, 0, 168, 0, 3, 2, 103, 6,
+			156, 9, 32, 13, 85, 15, 64, 28, 34, 25, 21, 43, 43, 45, 36, 20, 6, 8, 167, 150, 120, 120, 120, 120, 167, 105, 135, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 1, 0, 184, 0,
+			3, 2, 59, 6, 156, 9, 112, 13, 29, 16, 192, 28, 0, 25, 26, 43, 39, 39, 31, 16, 4, 8, 167, 150, 120, 120, 120, 120, 167, 105,
+			135, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191, 76, 8, 87, 182, 0, 250, 0, 0,
+			180, 0, 4, 0, 1, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 50, 32, 10, 58, 42, 49, 50, 24, 11, 5,
+			166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191,
+			197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 70, 73, 15, 88, 64, 74,
+			75, 37, 17, 8, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182,
+			232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 158, 0, 56, 1, 165, 8, 215, 10, 49, 13, 9, 15, 112, 26, 60, 65,
+			14, 83, 60, 70, 71, 35, 16, 7, 166, 105, 120, 120, 120, 120, 130, 75, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0,
+			0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 125, 0, 0, 1, 56, 9, 4, 11, 20, 13, 0, 15,
+			64, 26, 0, 33, 8, 52, 52, 53, 54, 29, 11, 8, 167, 99, 114, 120, 120, 120, 167, 105, 120, 44, 45, 70, 130, 59, 0, 0, 0, 0,
+			40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 95, 0, 4, 0, 1, 0, 157, 0, 144, 1,
+			90, 5, 252, 8, 168, 12, 181, 14, 148, 25, 45, 41, 21, 56, 54, 42, 37, 29, 12, 9, 174, 125, 138, 121, 121, 130, 187, 126, 137, 44,
+			45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0,
+			157, 0, 144, 1, 90, 5, 252, 8, 168, 12, 181, 14, 148, 25, 90, 74, 29, 75, 73, 56, 50, 39, 16, 12, 174, 125, 138, 121, 121, 130,
+			187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250,
+			21, 8, 1, 0, 143, 0, 183, 1, 0, 5, 65, 9, 121, 12, 164, 14, 155, 26, 50, 60, 29, 67, 70, 44, 41, 32, 16, 7, 168, 136,
+			140, 120, 120, 123, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32,
+			0, 0, 240, 250, 209, 182, 1, 0, 143, 0, 183, 1, 0, 5, 65, 9, 121, 12, 164, 14, 155, 26, 0, 44, 25, 58, 60, 38, 36, 27,
+			14, 6, 168, 136, 140, 120, 120, 123, 187, 126, 137, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65,
+			0, 191, 145, 236, 45, 182, 1, 250, 0, 0, 215, 0, 6, 0, 1, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13, 60, 15, 144, 26,
+			45, 44, 6, 70, 36, 21, 21, 30, 12, 7, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 104, 64, 0, 191, 197, 190, 111, 182, 1, 250, 0, 0, 3, 0, 176, 0, 64, 1, 92, 3, 56, 9, 12, 13,
+			60, 15, 144, 26, 30, 68, 7, 87, 45, 26, 26, 38, 15, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0,
+			0, 0, 40, 0, 0, 0, 0, 242, 110, 182, 232, 64, 0, 191, 233, 59, 105, 182, 200, 250, 21, 8, 1, 0, 176, 0, 64, 1, 92, 3,
+			56, 9, 12, 13, 60, 15, 144, 26, 50, 61, 7, 83, 43, 25, 25, 36, 14, 9, 177, 125, 102, 120, 120, 120, 177, 125, 117, 44, 45, 70,
+			130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 49, 165, 0, 182, 29, 32, 0, 0, 240, 250, 209, 182, 1, 0, 146, 0,
+			166, 1, 126, 4, 46, 9, 228, 12, 216, 14, 248, 26, 50, 47, 16, 68, 52, 30, 30, 32, 14, 8, 172, 137, 118, 120, 120, 120, 177, 125,
+			117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 186, 209, 182, 72, 65, 0, 191, 145, 236, 45, 182, 1, 250, 0, 0,
+			1, 0, 125, 0, 240, 1, 78, 5, 39, 9, 200, 12, 145, 14, 66, 27, 40, 32, 21, 51, 55, 31, 32, 27, 13, 7, 169, 146, 130, 120,
+			120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 23, 8, 28, 0, 0, 0, 0, 0, 0, 0,
+			0, 250, 0, 0, 1, 0, 122, 0, 8, 2, 102, 5, 38, 9, 196, 12, 136, 14, 75, 27, 0, 31, 22, 50, 55, 31, 32, 26, 13, 7,
+			168, 147, 131, 120, 120, 120, 177, 125, 117, 44, 45, 70, 130, 59, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 191,
+			76, 8, 87, 182, 0, 250, 0, 0, 51, 1, 61, 0, 0, 0, 3, 3, 34, 126, 63, 228, 224, 253, 19, 246, 245, 31, 94, 39, 4, 4,
+			31, 47, 12, 255, 17, 4, 41, 10, 7, 12, 9, 8, 13, 12, 5, 243, 226, 244, 244, 251, 240, 226, 238, 62, 71, 228, 217, 12, 18, 14,
+			249, 10, 3, 233, 224, 4, 36, 44, 25, 254, 4, 35, 16, 240, 229, 2, 18, 12, 5, 11, 0, 245, 243, 249, 16, 11, 253, 241, 231, 251,
+			4, 238, 233, 250, 8, 11, 3, 252, 0, 250, 243, 254, 5, 37, 34, 8, 239, 251, 34, 27, 27, 11, 16, 40, 29, 12, 11, 7, 7, 239,
+			247, 6, 23, 9, 245, 233, 8, 7, 6, 247, 234, 6, 236, 209, 242, 5, 246, 224, 219, 0, 30, 9, 224, 212, 223, 249, 246, 235, 227, 234,
+			10, 15, 237, 7, 242, 22, 6, 217, 215, 0, 48, 10, 217, 227, 12, 32, 7, 235, 2, 9, 231, 226, 241, 248, 28, 221, 213, 247, 17, 5,
+			248, 246, 244, 214, 224, 245, 234, 241, 2, 19, 221, 246, 6, 247, 236, 228, 23, 0, 240, 234, 11, 5, 253, 1, 10, 3, 32, 19, 241, 254,
+			15, 249, 240, 14, 35, 8, 238, 20, 47, 17, 252, 246, 241, 0, 13, 33, 1, 9, 5, 9, 0, 6, 20, 0, 249, 244, 3, 250, 0, 39,
+			11, 220, 241, 39, 38, 14, 227, 236, 255, 255, 252, 250, 251, 4, 250, 246, 254, 254, 245, 231, 234, 248, 248, 243, 243, 244, 246, 245, 240, 236,
+			238, 239, 239, 240, 239, 242, 244, 238, 233, 239, 242, 243, 242, 235, 234, 238, 236, 240, 240, 246, 0, 5, 6, 9, 5, 241, 242, 245, 251, 10,
+			2, 19, 23, 19, 23, 15, 15, 2, 0, 253, 5, 13, 19, 19, 6, 8, 4, 247, 246, 0, 0};
+		autoFileInMemory espeakdata_phons2 = FileInMemory_createWithData (385580, reinterpret_cast<const char *> (&espeakdata_phons2_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/phondata", 
 			U"phondata");
-		my addItem_move (espeakdata_phons2.move());
+		Collection_addItem (me.peek(), espeakdata_phons2.transfer());
 
-		static unsigned char espeakdata_phons3_data[25029] = {
-			1, 72, 1, 0, 0, 161, 213, 131, 0, 0, 0, 0, 0, 162, 18, 130, 0, 0, 0, 0, 0, 192, 2, 0, 0, 176, 86, 0, 2, 13,
-			153, 201, 16, 52, 34, 36, 1, 13, 0, 32, 25, 10, 0, 176, 135, 0, 0, 176, 184, 0, 0, 176, 249, 0, 38, 5, 0, 176, 58, 1,
-			0, 176, 123, 1, 0, 176, 188, 1, 3, 13, 204, 109, 0, 169, 134, 40, 95, 10, 2, 47, 0, 176, 253, 1, 0, 176, 94, 2, 3, 13,
-			204, 110, 0, 169, 134, 40, 95, 10, 2, 47, 0, 176, 191, 2, 0, 176, 16, 3, 4, 13, 139, 197, 169, 204, 0, 176, 97, 3, 192, 195,
-			178, 3, 3, 13, 204, 114, 0, 169, 0, 176, 53, 4, 3, 13, 204, 108, 0, 169, 0, 176, 134, 4, 2, 13, 185, 201, 138, 41, 46, 1,
-			6, 106, 16, 223, 199, 4, 16, 223, 248, 4, 16, 223, 41, 5, 16, 223, 90, 5, 16, 223, 139, 5, 16, 223, 188, 5, 2, 39, 224, 236,
-			237, 5, 0, 39, 0, 176, 14, 6, 47, 48, 48, 48, 49, 32, 0, 176, 63, 6, 0, 176, 96, 6, 50, 34, 5, 104, 0, 176, 145, 6,
-			0, 240, 178, 6, 47, 48, 48, 48, 49, 32, 0, 176, 136, 11, 138, 39, 0, 176, 185, 11, 0, 176, 234, 11, 0, 240, 178, 6, 1, 13,
-			0, 114, 52, 36, 1, 13, 0, 32, 0, 161, 25, 3, 75, 1, 96, 170, 0, 162, 18, 34, 75, 9, 96, 170, 0, 176, 11, 12, 16, 244,
-			60, 12, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 255, 13, 32, 243, 64, 14,
-			1, 13, 0, 114, 0, 161, 25, 3, 64, 9, 118, 90, 0, 162, 18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 199, 4, 16, 223, 248, 4,
-			16, 223, 41, 5, 16, 223, 90, 5, 16, 223, 139, 5, 16, 223, 188, 5, 2, 39, 224, 236, 237, 5, 0, 176, 255, 13, 0, 240, 219, 16,
-			2, 13, 128, 202, 138, 41, 5, 104, 0, 176, 236, 17, 32, 243, 45, 18, 0, 176, 236, 17, 176, 244, 45, 18, 6, 106, 0, 208, 239, 21,
-			0, 208, 32, 22, 0, 208, 65, 22, 96, 223, 98, 22, 0, 208, 147, 22, 0, 208, 212, 22, 1, 0, 138, 41, 56, 1, 138, 41, 17, 104,
-			6, 108, 64, 236, 5, 23, 128, 237, 70, 23, 32, 238, 135, 23, 32, 238, 184, 23, 128, 237, 249, 23, 128, 237, 74, 24, 0, 176, 139, 24,
-			1, 0, 0, 145, 192, 0, 28, 32, 224, 236, 172, 24, 4, 96, 2, 39, 128, 237, 172, 24, 0, 39, 0, 176, 205, 24, 47, 32, 0, 176,
-			254, 24, 56, 32, 0, 176, 31, 25, 0, 176, 64, 25, 2, 41, 55, 1, 6, 108, 64, 236, 5, 23, 128, 237, 70, 23, 32, 238, 135, 23,
-			32, 238, 184, 23, 128, 237, 249, 23, 128, 237, 74, 24, 57, 37, 0, 176, 135, 23, 58, 37, 0, 176, 135, 23, 0, 176, 139, 24, 2, 41,
-			55, 1, 0, 145, 192, 0, 57, 37, 0, 176, 97, 25, 58, 37, 0, 176, 146, 25, 6, 108, 64, 236, 211, 25, 224, 236, 20, 26, 128, 237,
-			97, 25, 32, 238, 85, 26, 224, 236, 150, 26, 128, 237, 146, 25, 1, 0, 2, 41, 55, 1, 6, 108, 0, 224, 231, 26, 0, 224, 8, 27,
-			0, 224, 41, 27, 0, 224, 74, 27, 0, 224, 123, 27, 192, 238, 172, 27, 0, 176, 139, 24, 2, 13, 142, 202, 1, 162, 30, 82, 0, 0,
-			0, 0, 6, 106, 0, 208, 205, 27, 0, 208, 254, 27, 0, 208, 47, 28, 0, 208, 96, 28, 0, 208, 145, 28, 0, 208, 210, 28, 0, 39,
-			0, 176, 19, 29, 0, 176, 84, 29, 2, 13, 173, 201, 0, 176, 149, 29, 138, 41, 63, 1, 128, 237, 198, 29, 0, 39, 0, 176, 247, 29,
-			0, 176, 56, 30, 2, 41, 23, 104, 6, 106, 0, 208, 105, 30, 0, 208, 154, 30, 0, 208, 203, 30, 0, 208, 252, 30, 0, 208, 45, 31,
-			0, 208, 94, 31, 32, 238, 143, 31, 8, 44, 3, 104, 0, 176, 176, 31, 0, 176, 209, 31, 11, 96, 0, 162, 25, 18, 0, 0, 0, 0,
-			31, 32, 3, 104, 0, 176, 2, 32, 0, 176, 67, 32, 1, 0, 2, 43, 21, 104, 6, 106, 0, 208, 116, 32, 0, 208, 181, 32, 0, 208,
-			246, 32, 0, 208, 55, 33, 0, 208, 104, 33, 0, 208, 185, 33, 32, 238, 234, 33, 0, 39, 3, 104, 0, 176, 11, 34, 7, 96, 0, 162,
-			35, 18, 0, 0, 0, 0, 0, 176, 44, 34, 1, 0, 31, 32, 1, 13, 0, 32, 138, 41, 1, 1, 6, 106, 0, 208, 93, 34, 0, 208,
-			142, 34, 0, 208, 191, 34, 0, 208, 240, 34, 0, 208, 33, 35, 0, 208, 98, 35, 31, 32, 128, 237, 147, 35, 0, 39, 0, 176, 180, 35,
-			1, 0, 0, 162, 18, 34, 75, 9, 84, 65, 2, 47, 11, 104, 0, 161, 25, 3, 75, 1, 212, 114, 133, 41, 3, 104, 0, 176, 213, 35,
-			0, 176, 22, 36, 6, 106, 0, 208, 87, 36, 0, 208, 152, 36, 0, 208, 217, 36, 0, 208, 26, 37, 0, 208, 107, 37, 0, 208, 172, 37,
-			138, 39, 3, 43, 0, 176, 237, 37, 0, 39, 0, 176, 30, 38, 138, 41, 0, 176, 63, 38, 1, 0, 0, 162, 146, 50, 77, 9, 94, 162,
-			2, 47, 7, 104, 0, 161, 25, 3, 79, 1, 222, 154, 0, 176, 112, 38, 6, 106, 0, 208, 177, 38, 0, 208, 242, 38, 0, 208, 51, 39,
-			0, 208, 116, 39, 0, 208, 181, 39, 0, 208, 246, 39, 138, 39, 3, 43, 0, 176, 55, 40, 0, 55, 50, 32, 0, 176, 104, 40, 138, 41,
-			0, 176, 137, 40, 1, 0, 2, 13, 179, 201, 0, 161, 153, 18, 69, 73, 98, 170, 0, 162, 146, 50, 69, 73, 98, 170, 2, 47, 0, 176,
-			186, 40, 6, 106, 0, 208, 251, 40, 0, 208, 60, 41, 0, 208, 125, 41, 0, 208, 190, 41, 0, 208, 255, 41, 0, 208, 64, 42, 138, 39,
-			3, 43, 0, 176, 55, 40, 0, 55, 66, 32, 0, 176, 129, 42, 138, 41, 0, 176, 162, 42, 1, 0, 2, 13, 178, 201, 0, 162, 23, 114,
-			81, 13, 114, 205, 2, 47, 5, 104, 0, 208, 211, 42, 0, 176, 244, 42, 6, 106, 0, 208, 53, 43, 0, 208, 150, 43, 0, 208, 231, 43,
-			0, 208, 72, 44, 0, 208, 169, 44, 0, 208, 26, 45, 0, 39, 0, 176, 123, 45, 138, 41, 10, 104, 67, 36, 3, 104, 37, 10, 4, 96,
-			67, 37, 2, 104, 50, 10, 0, 176, 156, 45, 1, 0, 0, 162, 148, 50, 75, 13, 110, 189, 2, 47, 11, 104, 0, 161, 25, 3, 79, 1,
-			42, 172, 133, 41, 3, 104, 0, 176, 237, 45, 0, 176, 46, 46, 6, 106, 0, 208, 111, 46, 0, 208, 160, 46, 0, 208, 209, 46, 0, 208,
-			2, 47, 0, 208, 51, 47, 0, 208, 100, 47, 31, 32, 128, 237, 149, 47, 138, 39, 3, 43, 0, 176, 198, 47, 0, 39, 0, 176, 231, 47,
-			138, 41, 0, 176, 8, 48, 1, 0, 2, 13, 190, 201, 0, 162, 136, 20, 73, 13, 96, 170, 0, 161, 10, 19, 77, 9, 96, 170, 31, 48,
-			30, 32, 0, 176, 57, 48, 0, 176, 138, 48, 2, 13, 190, 201, 14, 37, 1, 13, 0, 114, 30, 50, 31, 34, 13, 104, 0, 161, 25, 3,
-			75, 1, 94, 170, 0, 176, 219, 48, 96, 249, 178, 6, 0, 176, 219, 48, 96, 249, 178, 6, 0, 161, 25, 3, 75, 9, 94, 170, 29, 34,
-			5, 104, 0, 176, 12, 49, 128, 252, 178, 6, 34, 34, 0, 176, 77, 49, 0, 162, 153, 20, 75, 13, 222, 169, 0, 161, 25, 3, 75, 1,
-			94, 170, 0, 176, 12, 49, 128, 252, 178, 6, 0, 162, 136, 20, 71, 77, 220, 169, 0, 161, 10, 19, 71, 9, 220, 169, 138, 41, 0, 176,
-			110, 49, 0, 176, 191, 49, 0, 162, 18, 34, 73, 9, 84, 73, 1, 47, 0, 176, 16, 50, 2, 47, 15, 104, 0, 161, 213, 3, 73, 5,
-			84, 73, 133, 41, 5, 104, 0, 176, 65, 50, 0, 240, 114, 50, 0, 176, 65, 50, 0, 240, 120, 51, 133, 41, 5, 104, 0, 176, 209, 51,
-			0, 240, 114, 50, 14, 34, 5, 104, 0, 176, 2, 52, 0, 240, 120, 51, 28, 34, 5, 104, 0, 176, 67, 52, 0, 240, 120, 51, 29, 34,
-			5, 104, 0, 176, 132, 52, 0, 240, 120, 51, 30, 34, 5, 104, 0, 176, 197, 52, 0, 240, 120, 51, 31, 34, 5, 104, 0, 176, 6, 53,
-			0, 240, 120, 51, 32, 34, 5, 104, 0, 176, 71, 53, 0, 240, 120, 51, 33, 34, 5, 104, 0, 176, 136, 53, 0, 240, 120, 51, 0, 176,
-			201, 53, 0, 240, 120, 51, 0, 161, 213, 3, 77, 5, 98, 170, 0, 162, 18, 34, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41,
-			5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 0, 176, 118, 55, 0, 240, 167, 55, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2,
-			76, 9, 94, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49,
-			64, 246, 46, 56, 0, 176, 118, 55, 64, 246, 46, 56, 0, 161, 213, 3, 81, 9, 238, 188, 0, 162, 18, 34, 81, 9, 46, 173, 1, 47,
-			0, 176, 231, 56, 133, 41, 5, 104, 0, 176, 24, 57, 0, 240, 73, 57, 0, 176, 215, 59, 0, 240, 8, 60, 3, 13, 202, 100, 0, 145,
-			0, 161, 227, 83, 85, 9, 246, 221, 0, 162, 18, 2, 85, 9, 246, 221, 1, 47, 0, 176, 231, 56, 2, 47, 11, 104, 133, 41, 5, 104,
-			0, 176, 24, 57, 0, 240, 73, 57, 0, 176, 215, 59, 0, 240, 11, 61, 133, 41, 5, 104, 0, 176, 24, 57, 0, 240, 73, 57, 0, 176,
-			215, 59, 0, 240, 11, 61, 0, 161, 227, 83, 85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 1, 47, 0, 176, 35, 62, 2, 47,
-			11, 104, 133, 41, 5, 104, 0, 176, 84, 62, 48, 242, 8, 60, 0, 176, 133, 62, 208, 242, 8, 60, 133, 41, 5, 104, 0, 176, 182, 62,
-			48, 242, 8, 60, 0, 176, 231, 62, 208, 242, 8, 60, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 1, 47,
-			0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240, 122, 63, 0, 176, 106, 64, 96, 249, 155, 64, 0, 161, 25, 3, 173, 9,
-			84, 90, 0, 162, 25, 18, 13, 9, 84, 73, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 61, 65, 0, 240, 110, 65, 0, 176, 174, 67,
-			0, 240, 110, 65, 133, 41, 5, 104, 0, 176, 223, 67, 0, 240, 110, 65, 0, 176, 16, 68, 0, 240, 110, 65, 0, 161, 25, 3, 169, 1,
-			84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 2, 47, 15, 104, 0, 162, 25, 50, 9, 5, 84, 73, 133, 41, 5, 104, 0, 176, 61, 65,
-			0, 240, 110, 65, 0, 176, 65, 68, 96, 249, 110, 65, 133, 41, 5, 104, 0, 176, 223, 67, 0, 240, 110, 65, 134, 40, 3, 43, 35, 10,
-			0, 176, 114, 68, 0, 240, 110, 65, 2, 13, 139, 202, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41,
-			0, 176, 179, 68, 0, 176, 228, 68, 0, 162, 25, 18, 13, 1, 98, 170, 2, 47, 0, 161, 25, 3, 15, 0, 90, 170, 133, 41, 5, 104,
-			0, 176, 37, 69, 0, 240, 86, 69, 0, 176, 152, 71, 0, 240, 86, 69, 0, 162, 25, 18, 13, 1, 98, 170, 2, 47, 9, 104, 0, 161,
-			25, 3, 15, 0, 92, 170, 0, 162, 25, 50, 13, 5, 92, 170, 133, 41, 5, 104, 0, 176, 201, 71, 96, 244, 250, 71, 0, 176, 167, 74,
-			80, 245, 250, 71, 0, 161, 25, 3, 75, 1, 232, 171, 0, 162, 18, 34, 75, 9, 232, 171, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176,
-			216, 74, 0, 240, 9, 75, 0, 176, 99, 77, 32, 248, 9, 75, 133, 41, 5, 104, 0, 176, 148, 77, 0, 240, 9, 75, 0, 176, 197, 77,
-			32, 248, 9, 75, 2, 13, 144, 202, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 34, 73, 9, 100, 171, 2, 47, 11, 104, 133, 41,
-			5, 104, 0, 176, 216, 74, 0, 240, 246, 77, 0, 176, 99, 77, 0, 240, 246, 77, 133, 41, 5, 104, 0, 176, 148, 77, 0, 240, 246, 77,
-			0, 176, 197, 77, 0, 240, 246, 77, 2, 13, 145, 202, 0, 161, 35, 83, 85, 9, 246, 221, 0, 162, 18, 34, 73, 9, 46, 173, 133, 41,
-			5, 104, 0, 176, 26, 80, 0, 245, 75, 80, 0, 176, 12, 83, 0, 245, 61, 83, 2, 13, 145, 202, 0, 161, 35, 83, 85, 9, 246, 221,
-			0, 162, 18, 34, 73, 9, 46, 173, 133, 41, 5, 104, 0, 176, 26, 80, 0, 240, 139, 85, 0, 176, 12, 83, 0, 245, 61, 88, 2, 13,
-			157, 202, 0, 161, 25, 3, 51, 5, 246, 221, 0, 162, 50, 18, 51, 5, 246, 221, 0, 176, 138, 90, 144, 241, 203, 90, 0, 161, 25, 3,
-			77, 9, 238, 188, 0, 162, 18, 34, 73, 9, 46, 173, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 145, 92, 0, 240, 194, 92, 0, 176,
-			197, 94, 0, 240, 246, 94, 133, 41, 5, 104, 0, 176, 249, 96, 0, 240, 194, 92, 0, 176, 42, 97, 0, 240, 246, 94, 0, 161, 25, 3,
-			83, 9, 246, 221, 0, 162, 18, 34, 83, 9, 54, 220, 133, 41, 5, 104, 0, 176, 249, 96, 0, 240, 194, 92, 0, 176, 42, 97, 0, 240,
-			246, 94, 2, 13, 129, 202, 133, 41, 5, 104, 0, 176, 91, 97, 192, 243, 156, 97, 0, 176, 91, 97, 0, 245, 156, 97, 0, 161, 213, 26,
-			75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 133, 41, 0, 192, 91, 100, 34, 34, 96, 196, 95, 102, 51, 50, 52, 34, 0, 192,
-			95, 102, 14, 34, 0, 192, 113, 103, 55, 34, 0, 192, 60, 104, 0, 192, 58, 105, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18,
-			77, 1, 98, 162, 133, 41, 0, 192, 22, 106, 34, 50, 51, 50, 52, 34, 0, 192, 70, 107, 14, 34, 32, 195, 30, 109, 160, 197, 34, 110,
-			0, 161, 21, 28, 77, 5, 158, 162, 0, 162, 146, 18, 77, 1, 94, 162, 133, 41, 48, 194, 30, 109, 96, 196, 47, 111, 0, 161, 213, 3,
-			77, 1, 238, 188, 133, 41, 0, 192, 226, 111, 0, 192, 50, 114, 3, 13, 201, 116, 0, 149, 0, 161, 227, 83, 85, 1, 246, 221, 133, 41,
-			0, 192, 194, 115, 0, 192, 194, 115, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 131, 117,
-			96, 201, 150, 118, 0, 161, 213, 3, 75, 1, 238, 172, 0, 162, 146, 18, 75, 1, 110, 189, 2, 47, 0, 162, 146, 18, 75, 1, 238, 172,
-			133, 41, 0, 192, 66, 119, 34, 50, 51, 50, 52, 34, 0, 192, 113, 120, 31, 50, 38, 34, 0, 192, 1, 122, 55, 34, 0, 192, 115, 123,
-			14, 34, 96, 196, 255, 124, 0, 192, 52, 126, 6, 161, 213, 19, 73, 5, 226, 155, 2, 162, 146, 20, 73, 5, 98, 155, 133, 41, 128, 194,
-			105, 127, 33, 34, 0, 197, 196, 127, 0, 195, 105, 127, 0, 162, 18, 2, 75, 1, 84, 65, 0, 41, 0, 192, 12, 128, 0, 192, 192, 130,
-			0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 0, 192, 188, 132, 0, 192, 220, 134, 0, 161, 25, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 0, 192, 250, 71, 48, 50, 47, 50, 49, 34, 0, 192, 2, 137, 0, 192,
-			46, 139, 0, 161, 25, 3, 77, 1, 106, 172, 0, 162, 18, 2, 77, 1, 106, 172, 0, 41, 0, 192, 22, 141, 0, 192, 194, 143, 2, 13,
-			130, 202, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 0, 41, 192, 195, 46, 146, 160, 197, 46, 146, 2, 13,
-			130, 202, 0, 161, 35, 83, 51, 5, 246, 221, 0, 162, 35, 82, 51, 5, 246, 221, 0, 41, 0, 192, 75, 80, 0, 192, 61, 83, 2, 13,
-			149, 201, 0, 161, 35, 83, 51, 5, 246, 221, 0, 162, 18, 66, 51, 5, 246, 221, 0, 41, 0, 192, 139, 85, 0, 192, 61, 88, 2, 13,
-			172, 201, 6, 106, 0, 208, 239, 21, 0, 208, 32, 22, 0, 208, 65, 22, 96, 223, 98, 22, 0, 208, 147, 22, 0, 208, 212, 22, 2, 39,
-			128, 237, 172, 24, 192, 195, 149, 148, 0, 161, 25, 3, 51, 1, 246, 221, 0, 162, 146, 18, 51, 1, 246, 221, 0, 41, 0, 192, 38, 151,
-			0, 192, 203, 90, 0, 161, 25, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 0, 41, 192, 195, 112, 153, 64, 193, 71, 156,
-			0, 41, 96, 196, 156, 97, 0, 197, 156, 97, 1, 13, 0, 104, 28, 34, 0, 192, 140, 158, 29, 34, 0, 192, 225, 159, 30, 34, 0, 192,
-			128, 161, 31, 34, 0, 192, 37, 163, 32, 34, 0, 192, 139, 164, 33, 34, 0, 192, 58, 166, 96, 196, 3, 168, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 174, 169, 0, 192, 6, 172, 0, 161, 217, 19, 77, 5, 98, 170, 0, 162,
-			18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 201, 71, 192, 243, 174, 169, 0, 176, 157, 174, 192, 248,
-			6, 172, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 55, 34, 0, 192, 60, 104, 87, 41, 0, 192, 95, 102,
-			133, 41, 0, 197, 206, 174, 0, 192, 113, 103, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 133, 41, 0, 192,
-			91, 100, 55, 34, 0, 192, 60, 104, 0, 192, 29, 175, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41,
-			0, 192, 22, 106, 0, 192, 94, 176, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 18, 2, 85, 33, 246, 221, 133, 41, 0, 192, 239, 176,
-			160, 197, 32, 178, 0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195, 255, 124, 192, 195, 255, 124,
-			0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195, 237, 178, 55, 34, 0, 192, 115, 123, 160, 197,
-			237, 178, 0, 161, 213, 3, 76, 5, 92, 139, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 128, 194, 237, 178, 30, 52, 31, 36, 128, 194,
-			174, 180, 32, 52, 33, 36, 144, 193, 136, 182, 224, 193, 136, 182, 1, 0, 0, 161, 25, 3, 77, 1, 98, 170, 133, 41, 0, 192, 250, 71,
-			0, 192, 169, 184, 128, 40, 4, 104, 108, 1, 0, 176, 149, 186, 0, 176, 214, 186, 0, 176, 149, 186, 0, 176, 249, 0, 0, 176, 23, 187,
-			38, 5, 0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 185, 187, 0, 176, 250, 187, 0, 176, 59, 188, 0, 176, 124, 188, 0, 176, 205, 188,
-			0, 176, 14, 189, 0, 176, 111, 189, 0, 176, 192, 189, 0, 176, 33, 190, 0, 176, 114, 190, 0, 176, 195, 190, 0, 176, 36, 191, 0, 176,
-			149, 191, 0, 145, 91, 1, 2, 41, 0, 176, 230, 191, 1, 0, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65,
-			133, 41, 0, 197, 206, 174, 87, 41, 0, 192, 95, 102, 55, 34, 0, 192, 60, 104, 0, 192, 113, 103, 0, 161, 213, 3, 77, 1, 96, 170,
-			0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 224, 193, 30, 109, 192, 195, 23, 192, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2,
-			76, 9, 94, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 87, 41, 5, 104, 0, 176, 77, 49,
-			224, 246, 46, 56, 0, 176, 118, 55, 224, 246, 46, 56, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 133, 41,
-			0, 192, 66, 119, 87, 41, 0, 192, 113, 120, 31, 50, 38, 34, 0, 192, 1, 122, 55, 34, 0, 192, 115, 123, 96, 196, 255, 124, 47, 1,
-			1, 0, 2, 13, 190, 201, 0, 161, 213, 3, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 2, 47, 9, 104, 1, 47, 3, 104,
-			0, 176, 173, 192, 0, 176, 222, 192, 96, 244, 167, 55, 1, 47, 0, 176, 15, 193, 0, 176, 64, 193, 32, 243, 167, 55, 140, 39, 72, 1,
-			2, 96, 47, 1, 1, 0, 140, 39, 88, 1, 2, 96, 89, 1, 1, 0, 2, 43, 3, 0, 8, 104, 2, 55, 57, 48, 58, 32, 3, 104,
-			59, 1, 2, 96, 56, 1, 0, 145, 206, 0, 1, 0, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 1, 47,
-			0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240, 113, 193, 0, 176, 106, 64, 0, 240, 113, 193, 2, 13, 185, 201, 6, 106,
-			0, 208, 97, 194, 0, 208, 146, 194, 0, 208, 195, 194, 0, 208, 4, 195, 0, 208, 53, 195, 0, 208, 102, 195, 2, 39, 64, 236, 237, 5,
-			0, 176, 96, 6, 69, 39, 113, 3, 140, 39, 3, 0, 89, 1, 88, 1, 1, 0, 44, 5, 136, 40, 0, 176, 151, 195, 0, 176, 86, 0,
-			0, 145, 152, 7, 2, 13, 153, 201, 1, 0, 2, 41, 113, 1, 13, 1, 1, 0, 2, 57, 0, 41, 117, 1, 13, 1, 1, 0, 4, 13,
-			201, 1, 108, 153, 0, 145, 192, 0, 0, 176, 216, 195, 119, 16, 129, 40, 0, 176, 9, 196, 0, 176, 184, 0, 2, 13, 144, 201, 0, 176,
-			74, 196, 1, 13, 0, 97, 3, 47, 121, 1, 44, 5, 0, 176, 184, 0, 113, 16, 0, 176, 139, 196, 129, 40, 2, 45, 7, 0, 131, 45,
-			7, 0, 13, 1, 122, 1, 1, 0, 38, 5, 0, 176, 204, 196, 3, 47, 124, 1, 38, 5, 0, 176, 13, 197, 3, 47, 124, 1, 38, 5,
-			113, 1, 1, 0, 1, 13, 0, 105, 38, 5, 0, 176, 78, 197, 13, 16, 0, 176, 143, 197, 129, 40, 2, 45, 7, 0, 129, 45, 7, 0,
-			3, 0, 13, 1, 126, 1, 1, 0, 126, 1, 1, 0, 13, 16, 0, 176, 208, 197, 0, 176, 17, 198, 44, 5, 0, 176, 82, 198, 4, 13,
-			145, 201, 144, 203, 44, 5, 0, 176, 82, 198, 44, 5, 13, 16, 0, 176, 179, 198, 38, 5, 58, 32, 0, 208, 4, 199, 0, 176, 69, 199,
-			13, 16, 0, 176, 150, 199, 13, 16, 0, 176, 150, 199, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 150, 199, 4, 13, 148, 201, 144, 203,
-			3, 47, 135, 1, 44, 5, 0, 176, 150, 199, 59, 34, 0, 176, 231, 199, 57, 37, 90, 10, 0, 176, 56, 200, 0, 176, 137, 200, 4, 13,
-			153, 201, 138, 202, 0, 176, 234, 200, 29, 34, 38, 4, 0, 176, 75, 201, 0, 176, 195, 190, 0, 176, 188, 201, 44, 5, 0, 176, 23, 187,
-			44, 5, 0, 176, 45, 202, 3, 47, 144, 1, 44, 5, 0, 176, 45, 202, 44, 5, 129, 40, 0, 176, 142, 202, 0, 176, 223, 202, 44, 5,
-			0, 176, 64, 203, 147, 1, 1, 0, 44, 5, 0, 176, 177, 203, 4, 13, 153, 201, 185, 201, 44, 36, 2, 13, 153, 201, 44, 5, 0, 176,
-			18, 204, 4, 13, 140, 202, 185, 201, 44, 36, 2, 13, 140, 202, 44, 5, 0, 176, 99, 204, 0, 176, 104, 187, 0, 176, 180, 204, 0, 176,
-			5, 205, 0, 176, 249, 0, 0, 176, 86, 205, 111, 5, 0, 145, 79, 2, 1, 0, 2, 13, 153, 201, 44, 5, 0, 176, 135, 205, 119, 16,
-			0, 176, 184, 0, 113, 16, 0, 176, 184, 205, 38, 5, 0, 176, 249, 205, 38, 5, 0, 176, 249, 205, 0, 176, 58, 206, 13, 16, 0, 176,
-			123, 206, 2, 13, 138, 202, 13, 16, 0, 176, 188, 206, 0, 176, 17, 198, 2, 13, 144, 201, 44, 5, 0, 176, 74, 196, 44, 5, 0, 176,
-			253, 206, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 253, 206, 1, 13, 0, 97, 0, 176, 184, 0, 44, 5, 13, 16, 0, 176, 78, 207,
-			38, 5, 58, 32, 0, 208, 4, 199, 0, 176, 58, 1, 44, 5, 13, 16, 0, 176, 159, 207, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176,
-			240, 207, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 240, 207, 13, 16, 0, 176, 150, 199, 0, 176, 49, 208, 4, 13, 166, 195, 138, 202,
-			0, 176, 130, 208, 3, 13, 203, 111, 0, 144, 0, 176, 104, 187, 0, 176, 211, 208, 3, 13, 203, 101, 0, 144, 0, 176, 249, 0, 0, 176,
-			188, 201, 44, 5, 0, 176, 52, 209, 44, 5, 0, 176, 133, 209, 44, 5, 0, 176, 223, 202, 44, 5, 0, 176, 64, 203, 147, 1, 1, 0,
-			44, 5, 0, 176, 177, 203, 2, 13, 154, 201, 44, 5, 0, 176, 246, 209, 87, 41, 114, 1, 136, 40, 0, 176, 151, 195, 0, 176, 55, 210,
-			2, 41, 113, 1, 0, 176, 104, 210, 2, 13, 166, 195, 119, 16, 8, 41, 0, 176, 153, 210, 0, 176, 234, 210, 2, 13, 144, 201, 0, 176,
-			74, 196, 113, 16, 0, 176, 43, 211, 38, 5, 113, 16, 0, 176, 13, 197, 38, 5, 0, 176, 108, 211, 3, 13, 181, 225, 0, 187, 0, 176,
-			173, 211, 38, 5, 0, 176, 238, 211, 4, 13, 145, 201, 144, 203, 13, 16, 34, 34, 133, 1, 0, 176, 47, 212, 129, 1, 1, 0, 13, 16,
-			0, 176, 112, 212, 0, 176, 177, 212, 34, 36, 0, 176, 242, 212, 0, 176, 47, 212, 7, 13, 201, 2, 203, 145, 201, 144, 0, 185, 44, 34,
-			4, 13, 145, 201, 144, 203, 130, 10, 44, 5, 0, 176, 242, 212, 44, 5, 114, 16, 0, 176, 83, 213, 38, 5, 0, 176, 69, 199, 13, 16,
-			34, 36, 0, 176, 164, 213, 0, 176, 5, 214, 7, 13, 201, 2, 203, 148, 201, 144, 0, 185, 34, 36, 4, 13, 148, 201, 144, 203, 34, 5,
-			0, 176, 164, 213, 6, 13, 111, 2, 144, 203, 185, 201, 34, 36, 3, 13, 203, 111, 0, 144, 34, 5, 0, 176, 70, 214, 13, 16, 0, 176,
-			151, 214, 0, 176, 216, 214, 0, 176, 41, 215, 0, 176, 122, 215, 29, 50, 32, 34, 38, 4, 0, 176, 203, 215, 0, 176, 44, 216, 0, 176,
-			125, 216, 5, 13, 201, 1, 201, 155, 0, 185, 34, 36, 2, 13, 155, 201, 34, 5, 0, 176, 222, 216, 0, 176, 45, 202, 5, 13, 201, 1,
-			201, 170, 0, 185, 34, 36, 2, 13, 170, 201, 34, 5, 0, 176, 63, 217, 5, 13, 202, 1, 201, 138, 0, 185, 44, 36, 2, 13, 138, 202,
-			44, 5, 0, 176, 160, 217, 5, 13, 201, 97, 201, 170, 0, 153, 44, 5, 0, 176, 241, 217, 5, 13, 201, 97, 201, 170, 0, 154, 44, 5,
-			0, 176, 82, 218, 7, 13, 201, 97, 202, 170, 201, 138, 0, 185, 34, 36, 5, 13, 201, 97, 202, 170, 0, 138, 34, 5, 0, 176, 195, 218,
-			0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 2, 43, 129, 41, 14, 104, 50, 54, 6, 0, 3, 0, 131, 36,
-			9, 104, 2, 44, 3, 104, 25, 1, 5, 96, 50, 37, 3, 104, 192, 195, 34, 110, 133, 41, 0, 192, 22, 106, 34, 50, 51, 50, 52, 34,
-			0, 192, 70, 107, 14, 34, 32, 195, 30, 109, 160, 197, 34, 110, 0, 161, 213, 131, 0, 0, 0, 0, 0, 162, 18, 130, 0, 0, 0, 0,
-			0, 192, 2, 0, 44, 5, 0, 176, 86, 205, 2, 41, 13, 1, 44, 5, 0, 41, 0, 176, 99, 204, 0, 176, 52, 219, 2, 41, 113, 1,
-			13, 1, 1, 0, 2, 57, 0, 41, 117, 1, 13, 1, 1, 0, 119, 16, 157, 18, 0, 176, 117, 219, 119, 16, 0, 176, 117, 219, 2, 13,
-			144, 201, 44, 5, 0, 176, 149, 186, 2, 13, 58, 97, 44, 5, 0, 176, 117, 219, 113, 16, 0, 176, 182, 219, 59, 34, 5, 104, 32, 238,
-			211, 25, 0, 176, 86, 205, 0, 176, 247, 219, 0, 145, 243, 9, 1, 0, 113, 1, 1, 0, 1, 13, 0, 101, 38, 5, 0, 176, 56, 220,
-			13, 16, 0, 176, 121, 220, 129, 1, 1, 0, 13, 16, 0, 176, 186, 220, 2, 13, 137, 202, 0, 176, 251, 220, 2, 13, 58, 97, 44, 5,
-			34, 34, 4, 104, 125, 10, 0, 176, 60, 221, 0, 176, 117, 219, 3, 13, 203, 97, 0, 144, 34, 36, 3, 0, 34, 4, 0, 176, 60, 221,
-			151, 18, 1, 13, 0, 101, 0, 176, 173, 221, 38, 5, 58, 32, 0, 208, 4, 199, 7, 57, 0, 41, 90, 10, 0, 176, 14, 222, 13, 16,
-			34, 34, 0, 176, 70, 214, 0, 176, 123, 1, 2, 13, 148, 201, 34, 36, 3, 0, 34, 4, 0, 176, 79, 222, 1, 13, 0, 111, 34, 36,
-			3, 0, 34, 4, 0, 176, 79, 222, 13, 16, 0, 176, 5, 214, 4, 13, 137, 202, 144, 203, 7, 41, 100, 10, 0, 41, 4, 104, 100, 10,
-			0, 176, 251, 220, 0, 176, 144, 222, 4, 13, 140, 202, 137, 202, 0, 176, 209, 222, 3, 13, 203, 111, 0, 144, 0, 176, 34, 223, 2, 57,
-			7, 41, 158, 1, 59, 34, 0, 176, 115, 223, 0, 176, 212, 223, 0, 176, 212, 223, 3, 13, 203, 101, 0, 144, 0, 176, 58, 206, 0, 176,
-			53, 224, 1, 13, 0, 101, 34, 36, 3, 0, 34, 4, 0, 176, 150, 224, 2, 13, 170, 201, 34, 36, 3, 0, 34, 4, 0, 176, 231, 224,
-			4, 13, 137, 202, 185, 201, 44, 34, 2, 13, 137, 202, 120, 10, 44, 5, 0, 176, 56, 225, 44, 5, 0, 176, 177, 203, 44, 5, 0, 176,
-			115, 223, 147, 1, 1, 0, 3, 13, 153, 201, 0, 108, 0, 145, 192, 0, 0, 176, 137, 225, 0, 176, 0, 0, 138, 41, 46, 1, 0, 145,
-			71, 0, 1, 13, 0, 114, 1, 0, 44, 5, 136, 40, 0, 176, 202, 225, 0, 176, 86, 0, 0, 145, 159, 10, 2, 13, 153, 201, 1, 0,
-			2, 41, 113, 1, 0, 176, 202, 225, 2, 57, 0, 41, 117, 1, 0, 176, 202, 225, 2, 13, 166, 195, 119, 16, 0, 176, 251, 225, 113, 16,
-			0, 176, 60, 226, 38, 5, 0, 176, 249, 205, 38, 5, 0, 176, 249, 205, 38, 5, 0, 176, 238, 211, 13, 16, 0, 176, 5, 214, 13, 16,
-			0, 176, 125, 226, 0, 176, 190, 226, 2, 13, 144, 201, 44, 5, 0, 176, 202, 225, 44, 5, 0, 176, 255, 226, 4, 13, 145, 201, 144, 203,
-			44, 5, 0, 176, 255, 226, 4, 13, 145, 201, 144, 203, 0, 176, 255, 226, 13, 16, 44, 5, 0, 176, 80, 227, 38, 5, 58, 32, 0, 208,
-			4, 199, 0, 176, 58, 1, 13, 16, 44, 5, 0, 176, 159, 207, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 159, 207, 13, 16, 0, 176,
-			150, 199, 0, 176, 161, 227, 0, 176, 226, 227, 4, 13, 153, 201, 138, 202, 0, 176, 67, 228, 29, 50, 32, 34, 38, 4, 0, 176, 148, 228,
-			0, 176, 5, 229, 0, 176, 125, 216, 44, 5, 0, 176, 86, 229, 44, 5, 0, 176, 167, 229, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176,
-			8, 230, 44, 5, 0, 176, 64, 203, 147, 1, 1, 0, 44, 5, 0, 176, 73, 230, 111, 5, 0, 145, 79, 2, 1, 0, 119, 16, 0, 176,
-			184, 0, 113, 16, 0, 176, 249, 0, 38, 5, 55, 50, 59, 34, 0, 176, 249, 205, 0, 176, 170, 230, 38, 5, 0, 176, 58, 1, 13, 16,
-			0, 176, 185, 187, 129, 1, 1, 0, 2, 13, 138, 202, 13, 16, 0, 176, 188, 206, 23, 5, 0, 176, 17, 198, 2, 13, 144, 201, 0, 176,
-			74, 196, 44, 5, 0, 176, 253, 206, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 253, 206, 1, 13, 0, 97, 0, 176, 184, 0, 13, 16,
-			44, 5, 0, 176, 205, 188, 2, 13, 105, 101, 38, 5, 0, 176, 219, 230, 13, 16, 44, 5, 0, 176, 159, 207, 4, 13, 148, 201, 144, 203,
-			44, 5, 0, 176, 159, 207, 13, 16, 0, 176, 159, 207, 3, 13, 153, 201, 0, 117, 0, 176, 44, 231, 4, 13, 166, 195, 138, 202, 0, 176,
-			130, 208, 4, 13, 140, 202, 138, 202, 0, 176, 125, 231, 4, 13, 148, 201, 170, 201, 0, 176, 125, 216, 3, 13, 203, 101, 0, 144, 0, 176,
-			222, 231, 3, 13, 201, 111, 0, 170, 0, 176, 36, 191, 4, 13, 156, 201, 144, 203, 44, 5, 0, 176, 179, 198, 44, 5, 0, 176, 47, 232,
-			44, 5, 0, 176, 223, 202, 44, 5, 0, 176, 144, 232, 147, 1, 1, 0, 44, 5, 0, 176, 177, 203, 44, 5, 0, 176, 1, 233, 2, 41,
-			113, 1, 0, 176, 1, 233, 0, 176, 214, 186, 113, 16, 0, 176, 249, 0, 38, 5, 0, 176, 170, 230, 38, 5, 0, 176, 170, 230, 38, 5,
-			0, 176, 58, 1, 0, 176, 151, 214, 0, 176, 185, 187, 0, 176, 66, 233, 0, 176, 149, 186, 0, 176, 214, 186, 44, 5, 0, 176, 214, 186,
-			0, 176, 214, 186, 44, 5, 0, 176, 185, 187, 38, 5, 0, 176, 131, 233, 0, 176, 123, 1, 44, 5, 0, 176, 123, 1, 44, 5, 0, 176,
-			196, 233, 0, 176, 123, 1, 0, 176, 188, 1, 0, 176, 21, 234, 0, 176, 104, 187, 0, 176, 33, 190, 0, 176, 249, 0, 0, 176, 53, 224,
-			44, 5, 0, 176, 150, 224, 44, 5, 0, 176, 102, 234, 46, 34, 4, 104, 95, 10, 0, 176, 183, 234, 0, 176, 232, 234, 2, 13, 144, 201,
-			0, 176, 208, 197, 0, 176, 25, 235, 2, 13, 153, 201, 46, 34, 4, 104, 95, 10, 0, 176, 183, 234, 0, 176, 90, 235, 0, 176, 139, 235,
-			0, 176, 188, 235, 0, 176, 253, 235, 59, 34, 32, 238, 46, 236, 0, 176, 95, 236, 59, 34, 32, 238, 46, 236, 0, 176, 95, 236, 3, 13,
-			153, 201, 0, 108, 0, 176, 216, 195, 0, 176, 144, 236, 3, 13, 201, 105, 0, 153, 0, 176, 209, 236, 38, 5, 0, 176, 50, 237, 4, 13,
-			138, 202, 153, 201, 0, 176, 115, 237, 0, 176, 212, 237, 0, 176, 21, 238, 0, 176, 134, 238, 38, 5, 0, 176, 231, 238, 38, 5, 0, 176,
-			72, 239, 4, 13, 155, 201, 170, 201, 38, 5, 0, 176, 185, 239, 38, 5, 0, 176, 10, 240, 4, 13, 138, 202, 170, 201, 38, 5, 0, 176,
-			123, 240, 38, 5, 0, 176, 236, 240, 38, 5, 0, 176, 77, 241, 0, 176, 174, 241, 0, 176, 137, 200, 0, 176, 249, 0, 0, 176, 159, 207,
-			0, 176, 179, 198, 0, 176, 255, 241, 0, 176, 80, 242, 0, 176, 145, 242, 0, 161, 25, 3, 173, 1, 238, 188, 0, 162, 146, 18, 173, 1,
-			110, 189, 192, 195, 226, 242, 0, 161, 25, 3, 64, 9, 118, 90, 0, 162, 18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 199, 4, 16, 223,
-			248, 4, 16, 223, 41, 5, 16, 223, 90, 5, 16, 223, 139, 5, 16, 223, 188, 5, 2, 39, 224, 236, 237, 5, 0, 176, 255, 13, 64, 246,
-			219, 16, 13, 48, 109, 32, 2, 104, 5, 96, 0, 176, 234, 11, 0, 240, 178, 6, 1, 0, 0, 161, 213, 3, 83, 1, 246, 221, 0, 162,
-			146, 18, 83, 1, 246, 221, 0, 192, 1, 122, 0, 176, 184, 0, 0, 176, 56, 245, 2, 13, 168, 201, 0, 176, 121, 245, 0, 176, 173, 211,
-			0, 176, 121, 220, 0, 176, 250, 187, 0, 176, 86, 0, 109, 18, 0, 176, 58, 1, 4, 13, 168, 201, 144, 203, 110, 18, 0, 176, 186, 245,
-			112, 18, 0, 176, 188, 1, 108, 18, 0, 176, 249, 0, 111, 18, 0, 176, 251, 245, 35, 18, 0, 176, 82, 198, 4, 13, 145, 201, 168, 201,
-			0, 176, 72, 239, 0, 176, 75, 201, 3, 13, 201, 97, 0, 168, 0, 176, 75, 201, 0, 176, 14, 189, 0, 176, 185, 239, 4, 13, 153, 201,
-			168, 201, 0, 176, 185, 239, 0, 176, 111, 189, 0, 176, 76, 246, 3, 13, 168, 201, 0, 117, 0, 176, 76, 246, 0, 176, 188, 201, 4, 13,
-			148, 201, 168, 201, 0, 176, 188, 201, 0, 176, 157, 246, 3, 13, 201, 117, 0, 168, 0, 176, 157, 246, 0, 161, 25, 3, 75, 1, 96, 170,
-			0, 162, 18, 34, 75, 9, 96, 170, 0, 176, 11, 12, 16, 244, 60, 12, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9,
-			46, 173, 1, 47, 0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 192, 248, 122, 63, 0, 176, 106, 64, 96, 249, 155, 64, 108, 34,
-			4, 104, 40, 10, 0, 176, 183, 234, 109, 34, 4, 104, 40, 10, 0, 176, 183, 234, 110, 34, 4, 104, 40, 10, 0, 176, 183, 234, 108, 32,
-			4, 104, 30, 10, 0, 176, 183, 234, 0, 176, 232, 234, 0, 176, 86, 0, 0, 176, 254, 246, 2, 13, 144, 201, 35, 19, 0, 176, 74, 196,
-			0, 176, 60, 226, 113, 19, 111, 1, 1, 0, 0, 176, 204, 196, 3, 13, 204, 105, 0, 175, 0, 176, 78, 197, 0, 176, 186, 220, 115, 19,
-			112, 1, 1, 0, 0, 176, 17, 198, 117, 19, 111, 1, 1, 0, 3, 13, 204, 117, 0, 134, 0, 176, 188, 1, 1, 13, 0, 65, 0, 176,
-			47, 212, 120, 19, 112, 1, 1, 0, 0, 176, 104, 187, 0, 176, 82, 198, 0, 176, 249, 0, 0, 176, 58, 1, 0, 176, 250, 187, 0, 176,
-			63, 247, 0, 176, 133, 209, 0, 176, 160, 247, 0, 176, 33, 190, 128, 19, 112, 1, 1, 0, 0, 176, 14, 189, 130, 19, 0, 176, 14, 189,
-			31, 32, 1, 13, 0, 32, 6, 106, 0, 208, 93, 34, 0, 208, 142, 34, 0, 208, 191, 34, 0, 208, 240, 34, 0, 208, 33, 35, 0, 208,
-			98, 35, 31, 32, 128, 237, 147, 35, 0, 39, 0, 176, 180, 35, 1, 0, 34, 34, 5, 104, 2, 42, 2, 104, 2, 96, 108, 1, 0, 176,
-			55, 210, 139, 40, 105, 10, 0, 176, 74, 196, 87, 41, 62, 10, 0, 176, 184, 0, 16, 34, 67, 10, 0, 176, 25, 235, 13, 16, 16, 34,
-			67, 10, 0, 176, 25, 235, 16, 34, 67, 10, 38, 5, 0, 176, 249, 205, 0, 176, 249, 205, 16, 34, 67, 10, 0, 176, 123, 1, 16, 34,
-			67, 10, 34, 34, 138, 42, 115, 1, 0, 176, 59, 188, 0, 176, 1, 248, 35, 17, 0, 176, 1, 248, 58, 32, 0, 208, 4, 199, 0, 176,
-			82, 248, 111, 18, 58, 32, 0, 208, 4, 199, 0, 176, 82, 248, 0, 176, 188, 1, 0, 176, 147, 248, 0, 176, 244, 248, 0, 176, 195, 190,
-			0, 176, 36, 191, 0, 176, 69, 249, 0, 176, 58, 206, 0, 176, 104, 187, 0, 176, 124, 188, 2, 13, 143, 202, 16, 34, 57, 10, 0, 176,
-			134, 249, 0, 176, 205, 188, 16, 34, 80, 10, 0, 176, 188, 235, 2, 13, 102, 112, 0, 162, 18, 2, 75, 1, 84, 65, 0, 192, 192, 130,
-			140, 43, 81, 1, 2, 96, 99, 1, 1, 0, 2, 41, 55, 1, 6, 108, 64, 236, 5, 23, 128, 237, 70, 23, 32, 238, 135, 23, 32, 238,
-			184, 23, 128, 237, 249, 23, 128, 237, 74, 24, 0, 176, 199, 249, 2, 41, 21, 104, 6, 106, 0, 208, 116, 32, 0, 208, 181, 32, 0, 208,
-			246, 32, 0, 208, 55, 33, 0, 208, 104, 33, 0, 208, 185, 33, 32, 238, 234, 33, 0, 39, 3, 104, 0, 176, 232, 249, 7, 96, 0, 162,
-			35, 18, 0, 0, 0, 0, 0, 176, 44, 34, 1, 0, 14, 37, 2, 104, 11, 96, 2, 43, 9, 104, 2, 44, 3, 104, 51, 1, 5, 96,
-			47, 37, 2, 104, 2, 96, 14, 3, 92, 39, 1, 1, 0, 145, 138, 2, 1, 0, 3, 13, 201, 105, 0, 144, 0, 176, 9, 250, 4, 13,
-			138, 202, 144, 201, 0, 176, 106, 250, 0, 176, 187, 250, 55, 1, 1, 0, 138, 34, 48, 1, 0, 145, 196, 2, 1, 0, 138, 34, 47, 1,
-			0, 145, 15, 3, 1, 0, 138, 34, 49, 1, 0, 145, 153, 3, 1, 0, 0, 176, 214, 186, 0, 176, 25, 235, 38, 5, 0, 176, 58, 1,
-			136, 40, 0, 176, 104, 187, 0, 176, 159, 207, 0, 176, 188, 1, 0, 176, 14, 189, 0, 176, 111, 189, 0, 176, 33, 190, 0, 176, 16, 251,
-			0, 176, 10, 240, 0, 176, 149, 191, 0, 176, 25, 235, 0, 176, 25, 235, 38, 5, 108, 17, 0, 176, 97, 251, 38, 5, 0, 176, 121, 245,
-			0, 176, 25, 235, 0, 176, 251, 225, 0, 176, 162, 251, 0, 176, 151, 214, 0, 176, 159, 207, 0, 176, 205, 188, 0, 176, 250, 187, 0, 176,
-			227, 251, 0, 176, 36, 252, 0, 176, 124, 188, 0, 176, 101, 252, 0, 176, 198, 252, 0, 176, 188, 201, 0, 176, 16, 251, 0, 176, 23, 253,
-			0, 176, 104, 253, 0, 176, 185, 253, 0, 176, 10, 254, 0, 176, 107, 254, 0, 176, 188, 254, 0, 176, 13, 255, 0, 176, 110, 255, 0, 176,
-			191, 255, 1, 176, 16, 0, 1, 176, 97, 0, 1, 176, 178, 0, 0, 176, 102, 234, 1, 176, 3, 1, 1, 13, 0, 114, 0, 161, 25, 3,
-			73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 1, 176, 84, 1, 32, 243, 64, 14, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162,
-			25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 223, 67, 0, 176, 114, 68, 0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18, 79, 9,
-			98, 155, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49, 192, 243,
-			46, 56, 0, 176, 118, 55, 192, 243, 46, 56, 28, 34, 0, 192, 140, 158, 29, 34, 0, 192, 225, 159, 30, 34, 0, 192, 128, 161, 31, 34,
-			0, 192, 37, 163, 32, 34, 97, 196, 149, 1, 33, 34, 1, 197, 149, 1, 96, 196, 3, 168, 0, 176, 162, 251, 1, 176, 209, 3, 0, 176,
-			47, 212, 0, 176, 247, 219, 1, 176, 18, 4, 1, 176, 83, 4, 1, 176, 148, 4, 1, 176, 213, 4, 0, 176, 121, 245, 1, 176, 22, 5,
-			0, 176, 8, 230, 0, 176, 104, 187, 0, 176, 185, 187, 1, 176, 87, 5, 1, 176, 152, 5, 1, 176, 217, 5, 1, 176, 26, 6, 1, 176,
-			91, 6, 0, 176, 251, 225, 0, 176, 251, 225, 0, 176, 205, 188, 0, 176, 205, 188, 0, 176, 124, 188, 0, 176, 124, 188, 0, 176, 198, 252,
-			1, 176, 156, 6, 0, 176, 185, 253, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 223, 67,
-			0, 176, 114, 68, 0, 161, 21, 29, 77, 5, 158, 162, 0, 162, 146, 18, 77, 1, 94, 162, 133, 41, 192, 195, 30, 109, 0, 197, 47, 111,
-			0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18, 79, 9, 98, 155, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54,
-			0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49, 192, 243, 46, 56, 0, 176, 118, 55, 192, 243, 46, 56, 50, 34, 5, 104, 0, 176,
-			145, 6, 0, 240, 178, 6, 0, 176, 234, 11, 0, 240, 178, 6, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189,
-			0, 41, 0, 192, 255, 124, 31, 50, 61, 34, 128, 194, 1, 122, 55, 34, 128, 194, 115, 123, 34, 34, 128, 194, 113, 120, 49, 34, 160, 192,
-			255, 124, 64, 193, 255, 124, 28, 34, 0, 192, 140, 158, 29, 34, 0, 192, 225, 159, 30, 34, 0, 192, 128, 161, 31, 34, 0, 192, 37, 163,
-			32, 34, 0, 192, 139, 164, 33, 34, 0, 192, 58, 166, 96, 196, 3, 168, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1,
-			98, 162, 1, 192, 237, 6, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 192, 195, 131, 117, 0, 197,
-			47, 111, 0, 161, 232, 83, 83, 9, 246, 221, 0, 162, 50, 82, 83, 41, 246, 221, 1, 47, 1, 176, 26, 9, 133, 41, 5, 104, 0, 176,
-			59, 54, 129, 242, 75, 9, 87, 41, 5, 104, 0, 176, 77, 49, 1, 245, 75, 9, 0, 176, 118, 55, 1, 245, 75, 9, 111, 32, 1, 224,
-			80, 10, 33, 96, 112, 32, 1, 224, 113, 10, 29, 96, 113, 32, 1, 224, 146, 10, 25, 96, 114, 48, 115, 32, 1, 224, 179, 10, 20, 96,
-			116, 32, 1, 224, 228, 10, 16, 96, 2, 39, 14, 104, 6, 108, 1, 224, 21, 11, 1, 224, 54, 11, 1, 224, 87, 11, 1, 224, 120, 11,
-			1, 224, 153, 11, 1, 224, 186, 11, 1, 0, 112, 34, 1, 208, 219, 11, 46, 96, 117, 34, 1, 208, 252, 11, 42, 96, 113, 34, 1, 208,
-			29, 12, 38, 96, 114, 50, 115, 34, 1, 208, 62, 12, 33, 96, 111, 34, 1, 208, 95, 12, 29, 96, 58, 34, 1, 208, 128, 12, 25, 96,
-			116, 34, 1, 208, 161, 12, 21, 96, 57, 50, 118, 34, 1, 208, 194, 12, 16, 96, 2, 41, 14, 104, 6, 106, 1, 208, 227, 12, 1, 208,
-			4, 13, 1, 208, 37, 13, 1, 208, 70, 13, 1, 208, 103, 13, 1, 208, 136, 13, 1, 0, 0, 161, 25, 3, 71, 1, 222, 185, 2, 13,
-			129, 202, 138, 41, 46, 1, 4, 96, 138, 55, 0, 39, 119, 1, 0, 145, 163, 15, 0, 145, 200, 15, 1, 176, 169, 13, 2, 13, 129, 202,
-			138, 41, 1, 1, 2, 96, 34, 1, 1, 0, 2, 13, 129, 202, 47, 53, 48, 53, 49, 37, 5, 104, 1, 176, 202, 13, 240, 240, 178, 6,
-			138, 39, 5, 104, 1, 176, 251, 13, 240, 240, 178, 6, 6, 108, 1, 224, 28, 14, 1, 224, 61, 14, 1, 224, 94, 14, 1, 224, 127, 14,
-			1, 224, 160, 14, 1, 224, 193, 14, 111, 32, 1, 224, 226, 14, 8, 41, 5, 104, 1, 176, 3, 15, 64, 241, 178, 6, 109, 34, 15, 10,
-			1, 176, 52, 15, 64, 241, 178, 6, 0, 161, 25, 3, 71, 1, 222, 185, 2, 13, 129, 202, 0, 145, 200, 15, 83, 53, 49, 53, 48, 53,
-			89, 53, 47, 53, 91, 37, 1, 176, 85, 15, 110, 37, 1, 176, 150, 15, 40, 10, 1, 176, 169, 13, 1, 0, 138, 41, 56, 1, 3, 96,
-			110, 37, 59, 1, 6, 106, 0, 208, 239, 21, 96, 223, 32, 22, 16, 223, 65, 22, 16, 223, 98, 22, 97, 223, 215, 15, 192, 222, 212, 22,
-			28, 32, 224, 236, 172, 24, 4, 96, 2, 39, 128, 237, 172, 24, 0, 55, 134, 40, 0, 176, 205, 24, 87, 55, 8, 39, 0, 176, 205, 24,
-			47, 32, 0, 176, 254, 24, 56, 32, 0, 176, 31, 25, 0, 176, 64, 25, 2, 41, 55, 1, 111, 37, 1, 224, 248, 15, 16, 96, 2, 44,
-			14, 104, 6, 108, 0, 224, 231, 26, 0, 224, 8, 27, 0, 224, 41, 27, 0, 224, 74, 27, 0, 224, 123, 27, 0, 224, 172, 27, 109, 32,
-			0, 176, 205, 24, 0, 176, 139, 24, 138, 41, 56, 1, 6, 106, 0, 208, 239, 21, 96, 223, 32, 22, 16, 223, 65, 22, 16, 223, 98, 22,
-			96, 223, 147, 22, 192, 222, 212, 22, 47, 32, 0, 176, 254, 24, 0, 176, 64, 25, 1, 176, 25, 16, 1, 176, 25, 16, 2, 43, 110, 10,
-			2, 96, 85, 10, 1, 176, 74, 16, 81, 181, 74, 16, 56, 34, 192, 238, 172, 24, 5, 96, 2, 41, 100, 10, 2, 96, 85, 10, 0, 176,
-			69, 249, 0, 176, 69, 249, 57, 36, 95, 10, 2, 96, 85, 10, 0, 176, 60, 226, 0, 176, 60, 226, 119, 53, 59, 37, 5, 104, 2, 43,
-			2, 104, 120, 10, 16, 96, 109, 37, 2, 43, 8, 104, 31, 36, 4, 104, 110, 10, 38, 5, 2, 96, 118, 1, 6, 96, 2, 43, 57, 1,
-			3, 96, 75, 10, 38, 5, 1, 176, 148, 4, 6, 106, 0, 208, 116, 32, 0, 208, 181, 32, 0, 208, 246, 32, 0, 208, 55, 33, 0, 208,
-			104, 33, 0, 208, 185, 33, 1, 176, 139, 16, 2, 41, 110, 10, 2, 96, 85, 10, 139, 40, 1, 176, 204, 16, 0, 176, 104, 187, 1, 0,
-			139, 40, 1, 176, 29, 17, 108, 36, 138, 42, 1, 176, 29, 17, 109, 36, 138, 42, 1, 176, 29, 17, 0, 176, 8, 230, 2, 57, 57, 34,
-			110, 10, 2, 96, 90, 10, 1, 176, 87, 5, 1, 176, 87, 5, 114, 52, 31, 36, 4, 104, 55, 10, 0, 181, 124, 188, 90, 10, 0, 176,
-			124, 188, 0, 176, 124, 188, 0, 176, 151, 195, 0, 176, 151, 195, 0, 176, 205, 188, 109, 48, 108, 37, 15, 104, 6, 106, 0, 208, 105, 30,
-			1, 208, 94, 17, 0, 208, 203, 30, 0, 208, 252, 30, 0, 208, 45, 31, 0, 208, 94, 31, 2, 96, 133, 1, 1, 0, 2, 41, 23, 104,
-			6, 106, 0, 208, 105, 30, 1, 208, 94, 17, 0, 208, 203, 30, 0, 208, 252, 30, 0, 208, 45, 31, 0, 208, 94, 31, 32, 238, 143, 31,
-			0, 39, 3, 104, 0, 176, 209, 31, 0, 176, 209, 31, 11, 96, 0, 162, 25, 18, 0, 0, 0, 0, 31, 32, 3, 104, 0, 176, 2, 32,
-			0, 176, 67, 32, 1, 0, 0, 176, 187, 250, 134, 34, 0, 176, 60, 226, 1, 176, 143, 17, 1, 176, 224, 17, 1, 176, 143, 17, 0, 161,
-			213, 3, 173, 9, 84, 90, 0, 162, 18, 34, 73, 9, 84, 73, 2, 47, 15, 104, 0, 161, 213, 3, 73, 5, 84, 73, 133, 41, 5, 104,
-			0, 176, 65, 50, 0, 240, 114, 50, 0, 176, 65, 50, 0, 240, 120, 51, 1, 47, 7, 104, 109, 36, 3, 104, 1, 176, 49, 18, 0, 176,
-			16, 50, 133, 57, 55, 34, 5, 104, 0, 176, 209, 51, 0, 240, 114, 50, 56, 34, 0, 176, 201, 53, 109, 34, 5, 104, 1, 176, 98, 18,
-			32, 243, 120, 51, 0, 176, 201, 53, 96, 244, 120, 51, 0, 161, 21, 29, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47,
-			7, 104, 109, 36, 3, 104, 1, 176, 131, 18, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 32, 243, 108, 54, 109, 36, 5, 104,
-			0, 176, 77, 49, 32, 243, 108, 54, 0, 176, 118, 55, 128, 242, 167, 55, 0, 162, 18, 2, 171, 1, 84, 65, 0, 41, 0, 192, 12, 128,
-			0, 197, 192, 130, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 5, 46, 173, 1, 47, 7, 104, 109, 36, 3, 104, 1, 176,
-			180, 18, 0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240, 122, 63, 109, 36, 5, 104, 1, 176, 229, 18, 65, 241, 22, 19,
-			0, 176, 106, 64, 65, 241, 22, 19, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 66, 119,
-			31, 50, 38, 34, 208, 194, 1, 122, 108, 34, 128, 194, 115, 123, 109, 34, 4, 104, 22, 10, 32, 195, 52, 126, 128, 194, 52, 126, 0, 162,
-			146, 50, 77, 9, 98, 162, 2, 47, 7, 104, 0, 161, 25, 3, 79, 1, 222, 154, 0, 176, 112, 38, 6, 106, 0, 208, 177, 38, 0, 208,
-			242, 38, 0, 208, 51, 39, 0, 208, 116, 39, 0, 208, 181, 39, 0, 208, 246, 39, 138, 39, 3, 43, 0, 176, 55, 40, 0, 55, 50, 32,
-			0, 176, 104, 40, 138, 41, 4, 104, 60, 10, 1, 176, 198, 19, 1, 0, 58, 50, 2, 41, 50, 1, 2, 96, 1, 1, 1, 0, 0, 161,
-			213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 133, 41, 0, 197, 91, 100, 14, 34, 96, 196, 113, 103, 108, 34, 32, 195,
-			60, 104, 109, 34, 4, 104, 20, 10, 0, 197, 91, 100, 160, 197, 206, 174, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1,
-			84, 65, 138, 41, 1, 1, 208, 194, 58, 105, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 208, 194,
-			250, 71, 48, 50, 47, 50, 49, 34, 208, 194, 2, 137, 208, 194, 46, 139, 0, 161, 25, 3, 77, 1, 102, 172, 0, 162, 18, 2, 77, 1,
-			102, 172, 47, 37, 30, 10, 0, 41, 208, 194, 22, 141, 208, 194, 194, 143, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1,
-			98, 162, 133, 41, 128, 194, 22, 106, 109, 34, 4, 104, 20, 10, 33, 195, 247, 19, 128, 194, 94, 176, 0, 161, 213, 3, 77, 1, 96, 170,
-			0, 162, 146, 18, 77, 1, 96, 162, 2, 57, 58, 50, 57, 34, 224, 193, 94, 176, 1, 1, 1, 0, 0, 41, 47, 1, 5, 96, 138, 41,
-			1, 1, 2, 96, 140, 1, 1, 0, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 18, 2, 169, 1, 84, 73, 2, 47, 4, 104, 0, 145,
-			204, 3, 1, 0, 133, 41, 5, 104, 0, 176, 223, 67, 0, 240, 110, 65, 134, 40, 3, 43, 35, 10, 4, 96, 133, 52, 109, 36, 30, 10,
-			0, 176, 114, 68, 192, 243, 110, 65, 13, 16, 0, 176, 208, 197, 0, 162, 25, 18, 13, 1, 98, 170, 88, 36, 0, 176, 10, 54, 133, 57,
-			0, 41, 5, 104, 0, 176, 201, 71, 208, 242, 250, 71, 47, 37, 30, 10, 0, 176, 167, 74, 208, 242, 250, 71, 2, 57, 133, 50, 57, 34,
-			6, 104, 35, 10, 0, 176, 167, 74, 128, 242, 46, 139, 1, 1, 1, 0, 0, 41, 89, 1, 6, 96, 2, 57, 133, 34, 88, 1, 2, 96,
-			1, 1, 1, 0, 0, 176, 60, 226, 0, 176, 250, 187, 1, 176, 199, 20, 38, 5, 0, 176, 249, 205, 0, 176, 66, 233, 1, 176, 24, 21,
-			1, 176, 89, 21, 1, 176, 209, 3, 0, 161, 25, 3, 71, 1, 222, 185, 138, 41, 46, 1, 1, 176, 170, 21, 128, 247, 178, 6, 0, 176,
-			55, 210, 0, 176, 82, 248, 0, 176, 249, 205, 0, 176, 124, 188, 0, 176, 205, 188, 0, 176, 250, 187, 0, 176, 25, 235, 13, 16, 0, 176,
-			56, 245, 1, 176, 235, 21, 1, 176, 235, 21, 129, 40, 7, 104, 136, 40, 3, 104, 1, 176, 44, 22, 1, 176, 109, 22, 0, 176, 184, 0,
-			0, 176, 214, 186, 129, 40, 1, 176, 44, 22, 0, 176, 47, 212, 0, 176, 5, 205, 0, 176, 114, 190, 13, 17, 119, 1, 1, 0, 1, 176,
-			174, 22, 1, 176, 239, 22, 0, 176, 195, 190, 0, 176, 110, 255, 0, 176, 21, 234, 0, 176, 111, 189, 1, 176, 64, 23, 0, 161, 25, 3,
-			73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 101, 37, 1, 1, 140, 43, 2, 104, 2, 96, 101, 1, 133, 41, 5, 104, 0, 176,
-			249, 96, 0, 240, 194, 92, 1, 176, 161, 23, 193, 248, 210, 23, 1, 13, 0, 32, 1, 0, 136, 40, 5, 104, 47, 50, 72, 34, 2, 104,
-			128, 1, 0, 145, 90, 6, 1, 0, 136, 40, 5, 104, 47, 50, 72, 34, 2, 104, 128, 1, 128, 32, 47, 1, 0, 145, 15, 3, 1, 0,
-			136, 40, 5, 104, 48, 50, 71, 34, 2, 104, 128, 1, 0, 145, 55, 6, 1, 0, 136, 40, 5, 104, 48, 50, 71, 34, 2, 104, 128, 1,
-			128, 32, 48, 1, 0, 145, 196, 2, 1, 0, 136, 40, 5, 104, 89, 50, 88, 34, 2, 104, 128, 1, 0, 145, 128, 5, 1, 0, 136, 40,
-			5, 104, 89, 50, 88, 34, 2, 104, 128, 1, 128, 32, 89, 1, 0, 145, 19, 4, 1, 0, 14, 16, 108, 50, 108, 32, 0, 176, 202, 225,
-			57, 34, 0, 176, 125, 226, 1, 176, 5, 26, 134, 40, 4, 104, 0, 176, 125, 226, 1, 0, 130, 40, 32, 104, 65, 10, 136, 40, 141, 40,
-			3, 0, 2, 104, 1, 1, 108, 32, 2, 104, 13, 1, 2, 45, 10, 0, 92, 45, 7, 0, 3, 0, 6, 104, 138, 43, 136, 41, 2, 104,
-			2, 96, 1, 1, 73, 39, 108, 34, 3, 0, 3, 104, 110, 1, 6, 96, 34, 32, 3, 104, 111, 1, 2, 96, 13, 1, 108, 50, 108, 32,
-			0, 176, 202, 225, 58, 32, 0, 176, 186, 220, 0, 176, 125, 226, 0, 176, 202, 225, 14, 16, 0, 176, 86, 205, 129, 40, 37, 1, 38, 5,
-			0, 176, 131, 233, 38, 5, 0, 176, 170, 230, 38, 5, 0, 176, 121, 245, 0, 176, 58, 206, 0, 176, 58, 206, 1, 176, 70, 26, 0, 176,
-			60, 226, 0, 176, 251, 225, 57, 36, 1, 176, 151, 26, 0, 176, 162, 251, 0, 176, 74, 196, 0, 176, 251, 245, 0, 176, 104, 187, 0, 176,
-			185, 187, 0, 176, 143, 197, 0, 176, 66, 233, 0, 176, 250, 187, 1, 176, 216, 26, 1, 176, 25, 27, 0, 176, 80, 242, 0, 176, 153, 210,
-			1, 176, 90, 27, 1, 176, 155, 27, 0, 176, 5, 205, 1, 176, 220, 27, 1, 176, 45, 28, 1, 176, 45, 28, 0, 176, 198, 252, 1, 176,
-			110, 28, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 1, 47, 0, 176, 16, 50, 0, 176, 2, 52, 96, 244,
-			29, 175, 0, 161, 21, 28, 77, 1, 94, 170, 0, 162, 146, 18, 77, 1, 94, 162, 133, 41, 48, 194, 30, 109, 32, 195, 30, 109, 0, 161,
-			213, 3, 77, 1, 94, 170, 0, 162, 146, 18, 77, 1, 94, 162, 1, 47, 0, 176, 10, 54, 1, 176, 207, 28, 128, 242, 30, 109, 2, 13,
-			136, 202, 0, 161, 213, 3, 71, 1, 100, 170, 0, 162, 146, 18, 71, 65, 100, 162, 0, 192, 94, 176, 4, 13, 136, 202, 176, 202, 0, 161,
-			213, 3, 75, 1, 100, 170, 0, 162, 146, 18, 71, 65, 100, 162, 141, 36, 139, 1, 1, 197, 0, 29, 2, 13, 150, 201, 0, 161, 213, 3,
-			71, 5, 100, 170, 0, 162, 18, 2, 71, 69, 100, 170, 1, 47, 1, 176, 131, 18, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54,
-			0, 176, 77, 49, 0, 240, 167, 55, 4, 13, 150, 201, 176, 202, 0, 161, 213, 3, 71, 5, 100, 170, 0, 162, 18, 2, 71, 69, 100, 170,
-			1, 47, 1, 176, 131, 18, 0, 176, 77, 49, 0, 240, 34, 110, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 0, 192, 226, 111, 1, 192,
-			129, 30, 0, 145, 32, 5, 3, 13, 202, 99, 0, 176, 1, 0, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 18, 2, 85, 33, 246, 221,
-			1, 47, 0, 176, 35, 62, 0, 176, 35, 62, 0, 240, 194, 115, 0, 161, 149, 18, 76, 5, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189,
-			1, 47, 1, 176, 177, 31, 133, 41, 5, 104, 1, 176, 177, 31, 48, 242, 237, 178, 1, 176, 177, 31, 32, 243, 237, 178, 193, 195, 226, 31,
-			136, 40, 0, 145, 101, 0, 9, 96, 2, 44, 5, 104, 138, 59, 109, 36, 2, 104, 16, 1, 0, 145, 71, 0, 2, 13, 190, 201, 1, 0,
-			136, 40, 138, 44, 2, 45, 10, 0, 1, 1, 141, 40, 18, 104, 37, 54, 7, 0, 40, 38, 7, 0, 2, 104, 39, 1, 34, 37, 2, 45,
-			7, 0, 8, 104, 136, 45, 7, 0, 109, 38, 7, 0, 2, 104, 2, 96, 39, 1, 121, 1, 1, 0, 136, 40, 129, 40, 1, 176, 44, 22,
-			0, 176, 117, 219, 1, 176, 174, 32, 0, 176, 188, 1, 0, 176, 249, 0, 1, 176, 239, 32, 58, 36, 85, 10, 0, 176, 104, 187, 1, 176,
-			48, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 1, 192, 113, 33, 1, 192, 113, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41,
-			0, 192, 226, 111, 0, 192, 50, 114, 13, 18, 108, 34, 0, 176, 202, 225, 1, 176, 5, 26, 0, 176, 86, 205, 108, 34, 0, 176, 202, 225,
-			1, 176, 5, 26, 38, 5, 0, 176, 58, 1, 0, 176, 249, 0, 0, 176, 162, 251, 0, 176, 8, 230, 0, 176, 250, 187, 1, 176, 131, 34,
-			1, 176, 110, 28, 0, 176, 195, 190, 0, 176, 111, 189, 1, 176, 228, 34, 0, 176, 134, 238, 0, 176, 36, 191, 0, 176, 107, 254, 0, 176,
-			149, 191, 14, 16, 108, 34, 0, 176, 202, 225, 1, 176, 5, 26, 0, 145, 151, 19, 1, 0, 0, 176, 202, 225, 14, 16, 0, 176, 86, 205,
-			4, 146, 20, 141, 1, 0, 108, 34, 0, 176, 202, 225, 1, 176, 5, 26, 13, 18, 108, 34, 0, 176, 202, 225, 0, 176, 125, 226, 38, 5,
-			0, 176, 131, 233, 38, 5, 0, 176, 121, 245, 0, 176, 58, 206, 0, 176, 56, 245, 0, 176, 162, 251, 0, 176, 185, 187, 0, 176, 104, 187,
-			0, 176, 66, 233, 0, 176, 250, 187, 0, 176, 208, 197, 109, 18, 0, 176, 184, 0, 2, 13, 140, 202, 136, 41, 65, 34, 13, 1, 0, 176,
-			125, 226, 2, 59, 149, 36, 1, 1, 109, 1, 1, 0, 1, 176, 151, 26, 0, 176, 249, 0, 0, 176, 249, 0, 136, 40, 130, 40, 1, 176,
-			101, 35, 1, 176, 174, 32, 0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 104, 187, 122, 18, 1, 176, 166, 35, 1, 176, 166, 35, 2, 13,
-			137, 202, 1, 176, 231, 35, 40, 44, 2, 104, 2, 96, 151, 18, 1, 176, 166, 35, 2, 13, 137, 202, 1, 176, 231, 35, 1, 176, 40, 36,
-			0, 176, 137, 200, 1, 1, 1, 0, 0, 145, 73, 4, 2, 13, 187, 201, 1, 0, 0, 176, 86, 0, 2, 13, 144, 201, 1, 176, 44, 22,
-			0, 176, 117, 219, 0, 176, 249, 0, 0, 176, 249, 0, 1, 176, 174, 32, 0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 104, 187, 0, 176,
-			66, 233, 0, 176, 66, 233, 0, 176, 33, 190, 1, 176, 110, 28, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170,
-			1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49, 64, 246, 46, 56,
-			32, 179, 118, 55, 192, 243, 23, 192, 0, 176, 202, 225, 2, 13, 168, 201, 128, 183, 251, 220, 2, 13, 144, 201, 131, 56, 141, 56, 136, 40,
-			1, 176, 109, 22, 13, 17, 65, 34, 136, 41, 2, 104, 13, 1, 0, 176, 74, 196, 1, 0, 35, 1, 1, 0, 1, 176, 151, 26, 0, 176,
-			249, 0, 0, 176, 249, 0, 1, 176, 174, 32, 0, 176, 249, 205, 0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 104, 187, 0, 176, 188, 1,
-			0, 176, 188, 1, 0, 176, 33, 190, 1, 176, 110, 28, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 1, 47,
-			7, 104, 2, 44, 3, 104, 0, 176, 16, 50, 1, 176, 137, 36, 133, 41, 0, 192, 91, 100, 55, 34, 0, 192, 60, 104, 0, 192, 29, 175,
-			0, 161, 21, 28, 77, 1, 94, 170, 0, 162, 146, 18, 77, 1, 94, 162, 1, 47, 7, 104, 2, 44, 3, 104, 0, 176, 10, 54, 1, 176,
-			137, 36, 133, 41, 48, 194, 30, 109, 32, 195, 30, 109, 4, 13, 136, 202, 176, 202, 0, 161, 213, 3, 75, 1, 100, 170, 0, 162, 146, 18,
-			71, 65, 100, 162, 141, 36, 139, 1, 1, 197, 0, 29, 4, 13, 136, 202, 176, 202, 0, 161, 213, 3, 75, 1, 100, 170, 0, 162, 146, 18,
-			71, 65, 100, 162, 1, 47, 7, 104, 2, 44, 3, 104, 1, 176, 131, 18, 1, 176, 137, 36, 1, 197, 0, 29, 0, 161, 227, 83, 85, 1,
-			246, 221, 1, 47, 7, 104, 2, 44, 3, 104, 0, 176, 35, 62, 1, 176, 137, 36, 133, 41, 0, 192, 194, 115, 0, 192, 194, 115, 0, 161,
-			213, 3, 76, 5, 92, 139, 0, 162, 146, 18, 76, 1, 110, 189, 1, 47, 7, 104, 2, 44, 3, 104, 0, 176, 24, 63, 1, 176, 137, 36,
-			133, 41, 128, 194, 237, 178, 30, 52, 31, 36, 128, 194, 174, 180, 32, 52, 33, 36, 144, 193, 136, 182, 224, 193, 136, 182, 1, 0, 134, 40,
-			0, 145, 219, 4, 5, 96, 136, 40, 141, 40, 3, 0, 71, 1, 1, 0, 134, 40, 0, 145, 245, 4, 5, 96, 136, 40, 141, 40, 3, 0,
-			72, 1, 1, 0, 134, 40, 0, 145, 57, 5, 5, 96, 136, 40, 141, 40, 3, 0, 81, 1, 1, 0, 0, 176, 5, 214, 0, 176, 60, 226,
-			38, 5, 0, 176, 97, 251, 0, 176, 8, 230, 0, 176, 66, 233, 1, 176, 218, 36, 0, 176, 134, 249, 0, 176, 58, 1, 1, 176, 27, 37,
-			0, 176, 184, 0, 0, 176, 251, 245, 0, 176, 250, 187, 0, 176, 124, 188, 0, 176, 205, 188, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162,
-			146, 18, 77, 1, 98, 162, 0, 192, 6, 172, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 208, 194,
-			30, 109, 32, 195, 30, 109, 47, 34, 0, 192, 2, 0, 47, 1, 1, 0, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9,
-			94, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 46, 56, 34, 34, 5, 104, 0, 176, 77, 49, 224, 246,
-			46, 56, 0, 176, 118, 55, 224, 246, 46, 56, 138, 41, 56, 1, 0, 145, 192, 0, 28, 32, 224, 236, 172, 24, 4, 96, 2, 39, 128, 237,
-			172, 24, 0, 39, 0, 176, 205, 24, 47, 32, 0, 176, 254, 24, 0, 176, 64, 25, 1, 176, 26, 6, 0, 176, 117, 219, 0, 176, 117, 219,
-			0, 176, 117, 219, 0, 41, 0, 176, 23, 187, 0, 176, 60, 226, 0, 41, 0, 176, 23, 187, 0, 176, 60, 226, 0, 176, 60, 226, 1, 176,
-			92, 37, 1, 176, 173, 37, 114, 19, 0, 176, 50, 237, 0, 176, 50, 237, 1, 176, 174, 32, 0, 176, 159, 207, 0, 176, 159, 207, 0, 176,
-			159, 207, 0, 176, 188, 1, 0, 176, 188, 1, 0, 176, 250, 187, 0, 176, 188, 1, 0, 176, 188, 1, 1, 176, 131, 34, 0, 176, 16, 251,
-			0, 176, 10, 254, 1, 176, 254, 37, 0, 176, 188, 201, 0, 176, 149, 191, 1, 176, 95, 38, 0, 176, 14, 189, 0, 176, 111, 189, 1, 176,
-			176, 38, 0, 176, 33, 190, 1, 176, 1, 39, 2, 44, 2, 104, 2, 96, 14, 3, 0, 181, 255, 13, 32, 243, 64, 14, 0, 161, 213, 3,
-			77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 48, 194, 30, 109, 192, 195, 30, 109, 0, 161, 227, 83, 85, 1, 246, 221,
-			0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 131, 117, 192, 195, 131, 117, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2,
-			76, 9, 94, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 87, 41, 5, 104, 0, 176, 77, 49,
-			224, 246, 46, 56, 0, 176, 118, 55, 224, 246, 46, 56, 0, 161, 232, 83, 83, 9, 246, 221, 0, 162, 50, 82, 83, 41, 246, 221, 1, 47,
-			1, 176, 26, 9, 133, 41, 5, 104, 0, 176, 59, 54, 129, 242, 75, 9, 87, 41, 5, 104, 0, 176, 77, 49, 1, 245, 75, 9, 0, 176,
-			118, 55, 1, 245, 75, 9, 6, 106, 0, 208, 53, 43, 0, 208, 150, 43, 0, 208, 231, 43, 0, 208, 72, 44, 0, 208, 169, 44, 0, 208,
-			26, 45, 0, 39, 0, 176, 123, 45, 138, 41, 10, 104, 67, 36, 3, 104, 37, 10, 4, 96, 67, 37, 2, 104, 50, 10, 0, 176, 156, 45,
-			1, 0, 2, 13, 173, 201, 0, 176, 149, 29, 3, 13, 204, 108, 0, 169, 0, 176, 134, 4, 1, 176, 26, 6, 38, 5, 1, 176, 174, 32,
-			38, 5, 1, 176, 174, 32, 0, 176, 60, 226, 0, 176, 60, 226, 0, 176, 251, 225, 0, 176, 251, 225, 112, 16, 0, 176, 117, 219, 0, 176,
-			117, 219, 2, 13, 144, 201, 0, 176, 112, 212, 0, 176, 159, 207, 0, 176, 159, 207, 0, 176, 188, 1, 0, 176, 188, 1, 1, 176, 131, 34,
-			0, 176, 16, 251, 0, 176, 10, 254, 1, 176, 254, 37, 0, 176, 188, 201, 0, 176, 149, 191, 1, 176, 95, 38, 0, 176, 13, 255, 0, 161,
-			25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 255, 13, 32, 243, 64, 14, 0, 161, 213, 3, 77, 1, 98, 170,
-			0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 174, 169, 161, 197, 82, 39, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18,
-			77, 1, 98, 162, 133, 41, 0, 192, 22, 106, 48, 199, 94, 176, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65,
-			133, 41, 0, 197, 206, 174, 55, 34, 0, 192, 60, 104, 128, 199, 113, 103, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1,
-			110, 189, 133, 41, 0, 192, 66, 119, 31, 50, 61, 34, 0, 192, 1, 122, 55, 34, 0, 192, 115, 123, 192, 195, 255, 124, 0, 161, 25, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 169, 184, 108, 16, 0, 176, 184, 0, 2, 13, 144, 201, 1, 176, 44, 22,
-			0, 41, 0, 176, 23, 187, 0, 176, 60, 226, 1, 176, 134, 40, 38, 5, 1, 176, 213, 4, 1, 176, 48, 33, 0, 176, 250, 187, 2, 13,
-			168, 201, 1, 176, 199, 40, 1, 176, 8, 41, 1, 176, 105, 41, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34,
-			73, 9, 98, 170, 0, 176, 255, 13, 32, 243, 64, 14, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41,
-			48, 194, 30, 109, 192, 195, 30, 109, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 131, 117,
-			192, 195, 131, 117, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104,
-			0, 176, 59, 54, 0, 240, 108, 54, 87, 41, 5, 104, 0, 176, 77, 49, 224, 246, 46, 56, 0, 176, 118, 55, 224, 246, 46, 56, 0, 161,
-			232, 83, 83, 9, 246, 221, 0, 162, 50, 82, 83, 41, 246, 221, 1, 47, 1, 176, 26, 9, 133, 41, 5, 104, 0, 176, 59, 54, 129, 242,
-			75, 9, 87, 41, 5, 104, 0, 176, 77, 49, 1, 245, 75, 9, 0, 176, 118, 55, 1, 245, 75, 9, 0, 145, 34, 6, 3, 13, 202, 100,
-			0, 145, 1, 0, 0, 145, 32, 5, 3, 13, 201, 116, 0, 149, 1, 0, 0, 145, 91, 1, 2, 41, 0, 176, 230, 191, 1, 0, 0, 162,
-			18, 2, 75, 1, 84, 65, 133, 41, 0, 192, 12, 128, 89, 34, 0, 202, 192, 130, 192, 200, 192, 130, 38, 5, 0, 176, 121, 245, 38, 5,
-			0, 176, 50, 237, 1, 176, 202, 41, 0, 176, 25, 235, 0, 176, 60, 226, 136, 40, 129, 40, 0, 176, 9, 196, 0, 176, 184, 0, 0, 176,
-			184, 0, 0, 176, 159, 207, 0, 176, 159, 207, 0, 176, 227, 251, 0, 176, 250, 187, 0, 176, 14, 189, 0, 176, 111, 189, 1, 176, 176, 38,
-			0, 176, 33, 190, 1, 176, 1, 39, 3, 13, 204, 114, 0, 169, 0, 176, 53, 4, 5, 13, 204, 114, 203, 169, 0, 144, 0, 176, 53, 4,
-			3, 13, 204, 114, 0, 157, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 197, 77, 33, 243, 251, 41,
-			5, 13, 204, 114, 204, 157, 0, 138, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 1, 176, 166, 44, 145, 241,
-			251, 41, 3, 13, 204, 108, 0, 169, 0, 176, 134, 4, 5, 13, 204, 108, 203, 169, 0, 144, 0, 176, 134, 4, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 22, 106, 0, 192, 94, 176, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162,
-			210, 19, 73, 1, 84, 65, 133, 41, 0, 197, 113, 103, 55, 34, 0, 192, 60, 104, 128, 199, 113, 103, 0, 176, 60, 226, 0, 176, 117, 219,
-			0, 176, 121, 220, 0, 176, 188, 1, 1, 176, 215, 44, 3, 13, 204, 114, 0, 169, 0, 176, 53, 4, 0, 161, 25, 3, 77, 1, 106, 172,
-			0, 162, 18, 2, 77, 1, 106, 172, 133, 41, 161, 197, 40, 45, 225, 198, 40, 45, 0, 161, 213, 3, 77, 1, 102, 156, 133, 41, 129, 194,
-			141, 47, 33, 195, 141, 47, 3, 13, 201, 116, 0, 149, 0, 161, 227, 83, 85, 1, 114, 205, 133, 41, 33, 195, 80, 49, 33, 195, 80, 49,
-			0, 161, 25, 3, 75, 1, 232, 171, 0, 162, 18, 34, 75, 9, 232, 171, 133, 41, 5, 104, 0, 176, 148, 77, 1, 245, 40, 45, 0, 176,
-			197, 77, 97, 249, 40, 45, 0, 161, 213, 3, 81, 9, 102, 172, 0, 162, 18, 34, 81, 9, 102, 172, 1, 47, 0, 176, 231, 56, 133, 41,
-			5, 104, 0, 176, 24, 57, 33, 243, 141, 47, 1, 176, 240, 50, 1, 245, 141, 47, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9,
-			114, 205, 1, 47, 0, 176, 231, 56, 133, 41, 5, 104, 0, 176, 24, 57, 33, 243, 80, 49, 1, 176, 240, 50, 1, 245, 80, 49, 1, 176,
-			25, 16, 0, 176, 1, 233, 122, 18, 0, 176, 184, 0, 0, 176, 184, 0, 1, 176, 44, 22, 0, 176, 60, 226, 0, 176, 249, 0, 138, 18,
-			38, 5, 1, 176, 174, 32, 38, 5, 0, 176, 121, 245, 0, 176, 159, 207, 139, 18, 0, 176, 250, 187, 0, 176, 227, 251, 0, 176, 33, 190,
-			0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 48, 194, 30, 109, 32, 195, 30, 109, 0, 161, 21, 28,
-			77, 9, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54,
-			34, 34, 5, 104, 0, 176, 77, 49, 0, 240, 167, 55, 0, 176, 118, 55, 32, 243, 167, 55, 0, 161, 25, 3, 77, 1, 238, 188, 0, 162,
-			146, 18, 77, 1, 110, 189, 208, 194, 71, 156, 1, 13, 0, 32, 16, 4, 0, 176, 135, 0, 0, 161, 213, 3, 87, 1, 246, 221, 0, 162,
-			146, 18, 87, 1, 246, 221, 0, 192, 1, 122, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 231, 56,
-			133, 41, 5, 104, 0, 176, 24, 57, 0, 240, 73, 57, 0, 176, 215, 59, 0, 240, 11, 61, 38, 5, 0, 176, 170, 230, 2, 13, 144, 201,
-			0, 176, 149, 186, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 255, 13, 32, 243,
-			64, 14, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 49, 194, 33, 51, 33, 195, 33, 51, 0, 161,
-			21, 28, 77, 9, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 1, 176, 239, 51, 1, 240,
-			33, 51, 1, 176, 239, 51, 33, 243, 33, 51, 31, 50, 30, 34, 1, 192, 32, 52, 2, 41, 1, 192, 24, 55, 97, 196, 24, 55, 28, 34,
-			0, 192, 140, 158, 31, 50, 30, 34, 1, 192, 32, 52, 2, 41, 1, 192, 24, 55, 97, 196, 24, 55, 0, 161, 213, 3, 81, 9, 238, 188,
-			0, 162, 18, 34, 81, 9, 46, 173, 1, 47, 0, 176, 231, 56, 0, 176, 215, 59, 1, 240, 56, 57, 3, 13, 202, 100, 0, 145, 0, 161,
-			227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 231, 56, 0, 176, 215, 59, 1, 240, 12, 60, 0, 161, 213, 3, 77, 1, 238, 188, 33, 195,
-			251, 61, 3, 13, 201, 116, 0, 149, 0, 161, 227, 83, 85, 1, 246, 221, 1, 192, 12, 60, 0, 161, 25, 3, 75, 1, 232, 171, 0, 162,
-			18, 34, 75, 9, 232, 171, 133, 41, 5, 104, 0, 176, 197, 77, 33, 243, 56, 57, 0, 176, 197, 77, 193, 243, 56, 57, 0, 161, 25, 3,
-			77, 1, 106, 172, 0, 162, 18, 2, 77, 1, 106, 172, 133, 41, 193, 195, 56, 57, 97, 196, 56, 57, 0, 161, 213, 3, 73, 9, 238, 172,
-			0, 162, 18, 34, 73, 9, 46, 173, 1, 47, 0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240, 122, 63, 0, 176, 106, 64,
-			161, 245, 65, 64, 0, 161, 25, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 224, 193, 71, 156, 2, 13, 173, 201, 0, 176,
-			149, 29, 2, 13, 173, 201, 0, 176, 149, 29, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 46, 139,
-			2, 13, 178, 201, 0, 162, 23, 114, 81, 13, 114, 205, 2, 47, 5, 104, 0, 208, 211, 42, 0, 176, 244, 42, 6, 106, 0, 208, 53, 43,
-			0, 208, 150, 43, 0, 208, 231, 43, 0, 208, 72, 44, 0, 208, 169, 44, 0, 208, 26, 45, 0, 39, 0, 176, 123, 45, 138, 41, 10, 104,
-			67, 36, 3, 104, 37, 10, 4, 96, 67, 37, 2, 104, 50, 10, 0, 176, 156, 45, 1, 0, 2, 44, 2, 104, 2, 96, 14, 3, 0, 181,
-			255, 13, 32, 243, 64, 14, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 231, 56, 133, 41, 5, 104, 0, 176, 24, 57, 0, 240,
-			73, 57, 1, 0, 0, 161, 227, 83, 85, 1, 246, 221, 0, 192, 194, 115, 0, 162, 18, 34, 75, 9, 84, 65, 2, 47, 11, 104, 0, 161,
-			25, 3, 75, 1, 212, 114, 133, 41, 3, 104, 0, 176, 213, 35, 0, 176, 22, 36, 0, 208, 26, 37, 0, 176, 237, 37, 2, 41, 38, 1,
-			113, 32, 1, 176, 187, 64, 1, 176, 12, 65, 90, 32, 115, 1, 25, 10, 1, 176, 61, 65, 132, 45, 7, 0, 117, 1, 132, 40, 37, 1,
-			1, 176, 126, 65, 1, 176, 175, 65, 132, 40, 6, 104, 57, 37, 3, 104, 35, 1, 2, 96, 37, 1, 1, 176, 61, 65, 132, 40, 36, 1,
-			73, 44, 117, 1, 1, 176, 61, 65, 132, 40, 6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 120, 1, 73, 44, 117, 1, 1, 176, 61, 65,
-			1, 176, 240, 65, 132, 40, 6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 121, 1, 1, 176, 49, 66, 132, 45, 7, 0, 6, 104, 57, 32,
-			3, 104, 119, 1, 2, 96, 122, 1, 132, 40, 6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 121, 1, 1, 176, 114, 66, 132, 45, 7, 0,
-			117, 1, 132, 40, 36, 1, 73, 44, 123, 1, 1, 176, 114, 66, 122, 1, 1, 0, 126, 18, 1, 176, 179, 66, 73, 44, 128, 1, 132, 40,
-			39, 1, 1, 176, 244, 66, 1, 176, 37, 67, 1, 176, 102, 67, 1, 176, 183, 67, 126, 18, 1, 176, 8, 68, 90, 32, 3, 104, 115, 18,
-			121, 1, 91, 32, 3, 104, 115, 18, 121, 1, 110, 32, 3, 104, 115, 18, 121, 1, 37, 18, 1, 176, 92, 37, 1, 176, 57, 68, 132, 40,
-			4, 104, 100, 10, 1, 176, 122, 68, 0, 176, 45, 202, 1, 0, 132, 40, 0, 176, 251, 225, 73, 44, 2, 104, 117, 1, 1, 0, 132, 40,
-			6, 104, 57, 37, 3, 104, 134, 1, 2, 96, 120, 1, 73, 44, 126, 1, 0, 176, 208, 197, 0, 176, 173, 211, 1, 176, 219, 68, 57, 37,
-			2, 104, 12, 96, 132, 40, 7, 104, 73, 44, 3, 104, 120, 1, 2, 96, 134, 1, 4, 96, 73, 44, 2, 104, 117, 1, 136, 40, 0, 176,
-			74, 196, 1, 176, 28, 69, 132, 45, 7, 0, 35, 1, 132, 40, 6, 104, 57, 37, 3, 104, 35, 1, 2, 96, 134, 1, 0, 176, 208, 197,
-			0, 176, 74, 196, 0, 161, 153, 55, 75, 1, 94, 170, 0, 162, 18, 2, 75, 9, 94, 170, 1, 176, 93, 69, 33, 243, 158, 69, 38, 5,
-			130, 40, 1, 176, 101, 35, 1, 176, 174, 32, 130, 40, 0, 176, 25, 235, 0, 176, 60, 226, 130, 40, 0, 176, 52, 219, 1, 176, 5, 26,
-			130, 40, 10, 104, 131, 45, 7, 0, 3, 104, 1, 176, 109, 22, 2, 13, 144, 201, 0, 176, 125, 226, 0, 176, 184, 0, 130, 40, 0, 176,
-			8, 230, 0, 176, 123, 1, 130, 40, 0, 176, 227, 251, 0, 176, 250, 187, 0, 161, 213, 3, 85, 5, 110, 173, 0, 162, 18, 34, 85, 37,
-			110, 173, 1, 47, 0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240, 122, 63, 0, 176, 106, 64, 96, 249, 155, 64, 108, 18,
-			0, 176, 184, 0, 136, 40, 1, 176, 109, 22, 1, 176, 151, 26, 124, 18, 0, 176, 58, 206, 8, 59, 3, 43, 0, 176, 25, 235, 0, 176,
-			249, 0, 1, 0, 124, 17, 0, 176, 60, 226, 38, 5, 0, 176, 58, 1, 1, 18, 37, 1, 1, 0, 38, 5, 0, 176, 97, 251, 127, 18,
-			0, 176, 104, 187, 8, 59, 3, 43, 0, 176, 159, 207, 0, 176, 104, 187, 1, 0, 127, 17, 0, 176, 185, 187, 111, 18, 0, 176, 250, 187,
-			0, 176, 250, 187, 0, 176, 41, 215, 0, 176, 33, 190, 0, 176, 36, 191, 1, 176, 151, 26, 0, 176, 23, 187, 38, 5, 1, 176, 101, 35,
-			0, 176, 104, 187, 0, 176, 188, 1, 0, 176, 117, 219, 0, 176, 249, 0, 0, 176, 82, 248, 0, 176, 251, 245, 1, 176, 87, 5, 0, 176,
-			124, 188, 1, 176, 95, 70, 0, 176, 21, 234, 1, 176, 89, 21, 0, 176, 114, 190, 1, 176, 176, 70, 0, 176, 36, 191, 2, 13, 176, 202,
-			28, 34, 0, 192, 140, 158, 29, 34, 0, 192, 225, 159, 30, 34, 0, 192, 128, 161, 31, 34, 0, 192, 37, 163, 32, 34, 0, 192, 139, 164,
-			33, 34, 0, 192, 58, 166, 96, 196, 3, 168, 0, 176, 254, 246, 0, 176, 25, 235, 0, 176, 25, 235, 38, 5, 0, 176, 58, 1, 0, 176,
-			123, 1, 0, 176, 123, 1, 1, 176, 87, 5, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 2, 57, 87, 57,
-			3, 41, 6, 104, 0, 55, 8, 39, 2, 104, 2, 96, 100, 1, 1, 47, 0, 176, 24, 63, 133, 41, 5, 104, 0, 176, 73, 63, 0, 240,
-			122, 63, 0, 176, 106, 64, 0, 240, 155, 64, 2, 57, 87, 57, 57, 34, 7, 104, 0, 55, 8, 55, 55, 32, 2, 104, 2, 96, 86, 1,
-			0, 145, 2, 7, 1, 0, 2, 57, 87, 57, 3, 41, 6, 104, 0, 55, 8, 39, 2, 104, 2, 96, 82, 1, 0, 145, 196, 2, 1, 0,
-			0, 145, 0, 4, 133, 41, 5, 104, 0, 176, 37, 69, 48, 242, 86, 69, 1, 0, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18,
-			77, 1, 98, 162, 0, 41, 192, 195, 250, 71, 48, 50, 47, 50, 49, 34, 0, 192, 2, 137, 0, 197, 46, 139, 2, 13, 139, 202, 0, 161,
-			25, 3, 169, 5, 84, 90, 0, 162, 5, 18, 9, 1, 84, 73, 133, 41, 5, 104, 0, 176, 223, 67, 0, 245, 110, 65, 1, 176, 1, 71,
-			0, 245, 110, 65, 2, 13, 190, 201, 2, 43, 69, 1, 0, 145, 138, 2, 1, 0, 89, 1, 1, 0, 124, 17, 1, 176, 50, 71, 2, 13,
-			144, 201, 0, 176, 74, 196, 13, 17, 0, 176, 249, 0, 13, 17, 0, 176, 60, 226, 0, 176, 60, 226, 111, 17, 0, 176, 123, 1, 111, 17,
-			0, 176, 104, 187, 0, 176, 59, 188, 111, 17, 0, 176, 250, 187, 131, 45, 8, 0, 3, 0, 47, 1, 1, 0, 0, 176, 23, 187, 36, 19,
-			1, 1, 1, 0, 0, 176, 185, 187, 0, 176, 170, 230, 0, 176, 80, 242, 38, 5, 1, 176, 115, 71, 1, 176, 220, 27, 1, 176, 45, 28,
-			4, 13, 144, 201, 131, 204, 139, 40, 1, 176, 180, 71, 1, 176, 245, 71, 1, 0, 8, 13, 144, 201, 131, 204, 138, 202, 131, 204, 1, 176,
-			54, 72, 7, 13, 204, 111, 201, 131, 204, 170, 0, 131, 1, 176, 135, 72, 0, 176, 74, 196, 2, 41, 1, 1, 0, 176, 74, 196, 0, 176,
-			214, 186, 0, 176, 95, 236, 0, 176, 249, 0, 38, 5, 0, 176, 170, 230, 2, 41, 57, 1, 38, 5, 0, 176, 170, 230, 0, 176, 143, 197,
-			0, 176, 250, 187, 136, 40, 137, 40, 2, 41, 58, 1, 0, 176, 66, 233, 38, 5, 0, 176, 33, 190, 38, 5, 0, 176, 114, 190, 38, 5,
-			1, 176, 248, 72, 0, 176, 111, 189, 1, 176, 105, 73, 0, 145, 255, 5, 1, 13, 0, 120, 1, 0, 0, 145, 128, 5, 1, 13, 0, 115,
-			1, 0, 2, 13, 190, 201, 0, 161, 213, 3, 79, 5, 98, 170, 0, 162, 18, 2, 79, 9, 98, 170, 1, 47, 0, 176, 15, 193, 0, 176,
-			64, 193, 128, 242, 167, 55, 2, 13, 144, 201, 0, 176, 74, 196, 2, 13, 144, 201, 2, 41, 1, 1, 0, 176, 74, 196, 132, 18, 0, 176,
-			214, 186, 4, 13, 144, 201, 131, 204, 0, 176, 153, 210, 8, 13, 144, 201, 131, 204, 138, 202, 131, 204, 1, 176, 54, 72, 112, 17, 0, 176,
-			60, 226, 112, 17, 0, 176, 249, 0, 2, 13, 168, 201, 1, 176, 186, 73, 38, 5, 0, 176, 58, 1, 2, 13, 168, 201, 2, 41, 1, 1,
-			38, 5, 1, 176, 186, 73, 0, 176, 123, 206, 40, 18, 0, 176, 104, 187, 1, 176, 166, 35, 136, 40, 137, 40, 2, 41, 58, 1, 1, 176,
-			166, 35, 1, 176, 176, 70, 2, 13, 129, 202, 0, 161, 25, 3, 71, 1, 222, 185, 138, 41, 46, 1, 1, 176, 251, 73, 128, 247, 178, 6,
-			0, 145, 146, 5, 2, 13, 131, 202, 1, 0, 2, 13, 178, 202, 2, 41, 38, 1, 125, 32, 4, 104, 30, 10, 1, 176, 60, 74, 126, 32,
-			1, 176, 187, 64, 127, 32, 1, 176, 125, 74, 1, 176, 190, 74, 124, 18, 38, 5, 0, 176, 58, 1, 0, 176, 25, 235, 2, 13, 168, 201,
-			1, 176, 186, 73, 0, 176, 214, 186, 0, 176, 202, 225, 1, 176, 239, 74, 0, 176, 227, 251, 0, 176, 205, 188, 0, 176, 222, 231, 0, 176,
-			63, 247, 1, 176, 176, 38, 1, 176, 48, 75, 1, 176, 161, 75, 1, 176, 242, 75, 1, 176, 173, 37, 1, 176, 67, 76, 1, 176, 164, 76,
-			1, 176, 245, 76, 138, 41, 46, 1, 6, 106, 16, 223, 199, 4, 16, 223, 248, 4, 16, 223, 41, 5, 16, 223, 90, 5, 16, 223, 139, 5,
-			16, 223, 188, 5, 2, 39, 224, 236, 237, 5, 47, 48, 48, 48, 49, 32, 0, 176, 136, 11, 0, 176, 185, 11, 0, 145, 206, 0, 0, 162,
-			18, 2, 0, 32, 0, 0, 1, 0, 0, 145, 180, 1, 0, 162, 18, 34, 83, 41, 84, 65, 1, 0, 0, 145, 220, 1, 0, 162, 146, 50,
-			83, 41, 98, 162, 1, 0, 0, 145, 226, 6, 0, 162, 210, 19, 73, 33, 84, 65, 1, 0, 0, 145, 245, 6, 0, 162, 146, 18, 79, 33,
-			98, 164, 1, 0, 0, 145, 21, 6, 0, 162, 146, 18, 77, 33, 98, 162, 1, 0, 0, 145, 106, 5, 0, 162, 18, 2, 75, 33, 84, 65,
-			1, 0, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 33, 98, 162, 32, 195, 61, 83, 0, 161, 25, 3, 77, 1, 106, 172,
-			0, 162, 18, 2, 77, 33, 106, 172, 0, 192, 61, 88, 0, 162, 18, 34, 73, 41, 84, 73, 31, 34, 5, 104, 0, 176, 6, 53, 0, 240,
-			120, 51, 0, 176, 201, 53, 0, 240, 120, 51, 0, 145, 2, 7, 0, 161, 213, 3, 79, 9, 98, 172, 0, 162, 18, 2, 79, 41, 98, 172,
-			1, 0, 0, 162, 136, 20, 73, 45, 98, 170, 31, 34, 9, 104, 0, 161, 25, 3, 71, 1, 98, 170, 1, 176, 70, 77, 0, 240, 178, 6,
-			1, 176, 119, 77, 0, 240, 178, 6, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 33, 84, 73, 133, 41, 5, 104, 0, 176,
-			223, 67, 0, 240, 110, 65, 0, 176, 114, 68, 0, 240, 110, 65, 0, 162, 25, 18, 13, 33, 98, 170, 133, 41, 5, 104, 0, 176, 201, 71,
-			0, 240, 250, 71, 0, 176, 167, 74, 0, 240, 250, 71, 0, 161, 25, 3, 75, 33, 232, 171, 0, 162, 18, 34, 75, 9, 232, 171, 133, 41,
-			5, 104, 0, 176, 148, 77, 0, 240, 9, 75, 0, 176, 197, 77, 0, 240, 9, 75, 136, 40, 130, 40, 35, 34, 1, 1, 128, 40, 0, 176,
-			254, 246, 0, 176, 214, 186, 0, 176, 25, 235, 38, 5, 0, 176, 58, 1, 0, 176, 123, 1, 0, 176, 250, 187, 0, 161, 213, 26, 77, 5,
-			96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 1, 192, 168, 77, 1, 192, 168, 77, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162,
-			146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 66, 119, 87, 41, 0, 192, 113, 120, 55, 34, 0, 192, 115, 123, 96, 196, 255, 124, 0, 176,
-			134, 249, 0, 176, 249, 0, 0, 176, 23, 187, 0, 176, 104, 187, 0, 176, 143, 197, 1, 176, 105, 73, 1, 176, 248, 72, 1, 176, 215, 44,
-			0, 176, 185, 253, 0, 162, 18, 2, 75, 1, 84, 65, 0, 192, 192, 130, 38, 5, 58, 32, 0, 208, 4, 199, 0, 176, 82, 248, 38, 5,
-			0, 176, 121, 245, 0, 176, 58, 206, 112, 17, 0, 176, 184, 205, 0, 176, 23, 187, 13, 16, 1, 176, 202, 41, 2, 13, 153, 201, 1, 176,
-			83, 4, 1, 176, 235, 77, 1, 176, 60, 78, 2, 13, 137, 202, 1, 176, 125, 78, 1, 176, 218, 36, 1, 176, 190, 78, 0, 176, 177, 212,
-			130, 40, 136, 40, 1, 176, 44, 22, 1, 176, 151, 26, 0, 176, 251, 225, 1, 176, 239, 78, 0, 176, 123, 1, 0, 176, 104, 187, 0, 176,
-			36, 252, 0, 176, 250, 187, 0, 161, 25, 3, 179, 1, 110, 189, 0, 162, 146, 18, 179, 1, 110, 189, 193, 195, 48, 79, 0, 176, 55, 210,
-			0, 176, 202, 225, 38, 5, 0, 176, 121, 245, 38, 5, 58, 32, 0, 208, 4, 199, 0, 176, 58, 1, 1, 176, 24, 21, 1, 176, 66, 81,
-			1, 176, 131, 81, 1, 176, 196, 81, 13, 16, 0, 176, 60, 226, 0, 176, 23, 187, 0, 176, 58, 206, 1, 176, 5, 82, 1, 176, 5, 82,
-			1, 176, 209, 3, 1, 176, 209, 3, 0, 176, 123, 1, 0, 176, 251, 245, 0, 176, 66, 233, 0, 176, 250, 187, 2, 13, 137, 202, 1, 176,
-			70, 82, 4, 13, 137, 202, 144, 203, 1, 176, 135, 82, 38, 5, 0, 176, 53, 224, 38, 5, 1, 176, 216, 82, 38, 5, 0, 176, 188, 201,
-			4, 13, 137, 202, 170, 201, 38, 5, 0, 176, 185, 253, 1, 176, 41, 83, 1, 176, 122, 83, 38, 5, 0, 176, 170, 230, 38, 5, 37, 18,
-			0, 176, 97, 251, 38, 5, 0, 176, 249, 205, 38, 5, 109, 18, 0, 176, 249, 205, 0, 176, 60, 226, 0, 176, 182, 219, 1, 176, 44, 22,
-			35, 18, 0, 176, 47, 212, 1, 176, 48, 33, 114, 18, 0, 176, 196, 233, 0, 176, 227, 251, 40, 18, 0, 176, 250, 187, 1, 176, 235, 83,
-			117, 18, 0, 176, 134, 249, 1, 176, 44, 84, 119, 18, 1, 176, 44, 84, 0, 176, 212, 223, 121, 18, 0, 176, 212, 223, 0, 176, 114, 190,
-			123, 18, 0, 176, 114, 190, 0, 176, 10, 254, 125, 18, 0, 176, 10, 254, 1, 176, 109, 84, 127, 18, 1, 176, 109, 84, 1, 176, 174, 84,
-			129, 18, 1, 176, 174, 84, 0, 176, 36, 191, 0, 176, 134, 249, 2, 13, 35, 109, 0, 162, 18, 34, 75, 9, 84, 65, 1, 176, 255, 84,
-			2, 13, 35, 110, 0, 162, 146, 50, 77, 9, 98, 162, 6, 106, 0, 208, 177, 38, 0, 208, 242, 38, 0, 208, 51, 39, 0, 208, 116, 39,
-			0, 208, 181, 39, 0, 208, 246, 39, 1, 176, 64, 85, 3, 13, 178, 201, 0, 35, 0, 162, 18, 98, 81, 13, 110, 189, 1, 176, 129, 85,
-			3, 13, 139, 197, 0, 35, 0, 162, 148, 50, 75, 13, 110, 189, 6, 106, 0, 208, 111, 46, 0, 208, 160, 46, 0, 208, 209, 46, 0, 208,
-			2, 47, 0, 208, 51, 47, 0, 208, 100, 47, 1, 176, 194, 85, 2, 13, 35, 108, 144, 193, 149, 148, 3, 13, 108, 116, 0, 35, 0, 161,
-			213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 33, 195, 3, 86, 2, 13, 35, 114, 1, 176, 93, 88, 0, 240, 178, 6,
-			0, 161, 213, 26, 75, 5, 84, 90, 0, 162, 18, 34, 73, 9, 84, 74, 0, 192, 120, 51, 0, 161, 213, 3, 77, 9, 98, 170, 0, 162,
-			18, 2, 77, 9, 98, 170, 133, 41, 0, 192, 108, 54, 0, 197, 167, 55, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9,
-			46, 173, 133, 41, 0, 192, 122, 63, 96, 201, 155, 64, 5, 146, 248, 97, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 248, 98, 1, 0,
-			5, 146, 120, 99, 1, 0, 5, 146, 248, 99, 5, 147, 120, 100, 1, 0, 4, 146, 20, 141, 5, 147, 248, 100, 1, 0, 5, 146, 120, 98,
-			1, 0, 0, 176, 254, 246, 67, 50, 80, 34, 50, 10, 2, 96, 70, 10, 0, 176, 9, 196, 0, 176, 182, 219, 0, 176, 249, 0, 38, 5,
-			58, 37, 0, 208, 252, 30, 67, 50, 80, 34, 4, 104, 50, 10, 1, 176, 25, 27, 70, 10, 0, 176, 97, 251, 1, 0, 117, 50, 68, 34,
-			40, 10, 2, 96, 70, 10, 0, 176, 196, 233, 117, 50, 68, 34, 55, 10, 2, 96, 70, 10, 0, 176, 104, 187, 117, 50, 68, 34, 60, 10,
-			2, 96, 70, 10, 193, 179, 45, 28, 117, 50, 68, 34, 60, 10, 2, 96, 90, 10, 1, 176, 94, 89, 117, 50, 68, 50, 67, 50, 80, 34,
-			60, 10, 2, 96, 70, 10, 0, 176, 52, 219, 1, 176, 159, 89, 1, 176, 224, 89, 0, 176, 33, 190, 1, 176, 156, 6, 0, 176, 23, 253,
-			0, 176, 114, 190, 0, 176, 195, 190, 1, 176, 49, 90, 0, 176, 36, 191, 0, 176, 149, 191, 1, 176, 130, 90, 1, 176, 211, 90, 0, 176,
-			137, 200, 0, 176, 111, 189, 1, 176, 105, 73, 0, 176, 192, 189, 0, 176, 63, 247, 0, 176, 44, 231, 1, 176, 52, 91, 1, 176, 3, 1,
-			0, 176, 223, 202, 1, 176, 54, 72, 1, 176, 149, 91, 1, 176, 245, 76, 1, 176, 230, 91, 1, 176, 55, 92, 0, 176, 125, 216, 1, 176,
-			135, 72, 0, 176, 222, 231, 97, 180, 136, 92, 0, 161, 15, 19, 83, 1, 238, 188, 0, 162, 146, 18, 83, 1, 110, 189, 81, 192, 201, 92,
-			0, 161, 8, 19, 77, 1, 98, 170, 1, 176, 60, 93, 0, 161, 200, 19, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 33, 195,
-			125, 93, 0, 161, 200, 19, 77, 1, 238, 188, 161, 192, 249, 94, 2, 13, 151, 201, 0, 161, 200, 19, 77, 5, 98, 170, 0, 162, 15, 50,
-			77, 9, 98, 170, 1, 192, 181, 95, 0, 161, 200, 51, 85, 1, 246, 221, 0, 162, 8, 18, 51, 37, 246, 221, 81, 192, 30, 97, 0, 161,
-			213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 160, 192, 206, 174, 0, 161, 200, 58, 75, 1, 84, 115, 0, 162, 136, 50,
-			77, 9, 98, 162, 0, 176, 162, 42, 0, 161, 8, 28, 77, 5, 158, 162, 0, 162, 136, 18, 77, 1, 94, 162, 133, 41, 81, 192, 168, 77,
-			96, 196, 47, 111, 5, 146, 248, 97, 1, 0, 5, 146, 120, 98, 5, 147, 248, 100, 1, 0, 5, 146, 120, 99, 1, 0, 4, 146, 20, 141,
-			1, 0, 4, 146, 20, 141, 5, 147, 248, 100, 1, 0, 4, 146, 20, 141, 5, 147, 248, 100, 1, 0, 5, 146, 248, 97, 1, 0, 0, 145,
-			207, 32, 1, 0, 0, 145, 203, 32, 1, 0, 0, 145, 196, 32, 1, 0, 0, 145, 249, 32, 1, 0, 0, 145, 2, 33, 1, 0, 0, 145,
-			221, 32, 0, 176, 139, 235, 0, 145, 54, 33, 0, 176, 10, 240, 0, 161, 200, 48, 75, 1, 84, 115, 1, 0, 0, 145, 10, 33, 1, 176,
-			16, 0, 5, 146, 212, 137, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 248, 98, 1, 0, 5, 146, 120, 99, 5, 147, 120, 100, 1, 0,
-			5, 146, 248, 99, 1, 0, 4, 146, 20, 141, 1, 0, 5, 146, 120, 98, 1, 0, 0, 145, 207, 32, 0, 176, 186, 245, 0, 145, 203, 32,
-			0, 176, 23, 187, 0, 145, 196, 32, 1, 176, 149, 98, 0, 145, 249, 32, 1, 0, 0, 145, 2, 33, 1, 0, 0, 145, 221, 32, 0, 176,
-			159, 207, 0, 145, 54, 33, 0, 176, 10, 240, 0, 145, 242, 32, 0, 176, 251, 220, 0, 145, 228, 32, 1, 176, 230, 98, 0, 145, 10, 33,
-			1, 176, 16, 0, 5, 146, 248, 97, 1, 0, 5, 146, 248, 98, 1, 0, 5, 146, 248, 97, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146,
-			248, 98, 1, 0, 5, 146, 248, 97, 1, 0, 5, 146, 120, 98, 1, 0, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1,
-			98, 162, 0, 192, 6, 172, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 0, 192, 226, 111, 0, 192, 50, 114, 0, 161, 213, 3, 75, 1,
-			238, 172, 0, 162, 146, 18, 75, 5, 110, 189, 133, 41, 0, 192, 0, 0, 31, 34, 0, 192, 1, 122, 34, 50, 51, 34, 0, 192, 113, 120,
-			55, 34, 0, 192, 115, 123, 14, 34, 96, 196, 255, 124, 0, 192, 52, 126, 0, 161, 213, 19, 75, 1, 84, 115, 0, 162, 210, 18, 73, 5,
-			84, 65, 133, 41, 0, 192, 0, 0, 0, 192, 58, 105, 0, 161, 213, 3, 81, 1, 98, 170, 0, 162, 146, 18, 77, 5, 98, 162, 133, 41,
-			0, 192, 0, 0, 0, 192, 34, 110, 1, 176, 209, 3, 1, 176, 131, 34, 0, 176, 21, 234, 1, 176, 39, 99, 1, 176, 168, 99, 0, 176,
-			74, 196, 0, 176, 222, 231, 1, 176, 57, 100, 0, 176, 23, 187, 0, 176, 114, 190, 1, 176, 154, 100, 1, 176, 105, 73, 38, 5, 49, 52,
-			68, 36, 4, 104, 75, 10, 0, 176, 249, 205, 0, 176, 58, 1, 1, 176, 27, 101, 0, 176, 192, 189, 2, 41, 68, 1, 1, 176, 172, 101,
-			0, 176, 123, 1, 1, 176, 253, 101, 0, 176, 188, 201, 0, 176, 107, 254, 1, 176, 110, 102, 49, 52, 68, 36, 0, 176, 66, 233, 0, 176,
-			250, 187, 1, 176, 207, 102, 0, 176, 149, 191, 0, 176, 205, 188, 1, 176, 48, 103, 0, 176, 77, 241, 0, 176, 124, 188, 5, 146, 212, 137,
-			1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 248, 99, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 248, 98,
-			1, 0, 5, 146, 248, 98, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 120, 98, 1, 0, 5, 146, 248, 97, 1, 0, 0, 162, 146, 50,
-			77, 9, 98, 162, 6, 106, 0, 208, 177, 38, 0, 208, 242, 38, 0, 208, 51, 39, 0, 208, 116, 39, 0, 208, 181, 39, 0, 208, 246, 39,
-			138, 41, 1, 176, 198, 19, 0, 176, 104, 40, 0, 162, 25, 50, 87, 9, 230, 171, 6, 106, 0, 208, 111, 46, 0, 208, 160, 46, 0, 208,
-			209, 46, 0, 208, 2, 47, 0, 208, 51, 47, 0, 208, 100, 47, 0, 39, 0, 176, 231, 47, 138, 41, 1, 176, 113, 103, 1, 0, 0, 145,
-			192, 0, 31, 36, 0, 208, 98, 22, 0, 176, 205, 24, 2, 41, 18, 104, 6, 106, 0, 208, 116, 32, 0, 208, 181, 32, 0, 208, 246, 32,
-			0, 208, 55, 33, 0, 208, 104, 33, 0, 208, 185, 33, 32, 238, 234, 33, 0, 176, 11, 34, 0, 162, 35, 18, 0, 0, 0, 0, 0, 176,
-			44, 34, 1, 0, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 0, 192, 113, 103, 0, 161, 213, 26, 75, 1,
-			84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 0, 192, 29, 175, 0, 162, 18, 2, 75, 1, 84, 65, 0, 192, 192, 130, 0, 161, 21, 21,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 129, 194, 168, 77, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1,
-			98, 162, 0, 192, 22, 106, 2, 161, 213, 3, 73, 5, 226, 155, 2, 162, 210, 19, 73, 5, 226, 155, 177, 196, 162, 103, 2, 161, 213, 3,
-			73, 5, 226, 155, 2, 162, 210, 19, 73, 5, 226, 155, 0, 197, 237, 178, 3, 13, 201, 116, 0, 149, 0, 161, 213, 3, 85, 1, 246, 221,
-			1, 192, 81, 104, 4, 13, 201, 116, 104, 149, 0, 161, 213, 3, 85, 1, 246, 221, 1, 197, 101, 106, 2, 13, 149, 201, 0, 161, 25, 3,
-			85, 1, 246, 221, 65, 193, 56, 57, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 133, 41, 32, 195, 46, 146,
-			32, 195, 46, 146, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 97, 196, 53, 109, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 192, 195, 6, 172, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171,
-			1, 192, 83, 111, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 1, 192, 78, 114, 1, 176, 113, 103, 68, 34,
-			1, 176, 134, 117, 0, 176, 184, 0, 68, 34, 0, 176, 82, 198, 0, 176, 117, 219, 0, 176, 148, 228, 1, 176, 199, 117, 68, 34, 1, 176,
-			5, 26, 0, 176, 78, 207, 0, 176, 99, 204, 0, 176, 56, 245, 0, 176, 44, 216, 68, 34, 0, 176, 204, 196, 50, 34, 1, 176, 101, 35,
-			0, 176, 58, 1, 1, 176, 22, 5, 1, 176, 24, 118, 1, 176, 89, 118, 1, 176, 170, 118, 1, 176, 11, 119, 1, 176, 92, 119, 1, 176,
-			173, 119, 68, 34, 0, 176, 5, 205, 0, 176, 196, 233, 1, 176, 14, 120, 0, 176, 122, 215, 1, 176, 110, 102, 68, 34, 1, 176, 45, 28,
-			0, 176, 250, 187, 1, 176, 79, 120, 1, 176, 245, 76, 1, 176, 160, 120, 0, 176, 115, 237, 1, 176, 1, 121, 1, 176, 98, 121, 68, 34,
-			0, 176, 253, 235, 1, 176, 95, 70, 1, 176, 64, 23, 1, 176, 195, 121, 1, 176, 20, 122, 1, 176, 101, 122, 0, 176, 185, 253, 0, 176,
-			58, 1, 0, 176, 25, 235, 1, 176, 151, 26, 1, 176, 182, 122, 1, 176, 87, 5, 0, 162, 25, 18, 13, 1, 98, 170, 2, 47, 9, 104,
-			0, 161, 25, 3, 15, 0, 92, 170, 0, 162, 25, 50, 13, 5, 92, 170, 0, 176, 26, 80, 176, 244, 61, 83, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 97, 196, 247, 122, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162,
-			32, 195, 188, 132, 0, 161, 25, 3, 77, 1, 106, 172, 0, 162, 18, 2, 77, 1, 106, 172, 1, 192, 40, 45, 0, 161, 25, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 192, 195, 250, 71, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65,
-			0, 192, 58, 105, 2, 13, 178, 201, 0, 162, 23, 114, 81, 13, 114, 205, 2, 47, 5, 104, 0, 208, 211, 42, 0, 176, 244, 42, 6, 106,
-			0, 208, 53, 43, 0, 208, 150, 43, 0, 208, 231, 43, 0, 208, 72, 44, 0, 208, 169, 44, 0, 208, 26, 45, 0, 176, 156, 45, 0, 162,
-			148, 50, 75, 13, 110, 189, 2, 47, 7, 104, 0, 161, 25, 3, 79, 1, 42, 172, 0, 176, 46, 46, 6, 106, 0, 208, 111, 46, 0, 208,
-			160, 46, 0, 208, 209, 46, 0, 208, 2, 47, 0, 208, 51, 47, 0, 208, 100, 47, 32, 179, 8, 48, 6, 106, 0, 208, 105, 30, 0, 208,
-			154, 30, 0, 208, 203, 30, 0, 208, 252, 30, 0, 208, 45, 31, 0, 208, 94, 31, 32, 238, 143, 31, 0, 176, 230, 191, 0, 161, 213, 3,
-			75, 1, 238, 172, 0, 162, 146, 18, 75, 1, 110, 189, 2, 47, 0, 162, 146, 18, 75, 1, 238, 172, 32, 195, 66, 119, 0, 161, 227, 83,
-			85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 2, 47, 5, 104, 0, 176, 133, 62, 208, 242, 73, 57, 138, 41, 5, 104, 0, 176,
-			231, 62, 208, 242, 73, 57, 0, 176, 231, 62, 208, 242, 73, 57, 1, 0, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9,
-			46, 173, 1, 47, 0, 176, 24, 63, 0, 176, 106, 64, 32, 243, 155, 64, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 124, 1, 138, 41,
-			138, 42, 2, 104, 124, 1, 1, 176, 174, 32, 1, 176, 101, 35, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 113, 1, 138, 41, 138, 42,
-			2, 104, 113, 1, 1, 176, 235, 77, 0, 176, 144, 222, 144, 40, 2, 104, 18, 96, 136, 57, 138, 45, 6, 0, 7, 104, 87, 57, 8, 57,
-			55, 50, 64, 34, 2, 104, 125, 1, 139, 40, 2, 104, 109, 1, 138, 41, 138, 42, 2, 104, 109, 1, 0, 176, 25, 235, 0, 176, 60, 226,
-			1, 176, 202, 41, 0, 176, 205, 188, 129, 40, 136, 40, 1, 176, 44, 22, 0, 176, 1, 248, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104,
-			111, 1, 138, 41, 138, 42, 2, 104, 111, 1, 0, 176, 227, 251, 0, 176, 59, 188, 2, 13, 175, 201, 1, 176, 135, 123, 144, 40, 2, 104,
-			8, 96, 139, 40, 2, 104, 110, 1, 138, 41, 138, 42, 2, 104, 110, 1, 0, 176, 8, 230, 0, 176, 123, 1, 0, 161, 222, 19, 87, 1,
-			246, 204, 0, 162, 18, 2, 85, 1, 118, 205, 133, 41, 0, 197, 1, 122, 0, 192, 1, 122, 1, 47, 0, 176, 35, 62, 0, 161, 213, 3,
-			85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 2, 47, 5, 104, 0, 176, 133, 62, 192, 243, 1, 122, 0, 176, 231, 62, 192, 243,
-			1, 122, 2, 44, 2, 43, 16, 1, 0, 145, 119, 0, 1, 0, 1, 176, 174, 32, 57, 34, 0, 176, 249, 205, 0, 176, 173, 211, 1, 176,
-			27, 37, 1, 176, 202, 41, 0, 176, 56, 245, 0, 176, 151, 214, 1, 176, 200, 123, 1, 176, 9, 124, 1, 176, 74, 124, 1, 176, 166, 35,
-			1, 176, 235, 77, 1, 176, 1, 39, 0, 176, 130, 208, 0, 176, 208, 197, 0, 161, 25, 3, 173, 1, 238, 188, 0, 162, 146, 18, 173, 1,
-			110, 189, 192, 195, 226, 242, 0, 161, 222, 19, 87, 1, 246, 204, 0, 162, 18, 2, 85, 1, 118, 205, 133, 41, 0, 197, 1, 122, 0, 192,
-			1, 122, 0, 161, 213, 3, 85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 1, 47, 0, 176, 35, 62, 0, 176, 231, 62, 192, 243,
-			1, 122, 13, 32, 23, 3, 0, 176, 202, 225, 35, 32, 23, 3, 108, 17, 0, 176, 184, 0, 30, 32, 23, 3, 13, 17, 0, 176, 60, 226,
-			30, 32, 23, 3, 0, 176, 60, 226, 30, 32, 23, 3, 0, 176, 249, 0, 37, 32, 23, 3, 1, 176, 174, 32, 32, 32, 23, 3, 0, 176,
-			123, 1, 32, 32, 23, 3, 0, 176, 104, 187, 40, 32, 23, 3, 0, 176, 188, 1, 2, 39, 23, 3, 2, 41, 23, 4, 0, 176, 33, 190,
-			0, 176, 16, 251, 2, 39, 23, 3, 2, 41, 23, 4, 0, 176, 188, 201, 2, 39, 23, 3, 2, 41, 23, 4, 0, 176, 14, 189, 0, 176,
-			234, 200, 1, 176, 159, 89, 1, 176, 159, 89, 13, 17, 107, 34, 1, 176, 139, 124, 1, 176, 159, 89, 13, 17, 0, 176, 249, 205, 128, 40,
-			0, 176, 74, 196, 0, 176, 117, 219, 0, 176, 74, 196, 128, 40, 0, 176, 74, 196, 0, 176, 144, 236, 1, 176, 204, 124, 1, 176, 83, 4,
-			130, 40, 0, 176, 25, 235, 0, 176, 249, 0, 59, 34, 5, 104, 224, 236, 85, 26, 0, 176, 173, 211, 60, 34, 5, 104, 32, 238, 74, 27,
-			0, 176, 78, 197, 1, 176, 213, 4, 0, 176, 170, 230, 0, 176, 124, 188, 130, 40, 0, 176, 159, 207, 1, 176, 48, 33, 0, 176, 250, 187,
-			1, 176, 131, 34, 0, 176, 44, 216, 1, 176, 49, 90, 1, 176, 13, 125, 2, 41, 55, 1, 1, 176, 94, 125, 138, 41, 122, 1, 6, 106,
-			0, 208, 205, 27, 0, 208, 254, 27, 0, 208, 47, 28, 0, 208, 96, 28, 0, 208, 145, 28, 0, 208, 210, 28, 0, 39, 0, 176, 19, 29,
-			1, 176, 175, 125, 138, 41, 59, 1, 0, 145, 192, 0, 28, 32, 224, 236, 172, 24, 4, 96, 2, 39, 128, 237, 172, 24, 1, 176, 240, 125,
-			0, 145, 91, 1, 0, 176, 230, 191, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 133, 41, 0, 197, 206, 174,
-			55, 34, 0, 192, 60, 104, 128, 199, 113, 103, 0, 161, 21, 28, 75, 9, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176,
-			10, 54, 133, 41, 5, 104, 0, 176, 59, 54, 0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49, 32, 243, 167, 55, 0, 176, 118, 55,
-			32, 243, 167, 55, 0, 162, 25, 18, 13, 1, 98, 170, 133, 41, 5, 104, 0, 176, 201, 71, 0, 240, 250, 71, 0, 176, 167, 74, 0, 240,
-			46, 139, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 231, 56, 133, 41, 5, 104, 0, 176, 24, 57,
-			0, 240, 194, 115, 0, 176, 215, 59, 96, 249, 194, 115, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 133, 41,
-			0, 192, 66, 119, 0, 192, 255, 124, 0, 176, 86, 0, 0, 176, 58, 1, 0, 176, 134, 249, 0, 176, 60, 226, 1, 176, 209, 3, 0, 176,
-			104, 187, 0, 176, 250, 187, 0, 176, 188, 235, 0, 176, 33, 190, 0, 176, 195, 190, 0, 176, 133, 209, 0, 161, 213, 3, 77, 1, 98, 170,
-			0, 162, 146, 18, 77, 1, 98, 162, 1, 192, 82, 39, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 193, 195, 129, 30, 1, 192, 129, 30,
-			134, 40, 50, 36, 11, 104, 14, 54, 6, 0, 108, 38, 6, 0, 6, 104, 136, 45, 6, 0, 3, 104, 85, 10, 1, 0, 60, 37, 141, 40,
-			13, 104, 131, 40, 6, 104, 50, 10, 68, 36, 2, 104, 246, 12, 1, 0, 140, 43, 138, 43, 3, 104, 50, 10, 1, 0, 109, 33, 3, 0,
-			11, 104, 140, 44, 140, 43, 8, 104, 14, 38, 6, 0, 5, 104, 141, 40, 3, 104, 50, 10, 1, 0, 140, 44, 138, 44, 8, 104, 138, 43,
-			14, 38, 6, 0, 86, 38, 9, 0, 2, 104, 50, 10, 14, 36, 86, 38, 6, 0, 136, 45, 6, 0, 90, 10, 132, 40, 142, 40, 11, 104,
-			140, 43, 138, 43, 8, 104, 140, 45, 6, 0, 138, 45, 6, 0, 3, 104, 55, 10, 1, 0, 140, 44, 140, 43, 43, 104, 138, 44, 138, 43,
-			40, 104, 136, 43, 3, 0, 37, 104, 57, 38, 6, 0, 3, 0, 51, 37, 3, 0, 18, 104, 34, 36, 3, 0, 110, 36, 3, 0, 13, 104,
-			131, 40, 11, 104, 141, 40, 9, 104, 138, 43, 3, 0, 138, 45, 6, 0, 3, 0, 3, 104, 55, 10, 1, 0, 51, 37, 12, 104, 132, 40,
-			68, 36, 3, 0, 3, 104, 45, 10, 1, 0, 132, 40, 68, 36, 3, 104, 37, 10, 1, 0, 138, 44, 89, 36, 138, 45, 6, 0, 14, 38,
-			9, 0, 50, 10, 91, 37, 140, 43, 138, 43, 50, 10, 51, 53, 110, 53, 34, 37, 16, 104, 138, 43, 5, 104, 141, 40, 3, 104, 55, 10,
-			1, 0, 136, 40, 3, 104, 60, 10, 1, 0, 140, 43, 138, 43, 3, 104, 55, 10, 1, 0, 68, 36, 50, 10, 138, 43, 47, 54, 6, 0,
-			72, 38, 6, 0, 12, 104, 14, 54, 9, 0, 108, 54, 9, 0, 109, 38, 9, 0, 5, 104, 141, 40, 3, 104, 55, 10, 1, 0, 138, 43,
-			60, 38, 6, 0, 14, 54, 9, 0, 108, 38, 9, 0, 55, 10, 60, 36, 14, 38, 9, 0, 9, 104, 57, 38, 6, 0, 3, 0, 5, 104,
-			140, 45, 6, 0, 2, 104, 50, 10, 49, 52, 81, 36, 14, 38, 6, 0, 5, 104, 111, 33, 3, 104, 50, 10, 1, 0, 132, 40, 141, 40,
-			3, 0, 19, 104, 49, 36, 3, 0, 81, 36, 3, 0, 14, 104, 68, 36, 3, 0, 138, 45, 6, 0, 3, 0, 8, 104, 140, 43, 3, 0,
-			140, 45, 6, 0, 3, 0, 2, 104, 85, 10, 1, 0, 60, 38, 8, 0, 40, 38, 10, 0, 3, 104, 175, 10, 1, 0, 40, 38, 10, 0,
-			60, 37, 16, 104, 136, 40, 3, 0, 13, 104, 47, 36, 3, 0, 72, 36, 3, 0, 8, 104, 89, 36, 3, 0, 91, 36, 3, 0, 3, 104,
-			162, 10, 1, 0, 72, 37, 14, 36, 7, 104, 86, 38, 6, 0, 3, 0, 3, 104, 175, 10, 1, 0, 76, 37, 140, 43, 138, 43, 3, 104,
-			90, 10, 1, 0, 140, 43, 14, 38, 6, 0, 86, 38, 9, 0, 3, 104, 90, 10, 1, 0, 140, 44, 140, 43, 16, 104, 138, 44, 138, 43,
-			13, 104, 51, 37, 3, 0, 34, 37, 3, 0, 110, 37, 3, 0, 4, 104, 90, 10, 1, 0, 3, 96, 60, 10, 1, 0, 134, 40, 21, 104,
-			80, 10, 136, 40, 2, 104, 90, 10, 138, 43, 138, 45, 6, 0, 138, 45, 9, 0, 2, 104, 70, 10, 108, 36, 139, 43, 2, 104, 120, 10,
-			138, 43, 14, 38, 6, 0, 2, 104, 112, 10, 14, 52, 109, 36, 112, 10, 138, 43, 14, 38, 6, 0, 16, 104, 141, 40, 8, 104, 140, 44,
-			140, 43, 3, 104, 90, 10, 2, 96, 112, 10, 1, 0, 142, 40, 3, 0, 132, 40, 3, 104, 70, 10, 1, 0, 86, 36, 14, 38, 6, 0,
-			6, 104, 132, 40, 3, 0, 3, 104, 112, 10, 1, 0, 138, 43, 109, 54, 6, 0, 108, 54, 6, 0, 14, 38, 6, 0, 112, 10, 140, 44,
-			140, 43, 42, 104, 138, 44, 138, 43, 39, 104, 51, 37, 3, 0, 34, 37, 3, 0, 110, 37, 3, 0, 60, 37, 3, 0, 12, 104, 140, 45,
-			6, 0, 3, 0, 3, 104, 90, 10, 1, 0, 138, 45, 6, 0, 2, 104, 60, 10, 14, 96, 60, 37, 3, 0, 132, 40, 10, 104, 51, 37,
-			3, 0, 34, 37, 3, 0, 110, 37, 3, 0, 3, 104, 60, 10, 1, 0, 51, 37, 134, 44, 3, 104, 90, 10, 1, 0, 107, 37, 138, 43,
-			138, 45, 6, 0, 14, 38, 9, 0, 3, 104, 55, 10, 1, 0, 14, 52, 108, 36, 4, 104, 141, 40, 2, 104, 112, 10, 60, 37, 140, 43,
-			138, 43, 3, 104, 90, 10, 1, 0, 138, 43, 37, 38, 6, 0, 3, 104, 112, 10, 1, 0, 86, 36, 14, 38, 6, 0, 50, 38, 9, 0,
-			4, 104, 141, 40, 2, 104, 90, 10, 60, 37, 138, 43, 14, 104, 14, 38, 6, 0, 3, 0, 108, 38, 6, 0, 3, 0, 109, 38, 6, 0,
-			3, 0, 3, 104, 50, 10, 2, 96, 80, 10, 60, 37, 140, 43, 138, 43, 65, 10, 34, 53, 51, 53, 110, 37, 5, 104, 65, 10, 14, 36,
-			2, 104, 120, 10, 68, 36, 9, 104, 51, 37, 3, 0, 34, 37, 3, 0, 110, 37, 3, 0, 2, 104, 70, 10, 138, 43, 138, 45, 6, 0,
-			12, 104, 60, 36, 3, 0, 9, 104, 34, 36, 3, 0, 51, 37, 3, 0, 110, 37, 3, 0, 2, 104, 55, 10, 1, 0, 11, 5, 0, 176,
-			86, 205, 2, 13, 153, 201, 16, 52, 34, 36, 1, 13, 0, 32, 25, 10, 50, 36, 7, 10, 138, 44, 136, 40, 7, 10, 37, 37, 136, 40,
-			7, 10, 2, 43, 13, 1, 0, 176, 135, 0, 0, 176, 74, 196, 4, 13, 144, 201, 175, 204, 1, 176, 33, 126, 0, 145, 162, 39, 0, 176,
-			97, 251, 0, 145, 202, 38, 0, 176, 97, 251, 38, 5, 0, 176, 204, 196, 0, 145, 162, 39, 0, 176, 249, 0, 0, 145, 202, 38, 0, 176,
-			249, 0, 136, 40, 11, 5, 108, 36, 112, 10, 51, 53, 34, 53, 110, 37, 108, 38, 6, 0, 112, 10, 0, 145, 162, 39, 110, 36, 108, 38,
-			6, 0, 50, 10, 0, 176, 25, 235, 2, 13, 181, 206, 0, 145, 202, 38, 0, 176, 25, 235, 1, 13, 0, 97, 138, 43, 14, 54, 6, 0,
-			13, 38, 6, 0, 6, 104, 50, 38, 9, 0, 3, 0, 2, 104, 112, 10, 14, 52, 108, 36, 130, 10, 0, 145, 162, 39, 0, 176, 56, 245,
-			1, 13, 0, 97, 0, 145, 202, 38, 0, 176, 56, 245, 1, 13, 0, 97, 0, 145, 162, 39, 0, 176, 251, 225, 2, 13, 97, 63, 0, 145,
-			202, 38, 0, 176, 251, 225, 2, 13, 145, 201, 0, 145, 162, 39, 121, 36, 112, 10, 0, 176, 9, 196, 3, 13, 201, 63, 0, 145, 0, 145,
-			202, 38, 0, 176, 9, 196, 14, 52, 108, 52, 14, 54, 6, 0, 108, 38, 6, 0, 112, 10, 134, 40, 3, 0, 0, 145, 162, 39, 0, 176,
-			250, 187, 0, 145, 202, 38, 0, 176, 250, 187, 108, 54, 6, 0, 14, 38, 6, 0, 112, 10, 0, 145, 162, 39, 0, 176, 251, 245, 0, 145,
-			202, 38, 0, 176, 251, 245, 2, 13, 146, 201, 125, 52, 126, 36, 112, 10, 0, 145, 162, 39, 1, 176, 230, 98, 2, 13, 146, 201, 0, 145,
-			202, 38, 1, 176, 230, 98, 0, 145, 162, 39, 0, 176, 186, 220, 0, 145, 202, 38, 0, 176, 186, 220, 2, 13, 148, 201, 0, 145, 162, 39,
-			0, 176, 121, 220, 2, 13, 148, 201, 0, 145, 202, 38, 0, 176, 121, 220, 0, 145, 162, 39, 0, 176, 124, 188, 0, 145, 202, 38, 0, 176,
-			124, 188, 108, 52, 14, 36, 112, 10, 0, 145, 162, 39, 1, 176, 24, 21, 0, 145, 162, 39, 0, 176, 188, 235, 0, 145, 202, 38, 0, 176,
-			188, 235, 0, 145, 162, 39, 0, 176, 52, 219, 0, 145, 202, 38, 0, 176, 52, 219, 112, 35, 3, 0, 108, 35, 3, 0, 14, 35, 3, 0,
-			138, 43, 112, 10, 112, 52, 108, 52, 13, 52, 14, 36, 140, 10, 136, 40, 70, 10, 138, 43, 14, 54, 6, 0, 108, 38, 6, 0, 95, 10,
-			0, 176, 33, 190, 55, 36, 1, 104, 60, 1, 1, 0, 0, 176, 139, 24, 4, 13, 144, 201, 175, 204, 2, 43, 109, 36, 3, 0, 108, 36,
-			3, 0, 14, 36, 3, 0, 51, 1, 108, 53, 109, 37, 136, 40, 11, 1, 108, 53, 109, 37, 89, 36, 136, 43, 1, 1, 108, 53, 109, 37,
-			50, 36, 14, 38, 6, 0, 1, 1, 108, 52, 109, 36, 136, 41, 4, 104, 132, 44, 2, 104, 1, 1, 1, 176, 33, 126, 2, 13, 129, 202,
-			1, 176, 82, 126, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 48, 50, 47, 50, 49, 34, 0, 192, 2, 137,
-			0, 192, 46, 139, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 133, 41, 0, 192, 113, 103, 34, 34, 96, 196,
-			95, 102, 51, 50, 52, 34, 0, 192, 95, 102, 14, 34, 0, 192, 113, 103, 55, 34, 0, 192, 60, 104, 0, 192, 58, 105, 0, 161, 213, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 34, 50, 51, 50, 52, 34, 0, 192, 70, 107, 136, 40, 1, 104, 160, 197, 34, 110,
-			136, 40, 11, 5, 2, 43, 25, 104, 6, 106, 0, 208, 116, 32, 0, 208, 181, 32, 0, 208, 246, 32, 0, 208, 55, 33, 0, 208, 104, 33,
-			0, 208, 185, 33, 0, 162, 35, 18, 0, 0, 0, 0, 32, 238, 234, 33, 0, 39, 3, 104, 0, 176, 11, 34, 7, 96, 0, 162, 35, 18,
-			0, 0, 0, 0, 0, 176, 44, 34, 1, 0, 0, 176, 86, 0, 0, 176, 58, 1, 136, 40, 0, 176, 60, 226, 0, 176, 184, 205, 129, 40,
-			1, 176, 44, 22, 0, 176, 117, 219, 0, 176, 159, 207, 0, 176, 250, 187, 0, 161, 213, 3, 76, 5, 92, 139, 0, 162, 146, 18, 76, 1,
-			110, 189, 133, 41, 128, 194, 237, 178, 30, 52, 31, 36, 128, 194, 174, 180, 32, 52, 33, 36, 225, 193, 147, 126, 48, 194, 136, 182, 1, 0,
-			0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 1, 192, 82, 39, 0, 161, 25, 3, 77, 9, 238, 188, 0, 162,
-			18, 34, 73, 9, 46, 173, 0, 176, 42, 97, 64, 246, 156, 97, 0, 161, 25, 3, 77, 9, 238, 188, 0, 162, 18, 34, 73, 9, 46, 173,
-			0, 176, 42, 97, 32, 243, 226, 242, 0, 176, 5, 214, 0, 176, 58, 1, 1, 176, 87, 5, 0, 176, 251, 225, 0, 176, 25, 235, 0, 176,
-			8, 230, 0, 176, 16, 251, 1, 176, 176, 38, 2, 41, 1, 1, 0, 41, 124, 1, 108, 18, 0, 176, 214, 186, 2, 41, 1, 1, 0, 41,
-			124, 1, 0, 176, 149, 186, 2, 41, 1, 1, 0, 41, 125, 1, 0, 176, 249, 0, 2, 41, 1, 1, 0, 41, 126, 1, 0, 176, 58, 1,
-			2, 41, 1, 1, 0, 41, 127, 1, 0, 176, 104, 187, 2, 41, 1, 1, 0, 41, 128, 1, 0, 176, 250, 187, 2, 41, 1, 1, 0, 176,
-			149, 186, 2, 41, 1, 1, 0, 176, 249, 0, 2, 41, 1, 1, 0, 176, 58, 1, 2, 41, 1, 1, 0, 176, 104, 187, 2, 41, 1, 1,
-			0, 176, 250, 187, 5, 146, 120, 98, 1, 0, 6, 146, 124, 2, 1, 0, 38, 5, 0, 176, 58, 1, 0, 176, 60, 226, 0, 176, 144, 236,
-			0, 176, 123, 1, 0, 176, 188, 1, 0, 176, 195, 190, 0, 176, 137, 200, 0, 176, 86, 0, 0, 176, 121, 245, 0, 176, 227, 251, 129, 40,
-			0, 176, 9, 196, 0, 176, 184, 0, 109, 17, 0, 176, 58, 206, 36, 1, 1, 0, 0, 176, 60, 226, 130, 40, 13, 1, 0, 176, 60, 226,
-			111, 17, 1, 176, 204, 16, 39, 1, 1, 0, 131, 40, 0, 176, 123, 206, 0, 176, 185, 187, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162,
-			146, 18, 77, 1, 96, 162, 133, 41, 2, 44, 128, 194, 30, 109, 192, 195, 30, 109, 0, 161, 213, 3, 75, 1, 238, 172, 0, 162, 146, 18,
-			75, 1, 110, 189, 2, 47, 0, 162, 146, 18, 75, 1, 238, 172, 136, 40, 0, 192, 52, 126, 133, 41, 0, 192, 66, 119, 34, 50, 51, 50,
-			52, 34, 0, 192, 113, 120, 31, 50, 38, 34, 0, 192, 1, 122, 55, 34, 0, 192, 115, 123, 14, 34, 96, 196, 255, 124, 0, 192, 52, 126,
-			0, 176, 124, 188, 0, 176, 249, 205, 0, 176, 151, 195, 37, 17, 0, 176, 58, 1, 108, 17, 1, 176, 174, 32, 13, 17, 0, 176, 249, 0,
-			13, 17, 0, 176, 249, 0, 0, 176, 184, 205, 0, 176, 184, 205, 35, 17, 0, 176, 47, 212, 13, 17, 0, 176, 184, 0, 0, 176, 184, 0,
-			0, 176, 121, 220, 0, 176, 121, 220, 0, 176, 104, 187, 0, 176, 251, 245, 40, 17, 1, 176, 87, 5, 1, 176, 87, 5, 2, 13, 175, 201,
-			1, 176, 87, 5, 2, 13, 175, 201, 1, 176, 87, 5, 2, 13, 164, 201, 13, 17, 1, 176, 26, 6, 2, 13, 164, 201, 13, 17, 1, 176,
-			26, 6, 13, 18, 0, 176, 133, 209, 13, 18, 0, 176, 9, 250, 0, 176, 160, 247, 13, 17, 0, 176, 33, 190, 0, 176, 114, 190, 1, 176,
-			156, 6, 4, 13, 175, 201, 170, 201, 1, 176, 130, 90, 13, 17, 1, 176, 211, 90, 0, 176, 134, 238, 0, 161, 227, 83, 85, 1, 246, 221,
-			0, 162, 25, 18, 51, 37, 246, 221, 33, 200, 191, 128, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 0, 192,
-			1, 122, 0, 145, 189, 5, 2, 13, 131, 202, 1, 0, 2, 13, 190, 201, 0, 161, 213, 3, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9,
-			98, 170, 2, 47, 9, 104, 1, 47, 3, 104, 0, 176, 173, 192, 0, 176, 222, 192, 96, 244, 167, 55, 1, 47, 0, 176, 15, 193, 0, 176,
-			64, 193, 144, 241, 167, 55, 35, 38, 8, 0, 35, 1, 33, 96, 112, 38, 8, 0, 7, 104, 16, 32, 3, 104, 35, 1, 2, 96, 112, 1,
-			24, 96, 116, 38, 8, 0, 116, 1, 20, 96, 37, 38, 8, 0, 37, 1, 16, 96, 36, 38, 8, 0, 36, 1, 12, 96, 40, 38, 8, 0,
-			40, 1, 8, 96, 119, 38, 8, 0, 119, 1, 4, 96, 120, 38, 8, 0, 120, 1, 1, 1, 1, 0, 2, 60, 3, 0, 130, 56, 85, 45,
-			8, 0, 1, 1, 12, 96, 131, 52, 132, 36, 3, 104, 99, 1, 7, 96, 81, 52, 49, 36, 3, 104, 101, 1, 2, 96, 107, 1, 1, 0,
-			2, 41, 107, 1, 2, 96, 1, 1, 1, 0, 0, 176, 58, 1, 0, 176, 25, 235, 1, 176, 44, 22, 0, 176, 123, 206, 1, 176, 217, 5,
-			6, 106, 0, 208, 239, 21, 0, 208, 32, 22, 0, 208, 65, 22, 96, 223, 98, 22, 0, 208, 147, 22, 0, 208, 212, 22, 2, 39, 128, 237,
-			172, 24, 1, 197, 194, 129, 81, 181, 74, 16, 1, 176, 9, 135, 0, 176, 60, 226, 38, 5, 1, 176, 148, 4, 1, 176, 204, 16, 1, 176,
-			29, 17, 1, 176, 87, 5, 0, 176, 187, 250, 1, 176, 143, 17, 1, 176, 220, 27, 1, 176, 101, 35, 0, 176, 25, 235, 136, 40, 1, 176,
-			74, 135, 0, 176, 251, 225, 0, 176, 124, 188, 1, 176, 218, 36, 0, 176, 227, 251, 1, 176, 29, 17, 136, 40, 0, 176, 149, 186, 0, 176,
-			162, 251, 2, 13, 175, 201, 1, 176, 135, 123, 0, 176, 58, 1, 1, 176, 9, 135, 0, 176, 139, 196, 0, 176, 162, 251, 0, 176, 121, 220,
-			0, 176, 104, 187, 0, 176, 188, 1, 38, 5, 1, 176, 101, 35, 0, 176, 25, 235, 2, 13, 168, 201, 1, 176, 199, 40, 73, 43, 0, 176,
-			244, 248, 1, 176, 50, 71, 73, 43, 0, 176, 185, 239, 0, 176, 86, 205, 1, 176, 239, 74, 0, 176, 227, 251, 4, 161, 213, 3, 75, 1,
-			84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 0, 192, 113, 103, 2, 44, 2, 43, 82, 1, 0, 145, 196, 2, 1, 0, 4, 161, 213, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 22, 106, 96, 196, 47, 111, 4, 161, 213, 3, 77, 1, 228, 154,
-			133, 41, 1, 197, 129, 30, 1, 197, 129, 30, 6, 161, 213, 3, 75, 1, 162, 162, 0, 162, 146, 18, 75, 1, 110, 189, 193, 195, 139, 135,
-			31, 37, 99, 1, 3, 96, 0, 145, 237, 5, 1, 0, 0, 176, 86, 0, 0, 176, 86, 0, 38, 5, 0, 176, 170, 230, 38, 5, 0, 176,
-			58, 1, 0, 176, 249, 0, 0, 176, 249, 0, 0, 176, 139, 196, 0, 176, 139, 196, 0, 176, 149, 186, 1, 176, 50, 71, 0, 176, 123, 1,
-			0, 176, 123, 1, 0, 176, 104, 187, 0, 176, 104, 187, 0, 176, 227, 251, 0, 176, 188, 1, 109, 16, 0, 176, 149, 186, 0, 176, 149, 186,
-			0, 176, 249, 0, 0, 176, 249, 0, 1, 176, 174, 32, 0, 176, 58, 1, 0, 176, 8, 230, 0, 176, 8, 230, 1, 176, 166, 35, 1, 176,
-			166, 35, 1, 176, 40, 36, 0, 176, 86, 0, 1, 176, 44, 22, 1, 176, 151, 26, 0, 176, 25, 235, 0, 176, 249, 0, 1, 176, 174, 32,
-			0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 104, 187, 1, 176, 166, 35, 1, 176, 166, 35, 0, 176, 33, 190, 1, 176, 110, 28, 4, 13,
-			136, 202, 176, 202, 0, 161, 213, 3, 75, 1, 100, 170, 0, 162, 146, 18, 71, 65, 100, 162, 141, 36, 139, 1, 1, 197, 0, 29, 4, 13,
-			150, 201, 176, 202, 0, 161, 213, 3, 76, 5, 100, 170, 0, 162, 18, 2, 71, 69, 100, 170, 1, 47, 1, 176, 131, 18, 33, 179, 119, 137,
-			1, 245, 0, 29, 0, 176, 202, 225, 2, 13, 144, 201, 13, 18, 1, 176, 44, 22, 0, 176, 117, 219, 1, 176, 202, 41, 1, 176, 202, 41,
-			0, 176, 60, 226, 0, 176, 25, 235, 1, 176, 174, 32, 0, 176, 58, 1, 0, 176, 159, 207, 0, 176, 159, 207, 1, 176, 166, 35, 1, 176,
-			166, 35, 1, 176, 40, 36, 1, 176, 110, 28, 3, 13, 181, 225, 0, 144, 0, 145, 180, 1, 1, 0, 3, 13, 129, 226, 0, 191, 0, 145,
-			220, 1, 1, 0, 3, 13, 182, 225, 0, 175, 0, 145, 1, 2, 1, 0, 3, 13, 182, 225, 0, 174, 0, 145, 39, 2, 1, 0, 3, 13,
-			181, 225, 0, 145, 0, 145, 79, 2, 1, 0, 1, 176, 168, 137, 1, 176, 9, 138, 1, 176, 90, 138, 1, 176, 187, 138, 134, 40, 4, 104,
-			0, 176, 208, 197, 1, 0, 130, 40, 29, 104, 65, 10, 136, 40, 141, 40, 3, 0, 2, 104, 1, 1, 2, 45, 10, 0, 92, 45, 7, 0,
-			3, 0, 6, 104, 138, 43, 136, 41, 2, 104, 2, 96, 1, 1, 73, 39, 108, 34, 3, 0, 3, 104, 110, 1, 6, 96, 34, 32, 3, 104,
-			111, 1, 2, 96, 13, 1, 58, 32, 0, 176, 186, 220, 0, 176, 208, 197, 0, 176, 104, 187, 136, 40, 138, 44, 2, 45, 10, 0, 1, 1,
-			141, 40, 10, 104, 37, 54, 7, 0, 40, 38, 7, 0, 2, 104, 39, 1, 34, 37, 2, 104, 39, 1, 121, 1, 1, 0, 0, 176, 117, 219,
-			1, 176, 174, 32, 0, 176, 188, 1, 0, 176, 249, 0, 1, 176, 239, 32, 58, 36, 85, 10, 0, 176, 104, 187, 1, 176, 48, 33, 136, 40,
-			138, 44, 121, 1, 1, 0, 136, 40, 129, 40, 1, 176, 44, 22, 0, 176, 117, 219, 1, 176, 174, 32, 0, 176, 188, 1, 0, 176, 249, 0,
-			1, 176, 239, 32, 58, 36, 85, 10, 0, 176, 104, 187, 1, 176, 48, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 1, 192, 113, 33,
-			1, 192, 113, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 0, 192, 226, 111, 0, 192, 50, 114, 136, 40, 129, 40, 1, 176, 44, 22,
-			0, 176, 117, 219, 1, 176, 174, 32, 0, 176, 188, 1, 0, 176, 249, 0, 1, 176, 239, 32, 58, 36, 85, 10, 0, 176, 104, 187, 1, 176,
-			48, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 1, 192, 113, 33, 1, 192, 113, 33, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41,
-			0, 192, 226, 111, 0, 192, 50, 114, 2, 43, 2, 104, 6, 96, 138, 39, 3, 104, 56, 1, 2, 96, 59, 1, 0, 145, 206, 0, 1, 0,
-			2, 13, 185, 201, 6, 106, 0, 208, 97, 194, 0, 208, 146, 194, 0, 208, 195, 194, 0, 208, 4, 195, 0, 208, 53, 195, 0, 208, 102, 195,
-			2, 39, 64, 236, 237, 5, 0, 176, 96, 6, 46, 34, 4, 104, 95, 10, 1, 176, 12, 139, 1, 176, 61, 139, 0, 176, 249, 205, 38, 5,
-			1, 176, 110, 139, 38, 5, 0, 176, 13, 197, 55, 17, 1, 176, 83, 4, 3, 13, 201, 105, 0, 153, 44, 5, 0, 176, 209, 236, 109, 16,
-			0, 176, 139, 196, 1, 13, 0, 97, 1, 176, 151, 26, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 82, 198, 0, 176, 159, 207, 114, 17,
-			0, 176, 123, 206, 1, 176, 217, 5, 0, 176, 17, 198, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41,
-			0, 192, 174, 169, 0, 192, 6, 172, 0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195, 237, 178,
-			55, 34, 0, 192, 115, 123, 160, 197, 237, 178, 0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195,
-			255, 124, 192, 195, 255, 124, 6, 106, 0, 208, 239, 21, 0, 208, 32, 22, 0, 208, 65, 22, 96, 223, 98, 22, 0, 208, 147, 22, 0, 208,
-			212, 22, 2, 39, 128, 237, 172, 24, 1, 197, 194, 129, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 133, 41,
-			0, 192, 91, 100, 34, 34, 0, 192, 95, 102, 55, 34, 0, 192, 60, 104, 0, 192, 29, 175, 0, 161, 25, 3, 64, 9, 118, 90, 0, 162,
-			18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 199, 4, 16, 223, 248, 4, 16, 223, 41, 5, 16, 223, 90, 5, 16, 223, 139, 5, 16, 223,
-			188, 5, 2, 39, 224, 236, 237, 5, 0, 176, 255, 13, 64, 246, 219, 16, 13, 48, 108, 32, 2, 104, 5, 96, 0, 176, 234, 11, 0, 240,
-			178, 6, 1, 0, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 0, 192, 226, 111, 0, 192, 50, 114, 3, 13, 201, 116, 0, 149, 0, 161,
-			227, 83, 85, 1, 246, 221, 133, 41, 0, 192, 194, 115, 0, 192, 194, 115, 38, 5, 108, 17, 0, 176, 97, 251, 38, 5, 0, 176, 204, 196,
-			0, 176, 25, 235, 0, 176, 162, 251, 0, 176, 159, 207, 0, 176, 205, 188, 0, 176, 250, 187, 0, 176, 36, 252, 0, 176, 124, 188, 0, 176,
-			101, 252, 0, 176, 198, 252, 0, 176, 188, 201, 0, 176, 16, 251, 0, 176, 23, 253, 0, 176, 104, 253, 0, 176, 185, 253, 0, 176, 10, 254,
-			0, 176, 107, 254, 0, 176, 188, 254, 0, 176, 13, 255, 0, 176, 191, 255, 1, 176, 16, 0, 1, 176, 97, 0, 1, 176, 178, 0, 0, 176,
-			102, 234, 1, 176, 3, 1, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 223, 67, 0, 176,
-			114, 68, 0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18, 79, 9, 98, 155, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176,
-			59, 54, 0, 240, 108, 54, 34, 34, 5, 104, 0, 176, 77, 49, 192, 243, 46, 56, 0, 176, 118, 55, 192, 243, 46, 56, 28, 34, 0, 192,
-			140, 158, 29, 34, 0, 192, 225, 159, 30, 34, 0, 192, 128, 161, 31, 34, 0, 192, 37, 163, 32, 34, 97, 196, 149, 1, 33, 34, 1, 197,
-			149, 1, 96, 196, 3, 168, 0, 176, 184, 0, 0, 176, 25, 235, 0, 176, 58, 1, 0, 176, 104, 187, 0, 176, 188, 1, 0, 161, 213, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 1, 192, 82, 39, 1, 192, 82, 39, 0, 161, 217, 19, 77, 5, 98, 170,
-			0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 201, 71, 193, 243, 82, 39, 0, 176, 157, 174,
-			193, 248, 82, 39, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 174, 169, 0, 192, 6, 172,
-			0, 161, 217, 19, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 10, 54, 133, 41, 5, 104, 0, 176, 201, 71,
-			192, 243, 174, 169, 0, 176, 157, 174, 192, 248, 6, 172, 136, 40, 70, 10, 0, 176, 173, 211, 136, 40, 70, 10, 1, 176, 14, 120, 136, 40,
-			70, 10, 0, 176, 216, 214, 136, 40, 70, 10, 0, 176, 59, 188, 0, 176, 162, 251, 1, 176, 151, 26, 0, 176, 56, 245, 1, 176, 159, 139,
-			0, 176, 1, 233, 1, 176, 0, 140, 0, 176, 34, 223, 1, 176, 65, 140, 1, 176, 152, 5, 0, 161, 25, 3, 173, 1, 238, 188, 0, 162,
-			146, 18, 173, 1, 110, 189, 192, 195, 226, 242, 92, 43, 2, 104, 2, 96, 64, 1, 0, 145, 206, 0, 1, 0, 0, 176, 58, 1, 0, 176,
-			124, 188, 0, 176, 188, 1, 0, 176, 173, 211, 0, 176, 188, 235, 0, 176, 8, 230, 2, 13, 175, 201, 1, 176, 159, 89, 0, 176, 184, 205,
-			58, 36, 3, 0, 144, 40, 3, 0, 9, 104, 141, 40, 2, 104, 113, 1, 113, 38, 8, 0, 142, 40, 2, 104, 113, 1, 0, 176, 47, 212,
-			0, 176, 5, 214, 1, 176, 9, 135, 0, 176, 249, 205, 92, 61, 8, 0, 92, 45, 7, 0, 111, 1, 112, 1, 1, 0, 92, 61, 8, 0,
-			92, 45, 7, 0, 108, 1, 2, 96, 40, 1, 1, 0, 93, 45, 7, 0, 110, 1, 2, 96, 36, 1, 1, 0, 93, 61, 8, 0, 93, 45,
-			7, 0, 104, 1, 0, 145, 57, 5, 1, 0, 93, 61, 8, 0, 93, 45, 7, 0, 118, 1, 2, 96, 100, 1, 1, 0, 93, 61, 8, 0,
-			93, 45, 7, 0, 64, 1, 0, 145, 206, 0, 1, 0, 2, 13, 144, 201, 0, 176, 47, 212, 2, 13, 155, 201, 0, 176, 139, 196, 2, 13,
-			140, 202, 0, 176, 121, 220, 1, 13, 0, 111, 1, 176, 204, 16, 1, 13, 0, 117, 0, 176, 250, 187, 2, 13, 175, 201, 1, 176, 22, 5,
-			2, 161, 213, 3, 73, 5, 226, 155, 2, 162, 210, 19, 73, 5, 226, 155, 177, 196, 162, 103, 0, 161, 21, 21, 77, 1, 98, 170, 0, 162,
-			146, 18, 77, 1, 98, 162, 129, 194, 130, 140, 3, 13, 201, 116, 0, 149, 0, 161, 213, 3, 85, 1, 246, 221, 1, 192, 80, 49, 3, 13,
-			202, 100, 0, 145, 0, 161, 213, 3, 85, 1, 246, 221, 0, 176, 215, 59, 0, 240, 11, 61, 2, 13, 190, 201, 0, 162, 136, 20, 73, 13,
-			96, 170, 0, 161, 10, 19, 77, 9, 96, 170, 31, 48, 30, 32, 0, 176, 57, 48, 0, 176, 138, 48, 0, 176, 184, 0, 136, 40, 0, 176,
-			247, 219, 0, 176, 249, 0, 0, 176, 58, 1, 0, 176, 104, 187, 1, 176, 87, 5, 0, 176, 33, 190, 3, 13, 108, 116, 0, 35, 0, 161,
-			213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 33, 195, 3, 86, 0, 176, 254, 246, 29, 34, 1, 1, 0, 176, 254, 246,
-			0, 176, 25, 235, 38, 5, 0, 176, 58, 1, 0, 176, 123, 1, 1, 176, 87, 5, 0, 176, 205, 188, 2, 13, 130, 202, 0, 161, 25, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 192, 195, 46, 146, 160, 197, 46, 146, 1, 13, 0, 115, 0, 161, 25, 3,
-			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 88, 34, 4, 104, 125, 2, 1, 1, 9, 96, 81, 34, 49, 2, 6, 96, 72, 34,
-			47, 2, 3, 96, 71, 34, 48, 2, 0, 41, 192, 195, 250, 71, 0, 197, 46, 139, 3, 13, 202, 116, 0, 130, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 174, 169, 0, 192, 6, 172, 2, 13, 115, 116, 0, 161, 213, 3, 77, 1,
-			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 174, 169, 0, 192, 6, 172, 81, 34, 4, 104, 49, 2, 1, 1, 10, 96,
-			72, 34, 4, 104, 47, 2, 1, 1, 5, 96, 88, 34, 3, 104, 125, 2, 1, 1, 0, 145, 245, 6, 1, 0, 2, 13, 190, 201, 2, 43,
-			69, 1, 0, 145, 138, 2, 1, 0, 0};
-		autoFileInMemory espeakdata_phons3 = FileInMemory_createWithData (25028, reinterpret_cast<const char *> (&espeakdata_phons3_data), 
-			U"/home/david/projects/praat/espeak-work/espeak-1.48.04-source/espeak-data/phonindex", 
+		static unsigned char espeakdata_phons3_data[20427] = {
+			36, 70, 1, 0, 0, 161, 213, 131, 0, 0, 0, 0, 0, 162, 18, 130, 0, 0, 0, 0, 0, 192, 1, 0, 0, 176, 85, 0, 2, 13,
+			153, 201, 16, 52, 34, 36, 3, 104, 1, 13, 0, 32, 25, 10, 0, 176, 134, 0, 0, 176, 183, 0, 0, 176, 248, 0, 38, 5, 0, 176,
+			57, 1, 0, 176, 122, 1, 0, 176, 187, 1, 3, 13, 204, 109, 0, 169, 134, 40, 95, 10, 2, 47, 0, 176, 252, 1, 0, 176, 93, 2,
+			3, 13, 204, 110, 0, 169, 134, 40, 95, 10, 2, 47, 0, 176, 190, 2, 0, 176, 15, 3, 4, 13, 139, 197, 169, 204, 0, 176, 96, 3,
+			192, 195, 177, 3, 3, 13, 204, 114, 0, 169, 0, 176, 52, 4, 3, 13, 204, 108, 0, 169, 0, 176, 133, 4, 2, 13, 185, 201, 138, 41,
+			46, 1, 6, 106, 16, 223, 198, 4, 16, 223, 247, 4, 16, 223, 40, 5, 16, 223, 89, 5, 16, 223, 138, 5, 16, 223, 187, 5, 2, 39,
+			224, 236, 236, 5, 0, 39, 0, 176, 13, 6, 47, 48, 48, 48, 49, 32, 0, 176, 62, 6, 0, 176, 95, 6, 50, 34, 5, 104, 0, 176,
+			144, 6, 0, 240, 177, 6, 47, 48, 48, 48, 49, 32, 0, 176, 135, 11, 138, 39, 0, 176, 184, 11, 0, 176, 233, 11, 0, 240, 177, 6,
+			1, 13, 0, 114, 52, 36, 3, 104, 1, 13, 0, 32, 0, 161, 25, 3, 75, 1, 96, 170, 0, 162, 18, 34, 75, 9, 96, 170, 0, 176,
+			10, 12, 16, 244, 59, 12, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 254, 13,
+			32, 243, 63, 14, 1, 13, 0, 114, 0, 161, 25, 3, 64, 9, 118, 90, 0, 162, 18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 198, 4,
+			16, 223, 247, 4, 16, 223, 40, 5, 16, 223, 89, 5, 16, 223, 138, 5, 16, 223, 187, 5, 2, 39, 224, 236, 236, 5, 0, 176, 254, 13,
+			0, 240, 218, 16, 2, 13, 128, 202, 138, 41, 5, 104, 0, 176, 235, 17, 32, 243, 44, 18, 0, 176, 235, 17, 176, 244, 44, 18, 6, 106,
+			0, 208, 238, 21, 0, 208, 31, 22, 0, 208, 64, 22, 96, 223, 97, 22, 0, 208, 146, 22, 0, 208, 211, 22, 1, 0, 138, 41, 56, 1,
+			138, 41, 17, 104, 6, 108, 64, 236, 4, 23, 128, 237, 69, 23, 32, 238, 134, 23, 32, 238, 183, 23, 128, 237, 248, 23, 128, 237, 73, 24,
+			0, 176, 138, 24, 1, 0, 0, 145, 194, 0, 28, 32, 224, 236, 171, 24, 4, 96, 2, 39, 128, 237, 171, 24, 0, 39, 0, 176, 204, 24,
+			47, 32, 0, 176, 253, 24, 56, 32, 0, 176, 30, 25, 0, 176, 63, 25, 2, 41, 55, 1, 6, 108, 64, 236, 4, 23, 128, 237, 69, 23,
+			32, 238, 134, 23, 32, 238, 183, 23, 128, 237, 248, 23, 128, 237, 73, 24, 57, 37, 0, 176, 134, 23, 58, 37, 0, 176, 134, 23, 0, 176,
+			138, 24, 2, 41, 55, 1, 0, 145, 194, 0, 57, 37, 0, 176, 96, 25, 58, 37, 0, 176, 145, 25, 6, 108, 64, 236, 210, 25, 224, 236,
+			19, 26, 128, 237, 96, 25, 32, 238, 84, 26, 224, 236, 149, 26, 128, 237, 145, 25, 1, 0, 2, 41, 55, 1, 6, 108, 0, 224, 230, 26,
+			0, 224, 7, 27, 0, 224, 40, 27, 0, 224, 73, 27, 0, 224, 122, 27, 192, 238, 171, 27, 0, 176, 138, 24, 2, 13, 142, 202, 1, 162,
+			30, 82, 0, 0, 0, 0, 6, 106, 0, 208, 204, 27, 0, 208, 253, 27, 0, 208, 46, 28, 0, 208, 95, 28, 0, 208, 144, 28, 0, 208,
+			209, 28, 0, 39, 0, 176, 18, 29, 0, 176, 83, 29, 2, 13, 173, 201, 0, 176, 148, 29, 138, 41, 63, 1, 128, 237, 197, 29, 0, 39,
+			0, 176, 246, 29, 0, 176, 55, 30, 2, 41, 23, 104, 6, 106, 0, 208, 104, 30, 0, 208, 153, 30, 0, 208, 202, 30, 0, 208, 251, 30,
+			0, 208, 44, 31, 0, 208, 93, 31, 32, 238, 142, 31, 0, 39, 3, 104, 0, 176, 175, 31, 0, 176, 175, 31, 11, 96, 0, 162, 25, 18,
+			0, 0, 0, 0, 31, 32, 3, 104, 0, 176, 224, 31, 0, 176, 33, 32, 1, 0, 2, 43, 21, 104, 6, 106, 0, 208, 82, 32, 0, 208,
+			147, 32, 0, 208, 212, 32, 0, 208, 21, 33, 0, 208, 70, 33, 0, 208, 151, 33, 32, 238, 200, 33, 0, 39, 3, 104, 0, 176, 233, 33,
+			7, 96, 0, 162, 35, 18, 0, 0, 0, 0, 0, 176, 10, 34, 1, 0, 31, 32, 3, 104, 1, 13, 0, 32, 138, 41, 1, 1, 6, 106,
+			0, 208, 59, 34, 0, 208, 108, 34, 0, 208, 157, 34, 0, 208, 206, 34, 0, 208, 255, 34, 0, 208, 64, 35, 31, 32, 128, 237, 113, 35,
+			0, 39, 0, 176, 146, 35, 1, 0, 0, 162, 18, 34, 75, 9, 84, 65, 2, 47, 11, 104, 0, 161, 25, 3, 75, 1, 212, 114, 133, 41,
+			3, 104, 0, 176, 179, 35, 0, 176, 244, 35, 6, 106, 0, 208, 53, 36, 0, 208, 118, 36, 0, 208, 183, 36, 0, 208, 248, 36, 0, 208,
+			73, 37, 0, 208, 138, 37, 138, 39, 3, 43, 0, 176, 203, 37, 0, 39, 0, 176, 252, 37, 138, 41, 0, 176, 29, 38, 1, 0, 0, 162,
+			146, 50, 77, 9, 98, 162, 2, 47, 7, 104, 0, 161, 25, 3, 79, 1, 222, 154, 0, 176, 78, 38, 6, 106, 0, 208, 143, 38, 0, 208,
+			208, 38, 0, 208, 17, 39, 0, 208, 82, 39, 0, 208, 147, 39, 0, 208, 212, 39, 138, 39, 3, 43, 0, 176, 21, 40, 0, 55, 50, 32,
+			0, 176, 70, 40, 138, 41, 0, 176, 103, 40, 1, 0, 2, 13, 179, 201, 0, 161, 153, 18, 69, 73, 88, 162, 0, 162, 146, 50, 69, 73,
+			88, 162, 2, 47, 0, 176, 152, 40, 6, 106, 0, 208, 143, 38, 0, 208, 208, 38, 0, 208, 17, 39, 0, 208, 82, 39, 0, 208, 147, 39,
+			0, 208, 212, 39, 138, 39, 3, 43, 0, 176, 21, 40, 0, 55, 66, 32, 0, 176, 217, 40, 138, 41, 0, 176, 250, 40, 1, 0, 2, 13,
+			178, 201, 0, 162, 23, 114, 81, 13, 114, 205, 2, 47, 5, 104, 0, 208, 43, 41, 0, 176, 76, 41, 6, 106, 0, 208, 141, 41, 0, 208,
+			238, 41, 0, 208, 63, 42, 0, 208, 160, 42, 0, 208, 1, 43, 0, 208, 114, 43, 0, 39, 0, 176, 211, 43, 138, 41, 10, 104, 67, 36,
+			3, 104, 37, 10, 4, 96, 67, 37, 2, 104, 50, 10, 0, 176, 244, 43, 1, 0, 0, 162, 148, 50, 75, 13, 110, 189, 2, 47, 7, 104,
+			0, 161, 25, 3, 79, 1, 42, 172, 0, 176, 69, 44, 6, 106, 0, 208, 134, 44, 0, 208, 183, 44, 0, 208, 232, 44, 0, 208, 25, 45,
+			0, 208, 74, 45, 0, 208, 123, 45, 31, 32, 128, 237, 172, 45, 138, 39, 3, 43, 0, 176, 221, 45, 0, 39, 0, 176, 254, 45, 138, 41,
+			0, 176, 31, 46, 1, 0, 2, 13, 190, 201, 0, 162, 136, 20, 73, 13, 96, 170, 0, 161, 10, 19, 77, 9, 96, 170, 31, 48, 30, 32,
+			0, 176, 80, 46, 0, 176, 161, 46, 2, 13, 190, 201, 14, 37, 3, 104, 1, 13, 0, 114, 30, 50, 31, 34, 13, 104, 0, 161, 25, 3,
+			75, 1, 94, 170, 0, 176, 242, 46, 96, 249, 177, 6, 0, 176, 242, 46, 96, 249, 177, 6, 0, 161, 25, 3, 75, 9, 94, 170, 29, 34,
+			5, 104, 0, 176, 35, 47, 128, 252, 177, 6, 34, 34, 0, 176, 100, 47, 0, 162, 153, 20, 75, 13, 222, 169, 0, 161, 25, 3, 75, 1,
+			94, 170, 0, 176, 35, 47, 128, 252, 177, 6, 0, 162, 136, 20, 71, 77, 220, 169, 0, 161, 10, 19, 71, 9, 220, 169, 0, 176, 133, 47,
+			0, 162, 18, 34, 73, 9, 84, 73, 1, 47, 0, 176, 214, 47, 2, 47, 15, 104, 0, 161, 213, 3, 73, 5, 84, 73, 133, 41, 5, 104,
+			0, 176, 7, 48, 0, 240, 56, 48, 0, 176, 7, 48, 0, 240, 62, 49, 133, 41, 5, 104, 0, 176, 151, 49, 0, 240, 56, 48, 14, 34,
+			5, 104, 0, 176, 200, 49, 0, 240, 62, 49, 28, 34, 5, 104, 0, 176, 9, 50, 0, 240, 62, 49, 29, 34, 5, 104, 0, 176, 74, 50,
+			0, 240, 62, 49, 30, 34, 5, 104, 0, 176, 139, 50, 0, 240, 62, 49, 31, 34, 5, 104, 0, 176, 204, 50, 0, 240, 62, 49, 32, 34,
+			5, 104, 0, 176, 13, 51, 0, 240, 62, 49, 33, 34, 5, 104, 0, 176, 78, 51, 0, 240, 62, 49, 0, 176, 143, 51, 0, 240, 62, 49,
+			0, 161, 213, 3, 77, 5, 98, 170, 0, 162, 18, 34, 77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52,
+			0, 240, 50, 52, 0, 176, 60, 53, 0, 240, 109, 53, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170, 1, 47,
+			0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47, 64, 246, 244, 53, 0, 176,
+			60, 53, 64, 246, 244, 53, 0, 161, 213, 3, 81, 9, 238, 188, 0, 162, 18, 34, 81, 9, 46, 173, 1, 47, 0, 176, 173, 54, 133, 41,
+			5, 104, 0, 176, 222, 54, 0, 240, 15, 55, 0, 176, 157, 57, 0, 240, 206, 57, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9,
+			246, 221, 0, 162, 18, 2, 85, 9, 246, 221, 1, 47, 0, 176, 173, 54, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 222, 54, 0, 240,
+			15, 55, 0, 176, 157, 57, 0, 240, 209, 58, 133, 41, 5, 104, 0, 176, 222, 54, 0, 240, 15, 55, 0, 176, 157, 57, 0, 240, 209, 58,
+			0, 161, 227, 83, 85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 1, 47, 0, 176, 233, 59, 2, 47, 11, 104, 133, 41, 5, 104,
+			0, 176, 26, 60, 48, 242, 206, 57, 0, 176, 75, 60, 208, 242, 206, 57, 133, 41, 5, 104, 0, 176, 124, 60, 48, 242, 206, 57, 0, 176,
+			173, 60, 208, 242, 206, 57, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 1, 47, 0, 176, 222, 60, 133, 41,
+			5, 104, 0, 176, 15, 61, 0, 240, 64, 61, 0, 176, 48, 62, 96, 249, 97, 62, 0, 161, 25, 3, 173, 9, 84, 90, 0, 162, 25, 18,
+			13, 9, 84, 73, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 3, 63, 0, 240, 52, 63, 0, 176, 116, 65, 0, 240, 52, 63, 133, 41,
+			5, 104, 0, 176, 165, 65, 0, 240, 52, 63, 0, 176, 214, 65, 0, 240, 52, 63, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18,
+			9, 1, 84, 73, 2, 47, 15, 104, 0, 162, 25, 50, 9, 5, 84, 73, 133, 41, 5, 104, 0, 176, 3, 63, 0, 240, 52, 63, 0, 176,
+			7, 66, 96, 249, 52, 63, 133, 41, 5, 104, 0, 176, 165, 65, 0, 240, 52, 63, 134, 40, 3, 43, 35, 10, 0, 176, 56, 66, 0, 240,
+			52, 63, 2, 13, 139, 202, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 121, 66, 0, 176,
+			170, 66, 0, 162, 25, 18, 13, 1, 98, 170, 2, 47, 0, 161, 25, 3, 15, 0, 90, 170, 133, 41, 5, 104, 0, 176, 235, 66, 0, 240,
+			28, 67, 0, 176, 94, 69, 0, 240, 28, 67, 0, 162, 25, 18, 13, 1, 98, 170, 2, 47, 9, 104, 0, 161, 25, 3, 15, 0, 92, 170,
+			0, 162, 25, 50, 13, 5, 92, 170, 133, 41, 5, 104, 0, 176, 143, 69, 96, 244, 192, 69, 0, 176, 109, 72, 80, 245, 192, 69, 0, 161,
+			25, 3, 75, 1, 232, 171, 0, 162, 18, 34, 75, 9, 232, 171, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 158, 72, 0, 240, 207, 72,
+			0, 176, 41, 75, 32, 248, 207, 72, 133, 41, 5, 104, 0, 176, 90, 75, 0, 240, 207, 72, 0, 176, 139, 75, 32, 248, 207, 72, 2, 13,
+			144, 202, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 34, 73, 9, 100, 171, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 158, 72,
+			0, 240, 188, 75, 0, 176, 41, 75, 0, 240, 188, 75, 133, 41, 5, 104, 0, 176, 90, 75, 0, 240, 188, 75, 0, 176, 139, 75, 0, 240,
+			188, 75, 2, 13, 145, 202, 0, 161, 35, 83, 85, 9, 246, 221, 0, 162, 18, 34, 73, 9, 46, 173, 133, 41, 5, 104, 0, 176, 224, 77,
+			0, 245, 17, 78, 0, 176, 210, 80, 0, 245, 3, 81, 2, 13, 145, 202, 0, 161, 35, 83, 85, 9, 246, 221, 0, 162, 18, 34, 73, 9,
+			46, 173, 133, 41, 5, 104, 0, 176, 224, 77, 0, 240, 81, 83, 0, 176, 210, 80, 0, 245, 3, 86, 2, 13, 157, 202, 0, 161, 25, 3,
+			51, 5, 246, 221, 0, 162, 50, 18, 51, 5, 246, 221, 0, 176, 80, 88, 144, 241, 145, 88, 0, 161, 25, 3, 77, 9, 238, 188, 0, 162,
+			18, 34, 73, 9, 46, 173, 2, 47, 11, 104, 133, 41, 5, 104, 0, 176, 87, 90, 0, 240, 136, 90, 0, 176, 139, 92, 0, 240, 188, 92,
+			133, 41, 5, 104, 0, 176, 191, 94, 0, 240, 136, 90, 0, 176, 240, 94, 0, 240, 188, 92, 0, 161, 25, 3, 83, 9, 246, 221, 0, 162,
+			18, 34, 83, 9, 54, 220, 133, 41, 5, 104, 0, 176, 191, 94, 0, 240, 136, 90, 0, 176, 240, 94, 0, 240, 188, 92, 2, 13, 129, 202,
+			133, 41, 5, 104, 0, 176, 33, 95, 192, 243, 98, 95, 0, 176, 33, 95, 0, 245, 98, 95, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162,
+			210, 18, 73, 1, 84, 65, 133, 41, 0, 192, 33, 98, 34, 34, 96, 196, 37, 100, 51, 50, 52, 34, 0, 192, 37, 100, 14, 34, 0, 192,
+			55, 101, 55, 34, 0, 192, 2, 102, 0, 192, 0, 103, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41,
+			0, 192, 220, 103, 34, 50, 51, 50, 52, 34, 0, 192, 12, 105, 14, 34, 32, 195, 228, 106, 160, 197, 232, 107, 0, 161, 21, 28, 77, 5,
+			158, 162, 0, 162, 146, 18, 77, 1, 94, 162, 133, 41, 48, 194, 228, 106, 96, 196, 245, 108, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41,
+			0, 192, 220, 109, 0, 192, 44, 112, 3, 13, 201, 116, 0, 149, 0, 161, 227, 83, 85, 1, 246, 221, 133, 41, 0, 192, 188, 113, 0, 192,
+			188, 113, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 125, 115, 96, 201, 144, 116, 0, 161,
+			213, 3, 75, 1, 238, 172, 0, 162, 146, 18, 75, 1, 110, 189, 2, 47, 0, 162, 146, 18, 75, 1, 238, 172, 133, 41, 0, 192, 60, 117,
+			34, 50, 51, 50, 52, 34, 0, 192, 107, 118, 31, 50, 38, 34, 0, 192, 251, 119, 55, 34, 0, 192, 109, 121, 14, 34, 96, 196, 249, 122,
+			0, 192, 46, 124, 6, 161, 213, 19, 73, 5, 226, 155, 2, 162, 146, 20, 73, 5, 98, 155, 133, 41, 128, 194, 99, 125, 33, 34, 0, 197,
+			190, 125, 0, 195, 99, 125, 0, 162, 18, 2, 75, 1, 84, 65, 0, 41, 0, 192, 6, 126, 0, 192, 186, 128, 0, 161, 25, 3, 77, 1,
+			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 0, 192, 182, 130, 0, 192, 214, 132, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162,
+			146, 18, 77, 1, 98, 162, 0, 41, 0, 192, 192, 69, 48, 50, 47, 50, 49, 34, 0, 192, 252, 134, 0, 192, 40, 137, 0, 161, 25, 3,
+			77, 1, 106, 172, 0, 162, 18, 2, 77, 1, 106, 172, 0, 41, 0, 192, 16, 139, 0, 192, 188, 141, 2, 13, 130, 202, 0, 161, 25, 3,
+			73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 0, 41, 192, 195, 40, 144, 160, 197, 40, 144, 2, 13, 130, 202, 0, 161, 35, 83,
+			51, 5, 246, 221, 0, 162, 35, 82, 51, 5, 246, 221, 0, 41, 0, 192, 17, 78, 0, 192, 3, 81, 2, 13, 149, 201, 0, 161, 35, 83,
+			51, 5, 246, 221, 0, 162, 18, 66, 51, 5, 246, 221, 0, 41, 0, 192, 81, 83, 0, 192, 3, 86, 2, 13, 172, 201, 6, 106, 0, 208,
+			238, 21, 0, 208, 31, 22, 0, 208, 64, 22, 96, 223, 97, 22, 0, 208, 146, 22, 0, 208, 211, 22, 2, 39, 128, 237, 171, 24, 192, 195,
+			143, 146, 0, 161, 25, 3, 51, 1, 246, 221, 0, 162, 146, 18, 51, 1, 246, 221, 0, 41, 0, 192, 32, 149, 0, 192, 145, 88, 0, 161,
+			25, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 0, 41, 128, 199, 106, 151, 144, 193, 195, 153, 0, 41, 96, 196, 98, 95,
+			0, 192, 98, 95, 1, 13, 0, 104, 28, 34, 0, 192, 8, 156, 29, 34, 0, 192, 93, 157, 30, 34, 0, 192, 252, 158, 31, 34, 0, 192,
+			161, 160, 32, 34, 0, 192, 7, 162, 33, 34, 0, 192, 182, 163, 96, 196, 127, 165, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18,
+			77, 1, 98, 162, 133, 41, 0, 192, 42, 167, 0, 192, 130, 169, 0, 161, 217, 19, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170,
+			1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 143, 69, 192, 243, 42, 167, 0, 176, 25, 172, 192, 248, 130, 169, 0, 161, 213, 3,
+			75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 55, 34, 0, 192, 2, 102, 87, 41, 0, 192, 37, 100, 133, 41, 0, 197, 74, 172,
+			0, 192, 55, 101, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 133, 41, 0, 192, 33, 98, 55, 34, 0, 192,
+			2, 102, 0, 192, 153, 172, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 220, 103, 0, 192,
+			218, 173, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 18, 2, 85, 33, 246, 221, 133, 41, 0, 192, 107, 174, 160, 197, 156, 175, 0, 161,
+			213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195, 249, 122, 192, 195, 249, 122, 0, 161, 213, 3, 76, 1,
+			238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195, 105, 176, 55, 34, 0, 192, 109, 121, 160, 197, 105, 176, 0, 161, 25, 3,
+			77, 1, 98, 170, 133, 41, 0, 192, 192, 69, 0, 192, 42, 178, 128, 40, 4, 104, 108, 1, 0, 176, 22, 180, 0, 176, 87, 180, 0, 176,
+			22, 180, 0, 176, 248, 0, 0, 176, 152, 180, 38, 5, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 58, 181, 0, 176, 123, 181, 0, 176,
+			188, 181, 0, 176, 253, 181, 0, 176, 78, 182, 0, 176, 143, 182, 0, 176, 240, 182, 0, 176, 65, 183, 0, 176, 162, 183, 0, 176, 243, 183,
+			0, 176, 68, 184, 0, 176, 165, 184, 0, 176, 22, 185, 0, 145, 93, 1, 2, 41, 0, 176, 103, 185, 1, 0, 0, 161, 213, 3, 75, 1,
+			84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 133, 41, 0, 197, 74, 172, 87, 41, 0, 192, 37, 100, 55, 34, 0, 192, 2, 102, 0, 192,
+			55, 101, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 224, 193, 228, 106, 192, 195, 152, 185, 0, 161,
+			213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240,
+			50, 52, 87, 41, 5, 104, 0, 176, 100, 47, 224, 246, 244, 53, 0, 176, 60, 53, 224, 246, 244, 53, 0, 161, 213, 3, 77, 1, 238, 188,
+			0, 162, 146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 60, 117, 87, 41, 0, 192, 107, 118, 31, 50, 38, 34, 0, 192, 251, 119, 55, 34,
+			0, 192, 109, 121, 96, 196, 249, 122, 47, 1, 1, 0, 2, 13, 190, 201, 0, 161, 213, 3, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9,
+			98, 170, 2, 47, 9, 104, 1, 47, 3, 104, 0, 176, 46, 186, 0, 176, 95, 186, 96, 244, 109, 53, 1, 47, 0, 176, 144, 186, 0, 176,
+			193, 186, 96, 244, 109, 53, 140, 39, 72, 1, 2, 96, 47, 1, 1, 0, 140, 39, 88, 1, 2, 96, 89, 1, 1, 0, 2, 43, 3, 0,
+			8, 104, 2, 55, 57, 48, 58, 32, 3, 104, 59, 1, 2, 96, 56, 1, 0, 145, 208, 0, 1, 0, 0, 161, 213, 3, 73, 9, 238, 172,
+			0, 162, 18, 34, 73, 9, 46, 173, 1, 47, 0, 176, 222, 60, 133, 41, 5, 104, 0, 176, 15, 61, 0, 240, 242, 186, 0, 176, 48, 62,
+			0, 240, 242, 186, 2, 13, 185, 201, 6, 106, 0, 208, 226, 187, 0, 208, 19, 188, 0, 208, 68, 188, 0, 208, 133, 188, 0, 208, 182, 188,
+			0, 208, 231, 188, 2, 39, 64, 236, 236, 5, 0, 176, 95, 6, 69, 39, 113, 3, 140, 39, 3, 0, 89, 1, 88, 1, 1, 0, 44, 5,
+			136, 40, 0, 176, 24, 189, 0, 176, 85, 0, 0, 145, 127, 7, 2, 13, 153, 201, 1, 0, 2, 41, 113, 1, 0, 176, 85, 0, 2, 57,
+			0, 41, 117, 1, 0, 176, 85, 0, 3, 13, 153, 201, 0, 108, 0, 145, 194, 0, 0, 176, 89, 189, 119, 16, 129, 40, 0, 176, 138, 189,
+			0, 176, 183, 0, 2, 13, 144, 201, 0, 176, 203, 189, 1, 13, 0, 97, 44, 5, 0, 176, 183, 0, 113, 16, 0, 176, 12, 190, 38, 5,
+			0, 176, 77, 190, 38, 5, 0, 176, 142, 190, 38, 5, 113, 1, 1, 0, 2, 13, 170, 201, 38, 5, 0, 176, 207, 190, 13, 16, 0, 176,
+			16, 191, 13, 16, 0, 176, 81, 191, 0, 176, 146, 191, 44, 5, 0, 176, 211, 191, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 211, 191,
+			44, 5, 13, 16, 0, 176, 52, 192, 38, 5, 58, 32, 0, 208, 133, 192, 0, 176, 198, 192, 13, 16, 0, 176, 23, 193, 13, 16, 0, 176,
+			23, 193, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 23, 193, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 23, 193, 59, 34, 0, 176,
+			104, 193, 57, 37, 90, 10, 0, 176, 185, 193, 0, 176, 10, 194, 4, 13, 153, 201, 138, 202, 0, 176, 107, 194, 29, 34, 38, 4, 0, 176,
+			204, 194, 0, 176, 68, 184, 0, 176, 61, 195, 44, 5, 0, 176, 152, 180, 44, 5, 0, 176, 174, 195, 44, 5, 0, 176, 174, 195, 44, 5,
+			129, 40, 0, 176, 15, 196, 0, 176, 96, 196, 44, 5, 0, 176, 193, 196, 144, 1, 1, 0, 44, 5, 0, 176, 50, 197, 4, 13, 153, 201,
+			185, 201, 44, 36, 3, 104, 2, 13, 153, 201, 44, 5, 0, 176, 147, 197, 4, 13, 140, 202, 185, 201, 44, 36, 3, 104, 2, 13, 140, 202,
+			44, 5, 0, 176, 228, 197, 0, 176, 233, 180, 0, 176, 53, 198, 0, 176, 134, 198, 0, 176, 248, 0, 0, 176, 215, 198, 111, 5, 0, 145,
+			82, 2, 1, 0, 2, 13, 153, 201, 44, 5, 0, 176, 8, 199, 119, 16, 0, 176, 183, 0, 113, 16, 0, 176, 57, 199, 38, 5, 0, 176,
+			122, 199, 38, 5, 0, 176, 122, 199, 38, 5, 0, 176, 187, 199, 13, 16, 0, 176, 252, 199, 2, 13, 138, 202, 13, 16, 0, 176, 61, 200,
+			0, 176, 146, 191, 2, 13, 144, 201, 44, 5, 0, 176, 203, 189, 44, 5, 0, 176, 126, 200, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176,
+			126, 200, 1, 13, 0, 97, 0, 176, 183, 0, 44, 5, 13, 16, 0, 176, 207, 200, 38, 5, 58, 32, 0, 208, 133, 192, 0, 176, 57, 1,
+			44, 5, 13, 16, 0, 176, 32, 201, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 113, 201, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176,
+			113, 201, 13, 16, 0, 176, 23, 193, 0, 176, 178, 201, 4, 13, 166, 195, 138, 202, 0, 176, 3, 202, 3, 13, 203, 111, 0, 144, 0, 176,
+			233, 180, 0, 176, 84, 202, 3, 13, 203, 101, 0, 144, 0, 176, 248, 0, 0, 176, 61, 195, 44, 5, 0, 176, 181, 202, 44, 5, 0, 176,
+			6, 203, 44, 5, 0, 176, 96, 196, 44, 5, 0, 176, 193, 196, 144, 1, 1, 0, 44, 5, 0, 176, 50, 197, 2, 13, 154, 201, 44, 5,
+			0, 176, 119, 203, 87, 41, 114, 1, 0, 176, 184, 203, 0, 176, 233, 203, 2, 41, 113, 1, 0, 176, 233, 203, 3, 13, 153, 201, 0, 108,
+			0, 176, 89, 189, 2, 13, 166, 195, 119, 16, 8, 41, 0, 176, 26, 204, 0, 176, 107, 204, 2, 13, 144, 201, 0, 176, 203, 189, 113, 16,
+			0, 176, 172, 204, 38, 5, 113, 16, 0, 176, 142, 190, 38, 5, 0, 176, 237, 204, 0, 176, 46, 205, 38, 5, 0, 176, 111, 205, 4, 13,
+			145, 201, 144, 203, 13, 16, 34, 34, 130, 1, 0, 176, 176, 205, 13, 16, 0, 176, 241, 205, 0, 176, 50, 206, 34, 34, 0, 176, 115, 206,
+			0, 176, 176, 205, 6, 13, 145, 201, 144, 203, 185, 201, 44, 34, 4, 104, 4, 13, 145, 201, 144, 203, 130, 10, 44, 5, 0, 176, 115, 206,
+			44, 5, 0, 176, 212, 206, 38, 5, 0, 176, 198, 192, 13, 16, 34, 34, 0, 176, 37, 207, 0, 176, 118, 207, 6, 13, 148, 201, 144, 203,
+			185, 201, 34, 36, 4, 104, 4, 13, 148, 201, 144, 203, 34, 5, 0, 176, 37, 207, 5, 13, 203, 111, 201, 144, 0, 185, 34, 36, 4, 104,
+			3, 13, 203, 111, 0, 144, 34, 5, 0, 176, 183, 207, 13, 16, 0, 176, 8, 208, 0, 176, 73, 208, 0, 176, 154, 208, 0, 176, 235, 208,
+			29, 50, 32, 34, 38, 4, 0, 176, 60, 209, 0, 176, 157, 209, 0, 176, 238, 209, 4, 13, 155, 201, 185, 201, 34, 36, 3, 104, 2, 13,
+			155, 201, 34, 5, 0, 176, 63, 210, 0, 176, 174, 195, 4, 13, 170, 201, 185, 201, 34, 36, 3, 104, 2, 13, 170, 201, 34, 5, 0, 176,
+			160, 210, 4, 13, 138, 202, 185, 201, 44, 36, 3, 104, 2, 13, 138, 202, 44, 5, 0, 176, 1, 211, 5, 13, 201, 97, 201, 170, 0, 153,
+			44, 5, 0, 176, 82, 211, 5, 13, 201, 97, 201, 170, 0, 154, 44, 5, 0, 176, 179, 211, 7, 13, 201, 97, 202, 170, 201, 138, 0, 185,
+			34, 36, 5, 104, 5, 13, 201, 97, 202, 170, 0, 138, 34, 5, 0, 176, 20, 212, 2, 60, 50, 37, 9, 104, 2, 43, 129, 41, 6, 104,
+			50, 35, 135, 42, 2, 104, 2, 96, 25, 1, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192,
+			220, 103, 34, 50, 51, 50, 52, 34, 0, 192, 12, 105, 14, 34, 32, 195, 228, 106, 160, 197, 232, 107, 44, 5, 0, 176, 215, 198, 2, 41,
+			13, 1, 44, 5, 0, 41, 0, 176, 228, 197, 0, 176, 133, 212, 2, 41, 113, 1, 0, 176, 215, 198, 2, 57, 0, 41, 117, 1, 0, 176,
+			215, 198, 119, 16, 154, 18, 0, 176, 198, 212, 119, 16, 0, 176, 198, 212, 2, 13, 144, 201, 44, 5, 0, 176, 22, 180, 2, 13, 58, 97,
+			44, 5, 0, 176, 198, 212, 113, 16, 0, 176, 7, 213, 59, 34, 5, 104, 32, 238, 210, 25, 0, 176, 215, 198, 0, 176, 72, 213, 0, 145,
+			177, 9, 1, 0, 1, 13, 0, 101, 38, 5, 0, 176, 137, 213, 13, 16, 0, 176, 202, 213, 13, 16, 0, 176, 11, 214, 2, 13, 137, 202,
+			0, 176, 76, 214, 2, 13, 58, 97, 44, 5, 34, 34, 4, 104, 125, 10, 0, 176, 141, 214, 0, 176, 198, 212, 3, 13, 203, 97, 0, 144,
+			34, 4, 0, 176, 141, 214, 148, 18, 1, 13, 0, 101, 34, 4, 0, 176, 254, 214, 38, 5, 58, 32, 0, 208, 133, 192, 7, 57, 0, 41,
+			90, 10, 0, 176, 79, 215, 13, 16, 34, 34, 0, 176, 183, 207, 0, 176, 122, 1, 2, 13, 148, 201, 34, 4, 0, 176, 144, 215, 1, 13,
+			0, 111, 34, 4, 0, 176, 209, 215, 13, 16, 0, 176, 118, 207, 4, 13, 137, 202, 144, 203, 7, 41, 100, 10, 0, 41, 4, 104, 100, 10,
+			0, 176, 76, 214, 0, 176, 50, 216, 4, 13, 140, 202, 137, 202, 0, 176, 115, 216, 3, 13, 203, 111, 0, 144, 0, 176, 196, 216, 2, 57,
+			7, 41, 155, 1, 59, 34, 0, 176, 21, 217, 0, 176, 118, 217, 0, 176, 118, 217, 3, 13, 203, 101, 0, 144, 0, 176, 215, 217, 0, 176,
+			24, 218, 1, 13, 0, 101, 34, 4, 0, 176, 254, 214, 2, 13, 170, 201, 34, 4, 0, 176, 121, 218, 4, 13, 137, 202, 185, 201, 44, 34,
+			3, 104, 2, 13, 137, 202, 120, 10, 44, 5, 0, 176, 202, 218, 44, 5, 0, 176, 50, 197, 44, 5, 0, 176, 21, 217, 144, 1, 1, 0,
+			3, 13, 153, 201, 0, 108, 0, 145, 194, 0, 0, 176, 27, 219, 0, 176, 0, 0, 138, 41, 46, 1, 0, 145, 72, 0, 1, 0, 44, 5,
+			136, 40, 0, 176, 92, 219, 0, 176, 85, 0, 0, 145, 79, 10, 2, 13, 153, 201, 1, 0, 2, 41, 113, 1, 0, 176, 92, 219, 2, 57,
+			0, 41, 117, 1, 0, 176, 92, 219, 2, 13, 166, 195, 119, 16, 0, 176, 141, 219, 113, 16, 0, 176, 206, 219, 38, 5, 0, 176, 122, 199,
+			38, 5, 0, 176, 122, 199, 38, 5, 0, 176, 111, 205, 13, 16, 0, 176, 118, 207, 13, 16, 0, 176, 15, 220, 0, 176, 80, 220, 2, 13,
+			144, 201, 44, 5, 0, 176, 92, 219, 44, 5, 0, 176, 145, 220, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 145, 220, 4, 13, 145, 201,
+			144, 203, 0, 176, 145, 220, 13, 16, 44, 5, 0, 176, 226, 220, 38, 5, 58, 32, 0, 208, 133, 192, 0, 176, 57, 1, 13, 16, 44, 5,
+			0, 176, 32, 201, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 32, 201, 13, 16, 0, 176, 23, 193, 0, 176, 51, 221, 0, 176, 116, 221,
+			4, 13, 153, 201, 138, 202, 0, 176, 213, 221, 29, 50, 32, 34, 38, 4, 0, 176, 38, 222, 0, 176, 151, 222, 0, 176, 232, 222, 44, 5,
+			0, 176, 73, 223, 44, 5, 0, 176, 154, 223, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 251, 223, 44, 5, 0, 176, 193, 196, 144, 1,
+			1, 0, 44, 5, 0, 176, 60, 224, 111, 5, 0, 145, 82, 2, 1, 0, 119, 16, 0, 176, 183, 0, 113, 16, 0, 176, 248, 0, 38, 5,
+			55, 50, 59, 34, 0, 176, 122, 199, 0, 176, 157, 224, 38, 5, 0, 176, 57, 1, 13, 16, 0, 176, 58, 181, 2, 13, 138, 202, 13, 16,
+			0, 176, 61, 200, 23, 5, 0, 176, 146, 191, 2, 13, 144, 201, 0, 176, 203, 189, 44, 5, 0, 176, 126, 200, 4, 13, 145, 201, 144, 203,
+			44, 5, 0, 176, 126, 200, 1, 13, 0, 97, 0, 176, 183, 0, 13, 16, 44, 5, 0, 176, 78, 182, 2, 13, 105, 101, 38, 5, 0, 176,
+			206, 224, 13, 16, 44, 5, 0, 176, 32, 201, 4, 13, 148, 201, 144, 203, 44, 5, 0, 176, 32, 201, 13, 16, 0, 176, 32, 201, 3, 13,
+			153, 201, 0, 117, 0, 176, 31, 225, 4, 13, 166, 195, 138, 202, 0, 176, 3, 202, 4, 13, 140, 202, 138, 202, 0, 176, 112, 225, 4, 13,
+			148, 201, 170, 201, 0, 176, 232, 222, 3, 13, 203, 101, 0, 144, 0, 176, 209, 225, 3, 13, 201, 111, 0, 170, 0, 176, 165, 184, 4, 13,
+			156, 201, 144, 203, 44, 5, 0, 176, 52, 192, 44, 5, 0, 176, 34, 226, 44, 5, 0, 176, 96, 196, 44, 5, 0, 176, 131, 226, 144, 1,
+			1, 0, 44, 5, 0, 176, 50, 197, 44, 5, 0, 176, 244, 226, 2, 41, 113, 1, 0, 176, 244, 226, 0, 176, 87, 180, 113, 16, 0, 176,
+			248, 0, 38, 5, 0, 176, 157, 224, 38, 5, 0, 176, 157, 224, 38, 5, 0, 176, 57, 1, 0, 176, 8, 208, 0, 176, 58, 181, 0, 176,
+			53, 227, 0, 176, 22, 180, 0, 176, 87, 180, 44, 5, 0, 176, 87, 180, 0, 176, 87, 180, 44, 5, 0, 176, 58, 181, 38, 5, 0, 176,
+			118, 227, 0, 176, 122, 1, 44, 5, 0, 176, 122, 1, 44, 5, 0, 176, 183, 227, 0, 176, 122, 1, 0, 176, 187, 1, 0, 176, 8, 228,
+			0, 176, 233, 180, 0, 176, 162, 183, 0, 176, 248, 0, 0, 176, 24, 218, 44, 5, 0, 176, 254, 214, 44, 5, 0, 176, 89, 228, 46, 34,
+			4, 104, 95, 10, 0, 176, 170, 228, 0, 176, 219, 228, 2, 13, 144, 201, 0, 176, 81, 191, 0, 176, 12, 229, 2, 13, 153, 201, 46, 34,
+			4, 104, 95, 10, 0, 176, 170, 228, 0, 176, 77, 229, 0, 176, 126, 229, 0, 176, 175, 229, 0, 176, 224, 229, 59, 34, 32, 238, 17, 230,
+			0, 176, 66, 230, 59, 34, 32, 238, 17, 230, 0, 176, 66, 230, 3, 13, 153, 201, 0, 108, 0, 176, 89, 189, 0, 176, 115, 230, 3, 13,
+			201, 105, 0, 153, 0, 176, 180, 230, 38, 5, 0, 176, 21, 231, 4, 13, 138, 202, 153, 201, 0, 176, 86, 231, 0, 176, 183, 231, 0, 176,
+			248, 231, 0, 176, 105, 232, 38, 5, 0, 176, 202, 232, 38, 5, 0, 176, 43, 233, 4, 13, 155, 201, 170, 201, 38, 5, 0, 176, 156, 233,
+			38, 5, 0, 176, 237, 233, 4, 13, 138, 202, 170, 201, 38, 5, 0, 176, 94, 234, 38, 5, 0, 176, 207, 234, 38, 5, 0, 176, 48, 235,
+			0, 176, 145, 235, 0, 176, 10, 194, 0, 176, 248, 0, 0, 176, 32, 201, 0, 176, 52, 192, 0, 176, 226, 235, 0, 176, 51, 236, 0, 176,
+			116, 236, 0, 161, 25, 3, 173, 1, 238, 188, 0, 162, 146, 18, 173, 1, 110, 189, 192, 195, 197, 236, 0, 161, 25, 3, 64, 9, 118, 90,
+			0, 162, 18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 198, 4, 16, 223, 247, 4, 16, 223, 40, 5, 16, 223, 89, 5, 16, 223, 138, 5,
+			16, 223, 187, 5, 2, 39, 224, 236, 236, 5, 0, 176, 254, 13, 64, 246, 218, 16, 13, 48, 109, 32, 2, 104, 5, 96, 0, 176, 233, 11,
+			0, 240, 177, 6, 1, 0, 0, 161, 213, 3, 83, 1, 246, 221, 0, 162, 146, 18, 83, 1, 246, 221, 0, 192, 251, 119, 0, 176, 183, 0,
+			0, 176, 27, 239, 2, 13, 168, 201, 0, 176, 92, 239, 0, 176, 46, 205, 0, 176, 202, 213, 0, 176, 123, 181, 0, 176, 85, 0, 109, 18,
+			0, 176, 57, 1, 4, 13, 168, 201, 144, 203, 110, 18, 0, 176, 157, 239, 112, 18, 0, 176, 187, 1, 108, 18, 0, 176, 248, 0, 111, 18,
+			0, 176, 222, 239, 35, 18, 0, 176, 211, 191, 4, 13, 145, 201, 168, 201, 0, 176, 43, 233, 0, 176, 204, 194, 3, 13, 201, 97, 0, 168,
+			0, 176, 204, 194, 0, 176, 143, 182, 0, 176, 156, 233, 4, 13, 153, 201, 168, 201, 0, 176, 156, 233, 0, 176, 240, 182, 0, 176, 47, 240,
+			3, 13, 168, 201, 0, 117, 0, 176, 47, 240, 0, 176, 61, 195, 4, 13, 148, 201, 168, 201, 0, 176, 61, 195, 0, 176, 128, 240, 3, 13,
+			201, 117, 0, 168, 0, 176, 128, 240, 0, 161, 25, 3, 75, 1, 96, 170, 0, 162, 18, 34, 75, 9, 96, 170, 0, 176, 10, 12, 16, 244,
+			59, 12, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 1, 47, 0, 176, 222, 60, 133, 41, 5, 104, 0, 176,
+			15, 61, 192, 248, 64, 61, 0, 176, 48, 62, 96, 249, 97, 62, 34, 34, 5, 104, 2, 42, 2, 104, 2, 96, 108, 1, 0, 176, 184, 203,
+			139, 40, 105, 10, 0, 176, 203, 189, 87, 41, 62, 10, 0, 176, 183, 0, 16, 34, 67, 10, 0, 176, 12, 229, 13, 16, 16, 34, 67, 10,
+			0, 176, 12, 229, 16, 34, 67, 10, 38, 5, 0, 176, 122, 199, 0, 176, 122, 199, 16, 34, 67, 10, 0, 176, 122, 1, 16, 34, 67, 10,
+			34, 34, 5, 104, 2, 42, 2, 104, 2, 96, 115, 1, 0, 176, 188, 181, 0, 176, 225, 240, 35, 17, 0, 176, 225, 240, 58, 32, 0, 208,
+			133, 192, 0, 176, 50, 241, 111, 18, 58, 32, 0, 208, 133, 192, 0, 176, 50, 241, 0, 176, 187, 1, 0, 176, 115, 241, 0, 176, 212, 241,
+			0, 176, 68, 184, 0, 176, 165, 184, 0, 176, 37, 242, 0, 176, 215, 217, 0, 176, 233, 180, 0, 176, 253, 181, 2, 13, 143, 202, 16, 34,
+			57, 10, 0, 176, 102, 242, 0, 176, 78, 182, 16, 34, 80, 10, 0, 176, 175, 229, 2, 13, 102, 112, 0, 162, 18, 2, 75, 1, 84, 65,
+			0, 192, 186, 128, 140, 43, 81, 1, 2, 96, 99, 1, 1, 0, 2, 41, 55, 1, 6, 108, 64, 236, 4, 23, 128, 237, 69, 23, 32, 238,
+			134, 23, 32, 238, 183, 23, 128, 237, 248, 23, 128, 237, 73, 24, 0, 176, 167, 242, 2, 41, 21, 104, 6, 106, 0, 208, 82, 32, 0, 208,
+			147, 32, 0, 208, 212, 32, 0, 208, 21, 33, 0, 208, 70, 33, 0, 208, 151, 33, 32, 238, 200, 33, 0, 39, 3, 104, 0, 176, 200, 242,
+			7, 96, 0, 162, 35, 18, 0, 0, 0, 0, 0, 176, 10, 34, 1, 0, 14, 37, 2, 104, 11, 96, 2, 43, 9, 104, 2, 44, 3, 104,
+			51, 1, 5, 96, 47, 37, 2, 104, 2, 96, 14, 3, 92, 39, 1, 1, 0, 145, 137, 2, 1, 0, 2, 13, 128, 202, 2, 43, 5, 104,
+			0, 176, 235, 17, 32, 243, 44, 18, 92, 39, 3, 104, 1, 1, 2, 96, 136, 1, 1, 0, 2, 43, 34, 1, 2, 13, 144, 201, 29, 48,
+			109, 32, 0, 176, 233, 242, 33, 32, 0, 176, 26, 243, 0, 176, 75, 243, 4, 13, 138, 202, 144, 201, 0, 176, 124, 243, 0, 176, 205, 243,
+			55, 1, 1, 0, 139, 34, 48, 1, 0, 145, 193, 2, 1, 0, 139, 34, 47, 1, 0, 145, 12, 3, 1, 0, 139, 34, 49, 1, 0, 145,
+			150, 3, 1, 0, 0, 176, 87, 180, 0, 176, 12, 229, 38, 5, 0, 176, 57, 1, 136, 40, 0, 176, 233, 180, 0, 176, 32, 201, 0, 176,
+			187, 1, 0, 176, 143, 182, 0, 176, 240, 182, 0, 176, 162, 183, 0, 176, 34, 244, 0, 176, 237, 233, 0, 176, 22, 185, 0, 176, 12, 229,
+			0, 176, 12, 229, 38, 5, 108, 17, 0, 176, 115, 244, 38, 5, 0, 176, 92, 239, 0, 176, 12, 229, 0, 176, 141, 219, 0, 176, 180, 244,
+			0, 176, 8, 208, 0, 176, 32, 201, 0, 176, 78, 182, 0, 176, 123, 181, 0, 176, 245, 244, 0, 176, 54, 245, 0, 176, 253, 181, 0, 176,
+			119, 245, 0, 176, 216, 245, 0, 176, 61, 195, 0, 176, 34, 244, 0, 176, 41, 246, 0, 176, 122, 246, 0, 176, 203, 246, 0, 176, 28, 247,
+			0, 176, 125, 247, 0, 176, 206, 247, 0, 176, 31, 248, 0, 176, 128, 248, 0, 176, 209, 248, 0, 176, 34, 249, 0, 176, 115, 249, 0, 176,
+			196, 249, 0, 176, 89, 228, 0, 176, 21, 250, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170,
+			0, 176, 102, 250, 32, 243, 63, 14, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 165, 65,
+			0, 176, 56, 66, 0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18, 79, 9, 98, 155, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104,
+			0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47, 192, 243, 244, 53, 0, 176, 60, 53, 192, 243, 244, 53, 28, 34,
+			0, 192, 8, 156, 29, 34, 0, 192, 93, 157, 30, 34, 0, 192, 252, 158, 31, 34, 0, 192, 161, 160, 32, 34, 96, 196, 167, 250, 33, 34,
+			0, 197, 167, 250, 96, 196, 127, 165, 0, 176, 180, 244, 0, 176, 227, 252, 0, 176, 176, 205, 0, 176, 72, 213, 0, 176, 36, 253, 0, 176,
+			101, 253, 0, 176, 166, 253, 0, 176, 231, 253, 0, 176, 92, 239, 0, 176, 40, 254, 0, 176, 251, 223, 0, 176, 233, 180, 0, 176, 58, 181,
+			0, 176, 105, 254, 0, 176, 170, 254, 0, 176, 235, 254, 0, 176, 44, 255, 0, 176, 109, 255, 0, 176, 141, 219, 0, 176, 141, 219, 0, 176,
+			78, 182, 0, 176, 78, 182, 0, 176, 253, 181, 0, 176, 253, 181, 0, 176, 216, 245, 0, 176, 174, 255, 0, 176, 203, 246, 0, 161, 25, 3,
+			169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 165, 65, 0, 176, 56, 66, 0, 161, 21, 29, 77, 5, 158, 162,
+			0, 162, 146, 18, 77, 1, 94, 162, 133, 41, 192, 195, 228, 106, 0, 197, 245, 108, 0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18,
+			79, 9, 98, 155, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47,
+			192, 243, 244, 53, 0, 176, 60, 53, 192, 243, 244, 53, 50, 34, 5, 104, 0, 176, 144, 6, 0, 240, 177, 6, 0, 176, 233, 11, 0, 240,
+			177, 6, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 0, 41, 0, 192, 249, 122, 31, 50, 61, 34, 128, 194,
+			251, 119, 55, 34, 128, 194, 109, 121, 34, 34, 128, 194, 107, 118, 49, 34, 160, 192, 249, 122, 64, 193, 249, 122, 28, 34, 0, 192, 8, 156,
+			29, 34, 0, 192, 93, 157, 30, 34, 0, 192, 252, 158, 31, 34, 0, 192, 161, 160, 32, 34, 0, 192, 7, 162, 33, 34, 0, 192, 182, 163,
+			96, 196, 127, 165, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 255, 255, 0, 161, 227, 83, 85, 1,
+			246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 192, 195, 125, 115, 0, 197, 245, 108, 0, 161, 232, 83, 83, 9, 246, 221, 0, 162,
+			50, 82, 83, 41, 246, 221, 1, 47, 1, 176, 44, 2, 133, 41, 5, 104, 0, 176, 1, 52, 129, 242, 93, 2, 87, 41, 5, 104, 0, 176,
+			100, 47, 1, 245, 93, 2, 0, 176, 60, 53, 1, 245, 93, 2, 111, 32, 1, 224, 98, 3, 33, 96, 112, 32, 1, 224, 131, 3, 29, 96,
+			113, 32, 1, 224, 164, 3, 25, 96, 114, 48, 115, 32, 1, 224, 197, 3, 20, 96, 116, 32, 1, 224, 246, 3, 16, 96, 2, 39, 14, 104,
+			6, 108, 1, 224, 39, 4, 1, 224, 72, 4, 1, 224, 105, 4, 1, 224, 138, 4, 1, 224, 171, 4, 1, 224, 204, 4, 1, 0, 112, 34,
+			1, 208, 237, 4, 46, 96, 117, 34, 1, 208, 14, 5, 42, 96, 113, 34, 1, 208, 47, 5, 38, 96, 114, 50, 115, 34, 1, 208, 80, 5,
+			33, 96, 111, 34, 1, 208, 113, 5, 29, 96, 58, 34, 1, 208, 146, 5, 25, 96, 116, 34, 1, 208, 179, 5, 21, 96, 57, 50, 118, 34,
+			1, 208, 212, 5, 16, 96, 2, 41, 14, 104, 6, 106, 1, 208, 245, 5, 1, 208, 22, 6, 1, 208, 55, 6, 1, 208, 88, 6, 1, 208,
+			121, 6, 1, 208, 154, 6, 1, 0, 0, 161, 25, 3, 71, 1, 222, 185, 2, 13, 129, 202, 138, 41, 46, 1, 4, 96, 138, 55, 0, 39,
+			119, 1, 0, 145, 248, 14, 0, 145, 29, 15, 1, 176, 187, 6, 2, 13, 129, 202, 138, 41, 1, 1, 2, 96, 34, 1, 1, 0, 2, 13,
+			129, 202, 47, 53, 48, 53, 49, 37, 5, 104, 1, 176, 220, 6, 240, 240, 177, 6, 138, 39, 5, 104, 1, 176, 13, 7, 240, 240, 177, 6,
+			6, 108, 1, 224, 46, 7, 1, 224, 79, 7, 1, 224, 112, 7, 1, 224, 145, 7, 1, 224, 178, 7, 1, 224, 211, 7, 111, 32, 1, 224,
+			244, 7, 8, 41, 5, 104, 1, 176, 21, 8, 64, 241, 177, 6, 109, 34, 15, 10, 1, 176, 70, 8, 64, 241, 177, 6, 0, 161, 25, 3,
+			71, 1, 222, 185, 2, 13, 129, 202, 0, 145, 29, 15, 83, 53, 49, 53, 48, 53, 89, 53, 47, 53, 91, 37, 1, 176, 103, 8, 110, 37,
+			1, 176, 168, 8, 40, 10, 1, 176, 187, 6, 1, 0, 138, 41, 56, 1, 3, 96, 110, 37, 59, 1, 6, 106, 0, 208, 238, 21, 96, 223,
+			31, 22, 16, 223, 64, 22, 16, 223, 97, 22, 97, 223, 233, 8, 192, 222, 211, 22, 28, 32, 224, 236, 171, 24, 4, 96, 2, 39, 128, 237,
+			171, 24, 0, 55, 134, 40, 0, 176, 204, 24, 87, 55, 8, 39, 0, 176, 204, 24, 47, 32, 0, 176, 253, 24, 56, 32, 0, 176, 30, 25,
+			0, 176, 63, 25, 2, 41, 55, 1, 111, 37, 1, 224, 10, 9, 16, 96, 2, 44, 14, 104, 6, 108, 0, 224, 230, 26, 0, 224, 7, 27,
+			0, 224, 40, 27, 0, 224, 73, 27, 0, 224, 122, 27, 0, 224, 171, 27, 109, 32, 0, 176, 204, 24, 0, 176, 138, 24, 138, 41, 56, 1,
+			6, 106, 0, 208, 238, 21, 96, 223, 31, 22, 16, 223, 64, 22, 16, 223, 97, 22, 96, 223, 146, 22, 192, 222, 211, 22, 47, 32, 0, 176,
+			253, 24, 0, 176, 63, 25, 1, 176, 43, 9, 1, 176, 43, 9, 2, 43, 110, 10, 2, 96, 85, 10, 1, 176, 92, 9, 81, 181, 92, 9,
+			56, 34, 192, 238, 171, 24, 5, 96, 2, 41, 100, 10, 2, 96, 85, 10, 0, 176, 37, 242, 0, 176, 37, 242, 57, 36, 95, 10, 2, 96,
+			85, 10, 0, 176, 206, 219, 0, 176, 206, 219, 119, 53, 59, 37, 5, 104, 2, 43, 2, 104, 120, 10, 16, 96, 109, 37, 2, 43, 8, 104,
+			31, 36, 4, 104, 110, 10, 38, 5, 2, 96, 118, 1, 6, 96, 2, 43, 57, 1, 3, 96, 75, 10, 38, 5, 0, 176, 166, 253, 6, 106,
+			0, 208, 82, 32, 0, 208, 147, 32, 0, 208, 212, 32, 0, 208, 21, 33, 0, 208, 70, 33, 0, 208, 151, 33, 1, 176, 157, 9, 2, 41,
+			110, 10, 2, 96, 85, 10, 139, 40, 1, 176, 222, 9, 0, 176, 233, 180, 1, 0, 139, 40, 1, 176, 47, 10, 108, 36, 138, 42, 1, 176,
+			47, 10, 109, 36, 138, 42, 1, 176, 47, 10, 0, 176, 251, 223, 2, 57, 57, 34, 110, 10, 2, 96, 90, 10, 0, 176, 105, 254, 0, 176,
+			105, 254, 114, 52, 31, 36, 4, 104, 55, 10, 0, 181, 253, 181, 90, 10, 0, 176, 253, 181, 0, 176, 253, 181, 0, 176, 24, 189, 0, 176,
+			24, 189, 0, 176, 78, 182, 109, 48, 108, 37, 15, 104, 6, 106, 0, 208, 104, 30, 1, 208, 112, 10, 0, 208, 202, 30, 0, 208, 251, 30,
+			0, 208, 44, 31, 0, 208, 93, 31, 2, 96, 133, 1, 1, 0, 2, 41, 23, 104, 6, 106, 0, 208, 104, 30, 1, 208, 112, 10, 0, 208,
+			202, 30, 0, 208, 251, 30, 0, 208, 44, 31, 0, 208, 93, 31, 32, 238, 142, 31, 0, 39, 3, 104, 0, 176, 175, 31, 0, 176, 175, 31,
+			11, 96, 0, 162, 25, 18, 0, 0, 0, 0, 31, 32, 3, 104, 0, 176, 224, 31, 0, 176, 33, 32, 1, 0, 0, 176, 205, 243, 134, 34,
+			0, 176, 206, 219, 1, 176, 161, 10, 1, 176, 242, 10, 1, 176, 161, 10, 0, 161, 213, 3, 173, 9, 84, 90, 0, 162, 18, 34, 73, 9,
+			84, 73, 2, 47, 15, 104, 0, 161, 213, 3, 73, 5, 84, 73, 133, 41, 5, 104, 0, 176, 7, 48, 0, 240, 56, 48, 0, 176, 7, 48,
+			0, 240, 62, 49, 1, 47, 7, 104, 109, 36, 3, 104, 1, 176, 67, 11, 0, 176, 214, 47, 133, 57, 55, 34, 5, 104, 0, 176, 151, 49,
+			0, 240, 56, 48, 56, 34, 0, 176, 143, 51, 109, 34, 5, 104, 1, 176, 116, 11, 32, 243, 62, 49, 0, 176, 143, 51, 96, 244, 62, 49,
+			0, 161, 21, 29, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 7, 104, 109, 36, 3, 104, 1, 176, 149, 11, 0, 176,
+			208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 32, 243, 50, 52, 109, 36, 5, 104, 0, 176, 100, 47, 32, 243, 50, 52, 0, 176, 60, 53,
+			128, 242, 109, 53, 0, 162, 18, 2, 171, 1, 84, 65, 0, 41, 0, 192, 6, 126, 0, 197, 186, 128, 0, 161, 213, 3, 73, 9, 238, 172,
+			0, 162, 18, 34, 73, 5, 46, 173, 1, 47, 7, 104, 109, 36, 3, 104, 1, 176, 198, 11, 0, 176, 222, 60, 133, 41, 5, 104, 0, 176,
+			15, 61, 0, 240, 64, 61, 109, 36, 5, 104, 1, 176, 247, 11, 65, 241, 40, 12, 0, 176, 48, 62, 65, 241, 40, 12, 0, 161, 213, 3,
+			77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 60, 117, 31, 50, 38, 34, 208, 194, 251, 119, 108, 34, 128, 194,
+			109, 121, 109, 34, 4, 104, 22, 10, 32, 195, 46, 124, 128, 194, 46, 124, 0, 162, 146, 50, 77, 9, 98, 162, 2, 47, 7, 104, 0, 161,
+			25, 3, 79, 1, 222, 154, 0, 176, 78, 38, 6, 106, 0, 208, 143, 38, 0, 208, 208, 38, 0, 208, 17, 39, 0, 208, 82, 39, 0, 208,
+			147, 39, 0, 208, 212, 39, 138, 39, 3, 43, 0, 176, 21, 40, 0, 55, 50, 32, 0, 176, 70, 40, 138, 41, 4, 104, 60, 10, 1, 176,
+			216, 12, 1, 0, 58, 50, 2, 41, 50, 1, 2, 96, 1, 1, 1, 0, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1,
+			84, 65, 133, 41, 0, 197, 33, 98, 14, 34, 96, 196, 55, 101, 108, 34, 32, 195, 2, 102, 109, 34, 4, 104, 20, 10, 0, 197, 33, 98,
+			160, 197, 74, 172, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 138, 41, 1, 1, 208, 194, 0, 103, 0, 161,
+			25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41, 208, 194, 192, 69, 48, 50, 47, 50, 49, 34, 208, 194, 252, 134,
+			208, 194, 40, 137, 0, 161, 25, 3, 77, 1, 102, 172, 0, 162, 18, 2, 77, 1, 102, 172, 47, 37, 30, 10, 0, 41, 208, 194, 16, 139,
+			208, 194, 188, 141, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 128, 194, 220, 103, 109, 34, 4, 104,
+			20, 10, 33, 195, 9, 13, 128, 194, 218, 173, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 2, 57, 58, 50,
+			57, 34, 224, 193, 218, 173, 1, 1, 1, 0, 0, 41, 47, 1, 5, 96, 138, 41, 1, 1, 2, 96, 140, 1, 1, 0, 0, 161, 25, 3,
+			169, 1, 84, 90, 0, 162, 18, 2, 169, 1, 84, 73, 2, 47, 4, 104, 0, 145, 201, 3, 1, 0, 133, 41, 5, 104, 0, 176, 165, 65,
+			0, 240, 52, 63, 134, 40, 3, 43, 35, 10, 4, 96, 133, 52, 109, 36, 30, 10, 0, 176, 56, 66, 192, 243, 52, 63, 13, 16, 0, 176,
+			81, 191, 0, 162, 25, 18, 13, 1, 98, 170, 88, 36, 0, 176, 208, 51, 133, 57, 0, 41, 5, 104, 0, 176, 143, 69, 208, 242, 192, 69,
+			47, 37, 30, 10, 0, 176, 109, 72, 208, 242, 192, 69, 2, 57, 133, 50, 57, 34, 6, 104, 35, 10, 0, 176, 109, 72, 128, 242, 40, 137,
+			1, 1, 1, 0, 0, 41, 89, 1, 6, 96, 2, 57, 133, 34, 88, 1, 2, 96, 1, 1, 1, 0, 0, 176, 206, 219, 0, 176, 123, 181,
+			1, 176, 217, 13, 38, 5, 0, 176, 122, 199, 0, 176, 53, 227, 1, 176, 42, 14, 1, 176, 107, 14, 0, 176, 227, 252, 0, 161, 25, 3,
+			71, 1, 222, 185, 138, 41, 46, 1, 1, 176, 188, 14, 128, 247, 177, 6, 14, 16, 108, 34, 0, 176, 92, 219, 1, 176, 253, 14, 130, 40,
+			19, 104, 108, 32, 2, 104, 13, 1, 136, 40, 2, 104, 1, 1, 92, 45, 7, 0, 2, 104, 9, 96, 143, 40, 3, 104, 1, 1, 5, 96,
+			141, 40, 2, 104, 2, 96, 1, 1, 73, 39, 110, 1, 11, 96, 34, 32, 111, 1, 8, 96, 130, 40, 2, 104, 13, 1, 108, 34, 3, 104,
+			0, 176, 92, 219, 0, 176, 15, 220, 0, 176, 92, 219, 14, 16, 0, 176, 215, 198, 38, 5, 0, 176, 118, 227, 38, 5, 1, 176, 62, 15,
+			38, 5, 0, 176, 92, 239, 0, 176, 215, 217, 0, 176, 215, 217, 1, 176, 127, 15, 0, 176, 206, 219, 0, 176, 141, 219, 0, 176, 180, 244,
+			0, 176, 203, 189, 0, 176, 222, 239, 0, 176, 233, 180, 0, 176, 58, 181, 0, 176, 16, 191, 0, 176, 53, 227, 0, 176, 123, 181, 1, 176,
+			208, 15, 1, 176, 17, 16, 0, 176, 51, 236, 0, 176, 26, 204, 1, 176, 82, 16, 1, 176, 163, 16, 0, 176, 134, 198, 1, 176, 228, 16,
+			1, 176, 53, 17, 1, 176, 53, 17, 0, 176, 216, 245, 1, 176, 118, 17, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1,
+			84, 65, 1, 47, 0, 176, 214, 47, 0, 176, 200, 49, 96, 244, 153, 172, 0, 161, 21, 28, 77, 1, 94, 170, 0, 162, 146, 18, 77, 1,
+			94, 162, 133, 41, 48, 194, 228, 106, 32, 195, 228, 106, 0, 161, 213, 3, 77, 1, 94, 170, 0, 162, 146, 18, 77, 1, 94, 162, 1, 47,
+			0, 176, 208, 51, 1, 176, 215, 17, 128, 242, 228, 106, 2, 13, 136, 202, 0, 161, 213, 3, 71, 1, 100, 170, 0, 162, 146, 18, 71, 65,
+			100, 162, 0, 192, 218, 173, 3, 13, 136, 202, 0, 104, 0, 161, 213, 3, 71, 1, 100, 170, 0, 162, 146, 18, 71, 65, 100, 162, 0, 192,
+			232, 107, 2, 13, 150, 201, 0, 161, 213, 3, 71, 5, 100, 170, 0, 162, 18, 2, 71, 69, 100, 170, 1, 47, 1, 176, 149, 11, 133, 41,
+			5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 0, 176, 100, 47, 0, 240, 109, 53, 3, 13, 150, 201, 0, 104, 0, 161, 213, 3, 71, 5,
+			100, 170, 0, 162, 18, 2, 71, 69, 100, 170, 1, 47, 1, 176, 149, 11, 0, 176, 100, 47, 0, 240, 232, 107, 0, 145, 29, 5, 2, 13,
+			104, 99, 1, 0, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 18, 2, 85, 33, 246, 221, 1, 47, 0, 176, 233, 59, 0, 176, 233, 59,
+			0, 240, 188, 113, 0, 161, 149, 18, 76, 5, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 1, 47, 1, 176, 8, 18, 133, 41, 5, 104,
+			1, 176, 8, 18, 48, 242, 105, 176, 1, 176, 8, 18, 32, 243, 105, 176, 193, 195, 57, 18, 0, 176, 81, 191, 109, 18, 0, 176, 183, 0,
+			2, 13, 140, 202, 136, 41, 65, 34, 13, 1, 0, 176, 15, 220, 2, 59, 150, 36, 1, 1, 109, 1, 1, 0, 1, 176, 5, 19, 0, 176,
+			248, 0, 0, 176, 248, 0, 136, 40, 130, 40, 1, 176, 70, 19, 1, 176, 62, 15, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 233, 180,
+			122, 18, 1, 176, 135, 19, 1, 176, 135, 19, 2, 13, 137, 202, 1, 176, 200, 19, 40, 44, 2, 104, 2, 96, 152, 18, 1, 176, 135, 19,
+			2, 13, 137, 202, 1, 176, 200, 19, 1, 176, 9, 20, 0, 176, 10, 194, 1, 1, 1, 0, 0, 176, 85, 0, 2, 13, 144, 201, 1, 176,
+			106, 20, 0, 176, 198, 212, 0, 176, 248, 0, 0, 176, 248, 0, 1, 176, 62, 15, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 233, 180,
+			0, 176, 53, 227, 0, 176, 53, 227, 0, 176, 162, 183, 1, 176, 118, 17, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9,
+			94, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47, 64, 246,
+			244, 53, 32, 179, 60, 53, 192, 243, 152, 185, 0, 176, 92, 219, 2, 13, 168, 201, 0, 181, 76, 214, 2, 13, 144, 201, 131, 56, 141, 56,
+			136, 40, 1, 176, 106, 20, 13, 17, 65, 34, 136, 41, 2, 104, 13, 1, 0, 176, 203, 189, 1, 0, 35, 1, 1, 0, 1, 176, 5, 19,
+			0, 176, 248, 0, 0, 176, 248, 0, 1, 176, 62, 15, 0, 176, 122, 199, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 233, 180, 0, 176,
+			187, 1, 0, 176, 187, 1, 0, 176, 162, 183, 1, 176, 118, 17, 0, 176, 118, 207, 0, 176, 206, 219, 38, 5, 0, 176, 115, 244, 0, 176,
+			251, 223, 0, 176, 53, 227, 1, 176, 171, 20, 0, 176, 102, 242, 0, 176, 57, 1, 0, 176, 187, 199, 0, 176, 183, 0, 0, 176, 222, 239,
+			0, 176, 123, 181, 0, 176, 253, 181, 0, 176, 78, 182, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192,
+			130, 169, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 208, 194, 228, 106, 32, 195, 228, 106, 47, 34,
+			0, 192, 1, 0, 47, 1, 1, 0, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170, 1, 47, 0, 176, 208, 51,
+			133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 244, 53, 34, 34, 5, 104, 0, 176, 100, 47, 224, 246, 244, 53, 0, 176, 60, 53, 224, 246,
+			244, 53, 138, 41, 56, 1, 0, 145, 194, 0, 28, 32, 224, 236, 171, 24, 4, 96, 2, 39, 128, 237, 171, 24, 0, 39, 0, 176, 204, 24,
+			47, 32, 0, 176, 253, 24, 0, 176, 63, 25, 0, 176, 44, 255, 0, 176, 198, 212, 0, 176, 198, 212, 0, 176, 198, 212, 0, 41, 0, 176,
+			152, 180, 0, 176, 206, 219, 0, 41, 0, 176, 152, 180, 0, 176, 206, 219, 0, 176, 206, 219, 1, 176, 236, 20, 1, 176, 61, 21, 114, 19,
+			0, 176, 21, 231, 0, 176, 21, 231, 1, 176, 62, 15, 0, 176, 32, 201, 0, 176, 32, 201, 0, 176, 32, 201, 0, 176, 187, 1, 0, 176,
+			187, 1, 0, 176, 123, 181, 0, 176, 187, 1, 0, 176, 187, 1, 1, 176, 142, 21, 0, 176, 34, 244, 0, 176, 28, 247, 1, 176, 239, 21,
+			0, 176, 61, 195, 0, 176, 22, 185, 1, 176, 80, 22, 0, 176, 143, 182, 0, 176, 240, 182, 1, 176, 161, 22, 0, 176, 162, 183, 1, 176,
+			242, 22, 2, 44, 2, 104, 2, 96, 14, 3, 0, 181, 254, 13, 32, 243, 63, 14, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176,
+			173, 54, 133, 41, 5, 104, 0, 176, 222, 54, 0, 240, 15, 55, 1, 0, 0, 161, 227, 83, 85, 1, 246, 221, 0, 192, 188, 113, 0, 161,
+			213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 48, 194, 228, 106, 192, 195, 228, 106, 0, 161, 227, 83, 85, 1,
+			246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 125, 115, 192, 195, 125, 115, 0, 161, 213, 3, 76, 9, 94, 170, 0, 162,
+			18, 2, 76, 9, 94, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 87, 41, 5, 104, 0, 176,
+			100, 47, 224, 246, 244, 53, 0, 176, 60, 53, 224, 246, 244, 53, 0, 161, 232, 83, 83, 9, 246, 221, 0, 162, 50, 82, 83, 41, 246, 221,
+			1, 47, 1, 176, 44, 2, 133, 41, 5, 104, 0, 176, 1, 52, 129, 242, 93, 2, 87, 41, 5, 104, 0, 176, 100, 47, 1, 245, 93, 2,
+			0, 176, 60, 53, 1, 245, 93, 2, 6, 106, 0, 208, 141, 41, 0, 208, 238, 41, 0, 208, 63, 42, 0, 208, 160, 42, 0, 208, 1, 43,
+			0, 208, 114, 43, 0, 39, 0, 176, 211, 43, 138, 41, 10, 104, 67, 36, 3, 104, 37, 10, 4, 96, 67, 37, 2, 104, 50, 10, 0, 176,
+			244, 43, 1, 0, 2, 13, 173, 201, 0, 176, 148, 29, 3, 13, 204, 108, 0, 169, 0, 176, 133, 4, 0, 176, 44, 255, 38, 5, 1, 176,
+			62, 15, 38, 5, 1, 176, 62, 15, 0, 176, 206, 219, 0, 176, 206, 219, 0, 176, 141, 219, 0, 176, 141, 219, 112, 16, 0, 176, 198, 212,
+			0, 176, 198, 212, 2, 13, 144, 201, 0, 176, 241, 205, 0, 176, 32, 201, 0, 176, 32, 201, 0, 176, 187, 1, 0, 176, 187, 1, 1, 176,
+			142, 21, 0, 176, 34, 244, 0, 176, 28, 247, 1, 176, 239, 21, 0, 176, 61, 195, 0, 176, 22, 185, 1, 176, 80, 22, 0, 176, 31, 248,
+			0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 254, 13, 32, 243, 63, 14, 0, 161, 213, 3, 77, 1,
+			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 42, 167, 161, 197, 67, 23, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162,
+			146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 220, 103, 48, 199, 218, 173, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1,
+			84, 65, 133, 41, 0, 197, 74, 172, 55, 34, 0, 192, 2, 102, 128, 199, 55, 101, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162, 146, 18,
+			77, 1, 110, 189, 133, 41, 0, 192, 60, 117, 31, 50, 61, 34, 0, 192, 251, 119, 55, 34, 0, 192, 109, 121, 192, 195, 249, 122, 0, 161,
+			25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 42, 178, 0, 176, 184, 203, 0, 176, 50, 241, 0, 176, 122, 199,
+			0, 176, 253, 181, 0, 176, 78, 182, 0, 176, 123, 181, 0, 176, 12, 229, 13, 16, 0, 176, 27, 239, 1, 176, 119, 24, 1, 176, 119, 24,
+			129, 40, 7, 104, 136, 40, 3, 104, 1, 176, 106, 20, 1, 176, 184, 24, 0, 176, 183, 0, 0, 176, 87, 180, 129, 40, 1, 176, 106, 20,
+			0, 176, 176, 205, 0, 176, 134, 198, 0, 176, 243, 183, 13, 17, 119, 1, 1, 0, 1, 176, 249, 24, 1, 176, 58, 25, 0, 176, 68, 184,
+			0, 176, 128, 248, 0, 176, 8, 228, 0, 176, 240, 182, 1, 176, 139, 25, 0, 161, 25, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9,
+			46, 173, 101, 37, 1, 1, 140, 43, 2, 104, 2, 96, 101, 1, 133, 41, 5, 104, 0, 176, 191, 94, 0, 240, 136, 90, 1, 176, 236, 25,
+			193, 248, 29, 26, 1, 13, 0, 32, 1, 0, 136, 40, 5, 104, 47, 50, 72, 34, 2, 104, 128, 1, 0, 145, 87, 6, 1, 0, 136, 40,
+			5, 104, 47, 50, 72, 34, 2, 104, 128, 1, 128, 32, 47, 1, 0, 145, 12, 3, 1, 0, 136, 40, 5, 104, 48, 50, 71, 34, 2, 104,
+			128, 1, 0, 145, 52, 6, 1, 0, 136, 40, 5, 104, 48, 50, 71, 34, 2, 104, 128, 1, 128, 32, 48, 1, 0, 145, 193, 2, 1, 0,
+			136, 40, 5, 104, 89, 50, 88, 34, 2, 104, 128, 1, 0, 145, 125, 5, 1, 0, 136, 40, 5, 104, 89, 50, 88, 34, 2, 104, 128, 1,
+			128, 32, 89, 1, 0, 145, 16, 4, 1, 0, 108, 16, 0, 176, 183, 0, 2, 13, 144, 201, 1, 176, 106, 20, 0, 41, 0, 176, 152, 180,
+			0, 176, 206, 219, 1, 176, 80, 28, 38, 5, 0, 176, 231, 253, 1, 176, 145, 28, 0, 176, 123, 181, 2, 13, 168, 201, 1, 176, 210, 28,
+			1, 176, 19, 29, 1, 176, 116, 29, 1, 13, 0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176,
+			254, 13, 32, 243, 63, 14, 0, 161, 213, 3, 77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 48, 194, 228, 106, 192, 195,
+			228, 106, 0, 161, 227, 83, 85, 1, 246, 221, 0, 162, 25, 18, 51, 37, 246, 221, 133, 41, 224, 193, 125, 115, 192, 195, 125, 115, 0, 161,
+			213, 3, 76, 9, 94, 170, 0, 162, 18, 2, 76, 9, 94, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240,
+			50, 52, 87, 41, 5, 104, 0, 176, 100, 47, 224, 246, 244, 53, 0, 176, 60, 53, 224, 246, 244, 53, 0, 161, 232, 83, 83, 9, 246, 221,
+			0, 162, 50, 82, 83, 41, 246, 221, 1, 47, 1, 176, 44, 2, 133, 41, 5, 104, 0, 176, 1, 52, 129, 242, 93, 2, 87, 41, 5, 104,
+			0, 176, 100, 47, 1, 245, 93, 2, 0, 176, 60, 53, 1, 245, 93, 2, 0, 145, 31, 6, 3, 13, 202, 100, 0, 145, 1, 0, 0, 145,
+			29, 5, 3, 13, 201, 116, 0, 149, 1, 0, 0, 145, 93, 1, 2, 41, 0, 176, 103, 185, 1, 0, 0, 162, 18, 2, 75, 1, 84, 65,
+			133, 41, 0, 192, 6, 126, 89, 34, 0, 202, 186, 128, 192, 200, 186, 128, 38, 5, 0, 176, 92, 239, 38, 5, 0, 176, 21, 231, 1, 176,
+			213, 29, 0, 176, 12, 229, 0, 176, 206, 219, 136, 40, 129, 40, 0, 176, 138, 189, 0, 176, 183, 0, 0, 176, 183, 0, 0, 176, 32, 201,
+			0, 176, 32, 201, 0, 176, 245, 244, 0, 176, 123, 181, 0, 176, 143, 182, 0, 176, 240, 182, 1, 176, 161, 22, 0, 176, 162, 183, 1, 176,
+			242, 22, 3, 13, 204, 114, 0, 169, 0, 176, 52, 4, 5, 13, 204, 114, 203, 169, 0, 144, 0, 176, 52, 4, 3, 13, 204, 114, 0, 157,
+			0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 139, 75, 33, 243, 6, 30, 5, 13, 204, 114, 204, 157,
+			0, 138, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 1, 176, 177, 32, 145, 241, 6, 30, 3, 13, 204, 108,
+			0, 169, 0, 176, 133, 4, 5, 13, 204, 108, 203, 169, 0, 144, 0, 176, 133, 4, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18,
+			77, 1, 98, 162, 133, 41, 0, 192, 220, 103, 0, 192, 218, 173, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65,
+			133, 41, 0, 197, 55, 101, 55, 34, 0, 192, 2, 102, 128, 199, 55, 101, 0, 176, 206, 219, 0, 176, 198, 212, 0, 176, 202, 213, 0, 176,
+			187, 1, 1, 176, 226, 32, 3, 13, 204, 114, 0, 169, 0, 176, 52, 4, 0, 161, 25, 3, 77, 1, 106, 172, 0, 162, 18, 2, 77, 1,
+			106, 172, 133, 41, 161, 197, 51, 33, 225, 198, 51, 33, 0, 161, 213, 3, 77, 1, 102, 156, 133, 41, 129, 194, 152, 35, 33, 195, 152, 35,
+			3, 13, 201, 116, 0, 149, 0, 161, 227, 83, 85, 1, 114, 205, 133, 41, 33, 195, 91, 37, 33, 195, 91, 37, 0, 161, 25, 3, 75, 1,
+			232, 171, 0, 162, 18, 34, 75, 9, 232, 171, 133, 41, 5, 104, 0, 176, 90, 75, 1, 245, 51, 33, 0, 176, 139, 75, 97, 249, 51, 33,
+			0, 161, 213, 3, 81, 9, 102, 172, 0, 162, 18, 34, 81, 9, 102, 172, 1, 47, 0, 176, 173, 54, 133, 41, 5, 104, 0, 176, 222, 54,
+			33, 243, 152, 35, 1, 176, 251, 38, 1, 245, 152, 35, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 114, 205, 1, 47, 0, 176,
+			173, 54, 133, 41, 5, 104, 0, 176, 222, 54, 33, 243, 91, 37, 1, 176, 251, 38, 1, 245, 91, 37, 1, 176, 43, 9, 0, 176, 244, 226,
+			122, 18, 0, 176, 183, 0, 0, 176, 183, 0, 1, 176, 106, 20, 0, 176, 206, 219, 0, 176, 248, 0, 138, 18, 38, 5, 1, 176, 62, 15,
+			38, 5, 0, 176, 92, 239, 0, 176, 32, 201, 139, 18, 0, 176, 123, 181, 0, 176, 245, 244, 0, 176, 162, 183, 0, 161, 213, 3, 77, 1,
+			96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 48, 194, 228, 106, 32, 195, 228, 106, 0, 161, 21, 28, 77, 9, 98, 170, 0, 162,
+			18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176,
+			100, 47, 0, 240, 109, 53, 0, 176, 60, 53, 32, 243, 109, 53, 0, 161, 25, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189,
+			208, 194, 195, 153, 1, 13, 0, 32, 16, 4, 0, 176, 134, 0, 0, 161, 213, 3, 87, 1, 246, 221, 0, 162, 146, 18, 87, 1, 246, 221,
+			0, 192, 251, 119, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 173, 54, 133, 41, 5, 104, 0, 176,
+			222, 54, 0, 240, 15, 55, 0, 176, 157, 57, 0, 240, 209, 58, 38, 5, 0, 176, 157, 224, 2, 13, 144, 201, 0, 176, 22, 180, 1, 13,
+			0, 114, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 254, 13, 32, 243, 63, 14, 0, 161, 213, 3,
+			77, 1, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 49, 194, 44, 39, 33, 195, 44, 39, 0, 161, 21, 28, 77, 9, 98, 170,
+			0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 1, 176, 250, 39, 1, 240, 44, 39, 1, 176, 250, 39,
+			33, 243, 44, 39, 31, 50, 30, 34, 1, 192, 43, 40, 2, 41, 1, 192, 35, 43, 97, 196, 35, 43, 28, 34, 0, 192, 8, 156, 31, 50,
+			30, 34, 1, 192, 43, 40, 2, 41, 1, 192, 35, 43, 97, 196, 35, 43, 0, 161, 213, 3, 81, 9, 238, 188, 0, 162, 18, 34, 81, 9,
+			46, 173, 1, 47, 0, 176, 173, 54, 0, 176, 157, 57, 1, 240, 67, 45, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 246, 221,
+			1, 47, 0, 176, 173, 54, 0, 176, 157, 57, 1, 240, 23, 48, 0, 161, 213, 3, 77, 1, 238, 188, 33, 195, 6, 50, 3, 13, 201, 116,
+			0, 149, 0, 161, 227, 83, 85, 1, 246, 221, 1, 192, 23, 48, 0, 161, 25, 3, 75, 1, 232, 171, 0, 162, 18, 34, 75, 9, 232, 171,
+			133, 41, 5, 104, 0, 176, 139, 75, 33, 243, 67, 45, 0, 176, 139, 75, 193, 243, 67, 45, 0, 161, 25, 3, 77, 1, 106, 172, 0, 162,
+			18, 2, 77, 1, 106, 172, 133, 41, 193, 195, 67, 45, 97, 196, 67, 45, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9,
+			46, 173, 1, 47, 0, 176, 222, 60, 133, 41, 5, 104, 0, 176, 15, 61, 0, 240, 64, 61, 0, 176, 48, 62, 161, 245, 76, 52, 0, 161,
+			25, 3, 77, 1, 238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 224, 193, 195, 153, 2, 13, 173, 201, 0, 176, 148, 29, 2, 13, 173, 201,
+			0, 176, 148, 29, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 40, 137, 2, 13, 178, 201, 0, 162,
+			23, 114, 81, 13, 114, 205, 2, 47, 5, 104, 0, 208, 43, 41, 0, 176, 76, 41, 6, 106, 0, 208, 141, 41, 0, 208, 238, 41, 0, 208,
+			63, 42, 0, 208, 160, 42, 0, 208, 1, 43, 0, 208, 114, 43, 0, 39, 0, 176, 211, 43, 138, 41, 10, 104, 67, 36, 3, 104, 37, 10,
+			4, 96, 67, 37, 2, 104, 50, 10, 0, 176, 244, 43, 1, 0, 2, 44, 2, 104, 2, 96, 14, 3, 0, 181, 254, 13, 32, 243, 63, 14,
+			0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 173, 54, 133, 41, 5, 104, 0, 176, 222, 54, 0, 240, 15, 55, 1, 0, 0, 161,
+			227, 83, 85, 1, 246, 221, 0, 192, 188, 113, 0, 162, 18, 34, 75, 9, 84, 65, 2, 47, 11, 104, 0, 161, 25, 3, 75, 1, 212, 114,
+			133, 41, 3, 104, 0, 176, 179, 35, 0, 176, 244, 35, 0, 208, 248, 36, 0, 176, 203, 37, 2, 41, 38, 1, 113, 32, 1, 176, 198, 52,
+			1, 176, 23, 53, 90, 32, 115, 1, 25, 10, 1, 176, 72, 53, 132, 45, 7, 0, 117, 1, 132, 40, 37, 1, 1, 176, 137, 53, 1, 176,
+			186, 53, 132, 40, 6, 104, 57, 37, 3, 104, 35, 1, 2, 96, 37, 1, 1, 176, 72, 53, 132, 40, 36, 1, 73, 44, 117, 1, 1, 176,
+			72, 53, 132, 40, 6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 120, 1, 73, 44, 117, 1, 1, 176, 72, 53, 1, 176, 251, 53, 132, 40,
+			6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 121, 1, 1, 176, 60, 54, 132, 45, 7, 0, 6, 104, 57, 32, 3, 104, 119, 1, 2, 96,
+			122, 1, 132, 40, 6, 104, 57, 37, 3, 104, 36, 1, 2, 96, 121, 1, 1, 176, 125, 54, 132, 45, 7, 0, 117, 1, 132, 40, 36, 1,
+			73, 44, 123, 1, 1, 176, 125, 54, 122, 1, 1, 0, 126, 18, 1, 176, 190, 54, 73, 44, 128, 1, 132, 40, 39, 1, 1, 176, 255, 54,
+			1, 176, 48, 55, 1, 176, 113, 55, 1, 176, 194, 55, 126, 18, 1, 176, 19, 56, 90, 32, 3, 104, 115, 18, 121, 1, 91, 32, 3, 104,
+			115, 18, 121, 1, 110, 32, 3, 104, 115, 18, 121, 1, 37, 18, 1, 176, 236, 20, 1, 176, 68, 56, 132, 40, 4, 104, 100, 10, 1, 176,
+			133, 56, 0, 176, 174, 195, 1, 0, 132, 40, 0, 176, 141, 219, 73, 44, 2, 104, 117, 1, 1, 0, 132, 40, 6, 104, 57, 37, 3, 104,
+			134, 1, 2, 96, 120, 1, 73, 44, 126, 1, 0, 176, 81, 191, 0, 176, 46, 205, 1, 176, 230, 56, 57, 37, 2, 104, 12, 96, 132, 40,
+			7, 104, 73, 44, 3, 104, 120, 1, 2, 96, 134, 1, 4, 96, 73, 44, 2, 104, 117, 1, 136, 40, 0, 176, 203, 189, 1, 176, 39, 57,
+			132, 45, 7, 0, 35, 1, 132, 40, 6, 104, 57, 37, 3, 104, 35, 1, 2, 96, 134, 1, 0, 176, 81, 191, 0, 176, 203, 189, 0, 161,
+			153, 55, 75, 1, 94, 170, 0, 162, 18, 2, 75, 9, 94, 170, 1, 176, 104, 57, 33, 243, 169, 57, 38, 5, 130, 40, 1, 176, 70, 19,
+			1, 176, 62, 15, 130, 40, 0, 176, 12, 229, 0, 176, 206, 219, 130, 40, 0, 176, 133, 212, 1, 176, 253, 14, 130, 40, 10, 104, 131, 45,
+			7, 0, 3, 104, 1, 176, 184, 24, 2, 13, 144, 201, 0, 176, 15, 220, 0, 176, 183, 0, 130, 40, 0, 176, 251, 223, 0, 176, 122, 1,
+			130, 40, 0, 176, 245, 244, 0, 176, 123, 181, 0, 161, 213, 3, 85, 5, 110, 173, 0, 162, 18, 34, 85, 37, 110, 173, 1, 47, 0, 176,
+			222, 60, 133, 41, 5, 104, 0, 176, 15, 61, 0, 240, 64, 61, 0, 176, 48, 62, 96, 249, 97, 62, 108, 18, 0, 176, 183, 0, 136, 40,
+			1, 176, 184, 24, 1, 176, 5, 19, 124, 18, 0, 176, 215, 217, 8, 59, 3, 43, 0, 176, 12, 229, 0, 176, 248, 0, 1, 0, 124, 17,
+			0, 176, 206, 219, 38, 5, 0, 176, 57, 1, 1, 18, 37, 1, 1, 0, 38, 5, 0, 176, 115, 244, 127, 18, 0, 176, 233, 180, 8, 59,
+			3, 43, 0, 176, 32, 201, 0, 176, 233, 180, 1, 0, 127, 17, 0, 176, 58, 181, 111, 18, 0, 176, 123, 181, 0, 176, 123, 181, 0, 176,
+			154, 208, 0, 176, 162, 183, 0, 176, 165, 184, 1, 176, 5, 19, 0, 176, 152, 180, 38, 5, 1, 176, 70, 19, 0, 176, 233, 180, 0, 176,
+			187, 1, 0, 176, 198, 212, 0, 176, 248, 0, 0, 176, 50, 241, 0, 176, 222, 239, 0, 176, 105, 254, 0, 176, 253, 181, 1, 176, 106, 58,
+			0, 176, 8, 228, 1, 176, 107, 14, 0, 176, 243, 183, 1, 176, 187, 58, 0, 176, 165, 184, 2, 13, 176, 202, 28, 34, 0, 192, 8, 156,
+			29, 34, 0, 192, 93, 157, 30, 34, 0, 192, 252, 158, 31, 34, 0, 192, 161, 160, 32, 34, 0, 192, 7, 162, 33, 34, 0, 192, 182, 163,
+			96, 196, 127, 165, 1, 176, 12, 59, 0, 176, 12, 229, 0, 176, 12, 229, 38, 5, 0, 176, 57, 1, 0, 176, 122, 1, 0, 176, 122, 1,
+			0, 176, 105, 254, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162, 18, 34, 73, 9, 46, 173, 2, 57, 87, 57, 3, 41, 6, 104, 0, 55,
+			8, 39, 2, 104, 2, 96, 100, 1, 1, 47, 0, 176, 222, 60, 133, 41, 5, 104, 0, 176, 15, 61, 0, 240, 64, 61, 0, 176, 48, 62,
+			0, 240, 97, 62, 2, 57, 87, 57, 57, 34, 7, 104, 0, 55, 8, 55, 55, 32, 2, 104, 2, 96, 86, 1, 0, 145, 233, 6, 1, 0,
+			2, 57, 87, 57, 3, 41, 6, 104, 0, 55, 8, 39, 2, 104, 2, 96, 82, 1, 0, 145, 193, 2, 1, 0, 0, 145, 253, 3, 133, 41,
+			5, 104, 0, 176, 235, 66, 128, 242, 28, 67, 1, 0, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 41,
+			192, 195, 192, 69, 48, 50, 47, 50, 49, 34, 0, 192, 252, 134, 0, 197, 40, 137, 2, 13, 139, 202, 0, 161, 25, 3, 169, 5, 84, 90,
+			0, 162, 5, 18, 9, 1, 84, 73, 133, 41, 5, 104, 0, 176, 165, 65, 0, 245, 52, 63, 1, 176, 77, 59, 0, 245, 52, 63, 2, 13,
+			190, 201, 2, 43, 69, 1, 0, 145, 137, 2, 1, 0, 124, 17, 1, 176, 126, 59, 2, 13, 144, 201, 0, 176, 203, 189, 13, 17, 0, 176,
+			248, 0, 13, 17, 0, 176, 206, 219, 0, 176, 206, 219, 111, 17, 0, 176, 122, 1, 111, 17, 0, 176, 233, 180, 0, 176, 188, 181, 111, 17,
+			0, 176, 123, 181, 0, 176, 157, 224, 0, 176, 51, 236, 38, 5, 1, 176, 191, 59, 1, 176, 228, 16, 1, 176, 53, 17, 4, 13, 144, 201,
+			131, 204, 1, 176, 0, 60, 8, 13, 144, 201, 131, 204, 138, 202, 131, 204, 1, 176, 65, 60, 7, 13, 204, 111, 201, 131, 204, 170, 0, 131,
+			1, 176, 146, 60, 0, 176, 203, 189, 2, 41, 1, 1, 0, 176, 203, 189, 0, 176, 87, 180, 0, 176, 66, 230, 0, 176, 248, 0, 38, 5,
+			0, 176, 157, 224, 2, 41, 57, 1, 38, 5, 0, 176, 157, 224, 0, 176, 16, 191, 0, 176, 123, 181, 136, 40, 2, 41, 58, 1, 0, 176,
+			53, 227, 38, 5, 0, 176, 162, 183, 38, 5, 0, 176, 243, 183, 38, 5, 1, 176, 3, 61, 0, 176, 240, 182, 1, 176, 116, 61, 2, 13,
+			129, 202, 134, 40, 107, 1, 0, 161, 25, 3, 73, 1, 98, 170, 0, 162, 18, 34, 73, 9, 98, 170, 0, 176, 254, 13, 32, 243, 63, 14,
+			0, 145, 125, 5, 1, 13, 0, 115, 1, 0, 2, 13, 190, 201, 0, 161, 213, 3, 79, 5, 98, 170, 0, 162, 18, 2, 79, 9, 98, 170,
+			1, 47, 0, 176, 144, 186, 0, 176, 193, 186, 128, 242, 109, 53, 2, 13, 144, 201, 0, 176, 203, 189, 2, 13, 144, 201, 2, 41, 1, 1,
+			0, 176, 203, 189, 132, 18, 0, 176, 87, 180, 4, 13, 144, 201, 131, 204, 0, 176, 26, 204, 8, 13, 144, 201, 131, 204, 138, 202, 131, 204,
+			1, 176, 65, 60, 112, 17, 0, 176, 206, 219, 112, 17, 0, 176, 248, 0, 2, 13, 168, 201, 1, 176, 197, 61, 38, 5, 0, 176, 57, 1,
+			2, 13, 168, 201, 2, 41, 1, 1, 38, 5, 1, 176, 197, 61, 0, 176, 252, 199, 40, 18, 0, 176, 233, 180, 1, 176, 135, 19, 2, 41,
+			58, 1, 1, 176, 135, 19, 1, 176, 187, 58, 2, 13, 129, 202, 0, 161, 25, 3, 71, 1, 222, 185, 138, 41, 46, 1, 1, 176, 6, 62,
+			128, 247, 177, 6, 0, 145, 143, 5, 2, 13, 131, 202, 1, 0, 2, 13, 178, 202, 2, 41, 38, 1, 125, 32, 4, 104, 30, 10, 1, 176,
+			71, 62, 126, 32, 1, 176, 198, 52, 127, 32, 1, 176, 136, 62, 1, 176, 201, 62, 124, 18, 38, 5, 0, 176, 57, 1, 0, 176, 12, 229,
+			2, 13, 168, 201, 1, 176, 197, 61, 0, 176, 87, 180, 0, 176, 92, 219, 1, 176, 250, 62, 0, 176, 245, 244, 0, 176, 78, 182, 0, 176,
+			209, 225, 1, 176, 59, 63, 1, 176, 161, 22, 1, 176, 156, 63, 1, 176, 13, 64, 1, 176, 94, 64, 1, 176, 61, 21, 1, 176, 175, 64,
+			1, 176, 16, 65, 1, 176, 97, 65, 138, 41, 46, 1, 6, 106, 16, 223, 198, 4, 16, 223, 247, 4, 16, 223, 40, 5, 16, 223, 89, 5,
+			16, 223, 138, 5, 16, 223, 187, 5, 2, 39, 224, 236, 236, 5, 47, 48, 48, 48, 49, 32, 0, 176, 135, 11, 0, 176, 184, 11, 0, 145,
+			208, 0, 0, 162, 18, 2, 0, 32, 0, 0, 1, 0, 0, 145, 183, 1, 0, 162, 18, 34, 83, 41, 84, 65, 1, 0, 0, 145, 223, 1,
+			0, 162, 146, 50, 83, 41, 98, 162, 1, 0, 0, 145, 201, 6, 0, 162, 210, 19, 73, 33, 84, 65, 1, 0, 0, 145, 220, 6, 0, 162,
+			146, 18, 79, 33, 98, 164, 1, 0, 0, 145, 18, 6, 0, 162, 146, 18, 77, 33, 98, 162, 1, 0, 0, 145, 103, 5, 0, 162, 18, 2,
+			75, 33, 84, 65, 1, 0, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 33, 98, 162, 32, 195, 3, 81, 0, 161, 25, 3,
+			77, 1, 106, 172, 0, 162, 18, 2, 77, 33, 106, 172, 0, 192, 3, 86, 0, 162, 18, 34, 73, 41, 84, 73, 31, 34, 5, 104, 0, 176,
+			204, 50, 0, 240, 62, 49, 0, 176, 143, 51, 0, 240, 62, 49, 0, 145, 233, 6, 0, 161, 213, 3, 79, 9, 98, 172, 0, 162, 18, 2,
+			79, 41, 98, 172, 1, 0, 0, 162, 136, 20, 73, 45, 98, 170, 31, 34, 9, 104, 0, 161, 25, 3, 71, 1, 98, 170, 1, 176, 178, 65,
+			0, 240, 177, 6, 1, 176, 227, 65, 0, 240, 177, 6, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 33, 84, 73, 133, 41,
+			5, 104, 0, 176, 165, 65, 0, 240, 52, 63, 0, 176, 56, 66, 0, 240, 52, 63, 0, 162, 25, 18, 13, 33, 98, 170, 133, 41, 5, 104,
+			0, 176, 143, 69, 0, 240, 192, 69, 0, 176, 109, 72, 0, 240, 192, 69, 0, 161, 25, 3, 75, 33, 232, 171, 0, 162, 18, 34, 75, 9,
+			232, 171, 133, 41, 5, 104, 0, 176, 90, 75, 0, 240, 207, 72, 0, 176, 139, 75, 0, 240, 207, 72, 136, 40, 130, 40, 35, 34, 1, 1,
+			128, 40, 1, 176, 12, 59, 0, 176, 87, 180, 0, 176, 12, 229, 38, 5, 0, 176, 57, 1, 0, 176, 122, 1, 0, 176, 123, 181, 0, 161,
+			213, 26, 77, 5, 96, 170, 0, 162, 146, 18, 77, 1, 96, 162, 133, 41, 1, 192, 20, 66, 1, 192, 20, 66, 0, 161, 213, 3, 77, 1,
+			238, 188, 0, 162, 146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 60, 117, 87, 41, 0, 192, 107, 118, 55, 34, 0, 192, 109, 121, 96, 196,
+			249, 122, 0, 176, 102, 242, 0, 176, 248, 0, 0, 176, 152, 180, 0, 176, 233, 180, 0, 176, 16, 191, 1, 176, 116, 61, 1, 176, 3, 61,
+			1, 176, 226, 32, 0, 176, 203, 246, 0, 162, 18, 2, 75, 1, 84, 65, 0, 192, 186, 128, 38, 5, 58, 32, 0, 208, 133, 192, 0, 176,
+			50, 241, 38, 5, 0, 176, 92, 239, 0, 176, 215, 217, 112, 17, 0, 176, 57, 199, 0, 176, 152, 180, 13, 16, 1, 176, 213, 29, 2, 13,
+			153, 201, 0, 176, 101, 253, 1, 176, 87, 66, 1, 176, 168, 66, 2, 13, 137, 202, 1, 176, 233, 66, 1, 176, 171, 20, 1, 176, 42, 67,
+			0, 176, 50, 206, 130, 40, 136, 40, 1, 176, 106, 20, 1, 176, 5, 19, 0, 176, 141, 219, 1, 176, 91, 67, 0, 176, 122, 1, 0, 176,
+			233, 180, 0, 176, 54, 245, 0, 176, 123, 181, 0, 161, 25, 3, 179, 1, 110, 189, 0, 162, 146, 18, 179, 1, 110, 189, 193, 195, 156, 67,
+			0, 176, 184, 203, 0, 176, 92, 219, 38, 5, 0, 176, 92, 239, 38, 5, 58, 32, 0, 208, 133, 192, 0, 176, 57, 1, 1, 176, 42, 14,
+			1, 176, 174, 69, 1, 176, 239, 69, 1, 176, 48, 70, 13, 16, 0, 176, 206, 219, 0, 176, 152, 180, 0, 176, 215, 217, 1, 176, 113, 70,
+			1, 176, 113, 70, 0, 176, 227, 252, 0, 176, 227, 252, 0, 176, 122, 1, 0, 176, 222, 239, 0, 176, 53, 227, 0, 176, 123, 181, 2, 13,
+			137, 202, 1, 176, 178, 70, 4, 13, 137, 202, 144, 203, 1, 176, 243, 70, 38, 5, 0, 176, 24, 218, 38, 5, 1, 176, 68, 71, 38, 5,
+			0, 176, 61, 195, 4, 13, 137, 202, 170, 201, 38, 5, 0, 176, 203, 246, 1, 176, 149, 71, 1, 176, 230, 71, 38, 5, 0, 176, 157, 224,
+			38, 5, 37, 18, 0, 176, 115, 244, 38, 5, 0, 176, 122, 199, 38, 5, 109, 18, 0, 176, 122, 199, 0, 176, 206, 219, 0, 176, 7, 213,
+			1, 176, 106, 20, 35, 18, 0, 176, 176, 205, 1, 176, 145, 28, 114, 18, 0, 176, 183, 227, 0, 176, 245, 244, 40, 18, 0, 176, 123, 181,
+			1, 176, 87, 72, 117, 18, 0, 176, 102, 242, 1, 176, 152, 72, 119, 18, 1, 176, 152, 72, 0, 176, 118, 217, 121, 18, 0, 176, 118, 217,
+			0, 176, 243, 183, 123, 18, 0, 176, 243, 183, 0, 176, 28, 247, 125, 18, 0, 176, 28, 247, 1, 176, 217, 72, 127, 18, 1, 176, 217, 72,
+			1, 176, 26, 73, 129, 18, 1, 176, 26, 73, 0, 176, 165, 184, 0, 176, 102, 242, 2, 13, 35, 109, 0, 162, 18, 34, 75, 9, 84, 65,
+			1, 176, 107, 73, 2, 13, 35, 110, 0, 162, 146, 50, 77, 9, 98, 162, 6, 106, 0, 208, 143, 38, 0, 208, 208, 38, 0, 208, 17, 39,
+			0, 208, 82, 39, 0, 208, 147, 39, 0, 208, 212, 39, 1, 176, 172, 73, 3, 13, 178, 201, 0, 35, 0, 162, 18, 98, 81, 13, 110, 189,
+			1, 176, 237, 73, 3, 13, 139, 197, 0, 35, 0, 162, 148, 50, 75, 13, 110, 189, 6, 106, 0, 208, 134, 44, 0, 208, 183, 44, 0, 208,
+			232, 44, 0, 208, 25, 45, 0, 208, 74, 45, 0, 208, 123, 45, 1, 176, 46, 74, 2, 13, 35, 108, 144, 193, 143, 146, 3, 13, 108, 116,
+			0, 35, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 33, 195, 111, 74, 2, 13, 35, 114, 1, 176, 201, 76,
+			0, 240, 177, 6, 0, 161, 213, 26, 75, 5, 84, 90, 0, 162, 18, 34, 73, 9, 84, 74, 0, 192, 62, 49, 0, 161, 213, 3, 77, 9,
+			98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 133, 41, 0, 192, 50, 52, 0, 197, 109, 53, 0, 161, 213, 3, 73, 9, 238, 172, 0, 162,
+			18, 34, 73, 9, 46, 173, 133, 41, 0, 192, 64, 61, 96, 201, 97, 62, 5, 146, 168, 51, 1, 0, 5, 146, 40, 52, 1, 0, 5, 146,
+			168, 52, 1, 0, 5, 146, 40, 53, 1, 0, 5, 146, 168, 53, 5, 147, 40, 54, 1, 0, 5, 146, 168, 54, 5, 147, 40, 55, 1, 0,
+			5, 146, 40, 52, 1, 0, 1, 176, 12, 59, 1, 176, 126, 59, 0, 176, 66, 230, 0, 176, 248, 0, 38, 5, 58, 37, 0, 208, 251, 30,
+			0, 176, 115, 244, 1, 176, 91, 67, 0, 176, 222, 239, 1, 176, 234, 77, 1, 176, 43, 78, 1, 176, 108, 78, 1, 176, 108, 78, 1, 176,
+			173, 78, 0, 176, 162, 183, 0, 176, 174, 255, 0, 176, 174, 255, 0, 176, 243, 183, 0, 176, 68, 184, 1, 176, 3, 61, 0, 176, 165, 184,
+			0, 176, 22, 185, 1, 176, 14, 79, 1, 176, 95, 79, 0, 176, 10, 194, 0, 176, 240, 182, 1, 176, 116, 61, 0, 176, 65, 183, 0, 176,
+			31, 225, 0, 176, 31, 225, 1, 176, 192, 79, 0, 176, 21, 250, 0, 176, 96, 196, 0, 161, 25, 3, 83, 1, 238, 188, 0, 162, 146, 18,
+			83, 1, 110, 189, 32, 195, 106, 151, 138, 41, 59, 1, 0, 145, 194, 0, 1, 176, 33, 80, 5, 146, 168, 51, 1, 0, 5, 146, 168, 52,
+			1, 0, 5, 146, 168, 51, 1, 0, 5, 146, 40, 52, 1, 0, 5, 146, 168, 52, 1, 0, 5, 146, 168, 51, 1, 0, 5, 146, 40, 52,
+			1, 0, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 130, 169, 0, 161, 213, 3, 77, 1, 238, 188,
+			133, 41, 0, 192, 220, 109, 0, 192, 44, 112, 0, 161, 213, 3, 75, 1, 238, 172, 0, 162, 146, 18, 75, 5, 110, 189, 133, 41, 0, 192,
+			0, 0, 31, 34, 0, 192, 251, 119, 34, 50, 51, 34, 0, 192, 107, 118, 55, 34, 0, 192, 109, 121, 14, 34, 96, 196, 249, 122, 0, 192,
+			46, 124, 0, 161, 213, 19, 75, 1, 84, 115, 0, 162, 210, 18, 73, 5, 84, 65, 133, 41, 0, 192, 0, 0, 0, 192, 0, 103, 0, 161,
+			213, 3, 81, 1, 98, 170, 0, 162, 146, 18, 77, 5, 98, 162, 133, 41, 0, 192, 0, 0, 0, 192, 232, 107, 0, 176, 227, 252, 1, 176,
+			142, 21, 0, 176, 8, 228, 1, 176, 98, 80, 1, 176, 227, 80, 0, 176, 203, 189, 0, 176, 209, 225, 1, 176, 116, 81, 0, 176, 152, 180,
+			0, 176, 243, 183, 1, 176, 213, 81, 1, 176, 116, 61, 38, 5, 49, 52, 68, 36, 4, 104, 75, 10, 0, 176, 122, 199, 0, 176, 57, 1,
+			1, 176, 86, 82, 0, 176, 65, 183, 2, 41, 68, 1, 1, 176, 231, 82, 0, 176, 122, 1, 1, 176, 56, 83, 0, 176, 61, 195, 0, 176,
+			125, 247, 1, 176, 169, 83, 49, 52, 68, 36, 0, 176, 53, 227, 0, 176, 123, 181, 1, 176, 10, 84, 0, 176, 22, 185, 0, 176, 78, 182,
+			1, 176, 107, 84, 0, 176, 48, 235, 0, 176, 253, 181, 5, 146, 176, 82, 1, 0, 5, 146, 40, 52, 1, 0, 5, 146, 168, 53, 1, 0,
+			5, 146, 40, 52, 1, 0, 5, 146, 40, 52, 1, 0, 5, 146, 168, 52, 1, 0, 5, 146, 168, 52, 1, 0, 5, 146, 40, 52, 1, 0,
+			5, 146, 40, 52, 1, 0, 5, 146, 168, 51, 1, 0, 0, 162, 146, 50, 77, 9, 98, 162, 6, 106, 0, 208, 143, 38, 0, 208, 208, 38,
+			0, 208, 17, 39, 0, 208, 82, 39, 0, 208, 147, 39, 0, 208, 212, 39, 138, 41, 1, 176, 216, 12, 0, 176, 70, 40, 0, 162, 25, 50,
+			87, 9, 230, 171, 6, 106, 0, 208, 134, 44, 0, 208, 183, 44, 0, 208, 232, 44, 0, 208, 25, 45, 0, 208, 74, 45, 0, 208, 123, 45,
+			0, 39, 0, 176, 254, 45, 138, 41, 1, 176, 204, 84, 1, 0, 0, 145, 194, 0, 31, 36, 0, 208, 97, 22, 0, 176, 204, 24, 2, 41,
+			18, 104, 6, 106, 0, 208, 82, 32, 0, 208, 147, 32, 0, 208, 212, 32, 0, 208, 21, 33, 0, 208, 70, 33, 0, 208, 151, 33, 32, 238,
+			200, 33, 0, 176, 233, 33, 0, 162, 35, 18, 0, 0, 0, 0, 0, 176, 10, 34, 1, 0, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162,
+			210, 18, 73, 1, 84, 65, 0, 192, 55, 101, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 0, 192, 153, 172,
+			0, 162, 18, 2, 75, 1, 84, 65, 0, 192, 186, 128, 0, 161, 21, 21, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 129, 194,
+			20, 66, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 0, 192, 220, 103, 2, 161, 213, 3, 73, 5, 226, 155,
+			2, 162, 210, 19, 73, 5, 226, 155, 177, 196, 253, 84, 2, 161, 213, 3, 73, 5, 226, 155, 2, 162, 210, 19, 73, 5, 226, 155, 0, 197,
+			105, 176, 3, 13, 201, 116, 0, 149, 0, 161, 213, 3, 85, 1, 246, 221, 1, 192, 172, 85, 4, 13, 201, 116, 104, 149, 0, 161, 213, 3,
+			85, 1, 246, 221, 1, 197, 192, 87, 2, 13, 149, 201, 0, 161, 25, 3, 85, 1, 246, 221, 65, 193, 67, 45, 0, 161, 25, 3, 73, 1,
+			100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 133, 41, 32, 195, 40, 144, 32, 195, 40, 144, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162,
+			146, 18, 77, 1, 98, 162, 97, 196, 144, 90, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 192, 195, 130, 169,
+			0, 161, 25, 3, 73, 1, 100, 171, 0, 162, 18, 2, 73, 1, 100, 171, 1, 192, 174, 92, 0, 161, 25, 3, 73, 1, 100, 171, 0, 162,
+			18, 2, 73, 1, 100, 171, 1, 192, 169, 95, 1, 176, 204, 84, 68, 34, 1, 176, 225, 98, 0, 176, 183, 0, 68, 34, 0, 176, 211, 191,
+			0, 176, 198, 212, 0, 176, 38, 222, 1, 176, 34, 99, 68, 34, 1, 176, 253, 14, 0, 176, 207, 200, 0, 176, 228, 197, 0, 176, 27, 239,
+			0, 176, 157, 209, 68, 34, 0, 176, 77, 190, 50, 34, 1, 176, 70, 19, 0, 176, 57, 1, 0, 176, 40, 254, 1, 176, 115, 99, 1, 176,
+			180, 99, 1, 176, 5, 100, 1, 176, 102, 100, 1, 176, 183, 100, 1, 176, 8, 101, 68, 34, 0, 176, 134, 198, 0, 176, 183, 227, 1, 176,
+			105, 101, 0, 176, 235, 208, 1, 176, 169, 83, 68, 34, 1, 176, 53, 17, 0, 176, 123, 181, 1, 176, 170, 101, 1, 176, 97, 65, 1, 176,
+			251, 101, 0, 176, 86, 231, 1, 176, 92, 102, 1, 176, 189, 102, 68, 34, 0, 176, 224, 229, 1, 176, 106, 58, 1, 176, 139, 25, 1, 176,
+			30, 103, 1, 176, 111, 103, 1, 176, 192, 103, 0, 176, 203, 246, 0, 176, 57, 1, 0, 176, 12, 229, 1, 176, 106, 20, 108, 17, 1, 176,
+			5, 19, 0, 176, 252, 199, 0, 176, 235, 254, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 124, 1, 138, 41, 138, 42, 2, 104, 124, 1,
+			1, 176, 62, 15, 1, 176, 70, 19, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 113, 1, 138, 41, 138, 42, 2, 104, 113, 1, 1, 176,
+			87, 66, 0, 176, 50, 216, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 109, 1, 138, 41, 138, 42, 2, 104, 109, 1, 0, 176, 12, 229,
+			0, 176, 206, 219, 0, 176, 78, 182, 1, 176, 184, 24, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 111, 1, 138, 41, 138, 42, 2, 104,
+			111, 1, 0, 176, 245, 244, 0, 176, 188, 181, 2, 13, 175, 201, 1, 176, 17, 104, 144, 40, 2, 104, 8, 96, 139, 40, 2, 104, 110, 1,
+			138, 41, 138, 42, 2, 104, 110, 1, 0, 176, 251, 223, 0, 176, 122, 1, 0, 161, 222, 19, 87, 1, 246, 204, 0, 162, 18, 2, 85, 1,
+			118, 205, 133, 41, 0, 197, 251, 119, 0, 192, 251, 119, 1, 47, 0, 176, 233, 59, 0, 161, 213, 3, 85, 9, 246, 221, 0, 162, 18, 2,
+			85, 41, 246, 221, 2, 47, 5, 104, 0, 176, 75, 60, 192, 243, 251, 119, 0, 176, 173, 60, 192, 243, 251, 119, 1, 176, 62, 15, 57, 34,
+			0, 176, 122, 199, 0, 176, 46, 205, 0, 176, 187, 199, 1, 176, 213, 29, 0, 176, 27, 239, 0, 176, 8, 208, 1, 176, 82, 104, 1, 176,
+			147, 104, 1, 176, 212, 104, 1, 176, 135, 19, 1, 176, 87, 66, 1, 176, 242, 22, 0, 176, 3, 202, 0, 176, 81, 191, 0, 161, 25, 3,
+			173, 1, 238, 188, 0, 162, 146, 18, 173, 1, 110, 189, 192, 195, 197, 236, 0, 161, 222, 19, 87, 1, 246, 204, 0, 162, 18, 2, 85, 1,
+			118, 205, 133, 41, 0, 197, 251, 119, 0, 192, 251, 119, 0, 161, 213, 3, 85, 9, 246, 221, 0, 162, 18, 2, 85, 41, 246, 221, 1, 47,
+			0, 176, 233, 59, 0, 176, 173, 60, 192, 243, 251, 119, 0, 176, 92, 219, 108, 17, 0, 176, 183, 0, 13, 17, 0, 176, 206, 219, 0, 176,
+			206, 219, 0, 176, 248, 0, 38, 5, 1, 176, 62, 15, 0, 176, 122, 1, 0, 176, 233, 180, 0, 176, 187, 1, 0, 176, 162, 183, 0, 176,
+			34, 244, 0, 176, 143, 182, 0, 176, 107, 194, 1, 176, 108, 78, 1, 176, 108, 78, 13, 17, 107, 34, 1, 176, 21, 105, 1, 176, 108, 78,
+			13, 17, 0, 176, 122, 199, 128, 40, 0, 176, 203, 189, 0, 176, 198, 212, 0, 176, 203, 189, 128, 40, 0, 176, 203, 189, 0, 176, 115, 230,
+			1, 176, 86, 105, 0, 176, 101, 253, 130, 40, 0, 176, 12, 229, 0, 176, 248, 0, 59, 34, 5, 104, 224, 236, 84, 26, 0, 176, 46, 205,
+			60, 34, 5, 104, 32, 238, 73, 27, 0, 176, 207, 190, 0, 176, 231, 253, 0, 176, 157, 224, 0, 176, 253, 181, 130, 40, 0, 176, 32, 201,
+			1, 176, 145, 28, 0, 176, 123, 181, 1, 176, 142, 21, 0, 176, 157, 209, 0, 176, 238, 209, 1, 176, 151, 105, 2, 41, 55, 1, 1, 176,
+			232, 105, 138, 41, 122, 1, 6, 106, 0, 208, 204, 27, 0, 208, 253, 27, 0, 208, 46, 28, 0, 208, 95, 28, 0, 208, 144, 28, 0, 208,
+			209, 28, 0, 39, 0, 176, 18, 29, 1, 176, 57, 106, 138, 41, 59, 1, 0, 145, 194, 0, 28, 32, 224, 236, 171, 24, 4, 96, 2, 39,
+			128, 237, 171, 24, 1, 176, 122, 106, 0, 145, 93, 1, 0, 176, 103, 185, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1,
+			84, 65, 133, 41, 0, 197, 74, 172, 55, 34, 0, 192, 2, 102, 128, 199, 55, 101, 0, 161, 21, 28, 75, 9, 98, 170, 0, 162, 18, 2,
+			77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47,
+			32, 243, 109, 53, 0, 176, 60, 53, 32, 243, 109, 53, 0, 162, 25, 18, 13, 1, 98, 170, 133, 41, 5, 104, 0, 176, 143, 69, 0, 240,
+			192, 69, 0, 176, 109, 72, 0, 240, 40, 137, 3, 13, 202, 100, 0, 145, 0, 161, 227, 83, 85, 9, 246, 221, 1, 47, 0, 176, 173, 54,
+			133, 41, 5, 104, 0, 176, 222, 54, 0, 240, 188, 113, 0, 176, 157, 57, 96, 249, 188, 113, 0, 161, 213, 3, 77, 1, 238, 188, 0, 162,
+			146, 18, 77, 1, 110, 189, 133, 41, 0, 192, 60, 117, 0, 192, 249, 122, 0, 176, 85, 0, 0, 176, 57, 1, 0, 176, 102, 242, 0, 176,
+			206, 219, 0, 176, 227, 252, 0, 176, 233, 180, 0, 176, 123, 181, 0, 176, 175, 229, 0, 176, 162, 183, 0, 176, 68, 184, 0, 176, 6, 203,
+			0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 1, 192, 67, 23, 0, 176, 215, 198, 0, 176, 203, 189, 38, 5,
+			0, 176, 115, 244, 0, 176, 248, 0, 0, 176, 12, 229, 0, 176, 27, 239, 0, 176, 141, 219, 0, 176, 87, 180, 0, 176, 198, 212, 0, 176,
+			123, 181, 0, 176, 222, 239, 1, 176, 171, 106, 0, 176, 11, 214, 0, 176, 202, 213, 0, 176, 253, 181, 1, 176, 42, 14, 0, 176, 175, 229,
+			0, 176, 133, 212, 0, 176, 162, 183, 60, 1, 0, 145, 208, 0, 1, 0, 2, 43, 51, 1, 1, 176, 236, 106, 2, 13, 129, 202, 1, 176,
+			29, 107, 0, 161, 25, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 48, 50, 47, 50, 49, 34, 0, 192, 252, 134, 0, 192,
+			40, 137, 0, 161, 213, 26, 75, 1, 84, 115, 0, 162, 210, 18, 73, 1, 84, 65, 133, 41, 0, 192, 55, 101, 34, 34, 96, 196, 37, 100,
+			51, 50, 52, 34, 0, 192, 37, 100, 14, 34, 0, 192, 55, 101, 55, 34, 0, 192, 2, 102, 0, 192, 0, 103, 0, 161, 213, 3, 77, 1,
+			98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 34, 50, 51, 50, 52, 34, 0, 192, 12, 105, 160, 197, 232, 107, 0, 176, 85, 0, 0, 176,
+			57, 1, 136, 40, 0, 176, 206, 219, 0, 176, 57, 199, 1, 176, 106, 20, 0, 176, 32, 201, 0, 176, 123, 181, 0, 161, 213, 3, 76, 5,
+			92, 139, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 129, 194, 78, 107, 55, 34, 0, 192, 109, 121, 193, 195, 78, 107, 0, 161, 213, 3,
+			77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 1, 192, 67, 23, 2, 41, 1, 1, 0, 41, 124, 1, 108, 18, 0, 176, 87, 180,
+			2, 41, 1, 1, 0, 41, 124, 1, 0, 176, 22, 180, 2, 41, 1, 1, 0, 41, 125, 1, 0, 176, 248, 0, 2, 41, 1, 1, 0, 41,
+			126, 1, 0, 176, 57, 1, 2, 41, 1, 1, 0, 41, 127, 1, 0, 176, 233, 180, 2, 41, 1, 1, 0, 41, 128, 1, 0, 176, 123, 181,
+			2, 41, 1, 1, 0, 176, 22, 180, 2, 41, 1, 1, 0, 176, 248, 0, 2, 41, 1, 1, 0, 176, 57, 1, 2, 41, 1, 1, 0, 176,
+			233, 180, 2, 41, 1, 1, 0, 176, 123, 181, 5, 146, 40, 52, 1, 0, 5, 146, 4, 181, 1, 0, 13, 18, 108, 34, 0, 176, 92, 219,
+			1, 176, 253, 14, 0, 176, 215, 198, 108, 34, 0, 176, 92, 219, 1, 176, 253, 14, 38, 5, 0, 176, 57, 1, 0, 176, 248, 0, 0, 176,
+			180, 244, 0, 176, 251, 223, 0, 176, 123, 181, 1, 176, 142, 21, 1, 176, 118, 17, 0, 176, 68, 184, 0, 176, 240, 182, 1, 176, 97, 109,
+			0, 176, 105, 232, 0, 176, 165, 184, 0, 176, 125, 247, 0, 176, 22, 185, 5, 146, 168, 54, 1, 0, 108, 34, 0, 176, 92, 219, 1, 176,
+			253, 14, 13, 18, 108, 34, 0, 176, 92, 219, 0, 176, 15, 220, 38, 5, 0, 176, 118, 227, 38, 5, 0, 176, 92, 239, 0, 176, 215, 217,
+			0, 176, 27, 239, 0, 176, 180, 244, 0, 176, 58, 181, 0, 176, 233, 180, 0, 176, 53, 227, 0, 176, 123, 181, 38, 5, 0, 176, 57, 1,
+			0, 176, 206, 219, 0, 176, 115, 230, 0, 176, 122, 1, 0, 176, 187, 1, 0, 176, 68, 184, 0, 176, 10, 194, 0, 176, 85, 0, 38, 5,
+			0, 176, 92, 239, 0, 176, 245, 244, 0, 176, 183, 0, 0, 176, 248, 0, 0, 176, 152, 180, 0, 176, 233, 180, 1, 176, 145, 28, 0, 176,
+			57, 1, 0, 176, 12, 229, 1, 176, 106, 20, 0, 176, 252, 199, 0, 176, 235, 254, 6, 106, 0, 208, 238, 21, 0, 208, 31, 22, 0, 208,
+			64, 22, 96, 223, 97, 22, 0, 208, 146, 22, 0, 208, 211, 22, 2, 39, 128, 237, 171, 24, 1, 197, 194, 109, 81, 181, 92, 9, 1, 176,
+			9, 115, 0, 176, 206, 219, 38, 5, 0, 176, 166, 253, 1, 176, 222, 9, 1, 176, 47, 10, 0, 176, 105, 254, 0, 176, 205, 243, 1, 176,
+			161, 10, 1, 176, 228, 16, 1, 176, 70, 19, 0, 176, 12, 229, 0, 176, 141, 219, 0, 176, 253, 181, 1, 176, 171, 20, 0, 176, 235, 254,
+			0, 176, 251, 223, 0, 176, 227, 252, 2, 13, 175, 201, 1, 176, 17, 104, 0, 176, 57, 1, 1, 176, 9, 115, 0, 176, 12, 190, 0, 176,
+			180, 244, 0, 176, 202, 213, 0, 176, 233, 180, 0, 176, 187, 1, 38, 5, 1, 176, 70, 19, 0, 176, 12, 229, 2, 13, 168, 201, 1, 176,
+			210, 28, 73, 43, 0, 176, 212, 241, 1, 176, 126, 59, 73, 43, 0, 176, 156, 233, 0, 176, 215, 198, 1, 176, 250, 62, 0, 176, 245, 244,
+			4, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65, 0, 192, 55, 101, 2, 44, 2, 43, 82, 1, 0, 145, 193, 2,
+			1, 0, 4, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 220, 103, 96, 196, 245, 108, 4, 161,
+			213, 3, 77, 1, 228, 154, 133, 41, 1, 197, 74, 115, 1, 197, 74, 115, 6, 161, 213, 3, 75, 1, 162, 162, 0, 162, 146, 18, 75, 1,
+			110, 189, 193, 195, 122, 116, 31, 37, 99, 1, 3, 96, 0, 145, 234, 5, 1, 0, 0, 176, 85, 0, 0, 176, 85, 0, 38, 5, 0, 176,
+			157, 224, 38, 5, 0, 176, 57, 1, 0, 176, 248, 0, 0, 176, 248, 0, 0, 176, 12, 190, 0, 176, 12, 190, 0, 176, 22, 180, 1, 176,
+			126, 59, 0, 176, 122, 1, 0, 176, 122, 1, 0, 176, 233, 180, 0, 176, 233, 180, 0, 176, 245, 244, 0, 176, 187, 1, 109, 16, 0, 176,
+			22, 180, 0, 176, 22, 180, 0, 176, 248, 0, 0, 176, 248, 0, 1, 176, 62, 15, 0, 176, 57, 1, 0, 176, 251, 223, 0, 176, 251, 223,
+			1, 176, 135, 19, 1, 176, 135, 19, 1, 176, 9, 20, 0, 176, 85, 0, 1, 176, 106, 20, 1, 176, 5, 19, 0, 176, 12, 229, 0, 176,
+			248, 0, 1, 176, 62, 15, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 233, 180, 1, 176, 135, 19, 1, 176, 135, 19, 0, 176, 162, 183,
+			1, 176, 118, 17, 0, 176, 92, 219, 2, 13, 144, 201, 13, 18, 1, 176, 106, 20, 0, 176, 198, 212, 1, 176, 213, 29, 1, 176, 213, 29,
+			0, 176, 206, 219, 0, 176, 12, 229, 1, 176, 62, 15, 0, 176, 57, 1, 0, 176, 32, 201, 0, 176, 32, 201, 1, 176, 135, 19, 1, 176,
+			135, 19, 1, 176, 9, 20, 0, 176, 10, 194, 2, 43, 2, 104, 6, 96, 138, 39, 3, 104, 56, 1, 2, 96, 59, 1, 0, 145, 208, 0,
+			1, 0, 2, 13, 185, 201, 6, 106, 0, 208, 226, 187, 0, 208, 19, 188, 0, 208, 68, 188, 0, 208, 133, 188, 0, 208, 182, 188, 0, 208,
+			231, 188, 2, 39, 64, 236, 236, 5, 0, 176, 95, 6, 46, 34, 4, 104, 95, 10, 1, 176, 102, 118, 1, 176, 151, 118, 0, 176, 122, 199,
+			38, 5, 1, 176, 200, 118, 38, 5, 0, 176, 142, 190, 55, 17, 0, 176, 101, 253, 3, 13, 201, 105, 0, 153, 44, 5, 0, 176, 180, 230,
+			109, 16, 0, 176, 12, 190, 1, 13, 0, 97, 1, 176, 5, 19, 4, 13, 145, 201, 144, 203, 44, 5, 0, 176, 211, 191, 0, 176, 32, 201,
+			114, 17, 0, 176, 252, 199, 0, 176, 235, 254, 0, 176, 146, 191, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162,
+			133, 41, 0, 192, 42, 167, 0, 192, 130, 169, 0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41, 32, 195,
+			105, 176, 55, 34, 0, 192, 109, 121, 160, 197, 105, 176, 0, 161, 213, 3, 76, 1, 238, 172, 0, 162, 146, 18, 76, 1, 110, 189, 133, 41,
+			32, 195, 249, 122, 192, 195, 249, 122, 6, 106, 0, 208, 238, 21, 0, 208, 31, 22, 0, 208, 64, 22, 96, 223, 97, 22, 0, 208, 146, 22,
+			0, 208, 211, 22, 2, 39, 128, 237, 171, 24, 1, 197, 194, 109, 0, 161, 213, 3, 75, 1, 84, 115, 0, 162, 210, 19, 73, 1, 84, 65,
+			133, 41, 0, 192, 33, 98, 34, 34, 0, 192, 37, 100, 55, 34, 0, 192, 2, 102, 0, 192, 153, 172, 0, 161, 25, 3, 64, 9, 118, 90,
+			0, 162, 18, 2, 64, 9, 98, 90, 6, 106, 16, 223, 198, 4, 16, 223, 247, 4, 16, 223, 40, 5, 16, 223, 89, 5, 16, 223, 138, 5,
+			16, 223, 187, 5, 2, 39, 224, 236, 236, 5, 0, 176, 254, 13, 64, 246, 218, 16, 13, 48, 108, 32, 2, 104, 5, 96, 0, 176, 233, 11,
+			0, 240, 177, 6, 1, 0, 0, 161, 213, 3, 77, 1, 238, 188, 133, 41, 0, 192, 220, 109, 0, 192, 44, 112, 3, 13, 201, 116, 0, 149,
+			0, 161, 227, 83, 85, 1, 246, 221, 133, 41, 0, 192, 188, 113, 0, 192, 188, 113, 38, 5, 108, 17, 0, 176, 115, 244, 38, 5, 0, 176,
+			77, 190, 0, 176, 12, 229, 0, 176, 180, 244, 0, 176, 32, 201, 0, 176, 78, 182, 0, 176, 123, 181, 0, 176, 54, 245, 0, 176, 253, 181,
+			0, 176, 119, 245, 0, 176, 216, 245, 0, 176, 61, 195, 0, 176, 34, 244, 0, 176, 41, 246, 0, 176, 122, 246, 0, 176, 203, 246, 0, 176,
+			28, 247, 0, 176, 125, 247, 0, 176, 206, 247, 0, 176, 31, 248, 0, 176, 209, 248, 0, 176, 34, 249, 0, 176, 115, 249, 0, 176, 196, 249,
+			0, 176, 89, 228, 0, 176, 21, 250, 0, 161, 25, 3, 169, 1, 84, 90, 0, 162, 25, 18, 9, 1, 84, 73, 133, 41, 0, 176, 165, 65,
+			0, 176, 56, 66, 0, 161, 213, 3, 79, 9, 98, 155, 0, 162, 146, 18, 79, 9, 98, 155, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104,
+			0, 176, 1, 52, 0, 240, 50, 52, 34, 34, 5, 104, 0, 176, 100, 47, 192, 243, 244, 53, 0, 176, 60, 53, 192, 243, 244, 53, 28, 34,
+			0, 192, 8, 156, 29, 34, 0, 192, 93, 157, 30, 34, 0, 192, 252, 158, 31, 34, 0, 192, 161, 160, 32, 34, 96, 196, 167, 250, 33, 34,
+			0, 197, 167, 250, 96, 196, 127, 165, 0, 176, 183, 0, 0, 176, 12, 229, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 187, 1, 0, 161,
+			213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 1, 192, 67, 23, 1, 192, 67, 23, 0, 161, 217, 19, 77, 5,
+			98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176, 143, 69, 193, 243, 67, 23, 0, 176,
+			25, 172, 193, 248, 67, 23, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 133, 41, 0, 192, 42, 167, 0, 192,
+			130, 169, 0, 161, 217, 19, 77, 5, 98, 170, 0, 162, 18, 2, 77, 9, 98, 170, 1, 47, 0, 176, 208, 51, 133, 41, 5, 104, 0, 176,
+			143, 69, 192, 243, 42, 167, 0, 176, 25, 172, 192, 248, 130, 169, 136, 40, 70, 10, 0, 176, 46, 205, 136, 40, 70, 10, 1, 176, 105, 101,
+			136, 40, 70, 10, 0, 176, 73, 208, 136, 40, 70, 10, 0, 176, 188, 181, 0, 176, 180, 244, 1, 176, 5, 19, 0, 176, 27, 239, 1, 176,
+			249, 118, 0, 176, 244, 226, 1, 176, 90, 119, 0, 176, 196, 216, 1, 176, 155, 119, 0, 176, 170, 254, 0, 161, 25, 3, 173, 1, 238, 188,
+			0, 162, 146, 18, 173, 1, 110, 189, 192, 195, 197, 236, 92, 43, 2, 104, 2, 96, 64, 1, 0, 145, 208, 0, 1, 0, 0, 176, 118, 207,
+			0, 176, 57, 1, 0, 176, 105, 254, 0, 176, 141, 219, 0, 176, 12, 229, 0, 176, 251, 223, 0, 176, 34, 244, 1, 176, 161, 22, 0, 176,
+			85, 0, 1, 176, 12, 59, 35, 19, 0, 176, 203, 189, 0, 176, 206, 219, 109, 19, 0, 176, 85, 0, 38, 5, 0, 176, 77, 190, 111, 19,
+			38, 5, 0, 176, 85, 0, 0, 176, 58, 181, 113, 19, 0, 176, 85, 0, 0, 176, 146, 191, 115, 19, 0, 176, 85, 0, 0, 176, 211, 191,
+			0, 176, 248, 0, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 123, 181, 0, 176, 174, 255, 1, 176, 59, 63, 0, 176, 6, 203, 1, 176,
+			220, 119, 0, 176, 57, 1, 0, 176, 253, 181, 0, 176, 187, 1, 0, 176, 46, 205, 0, 176, 175, 229, 0, 176, 251, 223, 2, 13, 175, 201,
+			1, 176, 108, 78, 0, 176, 57, 199, 58, 36, 3, 0, 144, 40, 3, 0, 9, 104, 141, 40, 2, 104, 113, 1, 113, 38, 8, 0, 142, 40,
+			2, 104, 113, 1, 0, 176, 176, 205, 0, 176, 118, 207, 1, 176, 9, 115, 0, 176, 122, 199, 92, 61, 8, 0, 92, 45, 7, 0, 111, 1,
+			112, 1, 1, 0, 92, 61, 8, 0, 92, 45, 7, 0, 108, 1, 2, 96, 40, 1, 1, 0, 93, 45, 7, 0, 110, 1, 2, 96, 36, 1,
+			1, 0, 93, 61, 8, 0, 93, 45, 7, 0, 104, 1, 0, 145, 54, 5, 1, 0, 93, 61, 8, 0, 93, 45, 7, 0, 118, 1, 2, 96,
+			100, 1, 1, 0, 93, 61, 8, 0, 93, 45, 7, 0, 64, 1, 0, 145, 208, 0, 1, 0, 2, 13, 144, 201, 0, 176, 176, 205, 2, 13,
+			155, 201, 0, 176, 12, 190, 2, 13, 140, 202, 0, 176, 202, 213, 1, 13, 0, 111, 1, 176, 222, 9, 1, 13, 0, 117, 0, 176, 123, 181,
+			2, 13, 175, 201, 0, 176, 40, 254, 2, 161, 213, 3, 73, 5, 226, 155, 2, 162, 210, 19, 73, 5, 226, 155, 177, 196, 253, 84, 0, 161,
+			21, 21, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 129, 194, 61, 120, 3, 13, 201, 116, 0, 149, 0, 161, 213, 3, 85, 1,
+			246, 221, 1, 192, 91, 37, 3, 13, 202, 100, 0, 145, 0, 161, 213, 3, 85, 1, 246, 221, 0, 176, 157, 57, 0, 240, 209, 58, 2, 13,
+			190, 201, 0, 162, 136, 20, 73, 13, 96, 170, 0, 161, 10, 19, 77, 9, 96, 170, 31, 48, 30, 32, 0, 176, 80, 46, 0, 176, 161, 46,
+			0, 176, 183, 0, 136, 40, 0, 176, 72, 213, 0, 176, 248, 0, 0, 176, 57, 1, 0, 176, 233, 180, 0, 176, 105, 254, 0, 176, 162, 183,
+			3, 13, 108, 116, 0, 35, 0, 161, 213, 3, 77, 1, 98, 170, 0, 162, 146, 18, 77, 1, 98, 162, 33, 195, 111, 74, 0};
+		autoFileInMemory espeakdata_phons3 = FileInMemory_createWithData (20426, reinterpret_cast<const char *> (&espeakdata_phons3_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/phonindex", 
 			U"phonindex");
-		my addItem_move (espeakdata_phons3.move());
+		Collection_addItem (me.peek(), espeakdata_phons3.transfer());
 
-		static unsigned char espeakdata_phons4_data[40565] = {
-			94, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 98, 97, 115, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		static unsigned char espeakdata_phons4_data[36149] = {
+			84, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 98, 97, 115, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0,
 			1, 0, 37, 37, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1,
@@ -14459,1357 +13600,1209 @@ autoFileInMemorySet create_espeakdata_phons () {
 			0, 0, 0, 0, 10, 0, 10, 0, 12, 1, 95, 33, 0, 0, 64, 0, 0, 0, 0, 0, 11, 0, 10, 0, 17, 1, 58, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 35, 0, 64, 0, 0, 0, 2, 0, 0, 0, 12, 0, 13, 2, 28, 28, 70, 0, 64, 45,
 			0, 0, 2, 0, 16, 0, 14, 0, 14, 2, 28, 28, 90, 0, 124, 124, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9,
-			42, 0, 0, 0, 16, 64, 132, 0, 138, 2, 16, 5, 0, 0, 0, 3, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
-			0, 0, 35, 88, 49, 0, 40, 0, 4, 0, 59, 0, 18, 6, 0, 0, 0, 3, 63, 0, 0, 0, 72, 0, 12, 0, 2, 0, 19, 4,
-			0, 0, 0, 3, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 9, 0, 0, 0, 0, 95, 94, 95, 0, 0, 0, 0, 0, 0, 0,
+			42, 0, 0, 0, 16, 64, 132, 0, 137, 2, 16, 5, 0, 0, 0, 3, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+			0, 0, 35, 88, 49, 0, 40, 0, 4, 0, 60, 0, 18, 6, 0, 0, 0, 3, 63, 0, 0, 0, 72, 0, 12, 0, 2, 0, 19, 4,
+			0, 0, 0, 2, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 9, 0, 0, 0, 0, 95, 94, 95, 0, 0, 0, 0, 0, 0, 0,
 			21, 0, 10, 0, 5, 1, 95, 88, 49, 0, 0, 0, 0, 0, 0, 0, 22, 0, 10, 0, 5, 1, 95, 124, 0, 0, 0, 0, 0, 0,
 			0, 0, 23, 0, 10, 0, 0, 5, 95, 58, 58, 0, 0, 0, 0, 0, 0, 0, 24, 0, 10, 0, 75, 1, 116, 35, 0, 0, 0, 0,
 			0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 39, 33, 0, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 6, 0, 95, 59, 95, 0,
 			0, 0, 0, 0, 0, 0, 27, 0, 10, 0, 100, 1, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 28, 9, 0, 0, 0, 0, 35, 97,
 			0, 0, 0, 0, 0, 0, 0, 0, 29, 9, 0, 0, 0, 0, 35, 101, 0, 0, 0, 0, 0, 0, 0, 0, 30, 9, 0, 0, 0, 0,
 			35, 105, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0, 0, 35, 111, 0, 0, 0, 0, 0, 0, 0, 0, 32, 9, 0, 0,
-			0, 0, 35, 117, 0, 0, 0, 0, 0, 0, 0, 0, 33, 9, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 128, 0, 71, 0, 34, 3,
-			0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 23, 0, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 25, 0,
-			36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 27, 0, 37, 2, 31, 31, 85, 0, 59, 0, 0, 0, 0, 2, 0, 0,
-			155, 1, 38, 3, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 30, 0, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 32, 0, 40, 2, 33, 33, 85, 0, 109, 45, 0, 0, 0, 0, 0, 0, 34, 0, 41, 2, 28, 28, 85, 4, 110, 45, 0, 0,
-			0, 0, 0, 0, 44, 0, 42, 2, 28, 28, 85, 4, 78, 45, 0, 0, 0, 0, 0, 0, 54, 0, 43, 2, 30, 30, 95, 4, 114, 45,
-			0, 0, 2, 0, 0, 0, 61, 0, 44, 2, 28, 28, 110, 0, 108, 45, 0, 0, 2, 0, 0, 0, 66, 0, 45, 2, 28, 28, 100, 0,
-			114, 47, 0, 0, 0, 0, 128, 0, 101, 0, 46, 3, 0, 0, 0, 2, 116, 0, 0, 0, 8, 0, 4, 0, 245, 4, 47, 4, 0, 72,
-			0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 219, 4, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 57, 5, 49, 4,
-			0, 81, 0, 2, 110, 0, 0, 0, 16, 0, 4, 0, 220, 1, 50, 8, 0, 0, 0, 4, 82, 0, 0, 0, 128, 0, 0, 0, 119, 0,
-			51, 3, 0, 0, 0, 6, 82, 50, 0, 0, 128, 0, 0, 0, 136, 0, 52, 3, 0, 0, 0, 6, 82, 51, 0, 0, 128, 0, 0, 0,
-			150, 0, 53, 3, 0, 0, 30, 6, 114, 34, 0, 0, 16, 0, 10, 0, 180, 0, 54, 7, 0, 0, 0, 6, 108, 0, 0, 0, 0, 0,
-			0, 0, 206, 0, 55, 3, 0, 0, 0, 7, 108, 47, 0, 0, 0, 0, 0, 0, 246, 0, 56, 3, 0, 0, 0, 7, 106, 0, 0, 0,
-			0, 2, 0, 0, 126, 1, 57, 3, 31, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 91, 1, 58, 3, 0, 0, 0, 7, 108, 47,
-			50, 0, 0, 0, 0, 0, 13, 1, 59, 3, 0, 0, 0, 7, 108, 47, 51, 0, 0, 0, 0, 0, 37, 1, 60, 3, 0, 0, 0, 7,
-			108, 94, 0, 0, 0, 0, 0, 0, 54, 1, 61, 3, 0, 0, 50, 7, 108, 46, 0, 0, 0, 0, 5, 0, 78, 1, 62, 3, 0, 0,
-			0, 7, 76, 47, 0, 0, 0, 0, 0, 0, 13, 1, 63, 3, 0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 82, 1, 64, 3,
-			0, 0, 0, 7, 109, 0, 0, 0, 16, 0, 1, 0, 180, 1, 65, 8, 0, 0, 0, 4, 110, 46, 0, 0, 16, 0, 5, 0, 1, 2,
-			66, 8, 50, 0, 0, 4, 110, 94, 0, 0, 16, 2, 7, 0, 39, 2, 67, 8, 0, 0, 0, 4, 78, 0, 0, 0, 16, 0, 8, 0,
-			79, 2, 68, 8, 0, 0, 0, 8, 42, 42, 0, 0, 0, 0, 132, 0, 122, 2, 69, 3, 0, 0, 0, 3, 114, 46, 0, 0, 0, 0,
-			5, 0, 183, 2, 70, 3, 0, 0, 0, 3, 98, 0, 0, 0, 16, 0, 1, 0, 196, 2, 71, 5, 0, 48, 0, 5, 100, 0, 0, 0,
-			16, 0, 4, 0, 15, 3, 72, 5, 0, 47, 0, 5, 100, 91, 0, 0, 16, 0, 3, 0, 36, 3, 73, 5, 0, 74, 0, 5, 116, 91,
-			0, 0, 8, 0, 3, 0, 10, 5, 74, 4, 0, 73, 0, 2, 100, 90, 0, 0, 48, 0, 6, 0, 63, 3, 75, 5, 0, 76, 0, 5,
-			116, 83, 0, 0, 40, 0, 6, 0, 23, 5, 76, 4, 0, 75, 0, 2, 100, 90, 59, 0, 48, 2, 6, 0, 84, 3, 77, 5, 0, 78,
-			0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 32, 5, 78, 4, 0, 77, 0, 2, 74, 0, 0, 0, 48, 2, 7, 0, 120, 3, 79, 5,
-			0, 80, 0, 5, 99, 0, 0, 0, 8, 2, 7, 0, 44, 5, 80, 4, 0, 79, 0, 2, 103, 0, 0, 0, 16, 0, 8, 0, 153, 3,
-			81, 5, 0, 49, 0, 5, 66, 0, 0, 0, 16, 0, 1, 0, 174, 3, 82, 7, 0, 83, 0, 6, 102, 0, 0, 0, 8, 0, 2, 0,
-			106, 5, 83, 6, 0, 84, 0, 3, 118, 0, 0, 0, 16, 0, 2, 0, 204, 3, 84, 7, 0, 83, 0, 6, 118, 35, 0, 0, 16, 0,
-			2, 0, 241, 3, 85, 7, 0, 83, 0, 6, 68, 0, 0, 0, 16, 0, 3, 0, 0, 4, 86, 7, 0, 87, 0, 6, 84, 0, 0, 0,
-			8, 0, 3, 0, 115, 5, 87, 6, 0, 86, 0, 3, 122, 0, 0, 0, 48, 0, 4, 0, 19, 4, 88, 7, 0, 89, 0, 6, 115, 0,
-			0, 0, 40, 0, 4, 0, 128, 5, 89, 6, 0, 88, 0, 3, 90, 0, 0, 0, 48, 0, 6, 0, 43, 4, 90, 7, 0, 91, 0, 6,
-			83, 0, 0, 0, 40, 0, 6, 0, 146, 5, 91, 6, 0, 90, 0, 3, 122, 46, 0, 0, 48, 0, 6, 0, 73, 4, 92, 7, 0, 93,
-			0, 6, 115, 46, 0, 0, 40, 0, 6, 0, 159, 5, 93, 6, 0, 92, 0, 3, 122, 59, 0, 0, 48, 2, 7, 0, 105, 4, 94, 7,
-			0, 95, 0, 6, 115, 59, 0, 0, 40, 2, 7, 0, 174, 5, 95, 6, 0, 94, 0, 3, 90, 59, 0, 0, 48, 2, 7, 0, 125, 4,
-			96, 7, 0, 97, 0, 6, 83, 59, 0, 0, 40, 2, 7, 0, 189, 5, 97, 6, 0, 96, 0, 3, 74, 94, 0, 0, 16, 2, 7, 0,
-			145, 4, 98, 7, 0, 99, 0, 6, 67, 0, 0, 0, 8, 2, 7, 0, 224, 5, 99, 6, 0, 0, 0, 3, 81, 0, 0, 0, 16, 0,
-			8, 0, 159, 4, 100, 7, 0, 101, 0, 6, 120, 0, 0, 0, 8, 0, 8, 0, 237, 5, 101, 6, 0, 100, 0, 3, 81, 94, 0, 0,
-			16, 0, 8, 0, 189, 4, 102, 7, 0, 0, 0, 6, 81, 34, 0, 0, 16, 0, 10, 0, 207, 4, 103, 7, 0, 0, 0, 6, 113, 0,
-			0, 0, 8, 0, 10, 0, 90, 5, 104, 4, 0, 0, 0, 2, 108, 35, 0, 0, 8, 0, 4, 0, 204, 5, 105, 6, 0, 0, 0, 3,
-			88, 0, 0, 0, 8, 0, 10, 0, 250, 5, 106, 6, 0, 103, 0, 3, 104, 0, 0, 0, 8, 0, 12, 0, 255, 5, 107, 6, 0, 0,
-			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 0, 0, 99, 111, 110, 115,
+			0, 0, 35, 117, 0, 0, 0, 0, 0, 0, 0, 0, 33, 9, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 128, 0, 72, 0, 34, 3,
+			0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 24, 0, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 26, 0,
+			36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 28, 0, 37, 2, 31, 31, 85, 0, 59, 0, 0, 0, 0, 2, 0, 0,
+			157, 1, 38, 3, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 31, 0, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 33, 0, 40, 2, 33, 33, 85, 0, 109, 45, 0, 0, 0, 0, 0, 0, 35, 0, 41, 2, 28, 28, 85, 0, 110, 45, 0, 0,
+			0, 0, 0, 0, 45, 0, 42, 2, 28, 28, 85, 0, 78, 45, 0, 0, 0, 0, 0, 0, 55, 0, 43, 2, 30, 30, 95, 0, 114, 45,
+			0, 0, 2, 0, 0, 0, 62, 0, 44, 2, 28, 28, 110, 0, 108, 45, 0, 0, 2, 0, 0, 0, 67, 0, 45, 2, 28, 28, 100, 0,
+			114, 47, 0, 0, 0, 0, 128, 0, 102, 0, 46, 3, 0, 0, 0, 2, 116, 0, 0, 0, 8, 0, 4, 0, 242, 4, 47, 4, 0, 72,
+			0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 216, 4, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 54, 5, 49, 4,
+			0, 81, 0, 2, 110, 0, 0, 0, 16, 0, 4, 0, 223, 1, 50, 8, 0, 0, 0, 4, 82, 0, 0, 0, 128, 0, 0, 0, 120, 0,
+			51, 3, 0, 0, 0, 6, 82, 50, 0, 0, 128, 0, 0, 0, 138, 0, 52, 3, 0, 0, 0, 6, 82, 51, 0, 0, 128, 0, 0, 0,
+			152, 0, 53, 3, 0, 0, 30, 6, 114, 34, 0, 0, 16, 0, 10, 0, 182, 0, 54, 7, 0, 0, 0, 6, 108, 0, 0, 0, 0, 0,
+			0, 0, 208, 0, 55, 3, 0, 0, 0, 7, 108, 47, 0, 0, 0, 0, 0, 0, 248, 0, 56, 3, 0, 0, 0, 7, 106, 0, 0, 0,
+			0, 2, 0, 0, 128, 1, 57, 3, 0, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 93, 1, 58, 3, 0, 0, 0, 7, 108, 47,
+			50, 0, 0, 0, 0, 0, 15, 1, 59, 3, 0, 0, 0, 7, 108, 47, 51, 0, 0, 0, 0, 0, 39, 1, 60, 3, 0, 0, 0, 7,
+			108, 94, 0, 0, 0, 0, 0, 0, 56, 1, 61, 3, 0, 0, 50, 7, 108, 46, 0, 0, 0, 0, 5, 0, 80, 1, 62, 3, 0, 0,
+			0, 7, 76, 47, 0, 0, 0, 0, 0, 0, 15, 1, 63, 3, 0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 84, 1, 64, 3,
+			0, 0, 0, 7, 109, 0, 0, 0, 16, 0, 1, 0, 183, 1, 65, 8, 0, 0, 0, 4, 110, 46, 0, 0, 16, 0, 5, 0, 4, 2,
+			66, 8, 50, 0, 0, 4, 110, 94, 0, 0, 16, 2, 7, 0, 42, 2, 67, 8, 0, 0, 0, 4, 78, 0, 0, 0, 16, 0, 8, 0,
+			82, 2, 68, 8, 0, 0, 0, 8, 42, 42, 0, 0, 0, 0, 132, 0, 121, 2, 69, 3, 0, 0, 0, 3, 114, 46, 0, 0, 0, 0,
+			5, 0, 183, 2, 70, 3, 0, 0, 0, 3, 98, 0, 0, 0, 16, 0, 1, 0, 193, 2, 71, 5, 0, 48, 0, 5, 100, 0, 0, 0,
+			16, 0, 4, 0, 12, 3, 72, 5, 0, 47, 0, 5, 100, 91, 0, 0, 16, 0, 3, 0, 33, 3, 73, 5, 0, 74, 0, 5, 116, 91,
+			0, 0, 8, 0, 3, 0, 7, 5, 74, 4, 0, 73, 0, 2, 100, 90, 0, 0, 48, 0, 6, 0, 60, 3, 75, 5, 0, 76, 0, 5,
+			116, 83, 0, 0, 40, 0, 6, 0, 20, 5, 76, 4, 0, 75, 0, 2, 100, 90, 59, 0, 48, 2, 6, 0, 81, 3, 77, 5, 0, 78,
+			0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 29, 5, 78, 4, 0, 77, 0, 2, 74, 0, 0, 0, 48, 2, 7, 0, 117, 3, 79, 5,
+			0, 80, 0, 5, 99, 0, 0, 0, 8, 2, 7, 0, 41, 5, 80, 4, 0, 79, 0, 2, 103, 0, 0, 0, 16, 0, 8, 0, 150, 3,
+			81, 5, 0, 49, 0, 5, 66, 0, 0, 0, 16, 0, 1, 0, 171, 3, 82, 7, 0, 83, 0, 6, 102, 0, 0, 0, 8, 0, 2, 0,
+			103, 5, 83, 6, 0, 84, 0, 3, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 83, 0, 6, 118, 35, 0, 0, 16, 0,
+			2, 0, 238, 3, 85, 7, 0, 83, 0, 6, 68, 0, 0, 0, 16, 0, 3, 0, 253, 3, 86, 7, 0, 87, 0, 6, 84, 0, 0, 0,
+			8, 0, 3, 0, 112, 5, 87, 6, 0, 86, 0, 3, 122, 0, 0, 0, 48, 0, 4, 0, 16, 4, 88, 7, 0, 89, 0, 6, 115, 0,
+			0, 0, 40, 0, 4, 0, 125, 5, 89, 6, 0, 88, 0, 3, 90, 0, 0, 0, 48, 0, 6, 0, 40, 4, 90, 7, 0, 91, 0, 6,
+			83, 0, 0, 0, 40, 0, 6, 0, 143, 5, 91, 6, 0, 90, 0, 3, 122, 46, 0, 0, 48, 0, 6, 0, 70, 4, 92, 7, 0, 93,
+			0, 6, 115, 46, 0, 0, 40, 0, 6, 0, 156, 5, 93, 6, 0, 92, 0, 3, 122, 59, 0, 0, 48, 2, 7, 0, 102, 4, 94, 7,
+			0, 95, 0, 6, 115, 59, 0, 0, 40, 2, 7, 0, 171, 5, 95, 6, 0, 94, 0, 3, 90, 59, 0, 0, 48, 2, 7, 0, 122, 4,
+			96, 7, 0, 97, 0, 6, 83, 59, 0, 0, 40, 2, 7, 0, 186, 5, 97, 6, 0, 96, 0, 3, 74, 94, 0, 0, 16, 2, 7, 0,
+			142, 4, 98, 7, 0, 99, 0, 6, 67, 0, 0, 0, 8, 2, 7, 0, 221, 5, 99, 6, 0, 0, 0, 3, 81, 0, 0, 0, 16, 0,
+			8, 0, 156, 4, 100, 7, 0, 101, 0, 6, 120, 0, 0, 0, 8, 0, 8, 0, 234, 5, 101, 6, 0, 100, 0, 3, 81, 94, 0, 0,
+			16, 0, 8, 0, 186, 4, 102, 7, 0, 0, 0, 6, 81, 34, 0, 0, 16, 0, 10, 0, 204, 4, 103, 7, 0, 0, 0, 6, 113, 0,
+			0, 0, 8, 0, 10, 0, 87, 5, 104, 4, 0, 0, 0, 2, 108, 35, 0, 0, 8, 0, 4, 0, 201, 5, 105, 6, 0, 0, 0, 3,
+			88, 0, 0, 0, 8, 0, 10, 0, 247, 5, 106, 6, 0, 103, 0, 3, 104, 0, 0, 0, 8, 0, 12, 0, 252, 5, 107, 6, 0, 0,
+			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 99, 111, 110, 115,
 			111, 110, 97, 110, 116, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 115,
-			0, 0, 40, 0, 4, 0, 21, 6, 108, 4, 0, 109, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 34, 6, 109, 5, 0, 108, 0, 5,
-			112, 45, 0, 0, 8, 0, 1, 0, 55, 6, 110, 4, 0, 71, 0, 2, 112, 104, 0, 0, 8, 0, 1, 0, 74, 6, 111, 4, 0, 71,
-			0, 2, 116, 45, 0, 0, 8, 0, 4, 0, 90, 6, 112, 4, 0, 72, 0, 2, 99, 50, 0, 0, 40, 0, 7, 0, 103, 6, 113, 4,
-			0, 0, 0, 2, 107, 45, 0, 0, 8, 0, 8, 0, 116, 6, 114, 4, 0, 81, 0, 2, 107, 104, 0, 0, 8, 0, 8, 0, 129, 6,
-			115, 4, 0, 81, 0, 2, 107, 35, 0, 0, 8, 0, 8, 0, 145, 6, 116, 4, 0, 81, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0,
-			167, 6, 117, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0,
-			0, 0, 98, 97, 115, 101, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 176, 6, 35, 2, 29, 29, 95, 0, 101, 0, 0, 0, 0, 0, 0, 0, 185, 6,
-			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 189, 6, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			192, 6, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 196, 6, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0,
-			3, 0, 245, 6, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 226, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0,
-			8, 0, 8, 0, 29, 7, 49, 4, 0, 81, 0, 2, 100, 0, 0, 0, 16, 0, 3, 0, 2, 7, 72, 5, 0, 47, 0, 5, 97, 47,
-			0, 0, 0, 0, 0, 0, 183, 6, 108, 2, 28, 28, 95, 0, 69, 0, 0, 0, 0, 0, 0, 0, 187, 6, 109, 2, 30, 30, 90, 0,
-			79, 0, 0, 0, 0, 0, 0, 0, 194, 6, 110, 2, 32, 32, 90, 0, 85, 0, 0, 0, 0, 0, 0, 0, 198, 6, 111, 2, 33, 33,
-			90, 0, 121, 0, 0, 0, 0, 0, 0, 0, 200, 6, 112, 2, 31, 31, 90, 0, 89, 0, 0, 0, 0, 0, 0, 0, 202, 6, 113, 2,
-			28, 28, 90, 0, 97, 85, 0, 0, 0, 0, 0, 0, 204, 6, 114, 2, 29, 33, 135, 0, 101, 85, 0, 0, 0, 0, 0, 0, 206, 6,
-			115, 2, 30, 33, 130, 0, 105, 85, 0, 0, 0, 0, 0, 0, 208, 6, 116, 2, 31, 33, 120, 0, 97, 73, 0, 0, 0, 0, 0, 0,
-			210, 6, 117, 2, 29, 31, 125, 0, 101, 73, 0, 0, 0, 0, 0, 0, 212, 6, 118, 2, 30, 31, 125, 0, 69, 73, 0, 0, 0, 0,
-			0, 0, 214, 6, 119, 2, 30, 31, 115, 0, 111, 73, 0, 0, 0, 0, 0, 0, 216, 6, 120, 2, 32, 31, 120, 0, 117, 73, 0, 0,
-			0, 0, 0, 0, 218, 6, 121, 2, 33, 31, 120, 0, 119, 50, 0, 0, 0, 0, 0, 0, 220, 6, 122, 3, 0, 0, 0, 7, 116, 115,
-			0, 0, 40, 0, 4, 0, 21, 6, 123, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			56, 1, 0, 0, 0, 0, 0, 0, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 152, 7, 13, 2, 28, 28, 70, 0, 116, 35, 0, 0,
-			16, 0, 4, 0, 54, 7, 25, 5, 0, 0, 0, 5, 97, 0, 0, 0, 0, 0, 0, 0, 179, 7, 35, 2, 29, 29, 80, 0, 105, 0,
-			0, 0, 0, 0, 0, 0, 220, 7, 37, 2, 31, 31, 70, 0, 114, 45, 0, 0, 0, 0, 128, 0, 125, 7, 44, 3, 0, 0, 0, 0,
-			108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 116, 50, 0, 0, 16, 0, 4, 0, 52, 7, 108, 5, 0, 0,
-			0, 0, 100, 35, 0, 0, 8, 0, 4, 0, 81, 7, 109, 4, 0, 0, 0, 0, 122, 35, 0, 0, 40, 0, 4, 0, 86, 7, 110, 6,
-			0, 0, 0, 0, 103, 45, 0, 0, 16, 0, 8, 0, 104, 7, 111, 5, 0, 0, 0, 5, 122, 47, 50, 0, 48, 0, 4, 0, 145, 7,
-			112, 7, 0, 0, 0, 6, 73, 50, 0, 0, 2, 0, 0, 0, 210, 7, 113, 2, 31, 31, 65, 0, 51, 0, 0, 0, 2, 0, 0, 0,
-			158, 7, 114, 2, 28, 28, 70, 0, 64, 50, 0, 0, 2, 0, 0, 0, 163, 7, 115, 2, 28, 28, 60, 0, 64, 53, 0, 0, 2, 0,
-			0, 0, 167, 7, 116, 2, 28, 28, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 242, 7, 117, 2, 32, 32, 75, 0, 64, 76, 0, 0,
-			2, 0, 0, 0, 172, 7, 118, 2, 28, 55, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0, 185, 7, 119, 2, 28, 28, 75, 0, 97, 97,
-			0, 0, 0, 0, 0, 0, 189, 7, 120, 2, 29, 29, 92, 0, 65, 58, 0, 0, 0, 0, 0, 0, 244, 7, 121, 2, 29, 29, 115, 0,
-			69, 0, 0, 0, 0, 0, 0, 0, 196, 7, 122, 2, 30, 30, 70, 0, 69, 35, 0, 0, 0, 0, 0, 0, 199, 7, 123, 2, 30, 30,
-			90, 0, 73, 0, 0, 0, 0, 0, 0, 0, 207, 7, 124, 2, 31, 31, 65, 0, 73, 35, 0, 0, 2, 0, 0, 0, 215, 7, 125, 2,
-			31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0, 225, 7, 126, 2, 32, 32, 70, 0, 48, 35, 0, 0, 0, 0, 0, 0, 228, 7,
-			127, 2, 32, 32, 90, 0, 48, 50, 0, 0, 0, 0, 0, 0, 237, 7, 128, 2, 32, 32, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0,
-			239, 7, 129, 2, 29, 28, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0, 247, 7, 130, 2, 29, 29, 115, 0, 51, 58, 0, 0, 0, 0,
-			0, 0, 253, 7, 131, 2, 28, 28, 105, 0, 105, 58, 0, 0, 0, 0, 0, 0, 1, 8, 132, 2, 31, 31, 87, 0, 79, 58, 0, 0,
-			0, 0, 0, 0, 7, 8, 133, 2, 32, 32, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 10, 8, 134, 2, 32, 32, 100, 0, 79, 64,
-			0, 0, 0, 0, 0, 0, 13, 8, 135, 2, 32, 32, 120, 0, 111, 64, 0, 0, 0, 0, 0, 0, 19, 8, 136, 2, 32, 32, 125, 0,
-			117, 58, 0, 0, 0, 0, 0, 0, 27, 8, 137, 2, 33, 33, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 34, 8, 138, 2, 29, 33,
-			115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 36, 8, 139, 2, 28, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 41, 8, 140, 2,
-			29, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 45, 8, 141, 2, 30, 31, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0, 47, 8,
-			142, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 49, 8, 143, 2, 30, 28, 115, 0, 105, 64, 0, 0, 0, 0, 0, 0,
-			52, 8, 144, 2, 31, 28, 125, 0, 105, 64, 51, 0, 0, 0, 0, 0, 55, 8, 145, 2, 31, 28, 125, 0, 85, 64, 0, 0, 0, 0,
-			0, 0, 60, 8, 146, 2, 33, 28, 100, 0, 97, 73, 64, 0, 0, 0, 0, 0, 66, 8, 147, 2, 29, 28, 140, 0, 97, 73, 51, 0,
-			0, 0, 0, 0, 69, 8, 148, 2, 29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 71, 8, 149, 2, 29, 28, 140, 0, 73, 82,
-			0, 0, 0, 0, 0, 0, 74, 8, 150, 2, 28, 28, 95, 0, 86, 82, 0, 0, 0, 0, 0, 0, 83, 8, 151, 2, 28, 28, 105, 0,
-			111, 58, 0, 0, 0, 0, 0, 0, 92, 8, 152, 2, 32, 32, 110, 0, 65, 126, 0, 0, 0, 0, 0, 0, 94, 8, 153, 2, 29, 29,
-			130, 0, 79, 126, 0, 0, 0, 0, 0, 0, 96, 8, 154, 2, 32, 32, 120, 0, 101, 58, 0, 0, 0, 0, 0, 0, 98, 8, 155, 2,
-			30, 30, 105, 0, 64, 35, 0, 0, 2, 0, 0, 0, 100, 8, 156, 2, 31, 31, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 33, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 111, 8, 35, 2, 29, 29,
-			70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 123, 8, 37, 2, 31, 31, 75, 0, 78, 0, 0, 0, 16, 0, 8, 0, 102, 8, 68, 8,
-			0, 0, 0, 8, 73, 50, 0, 0, 2, 0, 0, 0, 120, 8, 113, 2, 31, 31, 70, 0, 51, 0, 0, 0, 2, 0, 0, 0, 106, 8,
-			114, 2, 28, 28, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 133, 8, 117, 2, 32, 32, 85, 0, 97, 35, 0, 0, 2, 0, 0, 0,
-			135, 8, 119, 2, 28, 28, 70, 0, 97, 97, 0, 0, 0, 0, 0, 0, 149, 8, 120, 2, 29, 29, 75, 0, 65, 58, 0, 0, 0, 0,
-			0, 0, 140, 8, 121, 2, 29, 28, 120, 0, 69, 0, 0, 0, 0, 0, 0, 0, 114, 8, 122, 2, 29, 29, 75, 0, 73, 0, 0, 0,
-			0, 0, 0, 0, 117, 8, 124, 2, 31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0, 125, 8, 126, 2, 32, 32, 75, 0, 86, 0,
-			0, 0, 0, 0, 0, 0, 128, 8, 129, 2, 32, 32, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0, 143, 8, 130, 2, 29, 28, 125, 0,
-			51, 58, 0, 0, 0, 0, 0, 0, 153, 8, 131, 2, 28, 28, 115, 0, 105, 58, 0, 0, 0, 0, 0, 0, 157, 8, 132, 2, 31, 31,
-			87, 0, 79, 58, 0, 0, 0, 0, 0, 0, 163, 8, 133, 2, 32, 32, 120, 0, 79, 0, 0, 0, 0, 0, 0, 0, 179, 8, 134, 2,
-			32, 32, 75, 0, 79, 64, 0, 0, 0, 0, 0, 0, 167, 8, 135, 2, 32, 28, 120, 0, 111, 64, 0, 0, 0, 0, 0, 0, 173, 8,
-			136, 2, 32, 28, 120, 0, 117, 58, 0, 0, 0, 0, 0, 0, 182, 8, 137, 2, 33, 33, 100, 0, 97, 85, 0, 0, 0, 0, 0, 0,
-			184, 8, 138, 2, 30, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 189, 8, 139, 2, 32, 32, 110, 0, 97, 73, 0, 0, 0, 0,
-			0, 0, 194, 8, 140, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 196, 8, 141, 2, 31, 31, 105, 0, 79, 73, 0, 0,
-			0, 0, 0, 0, 201, 8, 142, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 203, 8, 143, 2, 30, 28, 110, 0, 105, 64,
-			0, 0, 0, 0, 0, 0, 206, 8, 144, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 209, 8, 146, 2, 33, 28, 100, 0,
-			97, 73, 64, 0, 0, 0, 0, 0, 212, 8, 147, 2, 29, 28, 140, 0, 97, 73, 51, 0, 0, 0, 0, 0, 215, 8, 148, 2, 29, 28,
-			140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 217, 8, 149, 2, 29, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 41, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 117, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 225, 8, 13, 2, 28, 28, 65, 0,
-			63, 0, 0, 0, 72, 0, 12, 0, 193, 9, 19, 4, 0, 0, 0, 1, 97, 0, 0, 0, 0, 0, 0, 0, 236, 8, 35, 2, 30, 28,
-			105, 0, 105, 0, 0, 0, 2, 0, 0, 0, 7, 9, 37, 2, 31, 31, 85, 0, 114, 47, 0, 0, 0, 0, 0, 0, 0, 0, 46, 3,
-			0, 0, 0, 2, 116, 0, 0, 0, 8, 0, 4, 0, 156, 9, 47, 4, 0, 72, 0, 2, 116, 50, 0, 0, 8, 0, 4, 0, 245, 4,
-			108, 4, 0, 0, 0, 2, 73, 50, 0, 0, 2, 0, 0, 0, 255, 8, 113, 2, 31, 31, 80, 0, 51, 0, 0, 0, 2, 0, 0, 0,
-			220, 8, 114, 2, 28, 28, 105, 0, 64, 50, 0, 0, 2, 0, 0, 0, 232, 8, 115, 2, 28, 28, 60, 0, 85, 0, 0, 0, 0, 0,
-			0, 0, 23, 9, 117, 2, 32, 32, 72, 0, 97, 35, 0, 0, 2, 0, 0, 0, 244, 8, 119, 2, 28, 28, 75, 0, 97, 97, 0, 0,
-			0, 0, 0, 0, 236, 8, 120, 2, 30, 28, 105, 0, 65, 58, 0, 0, 0, 0, 0, 0, 25, 9, 121, 2, 29, 29, 100, 0, 69, 0,
-			0, 0, 0, 0, 0, 0, 248, 8, 122, 2, 30, 30, 95, 0, 73, 0, 0, 0, 0, 0, 0, 0, 251, 8, 124, 2, 31, 31, 80, 0,
-			73, 35, 0, 0, 2, 0, 0, 0, 2, 9, 125, 2, 31, 31, 80, 0, 48, 0, 0, 0, 0, 0, 0, 0, 10, 9, 126, 2, 29, 29,
-			100, 0, 48, 50, 0, 0, 0, 0, 0, 0, 18, 9, 128, 2, 32, 32, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 20, 9, 129, 2,
-			29, 28, 85, 0, 65, 64, 0, 0, 0, 0, 0, 0, 30, 9, 130, 2, 29, 29, 90, 0, 51, 58, 0, 0, 0, 0, 0, 0, 43, 9,
-			131, 2, 28, 28, 120, 0, 105, 58, 0, 0, 0, 0, 0, 0, 47, 9, 132, 2, 31, 31, 85, 0, 79, 58, 0, 0, 0, 0, 0, 0,
-			50, 9, 133, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 79, 9, 134, 2, 32, 32, 100, 0, 79, 64, 0, 0, 0, 0,
-			0, 0, 56, 9, 135, 2, 32, 28, 125, 0, 111, 64, 0, 0, 0, 0, 0, 0, 68, 9, 136, 2, 32, 28, 125, 0, 117, 58, 0, 0,
-			0, 0, 0, 0, 82, 9, 137, 2, 33, 33, 95, 0, 97, 85, 0, 0, 0, 0, 0, 0, 84, 9, 138, 2, 29, 32, 117, 0, 111, 85,
-			0, 0, 0, 0, 0, 0, 86, 9, 139, 2, 28, 33, 115, 0, 97, 73, 0, 0, 0, 0, 0, 0, 88, 9, 140, 2, 29, 31, 120, 0,
-			101, 73, 0, 0, 0, 0, 0, 0, 93, 9, 141, 2, 30, 31, 110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 95, 9, 142, 2, 32, 31,
-			135, 0, 101, 64, 0, 0, 0, 0, 0, 0, 97, 9, 143, 2, 30, 28, 140, 0, 105, 64, 0, 0, 0, 0, 0, 0, 107, 9, 144, 2,
-			31, 28, 125, 0, 105, 64, 51, 0, 0, 0, 0, 0, 109, 9, 145, 2, 31, 28, 140, 0, 85, 64, 0, 0, 0, 0, 0, 0, 119, 9,
-			146, 2, 28, 28, 125, 0, 97, 73, 64, 0, 0, 0, 0, 0, 129, 9, 147, 2, 29, 28, 150, 0, 97, 73, 51, 0, 0, 0, 0, 0,
-			136, 9, 148, 2, 29, 28, 155, 0, 97, 85, 64, 0, 0, 0, 0, 0, 143, 9, 149, 2, 29, 28, 150, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 115, 99, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 203, 9,
-			13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0, 128, 0, 152, 10, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0,
-			223, 9, 35, 2, 29, 29, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 10, 37, 2, 31, 30, 75, 0, 114, 47, 0, 0, 0, 0,
-			0, 0, 150, 10, 46, 3, 0, 0, 0, 2, 73, 50, 0, 0, 2, 0, 0, 0, 251, 9, 113, 2, 28, 28, 55, 0, 51, 0, 0, 0,
-			2, 0, 0, 0, 206, 9, 114, 2, 28, 28, 70, 0, 64, 50, 0, 0, 2, 0, 0, 0, 214, 9, 115, 2, 28, 28, 60, 0, 64, 53,
-			0, 0, 2, 0, 0, 0, 218, 9, 116, 2, 28, 28, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 13, 10, 117, 2, 33, 33, 70, 0,
-			64, 76, 0, 0, 2, 0, 0, 0, 143, 10, 118, 2, 28, 55, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0, 230, 9, 119, 2, 28, 28,
-			70, 0, 97, 97, 0, 0, 0, 0, 0, 0, 235, 9, 120, 2, 29, 29, 110, 0, 65, 58, 0, 0, 0, 0, 0, 0, 17, 10, 121, 2,
-			29, 29, 110, 0, 69, 0, 0, 0, 0, 0, 0, 0, 240, 9, 122, 2, 30, 30, 85, 0, 73, 0, 0, 0, 0, 0, 0, 0, 243, 9,
-			124, 2, 28, 28, 55, 0, 73, 35, 0, 0, 0, 0, 0, 0, 254, 9, 125, 2, 28, 28, 90, 0, 48, 0, 0, 0, 0, 0, 0, 0,
-			5, 10, 126, 2, 32, 32, 100, 0, 48, 50, 0, 0, 0, 0, 0, 0, 8, 10, 128, 2, 32, 32, 70, 0, 86, 0, 0, 0, 0, 0,
-			0, 0, 10, 10, 129, 2, 29, 28, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0, 27, 10, 130, 2, 29, 28, 125, 0, 51, 58, 0, 0,
-			0, 0, 0, 0, 35, 10, 131, 2, 30, 28, 115, 0, 105, 58, 0, 0, 0, 0, 0, 0, 40, 10, 132, 2, 31, 31, 65, 0, 79, 58,
-			0, 0, 0, 0, 0, 0, 49, 10, 133, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 69, 10, 134, 2, 32, 32, 75, 0,
-			79, 64, 0, 0, 0, 0, 0, 0, 55, 10, 135, 2, 32, 28, 115, 0, 111, 64, 0, 0, 0, 0, 0, 0, 62, 10, 136, 2, 32, 28,
-			115, 0, 117, 58, 0, 0, 0, 0, 0, 0, 72, 10, 137, 2, 33, 33, 80, 0, 97, 85, 0, 0, 0, 0, 0, 0, 84, 10, 138, 2,
-			29, 33, 100, 0, 111, 85, 0, 0, 0, 0, 0, 0, 89, 10, 139, 2, 32, 33, 95, 0, 97, 73, 0, 0, 0, 0, 0, 0, 94, 10,
-			140, 2, 29, 31, 95, 0, 101, 73, 0, 0, 0, 0, 0, 0, 104, 10, 141, 2, 30, 31, 95, 0, 79, 73, 0, 0, 0, 0, 0, 0,
-			109, 10, 142, 2, 32, 31, 105, 0, 101, 64, 0, 0, 0, 0, 0, 0, 111, 10, 143, 2, 30, 28, 110, 0, 105, 64, 51, 0, 0, 0,
-			0, 0, 118, 10, 145, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 125, 10, 146, 2, 33, 28, 90, 0, 97, 73, 64, 0,
-			0, 0, 0, 0, 138, 10, 147, 2, 29, 28, 135, 0, 97, 73, 51, 0, 0, 0, 0, 0, 141, 10, 148, 2, 29, 28, 140, 0, 97, 85,
-			64, 0, 0, 0, 0, 0, 135, 10, 149, 2, 29, 28, 135, 0, 97, 47, 0, 0, 0, 0, 0, 0, 227, 9, 157, 2, 29, 29, 80, 0,
-			97, 73, 50, 0, 0, 0, 0, 0, 102, 10, 158, 2, 29, 31, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 34, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 114, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 159, 10, 13, 2, 28, 28, 70, 0, 97, 0,
-			0, 0, 0, 0, 0, 0, 179, 10, 35, 2, 29, 29, 87, 0, 105, 0, 0, 0, 0, 0, 0, 0, 193, 10, 37, 2, 31, 31, 70, 0,
-			73, 50, 0, 0, 2, 0, 0, 0, 190, 10, 113, 2, 31, 31, 65, 0, 51, 0, 0, 0, 2, 0, 0, 0, 165, 10, 114, 2, 28, 28,
-			70, 0, 64, 50, 0, 0, 2, 0, 0, 0, 170, 10, 115, 2, 28, 28, 60, 0, 64, 53, 0, 0, 2, 0, 0, 0, 174, 10, 116, 2,
-			28, 28, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 202, 10, 117, 2, 32, 32, 75, 0, 97, 35, 0, 0, 2, 0, 0, 0, 204, 10,
-			119, 2, 28, 28, 75, 0, 97, 97, 0, 0, 0, 0, 0, 0, 218, 10, 120, 2, 29, 29, 100, 0, 65, 58, 0, 0, 0, 0, 0, 0,
-			209, 10, 121, 2, 29, 29, 120, 0, 69, 0, 0, 0, 0, 0, 0, 0, 184, 10, 122, 2, 30, 30, 70, 0, 73, 0, 0, 0, 0, 0,
-			0, 0, 187, 10, 124, 2, 31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0, 196, 10, 126, 2, 32, 32, 70, 0, 86, 0, 0, 0,
-			0, 0, 0, 0, 199, 10, 129, 2, 29, 28, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0, 212, 10, 130, 2, 29, 29, 120, 0, 51, 58,
-			0, 0, 0, 0, 0, 0, 223, 10, 131, 2, 28, 28, 105, 0, 105, 58, 0, 0, 0, 0, 32, 0, 227, 10, 132, 2, 31, 31, 87, 0,
-			79, 58, 0, 0, 0, 0, 0, 0, 233, 10, 133, 2, 32, 32, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 243, 10, 134, 2, 32, 32,
-			75, 0, 79, 64, 0, 0, 0, 0, 0, 0, 237, 10, 135, 2, 32, 28, 115, 0, 117, 58, 0, 0, 0, 0, 0, 0, 246, 10, 137, 2,
-			33, 33, 95, 0, 97, 85, 0, 0, 0, 0, 0, 0, 248, 10, 138, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 250, 10,
-			139, 2, 28, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 255, 10, 140, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0,
-			4, 11, 141, 2, 31, 31, 110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 6, 11, 142, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0,
-			0, 0, 8, 11, 143, 2, 30, 28, 110, 0, 105, 64, 0, 0, 0, 0, 0, 0, 11, 11, 144, 2, 31, 28, 120, 0, 85, 64, 0, 0,
-			0, 0, 0, 0, 14, 11, 146, 2, 33, 28, 115, 0, 97, 73, 64, 0, 0, 0, 0, 0, 20, 11, 147, 2, 29, 28, 135, 0, 97, 73,
-			51, 0, 0, 0, 0, 0, 23, 11, 148, 2, 29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 25, 11, 149, 2, 29, 28, 135, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 119, 109, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0,
-			0, 0, 0, 0, 32, 11, 35, 2, 29, 29, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 45, 11, 37, 2, 31, 31, 110, 0, 78, 0,
-			0, 0, 16, 0, 8, 0, 28, 11, 68, 8, 0, 0, 0, 8, 73, 50, 0, 0, 2, 0, 0, 0, 38, 11, 113, 2, 31, 31, 70, 0,
-			85, 0, 0, 0, 0, 0, 0, 0, 58, 11, 117, 2, 33, 33, 75, 0, 97, 35, 0, 0, 2, 0, 0, 0, 61, 11, 119, 2, 28, 28,
-			70, 0, 97, 97, 0, 0, 0, 0, 0, 0, 74, 11, 120, 2, 29, 29, 80, 0, 65, 58, 0, 0, 0, 0, 0, 0, 65, 11, 121, 2,
-			29, 29, 120, 0, 69, 0, 0, 0, 0, 0, 0, 0, 35, 11, 122, 2, 30, 30, 75, 0, 73, 0, 0, 0, 0, 0, 0, 0, 38, 11,
-			124, 2, 31, 31, 70, 0, 48, 0, 0, 0, 0, 0, 0, 0, 48, 11, 126, 2, 32, 32, 70, 0, 48, 50, 0, 0, 0, 0, 0, 0,
-			51, 11, 128, 2, 32, 32, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 53, 11, 129, 2, 32, 32, 70, 0, 65, 64, 0, 0, 0, 0,
-			0, 0, 68, 11, 130, 2, 29, 29, 120, 0, 51, 58, 0, 0, 0, 0, 0, 0, 78, 11, 131, 2, 28, 28, 125, 0, 105, 58, 0, 0,
-			0, 0, 0, 0, 82, 11, 132, 2, 30, 31, 110, 0, 79, 58, 0, 0, 0, 0, 0, 0, 87, 11, 133, 2, 32, 32, 120, 0, 79, 0,
-			0, 0, 0, 0, 0, 0, 97, 11, 134, 2, 32, 32, 75, 0, 79, 64, 0, 0, 0, 0, 0, 0, 91, 11, 135, 2, 32, 28, 120, 0,
-			117, 58, 0, 0, 0, 0, 0, 0, 100, 11, 137, 2, 33, 33, 100, 0, 97, 85, 0, 0, 0, 0, 0, 0, 105, 11, 138, 2, 29, 33,
-			115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 110, 11, 139, 2, 28, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 115, 11, 140, 2,
-			32, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 120, 11, 141, 2, 28, 31, 120, 0, 79, 73, 0, 0, 0, 0, 0, 0, 125, 11,
-			142, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 130, 11, 143, 2, 28, 28, 120, 0, 105, 64, 0, 0, 0, 0, 0, 0,
-			136, 11, 144, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 139, 11, 146, 2, 33, 28, 100, 0, 97, 73, 64, 0, 0, 0,
-			0, 0, 142, 11, 147, 2, 29, 28, 140, 0, 97, 73, 51, 0, 0, 0, 0, 0, 145, 11, 148, 2, 29, 28, 140, 0, 97, 85, 64, 0,
-			0, 0, 0, 0, 147, 11, 149, 2, 29, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 4,
-			0, 0, 0, 0, 0, 0, 101, 110, 45, 119, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 150, 11, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0, 0, 0,
-			0, 0, 157, 11, 35, 2, 29, 29, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 168, 11, 37, 2, 31, 31, 75, 0, 108, 0, 0, 0,
-			0, 0, 0, 0, 206, 0, 55, 3, 0, 0, 0, 7, 73, 50, 0, 0, 2, 0, 0, 0, 165, 11, 113, 2, 31, 31, 70, 0, 64, 50,
-			0, 0, 2, 0, 0, 0, 153, 11, 115, 2, 28, 28, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0, 175, 11, 117, 2, 32, 32, 75, 0,
-			97, 35, 0, 0, 2, 0, 0, 0, 177, 11, 119, 2, 28, 28, 70, 0, 97, 97, 0, 0, 0, 0, 0, 0, 184, 11, 120, 2, 29, 29,
-			105, 0, 65, 58, 0, 0, 0, 0, 0, 0, 179, 11, 121, 2, 29, 28, 120, 0, 69, 0, 0, 0, 0, 0, 0, 0, 159, 11, 122, 2,
-			30, 30, 85, 0, 73, 0, 0, 0, 0, 0, 0, 0, 162, 11, 124, 2, 31, 31, 70, 0, 48, 0, 0, 0, 0, 0, 0, 0, 171, 11,
-			126, 2, 29, 29, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 173, 11, 129, 2, 32, 32, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0,
-			181, 11, 130, 2, 29, 28, 130, 0, 51, 58, 0, 0, 0, 0, 0, 0, 186, 11, 131, 2, 32, 32, 120, 0, 105, 58, 0, 0, 0, 0,
-			0, 0, 189, 11, 132, 2, 31, 31, 95, 0, 79, 58, 0, 0, 0, 0, 0, 0, 192, 11, 133, 2, 32, 32, 120, 0, 79, 0, 0, 0,
-			0, 0, 0, 0, 200, 11, 134, 2, 32, 32, 75, 0, 79, 64, 0, 0, 0, 0, 0, 0, 194, 11, 135, 2, 32, 28, 120, 0, 111, 64,
-			0, 0, 0, 0, 0, 0, 197, 11, 136, 2, 32, 28, 120, 0, 117, 58, 0, 0, 0, 0, 0, 0, 202, 11, 137, 2, 33, 33, 95, 0,
-			97, 85, 0, 0, 0, 0, 0, 0, 204, 11, 138, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 206, 11, 139, 2, 32, 32,
-			115, 0, 97, 73, 0, 0, 0, 0, 0, 0, 208, 11, 140, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 210, 11, 141, 2,
-			31, 31, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0, 212, 11, 142, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 214, 11,
-			143, 2, 30, 28, 110, 0, 105, 64, 0, 0, 0, 0, 0, 0, 217, 11, 144, 2, 31, 29, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 97, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9,
-			0, 0, 70, 0, 64, 0, 0, 0, 2, 0, 0, 0, 220, 11, 13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0, 128, 0, 81, 12,
-			34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 227, 11, 35, 2, 29, 29, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0,
-			14, 12, 37, 2, 31, 31, 50, 0, 117, 0, 0, 0, 0, 0, 0, 0, 246, 11, 40, 2, 33, 33, 55, 0, 114, 47, 0, 0, 0, 0,
-			0, 0, 109, 12, 46, 3, 0, 0, 0, 7, 108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 99, 0, 0, 0,
-			8, 2, 7, 0, 118, 12, 80, 4, 0, 81, 0, 2, 69, 0, 0, 0, 0, 0, 0, 0, 231, 11, 108, 2, 30, 30, 70, 0, 73, 0,
-			0, 0, 0, 0, 0, 0, 233, 11, 109, 2, 28, 28, 70, 0, 79, 0, 0, 0, 0, 0, 0, 0, 242, 11, 110, 2, 32, 32, 70, 0,
-			87, 0, 0, 0, 0, 0, 0, 0, 244, 11, 111, 2, 28, 28, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 248, 11, 112, 2, 30, 30,
-			75, 0, 38, 58, 0, 0, 0, 0, 0, 0, 253, 11, 113, 2, 30, 30, 140, 0, 64, 76, 0, 0, 2, 0, 0, 0, 2, 12, 114, 2,
-			28, 55, 80, 0, 65, 58, 0, 0, 0, 0, 0, 0, 7, 12, 115, 2, 29, 29, 140, 0, 101, 64, 0, 0, 0, 0, 0, 0, 9, 12,
-			116, 2, 31, 28, 115, 0, 111, 64, 0, 0, 0, 0, 0, 0, 17, 12, 117, 2, 33, 28, 125, 0, 121, 0, 0, 0, 0, 0, 0, 0,
-			22, 12, 118, 2, 31, 31, 90, 0, 105, 117, 0, 0, 0, 0, 0, 0, 24, 12, 119, 2, 31, 33, 110, 0, 64, 85, 0, 0, 0, 0,
-			0, 0, 26, 12, 120, 2, 28, 33, 85, 0, 97, 73, 0, 0, 0, 0, 0, 0, 28, 12, 121, 2, 29, 31, 110, 0, 65, 73, 0, 0,
-			0, 0, 0, 0, 31, 12, 122, 2, 29, 31, 155, 0, 101, 73, 0, 0, 0, 0, 0, 0, 34, 12, 123, 2, 30, 31, 85, 0, 79, 73,
-			0, 0, 0, 0, 0, 0, 40, 12, 124, 2, 32, 31, 115, 0, 111, 73, 0, 0, 0, 0, 0, 0, 43, 12, 125, 2, 32, 31, 145, 0,
-			117, 73, 0, 0, 0, 0, 0, 0, 49, 12, 126, 2, 33, 31, 120, 0, 89, 121, 0, 0, 0, 0, 0, 0, 52, 12, 127, 2, 28, 31,
-			110, 0, 89, 64, 0, 0, 0, 0, 0, 0, 55, 12, 128, 2, 31, 28, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 57, 12, 129, 2,
-			29, 33, 115, 0, 101, 58, 0, 0, 0, 0, 0, 0, 59, 12, 130, 2, 30, 30, 105, 0, 79, 58, 0, 0, 0, 0, 0, 0, 61, 12,
-			131, 2, 32, 32, 140, 0, 51, 58, 0, 0, 0, 0, 0, 0, 63, 12, 132, 2, 28, 28, 115, 0, 65, 126, 0, 0, 0, 0, 0, 0,
-			65, 12, 133, 2, 29, 29, 120, 0, 101, 126, 0, 0, 0, 0, 0, 0, 67, 12, 134, 2, 30, 30, 120, 0, 111, 126, 0, 0, 0, 0,
-			0, 0, 69, 12, 135, 2, 32, 32, 120, 0, 120, 50, 0, 0, 8, 0, 8, 0, 71, 12, 136, 6, 0, 0, 0, 3, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 99, 121, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 128, 0, 0, 0,
-			209, 12, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 128, 12, 35, 2, 29, 29, 75, 0, 103, 0, 0, 0, 16, 0,
-			8, 0, 221, 12, 81, 5, 0, 49, 0, 5, 69, 0, 0, 0, 0, 0, 0, 0, 130, 12, 108, 2, 30, 30, 75, 0, 73, 0, 0, 0,
-			0, 0, 0, 0, 132, 12, 109, 2, 31, 31, 75, 0, 89, 0, 0, 0, 0, 0, 0, 0, 136, 12, 110, 2, 31, 31, 75, 0, 79, 0,
-			0, 0, 0, 0, 0, 0, 138, 12, 111, 2, 32, 32, 75, 0, 85, 0, 0, 0, 0, 0, 0, 0, 140, 12, 112, 2, 33, 33, 75, 0,
-			86, 0, 0, 0, 0, 0, 0, 0, 142, 12, 113, 2, 28, 28, 75, 0, 105, 58, 0, 0, 0, 0, 0, 0, 144, 12, 114, 2, 31, 31,
-			90, 0, 121, 58, 0, 0, 0, 0, 0, 0, 147, 12, 115, 2, 31, 31, 90, 0, 117, 58, 0, 0, 0, 0, 0, 0, 153, 12, 116, 2,
-			33, 33, 95, 0, 101, 58, 0, 0, 0, 0, 0, 0, 156, 12, 117, 2, 30, 30, 105, 0, 111, 58, 0, 0, 0, 0, 0, 0, 159, 12,
-			118, 2, 32, 32, 105, 0, 65, 58, 0, 0, 0, 0, 0, 0, 162, 12, 119, 2, 29, 29, 115, 0, 65, 89, 0, 0, 0, 0, 0, 0,
-			165, 12, 120, 2, 29, 31, 125, 0, 97, 73, 0, 0, 0, 0, 0, 0, 170, 12, 121, 2, 29, 31, 105, 0, 97, 89, 0, 0, 0, 0,
-			0, 0, 172, 12, 122, 2, 29, 31, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 177, 12, 123, 2, 29, 33, 105, 0, 64, 73, 0, 0,
-			0, 0, 0, 0, 179, 12, 124, 2, 28, 31, 105, 0, 64, 89, 0, 0, 0, 0, 0, 0, 181, 12, 125, 2, 28, 31, 105, 0, 101, 85,
-			0, 0, 0, 0, 0, 0, 186, 12, 126, 2, 30, 33, 105, 0, 73, 117, 0, 0, 0, 0, 0, 0, 188, 12, 127, 2, 31, 33, 105, 0,
-			89, 117, 0, 0, 0, 0, 0, 0, 190, 12, 128, 2, 31, 33, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0, 195, 12, 129, 2, 32, 31,
-			105, 0, 79, 89, 0, 0, 0, 0, 0, 0, 197, 12, 130, 2, 32, 31, 105, 0, 117, 73, 0, 0, 0, 0, 0, 0, 202, 12, 131, 2,
-			33, 31, 105, 0, 117, 89, 0, 0, 0, 0, 0, 0, 204, 12, 132, 2, 33, 31, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 103, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 242, 12, 13, 2, 28, 28,
-			55, 0, 97, 0, 0, 0, 0, 0, 0, 0, 10, 13, 35, 2, 29, 29, 82, 0, 105, 0, 0, 0, 2, 0, 0, 0, 24, 13, 37, 2,
-			31, 31, 22, 0, 59, 0, 0, 0, 0, 2, 0, 0, 77, 13, 38, 3, 0, 0, 0, 0, 105, 58, 0, 0, 0, 0, 0, 0, 57, 13,
-			108, 2, 31, 31, 115, 0, 73, 0, 0, 0, 0, 0, 0, 0, 22, 13, 109, 2, 31, 31, 65, 0, 101, 58, 0, 0, 0, 0, 0, 0,
-			55, 13, 110, 2, 30, 30, 115, 0, 64, 47, 0, 0, 0, 0, 0, 0, 8, 13, 111, 2, 28, 28, 65, 0, 97, 35, 0, 0, 0, 0,
-			0, 0, 12, 13, 112, 2, 28, 28, 65, 0, 69, 0, 0, 0, 0, 0, 0, 0, 17, 13, 113, 2, 30, 30, 77, 0, 69, 35, 0, 0,
-			0, 0, 0, 0, 19, 13, 114, 2, 28, 28, 65, 0, 79, 0, 0, 0, 0, 0, 0, 0, 29, 13, 115, 2, 29, 28, 77, 0, 79, 35,
-			0, 0, 0, 0, 0, 0, 31, 13, 116, 2, 28, 28, 65, 0, 85, 0, 0, 0, 0, 0, 0, 0, 34, 13, 117, 2, 33, 33, 77, 0,
-			85, 35, 0, 0, 0, 0, 0, 0, 36, 13, 118, 2, 28, 28, 65, 0, 117, 49, 0, 0, 0, 0, 0, 0, 39, 13, 119, 2, 33, 33,
-			27, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 13, 120, 2, 29, 29, 97, 0, 48, 35, 0, 0, 0, 0, 0, 0, 48, 13, 121, 2,
-			28, 28, 65, 0, 111, 58, 0, 0, 0, 0, 0, 0, 51, 13, 122, 2, 32, 32, 105, 0, 65, 58, 0, 0, 0, 0, 0, 0, 53, 13,
-			123, 2, 29, 29, 110, 0, 117, 58, 0, 0, 0, 0, 0, 0, 59, 13, 124, 2, 33, 33, 115, 0, 64, 85, 0, 0, 0, 0, 0, 0,
-			61, 13, 125, 2, 28, 33, 130, 0, 105, 64, 0, 0, 0, 0, 0, 0, 63, 13, 126, 2, 31, 28, 130, 0, 117, 64, 0, 0, 0, 0,
-			0, 0, 65, 13, 127, 2, 33, 28, 130, 0, 97, 73, 0, 0, 0, 0, 0, 0, 67, 13, 128, 2, 29, 31, 137, 0, 97, 73, 35, 0,
-			0, 0, 0, 0, 69, 13, 129, 2, 28, 28, 65, 0, 97, 85, 0, 0, 0, 0, 0, 0, 72, 13, 130, 2, 29, 33, 150, 0, 97, 85,
-			35, 0, 0, 0, 0, 0, 74, 13, 131, 2, 28, 28, 65, 0, 101, 73, 0, 0, 0, 0, 0, 0, 45, 8, 132, 2, 30, 31, 105, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 48, 236, 3, 0, 100, 101, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
-			2, 0, 0, 0, 100, 13, 13, 2, 28, 28, 60, 0, 114, 0, 0, 0, 16, 0, 132, 0, 248, 13, 34, 5, 0, 0, 0, 6, 97, 0,
-			0, 0, 0, 0, 0, 0, 112, 13, 35, 2, 29, 29, 55, 0, 108, 47, 0, 0, 0, 0, 0, 0, 202, 13, 56, 3, 0, 0, 0, 7,
-			106, 0, 0, 0, 0, 2, 0, 0, 219, 13, 57, 3, 0, 0, 0, 7, 98, 0, 0, 0, 48, 0, 4, 0, 24, 14, 71, 7, 0, 48,
-			0, 0, 100, 0, 0, 0, 16, 0, 4, 0, 29, 14, 72, 5, 0, 47, 0, 0, 103, 0, 0, 0, 16, 0, 8, 0, 34, 14, 81, 5,
-			0, 49, 0, 0, 51, 0, 0, 0, 2, 0, 0, 16, 108, 13, 108, 2, 28, 28, 80, 0, 69, 0, 0, 0, 0, 0, 0, 0, 116, 13,
-			109, 2, 30, 30, 60, 0, 69, 50, 0, 0, 0, 0, 0, 0, 120, 13, 110, 2, 30, 30, 60, 0, 73, 0, 0, 0, 0, 0, 0, 0,
-			125, 13, 111, 2, 31, 31, 60, 0, 73, 58, 0, 0, 0, 0, 0, 0, 130, 13, 112, 2, 31, 31, 95, 0, 79, 0, 0, 0, 0, 0,
-			0, 0, 132, 13, 113, 2, 32, 32, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0, 136, 13, 114, 2, 33, 33, 60, 0, 85, 82, 0, 0,
-			0, 0, 0, 16, 15, 14, 115, 2, 33, 28, 90, 0, 65, 58, 0, 0, 0, 0, 0, 0, 143, 13, 116, 2, 29, 29, 125, 0, 65, 0,
-			0, 0, 0, 0, 0, 0, 145, 13, 117, 2, 29, 29, 125, 0, 105, 58, 0, 0, 0, 0, 0, 0, 148, 13, 118, 2, 31, 31, 90, 0,
-			105, 50, 0, 0, 0, 0, 0, 0, 153, 13, 119, 2, 31, 31, 90, 0, 117, 58, 0, 0, 0, 0, 0, 0, 159, 13, 120, 2, 33, 33,
-			95, 0, 97, 85, 0, 0, 0, 0, 0, 0, 161, 13, 121, 2, 29, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 163, 13, 122, 2,
-			29, 31, 105, 0, 69, 73, 0, 0, 0, 0, 0, 0, 165, 13, 123, 2, 30, 31, 105, 0, 79, 89, 0, 0, 0, 0, 0, 0, 167, 13,
-			124, 2, 32, 31, 110, 0, 69, 58, 0, 0, 0, 0, 0, 0, 169, 13, 125, 2, 30, 30, 100, 0, 101, 58, 0, 0, 0, 0, 0, 0,
-			171, 13, 126, 2, 30, 30, 100, 0, 111, 58, 0, 0, 0, 0, 0, 0, 173, 13, 127, 2, 32, 32, 105, 0, 121, 58, 0, 0, 0, 0,
-			0, 0, 175, 13, 128, 2, 33, 33, 100, 0, 121, 0, 0, 0, 0, 0, 0, 0, 177, 13, 129, 2, 33, 33, 55, 0, 89, 58, 0, 0,
-			0, 0, 0, 0, 183, 13, 130, 2, 28, 28, 90, 0, 87, 0, 0, 0, 0, 0, 0, 0, 185, 13, 131, 2, 28, 28, 75, 0, 116, 115,
-			0, 0, 40, 0, 4, 0, 21, 6, 132, 4, 0, 0, 0, 2, 112, 70, 0, 0, 8, 0, 1, 0, 189, 13, 133, 4, 0, 0, 0, 2,
-			103, 35, 0, 0, 8, 2, 7, 0, 197, 13, 134, 6, 0, 0, 0, 3, 105, 82, 0, 0, 0, 0, 0, 16, 10, 14, 135, 2, 31, 28,
-			120, 0, 111, 85, 0, 0, 0, 0, 0, 0, 86, 9, 136, 2, 28, 33, 115, 0, 65, 126, 0, 0, 0, 0, 0, 0, 20, 14, 137, 2,
-			29, 29, 130, 0, 108, 50, 0, 0, 0, 0, 0, 0, 22, 14, 138, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 101, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 39, 14, 35, 2, 29, 29,
-			90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 41, 14, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 43, 14, 37, 2,
-			31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 46, 14, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 51, 14,
-			40, 2, 33, 33, 85, 0, 97, 85, 0, 0, 0, 0, 0, 0, 53, 14, 108, 2, 29, 33, 125, 0, 101, 85, 0, 0, 0, 0, 0, 0,
-			55, 14, 109, 2, 30, 33, 125, 0, 97, 73, 0, 0, 0, 0, 0, 0, 57, 14, 110, 2, 29, 31, 125, 0, 101, 73, 0, 0, 0, 0,
-			0, 0, 59, 14, 111, 2, 30, 31, 125, 0, 111, 73, 0, 0, 0, 0, 0, 0, 61, 14, 112, 2, 32, 31, 125, 0, 117, 73, 0, 0,
-			0, 0, 0, 0, 63, 14, 113, 2, 33, 31, 125, 0, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6, 114, 4, 0, 0, 0, 2, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 15, 0, 0, 0, 0, 0, 0, 106, 98, 111, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0,
-			0, 0, 65, 14, 36, 2, 30, 30, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0,
-			0, 0, 0, 0, 110, 99, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 150, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			67, 14, 36, 2, 30, 30, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0,
-			0, 0, 102, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 80, 0, 114, 0, 0, 0, 128, 0, 0, 0, 119, 0,
-			34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 80, 14, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			76, 14, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 69, 14, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0,
-			0, 0, 84, 14, 39, 2, 32, 32, 77, 0, 117, 0, 0, 0, 0, 0, 0, 0, 88, 14, 40, 2, 33, 33, 70, 0, 116, 0, 0, 0,
-			8, 0, 3, 0, 10, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 226, 6, 48, 4, 0, 71, 0, 2, 107, 0,
-			0, 0, 8, 0, 8, 0, 29, 7, 49, 4, 0, 81, 0, 2, 82, 50, 0, 0, 128, 0, 0, 0, 132, 14, 52, 3, 0, 0, 0, 6,
-			100, 0, 0, 0, 16, 0, 3, 0, 159, 14, 72, 5, 0, 47, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 146, 14, 84, 7, 0, 83,
-			0, 6, 104, 0, 0, 0, 8, 0, 12, 0, 186, 14, 107, 6, 0, 0, 0, 3, 73, 0, 0, 0, 0, 0, 0, 0, 73, 14, 108, 2,
-			31, 31, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 78, 14, 109, 2, 29, 29, 75, 0, 97, 50, 0, 0, 0, 0, 0, 0, 82, 14,
-			110, 2, 29, 29, 85, 0, 89, 0, 0, 0, 0, 0, 0, 0, 86, 14, 111, 2, 28, 28, 77, 0, 117, 49, 0, 0, 0, 0, 0, 0,
-			90, 14, 112, 2, 33, 33, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 92, 14, 113, 2, 33, 33, 70, 0, 121, 0, 0, 0, 0, 0,
-			0, 0, 94, 14, 114, 2, 33, 33, 75, 0, 97, 105, 0, 0, 0, 0, 32, 0, 96, 14, 115, 2, 29, 31, 155, 0, 38, 105, 0, 0,
-			0, 0, 32, 0, 98, 14, 116, 2, 29, 31, 145, 0, 111, 105, 0, 0, 0, 0, 32, 0, 100, 14, 117, 2, 32, 31, 140, 0, 101, 105,
-			0, 0, 0, 0, 32, 0, 102, 14, 118, 2, 30, 31, 140, 0, 89, 105, 0, 0, 0, 0, 32, 0, 104, 14, 119, 2, 28, 31, 135, 0,
-			117, 105, 0, 0, 0, 0, 32, 0, 106, 14, 120, 2, 33, 31, 135, 0, 121, 105, 0, 0, 0, 0, 32, 0, 108, 14, 121, 2, 33, 31,
-			135, 0, 97, 117, 0, 0, 0, 0, 32, 0, 110, 14, 122, 2, 29, 33, 150, 0, 111, 117, 0, 0, 0, 0, 32, 0, 112, 14, 123, 2,
-			32, 33, 140, 0, 101, 117, 0, 0, 0, 0, 32, 0, 114, 14, 124, 2, 30, 33, 140, 0, 105, 117, 0, 0, 0, 0, 32, 0, 116, 14,
-			125, 2, 31, 33, 140, 0, 38, 121, 0, 0, 0, 0, 32, 0, 118, 14, 126, 2, 29, 33, 140, 0, 101, 121, 0, 0, 0, 0, 32, 0,
-			120, 14, 127, 2, 30, 33, 140, 0, 89, 121, 0, 0, 0, 0, 32, 0, 122, 14, 128, 2, 28, 33, 135, 0, 105, 121, 0, 0, 0, 0,
-			32, 0, 124, 14, 129, 2, 31, 33, 130, 0, 117, 111, 0, 0, 0, 0, 32, 0, 126, 14, 130, 2, 33, 32, 140, 0, 105, 101, 0, 0,
-			0, 0, 32, 0, 128, 14, 131, 2, 31, 30, 140, 0, 121, 89, 0, 0, 0, 0, 32, 0, 130, 14, 132, 2, 33, 28, 140, 0, 115, 50,
-			0, 0, 40, 0, 4, 0, 167, 6, 133, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			40, 1, 0, 0, 0, 0, 0, 0, 101, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 80, 0, 114, 0, 0, 0,
-			0, 0, 0, 0, 57, 15, 34, 3, 0, 0, 0, 2, 97, 0, 0, 0, 0, 0, 0, 0, 206, 14, 35, 2, 29, 29, 85, 0, 101, 0,
-			0, 0, 0, 0, 0, 0, 212, 14, 36, 2, 30, 30, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 218, 14, 37, 2, 31, 31, 70, 0,
-			111, 0, 0, 0, 0, 0, 0, 0, 226, 14, 39, 2, 32, 32, 80, 0, 117, 0, 0, 0, 0, 0, 0, 0, 232, 14, 40, 2, 33, 33,
-			72, 0, 116, 0, 0, 0, 8, 0, 67, 0, 17, 15, 47, 4, 0, 72, 0, 5, 112, 0, 0, 0, 8, 0, 1, 0, 226, 6, 48, 4,
-			0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 67, 15, 49, 4, 0, 81, 0, 5, 100, 0, 0, 0, 16, 0, 3, 0, 30, 15,
-			72, 5, 0, 47, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 4, 15, 84, 7, 0, 83, 0, 6, 104, 0, 0, 0, 8, 0, 12, 0,
-			93, 15, 107, 6, 0, 0, 0, 3, 97, 58, 0, 0, 0, 0, 0, 0, 208, 14, 108, 2, 29, 29, 170, 0, 65, 49, 0, 0, 0, 0,
-			0, 0, 210, 14, 109, 2, 29, 29, 127, 0, 101, 58, 0, 0, 0, 0, 0, 0, 214, 14, 110, 2, 30, 30, 160, 0, 69, 49, 0, 0,
-			0, 0, 0, 0, 216, 14, 111, 2, 30, 30, 120, 0, 105, 58, 0, 0, 0, 0, 0, 0, 220, 14, 112, 2, 31, 31, 140, 0, 73, 49,
-			0, 0, 0, 0, 0, 0, 222, 14, 113, 2, 31, 31, 105, 0, 105, 49, 0, 0, 0, 0, 0, 0, 224, 14, 114, 2, 31, 31, 15, 0,
-			111, 58, 0, 0, 0, 0, 0, 0, 228, 14, 115, 2, 32, 32, 160, 0, 79, 49, 0, 0, 0, 0, 0, 0, 230, 14, 116, 2, 32, 32,
-			112, 0, 117, 58, 0, 0, 0, 0, 0, 0, 234, 14, 117, 2, 33, 33, 145, 0, 85, 49, 0, 0, 0, 0, 0, 0, 236, 14, 118, 2,
-			33, 33, 109, 0, 56, 0, 0, 0, 0, 0, 0, 0, 238, 14, 119, 2, 28, 28, 82, 0, 56, 58, 0, 0, 0, 0, 0, 0, 240, 14,
-			120, 2, 28, 28, 165, 0, 38, 0, 0, 0, 0, 0, 0, 0, 242, 14, 121, 2, 29, 29, 87, 0, 38, 58, 0, 0, 0, 0, 0, 0,
-			244, 14, 122, 2, 29, 29, 175, 0, 89, 0, 0, 0, 0, 0, 0, 0, 246, 14, 123, 2, 28, 28, 82, 0, 89, 58, 0, 0, 0, 0,
-			0, 0, 248, 14, 124, 2, 28, 28, 165, 0, 121, 0, 0, 0, 0, 0, 0, 0, 250, 14, 125, 2, 33, 33, 72, 0, 121, 58, 0, 0,
-			0, 0, 0, 0, 252, 14, 126, 2, 33, 33, 145, 0, 38, 105, 0, 0, 0, 0, 32, 0, 254, 14, 127, 2, 29, 31, 157, 0, 89, 105,
-			0, 0, 0, 0, 32, 0, 0, 15, 128, 2, 28, 31, 152, 0, 121, 105, 0, 0, 0, 0, 32, 0, 2, 15, 129, 2, 33, 31, 142, 0,
-			115, 50, 0, 0, 40, 0, 4, 0, 167, 6, 130, 6, 0, 0, 0, 3, 115, 94, 0, 0, 40, 2, 4, 0, 113, 15, 131, 6, 0, 88,
-			0, 3, 116, 94, 0, 0, 8, 2, 7, 0, 123, 15, 132, 4, 0, 133, 0, 5, 100, 94, 0, 0, 16, 2, 4, 0, 136, 15, 133, 5,
-			0, 132, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 104, 82, 4, 0, 102, 114,
+			0, 0, 40, 0, 4, 0, 18, 6, 108, 4, 0, 109, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 31, 6, 109, 5, 0, 108, 0, 5,
+			112, 45, 0, 0, 8, 0, 1, 0, 52, 6, 110, 4, 0, 71, 0, 2, 112, 104, 0, 0, 8, 0, 1, 0, 71, 6, 111, 4, 0, 71,
+			0, 2, 116, 45, 0, 0, 8, 0, 4, 0, 87, 6, 112, 4, 0, 72, 0, 2, 99, 50, 0, 0, 40, 0, 7, 0, 100, 6, 113, 4,
+			0, 0, 0, 2, 107, 45, 0, 0, 8, 0, 8, 0, 113, 6, 114, 4, 0, 81, 0, 2, 107, 104, 0, 0, 8, 0, 8, 0, 126, 6,
+			115, 4, 0, 81, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 142, 6, 116, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 98, 97, 115, 101, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 151, 6, 35, 2,
+			29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 160, 6, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 164, 6,
+			37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 167, 6, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0,
+			171, 6, 40, 2, 33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0,
+			1, 0, 201, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 4, 7, 49, 4, 0, 81, 0, 2, 100, 0, 0, 0,
+			16, 0, 3, 0, 233, 6, 72, 5, 0, 47, 0, 5, 97, 47, 0, 0, 0, 0, 0, 0, 158, 6, 108, 2, 28, 28, 90, 0, 69, 0,
+			0, 0, 0, 0, 0, 0, 162, 6, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0, 169, 6, 110, 2, 32, 32, 85, 0,
+			85, 0, 0, 0, 0, 0, 0, 0, 173, 6, 111, 2, 33, 33, 80, 0, 121, 0, 0, 0, 0, 0, 0, 0, 175, 6, 112, 2, 31, 31,
+			80, 0, 89, 0, 0, 0, 0, 0, 0, 0, 177, 6, 113, 2, 28, 28, 80, 0, 97, 85, 0, 0, 0, 0, 0, 0, 179, 6, 114, 2,
+			29, 33, 135, 0, 101, 85, 0, 0, 0, 0, 0, 0, 181, 6, 115, 2, 30, 33, 130, 0, 105, 85, 0, 0, 0, 0, 0, 0, 183, 6,
+			116, 2, 31, 33, 120, 0, 97, 73, 0, 0, 0, 0, 0, 0, 185, 6, 117, 2, 29, 31, 125, 0, 101, 73, 0, 0, 0, 0, 0, 0,
+			187, 6, 118, 2, 30, 31, 125, 0, 69, 73, 0, 0, 0, 0, 0, 0, 189, 6, 119, 2, 30, 31, 115, 0, 111, 73, 0, 0, 0, 0,
+			0, 0, 191, 6, 120, 2, 32, 31, 120, 0, 117, 73, 0, 0, 0, 0, 0, 0, 193, 6, 121, 2, 33, 31, 120, 0, 119, 50, 0, 0,
+			0, 0, 0, 0, 195, 6, 122, 3, 0, 0, 0, 7, 116, 115, 0, 0, 40, 0, 4, 0, 18, 6, 123, 4, 0, 0, 0, 2, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 0, 0, 101, 110, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0,
+			0, 0, 127, 7, 13, 2, 28, 28, 70, 0, 116, 35, 0, 0, 16, 0, 4, 0, 29, 7, 25, 5, 0, 0, 0, 5, 97, 0, 0, 0,
+			0, 0, 0, 0, 154, 7, 35, 2, 29, 29, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 181, 7, 37, 2, 31, 31, 70, 0, 114, 45,
+			0, 0, 0, 0, 128, 0, 100, 7, 44, 3, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7,
+			116, 50, 0, 0, 16, 0, 4, 0, 27, 7, 108, 5, 0, 0, 0, 0, 100, 35, 0, 0, 8, 0, 4, 0, 56, 7, 109, 4, 0, 0,
+			0, 0, 122, 35, 0, 0, 40, 0, 4, 0, 61, 7, 110, 6, 0, 0, 0, 0, 103, 45, 0, 0, 16, 0, 8, 0, 79, 7, 111, 5,
+			0, 0, 0, 5, 122, 47, 50, 0, 48, 0, 4, 0, 120, 7, 112, 7, 0, 0, 0, 6, 73, 50, 0, 0, 2, 0, 0, 0, 175, 7,
+			113, 2, 31, 31, 65, 0, 51, 0, 0, 0, 2, 0, 0, 0, 133, 7, 114, 2, 28, 28, 70, 0, 64, 50, 0, 0, 2, 0, 0, 0,
+			138, 7, 115, 2, 28, 28, 60, 0, 64, 53, 0, 0, 2, 0, 0, 0, 142, 7, 116, 2, 28, 28, 70, 0, 85, 0, 0, 0, 0, 0,
+			0, 0, 192, 7, 117, 2, 32, 32, 75, 0, 64, 76, 0, 0, 2, 0, 0, 0, 147, 7, 118, 2, 28, 55, 80, 0, 97, 35, 0, 0,
+			2, 0, 0, 0, 160, 7, 119, 2, 28, 28, 75, 0, 97, 97, 0, 0, 0, 0, 0, 0, 164, 7, 120, 2, 29, 29, 92, 0, 69, 0,
+			0, 0, 0, 0, 0, 0, 169, 7, 121, 2, 30, 30, 70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 172, 7, 122, 2, 31, 31, 65, 0,
+			73, 35, 0, 0, 2, 0, 0, 0, 178, 7, 123, 2, 31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0, 186, 7, 124, 2, 32, 32,
+			70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 189, 7, 125, 2, 29, 28, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 194, 7, 126, 2,
+			29, 29, 115, 0, 65, 64, 0, 0, 0, 0, 0, 0, 197, 7, 127, 2, 29, 29, 115, 0, 51, 58, 0, 0, 0, 0, 0, 0, 203, 7,
+			128, 2, 28, 28, 105, 0, 105, 58, 0, 0, 0, 0, 0, 0, 207, 7, 129, 2, 31, 31, 87, 0, 79, 58, 0, 0, 0, 0, 0, 0,
+			213, 7, 130, 2, 32, 32, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 216, 7, 131, 2, 32, 32, 100, 0, 79, 64, 0, 0, 0, 0,
+			0, 0, 219, 7, 132, 2, 32, 32, 120, 0, 111, 64, 0, 0, 0, 0, 0, 0, 225, 7, 133, 2, 32, 32, 125, 0, 117, 58, 0, 0,
+			0, 0, 0, 0, 231, 7, 134, 2, 33, 33, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 238, 7, 135, 2, 29, 33, 115, 0, 111, 85,
+			0, 0, 0, 0, 0, 0, 240, 7, 136, 2, 28, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 245, 7, 137, 2, 29, 31, 120, 0,
+			101, 73, 0, 0, 0, 0, 0, 0, 249, 7, 138, 2, 30, 31, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0, 251, 7, 139, 2, 32, 31,
+			115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 253, 7, 140, 2, 30, 28, 115, 0, 105, 64, 0, 0, 0, 0, 0, 0, 0, 8, 141, 2,
+			31, 28, 125, 0, 105, 64, 51, 0, 0, 0, 0, 0, 3, 8, 142, 2, 31, 28, 125, 0, 85, 64, 0, 0, 0, 0, 0, 0, 6, 8,
+			143, 2, 33, 28, 100, 0, 97, 73, 64, 0, 0, 0, 0, 0, 12, 8, 144, 2, 29, 28, 140, 0, 97, 73, 51, 0, 0, 0, 0, 0,
+			15, 8, 145, 2, 29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 17, 8, 146, 2, 29, 28, 140, 0, 73, 82, 0, 0, 0, 0,
+			0, 0, 20, 8, 147, 2, 28, 28, 95, 0, 86, 82, 0, 0, 0, 0, 0, 0, 30, 8, 148, 2, 28, 28, 105, 0, 111, 58, 0, 0,
+			0, 0, 0, 0, 40, 8, 149, 2, 32, 32, 110, 0, 65, 126, 0, 0, 0, 0, 0, 0, 42, 8, 150, 2, 29, 29, 130, 0, 79, 126,
+			0, 0, 0, 0, 0, 0, 44, 8, 151, 2, 32, 32, 120, 0, 101, 58, 0, 0, 0, 0, 0, 0, 46, 8, 152, 2, 30, 30, 105, 0,
+			64, 35, 0, 0, 2, 0, 0, 0, 48, 8, 153, 2, 31, 31, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 33, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 59, 8, 35, 2, 29, 29, 70, 0, 105, 0,
+			0, 0, 0, 0, 0, 0, 71, 8, 37, 2, 31, 31, 75, 0, 78, 0, 0, 0, 16, 0, 8, 0, 50, 8, 68, 8, 0, 0, 0, 8,
+			73, 50, 0, 0, 2, 0, 0, 0, 68, 8, 113, 2, 31, 31, 70, 0, 51, 0, 0, 0, 2, 0, 0, 0, 54, 8, 114, 2, 28, 28,
+			70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 82, 8, 117, 2, 32, 32, 85, 0, 97, 35, 0, 0, 2, 0, 0, 0, 84, 8, 119, 2,
+			28, 28, 70, 0, 97, 97, 0, 0, 0, 0, 0, 0, 98, 8, 120, 2, 29, 29, 75, 0, 69, 0, 0, 0, 0, 0, 0, 0, 62, 8,
+			121, 2, 29, 29, 75, 0, 73, 0, 0, 0, 0, 0, 0, 0, 65, 8, 122, 2, 31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0,
+			74, 8, 124, 2, 32, 32, 75, 0, 86, 0, 0, 0, 0, 0, 0, 0, 77, 8, 125, 2, 32, 32, 70, 0, 65, 58, 0, 0, 0, 0,
+			0, 0, 89, 8, 126, 2, 29, 28, 120, 0, 65, 64, 0, 0, 0, 0, 0, 0, 92, 8, 127, 2, 29, 28, 125, 0, 51, 58, 0, 0,
+			0, 0, 0, 0, 102, 8, 128, 2, 28, 28, 115, 0, 105, 58, 0, 0, 0, 0, 0, 0, 106, 8, 129, 2, 31, 31, 87, 0, 79, 58,
+			0, 0, 0, 0, 0, 0, 112, 8, 130, 2, 32, 32, 120, 0, 79, 0, 0, 0, 0, 0, 0, 0, 128, 8, 131, 2, 32, 32, 75, 0,
+			79, 64, 0, 0, 0, 0, 0, 0, 116, 8, 132, 2, 32, 28, 120, 0, 111, 64, 0, 0, 0, 0, 0, 0, 122, 8, 133, 2, 32, 28,
+			120, 0, 117, 58, 0, 0, 0, 0, 0, 0, 131, 8, 134, 2, 33, 33, 100, 0, 97, 85, 0, 0, 0, 0, 0, 0, 133, 8, 135, 2,
+			30, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 138, 8, 136, 2, 32, 32, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 143, 8,
+			137, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 145, 8, 138, 2, 31, 31, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0,
+			150, 8, 139, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 152, 8, 140, 2, 30, 28, 110, 0, 105, 64, 0, 0, 0, 0,
+			0, 0, 155, 8, 141, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 158, 8, 143, 2, 33, 28, 100, 0, 97, 73, 64, 0,
+			0, 0, 0, 0, 161, 8, 144, 2, 29, 28, 140, 0, 97, 73, 51, 0, 0, 0, 0, 0, 164, 8, 145, 2, 29, 28, 140, 0, 97, 85,
+			64, 0, 0, 0, 0, 0, 166, 8, 146, 2, 29, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			41, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 117, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 174, 8, 13, 2, 28, 28, 65, 0, 97, 0, 0, 0,
+			0, 0, 0, 0, 189, 8, 35, 2, 30, 28, 105, 0, 105, 0, 0, 0, 2, 0, 0, 0, 213, 8, 37, 2, 31, 31, 85, 0, 114, 47,
+			0, 0, 0, 0, 0, 0, 0, 0, 46, 3, 0, 0, 0, 2, 116, 0, 0, 0, 8, 0, 4, 0, 105, 9, 47, 4, 0, 72, 0, 2,
+			116, 50, 0, 0, 8, 0, 4, 0, 242, 4, 108, 4, 0, 0, 0, 2, 73, 50, 0, 0, 2, 0, 0, 0, 208, 8, 113, 2, 31, 31,
+			80, 0, 51, 0, 0, 0, 2, 0, 0, 0, 169, 8, 114, 2, 28, 28, 105, 0, 64, 50, 0, 0, 2, 0, 0, 0, 180, 8, 115, 2,
+			28, 28, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0, 227, 8, 117, 2, 32, 32, 72, 0, 64, 76, 0, 0, 2, 0, 0, 0, 184, 8,
+			118, 2, 28, 55, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0, 197, 8, 119, 2, 28, 28, 75, 0, 97, 97, 0, 0, 0, 0, 0, 0,
+			189, 8, 120, 2, 30, 28, 105, 0, 69, 0, 0, 0, 0, 0, 0, 0, 201, 8, 121, 2, 30, 30, 97, 0, 73, 0, 0, 0, 0, 0,
+			0, 0, 204, 8, 122, 2, 31, 31, 80, 0, 73, 35, 0, 0, 2, 0, 0, 0, 211, 8, 123, 2, 31, 31, 80, 0, 48, 0, 0, 0,
+			0, 0, 0, 0, 216, 8, 124, 2, 29, 29, 100, 0, 86, 0, 0, 0, 0, 0, 0, 0, 224, 8, 125, 2, 29, 28, 85, 0, 65, 58,
+			0, 0, 0, 0, 0, 0, 229, 8, 126, 2, 29, 29, 100, 0, 65, 64, 0, 0, 0, 0, 0, 0, 234, 8, 127, 2, 29, 29, 90, 0,
+			51, 58, 0, 0, 0, 0, 0, 0, 247, 8, 128, 2, 28, 28, 120, 0, 105, 58, 0, 0, 0, 0, 0, 0, 250, 8, 129, 2, 31, 31,
+			85, 0, 79, 58, 0, 0, 0, 0, 0, 0, 253, 8, 130, 2, 32, 32, 105, 0, 79, 0, 0, 0, 0, 0, 0, 0, 27, 9, 131, 2,
+			32, 32, 100, 0, 79, 64, 0, 0, 0, 0, 0, 0, 3, 9, 132, 2, 32, 28, 125, 0, 111, 64, 0, 0, 0, 0, 0, 0, 15, 9,
+			133, 2, 32, 28, 125, 0, 117, 58, 0, 0, 0, 0, 0, 0, 30, 9, 134, 2, 33, 33, 95, 0, 97, 85, 0, 0, 0, 0, 0, 0,
+			32, 9, 135, 2, 29, 32, 117, 0, 111, 85, 0, 0, 0, 0, 0, 0, 34, 9, 136, 2, 28, 33, 115, 0, 97, 73, 0, 0, 0, 0,
+			0, 0, 36, 9, 137, 2, 29, 31, 125, 0, 101, 73, 0, 0, 0, 0, 0, 0, 41, 9, 138, 2, 30, 31, 115, 0, 79, 73, 0, 0,
+			0, 0, 0, 0, 43, 9, 139, 2, 32, 31, 142, 0, 101, 64, 0, 0, 0, 0, 0, 0, 45, 9, 140, 2, 30, 28, 140, 0, 105, 64,
+			0, 0, 0, 0, 0, 0, 55, 9, 141, 2, 31, 28, 125, 0, 105, 64, 51, 0, 0, 0, 0, 0, 57, 9, 142, 2, 31, 28, 140, 0,
+			85, 64, 0, 0, 0, 0, 0, 0, 67, 9, 143, 2, 28, 28, 125, 0, 97, 73, 64, 0, 0, 0, 0, 0, 77, 9, 144, 2, 29, 28,
+			150, 0, 97, 73, 51, 0, 0, 0, 0, 0, 84, 9, 145, 2, 29, 28, 150, 0, 97, 85, 64, 0, 0, 0, 0, 0, 91, 9, 146, 2,
+			29, 28, 150, 0, 64, 47, 0, 0, 2, 0, 0, 0, 178, 8, 154, 2, 28, 28, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 40, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 115, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 137, 9, 13, 2, 28, 28,
+			70, 0, 114, 0, 0, 0, 128, 0, 128, 0, 74, 10, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 157, 9, 35, 2,
+			29, 29, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 188, 9, 37, 2, 31, 30, 75, 0, 114, 47, 0, 0, 0, 0, 0, 0, 72, 10,
+			46, 3, 0, 0, 0, 2, 73, 50, 0, 0, 2, 0, 0, 0, 185, 9, 113, 2, 28, 28, 55, 0, 51, 0, 0, 0, 2, 0, 0, 0,
+			140, 9, 114, 2, 28, 28, 70, 0, 64, 50, 0, 0, 2, 0, 0, 0, 148, 9, 115, 2, 28, 28, 60, 0, 64, 53, 0, 0, 2, 0,
+			0, 0, 152, 9, 116, 2, 28, 28, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 199, 9, 117, 2, 33, 33, 70, 0, 64, 76, 0, 0,
+			2, 0, 0, 0, 65, 10, 118, 2, 28, 55, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0, 164, 9, 119, 2, 28, 28, 70, 0, 97, 97,
+			0, 0, 0, 0, 0, 0, 169, 9, 120, 2, 29, 29, 110, 0, 69, 0, 0, 0, 0, 0, 0, 0, 174, 9, 121, 2, 30, 30, 85, 0,
+			73, 0, 0, 0, 0, 0, 0, 0, 177, 9, 122, 2, 28, 28, 55, 0, 48, 0, 0, 0, 0, 0, 0, 0, 193, 9, 124, 2, 32, 32,
+			100, 0, 86, 0, 0, 0, 0, 0, 0, 0, 196, 9, 125, 2, 29, 28, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 203, 9, 126, 2,
+			29, 29, 110, 0, 65, 64, 0, 0, 0, 0, 0, 0, 213, 9, 127, 2, 29, 28, 125, 0, 51, 58, 0, 0, 0, 0, 0, 0, 219, 9,
+			128, 2, 30, 28, 105, 0, 105, 58, 0, 0, 0, 0, 0, 0, 225, 9, 129, 2, 31, 31, 65, 0, 79, 58, 0, 0, 0, 0, 0, 0,
+			234, 9, 130, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 250, 9, 131, 2, 32, 32, 75, 0, 79, 64, 0, 0, 0, 0,
+			0, 0, 240, 9, 132, 2, 32, 28, 115, 0, 111, 64, 0, 0, 0, 0, 0, 0, 245, 9, 133, 2, 32, 28, 115, 0, 117, 58, 0, 0,
+			0, 0, 0, 0, 253, 9, 134, 2, 33, 33, 80, 0, 97, 85, 0, 0, 0, 0, 0, 0, 9, 10, 135, 2, 29, 33, 100, 0, 111, 85,
+			0, 0, 0, 0, 0, 0, 14, 10, 136, 2, 32, 33, 95, 0, 97, 73, 0, 0, 0, 0, 0, 0, 19, 10, 137, 2, 29, 31, 95, 0,
+			101, 73, 0, 0, 0, 0, 0, 0, 29, 10, 138, 2, 30, 31, 95, 0, 79, 73, 0, 0, 0, 0, 0, 0, 34, 10, 139, 2, 32, 31,
+			105, 0, 101, 64, 0, 0, 0, 0, 0, 0, 36, 10, 140, 2, 30, 28, 110, 0, 105, 64, 51, 0, 0, 0, 0, 0, 41, 10, 142, 2,
+			31, 28, 110, 0, 85, 64, 0, 0, 0, 0, 0, 0, 46, 10, 143, 2, 33, 28, 90, 0, 97, 73, 64, 0, 0, 0, 0, 0, 60, 10,
+			144, 2, 29, 28, 135, 0, 97, 73, 51, 0, 0, 0, 0, 0, 63, 10, 145, 2, 29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0,
+			57, 10, 146, 2, 29, 28, 135, 0, 97, 47, 0, 0, 0, 0, 0, 0, 161, 9, 154, 2, 29, 29, 80, 0, 97, 73, 50, 0, 0, 0,
+			0, 0, 27, 10, 155, 2, 29, 31, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 4, 0, 0,
+			0, 0, 0, 0, 101, 110, 45, 114, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 79, 10, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0,
+			99, 10, 35, 2, 29, 29, 87, 0, 105, 0, 0, 0, 0, 0, 0, 0, 113, 10, 37, 2, 31, 31, 70, 0, 73, 50, 0, 0, 2, 0,
+			0, 0, 110, 10, 113, 2, 31, 31, 65, 0, 51, 0, 0, 0, 2, 0, 0, 0, 85, 10, 114, 2, 28, 28, 70, 0, 64, 50, 0, 0,
+			2, 0, 0, 0, 90, 10, 115, 2, 28, 28, 60, 0, 64, 53, 0, 0, 2, 0, 0, 0, 94, 10, 116, 2, 28, 28, 70, 0, 85, 0,
+			0, 0, 0, 0, 0, 0, 122, 10, 117, 2, 32, 32, 75, 0, 97, 35, 0, 0, 2, 0, 0, 0, 124, 10, 119, 2, 28, 28, 75, 0,
+			97, 97, 0, 0, 0, 0, 0, 0, 138, 10, 120, 2, 29, 29, 100, 0, 69, 0, 0, 0, 0, 0, 0, 0, 104, 10, 121, 2, 30, 30,
+			70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 107, 10, 122, 2, 31, 31, 65, 0, 48, 0, 0, 0, 0, 0, 0, 0, 116, 10, 124, 2,
+			32, 32, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 119, 10, 125, 2, 29, 28, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 129, 10,
+			126, 2, 29, 29, 120, 0, 65, 64, 0, 0, 0, 0, 0, 0, 132, 10, 127, 2, 29, 29, 120, 0, 51, 58, 0, 0, 0, 0, 0, 0,
+			143, 10, 128, 2, 28, 28, 105, 0, 105, 58, 0, 0, 0, 0, 32, 0, 147, 10, 129, 2, 31, 31, 87, 0, 79, 58, 0, 0, 0, 0,
+			0, 0, 153, 10, 130, 2, 32, 32, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 163, 10, 131, 2, 32, 32, 75, 0, 79, 64, 0, 0,
+			0, 0, 0, 0, 157, 10, 132, 2, 32, 28, 115, 0, 117, 58, 0, 0, 0, 0, 0, 0, 166, 10, 134, 2, 33, 33, 95, 0, 97, 85,
+			0, 0, 0, 0, 0, 0, 168, 10, 135, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 170, 10, 136, 2, 28, 33, 110, 0,
+			97, 73, 0, 0, 0, 0, 0, 0, 175, 10, 137, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 180, 10, 138, 2, 31, 31,
+			110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 182, 10, 139, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 184, 10, 140, 2,
+			30, 28, 110, 0, 105, 64, 0, 0, 0, 0, 0, 0, 187, 10, 141, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 190, 10,
+			143, 2, 33, 28, 115, 0, 97, 73, 64, 0, 0, 0, 0, 0, 196, 10, 144, 2, 29, 28, 135, 0, 97, 73, 51, 0, 0, 0, 0, 0,
+			199, 10, 145, 2, 29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 201, 10, 146, 2, 29, 28, 135, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 119, 109, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 208, 10,
+			35, 2, 29, 29, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 221, 10, 37, 2, 31, 31, 110, 0, 78, 0, 0, 0, 16, 0, 8, 0,
+			204, 10, 68, 8, 0, 0, 0, 8, 73, 50, 0, 0, 2, 0, 0, 0, 214, 10, 113, 2, 31, 31, 70, 0, 85, 0, 0, 0, 0, 0,
+			0, 0, 232, 10, 117, 2, 33, 33, 75, 0, 97, 35, 0, 0, 2, 0, 0, 0, 235, 10, 119, 2, 28, 28, 70, 0, 97, 97, 0, 0,
+			0, 0, 0, 0, 248, 10, 120, 2, 29, 29, 80, 0, 69, 0, 0, 0, 0, 0, 0, 0, 211, 10, 121, 2, 30, 30, 75, 0, 73, 0,
+			0, 0, 0, 0, 0, 0, 214, 10, 122, 2, 31, 31, 70, 0, 48, 0, 0, 0, 0, 0, 0, 0, 224, 10, 124, 2, 32, 32, 70, 0,
+			86, 0, 0, 0, 0, 0, 0, 0, 227, 10, 125, 2, 32, 32, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 239, 10, 126, 2, 29, 29,
+			120, 0, 65, 64, 0, 0, 0, 0, 0, 0, 242, 10, 127, 2, 29, 29, 120, 0, 51, 58, 0, 0, 0, 0, 0, 0, 252, 10, 128, 2,
+			28, 28, 125, 0, 105, 58, 0, 0, 0, 0, 0, 0, 0, 11, 129, 2, 30, 31, 110, 0, 79, 58, 0, 0, 0, 0, 0, 0, 5, 11,
+			130, 2, 32, 32, 120, 0, 79, 0, 0, 0, 0, 0, 0, 0, 15, 11, 131, 2, 32, 32, 75, 0, 79, 64, 0, 0, 0, 0, 0, 0,
+			9, 11, 132, 2, 32, 28, 120, 0, 117, 58, 0, 0, 0, 0, 0, 0, 18, 11, 134, 2, 33, 33, 100, 0, 97, 85, 0, 0, 0, 0,
+			0, 0, 23, 11, 135, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 28, 11, 136, 2, 28, 33, 110, 0, 97, 73, 0, 0,
+			0, 0, 0, 0, 33, 11, 137, 2, 32, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 38, 11, 138, 2, 28, 31, 120, 0, 79, 73,
+			0, 0, 0, 0, 0, 0, 43, 11, 139, 2, 32, 31, 115, 0, 101, 64, 0, 0, 0, 0, 0, 0, 48, 11, 140, 2, 28, 28, 120, 0,
+			105, 64, 0, 0, 0, 0, 0, 0, 54, 11, 141, 2, 31, 28, 120, 0, 85, 64, 0, 0, 0, 0, 0, 0, 57, 11, 143, 2, 33, 28,
+			100, 0, 97, 73, 64, 0, 0, 0, 0, 0, 60, 11, 144, 2, 29, 28, 140, 0, 97, 73, 51, 0, 0, 0, 0, 0, 63, 11, 145, 2,
+			29, 28, 140, 0, 97, 85, 64, 0, 0, 0, 0, 0, 65, 11, 146, 2, 29, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 30, 4, 0, 0, 0, 0, 0, 0, 101, 110, 45, 119, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 68, 11, 13, 2, 28, 28,
+			70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 75, 11, 35, 2, 29, 29, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 86, 11, 37, 2,
+			31, 31, 75, 0, 108, 0, 0, 0, 0, 0, 0, 0, 208, 0, 55, 3, 0, 0, 0, 7, 73, 50, 0, 0, 2, 0, 0, 0, 83, 11,
+			113, 2, 31, 31, 70, 0, 64, 50, 0, 0, 2, 0, 0, 0, 71, 11, 115, 2, 28, 28, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			93, 11, 117, 2, 32, 32, 75, 0, 97, 35, 0, 0, 2, 0, 0, 0, 95, 11, 119, 2, 28, 28, 70, 0, 97, 97, 0, 0, 0, 0,
+			0, 0, 102, 11, 120, 2, 29, 29, 105, 0, 69, 0, 0, 0, 0, 0, 0, 0, 77, 11, 121, 2, 30, 30, 85, 0, 73, 0, 0, 0,
+			0, 0, 0, 0, 80, 11, 122, 2, 31, 31, 70, 0, 48, 0, 0, 0, 0, 0, 0, 0, 89, 11, 124, 2, 29, 29, 70, 0, 86, 0,
+			0, 0, 0, 0, 0, 0, 91, 11, 125, 2, 32, 32, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 97, 11, 126, 2, 29, 28, 120, 0,
+			65, 64, 0, 0, 0, 0, 0, 0, 99, 11, 127, 2, 29, 28, 130, 0, 51, 58, 0, 0, 0, 0, 0, 0, 104, 11, 128, 2, 32, 32,
+			120, 0, 105, 58, 0, 0, 0, 0, 0, 0, 107, 11, 129, 2, 31, 31, 95, 0, 79, 58, 0, 0, 0, 0, 0, 0, 110, 11, 130, 2,
+			32, 32, 120, 0, 79, 0, 0, 0, 0, 0, 0, 0, 118, 11, 131, 2, 32, 32, 75, 0, 79, 64, 0, 0, 0, 0, 0, 0, 112, 11,
+			132, 2, 32, 28, 120, 0, 111, 64, 0, 0, 0, 0, 0, 0, 115, 11, 133, 2, 32, 28, 120, 0, 117, 58, 0, 0, 0, 0, 0, 0,
+			120, 11, 134, 2, 33, 33, 95, 0, 97, 85, 0, 0, 0, 0, 0, 0, 122, 11, 135, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0,
+			0, 0, 124, 11, 136, 2, 32, 32, 115, 0, 97, 73, 0, 0, 0, 0, 0, 0, 126, 11, 137, 2, 29, 31, 115, 0, 101, 73, 0, 0,
+			0, 0, 0, 0, 128, 11, 138, 2, 31, 31, 105, 0, 79, 73, 0, 0, 0, 0, 0, 0, 130, 11, 139, 2, 32, 31, 115, 0, 101, 64,
+			0, 0, 0, 0, 0, 0, 132, 11, 140, 2, 30, 28, 110, 0, 105, 64, 0, 0, 0, 0, 0, 0, 135, 11, 141, 2, 31, 29, 120, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 97, 102, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 70, 0, 64, 0, 0, 0, 2, 0, 0, 0, 138, 11, 13, 2, 28, 28, 70, 0, 114, 0,
+			0, 0, 128, 0, 128, 0, 255, 11, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 145, 11, 35, 2, 29, 29, 70, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 188, 11, 37, 2, 31, 31, 50, 0, 117, 0, 0, 0, 0, 0, 0, 0, 164, 11, 40, 2, 33, 33,
+			55, 0, 114, 47, 0, 0, 0, 0, 0, 0, 27, 12, 46, 3, 0, 0, 0, 7, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3,
+			0, 0, 0, 7, 99, 0, 0, 0, 8, 2, 7, 0, 36, 12, 80, 4, 0, 81, 0, 2, 69, 0, 0, 0, 0, 0, 0, 0, 149, 11,
+			108, 2, 30, 30, 70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 151, 11, 109, 2, 28, 28, 70, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+			160, 11, 110, 2, 32, 32, 70, 0, 87, 0, 0, 0, 0, 0, 0, 0, 162, 11, 111, 2, 28, 28, 70, 0, 38, 0, 0, 0, 0, 0,
+			0, 0, 166, 11, 112, 2, 30, 30, 75, 0, 38, 58, 0, 0, 0, 0, 0, 0, 171, 11, 113, 2, 30, 30, 140, 0, 64, 76, 0, 0,
+			2, 0, 0, 0, 176, 11, 114, 2, 28, 55, 80, 0, 65, 58, 0, 0, 0, 0, 0, 0, 181, 11, 115, 2, 29, 29, 140, 0, 101, 64,
+			0, 0, 0, 0, 0, 0, 183, 11, 116, 2, 31, 28, 115, 0, 111, 64, 0, 0, 0, 0, 0, 0, 191, 11, 117, 2, 33, 28, 125, 0,
+			121, 0, 0, 0, 0, 0, 0, 0, 196, 11, 118, 2, 31, 31, 90, 0, 105, 117, 0, 0, 0, 0, 0, 0, 198, 11, 119, 2, 31, 33,
+			110, 0, 64, 85, 0, 0, 0, 0, 0, 0, 200, 11, 120, 2, 28, 33, 85, 0, 97, 73, 0, 0, 0, 0, 0, 0, 202, 11, 121, 2,
+			29, 31, 110, 0, 65, 73, 0, 0, 0, 0, 0, 0, 205, 11, 122, 2, 29, 31, 155, 0, 101, 73, 0, 0, 0, 0, 0, 0, 208, 11,
+			123, 2, 30, 31, 85, 0, 79, 73, 0, 0, 0, 0, 0, 0, 214, 11, 124, 2, 32, 31, 115, 0, 111, 73, 0, 0, 0, 0, 0, 0,
+			217, 11, 125, 2, 32, 31, 145, 0, 117, 73, 0, 0, 0, 0, 0, 0, 223, 11, 126, 2, 33, 31, 120, 0, 89, 121, 0, 0, 0, 0,
+			0, 0, 226, 11, 127, 2, 28, 31, 110, 0, 89, 64, 0, 0, 0, 0, 0, 0, 229, 11, 128, 2, 31, 28, 105, 0, 97, 85, 0, 0,
+			0, 0, 0, 0, 231, 11, 129, 2, 29, 33, 115, 0, 101, 58, 0, 0, 0, 0, 0, 0, 233, 11, 130, 2, 30, 30, 105, 0, 79, 58,
+			0, 0, 0, 0, 0, 0, 235, 11, 131, 2, 32, 32, 140, 0, 51, 58, 0, 0, 0, 0, 0, 0, 237, 11, 132, 2, 28, 28, 115, 0,
+			65, 126, 0, 0, 0, 0, 0, 0, 239, 11, 133, 2, 29, 29, 120, 0, 101, 126, 0, 0, 0, 0, 0, 0, 241, 11, 134, 2, 30, 30,
+			120, 0, 111, 126, 0, 0, 0, 0, 0, 0, 243, 11, 135, 2, 32, 32, 120, 0, 120, 50, 0, 0, 8, 0, 8, 0, 245, 11, 136, 6,
+			0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 99, 121,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 20, 0, 64, 0, 0, 0, 0, 0, 0, 0, 173, 16, 13, 2, 28, 28,
-			85, 0, 64, 45, 0, 0, 2, 0, 0, 0, 175, 16, 14, 2, 28, 28, 65, 0, 114, 0, 0, 0, 16, 0, 138, 1, 250, 15, 34, 7,
-			109, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 177, 16, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 185, 16,
-			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 2, 0, 0, 205, 16, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			244, 16, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 11, 17, 40, 2, 33, 33, 90, 0, 114, 47, 0, 0, 16, 0,
-			138, 0, 19, 16, 46, 7, 109, 0, 0, 7, 116, 0, 0, 0, 8, 0, 4, 0, 110, 18, 47, 4, 110, 72, 0, 2, 112, 0, 0, 0,
-			8, 0, 1, 0, 41, 18, 48, 4, 110, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 227, 17, 49, 4, 110, 81, 25, 2, 110, 0,
-			0, 0, 16, 0, 4, 0, 252, 17, 50, 8, 0, 0, 0, 4, 108, 0, 0, 0, 0, 0, 0, 0, 86, 16, 55, 3, 108, 0, 0, 7,
-			108, 47, 0, 0, 0, 0, 5, 0, 127, 16, 56, 3, 108, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 37, 17, 58, 2, 33, 33,
-			90, 0, 108, 47, 50, 0, 0, 0, 0, 0, 153, 16, 59, 3, 108, 0, 0, 0, 98, 0, 0, 0, 16, 0, 1, 0, 102, 17, 71, 5,
-			110, 48, 0, 6, 100, 0, 0, 0, 16, 0, 4, 0, 154, 17, 72, 5, 110, 47, 0, 5, 103, 0, 0, 0, 16, 0, 8, 0, 195, 17,
-			81, 5, 110, 49, 0, 5, 102, 0, 0, 0, 8, 0, 2, 0, 186, 17, 83, 6, 110, 84, 0, 3, 118, 0, 0, 0, 16, 0, 2, 0,
-			151, 18, 84, 7, 110, 83, 45, 6, 122, 0, 0, 0, 48, 0, 4, 0, 184, 18, 88, 7, 0, 89, 0, 6, 115, 0, 0, 0, 40, 0,
-			4, 0, 77, 18, 89, 6, 0, 88, 0, 3, 83, 0, 0, 0, 40, 0, 6, 0, 95, 18, 91, 6, 110, 90, 0, 3, 35, 108, 0, 0,
-			0, 0, 0, 0, 0, 0, 108, 9, 0, 0, 0, 0, 35, 114, 0, 0, 0, 0, 0, 0, 0, 0, 109, 9, 0, 0, 0, 0, 35, 99,
-			70, 82, 0, 0, 0, 0, 0, 0, 110, 9, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 20, 17, 111, 2, 33, 33, 90, 0,
-			69, 0, 0, 0, 0, 0, 0, 0, 197, 16, 112, 2, 30, 30, 90, 0, 65, 126, 0, 0, 0, 0, 0, 0, 91, 17, 113, 2, 29, 29,
-			95, 0, 69, 126, 0, 0, 0, 0, 0, 0, 93, 17, 114, 2, 30, 30, 95, 0, 87, 126, 0, 0, 0, 0, 0, 0, 100, 17, 115, 2,
-			28, 28, 95, 0, 79, 126, 0, 0, 0, 0, 0, 0, 98, 17, 116, 2, 32, 32, 95, 0, 87, 0, 0, 0, 0, 0, 0, 0, 31, 17,
-			117, 2, 28, 28, 90, 0, 106, 47, 0, 0, 0, 0, 0, 0, 229, 16, 118, 2, 31, 31, 40, 0, 114, 47, 50, 0, 0, 0, 138, 1,
-			63, 16, 119, 3, 109, 0, 0, 0, 114, 50, 0, 0, 16, 0, 138, 0, 12, 16, 120, 7, 109, 0, 0, 0, 97, 45, 0, 0, 2, 0,
-			0, 0, 183, 16, 121, 2, 29, 29, 65, 0, 97, 35, 0, 0, 2, 0, 0, 0, 185, 7, 122, 2, 28, 28, 75, 0, 101, 45, 0, 0,
-			2, 0, 0, 0, 195, 16, 123, 2, 30, 30, 65, 0, 69, 45, 0, 0, 2, 0, 0, 0, 203, 16, 124, 2, 30, 30, 65, 0, 73, 0,
-			0, 0, 0, 0, 0, 0, 207, 7, 125, 2, 31, 31, 65, 0, 73, 50, 0, 0, 2, 0, 0, 0, 210, 7, 126, 2, 31, 31, 65, 0,
-			79, 0, 0, 0, 0, 0, 0, 0, 254, 16, 127, 2, 32, 32, 85, 0, 111, 85, 0, 0, 0, 0, 0, 0, 36, 8, 128, 2, 28, 33,
-			110, 0, 117, 58, 0, 0, 0, 0, 0, 0, 18, 17, 129, 2, 33, 33, 120, 0, 121, 45, 0, 0, 2, 0, 0, 0, 29, 17, 130, 2,
-			33, 33, 65, 0, 87, 50, 0, 0, 2, 0, 0, 0, 33, 17, 131, 2, 28, 28, 50, 0, 89, 0, 0, 0, 0, 0, 0, 0, 35, 17,
-			132, 2, 28, 28, 85, 0, 119, 47, 0, 0, 0, 0, 0, 0, 56, 17, 133, 3, 0, 0, 0, 7, 110, 50, 0, 0, 16, 0, 4, 0,
-			35, 18, 134, 8, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 11, 17, 135, 2, 33, 33, 90, 0, 121, 34, 0, 0, 0, 0,
-			0, 0, 20, 17, 136, 2, 33, 33, 90, 0, 69, 58, 0, 0, 0, 0, 0, 0, 197, 16, 137, 2, 30, 30, 90, 0, 65, 0, 0, 0,
-			0, 0, 0, 0, 177, 16, 138, 2, 29, 29, 90, 0, 112, 50, 0, 0, 8, 0, 1, 0, 65, 18, 139, 4, 0, 0, 0, 2, 116, 50,
-			0, 0, 8, 0, 4, 0, 128, 18, 140, 4, 0, 0, 0, 2, 116, 51, 0, 0, 8, 0, 4, 0, 143, 18, 141, 4, 0, 0, 0, 2,
-			86, 0, 0, 0, 0, 0, 0, 0, 181, 18, 142, 2, 29, 28, 70, 0, 122, 50, 0, 0, 48, 0, 4, 0, 204, 18, 143, 7, 0, 0,
-			0, 0, 122, 51, 0, 0, 48, 0, 4, 0, 215, 18, 144, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 11, 20, 0, 0, 0, 0, 0, 0, 102, 114, 45, 99, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 35, 0,
-			117, 0, 0, 0, 0, 0, 0, 0, 226, 18, 40, 2, 33, 33, 87, 0, 82, 0, 0, 0, 128, 0, 0, 0, 241, 18, 51, 3, 0, 0,
-			0, 7, 69, 0, 0, 0, 0, 0, 0, 0, 224, 18, 112, 2, 30, 30, 82, 0, 69, 126, 0, 0, 0, 0, 0, 0, 228, 18, 114, 2,
-			30, 30, 96, 0, 73, 0, 0, 0, 0, 0, 0, 0, 230, 18, 125, 2, 31, 31, 79, 0, 85, 0, 0, 0, 0, 0, 0, 0, 233, 18,
-			135, 2, 33, 33, 75, 0, 121, 34, 0, 0, 0, 0, 0, 0, 235, 18, 136, 2, 33, 33, 70, 0, 69, 58, 0, 0, 0, 0, 0, 0,
-			237, 18, 137, 2, 28, 30, 115, 0, 65, 0, 0, 0, 0, 0, 0, 0, 239, 18, 138, 2, 29, 29, 83, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 0, 0, 110, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 251, 18,
-			13, 2, 28, 28, 62, 0, 114, 0, 0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0,
-			26, 19, 35, 2, 29, 29, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 253, 18, 37, 2, 31, 31, 65, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 5, 19, 40, 2, 33, 33, 75, 0, 116, 0, 0, 0, 8, 0, 4, 0, 81, 19, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0,
-			8, 0, 1, 0, 101, 19, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6, 49, 4, 0, 0, 0, 2, 108, 0,
-			0, 0, 0, 0, 0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 98, 0, 0, 0, 16, 0, 1, 0, 110, 19, 71, 5, 0, 48, 0, 5,
-			100, 0, 0, 0, 16, 0, 4, 0, 90, 19, 72, 5, 0, 47, 0, 5, 122, 0, 0, 0, 48, 0, 4, 0, 130, 19, 88, 7, 0, 89,
-			0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 121, 19, 89, 6, 0, 88, 0, 3, 81, 0, 0, 0, 16, 0, 8, 0, 54, 19, 100, 7,
-			0, 101, 0, 6, 73, 0, 0, 0, 0, 0, 0, 0, 255, 18, 108, 2, 31, 31, 65, 0, 121, 0, 0, 0, 0, 0, 0, 0, 1, 19,
-			109, 2, 33, 33, 90, 0, 56, 0, 0, 0, 0, 0, 0, 0, 3, 19, 110, 2, 33, 33, 70, 0, 69, 0, 0, 0, 0, 0, 0, 0,
-			7, 19, 111, 2, 30, 30, 70, 0, 69, 50, 0, 0, 0, 0, 0, 0, 9, 19, 112, 2, 30, 30, 70, 0, 79, 0, 0, 0, 0, 0,
-			0, 0, 12, 19, 113, 2, 32, 32, 70, 0, 79, 58, 0, 0, 0, 0, 0, 0, 14, 19, 114, 2, 32, 32, 105, 0, 97, 58, 0, 0,
-			0, 0, 0, 0, 16, 19, 115, 2, 29, 29, 105, 0, 65, 0, 0, 0, 0, 0, 0, 0, 28, 19, 116, 2, 29, 29, 75, 0, 65, 126,
-			0, 0, 0, 0, 0, 0, 91, 17, 117, 2, 29, 29, 95, 0, 79, 126, 0, 0, 0, 0, 0, 0, 33, 19, 118, 2, 32, 32, 95, 0,
-			101, 58, 0, 0, 0, 0, 0, 0, 35, 19, 119, 2, 30, 31, 95, 0, 101, 35, 0, 0, 0, 0, 0, 0, 37, 19, 120, 2, 30, 31,
-			95, 0, 89, 58, 0, 0, 0, 0, 0, 0, 40, 19, 121, 2, 28, 28, 110, 0, 111, 58, 0, 0, 0, 0, 0, 0, 42, 19, 122, 2,
-			32, 33, 75, 0, 69, 73, 0, 0, 0, 0, 0, 0, 44, 19, 123, 2, 29, 31, 105, 0, 87, 121, 0, 0, 0, 0, 0, 0, 46, 19,
-			124, 2, 28, 33, 110, 0, 86, 85, 0, 0, 0, 0, 0, 0, 48, 19, 125, 2, 29, 32, 110, 0, 101, 85, 0, 0, 0, 0, 0, 0,
-			50, 19, 126, 2, 30, 33, 110, 0, 121, 85, 0, 0, 0, 0, 0, 0, 52, 19, 127, 2, 33, 33, 110, 0, 33, 0, 0, 0, 0, 0,
-			0, 0, 78, 19, 128, 0, 10, 0, 12, 1, 120, 50, 0, 0, 8, 0, 8, 0, 71, 12, 129, 6, 0, 0, 0, 3, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 9, 0, 0, 50, 0, 64, 0, 0, 0, 0, 0, 0, 16, 141, 19, 13, 2, 28, 28, 65, 0, 116, 35, 0, 0, 8, 0,
-			3, 0, 26, 20, 25, 4, 0, 72, 0, 2, 114, 0, 0, 0, 0, 0, 128, 0, 175, 20, 34, 3, 0, 0, 0, 3, 97, 0, 0, 0,
-			0, 0, 32, 0, 229, 19, 35, 2, 29, 29, 70, 0, 101, 0, 0, 0, 0, 0, 0, 0, 216, 19, 36, 2, 30, 30, 70, 0, 105, 0,
-			0, 0, 0, 0, 0, 0, 208, 19, 37, 2, 31, 31, 115, 0, 111, 0, 0, 0, 0, 0, 0, 0, 233, 19, 39, 2, 32, 32, 70, 0,
-			116, 0, 0, 0, 8, 0, 3, 0, 10, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 55, 6, 48, 4, 0, 0,
-			0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6, 49, 4, 0, 81, 0, 2, 98, 0, 0, 0, 16, 0, 1, 0, 196, 2, 71, 5,
-			0, 0, 0, 5, 100, 0, 0, 0, 16, 0, 3, 0, 36, 3, 72, 5, 0, 47, 0, 5, 74, 0, 0, 0, 48, 2, 7, 0, 120, 3,
-			79, 5, 0, 0, 0, 5, 99, 0, 0, 0, 40, 0, 6, 0, 122, 20, 80, 4, 0, 75, 0, 2, 103, 0, 0, 0, 16, 0, 8, 0,
-			153, 3, 81, 5, 0, 49, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 241, 3, 84, 7, 0, 83, 0, 6, 72, 0, 0, 0, 8, 0,
-			12, 0, 255, 5, 108, 6, 0, 0, 0, 3, 86, 0, 0, 0, 0, 0, 0, 16, 151, 19, 109, 2, 28, 28, 70, 0, 64, 51, 0, 0,
-			0, 0, 0, 16, 200, 19, 110, 2, 28, 28, 65, 0, 64, 50, 0, 0, 0, 0, 0, 16, 198, 19, 111, 2, 28, 28, 65, 0, 105, 58,
-			0, 0, 0, 0, 32, 0, 203, 19, 112, 2, 31, 31, 115, 0, 73, 0, 0, 0, 0, 0, 0, 0, 211, 19, 113, 2, 31, 31, 50, 0,
-			101, 58, 0, 0, 0, 0, 32, 0, 214, 19, 114, 2, 30, 30, 110, 0, 69, 58, 0, 0, 0, 0, 32, 0, 218, 19, 115, 2, 30, 30,
-			110, 0, 69, 0, 0, 0, 0, 0, 0, 0, 220, 19, 116, 2, 30, 30, 70, 0, 38, 58, 0, 0, 0, 0, 32, 0, 222, 19, 117, 2,
-			29, 29, 110, 0, 97, 58, 0, 0, 0, 0, 32, 0, 224, 19, 118, 2, 29, 29, 100, 0, 111, 58, 0, 0, 0, 0, 32, 0, 231, 19,
-			119, 2, 32, 32, 113, 0, 79, 58, 0, 0, 0, 0, 32, 0, 235, 19, 120, 2, 32, 32, 105, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			237, 19, 121, 2, 32, 32, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0, 239, 19, 122, 2, 33, 33, 70, 0, 117, 58, 0, 0, 0, 0,
-			32, 0, 241, 19, 123, 2, 33, 33, 115, 0, 105, 126, 0, 0, 0, 0, 32, 0, 243, 19, 124, 2, 31, 31, 110, 0, 73, 126, 0, 0,
-			0, 0, 32, 0, 245, 19, 125, 2, 31, 31, 85, 0, 101, 126, 0, 0, 0, 0, 32, 0, 247, 19, 126, 2, 30, 30, 110, 0, 69, 126,
-			0, 0, 0, 0, 32, 0, 249, 19, 127, 2, 30, 30, 110, 0, 97, 126, 0, 0, 0, 0, 32, 0, 251, 19, 128, 2, 29, 29, 110, 0,
-			86, 126, 0, 0, 0, 0, 32, 0, 253, 19, 129, 2, 28, 28, 110, 0, 79, 126, 0, 0, 0, 0, 32, 0, 255, 19, 130, 2, 32, 32,
-			110, 0, 111, 126, 0, 0, 0, 0, 32, 0, 1, 20, 131, 2, 32, 32, 110, 0, 85, 126, 0, 0, 0, 0, 0, 0, 3, 20, 132, 2,
-			33, 33, 85, 0, 117, 126, 0, 0, 0, 0, 32, 0, 5, 20, 133, 2, 33, 33, 110, 0, 97, 73, 0, 0, 0, 0, 32, 0, 7, 20,
-			134, 2, 28, 31, 120, 0, 97, 85, 0, 0, 0, 0, 32, 0, 9, 20, 135, 2, 29, 33, 120, 0, 112, 35, 0, 0, 8, 0, 1, 0,
-			74, 6, 136, 4, 0, 0, 0, 2, 98, 35, 0, 0, 16, 0, 1, 0, 11, 20, 137, 5, 0, 136, 0, 5, 100, 35, 0, 0, 16, 0,
-			3, 0, 39, 20, 138, 5, 0, 25, 0, 5, 116, 46, 0, 0, 8, 0, 5, 0, 54, 20, 139, 4, 0, 140, 0, 2, 100, 46, 0, 0,
-			16, 0, 5, 0, 81, 20, 140, 5, 0, 139, 0, 5, 116, 46, 35, 0, 8, 0, 5, 0, 66, 20, 141, 4, 0, 142, 0, 2, 100, 46,
-			35, 0, 16, 0, 5, 0, 104, 20, 142, 5, 0, 141, 0, 5, 99, 35, 0, 0, 40, 2, 7, 0, 131, 20, 143, 4, 0, 77, 0, 2,
-			74, 35, 0, 0, 48, 0, 7, 0, 137, 20, 144, 5, 0, 143, 0, 5, 107, 35, 0, 0, 8, 0, 8, 0, 145, 6, 145, 4, 0, 146,
-			0, 2, 103, 35, 0, 0, 16, 0, 3, 0, 152, 20, 146, 5, 0, 145, 0, 5, 35, 88, 50, 0, 40, 0, 4, 0, 173, 20, 147, 6,
-			0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 23, 0, 0, 0, 0, 0, 0, 98, 110,
+			114, 0, 0, 0, 128, 0, 0, 0, 127, 12, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 46, 12, 35, 2, 29, 29,
+			75, 0, 103, 0, 0, 0, 16, 0, 8, 0, 139, 12, 81, 5, 0, 49, 0, 5, 69, 0, 0, 0, 0, 0, 0, 0, 48, 12, 108, 2,
+			30, 30, 75, 0, 73, 0, 0, 0, 0, 0, 0, 0, 50, 12, 109, 2, 31, 31, 75, 0, 89, 0, 0, 0, 0, 0, 0, 0, 54, 12,
+			110, 2, 31, 31, 75, 0, 79, 0, 0, 0, 0, 0, 0, 0, 56, 12, 111, 2, 32, 32, 75, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			58, 12, 112, 2, 33, 33, 75, 0, 86, 0, 0, 0, 0, 0, 0, 0, 60, 12, 113, 2, 28, 28, 75, 0, 105, 58, 0, 0, 0, 0,
+			0, 0, 62, 12, 114, 2, 31, 31, 90, 0, 121, 58, 0, 0, 0, 0, 0, 0, 65, 12, 115, 2, 31, 31, 90, 0, 117, 58, 0, 0,
+			0, 0, 0, 0, 71, 12, 116, 2, 33, 33, 95, 0, 101, 58, 0, 0, 0, 0, 0, 0, 74, 12, 117, 2, 30, 30, 105, 0, 111, 58,
+			0, 0, 0, 0, 0, 0, 77, 12, 118, 2, 32, 32, 105, 0, 65, 58, 0, 0, 0, 0, 0, 0, 80, 12, 119, 2, 29, 29, 115, 0,
+			65, 89, 0, 0, 0, 0, 0, 0, 83, 12, 120, 2, 29, 31, 125, 0, 97, 73, 0, 0, 0, 0, 0, 0, 88, 12, 121, 2, 29, 31,
+			105, 0, 97, 89, 0, 0, 0, 0, 0, 0, 90, 12, 122, 2, 29, 31, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 95, 12, 123, 2,
+			29, 33, 105, 0, 64, 73, 0, 0, 0, 0, 0, 0, 97, 12, 124, 2, 28, 31, 105, 0, 64, 89, 0, 0, 0, 0, 0, 0, 99, 12,
+			125, 2, 28, 31, 105, 0, 101, 85, 0, 0, 0, 0, 0, 0, 104, 12, 126, 2, 30, 33, 105, 0, 73, 117, 0, 0, 0, 0, 0, 0,
+			106, 12, 127, 2, 31, 33, 105, 0, 89, 117, 0, 0, 0, 0, 0, 0, 108, 12, 128, 2, 31, 33, 105, 0, 79, 73, 0, 0, 0, 0,
+			0, 0, 113, 12, 129, 2, 32, 31, 105, 0, 79, 89, 0, 0, 0, 0, 0, 0, 115, 12, 130, 2, 32, 31, 105, 0, 117, 73, 0, 0,
+			0, 0, 0, 0, 120, 12, 131, 2, 33, 31, 105, 0, 117, 89, 0, 0, 0, 0, 0, 0, 122, 12, 132, 2, 33, 31, 105, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 120, 208, 3, 0, 100, 101, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0,
+			0, 0, 160, 12, 13, 2, 28, 28, 60, 0, 114, 0, 0, 0, 16, 0, 132, 0, 55, 13, 34, 5, 0, 0, 0, 6, 97, 0, 0, 0,
+			0, 0, 0, 0, 172, 12, 35, 2, 29, 29, 55, 0, 108, 47, 0, 0, 0, 0, 0, 0, 9, 13, 56, 3, 0, 0, 0, 7, 106, 0,
+			0, 0, 0, 2, 0, 0, 26, 13, 57, 3, 0, 0, 0, 7, 98, 0, 0, 0, 48, 0, 4, 0, 109, 13, 71, 7, 0, 48, 0, 0,
+			100, 0, 0, 0, 16, 0, 4, 0, 114, 13, 72, 5, 0, 47, 0, 0, 103, 0, 0, 0, 16, 0, 8, 0, 119, 13, 81, 5, 0, 49,
+			0, 0, 51, 0, 0, 0, 2, 0, 0, 16, 168, 12, 108, 2, 28, 28, 80, 0, 69, 0, 0, 0, 0, 0, 0, 0, 176, 12, 109, 2,
+			30, 30, 60, 0, 69, 50, 0, 0, 0, 0, 0, 0, 180, 12, 110, 2, 30, 30, 60, 0, 73, 0, 0, 0, 0, 0, 0, 0, 185, 12,
+			111, 2, 31, 31, 60, 0, 73, 58, 0, 0, 0, 0, 0, 0, 190, 12, 112, 2, 31, 31, 95, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+			192, 12, 113, 2, 32, 32, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0, 196, 12, 114, 2, 33, 33, 60, 0, 85, 82, 0, 0, 0, 0,
+			0, 16, 100, 13, 115, 2, 33, 28, 90, 0, 65, 58, 0, 0, 0, 0, 0, 0, 206, 12, 116, 2, 29, 29, 125, 0, 65, 0, 0, 0,
+			0, 0, 0, 0, 208, 12, 117, 2, 29, 29, 125, 0, 105, 58, 0, 0, 0, 0, 0, 0, 211, 12, 118, 2, 31, 31, 90, 0, 105, 50,
+			0, 0, 0, 0, 0, 0, 216, 12, 119, 2, 31, 31, 90, 0, 117, 58, 0, 0, 0, 0, 0, 0, 222, 12, 120, 2, 33, 33, 95, 0,
+			97, 85, 0, 0, 0, 0, 0, 0, 224, 12, 121, 2, 29, 33, 110, 0, 97, 73, 0, 0, 0, 0, 0, 0, 226, 12, 122, 2, 29, 31,
+			105, 0, 69, 73, 0, 0, 0, 0, 0, 0, 228, 12, 123, 2, 30, 31, 105, 0, 79, 89, 0, 0, 0, 0, 0, 0, 230, 12, 124, 2,
+			32, 31, 110, 0, 69, 58, 0, 0, 0, 0, 0, 0, 232, 12, 125, 2, 30, 30, 100, 0, 101, 58, 0, 0, 0, 0, 0, 0, 234, 12,
+			126, 2, 30, 30, 100, 0, 111, 58, 0, 0, 0, 0, 0, 0, 236, 12, 127, 2, 32, 32, 105, 0, 121, 58, 0, 0, 0, 0, 0, 0,
+			238, 12, 128, 2, 33, 33, 100, 0, 121, 0, 0, 0, 0, 0, 0, 0, 240, 12, 129, 2, 33, 33, 55, 0, 89, 58, 0, 0, 0, 0,
+			0, 0, 246, 12, 130, 2, 28, 28, 90, 0, 87, 0, 0, 0, 0, 0, 0, 0, 248, 12, 131, 2, 28, 28, 75, 0, 116, 115, 0, 0,
+			40, 0, 4, 0, 18, 6, 132, 4, 0, 0, 0, 2, 112, 70, 0, 0, 8, 0, 1, 0, 252, 12, 133, 4, 0, 0, 0, 2, 103, 35,
+			0, 0, 8, 2, 7, 0, 4, 13, 134, 6, 0, 0, 0, 3, 114, 50, 0, 0, 16, 0, 10, 0, 73, 13, 135, 7, 0, 0, 55, 6,
+			86, 35, 0, 0, 0, 0, 0, 0, 87, 13, 136, 3, 0, 0, 0, 7, 111, 85, 0, 0, 0, 0, 0, 0, 34, 9, 137, 2, 28, 33,
+			115, 0, 65, 126, 0, 0, 0, 0, 0, 0, 105, 13, 138, 2, 29, 29, 130, 0, 108, 50, 0, 0, 0, 0, 0, 0, 107, 13, 139, 3,
+			0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 101, 111,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			97, 0, 0, 0, 0, 0, 0, 0, 216, 20, 35, 2, 29, 29, 112, 0, 101, 0, 0, 0, 0, 0, 0, 0, 226, 20, 36, 2, 30, 30,
-			105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 222, 20, 37, 2, 31, 31, 105, 0, 111, 0, 0, 0, 0, 0, 0, 0, 230, 20, 39, 2,
-			32, 32, 105, 0, 117, 0, 0, 0, 0, 0, 0, 0, 224, 20, 40, 2, 33, 33, 105, 0, 116, 83, 0, 0, 40, 0, 6, 0, 236, 20,
-			76, 4, 0, 75, 0, 2, 86, 0, 0, 0, 0, 0, 0, 16, 190, 20, 109, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			234, 20, 121, 2, 32, 32, 100, 0, 38, 0, 0, 0, 0, 0, 0, 0, 228, 20, 148, 2, 29, 29, 105, 0, 116, 83, 35, 0, 40, 0,
-			6, 0, 245, 20, 149, 4, 0, 75, 0, 2, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 9, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 23, 0, 0, 0, 0, 0, 0, 110, 101, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 32, 0,
-			16, 21, 35, 2, 29, 29, 115, 0, 101, 0, 0, 0, 0, 0, 0, 0, 14, 21, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0,
-			0, 0, 11, 21, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 18, 21, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0,
-			0, 0, 0, 0, 20, 21, 40, 2, 33, 33, 80, 0, 86, 0, 0, 0, 0, 0, 0, 0, 254, 20, 109, 2, 28, 28, 80, 0, 64, 51,
-			0, 0, 0, 0, 0, 0, 4, 21, 110, 2, 28, 28, 70, 0, 97, 73, 0, 0, 0, 0, 32, 0, 22, 21, 134, 2, 29, 31, 120, 0,
-			97, 85, 0, 0, 0, 0, 32, 0, 24, 21, 135, 2, 29, 33, 120, 0, 64, 47, 0, 0, 0, 0, 0, 0, 6, 21, 148, 2, 28, 28,
-			65, 0, 101, 73, 0, 0, 0, 0, 32, 0, 26, 21, 149, 2, 30, 31, 120, 0, 101, 85, 0, 0, 0, 0, 32, 0, 28, 21, 150, 2,
-			30, 33, 120, 0, 86, 73, 0, 0, 0, 0, 32, 0, 30, 21, 151, 2, 28, 31, 120, 0, 86, 85, 0, 0, 0, 0, 32, 0, 32, 21,
-			152, 2, 28, 33, 120, 0, 111, 73, 0, 0, 0, 0, 32, 0, 34, 21, 153, 2, 32, 31, 120, 0, 111, 85, 0, 0, 0, 0, 32, 0,
-			36, 21, 154, 2, 32, 33, 120, 0, 117, 73, 0, 0, 0, 0, 32, 0, 38, 21, 155, 2, 33, 31, 120, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 0, 0, 117, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			97, 0, 0, 0, 0, 0, 0, 0, 124, 13, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 126, 13, 36, 2, 30, 30,
+			85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 128, 13, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 131, 13, 39, 2,
+			32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 136, 13, 40, 2, 33, 33, 85, 0, 97, 85, 0, 0, 0, 0, 0, 0, 138, 13,
+			108, 2, 29, 33, 125, 0, 101, 85, 0, 0, 0, 0, 0, 0, 140, 13, 109, 2, 30, 33, 125, 0, 97, 73, 0, 0, 0, 0, 0, 0,
+			142, 13, 110, 2, 29, 31, 125, 0, 101, 73, 0, 0, 0, 0, 0, 0, 144, 13, 111, 2, 30, 31, 125, 0, 111, 73, 0, 0, 0, 0,
+			0, 0, 146, 13, 112, 2, 32, 31, 125, 0, 117, 73, 0, 0, 0, 0, 0, 0, 148, 13, 113, 2, 33, 31, 125, 0, 116, 115, 0, 0,
+			40, 0, 4, 0, 18, 6, 114, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 14,
+			0, 0, 0, 0, 0, 0, 106, 98, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 150, 13, 36, 2, 30, 30, 85, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 110, 99, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 9, 0, 0, 60, 0, 64, 0, 0, 0, 0, 0, 0, 16, 40, 21, 13, 2, 28, 28, 65, 0, 86, 0, 0, 0, 0, 0, 0, 16,
-			46, 21, 109, 2, 28, 28, 75, 0, 64, 51, 0, 0, 0, 0, 0, 16, 51, 21, 110, 2, 28, 28, 75, 0, 64, 50, 0, 0, 0, 0,
-			0, 16, 49, 21, 111, 2, 28, 28, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 23, 0, 0,
-			0, 0, 0, 0, 112, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 57, 21, 13, 2, 28, 28, 65, 0, 97, 0, 0, 0, 0, 0, 32, 0,
-			78, 21, 35, 2, 29, 29, 110, 0, 101, 0, 0, 0, 0, 0, 32, 0, 74, 21, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0,
-			32, 0, 68, 21, 37, 2, 31, 31, 110, 0, 117, 0, 0, 0, 0, 0, 32, 0, 86, 21, 40, 2, 33, 33, 110, 0, 118, 0, 0, 0,
-			16, 0, 2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 86, 0, 0, 0, 0, 0, 0, 0, 62, 21, 109, 2, 28, 28, 65, 0, 73, 0,
-			0, 0, 0, 0, 0, 0, 71, 21, 113, 2, 31, 31, 75, 0, 69, 0, 0, 0, 0, 0, 32, 0, 76, 21, 116, 2, 30, 30, 100, 0,
-			111, 58, 0, 0, 0, 0, 32, 0, 82, 21, 119, 2, 32, 32, 110, 0, 79, 0, 0, 0, 0, 0, 32, 0, 80, 21, 121, 2, 32, 32,
-			100, 0, 85, 0, 0, 0, 0, 0, 0, 0, 84, 21, 122, 2, 33, 33, 75, 0, 43, 0, 0, 0, 0, 0, 0, 0, 54, 21, 148, 1,
-			5, 30, 0, 0, 101, 73, 0, 0, 0, 0, 0, 0, 45, 8, 149, 2, 30, 31, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 24, 23, 0, 0, 0, 0, 0, 0, 116, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0,
-			25, 0, 64, 0, 0, 0, 0, 0, 0, 0, 88, 21, 13, 2, 28, 28, 65, 0, 97, 0, 0, 0, 0, 0, 0, 0, 90, 21, 35, 2,
-			29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 107, 21, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 111, 21,
-			37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 119, 21, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			123, 21, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 118, 0, 0, 0, 16, 0,
-			2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 122, 46, 0, 0, 48, 0, 6, 0, 148, 21, 92, 7, 0, 93, 0, 6, 86, 0, 0, 0,
-			0, 0, 0, 0, 93, 21, 109, 2, 28, 28, 65, 0, 105, 58, 0, 0, 0, 0, 0, 0, 117, 21, 112, 2, 31, 31, 135, 0, 101, 58,
-			0, 0, 0, 0, 0, 0, 109, 21, 114, 2, 30, 30, 125, 0, 97, 58, 0, 0, 0, 0, 0, 0, 105, 21, 118, 2, 29, 29, 150, 0,
-			111, 58, 0, 0, 0, 0, 0, 0, 121, 21, 119, 2, 32, 32, 150, 0, 85, 0, 0, 0, 0, 0, 0, 0, 128, 21, 122, 2, 33, 33,
-			55, 0, 117, 58, 0, 0, 0, 0, 0, 0, 132, 21, 123, 2, 33, 33, 140, 0, 97, 73, 0, 0, 0, 0, 0, 0, 142, 21, 134, 2,
-			29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 0, 0, 144, 21, 135, 2, 29, 33, 135, 0, 86, 35, 0, 0, 0, 0, 0, 0, 100, 21,
-			148, 2, 28, 28, 65, 0, 35, 0, 0, 0, 0, 0, 0, 0, 146, 21, 149, 9, 0, 0, 0, 0, 117, 50, 0, 0, 0, 0, 0, 0,
-			126, 21, 150, 2, 33, 33, 55, 0, 85, 58, 0, 0, 0, 0, 0, 0, 138, 21, 151, 2, 33, 33, 135, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 23, 0, 0, 0, 0, 0, 0, 107, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 153, 21,
-			13, 2, 29, 29, 65, 0, 114, 0, 0, 0, 0, 0, 128, 0, 71, 0, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 32, 0,
-			155, 21, 35, 2, 28, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 161, 21, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0,
-			0, 0, 165, 21, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 169, 21, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0,
-			0, 0, 0, 0, 173, 21, 40, 2, 33, 33, 55, 0, 100, 0, 0, 0, 16, 0, 3, 0, 181, 21, 72, 5, 0, 74, 0, 5, 118, 0,
-			0, 0, 16, 0, 2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 167, 21, 112, 2, 31, 31, 135, 0,
-			101, 58, 0, 0, 0, 0, 0, 0, 163, 21, 114, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 159, 21, 118, 2, 29, 29,
-			150, 0, 111, 58, 0, 0, 0, 0, 0, 0, 171, 21, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 175, 21, 123, 2,
-			33, 33, 140, 0, 97, 73, 0, 0, 0, 0, 32, 0, 177, 21, 134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 179, 21,
-			135, 2, 29, 33, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 23, 0, 0, 0, 0, 0, 0,
-			109, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 208, 21, 13, 2, 28, 28, 65, 0, 114, 0, 0, 0, 0, 0, 132, 0, 122, 2, 34, 3,
-			0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0, 214, 21, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 233, 21,
-			36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 237, 21, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			243, 21, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 247, 21, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0,
-			3, 0, 136, 22, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 127, 22, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0,
-			8, 0, 8, 0, 145, 22, 49, 4, 0, 81, 0, 2, 82, 0, 0, 0, 128, 0, 0, 0, 136, 0, 51, 3, 0, 0, 0, 6, 118, 0,
-			0, 0, 16, 0, 2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 32, 0, 241, 21, 112, 2, 31, 31, 135, 0,
-			73, 0, 0, 0, 0, 0, 0, 0, 239, 21, 113, 2, 31, 31, 65, 0, 101, 58, 0, 0, 0, 0, 32, 0, 235, 21, 114, 2, 30, 30,
-			135, 0, 97, 58, 0, 0, 0, 0, 32, 0, 231, 21, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0, 32, 0, 245, 21, 119, 2,
-			32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 32, 0, 249, 21, 123, 2, 33, 33, 140, 0, 97, 73, 0, 0, 0, 0, 32, 0, 251, 21,
-			134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 253, 21, 135, 2, 29, 33, 135, 0, 98, 35, 0, 0, 8, 0, 1, 2,
-			255, 21, 137, 4, 0, 71, 0, 2, 100, 35, 0, 0, 8, 0, 3, 2, 23, 22, 138, 4, 0, 72, 0, 2, 116, 46, 35, 0, 8, 0,
-			5, 0, 44, 22, 141, 4, 0, 142, 0, 2, 100, 46, 35, 0, 8, 0, 5, 2, 59, 22, 142, 4, 0, 142, 0, 2, 74, 35, 0, 0,
-			40, 2, 7, 2, 80, 22, 144, 4, 0, 143, 0, 2, 103, 35, 0, 0, 8, 0, 8, 2, 97, 22, 146, 4, 0, 0, 0, 2, 121, 0,
-			0, 0, 2, 0, 0, 0, 210, 21, 148, 2, 28, 28, 40, 0, 97, 35, 0, 0, 0, 0, 0, 0, 229, 21, 149, 2, 29, 29, 90, 0,
-			100, 50, 0, 0, 16, 0, 4, 0, 15, 3, 150, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			12, 9, 0, 0, 150, 0, 101, 0, 0, 0, 0, 0, 0, 0, 152, 13, 36, 2, 30, 30, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 102, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9,
+			0, 0, 80, 0, 114, 0, 0, 0, 128, 0, 0, 0, 120, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 165, 13,
+			35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 161, 13, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0,
+			154, 13, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 169, 13, 39, 2, 32, 32, 77, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 173, 13, 40, 2, 33, 33, 70, 0, 116, 0, 0, 0, 8, 0, 3, 0, 7, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 201, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 4, 7, 49, 4, 0, 81, 0, 2, 82, 50,
+			0, 0, 128, 0, 0, 0, 217, 13, 52, 3, 0, 0, 0, 6, 100, 0, 0, 0, 16, 0, 3, 0, 244, 13, 72, 5, 0, 47, 0, 5,
+			118, 0, 0, 0, 16, 0, 2, 0, 231, 13, 84, 7, 0, 83, 0, 6, 104, 0, 0, 0, 8, 0, 12, 0, 15, 14, 107, 6, 0, 0,
+			0, 3, 73, 0, 0, 0, 0, 0, 0, 0, 158, 13, 108, 2, 31, 31, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 163, 13, 109, 2,
+			29, 29, 75, 0, 97, 50, 0, 0, 0, 0, 0, 0, 167, 13, 110, 2, 29, 29, 85, 0, 89, 0, 0, 0, 0, 0, 0, 0, 171, 13,
+			111, 2, 28, 28, 77, 0, 117, 49, 0, 0, 0, 0, 0, 0, 175, 13, 112, 2, 33, 33, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			177, 13, 113, 2, 33, 33, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 179, 13, 114, 2, 33, 33, 75, 0, 97, 105, 0, 0, 0, 0,
+			32, 0, 181, 13, 115, 2, 29, 31, 155, 0, 38, 105, 0, 0, 0, 0, 32, 0, 183, 13, 116, 2, 29, 31, 145, 0, 111, 105, 0, 0,
+			0, 0, 32, 0, 185, 13, 117, 2, 32, 31, 140, 0, 101, 105, 0, 0, 0, 0, 32, 0, 187, 13, 118, 2, 30, 31, 140, 0, 89, 105,
+			0, 0, 0, 0, 32, 0, 189, 13, 119, 2, 28, 31, 135, 0, 117, 105, 0, 0, 0, 0, 32, 0, 191, 13, 120, 2, 33, 31, 135, 0,
+			121, 105, 0, 0, 0, 0, 32, 0, 193, 13, 121, 2, 33, 31, 135, 0, 97, 117, 0, 0, 0, 0, 32, 0, 195, 13, 122, 2, 29, 33,
+			150, 0, 111, 117, 0, 0, 0, 0, 32, 0, 197, 13, 123, 2, 32, 33, 140, 0, 101, 117, 0, 0, 0, 0, 32, 0, 199, 13, 124, 2,
+			30, 33, 140, 0, 105, 117, 0, 0, 0, 0, 32, 0, 201, 13, 125, 2, 31, 33, 140, 0, 38, 121, 0, 0, 0, 0, 32, 0, 203, 13,
+			126, 2, 29, 33, 140, 0, 101, 121, 0, 0, 0, 0, 32, 0, 205, 13, 127, 2, 30, 33, 140, 0, 89, 121, 0, 0, 0, 0, 32, 0,
+			207, 13, 128, 2, 28, 33, 135, 0, 105, 121, 0, 0, 0, 0, 32, 0, 209, 13, 129, 2, 31, 33, 130, 0, 117, 111, 0, 0, 0, 0,
+			32, 0, 211, 13, 130, 2, 33, 32, 140, 0, 105, 101, 0, 0, 0, 0, 32, 0, 213, 13, 131, 2, 31, 30, 140, 0, 121, 89, 0, 0,
+			0, 0, 32, 0, 215, 13, 132, 2, 33, 28, 140, 0, 115, 50, 0, 0, 40, 0, 4, 0, 142, 6, 133, 6, 0, 0, 0, 3, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 101, 116, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 9, 0, 0, 80, 0, 114, 0, 0, 0, 0, 0, 0, 0, 142, 14, 34, 3, 0, 0, 0, 2, 97, 0, 0, 0,
+			0, 0, 0, 0, 35, 14, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 41, 14, 36, 2, 30, 30, 80, 0, 105, 0,
+			0, 0, 0, 0, 0, 0, 47, 14, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 55, 14, 39, 2, 32, 32, 80, 0,
+			117, 0, 0, 0, 0, 0, 0, 0, 61, 14, 40, 2, 33, 33, 72, 0, 116, 0, 0, 0, 8, 0, 67, 0, 102, 14, 47, 4, 0, 72,
+			0, 5, 112, 0, 0, 0, 8, 0, 1, 0, 201, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 152, 14, 49, 4,
+			0, 81, 0, 5, 100, 0, 0, 0, 16, 0, 3, 0, 115, 14, 72, 5, 0, 47, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 89, 14,
+			84, 7, 0, 83, 0, 6, 104, 0, 0, 0, 8, 0, 12, 0, 178, 14, 107, 6, 0, 0, 0, 3, 97, 58, 0, 0, 0, 0, 0, 0,
+			37, 14, 108, 2, 29, 29, 170, 0, 65, 49, 0, 0, 0, 0, 0, 0, 39, 14, 109, 2, 29, 29, 127, 0, 101, 58, 0, 0, 0, 0,
+			0, 0, 43, 14, 110, 2, 30, 30, 160, 0, 69, 49, 0, 0, 0, 0, 0, 0, 45, 14, 111, 2, 30, 30, 120, 0, 105, 58, 0, 0,
+			0, 0, 0, 0, 49, 14, 112, 2, 31, 31, 140, 0, 73, 49, 0, 0, 0, 0, 0, 0, 51, 14, 113, 2, 31, 31, 105, 0, 105, 49,
+			0, 0, 0, 0, 0, 0, 53, 14, 114, 2, 31, 31, 15, 0, 111, 58, 0, 0, 0, 0, 0, 0, 57, 14, 115, 2, 32, 32, 160, 0,
+			79, 49, 0, 0, 0, 0, 0, 0, 59, 14, 116, 2, 32, 32, 112, 0, 117, 58, 0, 0, 0, 0, 0, 0, 63, 14, 117, 2, 33, 33,
+			145, 0, 85, 49, 0, 0, 0, 0, 0, 0, 65, 14, 118, 2, 33, 33, 109, 0, 56, 0, 0, 0, 0, 0, 0, 0, 67, 14, 119, 2,
+			28, 28, 82, 0, 56, 58, 0, 0, 0, 0, 0, 0, 69, 14, 120, 2, 28, 28, 165, 0, 38, 0, 0, 0, 0, 0, 0, 0, 71, 14,
+			121, 2, 29, 29, 87, 0, 38, 58, 0, 0, 0, 0, 0, 0, 73, 14, 122, 2, 29, 29, 175, 0, 89, 0, 0, 0, 0, 0, 0, 0,
+			75, 14, 123, 2, 28, 28, 82, 0, 89, 58, 0, 0, 0, 0, 0, 0, 77, 14, 124, 2, 28, 28, 165, 0, 121, 0, 0, 0, 0, 0,
+			0, 0, 79, 14, 125, 2, 33, 33, 72, 0, 121, 58, 0, 0, 0, 0, 0, 0, 81, 14, 126, 2, 33, 33, 145, 0, 38, 105, 0, 0,
+			0, 0, 32, 0, 83, 14, 127, 2, 29, 31, 157, 0, 89, 105, 0, 0, 0, 0, 32, 0, 85, 14, 128, 2, 28, 31, 152, 0, 121, 105,
+			0, 0, 0, 0, 32, 0, 87, 14, 129, 2, 33, 31, 142, 0, 115, 50, 0, 0, 40, 0, 4, 0, 142, 6, 130, 6, 0, 0, 0, 3,
+			115, 94, 0, 0, 40, 2, 4, 0, 198, 14, 131, 6, 0, 88, 0, 3, 116, 94, 0, 0, 8, 2, 7, 0, 208, 14, 132, 4, 0, 133,
+			0, 5, 100, 94, 0, 0, 16, 2, 4, 0, 221, 14, 133, 5, 0, 132, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 64, 1, 0, 0, 176, 54, 4, 0, 102, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 20, 0,
+			64, 0, 0, 0, 0, 0, 0, 0, 2, 16, 13, 2, 28, 28, 85, 0, 64, 45, 0, 0, 2, 0, 0, 0, 4, 16, 14, 2, 28, 28,
+			65, 0, 114, 0, 0, 0, 16, 0, 138, 1, 79, 15, 34, 7, 109, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 6, 16, 35, 2,
+			29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 14, 16, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 2, 0, 0, 34, 16,
+			37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 73, 16, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0,
+			96, 16, 40, 2, 33, 33, 90, 0, 114, 47, 0, 0, 16, 0, 138, 0, 104, 15, 46, 7, 109, 0, 0, 7, 116, 0, 0, 0, 8, 0,
+			4, 0, 195, 17, 47, 4, 110, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 126, 17, 48, 4, 110, 71, 0, 2, 107, 0, 0, 0,
+			8, 0, 8, 0, 56, 17, 49, 4, 110, 81, 25, 2, 110, 0, 0, 0, 16, 0, 4, 0, 81, 17, 50, 8, 0, 0, 0, 4, 108, 0,
+			0, 0, 0, 0, 0, 0, 171, 15, 55, 3, 108, 0, 0, 7, 108, 47, 0, 0, 0, 0, 5, 0, 212, 15, 56, 3, 108, 0, 0, 7,
+			119, 0, 0, 0, 0, 0, 0, 0, 122, 16, 58, 2, 33, 33, 90, 0, 108, 47, 50, 0, 0, 0, 0, 0, 238, 15, 59, 3, 108, 0,
+			0, 0, 98, 0, 0, 0, 16, 0, 1, 0, 187, 16, 71, 5, 110, 48, 0, 6, 100, 0, 0, 0, 16, 0, 4, 0, 239, 16, 72, 5,
+			110, 47, 0, 5, 103, 0, 0, 0, 16, 0, 8, 0, 24, 17, 81, 5, 110, 49, 0, 5, 102, 0, 0, 0, 8, 0, 2, 0, 15, 17,
+			83, 6, 110, 84, 0, 3, 118, 0, 0, 0, 16, 0, 2, 0, 236, 17, 84, 7, 110, 83, 45, 6, 122, 0, 0, 0, 48, 0, 4, 0,
+			13, 18, 88, 7, 0, 89, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 162, 17, 89, 6, 0, 88, 0, 3, 83, 0, 0, 0, 40, 0,
+			6, 0, 180, 17, 91, 6, 110, 90, 0, 3, 35, 108, 0, 0, 0, 0, 0, 0, 0, 0, 108, 9, 0, 0, 0, 0, 35, 114, 0, 0,
+			0, 0, 0, 0, 0, 0, 109, 9, 0, 0, 0, 0, 35, 99, 70, 82, 0, 0, 0, 0, 0, 0, 110, 9, 0, 0, 0, 0, 121, 0,
+			0, 0, 0, 0, 0, 0, 105, 16, 111, 2, 33, 33, 90, 0, 69, 0, 0, 0, 0, 0, 0, 0, 26, 16, 112, 2, 30, 30, 90, 0,
+			65, 126, 0, 0, 0, 0, 0, 0, 176, 16, 113, 2, 29, 29, 95, 0, 69, 126, 0, 0, 0, 0, 0, 0, 178, 16, 114, 2, 30, 30,
+			95, 0, 87, 126, 0, 0, 0, 0, 0, 0, 185, 16, 115, 2, 28, 28, 95, 0, 79, 126, 0, 0, 0, 0, 0, 0, 183, 16, 116, 2,
+			32, 32, 95, 0, 87, 0, 0, 0, 0, 0, 0, 0, 116, 16, 117, 2, 28, 28, 90, 0, 106, 47, 0, 0, 0, 0, 0, 0, 58, 16,
+			118, 2, 31, 31, 40, 0, 114, 47, 50, 0, 0, 0, 138, 1, 148, 15, 119, 3, 109, 0, 0, 0, 114, 50, 0, 0, 16, 0, 138, 0,
+			97, 15, 120, 7, 109, 0, 0, 0, 97, 45, 0, 0, 2, 0, 0, 0, 12, 16, 121, 2, 29, 29, 65, 0, 97, 35, 0, 0, 2, 0,
+			0, 0, 160, 7, 122, 2, 28, 28, 75, 0, 101, 45, 0, 0, 2, 0, 0, 0, 24, 16, 123, 2, 30, 30, 65, 0, 69, 45, 0, 0,
+			2, 0, 0, 0, 32, 16, 124, 2, 30, 30, 65, 0, 73, 0, 0, 0, 0, 0, 0, 0, 172, 7, 125, 2, 31, 31, 65, 0, 73, 50,
+			0, 0, 2, 0, 0, 0, 175, 7, 126, 2, 31, 31, 65, 0, 79, 0, 0, 0, 0, 0, 0, 0, 83, 16, 127, 2, 32, 32, 85, 0,
+			111, 85, 0, 0, 0, 0, 0, 0, 240, 7, 128, 2, 28, 33, 110, 0, 117, 58, 0, 0, 0, 0, 0, 0, 103, 16, 129, 2, 33, 33,
+			120, 0, 121, 45, 0, 0, 2, 0, 0, 0, 114, 16, 130, 2, 33, 33, 65, 0, 87, 50, 0, 0, 2, 0, 0, 0, 118, 16, 131, 2,
+			28, 28, 50, 0, 89, 0, 0, 0, 0, 0, 0, 0, 120, 16, 132, 2, 28, 28, 85, 0, 119, 47, 0, 0, 0, 0, 0, 0, 141, 16,
+			133, 3, 0, 0, 0, 7, 110, 50, 0, 0, 16, 0, 4, 0, 120, 17, 134, 8, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			96, 16, 135, 2, 33, 33, 90, 0, 121, 34, 0, 0, 0, 0, 0, 0, 105, 16, 136, 2, 33, 33, 90, 0, 69, 58, 0, 0, 0, 0,
+			0, 0, 26, 16, 137, 2, 30, 30, 90, 0, 65, 0, 0, 0, 0, 0, 0, 0, 6, 16, 138, 2, 29, 29, 90, 0, 112, 50, 0, 0,
+			8, 0, 1, 0, 150, 17, 139, 4, 0, 0, 0, 2, 116, 50, 0, 0, 8, 0, 4, 0, 213, 17, 140, 4, 0, 0, 0, 2, 116, 51,
+			0, 0, 8, 0, 4, 0, 228, 17, 141, 4, 0, 0, 0, 2, 86, 0, 0, 0, 0, 0, 0, 0, 10, 18, 142, 2, 29, 28, 70, 0,
+			122, 50, 0, 0, 48, 0, 4, 0, 33, 18, 143, 7, 0, 0, 0, 0, 122, 51, 0, 0, 48, 0, 4, 0, 44, 18, 144, 7, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 19, 0, 0, 0, 0, 0, 0, 102, 114, 45, 99,
+			97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 35, 0, 117, 0, 0, 0, 0, 0, 0, 0, 55, 18, 40, 2, 33, 33, 87, 0,
+			82, 0, 0, 0, 128, 0, 0, 0, 70, 18, 51, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0, 0, 0, 53, 18, 112, 2, 30, 30,
+			82, 0, 69, 126, 0, 0, 0, 0, 0, 0, 57, 18, 114, 2, 30, 30, 96, 0, 73, 0, 0, 0, 0, 0, 0, 0, 59, 18, 125, 2,
+			31, 31, 79, 0, 85, 0, 0, 0, 0, 0, 0, 0, 62, 18, 135, 2, 33, 33, 75, 0, 121, 34, 0, 0, 0, 0, 0, 0, 64, 18,
+			136, 2, 33, 33, 70, 0, 69, 58, 0, 0, 0, 0, 0, 0, 66, 18, 137, 2, 28, 30, 115, 0, 65, 0, 0, 0, 0, 0, 0, 0,
+			68, 18, 138, 2, 29, 29, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0,
+			0, 0, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 50, 0, 64, 0, 0, 0, 0, 0, 0, 16, 80, 18,
+			13, 2, 28, 28, 65, 0, 97, 0, 0, 0, 0, 0, 32, 0, 147, 18, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0,
+			137, 18, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 129, 18, 37, 2, 31, 31, 115, 0, 111, 0, 0, 0, 0, 0,
+			0, 0, 151, 18, 39, 2, 32, 32, 65, 0, 116, 0, 0, 0, 8, 0, 3, 0, 7, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 52, 6, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 113, 6, 49, 4, 0, 81, 0, 2, 98, 0,
+			0, 0, 16, 0, 1, 0, 193, 2, 71, 5, 0, 0, 0, 5, 100, 0, 0, 0, 16, 0, 3, 0, 33, 3, 72, 5, 0, 47, 0, 5,
+			74, 0, 0, 0, 48, 2, 7, 0, 117, 3, 79, 5, 0, 0, 0, 5, 99, 0, 0, 0, 8, 2, 7, 0, 41, 5, 80, 4, 0, 0,
+			0, 2, 103, 0, 0, 0, 16, 0, 8, 0, 150, 3, 81, 5, 0, 49, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 238, 3, 84, 7,
+			0, 83, 0, 6, 72, 0, 0, 0, 8, 0, 12, 0, 252, 5, 108, 6, 0, 0, 0, 3, 86, 0, 0, 0, 0, 0, 0, 16, 86, 18,
+			109, 2, 28, 28, 65, 0, 64, 51, 0, 0, 0, 0, 0, 16, 123, 18, 110, 2, 28, 28, 65, 0, 64, 50, 0, 0, 0, 0, 0, 16,
+			121, 18, 111, 2, 28, 28, 65, 0, 105, 58, 0, 0, 0, 0, 32, 0, 126, 18, 112, 2, 31, 31, 115, 0, 73, 0, 0, 0, 0, 0,
+			0, 0, 132, 18, 113, 2, 31, 31, 50, 0, 101, 58, 0, 0, 0, 0, 32, 0, 135, 18, 114, 2, 30, 30, 110, 0, 69, 58, 0, 0,
+			0, 0, 32, 0, 139, 18, 115, 2, 30, 30, 110, 0, 69, 0, 0, 0, 0, 0, 0, 0, 141, 18, 116, 2, 30, 30, 65, 0, 38, 58,
+			0, 0, 0, 0, 32, 0, 143, 18, 117, 2, 29, 29, 110, 0, 97, 58, 0, 0, 0, 0, 32, 0, 145, 18, 118, 2, 29, 29, 115, 0,
+			111, 58, 0, 0, 0, 0, 32, 0, 149, 18, 119, 2, 32, 32, 110, 0, 79, 58, 0, 0, 0, 0, 32, 0, 153, 18, 120, 2, 32, 32,
+			105, 0, 79, 0, 0, 0, 0, 0, 0, 0, 155, 18, 121, 2, 32, 32, 65, 0, 85, 0, 0, 0, 0, 0, 0, 0, 157, 18, 122, 2,
+			33, 33, 60, 0, 117, 58, 0, 0, 0, 0, 32, 0, 159, 18, 123, 2, 33, 33, 115, 0, 105, 126, 0, 0, 0, 0, 32, 0, 161, 18,
+			124, 2, 31, 31, 110, 0, 73, 126, 0, 0, 0, 0, 32, 0, 163, 18, 125, 2, 31, 31, 85, 0, 101, 126, 0, 0, 0, 0, 32, 0,
+			165, 18, 126, 2, 30, 30, 110, 0, 69, 126, 0, 0, 0, 0, 32, 0, 167, 18, 127, 2, 30, 30, 115, 0, 97, 126, 0, 0, 0, 0,
+			32, 0, 169, 18, 128, 2, 29, 29, 125, 0, 86, 126, 0, 0, 0, 0, 32, 0, 171, 18, 129, 2, 28, 28, 125, 0, 79, 126, 0, 0,
+			0, 0, 32, 0, 173, 18, 130, 2, 32, 32, 115, 0, 111, 126, 0, 0, 0, 0, 32, 0, 175, 18, 131, 2, 32, 32, 110, 0, 85, 126,
+			0, 0, 0, 0, 0, 0, 177, 18, 132, 2, 33, 33, 85, 0, 117, 126, 0, 0, 0, 0, 32, 0, 179, 18, 133, 2, 33, 33, 115, 0,
+			97, 73, 0, 0, 0, 0, 32, 0, 181, 18, 134, 2, 28, 31, 120, 0, 97, 85, 0, 0, 0, 0, 32, 0, 183, 18, 135, 2, 29, 33,
+			120, 0, 112, 104, 0, 0, 8, 0, 1, 0, 71, 6, 136, 4, 0, 0, 0, 2, 98, 104, 0, 0, 16, 0, 1, 0, 185, 18, 137, 5,
+			0, 136, 0, 5, 116, 104, 0, 0, 8, 0, 3, 0, 200, 18, 138, 4, 0, 72, 0, 2, 100, 104, 0, 0, 16, 0, 3, 0, 213, 18,
+			139, 5, 0, 138, 0, 5, 116, 46, 0, 0, 8, 0, 5, 0, 228, 18, 140, 4, 0, 141, 0, 2, 100, 46, 0, 0, 16, 0, 5, 0,
+			253, 18, 141, 5, 0, 140, 0, 5, 116, 104, 46, 0, 8, 0, 5, 0, 240, 18, 142, 4, 0, 143, 0, 2, 100, 104, 46, 0, 16, 0,
+			5, 0, 20, 19, 143, 5, 0, 142, 0, 5, 99, 104, 0, 0, 40, 2, 7, 0, 38, 19, 144, 4, 0, 77, 0, 2, 74, 104, 0, 0,
+			48, 0, 7, 0, 43, 19, 145, 5, 0, 144, 0, 5, 107, 104, 0, 0, 8, 0, 8, 0, 126, 6, 146, 4, 0, 147, 0, 2, 103, 104,
+			0, 0, 16, 0, 3, 0, 58, 19, 147, 5, 0, 146, 0, 5, 35, 88, 50, 0, 40, 0, 4, 0, 79, 19, 148, 6, 0, 0, 0, 3,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 21, 0, 0, 0, 0, 0, 0, 116, 97, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 25, 0, 64, 0, 0, 0, 0, 0, 0, 0, 81, 19, 13, 2, 28, 28, 65, 0, 97, 0,
+			0, 0, 0, 0, 0, 0, 83, 19, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 100, 19, 36, 2, 30, 30, 65, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 104, 19, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 112, 19, 39, 2, 32, 32,
+			65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 116, 19, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6, 47, 4,
+			0, 0, 0, 2, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 0, 0, 6, 86, 0, 0, 0, 0, 0, 0, 0, 86, 19,
+			109, 2, 28, 28, 65, 0, 105, 58, 0, 0, 0, 0, 0, 0, 110, 19, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0,
+			102, 19, 114, 2, 30, 30, 125, 0, 97, 58, 0, 0, 0, 0, 0, 0, 98, 19, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0,
+			0, 0, 114, 19, 119, 2, 32, 32, 150, 0, 85, 0, 0, 0, 0, 0, 0, 0, 121, 19, 122, 2, 33, 33, 55, 0, 117, 58, 0, 0,
+			0, 0, 0, 0, 125, 19, 123, 2, 33, 33, 140, 0, 97, 73, 0, 0, 0, 0, 0, 0, 135, 19, 134, 2, 29, 31, 140, 0, 97, 85,
+			0, 0, 0, 0, 0, 0, 137, 19, 135, 2, 29, 33, 135, 0, 86, 35, 0, 0, 0, 0, 0, 0, 93, 19, 149, 2, 28, 28, 65, 0,
+			35, 0, 0, 0, 0, 0, 0, 0, 139, 19, 150, 9, 0, 0, 0, 0, 117, 50, 0, 0, 0, 0, 0, 0, 119, 19, 151, 2, 33, 33,
+			55, 0, 85, 58, 0, 0, 0, 0, 0, 0, 131, 19, 152, 2, 33, 33, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 17, 21, 0, 0, 0, 0, 0, 0, 107, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 141, 19, 13, 2, 29, 29, 65, 0,
+			114, 0, 0, 0, 0, 0, 128, 0, 72, 0, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 32, 0, 143, 19, 35, 2, 28, 29,
+			65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 149, 19, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 153, 19, 37, 2,
+			31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 157, 19, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 161, 19,
+			40, 2, 33, 33, 55, 0, 100, 0, 0, 0, 16, 0, 3, 0, 169, 19, 72, 5, 0, 74, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0,
+			201, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 155, 19, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0,
+			0, 0, 151, 19, 114, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 147, 19, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0,
+			0, 0, 0, 0, 159, 19, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 163, 19, 123, 2, 33, 33, 140, 0, 97, 73,
+			0, 0, 0, 0, 32, 0, 165, 19, 134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 167, 19, 135, 2, 29, 33, 135, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 109, 108, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
+			0, 0, 0, 0, 196, 19, 13, 2, 28, 28, 65, 0, 114, 0, 0, 0, 16, 64, 132, 0, 137, 2, 34, 5, 0, 0, 0, 3, 97, 0,
+			0, 0, 0, 0, 0, 0, 202, 19, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 221, 19, 36, 2, 30, 30, 65, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 225, 19, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 231, 19, 39, 2, 32, 32,
+			65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 235, 19, 40, 2, 33, 33, 55, 0, 82, 0, 0, 0, 128, 0, 0, 0, 138, 0, 51, 3,
+			0, 0, 0, 6, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 32, 0, 229, 19,
+			112, 2, 31, 31, 135, 0, 73, 0, 0, 0, 0, 0, 0, 0, 227, 19, 113, 2, 31, 31, 65, 0, 101, 58, 0, 0, 0, 0, 32, 0,
+			223, 19, 114, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 32, 0, 219, 19, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0,
+			32, 0, 233, 19, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 32, 0, 237, 19, 123, 2, 33, 33, 140, 0, 97, 73, 0, 0,
+			0, 0, 32, 0, 239, 19, 134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 241, 19, 135, 2, 29, 33, 135, 0, 121, 0,
+			0, 0, 2, 0, 0, 0, 198, 19, 149, 2, 28, 28, 40, 0, 97, 35, 0, 0, 0, 0, 0, 0, 217, 19, 150, 2, 29, 29, 90, 0,
+			100, 35, 0, 0, 16, 0, 4, 0, 12, 3, 151, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 104, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 158, 22, 37, 2, 31, 31, 70, 0, 111, 0,
-			0, 0, 0, 0, 0, 0, 161, 22, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 163, 22, 40, 2, 33, 33, 65, 0,
-			116, 0, 0, 0, 8, 0, 3, 0, 193, 22, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 55, 6, 48, 4, 0, 71,
-			0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6, 49, 4, 0, 81, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 238, 22, 55, 3,
-			0, 0, 0, 7, 100, 0, 0, 0, 16, 0, 3, 0, 211, 22, 72, 5, 0, 47, 0, 5, 99, 0, 0, 0, 40, 0, 7, 0, 103, 6,
-			80, 4, 0, 79, 0, 2, 65, 0, 0, 0, 0, 0, 0, 0, 154, 22, 108, 2, 32, 32, 70, 0, 69, 0, 0, 0, 0, 0, 0, 0,
-			156, 22, 109, 2, 30, 30, 70, 0, 89, 0, 0, 0, 0, 0, 0, 0, 165, 22, 110, 2, 28, 28, 65, 0, 121, 0, 0, 0, 0, 0,
-			0, 0, 167, 22, 111, 2, 33, 33, 65, 0, 105, 58, 0, 0, 0, 0, 0, 0, 169, 22, 112, 2, 31, 31, 110, 0, 101, 58, 0, 0,
-			0, 0, 0, 0, 171, 22, 113, 2, 30, 30, 120, 0, 97, 58, 0, 0, 0, 0, 0, 0, 173, 22, 114, 2, 29, 29, 135, 0, 111, 58,
-			0, 0, 0, 0, 0, 0, 175, 22, 115, 2, 32, 32, 130, 0, 117, 58, 0, 0, 0, 0, 0, 0, 177, 22, 116, 2, 33, 33, 120, 0,
-			121, 58, 0, 0, 0, 0, 0, 0, 179, 22, 117, 2, 33, 33, 120, 0, 89, 58, 0, 0, 0, 0, 0, 0, 181, 22, 118, 2, 28, 28,
-			130, 0, 116, 115, 0, 0, 40, 0, 4, 0, 183, 22, 119, 4, 0, 0, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 34, 6, 120, 5,
-			0, 119, 0, 5, 116, 50, 0, 0, 8, 0, 3, 0, 206, 22, 121, 4, 0, 0, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 167, 6,
-			122, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 247, 19, 37, 2, 31, 31, 70, 0, 111, 0,
+			0, 0, 0, 0, 0, 0, 250, 19, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 252, 19, 40, 2, 33, 33, 65, 0,
+			116, 0, 0, 0, 8, 0, 3, 0, 26, 20, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 52, 6, 48, 4, 0, 71,
+			0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 113, 6, 49, 4, 0, 81, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 71, 20, 55, 3,
+			0, 0, 0, 7, 100, 0, 0, 0, 16, 0, 3, 0, 44, 20, 72, 5, 0, 47, 0, 5, 99, 0, 0, 0, 40, 0, 7, 0, 100, 6,
+			80, 4, 0, 79, 0, 2, 65, 0, 0, 0, 0, 0, 0, 0, 243, 19, 108, 2, 32, 32, 70, 0, 69, 0, 0, 0, 0, 0, 0, 0,
+			245, 19, 109, 2, 30, 30, 70, 0, 89, 0, 0, 0, 0, 0, 0, 0, 254, 19, 110, 2, 28, 28, 65, 0, 121, 0, 0, 0, 0, 0,
+			0, 0, 0, 20, 111, 2, 33, 33, 65, 0, 105, 58, 0, 0, 0, 0, 0, 0, 2, 20, 112, 2, 31, 31, 110, 0, 101, 58, 0, 0,
+			0, 0, 0, 0, 4, 20, 113, 2, 30, 30, 120, 0, 97, 58, 0, 0, 0, 0, 0, 0, 6, 20, 114, 2, 29, 29, 135, 0, 111, 58,
+			0, 0, 0, 0, 0, 0, 8, 20, 115, 2, 32, 32, 130, 0, 117, 58, 0, 0, 0, 0, 0, 0, 10, 20, 116, 2, 33, 33, 120, 0,
+			121, 58, 0, 0, 0, 0, 0, 0, 12, 20, 117, 2, 33, 33, 120, 0, 89, 58, 0, 0, 0, 0, 0, 0, 14, 20, 118, 2, 28, 28,
+			130, 0, 116, 115, 0, 0, 40, 0, 4, 0, 16, 20, 119, 4, 0, 0, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 31, 6, 120, 5,
+			0, 119, 0, 5, 116, 50, 0, 0, 8, 0, 3, 0, 39, 20, 121, 4, 0, 0, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 142, 6,
+			122, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0,
 			108, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 1, 23, 13, 2, 28, 28, 60, 0, 114, 0, 0, 0, 192, 0, 132, 0, 72, 23, 34, 3,
-			0, 0, 40, 0, 97, 0, 0, 0, 0, 0, 0, 0, 3, 23, 35, 2, 29, 29, 60, 0, 101, 0, 0, 0, 0, 0, 0, 0, 9, 23,
-			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 25, 23, 37, 2, 31, 31, 50, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			32, 23, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0, 0, 0, 0, 0, 40, 23, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0,
-			3, 0, 80, 23, 47, 4, 0, 72, 0, 2, 108, 0, 0, 0, 2, 0, 0, 0, 192, 23, 55, 2, 28, 28, 150, 0, 119, 0, 0, 0,
-			0, 0, 0, 0, 44, 23, 58, 2, 33, 33, 90, 0, 100, 0, 0, 0, 16, 0, 3, 0, 106, 23, 72, 5, 0, 47, 0, 5, 65, 0,
-			0, 0, 0, 0, 0, 0, 5, 23, 108, 2, 29, 29, 40, 0, 97, 58, 0, 0, 0, 0, 32, 0, 7, 23, 109, 2, 29, 29, 175, 0,
-			69, 0, 0, 0, 0, 0, 0, 0, 14, 23, 110, 2, 30, 30, 40, 0, 101, 58, 0, 0, 0, 0, 0, 0, 19, 23, 111, 2, 30, 30,
-			150, 0, 101, 101, 0, 0, 0, 0, 32, 0, 21, 23, 112, 2, 30, 30, 130, 0, 101, 65, 0, 0, 0, 0, 32, 0, 23, 23, 113, 2,
-			30, 29, 145, 0, 73, 0, 0, 0, 0, 0, 0, 0, 28, 23, 114, 2, 31, 31, 35, 0, 105, 58, 0, 0, 0, 0, 0, 0, 30, 23,
-			115, 2, 31, 31, 150, 0, 79, 0, 0, 0, 0, 0, 0, 0, 34, 23, 116, 2, 32, 32, 35, 0, 111, 58, 0, 0, 0, 0, 0, 0,
-			36, 23, 117, 2, 32, 32, 150, 0, 85, 0, 0, 0, 0, 0, 0, 0, 38, 23, 118, 2, 33, 33, 35, 0, 117, 58, 0, 0, 0, 0,
-			0, 0, 42, 23, 119, 2, 33, 33, 165, 0, 87, 0, 0, 0, 0, 0, 0, 0, 46, 23, 120, 2, 33, 33, 50, 0, 97, 105, 0, 0,
-			0, 0, 32, 0, 48, 23, 121, 2, 29, 31, 155, 0, 101, 105, 0, 0, 0, 0, 32, 0, 50, 23, 122, 2, 30, 31, 150, 0, 97, 117,
-			0, 0, 0, 0, 32, 0, 52, 23, 123, 2, 29, 33, 150, 0, 117, 111, 0, 0, 0, 0, 32, 0, 54, 23, 124, 2, 33, 29, 150, 0,
-			111, 105, 0, 0, 0, 0, 32, 0, 56, 23, 125, 2, 32, 31, 145, 0, 117, 105, 0, 0, 0, 0, 32, 0, 58, 23, 126, 2, 33, 31,
-			145, 0, 105, 101, 0, 0, 0, 0, 32, 0, 60, 23, 127, 2, 31, 30, 145, 0, 97, 85, 0, 0, 0, 0, 0, 0, 62, 23, 128, 2,
-			29, 33, 135, 0, 101, 85, 0, 0, 0, 0, 0, 0, 64, 23, 129, 2, 30, 33, 130, 0, 111, 85, 0, 0, 0, 0, 0, 0, 66, 23,
-			130, 2, 32, 33, 130, 0, 97, 73, 0, 0, 0, 0, 0, 0, 68, 23, 131, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0, 0, 0,
-			70, 23, 132, 2, 30, 31, 130, 0, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6, 133, 4, 0, 0, 0, 2, 116, 59, 0, 0, 8, 2,
-			7, 0, 93, 23, 134, 4, 0, 135, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 133, 23, 135, 5, 0, 134, 0, 5, 110, 59, 0, 0,
-			0, 2, 0, 0, 160, 23, 136, 3, 0, 0, 0, 0, 108, 59, 0, 0, 0, 2, 5, 0, 188, 23, 137, 3, 0, 0, 40, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 108, 118, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
-			0, 0, 197, 23, 13, 2, 28, 28, 60, 0, 97, 0, 0, 0, 0, 0, 0, 0, 213, 23, 35, 2, 29, 29, 60, 0, 101, 0, 0, 0,
-			0, 0, 0, 0, 205, 23, 36, 2, 30, 30, 60, 0, 105, 0, 0, 0, 0, 0, 0, 0, 199, 23, 37, 2, 31, 31, 55, 0, 111, 0,
-			0, 0, 0, 0, 0, 0, 222, 23, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0, 0, 0, 0, 0, 226, 23, 40, 2, 33, 33, 55, 0,
-			116, 0, 0, 0, 8, 0, 68, 0, 15, 24, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 28, 24, 48, 4, 0, 71,
-			0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 44, 24, 49, 4, 0, 81, 0, 2, 82, 50, 0, 0, 128, 0, 0, 0, 246, 23, 52, 3,
-			0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 202, 23, 108, 2, 31, 31, 150, 0, 101, 58, 0, 0, 0, 0, 0, 0, 207, 23,
-			109, 2, 30, 30, 165, 0, 38, 0, 0, 0, 0, 0, 0, 0, 209, 23, 110, 2, 29, 29, 60, 0, 38, 58, 0, 0, 0, 0, 0, 0,
-			211, 23, 111, 2, 29, 29, 165, 0, 97, 35, 0, 0, 0, 0, 0, 0, 218, 23, 112, 2, 29, 29, 60, 0, 97, 58, 0, 0, 0, 0,
-			0, 0, 216, 23, 113, 2, 29, 29, 175, 0, 111, 58, 0, 0, 0, 0, 0, 0, 224, 23, 114, 2, 32, 32, 165, 0, 117, 58, 0, 0,
-			0, 0, 0, 0, 228, 23, 115, 2, 33, 33, 165, 0, 97, 105, 0, 0, 0, 0, 32, 0, 230, 23, 116, 2, 29, 31, 155, 0, 101, 105,
-			0, 0, 0, 0, 32, 0, 232, 23, 117, 2, 30, 31, 150, 0, 97, 117, 0, 0, 0, 0, 32, 0, 234, 23, 118, 2, 29, 33, 150, 0,
-			117, 111, 0, 0, 0, 0, 32, 0, 236, 23, 119, 2, 33, 29, 150, 0, 111, 105, 0, 0, 0, 0, 32, 0, 238, 23, 120, 2, 32, 31,
-			145, 0, 117, 105, 0, 0, 0, 0, 32, 0, 240, 23, 121, 2, 33, 31, 145, 0, 105, 101, 0, 0, 0, 0, 32, 0, 242, 23, 122, 2,
-			31, 30, 145, 0, 105, 117, 0, 0, 0, 0, 32, 0, 244, 23, 123, 2, 31, 33, 145, 0, 116, 115, 0, 0, 40, 0, 68, 0, 2, 24,
-			124, 4, 0, 0, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 64, 24, 125, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 112, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 74, 24, 35, 2,
-			29, 29, 95, 0, 105, 0, 0, 0, 0, 0, 0, 0, 88, 24, 37, 2, 31, 31, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 93, 24,
-			40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0, 117, 24, 47, 4, 0, 72, 0, 2, 82, 0, 0, 0, 128, 0, 0, 0,
-			103, 24, 51, 3, 0, 0, 0, 6, 119, 0, 0, 0, 0, 0, 0, 0, 209, 24, 58, 3, 0, 0, 0, 7, 100, 0, 0, 0, 16, 0,
-			3, 0, 143, 24, 72, 5, 0, 47, 0, 5, 102, 0, 0, 0, 8, 0, 2, 0, 215, 24, 83, 6, 0, 84, 0, 3, 97, 35, 0, 0,
-			0, 0, 0, 0, 77, 24, 108, 2, 29, 29, 85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 81, 24, 109, 2, 30, 30, 90, 0, 69, 35,
-			0, 0, 0, 0, 0, 0, 86, 24, 110, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 91, 24, 111, 2, 32, 32, 90, 0,
-			121, 0, 0, 0, 0, 0, 0, 0, 95, 24, 112, 2, 31, 31, 90, 0, 69, 126, 0, 0, 0, 0, 0, 0, 99, 24, 113, 2, 30, 33,
-			125, 0, 79, 126, 0, 0, 0, 0, 0, 0, 101, 24, 114, 2, 32, 32, 125, 0, 116, 59, 0, 0, 8, 2, 7, 0, 130, 24, 115, 4,
-			0, 116, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 170, 24, 116, 5, 0, 115, 0, 5, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6,
-			117, 4, 0, 118, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 197, 24, 118, 5, 0, 117, 0, 5, 116, 115, 59, 0, 40, 2, 7, 0,
-			203, 24, 119, 4, 0, 120, 0, 2, 100, 122, 59, 0, 48, 2, 6, 0, 84, 3, 120, 5, 0, 119, 0, 5, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 34, 0, 0, 0, 0, 0, 0, 115, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 239, 24,
-			35, 2, 29, 29, 60, 0, 101, 0, 0, 0, 0, 0, 0, 0, 235, 24, 36, 2, 30, 30, 60, 0, 105, 0, 0, 0, 0, 0, 0, 0,
-			227, 24, 37, 2, 31, 31, 50, 0, 111, 0, 0, 0, 0, 0, 0, 0, 247, 24, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 251, 24, 40, 2, 33, 33, 55, 0, 114, 45, 0, 0, 0, 0, 0, 0, 9, 25, 44, 2, 28, 28, 100, 0, 108, 45, 0, 0,
-			0, 0, 0, 0, 51, 25, 45, 2, 28, 28, 70, 0, 116, 0, 0, 0, 8, 0, 4, 0, 62, 25, 47, 4, 0, 72, 0, 2, 112, 0,
-			0, 0, 8, 0, 1, 0, 75, 25, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 29, 7, 49, 4, 0, 0, 0, 2,
-			108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 220, 6, 58, 3, 0, 0,
-			0, 7, 105, 58, 0, 0, 0, 0, 0, 0, 230, 24, 121, 2, 31, 31, 130, 0, 38, 0, 0, 0, 0, 0, 0, 0, 233, 24, 122, 2,
-			30, 30, 60, 0, 101, 58, 0, 0, 0, 0, 0, 0, 237, 24, 123, 2, 30, 30, 145, 0, 97, 58, 0, 0, 0, 0, 0, 0, 245, 24,
-			124, 2, 29, 29, 145, 0, 111, 58, 0, 0, 0, 0, 0, 0, 249, 24, 125, 2, 32, 32, 145, 0, 117, 58, 0, 0, 0, 0, 0, 0,
-			253, 24, 126, 2, 33, 33, 140, 0, 97, 85, 0, 0, 0, 0, 0, 0, 255, 24, 127, 2, 29, 33, 135, 0, 101, 85, 0, 0, 0, 0,
-			0, 0, 1, 25, 128, 2, 30, 33, 130, 0, 111, 85, 0, 0, 0, 0, 0, 0, 3, 25, 129, 2, 32, 33, 130, 0, 97, 73, 0, 0,
-			0, 0, 0, 0, 5, 25, 130, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0, 0, 0, 7, 25, 131, 2, 30, 31, 130, 0, 114, 58,
-			0, 0, 0, 0, 0, 0, 14, 25, 132, 2, 28, 28, 150, 0, 82, 94, 0, 0, 48, 0, 6, 0, 20, 25, 133, 7, 0, 0, 0, 6,
-			82, 94, 47, 0, 48, 0, 6, 0, 35, 25, 134, 7, 0, 0, 0, 6, 108, 58, 0, 0, 0, 0, 0, 0, 56, 25, 135, 2, 28, 28,
-			125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 99, 115, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0,
-			0, 0, 0, 0, 0, 0, 91, 25, 36, 2, 30, 30, 60, 0, 111, 0, 0, 0, 0, 0, 0, 0, 95, 25, 39, 2, 32, 32, 60, 0,
-			114, 45, 0, 0, 0, 0, 0, 0, 101, 25, 44, 2, 28, 28, 60, 0, 97, 58, 0, 0, 0, 0, 0, 0, 93, 25, 124, 2, 29, 29,
-			145, 0, 117, 58, 0, 0, 0, 0, 0, 0, 97, 25, 126, 2, 33, 33, 140, 0, 111, 85, 0, 0, 0, 0, 0, 0, 99, 25, 129, 2,
-			32, 33, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 35, 0, 0, 0, 0, 0, 0, 104, 114,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			64, 0, 0, 0, 0, 0, 0, 0, 199, 25, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 203, 25, 35, 2, 29, 29,
-			80, 0, 101, 0, 0, 0, 0, 0, 0, 0, 212, 25, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 214, 25, 37, 2,
-			31, 31, 60, 0, 111, 0, 0, 0, 0, 0, 0, 0, 221, 25, 39, 2, 32, 32, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0, 223, 25,
-			40, 2, 33, 33, 70, 0, 116, 0, 0, 0, 8, 0, 3, 0, 230, 25, 47, 4, 0, 72, 0, 2, 82, 0, 0, 0, 128, 0, 0, 0,
-			119, 0, 51, 3, 0, 0, 0, 6, 100, 0, 0, 0, 16, 0, 4, 0, 243, 25, 72, 5, 0, 47, 0, 5, 100, 90, 0, 0, 48, 0,
-			6, 0, 158, 25, 75, 5, 0, 76, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 119, 25, 76, 4, 0, 75, 0, 2, 100, 90, 59, 0,
-			48, 2, 6, 0, 179, 25, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 128, 25, 78, 4, 0, 77, 0, 2, 90, 0,
-			0, 0, 48, 0, 6, 0, 140, 25, 90, 7, 0, 91, 0, 6, 83, 0, 0, 0, 40, 0, 6, 0, 106, 25, 91, 6, 0, 90, 0, 3,
-			120, 0, 0, 0, 8, 0, 8, 0, 14, 26, 101, 6, 0, 100, 0, 3, 69, 0, 0, 0, 0, 0, 0, 0, 210, 25, 109, 2, 30, 30,
-			70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 208, 25, 122, 2, 29, 29, 70, 0, 97, 73, 0, 0, 0, 0, 0, 0, 228, 25, 130, 2,
-			29, 31, 125, 0, 64, 50, 0, 0, 0, 0, 0, 0, 201, 25, 136, 2, 28, 28, 70, 0, 65, 0, 0, 0, 0, 0, 0, 0, 206, 25,
-			137, 2, 29, 29, 80, 0, 73, 0, 0, 0, 0, 0, 0, 0, 218, 25, 138, 2, 31, 31, 60, 0, 85, 0, 0, 0, 0, 0, 0, 0,
-			226, 25, 139, 2, 33, 33, 70, 0, 114, 42, 0, 0, 2, 0, 16, 0, 24, 26, 140, 2, 28, 28, 25, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 0, 0, 0, 0, 0, 0, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 90, 59, 0, 48, 2, 7, 0, 39, 26,
-			77, 5, 0, 78, 0, 5, 107, 94, 0, 0, 8, 0, 7, 0, 29, 26, 141, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 14, 37, 0, 0, 0, 0, 0, 0, 115, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 8, 0, 3, 0, 80, 26, 47, 4,
-			0, 72, 0, 2, 100, 0, 0, 0, 16, 0, 4, 0, 93, 26, 72, 5, 0, 47, 0, 5, 100, 90, 0, 0, 48, 0, 6, 0, 135, 26,
-			75, 5, 0, 76, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 164, 26, 76, 4, 0, 75, 0, 2, 100, 90, 59, 0, 48, 2, 6, 0,
-			150, 26, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 170, 26, 78, 4, 0, 77, 0, 2, 90, 0, 0, 0, 48, 0,
-			6, 0, 179, 26, 90, 7, 0, 91, 0, 6, 83, 0, 0, 0, 40, 0, 6, 0, 197, 26, 91, 6, 0, 90, 0, 3, 38, 0, 0, 0,
-			0, 0, 0, 0, 62, 26, 122, 2, 29, 29, 70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 59, 26, 138, 2, 31, 31, 60, 0, 114, 42,
-			0, 0, 128, 0, 0, 0, 66, 26, 140, 3, 0, 0, 0, 6, 120, 35, 0, 0, 8, 0, 8, 0, 114, 26, 141, 6, 0, 0, 0, 3,
-			104, 35, 0, 0, 8, 0, 8, 0, 123, 26, 142, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 49, 1, 0, 0, 0, 0, 0, 0, 114, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 192, 0, 132, 0, 43, 27, 34, 3, 0, 0, 40, 0, 97, 0,
-			0, 0, 0, 0, 0, 0, 242, 27, 35, 2, 29, 29, 50, 0, 101, 0, 0, 0, 0, 0, 0, 0, 195, 27, 36, 2, 30, 30, 50, 0,
-			105, 0, 0, 0, 0, 0, 0, 0, 98, 27, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 177, 27, 39, 2, 32, 32,
-			50, 0, 117, 0, 0, 0, 0, 0, 0, 0, 186, 27, 40, 2, 33, 33, 40, 0, 116, 0, 0, 0, 8, 0, 3, 0, 117, 24, 47, 4,
-			0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 55, 6, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6,
-			49, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 5, 0, 241, 26, 55, 3, 0, 0, 20, 7, 108, 94, 0, 0, 0, 2, 5, 0,
-			245, 26, 61, 3, 0, 0, 40, 0, 100, 0, 0, 0, 16, 0, 3, 0, 143, 24, 72, 5, 0, 0, 0, 5, 100, 90, 59, 0, 48, 2,
-			7, 0, 51, 27, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 65, 27, 78, 4, 0, 77, 0, 2, 103, 0, 0, 0,
-			16, 0, 8, 2, 210, 26, 81, 5, 0, 49, 0, 5, 115, 0, 0, 0, 40, 0, 4, 0, 249, 26, 89, 6, 0, 0, 0, 3, 115, 59,
-			0, 0, 40, 0, 4, 0, 128, 5, 95, 6, 0, 0, 0, 3, 120, 0, 0, 0, 8, 0, 8, 0, 231, 26, 101, 6, 0, 0, 0, 3,
-			110, 95, 0, 0, 16, 0, 4, 0, 220, 1, 108, 8, 0, 0, 0, 4, 110, 35, 0, 0, 16, 2, 7, 0, 3, 27, 109, 8, 0, 0,
-			0, 4, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6, 110, 4, 0, 0, 0, 2, 116, 59, 0, 0, 8, 2, 7, 0, 130, 24, 111, 4,
-			0, 0, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 170, 24, 112, 5, 0, 0, 0, 5, 109, 59, 0, 0, 16, 0, 1, 0, 71, 27,
-			113, 8, 0, 0, 0, 4, 73, 94, 0, 0, 2, 0, 16, 0, 91, 27, 114, 2, 31, 31, 35, 0, 121, 0, 0, 0, 0, 0, 0, 0,
-			110, 27, 115, 2, 31, 31, 50, 0, 73, 35, 0, 0, 0, 0, 0, 0, 103, 27, 116, 2, 31, 31, 40, 0, 73, 0, 0, 0, 0, 0,
-			0, 0, 112, 27, 117, 2, 31, 31, 40, 0, 73, 50, 0, 0, 0, 0, 0, 0, 121, 27, 118, 2, 31, 31, 40, 0, 73, 51, 0, 0,
-			0, 0, 0, 0, 127, 27, 119, 2, 31, 31, 40, 0, 106, 97, 0, 0, 0, 0, 0, 0, 212, 27, 120, 2, 31, 29, 90, 0, 69, 0,
-			0, 0, 0, 0, 0, 0, 138, 27, 121, 2, 30, 30, 50, 0, 69, 35, 0, 0, 0, 0, 0, 0, 140, 27, 122, 2, 30, 30, 50, 0,
-			69, 50, 0, 0, 0, 0, 0, 0, 149, 27, 123, 2, 30, 30, 40, 0, 69, 51, 0, 0, 0, 0, 0, 0, 166, 27, 124, 2, 30, 30,
-			40, 0, 69, 37, 0, 0, 0, 0, 0, 0, 175, 27, 125, 2, 0, 0, 90, 0, 86, 0, 0, 0, 2, 0, 0, 0, 5, 28, 126, 2,
-			29, 28, 40, 0, 79, 0, 0, 0, 0, 0, 0, 0, 180, 27, 127, 2, 32, 32, 40, 0, 56, 0, 0, 0, 0, 0, 0, 0, 192, 27,
-			128, 2, 32, 32, 50, 0, 117, 35, 0, 0, 0, 0, 0, 0, 188, 27, 129, 2, 33, 33, 40, 0, 117, 34, 0, 0, 0, 0, 0, 0,
-			190, 27, 130, 2, 33, 33, 75, 0, 106, 117, 0, 0, 0, 0, 0, 0, 210, 27, 131, 2, 33, 33, 95, 0, 106, 97, 35, 0, 0, 0,
-			0, 0, 220, 27, 132, 2, 31, 29, 90, 0, 86, 35, 0, 0, 2, 0, 0, 0, 227, 27, 133, 2, 29, 28, 40, 0, 65, 0, 0, 0,
-			0, 0, 0, 0, 240, 27, 134, 2, 29, 29, 50, 0, 89, 0, 0, 0, 2, 0, 0, 0, 238, 27, 135, 2, 33, 33, 70, 0, 97, 35,
-			0, 0, 0, 0, 0, 0, 17, 28, 136, 2, 29, 29, 50, 0, 82, 52, 0, 0, 0, 0, 0, 0, 19, 28, 137, 3, 0, 0, 0, 6,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 34, 0, 0, 0, 0, 0, 0, 98, 103, 0, 0, 0, 0,
+			0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 90, 20, 13, 2, 28, 28, 60, 0, 114, 0, 0, 0, 192, 0, 132, 0, 161, 20, 34, 3,
+			0, 0, 40, 0, 97, 0, 0, 0, 0, 0, 0, 0, 92, 20, 35, 2, 29, 29, 60, 0, 101, 0, 0, 0, 0, 0, 0, 0, 98, 20,
+			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 114, 20, 37, 2, 31, 31, 50, 0, 111, 0, 0, 0, 0, 0, 0, 0,
+			121, 20, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0, 0, 0, 0, 0, 129, 20, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0,
+			3, 0, 189, 20, 47, 4, 0, 72, 0, 2, 108, 0, 0, 0, 2, 0, 0, 0, 45, 21, 55, 2, 28, 28, 150, 0, 119, 0, 0, 0,
+			0, 0, 0, 0, 133, 20, 58, 2, 33, 33, 90, 0, 100, 0, 0, 0, 16, 0, 3, 0, 215, 20, 72, 5, 0, 47, 0, 5, 100, 90,
+			59, 0, 48, 2, 7, 0, 169, 20, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 183, 20, 78, 4, 0, 77, 0, 2,
+			65, 0, 0, 0, 0, 0, 0, 0, 94, 20, 108, 2, 29, 29, 40, 0, 97, 58, 0, 0, 0, 0, 32, 0, 96, 20, 109, 2, 29, 29,
+			175, 0, 69, 0, 0, 0, 0, 0, 0, 0, 103, 20, 110, 2, 30, 30, 40, 0, 101, 58, 0, 0, 0, 0, 0, 0, 108, 20, 111, 2,
+			30, 30, 150, 0, 101, 101, 0, 0, 0, 0, 32, 0, 110, 20, 112, 2, 30, 30, 130, 0, 101, 65, 0, 0, 0, 0, 32, 0, 112, 20,
+			113, 2, 30, 29, 145, 0, 73, 0, 0, 0, 0, 0, 0, 0, 117, 20, 114, 2, 31, 31, 35, 0, 105, 58, 0, 0, 0, 0, 0, 0,
+			119, 20, 115, 2, 31, 31, 150, 0, 79, 0, 0, 0, 0, 0, 0, 0, 123, 20, 116, 2, 32, 32, 35, 0, 111, 58, 0, 0, 0, 0,
+			0, 0, 125, 20, 117, 2, 32, 32, 150, 0, 85, 0, 0, 0, 0, 0, 0, 0, 127, 20, 118, 2, 33, 33, 35, 0, 117, 58, 0, 0,
+			0, 0, 0, 0, 131, 20, 119, 2, 33, 33, 165, 0, 87, 0, 0, 0, 0, 0, 0, 0, 135, 20, 120, 2, 33, 33, 50, 0, 97, 105,
+			0, 0, 0, 0, 32, 0, 137, 20, 121, 2, 29, 31, 155, 0, 101, 105, 0, 0, 0, 0, 32, 0, 139, 20, 122, 2, 30, 31, 150, 0,
+			97, 117, 0, 0, 0, 0, 32, 0, 141, 20, 123, 2, 29, 33, 150, 0, 117, 111, 0, 0, 0, 0, 32, 0, 143, 20, 124, 2, 33, 29,
+			150, 0, 111, 105, 0, 0, 0, 0, 32, 0, 145, 20, 125, 2, 32, 31, 145, 0, 117, 105, 0, 0, 0, 0, 32, 0, 147, 20, 126, 2,
+			33, 31, 145, 0, 105, 101, 0, 0, 0, 0, 32, 0, 149, 20, 127, 2, 31, 30, 145, 0, 97, 85, 0, 0, 0, 0, 0, 0, 151, 20,
+			128, 2, 29, 33, 135, 0, 101, 85, 0, 0, 0, 0, 0, 0, 153, 20, 129, 2, 30, 33, 130, 0, 111, 85, 0, 0, 0, 0, 0, 0,
+			155, 20, 130, 2, 32, 33, 130, 0, 97, 73, 0, 0, 0, 0, 0, 0, 157, 20, 131, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0,
+			0, 0, 159, 20, 132, 2, 30, 31, 130, 0, 116, 115, 0, 0, 40, 0, 4, 0, 18, 6, 133, 4, 0, 0, 0, 2, 116, 59, 0, 0,
+			8, 2, 7, 0, 202, 20, 134, 4, 0, 135, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 242, 20, 135, 5, 0, 134, 0, 5, 110, 59,
+			0, 0, 0, 2, 0, 0, 13, 21, 136, 3, 0, 0, 0, 0, 108, 59, 0, 0, 0, 2, 5, 0, 41, 21, 137, 3, 0, 0, 40, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 108, 118, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
-			0, 0, 0, 0, 42, 28, 13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0,
-			0, 0, 0, 0, 0, 0, 47, 28, 35, 2, 29, 29, 75, 0, 101, 0, 0, 0, 0, 0, 0, 0, 37, 28, 36, 2, 30, 30, 70, 0,
-			105, 0, 0, 0, 0, 0, 0, 0, 31, 28, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 60, 28, 39, 2, 32, 32,
-			70, 0, 117, 0, 0, 0, 0, 0, 0, 0, 65, 28, 40, 2, 33, 33, 70, 0, 108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3,
-			0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 82, 1, 64, 3, 0, 0, 0, 7, 120, 0, 0, 0, 8, 0, 8, 0, 237, 5,
-			101, 6, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 14, 0, 0, 0, 0, 103, 35, 0, 0, 16, 0, 8, 2,
-			210, 26, 121, 5, 0, 0, 0, 5, 103, 59, 0, 0, 16, 2, 8, 0, 70, 28, 122, 5, 0, 49, 0, 5, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 3, 0, 0, 0, 0, 0, 0, 105, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 9, 0, 0, 25, 0, 97, 0, 0, 0, 0, 0, 0, 0, 91, 28, 35, 2, 29, 29, 80, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			99, 28, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 112, 28, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0,
-			0, 0, 121, 28, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 134, 28, 40, 2, 33, 33, 75, 0, 108, 94, 0, 0,
-			0, 0, 0, 0, 54, 1, 61, 3, 0, 0, 65, 7, 97, 47, 0, 0, 0, 0, 0, 0, 94, 28, 108, 2, 28, 28, 70, 0, 69, 0,
-			0, 0, 0, 0, 0, 0, 109, 28, 109, 2, 30, 30, 72, 0, 79, 0, 0, 0, 0, 0, 0, 0, 131, 28, 110, 2, 32, 32, 75, 0,
-			85, 0, 0, 0, 0, 0, 0, 0, 137, 28, 111, 2, 33, 33, 70, 0, 97, 85, 0, 0, 0, 0, 0, 0, 139, 28, 114, 2, 29, 32,
-			150, 0, 97, 73, 0, 0, 0, 0, 0, 0, 141, 28, 117, 2, 29, 31, 125, 0, 111, 73, 0, 0, 0, 0, 0, 0, 143, 28, 120, 2,
-			32, 31, 115, 0, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6, 123, 4, 0, 123, 0, 2, 101, 47, 0, 0, 0, 0, 0, 0, 102, 28,
-			124, 2, 30, 30, 70, 0, 105, 35, 0, 0, 0, 0, 0, 0, 115, 28, 125, 2, 31, 31, 72, 0, 73, 0, 0, 0, 0, 0, 0, 0,
-			118, 28, 126, 2, 31, 31, 70, 0, 111, 47, 0, 0, 0, 0, 0, 0, 124, 28, 127, 2, 32, 32, 70, 0, 100, 122, 0, 0, 48, 0,
-			4, 0, 34, 6, 128, 5, 0, 88, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1, 0, 0,
+			0, 0, 0, 0, 50, 21, 13, 2, 28, 28, 60, 0, 97, 0, 0, 0, 0, 0, 0, 0, 66, 21, 35, 2, 29, 29, 60, 0, 101, 0,
+			0, 0, 0, 0, 0, 0, 58, 21, 36, 2, 30, 30, 60, 0, 105, 0, 0, 0, 0, 0, 0, 0, 52, 21, 37, 2, 31, 31, 55, 0,
+			111, 0, 0, 0, 0, 0, 0, 0, 75, 21, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0, 0, 0, 0, 0, 79, 21, 40, 2, 33, 33,
+			55, 0, 116, 0, 0, 0, 8, 0, 68, 0, 124, 21, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 137, 21, 48, 4,
+			0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 153, 21, 49, 4, 0, 81, 0, 2, 82, 50, 0, 0, 128, 0, 0, 0, 99, 21,
+			52, 3, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 55, 21, 108, 2, 31, 31, 150, 0, 101, 58, 0, 0, 0, 0, 0, 0,
+			60, 21, 109, 2, 30, 30, 165, 0, 38, 0, 0, 0, 0, 0, 0, 0, 62, 21, 110, 2, 29, 29, 60, 0, 38, 58, 0, 0, 0, 0,
+			0, 0, 64, 21, 111, 2, 29, 29, 165, 0, 97, 35, 0, 0, 0, 0, 0, 0, 71, 21, 112, 2, 29, 29, 60, 0, 97, 58, 0, 0,
+			0, 0, 0, 0, 69, 21, 113, 2, 29, 29, 175, 0, 111, 58, 0, 0, 0, 0, 0, 0, 77, 21, 114, 2, 32, 32, 165, 0, 117, 58,
+			0, 0, 0, 0, 0, 0, 81, 21, 115, 2, 33, 33, 165, 0, 97, 105, 0, 0, 0, 0, 32, 0, 83, 21, 116, 2, 29, 31, 155, 0,
+			101, 105, 0, 0, 0, 0, 32, 0, 85, 21, 117, 2, 30, 31, 150, 0, 97, 117, 0, 0, 0, 0, 32, 0, 87, 21, 118, 2, 29, 33,
+			150, 0, 117, 111, 0, 0, 0, 0, 32, 0, 89, 21, 119, 2, 33, 29, 150, 0, 111, 105, 0, 0, 0, 0, 32, 0, 91, 21, 120, 2,
+			32, 31, 145, 0, 117, 105, 0, 0, 0, 0, 32, 0, 93, 21, 121, 2, 33, 31, 145, 0, 105, 101, 0, 0, 0, 0, 32, 0, 95, 21,
+			122, 2, 31, 30, 145, 0, 105, 117, 0, 0, 0, 0, 32, 0, 97, 21, 123, 2, 31, 33, 145, 0, 116, 115, 0, 0, 40, 0, 68, 0,
+			111, 21, 124, 4, 0, 0, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 173, 21, 125, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 0, 0, 110, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 183, 21,
+			13, 2, 28, 28, 62, 0, 114, 0, 0, 0, 128, 0, 0, 0, 138, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0,
+			214, 21, 35, 2, 29, 29, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 185, 21, 37, 2, 31, 31, 65, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 193, 21, 40, 2, 33, 33, 75, 0, 116, 0, 0, 0, 8, 0, 4, 0, 13, 22, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 33, 22, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 113, 6, 49, 4, 0, 0, 0, 2, 98, 0,
+			0, 0, 16, 0, 1, 0, 42, 22, 71, 5, 0, 48, 0, 5, 100, 0, 0, 0, 16, 0, 4, 0, 22, 22, 72, 5, 0, 47, 0, 5,
+			122, 0, 0, 0, 48, 0, 4, 0, 62, 22, 88, 7, 0, 89, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 53, 22, 89, 6, 0, 88,
+			0, 3, 81, 0, 0, 0, 16, 0, 8, 0, 242, 21, 100, 7, 0, 101, 0, 6, 73, 0, 0, 0, 0, 0, 0, 0, 187, 21, 108, 2,
+			31, 31, 65, 0, 121, 0, 0, 0, 0, 0, 0, 0, 189, 21, 109, 2, 33, 33, 90, 0, 56, 0, 0, 0, 0, 0, 0, 0, 191, 21,
+			110, 2, 33, 33, 70, 0, 69, 0, 0, 0, 0, 0, 0, 0, 195, 21, 111, 2, 30, 30, 70, 0, 69, 50, 0, 0, 0, 0, 0, 0,
+			197, 21, 112, 2, 30, 30, 70, 0, 79, 0, 0, 0, 0, 0, 0, 0, 200, 21, 113, 2, 32, 32, 70, 0, 79, 58, 0, 0, 0, 0,
+			0, 0, 202, 21, 114, 2, 32, 32, 105, 0, 97, 58, 0, 0, 0, 0, 0, 0, 204, 21, 115, 2, 29, 29, 105, 0, 65, 0, 0, 0,
+			0, 0, 0, 0, 216, 21, 116, 2, 29, 29, 75, 0, 65, 126, 0, 0, 0, 0, 0, 0, 176, 16, 117, 2, 29, 29, 95, 0, 79, 126,
+			0, 0, 0, 0, 0, 0, 221, 21, 118, 2, 32, 32, 95, 0, 101, 58, 0, 0, 0, 0, 0, 0, 223, 21, 119, 2, 30, 31, 95, 0,
+			101, 35, 0, 0, 0, 0, 0, 0, 225, 21, 120, 2, 30, 31, 95, 0, 89, 58, 0, 0, 0, 0, 0, 0, 228, 21, 121, 2, 28, 28,
+			110, 0, 111, 58, 0, 0, 0, 0, 0, 0, 230, 21, 122, 2, 32, 33, 75, 0, 69, 73, 0, 0, 0, 0, 0, 0, 232, 21, 123, 2,
+			29, 31, 105, 0, 87, 121, 0, 0, 0, 0, 0, 0, 234, 21, 124, 2, 28, 33, 110, 0, 86, 85, 0, 0, 0, 0, 0, 0, 236, 21,
+			125, 2, 29, 32, 110, 0, 101, 85, 0, 0, 0, 0, 0, 0, 238, 21, 126, 2, 30, 33, 110, 0, 121, 85, 0, 0, 0, 0, 0, 0,
+			240, 21, 127, 2, 33, 33, 110, 0, 33, 0, 0, 0, 0, 0, 0, 0, 10, 22, 128, 0, 10, 0, 12, 1, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 112, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 73, 22,
+			35, 2, 29, 29, 95, 0, 105, 0, 0, 0, 0, 0, 0, 0, 87, 22, 37, 2, 31, 31, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0,
+			92, 22, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0, 116, 22, 47, 4, 0, 72, 0, 2, 82, 0, 0, 0, 128, 0,
+			0, 0, 102, 22, 51, 3, 0, 0, 0, 6, 119, 0, 0, 0, 0, 0, 0, 0, 208, 22, 58, 3, 0, 0, 0, 7, 100, 0, 0, 0,
+			16, 0, 3, 0, 142, 22, 72, 5, 0, 47, 0, 5, 102, 0, 0, 0, 8, 0, 2, 0, 214, 22, 83, 6, 0, 84, 0, 3, 97, 35,
+			0, 0, 0, 0, 0, 0, 76, 22, 108, 2, 29, 29, 85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 80, 22, 109, 2, 30, 30, 90, 0,
+			69, 35, 0, 0, 0, 0, 0, 0, 85, 22, 110, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 90, 22, 111, 2, 32, 32,
+			90, 0, 121, 0, 0, 0, 0, 0, 0, 0, 94, 22, 112, 2, 31, 31, 90, 0, 69, 126, 0, 0, 0, 0, 0, 0, 98, 22, 113, 2,
+			30, 33, 125, 0, 79, 126, 0, 0, 0, 0, 0, 0, 100, 22, 114, 2, 32, 32, 125, 0, 116, 59, 0, 0, 8, 2, 7, 0, 129, 22,
+			115, 4, 0, 116, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 169, 22, 116, 5, 0, 115, 0, 5, 116, 115, 0, 0, 40, 0, 4, 0,
+			18, 6, 117, 4, 0, 118, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 196, 22, 118, 5, 0, 117, 0, 5, 116, 115, 59, 0, 40, 2,
+			7, 0, 202, 22, 119, 4, 0, 120, 0, 2, 100, 122, 59, 0, 48, 2, 6, 0, 81, 3, 120, 5, 0, 119, 0, 5, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 0, 0, 0, 115, 107, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0,
+			238, 22, 35, 2, 29, 29, 60, 0, 101, 0, 0, 0, 0, 0, 0, 0, 234, 22, 36, 2, 30, 30, 60, 0, 105, 0, 0, 0, 0, 0,
+			0, 0, 226, 22, 37, 2, 31, 31, 50, 0, 111, 0, 0, 0, 0, 0, 0, 0, 246, 22, 39, 2, 32, 32, 60, 0, 117, 0, 0, 0,
+			0, 0, 0, 0, 250, 22, 40, 2, 33, 33, 55, 0, 114, 45, 0, 0, 0, 0, 0, 0, 8, 23, 44, 2, 28, 28, 100, 0, 108, 45,
+			0, 0, 0, 0, 0, 0, 50, 23, 45, 2, 28, 28, 70, 0, 116, 0, 0, 0, 8, 0, 4, 0, 61, 23, 47, 4, 0, 72, 0, 2,
+			112, 0, 0, 0, 8, 0, 1, 0, 74, 23, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 4, 7, 49, 4, 0, 0,
+			0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 195, 6, 58, 3,
+			0, 0, 0, 7, 105, 58, 0, 0, 0, 0, 0, 0, 229, 22, 121, 2, 31, 31, 130, 0, 38, 0, 0, 0, 0, 0, 0, 0, 232, 22,
+			122, 2, 30, 30, 60, 0, 101, 58, 0, 0, 0, 0, 0, 0, 236, 22, 123, 2, 30, 30, 145, 0, 97, 58, 0, 0, 0, 0, 0, 0,
+			244, 22, 124, 2, 29, 29, 145, 0, 111, 58, 0, 0, 0, 0, 0, 0, 248, 22, 125, 2, 32, 32, 145, 0, 117, 58, 0, 0, 0, 0,
+			0, 0, 252, 22, 126, 2, 33, 33, 140, 0, 97, 85, 0, 0, 0, 0, 0, 0, 254, 22, 127, 2, 29, 33, 135, 0, 101, 85, 0, 0,
+			0, 0, 0, 0, 0, 23, 128, 2, 30, 33, 130, 0, 111, 85, 0, 0, 0, 0, 0, 0, 2, 23, 129, 2, 32, 33, 130, 0, 97, 73,
+			0, 0, 0, 0, 0, 0, 4, 23, 130, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0, 0, 0, 6, 23, 131, 2, 30, 31, 130, 0,
+			114, 58, 0, 0, 0, 0, 0, 0, 13, 23, 132, 2, 28, 28, 150, 0, 82, 94, 0, 0, 48, 0, 6, 0, 19, 23, 133, 7, 0, 0,
+			0, 6, 82, 94, 47, 0, 48, 0, 6, 0, 34, 23, 134, 7, 0, 0, 0, 6, 108, 58, 0, 0, 0, 0, 0, 0, 55, 23, 135, 2,
+			28, 28, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 30, 0, 0, 0, 0, 0, 0, 99, 115,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			101, 0, 0, 0, 0, 0, 0, 0, 90, 23, 36, 2, 30, 30, 60, 0, 111, 0, 0, 0, 0, 0, 0, 0, 94, 23, 39, 2, 32, 32,
+			60, 0, 114, 45, 0, 0, 0, 0, 0, 0, 100, 23, 44, 2, 28, 28, 60, 0, 97, 58, 0, 0, 0, 0, 0, 0, 92, 23, 124, 2,
+			29, 29, 145, 0, 117, 58, 0, 0, 0, 0, 0, 0, 96, 23, 126, 2, 33, 33, 140, 0, 111, 85, 0, 0, 0, 0, 0, 0, 98, 23,
+			129, 2, 32, 33, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 30, 0, 0, 0, 0, 0, 0,
+			104, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 198, 23, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 202, 23, 35, 2,
+			29, 29, 80, 0, 101, 0, 0, 0, 0, 0, 0, 0, 211, 23, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 213, 23,
+			37, 2, 31, 31, 60, 0, 111, 0, 0, 0, 0, 0, 0, 0, 220, 23, 39, 2, 32, 32, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0,
+			222, 23, 40, 2, 33, 33, 70, 0, 116, 0, 0, 0, 8, 0, 3, 0, 229, 23, 47, 4, 0, 72, 0, 2, 82, 0, 0, 0, 128, 0,
+			0, 0, 120, 0, 51, 3, 0, 0, 0, 6, 100, 0, 0, 0, 16, 0, 4, 0, 242, 23, 72, 5, 0, 47, 0, 5, 100, 90, 0, 0,
+			48, 0, 6, 0, 157, 23, 75, 5, 0, 76, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 118, 23, 76, 4, 0, 75, 0, 2, 100, 90,
+			59, 0, 48, 2, 6, 0, 178, 23, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 127, 23, 78, 4, 0, 77, 0, 2,
+			90, 0, 0, 0, 48, 0, 6, 0, 139, 23, 90, 7, 0, 91, 0, 6, 83, 0, 0, 0, 40, 0, 6, 0, 105, 23, 91, 6, 0, 90,
+			0, 3, 120, 0, 0, 0, 8, 0, 8, 0, 13, 24, 101, 6, 0, 100, 0, 3, 69, 0, 0, 0, 0, 0, 0, 0, 209, 23, 109, 2,
+			30, 30, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 207, 23, 122, 2, 29, 29, 70, 0, 97, 73, 0, 0, 0, 0, 0, 0, 227, 23,
+			130, 2, 29, 31, 125, 0, 64, 50, 0, 0, 0, 0, 0, 0, 200, 23, 136, 2, 28, 28, 70, 0, 65, 0, 0, 0, 0, 0, 0, 0,
+			205, 23, 137, 2, 29, 29, 80, 0, 73, 0, 0, 0, 0, 0, 0, 0, 217, 23, 138, 2, 31, 31, 60, 0, 85, 0, 0, 0, 0, 0,
+			0, 0, 225, 23, 139, 2, 33, 33, 70, 0, 114, 42, 0, 0, 2, 0, 16, 0, 23, 24, 140, 2, 28, 28, 25, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0, 0, 0, 0, 109, 107, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 90, 59, 0, 48, 2, 7, 0,
+			38, 24, 77, 5, 0, 78, 0, 5, 107, 94, 0, 0, 8, 0, 7, 0, 28, 24, 141, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 0, 0, 0, 0, 0, 0, 115, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 8, 0, 3, 0, 79, 24,
+			47, 4, 0, 72, 0, 2, 100, 0, 0, 0, 16, 0, 4, 0, 92, 24, 72, 5, 0, 47, 0, 5, 100, 90, 0, 0, 48, 0, 6, 0,
+			134, 24, 75, 5, 0, 76, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 163, 24, 76, 4, 0, 75, 0, 2, 100, 90, 59, 0, 48, 2,
+			6, 0, 149, 24, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 169, 24, 78, 4, 0, 77, 0, 2, 90, 0, 0, 0,
+			48, 0, 6, 0, 178, 24, 90, 7, 0, 91, 0, 6, 83, 0, 0, 0, 40, 0, 6, 0, 196, 24, 91, 6, 0, 90, 0, 3, 38, 0,
+			0, 0, 0, 0, 0, 0, 61, 24, 122, 2, 29, 29, 70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 58, 24, 138, 2, 31, 31, 60, 0,
+			114, 42, 0, 0, 128, 0, 0, 0, 65, 24, 140, 3, 0, 0, 0, 6, 120, 35, 0, 0, 8, 0, 8, 0, 113, 24, 141, 6, 0, 0,
+			0, 3, 104, 35, 0, 0, 8, 0, 8, 0, 122, 24, 142, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 0, 0, 114, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 192, 0, 132, 0, 42, 25, 34, 3, 0, 0, 40, 0,
+			97, 0, 0, 0, 0, 0, 0, 0, 241, 25, 35, 2, 29, 29, 50, 0, 101, 0, 0, 0, 0, 0, 0, 0, 194, 25, 36, 2, 30, 30,
+			50, 0, 105, 0, 0, 0, 0, 0, 0, 0, 97, 25, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 176, 25, 39, 2,
+			32, 32, 50, 0, 117, 0, 0, 0, 0, 0, 0, 0, 185, 25, 40, 2, 33, 33, 40, 0, 116, 0, 0, 0, 8, 0, 3, 0, 116, 22,
+			47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 52, 6, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0,
+			113, 6, 49, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 5, 0, 240, 24, 55, 3, 0, 0, 20, 7, 108, 94, 0, 0, 0, 2,
+			5, 0, 244, 24, 61, 3, 0, 0, 40, 0, 100, 0, 0, 0, 16, 0, 3, 0, 142, 22, 72, 5, 0, 0, 0, 5, 100, 90, 59, 0,
+			48, 2, 7, 0, 50, 25, 77, 5, 0, 78, 0, 5, 116, 83, 59, 0, 40, 2, 7, 0, 64, 25, 78, 4, 0, 77, 0, 2, 103, 0,
+			0, 0, 16, 0, 8, 2, 209, 24, 81, 5, 0, 49, 0, 5, 115, 0, 0, 0, 40, 0, 4, 0, 248, 24, 89, 6, 0, 0, 0, 3,
+			115, 59, 0, 0, 40, 0, 4, 0, 125, 5, 95, 6, 0, 0, 0, 3, 120, 0, 0, 0, 8, 0, 8, 0, 230, 24, 101, 6, 0, 0,
+			0, 3, 110, 95, 0, 0, 16, 0, 4, 0, 223, 1, 108, 8, 0, 0, 0, 4, 110, 35, 0, 0, 16, 2, 7, 0, 2, 25, 109, 8,
+			0, 0, 0, 4, 116, 115, 0, 0, 40, 0, 4, 0, 18, 6, 110, 4, 0, 0, 0, 2, 116, 59, 0, 0, 8, 2, 7, 0, 129, 22,
+			111, 4, 0, 0, 0, 2, 100, 59, 0, 0, 16, 2, 4, 0, 169, 22, 112, 5, 0, 0, 0, 5, 109, 59, 0, 0, 16, 0, 1, 0,
+			70, 25, 113, 8, 0, 0, 0, 4, 73, 94, 0, 0, 2, 0, 16, 0, 90, 25, 114, 2, 31, 31, 35, 0, 121, 0, 0, 0, 0, 0,
+			0, 0, 109, 25, 115, 2, 31, 31, 50, 0, 73, 35, 0, 0, 0, 0, 0, 0, 102, 25, 116, 2, 31, 31, 40, 0, 73, 0, 0, 0,
+			0, 0, 0, 0, 111, 25, 117, 2, 31, 31, 40, 0, 73, 50, 0, 0, 0, 0, 0, 0, 120, 25, 118, 2, 31, 31, 40, 0, 73, 51,
+			0, 0, 0, 0, 0, 0, 126, 25, 119, 2, 31, 31, 40, 0, 106, 97, 0, 0, 0, 0, 0, 0, 211, 25, 120, 2, 31, 29, 90, 0,
+			69, 0, 0, 0, 0, 0, 0, 0, 137, 25, 121, 2, 30, 30, 50, 0, 69, 35, 0, 0, 0, 0, 0, 0, 139, 25, 122, 2, 30, 30,
+			50, 0, 69, 50, 0, 0, 0, 0, 0, 0, 148, 25, 123, 2, 30, 30, 40, 0, 69, 51, 0, 0, 0, 0, 0, 0, 165, 25, 124, 2,
+			30, 30, 40, 0, 69, 37, 0, 0, 0, 0, 0, 0, 174, 25, 125, 2, 0, 0, 90, 0, 86, 0, 0, 0, 2, 0, 0, 0, 4, 26,
+			126, 2, 29, 28, 40, 0, 79, 0, 0, 0, 0, 0, 0, 0, 179, 25, 127, 2, 32, 32, 40, 0, 56, 0, 0, 0, 0, 0, 0, 0,
+			191, 25, 128, 2, 32, 32, 50, 0, 117, 35, 0, 0, 0, 0, 0, 0, 187, 25, 129, 2, 33, 33, 40, 0, 117, 34, 0, 0, 0, 0,
+			0, 0, 189, 25, 130, 2, 33, 33, 75, 0, 106, 117, 0, 0, 0, 0, 0, 0, 209, 25, 131, 2, 33, 33, 95, 0, 106, 97, 35, 0,
+			0, 0, 0, 0, 219, 25, 132, 2, 31, 29, 90, 0, 86, 35, 0, 0, 2, 0, 0, 0, 226, 25, 133, 2, 29, 28, 40, 0, 65, 0,
+			0, 0, 0, 0, 0, 0, 239, 25, 134, 2, 29, 29, 50, 0, 89, 0, 0, 0, 2, 0, 0, 0, 237, 25, 135, 2, 33, 33, 70, 0,
+			97, 35, 0, 0, 0, 0, 0, 0, 16, 26, 136, 2, 29, 29, 50, 0, 82, 52, 0, 0, 0, 0, 0, 0, 18, 26, 137, 3, 0, 0,
+			0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 29, 0, 0, 0, 0, 0, 0, 98, 103, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 0, 0, 0, 0, 41, 26, 13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0, 0, 0, 138, 0, 34, 3, 0, 0, 0, 6,
+			97, 0, 0, 0, 0, 0, 0, 0, 46, 26, 35, 2, 29, 29, 75, 0, 101, 0, 0, 0, 0, 0, 0, 0, 36, 26, 36, 2, 30, 30,
+			70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 30, 26, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 59, 26, 39, 2,
+			32, 32, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0, 64, 26, 40, 2, 33, 33, 70, 0, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7,
+			55, 3, 0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 84, 1, 64, 3, 0, 0, 0, 7, 120, 0, 0, 0, 8, 0, 8, 0,
+			234, 5, 101, 6, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 14, 0, 0, 0, 0, 103, 35, 0, 0, 16, 0,
+			8, 2, 209, 24, 121, 5, 0, 0, 0, 5, 103, 59, 0, 0, 16, 2, 8, 0, 69, 26, 122, 5, 0, 49, 0, 5, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 0, 0, 0, 0, 0, 0, 105, 116, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 12, 9, 0, 0, 25, 0, 97, 0, 0, 0, 0, 0, 0, 0, 90, 26, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0,
+			0, 0, 98, 26, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 111, 26, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0,
+			0, 0, 0, 0, 120, 26, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 133, 26, 40, 2, 33, 33, 80, 0, 108, 94,
+			0, 0, 0, 0, 0, 0, 56, 1, 61, 3, 0, 0, 70, 7, 97, 47, 0, 0, 0, 0, 0, 0, 93, 26, 108, 2, 28, 28, 90, 0,
+			69, 0, 0, 0, 0, 0, 0, 0, 108, 26, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0, 130, 26, 110, 2, 32, 32,
+			85, 0, 85, 0, 0, 0, 0, 0, 0, 0, 136, 26, 111, 2, 33, 33, 80, 0, 97, 85, 0, 0, 0, 0, 0, 0, 138, 26, 114, 2,
+			29, 32, 135, 0, 97, 73, 0, 0, 0, 0, 0, 0, 140, 26, 117, 2, 29, 31, 125, 0, 111, 73, 0, 0, 0, 0, 0, 0, 142, 26,
+			120, 2, 32, 31, 115, 0, 101, 47, 0, 0, 0, 0, 0, 0, 101, 26, 124, 2, 30, 30, 85, 0, 105, 35, 0, 0, 0, 0, 0, 0,
+			114, 26, 125, 2, 31, 31, 70, 0, 73, 0, 0, 0, 0, 0, 0, 0, 117, 26, 126, 2, 31, 31, 75, 0, 111, 47, 0, 0, 0, 0,
+			0, 0, 123, 26, 127, 2, 32, 32, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1, 0, 0,
 			0, 0, 0, 0, 108, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 145, 28, 35, 2, 29, 29, 85, 0, 112, 0, 0, 0, 8, 0, 1, 0,
-			55, 6, 48, 4, 0, 71, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0,
-			0, 0, 147, 28, 108, 2, 30, 30, 85, 0, 73, 0, 0, 0, 0, 0, 0, 0, 149, 28, 109, 2, 31, 31, 75, 0, 79, 0, 0, 0,
-			0, 0, 0, 0, 152, 28, 110, 2, 32, 32, 80, 0, 85, 0, 0, 0, 0, 0, 0, 0, 154, 28, 111, 2, 33, 33, 80, 0, 97, 58,
-			0, 0, 0, 0, 0, 0, 156, 28, 112, 2, 29, 29, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 158, 28, 113, 2, 30, 30, 130, 0,
-			105, 58, 0, 0, 0, 0, 0, 0, 160, 28, 114, 2, 31, 31, 120, 0, 111, 58, 0, 0, 0, 0, 0, 0, 162, 28, 115, 2, 32, 32,
-			125, 0, 117, 58, 0, 0, 0, 0, 0, 0, 164, 28, 116, 2, 33, 33, 125, 0, 121, 0, 0, 0, 0, 0, 0, 0, 166, 28, 117, 2,
-			31, 31, 75, 0, 121, 58, 0, 0, 0, 0, 0, 0, 168, 28, 118, 2, 31, 31, 125, 0, 97, 85, 0, 0, 0, 0, 0, 0, 170, 28,
-			119, 2, 29, 33, 135, 0, 97, 73, 0, 0, 0, 0, 0, 0, 172, 28, 120, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0, 0, 0,
-			174, 28, 121, 2, 30, 31, 135, 0, 69, 85, 0, 0, 0, 0, 0, 0, 176, 28, 122, 2, 30, 33, 135, 0, 79, 73, 0, 0, 0, 0,
-			0, 0, 178, 28, 123, 2, 32, 31, 125, 0, 60, 104, 62, 0, 8, 0, 12, 0, 180, 28, 124, 6, 0, 0, 25, 3, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 144, 26, 35, 2, 29, 29, 85, 0, 112, 0, 0, 0, 8, 0, 1, 0,
+			52, 6, 48, 4, 0, 71, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0,
+			0, 0, 146, 26, 108, 2, 30, 30, 85, 0, 73, 0, 0, 0, 0, 0, 0, 0, 148, 26, 109, 2, 31, 31, 75, 0, 79, 0, 0, 0,
+			0, 0, 0, 0, 151, 26, 110, 2, 32, 32, 80, 0, 85, 0, 0, 0, 0, 0, 0, 0, 153, 26, 111, 2, 33, 33, 80, 0, 97, 58,
+			0, 0, 0, 0, 0, 0, 155, 26, 112, 2, 29, 29, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 157, 26, 113, 2, 30, 30, 130, 0,
+			105, 58, 0, 0, 0, 0, 0, 0, 159, 26, 114, 2, 31, 31, 120, 0, 111, 58, 0, 0, 0, 0, 0, 0, 161, 26, 115, 2, 32, 32,
+			125, 0, 117, 58, 0, 0, 0, 0, 0, 0, 163, 26, 116, 2, 33, 33, 125, 0, 121, 0, 0, 0, 0, 0, 0, 0, 165, 26, 117, 2,
+			31, 31, 75, 0, 121, 58, 0, 0, 0, 0, 0, 0, 167, 26, 118, 2, 31, 31, 125, 0, 97, 85, 0, 0, 0, 0, 0, 0, 169, 26,
+			119, 2, 29, 33, 135, 0, 97, 73, 0, 0, 0, 0, 0, 0, 171, 26, 120, 2, 29, 31, 135, 0, 101, 73, 0, 0, 0, 0, 0, 0,
+			173, 26, 121, 2, 30, 31, 135, 0, 69, 85, 0, 0, 0, 0, 0, 0, 175, 26, 122, 2, 30, 33, 135, 0, 79, 73, 0, 0, 0, 0,
+			0, 0, 177, 26, 123, 2, 32, 31, 125, 0, 60, 104, 62, 0, 8, 0, 12, 0, 179, 26, 124, 6, 0, 0, 25, 3, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 0, 0, 0, 0, 0, 0, 101, 115, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 16, 64, 132, 0,
-			63, 29, 34, 5, 0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0, 202, 28, 35, 2, 29, 29, 100, 0, 101, 0, 0, 0, 0, 0,
-			0, 0, 204, 28, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 208, 28, 37, 2, 31, 31, 95, 0, 111, 0, 0, 0,
-			0, 0, 0, 0, 211, 28, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0, 215, 28, 40, 2, 33, 33, 100, 0, 98, 0,
-			0, 0, 16, 0, 1, 0, 4, 29, 71, 5, 0, 0, 0, 0, 100, 0, 0, 0, 16, 0, 3, 0, 247, 28, 72, 5, 0, 0, 0, 0,
-			103, 0, 0, 0, 16, 0, 8, 0, 217, 28, 81, 5, 0, 49, 0, 5, 118, 35, 0, 0, 16, 0, 2, 0, 43, 29, 85, 7, 0, 83,
-			0, 6, 68, 0, 0, 0, 16, 0, 3, 0, 16, 29, 86, 7, 0, 87, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 25, 29, 89, 6,
-			0, 88, 0, 3, 69, 0, 0, 0, 0, 0, 0, 0, 206, 28, 109, 2, 30, 30, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 213, 28,
-			110, 2, 32, 32, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 44, 0, 0, 0, 0, 0, 0,
+			62, 27, 34, 5, 0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0, 201, 26, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0,
+			0, 0, 203, 26, 36, 2, 30, 30, 95, 0, 105, 0, 0, 0, 0, 0, 0, 0, 207, 26, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0,
+			0, 0, 0, 0, 210, 26, 39, 2, 32, 32, 95, 0, 117, 0, 0, 0, 0, 0, 0, 0, 214, 26, 40, 2, 33, 33, 90, 0, 98, 0,
+			0, 0, 16, 0, 1, 0, 3, 27, 71, 5, 0, 0, 0, 0, 100, 0, 0, 0, 16, 0, 3, 0, 246, 26, 72, 5, 0, 0, 0, 0,
+			103, 0, 0, 0, 16, 0, 8, 0, 216, 26, 81, 5, 0, 49, 0, 5, 118, 35, 0, 0, 16, 0, 2, 0, 42, 27, 85, 7, 0, 83,
+			0, 6, 68, 0, 0, 0, 16, 0, 3, 0, 15, 27, 86, 7, 0, 87, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 24, 27, 89, 6,
+			0, 88, 0, 3, 69, 0, 0, 0, 0, 0, 0, 0, 205, 26, 109, 2, 30, 30, 95, 0, 79, 0, 0, 0, 0, 0, 0, 0, 212, 26,
+			110, 2, 32, 32, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 0, 0, 0, 0,
 			101, 115, 45, 108, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 84, 0, 0, 0, 40, 0, 4, 0, 70, 29, 87, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 11, 44, 0, 0, 0, 0, 0, 0, 99, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 72, 29, 35, 2, 29, 29, 90, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 79, 29, 36, 2, 30, 30, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 90, 29, 39, 2, 32, 32,
-			85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 95, 29, 40, 2, 33, 33, 80, 0, 108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3,
-			0, 0, 0, 7, 69, 0, 0, 0, 0, 0, 0, 0, 82, 29, 109, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 87, 29,
-			110, 2, 32, 32, 85, 0, 85, 0, 0, 0, 2, 0, 0, 0, 93, 29, 111, 2, 33, 33, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0,
-			75, 29, 124, 2, 28, 28, 85, 0, 69, 50, 0, 0, 0, 0, 0, 0, 85, 29, 125, 2, 30, 30, 90, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 44, 0, 0, 0, 0, 0, 0, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 35, 0, 0, 8, 0, 3, 0, 98, 29,
-			25, 4, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 103, 29, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			108, 29, 110, 2, 32, 32, 85, 0, 101, 35, 0, 0, 0, 0, 0, 0, 105, 29, 124, 2, 30, 30, 100, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0, 0, 0, 112, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 16, 0, 4, 0, 197, 29,
-			16, 5, 0, 0, 0, 6, 101, 0, 0, 0, 0, 0, 0, 0, 154, 29, 36, 2, 30, 30, 80, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			166, 29, 40, 2, 33, 33, 80, 0, 114, 45, 0, 0, 0, 0, 128, 0, 125, 7, 44, 3, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,
-			0, 0, 91, 7, 55, 3, 0, 0, 0, 7, 120, 0, 0, 0, 8, 0, 12, 0, 187, 29, 101, 6, 0, 0, 0, 3, 69, 0, 0, 0,
-			0, 0, 0, 0, 152, 29, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0, 164, 29, 110, 2, 32, 32, 85, 0, 85, 0,
-			0, 0, 0, 0, 0, 0, 168, 29, 111, 2, 33, 33, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 156, 29, 112, 2, 31, 31, 55, 0,
-			101, 85, 0, 0, 0, 0, 0, 0, 183, 29, 115, 2, 30, 33, 115, 0, 97, 73, 0, 0, 0, 0, 0, 0, 174, 29, 117, 2, 29, 31,
-			115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 177, 29, 118, 2, 30, 31, 105, 0, 73, 0, 0, 0, 2, 0, 0, 0, 110, 29, 124, 2,
-			31, 31, 45, 0, 101, 126, 0, 0, 0, 0, 0, 0, 112, 29, 125, 2, 30, 30, 120, 0, 105, 126, 0, 0, 0, 0, 0, 0, 114, 29,
-			126, 2, 31, 31, 120, 0, 111, 126, 0, 0, 0, 0, 0, 0, 117, 29, 127, 2, 32, 32, 120, 0, 117, 126, 0, 0, 0, 0, 0, 0,
-			119, 29, 128, 2, 33, 33, 90, 0, 38, 126, 0, 0, 0, 0, 0, 0, 121, 29, 129, 2, 28, 28, 90, 0, 38, 85, 126, 0, 0, 0,
-			0, 0, 130, 29, 130, 2, 28, 33, 120, 0, 111, 73, 126, 0, 0, 0, 0, 0, 137, 29, 131, 2, 32, 31, 130, 0, 38, 0, 0, 0,
-			0, 0, 0, 0, 144, 29, 132, 2, 28, 28, 90, 0, 38, 47, 0, 0, 0, 0, 0, 0, 146, 29, 133, 2, 28, 28, 90, 0, 65, 0,
-			0, 0, 0, 0, 0, 0, 150, 29, 134, 2, 29, 29, 100, 0, 105, 47, 0, 0, 0, 0, 0, 0, 159, 29, 135, 2, 31, 31, 75, 0,
-			79, 73, 0, 0, 0, 0, 0, 0, 180, 29, 136, 2, 32, 31, 115, 0, 69, 85, 0, 0, 0, 0, 0, 0, 185, 29, 137, 2, 30, 33,
-			115, 0, 115, 35, 0, 0, 40, 0, 4, 0, 192, 29, 138, 6, 0, 88, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 20, 48, 0, 0, 0, 0, 0, 0, 112, 116, 45, 112, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 224, 29, 35, 2, 29, 29, 90, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 242, 29, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 249, 29, 37, 2, 31, 31,
-			85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 5, 30, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 8, 30, 40, 2,
-			33, 33, 90, 0, 82, 0, 0, 0, 0, 0, 128, 0, 71, 0, 51, 3, 0, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 220, 6,
-			58, 3, 0, 0, 0, 7, 120, 0, 0, 0, 128, 0, 0, 0, 18, 30, 101, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0, 0, 0,
-			239, 29, 109, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 3, 30, 110, 2, 32, 32, 90, 0, 85, 0, 0, 0, 0, 0,
-			0, 0, 10, 30, 111, 2, 33, 33, 65, 0, 121, 0, 0, 0, 0, 0, 0, 0, 245, 29, 112, 2, 28, 28, 65, 0, 38, 126, 0, 0,
-			0, 0, 0, 0, 227, 29, 129, 2, 30, 28, 120, 0, 38, 85, 126, 0, 0, 0, 0, 0, 232, 29, 130, 2, 28, 33, 120, 0, 38, 0,
-			0, 0, 2, 0, 0, 0, 214, 29, 132, 2, 28, 28, 90, 0, 38, 47, 0, 0, 0, 0, 0, 0, 218, 29, 133, 2, 28, 28, 90, 0,
-			105, 47, 0, 0, 0, 0, 0, 0, 252, 29, 135, 2, 31, 31, 65, 0, 69, 85, 0, 0, 0, 0, 0, 0, 16, 30, 137, 2, 30, 33,
-			115, 0, 115, 35, 0, 0, 40, 0, 6, 0, 30, 30, 138, 6, 0, 90, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 114, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 30, 13, 2, 28, 28, 85, 0,
-			114, 0, 0, 0, 128, 0, 0, 0, 92, 30, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 62, 30, 35, 2, 29, 29,
-			90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 56, 30, 36, 2, 30, 30, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 66, 30, 39, 2,
-			32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 68, 30, 40, 2, 33, 33, 80, 0, 122, 59, 0, 0, 48, 0, 4, 0, 247, 30,
-			94, 7, 0, 95, 0, 6, 115, 59, 0, 0, 40, 0, 4, 0, 166, 30, 95, 6, 0, 94, 0, 3, 90, 59, 0, 0, 48, 0, 6, 0,
-			5, 31, 96, 7, 0, 97, 0, 6, 83, 59, 0, 0, 40, 0, 6, 0, 176, 30, 97, 6, 0, 96, 0, 3, 121, 0, 0, 0, 0, 0,
-			0, 0, 58, 30, 112, 2, 28, 28, 90, 0, 89, 0, 0, 0, 0, 0, 0, 0, 70, 30, 113, 2, 28, 28, 90, 0, 73, 94, 0, 0,
-			2, 0, 0, 0, 35, 30, 124, 2, 31, 31, 35, 0, 108, 59, 0, 0, 0, 0, 0, 0, 117, 30, 125, 3, 0, 0, 0, 7, 109, 59,
-			0, 0, 16, 0, 1, 0, 124, 30, 126, 8, 0, 0, 0, 4, 110, 59, 0, 0, 16, 0, 4, 0, 131, 30, 127, 8, 0, 0, 0, 4,
-			105, 47, 0, 0, 0, 0, 0, 0, 52, 30, 128, 2, 31, 31, 75, 0, 64, 73, 0, 0, 0, 0, 0, 0, 72, 30, 129, 2, 28, 31,
-			125, 0, 64, 85, 0, 0, 0, 0, 0, 0, 74, 30, 130, 2, 28, 33, 130, 0, 111, 85, 0, 0, 0, 0, 0, 0, 76, 30, 131, 2,
-			32, 33, 130, 0, 105, 73, 0, 0, 0, 0, 0, 0, 78, 30, 132, 2, 31, 31, 125, 0, 121, 73, 0, 0, 0, 0, 0, 0, 80, 30,
-			133, 2, 28, 31, 105, 0, 121, 85, 0, 0, 0, 0, 0, 0, 82, 30, 134, 2, 28, 33, 115, 0, 101, 97, 0, 0, 0, 0, 0, 0,
-			84, 30, 135, 2, 30, 29, 125, 0, 101, 111, 0, 0, 0, 0, 0, 0, 86, 30, 136, 2, 30, 32, 135, 0, 101, 91, 117, 0, 0, 0,
-			0, 0, 88, 30, 137, 2, 30, 33, 125, 0, 79, 97, 0, 0, 0, 0, 0, 0, 90, 30, 138, 2, 32, 29, 125, 0, 112, 59, 0, 0,
-			8, 0, 1, 0, 138, 30, 139, 4, 0, 71, 0, 2, 116, 59, 0, 0, 8, 0, 3, 0, 145, 30, 140, 4, 0, 72, 0, 2, 116, 115,
-			59, 0, 40, 0, 4, 0, 152, 30, 141, 4, 0, 0, 0, 2, 102, 59, 0, 0, 8, 0, 2, 0, 159, 30, 142, 6, 0, 84, 0, 3,
-			98, 59, 0, 0, 16, 0, 1, 0, 186, 30, 143, 5, 0, 139, 0, 5, 100, 59, 0, 0, 16, 0, 3, 0, 200, 30, 144, 5, 0, 140,
-			0, 5, 42, 59, 0, 0, 16, 0, 4, 0, 211, 30, 145, 5, 0, 0, 0, 2, 118, 59, 0, 0, 16, 0, 2, 0, 229, 30, 146, 7,
-			0, 142, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 0, 0, 0, 0, 0, 0, 101, 108,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			114, 0, 0, 0, 128, 0, 0, 0, 150, 0, 34, 3, 0, 0, 30, 6, 97, 0, 0, 0, 0, 0, 0, 0, 23, 31, 35, 2, 29, 29,
-			70, 0, 101, 0, 0, 0, 0, 0, 0, 0, 32, 31, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 34, 31, 37, 2,
-			31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 37, 31, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 39, 31,
-			40, 2, 33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 4, 0, 41, 31, 47, 4, 0, 72, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0,
-			54, 31, 49, 4, 0, 81, 0, 2, 100, 0, 0, 0, 16, 0, 4, 0, 15, 3, 72, 5, 0, 47, 0, 5, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 0, 0, 0, 0, 0, 0, 103, 114, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 9, 0, 0, 50, 0, 101, 0, 0, 0, 0, 0, 0, 0, 75, 31, 36, 2, 30, 30, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			79, 31, 39, 2, 32, 32, 70, 0, 102, 0, 0, 0, 8, 0, 1, 0, 91, 31, 83, 4, 0, 0, 0, 2, 69, 0, 0, 0, 0, 0,
-			0, 0, 77, 31, 109, 2, 30, 30, 75, 0, 79, 0, 0, 0, 0, 0, 0, 0, 81, 31, 110, 2, 32, 32, 75, 0, 121, 0, 0, 0,
-			0, 0, 0, 0, 73, 31, 112, 2, 31, 31, 80, 0, 69, 85, 0, 0, 0, 0, 0, 0, 83, 31, 124, 2, 30, 33, 115, 0, 79, 73,
-			0, 0, 0, 0, 0, 0, 85, 31, 125, 2, 32, 31, 115, 0, 79, 85, 0, 0, 0, 0, 0, 0, 87, 31, 126, 2, 32, 33, 115, 0,
-			121, 73, 0, 0, 0, 0, 0, 0, 89, 31, 127, 2, 31, 31, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 115, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 134, 31, 35, 2, 29, 29, 70, 0, 105, 58,
-			0, 0, 0, 0, 0, 0, 97, 31, 108, 2, 31, 31, 90, 0, 73, 0, 0, 0, 0, 0, 0, 0, 103, 31, 109, 2, 31, 31, 65, 0,
-			101, 58, 0, 0, 0, 0, 0, 0, 106, 31, 110, 2, 30, 30, 105, 0, 69, 0, 0, 0, 0, 0, 0, 0, 108, 31, 111, 2, 30, 30,
-			70, 0, 69, 45, 0, 0, 2, 0, 0, 0, 116, 31, 112, 2, 28, 28, 70, 0, 69, 58, 0, 0, 0, 0, 0, 0, 111, 31, 113, 2,
-			30, 28, 110, 0, 69, 51, 0, 0, 0, 0, 0, 0, 113, 31, 114, 2, 30, 30, 70, 0, 121, 58, 0, 0, 0, 0, 0, 0, 120, 31,
-			115, 2, 33, 33, 110, 0, 121, 0, 0, 0, 0, 0, 0, 0, 122, 31, 116, 2, 33, 33, 70, 0, 117, 45, 0, 0, 0, 0, 0, 0,
-			124, 31, 117, 2, 33, 33, 100, 0, 89, 58, 0, 0, 0, 0, 0, 0, 128, 31, 118, 2, 28, 28, 110, 0, 87, 0, 0, 0, 0, 0,
-			0, 0, 130, 31, 119, 2, 28, 28, 70, 0, 56, 0, 0, 0, 0, 0, 0, 0, 132, 31, 120, 2, 33, 33, 70, 0, 38, 0, 0, 0,
-			0, 0, 0, 0, 140, 31, 121, 2, 29, 29, 70, 0, 65, 58, 0, 0, 0, 0, 0, 0, 142, 31, 122, 2, 29, 29, 125, 0, 79, 0,
-			0, 0, 0, 0, 0, 0, 144, 31, 123, 2, 32, 32, 70, 0, 111, 58, 0, 0, 0, 0, 0, 0, 146, 31, 124, 2, 32, 32, 105, 0,
-			85, 0, 0, 0, 0, 0, 0, 0, 148, 31, 125, 2, 33, 33, 70, 0, 117, 58, 0, 0, 0, 0, 0, 0, 150, 31, 126, 2, 33, 33,
-			105, 0, 115, 120, 0, 0, 8, 0, 8, 0, 152, 31, 127, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 162, 31, 13, 2, 28, 28, 60, 0,
-			97, 0, 0, 0, 0, 0, 0, 0, 190, 31, 35, 2, 29, 29, 60, 0, 97, 35, 0, 0, 2, 0, 0, 0, 164, 31, 108, 2, 28, 29,
-			60, 0, 73, 0, 0, 0, 0, 0, 0, 0, 166, 31, 109, 2, 31, 31, 50, 0, 105, 58, 0, 0, 0, 0, 0, 0, 169, 31, 110, 2,
-			31, 31, 115, 0, 121, 0, 0, 0, 0, 0, 0, 0, 175, 31, 111, 2, 33, 33, 60, 0, 121, 58, 0, 0, 0, 0, 0, 0, 177, 31,
-			112, 2, 33, 33, 130, 0, 87, 0, 0, 0, 0, 0, 0, 0, 179, 31, 113, 2, 28, 28, 60, 0, 89, 58, 0, 0, 0, 0, 0, 0,
-			181, 31, 114, 2, 28, 28, 130, 0, 69, 0, 0, 0, 0, 0, 0, 0, 183, 31, 115, 2, 30, 30, 60, 0, 69, 58, 0, 0, 0, 0,
-			0, 0, 186, 31, 116, 2, 30, 30, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 188, 31, 117, 2, 30, 30, 125, 0, 97, 58, 0, 0,
-			0, 0, 0, 0, 192, 31, 118, 2, 29, 29, 135, 0, 65, 0, 0, 0, 0, 0, 0, 0, 194, 31, 119, 2, 29, 29, 65, 0, 65, 58,
-			0, 0, 0, 0, 0, 0, 196, 31, 120, 2, 29, 29, 140, 0, 79, 0, 0, 0, 0, 0, 0, 0, 198, 31, 121, 2, 32, 32, 60, 0,
-			111, 58, 0, 0, 0, 0, 0, 0, 200, 31, 122, 2, 32, 32, 135, 0, 85, 0, 0, 0, 0, 0, 0, 0, 202, 31, 123, 2, 33, 33,
-			60, 0, 117, 58, 0, 0, 0, 0, 0, 0, 204, 31, 124, 2, 33, 33, 120, 0, 117, 45, 0, 0, 0, 0, 0, 0, 206, 31, 125, 2,
-			33, 33, 60, 0, 117, 45, 58, 0, 0, 0, 0, 0, 210, 31, 126, 2, 33, 33, 130, 0, 65, 73, 0, 0, 0, 0, 0, 0, 215, 31,
-			127, 2, 29, 31, 135, 0, 97, 73, 0, 0, 0, 0, 0, 0, 218, 31, 128, 2, 29, 31, 135, 0, 79, 73, 0, 0, 0, 0, 0, 0,
-			221, 31, 129, 2, 32, 31, 135, 0, 117, 45, 73, 0, 0, 0, 0, 0, 224, 31, 130, 2, 33, 31, 135, 0, 89, 121, 0, 0, 0, 0,
-			0, 0, 230, 31, 131, 2, 28, 33, 135, 0, 97, 85, 0, 0, 0, 0, 0, 0, 232, 31, 132, 2, 29, 33, 135, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 105, 115, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 12, 9, 0, 0, 55, 0, 97, 0, 0, 0, 0, 0, 0, 0, 252, 31, 35, 2, 28, 28, 65, 0, 105, 0, 0, 0, 0, 0,
-			0, 0, 234, 31, 37, 2, 31, 31, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 6, 32, 40, 2, 33, 33, 65, 0, 98, 0, 0, 0,
-			8, 0, 1, 0, 133, 32, 71, 4, 0, 0, 0, 5, 100, 0, 0, 0, 8, 0, 4, 0, 143, 32, 72, 4, 0, 0, 0, 5, 103, 0,
-			0, 0, 8, 0, 8, 0, 156, 32, 81, 4, 0, 0, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 241, 3, 84, 7, 0, 83, 0, 6,
-			108, 35, 0, 0, 8, 0, 4, 0, 110, 32, 105, 6, 0, 0, 0, 3, 105, 58, 0, 0, 0, 0, 0, 0, 237, 31, 108, 2, 31, 31,
-			115, 0, 73, 0, 0, 0, 0, 0, 0, 0, 241, 31, 109, 2, 31, 31, 65, 0, 73, 58, 0, 0, 0, 0, 0, 0, 244, 31, 110, 2,
-			31, 31, 115, 0, 69, 0, 0, 0, 0, 0, 0, 0, 248, 31, 111, 2, 30, 30, 65, 0, 69, 58, 0, 0, 0, 0, 0, 0, 250, 31,
-			112, 2, 30, 30, 65, 0, 97, 58, 0, 0, 0, 0, 0, 0, 254, 31, 113, 2, 29, 29, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			1, 32, 114, 2, 32, 32, 65, 0, 79, 58, 0, 0, 0, 0, 0, 0, 3, 32, 115, 2, 32, 32, 115, 0, 117, 58, 0, 0, 0, 0,
-			0, 0, 8, 32, 116, 2, 33, 33, 115, 0, 121, 0, 0, 0, 0, 0, 0, 0, 11, 32, 117, 2, 28, 28, 65, 0, 121, 58, 0, 0,
-			0, 0, 0, 0, 13, 32, 118, 2, 31, 31, 115, 0, 87, 0, 0, 0, 0, 0, 0, 0, 16, 32, 119, 2, 28, 28, 65, 0, 87, 58,
-			0, 0, 0, 0, 0, 0, 18, 32, 120, 2, 28, 28, 65, 0, 97, 73, 0, 0, 0, 0, 0, 0, 21, 32, 121, 2, 29, 31, 85, 0,
-			97, 73, 58, 0, 0, 0, 0, 0, 23, 32, 122, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 26, 32, 123, 2, 30, 31,
-			85, 0, 101, 73, 58, 0, 0, 0, 0, 0, 28, 32, 124, 2, 30, 31, 115, 0, 97, 85, 0, 0, 0, 0, 0, 0, 31, 32, 125, 2,
-			29, 33, 85, 0, 97, 85, 58, 0, 0, 0, 0, 0, 33, 32, 126, 2, 29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 36, 32,
-			127, 2, 32, 33, 85, 0, 111, 85, 58, 0, 0, 0, 0, 0, 38, 32, 128, 2, 32, 33, 115, 0, 89, 121, 0, 0, 0, 0, 0, 0,
-			41, 32, 129, 2, 28, 31, 75, 0, 89, 121, 58, 0, 0, 0, 0, 0, 43, 32, 130, 2, 28, 31, 110, 0, 79, 73, 0, 0, 0, 0,
-			0, 0, 46, 32, 131, 2, 32, 31, 105, 0, 121, 73, 0, 0, 0, 0, 0, 0, 48, 32, 132, 2, 31, 31, 90, 0, 109, 35, 0, 0,
-			16, 0, 1, 0, 50, 32, 133, 8, 0, 0, 0, 6, 110, 35, 0, 0, 16, 0, 4, 0, 58, 32, 134, 8, 0, 0, 0, 6, 110, 94,
-			35, 0, 16, 2, 7, 0, 79, 32, 135, 8, 0, 0, 0, 6, 78, 35, 0, 0, 16, 0, 8, 0, 88, 32, 136, 8, 0, 0, 0, 6,
-			116, 108, 35, 0, 8, 0, 4, 0, 114, 32, 137, 4, 0, 0, 0, 2, 114, 35, 0, 0, 0, 0, 0, 0, 127, 32, 138, 3, 0, 0,
-			0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 167, 6, 139, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 118, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 249, 32, 13, 2, 28, 29, 90, 0,
-			64, 45, 0, 0, 0, 0, 0, 0, 58, 33, 14, 2, 32, 31, 75, 0, 49, 0, 0, 0, 0, 0, 0, 0, 169, 32, 17, 1, 34, 36,
-			0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 194, 32, 35, 2, 28, 28, 70, 0, 101, 0, 0, 0, 0, 0, 0, 0, 205, 32, 36, 2,
-			30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 207, 32, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 228, 32,
-			39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 235, 32, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 4, 0,
-			78, 33, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 116, 33, 48, 4, 0, 0, 0, 2, 110, 0, 0, 0, 16, 0,
-			4, 0, 126, 33, 50, 8, 0, 0, 37, 4, 108, 0, 0, 0, 0, 0, 0, 0, 72, 33, 55, 3, 0, 0, 0, 0, 116, 91, 0, 0,
-			8, 0, 3, 0, 136, 33, 74, 4, 0, 73, 2, 2, 99, 0, 0, 0, 8, 2, 7, 0, 106, 33, 80, 4, 0, 0, 1, 2, 50, 0,
-			0, 0, 0, 0, 0, 0, 172, 32, 108, 1, 8, 30, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 175, 32, 109, 1, 30, 60, 0, 0,
-			52, 0, 0, 0, 0, 0, 0, 0, 178, 32, 110, 1, 10, 55, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 181, 32, 111, 1, 28, 58,
-			0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 186, 32, 112, 1, 25, 60, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 191, 32, 113, 1,
-			35, 40, 0, 0, 97, 58, 0, 0, 0, 0, 0, 0, 196, 32, 114, 2, 29, 29, 90, 0, 69, 0, 0, 0, 0, 0, 0, 0, 203, 32,
-			115, 2, 30, 30, 70, 0, 79, 0, 0, 0, 0, 0, 0, 0, 221, 32, 116, 2, 32, 32, 90, 0, 107, 104, 0, 0, 8, 0, 8, 0,
-			62, 33, 117, 6, 0, 0, 0, 3, 121, 0, 0, 0, 0, 0, 0, 0, 242, 32, 118, 2, 33, 33, 90, 0, 64, 58, 0, 0, 0, 0,
-			0, 0, 2, 33, 119, 2, 28, 28, 70, 0, 97, 73, 0, 0, 0, 0, 0, 0, 4, 33, 120, 2, 29, 31, 70, 0, 97, 58, 73, 0,
-			0, 0, 0, 0, 6, 33, 121, 2, 29, 31, 100, 0, 64, 73, 0, 0, 0, 0, 0, 0, 8, 33, 122, 2, 28, 31, 100, 0, 64, 58,
-			73, 0, 0, 0, 0, 0, 10, 33, 123, 2, 28, 31, 100, 0, 101, 73, 0, 0, 0, 0, 0, 0, 12, 33, 124, 2, 30, 31, 70, 0,
-			69, 73, 0, 0, 0, 0, 0, 0, 14, 33, 125, 2, 30, 31, 70, 0, 79, 73, 0, 0, 0, 0, 0, 0, 16, 33, 126, 2, 32, 31,
-			100, 0, 111, 73, 0, 0, 0, 0, 0, 0, 18, 33, 127, 2, 32, 31, 100, 0, 117, 73, 0, 0, 0, 0, 0, 0, 20, 33, 128, 2,
-			33, 31, 100, 0, 121, 73, 0, 0, 0, 0, 0, 0, 22, 33, 129, 2, 33, 31, 100, 0, 97, 85, 0, 0, 0, 0, 0, 0, 24, 33,
-			130, 2, 29, 33, 75, 0, 97, 58, 85, 0, 0, 0, 0, 0, 26, 33, 131, 2, 29, 33, 75, 0, 101, 85, 0, 0, 0, 0, 0, 0,
-			28, 33, 132, 2, 30, 33, 75, 0, 69, 85, 0, 0, 0, 0, 0, 0, 30, 33, 133, 2, 30, 33, 75, 0, 105, 85, 0, 0, 0, 0,
-			0, 0, 32, 33, 134, 2, 31, 33, 70, 0, 64, 85, 0, 0, 0, 0, 0, 0, 34, 33, 135, 2, 28, 33, 70, 0, 64, 58, 85, 0,
-			0, 0, 0, 0, 36, 33, 136, 2, 28, 33, 70, 0, 105, 64, 0, 0, 0, 0, 0, 0, 38, 33, 137, 2, 31, 28, 70, 0, 121, 64,
-			0, 0, 0, 0, 0, 0, 40, 33, 138, 2, 31, 28, 70, 0, 117, 64, 0, 0, 0, 0, 0, 0, 42, 33, 139, 2, 33, 28, 50, 0,
-			111, 35, 0, 0, 0, 0, 0, 0, 44, 33, 140, 2, 32, 32, 70, 0, 79, 35, 0, 0, 0, 0, 0, 0, 46, 33, 141, 2, 32, 32,
-			70, 0, 111, 64, 0, 0, 0, 0, 0, 0, 48, 33, 142, 2, 32, 29, 70, 0, 111, 38, 0, 0, 0, 0, 0, 0, 50, 33, 143, 2,
-			32, 32, 70, 0, 105, 69, 0, 0, 0, 0, 0, 0, 52, 33, 144, 2, 31, 30, 70, 0, 79, 105, 0, 0, 0, 0, 0, 0, 54, 33,
-			145, 2, 32, 31, 70, 0, 79, 45, 0, 0, 0, 0, 0, 0, 56, 33, 146, 2, 32, 31, 75, 0, 117, 45, 0, 0, 0, 0, 0, 0,
-			60, 33, 147, 2, 33, 33, 75, 0, 99, 114, 0, 0, 40, 0, 6, 0, 88, 33, 148, 4, 0, 0, 0, 2, 100, 95, 0, 0, 16, 0,
-			4, 0, 94, 33, 149, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 56, 0, 0,
-			0, 0, 0, 0, 118, 105, 45, 104, 117, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 185, 33, 13, 2, 28, 29, 75, 0, 49, 0, 0, 0, 0, 0, 0, 0,
-			149, 33, 17, 1, 10, 60, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 176, 33, 37, 2, 31, 31, 75, 0, 110, 0, 0, 0, 16, 0,
-			4, 0, 199, 33, 50, 8, 0, 0, 37, 4, 50, 0, 0, 0, 0, 0, 0, 0, 152, 33, 108, 1, 20, 25, 0, 0, 51, 0, 0, 0,
-			0, 0, 0, 0, 157, 33, 109, 1, 2, 10, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 160, 33, 110, 1, 5, 10, 0, 0, 53, 0,
-			0, 0, 0, 0, 0, 0, 163, 33, 111, 1, 10, 15, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 168, 33, 112, 1, 10, 25, 0, 0,
-			55, 0, 0, 0, 0, 0, 0, 0, 173, 33, 113, 1, 5, 40, 0, 0, 97, 58, 0, 0, 0, 0, 0, 0, 182, 33, 114, 2, 29, 29,
-			75, 0, 69, 0, 0, 0, 0, 0, 0, 0, 179, 33, 115, 2, 30, 30, 75, 0, 79, 0, 0, 0, 0, 0, 0, 0, 191, 33, 116, 2,
-			32, 32, 75, 0, 64, 58, 0, 0, 0, 0, 0, 0, 188, 33, 119, 2, 28, 28, 75, 0, 64, 58, 73, 0, 0, 0, 0, 0, 204, 33,
-			123, 2, 28, 31, 100, 0, 79, 105, 0, 0, 0, 0, 0, 0, 195, 33, 145, 2, 32, 31, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 18, 56, 0, 0, 0, 0, 0, 0, 118, 105, 45, 115, 103, 110, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 243, 33, 13, 2,
-			28, 29, 75, 0, 49, 0, 0, 0, 0, 0, 0, 0, 208, 33, 17, 1, 20, 35, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 231, 33,
-			37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 5, 34, 39, 2, 32, 32, 90, 0, 50, 0, 0, 0, 0, 0, 0, 0,
-			211, 33, 108, 1, 10, 20, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 214, 33, 109, 1, 45, 80, 0, 0, 52, 0, 0, 0, 0, 0,
-			0, 0, 217, 33, 110, 1, 45, 50, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 222, 33, 111, 1, 30, 75, 0, 0, 54, 0, 0, 0,
-			0, 0, 0, 0, 225, 33, 112, 1, 20, 25, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 228, 33, 113, 1, 40, 42, 0, 0, 97, 58,
-			0, 0, 0, 0, 0, 0, 239, 33, 114, 2, 29, 29, 75, 0, 69, 0, 0, 0, 0, 0, 0, 0, 235, 33, 115, 2, 30, 30, 75, 0,
-			79, 0, 0, 0, 0, 0, 0, 0, 249, 33, 116, 2, 32, 32, 40, 0, 121, 0, 0, 0, 0, 0, 0, 0, 1, 34, 118, 2, 33, 33,
-			90, 0, 64, 58, 0, 0, 0, 0, 0, 0, 246, 33, 119, 2, 28, 28, 75, 0, 64, 58, 73, 0, 0, 0, 0, 0, 9, 34, 123, 2,
-			28, 31, 100, 0, 79, 105, 0, 0, 0, 0, 0, 0, 253, 33, 145, 2, 32, 31, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 122, 104, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 13, 34, 17, 1, 50, 50,
-			0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 115, 34, 35, 2, 28, 28, 75, 0, 101, 0, 0, 0, 0, 0, 0, 0, 121, 34, 36, 2,
-			30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0, 129, 34, 37, 2, 31, 31, 95, 0, 111, 0, 0, 0, 0, 0, 0, 0, 146, 34,
-			39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 156, 34, 40, 2, 33, 33, 85, 0, 116, 0, 0, 0, 8, 0, 4, 0,
-			92, 34, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 79, 34, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0,
-			8, 0, 53, 34, 49, 4, 0, 0, 0, 2, 99, 0, 0, 0, 40, 0, 6, 0, 44, 34, 80, 4, 0, 0, 0, 2, 122, 0, 0, 0,
-			40, 0, 4, 0, 34, 34, 88, 4, 0, 0, 0, 2, 50, 0, 0, 0, 0, 0, 0, 0, 16, 34, 108, 1, 30, 50, 0, 0, 51, 0,
-			0, 0, 0, 0, 0, 0, 19, 34, 109, 1, 30, 30, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 22, 34, 110, 1, 10, 20, 0, 0,
-			53, 0, 0, 0, 0, 0, 0, 0, 25, 34, 111, 1, 10, 30, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 28, 34, 112, 1, 20, 20,
-			0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 31, 34, 113, 1, 30, 50, 0, 0, 97, 97, 0, 0, 0, 0, 0, 0, 105, 34, 114, 2,
-			29, 29, 115, 0, 97, 97, 105, 0, 0, 0, 0, 0, 107, 34, 115, 2, 29, 31, 135, 0, 97, 97, 117, 0, 0, 0, 0, 0, 109, 34,
-			116, 2, 29, 33, 130, 0, 97, 110, 103, 0, 0, 0, 0, 0, 111, 34, 117, 2, 29, 29, 110, 0, 97, 97, 110, 103, 0, 0, 0, 0,
-			113, 34, 118, 2, 29, 29, 135, 0, 97, 105, 0, 0, 0, 0, 0, 0, 117, 34, 119, 2, 28, 31, 100, 0, 97, 117, 0, 0, 0, 0,
-			0, 0, 119, 34, 120, 2, 29, 33, 100, 0, 101, 105, 0, 0, 0, 0, 0, 0, 123, 34, 121, 2, 30, 31, 110, 0, 101, 110, 103, 0,
-			0, 0, 0, 0, 125, 34, 122, 2, 30, 30, 110, 0, 101, 117, 0, 0, 0, 0, 0, 0, 127, 34, 123, 2, 30, 33, 130, 0, 105, 110,
-			103, 0, 0, 0, 0, 0, 138, 34, 124, 2, 31, 31, 110, 0, 105, 117, 0, 0, 0, 0, 0, 0, 140, 34, 125, 2, 31, 33, 100, 0,
-			110, 103, 0, 0, 0, 0, 0, 0, 142, 34, 126, 2, 0, 0, 175, 0, 111, 101, 110, 103, 0, 0, 0, 0, 148, 34, 127, 2, 32, 30,
-			140, 0, 111, 105, 0, 0, 0, 0, 0, 0, 150, 34, 128, 2, 32, 31, 100, 0, 111, 117, 0, 0, 0, 0, 0, 0, 152, 34, 129, 2,
-			32, 33, 100, 0, 111, 110, 103, 0, 0, 0, 0, 0, 154, 34, 130, 2, 32, 32, 110, 0, 117, 110, 103, 0, 0, 0, 0, 0, 162, 34,
-			131, 2, 33, 33, 100, 0, 117, 105, 0, 0, 0, 0, 0, 0, 164, 34, 132, 2, 33, 31, 110, 0, 111, 101, 0, 0, 0, 0, 0, 0,
-			166, 34, 133, 2, 28, 28, 115, 0, 101, 111, 0, 0, 0, 0, 0, 0, 168, 34, 134, 2, 28, 28, 85, 0, 101, 111, 105, 0, 0, 0,
-			0, 0, 170, 34, 135, 2, 28, 31, 110, 0, 121, 117, 0, 0, 0, 0, 0, 0, 172, 34, 136, 2, 33, 33, 110, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 122, 104, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
-			188, 35, 13, 2, 28, 28, 100, 0, 97, 0, 0, 0, 0, 0, 0, 0, 174, 35, 35, 2, 29, 29, 125, 0, 105, 0, 0, 0, 0, 0,
-			0, 0, 199, 35, 37, 2, 31, 31, 125, 0, 111, 0, 0, 0, 0, 0, 0, 0, 221, 35, 39, 2, 32, 32, 125, 0, 117, 0, 0, 0,
-			0, 0, 0, 0, 232, 35, 40, 2, 33, 33, 125, 0, 78, 45, 0, 0, 0, 0, 0, 0, 172, 35, 43, 2, 68, 68, 125, 0, 116, 0,
-			0, 0, 8, 0, 4, 0, 53, 35, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 27, 35, 48, 4, 0, 0, 0, 2,
-			107, 0, 0, 0, 8, 0, 10, 0, 73, 35, 49, 4, 0, 0, 0, 2, 110, 0, 0, 0, 16, 0, 4, 0, 204, 34, 50, 8, 0, 0,
-			0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 250, 34, 55, 3, 0, 0, 0, 2, 106, 0, 0, 0, 0, 2, 0, 0, 1, 35, 57, 3,
-			0, 0, 0, 1, 78, 0, 0, 0, 16, 0, 8, 0, 226, 34, 68, 8, 0, 0, 0, 7, 116, 83, 59, 0, 40, 2, 7, 0, 93, 35,
-			78, 4, 0, 0, 0, 2, 102, 0, 0, 0, 8, 0, 2, 0, 47, 35, 83, 6, 0, 0, 0, 2, 115, 46, 0, 0, 40, 0, 6, 0,
-			119, 35, 93, 6, 0, 0, 0, 3, 83, 59, 0, 0, 40, 0, 6, 0, 111, 35, 97, 6, 0, 0, 0, 2, 49, 49, 0, 0, 0, 0,
-			0, 0, 174, 34, 108, 1, 9, 12, 0, 0, 50, 49, 0, 0, 0, 0, 0, 0, 177, 34, 109, 1, 10, 20, 0, 0, 50, 49, 52, 0,
-			0, 0, 0, 0, 180, 34, 110, 1, 18, 42, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 183, 34, 111, 1, 20, 22, 0, 0, 51, 51,
-			0, 0, 0, 0, 0, 0, 186, 34, 112, 1, 30, 32, 0, 0, 51, 53, 0, 0, 0, 0, 0, 0, 189, 34, 113, 1, 30, 50, 0, 0,
-			52, 52, 0, 0, 0, 0, 0, 0, 192, 34, 114, 1, 38, 41, 0, 0, 53, 49, 0, 0, 0, 0, 0, 0, 195, 34, 115, 1, 10, 50,
-			0, 0, 53, 51, 0, 0, 0, 0, 0, 0, 198, 34, 116, 1, 30, 50, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 201, 34, 117, 1,
-			50, 55, 0, 0, 112, 104, 0, 0, 8, 0, 1, 0, 37, 35, 118, 4, 0, 0, 0, 2, 116, 104, 0, 0, 8, 0, 4, 0, 63, 35,
-			119, 4, 0, 0, 0, 2, 107, 104, 0, 0, 8, 0, 10, 0, 83, 35, 120, 4, 0, 0, 0, 2, 116, 83, 59, 104, 40, 2, 7, 0,
-			102, 35, 121, 4, 0, 0, 0, 2, 116, 115, 0, 0, 40, 0, 4, 0, 132, 35, 122, 4, 0, 0, 0, 2, 116, 115, 104, 0, 40, 0,
-			4, 0, 142, 35, 123, 4, 0, 0, 0, 2, 116, 115, 46, 0, 40, 0, 6, 0, 152, 35, 124, 6, 0, 0, 0, 3, 116, 115, 46, 104,
-			40, 0, 6, 0, 162, 35, 125, 6, 0, 0, 0, 3, 65, 0, 0, 0, 0, 0, 0, 0, 179, 35, 126, 2, 29, 29, 125, 0, 97, 105,
-			0, 0, 0, 0, 0, 0, 184, 35, 127, 2, 29, 31, 125, 0, 65, 117, 0, 0, 0, 0, 0, 0, 186, 35, 128, 2, 29, 33, 125, 0,
-			64, 114, 0, 0, 0, 0, 0, 0, 193, 35, 129, 2, 28, 28, 175, 0, 69, 0, 0, 0, 0, 0, 0, 0, 195, 35, 130, 2, 30, 30,
-			125, 0, 101, 105, 0, 0, 0, 0, 0, 0, 197, 35, 131, 2, 30, 31, 125, 0, 105, 91, 0, 0, 0, 0, 0, 0, 207, 35, 132, 2,
-			31, 31, 125, 0, 105, 46, 0, 0, 0, 0, 0, 0, 209, 35, 133, 2, 31, 31, 125, 0, 105, 65, 0, 0, 0, 0, 0, 0, 211, 35,
-			134, 2, 31, 29, 125, 0, 105, 65, 117, 0, 0, 0, 0, 0, 213, 35, 135, 2, 31, 33, 125, 0, 105, 69, 0, 0, 0, 0, 0, 0,
-			215, 35, 136, 2, 31, 30, 125, 0, 105, 111, 0, 0, 0, 0, 0, 0, 217, 35, 137, 2, 31, 32, 125, 0, 105, 111, 117, 0, 0, 0,
-			0, 0, 219, 35, 138, 2, 31, 33, 125, 0, 111, 45, 0, 0, 0, 0, 0, 0, 226, 35, 139, 2, 32, 32, 125, 0, 111, 117, 0, 0,
-			0, 0, 0, 0, 228, 35, 140, 2, 32, 33, 125, 0, 111, 110, 103, 0, 0, 0, 0, 0, 230, 35, 141, 2, 32, 32, 250, 0, 117, 65,
-			0, 0, 0, 0, 0, 0, 237, 35, 142, 2, 33, 29, 125, 0, 117, 97, 0, 0, 0, 0, 0, 0, 239, 35, 143, 2, 33, 29, 125, 0,
-			117, 97, 105, 0, 0, 0, 0, 0, 241, 35, 144, 2, 33, 31, 125, 0, 117, 64, 0, 0, 0, 0, 0, 0, 243, 35, 145, 2, 33, 28,
-			115, 0, 117, 101, 105, 0, 0, 0, 0, 0, 245, 35, 146, 2, 33, 31, 125, 0, 117, 111, 0, 0, 0, 0, 0, 0, 247, 35, 147, 2,
-			33, 32, 140, 0, 121, 0, 0, 0, 0, 0, 0, 0, 249, 35, 148, 2, 31, 33, 125, 0, 121, 117, 0, 0, 0, 0, 0, 0, 254, 35,
-			149, 2, 31, 33, 125, 0, 121, 38, 0, 0, 0, 0, 0, 0, 0, 36, 150, 2, 31, 30, 125, 0, 121, 69, 0, 0, 0, 0, 0, 0,
-			2, 36, 151, 2, 31, 30, 125, 0, 121, 64, 0, 0, 0, 0, 0, 0, 4, 36, 152, 2, 31, 28, 125, 0, 121, 105, 0, 0, 0, 0,
-			0, 0, 6, 36, 153, 2, 31, 31, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0,
-			0, 0, 0, 0, 115, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 12, 36, 35, 2, 29, 29, 105, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			10, 36, 36, 2, 30, 30, 105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 8, 36, 37, 2, 31, 31, 100, 0, 111, 0, 0, 0, 0, 0,
-			0, 0, 14, 36, 39, 2, 32, 32, 105, 0, 117, 0, 0, 0, 0, 0, 0, 0, 16, 36, 40, 2, 33, 33, 100, 0, 116, 0, 0, 0,
-			8, 0, 4, 0, 36, 36, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 76, 36, 48, 4, 0, 71, 0, 2, 107, 0,
-			0, 0, 8, 0, 8, 0, 157, 36, 49, 4, 0, 81, 0, 2, 119, 0, 0, 0, 0, 0, 0, 0, 140, 36, 58, 3, 0, 0, 0, 7,
-			110, 94, 0, 0, 16, 2, 7, 0, 86, 36, 67, 8, 0, 0, 0, 4, 78, 0, 0, 0, 16, 0, 8, 0, 113, 36, 68, 8, 0, 0,
-			0, 8, 100, 0, 0, 0, 16, 0, 3, 0, 2, 7, 72, 5, 0, 0, 0, 5, 74, 0, 0, 0, 48, 2, 7, 0, 172, 36, 79, 5,
-			0, 80, 0, 5, 103, 0, 0, 0, 16, 0, 8, 0, 197, 36, 81, 5, 0, 49, 0, 5, 84, 0, 0, 0, 8, 0, 3, 0, 46, 36,
-			87, 6, 0, 86, 0, 3, 122, 0, 0, 0, 48, 0, 4, 0, 18, 36, 88, 7, 0, 89, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0,
-			66, 36, 89, 6, 0, 88, 0, 3, 83, 0, 0, 0, 40, 0, 6, 0, 56, 36, 91, 6, 0, 90, 0, 3, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 3, 0, 0, 0, 0, 0, 0, 116, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 9, 0, 0, 70, 0, 64, 0, 0, 0, 0, 0, 0, 0, 32, 37, 13, 2, 28, 28, 90, 0, 97, 0, 0, 0, 0, 0, 0, 0,
-			12, 37, 35, 2, 29, 29, 100, 0, 101, 0, 0, 0, 0, 0, 0, 0, 240, 36, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0,
-			0, 0, 212, 36, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 36, 37, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0,
-			0, 0, 0, 0, 18, 37, 40, 2, 33, 33, 90, 0, 82, 0, 0, 0, 128, 0, 0, 0, 84, 37, 51, 3, 0, 0, 0, 6, 74, 0,
-			0, 0, 16, 0, 6, 0, 63, 37, 79, 5, 0, 0, 0, 5, 99, 0, 0, 0, 8, 0, 7, 0, 50, 37, 80, 4, 0, 0, 0, 2,
-			69, 0, 0, 0, 0, 0, 0, 0, 6, 37, 109, 2, 30, 30, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 48, 37, 110, 2, 32, 32,
-			100, 0, 85, 0, 0, 0, 0, 0, 0, 0, 30, 37, 111, 2, 33, 33, 90, 0, 121, 0, 0, 0, 0, 0, 0, 0, 226, 36, 112, 2,
-			33, 33, 90, 0, 89, 0, 0, 0, 0, 0, 0, 0, 238, 36, 113, 2, 33, 33, 90, 0, 73, 0, 0, 0, 0, 0, 0, 0, 224, 36,
-			124, 2, 31, 31, 90, 0, 38, 0, 0, 0, 0, 0, 0, 0, 8, 37, 125, 2, 29, 29, 100, 0, 87, 0, 0, 0, 0, 0, 0, 0,
-			10, 37, 126, 2, 28, 28, 100, 0, 71, 0, 0, 0, 0, 0, 128, 0, 101, 0, 127, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 0, 0, 0, 0, 0, 0, 107, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 103, 37,
-			35, 2, 29, 29, 105, 0, 101, 0, 0, 0, 0, 0, 0, 0, 97, 37, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0,
-			90, 37, 37, 2, 31, 31, 95, 0, 111, 0, 0, 0, 0, 0, 0, 0, 107, 37, 39, 2, 32, 32, 110, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 111, 37, 40, 2, 33, 33, 100, 0, 74, 0, 0, 0, 16, 0, 6, 0, 144, 37, 79, 5, 0, 80, 0, 5, 99, 0, 0, 0,
-			8, 0, 7, 0, 131, 37, 80, 4, 0, 79, 0, 2, 120, 0, 0, 0, 8, 0, 8, 0, 121, 37, 101, 6, 0, 0, 0, 3, 69, 0,
-			0, 0, 0, 0, 0, 0, 99, 37, 109, 2, 29, 29, 75, 0, 85, 0, 0, 0, 0, 0, 0, 0, 109, 37, 111, 2, 33, 33, 65, 0,
-			121, 0, 0, 0, 0, 0, 0, 0, 113, 37, 112, 2, 33, 33, 80, 0, 101, 85, 0, 0, 0, 0, 0, 0, 117, 37, 115, 2, 30, 31,
-			140, 0, 101, 73, 0, 0, 0, 0, 0, 0, 115, 37, 118, 2, 30, 31, 140, 0, 73, 0, 0, 0, 0, 0, 0, 0, 92, 37, 124, 2,
-			28, 28, 55, 0, 69, 35, 0, 0, 0, 0, 0, 0, 101, 37, 125, 2, 30, 30, 70, 0, 56, 0, 0, 0, 0, 0, 0, 0, 105, 37,
-			126, 2, 28, 28, 80, 0, 86, 0, 0, 0, 0, 0, 0, 0, 119, 37, 127, 2, 28, 28, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 0, 0, 0, 0, 105, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 159, 37, 13, 2,
-			28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 163, 37, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 177, 37,
-			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 181, 37, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0,
-			189, 37, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 193, 37, 40, 2, 33, 33, 90, 0, 100, 0, 0, 0, 16, 0,
-			4, 0, 15, 3, 72, 5, 0, 47, 0, 5, 69, 0, 0, 0, 0, 0, 0, 0, 168, 37, 109, 2, 30, 30, 90, 0, 79, 0, 0, 0,
-			0, 0, 0, 0, 185, 37, 110, 2, 32, 32, 90, 0, 97, 85, 0, 0, 0, 0, 0, 0, 211, 37, 114, 2, 29, 33, 120, 0, 97, 73,
-			0, 0, 0, 0, 0, 0, 197, 37, 117, 2, 29, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 203, 37, 118, 2, 30, 31, 120, 0,
-			69, 50, 0, 0, 0, 0, 0, 0, 173, 37, 124, 2, 30, 30, 90, 0, 79, 73, 0, 0, 0, 0, 0, 0, 205, 37, 125, 2, 32, 31,
-			120, 0, 64, 85, 0, 0, 0, 0, 0, 0, 217, 37, 126, 2, 28, 33, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 115, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 219, 37, 13, 2, 28, 28, 75, 0,
-			97, 0, 0, 0, 0, 0, 0, 0, 232, 37, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 248, 37, 36, 2, 30, 30,
-			85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 253, 37, 37, 2, 31, 31, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0, 20, 38, 40, 2,
-			33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 3, 0, 10, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 71, 38,
-			48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 148, 38, 49, 4, 0, 81, 0, 2, 119, 0, 0, 0, 0, 0, 0, 0,
-			67, 38, 58, 3, 0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 34, 38, 64, 3, 0, 0, 0, 7, 100, 0, 0, 0, 16, 0,
-			4, 0, 87, 38, 72, 5, 0, 47, 0, 5, 100, 90, 59, 0, 48, 2, 6, 0, 128, 38, 77, 5, 0, 78, 0, 5, 99, 0, 0, 0,
-			40, 2, 7, 0, 32, 5, 80, 4, 0, 77, 0, 2, 122, 0, 0, 0, 48, 0, 4, 0, 114, 38, 88, 7, 0, 89, 0, 6, 64, 47,
-			0, 0, 0, 0, 0, 0, 221, 37, 108, 2, 28, 28, 50, 0, 86, 0, 0, 0, 0, 0, 0, 0, 223, 37, 109, 2, 28, 28, 85, 0,
-			73, 35, 0, 0, 0, 0, 0, 0, 229, 37, 110, 2, 28, 28, 85, 0, 97, 47, 0, 0, 0, 0, 0, 0, 237, 37, 111, 2, 29, 29,
-			85, 0, 65, 0, 0, 0, 0, 0, 0, 0, 239, 37, 112, 2, 29, 29, 85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 244, 37, 113, 2,
-			30, 30, 85, 0, 69, 35, 0, 0, 0, 0, 0, 0, 246, 37, 114, 2, 28, 28, 85, 0, 73, 0, 0, 0, 0, 0, 0, 0, 11, 38,
-			115, 2, 31, 31, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 13, 38, 116, 2, 33, 33, 80, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			15, 38, 117, 2, 32, 32, 85, 0, 97, 73, 0, 0, 0, 0, 0, 0, 22, 38, 118, 2, 29, 31, 110, 0, 101, 73, 0, 0, 0, 0,
-			0, 0, 24, 38, 119, 2, 30, 31, 110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 26, 38, 120, 2, 32, 31, 110, 0, 121, 69, 0, 0,
-			0, 0, 0, 0, 28, 38, 121, 2, 33, 30, 120, 0, 108, 47, 52, 0, 0, 0, 0, 0, 30, 38, 122, 3, 0, 0, 0, 7, 108, 108,
-			0, 0, 0, 0, 0, 0, 54, 38, 123, 3, 0, 0, 0, 7, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6, 124, 4, 0, 125, 0, 2,
-			100, 122, 0, 0, 48, 0, 4, 0, 34, 6, 125, 5, 0, 124, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 24, 1, 0, 0, 0, 0, 0, 0, 104, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 161, 38, 13, 2, 28, 28, 80, 0, 116, 35,
-			0, 0, 8, 0, 4, 0, 245, 4, 25, 4, 0, 0, 0, 2, 97, 0, 0, 0, 0, 0, 0, 0, 169, 38, 35, 2, 29, 29, 100, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 167, 38, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 163, 38, 37, 2, 31, 31,
-			80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 171, 38, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 173, 38, 40, 2,
-			33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0, 10, 5, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 55, 6,
-			48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6, 49, 4, 0, 0, 0, 2, 116, 83, 0, 0, 40, 0, 6, 0,
-			193, 38, 76, 4, 0, 75, 0, 2, 81, 0, 0, 0, 16, 0, 10, 0, 207, 4, 100, 7, 0, 0, 0, 6, 121, 0, 0, 0, 0, 0,
-			0, 0, 165, 38, 108, 2, 31, 31, 80, 0, 87, 0, 0, 0, 0, 0, 0, 0, 175, 38, 109, 2, 28, 28, 90, 0, 97, 73, 0, 0,
-			0, 0, 0, 0, 177, 38, 110, 2, 29, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 179, 38, 111, 2, 30, 31, 120, 0, 105, 64,
-			0, 0, 0, 0, 0, 0, 181, 38, 112, 2, 31, 28, 120, 0, 112, 35, 0, 0, 8, 0, 1, 0, 74, 6, 113, 4, 0, 0, 0, 2,
-			116, 115, 35, 0, 40, 0, 4, 0, 21, 6, 114, 4, 0, 0, 0, 2, 107, 35, 0, 0, 8, 0, 8, 0, 57, 5, 115, 4, 0, 0,
-			0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 34, 6, 116, 5, 0, 117, 0, 5, 116, 115, 0, 0, 40, 0, 4, 0, 183, 38, 117, 4,
-			0, 0, 0, 2, 116, 83, 35, 0, 40, 0, 6, 0, 23, 5, 118, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 100, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 168, 40, 13, 2, 28, 28,
-			30, 0, 64, 45, 0, 0, 2, 0, 16, 0, 171, 40, 14, 2, 28, 28, 90, 0, 114, 0, 0, 0, 0, 0, 0, 0, 162, 41, 34, 3,
-			0, 0, 0, 7, 101, 0, 0, 0, 0, 0, 0, 0, 208, 40, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 197, 40,
-			37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 54, 41, 39, 2, 32, 32, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			37, 41, 40, 2, 33, 33, 70, 0, 116, 0, 0, 0, 8, 0, 4, 0, 242, 41, 47, 4, 0, 72, 0, 7, 112, 0, 0, 0, 8, 0,
-			1, 0, 216, 41, 48, 4, 0, 71, 0, 7, 82, 0, 0, 0, 0, 0, 0, 0, 197, 41, 51, 3, 0, 0, 0, 6, 108, 0, 0, 0,
-			0, 0, 0, 0, 156, 41, 55, 3, 0, 0, 0, 7, 106, 0, 0, 0, 0, 2, 0, 0, 3, 42, 57, 3, 0, 0, 0, 7, 108, 47,
-			51, 0, 0, 0, 0, 0, 160, 41, 60, 3, 0, 0, 40, 7, 118, 0, 0, 0, 16, 0, 2, 0, 241, 3, 84, 7, 0, 83, 0, 6,
-			115, 0, 0, 0, 40, 0, 4, 0, 201, 41, 89, 6, 0, 88, 0, 3, 86, 0, 0, 0, 0, 0, 0, 0, 82, 41, 108, 2, 28, 28,
-			70, 0, 63, 86, 0, 0, 0, 0, 0, 0, 86, 41, 109, 2, 28, 28, 70, 0, 51, 45, 0, 0, 0, 0, 0, 0, 192, 40, 110, 3,
-			0, 0, 0, 7, 63, 105, 0, 0, 0, 0, 0, 0, 201, 40, 111, 2, 31, 31, 70, 0, 51, 0, 0, 0, 2, 0, 0, 0, 190, 40,
-			112, 2, 29, 29, 20, 0, 73, 0, 0, 0, 0, 0, 0, 0, 205, 40, 113, 2, 31, 31, 65, 0, 63, 101, 0, 0, 0, 0, 0, 0,
-			212, 40, 114, 2, 30, 30, 70, 0, 69, 0, 0, 0, 0, 0, 0, 0, 216, 40, 115, 2, 30, 30, 70, 0, 63, 69, 0, 0, 0, 0,
-			0, 0, 234, 40, 116, 2, 30, 30, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 240, 40, 117, 2, 30, 30, 70, 0, 63, 38, 0, 0,
-			0, 0, 0, 0, 4, 41, 118, 2, 30, 30, 70, 0, 38, 35, 0, 0, 0, 0, 0, 0, 10, 41, 119, 2, 30, 30, 70, 0, 63, 38,
-			35, 0, 0, 0, 0, 0, 16, 41, 120, 2, 30, 30, 70, 0, 65, 0, 0, 0, 0, 0, 0, 0, 22, 41, 121, 2, 29, 29, 70, 0,
-			63, 65, 0, 0, 0, 0, 0, 0, 30, 41, 122, 2, 29, 29, 70, 0, 63, 117, 0, 0, 0, 0, 0, 0, 50, 41, 123, 2, 33, 33,
-			70, 0, 63, 111, 0, 0, 0, 0, 0, 0, 63, 41, 124, 2, 32, 32, 70, 0, 79, 0, 0, 0, 0, 0, 0, 0, 67, 41, 125, 2,
-			32, 32, 70, 0, 63, 79, 0, 0, 0, 0, 0, 0, 76, 41, 126, 2, 32, 32, 70, 0, 48, 0, 0, 0, 0, 0, 0, 0, 90, 41,
-			127, 2, 32, 32, 70, 0, 63, 48, 0, 0, 0, 0, 0, 0, 96, 41, 128, 2, 32, 32, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0,
-			102, 41, 129, 2, 31, 31, 70, 0, 63, 121, 0, 0, 0, 0, 0, 0, 106, 41, 130, 2, 31, 31, 70, 0, 89, 0, 0, 0, 0, 0,
-			0, 0, 110, 41, 131, 2, 31, 31, 70, 0, 87, 0, 0, 0, 0, 0, 0, 0, 117, 41, 132, 2, 28, 28, 70, 0, 63, 87, 0, 0,
-			0, 0, 0, 0, 121, 41, 133, 2, 28, 28, 70, 0, 87, 35, 0, 0, 0, 0, 0, 0, 125, 41, 134, 2, 28, 28, 70, 0, 63, 87,
-			35, 0, 0, 0, 0, 0, 129, 41, 135, 2, 28, 28, 70, 0, 97, 73, 0, 0, 0, 0, 0, 0, 133, 41, 136, 2, 29, 31, 150, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 107, 97, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
-			2, 0, 0, 0, 38, 42, 13, 2, 28, 28, 60, 0, 116, 35, 0, 0, 8, 0, 4, 0, 245, 4, 25, 4, 0, 0, 0, 2, 114, 0,
-			0, 0, 128, 0, 0, 0, 119, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 47, 42, 35, 2, 29, 29, 90, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 42, 42, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 40, 42, 37, 2, 31, 31,
-			80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 52, 42, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 54, 42, 40, 2,
-			33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 4, 0, 90, 6, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 55, 6,
-			48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 116, 6, 49, 4, 0, 0, 0, 2, 99, 0, 0, 0, 40, 0, 7, 0,
-			103, 6, 80, 4, 0, 0, 0, 2, 81, 0, 0, 0, 16, 0, 8, 0, 88, 42, 100, 7, 0, 101, 0, 6, 112, 35, 0, 0, 8, 0,
-			1, 0, 74, 6, 108, 4, 0, 0, 0, 2, 116, 115, 35, 0, 40, 0, 4, 0, 21, 6, 109, 4, 0, 0, 0, 2, 107, 35, 0, 0,
-			8, 0, 8, 0, 56, 42, 110, 4, 0, 81, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 34, 6, 111, 5, 0, 112, 0, 5, 116, 115,
-			0, 0, 40, 0, 4, 0, 78, 42, 112, 4, 0, 0, 0, 2, 81, 50, 0, 0, 16, 0, 8, 0, 100, 42, 113, 7, 0, 101, 0, 6,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 102, 97, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 39, 0, 0, 0, 0, 0, 0, 99, 97, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
+			0, 0, 0, 0, 0, 0, 69, 27, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 76, 27, 36, 2, 30, 30, 85, 0,
+			111, 0, 0, 0, 0, 0, 0, 0, 87, 27, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 92, 27, 40, 2, 33, 33,
+			80, 0, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0, 0, 0, 79, 27, 109, 2,
+			30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 84, 27, 110, 2, 32, 32, 85, 0, 85, 0, 0, 0, 2, 0, 0, 0, 90, 27,
+			111, 2, 33, 33, 80, 0, 97, 35, 0, 0, 2, 0, 0, 0, 72, 27, 124, 2, 28, 28, 85, 0, 69, 50, 0, 0, 0, 0, 0, 0,
+			82, 27, 125, 2, 30, 30, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0,
+			0, 0, 112, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 42, 0, 0, 0, 16, 0, 4, 0, 188, 27, 16, 5, 0, 0, 0, 6, 101, 0, 0, 0, 0, 0, 0, 0, 135, 27,
+			36, 2, 30, 30, 80, 0, 117, 0, 0, 0, 0, 0, 0, 0, 147, 27, 40, 2, 33, 33, 80, 0, 114, 45, 0, 0, 0, 0, 128, 0,
+			100, 7, 44, 3, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7, 120, 0, 0, 0, 128, 0,
+			0, 0, 167, 27, 101, 3, 0, 0, 0, 6, 69, 0, 0, 0, 0, 0, 0, 0, 133, 27, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0,
+			0, 0, 0, 0, 145, 27, 110, 2, 32, 32, 85, 0, 85, 0, 0, 0, 0, 0, 0, 0, 149, 27, 111, 2, 33, 33, 70, 0, 121, 0,
+			0, 0, 0, 0, 0, 0, 137, 27, 112, 2, 31, 31, 55, 0, 101, 85, 0, 0, 0, 0, 0, 0, 163, 27, 115, 2, 30, 33, 115, 0,
+			97, 73, 0, 0, 0, 0, 0, 0, 154, 27, 117, 2, 29, 31, 115, 0, 101, 73, 0, 0, 0, 0, 0, 0, 157, 27, 118, 2, 30, 31,
+			105, 0, 73, 0, 0, 0, 2, 0, 0, 0, 95, 27, 124, 2, 31, 31, 45, 0, 101, 126, 0, 0, 0, 0, 0, 0, 97, 27, 125, 2,
+			30, 30, 120, 0, 105, 126, 0, 0, 0, 0, 0, 0, 99, 27, 126, 2, 31, 31, 120, 0, 111, 126, 0, 0, 0, 0, 0, 0, 102, 27,
+			127, 2, 32, 32, 120, 0, 117, 126, 0, 0, 0, 0, 0, 0, 104, 27, 128, 2, 33, 33, 90, 0, 38, 126, 0, 0, 0, 0, 0, 0,
+			106, 27, 129, 2, 28, 28, 90, 0, 38, 85, 126, 0, 0, 0, 0, 0, 111, 27, 130, 2, 28, 33, 120, 0, 111, 73, 126, 0, 0, 0,
+			0, 0, 118, 27, 131, 2, 32, 31, 130, 0, 38, 0, 0, 0, 0, 0, 0, 0, 125, 27, 132, 2, 28, 28, 90, 0, 38, 47, 0, 0,
+			0, 0, 0, 0, 127, 27, 133, 2, 28, 28, 90, 0, 65, 0, 0, 0, 0, 0, 0, 0, 131, 27, 134, 2, 29, 29, 100, 0, 105, 47,
+			0, 0, 0, 0, 0, 0, 140, 27, 135, 2, 31, 31, 75, 0, 79, 73, 0, 0, 0, 0, 0, 0, 160, 27, 136, 2, 32, 31, 115, 0,
+			69, 85, 0, 0, 0, 0, 0, 0, 165, 27, 137, 2, 30, 33, 115, 0, 115, 35, 0, 0, 40, 0, 4, 0, 183, 27, 138, 6, 0, 88,
+			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 42, 0, 0, 0, 0, 0, 0, 112, 116, 45, 112,
+			116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
+			0, 0, 0, 0, 0, 0, 215, 27, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 233, 27, 36, 2, 30, 30, 80, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 240, 27, 37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 252, 27, 39, 2, 32, 32,
+			85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 255, 27, 40, 2, 33, 33, 80, 0, 82, 0, 0, 0, 0, 0, 128, 0, 72, 0, 51, 3,
+			0, 0, 0, 7, 119, 0, 0, 0, 0, 0, 0, 0, 195, 6, 58, 3, 0, 0, 0, 7, 120, 0, 0, 0, 128, 0, 0, 0, 7, 28,
+			101, 3, 0, 0, 0, 7, 69, 0, 0, 0, 0, 0, 0, 0, 230, 27, 109, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+			250, 27, 110, 2, 32, 32, 85, 0, 85, 0, 0, 0, 0, 0, 0, 0, 1, 28, 111, 2, 33, 33, 55, 0, 121, 0, 0, 0, 0, 0,
+			0, 0, 236, 27, 112, 2, 28, 28, 55, 0, 38, 126, 0, 0, 0, 0, 0, 0, 218, 27, 129, 2, 30, 28, 120, 0, 38, 85, 126, 0,
+			0, 0, 0, 0, 223, 27, 130, 2, 28, 33, 120, 0, 38, 0, 0, 0, 2, 0, 0, 0, 205, 27, 132, 2, 28, 28, 90, 0, 38, 47,
+			0, 0, 0, 0, 0, 0, 209, 27, 133, 2, 28, 28, 90, 0, 105, 47, 0, 0, 0, 0, 0, 0, 243, 27, 135, 2, 31, 31, 50, 0,
+			69, 85, 0, 0, 0, 0, 0, 0, 5, 28, 137, 2, 30, 33, 110, 0, 115, 35, 0, 0, 40, 0, 6, 0, 19, 28, 138, 6, 0, 90,
+			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 114, 111, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 0, 0, 0, 0, 53, 28, 13, 2, 28, 28, 85, 0, 114, 0, 0, 0, 128, 0, 0, 0, 81, 28, 34, 3, 0, 0, 0, 7,
+			97, 0, 0, 0, 0, 0, 0, 0, 51, 28, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 45, 28, 36, 2, 30, 30,
+			90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 55, 28, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 57, 28, 40, 2,
+			33, 33, 80, 0, 122, 59, 0, 0, 48, 0, 4, 0, 236, 28, 94, 7, 0, 95, 0, 6, 115, 59, 0, 0, 40, 0, 4, 0, 155, 28,
+			95, 6, 0, 94, 0, 3, 90, 59, 0, 0, 48, 0, 6, 0, 250, 28, 96, 7, 0, 97, 0, 6, 83, 59, 0, 0, 40, 0, 6, 0,
+			165, 28, 97, 6, 0, 96, 0, 3, 121, 0, 0, 0, 0, 0, 0, 0, 47, 28, 112, 2, 28, 28, 90, 0, 89, 0, 0, 0, 0, 0,
+			0, 0, 59, 28, 113, 2, 28, 28, 90, 0, 73, 94, 0, 0, 2, 0, 0, 0, 24, 28, 124, 2, 31, 31, 35, 0, 108, 59, 0, 0,
+			0, 0, 0, 0, 106, 28, 125, 3, 0, 0, 0, 7, 109, 59, 0, 0, 16, 0, 1, 0, 113, 28, 126, 8, 0, 0, 0, 4, 110, 59,
+			0, 0, 16, 0, 4, 0, 120, 28, 127, 8, 0, 0, 0, 4, 105, 47, 0, 0, 0, 0, 0, 0, 41, 28, 128, 2, 31, 31, 75, 0,
+			64, 73, 0, 0, 0, 0, 0, 0, 61, 28, 129, 2, 28, 31, 125, 0, 64, 85, 0, 0, 0, 0, 0, 0, 63, 28, 130, 2, 28, 33,
+			130, 0, 111, 85, 0, 0, 0, 0, 0, 0, 65, 28, 131, 2, 32, 33, 130, 0, 105, 73, 0, 0, 0, 0, 0, 0, 67, 28, 132, 2,
+			31, 31, 125, 0, 121, 73, 0, 0, 0, 0, 0, 0, 69, 28, 133, 2, 28, 31, 105, 0, 121, 85, 0, 0, 0, 0, 0, 0, 71, 28,
+			134, 2, 28, 33, 115, 0, 101, 97, 0, 0, 0, 0, 0, 0, 73, 28, 135, 2, 30, 29, 125, 0, 101, 111, 0, 0, 0, 0, 0, 0,
+			75, 28, 136, 2, 30, 32, 135, 0, 101, 91, 117, 0, 0, 0, 0, 0, 77, 28, 137, 2, 30, 33, 125, 0, 79, 97, 0, 0, 0, 0,
+			0, 0, 79, 28, 138, 2, 32, 29, 125, 0, 112, 59, 0, 0, 8, 0, 1, 0, 127, 28, 139, 4, 0, 71, 0, 2, 116, 59, 0, 0,
+			8, 0, 3, 0, 134, 28, 140, 4, 0, 72, 0, 2, 116, 115, 59, 0, 40, 0, 4, 0, 141, 28, 141, 4, 0, 0, 0, 2, 102, 59,
+			0, 0, 8, 0, 2, 0, 148, 28, 142, 6, 0, 84, 0, 3, 98, 59, 0, 0, 16, 0, 1, 0, 175, 28, 143, 5, 0, 139, 0, 5,
+			100, 59, 0, 0, 16, 0, 3, 0, 189, 28, 144, 5, 0, 140, 0, 5, 42, 59, 0, 0, 16, 0, 4, 0, 200, 28, 145, 5, 0, 0,
+			0, 2, 118, 59, 0, 0, 16, 0, 2, 0, 218, 28, 146, 7, 0, 142, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 10, 3, 0, 0, 0, 0, 0, 0, 101, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 128, 0, 0, 0, 152, 0, 34, 3, 0, 0, 30, 6,
+			97, 0, 0, 0, 0, 0, 0, 0, 12, 29, 35, 2, 29, 29, 70, 0, 101, 0, 0, 0, 0, 0, 0, 0, 21, 29, 36, 2, 30, 30,
+			70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 23, 29, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 26, 29, 39, 2,
+			32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 28, 29, 40, 2, 33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 4, 0, 30, 29,
+			47, 4, 0, 72, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 43, 29, 49, 4, 0, 81, 0, 2, 100, 0, 0, 0, 16, 0, 4, 0,
+			12, 3, 72, 5, 0, 47, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 0, 0, 0, 0,
+			0, 0, 103, 114, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 50, 0, 101, 0, 0, 0, 0, 0, 0, 0, 64, 29,
+			36, 2, 30, 30, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 68, 29, 39, 2, 32, 32, 70, 0, 102, 0, 0, 0, 8, 0, 1, 0,
+			80, 29, 83, 4, 0, 0, 0, 2, 69, 0, 0, 0, 0, 0, 0, 0, 66, 29, 109, 2, 30, 30, 75, 0, 79, 0, 0, 0, 0, 0,
+			0, 0, 70, 29, 110, 2, 32, 32, 75, 0, 121, 0, 0, 0, 0, 0, 0, 0, 62, 29, 112, 2, 31, 31, 80, 0, 69, 85, 0, 0,
+			0, 0, 0, 0, 72, 29, 124, 2, 30, 33, 115, 0, 79, 73, 0, 0, 0, 0, 0, 0, 74, 29, 125, 2, 32, 31, 115, 0, 79, 85,
+			0, 0, 0, 0, 0, 0, 76, 29, 126, 2, 32, 33, 115, 0, 121, 73, 0, 0, 0, 0, 0, 0, 78, 29, 127, 2, 31, 31, 115, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 0, 115, 118, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0,
-			0, 0, 0, 0, 118, 42, 35, 2, 31, 31, 80, 0, 101, 0, 0, 0, 0, 0, 0, 0, 120, 42, 36, 2, 31, 31, 80, 0, 105, 0,
-			0, 0, 0, 0, 0, 0, 114, 42, 37, 2, 31, 31, 100, 0, 111, 0, 0, 0, 0, 0, 0, 0, 122, 42, 39, 2, 31, 31, 80, 0,
-			117, 0, 0, 0, 0, 0, 0, 0, 116, 42, 40, 2, 31, 31, 100, 0, 65, 0, 0, 0, 0, 0, 0, 0, 112, 42, 108, 2, 31, 31,
-			100, 0, 101, 73, 0, 0, 0, 0, 0, 0, 124, 42, 109, 2, 31, 31, 110, 0, 111, 85, 0, 0, 0, 0, 0, 0, 126, 42, 110, 2,
-			31, 31, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 0, 0, 0, 0, 0, 0, 114, 119,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 60, 0, 97, 0, 0, 0, 0, 0, 0, 0, 128, 42, 35, 2, 29, 29,
-			90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 141, 42, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 147, 42, 37, 2,
-			31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 153, 42, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 159, 42,
-			40, 2, 33, 33, 80, 0, 97, 47, 0, 0, 0, 0, 0, 0, 135, 42, 108, 2, 28, 28, 90, 0, 97, 35, 0, 0, 0, 0, 0, 0,
-			165, 42, 124, 2, 28, 28, 50, 0, 101, 35, 0, 0, 0, 0, 0, 0, 169, 42, 125, 2, 30, 30, 50, 0, 105, 35, 0, 0, 0, 0,
-			0, 0, 173, 42, 126, 2, 31, 31, 50, 0, 111, 35, 0, 0, 0, 0, 0, 0, 177, 42, 127, 2, 32, 32, 50, 0, 117, 35, 0, 0,
-			0, 0, 0, 0, 181, 42, 128, 2, 33, 33, 50, 0, 43, 0, 0, 0, 0, 0, 0, 0, 185, 42, 129, 1, 0, 30, 0, 0, 43, 50,
-			0, 0, 0, 0, 0, 0, 188, 42, 130, 1, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			8, 1, 0, 0, 0, 0, 0, 0, 112, 114, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 191, 42, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0,
-			0, 0, 0, 0, 198, 42, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 200, 42, 40, 2, 33, 33, 85, 0, 69, 0,
-			0, 0, 0, 0, 0, 0, 194, 42, 108, 2, 30, 30, 85, 0, 65, 0, 0, 0, 0, 0, 0, 0, 196, 42, 109, 2, 29, 29, 90, 0,
-			101, 73, 0, 0, 0, 0, 0, 0, 202, 42, 110, 2, 30, 31, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 204, 42, 111, 2, 29, 33,
-			115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 34, 0, 0, 0, 0, 0, 0, 115, 108, 0, 0,
+			0, 0, 0, 0, 123, 29, 35, 2, 29, 29, 70, 0, 105, 58, 0, 0, 0, 0, 0, 0, 86, 29, 108, 2, 31, 31, 90, 0, 73, 0,
+			0, 0, 0, 0, 0, 0, 92, 29, 109, 2, 31, 31, 65, 0, 101, 58, 0, 0, 0, 0, 0, 0, 95, 29, 110, 2, 30, 30, 105, 0,
+			69, 0, 0, 0, 0, 0, 0, 0, 97, 29, 111, 2, 30, 30, 70, 0, 69, 45, 0, 0, 2, 0, 0, 0, 105, 29, 112, 2, 28, 28,
+			70, 0, 69, 58, 0, 0, 0, 0, 0, 0, 100, 29, 113, 2, 30, 28, 110, 0, 69, 51, 0, 0, 0, 0, 0, 0, 102, 29, 114, 2,
+			30, 30, 70, 0, 121, 58, 0, 0, 0, 0, 0, 0, 109, 29, 115, 2, 33, 33, 110, 0, 121, 0, 0, 0, 0, 0, 0, 0, 111, 29,
+			116, 2, 33, 33, 70, 0, 117, 45, 0, 0, 0, 0, 0, 0, 113, 29, 117, 2, 33, 33, 100, 0, 89, 58, 0, 0, 0, 0, 0, 0,
+			117, 29, 118, 2, 28, 28, 110, 0, 87, 0, 0, 0, 0, 0, 0, 0, 119, 29, 119, 2, 28, 28, 70, 0, 56, 0, 0, 0, 0, 0,
+			0, 0, 121, 29, 120, 2, 33, 33, 70, 0, 38, 0, 0, 0, 0, 0, 0, 0, 129, 29, 121, 2, 29, 29, 70, 0, 65, 58, 0, 0,
+			0, 0, 0, 0, 131, 29, 122, 2, 29, 29, 125, 0, 79, 0, 0, 0, 0, 0, 0, 0, 133, 29, 123, 2, 32, 32, 70, 0, 111, 58,
+			0, 0, 0, 0, 0, 0, 135, 29, 124, 2, 32, 32, 105, 0, 85, 0, 0, 0, 0, 0, 0, 0, 137, 29, 125, 2, 33, 33, 70, 0,
+			117, 58, 0, 0, 0, 0, 0, 0, 139, 29, 126, 2, 33, 33, 105, 0, 115, 120, 0, 0, 8, 0, 8, 0, 141, 29, 127, 6, 0, 0,
+			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 110, 111, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 2, 0, 0, 0, 151, 29, 13, 2, 28, 28, 60, 0, 97, 0, 0, 0, 0, 0, 0, 0, 179, 29, 35, 2, 29, 29, 60, 0,
+			97, 35, 0, 0, 2, 0, 0, 0, 153, 29, 108, 2, 28, 29, 60, 0, 73, 0, 0, 0, 0, 0, 0, 0, 155, 29, 109, 2, 31, 31,
+			50, 0, 105, 58, 0, 0, 0, 0, 0, 0, 158, 29, 110, 2, 31, 31, 115, 0, 121, 0, 0, 0, 0, 0, 0, 0, 164, 29, 111, 2,
+			33, 33, 60, 0, 121, 58, 0, 0, 0, 0, 0, 0, 166, 29, 112, 2, 33, 33, 130, 0, 87, 0, 0, 0, 0, 0, 0, 0, 168, 29,
+			113, 2, 28, 28, 60, 0, 89, 58, 0, 0, 0, 0, 0, 0, 170, 29, 114, 2, 28, 28, 130, 0, 69, 0, 0, 0, 0, 0, 0, 0,
+			172, 29, 115, 2, 30, 30, 60, 0, 69, 58, 0, 0, 0, 0, 0, 0, 175, 29, 116, 2, 30, 30, 135, 0, 101, 58, 0, 0, 0, 0,
+			0, 0, 177, 29, 117, 2, 30, 30, 125, 0, 97, 58, 0, 0, 0, 0, 0, 0, 181, 29, 118, 2, 29, 29, 135, 0, 65, 0, 0, 0,
+			0, 0, 0, 0, 183, 29, 119, 2, 29, 29, 65, 0, 65, 58, 0, 0, 0, 0, 0, 0, 185, 29, 120, 2, 29, 29, 140, 0, 79, 0,
+			0, 0, 0, 0, 0, 0, 187, 29, 121, 2, 32, 32, 60, 0, 111, 58, 0, 0, 0, 0, 0, 0, 189, 29, 122, 2, 32, 32, 135, 0,
+			85, 0, 0, 0, 0, 0, 0, 0, 191, 29, 123, 2, 33, 33, 60, 0, 117, 58, 0, 0, 0, 0, 0, 0, 193, 29, 124, 2, 33, 33,
+			120, 0, 117, 45, 0, 0, 0, 0, 0, 0, 195, 29, 125, 2, 33, 33, 60, 0, 117, 45, 58, 0, 0, 0, 0, 0, 199, 29, 126, 2,
+			33, 33, 130, 0, 65, 73, 0, 0, 0, 0, 0, 0, 204, 29, 127, 2, 29, 31, 135, 0, 97, 73, 0, 0, 0, 0, 0, 0, 207, 29,
+			128, 2, 29, 31, 135, 0, 79, 73, 0, 0, 0, 0, 0, 0, 210, 29, 129, 2, 32, 31, 135, 0, 117, 45, 73, 0, 0, 0, 0, 0,
+			213, 29, 130, 2, 33, 31, 135, 0, 89, 121, 0, 0, 0, 0, 0, 0, 219, 29, 131, 2, 28, 33, 135, 0, 97, 85, 0, 0, 0, 0,
+			0, 0, 221, 29, 132, 2, 29, 33, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0,
+			0, 0, 0, 0, 105, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 55, 0, 97, 0, 0, 0, 0, 0, 0, 0,
+			241, 29, 35, 2, 28, 28, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 223, 29, 37, 2, 31, 31, 65, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 251, 29, 40, 2, 33, 33, 65, 0, 98, 0, 0, 0, 8, 0, 1, 0, 122, 30, 71, 4, 0, 0, 0, 5, 100, 0, 0, 0,
+			8, 0, 4, 0, 132, 30, 72, 4, 0, 0, 0, 5, 103, 0, 0, 0, 8, 0, 8, 0, 145, 30, 81, 4, 0, 0, 0, 5, 118, 0,
+			0, 0, 16, 0, 2, 0, 238, 3, 84, 7, 0, 83, 0, 6, 108, 35, 0, 0, 8, 0, 4, 0, 99, 30, 105, 6, 0, 0, 0, 3,
+			105, 58, 0, 0, 0, 0, 0, 0, 226, 29, 108, 2, 31, 31, 115, 0, 73, 0, 0, 0, 0, 0, 0, 0, 230, 29, 109, 2, 31, 31,
+			65, 0, 73, 58, 0, 0, 0, 0, 0, 0, 233, 29, 110, 2, 31, 31, 115, 0, 69, 0, 0, 0, 0, 0, 0, 0, 237, 29, 111, 2,
+			30, 30, 65, 0, 69, 58, 0, 0, 0, 0, 0, 0, 239, 29, 112, 2, 30, 30, 65, 0, 97, 58, 0, 0, 0, 0, 0, 0, 243, 29,
+			113, 2, 29, 29, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 246, 29, 114, 2, 32, 32, 65, 0, 79, 58, 0, 0, 0, 0, 0, 0,
+			248, 29, 115, 2, 32, 32, 115, 0, 117, 58, 0, 0, 0, 0, 0, 0, 253, 29, 116, 2, 33, 33, 115, 0, 121, 0, 0, 0, 0, 0,
+			0, 0, 0, 30, 117, 2, 28, 28, 65, 0, 121, 58, 0, 0, 0, 0, 0, 0, 2, 30, 118, 2, 31, 31, 115, 0, 87, 0, 0, 0,
+			0, 0, 0, 0, 5, 30, 119, 2, 28, 28, 65, 0, 87, 58, 0, 0, 0, 0, 0, 0, 7, 30, 120, 2, 28, 28, 65, 0, 97, 73,
+			0, 0, 0, 0, 0, 0, 10, 30, 121, 2, 29, 31, 85, 0, 97, 73, 58, 0, 0, 0, 0, 0, 12, 30, 122, 2, 29, 31, 115, 0,
+			101, 73, 0, 0, 0, 0, 0, 0, 15, 30, 123, 2, 30, 31, 85, 0, 101, 73, 58, 0, 0, 0, 0, 0, 17, 30, 124, 2, 30, 31,
+			115, 0, 97, 85, 0, 0, 0, 0, 0, 0, 20, 30, 125, 2, 29, 33, 85, 0, 97, 85, 58, 0, 0, 0, 0, 0, 22, 30, 126, 2,
+			29, 33, 115, 0, 111, 85, 0, 0, 0, 0, 0, 0, 25, 30, 127, 2, 32, 33, 85, 0, 111, 85, 58, 0, 0, 0, 0, 0, 27, 30,
+			128, 2, 32, 33, 115, 0, 89, 121, 0, 0, 0, 0, 0, 0, 30, 30, 129, 2, 28, 31, 75, 0, 89, 121, 58, 0, 0, 0, 0, 0,
+			32, 30, 130, 2, 28, 31, 110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 35, 30, 131, 2, 32, 31, 105, 0, 121, 73, 0, 0, 0, 0,
+			0, 0, 37, 30, 132, 2, 31, 31, 90, 0, 109, 35, 0, 0, 16, 0, 1, 0, 39, 30, 133, 8, 0, 0, 0, 6, 110, 35, 0, 0,
+			16, 0, 4, 0, 47, 30, 134, 8, 0, 0, 0, 6, 110, 94, 35, 0, 16, 2, 7, 0, 68, 30, 135, 8, 0, 0, 0, 6, 78, 35,
+			0, 0, 16, 0, 8, 0, 77, 30, 136, 8, 0, 0, 0, 6, 116, 108, 35, 0, 8, 0, 4, 0, 103, 30, 137, 4, 0, 0, 0, 2,
+			114, 35, 0, 0, 0, 0, 0, 0, 116, 30, 138, 3, 0, 0, 0, 2, 115, 50, 0, 0, 40, 0, 4, 0, 142, 6, 139, 6, 0, 0,
+			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 0, 118, 105, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 0, 0, 0, 0, 205, 30, 13, 2, 28, 29, 65, 0, 49, 0, 0, 0, 0, 0, 0, 0, 158, 30, 17, 1, 28, 32, 0, 0,
+			97, 0, 0, 0, 0, 0, 0, 0, 183, 30, 35, 2, 28, 28, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 189, 30, 36, 2, 30, 30,
+			100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 191, 30, 37, 2, 31, 31, 95, 0, 111, 0, 0, 0, 0, 0, 0, 0, 199, 30, 39, 2,
+			32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0, 201, 30, 40, 2, 33, 33, 100, 0, 108, 0, 0, 0, 0, 0, 0, 0, 3, 31,
+			55, 3, 0, 0, 0, 7, 50, 0, 0, 0, 0, 0, 0, 0, 161, 30, 108, 1, 8, 20, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0,
+			164, 30, 109, 1, 25, 50, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 167, 30, 110, 1, 5, 30, 0, 0, 53, 0, 0, 0, 0, 0,
+			0, 0, 170, 30, 111, 1, 28, 58, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 175, 30, 112, 1, 20, 40, 37, 0, 55, 0, 0, 0,
+			0, 0, 0, 0, 180, 30, 113, 1, 20, 40, 0, 0, 97, 58, 0, 0, 0, 0, 0, 0, 185, 30, 114, 2, 29, 29, 140, 0, 69, 0,
+			0, 0, 0, 0, 0, 0, 187, 30, 115, 2, 30, 30, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 197, 30, 116, 2, 32, 32, 100, 0,
+			121, 0, 0, 0, 0, 0, 0, 0, 203, 30, 117, 2, 33, 33, 100, 0, 64, 58, 0, 0, 0, 0, 0, 0, 207, 30, 118, 2, 28, 28,
+			140, 0, 97, 73, 0, 0, 0, 0, 0, 0, 209, 30, 119, 2, 29, 31, 125, 0, 97, 58, 73, 0, 0, 0, 0, 0, 211, 30, 120, 2,
+			29, 31, 125, 0, 64, 73, 0, 0, 0, 0, 0, 0, 213, 30, 121, 2, 28, 31, 125, 0, 64, 58, 73, 0, 0, 0, 0, 0, 215, 30,
+			122, 2, 28, 31, 125, 0, 101, 73, 0, 0, 0, 0, 0, 0, 217, 30, 123, 2, 30, 31, 100, 0, 69, 73, 0, 0, 0, 0, 0, 0,
+			219, 30, 124, 2, 30, 31, 100, 0, 79, 73, 0, 0, 0, 0, 0, 0, 221, 30, 125, 2, 32, 31, 100, 0, 111, 73, 0, 0, 0, 0,
+			0, 0, 223, 30, 126, 2, 32, 31, 100, 0, 117, 73, 0, 0, 0, 0, 0, 0, 225, 30, 127, 2, 33, 31, 100, 0, 121, 73, 0, 0,
+			0, 0, 0, 0, 227, 30, 128, 2, 33, 31, 100, 0, 97, 85, 0, 0, 0, 0, 0, 0, 229, 30, 129, 2, 29, 33, 105, 0, 97, 58,
+			85, 0, 0, 0, 0, 0, 231, 30, 130, 2, 29, 33, 135, 0, 101, 85, 0, 0, 0, 0, 0, 0, 233, 30, 131, 2, 30, 33, 100, 0,
+			69, 85, 0, 0, 0, 0, 0, 0, 235, 30, 132, 2, 30, 33, 100, 0, 105, 85, 0, 0, 0, 0, 0, 0, 237, 30, 133, 2, 31, 33,
+			100, 0, 64, 85, 0, 0, 0, 0, 0, 0, 239, 30, 134, 2, 28, 33, 100, 0, 64, 58, 85, 0, 0, 0, 0, 0, 241, 30, 135, 2,
+			28, 33, 135, 0, 105, 64, 0, 0, 0, 0, 0, 0, 243, 30, 136, 2, 31, 28, 120, 0, 121, 64, 0, 0, 0, 0, 0, 0, 245, 30,
+			137, 2, 31, 28, 100, 0, 117, 64, 0, 0, 0, 0, 0, 0, 247, 30, 138, 2, 33, 28, 100, 0, 107, 104, 0, 0, 8, 0, 8, 0,
+			249, 30, 139, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0,
+			0, 0, 122, 104, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 9, 31, 17, 1, 50, 50, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 111, 31,
+			35, 2, 28, 28, 75, 0, 101, 0, 0, 0, 0, 0, 0, 0, 117, 31, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0,
+			125, 31, 37, 2, 31, 31, 95, 0, 111, 0, 0, 0, 0, 0, 0, 0, 142, 31, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 152, 31, 40, 2, 33, 33, 85, 0, 116, 0, 0, 0, 8, 0, 4, 0, 88, 31, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 75, 31, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 49, 31, 49, 4, 0, 0, 0, 2, 99, 0,
+			0, 0, 40, 0, 6, 0, 40, 31, 80, 4, 0, 0, 0, 2, 122, 0, 0, 0, 40, 0, 4, 0, 30, 31, 88, 4, 0, 0, 0, 2,
+			50, 0, 0, 0, 0, 0, 0, 0, 12, 31, 108, 1, 30, 50, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 15, 31, 109, 1, 30, 30,
+			0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 18, 31, 110, 1, 10, 20, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 21, 31, 111, 1,
+			10, 30, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 24, 31, 112, 1, 20, 20, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 27, 31,
+			113, 1, 30, 50, 0, 0, 97, 97, 0, 0, 0, 0, 0, 0, 101, 31, 114, 2, 29, 29, 115, 0, 97, 97, 105, 0, 0, 0, 0, 0,
+			103, 31, 115, 2, 29, 31, 135, 0, 97, 97, 117, 0, 0, 0, 0, 0, 105, 31, 116, 2, 29, 33, 130, 0, 97, 110, 103, 0, 0, 0,
+			0, 0, 107, 31, 117, 2, 29, 29, 110, 0, 97, 97, 110, 103, 0, 0, 0, 0, 109, 31, 118, 2, 29, 29, 135, 0, 97, 105, 0, 0,
+			0, 0, 0, 0, 113, 31, 119, 2, 28, 31, 100, 0, 97, 117, 0, 0, 0, 0, 0, 0, 115, 31, 120, 2, 29, 33, 100, 0, 101, 105,
+			0, 0, 0, 0, 0, 0, 119, 31, 121, 2, 30, 31, 110, 0, 101, 110, 103, 0, 0, 0, 0, 0, 121, 31, 122, 2, 30, 30, 110, 0,
+			101, 117, 0, 0, 0, 0, 0, 0, 123, 31, 123, 2, 30, 33, 130, 0, 105, 110, 103, 0, 0, 0, 0, 0, 134, 31, 124, 2, 31, 31,
+			110, 0, 105, 117, 0, 0, 0, 0, 0, 0, 136, 31, 125, 2, 31, 33, 100, 0, 110, 103, 0, 0, 0, 0, 0, 0, 138, 31, 126, 2,
+			0, 0, 175, 0, 111, 101, 110, 103, 0, 0, 0, 0, 144, 31, 127, 2, 32, 30, 140, 0, 111, 105, 0, 0, 0, 0, 0, 0, 146, 31,
+			128, 2, 32, 31, 100, 0, 111, 117, 0, 0, 0, 0, 0, 0, 148, 31, 129, 2, 32, 33, 100, 0, 111, 110, 103, 0, 0, 0, 0, 0,
+			150, 31, 130, 2, 32, 32, 110, 0, 117, 110, 103, 0, 0, 0, 0, 0, 158, 31, 131, 2, 33, 33, 100, 0, 117, 105, 0, 0, 0, 0,
+			0, 0, 160, 31, 132, 2, 33, 31, 110, 0, 111, 101, 0, 0, 0, 0, 0, 0, 162, 31, 133, 2, 28, 28, 115, 0, 101, 111, 0, 0,
+			0, 0, 0, 0, 164, 31, 134, 2, 28, 28, 85, 0, 101, 111, 105, 0, 0, 0, 0, 0, 166, 31, 135, 2, 28, 31, 110, 0, 121, 117,
+			0, 0, 0, 0, 0, 0, 168, 31, 136, 2, 33, 33, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			64, 1, 0, 0, 0, 0, 0, 0, 122, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 184, 32, 13, 2, 28, 28, 100, 0, 97, 0, 0, 0,
+			0, 0, 0, 0, 170, 32, 35, 2, 29, 29, 125, 0, 105, 0, 0, 0, 0, 0, 0, 0, 195, 32, 37, 2, 31, 31, 125, 0, 111, 0,
+			0, 0, 0, 0, 0, 0, 217, 32, 39, 2, 32, 32, 125, 0, 117, 0, 0, 0, 0, 0, 0, 0, 228, 32, 40, 2, 33, 33, 125, 0,
+			78, 45, 0, 0, 0, 0, 0, 0, 168, 32, 43, 2, 68, 68, 125, 0, 116, 0, 0, 0, 8, 0, 4, 0, 49, 32, 47, 4, 0, 0,
+			0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 23, 32, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 10, 0, 69, 32, 49, 4,
+			0, 0, 0, 2, 110, 0, 0, 0, 16, 0, 4, 0, 200, 31, 50, 8, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 246, 31,
+			55, 3, 0, 0, 0, 2, 106, 0, 0, 0, 0, 2, 0, 0, 253, 31, 57, 3, 0, 0, 0, 1, 78, 0, 0, 0, 16, 0, 8, 0,
+			222, 31, 68, 8, 0, 0, 0, 7, 116, 83, 59, 0, 40, 2, 7, 0, 89, 32, 78, 4, 0, 0, 0, 2, 102, 0, 0, 0, 8, 0,
+			2, 0, 43, 32, 83, 6, 0, 0, 0, 2, 115, 46, 0, 0, 40, 0, 6, 0, 115, 32, 93, 6, 0, 0, 0, 3, 83, 59, 0, 0,
+			40, 0, 6, 0, 107, 32, 97, 6, 0, 0, 0, 2, 49, 49, 0, 0, 0, 0, 0, 0, 170, 31, 108, 1, 9, 12, 0, 0, 50, 49,
+			0, 0, 0, 0, 0, 0, 173, 31, 109, 1, 10, 20, 0, 0, 50, 49, 52, 0, 0, 0, 0, 0, 176, 31, 110, 1, 18, 42, 0, 0,
+			50, 50, 0, 0, 0, 0, 0, 0, 179, 31, 111, 1, 20, 22, 0, 0, 51, 51, 0, 0, 0, 0, 0, 0, 182, 31, 112, 1, 30, 32,
+			0, 0, 51, 53, 0, 0, 0, 0, 0, 0, 185, 31, 113, 1, 30, 50, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 188, 31, 114, 1,
+			38, 41, 0, 0, 53, 49, 0, 0, 0, 0, 0, 0, 191, 31, 115, 1, 10, 50, 0, 0, 53, 51, 0, 0, 0, 0, 0, 0, 194, 31,
+			116, 1, 30, 50, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 197, 31, 117, 1, 50, 55, 0, 0, 112, 104, 0, 0, 8, 0, 1, 0,
+			33, 32, 118, 4, 0, 0, 0, 2, 116, 104, 0, 0, 8, 0, 4, 0, 59, 32, 119, 4, 0, 0, 0, 2, 107, 104, 0, 0, 8, 0,
+			10, 0, 79, 32, 120, 4, 0, 0, 0, 2, 116, 83, 59, 104, 40, 2, 7, 0, 98, 32, 121, 4, 0, 0, 0, 2, 116, 115, 0, 0,
+			40, 0, 4, 0, 128, 32, 122, 4, 0, 0, 0, 2, 116, 115, 104, 0, 40, 0, 4, 0, 138, 32, 123, 4, 0, 0, 0, 2, 116, 115,
+			46, 0, 40, 0, 6, 0, 148, 32, 124, 6, 0, 0, 0, 3, 116, 115, 46, 104, 40, 0, 6, 0, 158, 32, 125, 6, 0, 0, 0, 3,
+			65, 0, 0, 0, 0, 0, 0, 0, 175, 32, 126, 2, 29, 29, 125, 0, 97, 105, 0, 0, 0, 0, 0, 0, 180, 32, 127, 2, 29, 31,
+			125, 0, 65, 117, 0, 0, 0, 0, 0, 0, 182, 32, 128, 2, 29, 33, 125, 0, 64, 114, 0, 0, 0, 0, 0, 0, 189, 32, 129, 2,
+			28, 28, 175, 0, 69, 0, 0, 0, 0, 0, 0, 0, 191, 32, 130, 2, 30, 30, 125, 0, 101, 105, 0, 0, 0, 0, 0, 0, 193, 32,
+			131, 2, 30, 31, 125, 0, 105, 91, 0, 0, 0, 0, 0, 0, 203, 32, 132, 2, 31, 31, 125, 0, 105, 46, 0, 0, 0, 0, 0, 0,
+			205, 32, 133, 2, 31, 31, 125, 0, 105, 65, 0, 0, 0, 0, 0, 0, 207, 32, 134, 2, 31, 29, 125, 0, 105, 65, 117, 0, 0, 0,
+			0, 0, 209, 32, 135, 2, 31, 33, 125, 0, 105, 69, 0, 0, 0, 0, 0, 0, 211, 32, 136, 2, 31, 30, 125, 0, 105, 111, 0, 0,
+			0, 0, 0, 0, 213, 32, 137, 2, 31, 32, 125, 0, 105, 111, 117, 0, 0, 0, 0, 0, 215, 32, 138, 2, 31, 33, 125, 0, 111, 45,
+			0, 0, 0, 0, 0, 0, 222, 32, 139, 2, 32, 32, 125, 0, 111, 117, 0, 0, 0, 0, 0, 0, 224, 32, 140, 2, 32, 33, 125, 0,
+			111, 110, 103, 0, 0, 0, 0, 0, 226, 32, 141, 2, 32, 32, 250, 0, 117, 65, 0, 0, 0, 0, 0, 0, 233, 32, 142, 2, 33, 29,
+			125, 0, 117, 97, 0, 0, 0, 0, 0, 0, 235, 32, 143, 2, 33, 29, 125, 0, 117, 97, 105, 0, 0, 0, 0, 0, 237, 32, 144, 2,
+			33, 31, 125, 0, 117, 64, 0, 0, 0, 0, 0, 0, 239, 32, 145, 2, 33, 28, 115, 0, 117, 101, 105, 0, 0, 0, 0, 0, 241, 32,
+			146, 2, 33, 31, 125, 0, 117, 111, 0, 0, 0, 0, 0, 0, 243, 32, 147, 2, 33, 32, 140, 0, 121, 0, 0, 0, 0, 0, 0, 0,
+			245, 32, 148, 2, 31, 33, 125, 0, 121, 117, 0, 0, 0, 0, 0, 0, 250, 32, 149, 2, 31, 33, 125, 0, 121, 38, 0, 0, 0, 0,
+			0, 0, 252, 32, 150, 2, 31, 30, 125, 0, 121, 69, 0, 0, 0, 0, 0, 0, 254, 32, 151, 2, 31, 30, 125, 0, 121, 64, 0, 0,
+			0, 0, 0, 0, 0, 33, 152, 2, 31, 28, 125, 0, 121, 105, 0, 0, 0, 0, 0, 0, 2, 33, 153, 2, 31, 31, 125, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 115, 119, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0,
+			0, 0, 10, 33, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 6, 33, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0,
+			0, 0, 0, 0, 4, 33, 37, 2, 31, 31, 82, 0, 111, 0, 0, 0, 0, 0, 0, 0, 13, 33, 39, 2, 32, 32, 90, 0, 117, 0,
+			0, 0, 0, 0, 0, 0, 15, 33, 40, 2, 33, 33, 85, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6, 47, 4, 0, 0, 0, 2,
+			100, 0, 0, 0, 16, 0, 3, 0, 233, 6, 72, 5, 0, 0, 0, 5, 97, 47, 0, 0, 0, 0, 0, 0, 8, 33, 108, 2, 28, 28,
+			90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 3, 0, 0, 0, 0, 0, 0, 116, 114, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 25, 0, 64, 0, 0, 0, 0, 0, 0, 0, 206, 42, 13, 2, 28, 28, 80, 0,
-			97, 0, 0, 0, 0, 0, 0, 0, 212, 42, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 217, 42, 36, 2, 30, 30,
-			85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 208, 42, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 228, 42, 39, 2,
-			32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 210, 42, 40, 2, 33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 3, 0, 238, 42,
-			47, 4, 0, 72, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 252, 42, 49, 4, 0, 81, 0, 2, 118, 0, 0, 0, 16, 0, 2, 0,
-			241, 3, 84, 7, 0, 0, 0, 6, 69, 0, 0, 0, 0, 0, 0, 0, 222, 42, 109, 2, 30, 30, 80, 0, 69, 35, 0, 0, 0, 0,
-			0, 0, 224, 42, 110, 2, 30, 30, 80, 0, 79, 0, 0, 0, 0, 0, 0, 0, 233, 42, 111, 2, 32, 32, 85, 0, 121, 0, 0, 0,
-			0, 0, 0, 0, 32, 43, 112, 2, 31, 31, 85, 0, 101, 43, 0, 0, 0, 0, 0, 0, 220, 42, 121, 2, 30, 30, 90, 0, 111, 43,
-			0, 0, 0, 0, 0, 0, 231, 42, 122, 2, 32, 32, 90, 0, 82, 94, 0, 0, 48, 0, 6, 0, 20, 25, 123, 7, 0, 0, 0, 6,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 103, 100, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
-			2, 0, 0, 0, 36, 43, 13, 2, 28, 28, 65, 0, 42, 0, 0, 0, 16, 0, 4, 0, 143, 43, 16, 5, 0, 0, 0, 5, 97, 0,
-			0, 0, 0, 0, 0, 0, 57, 43, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 47, 43, 36, 2, 30, 30, 65, 0,
-			105, 0, 0, 0, 0, 0, 0, 0, 41, 43, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 68, 43, 39, 2, 32, 32,
-			65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 73, 43, 40, 2, 33, 33, 65, 0, 116, 0, 0, 0, 8, 0, 3, 0, 26, 20, 47, 4,
-			0, 0, 0, 2, 82, 0, 0, 0, 128, 0, 0, 0, 136, 0, 51, 3, 0, 0, 0, 6, 98, 0, 0, 0, 8, 0, 1, 0, 133, 32,
-			71, 4, 0, 0, 0, 5, 100, 0, 0, 0, 8, 0, 4, 0, 143, 32, 72, 4, 0, 0, 0, 5, 103, 0, 0, 0, 8, 0, 8, 0,
-			156, 32, 81, 4, 0, 0, 0, 5, 83, 0, 0, 0, 40, 2, 7, 0, 138, 43, 91, 6, 0, 0, 0, 0, 73, 0, 0, 0, 2, 0,
-			0, 0, 34, 43, 108, 2, 31, 31, 65, 0, 105, 58, 0, 0, 0, 0, 32, 0, 38, 43, 109, 2, 31, 31, 120, 0, 101, 58, 0, 0,
-			0, 0, 32, 0, 44, 43, 110, 2, 30, 30, 120, 0, 69, 58, 0, 0, 0, 0, 32, 0, 50, 43, 111, 2, 30, 30, 120, 0, 69, 0,
-			0, 0, 0, 0, 0, 0, 52, 43, 112, 2, 30, 30, 65, 0, 97, 58, 0, 0, 0, 0, 32, 0, 54, 43, 113, 2, 29, 29, 120, 0,
-			97, 50, 0, 0, 0, 0, 0, 0, 60, 43, 114, 2, 29, 29, 65, 0, 79, 58, 0, 0, 0, 0, 32, 0, 62, 43, 115, 2, 32, 32,
-			120, 0, 79, 0, 0, 0, 0, 0, 0, 0, 64, 43, 116, 2, 32, 32, 65, 0, 111, 58, 0, 0, 0, 0, 32, 0, 66, 43, 117, 2,
-			32, 32, 120, 0, 117, 58, 0, 0, 0, 0, 32, 0, 70, 43, 118, 2, 33, 33, 120, 0, 117, 45, 0, 0, 0, 0, 32, 0, 79, 43,
-			119, 2, 28, 28, 65, 0, 111, 45, 0, 0, 0, 0, 0, 0, 88, 43, 120, 2, 28, 28, 65, 0, 105, 64, 0, 0, 0, 0, 32, 0,
-			93, 43, 121, 2, 31, 28, 120, 0, 105, 97, 0, 0, 0, 0, 32, 0, 96, 43, 122, 2, 31, 28, 120, 0, 117, 64, 0, 0, 0, 0,
-			32, 0, 99, 43, 123, 2, 33, 28, 120, 0, 97, 73, 0, 0, 0, 0, 32, 0, 101, 43, 124, 2, 29, 31, 120, 0, 101, 73, 0, 0,
-			0, 0, 32, 0, 104, 43, 125, 2, 30, 31, 120, 0, 64, 73, 0, 0, 0, 0, 32, 0, 106, 43, 126, 2, 28, 31, 120, 0, 117, 45,
-			73, 0, 0, 0, 32, 0, 108, 43, 127, 2, 28, 31, 120, 0, 97, 85, 0, 0, 0, 0, 32, 0, 113, 43, 128, 2, 29, 33, 120, 0,
-			79, 85, 0, 0, 0, 0, 32, 0, 116, 43, 129, 2, 28, 33, 120, 0, 100, 59, 0, 0, 40, 0, 6, 0, 122, 20, 130, 4, 0, 0,
-			0, 2, 103, 59, 0, 0, 8, 0, 8, 0, 118, 43, 131, 4, 0, 0, 0, 0, 107, 59, 0, 0, 8, 0, 8, 0, 128, 43, 132, 4,
-			0, 0, 0, 0, 116, 59, 0, 0, 40, 2, 7, 0, 131, 20, 133, 4, 0, 0, 0, 2, 110, 91, 0, 0, 16, 0, 4, 0, 220, 1,
-			134, 8, 0, 0, 0, 4, 42, 59, 0, 0, 16, 0, 3, 0, 0, 4, 135, 7, 0, 0, 0, 6, 38, 0, 0, 0, 2, 0, 0, 0,
-			170, 43, 136, 2, 28, 28, 65, 0, 35, 0, 0, 0, 8, 0, 12, 0, 208, 43, 137, 6, 0, 0, 0, 0, 104, 35, 0, 0, 8, 0,
-			12, 0, 227, 43, 138, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0,
-			0, 0, 0, 0, 110, 115, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 236, 43, 35, 2, 28, 28, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			234, 43, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 232, 43, 37, 2, 31, 31, 55, 0, 111, 0, 0, 0, 0, 0,
-			0, 0, 238, 43, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 240, 43, 40, 2, 33, 33, 85, 0, 116, 0, 0, 0,
-			8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 100, 0, 0, 0, 16, 0, 3, 0, 2, 7, 72, 5, 0, 0, 0, 5, 85, 0,
-			0, 0, 0, 0, 0, 0, 198, 6, 108, 2, 33, 33, 90, 0, 69, 0, 0, 0, 0, 0, 0, 0, 187, 6, 109, 2, 30, 30, 90, 0,
-			75, 0, 0, 0, 8, 0, 4, 0, 242, 43, 110, 6, 0, 0, 0, 3, 120, 50, 0, 0, 8, 0, 8, 0, 71, 12, 111, 6, 0, 0,
-			0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 20, 0, 0, 0, 0, 0, 0, 104, 116, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
-			0, 0, 0, 0, 0, 0, 4, 44, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 6, 44, 36, 2, 30, 30, 85, 0,
-			105, 0, 0, 0, 0, 0, 0, 0, 10, 44, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 13, 44, 39, 2, 32, 32,
-			85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 17, 44, 40, 2, 33, 33, 90, 0, 69, 0, 0, 0, 0, 0, 0, 0, 8, 44, 112, 2,
-			30, 30, 85, 0, 65, 126, 0, 0, 0, 0, 0, 0, 19, 44, 113, 2, 29, 29, 100, 0, 69, 126, 0, 0, 0, 0, 0, 0, 21, 44,
-			114, 2, 30, 30, 100, 0, 79, 126, 0, 0, 0, 0, 0, 0, 23, 44, 116, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0,
-			15, 44, 127, 2, 32, 32, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 62, 0, 0, 0, 0,
-			0, 0, 97, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 47, 44, 13, 2, 28, 28, 90, 0, 97, 0, 0, 0, 0, 0, 0, 0, 42, 44,
-			35, 2, 29, 29, 100, 0, 101, 0, 0, 0, 0, 0, 0, 0, 27, 44, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0,
-			25, 44, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 40, 44, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 38, 44, 40, 2, 33, 33, 90, 0, 121, 0, 0, 0, 0, 0, 0, 0, 34, 44, 112, 2, 33, 33, 100, 0, 38, 0, 0, 0,
-			0, 0, 0, 0, 29, 44, 125, 2, 30, 30, 100, 0, 87, 0, 0, 0, 0, 0, 0, 0, 36, 44, 126, 2, 28, 28, 100, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 97, 107, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 70, 0, 64, 0, 0, 0, 0, 0, 0, 0, 77, 33, 13, 2, 28, 28, 75, 0,
+			97, 0, 0, 0, 0, 0, 0, 0, 61, 33, 35, 2, 29, 29, 95, 0, 101, 0, 0, 0, 0, 0, 0, 0, 45, 33, 36, 2, 30, 30,
+			90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 17, 33, 37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 81, 33, 39, 2,
+			32, 32, 95, 0, 117, 0, 0, 0, 0, 0, 0, 0, 63, 33, 40, 2, 33, 33, 75, 0, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7,
+			55, 3, 0, 0, 0, 7, 74, 0, 0, 0, 16, 0, 6, 0, 108, 33, 79, 5, 0, 0, 0, 5, 99, 0, 0, 0, 8, 0, 7, 0,
+			95, 33, 80, 4, 0, 0, 0, 2, 69, 0, 0, 0, 0, 0, 0, 0, 57, 33, 109, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0,
+			0, 0, 93, 33, 110, 2, 32, 32, 95, 0, 85, 0, 0, 0, 0, 0, 0, 0, 75, 33, 111, 2, 33, 33, 75, 0, 121, 0, 0, 0,
+			0, 0, 0, 0, 31, 33, 112, 2, 33, 33, 77, 0, 89, 0, 0, 0, 0, 0, 0, 0, 43, 33, 113, 2, 33, 33, 77, 0, 73, 0,
+			0, 0, 0, 0, 0, 0, 29, 33, 124, 2, 31, 31, 75, 0, 87, 0, 0, 0, 0, 0, 0, 0, 59, 33, 125, 2, 28, 28, 90, 0,
+			71, 0, 0, 0, 0, 0, 128, 0, 102, 0, 126, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 18, 3, 0, 0, 0, 0, 0, 0, 107, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 142, 33, 35, 2, 29, 29, 105, 0, 101, 0,
+			0, 0, 0, 0, 0, 0, 136, 33, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0, 129, 33, 37, 2, 31, 31, 95, 0,
+			111, 0, 0, 0, 0, 0, 0, 0, 146, 33, 39, 2, 32, 32, 110, 0, 117, 0, 0, 0, 0, 0, 0, 0, 150, 33, 40, 2, 33, 33,
+			100, 0, 74, 0, 0, 0, 16, 0, 6, 0, 183, 33, 79, 5, 0, 80, 0, 5, 99, 0, 0, 0, 8, 0, 7, 0, 170, 33, 80, 4,
+			0, 79, 0, 2, 120, 0, 0, 0, 8, 0, 8, 0, 160, 33, 101, 6, 0, 0, 0, 3, 69, 0, 0, 0, 0, 0, 0, 0, 138, 33,
+			109, 2, 29, 29, 75, 0, 85, 0, 0, 0, 0, 0, 0, 0, 148, 33, 111, 2, 33, 33, 65, 0, 121, 0, 0, 0, 0, 0, 0, 0,
+			152, 33, 112, 2, 33, 33, 80, 0, 101, 85, 0, 0, 0, 0, 0, 0, 156, 33, 115, 2, 30, 31, 140, 0, 101, 73, 0, 0, 0, 0,
+			0, 0, 154, 33, 118, 2, 30, 31, 140, 0, 73, 0, 0, 0, 0, 0, 0, 0, 131, 33, 124, 2, 28, 28, 55, 0, 69, 35, 0, 0,
+			0, 0, 0, 0, 140, 33, 125, 2, 30, 30, 70, 0, 56, 0, 0, 0, 0, 0, 0, 0, 144, 33, 126, 2, 28, 28, 80, 0, 86, 0,
+			0, 0, 0, 0, 0, 0, 158, 33, 127, 2, 28, 28, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			15, 3, 0, 0, 0, 0, 0, 0, 105, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 198, 33, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0,
+			0, 0, 0, 0, 200, 33, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 208, 33, 36, 2, 30, 30, 90, 0, 105, 0,
+			0, 0, 0, 0, 0, 0, 210, 33, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 215, 33, 39, 2, 32, 32, 90, 0,
+			117, 0, 0, 0, 0, 0, 0, 0, 217, 33, 40, 2, 33, 33, 90, 0, 100, 0, 0, 0, 16, 0, 4, 0, 12, 3, 72, 5, 0, 47,
+			0, 5, 69, 0, 0, 0, 0, 0, 0, 0, 203, 33, 109, 2, 30, 30, 90, 0, 79, 0, 0, 0, 0, 0, 0, 0, 213, 33, 110, 2,
+			32, 32, 90, 0, 97, 85, 0, 0, 0, 0, 0, 0, 223, 33, 114, 2, 29, 33, 120, 0, 97, 73, 0, 0, 0, 0, 0, 0, 219, 33,
+			117, 2, 29, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 221, 33, 118, 2, 30, 31, 120, 0, 69, 50, 0, 0, 0, 0, 0, 0,
+			206, 33, 124, 2, 30, 30, 90, 0, 64, 85, 0, 0, 0, 0, 0, 0, 225, 33, 125, 2, 28, 33, 120, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 115, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 227, 33,
+			13, 2, 28, 28, 75, 0, 97, 0, 0, 0, 0, 0, 0, 0, 240, 33, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0,
+			0, 34, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 5, 34, 37, 2, 31, 31, 70, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 28, 34, 40, 2, 33, 33, 80, 0, 116, 0, 0, 0, 8, 0, 3, 0, 7, 5, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 79, 34, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 156, 34, 49, 4, 0, 81, 0, 2, 119, 0,
+			0, 0, 0, 0, 0, 0, 75, 34, 58, 3, 0, 0, 0, 7, 76, 0, 0, 0, 0, 0, 0, 0, 42, 34, 64, 3, 0, 0, 0, 7,
+			100, 0, 0, 0, 16, 0, 4, 0, 95, 34, 72, 5, 0, 47, 0, 5, 100, 90, 59, 0, 48, 2, 6, 0, 136, 34, 77, 5, 0, 78,
+			0, 5, 99, 0, 0, 0, 40, 2, 7, 0, 29, 5, 80, 4, 0, 77, 0, 2, 122, 0, 0, 0, 48, 0, 4, 0, 122, 34, 88, 7,
+			0, 89, 0, 6, 64, 47, 0, 0, 0, 0, 0, 0, 229, 33, 108, 2, 28, 28, 50, 0, 86, 0, 0, 0, 0, 0, 0, 0, 231, 33,
+			109, 2, 28, 28, 85, 0, 73, 35, 0, 0, 0, 0, 0, 0, 237, 33, 110, 2, 28, 28, 85, 0, 97, 47, 0, 0, 0, 0, 0, 0,
+			245, 33, 111, 2, 29, 29, 85, 0, 65, 0, 0, 0, 0, 0, 0, 0, 247, 33, 112, 2, 29, 29, 85, 0, 69, 0, 0, 0, 0, 0,
+			0, 0, 252, 33, 113, 2, 30, 30, 85, 0, 69, 35, 0, 0, 0, 0, 0, 0, 254, 33, 114, 2, 28, 28, 85, 0, 73, 0, 0, 0,
+			0, 0, 0, 0, 19, 34, 115, 2, 31, 31, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 21, 34, 116, 2, 33, 33, 80, 0, 79, 0,
+			0, 0, 0, 0, 0, 0, 23, 34, 117, 2, 32, 32, 85, 0, 97, 73, 0, 0, 0, 0, 0, 0, 30, 34, 118, 2, 29, 31, 110, 0,
+			101, 73, 0, 0, 0, 0, 0, 0, 32, 34, 119, 2, 30, 31, 110, 0, 79, 73, 0, 0, 0, 0, 0, 0, 34, 34, 120, 2, 32, 31,
+			110, 0, 121, 69, 0, 0, 0, 0, 0, 0, 36, 34, 121, 2, 33, 30, 120, 0, 108, 47, 52, 0, 0, 0, 0, 0, 38, 34, 122, 3,
+			0, 0, 0, 7, 108, 108, 0, 0, 0, 0, 0, 0, 62, 34, 123, 3, 0, 0, 0, 7, 116, 115, 0, 0, 40, 0, 4, 0, 18, 6,
+			124, 4, 0, 125, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 31, 6, 125, 5, 0, 124, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0, 104, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 169, 34, 13, 2,
+			28, 28, 80, 0, 116, 35, 0, 0, 8, 0, 4, 0, 242, 4, 25, 4, 0, 0, 0, 2, 97, 0, 0, 0, 0, 0, 0, 0, 177, 34,
+			35, 2, 29, 29, 100, 0, 101, 0, 0, 0, 0, 0, 0, 0, 175, 34, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0,
+			171, 34, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 179, 34, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0,
+			0, 0, 181, 34, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0, 7, 5, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0,
+			8, 0, 1, 0, 52, 6, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 113, 6, 49, 4, 0, 0, 0, 2, 99, 0,
+			0, 0, 40, 0, 7, 0, 100, 6, 80, 4, 0, 0, 0, 2, 81, 0, 0, 0, 16, 0, 10, 0, 204, 4, 100, 7, 0, 0, 0, 6,
+			121, 0, 0, 0, 0, 0, 0, 0, 173, 34, 108, 2, 31, 31, 80, 0, 87, 0, 0, 0, 0, 0, 0, 0, 183, 34, 109, 2, 28, 28,
+			90, 0, 97, 73, 0, 0, 0, 0, 0, 0, 185, 34, 110, 2, 29, 31, 120, 0, 101, 73, 0, 0, 0, 0, 0, 0, 187, 34, 111, 2,
+			30, 31, 120, 0, 105, 64, 0, 0, 0, 0, 0, 0, 189, 34, 112, 2, 31, 28, 120, 0, 112, 35, 0, 0, 8, 0, 1, 0, 71, 6,
+			113, 4, 0, 0, 0, 2, 116, 115, 35, 0, 40, 0, 4, 0, 18, 6, 114, 4, 0, 0, 0, 2, 107, 35, 0, 0, 8, 0, 8, 0,
+			126, 6, 115, 4, 0, 0, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 31, 6, 116, 5, 0, 117, 0, 5, 116, 115, 0, 0, 40, 0,
+			4, 0, 191, 34, 117, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0,
+			0, 0, 0, 0, 100, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 201, 34, 13, 2, 28, 28, 65, 0, 114, 0, 0, 0, 0, 0, 0, 0,
+			244, 34, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 0, 0, 216, 34, 35, 2, 29, 29, 75, 0, 101, 0, 0, 0, 0, 0,
+			0, 0, 208, 34, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 205, 34, 37, 2, 31, 31, 75, 0, 111, 0, 0, 0,
+			0, 0, 0, 0, 222, 34, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 220, 34, 40, 2, 33, 33, 75, 0, 116, 0,
+			0, 0, 8, 0, 4, 0, 37, 35, 47, 4, 0, 72, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0, 11, 35, 48, 4, 0, 71, 0, 2,
+			82, 0, 0, 0, 0, 0, 0, 0, 248, 34, 51, 3, 0, 0, 0, 7, 108, 0, 0, 0, 0, 0, 0, 0, 240, 34, 55, 3, 0, 0,
+			0, 7, 118, 0, 0, 0, 16, 0, 2, 0, 238, 3, 84, 7, 0, 83, 0, 6, 115, 0, 0, 0, 40, 0, 4, 0, 252, 34, 89, 6,
+			0, 88, 0, 3, 51, 0, 0, 0, 2, 0, 0, 0, 203, 34, 108, 2, 29, 29, 65, 0, 69, 0, 0, 0, 0, 0, 0, 0, 210, 34,
+			109, 2, 30, 30, 75, 0, 38, 0, 0, 0, 0, 0, 0, 0, 212, 34, 110, 2, 30, 30, 75, 0, 38, 35, 0, 0, 0, 0, 0, 0,
+			214, 34, 111, 2, 30, 30, 60, 0, 65, 0, 0, 0, 0, 0, 0, 0, 218, 34, 112, 2, 29, 29, 75, 0, 79, 0, 0, 0, 0, 0,
+			0, 0, 224, 34, 113, 2, 32, 32, 75, 0, 86, 0, 0, 0, 0, 0, 0, 0, 226, 34, 114, 2, 28, 28, 75, 0, 48, 0, 0, 0,
+			0, 0, 0, 0, 228, 34, 115, 2, 32, 32, 75, 0, 121, 0, 0, 0, 0, 0, 0, 0, 230, 34, 116, 2, 31, 31, 75, 0, 89, 0,
+			0, 0, 0, 0, 0, 0, 232, 34, 117, 2, 31, 31, 75, 0, 87, 0, 0, 0, 0, 0, 0, 0, 234, 34, 118, 2, 28, 28, 75, 0,
+			87, 35, 0, 0, 0, 0, 0, 0, 236, 34, 119, 2, 28, 28, 75, 0, 97, 73, 0, 0, 0, 0, 0, 0, 238, 34, 120, 2, 29, 31,
+			125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 107, 97, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 2, 0, 0, 0, 52, 35, 13, 2, 28, 28, 60, 0, 116, 35, 0, 0, 8, 0, 4, 0, 242, 4, 25, 4, 0, 0, 0, 2,
+			114, 0, 0, 0, 128, 0, 0, 0, 120, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 61, 35, 35, 2, 29, 29,
+			90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 56, 35, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 54, 35, 37, 2,
+			31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 63, 35, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 65, 35,
+			40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 4, 0, 87, 6, 47, 4, 0, 0, 0, 2, 112, 0, 0, 0, 8, 0, 1, 0,
+			52, 6, 48, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 113, 6, 49, 4, 0, 0, 0, 2, 99, 0, 0, 0, 40, 0,
+			7, 0, 100, 6, 80, 4, 0, 0, 0, 2, 81, 0, 0, 0, 16, 0, 10, 0, 204, 4, 100, 7, 0, 0, 0, 6, 112, 35, 0, 0,
+			8, 0, 1, 0, 71, 6, 108, 4, 0, 0, 0, 2, 116, 115, 35, 0, 40, 0, 4, 0, 18, 6, 109, 4, 0, 0, 0, 2, 107, 35,
+			0, 0, 8, 0, 8, 0, 67, 35, 110, 4, 0, 81, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 31, 6, 111, 5, 0, 112, 0, 5,
+			116, 115, 0, 0, 40, 0, 4, 0, 83, 35, 112, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 15, 3, 0, 0, 0, 0, 0, 0, 114, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 60, 0, 97, 0,
+			0, 0, 0, 0, 0, 0, 93, 35, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 106, 35, 36, 2, 30, 30, 85, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 112, 35, 37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 118, 35, 39, 2, 32, 32,
+			85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 124, 35, 40, 2, 33, 33, 80, 0, 97, 47, 0, 0, 0, 0, 0, 0, 100, 35, 108, 2,
+			28, 28, 90, 0, 97, 35, 0, 0, 0, 0, 0, 0, 130, 35, 124, 2, 28, 28, 50, 0, 101, 35, 0, 0, 0, 0, 0, 0, 134, 35,
+			125, 2, 30, 30, 50, 0, 105, 35, 0, 0, 0, 0, 0, 0, 138, 35, 126, 2, 31, 31, 50, 0, 111, 35, 0, 0, 0, 0, 0, 0,
+			142, 35, 127, 2, 32, 32, 50, 0, 117, 35, 0, 0, 0, 0, 0, 0, 146, 35, 128, 2, 33, 33, 50, 0, 43, 0, 0, 0, 0, 0,
+			0, 0, 150, 35, 129, 1, 0, 30, 0, 0, 43, 50, 0, 0, 0, 0, 0, 0, 153, 35, 130, 1, 0, 30, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 0, 0, 0, 0, 0, 0, 110, 101, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 32, 0,
+			174, 35, 35, 2, 29, 29, 115, 0, 101, 0, 0, 0, 0, 0, 0, 0, 172, 35, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0,
+			0, 0, 169, 35, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 176, 35, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0,
+			0, 0, 0, 0, 178, 35, 40, 2, 33, 33, 80, 0, 86, 0, 0, 0, 0, 0, 0, 0, 156, 35, 109, 2, 28, 28, 80, 0, 64, 51,
+			0, 0, 0, 0, 0, 0, 162, 35, 110, 2, 28, 28, 70, 0, 97, 73, 0, 0, 0, 0, 32, 0, 180, 35, 134, 2, 29, 31, 120, 0,
+			97, 85, 0, 0, 0, 0, 32, 0, 182, 35, 135, 2, 29, 33, 120, 0, 64, 47, 0, 0, 0, 0, 0, 0, 164, 35, 149, 2, 28, 28,
+			65, 0, 101, 73, 0, 0, 0, 0, 32, 0, 184, 35, 150, 2, 30, 31, 120, 0, 101, 85, 0, 0, 0, 0, 32, 0, 186, 35, 151, 2,
+			30, 33, 120, 0, 86, 73, 0, 0, 0, 0, 32, 0, 188, 35, 152, 2, 28, 31, 120, 0, 86, 85, 0, 0, 0, 0, 32, 0, 190, 35,
+			153, 2, 28, 33, 120, 0, 111, 73, 0, 0, 0, 0, 32, 0, 192, 35, 154, 2, 32, 31, 120, 0, 111, 85, 0, 0, 0, 0, 32, 0,
+			194, 35, 155, 2, 32, 33, 120, 0, 117, 73, 0, 0, 0, 0, 32, 0, 196, 35, 156, 2, 33, 31, 120, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 21, 0, 0, 0, 0, 0, 0, 112, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 201, 35,
+			13, 2, 28, 28, 65, 0, 97, 0, 0, 0, 0, 0, 32, 0, 222, 35, 35, 2, 29, 29, 110, 0, 101, 0, 0, 0, 0, 0, 32, 0,
+			218, 35, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 32, 0, 212, 35, 37, 2, 31, 31, 110, 0, 117, 0, 0, 0, 0, 0,
+			32, 0, 230, 35, 40, 2, 33, 33, 110, 0, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 0, 0, 6, 86, 0, 0, 0,
+			0, 0, 0, 0, 206, 35, 109, 2, 28, 28, 65, 0, 73, 0, 0, 0, 0, 0, 0, 0, 215, 35, 113, 2, 31, 31, 75, 0, 69, 0,
+			0, 0, 0, 0, 32, 0, 220, 35, 116, 2, 30, 30, 100, 0, 111, 58, 0, 0, 0, 0, 32, 0, 226, 35, 119, 2, 32, 32, 110, 0,
+			79, 0, 0, 0, 0, 0, 32, 0, 224, 35, 121, 2, 32, 32, 100, 0, 85, 0, 0, 0, 0, 0, 0, 0, 228, 35, 122, 2, 33, 33,
+			75, 0, 43, 0, 0, 0, 0, 0, 0, 0, 198, 35, 149, 1, 5, 30, 0, 0, 101, 73, 0, 0, 0, 0, 0, 0, 249, 7, 150, 2,
+			30, 31, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 112, 114,
+			115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			105, 0, 0, 0, 0, 0, 0, 0, 232, 35, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 239, 35, 39, 2, 32, 32,
+			85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 241, 35, 40, 2, 33, 33, 85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 235, 35, 108, 2,
+			30, 30, 85, 0, 65, 0, 0, 0, 0, 0, 0, 0, 237, 35, 109, 2, 29, 29, 90, 0, 101, 73, 0, 0, 0, 0, 0, 0, 243, 35,
+			110, 2, 30, 31, 105, 0, 97, 85, 0, 0, 0, 0, 0, 0, 245, 35, 111, 2, 29, 33, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 0, 0, 0, 0, 0, 0, 115, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 247, 35, 13, 2,
+			28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 254, 35, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 36,
+			36, 2, 30, 30, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 249, 35, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0,
+			4, 36, 39, 2, 32, 32, 80, 0, 117, 0, 0, 0, 0, 0, 0, 0, 252, 35, 40, 2, 33, 33, 70, 0, 118, 0, 0, 0, 16, 0,
+			2, 0, 238, 3, 84, 7, 0, 0, 0, 6, 69, 0, 0, 0, 0, 0, 0, 0, 2, 36, 109, 2, 30, 30, 80, 0, 79, 0, 0, 0,
+			0, 0, 0, 0, 6, 36, 111, 2, 32, 32, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1,
+			0, 0, 0, 0, 0, 0, 103, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 8, 0, 3, 0, 200, 18, 47, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0,
+			8, 0, 54, 5, 49, 4, 0, 0, 0, 2, 98, 0, 0, 0, 8, 0, 1, 0, 122, 30, 71, 4, 0, 0, 0, 5, 100, 0, 0, 0,
+			8, 0, 3, 0, 7, 5, 72, 4, 0, 0, 0, 2, 103, 0, 0, 0, 8, 0, 8, 0, 113, 6, 81, 4, 0, 0, 0, 2, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 110, 115, 111, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0,
-			0, 0, 57, 44, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 53, 44, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0,
-			0, 0, 0, 0, 51, 44, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0, 61, 44, 39, 2, 32, 32, 85, 0, 117, 0,
-			0, 0, 0, 0, 0, 0, 63, 44, 40, 2, 33, 33, 85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 55, 44, 108, 2, 30, 30, 85, 0,
-			79, 0, 0, 0, 0, 0, 0, 0, 59, 44, 109, 2, 32, 32, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 97, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 79, 44, 13, 2, 28, 28, 110, 0, 114, 0,
-			0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 74, 44, 35, 2, 29, 29, 110, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 68, 44, 36, 2, 30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0, 65, 44, 37, 2, 31, 31,
-			100, 0, 111, 0, 0, 0, 0, 0, 0, 0, 84, 44, 39, 2, 32, 32, 110, 0, 117, 0, 0, 0, 0, 0, 0, 0, 86, 44, 40, 2,
-			33, 33, 110, 0, 98, 0, 0, 0, 16, 0, 1, 0, 98, 44, 71, 5, 0, 0, 0, 0, 120, 0, 0, 0, 8, 0, 8, 0, 136, 44,
-			101, 6, 0, 0, 0, 3, 121, 0, 0, 0, 0, 0, 0, 0, 70, 44, 108, 2, 28, 28, 90, 0, 112, 96, 0, 0, 8, 0, 1, 0,
-			88, 44, 109, 4, 0, 71, 0, 2, 116, 96, 0, 0, 8, 0, 4, 0, 104, 44, 110, 4, 0, 72, 0, 2, 116, 83, 96, 0, 40, 0,
-			6, 0, 117, 44, 111, 4, 0, 75, 0, 2, 107, 96, 0, 0, 8, 0, 8, 0, 126, 44, 112, 4, 0, 0, 0, 2, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 0, 119, 111, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 12, 36, 35, 2, 28, 28, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 10, 36, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0,
+			0, 0, 0, 0, 8, 36, 37, 2, 31, 31, 55, 0, 111, 0, 0, 0, 0, 0, 0, 0, 14, 36, 39, 2, 32, 32, 90, 0, 117, 0,
+			0, 0, 0, 0, 0, 0, 16, 36, 40, 2, 33, 33, 85, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6, 47, 4, 0, 0, 0, 2,
+			100, 0, 0, 0, 16, 0, 3, 0, 233, 6, 72, 5, 0, 0, 0, 5, 85, 0, 0, 0, 0, 0, 0, 0, 173, 6, 108, 2, 33, 33,
+			80, 0, 69, 0, 0, 0, 0, 0, 0, 0, 162, 6, 109, 2, 30, 30, 85, 0, 75, 0, 0, 0, 8, 0, 4, 0, 18, 36, 110, 6,
+			0, 0, 0, 3, 120, 50, 0, 0, 8, 0, 8, 0, 245, 11, 111, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 11, 19, 0, 0, 0, 0, 0, 0, 104, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 36, 36, 35, 2, 29, 29,
+			85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 38, 36, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 42, 36, 37, 2,
+			31, 31, 80, 0, 111, 0, 0, 0, 0, 0, 0, 0, 45, 36, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 49, 36,
+			40, 2, 33, 33, 90, 0, 69, 0, 0, 0, 0, 0, 0, 0, 40, 36, 112, 2, 30, 30, 85, 0, 65, 126, 0, 0, 0, 0, 0, 0,
+			51, 36, 113, 2, 29, 29, 100, 0, 69, 126, 0, 0, 0, 0, 0, 0, 53, 36, 114, 2, 30, 30, 100, 0, 79, 126, 0, 0, 0, 0,
+			0, 0, 55, 36, 116, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 47, 36, 127, 2, 32, 32, 85, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 54, 0, 0, 0, 0, 0, 0, 97, 122, 0, 0, 0, 0, 0, 0, 0, 0,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
-			142, 44, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0, 0, 0, 0, 0, 160, 44, 35, 2, 29, 29, 70, 0, 101, 0, 0, 0, 0, 0,
-			0, 0, 152, 44, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 146, 44, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0,
-			0, 0, 0, 0, 168, 44, 39, 2, 32, 32, 70, 0, 117, 0, 0, 0, 0, 0, 0, 0, 172, 44, 40, 2, 33, 33, 70, 0, 64, 58,
-			0, 0, 0, 0, 0, 0, 144, 44, 108, 2, 28, 28, 135, 0, 105, 58, 0, 0, 0, 0, 0, 0, 149, 44, 109, 2, 31, 31, 135, 0,
-			101, 58, 0, 0, 0, 0, 0, 0, 154, 44, 110, 2, 30, 30, 135, 0, 69, 0, 0, 0, 0, 0, 0, 0, 156, 44, 111, 2, 30, 30,
-			70, 0, 69, 58, 0, 0, 0, 0, 0, 0, 158, 44, 112, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 162, 44, 113, 2,
-			29, 29, 135, 0, 79, 0, 0, 0, 0, 0, 0, 0, 164, 44, 114, 2, 32, 32, 70, 0, 79, 58, 0, 0, 0, 0, 0, 0, 166, 44,
-			115, 2, 32, 32, 135, 0, 111, 58, 0, 0, 0, 0, 0, 0, 170, 44, 116, 2, 32, 32, 135, 0, 117, 58, 0, 0, 0, 0, 0, 0,
-			174, 44, 117, 2, 33, 33, 135, 0, 115, 50, 0, 0, 40, 0, 4, 0, 167, 6, 118, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 23, 0, 0, 0, 0, 0, 0, 100, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 176, 44,
-			35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 181, 44, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0,
-			185, 44, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 189, 44, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 193, 44, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 118, 0, 0, 0,
-			16, 0, 2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 187, 44, 112, 2, 31, 31, 135, 0, 101, 58,
-			0, 0, 0, 0, 0, 0, 183, 44, 114, 2, 30, 30, 125, 0, 97, 58, 0, 0, 0, 0, 0, 0, 179, 44, 118, 2, 29, 29, 150, 0,
-			111, 58, 0, 0, 0, 0, 0, 0, 191, 44, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 195, 44, 123, 2, 33, 33,
-			145, 0, 97, 73, 0, 0, 0, 0, 0, 0, 197, 44, 134, 2, 29, 31, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 18, 23, 0, 0, 0, 0, 0, 0, 116, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 199, 44, 13, 2, 29, 29, 65, 0,
-			114, 0, 0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 32, 0, 201, 44, 35, 2, 29, 29,
-			65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 205, 44, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 209, 44, 37, 2,
-			31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 213, 44, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 217, 44,
-			40, 2, 33, 33, 55, 0, 118, 0, 0, 0, 16, 0, 2, 0, 204, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0,
-			211, 44, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 207, 44, 114, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0,
-			0, 0, 203, 44, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0, 0, 0, 215, 44, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0,
-			0, 0, 0, 0, 219, 44, 123, 2, 33, 33, 140, 0, 97, 73, 0, 0, 0, 0, 32, 0, 221, 44, 134, 2, 29, 31, 140, 0, 97, 85,
-			0, 0, 0, 0, 32, 0, 223, 44, 135, 2, 29, 33, 135, 0, 116, 46, 35, 0, 8, 0, 5, 0, 225, 44, 141, 4, 0, 142, 0, 2,
-			100, 46, 35, 0, 16, 0, 5, 0, 240, 44, 142, 5, 0, 141, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 24, 23, 0, 0, 0, 0, 0, 0, 115, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 2, 45, 13, 2, 29, 29, 75, 0, 114, 0,
-			0, 0, 0, 0, 128, 0, 71, 0, 34, 3, 0, 0, 0, 7, 97, 0, 0, 0, 0, 0, 32, 0, 4, 45, 35, 2, 29, 29, 75, 0,
-			101, 0, 0, 0, 0, 0, 0, 0, 15, 45, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 19, 45, 37, 2, 31, 31,
-			75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 23, 45, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 27, 45, 40, 2,
-			33, 33, 65, 0, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 118, 0, 0, 0, 16, 0, 2, 0, 204, 3,
-			84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 21, 45, 112, 2, 31, 31, 150, 0, 101, 58, 0, 0, 0, 0, 0, 0,
-			17, 45, 114, 2, 30, 30, 150, 0, 38, 58, 0, 0, 0, 0, 0, 0, 13, 45, 117, 2, 30, 30, 150, 0, 97, 58, 0, 0, 0, 0,
-			0, 0, 9, 45, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0, 0, 0, 25, 45, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0,
-			0, 0, 0, 0, 29, 45, 123, 2, 33, 33, 150, 0, 97, 73, 0, 0, 0, 0, 32, 0, 31, 45, 134, 2, 29, 31, 150, 0, 97, 85,
-			0, 0, 0, 0, 32, 0, 33, 45, 135, 2, 29, 33, 150, 0, 38, 0, 0, 0, 0, 0, 0, 0, 11, 45, 148, 2, 30, 30, 75, 0,
-			109, 35, 0, 0, 16, 0, 1, 0, 35, 45, 149, 8, 0, 0, 0, 4, 110, 35, 0, 0, 16, 0, 4, 0, 41, 45, 150, 8, 0, 0,
-			0, 4, 110, 46, 35, 0, 16, 0, 5, 0, 47, 45, 151, 8, 50, 0, 0, 4, 110, 94, 35, 0, 16, 2, 7, 0, 53, 45, 152, 8,
-			0, 0, 0, 4, 78, 35, 0, 0, 16, 0, 8, 0, 59, 45, 153, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 7, 23, 0, 0, 0, 0, 0, 0, 103, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 16, 73, 45, 109, 2, 28, 28,
-			70, 0, 111, 58, 0, 0, 0, 0, 32, 0, 113, 45, 119, 2, 32, 32, 113, 0, 97, 73, 0, 0, 0, 0, 32, 0, 65, 45, 134, 2,
-			28, 31, 120, 0, 97, 85, 0, 0, 0, 0, 32, 0, 69, 45, 135, 2, 29, 33, 120, 0, 97, 73, 126, 0, 0, 0, 32, 0, 67, 45,
-			148, 2, 28, 31, 135, 0, 97, 85, 126, 0, 0, 0, 32, 0, 71, 45, 149, 2, 29, 33, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 12, 24, 0, 0, 0, 0, 0, 0, 97, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 133, 45, 35, 2,
-			29, 29, 112, 0, 101, 0, 0, 0, 0, 0, 0, 0, 139, 45, 36, 2, 30, 30, 105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 135, 45,
-			37, 2, 31, 31, 105, 0, 111, 0, 0, 0, 0, 0, 0, 0, 143, 45, 39, 2, 32, 32, 105, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			137, 45, 40, 2, 33, 33, 105, 0, 116, 83, 0, 0, 40, 0, 6, 0, 23, 5, 76, 4, 0, 0, 0, 2, 86, 0, 0, 0, 0, 0,
-			0, 16, 115, 45, 109, 2, 32, 32, 100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 147, 45, 121, 2, 32, 32, 100, 0, 38, 0, 0, 0,
-			0, 0, 0, 0, 141, 45, 148, 2, 29, 29, 105, 0, 116, 83, 35, 0, 40, 0, 6, 0, 23, 5, 149, 4, 0, 0, 0, 2, 126, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 150, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			12, 24, 0, 0, 0, 0, 0, 0, 111, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 153, 45, 35, 2, 29, 29, 112, 0, 101, 0, 0, 0,
-			0, 0, 0, 0, 163, 45, 36, 2, 30, 30, 105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 159, 45, 37, 2, 31, 31, 105, 0, 111, 0,
-			0, 0, 0, 0, 0, 0, 167, 45, 39, 2, 32, 32, 105, 0, 117, 0, 0, 0, 0, 0, 0, 0, 161, 45, 40, 2, 33, 33, 105, 0,
-			116, 83, 0, 0, 40, 0, 6, 0, 173, 45, 76, 4, 0, 75, 0, 2, 86, 0, 0, 0, 0, 0, 0, 16, 149, 45, 109, 2, 32, 32,
-			100, 0, 79, 0, 0, 0, 0, 0, 0, 0, 171, 45, 121, 2, 32, 32, 100, 0, 38, 0, 0, 0, 0, 0, 0, 0, 165, 45, 148, 2,
-			29, 29, 105, 0, 116, 83, 35, 0, 40, 0, 6, 0, 182, 45, 149, 4, 0, 75, 0, 2, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			150, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 24, 0, 0, 0, 0, 0, 0,
-			109, 110, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 191, 45, 35, 2, 29, 29, 112, 0, 101, 0, 0, 0, 0, 0, 0, 0, 201, 45, 36, 2,
-			30, 30, 105, 0, 105, 0, 0, 0, 0, 0, 0, 0, 197, 45, 37, 2, 31, 31, 105, 0, 111, 0, 0, 0, 0, 0, 0, 0, 205, 45,
-			39, 2, 32, 32, 105, 0, 117, 0, 0, 0, 0, 0, 0, 0, 199, 45, 40, 2, 33, 33, 105, 0, 116, 83, 0, 0, 40, 0, 6, 0,
-			211, 45, 76, 4, 0, 75, 0, 2, 79, 0, 0, 0, 0, 0, 0, 0, 209, 45, 121, 2, 32, 32, 100, 0, 38, 0, 0, 0, 0, 0,
-			0, 0, 203, 45, 148, 2, 29, 29, 105, 0, 116, 83, 35, 0, 40, 0, 6, 0, 220, 45, 149, 4, 0, 75, 0, 2, 126, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 150, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1,
-			0, 0, 0, 0, 0, 0, 116, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 4, 46, 13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0,
-			128, 0, 129, 46, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 31, 46, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0,
-			0, 0, 0, 0, 19, 46, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 11, 46, 37, 2, 31, 31, 85, 0, 111, 0,
-			0, 0, 0, 0, 0, 0, 43, 46, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 46, 46, 40, 2, 33, 33, 85, 0,
-			114, 45, 0, 0, 0, 0, 128, 0, 240, 45, 44, 3, 0, 0, 0, 0, 114, 47, 0, 0, 0, 0, 0, 0, 157, 46, 46, 3, 0, 0,
-			0, 7, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 91, 7, 55, 3,
-			0, 0, 0, 7, 100, 0, 0, 0, 16, 0, 3, 0, 2, 7, 72, 5, 0, 0, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 166, 46,
-			76, 4, 0, 75, 0, 2, 116, 83, 59, 0, 40, 2, 7, 0, 175, 46, 78, 4, 0, 77, 0, 2, 73, 0, 0, 0, 0, 0, 0, 0,
-			13, 46, 108, 2, 31, 31, 65, 0, 73, 50, 0, 0, 2, 0, 0, 0, 16, 46, 109, 2, 31, 31, 65, 0, 101, 64, 0, 0, 0, 0,
-			0, 0, 22, 46, 110, 2, 31, 28, 115, 0, 69, 0, 0, 0, 2, 0, 0, 0, 28, 46, 111, 2, 30, 30, 70, 0, 65, 64, 0, 0,
-			0, 0, 0, 0, 35, 46, 112, 2, 29, 29, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 41, 46, 113, 2, 32, 32, 70, 0, 85, 0,
-			0, 0, 0, 0, 0, 0, 48, 46, 114, 2, 32, 32, 75, 0, 116, 115, 0, 0, 40, 0, 4, 0, 50, 46, 115, 4, 0, 0, 0, 2,
-			107, 104, 0, 0, 8, 0, 8, 0, 63, 46, 116, 4, 0, 81, 0, 2, 107, 45, 0, 0, 8, 0, 8, 0, 79, 46, 117, 4, 0, 81,
-			0, 2, 75, 0, 0, 0, 8, 0, 4, 0, 92, 46, 118, 6, 0, 0, 0, 3, 112, 104, 0, 0, 8, 0, 1, 0, 110, 46, 119, 4,
-			0, 71, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 109, 116,
+			73, 36, 13, 2, 28, 28, 80, 0, 97, 0, 0, 0, 0, 0, 0, 0, 71, 36, 35, 2, 29, 29, 100, 0, 101, 0, 0, 0, 0, 0,
+			0, 0, 59, 36, 36, 2, 30, 30, 80, 0, 105, 0, 0, 0, 0, 0, 0, 0, 57, 36, 37, 2, 31, 31, 80, 0, 111, 0, 0, 0,
+			0, 0, 0, 0, 69, 36, 39, 2, 32, 32, 80, 0, 117, 0, 0, 0, 0, 0, 0, 0, 67, 36, 40, 2, 33, 33, 80, 0, 121, 0,
+			0, 0, 0, 0, 0, 0, 63, 36, 112, 2, 33, 33, 100, 0, 87, 0, 0, 0, 0, 0, 0, 0, 65, 36, 125, 2, 28, 28, 90, 0,
+			38, 0, 0, 0, 0, 0, 0, 0, 61, 36, 127, 2, 30, 30, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 97, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 83, 36, 35, 2, 29, 29, 85, 0, 101, 0,
+			0, 0, 0, 0, 0, 0, 79, 36, 36, 2, 30, 30, 85, 0, 105, 0, 0, 0, 0, 0, 0, 0, 77, 36, 37, 2, 31, 31, 85, 0,
+			111, 0, 0, 0, 0, 0, 0, 0, 87, 36, 39, 2, 32, 32, 85, 0, 117, 0, 0, 0, 0, 0, 0, 0, 89, 36, 40, 2, 33, 33,
+			85, 0, 69, 0, 0, 0, 0, 0, 0, 0, 81, 36, 108, 2, 30, 30, 85, 0, 79, 0, 0, 0, 0, 0, 0, 0, 85, 36, 109, 2,
+			32, 32, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 97, 109,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			64, 0, 0, 0, 0, 0, 0, 0, 105, 36, 13, 2, 28, 28, 110, 0, 114, 0, 0, 0, 128, 0, 0, 0, 138, 0, 34, 3, 0, 0,
+			0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 100, 36, 35, 2, 29, 29, 110, 0, 101, 0, 0, 0, 0, 0, 0, 0, 94, 36, 36, 2,
+			30, 30, 110, 0, 105, 0, 0, 0, 0, 0, 0, 0, 91, 36, 37, 2, 31, 31, 100, 0, 111, 0, 0, 0, 0, 0, 0, 0, 110, 36,
+			39, 2, 32, 32, 110, 0, 117, 0, 0, 0, 0, 0, 0, 0, 112, 36, 40, 2, 33, 33, 110, 0, 98, 0, 0, 0, 16, 0, 1, 0,
+			124, 36, 71, 5, 0, 0, 0, 0, 120, 0, 0, 0, 8, 0, 8, 0, 162, 36, 101, 6, 0, 0, 0, 3, 121, 0, 0, 0, 0, 0,
+			0, 0, 96, 36, 108, 2, 28, 28, 90, 0, 112, 96, 0, 0, 8, 0, 1, 0, 114, 36, 109, 4, 0, 71, 0, 2, 116, 96, 0, 0,
+			8, 0, 4, 0, 130, 36, 110, 4, 0, 72, 0, 2, 116, 83, 96, 0, 40, 0, 6, 0, 143, 36, 111, 4, 0, 75, 0, 2, 107, 96,
+			0, 0, 8, 0, 8, 0, 152, 36, 112, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			18, 1, 0, 0, 0, 0, 0, 0, 119, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 168, 36, 13, 2, 28, 28, 70, 0, 97, 0, 0, 0,
+			0, 0, 0, 0, 186, 36, 35, 2, 29, 29, 70, 0, 101, 0, 0, 0, 0, 0, 0, 0, 178, 36, 36, 2, 30, 30, 70, 0, 105, 0,
+			0, 0, 0, 0, 0, 0, 172, 36, 37, 2, 31, 31, 70, 0, 111, 0, 0, 0, 0, 0, 0, 0, 194, 36, 39, 2, 32, 32, 70, 0,
+			117, 0, 0, 0, 0, 0, 0, 0, 198, 36, 40, 2, 33, 33, 70, 0, 64, 58, 0, 0, 0, 0, 0, 0, 170, 36, 108, 2, 28, 28,
+			135, 0, 105, 58, 0, 0, 0, 0, 0, 0, 175, 36, 109, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 180, 36, 110, 2,
+			30, 30, 135, 0, 69, 0, 0, 0, 0, 0, 0, 0, 182, 36, 111, 2, 30, 30, 70, 0, 69, 58, 0, 0, 0, 0, 0, 0, 184, 36,
+			112, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 188, 36, 113, 2, 29, 29, 135, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+			190, 36, 114, 2, 32, 32, 70, 0, 79, 58, 0, 0, 0, 0, 0, 0, 192, 36, 115, 2, 32, 32, 135, 0, 111, 58, 0, 0, 0, 0,
+			0, 0, 196, 36, 116, 2, 32, 32, 135, 0, 117, 58, 0, 0, 0, 0, 0, 0, 200, 36, 117, 2, 33, 33, 135, 0, 115, 50, 0, 0,
+			40, 0, 4, 0, 142, 6, 118, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 21,
+			0, 0, 0, 0, 0, 0, 100, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 202, 36, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0,
+			0, 0, 207, 36, 36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 211, 36, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0,
+			0, 0, 0, 0, 215, 36, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 219, 36, 40, 2, 33, 33, 55, 0, 116, 0,
+			0, 0, 8, 0, 3, 0, 220, 6, 47, 4, 0, 0, 0, 2, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 0, 0, 6,
+			105, 58, 0, 0, 0, 0, 0, 0, 213, 36, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 209, 36, 114, 2, 30, 30,
+			125, 0, 97, 58, 0, 0, 0, 0, 0, 0, 205, 36, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0, 0, 0, 0, 0, 217, 36, 119, 2,
+			32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 221, 36, 123, 2, 33, 33, 145, 0, 97, 73, 0, 0, 0, 0, 0, 0, 223, 36,
+			134, 2, 29, 31, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 21, 0, 0, 0, 0, 0, 0,
+			116, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 225, 36, 13, 2, 29, 29, 65, 0, 114, 0, 0, 0, 128, 0, 0, 0, 138, 0, 34, 3,
+			0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 32, 0, 227, 36, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 231, 36,
+			36, 2, 30, 30, 65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 235, 36, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0,
+			239, 36, 39, 2, 32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 243, 36, 40, 2, 33, 33, 55, 0, 118, 0, 0, 0, 16, 0,
+			2, 0, 201, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0, 237, 36, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0,
+			0, 0, 0, 0, 233, 36, 114, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 229, 36, 118, 2, 29, 29, 150, 0, 111, 58,
+			0, 0, 0, 0, 0, 0, 241, 36, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 245, 36, 123, 2, 33, 33, 140, 0,
+			97, 73, 0, 0, 0, 0, 32, 0, 247, 36, 134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 249, 36, 135, 2, 29, 33,
+			135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 21, 0, 0, 0, 0, 0, 0, 115, 105, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
+			0, 0, 0, 0, 0, 0, 251, 36, 13, 2, 29, 29, 65, 0, 114, 0, 0, 0, 0, 0, 128, 0, 72, 0, 34, 3, 0, 0, 0, 7,
+			97, 0, 0, 0, 0, 0, 32, 0, 253, 36, 35, 2, 29, 29, 65, 0, 101, 0, 0, 0, 0, 0, 0, 0, 8, 37, 36, 2, 30, 30,
+			65, 0, 105, 0, 0, 0, 0, 0, 0, 0, 12, 37, 37, 2, 31, 31, 65, 0, 111, 0, 0, 0, 0, 0, 0, 0, 16, 37, 39, 2,
+			32, 32, 65, 0, 117, 0, 0, 0, 0, 0, 0, 0, 20, 37, 40, 2, 33, 33, 55, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6,
+			47, 4, 0, 0, 0, 2, 118, 0, 0, 0, 16, 0, 2, 0, 201, 3, 84, 7, 0, 0, 0, 6, 105, 58, 0, 0, 0, 0, 0, 0,
+			14, 37, 112, 2, 31, 31, 135, 0, 101, 58, 0, 0, 0, 0, 0, 0, 10, 37, 114, 2, 30, 30, 135, 0, 38, 58, 0, 0, 0, 0,
+			0, 0, 6, 37, 117, 2, 30, 30, 135, 0, 97, 58, 0, 0, 0, 0, 0, 0, 2, 37, 118, 2, 29, 29, 150, 0, 111, 58, 0, 0,
+			0, 0, 0, 0, 18, 37, 119, 2, 32, 32, 150, 0, 117, 58, 0, 0, 0, 0, 0, 0, 22, 37, 123, 2, 33, 33, 140, 0, 97, 73,
+			0, 0, 0, 0, 32, 0, 24, 37, 134, 2, 29, 31, 140, 0, 97, 85, 0, 0, 0, 0, 32, 0, 26, 37, 135, 2, 29, 33, 135, 0,
+			38, 0, 0, 0, 0, 0, 0, 0, 4, 37, 149, 2, 30, 30, 65, 0, 109, 35, 0, 0, 16, 0, 1, 0, 183, 1, 150, 8, 0, 0,
+			0, 4, 110, 35, 0, 0, 16, 0, 4, 0, 223, 1, 151, 8, 0, 0, 0, 4, 110, 46, 35, 0, 16, 0, 5, 0, 4, 2, 152, 8,
+			50, 0, 0, 4, 110, 94, 35, 0, 16, 2, 7, 0, 42, 2, 153, 8, 0, 0, 0, 4, 78, 35, 0, 0, 16, 0, 8, 0, 82, 2,
+			154, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0,
+			116, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 59, 37, 13, 2, 28, 28, 70, 0, 114, 0, 0, 0, 128, 0, 128, 0, 184, 37, 34, 3,
+			0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 86, 37, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0, 74, 37,
+			36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 66, 37, 37, 2, 31, 31, 85, 0, 111, 0, 0, 0, 0, 0, 0, 0,
+			98, 37, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 101, 37, 40, 2, 33, 33, 85, 0, 114, 45, 0, 0, 0, 0,
+			128, 0, 39, 37, 44, 3, 0, 0, 0, 0, 114, 47, 0, 0, 0, 0, 0, 0, 212, 37, 46, 3, 0, 0, 0, 7, 116, 0, 0, 0,
+			8, 0, 3, 0, 220, 6, 47, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 66, 7, 55, 3, 0, 0, 0, 7, 100, 0,
+			0, 0, 16, 0, 3, 0, 233, 6, 72, 5, 0, 0, 0, 5, 116, 83, 0, 0, 40, 0, 6, 0, 221, 37, 76, 4, 0, 75, 0, 2,
+			116, 83, 59, 0, 40, 2, 7, 0, 230, 37, 78, 4, 0, 77, 0, 2, 73, 0, 0, 0, 0, 0, 0, 0, 68, 37, 108, 2, 31, 31,
+			65, 0, 73, 50, 0, 0, 2, 0, 0, 0, 71, 37, 109, 2, 31, 31, 65, 0, 101, 64, 0, 0, 0, 0, 0, 0, 77, 37, 110, 2,
+			31, 28, 115, 0, 69, 0, 0, 0, 2, 0, 0, 0, 83, 37, 111, 2, 30, 30, 70, 0, 65, 64, 0, 0, 0, 0, 0, 0, 90, 37,
+			112, 2, 29, 29, 115, 0, 79, 0, 0, 0, 0, 0, 0, 0, 96, 37, 113, 2, 32, 32, 70, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			103, 37, 114, 2, 32, 32, 75, 0, 116, 115, 0, 0, 40, 0, 4, 0, 105, 37, 115, 4, 0, 0, 0, 2, 107, 104, 0, 0, 8, 0,
+			8, 0, 118, 37, 116, 4, 0, 81, 0, 2, 107, 45, 0, 0, 8, 0, 8, 0, 134, 37, 117, 4, 0, 81, 0, 2, 75, 0, 0, 0,
+			8, 0, 4, 0, 147, 37, 118, 6, 0, 0, 0, 3, 112, 104, 0, 0, 8, 0, 1, 0, 165, 37, 119, 4, 0, 71, 0, 2, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 109, 116, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 12, 9, 0, 0, 80, 0, 97, 0, 0, 0, 0, 0, 0, 0, 251, 37, 35, 2, 29, 29, 85, 0, 101, 0, 0, 0,
+			0, 0, 0, 0, 249, 37, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 32, 0, 9, 38, 37, 2, 29, 31, 145, 0, 111, 0,
+			0, 0, 0, 0, 0, 0, 253, 37, 39, 2, 32, 32, 77, 0, 117, 0, 0, 0, 0, 0, 0, 0, 1, 38, 40, 2, 33, 33, 70, 0,
+			112, 0, 0, 0, 8, 0, 1, 0, 201, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 4, 7, 49, 4, 0, 81,
+			0, 2, 100, 0, 0, 0, 16, 0, 3, 0, 54, 38, 72, 5, 0, 47, 0, 5, 118, 0, 0, 0, 16, 0, 2, 0, 41, 38, 84, 7,
+			0, 83, 0, 6, 104, 0, 0, 0, 8, 0, 12, 0, 81, 38, 107, 6, 0, 0, 0, 3, 73, 0, 0, 0, 0, 0, 0, 0, 246, 37,
+			108, 2, 31, 31, 65, 0, 89, 0, 0, 0, 0, 0, 0, 0, 255, 37, 109, 2, 28, 28, 77, 0, 85, 0, 0, 0, 0, 0, 0, 0,
+			3, 38, 110, 2, 33, 33, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 5, 38, 111, 2, 33, 33, 75, 0, 97, 105, 0, 0, 0, 0,
+			32, 0, 7, 38, 112, 2, 29, 31, 155, 0, 111, 105, 0, 0, 0, 0, 32, 0, 11, 38, 113, 2, 32, 31, 140, 0, 101, 105, 0, 0,
+			0, 0, 32, 0, 13, 38, 114, 2, 30, 31, 140, 0, 89, 105, 0, 0, 0, 0, 32, 0, 15, 38, 115, 2, 28, 31, 135, 0, 117, 105,
+			0, 0, 0, 0, 32, 0, 17, 38, 116, 2, 33, 31, 135, 0, 121, 105, 0, 0, 0, 0, 32, 0, 19, 38, 117, 2, 33, 31, 135, 0,
+			97, 117, 0, 0, 0, 0, 32, 0, 21, 38, 118, 2, 29, 33, 150, 0, 111, 117, 0, 0, 0, 0, 32, 0, 23, 38, 119, 2, 32, 33,
+			140, 0, 101, 117, 0, 0, 0, 0, 32, 0, 25, 38, 120, 2, 30, 33, 140, 0, 105, 117, 0, 0, 0, 0, 32, 0, 27, 38, 121, 2,
+			31, 33, 140, 0, 101, 121, 0, 0, 0, 0, 32, 0, 29, 38, 122, 2, 30, 33, 140, 0, 89, 121, 0, 0, 0, 0, 32, 0, 31, 38,
+			123, 2, 28, 33, 135, 0, 105, 121, 0, 0, 0, 0, 32, 0, 33, 38, 124, 2, 31, 33, 130, 0, 117, 111, 0, 0, 0, 0, 32, 0,
+			35, 38, 125, 2, 33, 32, 140, 0, 105, 101, 0, 0, 0, 0, 32, 0, 37, 38, 126, 2, 31, 30, 140, 0, 121, 89, 0, 0, 0, 0,
+			32, 0, 39, 38, 127, 2, 33, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 0, 0,
+			0, 0, 0, 0, 98, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 101, 38, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 0,
+			103, 38, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 105, 38, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0,
+			0, 0, 107, 38, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 109, 38, 40, 2, 33, 33, 90, 0, 116, 115, 0, 0,
+			40, 0, 4, 0, 111, 38, 149, 4, 0, 150, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 124, 38, 150, 5, 0, 149, 0, 5, 116, 115,
+			104, 0, 40, 0, 4, 0, 145, 38, 151, 4, 0, 150, 0, 2, 100, 122, 104, 0, 48, 0, 4, 0, 158, 38, 152, 5, 0, 149, 0, 5,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 107, 107, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0,
+			128, 0, 0, 0, 138, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 197, 38, 35, 2, 29, 29, 100, 0, 101, 0,
+			0, 0, 0, 0, 0, 16, 201, 38, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 205, 38, 37, 2, 31, 31, 90, 0,
+			111, 0, 0, 0, 0, 0, 0, 0, 207, 38, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0, 211, 38, 40, 2, 33, 33,
+			100, 0, 116, 0, 0, 0, 8, 0, 3, 0, 220, 6, 47, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0, 0, 0, 223, 38, 55, 3,
+			0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 62, 34, 64, 3, 0, 0, 0, 7, 88, 0, 0, 0, 8, 0, 10, 0, 213, 38,
+			106, 6, 0, 0, 0, 3, 73, 0, 0, 0, 0, 0, 0, 16, 179, 38, 108, 2, 28, 28, 50, 0, 56, 0, 0, 0, 0, 0, 0, 0,
+			183, 38, 109, 2, 28, 28, 50, 0, 117, 35, 0, 0, 0, 0, 0, 16, 187, 38, 110, 2, 13, 13, 50, 0, 85, 0, 0, 0, 0, 0,
+			0, 0, 191, 38, 111, 2, 33, 33, 50, 0, 65, 0, 0, 0, 0, 0, 0, 0, 195, 38, 112, 2, 29, 29, 100, 0, 38, 0, 0, 0,
+			0, 0, 0, 16, 199, 38, 113, 2, 29, 29, 100, 0, 69, 0, 0, 0, 0, 0, 0, 0, 203, 38, 114, 2, 13, 13, 100, 0, 89, 0,
+			0, 0, 0, 0, 0, 16, 209, 38, 115, 2, 28, 28, 100, 0, 71, 0, 0, 0, 16, 0, 10, 0, 182, 0, 116, 7, 0, 0, 0, 6,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 102, 97, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0,
+			0, 0, 0, 0, 236, 38, 35, 2, 31, 31, 80, 0, 101, 0, 0, 0, 0, 0, 0, 0, 238, 38, 36, 2, 31, 31, 80, 0, 105, 0,
+			0, 0, 0, 0, 0, 0, 232, 38, 37, 2, 31, 31, 100, 0, 111, 0, 0, 0, 0, 0, 0, 0, 240, 38, 39, 2, 31, 31, 80, 0,
+			117, 0, 0, 0, 0, 0, 0, 0, 234, 38, 40, 2, 31, 31, 100, 0, 65, 0, 0, 0, 0, 0, 0, 0, 230, 38, 108, 2, 31, 31,
+			100, 0, 101, 73, 0, 0, 0, 0, 0, 0, 242, 38, 109, 2, 31, 31, 110, 0, 111, 85, 0, 0, 0, 0, 0, 0, 244, 38, 110, 2,
+			31, 31, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 103, 97,
 			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 80, 0, 97, 0, 0, 0, 0, 0, 0, 0, 196, 46, 35, 2, 29, 29,
-			85, 0, 101, 0, 0, 0, 0, 0, 0, 0, 194, 46, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 32, 0, 210, 46, 37, 2,
-			29, 31, 145, 0, 111, 0, 0, 0, 0, 0, 0, 0, 198, 46, 39, 2, 32, 32, 77, 0, 117, 0, 0, 0, 0, 0, 0, 0, 202, 46,
-			40, 2, 33, 33, 70, 0, 112, 0, 0, 0, 8, 0, 1, 0, 226, 6, 48, 4, 0, 71, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0,
-			29, 7, 49, 4, 0, 81, 0, 2, 100, 0, 0, 0, 16, 0, 3, 0, 255, 46, 72, 5, 0, 47, 0, 5, 118, 0, 0, 0, 16, 0,
-			2, 0, 242, 46, 84, 7, 0, 83, 0, 6, 104, 0, 0, 0, 8, 0, 12, 0, 26, 47, 107, 6, 0, 0, 0, 3, 73, 0, 0, 0,
-			0, 0, 0, 0, 191, 46, 108, 2, 31, 31, 65, 0, 89, 0, 0, 0, 0, 0, 0, 0, 200, 46, 109, 2, 28, 28, 77, 0, 85, 0,
-			0, 0, 0, 0, 0, 0, 204, 46, 110, 2, 33, 33, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 206, 46, 111, 2, 33, 33, 75, 0,
-			97, 105, 0, 0, 0, 0, 32, 0, 208, 46, 112, 2, 29, 31, 155, 0, 111, 105, 0, 0, 0, 0, 32, 0, 212, 46, 113, 2, 32, 31,
-			140, 0, 101, 105, 0, 0, 0, 0, 32, 0, 214, 46, 114, 2, 30, 31, 140, 0, 89, 105, 0, 0, 0, 0, 32, 0, 216, 46, 115, 2,
-			28, 31, 135, 0, 117, 105, 0, 0, 0, 0, 32, 0, 218, 46, 116, 2, 33, 31, 135, 0, 121, 105, 0, 0, 0, 0, 32, 0, 220, 46,
-			117, 2, 33, 31, 135, 0, 97, 117, 0, 0, 0, 0, 32, 0, 222, 46, 118, 2, 29, 33, 150, 0, 111, 117, 0, 0, 0, 0, 32, 0,
-			224, 46, 119, 2, 32, 33, 140, 0, 101, 117, 0, 0, 0, 0, 32, 0, 226, 46, 120, 2, 30, 33, 140, 0, 105, 117, 0, 0, 0, 0,
-			32, 0, 228, 46, 121, 2, 31, 33, 140, 0, 101, 121, 0, 0, 0, 0, 32, 0, 230, 46, 122, 2, 30, 33, 140, 0, 89, 121, 0, 0,
-			0, 0, 32, 0, 232, 46, 123, 2, 28, 33, 135, 0, 105, 121, 0, 0, 0, 0, 32, 0, 234, 46, 124, 2, 31, 33, 130, 0, 117, 111,
-			0, 0, 0, 0, 32, 0, 236, 46, 125, 2, 33, 32, 140, 0, 105, 101, 0, 0, 0, 0, 32, 0, 238, 46, 126, 2, 31, 30, 140, 0,
-			121, 89, 0, 0, 0, 0, 32, 0, 240, 46, 127, 2, 33, 28, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 10, 23, 0, 0, 0, 0, 0, 0, 98, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 46, 47, 35, 2, 29, 29, 90, 0, 101, 0,
-			0, 0, 0, 0, 0, 0, 48, 47, 36, 2, 30, 30, 90, 0, 105, 0, 0, 0, 0, 0, 0, 0, 50, 47, 37, 2, 31, 31, 90, 0,
-			111, 0, 0, 0, 0, 0, 0, 0, 52, 47, 39, 2, 32, 32, 90, 0, 117, 0, 0, 0, 0, 0, 0, 0, 54, 47, 40, 2, 33, 33,
-			90, 0, 116, 115, 0, 0, 40, 0, 4, 0, 56, 47, 148, 4, 0, 149, 0, 2, 100, 122, 0, 0, 48, 0, 4, 0, 69, 47, 149, 5,
-			0, 148, 0, 5, 116, 115, 35, 0, 40, 0, 4, 0, 90, 47, 150, 4, 0, 149, 0, 2, 100, 122, 35, 0, 48, 0, 4, 0, 103, 47,
-			151, 5, 0, 148, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0,
-			107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 114, 0, 0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 142, 47, 35, 2,
-			29, 29, 100, 0, 101, 0, 0, 0, 0, 0, 0, 16, 146, 47, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 150, 47,
-			37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 0, 152, 47, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			156, 47, 40, 2, 33, 33, 100, 0, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 108, 0, 0, 0, 0, 0,
-			0, 0, 168, 47, 55, 3, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 54, 38, 64, 3, 0, 0, 0, 7, 88, 0, 0, 0,
-			8, 0, 10, 0, 158, 47, 106, 6, 0, 0, 0, 3, 73, 0, 0, 0, 0, 0, 0, 16, 124, 47, 108, 2, 28, 28, 50, 0, 56, 0,
-			0, 0, 0, 0, 0, 0, 128, 47, 109, 2, 28, 28, 50, 0, 117, 35, 0, 0, 0, 0, 0, 16, 132, 47, 110, 2, 13, 13, 50, 0,
-			85, 0, 0, 0, 0, 0, 0, 0, 136, 47, 111, 2, 33, 33, 50, 0, 65, 0, 0, 0, 0, 0, 0, 0, 140, 47, 112, 2, 29, 29,
-			100, 0, 38, 0, 0, 0, 0, 0, 0, 16, 144, 47, 113, 2, 29, 29, 100, 0, 69, 0, 0, 0, 0, 0, 0, 0, 148, 47, 114, 2,
-			13, 13, 100, 0, 89, 0, 0, 0, 0, 0, 0, 16, 154, 47, 115, 2, 28, 28, 100, 0, 71, 0, 0, 0, 16, 0, 10, 0, 180, 0,
-			116, 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0,
-			116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 114, 0, 0, 0, 128, 0, 0, 0, 136, 0, 34, 3, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 214, 47, 35, 2,
-			29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 16, 181, 47, 36, 2, 28, 28, 55, 0, 105, 0, 0, 0, 0, 0, 0, 16, 175, 47,
-			37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 32, 185, 47, 39, 2, 32, 32, 55, 0, 117, 0, 0, 0, 0, 0, 0, 32,
-			179, 47, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0, 245, 6, 47, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0,
-			8, 0, 235, 47, 49, 4, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 251, 47, 55, 3, 0, 0, 0, 0, 100, 0, 0, 0,
-			16, 0, 3, 0, 36, 3, 72, 5, 0, 0, 0, 5, 103, 0, 0, 0, 16, 0, 8, 0, 243, 47, 81, 7, 0, 0, 0, 0, 121, 0,
-			0, 0, 0, 0, 0, 16, 177, 47, 108, 2, 33, 33, 90, 0, 87, 0, 0, 0, 0, 0, 0, 16, 183, 47, 109, 2, 28, 28, 55, 0,
-			86, 0, 0, 0, 0, 0, 0, 32, 187, 47, 110, 2, 28, 28, 55, 0, 38, 0, 0, 0, 0, 0, 0, 16, 191, 47, 111, 2, 30, 30,
-			90, 0, 65, 0, 0, 0, 0, 0, 0, 32, 193, 47, 112, 2, 29, 29, 90, 0, 48, 0, 0, 0, 0, 0, 0, 32, 208, 47, 113, 2,
-			32, 32, 90, 0, 101, 58, 0, 0, 0, 0, 0, 16, 210, 47, 114, 2, 30, 30, 120, 0, 73, 0, 0, 0, 0, 0, 0, 16, 212, 47,
-			115, 2, 31, 31, 55, 0, 117, 50, 0, 0, 0, 0, 0, 0, 221, 47, 116, 2, 33, 33, 90, 0, 101, 50, 0, 0, 0, 0, 0, 0,
-			229, 47, 117, 2, 28, 28, 50, 0, 71, 0, 0, 0, 16, 0, 10, 0, 207, 4, 118, 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 107, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 11, 48,
-			13, 2, 28, 28, 100, 0, 42, 0, 0, 0, 16, 0, 132, 0, 67, 48, 16, 5, 0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0,
-			3, 48, 35, 2, 29, 29, 100, 0, 111, 0, 0, 0, 0, 0, 0, 0, 15, 48, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0,
-			0, 0, 19, 48, 40, 2, 33, 33, 100, 0, 100, 90, 59, 0, 48, 2, 6, 0, 56, 48, 77, 5, 0, 0, 0, 2, 116, 83, 59, 0,
-			40, 2, 6, 0, 47, 48, 78, 4, 0, 0, 0, 2, 69, 0, 0, 0, 0, 0, 0, 0, 7, 48, 108, 2, 30, 30, 100, 0, 117, 45,
-			0, 0, 0, 0, 0, 0, 23, 48, 109, 2, 33, 33, 100, 0, 107, 45, 0, 0, 8, 0, 8, 0, 27, 48, 110, 4, 0, 0, 50, 3,
-			107, 104, 0, 0, 8, 0, 8, 0, 129, 6, 111, 4, 0, 0, 0, 2, 116, 45, 0, 0, 8, 0, 4, 0, 37, 48, 112, 4, 0, 0,
-			0, 3, 112, 45, 0, 0, 8, 0, 1, 0, 55, 6, 113, 4, 0, 0, 0, 2, 112, 104, 0, 0, 8, 0, 1, 0, 74, 6, 114, 4,
-			0, 0, 0, 2, 115, 45, 0, 0, 40, 0, 4, 0, 128, 5, 115, 6, 0, 0, 0, 3, 113, 45, 0, 0, 8, 0, 10, 0, 90, 5,
-			116, 4, 0, 0, 0, 2, 116, 83, 59, 45, 40, 2, 7, 0, 32, 5, 117, 4, 0, 0, 0, 2, 100, 45, 0, 0, 16, 0, 4, 0,
-			15, 3, 118, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0,
-			0, 0, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 60, 0, 114, 0, 0, 0, 16, 0, 10, 0, 180, 0,
-			34, 7, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 83, 48, 35, 2, 29, 29, 75, 0, 101, 0, 0, 0, 0, 0, 0, 0,
-			208, 40, 36, 2, 30, 30, 70, 0, 105, 0, 0, 0, 0, 0, 0, 0, 90, 48, 37, 2, 31, 31, 75, 0, 111, 0, 0, 0, 0, 0,
-			0, 0, 92, 48, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 94, 48, 40, 2, 33, 33, 75, 0, 69, 0, 0, 0,
-			0, 0, 0, 0, 85, 48, 108, 2, 30, 30, 75, 0, 97, 73, 0, 0, 0, 0, 0, 0, 96, 48, 109, 2, 29, 31, 125, 0, 38, 0,
-			0, 0, 0, 0, 0, 0, 240, 40, 110, 2, 30, 30, 70, 0, 86, 0, 0, 0, 0, 0, 0, 0, 82, 41, 111, 2, 28, 28, 70, 0,
-			79, 0, 0, 0, 0, 0, 0, 0, 67, 41, 112, 2, 32, 32, 70, 0, 121, 0, 0, 0, 0, 0, 0, 0, 102, 41, 113, 2, 31, 31,
-			70, 0, 87, 0, 0, 0, 0, 0, 0, 0, 117, 41, 114, 2, 28, 28, 70, 0, 51, 0, 0, 0, 2, 0, 0, 0, 190, 40, 115, 2,
-			29, 29, 20, 0, 116, 108, 35, 0, 8, 0, 4, 0, 98, 48, 116, 4, 0, 0, 0, 2, 116, 115, 0, 0, 40, 0, 4, 0, 21, 6,
-			117, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 3, 0, 0, 0, 0, 0, 0,
-			101, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 114, 0, 0, 0, 16, 64, 132, 0, 219, 48, 34, 5, 0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0, 111, 48, 35, 2,
-			29, 29, 100, 0, 101, 0, 0, 0, 0, 0, 0, 0, 117, 48, 36, 2, 30, 30, 100, 0, 105, 0, 0, 0, 0, 0, 0, 0, 119, 48,
-			37, 2, 31, 31, 95, 0, 111, 0, 0, 0, 0, 0, 0, 0, 122, 48, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0,
-			124, 48, 40, 2, 33, 33, 100, 0, 116, 0, 0, 0, 8, 0, 3, 0, 202, 48, 47, 4, 0, 0, 0, 2, 98, 0, 0, 0, 16, 0,
-			1, 0, 4, 29, 71, 5, 0, 0, 0, 0, 100, 0, 0, 0, 16, 0, 3, 0, 247, 28, 72, 5, 0, 0, 0, 0, 103, 0, 0, 0,
-			16, 0, 8, 0, 217, 28, 81, 5, 0, 0, 0, 5, 122, 0, 0, 0, 40, 0, 4, 0, 143, 48, 88, 6, 0, 0, 0, 3, 115, 0,
-			0, 0, 40, 0, 4, 0, 128, 48, 89, 6, 0, 0, 0, 3, 89, 0, 0, 0, 0, 0, 0, 0, 126, 48, 113, 2, 28, 28, 100, 0,
-			116, 115, 0, 0, 40, 0, 4, 0, 171, 48, 123, 4, 0, 0, 0, 2, 97, 50, 0, 0, 0, 0, 0, 0, 113, 48, 124, 2, 29, 29,
-			100, 0, 116, 122, 0, 0, 40, 0, 4, 0, 187, 48, 125, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-			0, 0, 0, 0, 0};
-		autoFileInMemory espeakdata_phons4 = FileInMemory_createWithData (40564, reinterpret_cast<const char *> (&espeakdata_phons4_data), 
-			U"/home/david/projects/praat/espeak-work/espeak-1.48.04-source/espeak-data/phontab", 
+			64, 0, 0, 0, 0, 0, 0, 0, 246, 38, 13, 2, 28, 28, 60, 0, 97, 0, 0, 0, 0, 0, 0, 0, 248, 38, 35, 2, 29, 29,
+			100, 0, 97, 35, 0, 0, 0, 0, 0, 0, 250, 38, 108, 2, 28, 28, 60, 0, 69, 0, 0, 0, 0, 0, 0, 0, 253, 38, 109, 2,
+			30, 30, 70, 0, 69, 35, 0, 0, 0, 0, 0, 0, 255, 38, 110, 2, 28, 28, 60, 0, 73, 0, 0, 0, 0, 0, 0, 0, 2, 39,
+			111, 2, 31, 31, 60, 0, 73, 35, 0, 0, 0, 0, 0, 0, 5, 39, 112, 2, 28, 28, 60, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+			9, 39, 113, 2, 32, 32, 70, 0, 79, 35, 0, 0, 0, 0, 0, 0, 11, 39, 114, 2, 28, 28, 60, 0, 85, 0, 0, 0, 0, 0,
+			0, 0, 14, 39, 115, 2, 33, 33, 70, 0, 85, 35, 0, 0, 0, 0, 0, 0, 16, 39, 116, 2, 28, 28, 60, 0, 65, 58, 0, 0,
+			0, 0, 0, 0, 19, 39, 117, 2, 29, 29, 100, 0, 101, 58, 0, 0, 0, 0, 0, 0, 21, 39, 118, 2, 30, 30, 105, 0, 105, 58,
+			0, 0, 0, 0, 0, 0, 23, 39, 119, 2, 31, 31, 105, 0, 111, 58, 0, 0, 0, 0, 0, 0, 25, 39, 120, 2, 32, 32, 95, 0,
+			117, 58, 0, 0, 0, 0, 0, 0, 27, 39, 121, 2, 33, 33, 105, 0, 64, 73, 0, 0, 0, 0, 0, 0, 29, 39, 122, 2, 28, 31,
+			120, 0, 64, 85, 0, 0, 0, 0, 0, 0, 31, 39, 123, 2, 28, 33, 120, 0, 105, 64, 0, 0, 0, 0, 0, 0, 33, 39, 124, 2,
+			31, 28, 120, 0, 117, 64, 0, 0, 0, 0, 0, 0, 35, 39, 125, 2, 33, 28, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0, 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 128, 0, 0, 0, 138, 0, 34, 3, 0, 0,
+			0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 76, 39, 35, 2, 29, 29, 90, 0, 101, 0, 0, 0, 0, 0, 0, 16, 43, 39, 36, 2,
+			28, 28, 55, 0, 105, 0, 0, 0, 0, 0, 0, 16, 37, 39, 37, 2, 31, 31, 90, 0, 111, 0, 0, 0, 0, 0, 0, 32, 47, 39,
+			39, 2, 32, 32, 55, 0, 117, 0, 0, 0, 0, 0, 0, 32, 41, 39, 40, 2, 33, 33, 90, 0, 116, 0, 0, 0, 8, 0, 3, 0,
+			220, 6, 47, 4, 0, 0, 0, 2, 107, 0, 0, 0, 8, 0, 8, 0, 97, 39, 49, 4, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,
+			0, 0, 113, 39, 55, 3, 0, 0, 0, 0, 100, 0, 0, 0, 16, 0, 3, 0, 33, 3, 72, 5, 0, 0, 0, 5, 103, 0, 0, 0,
+			16, 0, 8, 0, 105, 39, 81, 7, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 16, 39, 39, 108, 2, 33, 33, 90, 0, 87, 0,
+			0, 0, 0, 0, 0, 16, 45, 39, 109, 2, 28, 28, 55, 0, 86, 0, 0, 0, 0, 0, 0, 32, 49, 39, 110, 2, 28, 28, 55, 0,
+			38, 0, 0, 0, 0, 0, 0, 16, 53, 39, 111, 2, 30, 30, 90, 0, 65, 0, 0, 0, 0, 0, 0, 32, 55, 39, 112, 2, 29, 29,
+			90, 0, 48, 0, 0, 0, 0, 0, 0, 32, 70, 39, 113, 2, 32, 32, 90, 0, 101, 58, 0, 0, 0, 0, 0, 16, 72, 39, 114, 2,
+			30, 30, 120, 0, 73, 0, 0, 0, 0, 0, 0, 16, 74, 39, 115, 2, 31, 31, 55, 0, 117, 50, 0, 0, 0, 0, 0, 0, 83, 39,
+			116, 2, 33, 33, 90, 0, 101, 50, 0, 0, 0, 0, 0, 0, 91, 39, 117, 2, 28, 28, 50, 0, 71, 0, 0, 0, 16, 0, 10, 0,
+			204, 4, 118, 7, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0,
+			0, 0, 107, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 129, 39, 13, 2, 28, 28, 100, 0, 42, 0, 0, 0, 16, 0, 132, 0, 185, 39,
+			16, 5, 0, 0, 0, 3, 97, 0, 0, 0, 0, 0, 0, 0, 121, 39, 35, 2, 29, 29, 100, 0, 111, 0, 0, 0, 0, 0, 0, 0,
+			133, 39, 39, 2, 32, 32, 100, 0, 117, 0, 0, 0, 0, 0, 0, 0, 137, 39, 40, 2, 33, 33, 100, 0, 100, 90, 59, 0, 48, 2,
+			6, 0, 174, 39, 77, 5, 0, 0, 0, 2, 116, 83, 59, 0, 40, 2, 6, 0, 165, 39, 78, 4, 0, 0, 0, 2, 69, 0, 0, 0,
+			0, 0, 0, 0, 125, 39, 108, 2, 30, 30, 100, 0, 117, 45, 0, 0, 0, 0, 0, 0, 141, 39, 109, 2, 33, 33, 100, 0, 107, 45,
+			0, 0, 8, 0, 8, 0, 145, 39, 110, 4, 0, 0, 50, 3, 107, 104, 0, 0, 8, 0, 8, 0, 126, 6, 111, 4, 0, 0, 0, 2,
+			116, 45, 0, 0, 8, 0, 4, 0, 155, 39, 112, 4, 0, 0, 0, 3, 112, 45, 0, 0, 8, 0, 1, 0, 52, 6, 113, 4, 0, 0,
+			0, 2, 112, 104, 0, 0, 8, 0, 1, 0, 71, 6, 114, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 0, 0, 60, 0,
+			114, 0, 0, 0, 16, 0, 10, 0, 182, 0, 34, 7, 0, 0, 0, 6, 97, 0, 0, 0, 0, 0, 0, 0, 201, 39, 35, 2, 29, 29,
+			75, 0, 101, 0, 0, 0, 0, 0, 0, 0, 203, 39, 36, 2, 30, 30, 75, 0, 105, 0, 0, 0, 0, 0, 0, 0, 208, 39, 37, 2,
+			31, 31, 75, 0, 111, 0, 0, 0, 0, 0, 0, 0, 210, 39, 39, 2, 32, 32, 75, 0, 117, 0, 0, 0, 0, 0, 0, 0, 212, 39,
+			40, 2, 33, 33, 75, 0, 97, 73, 0, 0, 0, 0, 0, 0, 214, 39, 108, 2, 29, 31, 125, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+			212, 34, 109, 2, 30, 30, 75, 0, 87, 0, 0, 0, 0, 0, 0, 0, 234, 34, 110, 2, 28, 28, 75, 0, 79, 0, 0, 0, 0, 0,
+			0, 0, 224, 34, 111, 2, 32, 32, 75, 0, 116, 108, 35, 0, 8, 0, 4, 0, 216, 39, 112, 4, 0, 0, 0, 2, 116, 115, 0, 0,
+			40, 0, 4, 0, 18, 6, 113, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+		autoFileInMemory espeakdata_phons4 = FileInMemory_createWithData (36148, reinterpret_cast<const char *> (&espeakdata_phons4_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/phontab", 
 			U"phontab");
-		my addItem_move (espeakdata_phons4.move());
+		Collection_addItem (me.peek(), espeakdata_phons4.transfer());
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"FileInMemorySet not created.");
+		Melder_throw (U"FilesInMemory not created.");
 	}
 }
 
diff --git a/external/espeak/espeakdata_variants.cpp b/external/espeak/espeakdata_variants.cpp
index 4985374..4d66113 100644
--- a/external/espeak/espeakdata_variants.cpp
+++ b/external/espeak/espeakdata_variants.cpp
@@ -1,22 +1,22 @@
-/* File espeakdata_variants.cpp (version 1.48.04) was automaticallygenerated on Thu Dec  3 15:21:15 2015 from files in espeak-data/voices/!v  */
+/* File espeakdata_variants.cpp was generated automatically on Sun Nov  4 17:43:38 2012 from files in espeak-data/voices/!v  */
 
 #include "espeakdata_FileInMemory.h"
 #include "Collection.h"
 #include "FileInMemory.h"
 #include "melder.h"
 
-autoFileInMemorySet create_espeakdata_variants () {
+FilesInMemory create_espeakdata_variants () {
 	try {
-		autoFileInMemorySet me = FileInMemorySet_create ();
+		autoFilesInMemory me = FilesInMemory_create ();
 		static unsigned char espeakdata_variants1_data[94] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 99, 114, 111, 97, 107, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 32, 55, 48, 10, 10, 112, 105, 116, 99, 104, 32, 56, 53, 32, 49, 49, 55, 10, 102, 108, 117,
 			116, 116, 101, 114, 32, 50, 48, 10, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49, 48, 48, 32, 56, 48, 32, 49, 49, 48, 10,
 			10, 10, 10, 0};
 		autoFileInMemory espeakdata_variants1 = FileInMemory_createWithData (93, reinterpret_cast<const char *> (&espeakdata_variants1_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/croak", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/croak",
 			U"croak");
-		my addItem_move (espeakdata_variants1.move());
+		Collection_addItem (me.peek(), espeakdata_variants1.transfer());
 
 		static unsigned char espeakdata_variants2_data[325] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 49, 10,
@@ -31,9 +31,9 @@ autoFileInMemorySet create_espeakdata_variants () {
 			110, 116, 32, 56, 32, 49, 49, 48, 32, 32, 55, 48, 32, 49, 53, 48, 10, 10, 115, 116, 114, 101, 115, 115, 65, 100, 100, 32, 45, 49,
 			48, 32, 45, 49, 48, 32, 45, 50, 48, 32, 45, 50, 48, 32, 48, 32, 48, 32, 52, 48, 32, 54, 48, 10, 0};
 		autoFileInMemory espeakdata_variants2 = FileInMemory_createWithData (324, reinterpret_cast<const char *> (&espeakdata_variants2_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/f1", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/f1",
 			U"f1");
-		my addItem_move (espeakdata_variants2.move());
+		Collection_addItem (me.peek(), espeakdata_variants2.transfer());
 
 		static unsigned char espeakdata_variants3_data[358] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 50, 10,
@@ -49,9 +49,9 @@ autoFileInMemorySet create_espeakdata_variants () {
 			52, 48, 10, 98, 114, 101, 97, 116, 104, 32, 48, 32, 50, 32, 51, 32, 51, 32, 51, 32, 51, 32, 51, 32, 50, 10, 101, 99, 104, 111,
 			32, 49, 52, 48, 32, 49, 48, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 49, 50, 53, 32, 49, 50, 53, 10, 0};
 		autoFileInMemory espeakdata_variants3 = FileInMemory_createWithData (357, reinterpret_cast<const char *> (&espeakdata_variants3_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/f2", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/f2",
 			U"f2");
-		my addItem_move (espeakdata_variants3.move());
+		Collection_addItem (me.peek(), espeakdata_variants3.transfer());
 
 		static unsigned char espeakdata_variants4_data[376] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 51, 10,
@@ -68,9 +68,9 @@ autoFileInMemorySet create_espeakdata_variants () {
 			116, 104, 32, 48, 32, 50, 32, 51, 32, 51, 32, 51, 32, 51, 32, 51, 32, 50, 10, 101, 99, 104, 111, 32, 49, 50, 48, 32, 49, 48,
 			10, 114, 111, 117, 103, 104, 110, 101, 115, 115, 32, 52, 10, 10, 10, 0};
 		autoFileInMemory espeakdata_variants4 = FileInMemory_createWithData (375, reinterpret_cast<const char *> (&espeakdata_variants4_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/f3", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/f3",
 			U"f3");
-		my addItem_move (espeakdata_variants4.move());
+		Collection_addItem (me.peek(), espeakdata_variants4.transfer());
 
 		static unsigned char espeakdata_variants5_data[351] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 52, 10,
@@ -86,9 +86,9 @@ autoFileInMemorySet create_espeakdata_variants () {
 			32, 45, 50, 48, 32, 48, 32, 48, 32, 50, 48, 32, 49, 50, 48, 10, 115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 49, 56, 32, 49,
 			54, 32, 50, 48, 32, 50, 48, 32, 50, 48, 32, 50, 48, 32, 50, 48, 32, 50, 48, 10, 0};
 		autoFileInMemory espeakdata_variants5 = FileInMemory_createWithData (350, reinterpret_cast<const char *> (&espeakdata_variants5_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/f4", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/f4",
 			U"f4");
-		my addItem_move (espeakdata_variants5.move());
+		Collection_addItem (me.peek(), espeakdata_variants5.transfer());
 
 		static unsigned char espeakdata_variants6_data[426] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 32, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 53,
@@ -107,43 +107,35 @@ autoFileInMemorySet create_espeakdata_variants () {
 			48, 10, 98, 114, 101, 97, 116, 104, 119, 32, 49, 53, 48, 32, 49, 53, 48, 32, 50, 48, 48, 32, 50, 48, 48, 32, 52, 48, 48, 32,
 			52, 48, 48, 32, 10, 0};
 		autoFileInMemory espeakdata_variants6 = FileInMemory_createWithData (425, reinterpret_cast<const char *> (&espeakdata_variants6_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/f5", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/f5",
 			U"f5");
-		my addItem_move (espeakdata_variants6.move());
+		Collection_addItem (me.peek(), espeakdata_variants6.transfer());
 
 		static unsigned char espeakdata_variants7_data[39] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 107, 108, 97, 116, 116, 10, 107, 108,
 			97, 116, 116, 32, 49, 10, 32, 10, 0};
 		autoFileInMemory espeakdata_variants7 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_variants7_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/klatt", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/klatt",
 			U"klatt");
-		my addItem_move (espeakdata_variants7.move());
+		Collection_addItem (me.peek(), espeakdata_variants7.transfer());
 
 		static unsigned char espeakdata_variants8_data[39] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 107, 108, 97, 116, 116, 50, 10, 107,
 			108, 97, 116, 116, 32, 50, 10, 10, 0};
 		autoFileInMemory espeakdata_variants8 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_variants8_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/klatt2", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/klatt2",
 			U"klatt2");
-		my addItem_move (espeakdata_variants8.move());
+		Collection_addItem (me.peek(), espeakdata_variants8.transfer());
 
 		static unsigned char espeakdata_variants9_data[40] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 107, 108, 97, 116, 116, 51, 10, 107,
 			108, 97, 116, 116, 32, 51, 10, 32, 10, 0};
 		autoFileInMemory espeakdata_variants9 = FileInMemory_createWithData (39, reinterpret_cast<const char *> (&espeakdata_variants9_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/klatt3", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/klatt3",
 			U"klatt3");
-		my addItem_move (espeakdata_variants9.move());
+		Collection_addItem (me.peek(), espeakdata_variants9.transfer());
 
-		static unsigned char espeakdata_variants10_data[40] = {
-			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 107, 108, 97, 116, 116, 52, 10, 107,
-			108, 97, 116, 116, 32, 52, 10, 32, 10, 0};
-		autoFileInMemory espeakdata_variants10 = FileInMemory_createWithData (39, reinterpret_cast<const char *> (&espeakdata_variants10_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/klatt4", 
-			U"klatt4");
-		my addItem_move (espeakdata_variants10.move());
-
-		static unsigned char espeakdata_variants11_data[336] = {
+		static unsigned char espeakdata_variants10_data[336] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 49, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 32, 55, 48, 10, 10, 112, 105, 116, 99, 104, 32, 55, 53, 32, 49, 48, 57, 10, 102, 108, 117,
 			116, 116, 101, 114, 32, 53, 10, 114, 111, 117, 103, 104, 110, 101, 115, 115, 32, 52, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32,
@@ -156,12 +148,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56, 32, 49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 10, 47, 47, 115,
 			116, 114, 101, 115, 115, 65, 100, 100, 32, 45, 49, 48, 32, 45, 49, 48, 32, 45, 50, 48, 32, 45, 50, 48, 32, 48, 32, 48, 32, 52,
 			48, 32, 55, 48, 10, 0};
-		autoFileInMemory espeakdata_variants11 = FileInMemory_createWithData (335, reinterpret_cast<const char *> (&espeakdata_variants11_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m1", 
+		autoFileInMemory espeakdata_variants10 = FileInMemory_createWithData (335, reinterpret_cast<const char *> (&espeakdata_variants10_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m1",
 			U"m1");
-		my addItem_move (espeakdata_variants11.move());
+		Collection_addItem (me.peek(), espeakdata_variants10.transfer());
 
-		static unsigned char espeakdata_variants12_data[265] = {
+		static unsigned char espeakdata_variants11_data[265] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 50, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 56, 56, 32, 49, 49, 53, 10, 101, 99, 104, 111, 32, 49,
 			51, 48, 32, 49, 53, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49, 48, 48, 32, 32, 56, 48, 32, 49, 50, 48, 10, 102, 111,
@@ -171,12 +163,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			97, 110, 116, 32, 53, 32, 49, 48, 48, 32, 32, 57, 48, 32, 49, 50, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 54, 32, 49, 48,
 			48, 32, 32, 57, 48, 32, 49, 50, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 55, 32, 49, 48, 48, 32, 32, 57, 48, 32, 49, 50,
 			48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56, 32, 49, 48, 48, 32, 32, 57, 48, 32, 49, 50, 48, 10, 0};
-		autoFileInMemory espeakdata_variants12 = FileInMemory_createWithData (264, reinterpret_cast<const char *> (&espeakdata_variants12_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m2", 
+		autoFileInMemory espeakdata_variants11 = FileInMemory_createWithData (264, reinterpret_cast<const char *> (&espeakdata_variants11_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m2",
 			U"m2");
-		my addItem_move (espeakdata_variants12.move());
+		Collection_addItem (me.peek(), espeakdata_variants11.transfer());
 
-		static unsigned char espeakdata_variants13_data[301] = {
+		static unsigned char espeakdata_variants12_data[286] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 51, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 50, 50, 10, 102, 111, 114, 109, 97, 110,
 			116, 32, 48, 32, 49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 32, 57, 54, 32,
@@ -185,15 +177,14 @@ autoFileInMemorySet create_espeakdata_variants () {
 			52, 32, 32, 57, 53, 32, 49, 48, 51, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 53, 32, 32, 57, 53, 32, 49, 48,
 			51, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 54, 32, 49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111,
 			114, 109, 97, 110, 116, 32, 55, 32, 49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56, 32,
-			49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 49, 48, 48, 10, 115, 116,
-			114, 101, 115, 115, 65, 100, 100, 32, 49, 48, 32, 49, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 45, 51, 48, 32, 45, 51, 48, 10,
-			0};
-		autoFileInMemory espeakdata_variants13 = FileInMemory_createWithData (300, reinterpret_cast<const char *> (&espeakdata_variants13_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m3", 
+			49, 48, 48, 32, 49, 48, 48, 32, 49, 48, 48, 10, 10, 115, 116, 114, 101, 115, 115, 65, 100, 100, 32, 49, 48, 32, 49, 48, 32, 48,
+			32, 48, 32, 48, 32, 48, 32, 45, 51, 48, 32, 45, 51, 48, 10, 0};
+		autoFileInMemory espeakdata_variants12 = FileInMemory_createWithData (285, reinterpret_cast<const char *> (&espeakdata_variants12_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m3",
 			U"m3");
-		my addItem_move (espeakdata_variants13.move());
+		Collection_addItem (me.peek(), espeakdata_variants12.transfer());
 
-		static unsigned char espeakdata_variants14_data[291] = {
+		static unsigned char espeakdata_variants13_data[291] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 52, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 55, 48, 32, 49, 49, 48, 10, 10, 102, 111, 114, 109, 97,
 			110, 116, 32, 48, 32, 49, 48, 51, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 49, 48, 51,
@@ -204,12 +195,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			111, 114, 109, 97, 110, 116, 32, 55, 32, 49, 48, 51, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56,
 			32, 49, 48, 51, 32, 49, 48, 48, 32, 49, 48, 48, 10, 10, 115, 116, 114, 101, 115, 115, 65, 100, 100, 32, 45, 49, 48, 32, 45, 49,
 			48, 32, 45, 51, 48, 32, 45, 51, 48, 32, 48, 32, 48, 32, 54, 48, 32, 57, 48, 10, 0};
-		autoFileInMemory espeakdata_variants14 = FileInMemory_createWithData (290, reinterpret_cast<const char *> (&espeakdata_variants14_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m4", 
+		autoFileInMemory espeakdata_variants13 = FileInMemory_createWithData (290, reinterpret_cast<const char *> (&espeakdata_variants13_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m4",
 			U"m4");
-		my addItem_move (espeakdata_variants14.move());
+		Collection_addItem (me.peek(), espeakdata_variants13.transfer());
 
-		static unsigned char espeakdata_variants15_data[263] = {
+		static unsigned char espeakdata_variants14_data[263] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 53, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49, 48, 48, 32, 32, 56, 53, 32, 49,
 			51, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 32, 57, 48, 32, 32, 56, 53, 32, 49, 51, 48, 32, 32, 52, 48, 10, 102,
@@ -219,12 +210,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 54, 32, 49, 48, 53, 32, 32, 56, 53, 32, 49, 53, 48, 10, 102, 111, 114, 109, 97, 110,
 			116, 32, 55, 32, 49, 48, 53, 32, 32, 56, 53, 32, 49, 53, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56, 32, 49, 48, 53, 32,
 			32, 56, 53, 32, 49, 53, 48, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 0};
-		autoFileInMemory espeakdata_variants15 = FileInMemory_createWithData (262, reinterpret_cast<const char *> (&espeakdata_variants15_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m5", 
+		autoFileInMemory espeakdata_variants14 = FileInMemory_createWithData (262, reinterpret_cast<const char *> (&espeakdata_variants14_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m5",
 			U"m5");
-		my addItem_move (espeakdata_variants15.move());
+		Collection_addItem (me.peek(), espeakdata_variants14.transfer());
 
-		static unsigned char espeakdata_variants16_data[189] = {
+		static unsigned char espeakdata_variants15_data[189] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 54, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 56, 50, 32, 49, 49, 55, 10, 10, 102, 111, 114, 109, 97,
 			110, 116, 32, 48, 32, 49, 48, 48, 32, 32, 57, 48, 32, 49, 50, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 49, 48, 48,
@@ -232,12 +223,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			10, 102, 111, 114, 109, 97, 110, 116, 32, 51, 32, 49, 48, 48, 32, 32, 55, 53, 32, 49, 52, 48, 10, 102, 111, 114, 109, 97, 110, 116,
 			32, 52, 32, 49, 48, 48, 32, 32, 56, 48, 32, 49, 52, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 53, 32, 49, 48, 48, 32, 32,
 			56, 48, 32, 49, 52, 48, 10, 10, 0};
-		autoFileInMemory espeakdata_variants16 = FileInMemory_createWithData (188, reinterpret_cast<const char *> (&espeakdata_variants16_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m6", 
+		autoFileInMemory espeakdata_variants15 = FileInMemory_createWithData (188, reinterpret_cast<const char *> (&espeakdata_variants15_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m6",
 			U"m6");
-		my addItem_move (espeakdata_variants16.move());
+		Collection_addItem (me.peek(), espeakdata_variants15.transfer());
 
-		static unsigned char espeakdata_variants17_data[255] = {
+		static unsigned char espeakdata_variants16_data[255] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 109, 97, 108, 101, 55, 10, 103, 101,
 			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 32, 55, 53, 32, 49, 50, 53, 10, 10, 102, 111, 114, 109,
 			97, 110, 116, 32, 48, 32, 49, 48, 48, 32, 49, 50, 53, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 49, 48,
@@ -247,12 +238,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			114, 109, 97, 110, 116, 32, 54, 32, 32, 57, 48, 32, 53, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 55, 32, 49,
 			48, 48, 32, 53, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 56, 32, 49, 48, 48, 32, 53, 48, 32, 49, 48, 48,
 			10, 118, 111, 105, 99, 105, 110, 103, 32, 49, 53, 53, 10, 10, 0};
-		autoFileInMemory espeakdata_variants17 = FileInMemory_createWithData (254, reinterpret_cast<const char *> (&espeakdata_variants17_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/m7", 
+		autoFileInMemory espeakdata_variants16 = FileInMemory_createWithData (254, reinterpret_cast<const char *> (&espeakdata_variants16_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/m7",
 			U"m7");
-		my addItem_move (espeakdata_variants17.move());
+		Collection_addItem (me.peek(), espeakdata_variants16.transfer());
 
-		static unsigned char espeakdata_variants18_data[187] = {
+		static unsigned char espeakdata_variants17_data[187] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 119, 104, 105, 115, 112, 101, 114, 10,
 			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 56, 50, 32, 49, 49, 55, 10, 102, 108, 117, 116,
 			116, 101, 114, 32, 50, 48, 10, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49, 48, 48, 32, 32, 48, 32, 49, 48, 48, 10, 102,
@@ -260,12 +251,12 @@ autoFileInMemorySet create_espeakdata_variants () {
 			55, 10, 98, 114, 101, 97, 116, 104, 32, 32, 32, 55, 53, 32, 32, 55, 53, 32, 32, 53, 48, 32, 32, 52, 48, 32, 32, 49, 53, 32,
 			32, 49, 48, 10, 98, 114, 101, 97, 116, 104, 119, 32, 49, 53, 48, 32, 49, 53, 48, 32, 50, 48, 48, 32, 50, 48, 48, 32, 52, 48,
 			48, 32, 52, 48, 48, 10, 0};
-		autoFileInMemory espeakdata_variants18 = FileInMemory_createWithData (186, reinterpret_cast<const char *> (&espeakdata_variants18_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/whisper", 
+		autoFileInMemory espeakdata_variants17 = FileInMemory_createWithData (186, reinterpret_cast<const char *> (&espeakdata_variants17_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/whisper",
 			U"whisper");
-		my addItem_move (espeakdata_variants18.move());
+		Collection_addItem (me.peek(), espeakdata_variants17.transfer());
 
-		static unsigned char espeakdata_variants19_data[393] = {
+		static unsigned char espeakdata_variants18_data[393] = {
 			108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 97, 114, 105, 97, 110, 116, 10, 110, 97, 109, 101, 32, 102, 101, 109, 97, 108, 101, 95, 119,
 			104, 105, 115, 112, 101, 114, 10, 103, 101, 110, 100, 101, 114, 32, 102, 101, 109, 97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 49, 54,
 			48, 32, 50, 50, 48, 10, 114, 111, 117, 103, 104, 110, 101, 115, 115, 32, 51, 10, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49,
@@ -280,14 +271,14 @@ autoFileInMemorySet create_espeakdata_variants () {
 			50, 48, 10, 98, 114, 101, 97, 116, 104, 32, 55, 53, 32, 55, 53, 32, 53, 48, 32, 52, 48, 32, 49, 53, 32, 49, 48, 10, 98, 114,
 			101, 97, 116, 104, 119, 32, 49, 53, 48, 32, 49, 53, 48, 32, 50, 48, 48, 32, 50, 48, 48, 32, 52, 48, 48, 32, 52, 48, 48, 10,
 			32, 10, 0};
-		autoFileInMemory espeakdata_variants19 = FileInMemory_createWithData (392, reinterpret_cast<const char *> (&espeakdata_variants19_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/!v/whisperf", 
+		autoFileInMemory espeakdata_variants18 = FileInMemory_createWithData (392, reinterpret_cast<const char *> (&espeakdata_variants18_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/!v/whisperf",
 			U"whisperf");
-		my addItem_move (espeakdata_variants19.move());
+		Collection_addItem (me.peek(), espeakdata_variants18.transfer());
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"FileInMemorySet not created.");
+		Melder_throw (U"FilesInMemory not created.");
 	}
 }
 
diff --git a/external/espeak/espeakdata_voices.cpp b/external/espeak/espeakdata_voices.cpp
index 0a17148..4af626d 100644
--- a/external/espeak/espeakdata_voices.cpp
+++ b/external/espeak/espeakdata_voices.cpp
@@ -1,311 +1,33 @@
-/* File espeakdata_voices.cpp (version 1.48.04) was automatically generated on Thu Dec  3 15:21:15 2015 from files in espeak-data/voices  */
+/* File espeakdata_voices.cpp was generated automatically on Sun Nov  4 17:43:38 2012 from files in espeak-data/voices  */
 
 #include "espeakdata_FileInMemory.h"
 #include "Collection.h"
 #include "FileInMemory.h"
 #include "melder.h"
 
-autoFileInMemorySet create_espeakdata_voices () {
+FilesInMemory create_espeakdata_voices () {
 	try {
-		autoFileInMemorySet me = FileInMemorySet_create ();
-		static unsigned char espeakdata_voices1_data[28] = {
-			110, 97, 109, 101, 32, 112, 101, 114, 115, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 97, 10, 32, 10, 0};
-		autoFileInMemory espeakdata_voices1 = FileInMemory_createWithData (27, reinterpret_cast<const char *> (&espeakdata_voices1_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/fa", 
-			U"fa");
-		my addItem_move (espeakdata_voices1.move());
-
-		static unsigned char espeakdata_voices2_data[202] = {
-			110, 97, 109, 101, 32, 112, 101, 114, 115, 105, 97, 110, 45, 112, 105, 110, 103, 108, 105, 115, 104, 10, 47, 47, 32, 83, 111, 109, 101, 116,
-			105, 109, 101, 115, 44, 32, 70, 97, 114, 115, 105, 32, 115, 112, 101, 97, 107, 101, 114, 115, 32, 119, 114, 105, 116, 101, 32, 70, 97, 114,
-			115, 105, 32, 119, 111, 114, 100, 115, 32, 117, 115, 105, 110, 103, 32, 69, 110, 103, 108, 105, 115, 104, 32, 99, 104, 97, 114, 97, 99, 116,
-			101, 114, 115, 44, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 32, 105, 110, 32, 67, 104, 97, 116, 32, 97, 110, 100, 32,
-			83, 77, 83, 32, 40, 116, 101, 120, 116, 101, 32, 109, 101, 115, 115, 97, 103, 101, 115, 41, 46, 41, 44, 32, 99, 97, 108, 108, 101, 100,
-			32, 80, 105, 110, 103, 108, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 97, 45, 112, 105, 110, 10, 100, 105, 99, 116,
-			114, 117, 108, 101, 115, 32, 49, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 102, 97, 10, 10, 0};
-		autoFileInMemory espeakdata_voices2 = FileInMemory_createWithData (201, reinterpret_cast<const char *> (&espeakdata_voices2_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/fa-pin", 
-			U"fa-pin");
-		my addItem_move (espeakdata_voices2.move());
-
-		static unsigned char espeakdata_voices3_data[36] = {
-			110, 97, 109, 101, 32, 104, 105, 110, 100, 105, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 105, 10, 103, 101, 110, 100, 101, 114, 32,
-			109, 97, 108, 101, 10, 0};
-		autoFileInMemory espeakdata_voices3 = FileInMemory_createWithData (35, reinterpret_cast<const char *> (&espeakdata_voices3_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/hi", 
-			U"hi");
-		my addItem_move (espeakdata_voices3.move());
-
-		static unsigned char espeakdata_voices4_data[39] = {
-			110, 97, 109, 101, 32, 97, 114, 109, 101, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121, 10, 103, 101, 110, 100,
-			101, 114, 32, 109, 97, 108, 101, 10, 0};
-		autoFileInMemory espeakdata_voices4 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices4_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/hy", 
-			U"hy");
-		my addItem_move (espeakdata_voices4.move());
-
-		static unsigned char espeakdata_voices5_data[326] = {
-			110, 97, 109, 101, 32, 97, 114, 109, 101, 110, 105, 97, 110, 45, 119, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121,
-			45, 119, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121, 32, 32, 56, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97,
-			108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 10, 47, 47, 32, 99, 104, 97, 110, 103, 101, 32, 99, 111, 110,
-			115, 111, 110, 97, 110, 116, 115, 32, 102, 111, 114, 32, 87, 101, 115, 116, 32, 65, 114, 109, 101, 110, 105, 97, 110, 32, 112, 114, 111, 110,
-			117, 110, 99, 105, 97, 116, 105, 111, 110, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 98, 32, 32, 112, 35, 10, 114, 101, 112,
-			108, 97, 99, 101, 32, 48, 48, 32, 100, 32, 32, 116, 35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 100, 122, 32, 116, 115,
-			35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 100, 90, 32, 116, 83, 35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48,
-			32, 103, 32, 32, 107, 35, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 112, 32, 32, 98, 10, 114, 101, 112, 108, 97, 99,
-			101, 32, 48, 48, 32, 116, 32, 32, 100, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 116, 115, 32, 100, 122, 10, 114, 101, 112,
-			108, 97, 99, 101, 32, 48, 48, 32, 116, 83, 32, 100, 90, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 107, 32, 32, 103, 10,
-			10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 82, 50, 32, 82, 32, 32, 47, 47, 32, 63, 63, 10, 10, 0};
-		autoFileInMemory espeakdata_voices5 = FileInMemory_createWithData (325, reinterpret_cast<const char *> (&espeakdata_voices5_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/hy-west", 
-			U"hy-west");
-		my addItem_move (espeakdata_voices5.move());
-
-		static unsigned char espeakdata_voices6_data[147] = {
-			110, 97, 109, 101, 32, 105, 110, 100, 111, 110, 101, 115, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 100, 10, 103, 101,
-			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 54, 48, 32, 50, 48,
-			48, 32, 32, 49, 56, 48, 32, 49, 56, 48, 32, 32, 48, 32, 48, 32, 32, 50, 50, 48, 32, 50, 52, 48, 10, 115, 116, 114, 101, 115,
-			115, 65, 109, 112, 32, 32, 32, 32, 49, 54, 32, 32, 49, 56, 32, 32, 32, 49, 56, 32, 32, 49, 56, 32, 32, 32, 48, 32, 48, 32,
-			32, 50, 50, 32, 32, 50, 49, 10, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 32, 56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices6 = FileInMemory_createWithData (146, reinterpret_cast<const char *> (&espeakdata_voices6_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/id", 
-			U"id");
-		my addItem_move (espeakdata_voices6.move());
-
-		static unsigned char espeakdata_voices7_data[27] = {
-			110, 97, 109, 101, 32, 103, 101, 111, 114, 103, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 97, 10, 0};
-		autoFileInMemory espeakdata_voices7 = FileInMemory_createWithData (26, reinterpret_cast<const char *> (&espeakdata_voices7_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ka", 
-			U"ka");
-		my addItem_move (espeakdata_voices7.move());
-
-		static unsigned char espeakdata_voices8_data[56] = {
-			110, 97, 109, 101, 32, 107, 97, 110, 110, 97, 100, 97, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 110, 10, 10, 105, 110, 116, 111,
-			110, 97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices8 = FileInMemory_createWithData (55, reinterpret_cast<const char *> (&espeakdata_voices8_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/kn", 
-			U"kn");
-		my addItem_move (espeakdata_voices8.move());
-
-		static unsigned char espeakdata_voices9_data[53] = {
-			110, 97, 109, 101, 32, 107, 117, 114, 100, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 117, 10, 103, 101, 110, 100, 101,
-			114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 119, 111, 114, 100, 115, 32, 49, 32, 52, 56, 10, 10, 0};
-		autoFileInMemory espeakdata_voices9 = FileInMemory_createWithData (52, reinterpret_cast<const char *> (&espeakdata_voices9_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ku", 
-			U"ku");
-		my addItem_move (espeakdata_voices9.move());
-
-		static unsigned char espeakdata_voices10_data[70] = {
-			110, 97, 109, 101, 32, 109, 97, 108, 97, 121, 97, 108, 97, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 109, 108, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111,
-			110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices10 = FileInMemory_createWithData (69, reinterpret_cast<const char *> (&espeakdata_voices10_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ml", 
-			U"ml");
-		my addItem_move (espeakdata_voices10.move());
-
-		static unsigned char espeakdata_voices11_data[458] = {
-			47, 47, 32, 76, 97, 115, 116, 32, 117, 112, 100, 97, 116, 101, 100, 58, 32, 49, 52, 32, 79, 99, 116, 111, 98, 101, 114, 32, 50, 48,
-			49, 48, 44, 32, 74, 97, 115, 111, 110, 32, 79, 110, 103, 32, 40, 106, 97, 115, 111, 110, 64, 112, 111, 114, 116, 97, 108, 103, 114, 111,
-			111, 118, 101, 46, 99, 111, 109, 41, 10, 110, 97, 109, 101, 32, 109, 97, 108, 97, 121, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 109,
-			115, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 105, 100, 10, 10, 116, 114, 97,
-			110, 115, 108, 97, 116, 111, 114, 32, 105, 100, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 54, 48, 32, 50,
-			48, 48, 32, 32, 49, 56, 48, 32, 49, 56, 48, 32, 32, 48, 32, 48, 32, 32, 50, 50, 48, 32, 50, 52, 48, 10, 115, 116, 114, 101,
-			115, 115, 65, 109, 112, 32, 32, 32, 32, 49, 54, 32, 32, 49, 56, 32, 32, 32, 49, 56, 32, 32, 49, 56, 32, 32, 32, 48, 32, 48,
-			32, 32, 50, 50, 32, 32, 50, 49, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 9, 51, 9, 47, 47, 32, 76, 101, 115, 115, 32,
-			105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 44, 32, 97, 110, 100, 32, 99, 111, 109, 109, 97, 32, 100, 111, 101, 115, 32, 110, 111, 116,
-			32, 114, 97, 105, 115, 101, 32, 116, 104, 101, 32, 112, 105, 116, 99, 104, 46, 10, 10, 47, 47, 32, 78, 117, 97, 110, 99, 101, 32, 45,
-			32, 80, 101, 110, 105, 110, 115, 117, 108, 97, 32, 77, 97, 108, 97, 121, 115, 105, 97, 10, 47, 47, 32, 114, 101, 112, 108, 97, 99, 101,
-			9, 51, 32, 97, 9, 64, 9, 47, 47, 32, 99, 104, 97, 110, 103, 101, 32, 39, 115, 97, 121, 97, 39, 32, 116, 111, 32, 39, 115, 97,
-			121, 101, 39, 10, 9, 9, 9, 9, 47, 47, 32, 40, 111, 110, 108, 121, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 112, 104, 111, 110,
-			101, 109, 101, 32, 111, 102, 32, 97, 32, 119, 111, 114, 100, 44, 32, 111, 110, 108, 121, 32, 105, 110, 32, 117, 110, 115, 116, 114, 101, 115,
-			115, 101, 100, 32, 115, 121, 108, 108, 97, 98, 108, 101, 115, 41, 10, 9, 9, 9, 9, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115,
-			32, 56, 48, 32, 56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices11 = FileInMemory_createWithData (457, reinterpret_cast<const char *> (&espeakdata_voices11_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ms", 
-			U"ms");
-		my addItem_move (espeakdata_voices11.move());
-
-		static unsigned char espeakdata_voices12_data[50] = {
-			110, 97, 109, 101, 32, 110, 101, 112, 97, 108, 105, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 110, 101, 10, 103, 101, 110, 100, 101, 114,
-			32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 0};
-		autoFileInMemory espeakdata_voices12 = FileInMemory_createWithData (49, reinterpret_cast<const char *> (&espeakdata_voices12_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ne", 
-			U"ne");
-		my addItem_move (espeakdata_voices12.move());
-
-		static unsigned char espeakdata_voices13_data[26] = {
-			110, 97, 109, 101, 32, 112, 117, 110, 106, 97, 98, 105, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 97, 10, 0};
-		autoFileInMemory espeakdata_voices13 = FileInMemory_createWithData (25, reinterpret_cast<const char *> (&espeakdata_voices13_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/pa", 
-			U"pa");
-		my addItem_move (espeakdata_voices13.move());
-
-		static unsigned char espeakdata_voices14_data[64] = {
-			110, 97, 109, 101, 32, 116, 97, 109, 105, 108, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 97, 10, 103, 101, 110, 100, 101, 114, 32,
-			109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32,
-			56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices14 = FileInMemory_createWithData (63, reinterpret_cast<const char *> (&espeakdata_voices14_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/ta", 
-			U"ta");
-		my addItem_move (espeakdata_voices14.move());
-
-		static unsigned char espeakdata_voices15_data[39] = {
-			110, 97, 109, 101, 32, 116, 117, 114, 107, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 114, 10, 103, 101, 110, 100, 101,
-			114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices15 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices15_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/tr", 
-			U"tr");
-		my addItem_move (espeakdata_voices15.move());
-
-		static unsigned char espeakdata_voices16_data[60] = {
-			110, 97, 109, 101, 32, 118, 105, 101, 116, 110, 97, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 105, 10, 103, 101, 110, 100, 101,
-			114, 32, 109, 97, 108, 101, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 0};
-		autoFileInMemory espeakdata_voices16 = FileInMemory_createWithData (59, reinterpret_cast<const char *> (&espeakdata_voices16_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/vi", 
-			U"vi");
-		my addItem_move (espeakdata_voices16.move());
-
-		static unsigned char espeakdata_voices17_data[203] = {
-			110, 97, 109, 101, 32, 118, 105, 101, 116, 110, 97, 109, 95, 104, 117, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 105, 45, 104,
-			117, 101, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 118, 105, 45, 104, 117, 101, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49,
-			10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 50,
-			32, 49, 49, 56, 32, 32, 32, 47, 47, 56, 48, 32, 49, 49, 56, 10, 47, 47, 98, 114, 101, 97, 116, 104, 32, 32, 32, 55, 53, 32,
-			55, 53, 32, 54, 48, 32, 52, 48, 32, 49, 53, 32, 49, 48, 10, 32, 47, 47, 98, 114, 101, 97, 116, 104, 119, 32, 32, 49, 53, 48,
-			32, 49, 53, 48, 32, 50, 48, 48, 32, 50, 48, 48, 32, 52, 48, 48, 32, 52, 48, 48, 10, 32, 118, 111, 105, 99, 105, 110, 103, 32,
-			57, 48, 32, 32, 47, 47, 49, 56, 10, 32, 102, 108, 117, 116, 116, 101, 114, 32, 32, 50, 48, 10, 0};
-		autoFileInMemory espeakdata_voices17 = FileInMemory_createWithData (202, reinterpret_cast<const char *> (&espeakdata_voices17_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/vi-hue", 
-			U"vi-hue");
-		my addItem_move (espeakdata_voices17.move());
-
-		static unsigned char espeakdata_voices18_data[203] = {
-			110, 97, 109, 101, 32, 118, 105, 101, 116, 110, 97, 109, 95, 115, 103, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 105, 45, 115,
-			103, 110, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 118, 105, 45, 115, 103, 110, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 50,
-			10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 50,
-			32, 49, 49, 56, 32, 32, 32, 47, 47, 56, 48, 32, 49, 49, 56, 10, 47, 47, 98, 114, 101, 97, 116, 104, 32, 32, 32, 55, 53, 32,
-			55, 53, 32, 54, 48, 32, 52, 48, 32, 49, 53, 32, 49, 48, 10, 32, 47, 47, 98, 114, 101, 97, 116, 104, 119, 32, 32, 49, 53, 48,
-			32, 49, 53, 48, 32, 50, 48, 48, 32, 50, 48, 48, 32, 52, 48, 48, 32, 52, 48, 48, 10, 32, 118, 111, 105, 99, 105, 110, 103, 32,
-			57, 48, 32, 32, 47, 47, 49, 56, 10, 32, 102, 108, 117, 116, 116, 101, 114, 32, 32, 50, 48, 10, 0};
-		autoFileInMemory espeakdata_voices18 = FileInMemory_createWithData (202, reinterpret_cast<const char *> (&espeakdata_voices18_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/vi-sgn", 
-			U"vi-sgn");
-		my addItem_move (espeakdata_voices18.move());
-
-		static unsigned char espeakdata_voices19_data[612] = {
-			110, 97, 109, 101, 32, 77, 97, 110, 100, 97, 114, 105, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 10, 103, 101, 110, 100,
-			101, 114, 32, 109, 97, 108, 101, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 10,
-			100, 105, 99, 116, 95, 109, 105, 110, 32, 49, 48, 48, 48, 48, 48, 10, 10, 47, 47, 102, 111, 114, 32, 115, 111, 109, 101, 32, 100, 105,
-			97, 108, 101, 99, 116, 115, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 110, 103, 32, 119, 105, 116,
-			104, 32, 110, 10, 47, 47, 91, 122, 104, 93, 58, 32, 239, 191, 189, 222, 186, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239,
-			191, 189, 239, 191, 189, 239, 191, 189, 110, 103, 239, 191, 189, 239, 191, 189, 239, 191, 189, 110, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101,
-			32, 48, 32, 78, 32, 110, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 114, 102, 120, 32, 99, 111,
-			110, 115, 111, 110, 97, 110, 116, 115, 10, 47, 47, 91, 122, 104, 93, 58, 32, 239, 191, 189, 222, 190, 239, 191, 189, 239, 191, 189, 239, 191,
-			189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 114, 239, 191, 189, 239, 191, 189, 239, 191, 189, 108, 239, 191, 189, 239, 191, 189,
-			122, 239, 191, 189, 239, 191, 189, 101, 114, 239, 191, 189, 239, 191, 189, 239, 191, 189, 101, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32,
-			48, 32, 116, 115, 46, 104, 32, 116, 115, 104, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 116, 115, 46, 32, 116, 115, 10,
-			47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 115, 46, 32, 115, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 105,
-			46, 32, 105, 91, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 122, 46, 32, 108, 10, 47, 47, 114, 101, 112, 108, 97, 99,
-			101, 32, 48, 32, 122, 46, 32, 122, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 64, 114, 32, 64, 10, 10, 47, 47, 91,
-			101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 98, 101, 103, 105, 110, 110, 105, 110, 103, 32, 110, 32, 111, 114, 32, 108, 10,
-			47, 47, 91, 122, 104, 93, 58, 32, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 110, 108, 239, 191, 189, 239, 191, 189, 110, 239,
-			191, 189, 239, 191, 189, 239, 191, 189, 108, 239, 191, 189, 239, 191, 189, 108, 239, 191, 189, 239, 191, 189, 239, 191, 189, 110, 10, 47, 47, 114,
-			101, 112, 108, 97, 99, 101, 32, 50, 32, 110, 32, 108, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 50, 32, 108, 32, 110, 10, 10,
-			47, 47, 91, 101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 98, 101, 103, 105, 110, 110, 105, 110, 103, 32, 119, 32, 119, 105,
-			116, 104, 32, 118, 10, 47, 47, 91, 122, 104, 93, 58, 32, 119, 239, 191, 189, 239, 191, 189, 239, 191, 189, 118, 10, 47, 47, 114, 101, 112,
-			108, 97, 99, 101, 32, 48, 32, 119, 32, 32, 118, 0};
-		autoFileInMemory espeakdata_voices19 = FileInMemory_createWithData (611, reinterpret_cast<const char *> (&espeakdata_voices19_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/zh", 
-			U"zh");
-		my addItem_move (espeakdata_voices19.move());
-
-		static unsigned char espeakdata_voices20_data[211] = {
-			110, 97, 109, 101, 32, 99, 97, 110, 116, 111, 110, 101, 115, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 45, 121, 117, 101,
-			10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 121, 117, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 121, 10, 10, 116, 114,
-			97, 110, 115, 108, 97, 116, 111, 114, 32, 122, 104, 121, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 122, 104, 121, 10, 100, 105, 99, 116,
-			105, 111, 110, 97, 114, 121, 32, 122, 104, 121, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 32, 105, 110, 116,
-			101, 114, 112, 114, 101, 116, 32, 69, 110, 103, 108, 105, 115, 104, 32, 108, 101, 116, 116, 101, 114, 115, 32, 97, 115, 32, 49, 61, 69, 110,
-			103, 108, 105, 115, 104, 32, 119, 111, 114, 100, 115, 44, 32, 50, 61, 106, 121, 117, 116, 112, 105, 110, 103, 10, 100, 105, 99, 116, 114, 117,
-			108, 101, 115, 32, 49, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 100, 105, 99, 116, 95, 109, 105, 110, 32, 49, 48, 48, 48, 48, 10,
-			0};
-		autoFileInMemory espeakdata_voices20 = FileInMemory_createWithData (210, reinterpret_cast<const char *> (&espeakdata_voices20_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/asia/zh-yue", 
-			U"zh-yue");
-		my addItem_move (espeakdata_voices20.move());
-
-		static unsigned char espeakdata_voices21_data[39] = {
-			110, 97, 109, 101, 32, 103, 101, 114, 109, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 101, 10, 103, 101, 110, 100, 101, 114,
-			32, 109, 97, 108, 101, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices21 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices21_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/de", 
-			U"de");
-		my addItem_move (espeakdata_voices21.move());
-
-		static unsigned char espeakdata_voices22_data[39] = {
-			110, 97, 109, 101, 32, 100, 101, 102, 97, 117, 108, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 10, 103, 101, 110, 100, 101,
-			114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices22 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices22_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/default", 
-			U"default");
-		my addItem_move (espeakdata_voices22.move());
-
-		static unsigned char espeakdata_voices23_data[111] = {
-			110, 97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 103, 98, 32, 32, 50,
-			10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 50, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110,
-			32, 50, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56,
-			10, 10, 116, 117, 110, 101, 115, 32, 115, 49, 32, 99, 49, 32, 113, 49, 32, 101, 49, 10, 0};
-		autoFileInMemory espeakdata_voices23 = FileInMemory_createWithData (110, reinterpret_cast<const char *> (&espeakdata_voices23_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/en", 
-			U"en");
-		my addItem_move (espeakdata_voices23.move());
-
-		static unsigned char espeakdata_voices24_data[265] = {
-			47, 47, 32, 109, 111, 118, 105, 110, 103, 32, 116, 111, 119, 97, 114, 100, 115, 32, 85, 83, 32, 69, 110, 103, 108, 105, 115, 104, 10, 110,
-			97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 45, 117, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 115, 32,
-			50, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 114, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 32, 51, 10,
-			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 101, 110, 45, 117, 115, 10, 100, 105,
-			99, 116, 114, 117, 108, 101, 115, 32, 51, 32, 54, 10, 111, 112, 116, 105, 111, 110, 32, 114, 101, 100, 117, 99, 101, 95, 116, 32, 49, 10,
-			10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 52, 48, 32, 49, 50, 48, 32, 49, 57, 48, 32, 49, 55, 48, 32,
-			48, 32, 48, 32, 50, 53, 53, 32, 51, 48, 48, 10, 115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 32, 49, 55, 32, 49, 54, 32, 32,
-			49, 57, 32, 49, 57, 32, 32, 49, 57, 32, 49, 57, 32, 32, 50, 49, 32, 49, 57, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48,
-			51, 32, 73, 32, 32, 105, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 50, 32, 105, 10, 10, 0};
-		autoFileInMemory espeakdata_voices24 = FileInMemory_createWithData (264, reinterpret_cast<const char *> (&espeakdata_voices24_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/en-us", 
-			U"en-us");
-		my addItem_move (espeakdata_voices24.move());
-
-		static unsigned char espeakdata_voices25_data[182] = {
-			110, 97, 109, 101, 32, 115, 112, 97, 110, 105, 115, 104, 45, 108, 97, 116, 105, 110, 45, 97, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101,
-			32, 101, 115, 45, 108, 97, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 115, 45, 109, 120, 32, 54, 10, 108, 97, 110, 103, 117, 97,
-			103, 101, 32, 101, 115, 32, 54, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32,
-			101, 115, 45, 108, 97, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 50, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50,
-			10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 55, 48, 32, 50, 48, 48, 32, 32, 50, 51, 48, 32, 49, 56, 48,
-			32, 32, 48, 32, 48, 32, 32, 50, 53, 48, 32, 50, 56, 48, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 84, 32, 115,
-			10, 0};
-		autoFileInMemory espeakdata_voices25 = FileInMemory_createWithData (181, reinterpret_cast<const char *> (&espeakdata_voices25_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/es-la", 
-			U"es-la");
-		my addItem_move (espeakdata_voices25.move());
-
-		static unsigned char espeakdata_voices26_data[40] = {
-			110, 97, 109, 101, 32, 97, 114, 97, 103, 111, 110, 101, 115, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 110, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 0};
-		autoFileInMemory espeakdata_voices26 = FileInMemory_createWithData (39, reinterpret_cast<const char *> (&espeakdata_voices26_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/an", 
-			U"an");
-		my addItem_move (espeakdata_voices26.move());
-
-		static unsigned char espeakdata_voices27_data[111] = {
-			110, 97, 109, 101, 32, 98, 117, 108, 103, 97, 114, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98, 103, 10, 10, 115, 116,
-			114, 101, 115, 115, 65, 109, 112, 32, 49, 51, 32, 49, 50, 32, 49, 55, 32, 49, 55, 32, 50, 48, 32, 50, 50, 32, 50, 50, 32, 50,
-			49, 32, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 56, 48, 32, 49, 55, 48, 32, 32, 50, 48, 48, 32, 50,
-			48, 48, 32, 32, 50, 48, 48, 32, 50, 48, 48, 32, 32, 50, 49, 48, 32, 50, 50, 48, 0};
-		autoFileInMemory espeakdata_voices27 = FileInMemory_createWithData (110, reinterpret_cast<const char *> (&espeakdata_voices27_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/bg", 
+		autoFilesInMemory me = FilesInMemory_create ();
+		static unsigned char espeakdata_voices1_data[68] = {
+			110, 97, 109, 101, 32, 97, 102, 114, 105, 107, 97, 97, 110, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 102, 10, 103, 101, 110,
+			100, 101, 114, 32, 109, 97, 108, 101, 10, 114, 111, 117, 103, 104, 110, 101, 115, 115, 32, 48, 10, 112, 105, 116, 99, 104, 32, 54, 51, 32,
+			49, 50, 48, 10, 10, 10, 10, 0};
+		autoFileInMemory espeakdata_voices1 = FileInMemory_createWithData (67, reinterpret_cast<const char *> (&espeakdata_voices1_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//af",
+			U"af");
+		Collection_addItem (me.peek(), espeakdata_voices1.transfer());
+
+		static unsigned char espeakdata_voices2_data[116] = {
+			110, 97, 109, 101, 32, 98, 117, 108, 103, 97, 114, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98,
+			103, 10, 10, 115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 49, 51, 32, 49, 50, 32, 49, 55, 32, 49, 55, 32, 50, 48, 32, 50, 50,
+			32, 50, 50, 32, 50, 49, 32, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 56, 48, 32, 49, 55, 48, 32, 32,
+			50, 48, 48, 32, 50, 48, 48, 32, 32, 50, 48, 48, 32, 50, 48, 48, 32, 32, 50, 49, 48, 32, 50, 50, 48, 0};
+		autoFileInMemory espeakdata_voices2 = FileInMemory_createWithData (115, reinterpret_cast<const char *> (&espeakdata_voices2_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//bg",
 			U"bg");
-		my addItem_move (espeakdata_voices27.move());
+		Collection_addItem (me.peek(), espeakdata_voices2.transfer());
 
-		static unsigned char espeakdata_voices28_data[258] = {
+		static unsigned char espeakdata_voices3_data[258] = {
 			110, 97, 109, 101, 32, 98, 111, 115, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98, 115, 10, 112, 104, 111, 110, 101,
 			109, 101, 115, 32, 104, 114, 10, 100, 105, 99, 116, 105, 111, 110, 97, 114, 121, 32, 104, 98, 115, 10, 103, 101, 110, 100, 101, 114, 32, 109,
 			97, 108, 101, 10, 10, 112, 105, 116, 99, 104, 32, 56, 49, 32, 49, 50, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 48, 32, 49, 48,
@@ -315,95 +37,140 @@ autoFileInMemorySet create_espeakdata_voices () {
 			49, 48, 50, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 53, 32, 32, 57, 55, 32, 49, 48, 50, 32, 49, 48, 48, 10,
 			10, 115, 116, 114, 101, 115, 115, 65, 100, 100, 32, 49, 48, 32, 49, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 45, 51, 48, 32, 45,
 			51, 48, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 51, 32, 52, 10, 0};
-		autoFileInMemory espeakdata_voices28 = FileInMemory_createWithData (257, reinterpret_cast<const char *> (&espeakdata_voices28_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/bs", 
+		autoFileInMemory espeakdata_voices3 = FileInMemory_createWithData (257, reinterpret_cast<const char *> (&espeakdata_voices3_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//bs", 
 			U"bs");
-		my addItem_move (espeakdata_voices28.move());
+		Collection_addItem (me.peek(), espeakdata_voices3.transfer());
 
-		static unsigned char espeakdata_voices29_data[39] = {
+		static unsigned char espeakdata_voices4_data[39] = {
 			110, 97, 109, 101, 32, 99, 97, 116, 97, 108, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 97, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices29 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices29_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/ca", 
+		autoFileInMemory espeakdata_voices4 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices4_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ca", 
 			U"ca");
-		my addItem_move (espeakdata_voices29.move());
+		Collection_addItem (me.peek(), espeakdata_voices4.transfer());
 
-		static unsigned char espeakdata_voices30_data[37] = {
+		static unsigned char espeakdata_voices5_data[37] = {
 			110, 97, 109, 101, 32, 99, 122, 101, 99, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 115, 10, 103, 101, 110, 100, 101, 114, 32,
 			109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices30 = FileInMemory_createWithData (36, reinterpret_cast<const char *> (&espeakdata_voices30_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/cs", 
+		autoFileInMemory espeakdata_voices5 = FileInMemory_createWithData (36, reinterpret_cast<const char *> (&espeakdata_voices5_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//cs", 
 			U"cs");
-		my addItem_move (espeakdata_voices30.move());
+		Collection_addItem (me.peek(), espeakdata_voices5.transfer());
 
-		static unsigned char espeakdata_voices31_data[50] = {
-			108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 121, 10, 110, 97, 109, 101, 32, 119, 101, 108, 115, 104, 10, 103, 101, 110, 100, 101, 114, 32,
-			109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 52, 10, 0};
-		autoFileInMemory espeakdata_voices31 = FileInMemory_createWithData (49, reinterpret_cast<const char *> (&espeakdata_voices31_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/cy", 
+		static unsigned char espeakdata_voices6_data[55] = {
+			108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 121, 10, 110, 97, 109, 101, 32, 119, 101, 108, 115, 104, 45, 116, 101, 115, 116, 10, 103, 101,
+			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 52, 10, 0};
+		autoFileInMemory espeakdata_voices6 = FileInMemory_createWithData (54, reinterpret_cast<const char *> (&espeakdata_voices6_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//cy", 
 			U"cy");
-		my addItem_move (espeakdata_voices31.move());
+		Collection_addItem (me.peek(), espeakdata_voices6.transfer());
 
-		static unsigned char espeakdata_voices32_data[58] = {
+		static unsigned char espeakdata_voices7_data[58] = {
 			110, 97, 109, 101, 32, 100, 97, 110, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 97, 10, 103, 101, 110, 100, 101, 114,
 			32, 109, 97, 108, 101, 10, 10, 116, 117, 110, 101, 115, 32, 115, 50, 32, 99, 50, 32, 113, 50, 32, 101, 50, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices32 = FileInMemory_createWithData (57, reinterpret_cast<const char *> (&espeakdata_voices32_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/da", 
+		autoFileInMemory espeakdata_voices7 = FileInMemory_createWithData (57, reinterpret_cast<const char *> (&espeakdata_voices7_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//da", 
 			U"da");
-		my addItem_move (espeakdata_voices32.move());
+		Collection_addItem (me.peek(), espeakdata_voices7.transfer());
 
-		static unsigned char espeakdata_voices33_data[38] = {
+		static unsigned char espeakdata_voices8_data[39] = {
+			110, 97, 109, 101, 32, 103, 101, 114, 109, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 101, 10, 103, 101, 110, 100, 101, 114,
+			32, 109, 97, 108, 101, 10, 10, 10, 0};
+		autoFileInMemory espeakdata_voices8 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices8_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//de", 
+			U"de");
+		Collection_addItem (me.peek(), espeakdata_voices8.transfer());
+
+		static unsigned char espeakdata_voices9_data[39] = {
+			110, 97, 109, 101, 32, 100, 101, 102, 97, 117, 108, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 10, 103, 101, 110, 100, 101,
+			114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices9 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices9_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//default", 
+			U"default");
+		Collection_addItem (me.peek(), espeakdata_voices9.transfer());
+
+		static unsigned char espeakdata_voices10_data[38] = {
 			110, 97, 109, 101, 32, 103, 114, 101, 101, 107, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 108, 10, 103, 101, 110, 100, 101, 114, 32,
 			109, 97, 108, 101, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices33 = FileInMemory_createWithData (37, reinterpret_cast<const char *> (&espeakdata_voices33_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/el", 
+		autoFileInMemory espeakdata_voices10 = FileInMemory_createWithData (37, reinterpret_cast<const char *> (&espeakdata_voices10_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//el", 
 			U"el");
-		my addItem_move (espeakdata_voices33.move());
+		Collection_addItem (me.peek(), espeakdata_voices10.transfer());
+
+		static unsigned char espeakdata_voices11_data[40] = {
+			110, 97, 109, 101, 32, 101, 115, 112, 101, 114, 97, 110, 116, 111, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 111, 10, 103, 101, 110,
+			100, 101, 114, 32, 109, 97, 108, 101, 10, 0};
+		autoFileInMemory espeakdata_voices11 = FileInMemory_createWithData (39, reinterpret_cast<const char *> (&espeakdata_voices11_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//eo", 
+			U"eo");
+		Collection_addItem (me.peek(), espeakdata_voices11.transfer());
 
-		static unsigned char espeakdata_voices34_data[67] = {
+		static unsigned char espeakdata_voices12_data[67] = {
 			110, 97, 109, 101, 32, 115, 112, 97, 110, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 115, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 47, 47, 105, 110, 116, 111, 110, 97, 116, 105,
 			111, 110, 32, 51, 10, 10, 0};
-		autoFileInMemory espeakdata_voices34 = FileInMemory_createWithData (66, reinterpret_cast<const char *> (&espeakdata_voices34_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/es", 
+		autoFileInMemory espeakdata_voices12 = FileInMemory_createWithData (66, reinterpret_cast<const char *> (&espeakdata_voices12_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//es", 
 			U"es");
-		my addItem_move (espeakdata_voices34.move());
+		Collection_addItem (me.peek(), espeakdata_voices12.transfer());
+
+		static unsigned char espeakdata_voices13_data[188] = {
+			110, 97, 109, 101, 32, 115, 112, 97, 110, 105, 115, 104, 45, 108, 97, 116, 105, 110, 45, 97, 109, 101, 114, 105, 99, 97, 110, 10, 108, 97,
+			110, 103, 117, 97, 103, 101, 32, 101, 115, 45, 108, 97, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 115, 45, 109, 120, 32, 54, 10,
+			108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 115, 32, 54, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111,
+			110, 101, 109, 101, 115, 32, 101, 115, 45, 108, 97, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 50, 10, 105, 110, 116, 111, 110, 97,
+			116, 105, 111, 110, 32, 50, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 55, 48, 32, 50, 48, 48, 32, 32, 50,
+			51, 48, 32, 49, 56, 48, 32, 32, 48, 32, 48, 32, 32, 50, 53, 48, 32, 50, 56, 48, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32,
+			48, 48, 32, 84, 32, 115, 10, 0};
+		autoFileInMemory espeakdata_voices13 = FileInMemory_createWithData (187, reinterpret_cast<const char *> (&espeakdata_voices13_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//es-la", 
+			U"es-la");
+		Collection_addItem (me.peek(), espeakdata_voices13.transfer());
 
-		static unsigned char espeakdata_voices35_data[28] = {
+		static unsigned char espeakdata_voices14_data[28] = {
 			110, 97, 109, 101, 32, 101, 115, 116, 111, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 116, 10, 10, 0};
-		autoFileInMemory espeakdata_voices35 = FileInMemory_createWithData (27, reinterpret_cast<const char *> (&espeakdata_voices35_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/et", 
+		autoFileInMemory espeakdata_voices14 = FileInMemory_createWithData (27, reinterpret_cast<const char *> (&espeakdata_voices14_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//et", 
 			U"et");
-		my addItem_move (espeakdata_voices35.move());
+		Collection_addItem (me.peek(), espeakdata_voices14.transfer());
 
-		static unsigned char espeakdata_voices36_data[39] = {
+		static unsigned char espeakdata_voices15_data[39] = {
 			110, 97, 109, 101, 32, 102, 105, 110, 110, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 105, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices36 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices36_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/fi", 
+		autoFileInMemory espeakdata_voices15 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices15_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//fi", 
 			U"fi");
-		my addItem_move (espeakdata_voices36.move());
-
-		static unsigned char espeakdata_voices37_data[95] = {
-			110, 97, 109, 101, 32, 102, 114, 101, 110, 99, 104, 45, 66, 101, 108, 103, 105, 117, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102,
-			114, 45, 98, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 114, 32, 56, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101,
-			10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 50, 10, 116, 117, 110, 101, 115, 32, 115, 51, 32, 99, 51, 32, 113, 51, 32, 101,
-			51, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices37 = FileInMemory_createWithData (94, reinterpret_cast<const char *> (&espeakdata_voices37_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/fr-be", 
+		Collection_addItem (me.peek(), espeakdata_voices15.transfer());
+
+		static unsigned char espeakdata_voices16_data[83] = {
+			110, 97, 109, 101, 32, 102, 114, 101, 110, 99, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 114, 45, 102, 114, 10, 108, 97, 110,
+			103, 117, 97, 103, 101, 32, 102, 114, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101,
+			115, 32, 49, 10, 116, 117, 110, 101, 115, 32, 115, 51, 32, 99, 51, 32, 113, 51, 32, 101, 51, 10, 0};
+		autoFileInMemory espeakdata_voices16 = FileInMemory_createWithData (82, reinterpret_cast<const char *> (&espeakdata_voices16_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//fr", 
+			U"fr");
+		Collection_addItem (me.peek(), espeakdata_voices16.transfer());
+
+		static unsigned char espeakdata_voices17_data[97] = {
+			110, 97, 109, 101, 32, 102, 114, 101, 110, 99, 104, 32, 40, 66, 101, 108, 103, 105, 117, 109, 41, 10, 108, 97, 110, 103, 117, 97, 103, 101,
+			32, 102, 114, 45, 98, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 114, 32, 56, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97,
+			108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 50, 10, 116, 117, 110, 101, 115, 32, 115, 51, 32, 99, 51, 32, 113, 51,
+			32, 101, 51, 10, 10, 10, 0};
+		autoFileInMemory espeakdata_voices17 = FileInMemory_createWithData (96, reinterpret_cast<const char *> (&espeakdata_voices17_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//fr-be", 
 			U"fr-be");
-		my addItem_move (espeakdata_voices37.move());
-
-		static unsigned char espeakdata_voices38_data[66] = {
-			110, 97, 109, 101, 32, 105, 114, 105, 115, 104, 45, 103, 97, 101, 105, 108, 103, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 103, 97,
-			10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 32, 32, 47, 47, 32, 102, 105, 120, 32, 102, 111, 114, 32, 101, 99, 108, 105,
-			112, 115, 105, 115, 10, 0};
-		autoFileInMemory espeakdata_voices38 = FileInMemory_createWithData (65, reinterpret_cast<const char *> (&espeakdata_voices38_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/ga", 
-			U"ga");
-		my addItem_move (espeakdata_voices38.move());
+		Collection_addItem (me.peek(), espeakdata_voices17.transfer());
 
-		static unsigned char espeakdata_voices39_data[291] = {
+		static unsigned char espeakdata_voices18_data[36] = {
+			110, 97, 109, 101, 32, 104, 105, 110, 100, 105, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 105, 10, 103, 101, 110, 100, 101, 114, 32,
+			109, 97, 108, 101, 10, 0};
+		autoFileInMemory espeakdata_voices18 = FileInMemory_createWithData (35, reinterpret_cast<const char *> (&espeakdata_voices18_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//hi", 
+			U"hi");
+		Collection_addItem (me.peek(), espeakdata_voices18.transfer());
+
+		static unsigned char espeakdata_voices19_data[291] = {
 			110, 97, 109, 101, 32, 99, 114, 111, 97, 116, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 114, 10, 108, 97, 110, 103,
 			117, 97, 103, 101, 32, 104, 98, 115, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 105, 111, 110, 97,
 			114, 121, 32, 104, 98, 115, 10, 10, 47, 47, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 115, 32, 116, 111, 119, 97, 114, 100, 115, 32,
@@ -414,132 +181,218 @@ autoFileInMemorySet create_espeakdata_voices () {
 			32, 32, 57, 55, 32, 49, 48, 50, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116, 32, 53, 32, 32, 57, 55, 32, 49, 48, 50,
 			32, 49, 48, 48, 10, 10, 115, 116, 114, 101, 115, 115, 65, 100, 100, 32, 49, 48, 32, 49, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32,
 			45, 51, 48, 32, 45, 51, 48, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 0};
-		autoFileInMemory espeakdata_voices39 = FileInMemory_createWithData (290, reinterpret_cast<const char *> (&espeakdata_voices39_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/hr", 
+		autoFileInMemory espeakdata_voices19 = FileInMemory_createWithData (290, reinterpret_cast<const char *> (&espeakdata_voices19_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//hr", 
 			U"hr");
-		my addItem_move (espeakdata_voices39.move());
+		Collection_addItem (me.peek(), espeakdata_voices19.transfer());
 
-		static unsigned char espeakdata_voices40_data[74] = {
+		static unsigned char espeakdata_voices20_data[74] = {
 			110, 97, 109, 101, 32, 104, 117, 110, 103, 97, 114, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 117, 10, 103, 101, 110,
 			100, 101, 114, 32, 109, 97, 108, 101, 10, 111, 112, 116, 105, 111, 110, 32, 98, 114, 97, 99, 107, 101, 116, 32, 48, 32, 48, 10, 112, 105,
 			116, 99, 104, 32, 56, 49, 32, 49, 49, 55, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices40 = FileInMemory_createWithData (73, reinterpret_cast<const char *> (&espeakdata_voices40_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/hu", 
+		autoFileInMemory espeakdata_voices20 = FileInMemory_createWithData (73, reinterpret_cast<const char *> (&espeakdata_voices20_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//hu", 
 			U"hu");
-		my addItem_move (espeakdata_voices40.move());
+		Collection_addItem (me.peek(), espeakdata_voices20.transfer());
 
-		static unsigned char espeakdata_voices41_data[41] = {
-			110, 97, 109, 101, 32, 105, 99, 101, 108, 97, 110, 100, 105, 99, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 115, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices41 = FileInMemory_createWithData (40, reinterpret_cast<const char *> (&espeakdata_voices41_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/is", 
+		static unsigned char espeakdata_voices21_data[39] = {
+			110, 97, 109, 101, 32, 97, 114, 109, 101, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121, 10, 103, 101, 110, 100,
+			101, 114, 32, 109, 97, 108, 101, 10, 0};
+		autoFileInMemory espeakdata_voices21 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices21_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//hy", 
+			U"hy");
+		Collection_addItem (me.peek(), espeakdata_voices21.transfer());
+
+		static unsigned char espeakdata_voices22_data[327] = {
+			110, 97, 109, 101, 32, 97, 114, 109, 101, 110, 105, 97, 110, 45, 119, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121,
+			45, 119, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 121, 32, 32, 56, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97,
+			108, 101, 10, 10, 47, 47, 32, 99, 104, 97, 110, 103, 101, 32, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 102, 111, 114, 32, 87,
+			101, 115, 116, 32, 65, 114, 109, 101, 110, 105, 97, 110, 32, 112, 114, 111, 110, 117, 110, 99, 105, 97, 116, 105, 111, 110, 10, 114, 101, 112,
+			108, 97, 99, 101, 32, 48, 48, 32, 98, 32, 32, 112, 35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 100, 32, 32, 116, 35,
+			10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 100, 122, 32, 116, 115, 35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32,
+			100, 90, 32, 116, 83, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 103, 32, 32, 107, 35, 10, 10, 114, 101, 112, 108, 97, 99,
+			101, 32, 48, 48, 32, 112, 32, 32, 98, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 116, 32, 32, 100, 10, 114, 101, 112, 108,
+			97, 99, 101, 32, 48, 48, 32, 116, 115, 32, 100, 122, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 99, 32, 32, 100, 90, 10,
+			114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 107, 32, 32, 103, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 42, 42,
+			32, 82, 32, 32, 47, 47, 32, 63, 63, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 114, 32, 32, 82, 10, 0};
+		autoFileInMemory espeakdata_voices22 = FileInMemory_createWithData (326, reinterpret_cast<const char *> (&espeakdata_voices22_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//hy-west", 
+			U"hy-west");
+		Collection_addItem (me.peek(), espeakdata_voices22.transfer());
+
+		static unsigned char espeakdata_voices23_data[152] = {
+			110, 97, 109, 101, 32, 105, 110, 100, 111, 110, 101, 115, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32,
+			105, 100, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49,
+			54, 48, 32, 50, 48, 48, 32, 32, 49, 56, 48, 32, 49, 56, 48, 32, 32, 48, 32, 48, 32, 32, 50, 50, 48, 32, 50, 52, 48, 10,
+			115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 32, 32, 32, 49, 54, 32, 32, 49, 56, 32, 32, 32, 49, 56, 32, 32, 49, 56, 32, 32,
+			32, 48, 32, 48, 32, 32, 50, 50, 32, 32, 50, 49, 10, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 32, 56, 48,
+			10, 0};
+		autoFileInMemory espeakdata_voices23 = FileInMemory_createWithData (151, reinterpret_cast<const char *> (&espeakdata_voices23_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//id", 
+			U"id");
+		Collection_addItem (me.peek(), espeakdata_voices23.transfer());
+
+		static unsigned char espeakdata_voices24_data[46] = {
+			110, 97, 109, 101, 32, 105, 99, 101, 108, 97, 110, 100, 105, 99, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105,
+			115, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices24 = FileInMemory_createWithData (45, reinterpret_cast<const char *> (&espeakdata_voices24_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//is", 
 			U"is");
-		my addItem_move (espeakdata_voices41.move());
-
-		static unsigned char espeakdata_voices42_data[75] = {
-			32, 10, 110, 97, 109, 101, 32, 105, 116, 97, 108, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 116, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 116, 117, 110, 101, 115, 32, 115, 52, 32, 99, 52, 32, 113, 52, 32, 101, 52, 10, 10, 114,
-			101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 105, 32, 73, 10, 0};
-		autoFileInMemory espeakdata_voices42 = FileInMemory_createWithData (74, reinterpret_cast<const char *> (&espeakdata_voices42_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/it", 
+		Collection_addItem (me.peek(), espeakdata_voices24.transfer());
+
+		static unsigned char espeakdata_voices25_data[55] = {
+			110, 97, 109, 101, 32, 105, 116, 97, 108, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 116, 10, 103, 101, 110, 100, 101,
+			114, 32, 109, 97, 108, 101, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 105, 32, 73, 10, 10, 0};
+		autoFileInMemory espeakdata_voices25 = FileInMemory_createWithData (54, reinterpret_cast<const char *> (&espeakdata_voices25_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//it", 
 			U"it");
-		my addItem_move (espeakdata_voices42.move());
+		Collection_addItem (me.peek(), espeakdata_voices25.transfer());
 
-		static unsigned char espeakdata_voices43_data[43] = {
-			10, 110, 97, 109, 101, 32, 108, 105, 116, 104, 117, 97, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 108, 116, 10, 103,
-			101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices43 = FileInMemory_createWithData (42, reinterpret_cast<const char *> (&espeakdata_voices43_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/lt", 
-			U"lt");
-		my addItem_move (espeakdata_voices43.move());
+		static unsigned char espeakdata_voices26_data[32] = {
+			110, 97, 109, 101, 32, 103, 101, 111, 114, 103, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 97,
+			10, 0};
+		autoFileInMemory espeakdata_voices26 = FileInMemory_createWithData (31, reinterpret_cast<const char *> (&espeakdata_voices26_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ka", 
+			U"ka");
+		Collection_addItem (me.peek(), espeakdata_voices26.transfer());
+
+		static unsigned char espeakdata_voices27_data[56] = {
+			110, 97, 109, 101, 32, 107, 97, 110, 110, 97, 100, 97, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 110, 10, 10, 105, 110, 116, 111,
+			110, 97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
+		autoFileInMemory espeakdata_voices27 = FileInMemory_createWithData (55, reinterpret_cast<const char *> (&espeakdata_voices27_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//kn", 
+			U"kn");
+		Collection_addItem (me.peek(), espeakdata_voices27.transfer());
+
+		static unsigned char espeakdata_voices28_data[53] = {
+			110, 97, 109, 101, 32, 107, 117, 114, 100, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 117, 10, 103, 101, 110, 100, 101,
+			114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 119, 111, 114, 100, 115, 32, 49, 32, 52, 56, 10, 10, 0};
+		autoFileInMemory espeakdata_voices28 = FileInMemory_createWithData (52, reinterpret_cast<const char *> (&espeakdata_voices28_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ku", 
+			U"ku");
+		Collection_addItem (me.peek(), espeakdata_voices28.transfer());
+
+		static unsigned char espeakdata_voices29_data[299] = {
+			110, 97, 109, 101, 32, 108, 97, 116, 105, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 108, 97, 10, 103, 101, 110, 100, 101, 114, 32,
+			109, 97, 108, 101, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 50, 32, 51, 51, 32, 48, 32, 50, 10, 47, 47, 32, 114, 117,
+			108, 101, 61, 112, 101, 110, 117, 108, 116, 105, 109, 97, 116, 101, 10, 47, 47, 32, 102, 108, 97, 103, 115, 61, 48, 49, 48, 48, 48, 48,
+			49, 32, 40, 110, 111, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 115, 101, 99, 111, 110, 100, 97, 114, 121, 32, 115, 116, 114, 101,
+			115, 115, 32, 43, 32, 100, 111, 110, 39, 116, 32, 115, 116, 114, 101, 115, 32, 109, 111, 110, 111, 115, 121, 108, 108, 97, 98, 108, 101, 115,
+			41, 10, 47, 47, 32, 117, 110, 115, 116, 114, 101, 115, 115, 101, 100, 95, 119, 100, 49, 61, 48, 10, 47, 47, 32, 117, 110, 115, 116, 114,
+			101, 115, 115, 101, 100, 95, 119, 100, 50, 61, 50, 10, 10, 47, 47, 32, 115, 104, 111, 114, 116, 32, 103, 97, 112, 32, 98, 101, 116, 119,
+			101, 101, 110, 32, 119, 111, 114, 100, 115, 10, 119, 111, 114, 100, 115, 32, 50, 10, 10, 47, 47, 32, 78, 111, 116, 101, 58, 32, 84, 104,
+			101, 32, 76, 97, 116, 105, 110, 32, 118, 111, 105, 99, 101, 32, 110, 101, 101, 100, 115, 32, 108, 111, 110, 103, 32, 118, 111, 119, 101, 108,
+			115, 32, 116, 111, 32, 98, 101, 32, 109, 97, 114, 107, 101, 100, 32, 119, 105, 116, 104, 32, 109, 97, 99, 114, 111, 110, 115, 10, 0};
+		autoFileInMemory espeakdata_voices29 = FileInMemory_createWithData (298, reinterpret_cast<const char *> (&espeakdata_voices29_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//la", 
+			U"la");
+		Collection_addItem (me.peek(), espeakdata_voices29.transfer());
 
-		static unsigned char espeakdata_voices44_data[58] = {
+		static unsigned char espeakdata_voices30_data[58] = {
 			110, 97, 109, 101, 32, 108, 97, 116, 118, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 108, 118, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 32, 111, 32, 32, 111, 58, 10, 10, 0};
-		autoFileInMemory espeakdata_voices44 = FileInMemory_createWithData (57, reinterpret_cast<const char *> (&espeakdata_voices44_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/lv", 
+		autoFileInMemory espeakdata_voices30 = FileInMemory_createWithData (57, reinterpret_cast<const char *> (&espeakdata_voices30_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//lv", 
 			U"lv");
-		my addItem_move (espeakdata_voices44.move());
+		Collection_addItem (me.peek(), espeakdata_voices30.transfer());
 
-		static unsigned char espeakdata_voices45_data[42] = {
-			110, 97, 109, 101, 32, 109, 97, 99, 101, 100, 111, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 109, 107, 10, 103, 101,
-			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices45 = FileInMemory_createWithData (41, reinterpret_cast<const char *> (&espeakdata_voices45_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/mk", 
+		static unsigned char espeakdata_voices31_data[47] = {
+			110, 97, 109, 101, 32, 109, 97, 99, 101, 100, 111, 110, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32,
+			109, 107, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices31 = FileInMemory_createWithData (46, reinterpret_cast<const char *> (&espeakdata_voices31_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//mk", 
 			U"mk");
-		my addItem_move (espeakdata_voices45.move());
+		Collection_addItem (me.peek(), espeakdata_voices31.transfer());
 
-		static unsigned char espeakdata_voices46_data[36] = {
-			108, 97, 110, 103, 117, 97, 103, 101, 32, 110, 108, 10, 110, 97, 109, 101, 32, 100, 117, 116, 99, 104, 10, 103, 101, 110, 100, 101, 114, 32,
-			109, 97, 108, 101, 10, 0};
-		autoFileInMemory espeakdata_voices46 = FileInMemory_createWithData (35, reinterpret_cast<const char *> (&espeakdata_voices46_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/nl", 
+		static unsigned char espeakdata_voices32_data[70] = {
+			110, 97, 109, 101, 32, 109, 97, 108, 97, 121, 97, 108, 97, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 109, 108, 10, 103, 101, 110,
+			100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111,
+			110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
+		autoFileInMemory espeakdata_voices32 = FileInMemory_createWithData (69, reinterpret_cast<const char *> (&espeakdata_voices32_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ml", 
+			U"ml");
+		Collection_addItem (me.peek(), espeakdata_voices32.transfer());
+
+		static unsigned char espeakdata_voices33_data[41] = {
+			108, 97, 110, 103, 117, 97, 103, 101, 32, 110, 108, 10, 110, 97, 109, 101, 32, 100, 117, 116, 99, 104, 45, 116, 101, 115, 116, 10, 103, 101,
+			110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 0};
+		autoFileInMemory espeakdata_voices33 = FileInMemory_createWithData (40, reinterpret_cast<const char *> (&espeakdata_voices33_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//nl", 
 			U"nl");
-		my addItem_move (espeakdata_voices46.move());
+		Collection_addItem (me.peek(), espeakdata_voices33.transfer());
 
-		static unsigned char espeakdata_voices47_data[66] = {
+		static unsigned char espeakdata_voices34_data[66] = {
 			110, 97, 109, 101, 32, 110, 111, 114, 119, 101, 103, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 110, 111, 10, 108, 97, 110,
 			103, 117, 97, 103, 101, 32, 110, 98, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105,
 			111, 110, 32, 52, 10, 0};
-		autoFileInMemory espeakdata_voices47 = FileInMemory_createWithData (65, reinterpret_cast<const char *> (&espeakdata_voices47_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/no", 
+		autoFileInMemory espeakdata_voices34 = FileInMemory_createWithData (65, reinterpret_cast<const char *> (&espeakdata_voices34_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//no", 
 			U"no");
-		my addItem_move (espeakdata_voices47.move());
+		Collection_addItem (me.peek(), espeakdata_voices34.transfer());
 
-		static unsigned char espeakdata_voices48_data[51] = {
+		static unsigned char espeakdata_voices35_data[51] = {
 			110, 97, 109, 101, 32, 112, 111, 108, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 108, 10, 103, 101, 110, 100, 101, 114,
 			32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 0};
-		autoFileInMemory espeakdata_voices48 = FileInMemory_createWithData (50, reinterpret_cast<const char *> (&espeakdata_voices48_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/pl", 
+		autoFileInMemory espeakdata_voices35 = FileInMemory_createWithData (50, reinterpret_cast<const char *> (&espeakdata_voices35_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//pl", 
 			U"pl");
-		my addItem_move (espeakdata_voices48.move());
+		Collection_addItem (me.peek(), espeakdata_voices35.transfer());
 
-		static unsigned char espeakdata_voices49_data[97] = {
+		static unsigned char espeakdata_voices36_data[66] = {
+			110, 97, 109, 101, 32, 98, 114, 97, 122, 105, 108, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 116, 45, 98, 114, 10, 108, 97, 110,
+			103, 117, 97, 103, 101, 32, 112, 116, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101,
+			115, 32, 50, 10, 10, 0};
+		autoFileInMemory espeakdata_voices36 = FileInMemory_createWithData (65, reinterpret_cast<const char *> (&espeakdata_voices36_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//pt", 
+			U"pt");
+		Collection_addItem (me.peek(), espeakdata_voices36.transfer());
+
+		static unsigned char espeakdata_voices37_data[97] = {
 			110, 97, 109, 101, 32, 112, 111, 114, 116, 117, 103, 97, 108, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 116, 45, 112, 116, 10, 108,
 			97, 110, 103, 117, 97, 103, 101, 32, 112, 116, 32, 54, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 112, 104, 111, 110, 101,
 			109, 101, 115, 32, 112, 116, 45, 112, 116, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 105, 110, 116, 111, 110, 97, 116,
 			105, 111, 110, 32, 50, 10, 0};
-		autoFileInMemory espeakdata_voices49 = FileInMemory_createWithData (96, reinterpret_cast<const char *> (&espeakdata_voices49_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/pt-pt", 
+		autoFileInMemory espeakdata_voices37 = FileInMemory_createWithData (96, reinterpret_cast<const char *> (&espeakdata_voices37_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//pt-pt", 
 			U"pt-pt");
-		my addItem_move (espeakdata_voices49.move());
+		Collection_addItem (me.peek(), espeakdata_voices37.transfer());
 
-		static unsigned char espeakdata_voices50_data[41] = {
+		static unsigned char espeakdata_voices38_data[41] = {
 			110, 97, 109, 101, 32, 114, 111, 109, 97, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 114, 111, 10, 103, 101, 110, 100,
 			101, 114, 32, 109, 97, 108, 101, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices50 = FileInMemory_createWithData (40, reinterpret_cast<const char *> (&espeakdata_voices50_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/ro", 
+		autoFileInMemory espeakdata_voices38 = FileInMemory_createWithData (40, reinterpret_cast<const char *> (&espeakdata_voices38_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ro", 
 			U"ro");
-		my addItem_move (espeakdata_voices50.move());
-
-		static unsigned char espeakdata_voices51_data[72] = {
-			110, 97, 109, 101, 32, 114, 117, 115, 115, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 114, 117, 10, 103, 101, 110, 100, 101,
-			114, 32, 109, 97, 108, 101, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 97, 32, 97, 35, 10, 10, 100, 105, 99, 116, 95,
-			109, 105, 110, 32, 32, 50, 48, 48, 48, 48, 10, 0};
-		autoFileInMemory espeakdata_voices51 = FileInMemory_createWithData (71, reinterpret_cast<const char *> (&espeakdata_voices51_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/ru", 
+		Collection_addItem (me.peek(), espeakdata_voices38.transfer());
+
+		static unsigned char espeakdata_voices39_data[61] = {
+			110, 97, 109, 101, 32, 114, 117, 115, 115, 105, 97, 110, 95, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 114, 117, 10,
+			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 97, 32, 97, 35, 10, 10,
+			0};
+		autoFileInMemory espeakdata_voices39 = FileInMemory_createWithData (60, reinterpret_cast<const char *> (&espeakdata_voices39_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ru", 
 			U"ru");
-		my addItem_move (espeakdata_voices51.move());
+		Collection_addItem (me.peek(), espeakdata_voices39.transfer());
 
-		static unsigned char espeakdata_voices52_data[38] = {
+		static unsigned char espeakdata_voices40_data[38] = {
 			110, 97, 109, 101, 32, 115, 108, 111, 118, 97, 107, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 107, 10, 103, 101, 110, 100, 101, 114,
 			32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices52 = FileInMemory_createWithData (37, reinterpret_cast<const char *> (&espeakdata_voices52_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/sk", 
+		autoFileInMemory espeakdata_voices40 = FileInMemory_createWithData (37, reinterpret_cast<const char *> (&espeakdata_voices40_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//sk", 
 			U"sk");
-		my addItem_move (espeakdata_voices52.move());
+		Collection_addItem (me.peek(), espeakdata_voices40.transfer());
 
-		static unsigned char espeakdata_voices53_data[116] = {
+		static unsigned char espeakdata_voices41_data[116] = {
 			110, 97, 109, 101, 32, 97, 108, 98, 97, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 113, 10, 103, 101, 110, 100,
 			101, 114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 32, 97, 100, 100, 32, 116, 104, 105, 115, 32, 108, 105, 110, 101, 32, 116, 111, 32, 114,
 			101, 109, 111, 118, 101, 32, 39, 195, 171, 39, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 119, 111, 114, 100, 115,
 			10, 47, 47, 32, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 32, 64, 47, 32, 32, 78, 85, 76, 76, 10, 0};
-		autoFileInMemory espeakdata_voices53 = FileInMemory_createWithData (115, reinterpret_cast<const char *> (&espeakdata_voices53_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/sq", 
+		autoFileInMemory espeakdata_voices41 = FileInMemory_createWithData (115, reinterpret_cast<const char *> (&espeakdata_voices41_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//sq", 
 			U"sq");
-		my addItem_move (espeakdata_voices53.move());
+		Collection_addItem (me.peek(), espeakdata_voices41.transfer());
 
-		static unsigned char espeakdata_voices54_data[278] = {
+		static unsigned char espeakdata_voices42_data[278] = {
 			110, 97, 109, 101, 32, 115, 101, 114, 98, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 114, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 100, 105, 99, 116, 105, 111, 110, 97, 114, 121, 32, 104, 98, 115, 10, 10, 47, 47, 32, 97, 116, 116, 114,
 			105, 98, 117, 116, 101, 115, 32, 116, 111, 119, 97, 114, 100, 115, 32, 33, 118, 97, 114, 105, 97, 110, 116, 51, 32, 112, 105, 116, 99, 104,
@@ -550,51 +403,117 @@ autoFileInMemorySet create_espeakdata_voices () {
 			114, 109, 97, 110, 116, 32, 53, 32, 32, 57, 55, 32, 49, 48, 50, 32, 49, 48, 48, 10, 10, 115, 116, 114, 101, 115, 115, 65, 100, 100,
 			32, 49, 48, 32, 49, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 45, 51, 48, 32, 45, 51, 48, 10, 100, 105, 99, 116, 114, 117, 108,
 			101, 115, 32, 50, 32, 52, 10, 0};
-		autoFileInMemory espeakdata_voices54 = FileInMemory_createWithData (277, reinterpret_cast<const char *> (&espeakdata_voices54_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/sr", 
+		autoFileInMemory espeakdata_voices42 = FileInMemory_createWithData (277, reinterpret_cast<const char *> (&espeakdata_voices42_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//sr", 
 			U"sr");
-		my addItem_move (espeakdata_voices54.move());
+		Collection_addItem (me.peek(), espeakdata_voices42.transfer());
 
-		static unsigned char espeakdata_voices55_data[39] = {
+		static unsigned char espeakdata_voices43_data[39] = {
 			110, 97, 109, 101, 32, 115, 119, 101, 100, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 118, 10, 103, 101, 110, 100, 101,
 			114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices55 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices55_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/europe/sv", 
+		autoFileInMemory espeakdata_voices43 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices43_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//sv", 
 			U"sv");
-		my addItem_move (espeakdata_voices55.move());
+		Collection_addItem (me.peek(), espeakdata_voices43.transfer());
 
-		static unsigned char espeakdata_voices56_data[83] = {
-			110, 97, 109, 101, 32, 102, 114, 101, 110, 99, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 102, 114, 45, 102, 114, 10, 108, 97, 110,
-			103, 117, 97, 103, 101, 32, 102, 114, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101,
-			115, 32, 49, 10, 116, 117, 110, 101, 115, 32, 115, 51, 32, 99, 51, 32, 113, 51, 32, 101, 51, 10, 0};
-		autoFileInMemory espeakdata_voices56 = FileInMemory_createWithData (82, reinterpret_cast<const char *> (&espeakdata_voices56_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/fr", 
-			U"fr");
-		my addItem_move (espeakdata_voices56.move());
+		static unsigned char espeakdata_voices44_data[44] = {
+			110, 97, 109, 101, 32, 115, 119, 97, 104, 105, 108, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 119, 10,
+			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices44 = FileInMemory_createWithData (43, reinterpret_cast<const char *> (&espeakdata_voices44_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//sw", 
+			U"sw");
+		Collection_addItem (me.peek(), espeakdata_voices44.transfer());
 
-		static unsigned char espeakdata_voices57_data[68] = {
-			110, 97, 109, 101, 32, 97, 102, 114, 105, 107, 97, 97, 110, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 102, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 114, 111, 117, 103, 104, 110, 101, 115, 115, 32, 48, 10, 112, 105, 116, 99, 104, 32, 54, 51, 32,
-			49, 50, 48, 10, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices57 = FileInMemory_createWithData (67, reinterpret_cast<const char *> (&espeakdata_voices57_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/af", 
-			U"af");
-		my addItem_move (espeakdata_voices57.move());
-
-		static unsigned char espeakdata_voices58_data[202] = {
-			110, 97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 45, 110, 111, 114, 116, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110,
-			45, 117, 107, 45, 110, 111, 114, 116, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 51, 10, 108, 97,
-			110, 103, 117, 97, 103, 101, 32, 101, 110, 32, 53, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101,
-			109, 101, 115, 32, 101, 110, 45, 110, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 54, 48, 32, 49, 53, 48,
-			32, 32, 49, 56, 48, 32, 49, 56, 48, 32, 32, 50, 50, 48, 32, 50, 50, 48, 32, 32, 50, 57, 48, 32, 50, 57, 48, 10, 10, 114,
-			101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 105, 64, 51, 32, 105, 64, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 78, 32,
-			110, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 105, 32, 32, 73, 50, 10, 10, 10, 0};
-		autoFileInMemory espeakdata_voices58 = FileInMemory_createWithData (201, reinterpret_cast<const char *> (&espeakdata_voices58_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/en-n", 
+		static unsigned char espeakdata_voices45_data[64] = {
+			110, 97, 109, 101, 32, 116, 97, 109, 105, 108, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 97, 10, 103, 101, 110, 100, 101, 114, 32,
+			109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32,
+			56, 48, 10, 0};
+		autoFileInMemory espeakdata_voices45 = FileInMemory_createWithData (63, reinterpret_cast<const char *> (&espeakdata_voices45_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//ta", 
+			U"ta");
+		Collection_addItem (me.peek(), espeakdata_voices45.transfer());
+
+		static unsigned char espeakdata_voices46_data[39] = {
+			110, 97, 109, 101, 32, 116, 117, 114, 107, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 114, 10, 103, 101, 110, 100, 101,
+			114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices46 = FileInMemory_createWithData (38, reinterpret_cast<const char *> (&espeakdata_voices46_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//tr", 
+			U"tr");
+		Collection_addItem (me.peek(), espeakdata_voices46.transfer());
+
+		static unsigned char espeakdata_voices47_data[60] = {
+			110, 97, 109, 101, 32, 118, 105, 101, 116, 110, 97, 109, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 118, 105, 10, 103, 101, 110, 100, 101,
+			114, 32, 109, 97, 108, 101, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 0};
+		autoFileInMemory espeakdata_voices47 = FileInMemory_createWithData (59, reinterpret_cast<const char *> (&espeakdata_voices47_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//vi", 
+			U"vi");
+		Collection_addItem (me.peek(), espeakdata_voices47.transfer());
+
+		static unsigned char espeakdata_voices48_data[595] = {
+			110, 97, 109, 101, 32, 77, 97, 110, 100, 97, 114, 105, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 10, 103, 101, 110, 100,
+			101, 114, 32, 109, 97, 108, 101, 10, 119, 111, 114, 100, 115, 32, 49, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 10,
+			47, 47, 102, 111, 114, 32, 115, 111, 109, 101, 32, 100, 105, 97, 108, 101, 99, 116, 115, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114,
+			101, 112, 108, 97, 99, 101, 32, 110, 103, 32, 119, 105, 116, 104, 32, 110, 10, 47, 47, 91, 122, 104, 93, 58, 32, 239, 191, 189, 222, 186,
+			239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 110, 103, 239, 191, 189, 239, 191, 189, 239,
+			191, 189, 110, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 78, 32, 110, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114,
+			101, 112, 108, 97, 99, 101, 32, 114, 102, 120, 32, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 10, 47, 47, 91, 122, 104, 93, 58, 32,
+			239, 191, 189, 222, 190, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 114, 239, 191, 189,
+			239, 191, 189, 239, 191, 189, 108, 239, 191, 189, 239, 191, 189, 122, 239, 191, 189, 239, 191, 189, 101, 114, 239, 191, 189, 239, 191, 189, 239, 191,
+			189, 101, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 116, 115, 46, 104, 32, 116, 115, 104, 10, 47, 47, 114, 101, 112, 108,
+			97, 99, 101, 32, 48, 32, 116, 115, 46, 32, 116, 115, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 115, 46, 32, 115, 10,
+			47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 105, 46, 32, 105, 91, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32,
+			122, 46, 32, 108, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 122, 46, 32, 122, 10, 47, 47, 114, 101, 112, 108, 97, 99,
+			101, 32, 48, 32, 64, 114, 32, 64, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 98, 101, 103, 105,
+			110, 110, 105, 110, 103, 32, 110, 32, 111, 114, 32, 108, 10, 47, 47, 91, 122, 104, 93, 58, 32, 239, 191, 189, 239, 191, 189, 239, 191, 189,
+			239, 191, 189, 110, 108, 239, 191, 189, 239, 191, 189, 110, 239, 191, 189, 239, 191, 189, 239, 191, 189, 108, 239, 191, 189, 239, 191, 189, 108, 239,
+			191, 189, 239, 191, 189, 239, 191, 189, 110, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 50, 32, 110, 32, 108, 10, 47, 47, 114, 101,
+			112, 108, 97, 99, 101, 32, 50, 32, 108, 32, 110, 10, 10, 47, 47, 91, 101, 110, 93, 58, 32, 114, 101, 112, 108, 97, 99, 101, 32, 98,
+			101, 103, 105, 110, 110, 105, 110, 103, 32, 119, 32, 119, 105, 116, 104, 32, 118, 10, 47, 47, 91, 122, 104, 93, 58, 32, 119, 239, 191, 189,
+			239, 191, 189, 239, 191, 189, 118, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 32, 119, 32, 32, 118, 0};
+		autoFileInMemory espeakdata_voices48 = FileInMemory_createWithData (594, reinterpret_cast<const char *> (&espeakdata_voices48_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//zh", 
+			U"zh");
+		Collection_addItem (me.peek(), espeakdata_voices48.transfer());
+
+		static unsigned char espeakdata_voices49_data[196] = {
+			110, 97, 109, 101, 32, 99, 97, 110, 116, 111, 110, 101, 115, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 45, 121, 117, 101,
+			10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 121, 117, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 122, 104, 121, 10, 10, 116, 114,
+			97, 110, 115, 108, 97, 116, 111, 114, 32, 122, 104, 121, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 122, 104, 121, 10, 100, 105, 99, 116,
+			105, 111, 110, 97, 114, 121, 32, 122, 104, 121, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 47, 47, 32, 105, 110, 116,
+			101, 114, 112, 114, 101, 116, 32, 69, 110, 103, 108, 105, 115, 104, 32, 108, 101, 116, 116, 101, 114, 115, 32, 97, 115, 32, 49, 61, 69, 110,
+			103, 108, 105, 115, 104, 32, 119, 111, 114, 100, 115, 44, 32, 50, 61, 106, 121, 117, 116, 112, 105, 110, 103, 10, 100, 105, 99, 116, 114, 117,
+			108, 101, 115, 32, 49, 10, 10, 119, 111, 114, 100, 115, 32, 49, 10, 0};
+		autoFileInMemory espeakdata_voices49 = FileInMemory_createWithData (195, reinterpret_cast<const char *> (&espeakdata_voices49_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices//zh-yue", 
+			U"zh-yue");
+		Collection_addItem (me.peek(), espeakdata_voices49.transfer());
+
+		static unsigned char espeakdata_voices50_data[143] = {
+			110, 97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 50,
+			10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 103, 98, 32, 32, 50, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110,
+			32, 50, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 32, 105,
+			10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 50, 32, 105, 10, 10, 47, 47, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49,
+			49, 56, 10, 10, 116, 117, 110, 101, 115, 32, 115, 49, 32, 99, 49, 32, 113, 49, 32, 101, 49, 10, 0};
+		autoFileInMemory espeakdata_voices50 = FileInMemory_createWithData (142, reinterpret_cast<const char *> (&espeakdata_voices50_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en", 
+			U"en");
+		Collection_addItem (me.peek(), espeakdata_voices50.transfer());
+
+		static unsigned char espeakdata_voices51_data[217] = {
+			110, 97, 109, 101, 32, 108, 97, 110, 99, 97, 115, 104, 105, 114, 101, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107,
+			45, 110, 111, 114, 116, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 51, 10, 108, 97, 110, 103, 117,
+			97, 103, 101, 32, 101, 110, 32, 53, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115,
+			32, 101, 110, 45, 110, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 54, 48, 32, 49, 53, 48, 32, 32, 49,
+			56, 48, 32, 49, 56, 48, 32, 32, 50, 50, 48, 32, 50, 50, 48, 32, 32, 50, 57, 48, 32, 50, 57, 48, 10, 10, 114, 101, 112, 108,
+			97, 99, 101, 32, 48, 48, 32, 105, 64, 51, 32, 105, 64, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 78, 32, 110, 10, 47,
+			47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 32, 32, 105, 10, 47, 47, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32,
+			73, 50, 32, 105, 10, 10, 0};
+		autoFileInMemory espeakdata_voices51 = FileInMemory_createWithData (216, reinterpret_cast<const char *> (&espeakdata_voices51_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-n", 
 			U"en-n");
-		my addItem_move (espeakdata_voices58.move());
+		Collection_addItem (me.peek(), espeakdata_voices51.transfer());
 
-		static unsigned char espeakdata_voices59_data[195] = {
+		static unsigned char espeakdata_voices52_data[195] = {
 			110, 97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 95, 114, 112, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107,
 			45, 114, 112, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 52, 10, 108, 97, 110, 103, 117, 97, 103, 101,
 			32, 101, 110, 32, 53, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 101, 110,
@@ -602,12 +521,12 @@ autoFileInMemorySet create_espeakdata_voices () {
 			32, 48, 48, 32, 105, 64, 51, 32, 105, 64, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 32, 105, 10, 114, 101, 112, 108,
 			97, 99, 101, 32, 48, 51, 32, 73, 50, 32, 105, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 64, 32, 97, 35, 10, 114, 101,
 			112, 108, 97, 99, 101, 32, 48, 51, 32, 51, 32, 97, 35, 10, 0};
-		autoFileInMemory espeakdata_voices59 = FileInMemory_createWithData (194, reinterpret_cast<const char *> (&espeakdata_voices59_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/en-rp", 
+		autoFileInMemory espeakdata_voices52 = FileInMemory_createWithData (194, reinterpret_cast<const char *> (&espeakdata_voices52_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-rp", 
 			U"en-rp");
-		my addItem_move (espeakdata_voices59.move());
+		Collection_addItem (me.peek(), espeakdata_voices52.transfer());
 
-		static unsigned char espeakdata_voices60_data[247] = {
+		static unsigned char espeakdata_voices53_data[247] = {
 			110, 97, 109, 101, 32, 101, 110, 45, 115, 99, 111, 116, 116, 105, 115, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 115,
 			99, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 32, 52, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112,
 			104, 111, 110, 101, 109, 101, 115, 32, 101, 110, 45, 115, 99, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 53, 32, 54, 32, 55, 10,
@@ -617,12 +536,28 @@ autoFileInMemorySet create_espeakdata_voices () {
 			101, 112, 108, 97, 99, 101, 32, 48, 49, 32, 97, 73, 32, 97, 73, 50, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 50, 32, 97, 32,
 			97, 47, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 50, 32, 117, 58, 32, 85, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 50, 32,
 			51, 58, 32, 86, 82, 10, 0};
-		autoFileInMemory espeakdata_voices60 = FileInMemory_createWithData (246, reinterpret_cast<const char *> (&espeakdata_voices60_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/en-sc", 
+		autoFileInMemory espeakdata_voices53 = FileInMemory_createWithData (246, reinterpret_cast<const char *> (&espeakdata_voices53_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-sc", 
 			U"en-sc");
-		my addItem_move (espeakdata_voices60.move());
+		Collection_addItem (me.peek(), espeakdata_voices53.transfer());
+
+		static unsigned char espeakdata_voices54_data[281] = {
+			47, 47, 32, 109, 111, 118, 105, 110, 103, 32, 116, 111, 119, 97, 114, 100, 115, 32, 85, 83, 32, 69, 110, 103, 108, 105, 115, 104, 10, 110,
+			97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 45, 117, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 115, 32,
+			50, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 114, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 32, 51, 10,
+			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 101, 110, 45, 117, 115, 10, 100, 105,
+			99, 116, 114, 117, 108, 101, 115, 32, 51, 32, 54, 10, 111, 112, 116, 105, 111, 110, 32, 114, 101, 100, 117, 99, 101, 95, 116, 32, 49, 10,
+			10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 52, 53, 32, 49, 50, 53, 32, 49, 57, 48, 32, 49, 55, 48, 32,
+			48, 32, 48, 32, 50, 54, 48, 32, 51, 48, 48, 10, 115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 32, 49, 55, 32, 49, 54, 32, 32,
+			49, 57, 32, 49, 57, 32, 32, 49, 57, 32, 49, 57, 32, 32, 50, 49, 32, 49, 57, 10, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48,
+			51, 32, 73, 32, 32, 105, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 73, 50, 32, 105, 10, 114, 101, 112, 108, 97, 99, 101,
+			32, 48, 51, 32, 64, 32, 32, 64, 47, 10, 0};
+		autoFileInMemory espeakdata_voices54 = FileInMemory_createWithData (280, reinterpret_cast<const char *> (&espeakdata_voices54_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-us", 
+			U"en-us");
+		Collection_addItem (me.peek(), espeakdata_voices54.transfer());
 
-		static unsigned char espeakdata_voices61_data[317] = {
+		static unsigned char espeakdata_voices55_data[317] = {
 			110, 97, 109, 101, 32, 101, 110, 45, 119, 101, 115, 116, 105, 110, 100, 105, 101, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110,
 			45, 119, 105, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 32, 52, 10, 108, 97, 110, 103, 117, 97, 103, 101,
 			32, 101, 110, 32, 49, 48, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 101,
@@ -634,12 +569,12 @@ autoFileInMemorySet create_espeakdata_voices () {
 			112, 108, 97, 99, 101, 32, 48, 51, 32, 51, 32, 97, 35, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 51, 32, 78, 32, 110, 10, 10,
 			102, 111, 114, 109, 97, 110, 116, 32, 49, 32, 32, 57, 56, 32, 32, 49, 48, 48, 32, 49, 48, 48, 10, 102, 111, 114, 109, 97, 110, 116,
 			32, 50, 32, 32, 57, 56, 32, 32, 49, 48, 48, 32, 49, 48, 48, 10, 0};
-		autoFileInMemory espeakdata_voices61 = FileInMemory_createWithData (316, reinterpret_cast<const char *> (&espeakdata_voices61_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/en-wi", 
+		autoFileInMemory espeakdata_voices55 = FileInMemory_createWithData (316, reinterpret_cast<const char *> (&espeakdata_voices55_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-wi", 
 			U"en-wi");
-		my addItem_move (espeakdata_voices61.move());
+		Collection_addItem (me.peek(), espeakdata_voices55.transfer());
 
-		static unsigned char espeakdata_voices62_data[206] = {
+		static unsigned char espeakdata_voices56_data[206] = {
 			110, 97, 109, 101, 32, 101, 110, 103, 108, 105, 115, 104, 95, 119, 109, 105, 100, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110,
 			45, 117, 107, 45, 119, 109, 105, 100, 115, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 110, 45, 117, 107, 32, 57, 10, 108, 97, 110,
 			103, 117, 97, 103, 101, 32, 101, 110, 32, 57, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 112, 104, 111, 110, 101, 109,
@@ -647,216 +582,247 @@ autoFileInMemorySet create_espeakdata_voices () {
 			112, 108, 97, 99, 101, 32, 48, 48, 32, 111, 64, 32, 79, 64, 10, 114, 101, 112, 108, 97, 99, 101, 32, 48, 48, 32, 105, 64, 51, 32,
 			105, 64, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 54, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 52, 10, 115, 116,
 			114, 101, 115, 115, 65, 100, 100, 32, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 48, 32, 50, 48, 10, 0};
-		autoFileInMemory espeakdata_voices62 = FileInMemory_createWithData (205, reinterpret_cast<const char *> (&espeakdata_voices62_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/en-wm", 
+		autoFileInMemory espeakdata_voices56 = FileInMemory_createWithData (205, reinterpret_cast<const char *> (&espeakdata_voices56_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/en/en-wm", 
 			U"en-wm");
-		my addItem_move (espeakdata_voices62.move());
+		Collection_addItem (me.peek(), espeakdata_voices56.transfer());
 
-		static unsigned char espeakdata_voices63_data[54] = {
-			110, 97, 109, 101, 32, 101, 115, 112, 101, 114, 97, 110, 116, 111, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 111, 10, 103, 101, 110,
-			100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 32, 50, 10, 0};
-		autoFileInMemory espeakdata_voices63 = FileInMemory_createWithData (53, reinterpret_cast<const char *> (&espeakdata_voices63_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/eo", 
-			U"eo");
-		my addItem_move (espeakdata_voices63.move());
+		static unsigned char espeakdata_voices57_data[44] = {
+			110, 97, 109, 101, 32, 97, 107, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 107, 10, 116, 114, 97,
+			110, 115, 108, 97, 116, 111, 114, 32, 115, 119, 10, 32, 10, 0};
+		autoFileInMemory espeakdata_voices57 = FileInMemory_createWithData (43, reinterpret_cast<const char *> (&espeakdata_voices57_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ak", 
+			U"ak");
+		Collection_addItem (me.peek(), espeakdata_voices57.transfer());
+
+		static unsigned char espeakdata_voices58_data[32] = {
+			110, 97, 109, 101, 32, 97, 109, 104, 97, 114, 105, 99, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 109, 10,
+			10, 0};
+		autoFileInMemory espeakdata_voices58 = FileInMemory_createWithData (31, reinterpret_cast<const char *> (&espeakdata_voices58_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/am", 
+			U"am");
+		Collection_addItem (me.peek(), espeakdata_voices58.transfer());
+
+		static unsigned char espeakdata_voices59_data[36] = {
+			110, 97, 109, 101, 32, 97, 122, 101, 114, 98, 97, 105, 106, 97, 110, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101,
+			32, 97, 122, 10, 10, 0};
+		autoFileInMemory espeakdata_voices59 = FileInMemory_createWithData (35, reinterpret_cast<const char *> (&espeakdata_voices59_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/az", 
+			U"az");
+		Collection_addItem (me.peek(), espeakdata_voices59.transfer());
+
+		static unsigned char espeakdata_voices60_data[116] = {
+			110, 97, 109, 101, 32, 98, 117, 108, 103, 97, 114, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98,
+			103, 10, 10, 115, 116, 114, 101, 115, 115, 65, 109, 112, 32, 49, 51, 32, 49, 50, 32, 49, 55, 32, 49, 55, 32, 50, 48, 32, 50, 50,
+			32, 50, 50, 32, 50, 49, 32, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 56, 48, 32, 49, 55, 48, 32, 32,
+			50, 48, 48, 32, 50, 48, 48, 32, 32, 50, 48, 48, 32, 50, 48, 48, 32, 32, 50, 49, 48, 32, 50, 50, 48, 0};
+		autoFileInMemory espeakdata_voices60 = FileInMemory_createWithData (115, reinterpret_cast<const char *> (&espeakdata_voices60_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/bg", 
+			U"bg");
+		Collection_addItem (me.peek(), espeakdata_voices60.transfer());
 
-		static unsigned char espeakdata_voices64_data[111] = {
+		static unsigned char espeakdata_voices61_data[31] = {
+			110, 97, 109, 101, 32, 100, 105, 118, 101, 104, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 118, 10, 10,
+			0};
+		autoFileInMemory espeakdata_voices61 = FileInMemory_createWithData (30, reinterpret_cast<const char *> (&espeakdata_voices61_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/dv", 
+			U"dv");
+		Collection_addItem (me.peek(), espeakdata_voices61.transfer());
+
+		static unsigned char espeakdata_voices62_data[43] = {
+			110, 97, 109, 101, 32, 105, 114, 105, 115, 104, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 103, 97, 10, 115, 116,
+			114, 101, 115, 115, 114, 117, 108, 101, 32, 48, 10, 10, 0};
+		autoFileInMemory espeakdata_voices62 = FileInMemory_createWithData (42, reinterpret_cast<const char *> (&espeakdata_voices62_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ga", 
+			U"ga");
+		Collection_addItem (me.peek(), espeakdata_voices62.transfer());
+
+		static unsigned char espeakdata_voices63_data[111] = {
 			110, 97, 109, 101, 32, 103, 114, 101, 101, 107, 45, 97, 110, 99, 105, 101, 110, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 103, 114,
 			99, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 49, 55,
 			48, 32, 49, 55, 48, 32, 32, 49, 57, 48, 32, 49, 57, 48, 32, 32, 48, 32, 48, 32, 32, 50, 51, 48, 32, 50, 52, 48, 10, 100,
 			105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 119, 111, 114, 100, 115, 32, 51, 10, 10, 0};
-		autoFileInMemory espeakdata_voices64 = FileInMemory_createWithData (110, reinterpret_cast<const char *> (&espeakdata_voices64_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/grc", 
+		autoFileInMemory espeakdata_voices63 = FileInMemory_createWithData (110, reinterpret_cast<const char *> (&espeakdata_voices63_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/grc", 
 			U"grc");
-		my addItem_move (espeakdata_voices64.move());
+		Collection_addItem (me.peek(), espeakdata_voices63.transfer());
+
+		static unsigned char espeakdata_voices64_data[28] = {
+			110, 97, 109, 101, 32, 104, 97, 105, 116, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 104, 116, 10, 32, 10, 0};
+		autoFileInMemory espeakdata_voices64 = FileInMemory_createWithData (27, reinterpret_cast<const char *> (&espeakdata_voices64_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ht", 
+			U"ht");
+		Collection_addItem (me.peek(), espeakdata_voices64.transfer());
 
 		static unsigned char espeakdata_voices65_data[70] = {
 			110, 97, 109, 101, 32, 108, 111, 106, 98, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 106, 98, 111, 10, 10, 115, 112, 101, 101,
 			100, 32, 56, 48, 32, 32, 32, 47, 47, 32, 115, 112, 101, 101, 100, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 44, 32, 112, 101,
 			114, 99, 101, 110, 116, 97, 103, 101, 10, 0};
 		autoFileInMemory espeakdata_voices65 = FileInMemory_createWithData (69, reinterpret_cast<const char *> (&espeakdata_voices65_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/jbo", 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/jbo", 
 			U"jbo");
-		my addItem_move (espeakdata_voices65.move());
+		Collection_addItem (me.peek(), espeakdata_voices65.transfer());
 
-		static unsigned char espeakdata_voices66_data[299] = {
-			110, 97, 109, 101, 32, 108, 97, 116, 105, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 108, 97, 10, 103, 101, 110, 100, 101, 114, 32,
-			109, 97, 108, 101, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 50, 32, 51, 51, 32, 48, 32, 50, 10, 47, 47, 32, 114, 117,
-			108, 101, 61, 112, 101, 110, 117, 108, 116, 105, 109, 97, 116, 101, 10, 47, 47, 32, 102, 108, 97, 103, 115, 61, 48, 49, 48, 48, 48, 48,
-			49, 32, 40, 110, 111, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 115, 101, 99, 111, 110, 100, 97, 114, 121, 32, 115, 116, 114, 101,
-			115, 115, 32, 43, 32, 100, 111, 110, 39, 116, 32, 115, 116, 114, 101, 115, 32, 109, 111, 110, 111, 115, 121, 108, 108, 97, 98, 108, 101, 115,
-			41, 10, 47, 47, 32, 117, 110, 115, 116, 114, 101, 115, 115, 101, 100, 95, 119, 100, 49, 61, 48, 10, 47, 47, 32, 117, 110, 115, 116, 114,
-			101, 115, 115, 101, 100, 95, 119, 100, 50, 61, 50, 10, 10, 47, 47, 32, 115, 104, 111, 114, 116, 32, 103, 97, 112, 32, 98, 101, 116, 119,
-			101, 101, 110, 32, 119, 111, 114, 100, 115, 10, 119, 111, 114, 100, 115, 32, 50, 10, 10, 47, 47, 32, 78, 111, 116, 101, 58, 32, 84, 104,
-			101, 32, 76, 97, 116, 105, 110, 32, 118, 111, 105, 99, 101, 32, 110, 101, 101, 100, 115, 32, 108, 111, 110, 103, 32, 118, 111, 119, 101, 108,
-			115, 32, 116, 111, 32, 98, 101, 32, 109, 97, 114, 107, 101, 100, 32, 119, 105, 116, 104, 32, 109, 97, 99, 114, 111, 110, 115, 10, 0};
-		autoFileInMemory espeakdata_voices66 = FileInMemory_createWithData (298, reinterpret_cast<const char *> (&espeakdata_voices66_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/la", 
-			U"la");
-		my addItem_move (espeakdata_voices66.move());
-
-		static unsigned char espeakdata_voices67_data[91] = {
-			110, 97, 109, 101, 32, 108, 105, 110, 103, 117, 97, 95, 102, 114, 97, 110, 99, 97, 95, 110, 111, 118, 97, 13, 10, 108, 97, 110, 103, 117,
-			97, 103, 101, 32, 108, 102, 110, 13, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 13, 10, 13, 10, 112, 104, 111, 110, 101, 109,
-			101, 115, 32, 98, 97, 115, 101, 50, 13, 10, 108, 95, 117, 110, 112, 114, 111, 110, 111, 117, 110, 99, 97, 98, 108, 101, 32, 48, 13, 10,
-			0};
-		autoFileInMemory espeakdata_voices67 = FileInMemory_createWithData (90, reinterpret_cast<const char *> (&espeakdata_voices67_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/lfn", 
-			U"lfn");
-		my addItem_move (espeakdata_voices67.move());
+		static unsigned char espeakdata_voices66_data[27] = {
+			110, 97, 109, 101, 32, 107, 97, 122, 97, 107, 104, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 107, 10, 32, 10, 0};
+		autoFileInMemory espeakdata_voices66 = FileInMemory_createWithData (26, reinterpret_cast<const char *> (&espeakdata_voices66_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/kk", 
+			U"kk");
+		Collection_addItem (me.peek(), espeakdata_voices66.transfer());
 
-		static unsigned char espeakdata_voices68_data[44] = {
-			110, 97, 109, 101, 32, 115, 119, 97, 104, 105, 108, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 119, 10,
-			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
-		autoFileInMemory espeakdata_voices68 = FileInMemory_createWithData (43, reinterpret_cast<const char *> (&espeakdata_voices68_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/other/sw", 
-			U"sw");
-		my addItem_move (espeakdata_voices68.move());
-
-		static unsigned char espeakdata_voices69_data[107] = {
-			110, 97, 109, 101, 32, 98, 114, 97, 122, 105, 108, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 116, 45, 98, 114, 10, 108, 97, 110,
-			103, 117, 97, 103, 101, 32, 112, 116, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101,
-			115, 32, 50, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 50, 48, 48, 32, 49, 49, 53, 32, 50, 51, 48, 32, 50,
-			51, 48, 32, 48, 32, 48, 32, 50, 53, 48, 32, 50, 55, 48, 10, 10, 0};
-		autoFileInMemory espeakdata_voices69 = FileInMemory_createWithData (106, reinterpret_cast<const char *> (&espeakdata_voices69_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/pt", 
-			U"pt");
-		my addItem_move (espeakdata_voices69.move());
-
-		static unsigned char espeakdata_voices70_data[32] = {
-			110, 97, 109, 101, 32, 97, 109, 104, 97, 114, 105, 99, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 109, 10,
-			10, 0};
-		autoFileInMemory espeakdata_voices70 = FileInMemory_createWithData (31, reinterpret_cast<const char *> (&espeakdata_voices70_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/am", 
-			U"am");
-		my addItem_move (espeakdata_voices70.move());
+		static unsigned char espeakdata_voices67_data[75] = {
+			110, 97, 109, 101, 32, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 108, 10, 10,
+			115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 50, 32, 32, 47, 47, 32, 112, 101, 110, 117, 108, 116, 105, 109, 97, 116, 101, 32, 40,
+			102, 111, 114, 32, 116, 101, 115, 116, 105, 110, 103, 41, 10, 10, 0};
+		autoFileInMemory espeakdata_voices67 = FileInMemory_createWithData (74, reinterpret_cast<const char *> (&espeakdata_voices67_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/kl", 
+			U"kl");
+		Collection_addItem (me.peek(), espeakdata_voices67.transfer());
+
+		static unsigned char espeakdata_voices68_data[83] = {
+			110, 97, 109, 101, 32, 75, 111, 114, 101, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 111, 10, 103, 101, 110, 100, 101, 114,
+			32, 109, 97, 108, 101, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32,
+			50, 10, 10, 116, 117, 110, 101, 115, 32, 113, 49, 32, 113, 49, 32, 113, 49, 32, 113, 49, 10, 10, 0};
+		autoFileInMemory espeakdata_voices68 = FileInMemory_createWithData (82, reinterpret_cast<const char *> (&espeakdata_voices68_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ko", 
+			U"ko");
+		Collection_addItem (me.peek(), espeakdata_voices68.transfer());
 
-		static unsigned char espeakdata_voices71_data[34] = {
-			110, 97, 109, 101, 32, 97, 115, 115, 97, 109, 101, 115, 101, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 97, 115,
-			10, 10, 32, 0};
-		autoFileInMemory espeakdata_voices71 = FileInMemory_createWithData (33, reinterpret_cast<const char *> (&espeakdata_voices71_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/as", 
-			U"as");
-		my addItem_move (espeakdata_voices71.move());
+		static unsigned char espeakdata_voices69_data[43] = {
+			10, 110, 97, 109, 101, 32, 108, 105, 116, 104, 117, 97, 110, 105, 97, 110, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 108, 116, 10, 103,
+			101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 0};
+		autoFileInMemory espeakdata_voices69 = FileInMemory_createWithData (42, reinterpret_cast<const char *> (&espeakdata_voices69_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/lt", 
+			U"lt");
+		Collection_addItem (me.peek(), espeakdata_voices69.transfer());
+
+		static unsigned char espeakdata_voices70_data[33] = {
+			110, 97, 109, 101, 32, 109, 97, 108, 116, 101, 115, 101, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 109, 116, 10,
+			32, 10, 0};
+		autoFileInMemory espeakdata_voices70 = FileInMemory_createWithData (32, reinterpret_cast<const char *> (&espeakdata_voices70_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/mt", 
+			U"mt");
+		Collection_addItem (me.peek(), espeakdata_voices70.transfer());
+
+		static unsigned char espeakdata_voices71_data[127] = {
+			110, 97, 109, 101, 32, 110, 97, 104, 117, 97, 116, 108, 32, 45, 32, 99, 108, 97, 115, 115, 105, 99, 97, 108, 10, 108, 97, 110, 103, 117,
+			97, 103, 101, 32, 110, 99, 105, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111,
+			110, 32, 51, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 50, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32,
+			32, 49, 57, 48, 32, 32, 49, 57, 48, 32, 32, 50, 48, 48, 32, 32, 50, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, 50, 50, 48,
+			32, 32, 50, 52, 48, 10, 0};
+		autoFileInMemory espeakdata_voices71 = FileInMemory_createWithData (126, reinterpret_cast<const char *> (&espeakdata_voices71_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/nci", 
+			U"nci");
+		Collection_addItem (me.peek(), espeakdata_voices71.transfer());
 
-		static unsigned char espeakdata_voices72_data[36] = {
-			110, 97, 109, 101, 32, 97, 122, 101, 114, 98, 97, 105, 106, 97, 110, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101,
-			32, 97, 122, 10, 10, 0};
-		autoFileInMemory espeakdata_voices72 = FileInMemory_createWithData (35, reinterpret_cast<const char *> (&espeakdata_voices72_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/az", 
-			U"az");
-		my addItem_move (espeakdata_voices72.move());
+		static unsigned char espeakdata_voices72_data[55] = {
+			110, 97, 109, 101, 32, 110, 101, 112, 97, 108, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 110, 101, 10, 103,
+			101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 100, 105, 99, 116, 114, 117, 108, 101, 115, 32, 49, 10, 0};
+		autoFileInMemory espeakdata_voices72 = FileInMemory_createWithData (54, reinterpret_cast<const char *> (&espeakdata_voices72_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ne", 
+			U"ne");
+		Collection_addItem (me.peek(), espeakdata_voices72.transfer());
 
-		static unsigned char espeakdata_voices73_data[43] = {
-			110, 97, 109, 101, 32, 98, 101, 110, 103, 97, 108, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98, 110, 10,
-			103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 0};
-		autoFileInMemory espeakdata_voices73 = FileInMemory_createWithData (42, reinterpret_cast<const char *> (&espeakdata_voices73_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/bn", 
-			U"bn");
-		my addItem_move (espeakdata_voices73.move());
+		static unsigned char espeakdata_voices73_data[48] = {
+			110, 97, 109, 101, 32, 110, 111, 114, 116, 104, 101, 114, 110, 45, 115, 111, 116, 104, 111, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 110,
+			115, 111, 10, 116, 114, 97, 110, 115, 108, 97, 116, 111, 114, 32, 115, 119, 10, 0};
+		autoFileInMemory espeakdata_voices73 = FileInMemory_createWithData (47, reinterpret_cast<const char *> (&espeakdata_voices73_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/nso", 
+			U"nso");
+		Collection_addItem (me.peek(), espeakdata_voices73.transfer());
 
 		static unsigned char espeakdata_voices74_data[31] = {
-			110, 97, 109, 101, 32, 98, 97, 115, 113, 117, 101, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 101, 117, 10, 10,
+			110, 97, 109, 101, 32, 112, 117, 110, 106, 97, 98, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 97, 10,
 			0};
 		autoFileInMemory espeakdata_voices74 = FileInMemory_createWithData (30, reinterpret_cast<const char *> (&espeakdata_voices74_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/eu", 
-			U"eu");
-		my addItem_move (espeakdata_voices74.move());
-
-		static unsigned char espeakdata_voices75_data[41] = {
-			110, 97, 109, 101, 32, 115, 99, 111, 116, 116, 105, 115, 104, 45, 103, 97, 101, 108, 105, 99, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103,
-			117, 97, 103, 101, 32, 103, 100, 10, 32, 10, 0};
-		autoFileInMemory espeakdata_voices75 = FileInMemory_createWithData (40, reinterpret_cast<const char *> (&espeakdata_voices75_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/gd", 
-			U"gd");
-		my addItem_move (espeakdata_voices75.move());
-
-		static unsigned char espeakdata_voices76_data[33] = {
-			110, 97, 109, 101, 32, 103, 117, 106, 97, 114, 97, 116, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 103, 117,
-			10, 10, 0};
-		autoFileInMemory espeakdata_voices76 = FileInMemory_createWithData (32, reinterpret_cast<const char *> (&espeakdata_voices76_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/gu", 
-			U"gu");
-		my addItem_move (espeakdata_voices76.move());
-
-		static unsigned char espeakdata_voices77_data[31] = {
-			110, 97, 109, 101, 32, 103, 114, 101, 101, 110, 108, 97, 110, 100, 105, 99, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 108, 10, 10,
-			0};
-		autoFileInMemory espeakdata_voices77 = FileInMemory_createWithData (30, reinterpret_cast<const char *> (&espeakdata_voices77_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/kl", 
-			U"kl");
-		my addItem_move (espeakdata_voices77.move());
-
-		static unsigned char espeakdata_voices78_data[69] = {
-			110, 97, 109, 101, 32, 107, 111, 114, 101, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 107, 111, 10, 103,
-			101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 112, 105, 116, 99, 104, 32, 56, 48, 32, 49, 49, 56, 10, 105, 110, 116, 111, 110, 97,
-			116, 105, 111, 110, 32, 50, 10, 10, 0};
-		autoFileInMemory espeakdata_voices78 = FileInMemory_createWithData (68, reinterpret_cast<const char *> (&espeakdata_voices78_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/ko", 
-			U"ko");
-		my addItem_move (espeakdata_voices78.move());
-
-		static unsigned char espeakdata_voices79_data[125] = {
-			110, 97, 109, 101, 32, 110, 97, 104, 117, 97, 116, 108, 45, 99, 108, 97, 115, 115, 105, 99, 97, 108, 10, 108, 97, 110, 103, 117, 97, 103,
-			101, 32, 110, 99, 105, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32,
-			51, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 50, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 32, 49,
-			57, 48, 32, 32, 49, 57, 48, 32, 32, 50, 48, 48, 32, 32, 50, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, 50, 50, 48, 32, 32,
-			50, 52, 48, 10, 0};
-		autoFileInMemory espeakdata_voices79 = FileInMemory_createWithData (124, reinterpret_cast<const char *> (&espeakdata_voices79_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/nci", 
-			U"nci");
-		my addItem_move (espeakdata_voices79.move());
-
-		static unsigned char espeakdata_voices80_data[29] = {
-			110, 97, 109, 101, 32, 111, 114, 105, 121, 97, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 111, 114, 10, 0};
-		autoFileInMemory espeakdata_voices80 = FileInMemory_createWithData (28, reinterpret_cast<const char *> (&espeakdata_voices80_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/or", 
-			U"or");
-		my addItem_move (espeakdata_voices80.move());
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/pa", 
+			U"pa");
+		Collection_addItem (me.peek(), espeakdata_voices74.transfer());
 
-		static unsigned char espeakdata_voices81_data[52] = {
+		static unsigned char espeakdata_voices75_data[52] = {
 			110, 97, 109, 101, 32, 112, 97, 112, 105, 97, 109, 101, 110, 116, 111, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32,
 			112, 97, 112, 10, 10, 112, 104, 111, 110, 101, 109, 101, 115, 32, 98, 97, 115, 101, 50, 10, 10, 0};
-		autoFileInMemory espeakdata_voices81 = FileInMemory_createWithData (51, reinterpret_cast<const char *> (&espeakdata_voices81_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/pap", 
+		autoFileInMemory espeakdata_voices75 = FileInMemory_createWithData (51, reinterpret_cast<const char *> (&espeakdata_voices75_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/pap", 
 			U"pap");
-		my addItem_move (espeakdata_voices81.move());
-
-		static unsigned char espeakdata_voices82_data[45] = {
-			110, 97, 109, 101, 32, 115, 105, 110, 104, 97, 108, 97, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 105, 10,
-			10, 105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 0};
-		autoFileInMemory espeakdata_voices82 = FileInMemory_createWithData (44, reinterpret_cast<const char *> (&espeakdata_voices82_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/si", 
+		Collection_addItem (me.peek(), espeakdata_voices75.transfer());
+
+		static unsigned char espeakdata_voices76_data[58] = {
+			110, 97, 109, 101, 32, 100, 97, 114, 105, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 112, 114, 115, 10, 10, 116,
+			114, 97, 110, 115, 108, 97, 116, 111, 114, 32, 102, 97, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 49, 48, 10, 0};
+		autoFileInMemory espeakdata_voices76 = FileInMemory_createWithData (57, reinterpret_cast<const char *> (&espeakdata_voices76_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/prs", 
+			U"prs");
+		Collection_addItem (me.peek(), espeakdata_voices76.transfer());
+
+		static unsigned char espeakdata_voices77_data[49] = {
+			110, 97, 109, 101, 32, 107, 105, 110, 121, 97, 114, 119, 97, 110, 100, 97, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101,
+			32, 114, 119, 10, 103, 101, 110, 100, 101, 114, 32, 109, 97, 108, 101, 10, 32, 10, 0};
+		autoFileInMemory espeakdata_voices77 = FileInMemory_createWithData (48, reinterpret_cast<const char *> (&espeakdata_voices77_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/rw", 
+			U"rw");
+		Collection_addItem (me.peek(), espeakdata_voices77.transfer());
+
+		static unsigned char espeakdata_voices78_data[40] = {
+			110, 97, 109, 101, 32, 115, 105, 110, 104, 97, 108, 97, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115, 105, 10, 10, 105, 110, 116, 111,
+			110, 97, 116, 105, 111, 110, 32, 50, 10, 0};
+		autoFileInMemory espeakdata_voices78 = FileInMemory_createWithData (39, reinterpret_cast<const char *> (&espeakdata_voices78_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/si", 
 			U"si");
-		my addItem_move (espeakdata_voices82.move());
+		Collection_addItem (me.peek(), espeakdata_voices78.transfer());
 
-		static unsigned char espeakdata_voices83_data[34] = {
+		static unsigned char espeakdata_voices79_data[84] = {
 			110, 97, 109, 101, 32, 115, 108, 111, 118, 101, 110, 105, 97, 110, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 115,
-			108, 10, 32, 0};
-		autoFileInMemory espeakdata_voices83 = FileInMemory_createWithData (33, reinterpret_cast<const char *> (&espeakdata_voices83_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/sl", 
+			108, 10, 32, 10, 115, 116, 114, 101, 115, 115, 76, 101, 110, 103, 116, 104, 32, 32, 32, 49, 54, 48, 32, 49, 53, 48, 32, 32, 50, 52,
+			48, 32, 50, 52, 48, 32, 32, 50, 52, 48, 32, 50, 52, 48, 32, 32, 51, 48, 48, 32, 51, 50, 48, 0};
+		autoFileInMemory espeakdata_voices79 = FileInMemory_createWithData (83, reinterpret_cast<const char *> (&espeakdata_voices79_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/sl", 
 			U"sl");
-		my addItem_move (espeakdata_voices83.move());
+		Collection_addItem (me.peek(), espeakdata_voices79.transfer());
 
-		static unsigned char espeakdata_voices84_data[60] = {
-			110, 97, 109, 101, 32, 116, 101, 108, 117, 103, 117, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 101, 10, 10,
-			105, 110, 116, 111, 110, 97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
-		autoFileInMemory espeakdata_voices84 = FileInMemory_createWithData (59, reinterpret_cast<const char *> (&espeakdata_voices84_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/te", 
+		static unsigned char espeakdata_voices80_data[55] = {
+			110, 97, 109, 101, 32, 116, 101, 108, 117, 103, 117, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 101, 10, 10, 105, 110, 116, 111, 110,
+			97, 116, 105, 111, 110, 32, 50, 10, 47, 47, 99, 111, 110, 115, 111, 110, 97, 110, 116, 115, 32, 56, 48, 10, 0};
+		autoFileInMemory espeakdata_voices80 = FileInMemory_createWithData (54, reinterpret_cast<const char *> (&espeakdata_voices80_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/te", 
 			U"te");
-		my addItem_move (espeakdata_voices84.move());
-
-		static unsigned char espeakdata_voices85_data[43] = {
-			110, 97, 109, 101, 32, 117, 114, 100, 117, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 117, 114, 10, 10, 115, 116,
-			114, 101, 115, 115, 114, 117, 108, 101, 32, 54, 10, 10, 0};
-		autoFileInMemory espeakdata_voices85 = FileInMemory_createWithData (42, reinterpret_cast<const char *> (&espeakdata_voices85_data), 
-			U"espeak-1.48.04-source/espeak-data/voices/test/ur", 
+		Collection_addItem (me.peek(), espeakdata_voices80.transfer());
+
+		static unsigned char espeakdata_voices81_data[34] = {
+			110, 97, 109, 101, 32, 115, 101, 116, 115, 119, 97, 110, 97, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 110,
+			10, 32, 10, 0};
+		autoFileInMemory espeakdata_voices81 = FileInMemory_createWithData (33, reinterpret_cast<const char *> (&espeakdata_voices81_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/tn", 
+			U"tn");
+		Collection_addItem (me.peek(), espeakdata_voices81.transfer());
+
+		static unsigned char espeakdata_voices82_data[49] = {
+			110, 97, 109, 101, 32, 116, 97, 116, 97, 114, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 116, 116, 10, 10, 116,
+			117, 110, 101, 115, 32, 115, 51, 32, 99, 51, 32, 113, 51, 32, 101, 51, 10, 10, 0};
+		autoFileInMemory espeakdata_voices82 = FileInMemory_createWithData (48, reinterpret_cast<const char *> (&espeakdata_voices82_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/tt", 
+			U"tt");
+		Collection_addItem (me.peek(), espeakdata_voices82.transfer());
+
+		static unsigned char espeakdata_voices83_data[55] = {
+			110, 97, 109, 101, 32, 117, 114, 100, 117, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 117, 114, 10, 10, 112, 104,
+			111, 110, 101, 109, 101, 115, 32, 104, 105, 10, 115, 116, 114, 101, 115, 115, 114, 117, 108, 101, 32, 54, 10, 10, 0};
+		autoFileInMemory espeakdata_voices83 = FileInMemory_createWithData (54, reinterpret_cast<const char *> (&espeakdata_voices83_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/ur", 
 			U"ur");
-		my addItem_move (espeakdata_voices85.move());
+		Collection_addItem (me.peek(), espeakdata_voices83.transfer());
+
+		static unsigned char espeakdata_voices84_data[32] = {
+			110, 97, 109, 101, 32, 119, 111, 108, 111, 102, 45, 116, 101, 115, 116, 10, 108, 97, 110, 103, 117, 97, 103, 101, 32, 119, 111, 10, 10, 32,
+			10, 0};
+		autoFileInMemory espeakdata_voices84 = FileInMemory_createWithData (31, reinterpret_cast<const char *> (&espeakdata_voices84_data), 
+			U"/home/david/praat/src/espeak-work/espeak-1.46.27/espeak-data/voices/test/wo", 
+			U"wo");
+		Collection_addItem (me.peek(), espeakdata_voices84.transfer());
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
-		Melder_throw (U"FileInMemorySet not created.");
+		Melder_throw (U"FilesInMemory not created.");
 	}
 }
 
diff --git a/external/espeak/event.h b/external/espeak/event.h
old mode 100755
new mode 100644
diff --git a/external/espeak/fifo.h b/external/espeak/fifo.h
old mode 100755
new mode 100644
diff --git a/external/espeak/intonation.cpp b/external/espeak/intonation.cpp
old mode 100755
new mode 100644
index e4c68bc..891c390
--- a/external/espeak/intonation.cpp
+++ b/external/espeak/intonation.cpp
@@ -338,7 +338,7 @@ static void count_pitch_vowels(int start, int end, int clause_end)
 	number_body = 0;
 	number_tail = 0;   /* number between tonic syllable and next primary */
 	last_primary = -1;
-
+	
 	for(ix=start; ix<end; ix++)
 	{
 		stress = syllable_tab[ix].stress;   /* marked stress level */
@@ -527,7 +527,7 @@ int secondary=2;  // 2
 					n_steps = count_increments(syl_ix+1, head_final, 4);
 					pitch = tune->onset << 8;
 					used_onset = 1;
-				}
+				}	
 
 				if(n_steps > tune->head_max_steps)
 					n_steps = tune->head_max_steps;
@@ -697,7 +697,7 @@ static int calc_pitch_segment(int ix, int end_ix, TONE_HEAD *th, TONE_NUCLEUS *t
 			n_primary--;
 			if((tn->backwards) && (n_primary < 2))
 			{
-					pitch = tn->backwards[n_primary] << 8;
+					pitch = tn->backwards[n_primary] << 8;	
 			}
 		}
 
@@ -745,7 +745,7 @@ static void SetPitchGradient(int start_ix, int end_ix, int start_pitch, int end_
 
 	if(n_increments <= 0)
 		return;
-
+	
 	if(n_increments > 1)
 	{
 		increment = increment / n_increments;
@@ -802,7 +802,7 @@ static int calc_pitches2(int start, int end,  int tune_number)
 
 	if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE)
 	{
-		tone_posn = tone_posn2;  // put tone on the penultimate stressed word
+		tone_posn = tone_posn2;  // put tone on the penultimate stressed word 
 	}
 	ix = SetHeadIntonation(tune, ix, tone_posn, 0);
 
@@ -811,7 +811,7 @@ static int calc_pitches2(int start, int end,  int tune_number)
 
 	/* tonic syllable */
 	/******************/
-
+	
 //	if(tn->flags & T_EMPH)
 //	{
 //		syllable_tab[ix].flags |= SYL_EMPHASIS;
@@ -836,7 +836,7 @@ static int calc_pitches2(int start, int end,  int tune_number)
 
 	/* tail, after the tonic syllable */
 	/**********************************/
-
+	
 	SetPitchGradient(ix, end, tune->tail_start, tune->tail_end);
 
 	return(tone_pitch_env);
@@ -877,7 +877,7 @@ static int calc_pitches(int control, int start, int end,  int tune_number)
 
 	if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE)
 	{
-		tone_posn = tone_posn2;  // put tone on the penultimate stressed word
+		tone_posn = tone_posn2;  // put tone on the penultimate stressed word 
 	}
 	ix = calc_pitch_segment(ix,tone_posn, th, tn, PRIMARY, continuing);
 // ix = SetBodyIntonation(&tunes[0], ix, tone_posn, 0);
@@ -887,7 +887,7 @@ static int calc_pitches(int control, int start, int end,  int tune_number)
 
 	/* tonic syllable */
 	/******************/
-
+	
 	if(tn->flags & T_EMPH)
 	{
 		syllable_tab[ix].flags |= SYL_EMPHASIS;
@@ -912,7 +912,7 @@ static int calc_pitches(int control, int start, int end,  int tune_number)
 
 	/* tail, after the tonic syllable */
 	/**********************************/
-
+	
 	SetPitchGradient(ix, end, tn->tail_start, tn->tail_end);
 
 	return(tone_pitch_env);
@@ -1037,7 +1037,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
 					if(tph->mnemonic == 0x343132)   // [214]
 						prev_p->tone_ph = PhonemeCode2('3','5');
 					else
-						prev_p->tone_ph = PhonemeCode2('2','1');
+						prev_p->tone_ph = PhonemeCode2('2','1'); 
 				}
 				if((prev_tph->mnemonic == 0x3135)  && (tph->mnemonic == 0x3135))  //  [51] + [51]
 				{
@@ -1176,7 +1176,7 @@ void CalcPitches(Translator *tr, int clause_type)
 	}
 	else
 	{
-		group_tone = tr->punct_to_tone[option][clause_type];
+		group_tone = tr->punct_to_tone[option][clause_type]; 
 		group_tone_emph = tr->punct_to_tone[option][5];   // emphatic form of statement
 		group_tone_comma = tr->punct_to_tone[option][1];   // emphatic form of statement
 	}
@@ -1247,23 +1247,9 @@ void CalcPitches(Translator *tr, int clause_type)
 
 			count_pitch_vowels(st_start, ix, n_st);
 			if((ix < n_st) || (clause_type == 0))
-			{
-				calc_pitches(option, st_start, ix, group_tone);   // split into > 1 tone groups
-
-				if((clause_type==1) || (clause_type==2))
-					group_tone = tr->langopts.tunes[1];  // , or ?  remainder has comma-tone
-				else
-					group_tone = tr->langopts.tunes[0];  // . or !  remainder has statement tone
-			}
-			else
-				calc_pitches(option, st_start, ix, group_tone);
-
-#ifdef deleted
-			if((ix < n_st) || (clause_type == 0))
 				calc_pitches(option, st_start, ix, group_tone_emph);   // split into > 1 tone groups, use emphatic tone
 			else
 				calc_pitches(option, st_start, ix, group_tone);
-#endif
 
 			st_start = ix;
 		}
@@ -1283,14 +1269,14 @@ void CalcPitches(Translator *tr, int clause_type)
 		calc_pitches(option, st_start, st_ix, group_tone);
 	}
 
-
+	
 	// unpack pitch data
 	st_ix=0;
 	for(ix=ph_start; ix < ph_end; ix++)
 	{
 		p = &phoneme_list[ix];
 		p->stresslevel = syllable_tab[st_ix].stress;
-
+		
 		if(p->synthflags & SFLAG_SYLLABLE)
 		{
 			syl = &syllable_tab[st_ix];
@@ -1327,11 +1313,11 @@ if(p->tone_ph)
 			{
 				p->stresslevel |= 8;      // emphasized
 			}
-
+	
 			st_ix++;
 		}
 	}
 
 }  // end of CalcPitches
 
-
+ 
diff --git a/external/espeak/klatt.cpp b/external/espeak/klatt.cpp
old mode 100755
new mode 100644
index 9e7a818..961c661
--- a/external/espeak/klatt.cpp
+++ b/external/espeak/klatt.cpp
@@ -22,7 +22,7 @@
  *               <http://www.gnu.org/licenses/>.                           *
  ***************************************************************************/
 
-// See URL: ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/synthesis/klatt.3.04.tar.gz
+// See URL: ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/synthesis/klatt.3.04.tar.gz  
 
 #include "StdAfx.h"
 
@@ -58,69 +58,19 @@ static int sample_count;
 /* function prototypes for functions private to this file */
 
 static void flutter(klatt_frame_ptr);
-static double sampled_source (int);
+static double sampled_source (void);
 static double impulsive_source (void);
 static double natural_source (void);
-static void pitch_synch_par_reset (klatt_frame_ptr);
+static void pitch_synch_par_reset (klatt_frame_ptr); 
 static double gen_noise (double);
 static double DBtoLIN (long);
-static void frame_init (klatt_frame_ptr);
+static void frame_init (klatt_frame_ptr); 
 static void setabc (long,long,resonator_ptr);
 static void setzeroabc (long,long,resonator_ptr);
 
 static klatt_frame_t  kt_frame;
 static klatt_global_t kt_globals;
 
-#define NUMBER_OF_SAMPLES 100
-
-static int scale_wav_tab[] = {45,38,45,45,55};   // scale output from different voicing sources
-
-// For testing, this can be overwritten in KlattInit()
-	static short natural_samples2[256]= {
-  2583,  2516,  2450,  2384,  2319,  2254,  2191,  2127,
-  2067,  2005,  1946,  1890,  1832,  1779,  1726,  1675,
-  1626,  1579,  1533,  1491,  1449,  1409,  1372,  1336,
-  1302,  1271,  1239,  1211,  1184,  1158,  1134,  1111,
-  1089,  1069,  1049,  1031,  1013,   996,   980,   965,
-   950,   936,   921,   909,   895,   881,   869,   855,
-   843,   830,   818,   804,   792,   779,   766,   754,
-   740,   728,   715,   702,   689,   676,   663,   651,
-   637,   626,   612,   601,   588,   576,   564,   552,
-   540,   530,   517,   507,   496,   485,   475,   464,
-   454,   443,   434,   424,   414,   404,   394,   385,
-   375,   366,   355,   347,   336,   328,   317,   308,
-   299,   288,   280,   269,   260,   250,   240,   231,
-   220,   212,   200,   192,   181,   172,   161,   152,
-   142,   133,   123,   113,   105,    94,    86,    76,
-    67,    57,    49,    39,    30,    22,    11,     4,
-    -5,   -14,   -23,   -32,   -41,   -50,   -60,   -69,
-   -78,   -87,   -96,  -107,  -115,  -126,  -134,  -144,
-  -154,  -164,  -174,  -183,  -193,  -203,  -213,  -222,
-  -233,  -242,  -252,  -262,  -271,  -281,  -291,  -301,
-  -310,  -320,  -330,  -339,  -349,  -357,  -368,  -377,
-  -387,  -397,  -406,  -417,  -426,  -436,  -446,  -456,
-  -467,  -477,  -487,  -499,  -509,  -521,  -532,  -543,
-  -555,  -567,  -579,  -591,  -603,  -616,  -628,  -641,
-  -653,  -666,  -679,  -692,  -705,  -717,  -732,  -743,
-  -758,  -769,  -783,  -795,  -808,  -820,  -834,  -845,
-  -860,  -872,  -885,  -898,  -911,  -926,  -939,  -955,
-  -968,  -986,  -999, -1018, -1034, -1054, -1072, -1094,
- -1115, -1138, -1162, -1188, -1215, -1244, -1274, -1307,
- -1340, -1377, -1415, -1453, -1496, -1538, -1584, -1631,
- -1680, -1732, -1783, -1839, -1894, -1952, -2010, -2072,
- -2133, -2196, -2260, -2325, -2390, -2456, -2522, -2589,
-};
-	static short natural_samples[100]=
-	{
-		-310,-400,530,356,224,89,23,-10,-58,-16,461,599,536,701,770,
-		605,497,461,560,404,110,224,131,104,-97,155,278,-154,-1165,
-		-598,737,125,-592,41,11,-247,-10,65,92,80,-304,71,167,-1,122,
-		233,161,-43,278,479,485,407,266,650,134,80,236,68,260,269,179,
-		53,140,275,293,296,104,257,152,311,182,263,245,125,314,140,44,
-		203,230,-235,-286,23,107,92,-91,38,464,443,176,98,-784,-2449,
-		-1891,-1045,-1600,-1462,-1384,-1261,-949,-730
-	};
-
 /*
 function RESONATOR
 
@@ -131,7 +81,7 @@ is stored in the globals structure.
 static double resonator(resonator_ptr r, double input)
 {
 	double x;
-
+	
 	x = (double) ((double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2);
 	r->p2 = (double)r->p1;
 	r->p1 = (double)x;
@@ -142,11 +92,11 @@ static double resonator(resonator_ptr r, double input)
 static double resonator2(resonator_ptr r, double input)
 {
 	double x;
-
+	
 	x = (double) ((double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2);
 	r->p2 = (double)r->p1;
 	r->p1 = (double)x;
-
+	
 	r->a += r->a_inc;
 	r->b += r->b_inc;
 	r->c += r->c_inc;
@@ -155,13 +105,13 @@ static double resonator2(resonator_ptr r, double input)
 
 
 
-/*
+/* 
 function ANTIRESONATOR
 
-This is a generic anti-resonator function. The code is the same as resonator
-except that a,b,c need to be set with setzeroabc() and we save inputs in
+This is a generic anti-resonator function. The code is the same as resonator 
+except that a,b,c need to be set with setzeroabc() and we save inputs in 
 p1/p2 rather than outputs. There is currently only one of these - "rnz"
-Output = (rnz.a * input) + (rnz.b * oldin1) + (rnz.c * oldin2)
+Output = (rnz.a * input) + (rnz.b * oldin1) + (rnz.c * oldin2) 
 */
 
 #ifdef deleted
@@ -179,7 +129,7 @@ static double antiresonator2(resonator_ptr r, double input)
 	register double x = (double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2;
 	r->p2 = (double)r->p1;
 	r->p1 = (double)input;
-
+	
 	r->a += r->a_inc;
 	r->b += r->b_inc;
 	r->c += r->c_inc;
@@ -193,7 +143,7 @@ function FLUTTER
 
 This function adds F0 flutter, as specified in:
 
-"Analysis, synthesis and perception of voice quality variations among
+"Analysis, synthesis and perception of voice quality variations among 
 female and male talkers" D.H. Klatt and L.C. Klatt JASA 87(2) February 1990.
 
 Flutter is added by applying a quasi-random element constructed from three
@@ -205,7 +155,7 @@ static void flutter(klatt_frame_ptr frame)
 	static int time_count;
 	double delta_f0;
 	double fla,flb,flc,fld,fle;
-
+	
 	fla = (double) kt_globals.f0_flutter / 50;
 	flb = (double) kt_globals.original_f0 / 100;
 //	flc = sin(2*PI*12.7*time_count);
@@ -228,7 +178,7 @@ Allows the use of a glottal excitation waveform sampled from a real
 voice.
 */
 
-static double sampled_source(int source_num)
+static double sampled_source()
 {
 	int itemp;
 	double ftemp;
@@ -237,35 +187,23 @@ static double sampled_source(int source_num)
 	int current_value;
 	int next_value;
 	double temp_diff;
-	short *samples;
-
-	if(source_num == 0)
-	{
-		samples = natural_samples;
-		kt_globals.num_samples = 100;
-	}
-	else
-	{
-		samples = natural_samples2;
-		kt_globals.num_samples = 256;
-	}
-
+	
 	if(kt_globals.T0!=0)
 	{
 		ftemp = (double) kt_globals.nper;
 		ftemp = ftemp / kt_globals.T0;
 		ftemp = ftemp * kt_globals.num_samples;
 		itemp = (int) ftemp;
-
+	
 		temp_diff = ftemp - (double) itemp;
-
-		current_value = samples[itemp];
-		next_value = samples[itemp+1];
-
+	
+		current_value = kt_globals.natural_samples[itemp];
+		next_value = kt_globals.natural_samples[itemp+1];
+	
 		diff_value = (double) next_value - (double) current_value;
 		diff_value = diff_value * temp_diff;
-
-		result = samples[itemp] + diff_value;
+	
+		result = kt_globals.natural_samples[itemp] + diff_value;
 		result = result * kt_globals.sample_factor;
 	}
 	else
@@ -278,14 +216,14 @@ static double sampled_source(int source_num)
 
 
 
-/*
+/* 
 function PARWAVE
 
 Converts synthesis parameters to a waveform.
 */
 
 
-static int parwave(klatt_frame_ptr frame)
+static int parwave(klatt_frame_ptr frame) 
 {
 	double temp;
 	int value;
@@ -298,7 +236,7 @@ static int parwave(klatt_frame_ptr frame)
 	double casc_next_in;
 	double par_glotout;
 	static double noise;
-	static double voiceSample;
+	static double voice;
 	static double vlast;
 	static double glotlast;
 	static double sourc;
@@ -322,7 +260,7 @@ if(option_log_frames)
 
 	/* MAIN LOOP, for each output sample of current frame: */
 
-	for (kt_globals.ns=0; kt_globals.ns<kt_globals.nspfr; kt_globals.ns++)
+	for (kt_globals.ns=0; kt_globals.ns<kt_globals.nspfr; kt_globals.ns++) 
 	{
 		/* Get low-passed random number for aspiration and frication noise */
 		noise = gen_noise(noise);
@@ -331,90 +269,87 @@ if(option_log_frames)
 		Amplitude modulate noise (reduce noise amplitude during
 		second half of glottal period) if voicing simultaneously present.
 		*/
-
-		if (kt_globals.nper > kt_globals.nmod)
+	
+		if (kt_globals.nper > kt_globals.nmod) 
 		{
 			noise *= (double) 0.5;
 		}
-
+	
 		/* Compute frication noise */
 		frics = kt_globals.amp_frica * noise;
-
+	
 		/*
-			Compute voicing waveform. Run glottal source simulation at 4
-			times normal sample rate to minimize quantization noise in
+			Compute voicing waveform. Run glottal source simulation at 4 
+			times normal sample rate to minimize quantization noise in 
 			period of female voice.
 		*/
-
-		for (n4=0; n4<4; n4++)
+	
+		for (n4=0; n4<4; n4++) 
 		{
 			switch(kt_globals.glsource)
 			{
 			case IMPULSIVE:
-				voiceSample = impulsive_source();
+				voice = impulsive_source();
 				break;
 			case NATURAL:
-				voiceSample = natural_source();
+				voice = natural_source();	
 				break;
 			case SAMPLED:
-				voiceSample = sampled_source(0);
-				break;
-			case SAMPLED2:
-				voiceSample = sampled_source(1);
+				voice = sampled_source();
 				break;
 			}
-
+	
 			/* Reset period when counter 'nper' reaches T0 */
-			if (kt_globals.nper >= kt_globals.T0)
+			if (kt_globals.nper >= kt_globals.T0) 
 			{
 				kt_globals.nper = 0;
 				pitch_synch_par_reset(frame);
 			}
-
+	
 			/*
 			Low-pass filter voicing waveform before downsampling from 4*samrate
-			to samrate samples/sec.  Resonator f=.09*samrate, bw=.06*samrate
+			to samrate samples/sec.  Resonator f=.09*samrate, bw=.06*samrate 
 			*/
-
-			voiceSample = resonator(&(kt_globals.rsn[RLP]),voiceSample);
-
+	
+			voice = resonator(&(kt_globals.rsn[RLP]),voice);
+	
 			/* Increment counter that keeps track of 4*samrate samples per sec */
 			kt_globals.nper++;
 		}
-
+	
 		/*
 			Tilt spectrum of voicing source down by soft low-pass filtering, amount
 			of tilt determined by TLTdb
 		*/
-
-		voiceSample = (voiceSample * kt_globals.onemd) + (vlast * kt_globals.decay);
-		vlast = voiceSample;
-
-		/*
-			Add breathiness during glottal open phase. Amount of breathiness
-			determined by parameter Aturb Use nrand rather than noise because
-			noise is low-passed.
+	
+		voice = (voice * kt_globals.onemd) + (vlast * kt_globals.decay);
+		vlast = voice;
+	
+		/* 
+			Add breathiness during glottal open phase. Amount of breathiness 
+			determined by parameter Aturb Use nrand rather than noise because 
+			noise is low-passed. 
 		*/
-
-
-		if (kt_globals.nper < kt_globals.nopen)
+	
+	
+		if (kt_globals.nper < kt_globals.nopen) 
 		{
-			voiceSample += kt_globals.amp_breth * kt_globals.nrand;
+			voice += kt_globals.amp_breth * kt_globals.nrand;
 		}
-
+	
 		/* Set amplitude of voicing */
-		glotout = kt_globals.amp_voice * voiceSample;
-		par_glotout = kt_globals.par_amp_voice * voiceSample;
-
+		glotout = kt_globals.amp_voice * voice;
+		par_glotout = kt_globals.par_amp_voice * voice;
+	
 		/* Compute aspiration amplitude and add to voicing source */
 		aspiration = kt_globals.amp_aspir * noise;
 		glotout += aspiration;
-
+	
 		par_glotout += aspiration;
-
-		/*
+	
+		/*  
 			Cascade vocal tract, excited by laryngeal sources.
-			Nasal antiresonator, then formants FNP, F5, F4, F3, F2, F1
+			Nasal antiresonator, then formants FNP, F5, F4, F3, F2, F1 
 		*/
 
 		out=0;
@@ -431,20 +366,20 @@ if(option_log_frames)
 			casc_next_in = resonator2(&(kt_globals.rsn[R2c]),casc_next_in);
 			out = resonator2(&(kt_globals.rsn[R1c]),casc_next_in);
 		}
-
+	
 		/* Excite parallel F1 and FNP by voicing waveform */
 		sourc = par_glotout;        /* Source is voicing plus aspiration */
 
 		/*
-			Standard parallel vocal tract Formants F6,F5,F4,F3,F2,
-			outputs added with alternating sign. Sound source for other
-			parallel resonators is frication plus first difference of
-			voicing waveform.
+			Standard parallel vocal tract Formants F6,F5,F4,F3,F2, 
+			outputs added with alternating sign. Sound source for other 
+			parallel resonators is frication plus first difference of 
+			voicing waveform. 
 		*/
-
+	
 		out += resonator(&(kt_globals.rsn[R1p]),sourc);
 		out += resonator(&(kt_globals.rsn[Rnpp]),sourc);
-
+	
 		sourc = frics + par_glotout - glotlast;
 		glotlast = par_glotout;
 
@@ -452,24 +387,24 @@ if(option_log_frames)
 		{
 			out = resonator(&(kt_globals.rsn[ix]),sourc) - out;
 		}
-
+	
 		outbypas = kt_globals.amp_bypas * sourc;
-
+	
 		out = outbypas - out;
 
 #ifdef deleted
 // for testing
-		if (kt_globals.outsl != 0)
+		if (kt_globals.outsl != 0) 
 		{
 			switch(kt_globals.outsl)
 			{
 			case 1:
-				out = voiceSample;
+				out = voice;
 				break;
 			case 2:
 				out = aspiration;
 				break;
-			case 3:
+			case 3: 
 				out = frics;
 				break;
 			case 4:
@@ -497,7 +432,7 @@ if(option_log_frames)
 			int z2;
 			signed char c;
 			int sample;
-
+	
 			z2 = 0;
 			if(wdata.mix_wavefile_ix < wdata.n_mix_wavefile)
 			{
@@ -534,7 +469,7 @@ if(option_log_frames)
 		{
 			value = -32768;
 		}
-
+	
 		if (value > 32767)
 		{
 			value =  32767;
@@ -598,13 +533,13 @@ void KlattReset(int control)
 }
 
 
-/*
+/* 
 function FRAME_INIT
 
 Use parameters from the input frame to set up resonator coefficients.
 */
 
-static void frame_init(klatt_frame_ptr frame)
+static void frame_init(klatt_frame_ptr frame) 
 {
 	double amp_par[7];
 	static double amp_par_factor[7] = {0.6, 0.4, 0.15, 0.06, 0.04, 0.022, 0.03};
@@ -612,13 +547,13 @@ static void frame_init(klatt_frame_ptr frame)
 	int ix;
 
 	kt_globals.original_f0 = frame->F0hz10 / 10;
-
+	
 	frame->AVdb_tmp  = frame->AVdb - 7;
 	if (frame->AVdb_tmp < 0)
 	{
 		frame->AVdb_tmp = 0;
 	}
-
+	
 	kt_globals.amp_aspir = DBtoLIN(frame->ASP) * 0.05;
 	kt_globals.amp_frica = DBtoLIN(frame->AF) * 0.25;
 	kt_globals.par_amp_voice = DBtoLIN(frame->AVpdb);
@@ -631,12 +566,12 @@ static void frame_init(klatt_frame_ptr frame)
 	}
 
 	Gain0_tmp = frame->Gain0 - 3;
-	if (Gain0_tmp <= 0)
+	if (Gain0_tmp <= 0) 
 	{
 		Gain0_tmp = 57;
 	}
 	kt_globals.amp_gain0 = DBtoLIN(Gain0_tmp) / kt_globals.scale_wav;
-
+	
 	/* Set coefficients of variable cascade resonators */
 	for(ix=1; ix<=9; ix++)
 	{
@@ -646,7 +581,7 @@ static void frame_init(klatt_frame_ptr frame)
 		if(ix <= 5)
 		{
 			setabc(frame->Fhz_next[ix],frame->Bhz_next[ix],&(kt_globals.rsn_next[ix]));
-
+	
 			kt_globals.rsn[ix].a_inc = (kt_globals.rsn_next[ix].a - kt_globals.rsn[ix].a) / 64.0;
 			kt_globals.rsn[ix].b_inc = (kt_globals.rsn_next[ix].b - kt_globals.rsn[ix].b) / 64.0;
 			kt_globals.rsn[ix].c_inc = (kt_globals.rsn_next[ix].c - kt_globals.rsn[ix].c) / 64.0;
@@ -660,19 +595,19 @@ static void frame_init(klatt_frame_ptr frame)
 	kt_globals.rsn[F_NZ].b_inc = (kt_globals.rsn_next[F_NZ].b - kt_globals.rsn[F_NZ].b) / 64.0;
 	kt_globals.rsn[F_NZ].c_inc = (kt_globals.rsn_next[F_NZ].c - kt_globals.rsn[F_NZ].c) / 64.0;
 
-
+	
 	/* Set coefficients of parallel resonators, and amplitude of outputs */
-
+	
 	for(ix=0; ix<=6; ix++)
 	{
 		setabc(frame->Fhz[ix],frame->Bphz[ix],&(kt_globals.rsn[Rparallel+ix]));
 		kt_globals.rsn[Rparallel+ix].a *= amp_par[ix];
 	}
-
+	
 	/* output low-pass filter */
-
+	
 	setabc((long)0.0,(long)(kt_globals.samrate/2),&(kt_globals.rsn[Rout]));
-
+	
 }
 
 
@@ -680,28 +615,28 @@ static void frame_init(klatt_frame_ptr frame)
 /*
 function IMPULSIVE_SOURCE
 
-Generate a low pass filtered train of impulses as an approximation of
-a natural excitation waveform. Low-pass filter the differentiated impulse
-with a critically-damped second-order filter, time constant proportional
+Generate a low pass filtered train of impulses as an approximation of 
+a natural excitation waveform. Low-pass filter the differentiated impulse 
+with a critically-damped second-order filter, time constant proportional 
 to Kopen.
 */
 
 
-static double impulsive_source()
+static double impulsive_source() 
 {
 	static double doublet[] = {0.0,13000000.0,-13000000.0};
 	static double vwave;
-
-	if (kt_globals.nper < 3)
+	
+	if (kt_globals.nper < 3) 
 	{
 		vwave = doublet[kt_globals.nper];
 	}
-	else
+	else 
 	{
 		vwave = 0.0;
 	}
-
-	return (resonator(&(kt_globals.rsn[RGL]),vwave));
+	
+	return(resonator(&(kt_globals.rsn[RGL]),vwave));
 }
 
 
@@ -713,20 +648,20 @@ Vwave is the differentiated glottal flow waveform, there is a weak
 spectral zero around 800 Hz, magic constants a,b reset pitch synchronously.
 */
 
-static double natural_source()
+static double natural_source() 
 {
 	double lgtemp;
 	static double vwave;
-
-	if (kt_globals.nper < kt_globals.nopen)
+	
+	if (kt_globals.nper < kt_globals.nopen) 
 	{
 		kt_globals.pulse_shape_a -= kt_globals.pulse_shape_b;
 		vwave += kt_globals.pulse_shape_a;
 		lgtemp=vwave * 0.028;
-
+	
 		return(lgtemp);
 	}
-	else
+	else 
 	{
 		vwave = 0.0;
 		return(0.0);
@@ -760,125 +695,125 @@ Assume voicing waveform V(t) has form: k1 t**2 - k2 t**3
   potion of the voicing cycle "nopen".
 
   Let integral of dV/dt have no net dc flow --> a = (b * nopen) / 3
-
+ 
   Let maximum of dUg(n)/dn be constant --> b = gain / (nopen * nopen)
   meaning as nopen gets bigger, V has bigger peak proportional to n
 
   Thus, to generate the table below for 40 <= nopen <= 263:
-
+  
   B0[nopen - 40] = 1920000 / (nopen * nopen)
 */
 
-static void pitch_synch_par_reset(klatt_frame_ptr frame)
+static void pitch_synch_par_reset(klatt_frame_ptr frame) 
 {
 	long temp;
 	double temp1;
 	static long skew;
-	static short B0[224] =
+	static short B0[224] = 
 	{
 		1200,1142,1088,1038, 991, 948, 907, 869, 833, 799, 768, 738, 710, 683, 658,
 		634, 612, 590, 570, 551, 533, 515, 499, 483, 468, 454, 440, 427, 415, 403,
 		391, 380, 370, 360, 350, 341, 332, 323, 315, 307, 300, 292, 285, 278, 272,
 		265, 259, 253, 247, 242, 237, 231, 226, 221, 217, 212, 208, 204, 199, 195,
 		192, 188, 184, 180, 177, 174, 170, 167, 164, 161, 158, 155, 153, 150, 147,
-		145, 142, 140, 137, 135, 133, 131, 128, 126, 124, 122, 120, 119, 117, 115,
+		145, 142, 140, 137, 135, 133, 131, 128, 126, 124, 122, 120, 119, 117, 115, 
 		113,111, 110, 108, 106, 105, 103, 102, 100, 99, 97, 96, 95, 93, 92, 91, 90,
 		88, 87, 86, 85, 84, 83, 82, 80, 79, 78, 77, 76, 75, 75, 74, 73, 72, 71,
-		70, 69, 68, 68, 67, 66, 65, 64, 64, 63, 62, 61, 61, 60, 59, 59, 58, 57,
+		70, 69, 68, 68, 67, 66, 65, 64, 64, 63, 62, 61, 61, 60, 59, 59, 58, 57, 
 		57, 56, 56, 55, 55, 54, 54, 53, 53, 52, 52, 51, 51, 50, 50, 49, 49, 48, 48,
 		47, 47, 46, 46, 45, 45, 44, 44, 43, 43, 42, 42, 41, 41, 41, 41, 40, 40,
 		39, 39, 38, 38, 38, 38, 37, 37, 36, 36, 36, 36, 35, 35, 35, 35, 34, 34,33,
 		33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 29, 29, 29, 29,
 		28, 28, 28, 28, 27, 27
 	};
-
-	if (frame->F0hz10 > 0)
+	
+	if (frame->F0hz10 > 0) 
 	{
 		/* T0 is 4* the number of samples in one pitch period */
-
+	
 		kt_globals.T0 = (40 * kt_globals.samrate) / frame->F0hz10;
-
-
+	
+	
 		kt_globals.amp_voice = DBtoLIN(frame->AVdb_tmp);
-
+	
 		/* Duration of period before amplitude modulation */
-
+	
 		kt_globals.nmod = kt_globals.T0;
-		if (frame->AVdb_tmp > 0)
+		if (frame->AVdb_tmp > 0) 
 		{
 			kt_globals.nmod >>= 1;
 		}
-
+	
 		/* Breathiness of voicing waveform */
-
+	
 		kt_globals.amp_breth = DBtoLIN(frame->Aturb) * 0.1;
-
+	
 		/* Set open phase of glottal period where  40 <= open phase <= 263 */
-
+	
 		kt_globals.nopen = 4 * frame->Kopen;
-
+	
 		if ((kt_globals.glsource == IMPULSIVE) && (kt_globals.nopen > 263))
 		{
 			kt_globals.nopen = 263;
 		}
-
-		if (kt_globals.nopen >= (kt_globals.T0-1))
+	
+		if (kt_globals.nopen >= (kt_globals.T0-1)) 
 		{
 //	printf("Warning: glottal open period cannot exceed T0, truncated\n");
 			kt_globals.nopen = kt_globals.T0 - 2;
 		}
-
-		if (kt_globals.nopen < 40)
+	
+		if (kt_globals.nopen < 40) 
 		{
 			/* F0 max = 1000 Hz */
 //	printf("Warning: minimum glottal open period is 10 samples.\n");
 //	printf("truncated, nopen = %d\n",kt_globals.nopen);
 			kt_globals.nopen = 40;
 		}
-
-
+	
+	
 		/* Reset a & b, which determine shape of "natural" glottal waveform */
-
+	
 		kt_globals.pulse_shape_b = B0[kt_globals.nopen-40];
 		kt_globals.pulse_shape_a = (kt_globals.pulse_shape_b * kt_globals.nopen) * 0.333;
-
+	
 		/* Reset width of "impulsive" glottal pulse */
-
+	
 		temp = kt_globals.samrate / kt_globals.nopen;
-
+	
 		setabc((long)0,temp,&(kt_globals.rsn[RGL]));
-
+	
 		/* Make gain at F1 about constant */
-
+	
 		temp1 = kt_globals.nopen *.00833;
 		kt_globals.rsn[RGL].a *= temp1 * temp1;
-
+		
 		/*
 		Truncate skewness so as not to exceed duration of closed phase
 		of glottal period.
 		*/
-
-
+	
+	
 		temp = kt_globals.T0 - kt_globals.nopen;
-		if (frame->Kskew > temp)
+		if (frame->Kskew > temp) 
 		{
 //	printf("Kskew duration=%d > glottal closed period=%d, truncate\n", frame->Kskew, kt_globals.T0 - kt_globals.nopen);
 			frame->Kskew = temp;
 		}
-		if (skew >= 0)
+		if (skew >= 0) 
 		{
 			skew = frame->Kskew;
 		}
-		else
+		else 
 		{
 			skew = - frame->Kskew;
 		}
-
+	
 		/* Add skewness to closed portion of voicing period */
 		kt_globals.T0 = kt_globals.T0 + skew;
 		skew = - skew;
 	}
-	else
+	else 
 	{
 		kt_globals.T0 = 4;                     /* Default for f0 undefined */
 		kt_globals.amp_voice = 0.0;
@@ -887,20 +822,20 @@ static void pitch_synch_par_reset(klatt_frame_ptr frame)
 		kt_globals.pulse_shape_a = 0.0;
 		kt_globals.pulse_shape_b = 0.0;
 	}
-
+	
 	/* Reset these pars pitch synchronously or at update rate if f0=0 */
-
-	if ((kt_globals.T0 != 4) || (kt_globals.ns == 0))
+	
+	if ((kt_globals.T0 != 4) || (kt_globals.ns == 0)) 
 	{
 		/* Set one-pole low-pass filter that tilts glottal source */
-
+	
 		kt_globals.decay = (0.033 * frame->TLTdb);
-
-		if (kt_globals.decay > 0.0)
+	
+		if (kt_globals.decay > 0.0) 
 		{
 			kt_globals.onemd = 1.0 - kt_globals.decay;
 		}
-		else
+		else 
 		{
 			kt_globals.onemd = 1.0;
 		}
@@ -912,7 +847,7 @@ static void pitch_synch_par_reset(klatt_frame_ptr frame)
 /*
 function SETABC
 
-Convert formant freqencies and bandwidth into resonator difference
+Convert formant freqencies and bandwidth into resonator difference 
 equation constants.
 */
 
@@ -921,18 +856,18 @@ static void setabc(long int f, long int bw, resonator_ptr rp)
 {
 	double r;
 	double arg;
-
+	
 	/* Let r  =  exp(-pi bw t) */
 	arg = kt_globals.minus_pi_t * bw;
 	r = exp(arg);
-
+	
 	/* Let c  =  -r**2 */
 	rp->c = -(r * r);
-
+	
 	/* Let b = r * 2*cos(2 pi f t) */
 	arg = kt_globals.two_pi_t * f;
 	rp->b = r * cos(arg) * 2.0;
-
+	
 	/* Let a = 1.0 - b - c */
 	rp->a = 1.0 - rp->b - rp->c;
 }
@@ -941,7 +876,7 @@ static void setabc(long int f, long int bw, resonator_ptr rp)
 /*
 function SETZEROABC
 
-Convert formant freqencies and bandwidth into anti-resonator difference
+Convert formant freqencies and bandwidth into anti-resonator difference 
 equation constants.
 */
 
@@ -949,7 +884,7 @@ static void setzeroabc(long int f, long int bw, resonator_ptr rp)
 {
 	double r;
 	double arg;
-
+	
 	f = -f;
 
 //NOTE, changes made 30.09.2011 for Reece Dunn <msclrhd at googlemail.com>
@@ -959,17 +894,17 @@ static void setzeroabc(long int f, long int bw, resonator_ptr rp)
 	/* Let r  =  exp(-pi bw t) */
 	arg = kt_globals.minus_pi_t * bw;
 	r = exp(arg);
-
+	
 	/* Let c  =  -r**2 */
 	rp->c = -(r * r);
-
+	
 	/* Let b = r * 2*cos(2 pi f t) */
 	arg = kt_globals.two_pi_t * f;
 	rp->b = r * cos(arg) * 2.;
-
+	
 	/* Let a = 1.0 - b - c */
 	rp->a = 1.0 - rp->b - rp->c;
-
+	
 	/* Now convert to antiresonator coefficients (a'=1/a, b'=b/a, c'=c/a) */
 	/* If f == 0 then rp->a gets set to 0 which makes a'=1/a set a', b' and c' to
 	 * INF, causing an audible sound spike when triggered (e.g. apiration with the
@@ -985,26 +920,26 @@ static void setzeroabc(long int f, long int bw, resonator_ptr rp)
 }
 
 
-/*
+/* 
 function GEN_NOISE
 
-Random number generator (return a number between -8191 and +8191)
-Noise spectrum is tilted down by soft low-pass filter having a pole near
-the origin in the z-plane, i.e. output = input + (0.75 * lastoutput)
+Random number generator (return a number between -8191 and +8191) 
+Noise spectrum is tilted down by soft low-pass filter having a pole near 
+the origin in the z-plane, i.e. output = input + (0.75 * lastoutput) 
 */
 
 
-static double gen_noise(double noise)
+static double gen_noise(double noise) 
 {
 	long temp;
-	static double nlast = 0;
-
+	static double nlast;
+	
 	temp = (long) getrandom(-8191,8191);
 	kt_globals.nrand = (long) temp;
-
+	
 	noise = kt_globals.nrand + (0.75 * nlast);
 	nlast = noise;
-
+	
 	return(noise);
 }
 
@@ -1021,16 +956,16 @@ Conversion table, db to linear, 87 dB --> 32767
                                 81 dB --> 16384 (6 dB down = 0.5)
                                  ...
                                  0 dB -->     0
-
+ 
 The just noticeable difference for a change in intensity of a vowel
 is approximately 1 dB.  Thus all amplitudes are quantized to 1 dB
 steps.
 */
 
 
-static double DBtoLIN(long dB)
+static double DBtoLIN(long dB) 
 {
-	static short amptable[88] =
+	static short amptable[88] = 
 	{
 		0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   6,   7,
       8,   9,   10,  11,  13,  14,  16,  18,  20,  22,  25,  28,  32,
@@ -1041,12 +976,12 @@ static double DBtoLIN(long dB)
 		4096,  4547,  5104,  5751,  6488,  7291,  8192,  9093,  10207,
 		11502,  12976,  14582,  16384,  18350,  20644,  23429,
 		26214,  29491,  32767 };
-
+	
 	if ((dB < 0) || (dB > 87))
 	{
 		return(0);
 	}
-
+	
 	return((double)(amptable[dB]) * 0.001);
 }
 
@@ -1061,10 +996,11 @@ static int klattp[N_KLATTP];
 static double klattp1[N_KLATTP];
 static double klattp_inc[N_KLATTP];
 
+static int scale_wav_tab[] = {45,38,45,45};   // scale output from different voicing sources
 
 
 
-static int Wavegen_Klatt(int resume)
+int Wavegen_Klatt(int resume)
 {//==========================
 	int pk;
 	int x;
@@ -1093,7 +1029,7 @@ static int Wavegen_Klatt(int resume)
 		}
 		for(ix=1; ix < 7; ix++)
 		{
-			kt_frame.Ap[ix] = peaks[ix].ap;
+			kt_frame.Ap[ix] = 0;
 		}
 
 		kt_frame.AVdb = klattp[KLATT_AV];
@@ -1183,7 +1119,7 @@ static int Wavegen_Klatt(int resume)
 }
 
 
-static void SetSynth_Klatt(int length, int /* modn */, frame_t *fr1, frame_t *fr2, voice_t *v, int control)
+void SetSynth_Klatt(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v, int control)
 {//===========================================================================================
 	int ix;
 	DOUBLEX next;
@@ -1194,7 +1130,7 @@ static void SetSynth_Klatt(int length, int /* modn */, frame_t *fr1, frame_t *fr
 
 	if(wvoice != NULL)
 	{
-		if((wvoice->klattv[0] > 0) && (wvoice->klattv[0] <=4 ))
+		if((wvoice->klattv[0] > 0) && (wvoice->klattv[0] <=3 ))
 		{
 			kt_globals.glsource = wvoice->klattv[0];
 			kt_globals.scale_wav = scale_wav_tab[kt_globals.glsource];
@@ -1214,7 +1150,7 @@ static void SetSynth_Klatt(int length, int /* modn */, frame_t *fr1, frame_t *fr
 		{
 			if(qix >= N_WCMDQ) qix = 0;
 			if(qix == wcmdq_tail) break;
-
+	
 			cmd = wcmdq[qix][0];
 			if(cmd==WCMD_KLATT)
 			{
@@ -1261,7 +1197,7 @@ if(option_log_frames)
 		fprintf(f_log,"K %3dmS  %3d %3d %4d %4d (%2d)  to  %3d %3d %4d %4d (%2d)\n",length*1000/samplerate,
 			fr1->klattp[KLATT_FNZ]*2,fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3], fr1->klattp[KLATT_AV],
 			fr2->klattp[KLATT_FNZ]*2,fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3], fr2->klattp[KLATT_AV] );
-
+	
 		fclose(f_log);
 	}
 }
@@ -1342,12 +1278,12 @@ if(option_log_frames)
 		{
 			peaks[ix].bp1 = fr1->klatt_bp[ix] * 4;  // parallel bandwidth
 			peaks[ix].bp = (int)peaks[ix].bp1;
-			next = fr2->klatt_bp[ix] * 4;
+			next = fr2->klatt_bp[ix] * 2;
 			peaks[ix].bp_inc =  ((next - peaks[ix].bp1) * STEPSIZE) / length;
 
 			peaks[ix].ap1 = fr1->klatt_ap[ix];   // parallal amplitude
 			peaks[ix].ap = (int)peaks[ix].ap1;
-			next = fr2->klatt_ap[ix];
+			next = fr2->klatt_ap[ix] * 2;
 			peaks[ix].ap_inc =  ((next - peaks[ix].ap1) * STEPSIZE) / length;
 		}
 	}
@@ -1366,7 +1302,18 @@ int Wavegen_Klatt2(int length, int modulation, int resume, frame_t *fr1, frame_t
 
 void KlattInit()
 {
+#define NUMBER_OF_SAMPLES 100
 
+	static short natural_samples[NUMBER_OF_SAMPLES]=
+	{
+		-310,-400,530,356,224,89,23,-10,-58,-16,461,599,536,701,770,
+		605,497,461,560,404,110,224,131,104,-97,155,278,-154,-1165,
+		-598,737,125,-592,41,11,-247,-10,65,92,80,-304,71,167,-1,122,
+		233,161,-43,278,479,485,407,266,650,134,80,236,68,260,269,179,
+		53,140,275,293,296,104,257,152,311,182,263,245,125,314,140,44,
+		203,230,-235,-286,23,107,92,-91,38,464,443,176,98,-784,-2449,
+		-1891,-1045,-1600,-1462,-1384,-1261,-949,-730
+	};
 	static short formant_hz[10] = {280,688,1064,2806,3260,3700,6500,7000,8000,280};
 	static short bandwidth[10] = {89,160,70,160,200,200,500,500,500,89};
 	static short parallel_amp[10] = { 0,59,59,59,59,59,59,0,0,0};
@@ -1374,12 +1321,6 @@ void KlattInit()
 
 	int ix;
 
-for(ix=0; ix<256; ix++)
-{
-	// TEST: Overwrite natural_samples2
-	// sawtooth wave
-//	natural_samples2[ix] = (128-ix) * 20;
-}
 	sample_count=0;
 
 	kt_globals.synthesis_model = CASCADE_PARALLEL;
diff --git a/external/espeak/klatt.h b/external/espeak/klatt.h
old mode 100755
new mode 100644
index e4448e4..76613a5
--- a/external/espeak/klatt.h
+++ b/external/espeak/klatt.h
@@ -1,12 +1,11 @@
 
 
 #define CASCADE_PARALLEL 1         /* Type of synthesis model */
-#define ALL_PARALLEL     2
+#define ALL_PARALLEL     2 
 
 #define IMPULSIVE        1         /* Type of voicing source */
 #define NATURAL          2
 #define SAMPLED          3
-#define SAMPLED2         4
 
 #define PI               3.1415927
 
@@ -97,7 +96,7 @@ typedef struct
   resonator_t rsn_next[N_RSN];
 
 } klatt_global_t, *klatt_global_ptr;
-
+  
 /* Structure for Klatt Parameters */
 
 #define F_NZ   0  // nasal zero formant
diff --git a/external/espeak/numbers.cpp b/external/espeak/numbers.cpp
old mode 100755
new mode 100644
index 974f916..90a246e
--- a/external/espeak/numbers.cpp
+++ b/external/espeak/numbers.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -70,37 +70,38 @@ static char *digit_lookup;
 static int speak_missing_thousands;
 static int number_control;
 
+
 typedef struct {
-	const char *name;
-	int  flags;
+const char *name;
+int  flags;
 } ACCENTS;
 
 // these are tokens to look up in the *_list file.
 static ACCENTS accents_tab[] = {
-	{"_lig", 1},
-	{"_smc", 1},  // smallcap
-	{"_tur", 1},  // turned
-	{"_rev", 1},  // reversed
-	{"_crl", 0},  // curl
-
-	{"_acu", 0},  // acute
-	{"_brv", 0},  // breve
-	{"_hac", 0},  // caron/hacek
-	{"_ced", 0},  // cedilla
-	{"_cir", 0},  // circumflex
-	{"_dia", 0},  // diaeresis
-	{"_ac2", 0},  // double acute
-	{"_dot", 0},  // dot
-	{"_grv", 0},  // grave
-	{"_mcn", 0},  // macron
-	{"_ogo", 0},  // ogonek
-	{"_rng", 0},  // ring
-	{"_stk", 0},  // stroke
-	{"_tld", 0},  // tilde
-
-	{"_bar", 0},  // bar
-	{"_rfx", 0},  // retroflex
-	{"_hok", 0},  // hook
+{"_lig", 1},
+{"_smc", 1},  // smallcap
+{"_tur", 1},  // turned
+{"_rev", 1},  // reversed
+{"_crl", 0},  // curl
+
+{"_acu", 0},  // acute
+{"_brv", 0},  // breve
+{"_hac", 0},  // caron/hacek
+{"_ced", 0},  // cedilla
+{"_cir", 0},  // circumflex
+{"_dia", 0},  // diaeresis
+{"_ac2", 0},  // double acute
+{"_dot", 0},  // dot
+{"_grv", 0},  // grave
+{"_mcn", 0},  // macron
+{"_ogo", 0},  // ogonek
+{"_rng", 0},  // ring
+{"_stk", 0},  // stroke
+{"_tld", 0},  // tilde
+
+{"_bar", 0},  // bar
+{"_rfx", 0},  // retroflex
+{"_hok", 0},  // hook
 };
 
 
@@ -126,271 +127,270 @@ static ACCENTS accents_tab[] = {
 
 
 static const short non_ascii_tab[] = {
-	0, 0x3b1, 0x259, 0x25b, 0x3b3, 0x3b9, 0x153, 0x3c9,
-	0x3c6, 0x283, 0x3c5, 0x292, 0x294, 0x27e
-};
+    0, 0x3b1, 0x259, 0x25b, 0x3b3, 0x3b9, 0x153, 0x3c9,
+0x3c6, 0x283, 0x3c5, 0x292, 0x294, 0x27e };
 
 
 // characters U+00e0 to U+017f
 static const unsigned short letter_accents_0e0[] = {
-	LETTER('a',M_GRAVE,0),   // U+00e0
-	LETTER('a',M_ACUTE,0),
-	LETTER('a',M_CIRCUMFLEX,0),
-	LETTER('a',M_TILDE,0),
-	LETTER('a',M_DIAERESIS,0),
-	LETTER('a',M_RING,0),
-	LIGATURE('a','e',0),
-	LETTER('c',M_CEDILLA,0),
-	LETTER('e',M_GRAVE,0),
-	LETTER('e',M_ACUTE,0),
-	LETTER('e',M_CIRCUMFLEX,0),
-	LETTER('e',M_DIAERESIS,0),
-	LETTER('i',M_GRAVE,0),
-	LETTER('i',M_ACUTE,0),
-	LETTER('i',M_CIRCUMFLEX,0),
-	LETTER('i',M_DIAERESIS,0),
-	LETTER('d',M_NAME,0),  // eth  // U+00f0
-	LETTER('n',M_TILDE,0),
-	LETTER('o',M_GRAVE,0),
-	LETTER('o',M_ACUTE,0),
-	LETTER('o',M_CIRCUMFLEX,0),
-	LETTER('o',M_TILDE,0),
-	LETTER('o',M_DIAERESIS,0),
-	0,     // division sign
-	LETTER('o',M_STROKE,0),
-	LETTER('u',M_GRAVE,0),
-	LETTER('u',M_ACUTE,0),
-	LETTER('u',M_CIRCUMFLEX,0),
-	LETTER('u',M_DIAERESIS,0),
-	LETTER('y',M_ACUTE,0),
-	LETTER('t',M_NAME,0),  // thorn
-	LETTER('y',M_DIAERESIS,0),
-	CAPITAL,                 // U+0100
-	LETTER('a',M_MACRON,0),
-	CAPITAL,
-	LETTER('a',M_BREVE,0),
-	CAPITAL,
-	LETTER('a',M_OGONEK,0),
-	CAPITAL,
-	LETTER('c',M_ACUTE,0),
-	CAPITAL,
-	LETTER('c',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('c',M_DOT_ABOVE,0),
-	CAPITAL,
-	LETTER('c',M_CARON,0),
-	CAPITAL,
-	LETTER('d',M_CARON,0),
-	CAPITAL,                 // U+0110
-	LETTER('d',M_STROKE,0),
-	CAPITAL,
-	LETTER('e',M_MACRON,0),
-	CAPITAL,
-	LETTER('e',M_BREVE,0),
-	CAPITAL,
-	LETTER('e',M_DOT_ABOVE,0),
-	CAPITAL,
-	LETTER('e',M_OGONEK,0),
-	CAPITAL,
-	LETTER('e',M_CARON,0),
-	CAPITAL,
-	LETTER('g',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('g',M_BREVE,0),
-	CAPITAL,                // U+0120
-	LETTER('g',M_DOT_ABOVE,0),
-	CAPITAL,
-	LETTER('g',M_CEDILLA,0),
-	CAPITAL,
-	LETTER('h',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('h',M_STROKE,0),
-	CAPITAL,
-	LETTER('i',M_TILDE,0),
-	CAPITAL,
-	LETTER('i',M_MACRON,0),
-	CAPITAL,
-	LETTER('i',M_BREVE,0),
-	CAPITAL,
-	LETTER('i',M_OGONEK,0),
-	CAPITAL,               // U+0130
-	LETTER('i',M_NAME,0), // dotless i
-	CAPITAL,
-	LIGATURE('i','j',0),
-	CAPITAL,
-	LETTER('j',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('k',M_CEDILLA,0),
-	LETTER('k',M_NAME,0),  // kra
-	CAPITAL,
-	LETTER('l',M_ACUTE,0),
-	CAPITAL,
-	LETTER('l',M_CEDILLA,0),
-	CAPITAL,
-	LETTER('l',M_CARON,0),
-	CAPITAL,
-	LETTER('l',M_MIDDLE_DOT,0),  // U+0140
-	CAPITAL,
-	LETTER('l',M_STROKE,0),
-	CAPITAL,
-	LETTER('n',M_ACUTE,0),
-	CAPITAL,
-	LETTER('n',M_CEDILLA,0),
-	CAPITAL,
-	LETTER('n',M_CARON,0),
-	LETTER('n',M_NAME,0),  // apostrophe n
-	CAPITAL,
-	LETTER('n',M_NAME,0),  // eng
-	CAPITAL,
-	LETTER('o',M_MACRON,0),
-	CAPITAL,
-	LETTER('o',M_BREVE,0),
-	CAPITAL,             // U+0150
-	LETTER('o',M_DOUBLE_ACUTE,0),
-	CAPITAL,
-	LIGATURE('o','e',0),
-	CAPITAL,
-	LETTER('r',M_ACUTE,0),
-	CAPITAL,
-	LETTER('r',M_CEDILLA,0),
-	CAPITAL,
-	LETTER('r',M_CARON,0),
-	CAPITAL,
-	LETTER('s',M_ACUTE,0),
-	CAPITAL,
-	LETTER('s',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('s',M_CEDILLA,0),
-	CAPITAL,              // U+0160
-	LETTER('s',M_CARON,0),
-	CAPITAL,
-	LETTER('t',M_CEDILLA,0),
-	CAPITAL,
-	LETTER('t',M_CARON,0),
-	CAPITAL,
-	LETTER('t',M_STROKE,0),
-	CAPITAL,
-	LETTER('u',M_TILDE,0),
-	CAPITAL,
-	LETTER('u',M_MACRON,0),
-	CAPITAL,
-	LETTER('u',M_BREVE,0),
-	CAPITAL,
-	LETTER('u',M_RING,0),
-	CAPITAL,              // U+0170
-	LETTER('u',M_DOUBLE_ACUTE,0),
-	CAPITAL,
-	LETTER('u',M_OGONEK,0),
-	CAPITAL,
-	LETTER('w',M_CIRCUMFLEX,0),
-	CAPITAL,
-	LETTER('y',M_CIRCUMFLEX,0),
-	CAPITAL,   // Y-DIAERESIS
-	CAPITAL,
-	LETTER('z',M_ACUTE,0),
-	CAPITAL,
-	LETTER('z',M_DOT_ABOVE,0),
-	CAPITAL,
-	LETTER('z',M_CARON,0),
-	LETTER('s',M_NAME,0), // long-s  // U+17f
+LETTER('a',M_GRAVE,0),   // U+00e0
+LETTER('a',M_ACUTE,0),
+LETTER('a',M_CIRCUMFLEX,0),
+LETTER('a',M_TILDE,0),
+LETTER('a',M_DIAERESIS,0),
+LETTER('a',M_RING,0),
+LIGATURE('a','e',0),
+LETTER('c',M_CEDILLA,0),
+LETTER('e',M_GRAVE,0),
+LETTER('e',M_ACUTE,0),
+LETTER('e',M_CIRCUMFLEX,0),
+LETTER('e',M_DIAERESIS,0),
+LETTER('i',M_GRAVE,0),
+LETTER('i',M_ACUTE,0),
+LETTER('i',M_CIRCUMFLEX,0),
+LETTER('i',M_DIAERESIS,0),
+LETTER('d',M_NAME,0),  // eth  // U+00f0
+LETTER('n',M_TILDE,0),
+LETTER('o',M_GRAVE,0),
+LETTER('o',M_ACUTE,0),
+LETTER('o',M_CIRCUMFLEX,0),
+LETTER('o',M_TILDE,0),
+LETTER('o',M_DIAERESIS,0),
+0,     // division sign
+LETTER('o',M_STROKE,0),
+LETTER('u',M_GRAVE,0),
+LETTER('u',M_ACUTE,0),
+LETTER('u',M_CIRCUMFLEX,0),
+LETTER('u',M_DIAERESIS,0),
+LETTER('y',M_ACUTE,0),
+LETTER('t',M_NAME,0),  // thorn
+LETTER('y',M_DIAERESIS,0),
+CAPITAL,                 // U+0100
+LETTER('a',M_MACRON,0),
+CAPITAL,
+LETTER('a',M_BREVE,0),
+CAPITAL,
+LETTER('a',M_OGONEK,0),
+CAPITAL,
+LETTER('c',M_ACUTE,0),
+CAPITAL,
+LETTER('c',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('c',M_DOT_ABOVE,0),
+CAPITAL,
+LETTER('c',M_CARON,0),
+CAPITAL,
+LETTER('d',M_CARON,0),
+CAPITAL,                 // U+0110
+LETTER('d',M_STROKE,0),
+CAPITAL,
+LETTER('e',M_MACRON,0),
+CAPITAL,
+LETTER('e',M_BREVE,0),
+CAPITAL,
+LETTER('e',M_DOT_ABOVE,0),
+CAPITAL,
+LETTER('e',M_OGONEK,0),
+CAPITAL,
+LETTER('e',M_CARON,0),
+CAPITAL,
+LETTER('g',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('g',M_BREVE,0),
+CAPITAL,                // U+0120
+LETTER('g',M_DOT_ABOVE,0),
+CAPITAL,
+LETTER('g',M_CEDILLA,0),
+CAPITAL,
+LETTER('h',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('h',M_STROKE,0),
+CAPITAL,
+LETTER('i',M_TILDE,0),
+CAPITAL,
+LETTER('i',M_MACRON,0),
+CAPITAL,
+LETTER('i',M_BREVE,0),
+CAPITAL,
+LETTER('i',M_OGONEK,0),
+CAPITAL,               // U+0130
+LETTER('i',M_NAME,0), // dotless i
+CAPITAL,
+LIGATURE('i','j',0),
+CAPITAL,
+LETTER('j',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('k',M_CEDILLA,0),
+LETTER('k',M_NAME,0),  // kra
+CAPITAL,
+LETTER('l',M_ACUTE,0),
+CAPITAL,
+LETTER('l',M_CEDILLA,0),
+CAPITAL,
+LETTER('l',M_CARON,0),
+CAPITAL,
+LETTER('l',M_MIDDLE_DOT,0),  // U+0140
+CAPITAL,
+LETTER('l',M_STROKE,0),
+CAPITAL,
+LETTER('n',M_ACUTE,0),
+CAPITAL,
+LETTER('n',M_CEDILLA,0),
+CAPITAL,
+LETTER('n',M_CARON,0),
+LETTER('n',M_NAME,0),  // apostrophe n
+CAPITAL,
+LETTER('n',M_NAME,0),  // eng
+CAPITAL,
+LETTER('o',M_MACRON,0),
+CAPITAL,
+LETTER('o',M_BREVE,0),
+CAPITAL,             // U+0150
+LETTER('o',M_DOUBLE_ACUTE,0),
+CAPITAL,
+LIGATURE('o','e',0),
+CAPITAL,
+LETTER('r',M_ACUTE,0),
+CAPITAL,
+LETTER('r',M_CEDILLA,0),
+CAPITAL,
+LETTER('r',M_CARON,0),
+CAPITAL,
+LETTER('s',M_ACUTE,0),
+CAPITAL,
+LETTER('s',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('s',M_CEDILLA,0),
+CAPITAL,              // U+0160
+LETTER('s',M_CARON,0),
+CAPITAL,
+LETTER('t',M_CEDILLA,0),
+CAPITAL,
+LETTER('t',M_CARON,0),
+CAPITAL,
+LETTER('t',M_STROKE,0),
+CAPITAL,
+LETTER('u',M_TILDE,0),
+CAPITAL,
+LETTER('u',M_MACRON,0),
+CAPITAL,
+LETTER('u',M_BREVE,0),
+CAPITAL,
+LETTER('u',M_RING,0),
+CAPITAL,              // U+0170
+LETTER('u',M_DOUBLE_ACUTE,0),
+CAPITAL,
+LETTER('u',M_OGONEK,0),
+CAPITAL,
+LETTER('w',M_CIRCUMFLEX,0),
+CAPITAL,
+LETTER('y',M_CIRCUMFLEX,0),
+CAPITAL,   // Y-DIAERESIS
+CAPITAL,
+LETTER('z',M_ACUTE,0),
+CAPITAL,
+LETTER('z',M_DOT_ABOVE,0),
+CAPITAL,
+LETTER('z',M_CARON,0),
+LETTER('s',M_NAME,0), // long-s  // U+17f
 };
 
 
 // characters U+0250 to U+029F
 static const unsigned short letter_accents_250[] = {
-	LETTER('a',M_TURNED,0),		// U+250
-	LETTER(L_ALPHA,0,0),
-	LETTER(L_ALPHA,M_TURNED,0),
-	LETTER('b',M_IMPLOSIVE,0),
-	0,  // open-o
-	LETTER('c',M_CURL,0),
-	LETTER('d',M_RETROFLEX,0),
-	LETTER('d',M_IMPLOSIVE,0),
-	LETTER('e',M_REVERSED,0),	// U+258
-	0,   // schwa
-	LETTER(L_SCHWA,M_HOOK,0),
-	0,   // open-e
-	LETTER(L_OPEN_E,M_REVERSED,0),
-	LETTER(L_OPEN_E,M_HOOK,M_REVERSED),
-	0,//LETTER(L_OPEN_E,M_CLOSED,M_REVERSED),
-	LETTER('j',M_BAR,0),
-	LETTER('g',M_IMPLOSIVE,0),	// U+260
-	LETTER('g',0,0),
-	LETTER('g',M_SMALLCAP,0),
-	LETTER(L_GAMMA,0,0),
-	0,   // ramshorn
-	LETTER('h',M_TURNED,0),
-	LETTER('h',M_HOOK,0),
-	0,//LETTER(L_HENG,M_HOOK,0),
-	LETTER('i',M_BAR,0),		// U+268
-	LETTER(L_IOTA,0,0),
-	LETTER('i',M_SMALLCAP,0),
-	LETTER('l',M_TILDE,0),
-	LETTER('l',M_BAR,0),
-	LETTER('l',M_RETROFLEX,0),
-	LIGATURE('l','z',0),
-	LETTER('m',M_TURNED,0),
-	0,//LETTER('m',M_TURNED,M_LEG),	// U+270
-	LETTER('m',M_HOOK,0),
-	0,//LETTER('n',M_LEFTHOOK,0),
-	LETTER('n',M_RETROFLEX,0),
-	LETTER('n',M_SMALLCAP,0),
-	LETTER('o',M_BAR,0),
-	LIGATURE('o','e',M_SMALLCAP),
-	0,//LETTER(L_OMEGA,M_CLOSED,0),
-	LETTER(L_PHI,0,0),		// U+278
-	LETTER('r',M_TURNED,0),
-	0,//LETTER('r',M_TURNED,M_LEG),
-	LETTER('r',M_RETROFLEX,M_TURNED),
-	0,//LETTER('r',M_LEG,0),
-	LETTER('r',M_RETROFLEX,0),
-	0,  // r-tap
-	LETTER(L_RTAP,M_REVERSED,0),
-	LETTER('r',M_SMALLCAP,0),	// U+280
-	LETTER('r',M_TURNED,M_SMALLCAP),
-	LETTER('s',M_RETROFLEX,0),
-	0,  // esh
-	0,//LETTER('j',M_BAR,L_IMPLOSIVE),
-	LETTER(L_ESH,M_REVERSED,0),
-	LETTER(L_ESH,M_CURL,0),
-	LETTER('t',M_TURNED,0),
-	LETTER('t',M_RETROFLEX,0),	// U+288
-	LETTER('u',M_BAR,0),
-	LETTER(L_UPSILON,0,0),
-	LETTER('v',M_HOOK,0),
-	LETTER('v',M_TURNED,0),
-	LETTER('w',M_TURNED,0),
-	LETTER('y',M_TURNED,0),
-	LETTER('y',M_SMALLCAP,0),
-	LETTER('z',M_RETROFLEX,0),	// U+290
-	LETTER('z',M_CURL,0),
-	0,  // ezh
-	LETTER(L_EZH,M_CURL,0),
-	0,  // glottal stop
-	LETTER(L_GLOTTAL,M_REVERSED,0),
-	LETTER(L_GLOTTAL,M_TURNED,0),
-	0,//LETTER('c',M_LONG,0),
-	0,  // bilabial click		// U+298
-	LETTER('b',M_SMALLCAP,0),
-	0,//LETTER(L_OPEN_E,M_CLOSED,0),
-	LETTER('g',M_IMPLOSIVE,M_SMALLCAP),
-	LETTER('h',M_SMALLCAP,0),
-	LETTER('j',M_CURL,0),
-	LETTER('k',M_TURNED,0),
-	LETTER('l',M_SMALLCAP,0),
-	LETTER('q',M_HOOK,0),      // U+2a0
-	LETTER(L_GLOTTAL,M_STROKE,0),
-	LETTER(L_GLOTTAL,M_STROKE,M_REVERSED),
-	LIGATURE('d','z',0),
-	0,   // dezh
-	LIGATURE('d','z',M_CURL),
-	LIGATURE('t','s',0),
-	0,   // tesh
-	LIGATURE('t','s',M_CURL),
+LETTER('a',M_TURNED,0),		// U+250
+LETTER(L_ALPHA,0,0),
+LETTER(L_ALPHA,M_TURNED,0),
+LETTER('b',M_IMPLOSIVE,0),
+0,  // open-o
+LETTER('c',M_CURL,0),
+LETTER('d',M_RETROFLEX,0),
+LETTER('d',M_IMPLOSIVE,0),
+LETTER('e',M_REVERSED,0),	// U+258
+0,   // schwa
+LETTER(L_SCHWA,M_HOOK,0),
+0,   // open-e
+LETTER(L_OPEN_E,M_REVERSED,0),
+LETTER(L_OPEN_E,M_HOOK,M_REVERSED),
+0,//LETTER(L_OPEN_E,M_CLOSED,M_REVERSED),
+LETTER('j',M_BAR,0),
+LETTER('g',M_IMPLOSIVE,0),	// U+260
+LETTER('g',0,0),
+LETTER('g',M_SMALLCAP,0),
+LETTER(L_GAMMA,0,0),
+0,   // ramshorn
+LETTER('h',M_TURNED,0),
+LETTER('h',M_HOOK,0),
+0,//LETTER(L_HENG,M_HOOK,0),
+LETTER('i',M_BAR,0),		// U+268
+LETTER(L_IOTA,0,0),
+LETTER('i',M_SMALLCAP,0),
+LETTER('l',M_TILDE,0),
+LETTER('l',M_BAR,0),
+LETTER('l',M_RETROFLEX,0),
+LIGATURE('l','z',0),
+LETTER('m',M_TURNED,0),
+0,//LETTER('m',M_TURNED,M_LEG),	// U+270
+LETTER('m',M_HOOK,0),
+0,//LETTER('n',M_LEFTHOOK,0),
+LETTER('n',M_RETROFLEX,0),
+LETTER('n',M_SMALLCAP,0),
+LETTER('o',M_BAR,0),
+LIGATURE('o','e',M_SMALLCAP),
+0,//LETTER(L_OMEGA,M_CLOSED,0),
+LETTER(L_PHI,0,0),		// U+278
+LETTER('r',M_TURNED,0),
+0,//LETTER('r',M_TURNED,M_LEG),
+LETTER('r',M_RETROFLEX,M_TURNED),
+0,//LETTER('r',M_LEG,0),
+LETTER('r',M_RETROFLEX,0),
+0,  // r-tap
+LETTER(L_RTAP,M_REVERSED,0),
+LETTER('r',M_SMALLCAP,0),	// U+280
+LETTER('r',M_TURNED,M_SMALLCAP),
+LETTER('s',M_RETROFLEX,0),
+0,  // esh
+0,//LETTER('j',M_BAR,L_IMPLOSIVE),
+LETTER(L_ESH,M_REVERSED,0),
+LETTER(L_ESH,M_CURL,0),
+LETTER('t',M_TURNED,0),
+LETTER('t',M_RETROFLEX,0),	// U+288
+LETTER('u',M_BAR,0),
+LETTER(L_UPSILON,0,0),
+LETTER('v',M_HOOK,0),
+LETTER('v',M_TURNED,0),
+LETTER('w',M_TURNED,0),
+LETTER('y',M_TURNED,0),
+LETTER('y',M_SMALLCAP,0),
+LETTER('z',M_RETROFLEX,0),	// U+290
+LETTER('z',M_CURL,0),
+0,  // ezh
+LETTER(L_EZH,M_CURL,0),
+0,  // glottal stop
+LETTER(L_GLOTTAL,M_REVERSED,0),
+LETTER(L_GLOTTAL,M_TURNED,0),
+0,//LETTER('c',M_LONG,0),
+0,  // bilabial click		// U+298
+LETTER('b',M_SMALLCAP,0),
+0,//LETTER(L_OPEN_E,M_CLOSED,0),
+LETTER('g',M_IMPLOSIVE,M_SMALLCAP),
+LETTER('h',M_SMALLCAP,0),
+LETTER('j',M_CURL,0),
+LETTER('k',M_TURNED,0),
+LETTER('l',M_SMALLCAP,0),
+LETTER('q',M_HOOK,0),      // U+2a0
+LETTER(L_GLOTTAL,M_STROKE,0),
+LETTER(L_GLOTTAL,M_STROKE,M_REVERSED),
+LIGATURE('d','z',0),
+0,   // dezh
+LIGATURE('d','z',M_CURL),
+LIGATURE('t','s',0),
+0,   // tesh
+LIGATURE('t','s',M_CURL),
 };
 
 static int LookupLetter2(Translator *tr, unsigned int letter, char *ph_buf)
-{	//========================================================================
+{//========================================================================
 	int len;
 	char single_letter[10];
 
@@ -431,10 +431,11 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf)
 	{
 		accent_data = letter_accents_0e0[letter - 0xe0];
 	}
-	else if((letter >= 0x250) && (letter <= 0x2a8))
+	else
+	if((letter >= 0x250) && (letter <= 0x2a8))
 	{
 		accent_data = letter_accents_250[letter - 0x250];
-	}
+	} 
 
 	if(accent_data != 0)
 	{
@@ -484,7 +485,8 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf)
 				{
 					if(accent1 == 0)
 						strcpy(ph_buf, ph_letter1);
-					else if((tr->langopts.accents & 1) || (accents_tab[accent1].flags & 1))
+					else
+					if((tr->langopts.accents & 1) || (accents_tab[accent1].flags & 1))
 						sprintf(ph_buf,"%s%c%c%s", ph_accent1, phonPAUSE_VSHORT, phonSTRESS_P, ph_letter1);
 					else
 						sprintf(ph_buf,"%c%s%c%s%c", phonSTRESS_2, ph_letter1, phonPAUSE_VSHORT, ph_accent1, phonPAUSE_VSHORT);
@@ -549,7 +551,7 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b
 
 	// if the $accent flag is set for this letter, use the accents table (below)
 	dict_flags[1] = 0;
-
+	
 	if(Lookup(tr, &single_letter[1], ph_buf3) == 0)
 	{
 		single_letter[1] = ' ';
@@ -577,122 +579,6 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b
 }  // end of LookupLetter
 
 
-// unicode ranges for non-ascii digits 0-9
-static const int number_ranges[] = {
-	0x660, 0x6f0,  // arabic
-	0x966, 0x9e6, 0xa66, 0xae6, 0xb66, 0xbe6, 0xc66, 0xce6, 0xd66,  // indic
-	0xe50, 0xed0, 0xf20, 0x1040, 0x1090,
-	0 };  // these must be in ascending order
-
-
-static int NonAsciiNumber(int letter)
-{//============================
-// Change non-ascii digit into ascii digit '0' to '9', (or -1 if not)
-	const int *p;
-	int base;
-
-	for(p=number_ranges; (base = *p) != 0; p++)
-	{
-		if(letter < base)
-			break;  // not found
-		if(letter < (base+10))
-			return(letter-base+'0');
-	}
-	return(-1);
-}
-
-#define L_SUB 0x4000   // subscript
-#define L_SUP 0x8000   // superscript
-
-static const char *modifiers[] = {NULL, "_sub", "_sup", NULL};
-
-// this list must be in ascending order
-static unsigned short derived_letters[] = {
-	0x00aa, 'a'+L_SUP,
-	0x00b2, '2'+L_SUP,
-	0x00b3, '3'+L_SUP,
-	0x00b9, '1'+L_SUP,
-	0x00ba, 'o'+L_SUP,
-	0x02b0, 'h'+L_SUP,
-	0x02b1, 0x266+L_SUP,
-	0x02b2, 'j'+L_SUP,
-	0x02b3, 'r'+L_SUP,
-	0x02b4, 0x279+L_SUP,
-	0x02b5, 0x27b+L_SUP,
-	0x02b6, 0x281+L_SUP,
-	0x02b7, 'w'+L_SUP,
-	0x02b8, 'y'+L_SUP,
-	0x02c0, 0x294+L_SUP,
-	0x02c1, 0x295+L_SUP,
-	0x02e0, 0x263+L_SUP,
-	0x02e1, 'l'+L_SUP,
-	0x02e2, 's'+L_SUP,
-	0x02e3, 'x'+L_SUP,
-	0x2070, '0'+L_SUP,
-	0x2071, 'i'+L_SUP,
-	0x2074, '4'+L_SUP,
-	0x2075, '5'+L_SUP,
-	0x2076, '6'+L_SUP,
-	0x2077, '7'+L_SUP,
-	0x2078, '8'+L_SUP,
-	0x2079, '9'+L_SUP,
-	0x207a, '+'+L_SUP,
-	0x207b, '-'+L_SUP,
-	0x207c, '='+L_SUP,
-	0x207d, '('+L_SUP,
-	0x207e, ')'+L_SUP,
-	0x207f, 'n'+L_SUP,
-	0x2080, '0'+L_SUB,
-	0x2081, '1'+L_SUB,
-	0x2082, '2'+L_SUB,
-	0x2083, '3'+L_SUB,
-	0x2084, '4'+L_SUB,
-	0x2085, '5'+L_SUB,
-	0x2086, '6'+L_SUB,
-	0x2087, '7'+L_SUB,
-	0x2088, '8'+L_SUB,
-	0x2089, '9'+L_SUB,
-	0x208a, '+'+L_SUB,
-	0x208b, '-'+L_SUB,
-	0x208c, '='+L_SUB,
-	0x208d, '('+L_SUB,
-	0x208e, ')'+L_SUB,
-	0x2090, 'a'+L_SUB,
-	0x2091, 'e'+L_SUB,
-	0x2092, 'o'+L_SUB,
-	0x2093, 'x'+L_SUB,
-	0x2094, 0x259+L_SUB,
-	0x2095, 'h'+L_SUB,
-	0x2096, 'k'+L_SUB,
-	0x2097, 'l'+L_SUB,
-	0x2098, 'm'+L_SUB,
-	0x2099, 'n'+L_SUB,
-	0x209a, 'p'+L_SUB,
-	0x209b, 's'+L_SUB,
-	0x209c, 't'+L_SUB,
-	0,0};
-
-
-static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"};  // names, using phonemes available to all languages
-
-
-int IsSuperscript(int letter)
-{//===========================
-// is this a subscript or superscript letter ?
-	int ix;
-	int c;
-
-	for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
-	{
-		if(c > letter)
-			break;
-		if(c == letter)
-			return(derived_letters[ix+1]);
-	}
-	return(0);
-}
-
-
 
 int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
 {//=========================================================================
@@ -700,34 +586,21 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
 // return number of bytes used by the letter
 // control bit 0:  a non-initial letter in a word
 //         bit 1:  say 'capital'
-//         bit 2:  say character code for unknown letters
 
 	int n_bytes;
 	int letter;
 	int len;
 	int ix;
-	int c;
+	int save_option_phonemes;
 	char *p2;
 	char *pbuf;
-	const char *modifier;
-	ALPHABET *alphabet;
-	int al_offset;
-	int al_flags;
-	int language;
-	int number;
-	int phontab_1;
-	int speak_letter_number;
-	char capital[30];
+	char capital[20];
 	char ph_buf[80];
 	char ph_buf2[80];
-	char ph_alphabet[80];
-	char hexbuf[12];
-	static char pause_string[] = {phonPAUSE, 0};
+	char hexbuf[6];
 
 	ph_buf[0] = 0;
-	ph_alphabet[0] = 0;
 	capital[0] = 0;
-	phontab_1 = translator->phoneme_tab_ix;
 
 	n_bytes = utf8_in(&letter,word);
 
@@ -739,42 +612,14 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
 	if(control & 2)
 	{
 		// include CAPITAL information
-		if(iswupper2(letter))
+		if(iswupper(letter))
 		{
 			Lookup(tr, "_cap", capital);
 		}
 	}
 	letter = towlower2(letter);
-	LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
 
-	if(ph_buf[0] == 0)
-	{
-		// is this a subscript or superscript letter ?
-		if((c = IsSuperscript(letter)) != 0)
-		{
-			letter = c & 0x3fff;
-			if((control & 4 ) && ((modifier = modifiers[c >> 14]) != NULL))
-			{
-				// don't say "superscript" during normal text reading
-				Lookup(tr, modifier, capital);
-				if(capital[0] == 0)
-				{
-					capital[2] = SetTranslator2("en");   // overwrites previous contents of translator2
-					Lookup(translator2, modifier, &capital[3]);
-					if(capital[3] != 0)
-					{
-						capital[0] = phonPAUSE;
-						capital[1] = phonSWITCH;
-						len = strlen(&capital[3]);
-						capital[len+3] = phonSWITCH;
-						capital[len+4] = phontab_1;
-						capital[len+5] = 0;
-					}
-				}
-			}
-		}
-		LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
-	}
+	LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
 
 	if(ph_buf[0] == phonSWITCH)
 	{
@@ -782,206 +627,78 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
 		return(0);
 	}
 
-
-	if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0))
-	{
-		// convert a non-ascii number to 0-9
-		LookupLetter(tr, number, 0, ph_buf, control & 1);
-	}
-
-	al_offset = 0;
-	al_flags = 0;
-	if((alphabet = AlphabetFromChar(letter)) != NULL)
+	if((ph_buf[0] == 0) && (tr->translator_name != L('e','n')))
 	{
-		al_offset = alphabet->offset;
-		al_flags = alphabet->flags;
-	}
+		// speak as English, check whether there is a translation for this character
+		SetTranslator2("en");
+		save_option_phonemes = option_phonemes;
+		option_phonemes = 0;
+		LookupLetter(translator2, letter, word[n_bytes], ph_buf, control & 1);
+		SelectPhonemeTable(voice->phoneme_tab_ix);  // revert to original phoneme table
+		option_phonemes = save_option_phonemes;
 
-	if(alphabet != current_alphabet)
-	{
-		// speak the name of the alphabet
-		current_alphabet = alphabet;
-		if((alphabet != NULL) && !(al_flags & AL_DONT_NAME) && (al_offset != translator->letter_bits_offset))
+		if(ph_buf[0] != 0)
 		{
-			if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet) || (al_offset == translator->langopts.our_alphabet))
-			{
-				// don't say the alphabet name
-			}
-			else
-			{
-				ph_buf2[0] = 0;
-				if(Lookup(translator, alphabet->name, ph_alphabet) == 0)  // the original language for the current voice
-				{
-					// Can't find the local name for this alphabet, use the English name
-					ph_alphabet[2] = SetTranslator2("en");   // overwrites previous contents of translator2
-					Lookup(translator2, alphabet->name, ph_buf2);
-				}
-				else if(translator != tr)
-				{
-					phontab_1 = tr->phoneme_tab_ix;
-					strcpy(ph_buf2, ph_alphabet);
-					ph_alphabet[2] = translator->phoneme_tab_ix;
-				}
-
-				if(ph_buf2[0] != 0)
-				{
-					// we used a different language for the alphabet name (now in ph_buf2)
-					ph_alphabet[0] = phonPAUSE;
-					ph_alphabet[1] = phonSWITCH;
-					strcpy(&ph_alphabet[3], ph_buf2);
-					len = strlen(ph_buf2) + 3;
-					ph_alphabet[len] = phonSWITCH;
-					ph_alphabet[len+1] = phontab_1;
-					ph_alphabet[len+2] = 0;
-				}
-			}
+			sprintf(phonemes,"%cen",phonSWITCH);
+			return(0);
 		}
 	}
 
-
-// caution: SetWordStress() etc don't expect phonSWITCH + phoneme table number
-
 	if(ph_buf[0] == 0)
 	{
-		if((al_offset != 0) && (al_offset == translator->langopts.alt_alphabet))
-			language = translator->langopts.alt_alphabet_lang;
-		else
-		if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS))
-			language = alphabet->language;
-		else
-			language = L('e','n');
-
-		if((language != tr->translator_name) || (language == L('k','o')))
+		// character name not found
+		if((letter >= 0x2800) && (letter <= 0x28ff))
 		{
-			char *p3;
-			int initial, code;
-			char hangul_buf[12];
-
-			// speak in the language for this alphabet (or English)
-			ph_buf[2] = SetTranslator2(WordToString2(language));
+			// braille dots symbol
+			Lookup(tr, "_braille", ph_buf);
+			if(ph_buf[0] == 0)
+			{
+				EncodePhonemes("br'e:l", ph_buf, NULL);
+			}
 
-			if(translator2 != NULL)
+			if(ph_buf[0] != 0)
 			{
-				if(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af))
+				pbuf = ph_buf + strlen(ph_buf);
+				for(ix=0; ix<8; ix++)
 				{
-					// Special case for Korean letters.
-					// break a syllable hangul into 2 or 3 individual jamo
-
-					hangul_buf[0] = ' ';
-					p3 = &hangul_buf[1];
-					if((initial = (code/28)/21) != 11)
+					if(letter & (1 << ix))
 					{
-						p3 += utf8_out(initial + 0x1100, p3);
+						*pbuf++ = phonPAUSE_VSHORT;
+						LookupLetter(tr, '1'+ix, 0, pbuf, 1);
+						pbuf += strlen(pbuf);
 					}
-					utf8_out(((code/28) % 21) + 0x1161, p3);  // medial
-					utf8_out((code % 28) + 0x11a7, &p3[3]);   // final
-					p3[6] = ' ';
-					p3[7] = 0;
-					ph_buf[3] = 0;
-					TranslateRules(translator2, &hangul_buf[1], &ph_buf[3], sizeof(ph_buf)-3, NULL, 0, NULL);
-					SetWordStress(translator2, &ph_buf[3], NULL, -1, 0);
-				}
-				else
-				{
-					LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
-				}
-
-				if(ph_buf[3] == phonSWITCH)
-				{
-					// another level of language change
-					ph_buf[2] = SetTranslator2(&ph_buf[4]);
-					LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
-				}
-
-				SelectPhonemeTable(voice->phoneme_tab_ix);  // revert to original phoneme table
-
-				if(ph_buf[3] != 0)
-				{
-					ph_buf[0] = phonPAUSE;
-					ph_buf[1] = phonSWITCH;
-					len = strlen(&ph_buf[3]) + 3;
-					ph_buf[len] = phonSWITCH;  // switch back
-					ph_buf[len+1] = tr->phoneme_tab_ix;
-					ph_buf[len+2] = 0;
 				}
 			}
 		}
-	}
-
-	if(ph_buf[0] == 0)
-	{
-		// character name not found
 
 		if(ph_buf[0]== 0)
 		{
-			speak_letter_number = 1;
-			if(!(al_flags & AL_NO_SYMBOL))
-			{
-				if(iswalpha2(letter))
-					Lookup(translator, "_?A", ph_buf);
-
-				if((ph_buf[0]==0) && !iswspace(letter))
-					Lookup(translator, "_??", ph_buf);
+			if(iswalpha(letter))
+				Lookup(tr, "_?A", ph_buf);
 
-				if(ph_buf[0] == 0)
-				{
-					EncodePhonemes("l'et@", ph_buf, NULL);
-				}
-			}
-
-			if(!(control & 4) && (al_flags & AL_NOT_CODE))
-			{
-				// don't speak the character code number, unless we want full details of this character
-				speak_letter_number = 0;
-			}
-
-//			if((ph_alphabet[0] != 0) && speak_letter_number)
-//				ph_buf[0] = 0;  // don't speak "letter" if we speak alphabet name
-
-			if(speak_letter_number)
+			if((ph_buf[0]==0) && !iswspace(letter))
+				Lookup(tr, "_??", ph_buf);
+	
+			if(ph_buf[0] != 0)
 			{
-				if(al_offset == 0x2800)
-				{
-					// braille dots symbol, list the numbered dots
-					p2 = hexbuf;
-					for(ix=0; ix<8; ix++)
-					{
-						if(letter & (1 << ix))
-						{
-							*p2++ = '1'+ix;
-						}
-					}
-					*p2 = 0;
-				}
-				else
-				{
-					// speak the hexadecimal number of the character code
-					sprintf(hexbuf,"%x",letter);
-				}
-
+				// speak the hexadecimal number of the character code
+				sprintf(hexbuf,"%x",letter);
 				pbuf = ph_buf;
 				for(p2 = hexbuf; *p2 != 0; p2++)
 				{
 					pbuf += strlen(pbuf);
 					*pbuf++ = phonPAUSE_VSHORT;
-					LookupLetter(translator, *p2, 0, pbuf, 1);
-					if(((pbuf[0] == 0) || (pbuf[0]==phonSWITCH)) && (*p2 >= 'a'))
-					{
-						// This language has no translation for 'a' to 'f', speak English names using base phonemes
-						EncodePhonemes(hex_letters[*p2 - 'a'], pbuf, NULL);
-					}
+					LookupLetter(tr, *p2, 0, pbuf, 1);
 				}
-				strcat(pbuf, pause_string);
 			}
 		}
 	}
 
 	len = strlen(phonemes);
-
-	if(tr->langopts.accents & 2)  // 'capital' before or after the word ?
-		sprintf(ph_buf2,"%c%s%s%s",0xff,ph_alphabet,ph_buf,capital);
+	if(tr->langopts.accents & 2)
+		sprintf(ph_buf2,"%c%s%s",0xff,ph_buf,capital);
 	else
-		sprintf(ph_buf2,"%c%s%s%s",0xff,ph_alphabet,capital,ph_buf);  // the 0xff marker will be removed or replaced in SetSpellingStress()
+		sprintf(ph_buf2,"%c%s%s",0xff,capital,ph_buf);  // the 0xff marker will be removed or replaced in SetSpellingStress()
 	if((len + strlen(ph_buf2)) < N_WORD_PHONEMES)
 	{
 		strcpy(&phonemes[len],ph_buf2);
@@ -997,25 +714,23 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars)
 	int ix;
 	unsigned int c;
 	int n_stress=0;
-	int prev = 0;
 	int count;
 	unsigned char buf[N_WORD_PHONEMES];
 
 	for(ix=0; (c = phonemes[ix]) != 0; ix++)
 	{
-		if((c == phonSTRESS_P) && (prev != phonSWITCH))
+		if(c == phonSTRESS_P)
 		{
 			n_stress++;
 		}
-		buf[ix] = prev = c;
+		buf[ix] = c;
 	}
 	buf[ix] = 0;
 
 	count = 0;
-	prev = 0;
 	for(ix=0; (c = buf[ix]) != 0; ix++)
 	{
-		if((c == phonSTRESS_P) && (n_chars > 1) && (prev != phonSWITCH))
+		if((c == phonSTRESS_P) && (n_chars > 1))
 		{
 			count++;
 
@@ -1034,7 +749,8 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars)
 				}
 			}
 		}
-		else if(c == 0xff)
+		else
+		if(c == 0xff)
 		{
 			if((control < 2) || (ix==0))
 				continue;   // don't insert pauses
@@ -1045,8 +761,10 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars)
 				c = phonPAUSE_NOLINK;  // pause following a primary stress
 			else
 				c = phonPAUSE_VSHORT;
+//			else
+//				continue;       // remove marker
 		}
-		*phonemes++ = prev = c;
+		*phonemes++ = c;
 	}
 	if(control >= 2)
 		*phonemes++ = phonPAUSE_NOLINK;
@@ -1058,7 +776,6 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars)
 // Numbers
 
 static char ph_ordinal2[12];
-static char ph_ordinal2x[12];
 
 
 static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB *wtab, int roman)
@@ -1081,7 +798,7 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB
 			{
 				// ordinal number is indicated by dot after the number
 				// but not if the next word starts with an upper-case letter
-				// (c2 == 0) is for cases such as, "2.,"
+            // (c2 == 0) is for cases such as, "2.,"
 				ordinal = 2;
 				if(word_end[0] == '.')
 					word_end[0] = ' ';
@@ -1092,11 +809,11 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB
 					nextflags = 0;
 					if(IsAlpha(c2))
 					{
-						nextflags = TranslateWord(tr, &word_end[2], 0, NULL, NULL);
+						nextflags = TranslateWord(tr, &word_end[2], 0, NULL);
 					}
 
-					if((tr->prev_dict_flags[0] & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2)))
-						ordinal = 0;   // TEST  09.02.10
+if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2)))
+	ordinal = 0;   // TEST  09.02.10
 
 					if(nextflags & FLAG_ALT_TRANS)
 						ordinal = 0;
@@ -1106,7 +823,7 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB
 						if(word[-2] == '-')
 							ordinal = 0;   // eg. december 2-5. között
 
-						if(tr->prev_dict_flags[0] & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS))
+						if(tr->prev_dict_flags & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS))
 							ordinal = 0x22;
 					}
 				}
@@ -1155,7 +872,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 
 	static const char *roman_numbers = "ixcmvld";
 	static int roman_values[] = {1,10,100,1000,5,50,500};
-
+ 
 	acc = 0;
 	prev = 0;
 	subtract = 0x7fff;
@@ -1163,12 +880,9 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 	flags[0] = 0;
 	flags[1] = 0;
 
-	if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || IsDigit09(word[-2]))
+	if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || isdigit(word[-2]))
 		return(0);    // not '2xx'
 
-	if(word[1] == ' ')
-		return(0);  // only one letter, don't speak as a Roman Number
-
 	word_start = word;
 	while((c = *word++) != ' ')
 	{
@@ -1197,7 +911,8 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 			subtract = prev;
 			value -= subtract;
 		}
-		else if(value >= subtract)
+		else
+		if(value >= subtract)
 			return(0);
 		else
 			acc += prev;
@@ -1205,9 +920,9 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 		n_digits++;
 	}
 
-	if(IsDigit09(word[0]))
+	if(isdigit(word[0]))
 		return(0);      // eg. 'xx2'
-
+ 
 	acc += prev;
 	if(acc < tr->langopts.min_roman)
 		return(0);
@@ -1225,7 +940,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 		p = &ph_out[strlen(ph_roman)];
 	}
 
-	sprintf(number_chars,"  %d %s    ",acc, tr->langopts.roman_suffix);
+	sprintf(number_chars,"  %d    ",acc);
 
 	if(word[0] == '.')
 	{
@@ -1257,8 +972,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 		}
 	}
 
-	tr->prev_dict_flags[0] = 0;
-	tr->prev_dict_flags[1] = 0;
+	tr->prev_dict_flags = 0;
 	TranslateNumber(tr, &number_chars[2], p, flags, wtab, num_control);
 
 	if(tr->langopts.numbers & NUM_ROMAN_AFTER)
@@ -1271,7 +985,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
 static const char *M_Variant(int value)
 {//====================================
 	// returns M, or perhaps MA or MB for some cases
-
+	
 	int teens = 0;
 
 	if(((value % 100) > 10) && ((value % 100) < 20))
@@ -1360,7 +1074,7 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, int thou
 
 	if(found_value == 0)
 	{
-		if((value % 100) >= 20)
+		if((value % 100) >= 20) 
 		{
 			Lookup(tr, "_0of", ph_of);
 		}
@@ -1423,7 +1137,7 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, int thou
 }  // end f LookupThousands
 
 
-static int LookupNum2(Translator *tr, int value, int thousandplex, const int control, char *ph_out)
+static int LookupNum2(Translator *tr, int value, const int control, char *ph_out)
 {//=============================================================================
 // Lookup a 2 digit number
 // control bit 0: ordinal number
@@ -1432,8 +1146,6 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 // control bit 3: use feminine form of '2' (for thousands
 // control bit 4: speak zero tens
 // control bit 5: variant of ordinal number (lang=hu)
-//         bit 8   followed by decimal fraction
-//         bit 9: use #f form for both tens and units (lang=ml)
 
 	int found;
 	int ix;
@@ -1478,26 +1190,19 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 			// is there a special pronunciation for this 2-digit number
 			if(control & 8)
 			{
-				// is there a feminine or thousands-variant form?
-				sprintf(string,"_%dfx",value);
-				if((found = Lookup(tr, string, ph_digits)) == 0)
-				{
-					sprintf(string,"_%df",value);
-					found = Lookup(tr, string, ph_digits);
-				}
+				// is there a feminine form?
+				sprintf(string,"_%df",value);
+				found = Lookup(tr, string, ph_digits);
 			}
-			else if(is_ordinal)
+			else
+			if(is_ordinal)
 			{
 				strcpy(ph_ordinal, ph_ordinal2);
-
+		
 				if(control & 4)
 				{
 					sprintf(string,"_%d%cx",value,ord_type);  // LANG=hu, special word for 1. 2. when there are no higher digits
-					if((found = Lookup(tr, string, ph_digits)) != 0)
-					{
-						if(ph_ordinal2x[0] != 0)
-							strcpy(ph_ordinal, ph_ordinal2x);  // alternate pronunciation (lang=an)
-					}
+					found = Lookup(tr, string, ph_digits);
 				}
 				if(found == 0)
 				{
@@ -1506,7 +1211,7 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				}
 				found_ordinal = found;
 			}
-
+	
 			if(found == 0)
 			{
 				if(control & 2)
@@ -1522,10 +1227,7 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				else
 				{
 					// followed by hundreds or thousands etc
-					if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
-						sprintf(string, "_%do", value);  // LANG=TA
-					else
-						sprintf(string, "_%da", value);
+					sprintf(string,"_%da",value);
 					found = Lookup(tr, string, ph_digits);
 				}
 
@@ -1543,9 +1245,9 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				}
 			}
 		}
-
+	
 		// no, speak as tens+units
-
+	
 		if((control & 0x10) && (value < 10))
 		{
 			// speak leading zero
@@ -1559,8 +1261,9 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 			}
 			else
 			{
-
-				if(is_ordinal)
+	
+				if((is_ordinal) && 
+					((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)))
 				{
 					sprintf(string,"_%dX%c", tens, ord_type);
 					if(Lookup(tr, string, ph_tens) != 0)
@@ -1576,13 +1279,10 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				}
 				if(found_ordinal == 0)
 				{
-					if(control & 0x200)
-						sprintf(string, "_%dXf", tens);
-					else
-						sprintf(string,"_%dX", tens);
+					sprintf(string,"_%dX", tens);
 					Lookup(tr, string, ph_tens);
 				}
-
+	
 				if((ph_tens[0] == 0) && (tr->langopts.numbers & NUM_VIGESIMAL))
 				{
 					// tens not found,  (for example) 73 is 60+13
@@ -1590,12 +1290,12 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 					sprintf(string,"_%dX", tens & 0xfe);
 					Lookup(tr, string, ph_tens);
 				}
-
+	
 				ph_digits[0] = 0;
 				if(units > 0)
-				{
+				{	
 					found = 0;
-
+	
 					if((control & 2) && (digit_lookup[0] != 0))
 					{
 						// we have an entry for this digit (possibly together with the next word)
@@ -1628,13 +1328,11 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 								sprintf(string,"_%de",units);
 								found = Lookup(tr, string, ph_digits);
 							}
-							else if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0))
+							else
+							if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0))
 							{
 								// followed by hundreds or thousands (or tens)
-								if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
-									sprintf(string, "_%do", units);  // LANG=TA,  only for 100s, 1000s
-								else
-									sprintf(string, "_%da", units);
+								sprintf(string,"_%da",units);
 								found = Lookup(tr, string, ph_digits);
 							}
 						}
@@ -1647,7 +1345,7 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				}
 			}
 		}
-
+	
 		if((is_ordinal) && (found_ordinal == 0) && (ph_ordinal[0] == 0))
 		{
 			if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & NUM_SWAP_TENS)))
@@ -1655,12 +1353,12 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 			if(ph_ordinal[0] == 0)
 				Lookup(tr, "_ord", ph_ordinal);
 		}
-
+	
 		if((tr->langopts.numbers & (NUM_SWAP_TENS | NUM_AND_UNITS)) && (ph_tens[0] != 0) && (ph_digits[0] != 0))
 		{
 			Lookup(tr, "_0and", ph_and);
 
-			if((is_ordinal) && (tr->langopts.numbers2 & NUM2_ORDINAL_NO_AND))
+			if((is_ordinal) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))
 				ph_and[0] = 0;
 
 			if(tr->langopts.numbers & NUM_SWAP_TENS)
@@ -1678,7 +1376,7 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 				{
 					if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS)
 						next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type;
-
+		
 					if((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL))
 						ph_tens[ix] = 0;
 				}
@@ -1687,22 +1385,7 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
 		}
 	}
 
-	if(tr->langopts.numbers & NUM_SINGLE_STRESS_L)
-	{
-		// only one primary stress, on the first part (tens)
-		found = 0;
-		for(ix=0; ix < (signed)strlen(ph_out); ix++)
-		{
-			if(ph_out[ix] == phonSTRESS_P)
-			{
-				if(found)
-					ph_out[ix] = phonSTRESS_3;
-				else
-					found = 1;
-			}
-		}
-	}
-	else if(tr->langopts.numbers & NUM_SINGLE_STRESS)
+	if(tr->langopts.numbers & NUM_SINGLE_STRESS)
 	{
 		// only one primary stress
 		found = 0;
@@ -1727,7 +1410,6 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 //  control  bit 0,  previous thousands
 //           bit 1,  ordinal number
 //           bit 5   variant form of ordinal number
-//           bit 8   followed by decimal fraction
 	int found;
 	int hundreds;
 	int tensunits;
@@ -1737,7 +1419,6 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 	int ordinal;
 	int tplex;
 	int say_zero_hundred=0;
-	int say_one_hundred;
 	char string[12];  // for looking up entries in **_list
 	char buf1[100];
 	char buf2[100];
@@ -1787,7 +1468,8 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 			// speak numbers such as 1984 as years: nineteen-eighty-four
 //			ph_100[0] = 0;   // don't say "hundred", we also need to surpess "and"
 		}
-		else if(hundreds >= 10)
+		else
+		if(hundreds >= 10)
 		{
 			ph_digits[0] = 0;
 
@@ -1806,21 +1488,18 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 				x = 0;
 				if(tr->langopts.numbers2 & (1 << tplex))
 					x = 8;   // use variant (feminine) for before thousands and millions
-				if(tr->translator_name == L('m','l'))
-					x = 0x208;
-				LookupNum2(tr, hundreds/10, thousandplex, x, ph_digits);
+				LookupNum2(tr, hundreds/10, x, ph_digits);
 			}
 
 			if(tr->langopts.numbers2 & 0x200)
-				sprintf(ph_thousands,"%s%c%s%c",ph_10T,phonEND_WORD,ph_digits,phonEND_WORD);  // say "thousands" before its number, not after
+				sprintf(ph_thousands,"%s%s",ph_10T,ph_digits);  // say "thousands" before its number, not after
 			else
-				sprintf(ph_thousands,"%s%c%s%c",ph_digits,phonEND_WORD,ph_10T,phonEND_WORD);
+				sprintf(ph_thousands,"%s%s",ph_digits,ph_10T);
 
 			hundreds %= 10;
 			if((hundreds == 0) && (say_zero_hundred == 0))
 				ph_100[0] = 0;
 			suppress_null = 1;
-			control |= 1;
 		}
 
 		ph_digits[0] = 0;
@@ -1836,7 +1515,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 
 			found = 0;
 			if((ordinal)
-					&& ((tensunits == 0) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)))
+				&& ((tensunits == 0) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)))
 			{
 				// ordinal number
 				sprintf(string, "_%dCo", hundreds);
@@ -1856,42 +1535,28 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 			}
 			else
 			{
-				if((hundreds==1) && (tr->langopts.numbers2 & NUM2_OMIT_1_HUNDRED_ONLY) && ((control & 1)==0))
+				if((!found) && (tensunits == 0))
 				{
-					// only look for special 100 if there are previous thousands
+				// is there a special pronunciation for exactly n00 ?
+					sprintf(string,"_%dC0",hundreds);
+					found = Lookup(tr, string, ph_digits);
 				}
-				else
+	
+				if(!found)
 				{
-					if((!found) && (tensunits == 0))
-					{
-						// is there a special pronunciation for exactly n00 ?
-						sprintf(string,"_%dC0",hundreds);
-						found = Lookup(tr, string, ph_digits);
-					}
-
-					if(!found)
-					{
-						sprintf(string,"_%dC",hundreds);
-						found = Lookup(tr, string, ph_digits);  // is there a specific pronunciation for n-hundred ?
-					}
+					sprintf(string,"_%dC",hundreds);
+					found = Lookup(tr, string, ph_digits);  // is there a specific pronunciation for n-hundred ?
 				}
-
+	
 				if(found)
 				{
 					ph_100[0] = 0;
 				}
 				else
 				{
-					say_one_hundred = 1;
-					if(hundreds == 1)
-					{
-						if((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) != 0)
-							say_one_hundred = 0;
-					}
-
-					if(say_one_hundred != 0)
+					if((hundreds > 1) || ((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) == 0))
 					{
-						LookupNum2(tr, hundreds, thousandplex, 0, ph_digits);
+						LookupNum2(tr, hundreds, 0, ph_digits);
 					}
 				}
 			}
@@ -1945,12 +1610,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 				x = 8;   // use variant (feminine) for before thousands and millions
 		}
 
-		if((tr->translator_name == L('m','l')) && (thousandplex == 1))
-		{
-			x |= 0x208;  // use #f form for both tens and units
-		}
-
-		if(LookupNum2(tr, tensunits, thousandplex, x | (control & 0x100), buf2) != 0)
+		if(LookupNum2(tr, tensunits, x, buf2) != 0)
 		{
 			if(tr->langopts.numbers & NUM_SINGLE_AND)
 				ph_hundred_and[0] = 0;  // don't put 'and' after 'hundred' if there's 'and' between tens and units
@@ -1967,23 +1627,23 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
 		}
 	}
 
-	sprintf(ph_out,"%s%s%c%s",buf1,ph_hundred_and,phonEND_WORD,buf2);
+	sprintf(ph_out,"%s%s%s",buf1,ph_hundred_and,buf2);
 
 	return(0);
 }  // end of LookupNum3
 
 
-static bool CheckThousandsGroup(char *word, int group_len)
+bool CheckThousandsGroup(char *word, int group_len)
 {//================================================
 // Is this a group of 3 digits which looks like a thousands group?
 	int ix;
 
-	if(IsDigit09(word[group_len]) || IsDigit09(-1))
+	if(isdigit(word[group_len]) || isdigit(-1))
 		return(false);
 
 	for(ix=0; ix < group_len; ix++)
 	{
-		if(!IsDigit09(word[ix]))
+		if(!isdigit(word[ix]))
 			return(false);
 	}
 	return(true);
@@ -2008,6 +1668,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	int thousands_inc = 0;
 	int prev_thousands = 0;
 	int ordinal = 0;
+	int dot_ordinal;
 	int this_value;
 	int decimal_count;
 	int max_decimal_count;
@@ -2015,7 +1676,6 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	int suffix_ix;
 	int skipwords = 0;
 	int group_len;
-	int len;
 	char *p;
 	char string[32];  // for looking up entries in **_list
 	char buf1[100];
@@ -2034,7 +1694,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	digit_lookup = buf_digit_lookup;
 	number_control = control;
 
-	for(ix=0; IsDigit09(word[ix]); ix++) ;
+	for(ix=0; isdigit(word[ix]); ix++) ;
 	n_digits = ix;
 	value = this_value = atoi(word);
 
@@ -2043,14 +1703,15 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 		group_len = 4;
 
 	// is there a previous thousands part (as a previous "word") ?
-	if((n_digits == group_len) && (word[-2] == tr->langopts.thousands_sep) && IsDigit09(word[-3]))
+	if((n_digits == group_len) && (word[-2] == tr->langopts.thousands_sep) && isdigit(word[-3]))
 	{
 		prev_thousands = 1;
 	}
-	else if((tr->langopts.thousands_sep == ' ') || (tr->langopts.numbers & NUM_ALLOW_SPACE))
+	else
+	if((tr->langopts.thousands_sep == ' ') || (tr->langopts.numbers & NUM_ALLOW_SPACE))
 	{
 		// thousands groups can be separated by spaces
-		if((n_digits == 3) && !(wtab->flags & FLAG_MULTIPLE_SPACES) && IsDigit09(word[-2]))
+		if((n_digits == 3) && !(wtab->flags & FLAG_MULTIPLE_SPACES) && isdigit(word[-2]))
 		{
 			prev_thousands = 1;
 		}
@@ -2067,12 +1728,10 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	{
 		// don't check for ordinal if the number has a leading zero
 		if((ordinal = CheckDotOrdinal(tr, word, &word[ix], wtab, 0)) != 0)
-		{
-//			dot_ordinal = 1;
-		}
+			dot_ordinal = 1;
 	}
 
-	if((word[ix] == '.') && !IsDigit09(word[ix+1]) && !IsDigit09(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE))
+	if((word[ix] == '.') && !isdigit(word[ix+1]) && !isdigit(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE))
 	{
 		// remove dot unless followed by another number
 		word[ix] = 0;
@@ -2101,7 +1760,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 			{
 				ordinal = 2;
 			}
-			else if(!IsDigit09(suffix[0]))  // not _#9 (tab)
+			else
+			if(!isdigit(suffix[0]))   // not _#9 (tab)
 			{
 				sprintf(string,"_#%s",suffix);
 				if(Lookup(tr, string, ph_ordinal2))
@@ -2109,9 +1769,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 					// this is an ordinal suffix
 					ordinal = 2;
 					flags[0] |= FLAG_SKIPWORDS;
-					skipwords = 1;
-					sprintf(string,"_x#%s",suffix);
-					Lookup(tr, string, ph_ordinal2x);  // is there an alternate pronunciation?
+					skipwords = 1; 
 				}
 			}
 		}
@@ -2126,7 +1784,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 
 	if((word[0] == '0') && (prev_thousands == 0) && (word[1] != ' ') && (word[1] != tr->langopts.decimal_sep))
 	{
-		if((n_digits == 2) && (word[3] == ':') && IsDigit09(word[5]) && isspace(word[7]))
+		if((n_digits == 2) && (word[3] == ':') && isdigit(word[5]) && isspace(word[7]))
 		{
 			// looks like a time 02:30, omit the leading zero
 		}
@@ -2148,7 +1806,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 
 	if((tr->langopts.numbers & NUM_ALLOW_SPACE) && (word[n_digits] == ' '))
 		thousands_inc = 1;
-	else if(word[n_digits] == tr->langopts.thousands_sep)
+	else
+	if(word[n_digits] == tr->langopts.thousands_sep)
 		thousands_inc = 2;
 
 	suffix_ix = n_digits+2;
@@ -2195,13 +1854,14 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 		}
 	}
 
-	if((word[n_digits] == tr->langopts.decimal_sep) && IsDigit09(word[n_digits+1]))
+	if((word[n_digits] == tr->langopts.decimal_sep) && isdigit(word[n_digits+1]))
 	{
 		// this "word" ends with a decimal point
 		Lookup(tr, "_dpt", ph_append);
-		decimal_point = 0x100;
+		decimal_point = 1;
 	}
-	else if(suppress_null == 0)
+	else
+	if(suppress_null == 0)
 	{
 		if(thousands_inc > 0)
 		{
@@ -2219,16 +1879,16 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	}
 	else
 
-		if(speak_missing_thousands == 1)
+	if(speak_missing_thousands == 1)
+	{
+		// speak this thousandplex if there was no word for the previous thousandplex
+		sprintf(string,"_0M%d",thousandplex+1);
+		if(Lookup(tr, string, buf1)==0)
 		{
-			// speak this thousandplex if there was no word for the previous thousandplex
-			sprintf(string,"_0M%d",thousandplex+1);
-			if(Lookup(tr, string, buf1)==0)
-			{
-				sprintf(string,"_0M%d",thousandplex);
-				Lookup(tr, string, ph_append);
-			}
+			sprintf(string,"_0M%d",thousandplex);
+			Lookup(tr, string, ph_append);
 		}
+	}
 
 	if((ph_append[0] == 0) && (word[n_digits] == '.') && (thousandplex == 0))
 	{
@@ -2240,8 +1900,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 		char *p2;
 		// look for combinations of the number with the next word
 		p = word;
-		while(IsDigit09(p[1])) p++;  // just use the last digit
-		if(IsDigit09(p[-1]))
+		while(isdigit(p[1])) p++;  // just use the last digit
+		if(isdigit(p[-1]))
 		{
 			p2 = p - 1;
 			if(LookupDictList(tr, &p2, buf_digit_lookup, flags, FLAG_SUFX, wtab))  // lookup 2 digits
@@ -2253,7 +1913,6 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 //		if((buf_digit_lookup[0] == 0) && (*p != '0') && (dot_ordinal==0))
 		if((buf_digit_lookup[0] == 0) && (*p != '0'))
 		{
-			// LANG=hu ?
 			// not found, lookup only the last digit (?? but not if dot-ordinal has been found)
 			if(LookupDictList(tr, &p, buf_digit_lookup, flags, FLAG_SUFX, wtab))  // don't match '0', or entries with $only
 			{
@@ -2261,42 +1920,28 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 			}
 		}
 
-		if(prev_thousands == 0)
+		if((tr->langopts.numbers2 & NUM2_PERCENT_BEFORE) && (prev_thousands == 0))
 		{
-			if((decimal_point == 0) && (ordinal == 0))
+			// LANG=si, say "percent" before the number
+			p2 = word;
+			while((*p2 != ' ') && (*p2 != 0))
 			{
-				// Look for special pronunciation for this number in isolation (LANG=kl)
-				sprintf(string, "_%dn", value);
-				if(Lookup(tr, string, ph_out))
-				{
-					return(1);
-				}
+				p2++;
 			}
-
-			if(tr->langopts.numbers2 & NUM2_PERCENT_BEFORE)
+			if(p2[1] == '%')
 			{
-				// LANG=si, say "percent" before the number
-				p2 = word;
-				while((*p2 != ' ') && (*p2 != 0))
-				{
-					p2++;
-				}
-				if(p2[1] == '%')
-				{
-					Lookup(tr, "%", ph_out);
-					ph_out += strlen(ph_out);
-					p2[1] = ' ';
-				}
+				Lookup(tr, "%", ph_out);
+				ph_out += strlen(ph_out);
+				p2[1] = ' ';
 			}
 		}
-
 	}
 
-	LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal | decimal_point);
+	LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal);
 	if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200))
-		sprintf(ph_out,"%s%s%c%s%s",ph_zeros,ph_append,phonEND_WORD,ph_buf2,ph_buf);  // say "thousands" before its number
+		sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_append,ph_buf2,ph_buf);  // say "thousands" before its number
 	else
-		sprintf(ph_out,"%s%s%s%c%s",ph_zeros,ph_buf2,ph_buf,phonEND_WORD,ph_append);
+		sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_buf2,ph_buf,ph_append);
 
 
 	while(decimal_point)
@@ -2304,7 +1949,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 		n_digits++;
 
 		decimal_count = 0;
-		while(IsDigit09(word[n_digits+decimal_count]))
+		while(isdigit(word[n_digits+decimal_count]))
 			decimal_count++;
 
 //		if(decimal_count > 1)
@@ -2323,7 +1968,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 					decimal_count--;
 					n_digits++;
 				}
-				if((decimal_count <= max_decimal_count) && IsDigit09(word[n_digits]))
+				if((decimal_count <= max_decimal_count) && isdigit(word[n_digits]))
 				{
 					LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0);
 					strcat(ph_out,buf1);
@@ -2355,39 +2000,27 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 				// Romanian decimal fractions
 				if((decimal_count <= 4) && (word[n_digits] != '0'))
 				{
-					LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0);
-					strcat(ph_out,buf1);
-					n_digits += decimal_count;
+						LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0);
+						strcat(ph_out,buf1);
+						n_digits += decimal_count;
 				}
 				break;
-
-			case NUM_DFRACTION_7:
-				// alternative form of decimal fraction digits, except the final digit
-				while(decimal_count-- > 1)
-				{
-					sprintf(string,"_%cd", word[n_digits]);
-					if(Lookup(tr, string, buf1) == 0)
-						break;
-					n_digits++;
-					strcat(ph_out, buf1);
-				}
 			}
 		}
 
-		while(IsDigit09(c = word[n_digits]) && (strlen(ph_out) < (N_WORD_PHONEMES - 10)))
+		while(isdigit(c = word[n_digits]) && (strlen(ph_out) < (N_WORD_PHONEMES - 10)))
 		{
 			// speak any remaining decimal fraction digits individually
 			value = word[n_digits++] - '0';
-			LookupNum2(tr, value, 0, 2, buf1);
-			len = strlen(ph_out);
-			sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1);
+			LookupNum2(tr, value, 2, buf1);
+			strcat(ph_out,buf1);
 		}
 
 		// something after the decimal part ?
 		if(Lookup(tr, "_dpt2", buf1))
 			strcat(ph_out,buf1);
 
-		if((c == tr->langopts.decimal_sep) && IsDigit09(word[n_digits+1]))
+		if((c == tr->langopts.decimal_sep) && isdigit(word[n_digits+1]))
 		{
 			Lookup(tr, "_dpt", buf1);
 			strcat(ph_out,buf1);
@@ -2400,15 +2033,14 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
 	if((ph_out[0] != 0) && (ph_out[0] != phonSWITCH))
 	{
 		int next_char;
-		// char *p; djmw 
+		char *p;
 		p = &word[n_digits+1];
 
 		p += utf8_in(&next_char,p);
 		if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' '))
 			utf8_in(&next_char,p);
 
-		if(!iswalpha2(next_char) && (thousands_exact==0))
-//		if(!iswalpha2(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
+		if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
 			strcat(ph_out,str_pause);  // don't add pause for 100s,  6th, etc.
 	}
 
diff --git a/external/espeak/phoneme.h b/external/espeak/phoneme.h
old mode 100755
new mode 100644
index 9a2e139..cf8f98c
--- a/external/espeak/phoneme.h
+++ b/external/espeak/phoneme.h
@@ -49,7 +49,7 @@
 #define phSINGLE_INSTN  0x1000    // this phoneme has a single instruction program, with an implicit Return
 #define phBRKAFTER 0x4000  // [*] add a post-pause
 
-#define phNONSYLLABIC  0x100000   // don't count this vowel as a syllable when finding the stress position
+#define phNONSYLLABIC  0x100000   // don't count this vowel as a syllable when finding the stress position 
 #define phLONG         0x200000
 #define phLENGTHENSTOP 0x400000  // make the pre-pause slightly longer
 #define phRHOTIC       0x800000  // bit 23
@@ -113,7 +113,7 @@ typedef struct {
 	unsigned char  end_type;
 	unsigned char  std_length;   // for vowels, in mS/2;  for phSTRESS phonemes, this is the stress/tone type
 	unsigned char  length_mod;   // a length_mod group number, used to access length_mod_tab
-
+	
 } PHONEME_TAB;
 
 
@@ -155,13 +155,13 @@ typedef struct {
 
 
 
-#define PH(c1,c2)  (c2<<8)+c1          // combine two characters into an integer for phoneme name
+#define PH(c1,c2)  (c2<<8)+c1          // combine two characters into an integer for phoneme name 
 #define PH3(c1,c2,c3) (c3<<16)+(c2<<8)+c1
 #define PhonemeCode2(c1,c2)  PhonemeCode((c2<<8)+c1)
 int LookupPhonemeString(const char *string);
 int PhonemeCode(unsigned int mnem);
 
-const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme);
+const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phoneme);
 void DecodePhonemes(const char *inptr, char *outptr);
 
 extern const char *WordToString(unsigned int word);
diff --git a/external/espeak/phonemelist.cpp b/external/espeak/phonemelist.cpp
old mode 100755
new mode 100644
index 07d6fd3..0449a11
--- a/external/espeak/phonemelist.cpp
+++ b/external/espeak/phonemelist.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -47,6 +47,7 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out)
 	int replace_flags;
 	int n_plist_out = 0;
 	int word_end;
+	int switched_language = 0;
 	PHONEME_LIST2 *plist2;
 	PHONEME_TAB *next=NULL;
 
@@ -54,8 +55,11 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out)
 	{
 		plist2 = &ph_list2[ix];
 
+		if(plist2->phcode == phonSWITCH)
+			switched_language ^= 1;
+
 		// don't do any substitution if the language has been temporarily changed
-		if(!(plist2->synthflags & SFLAG_SWITCHED_LANG))
+		if(switched_language == 0)
 		{
 			if(ix < (n_ph_list2 -1))
 				next = phoneme_tab[ph_list2[ix+1].phcode];
@@ -77,9 +81,6 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out)
 					if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3))
 						continue;     // this replacement doesn't occur in stressed syllables
 
-					if((replace_flags & 4) && (plist2->sourceix == 0))
-						continue;     // this replacement only occurs at the start of a word
-
 					// substitute the replacement phoneme
 					plist2->phcode = replace_phonemes[k].new_ph;
 					if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED))
@@ -116,16 +117,12 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 	PHONEME_TAB *next, *next2;
 	int unstress_count = 0;
 	int word_stress = 0;
-	int current_phoneme_tab;
+	int switched_language = 0;
 	int max_stress;
 	int voicing;
 	int regression;
 	int end_sourceix;
 	int alternative;
-	int delete_count;
-	int word_start;
-	int inserted;
-	int deleted;
 	PHONEME_DATA phdata;
 
 	int n_ph_list3;
@@ -136,7 +133,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 	PHONEME_LIST2 *plist2;
 	WORD_PH_DATA worddata;
 
-	memset(&worddata, 0, sizeof(worddata));
+    memset(&worddata, 0, sizeof(worddata));
 	plist2 = ph_list2;
 	phlist = phoneme_list;
 	end_sourceix = plist2[n_ph_list2-1].sourceix;
@@ -145,7 +142,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 	max_stress = 0;
 	for(j = n_ph_list2-3; j>=0; j--)
 	{
-		// start with the last phoneme (before the terminating pauses) and move backwards
+		// start with the last phoneme (before the terminating pauses) and move forwards
 		if((plist2[j].stresslevel & 0x7f) > max_stress)
 			max_stress = plist2[j].stresslevel & 0x7f;
 		if(plist2[j].sourceix != 0)
@@ -169,42 +166,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 		}
 	}
 
-	// look for switch of phoneme tables
-	delete_count = 0;
-	current_phoneme_tab = tr->phoneme_tab_ix;
-	for(j = 0; j < n_ph_list2; j++)
-	{
-		if(current_phoneme_tab != tr->phoneme_tab_ix)
-		{
-			plist2[j].synthflags |= SFLAG_SWITCHED_LANG;
-		}
-
-		if(delete_count > 0)
-		{
-			memcpy(&plist2[j-delete_count], &plist2[j], sizeof(plist2[0]));
-		}
-
-		if(plist2[j].phcode == phonSWITCH)
-		{
-			if((!(plist2[j].synthflags & SFLAG_EMBEDDED)) && (
-				(plist2[j].tone_ph == current_phoneme_tab) ||
-			    (plist2[j+1].phcode == phonSWITCH) ||
-				((plist2[j+1].phcode == phonPAUSE) && (plist2[j+2].phcode == phonSWITCH))
-				))
-			{
-				// delete this phonSWITCH if it's switching to the current phoneme table, or
-				// delete this phonSWITCH if its followed by another phonSWITCH
-				delete_count++;
-			}
-			else
-			{
-				current_phoneme_tab = plist2[j].tone_ph;
-			}
-		}
-
-	}
-	n_ph_list2 -= delete_count;
-
 	if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0)
 	{
 		// set consonant clusters to all voiced or all unvoiced
@@ -219,14 +180,10 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 			if(ph == NULL)
 				continue;
 
-			if(plist2[j].synthflags & SFLAG_SWITCHED_LANG)
-			{
-				stop_propagation = 0;
-				voicing = 0;
-				if(regression & 0x100)
-					voicing = 1;   // word-end devoicing
+			if(ph->code == phonSWITCH)
+				switched_language ^= 1;
+			if(switched_language)
 				continue;
-			}
 
 			type = ph->type;
 
@@ -247,18 +204,21 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 				{
 					voicing = 1;
 				}
-				else if((voicing==2) && (ph->end_type != 0)) // use end_type field for voicing_switch for consonants
+				else
+				if((voicing==2) && (ph->end_type != 0))  // use end_type field for voicing_switch for consonants
 				{
 					plist2[j].phcode = ph->end_type;  // change to voiced equivalent
 				}
 			}
-			else if((type==phVSTOP) || type==(phVFRICATIVE))
+			else
+			if((type==phVSTOP) || type==(phVFRICATIVE))
 			{
 				if((voicing==0) && (regression & 0xf))
 				{
 					voicing = 2;
 				}
-				else if((voicing==1) && (ph->end_type != 0))
+				else
+				if((voicing==1) && (ph->end_type != 0))
 				{
 					plist2[j].phcode = ph->end_type;  // change to unvoiced equivalent
 				}
@@ -337,52 +297,35 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 	// transfer all the phonemes of the clause into phoneme_list
 	ph = phoneme_tab[phonPAUSE];
 	ph_list3[0].ph = ph;
-	word_start = 1;
+
+	switched_language = 0;
 
 	for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++)
 	{
 		plist3 = &ph_list3[j];
 
-		inserted = 0;
-		deleted = 0;
 		if(insert_ph != 0)
 		{
 			// we have a (linking) phoneme which we need to insert here
 			next = phoneme_tab[plist3->phcode];      // this phoneme, i.e. after the insert
 
 			// re-use the previous entry for the inserted phoneme.
-			// That's OK because we don't look backwards from plist3   *** but CountVowelPosition() and isAfterStress does !!!
+			// That's OK because we don't look backwards from plist3   *** but CountVowelPosiion() and isAfterStress does !!!
 			j--;
 			plist3 = plist3_inserted = &ph_list3[j];
 			if(j > 0)
 			{
-				// move all previous phonemes in the word back one place
-				int k;
-				if(word_start > 0)
-				{
-					k = word_start;
-					word_start--;
-				}
-				else
-				{
-					k = 2;   // No more space, don't loose the start of word mark at ph_list2[word_start]
-				}
-				for(; k<=j; k++)
-					memcpy(&ph_list3[k-1], &ph_list3[k], sizeof(*plist3));
+				memcpy(&plist3[-1], &plist3[0], sizeof(*plist3));
 			}
 			memset(&plist3[0], 0, sizeof(*plist3));
 			plist3->phcode = insert_ph;
 			ph = phoneme_tab[insert_ph];
 			plist3->ph = ph;
 			insert_ph = 0;
-			inserted = 1;    // don't insert the same phoneme repeatedly
 		}
 		else
 		{
 			// otherwise get the next phoneme from the list
-			if(plist3->sourceix != 0)
-				word_start = j;
-
 			ph = phoneme_tab[plist3->phcode];
 			plist3[0].ph = ph;
 
@@ -390,6 +333,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 			{
 				// change phoneme table
 				SelectPhonemeTable(plist3->tone_ph);
+				switched_language ^= SFLAG_SWITCHED_LANG;
 			}
 			next = phoneme_tab[plist3[1].phcode];      // the phoneme after this one
 			plist3[1].ph = next;
@@ -399,15 +343,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 
 		InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata);
 
-		if((alternative = phdata.pd_param[pd_CHANGE_NEXTPHONEME]) > 0)
-		{
-			ph_list3[j+1].ph = phoneme_tab[alternative];
-			ph_list3[j+1].phcode = alternative;
-			ph_list3[j+1].type = phoneme_tab[alternative]->type;
-			next = phoneme_tab[alternative];
-		}
-
-		if(((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) && (inserted == 0))
+		if((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0)
 		{
 			// PROBLEM: if we insert a phoneme before a vowel then we loose the stress.
 			PHONEME_TAB *ph2;
@@ -441,27 +377,23 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 			plist3->phcode = alternative;
 
 			if(alternative == 1)
+				continue;    // NULL phoneme, discard
+
+			if(ph->type == phVOWEL)
 			{
-				deleted = 1;   // NULL phoneme, discard
+				plist3->synthflags |= SFLAG_SYLLABLE;
+				if(ph2->type != phVOWEL)
+					plist3->stresslevel = 0;   // change from non-vowel to vowel, make sure it's unstressed
 			}
 			else
-			{
-				if(ph->type == phVOWEL)
-				{
-					plist3->synthflags |= SFLAG_SYLLABLE;
-					if(ph2->type != phVOWEL)
-						plist3->stresslevel = 0;   // change from non-vowel to vowel, make sure it's unstressed
-				}
-				else
-					plist3->synthflags &= ~SFLAG_SYLLABLE;
+				plist3->synthflags &= ~SFLAG_SYLLABLE;
 
-				// re-interpret the changed phoneme
-				// But it doesn't obey a second ChangePhoneme()
-				InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata);
-			}
+			// re-interpret the changed phoneme
+			// But it doesn't obey a second ChangePhoneme()
+			InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata);
 		}
 
-		if((ph->type == phVOWEL) && (deleted == 0))
+		if(ph->type == phVOWEL)
 		{
 			PHONEME_LIST *p;
 
@@ -496,7 +428,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 					{
 						// in a sequence of unstressed syllables, reduce alternate syllables to 'diminished'
 						// stress.  But not for the last phoneme of a stressed word
-						if((tr->langopts.stress_flags & S_NO_DIM) || ((word_stress > 3) && ((plist3+1)->sourceix!=0)))
+						if((tr->langopts.stress_flags & 0x2) || ((word_stress > 3) && ((plist3+1)->sourceix!=0)))
 						{
 							// An unstressed final vowel of a stressed word
 							unstress_count=1;    // try again for next syllable
@@ -517,10 +449,9 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 		if((plist3+1)->synthflags & SFLAG_LENGTHEN)
 		{
 			static char types_double[] = {phFRICATIVE,phVFRICATIVE,phNASAL,phLIQUID,0};
-			if((j > 0) && (strchr(types_double,next->type)))
+			if(strchr(types_double,next->type))
 			{
 				// lengthen this consonant by doubling it
-				// BUT, can't insert a phoneme at position plist3[0] because it crashes PrevPh()
 				insert_ph = next->code;
 				(plist3+1)->synthflags ^= SFLAG_LENGTHEN;
 			}
@@ -567,7 +498,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 				}
 			}
 
-			if((plist3 != plist3_inserted) && (ix > 0))
+			if(plist3 != plist3_inserted)
 			{
 				if((x = (tr->langopts.word_gap & 0x7)) != 0)
 				{
@@ -600,70 +531,67 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
 			// not yet implemented
 		}
 
-		if(deleted == 0)
+		phlist[ix].ph = ph;
+		phlist[ix].type = ph->type;
+		phlist[ix].env = PITCHfall;          // default, can be changed in the "intonation" module
+		phlist[ix].synthflags = plist3->synthflags | switched_language;
+		phlist[ix].stresslevel = plist3->stresslevel & 0xf;
+		phlist[ix].wordstress = plist3->wordstress;
+		phlist[ix].tone_ph = plist3->tone_ph;
+		phlist[ix].sourceix = 0;
+		phlist[ix].phcode = ph->code;
+
+		if(plist3->sourceix != 0)
 		{
-			phlist[ix].ph = ph;
-			phlist[ix].type = ph->type;
-			phlist[ix].env = PITCHfall;          // default, can be changed in the "intonation" module
-			phlist[ix].synthflags = plist3->synthflags;
-			phlist[ix].stresslevel = plist3->stresslevel & 0xf;
-			phlist[ix].wordstress = plist3->wordstress;
-			phlist[ix].tone_ph = plist3->tone_ph;
-			phlist[ix].sourceix = 0;
-			phlist[ix].phcode = ph->code;
-
-			if(plist3->sourceix != 0)
-			{
-				phlist[ix].sourceix = plist3->sourceix;
-				phlist[ix].newword = 1;     // this phoneme is the start of a word
+			phlist[ix].sourceix = plist3->sourceix;
+			phlist[ix].newword = 1;     // this phoneme is the start of a word
 
-				if(start_sentence)
-				{
-					phlist[ix].newword = 5;  // start of sentence + start of word
-					start_sentence = 0;
-				}
-			}
-			else
+			if(start_sentence)
 			{
-				phlist[ix].newword = 0;
-			}
-
-	//		phlist[ix].length = ph->std_length;
-			phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2;
-			if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0) && (plist3[1].sourceix != 0))
-			{
-				phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT];
-				phlist[ix].length = option_wordgap*14;   // 10mS per unit at the default speed
+				phlist[ix].newword = 5;  // start of sentence + start of word
+				start_sentence = 0;
 			}
+		}
+		else
+		{
+			phlist[ix].newword = 0;
+		}
 
-			if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE))
-			{
-				phlist[ix].length = 128;  // length_mod
-				phlist[ix].env = PITCHfall;
-			}
+//		phlist[ix].length = ph->std_length;
+		phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2;
+		if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0))
+		{
+			phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT];
+			phlist[ix].length = option_wordgap*14;   // 10mS per unit at the default speed
+		}
 
-			phlist[ix].prepause = 0;
-			phlist[ix].amp = 20;          // default, will be changed later
-			phlist[ix].pitch1 = 255;
-			phlist[ix].pitch2 = 255;
-			ix++;
+		if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE)
+		{
+			phlist[ix].length = 128;  // length_mod
+			phlist[ix].env = PITCHfall;
 		}
+
+		phlist[ix].prepause = 0;
+		phlist[ix].amp = 20;          // default, will be changed later
+		phlist[ix].pitch1 = 255;
+		phlist[ix].pitch2 = 255;
+		ix++;
 	}
 	phlist[ix].newword = 2;     // end of clause
 
 	phlist[ix].phcode = phonPAUSE;
-	phlist[ix].type = phPAUSE;  // terminate with 2 Pause phonemes
+   phlist[ix].type = phPAUSE;  // terminate with 2 Pause phonemes
 	phlist[ix].length = post_pause;  // length of the pause, depends on the punctuation
 	phlist[ix].sourceix = end_sourceix;
 	phlist[ix].synthflags = 0;
-	phlist[ix++].ph = phoneme_tab[phonPAUSE];
+   phlist[ix++].ph = phoneme_tab[phonPAUSE];
 
 	phlist[ix].phcode = phonPAUSE;
-	phlist[ix].type = phPAUSE;
+   phlist[ix].type = phPAUSE;
 	phlist[ix].length = 0;
 	phlist[ix].sourceix=0;
 	phlist[ix].synthflags = 0;
-	phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT];
+   phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT];
 
 	n_phoneme_list = ix;
 }  // end of MakePhonemeList
diff --git a/external/espeak/readclause.cpp b/external/espeak/readclause.cpp
old mode 100755
new mode 100644
index 376aee8..c1be8a0
--- a/external/espeak/readclause.cpp
+++ b/external/espeak/readclause.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -58,7 +58,7 @@ static const char *ungot_word = NULL;
 static int end_of_input;
 
 static int ignore_text=0;   // set during <sub> ... </sub>  to ignore text which has been replaced by an alias
-static int audio_text=0;    // set during <audio> ... </audio>
+static int audio_text=0;    // set during <audio> ... </audio> 
 static int clear_skipping_text = 0;  // next clause should clear the skipping_text flag
 int count_characters = 0;
 static int sayas_mode;
@@ -71,8 +71,6 @@ static int ssml_ignore_l_angle = 0;
 
 // punctuations symbols that can end a clause
 static const unsigned short punct_chars[] = {',','.','?','!',':',';',
-  0x00a1,  // inverted exclamation
-  0x00bf,  // inverted question
   0x2013,  // en-dash
   0x2014,  // em-dash
   0x2026,  // elipsis
@@ -87,12 +85,9 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';',
   0x055e,  // Armenian question
   0x055b,  // Armenian emphasis mark
 
-  0x060c,  // Arabic ,
-  0x061b,  // Arabic ;
+  0x0b1b,  // Arabic ;
   0x061f,  // Arabic ?
-  0x06d4,  // Arabic .
 
-  0x0df4,  // Singhalese Kunddaliya
   0x0f0d,  // Tibet Shad
   0x0f0e,
 
@@ -114,7 +109,7 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';',
   0xff1a,  // fullwidth colon
   0xff1b,  // fullwidth semicolon
   0xff1f,  // fullwidth question mark
-
+  
   0};
 
 
@@ -122,8 +117,6 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';',
 // bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket
 static const unsigned int punct_attributes [] = { 0,
   CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON,
-  CLAUSE_SEMICOLON | 0x8000,      // inverted exclamation
-  CLAUSE_SEMICOLON | 0x8000,      // inverted question
   CLAUSE_SEMICOLON,  // en-dash
   CLAUSE_SEMICOLON,  // em-dash
   CLAUSE_SEMICOLON | PUNCT_SAY_NAME | 0x8000,      // elipsis
@@ -138,12 +131,9 @@ static const unsigned int punct_attributes [] = { 0,
   CLAUSE_QUESTION | PUNCT_IN_WORD,  // Armenian question
   CLAUSE_PERIOD | PUNCT_IN_WORD,  // Armenian emphasis mark
 
-  CLAUSE_COMMA,      // Arabic ,
   CLAUSE_SEMICOLON,  // Arabic ;
   CLAUSE_QUESTION,   // Arabic question mark
-  CLAUSE_PERIOD,     // Arabic full stop
 
-  CLAUSE_PERIOD+0x8000,     // Singhalese period
   CLAUSE_PERIOD+0x8000,     // Tibet period
   CLAUSE_PARAGRAPH,
 
@@ -215,91 +205,50 @@ const int param_defaults[N_SPEECH_PARAM] = {
    0,     // voice type
 };
 
+#ifdef NEED_WCHAR_FUNCTIONS
 
-// additional Latin characters beyond the ascii character set
-#define MAX_WALPHA  0x24f
-// indexed by character - 0x80
-// 0=not alphabetic, 0xff=lower case, 0xfe=no case, 0xfd=use wchar_tolower
+// additional Latin characters beyond the Latin1 character set
+#define MAX_WALPHA  0x233
+// indexed by character - 0x100
+// 0=not alphabetic, 0xff=lower case, 0xfe=special case
 //   other=value to add to upper case to convert to lower case
-static unsigned char walpha_tab[MAX_WALPHA-0x7f] = {
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, // 080
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, // 090
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 0xfe,    0,    0,    0,    0,    0, // 0a0
-    0,    0,    0,    0,    0, 0xff,    0,    0,    0,    0, 0xfe,    0,    0,    0,    0,    0, // 0b0
-   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32, // 0c0
-   32,   32,   32,   32,   32,   32,   32,    0,   32,   32,   32,   32,   32,   32,   32, 0xff, // 0d0
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0e0
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,    0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0f0
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 100
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 110
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 120
- 0xfd, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, 0xfe,    1, 0xff,    1, 0xff,    1, 0xff,    1, // 130
- 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, 0xfe,    1, 0xff,    1, 0xff,    1, 0xff, // 140
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 150
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 160
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, 0xfd,    1, 0xff,    1, 0xff,    1, 0xff, 0xff, // 170
- 0xff,  210,    1, 0xff,    1, 0xff,  206,    1, 0xff,  205,  205,    1, 0xff, 0xfe,   79,  202, // 180
-  203,    1, 0xff,  205,  207, 0xff,  211,  209,    1, 0xff, 0xff, 0xfe,  211,  213, 0xff,  214, // 190
-    1, 0xff,    1, 0xff,    1, 0xff,  218,    1, 0xff,  218, 0xfe, 0xfe,    1, 0xff,  218,    1, // 1a0
- 0xff,  217,  217,    1, 0xff,    1, 0xff,  219,    1, 0xff, 0xfe, 0xfe,    1, 0xff, 0xfe, 0xff, // 1b0
- 0xfe, 0xfe, 0xfe, 0xfe,    2, 0xff, 0xff,    2, 0xff, 0xff,    2, 0xff, 0xff,    1, 0xff,    1, // 1c0
- 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, 0xff,    1, 0xff, // 1d0
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 1e0
- 0xfe,    2, 0xff, 0xff,    1, 0xff, 0xfd, 0xfd,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 1f0
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 200
-    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 210
- 0xfd, 0xfe,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff, // 220
-    1, 0xff,    1, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd,    1, 0xff, 0xfd, 0xfd, 0xfe, // 230
- 0xfe,    1, 0xff, 0xfd,   69,   71,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff,    1, 0xff}; // 240
-
-static const short wchar_tolower[] = {
-	0x130, 0x069,
-	0x178, 0x0ff,
-	0x1f6, 0x195,
-	0x1f7, 0x1bf,
-	0x220, 0x19e,
-	0x23a, 0x2c65,
-	0x23d, 0x19a,
-	0x23e, 0x2c66,
-	0x243, 0x180,
-	0,0 };
-
-static const short wchar_toupper[] = {
-	0x0b5, 0x39c,
-	0x0df, 0x0df,
-	0x0ff, 0x178,
-	0x131, 0x049,
-	0x17f, 0x053,
-	0x180, 0x243,
-	0x195, 0x1f6,
-	0x19a, 0x23d,
-	0x19e, 0x220,
-	0x1bf, 0x1f7,
-	0x1c6, 0x1c4,
-	0x1c9, 0x1c7,
-	0x1cc, 0x1ca,
-	0x1dd, 0x18e,
-	0x1f3, 0x1f1,
-	0,0 };
-
-
-#ifdef NEED_WCHAR_FUNCTIONS
+static unsigned char walpha_tab[MAX_WALPHA-0xff] = {
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 100
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 110
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 120
+   0xfe,0xff,   1,0xff,   1,0xff,   1,0xff,0xff,   1,0xff,   1,0xff,   1,0xff,   1,  // 130
+   0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,0xff,   1,0xff,   1,0xff,   1,0xff,  // 140
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 150
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 160
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,0xff,   1,0xff,   1,0xff,   1,0xff,0xff,  // 170
+   0xff, 210,   1,0xff,   1,0xff, 206,   1,0xff, 205, 205,   1,0xff,0xff,  79, 202,  // 180
+    203,   1,0xff, 205, 207,0xff, 211, 209,   1,0xff,0xff,0xff, 211, 213,0xff, 214,  // 190
+      1,0xff,   1,0xff,   1,0xff, 218,   1,0xff, 218,0xff,0xff,   1,0xff, 218,   1,  // 1a0
+   0xff, 217, 217,   1,0xff,   1,0xff, 219,   1,0xff,0xff,0xff,   1,0xff,0xff,0xff,  // 1b0
+   0xff,0xff,0xff,0xff,   2,   1,0xff,   2,   1,0xff,   2,   1,0xff,   1,0xff,   1,  // 1c0
+   0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,0xff,   1,0xff,  // 1d0
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 1e0
+   0xff,   2,   1,0xff,   1,0xff,0xff,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 1f0
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 200
+      1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 210
+   0xff,   0,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,   1,0xff,  // 220
+      1,0xff,   1,0xff };    // 230
 
 // use ctype.h functions for Latin1 (character < 0x100)
 int iswalpha(int c)
 {
-	if(c < 0x80)
+	if(c < 0x100)
 		return(isalpha(c));
 	if((c > 0x3040) && (c <= 0xa700))
 		return(1);  // japanese, chinese characters
 	if(c > MAX_WALPHA)
 		return(0);
-	return(walpha_tab[c-0x80]);
+	return(walpha_tab[c-0x100]);
 }
 
 int iswdigit(int c)
 {
-	if(c < 0x80)
+	if(c < 0x100)
 		return(isdigit(c));
 	return(0);
 }
@@ -314,67 +263,50 @@ int iswalnum(int c)
 int towlower(int c)
 {
 	int x;
-	int ix;
-
-	if(c < 0x80)
+	if(c < 0x100)
 		return(tolower(c));
-
-	if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x80]) >= 0xfe))
-		return(c);
-
-	if(x == 0xfd)
+	if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff))
+		return(c);  // already lower case
+	if(x == 0xfe)
 	{
-		// special cases, lookup translation table
-		for(ix=0; wchar_tolower[ix] != 0; ix+=2)
-		{
-			if(wchar_tolower[ix] == c)
-				return(wchar_tolower[ix+1]);
-		}
+		// special cases
+		if(c == 0x130)   // uppercase i-dot
+			return('i');
 	}
 	return(c + x);  // convert to lower case
 }
 
 int towupper(int c)
 {
-	int ix;
-	// check whether a previous character code is the upper-case equivalent of this character
-	if(towlower(c-32) == c)
-		return(c-32); // yes, use it
-	if(towlower(c-1) == c)
-		return(c-1);
-	for(ix=0; wchar_toupper[ix] != 0; ix+=2)
-	{
-		if(wchar_toupper[ix] == c)
-			return(wchar_toupper[ix+1]);
-	}
+	// check whether the previous character code is the upper-case equivalent of this character
+	if(tolower(c-1) == c)
+		return(c-1);  // yes, use it
 	return(c);  // no
 }
 
 int iswupper(int c)
 {
 	int x;
-	if(c < 0x80)
+	if(c < 0x100)
 		return(isupper(c));
-	if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x80])==0) || (x == 0xff))
+	if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x100])==0) || (x == 0xff))
 		return(0);
 	return(1);
 }
 
 int iswlower(int c)
 {
-	if(c < 0x80)
+	if(c < 0x100)
 		return(islower(c));
-	if((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff))
+	if((c > MAX_WALPHA) || (walpha_tab[c-0x100] != 0xff))
 		return(0);
 	return(1);
 }
 
 int iswspace(int c)
 {
-	if(c < 0x80)
+	if(c < 0x100)
 		return(isspace(c));
-	if(c == 0xa0)
-		return(1);
 	return(0);
 }
 
@@ -426,96 +358,23 @@ float wcstod(const wchar_t *str, wchar_t **tailptr)
 }
 #endif
 
-
-// use internal data for iswalpha up to U+024F
-// iswalpha() on Windows is unreliable  (U+AA, U+BA).
-int iswalpha2(int c)
-{
-	if(c < 0x80)
-		return(isalpha(c));
-	if((c > 0x3040) && (c <= 0xa700))
-		return(1);  // japanese, chinese characters
-	if(c > MAX_WALPHA)
-		return(iswalpha(c));
-	return(walpha_tab[c-0x80]);
-}
-
-int iswlower2(int c)
-{
-	if(c < 0x80)
-		return(islower(c));
-	if(c > MAX_WALPHA)
-		return(iswlower(c));
-	if(walpha_tab[c-0x80] == 0xff)
-		return(1);
-	return(0);
-}
-
-int iswupper2(int c)
-{
-	int x;
-	if(c < 0x80)
-		return(isupper(c));
-	if(c > MAX_WALPHA)
-		return(iswupper(c));
-	if(((x = walpha_tab[c-0x80]) > 0) && (x < 0xfe))
-		return(1);
-	return(0);
-}
-
 int towlower2(unsigned int c)
 {
-	int x;
-	int ix;
-
 	// check for non-standard upper to lower case conversions
 	if(c == 'I')
 	{
-		if(translator->langopts.dotless_i)
+		if(translator->translator_name == L('t','r'))
 		{
 			c = 0x131;   // I -> ı
 		}
 	}
-
-	if(c < 0x80)
-		return(tolower(c));
-
-	if(c > MAX_WALPHA)
-		return(towlower(c));
-
-	if((x = walpha_tab[c-0x80]) >= 0xfe)
-		return(c);   // this is not an upper case letter
-
-	if(x == 0xfd)
-	{
-		// special cases, lookup translation table
-		for(ix=0; wchar_tolower[ix] != 0; ix+=2)
-		{
-			if(wchar_tolower[ix] == (int)c)
-				return(wchar_tolower[ix+1]);
-		}
-	}
-	return(c + x);  // convert to lower case
+#ifdef __WIN32__
+	if(c == 0x130)   // uppercase i-dot
+		return('i');
+#endif
+	return(towlower(c));
 }
 
-int towupper2(unsigned int c)
-{
-	int ix;
-	if(c > MAX_WALPHA)
-		return(towupper(c));
-
-	// check whether a previous character code is the upper-case equivalent of this character
-	if(towlower2(c-32) == (int)c)
-		return(c-32); // yes, use it
-	if(towlower2(c-1) == (int)c)
-		return(c-1);
-	for(ix=0; wchar_toupper[ix] != 0; ix+=2)
-	{
-		if(wchar_toupper[ix] == (int)c)
-			return(wchar_toupper[ix+1]);
-	}
-	return(c);  // no
-}
 
 static int IsRomanU(unsigned int c)
 {//================================
@@ -587,7 +446,7 @@ static int GetC_get(void)
 			end_of_input = 1;
 			return(0);
 		}
-
+	
 		if(!end_of_input)
 		{
 			if(option_multibyte == espeakCHARS_16BIT)
@@ -702,8 +561,8 @@ static void UngetC(int c)
 }
 
 
-const char *WordToString2(unsigned int word)
-{//============================================
+static const char *WordToString2(unsigned int word)
+{//================================================
 // Convert a language mnemonic word into a string
 	int  ix;
 	static char buf[5];
@@ -782,7 +641,7 @@ static const char *LookupCharName(Translator *tr, int c, int only)
 		}
 	}
 
-	if((only==0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e','n')))
+	if((only==0) && (phonemes[0] == 0) && (tr->translator_name != L('e','n')))
 	{
 		// not found, try English
 		SetTranslator2("en");
@@ -875,6 +734,7 @@ static int LoadSoundFile(const char *fname, int index)
 	{
 		int ix;
 		int fd_temp;
+		const char *resample;
 		int header[3];
 		char command[sizeof(fname2)+sizeof(fname2)+40];
 
@@ -888,11 +748,17 @@ static int LoadSoundFile(const char *fname, int index)
 			fclose(f);
 			f = NULL;
 
+			if(header[2] == samplerate)
+				resample = "";
+			else
+				resample = "polyphase";
+
 			strcpy(fname_temp,"/tmp/espeakXXXXXX");
 			if((fd_temp = mkstemp(fname_temp)) >= 0)
 			{
 				close(fd_temp);
-				sprintf(command,"sox \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
+//			sprintf(fname_temp,"%s.wav",tmpnam(NULL));
+				sprintf(command,"sox \"%s\" -r %d -w -s -c1 %s %s\n", fname, samplerate, fname_temp, resample);
 				if(system(command) == 0)
 				{
 					fname = fname_temp;
@@ -981,13 +847,14 @@ static int LoadSoundFile2(const char *fname)
 
 
 static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output, int *bufix, int end_clause)
-{//=============================================================================================================
+{//==========================================================================================================
 	// announce punctuation names
 	// c1:  the punctuation character
 	// c2:  the following character
 
 	int punct_count;
-	const char *punctname = NULL;
+	const char *punctname;
+	int found = 0;
 	int soundicon;
 	int attributes;
 	int short_pause;
@@ -996,7 +863,6 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output
 	int bufix1;
 	char buf[200];
 	char buf2[80];
-	char ph_buf[30];
 
 	c2 = *c2_ptr;
 	buf[0] = 0;
@@ -1006,24 +872,12 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output
 		// add an embedded command to play the soundicon
 		sprintf(buf,"\001%dI ",soundicon);
 		UngetC(c2);
+		found = 1;
 	}
 	else
+	if((punctname = LookupCharName(tr, c1, 0)) != NULL)
 	{
-		if((c1 == '.') && (end_clause) && (c2 != '.'))
-		{
-			if(LookupSpecial(tr, "_.p", ph_buf))
-			{
-				punctname = ph_buf;  // use word for 'period' instead of 'dot'
-			}
-		}
-		if(punctname == NULL)
-		{
-			punctname = LookupCharName(tr, c1, 0);
-		}
-
-		if(punctname == NULL)
-			return(-1);
-
+		found = 1;
 		if((*bufix==0) || (end_clause ==0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2))
 		{
 			punct_count=1;
@@ -1083,6 +937,9 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output
 		}
 	}
 
+	if(found == 0)
+		return(-1);
+
 	bufix1 = *bufix;
 	len = strlen(buf);
 	strcpy(&output[*bufix],buf);
@@ -1109,7 +966,7 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output
 
 	if(attributes & CLAUSE_BIT_SENTENCE)
 		return(attributes);
-
+	
 	return(short_pause);
 }  //  end of AnnouncePunctuation
 
@@ -1226,7 +1083,7 @@ static const char *VoiceFromStack()
 				}
 				p += (strlen(p) + 1);
 			}
-
+			
 			if(voice_name_specified == 0)
 				voice_name[0] = 0;  // forget a previous voice name if a language is specified
 		}
@@ -1259,7 +1116,7 @@ static const char *VoiceFromStack()
 
 
 
-static void ProcessParamStack(char *outbuf, int *outix)
+static void ProcessParamStack(char *outbuf, int &outix)
 {//====================================================
 // Set the speech parameters from the parameter stack
 	int param;
@@ -1308,8 +1165,8 @@ static void ProcessParamStack(char *outbuf, int *outix)
 			}
 
 			speech_parameters[param] = new_parameters[param];
-			strcpy(&outbuf[*outix],buf);
-			*outix += strlen(buf);
+			strcpy(&outbuf[outix],buf);
+			outix += strlen(buf);
 		}
 	}
 }  // end of ProcessParamStack
@@ -1333,7 +1190,7 @@ static PARAM_STACK *PushParamStack(int tag_type)
 }  //  end of PushParamStack
 
 
-static void PopParamStack(int tag_type, char *outbuf, int *outix)
+static void PopParamStack(int tag_type, char *outbuf, int &outix)
 {//==============================================================
 	// unwind the stack up to and including the previous tag of this type
 	int ix;
@@ -1396,7 +1253,7 @@ static wchar_t *GetSsmlAttribute(wchar_t *pw, const char *name)
 static int attrcmp(const wchar_t *string1, const char *string2)
 {//============================================================
 	int  ix;
-
+	
 	if(string1 == NULL)
 		return(1);
 
@@ -1426,10 +1283,10 @@ static int attrnumber(const wchar_t *pw, int default_value, int type)
 {//==================================================================
 	int value = 0;
 
-	if((pw == NULL) || !IsDigit09(*pw))
+	if((pw == NULL) || !isdigit(*pw))
 		return(default_value);
 
-	while(IsDigit09(*pw))
+	while(isdigit(*pw))
 	{
 		value = value*10 + *pw++ - '0';
 	}
@@ -1482,7 +1339,7 @@ static int attr_prosody_value(int param_type, const wchar_t *pw, int *value_out)
 	}
 	if(*pw == '-')
 	{
-		pw++;
+		pw++;	
 		sign = -1;
 	}
 	value = (double)wcstod(pw,&tail);
@@ -1503,14 +1360,10 @@ static int attr_prosody_value(int param_type, const wchar_t *pw, int *value_out)
 
 	if((tail[0]=='s') && (tail[1]=='t'))
 	{
-#ifdef PLATFORM_RISCOS
-		*value_out = 100;
-#else
 		double x;
 		// convert from semitones to a  frequency percentage
-		x = pow((double)2.0,(double)((value*sign)/12)) * 100;
+		x = pow(double(2.0),double((value*sign)/12)) * 100;
 		*value_out = (int)x;
-#endif
 		return(2);   // percentage
 	}
 
@@ -1527,7 +1380,8 @@ static int attr_prosody_value(int param_type, const wchar_t *pw, int *value_out)
 	return(sign);   // -1, 0, or 1
 }  // end of attr_prosody_value
 
-static int AddNameData(const char *name, int wide)
+
+int AddNameData(const char *name, int wide)
 {//========================================
 // Add the name to the namedata and return its position
 // (Used by the Windows SAPI wrapper)
@@ -1599,7 +1453,6 @@ static int GetVoiceAttributes(wchar_t *pw, int tag_type)
 	wchar_t *name;
 	wchar_t *age;
 	wchar_t *variant;
-	int value;
 	const char *new_voice_id;
 	SSML_STACK *ssml_sp;
 
@@ -1637,17 +1490,15 @@ static int GetVoiceAttributes(wchar_t *pw, int tag_type)
 			age = GetSsmlAttribute(pw,"age");
 			gender = GetSsmlAttribute(pw,"gender");
 		}
-
+	
 		if((tag_type != SSML_VOICE) && (lang==NULL))
 			return(0);  // <s> or <p> without language spec, nothing to do
-
+	
 		ssml_sp = &ssml_stack[n_ssml_stack++];
 
 		attrcopy_utf8(ssml_sp->language,lang,sizeof(ssml_sp->language));
 		attrcopy_utf8(ssml_sp->voice_name,name,sizeof(ssml_sp->voice_name));
-		if((value = attrnumber(variant,1,0)) > 0)
-			value--;    // variant='0' and variant='1' the same
-		ssml_sp->voice_variant_number = value;
+		ssml_sp->voice_variant_number = attrnumber(variant,1,0)-1;
 		ssml_sp->voice_age = attrnumber(age,0,0);
 		ssml_sp->voice_gender = attrlookup(gender,mnem_gender);
 		ssml_sp->tag_type = tag_type;
@@ -1737,7 +1588,7 @@ static void SetProsodyParameter(int param_type, wchar_t *attr1, PARAM_STACK *sp)
 }  // end of SetProsodyParemeter
 
 
-static int ReplaceKeyName(char *outbuf, int index, int *outix)
+static int ReplaceKeyName(char *outbuf, int index, int &outix)
 {//===========================================================
 // Replace some key-names by single characters, so they can be pronounced in different languages
 	static MNEM_TAB keynames[] = {
@@ -1746,7 +1597,7 @@ static int ReplaceKeyName(char *outbuf, int index, int *outix)
 	{"underscore ", 0xe05f},
 	{"double-quote ", '"'},
 	{NULL, 0}};
-
+	
 	int ix;
 	int letter;
 	char *p;
@@ -1756,14 +1607,14 @@ static int ReplaceKeyName(char *outbuf, int index, int *outix)
 	if((letter = LookupMnem(keynames, p)) != 0)
 	{
 		ix = utf8_out(letter, p);
-		*outix = index + ix;
+		outix = index + ix;
 		return(letter);
 	}
 	return(0);
 }
 
 
-static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outbuf, int self_closing)
+static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outbuf, int self_closing)
 {//==================================================================================================
 // xml_buf is the tag and attributes with a zero terminator in place of the original '>'
 // returns a clause terminator value.
@@ -1778,7 +1629,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 	int voice_change_flag;
 	wchar_t *px;
 	wchar_t *attr1;
-	wchar_t *attr2;
+	wchar_t *attr2; 
 	wchar_t *attr3;
 	int terminator;
 	char *uri;
@@ -1842,13 +1693,13 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 	tag_name[ix] = 0;
 
 	px = &xml_buf[ix];   // the tag's attributes
-
+	
 	if(tag_name[0] == '/')
 	{
 		// closing tag
 		if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != HTML_NOSPACE)
 		{
-			outbuf[(*outix)++] = ' ';
+			outbuf[outix++] = ' ';
 		}
 		tag_type += SSML_CLOSE;
 	}
@@ -1857,7 +1708,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 		if((tag_type = LookupMnem(ssmltags,tag_name)) != HTML_NOSPACE)
 		{
 			// separate SSML tags from the previous word (but not HMTL tags such as <b> <font> which can occur inside a word)
-			outbuf[(*outix)++] = ' ';
+			outbuf[outix++] = ' ';
 		}
 
 		if(self_closing && ignore_if_self_closing[tag_type])
@@ -1957,22 +1808,22 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 		}
 
 		sprintf(buf,"%c%dY",CTRL_EMBEDDED,value);
-		strcpy(&outbuf[*outix],buf);
-		*outix += strlen(buf);
+		strcpy(&outbuf[outix],buf);
+		outix += strlen(buf);
 
-		sayas_start = *outix;
+		sayas_start = outix;
 		sayas_mode = value;   // punctuation doesn't end clause during SAY-AS
 		break;
 
 	case SSML_SAYAS + SSML_CLOSE:
 		if(sayas_mode == SAYAS_KEY)
 		{
-			outbuf[*outix] = 0;
+			outbuf[outix] = 0;
 			ReplaceKeyName(outbuf, sayas_start, outix);
 		}
 
-		outbuf[(*outix)++] = CTRL_EMBEDDED;
-		outbuf[(*outix)++] = 'Y';
+		outbuf[outix++] = CTRL_EMBEDDED;
+		outbuf[outix++] = 'Y';
 		sayas_mode = 0;
 		break;
 
@@ -1981,7 +1832,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 		{
 			// use the alias  rather than the text
 			ignore_text = 1;
-			*outix += attrcopy_utf8(&outbuf[*outix],attr1,n_outbuf-*outix);
+			outix += attrcopy_utf8(&outbuf[outix],attr1,n_outbuf-outix);
 		}
 		break;
 
@@ -2011,8 +1862,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 			if((index = AddNameData(buf,0)) >= 0)
 			{
 				sprintf(buf,"%c%dM",CTRL_EMBEDDED,index);
-				strcpy(&outbuf[*outix],buf);
-				*outix += strlen(buf);
+				strcpy(&outbuf[outix],buf);
+				outix += strlen(buf);
 			}
 		}
 		break;
@@ -2039,8 +1890,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 				if(index >= 0)
 				{
 					sprintf(buf,"%c%dI",CTRL_EMBEDDED,index);
-					strcpy(&outbuf[*outix],buf);
-					*outix += strlen(buf);
+					strcpy(&outbuf[outix],buf);
+					outix += strlen(buf);
 					sp->parameter[espeakSILENCE] = 1;
 				}
 			}
@@ -2052,8 +1903,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 					if(uri_callback(1,uri,xmlbase) == 0)
 					{
 						sprintf(buf,"%c%dU",CTRL_EMBEDDED,index);
-						strcpy(&outbuf[*outix],buf);
-						*outix += strlen(buf);
+						strcpy(&outbuf[outix],buf);
+						outix += strlen(buf);
 						sp->parameter[espeakSILENCE] = 1;
 					}
 				}
@@ -2083,21 +1934,15 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 			if(value < 3)
 			{
 				// adjust prepause on the following word
-				sprintf(&outbuf[*outix],"%c%dB",CTRL_EMBEDDED,value);
-				*outix += 3;
+				sprintf(&outbuf[outix],"%c%dB",CTRL_EMBEDDED,value);
+				outix += 3;
 				terminator = 0;
 			}
 			value = break_value[value];
 		}
 		if((attr2 = GetSsmlAttribute(px,"time")) != NULL)
 		{
-			value2 = attrnumber(attr2,0,1);   // pause in mS
-
-			// compensate for speaking speed to keep constant pause length, see function PauseLength()
-			// 'value' here is x 10mS
-			value = (value2 * 256) / (speed.clause_pause_factor * 10);
-			if(value < 200)
-				value = (value2 * 256) / (speed.pause_factor * 10);
+			value = (attrnumber(attr2,0,1) * 25) / speed.pause_factor; // compensate for speaking speed to keep constant pause length
 
 			if(terminator == 0)
 				terminator = CLAUSE_NONE;
@@ -2105,13 +1950,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb
 		if(terminator)
 		{
 			if(value > 0xfff)
-			{
-				// scale down the value and set a scaling indicator bit
-				value = value / 32;
-				if(value > 0xfff)
-					value = 0xfff;
-				terminator |= CLAUSE_PAUSE_LONG;
-			}
+				value = 0xfff;
 			return(terminator + value);
 		}
 		break;
@@ -2306,7 +2145,7 @@ f_input = f_in;  // for GetC etc
 				return(CLAUSE_EOF);
 			}
 
-			if((skip_characters > 0) && (count_characters >= skip_characters))
+			if((skip_characters > 0) && (count_characters > skip_characters))
 			{
 				// reached the specified start position
 				// don't break a word
@@ -2411,7 +2250,7 @@ f_input = f_in;  // for GetC etc
 					c2 = ' ';
 				}
 				else
-				if((c2 == '/') || iswalpha2(c2))
+				if((c2 == '/') || iswalpha(c2))
 				{
 					// check for space in the output buffer for embedded commands produced by the SSML tag
 					if(ix > (n_buf - 20))
@@ -2434,7 +2273,7 @@ f_input = f_in;  // for GetC etc
 					}
 					xml_buf[n_xml_buf] = 0;
 					c2 = ' ';
-
+	
 					self_closing = 0;
 					if(xml_buf[n_xml_buf-1] == '/')
 					{
@@ -2442,9 +2281,9 @@ f_input = f_in;  // for GetC etc
 						xml_buf[n_xml_buf-1] = ' ';
 						self_closing = 1;
 					}
-
-					terminator = ProcessSsmlTag(xml_buf,buf,&ix,n_buf,self_closing);
-
+		
+					terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing);
+		
 					if(terminator != 0)
 					{
 						if(end_clause_after_tag)
@@ -2452,7 +2291,7 @@ f_input = f_in;  // for GetC etc
 
 						buf[ix] = ' ';
 						buf[ix++] = 0;
-
+		
 						if(terminator & CLAUSE_BIT_VOICE)
 						{
 							strcpy(voice_change, current_voice_id);
@@ -2535,16 +2374,6 @@ f_input = f_in;  // for GetC etc
 
 		linelength++;
 
-		if((j = lookupwchar2(tr->chars_ignore,c1)) != 0)
-		{
-			if(j == 1)
-			{
-				// ignore this character (eg. zero-width-non-joiner U+200C)
-				continue;
-			}
-			c1 = j;   // replace the character
-		}
-
 		if(iswalnum(c1))
 			any_alnum = 1;
 		else
@@ -2557,13 +2386,23 @@ f_input = f_in;  // for GetC etc
 				c2 = ' ';
 			}
 
+			if((j = lookupwchar2(tr->chars_ignore,c1)) != 0)
+			{
+				if(j == 1)
+				{
+					// ignore this character (eg. zero-width-non-joiner U+200C)
+					continue;
+				}
+				c1 = j;   // replace the character
+			}
+
 			if(c1 == 0xf0b)
 				c1 = ' ';    // Tibet inter-syllabic mark, ?? replace by space ??
 
 			if(iswspace(c1))
 			{
 				char *p_word;
-
+	
 				if(tr->translator_name == 0x6a626f)
 				{
 					// language jbo : lojban
@@ -2594,10 +2433,10 @@ f_input = f_in;  // for GetC etc
 			}
 		}
 
-		if(iswupper2(c1))
+		if(iswupper(c1))
 		{
 			tr->clause_upper_count++;
-			if((option_capitals == 2) && (sayas_mode == 0) && !iswupper2(cprev))
+			if((option_capitals == 2) && (sayas_mode == 0) && !iswupper(cprev))
 			{
 				char text_buf[40];
 				char text_buf2[30];
@@ -2614,7 +2453,7 @@ f_input = f_in;  // for GetC etc
 			}
 		}
 		else
-		if(iswalpha2(c1))
+		if(iswalpha(c1))
 			tr->clause_lower_count++;
 
 		if(option_phoneme_input)
@@ -2680,11 +2519,11 @@ if(option_ssml) parag=1;
 				// Because of an xml tag, we are waiting for the
 				// next non-blank character to decide whether to end the clause
 				// i.e. is dot followed by an upper-case letter?
-
+				
 				if(!iswspace(c1))
 				{
-					if(!IsAlpha(c1) || !iswlower2(c1))
-//					if(iswdigit(c1) || (IsAlpha(c1) && !iswlower2(c1)))
+					if(!IsAlpha(c1) || !iswlower(c1))
+//					if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
 					{
 						UngetC(c2);
 						ungot_char2 = c1;
@@ -2714,7 +2553,7 @@ if(option_ssml) parag=1;
 			if((punct = lookupwchar(punct_chars,c1)) != 0)
 			{
 				punct_data = punct_attributes[punct];
-
+	
 				if(punct_data & PUNCT_IN_WORD)
 				{
 					// Armenian punctuation inside a word
@@ -2745,7 +2584,7 @@ if(option_ssml) parag=1;
 					announced_punctuation = c1;
 				}
 			}
-
+	
 			if((punct_data & PUNCT_SAY_NAME) && (announced_punctuation == 0))
 			{
 				// used for elipsis (and 3 dots) if a pronunciation for elipsis is given in *_list
@@ -2783,7 +2622,7 @@ if(option_ssml) parag=1;
 
 				if(nl_count==0)
 				{
-					if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower2(c_next))))
+					if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next))))
 					{
 						// lang=hu, fix for ordinal numbers, eg:  "december 2., szerda", ignore ',' after ordinal number
 						c1 = CHAR_COMMA_BREAK;
@@ -2792,7 +2631,7 @@ if(option_ssml) parag=1;
 
 					if(c1 == '.')
 					{
-						if((tr->langopts.numbers & NUM_ORDINAL_DOT) &&
+						if((tr->langopts.numbers & NUM_ORDINAL_DOT) && 
 							(iswdigit(cprev) || (IsRomanU(cprev) && (IsRomanU(cprev2) || iswspace(cprev2)))))  // lang=hu
 						{
 							// dot after a number indicates an ordinal number
@@ -2802,16 +2641,16 @@ if(option_ssml) parag=1;
 							}
 							else
 							{
-								if (iswlower2(c_next) || (c_next=='-'))     // hyphen is needed for lang-hu (eg. 2.-kal)
+								if (iswlower(c_next) || (c_next=='-'))     // hyphen is needed for lang-hu (eg. 2.-kal)
 									is_end_clause = 0;      // only if followed by lower-case, (or if there is a XML tag)
 							}
 						}
 						else
 						if(c_next == '\'')
 						{
-							is_end_clause = 0;    // eg. u.s.a.'s
+							is_end_clause = 0;    // eg. u.s.a.'s 
 						}
-						if(iswlower2(c_next))
+						if(iswlower(c_next))
 						{
 							// next word has no capital letter, this dot is probably from an abbreviation
 //							c1 = ' ';
diff --git a/external/espeak/setlengths.cpp b/external/espeak/setlengths.cpp
old mode 100755
new mode 100644
index c91a2bd..fdc7ebc
--- a/external/espeak/setlengths.cpp
+++ b/external/espeak/setlengths.cpp
@@ -30,6 +30,8 @@
 #include "voice.h"
 #include "translate.h"
 
+extern int GetAmplitude(void);
+extern void DoSonicSpeed(int value);
 extern int saved_parameters[];
 
 
@@ -102,7 +104,7 @@ static unsigned char pause_factor_350[] = {
 15,15,15,15,15};                // 370
 
 // wav_factor adjustments for speeds 350 to 450
-// Use this to calibrate speed for wpm 350-450
+// Use this to calibrate speed for wpm 350-450 
 static unsigned char wav_factor_350[] = {
  120, 121, 120, 119, 119,   // 350
  118, 118, 117, 116, 116,   // 355
@@ -273,9 +275,6 @@ void SetSpeed(int control)
 				speed.min_sample_len = 420 - (wpm - 440);
 		}
 
-// adjust for different sample rates
-speed.min_sample_len = (speed.min_sample_len * samplerate_native) / 22050;
-
 		speed.pause_factor = (256 * s1)/115;      // full speed adjustment, used for pause length
 		speed.clause_pause_factor = 0;
 
@@ -464,7 +463,7 @@ void SetAmplitude(int amp)
 
 	if((amp >= 0) && (amp <= 20))
 	{
-		option_amplitude = (amplitude_factor[amp] * 480)/256;
+		option_amplitude = (amplitude_factor[amp] * 480)/256; 
 	}
 }
 #endif
@@ -573,7 +572,6 @@ void CalcLengths(Translator *tr)
 	int  last_pitch = 0;
 	int  pitch_start;
 	int  length_mod;
-	int  next2type;
 	int  len;
 	int  env2;
 	int  end_of_clause;
@@ -608,7 +606,7 @@ void CalcLengths(Translator *tr)
 		case phPAUSE:
 			last_pitch = 0;
 			break;
-
+			
 		case phSTOP:
 			last_pitch = 0;
 			if(prev->type == phFRICATIVE)
@@ -688,19 +686,8 @@ void CalcLengths(Translator *tr)
 
 				p->prepause = 40;
 
-				if(prev->type == phVOWEL)
-				{
-					p->prepause = 0;   // use murmur instead to link from the preceding vowel
-				}
-				else
-				if(prev->type == phPAUSE)
-				{
-					// reduce by the length of the preceding pause
-					if(prev->length < p->prepause)
-						p->prepause -= prev->length;
-					else
-						p->prepause = 0;
-				}
+				if((prev->type == phPAUSE) || (prev->type == phVOWEL)) // || (prev->ph->mnemonic == ('/'*256+'r')))
+					p->prepause = 0;
 				else
 				if(p->newword==0)
 				{
@@ -723,7 +710,7 @@ void CalcLengths(Translator *tr)
 			p->amp = tr->stress_amps[0];  // unless changed later
 			p->length = 256;  //  TEMPORARY
 			min_drop = 0;
-
+			
 			if(p->newword)
 			{
 				if(prev->type==phLIQUID)
@@ -746,12 +733,12 @@ void CalcLengths(Translator *tr)
 				if((prev->type==phVOWEL) || (prev->type == phLIQUID))
 				{
 					p->length = prev->length;
-
+					
 					if(p->type == phLIQUID)
 					{
 						p->length = speed1;
 					}
-
+	
 					if(next->type == phVSTOP)
 					{
 						p->length = (p->length * 160)/100;
@@ -837,17 +824,9 @@ if(stress <= 1)
 				next3 = &phoneme_list[ix+4];
 			}
 
-			next2type = next2->ph->length_mod;
 			if(more_syllables==0)
 			{
-				if(next->newword || next2->newword)
-				{
-					// don't use 2nd phoneme over a word boundary, unless it's a pause
-					if(next2type != 1)
-						next2type = 0;
-				}
-
-				len = tr->langopts.length_mods0[next2type *10+ next->ph->length_mod];
+				len = tr->langopts.length_mods0[next2->ph->length_mod *10+ next->ph->length_mod];
 
 				if((next->newword) && (tr->langopts.word_gap & 0x20))
 				{
@@ -859,7 +838,7 @@ if(stress <= 1)
 			}
 			else
 			{
-				length_mod = tr->langopts.length_mods[next2type *10+ next->ph->length_mod];
+				length_mod = tr->langopts.length_mods[next2->ph->length_mod *10+ next->ph->length_mod];
 
 				if((next->type == phNASAL) && (next2->type == phSTOP || next2->type == phVSTOP) && (next3->ph->phflags & phFORTIS))
 					length_mod -= 15;
@@ -910,7 +889,7 @@ if(stress <= 1)
 			{
 				// this is the last syllable in the clause, lengthen it - more for short vowels
 				len = (p->ph->std_length * 2);
-				if(tr->langopts.stress_flags & S_EO_CLAUSE1)
+				if(tr->langopts.stress_flags & 0x40000)
 					len=200;  // don't lengthen short vowels more than long vowels at end-of-clause
 				length_mod = length_mod * (256 + (280 - len)/3)/256;
 			}
@@ -984,11 +963,11 @@ if(p->type != phVOWEL)
 			next->synthflags &= ~SFLAG_SEQCONTINUE;
 			if(next->type == phNASAL && next2->type != phVOWEL)
 				next->synthflags |= SFLAG_SEQCONTINUE;
-
+				
 			if(next->type == phLIQUID)
 			{
 				next->synthflags |= SFLAG_SEQCONTINUE;
-
+					
 				if(next2->type == phVOWEL)
 				{
 					next->synthflags &= ~SFLAG_SEQCONTINUE;
diff --git a/external/espeak/sintab.h b/external/espeak/sintab.h
old mode 100755
new mode 100644
diff --git a/external/espeak/sonic.cpp b/external/espeak/sonic.cpp
old mode 100755
new mode 100644
diff --git a/external/espeak/sonic.h b/external/espeak/sonic.h
old mode 100755
new mode 100644
diff --git a/external/espeak/speak_lib.cpp b/external/espeak/speak_lib.cpp
old mode 100755
new mode 100644
index 9db9de1..bced70a
--- a/external/espeak/speak_lib.cpp
+++ b/external/espeak/speak_lib.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2013 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -60,7 +60,6 @@ static espeak_AUDIO_OUTPUT my_mode=AUDIO_OUTPUT_SYNCHRONOUS;
 static int synchronous_mode = 1;
 static int out_samplerate = 0;
 static int voice_samplerate = 22050;
-static espeak_ERROR err = EE_OK;
 
 t_espeak_callback* synth_callback = NULL;
 int (* uri_callback)(int, const char *, const char *) = NULL;
@@ -115,11 +114,7 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event)
 				//	sleep(1);
 				}
 				out_samplerate = voice_samplerate;
-				if(!wave_init(voice_samplerate))
-				{
-					err = EE_INTERNAL_ERROR;
-					return(-1);
-				}
+				wave_init(voice_samplerate);
 				wave_set_callback_is_output_enabled( fifo_is_command_enabled);
 				my_audio = wave_open("alsa");
 				event_init();
@@ -172,7 +167,7 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event)
 
 	SHOW_TIME("LEAVE dispatch_audio\n");
 
-	return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error
+	return (a_wave_can_be_played==0); // 1 = stop synthesis
 }
 
 
@@ -382,12 +377,10 @@ static int initialise(int control)
 {//===============================
 	int param;
 	int result;
-	int srate = 22050;  // default sample rate 22050 Hz
 
-	err = EE_OK;
 	LoadConfig();
-
-	if((result = LoadPhData(&srate)) != 1)  // reads sample rate from espeak-data/phontab
+	WavegenInit(22050,0);   // 22050
+	if((result = LoadPhData()) != 1)
 	{
 		if(result == -1)
 		{
@@ -400,7 +393,6 @@ static int initialise(int control)
 		else
 			fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home);
 	}
-	WavegenInit(srate,0);
 
 	memset(&current_voice_selected,0,sizeof(current_voice_selected));
 	SetVoiceStack(NULL, "");
@@ -500,8 +492,6 @@ static espeak_ERROR Synthesize(unsigned int unique_identifier, const void *text,
 		{
 #ifdef USE_ASYNC
 			finished = create_events((short *)outbuf, length, event_list, a_write_pos);
-			if(finished < 0)
-				return EE_INTERNAL_ERROR;
 			length = 0; // the wave data are played once.
 #endif
 		}
@@ -531,8 +521,7 @@ static espeak_ERROR Synthesize(unsigned int unique_identifier, const void *text,
 #ifdef USE_ASYNC
 					if (my_mode==AUDIO_OUTPUT_PLAYBACK)
 					{
-						if(dispatch_audio(NULL, 0, NULL) < 0) // TBD: test case
-							return err = EE_INTERNAL_ERROR;
+						dispatch_audio(NULL, 0, NULL); // TBD: test case
 					}
 					else
 					{
@@ -556,11 +545,7 @@ static const char* label[] = {
   "SENTENCE",
   "MARK",
   "PLAY",
-  "END",
-  "MSG_TERMINATED",
-  "PHONEME",
-  "SAMPLERATE",
-  "??" };
+  "END"};
 #endif
 
 
@@ -732,12 +717,8 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist)
 	my_unique_identifier = 0;
 	my_user_data = NULL;
 
-	option_punctlist[0] = 0;
-	if(punctlist != NULL)
-	{
-		wcsncpy(option_punctlist, punctlist, N_PUNCTLIST);
-		option_punctlist[N_PUNCTLIST-1] = 0;
-	}
+	wcsncpy(option_punctlist, punctlist, N_PUNCTLIST);
+	option_punctlist[N_PUNCTLIST-1] = 0;
 }  //  end of sync_espeak_SetPunctuationList
 
 
@@ -762,6 +743,11 @@ ESPEAK_API void espeak_SetUriCallback(int (* UriCallback)(int, const char*, cons
 }
 
 
+ESPEAK_API void espeak_SetPhonemeCallback(int (* PhonemeCallback)(const char*))
+{//===========================================================================
+	phoneme_callback = PhonemeCallback;
+}
+
 ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output_type, int buf_length, const char *path, int options)
 {//=============================================================================================================
 ENTER("espeak_Initialize");
@@ -775,11 +761,10 @@ ENTER("espeak_Initialize");
 #ifdef PLATFORM_RISCOS
 	setlocale(LC_CTYPE,"ISO8859-1");
 #else
-	if(setlocale(LC_CTYPE,"C.UTF-8") == NULL)
+	if(setlocale(LC_CTYPE,"en_US.UTF-8") == NULL)
 	{
 		if(setlocale(LC_CTYPE,"UTF-8") == NULL)
-			if(setlocale(LC_CTYPE,"en_US.UTF-8") == NULL)
-				setlocale(LC_CTYPE,"");
+			setlocale(LC_CTYPE,"");
 	}
 #endif
 */
@@ -793,9 +778,8 @@ ENTER("espeak_Initialize");
 	}
 
 	// buflength is in mS, allocate 2 bytes per sample
-	if((buf_length == 0) || (output_type == AUDIO_OUTPUT_PLAYBACK) || (output_type == AUDIO_OUTPUT_SYNCH_PLAYBACK))
+	if(buf_length == 0)
 		buf_length = 200;
-
 	outbuf_size = (buf_length * samplerate)/500;
 	outbuf = (unsigned char*)realloc(outbuf,outbuf_size);
 	if((out_start = outbuf) == NULL)
@@ -1167,7 +1151,7 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream)
 		 value=3  as (1), but produces IPA phoneme names rather than ascii
 		bit 4:   produce mbrola pho data
 	*/
-	option_phonemes = value & 7;
+	option_phonemes = value & 3;
 	option_mbrola_phonemes = value & 16;
 	f_trans = stream;
 	if(stream == NULL)
@@ -1176,18 +1160,6 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream)
 }   //  end of espeak_SetPhonemes
 
 
-ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode)
-{//=================================================================================================
-	/* phoneme_mode  bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
-	                 bits 4-7:   0=eSpeak phoneme names, 1=IPA
-	*/
-
-	option_multibyte = textmode & 7;
-	*textptr = TranslateClause(translator, NULL, *textptr, NULL, NULL);
-	return(GetTranslatedPhonemeString(phonememode));
-}
-
-
 ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags)
 {//=============================================================================
 	ENTER("espeak_CompileDictionary");
@@ -1233,7 +1205,6 @@ ESPEAK_API int espeak_IsPlaying(void)
 
 ESPEAK_API espeak_ERROR espeak_Synchronize(void)
 {//=============================================
-	espeak_ERROR berr = err;
 #ifdef USE_ASYNC
 	SHOW_TIME("espeak_Synchronize > ENTER");
 	while (espeak_IsPlaying())
@@ -1241,12 +1212,14 @@ ESPEAK_API espeak_ERROR espeak_Synchronize(void)
 		usleep(20000);
 	}
 #endif
-	err = EE_OK;
 	SHOW_TIME("espeak_Synchronize > LEAVE");
-	return berr;
+	return EE_OK;
 }   //  end of espeak_Synchronize
 
 
+extern void FreePhData(void);
+extern void FreeVoiceList(void);
+
 ESPEAK_API espeak_ERROR espeak_Terminate(void)
 {//===========================================
 	ENTER("espeak_Terminate");
diff --git a/external/espeak/speak_lib.h b/external/espeak/speak_lib.h
old mode 100755
new mode 100644
index f33e031..1cc15bc
--- a/external/espeak/speak_lib.h
+++ b/external/espeak/speak_lib.h
@@ -34,7 +34,7 @@
 #define ESPEAK_API
 #endif
 
-#define ESPEAK_API_REVISION  9
+#define ESPEAK_API_REVISION  7
 /*
 Revision 2
    Added parameter "options" to eSpeakInitialize()
@@ -55,12 +55,6 @@ Revision 7  24.Dec.2011
   Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics.
   Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names.
 
-Revision 8  26.Apr.2013
-  Added function espeak_TextToPhonemes().
-
-Revision 9  30.May.2013
-  Changed function espeak_TextToPhonemes().
-
 */
          /********************/
          /*  Initialization  */
@@ -100,7 +94,7 @@ typedef struct {
 		char string[8];    // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes.
 	} id;
 } espeak_EVENT;
-/*
+/* 
    When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called.
 
 
@@ -108,16 +102,16 @@ typedef struct {
 
    In PLAYBACK mode, the callback function is called as soon as an event happens.
 
-   For example suppose that the following message is supplied to espeak_Synth:
+   For example suppose that the following message is supplied to espeak_Synth: 
    "hello, hello."
 
 
    * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function :
 
    ** Block 1:
-   <audio data> +
+   <audio data> + 
    List of events: SENTENCE + WORD + LIST_TERMINATED
-
+ 
    ** Block 2:
    <audio data> +
    List of events: WORD + END + LIST_TERMINATED
@@ -154,11 +148,11 @@ typedef enum {
 
 typedef enum {
 	/* PLAYBACK mode: plays the audio data, supplies events to the calling program*/
-	AUDIO_OUTPUT_PLAYBACK,
+	AUDIO_OUTPUT_PLAYBACK, 
 
 	/* RETRIEVAL mode: supplies audio data and events to the calling program */
 	AUDIO_OUTPUT_RETRIEVAL,
-
+ 
 	/* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */
 	AUDIO_OUTPUT_SYNCHRONOUS,
 
@@ -187,8 +181,6 @@ ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, cons
    output: the audio data can either be played by eSpeak or passed back by the SynthCallback function.
 
    buflength:  The length in mS of sound buffers passed to the SynthCallback function.
-            Value=0 gives a default of 200mS.
-            This paramater is only used for AUDIO_OUTPUT_RETRIEVAL and AUDIO_OUTPUT_SYNCHRONOUS modes.
 
    path: The directory which contains the espeak-data directory, or NULL for the default location.
 
@@ -207,7 +199,7 @@ extern "C"
 ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
 /* Must be called before any synthesis functions are called.
    This specifies a function in the calling program which is called when a buffer of
-   speech sound data has been produced.
+   speech sound data has been produced. 
 
 
    The callback function is of the form:
@@ -296,7 +288,7 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
       start of the text.
 
    position_type:  Determines whether "position" is a number of characters, words, or sentences.
-      Values:
+      Values: 
 
    end_position:  If set, this gives a character position at which speaking will stop.  A value
       of zero indicates no end position.
@@ -307,7 +299,6 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
          espeakCHARS_8BIT     The 8 bit ISO-8859 character set for the particular language.
          espeakCHARS_AUTO     8 bit or UTF8  (this is the default)
          espeakCHARS_WCHAR    Wide characters (wchar_t)
-         espeakCHARS_16BIT    16 bit characters.
 
       espeakSSML   Elements within < > are treated as SSML elements, or if not recognised are ignored.
 
@@ -316,16 +307,13 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
       espeakENDPAUSE  If set then a sentence pause is added at the end of the text.  If not set then
          this pause is suppressed.
 
-   unique_identifier: This must be either NULL, or point to an integer variable to
-       which eSpeak writes a message identifier number.
-       eSpeak includes this number in espeak_EVENT messages which are the result of
-       this call of espeak_Synth().
+   unique_identifier: message identifier; helpful for identifying later 
+     data supplied to the callback.
 
-   user_data: a pointer (or NULL) which will be passed to the callback function in
-       espeak_EVENT messages.
+   user_data: pointer which will be passed to the callback function.
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -348,8 +336,8 @@ ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text,
 
    For the other parameters, see espeak_Synth()
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -362,8 +350,8 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
    If key_name is a single character, it speaks the name of the character.
    Otherwise, it speaks key_name as a text string.
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -372,10 +360,10 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
 extern "C"
 #endif
 ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
-/* Speak the name of the given character
+/* Speak the name of the given character 
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -432,7 +420,7 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu
       espeakRANGE:   pitch range, range 0-100. 0-monotone, 50=normal
 
       espeakPUNCTUATION:  which punctuation characters to announce:
-         value in espeak_PUNCT_TYPE (none, all, some),
+         value in espeak_PUNCT_TYPE (none, all, some), 
          see espeak_GetParameter() to specify which characters are announced.
 
       espeakCAPITALS: announce capital letters by:
@@ -444,8 +432,8 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu
 
       espeakWORDGAP:  pause between words, units of 10mS (at the default speed)
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -467,8 +455,8 @@ ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
 
    punctlist:  A list of character codes, terminated by a zero character.
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -489,37 +477,6 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream);
 #ifdef __cplusplus
 extern "C"
 #endif
-ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode);
-/* Translates text into phonemes.  Call espeak_SetVoiceByName() first, to select a language.
-
-   It returns a pointer to a character string which contains the phonemes for the text up to
-   end of a sentence, or comma, semicolon, colon, or similar punctuation.
-
-   textptr: The address of a pointer to the input text which is terminated by a zero character.
-      On return, the pointer has been advanced past the text which has been translated, or else set
-      to NULL to indicate that the end of the text has been reached.
-
-   textmode: Type of character codes, one of:
-         espeakCHARS_UTF8     UTF8 encoding
-         espeakCHARS_8BIT     The 8 bit ISO-8859 character set for the particular language.
-         espeakCHARS_AUTO     8 bit or UTF8  (this is the default)
-         espeakCHARS_WCHAR    Wide characters (wchar_t)
-         espeakCHARS_16BIT    16 bit characters.
-
-   phonememode: bits0-3:
-      0= just phonemes.
-      1= include ties (U+361) for phoneme names of more than one letter.
-      2= include zero-width-joiner for phoneme names of more than one letter.
-      3= separate phonemes with underscore characters.
-
-	 bits 4-7:
-      0= eSpeak's ascii phoneme names.
-      1= International Phonetic Alphabet (as UTF-8 characters).
-*/
-
-#ifdef __cplusplus
-extern "C"
-#endif
 ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags);
 /* Compile pronunciation dictionary for a language which corresponds to the currently
    selected voice.  The required voice should be selected before calling this function.
@@ -544,7 +501,7 @@ typedef struct {
 	unsigned char gender;  // 0=none 1=male, 2=female,
 	unsigned char age;     // 0=not specified, or age in years
 	unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties
-	unsigned char xx1;     // for internal use
+	unsigned char xx1;     // for internal use 
 	int score;       // for internal use
 	void *spare;     // for internal use
 } espeak_VOICE;
@@ -589,8 +546,8 @@ ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name);
 /* Searches for a voice with a matching "name" field.  Language is not considered.
    "name" is a UTF8 string.
 
-   Return: EE_OK: operation achieved
-           EE_BUFFER_FULL: the command can not be buffered;
+   Return: EE_OK: operation achieved 
+           EE_BUFFER_FULL: the command can not be buffered; 
              you may try after a while to call the function again.
 	   EE_INTERNAL_ERROR.
 */
@@ -631,7 +588,7 @@ ESPEAK_API espeak_ERROR espeak_Cancel(void);
    function returns, the audio output is fully stopped and the synthesizer is ready to
    synthesize a new message.
 
-   Return: EE_OK: operation achieved
+   Return: EE_OK: operation achieved 
 	   EE_INTERNAL_ERROR.
 */
 
@@ -648,7 +605,7 @@ extern "C"
 #endif
 ESPEAK_API espeak_ERROR espeak_Synchronize(void);
 /* This function returns when all data have been spoken.
-   Return: EE_OK: operation achieved
+   Return: EE_OK: operation achieved 
 	   EE_INTERNAL_ERROR.
 */
 
@@ -657,7 +614,7 @@ extern "C"
 #endif
 ESPEAK_API espeak_ERROR espeak_Terminate(void);
 /* last function to be called.
-   Return: EE_OK: operation achieved
+   Return: EE_OK: operation achieved 
 	   EE_INTERNAL_ERROR.
 */
 
diff --git a/external/espeak/speech.h b/external/espeak/speech.h
old mode 100755
new mode 100644
index 0f20086..07dc553
--- a/external/espeak/speech.h
+++ b/external/espeak/speech.h
@@ -43,19 +43,21 @@
 #undef PLATFORM_WINDOWS
 
 #define PATHSEP  '/'
-
+// USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile
+//#define USE_PORTAUDIO
+//#define USE_PULSEAUDIO
 /* ppgb, 23 December 2011 */
 #undef USE_NANOSLEEP
 //#define ESPEAK_API  extern "C"
 
 #ifdef LIBRARY
-#define USE_ASYNC
+	#define USE_ASYNC
 #endif
 
 #ifdef _ESPEAKEDIT
-#define USE_PORTAUDIO
-#define USE_ASYNC
-#define LOG_FRAMES      // write keyframe info to log-espeakedit
+	#define USE_PORTAUDIO
+	#define USE_ASYNC
+	#define LOG_FRAMES      // write keyframe info to log-espeakedit
 #endif
 
 // will look for espeak_data directory here, and also in user's home directory
@@ -90,9 +92,9 @@ int LookupMnem(MNEM_TAB *table, const char *string);
 
 
 #ifdef PLATFORM_WINDOWS
-	#define N_PATH_HOME  230
+	#define N_PATH_HOME  220
 #else
-	#define N_PATH_HOME  160
+	#define N_PATH_HOME  150
 #endif
 
 extern char path_home[N_PATH_HOME];    // this is the espeak-data directory
diff --git a/external/espeak/synth_mbrola.cpp b/external/espeak/synth_mbrola.cpp
old mode 100755
new mode 100644
index 585a481..0abda43
--- a/external/espeak/synth_mbrola.cpp
+++ b/external/espeak/synth_mbrola.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2013 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2007 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -40,6 +40,7 @@ int option_mbrola_phonemes;
 #ifdef INCLUDE_MBROLA
 
 extern int Read4Bytes(FILE *f);
+extern void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range);
 extern unsigned char *outbuf;
 
 #ifndef PLATFORM_WINDOWS
@@ -489,7 +490,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr
 		if(ph->code != phonEND_WORD)
 		{
 			char phoneme_name[16];
-			WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA, NULL);
+			WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA);
 			DoPhonemeMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, phoneme_name);
 		}
 
diff --git a/external/espeak/synthdata.cpp b/external/espeak/synthdata.cpp
old mode 100755
new mode 100644
index ea5d887..4135002
--- a/external/espeak/synthdata.cpp
+++ b/external/espeak/synthdata.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2013 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -35,8 +35,8 @@
 #include "translate.h"
 #include "wave.h"
 
-const char *version_string = "1.48.03  04.Mar.14";
-const int version_phdata  = 0x014801;
+const char *version_string = "1.46.27  21.Oct.12";
+const int version_phdata  = 0x014624;
 
 int option_device_number = -1;
 FILE *f_logespeak = NULL;
@@ -67,6 +67,9 @@ int vowel_transition[4];
 int vowel_transition0;
 int vowel_transition1;
 
+int FormantTransition2(frameref_t *seq, int &n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which);
+
+
 
 static char *ReadPhFile(void *ptr, const char *fname, int *size)
 {//=============================================================
@@ -105,23 +108,22 @@ static char *ReadPhFile(void *ptr, const char *fname, int *size)
 }  //  end of ReadPhFile
 
 
-int LoadPhData(int *srate)
-{//========================
+int LoadPhData()
+{//=============
 	int ix;
 	int n_phonemes;
 	int version;
 	int result = 1;
 	int length;
-	int rate;
 	unsigned char *p;
 	int *pw;
 
 #ifdef DATA_FROM_SOURCECODE_FILES
 	long llength;
-	phoneme_tab_data = (unsigned char *) FileInMemorySet_getData (espeakdata_phons.get(), U"phontab", &llength);
-	phoneme_index = (USHORT *) FileInMemorySet_getData (espeakdata_phons.get(), U"phonindex", &llength);
-	phondata_ptr = (char *) FileInMemorySet_getData (espeakdata_phons.get(), U"phondata", &llength);
-	tunes = (TUNE *) FileInMemorySet_getData (espeakdata_phons.get(), U"intonations", &llength);
+	phoneme_tab_data = (unsigned char *) FilesInMemory_getData (espeakdata_phons, U"phontab", &llength);
+	phoneme_index = (USHORT *) FilesInMemory_getData (espeakdata_phons, U"phonindex", &llength);
+	phondata_ptr = (char *) FilesInMemory_getData (espeakdata_phons, U"phondata", &llength);
+	tunes = (TUNE *) FilesInMemory_getData (espeakdata_phons, U"intonations", &llength);
 	length = llength;
 #else
 	if((phoneme_tab_data = (unsigned char *)ReadPhFile((void *)(phoneme_tab_data),"phontab",NULL)) == NULL)
@@ -134,16 +136,14 @@ int LoadPhData(int *srate)
 		return(-1);
 #endif
 
-    wavefile_data = (unsigned char *)phondata_ptr;
+   wavefile_data = (unsigned char *)phondata_ptr;
 	n_tunes = length / sizeof(TUNE);
 
-	// read the version number and sample rate from the first 8 bytes of phondata
-	version = 0;  // bytes 0-3, version number
-	rate = 0;     // bytes 4-7, sample rate
+	// read the version number from the first 4 bytes of phondata
+	version = 0;
 	for(ix=0; ix<4; ix++)
 	{
 		version += (wavefile_data[ix] << (ix*8));
-		rate += (wavefile_data[ix+4] << (ix*8));
 	}
 
 	if(version != version_phdata)
@@ -173,8 +173,6 @@ int LoadPhData(int *srate)
 	if(phoneme_tab_number >= n_phoneme_tables)
 		phoneme_tab_number = 0;
 
-    if(srate != NULL)
-        *srate = rate;
 	return(result);
 }  //  end of LoadPhData
 
@@ -286,7 +284,7 @@ frameref_t *LookupSpect(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params,
 	// do we need to modify a frame for blending with a consonant?
 	if((this_ph->type == phVOWEL) && (fmt_params->fmt2_addr == 0) && (fmt_params->use_vowelin))
 	{
-		seq_len_adjust += FormantTransition2(frames,&nf,fmt_params->transition0,fmt_params->transition1,NULL,which);
+		seq_len_adjust += FormantTransition2(frames,nf,fmt_params->transition0,fmt_params->transition1,NULL,which);
 	}
 
 	length1 = 0;
@@ -624,7 +622,6 @@ static int CountVowelPosition(PHONEME_LIST *plist)
 static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, USHORT *p_prog, WORD_PH_DATA *worddata)
 {//========================================================================================================================
 	int which;
-	int ix;
 	unsigned int data;
 	int instn;
 	int instn2;
@@ -715,21 +712,6 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist,
                 return(false);   // no previous vowel
 				plist = &(worddata->prev_vowel);
             break;
-
-		case 9:  // next3PhW
-			for(ix=1; ix<=3; ix++)
-			{
-				if(plist[ix].sourceix)
-					return(false);
-			}
-			plist = &plist[3];
-			break;
-
-		case 10: // prev2PhW
-			if((plist[0].sourceix) || (plist[-1].sourceix))
-				return(false);
-			plist-=2;
-			break;
         }
 
 		if((which == 0) || (which == 5))
@@ -1000,9 +982,7 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_
 	phdata->pd_param[i_LENGTH_MOD] = ph->length_mod;
 
 	if(ph->program == 0)
-	{
 		return;
-	}
 
 	end_flag = 0;
 
@@ -1041,16 +1021,6 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_
 					phdata->pd_param[i_APPEND_PHONEME] = data;
 			}
 			else
-			if(instn2 == i_ADD_LENGTH)
-			{
-				if(data & 0x80)
-				{
-					// a negative value, do sign extension
-					data = -(0x100 - data);
-				}
-				phdata->pd_param[i_SET_LENGTH] += data;
-			}
-			else
 			if(instn2 == i_IPA_NAME)
 			{
 				// followed by utf-8 characters, 2 per instn word
@@ -1257,19 +1227,6 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_
         memcpy(&worddata->prev_vowel, &plist[0], sizeof(PHONEME_LIST));
     }
 
-#ifdef _ESPEAKEDIT
-    plist->std_length = phdata->pd_param[i_SET_LENGTH];
-    if(phdata->sound_addr[0] != 0)
-    {
-        plist->phontab_addr = phdata->sound_addr[0];  // FMT address
-        plist->sound_param = phdata->sound_param[0];
-    }
-    else
-    {
-        plist->phontab_addr = phdata->sound_addr[1];  // WAV address
-        plist->sound_param = phdata->sound_param[1];
-	}
-#endif
 }  // end of InterpretPhoneme
 
 
diff --git a/external/espeak/synthesize.cpp b/external/espeak/synthesize.cpp
old mode 100755
new mode 100644
index 0026e58..d4e6a76
--- a/external/espeak/synthesize.cpp
+++ b/external/espeak/synthesize.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2010 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -40,7 +40,7 @@ static void SmoothSpect(void);
 
 // list of phonemes in a clause
 int n_phoneme_list=0;
-PHONEME_LIST phoneme_list[N_PHONEME_LIST+1];
+PHONEME_LIST phoneme_list[N_PHONEME_LIST];
 
 int mbrola_delay;
 char mbrola_name[20];
@@ -82,7 +82,7 @@ const char *WordToString(unsigned int word)
 	int  ix;
 	static char buf[5];
 
-	for(ix=0; ix<4; ix++)
+	for(ix=0; ix<3; ix++)
 		buf[ix] = word >> (ix*8);
 	buf[4] = 0;
 	return(buf);
@@ -188,7 +188,7 @@ static void DoPitch(unsigned char *env, int pitch1, int pitch2)
 
 int PauseLength(int pause, int control)
 {//====================================
-	unsigned int len;
+	int len;
 
 	if(control == 0)
 	{
@@ -210,10 +210,8 @@ int PauseLength(int pause, int control)
 
 static void DoPause(int length, int control)
 {//=========================================
-// length in nominal mS
 // control = 1, less shortening at fast speeds
-	unsigned int len;
-	int srate2;
+	int len;
 
 	if(length == 0)
 		len = 0;
@@ -221,15 +219,7 @@ static void DoPause(int length, int control)
 	{
 		len = PauseLength(length, control);
 
-		if(len < 90000)
-		{
-			len = (len * samplerate) / 1000;  // convert from mS to number of samples
-		}
-		else
-		{
-			srate2 = samplerate / 25;  // avoid overflow
-			len = (len * srate2) / 40;
-		}
+		len = (len * samplerate) / 1000;  // convert from mS to number of samples
 	}
 
 	EndPitch(1);
@@ -346,7 +336,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng
 		q = wcmdq[wcmdq_tail];
 		q[0] = WCMD_WAVE2;
 		q[1] = length | (wav_length << 16);   // length in samples
-		q[2] = (long64)(&wavefile_data[index]);
+		q[2] = long64(&wavefile_data[index]);
 		q[3] = wav_scale + (amp << 8);
 		WcmdqInc();
 		return(length);
@@ -367,7 +357,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng
 	q = wcmdq[wcmdq_tail];
 	q[0] = WCMD_WAVE;
 	q[1] = x;   // length in samples
-	q[2] = (long64)(&wavefile_data[index]);
+	q[2] = long64(&wavefile_data[index]);
 	q[3] = wav_scale + (amp << 8);
 	WcmdqInc();
 
@@ -382,7 +372,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng
 		q = wcmdq[wcmdq_tail];
 		q[0] = WCMD_WAVE;
 		q[1] = len4*2;   // length in samples
-		q[2] = (long64)(&wavefile_data[index+x]);
+		q[2] = long64(&wavefile_data[index+x]);
 		q[3] = wav_scale + (amp << 8);
 		WcmdqInc();
 
@@ -398,7 +388,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng
 		q = wcmdq[wcmdq_tail];
 		q[0] = WCMD_WAVE;
 		q[1] = length;   // length in samples
-		q[2] = (long64)(&wavefile_data[index+x]);
+		q[2] = long64(&wavefile_data[index+x]);
 		q[3] = wav_scale + (amp << 8);
 		WcmdqInc();
 	}
@@ -623,7 +613,7 @@ static int VowelCloseness(frame_t *fr)
 }
 
 
-int FormantTransition2(frameref_t *seq, int *n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which)
+int FormantTransition2(frameref_t *seq, int &n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which)
 {//==============================================================================================================================
 	int ix;
 	int formant;
@@ -649,7 +639,7 @@ static short vcolouring[N_VCOLOUR][5] = {
 
 	frame_t *fr = NULL;
 
-	if(*n_frames < 2)
+	if(n_frames < 2)
 		return(0);
 
 	len = (data1 & 0x3f) * 2;
@@ -724,8 +714,8 @@ if(voice->klattv[0])
 
 			if(flags & 8)
 			{
-				fr = CopyFrame(seq[*n_frames-1].frame,0);
-				seq[*n_frames-1].frame = fr;
+				fr = CopyFrame(seq[n_frames-1].frame,0);
+				seq[n_frames-1].frame = fr;
 				rms = RMS_GLOTTAL1;
 
 				// degree of glottal-stop effect depends on closeness of vowel (indicated by f1 freq)
@@ -733,7 +723,7 @@ if(voice->klattv[0])
 			}
 			else
 			{
-				fr = DuplicateLastFrame(seq,(*n_frames)++,len);
+				fr = DuplicateLastFrame(seq,n_frames++,len);
 				if(len > 36)
 					seq_len_adjust += (len - 36);
 
@@ -747,7 +737,7 @@ if(voice->klattv[0])
 
 			if((vcolour > 0) && (vcolour <= N_VCOLOUR))
 			{
-				for(ix=0; ix < *n_frames; ix++)
+				for(ix=0; ix<n_frames; ix++)
 				{
 					fr = CopyFrame(seq[ix].frame,0);
 					seq[ix].frame = fr;
@@ -1268,7 +1258,6 @@ void DoVoiceChange(voice_t *v)
 	wcmdq[wcmdq_tail][0] = WCMD_VOICE;
 	wcmdq[wcmdq_tail][2] = (long64)v2;
 	WcmdqInc();
-	trace (U"", sizeof(voice_t), U" bytes");
 }
 
 
@@ -1388,7 +1377,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 		DoPause(0,0);    // isolate from the previous clause
 	}
 
-	while((ix < (*n_ph)) && (ix < N_PHONEME_LIST-2))
+	while(ix < (*n_ph))
 	{
 		p = &phoneme_list[ix];
 
@@ -1437,7 +1426,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 
 		EndAmplitude();
 
-		if((p->prepause > 0) && !(p->ph->phflags & phPREVOICE))
+		if(p->prepause > 0)
 			DoPause(p->prepause,1);
 
 		done_phoneme_marker = 0;
@@ -1449,7 +1438,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 			}
 			else
 			{
-				WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL);
+				WritePhMnemonic(phoneme_name, p->ph, p, use_ipa);
 				DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name);
 				done_phoneme_marker = 1;
 			}
@@ -1459,14 +1448,10 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 		{
 		case phPAUSE:
 			DoPause(p->length,0);
-#ifdef _ESPEAKEDIT
-            p->std_length = p->ph->std_length;
-#endif
 			break;
 
 		case phSTOP:
 			released = 0;
-			ph = p->ph;
 			if(next->type==phVOWEL)
 			{
 				 released = 1;
@@ -1480,23 +1465,6 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 			if(released == 0)
 				p->synthflags |= SFLAG_NEXT_PAUSE;
 
-			if(ph->phflags & phPREVOICE)
-			{
-				// a period of voicing before the release
-				memset(&fmtp, 0, sizeof(fmtp));
-				InterpretPhoneme(NULL, 0x01, p, &phdata, &worddata);
-				fmtp.fmt_addr = phdata.sound_addr[pd_FMT];
-				fmtp.fmt_amp = phdata.sound_param[pd_FMT];
-
-				if(last_pitch_cmd < 0)
-				{
-					DoAmplitude(next->amp,NULL);
-					DoPitch(envelope_data[p->env],next->pitch1,next->pitch2);
-				}
-
-				DoSpect2(ph, 0, &fmtp, p, 0);
-			}
-
 			InterpretPhoneme(NULL, 0, p, &phdata, &worddata);
 			phdata.pd_control |= pd_DONTLENGTHEN;
 			DoSample3(&phdata, 0, 0);
@@ -1780,7 +1748,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
 
 			if((option_phoneme_events) && (done_phoneme_marker == 0))
 			{
-				WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL);
+				WritePhMnemonic(phoneme_name, p->ph, p, use_ipa);
 				DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name);
 			}
 
@@ -1876,7 +1844,6 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control)
 	char *voice_change;
 	static FILE *f_text=NULL;
 	static const void *p_text=NULL;
-	const char *phon_out;
 
 	if(control == 4)
 	{
@@ -1899,6 +1866,7 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control)
 		n_phoneme_list = 0;
 		WcmdqStop();
 
+		embedded_value[EMBED_T] = 0;
 		return(0);
 	}
 
@@ -1965,18 +1933,24 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control)
 
 	if((option_phonemes > 0) || (phoneme_callback != NULL))
 	{
-		int phoneme_mode = 0;
-		if(option_phonemes >= 3)
-			phoneme_mode = 0x10 + option_phonemes-3;   // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators
+		int use_ipa = 0;
+		if(option_phonemes == 3)
+			use_ipa = 1;
 
-		phon_out = GetTranslatedPhonemeString(phoneme_mode);
+		GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa);
 		if(option_phonemes > 0)
 		{
-			fprintf(f_trans,"%s\n",phon_out);
+			fprintf(f_trans,"%s\n",translator->phon_out);
+
+			if(!iswalpha(0x010d))
+			{
+				// check that c-caron is recognized as an alphabetic character
+				fprintf(stderr,"Warning: Accented letters are not recognized, eg: U+010D\nSet LC_CTYPE to a UTF-8 locale\n");
+			}
 		}
 		if(phoneme_callback != NULL)
 		{
-			phoneme_callback(phon_out);
+			phoneme_callback(translator->phon_out);
 		}
 	}
 
diff --git a/external/espeak/synthesize.h b/external/espeak/synthesize.h
old mode 100755
new mode 100644
index bbb571a..fb9c7e7
--- a/external/espeak/synthesize.h
+++ b/external/espeak/synthesize.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2007 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -56,7 +56,7 @@
 #define EMBED_A     3   // amplitude/volume
 #define EMBED_R     4   // pitch range/expression
 #define EMBED_H     5   // echo/reverberation
-#define EMBED_T     6   // different tone for announcing punctuation (not used)
+#define EMBED_T     6   // different tone for announcing punctuation
 #define EMBED_I     7   // sound icon
 #define EMBED_S2    8   // speed (used in synthesize)
 #define EMBED_Y     9   // say-as commands
@@ -72,7 +72,6 @@ extern int embedded_default[N_EMBEDDED_VALUES];
 
 
 #define N_PEAKS   9
-#define N_PEAKS2  9     // plus Notch and Fill (not yet implemented)
 #define N_MARKERS 8
 
 #define N_KLATTP   10   // this affects the phoneme data file format
@@ -193,26 +192,26 @@ typedef struct {
 
 // a clause translated into phoneme codes (first stage)
 typedef struct {
-	unsigned short synthflags;  // NOTE Put shorts on 32bit boundaries, because of RISC OS compiler bug?
 	unsigned char phcode;
 	unsigned char stresslevel;
-	unsigned short sourceix;  // ix into the original source text string, only set at the start of a word
-	unsigned char wordstress;  // the highest level stress in this word
+	unsigned char wordstress;
 	unsigned char tone_ph;    // tone phoneme to use with this vowel
+	unsigned short synthflags;
+	unsigned short sourceix;  // ix into the original source text string, only set at the start of a word
 } PHONEME_LIST2;
 
 
 typedef struct {
 // The first section is a copy of PHONEME_LIST2
-	unsigned short synthflags;
 	unsigned char phcode;
 	unsigned char stresslevel;
-	unsigned short sourceix;  // ix into the original source text string, only set at the start of a word
 	unsigned char wordstress;  // the highest level stress in this word
 	unsigned char tone_ph;    // tone phoneme to use with this vowel
+	unsigned short synthflags;
+	unsigned short sourceix;  // ix into the original source text string, only set at the start of a word
 
 	PHONEME_TAB *ph;
-	unsigned int length;  // length_mod
+	short length;  // length_mod
 	unsigned char env;    // pitch envelope number
 	unsigned char type;
 	unsigned char prepause;
@@ -221,11 +220,6 @@ typedef struct {
 	unsigned char newword;   // bit 0=start of word, bit 1=end of clause, bit 2=start of sentence
 	unsigned char pitch1;
 	unsigned char pitch2;
-#ifdef _ESPEAKEDIT
-	unsigned char std_length;
-	unsigned int phontab_addr;
-	int sound_param;
-#endif
 } PHONEME_LIST;
 
 
@@ -239,7 +233,6 @@ typedef struct {
 #define pd_INSERTPHONEME   i_INSERT_PHONEME
 #define pd_APPENDPHONEME   i_APPEND_PHONEME
 #define pd_CHANGEPHONEME   i_CHANGE_PHONEME
-#define pd_CHANGE_NEXTPHONEME  i_REPLACE_NEXT_PHONEME
 #define pd_LENGTHMOD       i_SET_LENGTH
 
 #define pd_FORNEXTPH     0x2
@@ -351,7 +344,6 @@ typedef struct {
 // phflags
 #define i_isSibilant   0x45    // bit 5 in phflags
 #define i_isPalatal    0x49    // bit 9 in phflags
-#define i_isLong       0x55    // bit 21 in phflags
 #define i_isRhotic     0x57    // bit 23 in phflags
 #define i_isFlag1      0x5c
 #define i_isFlag2      0x5d
@@ -380,7 +372,7 @@ typedef struct {
 typedef struct {
 	int pause_factor;
 	int clause_pause_factor;
-	unsigned int min_pause;
+	int min_pause;
 	int wav_factor;
 	int lenmod_factor;
 	int lenmod2_factor;
@@ -442,7 +434,7 @@ extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB];
 
 // list of phonemes in a clause
 extern int n_phoneme_list;
-extern PHONEME_LIST phoneme_list[N_PHONEME_LIST+1];
+extern PHONEME_LIST phoneme_list[N_PHONEME_LIST];
 extern unsigned int embedded_list[];
 
 extern unsigned char env_fall[128];
@@ -517,8 +509,7 @@ unsigned int LookupSound(PHONEME_TAB *ph1, PHONEME_TAB *ph2, int which, int *mat
 frameref_t *LookupSpect(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params,  int *n_frames, PHONEME_LIST *plist);
 
 unsigned char *LookupEnvelope(int ix);
-int LoadPhData(int *srate);
-void FreePhData(void);
+int LoadPhData();
 
 void SynthesizeInit(void);
 int  Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume);
@@ -534,8 +525,6 @@ int  SelectPhonemeTableName(const char *name);
 void Write4Bytes(FILE *f, int value);
 int Read4Bytes(FILE *f);
 int Reverse4Bytes(int word);
-void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len);
-char *DecodeRule(const char *group_chars, int group_length, char *rule, int control);
 int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, char *err_name,int flags);
 
 
@@ -577,10 +566,8 @@ void MbrolaReset(void);
 void DoEmbedded(int *embix, int sourceix);
 void DoMarker(int type, int char_posn, int length, int value);
 void DoPhonemeMarker(int type, int char_posn, int length, char *name);
-void DoSonicSpeed(int value);
 int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp);
 int DoSpect2(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params,  PHONEME_LIST *plist, int modulation);
-int FormantTransition2(frameref_t *seq, int *n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which);
 int PauseLength(int pause, int control);
 int LookupPhonemeTable(const char *name);
 unsigned char *GetEnvelope(int index);
diff --git a/external/espeak/tr_languages.cpp b/external/espeak/tr_languages.cpp
index 41b87ee..4132d62 100644
--- a/external/espeak/tr_languages.cpp
+++ b/external/espeak/tr_languages.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -39,7 +39,6 @@
 #define L_qa   0x716100
 #define L_grc  0x677263   // grc  Ancient Greek
 #define L_jbo  0x6a626f   // jbo  Lojban
-#define L_mni  0x6d6e69   // mni  Manipuri
 #define L_pap  0x706170   // pap  Papiamento]
 #define L_qvi  0x717669   // qvi  Kichwa
 #define L_shs  0x736873   // shs  Shuswap / Secwepemctsin
@@ -49,7 +48,6 @@
 #define OFFSET_GREEK    0x380
 #define OFFSET_CYRILLIC 0x420
 #define OFFSET_ARMENIAN 0x530
-#define OFFSET_HEBREW   0x590
 #define OFFSET_ARABIC   0x600
 #define OFFSET_THAANA   0x780      // Divehi/Maldives
 #define OFFSET_DEVANAGARI  0x900
@@ -62,82 +60,12 @@
 #define OFFSET_KANNADA  0xc80
 #define OFFSET_MALAYALAM 0xd00
 #define OFFSET_SINHALA  0x0d80
-#define OFFSET_THAI     0x0e00
-#define OFFSET_LAO      0x0e80
 #define OFFSET_TIBET    0x0f00
-#define OFFSET_MYANMAR  0x1000
-#define OFFSET_GEORGIAN 0x10a0
+#define OFFSET_GEORGIAN 0x1080
 #define OFFSET_KOREAN   0x1100
 #define OFFSET_ETHIOPIC 0x1200
 
 
-// character ranges must be listed in ascending order
-ALPHABET alphabets [] = {
-    {"_el",    OFFSET_GREEK,    0x380, 0x3ff,  L('e','l'), AL_DONT_NAME | AL_NOT_LETTERS},
-    {"_cyr",   OFFSET_CYRILLIC, 0x400, 0x52f,  0, 0},
-    {"_hy",    OFFSET_ARMENIAN, 0x530, 0x58f,  L('h','y'), AL_WORDS},
-    {"_he",    OFFSET_HEBREW,   0x590, 0x5ff,  0, 0},
-    {"_ar",    OFFSET_ARABIC,   0x600, 0x6ff,  0, 0},
-    {"_dv",    OFFSET_THAANA,   0x780, 0x7bf,  0, 0},
-    {"_hi",    OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS},
-    {"_bn",    OFFSET_BENGALI,  0x0980, 0x9ff, L('b','n'), AL_WORDS},
-    {"_gur",   OFFSET_GURMUKHI, 0xa00, 0xa7f,  L('p','a'), AL_WORDS},
-    {"_gu",    OFFSET_GUJARATI, 0xa80, 0xaff,  L('g','u'), AL_WORDS},
-    {"_or",    OFFSET_ORIYA,    0xb00, 0xb7f,  0, 0},
-    {"_ta",    OFFSET_TAMIL,    0xb80, 0xbff,  L('t','a'), AL_WORDS},
-    {"_te",    OFFSET_TELUGU,   0xc00, 0xc7f,  L('t','e'), 0},
-    {"_kn",    OFFSET_KANNADA,  0xc80, 0xcff,  L('k','n'), AL_WORDS},
-    {"_ml",    OFFSET_MALAYALAM,0xd00, 0xd7f,  L('m','l'), AL_WORDS},
-    {"_si",    OFFSET_SINHALA,  0xd80, 0xdff,  L('s','i'), AL_WORDS},
-    {"_th",    OFFSET_THAI,     0xe00, 0xe7f,  0, 0},
-    {"_lo",    OFFSET_LAO,      0xe80, 0xeff,  0, 0},
-    {"_ti",    OFFSET_TIBET,    0xf00, 0xfff,  0, 0},
-    {"_my",    OFFSET_MYANMAR,  0x1000,0x109f, 0, 0},
-    {"_ka",    OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS},
-    {"_ko",    OFFSET_KOREAN,   0x1100,0x11ff, L('k','o'), AL_WORDS},
-    {"_eth",   OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0},
-    {"_braille", 0x2800,        0x2800,0x28ff, 0, AL_NO_SYMBOL},
-    {"_ja",    0x3040,          0x3040,0x30ff, 0, AL_NOT_CODE},
-    {"_zh",    0x3100,          0x3100,0x9fff, 0, AL_NOT_CODE},
-    {"_ko",    0xa700,          0xa700,0xd7ff, L('k','o'), AL_NOT_CODE | AL_WORDS},
-    {NULL, 0, 0, 0, 0, 0}
-};
-
-
-ALPHABET *AlphabetFromName(const char *name)
-{//==========================================
-	ALPHABET *alphabet;
-
-	for(alphabet=alphabets; alphabet->name != NULL; alphabet++)
-	{
-		if(strcmp(name, &alphabet->name[1]) == 0)
-			return(alphabet);
-	}
-	return(NULL);
-}
-
-
-ALPHABET *AlphabetFromChar(int c)
-{//===============================
-	// Find the alphabet from a character.
-	ALPHABET *alphabet = alphabets;
-
-	while(alphabet->name != NULL)
-	{
-		if(c <= alphabet->range_max)
-		{
-			if(c >= alphabet->range_min)
-				return(alphabet);
-			else
-				break;
-		}
-		alphabet++;
-	}
-	return(NULL);
-}
-
-
-
 static void Translator_Russian(Translator *tr);
 
 
@@ -165,7 +93,7 @@ static void SetLetterBits(Translator *tr, int group, const char *string)
 {//=====================================================================
 	int bits;
 	unsigned char c;
-
+	
 	bits = (1L << group);
 	while((c = *string++) != 0)
 		tr->letter_bits[c] |= bits;
@@ -185,21 +113,16 @@ static void SetLetterBitsRange(Translator *tr, int group, int first, int last)
 
 // ignore these characters
 static const unsigned short chars_ignore_default[] = {
-	0xad,    1, // soft hyphen
 	0x200c,  1, // zero width non-joiner
 	0x200d,  1, // zero width joiner
 	0, 0 };
 
 // alternatively, ignore characters but allow zero-width-non-joiner (lang-fa)
 static const unsigned short chars_ignore_zwnj_hyphen[] = {
-	0xad,    1, // soft hyphen
-	0x640,   1, // igniore Arabic Tatweel (lang=FA)
 	0x200c,  '-', // zero width non-joiner, replace with hyphen
 	0x200d,  1, // zero width joiner
 	0, 0 };
 
-const char string_ordinal[] = {static_cast<char>(0xc2),static_cast<char>(0xba),0};  // masculine ordinal character, UTF-8
-
 
 static Translator* NewTranslator(void)
 {//===================================
@@ -211,29 +134,6 @@ static Translator* NewTranslator(void)
 	static const wchar_t punct_in_word[2] = {'\'', 0};  // allow hyphen within words
 	static const unsigned char default_tunes[6] = {0, 1, 2, 3, 0, 0};
 
-// Translates character codes in the range transpose_min to transpose_max to
-// a number in the range 1 to 63.  0 indicates there is no translation.
-// Used up to 57 (max of 63)
-static const char transpose_map_latin[] = {
- 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,  // 0x60
-16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,  0,  0,  0,  0,  0,  // 0x70
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x80
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x90
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0xa0
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0xb0
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0xc0
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0xd0
-27, 28, 29,  0,  0, 30, 31, 32, 33, 34, 35, 36,  0, 37, 38,  0,  // 0xe0
- 0,  0,  0, 39,  0,  0, 40,  0, 41,  0, 42,  0, 43,  0,  0,  0,  // 0xf0
- 0,  0,  0, 44,  0, 45,  0, 46,  0,  0,  0,  0,  0, 47,  0,  0,  // 0x100
- 0, 48,  0,  0,  0,  0,  0,  0,  0, 49,  0,  0,  0,  0,  0,  0,  // 0x110
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x120
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x130
- 0,  0, 50,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x140
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  0,  0,  0,  0,  // 0x150
- 0, 53,  0, 54,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x160
- 0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 55,  0, 56,  0, 57,  0,  // 0x170
-};
 
 	tr = (Translator *)Alloc(sizeof(Translator));
 	if(tr == NULL)
@@ -241,15 +141,12 @@ static const char transpose_map_latin[] = {
 
 	tr->charset_a0 = charsets[1];   // ISO-8859-1, this is for when the input is not utf8
 	dictionary_name[0] = 0;
-	tr->dictionary_name[0] = 0;
 	tr->dict_condition=0;
-	tr->dict_min_size = 0;
 	tr->data_dictrules = NULL;     // language_1   translation rules file
 	tr->data_dictlist = NULL;      // language_2   dictionary lookup file
 
-	tr->transpose_min = 0x60;
-	tr->transpose_max = 0x17f;
-	tr->transpose_map = transpose_map_latin;
+	tr->transpose_min = 'a';
+	tr->transpose_max = 'z';
 	tr->frequent_pairs = NULL;
 
 	// only need lower case
@@ -294,9 +191,8 @@ static const char transpose_map_latin[] = {
 	tr->langopts.param2[LOPT_BRACKET_PAUSE] = 2;    // pauses when announcing bracket names
 	tr->langopts.max_initial_consonants = 3;
 	tr->langopts.replace_chars = NULL;
-	tr->langopts.ascii_language[0] = 0;    // Non-Latin alphabet languages, use this language to speak Latin words, default is English
-	tr->langopts.alt_alphabet_lang = L('e','n');
-	tr->langopts.roman_suffix = "";
+	tr->langopts.ascii_language = "";    // Non-Latin alphabet languages, use this language to speak Latin words, default is English
+
 
 	SetLengthMods(tr,201);
 //	tr->langopts.length_mods = length_mods_en;
@@ -320,7 +216,7 @@ static const char transpose_map_latin[] = {
 
 // common letter pairs, encode these as a single byte
 //  2 bytes, using the transposed character codes
-static const short pairs_ru[] = {
+static const short pairs_ru[] = { 
 0x010c, //  ла   21052  0x23
 0x010e, //  на   18400
 0x0113, //  та   14254
@@ -357,7 +253,7 @@ static const short pairs_ru[] = {
 
 
 
-static const unsigned int replace_cyrillic_latin[] =
+static const unsigned int replace_cyrillic_latin[] = 
 	{0x430,'a',
 	0x431,'b',
 	0x446,'c',
@@ -408,7 +304,6 @@ static void SetCyrillicLetters(Translator *tr)
 	tr->charset_a0 = charsets[18];   // KOI8-R
 	tr->transpose_min = 0x430;  // convert cyrillic from unicode into range 0x01 to 0x22
 	tr->transpose_max = 0x451;
-	tr->transpose_map = NULL;
 	tr->frequent_pairs = pairs_ru;
 
 	tr->letter_bits_offset = OFFSET_CYRILLIC;
@@ -424,7 +319,7 @@ static void SetCyrillicLetters(Translator *tr)
 }  // end of SetCyrillicLetters
 
 
-static void SetIndicLetters(Translator *tr)
+void SetIndicLetters(Translator *tr)
 {//=================================
 	// Set letter types for Indic scripts, Devanagari, Tamill, etc
 	static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x7b,0x7c,0x7e,0x7f,0};
@@ -450,7 +345,7 @@ static void SetIndicLetters(Translator *tr)
 }
 
 
-static void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps)
+void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps)
 {//==================================================================================
 	if(lengths != NULL)
 		memcpy(tr->stress_lengths,lengths,sizeof(tr->stress_lengths));
@@ -464,9 +359,6 @@ Translator *SelectTranslator(const char *name)
 	int name2 = 0;
 	Translator *tr;
 
-	static const short stress_lengths_equal[8] = {230, 230,  230, 230,  0, 0,  230, 230};
-	static const unsigned char stress_amps_equal[8] = {19,19, 19,19, 19,19, 19,19 };
-
 	static const short stress_lengths_fr[8] = {190, 170,  190, 200,  0, 0,  190, 240};
 	static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 };
 
@@ -474,16 +366,14 @@ Translator *SelectTranslator(const char *name)
 	static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};
 
 	static const short stress_lengths_ta[8] = {200, 200,  210, 210,  0, 0,  230, 230};
-	static const short stress_lengths_ta2[8] = {230, 230,  240, 240,  0, 0,  260, 260};
 	static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 };
 
-	tr = NewTranslator();
-	strcpy(tr->dictionary_name, name);
-
 	// convert name string into a word of up to 4 characters, for the switch()
 	while(*name != 0)
 		name2 = (name2 << 8) + *name++;
 
+	tr = NewTranslator();
+
 	switch(name2)
 	{
 	case L('a','f'):
@@ -496,7 +386,7 @@ Translator *SelectTranslator(const char *name)
 			tr->langopts.param[LOPT_DIERESES] = 1;
 			tr->langopts.param[LOPT_PREFIXES] = 1;
 			SetLetterVowel(tr,'y');  // add 'y' to vowels
-
+		
 			tr->langopts.numbers = NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_SINGLE_AND | NUM_ROMAN | NUM_1900;
 			tr->langopts.accents = 1;
 		}
@@ -507,7 +397,7 @@ Translator *SelectTranslator(const char *name)
 			SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
 			tr->letter_bits_offset = OFFSET_ETHIOPIC;
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM;  // don't use secondary stress
+			tr->langopts.stress_flags = 0x0024;  // don't use secondary stress
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 			tr->langopts.numbers = NUM_OMIT_1_HUNDRED;
@@ -525,7 +415,6 @@ Translator *SelectTranslator(const char *name)
 		{
 			SetCyrillicLetters(tr);
 			SetLetterVowel(tr,0x2a);
-			tr->charset_a0 = charsets[5];   // ISO-8859-5
 			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432;    // [v]  don't count this character at start of word
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107;  // devoice at end of word, and change voicing to match a following consonant (except v)
 			tr->langopts.param[LOPT_REDUCE] = 2;
@@ -536,8 +425,6 @@ Translator *SelectTranslator(const char *name)
 		break;
 
 	case L('b','n'):  // Bengali
-	case L('a','s'):  // Assamese
-	case L_mni:  // Manipuri  (temporary placement - it's not indo-european)
 		{
 			static const short stress_lengths_bn[8] = {180, 180,  210, 210,  0, 0,  230, 240};
 			static const unsigned char stress_amps_bn[8] = {18,18, 18,18, 20,20, 22,22 };
@@ -546,13 +433,12 @@ Translator *SelectTranslator(const char *name)
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags =  S_MID_DIM | S_FINAL_DIM;   // use 'diminished' for unstressed final syllable
+			tr->langopts.stress_flags =  0x10004;   // use 'diminished' for unstressed final syllable
 			tr->letter_bits_offset = OFFSET_BENGALI;
 			SetIndicLetters(tr);   // call this after setting OFFSET_BENGALI
-			SetLetterBitsRange(tr,LETTERGP_B,0x01,0x01);   // candranindu
 			SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c);   // vowel signs, but not virama
 
-			tr->langopts.numbers = NUM_SWAP_TENS;
+			tr->langopts.numbers = 0x1;
 			tr->langopts.break_numbers = 0x24924aa8;  // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
 		}
 		break;
@@ -583,7 +469,7 @@ Translator *SelectTranslator(const char *name)
 //			tr->langopts.intonation_group = 4;
 
 			// 'diminished' is an unstressed final syllable
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags =  0x6 | 0x10; 
 			tr->langopts.unstressed_wd1 = 0;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_SONORANT_MIN] = 120;  // limit the shortening of sonorants before short vowels
@@ -619,7 +505,7 @@ Translator *SelectTranslator(const char *name)
 			tr->langopts.param[LOPT_PREFIXES] = 1;
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100;  // devoice at end of word
 			tr->langopts.param[LOPT_LONG_VOWEL_THRESHOLD] = 175/2;
-
+		
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_ALLOW_SPACE | NUM_ORDINAL_DOT | NUM_ROMAN;
 //			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ALLOW_SPACE | NUM_ORDINAL_DOT | NUM_ROMAN;
 			SetLetterVowel(tr,'y');
@@ -634,9 +520,9 @@ Translator *SelectTranslator(const char *name)
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->letter_bits_offset = OFFSET_THAANA;
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags =  S_MID_DIM | S_FINAL_DIM;   // use 'diminished' for unstressed final syllable
+			tr->langopts.stress_flags =  0x10004;   // use 'diminished' for unstressed final syllable
 			SetLetterBitsRange(tr,LETTERGP_B,0x26,0x30);   // vowel signs, and virama
-			tr->langopts.break_numbers = 0x14a8;  // 1000, 100,000  10,000,000
+			tr->langopts.break_numbers = 0x14a8;  // 1000, 100,000  10,000,000 
 			tr->langopts.numbers = 1;
 		}
 		break;
@@ -664,10 +550,10 @@ Translator *SelectTranslator(const char *name)
 
 			// character codes offset by 0x380
 			static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0};
-			static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ  έ ή ί ύ _
-			static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0};  // θ κ ξ π ς σ τ φ χ _
+			static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ  έ ή ί ύ
+			static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0};  // θ κ ξ π ς σ τ φ χ 
 			static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0};
-			static const wchar_t el_char_apostrophe[] = {0x3c3,0};  // σ _
+			static const wchar_t el_char_apostrophe[] = {0x3c3,0};  // σ
 
 			SetupTranslator(tr,stress_lengths_el,stress_amps_el);
 
@@ -680,17 +566,17 @@ Translator *SelectTranslator(const char *name)
 			SetLetterBits(tr,LETTERGP_VOWEL2,el_vowels);
 			SetLetterBits(tr,LETTERGP_B,el_voiceless);
 			SetLetterBits(tr,LETTERGP_C,el_consonants);
-			SetLetterBits(tr,LETTERGP_Y,el_fvowels);    // front vowels: ε η ι υ _
+			SetLetterBits(tr,LETTERGP_Y,el_fvowels);    // front vowels: ε η ι υ
 
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY;  // mark unstressed final syllables as diminished
+			tr->langopts.stress_flags = 0x6;  // mark unstressed final syllables as diminished
 			tr->langopts.unstressed_wd1 = 0;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_SONORANT_MIN] = 130;  // limit the shortening of sonorants before short vowels
 
-			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA;
-			tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND;   // variant form of numbers before thousands
+			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA; 
+			tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL;   // variant form of numbers before thousands
 
 			if(name2 == L_grc)
 			{
@@ -705,7 +591,7 @@ Translator *SelectTranslator(const char *name)
 			static const short stress_lengths_eo[8] = {150, 150,  230, 180,    0,   0,  300, 320};
 			static const unsigned char stress_amps_eo[] = {16,14, 20,20, 20,22, 22,21 };
 			static const wchar_t eo_char_apostrophe[2] = {'l',0};
-
+		
 			SetupTranslator(tr,stress_lengths_eo,stress_amps_eo);
 
 			tr->charset_a0 = charsets[3];  // ISO-8859-3
@@ -714,7 +600,7 @@ Translator *SelectTranslator(const char *name)
 //			tr->langopts.word_gap = 1;
 			tr->langopts.vowel_pause = 2;
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags =  0x6 | 0x10; 
 //			tr->langopts.unstressed_wd1 = 3;
 			tr->langopts.unstressed_wd2 = 2;
 
@@ -723,7 +609,6 @@ Translator *SelectTranslator(const char *name)
 		break;
 
 	case L('e','s'):   // Spanish
-	case L('a','n'):   // Aragonese
 	case L('c','a'):   // Catalan
 	case L_pap:        // Papiamento
 		{
@@ -738,33 +623,23 @@ Translator *SelectTranslator(const char *name)
 
 			// stress last syllable if it doesn't end in vowel or "s" or "n"
 			// 'diminished' is an unstressed final syllable
-			tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; 
 			tr->langopts.unstressed_wd1 = 0;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_SONORANT_MIN] = 120;  // limit the shortening of sonorants before short vowels
 
 			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER;
-			tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND;
+			tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL; 
 
 			if(name2 == L('c','a'))
 			{
-				// stress last syllable unless word ends with a vowel
 				tr->punct_within_word = ca_punct_within_word;
-				tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2;
-			}
-			else
-			if(name2 == L('a','n'))
-			{
-				tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
-				tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
-				tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
-				tr->langopts.roman_suffix = string_ordinal;
+				tr->langopts.stress_flags = 0x200 | 0x6 | 0x30;  // stress last syllable unless word ends with a vowel
 			}
 			else
 			if(name2 == L_pap)
 			{
-				// stress last syllable unless word ends with a vowel
-				tr->langopts.stress_flags = S_FINAL_STRESS_C | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2;
+				tr->langopts.stress_flags = 0x100 | 0x6 | 0x30;  // stress last syllable unless word ends with a vowel
 			}
 			else
 			{
@@ -779,32 +654,14 @@ Translator *SelectTranslator(const char *name)
 			static const unsigned char stress_amps_eu[8] = {16,16, 18,18, 18,18, 18,18 };
 			SetupTranslator(tr,stress_lengths_eu,stress_amps_eu);
 			tr->langopts.stress_rule = STRESSPOSN_2L;  // ?? second syllable ??
-			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL;
+			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_VIGESIMAL;
 		}
 		break;
 
 
 	case L('f','a'):   // Farsi
 		{
- 			// Convert characters in the range 0x620 to 0x6cc to the range 1 to 63.
-			// 0 indicates no translation for this character
-			static const char transpose_map_fa[] = {
-			 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,  // 0x620
-			16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,  0,  0,  0,  0,  0,  // 0x630
-			 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,  // 0x640
-			42, 43,  0,  0, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x650
-			 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x660
-			 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 45,  0,  // 0x670
-			 0,  0,  0,  0,  0,  0, 46,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x680
-			 0,  0,  0,  0,  0,  0,  0,  0, 47,  0,  0,  0,  0,  0,  0,  0,  // 0x690
-			 0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0, 49,  // 0x6a0
-			 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 0x6b0
-			50,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51  };           // 0x6c0
-			tr->transpose_min = 0x620;
-			tr->transpose_max = 0x6cc;
-			tr->transpose_map = transpose_map_fa;
 			tr->letter_bits_offset = OFFSET_ARABIC;
-
 			tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND;
 			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 
@@ -824,7 +681,7 @@ Translator *SelectTranslator(const char *name)
 			SetupTranslator(tr,stress_lengths_fi,stress_amps_fi);
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_2_TO_HEAVY;  // move secondary stress from light to a following heavy syllable
+			tr->langopts.stress_flags = 0x56;  // move secondary stress from light to a following heavy syllable
 			tr->langopts.param[LOPT_IT_DOUBLING] = 1;
 			tr->langopts.long_stop = 130;
 
@@ -840,7 +697,7 @@ Translator *SelectTranslator(const char *name)
 		{
 			SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
 			tr->langopts.stress_rule = STRESSPOSN_1R;      // stress on final syllable
-			tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM;  // don't use secondary stress
+			tr->langopts.stress_flags = 0x0024;  // don't use secondary stress
 			tr->langopts.param[LOPT_IT_LENGTHEN] = 1;    // remove lengthen indicator from unstressed syllables
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->langopts.accents = 2;   // Say "Capital" after the letter.
@@ -850,23 +707,9 @@ Translator *SelectTranslator(const char *name)
 		}
 		break;
 
-	case L('g','a'):   // irish
-	case L('g','d'):   // scots gaelic
-		{
-			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_NO_AUTO_2;  // don't use secondary stress
-			tr->langopts.numbers = NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND;
-			tr->langopts.accents = 2;  // 'capital' after letter name
-			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 3;  // don't count apostrophe
-			tr->langopts.param[LOPT_IT_LENGTHEN] = 1;    // remove [:] phoneme from non-stressed syllables (Lang=gd)
-		}
-		break;
-
 	case L('h','i'):    // Hindi
 	case L('n','e'):    // Nepali
-	case L('o','r'):    // Oriya
 	case L('p','a'):    // Punjabi
-	case L('g','u'):    // Gujarati
 		{
 			static const short stress_lengths_hi[8] = {190, 190,  210, 210,  0, 0,  230, 250};
 			static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,22, 22,21 };
@@ -876,7 +719,7 @@ Translator *SelectTranslator(const char *name)
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 
 			tr->langopts.stress_rule = 6;      // stress on last heaviest syllable, excluding final syllable
-			tr->langopts.stress_flags =  S_MID_DIM | S_FINAL_DIM;   // use 'diminished' for unstressed final syllable
+			tr->langopts.stress_flags =  0x10004;   // use 'diminished' for unstressed final syllable
 			tr->langopts.numbers = NUM_SWAP_TENS;
 			tr->langopts.break_numbers = 0x14aa8;  // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
 			tr->letter_bits_offset = OFFSET_DEVANAGARI;
@@ -885,26 +728,12 @@ Translator *SelectTranslator(const char *name)
 			{
 				tr->letter_bits_offset = OFFSET_GURMUKHI;
 			}
-			else
-			if(name2 == L('g','u'))
-			{
-SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
-			    tr->letter_bits_offset = OFFSET_GUJARATI;
-			    tr->langopts.stress_rule = STRESSPOSN_2R;
-			}
-			else
 			if(name2 == L('n','e'))
 			{
-SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 				tr->langopts.break_numbers = 0x2aaaa8;
 				tr->langopts.max_digits = 22;
 				tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS;
 			}
-			else
-			if(name2 == L('o','r'))
-			{
-				tr->letter_bits_offset = OFFSET_ORIYA;
-			}
 			SetIndicLetters(tr);
 		}
 		break;
@@ -918,8 +747,6 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 			static const short stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230};
 			static const short stress_lengths_sr[8] = {160,150, 200,200, 0,0, 250,260};
 
-			strcpy(tr->dictionary_name, "hbs");
-
 			if(name2 == L('s','r'))
 				SetupTranslator(tr,stress_lengths_sr,stress_amps_hr);
 			else
@@ -927,7 +754,7 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 			tr->charset_a0 = charsets[2];   // ISO-8859-2
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_FINAL_NO_2;
+			tr->langopts.stress_flags = 0x10;  
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3;
  			tr->langopts.max_initial_consonants = 5;
 			tr->langopts.spelling_stress = 1;
@@ -936,7 +763,6 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_DECIMAL_COMMA | NUM_THOUS_SPACE | NUM_DFRACTION_2 | NUM_ROMAN_CAPITALS;
 			tr->langopts.numbers2 = 0xa + NUM2_THOUSANDS_VAR5;  // variant numbers before thousands,milliards
 			tr->langopts.replace_chars = replace_cyrillic_latin;
-			tr->langopts.our_alphabet = OFFSET_CYRILLIC;   // don't say "cyrillic" before letter names
 
 			SetLetterVowel(tr,'y');
 			SetLetterVowel(tr,'r');
@@ -947,7 +773,7 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 	case L('h','t'):  // Haitian Creole
 //			memcpy(tr->stress_lengths,stress_lengths_fr,sizeof(tr->stress_lengths));
 			tr->langopts.stress_rule = STRESSPOSN_1R;      // stress on final syllable
-			tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM;  // don't use secondary stress
+			tr->langopts.stress_flags = 0x0024;  // don't use secondary stress
 			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_OMIT_1_HUNDRED | NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL | NUM_DFRACTION_4;
 		break;
 
@@ -962,7 +788,7 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
 
 			tr->langopts.vowel_pause = 0x20;
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2 | 0x8000 | S_HYPEN_UNSTRESS;
+			tr->langopts.stress_flags = 0x8036 | S_HYPEN_UNSTRESS;
 			tr->langopts.unstressed_wd1 = 2;
 			tr->langopts.param[LOPT_IT_DOUBLING] = 1;
 			tr->langopts.param[LOPT_ANNOUNCE_PUNCT] = 2;  // don't break clause before announcing . ? !
@@ -983,8 +809,7 @@ SetLengthMods(tr,3);  // all equal
 			static const short stress_lengths_hy[8] = {250, 200,  250, 250,  0, 0,  250, 250};
 			static const char hy_vowels[] = {0x31, 0x35, 0x37, 0x38, 0x3b, 0x48, 0x55, 0};
 			static const char hy_consonants[] = {0x32,0x33,0x34,0x36,0x39,0x3a,0x3c,0x3d,0x3e,0x3f,
-				0x40,0x41,0x42,0x43,0x44,   0x46,0x47,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0};
-			static const char hy_consonants2[] = {0x45,0};
+				0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0};
 
 			SetupTranslator(tr,stress_lengths_hy,NULL);
 			tr->langopts.stress_rule = STRESSPOSN_1R;  // default stress on final syllable
@@ -993,17 +818,14 @@ SetLengthMods(tr,3);  // all equal
 			memset(tr->letter_bits,0,sizeof(tr->letter_bits));
 			SetLetterBits(tr,LETTERGP_A,hy_vowels);
 			SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels);
-			SetLetterBits(tr,LETTERGP_B,hy_consonants);    // not including 'j'
 			SetLetterBits(tr,LETTERGP_C,hy_consonants);
-			SetLetterBits(tr,LETTERGP_C,hy_consonants2);   // add 'j'
 			tr->langopts.max_initial_consonants = 6;
-			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED;
-		//	tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
+			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;
+//	tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 		}
 		break;
 
 	case L('i','d'):   // Indonesian
-	case L('m','s'):   // Malay
 		{
 			static const short stress_lengths_id[8] = {160, 200,  180, 180,  0, 0,  220, 240};
 			static const unsigned char stress_amps_id[8] = {16,18, 18,18, 20,22, 22,21 };
@@ -1011,7 +833,7 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_id,stress_amps_id);
 			tr->langopts.stress_rule = STRESSPOSN_2R;
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_ROMAN;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags =  0x6 | 0x10; 
 			tr->langopts.accents = 2;  // "capital" after letter name
 		}
 		break;
@@ -1023,7 +845,7 @@ SetLengthMods(tr,3);  // all equal
 
 			SetupTranslator(tr,stress_lengths_is,NULL);
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_FINAL_NO_2;
+			tr->langopts.stress_flags = 0x10;
 			tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11;    // remove lengthen indicator from unstressed vowels
 			tr->langopts.param[LOPT_REDUCE] = 2;
 
@@ -1046,16 +868,16 @@ SetLengthMods(tr,3);  // all equal
 
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_NO_2 | S_PRIORITY_STRESS;
+			tr->langopts.stress_flags = 0x10 | 0x20000; 
 			tr->langopts.vowel_pause = 1;
 			tr->langopts.unstressed_wd1 = 2;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_IT_LENGTHEN] = 2;    // remove lengthen indicator from unstressed or non-penultimate syllables
-			tr->langopts.param[LOPT_IT_DOUBLING] = 1;    // double the first consonant if the previous word ends in a stressed vowel (changed to =1, 23.01.2014 - only use if prev.word has $double)
+			tr->langopts.param[LOPT_IT_DOUBLING] = 2;    // double the first consonant if the previous word ends in a stressed vowel
 			tr->langopts.param[LOPT_SONORANT_MIN] = 130;  // limit the shortening of sonorants before short vowels
 			tr->langopts.param[LOPT_REDUCE] = 1;        // reduce vowels even if phonemes are specified in it_list
 			tr->langopts.param[LOPT_ALT] = 2;      // call ApplySpecialAttributes2() if a word has $alt or $alt2
-			tr->langopts.numbers = NUM_SINGLE_VOWEL | NUM_OMIT_1_HUNDRED |NUM_DECIMAL_COMMA | NUM_ROMAN | NUM_DFRACTION_1 | NUM_ROMAN_CAPITALS | NUM_ROMAN_AFTER;
+			tr->langopts.numbers = NUM_SINGLE_VOWEL | NUM_OMIT_1_HUNDRED |NUM_DECIMAL_COMMA | NUM_ROMAN | NUM_DFRACTION_1;
 			tr->langopts.accents = 2;   // Say "Capital" after the letter.
 			SetLetterVowel(tr,'y');
 		}
@@ -1080,10 +902,8 @@ SetLengthMods(tr,3);  // all equal
 	case L('k','a'):   // Georgian
 		{
 			// character codes offset by 0x1080
-			static const char ka_vowels[] = {0x30,0x34,0x38,0x3d,0x43,0x55,0x57,0};
-			static const char ka_consonants[] =
-				{0x31,0x32,0x33,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x41,0x42,0x44,
-				0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0};
+			static const char ka_vowels[] = {0x50,0x54,0x58,0x5d,0x63,0x75,0x77,0};
+			static const char ka_consonants[] = {0x51,0x52,0x53,0x55,0x56,0x57,0x59,0x5a,0x5b,0x5c,0x5e,0x5f,0x60,0x61,0x62,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x76,0};
 			SetupTranslator(tr,stress_lengths_ta,stress_amps_ta);
 			memset(tr->letter_bits,0,sizeof(tr->letter_bits));
 			SetLetterBits(tr,LETTERGP_A,ka_vowels);
@@ -1096,9 +916,6 @@ SetLengthMods(tr,3);  // all equal
 //			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 			tr->langopts.max_initial_consonants = 7;
 			tr->langopts.numbers = NUM_VIGESIMAL | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED |NUM_OMIT_1_THOUSAND | NUM_DFRACTION_5 | NUM_ROMAN;
-
-			tr->langopts.alt_alphabet = OFFSET_CYRILLIC;
-			tr->langopts.alt_alphabet_lang = L('r','u');
 		}
 		break;
 
@@ -1106,7 +923,7 @@ SetLengthMods(tr,3);  // all equal
 		{
 			static const unsigned char stress_amps_tr[8] = {18,16, 20,21, 20,21, 21,20 };
 			static const short stress_lengths_tr[8] = {190,180, 230,230, 0,0, 250,250};
-
+ 
 			tr->letter_bits_offset = OFFSET_CYRILLIC;
 			memset(tr->letter_bits,0,sizeof(tr->letter_bits));
 			SetLetterBits(tr,LETTERGP_A,(char *)ru_vowels);
@@ -1126,22 +943,12 @@ SetLengthMods(tr,3);  // all equal
 		}
 		break;
 
-	case L('k','l'):   // Greenlandic
-		{
-			SetupTranslator(tr,stress_lengths_equal,stress_amps_equal);
-			tr->langopts.stress_rule = 12;
-			tr->langopts.stress_flags = S_NO_AUTO_2;
-			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL;
-		}
-		break;
-
 	case L('k','o'):   // Korean, TEST
 		{
 			static const char ko_ivowels[] = {0x63,0x64,0x67,0x68,0x6d,0x72,0x74,0x75,0};  // y and i vowels
 			static const unsigned char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0};  // voiced consonants, l,m,n,N
 
 			tr->letter_bits_offset = OFFSET_KOREAN;
-			tr->langopts.our_alphabet = 0xa700;
 			memset(tr->letter_bits,0,sizeof(tr->letter_bits));
 			SetLetterBitsRange(tr,LETTERGP_A,0x61,0x75);
 			SetLetterBits(tr,LETTERGP_Y,ko_ivowels);
@@ -1175,7 +982,7 @@ SetLengthMods(tr,3);  // all equal
 		{
 			tr->charset_a0 = charsets[4];   // ISO-8859-4, includes a,e,i,o,u-macron
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_NO_AUTO_2;
+			tr->langopts.stress_flags = 0x20;
 			tr->langopts.unstressed_wd1 = 0;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_DIERESES] = 1;
@@ -1188,7 +995,7 @@ SetLengthMods(tr,3);  // all equal
 		{
 			tr->charset_a0 = charsets[4]; // ISO-8859-4
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_NO_AUTO_2;
+			tr->langopts.stress_flags = 0x20;
 			tr->langopts.unstressed_wd1 = 0;
 			tr->langopts.unstressed_wd2 = 2;
 			tr->langopts.param[LOPT_DIERESES] = 1;
@@ -1209,7 +1016,7 @@ SetLengthMods(tr,3);  // all equal
 			tr->langopts.spelling_stress = 1;
 			tr->charset_a0 = charsets[4];   // ISO-8859-4
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_4 | NUM_ORDINAL_DOT;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_EO_CLAUSE1;
+			tr->langopts.stress_flags = 0x16 + 0x40000;
 		}
 		break;
 
@@ -1223,7 +1030,6 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_mk,stress_amps_mk);
 			tr->charset_a0 = charsets[5];   // ISO-8859-5
 			tr->letter_groups[0] = tr->letter_groups[7] = vowels_cyrillic;
-			tr->letter_bits_offset = OFFSET_CYRILLIC;
 
 			tr->langopts.stress_rule = STRESSPOSN_3R;   // antipenultimate
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
@@ -1276,7 +1082,7 @@ SetLengthMods(tr,3);  // all equal
 
 			SetupTranslator(tr,stress_lengths_om,stress_amps_om);
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000;
+			tr->langopts.stress_flags = 0x16 + 0x80000;
 		}
 		break;
 
@@ -1289,7 +1095,7 @@ SetLengthMods(tr,3);  // all equal
 
 			tr->charset_a0 = charsets[2];   // ISO-8859-2
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY;  // mark unstressed final syllables as diminished
+			tr->langopts.stress_flags = 0x6;  // mark unstressed final syllables as diminished
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9;
  			tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :)
  			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2;
@@ -1308,15 +1114,13 @@ SetLengthMods(tr,3);  // all equal
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 
 			tr->langopts.stress_rule = STRESSPOSN_1R;        // stress on final syllable
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS;
-			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN_CAPITALS;
-			tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS | NUM2_ORDINAL_NO_AND;
-			tr->langopts.max_roman = 5000;
+			tr->langopts.stress_flags =  0x6 | 0x10 | 0x2000 | 0x20000; 
+			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN;
+			tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS; 
 			SetLetterVowel(tr,'y');
 			ResetLetterBits(tr,0x2);
 			SetLetterBits(tr,1,"bcdfgjkmnpqstvxz");      // B  hard consonants, excluding h,l,r,w,y
 			tr->langopts.param[LOPT_ALT] = 2;      // call ApplySpecialAttributes2() if a word has $alt or $alt2
-			tr->langopts.accents = 2;  // 'capital' after letter name
 		}
 		break;
 
@@ -1328,7 +1132,7 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_ro,stress_amps_ro);
 
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_STRESS_C + S_FINAL_DIM_ONLY;
+			tr->langopts.stress_flags = 0x100 + 0x6;
 
 			tr->charset_a0 = charsets[2];   // ISO-8859-2
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_3 | NUM_AND_UNITS | NUM_ROMAN;
@@ -1343,9 +1147,9 @@ SetLengthMods(tr,3);  // all equal
 	case L('r','w'):   // Kiryarwanda
 		{
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags = 0x16;
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
-			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words.  Need to allow "bw'" prefix
+
 			tr->langopts.numbers = NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_2 | NUM_AND_HUNDRED;
 			tr->langopts.numbers2 = 0x200;  // say "thousands" before its number
 		}
@@ -1360,7 +1164,7 @@ SetLengthMods(tr,3);  // all equal
 			tr->charset_a0 = charsets[2];   // ISO-8859-2
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags = 0x16;  
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3;
  			tr->langopts.max_initial_consonants = 5;
 			tr->langopts.spelling_stress = 1;
@@ -1389,21 +1193,21 @@ SetLengthMods(tr,3);  // all equal
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+			tr->langopts.stress_flags =  S_FINAL_DIM | S_NO_AUTO_DIM | S_FINAL_NO_2;
 			tr->langopts.spelling_stress = 1;
 
 			tr->letter_bits_offset = OFFSET_SINHALA;
 			memset(tr->letter_bits,0,sizeof(tr->letter_bits));
 			SetLetterBitsRange(tr,LETTERGP_A,0x05,0x16);   // vowel letters
 			SetLetterBitsRange(tr,LETTERGP_A,0x4a,0x73);   // + vowel signs, and virama
-
+		
 			SetLetterBitsRange(tr,LETTERGP_B,0x4a,0x73);   // vowel signs, and virama
-
+		
 			SetLetterBitsRange(tr,LETTERGP_C,0x1a,0x46);   // the main consonant range
-
+		
 			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 			tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4a;   //virama
-			tr->langopts.numbers =  NUM_OMIT_1_THOUSAND | NUM_SINGLE_STRESS_L | NUM_DFRACTION_7;
+			tr->langopts.numbers =  NUM_OMIT_1_THOUSAND;
 			tr->langopts.numbers2 =  NUM2_PERCENT_BEFORE;
 			tr->langopts.break_numbers = 0x14aa8;  // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
 		}
@@ -1412,16 +1216,12 @@ SetLengthMods(tr,3);  // all equal
 	case L('s','l'):  // Slovenian
 			tr->charset_a0 = charsets[2];   // ISO-8859-2
 			tr->langopts.stress_rule = STRESSPOSN_2R;   // Temporary
-			tr->langopts.stress_flags = S_NO_AUTO_2;
+			tr->langopts.stress_flags = 0x20;
 			tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103;
-			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76;    // [v]  don't count this character at start of word
-			tr->langopts.param[LOPT_ALT] = 2;      // call ApplySpecialAttributes2() if a word has $alt or $alt2
-			tr->langopts.param[LOPT_IT_LENGTHEN] = 1;    // remove lengthen indicator from unstressed syllables
-			tr->letter_bits['r'] |= 0x80;    // add 'r' to letter group 7, vowels for Unpronouncable test
 			tr->langopts.numbers =  NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN;
 			tr->langopts.numbers2 = 0x100;   // plural forms of millions etc
 			tr->langopts.thousands_sep = ' ';   // don't allow dot as thousands separator
-			tr->langopts.replace_chars = replace_cyrillic_latin;
+			SetLetterVowel(tr,'r');
 		break;
 
 	case L('s','q'):  // Albanian
@@ -1432,7 +1232,7 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_sq,stress_amps_sq);
 
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_STRESS_C;
+			tr->langopts.stress_flags =  0x16 + 0x100; 
 			SetLetterVowel(tr,'y');
 			tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_4;
 			tr->langopts.accents = 2;  // "capital" after letter name
@@ -1464,9 +1264,7 @@ SetLengthMods(tr,3);  // all equal
 
 			tr->langopts.vowel_pause = 1;
 			tr->langopts.stress_rule = STRESSPOSN_2R;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;
- 			tr->langopts.max_initial_consonants = 4; // for example: mwngi
-
+			tr->langopts.stress_flags =  0x6 | 0x10; 
 
 			tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_SINGLE_AND | NUM_OMIT_1_HUNDRED;
 			tr->langopts.break_numbers = 0x49249268;  // for languages which have numbers for 100,000 and 1,000,000
@@ -1474,28 +1272,24 @@ SetLengthMods(tr,3);  // all equal
 		break;
 
 	case L('t','a'):  // Tamil
-	case L('k','n'):  // Kannada
 	case L('m','l'):  // Malayalam
+	case L('k','n'):  // Kannada
 	case L('m','r'):  // Marathi
 	case L('t','e'):  // Telugu
 		{
-			SetupTranslator(tr,stress_lengths_ta2, stress_amps_ta);
+			SetupTranslator(tr,stress_lengths_ta,stress_amps_ta);
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 
 			tr->langopts.stress_rule = STRESSPOSN_1L;
-			tr->langopts.stress_flags =  S_FINAL_DIM_ONLY | S_FINAL_NO_2;   // use 'diminished' for unstressed final syllable
+			tr->langopts.stress_flags =  0x10004;   // use 'diminished' for unstressed final syllable
 			tr->langopts.spelling_stress = 1;
-			tr->langopts.break_numbers = 0x14a8;  // 1000, 100,000  10,000,000
+			tr->langopts.break_numbers = 0x14a8;  // 1000, 100,000  10,000,000 
 
 			if(name2 == L('t','a'))
 			{
-				SetupTranslator(tr,stress_lengths_ta, NULL);
 				tr->letter_bits_offset = OFFSET_TAMIL;
 				tr->langopts.numbers =  NUM_OMIT_1_THOUSAND ;
-				tr->langopts.numbers2 = NUM2_ORDINAL_AND_THOUSANDS;
-				tr->langopts.param[LOPT_WORD_MERGE] = 1;   // don't break vowels betwen words
 			}
-			else
 			if(name2 == L('m','r'))
 			{
 				tr->letter_bits_offset = OFFSET_DEVANAGARI;
@@ -1503,12 +1297,8 @@ SetLengthMods(tr,3);  // all equal
 			else
 			if(name2 == L('m','l'))
 			{
-				static const short stress_lengths_ml[8] = {180, 160,  240, 240,  0, 0,  260, 260};
-				SetupTranslator(tr,stress_lengths_ml, stress_amps_equal);
 				tr->letter_bits_offset = OFFSET_MALAYALAM;
-				tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED;
-				tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY;
-				tr->langopts.stress_rule = 13;   // 1st syllable, unless 1st vowel is short and 2nd is long
+				tr->langopts.numbers = NUM_OMIT_1_THOUSAND;
 			}
 			else
 			if(name2 == L('k','n'))
@@ -1522,8 +1312,9 @@ SetLengthMods(tr,3);  // all equal
 				tr->letter_bits_offset = OFFSET_TELUGU;
 				tr->langopts.numbers = 0x1;
 			}
+			tr->langopts.param[LOPT_WORD_MERGE] = 1;   // don't break vowels betwen words
 			SetIndicLetters(tr);   // call this after setting OFFSET_
-			SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e);   // chillu-virama (unofficial)
+				SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e);   // chillu-virama (unofficial)
 		}
 		break;
 
@@ -1536,7 +1327,7 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_th,stress_amps_th);
 
 			tr->langopts.stress_rule = 0;   // stress on final syllable of a "word"
-			tr->langopts.stress_flags = S_NO_DIM;          // don't automatically set diminished stress (may be set in the intonation module)
+			tr->langopts.stress_flags = 2;          // don't automatically set diminished stress (may be set in the intonation module)
 			tr->langopts.tone_language = 1;   // Tone language, use  CalcPitches_Tone() rather than CalcPitches()
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 //			tr->langopts.tone_numbers = 1;   // a number after letters indicates a tone number (eg. pinyin or jyutping)
@@ -1555,8 +1346,7 @@ SetLengthMods(tr,3);  // all equal
 			tr->charset_a0 = charsets[9];   // ISO-8859-9 - Latin5
 
 			tr->langopts.stress_rule = 7;   // stress on the last syllable, before any explicitly unstressed syllable
-			tr->langopts.stress_flags = S_NO_AUTO_2;  //no automatic secondary stress
-			tr->langopts.dotless_i = 1;
+			tr->langopts.stress_flags = 0x20;  //no automatic secondary stress
 			tr->langopts.param[LOPT_SUFFIX] = 1;
 
 			if(name2 == L('a','z'))
@@ -1572,14 +1362,14 @@ SetLengthMods(tr,3);  // all equal
 		break;
 
 	case L('t','t'):   // Tatar
-		{
+      {
 			SetCyrillicLetters(tr);
 			SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
 			tr->langopts.stress_rule = STRESSPOSN_1R;      // stress on final syllable
-			tr->langopts.stress_flags = S_NO_AUTO_2;  //no automatic secondary stress
+			tr->langopts.stress_flags = 0x20;  //no automatic secondary stress
 			tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4;
-		}
-		break;
+      }
+      break;
 
 	case L('u','k'):   // Ukrainian
 		{
@@ -1589,13 +1379,10 @@ SetLengthMods(tr,3);  // all equal
 		break;
 
 	case L('u','r'):   // Urdu
-	case L('s','d'):   // Sindhi
-		{
 			tr->letter_bits_offset = OFFSET_ARABIC;
 			tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1;   // disable check for unpronouncable words
 			tr->langopts.numbers = NUM_SWAP_TENS;
 			tr->langopts.break_numbers = 0x52a8;  // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
-		}
 		break;
 
 	case L('v','i'):  // Vietnamese
@@ -1614,7 +1401,7 @@ SetLengthMods(tr,3);  // all equal
 				0x1a1, 0x1edd, 0x1edb, 0x1edf, 0x1ee1, 0x1ee3,	// ơ
 				0x75, 0xf9, 0xfa, 0x1ee7, 0x169, 0x1ee5,			// u
 				0x1b0, 0x1eeb, 0x1ee9, 0x1eed, 0x1eef, 0x1ef1,	// ư
-				0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1ef5, 0 };	// y
+				0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1e, 0 };	// y
 
 			SetupTranslator(tr,stress_lengths_vi,stress_amps_vi);
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
@@ -1644,13 +1431,12 @@ SetLengthMods(tr,3);  // all equal
 			SetupTranslator(tr,stress_lengths_zh,stress_amps_zh);
 
 			tr->langopts.stress_rule = STRESSPOSN_1R;   // stress on final syllable of a "word"
-			tr->langopts.stress_flags = S_NO_DIM;          // don't automatically set diminished stress (may be set in the intonation module)
+			tr->langopts.stress_flags = 2;          // don't automatically set diminished stress (may be set in the intonation module)
 			tr->langopts.vowel_pause = 0;
 			tr->langopts.tone_language = 1;   // Tone language, use  CalcPitches_Tone() rather than CalcPitches()
 			tr->langopts.length_mods0 = tr->langopts.length_mods;  // don't lengthen vowels in the last syllable
 			tr->langopts.tone_numbers = 1;   // a number after letters indicates a tone number (eg. pinyin or jyutping)
 			tr->langopts.ideographs = 1;
-			tr->langopts.our_alphabet = 0x3100;
 			tr->langopts.word_gap = 0x21;   // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
 			if(name2 == L('z','h'))
 			{
@@ -1667,24 +1453,21 @@ SetLengthMods(tr,3);  // all equal
 
 	tr->translator_name = name2;
 
-	ProcessLanguageOptions(&tr->langopts);
-	return(tr);
-}  // end of SelectTranslator
-
-
-void ProcessLanguageOptions(LANGUAGE_OPTIONS *langopts)
-{//=====================================================
-	if(langopts->numbers & NUM_DECIMAL_COMMA)
+	if(tr->langopts.numbers & NUM_DECIMAL_COMMA)
 	{
 		// use . and ; for thousands and decimal separators
-		langopts->thousands_sep = '.';
-		langopts->decimal_sep = ',';
+		tr->langopts.thousands_sep = '.';
+		tr->langopts.decimal_sep = ',';
 	}
-	if(langopts->numbers & NUM_THOUS_SPACE)
+	if(tr->langopts.numbers & NUM_THOUS_SPACE)
 	{
-		langopts->thousands_sep = 0;   // don't allow thousands separator, except space
+		tr->langopts.thousands_sep = 0;   // don't allow thousands separator, except space
 	}
-}
+
+	return(tr);
+}  // end of SelectTranslator
+
+
 
 //**********************************************************************************************************
 
@@ -1705,7 +1488,7 @@ static void Translator_Russian(Translator *tr)
 	tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 1;
 	tr->langopts.param[LOPT_REDUCE] = 2;
 	tr->langopts.stress_rule = 5;
-	tr->langopts.stress_flags = S_NO_AUTO_2;
+	tr->langopts.stress_flags = 0x0020;  // waas 0x1010
 
 	tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;
 	tr->langopts.numbers2 = 0x2 + NUM2_THOUSANDS_VAR1;  // variant numbers before thousands
@@ -1761,7 +1544,7 @@ PH('V','#'),PH('I','3'),PH('I','2'),PH('E','3')};
                 /*2*/        {'o', '8', '8',                 'o', '8', '8'},                // O
                 /*3*/        {'i', 'I', 'i',                 'a', 'I', 'a'},                // I  Uses 3,4,5 columns.
                 /*4*/        {'i', PH('I','#'), 'i',         'i', PH('I','#'), 'i'},        // I#
-                /*5*/        {'E', PH('E','#'), 'E',         'e', PH('E','#'), 'e'},        // E#
+                /*5*/        {'E', PH('E','#'), 'E',         'e', PH('E','#'), 'e'},        // E# 
                 /*6*/        {'E', PH('E','2'), 'E',         'e', PH('E','2'), 'e'},        // E2  Uses 3,4,5 columns.
                 /*7*/        {PH('j','a'), 'V', PH('j','a'), 'A', 'V', 'A'},                // V#
                 /*8*/        {PH('j','a'), 'I', PH('j','a'), 'e', 'I', 'e'},                // I3 Uses 3,4,5 columns.
diff --git a/external/espeak/translate.cpp b/external/espeak/translate.cpp
old mode 100755
new mode 100644
index 4da0b0f..fdc7e40
--- a/external/espeak/translate.cpp
+++ b/external/espeak/translate.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -77,7 +77,6 @@ static int prev_clause_pause=0;
 static int max_clause_pause = 0;
 static int any_stressed_words;
 int pre_pause;
-ALPHABET *current_alphabet;
 
 
 // these were previously in translator class
@@ -91,7 +90,7 @@ PHONEME_LIST2 ph_list2[N_PHONEME_LIST];	// first stage of text->phonemes
 
 
 
-wchar_t option_punctlist[N_PUNCTLIST]= {0};
+wchar_t option_punctlist[N_PUNCTLIST]={0};
 char ctrl_embedded = '\001';    // to allow an alternative CTRL for embedded commands
 int option_multibyte=espeakCHARS_AUTO;   // 0=auto, 1=utf8, 2=8bit, 3=wchar, 4=16bit
 
@@ -104,6 +103,7 @@ static int embedded_read;
 unsigned int embedded_list[N_EMBEDDED_LIST];
 
 // the source text of a single clause (UTF8 bytes)
+#define N_TR_SOURCE    800
 static char source[N_TR_SOURCE+40];     // extra space for embedded command & voice change info at end
 
 int n_replace_phonemes;
@@ -112,12 +112,11 @@ REPLACE_PHONEMES replace_phonemes[N_REPLACE_PHONEMES];
 
 // brackets, also 0x2014 to 0x021f which don't need to be in this list
 static const unsigned short brackets[] = {
-	'(',')','[',']','{','}','<','>','"','\'','`',
-	0xab,0xbb,  // double angle brackets
-	0x300a,0x300b,  // double angle brackets (ideograph)
-	0xe000+'<',  // private usage area
-	0
-};
+'(',')','[',']','{','}','<','>','"','\'','`',
+0xab,0xbb,  // double angle brackets
+0x300a,0x300b,  // double angle brackets (ideograph)
+0xe000+'<',  // private usage area
+0};
 
 // other characters which break a word, but don't produce a pause
 static const unsigned short breaks[] = {'_', 0};
@@ -129,153 +128,153 @@ static const unsigned short breaks[] = {'_', 0};
 // Translate character codes 0xA0 to 0xFF into their unicode values
 // ISO_8859_1 is set as default
 static const unsigned short ISO_8859_1[0x60] = {
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
-	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, // d8
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
-	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, // f8
+   0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0
+   0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8
+   0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0
+   0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8
+   0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
+   0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
+   0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
+   0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, // d8
+   0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
+   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
+   0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
+   0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, // f8
 };
 
 static const unsigned short ISO_8859_2[0x60] = {
-	0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, // a0
-	0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, // a8
-	0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, // b0
-	0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, // b8
-	0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, // c0
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, // c8
-	0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, // d0
-	0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, // d8
-	0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, // e0
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, // e8
-	0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, // f0
-	0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, // f8
+   0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, // a0
+   0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, // a8
+   0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, // b0
+   0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, // b8
+   0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, // c0
+   0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, // c8
+   0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, // d0
+   0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, // d8
+   0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, // e0
+   0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, // e8
+   0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, // f0
+   0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, // f8
 };
 
 static const unsigned short ISO_8859_3[0x60] = {
-	0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x0000, 0x0124, 0x00a7, // a0
-	0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x0000, 0x017b, // a8
-	0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, // b0
-	0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x0000, 0x017c, // b8
-	0x00c0, 0x00c1, 0x00c2, 0x0000, 0x00c4, 0x010a, 0x0108, 0x00c7, // c0
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
-	0x0000, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, // d0
-	0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, // d8
-	0x00e0, 0x00e1, 0x00e2, 0x0000, 0x00e4, 0x010b, 0x0109, 0x00e7, // e0
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
-	0x0000, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, // f0
-	0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, // f8
+   0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x0000, 0x0124, 0x00a7, // a0
+   0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x0000, 0x017b, // a8
+   0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, // b0
+   0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x0000, 0x017c, // b8
+   0x00c0, 0x00c1, 0x00c2, 0x0000, 0x00c4, 0x010a, 0x0108, 0x00c7, // c0
+   0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
+   0x0000, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, // d0
+   0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, // d8
+   0x00e0, 0x00e1, 0x00e2, 0x0000, 0x00e4, 0x010b, 0x0109, 0x00e7, // e0
+   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
+   0x0000, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, // f0
+   0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, // f8
 };
 
 static const unsigned short ISO_8859_4[0x60] = {
-	0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, // a0
-	0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, // a8
-	0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, // b0
-	0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, // b8
-	0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, // c0
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, // c8
-	0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
-	0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, // d8
-	0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, // e0
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, // e8
-	0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
-	0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, // f8
+   0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, // a0
+   0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, // a8
+   0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, // b0
+   0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, // b8
+   0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, // c0
+   0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, // c8
+   0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
+   0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, // d8
+   0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, // e0
+   0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, // e8
+   0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
+   0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, // f8
 };
 
 static const unsigned short ISO_8859_5[0x60] = {
-	0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, // a0  Cyrillic
-	0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, // a8
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, // b0
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, // b8
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, // c0
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, // c8
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, // d0
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, // d8
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, // e0
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, // e8
-	0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, // f0
-	0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, // f8
+   0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, // a0  Cyrillic
+   0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, // a8
+   0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, // b0
+   0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, // b8
+   0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, // c0
+   0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, // c8
+   0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, // d0
+   0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, // d8
+   0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, // e0
+   0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, // e8
+   0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, // f0
+   0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, // f8
 };
 
 static const unsigned short ISO_8859_7[0x60] = {
-	0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, // a0  Greek
-	0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x0000, 0x2015, // a8
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, // b0
-	0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, // b8
-	0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, // c0
-	0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, // c8
-	0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, // d0
-	0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, // d8
-	0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, // e0
-	0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, // e8
-	0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, // f0
-	0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x0000, // f8
+   0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, // a0  Greek
+   0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x0000, 0x2015, // a8
+   0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, // b0
+   0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, // b8
+   0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, // c0
+   0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, // c8
+   0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, // d0
+   0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, // d8
+   0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, // e0
+   0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, // e8
+   0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, // f0
+   0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x0000, // f8
 };
 
 static const unsigned short ISO_8859_9[0x60] = {
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
-	0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, // d8
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
-	0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, // f8
+   0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0
+   0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8
+   0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0
+   0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8
+   0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
+   0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
+   0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0
+   0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, // d8
+   0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
+   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
+   0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0
+   0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, // f8
 };
 
 static const unsigned short ISO_8859_14[0x60] = {
-	0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, // a0  Welsh
-	0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, // a8
-	0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, // b0
-	0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, // b8
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
-	0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, // d0
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, // d8
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
-	0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, // f0
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, // f8
+   0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, // a0  Welsh
+   0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, // a8
+   0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, // b0
+   0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, // b8
+   0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0
+   0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8
+   0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, // d0
+   0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, // d8
+   0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0
+   0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8
+   0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, // f0
+   0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, // f8
 };
 
 static const unsigned short KOI8_R[0x60] = {
-	0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, // a0  Russian
-	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, // a8
-	0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, // b0
-	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, // b8
-	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, // c0
-	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, // c8
-	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, // d0
-	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, // d8
-	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, // e0
-	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, // e8
-	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, // f0
-	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, // f8
+   0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, // a0  Russian
+   0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, // a8
+   0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, // b0
+   0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, // b8
+   0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, // c0
+   0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, // c8
+   0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, // d0
+   0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, // d8
+   0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, // e0
+   0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, // e8
+   0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, // f0
+   0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, // f8
 };
 
 static const unsigned short ISCII[0x60] = {
-	0x0020, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, 0x0908, // a0
-	0x0909, 0x090a, 0x090b, 0x090e, 0x090f, 0x0910, 0x090d, 0x0912, // a8
-	0x0913, 0x0914, 0x0911, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, // b0
-	0x091a, 0x091b, 0x091c, 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, // b8
-	0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, // c0
-	0x092a, 0x092b, 0x092c, 0x092d, 0x092e, 0x092f, 0x095f, 0x0930, // c8
-	0x0931, 0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, // d0
-	0x0939, 0x0020, 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, // d8
-	0x0946, 0x0947, 0x0948, 0x0945, 0x094a, 0x094b, 0x094c, 0x0949, // e0
-	0x094d, 0x093c, 0x0964, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, // e8
-	0x0020, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, // f0
-	0x0037, 0x0038, 0x0039, 0x20,   0x20,   0x20,   0x20,   0x20,   // f8
+   0x0020, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, 0x0908, // a0
+   0x0909, 0x090a, 0x090b, 0x090e, 0x090f, 0x0910, 0x090d, 0x0912, // a8
+   0x0913, 0x0914, 0x0911, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, // b0
+   0x091a, 0x091b, 0x091c, 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, // b8
+   0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, // c0
+   0x092a, 0x092b, 0x092c, 0x092d, 0x092e, 0x092f, 0x095f, 0x0930, // c8
+   0x0931, 0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, // d0
+   0x0939, 0x0020, 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, // d8
+   0x0946, 0x0947, 0x0948, 0x0945, 0x094a, 0x094b, 0x094c, 0x0949, // e0
+   0x094d, 0x093c, 0x0964, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, // e8
+   0x0020, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, // f0
+   0x0037, 0x0038, 0x0039, 0x20,   0x20,   0x20,   0x20,   0x20,   // f8
 };
 
 const unsigned short *charsets[N_CHARSETS] = {
@@ -298,8 +297,7 @@ const unsigned short *charsets[N_CHARSETS] = {
 	ISO_8859_1,
 	ISO_8859_1,
 	KOI8_R,          // 18
-	ISCII
-};
+	ISCII };
 
 // Tables of the relative lengths of vowels, depending on the
 // type of the two phonemes that follow
@@ -307,7 +305,7 @@ const unsigned short *charsets[N_CHARSETS] = {
 
 // use this table if vowel is not the last in the word
 static unsigned char length_mods_en[100] = {
-	/*  a   ,   t   s   n   d   z   r   N   <- next */
+/*  a   ,   t   s   n   d   z   r   N   <- next */
 	100,120,100,105,100,110,110,100, 95, 100,  /* a  <- next2 */
 	105,120,105,110,125,130,135,115,125, 100,  /* , */
 	105,120, 75,100, 75,105,120, 85, 75, 100,  /* t */
@@ -317,12 +315,11 @@ static unsigned char length_mods_en[100] = {
 	105,120,100,105,105,122,125,110,105, 100,  /* z */
 	105,120,100,105,105,122,125,110,105, 100,  /* r */
 	105,120, 95,105,100,115,120,110,100, 100,  /* N */
-	100,120,100,100,100,100,100,100,100, 100
-}; // SPARE
+	100,120,100,100,100,100,100,100,100, 100 }; // SPARE
 
 // as above, but for the last syllable in a word
 static unsigned char length_mods_en0[100] = {
-	/*  a   ,   t   s   n   d   z   r    N  <- next */
+/*  a   ,   t   s   n   d   z   r    N  <- next */
 	100,150,100,105,110,115,110,110,110, 100,  /* a  <- next2 */
 	105,150,105,110,125,135,140,115,135, 100,  /* , */
 	105,150, 90,105, 90,122,135,100, 90, 100,  /* t */
@@ -332,12 +329,11 @@ static unsigned char length_mods_en0[100] = {
 	105,150,100,105,110,122,125,115,110, 100,  /* z */
 	105,150,100,105,105,122,135,120,105, 100,  /* r */
 	105,150,100,105,105,115,135,110,105, 100,  /* N */
-	100,100,100,100,100,100,100,100,100, 100
-}; // SPARE
+	100,100,100,100,100,100,100,100,100, 100 }; // SPARE
 
 
 static unsigned char length_mods_equal[100] = {
-	/*  a   ,   t   s   n   d   z   r   N   <- next */
+/*  a   ,   t   s   n   d   z   r   N   <- next */
 	110,120,100,110,110,110,110,110,110, 110,  /* a  <- next2 */
 	110,120,100,110,110,110,110,110,110, 110,  /* , */
 	110,120,100,110,100,110,110,110,100, 110,  /* t */
@@ -347,18 +343,17 @@ static unsigned char length_mods_equal[100] = {
 	110,120,100,110,110,110,110,110,110, 110,  /* z */
 	110,120,100,110,110,110,110,110,110, 110,  /* r */
 	110,120,100,110,110,110,110,110,110, 110,  /* N */
-	110,120,100,110,110,110,110,110,110, 110
-}; // SPARE
+	110,120,100,110,110,110,110,110,110, 110 }; // SPARE
 
 
 static unsigned char *length_mod_tabs[6] = {
-	length_mods_en,
-	length_mods_en,     // 1
-	length_mods_en0,    // 2
-	length_mods_equal,  // 3
-	length_mods_equal,  // 4
-	length_mods_equal   // 5
-};
+  length_mods_en,
+  length_mods_en,     // 1
+  length_mods_en0,    // 2
+  length_mods_equal,  // 3
+  length_mods_equal,  // 4
+  length_mods_equal   // 5
+ };
 
 
 void SetLengthMods(Translator *tr, int value)
@@ -373,22 +368,17 @@ void SetLengthMods(Translator *tr, int value)
 }
 
 
-
 int IsAlpha(unsigned int c)
 {//========================
 // Replacement for iswalph() which also checks for some in-word symbols
 
 	static const unsigned short extra_indic_alphas[] = {
-		0xa70,0xa71,	// Gurmukhi: tippi, addak
-		0
-	};
+	0xa70,0xa71,	// Gurmukhi: tippi, addak
+	0 };
 
-	if(iswalpha2(c))
+	if(iswalpha(c))
 		return(1);
 
-	if(c < 0x300)
-		return(0);
-
 	if((c >= 0x901) && (c <= 0xdf7))
 	{
 		// Indic scripts: Devanagari, Tamil, etc
@@ -402,13 +392,10 @@ int IsAlpha(unsigned int c)
 		return(0);
 	}
 
-	if((c >= 0x5b0) && (c <= 0x5c2))
-		return(1);  // Hebrew vowel marks
-
 	if(c == 0x0605)
 		return(1);
 
-	if((c == 0x670) || ((c >= 0x64b) && (c <= 0x65e)))
+	if((c >= 0x64b)  && (c <= 0x65e))
 		return(1);   // arabic vowel marks
 
 	if((c >= 0x300) && (c <= 0x36f))
@@ -432,8 +419,8 @@ int IsAlpha(unsigned int c)
 	return(0);
 }
 
-int IsDigit09(unsigned int c)
-{//============================
+static int IsDigit09(unsigned int c)
+{//=========================
 	if((c >= '0') && (c <= '9'))
 		return(1);
 	return(0);
@@ -450,14 +437,12 @@ int IsDigit(unsigned int c)
 	return(0);
 }
 
-static int IsSpace(unsigned int c)
+int IsSpace(unsigned int c)
 {//========================
 	if(c == 0)
 		return(0);
 	if((c >= 0x2500) && (c < 0x25a0))
 		return(1);  // box drawing characters
-	if((c >= 0xfff9) && (c <= 0xffff))
-		return(1);  // unicode specials
 //	if(wcschr(chars_space,c))
 //		return(1);
 	return(iswspace(c));
@@ -530,7 +515,8 @@ int utf8_out(unsigned int c, char *buf)
 	}
 	if(c < 0x0800)
 		n_bytes = 1;
-	else if(c < 0x10000)
+	else
+	if(c < 0x10000)
 		n_bytes = 2;
 	else
 		n_bytes = 3;
@@ -562,7 +548,7 @@ int utf8_nbytes(const char *buf)
 
 int utf8_in2(int *c, const char *buf, int backwards)
 {//=================================================
-// Read a unicode characater from a UTF8 string
+// Read a unicode characater from a UTF8 string 
 // Returns the number of UTF8 bytes used.
 // backwards: set if we are moving backwards through the UTF8 string
 	int c1;
@@ -586,9 +572,11 @@ int utf8_in2(int *c, const char *buf, int backwards)
 	{
 		if((c1 & 0xe0) == 0xc0)
 			n_bytes = 1;
-		else if((c1 & 0xf0) == 0xe0)
+		else
+		if((c1 & 0xf0) == 0xe0)
 			n_bytes = 2;
-		else if((c1 & 0xf8) == 0xf0)
+		else
+		if((c1 & 0xf8) == 0xf0)
 			n_bytes = 3;
 
 		c1 &= mask[n_bytes];
@@ -604,7 +592,7 @@ int utf8_in2(int *c, const char *buf, int backwards)
 
 int utf8_in(int *c, const char *buf)
 {//=================================
-// Read a unicode characater from a UTF8 string
+// Read a unicode characater from a UTF8 string 
 // Returns the number of UTF8 bytes used.
 	return(utf8_in2(c,buf,0));
 }
@@ -618,13 +606,14 @@ char *strchr_w(const char *s, int c)
 	return(strchr((char *)s,c));    // (char *) is needed for Borland compiler
 }
 
-static int IsAllUpper(const char *word)
+
+int IsAllUpper(const char *word)
 {//=============================
 	int c;
 	while((*word != 0) && !isspace2(*word))
 	{
 		word += utf8_in(&c, word);
-		if(!iswupper2(c))
+		if(!iswupper(c))
 			return(0);
 	}
 	return(1);
@@ -637,10 +626,8 @@ static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes,
 	int capitals = 0;
 	int non_initial = 0;
 
-	if(spell_word > 2)
-		capitals = 2;  // speak 'capital'
-	if(spell_word > 1)
-		capitals |= 4; // speak charater code for unknown letters
+	if (spell_word > 2)
+		capitals = 2;
 
 	while((*word != ' ') && (*word != 0))
 	{
@@ -681,17 +668,19 @@ static int CheckDottedAbbrev(char *word1, WORD_TAB *wtab)
 		nbytes = utf8_in(&wc, word);
 		if((word[nbytes] == ' ') && IsAlpha(wc))
 		{
-			if(word[nbytes+1] == '.')
+		 	if(word[nbytes+1] == '.')
 			{
 				if(word[nbytes+2] == ' ')
 					ok = 1;
-				else if(word[nbytes+2] =='\'')
+				else
+				if(word[nbytes+2] =='\'')
 				{
 					nbytes += 2;   // delete the final dot (eg. u.s.a.'s)
 					ok = 2;
 				}
 			}
-			else if((count > 0) && (word[nbytes] == ' '))
+			else
+			if((count > 0) && (word[nbytes] == ' '))
 				ok = 2;
 		}
 
@@ -726,7 +715,7 @@ static int CheckDottedAbbrev(char *word1, WORD_TAB *wtab)
 
 extern char *phondata_ptr;
 
-static int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes)
+int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes)
 {//====================================================================
 // tr:  the original language
 // lang2:  phoneme table number for the temporary language
@@ -817,8 +806,8 @@ static int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes)
 
 
 
-int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab, char *word_out)
-{//==================================================================================================
+int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab)
+{//===========================================================================
 // word1 is terminated by space (0x20) character
 
 	char *word1;
@@ -830,28 +819,24 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 	unsigned int dictionary_flags[2];
 	unsigned int dictionary_flags2[2];
 	int end_type=0;
-	int end_type1=0;
 	int prefix_type=0;
 	int prefix_stress;
 	char *wordx;
 	char phonemes[N_WORD_PHONEMES];
-	char phonemes2[N_WORD_PHONEMES];
 	char prefix_phonemes[N_WORD_PHONEMES];
 	char unpron_phonemes[N_WORD_PHONEMES];
 	char end_phonemes[N_WORD_PHONEMES];
-	char end_phonemes2[N_WORD_PHONEMES];
 	char word_copy[N_WORD_BYTES];
 	char word_copy2[N_WORD_BYTES];
 	int word_copy_length;
-	char prefix_chars[0x3f + 2];
+	char prefix_chars[0x3f + 2];  
 	int found=0;
-	int end_flags;
-	int c_temp;   // save a character byte while we temporarily replace it with space
+   int end_flags;
+	char c_temp;   // save a character byte while we temporarily replace it with space
 	int first_char;
 	int last_char = 0;
 	int add_plural_suffix = 0;
 	int prefix_flags = 0;
-	int more_suffixes;
 	int confirm_prefix;
 	int spell_word;
 	int stress_bits;
@@ -859,7 +844,6 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 	int wflags;
 	int wmark;
 	int was_unpronouncable = 0;
-	int loopcount;
 	WORD_TAB wtab_null[8];
 
 	// translate these to get pronunciations of plural 's' suffix (different forms depending on
@@ -914,14 +898,6 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 
 	spell_word = 0;
 
-	if((word_length == 1) && (wflags & FLAG_TRANSLATOR2))
-	{
-		// retranslating a 1-character word using a different language, say its name
-		utf8_in(&c_temp, wordx+1);  // the next character
-		if(!IsAlpha(c_temp) || (AlphabetFromChar(last_char) != AlphabetFromChar(c_temp)))
-			spell_word = 1;
-	}
-
 	if(option_sayas == SAYAS_KEY)
 	{
 		if(word_length == 1)
@@ -955,9 +931,6 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 
 		if(dictionary_flags[0] & FLAG_TEXTMODE)
 		{
-			if(word_out != NULL)
-				strcpy(word_out, word1);
-
 			first_char = word1[0];
 			stress_bits = dictionary_flags[0] & 0x7f;
 			found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab);   // the text replacement
@@ -972,7 +945,8 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 				}
 			}
 		}
-		else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS) && !(dictionary_flags[0] & FLAG_ABBREV))
+		else
+		if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS))
 		{
 			// grouped words, but no translation.  Join the words with hyphens.
 			wordx = word1;
@@ -1011,18 +985,18 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 			return(0);
 		}
 
-		if((wmark > 0) && (wmark < 8))
-		{
-			// the stressed syllable has been specified in the text  (TESTING)
-			dictionary_flags[0] = (dictionary_flags[0] & ~0xf) | wmark;
-		}
+if((wmark > 0) && (wmark < 8))
+{
+	// the stressed syllable has been specified in the text  (TESTING)
+	dictionary_flags[0] = (dictionary_flags[0] & ~0xf) | wmark;
+}
 
 		if(!found && (dictionary_flags[0] & FLAG_ABBREV))
 		{
 			// the word has $abbrev flag, but no pronunciation specified.  Speak as individual letters
 			spell_word = 1;
 		}
-
+ 
 		if(!found && iswdigit(first_char))
 		{
 			Lookup(tr,"_0lang",word_phonemes);
@@ -1054,15 +1028,16 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 			}
 		}
 
-		if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha2(first_char))
+		if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha(first_char))
 		{
 			if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV))
 			{
 				// emphasize words which are in capitals
 				emphasize_allcaps = FLAG_EMPHASIZED;
 			}
-			else if(!found && !(dictionary_flags[0] &  FLAG_SKIPWORDS) && (word_length<4) && (tr->clause_lower_count > 3)
-					&& (tr->clause_upper_count <= tr->clause_lower_count))
+			else
+			if(!found && !(dictionary_flags[0] &  FLAG_SKIPWORDS) && (word_length<4) && (tr->clause_lower_count > 3)
+				&& (tr->clause_upper_count <= tr->clause_lower_count))
 			{
 				// An upper case word in a lower case clause. This could be an abbreviation.
 				spell_word = 1;
@@ -1080,18 +1055,11 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 		{
 			if(word_length > 1)
 				return(FLAG_SPELLWORD);  // a mixture of languages, retranslate as individual letters, separated by spaces
-			if(phonemes[0] == phonSWITCH)
-			{
-// problem with espeak -vbg "b.c.d.e.f"
-			}
 			return(0);
 		}
-		strcpy(word_phonemes, phonemes);
-		if(wflags & FLAG_TRANSLATOR2)
-			return(0);
-		return(dictionary_flags[0] & FLAG_SKIPWORDS);  // for "b.c.d"
 	}
-	else if(found == 0)
+	else
+	if(found == 0)
 	{
 		int posn;
 		int non_initial;
@@ -1124,7 +1092,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 				// change to another language in order to translate this word
 				strcpy(word_phonemes,unpron_phonemes);
 				if(strcmp(&unpron_phonemes[1],"en")==0)
-					return(FLAG_SPELLWORD);   // _^_en must have been set in TranslateLetter(), not *_rules which uses only _^_
+					return(FLAG_SPELLWORD);   // _^_en must have been set in TranslateLetter(), not *_rules
 				return(0);
 			}
 
@@ -1163,31 +1131,18 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
 				return(0);
 			}
 
-#ifdef deleted
-// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
-if(end_type & SUFX_UNPRON)
-{
-	phonemes[0] = 0;  // discard and retranslate as individual letters
-	SpeakIndividualLetters(tr, wordx, phonemes, 0);
-	strcpy(word_phonemes, phonemes);
-	return(0);
-}
-#endif
-
 			if((phonemes[0] == 0) && (end_phonemes[0] == 0))
 			{
 				int wc;
 				// characters not recognised, speak them individually
-				// ?? should we say super/sub-script numbers and letters here?
+
 				utf8_in(&wc, wordx);
-				if((word_length == 1) && (IsAlpha(wc) || IsSuperscript(wc)))
+				if((word_length == 1) && IsAlpha(wc))
 				{
 					if((wordx = SpeakIndividualLetters(tr, wordx, phonemes, spell_word)) == NULL)
 					{
 						return(0);
 					}
-					strcpy(word_phonemes, phonemes);
-					return(0);
 				}
 			}
 
@@ -1195,13 +1150,14 @@ if(end_type & SUFX_UNPRON)
 
 			found = 0;
 			confirm_prefix = 1;
-			for (loopcount = 0; (loopcount < 50) && (end_type & SUFX_P); loopcount++)
+			for (int loopcount = 0; (loopcount < 50) && (end_type & SUFX_P); loopcount++)
 			{
 				// Found a standard prefix, remove it and retranslate
 				// loopcount guards against an endless loop
 				if(confirm_prefix && !(end_type & SUFX_B))
 				{
 					int end2;
+					char phonemes2[N_WORD_PHONEMES];
 					char end_phonemes2[N_WORD_PHONEMES];
 
 					// remove any standard suffix and confirm that the prefix is still recognised
@@ -1256,7 +1212,7 @@ if(end_type & SUFX_UNPRON)
 					for(ix=0; ix < n_chars; ix++)    // num. of bytes to remove
 					{
 						prefix_chars[pfix++] = *wordx++;
-
+	
 						if((prefix_type & SUFX_B) && (ix == (n_chars-1)))
 						{
 							prefix_chars[pfix-1] = 0;  // discard the last character of the prefix, this is the separator character
@@ -1267,7 +1223,6 @@ if(end_type & SUFX_UNPRON)
 				c_temp = wordx[-1];
 				wordx[-1] = ' ';
 				confirm_prefix = 1;
-				wflags |= FLAG_PREFIX_REMOVED;
 
 				if(prefix_type & SUFX_B)
 				{
@@ -1309,7 +1264,7 @@ if(end_type & SUFX_UNPRON)
 					prefix_flags = 1;
 				if(found == 0)
 				{
-					end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags & (FLAG_HYPHEN_AFTER | FLAG_PREFIX_REMOVED), dictionary_flags);
+					end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, 0, dictionary_flags);
 
 					if(phonemes[0] == phonSWITCH)
 					{
@@ -1321,118 +1276,93 @@ if(end_type & SUFX_UNPRON)
 				}
 			}
 
-
-
-
 			if((end_type != 0) && !(end_type & SUFX_P))
 			{
-				end_type1 = end_type;
-				strcpy(phonemes2,phonemes);
+char phonemes2[N_WORD_PHONEMES];
+strcpy(phonemes2,phonemes);
 
 				// The word has a standard ending, re-translate without this ending
 				end_flags = RemoveEnding(tr, wordx, end_type, word_copy);
-				more_suffixes = 1;
 
-				while(more_suffixes)
+				phonemes[0] = 0;
+
+				if(prefix_phonemes[0] != 0)
 				{
-					more_suffixes = 0;
-					phonemes[0] = 0;
+					// lookup the stem without the prefix removed
+					wordx[-1] = c_temp;
+					found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab);  // include prefix, but not suffix
+					wordx[-1] = ' ';
+					if(phonemes[0] == phonSWITCH)
+					{
+						// change to another language in order to translate this word
+						memcpy(wordx,word_copy,strlen(word_copy));
+						strcpy(word_phonemes,phonemes);
+						return(0);
+					}
+					if(dictionary_flags[0]==0)
+					{
+						dictionary_flags[0] = dictionary_flags2[0];
+						dictionary_flags[1] = dictionary_flags2[1];
+					}
+					if(found)
+						prefix_phonemes[0] = 0;  // matched whole word, don't need prefix now
 
-					if(prefix_phonemes[0] != 0)
+					if((found==0) && (dictionary_flags2[0] != 0))
+						prefix_flags = 1;
+				}
+				if(found == 0)
+				{
+					found = LookupDictList(tr, &wordx, phonemes, dictionary_flags2, end_flags, wtab);  // without prefix and suffix
+					if(phonemes[0] == phonSWITCH)
 					{
-						// lookup the stem without the prefix removed
-						wordx[-1] = c_temp;
-						found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab);  // include prefix, but not suffix
-						wordx[-1] = ' ';
-						if(phonemes[0] == phonSWITCH)
-						{
-							// change to another language in order to translate this word
-							memcpy(wordx,word_copy,strlen(word_copy));
-							strcpy(word_phonemes,phonemes);
-							return(0);
-						}
-						if(dictionary_flags[0]==0)
-						{
-							dictionary_flags[0] = dictionary_flags2[0];
-							dictionary_flags[1] = dictionary_flags2[1];
-						}
-						if(found)
-							prefix_phonemes[0] = 0;  // matched whole word, don't need prefix now
+						// change to another language in order to translate this word
+						memcpy(wordx,word_copy,strlen(word_copy));
+						strcpy(word_phonemes,phonemes);
+						return(0);
+					}
 
-						if((found==0) && (dictionary_flags2[0] != 0))
-							prefix_flags = 1;
+if(dictionary_flags2[0] & FLAG_ABBREV)
+{
+	// Removing the suffix leaves a word which should be spoken as individual letters
+	// Not yet implemented
+}
+					if(dictionary_flags[0]==0)
+					{
+						dictionary_flags[0] = dictionary_flags2[0];
+						dictionary_flags[1] = dictionary_flags2[1];
 					}
-					if(found == 0)
+				}
+				if(found == 0)
+				{
+					if(end_type & SUFX_Q)
 					{
-						found = LookupDictList(tr, &wordx, phonemes, dictionary_flags2, end_flags, wtab);  // without prefix and suffix
-						if(phonemes[0] == phonSWITCH)
-						{
-							// change to another language in order to translate this word
-							memcpy(wordx,word_copy,strlen(word_copy));
-							strcpy(word_phonemes,phonemes);
-							return(0);
-						}
+						// don't retranslate, use the original lookup result
+						strcpy(phonemes,phonemes2);
 
-						if(dictionary_flags2[0] & FLAG_ABBREV)
-						{
-							// Removing the suffix leaves a word which should be spoken as individual letters
-							// Not yet implemented
-						}
-						if(dictionary_flags[0]==0)
-						{
-							dictionary_flags[0] = dictionary_flags2[0];
-							dictionary_flags[1] = dictionary_flags2[1];
-						}
+						// language specific changes
+						ApplySpecialAttribute(tr,phonemes,dictionary_flags[0]);
 					}
-					if(found == 0)
+					else
 					{
-						if(end_type & SUFX_Q)
-						{
-							// don't retranslate, use the original lookup result
-							strcpy(phonemes,phonemes2);
-						}
-						else
-						{
-							if(end_flags & FLAG_SUFX)
-								wflags |= FLAG_SUFFIX_REMOVED;
-							if(end_type & SUFX_A)
-								wflags |= FLAG_SUFFIX_VOWEL;
+						if(end_flags & FLAG_SUFX)
+							wflags |= FLAG_SUFFIX_REMOVED;
+						if(end_type & SUFX_A)
+							wflags |= FLAG_SUFFIX_VOWEL;
 
-							if(end_type & SUFX_M)
-							{
-								// allow more suffixes before this suffix
-								strcpy(end_phonemes2, end_phonemes);
-								end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags);
-								strcat(end_phonemes, end_phonemes2);   // add the phonemes for the previous suffixes after this one
-
-								if((end_type != 0) && !(end_type & SUFX_P))
-								{
-									// there is another suffix
-									end_flags = RemoveEnding(tr, wordx, end_type, NULL);
-									more_suffixes = 1;
-								}
-							}
-							else
-							{
-								// don't remove any previous suffix
-								TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, NULL, wflags, dictionary_flags);
-								end_type = 0;
-							}
+						TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, NULL, wflags, dictionary_flags);
 
-							if(phonemes[0] == phonSWITCH)
-							{
-								// change to another language in order to translate this word
-								strcpy(word_phonemes,phonemes);
-								memcpy(wordx,word_copy,strlen(word_copy));
-								wordx[-1] = c_temp;
-								return(0);
-							}
+						if(phonemes[0] == phonSWITCH)
+						{
+							// change to another language in order to translate this word
+							strcpy(word_phonemes,phonemes);
+							memcpy(wordx,word_copy,strlen(word_copy));
+							wordx[-1] = c_temp;
+							return(0);
 						}
 					}
 				}
 
-
-				if((end_type1 & SUFX_T) == 0)
+				if((end_type & SUFX_T) == 0)
 				{
 					// the default is to add the suffix and then determine the word's stress pattern
 					AppendPhonemes(tr,phonemes, N_WORD_PHONEMES, end_phonemes);
@@ -1440,10 +1370,6 @@ if(end_type & SUFX_UNPRON)
 				}
 				memcpy(wordx,word_copy,strlen(word_copy));
 			}
-
-
-
-
 			wordx[-1] = c_temp;
 		}
 	}
@@ -1453,7 +1379,8 @@ if(end_type & SUFX_UNPRON)
 		// s or 's suffix, append [s], [z] or [Iz] depending on previous letter
 		if(last_char == 'f')
 			TranslateRules(tr, &word_ss[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL);
-		else if((last_char==0) || (strchr_w("hsx",last_char)==NULL))
+		else
+		if((last_char==0) || (strchr_w("hsx",last_char)==NULL))
 			TranslateRules(tr, &word_zz[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL);
 		else
 			TranslateRules(tr, &word_iz[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL);
@@ -1560,7 +1487,8 @@ if(end_type & SUFX_UNPRON)
 	{
 		ChangeWordStress(tr,word_phonemes,3);
 	}
-	else if(wflags & FLAG_EMPHASIZED2)
+	else
+	if(wflags & FLAG_EMPHASIZED2)
 	{
 		// A word is indicated in the source text as stressed
 		// Give it stress level 6 (for the intonation module)
@@ -1569,19 +1497,21 @@ if(end_type & SUFX_UNPRON)
 		if(wflags & FLAG_EMPHASIZED)
 			dictionary_flags[0] |= FLAG_PAUSE1;   // precede by short pause
 	}
-	else if(wtab[dictionary_skipwords].flags & FLAG_LAST_WORD)
+	else
+	if(wtab[dictionary_skipwords].flags & FLAG_LAST_WORD)
 	{
 		// the word has attribute to stress or unstress when at end of clause
 		if(dictionary_flags[0] & (FLAG_STRESS_END | FLAG_STRESS_END2))
 			ChangeWordStress(tr,word_phonemes,4);
-		else if((dictionary_flags[0] & FLAG_UNSTRESS_END) && (any_stressed_words))
+		else
+		if((dictionary_flags[0] & FLAG_UNSTRESS_END) && (any_stressed_words))
 			ChangeWordStress(tr,word_phonemes,3);
 	}
 
 
 	// dictionary flags for this word give a clue about which alternative pronunciations of
 	// following words to use.
-	if(end_type1 & SUFX_F)
+	if(end_type & SUFX_F)
 	{
 		// expect a verb form, with or without -s suffix
 		tr->expect_verb = 2;
@@ -1595,14 +1525,16 @@ if(end_type & SUFX_UNPRON)
 		tr->expect_verb = 0;
 		tr->expect_noun = 0;
 	}
-	else if(dictionary_flags[1] & FLAG_VERBF)
+	else
+	if(dictionary_flags[1] & FLAG_VERBF)
 	{
 		/* expect a verb in the next word */
 		tr->expect_verb = 2;
 		tr->expect_verb_s = 0;   /* verb won't have -s suffix */
 		tr->expect_noun = 0;
 	}
-	else if(dictionary_flags[1] & FLAG_VERBSF)
+	else
+	if(dictionary_flags[1] & FLAG_VERBSF)
 	{
 		// expect a verb, must have a -s suffix
 		tr->expect_verb = 0;
@@ -1610,7 +1542,8 @@ if(end_type & SUFX_UNPRON)
 		tr->expect_past = 0;
 		tr->expect_noun = 0;
 	}
-	else if(dictionary_flags[1] & FLAG_NOUNF)
+	else
+	if(dictionary_flags[1] & FLAG_NOUNF)
 	{
 		/* not expecting a verb next */
 		tr->expect_noun = 2;
@@ -1634,7 +1567,7 @@ if(end_type & SUFX_UNPRON)
 			tr->expect_past--;
 	}
 
-	if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha2(first_char) && (first_char != 'i'))
+	if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha(first_char) && (first_char != 'i'))
 	{
 // English Specific !!!!
 		// any single letter before a dot is an abbreviation, except 'I'
@@ -1675,7 +1608,8 @@ static int CountSyllables(unsigned char *phonemes)
 	return(count);
 }
 
-static void Word_EmbeddedCmd()
+
+void Word_EmbeddedCmd()
 {//====================
 // Process embedded commands for emphasis, sayas, and break
 	int embedded_cmd;
@@ -1712,26 +1646,8 @@ int SetTranslator2(const char *new_language)
 {//=========================================
 // Set translator2 to a second language
 	int new_phoneme_tab;
-	const char *new_phtab_name;
-	int bitmap;
-	int dialect = 0;
 
-	new_phtab_name = new_language;
-	if((bitmap = translator->langopts.dict_dialect) != 0)
-	{
-		if((bitmap & (1 << DICTDIALECT_EN_US)) && (strcmp(new_language, "en") == 0))
-		{
-			new_phtab_name = "en-us";
-			dialect = DICTDIALECT_EN_US;
-		}
-		if((bitmap & (1 << DICTDIALECT_ES_LA)) && (strcmp(new_language, "es") == 0))
-		{
-			new_phtab_name = "es-la";
-			dialect = DICTDIALECT_ES_LA;
-		}
-	}
-
-	if((new_phoneme_tab = SelectPhonemeTableName(new_phtab_name)) >= 0)
+	if((new_phoneme_tab = SelectPhonemeTableName(new_language)) >= 0)
 	{
 		if((translator2 != NULL) && (strcmp(new_language,translator2_language) != 0))
 		{
@@ -1745,30 +1661,14 @@ int SetTranslator2(const char *new_language)
 			translator2 = SelectTranslator(new_language);
 			strcpy(translator2_language,new_language);
 
-			if(LoadDictionary(translator2, translator2->dictionary_name, 0) != 0)
+			if(LoadDictionary(translator2, new_language, 0) != 0)
 			{
 				SelectPhonemeTable(voice->phoneme_tab_ix);  // revert to original phoneme table
 				new_phoneme_tab = -1;
 				translator2_language[0] = 0;
 			}
-			else
-			{
-				if(dialect == DICTDIALECT_EN_US)
-				{
-					// en-us
-					translator2->dict_condition = 0x48;  // bits 3, 6
-					translator2->langopts.param[LOPT_REDUCE_T] = 1;
-				}
-				if(dialect == DICTDIALECT_ES_LA)
-				{
-					translator2->dict_condition = 0x04;  // bit 2
-				}
-			}
-			translator2->phoneme_tab_ix = new_phoneme_tab;
 		}
 	}
-	if(translator2 != NULL)
-		translator2->phonemes_repeat[0] = 0;
 	return(new_phoneme_tab);
 }  // end of SetTranslator2
 
@@ -1797,11 +1697,10 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 	int ix;
 	int sylimit;        // max. number of syllables in a word to be combined with a preceding preposition
 	const char *new_language;
-	int bad_phoneme;
+	unsigned char bad_phoneme[4];
 	int word_flags;
 	int word_copy_len;
 	char word_copy[N_WORD_BYTES+1];
-	char word_replaced[N_WORD_BYTES+1];
 	char old_dictionary_name[40];
 
 	if((f_logespeak != NULL) && (logging_type & 8))
@@ -1822,7 +1721,6 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 	word_flags = wtab[0].flags;
 	if(word_flags & FLAG_EMBEDDED)
 	{
-		wtab[0].flags &= ~FLAG_EMBEDDED;  // clear it in case we call TranslateWord2() again for the same word
 		embedded_flag = SFLAG_EMBEDDED;
 
 		Word_EmbeddedCmd();
@@ -1903,7 +1801,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 		}
 		else
 		{
-			EncodePhonemes(word,word_phonemes,&bad_phoneme);
+			EncodePhonemes(word,word_phonemes,bad_phoneme);
 		}
 		flags = FLAG_FOUND;
 	}
@@ -1914,8 +1812,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 		while(((c2 = word_copy[ix] = word[ix]) != ' ') && (c2 != 0) && (ix < N_WORD_BYTES)) ix++;
 		word_copy_len = ix;
 
-		word_replaced[2] = 0;
-		flags = TranslateWord(translator, word, next_pause, wtab, &word_replaced[2]);
+		flags = TranslateWord(translator, word, next_pause, wtab);
 
 		if(flags & FLAG_SPELLWORD)
 		{
@@ -1941,7 +1838,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			while(*p2 != ' ') p2++;
 
 			utf8_in(&c_word2, p2+1);   // first character of the next word;
-			if(!iswalpha2(c_word2))
+			if(!iswalpha(c_word2))
 			{
 				ok =0;
 			}
@@ -1950,7 +1847,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			{
 				strcpy(ph_buf,word_phonemes);
 
-				flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1, NULL);
+				flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1);
 				if((flags2[0] & FLAG_WAS_UNPRONOUNCABLE) || (word_phonemes[0] == phonSWITCH))
 					ok = 0;
 
@@ -1962,7 +1859,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 						ok = 0;
 					}
 				}
-
+	
 				if((sylimit & 0x200) && ((wtab+1)->flags & FLAG_LAST_WORD))
 				{
 					// not if the next word is end-of-sentence
@@ -1978,13 +1875,12 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			if(ok)
 			{
 				*p2 = '-'; // replace next space by hyphen
-				wtab[0].flags &= ~FLAG_ALL_UPPER;  // prevent it being considered an abbreviation
-				flags = TranslateWord(translator, word, next_pause, wtab, NULL);  // translate the combined word
+				flags = TranslateWord(translator, word, next_pause, wtab);  // translate the combined word
 				if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f)))
 				{
 					// revert to separate words
 					*p2 = ' ';
-					flags = TranslateWord(translator, word, next_pause, wtab, NULL);
+					flags = TranslateWord(translator, word, next_pause, wtab);
 				}
 				else
 				{
@@ -1996,44 +1892,29 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			}
 		}
 
-		if(p[0]==phonSWITCH)
+		if(p[0] == phonSWITCH)
 		{
-			int switch_attempt;
-			strcpy(old_dictionary_name, dictionary_name);
-			for(switch_attempt=0; switch_attempt < 2; switch_attempt++)
-			{
-				// this word uses a different language
-				memcpy(word, word_copy, word_copy_len);
+			// this word uses a different language
+			memcpy(word, word_copy, word_copy_len);
 
-				new_language = (char *)(&p[1]);
-				if(new_language[0]==0)
-					new_language = "en";
+			new_language = (char *)(&p[1]);
+			if(new_language[0]==0)
+				new_language = "en";
 
-				switch_phonemes = SetTranslator2(new_language);
+			strcpy(old_dictionary_name, dictionary_name);
+			switch_phonemes = SetTranslator2(new_language);
 
-				if(switch_phonemes >= 0)
+			if(switch_phonemes >= 0)
+			{
+				// re-translate the word using the new translator
+				flags = TranslateWord(translator2, word, next_pause, wtab);
+//				strcpy((char *)p,translator2->word_phonemes);
+				if(p[0] == phonSWITCH)
 				{
-					// re-translate the word using the new translator
-					wtab[0].flags |= FLAG_TRANSLATOR2;
-					if(word_replaced[2] != 0)
-					{
-						word_replaced[0] = 0;   // byte before the start of the word
-						word_replaced[1] = ' ';
-						flags = TranslateWord(translator2, &word_replaced[1], next_pause, wtab, NULL);
-					}
-					else
-						flags = TranslateWord(translator2, word, next_pause, wtab, &word_replaced[2]);
+					// the second translator doesn't want to process this word
+					switch_phonemes = -1;
 				}
-
-				if(p[0] != phonSWITCH)
-					break;
 			}
-
-			//				strcpy((char *)p,translator2->word_phonemes);
-
-			if(p[0] == phonSWITCH)
-				return(FLAG_SPELLWORD);
-
 			if(switch_phonemes < 0)
 			{
 				// language code is not recognised or 2nd translator won't translate it
@@ -2080,6 +1961,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			pre_pause = 1;
 	}
 
+	plist2 = &ph_list2[n_ph_list2];
 	stress = 0;
 	next_stress = 1;
 	srcix = 0;
@@ -2104,10 +1986,8 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			pre_pause--;
 		}
 		tr->end_stressed_vowel = 0;   // forget about the previous word
-		tr->prev_dict_flags[0] = 0;
-		tr->prev_dict_flags[1] = 0;
+		tr->prev_dict_flags = 0;
 	}
-	plist2 = &ph_list2[n_ph_list2];
 
 	if((option_capitals==1) && (word_flags & FLAG_FIRST_UPPER))
 	{
@@ -2123,29 +2003,9 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 
 	if(switch_phonemes >= 0)
 	{
-		if((p[0] == phonPAUSE) && (p[1] == phonSWITCH))
-		{
-			// the new word starts with a phoneme table switch, so there's no need to switch before it.
-			if(ph_list2[n_ph_list2-1].phcode == phonSWITCH)
-			{
-				//previous phoneme is also a phonSWITCH, delete it
-				n_ph_list2--;
-			}
-		}
-		else
-		{
-			// this word uses a different phoneme table
-			if(ph_list2[n_ph_list2-1].phcode == phonSWITCH)
-			{
-				//previous phoneme is also a phonSWITCH, just change its phoneme table number
-				n_ph_list2--;
-			}
-			else
-			{
-				SetPlist2(&ph_list2[n_ph_list2],phonSWITCH);
-			}
-			ph_list2[n_ph_list2++].tone_ph = switch_phonemes;  // temporary phoneme table number
-		}
+		// this word uses a different phoneme table
+		SetPlist2(&ph_list2[n_ph_list2],phonSWITCH);
+		ph_list2[n_ph_list2++].tone_ph = switch_phonemes;  // temporary phoneme table number
 	}
 
 	// remove initial pause from a word if it follows a hyphen
@@ -2171,12 +2031,11 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 		{
 			ph_list2[n_ph_list2].phcode = ph_code;
 			ph_list2[n_ph_list2].sourceix = 0;
-			ph_list2[n_ph_list2].synthflags = 0;
-			ph_list2[n_ph_list2++].tone_ph = *p;
-			SelectPhonemeTable(*p);
-			p++;
+			ph_list2[n_ph_list2].synthflags = embedded_flag;
+			ph_list2[n_ph_list2++].tone_ph = *p++;
 		}
-		else if(ph->type == phSTRESS)
+		else
+		if(ph->type == phSTRESS)
 		{
 			// don't add stress phonemes codes to the list, but give their stress
 			// value to the next vowel phoneme
@@ -2196,27 +2055,31 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 				}
 			}
 		}
-		else if(ph_code == phonSYLLABIC)
+		else
+		if(ph_code == phonSYLLABIC)
 		{
 			// mark the previous phoneme as a syllabic consonant
 			prev_vowel = n_ph_list2-1;
 			ph_list2[prev_vowel].synthflags |= SFLAG_SYLLABLE;
 			ph_list2[prev_vowel].stresslevel = next_stress;
 		}
-		else if(ph_code == phonLENGTHEN)
+		else
+		if(ph_code == phonLENGTHEN)
 		{
 			ph_list2[n_ph_list2-1].synthflags |= SFLAG_LENGTHEN;
 		}
-		else if(ph_code == phonEND_WORD)
+		else
+		if(ph_code == phonEND_WORD)
 		{
 			// a || symbol in a phoneme string was used to indicate a word boundary
 			// Don't add this phoneme to the list, but make sure the next phoneme has
 			// a newword indication
 			srcix = source_ix+1;
 		}
-		else if(ph_code == phonX1)
+		else
+		if(ph_code == phonX1)
 		{
-			// a language specific action
+			// a language specific action 
 			if(tr->langopts.param[LOPT_IT_DOUBLING])
 			{
 				flags |= FLAG_DOUBLING;
@@ -2262,8 +2125,8 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 			{
 				if(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING])
 				{
-					if(((tr->prev_dict_flags[0] & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) ||
-							(tr->end_stressed_vowel && (tr->langopts.param[LOPT_IT_DOUBLING] & 2)))
+					if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || 
+						(tr->end_stressed_vowel && (tr->langopts.param[LOPT_IT_DOUBLING] & 2)))
 					{
 						// italian, double the initial consonant if the previous word ends with a
 						// stressed vowel, or is marked with a flag
@@ -2318,14 +2181,14 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
 		ph_list2[max_stress_ix].synthflags |= SFLAG_PROMOTE_STRESS;
 	}
 
-	tr->prev_dict_flags[0] = flags;
+	tr->prev_dict_flags = flags;
 	return(flags);
 }  //  end of TranslateWord2
 
 
 
-static int EmbeddedCommand(unsigned int *source_index_out)
-{//=======================================================
+static int EmbeddedCommand(unsigned int &source_index)
+{//===================================================
 	// An embedded command to change the pitch, volume, etc.
 	// returns number of commands added to embedded_list
 
@@ -2336,7 +2199,6 @@ static int EmbeddedCommand(unsigned int *source_index_out)
 	unsigned char c;
 	char *p;
 	int cmd;
-	int source_index = *source_index_out;
 
 	c = source[source_index];
 	if(c == '+')
@@ -2344,16 +2206,17 @@ static int EmbeddedCommand(unsigned int *source_index_out)
 		sign = 0x40;
 		source_index++;
 	}
-	else if(c == '-')
+	else
+	if(c == '-')
 	{
 		sign = 0x60;
 		source_index++;
 	}
 
-	if(IsDigit09(source[source_index]))
+	if(isdigit(source[source_index]))
 	{
 		value = atoi(&source[source_index]);
-		while(IsDigit09(source[source_index]))
+		while(isdigit(source[source_index]))
 			source_index++;
 	}
 
@@ -2384,7 +2247,6 @@ static int EmbeddedCommand(unsigned int *source_index_out)
 	}
 
 	embedded_list[embedded_ix++] = cmd + sign + (value << 8);
-	*source_index_out = source_index;
 	return(1);
 }  //  end of EmbeddedCommand
 
@@ -2411,9 +2273,9 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
 
 	// there is a list of character codes to be substituted with alternative codes
 
-	if(iswupper2(c_lower = c))
+	if(iswupper(c_lower = c))
 	{
-		c_lower = towlower2(c);
+		c_lower = towlower(c);
 		upper_case = 1;
 	}
 
@@ -2427,7 +2289,7 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
 				new_c = replace_chars[ix+1];
 				break;
 			}
-			if((word >> 16) == (unsigned int)towlower2(next_in))
+			if((word >> 16) == (unsigned int)towlower(next_in))
 			{
 				new_c = replace_chars[ix+1];
 				ignore_next = 1;
@@ -2444,14 +2306,14 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
 		// there is a second character to be inserted
 		// don't convert the case of the second character unless the next letter is also upper case
 		c2 = new_c >> 16;
-		if(upper_case && iswupper2(next_in))
-			c2 = towupper2(c2);
+		if(upper_case && iswupper(next_in))
+			c2 = towupper(c2);
 		*insert = c2;
 		new_c &= 0xffff;
 	}
 
 	if(upper_case)
-		new_c = towupper2(new_c);
+		new_c = towupper(new_c);
 
 	*wordflags |= FLAG_CHAR_REPLACED;
 	return(new_c);
@@ -2470,52 +2332,22 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
 	int next2;
 
 	static const unsigned char hangul_compatibility[0x34] = {
-		0,  0x00,0x01,0xaa,0x02,0xac,0xad,0x03,
-		0x04,0x05,0xb0,0xb1,0xb2,0xb3,0xb4,0xb4,
-		0xb6,0x06,0x07,0x08,0xb9,0x09,0x0a,0xbc,
-		0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x61,
-		0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
-		0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,
-		0x72,0x73,0x74,0x75
-	};
-
-	// check for Korean Hangul letters
-	if(((code = c - 0xac00) >= 0) && (c <= 0xd7af))
-	{
-		// break a syllable hangul into 2 or 3 individual jamo
-		initial = (code/28)/21;
-		medial = (code/28) % 21;
-		final = code % 28;
-
-		if(initial == 11)
-		{
-			// null initial
-			c = medial + 0x1161;
-			if(final > 0)
-				*insert = final + 0x11a7;
-		}
-		else
-		{
-			// extact the initial and insert the remainder with a null initial
-			c = initial + 0x1100;
-			*insert = (11*28*21) + (medial*28) + final + 0xac00;
-		}
-		return(c);
-	}
-	else if(((code = c - 0x3130) >= 0) && (code < 0x34))
-	{
-		// Hangul compatibility jamo
-		return(hangul_compatibility[code] + 0x1100);
-	}
+	 0,  0x00,0x01,0xaa,0x02,0xac,0xad,0x03,
+	0x04,0x05,0xb0,0xb1,0xb2,0xb3,0xb4,0xb4,
+	0xb6,0x06,0x07,0x08,0xb9,0x09,0x0a,0xbc,
+	0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x61,
+	0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+	0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,
+	0x72,0x73,0x74,0x75 };
 
 	switch(tr->translator_name)
 	{
 	case L('a','f'):
 	case L('n','l'):
-		// look for 'n  and replace by a special character (unicode: schwa)
+	// look for 'n  and replace by a special character (unicode: schwa)
 
 
-		if(!iswalpha2(prev_in))
+		if(!iswalpha(prev_in))
 		{
 			utf8_in(&next2, &ptr[1]);
 
@@ -2535,36 +2367,39 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
 			}
 		}
 		break;
-	}
-	return(SubstituteChar(tr, c, next_in, insert, wordflags));
-}
-
-
-static const char *UCase_ga[] = {"bp","bhf","dt","gc","hA","mb","nd","ng","ts","tA","nA",NULL};
-
-static int UpperCaseInWord(Translator *tr, char *word, int c)
-{//=====================================================
-	int ix;
-	int len;
-	const char *p;
 
-	if(tr->translator_name == L('g','a'))
-	{
-		// Irish
-		for(ix=0; ; ix++)
+	case L('k','o'):
+		if(((code = c - 0xac00) >= 0) && (c <= 0xd7af))
 		{
-			if((p = UCase_ga[ix]) == NULL)
-				break;
+			// break a syllable hangul into 2 or 3 individual jamo
+			initial = (code/28)/21;
+			medial = (code/28) % 21;
+			final = code % 28;
 
-			len = strlen(p);
-			if((word[-len]==' ') && (memcmp(&word[-len+1], p, len-1) == 0))
+			if(initial == 11)
 			{
-				if((c == p[len-1]) || ((p[len-1]=='A') && IsVowel(tr, c)))
-					return(1);
+				// null initial
+				c = medial + 0x1161;
+				if(final > 0)
+					*insert = final + 0x11a7;
 			}
+			else
+			{
+				// extact the initial and insert the remainder with a null initial
+				c = initial + 0x1100;
+				*insert = (11*28*21) + (medial*28) + final + 0xac00;
+			}
+			return(c);
+		}
+		else
+		if(((code = c - 0x3130) >= 0) && (code < 0x34))
+		{
+			// Hangul compatibility jamo
+			return(hangul_compatibility[code] + 0x1100);
 		}
+		break;
 	}
-	return(0);
+	return(SubstituteChar(tr, c, next_in, insert, wordflags));
 }
 
 
@@ -2593,7 +2428,6 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 	int dict_flags = 0;        // returned from dictionary lookup
 	int word_flags;        // set here
 	int next_word_flags;
-	int new_sentence2;
 	int embedded_count = 0;
 	int letter_count = 0;
 	int space_inserted = 0;
@@ -2645,16 +2479,13 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 		fprintf(f_logespeak,"ENDCLAUSE\n");
 		fflush(f_logespeak);
 	}
-	p = source;
+p = source;
 
 	charix[charix_top+1] = 0;
 	charix[charix_top+2] = 0x7fff;
 	charix[charix_top+3] = 0;
 
 	clause_pause = (terminator & 0xfff) * 10;  // mS
-	if(terminator & CLAUSE_PAUSE_LONG)
-	  clause_pause = clause_pause * 32 ;  // pause value is *320mS not *10mS
-
 	tone = (terminator >> 12) & 0x7;
 	if(tone2 != 0)
 	{
@@ -2677,19 +2508,16 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 		if(clause_pause < 0)
 			clause_pause = 0;
 
-		if(new_sentence)
-			terminator |= CLAUSE_BIT_SENTENCE;  // carry forward an end-of-sentence indicator
+		terminator &= ~CLAUSE_BIT_SENTENCE;  // clear sentence bit
 		max_clause_pause += clause_pause;
-		new_sentence2 = 0;
 	}
 	else
 	{
 		max_clause_pause = clause_pause;
-		new_sentence2 = new_sentence;
 	}
 	tr->clause_terminator = terminator;
 
-	if(new_sentence2)
+	if(new_sentence)
 	{
 		count_sentences++;
 		if(skip_sentences > 0)
@@ -2712,8 +2540,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 	tr->expect_verb_s=0;
 	tr->phonemes_repeat_count = 0;
 	tr->end_stressed_vowel=0;
-	tr->prev_dict_flags[0] = 0;
-	tr->prev_dict_flags[1] = 0;
+	tr->prev_dict_flags = 0;
 
 	word_count = 0;
 	single_quoted = 0;
@@ -2757,7 +2584,8 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 			prev_in = prev_in_save;
 			prev_in_save = 0;
 		}
-		else if(source_index > 0)
+		else
+		if(source_index > 0)
 		{
 			utf8_in2(&prev_in,&source[source_index-1],1);  //  prev_in = source[source_index-1];
 		}
@@ -2795,7 +2623,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 			}
 			else
 			{
-				embedded_count += EmbeddedCommand(&source_index);
+				embedded_count += EmbeddedCommand(source_index);
 				prev_in_save = prev_in;
 				// replace the embedded command by spaces
 				memset(&source[srcix],' ',source_index-srcix);
@@ -2823,7 +2651,8 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 				c = ' ';
 			}
 		}
-		else if((option_sayas2 & 0xf0) == SAYAS_DIGITS)
+		else
+		if((option_sayas2 & 0xf0) == SAYAS_DIGITS)
 		{
 			if(iswdigit(c))
 			{
@@ -2846,7 +2675,8 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
 				}
 			}
 		}
-		else if((option_sayas2 & 0x10) == 0)
+		else
+		if((option_sayas2 & 0x10) == 0)
 		{
 			// speak as words
 
@@ -2860,7 +2690,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 }
 #endif
 			if((c == 0x92) || (c == 0xb4) || (c == 0x2019) || (c == 0x2032))
-				c = '\'';    // 'microsoft' quote or sexed closing single quote, or prime - possibly used as apostrophe
+				c = '\'';    // 'microsoft' quote or sexed closing single quote, or prime - possibly used as apostrophe 
 
 			if(((c == 0x2018) || (c == '?')) && IsAlpha(prev_out) && IsAlpha(next_in))
 			{
@@ -2925,7 +2755,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 			{
 				if((next_in == '\002') || ((next_in == '[') && option_phoneme_input))
 				{
-					//  "[\002" is used internally to start phoneme mode
+					//  "[\002" is used internally to start phoneme mode  
 					phoneme_mode = FLAG_PHONEMES;
 					source_index++;
 					continue;
@@ -2952,7 +2782,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 					}
 					else
 					{
-						if(iswupper2(c))
+						if(iswupper(c))
 							word_flags |= FLAG_FIRST_UPPER;
 
 						if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in))
@@ -2965,29 +2795,23 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 					}
 				}
 
-				if(c != ' ')
-				{
-					letter_count++;
+				letter_count++;
 
-					if(tr->letter_bits_offset > 0)
+				if(tr->letter_bits_offset > 0)
+				{
+					if(((c < 0x250) && (prev_out >= tr->letter_bits_offset)) ||
+						((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250)))
 					{
-						if(((c < 0x250) && (prev_out >= tr->letter_bits_offset)) ||
-								((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250)))
-						{
-							// Don't mix native and Latin characters in the same word
-							// Break into separate words
-							if(IsAlpha(prev_out))
-							{
-								c = ' ';
-								space_inserted = 1;
-								word_flags |= FLAG_HYPHEN_AFTER;
-								next_word_flags |= FLAG_HYPHEN;
-							}
-						}
+						// Don't mix native and Latin characters in the same word
+						// Break into separate words
+						c = ' ';
+						space_inserted = 1;
+						word_flags |= FLAG_HYPHEN_AFTER;
+						next_word_flags |= FLAG_HYPHEN;
 					}
 				}
 
-				if(iswupper2(c))
+				if(iswupper(c))
 				{
 					c = towlower2(c);
 
@@ -3002,32 +2826,18 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 					}
 					else
 					{
-						if(iswlower2(prev_in))
+						if(iswlower(prev_in))
 						{
-							// lower case followed by upper case in a word
-							if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
-							{
-								// convert to lower case and continue
-								c = towlower2(c);
-							}
-							else
-							{
-								c = ' ';      // lower case followed by upper case, treat as new word
-								space_inserted = 1;
-								prev_in_save = c;
-								//							next_word_flags |= FLAG_NOSPACE;  // problem: prevents FLAG_HAS_DOT being set
-							}
+							c = ' ';      // lower case followed by upper case, treat as new word
+							space_inserted = 1;
+							prev_in_save = c;
+//							next_word_flags |= FLAG_NOSPACE;  // problem: prevents FLAG_HAS_DOT being set
 						}
-						else if((c != ' ') && iswupper2(prev_in) && iswlower2(next_in))
+						else
+						if((c != ' ') && iswupper(prev_in) && iswlower(next_in))
 						{
 							int next2_in;
 							utf8_in(&next2_in,&source[source_index + next_in_nbytes]);
-
-							if((tr->translator_name == L('n','l')) && (letter_count==2) && (c == 'j') && (prev_in == 'I'))
-							{
-								// Dutch words may capitalise initial IJ, don't split
-							}
-							else
 							if(IsAlpha(next2_in))
 							{
 								// changing from upper to lower case, start new word at the last uppercase, if 3 or more letters
@@ -3058,12 +2868,13 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 						all_upper_case = 0;
 				}
 			}
-			else if(c=='-')
+			else
+			if(c=='-')
 			{
 				if(!IsSpace(prev_in) && IsAlpha(next_in))
 				{
 					if(prev_out != ' ')
-					{
+					{	
 						// previous 'word' not yet ended (not alpha or numeric), start new word now.
 						c = ' ';
 						space_inserted = 1;
@@ -3077,27 +2888,31 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 						c = ' ';
 					}
 				}
-				else if((prev_in==' ') && (next_in==' '))
+				else
+				if((prev_in==' ') && (next_in==' '))
 				{
 					// ' - ' dash between two spaces, treat as pause
 					c = ' ';
 					pre_pause_add = 4;
 				}
-				else if(next_in=='-')
+				else
+				if(next_in=='-')
 				{
 					// double hyphen, treat as pause
 					source_index++;
 					c = ' ';
 					pre_pause_add = 4;
 				}
-				else if((prev_out == ' ') && IsAlpha(prev_out2) && !IsAlpha(prev_in))
+				else
+				if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in))
 				{
 					// insert extra space between a word + space + hyphen, to distinguish 'a -2' from 'a-2'
 					sbuf[ix++] = ' ';
 					words[word_count].start++;
 				}
 			}
-			else if(c == '.')
+			else
+			if(c == '.')
 			{
 				if(prev_out == '.')
 				{
@@ -3105,7 +2920,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 					c = ' ';
 					space_inserted = 1;
 				}
-				else if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in))
+				else
+				if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in))
 				{
 					// dot after a word, with space following, probably an abbreviation
 					words[word_count-1].flags |= FLAG_HAS_DOT;
@@ -3114,22 +2930,16 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 						c = ' ';   // remove the dot if it's followed by a space or hyphen, so that it's not pronounced
 				}
 			}
-			else if(c == '\'')
+			else
+			if(c == '\'')
 			{
 				if(((prev_in == '.') || iswalnum(prev_in)) && IsAlpha(next_in))
 				{
 					// between two letters, or in an abbreviation (eg. u.s.a.'s). Consider the apostrophe as part of the word
 					single_quoted = 0;
 				}
-				else if((tr->langopts.param[LOPT_APOSTROPHE] & 1) && IsAlpha(next_in))
-				{
-					single_quoted = 0;   // apostrophe at start of word is part of the word
-				}
-				else if((tr->langopts.param[LOPT_APOSTROPHE] & 2) && IsAlpha(prev_in))
-				{
-					single_quoted = 0;   // apostrophe at end of word is part of the word
-				}
-				else if((wcschr(tr->char_plus_apostrophe,prev_in) != 0) && (prev_out2 == ' '))
+				else
+				if((wcschr(tr->char_plus_apostrophe,prev_in) != 0) && (prev_out2 == ' '))
 				{
 					// consider single character plus apostrophe as a word
 					single_quoted = 0;
@@ -3160,41 +2970,44 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 			else
 #ifdef deleted
 // Brackets are now recognised in TranslateRules()
-				if(IsBracket(c))
+			if(IsBracket(c))
+			{
+				pre_pause_add = 4;
+				c = ' ';
+			}
+			else
+#endif
+			if(lookupwchar(breaks,c) != 0)
+			{
+				c = ' ';  // various characters to treat as space
+			}
+			else
+			if(iswdigit(c))
+			{
+				if(tr->langopts.tone_numbers && IsAlpha(prev_out) && !IsDigit(next_in))
 				{
-					pre_pause_add = 4;
-					c = ' ';
 				}
 				else
-#endif
-					if(lookupwchar(breaks,c) != 0)
+				if((prev_out != ' ') && !iswdigit(prev_out))
+				{
+					if((prev_out != tr->langopts.decimal_sep) || ((decimal_sep_count > 0) && (tr->langopts.decimal_sep == ',')))
 					{
-						c = ' ';  // various characters to treat as space
+						c = ' ';
+						space_inserted = 1;
 					}
-					else if(iswdigit(c))
+					else
 					{
-						if(tr->langopts.tone_numbers && IsAlpha(prev_out) && !IsDigit(next_in))
-						{
-						}
-						else if((prev_out != ' ') && !iswdigit(prev_out))
-						{
-							if((prev_out != tr->langopts.decimal_sep) || ((decimal_sep_count > 0) && (tr->langopts.decimal_sep == ',')))
-							{
-								c = ' ';
-								space_inserted = 1;
-							}
-							else
-							{
-								decimal_sep_count = 1;
-							}
-						}
-						else if((prev_out == ' ') && IsAlpha(prev_out2) && !IsAlpha(prev_in))
-						{
-							// insert extra space between a word and a number, to distinguish 'a 2' from 'a2'
-							sbuf[ix++] = ' ';
-							words[word_count].start++;
-						}
+						decimal_sep_count = 1;
 					}
+				}
+				else
+				if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in))
+				{
+					// insert extra space between a word and a number, to distinguish 'a 2' from 'a2'
+					sbuf[ix++] = ' ';
+					words[word_count].start++;
+				}
+			}
 		}
 
 		if(IsSpace(c))
@@ -3297,7 +3110,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 	if((word_count==0) && (embedded_count > 0))
 	{
 		// add a null 'word' to carry the embedded command flag
-		embedded_list[embedded_ix-1] |= 0x80;
+		embedded_list[embedded_ix-1] |= 0x80; 
 		words[word_count].flags |= FLAG_EMBEDDED;
 		word_count = 1;
 	}
@@ -3313,7 +3126,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 			ix--;  // the last word is a bracket, mark the previous word as last
 		words[ix].flags |= FLAG_LAST_WORD;
 
-		// FLAG_NOSPACE check to avoid recognizing  .mr  -mr
+		// FLAG_NOSPACE check to avoid recognizing  .mr  -mr 
 		if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE))
 			words[word_count-1].flags |= FLAG_HAS_DOT;
 	}
@@ -3341,7 +3154,6 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 		if(skipping_text)
 			continue;
 
-		current_alphabet = NULL;
 
 		// digits should have been converted to Latin alphabet ('0' to '9')
 		word = pw = &sbuf[words[ix].start];
@@ -3356,8 +3168,9 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 				{
 					*pn++ = *pw++;
 				}
-				else if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ')
-						&& iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' '))  // don't allow only 1 or 2 digits in the final part
+				else
+				if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ')
+					&& iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' '))  // don't allow only 1 or 2 digits in the final part
 				{
 					pw += 2;
 					ix++;  // skip "word"
@@ -3389,7 +3202,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 
 			while(pn < &number_buf[sizeof(number_buf)-20])
 			{
-				if(!IsDigit09(c = *pw++) && (c != tr->langopts.decimal_sep))
+				if(!isdigit(c = *pw++) && (c != tr->langopts.decimal_sep))
 					break;
 
 				*pn++ = c;
@@ -3403,20 +3216,16 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 						*pn++ = tr->langopts.thousands_sep;
 					}
 					*pn++ = ' ';
-
-					if((words[ix].flags & FLAG_INDIVIDUAL_DIGITS) == 0)
+					if(tr->langopts.break_numbers & (1 << (nx-1)))
 					{
-						if(tr->langopts.break_numbers & (1 << (nx-1)))
-						{
-							// the next group only has 1 digits, make it three
-							*pn++ = '0';
-							*pn++ = '0';
-						}
-						if(tr->langopts.break_numbers & (1 << (nx-2)))
-						{
-							// the next group only has 2 digits (eg. Indian languages), make it three
-							*pn++ = '0';
-						}
+						// the next group only has 1 digits (i.e. NUM2_10000), make it three
+						*pn++ = '0';
+						*pn++ = '0';
+					}
+					if(tr->langopts.break_numbers & (1 << (nx-2)))
+					{
+						// the next group only has 2 digits (i.e. NUM2_10000), make it three
+						*pn++ = '0';
 					}
 				}
 			}
@@ -3425,7 +3234,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 
 			for(j=1; j<=nw; j++)
 			{
-				num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED);     // don't use these flags for subsequent parts when splitting a number
+					num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED);     // don't use these flags for subsequent parts when splitting a number
 			}
 
 			// include the next few characters, in case there are an ordinal indicator or other suffix
@@ -3512,9 +3321,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 		clause_pause = 10;
 	}
 
-	MakePhonemeList(tr, clause_pause, new_sentence2);
-	phoneme_list[N_PHONEME_LIST].ph = NULL;   // recognize end of phoneme_list array, in Generate()
-	phoneme_list[N_PHONEME_LIST].sourceix = 1;
+	MakePhonemeList(tr, clause_pause, new_sentence);
 
 	if(embedded_count)   // ???? is this needed
 	{
@@ -3526,8 +3333,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
 
 	prev_clause_pause = clause_pause;
 
-	if(tone_out != NULL)
-		*tone_out = tone;
+	*tone_out = tone;
 
 	new_sentence = 0;
 	if(terminator & CLAUSE_BIT_SENTENCE)
diff --git a/external/espeak/translate.h b/external/espeak/translate.h
old mode 100755
new mode 100644
index 4750aff..76075f6
--- a/external/espeak/translate.h
+++ b/external/espeak/translate.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2011 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -23,12 +23,9 @@
 #define CTRL_EMBEDDED    0x01         // control character at the start of an embedded command
 #define REPLACED_E       'E'          // 'e' replaced by silent e
 
-#define N_WORD_PHONEMES  200          // max phonemes in a word
+#define N_WORD_PHONEMES  160          // max phonemes in a word
 #define N_WORD_BYTES     160          // max bytes for the UTF8 characters in a word
 #define N_CLAUSE_WORDS   300          // max words in a clause
-#define N_TR_SOURCE    800            // the source text of a single clause (UTF8 bytes)
-
-
 #define N_RULE_GROUP2    120          // max num of two-letter rule chains
 #define N_HASH_DICT     1024
 #define N_CHARSETS        20
@@ -40,22 +37,27 @@
 #define FLAG_SKIPWORDS        0x80
 #define FLAG_PREPAUSE        0x100
 
-#define FLAG_STRESS_END      0x200  // full stress if at end of clause
-#define FLAG_STRESS_END2     0x400  // full stress if at end of clause, or only followed by unstressed
-#define FLAG_UNSTRESS_END    0x800  // reduce stress at end of clause
-#define FLAG_SPELLWORD      0x1000  // re-translate the word as individual letters, separated by spaces
-#define FLAG_ABBREV         0x2000  // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters
-#define FLAG_DOUBLING       0x4000  // doubles the following consonant
-
-#define BITNUM_FLAG_ALT         14  // bit number of FLAG_ALT_TRANS - 1
-#define FLAG_ALT_TRANS      0x8000  // language specific
-#define FLAG_ALT2_TRANS    0x10000  // language specific
-#define FLAG_ALT3_TRANS    0x20000  // language specific
-#define FLAG_ALT4_TRANS    0x40000  // language specific
-#define FLAG_ALT5_TRANS    0x80000  // language specific
-#define FLAG_ALT6_TRANS   0x100000  // language specific
-
+#define FLAG_ONLY            0x200
+#define FLAG_ONLY_S          0x400
+#define BITNUM_FLAG_ONLY         9  // bit 9 is set
+#define BITNUM_FLAG_ONLY_S      10  // bit 10 is set
+
+#define FLAG_STRESS_END      0x800  /* full stress if at end of clause */
+#define FLAG_STRESS_END2    0x1000  /* full stress if at end of clause, or only followed by unstressed */
+#define FLAG_UNSTRESS_END   0x2000  /* reduce stress at end of clause */
+#define FLAG_ATEND          0x4000  /* use this pronunciation if at end of clause */
+#define FLAG_ATSTART        0x8000  // use this pronunciation if at start of clause
+#define FLAG_SPELLWORD     0x10000  // re-translate the word as individual letters, separated by spaces
+#define FLAG_ABBREV        0x20000  // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters
+#define FLAG_STEM          0x40000  // must have a suffix
+
+#define FLAG_DOUBLING      0x80000  // doubles the following consonant
+#define BITNUM_FLAG_ALT         19  // bit number of FLAG_ALT_TRANS - 1
+#define FLAG_ALT_TRANS    0x100000  // language specific
+#define FLAG_ALT2_TRANS   0x200000  // language specific
+#define FLAG_ALT3_TRANS   0x400000  // language specific
 #define FLAG_COMBINE      0x800000  // combine with the next word
+
 #define FLAG_ALLOW_DOT  0x01000000  // ignore '.' after word (abbreviation)
 #define FLAG_NEEDS_DOT  0x02000000  // only if the word is followed by a dot
 #define FLAG_WAS_UNPRONOUNCABLE  0x04000000  // the unpronounceable routine was used
@@ -81,18 +83,8 @@
 #define FLAG_ACCENT          0x800  // character name is base-character name + accent name
 #define FLAG_HYPHENATED     0x1000  // multiple-words, but needs hyphen between parts 1 and 2
 #define FLAG_SENTENCE       0x2000  // only if the clause is a sentence
-#define FLAG_ONLY           0x4000
-#define FLAG_ONLY_S         0x8000
-#define FLAG_STEM          0x10000  // must have a suffix
-#define FLAG_ATEND         0x20000  // use this pronunciation if at end of clause
-#define FLAG_ATSTART       0x40000  // use this pronunciation if at start of clause
-#define FLAG_NATIVE        0x80000  // not if we've switched translators
-#define FLAG_LOOKUP_SYMBOL 0x40000000  // to indicate called from Lookup()
-
 #define BITNUM_FLAG_ALLCAPS   0x2a
 #define BITNUM_FLAG_HYPHENATED  0x2c
-#define BITNUM_FLAG_ONLY      0x2e
-#define BITNUM_FLAG_ONLY_S    0x2f
 
 
 // wordflags, flags in source word
@@ -119,8 +111,6 @@
 #define FLAG_INDIVIDUAL_DIGITS 0x80000  // speak number as individual digits
 #define FLAG_DELETE_WORD     0x100000   // don't speak this word, it has been spoken as part of the previous word
 #define FLAG_CHAR_REPLACED   0x200000   // characters have been replaced by .replace in the *_rules
-#define FLAG_TRANSLATOR2     0x400000   // retranslating using a different language
-#define FLAG_PREFIX_REMOVED  0x800000   // a prefix has been removed from this word
 
 #define FLAG_SUFFIX_VOWEL  0x08000000   // remember an initial vowel from the suffix
 #define FLAG_NO_TRACE      0x10000000   // passed to TranslateRules() to suppress dictionary lookup printout
@@ -139,7 +129,6 @@
 #define SUFX_T        0x10000   // don't affect the stress position in the stem
 #define SUFX_B        0x20000  // break, this character breaks the word into stem and suffix (used with SUFX_P)
 #define SUFX_A        0x40000  // remember that the suffix starts with a vowel
-#define SUFX_M        0x80000  // bit 19, allow multiple suffixes
 
 #define SUFX_UNPRON     0x8000   // used to return $unpron flag from *_rules
 
@@ -183,11 +172,6 @@
 #define RULE_SPELLING   31   // W while spelling letter-by-letter
 #define RULE_LAST_RULE   31
 
-#define DOLLAR_UNPR     0x01
-#define DOLLAR_NOPREFIX 0x02
-#define DOLLAR_LIST     0x03
-
-
 #define LETTERGP_A	0
 #define LETTERGP_B	1
 #define LETTERGP_C	2
@@ -199,7 +183,7 @@
 
 
 // Punctuation types  returned by ReadClause()
-// bits 0-11 pause x 10mS
+// bits 0-7 pause x 10mS, bits 12-14 intonation type,
 // bits12-14 intonation type
 // bit 15- don't need space after the punctuation
 // bit 19=sentence, bit 18=clause,  bits 17=voice change
@@ -207,8 +191,6 @@
 // bit 20= punctuation character can be inside a word (Armenian)
 // bit 21= speak the name of the punctuation character
 // bit 22= dot after the last word
-// bit 23= pause is x 320mS (not x 10mS)
-
 #define CLAUSE_BIT_SENTENCE  0x80000
 #define CLAUSE_BIT_CLAUSE    0x40000
 #define CLAUSE_BIT_VOICE     0x20000
@@ -216,7 +198,6 @@
 #define PUNCT_IN_WORD        0x100000
 #define PUNCT_SAY_NAME       0x200000
 #define CLAUSE_DOT           0x400000
-#define CLAUSE_PAUSE_LONG 0x800000
 
 #define CLAUSE_NONE        ( 0 + 0x04000)
 #define CLAUSE_PARAGRAPH   (70 + 0x80000)
@@ -260,9 +241,9 @@ typedef struct {
 typedef struct{
 	unsigned int flags;
 	unsigned short start;
+	unsigned short sourceix;
 	unsigned char pre_pause;
 	unsigned char wmark;
-	unsigned short sourceix;
 	unsigned char length;
 } WORD_TAB;
 
@@ -276,25 +257,8 @@ extern PARAM_STACK param_stack[];
 extern const int param_defaults[N_SPEECH_PARAM];
 
 
-typedef struct {
-    const char *name;
-    int offset;
-    unsigned short range_min, range_max;
-    int language;
-    int flags;
-} ALPHABET;
-
-extern ALPHABET alphabets[];
-extern ALPHABET *current_alphabet;
-// alphabet flags
-#define AL_DONT_NAME  0x01    // don't speak the alphabet name
-#define AL_NOT_LETTERS  0x02  // don't use the language for speaking letters
-#define AL_WORDS      0x04    // use the language to speak words
-#define AL_NOT_CODE   0x08    // don't speak the character code
-#define AL_NO_SYMBOL  0x10    // don't repeat "symbol" or "character"
-
-
-#define N_LOPTS      21
+
+#define N_LOPTS      20
 #define LOPT_DIERESES        1
  // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables
  // bit 4=0, if stress < 4,  bit 4=1, if not the highest stress in the word
@@ -364,10 +328,6 @@ extern ALPHABET *current_alphabet;
 	// bit 0:  Don't allow suffices if there is no previous syllable
 #define LOPT_SUFFIX  19
 
-	// bit 0  Apostrophe at start of word is part of the word
-	// bit 1  Apostrophe at end of word is part of the word
-#define LOPT_APOSTROPHE  20
-
 
 // stress_rule
 #define STRESSPOSN_1L	0	// 1st syllable
@@ -388,58 +348,35 @@ typedef struct {
 
 #define S_NO_DIM            0x02
 #define S_FINAL_DIM         0x04
-#define S_FINAL_DIM_ONLY    0x06
+#define S_FINAL_NO_2        0x10
+#define S_NO_AUTO_2         0x20
+#define S_2_TO_HEAVY        0x40
+#define S_FIRST_PRIMARY     0x80
+#define S_2_SYL_2           0x1000
+#define S_INITIAL_2         0x2000
+#define S_NO_AUTO_DIM       0x10000
+#define S_HYPEN_UNSTRESS    0x100000
+#define S_NO_EOC_LENGTHEN   0x200000
+// bit0=don't stress monosyllables, except at end of clause
 // bit1=don't set diminished stress,
 // bit2=mark unstressed final syllables as diminished
-
 // bit3=set consecutive unstressed syllables in unstressed words to diminished, but not in stressed words
-
-#define S_FINAL_NO_2        0x10
 // bit4=don't allow secondary stress on last syllable
-
-#define S_NO_AUTO_2         0x20
 // bit5-don't use automatic secondary stress
-
-#define S_2_TO_HEAVY        0x40
 // bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish
-
-#define S_FIRST_PRIMARY     0x80
 // bit7=if more than one primary stress, make the subsequent primaries to secondary stress
-
-#define S_FINAL_STRESS_C    0x100
 // bit8=stress last syllable if it doesn't end in a vowel
-
-#define S_FINAL_SPANISH     0x200
 // bit9=stress last syllable if it doesn't end in vowel or "s" or "n"  LANG=Spanish
-
-#define S_2_SYL_2           0x1000
 // bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress
-
-#define S_INITIAL_2         0x2000
 // bit13= If there is only one syllable before the primary stress, give it a secondary stress
-
-#define S_MID_DIM           0x10000
-// bit 16= Set (not first or last) syllables to diminished stress
-
-#define S_PRIORITY_STRESS   0x20000
+// bit15= Give stress to the first unstressed syllable
+// bit16= Don't diminish consecutive syllables within a word.
 // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary"
-
-#define S_EO_CLAUSE1        0x40000
 // bit18= don't lengthen short vowels more than long vowels at end-of-clause
-
-#define S_FINAL_LONG         0x80000
 // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel
-
-
-#define S_HYPEN_UNSTRESS    0x100000
 // bit20= hyphenated words, 2nd part is unstressed
-
-#define S_NO_EOC_LENGTHEN   0x200000
 // bit21= don't lengthen vowels at end-of-clause
 
-// bit15= Give stress to the first unstressed syllable
-
-
 	int stress_flags;
 	int unstressed_wd1; // stress for $u word of 1 syllable
 	int unstressed_wd2; // stress for $u word of >1 syllable
@@ -465,7 +402,6 @@ typedef struct {
 #define NUM_DFRACTION_4  0x8000
 #define NUM_DFRACTION_5  0xa000
 #define NUM_DFRACTION_6  0xc000
-#define NUM_DFRACTION_7  0xe000    // lang=si, alternative form of number for decimal fraction digits (except the last)
 #define NUM_ORDINAL_DOT   0x10000
 #define NUM_NOPAUSE       0x20000
 #define NUM_AND_HUNDRED   0x40000
@@ -478,7 +414,6 @@ typedef struct {
 #define NUM_ROMAN_CAPITALS 0x2000000
 #define NUM_ROMAN_AFTER    0x4000000
 #define NUM_ROMAN_ORDINAL  0x8000000
-#define NUM_SINGLE_STRESS_L  0x10000000
 
 	// bits0-1=which numbers routine to use.
 	// bit2=  thousands separator must be space
@@ -507,7 +442,6 @@ typedef struct {
 	// bit25= Roman numbers only if upper case
 	// bit26= say "roman" after the number, not before
 	// bit27= Roman numbers are ordinal numbers
-   // bit28= only one primary stress in tens+units (on the tens)
 	int numbers;
 
 #define NUM2_THOUSANDS_VAR1     0x40
@@ -516,25 +450,19 @@ typedef struct {
 #define NUM2_THOUSANDS_VAR4     0x100
 #define NUM2_THOUSANDS_VAR5     0x140
 
-#define NUM2_ORDINAL_NO_AND     0x800
 #define NUM2_MULTIPLE_ORDINAL   0x1000
 #define NUM2_NO_TEEN_ORDINALS   0x2000
 #define NUM2_MYRIADS            0x4000
 #define NUM2_ENGLISH_NUMERALS   0x8000
 #define NUM2_PERCENT_BEFORE     0x10000
-#define NUM2_OMIT_1_HUNDRED_ONLY 0x20000
-#define NUM2_ORDINAL_AND_THOUSANDS 0x40000
 	// bits 1-4  use variant form of numbers before thousands,millions,etc.
 	// bits 6-8  use different forms of thousand, million, etc (M MA MB)
 	// bit9=(LANG=rw) say "thousand" and "million" before its number, not after
-	// bit11=(LANG=es,an) don't say 'and' between tens and units for ordinal numbers
 	// bit12=(LANG=el,es) use ordinal form of hundreds and tens as well as units
 	// bit13=(LANG=pt) don't use 11-19 numbers to make ordinals
 	// bit14=(LANG=ko)  use myriads (groups of 4 digits) not thousands (groups of 3)
 	// bit15=(LANG=ne)  speak (non-replaced) English numerals in English
 	// bit16=(LANG=si)  say "%" before the number
-	// bit17=(LANG=ml)  omit "one" before hundred only if there are no previous digits
-	// bit18=(LANG=ta)  same variant for ordinals and thousands (#o = #a)
 	int numbers2;
 
 #define BREAK_THOUSANDS   0x49249248
@@ -545,7 +473,6 @@ typedef struct {
 	int decimal_sep;
 	int max_digits;    // max number of digits which can be spoken as an integer number (rather than individual digits)
 	const char *ordinal_indicator;   // UTF-8 string
-	const char *roman_suffix;    // add this (ordinal) suffix to Roman numbers (LANG=an)
 
 	// bit 0, accent name before the letter name, bit 1 "capital" after letter name
 	int accents;
@@ -560,21 +487,13 @@ typedef struct {
 	char tone_numbers;
 	char ideographs;      // treat as separate words
 	char textmode;          // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled)
-	char dotless_i;         // uses letter U+0131
 	int testing;            // testing options: bit 1= specify stressed syllable in the form:  "outdoor/2"
 	int listx;    // compile *_listx after *list
 	const unsigned int *replace_chars;      // characters to be substitutes
-	char ascii_language[8];  // switch to this language for Latin characters
-	int our_alphabet;           // offset for main alphabet (if not set in letter_bits_offset)
-	int alt_alphabet;       // offset for another language to recognize
-	int alt_alphabet_lang;  // language for the alt_alphabet
+	const char *ascii_language;  // switch to this language for Latin characters
 	int max_lengthmod;
 	int lengthen_tonic;   // lengthen the tonic syllable
 	int suffix_add_e;      // replace a suffix (which has the SUFX_E flag) with this character
-
-#define DICTDIALECT_EN_US  1  // bit number
-#define DICTDIALECT_ES_LA  2
-	int dict_dialect;         // bitmap, use a dialect for foreign words
 } LANGUAGE_OPTIONS;
 
 
@@ -597,9 +516,9 @@ typedef struct
 	int translator_name;
 	int transpose_max;
 	int transpose_min;
-	const char *transpose_map;
 	char dictionary_name[40];
 
+	char phon_out[400];
 	char phonemes_repeat[20];
 	int  phonemes_repeat_count;
 	int  phoneme_tab_ix;
@@ -608,7 +527,6 @@ typedef struct
 	unsigned char stress_amps_r[8];
 	short stress_lengths[8];
 	int dict_condition;    // conditional apply some pronunciation rules and dict.lookups
-	int dict_min_size;
 	const unsigned short *charset_a0;   // unicodes for characters 0xa0 to oxff
 	const wchar_t *char_plus_apostrophe;  // single chars + apostrophe treated as words
 	const wchar_t *punct_within_word;   // allow these punctuation characters within words
@@ -642,6 +560,7 @@ typedef struct
 	unsigned char groups2_start[256];    // index into groups2
 	const short *frequent_pairs;   // list of frequent pairs of letters, for use in compressed *_list
 
+
 	int expect_verb;
 	int expect_past;    // expect past tense
 	int expect_verb_s;
@@ -657,7 +576,7 @@ typedef struct
 
 	int prepause_timeout;
 	int end_stressed_vowel;  // word ends with stressed vowel
-	int prev_dict_flags[2];     // dictionary flags from previous word
+	int prev_dict_flags;     // dictionary flags from previous word
 	int clause_terminator;
 } Translator;
 
@@ -732,27 +651,16 @@ void InitNamedata(void);
 void InitText(int flags);
 void InitText2(void);
 int IsDigit(unsigned int c);
-int IsDigit09(unsigned int c);
 int IsAlpha(unsigned int c);
-int IsVowel(Translator *tr, int c);
-int IsSuperscript(int letter);
-int iswalpha2(int c);
 int isspace2(unsigned int c);
-int iswlower2(int c);
-int iswupper2(int c);
 int towlower2(unsigned int c);
-int towupper2(unsigned int c);
-const char *GetTranslatedPhonemeString(int phoneme_mode);
-const char *WordToString2(unsigned int word);
-ALPHABET *AlphabetFromChar(int c);
-ALPHABET *AlphabetFromName(const char *name);
+void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa);
 
 Translator *SelectTranslator(const char *name);
 int SetTranslator2(const char *name);
 void DeleteTranslator(Translator *tr);
-void ProcessLanguageOptions(LANGUAGE_OPTIONS *langopts);
 int Lookup(Translator *tr, const char *word, char *ph_out);
-int LookupFlags(Translator *tr, const char *word, unsigned int **flags_out);
+int LookupFlags(Translator *tr, const char *word);
 
 int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab, int control);
 int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab);
@@ -765,10 +673,10 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf);
 
 int LoadDictionary(Translator *tr, const char *name, int no_error);
 int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *flags, int end_flags, WORD_TAB *wtab);
-int HashDictionary(const char *string);
 
 void MakePhonemeList(Translator *tr, int post_pause, int new_sentence);
 int ChangePhonemes_ru(Translator *tr, PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch);
+void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags);
 void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags);
 void AppendPhonemes(Translator *tr, char *string, int size, const char *ph);
 
@@ -779,14 +687,14 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy);
 int Unpronouncable(Translator *tr, char *word, int posn);
 void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress);
 int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags);
-int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab, char *word_out);
+int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab);
 void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change);
 int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change);
 
 void SetVoiceStack(espeak_VOICE *v, const char *variant_name);
 void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata, WORD_PH_DATA *worddata);
 void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata);
-char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags);
+char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa);
 
 extern FILE *f_trans;		// for logging
 extern FILE *f_logespeak;
diff --git a/external/espeak/voice.h b/external/espeak/voice.h
old mode 100755
new mode 100644
index 8b2ddc8..1007f5b
--- a/external/espeak/voice.h
+++ b/external/espeak/voice.h
@@ -21,12 +21,11 @@
 
 typedef struct {
 	char v_name[40];
-	char language_name[20];
 
 	int phoneme_tab_ix;  // phoneme table number
 	int pitch_base;    // Hz<<12
 	int pitch_range;   // standard = 0x1000
-
+	
 	int speedf1;
 	int speedf2;
 	int speedf3;
@@ -85,6 +84,3 @@ void WavegenSetVoice(voice_t *v);
 void ReadTonePoints(char *string, int *tone_pts);
 void VoiceReset(int control);
 
-void FreeVoiceList(void);
-int GetAmplitude(void);
-void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range);
diff --git a/external/espeak/voices.cpp b/external/espeak/voices.cpp
old mode 100755
new mode 100644
index 4f77d34..d5b34c5
--- a/external/espeak/voices.cpp
+++ b/external/espeak/voices.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2014 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2010 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -47,8 +47,7 @@ MNEM_TAB genders [] = {
 	{"unknown", 0},
 	{"male", 1},
 	{"female", 2},
-	{NULL, 0 }
-};
+	{NULL, 0 }};
 
 int tone_points[12] = {600,170, 1200,135, 2000,110, 3000,110, -1,0};
 //int tone_points[12] = {250,200,  400,170, 600,170, 1200,135, 2000,110, -1,0};
@@ -62,7 +61,7 @@ int formant_rate[9];         // values adjusted for actual sample rate
 
 
 #define DEFAULT_LANGUAGE_PRIORITY  5
-#define N_VOICES_LIST  250
+#define N_VOICES_LIST  150
 static int n_voices_list = 0;
 static espeak_VOICE *voices_list[N_VOICES_LIST];
 static int len_path_voices;
@@ -99,7 +98,6 @@ enum {
 	V_STRESSADD,
 	V_DICTRULES,
 	V_STRESSRULE,
-	V_STRESSOPT,
 	V_CHARSET,
 	V_NUMBERS,
 	V_OPTION,
@@ -108,9 +106,6 @@ enum {
 	V_KLATT,
 	V_FAST,
 	V_SPEED,
-	V_DICTMIN,
-	V_ALPHABET2,
-	V_DICTDIALECT,
 
 // these need a phoneme table to have been specified
 	V_REPLACE,
@@ -122,8 +117,7 @@ enum {
 static MNEM_TAB options_tab[] = {
 	{"reduce_t",  LOPT_REDUCE_T},
 	{"bracket", LOPT_BRACKET_PAUSE},
-	{NULL,   -1}
-};
+	{NULL,   -1} };
 
 static MNEM_TAB keyword_tab[] = {
 	{"name",       V_NAME},
@@ -133,7 +127,7 @@ static MNEM_TAB keyword_tab[] = {
 	{"formant",    V_FORMANT},
 	{"pitch",      V_PITCH},
 	{"phonemes",   V_PHONEMES},
-	{"translator", V_TRANSLATOR},
+   {"translator", V_TRANSLATOR},
 	{"dictionary", V_DICTIONARY},
 	{"stressLength", V_STRESSLENGTH},
 	{"stressAmp",  V_STRESSAMP},
@@ -142,7 +136,6 @@ static MNEM_TAB keyword_tab[] = {
 	{"tunes",      V_TUNES},
 	{"dictrules",	V_DICTRULES},
 	{"stressrule", V_STRESSRULE},
-	{"stressopt",  V_STRESSOPT},
 	{"charset",    V_CHARSET},
 	{"replace",    V_REPLACE},
 	{"words",      V_WORDGAP},
@@ -161,9 +154,6 @@ static MNEM_TAB keyword_tab[] = {
 	{"klatt",      V_KLATT},
 	{"fast_test2",  V_FAST},
 	{"speed",      V_SPEED},
-	{"dict_min",   V_DICTMIN},
-	{"alphabet2",  V_ALPHABET2},
-	{"dictdialect",   V_DICTDIALECT},
 
 	// these just set a value in langopts.param[]
 	{"l_dieresis", 0x100+LOPT_DIERESES},
@@ -173,20 +163,11 @@ static MNEM_TAB keyword_tab[] = {
 	{"l_unpronouncable", 0x100+LOPT_UNPRONOUNCABLE},
 	{"l_sonorant_min", 0x100+LOPT_SONORANT_MIN},
 	{"l_length_mods", 0x100+LOPT_LENGTH_MODS},
-	{"apostrophe", 0x100+LOPT_APOSTROPHE},
-	{NULL,   0}
-};
-
-static MNEM_TAB dict_dialects[] = {
-	{"en-us",   DICTDIALECT_EN_US},
-	{"es-la",   DICTDIALECT_ES_LA},
-	{NULL,   0}
-};
-
+	{NULL,   0} };
 
 #define N_VOICE_VARIANTS   12
 const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0};
-const char variants_male[N_VOICE_VARIANTS] = {1,2,3,4,5,6,0};
+const char variants_male[N_VOICE_VARIANTS] = {1,2,3,4,5,0};
 const char variants_female[N_VOICE_VARIANTS] = {11,12,13,14,0};
 const char *variant_lists[3] = {variants_either, variants_male, variants_female};
 
@@ -203,12 +184,6 @@ static char *fgets_strip(char *buf, int size, FILE *f_in)
 	if(fgets(buf,size,f_in) == NULL)
 		return(NULL);
 
-	if(buf[0] == '#')
-	{
-		buf[0] = 0;
-		return(buf);
-	}
-
 	len = strlen(buf);
 	while((--len > 0) && isspace(buf[len]))
 		buf[len] = 0;
@@ -257,11 +232,11 @@ static void SetToneAdjust(voice_t *voice, int *tone_pts)
 		height2 = tone_pts[pt+1];
 		if((freq2 - freq1) > 0)
 		{
-			rate = (double)(height2-height1)/(freq2-freq1);
+			rate = double(height2-height1)/(freq2-freq1);
 
 			for(ix=freq1; ix<freq2; ix++)
 			{
-				y = height1 + (int)(rate * (ix-freq1));
+				y = height1 + int(rate * (ix-freq1));
 				if(y > 255)
 					y = 255;
 				voice->tone_adjust[ix] = y;
@@ -282,9 +257,9 @@ void ReadTonePoints(char *string, int *tone_pts)
 		tone_pts[ix] = -1;
 
 	sscanf(string,"%d %d %d %d %d %d %d %d %d %d",
-		   &tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3],
-		   &tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7],
-		   &tone_pts[8],&tone_pts[9]);
+		&tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3],
+		&tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7],
+		&tone_pts[8],&tone_pts[9]);
 }
 
 
@@ -309,7 +284,7 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, const char*lea
 	espeak_VOICE *voice_data;
 	int priority;
 	int age;
-	int n_variants = 4;    // default, number of variants of this voice before using another voice
+	int n_variants = 3;    // default, number of variants of this voice before using another voice
 	int gender;
 
 #ifdef PLATFORM_WINDOWS
@@ -338,7 +313,8 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, const char*lea
 			while(isspace(*p)) p++;
 			strncpy0(vname,p,sizeof(vname));
 		}
-		else if(memcmp(linebuf,"language",8)==0)
+		else
+		if(memcmp(linebuf,"language",8)==0)
 		{
 			priority = DEFAULT_LANGUAGE_PRIORITY;
 			vlanguage[0] = 0;
@@ -355,11 +331,13 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, const char*lea
 				n_languages++;
 			}
 		}
-		else if(memcmp(linebuf,"gender",6)==0)
+		else
+		if(memcmp(linebuf,"gender",6)==0)
 		{
 			sscanf(&linebuf[6],"%s %d",vgender,&age);
 		}
-		else if(memcmp(linebuf,"variants",8)==0)
+		else
+		if(memcmp(linebuf,"variants",8)==0)
 		{
 			sscanf(&linebuf[8],"%d",&n_variants);
 		}
@@ -406,10 +384,8 @@ void VoiceReset(int tone_only)
 // Set voice to the default values
 
 	int  pk;
-	static unsigned char default_heights[N_PEAKS] = {130,128,120,116,100,100,128,128,128};  // changed for v.1.47
-	static unsigned char default_widths[N_PEAKS] = {140,128,128,160,171,171,128,128,128};
-//	static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128};  // previous version
-//	static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128};
+	static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128};
+	static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128};
 
 	static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600};
 
@@ -430,9 +406,9 @@ void VoiceReset(int tone_only)
 	voice->n_harmonic_peaks = 5;
 	voice->peak_shape = 0;
 	voice->voicing = 64;
-	voice->consonant_amp = 90;  // change from 100 to 90 for v.1.47
+	voice->consonant_amp = 100;
 	voice->consonant_ampv = 100;
-	voice->samplerate = samplerate_native;
+	voice->samplerate = 22050;
 	memset(voice->klattv,0,sizeof(voice->klattv));
 
 	speed.fast_settings[0] = 450;
@@ -458,12 +434,13 @@ void VoiceReset(int tone_only)
 		// adjust formant smoothing depending on sample rate
 		formant_rate[pk] = (formant_rate_22050[pk] * 22050)/samplerate;
 	}
+	voice->height[2] = 240;  // reduce F2 slightly
 
 	// This table provides the opportunity for tone control.
 	// Adjustment of harmonic amplitudes, steps of 8Hz
 	// value of 128 means no change
 //	memset(voice->tone_adjust,128,sizeof(voice->tone_adjust));
-	SetToneAdjust(voice,tone_points);
+SetToneAdjust(voice,tone_points);
 
 	// default values of speed factors
 	voice->speedf1 = 256;
@@ -497,11 +474,11 @@ static void VoiceFormant(char *p)
 		return;
 
 	if(freq >= 0)
-		voice->freq[formant] = (int)(freq * 2.56001);
+		voice->freq[formant] = int(freq * 2.56001);
 	if(height >= 0)
-		voice->height[formant] = (int)(height * 2.56001);
+		voice->height[formant] = int(height * 2.56001);
 	if(width >= 0)
-		voice->width[formant] = (int)(width * 2.56001);
+		voice->width[formant] = int(width * 2.56001);
 	voice->freqadd[formant] = freqadd;
 }
 
@@ -537,22 +514,7 @@ static int Read8Numbers(char *data_in,int *data)
 // Read 8 integer numbers
 	memset(data, 0, 8+sizeof(int));
 	return(sscanf(data_in,"%d %d %d %d %d %d %d %d",
-				  &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7]));
-}
-
-
-static unsigned int StringToWord2(const char *string)
-{//======================================================
-// Convert a language name string to a word such as L('e','n')
-	int ix;
-	int c;
-	unsigned int value = 0;
-
-	for(ix=0; (ix<4) && ((c = string[ix]) != 0); ix++)
-	{
-		value = (value << 8) | (c & 0xff);
-	}
-	return(value);
+		&data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7]));
 }
 
 
@@ -589,17 +551,14 @@ voice_t *LoadVoice(const char *vname, int control)
 	char phonemes_name[40];
 	char option_name[40];
 	const char *language_type;
-	char buf[sizeof(path_home)+30];
+	char buf[200];
 	char path_voices[sizeof(path_home)+12];
+	char langname[4];
 
-	int dict_min = 0;
 	int stress_amps[8];
 	int stress_lengths[8];
 	int stress_add[8];
 	char names[8][40];
-	char name1[40];
-	char name2[80];
-	const char *voice_dir;
 
 	int pitch1;
 	int pitch2;
@@ -608,12 +567,9 @@ voice_t *LoadVoice(const char *vname, int control)
 	static char voice_name[40];        // voice name for current_voice_selected
 	static char voice_languages[100];  // list of languages and priorities for current_voice_selected
 
-	// which directory to look for a named voice. List of voice names, must end in a space.
-	static const char *voices_asia =
-		"az bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue ";
-	static const char *voices_europe =
-		"an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv ";
-	strncpy0 (voicename, vname, sizeof(voicename));
+	strcpy(voicename,vname);
+	if(voicename[0]==0)
+		strcpy(voicename,"default");
 
 #ifdef DATA_FROM_SOURCECODE_FILES
 	long numberOfBytes;
@@ -639,34 +595,25 @@ voice_t *LoadVoice(const char *vname, int control)
 	}
 	else
 	{
-		if(voicename[0]==0)
-			strcpy(voicename,"default");
-
 		sprintf(path_voices,"%s%cvoices%c",path_home,PATHSEP,PATHSEP);
-		sprintf(buf,"%s%s",path_voices,voicename);  // first, look in the main voices directory
+		sprintf(buf,"%s%s",path_voices,voicename);
 
 		if(GetFileLength(buf) <= 0)
 		{
-			// then look in the appropriate subdirectory
-			if((voicename[0]=='m') && (voicename[1]=='b'))
-			{
-				voice_dir = "mb";   // mbrola voices
-			}
-			else
-			{
-				sprintf(name2, "%s ", voicename);
-				if(strstr(voices_europe, voicename) != NULL)
-					voice_dir = "europe";
-				else if(strstr(voices_asia, voicename) != NULL)
-					voice_dir = "asia";
-				else
-					voice_dir = "other";
+			// look for the voice in a sub-directory of the language name
+			langname[0] = voicename[0];
+			langname[1] = voicename[1];
+			langname[2] = 0;
+			sprintf(buf,"%s%s%c%s",path_voices,langname,PATHSEP,voicename);
 
-				sprintf(buf,"%s%s%c%s", path_voices,voice_dir,PATHSEP,voicename);
+			if(GetFileLength(buf) <= 0)
+			{
+				// look in "extra" sub-directory
+				sprintf(buf,"%sextra%c%s",path_voices,PATHSEP,voicename);
 
 				if(GetFileLength(buf) <= 0)
 				{
-					// if not found, look in "test" sub-directory
+					// look in "test" sub-directory
 					sprintf(buf,"%stest%c%s",path_voices,PATHSEP,voicename);
 				}
 			}
@@ -713,7 +660,7 @@ voice_t *LoadVoice(const char *vname, int control)
 		// append the variant file name to the voice identifier
 		if((p = strchr(voice_identifier,'+')) != NULL)
 			*p = 0;    // remove previous variant name
-		sprintf(buf,"+%s",&vname[3]);    // TODO was vname[0], omit  !v/  from the variant filename
+		sprintf(buf,"+%s",&vname[0]);    // djmw was vname[3] omit  !v/  from the variant filename
 		strcat(voice_identifier,buf);
 		langopts = &translator->langopts;
 	}
@@ -725,7 +672,7 @@ voice_t *LoadVoice(const char *vname, int control)
 #ifdef DATA_FROM_SOURCECODE_FILES
 	long index = 0;
 	const char *start = data;
-	while (!! (start = espeakdata_get_voicedata (start, numberOfBytes, buf, sizeof(buf), &index))) {
+	while (start = espeakdata_get_voicedata (start, numberOfBytes, buf, sizeof(buf), &index)) {
 #else
 	while((f_voice != NULL) && (fgets_strip(buf,sizeof(buf),f_voice) != NULL)) {
 #endif
@@ -740,49 +687,48 @@ voice_t *LoadVoice(const char *vname, int control)
 		switch(key)
 		{
 		case V_LANGUAGE:
-		{
-			unsigned int len;
-			int priority;
-
-			if(tone_only)
-				break;
-
-			priority = DEFAULT_LANGUAGE_PRIORITY;
-			language_name[0] = 0;
+			{
+				unsigned int len;
+				int priority;
 
-			sscanf(p,"%s %d",language_name,&priority);
-			if(strcmp(language_name,"variant") == 0)
-				break;
+				if(tone_only)
+					break;
 
-			len = strlen(language_name) + 2;
-			// check for space in languages[]
-			if(len < (sizeof(voice_languages)-langix-1))
-			{
-				voice_languages[langix] = priority;
+				priority = DEFAULT_LANGUAGE_PRIORITY;
+				language_name[0] = 0;
 
-				strcpy(&voice_languages[langix+1],language_name);
-				langix += len;
-			}
+				sscanf(p,"%s %d",language_name,&priority);
+				if(strcmp(language_name,"variant") == 0)
+					break;
 
-			// only act on the first language line
-			if(language_set == 0)
-			{
-				language_type = strtok(language_name,"-");
-				language_set = 1;
-				strcpy(translator_name,language_type);
-				strcpy(new_dictionary,language_type);
-				strcpy(phonemes_name,language_type);
-				SelectPhonemeTableName(phonemes_name);
+				len = strlen(language_name) + 2;
+				// check for space in languages[]
+				if(len < (sizeof(voice_languages)-langix-1))
+				{
+					voice_languages[langix] = priority;
 
-				if(new_translator != NULL)
-					DeleteTranslator(new_translator);
+					strcpy(&voice_languages[langix+1],language_name);
+					langix += len;
+				}
 
-				new_translator = SelectTranslator(translator_name);
-				langopts = &new_translator->langopts;
-				strncpy0(voice->language_name, language_name, sizeof(voice->language_name));
+				// only act on the first language line
+				if(language_set == 0)
+				{
+					language_type = strtok(language_name,"-");
+					language_set = 1;
+					strcpy(translator_name,language_type);
+					strcpy(new_dictionary,language_type);
+					strcpy(phonemes_name,language_type);
+					SelectPhonemeTableName(phonemes_name);
+
+					if(new_translator != NULL)
+							DeleteTranslator(new_translator);
+
+					new_translator = SelectTranslator(translator_name);
+					langopts = &new_translator->langopts;
+				}
 			}
-		}
-		break;
+			break;
 
 		case V_NAME:
 			if(tone_only == 0)
@@ -793,14 +739,14 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_GENDER:
-		{
-			int age = 0;
-			char vgender[80];
-			sscanf(p,"%s %d",vgender,&age);
-			current_voice_selected.gender = LookupMnem(genders,vgender);
-			current_voice_selected.age = age;
-		}
-		break;
+			{
+				int age = 0;
+				char vgender[80];
+				sscanf(p,"%s %d",vgender,&age);
+				current_voice_selected.gender = LookupMnem(genders,vgender);
+				current_voice_selected.age = age;
+			}
+			break;
 
 		case V_TRANSLATOR:
 			if(tone_only) break;
@@ -808,7 +754,7 @@ voice_t *LoadVoice(const char *vname, int control)
 			sscanf(p,"%s",translator_name);
 
 			if(new_translator != NULL)
-				DeleteTranslator(new_translator);
+					DeleteTranslator(new_translator);
 
 			new_translator = SelectTranslator(translator_name);
 			langopts = &new_translator->langopts;
@@ -827,16 +773,16 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_PITCH:
-		{
-			double factor;
-			// default is  pitch 82 118
-			n = sscanf(p,"%d %d",&pitch1,&pitch2);
-			voice->pitch_base = (pitch1 - 9) << 12;
-			voice->pitch_range = (pitch2 - pitch1) * 108;
-			factor = (double)(pitch1 - 82)/82;
-			voice->formant_factor = (int)((1+factor/4) * 256);  // nominal formant shift for a different voice pitch
-		}
-		break;
+			{
+				double factor;
+				// default is  pitch 82 118
+				n = sscanf(p,"%d %d",&pitch1,&pitch2);
+				voice->pitch_base = (pitch1 - 9) << 12;
+				voice->pitch_range = (pitch2 - pitch1) * 108;
+				factor = double(pitch1 - 82)/82;
+				voice->formant_factor = (int)((1+factor/4) * 256);  // nominal formant shift for a different voice pitch
+			}
+			break;
 
 		case V_STRESSLENGTH:   // stressLength
 			stress_lengths_set = Read8Numbers(p,stress_lengths);
@@ -872,36 +818,17 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_DICTRULES:   // conditional dictionary rules and list entries
-		case V_NUMBERS:
-		case V_STRESSOPT:
-			// expect a list of numbers
 			while(*p != 0)
 			{
 				while(isspace(*p)) p++;
 				n = -1;
-				if((n = atoi(p)) > 0)
+				if(((n = atoi(p)) > 0) && (n < 32))
 				{
 					p++;
-					if(n < 32)
-					{
-						if(key==V_DICTRULES)
-							conditional_rules |= (1 << n);
-						else if(key==V_NUMBERS)
-							langopts->numbers |= (1 << n);
-						else if(key==V_STRESSOPT)
-							langopts->stress_flags |= (1 << n);
-					}
-					else
-					{
-						if((key==V_NUMBERS) && (n < 64))
-							langopts->numbers |= (1 << (n-32));
-						else
-							fprintf(stderr,"Bad option number %d\n", n);
-					}
+					conditional_rules |= (1 << n);
 				}
 				while(isalnum(*p)) p++;
 			}
-			ProcessLanguageOptions(langopts);
 			break;
 
 		case V_REPLACE:
@@ -920,9 +847,9 @@ voice_t *LoadVoice(const char *vname, int control)
 
 		case V_STRESSRULE:
 			sscanf(p,"%d %d %d %d",&langopts->stress_rule,
-				   &langopts->stress_flags,
-				   &langopts->unstressed_wd1,
-				   &langopts->unstressed_wd2);
+				&langopts->stress_flags,
+				&langopts->unstressed_wd1,
+				&langopts->unstressed_wd2);
 			break;
 
 		case V_CHARSET:
@@ -930,10 +857,13 @@ voice_t *LoadVoice(const char *vname, int control)
 				new_translator->charset_a0 = charsets[value];
 			break;
 
+		case V_NUMBERS:
+			sscanf(p,"%d %d",&langopts->numbers,&langopts->numbers2);
+			break;
+
 		case V_OPTION:
 			value2 = 0;
-			if(((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) ||
-				((sscanf(p,"%d %d %d",&ix,&value,&value2) >= 2) && (ix < N_LOPTS)))
+			if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0))
 			{
 				langopts->param[ix] = value;
 				langopts->param2[ix] = value2;
@@ -974,12 +904,12 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_TONE:
-		{
-			int tone_data[12];
-			ReadTonePoints(p,tone_data);
-			SetToneAdjust(voice,tone_data);
-		}
-		break;
+			{
+				int tone_data[12];
+				ReadTonePoints(p,tone_data);
+				SetToneAdjust(voice,tone_data);
+			}
+			break;
 
 		case V_VOICING:
 			if(sscanf(p,"%d",&value)==1)
@@ -987,16 +917,16 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_BREATH:
-			voice->breath[0] = Read8Numbers(p,&voice->breath[1]);
-			for(ix=1; ix<8; ix++)
-			{
-				if(ix % 2)
-					voice->breath[ix] = -voice->breath[ix];
-			}
+				voice->breath[0] = Read8Numbers(p,&voice->breath[1]);
+				for(ix=1; ix<8; ix++)
+				{
+					if(ix % 2)
+						voice->breath[ix] = -voice->breath[ix];
+				}
 			break;
 
 		case V_BREATHW:
-			voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]);
+				voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]);
 			break;
 
 		case V_CONSONANTS:
@@ -1008,18 +938,20 @@ voice_t *LoadVoice(const char *vname, int control)
 			break;
 
 		case V_MBROLA:
-		{
-			int srate = 16000;
-
-			name2[0] = 0;
-			sscanf(p,"%s %s %d",name1,name2,&srate);
-			if(LoadMbrolaTable(name1,name2,srate) != EE_OK)
 			{
-				fprintf(stderr,"mbrola voice not found\n");
+				int srate = 16000;
+				char name[40];
+				char phtrans[40];
+
+				phtrans[0] = 0;
+				sscanf(p,"%s %s %d",name,phtrans,&srate);
+				if(LoadMbrolaTable(name,phtrans,srate) != EE_OK)
+				{
+					fprintf(stderr,"mbrola voice not found\n");
+				}
+				voice->samplerate = srate;
 			}
-			voice->samplerate = srate;
-		}
-		break;
+			break;
 
 		case V_KLATT:
 			voice->klattv[0] = 1;  // default source: IMPULSIVE
@@ -1032,47 +964,6 @@ voice_t *LoadVoice(const char *vname, int control)
 			SetSpeed(3);
 			break;
 
-		case V_DICTMIN:
-			sscanf(p,"%d",&dict_min);
-			break;
-
-		case V_ALPHABET2:
-			{
-				ALPHABET *alphabet;
-				name1[0] = name2[0] = 0;
-				sscanf(p, "%s %s", name1, name2);
-
-				if(strcmp(name1, "latin") == 0)
-				{
-					strncpy0(langopts->ascii_language,name2,sizeof(langopts->ascii_language));
-				}
-				else if((alphabet = AlphabetFromName(name1)) != 0)
-				{
-					langopts->alt_alphabet = alphabet->offset;
-					langopts->alt_alphabet_lang = StringToWord2(name2);
-				}
-				else
-				{
-					fprintf(stderr,"alphabet name '%s' not found\n", name1);
-				}
-			}
-			break;
-
-		case V_DICTDIALECT:
-			// specify a dialect to use for foreign words, eg, en-us for _^_EN
-			if(sscanf(p, "%s", name1) == 1)
-			{
-				if((ix = LookupMnem(dict_dialects, name1)) > 0)
-				{
-					langopts->dict_dialect |= (1 << ix);
-				}
-				else
-				{
-					fprintf(stderr, "dictdialect name '%s' not recognized\n", name1);
-				}
-			}
-			break;
-
 		default:
 			if((key & 0xff00) == 0x100)
 			{
@@ -1115,7 +1006,6 @@ voice_t *LoadVoice(const char *vname, int control)
 		}
 		voice->phoneme_tab_ix = ix;
 		new_translator->phoneme_tab_ix = ix;
-		new_translator->dict_min_size = dict_min;
 		LoadDictionary(new_translator, new_dictionary, control & 4);
 		if(dictionary_name[0]==0)
 			return(NULL);   // no dictionary loaded
@@ -1140,7 +1030,6 @@ voice_t *LoadVoice(const char *vname, int control)
 		translator = new_translator;
 	}
 
-
 	// relative lengths of different stress syllables
 	for(ix=0; ix<stress_lengths_set; ix++)
 	{
@@ -1181,7 +1070,7 @@ static char *ExtractVoiceVariantName(char *vname, int variant_num, int add_dir)
 			// The voice name has a +variant suffix
 			variant_num = 0;
 			*p++ = 0;   // delete the suffix from the voice name
-			if(IsDigit09(*p))
+			if(isdigit(*p))
 			{
 				variant_num = atoi(p);  // variant number
 			}
@@ -1274,10 +1163,10 @@ static int ScoreVoice(espeak_VOICE *voice_spec, const char *spec_language, int s
 
 	p = voice->languages;  // list of languages+dialects for which this voice is suitable
 
-	if(spec_n_parts < 0)
+	if(strcmp(spec_language,"mbrola")==0)
 	{
-		// match on the subdirectory
-		if(memcmp(voice->identifier, spec_language, spec_lang_len) == 0)
+		// only list mbrola voices
+		if(memcmp(voice->identifier,"mb/",3) == 0)
 			return(100);
 		return(0);
 	}
@@ -1355,14 +1244,15 @@ static int ScoreVoice(espeak_VOICE *voice_spec, const char *spec_language, int s
 			// match on voice name
 			score += 500;
 		}
-		else if(strcmp(voice_spec->name,voice->identifier)==0)
+		else
+		if(strcmp(voice_spec->name,voice->identifier)==0)
 		{
 			score += 400;
 		}
 	}
 
 	if(((voice_spec->gender == 1) || (voice_spec->gender == 2)) &&
-			((voice->gender == 1) || (voice->gender == 2)))
+		((voice->gender == 1) || (voice->gender == 2)))
 	{
 		if(voice_spec->gender == voice->gender)
 			score += 50;
@@ -1410,7 +1300,6 @@ static int SetVoiceScores(espeak_VOICE *voice_select, espeak_VOICE **voices, int
 	int lang_len=0;
 	espeak_VOICE *vp;
 	char language[80];
-	char buf[sizeof(path_home)+80];
 
 	// count number of parts in the specified language
 	if((voice_select->languages != NULL) && (voice_select->languages[0] != 0))
@@ -1423,26 +1312,6 @@ static int SetVoiceScores(espeak_VOICE *voice_select, espeak_VOICE **voices, int
 				n_parts++;
 		}
 	}
-
-	if((n_parts == 1) && (control & 1))
-	{
-		if(strcmp(language, "mbrola") == 0)
-		{
-			language[2] = 0;  // truncate to "mb"
-			lang_len = 2;
-		}
-
-		sprintf(buf, "%s/voices/%s", path_home, language);
-		if(GetFileLength(buf) == -2)
-		{
-			// A subdirectory name has been specified.  List all the voices in that subdirectory
-			language[lang_len++] = PATHSEP;
-			language[lang_len] = 0;
-			n_parts = -1;
-		}
-
-	}
-
 	// select those voices which match the specified language
 	nv = 0;
 	for(ix=0; ix<n_voices_list; ix++)
@@ -1515,7 +1384,8 @@ espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name2)
 			{
 				match_fname = ix;  // matching identifier, use this if no matching name
 			}
-			else if(strcmp(last_part,&id[strlen(id)-last_part_len])==0)
+			else
+			if(strcmp(last_part,&id[strlen(id)-last_part_len])==0)
 			{
 				match_fname2 = ix;
 			}
@@ -1612,7 +1482,8 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found)
 	gender = 0;
 	if((voice_select2.gender == 2) || ((voice_select2.age > 0) && (voice_select2.age < 13)))
 		gender = 2;
-	else if(voice_select2.gender == 1)
+	else
+	if(voice_select2.gender == 1)
 		gender = 1;
 
 #define AGE_OLD  60
@@ -1630,7 +1501,6 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found)
 		vp = voices[ix];
 		// is the main voice the required gender?
 		skip=0;
-
 		if((gender != 0) && (vp->gender != gender))
 		{
 			skip=1;
@@ -1639,7 +1509,6 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found)
 		{
 			skip=1;
 		}
-
 		if(skip==0)
 		{
 			voices2[ix2++] = vp;
@@ -1745,8 +1614,8 @@ static void GetVoices(const char *path)
 	}
 #else
 #ifdef PLATFORM_WINDOWS
-	WIN32_FIND_DATAA FindFileData;
-	HANDLE hFind = INVALID_HANDLE_VALUE;
+   WIN32_FIND_DATAA FindFileData;
+   HANDLE hFind = INVALID_HANDLE_VALUE;
 
 #undef UNICODE         // we need FindFirstFileA() which takes an 8-bit c-string
 	sprintf(fname,"%s\\*",path);
@@ -1755,33 +1624,29 @@ static void GetVoices(const char *path)
 		return;
 
 	do {
-		if(n_voices_list >= (N_VOICES_LIST-2))
-			break;   // voices list is full
+		sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName);
 
-		if(FindFileData.cFileName[0] != '.')
-		{
-			sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName);
-			ftype = GetFileLength(fname);
+		ftype = GetFileLength(fname);
 
-			if(ftype == -2)
-			{
-				// a sub-sirectory
-				GetVoices(fname);
-			}
-			else if(ftype > 0)
-			{
-				// a regular line, add it to the voices list
-				if((f_voice = fopen(fname,"r")) == NULL)
-					continue;
+		if((ftype == -2) && (FindFileData.cFileName[0] != '.'))
+		{
+			// a sub-sirectory
+			GetVoices(fname);
+		}
+		else
+		if(ftype > 0)
+		{
+			// a regular line, add it to the voices list
+			if((f_voice = fopen(fname,"r")) == NULL)
+				continue;
 
-				// pass voice file name within the voices directory
-				voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName);
-				fclose(f_voice);
+			// pass voice file name within the voices directory
+			voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName);
+			fclose(f_voice);
 
-				if(voice_data != NULL)
-				{
-					voices_list[n_voices_list++] = voice_data;
-				}
+			if(voice_data != NULL)
+			{
+				voices_list[n_voices_list++] = voice_data;
 			}
 		}
 	} while(FindNextFileA(hFind, &FindFileData) != 0);
@@ -1799,19 +1664,17 @@ static void GetVoices(const char *path)
 		if(n_voices_list >= (N_VOICES_LIST-2))
 			break;   // voices list is full
 
-		if(ent->d_name[0] == '.')
-			continue;
-
 		sprintf(fname,"%s%c%s",path,PATHSEP,ent->d_name);
 
 		ftype = GetFileLength(fname);
 
-		if(ftype == -2)
+		if((ftype == -2) && (ent->d_name[0] != '.'))
 		{
 			// a sub-sirectory
 			GetVoices(fname);
 		}
-		else if(ftype > 0)
+		else
+		if(ftype > 0)
 		{
 			// a regular line, add it to the voices list
 			if((f_voice = fopen(fname,"r")) == NULL)
@@ -1837,23 +1700,15 @@ static void GetVoices(const char *path)
 espeak_ERROR SetVoiceByName(const char *name)
 {//=========================================
 	espeak_VOICE *v;
-	int ix;
 	espeak_VOICE voice_selector;
 	char *variant_name;
 	static char buf[60];
 
 	strncpy0(buf,name,sizeof(buf));
-
 	variant_name = ExtractVoiceVariantName(buf, 0, 1);
 
-	for(ix=0; ; ix++)
-	{
-		// convert voice name to lower case  (ascii)
-		if((buf[ix] = tolower(buf[ix])) == 0)
-			break;
-	}
-
 	memset(&voice_selector,0,sizeof(voice_selector));
+//	voice_selector.name = buf;
 	voice_selector.name = (char *)name;  // include variant name in voice stack ??
 
 	// first check for a voice with this filename
@@ -1867,7 +1722,6 @@ espeak_ERROR SetVoiceByName(const char *name)
 		}
 
 		DoVoiceChange(voice);
-		voice_selector.languages = voice->language_name;
 		SetVoiceStack(&voice_selector, variant_name);
 		return(EE_OK);
 	}
@@ -1884,7 +1738,6 @@ espeak_ERROR SetVoiceByName(const char *name)
 				LoadVoice(variant_name,2);
 			}
 			DoVoiceChange(voice);
-			voice_selector.languages = voice->language_name;
 			SetVoiceStack(&voice_selector, variant_name);
 			return(EE_OK);
 		}
@@ -1912,11 +1765,9 @@ espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector)
 }  //  end of SetVoiceByProperties
 
 
-void FreeVoiceList();
 void FreeVoiceList()
 {//=================
-	int ix;
-	for(ix=0; ix<n_voices_list; ix++)
+	for(int ix=0; ix<n_voices_list; ix++)
 	{
 		if(voices_list[ix] != NULL)
 		{
@@ -1936,24 +1787,12 @@ void FreeVoiceList()
 
 ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
 {//========================================================================
-	char path_voices[sizeof(path_home)+12];
-
-
-#ifdef PLATFORM_RISCOS
-	if(n_voices_list == 0)
-	{
-		sprintf(path_voices,"%s%cvoices",path_home,PATHSEP);
-		len_path_voices = strlen(path_voices)+1;
-		GetVoices(path_voices);
-		voices_list[n_voices_list] = NULL;  // voices list terminator
-	}
-	return((const espeak_VOICE **)voices_list);
-
-#else
+#ifndef PLATFORM_RISCOS
 	int ix;
 	int j;
 	espeak_VOICE *v;
-	static espeak_VOICE **voices = NULL;
+	static espeak_VOICE *voices[N_VOICES_LIST];
+	char path_voices[sizeof(path_home)+12];
 
 	// free previous voice list data
 	FreeVoiceList();
@@ -1963,11 +1802,10 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
 
 	GetVoices(path_voices);
 	voices_list[n_voices_list] = NULL;  // voices list terminator
-	voices = (espeak_VOICE **)realloc(voices, sizeof(espeak_VOICE *)*(n_voices_list+1));
 
 	// sort the voices list
 	qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *),
-		  (int (*)(const void *,const void *))VoiceNameSorter);
+		(int (*)(const void *,const void *))VoiceNameSorter);
 
 
 	if(voice_spec)
@@ -1977,12 +1815,11 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
 	}
 	else
 	{
-		// list all: omit variant voices and mbrola voices and test voices
+		// list all: omit variant voices and mbrola voices
 		j = 0;
 		for(ix=0; (v = voices_list[ix]) != NULL; ix++)
 		{
-			if((v->languages[0] != 0) && (strcmp(&v->languages[1],"variant") != 0)
-				&& (memcmp(v->identifier,"mb/",3) != 0) && (memcmp(v->identifier,"test/",5) != 0))
+			if((v->languages[0] != 0) && (strcmp(&v->languages[1],"variant") != 0) && (memcmp(v->identifier,"mb/",3) != 0))
 			{
 				voices[j++] = v;
 			}
@@ -1991,7 +1828,7 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
 	}
 	return((const espeak_VOICE **)voices);
 #endif
-	//return((const espeak_VOICE **)voices_list
+	return((const espeak_VOICE **)voices_list);
 }  //  end of espeak_ListVoices
 
 
diff --git a/external/espeak/wave.h b/external/espeak/wave.h
old mode 100755
new mode 100644
index aac2a8d..337c8a1
--- a/external/espeak/wave.h
+++ b/external/espeak/wave.h
@@ -7,7 +7,7 @@
 
 extern int option_device_number;
 
-extern int wave_init(int samplerate);
+extern void wave_init(int samplerate);
 // TBD: the arg could be "alsa", "oss",...
 extern void* wave_open(const char* the_api);
 
diff --git a/external/espeak/wavegen.cpp b/external/espeak/wavegen.cpp
old mode 100755
new mode 100644
index c52fcbf..1f34cd2
--- a/external/espeak/wavegen.cpp
+++ b/external/espeak/wavegen.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005 to 2013 by Jonathan Duddington                     *
+ *   Copyright (C) 2005 to 2007 by Jonathan Duddington                     *
  *   email: jonsd at users.sourceforge.net                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -244,7 +244,7 @@ static unsigned char wavemult[N_WAVEMULT] = {
    105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14,
     11,  8,  5,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 };
-
+ 
 
 // set from y = pow(2,x) * 128,  x=-1 to 1
 unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = {
@@ -592,7 +592,7 @@ static PaError Pa_OpenDefaultStream2( PaStream** stream,
 		hostApiOutputParameters.device = Pa_GetDefaultOutputDevice();
 
 	if( hostApiOutputParameters.device == paNoDevice )
-		return paDeviceUnavailable;
+		return paDeviceUnavailable; 
 
 	hostApiOutputParameters.channelCount = outputChannelCount;
 	hostApiOutputParameters.sampleFormat = sampleFormat;
@@ -798,7 +798,6 @@ remove("log-klatt");
 }  // end of WavegenInit
 
 
-int GetAmplitude(void);
 int GetAmplitude(void)
 {//===================
 	int amp;
@@ -835,6 +834,15 @@ static void WavegenSetEcho(void)
 		amp = embedded_value[EMBED_H];
 		delay = 130;
 	}
+#ifdef deleted
+	if(embedded_value[EMBED_T] > 0)
+	{
+		// announcing punctuation, add a small echo
+// This seems unpopular
+		amp = embedded_value[EMBED_T] * 8;
+		delay = 60;
+	}
+#endif
 
 	if(delay == 0)
 		amp = 0;
@@ -846,7 +854,7 @@ static void WavegenSetEcho(void)
 	if(amp > 20)
 		echo_length = echo_head * 2;    // perhaps allow 2 echo periods if the echo is loud.
 
-	// echo_amp units are 1/256ths of the amplitude of the original sound.
+	// echo_amp units are 1/256ths of the amplitude of the original sound. 
 	echo_amp = amp;
 	// compensate (partially) for increase in amplitude due to echo
 	general_amplitude = GetAmplitude();
@@ -854,7 +862,8 @@ static void WavegenSetEcho(void)
 }  // end of WavegenSetEcho
 
 
-static int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control)
+
+int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control)
 {//============================================================================
 // Calculate the amplitude of each  harmonics from the formants
 // Only for formants 0 to 5
@@ -1016,16 +1025,16 @@ static void AdvanceParameters()
 	for(ix=0; ix <= wvoice->n_harmonic_peaks; ix++)
 	{
 		peaks[ix].freq1 += peaks[ix].freq_inc;
-		peaks[ix].freq = (int)peaks[ix].freq1;
+		peaks[ix].freq = int(peaks[ix].freq1);
 		peaks[ix].height1 += peaks[ix].height_inc;
-		if((peaks[ix].height = (int)peaks[ix].height1) < 0)
+		if((peaks[ix].height = int(peaks[ix].height1)) < 0)
 			peaks[ix].height = 0;
 		peaks[ix].left1 += peaks[ix].left_inc;
-		peaks[ix].left = (int)peaks[ix].left1;
+		peaks[ix].left = int(peaks[ix].left1);
 		if(ix < 3)
 		{
 			peaks[ix].right1 += peaks[ix].right_inc;
-			peaks[ix].right = (int)peaks[ix].right1;
+			peaks[ix].right = int(peaks[ix].right1);
 		}
 		else
 		{
@@ -1038,10 +1047,10 @@ static void AdvanceParameters()
 		if(ix < 7)
 		{
 			peaks[ix].freq1 += peaks[ix].freq_inc;
-			peaks[ix].freq = (int)peaks[ix].freq1;
+			peaks[ix].freq = int(peaks[ix].freq1);
 		}
 		peaks[ix].height1 += peaks[ix].height_inc;
-		if((peaks[ix].height = (int)peaks[ix].height1) < 0)
+		if((peaks[ix].height = int(peaks[ix].height1)) < 0)
 			peaks[ix].height = 0;
 	}
 
@@ -1157,7 +1166,7 @@ static int ApplyBreath(void)
 		if((amp = wvoice->breath[ix]) != 0)
 		{
 			amp *= (peaks[ix].height >> 14);
-			value += (int)resonator(&rbreath[ix],noise) * amp;
+			value += int(resonator(&rbreath[ix],noise) * amp);
 		}
 	}
 #endif
@@ -1166,7 +1175,6 @@ static int ApplyBreath(void)
 
 
 
-int Wavegen();
 int Wavegen()
 {//==========
 	unsigned short waveph;
@@ -1256,7 +1264,7 @@ int Wavegen()
 				for(pk=wvoice->n_harmonic_peaks+1; pk<N_PEAKS; pk++)
 				{
 					// find the nearest harmonic for HF peaks where we don't use shape
-					peak_harmonic[pk] = ((peaks[pk].freq / (wdata.pitch*8)) + 1) / 2;
+					peak_harmonic[pk] = peaks[pk].freq / (wdata.pitch*16);
 				}
 
 				// adjust amplitude to compensate for fewer harmonics at higher pitch
@@ -1358,12 +1366,12 @@ int Wavegen()
 
 		for(h=1; h<=h_switch_sign; h++)
 		{
-			total += ((int)sin_tab[theta >> 5] * harmspect[h]);
+			total += (int(sin_tab[theta >> 5]) * harmspect[h]);
 			theta += waveph;
 		}
 		while(h<=maxh)
 		{
-			total -= ((int)sin_tab[theta >> 5] * harmspect[h]);
+			total -= (int(sin_tab[theta >> 5]) * harmspect[h]);
 			theta += waveph;
 			h++;
 		}
@@ -1551,7 +1559,7 @@ static int SetWithRange0(int value, int max)
 static void SetPitchFormants()
 {//===========================
 	int ix;
-	int factor = 256;
+	int factor;
 	int pitch_value;
 
 	// adjust formants to give better results for a different voice pitch
@@ -1562,13 +1570,11 @@ static void SetPitchFormants()
 	{
 		// only adjust if the pitch is higher than normal
 		factor = 256 + (25 * (pitch_value - 50))/50;
+		for(ix=0; ix<=5; ix++)
+		{
+			wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256;
+		}
 	}
-
-	for(ix=0; ix<=5; ix++)
-	{
-		wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256;
-	}
-
 	factor = embedded_value[EMBED_T]*3;
 	wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256;
 	wvoice->height[1] = (wvoice->height2[1] * (256 - factor))/256;
@@ -1691,7 +1697,7 @@ void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pit
 }
 
 
-static void SetPitch(int length, unsigned char *env, int pitch1, int pitch2)
+void SetPitch(int length, unsigned char *env, int pitch1, int pitch2)
 {//==================================================================
 // length in samples
 
@@ -1727,7 +1733,8 @@ if(option_log_frames)
 
 
 
-static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v)
+
+void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v)
 {//========================================================================
 	int ix;
 	DOUBLEX next;
@@ -1748,7 +1755,7 @@ if(option_log_frames)
 		fprintf(f_log,"%3dmS  %3d %3d %4d %4d (%3d %3d %3d %3d)  to  %3d %3d %4d %4d (%3d %3d %3d %3d)\n",length*1000/samplerate,
 			fr1->ffreq[0],fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3], fr1->fheight[0],fr1->fheight[1],fr1->fheight[2],fr1->fheight[3],
 			fr2->ffreq[0],fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3], fr2->fheight[0],fr2->fheight[1],fr2->fheight[2],fr2->fheight[3] );
-
+	
 	fclose(f_log);
 	f_log=NULL;
 	}
@@ -1807,27 +1814,27 @@ if(option_log_frames)
 		if(ix < 7)
 		{
 			peaks[ix].freq1 = (fr1->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8;
-			peaks[ix].freq = (int)peaks[ix].freq1;
+			peaks[ix].freq = int(peaks[ix].freq1);
 			next = (fr2->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8;
 			peaks[ix].freq_inc =  ((next - peaks[ix].freq1) * (STEPSIZE/4)) / length4;  // lower headroom for fixed point math
 		}
 
 		peaks[ix].height1 = (fr1->fheight[ix] * v->height[ix]) << 6;
-		peaks[ix].height = (int)peaks[ix].height1;
+		peaks[ix].height = int(peaks[ix].height1);
 		next = (fr2->fheight[ix] * v->height[ix]) << 6;
 		peaks[ix].height_inc =  ((next - peaks[ix].height1) * STEPSIZE) / length2;
 
 		if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks))
 		{
 			peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10;
-			peaks[ix].left = (int)peaks[ix].left1;
+			peaks[ix].left = int(peaks[ix].left1);
 			next = (fr2->fwidth[ix] * v->width[ix]) << 10;
 			peaks[ix].left_inc =  ((next - peaks[ix].left1) * STEPSIZE) / length2;
 
 			if(ix < 3)
 			{
 				peaks[ix].right1 = (fr1->fright[ix] * v->width[ix]) << 10;
-				peaks[ix].right = (int)peaks[ix].right1;
+				peaks[ix].right = int(peaks[ix].right1);
 				next = (fr2->fright[ix] * v->width[ix]) << 10;
 				peaks[ix].right_inc = ((next - peaks[ix].right1) * STEPSIZE) / length2;
 			}
@@ -1860,7 +1867,9 @@ void Write4Bytes(FILE *f, int value)
 	}
 }
 
-static int WavegenFill2(int fill_zeros)
+
+
+int WavegenFill2(int fill_zeros)
 {//============================
 // Pick up next wavegen commands from the queue
 // return: 0  output buffer has been filled
@@ -2027,7 +2036,7 @@ static int SpeedUp(short *outbuf, int length_in, int length_out, int end_of_text
 		{
 		        sonicSetSpeed(sonicSpeedupStream, sonicSpeed);
 		}
-
+	
 		sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in);
 	}
 
diff --git a/external/flac/flac_FLAC_format.h b/external/flac/flac_FLAC_format.h
index d93ed27..93dee80 100644
--- a/external/flac/flac_FLAC_format.h
+++ b/external/flac/flac_FLAC_format.h
@@ -1004,7 +1004,7 @@ FLAC_API FLAC__bool FLAC__format_picture_is_legal(const FLAC__StreamMetadata_Pic
 /* \} */
 
 // pb 20080502
-#if defined (_WIN32) && ! defined (__CYGWIN__)
+#ifdef _WIN32
 	#ifndef __cplusplus
 		uint32_t * Melder_peek8to32 (const char *string);
 		const uint16_t * Melder_peek32to16 (const uint32_t *string);
diff --git a/external/flac/flac_stream_decoder.c b/external/flac/flac_stream_decoder.c
index 54f4470..ef053fc 100644
--- a/external/flac/flac_stream_decoder.c
+++ b/external/flac/flac_stream_decoder.c
@@ -33,7 +33,7 @@
 #  include <config.h>
 #endif
 
-#if defined (_WIN32)
+#if defined _WIN32
 #include <io.h> /* for _setmode() */
 #include <fcntl.h> /* for _O_BINARY */
 #endif
@@ -1279,9 +1279,9 @@ FILE *get_binary_stdin_(void)
 	 */
 #if defined _MSC_VER || defined __MINGW32__
 	_setmode(_fileno(stdin), _O_BINARY);
-#elif defined __CYGWIN__
+#elif defined __CYGWIN__ 
 	/* almost certainly not needed for any modern Cygwin, but let's be safe... */
-	setmode(fileno(stdin), O_BINARY);
+	setmode(_fileno(stdin), _O_BINARY);
 #elif defined __EMX__
 	setmode(fileno(stdin), O_BINARY);
 #endif
diff --git a/external/flac/flac_stream_encoder.c b/external/flac/flac_stream_encoder.c
index 8f6cd3f..65f18a9 100644
--- a/external/flac/flac_stream_encoder.c
+++ b/external/flac/flac_stream_encoder.c
@@ -33,7 +33,7 @@
 #  include <config.h>
 #endif
 
-#if defined (_WIN32)
+#if defined _WIN32
 #include <io.h> /* for _setmode() */
 #include <fcntl.h> /* for _O_BINARY */
 #endif
@@ -4286,7 +4286,7 @@ FILE *get_binary_stdout_(void)
 	_setmode(_fileno(stdout), _O_BINARY);
 #elif defined __CYGWIN__
 	/* almost certainly not needed for any modern Cygwin, but let's be safe... */
-	setmode(fileno(stdout), O_BINARY);
+	setmode(_fileno(stdout), _O_BINARY);
 #elif defined __EMX__
 	setmode(fileno(stdout), O_BINARY);
 #endif
diff --git a/external/mp3/mp3.cpp b/external/mp3/mp3.cpp
index a0aa0c5..7afb682 100644
--- a/external/mp3/mp3.cpp
+++ b/external/mp3/mp3.cpp
@@ -107,7 +107,6 @@ struct _MP3_FILE
 	MP3F_OFFSET first_offset;
 	unsigned skip_amount;
 	int need_seek;
-	MP3F_OFFSET id3TagSize_bytes; /* David Weenink */
 };
 
 static enum mad_flow mp3f_mad_error (void *context, struct mad_stream *stream, struct mad_frame *frame);
@@ -146,7 +145,7 @@ int mp3_recognize (int nread, const char *data)
 		((bytes [1] & 0xFE) == 0xE2);   /* MPEG ADTS, layer III, v2.5 */
 }
 
-MP3_FILE mp3f_new ()
+MP3_FILE mp3f_new (void)
 {
 	try {
 		return Melder_calloc (struct _MP3_FILE, 1);
@@ -166,70 +165,6 @@ void mp3f_set_file (MP3_FILE mp3f, FILE *f)
 	if (! f)
 		return;
 	fseek (f, 0, SEEK_SET);
-	/* David Weenink 20151005
-		Check if an ID3 header version 2 or newer is present at the START of the file (older header types are always at the END of the file). We calculate the size of the header (in bytes), store it in the mp3f -> id3TagSize_bytes field and simply skip this amount of bytes before analyzing/decoding starts.
-		
-		According to http://id3.org/id3v2-00:
-		The ID3v2 tag header, which should be the FIRST information in the file, is 10 bytes as follows:
-
-		ID3/file identifier      "ID3"
-		ID3 version              $02 00
-		ID3 flags                %xx000000
-		ID3 size             4 * %0xxxxxxx
-
-		The first three bytes of the tag are always "ID3" to indicate that
-		this is an ID3 tag, directly followed by the two version bytes. The
-		first byte of ID3 version is it's major version, while the second byte
-		is its revision number. All revisions are backwards compatible while
-		major versions are not. If software with ID3v2 and below support
-		should encounter version three or higher it should simply ignore the
-		whole tag. Version and revision will never be $FF.
-
-		The first bit (bit 7) in the 'ID3 flags' is indicating whether or not
-		unsynchronisation is used (see section 5 for details); a set bit
-		indicates usage.
-
-		The second bit (bit 6) is indicating whether or not compression is
-		used; a set bit indicates usage. Since no compression scheme has been
-		decided yet, the ID3 decoder (for now) should just ignore the entire
-		tag if the compression bit is set.
-
-		The ID3 tag size is encoded with four bytes where the first bit (bit
-		7) is set to zero in every byte, making a total of 28 bits. The zeroed
-		bits are ignored, so a 257 bytes long tag is represented as $00 00 02 01.
-
-		The ID3 tag size is the size of the complete tag after
-		unsychronisation, including padding, excluding the header (total tag
-		size - 10). The reason to use 28 bits (representing up to 256MB) for
-		size description is that we don't want to run out of space here.
-
-		A ID3v2 tag can be detected with the following pattern:
-		$49 44 33 yy yy xx zz zz zz zz
-		Where yy is less than $FF, xx is the 'flags' byte and zz is less than$80.
-	*/
-	{
-		unsigned char bytes [10];
-		(void) fread (& bytes, 1, 10, mp3f -> f);
-		mp3f -> id3TagSize_bytes = 0;
-		if (bytes[0] == 'I' && bytes[1] == 'D' && bytes[2] == '3') {
-			if (bytes[3] < 0xFF && bytes[4] < 0xFF &&
-				bytes[6] < 0x80 && bytes[7] < 0x80 && bytes[8] < 0x80 && bytes[9] < 0x80 ) {
-				/* 
-				Ignore version: bytes[3] & bytes[4] 
-				Ignore flags: bytes[5]
-					The only purpose of the 'unsychronisation scheme' is to make the ID3v2
-					tag as compatible as possible with existing software. There is no use
-					in 'unsynchronising' tags if the file is only to be processed by new
-					software. Unsynchronisation may only be made with MPEG 2 layer I, II
-					and III and MPEG 2.5 files.
-				 */
-				mp3f -> id3TagSize_bytes = (bytes[6] << 21 | bytes[7] << 14 | bytes[8] << 7 | bytes[9]) + 10;
-			}
-		}
-	}
-	
-	fseek (f, mp3f -> id3TagSize_bytes, SEEK_SET); // David Weenink
-
 	mp3f -> next_read_position = 0;
 	mp3f -> need_seek = 0;
 	mp3f -> delay = MP3F_DECODER_DELAY + MP3F_ENCODER_DELAY;
@@ -248,7 +183,7 @@ int mp3f_analyze (MP3_FILE mp3f)
 	if (! mp3f || ! mp3f -> f)
 		return 0;
 
-	fseek (mp3f -> f, mp3f -> id3TagSize_bytes, SEEK_SET); // David Weenink
+	fseek (mp3f -> f, 0, SEEK_SET);
 
 	mp3f -> xing = 0;
 	mp3f -> channels = 0;
@@ -264,9 +199,9 @@ int mp3f_analyze (MP3_FILE mp3f)
 			mp3f_mad_input,
 			mp3f_mad_first_header,
 			mp3f_mad_first_filter,
-			nullptr /* Output: Don't actually decode for now */,
+			NULL /* Output: Don't actually decode for now */,
 			mp3f_mad_error,
-			nullptr /* Message */);
+			NULL /* Message */);
 
 	status = mad_decoder_run (decoder, MAD_DECODER_MODE_SYNC);
 	if (status != 0)
@@ -284,7 +219,7 @@ int mp3f_analyze (MP3_FILE mp3f)
 		frame_size = mp3f -> locations [1] - mp3f -> locations[0];
 
 		/* For file size, seek to end */
-		fseek (mp3f -> f, mp3f -> id3TagSize_bytes, SEEK_END); // David Weenink
+		fseek (mp3f -> f, 0, SEEK_END);
 		file_size = ftell (mp3f -> f);
 
 		/* This estimate will be pretty accurate for CBR */
@@ -314,15 +249,15 @@ int mp3f_analyze (MP3_FILE mp3f)
 	mp3f -> frames = 0;
 	mp3f -> samples = 0;
 
-	fseek (mp3f -> f, mp3f -> id3TagSize_bytes, SEEK_SET); // David Weenink
+	fseek (mp3f -> f, 0, SEEK_SET);
 	mad_decoder_init (decoder, 
 			mp3f,
 			mp3f_mad_input,
 			mp3f_mad_scan_header,
-			nullptr /* Filter */,
-			nullptr /* Output */,
+			NULL /* Filter */,
+			NULL /* Output */,
 			mp3f_mad_error,
-			nullptr /* Message */);
+			NULL /* Message */);
 
 	status = mad_decoder_run (decoder, MAD_DECODER_MODE_SYNC);
 
@@ -435,11 +370,11 @@ int mp3f_read (MP3_FILE mp3f, MP3F_OFFSET num_samples)
 	mad_decoder_init (decoder, 
 			mp3f,
 			mp3f_mad_input,
-			nullptr /* Header */,
-			nullptr /* Filter */,
+			NULL /* Header */,
+			NULL /* Filter */,
 			mp3f_mad_report_samples,
 			mp3f_mad_error,
-			nullptr /* Message */);
+			NULL /* Message */);
 
 	mp3f -> read_amount = num_samples;
 	status = mad_decoder_run (decoder, MAD_DECODER_MODE_SYNC);
@@ -521,7 +456,7 @@ static enum mad_flow mp3f_mad_input(void *context, struct mad_stream *stream)
 {
 	MP3_FILE mp3f = (MP3_FILE) context;
 	FILE *f = mp3f -> f;
-	unsigned char *buffer = nullptr;
+	unsigned char *buffer = NULL;
 	unsigned nthrown = 0, ncopied = 0, size = 0;
 	size_t nread = 0;
 	MP3F_OFFSET offset;
diff --git a/external/mp3/mp3.h b/external/mp3/mp3.h
index f65297a..0759cb2 100644
--- a/external/mp3/mp3.h
+++ b/external/mp3/mp3.h
@@ -44,7 +44,7 @@ typedef void (*MP3F_CALLBACK) (
 		long num_samples,
 		void *context);
 
-MP3_FILE mp3f_new ();
+MP3_FILE mp3f_new (void);
 void mp3f_delete (MP3_FILE mp3f);
 
 void mp3f_set_file (MP3_FILE mp3f, FILE *f);
diff --git a/external/portaudio2007/Makefile b/external/portaudio2007/Makefile
new file mode 100644
index 0000000..7e2bc03
--- /dev/null
+++ b/external/portaudio2007/Makefile
@@ -0,0 +1,27 @@
+# Makefile of the library "external/portaudio"
+# Paul Boersma, 14 January 2012
+
+include ../../makefile.defs
+
+OBJECTS = pa_skeleton.o \
+	pa_unix_hostapis.o pa_unix_util.o pa_linux_alsa.o \
+	pa_win_hostapis.o pa_win_util.o pa_win_wmme.o pa_win_waveformat.o \
+	pa_front.o pa_debugprint.o pa_cpuload.o \
+	pa_allocation.o pa_process.o pa_converters.o pa_dither.o \
+	pa_stream.o
+
+.PHONY: all clean
+
+all: libportaudio.a
+
+clean:
+	$(RM) $(OBJECTS)
+	$(RM) libportaudio.a
+
+libportaudio.a: $(OBJECTS)
+	touch libportaudio.a
+	rm libportaudio.a
+	ar cq libportaudio.a $(OBJECTS)
+	$(RANLIB) libportaudio.a
+
+$(OBJECTS): *.h
diff --git a/external/portaudio2007/READ_ME.TXT b/external/portaudio2007/READ_ME.TXT
new file mode 100644
index 0000000..14c6705
--- /dev/null
+++ b/external/portaudio2007/READ_ME.TXT
@@ -0,0 +1,22 @@
+Praats/external/portaudio/READ_ME.TXT
+Paul Boersma, 1 September 2013
+This file describes the adaptations to the PortAudio v19 sources (2007/11)
+that are needed to make them compatible with Praat.
+
+Deleted lines in pa_***_hostapis.c.
+
+At the top of pa_win_*.c:
+#undef UNICODE
+
+In pa_win_mme.c, remove the #ifndef/endif from:
+#ifndef __MWERKS__
+#include <malloc.h>
+#include <memory.h>
+#endif /* __MWERKS__ */
+
+In pa_mac_core.c:
+#include <Components.h>
+
+Duplicate pa_unix_util.c to pa_mac_util.c, but only for allocation and time routines.
+
+Remove the hard-coded definition of SIZEOF_LONG from pa_types.h and instead use <stdint.h> to define PaInt32 and the like. Correct the associated error in pa_dither.c: SIZEOF_LONG -> sizeof(long).
\ No newline at end of file
diff --git a/external/portaudio2007/pa_allocation.c b/external/portaudio2007/pa_allocation.c
new file mode 100644
index 0000000..c78c2cf
--- /dev/null
+++ b/external/portaudio2007/pa_allocation.c
@@ -0,0 +1,243 @@
+/*
+ * $Id: pa_allocation.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library allocation group implementation
+ * memory allocation group for tracking allocation groups
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Allocation Group implementation.
+*/
+
+
+#include "pa_allocation.h"
+#include "pa_util.h"
+
+
+/*
+    Maintain 3 singly linked lists...
+    linkBlocks: the buffers used to allocate the links
+    spareLinks: links available for use in the allocations list
+    allocations: the buffers currently allocated using PaUtil_ContextAllocateMemory()
+
+    Link block size is doubled every time new links are allocated.
+*/
+
+
+#define PA_INITIAL_LINK_COUNT_    16
+
+struct PaUtilAllocationGroupLink
+{
+    struct PaUtilAllocationGroupLink *next;
+    void *buffer;
+};
+
+/*
+    Allocate a block of links. The first link will have it's buffer member
+    pointing to the block, and it's next member set to <nextBlock>. The remaining
+    links will have NULL buffer members, and each link will point to
+    the next link except the last, which will point to <nextSpare>
+*/
+static struct PaUtilAllocationGroupLink *AllocateLinks( long count,
+        struct PaUtilAllocationGroupLink *nextBlock,
+        struct PaUtilAllocationGroupLink *nextSpare )
+{
+    struct PaUtilAllocationGroupLink *result;
+    int i;
+    
+    result = (struct PaUtilAllocationGroupLink *)PaUtil_AllocateMemory(
+            sizeof(struct PaUtilAllocationGroupLink) * count );
+    if( result )
+    {
+        /* the block link */
+        result[0].buffer = result;
+        result[0].next = nextBlock;
+
+        /* the spare links */
+        for( i=1; i<count; ++i )
+        {
+            result[i].buffer = 0;
+            result[i].next = &result[i+1];
+        }
+        result[count-1].next = nextSpare;
+    }
+    
+    return result;
+}
+
+
+PaUtilAllocationGroup* PaUtil_CreateAllocationGroup( void )
+{
+    PaUtilAllocationGroup* result = 0;
+    struct PaUtilAllocationGroupLink *links;
+
+
+    links = AllocateLinks( PA_INITIAL_LINK_COUNT_, 0, 0 );
+    if( links != 0 )
+    {
+        result = (PaUtilAllocationGroup*)PaUtil_AllocateMemory( sizeof(PaUtilAllocationGroup) );
+        if( result )
+        {
+            result->linkCount = PA_INITIAL_LINK_COUNT_;
+            result->linkBlocks = &links[0];
+            result->spareLinks = &links[1];
+            result->allocations = 0;
+        }
+        else
+        {
+            PaUtil_FreeMemory( links );
+        }
+    }
+
+    return result;
+}
+
+
+void PaUtil_DestroyAllocationGroup( PaUtilAllocationGroup* group )
+{
+    struct PaUtilAllocationGroupLink *current = group->linkBlocks;
+    struct PaUtilAllocationGroupLink *next;
+
+    while( current )
+    {
+        next = current->next;
+        PaUtil_FreeMemory( current->buffer );
+        current = next;
+    }
+
+    PaUtil_FreeMemory( group );
+}
+
+
+void* PaUtil_GroupAllocateMemory( PaUtilAllocationGroup* group, long size )
+{
+    struct PaUtilAllocationGroupLink *links, *link;
+    void *result = 0;
+    
+    /* allocate more links if necessary */
+    if( !group->spareLinks )
+    {
+        /* double the link count on each block allocation */
+        links = AllocateLinks( group->linkCount, group->linkBlocks, group->spareLinks );
+        if( links )
+        {
+            group->linkCount += group->linkCount;
+            group->linkBlocks = &links[0];
+            group->spareLinks = &links[1];
+        }
+    }
+
+    if( group->spareLinks )
+    {
+        result = PaUtil_AllocateMemory( size );
+        if( result )
+        {
+            link = group->spareLinks;
+            group->spareLinks = link->next;
+
+            link->buffer = result;
+            link->next = group->allocations;
+
+            group->allocations = link;
+        }
+    }
+
+    return result;    
+}
+
+
+void PaUtil_GroupFreeMemory( PaUtilAllocationGroup* group, void *buffer )
+{
+    struct PaUtilAllocationGroupLink *current = group->allocations;
+    struct PaUtilAllocationGroupLink *previous = 0;
+
+    if( buffer == 0 )
+        return;
+
+    /* find the right link and remove it */
+    while( current )
+    {
+        if( current->buffer == buffer )
+        {
+            if( previous )
+            {
+                previous->next = current->next;
+            }
+            else
+            {
+                group->allocations = current->next;
+            }
+
+            current->buffer = 0;
+            current->next = group->spareLinks;
+            group->spareLinks = current;
+
+            break;
+        }
+        
+        previous = current;
+        current = current->next;
+    }
+
+    PaUtil_FreeMemory( buffer ); /* free the memory whether we found it in the list or not */
+}
+
+
+void PaUtil_FreeAllAllocations( PaUtilAllocationGroup* group )
+{
+    struct PaUtilAllocationGroupLink *current = group->allocations;
+    struct PaUtilAllocationGroupLink *previous = 0;
+
+    /* free all buffers in the allocations list */
+    while( current )
+    {
+        PaUtil_FreeMemory( current->buffer );
+        current->buffer = 0;
+
+        previous = current;
+        current = current->next;
+    }
+
+    /* link the former allocations list onto the front of the spareLinks list */
+    if( previous )
+    {
+        previous->next = group->spareLinks;
+        group->spareLinks = group->allocations;
+        group->allocations = 0;
+    }
+}
+
diff --git a/external/portaudio2007/pa_allocation.h b/external/portaudio2007/pa_allocation.h
new file mode 100644
index 0000000..b265b01
--- /dev/null
+++ b/external/portaudio2007/pa_allocation.h
@@ -0,0 +1,104 @@
+#ifndef PA_ALLOCATION_H
+#define PA_ALLOCATION_H
+/*
+ * $Id: pa_allocation.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library allocation context header
+ * memory allocation context for tracking allocation groups
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Allocation Group prototypes. An Allocation Group makes it easy to
+ allocate multiple blocks of memory and free them all simultanously.
+ 
+ An allocation group is useful for keeping track of multiple blocks
+ of memory which are allocated at the same time (such as during initialization)
+ and need to be deallocated at the same time. The allocation group maintains
+ a list of allocated blocks, and can deallocate them all simultaneously which
+ can be usefull for cleaning up after a partially initialized object fails.
+
+ The allocation group implementation is built on top of the lower
+ level allocation functions defined in pa_util.h
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+typedef struct
+{
+    long linkCount;
+    struct PaUtilAllocationGroupLink *linkBlocks;
+    struct PaUtilAllocationGroupLink *spareLinks;
+    struct PaUtilAllocationGroupLink *allocations;
+}PaUtilAllocationGroup;
+
+
+
+/** Create an allocation group.
+*/
+PaUtilAllocationGroup* PaUtil_CreateAllocationGroup( void );
+
+/** Destroy an allocation group, but not the memory allocated through the group.
+*/
+void PaUtil_DestroyAllocationGroup( PaUtilAllocationGroup* group );
+
+/** Allocate a block of memory though an allocation group.
+*/
+void* PaUtil_GroupAllocateMemory( PaUtilAllocationGroup* group, long size );
+
+/** Free a block of memory that was previously allocated though an allocation
+ group. Calling this function is a relatively time consuming operation.
+ Under normal circumstances clients should call PaUtil_FreeAllAllocations to
+ free all allocated blocks simultaneously.
+ @see PaUtil_FreeAllAllocations
+*/
+void PaUtil_GroupFreeMemory( PaUtilAllocationGroup* group, void *buffer );
+
+/** Free all blocks of memory which have been allocated through the allocation
+ group. This function doesn't destroy the group itself.
+*/
+void PaUtil_FreeAllAllocations( PaUtilAllocationGroup* group );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_ALLOCATION_H */
diff --git a/external/portaudio2007/pa_converters.c b/external/portaudio2007/pa_converters.c
new file mode 100644
index 0000000..3b98c85
--- /dev/null
+++ b/external/portaudio2007/pa_converters.c
@@ -0,0 +1,1935 @@
+/*
+ * $Id: pa_converters.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library sample conversion mechanism
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Conversion functions implementations.
+ 
+ If the C9x function lrintf() is available, define PA_USE_C99_LRINTF to use it
+
+ @todo Consider whether functions which dither but don't clip should exist,
+ V18 automatically enabled clipping whenever dithering was selected. Perhaps
+ we should do the same.
+
+ @todo implement the converters marked IMPLEMENT ME: Float32_To_UInt8_Dither,
+ Float32_To_UInt8_Clip, Float32_To_UInt8_DitherClip, Int32_To_Int24_Dither,
+ Int32_To_UInt8_Dither, Int24_To_Int16_Dither, Int24_To_Int8_Dither, 
+ Int24_To_UInt8_Dither, Int16_To_Int8_Dither, Int16_To_UInt8_Dither,
+
+ @todo review the converters marked REVIEW: Float32_To_Int32,
+ Float32_To_Int32_Dither, Float32_To_Int32_Clip, Float32_To_Int32_DitherClip,
+ Int32_To_Int16_Dither, Int32_To_Int8_Dither, Int16_To_Int32
+*/
+
+
+#include "pa_converters.h"
+#include "pa_dither.h"
+#include "pa_endianness.h"
+#include "pa_types.h"
+
+
+PaSampleFormat PaUtil_SelectClosestAvailableFormat(
+        PaSampleFormat availableFormats, PaSampleFormat format )
+{
+    PaSampleFormat result;
+
+    format &= ~paNonInterleaved;
+    availableFormats &= ~paNonInterleaved;
+    
+    if( (format & availableFormats) == 0 )
+    {
+        /* NOTE: this code depends on the sample format constants being in
+            descending order of quality - ie best quality is 0
+            FIXME: should write an assert which checks that all of the
+            known constants conform to that requirement.
+        */
+
+        if( format != 0x01 )
+        {
+            /* scan for better formats */
+            result = format;
+            do
+            {
+                result >>= 1;
+            }
+            while( (result & availableFormats) == 0 && result != 0 );
+        }
+        else
+        {
+            result = 0;
+        }
+        
+        if( result == 0 ){
+            /* scan for worse formats */
+            result = format;
+            do
+            {
+                result <<= 1;
+            }
+            while( (result & availableFormats) == 0 && result != paCustomFormat );
+
+            if( (result & availableFormats) == 0 )
+                result = paSampleFormatNotSupported;
+        }
+        
+    }else{
+        result = format;
+    }
+
+    return result;
+}
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_SELECT_FORMAT_( format, float32, int32, int24, int16, int8, uint8 ) \
+    switch( format & ~paNonInterleaved ){                                      \
+    case paFloat32:                                                            \
+        float32                                                                \
+    case paInt32:                                                              \
+        int32                                                                  \
+    case paInt24:                                                              \
+        int24                                                                  \
+    case paInt16:                                                              \
+        int16                                                                  \
+    case paInt8:                                                               \
+        int8                                                                   \
+    case paUInt8:                                                              \
+        uint8                                                                  \
+    default: return 0;                                                         \
+    }
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_SELECT_CONVERTER_DITHER_CLIP_( flags, source, destination )         \
+    if( flags & paClipOff ){ /* no clip */                                     \
+        if( flags & paDitherOff ){ /* no dither */                             \
+            return paConverters. source ## _To_ ## destination;                \
+        }else{ /* dither */                                                    \
+            return paConverters. source ## _To_ ## destination ## _Dither;     \
+        }                                                                      \
+    }else{ /* clip */                                                          \
+        if( flags & paDitherOff ){ /* no dither */                             \
+            return paConverters. source ## _To_ ## destination ## _Clip;       \
+        }else{ /* dither */                                                    \
+            return paConverters. source ## _To_ ## destination ## _DitherClip; \
+        }                                                                      \
+    }
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_SELECT_CONVERTER_DITHER_( flags, source, destination )              \
+    if( flags & paDitherOff ){ /* no dither */                                 \
+        return paConverters. source ## _To_ ## destination;                    \
+    }else{ /* dither */                                                        \
+        return paConverters. source ## _To_ ## destination ## _Dither;         \
+    }
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_USE_CONVERTER_( source, destination )\
+    return paConverters. source ## _To_ ## destination;
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_UNITY_CONVERSION_( wordlength )\
+    return paConverters. Copy_ ## wordlength ## _To_ ## wordlength;
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilConverter* PaUtil_SelectConverter( PaSampleFormat sourceFormat,
+        PaSampleFormat destinationFormat, PaStreamFlags flags )
+{
+    PA_SELECT_FORMAT_( sourceFormat,
+                       /* paFloat32: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_UNITY_CONVERSION_( 32 ),
+                                          /* paInt32: */          PA_SELECT_CONVERTER_DITHER_CLIP_( flags, Float32, Int32 ),
+                                          /* paInt24: */          PA_SELECT_CONVERTER_DITHER_CLIP_( flags, Float32, Int24 ),
+                                          /* paInt16: */          PA_SELECT_CONVERTER_DITHER_CLIP_( flags, Float32, Int16 ),
+                                          /* paInt8: */           PA_SELECT_CONVERTER_DITHER_CLIP_( flags, Float32, Int8 ),
+                                          /* paUInt8: */          PA_SELECT_CONVERTER_DITHER_CLIP_( flags, Float32, UInt8 )
+                                        ),
+                       /* paInt32: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_USE_CONVERTER_( Int32, Float32 ),
+                                          /* paInt32: */          PA_UNITY_CONVERSION_( 32 ),
+                                          /* paInt24: */          PA_SELECT_CONVERTER_DITHER_( flags, Int32, Int24 ),
+                                          /* paInt16: */          PA_SELECT_CONVERTER_DITHER_( flags, Int32, Int16 ),
+                                          /* paInt8: */           PA_SELECT_CONVERTER_DITHER_( flags, Int32, Int8 ),
+                                          /* paUInt8: */          PA_SELECT_CONVERTER_DITHER_( flags, Int32, UInt8 )
+                                        ),
+                       /* paInt24: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_USE_CONVERTER_( Int24, Float32 ),
+                                          /* paInt32: */          PA_USE_CONVERTER_( Int24, Int32 ),
+                                          /* paInt24: */          PA_UNITY_CONVERSION_( 24 ),
+                                          /* paInt16: */          PA_SELECT_CONVERTER_DITHER_( flags, Int24, Int16 ),
+                                          /* paInt8: */           PA_SELECT_CONVERTER_DITHER_( flags, Int24, Int8 ),
+                                          /* paUInt8: */          PA_SELECT_CONVERTER_DITHER_( flags, Int24, UInt8 )
+                                        ),
+                       /* paInt16: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_USE_CONVERTER_( Int16, Float32 ),
+                                          /* paInt32: */          PA_USE_CONVERTER_( Int16, Int32 ),
+                                          /* paInt24: */          PA_USE_CONVERTER_( Int16, Int24 ),
+                                          /* paInt16: */          PA_UNITY_CONVERSION_( 16 ),
+                                          /* paInt8: */           PA_SELECT_CONVERTER_DITHER_( flags, Int16, Int8 ),
+                                          /* paUInt8: */          PA_SELECT_CONVERTER_DITHER_( flags, Int16, UInt8 )
+                                        ),
+                       /* paInt8: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_USE_CONVERTER_( Int8, Float32 ),
+                                          /* paInt32: */          PA_USE_CONVERTER_( Int8, Int32 ),
+                                          /* paInt24: */          PA_USE_CONVERTER_( Int8, Int24 ),
+                                          /* paInt16: */          PA_USE_CONVERTER_( Int8, Int16 ),
+                                          /* paInt8: */           PA_UNITY_CONVERSION_( 8 ),
+                                          /* paUInt8: */          PA_USE_CONVERTER_( Int8, UInt8 )
+                                        ),
+                       /* paUInt8: */
+                       PA_SELECT_FORMAT_( destinationFormat,
+                                          /* paFloat32: */        PA_USE_CONVERTER_( UInt8, Float32 ),
+                                          /* paInt32: */          PA_USE_CONVERTER_( UInt8, Int32 ),
+                                          /* paInt24: */          PA_USE_CONVERTER_( UInt8, Int24 ),
+                                          /* paInt16: */          PA_USE_CONVERTER_( UInt8, Int16 ),
+                                          /* paInt8: */           PA_USE_CONVERTER_( UInt8, Int8 ),
+                                          /* paUInt8: */          PA_UNITY_CONVERSION_( 8 )
+                                        )
+                     )
+}
+
+/* -------------------------------------------------------------------------- */
+
+#ifdef PA_NO_STANDARD_CONVERTERS
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilConverterTable paConverters = {
+    0, /* PaUtilConverter *Float32_To_Int32; */
+    0, /* PaUtilConverter *Float32_To_Int32_Dither; */
+    0, /* PaUtilConverter *Float32_To_Int32_Clip; */
+    0, /* PaUtilConverter *Float32_To_Int32_DitherClip; */
+
+    0, /* PaUtilConverter *Float32_To_Int24; */
+    0, /* PaUtilConverter *Float32_To_Int24_Dither; */
+    0, /* PaUtilConverter *Float32_To_Int24_Clip; */
+    0, /* PaUtilConverter *Float32_To_Int24_DitherClip; */
+
+    0, /* PaUtilConverter *Float32_To_Int16; */
+    0, /* PaUtilConverter *Float32_To_Int16_Dither; */
+    0, /* PaUtilConverter *Float32_To_Int16_Clip; */
+    0, /* PaUtilConverter *Float32_To_Int16_DitherClip; */
+
+    0, /* PaUtilConverter *Float32_To_Int8; */
+    0, /* PaUtilConverter *Float32_To_Int8_Dither; */
+    0, /* PaUtilConverter *Float32_To_Int8_Clip; */
+    0, /* PaUtilConverter *Float32_To_Int8_DitherClip; */
+
+    0, /* PaUtilConverter *Float32_To_UInt8; */
+    0, /* PaUtilConverter *Float32_To_UInt8_Dither; */
+    0, /* PaUtilConverter *Float32_To_UInt8_Clip; */
+    0, /* PaUtilConverter *Float32_To_UInt8_DitherClip; */
+
+    0, /* PaUtilConverter *Int32_To_Float32; */
+    0, /* PaUtilConverter *Int32_To_Int24; */
+    0, /* PaUtilConverter *Int32_To_Int24_Dither; */
+    0, /* PaUtilConverter *Int32_To_Int16; */
+    0, /* PaUtilConverter *Int32_To_Int16_Dither; */
+    0, /* PaUtilConverter *Int32_To_Int8; */
+    0, /* PaUtilConverter *Int32_To_Int8_Dither; */
+    0, /* PaUtilConverter *Int32_To_UInt8; */
+    0, /* PaUtilConverter *Int32_To_UInt8_Dither; */
+
+    0, /* PaUtilConverter *Int24_To_Float32; */
+    0, /* PaUtilConverter *Int24_To_Int32; */
+    0, /* PaUtilConverter *Int24_To_Int16; */
+    0, /* PaUtilConverter *Int24_To_Int16_Dither; */
+    0, /* PaUtilConverter *Int24_To_Int8; */
+    0, /* PaUtilConverter *Int24_To_Int8_Dither; */
+    0, /* PaUtilConverter *Int24_To_UInt8; */
+    0, /* PaUtilConverter *Int24_To_UInt8_Dither; */
+    
+    0, /* PaUtilConverter *Int16_To_Float32; */
+    0, /* PaUtilConverter *Int16_To_Int32; */
+    0, /* PaUtilConverter *Int16_To_Int24; */
+    0, /* PaUtilConverter *Int16_To_Int8; */
+    0, /* PaUtilConverter *Int16_To_Int8_Dither; */
+    0, /* PaUtilConverter *Int16_To_UInt8; */
+    0, /* PaUtilConverter *Int16_To_UInt8_Dither; */
+
+    0, /* PaUtilConverter *Int8_To_Float32; */
+    0, /* PaUtilConverter *Int8_To_Int32; */
+    0, /* PaUtilConverter *Int8_To_Int24 */
+    0, /* PaUtilConverter *Int8_To_Int16; */
+    0, /* PaUtilConverter *Int8_To_UInt8; */
+
+    0, /* PaUtilConverter *UInt8_To_Float32; */
+    0, /* PaUtilConverter *UInt8_To_Int32; */
+    0, /* PaUtilConverter *UInt8_To_Int24; */
+    0, /* PaUtilConverter *UInt8_To_Int16; */
+    0, /* PaUtilConverter *UInt8_To_Int8; */
+
+    0, /* PaUtilConverter *Copy_8_To_8; */
+    0, /* PaUtilConverter *Copy_16_To_16; */
+    0, /* PaUtilConverter *Copy_24_To_24; */
+    0  /* PaUtilConverter *Copy_32_To_32; */
+};
+
+/* -------------------------------------------------------------------------- */
+
+#else /* PA_NO_STANDARD_CONVERTERS is not defined */
+
+/* -------------------------------------------------------------------------- */
+
+#define PA_CLIP_( val, min, max )\
+    { val = ((val) < (min)) ? (min) : (((val) > (max)) ? (max) : (val)); }
+
+
+static const float const_1_div_128_ = 1.0f / 128.0f;  /* 8 bit multiplier */
+
+static const float const_1_div_32768_ = 1.0f / 32768.f; /* 16 bit multiplier */
+
+static const double const_1_div_2147483648_ = 1.0 / 2147483648.0; /* 32 bit multiplier */
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* REVIEW */
+#ifdef PA_USE_C99_LRINTF
+        float scaled = *src * 0x7FFFFFFF;
+        *dest = lrintf(scaled-0.5f);
+#else
+        double scaled = *src * 0x7FFFFFFF;
+        *dest = (PaInt32) scaled;        
+#endif
+        
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int32_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+
+    while( count-- )
+    {
+        /* REVIEW */
+#ifdef PA_USE_C99_LRINTF
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = ((float)*src * (2147483646.0f)) + dither;
+        *dest = lrintf(dithered - 0.5f);
+#else
+        double dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        double dithered = ((double)*src * (2147483646.0)) + dither;
+        *dest = (PaInt32) dithered;
+#endif
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int32_Clip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        /* REVIEW */
+#ifdef PA_USE_C99_LRINTF
+        float scaled = *src * 0x7FFFFFFF;
+        PA_CLIP_( scaled, -2147483648.f, 2147483647.f  );
+        *dest = lrintf(scaled-0.5f);
+#else
+        double scaled = *src * 0x7FFFFFFF;
+        PA_CLIP_( scaled, -2147483648., 2147483647.  );
+        *dest = (PaInt32) scaled;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int32_DitherClip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+
+    while( count-- )
+    {
+        /* REVIEW */
+#ifdef PA_USE_C99_LRINTF
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = ((float)*src * (2147483646.0f)) + dither;
+        PA_CLIP_( dithered, -2147483648.f, 2147483647.f  );
+        *dest = lrintf(dithered-0.5f);
+#else
+        double dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        double dithered = ((double)*src * (2147483646.0)) + dither;
+        PA_CLIP_( dithered, -2147483648., 2147483647.  );
+        *dest = (PaInt32) dithered;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    PaInt32 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        /* convert to 32 bit and drop the low 8 bits */
+        double scaled = *src * 0x7FFFFFFF;
+        temp = (PaInt32) scaled;
+        
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 8);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 24);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 24);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 8);
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int24_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    PaInt32 temp;
+
+    while( count-- )
+    {
+        /* convert to 32 bit and drop the low 8 bits */
+
+        double dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        double dithered = ((double)*src * (2147483646.0)) + dither;
+        
+        temp = (PaInt32) dithered;
+
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 8);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 24);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 24);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 8);
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int24_Clip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    PaInt32 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        /* convert to 32 bit and drop the low 8 bits */
+        double scaled = *src * 0x7FFFFFFF;
+        PA_CLIP_( scaled, -2147483648., 2147483647.  );
+        temp = (PaInt32) scaled;
+
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 8);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 24);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 24);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 8);
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int24_DitherClip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    PaInt32 temp;
+    
+    while( count-- )
+    {
+        /* convert to 32 bit and drop the low 8 bits */
+        
+        double dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        double dithered = ((double)*src * (2147483646.0)) + dither;
+        PA_CLIP_( dithered, -2147483648., 2147483647.  );
+        
+        temp = (PaInt32) dithered;
+
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 8);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 24);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 24);
+        dest[1] = (unsigned char)(temp >> 16);
+        dest[2] = (unsigned char)(temp >> 8);
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+#ifdef PA_USE_C99_LRINTF
+        float tempf = (*src * (32767.0f)) ;
+        *dest = lrintf(tempf-0.5f);
+#else
+        short samp = (short) (*src * (32767.0f));
+        *dest = samp;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int16_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt16 *dest = (PaInt16*)destinationBuffer;
+
+    while( count-- )
+    {
+
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = (*src * (32766.0f)) + dither;
+
+#ifdef PA_USE_C99_LRINTF
+        *dest = lrintf(dithered-0.5f);
+#else
+        *dest = (PaInt16) dithered;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int16_Clip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+#ifdef PA_USE_C99_LRINTF
+        long samp = lrintf((*src * (32767.0f)) -0.5f);
+#else
+        long samp = (PaInt32) (*src * (32767.0f));
+#endif
+        PA_CLIP_( samp, -0x8000, 0x7FFF );
+        *dest = (PaInt16) samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int16_DitherClip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = (*src * (32766.0f)) + dither;
+        PaInt32 samp = (PaInt32) dithered;
+        PA_CLIP_( samp, -0x8000, 0x7FFF );
+#ifdef PA_USE_C99_LRINTF
+        *dest = lrintf(samp-0.5f);
+#else
+        *dest = (PaInt16) samp;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        signed char samp = (signed char) (*src * (127.0f));
+        *dest = samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = (*src * (126.0f)) + dither;
+        PaInt32 samp = (PaInt32) dithered;
+        *dest = (signed char) samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int8_Clip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        PaInt32 samp = (PaInt32)(*src * (127.0f));
+        PA_CLIP_( samp, -0x80, 0x7F );
+        *dest = (signed char) samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_Int8_DitherClip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        float dither  = PaUtil_GenerateFloatTriangularDither( ditherGenerator );
+        /* use smaller scaler to prevent overflow when we add the dither */
+        float dithered = (*src * (126.0f)) + dither;
+        PaInt32 samp = (PaInt32) dithered;
+        PA_CLIP_( samp, -0x80, 0x7F );
+        *dest = (signed char) samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_UInt8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        unsigned char samp = (unsigned char)(128 + ((unsigned char) (*src * (127.0f))));
+        *dest = samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_UInt8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_UInt8_Clip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Float32_To_UInt8_DitherClip(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    float *src = (float*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Float32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    float *dest =  (float*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        *dest = (float) ((double)*src * const_1_div_2147483648_);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src    = (PaInt32*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    (void) ditherGenerator; /* unused parameter */
+    
+	while( count-- )
+    {
+		/* REVIEW */
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = (unsigned char)(*src >> 8);
+        dest[1] = (unsigned char)(*src >> 16);
+        dest[2] = (unsigned char)(*src >> 24);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(*src >> 24);
+        dest[1] = (unsigned char)(*src >> 16);
+        dest[2] = (unsigned char)(*src >> 8);
+#endif
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int24_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    (void) destinationBuffer; /* unused parameters */
+    (void) destinationStride; /* unused parameters */
+    (void) sourceBuffer; /* unused parameters */
+    (void) sourceStride; /* unused parameters */
+    (void) count; /* unused parameters */
+    (void) ditherGenerator; /* unused parameters */
+    /* IMPLEMENT ME */
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        *dest = (PaInt16) ((*src) >> 16);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int16_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    PaInt32 dither;
+
+    while( count-- )
+    {
+        /* REVIEW */
+        dither = PaUtil_Generate16BitTriangularDither( ditherGenerator );
+        *dest = (PaInt16) ((((*src)>>1) + dither) >> 15);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        *dest = (signed char) ((*src) >> 24);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_Int8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    PaInt32 dither;
+
+    while( count-- )
+    {
+        /* REVIEW */
+        dither = PaUtil_Generate16BitTriangularDither( ditherGenerator );
+        *dest = (signed char) ((((*src)>>1) + dither) >> 23);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_UInt8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+		(*dest) = (unsigned char)(((*src) >> 24) + 128); 
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int32_To_UInt8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt32 *src = (PaInt32*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Float32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    float *dest = (float*)destinationBuffer;
+    PaInt32 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+
+#if defined(PA_LITTLE_ENDIAN)
+        temp = (((long)src[0]) << 8);  
+        temp = temp | (((long)src[1]) << 16);
+        temp = temp | (((long)src[2]) << 24);
+#elif defined(PA_BIG_ENDIAN)
+        temp = (((long)src[0]) << 24);
+        temp = temp | (((long)src[1]) << 16);
+        temp = temp | (((long)src[2]) << 8);
+#endif
+
+        *dest = (float) ((double)temp * const_1_div_2147483648_);
+
+        src += sourceStride * 3;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Int32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src  = (unsigned char*)sourceBuffer;
+    PaInt32 *dest = (PaInt32*)  destinationBuffer;
+    PaInt32 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+
+#if defined(PA_LITTLE_ENDIAN)
+        temp = (((long)src[0]) << 8);  
+        temp = temp | (((long)src[1]) << 16);
+        temp = temp | (((long)src[2]) << 24);
+#elif defined(PA_BIG_ENDIAN)
+        temp = (((long)src[0]) << 24);
+        temp = temp | (((long)src[1]) << 16);
+        temp = temp | (((long)src[2]) << 8);
+#endif
+
+        *dest = temp;
+
+        src += sourceStride * 3;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Int16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    PaInt16 *dest = (PaInt16*)destinationBuffer;
+    
+    PaInt16 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+        
+    while( count-- )
+    {
+		
+#if defined(PA_LITTLE_ENDIAN)
+		/* src[0] is discarded */
+        temp = (((PaInt16)src[1]));
+        temp = temp | (PaInt16)(((PaInt16)src[2]) << 8);
+#elif defined(PA_BIG_ENDIAN)
+		/* src[2] is discarded */
+        temp = (PaInt16)(((PaInt16)src[0]) << 8);
+        temp = temp | (((PaInt16)src[1]));
+#endif
+
+        *dest = temp;
+
+        src += sourceStride * 3;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Int16_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    (void) destinationBuffer; /* unused parameters */
+    (void) destinationStride; /* unused parameters */
+    (void) sourceBuffer; /* unused parameters */
+    (void) sourceStride; /* unused parameters */
+    (void) count; /* unused parameters */
+    (void) ditherGenerator; /* unused parameters */
+    /* IMPLEMENT ME */
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Int8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    signed char  *dest = (signed char*)destinationBuffer;
+    
+    (void) ditherGenerator; /* unused parameter */
+        
+    while( count-- )
+    {	
+	
+#if defined(PA_LITTLE_ENDIAN)
+		/* src[0] is discarded */
+		/* src[1] is discarded */
+        *dest = src[2];
+#elif defined(PA_BIG_ENDIAN)
+		/* src[2] is discarded */
+		/* src[1] is discarded */
+		*dest = src[0];
+#endif
+
+        src += sourceStride * 3;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_Int8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    (void) destinationBuffer; /* unused parameters */
+    (void) destinationStride; /* unused parameters */
+    (void) sourceBuffer; /* unused parameters */
+    (void) sourceStride; /* unused parameters */
+    (void) count; /* unused parameters */
+    (void) ditherGenerator; /* unused parameters */
+    /* IMPLEMENT ME */
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_UInt8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    
+    (void) ditherGenerator; /* unused parameter */
+        
+    while( count-- )
+    {
+		
+#if defined(PA_LITTLE_ENDIAN)
+		/* src[0] is discarded */
+		/* src[1] is discarded */
+        *dest = (unsigned char)(src[2] + 128);
+#elif defined(PA_BIG_ENDIAN)
+        *dest = (unsigned char)(src[0] + 128);
+		/* src[1] is discarded */
+		/* src[2] is discarded */		
+#endif
+
+        src += sourceStride * 3;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int24_To_UInt8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    (void) destinationBuffer; /* unused parameters */
+    (void) destinationStride; /* unused parameters */
+    (void) sourceBuffer; /* unused parameters */
+    (void) sourceStride; /* unused parameters */
+    (void) count; /* unused parameters */
+    (void) ditherGenerator; /* unused parameters */
+    /* IMPLEMENT ME */
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_Float32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    float *dest =  (float*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        float samp = *src * const_1_div_32768_; /* FIXME: i'm concerned about this being asymetrical with float->int16 -rb */
+        *dest = samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_Int32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* REVIEW: we should consider something like
+            (*src << 16) | (*src & 0xFFFF)
+        */
+        
+        *dest = *src << 16;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_Int24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src   = (PaInt16*) sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    PaInt16 temp;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        temp = *src;
+        
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = 0;
+        dest[1] = (unsigned char)(temp);
+        dest[2] = (unsigned char)(temp >> 8);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(temp >> 8);
+        dest[1] = (unsigned char)(temp);
+        dest[2] = 0;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_Int8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        (*dest) = (signed char)((*src) >> 8);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_Int8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    signed char *dest =  (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_UInt8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+		(*dest) = (unsigned char)(((*src) >> 8) + 128); 
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int16_To_UInt8_Dither(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaInt16 *src = (PaInt16*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        /* IMPLEMENT ME */
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int8_To_Float32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    signed char *src = (signed char*)sourceBuffer;
+    float *dest =  (float*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        float samp = *src * const_1_div_128_;
+        *dest = samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int8_To_Int32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    signed char *src = (signed char*)sourceBuffer;
+    PaInt32 *dest =  (PaInt32*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+		(*dest) = (*src) << 24;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int8_To_Int24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    signed char *src = (signed char*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = 0;
+        dest[1] = 0;
+        dest[2] = (*src);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (*src);
+        dest[1] = 0;
+        dest[2] = 0;
+#endif
+
+        src += sourceStride;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int8_To_Int16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    signed char *src = (signed char*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        (*dest) = (PaInt16)((*src) << 8);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Int8_To_UInt8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    signed char *src = (signed char*)sourceBuffer;
+    unsigned char *dest =  (unsigned char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        (*dest) = (unsigned char)(*src + 128);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void UInt8_To_Float32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    float *dest =  (float*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        float samp = (*src - 128) * const_1_div_128_;
+        *dest = samp;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void UInt8_To_Int32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    PaInt32 *dest = (PaInt32*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+		(*dest) = (*src - 128) << 24;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void UInt8_To_Int24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+	unsigned char *src  = (unsigned char*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+    (void) ditherGenerator; /* unused parameters */
+    
+	while( count-- )
+    {
+
+#if defined(PA_LITTLE_ENDIAN)
+        dest[0] = 0;
+        dest[1] = 0;
+        dest[2] = (unsigned char)(*src - 128);
+#elif defined(PA_BIG_ENDIAN)
+        dest[0] = (unsigned char)(*src - 128);
+        dest[1] = 0;
+        dest[2] = 0;
+#endif
+		
+        src += sourceStride;
+        dest += destinationStride * 3;    
+	}
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void UInt8_To_Int16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    PaInt16 *dest =  (PaInt16*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        (*dest) = (PaInt16)((*src - 128) << 8);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void UInt8_To_Int8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    signed char  *dest = (signed char*)destinationBuffer;
+    (void)ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        (*dest) = (signed char)(*src - 128);
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Copy_8_To_8(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+                                                      
+    (void) ditherGenerator; /* unused parameter */
+
+    while( count-- )
+    {
+        *dest = *src;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Copy_16_To_16(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaUint16 *src = (PaUint16 *)sourceBuffer;
+    PaUint16 *dest = (PaUint16 *)destinationBuffer;
+                                                        
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        *dest = *src;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Copy_24_To_24(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    unsigned char *src = (unsigned char*)sourceBuffer;
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        dest[0] = src[0];
+        dest[1] = src[1];
+        dest[2] = src[2];
+
+        src += sourceStride * 3;
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Copy_32_To_32(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator )
+{
+    PaUint32 *dest = (PaUint32 *)destinationBuffer;
+    PaUint32 *src = (PaUint32 *)sourceBuffer;
+
+    (void) ditherGenerator; /* unused parameter */
+    
+    while( count-- )
+    {
+        *dest = *src;
+
+        src += sourceStride;
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilConverterTable paConverters = {
+    Float32_To_Int32,              /* PaUtilConverter *Float32_To_Int32; */
+    Float32_To_Int32_Dither,       /* PaUtilConverter *Float32_To_Int32_Dither; */
+    Float32_To_Int32_Clip,         /* PaUtilConverter *Float32_To_Int32_Clip; */
+    Float32_To_Int32_DitherClip,   /* PaUtilConverter *Float32_To_Int32_DitherClip; */
+
+    Float32_To_Int24,              /* PaUtilConverter *Float32_To_Int24; */
+    Float32_To_Int24_Dither,       /* PaUtilConverter *Float32_To_Int24_Dither; */
+    Float32_To_Int24_Clip,         /* PaUtilConverter *Float32_To_Int24_Clip; */
+    Float32_To_Int24_DitherClip,   /* PaUtilConverter *Float32_To_Int24_DitherClip; */
+    
+    Float32_To_Int16,              /* PaUtilConverter *Float32_To_Int16; */
+    Float32_To_Int16_Dither,       /* PaUtilConverter *Float32_To_Int16_Dither; */
+    Float32_To_Int16_Clip,         /* PaUtilConverter *Float32_To_Int16_Clip; */
+    Float32_To_Int16_DitherClip,   /* PaUtilConverter *Float32_To_Int16_DitherClip; */
+
+    Float32_To_Int8,               /* PaUtilConverter *Float32_To_Int8; */
+    Float32_To_Int8_Dither,        /* PaUtilConverter *Float32_To_Int8_Dither; */
+    Float32_To_Int8_Clip,          /* PaUtilConverter *Float32_To_Int8_Clip; */
+    Float32_To_Int8_DitherClip,    /* PaUtilConverter *Float32_To_Int8_DitherClip; */
+
+    Float32_To_UInt8,              /* PaUtilConverter *Float32_To_UInt8; */
+    Float32_To_UInt8_Dither,       /* PaUtilConverter *Float32_To_UInt8_Dither; */
+    Float32_To_UInt8_Clip,         /* PaUtilConverter *Float32_To_UInt8_Clip; */
+    Float32_To_UInt8_DitherClip,   /* PaUtilConverter *Float32_To_UInt8_DitherClip; */
+
+    Int32_To_Float32,              /* PaUtilConverter *Int32_To_Float32; */
+    Int32_To_Int24,                /* PaUtilConverter *Int32_To_Int24; */
+    Int32_To_Int24_Dither,         /* PaUtilConverter *Int32_To_Int24_Dither; */
+    Int32_To_Int16,                /* PaUtilConverter *Int32_To_Int16; */
+    Int32_To_Int16_Dither,         /* PaUtilConverter *Int32_To_Int16_Dither; */
+    Int32_To_Int8,                 /* PaUtilConverter *Int32_To_Int8; */
+    Int32_To_Int8_Dither,          /* PaUtilConverter *Int32_To_Int8_Dither; */
+    Int32_To_UInt8,                /* PaUtilConverter *Int32_To_UInt8; */
+    Int32_To_UInt8_Dither,         /* PaUtilConverter *Int32_To_UInt8_Dither; */
+
+    Int24_To_Float32,              /* PaUtilConverter *Int24_To_Float32; */
+    Int24_To_Int32,                /* PaUtilConverter *Int24_To_Int32; */
+    Int24_To_Int16,                /* PaUtilConverter *Int24_To_Int16; */
+    Int24_To_Int16_Dither,         /* PaUtilConverter *Int24_To_Int16_Dither; */
+    Int24_To_Int8,                 /* PaUtilConverter *Int24_To_Int8; */
+    Int24_To_Int8_Dither,          /* PaUtilConverter *Int24_To_Int8_Dither; */
+    Int24_To_UInt8,                /* PaUtilConverter *Int24_To_UInt8; */
+    Int24_To_UInt8_Dither,         /* PaUtilConverter *Int24_To_UInt8_Dither; */
+
+    Int16_To_Float32,              /* PaUtilConverter *Int16_To_Float32; */
+    Int16_To_Int32,                /* PaUtilConverter *Int16_To_Int32; */
+    Int16_To_Int24,                /* PaUtilConverter *Int16_To_Int24; */
+    Int16_To_Int8,                 /* PaUtilConverter *Int16_To_Int8; */
+    Int16_To_Int8_Dither,          /* PaUtilConverter *Int16_To_Int8_Dither; */
+    Int16_To_UInt8,                /* PaUtilConverter *Int16_To_UInt8; */
+    Int16_To_UInt8_Dither,         /* PaUtilConverter *Int16_To_UInt8_Dither; */
+
+    Int8_To_Float32,               /* PaUtilConverter *Int8_To_Float32; */
+    Int8_To_Int32,                 /* PaUtilConverter *Int8_To_Int32; */
+    Int8_To_Int24,                 /* PaUtilConverter *Int8_To_Int24 */
+    Int8_To_Int16,                 /* PaUtilConverter *Int8_To_Int16; */
+    Int8_To_UInt8,                 /* PaUtilConverter *Int8_To_UInt8; */
+
+    UInt8_To_Float32,              /* PaUtilConverter *UInt8_To_Float32; */
+    UInt8_To_Int32,                /* PaUtilConverter *UInt8_To_Int32; */
+    UInt8_To_Int24,                /* PaUtilConverter *UInt8_To_Int24; */
+    UInt8_To_Int16,                /* PaUtilConverter *UInt8_To_Int16; */
+    UInt8_To_Int8,                 /* PaUtilConverter *UInt8_To_Int8; */
+
+    Copy_8_To_8,                   /* PaUtilConverter *Copy_8_To_8; */
+    Copy_16_To_16,                 /* PaUtilConverter *Copy_16_To_16; */
+    Copy_24_To_24,                 /* PaUtilConverter *Copy_24_To_24; */
+    Copy_32_To_32                  /* PaUtilConverter *Copy_32_To_32; */
+};
+
+/* -------------------------------------------------------------------------- */
+
+#endif /* PA_NO_STANDARD_CONVERTERS */
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilZeroer* PaUtil_SelectZeroer( PaSampleFormat destinationFormat )
+{
+    switch( destinationFormat & ~paNonInterleaved ){
+    case paFloat32:
+        return paZeroers.Zero32;
+    case paInt32:
+        return paZeroers.Zero32;
+    case paInt24:
+        return paZeroers.Zero24;
+    case paInt16:
+        return paZeroers.Zero16;
+    case paInt8:
+        return paZeroers.Zero8;
+    case paUInt8:
+        return paZeroers.ZeroU8;
+    default: return 0;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+#ifdef PA_NO_STANDARD_ZEROERS
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilZeroerTable paZeroers = {
+    0,  /* PaUtilZeroer *ZeroU8; */
+    0,  /* PaUtilZeroer *Zero8; */
+    0,  /* PaUtilZeroer *Zero16; */
+    0,  /* PaUtilZeroer *Zero24; */
+    0,  /* PaUtilZeroer *Zero32; */
+};
+
+/* -------------------------------------------------------------------------- */
+
+#else /* PA_NO_STANDARD_ZEROERS is not defined */
+
+/* -------------------------------------------------------------------------- */
+
+static void ZeroU8( void *destinationBuffer, signed int destinationStride,
+        unsigned int count )
+{
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+
+    while( count-- )
+    {
+        *dest = 128;
+
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Zero8( void *destinationBuffer, signed int destinationStride,
+        unsigned int count )
+{
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+
+    while( count-- )
+    {
+        *dest = 0;
+
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Zero16( void *destinationBuffer, signed int destinationStride,
+        unsigned int count )
+{
+    PaUint16 *dest = (PaUint16 *)destinationBuffer;
+
+    while( count-- )
+    {
+        *dest = 0;
+
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Zero24( void *destinationBuffer, signed int destinationStride,
+        unsigned int count )
+{
+    unsigned char *dest = (unsigned char*)destinationBuffer;
+
+    while( count-- )
+    {
+        dest[0] = 0;
+        dest[1] = 0;
+        dest[2] = 0;
+
+        dest += destinationStride * 3;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+static void Zero32( void *destinationBuffer, signed int destinationStride,
+        unsigned int count )
+{
+    PaUint32 *dest = (PaUint32 *)destinationBuffer;
+
+    while( count-- )
+    {
+        *dest = 0;
+
+        dest += destinationStride;
+    }
+}
+
+/* -------------------------------------------------------------------------- */
+
+PaUtilZeroerTable paZeroers = {
+    ZeroU8,  /* PaUtilZeroer *ZeroU8; */
+    Zero8,  /* PaUtilZeroer *Zero8; */
+    Zero16,  /* PaUtilZeroer *Zero16; */
+    Zero24,  /* PaUtilZeroer *Zero24; */
+    Zero32,  /* PaUtilZeroer *Zero32; */
+};
+
+/* -------------------------------------------------------------------------- */
+
+#endif /* PA_NO_STANDARD_ZEROERS */
diff --git a/external/portaudio2007/pa_converters.h b/external/portaudio2007/pa_converters.h
new file mode 100644
index 0000000..7ddfcaa
--- /dev/null
+++ b/external/portaudio2007/pa_converters.h
@@ -0,0 +1,263 @@
+#ifndef PA_CONVERTERS_H
+#define PA_CONVERTERS_H
+/*
+ * $Id: pa_converters.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library sample conversion mechanism
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Conversion functions used to convert buffers of samples from one
+ format to another.
+*/
+
+
+#include "portaudio.h"  /* for PaSampleFormat */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+struct PaUtilTriangularDitherGenerator;
+
+
+/** Choose an available sample format which is most appropriate for
+ representing the requested format. If the requested format is not available
+ higher quality formats are considered before lower quality formates.
+ @param availableFormats A variable containing the logical OR of all available
+ formats.
+ @param format The desired format.
+ @return The most appropriate available format for representing the requested
+ format.
+*/
+PaSampleFormat PaUtil_SelectClosestAvailableFormat(
+        PaSampleFormat availableFormats, PaSampleFormat format );
+
+
+/* high level conversions functions for use by implementations */
+
+
+/** The generic sample converter prototype. Sample converters convert count
+    samples from sourceBuffer to destinationBuffer. The actual type of the data
+    pointed to by these parameters varys for different converter functions.
+    @param destinationBuffer A pointer to the first sample of the destination.
+    @param destinationStride An offset between successive destination samples
+    expressed in samples (not bytes.) It may be negative.
+    @param sourceBuffer A pointer to the first sample of the source.
+    @param sourceStride An offset between successive source samples
+    expressed in samples (not bytes.) It may be negative.
+    @param count The number of samples to convert.
+    @param ditherState State information used to calculate dither. Converters
+    that do not perform dithering will ignore this parameter, in which case
+    NULL or invalid dither state may be passed.
+*/
+typedef void PaUtilConverter(
+    void *destinationBuffer, signed int destinationStride,
+    void *sourceBuffer, signed int sourceStride,
+    unsigned int count, struct PaUtilTriangularDitherGenerator *ditherGenerator );
+
+
+/** Find a sample converter function for the given source and destinations
+    formats and flags (clip and dither.)
+    @return
+    A pointer to a PaUtilConverter which will perform the requested
+    conversion, or NULL if the given format conversion is not supported.
+    For conversions where clipping or dithering is not necessary, the
+    clip and dither flags are ignored and a non-clipping or dithering
+    version is returned.
+    If the source and destination formats are the same, a function which
+    copies data of the appropriate size will be returned.
+*/
+PaUtilConverter* PaUtil_SelectConverter( PaSampleFormat sourceFormat,
+        PaSampleFormat destinationFormat, PaStreamFlags flags );
+
+
+/** The generic buffer zeroer prototype. Buffer zeroers copy count zeros to
+    destinationBuffer. The actual type of the data pointed to varys for
+    different zeroer functions.
+    @param destinationBuffer A pointer to the first sample of the destination.
+    @param destinationStride An offset between successive destination samples
+    expressed in samples (not bytes.) It may be negative.
+    @param count The number of samples to zero.
+*/
+typedef void PaUtilZeroer(
+    void *destinationBuffer, signed int destinationStride, unsigned int count );
+
+    
+/** Find a buffer zeroer function for the given destination format.
+    @return
+    A pointer to a PaUtilZeroer which will perform the requested
+    zeroing.
+*/
+PaUtilZeroer* PaUtil_SelectZeroer( PaSampleFormat destinationFormat );
+
+/*----------------------------------------------------------------------------*/
+/* low level functions and data structures which may be used for
+    substituting conversion functions */
+
+
+/** The type used to store all sample conversion functions.
+    @see paConverters;
+*/
+typedef struct{
+    PaUtilConverter *Float32_To_Int32;
+    PaUtilConverter *Float32_To_Int32_Dither;
+    PaUtilConverter *Float32_To_Int32_Clip;
+    PaUtilConverter *Float32_To_Int32_DitherClip;
+
+    PaUtilConverter *Float32_To_Int24;
+    PaUtilConverter *Float32_To_Int24_Dither;
+    PaUtilConverter *Float32_To_Int24_Clip;
+    PaUtilConverter *Float32_To_Int24_DitherClip;
+    
+    PaUtilConverter *Float32_To_Int16;
+    PaUtilConverter *Float32_To_Int16_Dither;
+    PaUtilConverter *Float32_To_Int16_Clip;
+    PaUtilConverter *Float32_To_Int16_DitherClip;
+
+    PaUtilConverter *Float32_To_Int8;
+    PaUtilConverter *Float32_To_Int8_Dither;
+    PaUtilConverter *Float32_To_Int8_Clip;
+    PaUtilConverter *Float32_To_Int8_DitherClip;
+
+    PaUtilConverter *Float32_To_UInt8;
+    PaUtilConverter *Float32_To_UInt8_Dither;
+    PaUtilConverter *Float32_To_UInt8_Clip;
+    PaUtilConverter *Float32_To_UInt8_DitherClip;
+
+    PaUtilConverter *Int32_To_Float32;
+    PaUtilConverter *Int32_To_Int24;
+    PaUtilConverter *Int32_To_Int24_Dither;
+    PaUtilConverter *Int32_To_Int16;
+    PaUtilConverter *Int32_To_Int16_Dither;
+    PaUtilConverter *Int32_To_Int8;
+    PaUtilConverter *Int32_To_Int8_Dither;
+    PaUtilConverter *Int32_To_UInt8;
+    PaUtilConverter *Int32_To_UInt8_Dither;
+
+    PaUtilConverter *Int24_To_Float32;
+    PaUtilConverter *Int24_To_Int32;
+    PaUtilConverter *Int24_To_Int16;
+    PaUtilConverter *Int24_To_Int16_Dither;
+    PaUtilConverter *Int24_To_Int8;
+    PaUtilConverter *Int24_To_Int8_Dither;
+    PaUtilConverter *Int24_To_UInt8;
+    PaUtilConverter *Int24_To_UInt8_Dither;
+
+    PaUtilConverter *Int16_To_Float32;
+    PaUtilConverter *Int16_To_Int32;
+    PaUtilConverter *Int16_To_Int24;
+    PaUtilConverter *Int16_To_Int8;
+    PaUtilConverter *Int16_To_Int8_Dither;
+    PaUtilConverter *Int16_To_UInt8;
+    PaUtilConverter *Int16_To_UInt8_Dither;
+
+    PaUtilConverter *Int8_To_Float32;
+    PaUtilConverter *Int8_To_Int32;
+    PaUtilConverter *Int8_To_Int24;
+    PaUtilConverter *Int8_To_Int16;
+    PaUtilConverter *Int8_To_UInt8;
+    
+    PaUtilConverter *UInt8_To_Float32;
+    PaUtilConverter *UInt8_To_Int32;
+    PaUtilConverter *UInt8_To_Int24;
+    PaUtilConverter *UInt8_To_Int16;
+    PaUtilConverter *UInt8_To_Int8;
+
+    PaUtilConverter *Copy_8_To_8;       /* copy without any conversion */
+    PaUtilConverter *Copy_16_To_16;     /* copy without any conversion */
+    PaUtilConverter *Copy_24_To_24;     /* copy without any conversion */
+    PaUtilConverter *Copy_32_To_32;     /* copy without any conversion */
+} PaUtilConverterTable;
+
+
+/** A table of pointers to all required converter functions.
+    PaUtil_SelectConverter() uses this table to lookup the appropriate
+    conversion functions. The fields of this structure are initialized
+    with default conversion functions. Fields may be NULL, indicating that
+    no conversion function is available. User code may substitue optimised
+    conversion functions by assigning different function pointers to
+    these fields.
+
+    @note
+    If the PA_NO_STANDARD_CONVERTERS preprocessor variable is defined,
+    PortAudio's standard converters will not be compiled, and all fields
+    of this structure will be initialized to NULL. In such cases, users
+    should supply their own conversion functions if the require PortAudio
+    to open a stream that requires sample conversion.
+
+    @see PaUtilConverterTable, PaUtilConverter, PaUtil_SelectConverter
+*/
+extern PaUtilConverterTable paConverters;
+
+
+/** The type used to store all buffer zeroing functions.
+    @see paZeroers;
+*/
+typedef struct{
+    PaUtilZeroer *ZeroU8; /* unsigned 8 bit, zero == 128 */
+    PaUtilZeroer *Zero8;
+    PaUtilZeroer *Zero16;
+    PaUtilZeroer *Zero24;
+    PaUtilZeroer *Zero32;
+} PaUtilZeroerTable;
+
+
+/** A table of pointers to all required zeroer functions.
+    PaUtil_SelectZeroer() uses this table to lookup the appropriate
+    conversion functions. The fields of this structure are initialized
+    with default conversion functions. User code may substitue optimised
+    conversion functions by assigning different function pointers to
+    these fields.
+
+    @note
+    If the PA_NO_STANDARD_ZEROERS preprocessor variable is defined,
+    PortAudio's standard zeroers will not be compiled, and all fields
+    of this structure will be initialized to NULL. In such cases, users
+    should supply their own zeroing functions for the sample sizes which
+    they intend to use.
+
+    @see PaUtilZeroerTable, PaUtilZeroer, PaUtil_SelectZeroer
+*/
+extern PaUtilZeroerTable paZeroers;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_CONVERTERS_H */
diff --git a/external/portaudio2007/pa_cpuload.c b/external/portaudio2007/pa_cpuload.c
new file mode 100644
index 0000000..445503c
--- /dev/null
+++ b/external/portaudio2007/pa_cpuload.c
@@ -0,0 +1,105 @@
+/*
+ * $Id: pa_cpuload.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library CPU Load measurement functions
+ * Portable CPU load measurement facility.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 2002 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Functions to assist in measuring the CPU utilization of a callback
+ stream. Used to implement the Pa_GetStreamCpuLoad() function.
+
+ @todo Dynamically calculate the coefficients used to smooth the CPU Load
+ Measurements over time to provide a uniform characterisation of CPU Load
+ independent of rate at which PaUtil_BeginCpuLoadMeasurement /
+ PaUtil_EndCpuLoadMeasurement are called.
+*/
+
+
+#include "pa_cpuload.h"
+
+#include <assert.h>
+
+#include "pa_util.h"   /* for PaUtil_GetTime() */
+
+
+void PaUtil_InitializeCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer, double sampleRate )
+{
+    assert( sampleRate > 0 );
+
+    measurer->samplingPeriod = 1. / sampleRate;
+    measurer->averageLoad = 0.;
+}
+
+void PaUtil_ResetCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer )
+{
+    measurer->averageLoad = 0.;
+}
+
+void PaUtil_BeginCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer )
+{
+    measurer->measurementStartTime = PaUtil_GetTime();
+}
+
+
+void PaUtil_EndCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer, unsigned long framesProcessed )
+{
+    double measurementEndTime, secondsFor100Percent, measuredLoad;
+
+    if( framesProcessed > 0 ){
+        measurementEndTime = PaUtil_GetTime();
+
+        assert( framesProcessed > 0 );
+        secondsFor100Percent = framesProcessed * measurer->samplingPeriod;
+
+        measuredLoad = (measurementEndTime - measurer->measurementStartTime) / secondsFor100Percent;
+
+        /* Low pass filter the calculated CPU load to reduce jitter using a simple IIR low pass filter. */
+        /** FIXME @todo these coefficients shouldn't be hardwired */
+#define LOWPASS_COEFFICIENT_0   (0.9)
+#define LOWPASS_COEFFICIENT_1   (0.99999 - LOWPASS_COEFFICIENT_0)
+
+        measurer->averageLoad = (LOWPASS_COEFFICIENT_0 * measurer->averageLoad) +
+                               (LOWPASS_COEFFICIENT_1 * measuredLoad);
+    }
+}
+
+
+double PaUtil_GetCpuLoad( PaUtilCpuLoadMeasurer* measurer )
+{
+    return measurer->averageLoad;
+}
diff --git a/external/portaudio2007/pa_cpuload.h b/external/portaudio2007/pa_cpuload.h
new file mode 100644
index 0000000..4a59443
--- /dev/null
+++ b/external/portaudio2007/pa_cpuload.h
@@ -0,0 +1,72 @@
+#ifndef PA_CPULOAD_H
+#define PA_CPULOAD_H
+/*
+ * $Id: pa_cpuload.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library CPU Load measurement functions
+ * Portable CPU load measurement facility.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 2002 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Functions to assist in measuring the CPU utilization of a callback
+ stream. Used to implement the Pa_GetStreamCpuLoad() function.
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+typedef struct {
+    double samplingPeriod;
+    double measurementStartTime;
+    double averageLoad;
+} PaUtilCpuLoadMeasurer; /**< @todo need better name than measurer */
+
+void PaUtil_InitializeCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer, double sampleRate );
+void PaUtil_BeginCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer );
+void PaUtil_EndCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer, unsigned long framesProcessed );
+void PaUtil_ResetCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer );
+double PaUtil_GetCpuLoad( PaUtilCpuLoadMeasurer* measurer );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */     
+#endif /* PA_CPULOAD_H */
diff --git a/external/portaudio2007/pa_debugprint.c b/external/portaudio2007/pa_debugprint.c
new file mode 100644
index 0000000..b788151
--- /dev/null
+++ b/external/portaudio2007/pa_debugprint.c
@@ -0,0 +1,107 @@
+/*
+ * $Id: pa_log.c $
+ * Portable Audio I/O Library Multi-Host API front end
+ * Validate function parameters and manage multiple host APIs.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2006 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however,
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also
+ * requested that these non-binding requests be included along with the
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Implements log function.
+
+    PaUtil_SetLogPrintFunction can be user called to replace the provided
+	DefaultLogPrint function, which writes to stderr.
+	One can NOT pass var_args across compiler/dll boundaries as it is not
+	"byte code/abi portable". So the technique used here is to allocate a local
+	a static array, write in it, then callback the user with a pointer to its
+	start.
+
+    @todo Consider allocating strdump using dynamic allocation.
+    @todo Consider reentrancy and possibly corrupted strdump buffer.
+*/
+
+
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "pa_debugprint.h"
+
+
+
+static PaUtilLogCallback userCB=0;
+
+
+void PaUtil_SetDebugPrintFunction(PaUtilLogCallback cb)
+{
+    userCB = cb;
+}
+
+/*
+ If your platform doesn�t have vsnprintf, you are stuck with a
+ VERY dangerous alternative, vsprintf (with no n)
+ */
+
+#if (_MSC_VER) && (_MSC_VER <= 1400)
+#define VSNPRINTF  _vsnprintf
+#else
+#define VSNPRINTF  vsnprintf
+#endif
+
+#define SIZEDUMP 1024
+
+static char strdump[SIZEDUMP];
+
+void PaUtil_DebugPrint( const char *format, ... )
+{
+
+    if (userCB)
+    {
+        va_list ap;
+        va_start( ap, format );
+        VSNPRINTF( strdump, SIZEDUMP, format, ap );
+        userCB(strdump);
+        va_end( ap ); 
+    }
+    else
+    {
+        va_list ap;
+        va_start( ap, format );
+        vfprintf( stderr, format, ap );
+        va_end( ap );
+        fflush( stderr );
+    }
+
+}
diff --git a/external/portaudio2007/pa_debugprint.h b/external/portaudio2007/pa_debugprint.h
new file mode 100644
index 0000000..f333add
--- /dev/null
+++ b/external/portaudio2007/pa_debugprint.h
@@ -0,0 +1,149 @@
+#ifndef PA_LOG_H
+#define PA_LOG_H
+/*
+ * Log file redirector function
+ * Copyright (c) 1999-2006 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however,
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also
+ * requested that these non-binding requests be included along with the
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+
+void PaUtil_DebugPrint( const char *format, ... );
+
+
+/*
+    The basic format for log messages is described below. If you need to
+    add any log messages, please follow this format.
+
+    Function entry (void function):
+
+        "FunctionName called.\n"
+
+    Function entry (non void function):
+
+        "FunctionName called:\n"
+        "\tParam1Type param1: param1Value\n"
+        "\tParam2Type param2: param2Value\n"      (etc...)
+
+
+    Function exit (no return value):
+
+        "FunctionName returned.\n"
+
+    Function exit (simple return value):
+
+        "FunctionName returned:\n"
+        "\tReturnType: returnValue\n"
+
+    If the return type is an error code, the error text is displayed in ()
+
+    If the return type is not an error code, but has taken a special value
+    because an error occurred, then the reason for the error is shown in []
+
+    If the return type is a struct ptr, the struct is dumped.
+
+    See the code below for examples
+*/
+
+/** PA_DEBUG() provides a simple debug message printing facility. The macro
+ passes it's argument to a printf-like function called PaUtil_DebugPrint()
+ which prints to stderr and always flushes the stream after printing.
+ Because preprocessor macros cannot directly accept variable length argument
+ lists, calls to the macro must include an additional set of parenthesis, eg:
+ PA_DEBUG(("errorno: %d", 1001 ));
+*/
+
+
+#ifdef PA_ENABLE_DEBUG_OUTPUT
+#define PA_DEBUG(x) PaUtil_DebugPrint x ;
+#else
+#define PA_DEBUG(x)
+#endif
+
+
+#ifdef PA_LOG_API_CALLS
+#define PA_LOGAPI(x) PaUtil_DebugPrint x 
+
+#define PA_LOGAPI_ENTER(functionName) PaUtil_DebugPrint( functionName " called.\n" )
+
+#define PA_LOGAPI_ENTER_PARAMS(functionName) PaUtil_DebugPrint( functionName " called:\n" )
+
+#define PA_LOGAPI_EXIT(functionName) PaUtil_DebugPrint( functionName " returned.\n" )
+
+#define PA_LOGAPI_EXIT_PAERROR( functionName, result ) \
+	PaUtil_DebugPrint( functionName " returned:\n" ); \
+	PaUtil_DebugPrint("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) )
+
+#define PA_LOGAPI_EXIT_T( functionName, resultFormatString, result ) \
+	PaUtil_DebugPrint( functionName " returned:\n" ); \
+	PaUtil_DebugPrint("\t" resultFormatString "\n", result )
+
+#define PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( functionName, positiveResultFormatString, result ) \
+	PaUtil_DebugPrint( functionName " returned:\n" ); \
+	if( result > 0 ) \
+        PaUtil_DebugPrint("\t" positiveResultFormatString "\n", result ); \
+    else \
+        PaUtil_DebugPrint("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) )
+#else
+#define PA_LOGAPI(x)
+#define PA_LOGAPI_ENTER(functionName)
+#define PA_LOGAPI_ENTER_PARAMS(functionName)
+#define PA_LOGAPI_EXIT(functionName)
+#define PA_LOGAPI_EXIT_PAERROR( functionName, result )
+#define PA_LOGAPI_EXIT_T( functionName, resultFormatString, result )
+#define PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( functionName, positiveResultFormatString, result )
+#endif
+
+    
+typedef void (*PaUtilLogCallback ) (const char *log);
+
+/**
+    Install user provided log function
+*/
+void PaUtil_SetDebugPrintFunction(PaUtilLogCallback  cb);
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_LOG_H */
diff --git a/external/portaudio2007/pa_dither.c b/external/portaudio2007/pa_dither.c
new file mode 100644
index 0000000..f5bdcb6
--- /dev/null
+++ b/external/portaudio2007/pa_dither.c
@@ -0,0 +1,215 @@
+/*
+ * $Id: pa_dither.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library triangular dither generator
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Functions for generating dither noise
+ 
+ Paul Boersma 2013: corrected for sizeof(long)
+*/
+
+
+#include "pa_dither.h"
+#include "pa_types.h"
+
+#define PA_DITHER_BITS_   (15)
+
+
+void PaUtil_InitializeTriangularDitherState( PaUtilTriangularDitherGenerator *state )
+{
+    state->previous = 0;
+    state->randSeed1 = 22222;
+    state->randSeed2 = 5555555;
+}
+
+
+signed long PaUtil_Generate16BitTriangularDither( PaUtilTriangularDitherGenerator *state )
+{
+    signed long current, highPass;
+
+    /* Generate two random numbers. */
+    state->randSeed1 = (state->randSeed1 * 196314165) + 907633515;
+    state->randSeed2 = (state->randSeed2 * 196314165) + 907633515;
+
+    /* Generate triangular distribution about 0.
+     * Shift before adding to prevent overflow which would skew the distribution.
+     * Also shift an extra bit for the high pass filter. 
+     */
+#define DITHER_SHIFT_  ((sizeof(long)*8 - PA_DITHER_BITS_) + 1)
+    current = (((signed long)state->randSeed1)>>DITHER_SHIFT_) +
+              (((signed long)state->randSeed2)>>DITHER_SHIFT_);
+
+    /* High pass filter to reduce audibility. */
+    highPass = current - state->previous;
+    state->previous = current;
+    return highPass;
+}
+
+
+/* Multiply by PA_FLOAT_DITHER_SCALE_ to get a float between -2.0 and +1.99999 */
+#define PA_FLOAT_DITHER_SCALE_  (1.0f / ((1<<PA_DITHER_BITS_)-1))
+static const float const_float_dither_scale_ = PA_FLOAT_DITHER_SCALE_;
+
+float PaUtil_GenerateFloatTriangularDither( PaUtilTriangularDitherGenerator *state )
+{
+    signed long current, highPass;
+
+    /* Generate two random numbers. */
+    state->randSeed1 = (state->randSeed1 * 196314165) + 907633515;
+    state->randSeed2 = (state->randSeed2 * 196314165) + 907633515;
+
+    /* Generate triangular distribution about 0.
+     * Shift before adding to prevent overflow which would skew the distribution.
+     * Also shift an extra bit for the high pass filter. 
+     */
+#define DITHER_SHIFT_  ((sizeof(long)*8 - PA_DITHER_BITS_) + 1)
+    current = (((signed long)state->randSeed1)>>DITHER_SHIFT_) +
+              (((signed long)state->randSeed2)>>DITHER_SHIFT_);
+
+    /* High pass filter to reduce audibility. */
+    highPass = current - state->previous;
+    state->previous = current;
+    return ((float)highPass) * const_float_dither_scale_;
+}
+
+
+/*
+The following alternate dither algorithms (from musicdsp.org) could be
+considered
+*/
+
+/*Noise shaped dither  (March 2000)
+-------------------
+
+This is a simple implementation of highpass triangular-PDF dither with
+2nd-order noise shaping, for use when truncating floating point audio
+data to fixed point.
+
+The noise shaping lowers the noise floor by 11dB below 5kHz (@ 44100Hz
+sample rate) compared to triangular-PDF dither. The code below assumes
+input data is in the range +1 to -1 and doesn't check for overloads!
+
+To save time when generating dither for multiple channels you can do
+things like this:  r3=(r1 & 0x7F)<<8; instead of calling rand() again.
+
+
+
+  int   r1, r2;                //rectangular-PDF random numbers
+  float s1, s2;                //error feedback buffers
+  float s = 0.5f;              //set to 0.0f for no noise shaping
+  float w = pow(2.0,bits-1);   //word length (usually bits=16)
+  float wi= 1.0f/w;            
+  float d = wi / RAND_MAX;     //dither amplitude (2 lsb)
+  float o = wi * 0.5f;         //remove dc offset
+  float in, tmp;
+  int   out;
+
+
+//for each sample...
+
+  r2=r1;                               //can make HP-TRI dither by
+  r1=rand();                           //subtracting previous rand()
+    
+  in += s * (s1 + s1 - s2);            //error feedback
+  tmp = in + o + d * (float)(r1 - r2); //dc offset and dither 
+  
+  out = (int)(w * tmp);                //truncate downwards
+  if(tmp<0.0f) out--;                  //this is faster than floor()
+
+  s2 = s1;                            
+  s1 = in - wi * (float)out;           //error
+
+
+
+-- 
+paul.kellett at maxim.abel.co.uk
+http://www.maxim.abel.co.uk
+*/
+
+
+/*
+16-to-8-bit first-order dither
+
+Type : First order error feedforward dithering code
+References : Posted by Jon Watte
+
+Notes : 
+This is about as simple a dithering algorithm as you can implement, but it's
+likely to sound better than just truncating to N bits.
+
+Note that you might not want to carry forward the full difference for infinity.
+It's probably likely that the worst performance hit comes from the saturation
+conditionals, which can be avoided with appropriate instructions on many DSPs
+and integer SIMD type instructions, or CMOV.
+
+Last, if sound quality is paramount (such as when going from > 16 bits to 16
+bits) you probably want to use a higher-order dither function found elsewhere
+on this site. 
+
+
+Code : 
+// This code will down-convert and dither a 16-bit signed short 
+// mono signal into an 8-bit unsigned char signal, using a first 
+// order forward-feeding error term dither. 
+
+#define uchar unsigned char 
+
+void dither_one_channel_16_to_8( short * input, uchar * output, int count, int * memory ) 
+{ 
+  int m = *memory; 
+  while( count-- > 0 ) { 
+    int i = *input++; 
+    i += m; 
+    int j = i + 32768 - 128; 
+    uchar o; 
+    if( j < 0 ) { 
+      o = 0; 
+    } 
+    else if( j > 65535 ) { 
+      o = 255; 
+    } 
+    else { 
+      o = (uchar)((j>>8)&0xff); 
+    } 
+    m = ((j-32768+128)-i); 
+    *output++ = o; 
+  } 
+  *memory = m; 
+} 
+*/
diff --git a/external/portaudio2007/pa_dither.h b/external/portaudio2007/pa_dither.h
new file mode 100644
index 0000000..e77ce47
--- /dev/null
+++ b/external/portaudio2007/pa_dither.h
@@ -0,0 +1,100 @@
+#ifndef PA_DITHER_H
+#define PA_DITHER_H
+/*
+ * $Id: pa_dither.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library triangular dither generator
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Functions for generating dither noise
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/** @brief State needed to generate a dither signal */
+typedef struct PaUtilTriangularDitherGenerator{
+    unsigned long previous;
+    unsigned long randSeed1;
+    unsigned long randSeed2;
+} PaUtilTriangularDitherGenerator;
+
+
+/** @brief Initialize dither state */
+void PaUtil_InitializeTriangularDitherState( PaUtilTriangularDitherGenerator *ditherState );
+
+
+/**
+ @brief Calculate 2 LSB dither signal with a triangular distribution.
+ Ranged for adding to a 1 bit right-shifted 32 bit integer
+ prior to >>15. eg:
+<pre>
+    signed long in = *
+    signed long dither = PaUtil_Generate16BitTriangularDither( ditherState );
+    signed short out = (signed short)(((in>>1) + dither) >> 15);
+</pre>
+ @return
+ A signed long with a range of +32767 to -32768
+*/
+signed long PaUtil_Generate16BitTriangularDither( PaUtilTriangularDitherGenerator *ditherState );
+
+
+/**
+ @brief Calculate 2 LSB dither signal with a triangular distribution.
+ Ranged for adding to a pre-scaled float.
+<pre>
+    float in = *
+    float dither = PaUtil_GenerateFloatTriangularDither( ditherState );
+    // use smaller scaler to prevent overflow when we add the dither
+    signed short out = (signed short)(in*(32766.0f) + dither );
+</pre>
+ @return
+ A float with a range of -2.0 to +1.99999.
+*/
+float PaUtil_GenerateFloatTriangularDither( PaUtilTriangularDitherGenerator *ditherState );
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_DITHER_H */
diff --git a/external/portaudio2007/pa_endianness.h b/external/portaudio2007/pa_endianness.h
new file mode 100644
index 0000000..bdcc74f
--- /dev/null
+++ b/external/portaudio2007/pa_endianness.h
@@ -0,0 +1,141 @@
+#ifndef PA_ENDIANNESS_H
+#define PA_ENDIANNESS_H
+/*
+ * $Id: pa_endianness.h 1216 2007-06-10 09:26:00Z aknudsen $
+ * Portable Audio I/O Library current platform endianness macros
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Configure endianness symbols for the target processor.
+
+ Arrange for either the PA_LITTLE_ENDIAN or PA_BIG_ENDIAN preprocessor symbols
+ to be defined. The one that is defined reflects the endianness of the target
+ platform and may be used to implement conditional compilation of byte-order
+ dependent code.
+
+ If either PA_LITTLE_ENDIAN or PA_BIG_ENDIAN is defined already, then no attempt
+ is made to override that setting. This may be useful if you have a better way
+ of determining the platform's endianness. The autoconf mechanism uses this for
+ example.
+
+ A PA_VALIDATE_ENDIANNESS macro is provided to compare the compile time
+ and runtime endiannes and raise an assertion if they don't match.
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* If this is an apple, we need to do detect endianness this way */
+#if defined(__APPLE__)
+    /* we need to do some endian detection that is sensitive to harware arch */
+    #if defined(__LITTLE_ENDIAN__)
+       #if !defined( PA_LITTLE_ENDIAN )
+          #define PA_LITTLE_ENDIAN
+       #endif
+       #if defined( PA_BIG_ENDIAN )
+          #undef PA_BIG_ENDIAN
+       #endif
+    #else
+       #if !defined( PA_BIG_ENDIAN )
+          #define PA_BIG_ENDIAN
+       #endif
+       #if defined( PA_LITTLE_ENDIAN )
+          #undef PA_LITTLE_ENDIAN
+       #endif
+    #endif
+#else
+    /* this is not an apple, so first check the existing defines, and, failing that,
+       detect well-known architechtures. */
+
+    #if defined(PA_LITTLE_ENDIAN) || defined(PA_BIG_ENDIAN)
+        /* endianness define has been set externally, such as by autoconf */
+
+        #if defined(PA_LITTLE_ENDIAN) && defined(PA_BIG_ENDIAN)
+        #error both PA_LITTLE_ENDIAN and PA_BIG_ENDIAN have been defined externally to pa_endianness.h - only one endianness at a time please
+        #endif
+
+    #else
+        /* endianness define has not been set externally */
+
+        /* set PA_LITTLE_ENDIAN or PA_BIG_ENDIAN by testing well known platform specific defines */
+
+        #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || defined(LITTLE_ENDIAN) || defined(__i386) || defined(_M_IX86) || defined(__x86_64__)
+            #define PA_LITTLE_ENDIAN /* win32, assume intel byte order */
+        #else
+            #define PA_BIG_ENDIAN
+        #endif
+    #endif
+
+    #if !defined(PA_LITTLE_ENDIAN) && !defined(PA_BIG_ENDIAN)
+        /*
+         If the following error is raised, you either need to modify the code above
+         to automatically determine the endianness from other symbols defined on your
+         platform, or define either PA_LITTLE_ENDIAN or PA_BIG_ENDIAN externally.
+        */
+        #error pa_endianness.h was unable to automatically determine the endianness of the target platform
+    #endif
+
+#endif
+
+
+/* PA_VALIDATE_ENDIANNESS compares the compile time and runtime endianness,
+ and raises an assertion if they don't match. <assert.h> must be included in
+ the context in which this macro is used.
+*/
+#if defined(PA_LITTLE_ENDIAN)
+    #define PA_VALIDATE_ENDIANNESS \
+    { \
+        const long nativeOne = 1; \
+        assert( "PortAudio: compile time and runtime endianness don't match" && (((char *)&nativeOne)[0]) == 1 ); \
+    }
+#elif defined(PA_BIG_ENDIAN)
+    #define PA_VALIDATE_ENDIANNESS \
+    { \
+        const long nativeOne = 1; \
+        assert( "PortAudio: compile time and runtime endianness don't match" && (((char *)&nativeOne)[0]) == 0 ); \
+    }
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_ENDIANNESS_H */
diff --git a/external/portaudio2007/pa_front.c b/external/portaudio2007/pa_front.c
new file mode 100644
index 0000000..5af90d4
--- /dev/null
+++ b/external/portaudio2007/pa_front.c
@@ -0,0 +1,1760 @@
+/*
+ * $Id: pa_front.c 1229 2007-06-15 16:11:11Z rossb $
+ * Portable Audio I/O Library Multi-Host API front end
+ * Validate function parameters and manage multiple host APIs.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Implements public PortAudio API, checks some errors, forwards to
+ host API implementations.
+ 
+ Implements the functions defined in the PortAudio API, checks for
+ some parameter and state inconsistencies and forwards API requests to
+ specific Host API implementations (via the interface declared in
+ pa_hostapi.h), and Streams (via the interface declared in pa_stream.h).
+
+ This file handles initialization and termination of Host API
+ implementations via initializers stored in the paHostApiInitializers
+ global variable.
+
+ Some utility functions declared in pa_util.h are implemented in this file.
+
+ All PortAudio API functions can be conditionally compiled with logging code.
+ To compile with logging, define the PA_LOG_API_CALLS precompiler symbol.
+
+    @todo Consider adding host API specific error text in Pa_GetErrorText() for
+    paUnanticipatedHostError
+
+    @todo Consider adding a new error code for when (inputParameters == NULL)
+    && (outputParameters == NULL)
+
+    @todo review whether Pa_CloseStream() should call the interface's
+    CloseStream function if aborting the stream returns an error code.
+
+    @todo Create new error codes if a NULL buffer pointer, or a
+    zero frame count is passed to Pa_ReadStream or Pa_WriteStream.
+*/
+
+
+#include <stdio.h>
+#include <memory.h>
+#include <string.h>
+#include <assert.h> /* needed by PA_VALIDATE_ENDIANNESS */
+
+#include "portaudio.h"
+#include "pa_util.h"
+#include "pa_endianness.h"
+#include "pa_types.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_trace.h" /* still usefull?*/
+#include "pa_debugprint.h"
+
+
+#define PA_VERSION_  1899
+#define PA_VERSION_TEXT_ "PortAudio V19-devel (built " __DATE__  ")"
+
+
+
+
+int Pa_GetVersion( void )
+{
+    return PA_VERSION_;
+}
+
+
+const char* Pa_GetVersionText( void )
+{
+    return PA_VERSION_TEXT_;
+}
+
+
+
+#define PA_LAST_HOST_ERROR_TEXT_LENGTH_  1024
+
+static char lastHostErrorText_[ PA_LAST_HOST_ERROR_TEXT_LENGTH_ + 1 ] = {0};
+
+static PaHostErrorInfo lastHostErrorInfo_ = { (PaHostApiTypeId)-1, 0, lastHostErrorText_ };
+
+
+void PaUtil_SetLastHostErrorInfo( PaHostApiTypeId hostApiType, long errorCode,
+        const char *errorText )
+{
+    lastHostErrorInfo_.hostApiType = hostApiType;
+    lastHostErrorInfo_.errorCode = errorCode;
+
+    strncpy( lastHostErrorText_, errorText, PA_LAST_HOST_ERROR_TEXT_LENGTH_ );
+}
+
+
+
+static PaUtilHostApiRepresentation **hostApis_ = 0;
+static int hostApisCount_ = 0;
+static int initializationCount_ = 0;
+static int deviceCount_ = 0;
+
+PaUtilStreamRepresentation *firstOpenStream_ = NULL;
+
+
+#define PA_IS_INITIALISED_ (initializationCount_ != 0)
+
+
+static int CountHostApiInitializers( void )
+{
+    int result = 0;
+
+    while( paHostApiInitializers[ result ] != 0 )
+        ++result;
+    return result;
+}
+
+
+static void TerminateHostApis( void )
+{
+    /* terminate in reverse order from initialization */
+    PA_DEBUG(("TerminateHostApis in \n"));
+
+    while( hostApisCount_ > 0 )
+    {
+        --hostApisCount_;
+        hostApis_[hostApisCount_]->Terminate( hostApis_[hostApisCount_] );
+    }
+    hostApisCount_ = 0;
+    deviceCount_ = 0;
+
+    if( hostApis_ != 0 )
+        PaUtil_FreeMemory( hostApis_ );
+    hostApis_ = 0;
+
+    PA_DEBUG(("TerminateHostApis out\n"));
+}
+
+
+static PaError InitializeHostApis( void )
+{
+    PaError result = paNoError;
+    int i, initializerCount, baseDeviceIndex;
+
+    initializerCount = CountHostApiInitializers();
+
+    hostApis_ = (PaUtilHostApiRepresentation**)PaUtil_AllocateMemory(
+            sizeof(PaUtilHostApiRepresentation*) * initializerCount );
+    if( !hostApis_ )
+    {
+        result = paInsufficientMemory;
+        goto error; 
+    }
+
+    hostApisCount_ = 0;
+    deviceCount_ = 0;
+    baseDeviceIndex = 0;
+
+    for( i=0; i< initializerCount; ++i )
+    {
+        hostApis_[hostApisCount_] = NULL;
+
+        PA_DEBUG(( "before paHostApiInitializers[%d].\n",i));
+
+        result = paHostApiInitializers[i]( &hostApis_[hostApisCount_], hostApisCount_ );
+        if( result != paNoError )
+            goto error;
+
+        PA_DEBUG(( "after paHostApiInitializers[%d].\n",i));
+
+        if( hostApis_[hostApisCount_] )
+        {
+            PaUtilHostApiRepresentation* hostApi = hostApis_[hostApisCount_];
+            assert( hostApi->info.defaultInputDevice < hostApi->info.deviceCount );
+            assert( hostApi->info.defaultOutputDevice < hostApi->info.deviceCount );
+
+            hostApi->privatePaFrontInfo.baseDeviceIndex = baseDeviceIndex;
+
+            if( hostApi->info.defaultInputDevice != paNoDevice )
+                hostApi->info.defaultInputDevice += baseDeviceIndex;
+
+            if( hostApi->info.defaultOutputDevice != paNoDevice )
+                hostApi->info.defaultOutputDevice += baseDeviceIndex;
+
+            baseDeviceIndex += hostApi->info.deviceCount;
+            deviceCount_ += hostApi->info.deviceCount;
+
+            ++hostApisCount_;
+        }
+    }
+
+    return result;
+
+error:
+    TerminateHostApis();
+    return result;
+}
+
+
+/*
+    FindHostApi() finds the index of the host api to which
+    <device> belongs and returns it. if <hostSpecificDeviceIndex> is
+    non-null, the host specific device index is returned in it.
+    returns -1 if <device> is out of range.
+ 
+*/
+static int FindHostApi( PaDeviceIndex device, int *hostSpecificDeviceIndex )
+{
+    int i=0;
+
+    if( !PA_IS_INITIALISED_ )
+        return -1;
+
+    if( device < 0 )
+        return -1;
+
+    while( i < hostApisCount_
+            && device >= hostApis_[i]->info.deviceCount )
+    {
+
+        device -= hostApis_[i]->info.deviceCount;
+        ++i;
+    }
+
+    if( i >= hostApisCount_ )
+        return -1;
+
+    if( hostSpecificDeviceIndex )
+        *hostSpecificDeviceIndex = device;
+
+    return i;
+}
+
+
+static void AddOpenStream( PaStream* stream )
+{
+    ((PaUtilStreamRepresentation*)stream)->nextOpenStream = firstOpenStream_;
+    firstOpenStream_ = (PaUtilStreamRepresentation*)stream;
+}
+
+
+static void RemoveOpenStream( PaStream* stream )
+{
+    PaUtilStreamRepresentation *previous = NULL;
+    PaUtilStreamRepresentation *current = firstOpenStream_;
+
+    while( current != NULL )
+    {
+        if( ((PaStream*)current) == stream )
+        {
+            if( previous == NULL )
+            {
+                firstOpenStream_ = current->nextOpenStream;
+            }
+            else
+            {
+                previous->nextOpenStream = current->nextOpenStream;
+            }
+            return;
+        }
+        else
+        {
+            previous = current;
+            current = current->nextOpenStream;
+        }
+    }
+}
+
+
+static void CloseOpenStreams( void )
+{
+    /* we call Pa_CloseStream() here to ensure that the same destruction
+        logic is used for automatically closed streams */
+
+    while( firstOpenStream_ != NULL )
+        Pa_CloseStream( firstOpenStream_ );
+}
+
+
+PaError Pa_Initialize( void )
+{
+    PaError result;
+
+    PA_LOGAPI_ENTER( "Pa_Initialize" );
+
+    if( PA_IS_INITIALISED_ )
+    {
+        ++initializationCount_;
+        result = paNoError;
+    }
+    else
+    {
+        PA_VALIDATE_TYPE_SIZES;
+        PA_VALIDATE_ENDIANNESS;
+        
+        PaUtil_InitializeClock();
+        PaUtil_ResetTraceMessages();
+
+        result = InitializeHostApis();
+        if( result == paNoError )
+            ++initializationCount_;
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_Initialize", result );
+
+    return result;
+}
+
+
+PaError Pa_Terminate( void )
+{
+    PaError result;
+
+    PA_LOGAPI_ENTER( "Pa_Terminate" );
+
+    if( PA_IS_INITIALISED_ )
+    {
+        if( --initializationCount_ == 0 )
+        {
+            CloseOpenStreams();
+
+            TerminateHostApis();
+
+            PaUtil_DumpTraceMessages();
+        }
+        result = paNoError;
+    }
+    else
+    {
+        result=  paNotInitialized;
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_Terminate", result );
+
+    return result;
+}
+
+
+const PaHostErrorInfo* Pa_GetLastHostErrorInfo( void )
+{
+    return &lastHostErrorInfo_;
+}
+
+
+const char *Pa_GetErrorText( PaError errorCode )
+{
+    const char *result;
+
+    switch( errorCode )
+    {
+    case paNoError:                  result = "Success"; break;
+    case paNotInitialized:           result = "PortAudio not initialized"; break;
+    /** @todo could catenate the last host error text to result in the case of paUnanticipatedHostError */
+    case paUnanticipatedHostError:   result = "Unanticipated host error"; break;
+    case paInvalidChannelCount:      result = "Invalid number of channels"; break;
+    case paInvalidSampleRate:        result = "Invalid sample rate"; break;
+    case paInvalidDevice:            result = "Invalid device"; break;
+    case paInvalidFlag:              result = "Invalid flag"; break;
+    case paSampleFormatNotSupported: result = "Sample format not supported"; break;
+    case paBadIODeviceCombination:   result = "Illegal combination of I/O devices"; break;
+    case paInsufficientMemory:       result = "Insufficient memory"; break;
+    case paBufferTooBig:             result = "Buffer too big"; break;
+    case paBufferTooSmall:           result = "Buffer too small"; break;
+    case paNullCallback:             result = "No callback routine specified"; break;
+    case paBadStreamPtr:             result = "Invalid stream pointer"; break;
+    case paTimedOut:                 result = "Wait timed out"; break;
+    case paInternalError:            result = "Internal PortAudio error"; break;
+    case paDeviceUnavailable:        result = "Device unavailable"; break;
+    case paIncompatibleHostApiSpecificStreamInfo:   result = "Incompatible host API specific stream info"; break;
+    case paStreamIsStopped:          result = "Stream is stopped"; break;
+    case paStreamIsNotStopped:       result = "Stream is not stopped"; break;
+    case paInputOverflowed:          result = "Input overflowed"; break;
+    case paOutputUnderflowed:        result = "Output underflowed"; break;
+    case paHostApiNotFound:          result = "Host API not found"; break;
+    case paInvalidHostApi:           result = "Invalid host API"; break;
+    case paCanNotReadFromACallbackStream:       result = "Can't read from a callback stream"; break;
+    case paCanNotWriteToACallbackStream:        result = "Can't write to a callback stream"; break;
+    case paCanNotReadFromAnOutputOnlyStream:    result = "Can't read from an output only stream"; break;
+    case paCanNotWriteToAnInputOnlyStream:      result = "Can't write to an input only stream"; break;
+    default:                         
+		if( errorCode > 0 )
+			result = "Invalid error code (value greater than zero)"; 
+        else
+			result = "Invalid error code"; 
+        break;
+    }
+    return result;
+}
+
+
+PaHostApiIndex Pa_HostApiTypeIdToHostApiIndex( PaHostApiTypeId type )
+{
+    PaHostApiIndex result;
+    int i;
+    
+    PA_LOGAPI_ENTER_PARAMS( "Pa_HostApiTypeIdToHostApiIndex" );
+    PA_LOGAPI(("\tPaHostApiTypeId type: %d\n", type ));
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        result = paHostApiNotFound;
+        
+        for( i=0; i < hostApisCount_; ++i )
+        {
+            if( hostApis_[i]->info.type == type )
+            {
+                result = i;
+                break;
+            }         
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_HostApiTypeIdToHostApiIndex", "PaHostApiIndex: %d", result );
+
+    return result;
+}
+
+
+PaError PaUtil_GetHostApiRepresentation( struct PaUtilHostApiRepresentation **hostApi,
+        PaHostApiTypeId type )
+{
+    PaError result;
+    int i;
+    
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        result = paHostApiNotFound;
+                
+        for( i=0; i < hostApisCount_; ++i )
+        {
+            if( hostApis_[i]->info.type == type )
+            {
+                *hostApi = hostApis_[i];
+                result = paNoError;
+                break;
+            }
+        }
+    }
+
+    return result;
+}
+
+
+PaError PaUtil_DeviceIndexToHostApiDeviceIndex(
+        PaDeviceIndex *hostApiDevice, PaDeviceIndex device, struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaError result;
+    PaDeviceIndex x;
+    
+    x = device - hostApi->privatePaFrontInfo.baseDeviceIndex;
+
+    if( x < 0 || x >= hostApi->info.deviceCount )
+    {
+        result = paInvalidDevice;
+    }
+    else
+    {
+        *hostApiDevice = x;
+        result = paNoError;
+    }
+
+    return result;
+}
+
+
+PaHostApiIndex Pa_GetHostApiCount( void )
+{
+    int result;
+
+    PA_LOGAPI_ENTER( "Pa_GetHostApiCount" );
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        result = hostApisCount_;
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_GetHostApiCount", "PaHostApiIndex: %d", result );
+
+    return result;
+}
+
+
+PaHostApiIndex Pa_GetDefaultHostApi( void )
+{
+    int result;
+
+    PA_LOGAPI_ENTER( "Pa_GetDefaultHostApi" );
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        result = paDefaultHostApiIndex;
+
+        /* internal consistency check: make sure that the default host api
+         index is within range */
+
+        if( result < 0 || result >= hostApisCount_ )
+        {
+            result = paInternalError;
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_GetDefaultHostApi", "PaHostApiIndex: %d", result );
+
+    return result;
+}
+
+
+const PaHostApiInfo* Pa_GetHostApiInfo( PaHostApiIndex hostApi )
+{
+    PaHostApiInfo *info;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetHostApiInfo" );
+    PA_LOGAPI(("\tPaHostApiIndex hostApi: %d\n", hostApi ));
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        info = NULL;
+
+        PA_LOGAPI(("Pa_GetHostApiInfo returned:\n" ));
+        PA_LOGAPI(("\tPaHostApiInfo*: NULL [ PortAudio not initialized ]\n" ));
+
+    }
+    else if( hostApi < 0 || hostApi >= hostApisCount_ )
+    {
+        info = NULL;
+        
+        PA_LOGAPI(("Pa_GetHostApiInfo returned:\n" ));
+        PA_LOGAPI(("\tPaHostApiInfo*: NULL [ hostApi out of range ]\n" ));
+
+    }
+    else
+    {
+        info = &hostApis_[hostApi]->info;
+
+        PA_LOGAPI(("Pa_GetHostApiInfo returned:\n" ));
+        PA_LOGAPI(("\tPaHostApiInfo*: 0x%p\n", info ));
+        PA_LOGAPI(("\t{\n" ));
+        PA_LOGAPI(("\t\tint structVersion: %d\n", info->structVersion ));
+        PA_LOGAPI(("\t\tPaHostApiTypeId type: %d\n", info->type ));
+        PA_LOGAPI(("\t\tconst char *name: %s\n", info->name ));
+        PA_LOGAPI(("\t}\n" ));
+
+    }
+
+     return info;
+}
+
+
+PaDeviceIndex Pa_HostApiDeviceIndexToDeviceIndex( PaHostApiIndex hostApi, int hostApiDeviceIndex )
+{
+    PaDeviceIndex result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_HostApiDeviceIndexToPaDeviceIndex" );
+    PA_LOGAPI(("\tPaHostApiIndex hostApi: %d\n", hostApi ));
+    PA_LOGAPI(("\tint hostApiDeviceIndex: %d\n", hostApiDeviceIndex ));
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        if( hostApi < 0 || hostApi >= hostApisCount_ )
+        {
+            result = paInvalidHostApi;
+        }
+        else
+        {
+            if( hostApiDeviceIndex < 0 ||
+                    hostApiDeviceIndex >= hostApis_[hostApi]->info.deviceCount )
+            {
+                result = paInvalidDevice;
+            }
+            else
+            {
+                result = hostApis_[hostApi]->privatePaFrontInfo.baseDeviceIndex + hostApiDeviceIndex;
+            }
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_HostApiDeviceIndexToPaDeviceIndex", "PaDeviceIndex: %d", result );
+
+    return result;
+}
+
+
+PaDeviceIndex Pa_GetDeviceCount( void )
+{
+    PaDeviceIndex result;
+
+    PA_LOGAPI_ENTER( "Pa_GetDeviceCount" );
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+    }
+    else
+    {
+        result = deviceCount_;
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_GetDeviceCount", "PaDeviceIndex: %d", result );
+
+    return result;
+}
+
+
+PaDeviceIndex Pa_GetDefaultInputDevice( void )
+{
+    PaHostApiIndex hostApi;
+    PaDeviceIndex result;
+
+    PA_LOGAPI_ENTER( "Pa_GetDefaultInputDevice" );
+
+    hostApi = Pa_GetDefaultHostApi();
+    if( hostApi < 0 )
+    {
+        result = paNoDevice;
+    }
+    else
+    {
+        result = hostApis_[hostApi]->info.defaultInputDevice;
+    }
+
+    PA_LOGAPI_EXIT_T( "Pa_GetDefaultInputDevice", "PaDeviceIndex: %d", result );
+
+    return result;
+}
+
+
+PaDeviceIndex Pa_GetDefaultOutputDevice( void )
+{
+    PaHostApiIndex hostApi;
+    PaDeviceIndex result;
+    
+    PA_LOGAPI_ENTER( "Pa_GetDefaultOutputDevice" );
+
+    hostApi = Pa_GetDefaultHostApi();
+    if( hostApi < 0 )
+    {
+        result = paNoDevice;
+    }
+    else
+    {
+        result = hostApis_[hostApi]->info.defaultOutputDevice;
+    }
+
+    PA_LOGAPI_EXIT_T( "Pa_GetDefaultOutputDevice", "PaDeviceIndex: %d", result );
+
+    return result;
+}
+
+
+const PaDeviceInfo* Pa_GetDeviceInfo( PaDeviceIndex device )
+{
+    int hostSpecificDeviceIndex;
+    int hostApiIndex = FindHostApi( device, &hostSpecificDeviceIndex );
+    PaDeviceInfo *result;
+
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetDeviceInfo" );
+    PA_LOGAPI(("\tPaDeviceIndex device: %d\n", device ));
+
+    if( hostApiIndex < 0 )
+    {
+        result = NULL;
+
+        PA_LOGAPI(("Pa_GetDeviceInfo returned:\n" ));
+        PA_LOGAPI(("\tPaDeviceInfo* NULL [ invalid device index ]\n" ));
+
+    }
+    else
+    {
+        result = hostApis_[hostApiIndex]->deviceInfos[ hostSpecificDeviceIndex ];
+
+        PA_LOGAPI(("Pa_GetDeviceInfo returned:\n" ));
+        PA_LOGAPI(("\tPaDeviceInfo*: 0x%p:\n", result ));
+        PA_LOGAPI(("\t{\n" ));
+
+        PA_LOGAPI(("\t\tint structVersion: %d\n", result->structVersion ));
+        PA_LOGAPI(("\t\tconst char *name: %s\n", result->name ));
+        PA_LOGAPI(("\t\tPaHostApiIndex hostApi: %d\n", result->hostApi ));
+        PA_LOGAPI(("\t\tint maxInputChannels: %d\n", result->maxInputChannels ));
+        PA_LOGAPI(("\t\tint maxOutputChannels: %d\n", result->maxOutputChannels ));
+        PA_LOGAPI(("\t}\n" ));
+
+    }
+
+    return result;
+}
+
+
+/*
+    SampleFormatIsValid() returns 1 if sampleFormat is a sample format
+    defined in portaudio.h, or 0 otherwise.
+*/
+static int SampleFormatIsValid( PaSampleFormat format )
+{
+    switch( format & ~paNonInterleaved )
+    {
+    case paFloat32: return 1;
+    case paInt16: return 1;
+    case paInt32: return 1;
+    case paInt24: return 1;
+    case paInt8: return 1;
+    case paUInt8: return 1;
+    case paCustomFormat: return 1;
+    default: return 0;
+    }
+}
+
+/*
+    NOTE: make sure this validation list is kept syncronised with the one in
+            pa_hostapi.h
+
+    ValidateOpenStreamParameters() checks that parameters to Pa_OpenStream()
+    conform to the expected values as described below. This function is
+    also designed to be used with the proposed Pa_IsFormatSupported() function.
+    
+    There are basically two types of validation that could be performed:
+    Generic conformance validation, and device capability mismatch
+    validation. This function performs only generic conformance validation.
+    Validation that would require knowledge of device capabilities is
+    not performed because of potentially complex relationships between
+    combinations of parameters - for example, even if the sampleRate
+    seems ok, it might not be for a duplex stream - we have no way of
+    checking this in an API-neutral way, so we don't try.
+ 
+    On success the function returns PaNoError and fills in hostApi,
+    hostApiInputDeviceID, and hostApiOutputDeviceID fields. On failure
+    the function returns an error code indicating the first encountered
+    parameter error.
+ 
+ 
+    If ValidateOpenStreamParameters() returns paNoError, the following
+    assertions are guaranteed to be true.
+ 
+    - at least one of inputParameters & outputParmeters is valid (not NULL)
+
+    - if inputParameters & outputParameters are both valid, that
+        inputParameters->device & outputParameters->device  both use the same host api
+ 
+    PaDeviceIndex inputParameters->device
+        - is within range (0 to Pa_GetDeviceCount-1) Or:
+        - is paUseHostApiSpecificDeviceSpecification and
+            inputParameters->hostApiSpecificStreamInfo is non-NULL and refers
+            to a valid host api
+
+    int inputParameters->channelCount
+        - if inputParameters->device is not paUseHostApiSpecificDeviceSpecification, channelCount is > 0
+        - upper bound is NOT validated against device capabilities
+ 
+    PaSampleFormat inputParameters->sampleFormat
+        - is one of the sample formats defined in portaudio.h
+
+    void *inputParameters->hostApiSpecificStreamInfo
+        - if supplied its hostApi field matches the input device's host Api
+ 
+    PaDeviceIndex outputParmeters->device
+        - is within range (0 to Pa_GetDeviceCount-1)
+ 
+    int outputParmeters->channelCount
+        - if inputDevice is valid, channelCount is > 0
+        - upper bound is NOT validated against device capabilities
+ 
+    PaSampleFormat outputParmeters->sampleFormat
+        - is one of the sample formats defined in portaudio.h
+        
+    void *outputParmeters->hostApiSpecificStreamInfo
+        - if supplied its hostApi field matches the output device's host Api
+ 
+    double sampleRate
+        - is not an 'absurd' rate (less than 1000. or greater than 200000.)
+        - sampleRate is NOT validated against device capabilities
+ 
+    PaStreamFlags streamFlags
+        - unused platform neutral flags are zero
+        - paNeverDropInput is only used for full-duplex callback streams with
+            variable buffer size (paFramesPerBufferUnspecified)
+*/
+static PaError ValidateOpenStreamParameters(
+    const PaStreamParameters *inputParameters,
+    const PaStreamParameters *outputParameters,
+    double sampleRate,
+    unsigned long framesPerBuffer,
+    PaStreamFlags streamFlags,
+    PaStreamCallback *streamCallback,
+    PaUtilHostApiRepresentation **hostApi,
+    PaDeviceIndex *hostApiInputDevice,
+    PaDeviceIndex *hostApiOutputDevice )
+{
+    int inputHostApiIndex  = -1, /* Surpress uninitialised var warnings: compiler does */
+        outputHostApiIndex = -1; /* not see that if inputParameters and outputParame-  */
+                                 /* ters are both nonzero, these indices are set.      */
+
+    if( (inputParameters == NULL) && (outputParameters == NULL) )
+    {
+        return paInvalidDevice; /** @todo should be a new error code "invalid device parameters" or something */
+    }
+    else
+    {
+        if( inputParameters == NULL )
+        {
+            *hostApiInputDevice = paNoDevice;
+        }
+        else if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+        {
+            if( inputParameters->hostApiSpecificStreamInfo )
+            {
+                inputHostApiIndex = Pa_HostApiTypeIdToHostApiIndex(
+                        ((PaUtilHostApiSpecificStreamInfoHeader*)inputParameters->hostApiSpecificStreamInfo)->hostApiType );
+
+                if( inputHostApiIndex != -1 )
+                {
+                    *hostApiInputDevice = paUseHostApiSpecificDeviceSpecification;
+                    *hostApi = hostApis_[inputHostApiIndex];
+                }
+                else
+                {
+                    return paInvalidDevice;
+                }
+            }
+            else
+            {
+                return paInvalidDevice;
+            }
+        }
+        else
+        {
+            if( inputParameters->device < 0 || inputParameters->device >= deviceCount_ )
+                return paInvalidDevice;
+
+            inputHostApiIndex = FindHostApi( inputParameters->device, hostApiInputDevice );
+            if( inputHostApiIndex < 0 )
+                return paInternalError;
+
+            *hostApi = hostApis_[inputHostApiIndex];
+
+            if( inputParameters->channelCount <= 0 )
+                return paInvalidChannelCount;
+
+            if( !SampleFormatIsValid( inputParameters->sampleFormat ) )
+                return paSampleFormatNotSupported;
+
+            if( inputParameters->hostApiSpecificStreamInfo != NULL )
+            {
+                if( ((PaUtilHostApiSpecificStreamInfoHeader*)inputParameters->hostApiSpecificStreamInfo)->hostApiType
+                        != (*hostApi)->info.type )
+                    return paIncompatibleHostApiSpecificStreamInfo;
+            }
+        }
+
+        if( outputParameters == NULL )
+        {
+            *hostApiOutputDevice = paNoDevice;
+        }
+        else if( outputParameters->device == paUseHostApiSpecificDeviceSpecification  )
+        {
+            if( outputParameters->hostApiSpecificStreamInfo )
+            {
+                outputHostApiIndex = Pa_HostApiTypeIdToHostApiIndex(
+                        ((PaUtilHostApiSpecificStreamInfoHeader*)outputParameters->hostApiSpecificStreamInfo)->hostApiType );
+
+                if( outputHostApiIndex != -1 )
+                {
+                    *hostApiOutputDevice = paUseHostApiSpecificDeviceSpecification;
+                    *hostApi = hostApis_[outputHostApiIndex];
+                }
+                else
+                {
+                    return paInvalidDevice;
+                }
+            }
+            else
+            {
+                return paInvalidDevice;
+            }
+        }
+        else
+        {
+            if( outputParameters->device < 0 || outputParameters->device >= deviceCount_ )
+                return paInvalidDevice;
+
+            outputHostApiIndex = FindHostApi( outputParameters->device, hostApiOutputDevice );
+            if( outputHostApiIndex < 0 )
+                return paInternalError;
+
+            *hostApi = hostApis_[outputHostApiIndex];
+
+            if( outputParameters->channelCount <= 0 )
+                return paInvalidChannelCount;
+
+            if( !SampleFormatIsValid( outputParameters->sampleFormat ) )
+                return paSampleFormatNotSupported;
+
+            if( outputParameters->hostApiSpecificStreamInfo != NULL )
+            {
+                if( ((PaUtilHostApiSpecificStreamInfoHeader*)outputParameters->hostApiSpecificStreamInfo)->hostApiType
+                        != (*hostApi)->info.type )
+                    return paIncompatibleHostApiSpecificStreamInfo;
+            }
+        }   
+
+        if( (inputParameters != NULL) && (outputParameters != NULL) )
+        {
+            /* ensure that both devices use the same API */
+            if( inputHostApiIndex != outputHostApiIndex )
+                return paBadIODeviceCombination;
+        }
+    }
+    
+    
+    /* Check for absurd sample rates. */
+    if( (sampleRate < 1000.0) || (sampleRate > 200000.0) )
+        return paInvalidSampleRate;
+
+    if( ((streamFlags & ~paPlatformSpecificFlags) & ~(paClipOff | paDitherOff | paNeverDropInput | paPrimeOutputBuffersUsingStreamCallback ) ) != 0 )
+        return paInvalidFlag;
+
+    if( streamFlags & paNeverDropInput )
+    {
+        /* must be a callback stream */
+        if( !streamCallback )
+             return paInvalidFlag;
+
+        /* must be a full duplex stream */
+        if( (inputParameters == NULL) || (outputParameters == NULL) )
+            return paInvalidFlag;
+
+        /* must use paFramesPerBufferUnspecified */
+        if( framesPerBuffer != paFramesPerBufferUnspecified )
+            return paInvalidFlag;
+    }
+    
+    return paNoError;
+}
+
+
+PaError Pa_IsFormatSupported( const PaStreamParameters *inputParameters,
+                              const PaStreamParameters *outputParameters,
+                              double sampleRate )
+{
+    PaError result;
+    PaUtilHostApiRepresentation *hostApi = 0;
+    PaDeviceIndex hostApiInputDevice = paNoDevice, hostApiOutputDevice = paNoDevice;
+    PaStreamParameters hostApiInputParameters, hostApiOutputParameters;
+    PaStreamParameters *hostApiInputParametersPtr, *hostApiOutputParametersPtr;
+
+
+#ifdef PA_LOG_API_CALLS
+    PA_LOGAPI_ENTER_PARAMS( "Pa_IsFormatSupported" );
+
+    if( inputParameters == NULL ){
+        PA_LOGAPI(("\tPaStreamParameters *inputParameters: NULL\n" ));
+    }else{
+        PA_LOGAPI(("\tPaStreamParameters *inputParameters: 0x%p\n", inputParameters ));
+        PA_LOGAPI(("\tPaDeviceIndex inputParameters->device: %d\n", inputParameters->device ));
+        PA_LOGAPI(("\tint inputParameters->channelCount: %d\n", inputParameters->channelCount ));
+        PA_LOGAPI(("\tPaSampleFormat inputParameters->sampleFormat: %d\n", inputParameters->sampleFormat ));
+        PA_LOGAPI(("\tPaTime inputParameters->suggestedLatency: %f\n", inputParameters->suggestedLatency ));
+        PA_LOGAPI(("\tvoid *inputParameters->hostApiSpecificStreamInfo: 0x%p\n", inputParameters->hostApiSpecificStreamInfo ));
+    }
+
+    if( outputParameters == NULL ){
+        PA_LOGAPI(("\tPaStreamParameters *outputParameters: NULL\n" ));
+    }else{
+        PA_LOGAPI(("\tPaStreamParameters *outputParameters: 0x%p\n", outputParameters ));
+        PA_LOGAPI(("\tPaDeviceIndex outputParameters->device: %d\n", outputParameters->device ));
+        PA_LOGAPI(("\tint outputParameters->channelCount: %d\n", outputParameters->channelCount ));
+        PA_LOGAPI(("\tPaSampleFormat outputParameters->sampleFormat: %d\n", outputParameters->sampleFormat ));
+        PA_LOGAPI(("\tPaTime outputParameters->suggestedLatency: %f\n", outputParameters->suggestedLatency ));
+        PA_LOGAPI(("\tvoid *outputParameters->hostApiSpecificStreamInfo: 0x%p\n", outputParameters->hostApiSpecificStreamInfo ));
+    }
+    
+    PA_LOGAPI(("\tdouble sampleRate: %g\n", sampleRate ));
+#endif
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+
+        PA_LOGAPI_EXIT_PAERROR( "Pa_IsFormatSupported", result );
+        return result;
+    }
+
+    result = ValidateOpenStreamParameters( inputParameters,
+                                           outputParameters,
+                                           sampleRate, 0, paNoFlag, 0,
+                                           &hostApi,
+                                           &hostApiInputDevice,
+                                           &hostApiOutputDevice );
+    if( result != paNoError )
+    {
+        PA_LOGAPI_EXIT_PAERROR( "Pa_IsFormatSupported", result );
+        return result;
+    }
+    
+
+    if( inputParameters )
+    {
+        hostApiInputParameters.device = hostApiInputDevice;
+        hostApiInputParameters.channelCount = inputParameters->channelCount;
+        hostApiInputParameters.sampleFormat = inputParameters->sampleFormat;
+        hostApiInputParameters.suggestedLatency = inputParameters->suggestedLatency;
+        hostApiInputParameters.hostApiSpecificStreamInfo = inputParameters->hostApiSpecificStreamInfo;
+        hostApiInputParametersPtr = &hostApiInputParameters;
+    }
+    else
+    {
+        hostApiInputParametersPtr = NULL;
+    }
+
+    if( outputParameters )
+    {
+        hostApiOutputParameters.device = hostApiOutputDevice;
+        hostApiOutputParameters.channelCount = outputParameters->channelCount;
+        hostApiOutputParameters.sampleFormat = outputParameters->sampleFormat;
+        hostApiOutputParameters.suggestedLatency = outputParameters->suggestedLatency;
+        hostApiOutputParameters.hostApiSpecificStreamInfo = outputParameters->hostApiSpecificStreamInfo;
+        hostApiOutputParametersPtr = &hostApiOutputParameters;
+    }
+    else
+    {
+        hostApiOutputParametersPtr = NULL;
+    }
+
+    result = hostApi->IsFormatSupported( hostApi,
+                                  hostApiInputParametersPtr, hostApiOutputParametersPtr,
+                                  sampleRate );
+
+#ifdef PA_LOG_API_CALLS
+    PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+    if( result == paFormatIsSupported )
+        PA_LOGAPI(("\tPaError: 0 [ paFormatIsSupported ]\n" ));
+    else
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+#endif
+
+    return result;
+}
+
+
+PaError Pa_OpenStream( PaStream** stream,
+                       const PaStreamParameters *inputParameters,
+                       const PaStreamParameters *outputParameters,
+                       double sampleRate,
+                       unsigned long framesPerBuffer,
+                       PaStreamFlags streamFlags,
+                       PaStreamCallback *streamCallback,
+                       void *userData )
+{
+    PaError result;
+    PaUtilHostApiRepresentation *hostApi = 0;
+    PaDeviceIndex hostApiInputDevice = paNoDevice, hostApiOutputDevice = paNoDevice;
+    PaStreamParameters hostApiInputParameters, hostApiOutputParameters;
+    PaStreamParameters *hostApiInputParametersPtr, *hostApiOutputParametersPtr;
+
+
+#ifdef PA_LOG_API_CALLS
+    PA_LOGAPI_ENTER_PARAMS( "Pa_OpenStream" );
+    PA_LOGAPI(("\tPaStream** stream: 0x%p\n", stream ));
+
+    if( inputParameters == NULL ){
+        PA_LOGAPI(("\tPaStreamParameters *inputParameters: NULL\n" ));
+    }else{
+        PA_LOGAPI(("\tPaStreamParameters *inputParameters: 0x%p\n", inputParameters ));
+        PA_LOGAPI(("\tPaDeviceIndex inputParameters->device: %d\n", inputParameters->device ));
+        PA_LOGAPI(("\tint inputParameters->channelCount: %d\n", inputParameters->channelCount ));
+        PA_LOGAPI(("\tPaSampleFormat inputParameters->sampleFormat: %d\n", inputParameters->sampleFormat ));
+        PA_LOGAPI(("\tPaTime inputParameters->suggestedLatency: %f\n", inputParameters->suggestedLatency ));
+        PA_LOGAPI(("\tvoid *inputParameters->hostApiSpecificStreamInfo: 0x%p\n", inputParameters->hostApiSpecificStreamInfo ));
+    }
+
+    if( outputParameters == NULL ){
+        PA_LOGAPI(("\tPaStreamParameters *outputParameters: NULL\n" ));
+    }else{
+        PA_LOGAPI(("\tPaStreamParameters *outputParameters: 0x%p\n", outputParameters ));
+        PA_LOGAPI(("\tPaDeviceIndex outputParameters->device: %d\n", outputParameters->device ));
+        PA_LOGAPI(("\tint outputParameters->channelCount: %d\n", outputParameters->channelCount ));
+        PA_LOGAPI(("\tPaSampleFormat outputParameters->sampleFormat: %d\n", outputParameters->sampleFormat ));
+        PA_LOGAPI(("\tPaTime outputParameters->suggestedLatency: %f\n", outputParameters->suggestedLatency ));
+        PA_LOGAPI(("\tvoid *outputParameters->hostApiSpecificStreamInfo: 0x%p\n", outputParameters->hostApiSpecificStreamInfo ));
+    }
+    
+    PA_LOGAPI(("\tdouble sampleRate: %g\n", sampleRate ));
+    PA_LOGAPI(("\tunsigned long framesPerBuffer: %d\n", framesPerBuffer ));
+    PA_LOGAPI(("\tPaStreamFlags streamFlags: 0x%x\n", streamFlags ));
+    PA_LOGAPI(("\tPaStreamCallback *streamCallback: 0x%p\n", streamCallback ));
+    PA_LOGAPI(("\tvoid *userData: 0x%p\n", userData ));
+#endif
+
+    if( !PA_IS_INITIALISED_ )
+    {
+        result = paNotInitialized;
+
+        PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+        PA_LOGAPI(("\t*(PaStream** stream): undefined\n" ));
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+        return result;
+    }
+
+    /* Check for parameter errors.
+        NOTE: make sure this validation list is kept syncronised with the one
+        in pa_hostapi.h
+    */
+
+    if( stream == NULL )
+    {
+        result = paBadStreamPtr;
+
+        PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+        PA_LOGAPI(("\t*(PaStream** stream): undefined\n" ));
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+        return result;
+    }
+
+    result = ValidateOpenStreamParameters( inputParameters,
+                                           outputParameters,
+                                           sampleRate, framesPerBuffer,
+                                           streamFlags, streamCallback,
+                                           &hostApi,
+                                           &hostApiInputDevice,
+                                           &hostApiOutputDevice );
+    if( result != paNoError )
+    {
+        PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+        PA_LOGAPI(("\t*(PaStream** stream): undefined\n" ));
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+        return result;
+    }
+    
+
+    if( inputParameters )
+    {
+        hostApiInputParameters.device = hostApiInputDevice;
+        hostApiInputParameters.channelCount = inputParameters->channelCount;
+        hostApiInputParameters.sampleFormat = inputParameters->sampleFormat;
+        hostApiInputParameters.suggestedLatency = inputParameters->suggestedLatency;
+        hostApiInputParameters.hostApiSpecificStreamInfo = inputParameters->hostApiSpecificStreamInfo;
+        hostApiInputParametersPtr = &hostApiInputParameters;
+    }
+    else
+    {
+        hostApiInputParametersPtr = NULL;
+    }
+
+    if( outputParameters )
+    {
+        hostApiOutputParameters.device = hostApiOutputDevice;
+        hostApiOutputParameters.channelCount = outputParameters->channelCount;
+        hostApiOutputParameters.sampleFormat = outputParameters->sampleFormat;
+        hostApiOutputParameters.suggestedLatency = outputParameters->suggestedLatency;
+        hostApiOutputParameters.hostApiSpecificStreamInfo = outputParameters->hostApiSpecificStreamInfo;
+        hostApiOutputParametersPtr = &hostApiOutputParameters;
+    }
+    else
+    {
+        hostApiOutputParametersPtr = NULL;
+    }
+
+    result = hostApi->OpenStream( hostApi, stream,
+                                  hostApiInputParametersPtr, hostApiOutputParametersPtr,
+                                  sampleRate, framesPerBuffer, streamFlags, streamCallback, userData );
+
+    if( result == paNoError )
+        AddOpenStream( *stream );
+
+
+    PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+    PA_LOGAPI(("\t*(PaStream** stream): 0x%p\n", *stream ));
+    PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+
+    return result;
+}
+
+
+PaError Pa_OpenDefaultStream( PaStream** stream,
+                              int inputChannelCount,
+                              int outputChannelCount,
+                              PaSampleFormat sampleFormat,
+                              double sampleRate,
+                              unsigned long framesPerBuffer,
+                              PaStreamCallback *streamCallback,
+                              void *userData )
+{
+    PaError result;
+    PaStreamParameters hostApiInputParameters, hostApiOutputParameters;
+    PaStreamParameters *hostApiInputParametersPtr, *hostApiOutputParametersPtr;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_OpenDefaultStream" );
+    PA_LOGAPI(("\tPaStream** stream: 0x%p\n", stream ));
+    PA_LOGAPI(("\tint inputChannelCount: %d\n", inputChannelCount ));
+    PA_LOGAPI(("\tint outputChannelCount: %d\n", outputChannelCount ));
+    PA_LOGAPI(("\tPaSampleFormat sampleFormat: %d\n", sampleFormat ));
+    PA_LOGAPI(("\tdouble sampleRate: %g\n", sampleRate ));
+    PA_LOGAPI(("\tunsigned long framesPerBuffer: %d\n", framesPerBuffer ));
+    PA_LOGAPI(("\tPaStreamCallback *streamCallback: 0x%p\n", streamCallback ));
+    PA_LOGAPI(("\tvoid *userData: 0x%p\n", userData ));
+
+
+    if( inputChannelCount > 0 )
+    {
+        hostApiInputParameters.device = Pa_GetDefaultInputDevice();
+		if( hostApiInputParameters.device == paNoDevice )
+			return paDeviceUnavailable; 
+	
+        hostApiInputParameters.channelCount = inputChannelCount;
+        hostApiInputParameters.sampleFormat = sampleFormat;
+        /* defaultHighInputLatency is used below instead of
+           defaultLowInputLatency because it is more important for the default
+           stream to work reliably than it is for it to work with the lowest
+           latency.
+         */
+        hostApiInputParameters.suggestedLatency = 
+             Pa_GetDeviceInfo( hostApiInputParameters.device )->defaultHighInputLatency;
+        hostApiInputParameters.hostApiSpecificStreamInfo = NULL;
+        hostApiInputParametersPtr = &hostApiInputParameters;
+    }
+    else
+    {
+        hostApiInputParametersPtr = NULL;
+    }
+
+    if( outputChannelCount > 0 )
+    {
+        hostApiOutputParameters.device = Pa_GetDefaultOutputDevice();
+		if( hostApiOutputParameters.device == paNoDevice )
+			return paDeviceUnavailable; 
+
+        hostApiOutputParameters.channelCount = outputChannelCount;
+        hostApiOutputParameters.sampleFormat = sampleFormat;
+        /* defaultHighOutputLatency is used below instead of
+           defaultLowOutputLatency because it is more important for the default
+           stream to work reliably than it is for it to work with the lowest
+           latency.
+         */
+        hostApiOutputParameters.suggestedLatency =
+             Pa_GetDeviceInfo( hostApiOutputParameters.device )->defaultHighOutputLatency;
+        hostApiOutputParameters.hostApiSpecificStreamInfo = NULL;
+        hostApiOutputParametersPtr = &hostApiOutputParameters;
+    }
+    else
+    {
+        hostApiOutputParametersPtr = NULL;
+    }
+
+
+    result = Pa_OpenStream(
+                 stream, hostApiInputParametersPtr, hostApiOutputParametersPtr,
+                 sampleRate, framesPerBuffer, paNoFlag, streamCallback, userData );
+
+    PA_LOGAPI(("Pa_OpenDefaultStream returned:\n" ));
+    PA_LOGAPI(("\t*(PaStream** stream): 0x%p", *stream ));
+    PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+
+    return result;
+}
+
+
+PaError PaUtil_ValidateStreamPointer( PaStream* stream )
+{
+    if( !PA_IS_INITIALISED_ ) return paNotInitialized;
+
+    if( stream == NULL ) return paBadStreamPtr;
+
+    if( ((PaUtilStreamRepresentation*)stream)->magic != PA_STREAM_MAGIC )
+        return paBadStreamPtr;
+
+    return paNoError;
+}
+
+
+PaError Pa_CloseStream( PaStream* stream )
+{
+    PaUtilStreamInterface *interface;
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_CloseStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    /* always remove the open stream from our list, even if this function
+        eventually returns an error. Otherwise CloseOpenStreams() will
+        get stuck in an infinite loop */
+    RemoveOpenStream( stream ); /* be sure to call this _before_ closing the stream */
+
+    if( result == paNoError )
+    {
+        interface = PA_STREAM_INTERFACE(stream);
+
+        /* abort the stream if it isn't stopped */
+        result = interface->IsStopped( stream );
+        if( result == 1 )
+            result = paNoError;
+        else if( result == 0 )
+            result = interface->Abort( stream );
+
+        if( result == paNoError )                 /** @todo REVIEW: shouldn't we close anyway? */
+            result = interface->Close( stream );
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_CloseStream", result );
+
+    return result;
+}
+
+
+PaError Pa_SetStreamFinishedCallback( PaStream *stream, PaStreamFinishedCallback* streamFinishedCallback )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_SetStreamFinishedCallback" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+    PA_LOGAPI(("\tPaStreamFinishedCallback* streamFinishedCallback: 0x%p\n", streamFinishedCallback ));
+
+    if( result == paNoError )
+    {
+        result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+        if( result == 0 )
+        {
+            result = paStreamIsNotStopped ;
+        }
+        if( result == 1 )
+        {
+            PA_STREAM_REP( stream )->streamFinishedCallback = streamFinishedCallback;
+            result = paNoError;
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_SetStreamFinishedCallback", result );
+
+    return result;
+
+}
+
+
+PaError Pa_StartStream( PaStream *stream )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_StartStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+    {
+        result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+        if( result == 0 )
+        {
+            result = paStreamIsNotStopped ;
+        }
+        else if( result == 1 )
+        {
+            result = PA_STREAM_INTERFACE(stream)->Start( stream );
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_StartStream", result );
+
+    return result;
+}
+
+
+PaError Pa_StopStream( PaStream *stream )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_StopStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+    {
+        result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+        if( result == 0 )
+        {
+            result = PA_STREAM_INTERFACE(stream)->Stop( stream );
+        }
+        else if( result == 1 )
+        {
+            result = paStreamIsStopped;
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_StopStream", result );
+
+    return result;
+}
+
+
+PaError Pa_AbortStream( PaStream *stream )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_AbortStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+    {
+        result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+        if( result == 0 )
+        {
+            result = PA_STREAM_INTERFACE(stream)->Abort( stream );
+        }
+        else if( result == 1 )
+        {
+            result = paStreamIsStopped;
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_AbortStream", result );
+
+    return result;
+}
+
+
+PaError Pa_IsStreamStopped( PaStream *stream )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_IsStreamStopped" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+        result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_IsStreamStopped", result );
+
+    return result;
+}
+
+
+PaError Pa_IsStreamActive( PaStream *stream )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_IsStreamActive" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+        result = PA_STREAM_INTERFACE(stream)->IsActive( stream );
+
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_IsStreamActive", result );
+
+    return result;
+}
+
+
+const PaStreamInfo* Pa_GetStreamInfo( PaStream *stream )
+{
+    PaError error = PaUtil_ValidateStreamPointer( stream );
+    const PaStreamInfo *result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetStreamInfo" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( error != paNoError )
+    {
+        result = 0;
+
+        PA_LOGAPI(("Pa_GetStreamInfo returned:\n" ));
+        PA_LOGAPI(("\tconst PaStreamInfo*: 0 [PaError error:%d ( %s )]\n", result, error, Pa_GetErrorText( error ) ));
+
+    }
+    else
+    {
+        result = &PA_STREAM_REP( stream )->streamInfo;
+
+        PA_LOGAPI(("Pa_GetStreamInfo returned:\n" ));
+        PA_LOGAPI(("\tconst PaStreamInfo*: 0x%p:\n", result ));
+        PA_LOGAPI(("\t{" ));
+
+        PA_LOGAPI(("\t\tint structVersion: %d\n", result->structVersion ));
+        PA_LOGAPI(("\t\tPaTime inputLatency: %f\n", result->inputLatency ));
+        PA_LOGAPI(("\t\tPaTime outputLatency: %f\n", result->outputLatency ));
+        PA_LOGAPI(("\t\tdouble sampleRate: %f\n", result->sampleRate ));
+        PA_LOGAPI(("\t}\n" ));
+
+    }
+
+    return result;
+}
+
+
+PaTime Pa_GetStreamTime( PaStream *stream )
+{
+    PaError error = PaUtil_ValidateStreamPointer( stream );
+    PaTime result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetStreamTime" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( error != paNoError )
+    {
+        result = 0;
+
+        PA_LOGAPI(("Pa_GetStreamTime returned:\n" ));
+        PA_LOGAPI(("\tPaTime: 0 [PaError error:%d ( %s )]\n", result, error, Pa_GetErrorText( error ) ));
+
+    }
+    else
+    {
+        result = PA_STREAM_INTERFACE(stream)->GetTime( stream );
+
+        PA_LOGAPI(("Pa_GetStreamTime returned:\n" ));
+        PA_LOGAPI(("\tPaTime: %g\n", result ));
+
+    }
+
+    return result;
+}
+
+
+double Pa_GetStreamCpuLoad( PaStream* stream )
+{
+    PaError error = PaUtil_ValidateStreamPointer( stream );
+    double result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetStreamCpuLoad" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( error != paNoError )
+    {
+
+        result = 0.0;
+
+        PA_LOGAPI(("Pa_GetStreamCpuLoad returned:\n" ));
+        PA_LOGAPI(("\tdouble: 0.0 [PaError error: %d ( %s )]\n", error, Pa_GetErrorText( error ) ));
+
+    }
+    else
+    {
+        result = PA_STREAM_INTERFACE(stream)->GetCpuLoad( stream );
+
+        PA_LOGAPI(("Pa_GetStreamCpuLoad returned:\n" ));
+        PA_LOGAPI(("\tdouble: %g\n", result ));
+
+    }
+
+    return result;
+}
+
+
+PaError Pa_ReadStream( PaStream* stream,
+                       void *buffer,
+                       unsigned long frames )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_ReadStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+    {
+        if( frames == 0 )
+        {
+            /* XXX: Should we not allow the implementation to signal any overflow condition? */
+            result = paNoError;
+        }
+        else if( buffer == 0 )
+        {
+            result = paBadBufferPtr;
+        }
+        else
+        {
+            result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+            if( result == 0 )
+            {
+                result = PA_STREAM_INTERFACE(stream)->Read( stream, buffer, frames );
+            }
+            else if( result == 1 )
+            {
+                result = paStreamIsStopped;
+            }
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_ReadStream", result );
+
+    return result;
+}
+
+
+PaError Pa_WriteStream( PaStream* stream,
+                        const void *buffer,
+                        unsigned long frames )
+{
+    PaError result = PaUtil_ValidateStreamPointer( stream );
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_WriteStream" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( result == paNoError )
+    {
+        if( frames == 0 )
+        {
+            /* XXX: Should we not allow the implementation to signal any underflow condition? */
+            result = paNoError;
+        }
+        else if( buffer == 0 )
+        {
+            result = paBadBufferPtr;
+        }
+        else
+        {
+            result = PA_STREAM_INTERFACE(stream)->IsStopped( stream );
+            if( result == 0 )
+            {
+                result = PA_STREAM_INTERFACE(stream)->Write( stream, buffer, frames );
+            }
+            else if( result == 1 )
+            {
+                result = paStreamIsStopped;
+            }  
+        }
+    }
+
+    PA_LOGAPI_EXIT_PAERROR( "Pa_WriteStream", result );
+
+    return result;
+}
+
+signed long Pa_GetStreamReadAvailable( PaStream* stream )
+{
+    PaError error = PaUtil_ValidateStreamPointer( stream );
+    signed long result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetStreamReadAvailable" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( error != paNoError )
+    {
+        result = 0;
+
+        PA_LOGAPI(("Pa_GetStreamReadAvailable returned:\n" ));
+        PA_LOGAPI(("\tunsigned long: 0 [ PaError error: %d ( %s ) ]\n", error, Pa_GetErrorText( error ) ));
+
+    }
+    else
+    {
+        result = PA_STREAM_INTERFACE(stream)->GetReadAvailable( stream );
+
+        PA_LOGAPI(("Pa_GetStreamReadAvailable returned:\n" ));
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+
+    }
+
+    return result;
+}
+
+
+signed long Pa_GetStreamWriteAvailable( PaStream* stream )
+{
+    PaError error = PaUtil_ValidateStreamPointer( stream );
+    signed long result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetStreamWriteAvailable" );
+    PA_LOGAPI(("\tPaStream* stream: 0x%p\n", stream ));
+
+    if( error != paNoError )
+    {
+        result = 0;
+
+        PA_LOGAPI(("Pa_GetStreamWriteAvailable returned:\n" ));
+        PA_LOGAPI(("\tunsigned long: 0 [ PaError error: %d ( %s ) ]\n", error, Pa_GetErrorText( error ) ));
+
+    }
+    else
+    {
+        result = PA_STREAM_INTERFACE(stream)->GetWriteAvailable( stream );
+
+        PA_LOGAPI(("Pa_GetStreamWriteAvailable returned:\n" ));
+        PA_LOGAPI(("\tPaError: %d ( %s )\n", result, Pa_GetErrorText( result ) ));
+
+    }
+
+    return result;
+}
+
+
+PaError Pa_GetSampleSize( PaSampleFormat format )
+{
+    int result;
+
+    PA_LOGAPI_ENTER_PARAMS( "Pa_GetSampleSize" );
+    PA_LOGAPI(("\tPaSampleFormat format: %d\n", format ));
+
+    switch( format & ~paNonInterleaved )
+    {
+
+    case paUInt8:
+    case paInt8:
+        result = 1;
+        break;
+
+    case paInt16:
+        result = 2;
+        break;
+
+    case paInt24:
+        result = 3;
+        break;
+
+    case paFloat32:
+    case paInt32:
+        result = 4;
+        break;
+
+    default:
+        result = paSampleFormatNotSupported;
+        break;
+    }
+
+    PA_LOGAPI_EXIT_PAERROR_OR_T_RESULT( "Pa_GetSampleSize", "int: %d", result );
+
+    return (PaError) result;
+}
+
diff --git a/external/portaudio2007/pa_hostapi.h b/external/portaudio2007/pa_hostapi.h
new file mode 100644
index 0000000..5a86d4e
--- /dev/null
+++ b/external/portaudio2007/pa_hostapi.h
@@ -0,0 +1,253 @@
+#ifndef PA_HOSTAPI_H
+#define PA_HOSTAPI_H
+/*
+ * $Id: pa_hostapi.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * host api representation
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Interface used by pa_front to virtualize functions which operate on
+ host APIs.
+*/
+
+
+#include "portaudio.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/** **FOR THE USE OF pa_front.c ONLY**
+    Do NOT use fields in this structure, they my change at any time.
+    Use functions defined in pa_util.h if you think you need functionality
+    which can be derived from here.
+*/
+typedef struct PaUtilPrivatePaFrontHostApiInfo {
+
+
+    unsigned long baseDeviceIndex;
+}PaUtilPrivatePaFrontHostApiInfo;
+
+
+/** The common header for all data structures whose pointers are passed through
+ the hostApiSpecificStreamInfo field of the PaStreamParameters structure.
+ Note that in order to keep the public PortAudio interface clean, this structure
+ is not used explicitly when declaring hostApiSpecificStreamInfo data structures.
+ However, some code in pa_front depends on the first 3 members being equivalent
+ with this structure.
+ @see PaStreamParameters
+*/
+typedef struct PaUtilHostApiSpecificStreamInfoHeader
+{
+    unsigned long size;             /**< size of whole structure including this header */
+    PaHostApiTypeId hostApiType;    /**< host API for which this data is intended */
+    unsigned long version;          /**< structure version */
+} PaUtilHostApiSpecificStreamInfoHeader;
+
+
+
+/** A structure representing the interface to a host API. Contains both
+ concrete data and pointers to functions which implement the interface.
+*/
+typedef struct PaUtilHostApiRepresentation {
+    PaUtilPrivatePaFrontHostApiInfo privatePaFrontInfo;
+
+    /** The host api implementation should populate the info field. In the
+        case of info.defaultInputDevice and info.defaultOutputDevice the
+        values stored should be 0 based indices within the host api's own
+        device index range (0 to deviceCount). These values will be converted
+        to global device indices by pa_front after PaUtilHostApiInitializer()
+        returns.
+    */
+    PaHostApiInfo info;
+
+    PaDeviceInfo** deviceInfos;
+
+    /**
+        (*Terminate)() is guaranteed to be called with a valid <hostApi>
+        parameter, which was previously returned from the same implementation's
+        initializer.
+    */
+    void (*Terminate)( struct PaUtilHostApiRepresentation *hostApi );
+
+    /**
+        The inputParameters and outputParameters pointers should not be saved
+        as they will not remain valid after OpenStream is called.
+
+        
+        The following guarantees are made about parameters to (*OpenStream)():
+
+            [NOTE: the following list up to *END PA FRONT VALIDATIONS* should be
+                kept in sync with the one for ValidateOpenStreamParameters and
+                Pa_OpenStream in pa_front.c]
+                
+            PaHostApiRepresentation *hostApi
+                - is valid for this implementation
+
+            PaStream** stream
+                - is non-null
+
+            - at least one of inputParameters & outputParmeters is valid (not NULL)
+
+            - if inputParameters & outputParmeters are both valid, that
+                inputParameters->device & outputParmeters->device  both use the same host api
+ 
+            PaDeviceIndex inputParameters->device
+                - is within range (0 to Pa_CountDevices-1) Or:
+                - is paUseHostApiSpecificDeviceSpecification and
+                    inputParameters->hostApiSpecificStreamInfo is non-NULL and refers
+                    to a valid host api
+
+            int inputParameters->numChannels
+                - if inputParameters->device is not paUseHostApiSpecificDeviceSpecification, numInputChannels is > 0
+                - upper bound is NOT validated against device capabilities
+ 
+            PaSampleFormat inputParameters->sampleFormat
+                - is one of the sample formats defined in portaudio.h
+
+            void *inputParameters->hostApiSpecificStreamInfo
+                - if supplied its hostApi field matches the input device's host Api
+ 
+            PaDeviceIndex outputParmeters->device
+                - is within range (0 to Pa_CountDevices-1)
+ 
+            int outputParmeters->numChannels
+                - if inputDevice is valid, numInputChannels is > 0
+                - upper bound is NOT validated against device capabilities
+ 
+            PaSampleFormat outputParmeters->sampleFormat
+                - is one of the sample formats defined in portaudio.h
+        
+            void *outputParmeters->hostApiSpecificStreamInfo
+                - if supplied its hostApi field matches the output device's host Api
+ 
+            double sampleRate
+                - is not an 'absurd' rate (less than 1000. or greater than 200000.)
+                - sampleRate is NOT validated against device capabilities
+ 
+            PaStreamFlags streamFlags
+                - unused platform neutral flags are zero
+                - paNeverDropInput is only used for full-duplex callback streams
+                    with variable buffer size (paFramesPerBufferUnspecified)
+
+            [*END PA FRONT VALIDATIONS*]
+
+
+        The following validations MUST be performed by (*OpenStream)():
+
+            - check that input device can support numInputChannels
+            
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - if inputStreamInfo is supplied, validate its contents,
+                or return an error if no inputStreamInfo is expected
+
+            - check that output device can support numOutputChannels
+            
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - if outputStreamInfo is supplied, validate its contents,
+                or return an error if no outputStreamInfo is expected
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported
+
+            - check that the device supports sampleRate
+
+            - alter sampleRate to a close allowable rate if necessary
+
+            - validate inputLatency and outputLatency
+
+            - validate any platform specific flags, if flags are supplied they
+                must be valid.
+    */
+    PaError (*OpenStream)( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** stream,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerCallback,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+
+
+    PaError (*IsFormatSupported)( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+} PaUtilHostApiRepresentation;
+
+
+/** Prototype for the initialization function which must be implemented by every
+ host API.
+ 
+ @see paHostApiInitializers
+*/
+typedef PaError PaUtilHostApiInitializer( PaUtilHostApiRepresentation**, PaHostApiIndex );
+
+
+/** paHostApiInitializers is a NULL-terminated array of host API initialization
+ functions. These functions are called by pa_front to initialize the host APIs
+ when the client calls Pa_Initialize().
+
+ There is a platform specific file which defines paHostApiInitializers for that
+ platform, pa_win/pa_win_hostapis.c contains the Win32 definitions for example.
+*/
+extern PaUtilHostApiInitializer *paHostApiInitializers[];
+
+
+/** The index of the default host API in the paHostApiInitializers array.
+ 
+ There is a platform specific file which defines paDefaultHostApiIndex for that
+ platform, see pa_win/pa_win_hostapis.c for example.
+*/
+extern int paDefaultHostApiIndex;
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_HOSTAPI_H */
diff --git a/external/portaudio2007/pa_linux_alsa.c b/external/portaudio2007/pa_linux_alsa.c
new file mode 100644
index 0000000..3bbcd19
--- /dev/null
+++ b/external/portaudio2007/pa_linux_alsa.c
@@ -0,0 +1,3565 @@
+#if defined (UNIX) && defined (ALSA)
+/*
+ * $Id: pa_linux_alsa.c 1278 2007-09-12 17:39:48Z aknudsen $
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ * ALSA implementation by Joshua Haberman and Arve Knudsen
+ *
+ * Copyright (c) 2002 Joshua Haberman <joshua at haberman.com>
+ * Copyright (c) 2005-2007 Arve Knudsen <aknuds-1 at broadpark.no>
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostapi_src
+*/
+
+#define ALSA_PCM_NEW_HW_PARAMS_API
+#define ALSA_PCM_NEW_SW_PARAMS_API
+#include <alsa/asoundlib.h>
+#undef ALSA_PCM_NEW_HW_PARAMS_API
+#undef ALSA_PCM_NEW_SW_PARAMS_API
+
+#include <sys/poll.h>
+#include <string.h> /* strlen() */
+#include <limits.h>
+#include <math.h>
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/mman.h>
+#include <signal.h> /* For sig_atomic_t */
+
+#include "portaudio.h"
+#include "pa_util.h"
+#include "pa_unix_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "pa_endianness.h"
+#include "pa_debugprint.h"
+
+#include "pa_linux_alsa.h"
+
+/* Check return value of ALSA function, and map it to PaError */
+#define ENSURE_(expr, code) \
+    do { \
+        if( UNLIKELY( (aErr_ = (expr)) < 0 ) ) \
+        { \
+            /* PaUtil_SetLastHostErrorInfo should only be used in the main thread */ \
+            if( (code) == paUnanticipatedHostError && pthread_equal( pthread_self(), paUnixMainThread) ) \
+            { \
+                PaUtil_SetLastHostErrorInfo( paALSA, aErr_, snd_strerror( aErr_ ) ); \
+            } \
+            PaUtil_DebugPrint( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" ); \
+            if( (code) == paUnanticipatedHostError ) \
+                PA_DEBUG(( "Host error description: %s\n", snd_strerror( aErr_ ) )); \
+            result = (code); \
+            goto error; \
+        } \
+    } while( 0 );
+
+#define ASSERT_CALL_(expr, success) \
+    aErr_ = (expr); \
+    assert( success == aErr_ );
+
+static int aErr_;               /* Used with ENSURE_ */
+static int numPeriods_ = 4;
+
+int PaAlsa_SetNumPeriods( int numPeriods )
+{
+    numPeriods_ = numPeriods;
+    return paNoError;
+}
+
+typedef enum
+{
+    StreamDirection_In,
+    StreamDirection_Out
+} StreamDirection;
+
+typedef struct
+{
+    PaSampleFormat hostSampleFormat;
+    unsigned long framesPerBuffer;
+    int numUserChannels, numHostChannels;
+    int userInterleaved, hostInterleaved;
+    PaDeviceIndex device;     /* Keep the device index */
+
+    snd_pcm_t *pcm;
+    snd_pcm_uframes_t bufferSize;
+    snd_pcm_format_t nativeFormat;
+    unsigned int nfds;
+    int ready;  /* Marked ready from poll */
+    void **userBuffers;
+    snd_pcm_uframes_t offset;
+    StreamDirection streamDir;
+
+    snd_pcm_channel_area_t *channelAreas;  /* Needed for channel adaption */
+} PaAlsaStreamComponent;
+
+/* Implementation specific stream structure */
+typedef struct PaAlsaStream
+{
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+    PaUnixThread thread;
+
+    unsigned long framesPerUserBuffer, maxFramesPerHostBuffer;
+
+    int primeBuffers;
+    int callbackMode;              /* bool: are we running in callback mode? */
+    int pcmsSynced;	            /* Have we successfully synced pcms */
+    int rtSched;
+
+    /* the callback thread uses these to poll the sound device(s), waiting
+     * for data to be ready/available */
+    struct pollfd* pfds;
+    int pollTimeout;
+
+    /* Used in communication between threads */
+    volatile sig_atomic_t callback_finished; /* bool: are we in the "callback finished" state? */
+    volatile sig_atomic_t callbackAbort;    /* Drop frames? */
+    volatile sig_atomic_t isActive;         /* Is stream in active state? (Between StartStream and StopStream || !paContinue) */
+    PaUnixMutex stateMtx;                   /* Used to synchronize access to stream state */
+
+    int neverDropInput;
+
+    PaTime underrun;
+    PaTime overrun;
+
+    PaAlsaStreamComponent capture, playback;
+}
+PaAlsaStream;
+
+/* PaAlsaHostApiRepresentation - host api datastructure specific to this implementation */
+
+typedef struct PaAlsaHostApiRepresentation
+{
+    PaUtilHostApiRepresentation baseHostApiRep;
+    PaUtilStreamInterface callbackStreamInterface;
+    PaUtilStreamInterface blockingStreamInterface;
+
+    PaUtilAllocationGroup *allocations;
+
+    PaHostApiIndex hostApiIndex;
+}
+PaAlsaHostApiRepresentation;
+
+typedef struct PaAlsaDeviceInfo
+{
+    PaDeviceInfo baseDeviceInfo;
+    char *alsaName;
+    int isPlug;
+    int minInputChannels;
+    int minOutputChannels;
+}
+PaAlsaDeviceInfo;
+
+/* prototypes for functions declared in this file */
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *callback,
+                           void *userData );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError BuildDeviceList( PaAlsaHostApiRepresentation *hostApi );
+static int SetApproximateSampleRate( snd_pcm_t *pcm, snd_pcm_hw_params_t *hwParams, double sampleRate );
+static int GetExactSampleRate( snd_pcm_hw_params_t *hwParams, double *sampleRate );
+
+/* Callback prototypes */
+static void *CallbackThreadFunc( void *userData );
+
+/* Blocking prototypes */
+static signed long GetStreamReadAvailable( PaStream* s );
+static signed long GetStreamWriteAvailable( PaStream* s );
+static PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+static PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+
+
+static const PaAlsaDeviceInfo *GetDeviceInfo( const PaUtilHostApiRepresentation *hostApi, int device )
+{
+    return (const PaAlsaDeviceInfo *)hostApi->deviceInfos[device];
+}
+
+static void AlsaErrorHandler(const char *file, int line, const char *function, int err, const char *fmt, ...)
+{
+}
+
+PaError PaAlsa_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    PaAlsaHostApiRepresentation *alsaHostApi = NULL;
+
+    PA_UNLESS( alsaHostApi = (PaAlsaHostApiRepresentation*) PaUtil_AllocateMemory(
+                sizeof(PaAlsaHostApiRepresentation) ), paInsufficientMemory );
+    PA_UNLESS( alsaHostApi->allocations = PaUtil_CreateAllocationGroup(), paInsufficientMemory );
+    alsaHostApi->hostApiIndex = hostApiIndex;
+
+    *hostApi = (PaUtilHostApiRepresentation*)alsaHostApi;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paALSA;
+    (*hostApi)->info.name = "ALSA";
+
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    ENSURE_( snd_lib_error_set_handler(AlsaErrorHandler), paUnanticipatedHostError );
+
+    PA_ENSURE( BuildDeviceList( alsaHostApi ) );
+
+    PaUtil_InitializeStreamInterface( &alsaHostApi->callbackStreamInterface,
+                                      CloseStream, StartStream,
+                                      StopStream, AbortStream,
+                                      IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable,
+                                      PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &alsaHostApi->blockingStreamInterface,
+                                      CloseStream, StartStream,
+                                      StopStream, AbortStream,
+                                      IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream,
+                                      GetStreamReadAvailable,
+                                      GetStreamWriteAvailable );
+
+    PA_ENSURE( PaUnixThreading_Initialize() );
+
+    return result;
+
+error:
+    if( alsaHostApi )
+    {
+        if( alsaHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( alsaHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( alsaHostApi->allocations );
+        }
+
+        PaUtil_FreeMemory( alsaHostApi );
+    }
+
+    return result;
+}
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaAlsaHostApiRepresentation *alsaHostApi = (PaAlsaHostApiRepresentation*)hostApi;
+
+    assert( hostApi );
+
+    if( alsaHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( alsaHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( alsaHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( alsaHostApi );
+    snd_config_update_free_global();
+}
+
+/** Determine max channels and default latencies.
+ *
+ * This function provides functionality to grope an opened (might be opened for capture or playback) pcm device for 
+ * traits like max channels, suitable default latencies and default sample rate. Upon error, max channels is set to zero,
+ * and a suitable result returned. The device is closed before returning.
+ */
+static PaError GropeDevice( snd_pcm_t* pcm, int isPlug, StreamDirection mode, int openBlocking,
+        PaAlsaDeviceInfo* devInfo, int* canMmap )
+{
+    PaError result = paNoError;
+    snd_pcm_hw_params_t *hwParams;
+    snd_pcm_uframes_t lowLatency = 512, highLatency = 2048;
+    unsigned int minChans, maxChans;
+    int* minChannels, * maxChannels;
+    double * defaultLowLatency, * defaultHighLatency, * defaultSampleRate =
+        &devInfo->baseDeviceInfo.defaultSampleRate;
+    double defaultSr = *defaultSampleRate;
+
+    assert( pcm );
+
+    if( StreamDirection_In == mode )
+    {
+        minChannels = &devInfo->minInputChannels;
+        maxChannels = &devInfo->baseDeviceInfo.maxInputChannels;
+        defaultLowLatency = &devInfo->baseDeviceInfo.defaultLowInputLatency;
+        defaultHighLatency = &devInfo->baseDeviceInfo.defaultHighInputLatency;
+    }
+    else
+    {
+        minChannels = &devInfo->minOutputChannels;
+        maxChannels = &devInfo->baseDeviceInfo.maxOutputChannels;
+        defaultLowLatency = &devInfo->baseDeviceInfo.defaultLowOutputLatency;
+        defaultHighLatency = &devInfo->baseDeviceInfo.defaultHighOutputLatency;
+    }
+
+    ENSURE_( snd_pcm_nonblock( pcm, 0 ), paUnanticipatedHostError );
+
+    snd_pcm_hw_params_alloca( &hwParams );
+    snd_pcm_hw_params_any( pcm, hwParams );
+
+    *canMmap = snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_INTERLEAVED ) >= 0 ||
+            snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_NONINTERLEAVED ) >= 0;
+
+    if( defaultSr >= 0 )
+    {
+        /* Could be that the device opened in one mode supports samplerates that the other mode wont have,
+         * so try again .. */
+        if( SetApproximateSampleRate( pcm, hwParams, defaultSr ) < 0 )
+        {
+            defaultSr = -1.;
+            PA_DEBUG(( "%s: Original default samplerate failed, trying again ..\n", __FUNCTION__ ));
+        }
+    }
+
+    if( defaultSr < 0. )           /* Default sample rate not set */
+    {
+        unsigned int sampleRate = 44100;        /* Will contain approximate rate returned by alsa-lib */
+        if( snd_pcm_hw_params_set_rate_near( pcm, hwParams, &sampleRate, NULL ) < 0)
+        {
+            result = paUnanticipatedHostError;
+            goto error;
+        }
+        ENSURE_( GetExactSampleRate( hwParams, &defaultSr ), paUnanticipatedHostError );
+    }
+    
+    ENSURE_( snd_pcm_hw_params_get_channels_min( hwParams, &minChans ), paUnanticipatedHostError );
+    ENSURE_( snd_pcm_hw_params_get_channels_max( hwParams, &maxChans ), paUnanticipatedHostError );
+    assert( maxChans <= INT_MAX );
+    assert( maxChans > 0 );    /* Weird linking issue could cause wrong version of ALSA symbols to be called,
+                                   resulting in zeroed values */
+
+    /* XXX: Limit to sensible number (ALSA plugins accept a crazy amount of channels)? */
+    if( isPlug && maxChans > 128 )
+    {
+        maxChans = 128;
+        PA_DEBUG(( "%s: Limiting number of plugin channels to %u\n", __FUNCTION__, maxChans ));
+    }
+
+    /* TWEAKME:
+     *
+     * Giving values for default min and max latency is not
+     * straightforward.  Here are our objectives:
+     *
+     *         * for low latency, we want to give the lowest value
+     *         that will work reliably.  This varies based on the
+     *         sound card, kernel, CPU, etc.  I think it is better
+     *         to give sub-optimal latency than to give a number
+     *         too low and cause dropouts.  My conservative
+     *         estimate at this point is to base it on 4096-sample
+     *         latency at 44.1 kHz, which gives a latency of 23ms.
+     *         * for high latency we want to give a large enough
+     *         value that dropouts are basically impossible.  This
+     *         doesn't really require as much tweaking, since
+     *         providing too large a number will just cause us to
+     *         select the nearest setting that will work at stream
+     *         config time.
+     */
+    ENSURE_( snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency ), paUnanticipatedHostError );
+
+    /* Have to reset hwParams, to set new buffer size */
+    ENSURE_( snd_pcm_hw_params_any( pcm, hwParams ), paUnanticipatedHostError ); 
+    ENSURE_( snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &highLatency ), paUnanticipatedHostError );
+
+    *minChannels = (int)minChans;
+    *maxChannels = (int)maxChans;
+    *defaultSampleRate = defaultSr;
+    *defaultLowLatency = (double) lowLatency / *defaultSampleRate;
+    *defaultHighLatency = (double) highLatency / *defaultSampleRate;
+
+end:
+    snd_pcm_close( pcm );
+    return result;
+
+error:
+    goto end;
+}
+
+/* Initialize device info with invalid values (maxInputChannels and maxOutputChannels are set to zero since these indicate
+ * wether input/output is available) */
+static void InitializeDeviceInfo( PaDeviceInfo *deviceInfo )
+{
+    deviceInfo->structVersion = -1;
+    deviceInfo->name = NULL;
+    deviceInfo->hostApi = -1;
+    deviceInfo->maxInputChannels = 0;
+    deviceInfo->maxOutputChannels = 0;
+    deviceInfo->defaultLowInputLatency = -1.;
+    deviceInfo->defaultLowOutputLatency = -1.;
+    deviceInfo->defaultHighInputLatency = -1.;
+    deviceInfo->defaultHighOutputLatency = -1.;
+    deviceInfo->defaultSampleRate = -1.;
+}
+
+/* Helper struct */
+typedef struct
+{
+    char *alsaName;
+    char *name;
+    int isPlug;
+    int hasPlayback;
+    int hasCapture;
+} HwDevInfo;
+
+
+HwDevInfo predefinedNames[] = {
+    { "center_lfe", NULL, 0, 1, 0 },
+/* { "default", NULL, 0, 1, 0 }, */
+/* { "dmix", NULL, 0, 1, 0 }, */
+/* { "dpl", NULL, 0, 1, 0 }, */
+/* { "dsnoop", NULL, 0, 1, 0 }, */
+    { "front", NULL, 0, 1, 0 },
+    { "iec958", NULL, 0, 1, 0 },
+/* { "modem", NULL, 0, 1, 0 }, */
+    { "rear", NULL, 0, 1, 0 },
+    { "side", NULL, 0, 1, 0 },
+/*     { "spdif", NULL, 0, 0, 0 }, */
+    { "surround40", NULL, 0, 1, 0 },
+    { "surround41", NULL, 0, 1, 0 },
+    { "surround50", NULL, 0, 1, 0 },
+    { "surround51", NULL, 0, 1, 0 },
+    { "surround71", NULL, 0, 1, 0 },
+    { NULL, NULL, 0, 1, 0 }
+};
+
+static const HwDevInfo *FindDeviceName( const char *name )
+{
+    int i;
+
+    for( i = 0; predefinedNames[i].alsaName; i++ )
+    {
+	if( strcmp( name, predefinedNames[i].alsaName ) == 0 )
+	{
+	    return &predefinedNames[i];
+	}
+    }
+
+    return NULL;
+}
+
+static PaError PaAlsa_StrDup( PaAlsaHostApiRepresentation *alsaApi,
+        char **dst,
+        const char *src)
+{
+    PaError result = paNoError;
+    int len = strlen( src ) + 1;
+
+    /* PA_DEBUG(("PaStrDup %s %d\n", src, len)); */
+
+    PA_UNLESS( *dst = (char *)PaUtil_GroupAllocateMemory( alsaApi->allocations, len ),
+            paInsufficientMemory );
+    strncpy( *dst, src, len );
+
+error:
+    return result;
+}
+
+/* Disregard some standard plugins
+ */
+static int IgnorePlugin( const char *pluginId )
+{
+    static const char *ignoredPlugins[] = {"hw", "plughw", "plug", "dsnoop", "tee",
+        "file", "null", "shm", "cards", "rate_convert", NULL};
+    int i = 0;
+    while( ignoredPlugins[i] )
+    {
+        if( !strcmp( pluginId, ignoredPlugins[i] ) )
+        {
+            return 1;
+        }
+        ++i;
+    }
+
+    return 0;
+}
+
+/** Open PCM device.
+ *
+ * Wrapper around snd_pcm_open which may repeatedly retry opening a device if it is busy, for
+ * a certain time. This is because dmix may temporarily hold on to a device after it (dmix)
+ * has been opened and closed.
+ * @param mode: Open mode (e.g., SND_PCM_BLOCKING).
+ * @param waitOnBusy: Retry opening busy device for up to one second?
+ **/
+static int OpenPcm( snd_pcm_t **pcmp, const char *name, snd_pcm_stream_t stream, int mode, int waitOnBusy )
+{
+    int tries = 0, maxTries = waitOnBusy ? 100 : 0;
+    int ret = snd_pcm_open( pcmp, name, stream, mode );
+    for( tries = 0; tries < maxTries && -EBUSY == ret; ++tries )
+    {
+        Pa_Sleep( 10 );
+        ret = snd_pcm_open( pcmp, name, stream, mode );
+        if( -EBUSY != ret )
+        {
+            PA_DEBUG(( "%s: Successfully opened initially busy device after %d tries\n",
+                        __FUNCTION__, tries ));
+        }
+    }
+    if( -EBUSY == ret )
+    {
+        PA_DEBUG(( "%s: Failed to open busy device '%s'\n",
+                    __FUNCTION__, name ));
+    }
+
+    return ret;
+}
+
+static PaError FillInDevInfo( PaAlsaHostApiRepresentation *alsaApi, HwDevInfo* deviceName, int blocking,
+        PaAlsaDeviceInfo* devInfo, int* devIdx )
+{
+    PaError result = 0;
+    PaDeviceInfo *baseDeviceInfo = &devInfo->baseDeviceInfo;
+    snd_pcm_t *pcm;
+    int canMmap = -1;
+    PaUtilHostApiRepresentation *baseApi = &alsaApi->baseHostApiRep;
+
+    /* Zero fields */
+    InitializeDeviceInfo( baseDeviceInfo );
+
+    /* to determine device capabilities, we must open the device and query the
+     * hardware parameter configuration space */
+
+    /* Query capture */
+    if( deviceName->hasCapture &&
+            OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_CAPTURE, blocking, 0 )
+            >= 0 )
+    {
+        if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_In, blocking, devInfo,
+                    &canMmap ) != paNoError )
+        {
+            /* Error */
+            PA_DEBUG(("%s: Failed groping %s for capture\n", __FUNCTION__, deviceName->alsaName));
+            goto end;
+        }
+    }
+
+    /* Query playback */
+    if( deviceName->hasPlayback &&
+            OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_PLAYBACK, blocking, 0 )
+            >= 0 )
+    {
+        if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_Out, blocking, devInfo,
+                    &canMmap ) != paNoError )
+        {
+            /* Error */
+            PA_DEBUG(("%s: Failed groping %s for playback\n", __FUNCTION__, deviceName->alsaName));
+            goto end;
+        }
+    }
+
+    if( 0 == canMmap )
+    {
+        PA_DEBUG(("%s: Device %s doesn't support mmap\n", __FUNCTION__, deviceName->alsaName));
+        goto end;
+    }
+
+    baseDeviceInfo->structVersion = 2;
+    baseDeviceInfo->hostApi = alsaApi->hostApiIndex;
+    baseDeviceInfo->name = deviceName->name;
+    devInfo->alsaName = deviceName->alsaName;
+    devInfo->isPlug = deviceName->isPlug;
+
+    /* A: Storing pointer to PaAlsaDeviceInfo object as pointer to PaDeviceInfo object.
+     * Should now be safe to add device info, unless the device supports neither capture nor playback
+     */
+    if( baseDeviceInfo->maxInputChannels > 0 || baseDeviceInfo->maxOutputChannels > 0 )
+    {
+        /* Make device default if there isn't already one or it is the ALSA "default" device */
+        if( (baseApi->info.defaultInputDevice == paNoDevice || !strcmp(deviceName->alsaName,
+                        "default" )) && baseDeviceInfo->maxInputChannels > 0 )
+        {
+            baseApi->info.defaultInputDevice = *devIdx;
+            PA_DEBUG(("Default input device: %s\n", deviceName->name));
+        }
+        if( (baseApi->info.defaultOutputDevice == paNoDevice || !strcmp(deviceName->alsaName,
+                        "default" )) && baseDeviceInfo->maxOutputChannels > 0 )
+        {
+            baseApi->info.defaultOutputDevice = *devIdx;
+            PA_DEBUG(("Default output device: %s\n", deviceName->name));
+        }
+        PA_DEBUG(("%s: Adding device %s: %d\n", __FUNCTION__, deviceName->name, *devIdx));
+        baseApi->deviceInfos[*devIdx] = (PaDeviceInfo *) devInfo;
+        (*devIdx) += 1;
+    }
+
+end:
+    return result;
+}
+
+/* Build PaDeviceInfo list, ignore devices for which we cannot determine capabilities (possibly busy, sigh) */
+static PaError BuildDeviceList( PaAlsaHostApiRepresentation *alsaApi )
+{
+    PaUtilHostApiRepresentation *baseApi = &alsaApi->baseHostApiRep;
+    PaAlsaDeviceInfo *deviceInfoArray;
+    int cardIdx = -1, devIdx = 0;
+    snd_ctl_card_info_t *cardInfo;
+    PaError result = paNoError;
+    size_t numDeviceNames = 0, maxDeviceNames = 1, i;
+    HwDevInfo *hwDevInfos = NULL;
+    snd_config_t *topNode = NULL;
+    snd_pcm_info_t *pcmInfo;
+    int res;
+    int blocking = SND_PCM_NONBLOCK;
+    char alsaCardName[50];
+#ifdef PA_ENABLE_DEBUG_OUTPUT
+    PaTime startTime = PaUtil_GetTime();
+#endif
+
+    if( getenv( "PA_ALSA_INITIALIZE_BLOCK" ) && atoi( getenv( "PA_ALSA_INITIALIZE_BLOCK" ) ) )
+        blocking = 0;
+
+    /* These two will be set to the first working input and output device, respectively */
+    baseApi->info.defaultInputDevice = paNoDevice;
+    baseApi->info.defaultOutputDevice = paNoDevice;
+
+    /* Gather info about hw devices
+
+     * snd_card_next() modifies the integer passed to it to be:
+     *      the index of the first card if the parameter is -1
+     *      the index of the next card if the parameter is the index of a card
+     *      -1 if there are no more cards
+     *
+     * The function itself returns 0 if it succeeded. */
+    cardIdx = -1;
+    snd_ctl_card_info_alloca( &cardInfo );
+    snd_pcm_info_alloca( &pcmInfo );
+    while( snd_card_next( &cardIdx ) == 0 && cardIdx >= 0 )
+    {
+        char *cardName;
+        int devIdx = -1;
+        snd_ctl_t *ctl;
+        char buf[50];
+
+        snprintf( alsaCardName, sizeof (alsaCardName), "hw:%d", cardIdx );
+
+        /* Acquire name of card */
+        if( snd_ctl_open( &ctl, alsaCardName, 0 ) < 0 )
+        {
+            /* Unable to open card :( */
+            PA_DEBUG(( "%s: Unable to open device %s\n", __FUNCTION__, alsaCardName ));
+            continue;
+        }
+        snd_ctl_card_info( ctl, cardInfo );
+
+        PA_ENSURE( PaAlsa_StrDup( alsaApi, &cardName, snd_ctl_card_info_get_name( cardInfo )) );
+
+        while( snd_ctl_pcm_next_device( ctl, &devIdx ) == 0 && devIdx >= 0 )
+        {
+            char *alsaDeviceName, *deviceName;
+            size_t len;
+            int hasPlayback = 0, hasCapture = 0;
+            snprintf( buf, sizeof (buf), "hw:%d,%d", cardIdx, devIdx );
+
+            /* Obtain info about this particular device */
+            snd_pcm_info_set_device( pcmInfo, devIdx );
+            snd_pcm_info_set_subdevice( pcmInfo, 0 );
+            snd_pcm_info_set_stream( pcmInfo, SND_PCM_STREAM_CAPTURE );
+            if( snd_ctl_pcm_info( ctl, pcmInfo ) >= 0 )
+            {
+                hasCapture = 1;
+            }
+            
+            snd_pcm_info_set_stream( pcmInfo, SND_PCM_STREAM_PLAYBACK );
+            if( snd_ctl_pcm_info( ctl, pcmInfo ) >= 0 )
+            {
+                hasPlayback = 1;
+            }
+
+            if( !hasPlayback && !hasCapture )
+            {
+                /* Error */
+                continue;
+            }
+
+            /* The length of the string written by snprintf plus terminating 0 */
+            len = snprintf( NULL, 0, "%s: %s (%s)", cardName, snd_pcm_info_get_name( pcmInfo ), buf ) + 1;
+            PA_UNLESS( deviceName = (char *)PaUtil_GroupAllocateMemory( alsaApi->allocations, len ),
+                    paInsufficientMemory );
+            snprintf( deviceName, len, "%s: %s (%s)", cardName,
+                    snd_pcm_info_get_name( pcmInfo ), buf );
+
+            ++numDeviceNames;
+            if( !hwDevInfos || numDeviceNames > maxDeviceNames )
+            {
+                maxDeviceNames *= 2;
+                PA_UNLESS( hwDevInfos = (HwDevInfo *) realloc( hwDevInfos, maxDeviceNames * sizeof (HwDevInfo) ),
+                        paInsufficientMemory );
+            }
+
+            PA_ENSURE( PaAlsa_StrDup( alsaApi, &alsaDeviceName, buf ) );
+
+            hwDevInfos[ numDeviceNames - 1 ].alsaName = alsaDeviceName;
+            hwDevInfos[ numDeviceNames - 1 ].name = deviceName;
+            hwDevInfos[ numDeviceNames - 1 ].isPlug = 0;
+            hwDevInfos[ numDeviceNames - 1 ].hasPlayback = hasPlayback;
+            hwDevInfos[ numDeviceNames - 1 ].hasCapture = hasCapture;
+        }
+        snd_ctl_close( ctl );
+    }
+
+    /* Iterate over plugin devices */
+
+    if( NULL == snd_config )
+    {
+        /* snd_config_update is called implicitly by some functions, if this hasn't happened snd_config will be NULL (bleh) */
+        ENSURE_( snd_config_update(), paUnanticipatedHostError );
+        PA_DEBUG(( "Updating snd_config\n" ));
+    }
+    assert( snd_config );
+    if( (res = snd_config_search( snd_config, "pcm", &topNode )) >= 0 )
+    {
+        snd_config_iterator_t i, next;
+
+        snd_config_for_each( i, next, topNode )
+        {
+            const char *tpStr = "unknown", *idStr = NULL;
+            int err = 0;
+
+            char *alsaDeviceName, *deviceName;
+	    const HwDevInfo *predefined = NULL;
+            snd_config_t *n = snd_config_iterator_entry( i ), * tp = NULL;;
+
+            if( (err = snd_config_search( n, "type", &tp )) < 0 )
+            {
+                if( -ENOENT != err )
+                {
+                    ENSURE_(err, paUnanticipatedHostError);
+                }
+            }
+            else 
+            {
+                ENSURE_( snd_config_get_string( tp, &tpStr ), paUnanticipatedHostError );
+            }
+            ENSURE_( snd_config_get_id( n, &idStr ), paUnanticipatedHostError );
+            if( IgnorePlugin( idStr ) )
+            {
+                PA_DEBUG(( "%s: Ignoring ALSA plugin device %s of type %s\n", __FUNCTION__, idStr, tpStr ));
+                continue;
+            }
+            PA_DEBUG(( "%s: Found plugin %s of type %s\n", __FUNCTION__, idStr, tpStr ));
+
+            PA_UNLESS( alsaDeviceName = (char*)PaUtil_GroupAllocateMemory( alsaApi->allocations,
+                                                            strlen(idStr) + 6 ), paInsufficientMemory );
+            strcpy( alsaDeviceName, idStr );
+            PA_UNLESS( deviceName = (char*)PaUtil_GroupAllocateMemory( alsaApi->allocations,
+                                                            strlen(idStr) + 1 ), paInsufficientMemory );
+            strcpy( deviceName, idStr );
+
+            ++numDeviceNames;
+            if( !hwDevInfos || numDeviceNames > maxDeviceNames )
+            {
+                maxDeviceNames *= 2;
+                PA_UNLESS( hwDevInfos = (HwDevInfo *) realloc( hwDevInfos, maxDeviceNames * sizeof (HwDevInfo) ),
+                        paInsufficientMemory );
+            }
+
+	    predefined = FindDeviceName( alsaDeviceName );
+
+            hwDevInfos[numDeviceNames - 1].alsaName = alsaDeviceName;
+            hwDevInfos[numDeviceNames - 1].name = deviceName;
+            hwDevInfos[numDeviceNames - 1].isPlug = 1;
+
+	    if( predefined )
+	    {
+		hwDevInfos[numDeviceNames - 1].hasPlayback =
+		    predefined->hasPlayback;
+		hwDevInfos[numDeviceNames - 1].hasCapture =
+		    predefined->hasCapture;
+	    }
+	    else
+	    {
+		hwDevInfos[numDeviceNames - 1].hasPlayback = 1;
+		hwDevInfos[numDeviceNames - 1].hasCapture = 1;
+	    }
+        }
+    }
+    else
+        PA_DEBUG(( "%s: Iterating over ALSA plugins failed: %s\n", __FUNCTION__, snd_strerror( res ) ));
+
+    /* allocate deviceInfo memory based on the number of devices */
+    PA_UNLESS( baseApi->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+            alsaApi->allocations, sizeof(PaDeviceInfo*) * (numDeviceNames) ), paInsufficientMemory );
+
+    /* allocate all device info structs in a contiguous block */
+    PA_UNLESS( deviceInfoArray = (PaAlsaDeviceInfo*)PaUtil_GroupAllocateMemory(
+            alsaApi->allocations, sizeof(PaAlsaDeviceInfo) * numDeviceNames ), paInsufficientMemory );
+
+    /* Loop over list of cards, filling in info. If a device is deemed unavailable (can't get name),
+     * it's ignored.
+     *
+     * Note that we do this in two stages. This is a workaround owing to the fact that the 'dmix'
+     * plugin may cause the underlying hardware device to be busy for a short while even after it
+     * (dmix) is closed. The 'default' plugin may also point to the dmix plugin, so the same goes
+     * for this.
+     */
+
+    for( i = 0, devIdx = 0; i < numDeviceNames; ++i )
+    {
+        PaAlsaDeviceInfo* devInfo = &deviceInfoArray[i];
+        HwDevInfo* hwInfo = &hwDevInfos[i];
+        if( !strcmp( hwInfo->name, "dmix" ) || !strcmp( hwInfo->name, "default" ) )
+        {
+            continue;
+        }
+
+        PA_ENSURE( FillInDevInfo( alsaApi, hwInfo, blocking, devInfo, &devIdx ) );
+    }
+    assert( devIdx < numDeviceNames );
+    /* Now inspect 'dmix' and 'default' plugins */
+    for( i = 0; i < numDeviceNames; ++i )
+    {
+        PaAlsaDeviceInfo* devInfo = &deviceInfoArray[i];
+        HwDevInfo* hwInfo = &hwDevInfos[i];
+        if( strcmp( hwInfo->name, "dmix" ) && strcmp( hwInfo->name, "default" ) )
+        {
+            continue;
+        }
+
+        PA_ENSURE( FillInDevInfo( alsaApi, hwInfo, blocking, devInfo,
+                    &devIdx ) );
+    }
+    free( hwDevInfos );
+
+    baseApi->info.deviceCount = devIdx;   /* Number of successfully queried devices */
+
+#ifdef PA_ENABLE_DEBUG_OUTPUT
+    PA_DEBUG(( "%s: Building device list took %f seconds\n", __FUNCTION__, PaUtil_GetTime() - startTime ));
+#endif
+
+end:
+    return result;
+
+error:
+    /* No particular action */
+    goto end;
+}
+
+/* Check against known device capabilities */
+static PaError ValidateParameters( const PaStreamParameters *parameters, PaUtilHostApiRepresentation *hostApi, StreamDirection mode )
+{
+    PaError result = paNoError;
+    int maxChans;
+    const PaAlsaDeviceInfo *deviceInfo = NULL;
+    assert( parameters );
+
+    if( parameters->device != paUseHostApiSpecificDeviceSpecification )
+    {
+        assert( parameters->device < hostApi->info.deviceCount );
+        PA_UNLESS( parameters->hostApiSpecificStreamInfo == NULL, paBadIODeviceCombination );
+        deviceInfo = GetDeviceInfo( hostApi, parameters->device );
+    }
+    else
+    {
+        const PaAlsaStreamInfo *streamInfo = parameters->hostApiSpecificStreamInfo;
+
+        PA_UNLESS( parameters->device == paUseHostApiSpecificDeviceSpecification, paInvalidDevice );
+        PA_UNLESS( streamInfo->size == sizeof (PaAlsaStreamInfo) && streamInfo->version == 1,
+                paIncompatibleHostApiSpecificStreamInfo );
+        PA_UNLESS( streamInfo->deviceString != NULL, paInvalidDevice );
+
+        /* Skip further checking */
+        return paNoError;
+    }
+
+    assert( deviceInfo );
+    assert( parameters->hostApiSpecificStreamInfo == NULL );
+    maxChans = (StreamDirection_In == mode ? deviceInfo->baseDeviceInfo.maxInputChannels :
+        deviceInfo->baseDeviceInfo.maxOutputChannels);
+    PA_UNLESS( parameters->channelCount <= maxChans, paInvalidChannelCount );
+
+error:
+    return result;
+}
+
+/* Given an open stream, what sample formats are available? */
+static PaSampleFormat GetAvailableFormats( snd_pcm_t *pcm )
+{
+    PaSampleFormat available = 0;
+    snd_pcm_hw_params_t *hwParams;
+    snd_pcm_hw_params_alloca( &hwParams );
+
+    snd_pcm_hw_params_any( pcm, hwParams );
+
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_FLOAT ) >= 0)
+        available |= paFloat32;
+
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_S32 ) >= 0)
+        available |= paInt32;
+
+#ifdef PA_LITTLE_ENDIAN
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_S24_3LE ) >= 0)
+        available |= paInt24;
+#elif defined PA_BIG_ENDIAN
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_S24_3BE ) >= 0)
+        available |= paInt24;
+#endif
+
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_S16 ) >= 0)
+        available |= paInt16;
+
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_U8 ) >= 0)
+        available |= paUInt8;
+
+    if( snd_pcm_hw_params_test_format( pcm, hwParams, SND_PCM_FORMAT_S8 ) >= 0)
+        available |= paInt8;
+
+    return available;
+}
+
+static snd_pcm_format_t Pa2AlsaFormat( PaSampleFormat paFormat )
+{
+    switch( paFormat )
+    {
+        case paFloat32:
+            return SND_PCM_FORMAT_FLOAT;
+
+        case paInt16:
+            return SND_PCM_FORMAT_S16;
+
+        case paInt24:
+#ifdef PA_LITTLE_ENDIAN
+            return SND_PCM_FORMAT_S24_3LE;
+#elif defined PA_BIG_ENDIAN
+            return SND_PCM_FORMAT_S24_3BE;
+#endif
+
+        case paInt32:
+            return SND_PCM_FORMAT_S32;
+
+        case paInt8:
+            return SND_PCM_FORMAT_S8;
+
+        case paUInt8:
+            return SND_PCM_FORMAT_U8;
+
+        default:
+            return SND_PCM_FORMAT_UNKNOWN;
+    }
+}
+
+/** Open an ALSA pcm handle.
+ * 
+ * The device to be open can be specified in a custom PaAlsaStreamInfo struct, or it will be a device number. In case of a
+ * device number, it maybe specified through an env variable (PA_ALSA_PLUGHW) that we should open the corresponding plugin
+ * device.
+ */
+static PaError AlsaOpen( const PaUtilHostApiRepresentation *hostApi, const PaStreamParameters *params, StreamDirection
+        streamDir, snd_pcm_t **pcm )
+{
+    PaError result = paNoError;
+    int ret;
+    char dnameArray[50];
+    const char* deviceName = dnameArray;
+    const PaAlsaDeviceInfo *deviceInfo = NULL;
+    PaAlsaStreamInfo *streamInfo = (PaAlsaStreamInfo *)params->hostApiSpecificStreamInfo;
+
+    if( !streamInfo )
+    {
+        int usePlug = 0;
+        deviceInfo = GetDeviceInfo( hostApi, params->device );
+        
+        /* If device name starts with hw: and PA_ALSA_PLUGHW is 1, we open the plughw device instead */
+        if( !strncmp( "hw:", deviceInfo->alsaName, 3 ) && getenv( "PA_ALSA_PLUGHW" ) )
+            usePlug = atoi( getenv( "PA_ALSA_PLUGHW" ) );
+        if( usePlug )
+            snprintf( dnameArray, 50, "plug%s", deviceInfo->alsaName );
+        else
+            deviceName = deviceInfo->alsaName;
+    }
+    else
+        deviceName = streamInfo->deviceString;
+
+    PA_DEBUG(( "%s: Opening device %s\n", __FUNCTION__, deviceName ));
+    if( (ret = OpenPcm( pcm, deviceName, streamDir == StreamDirection_In ? SND_PCM_STREAM_CAPTURE : SND_PCM_STREAM_PLAYBACK,
+                    SND_PCM_NONBLOCK, 1 )) < 0 )
+    {
+        /* Not to be closed */
+        *pcm = NULL;
+        ENSURE_( ret, -EBUSY == ret ? paDeviceUnavailable : paBadIODeviceCombination );
+    }
+    ENSURE_( snd_pcm_nonblock( *pcm, 0 ), paUnanticipatedHostError );
+
+end:
+    return result;
+
+error:
+    goto end;
+}
+
+static PaError TestParameters( const PaUtilHostApiRepresentation *hostApi, const PaStreamParameters *parameters,
+        double sampleRate, StreamDirection streamDir )
+{
+    PaError result = paNoError;
+    snd_pcm_t *pcm = NULL;
+    PaSampleFormat availableFormats;
+    /* We are able to adapt to a number of channels less than what the device supports */
+    unsigned int numHostChannels;
+    PaSampleFormat hostFormat;
+    snd_pcm_hw_params_t *hwParams;
+    snd_pcm_hw_params_alloca( &hwParams );
+    
+    if( !parameters->hostApiSpecificStreamInfo )
+    {
+        const PaAlsaDeviceInfo *devInfo = GetDeviceInfo( hostApi, parameters->device );
+        numHostChannels = PA_MAX( parameters->channelCount, StreamDirection_In == streamDir ?
+                devInfo->minInputChannels : devInfo->minOutputChannels );
+    }
+    else
+        numHostChannels = parameters->channelCount;
+
+    PA_ENSURE( AlsaOpen( hostApi, parameters, streamDir, &pcm ) );
+
+    snd_pcm_hw_params_any( pcm, hwParams );
+
+    if( SetApproximateSampleRate( pcm, hwParams, sampleRate ) < 0 )
+    {
+        result = paInvalidSampleRate;
+        goto error;
+    }
+
+    if( snd_pcm_hw_params_set_channels( pcm, hwParams, numHostChannels ) < 0 )
+    {
+        result = paInvalidChannelCount;
+        goto error;
+    }
+
+    /* See if we can find a best possible match */
+    availableFormats = GetAvailableFormats( pcm );
+    PA_ENSURE( hostFormat = PaUtil_SelectClosestAvailableFormat( availableFormats, parameters->sampleFormat ) );
+    ENSURE_( snd_pcm_hw_params_set_format( pcm, hwParams, Pa2AlsaFormat( hostFormat ) ), paUnanticipatedHostError );
+
+    {
+        /* It happens that this call fails because the device is busy */
+        int ret = 0;
+        if( (ret = snd_pcm_hw_params( pcm, hwParams )) < 0)
+        {
+            if( -EINVAL == ret )
+            {
+                /* Don't know what to return here */
+                result = paBadIODeviceCombination;
+                goto error;
+            }
+            else if( -EBUSY == ret )
+            {
+                result = paDeviceUnavailable;
+                PA_DEBUG(( "%s: Device is busy\n", __FUNCTION__ ));
+            }
+            else
+            {
+                result = paUnanticipatedHostError;
+            }
+
+            ENSURE_( ret, result );
+        }
+    }
+
+end:
+    if( pcm )
+    {
+        snd_pcm_close( pcm );
+    }
+    return result;
+
+error:
+    goto end;
+}
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    int inputChannelCount = 0, outputChannelCount = 0;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaError result = paFormatIsSupported;
+
+    if( inputParameters )
+    {
+        PA_ENSURE( ValidateParameters( inputParameters, hostApi, StreamDirection_In ) );
+
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+    }
+
+    if( outputParameters )
+    {
+        PA_ENSURE( ValidateParameters( outputParameters, hostApi, StreamDirection_Out ) );
+
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+    }
+
+    if( inputChannelCount )
+    {
+        if( (result = TestParameters( hostApi, inputParameters, sampleRate, StreamDirection_In ))
+                != paNoError )
+            goto error;
+    }
+    if ( outputChannelCount )
+    {
+        if( (result = TestParameters( hostApi, outputParameters, sampleRate, StreamDirection_Out ))
+                != paNoError )
+            goto error;
+    }
+
+    return paFormatIsSupported;
+
+error:
+    return result;
+}
+
+static PaError PaAlsaStreamComponent_Initialize( PaAlsaStreamComponent *self, PaAlsaHostApiRepresentation *alsaApi,
+        const PaStreamParameters *params, StreamDirection streamDir, int callbackMode )
+{
+    PaError result = paNoError;
+    PaSampleFormat userSampleFormat = params->sampleFormat, hostSampleFormat;
+    assert( params->channelCount > 0 );
+
+    /* Make sure things have an initial value */
+    memset( self, 0, sizeof (PaAlsaStreamComponent) );
+
+    if( NULL == params->hostApiSpecificStreamInfo )
+    {
+        const PaAlsaDeviceInfo *devInfo = GetDeviceInfo( &alsaApi->baseHostApiRep, params->device );
+        self->numHostChannels = PA_MAX( params->channelCount, StreamDirection_In == streamDir ? devInfo->minInputChannels
+                : devInfo->minOutputChannels );
+    }
+    else
+    {
+        /* We're blissfully unaware of the minimum channelCount */
+        self->numHostChannels = params->channelCount;
+    }
+
+    self->device = params->device;
+
+    PA_ENSURE( AlsaOpen( &alsaApi->baseHostApiRep, params, streamDir, &self->pcm ) );
+    self->nfds = snd_pcm_poll_descriptors_count( self->pcm );
+    hostSampleFormat = PaUtil_SelectClosestAvailableFormat( GetAvailableFormats( self->pcm ), userSampleFormat );
+
+    self->hostSampleFormat = hostSampleFormat;
+    self->nativeFormat = Pa2AlsaFormat( hostSampleFormat );
+    self->hostInterleaved = self->userInterleaved = !(userSampleFormat & paNonInterleaved);
+    self->numUserChannels = params->channelCount;
+    self->streamDir = streamDir;
+
+    if( !callbackMode && !self->userInterleaved )
+    {
+        /* Pre-allocate non-interleaved user provided buffers */
+        PA_UNLESS( self->userBuffers = PaUtil_AllocateMemory( sizeof (void *) * self->numUserChannels ),
+                paInsufficientMemory );
+    }
+
+error:
+    return result;
+}
+
+static void PaAlsaStreamComponent_Terminate( PaAlsaStreamComponent *self )
+{
+    snd_pcm_close( self->pcm );
+    if( self->userBuffers )
+        PaUtil_FreeMemory( self->userBuffers );
+}
+
+/*
+static int nearbyint_(float value) {
+    if(  value - (int)value > .5 )
+        return (int)ceil( value );
+    return (int)floor( value );
+}
+*/
+
+/** Initiate configuration, preparing for determining a period size suitable for both capture and playback components.
+ *
+ */
+static PaError PaAlsaStreamComponent_InitialConfigure( PaAlsaStreamComponent *self, const PaStreamParameters *params,
+        int primeBuffers, snd_pcm_hw_params_t *hwParams, double *sampleRate )
+{
+    /* Configuration consists of setting all of ALSA's parameters.
+     * These parameters come in two flavors: hardware parameters
+     * and software paramters.  Hardware parameters will affect
+     * the way the device is initialized, software parameters
+     * affect the way ALSA interacts with me, the user-level client.
+     */
+
+    PaError result = paNoError;
+    snd_pcm_access_t accessMode, alternateAccessMode;
+    int dir = 0;
+    snd_pcm_t *pcm = self->pcm;
+    double sr = *sampleRate;
+    unsigned int minPeriods = 2;
+
+    /* self->framesPerBuffer = framesPerHostBuffer; */
+
+    /* ... fill up the configuration space with all possibile
+     * combinations of parameters this device will accept */
+    ENSURE_( snd_pcm_hw_params_any( pcm, hwParams ), paUnanticipatedHostError );
+
+    ENSURE_( snd_pcm_hw_params_set_periods_integer( pcm, hwParams ), paUnanticipatedHostError );
+    /* I think there should be at least 2 periods (even though ALSA doesn't appear to enforce this) */
+    dir = 0;
+    ENSURE_( snd_pcm_hw_params_set_periods_min( pcm, hwParams, &minPeriods, &dir ), paUnanticipatedHostError );
+
+    if( self->userInterleaved )
+    {
+        accessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+        alternateAccessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED;
+    }
+    else
+    {
+        accessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED;
+        alternateAccessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+    }
+    /* If requested access mode fails, try alternate mode */
+    if( snd_pcm_hw_params_set_access( pcm, hwParams, accessMode ) < 0 )
+    {
+        int err = 0;
+        if( (err = snd_pcm_hw_params_set_access( pcm, hwParams, alternateAccessMode )) < 0)
+        {
+            result = paUnanticipatedHostError;
+            if( -EINVAL == err )
+            {
+                PaUtil_SetLastHostErrorInfo( paALSA, err, "PA ALSA requires that a device supports mmap access" );
+            }
+            else
+            {
+                PaUtil_SetLastHostErrorInfo( paALSA, err, snd_strerror( err ) );
+            }
+            goto error;
+        }
+        /* Flip mode */
+        self->hostInterleaved = !self->userInterleaved;
+    }
+
+    ENSURE_( snd_pcm_hw_params_set_format( pcm, hwParams, self->nativeFormat ), paUnanticipatedHostError );
+
+    ENSURE_( SetApproximateSampleRate( pcm, hwParams, sr ), paInvalidSampleRate );
+    ENSURE_( GetExactSampleRate( hwParams, &sr ), paUnanticipatedHostError );
+    /* reject if there's no sample rate within 1% of the one requested */
+    if( (fabs( *sampleRate - sr ) / *sampleRate) > 0.01 )
+    {
+        PA_DEBUG(("%s: Wanted %f, closest sample rate was %d\n", __FUNCTION__, sampleRate, sr ));                 
+        PA_ENSURE( paInvalidSampleRate );
+    }
+
+    ENSURE_( snd_pcm_hw_params_set_channels( pcm, hwParams, self->numHostChannels ), paInvalidChannelCount );
+
+    *sampleRate = sr;
+
+end:
+    return result;
+
+error:
+    /* No particular action */
+    goto end;
+}
+
+/** Finish the configuration of the component's ALSA device.
+ *
+ * As part of this method, the component's bufferSize attribute will be set.
+ * @param latency: The latency for this component.
+ */
+static PaError PaAlsaStreamComponent_FinishConfigure( PaAlsaStreamComponent *self, snd_pcm_hw_params_t* hwParams,
+        const PaStreamParameters *params, int primeBuffers, double sampleRate, PaTime* latency )
+{
+    PaError result = paNoError;
+    snd_pcm_sw_params_t* swParams;
+    snd_pcm_uframes_t bufSz = 0;
+    *latency = -1.;
+
+    snd_pcm_sw_params_alloca( &swParams );
+
+    bufSz = params->suggestedLatency * sampleRate;
+    ENSURE_( snd_pcm_hw_params_set_buffer_size_near( self->pcm, hwParams, &bufSz ), paUnanticipatedHostError );
+
+    /* Set the parameters! */
+    {
+        int r = snd_pcm_hw_params( self->pcm, hwParams );
+#ifdef PA_ENABLE_DEBUG_OUTPUT
+        if( r < 0 )
+        {
+            snd_output_t *output = NULL;
+            snd_output_stdio_attach( &output, stderr, 0 );
+            snd_pcm_hw_params_dump( hwParams, output );
+        }
+#endif
+        ENSURE_(r, paUnanticipatedHostError );
+    }
+    ENSURE_( snd_pcm_hw_params_get_buffer_size( hwParams, &self->bufferSize ), paUnanticipatedHostError );
+    /* Latency in seconds */
+    *latency = self->bufferSize / sampleRate;
+
+    /* Now software parameters... */
+    ENSURE_( snd_pcm_sw_params_current( self->pcm, swParams ), paUnanticipatedHostError );
+
+    ENSURE_( snd_pcm_sw_params_set_start_threshold( self->pcm, swParams, self->framesPerBuffer ), paUnanticipatedHostError );
+    ENSURE_( snd_pcm_sw_params_set_stop_threshold( self->pcm, swParams, self->bufferSize ), paUnanticipatedHostError );
+
+    /* Silence buffer in the case of underrun */
+    if( !primeBuffers ) /* XXX: Make sense? */
+    {
+        snd_pcm_uframes_t boundary;
+        ENSURE_( snd_pcm_sw_params_get_boundary( swParams, &boundary ), paUnanticipatedHostError );
+        ENSURE_( snd_pcm_sw_params_set_silence_threshold( self->pcm, swParams, 0 ), paUnanticipatedHostError );
+        ENSURE_( snd_pcm_sw_params_set_silence_size( self->pcm, swParams, boundary ), paUnanticipatedHostError );
+    }
+        
+    ENSURE_( snd_pcm_sw_params_set_avail_min( self->pcm, swParams, self->framesPerBuffer ), paUnanticipatedHostError );
+    ENSURE_( snd_pcm_sw_params_set_xfer_align( self->pcm, swParams, 1 ), paUnanticipatedHostError );
+    ENSURE_( snd_pcm_sw_params_set_tstamp_mode( self->pcm, swParams, SND_PCM_TSTAMP_MMAP ), paUnanticipatedHostError );
+
+    /* Set the parameters! */
+    ENSURE_( snd_pcm_sw_params( self->pcm, swParams ), paUnanticipatedHostError );
+
+error:
+    return result;
+}
+
+static PaError PaAlsaStream_Initialize( PaAlsaStream *self, PaAlsaHostApiRepresentation *alsaApi, const PaStreamParameters *inParams,
+        const PaStreamParameters *outParams, double sampleRate, unsigned long framesPerUserBuffer, PaStreamCallback callback,
+        PaStreamFlags streamFlags, void *userData )
+{
+    PaError result = paNoError;
+    assert( self );
+
+    memset( self, 0, sizeof (PaAlsaStream) );
+
+    if( NULL != callback )
+    {
+        PaUtil_InitializeStreamRepresentation( &self->streamRepresentation,
+                                               &alsaApi->callbackStreamInterface,
+                                               callback, userData );
+        self->callbackMode = 1;
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &self->streamRepresentation,
+                                               &alsaApi->blockingStreamInterface,
+                                               NULL, userData );
+    }
+
+    self->framesPerUserBuffer = framesPerUserBuffer;
+    self->neverDropInput = streamFlags & paNeverDropInput;
+    /* XXX: Ignore paPrimeOutputBuffersUsingStreamCallback untill buffer priming is fully supported in pa_process.c */
+    /*
+    if( outParams & streamFlags & paPrimeOutputBuffersUsingStreamCallback )
+        self->primeBuffers = 1;
+        */
+    memset( &self->capture, 0, sizeof (PaAlsaStreamComponent) );
+    memset( &self->playback, 0, sizeof (PaAlsaStreamComponent) );
+    if( inParams )
+    {
+        PA_ENSURE( PaAlsaStreamComponent_Initialize( &self->capture, alsaApi, inParams, StreamDirection_In, NULL != callback ) );
+    }
+    if( outParams )
+    {
+        PA_ENSURE( PaAlsaStreamComponent_Initialize( &self->playback, alsaApi, outParams, StreamDirection_Out, NULL != callback ) );
+    }
+
+    assert( self->capture.nfds || self->playback.nfds );
+
+    PA_UNLESS( self->pfds = (struct pollfd*)PaUtil_AllocateMemory( (self->capture.nfds +
+                    self->playback.nfds) * sizeof (struct pollfd) ), paInsufficientMemory );
+
+    PaUtil_InitializeCpuLoadMeasurer( &self->cpuLoadMeasurer, sampleRate );
+    ASSERT_CALL_( PaUnixMutex_Initialize( &self->stateMtx ), paNoError );
+
+error:
+    return result;
+}
+
+/** Free resources associated with stream, and eventually stream itself.
+ *
+ * Frees allocated memory, and terminates individual StreamComponents.
+ */
+static void PaAlsaStream_Terminate( PaAlsaStream *self )
+{
+    assert( self );
+
+    if( self->capture.pcm )
+    {
+        PaAlsaStreamComponent_Terminate( &self->capture );
+    }
+    if( self->playback.pcm )
+    {
+        PaAlsaStreamComponent_Terminate( &self->playback );
+    }
+
+    PaUtil_FreeMemory( self->pfds );
+    ASSERT_CALL_( PaUnixMutex_Terminate( &self->stateMtx ), paNoError );
+
+    PaUtil_FreeMemory( self );
+}
+
+/** Calculate polling timeout
+ *
+ * @param frames Time to wait
+ * @return Polling timeout in milliseconds
+ */
+static int CalculatePollTimeout( const PaAlsaStream *stream, unsigned long frames )
+{
+    assert( stream->streamRepresentation.streamInfo.sampleRate > 0.0 );
+    /* Period in msecs, rounded up */
+    return (int)ceil( 1000 * frames / stream->streamRepresentation.streamInfo.sampleRate );
+}
+
+/** Determine size per host buffer.
+ *
+ * During this method call, the component's framesPerBuffer attribute gets computed, and the corresponding period size
+ * gets configured for the device.
+ * @param accurate: If the configured period size is non-integer, this will be set to 0.
+ */
+static PaError PaAlsaStreamComponent_DetermineFramesPerBuffer( PaAlsaStreamComponent* self, const PaStreamParameters* params,
+        unsigned long framesPerUserBuffer, double sampleRate, snd_pcm_hw_params_t* hwParams, int* accurate )
+{
+    PaError result = paNoError;
+    unsigned long bufferSize = params->suggestedLatency * sampleRate, framesPerHostBuffer;
+    int dir = 0;
+    
+    {
+        snd_pcm_uframes_t tmp;
+        snd_pcm_hw_params_get_buffer_size_min( hwParams, &tmp );
+        bufferSize = PA_MAX( bufferSize, tmp );
+        snd_pcm_hw_params_get_buffer_size_max( hwParams, &tmp );
+        bufferSize = PA_MIN( bufferSize, tmp );
+    }
+
+    assert( bufferSize > 0 );
+
+    if( framesPerUserBuffer != paFramesPerBufferUnspecified )
+    {
+        /* Preferably the host buffer size should be a multiple of the user buffer size */
+
+        if( bufferSize > framesPerUserBuffer )
+        {
+            snd_pcm_uframes_t remainder = bufferSize % framesPerUserBuffer;
+            if( remainder > framesPerUserBuffer / 2. )
+                bufferSize += framesPerUserBuffer - remainder;
+            else
+                bufferSize -= remainder;
+
+            assert( bufferSize % framesPerUserBuffer == 0 );
+        }
+        else if( framesPerUserBuffer % bufferSize != 0 )
+        {
+            /*  Find a good compromise between user specified latency and buffer size */
+            if( bufferSize > framesPerUserBuffer * .75 )
+            {
+                bufferSize = framesPerUserBuffer;
+            }
+            else
+            {
+                snd_pcm_uframes_t newSz = framesPerUserBuffer;
+                while( newSz / 2 >= bufferSize )
+                {
+                    if( framesPerUserBuffer % (newSz / 2) != 0 )
+                    {
+                        /* No use dividing any further */
+                        break;
+                    }
+                    newSz /= 2;
+                }
+                bufferSize = newSz;
+            }
+
+            assert( framesPerUserBuffer % bufferSize == 0 );
+        }
+    }
+
+    /* Using the base number of periods, we try to approximate the suggested latency (+1 period),
+       finding a combination of period/buffer size which best fits these constraints */
+    {
+        unsigned numPeriods = numPeriods_, maxPeriods = 0;
+        /* It may be that the device only supports 2 periods for instance */
+        dir = 0;
+        ENSURE_( snd_pcm_hw_params_get_periods_max( hwParams, &maxPeriods, &dir ), paUnanticipatedHostError );
+        assert( maxPeriods > 1 );
+        numPeriods = PA_MIN( maxPeriods, numPeriods );
+
+        if( framesPerUserBuffer != paFramesPerBufferUnspecified )
+        {
+            /* Try to get a power-of-two of the user buffer size. */
+            framesPerHostBuffer = framesPerUserBuffer;
+            if( framesPerHostBuffer < bufferSize )
+            {
+                while( bufferSize / framesPerHostBuffer > numPeriods )
+                {
+                    framesPerHostBuffer *= 2;
+                }
+                /* One extra period is preferrable to one less (should be more robust) */
+                if( bufferSize / framesPerHostBuffer < numPeriods )
+                {
+                    framesPerHostBuffer /= 2;
+                }
+            }
+            else
+            {
+                while( bufferSize / framesPerHostBuffer < numPeriods )
+                {
+                    if( framesPerUserBuffer % (framesPerHostBuffer / 2) != 0 )
+                    {
+                        /* Can't be divided any further */
+                        break;
+                    }
+                    framesPerHostBuffer /= 2;
+                }
+            }
+
+            if( framesPerHostBuffer < framesPerUserBuffer )
+            {
+                assert( framesPerUserBuffer % framesPerHostBuffer == 0 );
+                if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer, 0 ) < 0 )
+                {
+                    if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer * 2, 0 ) == 0 )
+                        framesPerHostBuffer *= 2;
+                    else if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer / 2, 0 ) == 0 )
+                        framesPerHostBuffer /= 2;
+                }
+            }
+            else
+            {
+                assert( framesPerHostBuffer % framesPerUserBuffer == 0 );
+                if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer, 0 ) < 0 )
+                {
+                    if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer + framesPerUserBuffer, 0 ) == 0 )
+                        framesPerHostBuffer += framesPerUserBuffer;
+                    else if( snd_pcm_hw_params_test_period_size( self->pcm, hwParams, framesPerHostBuffer - framesPerUserBuffer, 0 ) == 0 )
+                        framesPerHostBuffer -= framesPerUserBuffer;
+                }
+            }
+        }
+        else
+        {
+            framesPerHostBuffer = bufferSize / numPeriods;
+        }
+    }
+
+    assert( framesPerHostBuffer > 0 );
+    {
+        snd_pcm_uframes_t min = 0, max = 0;
+        ENSURE_( snd_pcm_hw_params_get_period_size_min( hwParams, &min, NULL ), paUnanticipatedHostError );
+        ENSURE_( snd_pcm_hw_params_get_period_size_max( hwParams, &max, NULL ), paUnanticipatedHostError );
+
+        if( framesPerHostBuffer < min )
+        {
+            PA_DEBUG(( "%s: The determined period size (%lu) is less than minimum (%lu)\n", __FUNCTION__,
+                        framesPerHostBuffer, min ));
+            framesPerHostBuffer = min;
+        }
+        else if( framesPerHostBuffer > max )
+        {
+            PA_DEBUG(( "%s: The determined period size (%lu) is greater than maximum (%lu)\n", __FUNCTION__,
+                        framesPerHostBuffer, max ));
+            framesPerHostBuffer = max;
+        }
+
+        assert( framesPerHostBuffer >= min && framesPerHostBuffer <= max );
+        dir = 0;
+        ENSURE_( snd_pcm_hw_params_set_period_size_near( self->pcm, hwParams, &framesPerHostBuffer, &dir ),
+                paUnanticipatedHostError );
+        if( dir != 0 )
+        {
+            PA_DEBUG(( "%s: The configured period size is non-integer.\n", __FUNCTION__, dir ));
+            *accurate = 0;
+        }
+    }
+    self->framesPerBuffer = framesPerHostBuffer;
+
+error:
+    return result;
+}
+
+/* We need to determine how many frames per host buffer (period) to use.  Our
+ * goals are to provide the best possible performance, but also to
+ * honor the requested latency settings as closely as we can. Therefore this
+ * decision is based on:
+ *
+ *   - the period sizes that playback and/or capture support.  The
+ *     host buffer size has to be one of these.
+ *   - the number of periods that playback and/or capture support.
+ *
+ * We want to make period_size*(num_periods-1) to be as close as possible
+ * to latency*rate for both playback and capture.
+ *
+ * This method will determine suitable period sizes for capture and playback handles, and report the maximum number of
+ * frames per host buffer. The latter is relevant, in case we should be so unfortunate that the period size differs
+ * between capture and playback. If this should happen, the stream's hostBufferSizeMode attribute will be set to
+ * paUtilBoundedHostBufferSize, because the best we can do is limit the size of individual host buffers to the upper
+ * bound. The size of host buffers scheduled for processing should only matter if the user has specified a buffer size,
+ * but when he/she does we must strive for an optimal configuration. By default we'll opt for a fixed host buffer size,
+ * which should be fine if the period size is the same for capture and playback. In general, if there is a specified user
+ * buffer size, this method tries it best to determine a period size which is a multiple of the user buffer size.
+ *
+ * The framesPerBuffer attributes of the individual capture and playback components of the stream are set to corresponding
+ * values determined here. Since these should be reported as 
+ *
+ * This is one of those blocks of code that will just take a lot of
+ * refinement to be any good.
+ *
+ * In the full-duplex case it is possible that the routine was unable
+ * to find a number of frames per buffer acceptable to both devices
+ * TODO: Implement an algorithm to find the value closest to acceptance
+ * by both devices, to minimize difference between period sizes?
+ *
+ * @param determinedFramesPerHostBuffer: The determined host buffer size.
+ */
+static PaError PaAlsaStream_DetermineFramesPerBuffer( PaAlsaStream* self, double sampleRate, const PaStreamParameters* inputParameters,
+        const PaStreamParameters* outputParameters, unsigned long framesPerUserBuffer, snd_pcm_hw_params_t* hwParamsCapture,
+        snd_pcm_hw_params_t* hwParamsPlayback, PaUtilHostBufferSizeMode* hostBufferSizeMode )
+{
+    PaError result = paNoError;
+    unsigned long framesPerHostBuffer = 0;
+    int dir = 0;
+    int accurate = 1;
+    unsigned numPeriods = numPeriods_;
+
+    if( self->capture.pcm && self->playback.pcm )
+    {
+        if( framesPerUserBuffer == paFramesPerBufferUnspecified )
+        {
+            /* Come up with a common desired latency */
+            snd_pcm_uframes_t desiredBufSz, e, minPeriodSize, maxPeriodSize, optimalPeriodSize, periodSize,
+                              minCapture, minPlayback, maxCapture, maxPlayback;
+
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_get_period_size_min( hwParamsCapture, &minCapture, &dir ), paUnanticipatedHostError );
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_get_period_size_min( hwParamsPlayback, &minPlayback, &dir ), paUnanticipatedHostError );
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_get_period_size_max( hwParamsCapture, &maxCapture, &dir ), paUnanticipatedHostError );
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_get_period_size_max( hwParamsPlayback, &maxPlayback, &dir ), paUnanticipatedHostError );
+            minPeriodSize = PA_MAX( minPlayback, minCapture );
+            maxPeriodSize = PA_MIN( maxPlayback, maxCapture );
+            PA_UNLESS( minPeriodSize <= maxPeriodSize, paBadIODeviceCombination );
+
+            desiredBufSz = (snd_pcm_uframes_t)(PA_MIN( outputParameters->suggestedLatency, inputParameters->suggestedLatency )
+                    * sampleRate);
+            /* Clamp desiredBufSz */
+            {
+                snd_pcm_uframes_t maxBufferSize;
+                snd_pcm_uframes_t maxBufferSizeCapture, maxBufferSizePlayback;
+                ENSURE_( snd_pcm_hw_params_get_buffer_size_max( hwParamsCapture, &maxBufferSizeCapture ), paUnanticipatedHostError );
+                ENSURE_( snd_pcm_hw_params_get_buffer_size_max( hwParamsPlayback, &maxBufferSizePlayback ), paUnanticipatedHostError );
+                maxBufferSize = PA_MIN( maxBufferSizeCapture, maxBufferSizePlayback );
+
+                desiredBufSz = PA_MIN( desiredBufSz, maxBufferSize );
+            }
+
+            /* Find the closest power of 2 */
+            e = ilogb( minPeriodSize );
+            if( minPeriodSize & (minPeriodSize - 1) )
+                e += 1;
+            periodSize = (snd_pcm_uframes_t)pow( 2, e );
+
+            while( periodSize <= maxPeriodSize )
+            {
+                if( snd_pcm_hw_params_test_period_size( self->playback.pcm, hwParamsPlayback, periodSize, 0 ) >= 0 &&
+                        snd_pcm_hw_params_test_period_size( self->capture.pcm, hwParamsCapture, periodSize, 0 ) >= 0 )
+                {
+                    /* OK! */
+                    break;
+                }
+
+                periodSize *= 2;
+            }
+
+            optimalPeriodSize = PA_MAX( desiredBufSz / numPeriods, minPeriodSize );
+            optimalPeriodSize = PA_MIN( optimalPeriodSize, maxPeriodSize );
+
+            /* Find the closest power of 2 */
+            e = ilogb( optimalPeriodSize );
+            if( optimalPeriodSize & (optimalPeriodSize - 1) )
+                e += 1;
+            optimalPeriodSize = (snd_pcm_uframes_t)pow( 2, e );
+
+            while( optimalPeriodSize >= periodSize )
+            {
+                if( snd_pcm_hw_params_test_period_size( self->capture.pcm, hwParamsCapture, optimalPeriodSize, 0 )
+                        >= 0 && snd_pcm_hw_params_test_period_size( self->playback.pcm, hwParamsPlayback,
+                            optimalPeriodSize, 0 ) >= 0 )
+                {
+                    break;
+                }
+                optimalPeriodSize /= 2;
+            }
+        
+            if( optimalPeriodSize > periodSize )
+                periodSize = optimalPeriodSize;
+
+            if( periodSize <= maxPeriodSize )
+            {
+                /* Looks good, the periodSize _should_ be acceptable by both devices */
+                ENSURE_( snd_pcm_hw_params_set_period_size( self->capture.pcm, hwParamsCapture, periodSize, 0 ),
+                        paUnanticipatedHostError );
+                ENSURE_( snd_pcm_hw_params_set_period_size( self->playback.pcm, hwParamsPlayback, periodSize, 0 ),
+                        paUnanticipatedHostError );
+                self->capture.framesPerBuffer = self->playback.framesPerBuffer = periodSize;
+                framesPerHostBuffer = periodSize;
+            }
+            else
+            {
+                /* Unable to find a common period size, oh well */
+                optimalPeriodSize = PA_MAX( desiredBufSz / numPeriods, minPeriodSize );
+                optimalPeriodSize = PA_MIN( optimalPeriodSize, maxPeriodSize );
+
+                self->capture.framesPerBuffer = optimalPeriodSize;
+                dir = 0;
+                ENSURE_( snd_pcm_hw_params_set_period_size_near( self->capture.pcm, hwParamsCapture, &self->capture.framesPerBuffer, &dir ),
+                        paUnanticipatedHostError );
+                self->playback.framesPerBuffer = optimalPeriodSize;
+                dir = 0;
+                ENSURE_( snd_pcm_hw_params_set_period_size_near( self->playback.pcm, hwParamsPlayback, &self->playback.framesPerBuffer, &dir ),
+                        paUnanticipatedHostError );
+                framesPerHostBuffer = PA_MAX( self->capture.framesPerBuffer, self->playback.framesPerBuffer );
+                *hostBufferSizeMode = paUtilBoundedHostBufferSize;
+            }
+        }
+        else
+        {
+            /* We choose the simple route and determine a suitable number of frames per buffer for one component of
+             * the stream, then we hope that this will work for the other component too (it should!).
+             */
+
+            unsigned maxPeriods = 0;
+            PaAlsaStreamComponent* first = &self->capture, * second = &self->playback;
+            const PaStreamParameters* firstStreamParams = inputParameters;
+            snd_pcm_hw_params_t* firstHwParams = hwParamsCapture, * secondHwParams = hwParamsPlayback;
+
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_get_periods_max( hwParamsPlayback, &maxPeriods, &dir ), paUnanticipatedHostError );
+            if( maxPeriods < numPeriods )
+            {
+                /* The playback component is trickier to get right, try that first */
+                first = &self->playback;
+                second = &self->capture;
+                firstStreamParams = outputParameters;
+                firstHwParams = hwParamsPlayback;
+                secondHwParams = hwParamsCapture;
+            }
+
+            PA_ENSURE( PaAlsaStreamComponent_DetermineFramesPerBuffer( first, firstStreamParams, framesPerUserBuffer,
+                        sampleRate, firstHwParams, &accurate ) );
+
+            second->framesPerBuffer = first->framesPerBuffer;
+            dir = 0;
+            ENSURE_( snd_pcm_hw_params_set_period_size_near( second->pcm, secondHwParams, &second->framesPerBuffer, &dir ),
+                    paUnanticipatedHostError );
+            if( self->capture.framesPerBuffer == self->playback.framesPerBuffer )
+            {
+                framesPerHostBuffer = self->capture.framesPerBuffer;
+            }
+            else
+            {
+                framesPerHostBuffer = PA_MAX( self->capture.framesPerBuffer, self->playback.framesPerBuffer );
+                *hostBufferSizeMode = paUtilBoundedHostBufferSize;
+            }
+        }
+    }
+    else    /* half-duplex is a slightly simpler case */
+    {
+        if( self->capture.pcm )
+        {
+            PA_ENSURE( PaAlsaStreamComponent_DetermineFramesPerBuffer( &self->capture, inputParameters, framesPerUserBuffer,
+                        sampleRate, hwParamsCapture, &accurate) );
+            framesPerHostBuffer = self->capture.framesPerBuffer;
+        }
+        else
+        {
+            assert( self->playback.pcm );
+            PA_ENSURE( PaAlsaStreamComponent_DetermineFramesPerBuffer( &self->playback, outputParameters, framesPerUserBuffer,
+                        sampleRate, hwParamsPlayback, &accurate ) );
+            framesPerHostBuffer = self->playback.framesPerBuffer;
+        }
+    }
+
+    PA_UNLESS( framesPerHostBuffer != 0, paInternalError );
+    self->maxFramesPerHostBuffer = framesPerHostBuffer;
+
+    if( !accurate )
+    {
+        /* Don't know the exact size per host buffer */
+        *hostBufferSizeMode = paUtilBoundedHostBufferSize;
+        /* Raise upper bound */
+        ++self->maxFramesPerHostBuffer;
+    }
+
+error:
+    return result;
+}
+
+/** Set up ALSA stream parameters.
+ *
+ */
+static PaError PaAlsaStream_Configure( PaAlsaStream *self, const PaStreamParameters *inParams, const PaStreamParameters*
+        outParams, double sampleRate, unsigned long framesPerUserBuffer, double* inputLatency, double* outputLatency,
+        PaUtilHostBufferSizeMode* hostBufferSizeMode )
+{
+    PaError result = paNoError;
+    double realSr = sampleRate;
+    snd_pcm_hw_params_t* hwParamsCapture, * hwParamsPlayback;
+
+    snd_pcm_hw_params_alloca( &hwParamsCapture );
+    snd_pcm_hw_params_alloca( &hwParamsPlayback );
+
+    if( self->capture.pcm )
+        PA_ENSURE( PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture,
+                    &realSr ) );
+    if( self->playback.pcm )
+        PA_ENSURE( PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback,
+                    &realSr ) );
+
+    PA_ENSURE( PaAlsaStream_DetermineFramesPerBuffer( self, realSr, inParams, outParams, framesPerUserBuffer,
+                hwParamsCapture, hwParamsPlayback, hostBufferSizeMode ) );
+
+    if( self->capture.pcm )
+    {
+        assert( self->capture.framesPerBuffer != 0 );
+        PA_ENSURE( PaAlsaStreamComponent_FinishConfigure( &self->capture, hwParamsCapture, inParams, self->primeBuffers, realSr,
+                    inputLatency ) );
+        PA_DEBUG(( "%s: Capture period size: %lu, latency: %f\n", __FUNCTION__, self->capture.framesPerBuffer, *inputLatency ));
+    }
+    if( self->playback.pcm )
+    {
+        assert( self->playback.framesPerBuffer != 0 );
+        PA_ENSURE( PaAlsaStreamComponent_FinishConfigure( &self->playback, hwParamsPlayback, outParams, self->primeBuffers, realSr,
+                    outputLatency ) );
+        PA_DEBUG(( "%s: Playback period size: %lu, latency: %f\n", __FUNCTION__, self->playback.framesPerBuffer, *outputLatency ));
+    }
+
+    /* Should be exact now */
+    self->streamRepresentation.streamInfo.sampleRate = realSr;
+
+    /* this will cause the two streams to automatically start/stop/prepare in sync.
+     * We only need to execute these operations on one of the pair.
+     * A: We don't want to do this on a blocking stream.
+     */
+    if( self->callbackMode && self->capture.pcm && self->playback.pcm )
+    {
+        int err = snd_pcm_link( self->capture.pcm, self->playback.pcm );
+        if( err == 0 )
+            self->pcmsSynced = 1;
+        else
+            PA_DEBUG(( "%s: Unable to sync pcms: %s\n", __FUNCTION__, snd_strerror( err ) ));
+    }
+
+    {
+        unsigned long minFramesPerHostBuffer = PA_MIN( self->capture.pcm ? self->capture.framesPerBuffer : ULONG_MAX,
+            self->playback.pcm ? self->playback.framesPerBuffer : ULONG_MAX );
+        self->pollTimeout = CalculatePollTimeout( self, minFramesPerHostBuffer );    /* Period in msecs, rounded up */
+
+        /* Time before watchdog unthrottles realtime thread == 1/4 of period time in msecs */
+        /* self->threading.throttledSleepTime = (unsigned long) (minFramesPerHostBuffer / sampleRate / 4 * 1000); */
+    }
+
+    if( self->callbackMode )
+    {
+        /* If the user expects a certain number of frames per callback we will either have to rely on block adaption
+         * (framesPerHostBuffer is not an integer multiple of framesPerBuffer) or we can simply align the number
+         * of host buffer frames with what the user specified */
+        if( self->framesPerUserBuffer != paFramesPerBufferUnspecified )
+        {
+            /* self->alignFrames = 1; */
+
+            /* Unless the ratio between number of host and user buffer frames is an integer we will have to rely
+             * on block adaption */
+        /*
+            if( framesPerHostBuffer % framesPerBuffer != 0 || (self->capture.pcm && self->playback.pcm &&
+                        self->capture.framesPerBuffer != self->playback.framesPerBuffer) )
+                self->useBlockAdaption = 1;
+            else
+                self->alignFrames = 1;
+        */
+        }
+    }
+
+error:
+    return result;
+}
+
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback* callback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaAlsaHostApiRepresentation *alsaHostApi = (PaAlsaHostApiRepresentation*)hostApi;
+    PaAlsaStream *stream = NULL;
+    PaSampleFormat hostInputSampleFormat = 0, hostOutputSampleFormat = 0;
+    PaSampleFormat inputSampleFormat = 0, outputSampleFormat = 0;
+    int numInputChannels = 0, numOutputChannels = 0;
+    PaTime inputLatency, outputLatency;
+    /* Operate with fixed host buffer size by default, since other modes will invariably lead to block adaption */
+    /* XXX: Use Bounded by default? Output tends to get stuttery with Fixed ... */
+    PaUtilHostBufferSizeMode hostBufferSizeMode = paUtilFixedHostBufferSize;
+
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag;
+
+    if( inputParameters )
+    {
+        PA_ENSURE( ValidateParameters( inputParameters, hostApi, StreamDirection_In ) );
+
+        numInputChannels = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+    }
+    if( outputParameters )
+    {
+        PA_ENSURE( ValidateParameters( outputParameters, hostApi, StreamDirection_Out ) );
+
+        numOutputChannels = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+    }
+
+    /* XXX: Why do we support this anyway? */
+    if( framesPerBuffer == paFramesPerBufferUnspecified && getenv( "PA_ALSA_PERIODSIZE" ) != NULL )
+    {
+        PA_DEBUG(( "%s: Getting framesPerBuffer from environment\n", __FUNCTION__ ));
+        framesPerBuffer = atoi( getenv("PA_ALSA_PERIODSIZE") );
+    }
+
+    PA_UNLESS( stream = (PaAlsaStream*)PaUtil_AllocateMemory( sizeof(PaAlsaStream) ), paInsufficientMemory );
+    PA_ENSURE( PaAlsaStream_Initialize( stream, alsaHostApi, inputParameters, outputParameters, sampleRate,
+                framesPerBuffer, callback, streamFlags, userData ) );
+
+    PA_ENSURE( PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer,
+                &inputLatency, &outputLatency, &hostBufferSizeMode ) );
+    hostInputSampleFormat = stream->capture.hostSampleFormat;
+    hostOutputSampleFormat = stream->playback.hostSampleFormat;
+
+    PA_ENSURE( PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+                    numInputChannels, inputSampleFormat, hostInputSampleFormat,
+                    numOutputChannels, outputSampleFormat, hostOutputSampleFormat,
+                    sampleRate, streamFlags, framesPerBuffer, stream->maxFramesPerHostBuffer,
+                    hostBufferSizeMode, callback, userData ) );
+
+    /* Ok, buffer processor is initialized, now we can deduce it's latency */
+    if( numInputChannels > 0 )
+        stream->streamRepresentation.streamInfo.inputLatency = inputLatency + PaUtil_GetBufferProcessorInputLatency(
+                &stream->bufferProcessor );
+    if( numOutputChannels > 0 )
+        stream->streamRepresentation.streamInfo.outputLatency = outputLatency + PaUtil_GetBufferProcessorOutputLatency(
+                &stream->bufferProcessor );
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+    if( stream )
+    {
+        PA_DEBUG(( "%s: Stream in error, terminating\n", __FUNCTION__ ));
+        PaAlsaStream_Terminate( stream );
+    }
+
+    return result;
+}
+
+static PaError CloseStream( PaStream* s )
+{
+    PaError result = paNoError;
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+
+    PaAlsaStream_Terminate( stream );
+
+    return result;
+}
+
+static void SilenceBuffer( PaAlsaStream *stream )
+{
+    const snd_pcm_channel_area_t *areas;
+    snd_pcm_uframes_t frames = (snd_pcm_uframes_t)snd_pcm_avail_update( stream->playback.pcm ), offset;
+
+    snd_pcm_mmap_begin( stream->playback.pcm, &areas, &offset, &frames );
+    snd_pcm_areas_silence( areas, offset, stream->playback.numHostChannels, frames, stream->playback.nativeFormat );
+    snd_pcm_mmap_commit( stream->playback.pcm, offset, frames );
+}
+
+/** Start/prepare pcm(s) for streaming.
+ *
+ * Depending on wether the stream is in callback or blocking mode, we will respectively start or simply
+ * prepare the playback pcm. If the buffer has _not_ been primed, we will in callback mode prepare and
+ * silence the buffer before starting playback. In blocking mode we simply prepare, as the playback will
+ * be started automatically as the user writes to output. 
+ *
+ * The capture pcm, however, will simply be prepared and started.
+ */
+static PaError AlsaStart( PaAlsaStream *stream, int priming )
+{
+    PaError result = paNoError;
+
+    if( stream->playback.pcm )
+    {
+        if( stream->callbackMode )
+        {
+            if( !priming )
+            {
+                /* Buffer isn't primed, so prepare and silence */
+                ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError );
+                SilenceBuffer( stream );
+            }
+            ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError );
+        }
+        else
+            ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError );
+    }
+    if( stream->capture.pcm && !stream->pcmsSynced )
+    {
+        ENSURE_( snd_pcm_prepare( stream->capture.pcm ), paUnanticipatedHostError );
+        /* For a blocking stream we want to start capture as well, since nothing will happen otherwise */
+        ENSURE_( snd_pcm_start( stream->capture.pcm ), paUnanticipatedHostError );
+    }
+
+end:
+    return result;
+error:
+    goto end;
+}
+
+/** Utility function for determining if pcms are in running state.
+ *
+ */
+#if 0
+static int IsRunning( PaAlsaStream *stream )
+{
+    int result = 0;
+
+    PA_ENSURE( PaUnixMutex_Lock( &stream->stateMtx ) );
+    if( stream->capture.pcm )
+    {
+        snd_pcm_state_t capture_state = snd_pcm_state( stream->capture.pcm );
+
+        if( capture_state == SND_PCM_STATE_RUNNING || capture_state == SND_PCM_STATE_XRUN
+                || capture_state == SND_PCM_STATE_DRAINING )
+        {
+            result = 1;
+            goto end;
+        }
+    }
+
+    if( stream->playback.pcm )
+    {
+        snd_pcm_state_t playback_state = snd_pcm_state( stream->playback.pcm );
+
+        if( playback_state == SND_PCM_STATE_RUNNING || playback_state == SND_PCM_STATE_XRUN
+                || playback_state == SND_PCM_STATE_DRAINING )
+        {
+            result = 1;
+            goto end;
+        }
+    }
+
+end:
+    ASSERT_CALL_( PaUnixMutex_Unlock( &stream->stateMtx ), paNoError );
+    return result;
+error:
+    goto error;
+}
+#endif
+
+static PaError StartStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaAlsaStream* stream = (PaAlsaStream*)s;
+    int streamStarted = 0;  /* So we can know wether we need to take the stream down */
+
+    /* Ready the processor */
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+
+    /* Set now, so we can test for activity further down */
+    stream->isActive = 1;
+
+    if( stream->callbackMode )
+    {
+        PA_ENSURE( PaUnixThread_New( &stream->thread, &CallbackThreadFunc, stream, 1., stream->rtSched ) );
+    }
+    else
+    {
+        PA_ENSURE( AlsaStart( stream, 0 ) );
+        streamStarted = 1;
+    }
+
+end:
+    return result;
+error:
+    if( streamStarted )
+    {
+        AbortStream( stream );
+    }
+    stream->isActive = 0;
+    
+    goto end;
+}
+
+/** Stop PCM handle, either softly or abruptly.
+ */
+static PaError AlsaStop( PaAlsaStream *stream, int abort )
+{
+    PaError result = paNoError;
+    /* XXX: snd_pcm_drain tends to lock up, avoid it until we find out more */
+    abort = 1;
+    /*
+    if( stream->capture.pcm && !strcmp( Pa_GetDeviceInfo( stream->capture.device )->name,
+                "dmix" ) )
+    {
+        abort = 1;
+    }
+    else if( stream->playback.pcm && !strcmp( Pa_GetDeviceInfo( stream->playback.device )->name,
+                "dmix" ) )
+    {
+        abort = 1;
+    }
+    */
+
+    if( abort )
+    {
+        if( stream->playback.pcm )
+        {
+            ENSURE_( snd_pcm_drop( stream->playback.pcm ), paUnanticipatedHostError );
+        }
+        if( stream->capture.pcm && !stream->pcmsSynced )
+        {
+            ENSURE_( snd_pcm_drop( stream->capture.pcm ), paUnanticipatedHostError );
+        }
+
+        PA_DEBUG(( "%s: Dropped frames\n", __FUNCTION__ ));
+    }
+    else
+    {
+        if( stream->playback.pcm )
+        {
+            ENSURE_( snd_pcm_nonblock( stream->playback.pcm, 0 ), paUnanticipatedHostError );
+            if( snd_pcm_drain( stream->playback.pcm ) < 0 )
+            {
+                PA_DEBUG(( "%s: Draining playback handle failed!\n", __FUNCTION__ ));
+            }
+        }
+        if( stream->capture.pcm && !stream->pcmsSynced )
+        {
+            /* We don't need to retrieve any remaining frames */
+            if( snd_pcm_drain( stream->capture.pcm ) < 0 )
+            {
+                PA_DEBUG(( "%s: Draining capture handle failed!\n", __FUNCTION__ ));
+            }
+        }
+    }
+
+end:
+    return result;
+error:
+    goto end;
+}
+
+/** Stop or abort stream.
+ *
+ * If a stream is in callback mode we will have to inspect wether the background thread has
+ * finished, or we will have to take it out. In either case we join the thread before
+ * returning. In blocking mode, we simply tell ALSA to stop abruptly (abort) or finish
+ * buffers (drain)
+ *
+ * Stream will be considered inactive (!PaAlsaStream::isActive) after a call to this function
+ */
+static PaError RealStop( PaAlsaStream *stream, int abort )
+{
+    PaError result = paNoError;
+
+    /* First deal with the callback thread, cancelling and/or joining
+     * it if necessary
+     */
+    if( stream->callbackMode )
+    {
+        PaError threadRes;
+        stream->callbackAbort = abort;
+
+        if( !abort )
+        {
+            PA_DEBUG(( "Stopping callback\n" ));
+        }
+        PA_ENSURE( PaUnixThread_Terminate( &stream->thread, !abort, &threadRes ) );
+        if( threadRes != paNoError )
+        {
+            PA_DEBUG(( "Callback thread returned: %d\n", threadRes ));
+        }
+#if 0
+        if( watchdogRes != paNoError )
+            PA_DEBUG(( "Watchdog thread returned: %d\n", watchdogRes ));
+#endif
+
+        stream->callback_finished = 0;
+    }
+    else
+    {
+        PA_ENSURE( AlsaStop( stream, abort ) );
+    }
+
+    stream->isActive = 0;
+
+end:
+    return result;
+
+error:
+    goto end;
+}
+
+static PaError StopStream( PaStream *s )
+{
+    return RealStop( (PaAlsaStream *) s, 0 );
+}
+
+static PaError AbortStream( PaStream *s )
+{
+    return RealStop( (PaAlsaStream * ) s, 1 );
+}
+
+/** The stream is considered stopped before StartStream, or AFTER a call to Abort/StopStream (callback
+ * returning !paContinue is not considered)
+ *
+ */
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaAlsaStream *stream = (PaAlsaStream *)s;
+
+    /* callback_finished indicates we need to join callback thread (ie. in Abort/StopStream) */
+    return !IsStreamActive( s ) && !stream->callback_finished;
+}
+
+static PaError IsStreamActive( PaStream *s )
+{
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+    return stream->isActive;
+}
+
+static PaTime GetStreamTime( PaStream *s )
+{
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+
+    snd_timestamp_t timestamp;
+    snd_pcm_status_t* status;
+    snd_pcm_status_alloca( &status );
+
+    /* TODO: what if we have both?  does it really matter? */
+
+    /* TODO: if running in callback mode, this will mean
+     * libasound routines are being called from multiple threads.
+     * need to verify that libasound is thread-safe. */
+
+    if( stream->capture.pcm )
+    {
+        snd_pcm_status( stream->capture.pcm, status );
+    }
+    else if( stream->playback.pcm )
+    {
+        snd_pcm_status( stream->playback.pcm, status );
+    }
+
+    snd_pcm_status_get_tstamp( status, &timestamp );
+    return timestamp.tv_sec + (PaTime)timestamp.tv_usec / 1e6;
+}
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
+
+static int SetApproximateSampleRate( snd_pcm_t *pcm, snd_pcm_hw_params_t *hwParams, double sampleRate )
+{
+    unsigned long approx = (unsigned long) sampleRate;
+    int dir = 0;
+    double fraction = sampleRate - approx;
+
+    assert( pcm && hwParams );
+
+    if( fraction > 0.0 )
+    {
+        if( fraction > 0.5 )
+        {
+            ++approx;
+            dir = -1;
+        }
+        else
+            dir = 1;
+    }
+
+    return snd_pcm_hw_params_set_rate( pcm, hwParams, approx, dir );
+}
+
+/* Return exact sample rate in param sampleRate */
+static int GetExactSampleRate( snd_pcm_hw_params_t *hwParams, double *sampleRate )
+{
+    unsigned int num, den;
+    int err; 
+
+    assert( hwParams );
+
+    err = snd_pcm_hw_params_get_rate_numden( hwParams, &num, &den );
+    *sampleRate = (double) num / den;
+
+    return err;
+}
+
+/* Utility functions for blocking/callback interfaces */
+
+/* Atomic restart of stream (we don't want the intermediate state visible) */
+static PaError AlsaRestart( PaAlsaStream *stream )
+{
+    PaError result = paNoError;
+
+    PA_ENSURE( PaUnixMutex_Lock( &stream->stateMtx ) );
+    PA_ENSURE( AlsaStop( stream, 0 ) );
+    PA_ENSURE( AlsaStart( stream, 0 ) );
+
+    PA_DEBUG(( "%s: Restarted audio\n", __FUNCTION__ ));
+
+error:
+    PA_ENSURE( PaUnixMutex_Unlock( &stream->stateMtx ) );
+
+    return result;
+}
+
+/** Recover from xrun state.
+ *
+ */
+static PaError PaAlsaStream_HandleXrun( PaAlsaStream *self )
+{
+    PaError result = paNoError;
+    snd_pcm_status_t *st;
+    PaTime now = PaUtil_GetTime();
+    snd_timestamp_t t;
+
+    snd_pcm_status_alloca( &st );
+
+    if( self->playback.pcm )
+    {
+        snd_pcm_status( self->playback.pcm, st );
+        if( snd_pcm_status_get_state( st ) == SND_PCM_STATE_XRUN )
+        {
+            snd_pcm_status_get_trigger_tstamp( st, &t );
+            self->underrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000);
+        }
+    }
+    if( self->capture.pcm )
+    {
+        snd_pcm_status( self->capture.pcm, st );
+        if( snd_pcm_status_get_state( st ) == SND_PCM_STATE_XRUN )
+        {
+            snd_pcm_status_get_trigger_tstamp( st, &t );
+            self->overrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000);
+        }
+    }
+
+    PA_ENSURE( AlsaRestart( self ) );
+
+end:
+    return result;
+error:
+    goto end;
+}
+
+/** Decide if we should continue polling for specified direction, eventually adjust the poll timeout.
+ * 
+ */
+static PaError ContinuePoll( const PaAlsaStream *stream, StreamDirection streamDir, int *pollTimeout, int *continuePoll )
+{
+    PaError result = paNoError;
+    snd_pcm_sframes_t delay, margin;
+    int err;
+    const PaAlsaStreamComponent *component = NULL, *otherComponent = NULL;
+
+    *continuePoll = 1;
+
+    if( StreamDirection_In == streamDir )
+    {
+        component = &stream->capture;
+        otherComponent = &stream->playback;
+    }
+    else
+    {
+        component = &stream->playback;
+        otherComponent = &stream->capture;
+    }
+
+    /* ALSA docs say that negative delay should indicate xrun, but in my experience snd_pcm_delay returns -EPIPE */
+    if( (err = snd_pcm_delay( otherComponent->pcm, &delay )) < 0 )
+    {
+        if( err == -EPIPE )
+        {
+            /* Xrun */
+            *continuePoll = 0;
+            goto error;
+        }
+
+        ENSURE_( err, paUnanticipatedHostError );
+    }
+
+    if( StreamDirection_Out == streamDir )
+    {
+        /* Number of eligible frames before capture overrun */
+        delay = otherComponent->bufferSize - delay;
+    }
+    margin = delay - otherComponent->framesPerBuffer / 2;
+
+    if( margin < 0 )
+    {
+        PA_DEBUG(( "%s: Stopping poll for %s\n", __FUNCTION__, StreamDirection_In == streamDir ? "capture" : "playback" ));
+        *continuePoll = 0;
+    }
+    else if( margin < otherComponent->framesPerBuffer )
+    {
+        *pollTimeout = CalculatePollTimeout( stream, margin );
+        PA_DEBUG(( "%s: Trying to poll again for %s frames, pollTimeout: %d\n",
+                    __FUNCTION__, StreamDirection_In == streamDir ? "capture" : "playback", *pollTimeout ));
+    }
+
+error:
+    return result;
+}
+
+/* Callback interface */
+
+static void OnExit( void *data )
+{
+    PaAlsaStream *stream = (PaAlsaStream *) data;
+
+    assert( data );
+
+    PaUtil_ResetCpuLoadMeasurer( &stream->cpuLoadMeasurer );
+
+    stream->callback_finished = 1;  /* Let the outside world know stream was stopped in callback */
+    PA_DEBUG(( "%s: Stopping ALSA handles\n", __FUNCTION__ ));
+    AlsaStop( stream, stream->callbackAbort );
+    
+    PA_DEBUG(( "%s: Stoppage\n", __FUNCTION__ ));
+
+    /* Eventually notify user all buffers have played */
+    if( stream->streamRepresentation.streamFinishedCallback )
+    {
+        stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+    stream->isActive = 0;
+}
+
+static void CalculateTimeInfo( PaAlsaStream *stream, PaStreamCallbackTimeInfo *timeInfo )
+{
+    snd_pcm_status_t *capture_status, *playback_status;
+    snd_timestamp_t capture_timestamp, playback_timestamp;
+    PaTime capture_time = 0., playback_time = 0.;
+
+    snd_pcm_status_alloca( &capture_status );
+    snd_pcm_status_alloca( &playback_status );
+
+    if( stream->capture.pcm )
+    {
+        snd_pcm_sframes_t capture_delay;
+
+        snd_pcm_status( stream->capture.pcm, capture_status );
+        snd_pcm_status_get_tstamp( capture_status, &capture_timestamp );
+
+        capture_time = capture_timestamp.tv_sec +
+            ((PaTime)capture_timestamp.tv_usec / 1000000.0);
+        timeInfo->currentTime = capture_time;
+
+        capture_delay = snd_pcm_status_get_delay( capture_status );
+        timeInfo->inputBufferAdcTime = timeInfo->currentTime -
+            (PaTime)capture_delay / stream->streamRepresentation.streamInfo.sampleRate;
+    }
+    if( stream->playback.pcm )
+    {
+        snd_pcm_sframes_t playback_delay;
+
+        snd_pcm_status( stream->playback.pcm, playback_status );
+        snd_pcm_status_get_tstamp( playback_status, &playback_timestamp );
+
+        playback_time = playback_timestamp.tv_sec +
+            ((PaTime)playback_timestamp.tv_usec / 1000000.0);
+
+        if( stream->capture.pcm ) /* Full duplex */
+        {
+            /* Hmm, we have both a playback and a capture timestamp.
+             * Hopefully they are the same... */
+            if( fabs( capture_time - playback_time ) > 0.01 )
+                PA_DEBUG(("Capture time and playback time differ by %f\n", fabs(capture_time-playback_time)));
+        }
+        else
+            timeInfo->currentTime = playback_time;
+
+        playback_delay = snd_pcm_status_get_delay( playback_status );
+        timeInfo->outputBufferDacTime = timeInfo->currentTime +
+            (PaTime)playback_delay / stream->streamRepresentation.streamInfo.sampleRate;
+    }
+}
+
+/** Called after buffer processing is finished.
+ *
+ * A number of mmapped frames is committed, it is possible that an xrun has occurred in the meantime.
+ *
+ * @param numFrames The number of frames that has been processed
+ * @param xrun Return whether an xrun has occurred
+ */
+static PaError PaAlsaStreamComponent_EndProcessing( PaAlsaStreamComponent *self, unsigned long numFrames, int *xrun )
+{
+    PaError result = paNoError;
+    int res;
+
+    /* @concern FullDuplex It is possible that only one direction is marked ready after polling, and processed
+     * afterwards
+     */
+    if( !self->ready )
+        goto end;
+
+    res = snd_pcm_mmap_commit( self->pcm, self->offset, numFrames );
+    if( res == -EPIPE || res == -ESTRPIPE )
+    {
+        *xrun = 1;
+    }
+    else
+    {
+        ENSURE_( res, paUnanticipatedHostError );
+    }
+
+end:
+error:
+    return result;
+}
+
+/* Extract buffer from channel area */
+static unsigned char *ExtractAddress( const snd_pcm_channel_area_t *area, snd_pcm_uframes_t offset )
+{
+    return (unsigned char *) area->addr + (area->first + offset * area->step) / 8;
+}
+
+/** Do necessary adaption between user and host channels.
+ *
+    @concern ChannelAdaption Adapting between user and host channels can involve silencing unused channels and
+    duplicating mono information if host outputs come in pairs.
+ */
+static PaError PaAlsaStreamComponent_DoChannelAdaption( PaAlsaStreamComponent *self, PaUtilBufferProcessor *bp, int numFrames )
+{
+    PaError result = paNoError;
+    unsigned char *p;
+    int i;
+    int unusedChans = self->numHostChannels - self->numUserChannels;
+    unsigned char *src, *dst;
+    int convertMono = (self->numHostChannels % 2) == 0 && (self->numUserChannels % 2) != 0;
+
+    assert( StreamDirection_Out == self->streamDir );
+
+    if( self->hostInterleaved )
+    {
+        int swidth = snd_pcm_format_size( self->nativeFormat, 1 );
+        unsigned char *buffer = ExtractAddress( self->channelAreas, self->offset );
+
+        /* Start after the last user channel */
+        p = buffer + self->numUserChannels * swidth;
+
+        if( convertMono )
+        {
+            /* Convert the last user channel into stereo pair */
+            src = buffer + (self->numUserChannels - 1) * swidth;
+            for( i = 0; i < numFrames; ++i )
+            {
+                dst = src + swidth;
+                memcpy( dst, src, swidth );
+                src += self->numHostChannels * swidth;
+            }
+
+            /* Don't touch the channel we just wrote to */
+            p += swidth;
+            --unusedChans;
+        }
+
+        if( unusedChans > 0 )
+        {
+            /* Silence unused output channels */
+            for( i = 0; i < numFrames; ++i )
+            {
+                memset( p, 0, swidth * unusedChans );
+                p += self->numHostChannels * swidth;
+            }
+        }
+    }
+    else
+    {
+        /* We extract the last user channel */
+        if( convertMono )
+        {
+            ENSURE_( snd_pcm_area_copy( self->channelAreas + self->numUserChannels, self->offset, self->channelAreas +
+                    (self->numUserChannels - 1), self->offset, numFrames, self->nativeFormat ), paUnanticipatedHostError );
+            --unusedChans;
+        }
+        if( unusedChans > 0 )
+        {
+            snd_pcm_areas_silence( self->channelAreas + (self->numHostChannels - unusedChans), self->offset, unusedChans, numFrames,
+                    self->nativeFormat );
+        }
+    }
+
+error:
+    return result;
+}
+
+static PaError PaAlsaStream_EndProcessing( PaAlsaStream *self, unsigned long numFrames, int *xrunOccurred )
+{
+    PaError result = paNoError;
+    int xrun = 0;
+
+    if( self->capture.pcm )
+    {
+        PA_ENSURE( PaAlsaStreamComponent_EndProcessing( &self->capture, numFrames, &xrun ) );
+    }
+    if( self->playback.pcm )
+    {
+        if( self->playback.numHostChannels > self->playback.numUserChannels )
+        {
+            PA_ENSURE( PaAlsaStreamComponent_DoChannelAdaption( &self->playback, &self->bufferProcessor, numFrames ) );
+        }
+        PA_ENSURE( PaAlsaStreamComponent_EndProcessing( &self->playback, numFrames, &xrun ) );
+    }
+
+error:
+    *xrunOccurred = xrun;
+    return result;
+}
+
+/** Update the number of available frames.
+ *
+ */
+static PaError PaAlsaStreamComponent_GetAvailableFrames( PaAlsaStreamComponent *self, unsigned long *numFrames, int *xrunOccurred )
+{
+    PaError result = paNoError;
+    snd_pcm_sframes_t framesAvail = snd_pcm_avail_update( self->pcm );
+    *xrunOccurred = 0;
+
+    if( -EPIPE == framesAvail )
+    {
+        *xrunOccurred = 1;
+        framesAvail = 0;
+    }
+    else
+    {
+        ENSURE_( framesAvail, paUnanticipatedHostError );
+    }
+
+    *numFrames = framesAvail;
+
+error:
+    return result;
+}
+
+/** Fill in pollfd objects.
+ */
+static PaError PaAlsaStreamComponent_BeginPolling( PaAlsaStreamComponent* self, struct pollfd* pfds )
+{
+    PaError result = paNoError;
+    int ret = snd_pcm_poll_descriptors( self->pcm, pfds, self->nfds );
+    (void)ret;  /* Prevent unused variable warning if asserts are turned off */
+    assert( ret == self->nfds );
+
+    self->ready = 0;
+
+    return result;
+}
+
+/** Examine results from poll().
+ *
+ * @param pfds pollfds to inspect
+ * @param shouldPoll Should we continue to poll
+ * @param xrun Has an xrun occurred
+ */
+static PaError PaAlsaStreamComponent_EndPolling( PaAlsaStreamComponent* self, struct pollfd* pfds, int* shouldPoll, int* xrun )
+{
+    PaError result = paNoError;
+    unsigned short revents;
+
+    ENSURE_( snd_pcm_poll_descriptors_revents( self->pcm, pfds, self->nfds, &revents ), paUnanticipatedHostError );
+    if( revents != 0 )
+    {
+        if( revents & POLLERR )
+        {
+            *xrun = 1;
+        }
+        else
+            self->ready = 1;
+
+        *shouldPoll = 0;
+    }
+
+error:
+    return result;
+}
+
+/** Return the number of available frames for this stream.
+ *
+ * @concern FullDuplex The minimum available for the two directions is calculated, it might be desirable to ignore
+ * one direction however (not marked ready from poll), so this is controlled by queryCapture and queryPlayback.
+ *
+ * @param queryCapture Check available for capture
+ * @param queryPlayback Check available for playback
+ * @param available The returned number of frames
+ * @param xrunOccurred Return whether an xrun has occurred
+ */
+static PaError PaAlsaStream_GetAvailableFrames( PaAlsaStream *self, int queryCapture, int queryPlayback, unsigned long
+        *available, int *xrunOccurred )
+{
+    PaError result = paNoError;
+    unsigned long captureFrames, playbackFrames;
+    *xrunOccurred = 0;
+
+    assert( queryCapture || queryPlayback );
+
+    if( queryCapture )
+    {
+        assert( self->capture.pcm );
+        PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( &self->capture, &captureFrames, xrunOccurred ) );
+        if( *xrunOccurred )
+        {
+            goto end;
+        }
+    }
+    if( queryPlayback )
+    {
+        assert( self->playback.pcm );
+        PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( &self->playback, &playbackFrames, xrunOccurred ) );
+        if( *xrunOccurred )
+        {
+            goto end;
+        }
+    }
+
+    if( queryCapture && queryPlayback )
+    {
+        *available = PA_MIN( captureFrames, playbackFrames );
+        /*PA_DEBUG(("capture: %lu, playback: %lu, combined: %lu\n", captureFrames, playbackFrames, *available));*/
+    }
+    else if( queryCapture )
+    {
+        *available = captureFrames;
+    }
+    else
+    {
+        *available = playbackFrames;
+    }
+
+end:
+error:
+    return result;
+}
+
+/** Wait for and report available buffer space from ALSA.
+ *
+ * Unless ALSA reports a minimum of frames available for I/O, we poll the ALSA filedescriptors for more.
+ * Both of these operations can uncover xrun conditions.
+ *
+ * @concern Xruns Both polling and querying available frames can report an xrun condition.
+ *
+ * @param framesAvail Return the number of available frames
+ * @param xrunOccurred Return whether an xrun has occurred
+ */ 
+static PaError PaAlsaStream_WaitForFrames( PaAlsaStream *self, unsigned long *framesAvail, int *xrunOccurred )
+{
+    PaError result = paNoError;
+    int pollPlayback = self->playback.pcm != NULL, pollCapture = self->capture.pcm != NULL;
+    int pollTimeout = self->pollTimeout;
+    int xrun = 0;
+
+    assert( self );
+    assert( framesAvail );
+
+    if( !self->callbackMode )
+    {
+        /* In blocking mode we will only wait if necessary */
+        PA_ENSURE( PaAlsaStream_GetAvailableFrames( self, self->capture.pcm != NULL, self->playback.pcm != NULL,
+                    framesAvail, &xrun ) );
+        if( xrun )
+        {
+            goto end;
+        }
+
+        if( *framesAvail > 0 )
+        {
+            /* Mark pcms ready from poll */
+            if( self->capture.pcm )
+                self->capture.ready = 1;
+            if( self->playback.pcm )
+                self->playback.ready = 1;
+
+            goto end;
+        }
+    }
+
+    while( pollPlayback || pollCapture )
+    {
+        int totalFds = 0;
+        struct pollfd *capturePfds = NULL, *playbackPfds = NULL;
+
+        pthread_testcancel();
+
+        if( pollCapture )
+        {
+            capturePfds = self->pfds;
+            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, capturePfds ) );
+            totalFds += self->capture.nfds;
+        }
+        if( pollPlayback )
+        {
+            playbackPfds = self->pfds + (self->capture.pcm ? self->capture.nfds : 0);
+            PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->playback, playbackPfds ) );
+            totalFds += self->playback.nfds;
+        }
+        
+        if( poll( self->pfds, totalFds, pollTimeout ) < 0 )
+        {
+            /*  XXX: Depend on preprocessor condition? */
+            if( errno == EINTR )
+            {
+                /* gdb */
+                continue;
+            }
+
+            /* TODO: Add macro for checking system calls */
+            PA_ENSURE( paInternalError );
+        }
+
+        /* check the return status of our pfds */
+        if( pollCapture )
+        {
+            PA_ENSURE( PaAlsaStreamComponent_EndPolling( &self->capture, capturePfds, &pollCapture, &xrun ) );
+        }
+        if( pollPlayback )
+        {
+            PA_ENSURE( PaAlsaStreamComponent_EndPolling( &self->playback, playbackPfds, &pollPlayback, &xrun ) );
+        }
+        if( xrun )
+        {
+            break;
+        }
+
+        /* @concern FullDuplex If only one of two pcms is ready we may want to compromise between the two.
+         * If there is less than half a period's worth of samples left of frames in the other pcm's buffer we will
+         * stop polling.
+         */
+        if( self->capture.pcm && self->playback.pcm )
+        {
+            if( pollCapture && !pollPlayback )
+            {
+                PA_ENSURE( ContinuePoll( self, StreamDirection_In, &pollTimeout, &pollCapture ) );
+            }
+            else if( pollPlayback && !pollCapture )
+            {
+                PA_ENSURE( ContinuePoll( self, StreamDirection_Out, &pollTimeout, &pollPlayback ) );
+            }
+        }
+    }
+
+    if( !xrun )
+    {
+        /* Get the number of available frames for the pcms that are marked ready.
+         * @concern FullDuplex If only one direction is marked ready (from poll), the number of frames available for
+         * the other direction is returned. Output is normally preferred over capture however, so capture frames may be
+         * discarded to avoid overrun unless paNeverDropInput is specified.
+         */
+        int captureReady = self->capture.pcm ? self->capture.ready : 0,
+            playbackReady = self->playback.pcm ? self->playback.ready : 0;
+        PA_ENSURE( PaAlsaStream_GetAvailableFrames( self, captureReady, playbackReady, framesAvail, &xrun ) );
+
+        if( self->capture.pcm && self->playback.pcm )
+        {
+            if( !self->playback.ready && !self->neverDropInput )
+            {
+                /* Drop input, a period's worth */
+                assert( self->capture.ready );
+                PaAlsaStreamComponent_EndProcessing( &self->capture, PA_MIN( self->capture.framesPerBuffer,
+                            *framesAvail ), &xrun );
+                *framesAvail = 0;
+                self->capture.ready = 0;
+            }
+        }
+        else if( self->capture.pcm )
+            assert( self->capture.ready );
+        else
+            assert( self->playback.ready );
+    }
+
+end:
+error:
+    if( xrun )
+    {
+        /* Recover from the xrun state */
+        PA_ENSURE( PaAlsaStream_HandleXrun( self ) );
+        *framesAvail = 0;
+    }
+    else
+    {
+        if( 0 != *framesAvail )
+        {
+            /* If we're reporting frames eligible for processing, one of the handles better be ready */
+            PA_UNLESS( self->capture.ready || self->playback.ready, paInternalError );
+        }
+    }
+    *xrunOccurred = xrun;
+
+    return result;
+}
+
+/** Register per-channel ALSA buffer information with buffer processor.
+ *
+ * Mmapped buffer space is acquired from ALSA, and registered with the buffer processor. Differences between the
+ * number of host and user channels is taken into account.
+ * 
+ * @param numFrames On entrance the number of requested frames, on exit the number of contiguously accessible frames.
+ */
+static PaError PaAlsaStreamComponent_RegisterChannels( PaAlsaStreamComponent* self, PaUtilBufferProcessor* bp,
+        unsigned long* numFrames, int* xrun )
+{
+    PaError result = paNoError;
+    const snd_pcm_channel_area_t *areas, *area;
+    void (*setChannel)(PaUtilBufferProcessor *, unsigned int, void *, unsigned int) =
+        StreamDirection_In == self->streamDir ? PaUtil_SetInputChannel : PaUtil_SetOutputChannel;
+    unsigned char *buffer, *p;
+    int i;
+    unsigned long framesAvail;
+
+    /* This _must_ be called before mmap_begin */
+    PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( self, &framesAvail, xrun ) );
+    if( *xrun )
+    {
+        *numFrames = 0;
+        goto end;
+    }
+
+    ENSURE_( snd_pcm_mmap_begin( self->pcm, &areas, &self->offset, numFrames ), paUnanticipatedHostError );
+
+    if( self->hostInterleaved )
+    {
+        int swidth = snd_pcm_format_size( self->nativeFormat, 1 );
+
+        p = buffer = ExtractAddress( areas, self->offset );
+        for( i = 0; i < self->numUserChannels; ++i )
+        {
+            /* We're setting the channels up to userChannels, but the stride will be hostChannels samples */
+            setChannel( bp, i, p, self->numHostChannels );
+            p += swidth;
+        }
+    }
+    else
+    {
+        for( i = 0; i < self->numUserChannels; ++i )
+        {
+            area = areas + i;
+            buffer = ExtractAddress( area, self->offset );
+            setChannel( bp, i, buffer, 1 );
+        }
+    }
+
+    /* @concern ChannelAdaption Buffer address is recorded so we can do some channel adaption later */
+    self->channelAreas = (snd_pcm_channel_area_t *)areas;
+
+end:
+error:
+    return result;
+}
+
+/** Initiate buffer processing.
+ *
+ * ALSA buffers are registered with the PA buffer processor and the buffer size (in frames) set.
+ *
+ * @concern FullDuplex If both directions are being processed, the minimum amount of frames for the two directions is
+ * calculated.
+ *
+ * @param numFrames On entrance the number of available frames, on exit the number of received frames
+ * @param xrunOccurred Return whether an xrun has occurred
+ */
+static PaError PaAlsaStream_SetUpBuffers( PaAlsaStream* self, unsigned long* numFrames, int* xrunOccurred )
+{
+    PaError result = paNoError;
+    unsigned long captureFrames = ULONG_MAX, playbackFrames = ULONG_MAX, commonFrames = 0;
+    int xrun = 0;
+
+    if( *xrunOccurred )
+    {
+        *numFrames = 0;
+        return result;
+    }
+    /* If we got here at least one of the pcm's should be marked ready */
+    PA_UNLESS( self->capture.ready || self->playback.ready, paInternalError );
+
+    /* Extract per-channel ALSA buffer pointers and register them with the buffer processor.
+     * It is possible that a direction is not marked ready however, because it is out of sync with the other.
+     */
+    if( self->capture.pcm && self->capture.ready )
+    {
+        captureFrames = *numFrames;
+        PA_ENSURE( PaAlsaStreamComponent_RegisterChannels( &self->capture, &self->bufferProcessor, &captureFrames, 
+                    &xrun ) );
+    }
+    if( self->playback.pcm && self->playback.ready )
+    {
+        playbackFrames = *numFrames;
+        PA_ENSURE( PaAlsaStreamComponent_RegisterChannels( &self->playback, &self->bufferProcessor, &playbackFrames, 
+                    &xrun ) );
+    }
+    if( xrun )
+    {
+        /* Nothing more to do */
+        assert( 0 == commonFrames );
+        goto end;
+    }
+
+    commonFrames = PA_MIN( captureFrames, playbackFrames );
+    /* assert( commonFrames <= *numFrames ); */
+    if( commonFrames > *numFrames )
+    {
+        /* Hmmm ... how come there are more frames available than we requested!? Blah. */
+        PA_DEBUG(( "%s: Common available frames are reported to be more than number requested: %lu, %lu, callbackMode: %d\n", __FUNCTION__,
+                    commonFrames, *numFrames, self->callbackMode ));
+        if( self->capture.pcm )
+        {
+            PA_DEBUG(( "%s: captureFrames: %lu, capture.ready: %d\n", __FUNCTION__, captureFrames, self->capture.ready ));
+        }
+        if( self->playback.pcm )
+        {
+            PA_DEBUG(( "%s: playbackFrames: %lu, playback.ready: %d\n", __FUNCTION__, playbackFrames, self->playback.ready ));
+        }
+        
+        commonFrames = 0;
+        goto end;
+    }
+
+    /* Inform PortAudio of the number of frames we got.
+     * @concern FullDuplex We might be experiencing underflow in either end; if its an input underflow, we go on
+     * with output. If its output underflow however, depending on the paNeverDropInput flag, we may want to simply
+     * discard the excess input or call the callback with paOutputOverflow flagged.
+     */
+    if( self->capture.pcm )
+    {
+        if( self->capture.ready )
+        {
+            PaUtil_SetInputFrameCount( &self->bufferProcessor, commonFrames );
+        }
+        else
+        {
+            /* We have input underflow */
+            PaUtil_SetNoInput( &self->bufferProcessor );
+        }
+    }
+    if( self->playback.pcm )
+    {
+        if( self->playback.ready )
+        {
+            PaUtil_SetOutputFrameCount( &self->bufferProcessor, commonFrames );
+        }
+        else
+        {
+            /* We have output underflow, but keeping input data (paNeverDropInput) */
+            assert( self->neverDropInput );
+            assert( self->capture.pcm != NULL );
+            PA_DEBUG(( "%s: Setting output buffers to NULL\n", __FUNCTION__ ));
+            PaUtil_SetNoOutput( &self->bufferProcessor );
+        }
+    }
+    
+end:
+    *numFrames = commonFrames;
+error:
+    if( xrun )
+    {
+        PA_ENSURE( PaAlsaStream_HandleXrun( self ) );
+        *numFrames = 0;
+    }
+    *xrunOccurred = xrun;
+
+    return result;
+}
+
+/** Callback thread's function.
+ *
+ * Roughly, the workflow can be described in the following way: The number of available frames that can be processed
+ * directly is obtained from ALSA, we then request as much directly accessible memory as possible within this amount
+ * from ALSA. The buffer memory is registered with the PA buffer processor and processing is carried out with
+ * PaUtil_EndBufferProcessing. Finally, the number of processed frames is reported to ALSA. The processing can
+ * happen in several iterations untill we have consumed the known number of available frames (or an xrun is detected).
+ */
+static void *CallbackThreadFunc( void *userData )
+{
+    PaError result = paNoError;
+    PaAlsaStream *stream = (PaAlsaStream*) userData;
+    PaStreamCallbackTimeInfo timeInfo = {0, 0, 0};
+    snd_pcm_sframes_t startThreshold = 0;
+    int callbackResult = paContinue;
+    PaStreamCallbackFlags cbFlags = 0;  /* We might want to keep state across iterations */
+    int streamStarted = 0;
+
+    assert( stream );
+
+    /* Execute OnExit when exiting */
+    pthread_cleanup_push( &OnExit, stream );
+
+    /* Not implemented */
+    assert( !stream->primeBuffers );
+
+    /* @concern StreamStart If the output is being primed the output pcm needs to be prepared, otherwise the
+     * stream is started immediately. The latter involves signaling the waiting main thread.
+     */
+    if( stream->primeBuffers )
+    {
+        snd_pcm_sframes_t avail;
+        
+        if( stream->playback.pcm )
+            ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError );
+        if( stream->capture.pcm && !stream->pcmsSynced )
+            ENSURE_( snd_pcm_prepare( stream->capture.pcm ), paUnanticipatedHostError );
+
+        /* We can't be certain that the whole ring buffer is available for priming, but there should be
+         * at least one period */
+        avail = snd_pcm_avail_update( stream->playback.pcm );
+        startThreshold = avail - (avail % stream->playback.framesPerBuffer);
+        assert( startThreshold >= stream->playback.framesPerBuffer );
+    }
+    else
+    {
+        PA_ENSURE( PaUnixThread_PrepareNotify( &stream->thread ) );
+        /* Buffer will be zeroed */
+        PA_ENSURE( AlsaStart( stream, 0 ) );
+        PA_ENSURE( PaUnixThread_NotifyParent( &stream->thread ) );
+
+        streamStarted = 1;
+    }
+
+    while( 1 )
+    {
+        unsigned long framesAvail, framesGot;
+        int xrun = 0;
+
+        pthread_testcancel();
+
+        /* @concern StreamStop if the main thread has requested a stop and the stream has not been effectively
+         * stopped we signal this condition by modifying callbackResult (we'll want to flush buffered output).
+         */
+        if( PaUnixThread_StopRequested( &stream->thread ) && paContinue == callbackResult )
+        {
+            PA_DEBUG(( "Setting callbackResult to paComplete\n" ));
+            callbackResult = paComplete;
+        }
+
+        if( paContinue != callbackResult )
+        {
+            stream->callbackAbort = (paAbort == callbackResult);
+            if( stream->callbackAbort ||
+                    /** @concern BlockAdaption: Go on if adaption buffers are empty */
+                    PaUtil_IsBufferProcessorOutputEmpty( &stream->bufferProcessor ) ) 
+            {
+                goto end;
+            }
+
+            PA_DEBUG(( "%s: Flushing buffer processor\n", __FUNCTION__ ));
+            /* There is still buffered output that needs to be processed */
+        }
+
+        /* Wait for data to become available, this comes down to polling the ALSA file descriptors untill we have
+         * a number of available frames.
+         */
+        PA_ENSURE( PaAlsaStream_WaitForFrames( stream, &framesAvail, &xrun ) );
+        if( xrun )
+        {
+            assert( 0 == framesAvail );
+            continue;
+
+            /* XXX: Report xruns to the user? A situation is conceivable where the callback is never invoked due
+             * to constant xruns, it might be desirable to notify the user of this.
+             */
+        }
+
+        /* Consume buffer space. Once we have a number of frames available for consumption we must retrieve the
+         * mmapped buffers from ALSA, this is contiguously accessible memory however, so we may receive smaller
+         * portions at a time than is available as a whole. Therefore we should be prepared to process several
+         * chunks successively. The buffers are passed to the PA buffer processor.
+         */
+        while( framesAvail > 0 )
+        {
+            xrun = 0;
+
+            pthread_testcancel();
+
+            /** @concern Xruns Under/overflows are to be reported to the callback */
+            if( stream->underrun > 0.0 )
+            {
+                cbFlags |= paOutputUnderflow;
+                stream->underrun = 0.0;
+            }
+            if( stream->overrun > 0.0 )
+            {
+                cbFlags |= paInputOverflow;
+                stream->overrun = 0.0;
+            }
+            if( stream->capture.pcm && stream->playback.pcm )
+            {
+                /** @concern FullDuplex It's possible that only one direction is being processed to avoid an
+                 * under- or overflow, this should be reported correspondingly */
+                if( !stream->capture.ready )
+                {
+                    cbFlags |= paInputUnderflow;
+                    PA_DEBUG(( "%s: Input underflow\n", __FUNCTION__ ));
+                }
+                else if( !stream->playback.ready )
+                {
+                    cbFlags |= paOutputOverflow;
+                    PA_DEBUG(( "%s: Output overflow\n", __FUNCTION__ ));
+                }
+            }
+
+#if 0
+            CallbackUpdate( &stream->threading );
+#endif
+            CalculateTimeInfo( stream, &timeInfo );
+            PaUtil_BeginBufferProcessing( &stream->bufferProcessor, &timeInfo, cbFlags );
+            cbFlags = 0;
+
+            /* CPU load measurement should include processing activivity external to the stream callback */
+            PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+
+            framesGot = framesAvail;
+            if( paUtilFixedHostBufferSize == stream->bufferProcessor.hostBufferSizeMode )
+            {
+                /* We've committed to a fixed host buffer size, stick to that */
+                framesGot = framesGot >= stream->maxFramesPerHostBuffer ? stream->maxFramesPerHostBuffer : 0;
+            }
+            else
+            {
+                /* We've committed to an upper bound on the size of host buffers */
+                assert( paUtilBoundedHostBufferSize == stream->bufferProcessor.hostBufferSizeMode );
+                framesGot = PA_MIN( framesGot, stream->maxFramesPerHostBuffer );
+            }
+            PA_ENSURE( PaAlsaStream_SetUpBuffers( stream, &framesGot, &xrun ) );
+            /* Check the host buffer size against the buffer processor configuration */
+            framesAvail -= framesGot;
+
+            if( framesGot > 0 )
+            {
+                assert( !xrun );
+                PaUtil_EndBufferProcessing( &stream->bufferProcessor, &callbackResult );
+                PA_ENSURE( PaAlsaStream_EndProcessing( stream, framesGot, &xrun ) );
+            }
+            PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesGot );
+
+            if( 0 == framesGot )
+            {
+                /* Go back to polling for more frames */
+                break;
+
+            }
+
+            if( paContinue != callbackResult )
+                break;
+        }
+    }
+
+    /* Match pthread_cleanup_push */
+    pthread_cleanup_pop( 1 );
+
+end:
+    PA_DEBUG(( "%s: Thread %d exiting\n ", __FUNCTION__, pthread_self() ));
+    PaUnixThreading_EXIT( result );
+error:
+    goto end;
+}
+
+/* Blocking interface */
+
+static PaError ReadStream( PaStream* s, void *buffer, unsigned long frames )
+{
+    PaError result = paNoError;
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+    unsigned long framesGot, framesAvail;
+    void *userBuffer;
+    snd_pcm_t *save = stream->playback.pcm;
+
+    assert( stream );
+
+    PA_UNLESS( stream->capture.pcm, paCanNotReadFromAnOutputOnlyStream );
+
+    /* Disregard playback */
+    stream->playback.pcm = NULL;
+
+    if( stream->overrun > 0. )
+    {
+        result = paInputOverflowed;
+        stream->overrun = 0.0;
+    }
+
+    if( stream->capture.userInterleaved )
+    {
+        userBuffer = buffer;
+    }
+    else
+    {
+        /* Copy channels into local array */
+        userBuffer = stream->capture.userBuffers;
+        memcpy( userBuffer, buffer, sizeof (void *) * stream->capture.numUserChannels );
+    }
+
+    /* Start stream if in prepared state */
+    if( snd_pcm_state( stream->capture.pcm ) == SND_PCM_STATE_PREPARED )
+    {
+        ENSURE_( snd_pcm_start( stream->capture.pcm ), paUnanticipatedHostError );
+    }
+
+    while( frames > 0 )
+    {
+        int xrun = 0;
+        PA_ENSURE( PaAlsaStream_WaitForFrames( stream, &framesAvail, &xrun ) );
+        framesGot = PA_MIN( framesAvail, frames );
+
+        PA_ENSURE( PaAlsaStream_SetUpBuffers( stream, &framesGot, &xrun ) );
+        if( framesGot > 0 )
+        {
+            framesGot = PaUtil_CopyInput( &stream->bufferProcessor, &userBuffer, framesGot );
+            PA_ENSURE( PaAlsaStream_EndProcessing( stream, framesGot, &xrun ) );
+            frames -= framesGot;
+        }
+    }
+
+end:
+    stream->playback.pcm = save;
+    return result;
+error:
+    goto end;
+}
+
+static PaError WriteStream( PaStream* s, const void *buffer, unsigned long frames )
+{
+    PaError result = paNoError;
+    signed long err;
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+    snd_pcm_uframes_t framesGot, framesAvail;
+    const void *userBuffer;
+    snd_pcm_t *save = stream->capture.pcm;
+    
+    assert( stream );
+
+    PA_UNLESS( stream->playback.pcm, paCanNotWriteToAnInputOnlyStream );
+
+    /* Disregard capture */
+    stream->capture.pcm = NULL;
+
+    if( stream->underrun > 0. )
+    {
+        result = paOutputUnderflowed;
+        stream->underrun = 0.0;
+    }
+
+    if( stream->playback.userInterleaved )
+        userBuffer = buffer;
+    else /* Copy channels into local array */
+    {
+        userBuffer = stream->playback.userBuffers;
+        memcpy( (void *)userBuffer, buffer, sizeof (void *) * stream->playback.numUserChannels );
+    }
+
+    while( frames > 0 )
+    {
+        int xrun = 0;
+        snd_pcm_uframes_t hwAvail;
+
+        PA_ENSURE( PaAlsaStream_WaitForFrames( stream, &framesAvail, &xrun ) );
+        framesGot = PA_MIN( framesAvail, frames );
+
+        PA_ENSURE( PaAlsaStream_SetUpBuffers( stream, &framesGot, &xrun ) );
+        if( framesGot > 0 )
+        {
+            framesGot = PaUtil_CopyOutput( &stream->bufferProcessor, &userBuffer, framesGot );
+            PA_ENSURE( PaAlsaStream_EndProcessing( stream, framesGot, &xrun ) );
+            frames -= framesGot;
+        }
+
+        /* Start stream after one period of samples worth */
+
+        /* Frames residing in buffer */
+        PA_ENSURE( err = GetStreamWriteAvailable( stream ) );
+        framesAvail = err;
+        hwAvail = stream->playback.bufferSize - framesAvail;
+
+        if( snd_pcm_state( stream->playback.pcm ) == SND_PCM_STATE_PREPARED &&
+                hwAvail >= stream->playback.framesPerBuffer )
+        {
+            ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError );
+        }
+    }
+
+end:
+    stream->capture.pcm = save;
+    return result;
+error:
+    goto end;
+}
+
+/* Return frames available for reading. In the event of an overflow, the capture pcm will be restarted */
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaError result = paNoError;
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+    unsigned long avail;
+    int xrun;
+
+    PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( &stream->capture, &avail, &xrun ) );
+    if( xrun )
+    {
+        PA_ENSURE( PaAlsaStream_HandleXrun( stream ) );
+        PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( &stream->capture, &avail, &xrun ) );
+        if( xrun )
+            PA_ENSURE( paInputOverflowed );
+    }
+
+    return (signed long)avail;
+
+error:
+    return result;
+}
+
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaError result = paNoError;
+    PaAlsaStream *stream = (PaAlsaStream*)s;
+    unsigned long avail;
+    int xrun;
+
+    PA_ENSURE( PaAlsaStreamComponent_GetAvailableFrames( &stream->playback, &avail, &xrun ) );
+    if( xrun )
+    {
+        snd_pcm_sframes_t savail;
+
+        PA_ENSURE( PaAlsaStream_HandleXrun( stream ) );
+        savail = snd_pcm_avail_update( stream->playback.pcm );
+
+        /* savail should not contain -EPIPE now, since PaAlsaStream_HandleXrun will only prepare the pcm */
+        ENSURE_( savail, paUnanticipatedHostError );
+
+        avail = (unsigned long) savail;
+    }
+
+    return (signed long)avail;
+
+error:
+    return result;
+}
+
+/* Extensions */
+
+void PaAlsa_InitializeStreamInfo( PaAlsaStreamInfo *info )
+{
+    info->size = sizeof (PaAlsaStreamInfo);
+    info->hostApiType = paALSA;
+    info->version = 1;
+    info->deviceString = NULL;
+}
+
+void PaAlsa_EnableRealtimeScheduling( PaStream *s, int enable )
+{
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    stream->rtSched = enable;
+}
+
+#if 0
+void PaAlsa_EnableWatchdog( PaStream *s, int enable )
+{
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    stream->thread.useWatchdog = enable;
+}
+#endif
+
+PaError PaAlsa_GetStreamInputCard(PaStream* s, int* card) {
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    snd_pcm_info_t* pcmInfo;
+    PaError result = paNoError;
+
+    /* XXX: More descriptive error? */
+    PA_UNLESS( stream->capture.pcm, paDeviceUnavailable );
+
+    snd_pcm_info_alloca( &pcmInfo );
+    PA_ENSURE( snd_pcm_info( stream->capture.pcm, pcmInfo ) );
+    *card = snd_pcm_info_get_card( pcmInfo );
+
+error:
+    return result;
+}
+
+PaError PaAlsa_GetStreamOutputCard(PaStream* s, int* card) {
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    snd_pcm_info_t* pcmInfo;
+    PaError result = paNoError;
+
+    /* XXX: More descriptive error? */
+    PA_UNLESS( stream->playback.pcm, paDeviceUnavailable );
+
+    snd_pcm_info_alloca( &pcmInfo );
+    PA_ENSURE( snd_pcm_info( stream->playback.pcm, pcmInfo ) );
+    *card = snd_pcm_info_get_card( pcmInfo );
+
+error:
+    return result;
+}
+#endif
\ No newline at end of file
diff --git a/external/portaudio2007/pa_linux_alsa.h b/external/portaudio2007/pa_linux_alsa.h
new file mode 100644
index 0000000..5e7e8d4
--- /dev/null
+++ b/external/portaudio2007/pa_linux_alsa.h
@@ -0,0 +1,95 @@
+#ifndef PA_LINUX_ALSA_H
+#define PA_LINUX_ALSA_H
+
+/*
+ * $Id: pa_linux_alsa.h 1236 2007-06-24 20:39:26Z aknudsen $
+ * PortAudio Portable Real-Time Audio Library
+ * ALSA-specific extensions
+ *
+ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ * ALSA-specific PortAudio API extension header file.
+ */
+#include "portaudio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct PaAlsaStreamInfo
+{
+    unsigned long size;
+    PaHostApiTypeId hostApiType;
+    unsigned long version;
+
+    const char *deviceString;
+}
+PaAlsaStreamInfo;
+
+/** Initialize host API specific structure, call this before setting relevant attributes. */
+void PaAlsa_InitializeStreamInfo( PaAlsaStreamInfo *info );
+
+/** Instruct whether to enable real-time priority when starting the audio thread.
+ *
+ * If this is turned on by the stream is started, the audio callback thread will be created
+ * with the FIFO scheduling policy, which is suitable for realtime operation.
+ **/
+void PaAlsa_EnableRealtimeScheduling( PaStream *s, int enable );
+
+#if 0
+void PaAlsa_EnableWatchdog( PaStream *s, int enable );
+#endif
+
+/** Get the ALSA-lib card index of this stream's input device. */
+PaError PaAlsa_GetStreamInputCard( PaStream *s, int *card );
+
+/** Get the ALSA-lib card index of this stream's output device. */
+PaError PaAlsa_GetStreamOutputCard( PaStream *s, int *card );
+
+/** Set the number of periods (buffer fragments) to configure devices with.
+ *
+ * By default the number of periods is 4, this is the lowest number of periods that works well on
+ * the author's soundcard.
+ * @param numPeriods The number of periods.
+ */
+PaError PaAlsa_SetNumPeriods( int numPeriods );
+
+PaError PaAlsa_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/external/portaudio2007/pa_mac_core.c b/external/portaudio2007/pa_mac_core.c
new file mode 100644
index 0000000..cc273a6
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core.c
@@ -0,0 +1,2328 @@
+/*
+ * Implementation of the PortAudio API for Apple AUHAL
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file pa_mac_core
+ @ingroup hostapi_src
+ @author Bjorn Roche
+ @brief AUHAL implementation of PortAudio
+*/
+
+/* FIXME: not all error conditions call PaUtil_SetLastHostErrorInfo()
+ * PaMacCore_SetError() will do this.
+ */
+
+#include "pa_mac_core_internal.h"
+
+#include <string.h> /* strlen(), memcmp() etc. */
+#include <libkern/OSAtomic.h>
+#include <CoreServices/CoreServices.h>
+
+#include "pa_mac_core.h"
+#include "pa_mac_core_utilities.h"
+#include "pa_mac_core_blocking.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* prototypes for functions declared in this file */
+
+PaError PaMacCore_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+/*
+ * Function declared in pa_mac_core.h. Sets up a PaMacCoreStreamInfoStruct
+ * with the requested flags and initializes channel map.
+ */
+void PaMacCore_SetupStreamInfo(  PaMacCoreStreamInfo *data, const unsigned long flags )
+{
+   bzero( data, sizeof( PaMacCoreStreamInfo ) );
+   data->size = sizeof( PaMacCoreStreamInfo );
+   data->hostApiType = paCoreAudio;
+   data->version = 0x01;
+   data->flags = flags;
+   data->channelMap = NULL;
+   data->channelMapSize = 0;
+}
+
+/*
+ * Function declared in pa_mac_core.h. Adds channel mapping to a PaMacCoreStreamInfoStruct
+ */
+void PaMacCore_SetupChannelMap( PaMacCoreStreamInfo *data, const SInt32 * const channelMap, const unsigned long channelMapSize )
+{
+   data->channelMap = channelMap;
+   data->channelMapSize = channelMapSize;
+}
+static char *channelName = NULL;
+static int channelNameSize = 0;
+static bool ensureChannelNameSize( int size )
+{
+   if( size >= channelNameSize ) {
+      free( channelName );
+      channelName = (char *) malloc( ( channelNameSize = size ) + 1 );
+      if( !channelName ) {
+         channelNameSize = 0;
+         return false;
+      }
+   }
+   return true;
+}
+/*
+ * Function declared in pa_mac_core.h. retrives channel names.
+ */
+const char *PaMacCore_GetChannelName( int device, int channelIndex, bool input )
+{
+   struct PaUtilHostApiRepresentation *hostApi;
+   PaError err;
+   OSStatus error;
+   err = PaUtil_GetHostApiRepresentation( &hostApi, paCoreAudio );
+   assert(err == paNoError);
+   PaMacAUHAL *macCoreHostApi = (PaMacAUHAL*)hostApi;
+   AudioDeviceID hostApiDevice = macCoreHostApi->devIds[device];
+
+   UInt32 size = 0;
+
+   error = AudioDeviceGetPropertyInfo( hostApiDevice,
+                                       channelIndex + 1,
+                                       input,
+                                       kAudioDevicePropertyChannelName,
+                                       &size,
+                                       NULL );
+   if( error ) {
+      //try the CFString
+      CFStringRef name;
+      bool isDeviceName = false;
+      size = sizeof( name );
+      error = AudioDeviceGetProperty( hostApiDevice,
+                                      channelIndex + 1,
+                                      input,
+                                      kAudioDevicePropertyChannelNameCFString,
+                                      &size,
+                                      &name );
+      if( error ) { //as a last-ditch effort, get the device name. Later we'll append the channel number.
+         size = sizeof( name );
+         error = AudioDeviceGetProperty( hostApiDevice,
+                                      channelIndex + 1,
+                                      input,
+                                      kAudioDevicePropertyDeviceNameCFString,
+                                      &size,
+                                      &name );
+         if( error )
+            return NULL;
+         isDeviceName = true;
+      }
+      if( isDeviceName ) {
+         name = CFStringCreateWithFormat( NULL, NULL, CFSTR( "%@: %d"), name, channelIndex + 1 );
+      }
+
+      CFIndex length = CFStringGetLength(name);
+      while( ensureChannelNameSize( length * sizeof(UniChar) + 1 ) ) {
+         if( CFStringGetCString( name, channelName, channelNameSize, kCFStringEncodingUTF8 ) ) {
+            if( isDeviceName )
+               CFRelease( name );
+            return channelName;
+         }
+         if( length == 0 )
+            ++length;
+         length *= 2;
+      }
+      if( isDeviceName )
+         CFRelease( name );
+      return NULL;
+   }
+
+   //continue with C string:
+   if( !ensureChannelNameSize( size ) )
+      return NULL;
+
+   error = AudioDeviceGetProperty( hostApiDevice,
+                                   channelIndex + 1,
+                                   input,
+                                   kAudioDevicePropertyChannelName,
+                                   &size,
+                                   channelName );
+
+   if( error ) {
+      ERR( error );
+      return NULL;
+   }
+   return channelName;
+}
+
+
+
+
+
+AudioDeviceID PaMacCore_GetStreamInputDevice( PaStream* s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    VVDBUG(("PaMacCore_GetStreamInputHandle()\n"));
+
+    return ( stream->inputDevice );
+}
+
+AudioDeviceID PaMacCore_GetStreamOutputDevice( PaStream* s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    VVDBUG(("PaMacCore_GetStreamOutputHandle()\n"));
+
+    return ( stream->outputDevice );
+}
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#define RING_BUFFER_ADVANCE_DENOMINATOR (4)
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static void setStreamStartTime( PaStream *stream );
+static OSStatus AudioIOProc( void *inRefCon,
+                               AudioUnitRenderActionFlags *ioActionFlags,
+                               const AudioTimeStamp *inTimeStamp,
+                               UInt32 inBusNumber,
+                               UInt32 inNumberFrames,
+                               AudioBufferList *ioData );
+static double GetStreamCpuLoad( PaStream* stream );
+
+static PaError GetChannelInfo( PaMacAUHAL *auhalHostApi,
+                               PaDeviceInfo *deviceInfo,
+                               AudioDeviceID macCoreDeviceId,
+                               int isInput);
+
+static PaError OpenAndSetupOneAudioUnit(
+                                   const PaMacCoreStream *stream,
+                                   const PaStreamParameters *inStreamParams,
+                                   const PaStreamParameters *outStreamParams,
+                                   const UInt32 requestedFramesPerBuffer,
+                                   UInt32 *actualInputFramesPerBuffer,
+                                   UInt32 *actualOutputFramesPerBuffer,
+                                   const PaMacAUHAL *auhalHostApi,
+                                   AudioUnit *audioUnit,
+                                   AudioConverterRef *srConverter,
+                                   AudioDeviceID *audioDevice,
+                                   const double sampleRate,
+                                   void *refCon );
+
+/* for setting errors. */
+#define PA_AUHAL_SET_LAST_HOST_ERROR( errorCode, errorText ) \
+    PaUtil_SetLastHostErrorInfo( paInDevelopment, errorCode, errorText )
+
+/*
+ * Callback for setting over/underrun flags.
+ *
+ */
+static OSStatus xrunCallback(
+    AudioDeviceID inDevice, 
+    UInt32 inChannel, 
+    Boolean isInput, 
+    AudioDevicePropertyID inPropertyID, 
+    void* inClientData)
+{
+   PaMacCoreStream *stream = (PaMacCoreStream *) inClientData;
+   if( stream->state != ACTIVE )
+      return 0; //if the stream isn't active, we don't care if the device is dropping
+   if( isInput )
+      OSAtomicOr32( paInputUnderflow, (uint32_t *)&(stream->xrunFlags) );
+   else
+      OSAtomicOr32( paOutputOverflow, (uint32_t *)&(stream->xrunFlags) );
+
+   return 0;
+}
+
+/*
+ * Callback called when starting or stopping a stream.
+ */
+static void startStopCallback(
+   void *               inRefCon,
+   AudioUnit            ci,
+   AudioUnitPropertyID  inID,
+   AudioUnitScope       inScope,
+   AudioUnitElement     inElement )
+{
+   PaMacCoreStream *stream = (PaMacCoreStream *) inRefCon;
+   UInt32 isRunning;
+   UInt32 size = sizeof( isRunning );
+   assert( !AudioUnitGetProperty( ci, kAudioOutputUnitProperty_IsRunning, inScope, inElement, &isRunning, &size ) );
+   if( isRunning )
+      return; //We are only interested in when we are stopping
+   // -- if we are using 2 I/O units, we only need one notification!
+   if( stream->inputUnit && stream->outputUnit && stream->inputUnit != stream->outputUnit && ci == stream->inputUnit )
+      return;
+   PaStreamFinishedCallback *sfc = stream->streamRepresentation.streamFinishedCallback;
+   if( stream->state == STOPPING )
+      stream->state = STOPPED ;
+   if( sfc )
+      sfc( stream->streamRepresentation.userData );
+}
+
+
+/*currently, this is only used in initialization, but it might be modified
+  to be used when the list of devices changes.*/
+static PaError gatherDeviceInfo(PaMacAUHAL *auhalHostApi)
+{
+    UInt32 size;
+    UInt32 propsize;
+    VVDBUG(("gatherDeviceInfo()\n"));
+    /* -- free any previous allocations -- */
+    if( auhalHostApi->devIds )
+        PaUtil_GroupFreeMemory(auhalHostApi->allocations, auhalHostApi->devIds);
+    auhalHostApi->devIds = NULL;
+
+    /* -- figure out how many devices there are -- */
+    AudioHardwareGetPropertyInfo( kAudioHardwarePropertyDevices,
+                                  &propsize,
+                                  NULL );
+    auhalHostApi->devCount = propsize / sizeof( AudioDeviceID );
+
+    VDBUG( ( "Found %ld device(s).\n", auhalHostApi->devCount ) );
+
+    /* -- copy the device IDs -- */
+    auhalHostApi->devIds = (AudioDeviceID *)PaUtil_GroupAllocateMemory(
+                             auhalHostApi->allocations,
+                             propsize );
+    if( !auhalHostApi->devIds )
+        return paInsufficientMemory;
+    AudioHardwareGetProperty( kAudioHardwarePropertyDevices,
+                                  &propsize,
+                                  auhalHostApi->devIds );
+#ifdef MAC_CORE_VERBOSE_DEBUG
+    {
+       int i;
+       for( i=0; i<auhalHostApi->devCount; ++i )
+          printf( "Device %d\t: %ld\n", i, auhalHostApi->devIds[i] );
+    }
+#endif
+
+    size = sizeof(AudioDeviceID);
+    auhalHostApi->defaultIn  = kAudioDeviceUnknown;
+    auhalHostApi->defaultOut = kAudioDeviceUnknown;
+
+    /* determine the default device. */
+    /* I am not sure how these calls to AudioHardwareGetProperty()
+       could fail, but in case they do, we use the first available
+       device as the default. */
+    if( 0 != AudioHardwareGetProperty(kAudioHardwarePropertyDefaultInputDevice,
+                     &size,
+                     &auhalHostApi->defaultIn) ) {
+       int i;
+       auhalHostApi->defaultIn  = kAudioDeviceUnknown;
+       VDBUG(("Failed to get default input device from OS."));
+       VDBUG((" I will substitute the first available input Device."));
+       for( i=0; i<auhalHostApi->devCount; ++i ) {
+          PaDeviceInfo devInfo;
+          if( 0 != GetChannelInfo( auhalHostApi, &devInfo,
+                                   auhalHostApi->devIds[i], TRUE ) )
+             if( devInfo.maxInputChannels ) {
+                auhalHostApi->defaultIn = auhalHostApi->devIds[i];
+                break;
+             }
+       }
+    }   
+    if( 0 != AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice,
+                     &size,
+                     &auhalHostApi->defaultOut) ) {
+       int i;
+       auhalHostApi->defaultIn  = kAudioDeviceUnknown;
+       VDBUG(("Failed to get default output device from OS."));
+       VDBUG((" I will substitute the first available output Device."));
+       for( i=0; i<auhalHostApi->devCount; ++i ) {
+          PaDeviceInfo devInfo;
+          if( 0 != GetChannelInfo( auhalHostApi, &devInfo,
+                                   auhalHostApi->devIds[i], FALSE ) )
+             if( devInfo.maxOutputChannels ) {
+                auhalHostApi->defaultOut = auhalHostApi->devIds[i];
+                break;
+             }
+       }
+    }   
+
+    VDBUG( ( "Default in : %ld\n", auhalHostApi->defaultIn  ) );
+    VDBUG( ( "Default out: %ld\n", auhalHostApi->defaultOut ) );
+
+    return paNoError;
+}
+
+static PaError GetChannelInfo( PaMacAUHAL *auhalHostApi,
+                               PaDeviceInfo *deviceInfo,
+                               AudioDeviceID macCoreDeviceId,
+                               int isInput)
+{
+    UInt32 propSize;
+    PaError err = paNoError;
+    UInt32 i;
+    int numChannels = 0;
+    AudioBufferList *buflist = NULL;
+    UInt32 frameLatency;
+
+    VVDBUG(("GetChannelInfo()\n"));
+
+    /* Get the number of channels from the stream configuration.
+       Fail if we can't get this. */
+
+    err = ERR(AudioDeviceGetPropertyInfo(macCoreDeviceId, 0, isInput, kAudioDevicePropertyStreamConfiguration, &propSize, NULL));
+    if (err)
+        return err;
+
+    buflist = PaUtil_AllocateMemory(propSize);
+    if( !buflist )
+       return paInsufficientMemory;
+    err = ERR(AudioDeviceGetProperty(macCoreDeviceId, 0, isInput, kAudioDevicePropertyStreamConfiguration, &propSize, buflist));
+    if (err)
+        goto error;
+
+    for (i = 0; i < buflist->mNumberBuffers; ++i)
+        numChannels += buflist->mBuffers[i].mNumberChannels;
+
+    if (isInput)
+        deviceInfo->maxInputChannels = numChannels;
+    else
+        deviceInfo->maxOutputChannels = numChannels;
+      
+    if (numChannels > 0) /* do not try to retrieve the latency if there is no channels. */
+    {
+       /* Get the latency.  Don't fail if we can't get this. */
+       /* default to something reasonable */
+       deviceInfo->defaultLowInputLatency = .01;
+       deviceInfo->defaultHighInputLatency = .10;
+       deviceInfo->defaultLowOutputLatency = .01;
+       deviceInfo->defaultHighOutputLatency = .10;
+       propSize = sizeof(UInt32);
+       err = WARNING(AudioDeviceGetProperty(macCoreDeviceId, 0, isInput, kAudioDevicePropertyLatency, &propSize, &frameLatency));
+       if (!err)
+       {
+          /** FEEDBACK:
+           * This code was arrived at by trial and error, and some extentive, but not exhaustive
+           * testing. Sebastien Beaulieu <seb at plogue.com> has suggested using
+           * kAudioDevicePropertyLatency + kAudioDevicePropertySafetyOffset + buffer size instead.
+           * At the time this code was written, many users were reporting dropouts with audio
+           * programs that probably used this formula. This was probably
+           * around 10.4.4, and the problem is probably fixed now. So perhaps
+           * his formula should be reviewed and used.
+           * */
+          double secondLatency = frameLatency / deviceInfo->defaultSampleRate;
+          if (isInput)
+          {
+             deviceInfo->defaultLowInputLatency = 3 * secondLatency;
+             deviceInfo->defaultHighInputLatency = 3 * 10 * secondLatency;
+          }
+          else
+          {
+             deviceInfo->defaultLowOutputLatency = 3 * secondLatency;
+             deviceInfo->defaultHighOutputLatency = 3 * 10 * secondLatency;
+          }
+       }
+    }
+    PaUtil_FreeMemory( buflist );
+    return paNoError;
+ error:
+    PaUtil_FreeMemory( buflist );
+    return err;
+}
+
+static PaError InitializeDeviceInfo( PaMacAUHAL *auhalHostApi,
+                                     PaDeviceInfo *deviceInfo,
+                                     AudioDeviceID macCoreDeviceId,
+                                     PaHostApiIndex hostApiIndex )
+{
+    Float64 sampleRate;
+    char *name;
+    PaError err = paNoError;
+    UInt32 propSize;
+
+    VVDBUG(("InitializeDeviceInfo(): macCoreDeviceId=%ld\n", macCoreDeviceId));
+
+    memset(deviceInfo, 0, sizeof(deviceInfo));
+
+    deviceInfo->structVersion = 2;
+    deviceInfo->hostApi = hostApiIndex;
+
+    /* Get the device name.  Fail if we can't get it. */
+    err = ERR(AudioDeviceGetPropertyInfo(macCoreDeviceId, 0, 0, kAudioDevicePropertyDeviceName, &propSize, NULL));
+    if (err)
+        return err;
+
+    name = PaUtil_GroupAllocateMemory(auhalHostApi->allocations,propSize);
+    if ( !name )
+        return paInsufficientMemory;
+    err = ERR(AudioDeviceGetProperty(macCoreDeviceId, 0, 0, kAudioDevicePropertyDeviceName, &propSize, name));
+    if (err)
+        return err;
+    deviceInfo->name = name;
+
+    /* Try to get the default sample rate.  Don't fail if we can't get this. */
+    propSize = sizeof(Float64);
+    err = ERR(AudioDeviceGetProperty(macCoreDeviceId, 0, 0, kAudioDevicePropertyNominalSampleRate, &propSize, &sampleRate));
+    if (err)
+        deviceInfo->defaultSampleRate = 0.0;
+    else
+        deviceInfo->defaultSampleRate = sampleRate;
+
+    /* Get the maximum number of input and output channels.  Fail if we can't get this. */
+
+    err = GetChannelInfo(auhalHostApi, deviceInfo, macCoreDeviceId, 1);
+    if (err)
+        return err;
+
+    err = GetChannelInfo(auhalHostApi, deviceInfo, macCoreDeviceId, 0);
+    if (err)
+        return err;
+
+    return paNoError;
+}
+
+PaError PaMacCore_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    int i;
+    PaMacAUHAL *auhalHostApi;
+    PaDeviceInfo *deviceInfoArray;
+
+    VVDBUG(("PaMacCore_Initialize(): hostApiIndex=%d\n", hostApiIndex));
+
+    auhalHostApi = (PaMacAUHAL*)PaUtil_AllocateMemory( sizeof(PaMacAUHAL) );
+    if( !auhalHostApi )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    auhalHostApi->allocations = PaUtil_CreateAllocationGroup();
+    if( !auhalHostApi->allocations )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    auhalHostApi->devIds = NULL;
+    auhalHostApi->devCount = 0;
+
+    /* get the info we need about the devices */
+    result = gatherDeviceInfo( auhalHostApi );
+    if( result != paNoError )
+       goto error;
+
+    *hostApi = &auhalHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paCoreAudio;
+    (*hostApi)->info.name = "Core Audio";
+
+    (*hostApi)->info.defaultInputDevice = paNoDevice;
+    (*hostApi)->info.defaultOutputDevice = paNoDevice;
+
+    (*hostApi)->info.deviceCount = 0;  
+
+    if( auhalHostApi->devCount > 0 )
+    {
+        (*hostApi)->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+                auhalHostApi->allocations, sizeof(PaDeviceInfo*) * auhalHostApi->devCount);
+        if( !(*hostApi)->deviceInfos )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        /* allocate all device info structs in a contiguous block */
+        deviceInfoArray = (PaDeviceInfo*)PaUtil_GroupAllocateMemory(
+                auhalHostApi->allocations, sizeof(PaDeviceInfo) * auhalHostApi->devCount );
+        if( !deviceInfoArray )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        for( i=0; i < auhalHostApi->devCount; ++i )
+        {
+            int err;
+            err = InitializeDeviceInfo( auhalHostApi, &deviceInfoArray[i],
+                                      auhalHostApi->devIds[i],
+                                      hostApiIndex );
+            if (err == paNoError)
+            { /* copy some info and set the defaults */
+                (*hostApi)->deviceInfos[(*hostApi)->info.deviceCount] = &deviceInfoArray[i];
+                if (auhalHostApi->devIds[i] == auhalHostApi->defaultIn)
+                    (*hostApi)->info.defaultInputDevice = (*hostApi)->info.deviceCount;
+                if (auhalHostApi->devIds[i] == auhalHostApi->defaultOut)
+                    (*hostApi)->info.defaultOutputDevice = (*hostApi)->info.deviceCount;
+                (*hostApi)->info.deviceCount++;
+            }
+            else
+            { /* there was an error. we need to shift the devices down, so we ignore this one */
+                int j;
+                auhalHostApi->devCount--;
+                for( j=i; j<auhalHostApi->devCount; ++j )
+                   auhalHostApi->devIds[j] = auhalHostApi->devIds[j+1];
+                i--;
+            }
+        }
+    }
+
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PaUtil_InitializeStreamInterface( &auhalHostApi->callbackStreamInterface,
+                                      CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped,
+                                      IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable,
+                                      PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &auhalHostApi->blockingStreamInterface,
+                                      CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped,
+                                      IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream,
+                                      GetStreamReadAvailable,
+                                      GetStreamWriteAvailable );
+
+    return result;
+
+error:
+    if( auhalHostApi )
+    {
+        if( auhalHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( auhalHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( auhalHostApi->allocations );
+        }
+                
+        PaUtil_FreeMemory( auhalHostApi );
+    }
+    return result;
+}
+
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaMacAUHAL *auhalHostApi = (PaMacAUHAL*)hostApi;
+
+    VVDBUG(("Terminate()\n"));
+
+    /*
+        IMPLEMENT ME:
+            - clean up any resources not handled by the allocation group
+        TODO: Double check that everything is handled by alloc group
+    */
+
+    if( auhalHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( auhalHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( auhalHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( auhalHostApi );
+}
+
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+
+    VVDBUG(("IsFormatSupported(): in chan=%d, in fmt=%ld, out chan=%d, out fmt=%ld sampleRate=%g\n",
+                inputParameters  ? inputParameters->channelCount  : -1,
+                inputParameters  ? inputParameters->sampleFormat  : -1,
+                outputParameters ? outputParameters->channelCount : -1,
+                outputParameters ? outputParameters->sampleFormat : -1,
+                (float) sampleRate ));
+ 
+    /** These first checks are standard PA checks. We do some fancier checks
+        later. */
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( inputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+            
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+    }
+    else
+    {
+        inputChannelCount = 0;
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( outputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+            
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support outputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+    }
+    else
+    {
+        outputChannelCount = 0;
+    }
+ 
+    /* FEEDBACK */
+    /*        I think the only way to check a given format SR combo is     */
+    /*        to try opening it. This could be disruptive, is that Okay?   */
+    /*        The alternative is to just read off available sample rates,  */
+    /*        but this will not work %100 of the time (eg, a device that   */
+    /*        supports N output at one rate but only N/2 at a higher rate.)*/
+
+    /* The following code opens the device with the requested parameters to
+       see if it works. */
+    {
+       PaError err;
+       PaStream *s;
+       err = OpenStream( hostApi, &s, inputParameters, outputParameters,
+                           sampleRate, 1024, 0, (PaStreamCallback *)1, NULL );
+       if( err != paNoError && err != paInvalidSampleRate )
+          DBUG( ( "OpenStream @ %g returned: %d: %s\n",
+                  (float) sampleRate, err, Pa_GetErrorText( err ) ) );
+       if( err ) 
+          return err;
+       err = CloseStream( s );
+       if( err ) {
+          /* FEEDBACK: is this more serious? should we assert? */
+          DBUG( ( "WARNING: could not close Stream. %d: %s\n",
+                  err, Pa_GetErrorText( err ) ) );
+       }
+    }
+
+    return paFormatIsSupported;
+}
+
+static PaError OpenAndSetupOneAudioUnit(
+                                   const PaMacCoreStream *stream,
+                                   const PaStreamParameters *inStreamParams,
+                                   const PaStreamParameters *outStreamParams,
+                                   const UInt32 requestedFramesPerBuffer,
+                                   UInt32 *actualInputFramesPerBuffer,
+                                   UInt32 *actualOutputFramesPerBuffer,
+                                   const PaMacAUHAL *auhalHostApi,
+                                   AudioUnit *audioUnit,
+                                   AudioConverterRef *srConverter,
+                                   AudioDeviceID *audioDevice,
+                                   const double sampleRate,
+                                   void *refCon )
+{
+    ComponentDescription desc;
+    Component comp;
+    /*An Apple TN suggests using CAStreamBasicDescription, but that is C++*/
+    AudioStreamBasicDescription desiredFormat;
+    OSStatus result = noErr;
+    PaError paResult = paNoError;
+    int line = 0;
+    UInt32 callbackKey;
+    AURenderCallbackStruct rcbs;
+    unsigned long macInputStreamFlags  = paMacCorePlayNice;
+    unsigned long macOutputStreamFlags = paMacCorePlayNice;
+    SInt32 const *inChannelMap = NULL;
+    SInt32 const *outChannelMap = NULL;
+    unsigned long inChannelMapSize = 0;
+    unsigned long outChannelMapSize = 0;
+
+    VVDBUG(("OpenAndSetupOneAudioUnit(): in chan=%d, in fmt=%ld, out chan=%d, out fmt=%ld, requestedFramesPerBuffer=%ld\n",
+                inStreamParams  ? inStreamParams->channelCount  : -1,
+                inStreamParams  ? inStreamParams->sampleFormat  : -1,
+                outStreamParams ? outStreamParams->channelCount : -1,
+                outStreamParams ? outStreamParams->sampleFormat : -1,
+                requestedFramesPerBuffer ));
+
+    /* -- handle the degenerate case  -- */
+    if( !inStreamParams && !outStreamParams ) {
+       *audioUnit = NULL;
+       *audioDevice = kAudioDeviceUnknown;
+       return paNoError;
+    }
+
+    /* -- get the user's api specific info, if they set any -- */
+    if( inStreamParams && inStreamParams->hostApiSpecificStreamInfo )
+    {
+       macInputStreamFlags=
+            ((PaMacCoreStreamInfo*)inStreamParams->hostApiSpecificStreamInfo)
+                  ->flags;
+       inChannelMap = ((PaMacCoreStreamInfo*)inStreamParams->hostApiSpecificStreamInfo)
+                  ->channelMap;
+       inChannelMapSize = ((PaMacCoreStreamInfo*)inStreamParams->hostApiSpecificStreamInfo)
+                  ->channelMapSize;
+    }
+    if( outStreamParams && outStreamParams->hostApiSpecificStreamInfo )
+    {
+       macOutputStreamFlags=
+            ((PaMacCoreStreamInfo*)outStreamParams->hostApiSpecificStreamInfo)
+                  ->flags;
+       outChannelMap = ((PaMacCoreStreamInfo*)outStreamParams->hostApiSpecificStreamInfo)
+                  ->channelMap;
+       outChannelMapSize = ((PaMacCoreStreamInfo*)outStreamParams->hostApiSpecificStreamInfo)
+                  ->channelMapSize; 
+    }
+    /* Override user's flags here, if desired for testing. */
+
+    /*
+     * The HAL AU is a Mac OS style "component".
+     * the first few steps deal with that.
+     * Later steps work on a combination of Mac OS
+     * components and the slightly lower level
+     * HAL.
+     */
+
+    /* -- describe the output type AudioUnit -- */
+    /*  Note: for the default AudioUnit, we could use the
+     *  componentSubType value kAudioUnitSubType_DefaultOutput;
+     *  but I don't think that's relevant here.
+     */
+    desc.componentType         = kAudioUnitType_Output;
+    desc.componentSubType      = kAudioUnitSubType_HALOutput;
+    desc.componentManufacturer = kAudioUnitManufacturer_Apple;
+    desc.componentFlags        = 0;
+    desc.componentFlagsMask    = 0;
+    /* -- find the component -- */
+    comp = FindNextComponent( NULL, &desc );
+    if( !comp )
+    {
+       DBUG( ( "AUHAL component not found." ) );
+       *audioUnit = NULL;
+       *audioDevice = kAudioDeviceUnknown;
+       return paUnanticipatedHostError;
+    }
+    /* -- open it -- */
+    result = OpenAComponent( comp, audioUnit );
+    if( result )
+    {
+       DBUG( ( "Failed to open AUHAL component." ) );
+       *audioUnit = NULL;
+       *audioDevice = kAudioDeviceUnknown;
+       return ERR( result );
+    }
+    /* -- prepare a little error handling logic / hackery -- */
+#define ERR_WRAP(mac_err) do { result = mac_err ; line = __LINE__ ; if ( result != noErr ) goto error ; } while(0)
+
+    /* -- if there is input, we have to explicitly enable input -- */
+    if( inStreamParams )
+    {
+       UInt32 enableIO = 1;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                 kAudioOutputUnitProperty_EnableIO,
+                 kAudioUnitScope_Input,
+                 INPUT_ELEMENT,
+                 &enableIO,
+                 sizeof(enableIO) ) );
+    }
+    /* -- if there is no output, we must explicitly disable output -- */
+    if( !outStreamParams )
+    {
+       UInt32 enableIO = 0;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                 kAudioOutputUnitProperty_EnableIO,
+                 kAudioUnitScope_Output,
+                 OUTPUT_ELEMENT,
+                 &enableIO,
+                 sizeof(enableIO) ) );
+    }
+
+    /* -- set the devices -- */
+    /* make sure input and output are the same device if we are doing input and
+       output. */
+    if( inStreamParams && outStreamParams )
+    {
+       assert( outStreamParams->device == inStreamParams->device );
+    }
+    if( inStreamParams )
+    {
+       *audioDevice = auhalHostApi->devIds[inStreamParams->device] ;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                    kAudioOutputUnitProperty_CurrentDevice,
+                    kAudioUnitScope_Global,
+                    INPUT_ELEMENT,
+                    audioDevice,
+                    sizeof(AudioDeviceID) ) );
+    }
+    if( outStreamParams && outStreamParams != inStreamParams )
+    {
+       *audioDevice = auhalHostApi->devIds[outStreamParams->device] ;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                    kAudioOutputUnitProperty_CurrentDevice,
+                    kAudioUnitScope_Global,
+                    OUTPUT_ELEMENT,
+                    audioDevice,
+                    sizeof(AudioDeviceID) ) );
+    }
+    /* -- add listener for dropouts -- */
+    ERR_WRAP( AudioDeviceAddPropertyListener( *audioDevice,
+                                              0,
+                                              outStreamParams ? false : true,
+                                              kAudioDeviceProcessorOverload,
+                                              xrunCallback,
+                                              (void *)stream) );
+
+    /* -- listen for stream start and stop -- */
+    ERR_WRAP( AudioUnitAddPropertyListener( *audioUnit,
+                                            kAudioOutputUnitProperty_IsRunning,
+                                            startStopCallback,
+                                            (void *)stream ) );
+
+    /* -- set format -- */
+    bzero( &desiredFormat, sizeof(desiredFormat) );
+    desiredFormat.mFormatID         = kAudioFormatLinearPCM ;
+    desiredFormat.mFormatFlags      = kAudioFormatFlagsNativeFloatPacked;
+    desiredFormat.mFramesPerPacket  = 1;
+    desiredFormat.mBitsPerChannel   = sizeof( float ) * 8;
+
+    result = 0;
+    /*  set device format first, but only touch the device if the user asked */
+    if( inStreamParams ) {
+       /*The callback never calls back if we don't set the FPB */
+       /*This seems wierd, because I would think setting anything on the device
+         would be disruptive.*/
+       paResult = setBestFramesPerBuffer( *audioDevice, FALSE,
+                                          requestedFramesPerBuffer,
+                                          actualInputFramesPerBuffer );
+       if( paResult ) goto error;
+       if( macInputStreamFlags & paMacCoreChangeDeviceParameters ) {
+          bool requireExact;
+          requireExact=macInputStreamFlags & paMacCoreFailIfConversionRequired;
+          paResult = setBestSampleRateForDevice( *audioDevice, FALSE,
+                                                 requireExact, sampleRate );
+          if( paResult ) goto error;
+       }
+       if( actualInputFramesPerBuffer && actualOutputFramesPerBuffer )
+          *actualOutputFramesPerBuffer = *actualInputFramesPerBuffer ;
+    }
+    if( outStreamParams && !inStreamParams ) {
+       /*The callback never calls back if we don't set the FPB */
+       /*This seems wierd, because I would think setting anything on the device
+         would be disruptive.*/
+       paResult = setBestFramesPerBuffer( *audioDevice, TRUE,
+                                          requestedFramesPerBuffer,
+                                          actualOutputFramesPerBuffer );
+       if( paResult ) goto error;
+       if( macOutputStreamFlags & paMacCoreChangeDeviceParameters ) {
+          bool requireExact;
+          requireExact=macOutputStreamFlags & paMacCoreFailIfConversionRequired;
+          paResult = setBestSampleRateForDevice( *audioDevice, TRUE,
+                                                 requireExact, sampleRate );
+          if( paResult ) goto error;
+       }
+    }
+
+    /* -- set the quality of the output converter -- */
+    if( outStreamParams ) {
+       UInt32 value = kAudioConverterQuality_Max;
+       switch( macOutputStreamFlags & 0x0700 ) {
+       case 0x0100: /*paMacCore_ConversionQualityMin:*/
+          value=kRenderQuality_Min;
+          break;
+       case 0x0200: /*paMacCore_ConversionQualityLow:*/
+          value=kRenderQuality_Low;
+          break;
+       case 0x0300: /*paMacCore_ConversionQualityMedium:*/
+          value=kRenderQuality_Medium;
+          break;
+       case 0x0400: /*paMacCore_ConversionQualityHigh:*/
+          value=kRenderQuality_High;
+          break;
+       }
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                    kAudioUnitProperty_RenderQuality,
+                    kAudioUnitScope_Global,
+                    OUTPUT_ELEMENT,
+                    &value,
+                    sizeof(value) ) );
+    }
+    /* now set the format on the Audio Units. */
+    if( outStreamParams )
+    {
+       desiredFormat.mSampleRate    =sampleRate;
+       desiredFormat.mBytesPerPacket=sizeof(float)*outStreamParams->channelCount;
+       desiredFormat.mBytesPerFrame =sizeof(float)*outStreamParams->channelCount;
+       desiredFormat.mChannelsPerFrame = outStreamParams->channelCount;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                            kAudioUnitProperty_StreamFormat,
+                            kAudioUnitScope_Input,
+                            OUTPUT_ELEMENT,
+                            &desiredFormat,
+                            sizeof(AudioStreamBasicDescription) ) );
+    }
+    if( inStreamParams )
+    {
+       AudioStreamBasicDescription sourceFormat;
+       UInt32 size = sizeof( AudioStreamBasicDescription );
+
+       /* keep the sample rate of the device, or we confuse AUHAL */
+       ERR_WRAP( AudioUnitGetProperty( *audioUnit,
+                            kAudioUnitProperty_StreamFormat,
+                            kAudioUnitScope_Input,
+                            INPUT_ELEMENT,
+                            &sourceFormat,
+                            &size ) );
+       desiredFormat.mSampleRate = sourceFormat.mSampleRate;
+       desiredFormat.mBytesPerPacket=sizeof(float)*inStreamParams->channelCount;
+       desiredFormat.mBytesPerFrame =sizeof(float)*inStreamParams->channelCount;
+       desiredFormat.mChannelsPerFrame = inStreamParams->channelCount;
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                            kAudioUnitProperty_StreamFormat,
+                            kAudioUnitScope_Output,
+                            INPUT_ELEMENT,
+                            &desiredFormat,
+                            sizeof(AudioStreamBasicDescription) ) );
+    }
+    /* set the maximumFramesPerSlice */
+    /* not doing this causes real problems
+       (eg. the callback might not be called). The idea of setting both this
+       and the frames per buffer on the device is that we'll be most likely
+       to actually get the frame size we requested in the callback with the
+       minimum latency. */
+    if( outStreamParams ) {
+       UInt32 size = sizeof( *actualOutputFramesPerBuffer );
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                            kAudioUnitProperty_MaximumFramesPerSlice,
+                            kAudioUnitScope_Input,
+                            OUTPUT_ELEMENT,
+                            actualOutputFramesPerBuffer,
+                            sizeof(*actualOutputFramesPerBuffer) ) );
+       ERR_WRAP( AudioUnitGetProperty( *audioUnit,
+                            kAudioUnitProperty_MaximumFramesPerSlice,
+                            kAudioUnitScope_Global,
+                            OUTPUT_ELEMENT,
+                            actualOutputFramesPerBuffer,
+                            &size ) );
+    }
+    if( inStreamParams ) {
+       /*UInt32 size = sizeof( *actualInputFramesPerBuffer );*/
+       ERR_WRAP( AudioUnitSetProperty( *audioUnit,
+                            kAudioUnitProperty_MaximumFramesPerSlice,
+                            kAudioUnitScope_Output,
+                            INPUT_ELEMENT,
+                            actualInputFramesPerBuffer,
+                            sizeof(*actualInputFramesPerBuffer) ) );
+/* Don't know why this causes problems
+       ERR_WRAP( AudioUnitGetProperty( *audioUnit,
+                            kAudioUnitProperty_MaximumFramesPerSlice,
+                            kAudioUnitScope_Global, //Output,
+                            INPUT_ELEMENT,
+                            actualInputFramesPerBuffer,
+                            &size ) );
+*/
+    }
+
+    /* -- if we have input, we may need to setup an SR converter -- */
+    /* even if we got the sample rate we asked for, we need to do
+       the conversion in case another program changes the underlying SR. */
+    /* FIXME: I think we need to monitor stream and change the converter if the incoming format changes. */
+    if( inStreamParams ) {
+       AudioStreamBasicDescription desiredFormat;
+       AudioStreamBasicDescription sourceFormat;
+       UInt32 sourceSize = sizeof( sourceFormat );
+       bzero( &desiredFormat, sizeof(desiredFormat) );
+       desiredFormat.mSampleRate       = sampleRate;
+       desiredFormat.mFormatID         = kAudioFormatLinearPCM ;
+       desiredFormat.mFormatFlags      = kAudioFormatFlagsNativeFloatPacked;
+       desiredFormat.mFramesPerPacket  = 1;
+       desiredFormat.mBitsPerChannel   = sizeof( float ) * 8;
+       desiredFormat.mBytesPerPacket=sizeof(float)*inStreamParams->channelCount;
+       desiredFormat.mBytesPerFrame =sizeof(float)*inStreamParams->channelCount;
+       desiredFormat.mChannelsPerFrame = inStreamParams->channelCount;
+
+       /* get the source format */
+       ERR_WRAP( AudioUnitGetProperty(
+                         *audioUnit,
+                         kAudioUnitProperty_StreamFormat,
+                         kAudioUnitScope_Output,
+                         INPUT_ELEMENT,
+                         &sourceFormat,
+                         &sourceSize ) );
+
+       if( desiredFormat.mSampleRate != sourceFormat.mSampleRate )
+       {
+          UInt32 value = kAudioConverterQuality_Max;
+          switch( macInputStreamFlags & 0x0700 ) {
+          case 0x0100: /*paMacCore_ConversionQualityMin:*/
+             value=kAudioConverterQuality_Min;
+             break;
+          case 0x0200: /*paMacCore_ConversionQualityLow:*/
+             value=kAudioConverterQuality_Low;
+             break;
+          case 0x0300: /*paMacCore_ConversionQualityMedium:*/
+             value=kAudioConverterQuality_Medium;
+             break;
+          case 0x0400: /*paMacCore_ConversionQualityHigh:*/
+             value=kAudioConverterQuality_High;
+             break;
+          }
+          VDBUG(( "Creating sample rate converter for input"
+                  " to convert from %g to %g\n",
+                  (float)sourceFormat.mSampleRate,
+                  (float)desiredFormat.mSampleRate ) );
+          /* create our converter */
+          ERR_WRAP( AudioConverterNew( 
+                             &sourceFormat,
+                             &desiredFormat,
+                             srConverter ) );
+          /* Set quality */
+          ERR_WRAP( AudioConverterSetProperty(
+                             *srConverter,
+                             kAudioConverterSampleRateConverterQuality,
+                             sizeof( value ),
+                             &value ) );
+       }
+    }
+    /* -- set IOProc (callback) -- */
+    callbackKey = outStreamParams ? kAudioUnitProperty_SetRenderCallback
+                                  : kAudioOutputUnitProperty_SetInputCallback ;
+    rcbs.inputProc = AudioIOProc;
+    rcbs.inputProcRefCon = refCon;
+    ERR_WRAP( AudioUnitSetProperty(
+                               *audioUnit,
+                               callbackKey,
+                               kAudioUnitScope_Output,
+                               outStreamParams ? OUTPUT_ELEMENT : INPUT_ELEMENT,
+                               &rcbs,
+                               sizeof(rcbs)) );
+
+    if( inStreamParams && outStreamParams && *srConverter )
+           ERR_WRAP( AudioUnitSetProperty(
+                               *audioUnit,
+                               kAudioOutputUnitProperty_SetInputCallback,
+                               kAudioUnitScope_Output,
+                               INPUT_ELEMENT,
+                               &rcbs,
+                               sizeof(rcbs)) );
+
+    /* channel mapping. */
+    if(inChannelMap)
+    {
+        UInt32 mapSize = inChannelMapSize *sizeof(SInt32);
+
+        //for each channel of desired input, map the channel from
+        //the device's output channel.
+        ERR_WRAP( AudioUnitSetProperty(*audioUnit,
+                                kAudioOutputUnitProperty_ChannelMap,
+                                kAudioUnitScope_Output,
+                                INPUT_ELEMENT,
+                                inChannelMap,
+                                mapSize));
+    }
+    if(outChannelMap)
+    {
+        UInt32 mapSize = outChannelMapSize *sizeof(SInt32);
+
+        //for each channel of desired output, map the channel from
+        //the device's output channel.
+        ERR_WRAP(AudioUnitSetProperty(*audioUnit,
+                                kAudioOutputUnitProperty_ChannelMap,
+                                kAudioUnitScope_Output,
+                                OUTPUT_ELEMENT,
+                                outChannelMap,
+                                mapSize));
+    }
+    /* initialize the audio unit */
+    ERR_WRAP( AudioUnitInitialize(*audioUnit) );
+
+    if( inStreamParams && outStreamParams )
+       VDBUG( ("Opened device %ld for input and output.\n", *audioDevice ) );
+    else if( inStreamParams )
+       VDBUG( ("Opened device %ld for input.\n", *audioDevice ) );
+    else if( outStreamParams )
+       VDBUG( ("Opened device %ld for output.\n", *audioDevice ) );
+    return paNoError;
+#undef ERR_WRAP
+
+    error:
+       CloseComponent( *audioUnit );
+       *audioUnit = NULL;
+       if( result )
+          return PaMacCore_SetError( result, line, 1 );
+       return paResult;
+}
+
+/* see pa_hostapi.h for a list of validity guarantees made about OpenStream parameters */
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaMacAUHAL *auhalHostApi = (PaMacAUHAL*)hostApi;
+    PaMacCoreStream *stream = 0;
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaSampleFormat hostInputSampleFormat, hostOutputSampleFormat;
+    VVDBUG(("OpenStream(): in chan=%d, in fmt=%ld, out chan=%d, out fmt=%ld SR=%g, FPB=%ld\n",
+                inputParameters  ? inputParameters->channelCount  : -1,
+                inputParameters  ? inputParameters->sampleFormat  : -1,
+                outputParameters ? outputParameters->channelCount : -1,
+                outputParameters ? outputParameters->sampleFormat : -1,
+                (float) sampleRate,
+                framesPerBuffer ));
+    VDBUG( ("Opening Stream.\n") );
+
+    /*These first few bits of code are from paSkeleton with few modifications.*/
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* Host supports interleaved float32 */
+        hostInputSampleFormat = paFloat32;
+    }
+    else
+    {
+        inputChannelCount = 0;
+        inputSampleFormat = hostInputSampleFormat = paFloat32; /* Surpress 'uninitialised var' warnings. */
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support inputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* Host supports interleaved float32 */
+        hostOutputSampleFormat = paFloat32;
+    }
+    else
+    {
+        outputChannelCount = 0;
+        outputSampleFormat = hostOutputSampleFormat = paFloat32; /* Surpress 'uninitialized var' warnings. */
+    }
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+    stream = (PaMacCoreStream*)PaUtil_AllocateMemory( sizeof(PaMacCoreStream) );
+    if( !stream )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    /* If we fail after this point, we my be left in a bad state, with
+       some data structures setup and others not. So, first thing we
+       do is initialize everything so that if we fail, we know what hasn't
+       been touched.
+     */
+
+    stream->inputAudioBufferList.mBuffers[0].mData = NULL;
+    stream->inputRingBuffer.buffer = NULL;
+    bzero( &stream->blio, sizeof( PaMacBlio ) );
+/*
+    stream->blio.inputRingBuffer.buffer = NULL;
+    stream->blio.outputRingBuffer.buffer = NULL;
+    stream->blio.inputSampleFormat = inputParameters?inputParameters->sampleFormat:0;
+    stream->blio.inputSampleSize = computeSampleSizeFromFormat(stream->blio.inputSampleFormat);
+    stream->blio.outputSampleFormat=outputParameters?outputParameters->sampleFormat:0;
+    stream->blio.outputSampleSize = computeSampleSizeFromFormat(stream->blio.outputSampleFormat);
+*/
+    stream->inputSRConverter = NULL;
+    stream->inputUnit = NULL;
+    stream->outputUnit = NULL;
+    stream->inputFramesPerBuffer = 0;
+    stream->outputFramesPerBuffer = 0;
+    stream->bufferProcessorIsInitialized = FALSE;
+
+    /* assert( streamCallback ) ; */ /* only callback mode is implemented */
+    if( streamCallback )
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                        &auhalHostApi->callbackStreamInterface,
+                                        streamCallback, userData );
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                        &auhalHostApi->blockingStreamInterface,
+                                        BlioCallback, &stream->blio );
+    }
+
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+    /* -- handle paFramesPerBufferUnspecified -- */
+    if( framesPerBuffer == paFramesPerBufferUnspecified ) {
+       long requested = 64;
+       if( inputParameters )
+          requested = MAX( requested, inputParameters->suggestedLatency * sampleRate / 2 );
+       if( outputParameters )
+          requested = MAX( requested, outputParameters->suggestedLatency *sampleRate / 2 );
+       VDBUG( ("Block Size unspecified. Based on Latency, the user wants a Block Size near: %ld.\n",
+              requested ) );
+       if( requested <= 64 ) {
+          /*requested a realtively low latency. make sure this is in range of devices */
+          /*try to get the device's min natural buffer size and use that (but no smaller than 64).*/
+          AudioValueRange audioRange;
+          UInt32 size = sizeof( audioRange );
+          if( inputParameters ) {
+             WARNING( result = AudioDeviceGetProperty( auhalHostApi->devIds[inputParameters->device],
+                                          0,
+                                          false,
+                                          kAudioDevicePropertyBufferFrameSizeRange,
+                                          &size, &audioRange ) );
+             if( result )
+                requested = MAX( requested, audioRange.mMinimum );
+          }
+          size = sizeof( audioRange );
+          if( outputParameters ) {
+             WARNING( result = AudioDeviceGetProperty( auhalHostApi->devIds[outputParameters->device],
+                                          0,
+                                          false,
+                                          kAudioDevicePropertyBufferFrameSizeRange,
+                                          &size, &audioRange ) );
+             if( result )
+                requested = MAX( requested, audioRange.mMinimum );
+          }
+       } else {
+          /* requested a realtively high latency. make sure this is in range of devices */
+          /*try to get the device's max natural buffer size and use that (but no larger than 1024).*/
+          AudioValueRange audioRange;
+          UInt32 size = sizeof( audioRange );
+          requested = MIN( requested, 1024 );
+          if( inputParameters ) {
+             WARNING( result = AudioDeviceGetProperty( auhalHostApi->devIds[inputParameters->device],
+                                          0,
+                                          false,
+                                          kAudioDevicePropertyBufferFrameSizeRange,
+                                          &size, &audioRange ) );
+             if( result )
+                requested = MIN( requested, audioRange.mMaximum );
+          }
+          size = sizeof( audioRange );
+          if( outputParameters ) {
+             WARNING( result = AudioDeviceGetProperty( auhalHostApi->devIds[outputParameters->device],
+                                          0,
+                                          false,
+                                          kAudioDevicePropertyBufferFrameSizeRange,
+                                          &size, &audioRange ) );
+             if( result )
+                requested = MIN( requested, audioRange.mMaximum );
+          }
+       }
+       /* -- double check ranges -- */
+       if( requested > 1024 ) requested = 1024;
+       if( requested < 64 ) requested = 64;
+       VDBUG(("After querying hardware, setting block size to %ld.\n", requested));
+       framesPerBuffer = requested;
+    }
+
+    /* -- Now we actually open and setup streams. -- */
+    if( inputParameters && outputParameters && outputParameters->device == inputParameters->device )
+    { /* full duplex. One device. */
+       UInt32 inputFramesPerBuffer  = (UInt32) stream->inputFramesPerBuffer;
+       UInt32 outputFramesPerBuffer = (UInt32) stream->outputFramesPerBuffer;
+       result = OpenAndSetupOneAudioUnit( stream,
+                                          inputParameters,
+                                          outputParameters,
+                                          framesPerBuffer,
+                                          &inputFramesPerBuffer,
+                                          &outputFramesPerBuffer,
+                                          auhalHostApi,
+                                          &(stream->inputUnit),
+                                          &(stream->inputSRConverter),
+                                          &(stream->inputDevice),
+                                          sampleRate,
+                                          stream );
+       stream->inputFramesPerBuffer = inputFramesPerBuffer;
+       stream->outputFramesPerBuffer = outputFramesPerBuffer;
+       stream->outputUnit = stream->inputUnit;
+       stream->outputDevice = stream->inputDevice;
+       if( result != paNoError )
+           goto error;
+    }
+    else
+    { /* full duplex, different devices OR simplex */
+       UInt32 outputFramesPerBuffer = (UInt32) stream->outputFramesPerBuffer;
+       UInt32 inputFramesPerBuffer  = (UInt32) stream->inputFramesPerBuffer;
+       result = OpenAndSetupOneAudioUnit( stream,
+                                          NULL,
+                                          outputParameters,
+                                          framesPerBuffer,
+                                          NULL,
+                                          &outputFramesPerBuffer,
+                                          auhalHostApi,
+                                          &(stream->outputUnit),
+                                          NULL,
+                                          &(stream->outputDevice),
+                                          sampleRate,
+                                          stream );
+       if( result != paNoError )
+           goto error;
+       result = OpenAndSetupOneAudioUnit( stream,
+                                          inputParameters,
+                                          NULL,
+                                          framesPerBuffer,
+                                          &inputFramesPerBuffer,
+                                          NULL,
+                                          auhalHostApi,
+                                          &(stream->inputUnit),
+                                          &(stream->inputSRConverter),
+                                          &(stream->inputDevice),
+                                          sampleRate,
+                                          stream );
+       if( result != paNoError )
+           goto error;
+       stream->inputFramesPerBuffer = inputFramesPerBuffer;
+       stream->outputFramesPerBuffer = outputFramesPerBuffer;
+    }
+
+    if( stream->inputUnit ) {
+       const size_t szfl = sizeof(float);
+       /* setup the AudioBufferList used for input */
+       bzero( &stream->inputAudioBufferList, sizeof( AudioBufferList ) );
+       stream->inputAudioBufferList.mNumberBuffers = 1;
+       stream->inputAudioBufferList.mBuffers[0].mNumberChannels
+                 = inputChannelCount;
+       stream->inputAudioBufferList.mBuffers[0].mDataByteSize
+                 = stream->inputFramesPerBuffer*inputChannelCount*szfl;
+       stream->inputAudioBufferList.mBuffers[0].mData
+                 = (float *) calloc(
+                               stream->inputFramesPerBuffer*inputChannelCount,
+                               szfl );
+       if( !stream->inputAudioBufferList.mBuffers[0].mData )
+       {
+          result = paInsufficientMemory;
+          goto error;
+       }
+        
+       /*
+        * If input and output devs are different or we are doing SR conversion,
+        * we also need a
+        * ring buffer to store inpt data while waiting for output
+        * data.
+        */
+       if( (stream->outputUnit && stream->inputUnit != stream->outputUnit)
+           || stream->inputSRConverter )
+       {
+          /* May want the ringSize ot initial position in
+             ring buffer to depend somewhat on sample rate change */
+
+          void *data;
+          long ringSize;
+
+          ringSize = computeRingBufferSize( inputParameters,
+                                            outputParameters,
+                                            stream->inputFramesPerBuffer,
+                                            stream->outputFramesPerBuffer,
+                                            sampleRate );
+          /*ringSize <<= 4; *//*16x bigger, for testing */
+
+
+          /*now, we need to allocate memory for the ring buffer*/
+          data = calloc( ringSize, szfl );
+          if( !data )
+          {
+             result = paInsufficientMemory;
+             goto error;
+          }
+
+          /* now we can initialize the ring buffer */
+          PaUtil_InitializeRingBuffer( &stream->inputRingBuffer,
+                                   ringSize*szfl, data ) ;
+          /* advance the read point a little, so we are reading from the
+             middle of the buffer */
+          if( stream->outputUnit )
+             PaUtil_AdvanceRingBufferWriteIndex( &stream->inputRingBuffer, ringSize*szfl / RING_BUFFER_ADVANCE_DENOMINATOR );
+       }
+    }
+
+    /* -- initialize Blio Buffer Processors -- */
+    if( !streamCallback )
+    {
+       long ringSize;
+
+       ringSize = computeRingBufferSize( inputParameters,
+                                         outputParameters,
+                                         stream->inputFramesPerBuffer,
+                                         stream->outputFramesPerBuffer,
+                                         sampleRate );
+       result = initializeBlioRingBuffers( &stream->blio,
+              inputParameters?inputParameters->sampleFormat:0 ,
+              outputParameters?outputParameters->sampleFormat:0 ,
+              MAX(stream->inputFramesPerBuffer,stream->outputFramesPerBuffer),
+              ringSize,
+              inputParameters?inputChannelCount:0 ,
+              outputParameters?outputChannelCount:0 ) ;
+       if( result != paNoError )
+          goto error;
+    }
+
+    /* -- initialize Buffer Processor -- */
+    {
+       unsigned long maxHostFrames = stream->inputFramesPerBuffer;
+       if( stream->outputFramesPerBuffer > maxHostFrames )
+          maxHostFrames = stream->outputFramesPerBuffer;
+       result = PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+                 inputChannelCount, inputSampleFormat,
+                 hostInputSampleFormat,
+                 outputChannelCount, outputSampleFormat,
+                 hostOutputSampleFormat,
+                 sampleRate,
+                 streamFlags,
+                 framesPerBuffer,
+                 /* If sample rate conversion takes place, the buffer size
+                    will not be known. */
+                 maxHostFrames,
+                 stream->inputSRConverter
+                              ? paUtilUnknownHostBufferSize
+                              : paUtilBoundedHostBufferSize,
+                 streamCallback ? streamCallback : BlioCallback,
+                 streamCallback ? userData : &stream->blio );
+       if( result != paNoError )
+           goto error;
+    }
+    stream->bufferProcessorIsInitialized = TRUE;
+
+    /*
+        IMPLEMENT ME: initialise the following fields with estimated or actual
+        values.
+        I think this is okay the way it is br 12/1/05
+        maybe need to change input latency estimate if IO devs differ
+    */
+    stream->streamRepresentation.streamInfo.inputLatency =
+            PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor)/sampleRate;
+    stream->streamRepresentation.streamInfo.outputLatency =
+            PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor)/sampleRate;
+    stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+    stream->sampleRate  = sampleRate;
+    stream->outDeviceSampleRate = 0;
+    if( stream->outputUnit ) {
+       Float64 rate;
+       UInt32 size = sizeof( rate );
+       result = ERR( AudioDeviceGetProperty( stream->outputDevice,
+                                    0,
+                                    FALSE,
+                                    kAudioDevicePropertyNominalSampleRate,
+                                    &size, &rate ) );
+       if( result )
+          goto error;
+       stream->outDeviceSampleRate = rate;
+    }
+    stream->inDeviceSampleRate = 0;
+    if( stream->inputUnit ) {
+       Float64 rate;
+       UInt32 size = sizeof( rate );
+       result = ERR( AudioDeviceGetProperty( stream->inputDevice,
+                                    0,
+                                    TRUE,
+                                    kAudioDevicePropertyNominalSampleRate,
+                                    &size, &rate ) );
+       if( result )
+          goto error;
+       stream->inDeviceSampleRate = rate;
+    }
+    stream->userInChan  = inputChannelCount;
+    stream->userOutChan = outputChannelCount;
+
+    stream->isTimeSet   = FALSE;
+    stream->state = STOPPED;
+    stream->xrunFlags = 0;
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+    CloseStream( stream );
+    return result;
+}
+
+PaTime GetStreamTime( PaStream *s )
+{
+   /* FIXME: I am not at all sure this timing info stuff is right.
+             patest_sine_time reports negative latencies, which is wierd.*/
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    AudioTimeStamp timeStamp;
+
+    VVDBUG(("GetStreamTime()\n"));
+
+    if ( !stream->isTimeSet )
+        return (PaTime)0;
+
+    if ( stream->outputDevice ) {
+        AudioDeviceGetCurrentTime( stream->outputDevice, &timeStamp);
+        return (PaTime)(timeStamp.mSampleTime - stream->startTime.mSampleTime)/stream->outDeviceSampleRate;
+    } else if ( stream->inputDevice ) {
+        AudioDeviceGetCurrentTime( stream->inputDevice, &timeStamp);
+    return (PaTime)(timeStamp.mSampleTime - stream->startTime.mSampleTime)/stream->inDeviceSampleRate;
+    } else {
+        return (PaTime)0;
+    }
+}
+
+static void setStreamStartTime( PaStream *stream )
+{
+   /* FIXME: I am not at all sure this timing info stuff is right.
+             patest_sine_time reports negative latencies, which is wierd.*/
+   PaMacCoreStream *s = (PaMacCoreStream *) stream;
+   VVDBUG(("setStreamStartTime()\n"));
+   if( s->outputDevice )
+      AudioDeviceGetCurrentTime( s->outputDevice, &s->startTime);
+   else if( s->inputDevice )
+      AudioDeviceGetCurrentTime( s->inputDevice, &s->startTime);
+   else
+      bzero( &s->startTime, sizeof( s->startTime ) );
+
+   //FIXME: we need a memory barier here
+
+   s->isTimeSet = TRUE;
+}
+
+
+static PaTime TimeStampToSecs(PaMacCoreStream *stream, const AudioTimeStamp* timeStamp)
+{
+    VVDBUG(("TimeStampToSecs()\n"));
+    //printf( "ATS: %lu, %g, %g\n", timeStamp->mFlags, timeStamp->mSampleTime, timeStamp->mRateScalar );
+    if (timeStamp->mFlags & kAudioTimeStampSampleTimeValid)
+        return (timeStamp->mSampleTime / stream->sampleRate);
+    else
+        return 0;
+}
+
+#define RING_BUFFER_EMPTY (1000)
+
+static OSStatus ringBufferIOProc( AudioConverterRef inAudioConverter, 
+                             UInt32*ioDataSize, 
+                             void** outData, 
+                             void*inUserData )
+{
+   void *dummyData;
+   long dummySize;
+   PaUtilRingBuffer *rb = (PaUtilRingBuffer *) inUserData;
+
+   VVDBUG(("ringBufferIOProc()\n"));
+
+   assert( sizeof( UInt32 ) == sizeof( long ) );
+   if( PaUtil_GetRingBufferReadAvailable( rb ) == 0 ) {
+      *outData = NULL;
+      *ioDataSize = 0;
+      return RING_BUFFER_EMPTY;
+   }
+   PaUtil_GetRingBufferReadRegions( rb, *ioDataSize,
+                                    outData, (long *)ioDataSize, 
+                                    &dummyData, &dummySize );
+      
+   assert( *ioDataSize );
+   PaUtil_AdvanceRingBufferReadIndex( rb, *ioDataSize );
+
+   return noErr;
+}
+
+/*
+ * Called by the AudioUnit API to process audio from the sound card.
+ * This is where the magic happens.
+ */
+/* FEEDBACK: there is a lot of redundant code here because of how all the cases differ. This makes it hard to maintain, so if there are suggestinos for cleaning it up, I'm all ears. */
+static OSStatus AudioIOProc( void *inRefCon,
+                               AudioUnitRenderActionFlags *ioActionFlags,
+                               const AudioTimeStamp *inTimeStamp,
+                               UInt32 inBusNumber,
+                               UInt32 inNumberFrames,
+                               AudioBufferList *ioData )
+{
+   unsigned long framesProcessed     = 0;
+   PaStreamCallbackTimeInfo timeInfo = {0,0,0};
+   PaMacCoreStream *stream           = (PaMacCoreStream*)inRefCon;
+   const bool isRender               = inBusNumber == OUTPUT_ELEMENT;
+   int callbackResult                = paContinue ;
+
+   VVDBUG(("AudioIOProc()\n"));
+
+   PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+
+   /* -----------------------------------------------------------------*\
+      This output may be useful for debugging,
+      But printing durring the callback is a bad enough idea that
+      this is not enabled by enableing the usual debugging calls.
+   \* -----------------------------------------------------------------*/
+   /*
+   static int renderCount = 0;
+   static int inputCount = 0;
+   printf( "-------------------  starting reder/input\n" );
+   if( isRender )
+      printf("Render callback (%d):\t", ++renderCount);
+   else
+      printf("Input callback  (%d):\t", ++inputCount);
+   printf( "Call totals: %d (input), %d (render)\n", inputCount, renderCount );
+
+   printf( "--- inBusNumber: %lu\n", inBusNumber );
+   printf( "--- inNumberFrames: %lu\n", inNumberFrames );
+   printf( "--- %x ioData\n", (unsigned) ioData );
+   if( ioData )
+   {
+      int i=0;
+      printf( "--- ioData.mNumBuffers %lu: \n", ioData->mNumberBuffers );
+      for( i=0; i<ioData->mNumberBuffers; ++i )
+         printf( "--- ioData buffer %d size: %lu.\n", i, ioData->mBuffers[i].mDataByteSize );
+   }
+      ----------------------------------------------------------------- */
+
+   if( !stream->isTimeSet )
+      setStreamStartTime( stream );
+
+   if( isRender ) {
+      AudioTimeStamp currentTime;
+      timeInfo.outputBufferDacTime = TimeStampToSecs(stream, inTimeStamp);
+      AudioDeviceGetCurrentTime(stream->outputDevice, &currentTime);
+      timeInfo.currentTime = TimeStampToSecs(stream, &currentTime);
+   }
+   if( isRender && stream->inputUnit == stream->outputUnit )
+      timeInfo.inputBufferAdcTime = TimeStampToSecs(stream, inTimeStamp);
+   if( !isRender ) {
+      AudioTimeStamp currentTime;
+      timeInfo.inputBufferAdcTime = TimeStampToSecs(stream, inTimeStamp);
+      AudioDeviceGetCurrentTime(stream->inputDevice, &currentTime);
+      timeInfo.currentTime = TimeStampToSecs(stream, &currentTime);
+   }
+
+   //printf( "---%g, %g, %g\n", timeInfo.inputBufferAdcTime, timeInfo.currentTime, timeInfo.outputBufferDacTime );
+
+   if( isRender && stream->inputUnit == stream->outputUnit
+                && !stream->inputSRConverter )
+   {
+      /* --------- Full Duplex, One Device, no SR Conversion -------
+       *
+       * This is the lowest latency case, and also the simplest.
+       * Input data and output data are available at the same time.
+       * we do not use the input SR converter or the input ring buffer.
+       *
+       */
+      OSStatus err = 0;
+      unsigned long frames;
+
+      /* -- start processing -- */
+      PaUtil_BeginBufferProcessing( &(stream->bufferProcessor),
+                                    &timeInfo,
+                                    stream->xrunFlags );
+      stream->xrunFlags = 0; //FIXME: this flag also gets set outside by a callback, which calls the xrunCallback function. It should be in the same thread as the main audio callback, but the apple docs just use the word "usually" so it may be possible to loose an xrun notification, if that callback happens here.
+
+      /* -- compute frames. do some checks -- */
+      assert( ioData->mNumberBuffers == 1 );
+      assert( ioData->mBuffers[0].mNumberChannels == stream->userOutChan );
+      frames = ioData->mBuffers[0].mDataByteSize;
+      frames /= sizeof( float ) * ioData->mBuffers[0].mNumberChannels;
+      /* -- copy and process input data -- */
+      err= AudioUnitRender(stream->inputUnit,
+                    ioActionFlags,
+                    inTimeStamp,
+                    INPUT_ELEMENT,
+                    inNumberFrames,
+                    &stream->inputAudioBufferList );
+      /* FEEDBACK: I'm not sure what to do when this call fails */
+      assert( !err );
+
+      PaUtil_SetInputFrameCount( &(stream->bufferProcessor), frames );
+      PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                          0,
+                          stream->inputAudioBufferList.mBuffers[0].mData,
+                          stream->inputAudioBufferList.mBuffers[0].mNumberChannels);
+      /* -- Copy and process output data -- */
+      PaUtil_SetOutputFrameCount( &(stream->bufferProcessor), frames );
+      PaUtil_SetInterleavedOutputChannels( &(stream->bufferProcessor),
+                                        0,
+                                        ioData->mBuffers[0].mData,
+                                        ioData->mBuffers[0].mNumberChannels);
+      /* -- complete processing -- */
+      framesProcessed =
+                 PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                             &callbackResult );
+   }
+   else if( isRender )
+   {
+      /* -------- Output Side of Full Duplex (Separate Devices or SR Conversion)
+       *       -- OR Simplex Output
+       *
+       * This case handles output data as in the full duplex case,
+       * and, if there is input data, reads it off the ring buffer 
+       * and into the PA buffer processor. If sample rate conversion
+       * is required on input, that is done here as well.
+       */
+      unsigned long frames;
+
+      /* Sometimes, when stopping a duplex stream we get erroneous
+         xrun flags, so if this is our last run, clear the flags. */
+      int xrunFlags = stream->xrunFlags;
+/*
+      if( xrunFlags & paInputUnderflow )
+         printf( "input underflow.\n" );
+      if( xrunFlags & paInputOverflow )
+         printf( "input overflow.\n" );
+*/
+      if( stream->state == STOPPING || stream->state == CALLBACK_STOPPED )
+         xrunFlags = 0;
+
+      /* -- start processing -- */
+      PaUtil_BeginBufferProcessing( &(stream->bufferProcessor),
+                                    &timeInfo,
+                                    xrunFlags );
+      stream->xrunFlags = 0; /* FEEDBACK: we only send flags to Buf Proc once */
+
+      /* -- Copy and process output data -- */
+      assert( ioData->mNumberBuffers == 1 );
+      frames = ioData->mBuffers[0].mDataByteSize;
+      frames /= sizeof( float ) * ioData->mBuffers[0].mNumberChannels;
+      assert( ioData->mBuffers[0].mNumberChannels == stream->userOutChan );
+      PaUtil_SetOutputFrameCount( &(stream->bufferProcessor), frames );
+      PaUtil_SetInterleavedOutputChannels( &(stream->bufferProcessor),
+                                     0,
+                                     ioData->mBuffers[0].mData,
+                                     ioData->mBuffers[0].mNumberChannels);
+
+      /* -- copy and process input data, and complete processing -- */
+      if( stream->inputUnit ) {
+         const int flsz = sizeof( float );
+         /* Here, we read the data out of the ring buffer, through the
+            audio converter. */
+         int inChan = stream->inputAudioBufferList.mBuffers[0].mNumberChannels;
+         if( stream->inputSRConverter )
+         {
+               OSStatus err;
+               UInt32 size;
+               float data[ inChan * frames ];
+               size = sizeof( data );
+               err = AudioConverterFillBuffer( 
+                             stream->inputSRConverter,
+                             ringBufferIOProc,
+                             &stream->inputRingBuffer,
+                             &size,
+                             (void *)&data );
+               if( err == RING_BUFFER_EMPTY )
+               { /*the ring buffer callback underflowed */
+                  err = 0;
+                  bzero( ((char *)data) + size, sizeof(data)-size );
+                  stream->xrunFlags |= paInputUnderflow;
+               }
+               ERR( err );
+               assert( !err );
+               
+               PaUtil_SetInputFrameCount( &(stream->bufferProcessor), frames );
+               PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                                   0,
+                                   data,
+                                   inChan );
+               framesProcessed =
+                    PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                                &callbackResult );
+         }
+         else
+         {
+            /* Without the AudioConverter is actually a bit more complex
+               because we have to do a little buffer processing that the
+               AudioConverter would otherwise handle for us. */
+            void *data1, *data2;
+            long size1, size2;
+            PaUtil_GetRingBufferReadRegions( &stream->inputRingBuffer,
+                                             inChan*frames*flsz,
+                                             &data1, &size1,
+                                             &data2, &size2 );
+            if( size1 / ( flsz * inChan ) == frames ) {
+               /* simplest case: all in first buffer */
+               PaUtil_SetInputFrameCount( &(stream->bufferProcessor), frames );
+               PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                                   0,
+                                   data1,
+                                   inChan );
+               framesProcessed =
+                    PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                                &callbackResult );
+               PaUtil_AdvanceRingBufferReadIndex(&stream->inputRingBuffer, size1 );
+            } else if( ( size1 + size2 ) / ( flsz * inChan ) < frames ) {
+               /*we underflowed. take what data we can, zero the rest.*/
+               unsigned char data[frames*inChan*flsz];
+               if( size1 )
+                  memcpy( data, data1, size1 );
+               if( size2 )
+                  memcpy( data+size1, data2, size2 );
+               bzero( data+size1+size2, frames*flsz*inChan - size1 - size2 );
+
+               PaUtil_SetInputFrameCount( &(stream->bufferProcessor), frames );
+               PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                                   0,
+                                   data,
+                                   inChan );
+               framesProcessed =
+                    PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                                &callbackResult );
+               PaUtil_AdvanceRingBufferReadIndex( &stream->inputRingBuffer,
+                                                  size1+size2 );
+               /* flag underflow */
+               stream->xrunFlags |= paInputUnderflow;
+            } else {
+               /*we got all the data, but split between buffers*/
+               PaUtil_SetInputFrameCount( &(stream->bufferProcessor),
+                                          size1 / ( flsz * inChan ) );
+               PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                                   0,
+                                   data1,
+                                   inChan );
+               PaUtil_Set2ndInputFrameCount( &(stream->bufferProcessor),
+                                             size2 / ( flsz * inChan ) );
+               PaUtil_Set2ndInterleavedInputChannels( &(stream->bufferProcessor),
+                                   0,
+                                   data2,
+                                   inChan );
+               framesProcessed =
+                    PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                                &callbackResult );
+               PaUtil_AdvanceRingBufferReadIndex(&stream->inputRingBuffer, size1+size2 );
+            }
+         }
+      } else {
+         framesProcessed =
+                 PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                             &callbackResult );
+      }
+
+   }
+   else
+   {
+      /* ------------------ Input
+       *
+       * First, we read off the audio data and put it in the ring buffer.
+       * if this is an input-only stream, we need to process it more,
+       * otherwise, we let the output case deal with it.
+       */
+      OSStatus err = 0;
+      int chan = stream->inputAudioBufferList.mBuffers[0].mNumberChannels ;
+      /* FIXME: looping here may not actually be necessary, but it was something I tried in testing. */
+      do {
+         err= AudioUnitRender(stream->inputUnit,
+                 ioActionFlags,
+                 inTimeStamp,
+                 INPUT_ELEMENT,
+                 inNumberFrames,
+                 &stream->inputAudioBufferList );
+         if( err == -10874 )
+            inNumberFrames /= 2;
+      } while( err == -10874 && inNumberFrames > 1 );
+      /* FEEDBACK: I'm not sure what to do when this call fails */
+      ERR( err );
+      assert( !err );
+      if( stream->inputSRConverter || stream->outputUnit )
+      {
+         /* If this is duplex or we use a converter, put the data
+            into the ring buffer. */
+         long bytesIn, bytesOut;
+         bytesIn = sizeof( float ) * inNumberFrames * chan;
+         bytesOut = PaUtil_WriteRingBuffer( &stream->inputRingBuffer,
+                                            stream->inputAudioBufferList.mBuffers[0].mData,
+                                            bytesIn );
+         if( bytesIn != bytesOut )
+            stream->xrunFlags |= paInputOverflow ;
+      }
+      else
+      {
+         /* for simplex input w/o SR conversion,
+            just pop the data into the buffer processor.*/
+         PaUtil_BeginBufferProcessing( &(stream->bufferProcessor),
+                              &timeInfo,
+                              stream->xrunFlags );
+         stream->xrunFlags = 0;
+
+         PaUtil_SetInputFrameCount( &(stream->bufferProcessor), inNumberFrames);
+         PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                             0,
+                             stream->inputAudioBufferList.mBuffers[0].mData,
+                             chan );
+         framesProcessed =
+              PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                          &callbackResult );
+      }
+      if( !stream->outputUnit && stream->inputSRConverter )
+      {
+         /* ------------------ Simplex Input w/ SR Conversion
+          *
+          * if this is a simplex input stream, we need to read off the buffer,
+          * do our sample rate conversion and pass the results to the buffer
+          * processor.
+          * The logic here is complicated somewhat by the fact that we don't
+          * know how much data is available, so we loop on reasonably sized
+          * chunks, and let the BufferProcessor deal with the rest.
+          *
+          */
+         /*This might be too big or small depending on SR conversion*/
+         float data[ chan * inNumberFrames ];
+         OSStatus err;
+         do
+         { /*Run the buffer processor until we are out of data*/
+            UInt32 size;
+            long f;
+
+            size = sizeof( data );
+            err = AudioConverterFillBuffer( 
+                          stream->inputSRConverter,
+                          ringBufferIOProc,
+                          &stream->inputRingBuffer,
+                          &size,
+                          (void *)data );
+            if( err != RING_BUFFER_EMPTY )
+               ERR( err );
+            assert( err == 0 || err == RING_BUFFER_EMPTY );
+
+            f = size / ( chan * sizeof(float) );
+            PaUtil_SetInputFrameCount( &(stream->bufferProcessor), f );
+            if( f )
+            {
+               PaUtil_BeginBufferProcessing( &(stream->bufferProcessor),
+                                             &timeInfo,
+                                             stream->xrunFlags );
+               stream->xrunFlags = 0;
+
+               PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor),
+                                0,
+                                data,
+                                chan );
+               framesProcessed =
+                    PaUtil_EndBufferProcessing( &(stream->bufferProcessor),
+                                                &callbackResult );
+            }
+         } while( callbackResult == paContinue && !err );
+      }
+   }
+
+   switch( callbackResult )
+   {
+   case paContinue: break;
+   case paComplete:
+   case paAbort:
+      stream->isTimeSet = FALSE;
+      stream->state = CALLBACK_STOPPED ;
+      if( stream->outputUnit )
+         AudioOutputUnitStop(stream->outputUnit);
+      if( stream->inputUnit )
+         AudioOutputUnitStop(stream->inputUnit);
+      break;
+   }
+
+   PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+   return noErr;
+}
+
+
+/*
+    When CloseStream() is called, the multi-api layer ensures that
+    the stream has already been stopped or aborted.
+*/
+static PaError CloseStream( PaStream* s )
+{
+    /* This may be called from a failed OpenStream.
+       Therefore, each piece of info is treated seperately. */
+    PaError result = paNoError;
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+
+    VVDBUG(("CloseStream()\n"));
+    VDBUG( ( "Closing stream.\n" ) );
+
+    if( stream ) {
+       if( stream->outputUnit )
+          AudioDeviceRemovePropertyListener( stream->outputDevice,
+                                             0,
+                                             false,
+                                             kAudioDeviceProcessorOverload,
+                                             xrunCallback );
+       if( stream->inputUnit && stream->outputUnit != stream->inputUnit )
+          AudioDeviceRemovePropertyListener( stream->inputDevice,
+                                             0,
+                                             true,
+                                             kAudioDeviceProcessorOverload,
+                                             xrunCallback );
+       if( stream->outputUnit && stream->outputUnit != stream->inputUnit ) {
+          AudioUnitUninitialize( stream->outputUnit );
+          CloseComponent( stream->outputUnit );
+       }
+       stream->outputUnit = NULL;
+       if( stream->inputUnit )
+       {
+          AudioUnitUninitialize( stream->inputUnit );
+          CloseComponent( stream->inputUnit );
+          stream->inputUnit = NULL;
+       }
+       if( stream->inputRingBuffer.buffer )
+          free( (void *) stream->inputRingBuffer.buffer );
+       stream->inputRingBuffer.buffer = NULL;
+       /*TODO: is there more that needs to be done on error
+               from AudioConverterDispose?*/
+       if( stream->inputSRConverter )
+          ERR( AudioConverterDispose( stream->inputSRConverter ) );
+       stream->inputSRConverter = NULL;
+       if( stream->inputAudioBufferList.mBuffers[0].mData )
+          free( stream->inputAudioBufferList.mBuffers[0].mData );
+       stream->inputAudioBufferList.mBuffers[0].mData = NULL;
+
+       result = destroyBlioRingBuffers( &stream->blio );
+       if( result )
+          return result;
+       if( stream->bufferProcessorIsInitialized )
+          PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+       PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+       PaUtil_FreeMemory( stream );
+    }
+
+    return result;
+}
+
+static PaError StartStream( PaStream *s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    OSStatus result = noErr;
+    VVDBUG(("StartStream()\n"));
+    VDBUG( ( "Starting stream.\n" ) );
+
+#define ERR_WRAP(mac_err) do { result = mac_err ; if ( result != noErr ) return ERR(result) ; } while(0)
+
+    /*FIXME: maybe want to do this on close/abort for faster start? */
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+    if(  stream->inputSRConverter )
+       ERR_WRAP( AudioConverterReset( stream->inputSRConverter ) );
+
+    /* -- start -- */
+    stream->state = ACTIVE;
+    if( stream->inputUnit ) {
+       ERR_WRAP( AudioOutputUnitStart(stream->inputUnit) );
+    }
+    if( stream->outputUnit && stream->outputUnit != stream->inputUnit ) {
+       ERR_WRAP( AudioOutputUnitStart(stream->outputUnit) );
+    }
+
+    //setStreamStartTime( stream );
+    //stream->isTimeSet = TRUE;
+
+    return paNoError;
+#undef ERR_WRAP
+}
+
+// it's not clear from appl's docs that this really waits
+// until all data is flushed.
+static ComponentResult BlockWhileAudioUnitIsRunning( AudioUnit audioUnit, AudioUnitElement element )
+{
+    Boolean isRunning = 1;
+    while( isRunning ) {
+       UInt32 s = sizeof( isRunning );
+       ComponentResult err = AudioUnitGetProperty( audioUnit, kAudioOutputUnitProperty_IsRunning, kAudioUnitScope_Global, element,  &isRunning, &s );
+       if( err )
+          return err;
+       Pa_Sleep( 100 );
+    }
+    return noErr;
+}
+
+static PaError StopStream( PaStream *s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    OSStatus result = noErr;
+    PaError paErr;
+    VVDBUG(("StopStream()\n"));
+
+    VDBUG( ("Waiting for BLIO.\n") );
+    waitUntilBlioWriteBufferIsFlushed( &stream->blio );
+    VDBUG( ( "Stopping stream.\n" ) );
+
+    stream->isTimeSet = FALSE;
+    stream->state = STOPPING;
+
+#define ERR_WRAP(mac_err) do { result = mac_err ; if ( result != noErr ) return ERR(result) ; } while(0)
+    /* -- stop and reset -- */
+    if( stream->inputUnit == stream->outputUnit && stream->inputUnit )
+    {
+       ERR_WRAP( AudioOutputUnitStop(stream->inputUnit) );
+       ERR_WRAP( BlockWhileAudioUnitIsRunning(stream->inputUnit,0) );
+       ERR_WRAP( BlockWhileAudioUnitIsRunning(stream->inputUnit,1) );
+       ERR_WRAP( AudioUnitReset(stream->inputUnit, kAudioUnitScope_Global, 1) );
+       ERR_WRAP( AudioUnitReset(stream->inputUnit, kAudioUnitScope_Global, 0) );
+    }
+    else
+    {
+       if( stream->inputUnit )
+       {
+          ERR_WRAP(AudioOutputUnitStop(stream->inputUnit) );
+          ERR_WRAP( BlockWhileAudioUnitIsRunning(stream->inputUnit,1) );
+          ERR_WRAP(AudioUnitReset(stream->inputUnit,kAudioUnitScope_Global,1));
+       }
+       if( stream->outputUnit )
+       {
+          ERR_WRAP(AudioOutputUnitStop(stream->outputUnit));
+          ERR_WRAP( BlockWhileAudioUnitIsRunning(stream->outputUnit,0) );
+          ERR_WRAP(AudioUnitReset(stream->outputUnit,kAudioUnitScope_Global,0));
+       }
+    }
+    if( stream->inputRingBuffer.buffer ) {
+       PaUtil_FlushRingBuffer( &stream->inputRingBuffer );
+       bzero( (void *)stream->inputRingBuffer.buffer,
+              stream->inputRingBuffer.bufferSize );
+       /* advance the write point a little, so we are reading from the
+          middle of the buffer. We'll need extra at the end because
+          testing has shown that this helps. */
+       if( stream->outputUnit )
+          PaUtil_AdvanceRingBufferWriteIndex( &stream->inputRingBuffer,
+                                              stream->inputRingBuffer.bufferSize
+                                              / RING_BUFFER_ADVANCE_DENOMINATOR );
+    }
+
+    stream->xrunFlags = 0;
+    stream->state = STOPPED;
+
+    paErr = resetBlioRingBuffers( &stream->blio );
+    if( paErr )
+       return paErr;
+
+/*
+    //stream->isTimeSet = FALSE;
+*/
+
+    VDBUG( ( "Stream Stopped.\n" ) );
+    return paNoError;
+#undef ERR_WRAP
+}
+
+static PaError AbortStream( PaStream *s )
+{
+    VVDBUG(("AbortStream()->StopStream()\n"));
+    VDBUG( ( "Aborting stream.\n" ) );
+    /* We have nothing faster than StopStream. */
+    return StopStream(s);
+}
+
+
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    VVDBUG(("IsStreamStopped()\n"));
+
+    return stream->state == STOPPED ? 1 : 0;
+}
+
+
+static PaError IsStreamActive( PaStream *s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    VVDBUG(("IsStreamActive()\n"));
+    return ( stream->state == ACTIVE || stream->state == STOPPING );
+}
+
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaMacCoreStream *stream = (PaMacCoreStream*)s;
+    VVDBUG(("GetStreamCpuLoad()\n"));
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
diff --git a/external/portaudio2007/pa_mac_core.h b/external/portaudio2007/pa_mac_core.h
new file mode 100644
index 0000000..d7ff4a2
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core.h
@@ -0,0 +1,171 @@
+#ifndef PA_MAC_CORE_H
+#define PA_MAC_CORE_H
+/*
+ * PortAudio Portable Real-Time Audio Library
+ * Macintosh Core Audio specific extensions
+ * portaudio.h should be included before this file.
+ *
+ * Copyright (c) 2005-2006 Bjorn Roche
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+#include <AudioUnit/AudioUnit.h>
+#include <AudioToolbox/AudioToolbox.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * A pointer to a paMacCoreStreamInfo may be passed as
+ * the hostApiSpecificStreamInfo in the PaStreamParameters struct
+ * when opening a stream or querying the format. Use NULL, for the
+ * defaults. Note that for duplex streams, flags for input and output
+ * should be the same or behaviour is undefined.
+ */
+typedef struct
+{
+    unsigned long size;           /**size of whole structure including this header */
+    PaHostApiTypeId hostApiType;  /**host API for which this data is intended */
+    unsigned long version;        /**structure version */
+    unsigned long flags;          /* flags to modify behaviour */
+    SInt32 const * channelMap;    /* Channel map for HAL channel mapping , if not needed, use NULL;*/ 
+    unsigned long channelMapSize; /* Channel map size for HAL channel mapping , if not needed, use 0;*/ 
+} PaMacCoreStreamInfo;
+
+/*
+ * Functions
+ */
+
+
+/* Use this function to initialize a paMacCoreStreamInfo struct
+ * using the requested flags. Note that channel mapping is turned
+ * off after a call to this function.
+ * @param data The datastructure to initialize
+ * @param flags The flags to initialize the datastructure with.
+*/
+void PaMacCore_SetupStreamInfo( PaMacCoreStreamInfo *data, unsigned long flags );
+
+/* call this after pa_SetupMacCoreStreamInfo to use channel mapping as described in notes.txt.
+ * @param data The stream info structure to assign a channel mapping to
+ * @param channelMap The channel map array, as described in notes.txt. This array pointer will be used directly (ie the underlying data will not be copied), so the caller should not free the array until after the stream has been opened.
+ * @param channelMapSize The size of the channel map array.
+ */
+void PaMacCore_SetupChannelMap( PaMacCoreStreamInfo *data, const SInt32 * const channelMap, unsigned long channelMapSize );
+
+/*
+ * Retrieve the AudioDeviceID of the input device assigned to an open stream
+ *
+ * @param s The stream to query.
+ *
+ * @return A valid AudioDeviceID, or NULL if an error occurred.
+ */
+AudioDeviceID PaMacCore_GetStreamInputDevice( PaStream* s );
+ 
+/*
+ * Retrieve the AudioDeviceID of the output device assigned to an open stream
+ *
+ * @param s The stream to query.
+ *
+ * @return A valid AudioDeviceID, or NULL if an error occurred.
+ */
+AudioDeviceID PaMacCore_GetStreamOutputDevice( PaStream* s );
+
+/*
+ * Returns a statically allocated string with the device's name
+ * for the given channel. NULL will be returned on failure.
+ *
+ * This function's implemenation is not complete!
+ *
+ * @param device The PortAudio device index.
+ * @param channel The channel number who's name is requested.
+ * @return a statically allocated string with the name of the device.
+ *         Because this string is statically allocated, it must be
+ *         coppied if it is to be saved and used by the user after
+ *         another call to this function.
+ *
+ */
+const char *PaMacCore_GetChannelName( int device, int channelIndex, bool input );
+
+/*
+ * Flags
+ */
+
+/*
+ * The following flags alter the behaviour of PA on the mac platform.
+ * they can be ORed together. These should work both for opening and
+ * checking a device.
+ */
+
+/* Allows PortAudio to change things like the device's frame size,
+ * which allows for much lower latency, but might disrupt the device
+ * if other programs are using it, even when you are just Querying
+ * the device. */
+#define paMacCoreChangeDeviceParameters (0x01)
+
+/* In combination with the above flag,
+ * causes the stream opening to fail, unless the exact sample rates
+ * are supported by the device. */
+#define paMacCoreFailIfConversionRequired (0x02)
+
+/* These flags set the SR conversion quality, if required. The wierd ordering
+ * allows Maximum Quality to be the default.*/
+#define paMacCoreConversionQualityMin    (0x0100)
+#define paMacCoreConversionQualityMedium (0x0200)
+#define paMacCoreConversionQualityLow    (0x0300)
+#define paMacCoreConversionQualityHigh   (0x0400)
+#define paMacCoreConversionQualityMax    (0x0000)
+
+/*
+ * Here are some "preset" combinations of flags (above) to get to some
+ * common configurations. THIS IS OVERKILL, but if more flags are added
+ * it won't be.
+ */
+
+/*This is the default setting: do as much sample rate conversion as possible
+ * and as little mucking with the device as possible. */
+#define paMacCorePlayNice                    (0x00)
+/*This setting is tuned for pro audio apps. It allows SR conversion on input
+  and output, but it tries to set the appropriate SR on the device.*/
+#define paMacCorePro                         (0x01)
+/*This is a setting to minimize CPU usage and still play nice.*/
+#define paMacCoreMinimizeCPUButPlayNice      (0x0100)
+/*This is a setting to minimize CPU usage, even if that means interrupting the device. */
+#define paMacCoreMinimizeCPU                 (0x0101)
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_MAC_CORE_H */
diff --git a/external/portaudio2007/pa_mac_core_blocking.c b/external/portaudio2007/pa_mac_core_blocking.c
new file mode 100644
index 0000000..51478fa
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core_blocking.c
@@ -0,0 +1,585 @@
+/*
+ * Implementation of the PortAudio API for Apple AUHAL
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostaip_src
+
+ This file contains the implementation
+ required for blocking I/O. It is separated from pa_mac_core.c simply to ease
+ development.
+*/
+
+#include "pa_mac_core_blocking.h"
+#include "pa_mac_core_internal.h"
+#include <assert.h>
+#ifdef MOSX_USE_NON_ATOMIC_FLAG_BITS
+# define OSAtomicOr32( a, b ) ( (*(b)) |= (a) )
+# define OSAtomicAnd32( a, b ) ( (*(b)) &= (a) )
+#else
+# include <libkern/OSAtomic.h>
+#endif
+
+/*
+ * This fnuction determines the size of a particular sample format.
+ * if the format is not recognized, this returns zero.
+ */
+static size_t computeSampleSizeFromFormat( PaSampleFormat format )
+{
+   switch( format ) {
+   case paFloat32: return 4;
+   case paInt32: return 4;
+   case paInt24: return 3;
+   case paInt16: return 2;
+   case paInt8: case paUInt8: return 1;
+   default: return 0;
+   }
+}
+/*
+ * Same as computeSampleSizeFromFormat, except that if
+ * the size is not a power of two, it returns the next power of two up
+ */
+static size_t computeSampleSizeFromFormatPow2( PaSampleFormat format )
+{
+   switch( format ) {
+   case paFloat32: return 4;
+   case paInt32: return 4;
+   case paInt24: return 4;
+   case paInt16: return 2;
+   case paInt8: case paUInt8: return 1;
+   default: return 0;
+   }
+}
+
+
+
+/*
+ * Functions for initializing, resetting, and destroying BLIO structures.
+ *
+ */
+
+/* This should be called with the relevant info when initializing a stream for
+   callback. */
+PaError initializeBlioRingBuffers(
+                                       PaMacBlio *blio,
+                                       PaSampleFormat inputSampleFormat,
+                                       PaSampleFormat outputSampleFormat,
+                                       size_t framesPerBuffer,
+                                       long ringBufferSize,
+                                       int inChan,
+                                       int outChan )
+{
+   void *data;
+   int result;
+
+   /* zeroify things */
+   bzero( blio, sizeof( PaMacBlio ) );
+   /* this is redundant, but the buffers are used to check
+      if the bufffers have been initialized, so we do it explicitly. */
+   blio->inputRingBuffer.buffer = NULL;
+   blio->outputRingBuffer.buffer = NULL;
+
+   /* initialize simple data */
+   blio->ringBufferFrames = ringBufferSize;
+   blio->inputSampleFormat = inputSampleFormat;
+   blio->inputSampleSizeActual = computeSampleSizeFromFormat(inputSampleFormat);
+   blio->inputSampleSizePow2 = computeSampleSizeFromFormatPow2(inputSampleFormat);
+   blio->outputSampleFormat = outputSampleFormat;
+   blio->outputSampleSizeActual = computeSampleSizeFromFormat(outputSampleFormat);
+   blio->outputSampleSizePow2 = computeSampleSizeFromFormatPow2(outputSampleFormat);
+
+   blio->framesPerBuffer = framesPerBuffer;
+   blio->inChan = inChan;
+   blio->outChan = outChan;
+   blio->statusFlags = 0;
+   blio->errors = paNoError;
+#ifdef PA_MAC_BLIO_MUTEX
+   blio->isInputEmpty = false;
+   blio->isOutputFull = false;
+#endif
+
+   /* setup ring buffers */
+#ifdef PA_MAC_BLIO_MUTEX
+   result = PaMacCore_SetUnixError( pthread_mutex_init(&(blio->inputMutex),NULL), 0 );
+   if( result )
+      goto error;
+   result = UNIX_ERR( pthread_cond_init( &(blio->inputCond), NULL ) );
+   if( result )
+      goto error;
+   result = UNIX_ERR( pthread_mutex_init(&(blio->outputMutex),NULL) );
+   if( result )
+      goto error;
+   result = UNIX_ERR( pthread_cond_init( &(blio->outputCond), NULL ) );
+#endif
+   if( inChan ) {
+      data = calloc( ringBufferSize, blio->inputSampleSizePow2*inChan );
+      if( !data )
+      {
+         result = paInsufficientMemory;
+         goto error;
+      }
+
+      assert( 0 == PaUtil_InitializeRingBuffer(
+            &blio->inputRingBuffer,
+            ringBufferSize*blio->inputSampleSizePow2*inChan,
+            data ) );
+   }
+   if( outChan ) {
+      data = calloc( ringBufferSize, blio->outputSampleSizePow2*outChan );
+      if( !data )
+      {
+         result = paInsufficientMemory;
+         goto error;
+      }
+
+      assert( 0 == PaUtil_InitializeRingBuffer(
+            &blio->outputRingBuffer,
+            ringBufferSize*blio->outputSampleSizePow2*outChan,
+            data ) );
+   }
+
+   result = resetBlioRingBuffers( blio );
+   if( result )
+      goto error;
+
+   return 0;
+
+ error:
+   destroyBlioRingBuffers( blio );
+   return result;
+}
+
+#ifdef PA_MAC_BLIO_MUTEX
+PaError blioSetIsInputEmpty( PaMacBlio *blio, bool isEmpty )
+{
+   PaError result = paNoError;
+   if( isEmpty == blio->isInputEmpty )
+      goto done;
+
+   /* we need to update the value. Here's what we do:
+    * - Lock the mutex, so noone else can write.
+    * - update the value.
+    * - unlock.
+    * - broadcast to all listeners.
+    */
+   result = UNIX_ERR( pthread_mutex_lock( &blio->inputMutex ) );
+   if( result )
+      goto done;
+   blio->isInputEmpty = isEmpty;
+   result = UNIX_ERR( pthread_mutex_unlock( &blio->inputMutex ) );
+   if( result )
+      goto done;
+   result = UNIX_ERR( pthread_cond_broadcast( &blio->inputCond ) );
+   if( result )
+      goto done;
+
+ done:
+   return result;
+}
+PaError blioSetIsOutputFull( PaMacBlio *blio, bool isFull )
+{
+   PaError result = paNoError;
+   if( isFull == blio->isOutputFull )
+      goto done;
+
+   /* we need to update the value. Here's what we do:
+    * - Lock the mutex, so noone else can write.
+    * - update the value.
+    * - unlock.
+    * - broadcast to all listeners.
+    */
+   result = UNIX_ERR( pthread_mutex_lock( &blio->outputMutex ) );
+   if( result )
+      goto done;
+   blio->isOutputFull = isFull;
+   result = UNIX_ERR( pthread_mutex_unlock( &blio->outputMutex ) );
+   if( result )
+      goto done;
+   result = UNIX_ERR( pthread_cond_broadcast( &blio->outputCond ) );
+   if( result )
+      goto done;
+
+ done:
+   return result;
+}
+#endif
+
+/* This should be called after stopping or aborting the stream, so that on next
+   start, the buffers will be ready. */
+PaError resetBlioRingBuffers( PaMacBlio *blio )
+{
+#ifdef PA_MAC__BLIO_MUTEX
+   int result;
+#endif
+   blio->statusFlags = 0;
+   if( blio->outputRingBuffer.buffer ) {
+      PaUtil_FlushRingBuffer( &blio->outputRingBuffer );
+      bzero( blio->outputRingBuffer.buffer,
+             blio->outputRingBuffer.bufferSize );
+      /* Advance buffer */
+      PaUtil_AdvanceRingBufferWriteIndex( &blio->outputRingBuffer, blio->ringBufferFrames*blio->outputSampleSizeActual*blio->outChan );
+      //PaUtil_AdvanceRingBufferWriteIndex( &blio->outputRingBuffer, blio->outputRingBuffer.bufferSize );
+
+      /* Update isOutputFull. */
+#ifdef PA_MAC__BLIO_MUTEX
+      result = blioSetIsOutputFull( blio, toAdvance == blio->outputRingBuffer.bufferSize );
+      if( result )
+         goto error;
+#endif
+/*
+      printf( "------%d\n" ,  blio->framesPerBuffer );
+      printf( "------%d\n" ,  blio->outChan );
+      printf( "------%d\n" ,  blio->outputSampleSize );
+      printf( "------%d\n" ,  blio->framesPerBuffer*blio->outChan*blio->outputSampleSize );
+*/
+   }
+   if( blio->inputRingBuffer.buffer ) {
+      PaUtil_FlushRingBuffer( &blio->inputRingBuffer );
+      bzero( blio->inputRingBuffer.buffer,
+             blio->inputRingBuffer.bufferSize );
+      /* Update isInputEmpty. */
+#ifdef PA_MAC__BLIO_MUTEX
+      result = blioSetIsInputEmpty( blio, true );
+      if( result )
+         goto error;
+#endif
+   }
+   return paNoError;
+#ifdef PA_MAC__BLIO_MUTEX
+ error:
+   return result;
+#endif
+}
+
+/*This should be called when you are done with the blio. It can safely be called
+  multiple times if there are no exceptions. */
+PaError destroyBlioRingBuffers( PaMacBlio *blio )
+{
+   PaError result = paNoError;
+   if( blio->inputRingBuffer.buffer ) {
+      free( blio->inputRingBuffer.buffer );
+#ifdef PA_MAC__BLIO_MUTEX
+      result = UNIX_ERR( pthread_mutex_destroy( & blio->inputMutex ) );
+      if( result ) return result;
+      result = UNIX_ERR( pthread_cond_destroy( & blio->inputCond ) );
+      if( result ) return result;
+#endif
+   }
+   blio->inputRingBuffer.buffer = NULL;
+   if( blio->outputRingBuffer.buffer ) {
+      free( blio->outputRingBuffer.buffer );
+#ifdef PA_MAC__BLIO_MUTEX
+      result = UNIX_ERR( pthread_mutex_destroy( & blio->outputMutex ) );
+      if( result ) return result;
+      result = UNIX_ERR( pthread_cond_destroy( & blio->outputCond ) );
+      if( result ) return result;
+#endif
+   }
+   blio->outputRingBuffer.buffer = NULL;
+
+   return result;
+}
+
+/*
+ * this is the BlioCallback function. It expects to recieve a PaMacBlio Object
+ * pointer as userData.
+ *
+ */
+int BlioCallback( const void *input, void *output, unsigned long frameCount,
+	const PaStreamCallbackTimeInfo* timeInfo,
+        PaStreamCallbackFlags statusFlags,
+        void *userData )
+{
+   PaMacBlio *blio = (PaMacBlio*)userData;
+   long avail;
+   long toRead;
+   long toWrite;
+
+   /* set flags returned by OS: */
+   OSAtomicOr32( statusFlags, &blio->statusFlags ) ;
+
+   /* --- Handle Input Buffer --- */
+   if( blio->inChan ) {
+      avail = PaUtil_GetRingBufferWriteAvailable( &blio->inputRingBuffer );
+
+      /* check for underflow */
+      if( avail < frameCount * blio->inputSampleSizeActual * blio->inChan )
+         OSAtomicOr32( paInputOverflow, &blio->statusFlags );
+
+      toRead = MIN( avail, frameCount * blio->inputSampleSizeActual * blio->inChan );
+
+      /* copy the data */
+      /*printf( "reading %d\n", toRead );*/
+      assert( toRead == PaUtil_WriteRingBuffer( &blio->inputRingBuffer, input, toRead ) );
+#ifdef PA_MAC__BLIO_MUTEX
+      /* Priority inversion. See notes below. */
+      blioSetIsInputEmpty( blio, false );
+#endif
+   }
+
+
+   /* --- Handle Output Buffer --- */
+   if( blio->outChan ) {
+      avail = PaUtil_GetRingBufferReadAvailable( &blio->outputRingBuffer );
+
+      /* check for underflow */
+      if( avail < frameCount * blio->outputSampleSizeActual * blio->outChan )
+         OSAtomicOr32( paOutputUnderflow, &blio->statusFlags );
+
+      toWrite = MIN( avail, frameCount * blio->outputSampleSizeActual * blio->outChan );
+
+      if( toWrite != frameCount * blio->outputSampleSizeActual * blio->outChan )
+         bzero( ((char *)output)+toWrite,
+                frameCount * blio->outputSampleSizeActual * blio->outChan - toWrite );
+      /* copy the data */
+      /*printf( "writing %d\n", toWrite );*/
+      assert( toWrite == PaUtil_ReadRingBuffer( &blio->outputRingBuffer, output, toWrite ) );
+#ifdef PA_MAC__BLIO_MUTEX
+      /* We have a priority inversion here. However, we will only have to
+         wait if this was true and is now false, which means we've got
+         some room in the buffer.
+         Hopefully problems will be minimized. */
+      blioSetIsOutputFull( blio, false );
+#endif
+   }
+
+   return paContinue;
+}
+
+PaError ReadStream( PaStream* stream,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaMacBlio *blio = & ((PaMacCoreStream*)stream) -> blio;
+    char *cbuf = (char *) buffer;
+    PaError ret = paNoError;
+    VVDBUG(("ReadStream()\n"));
+
+    while( frames > 0 ) {
+       long avail;
+       long toRead;
+       do {
+          avail = PaUtil_GetRingBufferReadAvailable( &blio->inputRingBuffer );
+/*
+          printf( "Read Buffer is %%%g full: %ld of %ld.\n",
+                  100 * (float)avail / (float) blio->inputRingBuffer.bufferSize,
+                  avail, blio->inputRingBuffer.bufferSize );
+*/
+          if( avail == 0 ) {
+#ifdef PA_MAC_BLIO_MUTEX
+             /**block when empty*/
+             ret = UNIX_ERR( pthread_mutex_lock( &blio->inputMutex ) );
+             if( ret )
+                return ret;
+             while( blio->isInputEmpty ) {
+                ret = UNIX_ERR( pthread_cond_wait( &blio->inputCond, &blio->inputMutex ) );
+                if( ret )
+                   return ret;
+             }
+             ret = UNIX_ERR( pthread_mutex_unlock( &blio->inputMutex ) );
+             if( ret )
+                return ret;
+#else
+             Pa_Sleep( PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL );
+#endif
+          }
+       } while( avail == 0 );
+       toRead = MIN( avail, frames * blio->inputSampleSizeActual * blio->inChan );
+       toRead -= toRead % blio->inputSampleSizeActual * blio->inChan ;
+       PaUtil_ReadRingBuffer( &blio->inputRingBuffer, (void *)cbuf, toRead );
+       cbuf += toRead;
+       frames -= toRead / ( blio->inputSampleSizeActual * blio->inChan );
+
+       if( toRead == avail ) {
+#ifdef PA_MAC_BLIO_MUTEX
+          /* we just emptied the buffer, so we need to mark it as empty. */
+          ret = blioSetIsInputEmpty( blio, true );
+          if( ret )
+             return ret;
+          /* of course, in the meantime, the callback may have put some sats
+             in, so
+             so check for that, too, to avoid a race condition. */
+          if( PaUtil_GetRingBufferReadAvailable( &blio->inputRingBuffer ) ) {
+             blioSetIsInputEmpty( blio, false );
+             if( ret )
+                return ret;
+          }
+#endif
+       }
+    }
+
+    /*   Report either paNoError or paInputOverflowed. */
+    /*   may also want to report other errors, but this is non-standard. */
+    ret = blio->statusFlags & paInputOverflow;
+
+    /* report underflow only once: */
+    if( ret ) {
+       OSAtomicAnd32( (uint32_t)(~paInputOverflow), &blio->statusFlags );
+       ret = paInputOverflowed;
+    }
+
+    return ret;
+}
+
+
+PaError WriteStream( PaStream* stream,
+                            const void *buffer,
+                            unsigned long frames )
+{
+    PaMacBlio *blio = & ((PaMacCoreStream*)stream) -> blio;
+    char *cbuf = (char *) buffer;
+    PaError ret = paNoError;
+    VVDBUG(("WriteStream()\n"));
+
+    while( frames > 0 ) {
+       long avail = 0;
+       long toWrite;
+
+       do {
+          avail = PaUtil_GetRingBufferWriteAvailable( &blio->outputRingBuffer );
+/*
+          printf( "Write Buffer is %%%g full: %ld of %ld.\n",
+                  100 - 100 * (float)avail / (float) blio->outputRingBuffer.bufferSize,
+                  avail, blio->outputRingBuffer.bufferSize );
+*/
+          if( avail == 0 ) {
+#ifdef PA_MAC_BLIO_MUTEX
+             /*block while full*/
+             ret = UNIX_ERR( pthread_mutex_lock( &blio->outputMutex ) );
+             if( ret )
+                return ret;
+             while( blio->isOutputFull ) {
+                ret = UNIX_ERR( pthread_cond_wait( &blio->outputCond, &blio->outputMutex ) );
+                if( ret )
+                   return ret;
+             }
+             ret = UNIX_ERR( pthread_mutex_unlock( &blio->outputMutex ) );
+             if( ret )
+                return ret;
+#else
+             Pa_Sleep( PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL );
+#endif
+          }
+       } while( avail == 0 );
+
+       toWrite = MIN( avail, frames * blio->outputSampleSizeActual * blio->outChan );
+       toWrite -= toWrite % blio->outputSampleSizeActual * blio->outChan ;
+       PaUtil_WriteRingBuffer( &blio->outputRingBuffer, (void *)cbuf, toWrite );
+       cbuf += toWrite;
+       frames -= toWrite / ( blio->outputSampleSizeActual * blio->outChan );
+
+#ifdef PA_MAC_BLIO_MUTEX
+       if( toWrite == avail ) {
+          /* we just filled up the buffer, so we need to mark it as filled. */
+          ret = blioSetIsOutputFull( blio, true );
+          if( ret )
+             return ret;
+          /* of course, in the meantime, we may have emptied the buffer, so
+             so check for that, too, to avoid a race condition. */
+          if( PaUtil_GetRingBufferWriteAvailable( &blio->outputRingBuffer ) ) {
+             blioSetIsOutputFull( blio, false );
+             if( ret )
+                return ret;
+          }
+       }
+#endif
+    }
+
+    /*   Report either paNoError or paOutputUnderflowed. */
+    /*   may also want to report other errors, but this is non-standard. */
+    ret = blio->statusFlags & paOutputUnderflow;
+
+    /* report underflow only once: */
+    if( ret ) {
+      OSAtomicAnd32( (uint32_t)(~paOutputUnderflow), &blio->statusFlags );
+      ret = paOutputUnderflowed;
+    }
+
+    return ret;
+}
+
+/*
+ *
+ */
+void waitUntilBlioWriteBufferIsFlushed( PaMacBlio *blio )
+{
+    if( blio->outputRingBuffer.buffer ) {
+       long avail = PaUtil_GetRingBufferWriteAvailable( &blio->outputRingBuffer );
+       while( avail != blio->outputRingBuffer.bufferSize ) {
+          if( avail == 0 )
+             Pa_Sleep( PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL );
+          avail = PaUtil_GetRingBufferWriteAvailable( &blio->outputRingBuffer );
+       }
+    }
+}
+
+
+signed long GetStreamReadAvailable( PaStream* stream )
+{
+    PaMacBlio *blio = & ((PaMacCoreStream*)stream) -> blio;
+    VVDBUG(("GetStreamReadAvailable()\n"));
+
+    return PaUtil_GetRingBufferReadAvailable( &blio->inputRingBuffer )
+                         / ( blio->outputSampleSizeActual * blio->outChan );
+}
+
+
+signed long GetStreamWriteAvailable( PaStream* stream )
+{
+    PaMacBlio *blio = & ((PaMacCoreStream*)stream) -> blio;
+    VVDBUG(("GetStreamWriteAvailable()\n"));
+
+    return PaUtil_GetRingBufferWriteAvailable( &blio->outputRingBuffer )
+                         / ( blio->outputSampleSizeActual * blio->outChan );
+}
+
diff --git a/external/portaudio2007/pa_mac_core_blocking.h b/external/portaudio2007/pa_mac_core_blocking.h
new file mode 100644
index 0000000..c24531d
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core_blocking.h
@@ -0,0 +1,136 @@
+/*
+ * Internal blocking interfaces for PortAudio Apple AUHAL implementation
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostaip_src
+*/
+
+#ifndef PA_MAC_CORE_BLOCKING_H_
+#define PA_MAC_CORE_BLOCKING_H_
+
+#include "pa_ringbuffer.h"
+#include "portaudio.h"
+#include "pa_mac_core_utilities.h"
+
+/*
+ * Number of miliseconds to busy wait whil waiting for data in blocking calls.
+ */
+#define PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL (5)
+/*
+ * Define exactly one of these blocking methods
+ * PA_MAC_BLIO_MUTEX is not actively maintained.
+ */
+#define PA_MAC_BLIO_BUSY_WAIT
+/*
+#define PA_MAC_BLIO_MUTEX
+*/
+
+typedef struct {
+    PaUtilRingBuffer inputRingBuffer;
+    PaUtilRingBuffer outputRingBuffer;
+    size_t ringBufferFrames;
+    PaSampleFormat inputSampleFormat;
+    size_t inputSampleSizeActual;
+    size_t inputSampleSizePow2;
+    PaSampleFormat outputSampleFormat;
+    size_t outputSampleSizeActual;
+    size_t outputSampleSizePow2;
+
+    size_t framesPerBuffer;
+
+    int inChan;
+    int outChan;
+
+    //PaStreamCallbackFlags statusFlags;
+    uint32_t statusFlags;
+    PaError errors;
+
+    /* Here we handle blocking, using condition variables. */
+#ifdef  PA_MAC_BLIO_MUTEX
+    volatile bool isInputEmpty;
+    pthread_mutex_t inputMutex;
+    pthread_cond_t inputCond;
+
+    volatile bool isOutputFull;
+    pthread_mutex_t outputMutex;
+    pthread_cond_t outputCond;
+#endif
+}
+PaMacBlio;
+
+/*
+ * These functions operate on condition and related variables.
+ */
+
+PaError initializeBlioRingBuffers(
+                                       PaMacBlio *blio,
+                                       PaSampleFormat inputSampleFormat,
+                                       PaSampleFormat outputSampleFormat,
+                                       size_t framesPerBuffer,
+                                       long ringBufferSize,
+                                       int inChan,
+                                       int outChan );
+PaError destroyBlioRingBuffers( PaMacBlio *blio );
+PaError resetBlioRingBuffers( PaMacBlio *blio );
+
+int BlioCallback(
+        const void *input, void *output,
+        unsigned long frameCount,
+        const PaStreamCallbackTimeInfo* timeInfo,
+        PaStreamCallbackFlags statusFlags,
+        void *userData );
+
+void waitUntilBlioWriteBufferIsFlushed( PaMacBlio *blio );
+
+#endif /*PA_MAC_CORE_BLOCKING_H_*/
diff --git a/external/portaudio2007/pa_mac_core_internal.h b/external/portaudio2007/pa_mac_core_internal.h
new file mode 100644
index 0000000..291304c
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core_internal.h
@@ -0,0 +1,164 @@
+/*
+ * Internal interfaces for PortAudio Apple AUHAL implementation
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file pa_mac_core
+ @ingroup hostapi_src
+ @author Bjorn Roche
+ @brief AUHAL implementation of PortAudio
+*/
+
+#ifndef PA_MAC_CORE_INTERNAL_H__
+#define PA_MAC_CORE_INTERNAL_H__
+
+#include <AudioUnit/AudioUnit.h>
+#include <AudioToolbox/AudioToolbox.h>
+
+
+#include "portaudio.h"
+#include "pa_util.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_allocation.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "pa_ringbuffer.h"
+
+#include "pa_mac_core_blocking.h"
+
+/* function prototypes */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaMacCore_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#define RING_BUFFER_ADVANCE_DENOMINATOR (4)
+
+PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+signed long GetStreamReadAvailable( PaStream* stream );
+signed long GetStreamWriteAvailable( PaStream* stream );
+/* PaMacAUHAL - host api datastructure specific to this implementation */
+typedef struct
+{
+    PaUtilHostApiRepresentation inheritedHostApiRep;
+    PaUtilStreamInterface callbackStreamInterface;
+    PaUtilStreamInterface blockingStreamInterface;
+
+    PaUtilAllocationGroup *allocations;
+
+    /* implementation specific data goes here */
+    long devCount;
+    AudioDeviceID *devIds; /*array of all audio devices*/
+    AudioDeviceID defaultIn;
+    AudioDeviceID defaultOut;
+}
+PaMacAUHAL;
+
+
+
+/* stream data structure specifically for this implementation */
+typedef struct PaMacCoreStream
+{
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+
+    /* implementation specific data goes here */
+    bool bufferProcessorIsInitialized;
+    AudioUnit inputUnit;
+    AudioUnit outputUnit;
+    AudioDeviceID inputDevice;
+    AudioDeviceID outputDevice;
+    size_t userInChan;
+    size_t userOutChan;
+    size_t inputFramesPerBuffer;
+    size_t outputFramesPerBuffer;
+    PaMacBlio blio;
+    /* We use this ring buffer when input and out devs are different. */
+    PaUtilRingBuffer inputRingBuffer;
+    /* We may need to do SR conversion on input. */
+    AudioConverterRef inputSRConverter;
+    /* We need to preallocate an inputBuffer for reading data. */
+    AudioBufferList inputAudioBufferList;
+    AudioTimeStamp startTime;
+    /* FIXME: instead of volatile, these should be properly memory barriered */
+    volatile PaStreamCallbackFlags xrunFlags;
+    volatile bool isTimeSet;
+    volatile enum {
+       STOPPED          = 0, /* playback is completely stopped,
+                                and the user has called StopStream(). */
+       CALLBACK_STOPPED = 1, /* callback has requested stop,
+                                but user has not yet called StopStream(). */
+       STOPPING         = 2, /* The stream is in the process of closing
+                                because the user has called StopStream.
+                                This state is just used internally;
+                                externally it is indistinguishable from
+                                ACTIVE.*/
+       ACTIVE           = 3  /* The stream is active and running. */
+    } state;
+    double sampleRate;
+    //these may be different from the stream sample rate due to SR conversion:
+    double outDeviceSampleRate;
+    double inDeviceSampleRate;
+}
+PaMacCoreStream;
+
+#endif /* PA_MAC_CORE_INTERNAL_H__ */
diff --git a/external/portaudio2007/pa_mac_core_utilities.c b/external/portaudio2007/pa_mac_core_utilities.c
new file mode 100644
index 0000000..e96b78b
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core_utilities.c
@@ -0,0 +1,620 @@
+/*
+ * Helper and utility functions for pa_mac_core.c (Apple AUHAL implementation)
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostapi_src
+*/
+
+#include "pa_mac_core_utilities.h"
+
+PaError PaMacCore_SetUnixError( int err, int line )
+{
+   PaError ret;
+   const char *errorText;
+
+   if( err == 0 )
+   {
+      return paNoError;
+   }
+
+   ret = paNoError;
+   errorText = strerror( err );
+
+   /** Map Unix error to PaError. Pretty much the only one that maps
+       is ENOMEM. */
+   if( err == ENOMEM )
+      ret = paInsufficientMemory;
+   else
+      ret = paInternalError;
+
+   DBUG(("%d on line %d: msg='%s'\n", err, line, errorText));
+   PaUtil_SetLastHostErrorInfo( paCoreAudio, err, errorText );
+
+   return ret;
+}
+
+/*
+ * Translates MacOS generated errors into PaErrors
+ */
+PaError PaMacCore_SetError(OSStatus error, int line, int isError)
+{
+    /*FIXME: still need to handle possible ComponentResult values.*/
+    /*       unfortunately, they don't seem to be documented anywhere.*/
+    PaError result;
+    const char *errorType; 
+    const char *errorText;
+    
+    switch (error) {
+    case kAudioHardwareNoError:
+        return paNoError;
+    case kAudioHardwareNotRunningError:
+        errorText = "Audio Hardware Not Running";
+        result = paInternalError; break;
+    case kAudioHardwareUnspecifiedError: 
+        errorText = "Unspecified Audio Hardware Error";
+        result = paInternalError; break;
+    case kAudioHardwareUnknownPropertyError:
+        errorText = "Audio Hardware: Unknown Property";
+        result = paInternalError; break;
+    case kAudioHardwareBadPropertySizeError:
+        errorText = "Audio Hardware: Bad Property Size";
+        result = paInternalError; break;
+    case kAudioHardwareIllegalOperationError: 
+        errorText = "Audio Hardware: Illegal Operation";
+        result = paInternalError; break;
+    case kAudioHardwareBadDeviceError:
+        errorText = "Audio Hardware: Bad Device";
+        result = paInvalidDevice; break;
+    case kAudioHardwareBadStreamError:
+        errorText = "Audio Hardware: BadStream";
+        result = paBadStreamPtr; break;
+    case kAudioHardwareUnsupportedOperationError:
+        errorText = "Audio Hardware: Unsupported Operation";
+        result = paInternalError; break;
+    case kAudioDeviceUnsupportedFormatError:
+        errorText = "Audio Device: Unsupported Format";
+        result = paSampleFormatNotSupported; break;
+    case kAudioDevicePermissionsError:
+        errorText = "Audio Device: Permissions Error";
+        result = paDeviceUnavailable; break;
+    /* Audio Unit Errors: http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudio/audio_units/chapter_5_section_3.html */
+    case kAudioUnitErr_InvalidProperty:
+        errorText = "Audio Unit: Invalid Property";
+        result = paInternalError; break;
+    case kAudioUnitErr_InvalidParameter:
+        errorText = "Audio Unit: Invalid Parameter";
+        result = paInternalError; break;
+    case kAudioUnitErr_NoConnection:
+        errorText = "Audio Unit: No Connection";
+        result = paInternalError; break;
+    case kAudioUnitErr_FailedInitialization:
+        errorText = "Audio Unit: Initialization Failed";
+        result = paInternalError; break;
+    case kAudioUnitErr_TooManyFramesToProcess:
+        errorText = "Audio Unit: Too Many Frames";
+        result = paInternalError; break;
+    case kAudioUnitErr_IllegalInstrument:
+        errorText = "Audio Unit: Illegal Instrument";
+        result = paInternalError; break;
+    case kAudioUnitErr_InstrumentTypeNotFound:
+        errorText = "Audio Unit: Instrument Type Not Found";
+        result = paInternalError; break;
+    case kAudioUnitErr_InvalidFile:
+        errorText = "Audio Unit: Invalid File";
+        result = paInternalError; break;
+    case kAudioUnitErr_UnknownFileType:
+        errorText = "Audio Unit: Unknown File Type";
+        result = paInternalError; break;
+    case kAudioUnitErr_FileNotSpecified:
+        errorText = "Audio Unit: File Not Specified";
+        result = paInternalError; break;
+    case kAudioUnitErr_FormatNotSupported:
+        errorText = "Audio Unit: Format Not Supported";
+        result = paInternalError; break;
+    case kAudioUnitErr_Uninitialized:
+        errorText = "Audio Unit: Unitialized";
+        result = paInternalError; break;
+    case kAudioUnitErr_InvalidScope:
+        errorText = "Audio Unit: Invalid Scope";
+        result = paInternalError; break;
+    case kAudioUnitErr_PropertyNotWritable:
+        errorText = "Audio Unit: PropertyNotWritable";
+        result = paInternalError; break;
+    case kAudioUnitErr_InvalidPropertyValue:
+        errorText = "Audio Unit: Invalid Property Value";
+        result = paInternalError; break;
+    case kAudioUnitErr_PropertyNotInUse:
+        errorText = "Audio Unit: Property Not In Use";
+        result = paInternalError; break;
+    case kAudioUnitErr_Initialized:
+        errorText = "Audio Unit: Initialized";
+        result = paInternalError; break;
+    case kAudioUnitErr_InvalidOfflineRender:
+        errorText = "Audio Unit: Invalid Offline Render";
+        result = paInternalError; break;
+    case kAudioUnitErr_Unauthorized:
+        errorText = "Audio Unit: Unauthorized";
+        result = paInternalError; break;
+    case kAudioUnitErr_CannotDoInCurrentContext:
+        errorText = "Audio Unit: cannot do in current context";
+        result = paInternalError; break;
+    default:
+        errorText = "Unknown Error";
+        result = paInternalError;
+    }
+
+    if (isError)
+        errorType = "Error";
+    else
+        errorType = "Warning";
+
+    char str[20];
+    // see if it appears to be a 4-char-code
+    *(UInt32 *)(str + 1) = CFSwapInt32HostToBig(error);
+    if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4]))
+    {
+        str[0] = str[5] = '\'';
+        str[6] = '\0';
+    } else {
+        // no, format it as an integer
+        sprintf(str, "%d", (int)error);
+    }
+
+    DBUG(("%s on line %d: err='%s', msg=%s\n", errorType, line, str, errorText));
+
+    PaUtil_SetLastHostErrorInfo( paCoreAudio, error, errorText );
+
+    return result;
+}
+
+/*
+ * This function computes an appropriate ring buffer size given
+ * a requested latency (in seconds), sample rate and framesPerBuffer.
+ *
+ * The returned ringBufferSize is computed using the following
+ * constraints:
+ *   - it must be at least 4.
+ *   - it must be at least 3x framesPerBuffer.
+ *   - it must be at least 2x the suggestedLatency.
+ *   - it must be a power of 2.
+ * This function attempts to compute the minimum such size.
+ *
+ * FEEDBACK: too liberal/conservative/another way?
+ */
+long computeRingBufferSize( const PaStreamParameters *inputParameters,
+                                   const PaStreamParameters *outputParameters,
+                                   long inputFramesPerBuffer,
+                                   long outputFramesPerBuffer,
+                                   double sampleRate )
+{
+   long ringSize;
+   int index;
+   int i;
+   double latencyTimesChannelCount ;
+   long framesPerBufferTimesChannelCount ;
+
+   VVDBUG(( "computeRingBufferSize()\n" ));
+
+   assert( inputParameters || outputParameters );
+
+   if( outputParameters && inputParameters )
+   {
+      latencyTimesChannelCount = MAX(
+           inputParameters->suggestedLatency * inputParameters->channelCount,
+           outputParameters->suggestedLatency * outputParameters->channelCount );
+      framesPerBufferTimesChannelCount = MAX(
+           inputFramesPerBuffer * inputParameters->channelCount,
+           outputFramesPerBuffer * outputParameters->channelCount );
+   } 
+   else if( outputParameters )
+   {
+      latencyTimesChannelCount
+                = outputParameters->suggestedLatency * outputParameters->channelCount;
+      framesPerBufferTimesChannelCount
+                = outputFramesPerBuffer * outputParameters->channelCount;
+   }
+   else /* we have inputParameters  */
+   {
+      latencyTimesChannelCount
+                = inputParameters->suggestedLatency * inputParameters->channelCount;
+      framesPerBufferTimesChannelCount
+                = inputFramesPerBuffer * inputParameters->channelCount;
+   }
+
+   ringSize = (long) ( latencyTimesChannelCount * sampleRate * 2 + .5);
+   VDBUG( ( "suggested latency * channelCount: %d\n", (int) (latencyTimesChannelCount*sampleRate) ) );
+   if( ringSize < framesPerBufferTimesChannelCount * 3 )
+      ringSize = framesPerBufferTimesChannelCount * 3 ;
+   VDBUG(("framesPerBuffer*channelCount:%d\n",(int)framesPerBufferTimesChannelCount));
+   VDBUG(("Ringbuffer size (1): %d\n", (int)ringSize ));
+
+   /* make sure it's at least 4 */
+   ringSize = MAX( ringSize, 4 );
+
+   /* round up to the next power of 2 */
+   index = -1;
+   for( i=0; i<sizeof(long)*8; ++i )
+      if( ringSize >> i & 0x01 )
+         index = i;
+   assert( index > 0 );
+   if( ringSize <= ( 0x01 << index ) )
+      ringSize = 0x01 << index ;
+   else
+      ringSize = 0x01 << ( index + 1 );
+
+   VDBUG(( "Final Ringbuffer size (2): %d\n", (int)ringSize ));
+   return ringSize;
+}
+
+
+/*
+ * Durring testing of core audio, I found that serious crashes could occur
+ * if properties such as sample rate were changed multiple times in rapid
+ * succession. The function below has some fancy logic to make sure that changes
+ * are acknowledged before another is requested. That seems to help a lot.
+ */
+
+OSStatus propertyProc(
+    AudioDeviceID inDevice, 
+    UInt32 inChannel, 
+    Boolean isInput, 
+    AudioDevicePropertyID inPropertyID, 
+    void* inClientData )
+{
+   MutexAndBool *mab = (MutexAndBool *) inClientData;
+   mab->once = TRUE;
+   pthread_mutex_unlock( &(mab->mutex) );
+   return noErr;
+}
+
+/* sets the value of the given property and waits for the change to 
+   be acknowledged, and returns the final value, which is not guaranteed
+   by this function to be the same as the desired value. Obviously, this
+   function can only be used for data whose input and output are the
+   same size and format, and their size and format are known in advance.*/
+PaError AudioDeviceSetPropertyNowAndWaitForChange(
+    AudioDeviceID inDevice,
+    UInt32 inChannel, 
+    Boolean isInput, 
+    AudioDevicePropertyID inPropertyID,
+    UInt32 inPropertyDataSize, 
+    const void *inPropertyData,
+    void *outPropertyData )
+{
+   OSStatus macErr;
+   int unixErr;
+   MutexAndBool mab;
+   UInt32 outPropertyDataSize = inPropertyDataSize;
+
+   /* First, see if it already has that value. If so, return. */
+   macErr = AudioDeviceGetProperty( inDevice, inChannel,
+                                 isInput, inPropertyID, 
+                                 &outPropertyDataSize, outPropertyData );
+   if( macErr )
+      goto failMac2;
+   if( inPropertyDataSize!=outPropertyDataSize )
+      return paInternalError;
+   if( 0==memcmp( outPropertyData, inPropertyData, outPropertyDataSize ) )
+      return paNoError;
+
+   /* setup and lock mutex */
+   mab.once = FALSE;
+   unixErr = pthread_mutex_init( &mab.mutex, NULL );
+   if( unixErr )
+      goto failUnix2;
+   unixErr = pthread_mutex_lock( &mab.mutex );
+   if( unixErr )
+      goto failUnix;
+
+   /* add property listener */
+   macErr = AudioDeviceAddPropertyListener( inDevice, inChannel, isInput,
+                                   inPropertyID, propertyProc,
+                                   &mab ); 
+   if( macErr )
+      goto failMac;
+   /* set property */
+   macErr  = AudioDeviceSetProperty( inDevice, NULL, inChannel,
+                                 isInput, inPropertyID,
+                                 inPropertyDataSize, inPropertyData );
+   if( macErr ) {
+      /* we couldn't set the property, so we'll just unlock the mutex
+         and move on. */
+      pthread_mutex_unlock( &mab.mutex );
+   }
+
+   /* wait for property to change */                      
+   unixErr = pthread_mutex_lock( &mab.mutex );
+   if( unixErr )
+      goto failUnix;
+
+   /* now read the property back out */
+   macErr = AudioDeviceGetProperty( inDevice, inChannel,
+                                 isInput, inPropertyID, 
+                                 &outPropertyDataSize, outPropertyData );
+   if( macErr )
+      goto failMac;
+   /* cleanup */
+   AudioDeviceRemovePropertyListener( inDevice, inChannel, isInput,
+                                      inPropertyID, propertyProc );
+   unixErr = pthread_mutex_unlock( &mab.mutex );
+   if( unixErr )
+      goto failUnix2;
+   unixErr = pthread_mutex_destroy( &mab.mutex );
+   if( unixErr )
+      goto failUnix2;
+
+   return paNoError;
+
+ failUnix:
+   pthread_mutex_destroy( &mab.mutex );
+   AudioDeviceRemovePropertyListener( inDevice, inChannel, isInput,
+                                      inPropertyID, propertyProc );
+
+ failUnix2:
+   DBUG( ("Error #%d while setting a device property: %s\n", unixErr, strerror( unixErr ) ) );
+   return paUnanticipatedHostError;
+
+ failMac:
+   pthread_mutex_destroy( &mab.mutex );
+   AudioDeviceRemovePropertyListener( inDevice, inChannel, isInput,
+                                      inPropertyID, propertyProc );
+ failMac2:
+   return ERR( macErr );
+}
+
+/*
+ * Sets the sample rate the HAL device.
+ * if requireExact: set the sample rate or fail.
+ *
+ * otherwise      : set the exact sample rate.
+ *             If that fails, check for available sample rates, and choose one
+ *             higher than the requested rate. If there isn't a higher one,
+ *             just use the highest available.
+ */
+PaError setBestSampleRateForDevice( const AudioDeviceID device,
+                                    const bool isOutput,
+                                    const bool requireExact,
+                                    const Float64 desiredSrate )
+{
+   /*FIXME: changing the sample rate is disruptive to other programs using the
+            device, so it might be good to offer a custom flag to not change the
+            sample rate and just do conversion. (in my casual tests, there is
+            no disruption unless the sample rate really does need to change) */
+   const bool isInput = isOutput ? 0 : 1;
+   Float64 srate;
+   UInt32 propsize = sizeof( Float64 );
+   OSErr err;
+   AudioValueRange *ranges;
+   int i=0;
+   Float64 max  = -1; /*the maximum rate available*/
+   Float64 best = -1; /*the lowest sample rate still greater than desired rate*/
+   VDBUG(("Setting sample rate for device %ld to %g.\n",device,(float)desiredSrate));
+
+   /* -- try setting the sample rate -- */
+   err = AudioDeviceSetPropertyNowAndWaitForChange(
+                                 device, 0, isInput,
+                                 kAudioDevicePropertyNominalSampleRate,
+                                 propsize, &desiredSrate, &srate );
+   if( err )
+      return err;
+
+   /* -- if the rate agrees, and we got no errors, we are done -- */
+   if( !err && srate == desiredSrate )
+      return paNoError;
+   /* -- we've failed if the rates disagree and we are setting input -- */
+   if( requireExact )
+      return paInvalidSampleRate;
+
+   /* -- generate a list of available sample rates -- */
+   err = AudioDeviceGetPropertyInfo( device, 0, isInput,
+                                kAudioDevicePropertyAvailableNominalSampleRates,
+                                &propsize, NULL );
+   if( err )
+      return ERR( err );
+   ranges = (AudioValueRange *)calloc( 1, propsize );
+   if( !ranges )
+      return paInsufficientMemory;
+   err = AudioDeviceGetProperty( device, 0, isInput,
+                                kAudioDevicePropertyAvailableNominalSampleRates,
+                                &propsize, ranges );
+   if( err )
+   {
+      free( ranges );
+      return ERR( err );
+   }
+   VDBUG(("Requested sample rate of %g was not available.\n", (float)desiredSrate));
+   VDBUG(("%lu Available Sample Rates are:\n",propsize/sizeof(AudioValueRange)));
+#ifdef MAC_CORE_VERBOSE_DEBUG
+   for( i=0; i<propsize/sizeof(AudioValueRange); ++i )
+      VDBUG( ("\t%g-%g\n",
+              (float) ranges[i].mMinimum,
+              (float) ranges[i].mMaximum ) );
+#endif
+   VDBUG(("-----\n"));
+   
+   /* -- now pick the best available sample rate -- */
+   for( i=0; i<propsize/sizeof(AudioValueRange); ++i )
+   {
+      if( ranges[i].mMaximum > max ) max = ranges[i].mMaximum;
+      if( ranges[i].mMinimum > desiredSrate ) {
+         if( best < 0 )
+            best = ranges[i].mMinimum;
+         else if( ranges[i].mMinimum < best )
+            best = ranges[i].mMinimum;
+      }
+   }
+   if( best < 0 )
+      best = max;
+   VDBUG( ("Maximum Rate %g. best is %g.\n", max, best ) );
+   free( ranges );
+
+   /* -- set the sample rate -- */
+   propsize = sizeof( best );
+   err = AudioDeviceSetPropertyNowAndWaitForChange(
+                                 device, 0, isInput,
+                                 kAudioDevicePropertyNominalSampleRate,
+                                 propsize, &best, &srate );
+   if( err )
+      return err;
+
+   if( err )
+      return ERR( err );
+   /* -- if the set rate matches, we are done -- */
+   if( srate == best )
+      return paNoError;
+
+   /* -- otherwise, something wierd happened: we didn't set the rate, and we got no errors. Just bail. */
+   return paInternalError;
+}
+
+
+/*
+   Attempts to set the requestedFramesPerBuffer. If it can't set the exact
+   value, it settles for something smaller if available. If nothing smaller
+   is available, it uses the smallest available size.
+   actualFramesPerBuffer will be set to the actual value on successful return.
+   OK to pass NULL to actualFramesPerBuffer.
+   The logic is very simmilar too setBestSampleRate only failure here is
+   not usually catastrophic.
+*/
+PaError setBestFramesPerBuffer( const AudioDeviceID device,
+                                const bool isOutput,
+                                UInt32 requestedFramesPerBuffer, 
+                                UInt32 *actualFramesPerBuffer )
+{
+   UInt32 afpb;
+   const bool isInput = !isOutput;
+   UInt32 propsize = sizeof(UInt32);
+   OSErr err;
+   Float64 min  = -1; /*the min blocksize*/
+   Float64 best = -1; /*the best blocksize*/
+   int i=0;
+   AudioValueRange *ranges;
+
+   if( actualFramesPerBuffer == NULL )
+      actualFramesPerBuffer = &afpb;
+
+
+   /* -- try and set exact FPB -- */
+   err = AudioDeviceSetProperty( device, NULL, 0, isInput,
+                                 kAudioDevicePropertyBufferFrameSize,
+                                 propsize, &requestedFramesPerBuffer);
+   err = AudioDeviceGetProperty( device, 0, isInput,
+                           kAudioDevicePropertyBufferFrameSize,
+                           &propsize, actualFramesPerBuffer);
+   if( err )
+      return ERR( err );
+   if( *actualFramesPerBuffer == requestedFramesPerBuffer )
+      return paNoError; /* we are done */
+
+   /* -- fetch available block sizes -- */
+   err = AudioDeviceGetPropertyInfo( device, 0, isInput,
+                           kAudioDevicePropertyBufferSizeRange,
+                           &propsize, NULL );
+   if( err )
+      return ERR( err );
+   ranges = (AudioValueRange *)calloc( 1, propsize );
+   if( !ranges )
+      return paInsufficientMemory;
+   err = AudioDeviceGetProperty( device, 0, isInput,
+                                kAudioDevicePropertyBufferSizeRange,
+                                &propsize, ranges );
+   if( err )
+   {
+      free( ranges );
+      return ERR( err );
+   }
+   VDBUG(("Requested block size of %lu was not available.\n",
+          requestedFramesPerBuffer ));
+   VDBUG(("%lu Available block sizes are:\n",propsize/sizeof(AudioValueRange)));
+#ifdef MAC_CORE_VERBOSE_DEBUG
+   for( i=0; i<propsize/sizeof(AudioValueRange); ++i )
+      VDBUG( ("\t%g-%g\n",
+              (float) ranges[i].mMinimum,
+              (float) ranges[i].mMaximum ) );
+#endif
+   VDBUG(("-----\n"));
+   
+   /* --- now pick the best available framesPerBuffer -- */
+   for( i=0; i<propsize/sizeof(AudioValueRange); ++i )
+   {
+      if( min == -1 || ranges[i].mMinimum < min ) min = ranges[i].mMinimum;
+      if( ranges[i].mMaximum < requestedFramesPerBuffer ) {
+         if( best < 0 )
+            best = ranges[i].mMaximum;
+         else if( ranges[i].mMaximum > best )
+            best = ranges[i].mMaximum;
+      }
+   }
+   if( best == -1 )
+      best = min;
+   VDBUG( ("Minimum FPB  %g. best is %g.\n", min, best ) );
+   free( ranges );
+
+   /* --- set the buffer size (ignore errors) -- */
+   requestedFramesPerBuffer = (UInt32) best ;
+   propsize = sizeof( UInt32 );
+   err = AudioDeviceSetProperty( device, NULL, 0, isInput,
+                                 kAudioDevicePropertyBufferSize,
+                                 propsize, &requestedFramesPerBuffer );
+   /* --- read the property to check that it was set -- */
+   err = AudioDeviceGetProperty( device, 0, isInput,
+                                 kAudioDevicePropertyBufferSize,
+                                 &propsize, actualFramesPerBuffer );
+
+   if( err )
+      return ERR( err );
+
+   return paNoError;
+}
diff --git a/external/portaudio2007/pa_mac_core_utilities.h b/external/portaudio2007/pa_mac_core_utilities.h
new file mode 100644
index 0000000..0b72b26
--- /dev/null
+++ b/external/portaudio2007/pa_mac_core_utilities.h
@@ -0,0 +1,205 @@
+/*
+ * Helper and utility functions for pa_mac_core.c (Apple AUHAL implementation)
+ *
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Written by Bjorn Roche of XO Audio LLC, from PA skeleton code.
+ * Portions copied from code by Dominic Mazzoni (who wrote a HAL implementation)
+ *
+ * Dominic's code was based on code by Phil Burk, Darren Gibbs,
+ * Gord Peters, Stephane Letz, and Greg Pfiel.
+ *
+ * The following people also deserve acknowledgements:
+ *
+ * Olivier Tristan for feedback and testing
+ * Glenn Zelniker and Z-Systems engineering for sponsoring the Blocking I/O
+ * interface.
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostapi_src
+*/
+
+#ifndef PA_MAC_CORE_UTILITIES_H__
+#define PA_MAC_CORE_UTILITIES_H__
+
+#include <pthread.h>
+#include "portaudio.h"
+#include "pa_util.h"
+#include <AudioUnit/AudioUnit.h>
+#include <AudioToolbox/AudioToolbox.h>
+
+#ifndef MIN
+#define MIN(a, b)  (((a)<(b))?(a):(b))
+#endif
+
+#ifndef MAX
+#define MAX(a, b)  (((a)<(b))?(b):(a))
+#endif
+
+#define ERR(mac_error) PaMacCore_SetError(mac_error, __LINE__, 1 ) 
+#define WARNING(mac_error) PaMacCore_SetError(mac_error, __LINE__, 0 )
+
+
+/* Help keep track of AUHAL element numbers */
+#define INPUT_ELEMENT  (1)
+#define OUTPUT_ELEMENT (0)
+
+/* Normal level of debugging: fine for most apps that don't mind the occational warning being printf'ed */
+/*
+ */
+#define MAC_CORE_DEBUG
+#ifdef MAC_CORE_DEBUG
+# define DBUG(MSG) do { printf("||PaMacCore (AUHAL)|| "); printf MSG ; fflush(stdout); } while(0)
+#else
+# define DBUG(MSG)
+#endif
+
+/* Verbose Debugging: useful for developement */
+/*
+#define MAC_CORE_VERBOSE_DEBUG
+*/
+#ifdef MAC_CORE_VERBOSE_DEBUG
+# define VDBUG(MSG) do { printf("||PaMacCore (v )|| "); printf MSG ; fflush(stdout); } while(0)
+#else
+# define VDBUG(MSG)
+#endif
+
+/* Very Verbose Debugging: Traces every call. */
+/*
+#define MAC_CORE_VERY_VERBOSE_DEBUG
+ */
+#ifdef MAC_CORE_VERY_VERBOSE_DEBUG
+# define VVDBUG(MSG) do { printf("||PaMacCore (vv)|| "); printf MSG ; fflush(stdout); } while(0)
+#else
+# define VVDBUG(MSG)
+#endif
+
+
+
+
+
+#define UNIX_ERR(err) PaMacCore_SetUnixError( err, __LINE__ )
+
+PaError PaMacCore_SetUnixError( int err, int line );
+
+/*
+ * Translates MacOS generated errors into PaErrors
+ */
+PaError PaMacCore_SetError(OSStatus error, int line, int isError);
+
+/*
+ * This function computes an appropriate ring buffer size given
+ * a requested latency (in seconds), sample rate and framesPerBuffer.
+ *
+ * The returned ringBufferSize is computed using the following
+ * constraints:
+ *   - it must be at least 4.
+ *   - it must be at least 3x framesPerBuffer.
+ *   - it must be at least 2x the suggestedLatency.
+ *   - it must be a power of 2.
+ * This function attempts to compute the minimum such size.
+ *
+ */
+long computeRingBufferSize( const PaStreamParameters *inputParameters,
+                                   const PaStreamParameters *outputParameters,
+                                   long inputFramesPerBuffer,
+                                   long outputFramesPerBuffer,
+                                   double sampleRate );
+
+/*
+ * Durring testing of core audio, I found that serious crashes could occur
+ * if properties such as sample rate were changed multiple times in rapid
+ * succession. The function below has some fancy logic to make sure that changes
+ * are acknowledged before another is requested. That seems to help a lot.
+ */
+
+typedef struct {
+   bool once; /* I didn't end up using this. bdr */
+   pthread_mutex_t mutex;
+} MutexAndBool ;
+
+OSStatus propertyProc(
+    AudioDeviceID inDevice, 
+    UInt32 inChannel, 
+    Boolean isInput, 
+    AudioDevicePropertyID inPropertyID, 
+    void* inClientData );
+
+/* sets the value of the given property and waits for the change to 
+   be acknowledged, and returns the final value, which is not guaranteed
+   by this function to be the same as the desired value. Obviously, this
+   function can only be used for data whose input and output are the
+   same size and format, and their size and format are known in advance.*/
+PaError AudioDeviceSetPropertyNowAndWaitForChange(
+    AudioDeviceID inDevice,
+    UInt32 inChannel, 
+    Boolean isInput, 
+    AudioDevicePropertyID inPropertyID,
+    UInt32 inPropertyDataSize, 
+    const void *inPropertyData,
+    void *outPropertyData );
+
+/*
+ * Sets the sample rate the HAL device.
+ * if requireExact: set the sample rate or fail.
+ *
+ * otherwise      : set the exact sample rate.
+ *             If that fails, check for available sample rates, and choose one
+ *             higher than the requested rate. If there isn't a higher one,
+ *             just use the highest available.
+ */
+PaError setBestSampleRateForDevice( const AudioDeviceID device,
+                                    const bool isOutput,
+                                    const bool requireExact,
+                                    const Float64 desiredSrate );
+/*
+   Attempts to set the requestedFramesPerBuffer. If it can't set the exact
+   value, it settles for something smaller if available. If nothing smaller
+   is available, it uses the smallest available size.
+   actualFramesPerBuffer will be set to the actual value on successful return.
+   OK to pass NULL to actualFramesPerBuffer.
+   The logic is very simmilar too setBestSampleRate only failure here is
+   not usually catastrophic.
+*/
+PaError setBestFramesPerBuffer( const AudioDeviceID device,
+                                const bool isOutput,
+                                UInt32 requestedFramesPerBuffer, 
+                                UInt32 *actualFramesPerBuffer );
+#endif /* PA_MAC_CORE_UTILITIES_H__*/
diff --git a/external/portaudio2007/pa_mac_hostapis.c b/external/portaudio2007/pa_mac_hostapis.c
new file mode 100644
index 0000000..23e231b
--- /dev/null
+++ b/external/portaudio2007/pa_mac_hostapis.c
@@ -0,0 +1,71 @@
+/*
+ * $Id: pa_mac_hostapis.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library Macintosh initialization table
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup macosx_src
+Mac OS host API initialization function table.
+*/
+
+
+#include "pa_hostapi.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+    
+    PaError PaSkeleton_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+    PaError PaMacCore_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+    PaError PaMacSm_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+    PaError PaJack_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+    PaError PaMacAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+    
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+PaUtilHostApiInitializer *paHostApiInitializers[] =
+{
+    PaMacCore_Initialize,
+    
+    0   /* NULL terminated array */
+};
+
+
+int paDefaultHostApiIndex = 0;
diff --git a/external/portaudio2007/pa_mac_util.c b/external/portaudio2007/pa_mac_util.c
new file mode 100644
index 0000000..4542323
--- /dev/null
+++ b/external/portaudio2007/pa_mac_util.c
@@ -0,0 +1,142 @@
+/*
+ * $Id: pa_unix_util.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * UNIX platform-specific support functions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup unix_src
+*/
+ 
+#include <pthread.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sys/time.h>
+#include <assert.h>
+#include <string.h> /* For memset */
+#include <math.h>
+#include <errno.h>
+
+#include "pa_util.h"
+//#include "pa_mac_util.h"
+
+/*
+   Track memory allocations to avoid leaks.
+ */
+
+#if PA_TRACK_MEMORY
+static int numAllocations_ = 0;
+#endif
+
+
+void *PaUtil_AllocateMemory( long size )
+{
+    void *result = malloc( size );
+
+#if PA_TRACK_MEMORY
+    if( result != NULL ) numAllocations_ += 1;
+#endif
+    return result;
+}
+
+
+void PaUtil_FreeMemory( void *block )
+{
+    if( block != NULL )
+    {
+        free( block );
+#if PA_TRACK_MEMORY
+        numAllocations_ -= 1;
+#endif
+
+    }
+}
+
+
+int PaUtil_CountCurrentlyAllocatedBlocks( void )
+{
+#if PA_TRACK_MEMORY
+    return numAllocations_;
+#else
+    return 0;
+#endif
+}
+
+
+void Pa_Sleep( long msec )
+{
+#ifdef HAVE_NANOSLEEP
+    struct timespec req = {0}, rem = {0};
+    PaTime time = msec / 1.e3;
+    req.tv_sec = (time_t)time;
+    assert(time - req.tv_sec < 1.0);
+    req.tv_nsec = (long)((time - req.tv_sec) * 1.e9);
+    nanosleep(&req, &rem);
+    /* XXX: Try sleeping the remaining time (contained in rem) if interrupted by a signal? */
+#else
+    while( msec > 999 )     /* For OpenBSD and IRIX, argument */
+        {                   /* to usleep must be < 1000000.   */
+        usleep( 999000 );
+        msec -= 999;
+        }
+    usleep( msec * 1000 );
+#endif
+}
+
+/*            *** NOT USED YET: ***
+static int usePerformanceCounter_;
+static double microsecondsPerTick_;
+*/
+
+void PaUtil_InitializeClock( void )
+{
+    /* TODO */
+}
+
+
+PaTime PaUtil_GetTime( void )
+{
+#ifdef HAVE_CLOCK_GETTIME
+    struct timespec tp;
+    clock_gettime(CLOCK_REALTIME, &tp);
+    return (PaTime)(tp.tv_sec + tp.tv_nsec / 1.e9);
+#else
+    struct timeval tv;
+    gettimeofday( &tv, NULL );
+    return (PaTime) tv.tv_usec / 1000000. + tv.tv_sec;
+#endif
+}
diff --git a/external/portaudio2007/pa_mac_util.h b/external/portaudio2007/pa_mac_util.h
new file mode 100644
index 0000000..cd78a9d
--- /dev/null
+++ b/external/portaudio2007/pa_mac_util.h
@@ -0,0 +1,222 @@
+/*
+ * $Id: pa_unix_util.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * UNIX platform-specific support functions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup unix_src
+*/
+
+#ifndef PA_UNIX_UTIL_H
+#define PA_UNIX_UTIL_H
+
+#include "pa_cpuload.h"
+#include <assert.h>
+#include <pthread.h>
+#include <signal.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#define PA_MIN(x,y) ( (x) < (y) ? (x) : (y) )
+#define PA_MAX(x,y) ( (x) > (y) ? (x) : (y) )
+
+/* Utilize GCC branch prediction for error tests */
+#if defined __GNUC__ && __GNUC__ >= 3
+#define UNLIKELY(expr) __builtin_expect( (expr), 0 )
+#else
+#define UNLIKELY(expr) (expr)
+#endif
+
+#define STRINGIZE_HELPER(expr) #expr
+#define STRINGIZE(expr) STRINGIZE_HELPER(expr)
+
+#define PA_UNLESS(expr, code) \
+    do { \
+        if( UNLIKELY( (expr) == 0 ) ) \
+        { \
+            PaUtil_DebugPrint(( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" )); \
+            result = (code); \
+            goto error; \
+        } \
+    } while (0);
+
+static PaError paUtilErr_;          /* Used with PA_ENSURE */
+
+/* Check PaError */
+#define PA_ENSURE(expr) \
+    do { \
+        if( UNLIKELY( (paUtilErr_ = (expr)) < paNoError ) ) \
+        { \
+            PaUtil_DebugPrint(( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" )); \
+            result = paUtilErr_; \
+            goto error; \
+        } \
+    } while (0);
+
+#define PA_ASSERT_CALL(expr, success) \
+    paUtilErr_ = (expr); \
+    assert( success == paUtilErr_ );
+
+#define PA_ENSURE_SYSTEM(expr, success) \
+    do { \
+        if( UNLIKELY( (paUtilErr_ = (expr)) != success ) ) \
+        { \
+            /* PaUtil_SetLastHostErrorInfo should only be used in the main thread */ \
+            if( pthread_equal(pthread_self(), paUnixMainThread) ) \
+            { \
+                PaUtil_SetLastHostErrorInfo( paALSA, paUtilErr_, strerror( paUtilErr_ ) ); \
+            } \
+            PaUtil_DebugPrint( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" ); \
+            result = paUnanticipatedHostError; \
+            goto error; \
+        } \
+    } while( 0 );
+
+typedef struct {
+    pthread_t callbackThread;
+} PaUtilThreading;
+
+PaError PaUtil_InitializeThreading( PaUtilThreading *threading );
+void PaUtil_TerminateThreading( PaUtilThreading *threading );
+PaError PaUtil_StartThreading( PaUtilThreading *threading, void *(*threadRoutine)(void *), void *data );
+PaError PaUtil_CancelThreading( PaUtilThreading *threading, int wait, PaError *exitResult );
+
+/* State accessed by utility functions */
+
+/*
+void PaUnix_SetRealtimeScheduling( int rt );
+
+void PaUtil_InitializeThreading( PaUtilThreading *th, PaUtilCpuLoadMeasurer *clm );
+
+PaError PaUtil_CreateCallbackThread( PaUtilThreading *th, void *(*CallbackThreadFunc)( void * ), PaStream *s );
+
+PaError PaUtil_KillCallbackThread( PaUtilThreading *th, PaError *exitResult );
+
+void PaUtil_CallbackUpdate( PaUtilThreading *th );
+*/
+
+extern pthread_t paUnixMainThread;
+
+typedef struct
+{
+    pthread_mutex_t mtx;
+} PaUnixMutex;
+
+PaError PaUnixMutex_Initialize( PaUnixMutex* self );
+PaError PaUnixMutex_Terminate( PaUnixMutex* self );
+PaError PaUnixMutex_Lock( PaUnixMutex* self );
+PaError PaUnixMutex_Unlock( PaUnixMutex* self );
+
+typedef struct
+{
+    pthread_t thread;
+    int parentWaiting;
+    int stopRequested;
+    int locked;
+    PaUnixMutex mtx;
+    pthread_cond_t cond;
+    volatile sig_atomic_t stopRequest;
+} PaUnixThread;
+
+/** Initialize global threading state.
+ */
+PaError PaUnixThreading_Initialize();
+
+/** Perish, passing on eventual error code.
+ *
+ * A thin wrapper around pthread_exit, will automatically pass on any error code to the joining thread.
+ * If the result indicates an error, i.e. it is not equal to paNoError, this function will automatically
+ * allocate a pointer so the error is passed on with pthread_exit. If the result indicates that all is
+ * well however, only a NULL pointer will be handed to pthread_exit. Thus, the joining thread should
+ * check whether a non-NULL result pointer is obtained from pthread_join and make sure to free it.
+ * @param result: The error code to pass on to the joining thread.
+ */
+#define PaUnixThreading_EXIT(result) \
+    do { \
+        PaError* pres = NULL; \
+        if( paNoError != (result) ) \
+        { \
+            pres = malloc( sizeof (PaError) ); \
+            *pres = (result); \
+        } \
+        pthread_exit( pres ); \
+    } while (0);
+
+/** Spawn a thread.
+ *
+ * Intended for spawning the callback thread from the main thread. This function can even block (for a certain
+ * time or indefinitely) untill notified by the callback thread (using PaUnixThread_NotifyParent), which can be
+ * useful in order to make sure that callback has commenced before returning from Pa_StartStream.
+ * @param threadFunc: The function to be executed in the child thread.
+ * @param waitForChild: If not 0, wait for child thread to call PaUnixThread_NotifyParent. Less than 0 means
+ * wait for ever, greater than 0 wait for the specified time.
+ * @return: If timed out waiting on child, paTimedOut.
+ */
+PaError PaUnixThread_New( PaUnixThread* self, void* (*threadFunc)( void* ), void* threadArg, PaTime waitForChild );
+
+/** Terminate thread.
+ *
+ * @param wait: If true, request that background thread stop and wait untill it does, else cancel it.
+ * @param exitResult: If non-null this will upon return contain the exit status of the thread.
+ */
+PaError PaUnixThread_Terminate( PaUnixThread* self, int wait, PaError* exitResult );
+
+/** Prepare to notify waiting parent thread.
+ *
+ * An internal lock must be held before the parent is notified in PaUnixThread_NotifyParent, call this to
+ * acquire it beforehand.
+ * @return: If parent is not waiting, paInternalError.
+ */
+PaError PaUnixThread_PrepareNotify( PaUnixThread* self );
+
+/** Notify waiting parent thread.
+ *
+ * @return: If parent timed out waiting, paTimedOut. If parent was never waiting, paInternalError.
+ */
+PaError PaUnixThread_NotifyParent( PaUnixThread* self );
+
+/** Has the parent thread requested this thread to stop?
+ */
+int PaUnixThread_StopRequested( PaUnixThread* self );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif
diff --git a/external/portaudio2007/pa_process.c b/external/portaudio2007/pa_process.c
new file mode 100644
index 0000000..59bf434
--- /dev/null
+++ b/external/portaudio2007/pa_process.c
@@ -0,0 +1,1772 @@
+/*
+ * $Id: pa_process.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * streamCallback <-> host buffer processing adapter
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Buffer Processor implementation.
+    
+ The code in this file is not optimised yet - although it's not clear that
+ it needs to be. there may appear to be redundancies
+ that could be factored into common functions, but the redundanceis are left
+ intentionally as each appearance may have different optimisation possibilities.
+
+ The optimisations which are planned involve only converting data in-place
+ where possible, rather than copying to the temp buffer(s).
+
+ Note that in the extreme case of being able to convert in-place, and there
+ being no conversion necessary there should be some code which short-circuits
+ the operation.
+
+    @todo Consider cache tilings for intereave<->deinterleave.
+
+    @todo implement timeInfo->currentTime int PaUtil_BeginBufferProcessing()
+
+    @todo specify and implement some kind of logical policy for handling the
+        underflow and overflow stream flags when the underflow/overflow overlaps
+        multiple user buffers/callbacks.
+
+	@todo provide support for priming the buffers with data from the callback.
+        The client interface is now implemented through PaUtil_SetNoInput()
+        which sets bp->hostInputChannels[0][0].data to zero. However this is
+        currently only implemented in NonAdaptingProcess(). It shouldn't be
+        needed for AdaptingInputOnlyProcess() (no priming should ever be
+        requested for AdaptingInputOnlyProcess()).
+        Not sure if additional work should be required to make it work with
+        AdaptingOutputOnlyProcess, but it definitely is required for
+        AdaptingProcess.
+
+    @todo implement PaUtil_SetNoOutput for AdaptingProcess
+
+    @todo don't allocate temp buffers for blocking streams unless they are
+        needed. At the moment they are needed, but perhaps for host APIs
+        where the implementation passes a buffer to the host they could be
+        used.
+*/
+
+
+#include <assert.h>
+#include <string.h> /* memset() */
+
+#include "pa_process.h"
+#include "pa_util.h"
+
+
+#define PA_FRAMES_PER_TEMP_BUFFER_WHEN_HOST_BUFFER_SIZE_IS_UNKNOWN_    1024
+
+#define PA_MIN_( a, b ) ( ((a)<(b)) ? (a) : (b) )
+
+
+/* greatest common divisor - PGCD in French */
+static unsigned long GCD( unsigned long a, unsigned long b )
+{
+    return (b==0) ? a : GCD( b, a%b);
+}
+
+/* least common multiple - PPCM in French */
+static unsigned long LCM( unsigned long a, unsigned long b )
+{
+    return (a*b) / GCD(a,b);
+}
+
+#define PA_MAX_( a, b ) (((a) > (b)) ? (a) : (b))
+
+static unsigned long CalculateFrameShift( unsigned long M, unsigned long N )
+{
+    unsigned long result = 0;
+    unsigned long i;
+    unsigned long lcm;
+
+    assert( M > 0 );
+    assert( N > 0 );
+
+    lcm = LCM( M, N );
+    for( i = M; i < lcm; i += M )
+        result = PA_MAX_( result, i % N );
+
+    return result;
+}
+
+
+PaError PaUtil_InitializeBufferProcessor( PaUtilBufferProcessor* bp,
+        int inputChannelCount, PaSampleFormat userInputSampleFormat,
+        PaSampleFormat hostInputSampleFormat,
+        int outputChannelCount, PaSampleFormat userOutputSampleFormat,
+        PaSampleFormat hostOutputSampleFormat,
+        double sampleRate,
+        PaStreamFlags streamFlags,
+        unsigned long framesPerUserBuffer,
+        unsigned long framesPerHostBuffer,
+        PaUtilHostBufferSizeMode hostBufferSizeMode,
+        PaStreamCallback *streamCallback, void *userData )
+{
+    PaError result = paNoError;
+    PaError bytesPerSample;
+    unsigned long tempInputBufferSize, tempOutputBufferSize;
+
+    if( streamFlags & paNeverDropInput )
+    {
+        /* paNeverDropInput is only valid for full-duplex callback streams, with an unspecified number of frames per buffer. */
+        if( !streamCallback || !(inputChannelCount > 0 && outputChannelCount > 0) ||
+                framesPerUserBuffer != paFramesPerBufferUnspecified )
+            return paInvalidFlag;
+    }
+
+    /* initialize buffer ptrs to zero so they can be freed if necessary in error */
+    bp->tempInputBuffer = 0;
+    bp->tempInputBufferPtrs = 0;
+    bp->tempOutputBuffer = 0;
+    bp->tempOutputBufferPtrs = 0;
+
+    bp->framesPerUserBuffer = framesPerUserBuffer;
+    bp->framesPerHostBuffer = framesPerHostBuffer;
+
+    bp->inputChannelCount = inputChannelCount;
+    bp->outputChannelCount = outputChannelCount;
+
+    bp->hostBufferSizeMode = hostBufferSizeMode;
+
+    bp->hostInputChannels[0] = bp->hostInputChannels[1] = 0;
+    bp->hostOutputChannels[0] = bp->hostOutputChannels[1] = 0;
+
+    if( framesPerUserBuffer == 0 ) /* streamCallback will accept any buffer size */
+    {
+        bp->useNonAdaptingProcess = 1;
+        bp->initialFramesInTempInputBuffer = 0;
+        bp->initialFramesInTempOutputBuffer = 0;
+
+        if( hostBufferSizeMode == paUtilFixedHostBufferSize
+                || hostBufferSizeMode == paUtilBoundedHostBufferSize )
+        {
+            bp->framesPerTempBuffer = framesPerHostBuffer;
+        }
+        else /* unknown host buffer size */
+        {
+             bp->framesPerTempBuffer = PA_FRAMES_PER_TEMP_BUFFER_WHEN_HOST_BUFFER_SIZE_IS_UNKNOWN_;
+        }
+    }
+    else
+    {
+        bp->framesPerTempBuffer = framesPerUserBuffer;
+
+        if( hostBufferSizeMode == paUtilFixedHostBufferSize
+                && framesPerHostBuffer % framesPerUserBuffer == 0 )
+        {
+            bp->useNonAdaptingProcess = 1;
+            bp->initialFramesInTempInputBuffer = 0;
+            bp->initialFramesInTempOutputBuffer = 0;
+        }
+        else
+        {
+            bp->useNonAdaptingProcess = 0;
+
+            if( inputChannelCount > 0 && outputChannelCount > 0 )
+            {
+                /* full duplex */
+                if( hostBufferSizeMode == paUtilFixedHostBufferSize )
+                {
+                    unsigned long frameShift =
+                        CalculateFrameShift( framesPerHostBuffer, framesPerUserBuffer );
+
+                    if( framesPerUserBuffer > framesPerHostBuffer )
+                    {
+                        bp->initialFramesInTempInputBuffer = frameShift;
+                        bp->initialFramesInTempOutputBuffer = 0;
+                    }
+                    else
+                    {
+                        bp->initialFramesInTempInputBuffer = 0;
+                        bp->initialFramesInTempOutputBuffer = frameShift;
+                    }
+                }
+                else /* variable host buffer size, add framesPerUserBuffer latency */
+                {
+                    bp->initialFramesInTempInputBuffer = 0;
+                    bp->initialFramesInTempOutputBuffer = framesPerUserBuffer;
+                }
+            }
+            else
+            {
+                /* half duplex */
+                bp->initialFramesInTempInputBuffer = 0;
+                bp->initialFramesInTempOutputBuffer = 0;
+            }
+        }
+    }
+
+
+    bp->framesInTempInputBuffer = bp->initialFramesInTempInputBuffer;
+    bp->framesInTempOutputBuffer = bp->initialFramesInTempOutputBuffer;
+
+    
+    if( inputChannelCount > 0 )
+    {
+        bytesPerSample = Pa_GetSampleSize( hostInputSampleFormat );
+        if( bytesPerSample > 0 )
+        {
+            bp->bytesPerHostInputSample = bytesPerSample;
+        }
+        else
+        {
+            result = bytesPerSample;
+            goto error;
+        }
+
+        bytesPerSample = Pa_GetSampleSize( userInputSampleFormat );
+        if( bytesPerSample > 0 )
+        {
+            bp->bytesPerUserInputSample = bytesPerSample;
+        }
+        else
+        {
+            result = bytesPerSample;
+            goto error;
+        }
+
+        bp->inputConverter =
+            PaUtil_SelectConverter( hostInputSampleFormat, userInputSampleFormat, streamFlags );
+
+        bp->inputZeroer = PaUtil_SelectZeroer( hostInputSampleFormat );
+            
+        bp->userInputIsInterleaved = (userInputSampleFormat & paNonInterleaved)?0:1;
+
+
+        tempInputBufferSize =
+            bp->framesPerTempBuffer * bp->bytesPerUserInputSample * inputChannelCount;
+         
+        bp->tempInputBuffer = PaUtil_AllocateMemory( tempInputBufferSize );
+        if( bp->tempInputBuffer == 0 )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+        
+        if( bp->framesInTempInputBuffer > 0 )
+            memset( bp->tempInputBuffer, 0, tempInputBufferSize );
+
+        if( userInputSampleFormat & paNonInterleaved )
+        {
+            bp->tempInputBufferPtrs =
+                (void **)PaUtil_AllocateMemory( sizeof(void*)*inputChannelCount );
+            if( bp->tempInputBufferPtrs == 0 )
+            {
+                result = paInsufficientMemory;
+                goto error;
+            }
+        }
+
+        bp->hostInputChannels[0] = (PaUtilChannelDescriptor*)
+                PaUtil_AllocateMemory( sizeof(PaUtilChannelDescriptor) * inputChannelCount * 2);
+        if( bp->hostInputChannels[0] == 0 )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        bp->hostInputChannels[1] = &bp->hostInputChannels[0][inputChannelCount];
+    }
+
+    if( outputChannelCount > 0 )
+    {
+        bytesPerSample = Pa_GetSampleSize( hostOutputSampleFormat );
+        if( bytesPerSample > 0 )
+        {
+            bp->bytesPerHostOutputSample = bytesPerSample;
+        }
+        else
+        {
+            result = bytesPerSample;
+            goto error;
+        }
+
+        bytesPerSample = Pa_GetSampleSize( userOutputSampleFormat );
+        if( bytesPerSample > 0 )
+        {
+            bp->bytesPerUserOutputSample = bytesPerSample;
+        }
+        else
+        {
+            result = bytesPerSample;
+            goto error;
+        }
+
+        bp->outputConverter =
+            PaUtil_SelectConverter( userOutputSampleFormat, hostOutputSampleFormat, streamFlags );
+
+        bp->outputZeroer = PaUtil_SelectZeroer( hostOutputSampleFormat );
+
+        bp->userOutputIsInterleaved = (userOutputSampleFormat & paNonInterleaved)?0:1;
+
+        tempOutputBufferSize =
+                bp->framesPerTempBuffer * bp->bytesPerUserOutputSample * outputChannelCount;
+
+        bp->tempOutputBuffer = PaUtil_AllocateMemory( tempOutputBufferSize );
+        if( bp->tempOutputBuffer == 0 )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        if( bp->framesInTempOutputBuffer > 0 )
+            memset( bp->tempOutputBuffer, 0, tempOutputBufferSize );
+        
+        if( userOutputSampleFormat & paNonInterleaved )
+        {
+            bp->tempOutputBufferPtrs =
+                (void **)PaUtil_AllocateMemory( sizeof(void*)*outputChannelCount );
+            if( bp->tempOutputBufferPtrs == 0 )
+            {
+                result = paInsufficientMemory;
+                goto error;
+            }
+        }
+
+        bp->hostOutputChannels[0] = (PaUtilChannelDescriptor*)
+                PaUtil_AllocateMemory( sizeof(PaUtilChannelDescriptor)*outputChannelCount * 2 );
+        if( bp->hostOutputChannels[0] == 0 )
+        {                                                                     
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        bp->hostOutputChannels[1] = &bp->hostOutputChannels[0][outputChannelCount];
+    }
+
+    PaUtil_InitializeTriangularDitherState( &bp->ditherGenerator );
+
+    bp->samplePeriod = 1. / sampleRate;
+
+    bp->streamCallback = streamCallback;
+    bp->userData = userData;
+
+    return result;
+
+error:
+    if( bp->tempInputBuffer )
+        PaUtil_FreeMemory( bp->tempInputBuffer );
+
+    if( bp->tempInputBufferPtrs )
+        PaUtil_FreeMemory( bp->tempInputBufferPtrs );
+
+    if( bp->hostInputChannels[0] )
+        PaUtil_FreeMemory( bp->hostInputChannels[0] );
+
+    if( bp->tempOutputBuffer )
+        PaUtil_FreeMemory( bp->tempOutputBuffer );
+
+    if( bp->tempOutputBufferPtrs )
+        PaUtil_FreeMemory( bp->tempOutputBufferPtrs );
+
+    if( bp->hostOutputChannels[0] )
+        PaUtil_FreeMemory( bp->hostOutputChannels[0] );
+
+    return result;
+}
+
+
+void PaUtil_TerminateBufferProcessor( PaUtilBufferProcessor* bp )
+{
+    if( bp->tempInputBuffer )
+        PaUtil_FreeMemory( bp->tempInputBuffer );
+
+    if( bp->tempInputBufferPtrs )
+        PaUtil_FreeMemory( bp->tempInputBufferPtrs );
+
+    if( bp->hostInputChannels[0] )
+        PaUtil_FreeMemory( bp->hostInputChannels[0] );
+        
+    if( bp->tempOutputBuffer )
+        PaUtil_FreeMemory( bp->tempOutputBuffer );
+
+    if( bp->tempOutputBufferPtrs )
+        PaUtil_FreeMemory( bp->tempOutputBufferPtrs );
+
+    if( bp->hostOutputChannels[0] )
+        PaUtil_FreeMemory( bp->hostOutputChannels[0] );
+}
+
+
+void PaUtil_ResetBufferProcessor( PaUtilBufferProcessor* bp )
+{
+    unsigned long tempInputBufferSize, tempOutputBufferSize;
+
+    bp->framesInTempInputBuffer = bp->initialFramesInTempInputBuffer;
+    bp->framesInTempOutputBuffer = bp->initialFramesInTempOutputBuffer;
+
+    if( bp->framesInTempInputBuffer > 0 )
+    {
+        tempInputBufferSize =
+            bp->framesPerTempBuffer * bp->bytesPerUserInputSample * bp->inputChannelCount;
+        memset( bp->tempInputBuffer, 0, tempInputBufferSize );
+    }
+
+    if( bp->framesInTempOutputBuffer > 0 )
+    {      
+        tempOutputBufferSize =
+            bp->framesPerTempBuffer * bp->bytesPerUserOutputSample * bp->outputChannelCount;
+        memset( bp->tempOutputBuffer, 0, tempOutputBufferSize );
+    }
+}
+
+
+unsigned long PaUtil_GetBufferProcessorInputLatency( PaUtilBufferProcessor* bp )
+{
+    return bp->initialFramesInTempInputBuffer;
+}
+
+
+unsigned long PaUtil_GetBufferProcessorOutputLatency( PaUtilBufferProcessor* bp )
+{
+    return bp->initialFramesInTempOutputBuffer;
+}
+
+
+void PaUtil_SetInputFrameCount( PaUtilBufferProcessor* bp,
+        unsigned long frameCount )
+{
+    if( frameCount == 0 )
+        bp->hostInputFrameCount[0] = bp->framesPerHostBuffer;
+    else
+        bp->hostInputFrameCount[0] = frameCount;
+}
+        
+
+void PaUtil_SetNoInput( PaUtilBufferProcessor* bp )
+{
+    assert( bp->inputChannelCount > 0 );
+
+    bp->hostInputChannels[0][0].data = 0;
+}
+
+
+void PaUtil_SetInputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data, unsigned int stride )
+{
+    assert( channel < bp->inputChannelCount );
+    
+    bp->hostInputChannels[0][channel].data = data;
+    bp->hostInputChannels[0][channel].stride = stride;
+}
+
+
+void PaUtil_SetInterleavedInputChannels( PaUtilBufferProcessor* bp,
+        unsigned int firstChannel, void *data, unsigned int channelCount )
+{
+    unsigned int i;
+    unsigned int channel = firstChannel;
+    unsigned char *p = (unsigned char*)data;
+
+    if( channelCount == 0 )
+        channelCount = bp->inputChannelCount;
+
+    assert( firstChannel < bp->inputChannelCount );
+    assert( firstChannel + channelCount <= bp->inputChannelCount );
+
+    for( i=0; i< channelCount; ++i )
+    {
+        bp->hostInputChannels[0][channel+i].data = p;
+        p += bp->bytesPerHostInputSample;
+        bp->hostInputChannels[0][channel+i].stride = channelCount;
+    }
+}
+
+
+void PaUtil_SetNonInterleavedInputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data )
+{
+    assert( channel < bp->inputChannelCount );
+    
+    bp->hostInputChannels[0][channel].data = data;
+    bp->hostInputChannels[0][channel].stride = 1;
+}
+
+
+void PaUtil_Set2ndInputFrameCount( PaUtilBufferProcessor* bp,
+        unsigned long frameCount )
+{
+    bp->hostInputFrameCount[1] = frameCount;
+}
+
+
+void PaUtil_Set2ndInputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data, unsigned int stride )
+{
+    assert( channel < bp->inputChannelCount );
+
+    bp->hostInputChannels[1][channel].data = data;
+    bp->hostInputChannels[1][channel].stride = stride;
+}
+
+
+void PaUtil_Set2ndInterleavedInputChannels( PaUtilBufferProcessor* bp,
+        unsigned int firstChannel, void *data, unsigned int channelCount )
+{
+    unsigned int i;
+    unsigned int channel = firstChannel;
+    unsigned char *p = (unsigned char*)data;
+
+    if( channelCount == 0 )
+        channelCount = bp->inputChannelCount;
+
+    assert( firstChannel < bp->inputChannelCount );
+    assert( firstChannel + channelCount <= bp->inputChannelCount );
+    
+    for( i=0; i< channelCount; ++i )
+    {
+        bp->hostInputChannels[1][channel+i].data = p;
+        p += bp->bytesPerHostInputSample;
+        bp->hostInputChannels[1][channel+i].stride = channelCount;
+    }
+}
+
+        
+void PaUtil_Set2ndNonInterleavedInputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data )
+{
+    assert( channel < bp->inputChannelCount );
+    
+    bp->hostInputChannels[1][channel].data = data;
+    bp->hostInputChannels[1][channel].stride = 1;
+}
+
+
+void PaUtil_SetOutputFrameCount( PaUtilBufferProcessor* bp,
+        unsigned long frameCount )
+{
+    if( frameCount == 0 )
+        bp->hostOutputFrameCount[0] = bp->framesPerHostBuffer;
+    else
+        bp->hostOutputFrameCount[0] = frameCount;
+}
+
+
+void PaUtil_SetNoOutput( PaUtilBufferProcessor* bp )
+{
+    assert( bp->outputChannelCount > 0 );
+
+    bp->hostOutputChannels[0][0].data = 0;
+}
+
+
+void PaUtil_SetOutputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data, unsigned int stride )
+{
+    assert( channel < bp->outputChannelCount );
+    assert( data != NULL );
+
+    bp->hostOutputChannels[0][channel].data = data;
+    bp->hostOutputChannels[0][channel].stride = stride;
+}
+
+
+void PaUtil_SetInterleavedOutputChannels( PaUtilBufferProcessor* bp,
+        unsigned int firstChannel, void *data, unsigned int channelCount )
+{
+    unsigned int i;
+    unsigned int channel = firstChannel;
+    unsigned char *p = (unsigned char*)data;
+
+    if( channelCount == 0 )
+        channelCount = bp->outputChannelCount;
+
+    assert( firstChannel < bp->outputChannelCount );
+    assert( firstChannel + channelCount <= bp->outputChannelCount );
+    
+    for( i=0; i< channelCount; ++i )
+    {
+        PaUtil_SetOutputChannel( bp, channel + i, p, channelCount );
+        p += bp->bytesPerHostOutputSample;
+    }
+}
+
+
+void PaUtil_SetNonInterleavedOutputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data )
+{
+    assert( channel < bp->outputChannelCount );
+
+    PaUtil_SetOutputChannel( bp, channel, data, 1 );
+}
+
+
+void PaUtil_Set2ndOutputFrameCount( PaUtilBufferProcessor* bp,
+        unsigned long frameCount )
+{
+    bp->hostOutputFrameCount[1] = frameCount;
+}
+
+
+void PaUtil_Set2ndOutputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data, unsigned int stride )
+{
+    assert( channel < bp->outputChannelCount );
+    assert( data != NULL );
+
+    bp->hostOutputChannels[1][channel].data = data;
+    bp->hostOutputChannels[1][channel].stride = stride;
+}
+
+
+void PaUtil_Set2ndInterleavedOutputChannels( PaUtilBufferProcessor* bp,
+        unsigned int firstChannel, void *data, unsigned int channelCount )
+{
+    unsigned int i;
+    unsigned int channel = firstChannel;
+    unsigned char *p = (unsigned char*)data;
+
+    if( channelCount == 0 )
+        channelCount = bp->outputChannelCount;
+
+    assert( firstChannel < bp->outputChannelCount );
+    assert( firstChannel + channelCount <= bp->outputChannelCount );
+    
+    for( i=0; i< channelCount; ++i )
+    {
+        PaUtil_Set2ndOutputChannel( bp, channel + i, p, channelCount );
+        p += bp->bytesPerHostOutputSample;
+    }
+}
+
+        
+void PaUtil_Set2ndNonInterleavedOutputChannel( PaUtilBufferProcessor* bp,
+        unsigned int channel, void *data )
+{
+    assert( channel < bp->outputChannelCount );
+    
+    PaUtil_Set2ndOutputChannel( bp, channel, data, 1 );
+}
+
+
+void PaUtil_BeginBufferProcessing( PaUtilBufferProcessor* bp,
+        PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags callbackStatusFlags )
+{
+    bp->timeInfo = timeInfo;
+
+    /* the first streamCallback will be called to process samples which are
+        currently in the input buffer before the ones starting at the timeInfo time */
+        
+    bp->timeInfo->inputBufferAdcTime -= bp->framesInTempInputBuffer * bp->samplePeriod;
+    
+    bp->timeInfo->currentTime = 0; /** FIXME: @todo time info currentTime not implemented */
+
+    /* the first streamCallback will be called to generate samples which will be
+        outputted after the frames currently in the output buffer have been
+        outputted. */
+    bp->timeInfo->outputBufferDacTime += bp->framesInTempOutputBuffer * bp->samplePeriod;
+
+    bp->callbackStatusFlags = callbackStatusFlags;
+
+    bp->hostInputFrameCount[1] = 0;
+    bp->hostOutputFrameCount[1] = 0;
+}
+
+
+/*
+    NonAdaptingProcess() is a simple buffer copying adaptor that can handle
+    both full and half duplex copies. It processes framesToProcess frames,
+    broken into blocks bp->framesPerTempBuffer long.
+    This routine can be used when the streamCallback doesn't care what length
+    the buffers are, or when framesToProcess is an integer multiple of
+    bp->framesPerTempBuffer, in which case streamCallback will always be called
+    with bp->framesPerTempBuffer samples.
+*/
+static unsigned long NonAdaptingProcess( PaUtilBufferProcessor *bp,
+        int *streamCallbackResult,
+        PaUtilChannelDescriptor *hostInputChannels,
+        PaUtilChannelDescriptor *hostOutputChannels,
+        unsigned long framesToProcess )
+{
+    void *userInput, *userOutput;
+    unsigned char *srcBytePtr, *destBytePtr;
+    unsigned int srcSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int srcChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int destSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int destChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i;
+    unsigned long frameCount;
+    unsigned long framesToGo = framesToProcess;
+    unsigned long framesProcessed = 0;
+
+
+    if( *streamCallbackResult == paContinue )
+    {
+        do
+        {
+            frameCount = PA_MIN_( bp->framesPerTempBuffer, framesToGo );
+
+            /* configure user input buffer and convert input data (host -> user) */
+            if( bp->inputChannelCount == 0 )
+            {
+                /* no input */
+                userInput = 0;
+            }
+            else /* there are input channels */
+            {
+                /*
+                    could use more elaborate logic here and sometimes process
+                    buffers in-place.
+                */
+            
+                destBytePtr = (unsigned char *)bp->tempInputBuffer;
+
+                if( bp->userInputIsInterleaved )
+                {
+                    destSampleStrideSamples = bp->inputChannelCount;
+                    destChannelStrideBytes = bp->bytesPerUserInputSample;
+                    userInput = bp->tempInputBuffer;
+                }
+                else /* user input is not interleaved */
+                {
+                    destSampleStrideSamples = 1;
+                    destChannelStrideBytes = frameCount * bp->bytesPerUserInputSample;
+
+                    /* setup non-interleaved ptrs */
+                    for( i=0; i<bp->inputChannelCount; ++i )
+                    {
+                        bp->tempInputBufferPtrs[i] = ((unsigned char*)bp->tempInputBuffer) +
+                            i * bp->bytesPerUserInputSample * frameCount;
+                    }
+                
+                    userInput = bp->tempInputBufferPtrs;
+                }
+
+                if( !bp->hostInputChannels[0][0].data )
+                {
+                    /* no input was supplied (see PaUtil_SetNoInput), so
+                        zero the input buffer */
+
+                    for( i=0; i<bp->inputChannelCount; ++i )
+                    {
+                        bp->inputZeroer( destBytePtr, destSampleStrideSamples, frameCount );
+                        destBytePtr += destChannelStrideBytes;  /* skip to next destination channel */
+                    }
+                }
+                else
+                {
+                    for( i=0; i<bp->inputChannelCount; ++i )
+                    {
+                        bp->inputConverter( destBytePtr, destSampleStrideSamples,
+                                                hostInputChannels[i].data,
+                                                hostInputChannels[i].stride,
+                                                frameCount, &bp->ditherGenerator );
+
+                        destBytePtr += destChannelStrideBytes;  /* skip to next destination channel */
+
+                        /* advance src ptr for next iteration */
+                        hostInputChannels[i].data = ((unsigned char*)hostInputChannels[i].data) +
+                                frameCount * hostInputChannels[i].stride * bp->bytesPerHostInputSample;
+                    }
+                }
+            }
+
+            /* configure user output buffer */
+            if( bp->outputChannelCount == 0 )
+            {
+                /* no output */
+                userOutput = 0;
+            }
+            else /* there are output channels */
+            {
+                if( bp->userOutputIsInterleaved )
+                {
+                    userOutput = bp->tempOutputBuffer;
+                }
+                else /* user output is not interleaved */
+                {
+                    for( i = 0; i < bp->outputChannelCount; ++i )
+                    {
+                        bp->tempOutputBufferPtrs[i] = ((unsigned char*)bp->tempOutputBuffer) +
+                            i * bp->bytesPerUserOutputSample * frameCount;
+                    }
+
+                    userOutput = bp->tempOutputBufferPtrs;
+                }
+            }
+ 
+			           *streamCallbackResult = bp->streamCallback( userInput, userOutput,
+                    frameCount, bp->timeInfo, bp->callbackStatusFlags, bp->userData );
+
+            if( *streamCallbackResult == paAbort )
+            {
+                /* callback returned paAbort, don't advance framesProcessed
+                        and framesToGo, they will be handled below */
+            }
+            else
+            {
+                bp->timeInfo->inputBufferAdcTime += frameCount * bp->samplePeriod;
+                bp->timeInfo->outputBufferDacTime += frameCount * bp->samplePeriod;
+
+                /* convert output data (user -> host) */
+                
+                if( bp->outputChannelCount != 0 && bp->hostOutputChannels[0][0].data )
+                {
+                    /*
+                        could use more elaborate logic here and sometimes process
+                        buffers in-place.
+                    */
+            
+                    srcBytePtr = (unsigned char *)bp->tempOutputBuffer;
+
+                    if( bp->userOutputIsInterleaved )
+                    {
+                        srcSampleStrideSamples = bp->outputChannelCount;
+                        srcChannelStrideBytes = bp->bytesPerUserOutputSample;
+                    }
+                    else /* user output is not interleaved */
+                    {
+                        srcSampleStrideSamples = 1;
+                        srcChannelStrideBytes = frameCount * bp->bytesPerUserOutputSample;
+                    }
+
+                    for( i=0; i<bp->outputChannelCount; ++i )
+                    {
+                        bp->outputConverter(    hostOutputChannels[i].data,
+                                                hostOutputChannels[i].stride,
+                                                srcBytePtr, srcSampleStrideSamples,
+                                                frameCount, &bp->ditherGenerator );
+
+                        srcBytePtr += srcChannelStrideBytes;  /* skip to next source channel */
+
+                        /* advance dest ptr for next iteration */
+                        hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                                frameCount * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+                    }
+                }
+             
+                framesProcessed += frameCount;
+
+                framesToGo -= frameCount;
+            }
+        }
+        while( framesToGo > 0  && *streamCallbackResult == paContinue );
+    }
+
+    if( framesToGo > 0 )
+    {
+        /* zero any remaining frames output. There will only be remaining frames
+            if the callback has returned paComplete or paAbort */
+
+        frameCount = framesToGo;
+
+        if( bp->outputChannelCount != 0 && bp->hostOutputChannels[0][0].data )
+        {
+            for( i=0; i<bp->outputChannelCount; ++i )
+            {
+                bp->outputZeroer(   hostOutputChannels[i].data,
+                                    hostOutputChannels[i].stride,
+                                    frameCount );
+
+                /* advance dest ptr for next iteration */
+                hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                        frameCount * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+            }
+        }
+
+        framesProcessed += frameCount;
+    }
+
+    return framesProcessed;
+}
+
+
+/*
+    AdaptingInputOnlyProcess() is a half duplex input buffer processor. It
+    converts data from the input buffers into the temporary input buffer,
+    when the temporary input buffer is full, it calls the streamCallback.
+*/
+static unsigned long AdaptingInputOnlyProcess( PaUtilBufferProcessor *bp,
+        int *streamCallbackResult,
+        PaUtilChannelDescriptor *hostInputChannels,
+        unsigned long framesToProcess )
+{
+    void *userInput, *userOutput;
+    unsigned char *destBytePtr;
+    unsigned int destSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int destChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i;
+    unsigned long frameCount;
+    unsigned long framesToGo = framesToProcess;
+    unsigned long framesProcessed = 0;
+    
+    userOutput = 0;
+
+    do
+    {
+        frameCount = ( bp->framesInTempInputBuffer + framesToGo > bp->framesPerUserBuffer )
+                ? ( bp->framesPerUserBuffer - bp->framesInTempInputBuffer )
+                : framesToGo;
+
+        /* convert frameCount samples into temp buffer */
+
+        if( bp->userInputIsInterleaved )
+        {
+            destBytePtr = ((unsigned char*)bp->tempInputBuffer) +
+                    bp->bytesPerUserInputSample * bp->inputChannelCount *
+                    bp->framesInTempInputBuffer;
+                      
+            destSampleStrideSamples = bp->inputChannelCount;
+            destChannelStrideBytes = bp->bytesPerUserInputSample;
+
+            userInput = bp->tempInputBuffer;
+        }
+        else /* user input is not interleaved */
+        {
+            destBytePtr = ((unsigned char*)bp->tempInputBuffer) +
+                    bp->bytesPerUserInputSample * bp->framesInTempInputBuffer;
+
+            destSampleStrideSamples = 1;
+            destChannelStrideBytes = bp->framesPerUserBuffer * bp->bytesPerUserInputSample;
+
+            /* setup non-interleaved ptrs */
+            for( i=0; i<bp->inputChannelCount; ++i )
+            {
+                bp->tempInputBufferPtrs[i] = ((unsigned char*)bp->tempInputBuffer) +
+                    i * bp->bytesPerUserInputSample * bp->framesPerUserBuffer;
+            }
+                    
+            userInput = bp->tempInputBufferPtrs;
+        }
+
+        for( i=0; i<bp->inputChannelCount; ++i )
+        {
+            bp->inputConverter( destBytePtr, destSampleStrideSamples,
+                                    hostInputChannels[i].data,
+                                    hostInputChannels[i].stride,
+                                    frameCount, &bp->ditherGenerator );
+
+            destBytePtr += destChannelStrideBytes;  /* skip to next destination channel */
+
+            /* advance src ptr for next iteration */
+            hostInputChannels[i].data = ((unsigned char*)hostInputChannels[i].data) +
+                    frameCount * hostInputChannels[i].stride * bp->bytesPerHostInputSample;
+        }
+
+        bp->framesInTempInputBuffer += frameCount;
+
+        if( bp->framesInTempInputBuffer == bp->framesPerUserBuffer )
+        {
+            /**
+            @todo (non-critical optimisation)
+            The conditional below implements the continue/complete/abort mechanism
+            simply by continuing on iterating through the input buffer, but not
+            passing the data to the callback. With care, the outer loop could be
+            terminated earlier, thus some unneeded conversion cycles would be
+            saved.
+            */
+            if( *streamCallbackResult == paContinue )
+            {
+                bp->timeInfo->outputBufferDacTime = 0;
+
+                *streamCallbackResult = bp->streamCallback( userInput, userOutput,
+                        bp->framesPerUserBuffer, bp->timeInfo,
+                        bp->callbackStatusFlags, bp->userData );
+
+                bp->timeInfo->inputBufferAdcTime += frameCount * bp->samplePeriod;
+            }
+            
+            bp->framesInTempInputBuffer = 0;
+        }
+
+        framesProcessed += frameCount;
+
+        framesToGo -= frameCount;
+    }while( framesToGo > 0 );
+
+    return framesProcessed;
+}
+
+
+/*
+    AdaptingOutputOnlyProcess() is a half duplex output buffer processor.
+    It converts data from the temporary output buffer, to the output buffers,
+    when the temporary output buffer is empty, it calls the streamCallback.
+*/
+static unsigned long AdaptingOutputOnlyProcess( PaUtilBufferProcessor *bp,
+        int *streamCallbackResult,
+        PaUtilChannelDescriptor *hostOutputChannels,
+        unsigned long framesToProcess )
+{
+    void *userInput, *userOutput;
+    unsigned char *srcBytePtr;
+    unsigned int srcSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int srcChannelStrideBytes;  /* stride from one channel to the next, in bytes */
+    unsigned int i;
+    unsigned long frameCount;
+    unsigned long framesToGo = framesToProcess;
+    unsigned long framesProcessed = 0;
+
+    do
+    {
+        if( bp->framesInTempOutputBuffer == 0 && *streamCallbackResult == paContinue )
+        {
+            userInput = 0;
+
+            /* setup userOutput */
+            if( bp->userOutputIsInterleaved )
+            {
+                userOutput = bp->tempOutputBuffer;
+            }
+            else /* user output is not interleaved */
+            {
+                for( i = 0; i < bp->outputChannelCount; ++i )
+                {
+                    bp->tempOutputBufferPtrs[i] = ((unsigned char*)bp->tempOutputBuffer) +
+                            i * bp->framesPerUserBuffer * bp->bytesPerUserOutputSample;
+                }
+
+                userOutput = bp->tempOutputBufferPtrs;
+            }
+
+            bp->timeInfo->inputBufferAdcTime = 0;
+            
+            *streamCallbackResult = bp->streamCallback( userInput, userOutput,
+                    bp->framesPerUserBuffer, bp->timeInfo,
+                    bp->callbackStatusFlags, bp->userData );
+
+            if( *streamCallbackResult == paAbort )
+            {
+                /* if the callback returned paAbort, we disregard its output */
+            }
+            else
+            {
+                bp->timeInfo->outputBufferDacTime += bp->framesPerUserBuffer * bp->samplePeriod;
+
+                bp->framesInTempOutputBuffer = bp->framesPerUserBuffer;
+            }
+        }
+
+        if( bp->framesInTempOutputBuffer > 0 )
+        {
+            /* convert frameCount frames from user buffer to host buffer */
+
+            frameCount = PA_MIN_( bp->framesInTempOutputBuffer, framesToGo );
+
+            if( bp->userOutputIsInterleaved )
+            {
+                srcBytePtr = ((unsigned char*)bp->tempOutputBuffer) +
+                        bp->bytesPerUserOutputSample * bp->outputChannelCount *
+                        (bp->framesPerUserBuffer - bp->framesInTempOutputBuffer);
+
+                srcSampleStrideSamples = bp->outputChannelCount;
+                srcChannelStrideBytes = bp->bytesPerUserOutputSample;
+            }
+            else /* user output is not interleaved */
+            {
+                srcBytePtr = ((unsigned char*)bp->tempOutputBuffer) +
+                        bp->bytesPerUserOutputSample *
+                        (bp->framesPerUserBuffer - bp->framesInTempOutputBuffer);
+                            
+                srcSampleStrideSamples = 1;
+                srcChannelStrideBytes = bp->framesPerUserBuffer * bp->bytesPerUserOutputSample;
+            }
+
+            for( i=0; i<bp->outputChannelCount; ++i )
+            {
+                bp->outputConverter(    hostOutputChannels[i].data,
+                                        hostOutputChannels[i].stride,
+                                        srcBytePtr, srcSampleStrideSamples,
+                                        frameCount, &bp->ditherGenerator );
+
+                srcBytePtr += srcChannelStrideBytes;  /* skip to next source channel */
+
+                /* advance dest ptr for next iteration */
+                hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                        frameCount * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+            }
+
+            bp->framesInTempOutputBuffer -= frameCount;
+        }
+        else
+        {
+            /* no more user data is available because the callback has returned
+                paComplete or paAbort. Fill the remainder of the host buffer
+                with zeros.
+            */
+
+            frameCount = framesToGo;
+
+            for( i=0; i<bp->outputChannelCount; ++i )
+            {
+                bp->outputZeroer(   hostOutputChannels[i].data,
+                                    hostOutputChannels[i].stride,
+                                    frameCount );
+
+                /* advance dest ptr for next iteration */
+                hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                        frameCount * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+            }
+        }
+        
+        framesProcessed += frameCount;
+        
+        framesToGo -= frameCount;
+
+    }while( framesToGo > 0 );
+
+    return framesProcessed;
+}
+
+/* CopyTempOutputBuffersToHostOutputBuffers is called from AdaptingProcess to copy frames from
+	tempOutputBuffer to hostOutputChannels. This includes data conversion
+	and interleaving. 
+*/
+static void CopyTempOutputBuffersToHostOutputBuffers( PaUtilBufferProcessor *bp)
+{
+    unsigned long maxFramesToCopy;
+    PaUtilChannelDescriptor *hostOutputChannels;
+    unsigned int frameCount;
+    unsigned char *srcBytePtr;
+    unsigned int srcSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int srcChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i;
+
+     /* copy frames from user to host output buffers */
+     while( bp->framesInTempOutputBuffer > 0 &&
+             ((bp->hostOutputFrameCount[0] + bp->hostOutputFrameCount[1]) > 0) )
+     {
+         maxFramesToCopy = bp->framesInTempOutputBuffer;
+
+         /* select the output buffer set (1st or 2nd) */
+         if( bp->hostOutputFrameCount[0] > 0 )
+         {
+             hostOutputChannels = bp->hostOutputChannels[0];
+             frameCount = PA_MIN_( bp->hostOutputFrameCount[0], maxFramesToCopy );
+         }
+         else
+         {
+             hostOutputChannels = bp->hostOutputChannels[1];
+             frameCount = PA_MIN_( bp->hostOutputFrameCount[1], maxFramesToCopy );
+         }
+
+         if( bp->userOutputIsInterleaved )
+         {
+             srcBytePtr = ((unsigned char*)bp->tempOutputBuffer) +
+                     bp->bytesPerUserOutputSample * bp->outputChannelCount *
+                     (bp->framesPerUserBuffer - bp->framesInTempOutputBuffer);
+                         
+             srcSampleStrideSamples = bp->outputChannelCount;
+             srcChannelStrideBytes = bp->bytesPerUserOutputSample;
+         }
+         else /* user output is not interleaved */
+         {
+             srcBytePtr = ((unsigned char*)bp->tempOutputBuffer) +
+                     bp->bytesPerUserOutputSample *
+                     (bp->framesPerUserBuffer - bp->framesInTempOutputBuffer);
+
+             srcSampleStrideSamples = 1;
+             srcChannelStrideBytes = bp->framesPerUserBuffer * bp->bytesPerUserOutputSample;
+         }
+
+         for( i=0; i<bp->outputChannelCount; ++i )
+         {
+             assert( hostOutputChannels[i].data != NULL );
+             bp->outputConverter(    hostOutputChannels[i].data,
+                                     hostOutputChannels[i].stride,
+                                     srcBytePtr, srcSampleStrideSamples,
+                                     frameCount, &bp->ditherGenerator );
+
+             srcBytePtr += srcChannelStrideBytes;  /* skip to next source channel */
+
+             /* advance dest ptr for next iteration */
+             hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                     frameCount * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+         }
+
+         if( bp->hostOutputFrameCount[0] > 0 )
+             bp->hostOutputFrameCount[0] -= frameCount;
+         else
+             bp->hostOutputFrameCount[1] -= frameCount;
+
+         bp->framesInTempOutputBuffer -= frameCount;
+     }
+}
+
+/*
+    AdaptingProcess is a full duplex adapting buffer processor. It converts
+    data from the temporary output buffer into the host output buffers, then
+    from the host input buffers into the temporary input buffers. Calling the
+    streamCallback when necessary.
+    When processPartialUserBuffers is 0, all available input data will be
+    consumed and all available output space will be filled. When
+    processPartialUserBuffers is non-zero, as many full user buffers
+    as possible will be processed, but partial buffers will not be consumed.
+*/
+static unsigned long AdaptingProcess( PaUtilBufferProcessor *bp,
+        int *streamCallbackResult, int processPartialUserBuffers )
+{
+    void *userInput, *userOutput;
+    unsigned long framesProcessed = 0;
+    unsigned long framesAvailable;
+    unsigned long endProcessingMinFrameCount;
+    unsigned long maxFramesToCopy;
+    PaUtilChannelDescriptor *hostInputChannels, *hostOutputChannels;
+    unsigned int frameCount;
+    unsigned char *destBytePtr;
+    unsigned int destSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int destChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i, j;
+ 
+
+    framesAvailable = bp->hostInputFrameCount[0] + bp->hostInputFrameCount[1];/* this is assumed to be the same as the output buffer's frame count */
+
+    if( processPartialUserBuffers )
+        endProcessingMinFrameCount = 0;
+    else
+        endProcessingMinFrameCount = (bp->framesPerUserBuffer - 1);
+
+    /* Fill host output with remaining frames in user output (tempOutputBuffer) */
+    CopyTempOutputBuffersToHostOutputBuffers( bp );		  	
+
+    while( framesAvailable > endProcessingMinFrameCount ) 
+    {
+
+        if( bp->framesInTempOutputBuffer == 0 && *streamCallbackResult != paContinue )
+        {
+            /* the callback will not be called any more, so zero what remains
+                of the host output buffers */
+
+            for( i=0; i<2; ++i )
+            {
+                frameCount = bp->hostOutputFrameCount[i];
+                if( frameCount > 0 )
+                {
+                    hostOutputChannels = bp->hostOutputChannels[i];
+                    
+                    for( j=0; j<bp->outputChannelCount; ++j )
+                    {
+                        bp->outputZeroer(   hostOutputChannels[j].data,
+                                            hostOutputChannels[j].stride,
+                                            frameCount );
+
+                        /* advance dest ptr for next iteration  */
+                        hostOutputChannels[j].data = ((unsigned char*)hostOutputChannels[j].data) +
+                                frameCount * hostOutputChannels[j].stride * bp->bytesPerHostOutputSample;
+                    }
+                    bp->hostOutputFrameCount[i] = 0;
+                }
+            }
+        }          
+
+
+        /* copy frames from host to user input buffers */
+        while( bp->framesInTempInputBuffer < bp->framesPerUserBuffer &&
+                ((bp->hostInputFrameCount[0] + bp->hostInputFrameCount[1]) > 0) )
+        {
+            maxFramesToCopy = bp->framesPerUserBuffer - bp->framesInTempInputBuffer;
+
+            /* select the input buffer set (1st or 2nd) */
+            if( bp->hostInputFrameCount[0] > 0 )
+            {
+                hostInputChannels = bp->hostInputChannels[0];
+                frameCount = PA_MIN_( bp->hostInputFrameCount[0], maxFramesToCopy );
+            }
+            else
+            {
+                hostInputChannels = bp->hostInputChannels[1];
+                frameCount = PA_MIN_( bp->hostInputFrameCount[1], maxFramesToCopy );
+            }
+
+            /* configure conversion destination pointers */
+            if( bp->userInputIsInterleaved )
+            {
+                destBytePtr = ((unsigned char*)bp->tempInputBuffer) +
+                        bp->bytesPerUserInputSample * bp->inputChannelCount *
+                        bp->framesInTempInputBuffer;
+
+                destSampleStrideSamples = bp->inputChannelCount;
+                destChannelStrideBytes = bp->bytesPerUserInputSample;
+            }
+            else /* user input is not interleaved */
+            {
+                destBytePtr = ((unsigned char*)bp->tempInputBuffer) +
+                        bp->bytesPerUserInputSample * bp->framesInTempInputBuffer;
+
+                destSampleStrideSamples = 1;
+                destChannelStrideBytes = bp->framesPerUserBuffer * bp->bytesPerUserInputSample;
+            }
+
+            for( i=0; i<bp->inputChannelCount; ++i )
+            {
+                bp->inputConverter( destBytePtr, destSampleStrideSamples,
+                                        hostInputChannels[i].data,
+                                        hostInputChannels[i].stride,
+                                        frameCount, &bp->ditherGenerator );
+
+                destBytePtr += destChannelStrideBytes;  /* skip to next destination channel */
+
+                /* advance src ptr for next iteration */
+                hostInputChannels[i].data = ((unsigned char*)hostInputChannels[i].data) +
+                        frameCount * hostInputChannels[i].stride * bp->bytesPerHostInputSample;
+            }
+
+            if( bp->hostInputFrameCount[0] > 0 )
+                bp->hostInputFrameCount[0] -= frameCount;
+            else
+                bp->hostInputFrameCount[1] -= frameCount;
+                
+            bp->framesInTempInputBuffer += frameCount;
+
+            /* update framesAvailable and framesProcessed based on input consumed
+                unless something is very wrong this will also correspond to the
+                amount of output generated */
+            framesAvailable -= frameCount;
+            framesProcessed += frameCount;
+        }
+
+        /* call streamCallback */
+        if( bp->framesInTempInputBuffer == bp->framesPerUserBuffer &&
+            bp->framesInTempOutputBuffer == 0 )
+        {
+            if( *streamCallbackResult == paContinue )
+            {
+                /* setup userInput */
+                if( bp->userInputIsInterleaved )
+                {
+                    userInput = bp->tempInputBuffer;
+                }
+                else /* user input is not interleaved */
+                {
+                    for( i = 0; i < bp->inputChannelCount; ++i )
+                    {
+                        bp->tempInputBufferPtrs[i] = ((unsigned char*)bp->tempInputBuffer) +
+                                i * bp->framesPerUserBuffer * bp->bytesPerUserInputSample;
+                    }
+
+                    userInput = bp->tempInputBufferPtrs;
+                }
+
+                /* setup userOutput */
+                if( bp->userOutputIsInterleaved )
+                {
+                    userOutput = bp->tempOutputBuffer;
+                }
+                else /* user output is not interleaved */
+                {
+                    for( i = 0; i < bp->outputChannelCount; ++i )
+                    {
+                        bp->tempOutputBufferPtrs[i] = ((unsigned char*)bp->tempOutputBuffer) +
+                                i * bp->framesPerUserBuffer * bp->bytesPerUserOutputSample;
+                    }
+
+                    userOutput = bp->tempOutputBufferPtrs;
+                }
+
+                /* call streamCallback */
+
+                *streamCallbackResult = bp->streamCallback( userInput, userOutput,
+                        bp->framesPerUserBuffer, bp->timeInfo,
+                        bp->callbackStatusFlags, bp->userData );
+
+                bp->timeInfo->inputBufferAdcTime += bp->framesPerUserBuffer * bp->samplePeriod;
+                bp->timeInfo->outputBufferDacTime += bp->framesPerUserBuffer * bp->samplePeriod;
+
+                bp->framesInTempInputBuffer = 0;
+
+                if( *streamCallbackResult == paAbort )
+                    bp->framesInTempOutputBuffer = 0;
+                else
+                    bp->framesInTempOutputBuffer = bp->framesPerUserBuffer;
+            }
+            else
+            {
+                /* paComplete or paAbort has already been called. */
+
+                bp->framesInTempInputBuffer = 0;
+            }
+        }
+
+        /* copy frames from user (tempOutputBuffer) to host output buffers (hostOutputChannels) 
+           Means to process the user output provided by the callback. Has to be called after
+            each callback. */
+        CopyTempOutputBuffersToHostOutputBuffers( bp );		  	
+
+    }
+    
+    return framesProcessed;
+}
+
+
+unsigned long PaUtil_EndBufferProcessing( PaUtilBufferProcessor* bp, int *streamCallbackResult )
+{
+    unsigned long framesToProcess, framesToGo;
+    unsigned long framesProcessed = 0;
+    
+    if( bp->inputChannelCount != 0 && bp->outputChannelCount != 0
+            && bp->hostInputChannels[0][0].data /* input was supplied (see PaUtil_SetNoInput) */
+            && bp->hostOutputChannels[0][0].data /* output was supplied (see PaUtil_SetNoOutput) */ )
+    {
+        assert( (bp->hostInputFrameCount[0] + bp->hostInputFrameCount[1]) ==
+                (bp->hostOutputFrameCount[0] + bp->hostOutputFrameCount[1]) );
+    }
+
+    assert( *streamCallbackResult == paContinue
+            || *streamCallbackResult == paComplete
+            || *streamCallbackResult == paAbort ); /* don't forget to pass in a valid callback result value */
+
+    if( bp->useNonAdaptingProcess )
+    {
+        if( bp->inputChannelCount != 0 && bp->outputChannelCount != 0 )
+        {
+            /* full duplex non-adapting process, splice buffers if they are
+                different lengths */
+
+            framesToGo = bp->hostOutputFrameCount[0] + bp->hostOutputFrameCount[1]; /* relies on assert above for input/output equivalence */
+
+            do{
+                unsigned long noInputInputFrameCount;
+                unsigned long *hostInputFrameCount;
+                PaUtilChannelDescriptor *hostInputChannels;
+                unsigned long noOutputOutputFrameCount;
+                unsigned long *hostOutputFrameCount;
+                PaUtilChannelDescriptor *hostOutputChannels;
+                unsigned long framesProcessedThisIteration;
+
+                if( !bp->hostInputChannels[0][0].data )
+                {
+                    /* no input was supplied (see PaUtil_SetNoInput)
+                        NonAdaptingProcess knows how to deal with this
+                    */
+                    noInputInputFrameCount = framesToGo;
+                    hostInputFrameCount = &noInputInputFrameCount;
+                    hostInputChannels = 0;
+                }
+                else if( bp->hostInputFrameCount[0] != 0 )
+                {
+                    hostInputFrameCount = &bp->hostInputFrameCount[0];
+                    hostInputChannels = bp->hostInputChannels[0];
+                }
+                else
+                {
+                    hostInputFrameCount = &bp->hostInputFrameCount[1];
+                    hostInputChannels = bp->hostInputChannels[1];
+                }
+
+                if( !bp->hostOutputChannels[0][0].data )
+                {
+                    /* no output was supplied (see PaUtil_SetNoOutput)
+                        NonAdaptingProcess knows how to deal with this
+                    */
+                    noOutputOutputFrameCount = framesToGo;
+                    hostOutputFrameCount = &noOutputOutputFrameCount;
+                    hostOutputChannels = 0;
+                }
+                if( bp->hostOutputFrameCount[0] != 0 )
+                {
+                    hostOutputFrameCount = &bp->hostOutputFrameCount[0];
+                    hostOutputChannels = bp->hostOutputChannels[0];
+                }
+                else
+                {
+                    hostOutputFrameCount = &bp->hostOutputFrameCount[1];
+                    hostOutputChannels = bp->hostOutputChannels[1];
+                }
+
+                framesToProcess = PA_MIN_( *hostInputFrameCount,
+                                       *hostOutputFrameCount );
+
+                assert( framesToProcess != 0 );
+                
+                framesProcessedThisIteration = NonAdaptingProcess( bp, streamCallbackResult,
+                        hostInputChannels, hostOutputChannels,
+                        framesToProcess );                                       
+
+                *hostInputFrameCount -= framesProcessedThisIteration;
+                *hostOutputFrameCount -= framesProcessedThisIteration;
+
+                framesProcessed += framesProcessedThisIteration;
+                framesToGo -= framesProcessedThisIteration;
+                
+            }while( framesToGo > 0 );
+        }
+        else
+        {
+            /* half duplex non-adapting process, just process 1st and 2nd buffer */
+            /* process first buffer */
+
+            framesToProcess = (bp->inputChannelCount != 0)
+                            ? bp->hostInputFrameCount[0]
+                            : bp->hostOutputFrameCount[0];
+
+            framesProcessed = NonAdaptingProcess( bp, streamCallbackResult,
+                        bp->hostInputChannels[0], bp->hostOutputChannels[0],
+                        framesToProcess );
+
+            /* process second buffer if provided */
+    
+            framesToProcess = (bp->inputChannelCount != 0)
+                            ? bp->hostInputFrameCount[1]
+                            : bp->hostOutputFrameCount[1];
+            if( framesToProcess > 0 )
+            {
+                framesProcessed += NonAdaptingProcess( bp, streamCallbackResult,
+                    bp->hostInputChannels[1], bp->hostOutputChannels[1],
+                    framesToProcess );
+            }
+        }
+    }
+    else /* block adaption necessary*/
+    {
+
+        if( bp->inputChannelCount != 0 && bp->outputChannelCount != 0 )
+        {
+            /* full duplex */
+            
+            if( bp->hostBufferSizeMode == paUtilVariableHostBufferSizePartialUsageAllowed  )
+            {
+                framesProcessed = AdaptingProcess( bp, streamCallbackResult,
+                        0 /* dont process partial user buffers */ );
+            }
+            else
+            {
+                framesProcessed = AdaptingProcess( bp, streamCallbackResult,
+                        1 /* process partial user buffers */ );
+            }
+        }
+        else if( bp->inputChannelCount != 0 )
+        {
+            /* input only */
+            framesToProcess = bp->hostInputFrameCount[0];
+
+            framesProcessed = AdaptingInputOnlyProcess( bp, streamCallbackResult,
+                        bp->hostInputChannels[0], framesToProcess );
+
+            framesToProcess = bp->hostInputFrameCount[1];
+            if( framesToProcess > 0 )
+            {
+                framesProcessed += AdaptingInputOnlyProcess( bp, streamCallbackResult,
+                        bp->hostInputChannels[1], framesToProcess );
+            }
+        }
+        else
+        {
+            /* output only */
+            framesToProcess = bp->hostOutputFrameCount[0];
+
+            framesProcessed = AdaptingOutputOnlyProcess( bp, streamCallbackResult,
+                        bp->hostOutputChannels[0], framesToProcess );
+
+            framesToProcess = bp->hostOutputFrameCount[1];
+            if( framesToProcess > 0 )
+            {
+                framesProcessed += AdaptingOutputOnlyProcess( bp, streamCallbackResult,
+                        bp->hostOutputChannels[1], framesToProcess );
+            }
+        }
+    }
+
+    return framesProcessed;
+}
+
+
+int PaUtil_IsBufferProcessorOutputEmpty( PaUtilBufferProcessor* bp )
+{
+    return (bp->framesInTempOutputBuffer) ? 0 : 1;
+} 
+
+
+unsigned long PaUtil_CopyInput( PaUtilBufferProcessor* bp,
+        void **buffer, unsigned long frameCount )
+{
+    PaUtilChannelDescriptor *hostInputChannels;
+    unsigned int framesToCopy;
+    unsigned char *destBytePtr;
+    void **nonInterleavedDestPtrs;
+    unsigned int destSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int destChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i;
+
+    hostInputChannels = bp->hostInputChannels[0];
+    framesToCopy = PA_MIN_( bp->hostInputFrameCount[0], frameCount );
+
+    if( bp->userInputIsInterleaved )
+    {
+        destBytePtr = (unsigned char*)*buffer;
+        
+        destSampleStrideSamples = bp->inputChannelCount;
+        destChannelStrideBytes = bp->bytesPerUserInputSample;
+
+        for( i=0; i<bp->inputChannelCount; ++i )
+        {
+            bp->inputConverter( destBytePtr, destSampleStrideSamples,
+                                hostInputChannels[i].data,
+                                hostInputChannels[i].stride,
+                                framesToCopy, &bp->ditherGenerator );
+
+            destBytePtr += destChannelStrideBytes;  /* skip to next source channel */
+
+            /* advance dest ptr for next iteration */
+            hostInputChannels[i].data = ((unsigned char*)hostInputChannels[i].data) +
+                    framesToCopy * hostInputChannels[i].stride * bp->bytesPerHostInputSample;
+        }
+
+        /* advance callers dest pointer (buffer) */
+        *buffer = ((unsigned char *)*buffer) +
+                framesToCopy * bp->inputChannelCount * bp->bytesPerUserInputSample;
+    }
+    else
+    {
+        /* user input is not interleaved */
+        
+        nonInterleavedDestPtrs = (void**)*buffer;
+
+        destSampleStrideSamples = 1;
+        
+        for( i=0; i<bp->inputChannelCount; ++i )
+        {
+            destBytePtr = (unsigned char*)nonInterleavedDestPtrs[i];
+
+            bp->inputConverter( destBytePtr, destSampleStrideSamples,
+                                hostInputChannels[i].data,
+                                hostInputChannels[i].stride,
+                                framesToCopy, &bp->ditherGenerator );
+
+            /* advance callers dest pointer (nonInterleavedDestPtrs[i]) */
+            destBytePtr += bp->bytesPerUserInputSample * framesToCopy;
+            nonInterleavedDestPtrs[i] = destBytePtr;
+            
+            /* advance dest ptr for next iteration */
+            hostInputChannels[i].data = ((unsigned char*)hostInputChannels[i].data) +
+                    framesToCopy * hostInputChannels[i].stride * bp->bytesPerHostInputSample;
+        }
+    }
+
+    bp->hostInputFrameCount[0] -= framesToCopy;
+    
+    return framesToCopy;
+}
+
+unsigned long PaUtil_CopyOutput( PaUtilBufferProcessor* bp,
+        const void ** buffer, unsigned long frameCount )
+{
+    PaUtilChannelDescriptor *hostOutputChannels;
+    unsigned int framesToCopy;
+    unsigned char *srcBytePtr;
+    void **nonInterleavedSrcPtrs;
+    unsigned int srcSampleStrideSamples; /* stride from one sample to the next within a channel, in samples */
+    unsigned int srcChannelStrideBytes; /* stride from one channel to the next, in bytes */
+    unsigned int i;
+
+    hostOutputChannels = bp->hostOutputChannels[0];
+    framesToCopy = PA_MIN_( bp->hostOutputFrameCount[0], frameCount );
+
+    if( bp->userOutputIsInterleaved )
+    {
+        srcBytePtr = (unsigned char*)*buffer;
+        
+        srcSampleStrideSamples = bp->outputChannelCount;
+        srcChannelStrideBytes = bp->bytesPerUserOutputSample;
+
+        for( i=0; i<bp->outputChannelCount; ++i )
+        {
+            bp->outputConverter(    hostOutputChannels[i].data,
+                                    hostOutputChannels[i].stride,
+                                    srcBytePtr, srcSampleStrideSamples,
+                                    framesToCopy, &bp->ditherGenerator );
+
+            srcBytePtr += srcChannelStrideBytes;  /* skip to next source channel */
+
+            /* advance dest ptr for next iteration */
+            hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                    framesToCopy * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+        }
+
+        /* advance callers source pointer (buffer) */
+        *buffer = ((unsigned char *)*buffer) +
+                framesToCopy * bp->outputChannelCount * bp->bytesPerUserOutputSample;
+
+    }
+    else
+    {
+        /* user output is not interleaved */
+        
+        nonInterleavedSrcPtrs = (void**)*buffer;
+
+        srcSampleStrideSamples = 1;
+        
+        for( i=0; i<bp->outputChannelCount; ++i )
+        {
+            srcBytePtr = (unsigned char*)nonInterleavedSrcPtrs[i];
+            
+            bp->outputConverter(    hostOutputChannels[i].data,
+                                    hostOutputChannels[i].stride,
+                                    srcBytePtr, srcSampleStrideSamples,
+                                    framesToCopy, &bp->ditherGenerator );
+
+
+            /* advance callers source pointer (nonInterleavedSrcPtrs[i]) */
+            srcBytePtr += bp->bytesPerUserOutputSample * framesToCopy;
+            nonInterleavedSrcPtrs[i] = srcBytePtr;
+            
+            /* advance dest ptr for next iteration */
+            hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                    framesToCopy * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+        }
+    }
+
+    bp->hostOutputFrameCount[0] += framesToCopy;
+    
+    return framesToCopy;
+}
+
+
+unsigned long PaUtil_ZeroOutput( PaUtilBufferProcessor* bp, unsigned long frameCount )
+{
+    PaUtilChannelDescriptor *hostOutputChannels;
+    unsigned int framesToZero;
+    unsigned int i;
+
+    hostOutputChannels = bp->hostOutputChannels[0];
+    framesToZero = PA_MIN_( bp->hostOutputFrameCount[0], frameCount );
+
+    for( i=0; i<bp->outputChannelCount; ++i )
+    {
+        bp->outputZeroer(   hostOutputChannels[i].data,
+                            hostOutputChannels[i].stride,
+                            framesToZero );
+
+
+        /* advance dest ptr for next iteration */
+        hostOutputChannels[i].data = ((unsigned char*)hostOutputChannels[i].data) +
+                framesToZero * hostOutputChannels[i].stride * bp->bytesPerHostOutputSample;
+    }
+
+    bp->hostOutputFrameCount[0] += framesToZero;
+    
+    return framesToZero;
+}
diff --git a/external/portaudio2007/pa_process.h b/external/portaudio2007/pa_process.h
new file mode 100644
index 0000000..89584bc
--- /dev/null
+++ b/external/portaudio2007/pa_process.h
@@ -0,0 +1,750 @@
+#ifndef PA_PROCESS_H
+#define PA_PROCESS_H
+/*
+ * $Id: pa_process.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library callback buffer processing adapters
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Phil Burk, Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+ 
+/** @file
+ @ingroup common_src
+
+ @brief Buffer Processor prototypes. A Buffer Processor performs buffer length
+ adaption, coordinates sample format conversion, and interleaves/deinterleaves
+ channels.
+
+ <h3>Overview</h3>
+
+ The "Buffer Processor" (PaUtilBufferProcessor) manages conversion of audio
+ data from host buffers to user buffers and back again. Where required, the
+ buffer processor takes care of converting between host and user sample formats,
+ interleaving and deinterleaving multichannel buffers, and adapting between host
+ and user buffers with different lengths. The buffer processor may be used with
+ full and half duplex streams, for both callback streams and blocking read/write
+ streams.
+
+ One of the important capabilities provided by the buffer processor is
+ the ability to adapt between user and host buffer sizes of different lengths
+ with minimum latency. Although this task is relatively easy to perform when
+ the host buffer size is an integer multiple of the user buffer size, the
+ problem is more complicated when this is not the case - especially for
+ full-duplex callback streams. Where necessary the adaption is implemented by
+ internally buffering some input and/or output data. The buffer adation
+ algorithm used by the buffer processor was originally implemented by
+ Stephan Letz for the ASIO version of PortAudio, and is described in his
+ Callback_adaption_.pdf which is included in the distribution.
+
+ The buffer processor performs sample conversion using the functions provided
+ by pa_converters.c.
+
+ The following sections provide an overview of how to use the buffer processor.
+ Interested readers are advised to consult the host API implementations for
+ examples of buffer processor usage.
+ 
+
+ <h4>Initialization, resetting and termination</h4>
+
+ When a stream is opened, the buffer processor should be initialized using
+ PaUtil_InitializeBufferProcessor. This function initializes internal state
+ and allocates temporary buffers as neccesary according to the supplied
+ configuration parameters. Some of the parameters correspond to those requested
+ by the user in their call to Pa_OpenStream(), others reflect the requirements
+ of the host API implementation - they indicate host buffer sizes, formats,
+ and the type of buffering which the Host API uses. The buffer processor should
+ be initialized for callback streams and blocking read/write streams.
+
+ Call PaUtil_ResetBufferProcessor to clear any sample data which is present
+ in the buffer processor before starting to use it (for example when
+ Pa_StartStream is called).
+
+ When the buffer processor is no longer used call
+ PaUtil_TerminateBufferProcessor.
+
+ 
+ <h4>Using the buffer processor for a callback stream</h4>
+
+ The buffer processor's role in a callback stream is to take host input buffers
+ process them with the stream callback, and fill host output buffers. For a
+ full duplex stream, the buffer processor handles input and output simultaneously
+ due to the requirements of the minimum-latency buffer adation algorithm.
+
+ When a host buffer becomes available, the implementation should call
+ the buffer processor to process the buffer. The buffer processor calls the
+ stream callback to consume and/or produce audio data as necessary. The buffer
+ processor will convert sample formats, interleave/deinterleave channels,
+ and slice or chunk the data to the appropriate buffer lengths according to
+ the requirements of the stream callback and the host API.
+
+ To process a host buffer (or a pair of host buffers for a full-duplex stream)
+ use the following calling sequence:
+
+ -# Call PaUtil_BeginBufferProcessing
+ -# For a stream which takes input:
+    - Call PaUtil_SetInputFrameCount with the number of frames in the host input
+        buffer.
+    - Call one of the following functions one or more times to tell the
+        buffer processor about the host input buffer(s): PaUtil_SetInputChannel,
+        PaUtil_SetInterleavedInputChannels, PaUtil_SetNonInterleavedInputChannel.
+        Which function you call will depend on whether the host buffer(s) are
+        interleaved or not.
+    - If the available host data is split accross two buffers (for example a
+        data range at the end of a circular buffer and another range at the
+        beginning of the circular buffer), also call
+        PaUtil_Set2ndInputFrameCount, PaUtil_Set2ndInputChannel,
+        PaUtil_Set2ndInterleavedInputChannels,
+        PaUtil_Set2ndNonInterleavedInputChannel as necessary to tell the buffer
+        processor about the second buffer.
+ -# For a stream which generates output:
+    - Call PaUtil_SetOutputFrameCount with the number of frames in the host
+        output buffer.
+    - Call one of the following functions one or more times to tell the
+        buffer processor about the host output buffer(s): PaUtil_SetOutputChannel,
+        PaUtil_SetInterleavedOutputChannels, PaUtil_SetNonInterleavedOutputChannel.
+        Which function you call will depend on whether the host buffer(s) are
+        interleaved or not.
+    - If the available host output buffer space is split accross two buffers
+        (for example a data range at the end of a circular buffer and another
+        range at the beginning of the circular buffer), call
+        PaUtil_Set2ndOutputFrameCount, PaUtil_Set2ndOutputChannel,
+        PaUtil_Set2ndInterleavedOutputChannels,
+        PaUtil_Set2ndNonInterleavedOutputChannel as necessary to tell the buffer
+        processor about the second buffer.
+ -# Call PaUtil_EndBufferProcessing, this function performs the actual data
+    conversion and processing.
+
+
+ <h4>Using the buffer processor for a blocking read/write stream</h4>
+
+ Blocking read/write streams use the buffer processor to convert and copy user
+ output data to a host buffer, and to convert and copy host input data to
+ the user's buffer. The buffer processor does not perform any buffer adaption.
+ When using the buffer processor in a blocking read/write stream the input and
+ output conversion are performed separately by the PaUtil_CopyInput and
+ PaUtil_CopyOutput functions.
+
+ To copy data from a host input buffer to the buffer(s) which the user supplies
+ to Pa_ReadStream, use the following calling sequence.
+
+ - Repeat the following three steps until the user buffer(s) have been filled
+    with samples from the host input buffers:
+     -# Call PaUtil_SetInputFrameCount with the number of frames in the host
+        input buffer.
+     -# Call one of the following functions one or more times to tell the
+        buffer processor about the host input buffer(s): PaUtil_SetInputChannel,
+        PaUtil_SetInterleavedInputChannels, PaUtil_SetNonInterleavedInputChannel.
+        Which function you call will depend on whether the host buffer(s) are
+        interleaved or not.
+     -# Call PaUtil_CopyInput with the user buffer pointer (or a copy of the
+        array of buffer pointers for a non-interleaved stream) passed to
+        Pa_ReadStream, along with the number of frames in the user buffer(s).
+        Be careful to pass a <i>copy</i> of the user buffer pointers to
+        PaUtil_CopyInput because PaUtil_CopyInput advances the pointers to
+        the start of the next region to copy.
+ - PaUtil_CopyInput will not copy more data than is available in the
+    host buffer(s), so the above steps need to be repeated until the user
+    buffer(s) are full.
+
+ 
+ To copy data to the host output buffer from the user buffers(s) supplied
+ to Pa_WriteStream use the following calling sequence.
+
+ - Repeat the following three steps until all frames from the user buffer(s)
+    have been copied to the host API:
+     -# Call PaUtil_SetOutputFrameCount with the number of frames in the host
+        output buffer.
+     -# Call one of the following functions one or more times to tell the
+        buffer processor about the host output buffer(s): PaUtil_SetOutputChannel,
+        PaUtil_SetInterleavedOutputChannels, PaUtil_SetNonInterleavedOutputChannel.
+        Which function you call will depend on whether the host buffer(s) are
+        interleaved or not.
+     -# Call PaUtil_CopyOutput with the user buffer pointer (or a copy of the
+        array of buffer pointers for a non-interleaved stream) passed to
+        Pa_WriteStream, along with the number of frames in the user buffer(s).
+        Be careful to pass a <i>copy</i> of the user buffer pointers to 
+        PaUtil_CopyOutput because PaUtil_CopyOutput advances the pointers to
+        the start of the next region to copy.
+ - PaUtil_CopyOutput will not copy more data than fits in the host buffer(s),
+    so the above steps need to be repeated until all user data is copied.
+*/
+
+
+#include "portaudio.h"
+#include "pa_converters.h"
+#include "pa_dither.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/** @brief Mode flag passed to PaUtil_InitializeBufferProcessor indicating the type
+ of buffering that the host API uses.
+
+ The mode used depends on whether the host API or the implementation manages
+ the buffers, and how these buffers are used (scatter gather, circular buffer).
+*/
+typedef enum {
+/** The host buffer size is a fixed known size. */
+    paUtilFixedHostBufferSize,
+
+/** The host buffer size may vary, but has a known maximum size. */
+    paUtilBoundedHostBufferSize,
+
+/** Nothing is known about the host buffer size. */
+    paUtilUnknownHostBufferSize,
+
+/** The host buffer size varies, and the client does not require the buffer
+ processor to consume all of the input and fill all of the output buffer. This
+ is useful when the implementation has access to the host API's circular buffer
+ and only needs to consume/fill some of it, not necessarily all of it, with each
+ call to the buffer processor. This is the only mode where
+ PaUtil_EndBufferProcessing() may not consume the whole buffer.
+*/
+    paUtilVariableHostBufferSizePartialUsageAllowed
+}PaUtilHostBufferSizeMode;
+
+
+/** @brief An auxilliary data structure used internally by the buffer processor
+ to represent host input and output buffers. */
+typedef struct PaUtilChannelDescriptor{
+    void *data;
+    unsigned int stride;  /**< stride in samples, not bytes */
+}PaUtilChannelDescriptor;
+
+
+/** @brief The main buffer processor data structure.
+
+ Allocate one of these, initialize it with PaUtil_InitializeBufferProcessor
+ and terminate it with PaUtil_TerminateBufferProcessor.
+*/
+typedef struct {
+    unsigned long framesPerUserBuffer;
+    unsigned long framesPerHostBuffer;
+
+    PaUtilHostBufferSizeMode hostBufferSizeMode;
+    int useNonAdaptingProcess;
+    unsigned long framesPerTempBuffer;
+
+    unsigned int inputChannelCount;
+    unsigned int bytesPerHostInputSample;
+    unsigned int bytesPerUserInputSample;
+    int userInputIsInterleaved;
+    PaUtilConverter *inputConverter;
+    PaUtilZeroer *inputZeroer;
+    
+    unsigned int outputChannelCount;
+    unsigned int bytesPerHostOutputSample;
+    unsigned int bytesPerUserOutputSample;
+    int userOutputIsInterleaved;
+    PaUtilConverter *outputConverter;
+    PaUtilZeroer *outputZeroer;
+
+    unsigned long initialFramesInTempInputBuffer;
+    unsigned long initialFramesInTempOutputBuffer;
+
+    void *tempInputBuffer;          /**< used for slips, block adaption, and conversion. */
+    void **tempInputBufferPtrs;     /**< storage for non-interleaved buffer pointers, NULL for interleaved user input */
+    unsigned long framesInTempInputBuffer; /**< frames remaining in input buffer from previous adaption iteration */
+
+    void *tempOutputBuffer;         /**< used for slips, block adaption, and conversion. */
+    void **tempOutputBufferPtrs;    /**< storage for non-interleaved buffer pointers, NULL for interleaved user output */
+    unsigned long framesInTempOutputBuffer; /**< frames remaining in input buffer from previous adaption iteration */
+
+    PaStreamCallbackTimeInfo *timeInfo;
+
+    PaStreamCallbackFlags callbackStatusFlags;
+
+    unsigned long hostInputFrameCount[2];
+    PaUtilChannelDescriptor *hostInputChannels[2]; /**< pointers to arrays of channel descriptors.
+                                                        pointers are NULL for half-duplex output processing.
+                                                        hostInputChannels[i].data is NULL when the caller
+                                                        calls PaUtil_SetNoInput()
+                                                        */
+    unsigned long hostOutputFrameCount[2];
+    PaUtilChannelDescriptor *hostOutputChannels[2]; /**< pointers to arrays of channel descriptors.
+                                                         pointers are NULL for half-duplex input processing.
+                                                         hostOutputChannels[i].data is NULL when the caller
+                                                         calls PaUtil_SetNoOutput()
+                                                         */
+
+    PaUtilTriangularDitherGenerator ditherGenerator;
+
+    double samplePeriod;
+
+    PaStreamCallback *streamCallback;
+    void *userData;
+} PaUtilBufferProcessor;
+
+
+/** @name Initialization, termination, resetting and info */
+/*@{*/
+
+/** Initialize a buffer processor's representation stored in a
+ PaUtilBufferProcessor structure. Be sure to call
+ PaUtil_TerminateBufferProcessor after finishing with a buffer processor.
+
+ @param bufferProcessor The buffer processor structure to initialize.
+
+ @param inputChannelCount The number of input channels as passed to
+ Pa_OpenStream or 0 for an output-only stream.
+
+ @param userInputSampleFormat Format of user input samples, as passed to
+ Pa_OpenStream. This parameter is ignored for ouput-only streams.
+ 
+ @param hostInputSampleFormat Format of host input samples. This parameter is
+ ignored for output-only streams. See note about host buffer interleave below.
+
+ @param outputChannelCount The number of output channels as passed to
+ Pa_OpenStream or 0 for an input-only stream.
+
+ @param userOutputSampleFormat Format of user output samples, as passed to
+ Pa_OpenStream. This parameter is ignored for input-only streams.
+ 
+ @param hostOutputSampleFormat Format of host output samples. This parameter is
+ ignored for input-only streams. See note about host buffer interleave below.
+
+ @param sampleRate Sample rate of the stream. The more accurate this is the
+ better - it is used for updating time stamps when adapting buffers.
+ 
+ @param streamFlags Stream flags as passed to Pa_OpenStream, this parameter is
+ used for selecting special sample conversion options such as clipping and
+ dithering.
+ 
+ @param framesPerUserBuffer Number of frames per user buffer, as requested
+ by the framesPerBuffer parameter to Pa_OpenStream. This parameter may be
+ zero to indicate that the user will accept any (and varying) buffer sizes.
+
+ @param framesPerHostBuffer Specifies the number of frames per host buffer
+ for the fixed buffer size mode, and the maximum number of frames
+ per host buffer for the bounded host buffer size mode. It is ignored for
+ the other modes.
+
+ @param hostBufferSizeMode A mode flag indicating the size variability of
+ host buffers that will be passed to the buffer processor. See
+ PaUtilHostBufferSizeMode for further details.
+ 
+ @param streamCallback The user stream callback passed to Pa_OpenStream.
+
+ @param userData The user data field passed to Pa_OpenStream.
+    
+ @note The interleave flag is ignored for host buffer formats. Host
+ interleave is determined by the use of different SetInput and SetOutput
+ functions.
+
+ @return An error code indicating whether the initialization was successful.
+ If the error code is not PaNoError, the buffer processor was not initialized
+ and should not be used.
+ 
+ @see Pa_OpenStream, PaUtilHostBufferSizeMode, PaUtil_TerminateBufferProcessor
+*/
+PaError PaUtil_InitializeBufferProcessor( PaUtilBufferProcessor* bufferProcessor,
+            int inputChannelCount, PaSampleFormat userInputSampleFormat,
+            PaSampleFormat hostInputSampleFormat,
+            int outputChannelCount, PaSampleFormat userOutputSampleFormat,
+            PaSampleFormat hostOutputSampleFormat,
+            double sampleRate,
+            PaStreamFlags streamFlags,
+            unsigned long framesPerUserBuffer, /* 0 indicates don't care */
+            unsigned long framesPerHostBuffer,
+            PaUtilHostBufferSizeMode hostBufferSizeMode,
+            PaStreamCallback *streamCallback, void *userData );
+
+
+/** Terminate a buffer processor's representation. Deallocates any temporary
+ buffers allocated by PaUtil_InitializeBufferProcessor.
+ 
+ @param bufferProcessor The buffer processor structure to terminate.
+
+ @see PaUtil_InitializeBufferProcessor.
+*/
+void PaUtil_TerminateBufferProcessor( PaUtilBufferProcessor* bufferProcessor );
+
+
+/** Clear any internally buffered data. If you call
+ PaUtil_InitializeBufferProcessor in your OpenStream routine, make sure you
+ call PaUtil_ResetBufferProcessor in your StartStream call.
+
+ @param bufferProcessor The buffer processor to reset.
+*/
+void PaUtil_ResetBufferProcessor( PaUtilBufferProcessor* bufferProcessor );
+
+
+/** Retrieve the input latency of a buffer processor.
+
+ @param bufferProcessor The buffer processor examine.
+
+ @return The input latency introduced by the buffer processor, in frames.
+
+ @see PaUtil_GetBufferProcessorOutputLatency
+*/
+unsigned long PaUtil_GetBufferProcessorInputLatency( PaUtilBufferProcessor* bufferProcessor );
+
+/** Retrieve the output latency of a buffer processor.
+
+ @param bufferProcessor The buffer processor examine.
+
+ @return The output latency introduced by the buffer processor, in frames.
+
+ @see PaUtil_GetBufferProcessorInputLatency
+*/
+unsigned long PaUtil_GetBufferProcessorOutputLatency( PaUtilBufferProcessor* bufferProcessor );
+
+/*@}*/
+
+
+/** @name Host buffer pointer configuration
+
+ Functions to set host input and output buffers, used by both callback streams
+ and blocking read/write streams.
+*/
+/*@{*/ 
+
+
+/** Set the number of frames in the input host buffer(s) specified by the
+ PaUtil_Set*InputChannel functions.
+
+ @param bufferProcessor The buffer processor.
+
+ @param frameCount The number of host input frames. A 0 frameCount indicates to
+ use the framesPerHostBuffer value passed to PaUtil_InitializeBufferProcessor.
+
+ @see PaUtil_SetNoInput, PaUtil_SetInputChannel,
+ PaUtil_SetInterleavedInputChannels, PaUtil_SetNonInterleavedInputChannel
+*/
+void PaUtil_SetInputFrameCount( PaUtilBufferProcessor* bufferProcessor,
+        unsigned long frameCount );
+
+        
+/** Indicate that no input is avalable. This function should be used when
+ priming the output of a full-duplex stream opened with the
+ paPrimeOutputBuffersUsingStreamCallback flag. Note that it is not necessary
+ to call this or any othe PaUtil_Set*Input* functions for ouput-only streams.
+
+ @param bufferProcessor The buffer processor.
+*/
+void PaUtil_SetNoInput( PaUtilBufferProcessor* bufferProcessor );
+
+
+/** Provide the buffer processor with a pointer to a host input channel.
+
+ @param bufferProcessor The buffer processor.
+ @param channel The channel number.
+ @param data The buffer.
+ @param stride The stride from one sample to the next, in samples. For
+ interleaved host buffers, the stride will usually be the same as the number of
+ channels in the buffer.
+*/
+void PaUtil_SetInputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data, unsigned int stride );
+
+
+/** Provide the buffer processor with a pointer to an number of interleaved
+ host input channels.
+
+ @param bufferProcessor The buffer processor.
+ @param firstChannel The first channel number.
+ @param data The buffer.
+ @param channelCount The number of interleaved channels in the buffer. If
+ channelCount is zero, the number of channels specified to
+ PaUtil_InitializeBufferProcessor will be used.
+*/
+void PaUtil_SetInterleavedInputChannels( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int firstChannel, void *data, unsigned int channelCount );
+
+
+/** Provide the buffer processor with a pointer to one non-interleaved host
+ output channel.
+
+ @param bufferProcessor The buffer processor.
+ @param channel The channel number.
+ @param data The buffer.
+*/
+void PaUtil_SetNonInterleavedInputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data );
+
+
+/** Use for the second buffer half when the input buffer is split in two halves.
+ @see PaUtil_SetInputFrameCount
+*/
+void PaUtil_Set2ndInputFrameCount( PaUtilBufferProcessor* bufferProcessor,
+        unsigned long frameCount );
+
+/** Use for the second buffer half when the input buffer is split in two halves.
+ @see PaUtil_SetInputChannel
+*/
+void PaUtil_Set2ndInputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data, unsigned int stride );
+
+/** Use for the second buffer half when the input buffer is split in two halves.
+ @see PaUtil_SetInterleavedInputChannels
+*/
+void PaUtil_Set2ndInterleavedInputChannels( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int firstChannel, void *data, unsigned int channelCount );
+
+/** Use for the second buffer half when the input buffer is split in two halves.
+ @see PaUtil_SetNonInterleavedInputChannel
+*/
+void PaUtil_Set2ndNonInterleavedInputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data );
+
+        
+/** Set the number of frames in the output host buffer(s) specified by the
+ PaUtil_Set*OutputChannel functions.
+
+ @param bufferProcessor The buffer processor.
+
+ @param frameCount The number of host output frames. A 0 frameCount indicates to
+ use the framesPerHostBuffer value passed to PaUtil_InitializeBufferProcessor.
+
+ @see PaUtil_SetOutputChannel, PaUtil_SetInterleavedOutputChannels,
+ PaUtil_SetNonInterleavedOutputChannel
+*/
+void PaUtil_SetOutputFrameCount( PaUtilBufferProcessor* bufferProcessor,
+        unsigned long frameCount );
+
+
+/** Indicate that the output will be discarded. This function should be used
+ when implementing the paNeverDropInput mode for full duplex streams.
+
+ @param bufferProcessor The buffer processor.
+*/
+void PaUtil_SetNoOutput( PaUtilBufferProcessor* bufferProcessor );
+
+
+/** Provide the buffer processor with a pointer to a host output channel.
+
+ @param bufferProcessor The buffer processor.
+ @param channel The channel number.
+ @param data The buffer.
+ @param stride The stride from one sample to the next, in samples. For
+ interleaved host buffers, the stride will usually be the same as the number of
+ channels in the buffer.
+*/
+void PaUtil_SetOutputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data, unsigned int stride );
+
+
+/** Provide the buffer processor with a pointer to a number of interleaved
+ host output channels.
+
+ @param bufferProcessor The buffer processor.
+ @param firstChannel The first channel number.
+ @param data The buffer.
+ @param channelCount The number of interleaved channels in the buffer. If
+ channelCount is zero, the number of channels specified to
+ PaUtil_InitializeBufferProcessor will be used.
+*/
+void PaUtil_SetInterleavedOutputChannels( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int firstChannel, void *data, unsigned int channelCount );
+
+        
+/** Provide the buffer processor with a pointer to one non-interleaved host
+ output channel.
+
+ @param bufferProcessor The buffer processor.
+ @param channel The channel number.
+ @param data The buffer.
+*/
+void PaUtil_SetNonInterleavedOutputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data );
+
+
+/** Use for the second buffer half when the output buffer is split in two halves.
+ @see PaUtil_SetOutputFrameCount
+*/
+void PaUtil_Set2ndOutputFrameCount( PaUtilBufferProcessor* bufferProcessor,
+        unsigned long frameCount );
+
+/** Use for the second buffer half when the output buffer is split in two halves.
+ @see PaUtil_SetOutputChannel
+*/
+void PaUtil_Set2ndOutputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data, unsigned int stride );
+
+/** Use for the second buffer half when the output buffer is split in two halves.
+ @see PaUtil_SetInterleavedOutputChannels
+*/
+void PaUtil_Set2ndInterleavedOutputChannels( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int firstChannel, void *data, unsigned int channelCount );
+
+/** Use for the second buffer half when the output buffer is split in two halves.
+ @see PaUtil_SetNonInterleavedOutputChannel
+*/
+void PaUtil_Set2ndNonInterleavedOutputChannel( PaUtilBufferProcessor* bufferProcessor,
+        unsigned int channel, void *data );
+
+/*@}*/
+
+
+/** @name Buffer processing functions for callback streams
+*/
+/*@{*/
+
+/** Commence processing a host buffer (or a pair of host buffers in the
+ full-duplex case) for a callback stream.
+
+ @param bufferProcessor The buffer processor.
+
+ @param timeInfo Timing information for the first sample of the host
+ buffer(s). This information may be adjusted when buffer adaption is being
+ performed.
+
+ @param callbackStatusFlags Flags indicating whether underruns and overruns
+ have occurred since the last time the buffer processor was called.
+*/
+void PaUtil_BeginBufferProcessing( PaUtilBufferProcessor* bufferProcessor,
+        PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags callbackStatusFlags );
+
+        
+/** Finish processing a host buffer (or a pair of host buffers in the
+ full-duplex case) for a callback stream.
+
+ @param bufferProcessor The buffer processor.
+ 
+ @param callbackResult On input, indicates a previous callback result, and on
+ exit, the result of the user stream callback, if it is called.
+ On entry callbackResult should contain one of { paContinue, paComplete, or
+ paAbort}. If paComplete is passed, the stream callback will not be called
+ but any audio that was generated by previous stream callbacks will be copied
+ to the output buffer(s). You can check whether the buffer processor's internal
+ buffer is empty by calling PaUtil_IsBufferProcessorOutputEmpty.
+
+ If the stream callback is called its result is stored in *callbackResult. If
+ the stream callback returns paComplete or paAbort, all output buffers will be
+ full of valid data - some of which may be zeros to acount for data that
+ wasn't generated by the terminating callback.
+
+ @return The number of frames processed. This usually corresponds to the
+ number of frames specified by the PaUtil_Set*FrameCount functions, exept in
+ the paUtilVariableHostBufferSizePartialUsageAllowed buffer size mode when a
+ smaller value may be returned.
+*/
+unsigned long PaUtil_EndBufferProcessing( PaUtilBufferProcessor* bufferProcessor,
+        int *callbackResult );
+
+
+/** Determine whether any callback generated output remains in the bufffer
+ processor's internal buffers. This method may be used to determine when to
+ continue calling PaUtil_EndBufferProcessing() after the callback has returned
+ a callbackResult of paComplete.
+
+ @param bufferProcessor The buffer processor.
+ 
+ @return Returns non-zero when callback generated output remains in the internal
+ buffer and zero (0) when there internal buffer contains no callback generated
+ data.
+*/
+int PaUtil_IsBufferProcessorOutputEmpty( PaUtilBufferProcessor* bufferProcessor );
+
+/*@}*/
+
+
+/** @name Buffer processing functions for blocking read/write streams
+*/
+/*@{*/
+
+/** Copy samples from host input channels set up by the PaUtil_Set*InputChannels
+ functions to a user supplied buffer. This function is intended for use with
+ blocking read/write streams. Copies the minimum of the number of
+ user frames (specified by the frameCount parameter) and the number of available
+ host frames (specified in a previous call to SetInputFrameCount()).
+
+ @param bufferProcessor The buffer processor.
+
+ @param buffer A pointer to the user buffer pointer, or a pointer to a pointer
+ to an array of user buffer pointers for a non-interleaved stream. It is
+ important that this parameter points to a copy of the user buffer pointers,
+ not to the actual user buffer pointers, because this function updates the
+ pointers before returning.
+
+ @param frameCount The number of frames of data in the buffer(s) pointed to by
+ the buffer parameter.
+
+ @return The number of frames copied. The buffer pointer(s) pointed to by the
+ buffer parameter are advanced to point to the frame(s) following the last one
+ filled.
+*/
+unsigned long PaUtil_CopyInput( PaUtilBufferProcessor* bufferProcessor,
+        void **buffer, unsigned long frameCount );
+
+
+/* Copy samples from a user supplied buffer to host output channels set up by
+ the PaUtil_Set*OutputChannels functions. This function is intended for use with
+ blocking read/write streams. Copies the minimum of the number of
+ user frames (specified by the frameCount parameter) and the number of
+ host frames (specified in a previous call to SetOutputFrameCount()).
+
+ @param bufferProcessor The buffer processor.
+
+ @param buffer A pointer to the user buffer pointer, or a pointer to a pointer
+ to an array of user buffer pointers for a non-interleaved stream. It is
+ important that this parameter points to a copy of the user buffer pointers,
+ not to the actual user buffer pointers, because this function updates the
+ pointers before returning.
+
+ @param frameCount The number of frames of data in the buffer(s) pointed to by
+ the buffer parameter.
+
+ @return The number of frames copied. The buffer pointer(s) pointed to by the
+ buffer parameter are advanced to point to the frame(s) following the last one
+ copied.
+*/
+unsigned long PaUtil_CopyOutput( PaUtilBufferProcessor* bufferProcessor,
+        const void ** buffer, unsigned long frameCount );
+
+
+/* Zero samples in host output channels set up by the PaUtil_Set*OutputChannels
+ functions. This function is useful for flushing streams.
+ Zeros the minimum of frameCount and the number of host frames specified in a
+ previous call to SetOutputFrameCount().
+
+ @param bufferProcessor The buffer processor.
+
+ @param frameCount The maximum number of frames to zero.
+ 
+ @return The number of frames zeroed.
+*/
+unsigned long PaUtil_ZeroOutput( PaUtilBufferProcessor* bufferProcessor,
+        unsigned long frameCount );
+
+
+/*@}*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_PROCESS_H */
diff --git a/external/portaudio2007/pa_ringbuffer.c b/external/portaudio2007/pa_ringbuffer.c
new file mode 100644
index 0000000..f4e1201
--- /dev/null
+++ b/external/portaudio2007/pa_ringbuffer.c
@@ -0,0 +1,285 @@
+/*
+ * $Id: pa_ringbuffer.c 1240 2007-07-17 13:05:07Z bjornroche $
+ * Portable Audio I/O Library
+ * Ring Buffer utility.
+ *
+ * Author: Phil Burk, http://www.softsynth.com
+ * modified for SMP safety on Mac OS X by Bjorn Roche
+ * modified for SMP safety on Linux by Leland Lucius
+ * also, allowed for const where possible
+ * Note that this is safe only for a single-thread reader and a
+ * single-thread writer.
+ *
+ * This program uses the PortAudio Portable Audio Library.
+ * For more information see: http://www.portaudio.com
+ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup common_src
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "pa_ringbuffer.h"
+#include <string.h>
+
+/****************
+ * First, we'll define some memory barrier primitives based on the system.
+ * right now only OS X, FreeBSD, and Linux are supported. In addition to providing
+ * memory barriers, these functions should ensure that data cached in registers
+ * is written out to cache where it can be snooped by other CPUs. (ie, the volatile
+ * keyword should not be required)
+ *
+ * the primitives that must be defined are:
+ *
+ * PaUtil_FullMemoryBarrier()
+ * PaUtil_ReadMemoryBarrier()
+ * PaUtil_WriteMemoryBarrier()
+ *
+ ****************/
+
+#if defined(__APPLE__)
+#   include <libkern/OSAtomic.h>
+    /* Here are the memory barrier functions. Mac OS X only provides
+       full memory barriers, so the three types of barriers are the same,
+       however, these barriers are superior to compiler-based ones. */
+#   define PaUtil_FullMemoryBarrier()  OSMemoryBarrier()
+#   define PaUtil_ReadMemoryBarrier()  OSMemoryBarrier()
+#   define PaUtil_WriteMemoryBarrier() OSMemoryBarrier()
+#elif defined(__GNUC__)
+    /* GCC >= 4.1 has built-in intrinsics. We'll use those */
+#   if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
+#      define PaUtil_FullMemoryBarrier()  __sync_synchronize()
+#      define PaUtil_ReadMemoryBarrier()  __sync_synchronize()
+#      define PaUtil_WriteMemoryBarrier() __sync_synchronize()
+    /* as a fallback, GCC understands volatile asm and "memory" to mean it
+     * should not reorder memory read/writes */
+#   elif defined( __PPC__ )
+#      define PaUtil_FullMemoryBarrier()  asm volatile("sync":::"memory")
+#      define PaUtil_ReadMemoryBarrier()  asm volatile("sync":::"memory")
+#      define PaUtil_WriteMemoryBarrier() asm volatile("sync":::"memory")
+#   elif defined( __i386__ ) || defined( __i486__ ) || defined( __i586__ ) || defined( __i686__ ) || defined( __x86_64__ )
+#      define PaUtil_FullMemoryBarrier()  asm volatile("mfence":::"memory")
+#      define PaUtil_ReadMemoryBarrier()  asm volatile("lfence":::"memory")
+#      define PaUtil_WriteMemoryBarrier() asm volatile("sfence":::"memory")
+#   else
+#      ifdef ALLOW_SMP_DANGERS
+#         warning Memory barriers not defined on this system or system unknown
+#         warning For SMP safety, you should fix this.
+#         define PaUtil_FullMemoryBarrier()
+#         define PaUtil_ReadMemoryBarrier()
+#         define PaUtil_WriteMemoryBarrier()
+#      else
+#         error Memory barriers are not defined on this system. You can still compile by defining ALLOW_SMP_DANGERS, but SMP safety will not be guaranteed.
+#      endif
+#   endif
+#else
+#   ifdef ALLOW_SMP_DANGERS
+#      warning Memory barriers not defined on this system or system unknown
+#      warning For SMP safety, you should fix this.
+#      define PaUtil_FullMemoryBarrier()
+#      define PaUtil_ReadMemoryBarrier()
+#      define PaUtil_WriteMemoryBarrier()
+#   else
+#      error Memory barriers are not defined on this system. You can still compile by defining ALLOW_SMP_DANGERS, but SMP safety will not be guaranteed.
+#   endif
+#endif
+
+/***************************************************************************
+ * Initialize FIFO.
+ * numBytes must be power of 2, returns -1 if not.
+ */
+long PaUtil_InitializeRingBuffer( PaUtilRingBuffer *rbuf, long numBytes, void *dataPtr )
+{
+    if( ((numBytes-1) & numBytes) != 0) return -1; /* Not Power of two. */
+    rbuf->bufferSize = numBytes;
+    rbuf->buffer = (char *)dataPtr;
+    PaUtil_FlushRingBuffer( rbuf );
+    rbuf->bigMask = (numBytes*2)-1;
+    rbuf->smallMask = (numBytes)-1;
+    return 0;
+}
+
+/***************************************************************************
+** Return number of bytes available for reading. */
+long PaUtil_GetRingBufferReadAvailable( PaUtilRingBuffer *rbuf )
+{
+    PaUtil_ReadMemoryBarrier();
+    return ( (rbuf->writeIndex - rbuf->readIndex) & rbuf->bigMask );
+}
+/***************************************************************************
+** Return number of bytes available for writing. */
+long PaUtil_GetRingBufferWriteAvailable( PaUtilRingBuffer *rbuf )
+{
+    /* Since we are calling PaUtil_GetRingBufferReadAvailable, we don't need an aditional MB */
+    return ( rbuf->bufferSize - PaUtil_GetRingBufferReadAvailable(rbuf));
+}
+
+/***************************************************************************
+** Clear buffer. Should only be called when buffer is NOT being read. */
+void PaUtil_FlushRingBuffer( PaUtilRingBuffer *rbuf )
+{
+    rbuf->writeIndex = rbuf->readIndex = 0;
+}
+
+/***************************************************************************
+** Get address of region(s) to which we can write data.
+** If the region is contiguous, size2 will be zero.
+** If non-contiguous, size2 will be the size of second region.
+** Returns room available to be written or numBytes, whichever is smaller.
+*/
+long PaUtil_GetRingBufferWriteRegions( PaUtilRingBuffer *rbuf, long numBytes,
+                                       void **dataPtr1, long *sizePtr1,
+                                       void **dataPtr2, long *sizePtr2 )
+{
+    long   index;
+    long   available = PaUtil_GetRingBufferWriteAvailable( rbuf );
+    if( numBytes > available ) numBytes = available;
+    /* Check to see if write is not contiguous. */
+    index = rbuf->writeIndex & rbuf->smallMask;
+    if( (index + numBytes) > rbuf->bufferSize )
+    {
+        /* Write data in two blocks that wrap the buffer. */
+        long   firstHalf = rbuf->bufferSize - index;
+        *dataPtr1 = &rbuf->buffer[index];
+        *sizePtr1 = firstHalf;
+        *dataPtr2 = &rbuf->buffer[0];
+        *sizePtr2 = numBytes - firstHalf;
+    }
+    else
+    {
+        *dataPtr1 = &rbuf->buffer[index];
+        *sizePtr1 = numBytes;
+        *dataPtr2 = NULL;
+        *sizePtr2 = 0;
+    }
+    return numBytes;
+}
+
+
+/***************************************************************************
+*/
+long PaUtil_AdvanceRingBufferWriteIndex( PaUtilRingBuffer *rbuf, long numBytes )
+{
+    /* we need to ensure that previous writes are seen before we update the write index */
+    PaUtil_WriteMemoryBarrier();
+    return rbuf->writeIndex = (rbuf->writeIndex + numBytes) & rbuf->bigMask;
+}
+
+/***************************************************************************
+** Get address of region(s) from which we can read data.
+** If the region is contiguous, size2 will be zero.
+** If non-contiguous, size2 will be the size of second region.
+** Returns room available to be written or numBytes, whichever is smaller.
+*/
+long PaUtil_GetRingBufferReadRegions( PaUtilRingBuffer *rbuf, long numBytes,
+                                void **dataPtr1, long *sizePtr1,
+                                void **dataPtr2, long *sizePtr2 )
+{
+    long   index;
+    long   available = PaUtil_GetRingBufferReadAvailable( rbuf );
+    if( numBytes > available ) numBytes = available;
+    /* Check to see if read is not contiguous. */
+    index = rbuf->readIndex & rbuf->smallMask;
+    if( (index + numBytes) > rbuf->bufferSize )
+    {
+        /* Write data in two blocks that wrap the buffer. */
+        long firstHalf = rbuf->bufferSize - index;
+        *dataPtr1 = &rbuf->buffer[index];
+        *sizePtr1 = firstHalf;
+        *dataPtr2 = &rbuf->buffer[0];
+        *sizePtr2 = numBytes - firstHalf;
+    }
+    else
+    {
+        *dataPtr1 = &rbuf->buffer[index];
+        *sizePtr1 = numBytes;
+        *dataPtr2 = NULL;
+        *sizePtr2 = 0;
+    }
+    return numBytes;
+}
+/***************************************************************************
+*/
+long PaUtil_AdvanceRingBufferReadIndex( PaUtilRingBuffer *rbuf, long numBytes )
+{
+    /* we need to ensure that previous writes are always seen before updating the index. */
+    PaUtil_WriteMemoryBarrier();
+    return rbuf->readIndex = (rbuf->readIndex + numBytes) & rbuf->bigMask;
+}
+
+/***************************************************************************
+** Return bytes written. */
+long PaUtil_WriteRingBuffer( PaUtilRingBuffer *rbuf, const void *data, long numBytes )
+{
+    long size1, size2, numWritten;
+    void *data1, *data2;
+    numWritten = PaUtil_GetRingBufferWriteRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
+    if( size2 > 0 )
+    {
+
+        memcpy( data1, data, size1 );
+        data = ((char *)data) + size1;
+        memcpy( data2, data, size2 );
+    }
+    else
+    {
+        memcpy( data1, data, size1 );
+    }
+    PaUtil_AdvanceRingBufferWriteIndex( rbuf, numWritten );
+    return numWritten;
+}
+
+/***************************************************************************
+** Return bytes read. */
+long PaUtil_ReadRingBuffer( PaUtilRingBuffer *rbuf, void *data, long numBytes )
+{
+    long size1, size2, numRead;
+    void *data1, *data2;
+    numRead = PaUtil_GetRingBufferReadRegions( rbuf, numBytes, &data1, &size1, &data2, &size2 );
+    if( size2 > 0 )
+    {
+        memcpy( data, data1, size1 );
+        data = ((char *)data) + size1;
+        memcpy( data, data2, size2 );
+    }
+    else
+    {
+        memcpy( data, data1, size1 );
+    }
+    PaUtil_AdvanceRingBufferReadIndex( rbuf, numRead );
+    return numRead;
+}
diff --git a/external/portaudio2007/pa_ringbuffer.h b/external/portaudio2007/pa_ringbuffer.h
new file mode 100644
index 0000000..b380889
--- /dev/null
+++ b/external/portaudio2007/pa_ringbuffer.h
@@ -0,0 +1,198 @@
+#ifndef PA_RINGBUFFER_H
+#define PA_RINGBUFFER_H
+/*
+ * $Id: pa_ringbuffer.h 1151 2006-11-29 02:11:16Z leland_lucius $
+ * Portable Audio I/O Library
+ * Ring Buffer utility.
+ *
+ * Author: Phil Burk, http://www.softsynth.com
+ * modified for SMP safety on OS X by Bjorn Roche.
+ * also allowed for const where possible.
+ * Note that this is safe only for a single-thread reader
+ * and a single-thread writer.
+ *
+ * This program is distributed with the PortAudio Portable Audio Library.
+ * For more information see: http://www.portaudio.com
+ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+typedef struct PaUtilRingBuffer
+{
+    long   bufferSize; /* Number of bytes in FIFO. Power of 2. Set by PaUtil_InitRingBuffer. */
+    long   writeIndex; /* Index of next writable byte. Set by PaUtil_AdvanceRingBufferWriteIndex. */
+    long   readIndex;  /* Index of next readable byte. Set by PaUtil_AdvanceRingBufferReadIndex. */
+    long   bigMask;    /* Used for wrapping indices with extra bit to distinguish full/empty. */
+    long   smallMask;  /* Used for fitting indices to buffer. */
+    char  *buffer;
+}PaUtilRingBuffer;
+
+/** Initialize Ring Buffer.
+
+ @param rbuf The ring buffer.
+
+ @param numBytes The number of bytes in the buffer and must be power of 2.
+
+ @param dataPtr A pointer to a previously allocated area where the data
+ will be maintained.  It must be numBytes long.
+
+ @return -1 if numBytes is not a power of 2, otherwise 0.
+*/
+long PaUtil_InitializeRingBuffer( PaUtilRingBuffer *rbuf, long numBytes, void *dataPtr );
+
+/** Clear buffer. Should only be called when buffer is NOT being read.
+
+ @param rbuf The ring buffer.
+*/
+void PaUtil_FlushRingBuffer( PaUtilRingBuffer *rbuf );
+
+/** Retrieve the number of bytes available in the ring buffer for writing.
+
+ @param rbuf The ring buffer.
+
+ @return The number of bytes available for writing.
+*/
+long PaUtil_GetRingBufferWriteAvailable( PaUtilRingBuffer *rbuf );
+
+/** Retrieve the number of bytes available in the ring buffer for reading.
+
+ @param rbuf The ring buffer.
+
+ @return The number of bytes available for reading.
+*/
+long PaUtil_GetRingBufferReadAvailable( PaUtilRingBuffer *rbuf );
+
+/** Write data to the ring buffer.
+
+ @param rbuf The ring buffer.
+
+ @param data The address of new data to write to the buffer.
+
+ @param numBytes The number of bytes to be written.
+
+ @return The number of bytes written.
+*/
+long PaUtil_WriteRingBuffer( PaUtilRingBuffer *rbuf, const void *data, long numBytes );
+
+/** Read data from the ring buffer.
+
+ @param rbuf The ring buffer.
+
+ @param data The address where the data should be stored.
+
+ @param numBytes The number of bytes to be read.
+
+ @return The number of bytes read.
+*/
+long PaUtil_ReadRingBuffer( PaUtilRingBuffer *rbuf, void *data, long numBytes );
+
+/** Get address of region(s) to which we can write data.
+
+ @param rbuf The ring buffer.
+
+ @param numBytes The number of bytes desired.
+
+ @param dataPtr1 The address where the first (or only) region pointer will be
+ stored.
+
+ @param sizePtr1 The address where the first (or only) region length will be
+ stored.
+
+ @param dataPtr2 The address where the second region pointer will be stored if
+ the first region is too small to satisfy numBytes.
+
+ @param sizePtr2 The address where the second region length will be stored if
+ the first region is too small to satisfy numBytes.
+
+ @return The room available to be written or numBytes, whichever is smaller.
+*/
+long PaUtil_GetRingBufferWriteRegions( PaUtilRingBuffer *rbuf, long numBytes,
+                                       void **dataPtr1, long *sizePtr1,
+                                       void **dataPtr2, long *sizePtr2 );
+
+/** Advance the write index to the next location to be written.
+
+ @param rbuf The ring buffer.
+
+ @param numBytes The number of bytes to advance.
+
+ @return The new position.
+*/
+long PaUtil_AdvanceRingBufferWriteIndex( PaUtilRingBuffer *rbuf, long numBytes );
+
+/** Get address of region(s) from which we can write data.
+
+ @param rbuf The ring buffer.
+
+ @param numBytes The number of bytes desired.
+
+ @param dataPtr1 The address where the first (or only) region pointer will be
+ stored.
+
+ @param sizePtr1 The address where the first (or only) region length will be
+ stored.
+
+ @param dataPtr2 The address where the second region pointer will be stored if
+ the first region is too small to satisfy numBytes.
+
+ @param sizePtr2 The address where the second region length will be stored if
+ the first region is too small to satisfy numBytes.
+
+ @return The number of bytes available for reading.
+*/
+long PaUtil_GetRingBufferReadRegions( PaUtilRingBuffer *rbuf, long numBytes,
+                                      void **dataPtr1, long *sizePtr1,
+                                      void **dataPtr2, long *sizePtr2 );
+
+/** Advance the read index to the next location to be read.
+
+ @param rbuf The ring buffer.
+
+ @param numBytes The number of bytes to advance.
+
+ @return The new position.
+*/
+long PaUtil_AdvanceRingBufferReadIndex( PaUtilRingBuffer *rbuf, long numBytes );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_RINGBUFFER_H */
diff --git a/external/portaudio2007/pa_skeleton.c b/external/portaudio2007/pa_skeleton.c
new file mode 100644
index 0000000..e229b07
--- /dev/null
+++ b/external/portaudio2007/pa_skeleton.c
@@ -0,0 +1,816 @@
+/*
+ * $Id: pa_skeleton.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library skeleton implementation
+ * demonstrates how to use the common functions to implement support
+ * for a host API
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Skeleton implementation of support for a host API.
+
+ @note This file is provided as a starting point for implementing support for
+ a new host API. IMPLEMENT ME comments are used to indicate functionality
+ which much be customised for each implementation.
+*/
+
+
+#include <string.h> /* strlen() */
+
+#include "pa_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+
+
+/* prototypes for functions declared in this file */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaSkeleton_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+static PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+static signed long GetStreamReadAvailable( PaStream* stream );
+static signed long GetStreamWriteAvailable( PaStream* stream );
+
+
+/* IMPLEMENT ME: a macro like the following one should be used for reporting
+ host errors */
+#define PA_SKELETON_SET_LAST_HOST_ERROR( errorCode, errorText ) \
+    PaUtil_SetLastHostErrorInfo( paInDevelopment, errorCode, errorText )
+
+/* PaSkeletonHostApiRepresentation - host api datastructure specific to this implementation */
+
+typedef struct
+{
+    PaUtilHostApiRepresentation inheritedHostApiRep;
+    PaUtilStreamInterface callbackStreamInterface;
+    PaUtilStreamInterface blockingStreamInterface;
+
+    PaUtilAllocationGroup *allocations;
+
+    /* implementation specific data goes here */
+}
+PaSkeletonHostApiRepresentation;  /* IMPLEMENT ME: rename this */
+
+
+PaError PaSkeleton_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    int i, deviceCount;
+    PaSkeletonHostApiRepresentation *skeletonHostApi;
+    PaDeviceInfo *deviceInfoArray;
+
+    skeletonHostApi = (PaSkeletonHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaSkeletonHostApiRepresentation) );
+    if( !skeletonHostApi )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    skeletonHostApi->allocations = PaUtil_CreateAllocationGroup();
+    if( !skeletonHostApi->allocations )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    *hostApi = &skeletonHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paInDevelopment;            /* IMPLEMENT ME: change to correct type id */
+    (*hostApi)->info.name = "skeleton implementation";  /* IMPLEMENT ME: change to correct name */
+
+    (*hostApi)->info.defaultInputDevice = paNoDevice;  /* IMPLEMENT ME */
+    (*hostApi)->info.defaultOutputDevice = paNoDevice; /* IMPLEMENT ME */
+
+    (*hostApi)->info.deviceCount = 0;  
+
+    deviceCount = 0; /* IMPLEMENT ME */
+    
+    if( deviceCount > 0 )
+    {
+        (*hostApi)->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+                skeletonHostApi->allocations, sizeof(PaDeviceInfo*) * deviceCount );
+        if( !(*hostApi)->deviceInfos )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        /* allocate all device info structs in a contiguous block */
+        deviceInfoArray = (PaDeviceInfo*)PaUtil_GroupAllocateMemory(
+                skeletonHostApi->allocations, sizeof(PaDeviceInfo) * deviceCount );
+        if( !deviceInfoArray )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        for( i=0; i < deviceCount; ++i )
+        {
+            PaDeviceInfo *deviceInfo = &deviceInfoArray[i];
+            deviceInfo->structVersion = 2;
+            deviceInfo->hostApi = hostApiIndex;
+            deviceInfo->name = 0; /* IMPLEMENT ME: allocate block and copy name eg:
+                deviceName = (char*)PaUtil_GroupAllocateMemory( skeletonHostApi->allocations, strlen(srcName) + 1 );
+                if( !deviceName )
+                {
+                    result = paInsufficientMemory;
+                    goto error;
+                }
+                strcpy( deviceName, srcName );
+                deviceInfo->name = deviceName;
+            */
+
+            deviceInfo->maxInputChannels = 0;  /* IMPLEMENT ME */
+            deviceInfo->maxOutputChannels = 0;  /* IMPLEMENT ME */
+            
+            deviceInfo->defaultLowInputLatency = 0.;  /* IMPLEMENT ME */
+            deviceInfo->defaultLowOutputLatency = 0.;  /* IMPLEMENT ME */
+            deviceInfo->defaultHighInputLatency = 0.;  /* IMPLEMENT ME */
+            deviceInfo->defaultHighOutputLatency = 0.;  /* IMPLEMENT ME */  
+
+            deviceInfo->defaultSampleRate = 0.; /* IMPLEMENT ME */
+            
+            (*hostApi)->deviceInfos[i] = deviceInfo;
+            ++(*hostApi)->info.deviceCount;
+        }
+    }
+
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PaUtil_InitializeStreamInterface( &skeletonHostApi->callbackStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable, PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &skeletonHostApi->blockingStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable );
+
+    return result;
+
+error:
+    if( skeletonHostApi )
+    {
+        if( skeletonHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( skeletonHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( skeletonHostApi->allocations );
+        }
+                
+        PaUtil_FreeMemory( skeletonHostApi );
+    }
+    return result;
+}
+
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaSkeletonHostApiRepresentation *skeletonHostApi = (PaSkeletonHostApiRepresentation*)hostApi;
+
+    /*
+        IMPLEMENT ME:
+            - clean up any resources not handled by the allocation group
+    */
+
+    if( skeletonHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( skeletonHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( skeletonHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( skeletonHostApi );
+}
+
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( inputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+            
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        if( inputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+    }
+    else
+    {
+        inputChannelCount = 0;
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( outputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+            
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support outputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        if( outputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+    }
+    else
+    {
+        outputChannelCount = 0;
+    }
+    
+    /*
+        IMPLEMENT ME:
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported if necessary
+
+            - check that the device supports sampleRate
+
+        Because the buffer adapter handles conversion between all standard
+        sample formats, the following checks are only required if paCustomFormat
+        is implemented, or under some other unusual conditions.
+
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from inputSampleFormat to
+                a native format
+
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+    */
+
+
+    /* suppress unused variable warnings */
+    (void) sampleRate;
+
+    return paFormatIsSupported;
+}
+
+/* PaSkeletonStream - a stream data structure specifically for this implementation */
+
+typedef struct PaSkeletonStream
+{ /* IMPLEMENT ME: rename this */
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+
+    /* IMPLEMENT ME:
+            - implementation specific data goes here
+    */
+    unsigned long framesPerHostCallback; /* just an example */
+}
+PaSkeletonStream;
+
+/* see pa_hostapi.h for a list of validity guarantees made about OpenStream parameters */
+
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaSkeletonHostApiRepresentation *skeletonHostApi = (PaSkeletonHostApiRepresentation*)hostApi;
+    PaSkeletonStream *stream = 0;
+    unsigned long framesPerHostBuffer = framesPerBuffer; /* these may not be equivalent for all implementations */
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaSampleFormat hostInputSampleFormat, hostOutputSampleFormat;
+
+
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        if( inputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+        /* IMPLEMENT ME - establish which  host formats are available */
+        hostInputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( paInt16 /* native formats */, inputSampleFormat );
+    }
+    else
+    {
+        inputChannelCount = 0;
+        inputSampleFormat = hostInputSampleFormat = paInt16; /* Surpress 'uninitialised var' warnings. */
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support inputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        if( outputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+        /* IMPLEMENT ME - establish which  host formats are available */
+        hostOutputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( paInt16 /* native formats */, outputSampleFormat );
+    }
+    else
+    {
+        outputChannelCount = 0;
+        outputSampleFormat = hostOutputSampleFormat = paInt16; /* Surpress 'uninitialized var' warnings. */
+    }
+
+    /*
+        IMPLEMENT ME:
+
+        ( the following two checks are taken care of by PaUtil_InitializeBufferProcessor() FIXME - checks needed? )
+
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported
+
+            - check that the device supports sampleRate
+
+            - alter sampleRate to a close allowable rate if possible / necessary
+
+            - validate suggestedInputLatency and suggestedOutputLatency parameters,
+                use default values where necessary
+    */
+
+
+
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+
+    stream = (PaSkeletonStream*)PaUtil_AllocateMemory( sizeof(PaSkeletonStream) );
+    if( !stream )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    if( streamCallback )
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &skeletonHostApi->callbackStreamInterface, streamCallback, userData );
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &skeletonHostApi->blockingStreamInterface, streamCallback, userData );
+    }
+
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+
+    /* we assume a fixed host buffer size in this example, but the buffer processor
+        can also support bounded and unknown host buffer sizes by passing 
+        paUtilBoundedHostBufferSize or paUtilUnknownHostBufferSize instead of
+        paUtilFixedHostBufferSize below. */
+        
+    result =  PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+              inputChannelCount, inputSampleFormat, hostInputSampleFormat,
+              outputChannelCount, outputSampleFormat, hostOutputSampleFormat,
+              sampleRate, streamFlags, framesPerBuffer,
+              framesPerHostBuffer, paUtilFixedHostBufferSize,
+              streamCallback, userData );
+    if( result != paNoError )
+        goto error;
+
+
+    /*
+        IMPLEMENT ME: initialise the following fields with estimated or actual
+        values.
+    */
+    stream->streamRepresentation.streamInfo.inputLatency =
+            PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor);
+    stream->streamRepresentation.streamInfo.outputLatency =
+            PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor);
+    stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+    
+    /*
+        IMPLEMENT ME:
+            - additional stream setup + opening
+    */
+
+    stream->framesPerHostCallback = framesPerHostBuffer;
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+    if( stream )
+        PaUtil_FreeMemory( stream );
+
+    return result;
+}
+
+/*
+    ExampleHostProcessingLoop() illustrates the kind of processing which may
+    occur in a host implementation.
+ 
+*/
+static void ExampleHostProcessingLoop( void *inputBuffer, void *outputBuffer, void *userData )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)userData;
+    PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /* IMPLEMENT ME */
+    int callbackResult;
+    unsigned long framesProcessed;
+    
+    PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+    
+    /*
+        IMPLEMENT ME:
+            - generate timing information
+            - handle buffer slips
+    */
+
+    /*
+        If you need to byte swap or shift inputBuffer to convert it into a
+        portaudio format, do it here.
+    */
+
+
+
+    PaUtil_BeginBufferProcessing( &stream->bufferProcessor, &timeInfo, 0 /* IMPLEMENT ME: pass underflow/overflow flags when necessary */ );
+
+    /*
+        depending on whether the host buffers are interleaved, non-interleaved
+        or a mixture, you will want to call PaUtil_SetInterleaved*Channels(),
+        PaUtil_SetNonInterleaved*Channel() or PaUtil_Set*Channel() here.
+    */
+    
+    PaUtil_SetInputFrameCount( &stream->bufferProcessor, 0 /* default to host buffer size */ );
+    PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor,
+            0, /* first channel of inputBuffer is channel 0 */
+            inputBuffer,
+            0 ); /* 0 - use inputChannelCount passed to init buffer processor */
+
+    PaUtil_SetOutputFrameCount( &stream->bufferProcessor, 0 /* default to host buffer size */ );
+    PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor,
+            0, /* first channel of outputBuffer is channel 0 */
+            outputBuffer,
+            0 ); /* 0 - use outputChannelCount passed to init buffer processor */
+
+    /* you must pass a valid value of callback result to PaUtil_EndBufferProcessing()
+        in general you would pass paContinue for normal operation, and
+        paComplete to drain the buffer processor's internal output buffer.
+        You can check whether the buffer processor's output buffer is empty
+        using PaUtil_IsBufferProcessorOuputEmpty( bufferProcessor )
+    */
+    callbackResult = paContinue;
+    framesProcessed = PaUtil_EndBufferProcessing( &stream->bufferProcessor, &callbackResult );
+
+    
+    /*
+        If you need to byte swap or shift outputBuffer to convert it to
+        host format, do it here.
+    */
+
+    PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+
+
+    if( callbackResult == paContinue )
+    {
+        /* nothing special to do */
+    }
+    else if( callbackResult == paAbort )
+    {
+        /* IMPLEMENT ME - finish playback immediately  */
+
+        /* once finished, call the finished callback */
+        if( stream->streamRepresentation.streamFinishedCallback != 0 )
+            stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+    else
+    {
+        /* User callback has asked us to stop with paComplete or other non-zero value */
+
+        /* IMPLEMENT ME - finish playback once currently queued audio has completed  */
+
+        /* once finished, call the finished callback */
+        if( stream->streamRepresentation.streamFinishedCallback != 0 )
+            stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+}
+
+
+/*
+    When CloseStream() is called, the multi-api layer ensures that
+    the stream has already been stopped or aborted.
+*/
+static PaError CloseStream( PaStream* s )
+{
+    PaError result = paNoError;
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /*
+        IMPLEMENT ME:
+            - additional stream closing + cleanup
+    */
+
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+    PaUtil_FreeMemory( stream );
+
+    return result;
+}
+
+
+static PaError StartStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior */
+
+    /* suppress unused function warning. the code in ExampleHostProcessingLoop or
+       something similar should be implemented to feed samples to and from the
+       host after StartStream() is called.
+    */
+    (void) ExampleHostProcessingLoop;
+
+    return result;
+}
+
+
+static PaError StopStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior */
+
+    return result;
+}
+
+
+static PaError AbortStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior */
+
+    return result;
+}
+
+
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior */
+
+    return 0;
+}
+
+
+static PaError IsStreamActive( PaStream *s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior */
+
+    return 0;
+}
+
+
+static PaTime GetStreamTime( PaStream *s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return 0;
+}
+
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
+
+
+/*
+    As separate stream interfaces are used for blocking and callback
+    streams, the following functions can be guaranteed to only be called
+    for blocking streams.
+*/
+
+static PaError ReadStream( PaStream* s,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return paNoError;
+}
+
+
+static PaError WriteStream( PaStream* s,
+                            const void *buffer,
+                            unsigned long frames )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return paNoError;
+}
+
+
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return 0;
+}
+
+
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaSkeletonStream *stream = (PaSkeletonStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return 0;
+}
+
+
+
+
diff --git a/external/portaudio2007/pa_stream.c b/external/portaudio2007/pa_stream.c
new file mode 100644
index 0000000..172e7d2
--- /dev/null
+++ b/external/portaudio2007/pa_stream.c
@@ -0,0 +1,150 @@
+/*
+ * $Id: pa_stream.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * 
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 2002 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Interface used by pa_front to virtualize functions which operate on
+ streams.
+*/
+
+
+#include "pa_stream.h"
+
+
+void PaUtil_InitializeStreamInterface( PaUtilStreamInterface *streamInterface,
+                                       PaError (*Close)( PaStream* ),
+                                       PaError (*Start)( PaStream* ),
+                                       PaError (*Stop)( PaStream* ),
+                                       PaError (*Abort)( PaStream* ),
+                                       PaError (*IsStopped)( PaStream* ),
+                                       PaError (*IsActive)( PaStream* ),
+                                       PaTime (*GetTime)( PaStream* ),
+                                       double (*GetCpuLoad)( PaStream* ),
+                                       PaError (*Read)( PaStream*, void *, unsigned long ),
+                                       PaError (*Write)( PaStream*, const void *, unsigned long ),
+                                       signed long (*GetReadAvailable)( PaStream* ),
+                                       signed long (*GetWriteAvailable)( PaStream* )  )
+{
+    streamInterface->Close = Close;
+    streamInterface->Start = Start;
+    streamInterface->Stop = Stop;
+    streamInterface->Abort = Abort;
+    streamInterface->IsStopped = IsStopped;
+    streamInterface->IsActive = IsActive;
+    streamInterface->GetTime = GetTime;
+    streamInterface->GetCpuLoad = GetCpuLoad;
+    streamInterface->Read = Read;
+    streamInterface->Write = Write;
+    streamInterface->GetReadAvailable = GetReadAvailable;
+    streamInterface->GetWriteAvailable = GetWriteAvailable;
+}
+
+
+void PaUtil_InitializeStreamRepresentation( PaUtilStreamRepresentation *streamRepresentation,
+        PaUtilStreamInterface *streamInterface,
+        PaStreamCallback *streamCallback,
+        void *userData )
+{
+    streamRepresentation->magic = PA_STREAM_MAGIC;
+    streamRepresentation->nextOpenStream = 0;
+    streamRepresentation->streamInterface = streamInterface;
+    streamRepresentation->streamCallback = streamCallback;
+    streamRepresentation->streamFinishedCallback = 0;
+
+    streamRepresentation->userData = userData;
+
+    streamRepresentation->streamInfo.inputLatency = 0.;
+    streamRepresentation->streamInfo.outputLatency = 0.;
+    streamRepresentation->streamInfo.sampleRate = 0.;
+}
+
+
+void PaUtil_TerminateStreamRepresentation( PaUtilStreamRepresentation *streamRepresentation )
+{
+    streamRepresentation->magic = 0;
+}
+
+
+PaError PaUtil_DummyRead( PaStream* stream,
+                               void *buffer,
+                               unsigned long frames )
+{
+    (void)stream; /* unused parameter */
+    (void)buffer; /* unused parameter */
+    (void)frames; /* unused parameter */
+
+    return paCanNotReadFromACallbackStream;
+}
+
+
+PaError PaUtil_DummyWrite( PaStream* stream,
+                               const void *buffer,
+                               unsigned long frames )
+{
+    (void)stream; /* unused parameter */
+    (void)buffer; /* unused parameter */
+    (void)frames; /* unused parameter */
+
+    return paCanNotWriteToACallbackStream;
+}
+
+
+signed long PaUtil_DummyGetReadAvailable( PaStream* stream )
+{
+    (void)stream; /* unused parameter */
+
+    return paCanNotReadFromACallbackStream;
+}
+
+
+signed long PaUtil_DummyGetWriteAvailable( PaStream* stream )
+{
+    (void)stream; /* unused parameter */
+
+    return paCanNotWriteToACallbackStream;
+}
+
+
+double PaUtil_DummyGetCpuLoad( PaStream* stream )
+{
+    (void)stream; /* unused parameter */
+
+    return 0.0;
+}
diff --git a/external/portaudio2007/pa_stream.h b/external/portaudio2007/pa_stream.h
new file mode 100644
index 0000000..f5363b3
--- /dev/null
+++ b/external/portaudio2007/pa_stream.h
@@ -0,0 +1,205 @@
+#ifndef PA_STREAM_H
+#define PA_STREAM_H
+/*
+ * $Id: pa_stream.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library
+ * stream interface
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Interface used by pa_front to virtualize functions which operate on
+ streams.
+*/
+
+
+#include "portaudio.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+#define PA_STREAM_MAGIC (0x18273645)
+
+
+/** A structure representing an (abstract) interface to a host API. Contains
+ pointers to functions which implement the interface.
+
+ All PaStreamInterface functions are guaranteed to be called with a non-null,
+ valid stream parameter.
+*/
+typedef struct {
+    PaError (*Close)( PaStream* stream );
+    PaError (*Start)( PaStream *stream );
+    PaError (*Stop)( PaStream *stream );
+    PaError (*Abort)( PaStream *stream );
+    PaError (*IsStopped)( PaStream *stream );
+    PaError (*IsActive)( PaStream *stream );
+    PaTime (*GetTime)( PaStream *stream );
+    double (*GetCpuLoad)( PaStream* stream );
+    PaError (*Read)( PaStream* stream, void *buffer, unsigned long frames );
+    PaError (*Write)( PaStream* stream, const void *buffer, unsigned long frames );
+    signed long (*GetReadAvailable)( PaStream* stream );
+    signed long (*GetWriteAvailable)( PaStream* stream );
+} PaUtilStreamInterface;
+
+
+/** Initialize the fields of a PaUtilStreamInterface structure.
+*/
+void PaUtil_InitializeStreamInterface( PaUtilStreamInterface *streamInterface,
+    PaError (*Close)( PaStream* ),
+    PaError (*Start)( PaStream* ),
+    PaError (*Stop)( PaStream* ),
+    PaError (*Abort)( PaStream* ),
+    PaError (*IsStopped)( PaStream* ),
+    PaError (*IsActive)( PaStream* ),
+    PaTime (*GetTime)( PaStream* ),
+    double (*GetCpuLoad)( PaStream* ),
+    PaError (*Read)( PaStream* stream, void *buffer, unsigned long frames ),
+    PaError (*Write)( PaStream* stream, const void *buffer, unsigned long frames ),
+    signed long (*GetReadAvailable)( PaStream* stream ),
+    signed long (*GetWriteAvailable)( PaStream* stream ) );
+
+
+/** Dummy Read function for use in interfaces to a callback based streams.
+ Pass to the Read parameter of PaUtil_InitializeStreamInterface.
+ @return An error code indicating that the function has no effect
+ because the stream is a callback stream.
+*/
+PaError PaUtil_DummyRead( PaStream* stream,
+                       void *buffer,
+                       unsigned long frames );
+
+
+/** Dummy Write function for use in an interfaces to callback based streams.
+ Pass to the Write parameter of PaUtil_InitializeStreamInterface.
+ @return An error code indicating that the function has no effect
+ because the stream is a callback stream.
+*/
+PaError PaUtil_DummyWrite( PaStream* stream,
+                       const void *buffer,
+                       unsigned long frames );
+
+
+/** Dummy GetReadAvailable function for use in interfaces to callback based
+ streams. Pass to the GetReadAvailable parameter of PaUtil_InitializeStreamInterface.
+ @return An error code indicating that the function has no effect
+ because the stream is a callback stream.
+*/
+signed long PaUtil_DummyGetReadAvailable( PaStream* stream );
+
+
+/** Dummy GetWriteAvailable function for use in interfaces to callback based
+ streams. Pass to the GetWriteAvailable parameter of PaUtil_InitializeStreamInterface.
+ @return An error code indicating that the function has no effect
+ because the stream is a callback stream.
+*/
+signed long PaUtil_DummyGetWriteAvailable( PaStream* stream );
+
+
+
+/** Dummy GetCpuLoad function for use in an interface to a read/write stream.
+ Pass to the GetCpuLoad parameter of PaUtil_InitializeStreamInterface.
+ @return Returns 0.
+*/
+double PaUtil_DummyGetCpuLoad( PaStream* stream );
+
+
+/** Non host specific data for a stream. This data is used by pa_front to
+ forward to the appropriate functions in the streamInterface structure.
+*/
+typedef struct PaUtilStreamRepresentation {
+    unsigned long magic;    /**< set to PA_STREAM_MAGIC */
+    struct PaUtilStreamRepresentation *nextOpenStream; /**< field used by multi-api code */
+    PaUtilStreamInterface *streamInterface;
+    PaStreamCallback *streamCallback;
+    PaStreamFinishedCallback *streamFinishedCallback;
+    void *userData;
+    PaStreamInfo streamInfo;
+} PaUtilStreamRepresentation;
+
+
+/** Initialize a PaUtilStreamRepresentation structure.
+
+ @see PaUtil_InitializeStreamRepresentation
+*/
+void PaUtil_InitializeStreamRepresentation(
+        PaUtilStreamRepresentation *streamRepresentation,
+        PaUtilStreamInterface *streamInterface,
+        PaStreamCallback *streamCallback,
+        void *userData );
+        
+
+/** Clean up a PaUtilStreamRepresentation structure previously initialized
+ by a call to PaUtil_InitializeStreamRepresentation.
+
+ @see PaUtil_InitializeStreamRepresentation
+*/
+void PaUtil_TerminateStreamRepresentation( PaUtilStreamRepresentation *streamRepresentation );
+
+
+/** Check that the stream pointer is valid.
+
+ @return Returns paNoError if the stream pointer appears to be OK, otherwise
+ returns an error indicating the cause of failure.
+*/
+PaError PaUtil_ValidateStreamPointer( PaStream *stream );
+
+
+/** Cast an opaque stream pointer into a pointer to a PaUtilStreamRepresentation.
+
+ @see PaUtilStreamRepresentation
+*/
+#define PA_STREAM_REP( stream )\
+    ((PaUtilStreamRepresentation*) (stream) )
+
+
+/** Cast an opaque stream pointer into a pointer to a PaUtilStreamInterface.
+
+ @see PaUtilStreamRepresentation, PaUtilStreamInterface
+*/
+#define PA_STREAM_INTERFACE( stream )\
+    PA_STREAM_REP( (stream) )->streamInterface
+
+
+    
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_STREAM_H */
diff --git a/external/portaudio2007/pa_trace.c b/external/portaudio2007/pa_trace.c
new file mode 100644
index 0000000..583d3ae
--- /dev/null
+++ b/external/portaudio2007/pa_trace.c
@@ -0,0 +1,97 @@
+/*
+ * $Id: pa_trace.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library Trace Facility
+ * Store trace information in real-time for later printing.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Event trace mechanism for debugging.
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "pa_trace.h"
+
+#if PA_TRACE_REALTIME_EVENTS
+
+static char *traceTextArray[PA_MAX_TRACE_RECORDS];
+static int traceIntArray[PA_MAX_TRACE_RECORDS];
+static int traceIndex = 0;
+static int traceBlock = 0;
+
+/*********************************************************************/
+void PaUtil_ResetTraceMessages()
+{
+    traceIndex = 0;
+}
+
+/*********************************************************************/
+void PaUtil_DumpTraceMessages()
+{
+    int i;
+    int messageCount = (traceIndex < PA_MAX_TRACE_RECORDS) ? traceIndex : PA_MAX_TRACE_RECORDS;
+
+    printf("DumpTraceMessages: traceIndex = %d\n", traceIndex );
+    for( i=0; i<messageCount; i++ )
+    {
+        printf("%3d: %s = 0x%08X\n",
+               i, traceTextArray[i], traceIntArray[i] );
+    }
+    PaUtil_ResetTraceMessages();
+    fflush(stdout);
+}
+
+/*********************************************************************/
+void PaUtil_AddTraceMessage( const char *msg, int data )
+{
+    if( (traceIndex == PA_MAX_TRACE_RECORDS) && (traceBlock == 0) )
+    {
+        traceBlock = 1;
+        /*  PaUtil_DumpTraceMessages(); */
+    }
+    else if( traceIndex < PA_MAX_TRACE_RECORDS )
+    {
+        traceTextArray[traceIndex] = msg;
+        traceIntArray[traceIndex] = data;
+        traceIndex++;
+    }
+}
+
+#endif /* TRACE_REALTIME_EVENTS */
diff --git a/external/portaudio2007/pa_trace.h b/external/portaudio2007/pa_trace.h
new file mode 100644
index 0000000..a4d2a33
--- /dev/null
+++ b/external/portaudio2007/pa_trace.h
@@ -0,0 +1,79 @@
+#ifndef PA_TRACE_H
+#define PA_TRACE_H
+/*
+ * $Id: pa_trace.h 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library Trace Facility
+ * Store trace information in real-time for later printing.
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Event trace mechanism for debugging.
+
+ Allows data to be written to the buffer at interrupt time and dumped later.
+*/
+
+
+#define PA_TRACE_REALTIME_EVENTS     (0)   /* Keep log of various real-time events. */
+#define PA_MAX_TRACE_RECORDS      (2048)
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+#if PA_TRACE_REALTIME_EVENTS
+
+void PaUtil_ResetTraceMessages();
+void PaUtil_AddTraceMessage( const char *msg, int data );
+void PaUtil_DumpTraceMessages();
+    
+#else
+
+#define PaUtil_ResetTraceMessages() /* noop */
+#define PaUtil_AddTraceMessage(msg,data) /* noop */
+#define PaUtil_DumpTraceMessages() /* noop */
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_TRACE_H */
diff --git a/external/portaudio2007/pa_types.h b/external/portaudio2007/pa_types.h
new file mode 100644
index 0000000..fd9bfe3
--- /dev/null
+++ b/external/portaudio2007/pa_types.h
@@ -0,0 +1,82 @@
+#ifndef PA_TYPES_H
+#define PA_TYPES_H
+
+/* 
+ * Portable Audio I/O Library
+ * integer type definitions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2006 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+ @brief Definition of 16 and 32 bit integer types (PaInt16, PaInt32 etc)
+
+ SIZEOF_SHORT, SIZEOF_INT and SIZEOF_LONG are set by the configure script
+ when it is used. Otherwise we default to the common 32 bit values, if your
+ platform doesn't use configure, and doesn't use the default values below
+ you will need to explicitly define these symbols in your make file.
+
+ A PA_VALIDATE_SIZES macro is provided to assert that the values set in this
+ file are correct.
+
+ Paul Boersma 2013: the sizes should not be handcoded if this header file is to be included in both 32-bit and 64-bit applications;
+ instead, we use int32_t and the like from <stdint.h>.
+*/
+
+#include <stdint.h>
+
+typedef int16_t PaInt16;
+typedef uint16_t PaUint16;
+
+typedef int32_t PaInt32;
+typedef uint32_t PaUint32;
+
+
+/* PA_VALIDATE_TYPE_SIZES compares the size of the integer types at runtime to
+ ensure that PortAudio was configured correctly, and raises an assertion if
+ they don't match the expected values. <assert.h> must be included in the
+ context in which this macro is used.
+*/
+#define PA_VALIDATE_TYPE_SIZES \
+    { \
+        assert( "PortAudio: type sizes are not correct in pa_types.h" && sizeof( PaUint16 ) == 2 ); \
+        assert( "PortAudio: type sizes are not correct in pa_types.h" && sizeof( PaInt16 ) == 2 ); \
+        assert( "PortAudio: type sizes are not correct in pa_types.h" && sizeof( PaUint32 ) == 4 ); \
+        assert( "PortAudio: type sizes are not correct in pa_types.h" && sizeof( PaInt32 ) == 4 ); \
+    }
+
+
+#endif /* PA_TYPES_H */
diff --git a/external/portaudio2007/pa_unix_hostapis.c b/external/portaudio2007/pa_unix_hostapis.c
new file mode 100644
index 0000000..8a32707
--- /dev/null
+++ b/external/portaudio2007/pa_unix_hostapis.c
@@ -0,0 +1,68 @@
+#ifdef UNIX
+/*
+ * $Id: pa_unix_hostapis.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library UNIX initialization table
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup unix_src
+*/
+
+#include "pa_hostapi.h"
+
+PaError PaJack_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaAlsa_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaOSS_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+/* Added for IRIX, Pieter, oct 2, 2003: */
+PaError PaSGI_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+/* Linux AudioScience HPI */
+PaError PaAsiHpi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+
+PaUtilHostApiInitializer *paHostApiInitializers[] =
+    {
+		#if defined (linux) && defined (ALSA)
+			PaAlsa_Initialize,
+		#elif defined (sgi)
+			PaSGI_Initialize,
+		#else
+			//PaOSS_Initialize,
+		#endif
+        0   /* NULL terminated array */
+    };
+
+int paDefaultHostApiIndex = 0;
+#endif
diff --git a/external/portaudio2007/pa_unix_oss.c b/external/portaudio2007/pa_unix_oss.c
new file mode 100644
index 0000000..942f15c
--- /dev/null
+++ b/external/portaudio2007/pa_unix_oss.c
@@ -0,0 +1,1955 @@
+/*
+ * $Id: pa_unix_oss.c 1296 2007-10-28 22:43:50Z aknudsen $
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ * OSS implementation by:
+ *   Douglas Repetto
+ *   Phil Burk
+ *   Dominic Mazzoni
+ *   Arve Knudsen
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however,
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also
+ * requested that these non-binding requests be included along with the
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostapi_src
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/poll.h>
+#include <limits.h>
+#include <semaphore.h>
+
+#ifdef HAVE_SYS_SOUNDCARD_H
+# include <sys/soundcard.h>
+# define DEVICE_NAME_BASE            "/dev/dsp"
+#elif defined(HAVE_LINUX_SOUNDCARD_H)
+# include <linux/soundcard.h>
+# define DEVICE_NAME_BASE            "/dev/dsp"
+#elif defined(HAVE_MACHINE_SOUNDCARD_H)
+# include <machine/soundcard.h> /* JH20010905 */
+# define DEVICE_NAME_BASE            "/dev/audio"
+#else
+# error No sound card header file
+#endif
+
+#include "portaudio.h"
+#include "pa_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "pa_unix_util.h"
+#include "pa_debugprint.h"
+
+static int sysErr_;
+static pthread_t mainThread_;
+
+/* Check return value of system call, and map it to PaError */
+#define ENSURE_(expr, code) \
+    do { \
+        if( UNLIKELY( (sysErr_ = (expr)) < 0 ) ) \
+        { \
+            /* PaUtil_SetLastHostErrorInfo should only be used in the main thread */ \
+            if( (code) == paUnanticipatedHostError && pthread_self() == mainThread_ ) \
+            { \
+                PaUtil_SetLastHostErrorInfo( paALSA, sysErr_, strerror( errno ) ); \
+            } \
+            \
+            PaUtil_DebugPrint(( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" )); \
+            result = (code); \
+            goto error; \
+        } \
+    } while( 0 );
+
+#ifndef AFMT_S16_NE
+#define AFMT_S16_NE  Get_AFMT_S16_NE()
+/*********************************************************************
+ * Some versions of OSS do not define AFMT_S16_NE. So check CPU.
+ * PowerPC is Big Endian. X86 is Little Endian.
+ */
+static int Get_AFMT_S16_NE( void )
+{
+    long testData = 1;
+    char *ptr = (char *) &testData;
+    int isLittle = ( *ptr == 1 ); /* Does address point to least significant byte? */
+    return isLittle ? AFMT_S16_LE : AFMT_S16_BE;
+}
+#endif
+
+/* PaOSSHostApiRepresentation - host api datastructure specific to this implementation */
+
+typedef struct
+{
+    PaUtilHostApiRepresentation inheritedHostApiRep;
+    PaUtilStreamInterface callbackStreamInterface;
+    PaUtilStreamInterface blockingStreamInterface;
+
+    PaUtilAllocationGroup *allocations;
+
+    PaHostApiIndex hostApiIndex;
+}
+PaOSSHostApiRepresentation;
+
+/** Per-direction structure for PaOssStream.
+ *
+ * Aspect StreamChannels: In case the user requests to open the same device for both capture and playback,
+ * but with different number of channels we will have to adapt between the number of user and host
+ * channels for at least one direction, since the configuration space is the same for both directions
+ * of an OSS device.
+ */
+typedef struct
+{
+    int fd;
+    const char *devName;
+    int userChannelCount, hostChannelCount;
+    int userInterleaved;
+    void *buffer;
+    PaSampleFormat userFormat, hostFormat;
+    double latency;
+    unsigned long hostFrames, numBufs;
+    void **userBuffers; /* For non-interleaved blocking */
+} PaOssStreamComponent;
+
+/** Implementation specific representation of a PaStream.
+ *
+ */
+typedef struct PaOssStream
+{
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+
+    PaUtilThreading threading;
+
+    int sharedDevice;
+    unsigned long framesPerHostBuffer;
+    int triggered;  /* Have the devices been triggered yet (first start) */
+
+    int isActive;
+    int isStopped;
+
+    int lastPosPtr;
+    double lastStreamBytes;
+
+    int framesProcessed;
+
+    double sampleRate;
+
+    int callbackMode;
+    int callbackStop, callbackAbort;
+
+    PaOssStreamComponent *capture, *playback;
+    unsigned long pollTimeout;
+    sem_t semaphore;
+}
+PaOssStream;
+
+typedef enum {
+    StreamMode_In,
+    StreamMode_Out
+} StreamMode;
+
+/* prototypes for functions declared in this file */
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+static PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+static signed long GetStreamReadAvailable( PaStream* stream );
+static signed long GetStreamWriteAvailable( PaStream* stream );
+static PaError BuildDeviceList( PaOSSHostApiRepresentation *hostApi );
+
+
+/** Initialize the OSS API implementation.
+ *
+ * This function will initialize host API datastructures and query host devices for information.
+ *
+ * Aspect DeviceCapabilities: Enumeration of host API devices is initiated from here
+ *
+ * Aspect FreeResources: If an error is encountered under way we have to free each resource allocated in this function,
+ * this happens with the usual "error" label.
+ */
+PaError PaOSS_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    PaOSSHostApiRepresentation *ossHostApi = NULL;
+
+    PA_UNLESS( ossHostApi = (PaOSSHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaOSSHostApiRepresentation) ),
+            paInsufficientMemory );
+    PA_UNLESS( ossHostApi->allocations = PaUtil_CreateAllocationGroup(), paInsufficientMemory );
+    ossHostApi->hostApiIndex = hostApiIndex;
+
+    /* Initialize host API structure */
+    *hostApi = &ossHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paOSS;
+    (*hostApi)->info.name = "OSS";
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PA_ENSURE( BuildDeviceList( ossHostApi ) );
+
+    PaUtil_InitializeStreamInterface( &ossHostApi->callbackStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable,
+                                      PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &ossHostApi->blockingStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable );
+
+    mainThread_ = pthread_self();
+
+    return result;
+
+error:
+    if( ossHostApi )
+    {
+        if( ossHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( ossHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( ossHostApi->allocations );
+        }
+
+        PaUtil_FreeMemory( ossHostApi );
+    }
+    return result;
+}
+
+PaError PaUtil_InitializeDeviceInfo( PaDeviceInfo *deviceInfo, const char *name, PaHostApiIndex hostApiIndex, int maxInputChannels,
+        int maxOutputChannels, PaTime defaultLowInputLatency, PaTime defaultLowOutputLatency, PaTime defaultHighInputLatency,
+        PaTime defaultHighOutputLatency, double defaultSampleRate, PaUtilAllocationGroup *allocations  )
+{
+    PaError result = paNoError;
+
+    deviceInfo->structVersion = 2;
+    if( allocations )
+    {
+        size_t len = strlen( name ) + 1;
+        PA_UNLESS( deviceInfo->name = PaUtil_GroupAllocateMemory( allocations, len ), paInsufficientMemory );
+        strncpy( (char *)deviceInfo->name, name, len );
+    }
+    else
+        deviceInfo->name = name;
+
+    deviceInfo->hostApi = hostApiIndex;
+    deviceInfo->maxInputChannels = maxInputChannels;
+    deviceInfo->maxOutputChannels = maxOutputChannels;
+    deviceInfo->defaultLowInputLatency = defaultLowInputLatency;
+    deviceInfo->defaultLowOutputLatency = defaultLowOutputLatency;
+    deviceInfo->defaultHighInputLatency = defaultHighInputLatency;
+    deviceInfo->defaultHighOutputLatency = defaultHighOutputLatency;
+    deviceInfo->defaultSampleRate = defaultSampleRate;
+
+error:
+    return result;
+}
+
+static PaError QueryDirection( const char *deviceName, StreamMode mode, double *defaultSampleRate, int *maxChannelCount,
+        double *defaultLowLatency, double *defaultHighLatency )
+{
+    PaError result = paNoError;
+    int numChannels, maxNumChannels;
+    int busy = 0;
+    int devHandle = -1;
+    int sr;
+    *maxChannelCount = 0;  /* Default value in case this fails */
+
+    if ( (devHandle = open( deviceName, (mode == StreamMode_In ? O_RDONLY : O_WRONLY) | O_NONBLOCK ))  < 0 )
+    {
+        if( errno == EBUSY || errno == EAGAIN )
+        {
+            PA_DEBUG(( "%s: Device %s busy\n", __FUNCTION__, deviceName ));
+        }
+        else
+        {
+            PA_DEBUG(( "%s: Can't access device: %s\n", __FUNCTION__, strerror( errno ) ));
+        }
+
+        return paDeviceUnavailable;
+    }
+
+    /* Negotiate for the maximum number of channels for this device. PLB20010927
+     * Consider up to 16 as the upper number of channels.
+     * Variable maxNumChannels should contain the actual upper limit after the call.
+     * Thanks to John Lazzaro and Heiko Purnhagen for suggestions.
+     */
+    maxNumChannels = 0;
+    for( numChannels = 1; numChannels <= 16; numChannels++ )
+    {
+        int temp = numChannels;
+        if( ioctl( devHandle, SNDCTL_DSP_CHANNELS, &temp ) < 0 )
+        {
+            busy = EAGAIN == errno || EBUSY == errno;
+            /* ioctl() failed so bail out if we already have stereo */
+            if( maxNumChannels >= 2 )
+                break;
+        }
+        else
+        {
+            /* ioctl() worked but bail out if it does not support numChannels.
+             * We don't want to leave gaps in the numChannels supported.
+             */
+            if( (numChannels > 2) && (temp != numChannels) )
+                break;
+            if( temp > maxNumChannels )
+                maxNumChannels = temp; /* Save maximum. */
+        }
+    }
+    /* A: We're able to open a device for capture if it's busy playing back and vice versa,
+     * but we can't configure anything */
+    if( 0 == maxNumChannels && busy )
+    {
+        result = paDeviceUnavailable;
+        goto error;
+    }
+
+    /* The above negotiation may fail for an old driver so try this older technique. */
+    if( maxNumChannels < 1 )
+    {
+        int stereo = 1;
+        if( ioctl( devHandle, SNDCTL_DSP_STEREO, &stereo ) < 0 )
+        {
+            maxNumChannels = 1;
+        }
+        else
+        {
+            maxNumChannels = (stereo) ? 2 : 1;
+        }
+        PA_DEBUG(( "%s: use SNDCTL_DSP_STEREO, maxNumChannels = %d\n", __FUNCTION__, maxNumChannels ));
+    }
+
+    /* During channel negotiation, the last ioctl() may have failed. This can
+     * also cause sample rate negotiation to fail. Hence the following, to return
+     * to a supported number of channels. SG20011005 */
+    {
+        /* use most reasonable default value */
+        int temp = PA_MIN( maxNumChannels, 2 );
+        ENSURE_( ioctl( devHandle, SNDCTL_DSP_CHANNELS, &temp ), paUnanticipatedHostError );
+    }
+
+    /* Get supported sample rate closest to 44100 Hz */
+    if( *defaultSampleRate < 0 )
+    {
+        sr = 44100;
+        if( ioctl( devHandle, SNDCTL_DSP_SPEED, &sr ) < 0 )
+        {
+            result = paUnanticipatedHostError;
+            goto error;
+        }
+
+        *defaultSampleRate = sr;
+    }
+
+    *maxChannelCount = maxNumChannels;
+    /* TODO */
+    *defaultLowLatency = 512. / *defaultSampleRate;
+    *defaultHighLatency = 2048. / *defaultSampleRate;
+
+error:
+    if( devHandle >= 0 )
+        close( devHandle );
+
+    return result;
+}
+
+/** Query OSS device.
+ *
+ * This is where PaDeviceInfo objects are constructed and filled in with relevant information.
+ *
+ * Aspect DeviceCapabilities: The inferred device capabilities are recorded in a PaDeviceInfo object that is constructed
+ * in place.
+ */
+static PaError QueryDevice( char *deviceName, PaOSSHostApiRepresentation *ossApi, PaDeviceInfo **deviceInfo )
+{
+    PaError result = paNoError;
+    double sampleRate = -1.;
+    int maxInputChannels, maxOutputChannels;
+    PaTime defaultLowInputLatency, defaultLowOutputLatency, defaultHighInputLatency, defaultHighOutputLatency;
+    PaError tmpRes = paNoError;
+    int busy = 0;
+    *deviceInfo = NULL;
+
+    /* douglas:
+       we have to do this querying in a slightly different order. apparently
+       some sound cards will give you different info based on their settins.
+       e.g. a card might give you stereo at 22kHz but only mono at 44kHz.
+       the correct order for OSS is: format, channels, sample rate
+    */
+
+    /* Aspect StreamChannels: The number of channels supported for a device may depend on the mode it is
+     * opened in, it may have more channels available for capture than playback and vice versa. Therefore
+     * we will open the device in both read- and write-only mode to determine the supported number.
+     */
+    if( (tmpRes = QueryDirection( deviceName, StreamMode_In, &sampleRate, &maxInputChannels, &defaultLowInputLatency,
+                &defaultHighInputLatency )) != paNoError )
+    {
+        if( tmpRes != paDeviceUnavailable )
+        {
+            PA_DEBUG(( "%s: Querying device %s for capture failed!\n", __FUNCTION__, deviceName ));
+            /* PA_ENSURE( tmpRes ); */
+        }
+        ++busy;
+    }
+    if( (tmpRes = QueryDirection( deviceName, StreamMode_Out, &sampleRate, &maxOutputChannels, &defaultLowOutputLatency,
+                &defaultHighOutputLatency )) != paNoError )
+    {
+        if( tmpRes != paDeviceUnavailable )
+        {
+            PA_DEBUG(( "%s: Querying device %s for playback failed!\n", __FUNCTION__, deviceName ));
+            /* PA_ENSURE( tmpRes ); */
+        }
+        ++busy;
+    }
+    assert( 0 <= busy && busy <= 2 );
+    if( 2 == busy )     /* Both directions are unavailable to us */
+    {
+        result = paDeviceUnavailable;
+        goto error;
+    }
+
+    PA_UNLESS( *deviceInfo = PaUtil_GroupAllocateMemory( ossApi->allocations, sizeof (PaDeviceInfo) ), paInsufficientMemory );
+    PA_ENSURE( PaUtil_InitializeDeviceInfo( *deviceInfo, deviceName, ossApi->hostApiIndex, maxInputChannels, maxOutputChannels,
+                defaultLowInputLatency, defaultLowOutputLatency, defaultHighInputLatency, defaultHighOutputLatency, sampleRate,
+                ossApi->allocations ) );
+
+error:
+    return result;
+}
+
+/** Query host devices.
+ *
+ * Loop over host devices and query their capabilitiesu
+ *
+ * Aspect DeviceCapabilities: This function calls QueryDevice on each device entry and receives a filled in PaDeviceInfo object
+ * per device, these are placed in the host api representation's deviceInfos array.
+ */
+static PaError BuildDeviceList( PaOSSHostApiRepresentation *ossApi )
+{
+    PaError result = paNoError;
+    PaUtilHostApiRepresentation *commonApi = &ossApi->inheritedHostApiRep;
+    int i;
+    int numDevices = 0, maxDeviceInfos = 1;
+    PaDeviceInfo **deviceInfos = NULL;
+
+    /* These two will be set to the first working input and output device, respectively */
+    commonApi->info.defaultInputDevice = paNoDevice;
+    commonApi->info.defaultOutputDevice = paNoDevice;
+
+    /* Find devices by calling QueryDevice on each
+     * potential device names.  When we find a valid one,
+     * add it to a linked list.
+     * A: Set an arbitrary of 100 devices, should probably be a smarter way. */
+
+    for( i = 0; i < 100; i++ )
+    {
+       char deviceName[32];
+       PaDeviceInfo *deviceInfo;
+       int testResult;
+       struct stat stbuf;
+
+       if( i == 0 )
+          snprintf(deviceName, sizeof (deviceName), "%s", DEVICE_NAME_BASE);
+       else
+          snprintf(deviceName, sizeof (deviceName), "%s%d", DEVICE_NAME_BASE, i);
+
+       /* PA_DEBUG(("PaOSS BuildDeviceList: trying device %s\n", deviceName )); */
+       if( stat( deviceName, &stbuf ) < 0 )
+       {
+           if( ENOENT != errno )
+               PA_DEBUG(( "%s: Error stat'ing %s: %s\n", __FUNCTION__, deviceName, strerror( errno ) ));
+           continue;
+       }
+       if( (testResult = QueryDevice( deviceName, ossApi, &deviceInfo )) != paNoError )
+       {
+           if( testResult != paDeviceUnavailable )
+               PA_ENSURE( testResult );
+
+           continue;
+       }
+
+       ++numDevices;
+       if( !deviceInfos || numDevices > maxDeviceInfos )
+       {
+           maxDeviceInfos *= 2;
+           PA_UNLESS( deviceInfos = (PaDeviceInfo **) realloc( deviceInfos, maxDeviceInfos * sizeof (PaDeviceInfo *) ),
+                   paInsufficientMemory );
+       }
+       {
+           int devIdx = numDevices - 1;
+           deviceInfos[devIdx] = deviceInfo;
+
+           if( commonApi->info.defaultInputDevice == paNoDevice && deviceInfo->maxInputChannels > 0 )
+               commonApi->info.defaultInputDevice = devIdx;
+           if( commonApi->info.defaultOutputDevice == paNoDevice && deviceInfo->maxOutputChannels > 0 )
+               commonApi->info.defaultOutputDevice = devIdx;
+       }
+    }
+
+    /* Make an array of PaDeviceInfo pointers out of the linked list */
+
+    PA_DEBUG(("PaOSS %s: Total number of devices found: %d\n", __FUNCTION__, numDevices));
+
+    commonApi->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+        ossApi->allocations, sizeof(PaDeviceInfo*) * numDevices );
+    memcpy( commonApi->deviceInfos, deviceInfos, numDevices * sizeof (PaDeviceInfo *) );
+
+    commonApi->info.deviceCount = numDevices;
+
+error:
+    free( deviceInfos );
+
+    return result;
+}
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaOSSHostApiRepresentation *ossHostApi = (PaOSSHostApiRepresentation*)hostApi;
+
+    if( ossHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( ossHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( ossHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( ossHostApi );
+}
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    PaError result = paNoError;
+    PaDeviceIndex device;
+    PaDeviceInfo *deviceInfo;
+    char *deviceName;
+    int inputChannelCount, outputChannelCount;
+    int tempDevHandle = -1;
+    int flags;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        if( inputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+    }
+    else
+    {
+        inputChannelCount = 0;
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support inputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        if( outputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+    }
+    else
+    {
+        outputChannelCount = 0;
+    }
+
+    if (inputChannelCount == 0 && outputChannelCount == 0)
+        return paInvalidChannelCount;
+
+    /* if full duplex, make sure that they're the same device */
+
+    if (inputChannelCount > 0 && outputChannelCount > 0 &&
+        inputParameters->device != outputParameters->device)
+        return paInvalidDevice;
+
+    /* if full duplex, also make sure that they're the same number of channels */
+
+    if (inputChannelCount > 0 && outputChannelCount > 0 &&
+        inputChannelCount != outputChannelCount)
+       return paInvalidChannelCount;
+
+    /* open the device so we can do more tests */
+
+    if( inputChannelCount > 0 )
+    {
+        result = PaUtil_DeviceIndexToHostApiDeviceIndex(&device, inputParameters->device, hostApi);
+        if (result != paNoError)
+            return result;
+    }
+    else
+    {
+        result = PaUtil_DeviceIndexToHostApiDeviceIndex(&device, outputParameters->device, hostApi);
+        if (result != paNoError)
+            return result;
+    }
+
+    deviceInfo = hostApi->deviceInfos[device];
+    deviceName = (char *)deviceInfo->name;
+
+    flags = O_NONBLOCK;
+    if (inputChannelCount > 0 && outputChannelCount > 0)
+       flags |= O_RDWR;
+    else if (inputChannelCount > 0)
+       flags |= O_RDONLY;
+    else
+       flags |= O_WRONLY;
+
+    ENSURE_( tempDevHandle = open( deviceInfo->name, flags ), paDeviceUnavailable );
+
+    /* PaOssStream_Configure will do the rest of the checking for us */
+    /* PA_ENSURE( PaOssStream_Configure( tempDevHandle, deviceName, outputChannelCount, &sampleRate ) ); */
+
+    /* everything succeeded! */
+
+ error:
+    if( tempDevHandle >= 0 )
+        close( tempDevHandle );
+
+    return result;
+}
+
+/** Validate stream parameters.
+ *
+ * Aspect StreamChannels: We verify that the number of channels is within the allowed range for the device
+ */
+static PaError ValidateParameters( const PaStreamParameters *parameters, const PaDeviceInfo *deviceInfo, StreamMode mode )
+{
+    int maxChans;
+
+    assert( parameters );
+
+    if( parameters->device == paUseHostApiSpecificDeviceSpecification )
+    {
+        return paInvalidDevice;
+    }
+
+    maxChans = (mode == StreamMode_In ? deviceInfo->maxInputChannels :
+        deviceInfo->maxOutputChannels);
+    if( parameters->channelCount > maxChans )
+    {
+        return paInvalidChannelCount;
+    }
+
+    return paNoError;
+}
+
+static PaError PaOssStreamComponent_Initialize( PaOssStreamComponent *component, const PaStreamParameters *parameters,
+        int callbackMode, int fd, const char *deviceName )
+{
+    PaError result = paNoError;
+    assert( component );
+
+    memset( component, 0, sizeof (PaOssStreamComponent) );
+
+    component->fd = fd;
+    component->devName = deviceName;
+    component->userChannelCount = parameters->channelCount;
+    component->userFormat = parameters->sampleFormat;
+    component->latency = parameters->suggestedLatency;
+    component->userInterleaved = !(parameters->sampleFormat & paNonInterleaved);
+
+    if( !callbackMode && !component->userInterleaved )
+    {
+        /* Pre-allocate non-interleaved user provided buffers */
+        PA_UNLESS( component->userBuffers = PaUtil_AllocateMemory( sizeof (void *) * component->userChannelCount ),
+                paInsufficientMemory );
+    }
+
+error:
+    return result;
+}
+
+static void PaOssStreamComponent_Terminate( PaOssStreamComponent *component )
+{
+    assert( component );
+
+    if( component->fd >= 0 )
+        close( component->fd );
+    if( component->buffer )
+        PaUtil_FreeMemory( component->buffer );
+
+    if( component->userBuffers )
+        PaUtil_FreeMemory( component->userBuffers );
+
+    PaUtil_FreeMemory( component );
+}
+
+static PaError ModifyBlocking( int fd, int blocking )
+{
+    PaError result = paNoError;
+    int fflags;
+
+    ENSURE_( fflags = fcntl( fd, F_GETFL ), paUnanticipatedHostError );
+
+    if( blocking )
+        fflags &= ~O_NONBLOCK;
+    else
+        fflags |= O_NONBLOCK;
+
+    ENSURE_( fcntl( fd, F_SETFL, fflags ), paUnanticipatedHostError );
+
+error:
+    return result;
+}
+
+static PaError OpenDevices( const char *idevName, const char *odevName, int *idev, int *odev )
+{
+    PaError result = paNoError;
+    int flags = O_NONBLOCK, duplex = 0;
+    int enableBits = 0;
+    *idev = *odev = -1;
+
+    if( idevName && odevName )
+    {
+        duplex = 1;
+        flags |= O_RDWR;
+    }
+    else if( idevName )
+        flags |= O_RDONLY;
+    else
+        flags |= O_WRONLY;
+
+    /* open first in nonblocking mode, in case it's busy...
+     * A: then unset the non-blocking attribute */
+    assert( flags & O_NONBLOCK );
+    if( idevName )
+    {
+        ENSURE_( *idev = open( idevName, flags ), paDeviceUnavailable );
+        PA_ENSURE( ModifyBlocking( *idev, 1 ) ); /* Blocking */
+
+        /* Initially disable */
+        enableBits = ~PCM_ENABLE_INPUT;
+        ENSURE_( ioctl( *idev, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError );
+    }
+    if( odevName )
+    {
+        if( !idevName )
+        {
+            ENSURE_( *odev = open( odevName, flags ), paDeviceUnavailable );
+            PA_ENSURE( ModifyBlocking( *odev, 1 ) ); /* Blocking */
+
+            /* Initially disable */
+            enableBits = ~PCM_ENABLE_OUTPUT;
+            ENSURE_( ioctl( *odev, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError );
+        }
+        else
+        {
+            ENSURE_( *odev = dup( *idev ), paUnanticipatedHostError );
+        }
+    }
+
+error:
+    return result;
+}
+
+static PaError PaOssStream_Initialize( PaOssStream *stream, const PaStreamParameters *inputParameters, const PaStreamParameters *outputParameters,
+        PaStreamCallback callback, void *userData, PaStreamFlags streamFlags,
+        PaOSSHostApiRepresentation *ossApi )
+{
+    PaError result = paNoError;
+    int idev, odev;
+    PaUtilHostApiRepresentation *hostApi = &ossApi->inheritedHostApiRep;
+    const char *idevName = NULL, *odevName = NULL;
+
+    assert( stream );
+
+    memset( stream, 0, sizeof (PaOssStream) );
+    stream->isStopped = 1;
+
+    PA_ENSURE( PaUtil_InitializeThreading( &stream->threading ) );
+
+    if( inputParameters && outputParameters )
+    {
+        if( inputParameters->device == outputParameters->device )
+            stream->sharedDevice = 1;
+    }
+
+    if( inputParameters )
+        idevName = hostApi->deviceInfos[inputParameters->device]->name;
+    if( outputParameters )
+        odevName = hostApi->deviceInfos[outputParameters->device]->name;
+    PA_ENSURE( OpenDevices( idevName, odevName, &idev, &odev ) );
+    if( inputParameters )
+    {
+        PA_UNLESS( stream->capture = PaUtil_AllocateMemory( sizeof (PaOssStreamComponent) ), paInsufficientMemory );
+        PA_ENSURE( PaOssStreamComponent_Initialize( stream->capture, inputParameters, callback != NULL, idev, idevName ) );
+    }
+    if( outputParameters )
+    {
+        PA_UNLESS( stream->playback = PaUtil_AllocateMemory( sizeof (PaOssStreamComponent) ), paInsufficientMemory );
+        PA_ENSURE( PaOssStreamComponent_Initialize( stream->playback, outputParameters, callback != NULL, odev, odevName ) );
+    }
+
+    if( callback != NULL )
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &ossApi->callbackStreamInterface, callback, userData );
+        stream->callbackMode = 1;
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &ossApi->blockingStreamInterface, callback, userData );
+    }
+
+    ENSURE_( sem_init( &stream->semaphore, 0, 0 ), paInternalError );
+
+error:
+    return result;
+}
+
+static void PaOssStream_Terminate( PaOssStream *stream )
+{
+    assert( stream );
+
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+    PaUtil_TerminateThreading( &stream->threading );
+
+    if( stream->capture )
+        PaOssStreamComponent_Terminate( stream->capture );
+    if( stream->playback )
+        PaOssStreamComponent_Terminate( stream->playback );
+
+    sem_destroy( &stream->semaphore );
+
+    PaUtil_FreeMemory( stream );
+}
+
+/** Translate from PA format to OSS native.
+ *
+ */
+static PaError Pa2OssFormat( PaSampleFormat paFormat, int *ossFormat )
+{
+    switch( paFormat )
+    {
+        case paUInt8:
+            *ossFormat = AFMT_U8;
+            break;
+        case paInt8:
+            *ossFormat = AFMT_S8;
+            break;
+        case paInt16:
+            *ossFormat = AFMT_S16_NE;
+            break;
+        default:
+            return paInternalError;     /* This shouldn't happen */
+    }
+
+    return paNoError;
+}
+
+/** Return the PA-compatible formats that this device can support.
+ *
+ */
+static PaError GetAvailableFormats( PaOssStreamComponent *component, PaSampleFormat *availableFormats )
+{
+    PaError result = paNoError;
+    int mask = 0;
+    PaSampleFormat frmts = 0;
+
+    ENSURE_( ioctl( component->fd, SNDCTL_DSP_GETFMTS, &mask ), paUnanticipatedHostError );
+    if( mask & AFMT_U8 )
+        frmts |= paUInt8;
+    if( mask & AFMT_S8 )
+        frmts |= paInt8;
+    if( mask & AFMT_S16_NE )
+        frmts |= paInt16;
+    else
+        result = paSampleFormatNotSupported;
+
+    *availableFormats = frmts;
+
+error:
+    return result;
+}
+
+static unsigned int PaOssStreamComponent_FrameSize( PaOssStreamComponent *component )
+{
+    return Pa_GetSampleSize( component->hostFormat ) * component->hostChannelCount;
+}
+
+/** Buffer size in bytes.
+ *
+ */
+static unsigned long PaOssStreamComponent_BufferSize( PaOssStreamComponent *component )
+{
+    return PaOssStreamComponent_FrameSize( component ) * component->hostFrames * component->numBufs;
+}
+
+static int CalcHigherLogTwo( int n )
+{
+    int log2 = 0;
+    while( (1<<log2) < n ) log2++;
+    return log2;
+}
+
+static PaError PaOssStreamComponent_Configure( PaOssStreamComponent *component, double sampleRate, unsigned long
+        framesPerBuffer, StreamMode streamMode, PaOssStreamComponent *master )
+{
+    PaError result = paNoError;
+    int temp, nativeFormat;
+    int sr = (int)sampleRate;
+    PaSampleFormat availableFormats = 0, hostFormat = 0;
+    int chans = component->userChannelCount;
+    int frgmt;
+    int numBufs;
+    int bytesPerBuf;
+    unsigned long bufSz;
+    unsigned long fragSz;
+    audio_buf_info bufInfo;
+
+    /* We may have a situation where only one component (the master) is configured, if both point to the same device.
+     * In that case, the second component will copy settings from the other */
+    if( !master )
+    {
+        /* Aspect BufferSettings: If framesPerBuffer is unspecified we have to infer a suitable fragment size.
+         * The hardware need not respect the requested fragment size, so we may have to adapt.
+         */
+        if( framesPerBuffer == paFramesPerBufferUnspecified )
+        {
+            bufSz = (unsigned long)(component->latency * sampleRate);
+            fragSz = bufSz / 4;
+        }
+        else
+        {
+            fragSz = framesPerBuffer;
+            bufSz = (unsigned long)(component->latency * sampleRate) + fragSz; /* Latency + 1 buffer */
+        }
+
+        PA_ENSURE( GetAvailableFormats( component, &availableFormats ) );
+        hostFormat = PaUtil_SelectClosestAvailableFormat( availableFormats, component->userFormat );
+
+        /* OSS demands at least 2 buffers, and 16 bytes per buffer */
+        numBufs = (int)PA_MAX( bufSz / fragSz, 2 );
+        bytesPerBuf = PA_MAX( fragSz * Pa_GetSampleSize( hostFormat ) * chans, 16 );
+
+        /* The fragment parameters are encoded like this:
+         * Most significant byte: number of fragments
+         * Least significant byte: exponent of fragment size (i.e., for 256, 8)
+         */
+        frgmt = (numBufs << 16) + (CalcHigherLogTwo( bytesPerBuf ) & 0xffff);
+        ENSURE_( ioctl( component->fd, SNDCTL_DSP_SETFRAGMENT, &frgmt ), paUnanticipatedHostError );
+
+        /* A: according to the OSS programmer's guide parameters should be set in this order:
+         * format, channels, rate */
+
+        /* This format should be deemed good before we get this far */
+        PA_ENSURE( Pa2OssFormat( hostFormat, &temp ) );
+        nativeFormat = temp;
+        ENSURE_( ioctl( component->fd, SNDCTL_DSP_SETFMT, &temp ), paUnanticipatedHostError );
+        PA_UNLESS( temp == nativeFormat, paInternalError );
+
+        /* try to set the number of channels */
+        ENSURE_( ioctl( component->fd, SNDCTL_DSP_CHANNELS, &chans ), paSampleFormatNotSupported );   /* XXX: Should be paInvalidChannelCount? */
+        /* It's possible that the minimum number of host channels is greater than what the user requested */
+        PA_UNLESS( chans >= component->userChannelCount, paInvalidChannelCount );
+
+        /* try to set the sample rate */
+        ENSURE_( ioctl( component->fd, SNDCTL_DSP_SPEED, &sr ), paInvalidSampleRate );
+
+        /* reject if there's no sample rate within 1% of the one requested */
+        if( (fabs( sampleRate - sr ) / sampleRate) > 0.01 )
+        {
+            PA_DEBUG(("%s: Wanted %f, closest sample rate was %d\n", __FUNCTION__, sampleRate, sr ));
+            PA_ENSURE( paInvalidSampleRate );
+        }
+
+        ENSURE_( ioctl( component->fd, streamMode == StreamMode_In ? SNDCTL_DSP_GETISPACE : SNDCTL_DSP_GETOSPACE, &bufInfo ),
+                paUnanticipatedHostError );
+        component->numBufs = bufInfo.fragstotal;
+
+        /* This needs to be the last ioctl call before the first read/write, according to the OSS programmer's guide */
+        ENSURE_( ioctl( component->fd, SNDCTL_DSP_GETBLKSIZE, &bytesPerBuf ), paUnanticipatedHostError );
+
+        component->hostFrames = bytesPerBuf / Pa_GetSampleSize( hostFormat ) / chans;
+        component->hostChannelCount = chans;
+        component->hostFormat = hostFormat;
+    }
+    else
+    {
+        component->hostFormat = master->hostFormat;
+        component->hostFrames = master->hostFrames;
+        component->hostChannelCount = master->hostChannelCount;
+        component->numBufs = master->numBufs;
+    }
+
+    PA_UNLESS( component->buffer = PaUtil_AllocateMemory( PaOssStreamComponent_BufferSize( component ) ),
+            paInsufficientMemory );
+
+error:
+    return result;
+}
+
+static PaError PaOssStreamComponent_Read( PaOssStreamComponent *component, unsigned long *frames )
+{
+    PaError result = paNoError;
+    size_t len = *frames * PaOssStreamComponent_FrameSize( component );
+    ssize_t bytesRead;
+
+    ENSURE_( bytesRead = read( component->fd, component->buffer, len ), paUnanticipatedHostError );
+    *frames = bytesRead / PaOssStreamComponent_FrameSize( component );
+    /* TODO: Handle condition where number of frames read doesn't equal number of frames requested */
+
+error:
+    return result;
+}
+
+static PaError PaOssStreamComponent_Write( PaOssStreamComponent *component, unsigned long *frames )
+{
+    PaError result = paNoError;
+    size_t len = *frames * PaOssStreamComponent_FrameSize( component );
+    ssize_t bytesWritten;
+
+    ENSURE_( bytesWritten = write( component->fd, component->buffer, len ), paUnanticipatedHostError );
+    *frames = bytesWritten / PaOssStreamComponent_FrameSize( component );
+    /* TODO: Handle condition where number of frames written doesn't equal number of frames requested */
+
+error:
+    return result;
+}
+
+/** Configure the stream according to input/output parameters.
+ *
+ * Aspect StreamChannels: The minimum number of channels supported by the device may exceed that requested by
+ * the user, if so we'll record the actual number of host channels and adapt later.
+ */
+static PaError PaOssStream_Configure( PaOssStream *stream, double sampleRate, unsigned long framesPerBuffer,
+        double *inputLatency, double *outputLatency )
+{
+    PaError result = paNoError;
+    int duplex = stream->capture && stream->playback;
+    unsigned long framesPerHostBuffer = 0;
+
+    /* We should request full duplex first thing after opening the device */
+    if( duplex && stream->sharedDevice )
+        ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_SETDUPLEX, 0 ), paUnanticipatedHostError );
+
+    if( stream->capture )
+    {
+        PaOssStreamComponent *component = stream->capture;
+        PA_ENSURE( PaOssStreamComponent_Configure( component, sampleRate, framesPerBuffer, StreamMode_In,
+                    NULL ) );
+
+        assert( component->hostChannelCount > 0 );
+        assert( component->hostFrames > 0 );
+
+        *inputLatency = component->hostFrames * (component->numBufs - 1) / sampleRate;
+    }
+    if( stream->playback )
+    {
+        PaOssStreamComponent *component = stream->playback, *master = stream->sharedDevice ? stream->capture : NULL;
+        PA_ENSURE( PaOssStreamComponent_Configure( component, sampleRate, framesPerBuffer, StreamMode_Out,
+                    master ) );
+
+        assert( component->hostChannelCount > 0 );
+        assert( component->hostFrames > 0 );
+
+        *outputLatency = component->hostFrames * (component->numBufs - 1) / sampleRate;
+    }
+
+    if( duplex )
+        framesPerHostBuffer = PA_MIN( stream->capture->hostFrames, stream->playback->hostFrames );
+    else if( stream->capture )
+        framesPerHostBuffer = stream->capture->hostFrames;
+    else if( stream->playback )
+        framesPerHostBuffer = stream->playback->hostFrames;
+
+    stream->framesPerHostBuffer = framesPerHostBuffer;
+    stream->pollTimeout = (int) ceil( 1e6 * framesPerHostBuffer / sampleRate );    /* Period in usecs, rounded up */
+
+    stream->sampleRate = stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+error:
+    return result;
+}
+
+/* see pa_hostapi.h for a list of validity guarantees made about OpenStream parameters */
+
+/** Open a PA OSS stream.
+ *
+ * Aspect StreamChannels: The number of channels is specified per direction (in/out), and can differ between the
+ * two. However, OSS doesn't support separate configuration spaces for capture and playback so if both
+ * directions are the same device we will demand the same number of channels. The number of channels can range
+ * from 1 to the maximum supported by the device.
+ *
+ * Aspect BufferSettings: If framesPerBuffer != paFramesPerBufferUnspecified the number of frames per callback
+ * must reflect this, in addition the host latency per device should approximate the corresponding
+ * suggestedLatency. Based on these constraints we need to determine a number of frames per host buffer that
+ * both capture and playback can agree on (they can be different devices), the buffer processor can adapt
+ * between host and user buffer size, but the ratio should preferably be integral.
+ */
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaOSSHostApiRepresentation *ossHostApi = (PaOSSHostApiRepresentation*)hostApi;
+    PaOssStream *stream = NULL;
+    int inputChannelCount = 0, outputChannelCount = 0;
+    PaSampleFormat inputSampleFormat = 0, outputSampleFormat = 0, inputHostFormat = 0, outputHostFormat = 0;
+    const PaDeviceInfo *inputDeviceInfo = 0, *outputDeviceInfo = 0;
+    int bpInitialized = 0;
+    double inLatency = 0., outLatency = 0.;
+    int i = 0;
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+    if( inputParameters )
+    {
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+        inputDeviceInfo = hostApi->deviceInfos[inputParameters->device];
+        PA_ENSURE( ValidateParameters( inputParameters, inputDeviceInfo, StreamMode_In ) );
+
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+    }
+    if( outputParameters )
+    {
+        outputDeviceInfo = hostApi->deviceInfos[outputParameters->device];
+        PA_ENSURE( ValidateParameters( outputParameters, outputDeviceInfo, StreamMode_Out ) );
+
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+    }
+
+    /* Aspect StreamChannels: We currently demand that number of input and output channels are the same, if the same
+     * device is opened for both directions
+     */
+    if( inputChannelCount > 0 && outputChannelCount > 0 )
+    {
+        if( inputParameters->device == outputParameters->device )
+        {
+            if( inputParameters->channelCount != outputParameters->channelCount )
+                return paInvalidChannelCount;
+        }
+    }
+
+    /* Round framesPerBuffer to the next power-of-two to make OSS happy. */
+    if( framesPerBuffer != paFramesPerBufferUnspecified )
+    {
+        framesPerBuffer &= INT_MAX;
+        for (i = 1; framesPerBuffer > i; i <<= 1) ;
+        framesPerBuffer = i;
+    }
+
+    /* allocate and do basic initialization of the stream structure */
+    PA_UNLESS( stream = (PaOssStream*)PaUtil_AllocateMemory( sizeof(PaOssStream) ), paInsufficientMemory );
+    PA_ENSURE( PaOssStream_Initialize( stream, inputParameters, outputParameters, streamCallback, userData, streamFlags, ossHostApi ) );
+
+    PA_ENSURE( PaOssStream_Configure( stream, sampleRate, framesPerBuffer, &inLatency, &outLatency ) );
+
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+    if( inputParameters )
+    {
+        inputHostFormat = stream->capture->hostFormat;
+        stream->streamRepresentation.streamInfo.inputLatency = inLatency +
+            PaUtil_GetBufferProcessorInputLatency( &stream->bufferProcessor ) / sampleRate;
+    }
+    if( outputParameters )
+    {
+        outputHostFormat = stream->playback->hostFormat;
+        stream->streamRepresentation.streamInfo.outputLatency = outLatency +
+            PaUtil_GetBufferProcessorOutputLatency( &stream->bufferProcessor ) / sampleRate;
+    }
+
+    /* Initialize buffer processor with fixed host buffer size.
+     * Aspect StreamSampleFormat: Here we commit the user and host sample formats, PA infrastructure will
+     * convert between the two.
+     */
+    PA_ENSURE( PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+              inputChannelCount, inputSampleFormat, inputHostFormat, outputChannelCount, outputSampleFormat,
+              outputHostFormat, sampleRate, streamFlags, framesPerBuffer, stream->framesPerHostBuffer,
+              paUtilFixedHostBufferSize, streamCallback, userData ) );
+    bpInitialized = 1;
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+    if( bpInitialized )
+        PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    if( stream )
+        PaOssStream_Terminate( stream );
+
+    return result;
+}
+
+/*! Poll on I/O filedescriptors.
+
+  Poll till we've determined there's data for read or write. In the full-duplex case,
+  we don't want to hang around forever waiting for either input or output frames, so
+  whenever we have a timed out filedescriptor we check if we're nearing under/overrun
+  for the other direction (critical limit set at one buffer). If so, we exit the waiting
+  state, and go on with what we got. We align the number of frames on a host buffer
+  boundary because it is possible that the buffer size differs for the two directions and
+  the host buffer size is a compromise between the two.
+  */
+static PaError PaOssStream_WaitForFrames( PaOssStream *stream, unsigned long *frames )
+{
+    PaError result = paNoError;
+    int pollPlayback = 0, pollCapture = 0;
+    int captureAvail = INT_MAX, playbackAvail = INT_MAX, commonAvail;
+    audio_buf_info bufInfo;
+    /* int ofs = 0, nfds = stream->nfds; */
+    fd_set readFds, writeFds;
+    int nfds = 0;
+    struct timeval selectTimeval = {0, 0};
+    unsigned long timeout = stream->pollTimeout;    /* In usecs */
+    int captureFd = -1, playbackFd = -1;
+
+    assert( stream );
+    assert( frames );
+
+    if( stream->capture )
+    {
+        pollCapture = 1;
+        captureFd = stream->capture->fd;
+        /* stream->capture->pfd->events = POLLIN; */
+    }
+    if( stream->playback )
+    {
+        pollPlayback = 1;
+        playbackFd = stream->playback->fd;
+        /* stream->playback->pfd->events = POLLOUT; */
+    }
+
+    FD_ZERO( &readFds );
+    FD_ZERO( &writeFds );
+
+    while( pollPlayback || pollCapture )
+    {
+        pthread_testcancel();
+
+        /* select may modify the timeout parameter */
+        selectTimeval.tv_usec = timeout;
+        nfds = 0;
+
+        if( pollCapture )
+        {
+            FD_SET( captureFd, &readFds );
+            nfds = captureFd + 1;
+        }
+        if( pollPlayback )
+        {
+            FD_SET( playbackFd, &writeFds );
+            nfds = PA_MAX( nfds, playbackFd + 1 );
+        }
+        ENSURE_( select( nfds, &readFds, &writeFds, NULL, &selectTimeval ), paUnanticipatedHostError );
+        /*
+        if( poll( stream->pfds + ofs, nfds, stream->pollTimeout ) < 0 )
+        {
+
+            ENSURE_( -1, paUnanticipatedHostError );
+        }
+        */
+        pthread_testcancel();
+
+        if( pollCapture )
+        {
+            if( FD_ISSET( captureFd, &readFds ) )
+            {
+                FD_CLR( captureFd, &readFds );
+                pollCapture = 0;
+            }
+            /*
+            if( stream->capture->pfd->revents & POLLIN )
+            {
+                --nfds;
+                ++ofs;
+                pollCapture = 0;
+            }
+            */
+            else if( stream->playback ) /* Timed out, go on with playback? */
+            {
+                /*PA_DEBUG(( "%s: Trying to poll again for capture frames, pollTimeout: %d\n",
+                            __FUNCTION__, stream->pollTimeout ));*/
+            }
+        }
+        if( pollPlayback )
+        {
+            if( FD_ISSET( playbackFd, &writeFds ) )
+            {
+                FD_CLR( playbackFd, &writeFds );
+                pollPlayback = 0;
+            }
+            /*
+            if( stream->playback->pfd->revents & POLLOUT )
+            {
+                --nfds;
+                pollPlayback = 0;
+            }
+            */
+            else if( stream->capture )  /* Timed out, go on with capture? */
+            {
+                /*PA_DEBUG(( "%s: Trying to poll again for playback frames, pollTimeout: %d\n\n",
+                            __FUNCTION__, stream->pollTimeout ));*/
+            }
+        }
+    }
+
+    if( stream->capture )
+    {
+        ENSURE_( ioctl( captureFd, SNDCTL_DSP_GETISPACE, &bufInfo ), paUnanticipatedHostError );
+        captureAvail = bufInfo.fragments * stream->capture->hostFrames;
+        if( !captureAvail )
+            PA_DEBUG(( "%s: captureAvail: 0\n", __FUNCTION__ ));
+
+        captureAvail = captureAvail == 0 ? INT_MAX : captureAvail;      /* Disregard if zero */
+    }
+    if( stream->playback )
+    {
+        ENSURE_( ioctl( playbackFd, SNDCTL_DSP_GETOSPACE, &bufInfo ), paUnanticipatedHostError );
+        playbackAvail = bufInfo.fragments * stream->playback->hostFrames;
+        if( !playbackAvail )
+        {
+            PA_DEBUG(( "%s: playbackAvail: 0\n", __FUNCTION__ ));
+        }
+
+        playbackAvail = playbackAvail == 0 ? INT_MAX : playbackAvail;      /* Disregard if zero */
+    }
+
+    commonAvail = PA_MIN( captureAvail, playbackAvail );
+    if( commonAvail == INT_MAX )
+        commonAvail = 0;
+    commonAvail -= commonAvail % stream->framesPerHostBuffer;
+
+    assert( commonAvail != INT_MAX );
+    assert( commonAvail >= 0 );
+    *frames = commonAvail;
+
+error:
+    return result;
+}
+
+/** Prepare stream for capture/playback.
+ *
+ * In order to synchronize capture and playback properly we use the SETTRIGGER command.
+ */
+static PaError PaOssStream_Prepare( PaOssStream *stream )
+{
+    PaError result = paNoError;
+    int enableBits = 0;
+
+    if( stream->triggered )
+        return result;
+
+    if( stream->playback )
+    {
+        size_t bufSz = PaOssStreamComponent_BufferSize( stream->playback );
+        memset( stream->playback->buffer, 0, bufSz );
+
+        /* Looks like we have to turn off blocking before we try this, but if we don't fill the buffer
+         * OSS will complain. */
+        PA_ENSURE( ModifyBlocking( stream->playback->fd, 0 ) );
+        while (1)
+        {
+            if( write( stream->playback->fd, stream->playback->buffer, bufSz ) < 0 )
+                break;
+        }
+        PA_ENSURE( ModifyBlocking( stream->playback->fd, 1 ) );
+    }
+
+    if( stream->sharedDevice )
+    {
+        enableBits = PCM_ENABLE_INPUT | PCM_ENABLE_OUTPUT;
+        ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError );
+    }
+    else
+    {
+        if( stream->capture )
+        {
+            enableBits = PCM_ENABLE_INPUT;
+            ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError );
+        }
+        if( stream->playback )
+        {
+            enableBits = PCM_ENABLE_OUTPUT;
+            ENSURE_( ioctl( stream->playback->fd, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError );
+        }
+    }
+
+    /* Ok, we have triggered the stream */
+    stream->triggered = 1;
+
+error:
+    return result;
+}
+
+/** Stop audio processing
+ *
+ */
+static PaError PaOssStream_Stop( PaOssStream *stream, int abort )
+{
+    PaError result = paNoError;
+
+    /* Looks like the only safe way to stop audio without reopening the device is SNDCTL_DSP_POST.
+     * Also disable capture/playback till the stream is started again */
+    if( stream->capture )
+    {
+        ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_POST, 0 ), paUnanticipatedHostError );
+    }
+    if( stream->playback && !stream->sharedDevice )
+    {
+        ENSURE_( ioctl( stream->playback->fd, SNDCTL_DSP_POST, 0 ), paUnanticipatedHostError );
+    }
+
+error:
+    return result;
+}
+
+/** Clean up after thread exit.
+ *
+ * Aspect StreamState: If the user has registered a streamFinishedCallback it will be called here
+ */
+static void OnExit( void *data )
+{
+    PaOssStream *stream = (PaOssStream *) data;
+    assert( data );
+
+    PaUtil_ResetCpuLoadMeasurer( &stream->cpuLoadMeasurer );
+
+    PaOssStream_Stop( stream, stream->callbackAbort );
+
+    PA_DEBUG(( "OnExit: Stoppage\n" ));
+
+    /* Eventually notify user all buffers have played */
+    if( stream->streamRepresentation.streamFinishedCallback )
+        stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+
+    stream->callbackAbort = 0;      /* Clear state */
+    stream->isActive = 0;
+}
+
+static PaError SetUpBuffers( PaOssStream *stream, unsigned long framesAvail )
+{
+    PaError result = paNoError;
+
+    if( stream->capture )
+    {
+        PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor, 0, stream->capture->buffer,
+                stream->capture->hostChannelCount );
+        PaUtil_SetInputFrameCount( &stream->bufferProcessor, framesAvail );
+    }
+    if( stream->playback )
+    {
+        PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, 0, stream->playback->buffer,
+                stream->playback->hostChannelCount );
+        PaUtil_SetOutputFrameCount( &stream->bufferProcessor, framesAvail );
+    }
+
+    return result;
+}
+
+/** Thread procedure for callback processing.
+ *
+ * Aspect StreamState: StartStream will wait on this to initiate audio processing, useful in case the
+ * callback should be used for buffer priming. When the stream is cancelled a separate function will
+ * take care of the transition to the Callback Finished state (the stream isn't considered Stopped
+ * before StopStream() or AbortStream() are called).
+ */
+static void *PaOSS_AudioThreadProc( void *userData )
+{
+    PaError result = paNoError;
+    PaOssStream *stream = (PaOssStream*)userData;
+    unsigned long framesAvail = 0, framesProcessed = 0;
+    int callbackResult = paContinue;
+    int triggered = stream->triggered;  /* See if SNDCTL_DSP_TRIGGER has been issued already */
+    int initiateProcessing = triggered;    /* Already triggered? */
+    PaStreamCallbackFlags cbFlags = 0;  /* We might want to keep state across iterations */
+    PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /* TODO: IMPLEMENT ME */
+
+    /*
+#if ( SOUND_VERSION > 0x030904 )
+        audio_errinfo errinfo;
+#endif
+*/
+
+    assert( stream );
+
+    pthread_cleanup_push( &OnExit, stream );	/* Execute OnExit when exiting */
+
+    /* The first time the stream is started we use SNDCTL_DSP_TRIGGER to accurately start capture and
+     * playback in sync, when the stream is restarted after being stopped we simply start by reading/
+     * writing.
+     */
+    PA_ENSURE( PaOssStream_Prepare( stream ) );
+
+    /* If we are to initiate processing implicitly by reading/writing data, we start off in blocking mode */
+    if( initiateProcessing )
+    {
+        /* Make sure devices are in blocking mode */
+        if( stream->capture )
+            ModifyBlocking( stream->capture->fd, 1 );
+        if( stream->playback )
+            ModifyBlocking( stream->playback->fd, 1 );
+    }
+
+    while( 1 )
+    {
+        pthread_testcancel();
+
+        if( stream->callbackStop && callbackResult == paContinue )
+        {
+            PA_DEBUG(( "Setting callbackResult to paComplete\n" ));
+            callbackResult = paComplete;
+        }
+
+        /* Aspect StreamState: Because of the messy OSS scheme we can't explicitly trigger device start unless
+         * the stream has been recently started, we will have to go right ahead and read/write in blocking
+         * fashion to trigger operation. Therefore we begin with processing one host buffer before we switch
+         * to non-blocking mode.
+         */
+        if( !initiateProcessing )
+        {
+            /* Wait on available frames */
+            PA_ENSURE( PaOssStream_WaitForFrames( stream, &framesAvail ) );
+            assert( framesAvail % stream->framesPerHostBuffer == 0 );
+        }
+        else
+        {
+            framesAvail = stream->framesPerHostBuffer;
+        }
+
+        while( framesAvail > 0 )
+        {
+            unsigned long frames = framesAvail;
+
+            pthread_testcancel();
+
+            PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+
+            /* Read data */
+            if ( stream->capture )
+            {
+                PA_ENSURE( PaOssStreamComponent_Read( stream->capture, &frames ) );
+                if( frames < framesAvail )
+                {
+                    PA_DEBUG(( "Read %lu less frames than requested\n", framesAvail - frames ));
+                    framesAvail = frames;
+                }
+            }
+
+#if ( SOUND_VERSION >= 0x030904 )
+            /*
+               Check with OSS to see if there have been any under/overruns
+               since last time we checked.
+               */
+            /*
+            if( ioctl( stream->deviceHandle, SNDCTL_DSP_GETERROR, &errinfo ) >= 0 )
+            {
+                if( errinfo.play_underruns )
+                    cbFlags |= paOutputUnderflow ;
+                if( errinfo.record_underruns )
+                    cbFlags |= paInputUnderflow ;
+            }
+            else
+                PA_DEBUG(( "SNDCTL_DSP_GETERROR command failed: %s\n", strerror( errno ) ));
+                */
+#endif
+
+            PaUtil_BeginBufferProcessing( &stream->bufferProcessor, &timeInfo,
+                    cbFlags );
+            cbFlags = 0;
+            PA_ENSURE( SetUpBuffers( stream, framesAvail ) );
+
+            framesProcessed = PaUtil_EndBufferProcessing( &stream->bufferProcessor,
+                    &callbackResult );
+            assert( framesProcessed == framesAvail );
+            PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+
+            if ( stream->playback )
+            {
+                frames = framesAvail;
+
+                PA_ENSURE( PaOssStreamComponent_Write( stream->playback, &frames ) );
+                if( frames < framesAvail )
+                {
+                    /* TODO: handle bytesWritten != bytesRequested (slippage?) */
+                    PA_DEBUG(( "Wrote %lu less frames than requested\n", framesAvail - frames ));
+                }
+            }
+
+            framesAvail -= framesProcessed;
+            stream->framesProcessed += framesProcessed;
+
+            if( callbackResult != paContinue )
+                break;
+        }
+
+        if( initiateProcessing || !triggered )
+        {
+            /* Non-blocking */
+            if( stream->capture )
+                PA_ENSURE( ModifyBlocking( stream->capture->fd, 0 ) );
+            if( stream->playback && !stream->sharedDevice )
+                PA_ENSURE( ModifyBlocking( stream->playback->fd, 0 ) );
+
+            initiateProcessing = 0;
+            sem_post( &stream->semaphore );
+        }
+
+        if( callbackResult != paContinue )
+        {
+            stream->callbackAbort = callbackResult == paAbort;
+            if( stream->callbackAbort || PaUtil_IsBufferProcessorOutputEmpty( &stream->bufferProcessor ) )
+                break;
+        }
+    }
+
+    pthread_cleanup_pop( 1 );
+
+error:
+    pthread_exit( NULL );
+}
+
+/** Close the stream.
+ *
+ */
+static PaError CloseStream( PaStream* s )
+{
+    PaError result = paNoError;
+    PaOssStream *stream = (PaOssStream*)s;
+
+    assert( stream );
+
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaOssStream_Terminate( stream );
+
+    return result;
+}
+
+/** Start the stream.
+ *
+ * Aspect StreamState: After returning, the stream shall be in the Active state, implying that an eventual
+ * callback will be repeatedly called in a separate thread. If a separate thread is started this function
+ * will block untill it has started processing audio, otherwise audio processing is started directly.
+ */
+static PaError StartStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaOssStream *stream = (PaOssStream*)s;
+
+    stream->isActive = 1;
+    stream->isStopped = 0;
+    stream->lastPosPtr = 0;
+    stream->lastStreamBytes = 0;
+    stream->framesProcessed = 0;
+
+    /* only use the thread for callback streams */
+    if( stream->bufferProcessor.streamCallback )
+    {
+        PA_ENSURE( PaUtil_StartThreading( &stream->threading, &PaOSS_AudioThreadProc, stream ) );
+        sem_wait( &stream->semaphore );
+    }
+    else
+        PA_ENSURE( PaOssStream_Prepare( stream ) );
+
+error:
+    return result;
+}
+
+static PaError RealStop( PaOssStream *stream, int abort )
+{
+    PaError result = paNoError;
+
+    if( stream->callbackMode )
+    {
+        if( abort )
+            stream->callbackAbort = 1;
+        else
+            stream->callbackStop = 1;
+
+        PA_ENSURE( PaUtil_CancelThreading( &stream->threading, !abort, NULL ) );
+
+        stream->callbackStop = stream->callbackAbort = 0;
+    }
+    else
+        PA_ENSURE( PaOssStream_Stop( stream, abort ) );
+
+    stream->isStopped = 1;
+
+error:
+    return result;
+}
+
+/** Stop the stream.
+ *
+ * Aspect StreamState: This will cause the stream to transition to the Stopped state, playing all enqueued
+ * buffers.
+ */
+static PaError StopStream( PaStream *s )
+{
+    return RealStop( (PaOssStream *)s, 0 );
+}
+
+/** Abort the stream.
+ *
+ * Aspect StreamState: This will cause the stream to transition to the Stopped state, discarding all enqueued
+ * buffers. Note that the buffers are not currently correctly discarded, this is difficult without closing
+ * the OSS device.
+ */
+static PaError AbortStream( PaStream *s )
+{
+    return RealStop( (PaOssStream *)s, 1 );
+}
+
+/** Is the stream in the Stopped state.
+ *
+ */
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+
+    return (stream->isStopped);
+}
+
+/** Is the stream in the Active state.
+ *
+ */
+static PaError IsStreamActive( PaStream *s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+
+    return (stream->isActive);
+}
+
+static PaTime GetStreamTime( PaStream *s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+    count_info info;
+    int delta;
+
+    if( stream->playback ) {
+        if( ioctl( stream->playback->fd, SNDCTL_DSP_GETOPTR, &info) == 0 ) {
+            delta = ( info.bytes - stream->lastPosPtr ) /* & 0x000FFFFF*/;
+            return (float)(stream->lastStreamBytes + delta) / PaOssStreamComponent_FrameSize( stream->playback ) / stream->sampleRate;
+        }
+    }
+    else {
+        if (ioctl( stream->capture->fd, SNDCTL_DSP_GETIPTR, &info) == 0) {
+            delta = (info.bytes - stream->lastPosPtr) /*& 0x000FFFFF*/;
+            return (float)(stream->lastStreamBytes + delta) / PaOssStreamComponent_FrameSize( stream->capture ) / stream->sampleRate;
+        }
+    }
+
+    /* the ioctl failed, but we can still give a coarse estimate */
+
+    return stream->framesProcessed / stream->sampleRate;
+}
+
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
+
+
+/*
+    As separate stream interfaces are used for blocking and callback
+    streams, the following functions can be guaranteed to only be called
+    for blocking streams.
+*/
+
+
+static PaError ReadStream( PaStream* s,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+    int bytesRequested, bytesRead;
+    unsigned long framesRequested;
+    void *userBuffer;
+
+    /* If user input is non-interleaved, PaUtil_CopyInput will manipulate the channel pointers,
+     * so we copy the user provided pointers */
+    if( stream->bufferProcessor.userInputIsInterleaved )
+        userBuffer = buffer;
+    else /* Copy channels into local array */
+    {
+        userBuffer = stream->capture->userBuffers;
+        memcpy( (void *)userBuffer, buffer, sizeof (void *) * stream->capture->userChannelCount );
+    }
+
+    while( frames )
+    {
+        framesRequested = PA_MIN( frames, stream->capture->hostFrames );
+
+	bytesRequested = framesRequested * PaOssStreamComponent_FrameSize( stream->capture );
+	bytesRead = read( stream->capture->fd, stream->capture->buffer, bytesRequested );
+	if ( bytesRequested != bytesRead )
+	    return paUnanticipatedHostError;
+
+	PaUtil_SetInputFrameCount( &stream->bufferProcessor, stream->capture->hostFrames );
+	PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor, 0, stream->capture->buffer, stream->capture->hostChannelCount );
+        PaUtil_CopyInput( &stream->bufferProcessor, &userBuffer, framesRequested );
+	frames -= framesRequested;
+    }
+    return paNoError;
+}
+
+
+static PaError WriteStream( PaStream *s, const void *buffer, unsigned long frames )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+    int bytesRequested, bytesWritten;
+    unsigned long framesConverted;
+    const void *userBuffer;
+
+    /* If user output is non-interleaved, PaUtil_CopyOutput will manipulate the channel pointers,
+     * so we copy the user provided pointers */
+    if( stream->bufferProcessor.userOutputIsInterleaved )
+        userBuffer = buffer;
+    else
+    {
+        /* Copy channels into local array */
+        userBuffer = stream->playback->userBuffers;
+        memcpy( (void *)userBuffer, buffer, sizeof (void *) * stream->playback->userChannelCount );
+    }
+
+    while( frames )
+    {
+	PaUtil_SetOutputFrameCount( &stream->bufferProcessor, stream->playback->hostFrames );
+	PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, 0, stream->playback->buffer, stream->playback->hostChannelCount );
+
+	framesConverted = PaUtil_CopyOutput( &stream->bufferProcessor, &userBuffer, frames );
+	frames -= framesConverted;
+
+	bytesRequested = framesConverted * PaOssStreamComponent_FrameSize( stream->playback );
+	bytesWritten = write( stream->playback->fd, stream->playback->buffer, bytesRequested );
+
+	if ( bytesRequested != bytesWritten )
+	    return paUnanticipatedHostError;
+    }
+    return paNoError;
+}
+
+
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+    audio_buf_info info;
+
+    if( ioctl( stream->capture->fd, SNDCTL_DSP_GETISPACE, &info ) < 0 )
+        return paUnanticipatedHostError;
+    return info.fragments * stream->capture->hostFrames;
+}
+
+
+/* TODO: Compute number of allocated bytes somewhere else, can we use ODELAY with capture */
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaOssStream *stream = (PaOssStream*)s;
+    int delay = 0;
+
+    if( ioctl( stream->playback->fd, SNDCTL_DSP_GETODELAY, &delay ) < 0 )
+        return paUnanticipatedHostError;
+
+    return (PaOssStreamComponent_BufferSize( stream->playback ) - delay) / PaOssStreamComponent_FrameSize( stream->playback );
+}
+
diff --git a/external/portaudio2007/pa_unix_util.c b/external/portaudio2007/pa_unix_util.c
new file mode 100644
index 0000000..54e1d7b
--- /dev/null
+++ b/external/portaudio2007/pa_unix_util.c
@@ -0,0 +1,668 @@
+#ifdef UNIX
+/*
+ * $Id: pa_unix_util.c 1232 2007-06-16 14:49:43Z rossb $
+ * Portable Audio I/O Library
+ * UNIX platform-specific support functions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup unix_src
+*/
+ 
+#include <pthread.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sys/time.h>
+#include <assert.h>
+#include <string.h> /* For memset */
+#include <math.h>
+#include <errno.h>
+
+#include "pa_util.h"
+#include "pa_unix_util.h"
+#include "pa_debugprint.h"
+
+/*
+   Track memory allocations to avoid leaks.
+ */
+
+#if PA_TRACK_MEMORY
+static int numAllocations_ = 0;
+#endif
+
+
+void *PaUtil_AllocateMemory( long size )
+{
+    void *result = malloc( size );
+
+#if PA_TRACK_MEMORY
+    if( result != NULL ) numAllocations_ += 1;
+#endif
+    return result;
+}
+
+
+void PaUtil_FreeMemory( void *block )
+{
+    if( block != NULL )
+    {
+        free( block );
+#if PA_TRACK_MEMORY
+        numAllocations_ -= 1;
+#endif
+
+    }
+}
+
+
+int PaUtil_CountCurrentlyAllocatedBlocks( void )
+{
+#if PA_TRACK_MEMORY
+    return numAllocations_;
+#else
+    return 0;
+#endif
+}
+
+
+void Pa_Sleep( long msec )
+{
+#ifdef HAVE_NANOSLEEP
+    struct timespec req = {0}, rem = {0};
+    PaTime time = msec / 1.e3;
+    req.tv_sec = (time_t)time;
+    assert(time - req.tv_sec < 1.0);
+    req.tv_nsec = (long)((time - req.tv_sec) * 1.e9);
+    nanosleep(&req, &rem);
+    /* XXX: Try sleeping the remaining time (contained in rem) if interrupted by a signal? */
+#else
+    while( msec > 999 )     /* For OpenBSD and IRIX, argument */
+        {                   /* to usleep must be < 1000000.   */
+        usleep( 999000 );
+        msec -= 999;
+        }
+    usleep( msec * 1000 );
+#endif
+}
+
+/*            *** NOT USED YET: ***
+static int usePerformanceCounter_;
+static double microsecondsPerTick_;
+*/
+
+void PaUtil_InitializeClock( void )
+{
+    /* TODO */
+}
+
+
+PaTime PaUtil_GetTime( void )
+{
+#ifdef HAVE_CLOCK_GETTIME
+    struct timespec tp;
+    clock_gettime(CLOCK_REALTIME, &tp);
+    return (PaTime)(tp.tv_sec + tp.tv_nsec / 1.e9);
+#else
+    struct timeval tv;
+    gettimeofday( &tv, NULL );
+    return (PaTime) tv.tv_usec / 1000000. + tv.tv_sec;
+#endif
+}
+
+PaError PaUtil_InitializeThreading( PaUtilThreading *threading )
+{
+    (void) paUtilErr_;
+    return paNoError;
+}
+
+void PaUtil_TerminateThreading( PaUtilThreading *threading )
+{
+}
+
+PaError PaUtil_StartThreading( PaUtilThreading *threading, void *(*threadRoutine)(void *), void *data )
+{
+    pthread_create( &threading->callbackThread, NULL, threadRoutine, data );
+    return paNoError;
+}
+
+PaError PaUtil_CancelThreading( PaUtilThreading *threading, int wait, PaError *exitResult )
+{
+    PaError result = paNoError;
+    void *pret;
+
+    if( exitResult )
+        *exitResult = paNoError;
+
+    /* Only kill the thread if it isn't in the process of stopping (flushing adaptation buffers) */
+    if( !wait )
+        pthread_cancel( threading->callbackThread );   /* XXX: Safe to call this if the thread has exited on its own? */
+    pthread_join( threading->callbackThread, &pret );
+
+#ifdef PTHREAD_CANCELED
+    if( pret && PTHREAD_CANCELED != pret )
+#else
+    /* !wait means the thread may have been canceled */
+    if( pret && wait )
+#endif
+    {
+        if( exitResult )
+            *exitResult = *(PaError *) pret;
+        free( pret );
+    }
+
+    return result;
+}
+
+/* Threading */
+/* paUnixMainThread 
+ * We have to be a bit careful with defining this global variable,
+ * as explained below. */
+#ifdef __apple__
+/* apple/gcc has a "problem" with global vars and dynamic libs.
+   Initializing it seems to fix the problem.
+   Described a bit in this thread:
+   http://gcc.gnu.org/ml/gcc/2005-06/msg00179.html
+*/
+pthread_t paUnixMainThread = 0;
+#else
+/*pthreads are opaque. We don't know that asigning it an int value
+  always makes sense, so we don't initialize it unless we have to.*/
+pthread_t paUnixMainThread = 0;
+#endif
+
+PaError PaUnixThreading_Initialize()
+{
+    paUnixMainThread = pthread_self();
+    return paNoError;
+}
+
+static PaError BoostPriority( PaUnixThread* self )
+{
+    PaError result = paNoError;
+    struct sched_param spm = { 0 };
+    /* Priority should only matter between contending FIFO threads? */
+    spm.sched_priority = 1;
+
+    assert( self );
+
+    if( pthread_setschedparam( self->thread, SCHED_FIFO, &spm ) != 0 )
+    {
+        PA_UNLESS( errno == EPERM, paInternalError );  /* Lack permission to raise priority */
+        PA_DEBUG(( "Failed bumping priority\n" ));
+        result = 0;
+    }
+    else
+    {
+        result = 1; /* Success */
+    }
+error:
+    return result;
+}
+
+PaError PaUnixThread_New( PaUnixThread* self, void* (*threadFunc)( void* ), void* threadArg, PaTime waitForChild,
+        int rtSched )
+{
+    PaError result = paNoError;
+    pthread_attr_t attr;
+    int started = 0;
+
+    memset( self, 0, sizeof (PaUnixThread) );
+    PaUnixMutex_Initialize( &self->mtx );
+    PA_ASSERT_CALL( pthread_cond_init( &self->cond, NULL ), 0 );
+
+    self->parentWaiting = 0 != waitForChild;
+
+    /* Spawn thread */
+
+/* Temporarily disabled since we should test during configuration for presence of required mman.h header */
+#if 0
+#if defined _POSIX_MEMLOCK && (_POSIX_MEMLOCK != -1)
+    if( rtSched )
+    {
+        if( mlockall( MCL_CURRENT | MCL_FUTURE ) < 0 )
+        {
+            int savedErrno = errno;             /* In case errno gets overwritten */
+            assert( savedErrno != EINVAL );     /* Most likely a programmer error */
+            PA_UNLESS( (savedErrno == EPERM), paInternalError );
+            PA_DEBUG(( "%s: Failed locking memory\n", __FUNCTION__ ));
+        }
+        else
+            PA_DEBUG(( "%s: Successfully locked memory\n", __FUNCTION__ ));
+    }
+#endif
+#endif
+
+    PA_UNLESS( !pthread_attr_init( &attr ), paInternalError );
+    /* Priority relative to other processes */
+    PA_UNLESS( !pthread_attr_setscope( &attr, PTHREAD_SCOPE_SYSTEM ), paInternalError );   
+
+    PA_UNLESS( !pthread_create( &self->thread, &attr, threadFunc, threadArg ), paInternalError );
+    started = 1;
+
+    if( rtSched )
+    {
+#if 0
+        if( self->useWatchdog )
+        {
+            int err;
+            struct sched_param wdSpm = { 0 };
+            /* Launch watchdog, watchdog sets callback thread priority */
+            int prio = PA_MIN( self->rtPrio + 4, sched_get_priority_max( SCHED_FIFO ) );
+            wdSpm.sched_priority = prio;
+
+            PA_UNLESS( !pthread_attr_init( &attr ), paInternalError );
+            PA_UNLESS( !pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ), paInternalError );
+            PA_UNLESS( !pthread_attr_setscope( &attr, PTHREAD_SCOPE_SYSTEM ), paInternalError );
+            PA_UNLESS( !pthread_attr_setschedpolicy( &attr, SCHED_FIFO ), paInternalError );
+            PA_UNLESS( !pthread_attr_setschedparam( &attr, &wdSpm ), paInternalError );
+            if( (err = pthread_create( &self->watchdogThread, &attr, &WatchdogFunc, self )) )
+            {
+                PA_UNLESS( err == EPERM, paInternalError );
+                /* Permission error, go on without realtime privileges */
+                PA_DEBUG(( "Failed bumping priority\n" ));
+            }
+            else
+            {
+                int policy;
+                self->watchdogRunning = 1;
+                PA_ENSURE_SYSTEM( pthread_getschedparam( self->watchdogThread, &policy, &wdSpm ), 0 );
+                /* Check if priority is right, policy could potentially differ from SCHED_FIFO (but that's alright) */
+                if( wdSpm.sched_priority != prio )
+                {
+                    PA_DEBUG(( "Watchdog priority not set correctly (%d)\n", wdSpm.sched_priority ));
+                    PA_ENSURE( paInternalError );
+                }
+            }
+        }
+        else
+#endif
+            PA_ENSURE( BoostPriority( self ) );
+
+        {
+            int policy;
+            struct sched_param spm;
+            pthread_getschedparam(self->thread, &policy, &spm);
+        }
+    }
+    
+    if( self->parentWaiting )
+    {
+        PaTime till;
+        struct timespec ts;
+        int res = 0;
+        PaTime now;
+
+        PA_ENSURE( PaUnixMutex_Lock( &self->mtx ) );
+
+        /* Wait for stream to be started */
+        now = PaUtil_GetTime();
+        till = now + waitForChild;
+
+        while( self->parentWaiting && !res )
+        {
+            if( waitForChild > 0 )
+            {
+                ts.tv_sec = (time_t) floor( till );
+                ts.tv_nsec = (long) ((till - floor( till )) * 1e9);
+                res = pthread_cond_timedwait( &self->cond, &self->mtx.mtx, &ts );
+            }
+            else
+            {
+                res = pthread_cond_wait( &self->cond, &self->mtx.mtx );
+            }
+        }
+
+        PA_ENSURE( PaUnixMutex_Unlock( &self->mtx ) );
+
+        PA_UNLESS( !res || ETIMEDOUT == res, paInternalError );
+        PA_DEBUG(( "%s: Waited for %g seconds for stream to start\n", __FUNCTION__, PaUtil_GetTime() - now ));
+        if( ETIMEDOUT == res )
+        {
+            PA_ENSURE( paTimedOut );
+        }
+    }
+
+end:
+    return result;
+error:
+    if( started )
+    {
+        PaUnixThread_Terminate( self, 0, NULL );
+    }
+
+    goto end;
+}
+
+PaError PaUnixThread_Terminate( PaUnixThread* self, int wait, PaError* exitResult )
+{
+    PaError result = paNoError;
+    void* pret;
+
+    if( exitResult )
+    {
+        *exitResult = paNoError;
+    }
+#if 0
+    if( watchdogExitResult )
+        *watchdogExitResult = paNoError;
+
+    if( th->watchdogRunning )
+    {
+        pthread_cancel( th->watchdogThread );
+        PA_ENSURE_SYSTEM( pthread_join( th->watchdogThread, &pret ), 0 );
+
+        if( pret && pret != PTHREAD_CANCELED )
+        {
+            if( watchdogExitResult )
+                *watchdogExitResult = *(PaError *) pret;
+            free( pret );
+        }
+    }
+#endif
+
+    /* Only kill the thread if it isn't in the process of stopping (flushing adaptation buffers) */
+    /* TODO: Make join time out */
+    self->stopRequested = wait;
+    if( !wait )
+    {
+        PA_DEBUG(( "%s: Canceling thread %d\n", __FUNCTION__, self->thread ));
+        /* XXX: Safe to call this if the thread has exited on its own? */
+        pthread_cancel( self->thread );
+    }
+    PA_DEBUG(( "%s: Joining thread %d\n", __FUNCTION__, self->thread ));
+    PA_ENSURE_SYSTEM( pthread_join( self->thread, &pret ), 0 );
+
+    if( pret && PTHREAD_CANCELED != pret )
+    {
+        if( exitResult )
+        {
+            *exitResult = *(PaError*)pret;
+        }
+        free( pret );
+    }
+
+error:
+    PA_ASSERT_CALL( PaUnixMutex_Terminate( &self->mtx ), paNoError );
+    PA_ASSERT_CALL( pthread_cond_destroy( &self->cond ), 0 );
+
+    return result;
+}
+
+PaError PaUnixThread_PrepareNotify( PaUnixThread* self )
+{
+    PaError result = paNoError;
+    PA_UNLESS( self->parentWaiting, paInternalError );
+
+    PA_ENSURE( PaUnixMutex_Lock( &self->mtx ) );
+    self->locked = 1;
+
+error:
+    return result;
+}
+
+PaError PaUnixThread_NotifyParent( PaUnixThread* self )
+{
+    PaError result = paNoError;
+    PA_UNLESS( self->parentWaiting, paInternalError );
+
+    if( !self->locked )
+    {
+        PA_ENSURE( PaUnixMutex_Lock( &self->mtx ) );
+        self->locked = 1;
+    }
+    self->parentWaiting = 0;
+    pthread_cond_signal( &self->cond );
+    PA_ENSURE( PaUnixMutex_Unlock( &self->mtx ) );
+    self->locked = 0;
+
+error:
+    return result;
+}
+
+int PaUnixThread_StopRequested( PaUnixThread* self )
+{
+    return self->stopRequested;
+}
+
+PaError PaUnixMutex_Initialize( PaUnixMutex* self )
+{
+    PaError result = paNoError;
+    PA_ASSERT_CALL( pthread_mutex_init( &self->mtx, NULL ), 0 );
+    return result;
+}
+
+PaError PaUnixMutex_Terminate( PaUnixMutex* self )
+{
+    PaError result = paNoError;
+    PA_ASSERT_CALL( pthread_mutex_destroy( &self->mtx ), 0 );
+    return result;
+}
+
+/** Lock mutex.
+ *
+ * We're disabling thread cancellation while the thread is holding a lock, so mutexes are 
+ * properly unlocked at termination time.
+ */
+PaError PaUnixMutex_Lock( PaUnixMutex* self )
+{
+    PaError result = paNoError;
+    int oldState;
+    
+    PA_ENSURE_SYSTEM( pthread_setcancelstate( PTHREAD_CANCEL_DISABLE, &oldState ), 0 );
+    PA_ENSURE_SYSTEM( pthread_mutex_lock( &self->mtx ), 0 );
+
+error:
+    return result;
+}
+
+/** Unlock mutex.
+ *
+ * Thread cancellation is enabled again after the mutex is properly unlocked.
+ */
+PaError PaUnixMutex_Unlock( PaUnixMutex* self )
+{
+    PaError result = paNoError;
+    int oldState;
+
+    PA_ENSURE_SYSTEM( pthread_mutex_unlock( &self->mtx ), 0 );
+    PA_ENSURE_SYSTEM( pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, &oldState ), 0 );
+
+error:
+    return result;
+}
+
+
+#if 0
+static void OnWatchdogExit( void *userData )
+{
+    PaAlsaThreading *th = (PaAlsaThreading *) userData;
+    struct sched_param spm = { 0 };
+    assert( th );
+
+    PA_ASSERT_CALL( pthread_setschedparam( th->callbackThread, SCHED_OTHER, &spm ), 0 );    /* Lower before exiting */
+    PA_DEBUG(( "Watchdog exiting\n" ));
+}
+
+static void *WatchdogFunc( void *userData )
+{
+    PaError result = paNoError, *pres = NULL;
+    int err;
+    PaAlsaThreading *th = (PaAlsaThreading *) userData;
+    unsigned intervalMsec = 500;
+    const PaTime maxSeconds = 3.;   /* Max seconds between callbacks */
+    PaTime timeThen = PaUtil_GetTime(), timeNow, timeElapsed, cpuTimeThen, cpuTimeNow, cpuTimeElapsed;
+    double cpuLoad, avgCpuLoad = 0.;
+    int throttled = 0;
+
+    assert( th );
+
+    /* Execute OnWatchdogExit when exiting */
+    pthread_cleanup_push( &OnWatchdogExit, th );
+
+    /* Boost priority of callback thread */
+    PA_ENSURE( result = BoostPriority( th ) );
+    if( !result )
+    {
+        /* Boost failed, might as well exit */
+        pthread_exit( NULL );
+    }
+
+    cpuTimeThen = th->callbackCpuTime;
+    {
+        int policy;
+        struct sched_param spm = { 0 };
+        pthread_getschedparam( pthread_self(), &policy, &spm );
+        PA_DEBUG(( "%s: Watchdog priority is %d\n", __FUNCTION__, spm.sched_priority ));
+    }
+
+    while( 1 )
+    {
+        double lowpassCoeff = 0.9, lowpassCoeff1 = 0.99999 - lowpassCoeff;
+        
+        /* Test before and after in case whatever underlying sleep call isn't interrupted by pthread_cancel */
+        pthread_testcancel();
+        Pa_Sleep( intervalMsec );
+        pthread_testcancel();
+
+        if( PaUtil_GetTime() - th->callbackTime > maxSeconds )
+        {
+            PA_DEBUG(( "Watchdog: Terminating callback thread\n" ));
+            /* Tell thread to terminate */
+            err = pthread_kill( th->callbackThread, SIGKILL );
+            pthread_exit( NULL );
+        }
+
+        PA_DEBUG(( "%s: PortAudio reports CPU load: %g\n", __FUNCTION__, PaUtil_GetCpuLoad( th->cpuLoadMeasurer ) ));
+
+        /* Check if we should throttle, or unthrottle :P */
+        cpuTimeNow = th->callbackCpuTime;
+        cpuTimeElapsed = cpuTimeNow - cpuTimeThen;
+        cpuTimeThen = cpuTimeNow;
+
+        timeNow = PaUtil_GetTime();
+        timeElapsed = timeNow - timeThen;
+        timeThen = timeNow;
+        cpuLoad = cpuTimeElapsed / timeElapsed;
+        avgCpuLoad = avgCpuLoad * lowpassCoeff + cpuLoad * lowpassCoeff1;
+        /*
+        if( throttled )
+            PA_DEBUG(( "Watchdog: CPU load: %g, %g\n", avgCpuLoad, cpuTimeElapsed ));
+            */
+        if( PaUtil_GetCpuLoad( th->cpuLoadMeasurer ) > .925 )
+        {
+            static int policy;
+            static struct sched_param spm = { 0 };
+            static const struct sched_param defaultSpm = { 0 };
+            PA_DEBUG(( "%s: Throttling audio thread, priority %d\n", __FUNCTION__, spm.sched_priority ));
+
+            pthread_getschedparam( th->callbackThread, &policy, &spm );
+            if( !pthread_setschedparam( th->callbackThread, SCHED_OTHER, &defaultSpm ) )
+            {
+                throttled = 1;
+            }
+            else
+                PA_DEBUG(( "Watchdog: Couldn't lower priority of audio thread: %s\n", strerror( errno ) ));
+
+            /* Give other processes a go, before raising priority again */
+            PA_DEBUG(( "%s: Watchdog sleeping for %lu msecs before unthrottling\n", __FUNCTION__, th->throttledSleepTime ));
+            Pa_Sleep( th->throttledSleepTime );
+
+            /* Reset callback priority */
+            if( pthread_setschedparam( th->callbackThread, SCHED_FIFO, &spm ) != 0 )
+            {
+                PA_DEBUG(( "%s: Couldn't raise priority of audio thread: %s\n", __FUNCTION__, strerror( errno ) ));
+            }
+
+            if( PaUtil_GetCpuLoad( th->cpuLoadMeasurer ) >= .99 )
+                intervalMsec = 50;
+            else
+                intervalMsec = 100;
+
+            /*
+            lowpassCoeff = .97;
+            lowpassCoeff1 = .99999 - lowpassCoeff;
+            */
+        }
+        else if( throttled && avgCpuLoad < .8 )
+        {
+            intervalMsec = 500;
+            throttled = 0;
+
+            /*
+            lowpassCoeff = .9;
+            lowpassCoeff1 = .99999 - lowpassCoeff;
+            */
+        }
+    }
+
+    pthread_cleanup_pop( 1 );   /* Execute cleanup on exit */
+
+error:
+    /* Shouldn't get here in the normal case */
+
+    /* Pass on error code */
+    pres = malloc( sizeof (PaError) );
+    *pres = result;
+    
+    pthread_exit( pres );
+}
+
+static void CallbackUpdate( PaAlsaThreading *th )
+{
+    th->callbackTime = PaUtil_GetTime();
+    th->callbackCpuTime = PaUtil_GetCpuLoad( th->cpuLoadMeasurer );
+}
+
+/*
+static void *CanaryFunc( void *userData )
+{
+    const unsigned intervalMsec = 1000;
+    PaUtilThreading *th = (PaUtilThreading *) userData;
+
+    while( 1 )
+    {
+        th->canaryTime = PaUtil_GetTime();
+
+        pthread_testcancel();
+        Pa_Sleep( intervalMsec );
+    }
+
+    pthread_exit( NULL );
+}
+*/
+#endif
+#endif
\ No newline at end of file
diff --git a/external/portaudio2007/pa_unix_util.h b/external/portaudio2007/pa_unix_util.h
new file mode 100644
index 0000000..ffa5ac6
--- /dev/null
+++ b/external/portaudio2007/pa_unix_util.h
@@ -0,0 +1,224 @@
+/*
+ * $Id: pa_unix_util.h 1241 2007-07-23 20:08:31Z aknudsen $
+ * Portable Audio I/O Library
+ * UNIX platform-specific support functions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup unix_src
+*/
+
+#ifndef PA_UNIX_UTIL_H
+#define PA_UNIX_UTIL_H
+
+#include "pa_cpuload.h"
+#include <assert.h>
+#include <pthread.h>
+#include <signal.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#define PA_MIN(x,y) ( (x) < (y) ? (x) : (y) )
+#define PA_MAX(x,y) ( (x) > (y) ? (x) : (y) )
+
+/* Utilize GCC branch prediction for error tests */
+#if defined __GNUC__ && __GNUC__ >= 3
+#define UNLIKELY(expr) __builtin_expect( (expr), 0 )
+#else
+#define UNLIKELY(expr) (expr)
+#endif
+
+#define STRINGIZE_HELPER(expr) #expr
+#define STRINGIZE(expr) STRINGIZE_HELPER(expr)
+
+#define PA_UNLESS(expr, code) \
+    do { \
+        if( UNLIKELY( (expr) == 0 ) ) \
+        { \
+            PaUtil_DebugPrint(( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" )); \
+            result = (code); \
+            goto error; \
+        } \
+    } while (0);
+
+static PaError paUtilErr_;          /* Used with PA_ENSURE */
+
+/* Check PaError */
+#define PA_ENSURE(expr) \
+    do { \
+        if( UNLIKELY( (paUtilErr_ = (expr)) < paNoError ) ) \
+        { \
+            PaUtil_DebugPrint(( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" )); \
+            result = paUtilErr_; \
+            goto error; \
+        } \
+    } while (0);
+
+#define PA_ASSERT_CALL(expr, success) \
+    paUtilErr_ = (expr); \
+    assert( success == paUtilErr_ );
+
+#define PA_ENSURE_SYSTEM(expr, success) \
+    do { \
+        if( UNLIKELY( (paUtilErr_ = (expr)) != success ) ) \
+        { \
+            /* PaUtil_SetLastHostErrorInfo should only be used in the main thread */ \
+            if( pthread_equal(pthread_self(), paUnixMainThread) ) \
+            { \
+                PaUtil_SetLastHostErrorInfo( paALSA, paUtilErr_, strerror( paUtilErr_ ) ); \
+            } \
+            PaUtil_DebugPrint( "Expression '" #expr "' failed in '" __FILE__ "', line: " STRINGIZE( __LINE__ ) "\n" ); \
+            result = paUnanticipatedHostError; \
+            goto error; \
+        } \
+    } while( 0 );
+
+typedef struct {
+    pthread_t callbackThread;
+} PaUtilThreading;
+
+PaError PaUtil_InitializeThreading( PaUtilThreading *threading );
+void PaUtil_TerminateThreading( PaUtilThreading *threading );
+PaError PaUtil_StartThreading( PaUtilThreading *threading, void *(*threadRoutine)(void *), void *data );
+PaError PaUtil_CancelThreading( PaUtilThreading *threading, int wait, PaError *exitResult );
+
+/* State accessed by utility functions */
+
+/*
+void PaUnix_SetRealtimeScheduling( int rt );
+
+void PaUtil_InitializeThreading( PaUtilThreading *th, PaUtilCpuLoadMeasurer *clm );
+
+PaError PaUtil_CreateCallbackThread( PaUtilThreading *th, void *(*CallbackThreadFunc)( void * ), PaStream *s );
+
+PaError PaUtil_KillCallbackThread( PaUtilThreading *th, PaError *exitResult );
+
+void PaUtil_CallbackUpdate( PaUtilThreading *th );
+*/
+
+extern pthread_t paUnixMainThread;
+
+typedef struct
+{
+    pthread_mutex_t mtx;
+} PaUnixMutex;
+
+PaError PaUnixMutex_Initialize( PaUnixMutex* self );
+PaError PaUnixMutex_Terminate( PaUnixMutex* self );
+PaError PaUnixMutex_Lock( PaUnixMutex* self );
+PaError PaUnixMutex_Unlock( PaUnixMutex* self );
+
+typedef struct
+{
+    pthread_t thread;
+    int parentWaiting;
+    int stopRequested;
+    int locked;
+    PaUnixMutex mtx;
+    pthread_cond_t cond;
+    volatile sig_atomic_t stopRequest;
+} PaUnixThread;
+
+/** Initialize global threading state.
+ */
+PaError PaUnixThreading_Initialize( void );
+
+/** Perish, passing on eventual error code.
+ *
+ * A thin wrapper around pthread_exit, will automatically pass on any error code to the joining thread.
+ * If the result indicates an error, i.e. it is not equal to paNoError, this function will automatically
+ * allocate a pointer so the error is passed on with pthread_exit. If the result indicates that all is
+ * well however, only a NULL pointer will be handed to pthread_exit. Thus, the joining thread should
+ * check whether a non-NULL result pointer is obtained from pthread_join and make sure to free it.
+ * @param result: The error code to pass on to the joining thread.
+ */
+#define PaUnixThreading_EXIT(result) \
+    do { \
+        PaError* pres = NULL; \
+        if( paNoError != (result) ) \
+        { \
+            pres = malloc( sizeof (PaError) ); \
+            *pres = (result); \
+        } \
+        pthread_exit( pres ); \
+    } while (0);
+
+/** Spawn a thread.
+ *
+ * Intended for spawning the callback thread from the main thread. This function can even block (for a certain
+ * time or indefinitely) untill notified by the callback thread (using PaUnixThread_NotifyParent), which can be
+ * useful in order to make sure that callback has commenced before returning from Pa_StartStream.
+ * @param threadFunc: The function to be executed in the child thread.
+ * @param waitForChild: If not 0, wait for child thread to call PaUnixThread_NotifyParent. Less than 0 means
+ * wait for ever, greater than 0 wait for the specified time.
+ * @param rtSched: Enable realtime scheduling?
+ * @return: If timed out waiting on child, paTimedOut.
+ */
+PaError PaUnixThread_New( PaUnixThread* self, void* (*threadFunc)( void* ), void* threadArg, PaTime waitForChild,
+        int rtSched );
+
+/** Terminate thread.
+ *
+ * @param wait: If true, request that background thread stop and wait untill it does, else cancel it.
+ * @param exitResult: If non-null this will upon return contain the exit status of the thread.
+ */
+PaError PaUnixThread_Terminate( PaUnixThread* self, int wait, PaError* exitResult );
+
+/** Prepare to notify waiting parent thread.
+ *
+ * An internal lock must be held before the parent is notified in PaUnixThread_NotifyParent, call this to
+ * acquire it beforehand.
+ * @return: If parent is not waiting, paInternalError.
+ */
+PaError PaUnixThread_PrepareNotify( PaUnixThread* self );
+
+/** Notify waiting parent thread.
+ *
+ * @return: If parent timed out waiting, paTimedOut. If parent was never waiting, paInternalError.
+ */
+PaError PaUnixThread_NotifyParent( PaUnixThread* self );
+
+/** Has the parent thread requested this thread to stop?
+ */
+int PaUnixThread_StopRequested( PaUnixThread* self );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif
diff --git a/external/portaudio2007/pa_util.h b/external/portaudio2007/pa_util.h
new file mode 100644
index 0000000..55eaa13
--- /dev/null
+++ b/external/portaudio2007/pa_util.h
@@ -0,0 +1,159 @@
+#ifndef PA_UTIL_H
+#define PA_UTIL_H
+/*
+ * $Id: pa_util.h 1229 2007-06-15 16:11:11Z rossb $
+ * Portable Audio I/O Library implementation utilities header
+ * common implementation utilities and interfaces
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup common_src
+
+    @brief Prototypes for utility functions used by PortAudio implementations.
+
+    @todo Document and adhere to the alignment guarantees provided by
+    PaUtil_AllocateMemory().
+*/
+
+
+#include "portaudio.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+struct PaUtilHostApiRepresentation;
+
+
+/** Retrieve a specific host API representation. This function can be used
+ by implementations to retrieve a pointer to their representation in
+ host api specific extension functions which aren't passed a rep pointer
+ by pa_front.c.
+
+ @param hostApi A pointer to a host API represenation pointer. Apon success
+ this will receive the requested representation pointer.
+
+ @param type A valid host API type identifier.
+
+ @returns An error code. If the result is PaNoError then a pointer to the
+ requested host API representation will be stored in *hostApi. If the host API
+ specified by type is not found, this function returns paHostApiNotFound.
+*/
+PaError PaUtil_GetHostApiRepresentation( struct PaUtilHostApiRepresentation **hostApi,
+        PaHostApiTypeId type );
+
+
+/** Convert a PortAudio device index into a host API specific device index.
+ @param hostApiDevice Pointer to a device index, on success this will recieve the
+ converted device index value.
+ @param device The PortAudio device index to convert.
+ @param hostApi The host api which the index should be converted for.
+
+ @returns On success returns PaNoError and places the converted index in the
+ hostApiDevice parameter.
+*/
+PaError PaUtil_DeviceIndexToHostApiDeviceIndex(
+        PaDeviceIndex *hostApiDevice, PaDeviceIndex device,
+        struct PaUtilHostApiRepresentation *hostApi );
+
+
+/** Set the host error information returned by Pa_GetLastHostErrorInfo. This
+ function and the paUnanticipatedHostError error code should be used as a
+ last resort.  Implementors should use existing PA error codes where possible,
+ or nominate new ones. Note that at it is always better to use
+ PaUtil_SetLastHostErrorInfo() and paUnanticipatedHostError than to return an
+ ambiguous or inaccurate PaError code.
+
+ @param hostApiType  The host API which encountered the error (ie of the caller)
+
+ @param errorCode The error code returned by the native API function.
+
+ @param errorText A string describing the error. PaUtil_SetLastHostErrorInfo
+ makes a copy of the string, so it is not necessary for the pointer to remain
+ valid after the call to PaUtil_SetLastHostErrorInfo() returns.
+
+*/
+void PaUtil_SetLastHostErrorInfo( PaHostApiTypeId hostApiType, long errorCode,
+        const char *errorText );
+
+
+        
+/* the following functions are implemented in a platform platform specific
+ .c file
+*/
+
+/** Allocate size bytes, guaranteed to be aligned to a FIXME byte boundary */
+void *PaUtil_AllocateMemory( long size );
+
+
+/** Realease block if non-NULL. block may be NULL */
+void PaUtil_FreeMemory( void *block );
+
+
+/** Return the number of currently allocated blocks. This function can be
+ used for detecting memory leaks.
+
+ @note Allocations will only be tracked if PA_TRACK_MEMORY is #defined. If
+ it isn't, this function will always return 0.
+*/
+int PaUtil_CountCurrentlyAllocatedBlocks( void );
+
+
+/** Initialize the clock used by PaUtil_GetTime(). Call this before calling
+ PaUtil_GetTime.
+
+ @see PaUtil_GetTime
+*/
+void PaUtil_InitializeClock( void );
+
+
+/** Return the system time in seconds. Used to implement CPU load functions
+
+ @see PaUtil_InitializeClock
+*/
+double PaUtil_GetTime( void );
+
+
+/* void Pa_Sleep( long msec );  must also be implemented in per-platform .c file */
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PA_UTIL_H */
diff --git a/external/portaudio2007/pa_win_ds.c b/external/portaudio2007/pa_win_ds.c
new file mode 100644
index 0000000..6bc6be9
--- /dev/null
+++ b/external/portaudio2007/pa_win_ds.c
@@ -0,0 +1,2512 @@
+#ifdef _WIN32
+/*
+ * $Id: pa_win_ds.c 1286 2007-09-26 21:34:23Z rossb $
+ * Portable Audio I/O Library DirectSound implementation
+ *
+ * Authors: Phil Burk, Robert Marsanyi & Ross Bencina
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2007 Ross Bencina, Phil Burk, Robert Marsanyi
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup hostaip_src
+
+    @todo implement paInputOverflow callback status flag
+    
+    @todo implement paNeverDropInput.
+
+    @todo implement host api specific extension to set i/o buffer sizes in frames
+
+    @todo implement initialisation of PaDeviceInfo default*Latency fields (currently set to 0.)
+
+    @todo implement ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable
+
+    @todo audit handling of DirectSound result codes - in many cases we could convert a HRESULT into
+        a native portaudio error code. Standard DirectSound result codes are documented at msdn.
+
+    @todo implement IsFormatSupported
+
+    @todo call PaUtil_SetLastHostErrorInfo with a specific error string (currently just "DSound error").
+
+    @todo make sure all buffers have been played before stopping the stream
+        when the stream callback returns paComplete
+
+    @todo retrieve default devices using the DRVM_MAPPER_PREFERRED_GET functions used in the wmme api
+        these wave device ids can be aligned with the directsound devices either by retrieving
+        the system interface device name using DRV_QUERYDEVICEINTERFACE or by using the wave device
+        id retrieved in KsPropertySetEnumerateCallback.
+
+    old TODOs from phil, need to work out if these have been done:
+        O- fix "patest_stop.c"
+*/
+
+#undef UNICODE
+#include <stdio.h>
+#include <string.h> /* strlen() */
+#include <windows.h>
+#include <objbase.h>
+
+/*
+  We are only using DX3 in here, no need to polute the namespace - davidv
+*/
+#define DIRECTSOUND_VERSION 0x0300
+#include <dsound.h>
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+#include <dsconf.h>
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+#include "pa_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "pa_debugprint.h"
+
+#include "pa_win_ds.h"
+#include "pa_win_ds_dynlink.h"
+#include "pa_win_waveformat.h"
+#include "pa_win_wdmks_utils.h"
+
+
+#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
+#pragma comment( lib, "dsound.lib" )
+#pragma comment( lib, "winmm.lib" )
+#endif
+
+/*
+ provided in newer platform sdks and x64
+ */
+#ifndef DWORD_PTR
+#define DWORD_PTR DWORD
+#endif
+
+#define PRINT(x) PA_DEBUG(x);
+#define ERR_RPT(x) PRINT(x)
+#define DBUG(x)   PRINT(x)
+#define DBUGX(x)  PRINT(x)
+
+#define PA_USE_HIGH_LATENCY   (0)
+#if PA_USE_HIGH_LATENCY
+#define PA_WIN_9X_LATENCY     (500)
+#define PA_WIN_NT_LATENCY     (600)
+#else
+#define PA_WIN_9X_LATENCY     (140)
+#define PA_WIN_NT_LATENCY     (280)
+#endif
+
+#define PA_WIN_WDM_LATENCY       (120)
+
+#define SECONDS_PER_MSEC      (0.001)
+#define MSEC_PER_SECOND       (1000)
+
+/* prototypes for functions declared in this file */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaWinDs_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+static PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+static signed long GetStreamReadAvailable( PaStream* stream );
+static signed long GetStreamWriteAvailable( PaStream* stream );
+
+
+/* FIXME: should convert hr to a string */
+#define PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr ) \
+    PaUtil_SetLastHostErrorInfo( paDirectSound, hr, "DirectSound error" )
+
+/************************************************* DX Prototypes **********/
+static BOOL CALLBACK CollectGUIDsProc(LPGUID lpGUID,
+                                     LPCTSTR lpszDesc,
+                                     LPCTSTR lpszDrvName,
+                                     LPVOID lpContext );
+
+/************************************************************************************/
+/********************** Structures **************************************************/
+/************************************************************************************/
+/* PaWinDsHostApiRepresentation - host api datastructure specific to this implementation */
+
+typedef struct PaWinDsDeviceInfo
+{
+    PaDeviceInfo        inheritedDeviceInfo;
+    GUID                guid;
+    GUID                *lpGUID;
+    double              sampleRates[3];
+    char deviceInputChannelCountIsKnown; /**<< if the system returns 0xFFFF then we don't really know the number of supported channels (1=>known, 0=>unknown)*/
+    char deviceOutputChannelCountIsKnown; /**<< if the system returns 0xFFFF then we don't really know the number of supported channels (1=>known, 0=>unknown)*/
+} PaWinDsDeviceInfo;
+
+typedef struct
+{
+    PaUtilHostApiRepresentation inheritedHostApiRep;
+    PaUtilStreamInterface    callbackStreamInterface;
+    PaUtilStreamInterface    blockingStreamInterface;
+
+    PaUtilAllocationGroup   *allocations;
+
+    /* implementation specific data goes here */
+
+    char                    comWasInitialized;
+
+} PaWinDsHostApiRepresentation;
+
+
+/* PaWinDsStream - a stream data structure specifically for this implementation */
+
+typedef struct PaWinDsStream
+{
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+
+/* DirectSound specific data. */
+
+/* Output */
+    LPDIRECTSOUND        pDirectSound;
+    LPDIRECTSOUNDBUFFER  pDirectSoundOutputBuffer;
+    DWORD                outputBufferWriteOffsetBytes;     /* last write position */
+    INT                  outputBufferSizeBytes;
+    INT                  bytesPerOutputFrame;
+    /* Try to detect play buffer underflows. */
+    LARGE_INTEGER        perfCounterTicksPerBuffer; /* counter ticks it should take to play a full buffer */
+    LARGE_INTEGER        previousPlayTime;
+    UINT                 previousPlayCursor;
+    UINT                 outputUnderflowCount;
+    BOOL                 outputIsRunning;
+    /* use double which lets us can play for several thousand years with enough precision */
+    double               dsw_framesWritten;
+    double               framesPlayed;
+/* Input */
+    LPDIRECTSOUNDCAPTURE pDirectSoundCapture;
+    LPDIRECTSOUNDCAPTUREBUFFER   pDirectSoundInputBuffer;
+    INT                  bytesPerInputFrame;
+    UINT                 readOffset;      /* last read position */
+    UINT                 inputSize;
+
+    
+    MMRESULT         timerID;
+    int              framesPerDSBuffer;
+    double           framesWritten;
+    double           secondsPerHostByte; /* Used to optimize latency calculation for outTime */
+
+    PaStreamCallbackFlags callbackFlags;
+    
+/* FIXME - move all below to PaUtilStreamRepresentation */
+    volatile int     isStarted;
+    volatile int     isActive;
+    volatile int     stopProcessing; /* stop thread once existing buffers have been returned */
+    volatile int     abortProcessing; /* stop thread immediately */
+} PaWinDsStream;
+
+
+/************************************************************************************
+** Duplicate the input string using the allocations allocator.
+** A NULL string is converted to a zero length string.
+** If memory cannot be allocated, NULL is returned.
+**/
+static char *DuplicateDeviceNameString( PaUtilAllocationGroup *allocations, const char* src )
+{
+    char *result = 0;
+    
+    if( src != NULL )
+    {
+        size_t len = strlen(src);
+        result = (char*)PaUtil_GroupAllocateMemory( allocations, (long)(len + 1) );
+        if( result )
+            memcpy( (void *) result, src, len+1 );
+    }
+    else
+    {
+        result = (char*)PaUtil_GroupAllocateMemory( allocations, 1 );
+        if( result )
+            result[0] = '\0';
+    }
+
+    return result;
+}
+
+/************************************************************************************
+** DSDeviceNameAndGUID, DSDeviceNameAndGUIDVector used for collecting preliminary
+** information during device enumeration.
+*/
+typedef struct DSDeviceNameAndGUID{
+    char *name; // allocated from parent's allocations, never deleted by this structure
+    GUID guid;
+    LPGUID lpGUID;
+    void *pnpInterface;  // wchar_t* interface path, allocated using the DS host api's allocation group
+} DSDeviceNameAndGUID;
+
+typedef struct DSDeviceNameAndGUIDVector{
+    PaUtilAllocationGroup *allocations;
+    PaError enumerationError;
+
+    int count;
+    int free;
+    DSDeviceNameAndGUID *items; // Allocated using LocalAlloc()
+} DSDeviceNameAndGUIDVector;
+
+typedef struct DSDeviceNamesAndGUIDs{
+    PaWinDsHostApiRepresentation *winDsHostApi;
+    DSDeviceNameAndGUIDVector inputNamesAndGUIDs;
+    DSDeviceNameAndGUIDVector outputNamesAndGUIDs;
+} DSDeviceNamesAndGUIDs;
+
+static PaError InitializeDSDeviceNameAndGUIDVector(
+        DSDeviceNameAndGUIDVector *guidVector, PaUtilAllocationGroup *allocations )
+{
+    PaError result = paNoError;
+
+    guidVector->allocations = allocations;
+    guidVector->enumerationError = paNoError;
+
+    guidVector->count = 0;
+    guidVector->free = 8;
+    guidVector->items = (DSDeviceNameAndGUID*)LocalAlloc( LMEM_FIXED, sizeof(DSDeviceNameAndGUID) * guidVector->free );
+    if( guidVector->items == NULL )
+        result = paInsufficientMemory;
+    
+    return result;
+}
+
+static PaError ExpandDSDeviceNameAndGUIDVector( DSDeviceNameAndGUIDVector *guidVector )
+{
+    PaError result = paNoError;
+    DSDeviceNameAndGUID *newItems;
+    int i;
+    
+    /* double size of vector */
+    int size = guidVector->count + guidVector->free;
+    guidVector->free += size;
+
+    newItems = (DSDeviceNameAndGUID*)LocalAlloc( LMEM_FIXED, sizeof(DSDeviceNameAndGUID) * size * 2 );
+    if( newItems == NULL )
+    {
+        result = paInsufficientMemory;
+    }
+    else
+    {
+        for( i=0; i < guidVector->count; ++i )
+        {
+            newItems[i].name = guidVector->items[i].name;
+            if( guidVector->items[i].lpGUID == NULL )
+            {
+                newItems[i].lpGUID = NULL;
+            }
+            else
+            {
+                newItems[i].lpGUID = &newItems[i].guid;
+                memcpy( &newItems[i].guid, guidVector->items[i].lpGUID, sizeof(GUID) );;
+            }
+            newItems[i].pnpInterface = guidVector->items[i].pnpInterface;
+        }
+
+        LocalFree( guidVector->items );
+        guidVector->items = newItems;
+    }                                
+
+    return result;
+}
+
+/*
+    it's safe to call DSDeviceNameAndGUIDVector multiple times
+*/
+static PaError TerminateDSDeviceNameAndGUIDVector( DSDeviceNameAndGUIDVector *guidVector )
+{
+    PaError result = paNoError;
+
+    if( guidVector->items != NULL )
+    {
+        if( LocalFree( guidVector->items ) != NULL )
+            result = paInsufficientMemory;              /** @todo this isn't the correct error to return from a deallocation failure */
+
+        guidVector->items = NULL;
+    }
+
+    return result;
+}
+
+/************************************************************************************
+** Collect preliminary device information during DirectSound enumeration 
+*/
+static BOOL CALLBACK CollectGUIDsProc(LPGUID lpGUID,
+                                     LPCTSTR lpszDesc,
+                                     LPCTSTR lpszDrvName,
+                                     LPVOID lpContext )
+{
+    DSDeviceNameAndGUIDVector *namesAndGUIDs = (DSDeviceNameAndGUIDVector*)lpContext;
+    PaError error;
+
+    (void) lpszDrvName; /* unused variable */
+
+    if( namesAndGUIDs->free == 0 )
+    {
+        error = ExpandDSDeviceNameAndGUIDVector( namesAndGUIDs );
+        if( error != paNoError )
+        {
+            namesAndGUIDs->enumerationError = error;
+            return FALSE;
+        }
+    }
+    
+    /* Set GUID pointer, copy GUID to storage in DSDeviceNameAndGUIDVector. */
+    if( lpGUID == NULL )
+    {
+        namesAndGUIDs->items[namesAndGUIDs->count].lpGUID = NULL;
+    }
+    else
+    {
+        namesAndGUIDs->items[namesAndGUIDs->count].lpGUID =
+                &namesAndGUIDs->items[namesAndGUIDs->count].guid;
+      
+        memcpy( &namesAndGUIDs->items[namesAndGUIDs->count].guid, lpGUID, sizeof(GUID) );
+    }
+
+    namesAndGUIDs->items[namesAndGUIDs->count].name =
+            DuplicateDeviceNameString( namesAndGUIDs->allocations, lpszDesc );
+    if( namesAndGUIDs->items[namesAndGUIDs->count].name == NULL )
+    {
+        namesAndGUIDs->enumerationError = paInsufficientMemory;
+        return FALSE;
+    }
+
+    namesAndGUIDs->items[namesAndGUIDs->count].pnpInterface = 0;
+
+    ++namesAndGUIDs->count;
+    --namesAndGUIDs->free;
+    
+    return TRUE;
+}
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+
+static void *DuplicateWCharString( PaUtilAllocationGroup *allocations, wchar_t *source )
+{
+    size_t len;
+    wchar_t *result;
+
+    len = wcslen( source );
+    result = (wchar_t*)PaUtil_GroupAllocateMemory( allocations, (long) ((len+1) * sizeof(wchar_t)) );
+    wcscpy( result, source );
+    return result;
+}
+
+static BOOL CALLBACK KsPropertySetEnumerateCallback( PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA data, LPVOID context )
+{
+    int i;
+    DSDeviceNamesAndGUIDs *deviceNamesAndGUIDs = (DSDeviceNamesAndGUIDs*)context;
+
+    if( data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_RENDER )
+    {
+        for( i=0; i < deviceNamesAndGUIDs->outputNamesAndGUIDs.count; ++i )
+        {
+            if( deviceNamesAndGUIDs->outputNamesAndGUIDs.items[i].lpGUID
+                && memcmp( &data->DeviceId, deviceNamesAndGUIDs->outputNamesAndGUIDs.items[i].lpGUID, sizeof(GUID) ) == 0 )
+            {
+                deviceNamesAndGUIDs->outputNamesAndGUIDs.items[i].pnpInterface = 
+                        (char*)DuplicateWCharString( deviceNamesAndGUIDs->winDsHostApi->allocations, data->Interface );
+                break;
+            }
+        }
+    }
+    else if( data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE )
+    {
+        for( i=0; i < deviceNamesAndGUIDs->inputNamesAndGUIDs.count; ++i )
+        {
+            if( deviceNamesAndGUIDs->inputNamesAndGUIDs.items[i].lpGUID
+                && memcmp( &data->DeviceId, deviceNamesAndGUIDs->inputNamesAndGUIDs.items[i].lpGUID, sizeof(GUID) ) == 0 )
+            {
+                deviceNamesAndGUIDs->inputNamesAndGUIDs.items[i].pnpInterface = 
+                        (char*)DuplicateWCharString( deviceNamesAndGUIDs->winDsHostApi->allocations, data->Interface );
+                break;
+            }
+        }
+    }
+
+    return TRUE;
+}
+
+
+static GUID pawin_CLSID_DirectSoundPrivate = 
+{ 0x11ab3ec0, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x00, 0xc0, 0x4f, 0xc2, 0x8a, 0xca };
+
+static GUID pawin_DSPROPSETID_DirectSoundDevice = 
+{ 0x84624f82, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x00, 0xc0, 0x4f, 0xc2, 0x8a, 0xca };
+
+static GUID pawin_IID_IKsPropertySet = 
+{ 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa, 0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93 };
+
+
+/*
+    FindDevicePnpInterfaces fills in the pnpInterface fields in deviceNamesAndGUIDs
+    with UNICODE file paths to the devices. The DS documentation mentions
+    at least two techniques by which these Interface paths can be found using IKsPropertySet on
+    the DirectSound class object. One is using the DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION 
+    property, and the other is using DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE.
+    I tried both methods and only the second worked. I found two postings on the
+    net from people who had the same problem with the first method, so I think the method used here is 
+    more common/likely to work. The probem is that IKsPropertySet_Get returns S_OK
+    but the fields of the device description are not filled in.
+
+    The mechanism we use works by registering an enumeration callback which is called for 
+    every DSound device. Our callback searches for a device in our deviceNamesAndGUIDs list
+    with the matching GUID and copies the pointer to the Interface path.
+    Note that we could have used this enumeration callback to perform the original 
+    device enumeration, however we choose not to so we can disable this step easily.
+
+    Apparently the IKsPropertySet mechanism was added in DirectSound 9c 2004
+    http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.mmedia/2004-12/0099.html
+
+        -- rossb
+*/
+static void FindDevicePnpInterfaces( DSDeviceNamesAndGUIDs *deviceNamesAndGUIDs )
+{
+    IClassFactory *pClassFactory;
+   
+    if( paWinDsDSoundEntryPoints.DllGetClassObject(&pawin_CLSID_DirectSoundPrivate, &IID_IClassFactory, (PVOID *) &pClassFactory) == S_OK ){
+        IKsPropertySet *pPropertySet;
+        if( pClassFactory->lpVtbl->CreateInstance( pClassFactory, NULL, &pawin_IID_IKsPropertySet, (PVOID *) &pPropertySet) == S_OK ){
+            
+            DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA data;
+            ULONG bytesReturned;
+
+            data.Callback = KsPropertySetEnumerateCallback;
+            data.Context = deviceNamesAndGUIDs;
+
+            IKsPropertySet_Get( pPropertySet,
+                &pawin_DSPROPSETID_DirectSoundDevice,
+                DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W,
+                NULL,
+                0,
+                &data,
+                sizeof(data),
+                &bytesReturned
+            );
+            
+            IKsPropertySet_Release( pPropertySet );
+        }
+        pClassFactory->lpVtbl->Release( pClassFactory );
+    }
+
+    /*
+        The following code fragment, which I chose not to use, queries for the 
+        device interface for a device with a specific GUID:
+
+        ULONG BytesReturned;
+        DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA Property;
+
+        memset (&Property, 0, sizeof(Property));
+        Property.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_RENDER;
+        Property.DeviceId = *lpGUID;  
+
+        hr = IKsPropertySet_Get( pPropertySet,
+            &pawin_DSPROPSETID_DirectSoundDevice,
+            DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W,
+            NULL,
+            0,
+            &Property,
+            sizeof(Property),
+            &BytesReturned
+        );
+
+        if( hr == S_OK )
+        {
+            //pnpInterface = Property.Interface;
+        }
+    */
+}
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+
+/* 
+    GUIDs for emulated devices which we blacklist below.
+    are there more than two of them??
+*/
+
+GUID IID_IRolandVSCEmulated1 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x01};
+GUID IID_IRolandVSCEmulated2 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x02};
+
+
+#define PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_  (13) /* must match array length below */
+static double defaultSampleRateSearchOrder_[] =
+    { 44100.0, 48000.0, 32000.0, 24000.0, 22050.0, 88200.0, 96000.0, 192000.0,
+        16000.0, 12000.0, 11025.0, 9600.0, 8000.0 };
+
+/************************************************************************************
+** Extract capabilities from an output device, and add it to the device info list
+** if successful. This function assumes that there is enough room in the
+** device info list to accomodate all entries.
+**
+** The device will not be added to the device list if any errors are encountered.
+*/
+static PaError AddOutputDeviceInfoFromDirectSound(
+        PaWinDsHostApiRepresentation *winDsHostApi, char *name, LPGUID lpGUID, char *pnpInterface )
+{
+    PaUtilHostApiRepresentation  *hostApi = &winDsHostApi->inheritedHostApiRep;
+    PaWinDsDeviceInfo            *winDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[hostApi->info.deviceCount];
+    PaDeviceInfo                 *deviceInfo = &winDsDeviceInfo->inheritedDeviceInfo;
+    HRESULT                       hr;
+    LPDIRECTSOUND                 lpDirectSound;
+    DSCAPS                        caps;
+    int                           deviceOK = TRUE;
+    PaError                       result = paNoError;
+    int                           i;
+
+    /* Copy GUID to the device info structure. Set pointer. */
+    if( lpGUID == NULL )
+    {
+        winDsDeviceInfo->lpGUID = NULL;
+    }
+    else
+    {
+        memcpy( &winDsDeviceInfo->guid, lpGUID, sizeof(GUID) );
+        winDsDeviceInfo->lpGUID = &winDsDeviceInfo->guid;
+    }
+    
+    if( lpGUID )
+    {
+        if (IsEqualGUID (&IID_IRolandVSCEmulated1,lpGUID) ||
+            IsEqualGUID (&IID_IRolandVSCEmulated2,lpGUID) )
+        {
+            PA_DEBUG(("BLACKLISTED: %s \n",name));
+            return paNoError;
+        }
+    }
+
+    /* Create a DirectSound object for the specified GUID
+        Note that using CoCreateInstance doesn't work on windows CE.
+    */
+    hr = paWinDsDSoundEntryPoints.DirectSoundCreate( lpGUID, &lpDirectSound, NULL );
+
+    /** try using CoCreateInstance because DirectSoundCreate was hanging under
+        some circumstances - note this was probably related to the
+        #define BOOL short bug which has now been fixed
+        @todo delete this comment and the following code once we've ensured
+        there is no bug.
+    */
+    /*
+    hr = CoCreateInstance( &CLSID_DirectSound, NULL, CLSCTX_INPROC_SERVER,
+            &IID_IDirectSound, (void**)&lpDirectSound );
+
+    if( hr == S_OK )
+    {
+        hr = IDirectSound_Initialize( lpDirectSound, lpGUID );
+    }
+    */
+    
+    if( hr != DS_OK )
+    {
+        if (hr == DSERR_ALLOCATED)
+            PA_DEBUG(("AddOutputDeviceInfoFromDirectSound %s DSERR_ALLOCATED\n",name));
+        DBUG(("Cannot create DirectSound for %s. Result = 0x%x\n", name, hr ));
+        if (lpGUID)
+            DBUG(("%s's GUID: {0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x, 0x%x} \n",
+                 name,
+                 lpGUID->Data1,
+                 lpGUID->Data2,
+                 lpGUID->Data3,
+                 lpGUID->Data4[0],
+                 lpGUID->Data4[1],
+                 lpGUID->Data4[2],
+                 lpGUID->Data4[3],
+                 lpGUID->Data4[4],
+                 lpGUID->Data4[5],
+                 lpGUID->Data4[6],
+                 lpGUID->Data4[7]));
+
+        deviceOK = FALSE;
+    }
+    else
+    {
+        /* Query device characteristics. */
+        memset( &caps, 0, sizeof(caps) ); 
+        caps.dwSize = sizeof(caps);
+        hr = IDirectSound_GetCaps( lpDirectSound, &caps );
+        if( hr != DS_OK )
+        {
+            DBUG(("Cannot GetCaps() for DirectSound device %s. Result = 0x%x\n", name, hr ));
+            deviceOK = FALSE;
+        }
+        else
+        {
+
+#ifndef PA_NO_WMME
+            if( caps.dwFlags & DSCAPS_EMULDRIVER )
+            {
+                /* If WMME supported, then reject Emulated drivers because they are lousy. */
+                deviceOK = FALSE;
+            }
+#endif
+
+            if( deviceOK )
+            {
+                deviceInfo->maxInputChannels = 0;
+                winDsDeviceInfo->deviceInputChannelCountIsKnown = 1;
+
+                /* DS output capabilities only indicate supported number of channels
+                   using two flags which indicate mono and/or stereo.
+                   We assume that stereo devices may support more than 2 channels
+                   (as is the case with 5.1 devices for example) and so
+                   set deviceOutputChannelCountIsKnown to 0 (unknown).
+                   In this case OpenStream will try to open the device
+                   when the user requests more than 2 channels, rather than
+                   returning an error. 
+                */
+                if( caps.dwFlags & DSCAPS_PRIMARYSTEREO )
+                {
+                    deviceInfo->maxOutputChannels = 2;
+                    winDsDeviceInfo->deviceOutputChannelCountIsKnown = 0;
+                }
+                else
+                {
+                    deviceInfo->maxOutputChannels = 1;
+                    winDsDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+                }
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+                if( pnpInterface )
+                {
+                    int count = PaWin_WDMKS_QueryFilterMaximumChannelCount( pnpInterface, /* isInput= */ 0  );
+                    if( count > 0 )
+                    {
+                        deviceInfo->maxOutputChannels = count;
+                        winDsDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+                    }
+                }
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+                deviceInfo->defaultLowInputLatency = 0.;    /** @todo IMPLEMENT ME */
+                deviceInfo->defaultLowOutputLatency = 0.;   /** @todo IMPLEMENT ME */
+                deviceInfo->defaultHighInputLatency = 0.;   /** @todo IMPLEMENT ME */
+                deviceInfo->defaultHighOutputLatency = 0.;  /** @todo IMPLEMENT ME */
+                
+                /* initialize defaultSampleRate */
+                
+                if( caps.dwFlags & DSCAPS_CONTINUOUSRATE )
+                {
+                    /* initialize to caps.dwMaxSecondarySampleRate incase none of the standard rates match */
+                    deviceInfo->defaultSampleRate = caps.dwMaxSecondarySampleRate;
+
+                    for( i = 0; i < PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_; ++i )
+                    {
+                        if( defaultSampleRateSearchOrder_[i] >= caps.dwMinSecondarySampleRate
+                                && defaultSampleRateSearchOrder_[i] <= caps.dwMaxSecondarySampleRate )
+                        {
+                            deviceInfo->defaultSampleRate = defaultSampleRateSearchOrder_[i];
+                            break;
+                        }
+                    }
+                }
+                else if( caps.dwMinSecondarySampleRate == caps.dwMaxSecondarySampleRate )
+                {
+                    if( caps.dwMinSecondarySampleRate == 0 )
+                    {
+                        /*
+                        ** On my Thinkpad 380Z, DirectSoundV6 returns min-max=0 !!
+                        ** But it supports continuous sampling.
+                        ** So fake range of rates, and hope it really supports it.
+                        */
+                        deviceInfo->defaultSampleRate = 44100.0f;
+
+                        DBUG(("PA - Reported rates both zero. Setting to fake values for device #%s\n", name ));
+                    }
+                    else
+                    {
+	                    deviceInfo->defaultSampleRate = caps.dwMaxSecondarySampleRate;
+                    }
+                }
+                else if( (caps.dwMinSecondarySampleRate < 1000.0) && (caps.dwMaxSecondarySampleRate > 50000.0) )
+                {
+                    /* The EWS88MT drivers lie, lie, lie. The say they only support two rates, 100 & 100000.
+                    ** But we know that they really support a range of rates!
+                    ** So when we see a ridiculous set of rates, assume it is a range.
+                    */
+                  deviceInfo->defaultSampleRate = 44100.0f;
+                  DBUG(("PA - Sample rate range used instead of two odd values for device #%s\n", name ));
+                }
+                else deviceInfo->defaultSampleRate = caps.dwMaxSecondarySampleRate;
+
+
+                //printf( "min %d max %d\n", caps.dwMinSecondarySampleRate, caps.dwMaxSecondarySampleRate );
+                // dwFlags | DSCAPS_CONTINUOUSRATE 
+            }
+        }
+
+        IDirectSound_Release( lpDirectSound );
+    }
+
+    if( deviceOK )
+    {
+        deviceInfo->name = name;
+
+        if( lpGUID == NULL )
+            hostApi->info.defaultOutputDevice = hostApi->info.deviceCount;
+            
+        hostApi->info.deviceCount++;
+    }
+
+    return result;
+}
+
+
+/************************************************************************************
+** Extract capabilities from an input device, and add it to the device info list
+** if successful. This function assumes that there is enough room in the
+** device info list to accomodate all entries.
+**
+** The device will not be added to the device list if any errors are encountered.
+*/
+static PaError AddInputDeviceInfoFromDirectSoundCapture(
+        PaWinDsHostApiRepresentation *winDsHostApi, char *name, LPGUID lpGUID, char *pnpInterface )
+{
+    PaUtilHostApiRepresentation  *hostApi = &winDsHostApi->inheritedHostApiRep;
+    PaWinDsDeviceInfo            *winDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[hostApi->info.deviceCount];
+    PaDeviceInfo                 *deviceInfo = &winDsDeviceInfo->inheritedDeviceInfo;
+    HRESULT                       hr;
+    LPDIRECTSOUNDCAPTURE          lpDirectSoundCapture;
+    DSCCAPS                       caps;
+    int                           deviceOK = TRUE;
+    PaError                       result = paNoError;
+    
+    /* Copy GUID to the device info structure. Set pointer. */
+    if( lpGUID == NULL )
+    {
+        winDsDeviceInfo->lpGUID = NULL;
+    }
+    else
+    {
+        winDsDeviceInfo->lpGUID = &winDsDeviceInfo->guid;
+        memcpy( &winDsDeviceInfo->guid, lpGUID, sizeof(GUID) );
+    }
+
+    hr = paWinDsDSoundEntryPoints.DirectSoundCaptureCreate( lpGUID, &lpDirectSoundCapture, NULL );
+
+    /** try using CoCreateInstance because DirectSoundCreate was hanging under
+        some circumstances - note this was probably related to the
+        #define BOOL short bug which has now been fixed
+        @todo delete this comment and the following code once we've ensured
+        there is no bug.
+    */
+    /*
+    hr = CoCreateInstance( &CLSID_DirectSoundCapture, NULL, CLSCTX_INPROC_SERVER,
+            &IID_IDirectSoundCapture, (void**)&lpDirectSoundCapture );
+    */
+    if( hr != DS_OK )
+    {
+        DBUG(("Cannot create Capture for %s. Result = 0x%x\n", name, hr ));
+        deviceOK = FALSE;
+    }
+    else
+    {
+        /* Query device characteristics. */
+        memset( &caps, 0, sizeof(caps) );
+        caps.dwSize = sizeof(caps);
+        hr = IDirectSoundCapture_GetCaps( lpDirectSoundCapture, &caps );
+        if( hr != DS_OK )
+        {
+            DBUG(("Cannot GetCaps() for Capture device %s. Result = 0x%x\n", name, hr ));
+            deviceOK = FALSE;
+        }
+        else
+        {
+#ifndef PA_NO_WMME
+            if( caps.dwFlags & DSCAPS_EMULDRIVER )
+            {
+                /* If WMME supported, then reject Emulated drivers because they are lousy. */
+                deviceOK = FALSE;
+            }
+#endif
+
+            if( deviceOK )
+            {
+                deviceInfo->maxInputChannels = caps.dwChannels;
+                winDsDeviceInfo->deviceInputChannelCountIsKnown = 1;
+
+                deviceInfo->maxOutputChannels = 0;
+                winDsDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+                if( pnpInterface )
+                {
+                    int count = PaWin_WDMKS_QueryFilterMaximumChannelCount( pnpInterface, /* isInput= */ 1  );
+                    if( count > 0 )
+                    {
+                        deviceInfo->maxInputChannels = count;
+                        winDsDeviceInfo->deviceInputChannelCountIsKnown = 1;
+                    }
+                }
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+                deviceInfo->defaultLowInputLatency = 0.;    /** @todo IMPLEMENT ME */
+                deviceInfo->defaultLowOutputLatency = 0.;   /** @todo IMPLEMENT ME */
+                deviceInfo->defaultHighInputLatency = 0.;   /** @todo IMPLEMENT ME */
+                deviceInfo->defaultHighOutputLatency = 0.;  /** @todo IMPLEMENT ME */
+
+/*  constants from a WINE patch by Francois Gouget, see:
+    http://www.winehq.com/hypermail/wine-patches/2003/01/0290.html
+
+    ---
+    Date: Fri, 14 May 2004 10:38:12 +0200 (CEST)
+    From: Francois Gouget <fgouget@ ... .fr>
+    To: Ross Bencina <rbencina@ ... .au>
+    Subject: Re: Permission to use wine 48/96 wave patch in BSD licensed library
+
+    [snip]
+
+    I give you permission to use the patch below under the BSD license.
+    http://www.winehq.com/hypermail/wine-patches/2003/01/0290.html
+
+    [snip]
+*/
+#ifndef WAVE_FORMAT_48M08
+#define WAVE_FORMAT_48M08      0x00001000    /* 48     kHz, Mono,   8-bit  */
+#define WAVE_FORMAT_48S08      0x00002000    /* 48     kHz, Stereo, 8-bit  */
+#define WAVE_FORMAT_48M16      0x00004000    /* 48     kHz, Mono,   16-bit */
+#define WAVE_FORMAT_48S16      0x00008000    /* 48     kHz, Stereo, 16-bit */
+#define WAVE_FORMAT_96M08      0x00010000    /* 96     kHz, Mono,   8-bit  */
+#define WAVE_FORMAT_96S08      0x00020000    /* 96     kHz, Stereo, 8-bit  */
+#define WAVE_FORMAT_96M16      0x00040000    /* 96     kHz, Mono,   16-bit */
+#define WAVE_FORMAT_96S16      0x00080000    /* 96     kHz, Stereo, 16-bit */
+#endif
+
+                /* defaultSampleRate */
+                if( caps.dwChannels == 2 )
+                {
+                    if( caps.dwFormats & WAVE_FORMAT_4S16 )
+                        deviceInfo->defaultSampleRate = 44100.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_48S16 )
+                        deviceInfo->defaultSampleRate = 48000.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_2S16 )
+                        deviceInfo->defaultSampleRate = 22050.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_1S16 )
+                        deviceInfo->defaultSampleRate = 11025.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_96S16 )
+                        deviceInfo->defaultSampleRate = 96000.0;
+                    else
+                        deviceInfo->defaultSampleRate = 0.;
+                }
+                else if( caps.dwChannels == 1 )
+                {
+                    if( caps.dwFormats & WAVE_FORMAT_4M16 )
+                        deviceInfo->defaultSampleRate = 44100.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_48M16 )
+                        deviceInfo->defaultSampleRate = 48000.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_2M16 )
+                        deviceInfo->defaultSampleRate = 22050.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_1M16 )
+                        deviceInfo->defaultSampleRate = 11025.0;
+                    else if( caps.dwFormats & WAVE_FORMAT_96M16 )
+                        deviceInfo->defaultSampleRate = 96000.0;
+                    else
+                        deviceInfo->defaultSampleRate = 0.;
+                }
+                else deviceInfo->defaultSampleRate = 0.;
+            }
+        }
+        
+        IDirectSoundCapture_Release( lpDirectSoundCapture );
+    }
+
+    if( deviceOK )
+    {
+        deviceInfo->name = name;
+
+        if( lpGUID == NULL )
+            hostApi->info.defaultInputDevice = hostApi->info.deviceCount;
+
+        hostApi->info.deviceCount++;
+    }
+
+    return result;
+}
+
+
+/***********************************************************************************/
+PaError PaWinDs_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    int i, deviceCount;
+    PaWinDsHostApiRepresentation *winDsHostApi;
+    DSDeviceNamesAndGUIDs deviceNamesAndGUIDs;
+
+    PaWinDsDeviceInfo *deviceInfoArray;
+    char comWasInitialized = 0;
+
+    /*
+        If COM is already initialized CoInitialize will either return
+        FALSE, or RPC_E_CHANGED_MODE if it was initialised in a different
+        threading mode. In either case we shouldn't consider it an error
+        but we need to be careful to not call CoUninitialize() if 
+        RPC_E_CHANGED_MODE was returned.
+    */
+
+    HRESULT hr = CoInitialize(NULL);
+    if( FAILED(hr) && hr != RPC_E_CHANGED_MODE )
+        return paUnanticipatedHostError;
+
+    if( hr != RPC_E_CHANGED_MODE )
+        comWasInitialized = 1;
+
+    /* initialise guid vectors so they can be safely deleted on error */
+    deviceNamesAndGUIDs.winDsHostApi = NULL;
+    deviceNamesAndGUIDs.inputNamesAndGUIDs.items = NULL;
+    deviceNamesAndGUIDs.outputNamesAndGUIDs.items = NULL;
+
+    PaWinDs_InitializeDSoundEntryPoints();
+
+    winDsHostApi = (PaWinDsHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaWinDsHostApiRepresentation) );
+    if( !winDsHostApi )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    winDsHostApi->comWasInitialized = comWasInitialized;
+
+    winDsHostApi->allocations = PaUtil_CreateAllocationGroup();
+    if( !winDsHostApi->allocations )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    *hostApi = &winDsHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paDirectSound;
+    (*hostApi)->info.name = "Windows DirectSound";
+    
+    (*hostApi)->info.deviceCount = 0;
+    (*hostApi)->info.defaultInputDevice = paNoDevice;
+    (*hostApi)->info.defaultOutputDevice = paNoDevice;
+
+    
+/* DSound - enumerate devices to count them and to gather their GUIDs */
+
+    result = InitializeDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.inputNamesAndGUIDs, winDsHostApi->allocations );
+    if( result != paNoError )
+        goto error;
+
+    result = InitializeDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.outputNamesAndGUIDs, winDsHostApi->allocations );
+    if( result != paNoError )
+        goto error;
+
+    paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK)CollectGUIDsProc, (void *)&deviceNamesAndGUIDs.inputNamesAndGUIDs );
+
+    paWinDsDSoundEntryPoints.DirectSoundEnumerate( (LPDSENUMCALLBACK)CollectGUIDsProc, (void *)&deviceNamesAndGUIDs.outputNamesAndGUIDs );
+
+    if( deviceNamesAndGUIDs.inputNamesAndGUIDs.enumerationError != paNoError )
+    {
+        result = deviceNamesAndGUIDs.inputNamesAndGUIDs.enumerationError;
+        goto error;
+    }
+
+    if( deviceNamesAndGUIDs.outputNamesAndGUIDs.enumerationError != paNoError )
+    {
+        result = deviceNamesAndGUIDs.outputNamesAndGUIDs.enumerationError;
+        goto error;
+    }
+
+    deviceCount = deviceNamesAndGUIDs.inputNamesAndGUIDs.count + deviceNamesAndGUIDs.outputNamesAndGUIDs.count;
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+    if( deviceCount > 0 )
+    {
+        deviceNamesAndGUIDs.winDsHostApi = winDsHostApi;
+        FindDevicePnpInterfaces( &deviceNamesAndGUIDs );
+    }
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+    if( deviceCount > 0 )
+    {
+        /* allocate array for pointers to PaDeviceInfo structs */
+        (*hostApi)->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+                winDsHostApi->allocations, sizeof(PaDeviceInfo*) * deviceCount );
+        if( !(*hostApi)->deviceInfos )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        /* allocate all PaDeviceInfo structs in a contiguous block */
+        deviceInfoArray = (PaWinDsDeviceInfo*)PaUtil_GroupAllocateMemory(
+                winDsHostApi->allocations, sizeof(PaWinDsDeviceInfo) * deviceCount );
+        if( !deviceInfoArray )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        for( i=0; i < deviceCount; ++i )
+        {
+            PaDeviceInfo *deviceInfo = &deviceInfoArray[i].inheritedDeviceInfo;
+            deviceInfo->structVersion = 2;
+            deviceInfo->hostApi = hostApiIndex;
+            deviceInfo->name = 0;
+            (*hostApi)->deviceInfos[i] = deviceInfo;
+        }
+
+        for( i=0; i < deviceNamesAndGUIDs.inputNamesAndGUIDs.count; ++i )
+        {
+            result = AddInputDeviceInfoFromDirectSoundCapture( winDsHostApi,
+                    deviceNamesAndGUIDs.inputNamesAndGUIDs.items[i].name,
+                    deviceNamesAndGUIDs.inputNamesAndGUIDs.items[i].lpGUID,
+                    deviceNamesAndGUIDs.inputNamesAndGUIDs.items[i].pnpInterface );
+            if( result != paNoError )
+                goto error;
+        }
+
+        for( i=0; i < deviceNamesAndGUIDs.outputNamesAndGUIDs.count; ++i )
+        {
+            result = AddOutputDeviceInfoFromDirectSound( winDsHostApi,
+                    deviceNamesAndGUIDs.outputNamesAndGUIDs.items[i].name,
+                    deviceNamesAndGUIDs.outputNamesAndGUIDs.items[i].lpGUID,
+                    deviceNamesAndGUIDs.outputNamesAndGUIDs.items[i].pnpInterface );
+            if( result != paNoError )
+                goto error;
+        }
+    }    
+
+    result = TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.inputNamesAndGUIDs );
+    if( result != paNoError )
+        goto error;
+
+    result = TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.outputNamesAndGUIDs );
+    if( result != paNoError )
+        goto error;
+
+    
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PaUtil_InitializeStreamInterface( &winDsHostApi->callbackStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable, PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &winDsHostApi->blockingStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable );
+
+    return result;
+
+error:
+    if( winDsHostApi )
+    {
+        if( winDsHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( winDsHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( winDsHostApi->allocations );
+        }
+                
+        PaUtil_FreeMemory( winDsHostApi );
+    }
+
+    TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.inputNamesAndGUIDs );
+    TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.outputNamesAndGUIDs );
+
+    if( comWasInitialized )
+        CoUninitialize();
+
+    return result;
+}
+
+
+/***********************************************************************************/
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaWinDsHostApiRepresentation *winDsHostApi = (PaWinDsHostApiRepresentation*)hostApi;
+    char comWasInitialized = winDsHostApi->comWasInitialized;
+
+    /*
+        IMPLEMENT ME:
+            - clean up any resources not handled by the allocation group
+    */
+
+    if( winDsHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( winDsHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( winDsHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( winDsHostApi );
+
+    PaWinDs_TerminateDSoundEntryPoints();
+
+    if( comWasInitialized )
+        CoUninitialize();
+}
+
+
+/* Set minimal latency based on whether NT or Win95.
+ * NT has higher latency.
+ */
+static int PaWinDS_GetMinSystemLatency( void )
+{
+    int minLatencyMsec;
+    /* Set minimal latency based on whether NT or other OS.
+     * NT has higher latency.
+     */
+    OSVERSIONINFO osvi;
+	osvi.dwOSVersionInfoSize = sizeof( osvi );
+	GetVersionEx( &osvi );
+    DBUG(("PA - PlatformId = 0x%x\n", osvi.dwPlatformId ));
+    DBUG(("PA - MajorVersion = 0x%x\n", osvi.dwMajorVersion ));
+    DBUG(("PA - MinorVersion = 0x%x\n", osvi.dwMinorVersion ));
+    /* Check for NT */
+	if( (osvi.dwMajorVersion == 4) && (osvi.dwPlatformId == 2) )
+	{
+		minLatencyMsec = PA_WIN_NT_LATENCY;
+	}
+	else if(osvi.dwMajorVersion >= 5)
+	{
+		minLatencyMsec = PA_WIN_WDM_LATENCY;
+	}
+	else
+	{
+		minLatencyMsec = PA_WIN_9X_LATENCY;
+	}
+    return minLatencyMsec;
+}
+
+static PaError ValidateWinDirectSoundSpecificStreamInfo(
+        const PaStreamParameters *streamParameters,
+        const PaWinDirectSoundStreamInfo *streamInfo )
+{
+	if( streamInfo )
+	{
+	    if( streamInfo->size != sizeof( PaWinDirectSoundStreamInfo )
+	            || streamInfo->version != 1 )
+	    {
+	        return paIncompatibleHostApiSpecificStreamInfo;
+	    }
+	}
+
+	return paNoError;
+}
+
+/***********************************************************************************/
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    PaError result;
+    PaWinDsDeviceInfo *inputWinDsDeviceInfo, *outputWinDsDeviceInfo;
+    PaDeviceInfo *inputDeviceInfo, *outputDeviceInfo;
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaWinDirectSoundStreamInfo *inputStreamInfo, *outputStreamInfo;
+
+    if( inputParameters )
+    {
+        inputWinDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[ inputParameters->device ];
+        inputDeviceInfo = &inputWinDsDeviceInfo->inheritedDeviceInfo;
+
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputWinDsDeviceInfo->deviceInputChannelCountIsKnown
+                && inputChannelCount > inputDeviceInfo->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        inputStreamInfo = (PaWinDirectSoundStreamInfo*)inputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinDirectSoundSpecificStreamInfo( inputParameters, inputStreamInfo );
+		if( result != paNoError ) return result;
+    }
+    else
+    {
+        inputChannelCount = 0;
+    }
+
+    if( outputParameters )
+    {
+        outputWinDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[ outputParameters->device ];
+        outputDeviceInfo = &outputWinDsDeviceInfo->inheritedDeviceInfo;
+
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support inputChannelCount */
+        if( outputWinDsDeviceInfo->deviceOutputChannelCountIsKnown
+                && outputChannelCount > outputDeviceInfo->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        outputStreamInfo = (PaWinDirectSoundStreamInfo*)outputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinDirectSoundSpecificStreamInfo( outputParameters, outputStreamInfo );
+		if( result != paNoError ) return result;
+    }
+    else
+    {
+        outputChannelCount = 0;
+    }
+    
+    /*
+        IMPLEMENT ME:
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported if necessary
+
+            - check that the device supports sampleRate
+
+        Because the buffer adapter handles conversion between all standard
+        sample formats, the following checks are only required if paCustomFormat
+        is implemented, or under some other unusual conditions.
+
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+    */
+
+    return paFormatIsSupported;
+}
+
+
+/*************************************************************************
+** Determine minimum number of buffers required for this host based
+** on minimum latency. Latency can be optionally set by user by setting
+** an environment variable. For example, to set latency to 200 msec, put:
+**
+**    set PA_MIN_LATENCY_MSEC=200
+**
+** in the AUTOEXEC.BAT file and reboot.
+** If the environment variable is not set, then the latency will be determined
+** based on the OS. Windows NT has higher latency than Win95.
+*/
+#define PA_LATENCY_ENV_NAME  ("PA_MIN_LATENCY_MSEC")
+#define PA_ENV_BUF_SIZE  (32)
+
+static int PaWinDs_GetMinLatencyFrames( double sampleRate )
+{
+    char      envbuf[PA_ENV_BUF_SIZE];
+    DWORD     hresult;
+    int       minLatencyMsec = 0;
+
+    /* Let user determine minimal latency by setting environment variable. */
+    hresult = GetEnvironmentVariableA( PA_LATENCY_ENV_NAME, envbuf, PA_ENV_BUF_SIZE );
+    if( (hresult > 0) && (hresult < PA_ENV_BUF_SIZE) )
+    {
+        minLatencyMsec = atoi( envbuf );
+    }
+    else
+    {
+        minLatencyMsec = PaWinDS_GetMinSystemLatency();
+#if PA_USE_HIGH_LATENCY
+        PRINT(("PA - Minimum Latency set to %d msec!\n", minLatencyMsec ));
+#endif
+
+    }
+
+    return (int) (minLatencyMsec * sampleRate * SECONDS_PER_MSEC);
+}
+
+
+static HRESULT InitInputBuffer( PaWinDsStream *stream, PaSampleFormat sampleFormat, unsigned long nFrameRate, WORD nChannels, int bytesPerBuffer, PaWinWaveFormatChannelMask channelMask )
+{
+    DSCBUFFERDESC  captureDesc;
+    PaWinWaveFormat waveFormat;
+    HRESULT        result;
+    
+    stream->bytesPerInputFrame = nChannels * Pa_GetSampleSize(sampleFormat);
+
+    stream->inputSize = bytesPerBuffer;
+    // ----------------------------------------------------------------------
+    // Setup the secondary buffer description
+    ZeroMemory(&captureDesc, sizeof(DSCBUFFERDESC));
+    captureDesc.dwSize = sizeof(DSCBUFFERDESC);
+    captureDesc.dwFlags =  0;
+    captureDesc.dwBufferBytes = bytesPerBuffer;
+    captureDesc.lpwfxFormat = (WAVEFORMATEX*)&waveFormat;
+    
+    // Create the capture buffer
+
+    // first try WAVEFORMATEXTENSIBLE. if this fails, fall back to WAVEFORMATEX
+    PaWin_InitializeWaveFormatExtensible( &waveFormat, nChannels, 
+                sampleFormat, nFrameRate, channelMask );
+
+    if( IDirectSoundCapture_CreateCaptureBuffer( stream->pDirectSoundCapture,
+                  &captureDesc, &stream->pDirectSoundInputBuffer, NULL) != DS_OK )
+    {
+        PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat, nFrameRate );
+
+        if ((result = IDirectSoundCapture_CreateCaptureBuffer( stream->pDirectSoundCapture,
+                    &captureDesc, &stream->pDirectSoundInputBuffer, NULL)) != DS_OK) return result;
+    }
+
+    stream->readOffset = 0;  // reset last read position to start of buffer
+    return DS_OK;
+}
+
+
+static HRESULT InitOutputBuffer( PaWinDsStream *stream, PaSampleFormat sampleFormat, unsigned long nFrameRate, WORD nChannels, int bytesPerBuffer, PaWinWaveFormatChannelMask channelMask )
+{
+    /** @todo FIXME: if InitOutputBuffer returns an error I'm not sure it frees all resources cleanly */
+
+    DWORD          dwDataLen;
+    DWORD          playCursor;
+    HRESULT        result;
+    LPDIRECTSOUNDBUFFER pPrimaryBuffer;
+    HWND           hWnd;
+    HRESULT        hr;
+    PaWinWaveFormat waveFormat;
+    DSBUFFERDESC   primaryDesc;
+    DSBUFFERDESC   secondaryDesc;
+    unsigned char* pDSBuffData;
+    LARGE_INTEGER  counterFrequency;
+    int bytesPerSample = Pa_GetSampleSize(sampleFormat);
+
+    stream->outputBufferSizeBytes = bytesPerBuffer;
+    stream->outputIsRunning = FALSE;
+    stream->outputUnderflowCount = 0;
+    stream->dsw_framesWritten = 0;
+    stream->bytesPerOutputFrame = nChannels * bytesPerSample;
+
+    // We were using getForegroundWindow() but sometimes the ForegroundWindow may not be the
+    // applications's window. Also if that window is closed before the Buffer is closed
+    // then DirectSound can crash. (Thanks for Scott Patterson for reporting this.)
+    // So we will use GetDesktopWindow() which was suggested by Miller Puckette.
+    // hWnd = GetForegroundWindow();
+    //
+    //  FIXME: The example code I have on the net creates a hidden window that
+    //      is managed by our code - I think we should do that - one hidden
+    //      window for the whole of Pa_DS
+    //
+    hWnd = GetDesktopWindow();
+
+    // Set cooperative level to DSSCL_EXCLUSIVE so that we can get 16 bit output, 44.1 KHz.
+    // Exclusize also prevents unexpected sounds from other apps during a performance.
+    if ((hr = IDirectSound_SetCooperativeLevel( stream->pDirectSound,
+              hWnd, DSSCL_EXCLUSIVE)) != DS_OK)
+    {
+        return hr;
+    }
+
+    // -----------------------------------------------------------------------
+    // Create primary buffer and set format just so we can specify our custom format.
+    // Otherwise we would be stuck with the default which might be 8 bit or 22050 Hz.
+    // Setup the primary buffer description
+    ZeroMemory(&primaryDesc, sizeof(DSBUFFERDESC));
+    primaryDesc.dwSize        = sizeof(DSBUFFERDESC);
+    primaryDesc.dwFlags       = DSBCAPS_PRIMARYBUFFER; // all panning, mixing, etc done by synth
+    primaryDesc.dwBufferBytes = 0;
+    primaryDesc.lpwfxFormat   = NULL;
+    // Create the buffer
+    if ((result = IDirectSound_CreateSoundBuffer( stream->pDirectSound,
+                  &primaryDesc, &pPrimaryBuffer, NULL)) != DS_OK) return result;
+
+    // Set the primary buffer's format
+
+    // first try WAVEFORMATEXTENSIBLE. if this fails, fall back to WAVEFORMATEX
+    PaWin_InitializeWaveFormatExtensible( &waveFormat, nChannels, 
+                sampleFormat, nFrameRate, channelMask );
+
+    if( IDirectSoundBuffer_SetFormat( pPrimaryBuffer, (WAVEFORMATEX*)&waveFormat) != DS_OK )
+    {
+        PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat, nFrameRate );
+
+        if((result = IDirectSoundBuffer_SetFormat( pPrimaryBuffer, (WAVEFORMATEX*)&waveFormat)) != DS_OK) return result;
+    }
+
+    // ----------------------------------------------------------------------
+    // Setup the secondary buffer description
+    ZeroMemory(&secondaryDesc, sizeof(DSBUFFERDESC));
+    secondaryDesc.dwSize = sizeof(DSBUFFERDESC);
+    secondaryDesc.dwFlags =  DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2;
+    secondaryDesc.dwBufferBytes = bytesPerBuffer;
+    secondaryDesc.lpwfxFormat = (WAVEFORMATEX*)&waveFormat;
+    // Create the secondary buffer
+    if ((result = IDirectSound_CreateSoundBuffer( stream->pDirectSound,
+                  &secondaryDesc, &stream->pDirectSoundOutputBuffer, NULL)) != DS_OK) return result;
+    // Lock the DS buffer
+    if ((result = IDirectSoundBuffer_Lock( stream->pDirectSoundOutputBuffer, 0, stream->outputBufferSizeBytes, (LPVOID*)&pDSBuffData,
+                                           &dwDataLen, NULL, 0, 0)) != DS_OK) return result;
+    // Zero the DS buffer
+    ZeroMemory(pDSBuffData, dwDataLen);
+    // Unlock the DS buffer
+    if ((result = IDirectSoundBuffer_Unlock( stream->pDirectSoundOutputBuffer, pDSBuffData, dwDataLen, NULL, 0)) != DS_OK) return result;
+    if( QueryPerformanceFrequency( &counterFrequency ) )
+    {
+        int framesInBuffer = bytesPerBuffer / (nChannels * bytesPerSample);
+        stream->perfCounterTicksPerBuffer.QuadPart = (counterFrequency.QuadPart * framesInBuffer) / nFrameRate;
+    }
+    else
+    {
+        stream->perfCounterTicksPerBuffer.QuadPart = 0;
+    }
+    // Let DSound set the starting write position because if we set it to zero, it looks like the
+    // buffer is full to begin with. This causes a long pause before sound starts when using large buffers.
+    hr = IDirectSoundBuffer_GetCurrentPosition( stream->pDirectSoundOutputBuffer,
+            &playCursor, &stream->outputBufferWriteOffsetBytes );
+    if( hr != DS_OK )
+    {
+        return hr;
+    }
+    stream->dsw_framesWritten = stream->outputBufferWriteOffsetBytes / stream->bytesPerOutputFrame;
+    /* printf("DSW_InitOutputBuffer: playCursor = %d, writeCursor = %d\n", playCursor, dsw->dsw_WriteOffset ); */
+    return DS_OK;
+}
+
+/***********************************************************************************/
+/* see pa_hostapi.h for a list of validity guarantees made about OpenStream parameters */
+
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaWinDsHostApiRepresentation *winDsHostApi = (PaWinDsHostApiRepresentation*)hostApi;
+    PaWinDsStream *stream = 0;
+    PaWinDsDeviceInfo *inputWinDsDeviceInfo, *outputWinDsDeviceInfo;
+    PaDeviceInfo *inputDeviceInfo, *outputDeviceInfo;
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaSampleFormat hostInputSampleFormat, hostOutputSampleFormat;
+    unsigned long suggestedInputLatencyFrames, suggestedOutputLatencyFrames;
+    PaWinDirectSoundStreamInfo *inputStreamInfo, *outputStreamInfo;
+    PaWinWaveFormatChannelMask inputChannelMask, outputChannelMask;
+
+    if( inputParameters )
+    {
+        inputWinDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[ inputParameters->device ];
+        inputDeviceInfo = &inputWinDsDeviceInfo->inheritedDeviceInfo;
+
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+        suggestedInputLatencyFrames = (unsigned long)(inputParameters->suggestedLatency * sampleRate);
+
+        /* IDEA: the following 3 checks could be performed by default by pa_front
+            unless some flag indicated otherwise */
+            
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputWinDsDeviceInfo->deviceInputChannelCountIsKnown
+                && inputChannelCount > inputDeviceInfo->maxInputChannels )
+            return paInvalidChannelCount;
+            
+        /* validate hostApiSpecificStreamInfo */
+        inputStreamInfo = (PaWinDirectSoundStreamInfo*)inputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinDirectSoundSpecificStreamInfo( inputParameters, inputStreamInfo );
+		if( result != paNoError ) return result;
+
+        if( inputStreamInfo && inputStreamInfo->flags & paWinDirectSoundUseChannelMask )
+            inputChannelMask = inputStreamInfo->channelMask;
+        else
+            inputChannelMask = PaWin_DefaultChannelMask( inputChannelCount );
+    }
+    else
+    {
+        inputChannelCount = 0;
+		inputSampleFormat = 0;
+        suggestedInputLatencyFrames = 0;
+    }
+
+
+    if( outputParameters )
+    {
+        outputWinDsDeviceInfo = (PaWinDsDeviceInfo*) hostApi->deviceInfos[ outputParameters->device ];
+        outputDeviceInfo = &outputWinDsDeviceInfo->inheritedDeviceInfo;
+
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        suggestedOutputLatencyFrames = (unsigned long)(outputParameters->suggestedLatency * sampleRate);
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support outputChannelCount */
+        if( outputWinDsDeviceInfo->deviceOutputChannelCountIsKnown
+                && outputChannelCount > outputDeviceInfo->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate hostApiSpecificStreamInfo */
+        outputStreamInfo = (PaWinDirectSoundStreamInfo*)outputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinDirectSoundSpecificStreamInfo( outputParameters, outputStreamInfo );
+		if( result != paNoError ) return result;   
+
+        if( outputStreamInfo && outputStreamInfo->flags & paWinDirectSoundUseChannelMask )
+            outputChannelMask = outputStreamInfo->channelMask;
+        else
+            outputChannelMask = PaWin_DefaultChannelMask( outputChannelCount );
+    }
+    else
+    {
+        outputChannelCount = 0;
+		outputSampleFormat = 0;
+        suggestedOutputLatencyFrames = 0;
+    }
+
+
+    /*
+        IMPLEMENT ME:
+
+        ( the following two checks are taken care of by PaUtil_InitializeBufferProcessor() )
+
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported
+
+            - check that the device supports sampleRate
+
+            - alter sampleRate to a close allowable rate if possible / necessary
+
+            - validate suggestedInputLatency and suggestedOutputLatency parameters,
+                use default values where necessary
+    */
+
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+
+    stream = (PaWinDsStream*)PaUtil_AllocateMemory( sizeof(PaWinDsStream) );
+    if( !stream )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    memset( stream, 0, sizeof(PaWinDsStream) ); /* initialize all stream variables to 0 */
+
+    if( streamCallback )
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &winDsHostApi->callbackStreamInterface, streamCallback, userData );
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &winDsHostApi->blockingStreamInterface, streamCallback, userData );
+    }
+    
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+
+    if( inputParameters )
+    {
+        /* IMPLEMENT ME - establish which  host formats are available */
+        PaSampleFormat nativeInputFormats = paInt16;
+        //PaSampleFormat nativeFormats = paUInt8 | paInt16 | paInt24 | paInt32 | paFloat32;
+
+        hostInputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( nativeInputFormats, inputParameters->sampleFormat );
+    }
+	else
+	{
+		hostInputSampleFormat = 0;
+	}
+
+    if( outputParameters )
+    {
+        /* IMPLEMENT ME - establish which  host formats are available */
+        PaSampleFormat nativeOutputFormats = paInt16;
+        //PaSampleFormat nativeOutputFormats = paUInt8 | paInt16 | paInt24 | paInt32 | paFloat32;
+
+        hostOutputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( nativeOutputFormats, outputParameters->sampleFormat );
+    }
+    else
+	{
+		hostOutputSampleFormat = 0;
+	}
+
+    result =  PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+                    inputChannelCount, inputSampleFormat, hostInputSampleFormat,
+                    outputChannelCount, outputSampleFormat, hostOutputSampleFormat,
+                    sampleRate, streamFlags, framesPerBuffer,
+                    framesPerBuffer, /* ignored in paUtilVariableHostBufferSizePartialUsageAllowed mode. */
+                /* This next mode is required because DS can split the host buffer when it wraps around. */
+                    paUtilVariableHostBufferSizePartialUsageAllowed,
+                    streamCallback, userData );
+    if( result != paNoError )
+        goto error;
+
+
+    stream->streamRepresentation.streamInfo.inputLatency =
+            PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor);   /* FIXME: not initialised anywhere else */
+    stream->streamRepresentation.streamInfo.outputLatency =
+            PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor);    /* FIXME: not initialised anywhere else */
+    stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+    
+/* DirectSound specific initialization */ 
+    {
+        HRESULT          hr;
+        int              bytesPerDirectSoundBuffer;
+        int              userLatencyFrames;
+        int              minLatencyFrames;
+
+        stream->timerID = 0;
+
+    /* Get system minimum latency. */
+        minLatencyFrames = PaWinDs_GetMinLatencyFrames( sampleRate );
+
+    /* Let user override latency by passing latency parameter. */
+        userLatencyFrames = (suggestedInputLatencyFrames > suggestedOutputLatencyFrames)
+                    ? suggestedInputLatencyFrames
+                    : suggestedOutputLatencyFrames;
+        if( userLatencyFrames > 0 ) minLatencyFrames = userLatencyFrames;
+
+    /* Calculate stream->framesPerDSBuffer depending on framesPerBuffer */
+        if( framesPerBuffer == paFramesPerBufferUnspecified )
+        {
+        /* App support variable framesPerBuffer */
+            stream->framesPerDSBuffer = minLatencyFrames;
+
+            stream->streamRepresentation.streamInfo.outputLatency = (double)(minLatencyFrames - 1) / sampleRate;
+        }
+        else
+        {
+        /* Round up to number of buffers needed to guarantee that latency. */
+            int numUserBuffers = (minLatencyFrames + framesPerBuffer - 1) / framesPerBuffer;
+            if( numUserBuffers < 1 ) numUserBuffers = 1;
+            numUserBuffers += 1; /* So we have latency worth of buffers ahead of current buffer. */
+            stream->framesPerDSBuffer = framesPerBuffer * numUserBuffers;
+
+            stream->streamRepresentation.streamInfo.outputLatency = (double)(framesPerBuffer * (numUserBuffers-1)) / sampleRate;
+        }
+
+        {
+            /** @todo REVIEW: this calculation seems incorrect to me - rossb. */
+            int msecLatency = (int) ((stream->framesPerDSBuffer * MSEC_PER_SECOND) / sampleRate);
+            PRINT(("PortAudio on DirectSound - Latency = %d frames, %d msec\n", stream->framesPerDSBuffer, msecLatency ));
+        }
+
+
+        /* ------------------ OUTPUT */
+        if( outputParameters )
+        {
+            /*
+            PaDeviceInfo *deviceInfo = hostApi->deviceInfos[ outputParameters->device ];
+            DBUG(("PaHost_OpenStream: deviceID = 0x%x\n", outputParameters->device));
+            */
+            
+            int bytesPerSample = Pa_GetSampleSize(hostOutputSampleFormat);
+            bytesPerDirectSoundBuffer = stream->framesPerDSBuffer * outputParameters->channelCount * bytesPerSample;
+            if( bytesPerDirectSoundBuffer < DSBSIZE_MIN )
+            {
+                result = paBufferTooSmall;
+                goto error;
+            }
+            else if( bytesPerDirectSoundBuffer > DSBSIZE_MAX )
+            {
+                result = paBufferTooBig;
+                goto error;
+            }
+
+            hr = paWinDsDSoundEntryPoints.DirectSoundCreate( 
+                ((PaWinDsDeviceInfo*)hostApi->deviceInfos[outputParameters->device])->lpGUID,
+                &stream->pDirectSound, NULL );
+
+            if( hr != DS_OK )
+            {
+                ERR_RPT(("PortAudio: DirectSoundCreate() failed!\n"));
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+                goto error;
+            }
+            hr = InitOutputBuffer( stream,
+                                       hostOutputSampleFormat,
+                                       (unsigned long) (sampleRate + 0.5),
+                                       (WORD)outputParameters->channelCount, bytesPerDirectSoundBuffer,
+                                       outputChannelMask );
+            DBUG(("InitOutputBuffer() returns %x\n", hr));
+            if( hr != DS_OK )
+            {
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+                goto error;
+            }
+            /* Calculate value used in latency calculation to avoid real-time divides. */
+            stream->secondsPerHostByte = 1.0 /
+                (stream->bufferProcessor.bytesPerHostOutputSample *
+                outputChannelCount * sampleRate);
+        }
+
+        /* ------------------ INPUT */
+        if( inputParameters )
+        {
+            /*
+            PaDeviceInfo *deviceInfo = hostApi->deviceInfos[ inputParameters->device ];
+            DBUG(("PaHost_OpenStream: deviceID = 0x%x\n", inputParameters->device));
+            */
+            
+            int bytesPerSample = Pa_GetSampleSize(hostInputSampleFormat);
+            bytesPerDirectSoundBuffer = stream->framesPerDSBuffer * inputParameters->channelCount * bytesPerSample;
+            if( bytesPerDirectSoundBuffer < DSBSIZE_MIN )
+            {
+                result = paBufferTooSmall;
+                goto error;
+            }
+            else if( bytesPerDirectSoundBuffer > DSBSIZE_MAX )
+            {
+                result = paBufferTooBig;
+                goto error;
+            }
+
+            hr = paWinDsDSoundEntryPoints.DirectSoundCaptureCreate( 
+                    ((PaWinDsDeviceInfo*)hostApi->deviceInfos[inputParameters->device])->lpGUID,
+                    &stream->pDirectSoundCapture, NULL );
+            if( hr != DS_OK )
+            {
+                ERR_RPT(("PortAudio: DirectSoundCaptureCreate() failed!\n"));
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+                goto error;
+            }
+            hr = InitInputBuffer( stream,
+                                      hostInputSampleFormat,
+                                      (unsigned long) (sampleRate + 0.5),
+                                      (WORD)inputParameters->channelCount, bytesPerDirectSoundBuffer,
+                                      inputChannelMask );
+            DBUG(("InitInputBuffer() returns %x\n", hr));
+            if( hr != DS_OK )
+            {
+                ERR_RPT(("PortAudio: DSW_InitInputBuffer() returns %x\n", hr));
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+                goto error;
+            }
+        }
+
+    }
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+    if( stream )
+        PaUtil_FreeMemory( stream );
+
+    return result;
+}
+
+
+/************************************************************************************
+ * Determine how much space can be safely written to in DS buffer.
+ * Detect underflows and overflows.
+ * Does not allow writing into safety gap maintained by DirectSound.
+ */
+static HRESULT QueryOutputSpace( PaWinDsStream *stream, long *bytesEmpty )
+{
+    HRESULT hr;
+    DWORD   playCursor;
+    DWORD   writeCursor;
+    long    numBytesEmpty;
+    long    playWriteGap;
+    // Query to see how much room is in buffer.
+    hr = IDirectSoundBuffer_GetCurrentPosition( stream->pDirectSoundOutputBuffer,
+            &playCursor, &writeCursor );
+    if( hr != DS_OK )
+    {
+        return hr;
+    }
+    // Determine size of gap between playIndex and WriteIndex that we cannot write into.
+    playWriteGap = writeCursor - playCursor;
+    if( playWriteGap < 0 ) playWriteGap += stream->outputBufferSizeBytes; // unwrap
+    /* DirectSound doesn't have a large enough playCursor so we cannot detect wrap-around. */
+    /* Attempt to detect playCursor wrap-around and correct it. */
+    if( stream->outputIsRunning && (stream->perfCounterTicksPerBuffer.QuadPart != 0) )
+    {
+        /* How much time has elapsed since last check. */
+        LARGE_INTEGER   currentTime;
+        LARGE_INTEGER   elapsedTime;
+        long            bytesPlayed;
+        long            bytesExpected;
+        long            buffersWrapped;
+        QueryPerformanceCounter( &currentTime );
+        elapsedTime.QuadPart = currentTime.QuadPart - stream->previousPlayTime.QuadPart;
+        stream->previousPlayTime = currentTime;
+        /* How many bytes does DirectSound say have been played. */
+        bytesPlayed = playCursor - stream->previousPlayCursor;
+        if( bytesPlayed < 0 ) bytesPlayed += stream->outputBufferSizeBytes; // unwrap
+        stream->previousPlayCursor = playCursor;
+        /* Calculate how many bytes we would have expected to been played by now. */
+        bytesExpected = (long) ((elapsedTime.QuadPart * stream->outputBufferSizeBytes) / stream->perfCounterTicksPerBuffer.QuadPart);
+        buffersWrapped = (bytesExpected - bytesPlayed) / stream->outputBufferSizeBytes;
+        if( buffersWrapped > 0 )
+        {
+            playCursor += (buffersWrapped * stream->outputBufferSizeBytes);
+            bytesPlayed += (buffersWrapped * stream->outputBufferSizeBytes);
+        }
+        /* Maintain frame output cursor. */
+        stream->framesPlayed += (bytesPlayed / stream->bytesPerOutputFrame);
+    }
+    numBytesEmpty = playCursor - stream->outputBufferWriteOffsetBytes;
+    if( numBytesEmpty < 0 ) numBytesEmpty += stream->outputBufferSizeBytes; // unwrap offset
+    /* Have we underflowed? */
+    if( numBytesEmpty > (stream->outputBufferSizeBytes - playWriteGap) )
+    {
+        if( stream->outputIsRunning )
+        {
+            stream->outputUnderflowCount += 1;
+        }
+        stream->outputBufferWriteOffsetBytes = writeCursor;
+        numBytesEmpty = stream->outputBufferSizeBytes - playWriteGap;
+    }
+    *bytesEmpty = numBytesEmpty;
+    return hr;
+}
+
+/***********************************************************************************/
+static PaError Pa_TimeSlice( PaWinDsStream *stream )
+{
+    PaError           result = 0;   /* FIXME: this should be declared int and this function should also return that type (same as stream callback return type)*/
+    long              numFrames = 0;
+    long              bytesEmpty = 0;
+    long              bytesFilled = 0;
+    long              bytesToXfer = 0;
+    long              framesToXfer = 0;
+    long              numInFramesReady = 0;
+    long              numOutFramesReady = 0;
+    long              bytesProcessed;
+    HRESULT           hresult;
+    double            outputLatency = 0;
+    PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /** @todo implement inputBufferAdcTime */
+    
+/* Input */
+    LPBYTE            lpInBuf1 = NULL;
+    LPBYTE            lpInBuf2 = NULL;
+    DWORD             dwInSize1 = 0;
+    DWORD             dwInSize2 = 0;
+/* Output */
+    LPBYTE            lpOutBuf1 = NULL;
+    LPBYTE            lpOutBuf2 = NULL;
+    DWORD             dwOutSize1 = 0;
+    DWORD             dwOutSize2 = 0;
+
+    /* How much input data is available? */
+    if( stream->bufferProcessor.inputChannelCount > 0 )
+    {
+        HRESULT hr;
+        DWORD capturePos;
+        DWORD readPos;
+        long  filled = 0;
+        // Query to see how much data is in buffer.
+        // We don't need the capture position but sometimes DirectSound doesn't handle NULLS correctly
+        // so let's pass a pointer just to be safe.
+        hr = IDirectSoundCaptureBuffer_GetCurrentPosition( stream->pDirectSoundInputBuffer, &capturePos, &readPos );
+        if( hr == DS_OK )
+        {
+            filled = readPos - stream->readOffset;
+            if( filled < 0 ) filled += stream->inputSize; // unwrap offset
+            bytesFilled = filled;
+        }
+            // FIXME: what happens if IDirectSoundCaptureBuffer_GetCurrentPosition fails?
+
+        framesToXfer = numInFramesReady = bytesFilled / stream->bytesPerInputFrame;
+        outputLatency = ((double)bytesFilled) * stream->secondsPerHostByte;
+
+        /** @todo Check for overflow */
+    }
+
+    /* How much output room is available? */
+    if( stream->bufferProcessor.outputChannelCount > 0 )
+    {
+        UINT previousUnderflowCount = stream->outputUnderflowCount;
+        QueryOutputSpace( stream, &bytesEmpty );
+        framesToXfer = numOutFramesReady = bytesEmpty / stream->bytesPerOutputFrame;
+
+        /* Check for underflow */
+        if( stream->outputUnderflowCount != previousUnderflowCount )
+            stream->callbackFlags |= paOutputUnderflow;
+    }
+
+    if( (numInFramesReady > 0) && (numOutFramesReady > 0) )
+    {
+        framesToXfer = (numOutFramesReady < numInFramesReady) ? numOutFramesReady : numInFramesReady;
+    }
+
+    if( framesToXfer > 0 )
+    {
+
+        PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+
+    /* The outputBufferDacTime parameter should indicates the time at which
+        the first sample of the output buffer is heard at the DACs. */
+        timeInfo.currentTime = PaUtil_GetTime();
+        timeInfo.outputBufferDacTime = timeInfo.currentTime + outputLatency;
+
+
+        PaUtil_BeginBufferProcessing( &stream->bufferProcessor, &timeInfo, stream->callbackFlags );
+        stream->callbackFlags = 0;
+        
+    /* Input */
+        if( stream->bufferProcessor.inputChannelCount > 0 )
+        {
+            bytesToXfer = framesToXfer * stream->bytesPerInputFrame;
+            hresult = IDirectSoundCaptureBuffer_Lock ( stream->pDirectSoundInputBuffer,
+                stream->readOffset, bytesToXfer,
+                (void **) &lpInBuf1, &dwInSize1,
+                (void **) &lpInBuf2, &dwInSize2, 0);
+            if (hresult != DS_OK)
+            {
+                ERR_RPT(("DirectSound IDirectSoundCaptureBuffer_Lock failed, hresult = 0x%x\n",hresult));
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hresult );
+                goto error2;
+            }
+
+            numFrames = dwInSize1 / stream->bytesPerInputFrame;
+            PaUtil_SetInputFrameCount( &stream->bufferProcessor, numFrames );
+            PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor, 0, lpInBuf1, 0 );
+        /* Is input split into two regions. */
+            if( dwInSize2 > 0 )
+            {
+                numFrames = dwInSize2 / stream->bytesPerInputFrame;
+                PaUtil_Set2ndInputFrameCount( &stream->bufferProcessor, numFrames );
+                PaUtil_Set2ndInterleavedInputChannels( &stream->bufferProcessor, 0, lpInBuf2, 0 );
+            }
+        }
+
+    /* Output */
+        if( stream->bufferProcessor.outputChannelCount > 0 )
+        {
+            bytesToXfer = framesToXfer * stream->bytesPerOutputFrame;
+            hresult = IDirectSoundBuffer_Lock ( stream->pDirectSoundOutputBuffer,
+                stream->outputBufferWriteOffsetBytes, bytesToXfer,
+                (void **) &lpOutBuf1, &dwOutSize1,
+                (void **) &lpOutBuf2, &dwOutSize2, 0);
+            if (hresult != DS_OK)
+            {
+                ERR_RPT(("DirectSound IDirectSoundBuffer_Lock failed, hresult = 0x%x\n",hresult));
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hresult );
+                goto error1;
+            }
+
+            numFrames = dwOutSize1 / stream->bytesPerOutputFrame;
+            PaUtil_SetOutputFrameCount( &stream->bufferProcessor, numFrames );
+            PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, 0, lpOutBuf1, 0 );
+
+        /* Is output split into two regions. */
+            if( dwOutSize2 > 0 )
+            {
+                numFrames = dwOutSize2 / stream->bytesPerOutputFrame;
+                PaUtil_Set2ndOutputFrameCount( &stream->bufferProcessor, numFrames );
+                PaUtil_Set2ndInterleavedOutputChannels( &stream->bufferProcessor, 0, lpOutBuf2, 0 );
+            }
+        }
+
+        result = paContinue;
+        numFrames = PaUtil_EndBufferProcessing( &stream->bufferProcessor, &result );
+        stream->framesWritten += numFrames;
+        
+        if( stream->bufferProcessor.outputChannelCount > 0 )
+        {
+        /* FIXME: an underflow could happen here */
+
+        /* Update our buffer offset and unlock sound buffer */
+            bytesProcessed = numFrames * stream->bytesPerOutputFrame;
+            stream->outputBufferWriteOffsetBytes = (stream->outputBufferWriteOffsetBytes + bytesProcessed) % stream->outputBufferSizeBytes;
+            IDirectSoundBuffer_Unlock( stream->pDirectSoundOutputBuffer, lpOutBuf1, dwOutSize1, lpOutBuf2, dwOutSize2);
+            stream->dsw_framesWritten += numFrames;
+        }
+
+error1:
+        if( stream->bufferProcessor.inputChannelCount > 0 )
+        {
+        /* FIXME: an overflow could happen here */
+
+        /* Update our buffer offset and unlock sound buffer */
+            bytesProcessed = numFrames * stream->bytesPerInputFrame;
+            stream->readOffset = (stream->readOffset + bytesProcessed) % stream->inputSize;
+            IDirectSoundCaptureBuffer_Unlock( stream->pDirectSoundInputBuffer, lpInBuf1, dwInSize1, lpInBuf2, dwInSize2);
+        }
+error2:
+
+        PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, numFrames );
+
+    }
+    
+    return result;
+}
+/*******************************************************************/
+
+static HRESULT ZeroAvailableOutputSpace( PaWinDsStream *stream )
+{
+    HRESULT hr;
+    LPBYTE lpbuf1 = NULL;
+    LPBYTE lpbuf2 = NULL;
+    DWORD dwsize1 = 0;
+    DWORD dwsize2 = 0;
+    long  bytesEmpty;
+    hr = QueryOutputSpace( stream, &bytesEmpty ); // updates framesPlayed
+    if (hr != DS_OK) return hr;
+    if( bytesEmpty == 0 ) return DS_OK;
+    // Lock free space in the DS
+    hr = IDirectSoundBuffer_Lock( stream->pDirectSoundOutputBuffer, stream->outputBufferWriteOffsetBytes,
+                                    bytesEmpty, (void **) &lpbuf1, &dwsize1,
+                                    (void **) &lpbuf2, &dwsize2, 0);
+    if (hr == DS_OK)
+    {
+        // Copy the buffer into the DS
+        ZeroMemory(lpbuf1, dwsize1);
+        if(lpbuf2 != NULL)
+        {
+            ZeroMemory(lpbuf2, dwsize2);
+        }
+        // Update our buffer offset and unlock sound buffer
+        stream->outputBufferWriteOffsetBytes = (stream->outputBufferWriteOffsetBytes + dwsize1 + dwsize2) % stream->outputBufferSizeBytes;
+        IDirectSoundBuffer_Unlock( stream->pDirectSoundOutputBuffer, lpbuf1, dwsize1, lpbuf2, dwsize2);
+        stream->dsw_framesWritten += bytesEmpty / stream->bytesPerOutputFrame;
+    }
+    return hr;
+}
+
+
+static void CALLBACK Pa_TimerCallback(UINT uID, UINT uMsg, DWORD_PTR dwUser, DWORD dw1, DWORD dw2)
+{
+    PaWinDsStream *stream;
+
+    /* suppress unused variable warnings */
+    (void) uID;
+    (void) uMsg;
+    (void) dw1;
+    (void) dw2;
+    
+    stream = (PaWinDsStream *) dwUser;
+    if( stream == NULL ) return;
+
+    if( stream->isActive )
+    {
+        if( stream->abortProcessing )
+        {
+            stream->isActive = 0;
+        }
+        else if( stream->stopProcessing )
+        {
+            if( stream->bufferProcessor.outputChannelCount > 0 )
+            {
+                ZeroAvailableOutputSpace( stream );
+                /* clear isActive when all sound played */
+                if( stream->framesPlayed >= stream->framesWritten )
+                {
+                    stream->isActive = 0;
+                }
+            }
+            else
+            {
+                stream->isActive = 0;
+            }
+        }
+        else
+        {
+            if( Pa_TimeSlice( stream ) != 0)  /* Call time slice independant of timing method. */
+            {
+                /* FIXME implement handling of paComplete and paAbort if possible */
+                stream->stopProcessing = 1;
+            }
+        }
+
+        if( !stream->isActive )
+        {
+            if( stream->streamRepresentation.streamFinishedCallback != 0 )
+                stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+        }
+    }
+}
+
+/***********************************************************************************
+    When CloseStream() is called, the multi-api layer ensures that
+    the stream has already been stopped or aborted.
+*/
+static PaError CloseStream( PaStream* s )
+{
+    PaError result = paNoError;
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    // Cleanup the sound buffers
+    if( stream->pDirectSoundOutputBuffer )
+    {
+        IDirectSoundBuffer_Stop( stream->pDirectSoundOutputBuffer );
+        IDirectSoundBuffer_Release( stream->pDirectSoundOutputBuffer );
+        stream->pDirectSoundOutputBuffer = NULL;
+    }
+
+    if( stream->pDirectSoundInputBuffer )
+    {
+        IDirectSoundCaptureBuffer_Stop( stream->pDirectSoundInputBuffer );
+        IDirectSoundCaptureBuffer_Release( stream->pDirectSoundInputBuffer );
+        stream->pDirectSoundInputBuffer = NULL;
+    }
+
+    if( stream->pDirectSoundCapture )
+    {
+        IDirectSoundCapture_Release( stream->pDirectSoundCapture );
+        stream->pDirectSoundCapture = NULL;
+    }
+
+    if( stream->pDirectSound )
+    {
+        IDirectSound_Release( stream->pDirectSound );
+        stream->pDirectSound = NULL;
+    }
+
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+    PaUtil_FreeMemory( stream );
+
+    return result;
+}
+
+/***********************************************************************************/
+static PaError StartStream( PaStream *s )
+{
+    PaError          result = paNoError;
+    PaWinDsStream   *stream = (PaWinDsStream*)s;
+    HRESULT          hr;
+
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+    
+    if( stream->bufferProcessor.inputChannelCount > 0 )
+    {
+        // Start the buffer playback
+        if( stream->pDirectSoundInputBuffer != NULL ) // FIXME: not sure this check is necessary
+        {
+            hr = IDirectSoundCaptureBuffer_Start( stream->pDirectSoundInputBuffer, DSCBSTART_LOOPING );
+        }
+
+        DBUG(("StartStream: DSW_StartInput returned = 0x%X.\n", hr));
+        if( hr != DS_OK )
+        {
+            result = paUnanticipatedHostError;
+            PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+            goto error;
+        }
+    }
+
+    stream->framesWritten = 0;
+    stream->callbackFlags = 0;
+
+    stream->abortProcessing = 0;
+    stream->stopProcessing = 0;
+    stream->isActive = 1;
+
+    if( stream->bufferProcessor.outputChannelCount > 0 )
+    {
+        /* Give user callback a chance to pre-fill buffer. REVIEW - i thought we weren't pre-filling, rb. */
+        result = Pa_TimeSlice( stream );
+        if( result != paNoError ) return result; // FIXME - what if finished?
+
+        QueryPerformanceCounter( &stream->previousPlayTime );
+        stream->previousPlayCursor = 0;
+        stream->framesPlayed = 0;
+        hr = IDirectSoundBuffer_SetCurrentPosition( stream->pDirectSoundOutputBuffer, 0 );
+        DBUG(("PaHost_StartOutput: IDirectSoundBuffer_SetCurrentPosition returned = 0x%X.\n", hr));
+        if( hr != DS_OK )
+        {
+            result = paUnanticipatedHostError;
+            PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+            goto error;
+        }
+
+        // Start the buffer playback in a loop.
+        if( stream->pDirectSoundOutputBuffer != NULL ) // FIXME: not sure this needs to be checked here
+        {
+            hr = IDirectSoundBuffer_Play( stream->pDirectSoundOutputBuffer, 0, 0, DSBPLAY_LOOPING );
+            DBUG(("PaHost_StartOutput: IDirectSoundBuffer_Play returned = 0x%X.\n", hr));
+            if( hr != DS_OK )
+            {
+                result = paUnanticipatedHostError;
+                PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+                goto error;
+            }
+            stream->outputIsRunning = TRUE;
+        }
+    }
+
+
+    /* Create timer that will wake us up so we can fill the DSound buffer. */
+    {
+        int resolution;
+        int framesPerWakeup = stream->framesPerDSBuffer / 4;
+        int msecPerWakeup = MSEC_PER_SECOND * framesPerWakeup / (int) stream->streamRepresentation.streamInfo.sampleRate;
+        if( msecPerWakeup < 10 ) msecPerWakeup = 10;
+        else if( msecPerWakeup > 100 ) msecPerWakeup = 100;
+        resolution = msecPerWakeup/4;
+        stream->timerID = timeSetEvent( msecPerWakeup, resolution, (LPTIMECALLBACK) Pa_TimerCallback,
+                                             (DWORD_PTR) stream, TIME_PERIODIC );
+    }
+    if( stream->timerID == 0 )
+    {
+        stream->isActive = 0;
+        result = paUnanticipatedHostError;
+        PA_DS_SET_LAST_DIRECTSOUND_ERROR( hr );
+        goto error;
+    }
+
+    stream->isStarted = TRUE;
+
+error:
+    return result;
+}
+
+
+/***********************************************************************************/
+static PaError StopStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+    HRESULT          hr;
+    int timeoutMsec;
+
+    stream->stopProcessing = 1;
+    /* Set timeout at 20% beyond maximum time we might wait. */
+    timeoutMsec = (int) (1200.0 * stream->framesPerDSBuffer / stream->streamRepresentation.streamInfo.sampleRate);
+    while( stream->isActive && (timeoutMsec > 0)  )
+    {
+        Sleep(10);
+        timeoutMsec -= 10;
+    }
+    if( stream->timerID != 0 )
+    {
+        timeKillEvent(stream->timerID);  /* Stop callback timer. */
+        stream->timerID = 0;
+    }
+
+
+    if( stream->bufferProcessor.outputChannelCount > 0 )
+    {
+        // Stop the buffer playback
+        if( stream->pDirectSoundOutputBuffer != NULL )
+        {
+            stream->outputIsRunning = FALSE;
+            // FIXME: what happens if IDirectSoundBuffer_Stop returns an error?
+            hr = IDirectSoundBuffer_Stop( stream->pDirectSoundOutputBuffer );
+        }
+    }
+
+    if( stream->bufferProcessor.inputChannelCount > 0 )
+    {
+        // Stop the buffer capture
+        if( stream->pDirectSoundInputBuffer != NULL )
+        {
+            // FIXME: what happens if IDirectSoundCaptureBuffer_Stop returns an error?
+            hr = IDirectSoundCaptureBuffer_Stop( stream->pDirectSoundInputBuffer );
+        }
+    }
+
+    stream->isStarted = FALSE;
+
+    return result;
+}
+
+
+/***********************************************************************************/
+static PaError AbortStream( PaStream *s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    stream->abortProcessing = 1;
+    return StopStream( s );
+}
+
+
+/***********************************************************************************/
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    return !stream->isStarted;
+}
+
+
+/***********************************************************************************/
+static PaError IsStreamActive( PaStream *s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    return stream->isActive;
+}
+
+/***********************************************************************************/
+static PaTime GetStreamTime( PaStream *s )
+{
+    /* suppress unused variable warnings */
+    (void) s;
+
+    return PaUtil_GetTime();
+}
+
+
+/***********************************************************************************/
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
+
+
+/***********************************************************************************
+    As separate stream interfaces are used for blocking and callback
+    streams, the following functions can be guaranteed to only be called
+    for blocking streams.
+*/
+
+static PaError ReadStream( PaStream* s,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return paNoError;
+}
+
+
+/***********************************************************************************/
+static PaError WriteStream( PaStream* s,
+                            const void *buffer,
+                            unsigned long frames )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return paNoError;
+}
+
+
+/***********************************************************************************/
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return 0;
+}
+
+
+/***********************************************************************************/
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaWinDsStream *stream = (PaWinDsStream*)s;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+    
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+
+    return 0;
+}
+
+#endif
+
+
diff --git a/external/portaudio2007/pa_win_ds.h b/external/portaudio2007/pa_win_ds.h
new file mode 100644
index 0000000..e658ee6
--- /dev/null
+++ b/external/portaudio2007/pa_win_ds.h
@@ -0,0 +1,100 @@
+#ifndef PA_WIN_DS_H
+#define PA_WIN_DS_H
+/*
+ * $Id:  $
+ * PortAudio Portable Real-Time Audio Library
+ * DirectSound specific extensions
+ *
+ * Copyright (c) 1999-2007 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @brief DirectSound-specific PortAudio API extension header file.
+*/
+
+
+#include "portaudio.h"
+#include "pa_win_waveformat.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+#define paWinDirectSoundUseLowLevelLatencyParameters            (0x01)
+#define paWinDirectSoundUseChannelMask                          (0x04)
+
+
+typedef struct PaWinDirectSoundStreamInfo{
+    unsigned long size;             /**< sizeof(PaWinDirectSoundStreamInfo) */
+    PaHostApiTypeId hostApiType;    /**< paDirectSound */
+    unsigned long version;          /**< 1 */
+
+    unsigned long flags;
+
+    /* low-level latency setting support
+        TODO ** NOT IMPLEMENTED **
+        These settings control the number and size of host buffers in order
+        to set latency. They will be used instead of the generic parameters
+        to Pa_OpenStream() if flags contains the paWinDirectSoundUseLowLevelLatencyParameters
+        flag.
+
+        If PaWinDirectSoundStreamInfo structures with paWinDirectSoundUseLowLevelLatencyParameters
+        are supplied for both input and output in a full duplex stream, then the
+        input and output framesPerBuffer must be the same, or the larger of the
+        two must be a multiple of the smaller, otherwise a
+        paIncompatibleHostApiSpecificStreamInfo error will be returned from
+        Pa_OpenStream().
+
+    unsigned long framesPerBuffer;
+    */
+
+    /*
+        support for WAVEFORMATEXTENSIBLE channel masks. If flags contains
+        paWinDirectSoundUseChannelMask this allows you to specify which speakers 
+        to address in a multichannel stream. Constants for channelMask
+        are specified in pa_win_waveformat.h
+
+    */
+    PaWinWaveFormatChannelMask channelMask;
+
+}PaWinDirectSoundStreamInfo;
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_WIN_DS_H */                                  
diff --git a/external/portaudio2007/pa_win_ds_dynlink.c b/external/portaudio2007/pa_win_ds_dynlink.c
new file mode 100644
index 0000000..f968653
--- /dev/null
+++ b/external/portaudio2007/pa_win_ds_dynlink.c
@@ -0,0 +1,181 @@
+/*
+ * Interface for dynamically loading directsound and providing a dummy
+ * implementation if it isn't present.
+ *
+ * Author: Ross Bencina (some portions Phil Burk & Robert Marsanyi)
+ *
+ * For PortAudio Portable Real-Time Audio Library
+ * For more information see: http://www.portaudio.com
+ * Copyright (c) 1999-2006 Phil Burk, Robert Marsanyi and Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostaip_src
+*/
+
+#undef UNICODE
+#include "pa_win_ds_dynlink.h"
+
+PaWinDsDSoundEntryPoints paWinDsDSoundEntryPoints = { 0, 0, 0, 0, 0, 0, 0 };
+
+
+static HRESULT WINAPI DummyDllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
+{
+    (void)rclsid; /* unused parameter */
+    (void)riid; /* unused parameter */
+    (void)ppv; /* unused parameter */
+    return CLASS_E_CLASSNOTAVAILABLE;
+}
+
+static HRESULT WINAPI DummyDirectSoundCreate(LPGUID lpcGuidDevice, LPDIRECTSOUND *ppDS, LPUNKNOWN pUnkOuter)
+{
+    (void)lpcGuidDevice; /* unused parameter */
+    (void)ppDS; /* unused parameter */
+    (void)pUnkOuter; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI DummyDirectSoundEnumerateW(LPDSENUMCALLBACKW lpDSEnumCallback, LPVOID lpContext)
+{
+    (void)lpDSEnumCallback; /* unused parameter */
+    (void)lpContext; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI DummyDirectSoundEnumerateA(LPDSENUMCALLBACKA lpDSEnumCallback, LPVOID lpContext)
+{
+    (void)lpDSEnumCallback; /* unused parameter */
+    (void)lpContext; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI DummyDirectSoundCaptureCreate(LPGUID lpcGUID, LPDIRECTSOUNDCAPTURE *lplpDSC, LPUNKNOWN pUnkOuter)
+{
+    (void)lpcGUID; /* unused parameter */
+    (void)lplpDSC; /* unused parameter */
+    (void)pUnkOuter; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI DummyDirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW lpDSCEnumCallback, LPVOID lpContext)
+{
+    (void)lpDSCEnumCallback; /* unused parameter */
+    (void)lpContext; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI DummyDirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA lpDSCEnumCallback, LPVOID lpContext)
+{
+    (void)lpDSCEnumCallback; /* unused parameter */
+    (void)lpContext; /* unused parameter */
+    return E_NOTIMPL;
+}
+
+
+void PaWinDs_InitializeDSoundEntryPoints(void)
+{
+    paWinDsDSoundEntryPoints.hInstance_ = LoadLibraryA("dsound.dll");
+    if( paWinDsDSoundEntryPoints.hInstance_ != NULL )
+    {
+        paWinDsDSoundEntryPoints.DllGetClassObject =
+                (HRESULT (WINAPI *)(REFCLSID, REFIID , LPVOID *))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DllGetClassObject" );
+        if( paWinDsDSoundEntryPoints.DllGetClassObject == NULL )
+            paWinDsDSoundEntryPoints.DllGetClassObject = DummyDllGetClassObject;
+
+        paWinDsDSoundEntryPoints.DirectSoundCreate =
+                (HRESULT (WINAPI *)(LPGUID, LPDIRECTSOUND *, LPUNKNOWN))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundCreate" );
+        if( paWinDsDSoundEntryPoints.DirectSoundCreate == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundCreate = DummyDirectSoundCreate;
+
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateW =
+                (HRESULT (WINAPI *)(LPDSENUMCALLBACKW, LPVOID))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundEnumerateW" );
+        if( paWinDsDSoundEntryPoints.DirectSoundEnumerateW == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundEnumerateW = DummyDirectSoundEnumerateW;
+
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateA =
+                (HRESULT (WINAPI *)(LPDSENUMCALLBACKA, LPVOID))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundEnumerateA" );
+        if( paWinDsDSoundEntryPoints.DirectSoundEnumerateA == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundEnumerateA = DummyDirectSoundEnumerateA;
+
+        paWinDsDSoundEntryPoints.DirectSoundCaptureCreate =
+                (HRESULT (WINAPI *)(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundCaptureCreate" );
+        if( paWinDsDSoundEntryPoints.DirectSoundCaptureCreate == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundCaptureCreate = DummyDirectSoundCaptureCreate;
+
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateW =
+                (HRESULT (WINAPI *)(LPDSENUMCALLBACKW, LPVOID))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundCaptureEnumerateW" );
+        if( paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateW == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateW = DummyDirectSoundCaptureEnumerateW;
+
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateA =
+                (HRESULT (WINAPI *)(LPDSENUMCALLBACKA, LPVOID))
+                GetProcAddress( paWinDsDSoundEntryPoints.hInstance_, "DirectSoundCaptureEnumerateA" );
+        if( paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateA == NULL )
+            paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateA = DummyDirectSoundCaptureEnumerateA;
+    }
+    else
+    {
+        /* initialize with dummy entry points to make live easy when ds isn't present */
+        paWinDsDSoundEntryPoints.DirectSoundCreate = DummyDirectSoundCreate;
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateW = DummyDirectSoundEnumerateW;
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateA = DummyDirectSoundEnumerateA;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureCreate = DummyDirectSoundCaptureCreate;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateW = DummyDirectSoundCaptureEnumerateW;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateA = DummyDirectSoundCaptureEnumerateA;
+    }
+}
+
+
+void PaWinDs_TerminateDSoundEntryPoints(void)
+{
+    if( paWinDsDSoundEntryPoints.hInstance_ != NULL )
+    {
+        /* ensure that we crash reliably if the entry points arent initialised */
+        paWinDsDSoundEntryPoints.DirectSoundCreate = 0;
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateW = 0;
+        paWinDsDSoundEntryPoints.DirectSoundEnumerateA = 0;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureCreate = 0;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateW = 0;
+        paWinDsDSoundEntryPoints.DirectSoundCaptureEnumerateA = 0;
+
+        FreeLibrary( paWinDsDSoundEntryPoints.hInstance_ );
+        paWinDsDSoundEntryPoints.hInstance_ = NULL;
+    }
+}
\ No newline at end of file
diff --git a/external/portaudio2007/pa_win_ds_dynlink.h b/external/portaudio2007/pa_win_ds_dynlink.h
new file mode 100644
index 0000000..11d35da
--- /dev/null
+++ b/external/portaudio2007/pa_win_ds_dynlink.h
@@ -0,0 +1,95 @@
+/*
+ * Interface for dynamically loading directsound and providing a dummy
+ * implementation if it isn't present.
+ *
+ * Author: Ross Bencina (some portions Phil Burk & Robert Marsanyi)
+ *
+ * For PortAudio Portable Real-Time Audio Library
+ * For more information see: http://www.portaudio.com
+ * Copyright (c) 1999-2006 Phil Burk, Robert Marsanyi and Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/**
+ @file
+ @ingroup hostaip_src
+*/
+
+#ifndef INCLUDED_PA_DSOUND_DYNLINK_H
+#define INCLUDED_PA_DSOUND_DYNLINK_H
+
+/* on Borland compilers, WIN32 doesn't seem to be defined by default, which
+    breaks dsound.h. Adding the define here fixes the problem. - rossb. */
+#ifdef __BORLANDC__
+#if !defined(WIN32)
+#define WIN32
+#endif
+#endif
+
+/*
+  We are only using DX3 in here, no need to polute the namespace - davidv
+*/
+#define DIRECTSOUND_VERSION 0x0300
+#include <dsound.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+typedef struct
+{
+    HINSTANCE hInstance_;
+    
+    HRESULT (WINAPI *DllGetClassObject)(REFCLSID , REFIID , LPVOID *);
+
+    HRESULT (WINAPI *DirectSoundCreate)(LPGUID, LPDIRECTSOUND *, LPUNKNOWN);
+    HRESULT (WINAPI *DirectSoundEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
+    HRESULT (WINAPI *DirectSoundEnumerateA)(LPDSENUMCALLBACKA, LPVOID);
+
+    HRESULT (WINAPI *DirectSoundCaptureCreate)(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN);
+    HRESULT (WINAPI *DirectSoundCaptureEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
+    HRESULT (WINAPI *DirectSoundCaptureEnumerateA)(LPDSENUMCALLBACKA, LPVOID);
+}PaWinDsDSoundEntryPoints;
+
+extern PaWinDsDSoundEntryPoints paWinDsDSoundEntryPoints;
+
+void PaWinDs_InitializeDSoundEntryPoints(void);
+void PaWinDs_TerminateDSoundEntryPoints(void);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* INCLUDED_PA_DSOUND_DYNLINK_H */
diff --git a/external/portaudio2007/pa_win_hostapis.c b/external/portaudio2007/pa_win_hostapis.c
new file mode 100644
index 0000000..e7524f7
--- /dev/null
+++ b/external/portaudio2007/pa_win_hostapis.c
@@ -0,0 +1,81 @@
+#ifdef _WIN32
+/*
+ * $Id: pa_win_hostapis.c 1097 2006-08-26 08:27:53Z rossb $
+ * Portable Audio I/O Library Windows initialization table
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2002 Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup win_src
+
+    Win32 host API initialization function table.
+
+    @todo Consider using PA_USE_WMME etc instead of PA_NO_WMME. This is what
+    the Unix version does, we should consider being consistent.
+*/
+
+
+#include "pa_hostapi.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaSkeleton_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaWinMme_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaWinDs_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaWinWdm_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+PaError PaWinWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+PaUtilHostApiInitializer *paHostApiInitializers[] =
+    {
+        PaSkeleton_Initialize,   // 0; just for testing
+        PaWinMme_Initialize,   // 1
+        //PaWinDs_Initialize,   // 2
+        //PaWinWdm_Initialize,   // 3
+        //PaAsio_Initialize,
+		//PaWinWasapi_Initialize,
+        0   /* NULL terminated array */
+    };
+
+int paDefaultHostApiIndex = 1;
+#endif
diff --git a/external/portaudio2007/pa_win_util.c b/external/portaudio2007/pa_win_util.c
new file mode 100644
index 0000000..1de8073
--- /dev/null
+++ b/external/portaudio2007/pa_win_util.c
@@ -0,0 +1,150 @@
+#ifdef _WIN32
+/*
+ * $Id: pa_win_util.c 1197 2007-05-04 13:07:10Z gordon_gidluck $
+ * Portable Audio I/O Library
+ * Win32 platform-specific support functions
+ *
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2000 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup win_src
+
+ Win32 platform-specific support functions.
+
+    @todo Implement workaround for QueryPerformanceCounter() skipping forward
+    bug. (see msdn kb Q274323).
+*/
+
+#undef UNICODE
+#include <windows.h>
+#include <mmsystem.h> /* for timeGetTime() */
+
+#include "pa_util.h"
+
+
+/*
+   Track memory allocations to avoid leaks.
+ */
+
+#if PA_TRACK_MEMORY
+static int numAllocations_ = 0;
+#endif
+
+
+void *PaUtil_AllocateMemory( long size )
+{
+    void *result = GlobalAlloc( GPTR, size );
+
+#if PA_TRACK_MEMORY
+    if( result != NULL ) numAllocations_ += 1;
+#endif
+    return result;
+}
+
+
+void PaUtil_FreeMemory( void *block )
+{
+    if( block != NULL )
+    {
+        GlobalFree( block );
+#if PA_TRACK_MEMORY
+        numAllocations_ -= 1;
+#endif
+
+    }
+}
+
+
+int PaUtil_CountCurrentlyAllocatedBlocks( void )
+{
+#if PA_TRACK_MEMORY
+    return numAllocations_;
+#else
+    return 0;
+#endif
+}
+
+
+void Pa_Sleep( long msec )
+{
+    Sleep( msec );
+}
+
+static int usePerformanceCounter_;
+static double secondsPerTick_;
+
+void PaUtil_InitializeClock( void )
+{
+    LARGE_INTEGER ticksPerSecond;
+
+    if( QueryPerformanceFrequency( &ticksPerSecond ) != 0 )
+    {
+        usePerformanceCounter_ = 1;
+        secondsPerTick_ = 1.0 / (double)ticksPerSecond.QuadPart;
+    }
+    else
+    {
+        usePerformanceCounter_ = 0;
+    }
+}
+
+
+double PaUtil_GetTime( void )
+{
+    LARGE_INTEGER time;
+
+    if( usePerformanceCounter_ )
+    {
+        /* FIXME:
+            according to this knowledge-base article, QueryPerformanceCounter
+            can skip forward by seconds!
+            http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q274323&
+
+            it may be better to use the rtdsc instruction using inline asm,
+            however then a method is needed to calculate a ticks/seconds ratio.
+        */
+        QueryPerformanceCounter( &time );
+        return time.QuadPart * secondsPerTick_;
+    }
+    else
+    {
+#ifndef UNDER_CE    	
+        return timeGetTime() * .001;
+#else
+        return GetTickCount() * .001;
+#endif                
+    }
+}
+#endif
diff --git a/external/portaudio2007/pa_win_waveformat.c b/external/portaudio2007/pa_win_waveformat.c
new file mode 100644
index 0000000..375ee04
--- /dev/null
+++ b/external/portaudio2007/pa_win_waveformat.c
@@ -0,0 +1,162 @@
+#ifdef _WIN32
+/*
+ * PortAudio Portable Real-Time Audio Library
+ * Windows WAVEFORMAT* data structure utilities
+ * portaudio.h should be included before this file.
+ *
+ * Copyright (c) 2007 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+#undef UNICODE
+#include <windows.h>
+#include <mmsystem.h>
+
+#include "portaudio.h"
+#include "pa_win_waveformat.h"
+
+
+#if !defined(WAVE_FORMAT_EXTENSIBLE)
+#define  WAVE_FORMAT_EXTENSIBLE         0xFFFE
+#endif
+
+#if !defined(WAVE_FORMAT_IEEE_FLOAT)
+#define  WAVE_FORMAT_IEEE_FLOAT         0x0003
+#endif
+
+static GUID pawin_ksDataFormatSubtypePcm = 
+	{ (USHORT)(WAVE_FORMAT_PCM), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 };
+
+static GUID pawin_ksDataFormatSubtypeIeeeFloat = 
+	{ (USHORT)(WAVE_FORMAT_IEEE_FLOAT), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 };
+
+
+
+void PaWin_InitializeWaveFormatEx( PaWinWaveFormat *waveFormat, 
+		int numChannels, PaSampleFormat sampleFormat, double sampleRate )
+{
+	WAVEFORMATEX *waveFormatEx = (WAVEFORMATEX*)waveFormat;
+    int bytesPerSample = Pa_GetSampleSize(sampleFormat);
+	unsigned long bytesPerFrame = numChannels * bytesPerSample;
+
+    if( sampleFormat == paFloat32 )
+        waveFormatEx->wFormatTag = WAVE_FORMAT_IEEE_FLOAT;
+    else
+        waveFormatEx->wFormatTag = WAVE_FORMAT_PCM;
+	
+	waveFormatEx->nChannels = (WORD)numChannels;
+	waveFormatEx->nSamplesPerSec = (DWORD)sampleRate;
+	waveFormatEx->nAvgBytesPerSec = waveFormatEx->nSamplesPerSec * bytesPerFrame;
+	waveFormatEx->nBlockAlign = (WORD)bytesPerFrame;
+	waveFormatEx->wBitsPerSample = bytesPerSample * 8;
+	waveFormatEx->cbSize = 0;
+}
+
+
+void PaWin_InitializeWaveFormatExtensible( PaWinWaveFormat *waveFormat, 
+		int numChannels, PaSampleFormat sampleFormat, double sampleRate,
+		PaWinWaveFormatChannelMask channelMask )
+{
+	WAVEFORMATEX *waveFormatEx = (WAVEFORMATEX*)waveFormat;
+    int bytesPerSample = Pa_GetSampleSize(sampleFormat);
+	unsigned long bytesPerFrame = numChannels * bytesPerSample;
+
+	waveFormatEx->wFormatTag = WAVE_FORMAT_EXTENSIBLE;
+	waveFormatEx->nChannels = (WORD)numChannels;
+	waveFormatEx->nSamplesPerSec = (DWORD)sampleRate;
+	waveFormatEx->nAvgBytesPerSec = waveFormatEx->nSamplesPerSec * bytesPerFrame;
+	waveFormatEx->nBlockAlign = (WORD)bytesPerFrame;
+	waveFormatEx->wBitsPerSample = bytesPerSample * 8;
+	waveFormatEx->cbSize = 22;
+
+	*((WORD*)&waveFormat->fields[PAWIN_INDEXOF_WVALIDBITSPERSAMPLE]) =
+			waveFormatEx->wBitsPerSample;
+
+	*((DWORD*)&waveFormat->fields[PAWIN_INDEXOF_DWCHANNELMASK]) = channelMask;
+			
+    if( sampleFormat == paFloat32 )
+        *((GUID*)&waveFormat->fields[PAWIN_INDEXOF_SUBFORMAT]) =
+            pawin_ksDataFormatSubtypeIeeeFloat;
+    else
+        *((GUID*)&waveFormat->fields[PAWIN_INDEXOF_SUBFORMAT]) =
+            pawin_ksDataFormatSubtypePcm;
+}
+
+
+PaWinWaveFormatChannelMask PaWin_DefaultChannelMask( int numChannels )
+{
+	switch( numChannels ){
+		case 1:
+			return PAWIN_SPEAKER_MONO;
+		case 2:
+			return PAWIN_SPEAKER_STEREO; 
+		case 3:
+            return PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_FRONT_RIGHT;
+		case 4:
+			return PAWIN_SPEAKER_QUAD;
+		case 5:
+            return PAWIN_SPEAKER_QUAD | PAWIN_SPEAKER_FRONT_CENTER;
+		case 6:
+            /* The meaning of the PAWIN_SPEAKER_5POINT1 flag has changed over time:
+                http://msdn2.microsoft.com/en-us/library/aa474707.aspx
+               We use PAWIN_SPEAKER_5POINT1 (not PAWIN_SPEAKER_5POINT1_SURROUND)
+               because on some cards (eg Audigy) PAWIN_SPEAKER_5POINT1_SURROUND 
+               results in a virtual mixdown placing the rear output in the 
+               front _and_ rear speakers.
+            */
+			return PAWIN_SPEAKER_5POINT1; 
+        /* case 7: */
+		case 8:
+			return PAWIN_SPEAKER_7POINT1;
+	}
+
+    /* Apparently some Audigy drivers will output silence 
+       if the direct-out constant (0) is used. So this is not ideal.    
+    */
+	return  PAWIN_SPEAKER_DIRECTOUT;
+
+    /* Note that Alec Rogers proposed the following as an alternate method to 
+        generate the default channel mask, however it doesn't seem to be an improvement
+        over the above, since some drivers will matrix outputs mapping to non-present
+        speakers accross multiple physical speakers.
+
+        if(nChannels==1) {
+            pwfFormat->dwChannelMask = SPEAKER_FRONT_CENTER;
+        }
+        else {
+            pwfFormat->dwChannelMask = 0;
+            for(i=0; i<nChannels; i++)
+                pwfFormat->dwChannelMask = (pwfFormat->dwChannelMask << 1) | 0x1;
+        }
+    */
+}
+#endif
diff --git a/external/portaudio2007/pa_win_waveformat.h b/external/portaudio2007/pa_win_waveformat.h
new file mode 100644
index 0000000..46ce9cc
--- /dev/null
+++ b/external/portaudio2007/pa_win_waveformat.h
@@ -0,0 +1,180 @@
+#ifndef PA_WIN_WAVEFORMAT_H
+#define PA_WIN_WAVEFORMAT_H
+
+/*
+ * PortAudio Portable Real-Time Audio Library
+ * Windows WAVEFORMAT* data structure utilities
+ * portaudio.h should be included before this file.
+ *
+ * Copyright (c) 2007 Ross Bencina
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @brief Windows specific PortAudio API extension and utilities header file.
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+	The following #defines for speaker channel masks are the same
+	as those in ksmedia.h, except with PAWIN_ prepended, KSAUDIO_ removed
+	in some cases, and casts to PaWinWaveFormatChannelMask added.
+*/
+
+typedef unsigned long PaWinWaveFormatChannelMask;
+
+/* Speaker Positions: */
+#define PAWIN_SPEAKER_FRONT_LEFT				((PaWinWaveFormatChannelMask)0x1)
+#define PAWIN_SPEAKER_FRONT_RIGHT				((PaWinWaveFormatChannelMask)0x2)
+#define PAWIN_SPEAKER_FRONT_CENTER				((PaWinWaveFormatChannelMask)0x4)
+#define PAWIN_SPEAKER_LOW_FREQUENCY				((PaWinWaveFormatChannelMask)0x8)
+#define PAWIN_SPEAKER_BACK_LEFT					((PaWinWaveFormatChannelMask)0x10)
+#define PAWIN_SPEAKER_BACK_RIGHT				((PaWinWaveFormatChannelMask)0x20)
+#define PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER		((PaWinWaveFormatChannelMask)0x40)
+#define PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER		((PaWinWaveFormatChannelMask)0x80)
+#define PAWIN_SPEAKER_BACK_CENTER				((PaWinWaveFormatChannelMask)0x100)
+#define PAWIN_SPEAKER_SIDE_LEFT					((PaWinWaveFormatChannelMask)0x200)
+#define PAWIN_SPEAKER_SIDE_RIGHT				((PaWinWaveFormatChannelMask)0x400)
+#define PAWIN_SPEAKER_TOP_CENTER				((PaWinWaveFormatChannelMask)0x800)
+#define PAWIN_SPEAKER_TOP_FRONT_LEFT			((PaWinWaveFormatChannelMask)0x1000)
+#define PAWIN_SPEAKER_TOP_FRONT_CENTER			((PaWinWaveFormatChannelMask)0x2000)
+#define PAWIN_SPEAKER_TOP_FRONT_RIGHT			((PaWinWaveFormatChannelMask)0x4000)
+#define PAWIN_SPEAKER_TOP_BACK_LEFT				((PaWinWaveFormatChannelMask)0x8000)
+#define PAWIN_SPEAKER_TOP_BACK_CENTER			((PaWinWaveFormatChannelMask)0x10000)
+#define PAWIN_SPEAKER_TOP_BACK_RIGHT			((PaWinWaveFormatChannelMask)0x20000)
+
+/* Bit mask locations reserved for future use */
+#define PAWIN_SPEAKER_RESERVED					((PaWinWaveFormatChannelMask)0x7FFC0000)
+
+/* Used to specify that any possible permutation of speaker configurations */
+#define PAWIN_SPEAKER_ALL						((PaWinWaveFormatChannelMask)0x80000000)
+
+/* DirectSound Speaker Config */
+#define PAWIN_SPEAKER_DIRECTOUT					0
+#define PAWIN_SPEAKER_MONO						(PAWIN_SPEAKER_FRONT_CENTER)
+#define PAWIN_SPEAKER_STEREO					(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT)
+#define PAWIN_SPEAKER_QUAD						(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_BACK_LEFT  | PAWIN_SPEAKER_BACK_RIGHT)
+#define PAWIN_SPEAKER_SURROUND					(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_BACK_CENTER)
+#define PAWIN_SPEAKER_5POINT1					(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
+												PAWIN_SPEAKER_BACK_LEFT  | PAWIN_SPEAKER_BACK_RIGHT)
+#define PAWIN_SPEAKER_7POINT1					(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
+												PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
+												PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER | PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER)
+#define PAWIN_SPEAKER_5POINT1_SURROUND			(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
+												PAWIN_SPEAKER_SIDE_LEFT  | PAWIN_SPEAKER_SIDE_RIGHT)
+#define PAWIN_SPEAKER_7POINT1_SURROUND			(PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
+												PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
+												PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
+												PAWIN_SPEAKER_SIDE_LEFT | PAWIN_SPEAKER_SIDE_RIGHT)
+/*
+ According to the Microsoft documentation:
+ The following are obsolete 5.1 and 7.1 settings (they lack side speakers).  Note this means
+ that the default 5.1 and 7.1 settings (KSAUDIO_SPEAKER_5POINT1 and KSAUDIO_SPEAKER_7POINT1 are
+ similarly obsolete but are unchanged for compatibility reasons).
+*/
+#define PAWIN_SPEAKER_5POINT1_BACK				PAWIN_SPEAKER_5POINT1
+#define PAWIN_SPEAKER_7POINT1_WIDE				PAWIN_SPEAKER_7POINT1
+
+/* DVD Speaker Positions */
+#define PAWIN_SPEAKER_GROUND_FRONT_LEFT			PAWIN_SPEAKER_FRONT_LEFT
+#define PAWIN_SPEAKER_GROUND_FRONT_CENTER		PAWIN_SPEAKER_FRONT_CENTER
+#define PAWIN_SPEAKER_GROUND_FRONT_RIGHT		PAWIN_SPEAKER_FRONT_RIGHT
+#define PAWIN_SPEAKER_GROUND_REAR_LEFT			PAWIN_SPEAKER_BACK_LEFT
+#define PAWIN_SPEAKER_GROUND_REAR_RIGHT			PAWIN_SPEAKER_BACK_RIGHT
+#define PAWIN_SPEAKER_TOP_MIDDLE				PAWIN_SPEAKER_TOP_CENTER
+#define PAWIN_SPEAKER_SUPER_WOOFER				PAWIN_SPEAKER_LOW_FREQUENCY
+
+
+/*
+	PaWinWaveFormat is defined here to provide compatibility with
+	compilation environments which don't have headers defining 
+	WAVEFORMATEXTENSIBLE (e.g. older versions of MSVC, Borland C++ etc.
+
+	The fields for WAVEFORMATEX and WAVEFORMATEXTENSIBLE are declared as an
+    unsigned char array here to avoid clients who include this file having 
+    a dependency on windows.h and mmsystem.h, and also to to avoid having
+    to write separate packing pragmas for each compiler.
+*/
+#define PAWIN_SIZEOF_WAVEFORMATEX   18
+#define PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE (PAWIN_SIZEOF_WAVEFORMATEX + 22)
+
+typedef struct{
+    unsigned char fields[ PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE ];
+    unsigned long extraLongForAlignment; /* ensure that compiler aligns struct to DWORD */ 
+} PaWinWaveFormat;
+
+/*
+    WAVEFORMATEXTENSIBLE fields:
+    
+    union  {
+	    WORD  wValidBitsPerSample;    
+	    WORD  wSamplesPerBlock;    
+	    WORD  wReserved;  
+    } Samples;
+    DWORD  dwChannelMask;  
+    GUID  SubFormat;
+*/
+
+#define PAWIN_INDEXOF_WVALIDBITSPERSAMPLE	(PAWIN_SIZEOF_WAVEFORMATEX+0)
+#define PAWIN_INDEXOF_DWCHANNELMASK			(PAWIN_SIZEOF_WAVEFORMATEX+2)
+#define PAWIN_INDEXOF_SUBFORMAT				(PAWIN_SIZEOF_WAVEFORMATEX+6)
+
+/*
+	Use the following two functions to initialize the waveformat structure.
+*/
+
+void PaWin_InitializeWaveFormatEx( PaWinWaveFormat *waveFormat, 
+		int numChannels, PaSampleFormat sampleFormat, double sampleRate );
+
+
+void PaWin_InitializeWaveFormatExtensible( PaWinWaveFormat *waveFormat, 
+		int numChannels, PaSampleFormat sampleFormat, double sampleRate,
+	    PaWinWaveFormatChannelMask channelMask );
+
+
+/* Map a channel count to a speaker channel mask */
+PaWinWaveFormatChannelMask PaWin_DefaultChannelMask( int numChannels );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_WIN_WAVEFORMAT_H */
\ No newline at end of file
diff --git a/external/portaudio2007/pa_win_wdmks.c b/external/portaudio2007/pa_win_wdmks.c
new file mode 100644
index 0000000..b72daa3
--- /dev/null
+++ b/external/portaudio2007/pa_win_wdmks.c
@@ -0,0 +1,3300 @@
+/*
+ * $Id: pa_win_wdmks.c 1263 2007-08-27 22:59:09Z rossb $
+ * PortAudio Windows WDM-KS interface
+ *
+ * Author: Andrew Baldwin
+ * Based on the Open Source API proposed by Ross Bencina
+ * Copyright (c) 1999-2004 Andrew Baldwin, Ross Bencina, Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @ingroup hostaip_src
+ @brief Portaudio WDM-KS host API.
+
+ @note This is the implementation of the Portaudio host API using the
+ Windows WDM/Kernel Streaming API in order to enable very low latency
+ playback and recording on all modern Windows platforms (e.g. 2K, XP)
+ Note: This API accesses the device drivers below the usual KMIXER
+ component which is normally used to enable multi-client mixing and
+ format conversion. That means that it will lock out all other users
+ of a device for the duration of active stream using those devices
+*/
+
+#include <stdio.h>
+
+/* Debugging/tracing support */
+
+#define PA_LOGE_
+#define PA_LOGL_
+
+#ifdef __GNUC__
+    #include <initguid.h>
+    #define _WIN32_WINNT 0x0501
+    #define WINVER 0x0501
+#endif
+
+#include <string.h> /* strlen() */
+#include <assert.h>
+
+#include "pa_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "portaudio.h"
+#include "pa_debugprint.h"
+
+#include <windows.h>
+#include <winioctl.h>
+
+// ppgb 20080707:
+    #define _INC_MMSYSTEM
+#define _INC_MMREG
+    #define DYNAMIC_GUID_THUNK(l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+    #define DYNAMIC_GUID(data) DYNAMIC_GUID_THUNK(data)
+    #define _NTRTL_ /* Turn off default definition of DEFINE_GUIDEX */
+    #define DEFINE_GUID_THUNK(name,guid) DEFINE_GUID(name,guid)
+    #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK( n, STATIC_##n )
+    #if !defined( DEFINE_WAVEFORMATEX_GUID )
+        #define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+    #endif
+    #define  WAVE_FORMAT_ADPCM      0x0002
+    #define  WAVE_FORMAT_IEEE_FLOAT 0x0003
+    #define  WAVE_FORMAT_ALAW       0x0006
+    #define  WAVE_FORMAT_MULAW      0x0007
+    #define  WAVE_FORMAT_MPEG       0x0050
+    #define  WAVE_FORMAT_DRM        0x0009
+
+#ifdef __GNUC__
+    #undef PA_LOGE_
+    #define PA_LOGE_ PA_DEBUG(("%s {\n",__FUNCTION__))
+    #undef PA_LOGL_
+    #define PA_LOGL_ PA_DEBUG(("} %s\n",__FUNCTION__))
+    /* These defines are set in order to allow the WIndows DirectX
+     * headers to compile with a GCC compiler such as MinGW
+     * NOTE: The headers may generate a few warning in GCC, but
+     * they should compile */
+    #define _INC_MMSYSTEM
+    #define _INC_MMREG
+    #define _NTRTL_ /* Turn off default definition of DEFINE_GUIDEX */
+    #define DEFINE_GUID_THUNK(name,guid) DEFINE_GUID(name,guid)
+    #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK( n, STATIC_##n )
+    #if !defined( DEFINE_WAVEFORMATEX_GUID )
+        #define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+    #endif
+    #define  WAVE_FORMAT_ADPCM      0x0002
+    #define  WAVE_FORMAT_IEEE_FLOAT 0x0003
+    #define  WAVE_FORMAT_ALAW       0x0006
+    #define  WAVE_FORMAT_MULAW      0x0007
+    #define  WAVE_FORMAT_MPEG       0x0050
+    #define  WAVE_FORMAT_DRM        0x0009
+    #define DYNAMIC_GUID_THUNK(l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+    #define DYNAMIC_GUID(data) DYNAMIC_GUID_THUNK(data)
+#endif
+
+#ifdef _MSC_VER
+    #define DYNAMIC_GUID(data) {data}
+    #define _INC_MMREG
+    #define _NTRTL_ /* Turn off default definition of DEFINE_GUIDEX */
+    #undef DEFINE_GUID
+    #define DEFINE_GUID(n,data) EXTERN_C const GUID n = {data}
+    #define DEFINE_GUID_THUNK(n,data) DEFINE_GUID(n,data)
+    #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK(n, STATIC_##n)
+    #if !defined( DEFINE_WAVEFORMATEX_GUID )
+        #define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+    #endif
+    #define  WAVE_FORMAT_ADPCM      0x0002
+    #define  WAVE_FORMAT_IEEE_FLOAT 0x0003
+    #define  WAVE_FORMAT_ALAW       0x0006
+    #define  WAVE_FORMAT_MULAW      0x0007
+    #define  WAVE_FORMAT_MPEG       0x0050
+    #define  WAVE_FORMAT_DRM        0x0009
+#endif
+
+#include <ks.h>
+#include <ksmedia.h>
+#include <tchar.h>
+#include <assert.h>
+#include <stdio.h>
+
+/* These next definitions allow the use of the KSUSER DLL */
+typedef /*KSDDKAPI ppgb 20080707*/ DWORD WINAPI KSCREATEPIN(HANDLE, PKSPIN_CONNECT, ACCESS_MASK, PHANDLE);
+extern HMODULE      DllKsUser;
+extern KSCREATEPIN* FunctionKsCreatePin;
+
+/* Forward definition to break circular type reference between pin and filter */
+struct __PaWinWdmFilter;
+typedef struct __PaWinWdmFilter PaWinWdmFilter;
+
+/* The Pin structure
+ * A pin is an input or output node, e.g. for audio flow */
+typedef struct __PaWinWdmPin
+{
+    HANDLE                      handle;
+    PaWinWdmFilter*             parentFilter;
+    unsigned long               pinId;
+    KSPIN_CONNECT*              pinConnect;
+    unsigned long               pinConnectSize;
+    KSDATAFORMAT_WAVEFORMATEX*  ksDataFormatWfx;
+    KSPIN_COMMUNICATION         communication;
+    KSDATARANGE*                dataRanges;
+    KSMULTIPLE_ITEM*            dataRangesItem;
+    KSPIN_DATAFLOW              dataFlow;
+    KSPIN_CINSTANCES            instances;
+    unsigned long               frameSize;
+    int                         maxChannels;
+    unsigned long               formats;
+    int                         bestSampleRate;
+}
+PaWinWdmPin;
+
+/* The Filter structure
+ * A filter has a number of pins and a "friendly name" */
+struct __PaWinWdmFilter
+{
+    HANDLE         handle;
+    int            pinCount;
+    PaWinWdmPin**  pins;
+    TCHAR          filterName[MAX_PATH];
+    TCHAR          friendlyName[MAX_PATH];
+    int            maxInputChannels;
+    int            maxOutputChannels;
+    unsigned long  formats;
+    int            usageCount;
+    int            bestSampleRate;
+};
+
+/* PaWinWdmHostApiRepresentation - host api datastructure specific to this implementation */
+typedef struct __PaWinWdmHostApiRepresentation
+{
+    PaUtilHostApiRepresentation  inheritedHostApiRep;
+    PaUtilStreamInterface        callbackStreamInterface;
+    PaUtilStreamInterface        blockingStreamInterface;
+
+    PaUtilAllocationGroup*       allocations;
+    PaWinWdmFilter**             filters;
+    int                          filterCount;
+}
+PaWinWdmHostApiRepresentation;
+
+typedef struct __PaWinWdmDeviceInfo
+{
+    PaDeviceInfo     inheritedDeviceInfo;
+    PaWinWdmFilter*  filter;
+}
+PaWinWdmDeviceInfo;
+
+typedef struct __DATAPACKET
+{
+    KSSTREAM_HEADER  Header;
+    OVERLAPPED       Signal;
+} DATAPACKET;
+
+/* PaWinWdmStream - a stream data structure specifically for this implementation */
+typedef struct __PaWinWdmStream
+{
+    PaUtilStreamRepresentation  streamRepresentation;
+    PaUtilCpuLoadMeasurer       cpuLoadMeasurer;
+    PaUtilBufferProcessor       bufferProcessor;
+
+    PaWinWdmPin*                recordingPin;
+    PaWinWdmPin*                playbackPin;
+    char*                       hostBuffer;
+    unsigned long               framesPerHostIBuffer;
+    unsigned long               framesPerHostOBuffer;
+    int                         bytesPerInputFrame;
+    int                         bytesPerOutputFrame;
+    int                         streamStarted;
+    int                         streamActive;
+    int                         streamStop;
+    int                         streamAbort;
+    int                         oldProcessPriority;
+    HANDLE                      streamThread;
+    HANDLE                      events[5];  /* 2 play + 2 record packets + abort events */
+    DATAPACKET                  packets[4]; /* 2 play + 2 record */
+    PaStreamFlags               streamFlags;
+    /* These values handle the case where the user wants to use fewer
+     * channels than the device has */
+    int                         userInputChannels;
+    int                         deviceInputChannels;
+    int                         userOutputChannels;
+    int                         deviceOutputChannels;
+    int                         inputSampleSize;
+    int                         outputSampleSize;
+}
+PaWinWdmStream;
+
+#include <setupapi.h>
+
+HMODULE      DllKsUser = NULL;
+KSCREATEPIN* FunctionKsCreatePin = NULL;
+
+/* prototypes for functions declared in this file */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaWinWdm_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+/* Low level I/O functions */
+static PaError WdmSyncIoctl(HANDLE handle,
+    unsigned long ioctlNumber,
+    void* inBuffer,
+    unsigned long inBufferCount,
+    void* outBuffer,
+    unsigned long outBufferCount,
+    unsigned long* bytesReturned);
+static PaError WdmGetPropertySimple(HANDLE handle,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount,
+    void* instance,
+    unsigned long instanceCount);
+static PaError WdmSetPropertySimple(HANDLE handle,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount,
+    void* instance,
+    unsigned long instanceCount);
+static PaError WdmGetPinPropertySimple(HANDLE  handle,
+    unsigned long pinId,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount);
+static PaError WdmGetPinPropertyMulti(HANDLE  handle,
+    unsigned long pinId,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    KSMULTIPLE_ITEM** ksMultipleItem);
+
+/** Pin management functions */
+static PaWinWdmPin* PinNew(PaWinWdmFilter* parentFilter, unsigned long pinId, PaError* error);
+static void PinFree(PaWinWdmPin* pin);
+static void PinClose(PaWinWdmPin* pin);
+static PaError PinInstantiate(PaWinWdmPin* pin);
+/*static PaError PinGetState(PaWinWdmPin* pin, KSSTATE* state); NOT USED */
+static PaError PinSetState(PaWinWdmPin* pin, KSSTATE state);
+static PaError PinSetFormat(PaWinWdmPin* pin, const WAVEFORMATEX* format);
+static PaError PinIsFormatSupported(PaWinWdmPin* pin, const WAVEFORMATEX* format);
+
+/* Filter management functions */
+static PaWinWdmFilter* FilterNew(
+    TCHAR* filterName,
+    TCHAR* friendlyName,
+    PaError* error);
+static void FilterFree(PaWinWdmFilter* filter);
+static PaWinWdmPin* FilterCreateRenderPin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error);
+static PaWinWdmPin* FilterFindViableRenderPin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error);
+static PaError FilterCanCreateRenderPin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex);
+static PaWinWdmPin* FilterCreateCapturePin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error);
+static PaWinWdmPin* FilterFindViableCapturePin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error);
+static PaError FilterCanCreateCapturePin(
+    PaWinWdmFilter* filter,
+    const WAVEFORMATEX* pwfx);
+static PaError FilterUse(
+    PaWinWdmFilter* filter);
+static void FilterRelease(
+    PaWinWdmFilter* filter);
+
+/* Interface functions */
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError IsFormatSupported(
+    struct PaUtilHostApiRepresentation *hostApi,
+    const PaStreamParameters *inputParameters,
+    const PaStreamParameters *outputParameters,
+    double sampleRate );
+static PaError OpenStream(
+    struct PaUtilHostApiRepresentation *hostApi,
+    PaStream** s,
+    const PaStreamParameters *inputParameters,
+    const PaStreamParameters *outputParameters,
+    double sampleRate,
+    unsigned long framesPerBuffer,
+    PaStreamFlags streamFlags,
+    PaStreamCallback *streamCallback,
+    void *userData );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError ReadStream(
+    PaStream* stream,
+    void *buffer,
+    unsigned long frames );
+static PaError WriteStream(
+    PaStream* stream,
+    const void *buffer,
+    unsigned long frames );
+static signed long GetStreamReadAvailable( PaStream* stream );
+static signed long GetStreamWriteAvailable( PaStream* stream );
+
+/* Utility functions */
+static unsigned long GetWfexSize(const WAVEFORMATEX* wfex);
+static PaError BuildFilterList(PaWinWdmHostApiRepresentation* wdmHostApi);
+static BOOL PinWrite(HANDLE h, DATAPACKET* p);
+static BOOL PinRead(HANDLE h, DATAPACKET* p);
+static void DuplicateFirstChannelInt16(void* buffer, int channels, int samples);
+static void DuplicateFirstChannelInt24(void* buffer, int channels, int samples);
+static DWORD WINAPI ProcessingThread(LPVOID pParam);
+
+/* Function bodies */
+
+static unsigned long GetWfexSize(const WAVEFORMATEX* wfex)
+{
+    if( wfex->wFormatTag == WAVE_FORMAT_PCM )
+    {
+        return sizeof( WAVEFORMATEX );
+    }
+    else
+    {
+        return (sizeof( WAVEFORMATEX ) + wfex->cbSize);
+    }
+}
+
+/*
+Low level pin/filter access functions
+*/
+static PaError WdmSyncIoctl(
+    HANDLE handle,
+    unsigned long ioctlNumber,
+    void* inBuffer,
+    unsigned long inBufferCount,
+    void* outBuffer,
+    unsigned long outBufferCount,
+    unsigned long* bytesReturned)
+{
+    PaError result = paNoError;
+    OVERLAPPED overlapped;
+    int boolResult;
+    unsigned long dummyBytesReturned;
+    unsigned long error;
+
+    if( !bytesReturned )
+    {
+        /* User a dummy as the caller hasn't supplied one */
+        bytesReturned = &dummyBytesReturned;
+    }
+
+    FillMemory((void *)&overlapped,sizeof(overlapped),0);
+    overlapped.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
+    if( !overlapped.hEvent )
+    {
+          result = paInsufficientMemory;
+        goto error;
+    }
+    overlapped.hEvent = (HANDLE)((DWORD_PTR)overlapped.hEvent | 0x1);
+
+    boolResult = DeviceIoControl(handle, ioctlNumber, inBuffer, inBufferCount,
+        outBuffer, outBufferCount, bytesReturned, &overlapped);
+    if( !boolResult )
+    {
+        error = GetLastError();
+        if( error == ERROR_IO_PENDING )
+        {
+            error = WaitForSingleObject(overlapped.hEvent,INFINITE);
+            if( error != WAIT_OBJECT_0 )
+            {
+                result = paUnanticipatedHostError;
+                goto error;
+            }
+        }
+        else if((( error == ERROR_INSUFFICIENT_BUFFER ) ||
+                  ( error == ERROR_MORE_DATA )) &&
+                  ( ioctlNumber == IOCTL_KS_PROPERTY ) &&
+                  ( outBufferCount == 0 ))
+        {
+            boolResult = TRUE;
+        }
+        else
+        {
+            result = paUnanticipatedHostError;
+        }
+    }
+    if( !boolResult )
+        *bytesReturned = 0;
+
+error:
+    if( overlapped.hEvent )
+    {
+            CloseHandle( overlapped.hEvent );
+    }
+    return result;
+}
+
+static PaError WdmGetPropertySimple(HANDLE handle,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount,
+    void* instance,
+    unsigned long instanceCount)
+{
+    PaError result;
+    KSPROPERTY* ksProperty;
+    unsigned long propertyCount;
+
+    propertyCount = sizeof(KSPROPERTY) + instanceCount;
+    ksProperty = (KSPROPERTY*)PaUtil_AllocateMemory( propertyCount );
+    if( !ksProperty )
+    {
+        return paInsufficientMemory;
+    }
+
+    FillMemory((void*)ksProperty,sizeof(ksProperty),0);
+    ksProperty->Set = *guidPropertySet;
+    ksProperty->Id = property;
+    ksProperty->Flags = KSPROPERTY_TYPE_GET;
+
+    if( instance )
+    {
+        memcpy( (void*)(((char*)ksProperty)+sizeof(KSPROPERTY)), instance, instanceCount );
+    }
+
+    result = WdmSyncIoctl(
+                handle,
+                IOCTL_KS_PROPERTY,
+                ksProperty,
+                propertyCount,
+                value,
+                valueCount,
+                NULL);
+
+    PaUtil_FreeMemory( ksProperty );
+    return result;
+}
+
+static PaError WdmSetPropertySimple(
+    HANDLE handle,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount,
+    void* instance,
+    unsigned long instanceCount)
+{
+    PaError result;
+    KSPROPERTY* ksProperty;
+    unsigned long propertyCount  = 0;
+
+    propertyCount = sizeof(KSPROPERTY) + instanceCount;
+    ksProperty = (KSPROPERTY*)PaUtil_AllocateMemory( propertyCount );
+    if( !ksProperty )
+    {
+        return paInsufficientMemory;
+    }
+
+    ksProperty->Set = *guidPropertySet;
+    ksProperty->Id = property;
+    ksProperty->Flags = KSPROPERTY_TYPE_SET;
+
+    if( instance )
+    {
+        memcpy((void*)((char*)ksProperty + sizeof(KSPROPERTY)), instance, instanceCount);
+    }
+
+    result = WdmSyncIoctl(
+                handle,
+                IOCTL_KS_PROPERTY,
+                ksProperty,
+                propertyCount,
+                value,
+                valueCount,
+                NULL);
+
+    PaUtil_FreeMemory( ksProperty );
+    return result;
+}
+
+static PaError WdmGetPinPropertySimple(
+    HANDLE  handle,
+    unsigned long pinId,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    void* value,
+    unsigned long valueCount)
+{
+    PaError result;
+
+    KSP_PIN ksPProp;
+    ksPProp.Property.Set = *guidPropertySet;
+    ksPProp.Property.Id = property;
+    ksPProp.Property.Flags = KSPROPERTY_TYPE_GET;
+    ksPProp.PinId = pinId;
+    ksPProp.Reserved = 0;
+
+    result = WdmSyncIoctl(
+                handle,
+                IOCTL_KS_PROPERTY,
+                &ksPProp,
+                sizeof(KSP_PIN),
+                value,
+                valueCount,
+                NULL);
+
+    return result;
+}
+
+static PaError WdmGetPinPropertyMulti(
+    HANDLE handle,
+    unsigned long pinId,
+    const GUID* const guidPropertySet,
+    unsigned long property,
+    KSMULTIPLE_ITEM** ksMultipleItem)
+{
+    PaError result;
+    unsigned long multipleItemSize = 0;
+    KSP_PIN ksPProp;
+
+    ksPProp.Property.Set = *guidPropertySet;
+    ksPProp.Property.Id = property;
+    ksPProp.Property.Flags = KSPROPERTY_TYPE_GET;
+    ksPProp.PinId = pinId;
+    ksPProp.Reserved = 0;
+
+    result = WdmSyncIoctl(
+                handle,
+                IOCTL_KS_PROPERTY,
+                &ksPProp.Property,
+                sizeof(KSP_PIN),
+                NULL,
+                0,
+                &multipleItemSize);
+    if( result != paNoError )
+    {
+        return result;
+    }
+
+    *ksMultipleItem = (KSMULTIPLE_ITEM*)PaUtil_AllocateMemory( multipleItemSize );
+    if( !*ksMultipleItem )
+    {
+        return paInsufficientMemory;
+    }
+
+    result = WdmSyncIoctl(
+                handle,
+                IOCTL_KS_PROPERTY,
+                &ksPProp,
+                sizeof(KSP_PIN),
+                (void*)*ksMultipleItem,
+                multipleItemSize,
+                NULL);
+
+    if( result != paNoError )
+    {
+        PaUtil_FreeMemory( ksMultipleItem );
+    }
+
+    return result;
+}
+
+
+/*
+Create a new pin object belonging to a filter
+The pin object holds all the configuration information about the pin
+before it is opened, and then the handle of the pin after is opened
+*/
+static PaWinWdmPin* PinNew(PaWinWdmFilter* parentFilter, unsigned long pinId, PaError* error)
+{
+    PaWinWdmPin* pin;
+    PaError result;
+    unsigned long i;
+    KSMULTIPLE_ITEM* item = NULL;
+    KSIDENTIFIER* identifier;
+    KSDATARANGE* dataRange;
+
+    PA_LOGE_;
+    PA_DEBUG(("Creating pin %d:\n",pinId));
+
+    /* Allocate the new PIN object */
+    pin = (PaWinWdmPin*)PaUtil_AllocateMemory( sizeof(PaWinWdmPin) );
+    if( !pin )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    /* Zero the pin object */
+    /* memset( (void*)pin, 0, sizeof(PaWinWdmPin) ); */
+
+    pin->parentFilter = parentFilter;
+    pin->pinId = pinId;
+
+    /* Allocate a connect structure */
+    pin->pinConnectSize = sizeof(KSPIN_CONNECT) + sizeof(KSDATAFORMAT_WAVEFORMATEX);
+    pin->pinConnect = (KSPIN_CONNECT*)PaUtil_AllocateMemory( pin->pinConnectSize );
+    if( !pin->pinConnect )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    /* Configure the connect structure with default values */
+    pin->pinConnect->Interface.Set               = KSINTERFACESETID_Standard;
+    pin->pinConnect->Interface.Id                = KSINTERFACE_STANDARD_STREAMING;
+    pin->pinConnect->Interface.Flags             = 0;
+    pin->pinConnect->Medium.Set                  = KSMEDIUMSETID_Standard;
+    pin->pinConnect->Medium.Id                   = KSMEDIUM_TYPE_ANYINSTANCE;
+    pin->pinConnect->Medium.Flags                = 0;
+    pin->pinConnect->PinId                       = pinId;
+    pin->pinConnect->PinToHandle                 = NULL;
+    pin->pinConnect->Priority.PriorityClass      = KSPRIORITY_NORMAL;
+    pin->pinConnect->Priority.PrioritySubClass   = 1;
+    pin->ksDataFormatWfx = (KSDATAFORMAT_WAVEFORMATEX*)(pin->pinConnect + 1);
+    pin->ksDataFormatWfx->DataFormat.FormatSize  = sizeof(KSDATAFORMAT_WAVEFORMATEX);
+    pin->ksDataFormatWfx->DataFormat.Flags       = 0;
+    pin->ksDataFormatWfx->DataFormat.Reserved    = 0;
+    pin->ksDataFormatWfx->DataFormat.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
+    pin->ksDataFormatWfx->DataFormat.SubFormat   = KSDATAFORMAT_SUBTYPE_PCM;
+    pin->ksDataFormatWfx->DataFormat.Specifier   = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
+
+    pin->frameSize = 0; /* Unknown until we instantiate pin */
+
+    /* Get the COMMUNICATION property */
+    result = WdmGetPinPropertySimple(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_COMMUNICATION,
+        &pin->communication,
+        sizeof(KSPIN_COMMUNICATION));
+    if( result != paNoError )
+        goto error;
+
+    if( /*(pin->communication != KSPIN_COMMUNICATION_SOURCE) &&*/
+         (pin->communication != KSPIN_COMMUNICATION_SINK) &&
+         (pin->communication != KSPIN_COMMUNICATION_BOTH) )
+    {
+        PA_DEBUG(("Not source/sink\n"));
+        result = paInvalidDevice;
+        goto error;
+    }
+
+    /* Get dataflow information */
+    result = WdmGetPinPropertySimple(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_DATAFLOW,
+        &pin->dataFlow,
+        sizeof(KSPIN_DATAFLOW));
+
+    if( result != paNoError )
+        goto error;
+
+    /* Get the INTERFACE property list */
+    result = WdmGetPinPropertyMulti(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_INTERFACES,
+        &item);
+
+    if( result != paNoError )
+        goto error;
+
+    identifier = (KSIDENTIFIER*)(item+1);
+
+    /* Check that at least one interface is STANDARD_STREAMING */
+    result = paUnanticipatedHostError;
+    for( i = 0; i < item->Count; i++ )
+    {
+        if( !memcmp( (void*)&identifier[i].Set, (void*)&KSINTERFACESETID_Standard, sizeof( GUID ) ) &&
+            ( identifier[i].Id == KSINTERFACE_STANDARD_STREAMING ) )
+        {
+            result = paNoError;
+            break;
+        }
+    }
+
+    if( result != paNoError )
+    {
+        PA_DEBUG(("No standard streaming\n"));
+        goto error;
+    }
+
+    /* Don't need interfaces any more */
+    PaUtil_FreeMemory( item );
+    item = NULL;
+
+    /* Get the MEDIUM properties list */
+    result = WdmGetPinPropertyMulti(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_MEDIUMS,
+        &item);
+
+    if( result != paNoError )
+        goto error;
+
+    identifier = (KSIDENTIFIER*)(item+1); /* Not actually necessary... */
+
+    /* Check that at least one medium is STANDARD_DEVIO */
+    result = paUnanticipatedHostError;
+    for( i = 0; i < item->Count; i++ )
+    {
+        if( !memcmp( (void*)&identifier[i].Set, (void*)&KSMEDIUMSETID_Standard, sizeof( GUID ) ) &&
+           ( identifier[i].Id == KSMEDIUM_STANDARD_DEVIO ) )
+        {
+            result = paNoError;
+            break;
+        }
+    }
+
+    if( result != paNoError )
+    {
+        PA_DEBUG(("No standard devio\n"));
+        goto error;
+    }
+    /* Don't need mediums any more */
+    PaUtil_FreeMemory( item );
+    item = NULL;
+
+    /* Get DATARANGES */
+    result = WdmGetPinPropertyMulti(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_DATARANGES,
+        &pin->dataRangesItem);
+
+    if( result != paNoError )
+        goto error;
+
+    pin->dataRanges = (KSDATARANGE*)(pin->dataRangesItem +1);
+
+    /* Check that at least one datarange supports audio */
+    result = paUnanticipatedHostError;
+    dataRange = pin->dataRanges;
+    pin->maxChannels = 0;
+    pin->bestSampleRate = 0;
+    pin->formats = 0;
+    for( i = 0; i <pin->dataRangesItem->Count; i++)
+    {
+        PA_DEBUG(("DR major format %x\n",*(unsigned long*)(&(dataRange->MajorFormat))));
+        /* Check that subformat is WAVEFORMATEX, PCM or WILDCARD */
+        if( IS_VALID_WAVEFORMATEX_GUID(&dataRange->SubFormat) ||
+            !memcmp((void*)&dataRange->SubFormat, (void*)&KSDATAFORMAT_SUBTYPE_PCM, sizeof ( GUID ) ) ||
+            ( !memcmp((void*)&dataRange->SubFormat, (void*)&KSDATAFORMAT_SUBTYPE_WILDCARD, sizeof ( GUID ) ) &&
+            ( !memcmp((void*)&dataRange->MajorFormat, (void*)&KSDATAFORMAT_TYPE_AUDIO, sizeof ( GUID ) ) ) ) )
+        {
+            result = paNoError;
+            /* Record the maximum possible channels with this pin */
+            PA_DEBUG(("MaxChannel: %d\n",pin->maxChannels));
+            if( (int)((KSDATARANGE_AUDIO*)dataRange)->MaximumChannels > pin->maxChannels )
+            {
+                pin->maxChannels = ((KSDATARANGE_AUDIO*)dataRange)->MaximumChannels;
+                /*PA_DEBUG(("MaxChannel: %d\n",pin->maxChannels));*/
+            }
+            /* Record the formats (bit depths) that are supported */
+            if( ((KSDATARANGE_AUDIO*)dataRange)->MinimumBitsPerSample <= 16 )
+            {
+                pin->formats |= paInt16;
+                PA_DEBUG(("Format 16 bit supported\n"));
+            }
+            if( ((KSDATARANGE_AUDIO*)dataRange)->MaximumBitsPerSample >= 24 )
+            {
+                pin->formats |= paInt24;
+                PA_DEBUG(("Format 24 bit supported\n"));
+            }
+            if( ( pin->bestSampleRate != 48000) &&
+                (((KSDATARANGE_AUDIO*)dataRange)->MaximumSampleFrequency >= 48000) &&
+                (((KSDATARANGE_AUDIO*)dataRange)->MinimumSampleFrequency <= 48000) )
+            {
+                pin->bestSampleRate = 48000;
+                PA_DEBUG(("48kHz supported\n"));
+            }
+            else if(( pin->bestSampleRate != 48000) && ( pin->bestSampleRate != 44100 ) &&
+                (((KSDATARANGE_AUDIO*)dataRange)->MaximumSampleFrequency >= 44100) &&
+                (((KSDATARANGE_AUDIO*)dataRange)->MinimumSampleFrequency <= 44100) )
+            {
+                pin->bestSampleRate = 44100;
+                PA_DEBUG(("44.1kHz supported\n"));
+            }
+            else
+            {
+                pin->bestSampleRate = ((KSDATARANGE_AUDIO*)dataRange)->MaximumSampleFrequency;
+            }
+        }
+        dataRange = (KSDATARANGE*)( ((char*)dataRange) + dataRange->FormatSize);
+    }
+
+    if( result != paNoError )
+        goto error;
+
+    /* Get instance information */
+    result = WdmGetPinPropertySimple(
+        parentFilter->handle,
+        pinId,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_CINSTANCES,
+        &pin->instances,
+        sizeof(KSPIN_CINSTANCES));
+
+    if( result != paNoError )
+        goto error;
+
+    /* Success */
+    *error = paNoError;
+    PA_DEBUG(("Pin created successfully\n"));
+    PA_LOGL_;
+    return pin;
+
+error:
+    /*
+    Error cleanup
+    */
+    PaUtil_FreeMemory( item );
+    if( pin )
+    {
+        PaUtil_FreeMemory( pin->pinConnect );
+        PaUtil_FreeMemory( pin->dataRangesItem );
+        PaUtil_FreeMemory( pin );
+    }
+    *error = result;
+    PA_LOGL_;
+    return NULL;
+}
+
+/*
+Safely free all resources associated with the pin
+*/
+static void PinFree(PaWinWdmPin* pin)
+{
+    PA_LOGE_;
+    if( pin )
+    {
+        PinClose(pin);
+        if( pin->pinConnect )
+        {
+            PaUtil_FreeMemory( pin->pinConnect );
+        }
+        if( pin->dataRangesItem )
+        {
+            PaUtil_FreeMemory( pin->dataRangesItem );
+        }
+        PaUtil_FreeMemory( pin );
+    }
+    PA_LOGL_;
+}
+
+/*
+If the pin handle is open, close it
+*/
+static void PinClose(PaWinWdmPin* pin)
+{
+    PA_LOGE_;
+    if( pin == NULL )
+    {
+        PA_DEBUG(("Closing NULL pin!"));
+        PA_LOGL_;
+        return;
+    }
+    if( pin->handle != NULL )
+    {
+        PinSetState( pin, KSSTATE_PAUSE );
+        PinSetState( pin, KSSTATE_STOP );
+        CloseHandle( pin->handle );
+        pin->handle = NULL;
+        FilterRelease(pin->parentFilter);
+    }
+    PA_LOGL_;
+}
+
+/*
+Set the state of this (instantiated) pin
+*/
+static PaError PinSetState(PaWinWdmPin* pin, KSSTATE state)
+{
+    PaError result;
+
+    PA_LOGE_;
+    if( pin == NULL )
+        return paInternalError;
+    if( pin->handle == NULL )
+        return paInternalError;
+
+    result = WdmSetPropertySimple(
+        pin->handle,
+        &KSPROPSETID_Connection,
+        KSPROPERTY_CONNECTION_STATE,
+        &state,
+        sizeof(state),
+        NULL,
+        0);
+    PA_LOGL_;
+    return result;
+}
+
+static PaError PinInstantiate(PaWinWdmPin* pin)
+{
+    PaError result;
+    unsigned long createResult;
+    KSALLOCATOR_FRAMING ksaf;
+    KSALLOCATOR_FRAMING_EX ksafex;
+
+    PA_LOGE_;
+
+    if( pin == NULL )
+        return paInternalError;
+    if(!pin->pinConnect)
+        return paInternalError;
+
+    FilterUse(pin->parentFilter);
+
+    createResult = FunctionKsCreatePin(
+        pin->parentFilter->handle,
+        pin->pinConnect,
+        GENERIC_WRITE | GENERIC_READ,
+        &pin->handle
+        );
+
+    PA_DEBUG(("Pin create result = %x\n",createResult));
+    if( createResult != ERROR_SUCCESS )
+    {
+        FilterRelease(pin->parentFilter);
+        pin->handle = NULL;
+        return paInvalidDevice;
+    }
+
+    result = WdmGetPropertySimple(
+        pin->handle,
+        &KSPROPSETID_Connection,
+        KSPROPERTY_CONNECTION_ALLOCATORFRAMING,
+        &ksaf,
+        sizeof(ksaf),
+        NULL,
+        0);
+
+    if( result != paNoError )
+    {
+        result = WdmGetPropertySimple(
+            pin->handle,
+            &KSPROPSETID_Connection,
+            KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX,
+            &ksafex,
+            sizeof(ksafex),
+            NULL,
+            0);
+        if( result == paNoError )
+        {
+            pin->frameSize = ksafex.FramingItem[0].FramingRange.Range.MinFrameSize;
+        }
+    }
+    else
+    {
+        pin->frameSize = ksaf.FrameSize;
+    }
+
+    PA_LOGL_;
+
+    return paNoError;
+}
+
+/* NOT USED
+static PaError PinGetState(PaWinWdmPin* pin, KSSTATE* state)
+{
+    PaError result;
+
+    if( state == NULL )
+        return paInternalError;
+    if( pin == NULL )
+        return paInternalError;
+    if( pin->handle == NULL )
+        return paInternalError;
+
+    result = WdmGetPropertySimple(
+        pin->handle,
+        KSPROPSETID_Connection,
+        KSPROPERTY_CONNECTION_STATE,
+        state,
+        sizeof(KSSTATE),
+        NULL,
+        0);
+
+    return result;
+}
+*/
+static PaError PinSetFormat(PaWinWdmPin* pin, const WAVEFORMATEX* format)
+{
+    unsigned long size;
+    void* newConnect;
+
+    PA_LOGE_;
+
+    if( pin == NULL )
+        return paInternalError;
+    if( format == NULL )
+        return paInternalError;
+
+    size = GetWfexSize(format) + sizeof(KSPIN_CONNECT) + sizeof(KSDATAFORMAT_WAVEFORMATEX) - sizeof(WAVEFORMATEX);
+
+    if( pin->pinConnectSize != size )
+    {
+        newConnect = PaUtil_AllocateMemory( size );
+        if( newConnect == NULL )
+            return paInsufficientMemory;
+        memcpy( newConnect, (void*)pin->pinConnect, min(pin->pinConnectSize,size) );
+        PaUtil_FreeMemory( pin->pinConnect );
+        pin->pinConnect = (KSPIN_CONNECT*)newConnect;
+        pin->pinConnectSize = size;
+        pin->ksDataFormatWfx = (KSDATAFORMAT_WAVEFORMATEX*)((KSPIN_CONNECT*)newConnect + 1);
+        pin->ksDataFormatWfx->DataFormat.FormatSize = size - sizeof(KSPIN_CONNECT);
+    }
+
+    memcpy( (void*)&(pin->ksDataFormatWfx->WaveFormatEx), format, GetWfexSize(format) );
+    pin->ksDataFormatWfx->DataFormat.SampleSize = (unsigned short)(format->nChannels * (format->wBitsPerSample / 8));
+
+    PA_LOGL_;
+
+    return paNoError;
+}
+
+static PaError PinIsFormatSupported(PaWinWdmPin* pin, const WAVEFORMATEX* format)
+{
+    KSDATARANGE_AUDIO* dataRange;
+    unsigned long count;
+    GUID guid = DYNAMIC_GUID( DEFINE_WAVEFORMATEX_GUID(format->wFormatTag) );
+    PaError result = paInvalidDevice;
+
+    PA_LOGE_;
+
+    if( format->wFormatTag == WAVE_FORMAT_EXTENSIBLE )
+    {
+        guid = ((WAVEFORMATEXTENSIBLE*)format)->SubFormat;
+    }
+    dataRange = (KSDATARANGE_AUDIO*)pin->dataRanges;
+    for(count = 0; count<pin->dataRangesItem->Count; count++)
+    {
+        if(( !memcmp(&(dataRange->DataRange.MajorFormat),&KSDATAFORMAT_TYPE_AUDIO,sizeof(GUID)) ) ||
+           ( !memcmp(&(dataRange->DataRange.MajorFormat),&KSDATAFORMAT_TYPE_WILDCARD,sizeof(GUID)) ))
+        {
+            /* This is an audio or wildcard datarange... */
+            if(( !memcmp(&(dataRange->DataRange.SubFormat),&KSDATAFORMAT_SUBTYPE_WILDCARD,sizeof(GUID)) ) ||
+                ( !memcmp(&(dataRange->DataRange.SubFormat),&guid,sizeof(GUID)) ))
+            {
+                if(( !memcmp(&(dataRange->DataRange.Specifier),&KSDATAFORMAT_SPECIFIER_WILDCARD,sizeof(GUID)) ) ||
+                  ( !memcmp(&(dataRange->DataRange.Specifier),&KSDATAFORMAT_SPECIFIER_WAVEFORMATEX,sizeof(GUID) )))
+                {
+
+                    PA_DEBUG(("Pin:%x, DataRange:%d\n",(void*)pin,count));
+                    PA_DEBUG(("\tFormatSize:%d, SampleSize:%d\n",dataRange->DataRange.FormatSize,dataRange->DataRange.SampleSize));
+                    PA_DEBUG(("\tMaxChannels:%d\n",dataRange->MaximumChannels));
+                    PA_DEBUG(("\tBits:%d-%d\n",dataRange->MinimumBitsPerSample,dataRange->MaximumBitsPerSample));
+                    PA_DEBUG(("\tSampleRate:%d-%d\n",dataRange->MinimumSampleFrequency,dataRange->MaximumSampleFrequency));
+
+                    if( dataRange->MaximumChannels < format->nChannels )
+                    {
+                        result = paInvalidChannelCount;
+                        continue;
+                    }
+                    if( dataRange->MinimumBitsPerSample > format->wBitsPerSample )
+                    {
+                        result = paSampleFormatNotSupported;
+                        continue;
+                    }
+                    if( dataRange->MaximumBitsPerSample < format->wBitsPerSample )
+                    {
+                        result = paSampleFormatNotSupported;
+                        continue;
+                    }
+                    if( dataRange->MinimumSampleFrequency > format->nSamplesPerSec )
+                    {
+                        result = paInvalidSampleRate;
+                        continue;
+                    }
+                    if( dataRange->MaximumSampleFrequency < format->nSamplesPerSec )
+                    {
+                        result = paInvalidSampleRate;
+                        continue;
+                    }
+                    /* Success! */
+                    PA_LOGL_;
+                    return paNoError;
+                }
+            }
+        }
+        dataRange = (KSDATARANGE_AUDIO*)( ((char*)dataRange) + dataRange->DataRange.FormatSize);
+    }
+
+    PA_LOGL_;
+
+    return result;
+}
+
+/**
+ * Create a new filter object
+ */
+static PaWinWdmFilter* FilterNew(TCHAR* filterName, TCHAR* friendlyName, PaError* error)
+{
+    PaWinWdmFilter* filter;
+    PaError result;
+    int pinId;
+    int valid;
+
+
+    /* Allocate the new filter object */
+    filter = (PaWinWdmFilter*)PaUtil_AllocateMemory( sizeof(PaWinWdmFilter) );
+    if( !filter )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    /* Zero the filter object - done by AllocateMemory */
+    /* memset( (void*)filter, 0, sizeof(PaWinWdmFilter) ); */
+
+    /* Copy the filter name */
+    _tcsncpy(filter->filterName, filterName, MAX_PATH);
+
+    /* Copy the friendly name */
+    _tcsncpy(filter->friendlyName, friendlyName, MAX_PATH);
+
+    /* Open the filter handle */
+    result = FilterUse(filter);
+    if( result != paNoError )
+    {
+        goto error;
+    }
+
+    /* Get pin count */
+    result = WdmGetPinPropertySimple
+        (
+        filter->handle,
+        0,
+        &KSPROPSETID_Pin,
+        KSPROPERTY_PIN_CTYPES,
+        &filter->pinCount,
+        sizeof(filter->pinCount)
+        );
+
+    if( result != paNoError)
+    {
+        goto error;
+    }
+
+    /* Allocate pointer array to hold the pins */
+    filter->pins = (PaWinWdmPin**)PaUtil_AllocateMemory( sizeof(PaWinWdmPin*) * filter->pinCount );
+    if( !filter->pins )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    /* Create all the pins we can */
+    filter->maxInputChannels = 0;
+    filter->maxOutputChannels = 0;
+    filter->bestSampleRate = 0;
+
+    valid = 0;
+    for(pinId = 0; pinId < filter->pinCount; pinId++)
+    {
+        /* Create the pin with this Id */
+        PaWinWdmPin* newPin;
+        newPin = PinNew(filter, pinId, &result);
+        if( result == paInsufficientMemory )
+            goto error;
+        if( newPin != NULL )
+        {
+            filter->pins[pinId] = newPin;
+            valid = 1;
+
+            /* Get the max output channel count */
+            if(( newPin->dataFlow == KSPIN_DATAFLOW_IN ) &&
+                (( newPin->communication == KSPIN_COMMUNICATION_SINK) ||
+                 ( newPin->communication == KSPIN_COMMUNICATION_BOTH)))
+            {
+                if(newPin->maxChannels > filter->maxOutputChannels)
+                    filter->maxOutputChannels = newPin->maxChannels;
+                filter->formats |= newPin->formats;
+            }
+            /* Get the max input channel count */
+            if(( newPin->dataFlow == KSPIN_DATAFLOW_OUT ) &&
+                (( newPin->communication == KSPIN_COMMUNICATION_SINK) ||
+                 ( newPin->communication == KSPIN_COMMUNICATION_BOTH)))
+            {
+                if(newPin->maxChannels > filter->maxInputChannels)
+                    filter->maxInputChannels = newPin->maxChannels;
+                filter->formats |= newPin->formats;
+            }
+
+            if(newPin->bestSampleRate > filter->bestSampleRate)
+            {
+                filter->bestSampleRate = newPin->bestSampleRate;
+            }
+        }
+    }
+
+    if(( filter->maxInputChannels == 0) && ( filter->maxOutputChannels == 0))
+    {
+        /* No input or output... not valid */
+        valid = 0;
+    }
+
+    if( !valid )
+    {
+        /* No valid pin was found on this filter so we destroy it */
+        result = paDeviceUnavailable;
+        goto error;
+    }
+
+    /* Close the filter handle for now
+     * It will be opened later when needed */
+    FilterRelease(filter);
+
+    *error = paNoError;
+    return filter;
+
+error:
+    /*
+    Error cleanup
+    */
+    if( filter )
+    {
+        for( pinId = 0; pinId < filter->pinCount; pinId++ )
+            PinFree(filter->pins[pinId]);
+        PaUtil_FreeMemory( filter->pins );
+        if( filter->handle )
+            CloseHandle( filter->handle );
+        PaUtil_FreeMemory( filter );
+    }
+    *error = result;
+    return NULL;
+}
+
+/**
+ * Free a previously created filter
+ */
+static void FilterFree(PaWinWdmFilter* filter)
+{
+    int pinId;
+    PA_LOGL_;
+    if( filter )
+    {
+        for( pinId = 0; pinId < filter->pinCount; pinId++ )
+            PinFree(filter->pins[pinId]);
+        PaUtil_FreeMemory( filter->pins );
+        if( filter->handle )
+            CloseHandle( filter->handle );
+        PaUtil_FreeMemory( filter );
+    }
+    PA_LOGE_;
+}
+
+/**
+ * Reopen the filter handle if necessary so it can be used
+ **/
+static PaError FilterUse(PaWinWdmFilter* filter)
+{
+    assert( filter );
+
+    PA_LOGE_;
+    if( filter->handle == NULL )
+    {
+        /* Open the filter */
+        filter->handle = CreateFile(
+            filter->filterName,
+            GENERIC_READ | GENERIC_WRITE,
+            0,
+            NULL,
+            OPEN_EXISTING,
+            FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
+            NULL);
+
+        if( filter->handle == NULL )
+        {
+            return paDeviceUnavailable;
+        }
+    }
+    filter->usageCount++;
+    PA_LOGL_;
+    return paNoError;
+}
+
+/**
+ * Release the filter handle if nobody is using it
+ **/
+static void FilterRelease(PaWinWdmFilter* filter)
+{
+    assert( filter );
+    assert( filter->usageCount > 0 );
+
+    PA_LOGE_;
+    filter->usageCount--;
+    if( filter->usageCount == 0 )
+    {
+        if( filter->handle != NULL )
+        {
+            CloseHandle( filter->handle );
+            filter->handle = NULL;
+        }
+    }
+    PA_LOGL_;
+}
+
+/**
+ * Create a render (playback) Pin using the supplied format
+ **/
+static PaWinWdmPin* FilterCreateRenderPin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error)
+{
+    PaError result;
+    PaWinWdmPin* pin;
+
+    assert( filter );
+
+    pin = FilterFindViableRenderPin(filter,wfex,&result);
+    if(!pin)
+    {
+        goto error;
+    }
+    result = PinSetFormat(pin,wfex);
+    if( result != paNoError )
+    {
+        goto error;
+    }
+    result = PinInstantiate(pin);
+    if( result != paNoError )
+    {
+        goto error;
+    }
+
+    *error = paNoError;
+    return pin;
+
+error:
+    *error = result;
+    return NULL;
+}
+
+/**
+ * Find a pin that supports the given format
+ **/
+static PaWinWdmPin* FilterFindViableRenderPin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error)
+{
+    int pinId;
+    PaWinWdmPin*  pin;
+    PaError result = paDeviceUnavailable;
+    *error = paNoError;
+
+    assert( filter );
+
+    for( pinId = 0; pinId<filter->pinCount; pinId++ )
+    {
+        pin = filter->pins[pinId];
+        if( pin != NULL )
+        {
+            if(( pin->dataFlow == KSPIN_DATAFLOW_IN ) &&
+                (( pin->communication == KSPIN_COMMUNICATION_SINK) ||
+                 ( pin->communication == KSPIN_COMMUNICATION_BOTH)))
+            {
+                result = PinIsFormatSupported( pin, wfex );
+                if( result == paNoError )
+                {
+                    return pin;
+                }
+            }
+        }
+    }
+
+    *error = result;
+    return NULL;
+}
+
+/**
+ * Check if there is a pin that should playback
+ * with the supplied format
+ **/
+static PaError FilterCanCreateRenderPin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex)
+{
+    PaWinWdmPin* pin;
+    PaError result;
+
+    assert ( filter );
+
+    pin = FilterFindViableRenderPin(filter,wfex,&result);
+    /* result will be paNoError if pin found
+     * or else an error code indicating what is wrong with the format
+     **/
+    return result;
+}
+
+/**
+ * Create a capture (record) Pin using the supplied format
+ **/
+static PaWinWdmPin* FilterCreateCapturePin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error)
+{
+    PaError result;
+    PaWinWdmPin* pin;
+
+    assert( filter );
+
+    pin = FilterFindViableCapturePin(filter,wfex,&result);
+    if(!pin)
+    {
+        goto error;
+    }
+
+    result = PinSetFormat(pin,wfex);
+    if( result != paNoError )
+    {
+        goto error;
+    }
+
+    result = PinInstantiate(pin);
+    if( result != paNoError )
+    {
+        goto error;
+    }
+
+    *error = paNoError;
+    return pin;
+
+error:
+    *error = result;
+    return NULL;
+}
+
+/**
+ * Find a capture pin that supports the given format
+ **/
+static PaWinWdmPin* FilterFindViableCapturePin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex,
+    PaError* error)
+{
+    int pinId;
+    PaWinWdmPin*  pin;
+    PaError result = paDeviceUnavailable;
+    *error = paNoError;
+
+    assert( filter );
+
+    for( pinId = 0; pinId<filter->pinCount; pinId++ )
+    {
+        pin = filter->pins[pinId];
+        if( pin != NULL )
+        {
+            if(( pin->dataFlow == KSPIN_DATAFLOW_OUT ) &&
+                (( pin->communication == KSPIN_COMMUNICATION_SINK) ||
+                 ( pin->communication == KSPIN_COMMUNICATION_BOTH)))
+            {
+                result = PinIsFormatSupported( pin, wfex );
+                if( result == paNoError )
+                {
+                    return pin;
+                }
+            }
+        }
+    }
+
+    *error = result;
+    return NULL;
+}
+
+/**
+ * Check if there is a pin that should playback
+ * with the supplied format
+ **/
+static PaError FilterCanCreateCapturePin(PaWinWdmFilter* filter,
+    const WAVEFORMATEX* wfex)
+{
+    PaWinWdmPin* pin;
+    PaError result;
+
+    assert ( filter );
+
+    pin = FilterFindViableCapturePin(filter,wfex,&result);
+    /* result will be paNoError if pin found
+     * or else an error code indicating what is wrong with the format
+     **/
+    return result;
+}
+
+/**
+ * Build the list of available filters
+ * Use the SetupDi API to enumerate all devices in the KSCATEGORY_AUDIO which 
+ * have a KSCATEGORY_RENDER or KSCATEGORY_CAPTURE alias. For each of these 
+ * devices initialise a PaWinWdmFilter structure by calling our NewFilter() 
+ * function. We enumerate devices twice, once to count how many there are, 
+ * and once to initialize the PaWinWdmFilter structures.
+ */
+static PaError BuildFilterList(PaWinWdmHostApiRepresentation* wdmHostApi)
+{
+    PaError result = paNoError;
+    HDEVINFO handle = NULL;
+    int device;
+    int invalidDevices;
+    int slot;
+    SP_DEVICE_INTERFACE_DATA interfaceData;
+    SP_DEVICE_INTERFACE_DATA aliasData;
+    SP_DEVINFO_DATA devInfoData;
+    int noError;
+    const int sizeInterface = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) + (MAX_PATH * sizeof(WCHAR));
+    unsigned char interfaceDetailsArray[sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) + (MAX_PATH * sizeof(WCHAR))];
+    SP_DEVICE_INTERFACE_DETAIL_DATA* devInterfaceDetails = (SP_DEVICE_INTERFACE_DETAIL_DATA*)interfaceDetailsArray;
+    TCHAR friendlyName[MAX_PATH];
+    HKEY hkey;
+    DWORD sizeFriendlyName;
+    DWORD type;
+    PaWinWdmFilter* newFilter;
+    GUID* category = (GUID*)&KSCATEGORY_AUDIO;
+    GUID* alias_render = (GUID*)&KSCATEGORY_RENDER;
+    GUID* alias_capture = (GUID*)&KSCATEGORY_CAPTURE;
+    DWORD hasAlias;
+
+    PA_LOGE_;
+
+    devInterfaceDetails->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
+
+    /* Open a handle to search for devices (filters) */
+    handle = SetupDiGetClassDevs(category,NULL,NULL,DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
+    if( handle == NULL )
+    {
+        return paUnanticipatedHostError;
+    }
+    PA_DEBUG(("Setup called\n"));
+
+    /* First let's count the number of devices so we can allocate a list */
+    invalidDevices = 0;
+    for( device = 0;;device++ )
+    {
+        interfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
+        interfaceData.Reserved = 0;
+        aliasData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
+        aliasData.Reserved = 0;
+        noError = SetupDiEnumDeviceInterfaces(handle,NULL,category,device,&interfaceData);
+        PA_DEBUG(("Enum called\n"));
+        if( !noError )
+            break; /* No more devices */
+
+        /* Check this one has the render or capture alias */
+        hasAlias = 0;
+        noError = SetupDiGetDeviceInterfaceAlias(handle,&interfaceData,alias_render,&aliasData);
+        PA_DEBUG(("noError = %d\n",noError));
+        if(noError)
+        {
+            if(aliasData.Flags && (!(aliasData.Flags & SPINT_REMOVED)))
+            {
+                PA_DEBUG(("Device %d has render alias\n",device));
+                hasAlias |= 1; /* Has render alias */
+            }
+            else
+            {
+                PA_DEBUG(("Device %d has no render alias\n",device));
+            }
+        }
+        noError = SetupDiGetDeviceInterfaceAlias(handle,&interfaceData,alias_capture,&aliasData);
+        if(noError)
+        {
+            if(aliasData.Flags && (!(aliasData.Flags & SPINT_REMOVED)))
+            {
+                PA_DEBUG(("Device %d has capture alias\n",device));
+                hasAlias |= 2; /* Has capture alias */
+            }
+            else
+            {
+                PA_DEBUG(("Device %d has no capture alias\n",device));
+            }
+        }
+        if(!hasAlias)
+            invalidDevices++; /* This was not a valid capture or render audio device */
+
+    }
+    /* Remember how many there are */
+    wdmHostApi->filterCount = device-invalidDevices;
+
+    PA_DEBUG(("Interfaces found: %d\n",device-invalidDevices));
+
+    /* Now allocate the list of pointers to devices */
+    wdmHostApi->filters  = (PaWinWdmFilter**)PaUtil_AllocateMemory( sizeof(PaWinWdmFilter*) * device );
+    if( !wdmHostApi->filters )
+    {
+        if(handle != NULL)
+            SetupDiDestroyDeviceInfoList(handle);
+        return paInsufficientMemory;
+    }
+
+    /* Now create filter objects for each interface found */
+    slot = 0;
+    for( device = 0;;device++ )
+    {
+        interfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
+        interfaceData.Reserved = 0;
+        aliasData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
+        aliasData.Reserved = 0;
+        devInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
+        devInfoData.Reserved = 0;
+
+        noError = SetupDiEnumDeviceInterfaces(handle,NULL,category,device,&interfaceData);
+        if( !noError )
+            break; /* No more devices */
+
+        /* Check this one has the render or capture alias */
+        hasAlias = 0;
+        noError = SetupDiGetDeviceInterfaceAlias(handle,&interfaceData,alias_render,&aliasData);
+        if(noError)
+        {
+            if(aliasData.Flags && (!(aliasData.Flags & SPINT_REMOVED)))
+            {
+                PA_DEBUG(("Device %d has render alias\n",device));
+                hasAlias |= 1; /* Has render alias */
+            }
+        }
+        noError = SetupDiGetDeviceInterfaceAlias(handle,&interfaceData,alias_capture,&aliasData);
+        if(noError)
+        {
+            if(aliasData.Flags && (!(aliasData.Flags & SPINT_REMOVED)))
+            {
+                PA_DEBUG(("Device %d has capture alias\n",device));
+                hasAlias |= 2; /* Has capture alias */
+            }
+        }
+        if(!hasAlias)
+            continue; /* This was not a valid capture or render audio device */
+
+        noError = SetupDiGetDeviceInterfaceDetail(handle,&interfaceData,devInterfaceDetails,sizeInterface,NULL,&devInfoData);
+        if( noError )
+        {
+            /* Try to get the "friendly name" for this interface */
+            sizeFriendlyName = sizeof(friendlyName);
+            /* Fix contributed by Ben Allison
+             * Removed KEY_SET_VALUE from flags on following call
+             * as its causes failure when running without admin rights
+             * and it was not required */
+            hkey=SetupDiOpenDeviceInterfaceRegKey(handle,&interfaceData,0,KEY_QUERY_VALUE);
+            if(hkey!=INVALID_HANDLE_VALUE)
+            {
+                noError = RegQueryValueEx(hkey,TEXT("FriendlyName"),0,&type,(BYTE*)friendlyName,&sizeFriendlyName);
+                if( noError == ERROR_SUCCESS )
+                {
+                    PA_DEBUG(("Interface %d, Name: %s\n",device,friendlyName));
+                    RegCloseKey(hkey);
+                }
+                else
+                {
+                    friendlyName[0] = 0;
+                }
+            }
+            newFilter = FilterNew(devInterfaceDetails->DevicePath,friendlyName,&result);
+            if( result == paNoError )
+            {
+                PA_DEBUG(("Filter created\n"));
+                wdmHostApi->filters[slot] = newFilter;
+                slot++;
+            }
+            else
+            {
+                PA_DEBUG(("Filter NOT created\n"));
+                /* As there are now less filters than we initially thought
+                 * we must reduce the count by one */
+                wdmHostApi->filterCount--;
+            }
+        }
+    }
+
+    /* Clean up */
+    if(handle != NULL)
+        SetupDiDestroyDeviceInfoList(handle);
+
+    return paNoError;
+}
+
+PaError PaWinWdm_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    int i, deviceCount;
+    PaWinWdmHostApiRepresentation *wdmHostApi;
+    PaWinWdmDeviceInfo *deviceInfoArray;
+    PaWinWdmFilter* pFilter;
+    PaWinWdmDeviceInfo *wdmDeviceInfo;
+    PaDeviceInfo *deviceInfo;
+
+    PA_LOGE_;
+
+    /*
+    Attempt to load the KSUSER.DLL without which we cannot create pins
+    We will unload this on termination
+    */
+    if(DllKsUser == NULL)
+    {
+        DllKsUser = LoadLibrary(TEXT("ksuser.dll"));
+        if(DllKsUser == NULL)
+            goto error;
+    }
+
+    FunctionKsCreatePin = (KSCREATEPIN*)GetProcAddress(DllKsUser, "KsCreatePin");
+    if(FunctionKsCreatePin == NULL)
+        goto error;
+
+    wdmHostApi = (PaWinWdmHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaWinWdmHostApiRepresentation) );
+    if( !wdmHostApi )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    wdmHostApi->allocations = PaUtil_CreateAllocationGroup();
+    if( !wdmHostApi->allocations )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    result = BuildFilterList( wdmHostApi );
+    if( result != paNoError )
+    {
+        goto error;
+    }
+    deviceCount = wdmHostApi->filterCount;
+
+    *hostApi = &wdmHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paWDMKS;
+    (*hostApi)->info.name = "Windows WDM-KS";
+    (*hostApi)->info.defaultInputDevice = paNoDevice;
+    (*hostApi)->info.defaultOutputDevice = paNoDevice;
+
+    if( deviceCount > 0 )
+    {
+        (*hostApi)->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+               wdmHostApi->allocations, sizeof(PaWinWdmDeviceInfo*) * deviceCount );
+        if( !(*hostApi)->deviceInfos )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        /* allocate all device info structs in a contiguous block */
+        deviceInfoArray = (PaWinWdmDeviceInfo*)PaUtil_GroupAllocateMemory(
+                wdmHostApi->allocations, sizeof(PaWinWdmDeviceInfo) * deviceCount );
+        if( !deviceInfoArray )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        for( i=0; i < deviceCount; ++i )
+        {
+            wdmDeviceInfo = &deviceInfoArray[i];
+            deviceInfo = &wdmDeviceInfo->inheritedDeviceInfo;
+            pFilter = wdmHostApi->filters[i];
+            if( pFilter == NULL )
+                continue;
+            wdmDeviceInfo->filter = pFilter;
+            deviceInfo->structVersion = 2;
+            deviceInfo->hostApi = hostApiIndex;
+            deviceInfo->name = (char*)pFilter->friendlyName;
+            PA_DEBUG(("Device found name: %s\n",(char*)pFilter->friendlyName));
+            deviceInfo->maxInputChannels = pFilter->maxInputChannels;
+            if(deviceInfo->maxInputChannels > 0)
+            {
+                /* Set the default input device to the first device we find with
+                 * more than zero input channels
+                 **/
+                if((*hostApi)->info.defaultInputDevice == paNoDevice)
+                {
+                    (*hostApi)->info.defaultInputDevice = i;
+                }
+            }
+
+            deviceInfo->maxOutputChannels = pFilter->maxOutputChannels;
+            if(deviceInfo->maxOutputChannels > 0)
+            {
+                /* Set the default output device to the first device we find with
+                 * more than zero output channels
+                 **/
+                if((*hostApi)->info.defaultOutputDevice == paNoDevice)
+                {
+                    (*hostApi)->info.defaultOutputDevice = i;
+                }
+            }
+
+            /* These low values are not very useful because
+             * a) The lowest latency we end up with can depend on many factors such
+             *    as the device buffer sizes/granularities, sample rate, channels and format
+             * b) We cannot know the device buffer sizes until we try to open/use it at
+             *    a particular setting
+             * So: we give 512x48000Hz frames as the default low input latency
+             **/
+            deviceInfo->defaultLowInputLatency = (512.0/48000.0);
+            deviceInfo->defaultLowOutputLatency = (512.0/48000.0);
+            deviceInfo->defaultHighInputLatency = (4096.0/48000.0);
+            deviceInfo->defaultHighOutputLatency = (4096.0/48000.0);
+            deviceInfo->defaultSampleRate = (double)(pFilter->bestSampleRate);
+
+            (*hostApi)->deviceInfos[i] = deviceInfo;
+        }
+    }
+
+    (*hostApi)->info.deviceCount = deviceCount;
+
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PaUtil_InitializeStreamInterface( &wdmHostApi->callbackStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable, PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &wdmHostApi->blockingStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable );
+
+    PA_LOGL_;
+    return result;
+
+error:
+    if( DllKsUser != NULL )
+    {
+        FreeLibrary( DllKsUser );
+        DllKsUser = NULL;
+    }
+
+    if( wdmHostApi )
+    {
+        PaUtil_FreeMemory( wdmHostApi->filters );
+        if( wdmHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( wdmHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( wdmHostApi->allocations );
+        }
+        PaUtil_FreeMemory( wdmHostApi );
+    }
+    PA_LOGL_;
+    return result;
+}
+
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaWinWdmHostApiRepresentation *wdmHostApi = (PaWinWdmHostApiRepresentation*)hostApi;
+    int i;
+    PA_LOGE_;
+
+    if( wdmHostApi->filters )
+    {
+        for( i=0; i<wdmHostApi->filterCount; i++)
+        {
+            if( wdmHostApi->filters[i] != NULL )
+            {
+                FilterFree( wdmHostApi->filters[i] );
+                wdmHostApi->filters[i] = NULL;
+            }
+        }
+    }
+    PaUtil_FreeMemory( wdmHostApi->filters );
+    if( wdmHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( wdmHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( wdmHostApi->allocations );
+    }
+    PaUtil_FreeMemory( wdmHostApi );
+    PA_LOGL_;
+}
+
+static void FillWFEXT( WAVEFORMATEXTENSIBLE* pwfext, PaSampleFormat sampleFormat, double sampleRate, int channelCount)
+{
+    PA_LOGE_;
+    PA_DEBUG(( "sampleFormat = %lx\n" , sampleFormat ));
+    PA_DEBUG(( "sampleRate = %f\n" , sampleRate ));
+    PA_DEBUG(( "chanelCount = %d\n", channelCount ));
+
+    pwfext->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
+    pwfext->Format.nChannels = channelCount;
+    pwfext->Format.nSamplesPerSec = (int)sampleRate;
+    if(channelCount == 1)
+        pwfext->dwChannelMask = KSAUDIO_SPEAKER_DIRECTOUT;
+    else
+        pwfext->dwChannelMask = KSAUDIO_SPEAKER_STEREO;
+    if(sampleFormat == paFloat32)
+    {
+        pwfext->Format.nBlockAlign = channelCount * 4;
+        pwfext->Format.wBitsPerSample = 32;
+        pwfext->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+        pwfext->Samples.wValidBitsPerSample = 32;
+        pwfext->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
+    }
+    else if(sampleFormat == paInt32)
+    {
+        pwfext->Format.nBlockAlign = channelCount * 4;
+        pwfext->Format.wBitsPerSample = 32;
+        pwfext->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+        pwfext->Samples.wValidBitsPerSample = 32;
+        pwfext->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+    }
+    else if(sampleFormat == paInt24)
+    {
+        pwfext->Format.nBlockAlign = channelCount * 3;
+        pwfext->Format.wBitsPerSample = 24;
+        pwfext->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+        pwfext->Samples.wValidBitsPerSample = 24;
+        pwfext->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+    }
+    else if(sampleFormat == paInt16)
+    {
+        pwfext->Format.nBlockAlign = channelCount * 2;
+        pwfext->Format.wBitsPerSample = 16;
+        pwfext->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+        pwfext->Samples.wValidBitsPerSample = 16;
+        pwfext->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+    }
+    pwfext->Format.nAvgBytesPerSec = pwfext->Format.nSamplesPerSec * pwfext->Format.nBlockAlign;
+
+    PA_LOGL_;
+}
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaWinWdmHostApiRepresentation *wdmHostApi = (PaWinWdmHostApiRepresentation*)hostApi;
+    PaWinWdmFilter* pFilter;
+    int result = paFormatIsSupported;
+    WAVEFORMATEXTENSIBLE wfx;
+
+    PA_LOGE_;
+
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( inputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support inputChannelCount */
+        if( inputChannelCount > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        if( inputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+        /* Check that the input format is supported */
+        FillWFEXT(&wfx,paInt16,sampleRate,inputChannelCount);
+
+        pFilter = wdmHostApi->filters[inputParameters->device];
+        result = FilterCanCreateCapturePin(pFilter,(const WAVEFORMATEX*)&wfx);
+        if( result != paNoError )
+        {
+            /* Try a WAVE_FORMAT_PCM instead */
+            wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+            wfx.Format.cbSize = 0;
+            wfx.Samples.wValidBitsPerSample = 0;
+            wfx.dwChannelMask = 0;
+            wfx.SubFormat = GUID_NULL;
+            result = FilterCanCreateCapturePin(pFilter,(const WAVEFORMATEX*)&wfx);
+            if( result != paNoError )
+                 return result;
+        }
+    }
+    else
+    {
+        inputChannelCount = 0;
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( outputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support outputChannelCount */
+        if( outputChannelCount > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        if( outputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+        /* Check that the output format is supported */
+        FillWFEXT(&wfx,paInt16,sampleRate,outputChannelCount);
+
+        pFilter = wdmHostApi->filters[outputParameters->device];
+        result = FilterCanCreateRenderPin(pFilter,(const WAVEFORMATEX*)&wfx);
+        if( result != paNoError )
+        {
+            /* Try a WAVE_FORMAT_PCM instead */
+            wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+            wfx.Format.cbSize = 0;
+            wfx.Samples.wValidBitsPerSample = 0;
+            wfx.dwChannelMask = 0;
+            wfx.SubFormat = GUID_NULL;
+            result = FilterCanCreateRenderPin(pFilter,(const WAVEFORMATEX*)&wfx);
+            if( result != paNoError )
+                 return result;
+        }
+
+    }
+    else
+    {
+        outputChannelCount = 0;
+    }
+
+    /*
+        IMPLEMENT ME:
+
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported if necessary
+
+            - check that the device supports sampleRate
+
+        Because the buffer adapter handles conversion between all standard
+        sample formats, the following checks are only required if paCustomFormat
+        is implemented, or under some other unusual conditions.
+
+            - check that input device can support inputSampleFormat, or that
+                we have the capability to convert from inputSampleFormat to
+                a native format
+
+            - check that output device can support outputSampleFormat, or that
+                we have the capability to convert from outputSampleFormat to
+                a native format
+    */
+    if((inputChannelCount == 0)&&(outputChannelCount == 0))
+            result = paSampleFormatNotSupported; /* Not right error */
+
+    PA_LOGL_;
+    return result;
+}
+
+/* see pa_hostapi.h for a list of validity guarantees made about OpenStream parameters */
+
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result = paNoError;
+    PaWinWdmHostApiRepresentation *wdmHostApi = (PaWinWdmHostApiRepresentation*)hostApi;
+    PaWinWdmStream *stream = 0;
+    /* unsigned long framesPerHostBuffer; these may not be equivalent for all implementations */
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaSampleFormat hostInputSampleFormat, hostOutputSampleFormat;
+    int userInputChannels,userOutputChannels;
+    int size;
+    PaWinWdmFilter* pFilter;
+    WAVEFORMATEXTENSIBLE wfx;
+
+    PA_LOGE_;
+    PA_DEBUG(("OpenStream:sampleRate = %f\n",sampleRate));
+    PA_DEBUG(("OpenStream:framesPerBuffer = %lu\n",framesPerBuffer));
+
+    if( inputParameters )
+    {
+        userInputChannels = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that input device can support stream->userInputChannels */
+        if( userInputChannels > hostApi->deviceInfos[ inputParameters->device ]->maxInputChannels )
+            return paInvalidChannelCount;
+
+        /* validate inputStreamInfo */
+        if( inputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+    }
+    else
+    {
+        userInputChannels = 0;
+        inputSampleFormat = hostInputSampleFormat = paInt16; /* Surpress 'uninitialised var' warnings. */
+    }
+
+    if( outputParameters )
+    {
+        userOutputChannels = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+
+        /* unless alternate device specification is supported, reject the use of
+            paUseHostApiSpecificDeviceSpecification */
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification )
+            return paInvalidDevice;
+
+        /* check that output device can support stream->userInputChannels */
+        if( userOutputChannels > hostApi->deviceInfos[ outputParameters->device ]->maxOutputChannels )
+            return paInvalidChannelCount;
+
+        /* validate outputStreamInfo */
+        if( outputParameters->hostApiSpecificStreamInfo )
+            return paIncompatibleHostApiSpecificStreamInfo; /* this implementation doesn't use custom stream info */
+
+    }
+    else
+    {
+        userOutputChannels = 0;
+        outputSampleFormat = hostOutputSampleFormat = paInt16; /* Surpress 'uninitialized var' warnings. */
+    }
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+    stream = (PaWinWdmStream*)PaUtil_AllocateMemory( sizeof(PaWinWdmStream) );
+    if( !stream )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+    /* Zero the stream object */
+    /* memset((void*)stream,0,sizeof(PaWinWdmStream)); */
+
+    if( streamCallback )
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &wdmHostApi->callbackStreamInterface, streamCallback, userData );
+    }
+    else
+    {
+        PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                               &wdmHostApi->blockingStreamInterface, streamCallback, userData );
+    }
+
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+    /* Instantiate the input pin if necessary */
+    if(userInputChannels > 0)
+    {
+        result = paSampleFormatNotSupported;
+        pFilter = wdmHostApi->filters[inputParameters->device];
+        stream->userInputChannels = userInputChannels;
+
+        if(((inputSampleFormat & ~paNonInterleaved) & pFilter->formats) != 0)
+        {   /* inputSampleFormat is supported, so try to use it */
+            hostInputSampleFormat = inputSampleFormat;
+            FillWFEXT(&wfx, hostInputSampleFormat, sampleRate, stream->userInputChannels);
+            stream->bytesPerInputFrame = wfx.Format.nBlockAlign;
+            stream->recordingPin = FilterCreateCapturePin(pFilter, (const WAVEFORMATEX*)&wfx, &result);
+            stream->deviceInputChannels = stream->userInputChannels;
+        }
+        
+        if(result != paNoError)
+        {   /* Search through all PaSampleFormats to find one that works */
+            hostInputSampleFormat = paFloat32;
+
+            do {
+                FillWFEXT(&wfx, hostInputSampleFormat, sampleRate, stream->userInputChannels);
+                stream->bytesPerInputFrame = wfx.Format.nBlockAlign;
+                stream->recordingPin = FilterCreateCapturePin(pFilter, (const WAVEFORMATEX*)&wfx, &result);
+                stream->deviceInputChannels = stream->userInputChannels;
+                
+                if(stream->recordingPin == NULL) result = paSampleFormatNotSupported;
+                if(result != paNoError)    hostInputSampleFormat <<= 1;
+            }
+            while(result != paNoError && hostInputSampleFormat <= paUInt8);
+        }
+
+        if(result != paNoError)
+        {    /* None of the PaSampleFormats worked.  Set the hostInputSampleFormat to the best fit
+             * and try a PCM format.
+             **/
+            hostInputSampleFormat =
+                PaUtil_SelectClosestAvailableFormat( pFilter->formats, inputSampleFormat );
+
+            /* Try a WAVE_FORMAT_PCM instead */
+            wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+            wfx.Format.cbSize = 0;
+            wfx.Samples.wValidBitsPerSample = 0;
+            wfx.dwChannelMask = 0;
+            wfx.SubFormat = GUID_NULL;
+            stream->recordingPin = FilterCreateCapturePin(pFilter,(const WAVEFORMATEX*)&wfx,&result);
+            if(stream->recordingPin == NULL) result = paSampleFormatNotSupported;
+        }
+
+        if( result != paNoError )
+        {
+            /* Some or all KS devices can only handle the exact number of channels
+             * they specify. But PortAudio clients expect to be able to
+             * at least specify mono I/O on a multi-channel device
+             * If this is the case, then we will do the channel mapping internally
+             **/
+            if( stream->userInputChannels < pFilter->maxInputChannels )
+            {
+                FillWFEXT(&wfx,hostInputSampleFormat,sampleRate,pFilter->maxInputChannels);
+                stream->bytesPerInputFrame = wfx.Format.nBlockAlign;
+                stream->recordingPin = FilterCreateCapturePin(pFilter,(const WAVEFORMATEX*)&wfx,&result);
+                stream->deviceInputChannels = pFilter->maxInputChannels;
+
+                if( result != paNoError )
+                {
+                    /* Try a WAVE_FORMAT_PCM instead */
+                    wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+                    wfx.Format.cbSize = 0;
+                    wfx.Samples.wValidBitsPerSample = 0;
+                    wfx.dwChannelMask = 0;
+                    wfx.SubFormat = GUID_NULL;
+                    stream->recordingPin = FilterCreateCapturePin(pFilter,(const WAVEFORMATEX*)&wfx,&result);
+                }
+            }
+        }
+
+        if(stream->recordingPin == NULL)
+        {
+            goto error;
+        }
+
+        switch(hostInputSampleFormat)
+        {
+            case paInt16: stream->inputSampleSize = 2; break;
+            case paInt24: stream->inputSampleSize = 3; break;
+            case paInt32:
+            case paFloat32:    stream->inputSampleSize = 4; break;
+        }
+
+        stream->recordingPin->frameSize /= stream->bytesPerInputFrame;
+        PA_DEBUG(("Pin output frames: %d\n",stream->recordingPin->frameSize));
+    }
+    else
+    {
+        stream->recordingPin = NULL;
+        stream->bytesPerInputFrame = 0;
+    }
+
+    /* Instantiate the output pin if necessary */
+    if(userOutputChannels > 0)
+    {
+        result = paSampleFormatNotSupported;
+        pFilter = wdmHostApi->filters[outputParameters->device];
+        stream->userOutputChannels = userOutputChannels;
+
+        if(((outputSampleFormat & ~paNonInterleaved) & pFilter->formats) != 0)
+        {
+            hostOutputSampleFormat = outputSampleFormat;
+            FillWFEXT(&wfx,hostOutputSampleFormat,sampleRate,stream->userOutputChannels);
+            stream->bytesPerOutputFrame = wfx.Format.nBlockAlign;
+            stream->playbackPin = FilterCreateRenderPin(pFilter,(WAVEFORMATEX*)&wfx,&result);
+            stream->deviceOutputChannels = stream->userOutputChannels;
+        }
+
+        if(result != paNoError)
+        {
+            hostOutputSampleFormat = paFloat32;
+
+            do {
+                FillWFEXT(&wfx,hostOutputSampleFormat,sampleRate,stream->userOutputChannels);
+                stream->bytesPerOutputFrame = wfx.Format.nBlockAlign;
+                stream->playbackPin = FilterCreateRenderPin(pFilter,(WAVEFORMATEX*)&wfx,&result);
+                stream->deviceOutputChannels = stream->userOutputChannels;
+
+                if(stream->playbackPin == NULL) result = paSampleFormatNotSupported;
+                if(result != paNoError)    hostOutputSampleFormat <<= 1;
+            }
+            while(result != paNoError && hostOutputSampleFormat <= paUInt8);
+        }
+
+        if(result != paNoError)
+        {
+            hostOutputSampleFormat =
+                PaUtil_SelectClosestAvailableFormat( pFilter->formats, outputSampleFormat );
+       
+            /* Try a WAVE_FORMAT_PCM instead */
+            wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+            wfx.Format.cbSize = 0;
+            wfx.Samples.wValidBitsPerSample = 0;
+            wfx.dwChannelMask = 0;
+            wfx.SubFormat = GUID_NULL;
+            stream->playbackPin = FilterCreateRenderPin(pFilter,(WAVEFORMATEX*)&wfx,&result);
+            if(stream->playbackPin == NULL) result = paSampleFormatNotSupported;
+        }
+            
+        if( result != paNoError )
+        {
+            /* Some or all KS devices can only handle the exact number of channels
+             * they specify. But PortAudio clients expect to be able to
+             * at least specify mono I/O on a multi-channel device
+             * If this is the case, then we will do the channel mapping internally
+             **/
+            if( stream->userOutputChannels < pFilter->maxOutputChannels )
+            {
+                FillWFEXT(&wfx,hostOutputSampleFormat,sampleRate,pFilter->maxOutputChannels);
+                stream->bytesPerOutputFrame = wfx.Format.nBlockAlign;
+                stream->playbackPin = FilterCreateRenderPin(pFilter,(const WAVEFORMATEX*)&wfx,&result);
+                stream->deviceOutputChannels = pFilter->maxOutputChannels;
+                if( result != paNoError )
+                {
+                    /* Try a WAVE_FORMAT_PCM instead */
+                    wfx.Format.wFormatTag = WAVE_FORMAT_PCM;
+                    wfx.Format.cbSize = 0;
+                    wfx.Samples.wValidBitsPerSample = 0;
+                    wfx.dwChannelMask = 0;
+                    wfx.SubFormat = GUID_NULL;
+                    stream->playbackPin = FilterCreateRenderPin(pFilter,(const WAVEFORMATEX*)&wfx,&result);
+                }
+            }
+        }
+
+        if(stream->playbackPin == NULL)
+        {
+            goto error;
+        }
+
+        switch(hostOutputSampleFormat)
+        {
+            case paInt16: stream->outputSampleSize = 2; break;
+            case paInt24: stream->outputSampleSize = 3; break;
+            case paInt32:
+            case paFloat32: stream->outputSampleSize = 4; break;
+        }
+
+        stream->playbackPin->frameSize /= stream->bytesPerOutputFrame;
+        PA_DEBUG(("Pin output frames: %d\n",stream->playbackPin->frameSize));
+    }
+    else
+    {
+        stream->playbackPin = NULL;
+        stream->bytesPerOutputFrame = 0;
+    }
+
+    /* Calculate the framesPerHostXxxxBuffer size based upon the suggested latency values */
+
+    /* Record the buffer length */
+    if(inputParameters)
+    {
+        /* Calculate the frames from the user's value - add a bit to round up */
+            stream->framesPerHostIBuffer = (unsigned long)((inputParameters->suggestedLatency*sampleRate)+0.0001);
+        if(stream->framesPerHostIBuffer > (unsigned long)sampleRate)
+        { /* Upper limit is 1 second */
+              stream->framesPerHostIBuffer = (unsigned long)sampleRate;
+        }
+        else if(stream->framesPerHostIBuffer < stream->recordingPin->frameSize)
+        {
+              stream->framesPerHostIBuffer = stream->recordingPin->frameSize;
+        }
+        PA_DEBUG(("Input frames chosen:%ld\n",stream->framesPerHostIBuffer));
+    }
+
+    if(outputParameters)
+    {
+        /* Calculate the frames from the user's value - add a bit to round up */
+        stream->framesPerHostOBuffer = (unsigned long)((outputParameters->suggestedLatency*sampleRate)+0.0001);
+        if(stream->framesPerHostOBuffer > (unsigned long)sampleRate)
+        { /* Upper limit is 1 second */
+                  stream->framesPerHostOBuffer = (unsigned long)sampleRate;
+        }
+        else if(stream->framesPerHostOBuffer < stream->playbackPin->frameSize)
+        {
+              stream->framesPerHostOBuffer = stream->playbackPin->frameSize;
+        }
+        PA_DEBUG(("Output frames chosen:%ld\n",stream->framesPerHostOBuffer));
+    }
+
+    /* Host buffer size is bounded to the largest of the input and output
+    frame sizes */
+
+    result =  PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+              stream->userInputChannels, inputSampleFormat, hostInputSampleFormat,
+              stream->userOutputChannels, outputSampleFormat, hostOutputSampleFormat,
+              sampleRate, streamFlags, framesPerBuffer,
+              max(stream->framesPerHostOBuffer,stream->framesPerHostIBuffer),
+              paUtilBoundedHostBufferSize,
+              streamCallback, userData );
+    if( result != paNoError )
+        goto error;
+
+    stream->streamRepresentation.streamInfo.inputLatency =
+            ((double)stream->framesPerHostIBuffer) / sampleRate;
+    stream->streamRepresentation.streamInfo.outputLatency =
+            ((double)stream->framesPerHostOBuffer) / sampleRate;
+    stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+      PA_DEBUG(("BytesPerInputFrame = %d\n",stream->bytesPerInputFrame));
+      PA_DEBUG(("BytesPerOutputFrame = %d\n",stream->bytesPerOutputFrame));
+
+    /* Allocate all the buffers for host I/O */
+    size = 2 * (stream->framesPerHostIBuffer*stream->bytesPerInputFrame +  stream->framesPerHostOBuffer*stream->bytesPerOutputFrame);
+    PA_DEBUG(("Buffer size = %d\n",size));
+    stream->hostBuffer = (char*)PaUtil_AllocateMemory(size);
+    PA_DEBUG(("Buffer allocated\n"));
+    if( !stream->hostBuffer )
+    {
+        PA_DEBUG(("Cannot allocate host buffer!\n"));
+        result = paInsufficientMemory;
+        goto error;
+    }
+    PA_DEBUG(("Buffer start = %p\n",stream->hostBuffer));
+    /* memset(stream->hostBuffer,0,size); */
+
+    /* Set up the packets */
+    stream->events[0] = CreateEvent(NULL, FALSE, FALSE, NULL);
+    ResetEvent(stream->events[0]); /* Record buffer 1 */
+    stream->events[1] = CreateEvent(NULL, FALSE, FALSE, NULL);
+    ResetEvent(stream->events[1]); /* Record buffer 2 */
+    stream->events[2] = CreateEvent(NULL, FALSE, FALSE, NULL);
+    ResetEvent(stream->events[2]); /* Play buffer 1 */
+    stream->events[3] = CreateEvent(NULL, FALSE, FALSE, NULL);
+    ResetEvent(stream->events[3]); /* Play buffer 2 */
+    stream->events[4] = CreateEvent(NULL, FALSE, FALSE, NULL);
+    ResetEvent(stream->events[4]); /* Abort event */
+    if(stream->userInputChannels > 0)
+    {
+        DATAPACKET *p = &(stream->packets[0]);
+        p->Signal.hEvent = stream->events[0];
+        p->Header.Data = stream->hostBuffer;
+        p->Header.FrameExtent = stream->framesPerHostIBuffer*stream->bytesPerInputFrame;
+        p->Header.DataUsed = 0;
+        p->Header.Size = sizeof(p->Header);
+        p->Header.PresentationTime.Numerator = 1;
+        p->Header.PresentationTime.Denominator = 1;
+
+        p = &(stream->packets[1]);
+        p->Signal.hEvent = stream->events[1];
+        p->Header.Data = stream->hostBuffer + stream->framesPerHostIBuffer*stream->bytesPerInputFrame;
+        p->Header.FrameExtent = stream->framesPerHostIBuffer*stream->bytesPerInputFrame;
+        p->Header.DataUsed = 0;
+        p->Header.Size = sizeof(p->Header);
+        p->Header.PresentationTime.Numerator = 1;
+        p->Header.PresentationTime.Denominator = 1;
+    }
+    if(stream->userOutputChannels > 0)
+    {
+        DATAPACKET *p = &(stream->packets[2]);
+        p->Signal.hEvent = stream->events[2];
+        p->Header.Data = stream->hostBuffer + 2*stream->framesPerHostIBuffer*stream->bytesPerInputFrame;
+        p->Header.FrameExtent = stream->framesPerHostOBuffer*stream->bytesPerOutputFrame;
+        p->Header.DataUsed = stream->framesPerHostOBuffer*stream->bytesPerOutputFrame;
+        p->Header.Size = sizeof(p->Header);
+        p->Header.PresentationTime.Numerator = 1;
+        p->Header.PresentationTime.Denominator = 1;
+    
+        p = &(stream->packets[3]);
+        p->Signal.hEvent = stream->events[3];
+        p->Header.Data = stream->hostBuffer + 2*stream->framesPerHostIBuffer*stream->bytesPerInputFrame + stream->framesPerHostOBuffer*stream->bytesPerOutputFrame;
+        p->Header.FrameExtent = stream->framesPerHostOBuffer*stream->bytesPerOutputFrame;
+        p->Header.DataUsed = stream->framesPerHostOBuffer*stream->bytesPerOutputFrame;
+        p->Header.Size = sizeof(p->Header);
+        p->Header.PresentationTime.Numerator = 1;
+        p->Header.PresentationTime.Denominator = 1;
+    }
+
+    stream->streamStarted = 0;
+    stream->streamActive = 0;
+    stream->streamStop = 0;
+    stream->streamAbort = 0;
+    stream->streamFlags = streamFlags;
+    stream->oldProcessPriority = REALTIME_PRIORITY_CLASS;
+
+    *s = (PaStream*)stream;
+
+    PA_LOGL_;
+    return result;
+
+error:
+    size = 5;
+    while(size--)
+    {
+        if(stream->events[size] != NULL)
+        {
+            CloseHandle(stream->events[size]);
+            stream->events[size] = NULL;
+        }
+    }
+    if(stream->hostBuffer)
+        PaUtil_FreeMemory( stream->hostBuffer );
+
+    if(stream->playbackPin)
+        PinClose(stream->playbackPin);
+    if(stream->recordingPin)
+        PinClose(stream->recordingPin);
+
+    if( stream )
+        PaUtil_FreeMemory( stream );
+
+    PA_LOGL_;
+    return result;
+}
+
+/*
+    When CloseStream() is called, the multi-api layer ensures that
+    the stream has already been stopped or aborted.
+*/
+static PaError CloseStream( PaStream* s )
+{
+    PaError result = paNoError;
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    int size;
+
+    PA_LOGE_;
+
+    assert(!stream->streamStarted);
+    assert(!stream->streamActive);
+
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+    size = 5;
+    while(size--)
+    {
+        if(stream->events[size] != NULL)
+        {
+            CloseHandle(stream->events[size]);
+            stream->events[size] = NULL;
+        }
+    }
+    if(stream->hostBuffer)
+        PaUtil_FreeMemory( stream->hostBuffer );
+
+    if(stream->playbackPin)
+        PinClose(stream->playbackPin);
+    if(stream->recordingPin)
+        PinClose(stream->recordingPin);
+
+    PaUtil_FreeMemory( stream );
+
+    PA_LOGL_;
+    return result;
+}
+
+/*
+Write the supplied packet to the pin
+Asynchronous
+Should return false on success
+*/
+static BOOL PinWrite(HANDLE h, DATAPACKET* p)
+{
+    unsigned long cbReturned = 0;
+    return DeviceIoControl(h,IOCTL_KS_WRITE_STREAM,NULL,0,
+                            &p->Header,p->Header.Size,&cbReturned,&p->Signal);
+}
+
+/*
+Read to the supplied packet from the pin
+Asynchronous
+Should return false on success
+*/
+static BOOL PinRead(HANDLE h, DATAPACKET* p)
+{
+    unsigned long cbReturned = 0;
+    return DeviceIoControl(h,IOCTL_KS_READ_STREAM,NULL,0,
+                            &p->Header,p->Header.Size,&cbReturned,&p->Signal);
+}
+
+/*
+Copy the first interleaved channel of 16 bit data to the other channels
+*/
+static void DuplicateFirstChannelInt16(void* buffer, int channels, int samples)
+{
+    unsigned short* data = (unsigned short*)buffer;
+    int channel;
+    unsigned short sourceSample;
+    while( samples-- )
+    {
+        sourceSample = *data++;
+        channel = channels-1;
+        while( channel-- )
+        {
+            *data++ = sourceSample;
+        }
+    }
+}
+
+/*
+Copy the first interleaved channel of 24 bit data to the other channels
+*/
+static void DuplicateFirstChannelInt24(void* buffer, int channels, int samples)
+{
+    unsigned char* data = (unsigned char*)buffer;
+    int channel;
+    unsigned char sourceSample[3];
+    while( samples-- )
+    {
+        sourceSample[0] = data[0];
+        sourceSample[1] = data[1];
+        sourceSample[2] = data[2];
+        data += 3;
+        channel = channels-1;
+        while( channel-- )
+        {
+            data[0] = sourceSample[0];
+            data[1] = sourceSample[1];
+            data[2] = sourceSample[2];
+            data += 3;
+        }
+    }
+}
+
+/*
+Copy the first interleaved channel of 32 bit data to the other channels
+*/
+static void DuplicateFirstChannelInt32(void* buffer, int channels, int samples)
+{
+    unsigned long* data = (unsigned long*)buffer;
+    int channel;
+    unsigned long sourceSample;
+    while( samples-- )
+    {
+        sourceSample = *data++;
+        channel = channels-1;
+        while( channel-- )
+        {
+            *data++ = sourceSample;
+        }
+    }
+}
+
+static DWORD WINAPI ProcessingThread(LPVOID pParam)
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)pParam;
+    PaStreamCallbackTimeInfo ti;
+    int cbResult = paContinue;
+    int inbuf = 0;
+    int outbuf = 0;
+    int pending = 0;
+    PaError result;
+    unsigned long wait;
+    unsigned long eventSignaled;
+    int fillPlaybuf = 0;
+    int emptyRecordbuf = 0;
+    int framesProcessed;
+    unsigned long timeout;
+    int i;
+    int doChannelCopy;
+    int priming = 0;
+    PaStreamCallbackFlags underover = 0;
+
+    PA_LOGE_;
+
+    ti.inputBufferAdcTime = 0.0;
+    ti.currentTime = 0.0;
+    ti.outputBufferDacTime = 0.0;
+
+    /* Get double buffering going */
+
+    /* Submit buffers */
+    if(stream->playbackPin)
+    {
+        result = PinSetState(stream->playbackPin, KSSTATE_RUN);
+
+        PA_DEBUG(("play state run = %d;",(int)result));
+        SetEvent(stream->events[outbuf+2]);
+        outbuf = (outbuf+1)&1;
+        SetEvent(stream->events[outbuf+2]);
+        outbuf = (outbuf+1)&1;
+        pending += 2;
+        priming += 4;
+    }
+    if(stream->recordingPin)
+    {
+        result = PinSetState(stream->recordingPin, KSSTATE_RUN);
+
+        PA_DEBUG(("recording state run = %d;",(int)result));
+        PinRead(stream->recordingPin->handle,&stream->packets[inbuf]);
+        inbuf = (inbuf+1)&1; /* Increment and wrap */
+        PinRead(stream->recordingPin->handle,&stream->packets[inbuf]);
+        inbuf = (inbuf+1)&1; /* Increment and wrap */
+        /* FIXME - do error checking */
+        pending += 2;
+    }
+    PA_DEBUG(("Out buffer len:%f\n",(2000*stream->framesPerHostOBuffer) / stream->streamRepresentation.streamInfo.sampleRate));
+    PA_DEBUG(("In buffer len:%f\n",(2000*stream->framesPerHostIBuffer) / stream->streamRepresentation.streamInfo.sampleRate));
+    timeout = max(
+       ((2000*(DWORD)stream->framesPerHostOBuffer) / (DWORD)stream->streamRepresentation.streamInfo.sampleRate),
+       ((2000*(DWORD)stream->framesPerHostIBuffer) / (DWORD)stream->streamRepresentation.streamInfo.sampleRate));
+    timeout = max(timeout,1);
+    PA_DEBUG(("Timeout = %ld\n",timeout));
+
+    while(!stream->streamAbort)
+    {
+        fillPlaybuf = 0;
+        emptyRecordbuf = 0;
+
+        /* Wait for next input or output buffer to be finished with*/
+        assert(pending>0);
+
+        if(stream->streamStop)
+        {
+            PA_DEBUG(("ss1:pending=%d ",pending));
+        }
+        wait = WaitForMultipleObjects(5, stream->events, FALSE, 0);
+        if( wait == WAIT_TIMEOUT )
+        {
+            /* No (under|over)flow has ocurred */
+            wait = WaitForMultipleObjects(5, stream->events, FALSE, timeout);
+            eventSignaled = wait - WAIT_OBJECT_0;
+        }
+        else
+        {
+            eventSignaled = wait - WAIT_OBJECT_0;
+            if( eventSignaled < 2 )
+            {
+                underover |= paInputOverflow;
+                PA_DEBUG(("Input overflow\n"));
+            }
+            else if(( eventSignaled < 4 )&&(!priming))
+            {
+                underover |= paOutputUnderflow;
+                PA_DEBUG(("Output underflow\n"));
+            }
+        }
+
+        if(stream->streamStop)
+        {
+            PA_DEBUG(("ss2:wait=%ld",wait));
+        }
+        if(wait == WAIT_FAILED)
+        {
+            PA_DEBUG(("Wait fail = %ld! ",wait));
+            break;
+        }
+        if(wait == WAIT_TIMEOUT)
+        {
+            continue;
+        }
+
+        if(eventSignaled < 2)
+        { /* Recording input buffer has been filled */
+            if(stream->playbackPin)
+            {
+                /* First check if also the next playback buffer has been signaled */
+                wait = WaitForSingleObject(stream->events[outbuf+2],0);
+                if(wait == WAIT_OBJECT_0)
+                {
+                    /* Yes, so do both buffers at same time */
+                    fillPlaybuf = 1;
+                    pending--;
+                    /* Was this an underflow situation? */
+                    if( underover )
+                        underover |= paOutputUnderflow; /* Yes! */
+                }
+            }
+            emptyRecordbuf = 1;
+            pending--;
+        }
+        else if(eventSignaled < 4)
+        { /* Playback output buffer has been emptied */
+            if(stream->recordingPin)
+            {
+                /* First check if also the next recording buffer has been signaled */
+                wait = WaitForSingleObject(stream->events[inbuf],0);
+                if(wait == WAIT_OBJECT_0)
+                { /* Yes, so do both buffers at same time */
+                    emptyRecordbuf = 1;
+                    pending--;
+                    /* Was this an overflow situation? */
+                    if( underover )
+                        underover |= paInputOverflow; /* Yes! */
+                }
+            }
+            fillPlaybuf = 1;
+            pending--;
+        }
+        else
+        {
+            /* Abort event! */
+            assert(stream->streamAbort); /* Should have been set */
+            PA_DEBUG(("ABORTING "));
+            break;
+        }
+        ResetEvent(stream->events[eventSignaled]);
+
+        if(stream->streamStop)
+        {
+            PA_DEBUG(("Stream stop! pending=%d",pending));
+            cbResult = paComplete; /* Stop, but play remaining buffers */
+        }
+
+        /* Do necessary buffer processing (which will invoke user callback if necessary */
+        doChannelCopy = 0;
+        if(cbResult==paContinue)
+        {
+            PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+            if((stream->bufferProcessor.hostInputFrameCount[0] + stream->bufferProcessor.hostInputFrameCount[1]) ==
+                (stream->bufferProcessor.hostOutputFrameCount[0] + stream->bufferProcessor.hostOutputFrameCount[1]) )
+                PaUtil_BeginBufferProcessing(&stream->bufferProcessor,&ti,underover);
+            underover = 0; /* Reset the (under|over)flow status */
+            if(fillPlaybuf)
+            {
+                PaUtil_SetOutputFrameCount(&stream->bufferProcessor,0);
+                if( stream->userOutputChannels == 1 )
+                {
+                    /* Write the single user channel to the first interleaved block */
+                    PaUtil_SetOutputChannel(&stream->bufferProcessor,0,stream->packets[outbuf+2].Header.Data,stream->deviceOutputChannels);
+                    /* We will do a copy to the other channels after the data has been written */
+                    doChannelCopy = 1;
+                }
+                else
+                {
+                    for(i=0;i<stream->userOutputChannels;i++)
+                    {
+                        /* Only write the user output channels. Leave the rest blank */
+                        PaUtil_SetOutputChannel(&stream->bufferProcessor,i,((unsigned char*)(stream->packets[outbuf+2].Header.Data))+(i*stream->outputSampleSize),stream->deviceOutputChannels);
+                    }
+                }
+            }
+            if(emptyRecordbuf)
+            {
+                PaUtil_SetInputFrameCount(&stream->bufferProcessor,stream->packets[inbuf].Header.DataUsed/stream->bytesPerInputFrame);
+                for(i=0;i<stream->userInputChannels;i++)
+                {
+                    /* Only read as many channels as the user wants */
+                    PaUtil_SetInputChannel(&stream->bufferProcessor,i,((unsigned char*)(stream->packets[inbuf].Header.Data))+(i*stream->inputSampleSize),stream->deviceInputChannels);
+                }
+            }
+            /* Only call the EndBufferProcessing function is the total input frames == total output frames */
+            if((stream->bufferProcessor.hostInputFrameCount[0] + stream->bufferProcessor.hostInputFrameCount[1]) ==
+                (stream->bufferProcessor.hostOutputFrameCount[0] + stream->bufferProcessor.hostOutputFrameCount[1]) )
+                framesProcessed = PaUtil_EndBufferProcessing(&stream->bufferProcessor,&cbResult);
+            else framesProcessed = 0;
+            if( doChannelCopy )
+            {
+                /* Copy the first output channel to the other channels */
+                switch(stream->outputSampleSize)
+                {
+                    case 2:
+                        DuplicateFirstChannelInt16(stream->packets[outbuf+2].Header.Data,stream->deviceOutputChannels,stream->framesPerHostOBuffer);
+                        break;
+                    case 3:
+                        DuplicateFirstChannelInt24(stream->packets[outbuf+2].Header.Data,stream->deviceOutputChannels,stream->framesPerHostOBuffer);
+                        break;
+                    case 4:
+                        DuplicateFirstChannelInt32(stream->packets[outbuf+2].Header.Data,stream->deviceOutputChannels,stream->framesPerHostOBuffer);
+                        break;
+                    default:
+                        assert(0); /* Unsupported format! */
+                        break;
+                }
+            }
+            PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+        }
+        else
+        {
+            fillPlaybuf = 0;
+            emptyRecordbuf = 0;
+        }
+            
+        /*
+        if(cbResult != paContinue)
+        {
+            PA_DEBUG(("cbResult=%d, pending=%d:",cbResult,pending));
+        }
+        */
+        /* Submit buffers */
+        if((fillPlaybuf)&&(cbResult!=paAbort))
+        {
+            if(!PinWrite(stream->playbackPin->handle,&stream->packets[outbuf+2]))
+                outbuf = (outbuf+1)&1; /* Increment and wrap */
+            pending++;
+            if( priming )
+                priming--; /* Have to prime twice */
+        }
+        if((emptyRecordbuf)&&(cbResult==paContinue))
+        {
+            stream->packets[inbuf].Header.DataUsed = 0; /* Reset for reuse */
+            PinRead(stream->recordingPin->handle,&stream->packets[inbuf]);
+            inbuf = (inbuf+1)&1; /* Increment and wrap */
+            pending++;
+        }
+        if(pending==0)
+        {
+            PA_DEBUG(("pending==0 finished...;"));
+            break;
+        }
+        if((!stream->playbackPin)&&(cbResult!=paContinue))
+        {
+            PA_DEBUG(("record only cbResult=%d...;",cbResult));
+            break;
+        }
+    }
+
+    PA_DEBUG(("Finished thread"));
+
+    /* Finished, either normally or aborted */
+    if(stream->playbackPin)
+    {
+        result = PinSetState(stream->playbackPin, KSSTATE_PAUSE);
+        result = PinSetState(stream->playbackPin, KSSTATE_STOP);
+    }
+    if(stream->recordingPin)
+    {
+        result = PinSetState(stream->recordingPin, KSSTATE_PAUSE);
+        result = PinSetState(stream->recordingPin, KSSTATE_STOP);
+    }
+
+    stream->streamActive = 0;
+
+    if((!stream->streamStop)&&(!stream->streamAbort))
+    {
+          /* Invoke the user stream finished callback */
+          /* Only do it from here if not being stopped/aborted by user */
+          if( stream->streamRepresentation.streamFinishedCallback != 0 )
+              stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+    stream->streamStop = 0;
+    stream->streamAbort = 0;
+
+    /* Reset process priority if necessary */
+    if(stream->oldProcessPriority != REALTIME_PRIORITY_CLASS)
+    {
+        SetPriorityClass(GetCurrentProcess(),stream->oldProcessPriority);
+        stream->oldProcessPriority = REALTIME_PRIORITY_CLASS;
+    }
+
+    PA_LOGL_;
+    ExitThread(0);
+    return 0;
+}
+
+static PaError StartStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    DWORD dwID;
+    BOOL ret;
+    int size;
+
+    PA_LOGE_;
+
+    stream->streamStop = 0;
+    stream->streamAbort = 0;
+    size = 5;
+    while(size--)
+    {
+        if(stream->events[size] != NULL)
+        {
+            ResetEvent(stream->events[size]);
+        }
+    }
+
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+
+    stream->oldProcessPriority = GetPriorityClass(GetCurrentProcess());
+    /* Uncomment the following line to enable dynamic boosting of the process
+     * priority to real time for best low latency support
+     * Disabled by default because RT processes can easily block the OS */
+    /*ret = SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);
+      PA_DEBUG(("Class ret = %d;",ret));*/
+
+    stream->streamStarted = 1;
+    stream->streamThread = CreateThread(NULL, 0, ProcessingThread, stream, 0, &dwID);
+    if(stream->streamThread == NULL)
+    {
+        stream->streamStarted = 0;
+        result = paInsufficientMemory;
+        goto end;
+    }
+    ret = SetThreadPriority(stream->streamThread,THREAD_PRIORITY_TIME_CRITICAL);
+    PA_DEBUG(("Priority ret = %d;",ret));
+    /* Make the stream active */
+    stream->streamActive = 1;
+
+end:
+    PA_LOGL_;
+    return result;
+}
+
+
+static PaError StopStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    int doCb = 0;
+
+    PA_LOGE_;
+
+    if(stream->streamActive)
+    {
+        doCb = 1;
+        stream->streamStop = 1;
+        while(stream->streamActive)
+        {
+            PA_DEBUG(("W."));
+            Sleep(10); /* Let thread sleep for 10 msec */
+        }
+    }
+
+    PA_DEBUG(("Terminating thread"));
+    if(stream->streamStarted && stream->streamThread)
+    {
+        TerminateThread(stream->streamThread,0);
+        stream->streamThread = NULL;
+    }
+
+    stream->streamStarted = 0;
+
+    if(stream->oldProcessPriority != REALTIME_PRIORITY_CLASS)
+    {
+        SetPriorityClass(GetCurrentProcess(),stream->oldProcessPriority);
+        stream->oldProcessPriority = REALTIME_PRIORITY_CLASS;
+    }
+
+    if(doCb)
+    {
+        /* Do user callback now after all state has been reset */
+        /* This means it should be safe for the called function */
+        /* to invoke e.g. StartStream */
+        if( stream->streamRepresentation.streamFinishedCallback != 0 )
+             stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+
+    PA_LOGL_;
+    return result;
+}
+
+static PaError AbortStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    int doCb = 0;
+
+    PA_LOGE_;
+
+    if(stream->streamActive)
+    {
+        doCb = 1;
+        stream->streamAbort = 1;
+        SetEvent(stream->events[4]); /* Signal immediately */
+        while(stream->streamActive)
+        {
+            Sleep(10);
+        }
+    }
+
+    if(stream->streamStarted && stream->streamThread)
+    {
+        TerminateThread(stream->streamThread,0);
+        stream->streamThread = NULL;
+    }
+
+    stream->streamStarted = 0;
+
+    if(stream->oldProcessPriority != REALTIME_PRIORITY_CLASS)
+    {
+        SetPriorityClass(GetCurrentProcess(),stream->oldProcessPriority);
+        stream->oldProcessPriority = REALTIME_PRIORITY_CLASS;
+    }
+
+    if(doCb)
+    {
+        /* Do user callback now after all state has been reset */
+        /* This means it should be safe for the called function */
+        /* to invoke e.g. StartStream */
+        if( stream->streamRepresentation.streamFinishedCallback != 0 )
+            stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+    }
+
+    stream->streamActive = 0;
+    stream->streamStarted = 0;
+
+    PA_LOGL_;
+    return result;
+}
+
+
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    int result = 0;
+
+    PA_LOGE_;
+
+    if(!stream->streamStarted)
+        result = 1;
+
+    PA_LOGL_;
+    return result;
+}
+
+
+static PaError IsStreamActive( PaStream *s )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    int result = 0;
+
+    PA_LOGE_;
+
+    if(stream->streamActive)
+        result = 1;
+
+    PA_LOGL_;
+    return result;
+}
+
+
+static PaTime GetStreamTime( PaStream* s )
+{
+    PA_LOGE_;
+    PA_LOGL_;
+    (void)s;
+    return PaUtil_GetTime();
+}
+
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+    double result;
+    PA_LOGE_;
+    result = PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+    PA_LOGL_;
+    return result;
+}
+
+
+/*
+    As separate stream interfaces are used for blocking and callback
+    streams, the following functions can be guaranteed to only be called
+    for blocking streams.
+*/
+
+static PaError ReadStream( PaStream* s,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+
+    PA_LOGE_;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+    PA_LOGL_;
+    return paNoError;
+}
+
+
+static PaError WriteStream( PaStream* s,
+                            const void *buffer,
+                            unsigned long frames )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+
+    PA_LOGE_;
+
+    /* suppress unused variable warnings */
+    (void) buffer;
+    (void) frames;
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+    PA_LOGL_;
+    return paNoError;
+}
+
+
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+
+    PA_LOGE_;
+
+    /* suppress unused variable warnings */
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+    PA_LOGL_;
+    return 0;
+}
+
+
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaWinWdmStream *stream = (PaWinWdmStream*)s;
+
+    PA_LOGE_;
+    /* suppress unused variable warnings */
+    (void) stream;
+
+    /* IMPLEMENT ME, see portaudio.h for required behavior*/
+    PA_LOGL_;
+    return 0;
+}
\ No newline at end of file
diff --git a/external/portaudio2007/pa_win_wdmks_utils.h b/external/portaudio2007/pa_win_wdmks_utils.h
new file mode 100644
index 0000000..f54035f
--- /dev/null
+++ b/external/portaudio2007/pa_win_wdmks_utils.h
@@ -0,0 +1,65 @@
+#ifndef PA_WIN_WDMKS_UTILS_H
+#define PA_WIN_WDMKS_UTILS_H
+
+/*
+ * PortAudio Portable Real-Time Audio Library
+ * Windows WDM KS utilities
+ *
+ * Copyright (c) 1999 - 2007 Ross Bencina, Andrew Baldwin
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @brief Utilities for working with the Windows WDM KS API
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+    Query for the maximum number of channels supported by any pin of the
+    specified device. Returns 0 if the query fails for any reason.
+
+    @param wcharDevicePath A system level PnP interface path, supplied as a WCHAR unicode string.
+    Declard as void* to avoid introducing a dependency on wchar_t here.
+
+    @param isInput A flag specifying whether to query for input (non-zero) or output (zero) channels.
+*/
+int PaWin_WDMKS_QueryFilterMaximumChannelCount( void *wcharDevicePath, int isInput );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_WIN_WDMKS_UTILS_H */
\ No newline at end of file
diff --git a/external/portaudio2007/pa_win_wmme.c b/external/portaudio2007/pa_win_wmme.c
new file mode 100644
index 0000000..a77bbdd
--- /dev/null
+++ b/external/portaudio2007/pa_win_wmme.c
@@ -0,0 +1,3903 @@
+#ifdef _WIN32
+/*
+ * $Id: pa_win_wmme.c 1286 2007-09-26 21:34:23Z rossb $
+ * pa_win_wmme.c
+ * Implementation of PortAudio for Windows MultiMedia Extensions (WMME)       
+ *                                                                                         
+ * PortAudio Portable Real-Time Audio Library
+ * Latest Version at: http://www.portaudio.com
+ *
+ * Authors: Ross Bencina and Phil Burk
+ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/* Modification History:
+ PLB = Phil Burk
+ JM = Julien Maillard
+ RDB = Ross Bencina
+ PLB20010402 - sDevicePtrs now allocates based on sizeof(pointer)
+ PLB20010413 - check for excessive numbers of channels
+ PLB20010422 - apply Mike Berry's changes for CodeWarrior on PC
+               including conditional inclusion of memory.h,
+               and explicit typecasting on memory allocation
+ PLB20010802 - use GlobalAlloc for sDevicesPtr instead of PaHost_AllocFastMemory
+ PLB20010816 - pass process instead of thread to SetPriorityClass()
+ PLB20010927 - use number of frames instead of real-time for CPULoad calculation.
+ JM20020118 - prevent hung thread when buffers underflow.
+ PLB20020321 - detect Win XP versus NT, 9x; fix DBUG typo; removed init of CurrentCount
+ RDB20020411 - various renaming cleanups, factored streamData alloc and cpu usage init
+ RDB20020417 - stopped counting WAVE_MAPPER when there were no real devices
+               refactoring, renaming and fixed a few edge case bugs
+ RDB20020531 - converted to V19 framework
+ ** NOTE  maintanance history is now stored in CVS **
+*/
+
+/** @file
+	@ingroup hostaip_src
+
+	@todo Fix buffer catch up code, can sometimes get stuck (perhaps fixed now,
+            needs to be reviewed and tested.)
+
+    @todo implement paInputUnderflow, paOutputOverflow streamCallback statusFlags, paNeverDropInput.
+
+    @todo BUG: PA_MME_SET_LAST_WAVEIN/OUT_ERROR is used in functions which may
+                be called asynchronously from the callback thread. this is bad.
+
+    @todo implement inputBufferAdcTime in callback thread
+
+    @todo review/fix error recovery and cleanup in marked functions
+
+    @todo implement timeInfo for stream priming
+
+    @todo handle the case where the callback returns paAbort or paComplete during stream priming.
+
+    @todo review input overflow and output underflow handling in ReadStream and WriteStream
+
+Non-critical stuff for the future:
+
+    @todo Investigate supporting host buffer formats > 16 bits
+    
+    @todo define UNICODE and _UNICODE in the project settings and see what breaks
+
+    @todo refactor conversion of MMSYSTEM errors into PA arrors into a single function.
+
+    @todo cleanup WAVEFORMATEXTENSIBLE retry in InitializeWaveHandles to not use a for loop
+
+*/
+
+/*
+    How it works:
+
+    For both callback and blocking read/write streams we open the MME devices
+    in CALLBACK_EVENT mode. In this mode, MME signals an Event object whenever
+    it has finished with a buffer (either filled it for input, or played it
+    for output). Where necessary we block waiting for Event objects using
+    WaitMultipleObjects().
+
+    When implementing a PA callback stream, we set up a high priority thread
+    which waits on the MME buffer Events and drains/fills the buffers when
+    they are ready.
+
+    When implementing a PA blocking read/write stream, we simply wait on these
+    Events (when necessary) inside the ReadStream() and WriteStream() functions.
+*/
+
+#undef UNICODE
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <windows.h>
+#include <mmsystem.h>
+#ifndef UNDER_CE
+#include <process.h>
+#endif
+#include <assert.h>
+/* PLB20010422 - "memory.h" doesn't work on CodeWarrior for PC. Thanks Mike Berry for the mod. */
+#ifndef __MWERKS__XXX
+#include <malloc.h>
+#include <memory.h>
+#endif /* __MWERKS__ */
+
+#include "portaudio.h"
+#include "pa_trace.h"
+#include "pa_util.h"
+#include "pa_allocation.h"
+#include "pa_hostapi.h"
+#include "pa_stream.h"
+#include "pa_cpuload.h"
+#include "pa_process.h"
+#include "pa_debugprint.h"
+
+#include "pa_win_wmme.h"
+#include "pa_win_waveformat.h"
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+#include "pa_win_wdmks_utils.h"
+#ifndef DRV_QUERYDEVICEINTERFACE
+#define DRV_QUERYDEVICEINTERFACE     (DRV_RESERVED + 12)
+#endif
+#ifndef DRV_QUERYDEVICEINTERFACESIZE
+#define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13)
+#endif
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+#if (defined(UNDER_CE))
+#pragma comment(lib, "Coredll.lib")
+#elif (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
+#pragma comment(lib, "winmm.lib")
+#endif
+
+/*
+ provided in newer platform sdks
+ */
+#ifndef DWORD_PTR
+#define DWORD_PTR DWORD
+#endif
+
+/************************************************* Constants ********/
+
+#define PA_MME_USE_HIGH_DEFAULT_LATENCY_    (0)  /* For debugging glitches. */
+
+#if PA_MME_USE_HIGH_DEFAULT_LATENCY_
+ #define PA_MME_WIN_9X_DEFAULT_LATENCY_                     (0.4)
+ #define PA_MME_MIN_HOST_OUTPUT_BUFFER_COUNT_               (4)
+ #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_	(4)
+ #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_HALF_DUPLEX_	(4)
+ #define PA_MME_MIN_HOST_BUFFER_FRAMES_WHEN_UNSPECIFIED_	(16)
+ #define PA_MME_MAX_HOST_BUFFER_SECS_				        (0.3)       /* Do not exceed unless user buffer exceeds */
+ #define PA_MME_MAX_HOST_BUFFER_BYTES_				        (32 * 1024) /* Has precedence over PA_MME_MAX_HOST_BUFFER_SECS_, some drivers are known to crash with buffer sizes > 32k */
+#else
+ #define PA_MME_WIN_9X_DEFAULT_LATENCY_                     (0.2)
+ #define PA_MME_MIN_HOST_OUTPUT_BUFFER_COUNT_               (2)
+ #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_	(3)
+ #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_HALF_DUPLEX_	(2)
+ #define PA_MME_MIN_HOST_BUFFER_FRAMES_WHEN_UNSPECIFIED_	(16)
+ #define PA_MME_MAX_HOST_BUFFER_SECS_				        (0.1)       /* Do not exceed unless user buffer exceeds */
+ #define PA_MME_MAX_HOST_BUFFER_BYTES_				        (32 * 1024) /* Has precedence over PA_MME_MAX_HOST_BUFFER_SECS_, some drivers are known to crash with buffer sizes > 32k */
+#endif
+
+/* Use higher latency for NT because it is even worse at real-time
+   operation than Win9x.
+*/
+#define PA_MME_WIN_NT_DEFAULT_LATENCY_      (PA_MME_WIN_9X_DEFAULT_LATENCY_ * 2)
+#define PA_MME_WIN_WDM_DEFAULT_LATENCY_     (PA_MME_WIN_9X_DEFAULT_LATENCY_)
+
+
+#define PA_MME_MIN_TIMEOUT_MSEC_        (1000)
+
+static const char constInputMapperSuffix_[] = " - Input";
+static const char constOutputMapperSuffix_[] = " - Output";
+
+/********************************************************************/
+
+typedef struct PaWinMmeStream PaWinMmeStream;     /* forward declaration */
+
+/* prototypes for functions declared in this file */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+PaError PaWinMme_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi );
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** stream,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData );
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate );
+static PaError CloseStream( PaStream* stream );
+static PaError StartStream( PaStream *stream );
+static PaError StopStream( PaStream *stream );
+static PaError AbortStream( PaStream *stream );
+static PaError IsStreamStopped( PaStream *s );
+static PaError IsStreamActive( PaStream *stream );
+static PaTime GetStreamTime( PaStream *stream );
+static double GetStreamCpuLoad( PaStream* stream );
+static PaError ReadStream( PaStream* stream, void *buffer, unsigned long frames );
+static PaError WriteStream( PaStream* stream, const void *buffer, unsigned long frames );
+static signed long GetStreamReadAvailable( PaStream* stream );
+static signed long GetStreamWriteAvailable( PaStream* stream );
+
+
+/* macros for setting last host error information */
+
+#ifdef UNICODE
+
+#define PA_MME_SET_LAST_WAVEIN_ERROR( mmresult ) \
+    {                                                                   \
+        wchar_t mmeErrorTextWide[ MAXERRORLENGTH ];                     \
+        char mmeErrorText[ MAXERRORLENGTH ];                            \
+        waveInGetErrorText( mmresult, mmeErrorTextWide, MAXERRORLENGTH );   \
+        WideCharToMultiByte( CP_ACP, WC_COMPOSITECHECK | WC_DEFAULTCHAR,\
+            mmeErrorTextWide, -1, mmeErrorText, MAXERRORLENGTH, NULL, NULL );  \
+        PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText );   \
+    }
+
+#define PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult ) \
+    {                                                                   \
+        wchar_t mmeErrorTextWide[ MAXERRORLENGTH ];                     \
+        char mmeErrorText[ MAXERRORLENGTH ];                            \
+        waveOutGetErrorText( mmresult, mmeErrorTextWide, MAXERRORLENGTH );  \
+        WideCharToMultiByte( CP_ACP, WC_COMPOSITECHECK | WC_DEFAULTCHAR,\
+            mmeErrorTextWide, -1, mmeErrorText, MAXERRORLENGTH, NULL, NULL );  \
+        PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText );   \
+    }
+    
+#else /* !UNICODE */
+
+#define PA_MME_SET_LAST_WAVEIN_ERROR( mmresult ) \
+    {                                                                   \
+        char mmeErrorText[ MAXERRORLENGTH ];                            \
+        waveInGetErrorText( mmresult, mmeErrorText, MAXERRORLENGTH );   \
+        PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText );   \
+    }
+
+#define PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult ) \
+    {                                                                   \
+        char mmeErrorText[ MAXERRORLENGTH ];                            \
+        waveOutGetErrorText( mmresult, mmeErrorText, MAXERRORLENGTH );  \
+        PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText );   \
+    }
+
+#endif /* UNICODE */
+
+
+static void PaMme_SetLastSystemError( DWORD errorCode )
+{
+    char *lpMsgBuf;
+    FormatMessage(
+        FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+        NULL,
+        errorCode,
+        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+        (LPTSTR) &lpMsgBuf,
+        0,
+        NULL
+    );
+    PaUtil_SetLastHostErrorInfo( paMME, errorCode, lpMsgBuf );
+    LocalFree( lpMsgBuf );
+}
+
+#define PA_MME_SET_LAST_SYSTEM_ERROR( errorCode ) \
+    PaMme_SetLastSystemError( errorCode )
+
+
+/* PaError returning wrappers for some commonly used win32 functions
+    note that we allow passing a null ptr to have no effect.
+*/
+
+static PaError CreateEventWithPaError( HANDLE *handle,
+        LPSECURITY_ATTRIBUTES lpEventAttributes,
+        BOOL bManualReset,
+        BOOL bInitialState,
+        LPCTSTR lpName )
+{
+    PaError result = paNoError;
+
+    *handle = NULL;
+    
+    *handle = CreateEvent( lpEventAttributes, bManualReset, bInitialState, lpName );
+    if( *handle == NULL )
+    {
+        result = paUnanticipatedHostError;
+        PA_MME_SET_LAST_SYSTEM_ERROR( GetLastError() );
+    }
+
+    return result;
+}
+
+
+static PaError ResetEventWithPaError( HANDLE handle )
+{
+    PaError result = paNoError;
+
+    if( handle )
+    {
+        if( ResetEvent( handle ) == 0 )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_SYSTEM_ERROR( GetLastError() );
+        }
+    }
+
+    return result;
+}
+
+
+static PaError CloseHandleWithPaError( HANDLE handle )
+{
+    PaError result = paNoError;
+    
+    if( handle )
+    {
+        if( CloseHandle( handle ) == 0 )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_SYSTEM_ERROR( GetLastError() );
+        }
+    }
+    
+    return result;
+}
+
+
+/* PaWinMmeHostApiRepresentation - host api datastructure specific to this implementation */
+
+typedef struct
+{
+    PaUtilHostApiRepresentation inheritedHostApiRep;
+    PaUtilStreamInterface callbackStreamInterface;
+    PaUtilStreamInterface blockingStreamInterface;
+
+    PaUtilAllocationGroup *allocations;
+    
+    int inputDeviceCount, outputDeviceCount;
+
+    /** winMmeDeviceIds is an array of WinMme device ids.
+        fields in the range [0, inputDeviceCount) are input device ids,
+        and [inputDeviceCount, inputDeviceCount + outputDeviceCount) are output
+        device ids.
+     */ 
+    UINT *winMmeDeviceIds;
+}
+PaWinMmeHostApiRepresentation;
+
+
+typedef struct
+{
+    PaDeviceInfo inheritedDeviceInfo;
+    DWORD dwFormats; /**<< standard formats bitmask from the WAVEINCAPS and WAVEOUTCAPS structures */
+    char deviceInputChannelCountIsKnown; /**<< if the system returns 0xFFFF then we don't really know the number of supported channels (1=>known, 0=>unknown)*/
+    char deviceOutputChannelCountIsKnown; /**<< if the system returns 0xFFFF then we don't really know the number of supported channels (1=>known, 0=>unknown)*/
+}
+PaWinMmeDeviceInfo;
+
+
+/*************************************************************************
+ * Returns recommended device ID.
+ * On the PC, the recommended device can be specified by the user by
+ * setting an environment variable. For example, to use device #1.
+ *
+ *    set PA_RECOMMENDED_OUTPUT_DEVICE=1
+ *
+ * The user should first determine the available device ID by using
+ * the supplied application "pa_devs".
+ */
+#define PA_ENV_BUF_SIZE_  (32)
+#define PA_REC_IN_DEV_ENV_NAME_  ("PA_RECOMMENDED_INPUT_DEVICE")
+#define PA_REC_OUT_DEV_ENV_NAME_  ("PA_RECOMMENDED_OUTPUT_DEVICE")
+static PaDeviceIndex GetEnvDefaultDeviceID( char *envName )
+{
+    PaDeviceIndex recommendedIndex = paNoDevice;
+    DWORD   hresult;
+    char    envbuf[PA_ENV_BUF_SIZE_];
+
+#ifndef WIN32_PLATFORM_PSPC /* no GetEnvironmentVariable on PocketPC */
+
+    /* Let user determine default device by setting environment variable. */
+    hresult = GetEnvironmentVariableA( envName, envbuf, PA_ENV_BUF_SIZE_ );
+    if( (hresult > 0) && (hresult < PA_ENV_BUF_SIZE_) )
+    {
+        recommendedIndex = atoi( envbuf );
+    }
+#endif
+
+    return recommendedIndex;
+}
+
+
+static void InitializeDefaultDeviceIdsFromEnv( PaWinMmeHostApiRepresentation *hostApi )
+{
+    PaDeviceIndex device;
+
+    /* input */
+    device = GetEnvDefaultDeviceID( PA_REC_IN_DEV_ENV_NAME_ );
+    if( device != paNoDevice &&
+            ( device >= 0 && device < hostApi->inheritedHostApiRep.info.deviceCount ) &&
+            hostApi->inheritedHostApiRep.deviceInfos[ device ]->maxInputChannels > 0 )
+    {
+        hostApi->inheritedHostApiRep.info.defaultInputDevice = device;
+    }
+
+    /* output */
+    device = GetEnvDefaultDeviceID( PA_REC_OUT_DEV_ENV_NAME_ );
+    if( device != paNoDevice &&
+            ( device >= 0 && device < hostApi->inheritedHostApiRep.info.deviceCount ) &&
+            hostApi->inheritedHostApiRep.deviceInfos[ device ]->maxOutputChannels > 0 )
+    {
+        hostApi->inheritedHostApiRep.info.defaultOutputDevice = device;
+    }
+}
+
+
+/** Convert external PA ID to a windows multimedia device ID
+*/
+static UINT LocalDeviceIndexToWinMmeDeviceId( PaWinMmeHostApiRepresentation *hostApi, PaDeviceIndex device )
+{
+    assert( device >= 0 && device < hostApi->inputDeviceCount + hostApi->outputDeviceCount );
+
+	return hostApi->winMmeDeviceIds[ device ];
+}
+
+
+static PaError QueryInputWaveFormatEx( int deviceId, WAVEFORMATEX *waveFormatEx )
+{
+    MMRESULT mmresult;
+    
+    switch( mmresult = waveInOpen( NULL, deviceId, waveFormatEx, 0, 0, WAVE_FORMAT_QUERY ) )
+    {
+        case MMSYSERR_NOERROR:
+            return paNoError;
+        case MMSYSERR_ALLOCATED:    /* Specified resource is already allocated. */
+            return paDeviceUnavailable;
+        case MMSYSERR_NODRIVER:	    /* No device driver is present. */
+            return paDeviceUnavailable;
+        case MMSYSERR_NOMEM:	    /* Unable to allocate or lock memory. */
+            return paInsufficientMemory;
+        case WAVERR_BADFORMAT:      /* Attempted to open with an unsupported waveform-audio format. */
+            return paSampleFormatNotSupported;
+                    
+        case MMSYSERR_BADDEVICEID:	/* Specified device identifier is out of range. */
+            /* falls through */
+        default:
+            PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+            return paUnanticipatedHostError;
+    }
+}
+
+
+static PaError QueryOutputWaveFormatEx( int deviceId, WAVEFORMATEX *waveFormatEx )
+{
+    MMRESULT mmresult;
+    
+    switch( mmresult = waveOutOpen( NULL, deviceId, waveFormatEx, 0, 0, WAVE_FORMAT_QUERY ) )
+    {
+        case MMSYSERR_NOERROR:
+            return paNoError;
+        case MMSYSERR_ALLOCATED:    /* Specified resource is already allocated. */
+            return paDeviceUnavailable;
+        case MMSYSERR_NODRIVER:	    /* No device driver is present. */
+            return paDeviceUnavailable;
+        case MMSYSERR_NOMEM:	    /* Unable to allocate or lock memory. */
+            return paInsufficientMemory;
+        case WAVERR_BADFORMAT:      /* Attempted to open with an unsupported waveform-audio format. */
+            return paSampleFormatNotSupported;
+                    
+        case MMSYSERR_BADDEVICEID:	/* Specified device identifier is out of range. */
+            /* falls through */
+        default:
+            PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+            return paUnanticipatedHostError;
+    }
+}
+
+
+static PaError QueryFormatSupported( PaDeviceInfo *deviceInfo,
+        PaError (*waveFormatExQueryFunction)(int, WAVEFORMATEX*),
+        int winMmeDeviceId, int channels, double sampleRate )
+{
+    PaWinMmeDeviceInfo *winMmeDeviceInfo = (PaWinMmeDeviceInfo*)deviceInfo;
+    PaWinWaveFormat waveFormat;
+    
+    if( sampleRate == 11025.0
+        && ( (channels == 1 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_1M16))
+            || (channels == 2 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_1S16)) ) ){
+
+        return paNoError;
+    }
+
+    if( sampleRate == 22050.0
+        && ( (channels == 1 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_2M16))
+            || (channels == 2 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_2S16)) ) ){
+
+        return paNoError;
+    }
+
+    if( sampleRate == 44100.0
+        && ( (channels == 1 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_4M16))
+            || (channels == 2 && (winMmeDeviceInfo->dwFormats & WAVE_FORMAT_4S16)) ) ){
+
+        return paNoError;
+    }
+
+    /* first, attempt to query the device using WAVEFORMATEXTENSIBLE, 
+       if this fails we fall back to WAVEFORMATEX */
+
+    /* @todo at the moment we only query with 16 bit sample format and directout speaker config*/
+    PaWin_InitializeWaveFormatExtensible( &waveFormat, channels, 
+            paInt16, sampleRate, PAWIN_SPEAKER_DIRECTOUT );
+
+    if( waveFormatExQueryFunction( winMmeDeviceId, (WAVEFORMATEX*)&waveFormat ) == paNoError )
+        return paNoError;
+
+    PaWin_InitializeWaveFormatEx( &waveFormat, channels, paInt16, sampleRate );
+
+    return waveFormatExQueryFunction( winMmeDeviceId, (WAVEFORMATEX*)&waveFormat );
+}
+
+
+#define PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_  (13) /* must match array length below */
+static double defaultSampleRateSearchOrder_[] =
+    { 44100.0, 48000.0, 32000.0, 24000.0, 22050.0, 88200.0, 96000.0, 192000.0,
+        16000.0, 12000.0, 11025.0, 9600.0, 8000.0 };
+
+static void DetectDefaultSampleRate( PaWinMmeDeviceInfo *winMmeDeviceInfo, int winMmeDeviceId,
+        PaError (*waveFormatExQueryFunction)(int, WAVEFORMATEX*), int maxChannels )
+{
+    PaDeviceInfo *deviceInfo = &winMmeDeviceInfo->inheritedDeviceInfo;
+    int i;
+    
+    deviceInfo->defaultSampleRate = 0.;
+
+    for( i=0; i < PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_; ++i )
+    {
+        double sampleRate = defaultSampleRateSearchOrder_[ i ]; 
+        PaError paerror = QueryFormatSupported( deviceInfo, waveFormatExQueryFunction, winMmeDeviceId, maxChannels, sampleRate );
+        if( paerror == paNoError )
+        {
+            deviceInfo->defaultSampleRate = sampleRate;
+            break;
+        }
+    }
+}
+
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+static int QueryWaveInKSFilterMaxChannels( int waveInDeviceId, int *maxChannels )
+{
+    void *devicePath;
+    DWORD devicePathSize;
+    int result = 0;
+
+    if( waveInMessage((HWAVEIN)waveInDeviceId, DRV_QUERYDEVICEINTERFACESIZE,
+            (DWORD_PTR)&devicePathSize, 0 ) != MMSYSERR_NOERROR )
+        return 0;
+
+    devicePath = PaUtil_AllocateMemory( devicePathSize );
+    if( !devicePath )
+        return 0;
+
+    /* apparently DRV_QUERYDEVICEINTERFACE returns a unicode interface path, although this is undocumented */
+    if( waveInMessage((HWAVEIN)waveInDeviceId, DRV_QUERYDEVICEINTERFACE,
+            (DWORD_PTR)devicePath, devicePathSize ) == MMSYSERR_NOERROR )
+    {
+        int count = PaWin_WDMKS_QueryFilterMaximumChannelCount( devicePath, /* isInput= */ 1  );
+        if( count > 0 )
+        {
+            *maxChannels = count;
+            result = 1;
+        }
+    }
+
+    PaUtil_FreeMemory( devicePath );
+
+    return result;
+}
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+
+static PaError InitializeInputDeviceInfo( PaWinMmeHostApiRepresentation *winMmeHostApi,
+        PaWinMmeDeviceInfo *winMmeDeviceInfo, UINT winMmeInputDeviceId, int *success )
+{
+    PaError result = paNoError;
+    char *deviceName; /* non-const ptr */
+    MMRESULT mmresult;
+    WAVEINCAPSA wic;
+    PaDeviceInfo *deviceInfo = &winMmeDeviceInfo->inheritedDeviceInfo;
+    
+    *success = 0;
+
+    mmresult = waveInGetDevCapsA( winMmeInputDeviceId, &wic, sizeof( WAVEINCAPSA ) );
+    if( mmresult == MMSYSERR_NOMEM )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+    else if( mmresult != MMSYSERR_NOERROR )
+    {
+        /* instead of returning paUnanticipatedHostError we return
+            paNoError, but leave success set as 0. This allows
+            Pa_Initialize to just ignore this device, without failing
+            the entire initialisation process.
+        */
+        return paNoError;
+    }           
+
+    if( winMmeInputDeviceId == WAVE_MAPPER )
+    {
+        /* Append I/O suffix to WAVE_MAPPER device. */
+        deviceName = (char *)PaUtil_GroupAllocateMemory(
+                    winMmeHostApi->allocations, strlen( wic.szPname ) + 1 + sizeof(constInputMapperSuffix_) );
+        if( !deviceName )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+        strcpy( deviceName, wic.szPname );
+        strcat( deviceName, constInputMapperSuffix_ );
+    }
+    else
+    {
+        deviceName = (char*)PaUtil_GroupAllocateMemory(
+                    winMmeHostApi->allocations, strlen( wic.szPname ) + 1 );
+        if( !deviceName )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+        strcpy( deviceName, wic.szPname  );
+    }
+    deviceInfo->name = deviceName;
+
+    if( wic.wChannels == 0xFFFF || wic.wChannels < 1 || wic.wChannels > 255 ){
+        /* For Windows versions using WDM (possibly Windows 98 ME and later)
+         * the kernel mixer sits between the application and the driver. As a result,
+         * wave*GetDevCaps often kernel mixer channel counts, which are unlimited.
+         * When this happens we assume the device is stereo and set a flag
+         * so that other channel counts can be tried with OpenStream -- i.e. when
+         * device*ChannelCountIsKnown is false, OpenStream will try whatever
+         * channel count you supply.
+         * see also InitializeOutputDeviceInfo() below.
+     */
+
+        PA_DEBUG(("Pa_GetDeviceInfo: Num input channels reported as %d! Changed to 2.\n", wic.wChannels ));
+        deviceInfo->maxInputChannels = 2;
+        winMmeDeviceInfo->deviceInputChannelCountIsKnown = 0;
+    }else{
+        deviceInfo->maxInputChannels = wic.wChannels;
+        winMmeDeviceInfo->deviceInputChannelCountIsKnown = 1;
+    }
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+    winMmeDeviceInfo->deviceInputChannelCountIsKnown = 
+            QueryWaveInKSFilterMaxChannels( winMmeInputDeviceId, &deviceInfo->maxInputChannels );
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+    winMmeDeviceInfo->dwFormats = wic.dwFormats;
+
+    DetectDefaultSampleRate( winMmeDeviceInfo, winMmeInputDeviceId,
+            QueryInputWaveFormatEx, deviceInfo->maxInputChannels );
+
+    *success = 1;
+    
+error:
+    return result;
+}
+
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+static int QueryWaveOutKSFilterMaxChannels( int waveOutDeviceId, int *maxChannels )
+{
+    void *devicePath;
+    DWORD devicePathSize;
+    int result = 0;
+
+    if( waveOutMessage((HWAVEOUT)waveOutDeviceId, DRV_QUERYDEVICEINTERFACESIZE,
+            (DWORD_PTR)&devicePathSize, 0 ) != MMSYSERR_NOERROR )
+        return 0;
+
+    devicePath = PaUtil_AllocateMemory( devicePathSize );
+    if( !devicePath )
+        return 0;
+
+    /* apparently DRV_QUERYDEVICEINTERFACE returns a unicode interface path, although this is undocumented */
+    if( waveOutMessage((HWAVEOUT)waveOutDeviceId, DRV_QUERYDEVICEINTERFACE,
+            (DWORD_PTR)devicePath, devicePathSize ) == MMSYSERR_NOERROR )
+    {
+        int count = PaWin_WDMKS_QueryFilterMaximumChannelCount( devicePath, /* isInput= */ 0  );
+        if( count > 0 )
+        {
+            *maxChannels = count;
+            result = 1;
+        }
+    }
+
+    PaUtil_FreeMemory( devicePath );
+
+    return result;
+}
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+
+static PaError InitializeOutputDeviceInfo( PaWinMmeHostApiRepresentation *winMmeHostApi,
+        PaWinMmeDeviceInfo *winMmeDeviceInfo, UINT winMmeOutputDeviceId, int *success )
+{
+    PaError result = paNoError;
+    char *deviceName; /* non-const ptr */
+    MMRESULT mmresult;
+    WAVEOUTCAPSA woc;
+    PaDeviceInfo *deviceInfo = &winMmeDeviceInfo->inheritedDeviceInfo;
+
+    *success = 0;
+
+    mmresult = waveOutGetDevCapsA( winMmeOutputDeviceId, &woc, sizeof( WAVEOUTCAPSA ) );
+    if( mmresult == MMSYSERR_NOMEM )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+    else if( mmresult != MMSYSERR_NOERROR )
+    {
+        /* instead of returning paUnanticipatedHostError we return
+            paNoError, but leave success set as 0. This allows
+            Pa_Initialize to just ignore this device, without failing
+            the entire initialisation process.
+        */
+        return paNoError;
+    }
+
+    if( winMmeOutputDeviceId == WAVE_MAPPER )
+    {
+        /* Append I/O suffix to WAVE_MAPPER device. */
+        deviceName = (char *)PaUtil_GroupAllocateMemory(
+                    winMmeHostApi->allocations, strlen( woc.szPname ) + 1 + sizeof(constOutputMapperSuffix_) );
+        if( !deviceName )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+        strcpy( deviceName, woc.szPname );
+        strcat( deviceName, constOutputMapperSuffix_ );
+    }
+    else
+    {
+        deviceName = (char*)PaUtil_GroupAllocateMemory(
+                    winMmeHostApi->allocations, strlen( woc.szPname ) + 1 );
+        if( !deviceName )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+        strcpy( deviceName, woc.szPname  );
+    }
+    deviceInfo->name = deviceName;
+
+    if( woc.wChannels == 0xFFFF || woc.wChannels < 1 || woc.wChannels > 255 ){
+        /* For Windows versions using WDM (possibly Windows 98 ME and later)
+         * the kernel mixer sits between the application and the driver. As a result,
+         * wave*GetDevCaps often kernel mixer channel counts, which are unlimited.
+         * When this happens we assume the device is stereo and set a flag
+         * so that other channel counts can be tried with OpenStream -- i.e. when
+         * device*ChannelCountIsKnown is false, OpenStream will try whatever
+         * channel count you supply.
+         * see also InitializeInputDeviceInfo() above.
+     */
+
+        PA_DEBUG(("Pa_GetDeviceInfo: Num output channels reported as %d! Changed to 2.\n", woc.wChannels ));
+        deviceInfo->maxOutputChannels = 2;
+        winMmeDeviceInfo->deviceOutputChannelCountIsKnown = 0;
+    }else{
+        deviceInfo->maxOutputChannels = woc.wChannels;
+        winMmeDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+    }
+
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
+    winMmeDeviceInfo->deviceOutputChannelCountIsKnown = 
+            QueryWaveOutKSFilterMaxChannels( winMmeOutputDeviceId, &deviceInfo->maxOutputChannels );
+#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
+
+    winMmeDeviceInfo->dwFormats = woc.dwFormats;
+
+    DetectDefaultSampleRate( winMmeDeviceInfo, winMmeOutputDeviceId,
+            QueryOutputWaveFormatEx, deviceInfo->maxOutputChannels );
+
+    *success = 1;
+    
+error:
+    return result;
+}
+
+
+static void GetDefaultLatencies( PaTime *defaultLowLatency, PaTime *defaultHighLatency )
+{
+    OSVERSIONINFO osvi;
+    osvi.dwOSVersionInfoSize = sizeof( osvi );
+	GetVersionEx( &osvi );
+
+    /* Check for NT */
+    if( (osvi.dwMajorVersion == 4) && (osvi.dwPlatformId == 2) )
+    {
+        *defaultLowLatency = PA_MME_WIN_NT_DEFAULT_LATENCY_;
+    }
+    else if(osvi.dwMajorVersion >= 5)
+    {
+        *defaultLowLatency  = PA_MME_WIN_WDM_DEFAULT_LATENCY_;
+    }
+    else
+    {
+        *defaultLowLatency  = PA_MME_WIN_9X_DEFAULT_LATENCY_;
+    }     
+
+    *defaultHighLatency = *defaultLowLatency * 2;
+}
+
+
+PaError PaWinMme_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex hostApiIndex )
+{
+    PaError result = paNoError;
+    int i;
+    PaWinMmeHostApiRepresentation *winMmeHostApi;
+    int inputDeviceCount, outputDeviceCount, maximumPossibleDeviceCount;
+    PaWinMmeDeviceInfo *deviceInfoArray;
+    int deviceInfoInitializationSucceeded;
+    PaTime defaultLowLatency, defaultHighLatency;
+    DWORD waveInPreferredDevice, waveOutPreferredDevice;
+    DWORD preferredDeviceStatusFlags;
+
+    winMmeHostApi = (PaWinMmeHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaWinMmeHostApiRepresentation) );
+    if( !winMmeHostApi )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    winMmeHostApi->allocations = PaUtil_CreateAllocationGroup();
+    if( !winMmeHostApi->allocations )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    *hostApi = &winMmeHostApi->inheritedHostApiRep;
+    (*hostApi)->info.structVersion = 1;
+    (*hostApi)->info.type = paMME;
+    (*hostApi)->info.name = "MME";
+
+    
+    /* initialise device counts and default devices under the assumption that
+        there are no devices. These values are incremented below if and when
+        devices are successfully initialized.
+    */
+    (*hostApi)->info.deviceCount = 0;
+    (*hostApi)->info.defaultInputDevice = paNoDevice;
+    (*hostApi)->info.defaultOutputDevice = paNoDevice;
+    winMmeHostApi->inputDeviceCount = 0;
+    winMmeHostApi->outputDeviceCount = 0;
+
+#if !defined(DRVM_MAPPER_PREFERRED_GET)
+/* DRVM_MAPPER_PREFERRED_GET is defined in mmddk.h but we avoid a dependency on the DDK by defining it here */
+#define DRVM_MAPPER_PREFERRED_GET    (0x2000+21)
+#endif
+
+    /* the following calls assume that if wave*Message fails the preferred device parameter won't be modified */
+    preferredDeviceStatusFlags = 0;
+    waveInPreferredDevice = -1;
+    waveInMessage( (HWAVEIN)WAVE_MAPPER, DRVM_MAPPER_PREFERRED_GET, (DWORD)&waveInPreferredDevice, (DWORD)&preferredDeviceStatusFlags );
+
+    preferredDeviceStatusFlags = 0;
+    waveOutPreferredDevice = -1;
+    waveOutMessage( (HWAVEOUT)WAVE_MAPPER, DRVM_MAPPER_PREFERRED_GET, (DWORD)&waveOutPreferredDevice, (DWORD)&preferredDeviceStatusFlags );
+
+    maximumPossibleDeviceCount = 0;
+
+    inputDeviceCount = waveInGetNumDevs();
+    if( inputDeviceCount > 0 )
+    	maximumPossibleDeviceCount += inputDeviceCount + 1;	/* assume there is a WAVE_MAPPER */
+
+    outputDeviceCount = waveOutGetNumDevs();
+    if( outputDeviceCount > 0 )
+	    maximumPossibleDeviceCount += outputDeviceCount + 1;	/* assume there is a WAVE_MAPPER */
+
+
+    if( maximumPossibleDeviceCount > 0 ){
+
+        (*hostApi)->deviceInfos = (PaDeviceInfo**)PaUtil_GroupAllocateMemory(
+                winMmeHostApi->allocations, sizeof(PaDeviceInfo*) * maximumPossibleDeviceCount );
+        if( !(*hostApi)->deviceInfos )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        /* allocate all device info structs in a contiguous block */
+        deviceInfoArray = (PaWinMmeDeviceInfo*)PaUtil_GroupAllocateMemory(
+                winMmeHostApi->allocations, sizeof(PaWinMmeDeviceInfo) * maximumPossibleDeviceCount );
+        if( !deviceInfoArray )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        winMmeHostApi->winMmeDeviceIds = (UINT*)PaUtil_GroupAllocateMemory(
+                winMmeHostApi->allocations, sizeof(int) * maximumPossibleDeviceCount );
+        if( !winMmeHostApi->winMmeDeviceIds )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        GetDefaultLatencies( &defaultLowLatency, &defaultHighLatency );
+
+        if( inputDeviceCount > 0 ){
+            /* -1 is the WAVE_MAPPER */
+            for( i = -1; i < inputDeviceCount; ++i ){
+                UINT winMmeDeviceId = (UINT)((i==-1) ? WAVE_MAPPER : i);
+                PaWinMmeDeviceInfo *wmmeDeviceInfo = &deviceInfoArray[ (*hostApi)->info.deviceCount ];
+                PaDeviceInfo *deviceInfo = &wmmeDeviceInfo->inheritedDeviceInfo;
+                deviceInfo->structVersion = 2;
+                deviceInfo->hostApi = hostApiIndex;
+
+                deviceInfo->maxInputChannels = 0;
+                wmmeDeviceInfo->deviceInputChannelCountIsKnown = 1;
+                deviceInfo->maxOutputChannels = 0;
+                wmmeDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+
+                deviceInfo->defaultLowInputLatency = defaultLowLatency;
+                deviceInfo->defaultLowOutputLatency = defaultLowLatency;
+                deviceInfo->defaultHighInputLatency = defaultHighLatency;
+                deviceInfo->defaultHighOutputLatency = defaultHighLatency;
+
+                result = InitializeInputDeviceInfo( winMmeHostApi, wmmeDeviceInfo,
+                        winMmeDeviceId, &deviceInfoInitializationSucceeded );
+                if( result != paNoError )
+                    goto error;
+
+                if( deviceInfoInitializationSucceeded ){
+                    if( (*hostApi)->info.defaultInputDevice == paNoDevice ){
+                        /* if there is currently no default device, use the first one available */
+                        (*hostApi)->info.defaultInputDevice = (*hostApi)->info.deviceCount;
+                    
+                    }else if( winMmeDeviceId == waveInPreferredDevice ){
+                        /* set the default device to the system preferred device */
+                        (*hostApi)->info.defaultInputDevice = (*hostApi)->info.deviceCount;
+                    }
+
+                    winMmeHostApi->winMmeDeviceIds[ (*hostApi)->info.deviceCount ] = winMmeDeviceId;
+                    (*hostApi)->deviceInfos[ (*hostApi)->info.deviceCount ] = deviceInfo;
+
+                    winMmeHostApi->inputDeviceCount++;
+                    (*hostApi)->info.deviceCount++;
+                }
+            }
+        }
+
+        if( outputDeviceCount > 0 ){
+            /* -1 is the WAVE_MAPPER */
+            for( i = -1; i < outputDeviceCount; ++i ){
+                UINT winMmeDeviceId = (UINT)((i==-1) ? WAVE_MAPPER : i);
+                PaWinMmeDeviceInfo *wmmeDeviceInfo = &deviceInfoArray[ (*hostApi)->info.deviceCount ];
+                PaDeviceInfo *deviceInfo = &wmmeDeviceInfo->inheritedDeviceInfo;
+                deviceInfo->structVersion = 2;
+                deviceInfo->hostApi = hostApiIndex;
+
+                deviceInfo->maxInputChannels = 0;
+                wmmeDeviceInfo->deviceInputChannelCountIsKnown = 1;
+                deviceInfo->maxOutputChannels = 0;
+                wmmeDeviceInfo->deviceOutputChannelCountIsKnown = 1;
+
+                deviceInfo->defaultLowInputLatency = defaultLowLatency;
+                deviceInfo->defaultLowOutputLatency = defaultLowLatency;
+                deviceInfo->defaultHighInputLatency = defaultHighLatency;
+                deviceInfo->defaultHighOutputLatency = defaultHighLatency; 
+
+                result = InitializeOutputDeviceInfo( winMmeHostApi, wmmeDeviceInfo,
+                        winMmeDeviceId, &deviceInfoInitializationSucceeded );
+                if( result != paNoError )
+                    goto error;
+
+                if( deviceInfoInitializationSucceeded ){
+                    if( (*hostApi)->info.defaultOutputDevice == paNoDevice ){
+                        /* if there is currently no default device, use the first one available */
+                        (*hostApi)->info.defaultOutputDevice = (*hostApi)->info.deviceCount;
+
+                    }else if( winMmeDeviceId == waveOutPreferredDevice ){
+                        /* set the default device to the system preferred device */
+                        (*hostApi)->info.defaultOutputDevice = (*hostApi)->info.deviceCount;
+                    }
+
+                    winMmeHostApi->winMmeDeviceIds[ (*hostApi)->info.deviceCount ] = winMmeDeviceId;
+                    (*hostApi)->deviceInfos[ (*hostApi)->info.deviceCount ] = deviceInfo;
+
+                    winMmeHostApi->outputDeviceCount++;
+                    (*hostApi)->info.deviceCount++;
+                }
+            }
+        }
+    }
+    
+    InitializeDefaultDeviceIdsFromEnv( winMmeHostApi );
+
+    (*hostApi)->Terminate = Terminate;
+    (*hostApi)->OpenStream = OpenStream;
+    (*hostApi)->IsFormatSupported = IsFormatSupported;
+
+    PaUtil_InitializeStreamInterface( &winMmeHostApi->callbackStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, GetStreamCpuLoad,
+                                      PaUtil_DummyRead, PaUtil_DummyWrite,
+                                      PaUtil_DummyGetReadAvailable, PaUtil_DummyGetWriteAvailable );
+
+    PaUtil_InitializeStreamInterface( &winMmeHostApi->blockingStreamInterface, CloseStream, StartStream,
+                                      StopStream, AbortStream, IsStreamStopped, IsStreamActive,
+                                      GetStreamTime, PaUtil_DummyGetCpuLoad,
+                                      ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable );
+
+    return result;
+
+error:
+    if( winMmeHostApi )
+    {
+        if( winMmeHostApi->allocations )
+        {
+            PaUtil_FreeAllAllocations( winMmeHostApi->allocations );
+            PaUtil_DestroyAllocationGroup( winMmeHostApi->allocations );
+        }
+        
+        PaUtil_FreeMemory( winMmeHostApi );
+    }
+
+    return result;
+}
+
+
+static void Terminate( struct PaUtilHostApiRepresentation *hostApi )
+{
+    PaWinMmeHostApiRepresentation *winMmeHostApi = (PaWinMmeHostApiRepresentation*)hostApi;
+
+    if( winMmeHostApi->allocations )
+    {
+        PaUtil_FreeAllAllocations( winMmeHostApi->allocations );
+        PaUtil_DestroyAllocationGroup( winMmeHostApi->allocations );
+    }
+
+    PaUtil_FreeMemory( winMmeHostApi );
+}
+
+
+static PaError IsInputChannelCountSupported( PaWinMmeDeviceInfo* deviceInfo, int channelCount )
+{
+    PaError result = paNoError;
+
+    if( channelCount > 0
+            && deviceInfo->deviceInputChannelCountIsKnown
+            && channelCount > deviceInfo->inheritedDeviceInfo.maxInputChannels ){
+
+        result = paInvalidChannelCount; 
+    }
+
+    return result;
+}
+
+static PaError IsOutputChannelCountSupported( PaWinMmeDeviceInfo* deviceInfo, int channelCount )
+{
+    PaError result = paNoError;
+
+    if( channelCount > 0
+            && deviceInfo->deviceOutputChannelCountIsKnown
+            && channelCount > deviceInfo->inheritedDeviceInfo.maxOutputChannels ){
+
+        result = paInvalidChannelCount; 
+    }
+
+    return result;
+}
+
+static PaError IsFormatSupported( struct PaUtilHostApiRepresentation *hostApi,
+                                  const PaStreamParameters *inputParameters,
+                                  const PaStreamParameters *outputParameters,
+                                  double sampleRate )
+{
+    PaWinMmeHostApiRepresentation *winMmeHostApi = (PaWinMmeHostApiRepresentation*)hostApi;
+    PaDeviceInfo *inputDeviceInfo, *outputDeviceInfo;
+    int inputChannelCount, outputChannelCount;
+    int inputMultipleDeviceChannelCount, outputMultipleDeviceChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    PaWinMmeStreamInfo *inputStreamInfo, *outputStreamInfo;
+    UINT winMmeInputDeviceId, winMmeOutputDeviceId;
+    unsigned int i;
+    PaError paerror;
+
+    /* The calls to QueryFormatSupported below are intended to detect invalid
+        sample rates. If we assume that the channel count and format are OK,
+        then the only thing that could fail is the sample rate. This isn't
+        strictly true, but I can't think of a better way to test that the
+        sample rate is valid.
+    */  
+    
+    if( inputParameters )
+    {
+        inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+        inputStreamInfo = inputParameters->hostApiSpecificStreamInfo;
+        
+        /* all standard sample formats are supported by the buffer adapter,
+             this implementation doesn't support any custom sample formats */
+        if( inputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+
+        if( inputParameters->device == paUseHostApiSpecificDeviceSpecification
+                && inputStreamInfo && (inputStreamInfo->flags & paWinMmeUseMultipleDevices) )
+        {
+            inputMultipleDeviceChannelCount = 0;
+            for( i=0; i< inputStreamInfo->deviceCount; ++i )
+            {
+                inputMultipleDeviceChannelCount += inputStreamInfo->devices[i].channelCount;
+                    
+                inputDeviceInfo = hostApi->deviceInfos[ inputStreamInfo->devices[i].device ];
+
+                /* check that input device can support inputChannelCount */
+                if( inputStreamInfo->devices[i].channelCount < 1 )
+                    return paInvalidChannelCount;
+
+                paerror = IsInputChannelCountSupported( (PaWinMmeDeviceInfo*)inputDeviceInfo, 
+                        inputStreamInfo->devices[i].channelCount );
+                if( paerror != paNoError )
+                    return paerror;
+
+                /* test for valid sample rate, see comment above */
+                winMmeInputDeviceId = LocalDeviceIndexToWinMmeDeviceId( winMmeHostApi, inputStreamInfo->devices[i].device );
+                paerror = QueryFormatSupported( inputDeviceInfo, QueryInputWaveFormatEx, winMmeInputDeviceId, inputStreamInfo->devices[i].channelCount, sampleRate );
+                if( paerror != paNoError )
+                    return paInvalidSampleRate;
+            }
+                
+            if( inputMultipleDeviceChannelCount != inputChannelCount )
+                return paIncompatibleHostApiSpecificStreamInfo;                  
+        }
+        else
+        {
+            if( inputStreamInfo && (inputStreamInfo->flags & paWinMmeUseMultipleDevices) )
+                return paIncompatibleHostApiSpecificStreamInfo; /* paUseHostApiSpecificDeviceSpecification was not supplied as the input device */
+
+            inputDeviceInfo = hostApi->deviceInfos[ inputParameters->device ];
+
+            /* check that input device can support inputChannelCount */
+            paerror = IsInputChannelCountSupported( (PaWinMmeDeviceInfo*)inputDeviceInfo, inputChannelCount );
+            if( paerror != paNoError )
+                return paerror;
+
+            /* test for valid sample rate, see comment above */
+            winMmeInputDeviceId = LocalDeviceIndexToWinMmeDeviceId( winMmeHostApi, inputParameters->device );
+            paerror = QueryFormatSupported( inputDeviceInfo, QueryInputWaveFormatEx, winMmeInputDeviceId, inputChannelCount, sampleRate );
+            if( paerror != paNoError )
+                return paInvalidSampleRate;
+        }
+    }
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        outputStreamInfo = outputParameters->hostApiSpecificStreamInfo;
+
+        /* all standard sample formats are supported by the buffer adapter,
+            this implementation doesn't support any custom sample formats */
+        if( outputSampleFormat & paCustomFormat )
+            return paSampleFormatNotSupported;
+
+        if( outputParameters->device == paUseHostApiSpecificDeviceSpecification
+                && outputStreamInfo && (outputStreamInfo->flags & paWinMmeUseMultipleDevices) )
+        {
+            outputMultipleDeviceChannelCount = 0;
+            for( i=0; i< outputStreamInfo->deviceCount; ++i )
+            {
+                outputMultipleDeviceChannelCount += outputStreamInfo->devices[i].channelCount;
+                    
+                outputDeviceInfo = hostApi->deviceInfos[ outputStreamInfo->devices[i].device ];
+
+                /* check that output device can support outputChannelCount */
+                if( outputStreamInfo->devices[i].channelCount < 1 )
+                    return paInvalidChannelCount;
+
+                paerror = IsOutputChannelCountSupported( (PaWinMmeDeviceInfo*)outputDeviceInfo, 
+                        outputStreamInfo->devices[i].channelCount );
+                if( paerror != paNoError )
+                    return paerror;
+
+                /* test for valid sample rate, see comment above */
+                winMmeOutputDeviceId = LocalDeviceIndexToWinMmeDeviceId( winMmeHostApi, outputStreamInfo->devices[i].device );
+                paerror = QueryFormatSupported( outputDeviceInfo, QueryOutputWaveFormatEx, winMmeOutputDeviceId, outputStreamInfo->devices[i].channelCount, sampleRate );
+                if( paerror != paNoError )
+                    return paInvalidSampleRate;
+            }
+                
+            if( outputMultipleDeviceChannelCount != outputChannelCount )
+                return paIncompatibleHostApiSpecificStreamInfo;            
+        }
+        else
+        {
+            if( outputStreamInfo && (outputStreamInfo->flags & paWinMmeUseMultipleDevices) )
+                return paIncompatibleHostApiSpecificStreamInfo; /* paUseHostApiSpecificDeviceSpecification was not supplied as the output device */
+
+            outputDeviceInfo = hostApi->deviceInfos[ outputParameters->device ];
+
+            /* check that output device can support outputChannelCount */
+            paerror = IsOutputChannelCountSupported( (PaWinMmeDeviceInfo*)outputDeviceInfo, outputChannelCount );
+            if( paerror != paNoError )
+                return paerror;
+
+            /* test for valid sample rate, see comment above */
+            winMmeOutputDeviceId = LocalDeviceIndexToWinMmeDeviceId( winMmeHostApi, outputParameters->device );
+            paerror = QueryFormatSupported( outputDeviceInfo, QueryOutputWaveFormatEx, winMmeOutputDeviceId, outputChannelCount, sampleRate );
+            if( paerror != paNoError )
+                return paInvalidSampleRate;
+        }
+    }
+    
+    /*
+            - if a full duplex stream is requested, check that the combination
+                of input and output parameters is supported
+
+            - check that the device supports sampleRate
+
+            for mme all we can do is test that the input and output devices
+            support the requested sample rate and number of channels. we
+            cannot test for full duplex compatibility.
+    */                                             
+
+    return paFormatIsSupported;
+}
+
+
+
+static void SelectBufferSizeAndCount( unsigned long baseBufferSize,
+    unsigned long requestedLatency,
+    unsigned long baseBufferCount, unsigned long minimumBufferCount,
+    unsigned long maximumBufferSize, unsigned long *hostBufferSize,
+    unsigned long *hostBufferCount )
+{
+    unsigned long sizeMultiplier, bufferCount, latency;
+    unsigned long nextLatency, nextBufferSize;
+    int baseBufferSizeIsPowerOfTwo;
+    
+    sizeMultiplier = 1;
+    bufferCount = baseBufferCount;
+
+    /* count-1 below because latency is always determined by one less
+        than the total number of buffers.
+    */
+    latency = (baseBufferSize * sizeMultiplier) * (bufferCount-1);
+
+    if( latency > requestedLatency )
+    {
+
+        /* reduce number of buffers without falling below suggested latency */
+
+        nextLatency = (baseBufferSize * sizeMultiplier) * (bufferCount-2);
+        while( bufferCount > minimumBufferCount && nextLatency >= requestedLatency )
+        {
+            --bufferCount;
+            nextLatency = (baseBufferSize * sizeMultiplier) * (bufferCount-2);
+        }
+
+    }else if( latency < requestedLatency ){
+
+        baseBufferSizeIsPowerOfTwo = (! (baseBufferSize & (baseBufferSize - 1)));
+        if( baseBufferSizeIsPowerOfTwo ){
+
+            /* double size of buffers without exceeding requestedLatency */
+
+            nextBufferSize = (baseBufferSize * (sizeMultiplier*2));
+            nextLatency = nextBufferSize * (bufferCount-1);
+            while( nextBufferSize <= maximumBufferSize
+                    && nextLatency < requestedLatency )
+            {
+                sizeMultiplier *= 2;
+                nextBufferSize = (baseBufferSize * (sizeMultiplier*2));
+                nextLatency = nextBufferSize * (bufferCount-1);
+            }   
+
+        }else{
+
+            /* increase size of buffers upto first excess of requestedLatency */
+
+            nextBufferSize = (baseBufferSize * (sizeMultiplier+1));
+            nextLatency = nextBufferSize * (bufferCount-1);
+            while( nextBufferSize <= maximumBufferSize
+                    && nextLatency < requestedLatency )
+            {
+                ++sizeMultiplier;
+                nextBufferSize = (baseBufferSize * (sizeMultiplier+1));
+                nextLatency = nextBufferSize * (bufferCount-1);
+            }
+
+            if( nextLatency < requestedLatency )
+                ++sizeMultiplier;            
+        }
+
+        /* increase number of buffers until requestedLatency is reached */
+
+        latency = (baseBufferSize * sizeMultiplier) * (bufferCount-1);
+        while( latency < requestedLatency )
+        {
+            ++bufferCount;
+            latency = (baseBufferSize * sizeMultiplier) * (bufferCount-1);
+        }
+    }
+
+    *hostBufferSize = baseBufferSize * sizeMultiplier;
+    *hostBufferCount = bufferCount;
+}
+
+
+static void ReselectBufferCount( unsigned long bufferSize,
+    unsigned long requestedLatency,
+    unsigned long baseBufferCount, unsigned long minimumBufferCount,
+    unsigned long *hostBufferCount )
+{
+    unsigned long bufferCount, latency;
+    unsigned long nextLatency;
+
+    bufferCount = baseBufferCount;
+
+    /* count-1 below because latency is always determined by one less
+        than the total number of buffers.
+    */
+    latency = bufferSize * (bufferCount-1);
+
+    if( latency > requestedLatency )
+    {
+        /* reduce number of buffers without falling below suggested latency */
+
+        nextLatency = bufferSize * (bufferCount-2);
+        while( bufferCount > minimumBufferCount && nextLatency >= requestedLatency )
+        {
+            --bufferCount;
+            nextLatency = bufferSize * (bufferCount-2);
+        }
+
+    }else if( latency < requestedLatency ){
+
+        /* increase number of buffers until requestedLatency is reached */
+
+        latency = bufferSize * (bufferCount-1);
+        while( latency < requestedLatency )
+        {
+            ++bufferCount;
+            latency = bufferSize * (bufferCount-1);
+        }                                                         
+    }
+
+    *hostBufferCount = bufferCount;
+}
+
+
+/* CalculateBufferSettings() fills the framesPerHostInputBuffer, hostInputBufferCount,
+   framesPerHostOutputBuffer and hostOutputBufferCount parameters based on the values
+   of the other parameters.
+*/
+
+static PaError CalculateBufferSettings(
+        unsigned long *framesPerHostInputBuffer, unsigned long *hostInputBufferCount,
+        unsigned long *framesPerHostOutputBuffer, unsigned long *hostOutputBufferCount,
+        int inputChannelCount, PaSampleFormat hostInputSampleFormat,
+        PaTime suggestedInputLatency, PaWinMmeStreamInfo *inputStreamInfo,
+        int outputChannelCount, PaSampleFormat hostOutputSampleFormat,
+        PaTime suggestedOutputLatency, PaWinMmeStreamInfo *outputStreamInfo,
+        double sampleRate, unsigned long framesPerBuffer )
+{
+    PaError result = paNoError;
+    int effectiveInputChannelCount, effectiveOutputChannelCount;
+    int hostInputFrameSize = 0;
+    unsigned int i;
+    
+    if( inputChannelCount > 0 )
+    {
+        int hostInputSampleSize = Pa_GetSampleSize( hostInputSampleFormat );
+        if( hostInputSampleSize < 0 )
+        {
+            result = hostInputSampleSize;
+            goto error;
+        }
+
+        if( inputStreamInfo
+                && ( inputStreamInfo->flags & paWinMmeUseMultipleDevices ) )
+        {
+            /* set effectiveInputChannelCount to the largest number of
+                channels on any one device.
+            */
+            effectiveInputChannelCount = 0;
+            for( i=0; i< inputStreamInfo->deviceCount; ++i )
+            {
+                if( inputStreamInfo->devices[i].channelCount > effectiveInputChannelCount )
+                    effectiveInputChannelCount = inputStreamInfo->devices[i].channelCount;
+            }
+        }
+        else
+        {
+            effectiveInputChannelCount = inputChannelCount;
+        }
+
+        hostInputFrameSize = hostInputSampleSize * effectiveInputChannelCount;
+
+        if( inputStreamInfo
+                && ( inputStreamInfo->flags & paWinMmeUseLowLevelLatencyParameters ) )
+        {
+            if( inputStreamInfo->bufferCount <= 0
+                    || inputStreamInfo->framesPerBuffer <= 0 )
+            {
+                result = paIncompatibleHostApiSpecificStreamInfo;
+                goto error;
+            }
+
+            *framesPerHostInputBuffer = inputStreamInfo->framesPerBuffer;
+            *hostInputBufferCount = inputStreamInfo->bufferCount;
+        }
+        else
+        {
+            unsigned long hostBufferSizeBytes, hostBufferCount;
+            unsigned long minimumBufferCount = (outputChannelCount > 0)
+                    ? PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_
+                    : PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_HALF_DUPLEX_;
+
+            unsigned long maximumBufferSize = (long) ((PA_MME_MAX_HOST_BUFFER_SECS_ * sampleRate) * hostInputFrameSize);
+            if( maximumBufferSize > PA_MME_MAX_HOST_BUFFER_BYTES_ )
+                maximumBufferSize = PA_MME_MAX_HOST_BUFFER_BYTES_;
+
+            /* compute the following in bytes, then convert back to frames */
+
+            SelectBufferSizeAndCount(
+                ((framesPerBuffer == paFramesPerBufferUnspecified)
+                    ? PA_MME_MIN_HOST_BUFFER_FRAMES_WHEN_UNSPECIFIED_
+                    : framesPerBuffer ) * hostInputFrameSize, /* baseBufferSize */
+                ((unsigned long)(suggestedInputLatency * sampleRate)) * hostInputFrameSize, /* suggestedLatency */
+                4, /* baseBufferCount */
+                minimumBufferCount, maximumBufferSize,
+                &hostBufferSizeBytes, &hostBufferCount );
+
+            *framesPerHostInputBuffer = hostBufferSizeBytes / hostInputFrameSize;
+            *hostInputBufferCount = hostBufferCount;
+        }
+    }
+    else
+    {
+        *framesPerHostInputBuffer = 0;
+        *hostInputBufferCount = 0;
+    }
+
+    if( outputChannelCount > 0 )
+    {
+        if( outputStreamInfo
+                && ( outputStreamInfo->flags & paWinMmeUseLowLevelLatencyParameters ) )
+        {
+            if( outputStreamInfo->bufferCount <= 0
+                    || outputStreamInfo->framesPerBuffer <= 0 )
+            {
+                result = paIncompatibleHostApiSpecificStreamInfo;
+                goto error;
+            }
+
+            *framesPerHostOutputBuffer = outputStreamInfo->framesPerBuffer;
+            *hostOutputBufferCount = outputStreamInfo->bufferCount;
+
+            
+            if( inputChannelCount > 0 ) /* full duplex */
+            {
+                if( *framesPerHostInputBuffer != *framesPerHostOutputBuffer )
+                {
+                    if( inputStreamInfo
+                            && ( inputStreamInfo->flags & paWinMmeUseLowLevelLatencyParameters ) )
+                    { 
+                        /* a custom StreamInfo was used for specifying both input
+                            and output buffer sizes, the larger buffer size
+                            must be a multiple of the smaller buffer size */
+
+                        if( *framesPerHostInputBuffer < *framesPerHostOutputBuffer )
+                        {
+                            if( *framesPerHostOutputBuffer % *framesPerHostInputBuffer != 0 )
+                            {
+                                result = paIncompatibleHostApiSpecificStreamInfo;
+                                goto error;
+                            }
+                        }
+                        else
+                        {
+                            assert( *framesPerHostInputBuffer > *framesPerHostOutputBuffer );
+                            if( *framesPerHostInputBuffer % *framesPerHostOutputBuffer != 0 )
+                            {
+                                result = paIncompatibleHostApiSpecificStreamInfo;
+                                goto error;
+                            }
+                        }                        
+                    }
+                    else
+                    {
+                        /* a custom StreamInfo was not used for specifying the input buffer size,
+                            so use the output buffer size, and approximately the same latency. */
+
+                        *framesPerHostInputBuffer = *framesPerHostOutputBuffer;
+                        *hostInputBufferCount = (((unsigned long)(suggestedInputLatency * sampleRate)) / *framesPerHostInputBuffer) + 1;
+
+                        if( *hostInputBufferCount < PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_ )
+                            *hostInputBufferCount = PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_;
+                    }
+                }
+            }
+        }
+        else
+        {
+            unsigned long hostBufferSizeBytes, hostBufferCount;
+            unsigned long minimumBufferCount = PA_MME_MIN_HOST_OUTPUT_BUFFER_COUNT_;
+            unsigned long maximumBufferSize;
+            int hostOutputFrameSize;
+            int hostOutputSampleSize;
+
+            hostOutputSampleSize = Pa_GetSampleSize( hostOutputSampleFormat );
+            if( hostOutputSampleSize < 0 )
+            {
+                result = hostOutputSampleSize;
+                goto error;
+            }
+
+            if( outputStreamInfo
+                && ( outputStreamInfo->flags & paWinMmeUseMultipleDevices ) )
+            {
+                /* set effectiveOutputChannelCount to the largest number of
+                    channels on any one device.
+                */
+                effectiveOutputChannelCount = 0;
+                for( i=0; i< outputStreamInfo->deviceCount; ++i )
+                {
+                    if( outputStreamInfo->devices[i].channelCount > effectiveOutputChannelCount )
+                        effectiveOutputChannelCount = outputStreamInfo->devices[i].channelCount;
+                }
+            }
+            else
+            {
+                effectiveOutputChannelCount = outputChannelCount;
+            }
+
+            hostOutputFrameSize = hostOutputSampleSize * effectiveOutputChannelCount;
+            
+            maximumBufferSize = (long) ((PA_MME_MAX_HOST_BUFFER_SECS_ * sampleRate) * hostOutputFrameSize);
+            if( maximumBufferSize > PA_MME_MAX_HOST_BUFFER_BYTES_ )
+                maximumBufferSize = PA_MME_MAX_HOST_BUFFER_BYTES_;
+
+
+            /* compute the following in bytes, then convert back to frames */
+
+            SelectBufferSizeAndCount(
+                ((framesPerBuffer == paFramesPerBufferUnspecified)
+                    ? PA_MME_MIN_HOST_BUFFER_FRAMES_WHEN_UNSPECIFIED_
+                    : framesPerBuffer ) * hostOutputFrameSize, /* baseBufferSize */
+                ((unsigned long)(suggestedOutputLatency * sampleRate)) * hostOutputFrameSize, /* suggestedLatency */
+                4, /* baseBufferCount */
+                minimumBufferCount,
+                maximumBufferSize,
+                &hostBufferSizeBytes, &hostBufferCount );
+
+            *framesPerHostOutputBuffer = hostBufferSizeBytes / hostOutputFrameSize;
+            *hostOutputBufferCount = hostBufferCount;
+
+
+            if( inputChannelCount > 0 )
+            {
+                /* ensure that both input and output buffer sizes are the same.
+                    if they don't match at this stage, choose the smallest one
+                    and use that for input and output
+                */
+
+                if( *framesPerHostOutputBuffer != *framesPerHostInputBuffer )
+                {
+                    if( framesPerHostInputBuffer < framesPerHostOutputBuffer )
+                    {
+                        unsigned long framesPerHostBuffer = *framesPerHostInputBuffer;
+                        
+                        minimumBufferCount = PA_MME_MIN_HOST_OUTPUT_BUFFER_COUNT_;
+                        ReselectBufferCount(
+                            framesPerHostBuffer * hostOutputFrameSize, /* bufferSize */
+                            ((unsigned long)(suggestedOutputLatency * sampleRate)) * hostOutputFrameSize, /* suggestedLatency */
+                            4, /* baseBufferCount */
+                            minimumBufferCount,
+                            &hostBufferCount );
+
+                        *framesPerHostOutputBuffer = framesPerHostBuffer;
+                        *hostOutputBufferCount = hostBufferCount;
+                    }
+                    else
+                    {
+                        unsigned long framesPerHostBuffer = *framesPerHostOutputBuffer;
+                        
+                        minimumBufferCount = PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_;
+                        ReselectBufferCount(
+                            framesPerHostBuffer * hostInputFrameSize, /* bufferSize */
+                            ((unsigned long)(suggestedInputLatency * sampleRate)) * hostInputFrameSize, /* suggestedLatency */
+                            4, /* baseBufferCount */
+                            minimumBufferCount,
+                            &hostBufferCount );
+
+                        *framesPerHostInputBuffer = framesPerHostBuffer;
+                        *hostInputBufferCount = hostBufferCount;
+                    }
+                }   
+            }
+        }
+    }
+    else
+    {
+        *framesPerHostOutputBuffer = 0;
+        *hostOutputBufferCount = 0;
+    }
+
+error:
+    return result;
+}
+
+
+typedef struct
+{
+    HANDLE bufferEvent;
+    void *waveHandles;
+    unsigned int deviceCount;
+    /* unsigned int channelCount; */
+    WAVEHDR **waveHeaders;                  /* waveHeaders[device][buffer] */
+    unsigned int bufferCount;
+    unsigned int currentBufferIndex;
+    unsigned int framesPerBuffer;
+    unsigned int framesUsedInCurrentBuffer;
+}PaWinMmeSingleDirectionHandlesAndBuffers;
+
+/* prototypes for functions operating on PaWinMmeSingleDirectionHandlesAndBuffers */
+
+static void InitializeSingleDirectionHandlesAndBuffers( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers );
+static PaError InitializeWaveHandles( PaWinMmeHostApiRepresentation *winMmeHostApi,
+        PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers,
+        unsigned long bytesPerHostSample,
+        double sampleRate, PaWinMmeDeviceAndChannelCount *devices,
+        unsigned int deviceCount, PaWinWaveFormatChannelMask channelMask, int isInput );
+static PaError TerminateWaveHandles( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers, int isInput, int currentlyProcessingAnError );
+static PaError InitializeWaveHeaders( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers,
+        unsigned long hostBufferCount,
+        PaSampleFormat hostSampleFormat,
+        unsigned long framesPerHostBuffer,
+        PaWinMmeDeviceAndChannelCount *devices,
+        int isInput );
+static void TerminateWaveHeaders( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers, int isInput );
+
+
+static void InitializeSingleDirectionHandlesAndBuffers( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers )
+{
+    handlesAndBuffers->bufferEvent = 0;
+    handlesAndBuffers->waveHandles = 0;
+    handlesAndBuffers->deviceCount = 0;
+    handlesAndBuffers->waveHeaders = 0;
+    handlesAndBuffers->bufferCount = 0;
+}    
+
+static PaError InitializeWaveHandles( PaWinMmeHostApiRepresentation *winMmeHostApi,
+        PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers,
+        unsigned long bytesPerHostSample,
+        double sampleRate, PaWinMmeDeviceAndChannelCount *devices,
+        unsigned int deviceCount, PaWinWaveFormatChannelMask channelMask, int isInput )
+{
+    PaError result;
+    MMRESULT mmresult;
+    signed int i, j;
+
+    /* for error cleanup we expect that InitializeSingleDirectionHandlesAndBuffers()
+        has already been called to zero some fields */       
+
+    result = CreateEventWithPaError( &handlesAndBuffers->bufferEvent, NULL, FALSE, FALSE, NULL );
+    if( result != paNoError ) goto error;
+
+    if( isInput )
+        handlesAndBuffers->waveHandles = (void*)PaUtil_AllocateMemory( sizeof(HWAVEIN) * deviceCount );
+    else
+        handlesAndBuffers->waveHandles = (void*)PaUtil_AllocateMemory( sizeof(HWAVEOUT) * deviceCount );
+    if( !handlesAndBuffers->waveHandles )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    handlesAndBuffers->deviceCount = deviceCount;
+
+    for( i = 0; i < (signed int)deviceCount; ++i )
+    {
+        if( isInput )
+            ((HWAVEIN*)handlesAndBuffers->waveHandles)[i] = 0;
+        else
+            ((HWAVEOUT*)handlesAndBuffers->waveHandles)[i] = 0;
+    }
+
+    for( i = 0; i < (signed int)deviceCount; ++i )
+    {
+        PaWinWaveFormat waveFormat;
+        UINT winMmeDeviceId = LocalDeviceIndexToWinMmeDeviceId( winMmeHostApi, devices[i].device );
+    
+        /* @todo: consider providing a flag or #define to not try waveformat extensible 
+           this could just initialize j to 1 the first time round. */
+
+        for( j = 0; j < 2; ++j )
+        {
+            if( j == 0 )
+            { 
+                /* first, attempt to open the device using WAVEFORMATEXTENSIBLE, 
+                    if this fails we fall back to WAVEFORMATEX */
+
+                /* @todo at the moment we only use 16 bit sample format */
+                PaWin_InitializeWaveFormatExtensible( &waveFormat, devices[i].channelCount, 
+                        paInt16, sampleRate, channelMask );
+
+            }
+            else
+            {
+                /* retry with WAVEFORMATEX */
+
+                PaWin_InitializeWaveFormatEx( &waveFormat, devices[i].channelCount, paInt16, sampleRate );
+            }
+
+            /* REVIEW: consider not firing an event for input when a full duplex
+                stream is being used. this would probably depend on the
+                neverDropInput flag. */
+
+            if( isInput )
+            {
+                mmresult = waveInOpen( &((HWAVEIN*)handlesAndBuffers->waveHandles)[i], winMmeDeviceId, 
+                                    (WAVEFORMATEX*)&waveFormat,
+                               (DWORD_PTR)handlesAndBuffers->bufferEvent, (DWORD_PTR)0, CALLBACK_EVENT );
+            }
+            else
+            {
+                mmresult = waveOutOpen( &((HWAVEOUT*)handlesAndBuffers->waveHandles)[i], winMmeDeviceId, 
+                                    (WAVEFORMATEX*)&waveFormat,
+                                (DWORD_PTR)handlesAndBuffers->bufferEvent, (DWORD_PTR)0, CALLBACK_EVENT );
+            }
+
+            if( mmresult == MMSYSERR_NOERROR )
+            {
+                break; /* success */
+            }
+            else if( j == 0 )
+            {
+                continue; /* try again with WAVEFORMATEX */
+            }
+            else
+            {
+                switch( mmresult )
+                {
+                    case MMSYSERR_ALLOCATED:    /* Specified resource is already allocated. */
+                        result = paDeviceUnavailable;
+                        break;
+                    case MMSYSERR_NODRIVER:	    /* No device driver is present. */
+                        result = paDeviceUnavailable;
+                        break;
+                    case MMSYSERR_NOMEM:	    /* Unable to allocate or lock memory. */
+                        result = paInsufficientMemory;
+                        break;
+
+                    case MMSYSERR_BADDEVICEID:	/* Specified device identifier is out of range. */
+                        /* falls through */
+
+                    case WAVERR_BADFORMAT:      /* Attempted to open with an unsupported waveform-audio format. */
+                                                    /* This can also occur if we try to open the device with an unsupported
+                                                     * number of channels. This is attempted when device*ChannelCountIsKnown is
+                                                     * set to 0. 
+                                                     */
+                        /* falls through */
+                    default:
+                        result = paUnanticipatedHostError;
+                        if( isInput )
+                        {
+                            PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                        }
+                        else
+                        {
+                            PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                        }
+                }
+                goto error;
+            }
+        }
+    }
+
+    return result;
+
+error:
+    TerminateWaveHandles( handlesAndBuffers, isInput, 1 /* currentlyProcessingAnError */ );
+
+    return result;
+}
+
+
+static PaError TerminateWaveHandles( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers, int isInput, int currentlyProcessingAnError )
+{
+    PaError result = paNoError;
+    MMRESULT mmresult;
+    signed int i;
+    
+    if( handlesAndBuffers->waveHandles )
+    {
+        for( i = handlesAndBuffers->deviceCount-1; i >= 0; --i )
+        {
+            if( isInput )
+            {
+                if( ((HWAVEIN*)handlesAndBuffers->waveHandles)[i] )
+                    mmresult = waveInClose( ((HWAVEIN*)handlesAndBuffers->waveHandles)[i] );
+                else
+                    mmresult = MMSYSERR_NOERROR;
+            }
+            else
+            {
+                if( ((HWAVEOUT*)handlesAndBuffers->waveHandles)[i] )
+                    mmresult = waveOutClose( ((HWAVEOUT*)handlesAndBuffers->waveHandles)[i] );
+                else
+                    mmresult = MMSYSERR_NOERROR;
+            }
+
+            if( mmresult != MMSYSERR_NOERROR &&
+                !currentlyProcessingAnError ) /* don't update the error state if we're already processing an error */
+            {
+                result = paUnanticipatedHostError;
+                if( isInput )
+                {
+                    PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                }
+                else
+                {
+                    PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                }
+                /* note that we don't break here, we try to continue closing devices */
+            }
+        }
+
+        PaUtil_FreeMemory( handlesAndBuffers->waveHandles );
+        handlesAndBuffers->waveHandles = 0;
+    }
+
+    if( handlesAndBuffers->bufferEvent )
+    {
+        result = CloseHandleWithPaError( handlesAndBuffers->bufferEvent );
+        handlesAndBuffers->bufferEvent = 0;
+    }
+    
+    return result;
+}
+
+
+static PaError InitializeWaveHeaders( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers,
+        unsigned long hostBufferCount,
+        PaSampleFormat hostSampleFormat,
+        unsigned long framesPerHostBuffer,
+        PaWinMmeDeviceAndChannelCount *devices,
+        int isInput )
+{
+    PaError result = paNoError;
+    MMRESULT mmresult;
+    WAVEHDR *deviceWaveHeaders;
+    signed int i, j;
+
+    /* for error cleanup we expect that InitializeSingleDirectionHandlesAndBuffers()
+        has already been called to zero some fields */
+        
+
+    /* allocate an array of pointers to arrays of wave headers, one array of
+        wave headers per device */
+    handlesAndBuffers->waveHeaders = (WAVEHDR**)PaUtil_AllocateMemory( sizeof(WAVEHDR*) * handlesAndBuffers->deviceCount );
+    if( !handlesAndBuffers->waveHeaders )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+    
+    for( i = 0; i < (signed int)handlesAndBuffers->deviceCount; ++i )
+        handlesAndBuffers->waveHeaders[i] = 0;
+
+    handlesAndBuffers->bufferCount = hostBufferCount;
+
+    for( i = 0; i < (signed int)handlesAndBuffers->deviceCount; ++i )
+    {
+        int bufferBytes = Pa_GetSampleSize( hostSampleFormat ) *
+                framesPerHostBuffer * devices[i].channelCount;
+        if( bufferBytes < 0 )
+        {
+            result = paInternalError;
+            goto error;
+        }
+
+        /* Allocate an array of wave headers for device i */
+        deviceWaveHeaders = (WAVEHDR *) PaUtil_AllocateMemory( sizeof(WAVEHDR)*hostBufferCount );
+        if( !deviceWaveHeaders )
+        {
+            result = paInsufficientMemory;
+            goto error;
+        }
+
+        for( j=0; j < (signed int)hostBufferCount; ++j )
+            deviceWaveHeaders[j].lpData = 0;
+
+        handlesAndBuffers->waveHeaders[i] = deviceWaveHeaders;
+
+        /* Allocate a buffer for each wave header */
+        for( j=0; j < (signed int)hostBufferCount; ++j )
+        {
+            deviceWaveHeaders[j].lpData = (char *)PaUtil_AllocateMemory( bufferBytes );
+            if( !deviceWaveHeaders[j].lpData )
+            {
+                result = paInsufficientMemory;
+                goto error;
+            }
+            deviceWaveHeaders[j].dwBufferLength = bufferBytes;
+            deviceWaveHeaders[j].dwUser = 0xFFFFFFFF; /* indicates that *PrepareHeader() has not yet been called, for error clean up code */
+
+            if( isInput )
+            {
+                mmresult = waveInPrepareHeader( ((HWAVEIN*)handlesAndBuffers->waveHandles)[i], &deviceWaveHeaders[j], sizeof(WAVEHDR) );
+                if( mmresult != MMSYSERR_NOERROR )
+                {
+                    result = paUnanticipatedHostError;
+                    PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                    goto error;
+                }
+            }
+            else /* output */
+            {
+                mmresult = waveOutPrepareHeader( ((HWAVEOUT*)handlesAndBuffers->waveHandles)[i], &deviceWaveHeaders[j], sizeof(WAVEHDR) );
+                if( mmresult != MMSYSERR_NOERROR )
+                {
+                    result = paUnanticipatedHostError;
+                    PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                    goto error;
+                }
+            }
+            deviceWaveHeaders[j].dwUser = devices[i].channelCount;
+        }
+    }
+
+    return result;
+
+error:
+    TerminateWaveHeaders( handlesAndBuffers, isInput );
+    
+    return result;
+}
+
+
+static void TerminateWaveHeaders( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers, int isInput )
+{
+    signed int i, j;
+    WAVEHDR *deviceWaveHeaders;
+    
+    if( handlesAndBuffers->waveHeaders )
+    {
+        for( i = handlesAndBuffers->deviceCount-1; i >= 0 ; --i )
+        {
+            deviceWaveHeaders = handlesAndBuffers->waveHeaders[i];  /* wave headers for device i */
+            if( deviceWaveHeaders )
+            {
+                for( j = handlesAndBuffers->bufferCount-1; j >= 0; --j )
+                {
+                    if( deviceWaveHeaders[j].lpData )
+                    {
+                        if( deviceWaveHeaders[j].dwUser != 0xFFFFFFFF )
+                        {
+                            if( isInput )
+                                waveInUnprepareHeader( ((HWAVEIN*)handlesAndBuffers->waveHandles)[i], &deviceWaveHeaders[j], sizeof(WAVEHDR) );
+                            else
+                                waveOutUnprepareHeader( ((HWAVEOUT*)handlesAndBuffers->waveHandles)[i], &deviceWaveHeaders[j], sizeof(WAVEHDR) );
+                        }
+
+                        PaUtil_FreeMemory( deviceWaveHeaders[j].lpData );
+                    }
+                }
+
+                PaUtil_FreeMemory( deviceWaveHeaders );
+            }
+        }
+
+        PaUtil_FreeMemory( handlesAndBuffers->waveHeaders );
+        handlesAndBuffers->waveHeaders = 0;
+    }
+}
+
+
+
+/* PaWinMmeStream - a stream data structure specifically for this implementation */
+/* note that struct PaWinMmeStream is typedeffed to PaWinMmeStream above. */
+struct PaWinMmeStream
+{
+    PaUtilStreamRepresentation streamRepresentation;
+    PaUtilCpuLoadMeasurer cpuLoadMeasurer;
+    PaUtilBufferProcessor bufferProcessor;
+
+    int primeStreamUsingCallback;
+
+    PaWinMmeSingleDirectionHandlesAndBuffers input;
+    PaWinMmeSingleDirectionHandlesAndBuffers output;
+
+    /* Processing thread management -------------- */
+    HANDLE abortEvent;
+    HANDLE processingThread;
+    DWORD processingThreadId;
+
+    char throttleProcessingThreadOnOverload; /* 0 -> don't throtte, non-0 -> throttle */
+    int processingThreadPriority;
+    int highThreadPriority;
+    int throttledThreadPriority;
+    unsigned long throttledSleepMsecs;
+
+    int isStopped;
+    volatile int isActive;
+    volatile int stopProcessing; /* stop thread once existing buffers have been returned */
+    volatile int abortProcessing; /* stop thread immediately */
+
+    DWORD allBuffersDurationMs; /* used to calculate timeouts */
+};
+
+/* updates deviceCount if PaWinMmeUseMultipleDevices is used */
+
+static PaError ValidateWinMmeSpecificStreamInfo(
+        const PaStreamParameters *streamParameters,
+        const PaWinMmeStreamInfo *streamInfo,
+        char *throttleProcessingThreadOnOverload,
+        unsigned long *deviceCount )
+{
+	if( streamInfo )
+	{
+	    if( streamInfo->size != sizeof( PaWinMmeStreamInfo )
+	            || streamInfo->version != 1 )
+	    {
+	        return paIncompatibleHostApiSpecificStreamInfo;
+	    }
+
+	    if( streamInfo->flags & paWinMmeDontThrottleOverloadedProcessingThread )
+	        *throttleProcessingThreadOnOverload = 0;
+            
+	    if( streamInfo->flags & paWinMmeUseMultipleDevices )
+	    {
+	        if( streamParameters->device != paUseHostApiSpecificDeviceSpecification )
+	            return paInvalidDevice;
+	
+			*deviceCount = streamInfo->deviceCount;
+		}	
+	}
+
+	return paNoError;
+}
+
+static PaError RetrieveDevicesFromStreamParameters(
+        struct PaUtilHostApiRepresentation *hostApi,
+        const PaStreamParameters *streamParameters,
+        const PaWinMmeStreamInfo *streamInfo,
+        PaWinMmeDeviceAndChannelCount *devices,
+        unsigned long deviceCount )
+{
+    PaError result = paNoError;
+    unsigned int i;
+    int totalChannelCount;
+    PaDeviceIndex hostApiDevice;
+    
+	if( streamInfo && streamInfo->flags & paWinMmeUseMultipleDevices )
+	{
+		totalChannelCount = 0;
+	    for( i=0; i < deviceCount; ++i )
+	    {
+	        /* validate that the device number is within range */
+	        result = PaUtil_DeviceIndexToHostApiDeviceIndex( &hostApiDevice,
+	                        streamInfo->devices[i].device, hostApi );
+	        if( result != paNoError )
+	            return result;
+	        
+	        devices[i].device = hostApiDevice;
+	        devices[i].channelCount = streamInfo->devices[i].channelCount;
+	
+	        totalChannelCount += devices[i].channelCount;
+	    }
+	
+	    if( totalChannelCount != streamParameters->channelCount )
+	    {
+	        /* channelCount must match total channels specified by multiple devices */
+	        return paInvalidChannelCount; /* REVIEW use of this error code */
+	    }
+	}	
+	else
+	{		
+	    devices[0].device = streamParameters->device;
+	    devices[0].channelCount = streamParameters->channelCount;
+	}
+
+    return result;
+}
+
+static PaError ValidateInputChannelCounts(
+        struct PaUtilHostApiRepresentation *hostApi,
+        PaWinMmeDeviceAndChannelCount *devices,
+        unsigned long deviceCount )
+{
+    unsigned int i;
+    PaWinMmeDeviceInfo *inputDeviceInfo;
+    PaError paerror;
+
+	for( i=0; i < deviceCount; ++i )
+	{
+        if( devices[i].channelCount < 1 )
+        	return paInvalidChannelCount;
+
+        inputDeviceInfo = 
+                (PaWinMmeDeviceInfo*)hostApi->deviceInfos[ devices[i].device ];
+
+        paerror = IsInputChannelCountSupported( inputDeviceInfo, devices[i].channelCount );
+        if( paerror != paNoError )
+            return paerror;
+	}
+
+    return paNoError;
+}
+
+static PaError ValidateOutputChannelCounts(
+        struct PaUtilHostApiRepresentation *hostApi,
+        PaWinMmeDeviceAndChannelCount *devices,
+        unsigned long deviceCount )
+{
+    unsigned int i;
+    PaWinMmeDeviceInfo *outputDeviceInfo;
+    PaError paerror;
+
+	for( i=0; i < deviceCount; ++i )
+	{
+        if( devices[i].channelCount < 1 )
+        	return paInvalidChannelCount;
+
+        outputDeviceInfo = 
+                (PaWinMmeDeviceInfo*)hostApi->deviceInfos[ devices[i].device ];
+
+        paerror = IsOutputChannelCountSupported( outputDeviceInfo, devices[i].channelCount );
+        if( paerror != paNoError )
+            return paerror;
+	}
+
+    return paNoError;
+}
+
+
+/* the following macros are intended to improve the readability of the following code */
+#define PA_IS_INPUT_STREAM_( stream ) ( stream ->input.waveHandles )
+#define PA_IS_OUTPUT_STREAM_( stream ) ( stream ->output.waveHandles )
+#define PA_IS_FULL_DUPLEX_STREAM_( stream ) ( stream ->input.waveHandles && stream ->output.waveHandles )
+#define PA_IS_HALF_DUPLEX_STREAM_( stream ) ( !(stream ->input.waveHandles && stream ->output.waveHandles) )
+
+static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
+                           PaStream** s,
+                           const PaStreamParameters *inputParameters,
+                           const PaStreamParameters *outputParameters,
+                           double sampleRate,
+                           unsigned long framesPerBuffer,
+                           PaStreamFlags streamFlags,
+                           PaStreamCallback *streamCallback,
+                           void *userData )
+{
+    PaError result;
+    PaWinMmeHostApiRepresentation *winMmeHostApi = (PaWinMmeHostApiRepresentation*)hostApi;
+    PaWinMmeStream *stream = 0;
+    int bufferProcessorIsInitialized = 0;
+    int streamRepresentationIsInitialized = 0;
+    PaSampleFormat hostInputSampleFormat, hostOutputSampleFormat;
+    int inputChannelCount, outputChannelCount;
+    PaSampleFormat inputSampleFormat, outputSampleFormat;
+    double suggestedInputLatency, suggestedOutputLatency;
+    PaWinMmeStreamInfo *inputStreamInfo, *outputStreamInfo;
+    PaWinWaveFormatChannelMask inputChannelMask, outputChannelMask;
+    unsigned long framesPerHostInputBuffer;
+    unsigned long hostInputBufferCount;
+    unsigned long framesPerHostOutputBuffer;
+    unsigned long hostOutputBufferCount;
+    unsigned long framesPerBufferProcessorCall;
+    PaWinMmeDeviceAndChannelCount *inputDevices = 0;  /* contains all devices and channel counts as local host api ids, even when PaWinMmeUseMultipleDevices is not used */
+    unsigned long inputDeviceCount = 0;            
+    PaWinMmeDeviceAndChannelCount *outputDevices = 0;
+    unsigned long outputDeviceCount = 0;                /* contains all devices and channel counts as local host api ids, even when PaWinMmeUseMultipleDevices is not used */
+    char throttleProcessingThreadOnOverload = 1;
+
+    
+    if( inputParameters )
+    {
+		inputChannelCount = inputParameters->channelCount;
+        inputSampleFormat = inputParameters->sampleFormat;
+        suggestedInputLatency = inputParameters->suggestedLatency;
+
+      	inputDeviceCount = 1;
+
+		/* validate input hostApiSpecificStreamInfo */
+        inputStreamInfo = (PaWinMmeStreamInfo*)inputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinMmeSpecificStreamInfo( inputParameters, inputStreamInfo,
+				&throttleProcessingThreadOnOverload,
+				&inputDeviceCount );
+		if( result != paNoError ) return result;
+
+		inputDevices = (PaWinMmeDeviceAndChannelCount*)alloca( sizeof(PaWinMmeDeviceAndChannelCount) * inputDeviceCount );
+        if( !inputDevices ) return paInsufficientMemory;
+
+		result = RetrieveDevicesFromStreamParameters( hostApi, inputParameters, inputStreamInfo, inputDevices, inputDeviceCount );
+		if( result != paNoError ) return result;
+
+		result = ValidateInputChannelCounts( hostApi, inputDevices, inputDeviceCount );
+		if( result != paNoError ) return result;
+
+        hostInputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( paInt16 /* native formats */, inputSampleFormat );
+
+        if( inputDeviceCount != 1 ){
+            /* always use direct speakers when using multi-device multichannel mode */
+            inputChannelMask = PAWIN_SPEAKER_DIRECTOUT;           
+        }
+        else
+        {
+            if( inputStreamInfo && inputStreamInfo->flags & paWinMmeUseChannelMask )
+                inputChannelMask = inputStreamInfo->channelMask;
+            else
+                inputChannelMask = PaWin_DefaultChannelMask( inputDevices[0].channelCount );
+        }
+	}
+    else
+    {
+        inputChannelCount = 0;
+        inputSampleFormat = 0;
+        suggestedInputLatency = 0.;
+        inputStreamInfo = 0;
+        hostInputSampleFormat = 0;
+    }
+
+
+    if( outputParameters )
+    {
+        outputChannelCount = outputParameters->channelCount;
+        outputSampleFormat = outputParameters->sampleFormat;
+        suggestedOutputLatency = outputParameters->suggestedLatency;
+
+        outputDeviceCount = 1;
+
+		/* validate output hostApiSpecificStreamInfo */
+        outputStreamInfo = (PaWinMmeStreamInfo*)outputParameters->hostApiSpecificStreamInfo;
+		result = ValidateWinMmeSpecificStreamInfo( outputParameters, outputStreamInfo,
+				&throttleProcessingThreadOnOverload,
+				&outputDeviceCount );
+		if( result != paNoError ) return result;
+
+		outputDevices = (PaWinMmeDeviceAndChannelCount*)alloca( sizeof(PaWinMmeDeviceAndChannelCount) * outputDeviceCount );
+        if( !outputDevices ) return paInsufficientMemory;
+
+		result = RetrieveDevicesFromStreamParameters( hostApi, outputParameters, outputStreamInfo, outputDevices, outputDeviceCount );
+		if( result != paNoError ) return result;
+
+		result = ValidateOutputChannelCounts( hostApi, outputDevices, outputDeviceCount );
+		if( result != paNoError ) return result;
+
+        hostOutputSampleFormat =
+            PaUtil_SelectClosestAvailableFormat( paInt16 /* native formats */, outputSampleFormat );
+
+        if( outputDeviceCount != 1 ){
+            /* always use direct speakers when using multi-device multichannel mode */
+            outputChannelMask = PAWIN_SPEAKER_DIRECTOUT;           
+        }
+        else
+        {
+            if( outputStreamInfo && outputStreamInfo->flags & paWinMmeUseChannelMask )
+                outputChannelMask = outputStreamInfo->channelMask;
+            else
+                outputChannelMask = PaWin_DefaultChannelMask( outputDevices[0].channelCount );
+        }
+    }
+    else
+    {
+        outputChannelCount = 0;
+        outputSampleFormat = 0;
+        outputStreamInfo = 0;
+        hostOutputSampleFormat = 0;
+        suggestedOutputLatency = 0.;
+    }
+
+
+    /*
+        IMPLEMENT ME:
+            - alter sampleRate to a close allowable rate if possible / necessary
+    */
+
+
+    /* validate platform specific flags */
+    if( (streamFlags & paPlatformSpecificFlags) != 0 )
+        return paInvalidFlag; /* unexpected platform specific flag */
+
+
+    result = CalculateBufferSettings( &framesPerHostInputBuffer, &hostInputBufferCount,
+                &framesPerHostOutputBuffer, &hostOutputBufferCount,
+                inputChannelCount, hostInputSampleFormat, suggestedInputLatency, inputStreamInfo,
+                outputChannelCount, hostOutputSampleFormat, suggestedOutputLatency, outputStreamInfo,
+                sampleRate, framesPerBuffer );
+    if( result != paNoError ) goto error;
+
+
+    stream = (PaWinMmeStream*)PaUtil_AllocateMemory( sizeof(PaWinMmeStream) );
+    if( !stream )
+    {
+        result = paInsufficientMemory;
+        goto error;
+    }
+
+    InitializeSingleDirectionHandlesAndBuffers( &stream->input );
+    InitializeSingleDirectionHandlesAndBuffers( &stream->output );
+
+    stream->abortEvent = 0;
+    stream->processingThread = 0;
+
+    stream->throttleProcessingThreadOnOverload = throttleProcessingThreadOnOverload;
+
+    PaUtil_InitializeStreamRepresentation( &stream->streamRepresentation,
+                                           ( (streamCallback)
+                                            ? &winMmeHostApi->callbackStreamInterface
+                                            : &winMmeHostApi->blockingStreamInterface ),
+                                           streamCallback, userData );
+    streamRepresentationIsInitialized = 1;
+
+    PaUtil_InitializeCpuLoadMeasurer( &stream->cpuLoadMeasurer, sampleRate );
+
+
+    if( inputParameters && outputParameters ) /* full duplex */
+    {
+        if( framesPerHostInputBuffer < framesPerHostOutputBuffer )
+        {
+            assert( (framesPerHostOutputBuffer % framesPerHostInputBuffer) == 0 ); /* CalculateBufferSettings() should guarantee this condition */
+
+            framesPerBufferProcessorCall = framesPerHostInputBuffer;
+        }
+        else
+        {
+            assert( (framesPerHostInputBuffer % framesPerHostOutputBuffer) == 0 ); /* CalculateBufferSettings() should guarantee this condition */
+            
+            framesPerBufferProcessorCall = framesPerHostOutputBuffer;
+        }
+    }
+    else if( inputParameters )
+    {
+        framesPerBufferProcessorCall = framesPerHostInputBuffer;
+    }
+    else if( outputParameters )
+    {
+        framesPerBufferProcessorCall = framesPerHostOutputBuffer;
+    }
+
+    stream->input.framesPerBuffer = framesPerHostInputBuffer;
+    stream->output.framesPerBuffer = framesPerHostOutputBuffer;
+
+    result =  PaUtil_InitializeBufferProcessor( &stream->bufferProcessor,
+                    inputChannelCount, inputSampleFormat, hostInputSampleFormat,
+                    outputChannelCount, outputSampleFormat, hostOutputSampleFormat,
+                    sampleRate, streamFlags, framesPerBuffer,
+                    framesPerBufferProcessorCall, paUtilFixedHostBufferSize,
+                    streamCallback, userData );
+    if( result != paNoError ) goto error;
+    
+    bufferProcessorIsInitialized = 1;
+
+    stream->streamRepresentation.streamInfo.inputLatency =
+            (double)(PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor)
+                +(framesPerHostInputBuffer * (hostInputBufferCount-1))) / sampleRate;
+    stream->streamRepresentation.streamInfo.outputLatency =
+            (double)(PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor)
+                +(framesPerHostOutputBuffer * (hostOutputBufferCount-1))) / sampleRate;
+    stream->streamRepresentation.streamInfo.sampleRate = sampleRate;
+
+    stream->primeStreamUsingCallback = ( (streamFlags&paPrimeOutputBuffersUsingStreamCallback) && streamCallback ) ? 1 : 0;
+
+    /* time to sleep when throttling due to >100% cpu usage.
+        -a quater of a buffer's duration */
+    stream->throttledSleepMsecs =
+            (unsigned long)(stream->bufferProcessor.framesPerHostBuffer *
+             stream->bufferProcessor.samplePeriod * .25 * 1000);
+
+    stream->isStopped = 1;
+    stream->isActive = 0;
+
+
+    /* for maximum compatibility with multi-device multichannel drivers,
+        we first open all devices, then we prepare all buffers, finally
+        we start all devices ( in StartStream() ). teardown in reverse order.
+    */
+
+    if( inputParameters )
+    {
+        result = InitializeWaveHandles( winMmeHostApi, &stream->input,
+                stream->bufferProcessor.bytesPerHostInputSample, sampleRate,
+                inputDevices, inputDeviceCount, inputChannelMask, 1 /* isInput */ );
+        if( result != paNoError ) goto error;
+    }
+    
+    if( outputParameters )
+    {
+        result = InitializeWaveHandles( winMmeHostApi, &stream->output,
+                stream->bufferProcessor.bytesPerHostOutputSample, sampleRate,
+                outputDevices, outputDeviceCount, outputChannelMask, 0 /* isInput */ );
+        if( result != paNoError ) goto error;
+    }
+
+    if( inputParameters )
+    {
+        result = InitializeWaveHeaders( &stream->input, hostInputBufferCount,
+                hostInputSampleFormat, framesPerHostInputBuffer, inputDevices, 1 /* isInput */ );
+        if( result != paNoError ) goto error;
+    }
+
+    if( outputParameters )
+    {
+        result = InitializeWaveHeaders( &stream->output, hostOutputBufferCount,
+                hostOutputSampleFormat, framesPerHostOutputBuffer, outputDevices, 0 /* not isInput */ );
+        if( result != paNoError ) goto error;
+
+        stream->allBuffersDurationMs = (DWORD) (1000.0 * (framesPerHostOutputBuffer * stream->output.bufferCount) / sampleRate);
+    }
+    else
+    {
+        stream->allBuffersDurationMs = (DWORD) (1000.0 * (framesPerHostInputBuffer * stream->input.bufferCount) / sampleRate);
+    }
+
+    
+    if( streamCallback )
+    {
+        /* abort event is only needed for callback streams */
+        result = CreateEventWithPaError( &stream->abortEvent, NULL, TRUE, FALSE, NULL );
+        if( result != paNoError ) goto error;
+    }
+
+    *s = (PaStream*)stream;
+
+    return result;
+
+error:
+
+    if( stream )
+    {
+        if( stream->abortEvent )
+            CloseHandle( stream->abortEvent );
+            
+        TerminateWaveHeaders( &stream->output, 0 /* not isInput */ );
+        TerminateWaveHeaders( &stream->input, 1 /* isInput */ );
+
+        TerminateWaveHandles( &stream->output, 0 /* not isInput */, 1 /* currentlyProcessingAnError */ );
+        TerminateWaveHandles( &stream->input, 1 /* isInput */, 1 /* currentlyProcessingAnError */ );
+
+        if( bufferProcessorIsInitialized )
+            PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+
+        if( streamRepresentationIsInitialized )
+            PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+
+        PaUtil_FreeMemory( stream );
+    }
+
+    return result;
+}
+
+
+/* return non-zero if all current buffers are done */
+static int BuffersAreDone( WAVEHDR **waveHeaders, unsigned int deviceCount, int bufferIndex )
+{
+    unsigned int i;
+    
+    for( i=0; i < deviceCount; ++i )
+    {
+        if( !(waveHeaders[i][ bufferIndex ].dwFlags & WHDR_DONE) )
+        {
+            return 0;
+        }         
+    }
+
+    return 1;
+}
+
+static int CurrentInputBuffersAreDone( PaWinMmeStream *stream )
+{
+    return BuffersAreDone( stream->input.waveHeaders, stream->input.deviceCount, stream->input.currentBufferIndex );
+}
+
+static int CurrentOutputBuffersAreDone( PaWinMmeStream *stream )
+{
+    return BuffersAreDone( stream->output.waveHeaders, stream->output.deviceCount, stream->output.currentBufferIndex );
+}
+
+
+/* return non-zero if any buffers are queued */
+static int NoBuffersAreQueued( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers )
+{
+    unsigned int i, j;
+
+    if( handlesAndBuffers->waveHandles )
+    {
+        for( i=0; i < handlesAndBuffers->bufferCount; ++i )
+        {
+            for( j=0; j < handlesAndBuffers->deviceCount; ++j )
+            {
+                if( !( handlesAndBuffers->waveHeaders[ j ][ i ].dwFlags & WHDR_DONE) )
+                {
+                    return 0;
+                }
+            }
+        }
+    }
+
+    return 1;
+}
+
+
+#define PA_CIRCULAR_INCREMENT_( current, max )\
+    ( (((current) + 1) >= (max)) ? (0) : (current+1) )
+
+#define PA_CIRCULAR_DECREMENT_( current, max )\
+    ( ((current) == 0) ? ((max)-1) : (current-1) )
+    
+
+static signed long GetAvailableFrames( PaWinMmeSingleDirectionHandlesAndBuffers *handlesAndBuffers )
+{
+    signed long result = 0;
+    unsigned int i;
+    
+    if( BuffersAreDone( handlesAndBuffers->waveHeaders, handlesAndBuffers->deviceCount, handlesAndBuffers->currentBufferIndex ) )
+    {
+        /* we could calculate the following in O(1) if we kept track of the
+            last done buffer */
+        result = handlesAndBuffers->framesPerBuffer - handlesAndBuffers->framesUsedInCurrentBuffer;
+
+        i = PA_CIRCULAR_INCREMENT_( handlesAndBuffers->currentBufferIndex, handlesAndBuffers->bufferCount );
+        while( i != handlesAndBuffers->currentBufferIndex )
+        {
+            if( BuffersAreDone( handlesAndBuffers->waveHeaders, handlesAndBuffers->deviceCount, i ) )
+            {
+                result += handlesAndBuffers->framesPerBuffer;
+                i = PA_CIRCULAR_INCREMENT_( i, handlesAndBuffers->bufferCount );
+            }
+            else
+                break;
+        }
+    }
+
+    return result;
+}
+
+
+static PaError AdvanceToNextInputBuffer( PaWinMmeStream *stream )
+{
+    PaError result = paNoError;
+    MMRESULT mmresult;
+    unsigned int i;
+
+    for( i=0; i < stream->input.deviceCount; ++i )
+    {
+        stream->input.waveHeaders[i][ stream->input.currentBufferIndex ].dwFlags &= ~WHDR_DONE;
+        mmresult = waveInAddBuffer( ((HWAVEIN*)stream->input.waveHandles)[i],
+                                    &stream->input.waveHeaders[i][ stream->input.currentBufferIndex ],
+                                    sizeof(WAVEHDR) );
+        if( mmresult != MMSYSERR_NOERROR )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+        }
+    }
+
+    stream->input.currentBufferIndex =
+            PA_CIRCULAR_INCREMENT_( stream->input.currentBufferIndex, stream->input.bufferCount );
+
+    stream->input.framesUsedInCurrentBuffer = 0;
+
+    return result;
+}
+
+
+static PaError AdvanceToNextOutputBuffer( PaWinMmeStream *stream )
+{
+    PaError result = paNoError;
+    MMRESULT mmresult;
+    unsigned int i;
+
+    for( i=0; i < stream->output.deviceCount; ++i )
+    {
+        mmresult = waveOutWrite( ((HWAVEOUT*)stream->output.waveHandles)[i],
+                                 &stream->output.waveHeaders[i][ stream->output.currentBufferIndex ],
+                                 sizeof(WAVEHDR) );
+        if( mmresult != MMSYSERR_NOERROR )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+        }
+    }
+
+    stream->output.currentBufferIndex =
+            PA_CIRCULAR_INCREMENT_( stream->output.currentBufferIndex, stream->output.bufferCount );
+
+    stream->output.framesUsedInCurrentBuffer = 0;
+    
+    return result;
+}
+
+
+/* requeue all but the most recent input with the driver. Used for catching
+    up after a total input buffer underrun */
+static PaError CatchUpInputBuffers( PaWinMmeStream *stream )
+{
+    PaError result = paNoError;
+    unsigned int i;
+    
+    for( i=0; i < stream->input.bufferCount - 1; ++i )
+    {
+        result = AdvanceToNextInputBuffer( stream );
+        if( result != paNoError )
+            break;
+    }
+
+    return result;
+}
+
+
+/* take the most recent output and duplicate it to all other output buffers
+    and requeue them. Used for catching up after a total output buffer underrun.
+*/
+static PaError CatchUpOutputBuffers( PaWinMmeStream *stream )
+{
+    PaError result = paNoError;
+    unsigned int i, j;
+    unsigned int previousBufferIndex =
+            PA_CIRCULAR_DECREMENT_( stream->output.currentBufferIndex, stream->output.bufferCount );
+
+    for( i=0; i < stream->output.bufferCount - 1; ++i )
+    {
+        for( j=0; j < stream->output.deviceCount; ++j )
+        {
+            if( stream->output.waveHeaders[j][ stream->output.currentBufferIndex ].lpData
+                    != stream->output.waveHeaders[j][ previousBufferIndex ].lpData )
+            {
+                CopyMemory( stream->output.waveHeaders[j][ stream->output.currentBufferIndex ].lpData,
+                            stream->output.waveHeaders[j][ previousBufferIndex ].lpData,
+                            stream->output.waveHeaders[j][ stream->output.currentBufferIndex ].dwBufferLength );
+            }
+        }
+
+        result = AdvanceToNextOutputBuffer( stream );
+        if( result != paNoError )
+            break;
+    }
+
+    return result;
+}
+
+
+static DWORD WINAPI ProcessingThreadProc( void *pArg )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream *)pArg;
+    HANDLE events[3];
+    int eventCount = 0;
+    DWORD result = paNoError;
+    DWORD waitResult;
+    DWORD timeout = (unsigned long)(stream->allBuffersDurationMs * 0.5);
+    int hostBuffersAvailable;
+    signed int hostInputBufferIndex, hostOutputBufferIndex;
+    PaStreamCallbackFlags statusFlags;
+    int callbackResult;
+    int done = 0;
+    unsigned int channel, i;
+    unsigned long framesProcessed;
+    
+    /* prepare event array for call to WaitForMultipleObjects() */
+    if( stream->input.bufferEvent )
+        events[eventCount++] = stream->input.bufferEvent;
+    if( stream->output.bufferEvent )
+        events[eventCount++] = stream->output.bufferEvent;
+    events[eventCount++] = stream->abortEvent;
+
+    statusFlags = 0; /** @todo support paInputUnderflow, paOutputOverflow and paNeverDropInput */
+    
+    /* loop until something causes us to stop */
+    do{
+        /* wait for MME to signal that a buffer is available, or for
+            the PA abort event to be signaled.
+
+          When this indicates that one or more buffers are available
+          NoBuffersAreQueued() and Current*BuffersAreDone are used below to
+          poll for additional done buffers. NoBuffersAreQueued() will fail
+          to identify an underrun/overflow if the driver doesn't mark all done
+          buffers prior to signalling the event. Some drivers do this
+          (eg RME Digi96, and others don't eg VIA PC 97 input). This isn't a
+          huge problem, it just means that we won't always be able to detect
+          underflow/overflow.
+        */
+        waitResult = WaitForMultipleObjects( eventCount, events, FALSE /* wait all = FALSE */, timeout );
+        if( waitResult == WAIT_FAILED )
+        {
+            result = paUnanticipatedHostError;
+            /** @todo FIXME/REVIEW: can't return host error info from an asyncronous thread */
+            done = 1;
+        }
+        else if( waitResult == WAIT_TIMEOUT )
+        {
+            /* if a timeout is encountered, continue */
+        }
+
+        if( stream->abortProcessing )
+        {
+            /* Pa_AbortStream() has been called, stop processing immediately */
+            done = 1;
+        }
+        else if( stream->stopProcessing )
+        {
+            /* Pa_StopStream() has been called or the user callback returned
+                non-zero, processing will continue until all output buffers
+                are marked as done. The stream will stop immediately if it
+                is input-only.
+            */
+
+            if( PA_IS_OUTPUT_STREAM_(stream) )
+            {
+                if( NoBuffersAreQueued( &stream->output ) )
+                    done = 1; /* Will cause thread to return. */
+            }
+            else
+            {
+                /* input only stream */
+                done = 1; /* Will cause thread to return. */
+            }
+        }
+        else
+        {
+            hostBuffersAvailable = 1;
+
+            /* process all available host buffers */
+            do
+            {
+                hostInputBufferIndex = -1;
+                hostOutputBufferIndex = -1;
+                
+                if( PA_IS_INPUT_STREAM_(stream) )
+                {
+                    if( CurrentInputBuffersAreDone( stream ) )
+                    {
+                        if( NoBuffersAreQueued( &stream->input ) )
+                        {
+                            /** @todo
+                               if all of the other buffers are also ready then
+                               we discard all but the most recent. This is an
+                               input buffer overflow. FIXME: these buffers should
+                               be passed to the callback in a paNeverDropInput
+                               stream.
+
+                               note that it is also possible for an input overflow
+                               to happen while the callback is processing a buffer.
+                               that is handled further down.
+                            */
+                            result = CatchUpInputBuffers( stream );
+                            if( result != paNoError )
+                                done = 1;
+
+                            statusFlags |= paInputOverflow;
+                        }
+
+                        hostInputBufferIndex = stream->input.currentBufferIndex;
+                    }
+                }
+
+                if( PA_IS_OUTPUT_STREAM_(stream) )
+                {
+                    if( CurrentOutputBuffersAreDone( stream ) )
+                    {
+                        /* ok, we have an output buffer */
+                        
+                        if( NoBuffersAreQueued( &stream->output ) )
+                        {
+                            /*
+                            if all of the other buffers are also ready, catch up by copying
+                            the most recently generated buffer into all but one of the output
+                            buffers.
+
+                            note that this catch up code only handles the case where all
+                            buffers have been played out due to this thread not having
+                            woken up at all. a more common case occurs when this thread
+                            is woken up, processes one buffer, but takes too long, and as
+                            a result all the other buffers have become un-queued. that
+                            case is handled further down.
+                            */
+
+                            result = CatchUpOutputBuffers( stream );
+                            if( result != paNoError )
+                                done = 1;
+
+                            statusFlags |= paOutputUnderflow;
+                        }
+
+                        hostOutputBufferIndex = stream->output.currentBufferIndex;
+                    }
+                }
+
+               
+                if( (PA_IS_FULL_DUPLEX_STREAM_(stream) && hostInputBufferIndex != -1 && hostOutputBufferIndex != -1) ||
+                        (PA_IS_HALF_DUPLEX_STREAM_(stream) && ( hostInputBufferIndex != -1 || hostOutputBufferIndex != -1 ) ) )
+                {
+                    PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /** @todo implement inputBufferAdcTime */
+
+
+                    if( PA_IS_OUTPUT_STREAM_(stream) )
+                    {
+                        /* set timeInfo.currentTime and calculate timeInfo.outputBufferDacTime
+                            from the current wave out position */
+                        MMTIME mmtime;
+                        double timeBeforeGetPosition, timeAfterGetPosition;
+                        double time;
+                        long framesInBufferRing; 		
+                        long writePosition;
+                        long playbackPosition;
+                        HWAVEOUT firstWaveOutDevice = ((HWAVEOUT*)stream->output.waveHandles)[0];
+                        
+                        mmtime.wType = TIME_SAMPLES;
+                        timeBeforeGetPosition = PaUtil_GetTime();
+                        waveOutGetPosition( firstWaveOutDevice, &mmtime, sizeof(MMTIME) );
+                        timeAfterGetPosition = PaUtil_GetTime();
+
+                        timeInfo.currentTime = timeAfterGetPosition;
+
+                        /* approximate time at which wave out position was measured
+                            as half way between timeBeforeGetPosition and timeAfterGetPosition */
+                        time = timeBeforeGetPosition + (timeAfterGetPosition - timeBeforeGetPosition) * .5;
+                        
+                        framesInBufferRing = stream->output.bufferCount * stream->bufferProcessor.framesPerHostBuffer;
+                        playbackPosition = mmtime.u.sample % framesInBufferRing;
+
+                        writePosition = stream->output.currentBufferIndex * stream->bufferProcessor.framesPerHostBuffer
+                                + stream->output.framesUsedInCurrentBuffer;
+                       
+                        if( playbackPosition >= writePosition ){
+                            timeInfo.outputBufferDacTime =
+                                    time + ((double)( writePosition + (framesInBufferRing - playbackPosition) ) * stream->bufferProcessor.samplePeriod );
+                        }else{
+                            timeInfo.outputBufferDacTime =
+                                    time + ((double)( writePosition - playbackPosition ) * stream->bufferProcessor.samplePeriod );
+                        }
+                    }
+
+
+                    PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer );
+
+                    PaUtil_BeginBufferProcessing( &stream->bufferProcessor, &timeInfo, statusFlags  );
+
+                    /* reset status flags once they have been passed to the buffer processor */
+                    statusFlags = 0;
+
+                    if( PA_IS_INPUT_STREAM_(stream) )
+                    {
+                        PaUtil_SetInputFrameCount( &stream->bufferProcessor, 0 /* default to host buffer size */ );
+
+                        channel = 0;
+                        for( i=0; i<stream->input.deviceCount; ++i )
+                        {
+                             /* we have stored the number of channels in the buffer in dwUser */
+                            int channelCount = (int)stream->input.waveHeaders[i][ hostInputBufferIndex ].dwUser;
+                            
+                            PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor, channel,
+                                    stream->input.waveHeaders[i][ hostInputBufferIndex ].lpData +
+                                        stream->input.framesUsedInCurrentBuffer * channelCount *
+                                        stream->bufferProcessor.bytesPerHostInputSample,
+                                    channelCount );
+                                    
+
+                            channel += channelCount;
+                        }
+                    }
+
+                    if( PA_IS_OUTPUT_STREAM_(stream) )
+                    {
+                        PaUtil_SetOutputFrameCount( &stream->bufferProcessor, 0 /* default to host buffer size */ );
+                        
+                        channel = 0;
+                        for( i=0; i<stream->output.deviceCount; ++i )
+                        {
+                            /* we have stored the number of channels in the buffer in dwUser */
+                            int channelCount = (int)stream->output.waveHeaders[i][ hostOutputBufferIndex ].dwUser;
+
+                            PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, channel,
+                                    stream->output.waveHeaders[i][ hostOutputBufferIndex ].lpData +
+                                        stream->output.framesUsedInCurrentBuffer * channelCount *
+                                        stream->bufferProcessor.bytesPerHostOutputSample,
+                                    channelCount );
+
+                            channel += channelCount;
+                        }
+                    }
+
+                    callbackResult = paContinue;
+                    framesProcessed = PaUtil_EndBufferProcessing( &stream->bufferProcessor, &callbackResult );
+
+                    stream->input.framesUsedInCurrentBuffer += framesProcessed;
+                    stream->output.framesUsedInCurrentBuffer += framesProcessed;
+
+                    PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+
+                    if( callbackResult == paContinue )
+                    {
+                        /* nothing special to do */
+                    }
+                    else if( callbackResult == paAbort )
+                    {
+                        stream->abortProcessing = 1;
+                        done = 1;
+                        /** @todo FIXME: should probably reset the output device immediately once the callback returns paAbort */
+                        result = paNoError;
+                    }
+                    else
+                    {
+                        /* User callback has asked us to stop with paComplete or other non-zero value */
+                        stream->stopProcessing = 1; /* stop once currently queued audio has finished */
+                        result = paNoError;
+                    }
+
+
+                    if( PA_IS_INPUT_STREAM_(stream)
+                            && stream->stopProcessing == 0 && stream->abortProcessing == 0
+                            && stream->input.framesUsedInCurrentBuffer == stream->input.framesPerBuffer )
+                    {
+                        if( NoBuffersAreQueued( &stream->input ) )
+                        {
+                            /** @todo need to handle PaNeverDropInput here where necessary */
+                            result = CatchUpInputBuffers( stream );
+                            if( result != paNoError )
+                                done = 1;
+
+                            statusFlags |= paInputOverflow;
+                        }
+
+                        result = AdvanceToNextInputBuffer( stream );
+                        if( result != paNoError )
+                            done = 1;
+                    }
+
+                    
+                    if( PA_IS_OUTPUT_STREAM_(stream) && !stream->abortProcessing )
+                    {
+                        if( stream->stopProcessing &&
+                                stream->output.framesUsedInCurrentBuffer < stream->output.framesPerBuffer )
+                        {
+                            /* zero remaining samples in output output buffer and flush */
+
+                            stream->output.framesUsedInCurrentBuffer += PaUtil_ZeroOutput( &stream->bufferProcessor,
+                                    stream->output.framesPerBuffer - stream->output.framesUsedInCurrentBuffer );
+
+                            /* we send the entire buffer to the output devices, but we could
+                                just send a partial buffer, rather than zeroing the unused
+                                samples.
+                            */
+                        }
+
+                        if( stream->output.framesUsedInCurrentBuffer == stream->output.framesPerBuffer )
+                        {
+                            /* check for underflow before enquing the just-generated buffer,
+                                but recover from underflow after enquing it. This ensures
+                                that the most recent audio segment is repeated */
+                            int outputUnderflow = NoBuffersAreQueued( &stream->output );
+
+                            result = AdvanceToNextOutputBuffer( stream );
+                            if( result != paNoError )
+                                done = 1;
+
+                            if( outputUnderflow && !done && !stream->stopProcessing )
+                            {
+                                /* Recover from underflow in the case where the
+                                    underflow occured while processing the buffer
+                                    we just finished */
+
+                                result = CatchUpOutputBuffers( stream );
+                                if( result != paNoError )
+                                    done = 1;
+
+                                statusFlags |= paOutputUnderflow;
+                            }
+                        }
+                    }
+                    
+                    if( stream->throttleProcessingThreadOnOverload != 0 )
+                    {
+                        if( stream->stopProcessing || stream->abortProcessing )
+                        {
+                            if( stream->processingThreadPriority != stream->highThreadPriority )
+                            {
+                                SetThreadPriority( stream->processingThread, stream->highThreadPriority );
+                                stream->processingThreadPriority = stream->highThreadPriority;
+                            }
+                        }
+                        else if( PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer ) > 1. )
+                        {
+                            if( stream->processingThreadPriority != stream->throttledThreadPriority )
+                            {
+                                SetThreadPriority( stream->processingThread, stream->throttledThreadPriority );
+                                stream->processingThreadPriority = stream->throttledThreadPriority;
+                            }
+
+                            /* sleep to give other processes a go */
+                            Sleep( stream->throttledSleepMsecs );
+                        }
+                        else
+                        {
+                            if( stream->processingThreadPriority != stream->highThreadPriority )
+                            {
+                                SetThreadPriority( stream->processingThread, stream->highThreadPriority );
+                                stream->processingThreadPriority = stream->highThreadPriority;
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    hostBuffersAvailable = 0;
+                }
+            }
+            while( hostBuffersAvailable &&
+                    stream->stopProcessing == 0 &&
+                    stream->abortProcessing == 0 &&
+                    !done );
+        }
+    }
+    while( !done );
+
+    stream->isActive = 0;
+
+    if( stream->streamRepresentation.streamFinishedCallback != 0 )
+        stream->streamRepresentation.streamFinishedCallback( stream->streamRepresentation.userData );
+
+    PaUtil_ResetCpuLoadMeasurer( &stream->cpuLoadMeasurer );
+    
+    return result;
+}
+
+
+/*
+    When CloseStream() is called, the multi-api layer ensures that
+    the stream has already been stopped or aborted.
+*/
+static PaError CloseStream( PaStream* s )
+{
+    PaError result;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+
+    result = CloseHandleWithPaError( stream->abortEvent );
+    if( result != paNoError ) goto error;
+    
+    TerminateWaveHeaders( &stream->output, 0 /* not isInput */ );
+    TerminateWaveHeaders( &stream->input, 1 /* isInput */ );
+
+    TerminateWaveHandles( &stream->output, 0 /* not isInput */, 0 /* not currentlyProcessingAnError */ );
+    TerminateWaveHandles( &stream->input, 1 /* isInput */, 0 /* not currentlyProcessingAnError */ );
+    
+    PaUtil_TerminateBufferProcessor( &stream->bufferProcessor );
+    PaUtil_TerminateStreamRepresentation( &stream->streamRepresentation );
+    PaUtil_FreeMemory( stream );
+
+error:
+    /** @todo REVIEW: what is the best way to clean up a stream if an error is detected? */
+    return result;
+}
+
+
+static PaError StartStream( PaStream *s )
+{
+    PaError result;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    MMRESULT mmresult;
+    unsigned int i, j;
+    int callbackResult;
+	unsigned int channel;
+ 	unsigned long framesProcessed;
+	PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /** @todo implement this for stream priming */
+    
+    PaUtil_ResetBufferProcessor( &stream->bufferProcessor );
+    
+    if( PA_IS_INPUT_STREAM_(stream) )
+    {
+        for( i=0; i<stream->input.bufferCount; ++i )
+        {
+            for( j=0; j<stream->input.deviceCount; ++j )
+            {
+                stream->input.waveHeaders[j][i].dwFlags &= ~WHDR_DONE;
+                mmresult = waveInAddBuffer( ((HWAVEIN*)stream->input.waveHandles)[j], &stream->input.waveHeaders[j][i], sizeof(WAVEHDR) );
+                if( mmresult != MMSYSERR_NOERROR )
+                {
+                    result = paUnanticipatedHostError;
+                    PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                    goto error;
+                }
+            }
+        }
+        stream->input.currentBufferIndex = 0;
+        stream->input.framesUsedInCurrentBuffer = 0;
+    }
+
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+    {
+        for( i=0; i<stream->output.deviceCount; ++i )
+        {
+            if( (mmresult = waveOutPause( ((HWAVEOUT*)stream->output.waveHandles)[i] )) != MMSYSERR_NOERROR )
+            {
+                result = paUnanticipatedHostError;
+                PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                goto error;
+            }
+        }
+
+        for( i=0; i<stream->output.bufferCount; ++i )
+        {
+            if( stream->primeStreamUsingCallback )
+            {
+
+                stream->output.framesUsedInCurrentBuffer = 0;
+                do{
+
+                    PaUtil_BeginBufferProcessing( &stream->bufferProcessor,
+                            &timeInfo,
+                            paPrimingOutput | ((stream->input.bufferCount > 0 ) ? paInputUnderflow : 0));
+
+                    if( stream->input.bufferCount > 0 )
+                        PaUtil_SetNoInput( &stream->bufferProcessor );
+
+                    PaUtil_SetOutputFrameCount( &stream->bufferProcessor, 0 /* default to host buffer size */ );
+
+                    channel = 0;
+                    for( j=0; j<stream->output.deviceCount; ++j )
+                    {
+                        /* we have stored the number of channels in the buffer in dwUser */
+                        int channelCount = (int)stream->output.waveHeaders[j][i].dwUser;
+
+                        PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, channel,
+                                stream->output.waveHeaders[j][i].lpData +
+                                stream->output.framesUsedInCurrentBuffer * channelCount *
+                                stream->bufferProcessor.bytesPerHostOutputSample,
+                                channelCount );
+
+                        /* we have stored the number of channels in the buffer in dwUser */
+                        channel += channelCount;
+                    }
+
+                    callbackResult = paContinue;
+                    framesProcessed = PaUtil_EndBufferProcessing( &stream->bufferProcessor, &callbackResult );
+                    stream->output.framesUsedInCurrentBuffer += framesProcessed;
+
+                    if( callbackResult != paContinue )
+                    {
+                        /** @todo fix this, what do we do if callback result is non-zero during stream
+                            priming?
+
+                            for complete: play out primed waveHeaders as usual
+                            for abort: clean up immediately.
+                       */
+                    }
+
+                }while( stream->output.framesUsedInCurrentBuffer != stream->output.framesPerBuffer );
+
+            }
+            else
+            {
+                for( j=0; j<stream->output.deviceCount; ++j )
+                {
+                    ZeroMemory( stream->output.waveHeaders[j][i].lpData, stream->output.waveHeaders[j][i].dwBufferLength );
+                }
+            }   
+
+            /* we queue all channels of a single buffer frame (accross all
+                devices, because some multidevice multichannel drivers work
+                better this way */
+            for( j=0; j<stream->output.deviceCount; ++j )
+            {
+                mmresult = waveOutWrite( ((HWAVEOUT*)stream->output.waveHandles)[j], &stream->output.waveHeaders[j][i], sizeof(WAVEHDR) );
+                if( mmresult != MMSYSERR_NOERROR )
+                {
+                    result = paUnanticipatedHostError;
+                    PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                    goto error;
+                }
+            }
+        }
+        stream->output.currentBufferIndex = 0;
+        stream->output.framesUsedInCurrentBuffer = 0;
+    }
+
+
+    stream->isStopped = 0;
+    stream->isActive = 1;
+    stream->stopProcessing = 0;
+    stream->abortProcessing = 0;
+
+    result = ResetEventWithPaError( stream->input.bufferEvent );
+    if( result != paNoError ) goto error;
+
+    result = ResetEventWithPaError( stream->output.bufferEvent );
+    if( result != paNoError ) goto error;
+    
+    
+    if( stream->streamRepresentation.streamCallback )
+    {
+        /* callback stream */
+
+        result = ResetEventWithPaError( stream->abortEvent );
+        if( result != paNoError ) goto error;
+
+        /* Create thread that waits for audio buffers to be ready for processing. */
+        stream->processingThread = CreateThread( 0, 0, ProcessingThreadProc, stream, 0, &stream->processingThreadId );
+        if( !stream->processingThread )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_SYSTEM_ERROR( GetLastError() );
+            goto error;
+        }
+
+        /** @todo could have mme specific stream parameters to allow the user
+            to set the callback thread priorities */
+        stream->highThreadPriority = THREAD_PRIORITY_TIME_CRITICAL;
+        stream->throttledThreadPriority = THREAD_PRIORITY_NORMAL;
+
+        if( !SetThreadPriority( stream->processingThread, stream->highThreadPriority ) )
+        {
+            result = paUnanticipatedHostError;
+            PA_MME_SET_LAST_SYSTEM_ERROR( GetLastError() );
+            goto error;
+        }
+        stream->processingThreadPriority = stream->highThreadPriority;
+    }
+    else
+    {
+        /* blocking read/write stream */
+
+    }
+
+    if( PA_IS_INPUT_STREAM_(stream) )
+    {
+        for( i=0; i < stream->input.deviceCount; ++i )
+        {
+            mmresult = waveInStart( ((HWAVEIN*)stream->input.waveHandles)[i] );
+            PA_DEBUG(("Pa_StartStream: waveInStart returned = 0x%X.\n", mmresult));
+            if( mmresult != MMSYSERR_NOERROR )
+            {
+                result = paUnanticipatedHostError;
+                PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                goto error;
+            }
+        }
+    }
+
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+    {
+        for( i=0; i < stream->output.deviceCount; ++i )
+        {
+            if( (mmresult = waveOutRestart( ((HWAVEOUT*)stream->output.waveHandles)[i] )) != MMSYSERR_NOERROR )
+            {
+                result = paUnanticipatedHostError;
+                PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                goto error;
+            }
+        }
+    }
+
+    return result;
+
+error:
+    /** @todo FIXME: implement recovery as best we can
+    This should involve rolling back to a state as-if this function had never been called
+    */
+    return result;
+}
+
+
+static PaError StopStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    int timeout;
+    DWORD waitResult;
+    MMRESULT mmresult;
+    signed int hostOutputBufferIndex;
+    unsigned int channel, waitCount, i;                  
+    
+    /** @todo
+        REVIEW: the error checking in this function needs review. the basic
+        idea is to return from this function in a known state - for example
+        there is no point avoiding calling waveInReset just because
+        the thread times out.
+    */
+
+    if( stream->processingThread )
+    {
+        /* callback stream */
+
+        /* Tell processing thread to stop generating more data and to let current data play out. */
+        stream->stopProcessing = 1;
+
+        /* Calculate timeOut longer than longest time it could take to return all buffers. */
+        timeout = (int)(stream->allBuffersDurationMs * 1.5);
+        if( timeout < PA_MME_MIN_TIMEOUT_MSEC_ )
+            timeout = PA_MME_MIN_TIMEOUT_MSEC_;
+
+        PA_DEBUG(("WinMME StopStream: waiting for background thread.\n"));
+
+        waitResult = WaitForSingleObject( stream->processingThread, timeout );
+        if( waitResult == WAIT_TIMEOUT )
+        {
+            /* try to abort */
+            stream->abortProcessing = 1;
+            SetEvent( stream->abortEvent );
+            waitResult = WaitForSingleObject( stream->processingThread, timeout );
+            if( waitResult == WAIT_TIMEOUT )
+            {
+                PA_DEBUG(("WinMME StopStream: timed out while waiting for background thread to finish.\n"));
+                result = paTimedOut;
+            }
+        }
+
+        CloseHandle( stream->processingThread );
+        stream->processingThread = NULL;
+    }
+    else
+    {
+        /* blocking read / write stream */
+
+        if( PA_IS_OUTPUT_STREAM_(stream) )
+        {
+            if( stream->output.framesUsedInCurrentBuffer > 0 )
+            {
+                /* there are still unqueued frames in the current buffer, so flush them */
+
+                hostOutputBufferIndex = stream->output.currentBufferIndex;
+
+                PaUtil_SetOutputFrameCount( &stream->bufferProcessor,
+                        stream->output.framesPerBuffer - stream->output.framesUsedInCurrentBuffer );
+                
+                channel = 0;
+                for( i=0; i<stream->output.deviceCount; ++i )
+                {
+                    /* we have stored the number of channels in the buffer in dwUser */
+                    int channelCount = (int)stream->output.waveHeaders[i][ hostOutputBufferIndex ].dwUser;
+
+                    PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, channel,
+                            stream->output.waveHeaders[i][ hostOutputBufferIndex ].lpData +
+                                stream->output.framesUsedInCurrentBuffer * channelCount *
+                                stream->bufferProcessor.bytesPerHostOutputSample,
+                            channelCount );
+
+                    channel += channelCount;
+                }
+
+                PaUtil_ZeroOutput( &stream->bufferProcessor,
+                        stream->output.framesPerBuffer - stream->output.framesUsedInCurrentBuffer );
+
+                /* we send the entire buffer to the output devices, but we could
+                    just send a partial buffer, rather than zeroing the unused
+                    samples.
+                */
+                AdvanceToNextOutputBuffer( stream );
+            }
+            
+
+            timeout = (stream->allBuffersDurationMs / stream->output.bufferCount) + 1;
+            if( timeout < PA_MME_MIN_TIMEOUT_MSEC_ )
+                timeout = PA_MME_MIN_TIMEOUT_MSEC_;
+
+            waitCount = 0;
+            while( !NoBuffersAreQueued( &stream->output ) && waitCount <= stream->output.bufferCount )
+            {
+                /* wait for MME to signal that a buffer is available */
+                waitResult = WaitForSingleObject( stream->output.bufferEvent, timeout );
+                if( waitResult == WAIT_FAILED )
+                {
+                    break;
+                }
+                else if( waitResult == WAIT_TIMEOUT )
+                {
+                    /* keep waiting */
+                }
+
+                ++waitCount;
+            }
+        }
+    }
+
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+    {
+        for( i =0; i < stream->output.deviceCount; ++i )
+        {
+            mmresult = waveOutReset( ((HWAVEOUT*)stream->output.waveHandles)[i] );
+            if( mmresult != MMSYSERR_NOERROR )
+            {
+                result = paUnanticipatedHostError;
+                PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+            }
+        }
+    }
+
+    if( PA_IS_INPUT_STREAM_(stream) )
+    {
+        for( i=0; i < stream->input.deviceCount; ++i )
+        {
+            mmresult = waveInReset( ((HWAVEIN*)stream->input.waveHandles)[i] );
+            if( mmresult != MMSYSERR_NOERROR )
+            {
+                result = paUnanticipatedHostError;
+                PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+            }
+        }
+    }
+
+    stream->isStopped = 1;
+    stream->isActive = 0;
+
+    return result;
+}
+
+
+static PaError AbortStream( PaStream *s )
+{
+    PaError result = paNoError;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    int timeout;
+    DWORD waitResult;
+    MMRESULT mmresult;
+    unsigned int i;
+    
+    /** @todo
+        REVIEW: the error checking in this function needs review. the basic
+        idea is to return from this function in a known state - for example
+        there is no point avoiding calling waveInReset just because
+        the thread times out.
+    */
+
+    if( stream->processingThread )
+    {
+        /* callback stream */
+        
+        /* Tell processing thread to abort immediately */
+        stream->abortProcessing = 1;
+        SetEvent( stream->abortEvent );
+    }
+
+
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+    {
+        for( i =0; i < stream->output.deviceCount; ++i )
+        {
+            mmresult = waveOutReset( ((HWAVEOUT*)stream->output.waveHandles)[i] );
+            if( mmresult != MMSYSERR_NOERROR )
+            {
+                PA_MME_SET_LAST_WAVEOUT_ERROR( mmresult );
+                return paUnanticipatedHostError;
+            }
+        }
+    }
+
+    if( PA_IS_INPUT_STREAM_(stream) )
+    {
+        for( i=0; i < stream->input.deviceCount; ++i )
+        {
+            mmresult = waveInReset( ((HWAVEIN*)stream->input.waveHandles)[i] );
+            if( mmresult != MMSYSERR_NOERROR )
+            {
+                PA_MME_SET_LAST_WAVEIN_ERROR( mmresult );
+                return paUnanticipatedHostError;
+            }
+        }
+    }
+
+
+    if( stream->processingThread )
+    {
+        /* callback stream */
+        
+        PA_DEBUG(("WinMME AbortStream: waiting for background thread.\n"));
+
+        /* Calculate timeOut longer than longest time it could take to return all buffers. */
+        timeout = (int)(stream->allBuffersDurationMs * 1.5);
+        if( timeout < PA_MME_MIN_TIMEOUT_MSEC_ )
+            timeout = PA_MME_MIN_TIMEOUT_MSEC_;
+            
+        waitResult = WaitForSingleObject( stream->processingThread, timeout );
+        if( waitResult == WAIT_TIMEOUT )
+        {
+            PA_DEBUG(("WinMME AbortStream: timed out while waiting for background thread to finish.\n"));
+            return paTimedOut;
+        }
+
+        CloseHandle( stream->processingThread );
+        stream->processingThread = NULL;
+    }
+
+    stream->isStopped = 1;
+    stream->isActive = 0;
+
+    return result;
+}
+
+
+static PaError IsStreamStopped( PaStream *s )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+
+    return stream->isStopped;
+}
+
+
+static PaError IsStreamActive( PaStream *s )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+
+    return stream->isActive;
+}
+
+
+static PaTime GetStreamTime( PaStream *s )
+{
+    (void) s; /* unused parameter */
+    
+    return PaUtil_GetTime();
+}
+
+
+static double GetStreamCpuLoad( PaStream* s )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+
+    return PaUtil_GetCpuLoad( &stream->cpuLoadMeasurer );
+}
+
+
+/*
+    As separate stream interfaces are used for blocking and callback
+    streams, the following functions can be guaranteed to only be called
+    for blocking streams.
+*/
+
+static PaError ReadStream( PaStream* s,
+                           void *buffer,
+                           unsigned long frames )
+{
+    PaError result = paNoError;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    void *userBuffer;
+    unsigned long framesRead = 0;
+    unsigned long framesProcessed;
+    signed int hostInputBufferIndex;
+    DWORD waitResult;
+    DWORD timeout = (unsigned long)(stream->allBuffersDurationMs * 0.5);
+    unsigned int channel, i;
+    
+    if( PA_IS_INPUT_STREAM_(stream) )
+    {
+        /* make a local copy of the user buffer pointer(s). this is necessary
+            because PaUtil_CopyInput() advances these pointers every time
+            it is called.
+        */
+        if( stream->bufferProcessor.userInputIsInterleaved )
+        {
+            userBuffer = buffer;
+        }
+        else
+        {
+            userBuffer = alloca( sizeof(void*) * stream->bufferProcessor.inputChannelCount );
+            if( !userBuffer )
+                return paInsufficientMemory;
+            for( i = 0; i<stream->bufferProcessor.inputChannelCount; ++i )
+                ((void**)userBuffer)[i] = ((void**)buffer)[i];
+        }
+        
+        do{
+            if( CurrentInputBuffersAreDone( stream ) )
+            {
+                if( NoBuffersAreQueued( &stream->input ) )
+                {
+                    /** @todo REVIEW: consider what to do if the input overflows.
+                        do we requeue all of the buffers? should we be running
+                        a thread to make sure they are always queued? */
+
+                    result = paInputOverflowed;
+                }
+
+                hostInputBufferIndex = stream->input.currentBufferIndex;
+
+                PaUtil_SetInputFrameCount( &stream->bufferProcessor,
+                        stream->input.framesPerBuffer - stream->input.framesUsedInCurrentBuffer );
+                
+                channel = 0;
+                for( i=0; i<stream->input.deviceCount; ++i )
+                {
+                    /* we have stored the number of channels in the buffer in dwUser */
+                    int channelCount = (int)stream->input.waveHeaders[i][ hostInputBufferIndex ].dwUser;
+
+                    PaUtil_SetInterleavedInputChannels( &stream->bufferProcessor, channel,
+                            stream->input.waveHeaders[i][ hostInputBufferIndex ].lpData +
+                                stream->input.framesUsedInCurrentBuffer * channelCount *
+                                stream->bufferProcessor.bytesPerHostInputSample,
+                            channelCount );
+
+                    channel += channelCount;
+                }
+                
+                framesProcessed = PaUtil_CopyInput( &stream->bufferProcessor, &userBuffer, frames - framesRead );
+
+                stream->input.framesUsedInCurrentBuffer += framesProcessed;
+                if( stream->input.framesUsedInCurrentBuffer == stream->input.framesPerBuffer )
+                {
+                    result = AdvanceToNextInputBuffer( stream );
+                    if( result != paNoError )
+                        break;
+                }
+
+                framesRead += framesProcessed;      
+
+            }else{
+                /* wait for MME to signal that a buffer is available */
+                waitResult = WaitForSingleObject( stream->input.bufferEvent, timeout );
+                if( waitResult == WAIT_FAILED )
+                {
+                    result = paUnanticipatedHostError;
+                    break;
+                }
+                else if( waitResult == WAIT_TIMEOUT )
+                {
+                    /* if a timeout is encountered, continue,
+                        perhaps we should give up eventually
+                    */
+                }         
+            }
+        }while( framesRead < frames );
+    }
+    else
+    {
+        result = paCanNotReadFromAnOutputOnlyStream;
+    }
+
+    return result;
+}
+
+
+static PaError WriteStream( PaStream* s,
+                            const void *buffer,
+                            unsigned long frames )
+{
+    PaError result = paNoError;
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    const void *userBuffer;
+    unsigned long framesWritten = 0;
+    unsigned long framesProcessed;
+    signed int hostOutputBufferIndex;
+    DWORD waitResult;
+    DWORD timeout = (unsigned long)(stream->allBuffersDurationMs * 0.5);
+    unsigned int channel, i;
+
+        
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+    {
+        /* make a local copy of the user buffer pointer(s). this is necessary
+            because PaUtil_CopyOutput() advances these pointers every time
+            it is called.
+        */
+        if( stream->bufferProcessor.userOutputIsInterleaved )
+        {
+            userBuffer = buffer;
+        }
+        else
+        {
+            userBuffer = alloca( sizeof(void*) * stream->bufferProcessor.outputChannelCount );
+            if( !userBuffer )
+                return paInsufficientMemory;
+            for( i = 0; i<stream->bufferProcessor.outputChannelCount; ++i )
+                ((const void**)userBuffer)[i] = ((const void**)buffer)[i];
+        }
+
+        do{
+            if( CurrentOutputBuffersAreDone( stream ) )
+            {
+                if( NoBuffersAreQueued( &stream->output ) )
+                {
+                    /** @todo REVIEW: consider what to do if the output
+                    underflows. do we requeue all the existing buffers with
+                    zeros? should we run a separate thread to keep the buffers
+                    enqueued at all times? */
+
+                    result = paOutputUnderflowed;
+                }
+
+                hostOutputBufferIndex = stream->output.currentBufferIndex;
+
+                PaUtil_SetOutputFrameCount( &stream->bufferProcessor,
+                        stream->output.framesPerBuffer - stream->output.framesUsedInCurrentBuffer );
+                
+                channel = 0;
+                for( i=0; i<stream->output.deviceCount; ++i )
+                {
+                    /* we have stored the number of channels in the buffer in dwUser */
+                    int channelCount = (int)stream->output.waveHeaders[i][ hostOutputBufferIndex ].dwUser;
+
+                    PaUtil_SetInterleavedOutputChannels( &stream->bufferProcessor, channel,
+                            stream->output.waveHeaders[i][ hostOutputBufferIndex ].lpData +
+                                stream->output.framesUsedInCurrentBuffer * channelCount *
+                                stream->bufferProcessor.bytesPerHostOutputSample,
+                            channelCount );
+
+                    channel += channelCount;
+                }
+                
+                framesProcessed = PaUtil_CopyOutput( &stream->bufferProcessor, &userBuffer, frames - framesWritten );
+
+                stream->output.framesUsedInCurrentBuffer += framesProcessed;
+                if( stream->output.framesUsedInCurrentBuffer == stream->output.framesPerBuffer )
+                {
+                    result = AdvanceToNextOutputBuffer( stream );
+                    if( result != paNoError )
+                        break;
+                }
+
+                framesWritten += framesProcessed;
+            }
+            else
+            {
+                /* wait for MME to signal that a buffer is available */
+                waitResult = WaitForSingleObject( stream->output.bufferEvent, timeout );
+                if( waitResult == WAIT_FAILED )
+                {
+                    result = paUnanticipatedHostError;
+                    break;
+                }
+                else if( waitResult == WAIT_TIMEOUT )
+                {
+                    /* if a timeout is encountered, continue,
+                        perhaps we should give up eventually
+                    */
+                }             
+            }        
+        }while( framesWritten < frames );
+    }
+    else
+    {
+        result = paCanNotWriteToAnInputOnlyStream;
+    }
+    
+    return result;
+}
+
+
+static signed long GetStreamReadAvailable( PaStream* s )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    
+    if( PA_IS_INPUT_STREAM_(stream) )
+        return GetAvailableFrames( &stream->input );
+    else
+        return paCanNotReadFromAnOutputOnlyStream;
+}
+
+
+static signed long GetStreamWriteAvailable( PaStream* s )
+{
+    PaWinMmeStream *stream = (PaWinMmeStream*)s;
+    
+    if( PA_IS_OUTPUT_STREAM_(stream) )
+        return GetAvailableFrames( &stream->output );
+    else
+        return paCanNotWriteToAnInputOnlyStream;
+}
+
+
+/* NOTE: the following functions are MME-stream specific, and are called directly
+    by client code. We need to check for many more error conditions here because
+    we don't have the benefit of pa_front.c's parameter checking.
+*/
+
+static PaError GetWinMMEStreamPointer( PaWinMmeStream **stream, PaStream *s )
+{
+    PaError result;
+    PaUtilHostApiRepresentation *hostApi;
+    PaWinMmeHostApiRepresentation *winMmeHostApi;
+    
+    result = PaUtil_ValidateStreamPointer( s );
+    if( result != paNoError )
+        return result;
+
+    result = PaUtil_GetHostApiRepresentation( &hostApi, paMME );
+    if( result != paNoError )
+        return result;
+
+    winMmeHostApi = (PaWinMmeHostApiRepresentation*)hostApi;
+    
+    /* note, the following would be easier if there was a generic way of testing
+        that a stream belongs to a specific host API */
+    
+    if( PA_STREAM_REP( s )->streamInterface == &winMmeHostApi->callbackStreamInterface
+            || PA_STREAM_REP( s )->streamInterface == &winMmeHostApi->blockingStreamInterface )
+    {
+        /* s is a WinMME stream */
+        *stream = (PaWinMmeStream *)s;
+        return paNoError;
+    }
+    else
+    {
+        return paIncompatibleStreamHostApi;
+    }
+}
+
+
+int PaWinMME_GetStreamInputHandleCount( PaStream* s )
+{
+    PaWinMmeStream *stream;
+    PaError result = GetWinMMEStreamPointer( &stream, s );
+
+    if( result == paNoError )
+        return (PA_IS_INPUT_STREAM_(stream)) ? stream->input.deviceCount : 0;
+    else
+        return result;
+}
+
+
+HWAVEIN PaWinMME_GetStreamInputHandle( PaStream* s, int handleIndex )
+{
+    PaWinMmeStream *stream;
+    PaError result = GetWinMMEStreamPointer( &stream, s );
+
+    if( result == paNoError
+            && PA_IS_INPUT_STREAM_(stream)
+            && handleIndex >= 0
+            && (unsigned int)handleIndex < stream->input.deviceCount )
+        return ((HWAVEIN*)stream->input.waveHandles)[handleIndex];
+    else
+        return 0;
+}
+
+
+int PaWinMME_GetStreamOutputHandleCount( PaStream* s)
+{
+    PaWinMmeStream *stream;
+    PaError result = GetWinMMEStreamPointer( &stream, s );
+
+    if( result == paNoError )
+        return (PA_IS_OUTPUT_STREAM_(stream)) ? stream->output.deviceCount : 0;
+    else
+        return result;
+}
+
+
+HWAVEOUT PaWinMME_GetStreamOutputHandle( PaStream* s, int handleIndex )
+{
+    PaWinMmeStream *stream;
+    PaError result = GetWinMMEStreamPointer( &stream, s );
+
+    if( result == paNoError
+            && PA_IS_OUTPUT_STREAM_(stream)
+            && handleIndex >= 0
+            && (unsigned int)handleIndex < stream->output.deviceCount )
+        return ((HWAVEOUT*)stream->output.waveHandles)[handleIndex];
+    else
+        return 0;
+}
+
+
+
+#endif
+
+
diff --git a/external/portaudio2007/pa_win_wmme.h b/external/portaudio2007/pa_win_wmme.h
new file mode 100644
index 0000000..2e61a52
--- /dev/null
+++ b/external/portaudio2007/pa_win_wmme.h
@@ -0,0 +1,176 @@
+#ifndef PA_WIN_WMME_H
+#define PA_WIN_WMME_H
+/*
+ * $Id: pa_win_wmme.h 1247 2007-08-11 16:29:09Z rossb $
+ * PortAudio Portable Real-Time Audio Library
+ * MME specific extensions
+ *
+ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @brief WMME-specific PortAudio API extension header file.
+*/
+
+
+#include "portaudio.h"
+#include "pa_win_waveformat.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+#define paWinMmeUseLowLevelLatencyParameters            (0x01)
+#define paWinMmeUseMultipleDevices                      (0x02)  /* use mme specific multiple device feature */
+#define paWinMmeUseChannelMask                          (0x04)
+
+/* By default, the mme implementation drops the processing thread's priority
+    to THREAD_PRIORITY_NORMAL and sleeps the thread if the CPU load exceeds 100%
+    This flag disables any priority throttling. The processing thread will always
+    run at THREAD_PRIORITY_TIME_CRITICAL.
+*/
+#define paWinMmeDontThrottleOverloadedProcessingThread  (0x08)
+
+
+typedef struct PaWinMmeDeviceAndChannelCount{
+    PaDeviceIndex device;
+    int channelCount;
+}PaWinMmeDeviceAndChannelCount;
+
+
+typedef struct PaWinMmeStreamInfo{
+    unsigned long size;             /**< sizeof(PaWinMmeStreamInfo) */
+    PaHostApiTypeId hostApiType;    /**< paMME */
+    unsigned long version;          /**< 1 */
+
+    unsigned long flags;
+
+    /* low-level latency setting support
+        These settings control the number and size of host buffers in order
+        to set latency. They will be used instead of the generic parameters
+        to Pa_OpenStream() if flags contains the PaWinMmeUseLowLevelLatencyParameters
+        flag.
+
+        If PaWinMmeStreamInfo structures with PaWinMmeUseLowLevelLatencyParameters
+        are supplied for both input and output in a full duplex stream, then the
+        input and output framesPerBuffer must be the same, or the larger of the
+        two must be a multiple of the smaller, otherwise a
+        paIncompatibleHostApiSpecificStreamInfo error will be returned from
+        Pa_OpenStream().
+    */
+    unsigned long framesPerBuffer;
+    unsigned long bufferCount;  /* formerly numBuffers */ 
+
+    /* multiple devices per direction support
+        If flags contains the PaWinMmeUseMultipleDevices flag,
+        this functionality will be used, otherwise the device parameter to
+        Pa_OpenStream() will be used instead.
+        If devices are specified here, the corresponding device parameter
+        to Pa_OpenStream() should be set to paUseHostApiSpecificDeviceSpecification,
+        otherwise an paInvalidDevice error will result.
+        The total number of channels accross all specified devices
+        must agree with the corresponding channelCount parameter to
+        Pa_OpenStream() otherwise a paInvalidChannelCount error will result.
+    */
+    PaWinMmeDeviceAndChannelCount *devices;
+    unsigned long deviceCount;
+
+    /*
+        support for WAVEFORMATEXTENSIBLE channel masks. If flags contains
+        paWinMmeUseChannelMask this allows you to specify which speakers 
+        to address in a multichannel stream. Constants for channelMask
+        are specified in pa_win_waveformat.h
+
+    */
+    PaWinWaveFormatChannelMask channelMask;
+
+}PaWinMmeStreamInfo;
+
+
+/** Retrieve the number of wave in handles used by a PortAudio WinMME stream.
+ Returns zero if the stream is output only.
+
+ @return A non-negative value indicating the number of wave in handles
+ or, a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+
+ @see PaWinMME_GetStreamInputHandle
+*/
+int PaWinMME_GetStreamInputHandleCount( PaStream* stream );
+
+
+/** Retrieve a wave in handle used by a PortAudio WinMME stream.
+
+ @param stream The stream to query.
+ @param handleIndex The zero based index of the wave in handle to retrieve. This
+    should be in the range [0, PaWinMME_GetStreamInputHandleCount(stream)-1].
+
+ @return A valid wave in handle, or NULL if an error occurred.
+
+ @see PaWinMME_GetStreamInputHandle
+*/
+HWAVEIN PaWinMME_GetStreamInputHandle( PaStream* stream, int handleIndex );
+
+
+/** Retrieve the number of wave out handles used by a PortAudio WinMME stream.
+ Returns zero if the stream is input only.
+ 
+ @return A non-negative value indicating the number of wave out handles
+ or, a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+
+ @see PaWinMME_GetStreamOutputHandle
+*/
+int PaWinMME_GetStreamOutputHandleCount( PaStream* stream );
+
+
+/** Retrieve a wave out handle used by a PortAudio WinMME stream.
+
+ @param stream The stream to query.
+ @param handleIndex The zero based index of the wave out handle to retrieve.
+    This should be in the range [0, PaWinMME_GetStreamOutputHandleCount(stream)-1].
+
+ @return A valid wave out handle, or NULL if an error occurred.
+
+ @see PaWinMME_GetStreamOutputHandleCount
+*/
+HWAVEOUT PaWinMME_GetStreamOutputHandle( PaStream* stream, int handleIndex );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* PA_WIN_WMME_H */                                  
diff --git a/external/portaudio2007/portaudio.h b/external/portaudio2007/portaudio.h
new file mode 100644
index 0000000..a8385ad
--- /dev/null
+++ b/external/portaudio2007/portaudio.h
@@ -0,0 +1,1133 @@
+#ifndef PORTAUDIO_H
+#define PORTAUDIO_H
+/*
+ * $Id: portaudio.h 1247 2007-08-11 16:29:09Z rossb $
+ * PortAudio Portable Real-Time Audio Library
+ * PortAudio API Header File
+ * Latest version available at: http://www.portaudio.com/
+ *
+ * Copyright (c) 1999-2002 Ross Bencina and Phil Burk
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The text above constitutes the entire PortAudio license; however, 
+ * the PortAudio community also makes the following non-binding requests:
+ *
+ * Any person wishing to distribute modifications to the Software is
+ * requested to send the modifications to the original developer so that
+ * they can be incorporated into the canonical version. It is also 
+ * requested that these non-binding requests be included along with the 
+ * license above.
+ */
+
+/** @file
+ @brief The PortAudio API.
+*/
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+ 
+/** Retrieve the release number of the currently running PortAudio build,
+ eg 1900.
+*/
+int Pa_GetVersion( void );
+
+
+/** Retrieve a textual description of the current PortAudio build,
+ eg "PortAudio V19-devel 13 October 2002".
+*/
+const char* Pa_GetVersionText( void );
+
+
+/** Error codes returned by PortAudio functions.
+ Note that with the exception of paNoError, all PaErrorCodes are negative.
+*/
+
+typedef int PaError;
+typedef enum PaErrorCode
+{
+    paNoError = 0,
+
+    paNotInitialized = -10000,
+    paUnanticipatedHostError,
+    paInvalidChannelCount,
+    paInvalidSampleRate,
+    paInvalidDevice,
+    paInvalidFlag,
+    paSampleFormatNotSupported,
+    paBadIODeviceCombination,
+    paInsufficientMemory,
+    paBufferTooBig,
+    paBufferTooSmall,
+    paNullCallback,
+    paBadStreamPtr,
+    paTimedOut,
+    paInternalError,
+    paDeviceUnavailable,
+    paIncompatibleHostApiSpecificStreamInfo,
+    paStreamIsStopped,
+    paStreamIsNotStopped,
+    paInputOverflowed,
+    paOutputUnderflowed,
+    paHostApiNotFound,
+    paInvalidHostApi,
+    paCanNotReadFromACallbackStream,      /**< @todo review error code name */
+    paCanNotWriteToACallbackStream,       /**< @todo review error code name */
+    paCanNotReadFromAnOutputOnlyStream,   /**< @todo review error code name */
+    paCanNotWriteToAnInputOnlyStream,     /**< @todo review error code name */
+    paIncompatibleStreamHostApi,
+    paBadBufferPtr
+} PaErrorCode;
+
+
+/** Translate the supplied PortAudio error code into a human readable
+ message.
+*/
+const char *Pa_GetErrorText( PaError errorCode );
+
+
+/** Library initialization function - call this before using PortAudio.
+ This function initialises internal data structures and prepares underlying
+ host APIs for use.  With the exception of Pa_GetVersion(), Pa_GetVersionText(),
+ and Pa_GetErrorText(), this function MUST be called before using any other
+ PortAudio API functions.
+
+ If Pa_Initialize() is called multiple times, each successful 
+ call must be matched with a corresponding call to Pa_Terminate(). 
+ Pairs of calls to Pa_Initialize()/Pa_Terminate() may overlap, and are not 
+ required to be fully nested.
+
+ Note that if Pa_Initialize() returns an error code, Pa_Terminate() should
+ NOT be called.
+
+ @return paNoError if successful, otherwise an error code indicating the cause
+ of failure.
+
+ @see Pa_Terminate
+*/
+PaError Pa_Initialize( void );
+
+
+/** Library termination function - call this when finished using PortAudio.
+ This function deallocates all resources allocated by PortAudio since it was
+ initializied by a call to Pa_Initialize(). In cases where Pa_Initialise() has
+ been called multiple times, each call must be matched with a corresponding call
+ to Pa_Terminate(). The final matching call to Pa_Terminate() will automatically
+ close any PortAudio streams that are still open.
+
+ Pa_Terminate() MUST be called before exiting a program which uses PortAudio.
+ Failure to do so may result in serious resource leaks, such as audio devices
+ not being available until the next reboot.
+
+ @return paNoError if successful, otherwise an error code indicating the cause
+ of failure.
+ 
+ @see Pa_Initialize
+*/
+PaError Pa_Terminate( void );
+
+
+
+/** The type used to refer to audio devices. Values of this type usually
+ range from 0 to (Pa_GetDeviceCount()-1), and may also take on the PaNoDevice
+ and paUseHostApiSpecificDeviceSpecification values.
+
+ @see Pa_GetDeviceCount, paNoDevice, paUseHostApiSpecificDeviceSpecification
+*/
+typedef int PaDeviceIndex;
+
+
+/** A special PaDeviceIndex value indicating that no device is available,
+ or should be used.
+
+ @see PaDeviceIndex
+*/
+#define paNoDevice ((PaDeviceIndex)-1)
+
+
+/** A special PaDeviceIndex value indicating that the device(s) to be used
+ are specified in the host api specific stream info structure.
+
+ @see PaDeviceIndex
+*/
+#define paUseHostApiSpecificDeviceSpecification ((PaDeviceIndex)-2)
+
+
+/* Host API enumeration mechanism */
+
+/** The type used to enumerate to host APIs at runtime. Values of this type
+ range from 0 to (Pa_GetHostApiCount()-1).
+
+ @see Pa_GetHostApiCount
+*/
+typedef int PaHostApiIndex;
+
+
+/** Retrieve the number of available host APIs. Even if a host API is
+ available it may have no devices available.
+
+ @return A non-negative value indicating the number of available host APIs
+ or, a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+
+ @see PaHostApiIndex
+*/
+PaHostApiIndex Pa_GetHostApiCount( void );
+
+
+/** Retrieve the index of the default host API. The default host API will be
+ the lowest common denominator host API on the current platform and is
+ unlikely to provide the best performance.
+
+ @return A non-negative value ranging from 0 to (Pa_GetHostApiCount()-1)
+ indicating the default host API index or, a PaErrorCode (which are always
+ negative) if PortAudio is not initialized or an error is encountered.
+*/
+PaHostApiIndex Pa_GetDefaultHostApi( void );
+
+
+/** Unchanging unique identifiers for each supported host API. This type
+ is used in the PaHostApiInfo structure. The values are guaranteed to be
+ unique and to never change, thus allowing code to be written that
+ conditionally uses host API specific extensions.
+
+ New type ids will be allocated when support for a host API reaches
+ "public alpha" status, prior to that developers should use the
+ paInDevelopment type id.
+
+ @see PaHostApiInfo
+*/
+typedef enum PaHostApiTypeId
+{
+    paInDevelopment=0, /* use while developing support for a new host API */
+    paDirectSound=1,
+    paMME=2,
+    paASIO=3,
+    paSoundManager=4,
+    paCoreAudio=5,
+    paOSS=7,
+    paALSA=8,
+    paAL=9,
+    paBeOS=10,
+    paWDMKS=11,
+    paJACK=12,
+    paWASAPI=13,
+    paAudioScienceHPI=14
+} PaHostApiTypeId;
+
+
+/** A structure containing information about a particular host API. */
+
+typedef struct PaHostApiInfo
+{
+    /** this is struct version 1 */
+    int structVersion;
+    /** The well known unique identifier of this host API @see PaHostApiTypeId */
+    PaHostApiTypeId type;
+    /** A textual description of the host API for display on user interfaces. */
+    const char *name;
+
+    /**  The number of devices belonging to this host API. This field may be
+     used in conjunction with Pa_HostApiDeviceIndexToDeviceIndex() to enumerate
+     all devices for this host API.
+     @see Pa_HostApiDeviceIndexToDeviceIndex
+    */
+    int deviceCount;
+
+    /** The default input device for this host API. The value will be a
+     device index ranging from 0 to (Pa_GetDeviceCount()-1), or paNoDevice
+     if no default input device is available.
+    */
+    PaDeviceIndex defaultInputDevice;
+
+    /** The default output device for this host API. The value will be a
+     device index ranging from 0 to (Pa_GetDeviceCount()-1), or paNoDevice
+     if no default output device is available.
+    */
+    PaDeviceIndex defaultOutputDevice;
+    
+} PaHostApiInfo;
+
+
+/** Retrieve a pointer to a structure containing information about a specific
+ host Api.
+
+ @param hostApi A valid host API index ranging from 0 to (Pa_GetHostApiCount()-1)
+
+ @return A pointer to an immutable PaHostApiInfo structure describing
+ a specific host API. If the hostApi parameter is out of range or an error
+ is encountered, the function returns NULL.
+
+ The returned structure is owned by the PortAudio implementation and must not
+ be manipulated or freed. The pointer is only guaranteed to be valid between
+ calls to Pa_Initialize() and Pa_Terminate().
+*/
+const PaHostApiInfo * Pa_GetHostApiInfo( PaHostApiIndex hostApi );
+
+
+/** Convert a static host API unique identifier, into a runtime
+ host API index.
+
+ @param type A unique host API identifier belonging to the PaHostApiTypeId
+ enumeration.
+
+ @return A valid PaHostApiIndex ranging from 0 to (Pa_GetHostApiCount()-1) or,
+ a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+ 
+ The paHostApiNotFound error code indicates that the host API specified by the
+ type parameter is not available.
+
+ @see PaHostApiTypeId
+*/
+PaHostApiIndex Pa_HostApiTypeIdToHostApiIndex( PaHostApiTypeId type );
+
+
+/** Convert a host-API-specific device index to standard PortAudio device index.
+ This function may be used in conjunction with the deviceCount field of
+ PaHostApiInfo to enumerate all devices for the specified host API.
+
+ @param hostApi A valid host API index ranging from 0 to (Pa_GetHostApiCount()-1)
+
+ @param hostApiDeviceIndex A valid per-host device index in the range
+ 0 to (Pa_GetHostApiInfo(hostApi)->deviceCount-1)
+
+ @return A non-negative PaDeviceIndex ranging from 0 to (Pa_GetDeviceCount()-1)
+ or, a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+
+ A paInvalidHostApi error code indicates that the host API index specified by
+ the hostApi parameter is out of range.
+
+ A paInvalidDevice error code indicates that the hostApiDeviceIndex parameter
+ is out of range.
+ 
+ @see PaHostApiInfo
+*/
+PaDeviceIndex Pa_HostApiDeviceIndexToDeviceIndex( PaHostApiIndex hostApi,
+        int hostApiDeviceIndex );
+
+
+
+/** Structure used to return information about a host error condition.
+*/
+typedef struct PaHostErrorInfo{
+    PaHostApiTypeId hostApiType;    /**< the host API which returned the error code */
+    long errorCode;                 /**< the error code returned */
+    const char *errorText;          /**< a textual description of the error if available, otherwise a zero-length string */
+}PaHostErrorInfo;
+
+
+/** Return information about the last host error encountered. The error
+ information returned by Pa_GetLastHostErrorInfo() will never be modified
+ asyncronously by errors occurring in other PortAudio owned threads
+ (such as the thread that manages the stream callback.)
+
+ This function is provided as a last resort, primarily to enhance debugging
+ by providing clients with access to all available error information.
+
+ @return A pointer to an immutable structure constaining information about
+ the host error. The values in this structure will only be valid if a
+ PortAudio function has previously returned the paUnanticipatedHostError
+ error code.
+*/
+const PaHostErrorInfo* Pa_GetLastHostErrorInfo( void );
+
+
+
+/* Device enumeration and capabilities */
+
+/** Retrieve the number of available devices. The number of available devices
+ may be zero.
+
+ @return A non-negative value indicating the number of available devices or,
+ a PaErrorCode (which are always negative) if PortAudio is not initialized
+ or an error is encountered.
+*/
+PaDeviceIndex Pa_GetDeviceCount( void );
+
+
+/** Retrieve the index of the default input device. The result can be
+ used in the inputDevice parameter to Pa_OpenStream().
+
+ @return The default input device index for the default host API, or paNoDevice
+ if no default input device is available or an error was encountered.
+*/
+PaDeviceIndex Pa_GetDefaultInputDevice( void );
+
+
+/** Retrieve the index of the default output device. The result can be
+ used in the outputDevice parameter to Pa_OpenStream().
+
+ @return The default output device index for the default host API, or paNoDevice
+ if no default output device is available or an error was encountered.
+
+ @note
+ On the PC, the user can specify a default device by
+ setting an environment variable. For example, to use device #1.
+<pre>
+ set PA_RECOMMENDED_OUTPUT_DEVICE=1
+</pre>
+ The user should first determine the available device ids by using
+ the supplied application "pa_devs".
+*/
+PaDeviceIndex Pa_GetDefaultOutputDevice( void );
+
+
+/** The type used to represent monotonic time in seconds that can be used
+ for syncronisation. The type is used for the outTime argument to the
+ PaStreamCallback and as the result of Pa_GetStreamTime().
+     
+ @see PaStreamCallback, Pa_GetStreamTime
+*/
+typedef double PaTime;
+
+
+/** A type used to specify one or more sample formats. Each value indicates
+ a possible format for sound data passed to and from the stream callback,
+ Pa_ReadStream and Pa_WriteStream.
+
+ The standard formats paFloat32, paInt16, paInt32, paInt24, paInt8
+ and aUInt8 are usually implemented by all implementations.
+
+ The floating point representation (paFloat32) uses +1.0 and -1.0 as the
+ maximum and minimum respectively.
+
+ paUInt8 is an unsigned 8 bit format where 128 is considered "ground"
+
+ The paNonInterleaved flag indicates that a multichannel buffer is passed
+ as a set of non-interleaved pointers.
+
+ @see Pa_OpenStream, Pa_OpenDefaultStream, PaDeviceInfo
+ @see paFloat32, paInt16, paInt32, paInt24, paInt8
+ @see paUInt8, paCustomFormat, paNonInterleaved
+*/
+typedef unsigned long PaSampleFormat;
+
+
+#define paFloat32        ((PaSampleFormat) 0x00000001) /**< @see PaSampleFormat */
+#define paInt32          ((PaSampleFormat) 0x00000002) /**< @see PaSampleFormat */
+#define paInt24          ((PaSampleFormat) 0x00000004) /**< Packed 24 bit format. @see PaSampleFormat */
+#define paInt16          ((PaSampleFormat) 0x00000008) /**< @see PaSampleFormat */
+#define paInt8           ((PaSampleFormat) 0x00000010) /**< @see PaSampleFormat */
+#define paUInt8          ((PaSampleFormat) 0x00000020) /**< @see PaSampleFormat */
+#define paCustomFormat   ((PaSampleFormat) 0x00010000)/**< @see PaSampleFormat */
+
+#define paNonInterleaved ((PaSampleFormat) 0x80000000)
+
+/** A structure providing information and capabilities of PortAudio devices.
+ Devices may support input, output or both input and output.
+*/
+typedef struct PaDeviceInfo
+{
+    int structVersion;  /* this is struct version 2 */
+    const char *name;
+    PaHostApiIndex hostApi; /* note this is a host API index, not a type id*/
+    
+    int maxInputChannels;
+    int maxOutputChannels;
+
+    /* Default latency values for interactive performance. */
+    PaTime defaultLowInputLatency;
+    PaTime defaultLowOutputLatency;
+    /* Default latency values for robust non-interactive applications (eg. playing sound files). */
+    PaTime defaultHighInputLatency;
+    PaTime defaultHighOutputLatency;
+
+    double defaultSampleRate;
+} PaDeviceInfo;
+
+
+/** Retrieve a pointer to a PaDeviceInfo structure containing information
+ about the specified device.
+ @return A pointer to an immutable PaDeviceInfo structure. If the device
+ parameter is out of range the function returns NULL.
+
+ @param device A valid device index in the range 0 to (Pa_GetDeviceCount()-1)
+
+ @note PortAudio manages the memory referenced by the returned pointer,
+ the client must not manipulate or free the memory. The pointer is only
+ guaranteed to be valid between calls to Pa_Initialize() and Pa_Terminate().
+
+ @see PaDeviceInfo, PaDeviceIndex
+*/
+const PaDeviceInfo* Pa_GetDeviceInfo( PaDeviceIndex device );
+
+
+/** Parameters for one direction (input or output) of a stream.
+*/
+typedef struct PaStreamParameters
+{
+    /** A valid device index in the range 0 to (Pa_GetDeviceCount()-1)
+     specifying the device to be used or the special constant
+     paUseHostApiSpecificDeviceSpecification which indicates that the actual
+     device(s) to use are specified in hostApiSpecificStreamInfo.
+     This field must not be set to paNoDevice.
+    */
+    PaDeviceIndex device;
+    
+    /** The number of channels of sound to be delivered to the
+     stream callback or accessed by Pa_ReadStream() or Pa_WriteStream().
+     It can range from 1 to the value of maxInputChannels in the
+     PaDeviceInfo record for the device specified by the device parameter.
+    */
+    int channelCount;
+
+    /** The sample format of the buffer provided to the stream callback,
+     a_ReadStream() or Pa_WriteStream(). It may be any of the formats described
+     by the PaSampleFormat enumeration.
+    */
+    PaSampleFormat sampleFormat;
+
+    /** The desired latency in seconds. Where practical, implementations should
+     configure their latency based on these parameters, otherwise they may
+     choose the closest viable latency instead. Unless the suggested latency
+     is greater than the absolute upper limit for the device implementations
+     should round the suggestedLatency up to the next practial value - ie to
+     provide an equal or higher latency than suggestedLatency wherever possibe.
+     Actual latency values for an open stream may be retrieved using the
+     inputLatency and outputLatency fields of the PaStreamInfo structure
+     returned by Pa_GetStreamInfo().
+     @see default*Latency in PaDeviceInfo, *Latency in PaStreamInfo
+    */
+    PaTime suggestedLatency;
+
+    /** An optional pointer to a host api specific data structure
+     containing additional information for device setup and/or stream processing.
+     hostApiSpecificStreamInfo is never required for correct operation,
+     if not used it should be set to NULL.
+    */
+    void *hostApiSpecificStreamInfo;
+
+} PaStreamParameters;
+
+
+/** Return code for Pa_IsFormatSupported indicating success. */
+#define paFormatIsSupported (0)
+
+/** Determine whether it would be possible to open a stream with the specified
+ parameters.
+
+ @param inputParameters A structure that describes the input parameters used to
+ open a stream. The suggestedLatency field is ignored. See PaStreamParameters
+ for a description of these parameters. inputParameters must be NULL for
+ output-only streams.
+
+ @param outputParameters A structure that describes the output parameters used
+ to open a stream. The suggestedLatency field is ignored. See PaStreamParameters
+ for a description of these parameters. outputParameters must be NULL for
+ input-only streams.
+
+ @param sampleRate The required sampleRate. For full-duplex streams it is the
+ sample rate for both input and output
+
+ @return Returns 0 if the format is supported, and an error code indicating why
+ the format is not supported otherwise. The constant paFormatIsSupported is
+ provided to compare with the return value for success.
+
+ @see paFormatIsSupported, PaStreamParameters
+*/
+PaError Pa_IsFormatSupported( const PaStreamParameters *inputParameters,
+                              const PaStreamParameters *outputParameters,
+                              double sampleRate );
+
+
+
+/* Streaming types and functions */
+
+
+/**
+ A single PaStream can provide multiple channels of real-time
+ streaming audio input and output to a client application. A stream
+ provides access to audio hardware represented by one or more
+ PaDevices. Depending on the underlying Host API, it may be possible 
+ to open multiple streams using the same device, however this behavior 
+ is implementation defined. Portable applications should assume that 
+ a PaDevice may be simultaneously used by at most one PaStream.
+
+ Pointers to PaStream objects are passed between PortAudio functions that
+ operate on streams.
+
+ @see Pa_OpenStream, Pa_OpenDefaultStream, Pa_OpenDefaultStream, Pa_CloseStream,
+ Pa_StartStream, Pa_StopStream, Pa_AbortStream, Pa_IsStreamActive,
+ Pa_GetStreamTime, Pa_GetStreamCpuLoad
+
+*/
+typedef void PaStream;
+
+
+/** Can be passed as the framesPerBuffer parameter to Pa_OpenStream()
+ or Pa_OpenDefaultStream() to indicate that the stream callback will
+ accept buffers of any size.
+*/
+#define paFramesPerBufferUnspecified  (0)
+
+
+/** Flags used to control the behavior of a stream. They are passed as
+ parameters to Pa_OpenStream or Pa_OpenDefaultStream. Multiple flags may be
+ ORed together.
+
+ @see Pa_OpenStream, Pa_OpenDefaultStream
+ @see paNoFlag, paClipOff, paDitherOff, paNeverDropInput,
+  paPrimeOutputBuffersUsingStreamCallback, paPlatformSpecificFlags
+*/
+typedef unsigned long PaStreamFlags;
+
+/** @see PaStreamFlags */
+#define   paNoFlag          ((PaStreamFlags) 0)
+
+/** Disable default clipping of out of range samples.
+ @see PaStreamFlags
+*/
+#define   paClipOff         ((PaStreamFlags) 0x00000001)
+
+/** Disable default dithering.
+ @see PaStreamFlags
+*/
+#define   paDitherOff       ((PaStreamFlags) 0x00000002)
+
+/** Flag requests that where possible a full duplex stream will not discard
+ overflowed input samples without calling the stream callback. This flag is
+ only valid for full duplex callback streams and only when used in combination
+ with the paFramesPerBufferUnspecified (0) framesPerBuffer parameter. Using
+ this flag incorrectly results in a paInvalidFlag error being returned from
+ Pa_OpenStream and Pa_OpenDefaultStream.
+
+ @see PaStreamFlags, paFramesPerBufferUnspecified
+*/
+#define   paNeverDropInput  ((PaStreamFlags) 0x00000004)
+
+/** Call the stream callback to fill initial output buffers, rather than the
+ default behavior of priming the buffers with zeros (silence). This flag has
+ no effect for input-only and blocking read/write streams.
+ 
+ @see PaStreamFlags
+*/
+#define   paPrimeOutputBuffersUsingStreamCallback ((PaStreamFlags) 0x00000008)
+
+/** A mask specifying the platform specific bits.
+ @see PaStreamFlags
+*/
+#define   paPlatformSpecificFlags ((PaStreamFlags)0xFFFF0000)
+
+/**
+ Timing information for the buffers passed to the stream callback.
+*/
+typedef struct PaStreamCallbackTimeInfo{
+    PaTime inputBufferAdcTime;
+    PaTime currentTime;
+    PaTime outputBufferDacTime;
+} PaStreamCallbackTimeInfo;
+
+
+/**
+ Flag bit constants for the statusFlags to PaStreamCallback.
+
+ @see paInputUnderflow, paInputOverflow, paOutputUnderflow, paOutputOverflow,
+ paPrimingOutput
+*/
+typedef unsigned long PaStreamCallbackFlags;
+
+/** In a stream opened with paFramesPerBufferUnspecified, indicates that
+ input data is all silence (zeros) because no real data is available. In a
+ stream opened without paFramesPerBufferUnspecified, it indicates that one or
+ more zero samples have been inserted into the input buffer to compensate
+ for an input underflow.
+ @see PaStreamCallbackFlags
+*/
+#define paInputUnderflow   ((PaStreamCallbackFlags) 0x00000001)
+
+/** In a stream opened with paFramesPerBufferUnspecified, indicates that data
+ prior to the first sample of the input buffer was discarded due to an
+ overflow, possibly because the stream callback is using too much CPU time.
+ Otherwise indicates that data prior to one or more samples in the
+ input buffer was discarded.
+ @see PaStreamCallbackFlags
+*/
+#define paInputOverflow    ((PaStreamCallbackFlags) 0x00000002)
+
+/** Indicates that output data (or a gap) was inserted, possibly because the
+ stream callback is using too much CPU time.
+ @see PaStreamCallbackFlags
+*/
+#define paOutputUnderflow  ((PaStreamCallbackFlags) 0x00000004)
+
+/** Indicates that output data will be discarded because no room is available.
+ @see PaStreamCallbackFlags
+*/
+#define paOutputOverflow   ((PaStreamCallbackFlags) 0x00000008)
+
+/** Some of all of the output data will be used to prime the stream, input
+ data may be zero.
+ @see PaStreamCallbackFlags
+*/
+#define paPrimingOutput    ((PaStreamCallbackFlags) 0x00000010)
+
+/**
+ Allowable return values for the PaStreamCallback.
+ @see PaStreamCallback
+*/
+typedef enum PaStreamCallbackResult
+{
+    paContinue=0,
+    paComplete=1,
+    paAbort=2
+} PaStreamCallbackResult;
+
+
+/**
+ Functions of type PaStreamCallback are implemented by PortAudio clients.
+ They consume, process or generate audio in response to requests from an
+ active PortAudio stream.
+     
+ @param input and @param output are arrays of interleaved samples,
+ the format, packing and number of channels used by the buffers are
+ determined by parameters to Pa_OpenStream().
+     
+ @param frameCount The number of sample frames to be processed by
+ the stream callback.
+
+ @param timeInfo The time in seconds when the first sample of the input
+ buffer was received at the audio input, the time in seconds when the first
+ sample of the output buffer will begin being played at the audio output, and
+ the time in seconds when the stream callback was called.
+ See also Pa_GetStreamTime()
+
+ @param statusFlags Flags indicating whether input and/or output buffers
+ have been inserted or will be dropped to overcome underflow or overflow
+ conditions.
+
+ @param userData The value of a user supplied pointer passed to
+ Pa_OpenStream() intended for storing synthesis data etc.
+
+ @return
+ The stream callback should return one of the values in the
+ PaStreamCallbackResult enumeration. To ensure that the callback continues
+ to be called, it should return paContinue (0). Either paComplete or paAbort
+ can be returned to finish stream processing, after either of these values is
+ returned the callback will not be called again. If paAbort is returned the
+ stream will finish as soon as possible. If paComplete is returned, the stream
+ will continue until all buffers generated by the callback have been played.
+ This may be useful in applications such as soundfile players where a specific
+ duration of output is required. However, it is not necessary to utilise this
+ mechanism as Pa_StopStream(), Pa_AbortStream() or Pa_CloseStream() can also
+ be used to stop the stream. The callback must always fill the entire output
+ buffer irrespective of its return value.
+
+ @see Pa_OpenStream, Pa_OpenDefaultStream
+
+ @note With the exception of Pa_GetStreamCpuLoad() it is not permissable to call
+ PortAudio API functions from within the stream callback.
+*/
+typedef int PaStreamCallback(
+    const void *input, void *output,
+    unsigned long frameCount,
+    const PaStreamCallbackTimeInfo* timeInfo,
+    PaStreamCallbackFlags statusFlags,
+    void *userData );
+
+
+/** Opens a stream for either input, output or both.
+     
+ @param stream The address of a PaStream pointer which will receive
+ a pointer to the newly opened stream.
+     
+ @param inputParameters A structure that describes the input parameters used by
+ the opened stream. See PaStreamParameters for a description of these parameters.
+ inputParameters must be NULL for output-only streams.
+
+ @param outputParameters A structure that describes the output parameters used by
+ the opened stream. See PaStreamParameters for a description of these parameters.
+ outputParameters must be NULL for input-only streams.
+ 
+ @param sampleRate The desired sampleRate. For full-duplex streams it is the
+ sample rate for both input and output
+     
+ @param framesPerBuffer The number of frames passed to the stream callback
+ function, or the preferred block granularity for a blocking read/write stream.
+ The special value paFramesPerBufferUnspecified (0) may be used to request that
+ the stream callback will recieve an optimal (and possibly varying) number of
+ frames based on host requirements and the requested latency settings.
+ Note: With some host APIs, the use of non-zero framesPerBuffer for a callback
+ stream may introduce an additional layer of buffering which could introduce
+ additional latency. PortAudio guarantees that the additional latency
+ will be kept to the theoretical minimum however, it is strongly recommended
+ that a non-zero framesPerBuffer value only be used when your algorithm
+ requires a fixed number of frames per stream callback.
+ 
+ @param streamFlags Flags which modify the behaviour of the streaming process.
+ This parameter may contain a combination of flags ORed together. Some flags may
+ only be relevant to certain buffer formats.
+     
+ @param streamCallback A pointer to a client supplied function that is responsible
+ for processing and filling input and output buffers. If this parameter is NULL
+ the stream will be opened in 'blocking read/write' mode. In blocking mode,
+ the client can receive sample data using Pa_ReadStream and write sample data
+ using Pa_WriteStream, the number of samples that may be read or written
+ without blocking is returned by Pa_GetStreamReadAvailable and
+ Pa_GetStreamWriteAvailable respectively.
+
+ @param userData A client supplied pointer which is passed to the stream callback
+ function. It could for example, contain a pointer to instance data necessary
+ for processing the audio buffers. This parameter is ignored if streamCallback
+ is NULL.
+     
+ @return
+ Upon success Pa_OpenStream() returns paNoError and places a pointer to a
+ valid PaStream in the stream argument. The stream is inactive (stopped).
+ If a call to Pa_OpenStream() fails, a non-zero error code is returned (see
+ PaError for possible error codes) and the value of stream is invalid.
+
+ @see PaStreamParameters, PaStreamCallback, Pa_ReadStream, Pa_WriteStream,
+ Pa_GetStreamReadAvailable, Pa_GetStreamWriteAvailable
+*/
+PaError Pa_OpenStream( PaStream** stream,
+                       const PaStreamParameters *inputParameters,
+                       const PaStreamParameters *outputParameters,
+                       double sampleRate,
+                       unsigned long framesPerBuffer,
+                       PaStreamFlags streamFlags,
+                       PaStreamCallback *streamCallback,
+                       void *userData );
+
+
+/** A simplified version of Pa_OpenStream() that opens the default input
+ and/or output devices.
+
+ @param stream The address of a PaStream pointer which will receive
+ a pointer to the newly opened stream.
+ 
+ @param numInputChannels  The number of channels of sound that will be supplied
+ to the stream callback or returned by Pa_ReadStream. It can range from 1 to
+ the value of maxInputChannels in the PaDeviceInfo record for the default input
+ device. If 0 the stream is opened as an output-only stream.
+
+ @param numOutputChannels The number of channels of sound to be delivered to the
+ stream callback or passed to Pa_WriteStream. It can range from 1 to the value
+ of maxOutputChannels in the PaDeviceInfo record for the default output dvice.
+ If 0 the stream is opened as an output-only stream.
+
+ @param sampleFormat The sample format of both the input and output buffers
+ provided to the callback or passed to and from Pa_ReadStream and Pa_WriteStream.
+ sampleFormat may be any of the formats described by the PaSampleFormat
+ enumeration.
+ 
+ @param sampleRate Same as Pa_OpenStream parameter of the same name.
+ @param framesPerBuffer Same as Pa_OpenStream parameter of the same name.
+ @param streamCallback Same as Pa_OpenStream parameter of the same name.
+ @param userData Same as Pa_OpenStream parameter of the same name.
+
+ @return As for Pa_OpenStream
+
+ @see Pa_OpenStream, PaStreamCallback
+*/
+PaError Pa_OpenDefaultStream( PaStream** stream,
+                              int numInputChannels,
+                              int numOutputChannels,
+                              PaSampleFormat sampleFormat,
+                              double sampleRate,
+                              unsigned long framesPerBuffer,
+                              PaStreamCallback *streamCallback,
+                              void *userData );
+
+
+/** Closes an audio stream. If the audio stream is active it
+ discards any pending buffers as if Pa_AbortStream() had been called.
+*/
+PaError Pa_CloseStream( PaStream *stream );
+
+
+/** Functions of type PaStreamFinishedCallback are implemented by PortAudio 
+ clients. They can be registered with a stream using the Pa_SetStreamFinishedCallback
+ function. Once registered they are called when the stream becomes inactive
+ (ie once a call to Pa_StopStream() will not block).
+ A stream will become inactive after the stream callback returns non-zero,
+ or when Pa_StopStream or Pa_AbortStream is called. For a stream providing audio
+ output, if the stream callback returns paComplete, or Pa_StopStream is called,
+ the stream finished callback will not be called until all generated sample data
+ has been played.
+ 
+ @param userData The userData parameter supplied to Pa_OpenStream()
+
+ @see Pa_SetStreamFinishedCallback
+*/
+typedef void PaStreamFinishedCallback( void *userData );
+
+
+/** Register a stream finished callback function which will be called when the 
+ stream becomes inactive. See the description of PaStreamFinishedCallback for 
+ further details about when the callback will be called.
+
+ @param stream a pointer to a PaStream that is in the stopped state - if the
+ stream is not stopped, the stream's finished callback will remain unchanged 
+ and an error code will be returned.
+
+ @param streamFinishedCallback a pointer to a function with the same signature
+ as PaStreamFinishedCallback, that will be called when the stream becomes
+ inactive. Passing NULL for this parameter will un-register a previously
+ registered stream finished callback function.
+
+ @return on success returns paNoError, otherwise an error code indicating the cause
+ of the error.
+
+ @see PaStreamFinishedCallback
+*/
+PaError Pa_SetStreamFinishedCallback( PaStream *stream, PaStreamFinishedCallback* streamFinishedCallback ); 
+
+
+/** Commences audio processing.
+*/
+PaError Pa_StartStream( PaStream *stream );
+
+
+/** Terminates audio processing. It waits until all pending
+ audio buffers have been played before it returns.
+*/
+PaError Pa_StopStream( PaStream *stream );
+
+
+/** Terminates audio processing immediately without waiting for pending
+ buffers to complete.
+*/
+PaError Pa_AbortStream( PaStream *stream );
+
+
+/** Determine whether the stream is stopped.
+ A stream is considered to be stopped prior to a successful call to
+ Pa_StartStream and after a successful call to Pa_StopStream or Pa_AbortStream.
+ If a stream callback returns a value other than paContinue the stream is NOT
+ considered to be stopped.
+
+ @return Returns one (1) when the stream is stopped, zero (0) when
+ the stream is running or, a PaErrorCode (which are always negative) if
+ PortAudio is not initialized or an error is encountered.
+
+ @see Pa_StopStream, Pa_AbortStream, Pa_IsStreamActive
+*/
+PaError Pa_IsStreamStopped( PaStream *stream );
+
+
+/** Determine whether the stream is active.
+ A stream is active after a successful call to Pa_StartStream(), until it
+ becomes inactive either as a result of a call to Pa_StopStream() or
+ Pa_AbortStream(), or as a result of a return value other than paContinue from
+ the stream callback. In the latter case, the stream is considered inactive
+ after the last buffer has finished playing.
+
+ @return Returns one (1) when the stream is active (ie playing or recording
+ audio), zero (0) when not playing or, a PaErrorCode (which are always negative)
+ if PortAudio is not initialized or an error is encountered.
+
+ @see Pa_StopStream, Pa_AbortStream, Pa_IsStreamStopped
+*/
+PaError Pa_IsStreamActive( PaStream *stream );
+
+
+
+/** A structure containing unchanging information about an open stream.
+ @see Pa_GetStreamInfo
+*/
+
+typedef struct PaStreamInfo
+{
+    /** this is struct version 1 */
+    int structVersion;
+
+    /** The input latency of the stream in seconds. This value provides the most
+     accurate estimate of input latency available to the implementation. It may
+     differ significantly from the suggestedLatency value passed to Pa_OpenStream().
+     The value of this field will be zero (0.) for output-only streams.
+     @see PaTime
+    */
+    PaTime inputLatency;
+
+    /** The output latency of the stream in seconds. This value provides the most
+     accurate estimate of output latency available to the implementation. It may
+     differ significantly from the suggestedLatency value passed to Pa_OpenStream().
+     The value of this field will be zero (0.) for input-only streams.
+     @see PaTime
+    */
+    PaTime outputLatency;
+
+    /** The sample rate of the stream in Hertz (samples per second). In cases
+     where the hardware sample rate is inaccurate and PortAudio is aware of it,
+     the value of this field may be different from the sampleRate parameter
+     passed to Pa_OpenStream(). If information about the actual hardware sample
+     rate is not available, this field will have the same value as the sampleRate
+     parameter passed to Pa_OpenStream().
+    */
+    double sampleRate;
+    
+} PaStreamInfo;
+
+
+/** Retrieve a pointer to a PaStreamInfo structure containing information
+ about the specified stream.
+ @return A pointer to an immutable PaStreamInfo structure. If the stream
+ parameter invalid, or an error is encountered, the function returns NULL.
+
+ @param stream A pointer to an open stream previously created with Pa_OpenStream.
+
+ @note PortAudio manages the memory referenced by the returned pointer,
+ the client must not manipulate or free the memory. The pointer is only
+ guaranteed to be valid until the specified stream is closed.
+
+ @see PaStreamInfo
+*/
+const PaStreamInfo* Pa_GetStreamInfo( PaStream *stream );
+
+
+/** Determine the current time for the stream according to the same clock used
+ to generate buffer timestamps. This time may be used for syncronising other
+ events to the audio stream, for example synchronizing audio to MIDI.
+                                        
+ @return The stream's current time in seconds, or 0 if an error occurred.
+
+ @see PaTime, PaStreamCallback
+*/
+PaTime Pa_GetStreamTime( PaStream *stream );
+
+
+/** Retrieve CPU usage information for the specified stream.
+ The "CPU Load" is a fraction of total CPU time consumed by a callback stream's
+ audio processing routines including, but not limited to the client supplied
+ stream callback. This function does not work with blocking read/write streams.
+
+ This function may be called from the stream callback function or the
+ application.
+     
+ @return
+ A floating point value, typically between 0.0 and 1.0, where 1.0 indicates
+ that the stream callback is consuming the maximum number of CPU cycles possible
+ to maintain real-time operation. A value of 0.5 would imply that PortAudio and
+ the stream callback was consuming roughly 50% of the available CPU time. The
+ return value may exceed 1.0. A value of 0.0 will always be returned for a
+ blocking read/write stream, or if an error occurrs.
+*/
+double Pa_GetStreamCpuLoad( PaStream* stream );
+
+
+/** Read samples from an input stream. The function doesn't return until
+ the entire buffer has been filled - this may involve waiting for the operating
+ system to supply the data.
+
+ @param stream A pointer to an open stream previously created with Pa_OpenStream.
+ 
+ @param buffer A pointer to a buffer of sample frames. The buffer contains
+ samples in the format specified by the inputParameters->sampleFormat field
+ used to open the stream, and the number of channels specified by
+ inputParameters->numChannels. If non-interleaved samples were requested,
+ buffer is a pointer to the first element of an array of non-interleaved
+ buffer pointers, one for each channel.
+
+ @param frames The number of frames to be read into buffer. This parameter
+ is not constrained to a specific range, however high performance applications
+ will want to match this parameter to the framesPerBuffer parameter used
+ when opening the stream.
+
+ @return On success PaNoError will be returned, or PaInputOverflowed if input
+ data was discarded by PortAudio after the previous call and before this call.
+*/
+PaError Pa_ReadStream( PaStream* stream,
+                       void *buffer,
+                       unsigned long frames );
+
+
+/** Write samples to an output stream. This function doesn't return until the
+ entire buffer has been consumed - this may involve waiting for the operating
+ system to consume the data.
+
+ @param stream A pointer to an open stream previously created with Pa_OpenStream.
+
+ @param buffer A pointer to a buffer of sample frames. The buffer contains
+ samples in the format specified by the outputParameters->sampleFormat field
+ used to open the stream, and the number of channels specified by
+ outputParameters->numChannels. If non-interleaved samples were requested,
+ buffer is a pointer to the first element of an array of non-interleaved
+ buffer pointers, one for each channel.
+
+ @param frames The number of frames to be written from buffer. This parameter
+ is not constrained to a specific range, however high performance applications
+ will want to match this parameter to the framesPerBuffer parameter used
+ when opening the stream.
+
+ @return On success PaNoError will be returned, or paOutputUnderflowed if
+ additional output data was inserted after the previous call and before this
+ call.
+*/
+PaError Pa_WriteStream( PaStream* stream,
+                        const void *buffer,
+                        unsigned long frames );
+
+
+/** Retrieve the number of frames that can be read from the stream without
+ waiting.
+
+ @return Returns a non-negative value representing the maximum number of frames
+ that can be read from the stream without blocking or busy waiting or, a
+ PaErrorCode (which are always negative) if PortAudio is not initialized or an
+ error is encountered.
+*/
+signed long Pa_GetStreamReadAvailable( PaStream* stream );
+
+
+/** Retrieve the number of frames that can be written to the stream without
+ waiting.
+
+ @return Returns a non-negative value representing the maximum number of frames
+ that can be written to the stream without blocking or busy waiting or, a
+ PaErrorCode (which are always negative) if PortAudio is not initialized or an
+ error is encountered.
+*/
+signed long Pa_GetStreamWriteAvailable( PaStream* stream );
+
+
+/* Miscellaneous utilities */
+
+
+/** Retrieve the size of a given sample format in bytes.
+
+ @return The size in bytes of a single sample in the specified format,
+ or paSampleFormatNotSupported if the format is not supported.
+*/
+PaError Pa_GetSampleSize( PaSampleFormat format );
+
+
+/** Put the caller to sleep for at least 'msec' milliseconds. This function is
+ provided only as a convenience for authors of portable code (such as the tests
+ and examples in the PortAudio distribution.)
+
+ The function may sleep longer than requested so don't rely on this for accurate
+ musical timing.
+*/
+void Pa_Sleep( long msec );
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* PORTAUDIO_H */
diff --git a/fon/AmplitudeTier.cpp b/fon/AmplitudeTier.cpp
index c1472dc..9371fbf 100644
--- a/fon/AmplitudeTier.cpp
+++ b/fon/AmplitudeTier.cpp
@@ -1,6 +1,6 @@
 /* AmplitudeTier.cpp
  *
- * Copyright (C) 2003-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2003-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,11 +21,11 @@
 
 Thing_implement (AmplitudeTier, RealTier, 0);
 
-autoAmplitudeTier AmplitudeTier_create (double tmin, double tmax) {
+AmplitudeTier AmplitudeTier_create (double tmin, double tmax) {
 	try {
 		autoAmplitudeTier me = Thing_new (AmplitudeTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"AmplitudeTier not created.");
 	}
@@ -37,51 +37,50 @@ void AmplitudeTier_draw (AmplitudeTier me, Graphics g, double tmin, double tmax,
 	RealTier_draw (me, g, tmin, tmax, ymin, ymax, garnish, method, U"Sound pressure (Pa)");
 }
 
-autoAmplitudeTier PointProcess_upto_AmplitudeTier (PointProcess me, double soundPressure) {
+AmplitudeTier PointProcess_upto_AmplitudeTier (PointProcess me, double soundPressure) {
 	try {
-		autoAmplitudeTier thee = PointProcess_upto_RealTier (me, soundPressure, classAmplitudeTier).static_cast_move<structAmplitudeTier>();
-		return thee;
+		return (AmplitudeTier) PointProcess_upto_RealTier (me, soundPressure, classAmplitudeTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to AmplitudeTier.");
 	}
 }
 
-autoAmplitudeTier IntensityTier_to_AmplitudeTier (IntensityTier me) {
+AmplitudeTier IntensityTier_to_AmplitudeTier (IntensityTier me) {
 	try {
 		autoAmplitudeTier thee = Thing_new (AmplitudeTier);
-		my structRealTier :: v_copy (thee.get());
-		for (long i = 1; i <= thy points.size; i ++) {
-			RealPoint point = thy points.at [i];
+		my structRealTier :: v_copy (thee.peek());
+		for (long i = 1; i <= thy numberOfPoints(); i ++) {
+			RealPoint point = thy point (i);
 			point -> value = pow (10.0, point -> value / 20.0) * 2.0e-5;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to AmplitudeTier.");
 	}
 }
 
-autoIntensityTier AmplitudeTier_to_IntensityTier (AmplitudeTier me, double threshold_dB) {
+IntensityTier AmplitudeTier_to_IntensityTier (AmplitudeTier me, double threshold_dB) {
 	try {
 		double threshold_Pa = pow (10.0, threshold_dB / 20.0) * 2.0e-5;   // often zero!
 		autoIntensityTier thee = Thing_new (IntensityTier);
-		my structRealTier :: v_copy (thee.get());
-		for (long i = 1; i <= thy points.size; i ++) {
-			RealPoint point = thy points.at [i];
+		my structRealTier :: v_copy (thee.peek());
+		for (long i = 1; i <= thy numberOfPoints(); i ++) {
+			RealPoint point = thy point (i);
 			double absoluteValue = fabs (point -> value);
 			point -> value = absoluteValue <= threshold_Pa ? threshold_dB : 20.0 * log10 (absoluteValue / 2.0e-5);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to IntensityTier.");
 	}
 }
 
-autoTableOfReal AmplitudeTier_downto_TableOfReal (AmplitudeTier me) {
+TableOfReal AmplitudeTier_downto_TableOfReal (AmplitudeTier me) {
 	return RealTier_downto_TableOfReal (me, U"Time (s)", U"Sound pressure (Pa)");
 }
 
 void Sound_AmplitudeTier_multiply_inline (Sound me, AmplitudeTier amplitude) {
-	if (amplitude -> points.size == 0) return;
+	if (amplitude -> numberOfPoints() == 0) return;
 	for (long isamp = 1; isamp <= my nx; isamp ++) {
 		double t = my x1 + (isamp - 1) * my dx;
 		double factor = RealTier_getValueAtTime (amplitude, t);
@@ -91,27 +90,27 @@ void Sound_AmplitudeTier_multiply_inline (Sound me, AmplitudeTier amplitude) {
 	}
 }
 
-autoSound Sound_AmplitudeTier_multiply (Sound me, AmplitudeTier amplitude) {
+Sound Sound_AmplitudeTier_multiply (Sound me, AmplitudeTier amplitude) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_AmplitudeTier_multiply_inline (thee.get(), amplitude);
-		Vector_scale (thee.get(), 0.9);
-		return thee;
+		Sound_AmplitudeTier_multiply_inline (thee.peek(), amplitude);
+		Vector_scale (thee.peek(), 0.9);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not multiplied by ", amplitude, U".");
 	}
 }
 
-autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_point (PointProcess me, Sound thee) {
+AmplitudeTier PointProcess_Sound_to_AmplitudeTier_point (PointProcess me, Sound thee) {
 	try {
 		long imin, imax, numberOfPeaks = PointProcess_getWindowPoints (me, my xmin, my xmax, & imin, & imax);
-		if (numberOfPeaks < 3) return autoAmplitudeTier();
+		if (numberOfPeaks < 3) return NULL;
 		autoAmplitudeTier him = AmplitudeTier_create (my xmin, my xmax);
 		for (long i = imin; i <= imax; i ++) {
 			double value = Vector_getValueAtX (thee, my t [i], Vector_CHANNEL_AVERAGE, Vector_VALUE_INTERPOLATION_SINC700);
-			if (NUMdefined (value)) RealTier_addPoint (him.get(), my t [i], value);
+			if (NUMdefined (value)) RealTier_addPoint (him.peek(), my t [i], value);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not converted to AmplitudeTier.");
 	}
@@ -150,7 +149,7 @@ static double Sound_getHannWindowedRms (Sound me, double tmid, double widthLeft,
 	}
 	return sqrt (sumOfSquares / windowSumOfSquares);
 }
-autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, Sound thee, double tmin, double tmax,
+AmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, Sound thee, double tmin, double tmax,
 	double pmin, double pmax, double maximumPeriodFactor)
 {
 	try {
@@ -165,10 +164,10 @@ autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, S
 			if (pmin == pmax || (p1 >= pmin && p1 <= pmax && p2 >= pmin && p2 <= pmax && intervalFactor <= maximumPeriodFactor)) {
 				double peak = Sound_getHannWindowedRms (thee, my t [i], 0.2 * p1, 0.2 * p2);
 				if (NUMdefined (peak) && peak > 0.0)
-					RealTier_addPoint (him.get(), my t [i], peak);
+					RealTier_addPoint (him.peek(), my t [i], peak);
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not converted to AmplitudeTier.");
 	}
@@ -176,8 +175,8 @@ autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, S
 double AmplitudeTier_getShimmer_local (AmplitudeTier me, double pmin, double pmax, double maximumAmplitudeFactor) {
 	long numberOfPeaks = 0;
 	double numerator = 0.0, denominator = 0.0;
-	RealPoint *points = & my points.at [0];
-	for (long i = 2; i <= my points.size; i ++) {
+	RealPoint *points = (RealPoint *) my points -> item;
+	for (long i = 2; i <= my points -> size; i ++) {
 		double p = points [i] -> number - points [i - 1] -> number;
 		if (pmin == pmax || (p >= pmin && p <= pmax)) {
 			double a1 = points [i - 1] -> value, a2 = points [i] -> value;
@@ -191,7 +190,7 @@ double AmplitudeTier_getShimmer_local (AmplitudeTier me, double pmin, double pma
 	if (numberOfPeaks < 1) return NUMundefined;
 	numerator /= numberOfPeaks;
 	numberOfPeaks = 0;
-	for (long i = 1; i < my points.size; i ++) {
+	for (long i = 1; i < my points -> size; i ++) {
 		denominator += points [i] -> value;
 		numberOfPeaks ++;
 	}
@@ -202,8 +201,8 @@ double AmplitudeTier_getShimmer_local (AmplitudeTier me, double pmin, double pma
 double AmplitudeTier_getShimmer_local_dB (AmplitudeTier me, double pmin, double pmax, double maximumAmplitudeFactor) {
 	long numberOfPeaks = 0;
 	double result = 0.0;
-	RealPoint *points = & my points.at [0];
-	for (long i = 2; i <= my points.size; i ++) {
+	RealPoint *points = (RealPoint *) my points -> item;
+	for (long i = 2; i <= my points -> size; i ++) {
 		double p = points [i] -> number - points [i - 1] -> number;
 		if (pmin == pmax || (p >= pmin && p <= pmax)) {
 			double a1 = points [i - 1] -> value, a2 = points [i] -> value;
@@ -221,8 +220,8 @@ double AmplitudeTier_getShimmer_local_dB (AmplitudeTier me, double pmin, double
 double AmplitudeTier_getShimmer_apq3 (AmplitudeTier me, double pmin, double pmax, double maximumAmplitudeFactor) {
 	long numberOfPeaks = 0;
 	double numerator = 0.0, denominator = 0.0;
-	RealPoint *points = & my points.at [0];
-	for (long i = 2; i <= my points.size - 1; i ++) {
+	RealPoint *points = (RealPoint *) my points -> item;
+	for (long i = 2; i <= my points -> size - 1; i ++) {
 		double
 			p1 = points [i] -> number - points [i - 1] -> number,
 			p2 = points [i + 1] -> number - points [i] -> number;
@@ -239,7 +238,7 @@ double AmplitudeTier_getShimmer_apq3 (AmplitudeTier me, double pmin, double pmax
 	if (numberOfPeaks < 1) return NUMundefined;
 	numerator /= numberOfPeaks;
 	numberOfPeaks = 0;
-	for (long i = 1; i < my points.size; i ++) {
+	for (long i = 1; i < my points -> size; i ++) {
 		denominator += points [i] -> value;
 		numberOfPeaks ++;
 	}
@@ -250,8 +249,8 @@ double AmplitudeTier_getShimmer_apq3 (AmplitudeTier me, double pmin, double pmax
 double AmplitudeTier_getShimmer_apq5 (AmplitudeTier me, double pmin, double pmax, double maximumAmplitudeFactor) {
 	long numberOfPeaks = 0;
 	double numerator = 0.0, denominator = 0.0;
-	RealPoint *points = & my points.at [0];
-	for (long i = 3; i <= my points.size - 2; i ++) {
+	RealPoint *points = (RealPoint *) my points -> item;
+	for (long i = 3; i <= my points -> size - 2; i ++) {
 		double
 			p1 = points [i - 1] -> number - points [i - 2] -> number,
 			p2 = points [i] -> number - points [i - 1] -> number,
@@ -276,7 +275,7 @@ double AmplitudeTier_getShimmer_apq5 (AmplitudeTier me, double pmin, double pmax
 	if (numberOfPeaks < 1) return NUMundefined;
 	numerator /= numberOfPeaks;
 	numberOfPeaks = 0;
-	for (long i = 1; i < my points.size; i ++) {
+	for (long i = 1; i < my points -> size; i ++) {
 		denominator += points [i] -> value;
 		numberOfPeaks ++;
 	}
@@ -287,8 +286,8 @@ double AmplitudeTier_getShimmer_apq5 (AmplitudeTier me, double pmin, double pmax
 double AmplitudeTier_getShimmer_apq11 (AmplitudeTier me, double pmin, double pmax, double maximumAmplitudeFactor) {
 	long numberOfPeaks = 0;
 	double numerator = 0.0, denominator = 0.0;
-	RealPoint *points = & my points.at [0];
-	for (long i = 6; i <= my points.size - 5; i ++) {
+	RealPoint *points = (RealPoint *) my points -> item;
+	for (long i = 6; i <= my points -> size - 5; i ++) {
 		double
 			p1 = points [i - 4] -> number - points [i - 5] -> number,
 			p2 = points [i - 3] -> number - points [i - 4] -> number,
@@ -329,7 +328,7 @@ double AmplitudeTier_getShimmer_apq11 (AmplitudeTier me, double pmin, double pma
 	if (numberOfPeaks < 1) return NUMundefined;
 	numerator /= numberOfPeaks;
 	numberOfPeaks = 0;
-	for (long i = 1; i < my points.size; i ++) {
+	for (long i = 1; i < my points -> size; i ++) {
 		denominator += points [i] -> value;
 		numberOfPeaks ++;
 	}
@@ -342,7 +341,7 @@ double AmplitudeTier_getShimmer_dda (AmplitudeTier me, double pmin, double pmax,
 	return NUMdefined (apq3) ? 3.0 * apq3 : NUMundefined;
 }
 
-autoSound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, long interpolationDepth) {
+Sound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, long interpolationDepth) {
 	try {
 		long sound_nt = 1 + (long) floor ((my xmax - my xmin) * samplingFrequency);   // >= 1
 		double dt = 1.0 / samplingFrequency;
@@ -351,14 +350,14 @@ autoSound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, lo
 		double *sound;
 		autoSound thee = Sound_create (1, my xmin, my xmax, sound_nt, dt, t1);
 		sound = thy z [1];
-		for (long it = 1; it <= my points.size; it ++) {
-			RealPoint point = my points.at [it];
+		for (long it = 1; it <= my points -> size; it ++) {
+			RealPoint point = (RealPoint) my points -> item [it];
 			double t = point -> number, amplitude = point -> value, angle, halfampsinangle;
-			long mid = Sampled_xToNearestIndex (thee.get(), t), j;
+			long mid = Sampled_xToNearestIndex (thee.peek(), t), j;
 			long begin = mid - interpolationDepth, end = mid + interpolationDepth;
 			if (begin < 1) begin = 1;
 			if (end > thy nx) end = thy nx;
-			angle = NUMpi * (Sampled_indexToX (thee.get(), begin) - t) / thy dx;
+			angle = NUMpi * (Sampled_indexToX (thee.peek(), begin) - t) / thy dx;
 			halfampsinangle = 0.5 * amplitude * sin (angle);
 			for (j = begin; j <= end; j ++) {
 				if (fabs (angle) < 1e-6)
@@ -373,7 +372,7 @@ autoSound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, lo
 				halfampsinangle = - halfampsinangle;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
diff --git a/fon/AmplitudeTier.h b/fon/AmplitudeTier.h
index e6a8746..69040cd 100644
--- a/fon/AmplitudeTier.h
+++ b/fon/AmplitudeTier.h
@@ -2,7 +2,7 @@
 #define _AmplitudeTier_h_
 /* AmplitudeTier.h
  *
- * Copyright (C) 2003-2011,2015 Paul Boersma
+ * Copyright (C) 2003-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,20 +30,20 @@ Thing_define (AmplitudeTier, RealTier) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoAmplitudeTier AmplitudeTier_create (double tmin, double tmax);
+AmplitudeTier AmplitudeTier_create (double tmin, double tmax);
 
 void AmplitudeTier_draw (AmplitudeTier me, Graphics g, double tmin, double tmax,
 	double ymin, double ymax, const char32 *method, int garnish);
 
-autoAmplitudeTier PointProcess_upto_AmplitudeTier (PointProcess me, double soundPressure);
-autoAmplitudeTier IntensityTier_to_AmplitudeTier (IntensityTier me);
-autoIntensityTier AmplitudeTier_to_IntensityTier (AmplitudeTier me, double threshold_dB);
-autoTableOfReal AmplitudeTier_downto_TableOfReal (AmplitudeTier me);
+AmplitudeTier PointProcess_upto_AmplitudeTier (PointProcess me, double soundPressure);
+AmplitudeTier IntensityTier_to_AmplitudeTier (IntensityTier me);
+IntensityTier AmplitudeTier_to_IntensityTier (AmplitudeTier me, double threshold_dB);
+TableOfReal AmplitudeTier_downto_TableOfReal (AmplitudeTier me);
 void Sound_AmplitudeTier_multiply_inline (Sound me, AmplitudeTier intensity);
-autoSound Sound_AmplitudeTier_multiply (Sound me, AmplitudeTier intensity);
+Sound Sound_AmplitudeTier_multiply (Sound me, AmplitudeTier intensity);
 
-autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_point (PointProcess me, Sound thee);
-autoAmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, Sound thee,
+AmplitudeTier PointProcess_Sound_to_AmplitudeTier_point (PointProcess me, Sound thee);
+AmplitudeTier PointProcess_Sound_to_AmplitudeTier_period (PointProcess me, Sound thee,
 	double tmin, double tmax, double shortestPeriod, double longestPeriod, double maximumPeriodFactor);
 double AmplitudeTier_getShimmer_local (AmplitudeTier me, double shortestPeriod, double longestPeriod, double maximumAmplitudeFactor);
 double AmplitudeTier_getShimmer_local_dB (AmplitudeTier me, double shortestPeriod, double longestPeriod, double maximumAmplitudeFactor);
@@ -52,7 +52,7 @@ double AmplitudeTier_getShimmer_apq5 (AmplitudeTier me, double shortestPeriod, d
 double AmplitudeTier_getShimmer_apq11 (AmplitudeTier me, double shortestPeriod, double longestPeriod, double maximumAmplitudeFactor);
 double AmplitudeTier_getShimmer_dda (AmplitudeTier me, double shortestPeriod, double longestPeriod, double maximumAmplitudeFactor);
 
-autoSound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, long interpolationDepth);
+Sound AmplitudeTier_to_Sound (AmplitudeTier me, double samplingFrequency, long interpolationDepth);
 
 /* End of file AmplitudeTier.h */
 #endif
diff --git a/fon/AmplitudeTierEditor.cpp b/fon/AmplitudeTierEditor.cpp
index 4627053..81fe2bf 100644
--- a/fon/AmplitudeTierEditor.cpp
+++ b/fon/AmplitudeTierEditor.cpp
@@ -1,6 +1,6 @@
 /* AmplitudeTierEditor.cpp
  *
- * Copyright (C) 2003-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2003-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,9 +22,7 @@
 
 Thing_implement (AmplitudeTierEditor, RealTierEditor, 0);
 
-static void menu_cb_AmplitudeTierHelp (AmplitudeTierEditor /* me */, EDITOR_ARGS_DIRECT) {
-	Melder_help (U"AmplitudeTier");
-}
+static void menu_cb_AmplitudeTierHelp (EDITOR_ARGS) { EDITOR_IAM (AmplitudeTierEditor); Melder_help (U"AmplitudeTier"); }
 
 void structAmplitudeTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	AmplitudeTierEditor_Parent :: v_createHelpMenuItems (menu);
@@ -35,15 +33,15 @@ void structAmplitudeTierEditor :: v_play (double fromTime, double toTime) {
 	if (our d_sound.data) {
 		Sound_playPart (our d_sound.data, fromTime, toTime, theFunctionEditor_playCallback, this);
 	} else {
-		//AmplitudeTier_playPart (data, fromTime, toTime, false);
+		//AmplitudeTier_playPart (data, fromTime, toTime, FALSE);
 	}
 }
 
-autoAmplitudeTierEditor AmplitudeTierEditor_create (const char32 *title, AmplitudeTier amplitude, Sound sound, bool ownSound) {
+AmplitudeTierEditor AmplitudeTierEditor_create (const char32 *title, AmplitudeTier amplitude, Sound sound, bool ownSound) {
 	try {
 		autoAmplitudeTierEditor me = Thing_new (AmplitudeTierEditor);
-		RealTierEditor_init (me.get(), title, (RealTier) amplitude, sound, ownSound);
-		return me;
+		RealTierEditor_init (me.peek(), title, (RealTier) amplitude, sound, ownSound);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"AmplitudeTier window not created.");
 	}
diff --git a/fon/AmplitudeTierEditor.h b/fon/AmplitudeTierEditor.h
index 8453a18..eb8747a 100644
--- a/fon/AmplitudeTierEditor.h
+++ b/fon/AmplitudeTierEditor.h
@@ -54,9 +54,9 @@ Thing_define (AmplitudeTierEditor, RealTierEditor) {
 		override { return U"Maximum amplitude"; }
 };
 
-autoAmplitudeTierEditor AmplitudeTierEditor_create (const char32 *title,
+AmplitudeTierEditor AmplitudeTierEditor_create (const char32 *title,
 	AmplitudeTier amplitude,
-	Sound sound,   // may be null
+	Sound sound,   // may be NULL
 	bool ownSound);
 
 /* End of file AmplitudeTierEditor.h */
diff --git a/fon/AnyTier.cpp b/fon/AnyTier.cpp
index 4d849c9..84263f5 100644
--- a/fon/AnyTier.cpp
+++ b/fon/AnyTier.cpp
@@ -19,7 +19,6 @@
 
 #include "AnyTier.h"
 
-/*
 #include "oo_DESTROY.h"
 #include "AnyTier_def.h"
 #include "oo_COPY.h"
@@ -38,7 +37,6 @@
 #include "AnyTier_def.h"
 #include "oo_DESCRIPTION.h"
 #include "AnyTier_def.h"
-*/
 
 Thing_implement (AnyPoint, SimpleDouble, 0);
 
@@ -46,32 +44,34 @@ Thing_implement (AnyTier, Function, 0);
 
 void structAnyTier :: v_shiftX (double xfrom, double xto) {
 	AnyTier_Parent :: v_shiftX (xfrom, xto);
-	for (long i = 1; i <= our points.size; i ++) {
-		AnyPoint point = our points.at [i];
+	for (long i = 1; i <= points -> size; i ++) {
+		AnyPoint point = (AnyPoint) points -> item [i];
 		NUMshift (& point -> number, xfrom, xto);
 	}
 }
 
 void structAnyTier :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	AnyTier_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	for (long i = 1; i <= our points.size; i ++) {
-		AnyPoint point = our points.at [i];
+	for (long i = 1; i <= points -> size; i ++) {
+		AnyPoint point = (AnyPoint) points -> item [i];
 		NUMscale (& point -> number, xminfrom, xmaxfrom, xminto, xmaxto);
 	}
 }
 
-long AnyTier_timeToLowIndex (AnyTier me, double time) {
-	if (my points.size == 0) return 0;   // undefined
-	long ileft = 1, iright = my points.size;
-	double tleft = my points.at [ileft] -> number;
+long AnyTier_timeToLowIndex (I, double time) {
+	iam (AnyTier);
+	if (my points -> size == 0) return 0;   // undefined
+	long ileft = 1, iright = my points -> size;
+	AnyPoint *points = (AnyPoint *) my points -> item;
+	double tleft = points [ileft] -> number;
 	if (time < tleft) return 0;   // offleft
-	double tright = my points.at [iright] -> number;
+	double tright = points [iright] -> number;
 	if (time >= tright) return iright;
 	Melder_assert (time >= tleft && time < tright);
 	Melder_assert (iright > ileft);
 	while (iright > ileft + 1) {
 		long imid = (ileft + iright) / 2;
-		double tmid = my points.at [imid] -> number;
+		double tmid = points [imid] -> number;
 		if (time < tmid) {
 			iright = imid;
 			tright = tmid;
@@ -82,24 +82,26 @@ long AnyTier_timeToLowIndex (AnyTier me, double time) {
 	}
 	Melder_assert (iright == ileft + 1);
 	Melder_assert (ileft >= 1);
-	Melder_assert (iright <= my points.size);
-	Melder_assert (time >= my points.at [ileft] -> number);
-	Melder_assert (time <= my points.at [iright] -> number);
+	Melder_assert (iright <= my points -> size);
+	Melder_assert (time >= points [ileft] -> number);
+	Melder_assert (time <= points [iright] -> number);
 	return ileft;
 }
 
-long AnyTier_timeToHighIndex (AnyTier me, double time) {
-	if (my points.size == 0) return 0;   // undefined; is this right?
-	long ileft = 1, iright = my points.size;
-	double tleft = my points.at [ileft] -> number;
+long AnyTier_timeToHighIndex (I, double time) {
+	iam (AnyTier);
+	if (my points -> size == 0) return 0;   // undefined; is this right?
+	long ileft = 1, iright = my points -> size;
+	AnyPoint *points = (AnyPoint *) my points -> item;
+	double tleft = points [ileft] -> number;
 	if (time <= tleft) return 1;
-	double tright = my points.at [iright] -> number;
+	double tright = points [iright] -> number;
 	if (time > tright) return iright + 1;   // offright
 	Melder_assert (time > tleft && time <= tright);
 	Melder_assert (iright > ileft);
 	while (iright > ileft + 1) {
 		long imid = (ileft + iright) / 2;
-		double tmid = my points.at [imid] -> number;
+		double tmid = points [imid] -> number;
 		if (time <= tmid) {
 			iright = imid;
 			tright = tmid;
@@ -110,32 +112,35 @@ long AnyTier_timeToHighIndex (AnyTier me, double time) {
 	}
 	Melder_assert (iright == ileft + 1);
 	Melder_assert (ileft >= 1);
-	Melder_assert (iright <= my points.size);
-	Melder_assert (time >= my points.at [ileft] -> number);
-	Melder_assert (time <= my points.at [iright] -> number);
+	Melder_assert (iright <= my points -> size);
+	Melder_assert (time >= points [ileft] -> number);
+	Melder_assert (time <= points [iright] -> number);
 	return iright;
 }
 
-long AnyTier_getWindowPoints (AnyTier me, double tmin, double tmax, long *imin, long *imax) {
-	if (my points.size == 0) return 0;
+long AnyTier_getWindowPoints (I, double tmin, double tmax, long *imin, long *imax) {
+	iam (AnyTier);
+	if (my points -> size == 0) return 0;
 	*imin = AnyTier_timeToHighIndex (me, tmin);
 	*imax = AnyTier_timeToLowIndex (me, tmax);
 	if (*imax < *imin) return 0;
 	return *imax - *imin + 1;
 }
 	
-long AnyTier_timeToNearestIndex (AnyTier me, double time) {
-	if (my points.size == 0) return 0;   // undefined
-	long ileft = 1, iright = my points.size;
-	double tleft = my points.at [ileft] -> number;
+long AnyTier_timeToNearestIndex (I, double time) {
+	iam (AnyTier);
+	if (my points -> size == 0) return 0;   // undefined
+	long ileft = 1, iright = my points -> size;
+	AnyPoint *points = (AnyPoint *) my points -> item;
+	double tleft = points [ileft] -> number;
 	if (time <= tleft) return 1;
-	double tright = my points.at [iright] -> number;
+	double tright = points [iright] -> number;
 	if (time >= tright) return iright;
 	Melder_assert (time > tleft && time < tright);
 	Melder_assert (iright > ileft);
 	while (iright > ileft + 1) {
 		long imid = (ileft + iright) / 2;
-		double tmid = my points.at [imid] -> number;
+		double tmid = points [imid] -> number;
 		if (time < tmid) {
 			iright = imid;
 			tright = tmid;
@@ -146,18 +151,20 @@ long AnyTier_timeToNearestIndex (AnyTier me, double time) {
 	}
 	Melder_assert (iright == ileft + 1);
 	Melder_assert (ileft >= 1);
-	Melder_assert (iright <= my points.size);
-	Melder_assert (time >= my points.at [ileft] -> number);
-	Melder_assert (time <= my points.at [iright] -> number);
+	Melder_assert (iright <= my points -> size);
+	Melder_assert (time >= points [ileft] -> number);
+	Melder_assert (time <= points [iright] -> number);
 	return time - tleft <= tright - time ? ileft : iright;
 }
 
-long AnyTier_hasPoint (AnyTier me, double t) {
-	if (my points.size == 0) return 0;   // point not found
-	long ileft = 1, iright = my points.size;
-	double tleft = my points.at [ileft] -> number;
+long AnyTier_hasPoint (I, double t) {
+	iam (AnyTier);
+	if (my points -> size == 0) return 0;   // point not found
+	long ileft = 1, iright = my points -> size;
+	AnyPoint *points = (AnyPoint *) my points -> item;
+	double tleft = points [ileft] -> number;
 	if (t < tleft) return 0;   // offleft
-	double tright = my points.at [iright] -> number;
+	double tright = points [iright] -> number;
 	if (t > tright) return 0;   // offright
 	if (t == tleft) return 1;
 	if (t == tright) return iright;
@@ -165,7 +172,7 @@ long AnyTier_hasPoint (AnyTier me, double t) {
 	Melder_assert (iright > ileft);
 	while (iright > ileft + 1) {
 		long imid = (ileft + iright) / 2;
-		double tmid = my points.at [imid] -> number;
+		double tmid = points [imid] -> number;
 		if (t < tmid) {
 			iright = imid;
 			tright = tmid;
@@ -178,46 +185,52 @@ long AnyTier_hasPoint (AnyTier me, double t) {
 	}
 	Melder_assert (iright == ileft + 1);
 	Melder_assert (ileft >= 1);
-	Melder_assert (iright <= my points.size);
-	Melder_assert (t > my points.at [ileft] -> number);
-	Melder_assert (t < my points.at [iright] -> number);
-	return 0;   // point not found
+	Melder_assert (iright <= my points -> size);
+	Melder_assert (t > points [ileft] -> number);
+	Melder_assert (t < points [iright] -> number);
+	return 0;   /* Point not found. */
 }
 
-void AnyTier_addPoint_move (AnyTier me, autoAnyPoint point) {
+void AnyTier_addPoint (I, Data point) {
+	iam (AnyTier);
 	try {
-		my points. addItem_move (point.move());
+		Collection_addItem (my points, point);
 	} catch (MelderError) {
 		Melder_throw (me, U": point not added.");
 	}
 }
 
-void AnyTier_removePoint (AnyTier me, long i) {
-	if (i >= 1 && i <= my points.size) my points. removeItem (i);
+void AnyTier_removePoint (I, long i) {
+	iam (AnyTier);
+	if (i >= 1 && i <= my points -> size) Collection_removeItem (my points, i);
 }
 
-void AnyTier_removePointNear (AnyTier me, double time) {
+void AnyTier_removePointNear (I, double time) {
+	iam (AnyTier);
 	long ipoint = AnyTier_timeToNearestIndex (me, time);
-	if (ipoint) my points.removeItem (ipoint);
+	if (ipoint) Collection_removeItem (my points, ipoint);
 }
 
-void AnyTier_removePointsBetween (AnyTier me, double tmin, double tmax) {
-	if (my points.size == 0) return;
+void AnyTier_removePointsBetween (I, double tmin, double tmax) {
+	iam (AnyTier);
+	if (my points -> size == 0) return;
 	long ileft = AnyTier_timeToHighIndex (me, tmin);
 	long iright = AnyTier_timeToLowIndex (me, tmax);
 	for (long i = iright; i >= ileft; i --)
-		my points. removeItem (i);
+		Collection_removeItem (my points, i);
 }
 
-autoPointProcess AnyTier_downto_PointProcess (AnyTier me) {
+PointProcess AnyTier_downto_PointProcess (I) {
+	iam (AnyTier);
 	try {
-		long numberOfPoints = my points.size;
+		long numberOfPoints = my points -> size;
+		AnyPoint *points = (AnyPoint *) my points -> item;
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, numberOfPoints);
 		/* OPTIMIZATION, bypassing PointProcess_addTime: */
 		for (long i = 1; i <= numberOfPoints; i ++)
-			thy t [i] = my points.at [i] -> number;
+			thy t [i] = points [i] -> number;
 		thy nt = numberOfPoints;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PointProcess.");
 	}
diff --git a/fon/AnyTier.h b/fon/AnyTier.h
index f4aaa2e..3ab2feb 100644
--- a/fon/AnyTier.h
+++ b/fon/AnyTier.h
@@ -2,7 +2,7 @@
 #define _AnyTier_h_
 /* AnyTier.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,44 +22,20 @@
 #include "Collection.h"
 #include "PointProcess.h"
 
-Thing_define (AnyPoint, SimpleDouble) {
-};
-
-Thing_define (AnyTier, Function) {
-	SortedSetOfDoubleOf <structAnyPoint> points;
-
-	void v_shiftX (double xfrom, double xto)
-		override;
-	void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
-		override;
-};
-
-long AnyTier_timeToLowIndex (AnyTier me, double time);
-
-long AnyTier_timeToHighIndex (AnyTier me, double time);
-
-long AnyTier_getWindowPoints (AnyTier me, double tmin, double tmax, long *imin, long *imax);
-
-long AnyTier_timeToNearestIndex (AnyTier me, double time);
-
-long AnyTier_hasPoint (AnyTier me, double t);
-
-void AnyTier_addPoint_move (AnyTier me, autoAnyPoint point);
-
-void AnyTier_removePoint (AnyTier me, long i);
-
-void AnyTier_removePointNear (AnyTier me, double time);
-
-void AnyTier_removePointsBetween (AnyTier me, double tmin, double tmax);
-
-autoPointProcess AnyTier_downto_PointProcess (AnyTier me);
-
-#define AnyTier_METHODS \
-	AnyTier asAnyTier () { return reinterpret_cast <AnyTier> (this); } \
-	void v_shiftX (double xfrom, double xto) \
-		override { ((AnyTier) this) -> structAnyTier::v_shiftX (xfrom, xto); } \
-	void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) \
-		override { ((AnyTier) this) -> structAnyTier::v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto); };
+#include "AnyTier_def.h"
+oo_CLASS_CREATE (AnyPoint, SimpleDouble);
+oo_CLASS_CREATE (AnyTier, Function);
+
+long AnyTier_timeToLowIndex (I, double time);
+long AnyTier_timeToHighIndex (I, double time);
+long AnyTier_getWindowPoints (I, double tmin, double tmax, long *imin, long *imax);
+long AnyTier_timeToNearestIndex (I, double time);
+long AnyTier_hasPoint (I, double t);
+void AnyTier_addPoint (I, Data point);
+void AnyTier_removePoint (I, long i);
+void AnyTier_removePointNear (I, double time);
+void AnyTier_removePointsBetween (I, double tmin, double tmax);
+PointProcess AnyTier_downto_PointProcess (I);
 
 #endif
 /* End of file AnyTier.h */
diff --git a/EEG/EEG_def.h b/fon/AnyTier_def.h
similarity index 68%
copy from EEG/EEG_def.h
copy to fon/AnyTier_def.h
index fb24071..1b37125 100644
--- a/EEG/EEG_def.h
+++ b/fon/AnyTier_def.h
@@ -1,6 +1,6 @@
-/* EEG_def.h
+/* AnyTier_def.h
  *
- * Copyright (C) 2011,2014,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,27 +18,27 @@
  */
 
 
-#define ooSTRUCT EEG
-oo_DEFINE_CLASS (EEG, Function)
+#define ooSTRUCT AnyPoint
+oo_DEFINE_CLASS (AnyPoint, SimpleDouble)
 
-	oo_LONG (numberOfChannels)
-	oo_STRING_VECTOR (channelNames, numberOfChannels)
-	oo_AUTO_OBJECT (Sound, 2, sound)
-	oo_AUTO_OBJECT (TextGrid, 0, textgrid)
+oo_END_CLASS (AnyPoint)
+#undef ooSTRUCT
+
+
+#define ooSTRUCT AnyTier
+oo_DEFINE_CLASS (AnyTier, Function)
+
+	oo_COLLECTION (SortedSetOfDouble, points, AnyPoint, 0)
 
 	#if oo_DECLARING
-		void v_info ()
-			override;
-		int v_domainQuantity ()
-			override { return MelderQuantity_TIME_SECONDS; }
 		void v_shiftX (double xfrom, double xto)
 			override;
 		void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
 			override;
 	#endif
 
-oo_END_CLASS (EEG)
+oo_END_CLASS (AnyTier)
 #undef ooSTRUCT
 
 
-/* End of file EEG_def.h */
+/* End of file AnyTier_def.h */
diff --git a/fon/Cochleagram.cpp b/fon/Cochleagram.cpp
index 436135c..d766994 100644
--- a/fon/Cochleagram.cpp
+++ b/fon/Cochleagram.cpp
@@ -1,6 +1,6 @@
 /* Cochleagram.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,19 +22,19 @@
 
 Thing_implement (Cochleagram, Matrix, 2);
 
-autoCochleagram Cochleagram_create (double tmin, double tmax, long nt, double dt, double t1, double df, long nf) {
+Cochleagram Cochleagram_create (double tmin, double tmax, long nt, double dt, double t1, double df, long nf) {
 	try {
 		autoCochleagram me = Thing_new (Cochleagram);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, 0.0, nf * df, nf, df, 0.5 * df);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, 0.0, nf * df, nf, df, 0.5 * df);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Cochleagram with ", nt, U" times and ", nf, U" frequencies not created.");
 	}
 }
 
 void Cochleagram_paint (Cochleagram me, Graphics g, double tmin, double tmax, int garnish) {
-	static double border [1 + 12]
-		{ 0.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0 };
+	static double border [1 + 12] =
+		{ 0, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80 };
 	try {
 		autoCochleagram copy = Data_copy (me);
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
@@ -45,12 +45,12 @@ void Cochleagram_paint (Cochleagram me, Graphics g, double tmin, double tmax, in
 				if (my z [iy] [ix] > my z [iy - 1] [ix] &&
 					my z [iy] [ix] > my z [iy + 1] [ix])
 				{
-					copy -> z [iy - 1] [ix] += 10.0;
-					copy -> z [iy] [ix] += 10.0;
-					copy -> z [iy + 1] [ix] += 10.0;
+					copy -> z [iy - 1] [ix] += 10;
+					copy -> z [iy] [ix] += 10;
+					copy -> z [iy + 1] [ix] += 10;
 				}
 		Graphics_setInner (g);
-		Graphics_setWindow (g, tmin, tmax, 0.0, my ny * my dy);
+		Graphics_setWindow (g, tmin, tmax, 0, my ny * my dy);
 		Graphics_grey (g, copy -> z,
 			itmin, itmax, Matrix_columnToX (me, itmin), Matrix_columnToX (me, itmax),
 			1, my ny, 0.5 * my dy, (my ny - 0.5) * my dy,
@@ -58,13 +58,13 @@ void Cochleagram_paint (Cochleagram me, Graphics g, double tmin, double tmax, in
 		Graphics_unsetInner (g);
 		if (garnish) {
 			Graphics_drawInnerBox (g);
-			Graphics_textBottom (g, true, U"Time (s)");
-			Graphics_marksBottom (g, 2, true, true, false);
-			Graphics_textLeft (g, true, U"Place (Bark)");
-			Graphics_marksLeftEvery (g, 1.0, 5.0, true, true, false);
+			Graphics_textBottom (g, 1, U"Time (s)");
+			Graphics_marksBottom (g, 2, 1, 1, 0);
+			Graphics_textLeft (g, 1, U"Place (Bark)");
+			Graphics_marksLeftEvery (g, 1.0, 5.0, 1, 1, 0);
 		}
 	} catch (MelderError) {
-		Melder_clearError ();
+		Melder_clearError ();   // BUG
 	}
 }
 
@@ -93,21 +93,21 @@ double Cochleagram_difference (Cochleagram me, Cochleagram thee, double tmin, do
 	}
 }
 
-autoCochleagram Matrix_to_Cochleagram (Matrix me) {
+Cochleagram Matrix_to_Cochleagram (Matrix me) {
 	try {
 		autoCochleagram thee = Cochleagram_create (my xmin, my xmax, my nx, my dx, my x1, my dy, my ny);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Cochleagram.");
 	}
 }
 
-autoMatrix Cochleagram_to_Matrix (Cochleagram me) {
+Matrix Cochleagram_to_Matrix (Cochleagram me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/fon/Cochleagram.h b/fon/Cochleagram.h
index f14cd2d..7a11efe 100644
--- a/fon/Cochleagram.h
+++ b/fon/Cochleagram.h
@@ -32,7 +32,7 @@ Thing_define (Cochleagram, Matrix) {
 	nx;				// Number of time slices.
 	dx;				// Time step (seconds).
 	x1;				// Centre of first time sample (seconds).
-	ymin = 0.0;			// Minimum frequency (Bark).
+	ymin = 0;			// Minimum frequency (Bark).
 	ymax = 25.6;		// Maximum frequency (Bark).
 	ny;				// Number of frequencies.
 	dy = 25.6 / ny;		// Frequency step (Bark).
@@ -40,11 +40,11 @@ Thing_define (Cochleagram, Matrix) {
 	z;				// Basilar filter output (milliVolt), or firing rate (Hz), or intensity (phon).
 */
 
-autoCochleagram Cochleagram_create (double tmin, double tmax, long nt, double dt, double t1,
+Cochleagram Cochleagram_create (double tmin, double tmax, long nt, double dt, double t1,
 	double df, long nf);
 /*
 	Function:
-		return a new instance of Cochleagram.
+		return a new instance of Cochleagram, or NULL if out of memory.
 	Preconditions:
 		dt > 0.0;						df > 0.0;
 		nt >= 1;						nf >= 1;
@@ -61,20 +61,20 @@ void Cochleagram_paint (Cochleagram me, Graphics g, double tmin, double tmax, in
 
 double Cochleagram_difference (Cochleagram me, Cochleagram thee, double tmin, double tmax);
 
-autoCochleagram Matrix_to_Cochleagram (Matrix me);
+Cochleagram Matrix_to_Cochleagram (Matrix me);
 /*
 	Function:
 		create a Cochleagram from a Matrix,
 		with deep copy of all its attributes, except class information and methods.
-	Fail if out of memory.
+	Return NULL if out of memory.  
 */
 
-autoMatrix Cochleagram_to_Matrix (Cochleagram me);
+Matrix Cochleagram_to_Matrix (Cochleagram me);
 /*
 	Function:
 		create a Matrix from a Cochleagram,
 		with deep copy of all its attributes, except class information and methods.
-	Fail if out of memory.
+	Return NULL if out of memory.  
 */
 
 /* End of file Cochleagram.h */
diff --git a/fon/Cochleagram_and_Excitation.cpp b/fon/Cochleagram_and_Excitation.cpp
index 1c7a4fc..0c6572d 100644
--- a/fon/Cochleagram_and_Excitation.cpp
+++ b/fon/Cochleagram_and_Excitation.cpp
@@ -26,7 +26,7 @@
 
 #include "Cochleagram_and_Excitation.h"
 
-autoExcitation Cochleagram_to_Excitation (Cochleagram me, double t) {
+Excitation Cochleagram_to_Excitation (Cochleagram me, double t) {
 	try {
 		long column = Matrix_xToNearestColumn (me, t);
 		if (column < 1) column = 1;
@@ -34,7 +34,7 @@ autoExcitation Cochleagram_to_Excitation (Cochleagram me, double t) {
 		autoExcitation thee = Excitation_create (my dy, my ny);
 		for (long ifreq = 1; ifreq <= my ny; ifreq ++)
 			thy z [1] [ifreq] = my z [ifreq] [column];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": slice at time ", t, U" seconds not extracted to Excitation.");
 	}
diff --git a/fon/Cochleagram_and_Excitation.h b/fon/Cochleagram_and_Excitation.h
index c384c7c..13f276e 100644
--- a/fon/Cochleagram_and_Excitation.h
+++ b/fon/Cochleagram_and_Excitation.h
@@ -1,6 +1,6 @@
 /* Cochleagram_and_Excitation.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,6 @@
 #include "Cochleagram.h"
 #include "Excitation.h"
 
-autoExcitation Cochleagram_to_Excitation (Cochleagram me, double t);
+Excitation Cochleagram_to_Excitation (Cochleagram me, double t);
 
 /* End of file Cochleagram_and_Excitation.h */
diff --git a/fon/Corpus.h b/fon/Corpus.h
index bf00187..03c338a 100644
--- a/fon/Corpus.h
+++ b/fon/Corpus.h
@@ -22,6 +22,7 @@
 #include "Table.h"
 
 #include "Corpus_def.h"
+oo_CLASS_CREATE (Corpus, Table);
 
 #endif
 /* End of file Corpus.h */
diff --git a/fon/Distributions_and_Transition.cpp b/fon/Distributions_and_Transition.cpp
index 132714e..415c1a1 100644
--- a/fon/Distributions_and_Transition.cpp
+++ b/fon/Distributions_and_Transition.cpp
@@ -1,6 +1,6 @@
 /* Distributions_and_Transition.cpp
  *
- * Copyright (C) 1997-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,11 +26,11 @@
 
 #include "Distributions_and_Transition.h"
 
-autoTransition Distributions_to_Transition (Distributions underlying, Distributions surface, long environment,
-	Transition adjacency, bool greedy)
+Transition Distributions_to_Transition (Distributions underlying, Distributions surface, long environment,
+	Transition adjacency, int greedy)
 {
 	try {
-		if (! underlying) return autoTransition();
+		if (underlying == NULL) return NULL;
 
 		/*
 		 * Preconditions: range check and matrix matching.
@@ -46,7 +46,7 @@ autoTransition Distributions_to_Transition (Distributions underlying, Distributi
 		/*
 		 * Defaults.
 		 */
-		if (! surface) surface = underlying;
+		if (surface == NULL) surface = underlying;
 
 		/*
 		 * Create the output object.
@@ -59,7 +59,7 @@ autoTransition Distributions_to_Transition (Distributions underlying, Distributi
 		for (long i = 1; i <= thy numberOfStates; i ++) {
 			thy stateLabels [i] = Melder_dup (underlying -> columnLabels [i]);
 		}
-		Thing_setName (thee.get(), underlying -> columnLabels [environment]);
+		Thing_setName (thee.peek(), underlying -> columnLabels [environment]);
 
 		/*
 		 * Compute the off-diagonal elements of the transition matrix in environment 'environment'.
@@ -123,13 +123,13 @@ autoTransition Distributions_to_Transition (Distributions underlying, Distributi
 			thy data [i] [i] = sum > 1.0 ? 0.0 : 1.0 - sum;   // guard against rounding errors
 		}
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (underlying, U": Transition not computed.");
 	}
 }
 
-autoDistributions Distributions_Transition_map (Distributions me, Transition map) {
+Distributions Distributions_Transition_map (Distributions me, Transition map) {
 	try {
 		/*
 		 * Preconditions: matrix matching.
@@ -152,13 +152,13 @@ autoDistributions Distributions_Transition_map (Distributions me, Transition map
 				thy data [row] [col] += my data [m] [col] * map -> data [m] [row];
 		}
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not mapped to Transition.");
 	}
 }
 
-autoDistributions Transition_to_Distributions_conflate (Transition me) {
+Distributions Transition_to_Distributions_conflate (Transition me) {
 	try {
 		autoDistributions thee = Distributions_create (my numberOfStates, 1);
 
@@ -178,7 +178,7 @@ autoDistributions Transition_to_Distributions_conflate (Transition me) {
 			thy data [i] [1] /= my numberOfStates;
 		}
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not conflated to Distributions.");
 	}
diff --git a/fon/Distributions_and_Transition.h b/fon/Distributions_and_Transition.h
index 511c5dc..4d0c4b0 100644
--- a/fon/Distributions_and_Transition.h
+++ b/fon/Distributions_and_Transition.h
@@ -1,6 +1,6 @@
 /* Distributions_and_Transition.h
  *
- * Copyright (C) 1997-2011,2015 Paul Boersma
+ * Copyright (C) 1997-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,11 +20,11 @@
 #include "Distributions.h"
 #include "Transition.h"
 
-autoTransition Distributions_to_Transition (Distributions underlying, Distributions surface,
-	long environment, Transition adjacency, bool greedy);
+Transition Distributions_to_Transition (Distributions underlying, Distributions surface,
+	long environment, Transition adjacency, int greedy);
 
-autoDistributions Distributions_Transition_map (Distributions me, Transition map);
+Distributions Distributions_Transition_map (Distributions me, Transition map);
 
-autoDistributions Transition_to_Distributions_conflate (Transition me);
+Distributions Transition_to_Distributions_conflate (Transition me);
 
 /* End of file Distributions_and_Transition.h */
diff --git a/fon/DurationTier.cpp b/fon/DurationTier.cpp
index 56028e1..b08d0d1 100644
--- a/fon/DurationTier.cpp
+++ b/fon/DurationTier.cpp
@@ -1,6 +1,6 @@
 /* DurationTier.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,21 +22,21 @@
 Thing_implement (DurationTier, RealTier, 0);
 
 void structDurationTier :: v_info () {
-	our structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
-	MelderInfo_writeLine (U"   Start time: ", our xmin, U" seconds");
-	MelderInfo_writeLine (U"   End time: ", our xmax, U" seconds");
-	MelderInfo_writeLine (U"   Total original duration: ", our xmax - our xmin, U" seconds");
-	MelderInfo_writeLine (U"Number of points: ", our points.size);
+	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
+	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
+	MelderInfo_writeLine (U"   Total original duration: ", xmax - xmin, U" seconds");
+	MelderInfo_writeLine (U"Number of points: ", points -> size);
 	MelderInfo_writeLine (U"Minimum relative duration value: ", RealTier_getMinimumValue (this));
 	MelderInfo_writeLine (U"Maximum relative duration value: ", RealTier_getMaximumValue (this));
 }
 
-autoDurationTier DurationTier_create (double tmin, double tmax) {
+DurationTier DurationTier_create (double tmin, double tmax) {
 	try {
 		autoDurationTier me = Thing_new (DurationTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DurationTier not created.");
 	}
@@ -48,13 +48,13 @@ void DurationTier_draw (DurationTier me, Graphics g, double tmin, double tmax,
 	RealTier_draw (me, g, tmin, tmax, ymin, ymax, garnish, method, U"Relative duration");
 }
 
-autoDurationTier PointProcess_upto_DurationTier (PointProcess me) {
+DurationTier PointProcess_upto_DurationTier (PointProcess me) {
 	try {
 		autoDurationTier thee = DurationTier_create (my xmin, my xmax);
 		for (long i = 1; i <= my nt; i ++) {
-			RealTier_addPoint (thee.get(), my t [i], 1.0);
+			RealTier_addPoint (thee.peek(), my t [i], 1.0);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to DurationTier.");
 	}
diff --git a/fon/DurationTier.h b/fon/DurationTier.h
index 6dd113e..72ffb76 100644
--- a/fon/DurationTier.h
+++ b/fon/DurationTier.h
@@ -31,12 +31,12 @@ Thing_define (DurationTier, RealTier) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoDurationTier DurationTier_create (double tmin, double tmax);
+DurationTier DurationTier_create (double tmin, double tmax);
 
 void DurationTier_draw (DurationTier me, Graphics g, double tmin, double tmax,
 	double ymin, double ymax, const char32 *method, int garnish);
 
-autoDurationTier PointProcess_upto_DurationTier (PointProcess me);
+DurationTier PointProcess_upto_DurationTier (PointProcess me);
 
 /* End of file DurationTier.h */
 #endif
diff --git a/fon/DurationTierEditor.cpp b/fon/DurationTierEditor.cpp
index d83eaec..12fd57a 100644
--- a/fon/DurationTierEditor.cpp
+++ b/fon/DurationTierEditor.cpp
@@ -1,6 +1,6 @@
 /* DurationTierEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 
 Thing_implement (DurationTierEditor, RealTierEditor, 0);
 
-static void menu_cb_DurationTierHelp (DurationTierEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"DurationTier"); }
+static void menu_cb_DurationTierHelp (EDITOR_ARGS) { EDITOR_IAM (DurationTierEditor); Melder_help (U"DurationTier"); }
 
 void structDurationTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	DurationTierEditor_Parent :: v_createHelpMenuItems (menu);
@@ -31,17 +31,17 @@ void structDurationTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 
 void structDurationTierEditor :: v_play (double fromTime, double toTime) {
 	if (our d_sound.data) {
-		Sound_playPart (our d_sound.data, fromTime, toTime, nullptr, nullptr);
+		Sound_playPart (our d_sound.data, fromTime, toTime, NULL, NULL);
 	} else {
-		//DurationTier_playPart (data, fromTime, toTime, false);
+		//DurationTier_playPart (data, fromTime, toTime, FALSE);
 	}
 }
 
-autoDurationTierEditor DurationTierEditor_create (const char32 *title, DurationTier duration, Sound sound, bool ownSound) {
+DurationTierEditor DurationTierEditor_create (const char32 *title, DurationTier duration, Sound sound, bool ownSound) {
 	try {
 		autoDurationTierEditor me = Thing_new (DurationTierEditor);
-		RealTierEditor_init (me.get(), title, (RealTier) duration, sound, ownSound);
-		return me;
+		RealTierEditor_init (me.peek(), title, (RealTier) duration, sound, ownSound);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"DurationTier window not created.");
 	}
diff --git a/fon/DurationTierEditor.h b/fon/DurationTierEditor.h
index cf216a2..6c9c2df 100644
--- a/fon/DurationTierEditor.h
+++ b/fon/DurationTierEditor.h
@@ -56,10 +56,10 @@ Thing_define (DurationTierEditor, RealTierEditor) {
 		override { return U"Maximum duration"; }
 };
 
-autoDurationTierEditor DurationTierEditor_create (const char32 *title,
+DurationTierEditor DurationTierEditor_create (const char32 *title,
 	DurationTier duration, Sound sound, bool ownSound);
 /*
-	'sound' may be null.
+	'sound' may be NULL.
 */
 
 /* End of file DurationTierEditor.h */
diff --git a/fon/Excitation.cpp b/fon/Excitation.cpp
index b6b3c9e..0fe24e7 100644
--- a/fon/Excitation.cpp
+++ b/fon/Excitation.cpp
@@ -1,6 +1,6 @@
 /* Excitation.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ Thing_implement (Excitation, Vector, 2);
 
 double Excitation_hertzToBark (double hertz) {
 	double h650 = hertz / 650;
-	return 7.0 * log (h650 + sqrt (1.0 + h650 * h650));
+	return 7.0 * log (h650 + sqrt (1 + h650 * h650));
 }
 
 double Excitation_barkToHertz (double bark) {
@@ -31,11 +31,11 @@ double Excitation_barkToHertz (double bark) {
 }
 
 double Excitation_phonToDifferenceLimens (double phon) {
-	return 30.0 * (pow (61.0 / 60.0, phon) - 1);
+	return 30 * (pow (61.0 / 60, phon) - 1);
 }
 
 double Excitation_differenceLimensToPhon (double ndli) {
-	return log (1 + ndli / 30.0) / log (61.0 / 60.0);
+	return log (1 + ndli / 30) / log (61.0 / 60);
 }
 
 double Excitation_soundPressureToPhon (double soundPressure, double bark) {
@@ -44,42 +44,42 @@ double Excitation_soundPressureToPhon (double soundPressure, double bark) {
 	if (soundPressure <= 0.0) return 0.0;
 
 	/*  dB = 20 * log10 (soundPressure / threshold)  */
-	result = 20.0 * log10 (soundPressure / 2.0e-5);   /* First approximation: phon = dB */
+	result = 20 * log10 (soundPressure / 2.0e-5);   /* First approximation: phon = dB */
 
 	/*  Phones from dB  */
-	if (result < 90.0 && bark < 8.0)
+	if (result < 90 && bark < 8.0)
 	{
-		dum = (90.0 - result) * (8.0 - bark);
+		dum = (90 - result) * (8.0 - bark);
 		result -= dum * dum / 2500;
 	}
-	dum = bark / 3.6 - 5.0;
-	result += 5.0 * exp (- dum * dum);
-	if (bark > 20.0) { dum = bark - 20.0; result -= 0.5 * dum * dum; }
-	if (result < 0.0) result = 0.0;
+	dum = bark / 3.6 - 5;
+	result += 5 * exp (- dum * dum);
+	if (bark > 20.0) { dum = bark - 20; result -= 0.5 * dum * dum; }
+	if (result < 0) result = 0;
 	return result;
 }
 
 void structExcitation :: v_info () {
 	double *y = z [1];
 	long numberOfMaxima = 0;
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Loudness: ", Melder_half (Excitation_getLoudness (this)), U" sones");
 	for (long i = 2; i < nx; i ++) if (y [i] > y [i - 1] && y [i] >= y [i + 1]) {
+		double i_real, formant_bark, strength;
 		if (++ numberOfMaxima > 15) break;
-		double i_real;
-		double strength = NUMimproveMaximum (z [1], nx, i, NUM_PEAK_INTERPOLATE_SINC70, & i_real);
-		double formant_bark = x1 + (i_real - 1.0) * dx;
+		strength = NUMimproveMaximum (z [1], nx, i, NUM_PEAK_INTERPOLATE_SINC70, & i_real);
+		formant_bark = x1 + (i_real - 1) * dx;
 		MelderInfo_write (U"Peak at ", Melder_single (formant_bark), U" Bark");
 		MelderInfo_write (U", ", (long) NUMbarkToHertz (formant_bark), U" Hz");
 		MelderInfo_writeLine (U", ", Melder_half (strength), U" phon.");
 	}
 }
 
-autoExcitation Excitation_create (double df, long nf) {
+Excitation Excitation_create (double df, long nf) {
 	try {
 		autoExcitation me = Thing_new (Excitation);
-		Matrix_init (me.get(), 0.0, nf * df, nf, df, 0.5 * df, 1.0, 1.0, 1, 1.0, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0.0, nf * df, nf, df, 0.5 * df, 1, 1, 1, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Excitation not created.");
 	}
@@ -103,7 +103,7 @@ double Excitation_getLoudness (Excitation me) {
 	double loudness = 0.0;
 	for (int i = 1; i <= my nx; i ++)
 		/*  Sones = 2 ** ((Phones - 40) / 10)  */
-		loudness += pow (2.0, (my z [1] [i] - 40.0) / 10.0);
+		loudness += pow (2, (my z [1] [i] - 40) / 10);
 	return my dx * loudness;
 }
 
@@ -115,7 +115,7 @@ void Excitation_draw (Excitation me, Graphics g,
 	Matrix_getWindowSamplesX (me, fmin, fmax, & ifmin, & ifmax);
 	if (maximum <= minimum)
 		Matrix_getWindowExtrema (me, ifmin, ifmax, 1, 1, & minimum, & maximum);
-	if (maximum <= minimum) { minimum -= 20.0; maximum += 20.0; }
+	if (maximum <= minimum) { minimum -= 20; maximum += 20; }
 	Graphics_setInner (g);
 	Graphics_setWindow (g, fmin, fmax, minimum, maximum);
 	Graphics_function (g, my z [1], ifmin, ifmax,
@@ -123,28 +123,28 @@ void Excitation_draw (Excitation me, Graphics g,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency (Bark)");
-		Graphics_textLeft (g, true, U"Excitation (phon)");
-		Graphics_marksBottomEvery (g, 1.0, 5.0, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 20.0, true, true, false);
+		Graphics_textBottom (g, 1, U"Frequency (Bark)");
+		Graphics_textLeft (g, 1, U"Excitation (phon)");
+		Graphics_marksBottomEvery (g, 1, 5, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1, 20, 1, 1, 0);
 	}
 }
 
-autoMatrix Excitation_to_Matrix (Excitation me) {
+Matrix Excitation_to_Matrix (Excitation me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());   // BUG: safe, but compiler should be able to check
-		return thee;
+		my structMatrix :: v_copy (thee.peek());   // BUG: safe, but compiler should be able to check
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoExcitation Matrix_to_Excitation (Matrix me) {
+Excitation Matrix_to_Excitation (Matrix me) {
 	try {
 		autoExcitation thee = Thing_new (Excitation);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Excitation.");
 	}
diff --git a/fon/Excitation.h b/fon/Excitation.h
index f551858..e734990 100644
--- a/fon/Excitation.h
+++ b/fon/Excitation.h
@@ -35,12 +35,12 @@ double Excitation_phonToDifferenceLimens (double phon);
 double Excitation_differenceLimensToPhon (double ndli);
 double Excitation_soundPressureToPhon (double soundPressure, double bark);
 
-autoExcitation Excitation_create (double df, long nf);
+Excitation Excitation_create (double df, long nf);
 double Excitation_getDistance (Excitation me, Excitation thee);
 double Excitation_getLoudness (Excitation me);
 void Excitation_draw (Excitation me, Graphics g, double fmin, double fmax, double minimum, double maximum, int garnish);
-autoMatrix Excitation_to_Matrix (Excitation me);
-autoExcitation Matrix_to_Excitation (Matrix me);
+Matrix Excitation_to_Matrix (Excitation me);
+Excitation Matrix_to_Excitation (Matrix me);
 
 /* End of file Excitation.h */
 #endif
diff --git a/fon/Excitation_to_Formant.cpp b/fon/Excitation_to_Formant.cpp
index 2070283..ce34029 100644
--- a/fon/Excitation_to_Formant.cpp
+++ b/fon/Excitation_to_Formant.cpp
@@ -26,7 +26,7 @@
 
 #include "Excitation_to_Formant.h"
 
-autoFormant Excitation_to_Formant (Excitation me, int maxnFormants) {
+Formant Excitation_to_Formant (Excitation me, int maxnFormants) {
 	try {
 		long nfreq = my nx, nform = 0;
 		double *p = my z [1];
@@ -54,7 +54,7 @@ autoFormant Excitation_to_Formant (Excitation me, int maxnFormants) {
 				if (nform == thy maxnFormants) break;
 			}
 		thy d_frames [1]. nFormants = nform;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Formant.");
 	}
diff --git a/fon/Excitation_to_Formant.h b/fon/Excitation_to_Formant.h
index d7c5348..3430d1d 100644
--- a/fon/Excitation_to_Formant.h
+++ b/fon/Excitation_to_Formant.h
@@ -1,6 +1,6 @@
 /* Excitation_to_Formant.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,6 @@
 #include "Excitation.h"
 #include "Formant.h"
 
-autoFormant Excitation_to_Formant (Excitation, int maxnFormants);
+Formant Excitation_to_Formant (Excitation, int maxnFormants);
 
 /* End of file Excitation_to_Formant.h */
diff --git a/fon/ExperimentMFC.cpp b/fon/ExperimentMFC.cpp
index 9590274..6bdcf80 100644
--- a/fon/ExperimentMFC.cpp
+++ b/fon/ExperimentMFC.cpp
@@ -1,6 +1,6 @@
 /* ExperimentMFC.cpp
  *
- * Copyright (C) 2001-2011,2013,2016 Paul Boersma
+ * Copyright (C) 2001-2011,2013 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -63,18 +63,15 @@
 #include "oo_DESCRIPTION.h"
 #include "ExperimentMFC_def.h"
 
+Thing_implement (ExperimentMFC, Data, 6);
+
 #include "enums_getText.h"
 #include "Experiment_enums.h"
 #include "enums_getValue.h"
 #include "Experiment_enums.h"
 
-
-#pragma mark - class ExperimentMFC
-
-Thing_implement (ExperimentMFC, Daata, 6);
-
 static void readSound (ExperimentMFC me, const char32 *fileNameHead, const char32 *fileNameTail,
-	double medialSilenceDuration, char32 **name, autoSound *sound)
+	double medialSilenceDuration, char32 **name, Sound *sound)
 {
 	char32 fileNameBuffer [256], *fileNames = & fileNameBuffer [0];
 	Melder_sprint (fileNameBuffer,256, *name);
@@ -87,7 +84,7 @@ static void readSound (ExperimentMFC me, const char32 *fileNameHead, const char3
 	#if defined (_WIN32)
 		for (;;) { char32 *slash = str32chr (fileNames, U'/'); if (! slash) break; *slash = U'\\'; }
 	#endif
-	sound->reset();
+	forget (*sound);
 	char32 pathName [kMelder_MAXPATH+1];
 	/*
 	 * 'fileNames' can contain commas, which separate partial file names.
@@ -127,9 +124,9 @@ static void readSound (ExperimentMFC me, const char32 *fileNameHead, const char3
 		/*
 		 * Read the substimulus.
 		 */
-		autoSound substimulus = Data_readFromFile (& file). static_cast_move<structSound>();
+		autoSound substimulus = (Sound) Data_readFromFile (& file);   // Sound_readFromSoundFile (& file);
 		if (substimulus -> classInfo != classSound)
-			Melder_throw (U"File ", & file, U" contains a ", Thing_className (substimulus.get()), U" instead of a sound.");
+			Melder_throw (U"File ", & file, U" contains a ", Thing_className (substimulus.peek()), U" instead of a sound.");
 		/*
 		 * Check whether all sounds have the same number of channels.
 		 */
@@ -149,15 +146,18 @@ static void readSound (ExperimentMFC me, const char32 *fileNameHead, const char3
 		/*
 		 * Append the substimuli, perhaps with silent intervals.
 		 */
-		if (*sound) {
-			*sound = Sounds_append (sound->get(), medialSilenceDuration, substimulus.get());
+		if (*sound == NULL) {
+			*sound = substimulus.transfer();
 		} else {
-			*sound = substimulus.move();
+			autoSound newStimulus = Sounds_append (*sound, medialSilenceDuration, substimulus.peek());
+			Melder_assert (sound == & (*sound));
+			forget (*sound);
+			*sound = newStimulus.transfer();
 		}
 		/*
 		 * Cycle.
 		 */
-		if (! comma) break;
+		if (comma == NULL) break;
 		fileNames = & comma [1];
 	}
 }
@@ -182,8 +182,8 @@ void ExperimentMFC_start (ExperimentMFC me) {
 		NUMvector_free <long> (my responses, 1);
 		NUMvector_free <double> (my goodnesses, 1);
 		NUMvector_free <double> (my reactionTimes, 1);
-		my playBuffer.reset();
-		my pausing = false;
+		forget (my playBuffer);
+		my pausing = FALSE;
 		my numberOfTrials = my numberOfDifferentStimuli * my numberOfReplicationsPerStimulus;
 		my stimuli = NUMvector <long> (1, my numberOfTrials);
 		my responses = NUMvector <long> (1, my numberOfTrials);
@@ -278,7 +278,7 @@ void ExperimentMFC_start (ExperimentMFC me) {
 	} catch (MelderError) {
 		Melder_warningOn ();
 		my numberOfTrials = 0;
-		NUMvector_free (my stimuli, 1); my stimuli = nullptr;
+		NUMvector_free (my stimuli, 1); my stimuli = NULL;
 		Melder_throw (me, U": not started.");
 	}
 }
@@ -330,65 +330,55 @@ static void playSound (ExperimentMFC me, Sound sound, Sound carrierBefore, Sound
 
 	if (! my blankWhilePlaying)
 		my startingTime = Melder_clock ();
-	Sound_playPart (my playBuffer.get(), 0.0, numberOfSamplesWritten * my samplePeriod, 0, nullptr);
+	Sound_playPart (my playBuffer, 0.0, numberOfSamplesWritten * my samplePeriod, 0, NULL);
 	if (my blankWhilePlaying)
 		my startingTime = Melder_clock ();
 }
 
 void ExperimentMFC_playStimulus (ExperimentMFC me, long istim) {
-	playSound (me, my stimulus [istim]. sound.get(),
-		my stimulusCarrierBefore. sound.get(), my stimulusCarrierAfter. sound.get(),
-		my stimulusInitialSilenceDuration, my stimulusFinalSilenceDuration);
+	playSound (me, my stimulus [istim]. sound,
+		my stimulusCarrierBefore. sound, my stimulusCarrierAfter. sound, my stimulusInitialSilenceDuration, my stimulusFinalSilenceDuration);
 }
 
 void ExperimentMFC_playResponse (ExperimentMFC me, long iresp) {
-	playSound (me, my response [iresp]. sound.get(),
-		my responseCarrierBefore. sound.get(), my responseCarrierAfter. sound.get(),
-		my responseInitialSilenceDuration, my responseFinalSilenceDuration);
+	playSound (me, my response [iresp]. sound,
+		my responseCarrierBefore. sound, my responseCarrierAfter. sound, my responseInitialSilenceDuration, my responseFinalSilenceDuration);
 }
 
+Thing_implement (ResultsMFC, Data, 2);
 
-#pragma mark - class ExperimentMFCList
-
-Thing_implement (ExperimentMFCList, Ordered, 0);
-
-
-#pragma mark - class ResultsMFC
-
-Thing_implement (ResultsMFC, Daata, 2);
-
-autoResultsMFC ResultsMFC_create (long numberOfTrials) {
+ResultsMFC ResultsMFC_create (long numberOfTrials) {
 	try {
 		autoResultsMFC me = Thing_new (ResultsMFC);
 		my numberOfTrials = numberOfTrials;
 		my result = NUMvector <structTrialMFC> (1, my numberOfTrials);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ResultsMFC not created.");
 	}
 }
 
-autoResultsMFC ExperimentMFC_extractResults (ExperimentMFC me) {
+ResultsMFC ExperimentMFC_extractResults (ExperimentMFC me) {
 	try {
 		if (my trial == 0 || my trial <= my numberOfTrials)
 			Melder_warning (U"The experiment was not finished. Only the first ", my trial - 1 + my pausing, U" responses are valid.");
 		autoResultsMFC thee = ResultsMFC_create (my numberOfTrials);
 		for (long trial = 1; trial <= my numberOfTrials; trial ++) {
 			char32 *pipe = my stimulus [my stimuli [trial]]. visibleText ?
-				str32chr (my stimulus [my stimuli [trial]]. visibleText, U'|') : nullptr;
+				str32chr (my stimulus [my stimuli [trial]]. visibleText, U'|') : NULL;
 			thy result [trial]. stimulus = Melder_dup (Melder_cat (my stimulus [my stimuli [trial]]. name, pipe));
 			//if (my responses [trial] < 1) Melder_throw (U"No response for trial ", trial, U".")
 			thy result [trial]. response = Melder_dup (my responses [trial] ? my response [my responses [trial]]. name : U"");
 			thy result [trial]. goodness = my goodnesses [trial];
 			thy result [trial]. reactionTime = my reactionTimes [trial];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": results not extracted.");
 	}
 }
 
-autoResultsMFC ResultsMFC_removeUnsharedStimuli (ResultsMFC me, ResultsMFC thee) {
+ResultsMFC ResultsMFC_removeUnsharedStimuli (ResultsMFC me, ResultsMFC thee) {
 	try {
 		autoResultsMFC him = ResultsMFC_create (thy numberOfTrials);
 		his numberOfTrials = 0;
@@ -408,18 +398,18 @@ autoResultsMFC ResultsMFC_removeUnsharedStimuli (ResultsMFC me, ResultsMFC thee)
 		}
 		if (his numberOfTrials == 0)
 			Melder_throw (U"No shared stimuli.");
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": unshared stimuli not removed.");
 	}
 }
 
-autoTable ResultsMFCs_to_Table (OrderedOf<structResultsMFC>* me) {
+Table ResultsMFCs_to_Table (Collection me) {
 	try {
 		long irow = 0;
 		bool hasGoodnesses = false, hasReactionTimes = false;
 		for (long iresults = 1; iresults <= my size; iresults ++) {
-			ResultsMFC results = my at [iresults];
+			ResultsMFC results = (ResultsMFC) my item [iresults];
 			for (long itrial = 1; itrial <= results -> numberOfTrials; itrial ++) {
 				irow ++;
 				if (results -> result [itrial]. goodness != 0)
@@ -429,78 +419,78 @@ autoTable ResultsMFCs_to_Table (OrderedOf<structResultsMFC>* me) {
 			}
 		}
 		autoTable thee = Table_create (irow, 3 + hasGoodnesses + hasReactionTimes);
-		Table_setColumnLabel (thee.get(), 1, U"subject");
-		Table_setColumnLabel (thee.get(), 2, U"stimulus");
-		Table_setColumnLabel (thee.get(), 3, U"response");
+		Table_setColumnLabel (thee.peek(), 1, U"subject");
+		Table_setColumnLabel (thee.peek(), 2, U"stimulus");
+		Table_setColumnLabel (thee.peek(), 3, U"response");
 		if (hasGoodnesses)
-			Table_setColumnLabel (thee.get(), 4, U"goodness");
+			Table_setColumnLabel (thee.peek(), 4, U"goodness");
 		if (hasReactionTimes)
-			Table_setColumnLabel (thee.get(), 4 + hasGoodnesses, U"reactionTime");
+			Table_setColumnLabel (thee.peek(), 4 + hasGoodnesses, U"reactionTime");
 		irow = 0;
 		for (long iresults = 1; iresults <= my size; iresults ++) {
-			ResultsMFC results = my at [iresults];
+			ResultsMFC results = (ResultsMFC) my item [iresults];
 			for (long itrial = 1; itrial <= results -> numberOfTrials; itrial ++) {
 				irow ++;
-				Table_setStringValue (thee.get(), irow, 1, results -> name);
-				Table_setStringValue (thee.get(), irow, 2, results -> result [itrial]. stimulus);
-				Table_setStringValue (thee.get(), irow, 3, results -> result [itrial]. response);
+				Table_setStringValue (thee.peek(), irow, 1, results -> name);
+				Table_setStringValue (thee.peek(), irow, 2, results -> result [itrial]. stimulus);
+				Table_setStringValue (thee.peek(), irow, 3, results -> result [itrial]. response);
 				if (hasGoodnesses) {
-					Table_setNumericValue (thee.get(), irow, 4, results -> result [itrial]. goodness);
+					Table_setNumericValue (thee.peek(), irow, 4, results -> result [itrial]. goodness);
 				}
 				if (hasReactionTimes) {
-					Table_setNumericValue (thee.get(), irow, 4 + hasGoodnesses, results -> result [itrial]. reactionTime);
+					Table_setNumericValue (thee.peek(), irow, 4 + hasGoodnesses, results -> result [itrial]. reactionTime);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ResultsMFC objects not collected to Table.");
 	}
 }
 
-autoCategories ResultsMFC_to_Categories_stimuli (ResultsMFC me) {
+Categories ResultsMFC_to_Categories_stimuli (ResultsMFC me) {
 	try {
 		autoCategories thee = Categories_create ();
 		for (long trial = 1; trial <= my numberOfTrials; trial ++) {
 			autoSimpleString category = SimpleString_create (my result [trial]. stimulus);
-			thy addItem_move (category.move());
+			Collection_addItem (thee.peek(), category.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": stimuli not converted to Categories.");
 	}
 }
 
-autoCategories ResultsMFC_to_Categories_responses (ResultsMFC me) {
+Categories ResultsMFC_to_Categories_responses (ResultsMFC me) {
 	try {
 		autoCategories thee = Categories_create ();
 		for (long trial = 1; trial <= my numberOfTrials; trial ++) {
 			autoSimpleString category = SimpleString_create (my result [trial]. response);
-			thy addItem_move (category.move());
+			Collection_addItem (thee.peek(), category.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": responses not converted to Categories.");
 	}
 }
 
-
-#pragma mark - class Categories extensions
-
+static int compare (SimpleString me, SimpleString thee) {
+	return str32cmp (my string, thy string);
+}
 void Categories_sort (Categories me) {
-	my sort (SimpleString_compare);
+	NUMsort_p (my size, my item, (int (*) (const void *, const void *)) compare);
 }
 
 double Categories_getEntropy (Categories me) {
 	long numberOfTokens = 0;
-	char32 *previousString = nullptr;
+	char32 *previousString = NULL;
 	double entropy = 0.0;
 	autoCategories thee = Data_copy (me);
-	Categories_sort (thee.get());
+	Categories_sort (thee.peek());
 	for (long i = 1; i <= thy size; i ++) {
-		SimpleString s = thy at [i];
+		SimpleString s = (SimpleString) thy item [i];
 		char32 *string = s -> string;
-		if (previousString && ! str32equ (string, previousString)) {
+		if (previousString != NULL && ! str32equ (string, previousString)) {
 			double p = (double) numberOfTokens / thy size;
 			entropy -= p * NUMlog2 (p);
 			numberOfTokens = 1;
diff --git a/fon/ExperimentMFC.h b/fon/ExperimentMFC.h
index fff5889..56a18f4 100644
--- a/fon/ExperimentMFC.h
+++ b/fon/ExperimentMFC.h
@@ -2,7 +2,7 @@
 #define _ExperimentMFC_h_
 /* ExperimentMFC.h
  *
- * Copyright (C) 2001-2011,2015 Paul Boersma
+ * Copyright (C) 2001-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,27 +26,23 @@
 #include "Experiment_enums.h"
 
 #include "ExperimentMFC_def.h"
+oo_CLASS_CREATE (ExperimentMFC, Data);
+oo_CLASS_CREATE (ResultsMFC, Data);
 
 void ExperimentMFC_start (ExperimentMFC me);
 void ExperimentMFC_playStimulus (ExperimentMFC me, long istim);
 void ExperimentMFC_playResponse (ExperimentMFC me, long iresp);
 
-autoResultsMFC ResultsMFC_create (long numberOfResults);
-autoResultsMFC ExperimentMFC_extractResults (ExperimentMFC me);
-autoResultsMFC ResultsMFC_removeUnsharedStimuli (ResultsMFC me, ResultsMFC thee);
+ResultsMFC ResultsMFC_create (long numberOfResults);
+ResultsMFC ExperimentMFC_extractResults (ExperimentMFC me);
+ResultsMFC ResultsMFC_removeUnsharedStimuli (ResultsMFC me, ResultsMFC thee);
 
-autoTable ResultsMFCs_to_Table (OrderedOf<structResultsMFC>* me);
+Table ResultsMFCs_to_Table (Collection me);
 
-autoCategories ResultsMFC_to_Categories_stimuli (ResultsMFC me);
-autoCategories ResultsMFC_to_Categories_responses (ResultsMFC me);
+Categories ResultsMFC_to_Categories_stimuli (ResultsMFC me);
+Categories ResultsMFC_to_Categories_responses (ResultsMFC me);
 void Categories_sort (Categories me);
 double Categories_getEntropy (Categories me);
 
-Collection_define (ExperimentMFCList, OrderedOf, ExperimentMFC) {
-	DaataList asDaataList () {
-		return reinterpret_cast<DaataList> (this);
-	}
-};
-
 /* End of file ExperimentMFC.h */
 #endif
diff --git a/fon/ExperimentMFC_def.h b/fon/ExperimentMFC_def.h
index 14c6b97..46262c6 100644
--- a/fon/ExperimentMFC_def.h
+++ b/fon/ExperimentMFC_def.h
@@ -38,13 +38,9 @@ oo_DEFINE_STRUCT (SoundMFC)
 
 	oo_STRING (name)
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (Sound, 0, sound)
+		oo_OBJECT (Sound, 0, sound)
 	#endif
 		
-	#if oo_DESTROYING
-		sound.reset();
-	#endif
-
 oo_END_STRUCT (SoundMFC)
 #undef ooSTRUCT
 
@@ -57,13 +53,9 @@ oo_DEFINE_STRUCT (StimulusMFC)
 		oo_STRING (visibleText)
 	oo_ENDFROM
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (Sound, 0, sound)
-	#endif
-
-	#if oo_DESTROYING
-		sound.reset();
+		oo_OBJECT (Sound, 0, sound)
 	#endif
-
+		
 oo_END_STRUCT (StimulusMFC)
 #undef ooSTRUCT
 
@@ -84,11 +76,7 @@ oo_DEFINE_STRUCT (ResponseMFC)
 	oo_ENDFROM
 	oo_STRING (name)
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (Sound, 0, sound)
-	#endif
-
-	#if oo_DESTROYING
-		sound.reset();
+		oo_OBJECT (Sound, 0, sound)
 	#endif
 
 oo_END_STRUCT (ResponseMFC)
@@ -109,7 +97,7 @@ oo_END_STRUCT (GoodnessMFC)
 
 
 #define ooSTRUCT ExperimentMFC
-oo_DEFINE_CLASS (ExperimentMFC, Daata)
+oo_DEFINE_CLASS (ExperimentMFC, Data)
 
 	oo_FROM (6)
 		oo_QUESTION (blankWhilePlaying)
@@ -187,12 +175,12 @@ oo_DEFINE_CLASS (ExperimentMFC, Daata)
 		oo_DOUBLE_VECTOR (goodnesses, numberOfTrials)
 		oo_DOUBLE (startingTime)
 		oo_DOUBLE_VECTOR (reactionTimes, numberOfTrials)
-		oo_AUTO_OBJECT (Sound, 0, playBuffer)
+		oo_OBJECT (Sound, 0, playBuffer)
 	#endif
 	oo_DIR (rootDirectory)
 	#if oo_READING
 		MelderDir_copy (& Data_directoryBeingRead, & rootDirectory);
-		if (formatVersion < 4) stimuliAreSounds = true;
+		if (formatVersion < 4) stimuliAreSounds = TRUE;
 	#endif
 
 oo_END_CLASS (ExperimentMFC)
@@ -218,7 +206,7 @@ oo_END_STRUCT (TrialMFC)
 
 
 #define ooSTRUCT ResultsMFC
-oo_DEFINE_CLASS (ResultsMFC, Daata)
+oo_DEFINE_CLASS (ResultsMFC, Data)
 
 	oo_LONG (numberOfTrials)
 	oo_STRUCT_VECTOR (TrialMFC, result, numberOfTrials)
diff --git a/fon/Formant.cpp b/fon/Formant.cpp
index f1f4ec1..f6eed4b 100644
--- a/fon/Formant.cpp
+++ b/fon/Formant.cpp
@@ -1,6 +1,6 @@
 /* Formant.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@
 Thing_implement (Formant, Sampled, 2);   // version 1 = with intensity, 2 = double
 
 void structFormant :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -85,15 +85,15 @@ double structFormant :: v_getValueAtSample (long iframe, long which, int units)
 	return NUMundefined;
 }
 
-autoFormant Formant_create (double tmin, double tmax, long nt, double dt, double t1,
+Formant Formant_create (double tmin, double tmax, long nt, double dt, double t1,
 	int maxnFormants)
 {
 	try {
 		autoFormant me = Thing_new (Formant);
-		Sampled_init (me.get(), tmin, tmax, nt, dt, t1);
+		Sampled_init (me.peek(), tmin, tmax, nt, dt, t1);
 		my d_frames = NUMvector <structFormant_Frame> (1, nt);
 		my maxnFormants = maxnFormants;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Formant object not created.");
 	}
@@ -134,10 +134,10 @@ void Formant_drawTracks (Formant me, Graphics g, double tmin, double tmax, doubl
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Formant frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
 	}
 }
 
@@ -156,7 +156,7 @@ void Formant_drawSpeckles_inside (Formant me, Graphics g, double tmin, double tm
 			maximumIntensity = frame -> intensity;
 	}
 	if (maximumIntensity == 0.0 || suppress_dB <= 0.0)
-		minimumIntensity = 0.0;   // ignore
+		minimumIntensity = 0.0;   /* Ignore. */
 	else
 		minimumIntensity = maximumIntensity / pow (10.0, suppress_dB / 10.0);
 
@@ -180,10 +180,10 @@ void Formant_drawSpeckles (Formant me, Graphics g, double tmin, double tmax, dou
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_textLeft (g, true, U"Formant frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
 	}
 }
 
@@ -192,13 +192,13 @@ void Formant_formula_bandwidths (Formant me, const char32 *formula, Interpreter
 		long nrow = Formant_getMaxNumFormants (me);
 		if (nrow < 1)
 			Melder_throw (U"No formants available.");
-		autoMatrix mat = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, nrow + 0.5, nrow, 1.0, 1.0);
+		autoMatrix mat = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, nrow + 0.5, nrow, 1, 1);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Formant_Frame frame = & my d_frames [iframe];
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++)
 				mat -> z [iformant] [iframe] = frame -> formant [iformant]. bandwidth;
 		}
-		Matrix_formula (mat.get(), formula, interpreter, nullptr);
+		Matrix_formula (mat.peek(), formula, interpreter, NULL);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Formant_Frame frame = & my d_frames [iframe];
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++)
@@ -214,13 +214,13 @@ void Formant_formula_frequencies (Formant me, const char32 *formula, Interpreter
 		long nrow = Formant_getMaxNumFormants (me);
 		if (nrow < 1)
 			Melder_throw (U"No formants available.");
-		autoMatrix mat = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, nrow + 0.5, nrow, 1.0, 1.0);
+		autoMatrix mat = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 0.5, nrow + 0.5, nrow, 1, 1);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Formant_Frame frame = & my d_frames [iframe];
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++)
 				mat -> z [iformant] [iframe] = frame -> formant [iformant]. frequency;
 		}
-		Matrix_formula (mat.get(), formula, interpreter, nullptr);
+		Matrix_formula (mat.peek(), formula, interpreter, NULL);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Formant_Frame frame = & my d_frames [iframe];
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++)
@@ -258,13 +258,13 @@ void Formant_getMinimumAndTime (Formant me, int iformant, double tmin, double tm
 
 double Formant_getMinimum (Formant me, int iformant, double tmin, double tmax, int bark, int interpolate) {
 	double minimum;
-	Formant_getMinimumAndTime (me, iformant, tmin, tmax, bark, interpolate, & minimum, nullptr);
+	Formant_getMinimumAndTime (me, iformant, tmin, tmax, bark, interpolate, & minimum, NULL);
 	return minimum;
 }
 
 double Formant_getTimeOfMinimum (Formant me, int iformant, double tmin, double tmax, int bark, int interpolate) {
 	double time;
-	Formant_getMinimumAndTime (me, iformant, tmin, tmax, bark, interpolate, nullptr, & time);
+	Formant_getMinimumAndTime (me, iformant, tmin, tmax, bark, interpolate, NULL, & time);
 	return time;
 }
 
@@ -272,18 +272,18 @@ void Formant_getMaximumAndTime (Formant me, int iformant, double tmin, double tm
 	double *return_maximum, double *return_timeOfMaximum)
 {
 	Sampled_getMaximumAndX (me, tmin, tmax, iformant << 1, bark, interpolate, return_maximum, return_timeOfMaximum);
-	if (return_maximum && *return_maximum <= 0.0) *return_maximum = NUMundefined;   // unlikely
+	if (return_maximum && *return_maximum <= 0.0) *return_maximum = NUMundefined;   /* Unlikely. */
 }
 
 double Formant_getMaximum (Formant me, int iformant, double tmin, double tmax, int bark, int interpolate) {
 	double maximum;
-	Formant_getMaximumAndTime (me, iformant, tmin, tmax, bark, interpolate, & maximum, nullptr);
+	Formant_getMaximumAndTime (me, iformant, tmin, tmax, bark, interpolate, & maximum, NULL);
 	return maximum;
 }
 
 double Formant_getTimeOfMaximum (Formant me, int iformant, double tmin, double tmax, int bark, int interpolate) {
 	double time;
-	Formant_getMaximumAndTime (me, iformant, tmin, tmax, bark, interpolate, nullptr, & time);
+	Formant_getMaximumAndTime (me, iformant, tmin, tmax, bark, interpolate, NULL, & time);
 	return time;
 }
 
@@ -292,7 +292,7 @@ double Formant_getQuantile (Formant me, int iformant, double quantile, double tm
 }
 
 double Formant_getMean (Formant me, int iformant, double tmin, double tmax, int bark) {
-	return Sampled_getMean (me, tmin, tmax, iformant << 1, bark, true);
+	return Sampled_getMean (me, tmin, tmax, iformant << 1, bark, TRUE);
 }
 
 double Formant_getStandardDeviation (Formant me, int iformant, double tmin, double tmax, int bark) {
@@ -317,11 +317,11 @@ double Formant_getStandardDeviation (Formant me, int iformant, double tmin, doub
 }
 
 double Formant_getValueAtTime (Formant me, int iformant, double time, int bark) {
-	return Sampled_getValueAtX (me, time, iformant << 1, bark, true);
+	return Sampled_getValueAtX (me, time, iformant << 1, bark, TRUE);
 }
 
 double Formant_getBandwidthAtTime (Formant me, int iformant, double time, int bark) {
-	return Sampled_getValueAtX (me, time, (iformant << 1) + 1, bark, true);
+	return Sampled_getValueAtX (me, time, (iformant << 1) + 1, bark, TRUE);
 }
 
 double Formant_getQuantileOfBandwidth (Formant me, int iformant, double quantile, double tmin, double tmax, int bark) {
@@ -355,14 +355,14 @@ void Formant_scatterPlot (Formant me, Graphics g, double tmin, double tmax,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, Melder_cat (U"%%F_", iformant1, U" (Hz)"));
-		Graphics_textLeft (g, true, Melder_cat (U"%%F_", iformant2, U" (Hz)"));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, Melder_cat (U"%%F_", iformant1, U" (Hz)"));
+		Graphics_textLeft (g, 1, Melder_cat (U"%%F_", iformant2, U" (Hz)"));
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
-autoMatrix Formant_to_Matrix (Formant me, int iformant) {
+Matrix Formant_to_Matrix (Formant me, int iformant) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1.0, 1.0, 1, 1.0, 1.0);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
@@ -370,13 +370,13 @@ autoMatrix Formant_to_Matrix (Formant me, int iformant) {
 			thy z [1] [iframe] = iformant <= frame -> nFormants ?
 				frame -> formant [iformant]. frequency : 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": frequencies of formant ", iformant, U" not converted to Matrix.");
 	}
 }
 
-autoMatrix Formant_to_Matrix_bandwidths (Formant me, int iformant) {
+Matrix Formant_to_Matrix_bandwidths (Formant me, int iformant) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1.0, 1.0, 1, 1.0, 1.0);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
@@ -384,7 +384,7 @@ autoMatrix Formant_to_Matrix_bandwidths (Formant me, int iformant) {
 			thy z [1] [iframe] = iformant <= frame -> nFormants ?
 				frame -> formant [iformant]. bandwidth : 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": bandwidths of formant ", iformant, U" not converted to Matrix.");
 	}
@@ -428,7 +428,7 @@ static void putResult (long iframe, long place, int itrack, void *closure) {
 	my thy d_frames [iframe]. formant [itrack] = my my d_frames [iframe]. formant [place];
 }
 
-autoFormant Formant_tracker (Formant me, int ntrack,
+Formant Formant_tracker (Formant me, int ntrack,
 	double refF1, double refF2, double refF3, double refF4, double refF5,
 	double dfCost,   /* Per kHz. */
 	double bfCost, double octaveJumpCost)
@@ -445,7 +445,7 @@ autoFormant Formant_tracker (Formant me, int ntrack,
 		}
 		/* BUG: limit costs to 1e10 or so */
 		parm.me = me;
-		parm.thee = thee.get();
+		parm.thee = thee.peek();
 		parm.dfCost = dfCost / 1000.0;   // per Hz
 		parm.bfCost = bfCost;
 		parm.octaveJumpCost = octaveJumpCost;
@@ -456,13 +456,13 @@ autoFormant Formant_tracker (Formant me, int ntrack,
 		parm.refF [5] = refF5;
 		NUM_viterbi_multi (my nx, my maxnFormants, ntrack,
 			getLocalCost, getTransitionCost, putResult, & parm);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not tracked.");
 	}
 }
 
-autoTable Formant_downto_Table (Formant me, bool includeFrameNumbers,
+Table Formant_downto_Table (Formant me, bool includeFrameNumbers,
 	bool includeTimes, int timeDecimals,
 	bool includeIntensity, int intensityDecimals,
 	bool includeNumberOfFormants, int frequencyDecimals,
@@ -472,38 +472,38 @@ autoTable Formant_downto_Table (Formant me, bool includeFrameNumbers,
 		autoTable thee = Table_createWithoutColumnNames (my nx, includeFrameNumbers + includeTimes + includeIntensity +
 			includeNumberOfFormants + my maxnFormants * (1 + includeBandwidths));
 		long icol = 0;
-		if (includeFrameNumbers)     Table_setColumnLabel (thee.get(), ++ icol, U"frame");
-		if (includeTimes)            Table_setColumnLabel (thee.get(), ++ icol, U"time(s)");
-		if (includeIntensity)        Table_setColumnLabel (thee.get(), ++ icol, U"intensity");
-		if (includeNumberOfFormants) Table_setColumnLabel (thee.get(), ++ icol, U"nformants");
+		if (includeFrameNumbers)     Table_setColumnLabel (thee.peek(), ++ icol, U"frame");
+		if (includeTimes)            Table_setColumnLabel (thee.peek(), ++ icol, U"time(s)");
+		if (includeIntensity)        Table_setColumnLabel (thee.peek(), ++ icol, U"intensity");
+		if (includeNumberOfFormants) Table_setColumnLabel (thee.peek(), ++ icol, U"nformants");
 		for (long iformant = 1; iformant <= my maxnFormants; iformant ++) {
-			Table_setColumnLabel (thee.get(), ++ icol, Melder_cat (U"F", iformant, U"(Hz)"));
-			if (includeBandwidths) { Table_setColumnLabel (thee.get(), ++ icol, Melder_cat (U"B", iformant, U"(Hz)")); }
+			Table_setColumnLabel (thee.peek(), ++ icol, Melder_cat (U"F", iformant, U"(Hz)"));
+			if (includeBandwidths) { Table_setColumnLabel (thee.peek(), ++ icol, Melder_cat (U"B", iformant, U"(Hz)")); }
 		}
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			icol = 0;
 			if (includeFrameNumbers)
-				Table_setNumericValue (thee.get(), iframe, ++ icol, iframe);
+				Table_setNumericValue (thee.peek(), iframe, ++ icol, iframe);
 			if (includeTimes)
-				Table_setStringValue (thee.get(), iframe, ++ icol, Melder_fixed (my x1 + (iframe - 1) * my dx, timeDecimals));
+				Table_setStringValue (thee.peek(), iframe, ++ icol, Melder_fixed (my x1 + (iframe - 1) * my dx, timeDecimals));
 			Formant_Frame frame = & my d_frames [iframe];
 			if (includeIntensity)
-				Table_setStringValue (thee.get(), iframe, ++ icol, Melder_fixed (frame -> intensity, intensityDecimals));
+				Table_setStringValue (thee.peek(), iframe, ++ icol, Melder_fixed (frame -> intensity, intensityDecimals));
 			if (includeNumberOfFormants)
-				Table_setNumericValue (thee.get(), iframe, ++ icol, frame -> nFormants);
+				Table_setNumericValue (thee.peek(), iframe, ++ icol, frame -> nFormants);
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++) {
 				Formant_Formant formant = & frame -> formant [iformant];
-				Table_setStringValue (thee.get(), iframe, ++ icol, Melder_fixed (formant -> frequency, frequencyDecimals));
+				Table_setStringValue (thee.peek(), iframe, ++ icol, Melder_fixed (formant -> frequency, frequencyDecimals));
 				if (includeBandwidths)
-					Table_setStringValue (thee.get(), iframe, ++ icol, Melder_fixed (formant -> bandwidth, frequencyDecimals));
+					Table_setStringValue (thee.peek(), iframe, ++ icol, Melder_fixed (formant -> bandwidth, frequencyDecimals));
 			}
 			for (long iformant = frame -> nFormants + 1; iformant <= my maxnFormants; iformant ++) {
-				Table_setNumericValue (thee.get(), iframe, ++ icol, NUMundefined);
+				Table_setNumericValue (thee.peek(), iframe, ++ icol, NUMundefined);
 				if (includeBandwidths)
-					Table_setNumericValue (thee.get(), iframe, ++ icol, NUMundefined);
+					Table_setNumericValue (thee.peek(), iframe, ++ icol, NUMundefined);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
@@ -519,7 +519,7 @@ void Formant_list (Formant me, bool includeFrameNumbers,
 		autoTable table = Formant_downto_Table (me, includeFrameNumbers, includeTimes, timeDecimals,
 			includeIntensity, intensityDecimals,
 			includeNumberOfFormants, frequencyDecimals, includeBandwidths);
-		Table_list (table.get(), false);
+		Table_list (table.peek(), false);
 	} catch (MelderError) {
 		Melder_throw (me, U": not listed.");
 	}
diff --git a/fon/Formant.h b/fon/Formant.h
index 793f8b4..b380c01 100644
--- a/fon/Formant.h
+++ b/fon/Formant.h
@@ -21,14 +21,15 @@
 
 #include "Matrix.h"
 #include "Table.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "Formant_def.h"
+oo_CLASS_CREATE (Formant, Sampled);
 
-autoFormant Formant_create (double tmin, double tmax, long nt, double dt, double t1, int maxnFormants);
+Formant Formant_create (double tmin, double tmax, long nt, double dt, double t1, int maxnFormants);
 /*
 	Function:
-		return a new instance of Formant.
+		return a new instance of Formant, or NULL if out of memory.
 	Preconditions:
 		nt >= 1;
 		dt > 0.0;
@@ -77,17 +78,17 @@ void Formant_scatterPlot (Formant me, Graphics g, double tmin, double tmax,
 	int iformant1, double fmin1, double fmax1, int iformant2, double fmin2, double fmax2,
 	double size_mm, const char32 *mark, int garnish);
 
-autoMatrix Formant_to_Matrix (Formant me, int iformant);
-autoMatrix Formant_to_Matrix_bandwidths (Formant me, int iformant);
+Matrix Formant_to_Matrix (Formant me, int iformant);
+Matrix Formant_to_Matrix_bandwidths (Formant me, int iformant);
 void Formant_formula_frequencies (Formant me, const char32 *formula, Interpreter interpreter);
 void Formant_formula_bandwidths (Formant me, const char32 *formula, Interpreter interpreter);
 
-autoFormant Formant_tracker (Formant me, int numberOfTracks,
+Formant Formant_tracker (Formant me, int numberOfTracks,
 	double refF1, double refF2, double refF3, double refF4, double refF5,
 	double dfCost,   // per kHz
 	double bfCost, double octaveJumpCost);
 
-autoTable Formant_downto_Table (Formant me, bool includeFrameNumbers,
+Table Formant_downto_Table (Formant me, bool includeFrameNumbers,
 	bool includeTimes, int timeDecimals,
 	bool includeIntensity, int intensityDecimals,
 	bool includeNumberOfFormants, int frequencyDecimals,
diff --git a/fon/FormantGrid.cpp b/fon/FormantGrid.cpp
index 1b9099a..a0a3a3e 100644
--- a/fon/FormantGrid.cpp
+++ b/fon/FormantGrid.cpp
@@ -1,6 +1,6 @@
 /* FormantGrid.cpp
  *
- * Copyright (C) 2008-2011,2014,2015,2016 Paul Boersma & David Weenink
+ * Copyright (C) 2008-2011,2014,2015 Paul Boersma & David Weenink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,73 +43,75 @@
 Thing_implement (FormantGrid, Function, 0);
 
 double structFormantGrid :: v_getVector (long irow, long icol) {
-	RealTier tier = our formants.at [irow];
+	RealTier tier = (RealTier) formants -> item [irow];
 	return RealTier_getValueAtIndex (tier, icol);
 }
 
 double structFormantGrid :: v_getFunction1 (long irow, double x) {
-	RealTier tier = our formants.at [irow];
+	RealTier tier = (RealTier) formants -> item [irow];
 	return RealTier_getValueAtTime (tier, x);
 }
 
 void structFormantGrid :: v_shiftX (double xfrom, double xto) {
 	FormantGrid_Parent :: v_shiftX (xfrom, xto);
-	for (long i = 1; i <= our formants.size; i ++) {
-		RealTier tier = our formants.at [i];
+	for (long i = 1; i <= formants -> size; i ++) {
+		RealTier tier = (RealTier) formants -> item [i];
 		tier -> v_shiftX (xfrom, xto);
 	}
-	for (long i = 1; i <= our bandwidths.size; i ++) {
-		RealTier tier = our bandwidths.at [i];
+	for (long i = 1; i <= bandwidths -> size; i ++) {
+		RealTier tier = (RealTier) bandwidths -> item [i];
 		tier -> v_shiftX (xfrom, xto);
 	}
 }
 
 void structFormantGrid :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	FormantGrid_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	for (long i = 1; i <= our formants.size; i ++) {
-		RealTier tier = our formants.at [i];
+	for (long i = 1; i <= formants -> size; i ++) {
+		RealTier tier = (RealTier) formants -> item [i];
 		tier -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 	}
-	for (long i = 1; i <= our bandwidths.size; i ++) {
-		RealTier tier = our bandwidths.at [i];
+	for (long i = 1; i <= bandwidths -> size; i ++) {
+		RealTier tier = (RealTier) bandwidths -> item [i];
 		tier -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 	}
 }
 
 void FormantGrid_init (FormantGrid me, double tmin, double tmax, long numberOfFormants) {
+	my formants = Ordered_create ();
+	my bandwidths = Ordered_create ();
 	for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-		autoRealTier formant = RealTier_create (tmin, tmax);
-		my formants. addItem_move (formant.move());
-		autoRealTier bandwidth = RealTier_create (tmin, tmax);
-		my bandwidths. addItem_move (bandwidth.move());
+		RealTier formant = RealTier_create (tmin, tmax);
+		Collection_addItem (my formants, formant);
+		RealTier bandwidth = RealTier_create (tmin, tmax);
+		Collection_addItem (my bandwidths, bandwidth);
 	}
 	my xmin = tmin;
 	my xmax = tmax;
 }
 
-autoFormantGrid FormantGrid_createEmpty (double tmin, double tmax, long numberOfFormants) {
+FormantGrid FormantGrid_createEmpty (double tmin, double tmax, long numberOfFormants) {
 	try {
 		autoFormantGrid me = Thing_new (FormantGrid);
-		FormantGrid_init (me.get(), tmin, tmax, numberOfFormants);
-		return me;
+		FormantGrid_init (me.peek(), tmin, tmax, numberOfFormants);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Empty FormantGrid not created.");
 	}
 }
 
-autoFormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
+FormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
 	double initialFirstFormant, double initialFormantSpacing,
 	double initialFirstBandwidth, double initialBandwidthSpacing)
 {
 	try {
 		autoFormantGrid me = FormantGrid_createEmpty (tmin, tmax, numberOfFormants);
 		for (long iformant = 1; iformant <= numberOfFormants; iformant ++) {
-			FormantGrid_addFormantPoint (me.get(), iformant, 0.5 * (tmin + tmax),
+			FormantGrid_addFormantPoint (me.peek(), iformant, 0.5 * (tmin + tmax),
 				initialFirstFormant + (iformant - 1) * initialFormantSpacing);
-			FormantGrid_addBandwidthPoint (me.get(), iformant, 0.5 * (tmin + tmax),
+			FormantGrid_addBandwidthPoint (me.peek(), iformant, 0.5 * (tmin + tmax),
 				initialFirstBandwidth + (iformant - 1) * initialBandwidthSpacing);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantGrid not created.");
 	}
@@ -117,9 +119,9 @@ autoFormantGrid FormantGrid_create (double tmin, double tmax, long numberOfForma
 
 void FormantGrid_addFormantPoint (FormantGrid me, long iformant, double t, double value) {
 	try {
-		if (iformant < 1 || iformant > my formants.size)
+		if (iformant < 1 || iformant > my formants -> size)
 			Melder_throw (U"No such formant number.");
-		RealTier formantTier = my formants.at [iformant];
+		RealTier formantTier = (RealTier) my formants -> item [iformant];
 		RealTier_addPoint (formantTier, t, value);
 	} catch (MelderError) {
 		Melder_throw (me, U": formant point not added.");
@@ -128,9 +130,9 @@ void FormantGrid_addFormantPoint (FormantGrid me, long iformant, double t, doubl
 
 void FormantGrid_addBandwidthPoint (FormantGrid me, long iformant, double t, double value) {
 	try {
-		if (iformant < 1 || iformant > my formants.size)
+		if (iformant < 1 || iformant > my formants -> size)
 			Melder_throw (U"No such formant number.");
-		RealTier bandwidthTier = my bandwidths.at [iformant];
+		RealTier bandwidthTier = (RealTier) my bandwidths -> item [iformant];
 		RealTier_addPoint (bandwidthTier, t, value);
 	} catch (MelderError) {
 		Melder_throw (me, U": bandwidth point not added.");
@@ -138,56 +140,55 @@ void FormantGrid_addBandwidthPoint (FormantGrid me, long iformant, double t, dou
 }
 
 double FormantGrid_getFormantAtTime (FormantGrid me, long iformant, double t) {
-	if (iformant < 1 || iformant > my formants.size) return NUMundefined;
-	return RealTier_getValueAtTime (my formants.at [iformant], t);
+	if (iformant < 1 || iformant > my formants -> size) return NUMundefined;
+	return RealTier_getValueAtTime ((RealTier) my formants -> item [iformant], t);
 }
 
 double FormantGrid_getBandwidthAtTime (FormantGrid me, long iformant, double t) {
-	if (iformant < 1 || iformant > my bandwidths.size) return NUMundefined;
-	return RealTier_getValueAtTime (my bandwidths.at [iformant], t);
+	if (iformant < 1 || iformant > my bandwidths -> size) return NUMundefined;
+	return RealTier_getValueAtTime ((RealTier) my bandwidths -> item [iformant], t);
 }
 
 void FormantGrid_removeFormantPointsBetween (FormantGrid me, long iformant, double tmin, double tmax) {
-	if (iformant < 1 || iformant > my formants.size) return;
-	AnyTier_removePointsBetween (my formants.at [iformant]->asAnyTier(), tmin, tmax);
+	if (iformant < 1 || iformant > my formants -> size) return;
+	AnyTier_removePointsBetween (my formants -> item [iformant], tmin, tmax);
 }
 
 void FormantGrid_removeBandwidthPointsBetween (FormantGrid me, long iformant, double tmin, double tmax) {
-	if (iformant < 1 || iformant > my bandwidths.size) return;
-	AnyTier_removePointsBetween (my bandwidths.at [iformant]->asAnyTier(), tmin, tmax);
+	if (iformant < 1 || iformant > my bandwidths -> size) return;
+	AnyTier_removePointsBetween (my bandwidths -> item [iformant], tmin, tmax);
 }
 
 void Sound_FormantGrid_filter_inline (Sound me, FormantGrid formantGrid) {
 	double dt = my dx;
-	if (formantGrid -> formants.size > 0 && formantGrid -> bandwidths.size > 0) {
-		for (long iformant = 1; iformant <= formantGrid -> formants.size; iformant ++) {
-			RealTier formantTier = formantGrid -> formants.at [iformant];
-			RealTier bandwidthTier = formantGrid -> bandwidths.at [iformant];
-			for (long isamp = 1; isamp <= my nx; isamp ++) {
-				double t = my x1 + (isamp - 1) * my dx;
-				/*
-				 * Compute LP coefficients.
-				 */
-				double formant, bandwidth;
-				formant = RealTier_getValueAtTime (formantTier, t);
-				bandwidth = RealTier_getValueAtTime (bandwidthTier, t);
-				if (NUMdefined (formant) && NUMdefined (bandwidth)) {
-					double cosomdt = cos (2 * NUMpi * formant * dt);
-					double r = exp (- NUMpi * bandwidth * dt);
-					/* Formants at 0 Hz or the Nyquist are single poles, others are double poles. */
-					if (fabs (cosomdt) > 0.999999) {   /* Allow for round-off errors. */
-						/* single pole: D(z) = 1 - r z^-1 */
-						for (long channel = 1; channel <= my ny; channel ++) {
-							if (isamp > 1) my z [channel] [isamp] += r * my z [channel] [isamp - 1];
-						}
-					} else {
-						/* double pole: D(z) = 1 + p z^-1 + q z^-2 */
-						double p = - 2 * r * cosomdt;
-						double q = r * r;
-						for (long channel = 1; channel <= my ny; channel ++) {
-							if (isamp > 1) my z [channel] [isamp] -= p * my z [channel] [isamp - 1];
-							if (isamp > 2) my z [channel] [isamp] -= q * my z [channel] [isamp - 2];
-						}
+	if (formantGrid -> formants -> size && formantGrid -> bandwidths -> size)
+	for (long iformant = 1; iformant <= formantGrid -> formants -> size; iformant ++) {
+		RealTier formantTier = (RealTier) formantGrid -> formants -> item [iformant];
+		RealTier bandwidthTier = (RealTier) formantGrid -> bandwidths -> item [iformant];
+		for (long isamp = 1; isamp <= my nx; isamp ++) {
+			double t = my x1 + (isamp - 1) * my dx;
+			/*
+			 * Compute LP coefficients.
+			 */
+			double formant, bandwidth;
+			formant = RealTier_getValueAtTime (formantTier, t);
+			bandwidth = RealTier_getValueAtTime (bandwidthTier, t);
+			if (NUMdefined (formant) && NUMdefined (bandwidth)) {
+				double cosomdt = cos (2 * NUMpi * formant * dt);
+				double r = exp (- NUMpi * bandwidth * dt);
+				/* Formants at 0 Hz or the Nyquist are single poles, others are double poles. */
+				if (fabs (cosomdt) > 0.999999) {   /* Allow for round-off errors. */
+					/* single pole: D(z) = 1 - r z^-1 */
+					for (long channel = 1; channel <= my ny; channel ++) {
+						if (isamp > 1) my z [channel] [isamp] += r * my z [channel] [isamp - 1];
+					}
+				} else {
+					/* double pole: D(z) = 1 + p z^-1 + q z^-2 */
+					double p = - 2 * r * cosomdt;
+					double q = r * r;
+					for (long channel = 1; channel <= my ny; channel ++) {
+						if (isamp > 1) my z [channel] [isamp] -= p * my z [channel] [isamp - 1];
+						if (isamp > 2) my z [channel] [isamp] -= q * my z [channel] [isamp - 2];
 					}
 				}
 			}
@@ -195,40 +196,40 @@ void Sound_FormantGrid_filter_inline (Sound me, FormantGrid formantGrid) {
 	}
 }
 
-autoSound Sound_FormantGrid_filter (Sound me, FormantGrid formantGrid) {
+Sound Sound_FormantGrid_filter (Sound me, FormantGrid formantGrid) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_FormantGrid_filter_inline (thee.get(), formantGrid);
-		Vector_scale (thee.get(), 0.99);
-		return thee;
+		Sound_FormantGrid_filter_inline (thee.peek(), formantGrid);
+		Vector_scale (thee.peek(), 0.99);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formantGrid, U".");
 	}
 }
 
-autoSound Sound_FormantGrid_filter_noscale (Sound me, FormantGrid formantGrid) {
+Sound Sound_FormantGrid_filter_noscale (Sound me, FormantGrid formantGrid) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_FormantGrid_filter_inline (thee.get(), formantGrid);
-		return thee;
+		Sound_FormantGrid_filter_inline (thee.peek(), formantGrid);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formantGrid, U".");
 	}
 }
 
-autoSound FormantGrid_to_Sound (FormantGrid me, double samplingFrequency,
+Sound FormantGrid_to_Sound (FormantGrid me, double samplingFrequency,
 	double tStart, double f0Start, double tMid, double f0Mid, double tEnd, double f0End,
 	double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2)
 {
 	try {
 		autoPitchTier pitch = PitchTier_create (my xmin, my xmax);
-		RealTier_addPoint (pitch.get(), my xmin + tStart * (my xmax - my xmin), f0Start);
-		RealTier_addPoint (pitch.get(), my xmin + tMid * (my xmax - my xmin), f0Mid);
-		RealTier_addPoint (pitch.get(), my xmax - (1.0 - tEnd) * (my xmax - my xmin), f0End);
-		autoSound thee = PitchTier_to_Sound_phonation (pitch.get(), samplingFrequency,
+		RealTier_addPoint (pitch.peek(), my xmin + tStart * (my xmax - my xmin), f0Start);
+		RealTier_addPoint (pitch.peek(), my xmin + tMid * (my xmax - my xmin), f0Mid);
+		RealTier_addPoint (pitch.peek(), my xmax - (1.0 - tEnd) * (my xmax - my xmin), f0End);
+		autoSound thee = PitchTier_to_Sound_phonation (pitch.peek(), samplingFrequency,
 			adaptFactor, maximumPeriod, openPhase, collisionPhase, power1, power2, false);
-		Sound_FormantGrid_filter_inline (thee.get(), me);
-		return thee;
+		Sound_FormantGrid_filter_inline (thee.peek(), me);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
@@ -237,14 +238,14 @@ autoSound FormantGrid_to_Sound (FormantGrid me, double samplingFrequency,
 void FormantGrid_playPart (FormantGrid me, double tmin, double tmax, double samplingFrequency,
 	double tStart, double f0Start, double tMid, double f0Mid, double tEnd, double f0End,
 	double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2,
-	Sound_PlayCallback playCallback, Thing playBoss)
+	int (*playCallback) (void *playClosure, int phase, double tmin, double tmax, double t), void *playClosure)
 {
 	try {
 		autoSound sound = FormantGrid_to_Sound (me, samplingFrequency,
 			tStart, f0Start, tMid, f0Mid, tEnd, f0End,
 			adaptFactor, maximumPeriod, openPhase, collisionPhase, power1, power2);
-		Vector_scale (sound.get(), 0.99);
-		Sound_playPart (sound.get(), tmin, tmax, playCallback, playBoss);
+		Vector_scale (sound.peek(), 0.99);
+		Sound_playPart (sound.peek(), tmin, tmax, playCallback, playClosure);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
@@ -252,16 +253,16 @@ void FormantGrid_playPart (FormantGrid me, double tmin, double tmax, double samp
 
 void FormantGrid_formula_bandwidths (FormantGrid me, const char32 *expression, Interpreter interpreter, FormantGrid thee) {
 	try {
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! thee) thee = me;
-		for (long irow = 1; irow <= my formants.size; irow ++) {
-			RealTier bandwidth = thy bandwidths.at [irow];
-			for (long icol = 1; icol <= bandwidth -> points.size; icol ++) {
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (thee == NULL) thee = me;
+		for (long irow = 1; irow <= my formants -> size; irow ++) {
+			RealTier bandwidth = (RealTier) thy bandwidths -> item [irow];
+			for (long icol = 1; icol <= bandwidth -> points -> size; icol ++) {
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
 				if (result. result.numericResult == NUMundefined)
 					Melder_throw (U"Cannot put an undefined value into the tier.\nFormula not finished.");
-				bandwidth -> points.at [icol] -> value = result. result.numericResult;
+				((RealPoint) bandwidth -> points -> item [icol]) -> value = result. result.numericResult;
 			}
 		}
 	} catch (MelderError) {
@@ -271,16 +272,16 @@ void FormantGrid_formula_bandwidths (FormantGrid me, const char32 *expression, I
 
 void FormantGrid_formula_frequencies (FormantGrid me, const char32 *expression, Interpreter interpreter, FormantGrid thee) {
 	try {
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! thee) thee = me;
-		for (long irow = 1; irow <= my formants.size; irow ++) {
-			RealTier formant = thy formants.at [irow];
-			for (long icol = 1; icol <= formant -> points.size; icol ++) {
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (thee == NULL) thee = me;
+		for (long irow = 1; irow <= my formants -> size; irow ++) {
+			RealTier formant = (RealTier) thy formants -> item [irow];
+			for (long icol = 1; icol <= formant -> points -> size; icol ++) {
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
 				if (result. result.numericResult == NUMundefined)
 					Melder_throw (U"Cannot put an undefined value into the tier.\nFormula not finished.");
-				formant -> points.at [icol] -> value = result. result.numericResult;
+				((RealPoint) formant -> points -> item [icol]) -> value = result. result.numericResult;
 			}
 		}
 	} catch (MelderError) {
@@ -288,7 +289,7 @@ void FormantGrid_formula_frequencies (FormantGrid me, const char32 *expression,
 	}
 }
 
-autoFormantGrid Formant_downto_FormantGrid (Formant me) {
+FormantGrid Formant_downto_FormantGrid (Formant me) {
 	try {
 		autoFormantGrid thee = FormantGrid_createEmpty (my xmin, my xmax, my maxnFormants);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
@@ -296,56 +297,56 @@ autoFormantGrid Formant_downto_FormantGrid (Formant me) {
 			double t = Sampled_indexToX (me, iframe);
 			for (long iformant = 1; iformant <= frame -> nFormants; iformant ++) {
 				Formant_Formant pair = & frame -> formant [iformant];
-				FormantGrid_addFormantPoint (thee.get(), iformant, t, pair -> frequency);
-				FormantGrid_addBandwidthPoint (thee.get(), iformant, t, pair -> bandwidth);
+				FormantGrid_addFormantPoint (thee.peek(), iformant, t, pair -> frequency);
+				FormantGrid_addBandwidthPoint (thee.peek(), iformant, t, pair -> bandwidth);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to FormantGrid.");
 	}
 }
 
-autoFormant FormantGrid_to_Formant (FormantGrid me, double dt, double intensity) {
+Formant FormantGrid_to_Formant (FormantGrid me, double dt, double intensity) {
 	try {
 		Melder_assert (dt > 0.0);
 		Melder_assert (intensity >= 0.0);
 		long nt = (long) floor ((my xmax - my xmin) / dt) + 1;
 		double t1 = 0.5 * (my xmin + my xmax - (nt - 1) * dt);
-		autoFormant thee = Formant_create (my xmin, my xmax, nt, dt, t1, my formants.size);
+		autoFormant thee = Formant_create (my xmin, my xmax, nt, dt, t1, my formants -> size);
 		for (long iframe = 1; iframe <= nt; iframe ++) {
 			Formant_Frame frame = & thy d_frames [iframe];
 			frame -> intensity = intensity;
-			frame -> nFormants = my formants.size;
-			frame -> formant = NUMvector <structFormant_Formant> (1, my formants.size);
+			frame -> nFormants = my formants -> size;
+			frame -> formant = NUMvector <structFormant_Formant> (1, my formants -> size);
 			double t = t1 + (iframe - 1) * dt;
-			for (long iformant = 1; iformant <= my formants.size; iformant ++) {
+			for (long iformant = 1; iformant <= my formants -> size; iformant ++) {
 				Formant_Formant formant = & frame -> formant [iformant];
-				formant -> frequency = RealTier_getValueAtTime (my formants.at [iformant], t);
-				formant -> bandwidth = RealTier_getValueAtTime (my bandwidths.at [iformant], t);
+				formant -> frequency = RealTier_getValueAtTime ((RealTier) my formants -> item [iformant], t);
+				formant -> bandwidth = RealTier_getValueAtTime ((RealTier) my bandwidths -> item [iformant], t);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Formant.");
 	}
 }
 
-autoSound Sound_Formant_filter (Sound me, Formant formant) {
+Sound Sound_Formant_filter (Sound me, Formant formant) {
 	try {
 		autoFormantGrid grid = Formant_downto_FormantGrid (formant);
-		autoSound thee = Sound_FormantGrid_filter (me, grid.get());
-		return thee;
+		autoSound thee = Sound_FormantGrid_filter (me, grid.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formant, U".");
 	}
 }
 
-autoSound Sound_Formant_filter_noscale (Sound me, Formant formant) {
+Sound Sound_Formant_filter_noscale (Sound me, Formant formant) {
 	try {
 		autoFormantGrid grid = Formant_downto_FormantGrid (formant);
-		autoSound thee = Sound_FormantGrid_filter_noscale (me, grid.get());
-		return thee;
+		autoSound thee = Sound_FormantGrid_filter_noscale (me, grid.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formant, U".");
 	}
diff --git a/fon/FormantGrid.h b/fon/FormantGrid.h
index 1ed6c35..365c538 100644
--- a/fon/FormantGrid.h
+++ b/fon/FormantGrid.h
@@ -26,42 +26,43 @@
 Thing_declare (Interpreter);
 
 #include "FormantGrid_def.h"
+oo_CLASS_CREATE (FormantGrid, Function);
 
 void FormantGrid_init (FormantGrid me, double tmin, double tmax, long numberOfFormants);
-autoFormantGrid FormantGrid_createEmpty (double tmin, double tmax, long numberOfFormants);
+FormantGrid FormantGrid_createEmpty (double tmin, double tmax, long numberOfFormants);
 
-autoFormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
+FormantGrid FormantGrid_create (double tmin, double tmax, long numberOfFormants,
 	double initialFirstFormant, double initialFormantSpacing,
 	double initialFirstBandwidth, double initialBandwidthSpacing);
 
-double FormantGrid_getFormantAtTime (FormantGrid me, long formantNumber, double time);
-double FormantGrid_getBandwidthAtTime (FormantGrid me, long formantNumber, double time);
+double FormantGrid_getFormantAtTime (FormantGrid me, long iformant, double t);
+double FormantGrid_getBandwidthAtTime (FormantGrid me, long iformant, double t);
 
-void FormantGrid_addFormantPoint (FormantGrid me, long formantNumber, double time, double value);
-void FormantGrid_addBandwidthPoint (FormantGrid me, long formantNumber, double time, double value);
-void FormantGrid_removeFormantPointsBetween (FormantGrid me, long formantNumber, double tmin, double tmax);
-void FormantGrid_removeBandwidthPointsBetween (FormantGrid me, long formantNumber, double tmin, double tmax);
+void FormantGrid_addFormantPoint (FormantGrid me, long iformant, double t, double value);
+void FormantGrid_addBandwidthPoint (FormantGrid me, long iformant, double t, double value);
+void FormantGrid_removeFormantPointsBetween (FormantGrid me, long iformant, double tmin, double tmax);
+void FormantGrid_removeBandwidthPointsBetween (FormantGrid me, long iformant, double tmin, double tmax);
 
 void Sound_FormantGrid_filter_inline (Sound me, FormantGrid formantGrid);
-autoSound Sound_FormantGrid_filter (Sound me, FormantGrid formantGrid);
-autoSound Sound_FormantGrid_filter_noscale (Sound me, FormantGrid formantGrid);
+Sound Sound_FormantGrid_filter (Sound me, FormantGrid formantGrid);
+Sound Sound_FormantGrid_filter_noscale (Sound me, FormantGrid formantGrid);
 
-autoSound FormantGrid_to_Sound (FormantGrid me, double samplingFrequency,
+Sound FormantGrid_to_Sound (FormantGrid me, double samplingFrequency,
 	double tStart, double f0Start, double tMid, double f0Mid, double tEnd, double f0End,
 	double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2);
 void FormantGrid_playPart (FormantGrid me, double tmin, double tmax, double samplingFrequency,
 	double tStart, double f0Start, double tMid, double f0Mid, double tEnd, double f0End,
 	double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2,
-	Sound_PlayCallback playCallback, Thing playBoss);
+	int (*playCallback) (void *playClosure, int phase, double tmin, double tmax, double t), void *playClosure);
 
 void FormantGrid_formula_frequencies (FormantGrid me, const char32 *expression, Interpreter interpreter, FormantGrid thee);
 void FormantGrid_formula_bandwidths (FormantGrid me, const char32 *expression, Interpreter interpreter, FormantGrid thee);
 
-autoFormantGrid Formant_downto_FormantGrid (Formant me);
-autoFormant FormantGrid_to_Formant (FormantGrid me, double dt, double intensity);
+FormantGrid Formant_downto_FormantGrid (Formant me);
+Formant FormantGrid_to_Formant (FormantGrid me, double dt, double intensity);
 
-autoSound Sound_Formant_filter (Sound me, Formant formant);
-autoSound Sound_Formant_filter_noscale (Sound me, Formant formant);
+Sound Sound_Formant_filter (Sound me, Formant formant);
+Sound Sound_Formant_filter_noscale (Sound me, Formant formant);
 
 /* End of file FormantGrid.h */
 #endif
diff --git a/fon/FormantGridEditor.cpp b/fon/FormantGridEditor.cpp
index e3fb9b9..abcaaed 100644
--- a/fon/FormantGridEditor.cpp
+++ b/fon/FormantGridEditor.cpp
@@ -32,31 +32,34 @@ Thing_implement (FormantGridEditor, FunctionEditor, 0);
 
 /********** MENU COMMANDS **********/
 
-static void menu_cb_removePoints (FormantGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removePoints (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
 	Editor_save (me, U"Remove point(s)");
 	FormantGrid grid = (FormantGrid) my data;
-	OrderedOf<structRealTier>* tiers = ( my editingBandwidths ? & grid -> bandwidths : & grid -> formants );
-	RealTier tier = tiers->at [my selectedFormant];
+	Ordered tiers = my editingBandwidths ? grid -> bandwidths : grid -> formants;
+	RealTier tier = (RealTier) tiers -> item [my selectedFormant];
 	if (my d_startSelection == my d_endSelection)
-		AnyTier_removePointNear (tier->asAnyTier(), my d_startSelection);
+		AnyTier_removePointNear (tier, my d_startSelection);
 	else
-		AnyTier_removePointsBetween (tier->asAnyTier(), my d_startSelection, my d_endSelection);
+		AnyTier_removePointsBetween (tier, my d_startSelection, my d_endSelection);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAtCursor (FormantGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPointAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
 	Editor_save (me, U"Add point");
 	FormantGrid grid = (FormantGrid) my data;
-	OrderedOf<structRealTier>* tiers = ( my editingBandwidths ? & grid -> bandwidths : & grid -> formants );
-	RealTier tier = tiers->at [my selectedFormant];
+	Ordered tiers = my editingBandwidths ? grid -> bandwidths : grid -> formants;
+	RealTier tier = (RealTier) tiers -> item [my selectedFormant];
 	RealTier_addPoint (tier, 0.5 * (my d_startSelection + my d_endSelection), my ycursor);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAt (FormantGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add point", nullptr)
+static void menu_cb_addPointAt (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
+	EDITOR_FORM (U"Add point", 0)
 		REAL (U"Time (s)", U"0.0")
 		POSITIVE (U"Frequency (Hz)", U"200.0")
 	EDITOR_OK
@@ -65,16 +68,17 @@ static void menu_cb_addPointAt (FormantGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_DO
 		Editor_save (me, U"Add point");
 		FormantGrid grid = (FormantGrid) my data;
-		OrderedOf<structRealTier>* tiers = ( my editingBandwidths ? & grid -> bandwidths : & grid -> formants );
-		RealTier tier = tiers->at [my selectedFormant];
+		Ordered tiers = my editingBandwidths ? grid -> bandwidths : grid -> formants;
+		RealTier tier = (RealTier) tiers -> item [my selectedFormant];
 		RealTier_addPoint (tier, GET_REAL (U"Time"), GET_REAL (U"Frequency"));
 		FunctionEditor_redraw (me);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_setFormantRange (FormantGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Set formant range", nullptr)
+static void menu_cb_setFormantRange (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
+	EDITOR_FORM (U"Set formant range", 0)
 		REAL (U"Minimum formant (Hz)", my default_formantFloor   ())
 		REAL (U"Maximum formant (Hz)", my default_formantCeiling ())
 	EDITOR_OK
@@ -87,8 +91,9 @@ static void menu_cb_setFormantRange (FormantGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_setBandwidthRange (FormantGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Set bandwidth range", nullptr)
+static void menu_cb_setBandwidthRange (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
+	EDITOR_FORM (U"Set bandwidth range", 0)
 		REAL (U"Minimum bandwidth (Hz)", my default_bandwidthFloor   ())
 		REAL (U"Maximum bandwidth (Hz)", my default_bandwidthCeiling ())
 	EDITOR_OK
@@ -101,7 +106,8 @@ static void menu_cb_setBandwidthRange (FormantGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_showBandwidths (FormantGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showBandwidths (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
 	my editingBandwidths = ! my editingBandwidths;
 	GuiMenuItem_check (my d_bandwidthsToggle, my editingBandwidths);
 	FunctionEditor_redraw (me);
@@ -109,24 +115,25 @@ static void menu_cb_showBandwidths (FormantGridEditor me, EDITOR_ARGS_DIRECT) {
 
 static void selectFormantOrBandwidth (FormantGridEditor me, long iformant) {
 	FormantGrid grid = (FormantGrid) my data;
-	long numberOfFormants = grid -> formants.size;
+	long numberOfFormants = grid -> formants -> size;
 	if (iformant > numberOfFormants)
 		Melder_throw (U"Cannot select formant ", iformant, U", because the FormantGrid has only ", numberOfFormants, U" formants.");
 	my selectedFormant = iformant;
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_selectFirst   (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 1); }
-static void menu_cb_selectSecond  (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 2); }
-static void menu_cb_selectThird   (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 3); }
-static void menu_cb_selectFourth  (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 4); }
-static void menu_cb_selectFifth   (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 5); }
-static void menu_cb_selectSixth   (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 6); }
-static void menu_cb_selectSeventh (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 7); }
-static void menu_cb_selectEighth  (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 8); }
-static void menu_cb_selectNinth   (FormantGridEditor me, EDITOR_ARGS_DIRECT) { selectFormantOrBandwidth (me, 9); }
-static void menu_cb_selectFormantOrBandwidth (FormantGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Select formant or bandwidth", nullptr)
+static void menu_cb_selectFirst   (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 1); }
+static void menu_cb_selectSecond  (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 2); }
+static void menu_cb_selectThird   (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 3); }
+static void menu_cb_selectFourth  (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 4); }
+static void menu_cb_selectFifth   (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 5); }
+static void menu_cb_selectSixth   (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 6); }
+static void menu_cb_selectSeventh (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 7); }
+static void menu_cb_selectEighth  (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 8); }
+static void menu_cb_selectNinth   (EDITOR_ARGS) { EDITOR_IAM (FormantGridEditor); selectFormantOrBandwidth (me, 9); }
+static void menu_cb_selectFormantOrBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
+	EDITOR_FORM (U"Select formant or bandwidth", 0)
 		NATURAL (U"Formant number", U"1")
 	EDITOR_OK
 		SET_INTEGER (U"Formant number", my selectedFormant)
@@ -136,8 +143,9 @@ static void menu_cb_selectFormantOrBandwidth (FormantGridEditor me, EDITOR_ARGS_
 	EDITOR_END
 }
 
-static void menu_cb_pitchSettings (FormantGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Source pitch settings", nullptr)
+static void menu_cb_pitchSettings (EDITOR_ARGS) {
+	EDITOR_IAM (FormantGridEditor);
+	EDITOR_FORM (U"Source pitch settings", 0)
 		LABEL (U"", U"These settings apply to the pitch curve")
 		LABEL (U"", U"that you hear when playing the FormantGrid.")
 		REAL     (U"Starting time",       my default_source_pitch_tStart  ())
@@ -169,7 +177,7 @@ void structFormantGridEditor :: v_createMenus () {
 	our d_bandwidthsToggle = EditorMenu_addCommand (menu, U"Show bandwidths", GuiMenu_CHECKBUTTON, menu_cb_showBandwidths);
 	EditorMenu_addCommand (menu, U"Set formant range...", 0, menu_cb_setFormantRange);
 	EditorMenu_addCommand (menu, U"Set bandwidth range...", 0, menu_cb_setBandwidthRange);
-	EditorMenu_addCommand (menu, U"-- select formant --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- select formant --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Select first", '1', menu_cb_selectFirst);
 	EditorMenu_addCommand (menu, U"Select second", '2', menu_cb_selectSecond);
 	EditorMenu_addCommand (menu, U"Select third", '3', menu_cb_selectThird);
@@ -183,7 +191,7 @@ void structFormantGridEditor :: v_createMenus () {
 	menu = Editor_addMenu (this, U"Point", 0);
 	EditorMenu_addCommand (menu, U"Add point at cursor", 'T', menu_cb_addPointAtCursor);
 	EditorMenu_addCommand (menu, U"Add point at...", 0, menu_cb_addPointAt);
-	EditorMenu_addCommand (menu, U"-- remove point --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- remove point --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Remove point(s)", GuiMenu_OPTION + 'T', menu_cb_removePoints);
 	if (our v_hasSourceMenu ()) {
 		menu = Editor_addMenu (this, U"Source", 0);
@@ -196,128 +204,130 @@ void structFormantGridEditor :: v_createMenus () {
 
 void structFormantGridEditor :: v_draw () {
 	FormantGrid grid = (FormantGrid) our data;
-	OrderedOf<structRealTier>* tiers = ( our editingBandwidths ? & grid -> bandwidths : & grid -> formants );
-	RealTier selectedTier = tiers->at [our selectedFormant];
+	Ordered tiers = our editingBandwidths ? grid -> bandwidths : grid -> formants;
+	RealTier selectedTier = (RealTier) tiers -> item [selectedFormant];
 	double ymin = our editingBandwidths ? our p_bandwidthFloor   : our p_formantFloor;
 	double ymax = our editingBandwidths ? our p_bandwidthCeiling : our p_formantCeiling;
-	Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, ymin, ymax);
-	Graphics_setColour (our d_graphics.get(), Graphics_RED);
-	Graphics_line (our d_graphics.get(), our d_startWindow, our ycursor, our d_endWindow, our ycursor);
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-	Graphics_text (our d_graphics.get(), our d_startWindow, our ycursor, Melder_float (Melder_half (our ycursor)));
-	Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_TOP);
-	Graphics_text (our d_graphics.get(), our d_endWindow, ymax, Melder_float (Melder_half (ymax)), U" Hz");
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-	Graphics_text (our d_graphics.get(), our d_endWindow, ymin, Melder_float (Melder_half (ymin)), U" Hz");
-	Graphics_setLineWidth (our d_graphics.get(), 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_GREY);
-	for (long iformant = 1; iformant <= grid -> formants.size; iformant ++) if (iformant != our selectedFormant) {
-		RealTier tier = tiers->at [iformant];
-		long imin = AnyTier_timeToHighIndex (tier->asAnyTier(), our d_startWindow);
-		long imax = AnyTier_timeToLowIndex (tier->asAnyTier(), our d_endWindow);
-		long n = tier -> points.size;
+	Graphics_setColour (our d_graphics, Graphics_WHITE);
+	Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, ymin, ymax);
+	Graphics_setColour (our d_graphics, Graphics_RED);
+	Graphics_line (our d_graphics, our d_startWindow, our ycursor, our d_endWindow, our ycursor);
+	Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+	Graphics_text (our d_graphics, our d_startWindow, our ycursor, Melder_float (Melder_half (our ycursor)));
+	Graphics_setColour (our d_graphics, Graphics_BLUE);
+	Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_TOP);
+	Graphics_text (our d_graphics, our d_endWindow, ymax, Melder_float (Melder_half (ymax)), U" Hz");
+	Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_HALF);
+	Graphics_text (our d_graphics, our d_endWindow, ymin, Melder_float (Melder_half (ymin)), U" Hz");
+	Graphics_setLineWidth (our d_graphics, 1);
+	Graphics_setColour (our d_graphics, Graphics_GREY);
+	for (long iformant = 1; iformant <= grid -> formants -> size; iformant ++) if (iformant != our selectedFormant) {
+		RealTier tier = (RealTier) tiers -> item [iformant];
+		long imin = AnyTier_timeToHighIndex (tier, our d_startWindow);
+		long imax = AnyTier_timeToLowIndex (tier, our d_endWindow);
+		long n = tier -> points -> size;
 		if (n == 0) {
 		} else if (imax < imin) {
 			double yleft = RealTier_getValueAtTime (tier, our d_startWindow);
 			double yright = RealTier_getValueAtTime (tier, our d_endWindow);
-			Graphics_line (our d_graphics.get(), our d_startWindow, yleft, our d_endWindow, yright);
+			Graphics_line (our d_graphics, our d_startWindow, yleft, our d_endWindow, yright);
 		} else for (long i = imin; i <= imax; i ++) {
-			RealPoint point = tier -> points.at [i];
+			RealPoint point = (RealPoint) tier -> points -> item [i];
 			double t = point -> number, y = point -> value;
-			Graphics_fillCircle_mm (our d_graphics.get(), t, y, 2.0);
+			Graphics_fillCircle_mm (our d_graphics, t, y, 2);
 			if (i == 1)
-				Graphics_line (our d_graphics.get(), our d_startWindow, y, t, y);
+				Graphics_line (our d_graphics, our d_startWindow, y, t, y);
 			else if (i == imin)
-				Graphics_line (our d_graphics.get(), t, y, our d_startWindow, RealTier_getValueAtTime (tier, our d_startWindow));
+				Graphics_line (our d_graphics, t, y, our d_startWindow, RealTier_getValueAtTime (tier, our d_startWindow));
 			if (i == n)
-				Graphics_line (our d_graphics.get(), t, y, our d_endWindow, y);
+				Graphics_line (our d_graphics, t, y, our d_endWindow, y);
 			else if (i == imax)
-				Graphics_line (our d_graphics.get(), t, y, our d_endWindow, RealTier_getValueAtTime (tier, our d_endWindow));
+				Graphics_line (our d_graphics, t, y, our d_endWindow, RealTier_getValueAtTime (tier, our d_endWindow));
 			else {
-				RealPoint pointRight = tier -> points.at [i + 1];
-				Graphics_line (our d_graphics.get(), t, y, pointRight -> number, pointRight -> value);
+				RealPoint pointRight = (RealPoint) tier -> points -> item [i + 1];
+				Graphics_line (our d_graphics, t, y, pointRight -> number, pointRight -> value);
 			}
 		}
 	}
-	Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
-	long ifirstSelected = AnyTier_timeToHighIndex (selectedTier->asAnyTier(), our d_startSelection);
-	long ilastSelected = AnyTier_timeToLowIndex (selectedTier->asAnyTier(), our d_endSelection);
-	long n = selectedTier -> points.size;
-	long imin = AnyTier_timeToHighIndex (selectedTier->asAnyTier(), our d_startWindow);
-	long imax = AnyTier_timeToLowIndex (selectedTier->asAnyTier(), our d_endWindow);
-	Graphics_setLineWidth (our d_graphics.get(), 2.0);
+	Graphics_setColour (our d_graphics, Graphics_BLUE);
+	long ifirstSelected = AnyTier_timeToHighIndex (selectedTier, our d_startSelection);
+	long ilastSelected = AnyTier_timeToLowIndex (selectedTier, our d_endSelection);
+	long n = selectedTier -> points -> size;
+	long imin = AnyTier_timeToHighIndex (selectedTier, our d_startWindow);
+	long imax = AnyTier_timeToLowIndex (selectedTier, our d_endWindow);
+	Graphics_setLineWidth (our d_graphics, 2);
 	if (n == 0) {
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), 0.5 * (our d_startWindow + our d_endWindow),
+		Graphics_setTextAlignment (our d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (our d_graphics, 0.5 * (our d_startWindow + our d_endWindow),
 			0.5 * (ymin + ymax), U"(no points in selected formant tier)");
 	} else if (imax < imin) {
 		double yleft = RealTier_getValueAtTime (selectedTier, our d_startWindow);
 		double yright = RealTier_getValueAtTime (selectedTier, our d_endWindow);
-		Graphics_line (our d_graphics.get(), our d_startWindow, yleft, our d_endWindow, yright);
+		Graphics_line (our d_graphics, our d_startWindow, yleft, our d_endWindow, yright);
 	} else for (long i = imin; i <= imax; i ++) {
-		RealPoint point = selectedTier -> points.at [i];
+		RealPoint point = (RealPoint) selectedTier -> points -> item [i];
 		double t = point -> number, y = point -> value;
 		if (i >= ifirstSelected && i <= ilastSelected)
-			Graphics_setColour (our d_graphics.get(), Graphics_RED);
-		Graphics_fillCircle_mm (our d_graphics.get(), t, y, 3);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
+			Graphics_setColour (our d_graphics, Graphics_RED);
+		Graphics_fillCircle_mm (our d_graphics, t, y, 3);
+		Graphics_setColour (our d_graphics, Graphics_BLUE);
 		if (i == 1)
-			Graphics_line (our d_graphics.get(), our d_startWindow, y, t, y);
+			Graphics_line (our d_graphics, our d_startWindow, y, t, y);
 		else if (i == imin)
-			Graphics_line (our d_graphics.get(), t, y, our d_startWindow, RealTier_getValueAtTime (selectedTier, our d_startWindow));
+			Graphics_line (our d_graphics, t, y, our d_startWindow, RealTier_getValueAtTime (selectedTier, our d_startWindow));
 		if (i == n)
-			Graphics_line (our d_graphics.get(), t, y, our d_endWindow, y);
+			Graphics_line (our d_graphics, t, y, our d_endWindow, y);
 		else if (i == imax)
-			Graphics_line (our d_graphics.get(), t, y, our d_endWindow, RealTier_getValueAtTime (selectedTier, our d_endWindow));
+			Graphics_line (our d_graphics, t, y, our d_endWindow, RealTier_getValueAtTime (selectedTier, our d_endWindow));
 		else {
-			RealPoint pointRight = selectedTier -> points.at [i + 1];
-			Graphics_line (our d_graphics.get(), t, y, pointRight -> number, pointRight -> value);
+			RealPoint pointRight = (RealPoint) selectedTier -> points -> item [i + 1];
+			Graphics_line (our d_graphics, t, y, pointRight -> number, pointRight -> value);
 		}
 	}
-	Graphics_setLineWidth (our d_graphics.get(), 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
+	Graphics_setLineWidth (our d_graphics, 1);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
 }
 
-static void drawWhileDragging (FormantGridEditor me, double /* xWC */, double /* yWC */, long first, long last, double dt, double dy) {
+static void drawWhileDragging (FormantGridEditor me, double xWC, double yWC, long first, long last, double dt, double dy) {
 	FormantGrid grid = (FormantGrid) my data;
-	OrderedOf<structRealTier>* tiers = my editingBandwidths ? & grid -> bandwidths : & grid -> formants;
-	RealTier tier = tiers->at [my selectedFormant];
+	Ordered tiers = my editingBandwidths ? grid -> bandwidths : grid -> formants;
+	RealTier tier = (RealTier) tiers -> item [my selectedFormant];
 	double ymin = my editingBandwidths ? my p_bandwidthFloor   : my p_formantFloor;
 	double ymax = my editingBandwidths ? my p_bandwidthCeiling : my p_formantCeiling;
+	(void) xWC;
+	(void) yWC;
 
 	/*
 	 * Draw all selected points as magenta empty circles, if inside the window.
 	 */
 	for (long i = first; i <= last; i ++) {
-		RealPoint point = tier -> points.at [i];
+		RealPoint point = (RealPoint) tier -> points -> item [i];
 		double t = point -> number + dt, y = point -> value + dy;
 		if (t >= my d_startWindow && t <= my d_endWindow)
-			Graphics_circle_mm (my d_graphics.get(), t, y, 3.0);
+			Graphics_circle_mm (my d_graphics, t, y, 3);
 	}
 
 	if (last == first) {
 		/*
 		 * Draw a crosshair with time and y.
 		 */
-		RealPoint point = tier -> points.at [first];
+		RealPoint point = (RealPoint) tier -> points -> item [first];
 		double t = point -> number + dt, y = point -> value + dy;
-		Graphics_line (my d_graphics.get(), t, ymin, t, ymax - Graphics_dyMMtoWC (my d_graphics.get(), 4.0));
-		Graphics_setTextAlignment (my d_graphics.get(), kGraphics_horizontalAlignment_CENTRE, Graphics_TOP);
-		Graphics_text (my d_graphics.get(), t, ymax, Melder_fixed (t, 6));
-		Graphics_line (my d_graphics.get(), my d_startWindow, y, my d_endWindow, y);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-		Graphics_text (my d_graphics.get(), my d_startWindow, y, Melder_fixed (y, 6));
+		Graphics_line (my d_graphics, t, ymin, t, ymax - Graphics_dyMMtoWC (my d_graphics, 4.0));
+		Graphics_setTextAlignment (my d_graphics, kGraphics_horizontalAlignment_CENTRE, Graphics_TOP);
+		Graphics_text (my d_graphics, t, ymax, Melder_fixed (t, 6));
+		Graphics_line (my d_graphics, my d_startWindow, y, my d_endWindow, y);
+		Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_text (my d_graphics, my d_startWindow, y, Melder_fixed (y, 6));
 	}
 }
 
-bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	FormantGrid grid = (FormantGrid) our data;
-	OrderedOf<structRealTier>* tiers = our editingBandwidths ? & grid -> bandwidths : & grid -> formants;
-	RealTier tier = tiers->at [selectedFormant];
+	Ordered tiers = editingBandwidths ? grid -> bandwidths : grid -> formants;
+	RealTier tier = (RealTier) tiers -> item [selectedFormant];
 	double ymin = our editingBandwidths ? our p_bandwidthFloor   : our p_formantFloor;
 	double ymax = our editingBandwidths ? our p_bandwidthCeiling : our p_formantCeiling;
 	long inearestPoint, ifirstSelected, ilastSelected;
@@ -330,18 +340,18 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	 */
 	//d_startSelection = d_endSelection = xWC;
 	our ycursor = (1.0 - yWC) * ymin + yWC * ymax;
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, ymin, ymax);
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, ymin, ymax);
 	yWC = our ycursor;
 
 	/*
 	 * Clicked on a point?
 	 */
-	inearestPoint = AnyTier_timeToNearestIndex (tier->asAnyTier(), xWC);
+	inearestPoint = AnyTier_timeToNearestIndex (tier, xWC);
 	if (inearestPoint == 0) {
 		return FormantGridEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
-	nearestPoint = tier -> points.at [inearestPoint];
-	if (Graphics_distanceWCtoMM (our d_graphics.get(), xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
+	nearestPoint = (RealPoint) tier -> points -> item [inearestPoint];
+	if (Graphics_distanceWCtoMM (our d_graphics, xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
 		return our FormantGridEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
 
@@ -351,8 +361,8 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	draggingSelection = shiftKeyPressed &&
 		nearestPoint -> number > our d_startSelection && nearestPoint -> number < our d_endSelection;
 	if (draggingSelection) {
-		ifirstSelected = AnyTier_timeToHighIndex (tier->asAnyTier(), our d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (tier->asAnyTier(), our d_endSelection);
+		ifirstSelected = AnyTier_timeToHighIndex (tier, our d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (tier, our d_endSelection);
 		Editor_save (this, U"Drag points");
 	} else {
 		ifirstSelected = ilastSelected = inearestPoint;
@@ -362,11 +372,11 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	/*
 	 * Drag.
 	 */
-	Graphics_xorOn (our d_graphics.get(), Graphics_MAROON);
+	Graphics_xorOn (our d_graphics, Graphics_MAROON);
 	drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
-	while (Graphics_mouseStillDown (our d_graphics.get())) {
+	while (Graphics_mouseStillDown (our d_graphics)) {
 		double xWC_new, yWC_new;
-		Graphics_getMouseLocation (our d_graphics.get(), & xWC_new, & yWC_new);
+		Graphics_getMouseLocation (our d_graphics, & xWC_new, & yWC_new);
 		if (xWC_new != xWC || yWC_new != yWC) {
 			drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 			dt += xWC_new - xWC, df += yWC_new - yWC;
@@ -374,7 +384,7 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 			drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 		}
 	}
-	Graphics_xorOff (our d_graphics.get());
+	Graphics_xorOff (our d_graphics);
 
 	/*
 	 * Dragged inside window?
@@ -384,20 +394,21 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	/*
 	 * Points not dragged past neighbours?
 	 */
-	double newTime = tier -> points.at [ifirstSelected] -> number + dt;
+	RealPoint *points = (RealPoint *) tier -> points -> item;
+	double newTime = points [ifirstSelected] -> number + dt;
 	if (newTime < our tmin) return 1;   // outside domain
-	if (ifirstSelected > 1 && newTime <= tier -> points.at [ifirstSelected - 1] -> number)
+	if (ifirstSelected > 1 && newTime <= points [ifirstSelected - 1] -> number)
 		return 1;   // past left neighbour
-	newTime = tier -> points.at [ilastSelected] -> number + dt;
+	newTime = points [ilastSelected] -> number + dt;
 	if (newTime > our tmax) return 1;   // outside domain
-	if (ilastSelected < tier -> points.size && newTime >= tier -> points.at [ilastSelected + 1] -> number)
-		return FunctionEditor_UPDATE_NEEDED;   // past right neighbour
+	if (ilastSelected < tier -> points -> size && newTime >= points [ilastSelected + 1] -> number)
+		return 1;   // past right neighbour
 
 	/*
 	 * Drop.
 	 */
 	for (long i = ifirstSelected; i <= ilastSelected; i ++) {
-		RealPoint point = tier -> points.at [i];
+		RealPoint point = (RealPoint) tier -> points -> item [i];
 		point -> number += dt;
 		point -> value += df;
 	}
@@ -411,7 +422,7 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 		/*
 		 * Move crosshair to only selected formant point.
 		 */
-		RealPoint point = tier -> points.at [ifirstSelected];
+		RealPoint point = (RealPoint) tier -> points -> item [ifirstSelected];
 		our d_startSelection = our d_endSelection = point -> number;
 		our ycursor = point -> value;
 	} else {
@@ -423,7 +434,7 @@ bool structFormantGridEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	}
 
 	Editor_broadcastDataChanged (this);
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;   // update needed
 }
 
 void structFormantGridEditor :: v_play (double tmin, double tmax) {
@@ -438,18 +449,18 @@ void structFormantGridEditor :: v_play (double tmin, double tmax) {
 }
 
 void FormantGridEditor_init (FormantGridEditor me, const char32 *title, FormantGrid data) {
-	Melder_assert (data);
+	Melder_assert (data != NULL);
 	Melder_assert (Thing_isa (data, classFormantGrid));
 	FunctionEditor_init (me, title, data);
 	my ycursor = 0.382 * my p_formantFloor + 0.618 * my p_formantCeiling;
 	my selectedFormant = 1;
 }
 
-autoFormantGridEditor FormantGridEditor_create (const char32 *title, FormantGrid data) {
+FormantGridEditor FormantGridEditor_create (const char32 *title, FormantGrid data) {
 	try {
 		autoFormantGridEditor me = Thing_new (FormantGridEditor);
-		FormantGridEditor_init (me.get(), title, data);
-		return me;
+		FormantGridEditor_init (me.peek(), title, data);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantGrid window not created.");
 	}
diff --git a/fon/FormantGridEditor.h b/fon/FormantGridEditor.h
index 097f13e..4d2cbb9 100644
--- a/fon/FormantGridEditor.h
+++ b/fon/FormantGridEditor.h
@@ -32,7 +32,7 @@ Thing_define (FormantGridEditor, FunctionEditor) {
 		override;
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -44,7 +44,7 @@ Thing_define (FormantGridEditor, FunctionEditor) {
 
 void FormantGridEditor_init (FormantGridEditor me, const char32 *title, FormantGrid data);
 
-autoFormantGridEditor FormantGridEditor_create (const char32 *title, FormantGrid data);
+FormantGridEditor FormantGridEditor_create (const char32 *title, FormantGrid data);
 
 /* End of file FormantGridEditor.h */
 #endif
diff --git a/fon/FormantGrid_def.h b/fon/FormantGrid_def.h
index 33ee7b8..398b004 100644
--- a/fon/FormantGrid_def.h
+++ b/fon/FormantGrid_def.h
@@ -20,8 +20,8 @@
 #define ooSTRUCT FormantGrid
 oo_DEFINE_CLASS (FormantGrid, Function)
 
-	oo_COLLECTION_OF (OrderedOf, formants, RealTier, 0)
-	oo_COLLECTION_OF (OrderedOf, bandwidths, RealTier, 0)
+	oo_COLLECTION (Ordered, formants, RealTier, 0)
+	oo_COLLECTION (Ordered, bandwidths, RealTier, 0)
 
 	#if oo_DECLARING
 		bool v_hasGetVector ()
diff --git a/fon/FormantTier.cpp b/fon/FormantTier.cpp
index b6fe0b7..700e34c 100644
--- a/fon/FormantTier.cpp
+++ b/fon/FormantTier.cpp
@@ -1,6 +1,6 @@
 /* FormantTier.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,98 +49,99 @@
 #include "oo_DESCRIPTION.h"
 #include "FormantTier_def.h"
 
-Thing_implement (FormantPoint, Daata, 0);
+Thing_implement (FormantPoint, Data, 0);
 
-autoFormantPoint FormantPoint_create (double time) {
+FormantPoint FormantPoint_create (double time) {
 	try {
 		autoFormantPoint me = Thing_new (FormantPoint);
-		my number = time;
-		return me;
+		my time = time;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Formant point not created.");
 	}
 }
 
-Thing_implement (FormantTier, AnyTier, 0);
+Thing_implement (FormantTier, Function, 0);
 
-autoFormantTier FormantTier_create (double tmin, double tmax) {
+FormantTier FormantTier_create (double tmin, double tmax) {
 	try {
 		autoFormantTier me = Thing_new (FormantTier);
+		my points = SortedSetOfDouble_create ();
 		my xmin = tmin;
 		my xmax = tmax;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FormantTier not created.");
 	}
 }
 
 double FormantTier_getValueAtTime (FormantTier me, int iformant, double t) {
-	long n = my points.size;
+	long n = my points -> size;
 	if (n == 0 || iformant < 1) return NUMundefined;
-	FormantPoint pointRight = my points.at [1];
-	if (t <= pointRight -> number) {
+	FormantPoint pointRight = (FormantPoint) my points -> item [1];
+	if (t <= pointRight -> time) {
 		if (iformant > pointRight -> numberOfFormants) return NUMundefined;
-		return pointRight -> formant [iformant-1];   // constant extrapolation
+		return pointRight -> formant [iformant-1];   /* Constant extrapolation. */
 	}
-	FormantPoint pointLeft = my points.at [n];
-	if (t >= pointLeft -> number) {
+	FormantPoint pointLeft = (FormantPoint) my points -> item [n];
+	if (t >= pointLeft -> time) {
 		if (iformant > pointLeft -> numberOfFormants) return NUMundefined;
-		return pointLeft -> formant [iformant-1];   // constant extrapolation
+		return pointLeft -> formant [iformant-1];   /* Constant extrapolation. */
 	}
 	Melder_assert (n >= 2);
-	long ileft = AnyTier_timeToLowIndex (me->asAnyTier(), t), iright = ileft + 1;
+	long ileft = AnyTier_timeToLowIndex (me, t), iright = ileft + 1;
 	Melder_assert (ileft >= 1 && iright <= n);
-	pointLeft = my points.at [ileft];
-	pointRight = my points.at [iright];
-	double tleft = pointLeft -> number;
+	pointLeft = (FormantPoint) my points -> item [ileft];
+	pointRight = (FormantPoint) my points -> item [iright];
+	double tleft = pointLeft -> time;
 	double fleft = iformant > pointLeft -> numberOfFormants ? NUMundefined : pointLeft -> formant [iformant-1];
-	double tright = pointRight -> number;
+	double tright = pointRight -> time;
 	double fright = iformant > pointRight -> numberOfFormants ? NUMundefined : pointRight -> formant [iformant-1];
 	return fleft == NUMundefined ? fright == NUMundefined ? NUMundefined : fright
 		: fright == NUMundefined ? fleft
-		: t == tright ? fright   // be very accurate
-		: tleft == tright ? 0.5 * (fleft + fright)   // unusual, but possible; no preference
-		: fleft + (t - tleft) * (fright - fleft) / (tright - tleft);   // linear interpolation
+		: t == tright ? fright   /* Be very accurate. */
+		: tleft == tright ? 0.5 * (fleft + fright)   /* Unusual, but possible; no preference. */
+		: fleft + (t - tleft) * (fright - fleft) / (tright - tleft);   /* Linear interpolation. */
 }
 
 double FormantTier_getBandwidthAtTime (FormantTier me, int iformant, double t) {
-	long n = my points.size;
+	long n = my points -> size;
 	if (n == 0) return 0.0;
-	FormantPoint pointRight = my points.at [1];
-	if (t <= pointRight -> number) {
+	FormantPoint pointRight = (FormantPoint) my points -> item [1];
+	if (t <= pointRight -> time) {
 		if (iformant > pointRight -> numberOfFormants) return NUMundefined;
-		return pointRight -> bandwidth [iformant-1];   // constant extrapolation
+		return pointRight -> bandwidth [iformant-1];   /* Constant extrapolation. */
 	}
-	FormantPoint pointLeft = my points.at [n];
-	if (t >= pointLeft -> number) {
+	FormantPoint pointLeft = (FormantPoint) my points -> item [n];
+	if (t >= pointLeft -> time) {
 		if (iformant > pointLeft -> numberOfFormants) return NUMundefined;
-		return pointLeft -> bandwidth [iformant-1];   // constant extrapolation
+		return pointLeft -> bandwidth [iformant-1];   /* Constant extrapolation. */
 	}
 	Melder_assert (n >= 2);
-	long ileft = AnyTier_timeToLowIndex (me->asAnyTier(), t), iright = ileft + 1;
+	long ileft = AnyTier_timeToLowIndex (me, t), iright = ileft + 1;
 	Melder_assert (ileft >= 1 && iright <= n);
-	pointLeft = my points.at [ileft];
-	pointRight = my points.at [iright];
-	double tleft = pointLeft -> number;
+	pointLeft = (FormantPoint) my points -> item [ileft];
+	pointRight = (FormantPoint) my points -> item [iright];
+	double tleft = pointLeft -> time;
 	double fleft = iformant > pointLeft -> numberOfFormants ? NUMundefined : pointLeft -> bandwidth [iformant-1];
-	double tright = pointRight -> number;
+	double tright = pointRight -> time;
 	double fright = iformant > pointRight -> numberOfFormants ? NUMundefined : pointRight -> bandwidth [iformant-1];
 	return fleft == NUMundefined ? fright == NUMundefined ? NUMundefined : fright
 		: fright == NUMundefined ? fleft
-		: t == tright ? fright   // be very accurate
-		: tleft == tright ? 0.5 * (fleft + fright)   // unusual, but possible; no preference
-		: fleft + (t - tleft) * (fright - fleft) / (tright - tleft);   // linear interpolation
+		: t == tright ? fright   /* Be very accurate. */
+		: tleft == tright ? 0.5 * (fleft + fright)   /* Unusual, but possible; no preference. */
+		: fleft + (t - tleft) * (fright - fleft) / (tright - tleft);   /* Linear interpolation. */
 }
 
 void FormantTier_speckle (FormantTier me, Graphics g, double tmin, double tmax, double fmax, int garnish) {
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
 	Graphics_setWindow (g, tmin, tmax, 0.0, fmax);
 	Graphics_setInner (g);
-	long imin = AnyTier_timeToHighIndex (me->asAnyTier(), tmin);
-	long imax = AnyTier_timeToLowIndex (me->asAnyTier(), tmax);
+	long imin = AnyTier_timeToHighIndex (me, tmin);
+	long imax = AnyTier_timeToLowIndex (me, tmax);
 	if (imin > 0) for (long i = imin; i <= imax; i ++) {
-		FormantPoint point = my points.at [i];
-		double t = point -> number;
+		FormantPoint point = (FormantPoint) my points -> item [i];
+		double t = point -> time;
 		for (long j = 1; j <= point -> numberOfFormants; j ++) {
 			double f = point -> formant [j-1];
 			if (f <= fmax) Graphics_speckle (g, t, f);
@@ -149,14 +150,14 @@ void FormantTier_speckle (FormantTier me, Graphics g, double tmin, double tmax,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Frequency (Hz)");
+		Graphics_textBottom (g, TRUE, U"Time (s)");
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+		Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
+		Graphics_textLeft (g, TRUE, U"Frequency (Hz)");
 	}
 }
 
-autoFormantTier Formant_downto_FormantTier (Formant me) {
+FormantTier Formant_downto_FormantTier (Formant me) {
 	try {
 		autoFormantTier thee = FormantTier_create (my xmin, my xmax);
 		for (long i = 1; i <= my nx; i ++) {
@@ -168,15 +169,15 @@ autoFormantTier Formant_downto_FormantTier (Formant me) {
 				point -> formant [j-1] = pair -> frequency;
 				point -> bandwidth [j-1] = pair -> bandwidth;
 			}
-			thy points. addItem_move (point.move());
+			Collection_addItem (thy points, point.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to FormantTier.");
 	}
 }
 
-autoFormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp) {
+FormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp) {
 	try {
 		autoFormantTier temp = Formant_downto_FormantTier (me);
 		autoFormantTier thee = FormantTier_create (pp -> xmin, pp -> xmax);
@@ -185,17 +186,17 @@ autoFormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp
 			autoFormantPoint point = FormantPoint_create (time);
 			long iformant = 1;
 			for (; iformant <= 10; iformant ++) {
-				double value = FormantTier_getValueAtTime (temp.get(), iformant, time);
+				double value = FormantTier_getValueAtTime (temp.peek(), iformant, time);
 				if (value == NUMundefined) break;
 				point -> formant [iformant-1] = value;
-				value = FormantTier_getBandwidthAtTime (temp.get(), iformant, time);
+				value = FormantTier_getBandwidthAtTime (temp.peek(), iformant, time);
 				Melder_assert (value != NUMundefined);
 				point -> bandwidth [iformant-1] = value;
 			}
 			point -> numberOfFormants = iformant - 1;
-			thy points. addItem_move (point.move());
+			Collection_addItem (thy points, point.transfer());
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", pp, U": not converted to FormantTier.");
 	}
@@ -203,8 +204,8 @@ autoFormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp
 
 int FormantTier_getMinNumFormants (FormantTier me) {
 	int minNumFormants = 10;
-	for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-		FormantPoint point = my points.at [ipoint];
+	for (long ipoint = 1; ipoint <= my points -> size; ipoint ++) {
+		FormantPoint point = (FormantPoint) my points -> item [ipoint];
 		if (point -> numberOfFormants < minNumFormants)
 			minNumFormants = point -> numberOfFormants;
 	}
@@ -213,41 +214,41 @@ int FormantTier_getMinNumFormants (FormantTier me) {
 
 int FormantTier_getMaxNumFormants (FormantTier me) {
 	int maxNumFormants = 0;
-	for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-		FormantPoint point = my points.at [ipoint];
+	for (long ipoint = 1; ipoint <= my points -> size; ipoint ++) {
+		FormantPoint point = (FormantPoint) my points -> item [ipoint];
 		if (point -> numberOfFormants > maxNumFormants)
 			maxNumFormants = point -> numberOfFormants;
 	}
 	return maxNumFormants;
 }
 	
-autoTableOfReal FormantTier_downto_TableOfReal (FormantTier me, int includeFormants, int includeBandwidths) {
+TableOfReal FormantTier_downto_TableOfReal (FormantTier me, int includeFormants, int includeBandwidths) {
 	try {
 		int maximumNumberOfFormants = FormantTier_getMaxNumFormants (me);
-		autoTableOfReal thee = TableOfReal_create (my points.size, 1 +
+		autoTableOfReal thee = TableOfReal_create (my points -> size, 1 +
 			( includeFormants ? maximumNumberOfFormants : 0 ) +
 			( includeBandwidths ? maximumNumberOfFormants : 0 ));
-		TableOfReal_setColumnLabel (thee.get(), 1, U"Time");
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"Time");
 		for (long icol = 1, iformant = 1; iformant <= maximumNumberOfFormants; iformant ++) {
 			char32 label [4];
 			if (includeFormants) {
 				Melder_sprint (label,4, U"F", iformant);
-				TableOfReal_setColumnLabel (thee.get(), ++ icol, label);
+				TableOfReal_setColumnLabel (thee.peek(), ++ icol, label);
 			}
 			if (includeBandwidths) {
 				Melder_sprint (label,4, U"B", iformant);
-				TableOfReal_setColumnLabel (thee.get(), ++ icol, label);
+				TableOfReal_setColumnLabel (thee.peek(), ++ icol, label);
 			}
 		}
-		for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-			FormantPoint point = my points.at [ipoint];
-			thy data [ipoint] [1] = point -> number;
+		for (long ipoint = 1; ipoint <= my points -> size; ipoint ++) {
+			FormantPoint point = (FormantPoint) my points -> item [ipoint];
+			thy data [ipoint] [1] = point -> time;
 			for (long icol = 1, iformant = 1; iformant <= maximumNumberOfFormants; iformant ++) {
 				if (includeFormants) thy data [ipoint] [++ icol] = point -> formant [iformant-1];
 				if (includeBandwidths) thy data [ipoint] [++ icol] = point -> bandwidth [iformant-1];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
@@ -255,7 +256,7 @@ autoTableOfReal FormantTier_downto_TableOfReal (FormantTier me, int includeForma
 
 void Sound_FormantTier_filter_inline (Sound me, FormantTier formantTier) {
 	double dt = my dx;
-	if (formantTier -> points.size) for (long iformant = 1; iformant <= 10; iformant ++) {
+	if (formantTier -> points -> size) for (long iformant = 1; iformant <= 10; iformant ++) {
 		for (long isamp = 1; isamp <= my nx; isamp ++) {
 			double t = my x1 + (isamp - 1) * my dx;
 			/*
@@ -268,7 +269,7 @@ void Sound_FormantTier_filter_inline (Sound me, FormantTier formantTier) {
 				double cosomdt = cos (2 * NUMpi * formant * dt);
 				double r = exp (- NUMpi * bandwidth * dt);
 				/* Formants at 0 Hz or the Nyquist are single poles, others are double poles. */
-				if (fabs (cosomdt) > 0.999999) {   // allow for round-off errors
+				if (fabs (cosomdt) > 0.999999) {   /* Allow for round-off errors. */
 					/* single pole: D(z) = 1 - r z^-1 */
 					for (long channel = 1; channel <= my ny; channel ++) {
 						if (isamp > 1) my z [channel] [isamp] += r * my z [channel] [isamp - 1];
@@ -287,22 +288,22 @@ void Sound_FormantTier_filter_inline (Sound me, FormantTier formantTier) {
 	}
 }
 
-autoSound Sound_FormantTier_filter (Sound me, FormantTier formantTier) {
+Sound Sound_FormantTier_filter (Sound me, FormantTier formantTier) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_FormantTier_filter_inline (thee.get(), formantTier);
-		Vector_scale (thee.get(), 0.99);
-		return thee;
+		Sound_FormantTier_filter_inline (thee.peek(), formantTier);
+		Vector_scale (thee.peek(), 0.99);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formantTier, U".");
 	}
 }
 
-autoSound Sound_FormantTier_filter_noscale (Sound me, FormantTier formantTier) {
+Sound Sound_FormantTier_filter_noscale (Sound me, FormantTier formantTier) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_FormantTier_filter_inline (thee.get(), formantTier);
-		return thee;
+		Sound_FormantTier_filter_inline (thee.peek(), formantTier);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered with ", formantTier, U".");
 	}
diff --git a/fon/FormantTier.h b/fon/FormantTier.h
index d67c871..354997d 100644
--- a/fon/FormantTier.h
+++ b/fon/FormantTier.h
@@ -2,7 +2,7 @@
 #define _FormantTier_h_
 /* FormantTier.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,24 +23,25 @@
 #include "Formant.h"
 #include "TableOfReal.h"
 #include "Sound.h"
-#include "AnyTier.h"
 
 #include "FormantTier_def.h"
+oo_CLASS_CREATE (FormantPoint, Data);
+oo_CLASS_CREATE (FormantTier, Function);
 
-autoFormantPoint FormantPoint_create (double time);
-autoFormantTier FormantTier_create (double tmin, double tmax);
+FormantPoint FormantPoint_create (double time);
+FormantTier FormantTier_create (double tmin, double tmax);
 double FormantTier_getValueAtTime (FormantTier me, int iformant, double t);
 double FormantTier_getBandwidthAtTime (FormantTier me, int iformant, double t);
 int FormantTier_getMinNumFormants (FormantTier me);
 int FormantTier_getMaxNumFormants (FormantTier me);
 void FormantTier_speckle (FormantTier me, Graphics g, double tmin, double tmax, double fmax, int garnish);
-autoFormantTier Formant_downto_FormantTier (Formant me);
-autoFormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp);
-autoTableOfReal FormantTier_downto_TableOfReal (FormantTier me, int includeFormants, int includeBandwidths);
+FormantTier Formant_downto_FormantTier (Formant me);
+FormantTier Formant_PointProcess_to_FormantTier (Formant me, PointProcess pp);
+TableOfReal FormantTier_downto_TableOfReal (FormantTier me, int includeFormants, int includeBandwidths);
 
 void Sound_FormantTier_filter_inline (Sound me, FormantTier formantTier);
-autoSound Sound_FormantTier_filter (Sound me, FormantTier formantTier);
-autoSound Sound_FormantTier_filter_noscale (Sound me, FormantTier formantTier);
+Sound Sound_FormantTier_filter (Sound me, FormantTier formantTier);
+Sound Sound_FormantTier_filter_noscale (Sound me, FormantTier formantTier);
 
 /* End of file FormantTier.h */
 #endif
diff --git a/fon/FormantTier_def.h b/fon/FormantTier_def.h
index ed65e59..364e42d 100644
--- a/fon/FormantTier_def.h
+++ b/fon/FormantTier_def.h
@@ -1,6 +1,6 @@
 /* FormantTier_def.h
  *
- * Copyright (C) 1992-2002,2015 Paul Boersma
+ * Copyright (C) 1992-2002 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,8 +19,9 @@
 
 
 #define ooSTRUCT FormantPoint
-oo_DEFINE_CLASS (FormantPoint, AnyPoint)
+oo_DEFINE_CLASS (FormantPoint, Data)
 
+	oo_DOUBLE (time)   /* AnyPoint */
 	oo_INT (numberOfFormants)
 	oo_DOUBLE_ARRAY (formant, 10, numberOfFormants)
 	oo_DOUBLE_ARRAY (bandwidth, 10, numberOfFormants)
@@ -30,13 +31,9 @@ oo_END_CLASS (FormantPoint)
 
 
 #define ooSTRUCT FormantTier
-oo_DEFINE_CLASS (FormantTier, Function)   // a kind of AnyTier though
+oo_DEFINE_CLASS (FormantTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, points, FormantPoint, 0)
-
-	#if oo_DECLARING
-		AnyTier_METHODS
-	#endif
+	oo_COLLECTION (SortedSetOfDouble, points, FormantPoint, 0)
 
 oo_END_CLASS (FormantTier)
 #undef ooSTRUCT
diff --git a/fon/FujisakiPitch.cpp b/fon/FujisakiPitch.cpp
index 6c1148b..a4bd13d 100644
--- a/fon/FujisakiPitch.cpp
+++ b/fon/FujisakiPitch.cpp
@@ -1,6 +1,6 @@
 /* FujisakiPitch.cpp
  *
- * Copyright (C) 2002-2011,2015,2016 Paul Boersma
+ * Copyright (C) 2002-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -46,12 +46,12 @@
 
 Thing_implement (FujisakiCommand, Function, 0);
 
-autoFujisakiCommand FujisakiCommand_create (double tmin, double tmax, double amplitude) {
+FujisakiCommand FujisakiCommand_create (double tmin, double tmax, double amplitude) {
 	try {
 		autoFujisakiCommand me = Thing_new (FujisakiCommand);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my amplitude = amplitude;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Fujisaki command not created.");
 	}
@@ -59,26 +59,30 @@ autoFujisakiCommand FujisakiCommand_create (double tmin, double tmax, double amp
 
 Thing_implement (FujisakiPitch, Function, 0);
 
-autoFujisakiPitch FujisakiPitch_create (double tmin, double tmax,
+FujisakiPitch FujisakiPitch_create (double tmin, double tmax,
 	double baseFrequency, double alpha, double beta, double gamma)
 {
 	try {
 		autoFujisakiPitch me = Thing_new (FujisakiPitch);
-		Function_init (me.get(), tmin, tmax);
+		Function_init (me.peek(), tmin, tmax);
 		my baseFrequency = baseFrequency;
 		my alpha = alpha;
 		my beta = beta;
 		my gamma = gamma;
-		return me;
+		my phraseCommands = SortedSetOfDouble_create ();
+		my accentCommands = SortedSetOfDouble_create ();
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"FujisakiPitch not created.");
 	}
 }
 
-autoFujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double /* timeResolution */,
-	autoFujisakiPitch *intermediate1, autoFujisakiPitch *intermediate2, autoFujisakiPitch *intermediate3)
+FujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double timeResolution,
+	FujisakiPitch *intermediate1, FujisakiPitch *intermediate2, FujisakiPitch *intermediate3)
 {
+	(void) timeResolution;
 	try {
+
 		autoFujisakiPitch thee = FujisakiPitch_create (my xmin, my xmax, 0, 0, 0, gamma);
 		/*
 		 * Get phrase commands.
@@ -88,9 +92,9 @@ autoFujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double /* time
 			double offsetTime = /* ... */ 3.0;
 			double amplitude = /* ... */ 1.0;
 			autoFujisakiCommand phraseCommand = FujisakiCommand_create (onsetTime, offsetTime, amplitude);
-			thy phraseCommands. addItem_move (phraseCommand.move());
+			Collection_addItem (thy phraseCommands, phraseCommand.transfer());
 		}
-		if (intermediate1) *intermediate1 = Data_copy (thee.get());
+		if (intermediate1) *intermediate1 = Data_copy (thee.peek());
 		/*
 		 * Get accent commands.
 		 */
@@ -99,26 +103,26 @@ autoFujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double /* time
 			double offsetTime = /* ... */ 3.0;
 			double amplitude = /* ... */ 1.0;
 			autoFujisakiCommand accentCommand = FujisakiCommand_create (onsetTime, offsetTime, amplitude);
-			thy accentCommands. addItem_move (accentCommand.move());
+			Collection_addItem (thy accentCommands, accentCommand.transfer());
 		}
-		if (intermediate2) *intermediate2 = Data_copy (thee.get());
+		if (intermediate2) *intermediate2 = Data_copy (thee.peek());
 		/*
 		 * Do some extra processing.
 		 */
 		/* ... */
-		if (intermediate3) *intermediate3 = Data_copy (thee.get());
+		if (intermediate3) *intermediate3 = Data_copy (thee.peek());
 		/*
 		 * Tidy up.
 		 */
-		for (long i = 1; i <= thy phraseCommands.size; i ++) {
-			FujisakiCommand phraseCommand = thy phraseCommands.at [i];
+		for (long i = 1; i <= thy phraseCommands -> size; i ++) {
+			FujisakiCommand phraseCommand = (FujisakiCommand) thy phraseCommands -> item [i];
 			/* ... */
 		}
-		for (long i = 1; i <= thy accentCommands.size; i ++) {
-			FujisakiCommand accentCommand = thy accentCommands.at [i];
+		for (long i = 1; i <= thy accentCommands -> size; i ++) {
+			FujisakiCommand accentCommand = (FujisakiCommand) thy accentCommands -> item [i];
 			/* ... */
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to FujisakiPitch.");
 	}
diff --git a/fon/FujisakiPitch.h b/fon/FujisakiPitch.h
index 0e5955e..2df4681 100644
--- a/fon/FujisakiPitch.h
+++ b/fon/FujisakiPitch.h
@@ -2,7 +2,7 @@
 #define _FujisakiPitch_h_
 /* FujisakiPitch.h
  *
- * Copyright (C) 2002-2011,2015 Paul Boersma
+ * Copyright (C) 2002-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,14 +23,16 @@
 #include "Collection.h"
 
 #include "FujisakiPitch_def.h"
+oo_CLASS_CREATE (FujisakiCommand, Function);
+oo_CLASS_CREATE (FujisakiPitch, Function);
 
-autoFujisakiCommand FujisakiCommand_create (double tmin, double tmax, double amplitude);
+FujisakiCommand FujisakiCommand_create (double tmin, double tmax, double amplitude);
 
-autoFujisakiPitch FujisakiPitch_create (double tmin, double tmax,
+FujisakiPitch FujisakiPitch_create (double tmin, double tmax,
 	double baseFrequency, double alpha, double beta, double gamma);
 
-autoFujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double timeResolution,
-	autoFujisakiPitch *intermediate1, autoFujisakiPitch *intermediate2, autoFujisakiPitch *intermediate3);
+FujisakiPitch Pitch_to_FujisakiPitch (Pitch me, double gamma, double timeResolution,
+	FujisakiPitch *intermediate1, FujisakiPitch *intermediate2, FujisakiPitch *intermediate3);
 
 /* End of file FujisakiPitch.h */
 #endif
diff --git a/fon/FujisakiPitch_def.h b/fon/FujisakiPitch_def.h
index 42cb5ee..8409571 100644
--- a/fon/FujisakiPitch_def.h
+++ b/fon/FujisakiPitch_def.h
@@ -17,6 +17,11 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/05/18
+ * pb 2002/07/16 GPL
+ */
+
 
 #define ooSTRUCT FujisakiCommand
 oo_DEFINE_CLASS (FujisakiCommand, Function)
@@ -34,8 +39,8 @@ oo_DEFINE_CLASS (FujisakiPitch, Function)
 	oo_DOUBLE (alpha)
 	oo_DOUBLE (beta)
 	oo_DOUBLE (gamma)
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, phraseCommands, FujisakiCommand, 0)
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, accentCommands, FujisakiCommand, 0)
+	oo_COLLECTION (SortedSetOfDouble, phraseCommands, FujisakiCommand, 0)
+	oo_COLLECTION (SortedSetOfDouble, accentCommands, FujisakiCommand, 0)
 
 oo_END_CLASS (FujisakiPitch)
 #undef ooSTRUCT
diff --git a/fon/Function.cpp b/fon/Function.cpp
index 913c212..14e5b33 100644
--- a/fon/Function.cpp
+++ b/fon/Function.cpp
@@ -38,7 +38,7 @@
 #include "oo_DESCRIPTION.h"
 #include "Function_def.h"
 
-Thing_implement (Function, Daata, 0);
+Thing_implement (Function, Data, 0);
 
 void structFunction :: v_info () {
 	Function_Parent :: v_info ();
diff --git a/fon/Function.h b/fon/Function.h
index ddcbc60..bf65991 100644
--- a/fon/Function.h
+++ b/fon/Function.h
@@ -22,6 +22,7 @@
 #include "Data.h"
 
 #include "Function_def.h"
+oo_CLASS_CREATE (Function, Data);
 
 /*
 	An object of type Function represents a function f (x, ...) on the domain [xmin, xmax] * ....
diff --git a/fon/FunctionEditor.cpp b/fon/FunctionEditor.cpp
index ee9267e..d9245d5 100644
--- a/fon/FunctionEditor.cpp
+++ b/fon/FunctionEditor.cpp
@@ -61,14 +61,15 @@ static int group_equalDomain (double tmin, double tmax) {
 
 static void updateScrollBar (FunctionEditor me) {
 /* We cannot call this immediately after creation. */
-	double slider_size = (my d_endWindow - my d_startWindow) / (my tmax - my tmin) * maximumScrollBarValue - 1.0;
-	double value = (my d_startWindow - my tmin) / (my tmax - my tmin) * maximumScrollBarValue + 1.0;
-	if (slider_size < 1.0) slider_size = 1.0;
+	double slider_size = (my d_endWindow - my d_startWindow) / (my tmax - my tmin) * maximumScrollBarValue - 1;
+	double increment, page_increment;
+	double value = (my d_startWindow - my tmin) / (my tmax - my tmin) * maximumScrollBarValue + 1;
+	if (slider_size < 1) slider_size = 1;
 	if (value > maximumScrollBarValue - slider_size)
 		value = maximumScrollBarValue - slider_size;
-	if (value < 1.0) value = 1.0;
-	double increment = slider_size / SCROLL_INCREMENT_FRACTION + 1.0;
-	double page_increment = RELATIVE_PAGE_INCREMENT * slider_size + 1.0;
+	if (value < 1) value = 1;
+	increment = slider_size / SCROLL_INCREMENT_FRACTION + 1;
+	page_increment = RELATIVE_PAGE_INCREMENT * slider_size + 1;
 	GuiScrollBar_set (my scrollBar, NUMundefined, maximumScrollBarValue, value, slider_size, increment, page_increment);
 }
 
@@ -84,7 +85,7 @@ static void updateGroup (FunctionEditor me) {
 		thy d_endSelection = my d_endSelection;
 		FunctionEditor_updateText (thee);
 		updateScrollBar (thee);
-		Graphics_updateWs (thy d_graphics.get());
+		Graphics_updateWs (thy d_graphics);
 	}
 }
 
@@ -185,34 +186,34 @@ static void drawNow (FunctionEditor me) {
 	/*
 	 * Be responsive: update the markers now.
 	 */
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0.0, my height);
-	Graphics_setWindow (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0.0, my height);
-	Graphics_setColour (my d_graphics.get(), Graphics_WINDOW_BACKGROUND_COLOUR);
-	Graphics_fillRectangle (my d_graphics.get(), my functionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, my height - (TOP_MARGIN + space), my height);
-	Graphics_fillRectangle (my d_graphics.get(), my functionViewerLeft, my functionViewerLeft + MARGIN, BOTTOM_MARGIN + ( leftFromWindow ? space * 2 : 0 ), my height);
-	Graphics_fillRectangle (my d_graphics.get(), my functionViewerRight - MARGIN, my functionViewerRight, BOTTOM_MARGIN + ( rightFromWindow ? space * 2 : 0 ), my height);
+	Graphics_setViewport (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
+	Graphics_setWindow (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
+	Graphics_setColour (my d_graphics, Graphics_WINDOW_BACKGROUND_COLOUR);
+	Graphics_fillRectangle (my d_graphics, my functionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, my height - (TOP_MARGIN + space), my height);
+	Graphics_fillRectangle (my d_graphics, my functionViewerLeft, my functionViewerLeft + MARGIN, BOTTOM_MARGIN + ( leftFromWindow ? space * 2 : 0 ), my height);
+	Graphics_fillRectangle (my d_graphics, my functionViewerRight - MARGIN, my functionViewerRight, BOTTOM_MARGIN + ( rightFromWindow ? space * 2 : 0 ), my height);
 	if (my p_showSelectionViewer) {
-		Graphics_setViewport (my d_graphics.get(), my selectionViewerLeft, my selectionViewerRight, 0.0, my height);
-		Graphics_setWindow (my d_graphics.get(), my selectionViewerLeft, my selectionViewerRight, 0.0, my height);
-		Graphics_fillRectangle (my d_graphics.get(), my selectionViewerLeft, my selectionViewerLeft + MARGIN, BOTTOM_MARGIN, my height);
-		Graphics_fillRectangle (my d_graphics.get(), my selectionViewerRight - MARGIN, my selectionViewerRight, BOTTOM_MARGIN, my height);
-		Graphics_fillRectangle (my d_graphics.get(), my selectionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, 0, BOTTOM_MARGIN + space * 3);
+		Graphics_setViewport (my d_graphics, my selectionViewerLeft, my selectionViewerRight, 0, my height);
+		Graphics_setWindow (my d_graphics, my selectionViewerLeft, my selectionViewerRight, 0, my height);
+		Graphics_fillRectangle (my d_graphics, my selectionViewerLeft, my selectionViewerLeft + MARGIN, BOTTOM_MARGIN, my height);
+		Graphics_fillRectangle (my d_graphics, my selectionViewerRight - MARGIN, my selectionViewerRight, BOTTOM_MARGIN, my height);
+		Graphics_fillRectangle (my d_graphics, my selectionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, 0, BOTTOM_MARGIN + space * 3);
 	}
-	Graphics_setGrey (my d_graphics.get(), 0.0);
+	Graphics_setGrey (my d_graphics, 0.0);
 	#if defined (macintosh)
-		Graphics_line (my d_graphics.get(), my functionViewerLeft, 2.0, my selectionViewerRight, 2.0);
-		Graphics_line (my d_graphics.get(), my functionViewerLeft, my height - 2.0, my selectionViewerRight, my height - 2.0);
+		Graphics_line (my d_graphics, my functionViewerLeft, 2, my selectionViewerRight, 2);
+		Graphics_line (my d_graphics, my functionViewerLeft, my height - 2, my selectionViewerRight, my height - 2);
 	#endif
 
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0.0, my height);
-	Graphics_setWindow (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0.0, my height);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
+	Graphics_setViewport (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
+	Graphics_setWindow (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
+	Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
 	for (int i = 0; i < 8; i ++) {
 		double left = my rect [i]. left, right = my rect [i]. right;
 		if (left < right)
-			Graphics_button (my d_graphics.get(), left, right, my rect [i]. bottom, my rect [i]. top);
+			Graphics_button (my d_graphics, left, right, my rect [i]. bottom, my rect [i]. top);
 	}
-	verticalCorrection = my height / (my height - 111.0 + 11.0);
+	verticalCorrection = my height / (my height - 111 + 11.0);
 	#ifdef _WIN32
 		verticalCorrection *= 1.5;
 	#endif
@@ -228,70 +229,70 @@ static void drawNow (FunctionEditor me) {
 					/*
 					 * Window domain text.
 					 */	
-					Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-					Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-					Graphics_text (my d_graphics.get(), left, 0.5 * (bottom + top) - verticalCorrection, Melder_fixed (my d_startWindow, my v_fixedPrecision_long ()));
-					Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-					Graphics_text (my d_graphics.get(), right, 0.5 * (bottom + top) - verticalCorrection, Melder_fixed (my d_endWindow, my v_fixedPrecision_long ()));
-					Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-					Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
+					Graphics_setColour (my d_graphics, Graphics_BLUE);
+					Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_HALF);
+					Graphics_text (my d_graphics, left, 0.5 * (bottom + top) - verticalCorrection, Melder_fixed (my d_startWindow, my v_fixedPrecision_long ()));
+					Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+					Graphics_text (my d_graphics, right, 0.5 * (bottom + top) - verticalCorrection, Melder_fixed (my d_endWindow, my v_fixedPrecision_long ()));
+					Graphics_setColour (my d_graphics, Graphics_BLACK);
+					Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
 				break;
 				case 2: value = my d_startWindow - my tmin; break;
 				case 3: value = my tmax - my d_endWindow; break;
 				case 4: value = my marker [1] - my d_startWindow; break;
 				case 5: value = my marker [2] - my marker [1]; break;
 				case 6: value = my marker [3] - my marker [2]; break;
-				case 7: format = my v_format_selection (), value = my d_endSelection - my d_startSelection, inverseValue = 1.0 / value; break;
+				case 7: format = my v_format_selection (), value = my d_endSelection - my d_startSelection, inverseValue = 1 / value; break;
 			}
 			char text8 [100];
 			snprintf (text8, 100, format, value, inverseValue);
 			autostring32 text = Melder_8to32 (text8);
-			if (Graphics_textWidth (my d_graphics.get(), text.peek()) < right - left) {
-				Graphics_text (my d_graphics.get(), 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
+			if (Graphics_textWidth (my d_graphics, text.peek()) < right - left) {
+				Graphics_text (my d_graphics, 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
 			} else if (format == my v_format_long ()) {
 				snprintf (text8, 100, my v_format_short (), value);
 				text.reset (Melder_8to32 (text8));
-				if (Graphics_textWidth (my d_graphics.get(), text.peek()) < right - left)
-					Graphics_text (my d_graphics.get(), 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
+				if (Graphics_textWidth (my d_graphics, text.peek()) < right - left)
+					Graphics_text (my d_graphics, 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
 			} else {
 				snprintf (text8, 100, my v_format_long (), value);
 				text.reset (Melder_8to32 (text8));
-				if (Graphics_textWidth (my d_graphics.get(), text.peek()) < right - left) {
-						Graphics_text (my d_graphics.get(), 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
+				if (Graphics_textWidth (my d_graphics, text.peek()) < right - left) {
+						Graphics_text (my d_graphics, 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
 				} else {
 					snprintf (text8, 100, my v_format_short (), my d_endSelection - my d_startSelection);
 					text.reset (Melder_8to32 (text8));
-					if (Graphics_textWidth (my d_graphics.get(), text.peek()) < right - left)
-						Graphics_text (my d_graphics.get(), 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
+					if (Graphics_textWidth (my d_graphics, text.peek()) < right - left)
+						Graphics_text (my d_graphics, 0.5 * (left + right), 0.5 * (bottom + top) - verticalCorrection, text.peek());
 				}
 			}
 		}
 	}
 
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, 0.0, my height);
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, 0.0, my height);
-	/*Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my d_graphics.get(), my d_startWindow, my d_endWindow, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));*/
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (my d_graphics.get(), my d_startWindow, my d_endWindow, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
+	Graphics_setViewport (my d_graphics, my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, 0, my height);
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, 0, my height);
+	/*Graphics_setColour (my d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my d_graphics, my d_startWindow, my d_endWindow, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));*/
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_rectangle (my d_graphics, my d_startWindow, my d_endWindow, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
 
 	/*
 	 * Red marker text.
 	 */
-	Graphics_setColour (my d_graphics.get(), Graphics_RED);
+	Graphics_setColour (my d_graphics, Graphics_RED);
 	if (cursorVisible) {
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (my d_graphics.get(), my d_startSelection, my height - (TOP_MARGIN + space) - verticalCorrection, Melder_fixed (my d_startSelection, my v_fixedPrecision_long ()));
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_BOTTOM);
+		Graphics_text (my d_graphics, my d_startSelection, my height - (TOP_MARGIN + space) - verticalCorrection, Melder_fixed (my d_startSelection, my v_fixedPrecision_long ()));
 	}
 	if (beginVisible && selection) {
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), my d_startSelection, my height - (TOP_MARGIN + space/2) - verticalCorrection, Melder_fixed (my d_startSelection, my v_fixedPrecision_long ()));
+		Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+		Graphics_text (my d_graphics, my d_startSelection, my height - (TOP_MARGIN + space/2) - verticalCorrection, Melder_fixed (my d_startSelection, my v_fixedPrecision_long ()));
 	}
 	if (endVisible && selection) {
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), my d_endSelection, my height - (TOP_MARGIN + space/2) - verticalCorrection, Melder_fixed (my d_endSelection, my v_fixedPrecision_long ()));
+		Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_HALF);
+		Graphics_text (my d_graphics, my d_endSelection, my height - (TOP_MARGIN + space/2) - verticalCorrection, Melder_fixed (my d_endSelection, my v_fixedPrecision_long ()));
 	}
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
 
 	/*
 	 * To reduce flashing, give our descendants the opportunity to prepare their data.
@@ -301,26 +302,26 @@ static void drawNow (FunctionEditor me) {
 	/*
 	 * Start of inner drawing.
 	 */
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
+	Graphics_setViewport (my d_graphics, my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
 
 	my v_draw ();
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
+	Graphics_setViewport (my d_graphics, my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
 
 	/*
 	 * Red dotted marker lines.
 	 */
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_RED);
-	Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, 0.0, 1.0);
+	Graphics_setColour (my d_graphics, Graphics_RED);
+	Graphics_setLineType (my d_graphics, Graphics_DOTTED);
 	double bottom = my v_getBottomOfSoundAndAnalysisArea ();
 	if (cursorVisible)
-		Graphics_line (my d_graphics.get(), my d_startSelection, bottom, my d_startSelection, 1.0);
+		Graphics_line (my d_graphics, my d_startSelection, bottom, my d_startSelection, 1.0);
 	if (beginVisible)
-		Graphics_line (my d_graphics.get(), my d_startSelection, bottom, my d_startSelection, 1.0);
+		Graphics_line (my d_graphics, my d_startSelection, bottom, my d_startSelection, 1.0);
 	if (endVisible)
-		Graphics_line (my d_graphics.get(), my d_endSelection, bottom, my d_endSelection, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
+		Graphics_line (my d_graphics, my d_endSelection, bottom, my d_endSelection, 1.0);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_setLineType (my d_graphics, Graphics_DRAWN);
 
 	/*
 	 * Highlight selection.
@@ -336,20 +337,20 @@ static void drawNow (FunctionEditor me) {
 	 * Draw the selection part.
 	 */
 	if (my p_showSelectionViewer) {
-		Graphics_setViewport (my d_graphics.get(), my selectionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
+		Graphics_setViewport (my d_graphics, my selectionViewerLeft + MARGIN, my selectionViewerRight - MARGIN, BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
 		my v_drawSelectionViewer ();
 	}
 
 	/*
 	 * End of inner drawing.
 	 */
-	Graphics_flushWs (my d_graphics.get());
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft, my selectionViewerRight, 0.0, my height);
+	Graphics_flushWs (my d_graphics);
+	Graphics_setViewport (my d_graphics, my functionViewerLeft, my selectionViewerRight, 0, my height);
 }
 
 /********** METHODS **********/
 
-void structFunctionEditor :: v_destroy () noexcept {
+void structFunctionEditor :: v_destroy () {
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	if (our group) {   // undangle
 		int i = 1;
@@ -357,9 +358,10 @@ void structFunctionEditor :: v_destroy () noexcept {
 			Melder_assert (i < maxGroup);
 			i ++;
 		}
-		theGroup [i] = nullptr;
+		theGroup [i] = NULL;
 		nGroup --;
 	}
+	forget (our d_graphics);
 	FunctionEditor_Parent :: v_destroy ();
 }
 
@@ -377,21 +379,22 @@ void structFunctionEditor :: v_info () {
 
 /********** FILE MENU **********/
 
-static void gui_drawingarea_cb_resize (FunctionEditor me, GuiDrawingArea_ResizeEvent event) {
-	if (! my d_graphics) return;   // could be the case in the very beginning
-	Graphics_setWsViewport (my d_graphics.get(), 0, event -> width, 0, event -> height);
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (FunctionEditor);
+	if (my d_graphics == NULL) return;   // Could be the case in the very beginning.
+	Graphics_setWsViewport (my d_graphics, 0, event -> width, 0, event -> height);
 	int width = event -> width + 21;
 	/*
 	 * Put the function viewer at the left and the selection viewer at the right.
 	 */
 	my functionViewerLeft = 0;
-	my functionViewerRight = my p_showSelectionViewer ? (short) floor (width * (2.0/3.0)) : width;
+	my functionViewerRight = my p_showSelectionViewer ? (short) floor (width * (2.0/3)) : width;
 	my selectionViewerLeft = my functionViewerRight;
 	my selectionViewerRight = width;
 	my height = event -> height + 111;
-	Graphics_setWsWindow (my d_graphics.get(), 0.0, width, 0.0, my height);
-	Graphics_setViewport (my d_graphics.get(), 0.0, width, 0.0, my height);
-	Graphics_updateWs (my d_graphics.get());
+	Graphics_setWsWindow (my d_graphics, 0, width, 0, my height);
+	Graphics_setViewport (my d_graphics, 0, width, 0, my height);
+	Graphics_updateWs (my d_graphics);
 
 	/* Save the current shell size as the user's preference for a new FunctionEditor. */
 
@@ -399,8 +402,9 @@ static void gui_drawingarea_cb_resize (FunctionEditor me, GuiDrawingArea_ResizeE
 	my pref_shellHeight () = GuiShell_getShellHeight (my d_windowForm);
 }
 
-static void menu_cb_preferences (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Preferences", nullptr)
+static void menu_cb_preferences (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Preferences", 0)
 		BOOLEAN (U"Synchronize zoom and scroll", my default_synchronizedZoomAndScroll ())
 		BOOLEAN (U"Show selection viewer", my default_showSelectionViewer ())
 		POSITIVE (Melder_cat (U"Arrow scroll step (", my v_format_units (), U")"), my default_arrowScrollStep ())
@@ -417,7 +421,7 @@ static void menu_cb_preferences (FunctionEditor me, EDITOR_ARGS_FORM) {
 		my pref_showSelectionViewer () = my p_showSelectionViewer = GET_INTEGER (U"Show selection viewer");
 		my pref_arrowScrollStep () = my p_arrowScrollStep = GET_REAL (U"Arrow scroll step");
 		if (my p_showSelectionViewer != oldShowSelectionViewer) {
-			struct structGuiDrawingArea_ResizeEvent event { my drawingArea, 0 };
+			struct structGuiDrawingAreaResizeEvent event = { my drawingArea, 0 };
 			event. width  = GuiControl_getWidth  (my drawingArea);
 			event. height = GuiControl_getHeight (my drawingArea);
 			gui_drawingarea_cb_resize (me, & event);
@@ -430,8 +434,8 @@ static void menu_cb_preferences (FunctionEditor me, EDITOR_ARGS_FORM) {
 }
 
 void structFunctionEditor :: v_form_pictureSelection (EditorCommand cmd) {
-	BOOLEAN (U"Draw selection times", true);
-	BOOLEAN (U"Draw selection hairs", true);
+	BOOLEAN (U"Draw selection times", 1);
+	BOOLEAN (U"Draw selection hairs", 1);
 }
 void structFunctionEditor :: v_ok_pictureSelection (EditorCommand cmd) {
 	FunctionEditor me = (FunctionEditor) cmd -> d_editor;
@@ -446,23 +450,28 @@ void structFunctionEditor :: v_do_pictureSelection (EditorCommand cmd) {
 
 /********** QUERY MENU **********/
 
-static void menu_cb_getB (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getB (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	Melder_informationReal (my d_startSelection, my v_format_units ());
 }
-static void menu_cb_getCursor (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getCursor (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	Melder_informationReal (0.5 * (my d_startSelection + my d_endSelection), my v_format_units ());
 }
-static void menu_cb_getE (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getE (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	Melder_informationReal (my d_endSelection, my v_format_units ());
 }
-static void menu_cb_getSelectionDuration (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getSelectionDuration (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	Melder_informationReal (my d_endSelection - my d_startSelection, my v_format_units ());
 }
 
 /********** VIEW MENU **********/
 
-static void menu_cb_zoom (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Zoom", nullptr)
+static void menu_cb_zoom (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Zoom", 0)
 		REAL (U"From", U"0.0")
 		REAL (U"To", U"1.0")
 	EDITOR_OK
@@ -493,7 +502,9 @@ static void do_showAll (FunctionEditor me) {
 	}
 }
 
-static void gui_button_cb_showAll (FunctionEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_showAll (I, GuiButtonEvent event) {
+	(void) event;
+	iam (FunctionEditor);
 	do_showAll (me);
 }
 
@@ -509,13 +520,15 @@ static void do_zoomIn (FunctionEditor me) {
 	}
 }
 
-static void gui_button_cb_zoomIn (FunctionEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_zoomIn (I, GuiButtonEvent event) {
+	(void) event;
+	iam (FunctionEditor);
 	do_zoomIn (me);
 }
 
 static void do_zoomOut (FunctionEditor me) {
 	double shift = (my d_endWindow - my d_startWindow) / 2;
-	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);   // quickly, before window changes
+	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);   /* Quickly, before window changes. */
 	my d_startWindow -= shift;
 	if (my d_startWindow < my tmin + 1e-12)
 		my d_startWindow = my tmin;
@@ -530,7 +543,9 @@ static void do_zoomOut (FunctionEditor me) {
 	}
 }
 
-static void gui_button_cb_zoomOut (FunctionEditor me, GuiButtonEvent /*event*/) {
+static void gui_button_cb_zoomOut (I, GuiButtonEvent event) {
+	(void) event;
+	iam (FunctionEditor);
 	do_zoomOut (me);
 }
 
@@ -554,7 +569,9 @@ static void do_zoomToSelection (FunctionEditor me) {
 	}
 }
 
-static void gui_button_cb_zoomToSelection (FunctionEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_zoomToSelection (I, GuiButtonEvent event) {
+	(void) event;
+	iam (FunctionEditor);
 	do_zoomToSelection (me);
 }
 
@@ -571,32 +588,40 @@ static void do_zoomBack (FunctionEditor me) {
 	}
 }
 
-static void gui_button_cb_zoomBack (FunctionEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_zoomBack (I, GuiButtonEvent event) {
+	(void) event;
+	iam (FunctionEditor);
 	do_zoomBack (me);
 }
 
-static void menu_cb_showAll (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showAll (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	do_showAll (me);
 }
 
-static void menu_cb_zoomIn (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_zoomIn (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	do_zoomIn (me);
 }
 
-static void menu_cb_zoomOut (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_zoomOut (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	do_zoomOut (me);
 }
 
-static void menu_cb_zoomToSelection (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_zoomToSelection (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	do_zoomToSelection (me);
 }
 
-static void menu_cb_zoomBack (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_zoomBack (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	do_zoomBack (me);
 }
 
-static void menu_cb_play (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Play", nullptr)
+static void menu_cb_play (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Play", 0)
 		REAL (U"From", U"0.0")
 		REAL (U"To", U"1.0")
 	EDITOR_OK
@@ -608,7 +633,8 @@ static void menu_cb_play (FunctionEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_playOrStop (FunctionEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_playOrStop (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	if (MelderAudio_isPlaying) {
 		MelderAudio_stopPlaying (MelderAudio_EXPLICIT);
 	} else if (my d_startSelection < my d_endSelection) {
@@ -623,20 +649,23 @@ static void menu_cb_playOrStop (FunctionEditor me, EDITOR_ARGS_FORM) {
 	}
 }
 
-static void menu_cb_playWindow (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_playWindow (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	my playingCursor = true;
 	my v_play (my d_startWindow, my d_endWindow);
 }
 
-static void menu_cb_interruptPlaying (FunctionEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_interruptPlaying (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 }
 
 /********** SELECT MENU **********/
 
-static void menu_cb_select (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Select", nullptr)
+static void menu_cb_select (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Select", 0)
 		REAL (U"Start of selection", U"0.0")
 		REAL (U"End of selection", U"1.0")
 	EDITOR_OK
@@ -660,22 +689,25 @@ static void menu_cb_select (FunctionEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_moveCursorToB (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveCursorToB (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_endSelection = my d_startSelection;
 	my v_updateText ();
 	/*Graphics_updateWs (my d_graphics);*/ drawNow (me);
 	updateGroup (me);
 }
 
-static void menu_cb_moveCursorToE (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveCursorToE (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_startSelection = my d_endSelection;
 	my v_updateText ();
 	/*Graphics_updateWs (my d_graphics);*/ drawNow (me);
 	updateGroup (me);
 }
 
-static void menu_cb_moveCursorTo (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Move cursor to", nullptr)
+static void menu_cb_moveCursorTo (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Move cursor to", 0)
 		REAL (U"Position", U"0.0")
 	EDITOR_OK
 		SET_REAL (U"Position", 0.5 * (my d_startSelection + my d_endSelection))
@@ -690,8 +722,9 @@ static void menu_cb_moveCursorTo (FunctionEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_moveCursorBy (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Move cursor by", nullptr)
+static void menu_cb_moveCursorBy (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Move cursor by", 0)
 		REAL (U"Distance", U"0.05")
 	EDITOR_OK
 	EDITOR_DO
@@ -705,8 +738,9 @@ static void menu_cb_moveCursorBy (FunctionEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_moveBby (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Move start of selection by", nullptr)
+static void menu_cb_moveBby (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Move start of selection by", 0)
 		REAL (U"Distance", U"0.05")
 	EDITOR_OK
 	EDITOR_DO
@@ -725,8 +759,9 @@ static void menu_cb_moveBby (FunctionEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_moveEby (FunctionEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Move end of selection by", nullptr)
+static void menu_cb_moveEby (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
+	EDITOR_FORM (U"Move end of selection by", 0)
 		REAL (U"Distance", U"0.05")
 	EDITOR_OK
 	EDITOR_DO
@@ -767,11 +802,13 @@ void FunctionEditor_shift (FunctionEditor me, double shift, bool needsUpdateGrou
 	FunctionEditor_marksChanged (me, needsUpdateGroup);
 }
 
-static void menu_cb_pageUp (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pageUp (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	FunctionEditor_shift (me, -RELATIVE_PAGE_INCREMENT * (my d_endWindow - my d_startWindow), true);
 }
 
-static void menu_cb_pageDown (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pageDown (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	FunctionEditor_shift (me, +RELATIVE_PAGE_INCREMENT * (my d_endWindow - my d_startWindow), true);
 }
 
@@ -785,7 +822,8 @@ static void scrollToView (FunctionEditor me, double t) {
 	}
 }
 
-static void menu_cb_selectEarlier (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_selectEarlier (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_startSelection -= my p_arrowScrollStep;
 	if (my d_startSelection < my tmin + 1e-12)
 		my d_startSelection = my tmin;
@@ -795,7 +833,8 @@ static void menu_cb_selectEarlier (FunctionEditor me, EDITOR_ARGS_DIRECT) {
 	scrollToView (me, 0.5 * (my d_startSelection + my d_endSelection));
 }
 
-static void menu_cb_selectLater (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_selectLater (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_startSelection += my p_arrowScrollStep;
 	if (my d_startSelection > my tmax - 1e-12)
 		my d_startSelection = my tmax;
@@ -805,14 +844,16 @@ static void menu_cb_selectLater (FunctionEditor me, EDITOR_ARGS_DIRECT) {
 	scrollToView (me, 0.5 * (my d_startSelection + my d_endSelection));
 }
 
-static void menu_cb_moveBleft (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveBleft (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_startSelection -= my p_arrowScrollStep;
 	if (my d_startSelection < my tmin + 1e-12)
 		my d_startSelection = my tmin;
 	scrollToView (me, 0.5 * (my d_startSelection + my d_endSelection));
 }
 
-static void menu_cb_moveBright (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveBright (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_startSelection += my p_arrowScrollStep;
 	if (my d_startSelection > my tmax - 1e-12)
 		my d_startSelection = my tmax;
@@ -824,7 +865,8 @@ static void menu_cb_moveBright (FunctionEditor me, EDITOR_ARGS_DIRECT) {
 	scrollToView (me, 0.5 * (my d_startSelection + my d_endSelection));
 }
 
-static void menu_cb_moveEleft (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveEleft (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_endSelection -= my p_arrowScrollStep;
 	if (my d_endSelection < my tmin + 1e-12)
 		my d_endSelection = my tmin;
@@ -836,7 +878,8 @@ static void menu_cb_moveEleft (FunctionEditor me, EDITOR_ARGS_DIRECT) {
 	scrollToView (me, 0.5 * (my d_startSelection + my d_endSelection));
 }
 
-static void menu_cb_moveEright (FunctionEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveEright (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	my d_endSelection += my p_arrowScrollStep;
 	if (my d_endSelection > my tmax - 1e-12)
 		my d_endSelection = my tmax;
@@ -845,12 +888,13 @@ static void menu_cb_moveEright (FunctionEditor me, EDITOR_ARGS_DIRECT) {
 
 /********** GUI CALLBACKS **********/
 
-static void gui_cb_scroll (FunctionEditor me, GuiScrollBarEvent event) {
-	if (! my d_graphics) return;   // ignore events during creation
+static void gui_cb_scroll (I, GuiScrollBarEvent event) {
+	iam (FunctionEditor);
+	if (my d_graphics == NULL) return;   // ignore events during creation
 	double value = GuiScrollBar_getValue (event -> scrollBar);
 	double shift = my tmin + (value - 1) * (my tmax - my tmin) / maximumScrollBarValue - my d_startWindow;
 	bool shifted = shift != 0.0;
-	double oldSliderSize = (my d_endWindow - my d_startWindow) / (my tmax - my tmin) * maximumScrollBarValue - 1.0;
+	double oldSliderSize = (my d_endWindow - my d_startWindow) / (my tmax - my tmin) * maximumScrollBarValue - 1;
 	double newSliderSize = GuiScrollBar_getSliderSize (event -> scrollBar);
 	bool zoomed = newSliderSize != oldSliderSize;
 	#if ! cocoa
@@ -871,10 +915,10 @@ static void gui_cb_scroll (FunctionEditor me, GuiScrollBarEvent event) {
 		my v_updateText ();
 		updateScrollBar (me);
 		#if cocoa
-			Graphics_updateWs (my d_graphics.get());
+			Graphics_updateWs (my d_graphics);
 		#else
-			/*Graphics_clearWs (my d_graphics.get());*/
-			drawNow (me);   // do not wait for expose event
+			/*Graphics_clearWs (my d_graphics);*/
+			drawNow (me);   /* Do not wait for expose event. */
 		#endif
 		if (! my group || ! my pref_synchronizedZoomAndScroll ()) return;
 		for (int i = 1; i <= maxGroup; i ++) if (theGroup [i] && theGroup [i] != me) {
@@ -883,23 +927,25 @@ static void gui_cb_scroll (FunctionEditor me, GuiScrollBarEvent event) {
 			FunctionEditor_updateText (theGroup [i]);
 			updateScrollBar (theGroup [i]);
 			#if cocoa
-				Graphics_updateWs (theGroup [i] -> d_graphics.get());
+				Graphics_updateWs (theGroup [i] -> d_graphics);
 			#else
-				Graphics_clearWs (theGroup [i] -> d_graphics.get());
+				Graphics_clearWs (theGroup [i] -> d_graphics);
 				drawNow (theGroup [i]);
 			#endif
 		}
 	}
 }
 
-static void gui_checkbutton_cb_group (FunctionEditor me, GuiCheckButtonEvent /* event */) {
+static void gui_checkbutton_cb_group (I, GuiCheckButtonEvent event) {
+	iam (FunctionEditor);
+	(void) event;
 	int i;
 	my group = ! my group;
 	if (my group) {
 		FunctionEditor thee;
 		i = 1; while (theGroup [i]) i ++; theGroup [i] = me;
-		if (++ nGroup == 1) { Graphics_updateWs (my d_graphics.get()); return; }
-		i = 1; while (! theGroup [i] || theGroup [i] == me) i ++; thee = theGroup [i];
+		if (++ nGroup == 1) { Graphics_updateWs (my d_graphics); return; }
+		i = 1; while (theGroup [i] == NULL || theGroup [i] == me) i ++; thee = theGroup [i];
 		if (my pref_synchronizedZoomAndScroll ()) {
 			my d_startWindow = thy d_startWindow;
 			my d_endWindow = thy d_endWindow;
@@ -911,11 +957,11 @@ static void gui_checkbutton_cb_group (FunctionEditor me, GuiCheckButtonEvent /*
 			if (my tmax < thy tmax) my tmax = thy tmax;
 			my v_updateText ();
 			updateScrollBar (me);
-			Graphics_updateWs (my d_graphics.get());
+			Graphics_updateWs (my d_graphics);
 		} else {
 			my v_updateText ();
 			updateScrollBar (me);
-			Graphics_updateWs (my d_graphics.get());
+			Graphics_updateWs (my d_graphics);
 			if (my tmin < thy tmin || my tmax > thy tmax)
 				for (i = 1; i <= maxGroup; i ++) if (theGroup [i] && theGroup [i] != me) {
 					if (my tmin < thy tmin)
@@ -924,26 +970,27 @@ static void gui_checkbutton_cb_group (FunctionEditor me, GuiCheckButtonEvent /*
 						theGroup [i] -> tmax = my tmax;
 					FunctionEditor_updateText (theGroup [i]);
 					updateScrollBar (theGroup [i]);
-					Graphics_updateWs (theGroup [i] -> d_graphics.get());
+					Graphics_updateWs (theGroup [i] -> d_graphics);
 				}
 		}
 	} else {
-		i = 1; while (theGroup [i] != me) i ++; theGroup [i] = nullptr;
+		i = 1; while (theGroup [i] != me) i ++; theGroup [i] = NULL;
 		nGroup --;
 		my v_updateText ();
-		Graphics_updateWs (my d_graphics.get());   // for setting buttons in draw method
+		Graphics_updateWs (my d_graphics);   // for setting buttons in draw method
 	}
 	if (my group) updateGroup (me);
 }
 
-static void menu_cb_intro (FunctionEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_intro (EDITOR_ARGS) {
+	EDITOR_IAM (FunctionEditor);
 	Melder_help (U"Intro");
 }
 
 void structFunctionEditor :: v_createMenuItems_file (EditorMenu menu) {
 	FunctionEditor_Parent :: v_createMenuItems_file (menu);
 	EditorMenu_addCommand (menu, U"Preferences...", 0, menu_cb_preferences);
-	EditorMenu_addCommand (menu, U"-- after preferences --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- after preferences --", 0, 0);
 }
 
 void structFunctionEditor :: v_createMenuItems_view_timeDomain (EditorMenu menu) {
@@ -959,7 +1006,7 @@ void structFunctionEditor :: v_createMenuItems_view_timeDomain (EditorMenu menu)
 }
 
 void structFunctionEditor :: v_createMenuItems_view_audio (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- play --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- play --", 0, 0);
 	EditorMenu_addCommand (menu, U"Audio:", GuiMenu_INSENSITIVE, menu_cb_play /* dummy */);
 	EditorMenu_addCommand (menu, U"Play...", 0, menu_cb_play);
 	EditorMenu_addCommand (menu, U"Play or stop", GuiMenu_TAB, menu_cb_playOrStop);
@@ -974,7 +1021,7 @@ void structFunctionEditor :: v_createMenuItems_view (EditorMenu menu) {
 
 void structFunctionEditor :: v_createMenuItems_query (EditorMenu menu) {
 	FunctionEditor_Parent :: v_createMenuItems_query (menu);
-	EditorMenu_addCommand (menu, U"-- query selection --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- query selection --", 0, 0);
 	EditorMenu_addCommand (menu, U"Get start of selection", 0, menu_cb_getB);
 	EditorMenu_addCommand (menu, U"Get begin of selection", Editor_HIDDEN, menu_cb_getB);
 	EditorMenu_addCommand (menu, U"Get cursor", GuiMenu_F6, menu_cb_getCursor);
@@ -1015,25 +1062,28 @@ void structFunctionEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"Intro", 0, menu_cb_intro);
 }
 
-static void gui_drawingarea_cb_expose (FunctionEditor me, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! my d_graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (FunctionEditor);
+	(void) event;
+	if (my d_graphics == NULL) return;   // Could be the case in the very beginning.
 	if (my enableUpdates)
 		drawNow (me);
 }
 
-static void gui_drawingarea_cb_click (FunctionEditor me, GuiDrawingArea_ClickEvent event) {
-	if (! my d_graphics) return;   // could be the case in the very beginning
-	my shiftKeyPressed = event -> shiftKeyPressed;
-	Graphics_setWindow (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0.0, my height);
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (FunctionEditor);
+	if (my d_graphics == NULL) return;   // Could be the case in the very beginning.
 	double xWC, yWC;
-	Graphics_DCtoWC (my d_graphics.get(), event -> x, event -> y, & xWC, & yWC);
+	my shiftKeyPressed = event -> shiftKeyPressed;
+	Graphics_setWindow (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
+	Graphics_DCtoWC (my d_graphics, event -> x, event -> y, & xWC, & yWC);
 
-	if (yWC > BOTTOM_MARGIN + space * 3 && yWC < my height - (TOP_MARGIN + space)) {   // in signal region?
+	if (yWC > BOTTOM_MARGIN + space * 3 && yWC < my height - (TOP_MARGIN + space)) {   /* In signal region? */
 		int needsUpdate;
-		Graphics_setViewport (my d_graphics.get(), my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN,
+		Graphics_setViewport (my d_graphics, my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN,
 			BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, 0.0, 1.0);
-		Graphics_DCtoWC (my d_graphics.get(), event -> x, event -> y, & xWC, & yWC);
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, 0.0, 1.0);
+		Graphics_DCtoWC (my d_graphics, event -> x, event -> y, & xWC, & yWC);
 		if (xWC < my d_startWindow) xWC = my d_startWindow;
 		if (xWC > my d_endWindow) xWC = my d_endWindow;
 		if (Melder_debug == 24) {
@@ -1062,13 +1112,13 @@ static void gui_drawingarea_cb_click (FunctionEditor me, GuiDrawingArea_ClickEve
 			event -> button == 2 ? my v_clickB (xWC, yWC) : my v_clickE (xWC, yWC);
 #endif
 		if (needsUpdate) my v_updateText ();
-		Graphics_setViewport (my d_graphics.get(), my functionViewerLeft, my functionViewerRight, 0, my height);
+		Graphics_setViewport (my d_graphics, my functionViewerLeft, my functionViewerRight, 0, my height);
 		if (needsUpdate) {
 			drawNow (me);
 		}
 		if (needsUpdate) updateGroup (me);
 	}
-	else   // clicked outside signal region? Let us hear it
+	else   /* Clicked outside signal region? Let us hear it. */
 	{
 		try {
 			for (int i = 0; i < 8; i ++) {
@@ -1149,8 +1199,8 @@ void structFunctionEditor :: v_createChildren () {
 	our drawingArea = GuiDrawingArea_createShown (our d_windowForm,
 		0, 0,
 		Machine_getMenuBarHeight () + ( our v_hasText () ? TEXT_HEIGHT + marginBetweenTextAndDrawingAreaToEnsureCorrectUnhighlighting : 0), -8 - Gui_PUSHBUTTON_HEIGHT,
-		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, gui_drawingarea_cb_resize, this, 0);
-	GuiDrawingArea_setSwipable (our drawingArea, our scrollBar, nullptr);
+		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, gui_drawingarea_cb_resize, this, 0);
+	GuiDrawingArea_setSwipable (our drawingArea, our scrollBar, NULL);
 }
 
 void structFunctionEditor :: v_dataChanged () {
@@ -1176,23 +1226,23 @@ static void drawWhileDragging (FunctionEditor me, double x1, double x2) {
 	 */
 	double xleft, xright;
 	if (x1 > x2) xleft = x2, xright = x1; else xleft = x1, xright = x2;
-	Graphics_xorOn (my d_graphics.get(), Graphics_MAROON);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-	Graphics_text (my d_graphics.get(), xleft, 1.0, Melder_fixed (xleft, 6));
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_TOP);
-	Graphics_text (my d_graphics.get(), xright, 1.0, Melder_fixed (xright, 6));
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_BOTTOM);
-	Graphics_text (my d_graphics.get(), xleft, 0.0, Melder_fixed (xleft, 6));
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-	Graphics_text (my d_graphics.get(), xright, 0.0, Melder_fixed (xright, 6));
-	Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
-	Graphics_line (my d_graphics.get(), xleft, 0.0, xleft, 1.0);
-	Graphics_line (my d_graphics.get(), xright, 0.0, xright, 1.0);
-	Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
-	Graphics_xorOff (my d_graphics.get());
-}
-
-bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shiftKeyPressed) {
+	Graphics_xorOn (my d_graphics, Graphics_MAROON);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+	Graphics_text (my d_graphics, xleft, 1.0, Melder_fixed (xleft, 6));
+	Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_TOP);
+	Graphics_text (my d_graphics, xright, 1.0, Melder_fixed (xright, 6));
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_BOTTOM);
+	Graphics_text (my d_graphics, xleft, 0.0, Melder_fixed (xleft, 6));
+	Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+	Graphics_text (my d_graphics, xright, 0.0, Melder_fixed (xright, 6));
+	Graphics_setLineType (my d_graphics, Graphics_DOTTED);
+	Graphics_line (my d_graphics, xleft, 0.0, xleft, 1.0);
+	Graphics_line (my d_graphics, xright, 0.0, xright, 1.0);
+	Graphics_setLineType (my d_graphics, Graphics_DRAWN);
+	Graphics_xorOff (my d_graphics);
+}
+
+int structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shiftKeyPressed) {
 	bool drag = false;
 	double x = xbegin, y = ybegin;
 
@@ -1204,7 +1254,7 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 	 * Another example: if she shift-clicks near E, B will become (and stay) the anchor.
 	 */
 
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0, 1);
+	Graphics_setWindow (d_graphics, d_startWindow, d_endWindow, 0, 1);
 
 	double anchorForDragging = xbegin;   // the default (for if the shift key isn't pressed)
 	if (a_shiftKeyPressed) {
@@ -1213,38 +1263,38 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 		 * We should always end up with a real selection (B < E),
 		 * even if we start with the reversed temporal order (E < B).
 		 */
-		bool reversed = our d_startSelection > our d_endSelection;
-		double firstMark = reversed ? our d_endSelection : our d_startSelection;
-		double secondMark = reversed ? our d_startSelection : our d_endSelection;
+		bool reversed = d_startSelection > d_endSelection;
+		double firstMark = reversed ? d_endSelection : d_startSelection;
+		double secondMark = reversed ? d_startSelection : d_endSelection;
 		/*
 		 * Undraw the old selection.
 		 */
-		if (our d_endSelection > our d_startSelection) {
+		if (d_endSelection > d_startSelection) {
 			/*
 			 * Determine the visible part of the old selection.
 			 */
-			double startVisible = our d_startSelection > our d_startWindow ? our d_startSelection : our d_startWindow;
-			double endVisible = our d_endSelection < our d_endWindow ? our d_endSelection : our d_endWindow;
+			double startVisible = d_startSelection > d_startWindow ? d_startSelection : d_startWindow;
+			double endVisible = d_endSelection < d_endWindow ? d_endSelection : d_endWindow;
 			/*
 			 * Undraw the visible part of the old selection.
 			 */
 			if (endVisible > startVisible) {
 				v_unhighlightSelection (startVisible, endVisible, 0, 1);
-				//Graphics_flushWs (our d_graphics.get());
+				//Graphics_flushWs (d_graphics);
 			}
 		}
 		if (xbegin >= secondMark) {
 		 	/*
 			 * She clicked right from the second mark (usually E). We move E.
 			 */
-			our d_endSelection = xbegin;
-			anchorForDragging = our d_startSelection;
+			d_endSelection = xbegin;
+			anchorForDragging = d_startSelection;
 		} else if (xbegin <= firstMark) {
 		 	/*
 			 * She clicked left from the first mark (usually B). We move B.
 			 */
-			our d_startSelection = xbegin;
-			anchorForDragging = our d_endSelection;
+			d_startSelection = xbegin;
+			anchorForDragging = d_endSelection;
 		} else {
 			/*
 			 * She clicked in between the two marks. We move the nearest mark.
@@ -1258,45 +1308,45 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 				/*
 				 * Swap B and E.
 				 */
-				our d_startSelection = firstMark;
-				our d_endSelection = secondMark;
+				d_startSelection = firstMark;
+				d_endSelection = secondMark;
 			}
 			/*
 			 * Move the nearest mark.
 			 */
 			if (distanceOfClickToFirstMark < distanceOfClickToSecondMark) {
-				our d_startSelection = xbegin;
-				anchorForDragging = our d_endSelection;
+				d_startSelection = xbegin;
+				anchorForDragging = d_endSelection;
 			} else {
-				our d_endSelection = xbegin;
-				anchorForDragging = our d_startSelection;
+				d_endSelection = xbegin;
+				anchorForDragging = d_startSelection;
 			}
 		}
 		/*
 		 * Draw the new selection.
 		 */
-		if (our d_endSelection > our d_startSelection) {
+		if (d_endSelection > d_startSelection) {
 			/*
 			 * Determine the visible part of the new selection.
 			 */
-			double startVisible = our d_startSelection > our d_startWindow ? our d_startSelection : our d_startWindow;
-			double endVisible = our d_endSelection < our d_endWindow ? our d_endSelection : our d_endWindow;
+			double startVisible = d_startSelection > d_startWindow ? d_startSelection : d_startWindow;
+			double endVisible = d_endSelection < d_endWindow ? d_endSelection : d_endWindow;
 			/*
 			 * Draw the visible part of the new selection.
 			 */
 			if (endVisible > startVisible)
-				v_highlightSelection (startVisible, endVisible, 0.0, 1.0);
+				v_highlightSelection (startVisible, endVisible, 0, 1);
 		}
 	}
 	/*
 	 * Find out whether this is a click or a drag.
 	 */
     
-	while (Graphics_mouseStillDown (our d_graphics.get())) {
-		Graphics_getMouseLocation (our d_graphics.get(), & x, & y);
-		if (x < our d_startWindow) x = our d_startWindow;
-		if (x > our d_endWindow) x = our d_endWindow;
-		if (fabs (Graphics_dxWCtoMM (our d_graphics.get(), x - xbegin)) > 1.5) {
+	while (Graphics_mouseStillDown (d_graphics)) {
+		Graphics_getMouseLocation (d_graphics, & x, & y);
+		if (x < d_startWindow) x = d_startWindow;
+		if (x > d_endWindow) x = d_endWindow;
+		if (fabs (Graphics_dxWCtoMM (d_graphics, x - xbegin)) > 1.5) {
 			drag = true;
 			break;
 		}
@@ -1306,22 +1356,22 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 		/*
 		 * First undraw the old selection.
 		 */
-		if (our d_endSelection > our d_startSelection) {
+		if (d_endSelection > d_startSelection) {
 			/*
 			 * Determine the visible part of the old selection.
 			 */
-			double startVisible = our d_startSelection > our d_startWindow ? our d_startSelection : our d_startWindow;
-			double endVisible = our d_endSelection < our d_endWindow ? our d_endSelection : our d_endWindow;
+			double startVisible = d_startSelection > d_startWindow ? d_startSelection : d_startWindow;
+			double endVisible = d_endSelection < d_endWindow ? d_endSelection : d_endWindow;
 			/*
 			 * Undraw the visible part of the old selection.
 			 */
 			if (endVisible > startVisible)
-				v_unhighlightSelection (startVisible, endVisible, 0.0, 1.0);
+				v_unhighlightSelection (startVisible, endVisible, 0, 1);
 		}
 		/*
 		 * Draw the text at least once.
 		 */
-		/*if (x < our d_startWindow) x = our d_startWindow; else if (x > our d_endWindow) x = our d_endWindow;*/
+		/*if (x < d_startWindow) x = d_startWindow; else if (x > d_endWindow) x = d_endWindow;*/
         drawWhileDragging (this, anchorForDragging, x);
 		/*
 		 * Draw the dragged selection at least once.
@@ -1329,20 +1379,20 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 		{
 			double x1, x2;
 			if (x > anchorForDragging) x1 = anchorForDragging, x2 = x; else x1 = x, x2 = anchorForDragging;
-			v_highlightSelection (x1, x2, 0.0, 1.0);
+			v_highlightSelection (x1, x2, 0, 1);
 		}
 		/*
 		 * Drag for the new selection.
 		 */
         
-		while (Graphics_mouseStillDown (d_graphics.get()))
+		while (Graphics_mouseStillDown (d_graphics))
 		{
 			double xold = x, x1, x2;
-			Graphics_getMouseLocation (our d_graphics.get(), & x, & y);
+			Graphics_getMouseLocation (d_graphics, & x, & y);
 			/*
 			 * Clip to the visible window. Ideally, we should perform autoscrolling instead, though...
 			 */
-			if (x < our d_startWindow) x = our d_startWindow; else if (x > our d_endWindow) x = our d_endWindow;
+			if (x < d_startWindow) x = d_startWindow; else if (x > d_endWindow) x = d_endWindow;
             
 			if (x == xold)
 				continue;
@@ -1351,7 +1401,7 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 			 * Undraw previous dragged selection.
 			 */
 			if (xold > anchorForDragging) x1 = anchorForDragging, x2 = xold; else x1 = xold, x2 = anchorForDragging;
-			if (x1 != x2) v_unhighlightSelection (x1, x2, 0.0, 1.0);
+			if (x1 != x2) v_unhighlightSelection (x1, x2, 0, 1);
 			/*
 			 * Undraw the text.
 			 */
@@ -1364,49 +1414,51 @@ bool structFunctionEditor :: v_click (double xbegin, double ybegin, bool a_shift
 			 * Draw new dragged selection.
 			 */
 			if (x > anchorForDragging) x1 = anchorForDragging, x2 = x; else x1 = x, x2 = anchorForDragging;
-			if (x1 != x2) v_highlightSelection (x1, x2, 0.0, 1.0);
+			if (x1 != x2) v_highlightSelection (x1, x2, 0, 1);
         } ;
 		/*
 		 * Set the new selection.
 		 */
-		if (x > anchorForDragging) our d_startSelection = anchorForDragging, our d_endSelection = x;
-		else our d_startSelection = x, our d_endSelection = anchorForDragging;
+		if (x > anchorForDragging) d_startSelection = anchorForDragging, d_endSelection = x;
+		else d_startSelection = x, d_endSelection = anchorForDragging;
 	} else if (! a_shiftKeyPressed) {
 		/*
 		 * Move the cursor to the clicked position.
 		 */
-		our d_startSelection = our d_endSelection = xbegin;
+		d_startSelection = d_endSelection = xbegin;
 	}
 	return FunctionEditor_UPDATE_NEEDED;
 }
 
-bool structFunctionEditor :: v_clickB (double xWC, double /* yWC */) {
-	our d_startSelection = xWC;
-	if (our d_startSelection > our d_endSelection) {
-		double dummy = our d_startSelection;
-		our d_startSelection = our d_endSelection;
-		our d_endSelection = dummy;
+int structFunctionEditor :: v_clickB (double xWC, double yWC) {
+	(void) yWC;
+	d_startSelection = xWC;
+	if (d_startSelection > d_endSelection) {
+		double dummy = d_startSelection;
+		d_startSelection = d_endSelection;
+		d_endSelection = dummy;
 	}
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;
 }
 
-bool structFunctionEditor :: v_clickE (double xWC, double /* yWC */) {
-	our d_endSelection = xWC;
-	if (our d_startSelection > our d_endSelection) {
-		double dummy = our d_startSelection;
-		our d_startSelection = our d_endSelection;
-		our d_endSelection = dummy;
+int structFunctionEditor :: v_clickE (double xWC, double yWC) {
+	d_endSelection = xWC;
+	(void) yWC;
+	if (d_startSelection > d_endSelection) {
+		double dummy = d_startSelection;
+		d_startSelection = d_endSelection;
+		d_endSelection = dummy;
 	}
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;
 }
 
 void FunctionEditor_insetViewport (FunctionEditor me) {
-	Graphics_setViewport (my d_graphics.get(), my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN,
+	Graphics_setViewport (my d_graphics, my functionViewerLeft + MARGIN, my functionViewerRight - MARGIN,
 		BOTTOM_MARGIN + space * 3, my height - (TOP_MARGIN + space));
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, 0.0, 1.0);
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, 0, 1);
 }
 
-int structFunctionEditor :: v_playCallback (int phase, double /* a_tmin */, double a_tmax, double t) {
+int structFunctionEditor :: v_playCallback (int phase, double a_tmin, double a_tmax, double t) {
 	/*
 	 * This callback will often be called by the Melder workproc during playback.
 	 * However, it will sometimes be called by Melder_stopPlaying with phase=3.
@@ -1414,27 +1466,28 @@ int structFunctionEditor :: v_playCallback (int phase, double /* a_tmin */, doub
 	 * So we had better make no assumptions about the current viewport.
 	 */
 	double x1NDC, x2NDC, y1NDC, y2NDC;
-	Graphics_inqViewport (our d_graphics.get(), & x1NDC, & x2NDC, & y1NDC, & y2NDC);
+	(void) a_tmin;
+	Graphics_inqViewport (d_graphics, & x1NDC, & x2NDC, & y1NDC, & y2NDC);
 	FunctionEditor_insetViewport (this);
-	Graphics_xorOn (our d_graphics.get(), Graphics_MAROON);
+	Graphics_xorOn (d_graphics, Graphics_MAROON);
 	/*
 	 * Undraw the play cursor at its old location.
 	 * BUG: during scrolling, zooming, and exposure, an ugly line may remain.
 	 */
-	if (phase != 1 && playCursor >= our d_startWindow && playCursor <= our d_endWindow) {
-		Graphics_setLineWidth (our d_graphics.get(), 3.0);
-		Graphics_line (our d_graphics.get(), playCursor, 0.0, playCursor, 1.0);
-		Graphics_setLineWidth (our d_graphics.get(), 1.0);
+	if (phase != 1 && playCursor >= d_startWindow && playCursor <= d_endWindow) {
+		Graphics_setLineWidth (d_graphics, 3.0);
+		Graphics_line (d_graphics, playCursor, 0, playCursor, 1);
+		Graphics_setLineWidth (d_graphics, 1.0);
 	}
 	/*
 	 * Draw the play cursor at its new location.
 	 */
-	if (phase != 3 && t >= our d_startWindow && t <= our d_endWindow) {
-		Graphics_setLineWidth (our d_graphics.get(), 3.0);
-		Graphics_line (our d_graphics.get(), t, 0.0, t, 1.0);
-		Graphics_setLineWidth (our d_graphics.get(), 1.0);
+	if (phase != 3 && t >= d_startWindow && t <= d_endWindow) {
+		Graphics_setLineWidth (d_graphics, 3.0);
+		Graphics_line (d_graphics, t, 0, t, 1);
+		Graphics_setLineWidth (d_graphics, 1.0);
 	}
-	Graphics_xorOff (our d_graphics.get());
+	Graphics_xorOff (d_graphics);
 	/*
 	 * Usually, there will be an event test after each invocation of this callback,
 	 * because the asynchronicity is kMelder_asynchronicityLevel_INTERRUPTABLE or kMelder_asynchronicityLevel_ASYNCHRONOUS.
@@ -1442,18 +1495,16 @@ int structFunctionEditor :: v_playCallback (int phase, double /* a_tmin */, doub
 	 * there is no event test. Which means: no server round trip.
 	 * Which means: no automatic flushing of graphics output.
 	 * So: we force the flushing ourselves, lest we see too few moving cursors.
-	 *
-	 * At the moment, Cocoa seems to require this flushing even if the asynchronicity is kMelder_asynchronicityLevel_ASYNCHRONOUS.
 	 */
-	Graphics_flushWs (our d_graphics.get());
-	Graphics_setViewport (our d_graphics.get(), x1NDC, x2NDC, y1NDC, y2NDC);
+	Graphics_flushWs (d_graphics);
+	Graphics_setViewport (d_graphics, x1NDC, x2NDC, y1NDC, y2NDC);
 	playCursor = t;
 	if (phase == 3) {
 		if (t < a_tmax && MelderAudio_stopWasExplicit ()) {
-			if (t > our d_startSelection && t < our d_endSelection)
-				our d_startSelection = t;
+			if (t > d_startSelection && t < d_endSelection)
+				d_startSelection = t;
 			else
-				our d_startSelection = our d_endSelection = t;
+				d_startSelection = d_endSelection = t;
 			v_updateText ();
 			/*Graphics_updateWs (d_graphics);*/ drawNow (this);
 			updateGroup (this);
@@ -1464,16 +1515,17 @@ int structFunctionEditor :: v_playCallback (int phase, double /* a_tmin */, doub
 	return 1;
 }
 
-int theFunctionEditor_playCallback (FunctionEditor me, int phase, double a_tmin, double a_tmax, double t) {
+int theFunctionEditor_playCallback (void *void_me, int phase, double a_tmin, double a_tmax, double t) {
+	iam (FunctionEditor);
 	return my v_playCallback (phase, a_tmin, a_tmax, t);
 }
 
 void structFunctionEditor :: v_highlightSelection (double left, double right, double bottom, double top) {
-	Graphics_highlight (d_graphics.get(), left, right, bottom, top);
+	Graphics_highlight (d_graphics, left, right, bottom, top);
 }
 
 void structFunctionEditor :: v_unhighlightSelection (double left, double right, double bottom, double top) {
-	Graphics_unhighlight (d_graphics.get(), left, right, bottom, top);
+	Graphics_unhighlight (d_graphics, left, right, bottom, top);
 }
 
 void FunctionEditor_init (FunctionEditor me, const char32 *title, Function data) {
@@ -1488,17 +1540,17 @@ void FunctionEditor_init (FunctionEditor me, const char32 *title, Function data)
 		Melder_assert (XtWindow (my drawingArea -> d_widget));
 	#endif
 	my d_graphics = Graphics_create_xmdrawingarea (my drawingArea);
-	Graphics_setFontSize (my d_graphics.get(), 12);
+	Graphics_setFontSize (my d_graphics, 12);
 
 // This exdents because it's a hack:
-struct structGuiDrawingArea_ResizeEvent event { my drawingArea, 0 };
+struct structGuiDrawingAreaResizeEvent event = { my drawingArea, 0 };
 event. width  = GuiControl_getWidth  (my drawingArea);
 event. height = GuiControl_getHeight (my drawingArea);
 gui_drawingarea_cb_resize (me, & event);
 
 	my v_updateText ();
 	if (group_equalDomain (my tmin, my tmax))
-		gui_checkbutton_cb_group (me, nullptr);   // BUG: nullptr
+		gui_checkbutton_cb_group (me, NULL);   // BUG: NULL
 	my enableUpdates = true;
 }
 
@@ -1515,8 +1567,7 @@ void FunctionEditor_updateText (FunctionEditor me) {
 }
 
 void FunctionEditor_redraw (FunctionEditor me) {
-	//Graphics_updateWs (my d_graphics);
-	drawNow (me);
+	/*Graphics_updateWs (my d_graphics);*/ drawNow (me);
 }
 
 void FunctionEditor_enableUpdates (FunctionEditor me, bool enable) {
@@ -1529,81 +1580,81 @@ void FunctionEditor_ungroup (FunctionEditor me) {
 	GuiCheckButton_setValue (my groupButton, false);
 	int i = 1;
 	while (theGroup [i] != me) i ++;
-	theGroup [i] = nullptr;
+	theGroup [i] = NULL;
 	nGroup --;
 	my v_updateText ();
-	Graphics_updateWs (my d_graphics.get());   // for setting buttons in v_draw() method
+	Graphics_updateWs (my d_graphics);   // for setting buttons in v_draw() method
 }
 
 void FunctionEditor_drawRangeMark (FunctionEditor me, double yWC, const char32 *yWC_string, const char32 *units, int verticalAlignment) {
 	static MelderString text { 0 };
 	MelderString_copy (& text, yWC_string, units);
-	double textWidth = Graphics_textWidth (my d_graphics.get(), text.string) + Graphics_dxMMtoWC (my d_graphics.get(), 0.5);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-	Graphics_line (my d_graphics.get(), my d_endWindow, yWC, my d_endWindow + textWidth, yWC);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, verticalAlignment);
-	if (verticalAlignment == Graphics_BOTTOM) yWC -= Graphics_dyMMtoWC (my d_graphics.get(), 0.5);
-	Graphics_text (my d_graphics.get(), my d_endWindow, yWC, text.string);
+	double textWidth = Graphics_textWidth (my d_graphics, text.string) + Graphics_dxMMtoWC (my d_graphics, 0.5);
+	Graphics_setColour (my d_graphics, Graphics_BLUE);
+	Graphics_line (my d_graphics, my d_endWindow, yWC, my d_endWindow + textWidth, yWC);
+	Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, verticalAlignment);
+	if (verticalAlignment == Graphics_BOTTOM) yWC -= Graphics_dyMMtoWC (my d_graphics, 0.5);
+	Graphics_text (my d_graphics, my d_endWindow, yWC, text.string);
 }
 
 void FunctionEditor_drawCursorFunctionValue (FunctionEditor me, double yWC, const char32 *yWC_string, const char32 *units) {
-	Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-	Graphics_line (my d_graphics.get(), my d_startWindow, yWC, 0.99 * my d_startWindow + 0.01 * my d_endWindow, yWC);
-	Graphics_fillCircle_mm (my d_graphics.get(), 0.5 * (my d_startSelection + my d_endSelection), yWC, 1.5);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-	Graphics_text (my d_graphics.get(), my d_startWindow, yWC,   yWC_string, units);
+	Graphics_setColour (my d_graphics, Graphics_CYAN);
+	Graphics_line (my d_graphics, my d_startWindow, yWC, 0.99 * my d_startWindow + 0.01 * my d_endWindow, yWC);
+	Graphics_fillCircle_mm (my d_graphics, 0.5 * (my d_startSelection + my d_endSelection), yWC, 1.5);
+	Graphics_setColour (my d_graphics, Graphics_BLUE);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+	Graphics_text (my d_graphics, my d_startWindow, yWC,   yWC_string, units);
 }
 
 void FunctionEditor_insertCursorFunctionValue (FunctionEditor me, double yWC, const char32 *yWC_string, const char32 *units, double minimum, double maximum) {
 	double textX = my d_endWindow, textY = yWC;
-	int tooHigh = Graphics_dyWCtoMM (my d_graphics.get(), maximum - textY) < 5.0;
-	int tooLow = Graphics_dyWCtoMM (my d_graphics.get(), textY - minimum) < 5.0;
+	int tooHigh = Graphics_dyWCtoMM (my d_graphics, maximum - textY) < 5.0;
+	int tooLow = Graphics_dyWCtoMM (my d_graphics, textY - minimum) < 5.0;
 	if (yWC < minimum || yWC > maximum) return;
-	Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-	Graphics_line (my d_graphics.get(), 0.99 * my d_endWindow + 0.01 * my d_startWindow, yWC, my d_endWindow, yWC);
-	Graphics_fillCircle_mm (my d_graphics.get(), 0.5 * (my d_startSelection + my d_endSelection), yWC, 1.5);
+	Graphics_setColour (my d_graphics, Graphics_CYAN);
+	Graphics_line (my d_graphics, 0.99 * my d_endWindow + 0.01 * my d_startWindow, yWC, my d_endWindow, yWC);
+	Graphics_fillCircle_mm (my d_graphics, 0.5 * (my d_startSelection + my d_endSelection), yWC, 1.5);
 	if (tooHigh) {
 		if (tooLow) textY = 0.5 * (minimum + maximum);
-		else textY = maximum - Graphics_dyMMtoWC (my d_graphics.get(), 5.0);
+		else textY = maximum - Graphics_dyMMtoWC (my d_graphics, 5.0);
 	} else if (tooLow) {
-		textY = minimum + Graphics_dyMMtoWC (my d_graphics.get(), 5.0);
+		textY = minimum + Graphics_dyMMtoWC (my d_graphics, 5.0);
 	}
 	static MelderString text { 0 };
 	MelderString_copy (& text, yWC_string, units);
-	double textWidth = Graphics_textWidth (my d_graphics.get(), text.string);
-	Graphics_fillCircle_mm (my d_graphics.get(), my d_endWindow + textWidth + Graphics_dxMMtoWC (my d_graphics.get(), 1.5), textY, 1.5);
-	Graphics_setColour (my d_graphics.get(), Graphics_RED);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-	Graphics_text (my d_graphics.get(), textX, textY, text.string);
+	double textWidth = Graphics_textWidth (my d_graphics, text.string);
+	Graphics_fillCircle_mm (my d_graphics, my d_endWindow + textWidth + Graphics_dxMMtoWC (my d_graphics, 1.5), textY, 1.5);
+	Graphics_setColour (my d_graphics, Graphics_RED);
+	Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_HALF);
+	Graphics_text (my d_graphics, textX, textY, text.string);
 }
 
 void FunctionEditor_drawHorizontalHair (FunctionEditor me, double yWC, const char32 *yWC_string, const char32 *units) {
-	Graphics_setColour (my d_graphics.get(), Graphics_RED);
-	Graphics_line (my d_graphics.get(), my d_startWindow, yWC, my d_endWindow, yWC);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-	Graphics_text (my d_graphics.get(), my d_startWindow, yWC,   yWC_string, units);
+	Graphics_setColour (my d_graphics, Graphics_RED);
+	Graphics_line (my d_graphics, my d_startWindow, yWC, my d_endWindow, yWC);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+	Graphics_text (my d_graphics, my d_startWindow, yWC,   yWC_string, units);
 }
 
 void FunctionEditor_drawGridLine (FunctionEditor me, double yWC) {
-	Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-	Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
-	Graphics_line (my d_graphics.get(), my d_startWindow, yWC, my d_endWindow, yWC);
-	Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
+	Graphics_setColour (my d_graphics, Graphics_CYAN);
+	Graphics_setLineType (my d_graphics, Graphics_DOTTED);
+	Graphics_line (my d_graphics, my d_startWindow, yWC, my d_endWindow, yWC);
+	Graphics_setLineType (my d_graphics, Graphics_DRAWN);
 }
 
 void FunctionEditor_garnish (FunctionEditor me) {
 	if (my pref_picture_drawSelectionTimes ()) {
 		if (my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow)
-			Graphics_markTop (my pictureGraphics, my d_startSelection, true, true, false, nullptr);
+			Graphics_markTop (my pictureGraphics, my d_startSelection, true, true, false, NULL);
 		if (my d_endSelection != my d_startSelection && my d_endSelection >= my d_startWindow && my d_endSelection <= my d_endWindow)
-			Graphics_markTop (my pictureGraphics, my d_endSelection, true, true, false, nullptr);
+			Graphics_markTop (my pictureGraphics, my d_endSelection, true, true, false, NULL);
 	}
 	if (my pref_picture_drawSelectionHairs ()) {
 		if (my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow)
-			Graphics_markTop (my pictureGraphics, my d_startSelection, false, false, true, nullptr);
+			Graphics_markTop (my pictureGraphics, my d_startSelection, false, false, true, NULL);
 		if (my d_endSelection != my d_startSelection && my d_endSelection >= my d_startWindow && my d_endSelection <= my d_endWindow)
-			Graphics_markTop (my pictureGraphics, my d_endSelection, false, false, true, nullptr);
+			Graphics_markTop (my pictureGraphics, my d_endSelection, false, false, true, NULL);
 	}
 }
 
diff --git a/fon/FunctionEditor.h b/fon/FunctionEditor.h
index 4b6bae0..2f64a94 100644
--- a/fon/FunctionEditor.h
+++ b/fon/FunctionEditor.h
@@ -39,7 +39,7 @@ Thing_define (FunctionEditor, Editor) {
 		/*    tmin <= startWindow < endWindow <= tmax; */
 		/*    tmin <= (startSelection, endSelection) <= tmax; */
 
-	autoGraphics d_graphics;   // used in the 'draw' method
+	Graphics d_graphics;   // used in the 'draw' method
 	short functionViewerLeft, functionViewerRight;   // size of drawing areas in pixels
 	short selectionViewerLeft, selectionViewerRight;   // size of drawing areas in pixels
 	short height;   // size of drawing areas in pixels
@@ -59,7 +59,7 @@ Thing_define (FunctionEditor, Editor) {
 	double marker [1 + 3], playCursor, startZoomHistory, endZoomHistory;
 	int numberOfMarkers;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
@@ -95,7 +95,7 @@ Thing_define (FunctionEditor, Editor) {
 		/*
 		 * Message: "the user clicked in one of the rectangles above or below the data window."
 		 */
-	virtual bool v_click (double xWC, double yWC, bool shiftKeyPressed);
+	virtual int v_click (double xWC, double yWC, bool shiftKeyPressed);
 		/*
 		 * Message: "the user clicked in data window with the left mouse button."
 		 * 'xWC' is the time;
@@ -111,8 +111,8 @@ Thing_define (FunctionEditor, Editor) {
 		 * Behaviour of FunctionEditor::click ():
 		 *    moves the cursor to 'xWC', drags to create a selection, or extends the selection.
 		 */
-	virtual bool v_clickB (double xWC, double yWC);
-	virtual bool v_clickE (double xWC, double yWC);
+	virtual int v_clickB (double xWC, double yWC);
+	virtual int v_clickE (double xWC, double yWC);
 	virtual int v_playCallback (int phase, double tmin, double tmax, double t);
 	virtual void v_updateText () { }
 	virtual void v_prefs_addFields (EditorCommand) { }
@@ -135,7 +135,7 @@ Thing_define (FunctionEditor, Editor) {
     #include "FunctionEditor_prefs.h"
 };
 
-int theFunctionEditor_playCallback (FunctionEditor me, int phase, double tmin, double tmax, double t);
+int theFunctionEditor_playCallback (void *void_me, int phase, double tmin, double tmax, double t);
 
 /*
 	Attributes:
@@ -161,8 +161,8 @@ int theFunctionEditor_playCallback (FunctionEditor me, int phase, double tmin, d
 */
 
 
-#define FunctionEditor_UPDATE_NEEDED  true
-#define FunctionEditor_NO_UPDATE_NEEDED  false
+#define FunctionEditor_UPDATE_NEEDED  1
+#define FunctionEditor_NO_UPDATE_NEEDED  0
 
 void FunctionEditor_init (FunctionEditor me, const char32 *title, Function data);
 /*
diff --git a/fon/Function_def.h b/fon/Function_def.h
index d0efa90..b913f78 100644
--- a/fon/Function_def.h
+++ b/fon/Function_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Function
-oo_DEFINE_CLASS (Function, Daata)
+oo_DEFINE_CLASS (Function, Data)
 
 	oo_DOUBLE (xmin)
 	oo_DOUBLE (xmax)
diff --git a/fon/Harmonicity.cpp b/fon/Harmonicity.cpp
index 6cc70ee..920edfd 100644
--- a/fon/Harmonicity.cpp
+++ b/fon/Harmonicity.cpp
@@ -1,6 +1,6 @@
 /* Harmonicity.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -79,7 +79,7 @@ double Harmonicity_getQuantile (Harmonicity me, double quantile) {
 }
 
 void structHarmonicity :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -119,31 +119,31 @@ void structHarmonicity :: v_info () {
 	}
 }
 
-autoHarmonicity Harmonicity_create (double tmin, double tmax, long nt, double dt, double t1) {
+Harmonicity Harmonicity_create (double tmin, double tmax, long nt, double dt, double t1) {
 	try {
 		autoHarmonicity me = Thing_new (Harmonicity);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, 1, 1, 1, 1, 1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, 1, 1, 1, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Harmonicity not created.");
 	}
 }
 
-autoMatrix Harmonicity_to_Matrix (Harmonicity me) {
+Matrix Harmonicity_to_Matrix (Harmonicity me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMvector_copyElements (my z [1], thy z [1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"not converted to Matrix.");
 	}
 }
 
-autoHarmonicity Matrix_to_Harmonicity (Matrix me) {
+Harmonicity Matrix_to_Harmonicity (Matrix me) {
 	try {
 		autoHarmonicity thee = Harmonicity_create (my xmin, my xmax, my nx, my dx, my x1);
 		NUMvector_copyElements (my z [1], thy z [1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U"not converted to Harmonicity.");
 	}
diff --git a/fon/Harmonicity.h b/fon/Harmonicity.h
index 8e04100..07a70f3 100644
--- a/fon/Harmonicity.h
+++ b/fon/Harmonicity.h
@@ -34,8 +34,7 @@ Thing_define (Harmonicity, Vector) {
 		nx >= 1			// Number of time slices.
 		dx > 0.0			// Time step (seconds).
 		x1				// Centre of first time slice (seconds).
-		ymin, ymax, dy, y1 = 1.0
-		ny = 1
+		ymin, ymax, ny, dy, y1 = 1
 		z [1] [1..nt]
 			// The harmonic strength, a real number between -150 dB and +150 dB:
 			// -150 dB means not periodic at all, +150 dB means perfectly periodic.
@@ -43,7 +42,7 @@ Thing_define (Harmonicity, Vector) {
 			// -200 means silence.
 */
 
-autoHarmonicity Harmonicity_create (double tmin, double tmax, long nt, double dt, double t1);
+Harmonicity Harmonicity_create (double tmin, double tmax, long nt, double dt, double t1);
 
 void Harmonicity_draw (Harmonicity me, double tmin, double tmax, double min, double max);
 /*
@@ -56,8 +55,8 @@ double Harmonicity_getMean (Harmonicity me, double tmin, double tmax);
 double Harmonicity_getStandardDeviation (Harmonicity me, double tmin, double tmax);
 double Harmonicity_getQuantile (Harmonicity me, double quantile);
 
-autoMatrix Harmonicity_to_Matrix (Harmonicity me);
-autoHarmonicity Matrix_to_Harmonicity (Matrix me);
+Matrix Harmonicity_to_Matrix (Harmonicity me);
+Harmonicity Matrix_to_Harmonicity (Matrix me);
 
 /* End of file Harmonicity.h */
 #endif
diff --git a/fon/Harmonics.h b/fon/Harmonics.h
index 88162c1..e634bbd 100644
--- a/fon/Harmonics.h
+++ b/fon/Harmonics.h
@@ -23,24 +23,25 @@
 #include "Sound.h"
 
 #include "Harmonics_def.h"
+oo_CLASS_CREATE (Harmonics, Data);
 
-autoHarmonics Harmonics_create (long numberOfHarmonics);
+Harmonics Harmonics_create (long numberOfHarmonics);
 
 void Harmonics_draw (Harmonics me, Graphics g, double fmin, double fmax,
 	double minimum, double maximum, int garnish, const char32 *method);
 
-autoMatrix Harmonics_to_Matrix (Harmonics me);
-autoHarmonics Matrix_to_Harmonics (Matrix me);
+Matrix Harmonics_to_Matrix (Harmonics me);
+Harmonics Matrix_to_Harmonics (Matrix me);
 
 /* Direct computation. */
 
-autoHarmonics PointProcess_Sound_to_Harmonics (PointProcess pulses, Sound sound,
+Harmonics PointProcess_Sound_to_Harmonics (PointProcess pulses, Sound sound,
 	long maximumHarmonic,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor);
 
 /* Shortcut. */
 
-autoHarmonics Sound_to_Harmonics (Sound me, double bandwidth);
+Harmonics Sound_to_Harmonics (Sound me, double bandwidth);
 
 /* End of file Harmonics.h */
 #endif
diff --git a/fon/Harmonics_def.h b/fon/Harmonics_def.h
index 83ed24d..d218081 100644
--- a/fon/Harmonics_def.h
+++ b/fon/Harmonics_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Harmonics
-oo_DEFINE_CLASS (Harmonics, Daata)
+oo_DEFINE_CLASS (Harmonics, Data)
 
 	oo_LONG (numberOfHarmonics)
 
diff --git a/fon/Image.h b/fon/Image.h
index 962d3d9..7fd51b8 100644
--- a/fon/Image.h
+++ b/fon/Image.h
@@ -23,6 +23,7 @@
 #include "Graphics.h"
 
 #include "Image_def.h"
+oo_CLASS_CREATE (Image, Sampled);
 
 /*
 	An object of type Image represents a quantized function z (x, y)
@@ -42,7 +43,7 @@
 //	 double ymin, double ymax, long ny, double dy, double y1);
 /*
 	Function:
-		return a new empty Image.
+		return a new empty Image, or NULL if out of memory.
 	Preconditions:
 		xmin <= xmax;   ymin <= ymax;
 		nx >= 1;  ny >= 1;
diff --git a/fon/Intensity.cpp b/fon/Intensity.cpp
index 9b68fdd..fa4727b 100644
--- a/fon/Intensity.cpp
+++ b/fon/Intensity.cpp
@@ -1,6 +1,6 @@
 /* Intensity.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 Thing_implement (Intensity, Vector, 2);
 
 void structIntensity :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -57,41 +57,38 @@ void Intensity_init (Intensity me, double tmin, double tmax, long nt, double dt,
 	Matrix_init (me, tmin, tmax, nt, dt, t1, 1.0, 1.0, 1, 1.0, 1.0);
 }
 
-autoIntensity Intensity_create (double tmin, double tmax, long nt, double dt, double t1) {
+Intensity Intensity_create (double tmin, double tmax, long nt, double dt, double t1) {
 	try {
 		autoIntensity me = Thing_new (Intensity);
-		Intensity_init (me.get(), tmin, tmax, nt, dt, t1);
-		return me;
+		Intensity_init (me.peek(), tmin, tmax, nt, dt, t1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Intensity not created.");
 	}
 }
 
-autoMatrix Intensity_to_Matrix (Intensity me) {
+Matrix Intensity_to_Matrix (Intensity me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not converted to Matrix.");
+		Melder_throw (me, U": not converted to Intensity.");
 	}
 }
 
-autoIntensity Matrix_to_Intensity (Matrix me) {
+Intensity Matrix_to_Intensity (Matrix me) {
 	try {
 		autoIntensity thee = Thing_new (Intensity);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
-		Melder_throw (me, U": not converted to Intensity.");
+		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
 void Intensity_drawInside (Intensity me, Graphics g, double tmin, double tmax, double minimum, double maximum) {
-	if (tmax <= tmin) {
-		tmin = my xmin;   // autowindow
-		tmax = my xmax;
-	}
+	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindow
 	long itmin, itmax;
 	Matrix_getWindowSamplesX (me, tmin, tmax, & itmin, & itmax);
 	if (maximum <= minimum)
@@ -109,10 +106,10 @@ void Intensity_draw (Intensity me, Graphics g, double tmin, double tmax,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Intensity (dB)");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Intensity (dB)");
 	}
 }
 
@@ -124,7 +121,7 @@ double Intensity_getAverage (Intensity me, double tmin, double tmax, int averagi
 	return
 		averagingMethod == Intensity_averaging_MEDIAN ?
 			Intensity_getQuantile (me, tmin, tmax, 0.50) :
-			Sampled_getMean_standardUnit (me, tmin, tmax, 0, averagingMethod, true);
+			Sampled_getMean_standardUnit (me, tmin, tmax, 0, averagingMethod, TRUE);
 }
 
 /* End of file Intensity.cpp */
diff --git a/fon/Intensity.h b/fon/Intensity.h
index ba2ec7e..c0f522b 100644
--- a/fon/Intensity.h
+++ b/fon/Intensity.h
@@ -42,13 +42,13 @@ Thing_define (Intensity, Vector) {
 		override;
 };
 
-autoIntensity Intensity_create (double tmin, double tmax, long nt, double dt, double t1);
+Intensity Intensity_create (double tmin, double tmax, long nt, double dt, double t1);
 
 void Intensity_init (Intensity me, double tmin, double tmax, long nt, double dt, double t1);
 
-autoMatrix Intensity_to_Matrix (Intensity me);
+Matrix Intensity_to_Matrix (Intensity me);
 
-autoIntensity Matrix_to_Intensity (Matrix me);
+Intensity Matrix_to_Intensity (Matrix me);
 
 void Intensity_drawInside (Intensity me, Graphics g, double tmin, double tmax,
 	double minimum, double maximum);
diff --git a/fon/IntensityTier.cpp b/fon/IntensityTier.cpp
index 52ba26c..920bc6f 100644
--- a/fon/IntensityTier.cpp
+++ b/fon/IntensityTier.cpp
@@ -1,6 +1,6 @@
 /* IntensityTier.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,11 +21,11 @@
 
 Thing_implement (IntensityTier, RealTier, 0);
 
-autoIntensityTier IntensityTier_create (double tmin, double tmax) {
+IntensityTier IntensityTier_create (double tmin, double tmax) {
 	try {
 		autoIntensityTier me = Thing_new (IntensityTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"IntensityTier not created.");
 	}
@@ -37,73 +37,69 @@ void IntensityTier_draw (IntensityTier me, Graphics g, double tmin, double tmax,
 	RealTier_draw (me, g, tmin, tmax, ymin, ymax, garnish, method, U"Intensity (dB)");
 }
 
-autoIntensityTier PointProcess_upto_IntensityTier (PointProcess me, double intensity) {
+IntensityTier PointProcess_upto_IntensityTier (PointProcess me, double intensity) {
 	try {
-		autoIntensityTier thee = PointProcess_upto_RealTier (me, intensity, classIntensityTier).static_cast_move<structIntensityTier>();
-		return thee;
+		return (IntensityTier) PointProcess_upto_RealTier (me, intensity, classIntensityTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to IntensityTier.");
 	}
 }
 
-autoIntensityTier Intensity_downto_IntensityTier (Intensity me) {
+IntensityTier Intensity_downto_IntensityTier (Intensity me) {
 	try {
-		autoIntensityTier thee = Vector_to_RealTier (me, 1, classIntensityTier).static_cast_move<structIntensityTier>();
-		return thee;
+		return (IntensityTier) Vector_to_RealTier (me, 1, classIntensityTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to IntensityTier.");
 	}
 }
 
-autoIntensityTier Intensity_to_IntensityTier_peaks (Intensity me) {
+IntensityTier Intensity_to_IntensityTier_peaks (Intensity me) {
 	try {
-		autoIntensityTier thee = Vector_to_RealTier_peaks (me, 1, classIntensityTier).static_cast_move<structIntensityTier>();
-		return thee;
+		return (IntensityTier) Vector_to_RealTier_peaks (me, 1, classIntensityTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": peaks not converted to IntensityTier.");
 	}
 }
 
-autoIntensityTier Intensity_to_IntensityTier_valleys (Intensity me) {
+IntensityTier Intensity_to_IntensityTier_valleys (Intensity me) {
 	try {
-		autoIntensityTier thee = Vector_to_RealTier_valleys (me, 1, classIntensityTier).static_cast_move<structIntensityTier>();
-		return thee;
+		return (IntensityTier) Vector_to_RealTier_valleys (me, 1, classIntensityTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": valleys not converted to IntensityTier.");
 	}
 }
 
-autoIntensityTier Intensity_PointProcess_to_IntensityTier (Intensity me, PointProcess pp) {
+IntensityTier Intensity_PointProcess_to_IntensityTier (Intensity me, PointProcess pp) {
 	try {
 		autoIntensityTier temp = Intensity_downto_IntensityTier (me);
-		autoIntensityTier thee = IntensityTier_PointProcess_to_IntensityTier (temp.get(), pp);
-		return thee;
+		autoIntensityTier thee = IntensityTier_PointProcess_to_IntensityTier (temp.peek(), pp);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", pp, U": not converted to IntensityTier.");
 	}
 }
 
-autoIntensityTier IntensityTier_PointProcess_to_IntensityTier (IntensityTier me, PointProcess pp) {
+IntensityTier IntensityTier_PointProcess_to_IntensityTier (IntensityTier me, PointProcess pp) {
 	try {
-		if (my points.size == 0) Melder_throw (U"No intensity points.");
+		if (my points -> size == 0) Melder_throw (U"No intensity points.");
 		autoIntensityTier thee = IntensityTier_create (pp -> xmin, pp -> xmax);
 		for (long i = 1; i <= pp -> nt; i ++) {
 			double time = pp -> t [i];
 			double value = RealTier_getValueAtTime (me, time);
-			RealTier_addPoint (thee.get(), time, value);
+			RealTier_addPoint (thee.peek(), time, value);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", pp, U": not converted to IntensityTier.");
 	}
 }
 
-autoTableOfReal IntensityTier_downto_TableOfReal (IntensityTier me) {
+TableOfReal IntensityTier_downto_TableOfReal (IntensityTier me) {
 	return RealTier_downto_TableOfReal (me, U"Time (s)", U"Intensity (dB)");
 }
 
 void Sound_IntensityTier_multiply_inline (Sound me, IntensityTier intensity) {
-	if (intensity -> points.size == 0) return;
+	if (intensity -> points -> size == 0) return;
 	for (long isamp = 1; isamp <= my nx; isamp ++) {
 		double t = my x1 + (isamp - 1) * my dx;
 		double factor = pow (10, RealTier_getValueAtTime (intensity, t) / 20);
@@ -113,12 +109,12 @@ void Sound_IntensityTier_multiply_inline (Sound me, IntensityTier intensity) {
 	}
 }
 
-autoSound Sound_IntensityTier_multiply (Sound me, IntensityTier intensity, int scale) {
+Sound Sound_IntensityTier_multiply (Sound me, IntensityTier intensity, int scale) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_IntensityTier_multiply_inline (thee.get(), intensity);
-		if (scale) Vector_scale (thee.get(), 0.9);
-		return thee;
+		Sound_IntensityTier_multiply_inline (thee.peek(), intensity);
+		if (scale) Vector_scale (thee.peek(), 0.9);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not multiplied with ", intensity, U".");
 	}
diff --git a/fon/IntensityTier.h b/fon/IntensityTier.h
index edacbd9..45277bf 100644
--- a/fon/IntensityTier.h
+++ b/fon/IntensityTier.h
@@ -29,20 +29,20 @@ Thing_define (IntensityTier, RealTier) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoIntensityTier IntensityTier_create (double tmin, double tmax);
+IntensityTier IntensityTier_create (double tmin, double tmax);
 
 void IntensityTier_draw (IntensityTier me, Graphics g, double tmin, double tmax,
 	double ymin, double ymax, const char32 *method, int garnish);
 
-autoIntensityTier PointProcess_upto_IntensityTier (PointProcess me, double intensity);
-autoIntensityTier Intensity_downto_IntensityTier (Intensity me);
-autoIntensityTier Intensity_to_IntensityTier_peaks (Intensity me);
-autoIntensityTier Intensity_to_IntensityTier_valleys (Intensity me);
-autoIntensityTier Intensity_PointProcess_to_IntensityTier (Intensity me, PointProcess pp);
-autoIntensityTier IntensityTier_PointProcess_to_IntensityTier (IntensityTier me, PointProcess pp);
-autoTableOfReal IntensityTier_downto_TableOfReal (IntensityTier me);
+IntensityTier PointProcess_upto_IntensityTier (PointProcess me, double intensity);
+IntensityTier Intensity_downto_IntensityTier (Intensity me);
+IntensityTier Intensity_to_IntensityTier_peaks (Intensity me);
+IntensityTier Intensity_to_IntensityTier_valleys (Intensity me);
+IntensityTier Intensity_PointProcess_to_IntensityTier (Intensity me, PointProcess pp);
+IntensityTier IntensityTier_PointProcess_to_IntensityTier (IntensityTier me, PointProcess pp);
+TableOfReal IntensityTier_downto_TableOfReal (IntensityTier me);
 void Sound_IntensityTier_multiply_inline (Sound me, IntensityTier intensity);
-autoSound Sound_IntensityTier_multiply (Sound me, IntensityTier intensity, int scale);
+Sound Sound_IntensityTier_multiply (Sound me, IntensityTier intensity, int scale);
 
 /* End of file IntensityTier.h */
 #endif
diff --git a/fon/IntensityTierEditor.cpp b/fon/IntensityTierEditor.cpp
index d227bd4..43e2978 100644
--- a/fon/IntensityTierEditor.cpp
+++ b/fon/IntensityTierEditor.cpp
@@ -1,6 +1,6 @@
 /* IntensityTierEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 
 Thing_implement (IntensityTierEditor, RealTierEditor, 0);
 
-static void menu_cb_IntensityTierHelp (IntensityTierEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"IntensityTier"); }
+static void menu_cb_IntensityTierHelp (EDITOR_ARGS) { EDITOR_IAM (IntensityTierEditor); Melder_help (U"IntensityTier"); }
 
 void structIntensityTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	IntensityTierEditor_Parent :: v_createHelpMenuItems (menu);
@@ -33,15 +33,15 @@ void structIntensityTierEditor :: v_play (double a_tmin, double a_tmax) {
 	if (our d_sound.data) {
 		Sound_playPart (our d_sound.data, a_tmin, a_tmax, theFunctionEditor_playCallback, this);
 	} else {
-		//IntensityTier_playPart (our data, a_tmin, a_tmax, false);
+		//IntensityTier_playPart (our data, a_tmin, a_tmax, FALSE);
 	}
 }
 
-autoIntensityTierEditor IntensityTierEditor_create (const char32 *title, IntensityTier intensity, Sound sound, bool ownSound) {
+IntensityTierEditor IntensityTierEditor_create (const char32 *title, IntensityTier intensity, Sound sound, bool ownSound) {
 	try {
 		autoIntensityTierEditor me = Thing_new (IntensityTierEditor);
-		RealTierEditor_init (me.get(), title, (RealTier) intensity, sound, ownSound);
-		return me;
+		RealTierEditor_init (me.peek(), title, (RealTier) intensity, sound, ownSound);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"IntensityTier window not created.");
 	}
diff --git a/fon/IntensityTierEditor.h b/fon/IntensityTierEditor.h
index 10630fc..8d500e2 100644
--- a/fon/IntensityTierEditor.h
+++ b/fon/IntensityTierEditor.h
@@ -54,10 +54,10 @@ Thing_define (IntensityTierEditor, RealTierEditor) {
 		override { return U"Maximum intensity"; }
 };
 
-autoIntensityTierEditor IntensityTierEditor_create (const char32 *title,
+IntensityTierEditor IntensityTierEditor_create (const char32 *title,
 	IntensityTier intensity, Sound sound, bool ownSound);
 /*
-	'sound' may be null.
+	'sound' may be NULL.
 */
 
 /* End of file IntensityTierEditor.h */
diff --git a/fon/Label.cpp b/fon/Label.cpp
index 22fc194..20bf76a 100644
--- a/fon/Label.cpp
+++ b/fon/Label.cpp
@@ -1,6 +1,6 @@
 /* Label.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,17 +21,17 @@
 
 Thing_implement (Autosegment, Function, 0);
 
-void structAutosegment :: v_copy (Daata thee_Daata) {
-	Autosegment thee = static_cast <Autosegment> (thee_Daata);
+void structAutosegment :: v_copy (thou) {
+	thouart (Autosegment);
 	Autosegment_Parent :: v_copy (thee);
 	if (name) Thing_setName (thee, name);
 }
 
-bool structAutosegment :: v_equal (Daata thee_Daata) {
-	Autosegment thee = static_cast <Autosegment> (thee_Daata);
+bool structAutosegment :: v_equal (thou) {
+	thouart (Autosegment);
 	if (! Autosegment_Parent :: v_equal (thee)) return false;
-	if (! our name && ! thy name) return true;   // shortcut: no names
-	if (! our name || ! thy name) return false;
+	if (name == NULL && thy name == NULL) return true;   // shortcut: no names
+	if (name == NULL || thy name == NULL) return false;
 	return str32equ (name, thy name);
 }
 
@@ -41,53 +41,93 @@ static struct structData_Description theAutosegment_description [] = {
 	{ 0 } };
 Data_Description structAutosegment :: s_description = & theAutosegment_description [0];
 
-autoAutosegment Autosegment_create (double tmin, double tmax, const char32 *label) {
+Autosegment Autosegment_create (double tmin, double tmax, const char32 *label) {
 	try {
 		autoAutosegment me = Thing_new (Autosegment);
-		Function_init (me.get(), tmin, tmax);
-		if (label) {
-			Thing_setName (me.get(), label);
+		Function_init (me.peek(), tmin, tmax);
+		if (label != NULL) {
+			Thing_setName (me.peek(), label);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Autosegment not created.");
 	}
 }
 
-/********** class Tier **********/
+int structTier :: compare (I, thou) {
+	iam (Function); thouart (Function);
+	if (my xmin < thy xmin) return -1;
+	if (my xmin > thy xmin) return 1;
+	if (my xmax < thy xmax) return -1;
+	if (my xmax > thy xmax) return 1;
+	return 0;
+}
 
 Thing_implement (Tier, Sorted, 0);
 
-long Tier_timeToIndex (Tier me, double time) {
+void Tier_init (I, long initialCapacity) {
+	iam (Tier);
+	Sorted_init (me, classAutosegment, initialCapacity);
+	Collection_addItem (me, Autosegment_create (-1e30, 1e30, NULL));
+}
+
+Tier Tier_create (long initialCapacity) {
+	try {
+		autoTier me = Thing_new (Tier);
+		Tier_init (me.peek(), initialCapacity);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Tier not created.");
+	}
+}
+
+long Tier_timeToIndex (Tier me, double t) {
 	for (long i = 1; i <= my size; i ++) {
-		Autosegment interval = my at [i];
-		if (time >= interval -> xmin && time < interval -> xmax)
+		Autosegment interval = (Autosegment) my item [i];
+		if (t >= interval -> xmin && t < interval -> xmax)
 			return i;
 	}
-	return 0;   // empty tier or very large time
+	return 0;   /* Empty tier or very large t. */
 }
 
 Thing_implement (Label, Ordered, 0);
 
+void Label_init (I, long initialNumberOfTiers) {
+	iam (Label);
+	Ordered_init (me, classTier, initialNumberOfTiers);
+	for (long i = 1; i <= initialNumberOfTiers; i ++) {
+		Collection_addItem (me, Tier_create (10));
+	}
+}
+
+Label Label_create (long initialNumberOfTiers) {
+	try {
+		autoLabel me = Thing_new (Label);
+		Label_init (me.peek(), initialNumberOfTiers);
+		return me.transfer();
+	} catch (MelderError) {
+		Melder_throw (U"Label not created.");
+	}
+}
+
 void Label_addTier (Label me) {
-	autoTier tier = Tier_create ();
-	my addItem_move (tier.move());
+	Collection_addItem (me, Tier_create (10));
 }
 
 void Label_suggestDomain (Label me, double *tmin, double *tmax) {
 	*tmin = 0.0;
 	*tmax = 0.0;
 	for (int itier = 1; itier <= my size; itier ++) {
-		Tier tier = my at [itier];
-		if (tier->size > 0) {
-			Autosegment seg = tier->at [1];
+		Tier tier = (Tier) my item [itier];
+		if (tier -> size) {
+			Autosegment seg = (Autosegment) tier -> item [1];
 			if (seg -> xmin <= *tmin) {
 				if (seg -> name && seg -> name [0])
 					*tmin = seg -> xmin - 1.0;
 				else
 					*tmin = seg -> xmin;
 			}
-			seg = tier->at [tier->size];
+			seg = (Autosegment) tier -> item [tier -> size];
 			if (seg -> xmax >= *tmax)
 				*tmax = seg -> xmax;
 		}
diff --git a/fon/Label.h b/fon/Label.h
index 179fdb2..bb31557 100644
--- a/fon/Label.h
+++ b/fon/Label.h
@@ -22,84 +22,76 @@
 #include "Collection.h"
 #include "Function.h"
 
-
-#pragma mark - class Autosegment
-
 Thing_define (Autosegment, Function) {
-	void v_copy (Daata data_to)
+	void v_copy (Any data_to)
 		override;
-	bool v_equal (Daata otherData)
+	bool v_equal (Any otherData)
 		override;
 	static Data_Description s_description;
 	Data_Description v_description ()
 		override { return s_description; }
 };
 
-autoAutosegment Autosegment_create (double tmin, double tmax, const char32 *label);
+Autosegment Autosegment_create (double tmin, double tmax, const char32 *label);
 /*
 	Function:
 		create a new instance of Autosegment.
 	Return value:
-		the new Autosegment.
+		the new Autosegment, or NULL if out of memory.
 	Preconditions:
 		tmax > tmin;
-		label may be null;
+		label may be NULL;
 	Postconditions:
 		result -> tmin == tmin;
 		result -> tmax == tmax;
-		if (label)
-			result -> name == nullptr;
+		if (label != NULL)
+			result -> name == NULL;
 		else
 			result -> name [] == label [];   // 'label' copied into 'name'
 */
 
+Thing_define (Tier, Sorted) {
+	static int compare (Any data1, Any data2);
+	int (*v_getCompareFunction ()) (Any data1, Any data2)
+		override { return compare; }
+};
 
-#pragma mark - class Tier
-
-Collection_define (Tier, SortedOf, Autosegment) {
-
-	/**
-		Initialize a new Tier containing one Autosegment from -1e30 to 1e30.
-		@post
-			this->size == 1;
-			this->at [1] -> classInfo == classAutosegment;
-			this->at [1] -> xmin == -1e30;
-			this->at [1] -> xmax == 1e30;
-			this->at [1] -> name == nullptr;
-	*/
-	structTier () {
-		our classInfo = classTier;
-		our addItem_move (Autosegment_create (-1e30, 1e30, nullptr));
-	}
+void Tier_init (I, long initialCapacity);
 
-	static int compareHook (Autosegment me, Autosegment thee) {
-		if (my xmin < thy xmin) return -1;
-		if (my xmin > thy xmin) return 1;
-		if (my xmax < thy xmax) return -1;
-		if (my xmax > thy xmax) return 1;
-		return 0;
-	}
-	SortedOf<structAutosegment>::CompareHook v_getCompareHook () override { return compareHook; }
-};
+Tier Tier_create (long initialCapacity);
+/*
+	Function:
+		create a new Tier containing one Autosegment from -1e30 to 1e30.
+	Return value:
+		the new Tier, or NULL if out of memory.
+	Postconditions:
+		my size == 1;
+		my item [1] -> methods == classAutosegment;
+		my item [1] -> xmin == -1e30;
+		my item [1] -> xmax == 1e30;
+		my item [1] -> name == NULL;
+*/
 
-/**
-	@return
+long Tier_timeToIndex (Tier me, double t);
+/*
+	Return value:
 		index, or 0 if the tier is empty or t is very large.
-	@post
+	Postconditions:
 		result == 0 || my item [i] -> xmin <= result < my item [i] -> xmax;
 */
-long Tier_timeToIndex (Tier me, double t);
-
 
-#pragma mark - class Label
+void Tier_init (I, long initialCapacity);
 
-Collection_define (Label, OrderedOf, Tier) {
+Thing_define (Label, Ordered) {
 };
 
+Label Label_create (long initialNumberOfTiers);
+
+void Label_init (I, long initialNumberOfTiers);
+
 void Label_addTier (Label me);
 
 void Label_suggestDomain (Label me, double *tmin, double *tmax);
 
-
-/* End of file Label.h */
 #endif
+/* End of file Label.h */
diff --git a/fon/LongSound.cpp b/fon/LongSound.cpp
index 8df3760..b588894 100644
--- a/fon/LongSound.cpp
+++ b/fon/LongSound.cpp
@@ -1,6 +1,6 @@
 /* LongSound.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma, 2007 Erez Volk (for FLAC and MP3)
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma, 2007 Erez Volk (for FLAC and MP3)
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,21 +48,20 @@
 #include "mp3.h"
 
 Thing_implement (LongSound, Sampled, 0);
-Thing_implement (SoundAndLongSoundList, Ordered, 0);
 
 #define MARGIN  0.01
 #define USE_MEMMOVE  1
 
 static long prefs_bufferLength;
 
-void LongSound_preferences () {
+void LongSound_preferences (void) {
 	Preferences_addLong (U"LongSound.bufferLength", & prefs_bufferLength, 60);   // seconds
 }
 
-long LongSound_getBufferSizePref_seconds () { return prefs_bufferLength; }
+long LongSound_getBufferSizePref_seconds (void) { return prefs_bufferLength; }
 void LongSound_setBufferSizePref_seconds (long size) { prefs_bufferLength = size < 10 ? 10 : size > 10000 ? 10000: size; }
 
-void structLongSound :: v_destroy () noexcept {
+void structLongSound :: v_destroy () {
 	/*
 	 * The play callback may contain a pointer to my buffer.
 	 * That pointer is about to dangle, so kill the playback.
@@ -75,7 +74,7 @@ void structLongSound :: v_destroy () noexcept {
 		FLAC__stream_decoder_delete (flacDecoder);
 	}
 	else if (f) fclose (f);
-	NUMvector_free <int16> (buffer, 0);
+	NUMvector_free <short> (buffer, 0);
 	LongSound_Parent :: v_destroy ();
 }
 
@@ -88,7 +87,7 @@ void structLongSound :: v_info () {
 		U"mu-law", U"A-law", U"shorten", U"polyphone",
 		U"IEEE float 32 bit big-endian", U"IEEE float 32 bit little-endian",
 		U"FLAC", U"FLAC", U"FLAC", U"MP3", U"MP3", U"MP3" };
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Duration: ", xmax - xmin, U" seconds");
 	MelderInfo_writeLine (U"File name: ", Melder_fileToPath (& file));
 	MelderInfo_writeLine (U"File type: ", audioFileType > Melder_NUMBER_OF_AUDIO_FILE_TYPES ? U"unknown" : Melder_audioFileTypeString (audioFileType));
@@ -99,31 +98,31 @@ void structLongSound :: v_info () {
 	MelderInfo_writeLine (U"Start of sample data: ", startOfData, U" bytes from the start of the file");
 }
 
-static void _LongSound_FLAC_convertFloats (LongSound me, const int32 * const samples[], long bitsPerSample, long numberOfSamples) {
+static void _LongSound_FLAC_convertFloats (LongSound me, const FLAC__int32 * const samples[], long bitsPerSample, long numberOfSamples) {
 	double multiplier;
 	switch (bitsPerSample) {
-		case 8: multiplier = (1.0 / 128.0); break;
-		case 16: multiplier = (1.0 / 32768.0); break;
-		case 24: multiplier = (1.0 / 8388608.0); break;
-		case 32: multiplier = (1.0 / 32768.0 / 65536.0); break;
+		case 8: multiplier = (1.0f / 128); break;
+		case 16: multiplier = (1.0f / 32768); break;
+		case 24: multiplier = (1.0f / 8388608); break;
+		case 32: multiplier = (1.0f / 32768 / 65536); break;
 		default: multiplier = 0.0;
 	}
 	for (long i = 0; i < 2; ++i) {
-		const int32 *input = samples [i];
+		const FLAC__int32 *input = samples [i];
 		double *output = my compressedFloats [i];
 		if (! output ) continue;
 		for (long j = 0; j < numberOfSamples; ++j)
-			output [j] = (double) input [j] * multiplier;
+			output [j] = (long)input [j] * multiplier;
 		my compressedFloats [i] += numberOfSamples;
 	}
 }
 
-static void _LongSound_FLAC_convertShorts (LongSound me, const int32 * const samples[], long bitsPerSample, long numberOfSamples) {
+static void _LongSound_FLAC_convertShorts (LongSound me, const FLAC__int32 * const samples[], long bitsPerSample, long numberOfSamples) {
 	for (long channel = 0; channel < my numberOfChannels; ++ channel) {
-		int16 *output = my compressedShorts + channel;
-		const int32 *input = samples [channel];
+		short *output = my compressedShorts + channel;
+		const FLAC__int32 *input = samples [channel];
 		for (long j = 0; j < numberOfSamples; ++ j, output += my numberOfChannels) {
-			int32 sample = * (input ++);
+			FLAC__int32 sample = * (input ++);
 			switch (bitsPerSample) {
 				case 8: sample *= 256; break;
 				case 16: break;
@@ -131,13 +130,13 @@ static void _LongSound_FLAC_convertShorts (LongSound me, const int32 * const sam
 				case 32: sample /= 65536; break;
 				default: sample = 0; break;
 			}
-			*output = (int16) sample;
+			*output = (short) sample;
 		}
 	}
 	my compressedShorts += numberOfSamples * my numberOfChannels;
 }
 
-static FLAC__StreamDecoderWriteStatus _LongSound_FLAC_write (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *void_me) {
+static FLAC__StreamDecoderWriteStatus _LongSound_FLAC_write (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], I) {
 	iam (LongSound);
 	const FLAC__FrameHeader *header = & frame -> header;
 	long numberOfSamples = header -> blocksize;
@@ -155,10 +154,14 @@ static FLAC__StreamDecoderWriteStatus _LongSound_FLAC_write (const FLAC__StreamD
 	return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
 }
 
-static void _LongSound_FLAC_error (const FLAC__StreamDecoder * /* decoder */, FLAC__StreamDecoderErrorStatus /* status */, void * /* longSound */) {
+static void _LongSound_FLAC_error (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, I) {
+	iam (LongSound);
+	(void) me;
+	(void) decoder;
+	(void) status;
 }
 
-static void _LongSound_MP3_convertFloats (LongSound me, const MP3F_SAMPLE *channels [MP3F_MAX_CHANNELS], long numberOfSamples) {
+static void _LongSound_MP3_convertFloats (LongSound me, const MP3F_SAMPLE *channels[MP3F_MAX_CHANNELS], long numberOfSamples) {
 	for (long i = 0; i < 2; ++i) {
 		const MP3F_SAMPLE *input = channels [i];
 		double *output = my compressedFloats [i];
@@ -169,10 +172,10 @@ static void _LongSound_MP3_convertFloats (LongSound me, const MP3F_SAMPLE *chann
 	}
 }
 
-static void _LongSound_MP3_convertShorts (LongSound me, const MP3F_SAMPLE *channels [MP3F_MAX_CHANNELS], long numberOfSamples) {
+static void _LongSound_MP3_convertShorts (LongSound me, const MP3F_SAMPLE *channels[MP3F_MAX_CHANNELS], long numberOfSamples) {
 	for (long i = 0; i < my numberOfChannels; ++ i) {
 		const MP3F_SAMPLE *input = channels [i];
-		int16 *output = my compressedShorts + i;
+		short *output = my compressedShorts + i;
 		for (long j = 0; j < numberOfSamples; ++j, output += my numberOfChannels) {
 			int sample = *input++;
 			*output = mp3f_sample_to_short (sample);
@@ -181,7 +184,7 @@ static void _LongSound_MP3_convertShorts (LongSound me, const MP3F_SAMPLE *chann
 	my compressedShorts += numberOfSamples * my numberOfChannels;
 }
 
-static void _LongSound_MP3_convert (const MP3F_SAMPLE *channels [MP3F_MAX_CHANNELS], long numberOfSamples, void *void_me) {
+static void _LongSound_MP3_convert (const MP3F_SAMPLE *channels[MP3F_MAX_CHANNELS], long numberOfSamples, I) {
 	iam (LongSound);
 	if (numberOfSamples > my compressedSamplesLeft)
 		numberOfSamples = my compressedSamplesLeft;
@@ -214,7 +217,7 @@ static void LongSound_init (LongSound me, MelderFile file) {
 	for (;;) {
 		my nmax = my bufferLength * my numberOfChannels * my sampleRate * (1 + 3 * MARGIN);
 		try {
-			my buffer = NUMvector <int16> (0, my nmax * my numberOfChannels);
+			my buffer = NUMvector <short> (0, my nmax * my numberOfChannels);
 			break;
 		} catch (MelderError) {
 			my bufferLength *= 0.5;   // try 30, 15, or 7.5 seconds
@@ -225,12 +228,12 @@ static void LongSound_init (LongSound me, MelderFile file) {
 	}
 	my imin = 1;
 	my imax = 0;
-	my flacDecoder = nullptr;
+	my flacDecoder = NULL;
 	if (my audioFileType == Melder_FLAC) {
 		my flacDecoder = FLAC__stream_decoder_new ();
-		FLAC__stream_decoder_init_FILE (my flacDecoder, my f, _LongSound_FLAC_write, nullptr, _LongSound_FLAC_error, me);
+		FLAC__stream_decoder_init_FILE (my flacDecoder, my f, _LongSound_FLAC_write, NULL, _LongSound_FLAC_error, me);
 	}
-	my mp3f = nullptr;
+	my mp3f = NULL;
 	if (my audioFileType == Melder_MP3) {
 		my mp3f = mp3f_new ();
 		mp3f_set_file (my mp3f, my f);
@@ -242,18 +245,18 @@ static void LongSound_init (LongSound me, MelderFile file) {
 	}
 }
 
-void structLongSound :: v_copy (Daata thee_Daata) {
-	LongSound thee = static_cast <LongSound> (thee_Daata);
-	thy f = nullptr;
-	thy buffer = nullptr;
+void structLongSound :: v_copy (thou) {
+	thouart (LongSound);
+	thy f = NULL;
+	thy buffer = NULL;
 	LongSound_init (thee, & file);
 }
 
-autoLongSound LongSound_open (MelderFile file) {
+LongSound LongSound_open (MelderFile file) {
 	try {
 		autoLongSound me = Thing_new (LongSound);
-		LongSound_init (me.get(), file);
-		return me;
+		LongSound_init (me.peek(), file);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LongSound not created.");
 	}
@@ -276,7 +279,7 @@ static void _LongSound_FILE_seekSample (LongSound me, long firstSample) {
 		Melder_throw (U"Cannot seek in file ", & my file, U".");
 }
 
-static void _LongSound_FLAC_readAudioToShort (LongSound me, int16 *buffer, long firstSample, long numberOfSamples) {
+static void _LongSound_FLAC_readAudioToShort (LongSound me, short *buffer, long firstSample, long numberOfSamples) {
 	my compressedMode = COMPRESSED_MODE_READ_SHORT;
 	my compressedShorts = buffer + 1;
 	_LongSound_FLAC_process (me, firstSample, numberOfSamples);
@@ -290,7 +293,7 @@ static void _LongSound_MP3_process (LongSound me, long firstSample, long numberO
 		Melder_throw (U"Error decoding MP3 file ", & my file, U".");
 }
 
-static void _LongSound_MP3_readAudioToShort (LongSound me, int16 *buffer, long firstSample, long numberOfSamples) {
+static void _LongSound_MP3_readAudioToShort (LongSound me, short *buffer, long firstSample, long numberOfSamples) {
 	my compressedMode = COMPRESSED_MODE_READ_SHORT;
 	my compressedShorts = buffer + 1;
 	_LongSound_MP3_process (me, firstSample, numberOfSamples - 1);
@@ -315,7 +318,7 @@ void LongSound_readAudioToFloat (LongSound me, double **buffer, long firstSample
 	}
 }
 
-void LongSound_readAudioToShort (LongSound me, int16 *buffer, long firstSample, long numberOfSamples) {
+void LongSound_readAudioToShort (LongSound me, short *buffer, long firstSample, long numberOfSamples) {
 	if (my encoding == Melder_FLAC_COMPRESSION_16) {
 		_LongSound_FLAC_readAudioToShort (me, buffer, firstSample, numberOfSamples);
 	} else if (my encoding == Melder_MPEG_COMPRESSION_16) {
@@ -326,7 +329,7 @@ void LongSound_readAudioToShort (LongSound me, int16 *buffer, long firstSample,
 	}
 }
 
-autoSound LongSound_extractPart (LongSound me, double tmin, double tmax, int preserveTimes) {
+Sound LongSound_extractPart (LongSound me, double tmin, double tmax, int preserveTimes) {
 	try {
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
 		if (tmin < my xmin) tmin = my xmin;
@@ -337,13 +340,13 @@ autoSound LongSound_extractPart (LongSound me, double tmin, double tmax, int pre
 		autoSound thee = Sound_create (my numberOfChannels, tmin, tmax, n, my dx, my x1 + (imin - 1) * my dx);
 		if (! preserveTimes) thy xmin = 0.0, thy xmax -= tmin, thy x1 -= tmin;
 		LongSound_readAudioToFloat (me, thy z, imin, n);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Sound not extracted.");
 	}
 }
 
-static void _LongSound_readSamples (LongSound me, int16 *buffer, long imin, long imax) {
+static void _LongSound_readSamples (LongSound me, short *buffer, long imin, long imax) {
 	LongSound_readAudioToShort (me, buffer, imin, imax - imin + 1);
 }
 
@@ -365,7 +368,7 @@ static void writePartToOpenFile (LongSound me, int audioFileType, long imin, lon
 	my imax = 0;
 }
 
-void LongSound_writePartToAudioFile (LongSound me, int audioFileType, double tmin, double tmax, MelderFile file, int numberOfBitsPerSamplePoint) {
+void LongSound_writePartToAudioFile (LongSound me, int audioFileType, double tmin, double tmax, MelderFile file) {
 	try {
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
 		if (tmin < my xmin) tmin = my xmin;
@@ -374,9 +377,9 @@ void LongSound_writePartToAudioFile (LongSound me, int audioFileType, double tmi
 		long n = Sampled_getWindowSamples (me, tmin, tmax, & imin, & imax);
 		if (n < 1) Melder_throw (U"Less than 1 sample selected.");
 		autoMelderFile mfile = MelderFile_create (file);
-		MelderFile_writeAudioFileHeader (file, audioFileType, my sampleRate, n, my numberOfChannels, numberOfBitsPerSamplePoint);
-		writePartToOpenFile (me, audioFileType, imin, n, file, 0, numberOfBitsPerSamplePoint);
-		MelderFile_writeAudioFileTrailer (file, audioFileType, my sampleRate, n, my numberOfChannels, numberOfBitsPerSamplePoint);
+		MelderFile_writeAudioFileHeader (file, audioFileType, my sampleRate, n, my numberOfChannels, 8 * my numberOfBytesPerSamplePoint);
+		writePartToOpenFile (me, audioFileType, imin, n, file, 0, 8 * my numberOfBytesPerSamplePoint);
+		MelderFile_writeAudioFileTrailer (file, audioFileType, my sampleRate, n, my numberOfChannels, 8 * my numberOfBytesPerSamplePoint);
 		mfile.close ();
 	} catch (MelderError) {
 		Melder_throw (me, U": not written to sound file ", file, U".");
@@ -420,9 +423,9 @@ static void _LongSound_haveSamples (LongSound me, long imin, long imax) {
 	 */
 	imin -= MARGIN * n;
 	if (imin < 1) imin = 1;
-	imax = imin + (long) floor ((1.0 + 2.0 * MARGIN) * n);
+	imax = imin + (1.0 + 2 * MARGIN) * n;
 	if (imax > my nx) imax = my nx;
-	imin = imax - (long) floor ((1.0 + 2.0 * MARGIN) * n);
+	imin = imax - (1.0 + 2 * MARGIN) * n;
 	if (imin < 1) imin = 1;
 	Melder_assert (imax - imin + 1 <= my nmax);
 	/*
@@ -443,7 +446,7 @@ static void _LongSound_haveSamples (LongSound me, long imin, long imax) {
 			 */
 			long nshift = (imax - my imin + 1) * my numberOfChannels, shift = (my imin - imin) * my numberOfChannels;
 			#if USE_MEMMOVE
-				memmove (my buffer + shift, my buffer, nshift * sizeof (int16));
+				memmove (my buffer + shift, my buffer, nshift * sizeof (short));
 			#else
 				for (i = nshift - 1; i >= 0; i --)
 					my buffer [i + shift] = my buffer [i];
@@ -455,7 +458,7 @@ static void _LongSound_haveSamples (LongSound me, long imin, long imax) {
 			 */
 			long nshift = (my imax - my imin + 1) * my numberOfChannels, shift = (my imin - imin) * my numberOfChannels;
 			#if USE_MEMMOVE
-				memmove (my buffer + shift, my buffer, nshift * sizeof (int16));
+				memmove (my buffer + shift, my buffer, nshift * sizeof (short));
 			#else
 				for (i = nshift - 1; i >= 0; i --)
 					my buffer [i + shift] = my buffer [i];
@@ -469,7 +472,7 @@ static void _LongSound_haveSamples (LongSound me, long imin, long imax) {
 		 */
 		long nshift = (my imax - imin + 1) * my numberOfChannels, shift = (imin - my imin) * my numberOfChannels;
 		#if USE_MEMMOVE
-			memmove (my buffer, my buffer + shift, nshift * sizeof (int16));
+			memmove (my buffer, my buffer + shift, nshift * sizeof (short));
 		#else
 			for (i = 0; i < nshift; i ++)
 				my buffer [i] = my buffer [i + shift];
@@ -489,6 +492,7 @@ bool LongSound_haveWindow (LongSound me, double tmin, double tmax) {
 
 void LongSound_getWindowExtrema (LongSound me, double tmin, double tmax, int channel, double *minimum, double *maximum) {
 	long imin, imax;
+	long i, minimum_int = 32767, maximum_int = -32768;
 	(void) Sampled_getWindowSamples (me, tmin, tmax, & imin, & imax);
 	*minimum = 1.0;
 	*maximum = -1.0;
@@ -498,8 +502,7 @@ void LongSound_getWindowExtrema (LongSound me, double tmin, double tmax, int cha
 		Melder_clearError ();
 		return;
 	}
-	long minimum_int = 32767, maximum_int = -32768;
-	for (long i = imin; i <= imax; i ++) {
+	for (i = imin; i <= imax; i ++) {
 		long value = my buffer [(i - my imin) * my numberOfChannels + channel - 1];
 		if (value < minimum_int) minimum_int = value;
 		if (value > maximum_int) maximum_int = value;
@@ -511,9 +514,9 @@ void LongSound_getWindowExtrema (LongSound me, double tmin, double tmax, int cha
 static struct LongSoundPlay {
 	long numberOfSamples, i1, i2, silenceBefore, silenceAfter;
 	double tmin, tmax, dt, t1;
-	int16 *resampledBuffer;
-	Sound_PlayCallback callback;
-	Thing boss;
+	short *resampledBuffer;
+	int (*callback) (void *closure, int phase, double tmin, double tmax, double t);
+	void *closure;
 } thePlayingLongSound;
 
 static bool melderPlayCallback (void *closure, long samplesPlayed) {
@@ -527,12 +530,12 @@ static bool melderPlayCallback (void *closure, long samplesPlayed) {
 		Melder_free (my resampledBuffer);
 	}
 	if (my callback)
-		return my callback (my boss, phase, my tmin, my tmax, t);
+		return my callback (my closure, phase, my tmin, my tmax, t);
 	return true;
 }
 
 void LongSound_playPart (LongSound me, double tmin, double tmax,
-	Sound_PlayCallback callback, Thing boss)
+	int (*callback) (void *closure, int phase, double tmin, double tmax, double t), void *closure)
 {
 	struct LongSoundPlay *thee = (struct LongSoundPlay *) & thePlayingLongSound;
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
@@ -548,7 +551,7 @@ void LongSound_playPart (LongSound me, double tmin, double tmax,
 		thy tmin = tmin;
 		thy tmax = tmax;
 		thy callback = callback;
-		thy boss = boss;
+		thy closure = closure;
 		if ((n = Sampled_getWindowSamples (me, tmin, tmax, & i1, & i2)) < 2) return;
 		if (bestSampleRate == my sampleRate) {
 			thy numberOfSamples = n;
@@ -558,11 +561,11 @@ void LongSound_playPart (LongSound me, double tmin, double tmax,
 			thy i2 = i2;
 			thy silenceBefore = (long) (my sampleRate * MelderAudio_getOutputSilenceBefore ());
 			thy silenceAfter = (long) (my sampleRate * MelderAudio_getOutputSilenceAfter ());
-			if (thy callback) thy callback (thy boss, 1, tmin, tmax, tmin);
+			if (thy callback) thy callback (thy closure, 1, tmin, tmax, tmin);
 			if (thy silenceBefore > 0 || thy silenceAfter > 0 || 1) {
-				thy resampledBuffer = Melder_calloc (int16, (thy silenceBefore + thy numberOfSamples + thy silenceAfter) * my numberOfChannels);
+				thy resampledBuffer = Melder_calloc (short, (thy silenceBefore + thy numberOfSamples + thy silenceAfter) * my numberOfChannels);
 				memcpy (& thy resampledBuffer [thy silenceBefore * my numberOfChannels], & my buffer [(i1 - my imin) * my numberOfChannels],
-					thy numberOfSamples * sizeof (int16) * my numberOfChannels);
+					thy numberOfSamples * sizeof (short) * my numberOfChannels);
 				MelderAudio_play16 (thy resampledBuffer, my sampleRate, thy silenceBefore + thy numberOfSamples + thy silenceAfter,
 					my numberOfChannels, melderPlayCallback, thee);
 			} else {
@@ -571,11 +574,11 @@ void LongSound_playPart (LongSound me, double tmin, double tmax,
 			}
 		} else {
 			long newSampleRate = bestSampleRate;
-			long newN = ((double) n * newSampleRate) / my sampleRate - 1;
+			long newN = ((double) n * newSampleRate) / my sampleRate - 1, i;
 			long silenceBefore = (long) (newSampleRate * MelderAudio_getOutputSilenceBefore ());
 			long silenceAfter = (long) (newSampleRate * MelderAudio_getOutputSilenceAfter ());
-			int16 *resampledBuffer = Melder_calloc (int16, (silenceBefore + newN + silenceAfter) * my numberOfChannels);
-			int16 *from = my buffer + (i1 - my imin) * my numberOfChannels;   // guaranteed: from [0 .. (my imax - my imin + 1) * nchan]
+			short *resampledBuffer = Melder_calloc (short, (silenceBefore + newN + silenceAfter) * my numberOfChannels);
+			short *from = my buffer + (i1 - my imin) * my numberOfChannels;   /* Guaranteed: from [0 .. (my imax - my imin + 1) * nchan] */
 			double t1 = my x1, dt = 1.0 / newSampleRate;
 			thy numberOfSamples = newN;
 			thy dt = dt;
@@ -586,38 +589,36 @@ void LongSound_playPart (LongSound me, double tmin, double tmax,
 			thy silenceAfter = silenceAfter;
 			thy resampledBuffer = resampledBuffer;
 			if (my numberOfChannels == 1) {
-				for (long i = 0; i < newN; i ++) {
-					double t = t1 + i * dt;   // from t1 to t1 + (newN-1) * dt
-					double index = (t - t1) * my sampleRate;   // from 0
-					long flore = index;   // DANGEROUS: Implicitly rounding down...
+				for (i = 0; i < newN; i ++) {
+					double t = t1 + i * dt;   /* From t1 to t1 + (newN-1) * dt */
+					double index = (t - t1) * my sampleRate;   /* From 0. */
+					long flore = index;   /* DANGEROUS: Implicitly rounding down... */
 					double fraction = index - flore;
-					resampledBuffer [i + silenceBefore] = (1.0 - fraction) * from [flore] + fraction * from [flore + 1];
+					resampledBuffer [i + silenceBefore] = (1 - fraction) * from [flore] + fraction * from [flore + 1];
 				}
 			} else if (my numberOfChannels == 2) {
-				for (long i = 0; i < newN; i ++) {
+				for (i = 0; i < newN; i ++) {
 					double t = t1 + i * dt;
 					double index = (t - t1) * my sampleRate;
 					long flore = index;
 					double fraction = index - flore;
 					long ii = i + silenceBefore;
-					resampledBuffer [ii + ii] = (1.0 - fraction) * from [flore + flore] + fraction * from [flore + flore + 2];
-					resampledBuffer [ii + ii + 1] = (1.0 - fraction) * from [flore + flore + 1] + fraction * from [flore + flore + 3];
+					resampledBuffer [ii + ii] = (1 - fraction) * from [flore + flore] + fraction * from [flore + flore + 2];
+					resampledBuffer [ii + ii + 1] = (1 - fraction) * from [flore + flore + 1] + fraction * from [flore + flore + 3];
 				}
 			} else {
-				for (long i = 0; i < newN; i ++) {
+				for (i = 0; i < newN; i ++) {
 					double t = t1 + i * dt;
 					double index = (t - t1) * my sampleRate;
 					long flore = index;
 					double fraction = index - flore;
 					long ii = (i + silenceBefore) * my numberOfChannels;
 					for (long chan = 0; chan < my numberOfChannels; chan ++) {
-						resampledBuffer [ii + chan] =
-							(1.0 - fraction) * from [flore * my numberOfChannels + chan] +
-							fraction * from [(flore + 1) * my numberOfChannels + chan];
+						resampledBuffer [ii + chan] = (1 - fraction) * from [flore + flore + chan] + fraction * from [flore + flore + chan + my numberOfChannels];
 					}
 				}
 			}
-			if (thy callback) thy callback (thy boss, 1, tmin, tmax, tmin);
+			if (thy callback) thy callback (thy closure, 1, tmin, tmax, tmin);
 			MelderAudio_play16 (resampledBuffer, newSampleRate, silenceBefore + newN + silenceAfter, my numberOfChannels, melderPlayCallback, thee);
 		}
 		//Melder_free (thy resampledBuffer);   // cannot do that, because MelderAudio_play16 isn't necessarily synchronous
@@ -627,7 +628,7 @@ void LongSound_playPart (LongSound me, double tmin, double tmax,
 	}
 }
 
-void LongSound_concatenate (SoundAndLongSoundList me, MelderFile file, int audioFileType, int numberOfBitsPerSamplePoint) {
+void LongSound_concatenate (Collection me, MelderFile file, int audioFileType, int numberOfBitsPerSamplePoint) {
 	try {
 		long sampleRate, n;   /* Integer sampling frequencies only, because of possible rounding errors. */
 		int numberOfChannels;
@@ -635,10 +636,10 @@ void LongSound_concatenate (SoundAndLongSoundList me, MelderFile file, int audio
 		/*
 		 * The sampling frequencies and numbers of channels must be equal for all (long)sounds.
 		 */
-		Sampled data = my at [1];
+		Sampled data = (Sampled) my item [1];
 		if (data -> classInfo == classSound) {
 			Sound sound = (Sound) data;
-			sampleRate = lround (1.0 / sound -> dx);
+			sampleRate = floor (1.0 / sound -> dx + 0.5);
 			numberOfChannels = sound -> ny;
 			n = sound -> nx;
 		} else {
@@ -652,7 +653,7 @@ void LongSound_concatenate (SoundAndLongSoundList me, MelderFile file, int audio
 		 */
 		for (long i = 2; i <= my size; i ++) {
 			int sampleRatesMatch, numbersOfChannelsMatch;
-			data = my at [i];
+			data = (Sampled) my item [i];
 			if (data -> classInfo == classSound) {
 				Sound sound = (Sound) data;
 				sampleRatesMatch = round (1.0 / sound -> dx) == sampleRate;
@@ -677,12 +678,12 @@ void LongSound_concatenate (SoundAndLongSoundList me, MelderFile file, int audio
 			MelderFile_writeAudioFileHeader (file, audioFileType, sampleRate, n, numberOfChannels, numberOfBitsPerSamplePoint);
 		}
 		for (long i = 1; i <= my size; i ++) {
-			data = my at [i];
+			data = (Sampled) my item [i];
 			if (data -> classInfo == classSound) {
 				Sound sound = (Sound) data;
 				if (file -> filePointer) {
 					MelderFile_writeFloatToAudio (file, sound -> ny, Melder_defaultAudioFileEncoding (audioFileType, numberOfBitsPerSamplePoint),
-						sound -> z, sound -> nx, true);
+						sound -> z, sound -> nx, TRUE);
 				}
 			} else {
 				LongSound longSound = (LongSound) data;
diff --git a/fon/LongSound.h b/fon/LongSound.h
index 87c4a87..061d98e 100644
--- a/fon/LongSound.h
+++ b/fon/LongSound.h
@@ -36,20 +36,20 @@ Thing_define (LongSound, Sampled) {
 	double sampleRate;
 	long startOfData;
 	double bufferLength;
-	int16 *buffer;   // this is always 16-bit, because will always play sounds in 16-bit, even those from 24-bit files
+	short *buffer;
 	long imin, imax, nmax;
 	struct FLAC__StreamDecoder *flacDecoder;
 	struct _MP3_FILE *mp3f;
 	int compressedMode;
 	long compressedSamplesLeft;
 	double *compressedFloats [2];
-	int16 *compressedShorts;
+	short *compressedShorts;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
-	void v_copy (Daata data_to)
+	void v_copy (Any data_to)
 		override;
 	bool v_writable ()
 		override { return false; }
@@ -57,9 +57,9 @@ Thing_define (LongSound, Sampled) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoLongSound LongSound_open (MelderFile file);
+LongSound LongSound_open (MelderFile fs);
 
-autoSound LongSound_extractPart (LongSound me, double tmin, double tmax, int preserveTimes);
+Sound LongSound_extractPart (LongSound me, double tmin, double tmax, int preserveTimes);
 
 bool LongSound_haveWindow (LongSound me, double tmin, double tmax);
 /*
@@ -69,21 +69,19 @@ bool LongSound_haveWindow (LongSound me, double tmin, double tmax);
 void LongSound_getWindowExtrema (LongSound me, double tmin, double tmax, int channel, double *minimum, double *maximum);
 
 void LongSound_playPart (LongSound me, double tmin, double tmax,
-	Sound_PlayCallback callback, Thing boss);
+	int (*callback) (void *closure, int phase, double tmin, double tmax, double t), void *closure);
 
-void LongSound_writePartToAudioFile (LongSound me, int audioFileType, double tmin, double tmax, MelderFile file, int numberOfBitsPerSamplePoint);
+void LongSound_writePartToAudioFile (LongSound me, int audioFileType, double tmin, double tmax, MelderFile file);
 void LongSound_writeChannelToAudioFile (LongSound me, int audioFileType, int channel, MelderFile file);
 
 void LongSound_readAudioToFloat (LongSound me, double **buffer, long firstSample, long numberOfSamples);
-void LongSound_readAudioToShort (LongSound me, int16 *buffer, long firstSample, long numberOfSamples);
+void LongSound_readAudioToShort (LongSound me, short *buffer, long firstSample, long numberOfSamples);
 
-Collection_define (SoundAndLongSoundList, OrderedOf, Sampled) {
-};
-
-void LongSound_concatenate (SoundAndLongSoundList collection, MelderFile file, int audioFileType, int numberOfBitsPerSamplePoint);
+void LongSound_concatenate (Collection collection, MelderFile file, int audioFileType, int numberOfBitsPerSamplePoint);
+/* Concatenate a collection of Sound and LongSound objects. */
 
-void LongSound_preferences ();
-long LongSound_getBufferSizePref_seconds ();
+void LongSound_preferences (void);
+long LongSound_getBufferSizePref_seconds (void);
 void LongSound_setBufferSizePref_seconds (long size);
 
 /* End of file LongSound.h */
diff --git a/fon/Ltas.cpp b/fon/Ltas.cpp
index 2e4e07b..d699756 100644
--- a/fon/Ltas.cpp
+++ b/fon/Ltas.cpp
@@ -1,6 +1,6 @@
 /* Ltas.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,7 +30,7 @@ Thing_implement (Ltas, Vector, 2);
 
 void structLtas :: v_info () {
 	double meanPowerDensity;
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Frequency domain:");
 	MelderInfo_writeLine (U"   Lowest frequency: ", xmin, U" Hz");
 	MelderInfo_writeLine (U"   Highest frequency: ", xmax, U" Hz");
@@ -39,7 +39,7 @@ void structLtas :: v_info () {
 	MelderInfo_writeLine (U"   Number of frequency bands: ", nx);
 	MelderInfo_writeLine (U"   Width of each band: ", dx, U" Hz");
 	MelderInfo_writeLine (U"   First band centred at: ", x1, U" Hz");
-	meanPowerDensity = Sampled_getMean (this, xmin, xmax, 0, 1, false);
+	meanPowerDensity = Sampled_getMean (this, xmin, xmax, 0, 1, FALSE);
 	MelderInfo_writeLine (U"Total SPL: ", Melder_single (10.0 * log10 (meanPowerDensity * (xmax - xmin))), U" dB");
 }
 
@@ -63,11 +63,11 @@ double structLtas :: v_convertSpecialToStandardUnit (double value, long ilevel,
 		value;   // value = dB
 }
 
-autoLtas Ltas_create (long nx, double dx) {
+Ltas Ltas_create (long nx, double dx) {
 	try {
 		autoLtas me = Thing_new (Ltas);
-		Matrix_init (me.get(), 0.0, nx * dx, nx, dx, 0.5 * dx, 1.0, 1.0, 1, 1.0, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0.0, nx * dx, nx, dx, 0.5 * dx, 1.0, 1.0, 1, 1.0, 1.0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Ltas not created.");
 	}
@@ -77,54 +77,54 @@ void Ltas_draw (Ltas me, Graphics g, double fmin, double fmax, double minimum, d
 	Vector_draw (me, g, & fmin, & fmax, & minimum, & maximum, 1.0, method);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Sound pressure level (dB/Hz)");
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Sound pressure level (dB/Hz)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
 double Ltas_getSlope (Ltas me, double f1min, double f1max, double f2min, double f2max, int averagingUnits) {
-	double low = Sampled_getMean (me, f1min, f1max, 0, averagingUnits, false);
-	double high = Sampled_getMean (me, f2min, f2max, 0, averagingUnits, false);
+	double low = Sampled_getMean (me, f1min, f1max, 0, averagingUnits, FALSE);
+	double high = Sampled_getMean (me, f2min, f2max, 0, averagingUnits, FALSE);
 	if (low == NUMundefined || high == NUMundefined) return NUMundefined;
 	return averagingUnits == 3 ? high - low : Function_convertSpecialToStandardUnit (me, high / low, 0, averagingUnits);
 }
 
 double Ltas_getLocalPeakHeight (Ltas me, double environmentMin, double environmentMax, double peakMin, double peakMax, int averagingUnits) {
-	double environmentLow = Sampled_getMean (me, environmentMin, peakMin, 0, averagingUnits, false);
-	double environmentHigh = Sampled_getMean (me, peakMax, environmentMax, 0, averagingUnits, false);
-	double peak = Sampled_getMean (me, peakMin, peakMax, 0, averagingUnits, false);
+	double environmentLow = Sampled_getMean (me, environmentMin, peakMin, 0, averagingUnits, FALSE);
+	double environmentHigh = Sampled_getMean (me, peakMax, environmentMax, 0, averagingUnits, FALSE);
+	double peak = Sampled_getMean (me, peakMin, peakMax, 0, averagingUnits, FALSE);
 	if (environmentLow == NUMundefined || environmentHigh == NUMundefined || peak == NUMundefined) return NUMundefined;
 	return averagingUnits == 3 ? peak - 0.5 * (environmentLow + environmentHigh) :
 		Function_convertSpecialToStandardUnit (me, peak / (0.5 * (environmentLow + environmentHigh)), 0, averagingUnits);
 }
 
-autoMatrix Ltas_to_Matrix (Ltas me) {
+Matrix Ltas_to_Matrix (Ltas me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoLtas Matrix_to_Ltas (Matrix me) {
+Ltas Matrix_to_Ltas (Matrix me) {
 	try {
 		autoLtas thee = Thing_new (Ltas);
-		my structMatrix :: v_copy (thee.get());   // because copying to a descendant of Matrix with additional members should not crash
-		return thee;
+		my structMatrix :: v_copy (thee.peek());   // because copying a descendant of Matrix with additional members should not crash
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Ltas.");
 	}
 }
 
-autoLtas Ltases_merge (LtasBag ltases) {
+Ltas Ltases_merge (Collection ltases) {
 	try {
-		if (ltases->size < 1)
+		if (ltases -> size < 1)
 			Melder_throw (U"Cannot merge zero Ltas objects.");
-		Ltas me = ltases->at [1];
+		Ltas me = (Ltas) ltases -> item [1];
 		autoLtas thee = Data_copy (me);
 		/*
 		 * Convert to energy.
@@ -132,8 +132,8 @@ autoLtas Ltases_merge (LtasBag ltases) {
 		for (long iband = 1; iband <= thy nx; iband ++) {
 			thy z [1] [iband] = pow (10.0, thy z [1] [iband] / 10.0);
 		}
-		for (long ispec = 2; ispec <= ltases->size; ispec ++) {
-			Ltas him = ltases->at [ispec];
+		for (long ispec = 2; ispec <= ltases -> size; ispec ++) {
+			Ltas him = (Ltas) ltases -> item [ispec];
 			if (his xmin != thy xmin || his xmax != thy xmax)
 				Melder_throw (U"Frequency domains do not match.");
 			if (his dx != thy dx)
@@ -153,28 +153,26 @@ autoLtas Ltases_merge (LtasBag ltases) {
 		for (long iband = 1; iband <= thy nx; iband ++) {
 			thy z [1] [iband] = 10.0 * log10 (thy z [1] [iband]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Ltas objects not merged.");
 	}
 }
 
-Thing_implement (LtasBag, Collection, 0);
-
-autoLtas Ltases_average (LtasBag ltases) {
+Ltas Ltases_average (Collection ltases) {
 	try {
-		double factor = -10.0 * log10 (ltases->size);
+		double factor = -10.0 * log10 (ltases -> size);
 		autoLtas thee = Ltases_merge (ltases);
 		for (long iband = 1; iband <= thy nx; iband ++) {
 			thy z [1] [iband] += factor;
 		}	
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Ltas objects not averaged.");
 	}
 }
 
-autoLtas Ltas_computeTrendLine (Ltas me, double fmin, double fmax) {
+Ltas Ltas_computeTrendLine (Ltas me, double fmin, double fmax) {
 	try {
 		/*
 		 * Find the first and last bin.
@@ -208,13 +206,13 @@ autoLtas Ltas_computeTrendLine (Ltas me, double fmin, double fmax) {
 			double df = thy x1 + (i - 1) * thy dx - fmean;
 			thy z [1] [i] = amean + slope * df;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": trend line not computed.");
 	}
 }
 
-autoLtas Ltas_subtractTrendLine (Ltas me, double fmin, double fmax) {
+Ltas Ltas_subtractTrendLine (Ltas me, double fmin, double fmax) {
 	try {
 		/*
 		 * Find the first and last bin.
@@ -254,59 +252,59 @@ autoLtas Ltas_subtractTrendLine (Ltas me, double fmin, double fmax) {
 		for (long i = imax + 1; i <= thy nx; i ++) {
 			thy z [1] [i] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": trend line not subtracted.");
 	}
 }
 
-autoLtas Spectrum_to_Ltas (Spectrum me, double bandWidth) {
+Ltas Spectrum_to_Ltas (Spectrum me, double bandWidth) {
 	try {
 		long numberOfBands = ceil ((my xmax - my xmin) / bandWidth);
 		if (bandWidth <= my dx)
 			Melder_throw (U"Bandwidth must be greater than ", my dx, U".");
 		autoLtas thee = Thing_new (Ltas);
-		Matrix_init (thee.get(), my xmin, my xmax, numberOfBands, bandWidth, my xmin + 0.5 * bandWidth, 1.0, 1.0, 1, 1.0, 1.0);
+		Matrix_init (thee.peek(), my xmin, my xmax, numberOfBands, bandWidth, my xmin + 0.5 * bandWidth, 1, 1, 1, 1, 1);
 		for (long iband = 1; iband <= numberOfBands; iband ++) {
 			double fmin = thy xmin + (iband - 1) * bandWidth;
-			double meanEnergyDensity = Sampled_getMean (me, fmin, fmin + bandWidth, 0, 1, false);
+			double meanEnergyDensity = Sampled_getMean (me, fmin, fmin + bandWidth, 0, 1, FALSE);
 			double meanPowerDensity = meanEnergyDensity * my dx;   // as an approximation for a division by the original duration
 			thy z [1] [iband] = meanPowerDensity == 0.0 ? -300.0 : 10.0 * log10 (meanPowerDensity / 4.0e-10);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Ltas.");
 	}
 }
 
-autoLtas Spectrum_to_Ltas_1to1 (Spectrum me) {
+Ltas Spectrum_to_Ltas_1to1 (Spectrum me) {
 	try {
 		autoLtas thee = Thing_new (Ltas);
-		Matrix_init (thee.get(), my xmin, my xmax, my nx, my dx, my x1, 1.0, 1.0, 1, 1.0, 1.0);
+		Matrix_init (thee.peek(), my xmin, my xmax, my nx, my dx, my x1, 1.0, 1.0, 1, 1.0, 1.0);
 		for (long iband = 1; iband <= my nx; iband ++) {
 			thy z [1] [iband] = Sampled_getValueAtSample (me, iband, 0, 2);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Ltas.");
 	}
 }
 
-autoLtas Sound_to_Ltas (Sound me, double bandwidth) {
+Ltas Sound_to_Ltas (Sound me, double bandwidth) {
 	try {
-		autoSpectrum thee = Sound_to_Spectrum (me, true);
-		autoLtas him = Spectrum_to_Ltas (thee.get(), bandwidth);
+		autoSpectrum thee = Sound_to_Spectrum (me, TRUE);
+		autoLtas him = Spectrum_to_Ltas (thee.peek(), bandwidth);
 		double correction = -10.0 * log10 (thy dx * my nx * my dx);
 		for (long iband = 1; iband <= his nx; iband ++) {
 			his z [1] [iband] += correction;
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": LTAS analysis not performed.");
 	}
 }
 
-autoLtas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
+Ltas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
 	double maximumFrequency, double bandWidth,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor)
 {
@@ -314,7 +312,7 @@ autoLtas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
 		long numberOfPeriods = pulses -> nt - 2, totalNumberOfEnergies = 0;
 		autoLtas ltas = Ltas_create (maximumFrequency / bandWidth, bandWidth);
 		ltas -> xmax = maximumFrequency;
-		autoLtas numbers = Data_copy (ltas.get());
+		autoLtas numbers = Data_copy (ltas.peek());
 		if (numberOfPeriods < 1)
 			Melder_throw (U"Cannot compute an Ltas if there are no periods in the point process.");
 		autoMelderProgress progress (U"Ltas analysis...");
@@ -332,8 +330,8 @@ autoLtas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
 				 */
 				autoSound period = Sound_extractPart (sound,
 					pulses -> t [ipulse] - 0.5 * leftInterval, pulses -> t [ipulse] + 0.5 * rightInterval,
-					kSound_windowShape_RECTANGULAR, 1.0, false);
-				autoSpectrum spectrum = Sound_to_Spectrum (period.get(), false);
+					kSound_windowShape_RECTANGULAR, 1.0, FALSE);
+				autoSpectrum spectrum = Sound_to_Spectrum (period.peek(), FALSE);
 				for (long ifreq = 1; ifreq <= spectrum -> nx; ifreq ++) {
 					double frequency = spectrum -> xmin + (ifreq - 1) * spectrum -> dx;
 					double realPart = spectrum -> z [1] [ifreq];
@@ -399,27 +397,27 @@ autoLtas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
 				}
 			}
 		}
-		return ltas;
+		return ltas.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", pulses, U": LTAS analysis not performed.");
 	}
 }
 
-autoLtas Sound_to_Ltas_pitchCorrected (Sound sound, double minimumPitch, double maximumPitch,
+Ltas Sound_to_Ltas_pitchCorrected (Sound sound, double minimumPitch, double maximumPitch,
 	double maximumFrequency, double bandWidth,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor)
 {
 	try {
 		autoPointProcess pulses = Sound_to_PointProcess_periodic_cc (sound, minimumPitch, maximumPitch);
-		autoLtas ltas = PointProcess_Sound_to_Ltas (pulses.get(), sound, maximumFrequency, bandWidth,
+		autoLtas ltas = PointProcess_Sound_to_Ltas (pulses.peek(), sound, maximumFrequency, bandWidth,
 			shortestPeriod, longestPeriod, maximumPeriodFactor);
-		return ltas;
+		return ltas.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U": pitch-corrected LTAS analysis not performed.");
 	}
 }
 
-autoLtas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
+Ltas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
 	long maximumHarmonic,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor)
 {
@@ -445,8 +443,8 @@ autoLtas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
 				long localMaximumHarmonic;
 				autoSound period = Sound_extractPart (sound,
 					pulses -> t [ipulse] - 0.5 * leftInterval, pulses -> t [ipulse] + 0.5 * rightInterval,
-					kSound_windowShape_RECTANGULAR, 1.0, false);
-				autoSpectrum spectrum = Sound_to_Spectrum (period.get(), false);
+					kSound_windowShape_RECTANGULAR, 1.0, FALSE);
+				autoSpectrum spectrum = Sound_to_Spectrum (period.peek(), FALSE);
 				localMaximumHarmonic = maximumHarmonic < spectrum -> nx ? maximumHarmonic : spectrum -> nx;
 				for (long iharm = 1; iharm <= localMaximumHarmonic; iharm ++) {
 					double realPart = spectrum -> z [1] [iharm];
@@ -469,7 +467,7 @@ autoLtas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
 				ltas -> z [1] [iharm] = 10.0 * log10 (powerInThisBand / 4.0e-10);
 			}
 		}
-		return ltas;
+		return ltas.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", pulses, U": LTAS analysis (harmonics) not performed.");
 	}
diff --git a/fon/Ltas.h b/fon/Ltas.h
index e58f7d6..64efbf2 100644
--- a/fon/Ltas.h
+++ b/fon/Ltas.h
@@ -42,20 +42,19 @@ Thing_define (Ltas, Vector) {
 		nx >= 1			// Number of bands.
 		dx > 0.0			// Band width (Hz).
 		x1				// Centre of first band (Hz).
-		ymin, ymax, dy, y1 = 1.0
-		ny = 1
+		ymin, ymax, ny, dy, y1 = 1
 		z [1] [1..nx]		// The intensity per band, in db/Hz.
 */
 
-autoLtas Ltas_create (long nx, double dx);
+Ltas Ltas_create (long nx, double dx);
 /*
 	Function:
-		create an Ltas.
+		create an Ltas, or NULL if out of memory.
 	Preconditions:
 		nx >= 1;
 		dx > 0.0;
 	Postconditions:
-		my xmin == 0.0;              my ymin == 1;
+		my xmin == 0;              my ymin == 1;
 		my xmax == nx * dx;        my ymax == 1;
 		my nx == nx;               my ny == 1;
 		my dx == dx;               my dy == 1;
@@ -66,33 +65,30 @@ autoLtas Ltas_create (long nx, double dx);
 void Ltas_draw (Ltas me, Graphics g, double fmin, double fmax,
 	double minimum, double maximum, int garnish, const char32 *method);
 
-autoMatrix Ltas_to_Matrix (Ltas me);
-autoLtas Matrix_to_Ltas (Matrix me);
+Matrix Ltas_to_Matrix (Ltas me);
+Ltas Matrix_to_Ltas (Matrix me);
 
-Collection_define (LtasBag, CollectionOf, Ltas) {
-};
-
-autoLtas Ltases_merge (LtasBag ltases);
-autoLtas Ltases_average (LtasBag ltases);
+Ltas Ltases_merge (Collection ltases);
+Ltas Ltases_average (Collection ltases);
 
-autoLtas Ltas_computeTrendLine (Ltas me, double fmin, double fmax);
-autoLtas Ltas_subtractTrendLine (Ltas me, double fmin, double fmax);
+Ltas Ltas_computeTrendLine (Ltas me, double fmin, double fmax);
+Ltas Ltas_subtractTrendLine (Ltas me, double fmin, double fmax);
 
 /* Direct computations. */
 
-autoLtas Spectrum_to_Ltas (Spectrum me, double bandwidth);
-autoLtas Spectrum_to_Ltas_1to1 (Spectrum me);
-autoLtas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
+Ltas Spectrum_to_Ltas (Spectrum me, double bandwidth);
+Ltas Spectrum_to_Ltas_1to1 (Spectrum me);
+Ltas PointProcess_Sound_to_Ltas (PointProcess pulses, Sound sound,
 	double maximumFrequency, double bandWidth,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor);
-autoLtas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
+Ltas PointProcess_Sound_to_Ltas_harmonics (PointProcess pulses, Sound sound,
 	long maximumHarmonic,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor);
 
 /* Shortcuts. */
 
-autoLtas Sound_to_Ltas (Sound me, double bandwidth);
-autoLtas Sound_to_Ltas_pitchCorrected (Sound sound, double minimumPitch, double maximumPitch,
+Ltas Sound_to_Ltas (Sound me, double bandwidth);
+Ltas Sound_to_Ltas_pitchCorrected (Sound sound, double minimumPitch, double maximumPitch,
 	double maximumFrequency, double bandWidth,
 	double shortestPeriod, double longestPeriod, double maximumPeriodFactor);
 
diff --git a/fon/Ltas_to_SpectrumTier.cpp b/fon/Ltas_to_SpectrumTier.cpp
index c328ebc..b9953ff 100644
--- a/fon/Ltas_to_SpectrumTier.cpp
+++ b/fon/Ltas_to_SpectrumTier.cpp
@@ -1,6 +1,6 @@
 /* Ltas_to_SpectrumTier.cpp
  *
- * Copyright (C) 2007-2011,2015 Paul Boersma
+ * Copyright (C) 2007-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,10 +19,9 @@
 
 #include "Ltas_to_SpectrumTier.h"
 
-autoSpectrumTier Ltas_to_SpectrumTier_peaks (Ltas me) {
+SpectrumTier Ltas_to_SpectrumTier_peaks (Ltas me) {
 	try {
-		autoSpectrumTier thee = Vector_to_RealTier_peaks (me, 1, classSpectrumTier).static_cast_move<structSpectrumTier>();
-		return thee;
+		return (SpectrumTier) Vector_to_RealTier_peaks (me, 1, classSpectrumTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": peaks not analyzed as SpectrumTier.");
 	}
diff --git a/fon/Ltas_to_SpectrumTier.h b/fon/Ltas_to_SpectrumTier.h
index de02f0b..2393543 100644
--- a/fon/Ltas_to_SpectrumTier.h
+++ b/fon/Ltas_to_SpectrumTier.h
@@ -1,6 +1,6 @@
 /* Ltas_to_SpectrumTier.h
  *
- * Copyright (C) 2007-2011,2015 Paul Boersma
+ * Copyright (C) 2007-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,6 @@
 #include "Ltas.h"
 #include "SpectrumTier.h"
 
-autoSpectrumTier Ltas_to_SpectrumTier_peaks (Ltas me);
+SpectrumTier Ltas_to_SpectrumTier_peaks (Ltas me);
 
 /* End of file Ltas_to_SpectrumTier.h */
diff --git a/fon/Manipulation.cpp b/fon/Manipulation.cpp
index a514e69..aac1efc 100644
--- a/fon/Manipulation.cpp
+++ b/fon/Manipulation.cpp
@@ -1,6 +1,6 @@
 /* Manipulation.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,103 +51,115 @@ Thing_implement (Manipulation, Function, 5);
 
 void structManipulation :: v_shiftX (double xfrom, double xto) {
 	Manipulation_Parent :: v_shiftX (xfrom, xto);
-	if (our sound   )  Function_shiftXTo (our sound.get(),    xfrom, xto);
-	if (our pulses  )  Function_shiftXTo (our pulses.get(),   xfrom, xto);
-	if (our pitch   )  Function_shiftXTo (our pitch.get(),    xfrom, xto);
-	if (our duration)  Function_shiftXTo (our duration.get(), xfrom, xto);
-	if (our lpc     )  Function_shiftXTo (our lpc.get(),      xfrom, xto);
+	if (sound    != NULL)  Function_shiftXTo (sound,    xfrom, xto);
+	if (pulses   != NULL)  Function_shiftXTo (pulses,   xfrom, xto);
+	if (pitch    != NULL)  Function_shiftXTo (pitch,    xfrom, xto);
+	if (duration != NULL)  Function_shiftXTo (duration, xfrom, xto);
+	if (lpc      != NULL)  Function_shiftXTo (lpc,      xfrom, xto);
 }
 
 void structManipulation :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	Manipulation_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our sound   )  our sound    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our pulses  )  our pulses   -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our pitch   )  our pitch    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our duration)  our duration -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	if (our lpc     )  our lpc      -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (sound    != NULL)  sound    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (pulses   != NULL)  pulses   -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (pitch    != NULL)  pitch    -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (duration != NULL)  duration -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	if (lpc      != NULL)  lpc      -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 }
 
-autoManipulation Manipulation_create (double tmin, double tmax) {
+Manipulation Manipulation_create (double tmin, double tmax) {
 	try {
 		autoManipulation me = Thing_new (Manipulation);
 		my xmin = tmin, my xmax = tmax;
 		my duration = DurationTier_create (tmin, tmax);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Manipulation object not created.");
 	}
 }
 
-void Manipulation_replaceOriginalSound (Manipulation me, Sound sound) {
+int Manipulation_replaceOriginalSound (Manipulation me, Sound sound) {
 	try {
-		my sound = Sound_convertToMono (sound);
-		Vector_subtractMean (my sound.get());
-		my lpc = autoLPC();
+		autoSound sound2 = Sound_convertToMono (sound);
+		Vector_subtractMean (sound2.peek());
+		forget (my sound);
+		forget (my lpc);
+		my sound = sound2.transfer();
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": original Sound not replaced with ", sound, U".");
 	}
 }
 
-void Manipulation_replacePulses (Manipulation me, PointProcess pulses) {
+int Manipulation_replacePulses (Manipulation me, PointProcess pulses) {
 	try {
-		my pulses = Data_copy (pulses);
+		autoPointProcess pulses2 = Data_copy (pulses);
+		forget (my pulses);
+		my pulses = pulses2.transfer();
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": pulses not replaced with ", pulses, U".");
 	}
 }
 
-void Manipulation_replacePitchTier (Manipulation me, PitchTier pitch) {
+int Manipulation_replacePitchTier (Manipulation me, PitchTier pitch) {
 	try {
-		my pitch = Data_copy (pitch);
+		autoPitchTier pitch2 = Data_copy (pitch);
+		forget (my pitch);
+		my pitch = pitch2.transfer();
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch tier not replaced with ", pitch, U".");
 	}
 }
 
-void Manipulation_replaceDurationTier (Manipulation me, DurationTier duration) {
+int Manipulation_replaceDurationTier (Manipulation me, DurationTier duration) {
 	try {
-		my duration = Data_copy (duration);
+		autoDurationTier duration2 = Data_copy (duration);
+		forget (my duration);
+		my duration = duration2.transfer();
+		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": duration tier not replaced with ", duration, U".");
 	}
 }
 
-autoManipulation Sound_to_Manipulation (Sound me, double timeStep, double minimumPitch, double maximumPitch) {
+Manipulation Sound_to_Manipulation (Sound me, double timeStep, double minimumPitch, double maximumPitch) {
 	try {
 		autoManipulation thee = Manipulation_create (my xmin, my xmax);
 		thy sound = Sound_convertToMono (me);
-		Vector_subtractMean (thy sound.get());
-		autoPitch pitch = Sound_to_Pitch (thy sound.get(), timeStep, minimumPitch, maximumPitch);
-		thy pulses = Sound_Pitch_to_PointProcess_cc (thy sound.get(), pitch.get());
-		thy pitch = Pitch_to_PitchTier (pitch.get());
+		Vector_subtractMean (thy sound);
+		autoPitch pitch = Sound_to_Pitch (thy sound, timeStep, minimumPitch, maximumPitch);
+		thy pulses = Sound_Pitch_to_PointProcess_cc (thy sound, pitch.peek());
+		thy pitch = Pitch_to_PitchTier (pitch.peek());
 		/* (DurationTier has been done at creation time) */
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Manipulation.");
 	}
 }
 
-autoManipulation Sound_Pitch_to_Manipulation (Sound sound, Pitch pitch) {
+Manipulation Sound_Pitch_to_Manipulation (Sound sound, Pitch pitch) {
 	try {
 		autoManipulation me = Manipulation_create (sound -> xmin, sound -> xmax);
 		my sound = Sound_convertToMono (sound);
-		Vector_subtractMean (my sound.get());
-		my pulses = Sound_Pitch_to_PointProcess_cc (my sound.get(), pitch);
+		Vector_subtractMean (my sound);
+		my pulses = Sound_Pitch_to_PointProcess_cc (my sound, pitch);
 		my pitch = Pitch_to_PitchTier (pitch);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", pitch, U": not converted to Manipulation.");
 	}
 }
 
-autoManipulation Sound_PointProcess_to_Manipulation (Sound sound, PointProcess point) {
+Manipulation Sound_PointProcess_to_Manipulation (Sound sound, PointProcess point) {
 	try {
 		autoManipulation me = Manipulation_create (sound -> xmin, sound -> xmax);
 		my sound = Sound_convertToMono (sound);
-		Vector_subtractMean (my sound.get());
+		Vector_subtractMean (my sound);
 		my pulses = Data_copy (point);
 		my pitch = PointProcess_to_PitchTier (point, MAX_T);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", point, U": not converted to Manipulation.");
 	}
@@ -156,31 +168,31 @@ autoManipulation Sound_PointProcess_to_Manipulation (Sound sound, PointProcess p
 int Manipulation_playPart (Manipulation me, double tmin, double tmax, int method) {
 	try {
 		if (method == Manipulation_OVERLAPADD) {
+			Sound saved = my sound;
 			if (! my sound)
 				Melder_throw (U"Cannot synthesize overlap-add without a sound.");
-			autoSound part = Data_copy (my sound.get());
-			long imin = Sampled_xToLowIndex (part.get(), tmin), imax = Sampled_xToHighIndex (part.get(), tmax);
+			autoSound part = Data_copy (my sound);
+			long imin = Sampled_xToLowIndex (part.peek(), tmin), imax = Sampled_xToHighIndex (part.peek(), tmax);
 			double *amp = part -> z [1];
 			for (long i = 1; i <= imin; i ++) amp [i] = 0.0;
 			for (long i = imax; i <= part -> nx; i ++) amp [i] = 0.0;
-			autoSound saved = my sound.move();
-			my sound = part.move();
+			my sound = part.peek();
 			try {
 				autoSound played = Manipulation_to_Sound (me, Manipulation_OVERLAPADD);
-				my sound = saved.move();
+				my sound = saved;
 				amp = played -> z [1];
 				for (imin = 1; imin <= played -> nx; imin ++)
 					if (amp [imin] != 0.0) break;
 				for (imax = played -> nx; imax >= 1; imax --)
 					if (amp [imax] != 0.0) break;
-				Sound_playPart (played.get(), played -> x1 + (imin - 1.5) * played -> dx, played -> x1 + (imax - 0.5) * played -> dx, nullptr, nullptr);
+				Sound_playPart (played.peek(), played -> x1 + (imin - 1.5) * played -> dx, played -> x1 + (imax - 0.5) * played -> dx, NULL, 0);
 			} catch (MelderError) {
-				my sound = saved.move();
+				my sound = saved;
 				throw;
 			}
 		} else {
 			autoSound sound = Manipulation_to_Sound (me, method);
-			Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+			Sound_playPart (sound.peek(), tmin, tmax, NULL, 0);
 		}
 		return 1;
 	} catch (MelderError) {
@@ -191,7 +203,7 @@ int Manipulation_playPart (Manipulation me, double tmin, double tmax, int method
 int Manipulation_play (Manipulation me, int method) {
 	try {
 		autoSound sound = Manipulation_to_Sound (me, method);
-		Sound_play (sound.get(), nullptr, nullptr);
+		Sound_play (sound.peek(), NULL, NULL);
 		return 1;
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
@@ -204,34 +216,38 @@ static long PointProcess_getFirstVoicedPoint (PointProcess me, double maxT) {
 }
 
 static void copyRise (Sound me, double tmin, double tmax, Sound thee, double tmaxTarget) {
-	long imin = Sampled_xToHighIndex (me, tmin);
+	long imin, imax, imaxTarget, distance, i;
+	double dphase;
+	imin = Sampled_xToHighIndex (me, tmin);
 	if (imin < 1) imin = 1;
-	long imax = Sampled_xToHighIndex (me, tmax) - 1;   // not xToLowIndex: ensure separation of subsequent calls
+	imax = Sampled_xToHighIndex (me, tmax) - 1;   /* Not xToLowIndex: ensure separation of subsequent calls. */
 	if (imax > my nx) imax = my nx;
 	if (imax < imin) return;
-	long imaxTarget = Sampled_xToHighIndex (thee, tmaxTarget) - 1;
-	long distance = imaxTarget - imax;
-	double dphase = NUMpi / (imax - imin + 1);
-	for (long i = imin; i <= imax; i ++) {
+	imaxTarget = Sampled_xToHighIndex (thee, tmaxTarget) - 1;
+	distance = imaxTarget - imax;
+	dphase = NUMpi / (imax - imin + 1);
+	for (i = imin; i <= imax; i ++) {
 		long iTarget = i + distance;
 		if (iTarget >= 1 && iTarget <= thy nx)
-			thy z [1] [iTarget] += my z [1] [i] * 0.5 * (1.0 - cos (dphase * (i - imin + 0.5)));
+			thy z [1] [iTarget] += my z [1] [i] * 0.5 * (1 - cos (dphase * (i - imin + 0.5)));
 	}
 }
 
 static void copyFall (Sound me, double tmin, double tmax, Sound thee, double tminTarget) {
-	long imin = Sampled_xToHighIndex (me, tmin);
+	long imin, imax, iminTarget, distance, i;
+	double dphase;
+	imin = Sampled_xToHighIndex (me, tmin);
 	if (imin < 1) imin = 1;
-	long imax = Sampled_xToHighIndex (me, tmax) - 1;   // not xToLowIndex: ensure separation of subsequent calls
+	imax = Sampled_xToHighIndex (me, tmax) - 1;   /* Not xToLowIndex: ensure separation of subsequent calls. */
 	if (imax > my nx) imax = my nx;
 	if (imax < imin) return;
-	long iminTarget = Sampled_xToHighIndex (thee, tminTarget);
-	long distance = iminTarget - imin;
-	double dphase = NUMpi / (imax - imin + 1);
-	for (long i = imin; i <= imax; i ++) {
+	iminTarget = Sampled_xToHighIndex (thee, tminTarget);
+	distance = iminTarget - imin;
+	dphase = NUMpi / (imax - imin + 1);
+	for (i = imin; i <= imax; i ++) {
 		long iTarget = i + distance;
 		if (iTarget >= 1 && iTarget <= thy nx)
-			thy z [1] [iTarget] += my z [1] [i] * 0.5 * (1.0 + cos (dphase * (i - imin + 0.5)));
+			thy z [1] [iTarget] += my z [1] [i] * 0.5 * (1 + cos (dphase * (i - imin + 0.5)));
 	}
 }
 
@@ -262,7 +278,7 @@ static void copyBell2 (Sound me, PointProcess source, long isource, double leftW
 static void copyFlat (Sound me, double tmin, double tmax, Sound thee, double tminTarget) {
 	long imin = Sampled_xToHighIndex (me, tmin);
 	if (imin < 1) imin = 1;
-	long imax = Sampled_xToHighIndex (me, tmax) - 1;   // not xToLowIndex: ensure separation of subsequent calls
+	long imax = Sampled_xToHighIndex (me, tmax) - 1;   /* Not xToLowIndex: ensure separation of subsequent calls. */
 	if (imax > my nx) imax = my nx;
 	if (imax < imin) return;
 	long iminTarget = Sampled_xToHighIndex (thee, tminTarget);
@@ -272,12 +288,12 @@ static void copyFlat (Sound me, double tmin, double tmax, Sound thee, double tmi
 	NUMvector_copyElements (my z [1] + imin, thy z [1] + iminTarget, 0, imax - imin);
 }
 
-autoSound Sound_Point_Point_to_Sound (Sound me, PointProcess source, PointProcess target, double maxT) {
+Sound Sound_Point_Point_to_Sound (Sound me, PointProcess source, PointProcess target, double maxT) {
 	try {
 		autoSound thee = Sound_create (1, my xmin, my xmax, my nx, my dx, my x1);
-		if (source -> nt < 2 || target -> nt < 2) {   // almost completely voiceless?
+		if (source -> nt < 2 || target -> nt < 2) {   /* Almost completely voiceless? */
 			NUMvector_copyElements (my z [1], thy z [1], 1, my nx);
-			return thee;
+			return thee.transfer();
 		}
 		for (long i = 1; i <= target -> nt; i ++) {
 			double tmid = target -> t [i];
@@ -287,34 +303,34 @@ autoSound Sound_Point_Point_to_Sound (Sound me, PointProcess source, PointProces
 			int leftVoiced = i > 1 && leftWidth <= maxT;
 			int rightVoiced = i < target -> nt && rightWidth <= maxT;
 			long isource = PointProcess_getNearestIndex (source, tmid);
-			if (! leftVoiced) leftWidth = rightWidth;   // symmetric bell
-			if (! rightVoiced) rightWidth = leftWidth;   // symmetric bell
+			if (! leftVoiced) leftWidth = rightWidth;   /* Symmetric bell. */
+			if (! rightVoiced) rightWidth = leftWidth;   /* Symmetric bell. */
 			if (leftVoiced || rightVoiced) {
-				copyBell2 (me, source, isource, leftWidth, rightWidth, thee.get(), tmid, maxT);
+				copyBell2 (me, source, isource, leftWidth, rightWidth, thee.peek(), tmid, maxT);
 				if (! leftVoiced) {
-					double startOfFlat = ( i == 1 ? tleft : (tleft + tmid) / 2.0 );
+					double startOfFlat = i == 1 ? tleft : (tleft + tmid) / 2;
 					double endOfFlat = tmid - leftWidth;
-					copyFlat (me, startOfFlat, endOfFlat, thee.get(), startOfFlat);
-					copyFall (me, endOfFlat, tmid, thee.get(), endOfFlat);
+					copyFlat (me, startOfFlat, endOfFlat, thee.peek(), startOfFlat);
+					copyFall (me, endOfFlat, tmid, thee.peek(), endOfFlat);
 				} else if (! rightVoiced) {
 					double startOfFlat = tmid + rightWidth;
-					double endOfFlat = ( i == target -> nt ? tright : (tmid + tright) / 2.0 );
-					copyRise (me, tmid, startOfFlat, thee.get(), startOfFlat);
-					copyFlat (me, startOfFlat, endOfFlat, thee.get(), startOfFlat);
+					double endOfFlat = i == target -> nt ? tright : (tmid + tright) / 2;
+					copyRise (me, tmid, startOfFlat, thee.peek(), startOfFlat);
+					copyFlat (me, startOfFlat, endOfFlat, thee.peek(), startOfFlat);
 				}
 			} else {
-				double startOfFlat = ( i == 1 ? tleft : (tleft + tmid) / 2.0 );
-				double endOfFlat = ( i == target -> nt ? tright : (tmid + tright) / 2.0 );
-				copyFlat (me, startOfFlat, endOfFlat, thee.get(), startOfFlat);
+				double startOfFlat = i == 1 ? tleft : (tleft + tmid) / 2;
+				double endOfFlat = i == target -> nt ? tright : (tmid + tright) / 2;
+				copyFlat (me, startOfFlat, endOfFlat, thee.peek(), startOfFlat);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not manipulated.");
 	}
 }
 
-autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
+Sound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 	PitchTier pitch, DurationTier duration, double maxT)
 {
 	try {
@@ -325,7 +341,7 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 		double startOfSourceVoice, endOfSourceVoice, startOfTargetVoice, endOfTargetVoice;
 		double durationOfSourceVoice, durationOfTargetVoice;
 		double startingPeriod, finishingPeriod, ttarget, voicelessPeriod;
-		if (duration -> points.size == 0)
+		if (duration -> points -> size == 0)
 			Melder_throw (U"No duration points.");
 
 		/*
@@ -336,13 +352,13 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 		/*
 		 * Below, I'll abbreviate the voiced interval as "voice" and the voiceless interval as "noise".
 		 */
-		if (pitch && pitch -> points.size) for (ipointleft = 1; ipointleft <= pulses -> nt; ipointleft = ipointright + 1) {
+		if (pitch && pitch -> points -> size) for (ipointleft = 1; ipointleft <= pulses -> nt; ipointleft = ipointright + 1) {
 			/*
 			 * Find the beginning of the voice.
 			 */
-			startOfSourceVoice = pulses -> t [ipointleft];   // the first pulse of the voice
+			startOfSourceVoice = pulses -> t [ipointleft];   /* The first pulse of the voice. */
 			startingPeriod = 1.0 / RealTier_getValueAtTime (pitch, startOfSourceVoice);
-			startOfSourceVoice -= 0.5 * startingPeriod;   // the first pulse is in the middle of a period
+			startOfSourceVoice -= 0.5 * startingPeriod;   /* The first pulse is in the middle of a period. */
 
 			/*
 			 * Measure one noise.
@@ -370,7 +386,7 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 					if (ttargetmid < ttarget) tleft = tsourcemid; else tright = tsourcemid;
 				}
 				tsource = 0.5 * (tleft + tright);
-				copyBell (me, tsource, voicelessPeriod, voicelessPeriod, thee.get(), ttarget);
+				copyBell (me, tsource, voicelessPeriod, voicelessPeriod, thee.peek(), ttarget);
 				voicelessPeriod = NUMrandomUniform (0.008, 0.012);
 				ttarget += voicelessPeriod;
 			}
@@ -383,9 +399,9 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 				if (pulses -> t [ipointright] - pulses -> t [ipointright - 1] > maxT)
 					break;
 			ipointright --;
-			endOfSourceVoice = pulses -> t [ipointright];   // the last pulse of the voice
+			endOfSourceVoice = pulses -> t [ipointright];   /* The last pulse of the voice. */
 			finishingPeriod = 1.0 / RealTier_getValueAtTime (pitch, endOfSourceVoice);
-			endOfSourceVoice += 0.5 * finishingPeriod;   // the last pulse is in the middle of a period
+			endOfSourceVoice += 0.5 * finishingPeriod;   /* The last pulse is in the middle of a period. */
 			/*
 			 * Measure one voice.
 			 */
@@ -417,7 +433,7 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 				tsource = 0.5 * (tleft + tright);
 				period = 1.0 / RealTier_getValueAtTime (pitch, tsource);
 				isourcepulse = PointProcess_getNearestIndex (pulses, tsource);
-				copyBell2 (me, pulses, isourcepulse, period, period, thee.get(), ttarget, maxT);
+				copyBell2 (me, pulses, isourcepulse, period, period, thee.peek(), ttarget, maxT);
 				ttarget += period;
 			}
 			deltat += durationOfTargetVoice - durationOfSourceVoice;
@@ -445,7 +461,7 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 				if (ttargetmid < ttarget) tleft = tsourcemid; else tright = tsourcemid;
 			}
 			tsource = 0.5 * (tleft + tright);
-			copyBell (me, tsource, voicelessPeriod, voicelessPeriod, thee.get(), ttarget);
+			copyBell (me, tsource, voicelessPeriod, voicelessPeriod, thee.peek(), ttarget);
 			voicelessPeriod = NUMrandomUniform (0.008, 0.012);
 			ttarget += voicelessPeriod;
 		}
@@ -454,95 +470,101 @@ autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 		 * Find the number of trailing zeroes and hack the sound's time domain.
 		 */
 		thy xmax = thy xmin + RealTier_getArea (duration, my xmin, my xmax);
-		if (fabs (thy xmax - my xmax) < 1e-12) thy xmax = my xmax;   // common situation
-		thy nx = Sampled_xToLowIndex (thee.get(), thy xmax);
+		if (fabs (thy xmax - my xmax) < 1e-12) thy xmax = my xmax;   /* Common situation. */
+		thy nx = Sampled_xToLowIndex (thee.peek(), thy xmax);
 		if (thy nx > 3 * my nx) thy nx = 3 * my nx;
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not manipulated.");
 	}
 }
 
-static autoSound synthesize_overlapAdd_nodur (Manipulation me) {
+static Sound synthesize_overlapAdd_nodur (Manipulation me) {
 	try {
 		if (! my sound)  Melder_throw (U"Missing original sound.");
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
 		if (! my pitch)  Melder_throw (U"Missing pitch manipulation.");
-		autoPointProcess targetPulses = PitchTier_Point_to_PointProcess (my pitch.get(), my pulses.get(), MAX_T);
-		return Sound_Point_Point_to_Sound (my sound.get(), my pulses.get(), targetPulses.get(), MAX_T);
+		autoPointProcess targetPulses = PitchTier_Point_to_PointProcess (my pitch, my pulses, MAX_T);
+		autoSound thee = Sound_Point_Point_to_Sound (my sound, my pulses, targetPulses.peek(), MAX_T);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": overlap-add synthesis (without duration) not performed.");
 	}
 }
 
-static autoSound synthesize_overlapAdd (Manipulation me) {
-	if (! my duration || my duration -> points.size == 0) return synthesize_overlapAdd_nodur (me);
+static Sound synthesize_overlapAdd (Manipulation me) {
+	if (! my duration || my duration -> points -> size == 0) return synthesize_overlapAdd_nodur (me);
 	try {
 		if (! my sound)  Melder_throw (U"Missing original sound.");
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
 		if (! my pitch)  Melder_throw (U"Missing pitch manipulation.");
-		return Sound_Point_Pitch_Duration_to_Sound (my sound.get(), my pulses.get(), my pitch.get(), my duration.get(), MAX_T);
+		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (my sound, my pulses, my pitch, my duration, MAX_T);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": overlap-add synthesis not performed.");
 	}
 }
 
-static autoSound synthesize_pulses (Manipulation me) {
+static Sound synthesize_pulses (Manipulation me) {
 	try {
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
-		return PointProcess_to_Sound_pulseTrain (my pulses.get(), 44100.0, 0.7, 0.05, 30);
+		return PointProcess_to_Sound_pulseTrain (my pulses, 44100, 0.7, 0.05, 30);
 	} catch (MelderError) {
 		Melder_throw (me, U": pulses synthesis not performed.");
 	}
 }
 
-static autoSound synthesize_pulses_hum (Manipulation me) {
+static Sound synthesize_pulses_hum (Manipulation me) {
 	try {
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
-		return PointProcess_to_Sound_hum (my pulses.get());
+		return PointProcess_to_Sound_hum (my pulses);
 	} catch (MelderError) {
 		Melder_throw (me, U": pulses hum synthesis not performed.");
 	}
 }
 
-static autoSound synthesize_pitch (Manipulation me) {
+static Sound synthesize_pitch (Manipulation me) {
 	try {
 		if (! my pitch) Melder_throw (U"Missing pitch tier.");
-		autoPointProcess pulses = PitchTier_to_PointProcess (my pitch.get());
-		return PointProcess_to_Sound_pulseTrain (pulses.get(), 44100.0, 0.7, 0.05, 30);
+		autoPointProcess pulses = PitchTier_to_PointProcess (my pitch);
+		autoSound thee = PointProcess_to_Sound_pulseTrain (pulses.peek(), 44100, 0.7, 0.05, 30);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch manipulation not synthesized.");
 	}
 }
 
-static autoSound synthesize_pitch_hum (Manipulation me) {
+static Sound synthesize_pitch_hum (Manipulation me) {
 	try {
 		if (! my pitch) Melder_throw (U"Missing pitch tier.");
-		autoPointProcess pulses = PitchTier_to_PointProcess (my pitch.get());
-		return PointProcess_to_Sound_hum (pulses.get());
+		autoPointProcess pulses = PitchTier_to_PointProcess (my pitch);
+		autoSound thee = PointProcess_to_Sound_hum (pulses.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch hum manipulation not synthesized.");
 	}
 }
 
-static autoSound synthesize_pulses_pitch (Manipulation me) {
+static Sound synthesize_pulses_pitch (Manipulation me) {
 	try {
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
 		if (! my pitch)  Melder_throw (U"Missing pitch tier.");
-		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch.get(), my pulses.get(), MAX_T);
-		return PointProcess_to_Sound_pulseTrain (pulses.get(), 44100.0, 0.7, 0.05, 30);
+		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch, my pulses, MAX_T);
+		autoSound thee = PointProcess_to_Sound_pulseTrain (pulses.peek(), 44100, 0.7, 0.05, 30);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch pulses manipulation not synthesized.");
 	}
 }
 
-static autoSound synthesize_pulses_pitch_hum (Manipulation me) {
+static Sound synthesize_pulses_pitch_hum (Manipulation me) {
 	try {
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
 		if (! my pitch)  Melder_throw (U"Missing pitch tier.");
-		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch.get(), my pulses.get(), MAX_T);
-		return PointProcess_to_Sound_hum (pulses.get());
+		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch, my pulses, MAX_T);
+		autoSound thee = PointProcess_to_Sound_hum (pulses.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch pulses hum manipulation not synthesized.");
 	}
@@ -561,8 +583,8 @@ static Sound synthesize_pulses_formant (Manipulation me, int useIntensity) {
 		if (! my pulses)  Melder_throw (U"Missing pulses analysis.");
 		if (! my formant) Melder_throw (U"Missing formant information.");
 		autoSound thee = PointProcess_to_Sound (my pulses, 44100, 0.7, 0.05, 30);
-		Sound_Formant_Intensity_filter (get(), my formant, useIntensity ? my intensity : nullptr);
-		return thee;
+		Sound_Formant_Intensity_filter (thee.peek(), my formant, useIntensity ? my intensity : NULL);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": formant and pulses manipulation not synthesized.");
 	}
@@ -599,49 +621,49 @@ static void Sound_PointProcess_fillVoiceless (Sound me, PointProcess pulses) {
 	}
 }
 
-static autoSound synthesize_pulses_lpc (Manipulation me) {
+static Sound synthesize_pulses_lpc (Manipulation me) {
 	try {
 		if (! my lpc) {
 			if (! my sound) Melder_throw (U"Missing original sound.");
-			autoSound sound10k = Sound_resample (my sound.get(), 10000.0, 50);
-			my lpc = Sound_to_LPC_burg (sound10k.get(), 20, 0.025, 0.01, 50.0);
+			autoSound sound10k = Sound_resample (my sound, 10000, 50);
+			my lpc = Sound_to_LPC_burg (sound10k.peek(), 20, 0.025, 0.01, 50.0);
 		}
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
-		autoSound train = PointProcess_to_Sound_pulseTrain (my pulses.get(), 1.0 / my lpc -> samplingPeriod, 0.7, 0.05, 30);
+		autoSound train = PointProcess_to_Sound_pulseTrain (my pulses, 1 / my lpc -> samplingPeriod, 0.7, 0.05, 30);
 		train -> dx = my lpc -> samplingPeriod;   // to be exact
-		Sound_PointProcess_fillVoiceless (train.get(), my pulses.get());
-		autoSound result = LPC_and_Sound_filter (my lpc.get(), train.get(), true);
+		Sound_PointProcess_fillVoiceless (train.peek(), my pulses);
+		autoSound result = LPC_and_Sound_filter (my lpc, train.peek(), TRUE);
 		NUMdeemphasize_f (result -> z [1], result -> nx, result -> dx, 50.0);
-		Vector_scale (result.get(), 0.99);
-		return result;
+		Vector_scale (result.peek(), 0.99);
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": LPC synthesis not performed.");
 	}
 }
 
-static autoSound synthesize_pitch_lpc (Manipulation me) {
+static Sound synthesize_pitch_lpc (Manipulation me) {
 	try {
 		if (! my lpc) {
 			if (! my sound) Melder_throw (U"Missing original sound.");
-			autoSound sound10k = Sound_resample (my sound.get(), 10000.0, 50);
-			my lpc = Sound_to_LPC_burg (sound10k.get(), 20, 0.025, 0.01, 50.0);
+			autoSound sound10k = Sound_resample (my sound, 10000, 50);
+			my lpc = Sound_to_LPC_burg (sound10k.peek(), 20, 0.025, 0.01, 50.0);
 		}
 		if (! my pitch)  Melder_throw (U"Missing pitch manipulation.");
 		if (! my pulses) Melder_throw (U"Missing pulses analysis.");
-		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch.get(), my pulses.get(), MAX_T);
-		autoSound train = PointProcess_to_Sound_pulseTrain (pulses.get(), 1 / my lpc -> samplingPeriod, 0.7, 0.05, 30);
+		autoPointProcess pulses = PitchTier_Point_to_PointProcess (my pitch, my pulses, MAX_T);
+		autoSound train = PointProcess_to_Sound_pulseTrain (pulses.peek(), 1 / my lpc -> samplingPeriod, 0.7, 0.05, 30);
 		train -> dx = my lpc -> samplingPeriod;   // to be exact
-		Sound_PointProcess_fillVoiceless (train.get(), my pulses.get());
-		autoSound result = LPC_and_Sound_filter (my lpc.get(), train.get(), true);
+		Sound_PointProcess_fillVoiceless (train.peek(), my pulses);
+		autoSound result = LPC_and_Sound_filter (my lpc, train.peek(), TRUE);
 		NUMdeemphasize_f (result -> z [1], result -> nx, result -> dx, 50.0);
-		Vector_scale (result.get(), 0.99);
-		return result;
+		Vector_scale (result.peek(), 0.99);
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch LPC synthesis not performed.");
 	}
 }
 
-autoSound Manipulation_to_Sound (Manipulation me, int method) {
+Sound Manipulation_to_Sound (Manipulation me, int method) {
 	switch (method) {
 		case Manipulation_OVERLAPADD: return synthesize_overlapAdd (me);
 		case Manipulation_PULSES: return synthesize_pulses (me);
@@ -651,45 +673,59 @@ autoSound Manipulation_to_Sound (Manipulation me, int method) {
 		case Manipulation_PULSES_PITCH: return synthesize_pulses_pitch (me);
 		case Manipulation_PULSES_PITCH_HUM: return synthesize_pulses_pitch_hum (me);
 		case Manipulation_OVERLAPADD_NODUR: return synthesize_overlapAdd_nodur (me);
-		case Manipulation_PULSES_FORMANT: return autoSound();
-		case Manipulation_PULSES_FORMANT_INTENSITY: return autoSound();
+		case Manipulation_PULSES_FORMANT: return 0;
+		case Manipulation_PULSES_FORMANT_INTENSITY: return 0;
 		case Manipulation_PULSES_LPC: return synthesize_pulses_lpc (me);
-		case Manipulation_PULSES_LPC_INTENSITY: return autoSound();
+		case Manipulation_PULSES_LPC_INTENSITY: return 0;
 		case Manipulation_PITCH_LPC: return synthesize_pitch_lpc (me);
-		case Manipulation_PITCH_LPC_INTENSITY: return autoSound();
+		case Manipulation_PITCH_LPC_INTENSITY: return 0;
 		default: return synthesize_overlapAdd (me);
 	}
 }
 
-autoManipulation Manipulation_AnyTier_to_Manipulation (Manipulation me, AnyTier tier) {
+Manipulation Manipulation_AnyTier_to_Manipulation (Manipulation me, AnyTier tier) {
 	try {
 		if (! my pitch) Melder_throw (U"Missing pitch manipulation.");
 		autoManipulation result = Data_copy (me);
-		result -> pitch = PitchTier_AnyTier_to_PitchTier (my pitch.get(), tier);
-		return result;
+		/*
+		 * Create without change.
+		 */
+		autoPitchTier pitch = PitchTier_AnyTier_to_PitchTier (my pitch, tier);
+		/*
+		 * Change without error.
+		 */
+		forget (result -> pitch);
+		result -> pitch = pitch.transfer();
+		/*
+		 */
+		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted.");
 	}
 }
 
-void Manipulation_writeToTextFileWithoutSound (Manipulation me, MelderFile file) {
-	autoSound saved = my sound.move();
+int Manipulation_writeToTextFileWithoutSound (Manipulation me, MelderFile file) {
+	Sound saved = my sound;
 	try {
+		my sound = NULL;
 		Data_writeToTextFile (me, file);
-		my sound = saved.move();
+		my sound = saved;
+		return 1;
 	} catch (MelderError) {
-		my sound = saved.move();
+		my sound = saved;
 		Melder_throw (me, U": not saved to text file.");
 	}
 }
 
-void Manipulation_writeToBinaryFileWithoutSound (Manipulation me, MelderFile file) {
-	autoSound saved = my sound.move();
+int Manipulation_writeToBinaryFileWithoutSound (Manipulation me, MelderFile file) {
+	Sound saved = my sound;
 	try {
+		my sound = NULL;
 		Data_writeToBinaryFile (me, file);
-		my sound = saved.move();
+		my sound = saved;
+		return 1;
 	} catch (MelderError) {
-		my sound = saved.move();
+		my sound = saved;
 		Melder_throw (me, U": not saved to binary file.");
 	}
 }
diff --git a/fon/Manipulation.h b/fon/Manipulation.h
index 8f06509..df8938a 100644
--- a/fon/Manipulation.h
+++ b/fon/Manipulation.h
@@ -2,7 +2,7 @@
 #define _Manipulation_h_
 /* Manipulation.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,20 +34,21 @@
 #include "Image.h"
 
 #include "Manipulation_def.h"
+oo_CLASS_CREATE (Manipulation, Function);
 
 /* How to create an Manipulation. */
 
-autoManipulation Manipulation_create (double tmin, double tmax);
-void Manipulation_replaceOriginalSound (Manipulation me, Sound sound);
-void Manipulation_replacePulses (Manipulation me, PointProcess pulses);
-void Manipulation_replaceIntensityTier (Manipulation me, IntensityTier intensity);
-void Manipulation_replacePitchTier (Manipulation me, PitchTier pitch);
-void Manipulation_replaceDurationTier (Manipulation me, DurationTier duration);
+Manipulation Manipulation_create (double tmin, double tmax);
+int Manipulation_replaceOriginalSound (Manipulation me, Sound sound);
+int Manipulation_replacePulses (Manipulation me, PointProcess pulses);
+int Manipulation_replaceIntensityTier (Manipulation me, IntensityTier intensity);
+int Manipulation_replacePitchTier (Manipulation me, PitchTier pitch);
+int Manipulation_replaceDurationTier (Manipulation me, DurationTier duration);
 
-autoManipulation Sound_to_Manipulation (Sound me, double timeStep, double minimumPitch, double maximumPitch);
-autoManipulation Sound_Pitch_to_Manipulation (Sound sound, Pitch pitch);
-autoManipulation Sound_PointProcess_to_Manipulation (Sound sound, PointProcess point);
-autoManipulation Manipulation_AnyTier_to_Manipulation (Manipulation manip, AnyTier tier);
+Manipulation Sound_to_Manipulation (Sound me, double timeStep, double minimumPitch, double maximumPitch);
+Manipulation Sound_Pitch_to_Manipulation (Sound sound, Pitch pitch);
+Manipulation Sound_PointProcess_to_Manipulation (Sound sound, PointProcess point);
+Manipulation Manipulation_AnyTier_to_Manipulation (Manipulation manip, AnyTier tier);
 
 /* Resynthesis. */
 
@@ -66,18 +67,18 @@ autoManipulation Manipulation_AnyTier_to_Manipulation (Manipulation manip, AnyTi
 #define Manipulation_PITCH_LPC  13
 #define Manipulation_PITCH_LPC_INTENSITY  14
 #define Manipulation_PITCH_LPC_INT_DUR  15
-autoSound Sound_Point_Point_to_Sound (Sound me, PointProcess source, PointProcess target, double maxT);
+Sound Sound_Point_Point_to_Sound (Sound me, PointProcess source, PointProcess target, double maxT);
 /*void Sound_Formant_Intensity_filter (Sound me, FormantTier formant, IntensityTier intensity);*/
 
-autoSound Manipulation_to_Sound (Manipulation me, int method);
+Sound Manipulation_to_Sound (Manipulation me, int method);
 int Manipulation_playPart (Manipulation me, double tmin, double tmax, int method);
 int Manipulation_play (Manipulation me, int method);
-void Manipulation_writeToTextFileWithoutSound (Manipulation me, MelderFile file);
-void Manipulation_writeToBinaryFileWithoutSound (Manipulation me, MelderFile file);
+int Manipulation_writeToTextFileWithoutSound (Manipulation me, MelderFile fs);
+int Manipulation_writeToBinaryFileWithoutSound (Manipulation me, MelderFile fs);
 
 /* The low-level synthesis routines. */
 
-autoSound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
+Sound Sound_Point_Pitch_Duration_to_Sound (Sound me, PointProcess pulses,
 	PitchTier pitch, DurationTier duration, double maxT);
 
 /* End of file Manipulation.h */
diff --git a/fon/ManipulationEditor.cpp b/fon/ManipulationEditor.cpp
index a60af01..6ce33c9 100644
--- a/fon/ManipulationEditor.cpp
+++ b/fon/ManipulationEditor.cpp
@@ -1,6 +1,6 @@
 /* ManipulationEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,131 +57,152 @@ static int prefs_synthesisMethod = Manipulation_OVERLAPADD;   /* Remembered acro
 #define YLININV(freq)  (my p_pitch_units == kManipulationEditor_pitchUnits_HERTZ ? (freq) : NUMsemitonesToHertz (freq))
 
 static void updateMenus (ManipulationEditor me) {
-	Melder_assert (my synthPulsesButton);
+	Melder_assert (my synthPulsesButton != NULL);
 	GuiMenuItem_check (my synthPulsesButton, my synthesisMethod == Manipulation_PULSES);
-	Melder_assert (my synthPulsesHumButton);
+	Melder_assert (my synthPulsesHumButton != NULL);
 	GuiMenuItem_check (my synthPulsesHumButton, my synthesisMethod == Manipulation_PULSES_HUM);
-	Melder_assert (my synthPulsesLpcButton);
+	Melder_assert (my synthPulsesLpcButton != NULL);
 	GuiMenuItem_check (my synthPulsesLpcButton, my synthesisMethod == Manipulation_PULSES_LPC);
-	Melder_assert (my synthPitchButton);
+	Melder_assert (my synthPitchButton != NULL);
 	GuiMenuItem_check (my synthPitchButton, my synthesisMethod == Manipulation_PITCH);
-	Melder_assert (my synthPitchHumButton);
+	Melder_assert (my synthPitchHumButton != NULL);
 	GuiMenuItem_check (my synthPitchHumButton, my synthesisMethod == Manipulation_PITCH_HUM);
-	Melder_assert (my synthPulsesPitchButton);
+	Melder_assert (my synthPulsesPitchButton != NULL);
 	GuiMenuItem_check (my synthPulsesPitchButton, my synthesisMethod == Manipulation_PULSES_PITCH);
-	Melder_assert (my synthPulsesPitchHumButton);
+	Melder_assert (my synthPulsesPitchHumButton != NULL);
 	GuiMenuItem_check (my synthPulsesPitchHumButton, my synthesisMethod == Manipulation_PULSES_PITCH_HUM);
-	Melder_assert (my synthOverlapAddButton);
+	Melder_assert (my synthOverlapAddButton != NULL);
 	GuiMenuItem_check (my synthOverlapAddButton, my synthesisMethod == Manipulation_OVERLAPADD);
-	Melder_assert (my synthPitchLpcButton);
+	Melder_assert (my synthPitchLpcButton != NULL);
 	GuiMenuItem_check (my synthPitchLpcButton, my synthesisMethod == Manipulation_PITCH_LPC);
 }
 
 /*
  * The "sound area" contains the original sound and the pulses.
  */
-static bool getSoundArea (ManipulationEditor me, double *ymin, double *ymax) {
+static int getSoundArea (ManipulationEditor me, double *ymin, double *ymax) {
 	Manipulation ana = (Manipulation) my data;
 	*ymin = 0.66;
 	*ymax = 1.00;
-	return ana -> sound || ana -> pulses;
+	return ana -> sound != NULL || ana -> pulses != NULL;
 }
 /*
  * The "pitch area" contains the grey pitch analysis based on the pulses, and the blue pitch tier.
  */
-static bool getPitchArea (ManipulationEditor me, double *ymin, double *ymax) {
+static int getPitchArea (ManipulationEditor me, double *ymin, double *ymax) {
 	Manipulation ana = (Manipulation) my data;
 	*ymin = ana -> duration ? 0.16 : 0.00;
 	*ymax = 0.65;
-	return ana -> pulses || ana -> pitch;
+	return ana -> pulses != NULL || ana -> pitch != NULL;
 }
-static bool getDurationArea (ManipulationEditor me, double *ymin, double *ymax) {
+static int getDurationArea (ManipulationEditor me, double *ymin, double *ymax) {
 	Manipulation ana = (Manipulation) my data;
-	if (! ana -> duration) return false;
+	if (! ana -> duration) return FALSE;
 	*ymin = 0.00;
 	*ymax = 0.15;
-	return true;
+	return TRUE;
+}
+
+/********** DESTRUCTION **********/
+
+void structManipulationEditor :: v_destroy () {
+	forget (our previousPulses);
+	forget (our previousPitch);
+	forget (our previousDuration);
+	ManipulationEditor_Parent :: v_destroy ();
 }
 
 /********** MENU COMMANDS **********/
 
 /***** FILE MENU *****/
 
-static void menu_cb_extractOriginalSound (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractOriginalSound (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> sound) return;
-	autoSound publish = Data_copy (ana -> sound.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoSound publish = Data_copy (ana -> sound);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extractPulses (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractPulses (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pulses) return;
-	autoPointProcess publish = Data_copy (ana -> pulses.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoPointProcess publish = Data_copy (ana -> pulses);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extractPitchTier (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractPitchTier (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pitch) return;
-	autoPitchTier publish = Data_copy (ana -> pitch.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoPitchTier publish = Data_copy (ana -> pitch);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extractDurationTier (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractDurationTier (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> duration) return;
-	autoDurationTier publish = Data_copy (ana -> duration.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoDurationTier publish = Data_copy (ana -> duration);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_extractManipulatedSound (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractManipulatedSound (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	autoSound publish = Manipulation_to_Sound (ana, my synthesisMethod);
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
 /***** EDIT MENU *****/
 
 void structManipulationEditor :: v_saveData () {
 	Manipulation ana = (Manipulation) our data;
-	if (ana -> pulses)   our previousPulses   = Data_copy (ana -> pulses.get());
-	if (ana -> pitch)    our previousPitch    = Data_copy (ana -> pitch.get());
-	if (ana -> duration) our previousDuration = Data_copy (ana -> duration.get());
+	forget (our previousPulses);
+	forget (our previousPitch);
+	forget (our previousDuration);
+	if (ana -> pulses)   our previousPulses   = Data_copy (ana -> pulses);
+	if (ana -> pitch)    our previousPitch    = Data_copy (ana -> pitch);
+	if (ana -> duration) our previousDuration = Data_copy (ana -> duration);
 }
 
 void structManipulationEditor :: v_restoreData () {
 	Manipulation ana = (Manipulation) our data;
-	autoPointProcess dummy1 = ana -> pulses.move();   ana -> pulses   = our previousPulses.move();   our previousPulses   = dummy1.move();
-	autoPitchTier    dummy2 = ana -> pitch.move();    ana -> pitch    = our previousPitch.move();    our previousPitch    = dummy2.move();
-	autoDurationTier dummy3 = ana -> duration.move(); ana -> duration = our previousDuration.move(); our previousDuration = dummy3.move();
+	Any dummy;
+	dummy = ana -> pulses;   ana -> pulses   = our previousPulses;   our previousPulses   = (PointProcess) dummy;
+	dummy = ana -> pitch;    ana -> pitch    = our previousPitch;    our previousPitch    = (PitchTier)    dummy;
+	dummy = ana -> duration; ana -> duration = our previousDuration; our previousDuration = (DurationTier) dummy;
 }
 
 /***** PULSES MENU *****/
 
-static void menu_cb_removePulses (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removePulses (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);	
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pulses) return;
 	Editor_save (me, U"Remove pulse(s)");
 	if (my d_startSelection == my d_endSelection)
-		PointProcess_removePointNear (ana -> pulses.get(), my d_startSelection);
+		PointProcess_removePointNear (ana -> pulses, my d_startSelection);
 	else
-		PointProcess_removePointsBetween (ana -> pulses.get(), my d_startSelection, my d_endSelection);
+		PointProcess_removePointsBetween (ana -> pulses, my d_startSelection, my d_endSelection);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPulseAtCursor (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPulseAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pulses) return;
 	Editor_save (me, U"Add pulse");
-	PointProcess_addPoint (ana -> pulses.get(), 0.5 * (my d_startSelection + my d_endSelection));
+	PointProcess_addPoint (ana -> pulses, 0.5 * (my d_startSelection + my d_endSelection));
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPulseAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add pulse", nullptr)
+static void menu_cb_addPulseAt (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
+	EDITOR_FORM (U"Add pulse", 0)
 		REAL (U"Position (s)", U"0.0")
 	EDITOR_OK
 		SET_REAL (U"Position", 0.5 * (my d_startSelection + my d_endSelection))
@@ -189,7 +210,7 @@ static void menu_cb_addPulseAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> pulses) return;
 		Editor_save (me, U"Add pulse");
-		PointProcess_addPoint (ana -> pulses.get(), GET_REAL (U"Position"));
+		PointProcess_addPoint (ana -> pulses, GET_REAL (U"Position"));
 		FunctionEditor_redraw (me);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
@@ -197,30 +218,33 @@ static void menu_cb_addPulseAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
 
 /***** PITCH MENU *****/
 
-static void menu_cb_removePitchPoints (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removePitchPoints (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pitch) return;
 	Editor_save (me, U"Remove pitch point(s)");
 	if (my d_startSelection == my d_endSelection)
-		AnyTier_removePointNear (ana -> pitch.get()->asAnyTier(), my d_startSelection);
+		AnyTier_removePointNear (ana -> pitch, my d_startSelection);
 	else
-		AnyTier_removePointsBetween (ana -> pitch.get()->asAnyTier(), my d_startSelection, my d_endSelection);
+		AnyTier_removePointsBetween (ana -> pitch, my d_startSelection, my d_endSelection);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPitchPointAtCursor (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPitchPointAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pitch) return;
 	Editor_save (me, U"Add pitch point");
-	RealTier_addPoint (ana -> pitch.get(), 0.5 * (my d_startSelection + my d_endSelection), YLININV (my pitchTier.cursor));
+	RealTier_addPoint (ana -> pitch, 0.5 * (my d_startSelection + my d_endSelection), YLININV (my pitchTier.cursor));
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPitchPointAtSlice (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPitchPointAtSlice (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
-	PointProcess pulses = ana -> pulses.get();
+	PointProcess pulses = ana -> pulses;
 	if (! pulses) Melder_throw (U"There are no pulses.");
 	if (! ana -> pitch) return;
 	long ileft = PointProcess_getLowIndex (pulses, 0.5 * (my d_startSelection + my d_endSelection)), iright = ileft + 1, nt = pulses -> nt;
@@ -250,12 +274,13 @@ static void menu_cb_addPitchPointAtSlice (ManipulationEditor me, EDITOR_ARGS_DIR
 		else if (tmid != 0.0) f = YLIN (2 / (tmid + tright));   // median of 2
 		else if (tright != 0.0) f = YLIN (1 / tright);   // median of 1
 	}
-	RealTier_addPoint (ana -> pitch.get(), 0.5 * (my d_startSelection + my d_endSelection), YLININV (f));
+	RealTier_addPoint (ana -> pitch, 0.5 * (my d_startSelection + my d_endSelection), YLININV (f));
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }	
 
-static void menu_cb_addPitchPointAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_addPitchPointAt (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Add pitch point", 0)
 		REAL (U"Time (s)", U"0.0")
 		REAL (U"Frequency (Hz or st)", U"100.0")
@@ -266,13 +291,14 @@ static void menu_cb_addPitchPointAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> pitch) return;
 		Editor_save (me, U"Add pitch point");
-		RealTier_addPoint (ana -> pitch.get(), GET_REAL (U"Time"), YLININV (GET_REAL (U"Frequency")));
+		RealTier_addPoint (ana -> pitch, GET_REAL (U"Time"), YLININV (GET_REAL (U"Frequency")));
 		FunctionEditor_redraw (me);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_stylizePitch (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_stylizePitch (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Stylize pitch", U"PitchTier: Stylize...")
 		REAL (U"Frequency resolution", my default_pitch_stylize_frequencyResolution ())
 		RADIO (U"Units", my default_pitch_stylize_useSemitones () + 1)
@@ -285,7 +311,7 @@ static void menu_cb_stylizePitch (ManipulationEditor me, EDITOR_ARGS_FORM) {
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> pitch) return;
 		Editor_save (me, U"Stylize pitch");
-		PitchTier_stylize (ana -> pitch.get(),
+		PitchTier_stylize (ana -> pitch,
 			my pref_pitch_stylize_frequencyResolution () = my p_pitch_stylize_frequencyResolution = GET_REAL (U"Frequency resolution"),
 			my pref_pitch_stylize_useSemitones        () = my p_pitch_stylize_useSemitones        = GET_INTEGER (U"Units") - 1);
 		FunctionEditor_redraw (me);
@@ -293,16 +319,18 @@ static void menu_cb_stylizePitch (ManipulationEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_stylizePitch_2st (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_stylizePitch_2st (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pitch) return;
 	Editor_save (me, U"Stylize pitch");
-	PitchTier_stylize (ana -> pitch.get(), 2.0, true);
+	PitchTier_stylize (ana -> pitch, 2.0, TRUE);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_interpolateQuadratically (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_interpolateQuadratically (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Interpolate quadratically", 0)
 		NATURAL (U"Number of points per parabola", my default_pitch_interpolateQuadratically_numberOfPointsPerParabola ())
 	EDITOR_OK
@@ -311,7 +339,7 @@ static void menu_cb_interpolateQuadratically (ManipulationEditor me, EDITOR_ARGS
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> pitch) return;
 		Editor_save (me, U"Interpolate quadratically");
-		RealTier_interpolateQuadratically (ana -> pitch.get(),
+		RealTier_interpolateQuadratically (ana -> pitch,
 			my pref_pitch_interpolateQuadratically_numberOfPointsPerParabola () = my p_pitch_interpolateQuadratically_numberOfPointsPerParabola = GET_INTEGER (U"Number of points per parabola"),
 			my p_pitch_units == kManipulationEditor_pitchUnits_SEMITONES);
 		FunctionEditor_redraw (me);
@@ -319,16 +347,18 @@ static void menu_cb_interpolateQuadratically (ManipulationEditor me, EDITOR_ARGS
 	EDITOR_END
 }
 
-static void menu_cb_interpolateQuadratically_4pts (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_interpolateQuadratically_4pts (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> pitch) return;
 	Editor_save (me, U"Interpolate quadratically");
-	RealTier_interpolateQuadratically (ana -> pitch.get(), 4, my p_pitch_units == kManipulationEditor_pitchUnits_SEMITONES);
+	RealTier_interpolateQuadratically (ana -> pitch, 4, my p_pitch_units == kManipulationEditor_pitchUnits_SEMITONES);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_shiftPitchFrequencies (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_shiftPitchFrequencies (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Shift pitch frequencies", 0)
 		REAL (U"Frequency shift", U"-20.0")
 		OPTIONMENU (U"Unit", 1)
@@ -350,7 +380,7 @@ static void menu_cb_shiftPitchFrequencies (ManipulationEditor me, EDITOR_ARGS_FO
 		if (! ana -> pitch) return;
 		Editor_save (me, U"Shift pitch frequencies");
 		try {
-			PitchTier_shiftFrequencies (ana -> pitch.get(), my d_startSelection, my d_endSelection, GET_REAL (U"Frequency shift"), unit);
+			PitchTier_shiftFrequencies (ana -> pitch, my d_startSelection, my d_endSelection, GET_REAL (U"Frequency shift"), unit);
 			FunctionEditor_redraw (me);
 			Editor_broadcastDataChanged (me);
 		} catch (MelderError) {
@@ -362,7 +392,8 @@ static void menu_cb_shiftPitchFrequencies (ManipulationEditor me, EDITOR_ARGS_FO
 	EDITOR_END
 }
 
-static void menu_cb_multiplyPitchFrequencies (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_multiplyPitchFrequencies (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Multiply pitch frequencies", 0)
 		POSITIVE (U"Factor", U"1.2")
 		LABEL (U"", U"The multiplication is always done in hertz.")
@@ -371,13 +402,14 @@ static void menu_cb_multiplyPitchFrequencies (ManipulationEditor me, EDITOR_ARGS
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> pitch) return;
 		Editor_save (me, U"Multiply pitch frequencies");
-		PitchTier_multiplyFrequencies (ana -> pitch.get(), my d_startSelection, my d_endSelection, GET_REAL (U"Factor"));
+		PitchTier_multiplyFrequencies (ana -> pitch, my d_startSelection, my d_endSelection, GET_REAL (U"Factor"));
 		FunctionEditor_redraw (me);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_setPitchRange (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_setPitchRange (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Set pitch range", 0)
 		/* BUG: should include Minimum */
 		REAL (U"Maximum (Hz or st)", my default_pitch_maximum ())
@@ -392,7 +424,8 @@ static void menu_cb_setPitchRange (ManipulationEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_setPitchUnits (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_setPitchUnits (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Set pitch units", 0)
 		RADIO_ENUM (U"Pitch units", kManipulationEditor_pitchUnits, my default_pitch_units ())
 	EDITOR_OK
@@ -418,7 +451,8 @@ static void menu_cb_setPitchUnits (ManipulationEditor me, EDITOR_ARGS_FORM) {
 
 /***** DURATION MENU *****/
 
-static void menu_cb_setDurationRange (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_setDurationRange (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Set duration range", 0)
 		REAL (U"Minimum", my default_duration_minimum ())
 		REAL (U"Maximum", my default_duration_maximum ())
@@ -428,8 +462,8 @@ static void menu_cb_setDurationRange (ManipulationEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_DO
 		Manipulation ana = (Manipulation) my data;
 		double minimum = GET_REAL (U"Minimum"), maximum = GET_REAL (U"Maximum");
-		double minimumValue = ana -> duration ? RealTier_getMinimumValue (ana -> duration.get()) : NUMundefined;
-		double maximumValue = ana -> duration ? RealTier_getMaximumValue (ana -> duration.get()) : NUMundefined;
+		double minimumValue = ana -> duration ? RealTier_getMinimumValue (ana -> duration) : NUMundefined;
+		double maximumValue = ana -> duration ? RealTier_getMaximumValue (ana -> duration) : NUMundefined;
 		if (minimum > 1) Melder_throw (U"Minimum relative duration must not be greater than 1.");
 		if (maximum < 1) Melder_throw (U"Maximum relative duration must not be less than 1.");
 		if (minimum >= maximum) Melder_throw (U"Maximum relative duration must be greater than minimum.");
@@ -445,7 +479,8 @@ static void menu_cb_setDurationRange (ManipulationEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_setDraggingStrategy (ManipulationEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_setDraggingStrategy (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	EDITOR_FORM (U"Set dragging strategy", U"ManipulationEditor")
 		RADIO_ENUM (U"Dragging strategy", kManipulationEditor_draggingStrategy, my default_pitch_draggingStrategy ())
 	EDITOR_OK
@@ -455,29 +490,32 @@ static void menu_cb_setDraggingStrategy (ManipulationEditor me, EDITOR_ARGS_FORM
 	EDITOR_END
 }
 
-static void menu_cb_removeDurationPoints (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removeDurationPoints (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> duration) return;
 	Editor_save (me, U"Remove duration point(s)");
 	if (my d_startSelection == my d_endSelection)
-		AnyTier_removePointNear (ana -> duration.get()->asAnyTier(), 0.5 * (my d_startSelection + my d_endSelection));
+		AnyTier_removePointNear (ana -> duration, 0.5 * (my d_startSelection + my d_endSelection));
 	else
-		AnyTier_removePointsBetween (ana -> duration.get()->asAnyTier(), my d_startSelection, my d_endSelection);
+		AnyTier_removePointsBetween (ana -> duration, my d_startSelection, my d_endSelection);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addDurationPointAtCursor (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addDurationPointAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	if (! ana -> duration) return;
 	Editor_save (me, U"Add duration point");
-	RealTier_addPoint (ana -> duration.get(), 0.5 * (my d_startSelection + my d_endSelection), my duration.cursor);
+	RealTier_addPoint (ana -> duration, 0.5 * (my d_startSelection + my d_endSelection), my duration.cursor);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addDurationPointAt (ManipulationEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add duration point", nullptr)
+static void menu_cb_addDurationPointAt (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
+	EDITOR_FORM (U"Add duration point", 0)
 		REAL (U"Time (s)", U"0.0");
 		REAL (U"Relative duration", U"1.0");
 	EDITOR_OK
@@ -486,32 +524,36 @@ static void menu_cb_addDurationPointAt (ManipulationEditor me, EDITOR_ARGS_FORM)
 		Manipulation ana = (Manipulation) my data;
 		if (! ana -> duration) return;
 		Editor_save (me, U"Add duration point");
-		RealTier_addPoint (ana -> duration.get(), GET_REAL (U"Time"), GET_REAL (U"Relative duration"));
+		RealTier_addPoint (ana -> duration, GET_REAL (U"Time"), GET_REAL (U"Relative duration"));
 		FunctionEditor_redraw (me);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_newDuration (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_newDuration (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
 	Editor_save (me, U"New duration");
+	forget (ana -> duration);
 	ana -> duration = DurationTier_create (ana -> xmin, ana -> xmax);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_forgetDuration (ManipulationEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_forgetDuration (EDITOR_ARGS) {
+	EDITOR_IAM (ManipulationEditor);
 	Manipulation ana = (Manipulation) my data;
-	ana -> duration = autoDurationTier();
+	forget (ana -> duration);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 	
-static void menu_cb_ManipulationEditorHelp (ManipulationEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"ManipulationEditor"); }
-static void menu_cb_ManipulationHelp (ManipulationEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Manipulation"); }
+static void menu_cb_ManipulationEditorHelp (EDITOR_ARGS) { EDITOR_IAM (ManipulationEditor); Melder_help (U"ManipulationEditor"); }
+static void menu_cb_ManipulationHelp (EDITOR_ARGS) { EDITOR_IAM (ManipulationEditor); Melder_help (U"Manipulation"); }
 
 #define menu_cb_Synth_common(menu_cb,meth) \
-static void menu_cb (ManipulationEditor me, EDITOR_ARGS_DIRECT) { \
+static void menu_cb (EDITOR_ARGS) { \
+	EDITOR_IAM (ManipulationEditor); \
 	prefs_synthesisMethod = my synthesisMethod = meth; \
 	updateMenus (me); \
 }
@@ -534,25 +576,25 @@ void structManipulationEditor :: v_createMenus () {
 	Editor_addCommand (this, U"File", U"Extract pitch tier", 0, menu_cb_extractPitchTier);
 	Editor_addCommand (this, U"File", U"Extract duration tier", 0, menu_cb_extractDurationTier);
 	Editor_addCommand (this, U"File", U"Publish resynthesis", 0, menu_cb_extractManipulatedSound);
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
 
 	Editor_addMenu (this, U"Pulse", 0);
 	Editor_addCommand (this, U"Pulse", U"Add pulse at cursor", 'P', menu_cb_addPulseAtCursor);
 	Editor_addCommand (this, U"Pulse", U"Add pulse at...", 0, menu_cb_addPulseAt);
-	Editor_addCommand (this, U"Pulse", U"-- remove pulses --", 0, nullptr);
+	Editor_addCommand (this, U"Pulse", U"-- remove pulses --", 0, NULL);
 	Editor_addCommand (this, U"Pulse", U"Remove pulse(s)", GuiMenu_OPTION + 'P', menu_cb_removePulses);
 
 	Editor_addMenu (this, U"Pitch", 0);
 	Editor_addCommand (this, U"Pitch", U"Add pitch point at cursor", 'T', menu_cb_addPitchPointAtCursor);
 	Editor_addCommand (this, U"Pitch", U"Add pitch point at time slice", 0, menu_cb_addPitchPointAtSlice);
 	Editor_addCommand (this, U"Pitch", U"Add pitch point at...", 0, menu_cb_addPitchPointAt);
-	Editor_addCommand (this, U"Pitch", U"-- remove pitch --", 0, nullptr);
+	Editor_addCommand (this, U"Pitch", U"-- remove pitch --", 0, NULL);
 	Editor_addCommand (this, U"Pitch", U"Remove pitch point(s)", GuiMenu_OPTION + 'T', menu_cb_removePitchPoints);
-	Editor_addCommand (this, U"Pitch", U"-- pitch prefs --", 0, nullptr);
+	Editor_addCommand (this, U"Pitch", U"-- pitch prefs --", 0, NULL);
 	Editor_addCommand (this, U"Pitch", U"Set pitch range...", 0, menu_cb_setPitchRange);
 	Editor_addCommand (this, U"Pitch", U"Set pitch units...", 0, menu_cb_setPitchUnits);
 	Editor_addCommand (this, U"Pitch", U"Set pitch dragging strategy...", 0, menu_cb_setDraggingStrategy);
-	Editor_addCommand (this, U"Pitch", U"-- modify pitch --", 0, nullptr);
+	Editor_addCommand (this, U"Pitch", U"-- modify pitch --", 0, NULL);
 	Editor_addCommand (this, U"Pitch", U"Shift pitch frequencies...", 0, menu_cb_shiftPitchFrequencies);
 	Editor_addCommand (this, U"Pitch", U"Multiply pitch frequencies...", 0, menu_cb_multiplyPitchFrequencies);
 	Editor_addCommand (this, U"Pitch", U"All:", GuiMenu_INSENSITIVE, menu_cb_stylizePitch);
@@ -564,11 +606,11 @@ void structManipulationEditor :: v_createMenus () {
 	Editor_addMenu (this, U"Dur", 0);
 	Editor_addCommand (this, U"Dur", U"Add duration point at cursor", 'D', menu_cb_addDurationPointAtCursor);
 	Editor_addCommand (this, U"Dur", U"Add duration point at...", 0, menu_cb_addDurationPointAt);
-	Editor_addCommand (this, U"Dur", U"-- remove duration --", 0, nullptr);
+	Editor_addCommand (this, U"Dur", U"-- remove duration --", 0, NULL);
 	Editor_addCommand (this, U"Dur", U"Remove duration point(s)", GuiMenu_OPTION + 'D', menu_cb_removeDurationPoints);
-	Editor_addCommand (this, U"Dur", U"-- duration prefs --", 0, nullptr);
+	Editor_addCommand (this, U"Dur", U"-- duration prefs --", 0, NULL);
 	Editor_addCommand (this, U"Dur", U"Set duration range...", 0, menu_cb_setDurationRange);
-	Editor_addCommand (this, U"Dur", U"-- refresh duration --", 0, nullptr);
+	Editor_addCommand (this, U"Dur", U"-- refresh duration --", 0, NULL);
 	Editor_addCommand (this, U"Dur", U"New duration", 0, menu_cb_newDuration);
 	Editor_addCommand (this, U"Dur", U"Forget duration", 0, menu_cb_forgetDuration);
 
@@ -577,12 +619,12 @@ void structManipulationEditor :: v_createMenus () {
 	our synthPulsesHumButton = Editor_addCommand (this, U"Synth", U"Pulses (hum) --", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pulses_hum);
 
 	our synthPulsesLpcButton = Editor_addCommand (this, U"Synth", U"Pulses & LPC -- (\"LPC resynthesis\")", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pulses_Lpc);
-	Editor_addCommand (this, U"Synth", U"-- pitch resynth --", 0, nullptr);
+	Editor_addCommand (this, U"Synth", U"-- pitch resynth --", 0, NULL);
 	our synthPitchButton = Editor_addCommand (this, U"Synth", U" -- Pitch", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pitch);
 	our synthPitchHumButton = Editor_addCommand (this, U"Synth", U" -- Pitch (hum)", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pitch_hum);
 	our synthPulsesPitchButton = Editor_addCommand (this, U"Synth", U"Pulses -- Pitch", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pulses_Pitch);
 	our synthPulsesPitchHumButton = Editor_addCommand (this, U"Synth", U"Pulses -- Pitch (hum)", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pulses_Pitch_hum);
-	Editor_addCommand (this, U"Synth", U"-- full resynth --", 0, nullptr);
+	Editor_addCommand (this, U"Synth", U"-- full resynth --", 0, NULL);
 	our synthOverlapAddButton = Editor_addCommand (this, U"Synth", U"Sound & Pulses -- Pitch & Duration  (\"Overlap-add manipulation\")", GuiMenu_RADIO_NEXT | GuiMenu_TOGGLE_ON, menu_cb_Synth_OverlapAdd);
 	our synthPitchLpcButton = Editor_addCommand (this, U"Synth", U"LPC -- Pitch  (\"LPC pitch manipulation\")", GuiMenu_RADIO_NEXT, menu_cb_Synth_Pitch_Lpc);
 }
@@ -597,32 +639,32 @@ void structManipulationEditor :: v_createHelpMenuItems (EditorMenu menu) {
 
 static void drawSoundArea (ManipulationEditor me, double ymin, double ymax) {
 	Manipulation ana = (Manipulation) my data;
-	Sound sound = ana -> sound.get();
-	PointProcess pulses = ana -> pulses.get();
+	Sound sound = ana -> sound;
+	PointProcess pulses = ana -> pulses;
 	long first, last, i;
-	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics.get(), 0.0, 1.0, ymin, ymax);
-	Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_TIMES);
-	Graphics_text (my d_graphics.get(), 1.0, 1.0, U"%%Sound");
-	Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-	Graphics_text (my d_graphics.get(), 1.0, 1.0 - Graphics_dyMMtoWC (my d_graphics.get(), 3), U"%%Pulses");
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_HELVETICA);
+	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics, 0, 1, ymin, ymax);
+	Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_rectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+	Graphics_setFont (my d_graphics, kGraphics_font_TIMES);
+	Graphics_text (my d_graphics, 1, 1, U"%%Sound");
+	Graphics_setColour (my d_graphics, Graphics_BLUE);
+	Graphics_text (my d_graphics, 1, 1 - Graphics_dyMMtoWC (my d_graphics, 3), U"%%Pulses");
+	Graphics_setFont (my d_graphics, kGraphics_font_HELVETICA);
 
 	/*
 	 * Draw blue pulses.
 	 */
 	if (pulses) {
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, 0.0, 1.0);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, 0.0, 1.0);
+		Graphics_setColour (my d_graphics, Graphics_BLUE);
 		for (i = 1; i <= pulses -> nt; i ++) {
 			double t = pulses -> t [i];
 			if (t >= my d_startWindow && t <= my d_endWindow)
-				Graphics_line (my d_graphics.get(), t, 0.05, t, 0.95);
+				Graphics_line (my d_graphics, t, 0.05, t, 0.95);
 		}
 	}
 
@@ -639,7 +681,7 @@ static void drawSoundArea (ManipulationEditor me, double ymin, double ymax) {
 		 */
 		scaleMin = 0.83 * minimum + 0.17 * my soundmin;
 		scaleMax = 0.83 * maximum + 0.17 * my soundmax;
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, scaleMin, scaleMax);
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, scaleMin, scaleMax);
 		FunctionEditor_drawRangeMark (me, scaleMin, Melder_float (Melder_half (scaleMin)), U"", Graphics_BOTTOM);
 		FunctionEditor_drawRangeMark (me, scaleMax, Melder_float (Melder_half (scaleMax)), U"", Graphics_TOP);
 
@@ -647,28 +689,28 @@ static void drawSoundArea (ManipulationEditor me, double ymin, double ymax) {
 		 * Draw dotted zero line.
 		 */
 		if (minimum < 0.0 && maximum > 0.0) {
-			Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-			Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
-			Graphics_line (my d_graphics.get(), my d_startWindow, 0.0, my d_endWindow, 0.0);
-			Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
+			Graphics_setColour (my d_graphics, Graphics_CYAN);
+			Graphics_setLineType (my d_graphics, Graphics_DOTTED);
+			Graphics_line (my d_graphics, my d_startWindow, 0.0, my d_endWindow, 0.0);
+			Graphics_setLineType (my d_graphics, Graphics_DRAWN);
 		} 
 
 		/*
 		 * Draw samples.
 		 */    
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-		Graphics_function (my d_graphics.get(), sound -> z [1], first, last,
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
+		Graphics_function (my d_graphics, sound -> z [1], first, last,
 			Sampled_indexToX (sound, first), Sampled_indexToX (sound, last));
 	}
 
-	Graphics_resetViewport (my d_graphics.get(), viewport);
+	Graphics_resetViewport (my d_graphics, viewport);
 }
 
 static void drawPitchArea (ManipulationEditor me, double ymin, double ymax) {
 	Manipulation ana = (Manipulation) my data;
-	PointProcess pulses = ana -> pulses.get();
-	PitchTier pitch = ana -> pitch.get();
-	long ifirstSelected, ilastSelected, n = pitch ? pitch -> points.size : 0, imin, imax, i;
+	PointProcess pulses = ana -> pulses;
+	PitchTier pitch = ana -> pitch;
+	long ifirstSelected, ilastSelected, n = pitch ? pitch -> points -> size : 0, imin, imax, i;
 	int cursorVisible = my d_startSelection == my d_endSelection && my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow;
 	double minimumFrequency = YLIN (50);
 	int rangePrecisions [] = { 0, 1, 2 };
@@ -677,38 +719,38 @@ static void drawPitchArea (ManipulationEditor me, double ymin, double ymax) {
 	/*
 	 * Pitch contours.
 	 */
-	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics.get(), 0, 1, ymin, ymax);
-	Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_TIMES);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-	Graphics_text (my d_graphics.get(), 1.0, 1.0, U"%%Pitch manip");
-	Graphics_setGrey (my d_graphics.get(), 0.7);
-	Graphics_text (my d_graphics.get(), 1.0, 1.0 - Graphics_dyMMtoWC (my d_graphics.get(), 3), U"%%Pitch from pulses");
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_HELVETICA);
-
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_pitch_minimum, my p_pitch_maximum);
+	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics, 0, 1, ymin, ymax);
+	Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_rectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_GREEN);
+	Graphics_setFont (my d_graphics, kGraphics_font_TIMES);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+	Graphics_text (my d_graphics, 1, 1, U"%%Pitch manip");
+	Graphics_setGrey (my d_graphics, 0.7);
+	Graphics_text (my d_graphics, 1, 1 - Graphics_dyMMtoWC (my d_graphics, 3), U"%%Pitch from pulses");
+	Graphics_setFont (my d_graphics, kGraphics_font_HELVETICA);
+
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_pitch_minimum, my p_pitch_maximum);
 
 	/*
 	 * Draw pitch contour based on pulses.
 	 */
-	Graphics_setGrey (my d_graphics.get(), 0.7);
+	Graphics_setGrey (my d_graphics, 0.7);
 	if (pulses) for (i = 1; i < pulses -> nt; i ++) {
 		double tleft = pulses -> t [i], tright = pulses -> t [i + 1], t = 0.5 * (tleft + tright);
 		if (t >= my d_startWindow && t <= my d_endWindow) {
 			if (tleft != tright) {
 				double f = YLIN (1 / (tright - tleft));
 				if (f >= my pitchTier.minPeriodic && f <= my p_pitch_maximum) {
-					Graphics_fillCircle_mm (my d_graphics.get(), t, f, 1);
+					Graphics_fillCircle_mm (my d_graphics, t, f, 1);
 				}
 			}
 		}
 	}
-	Graphics_setGrey (my d_graphics.get(), 0.0);
+	Graphics_setGrey (my d_graphics, 0.0);
 
 	FunctionEditor_drawGridLine (me, minimumFrequency);
 	FunctionEditor_drawRangeMark (me, my p_pitch_maximum,
@@ -725,77 +767,77 @@ static void drawPitchArea (ManipulationEditor me, double ymin, double ymax) {
 			my p_pitch_minimum, my p_pitch_maximum);
 	}
 	if (pitch) {
-		ifirstSelected = AnyTier_timeToHighIndex (pitch->asAnyTier(), my d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (pitch->asAnyTier(), my d_endSelection);
-		imin = AnyTier_timeToHighIndex (pitch->asAnyTier(), my d_startWindow);
-		imax = AnyTier_timeToLowIndex (pitch->asAnyTier(), my d_endWindow);
+		ifirstSelected = AnyTier_timeToHighIndex (pitch, my d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (pitch, my d_endSelection);
+		imin = AnyTier_timeToHighIndex (pitch, my d_startWindow);
+		imax = AnyTier_timeToLowIndex (pitch, my d_endWindow);
 	}
-	Graphics_setLineWidth (my d_graphics.get(), 2.0);
+	Graphics_setLineWidth (my d_graphics, 2);
 	if (n == 0) {
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-		Graphics_text (my d_graphics.get(), 0.5 * (my d_startWindow + my d_endWindow), 0.5 * (my p_pitch_minimum + my p_pitch_maximum), U"(no pitch points)");
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
+		Graphics_text (my d_graphics, 0.5 * (my d_startWindow + my d_endWindow), 0.5 * (my p_pitch_minimum + my p_pitch_maximum), U"(no pitch points)");
 	} else if (imax < imin) {
 		double fleft = YLIN (RealTier_getValueAtTime (pitch, my d_startWindow));
 		double fright = YLIN (RealTier_getValueAtTime (pitch, my d_endWindow));
-		Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-		Graphics_line (my d_graphics.get(), my d_startWindow, fleft, my d_endWindow, fright);
+		Graphics_setColour (my d_graphics, Graphics_GREEN);
+		Graphics_line (my d_graphics, my d_startWindow, fleft, my d_endWindow, fright);
 	} else {
 		for (i = imin; i <= imax; i ++) {
-			RealPoint point = pitch -> points.at [i];
+			RealPoint point = (RealPoint) pitch -> points -> item [i];
 			double t = point -> number, f = YLIN (point -> value);
-			Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
+			Graphics_setColour (my d_graphics, Graphics_GREEN);
 			if (i == 1)
-				Graphics_line (my d_graphics.get(), my d_startWindow, f, t, f);
+				Graphics_line (my d_graphics, my d_startWindow, f, t, f);
 			else if (i == imin)
-				Graphics_line (my d_graphics.get(), t, f, my d_startWindow, YLIN (RealTier_getValueAtTime (pitch, my d_startWindow)));
+				Graphics_line (my d_graphics, t, f, my d_startWindow, YLIN (RealTier_getValueAtTime (pitch, my d_startWindow)));
 			if (i == n)
-				Graphics_line (my d_graphics.get(), t, f, my d_endWindow, f);
+				Graphics_line (my d_graphics, t, f, my d_endWindow, f);
 			else if (i == imax)
-				Graphics_line (my d_graphics.get(), t, f, my d_endWindow, YLIN (RealTier_getValueAtTime (pitch, my d_endWindow)));
+				Graphics_line (my d_graphics, t, f, my d_endWindow, YLIN (RealTier_getValueAtTime (pitch, my d_endWindow)));
 			else {
-				RealPoint pointRight = pitch -> points.at [i + 1];
-				Graphics_line (my d_graphics.get(), t, f, pointRight -> number, YLIN (pointRight -> value));
+				RealPoint pointRight = (RealPoint) pitch -> points -> item [i + 1];
+				Graphics_line (my d_graphics, t, f, pointRight -> number, YLIN (pointRight -> value));
 			}
 		}
 		for (i = imin; i <= imax; i ++) {
-			RealPoint point = pitch -> points.at [i];
+			RealPoint point = (RealPoint) pitch -> points -> item [i];
 			double t = point -> number, f = YLIN (point -> value);
 			if (i >= ifirstSelected && i <= ilastSelected)
-				Graphics_setColour (my d_graphics.get(), Graphics_RED);
+				Graphics_setColour (my d_graphics, Graphics_RED);	
 			else
-				Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-			Graphics_fillCircle_mm (my d_graphics.get(), t, f, 3.0);
+				Graphics_setColour (my d_graphics, Graphics_GREEN);
+			Graphics_fillCircle_mm (my d_graphics, t, f, 3);
 		}
 	}
-	Graphics_setLineWidth (my d_graphics.get(), 1.0);
+	Graphics_setLineWidth (my d_graphics, 1);
 
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_resetViewport (my d_graphics.get(), viewport);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_resetViewport (my d_graphics, viewport);
 }
 
 static void drawDurationArea (ManipulationEditor me, double ymin, double ymax) {
 	Manipulation ana = (Manipulation) my data;
-	DurationTier duration = ana -> duration.get();
-	long ifirstSelected, ilastSelected, n = duration ? duration -> points.size : 0, imin, imax, i;
+	DurationTier duration = ana -> duration;
+	long ifirstSelected, ilastSelected, n = duration ? duration -> points -> size : 0, imin, imax, i;
 	int cursorVisible = my d_startSelection == my d_endSelection && my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow;
 
 	/*
 	 * Duration contours.
 	 */
-	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics.get(), 0.0, 1.0, ymin, ymax);
-	Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_TIMES);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-	Graphics_text (my d_graphics.get(), 1.0, 1.0, U"%%Duration manip");
-	Graphics_setFont (my d_graphics.get(), kGraphics_font_HELVETICA);
-
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_duration_minimum, my p_duration_maximum);
+	Graphics_Viewport viewport = Graphics_insetViewport (my d_graphics, 0, 1, ymin, ymax);
+	Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_rectangle (my d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (my d_graphics, Graphics_GREEN);
+	Graphics_setFont (my d_graphics, kGraphics_font_TIMES);
+	Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+	Graphics_text (my d_graphics, 1, 1, U"%%Duration manip");
+	Graphics_setFont (my d_graphics, kGraphics_font_HELVETICA);
+
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_duration_minimum, my p_duration_maximum);
 	FunctionEditor_drawGridLine (me, 1.0);
 	FunctionEditor_drawRangeMark (me, my p_duration_maximum, Melder_fixed (my p_duration_maximum, 3), U"", Graphics_TOP);
 	FunctionEditor_drawRangeMark (me, my p_duration_minimum, Melder_fixed (my p_duration_minimum, 3), U"", Graphics_BOTTOM);
@@ -810,54 +852,54 @@ static void drawDurationArea (ManipulationEditor me, double ymin, double ymax) {
 	 * Draw duration tier.
 	 */
 	if (duration) {
-		ifirstSelected = AnyTier_timeToHighIndex (duration->asAnyTier(), my d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (duration->asAnyTier(), my d_endSelection);
-		imin = AnyTier_timeToHighIndex (duration->asAnyTier(), my d_startWindow);
-		imax = AnyTier_timeToLowIndex (duration->asAnyTier(), my d_endWindow);
+		ifirstSelected = AnyTier_timeToHighIndex (duration, my d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (duration, my d_endSelection);
+		imin = AnyTier_timeToHighIndex (duration, my d_startWindow);
+		imax = AnyTier_timeToLowIndex (duration, my d_endWindow);
 	}
-	Graphics_setLineWidth (my d_graphics.get(), 2.0);
+	Graphics_setLineWidth (my d_graphics, 2);
 	if (n == 0) {
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), 0.5 * (my d_startWindow + my d_endWindow),
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (my d_graphics, 0.5 * (my d_startWindow + my d_endWindow),
 			0.5 * (my p_duration_minimum + my p_duration_maximum), U"(no duration points)");
 	} else if (imax < imin) {
 		double fleft = RealTier_getValueAtTime (duration, my d_startWindow);
 		double fright = RealTier_getValueAtTime (duration, my d_endWindow);
-		Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-		Graphics_line (my d_graphics.get(), my d_startWindow, fleft, my d_endWindow, fright);
+		Graphics_setColour (my d_graphics, Graphics_GREEN);
+		Graphics_line (my d_graphics, my d_startWindow, fleft, my d_endWindow, fright);
 	} else {
 		for (i = imin; i <= imax; i ++) {
-			RealPoint point = duration -> points.at [i];
+			RealPoint point = (RealPoint) duration -> points -> item [i];
 			double t = point -> number, dur = point -> value;
-			Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
+			Graphics_setColour (my d_graphics, Graphics_GREEN);
 			if (i == 1)
-				Graphics_line (my d_graphics.get(), my d_startWindow, dur, t, dur);
+				Graphics_line (my d_graphics, my d_startWindow, dur, t, dur);
 			else if (i == imin)
-				Graphics_line (my d_graphics.get(), t, dur, my d_startWindow, RealTier_getValueAtTime (duration, my d_startWindow));
+				Graphics_line (my d_graphics, t, dur, my d_startWindow, RealTier_getValueAtTime (duration, my d_startWindow));
 			if (i == n)
-				Graphics_line (my d_graphics.get(), t, dur, my d_endWindow, dur);
+				Graphics_line (my d_graphics, t, dur, my d_endWindow, dur);
 			else if (i == imax)
-				Graphics_line (my d_graphics.get(), t, dur, my d_endWindow, RealTier_getValueAtTime (duration, my d_endWindow));
+				Graphics_line (my d_graphics, t, dur, my d_endWindow, RealTier_getValueAtTime (duration, my d_endWindow));
 			else {
-				RealPoint pointRight = duration -> points.at [i + 1];
-				Graphics_line (my d_graphics.get(), t, dur, pointRight -> number, pointRight -> value);
+				RealPoint pointRight = (RealPoint) duration -> points -> item [i + 1];
+				Graphics_line (my d_graphics, t, dur, pointRight -> number, pointRight -> value);
 			}
 		}
 		for (i = imin; i <= imax; i ++) {
-			RealPoint point = duration -> points.at [i];
+			RealPoint point = (RealPoint) duration -> points -> item [i];
 			double t = point -> number, dur = point -> value;
 			if (i >= ifirstSelected && i <= ilastSelected)
-				Graphics_setColour (my d_graphics.get(), Graphics_RED);
+				Graphics_setColour (my d_graphics, Graphics_RED);	
 			else
-				Graphics_setColour (my d_graphics.get(), Graphics_GREEN);
-			Graphics_fillCircle_mm (my d_graphics.get(), t, dur, 3.0);
+				Graphics_setColour (my d_graphics, Graphics_GREEN);	
+			Graphics_fillCircle_mm (my d_graphics, t, dur, 3);
 		}
 	}
 
-	Graphics_setLineWidth (my d_graphics.get(), 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_resetViewport (my d_graphics.get(), viewport);
+	Graphics_setLineWidth (my d_graphics, 1);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_resetViewport (my d_graphics, viewport);
 }
 
 void structManipulationEditor :: v_draw () {
@@ -871,25 +913,25 @@ void structManipulationEditor :: v_draw () {
 	if (hasPitchArea) drawPitchArea (this, ypitchmin, ypitchmax);
 	if (hasDurationArea) drawDurationArea (this, ydurationmin, ydurationmax);
 
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setGrey (our d_graphics.get(), 0.85);
-	Graphics_fillRectangle (our d_graphics.get(), -0.001, 1.001, ypitchmax, ysoundmin);
-	Graphics_setGrey (our d_graphics.get(), 0.00);
-	Graphics_line (our d_graphics.get(), 0.0, ysoundmin, 1.0, ysoundmin);
-	Graphics_line (our d_graphics.get(), 0.0, ypitchmax, 1.0, ypitchmax);
+	Graphics_setWindow (our d_graphics, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setGrey (our d_graphics, 0.85);
+	Graphics_fillRectangle (our d_graphics, -0.001, 1.001, ypitchmax, ysoundmin);
+	Graphics_setGrey (our d_graphics, 0.00);
+	Graphics_line (our d_graphics, 0, ysoundmin, 1, ysoundmin);
+	Graphics_line (our d_graphics, 0, ypitchmax, 1, ypitchmax);
 	if (hasDurationArea) {
-		Graphics_setGrey (our d_graphics.get(), 0.85);
-		Graphics_fillRectangle (our d_graphics.get(), -0.001, 1.001, ydurationmax, ypitchmin);
-		Graphics_setGrey (our d_graphics.get(), 0.00);
-		Graphics_line (our d_graphics.get(), 0, ypitchmin, 1, ypitchmin);
-		Graphics_line (our d_graphics.get(), 0, ydurationmax, 1, ydurationmax);
+		Graphics_setGrey (our d_graphics, 0.85);
+		Graphics_fillRectangle (our d_graphics, -0.001, 1.001, ydurationmax, ypitchmin);
+		Graphics_setGrey (our d_graphics, 0.00);
+		Graphics_line (our d_graphics, 0, ypitchmin, 1, ypitchmin);
+		Graphics_line (our d_graphics, 0, ydurationmax, 1, ydurationmax);
 	}
 	updateMenus (this);
 }
 
 static void drawWhileDragging (ManipulationEditor me, double xWC, double yWC, long first, long last, double dt, double df) {
 	Manipulation ana = (Manipulation) my data;
-	PitchTier pitch = ana -> pitch.get();
+	PitchTier pitch = ana -> pitch;
 	(void) xWC;
 	(void) yWC;
 
@@ -897,31 +939,31 @@ static void drawWhileDragging (ManipulationEditor me, double xWC, double yWC, lo
 	 * Draw all selected pitch points as magenta empty circles, if inside the window.
 	 */
 	for (long i = first; i <= last; i ++) {
-		RealPoint point = pitch -> points.at [i];
+		RealPoint point = pitch -> point (i);
 		double t = point -> number + dt, f = YLIN (point -> value) + df;
 		if (t >= my d_startWindow && t <= my d_endWindow)
-			Graphics_circle_mm (my d_graphics.get(), t,
-				f < my pitchTier.minPeriodic ? my pitchTier.minPeriodic : f > my p_pitch_maximum ? my p_pitch_maximum : f, 3.0);
+			Graphics_circle_mm (my d_graphics, t,
+				f < my pitchTier.minPeriodic ? my pitchTier.minPeriodic : f > my p_pitch_maximum ? my p_pitch_maximum : f, 3);
 	}
 
 	if (last == first) {
 		/*
 		 * Draw a crosshair with time and frequency.
 		 */
-		RealPoint point = pitch -> points.at [first];
+		RealPoint point = pitch -> point (first);
 		double t = point -> number + dt, fWC = YLIN (point -> value) + df;
-		Graphics_line (my d_graphics.get(), t, my p_pitch_minimum, t, my p_pitch_maximum - Graphics_dyMMtoWC (my d_graphics.get(), 4.0));
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_TOP);
-		Graphics_text (my d_graphics.get(), t, my p_pitch_maximum, Melder_fixed (t, 6));
-		Graphics_line (my d_graphics.get(), my d_startWindow, fWC, my d_endWindow, fWC);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-		Graphics_text (my d_graphics.get(), my d_startWindow, fWC, Melder_fixed (fWC, 5));
+		Graphics_line (my d_graphics, t, my p_pitch_minimum, t, my p_pitch_maximum - Graphics_dyMMtoWC (my d_graphics, 4.0));
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_TOP);
+		Graphics_text (my d_graphics, t, my p_pitch_maximum, Melder_fixed (t, 6));
+		Graphics_line (my d_graphics, my d_startWindow, fWC, my d_endWindow, fWC);
+		Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_text (my d_graphics, my d_startWindow, fWC, Melder_fixed (fWC, 5));
 	}
 }
 
-static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shiftKeyPressed) {
+static int clickPitch (ManipulationEditor me, double xWC, double yWC, bool shiftKeyPressed) {
 	Manipulation ana = (Manipulation) my data;
-	PitchTier pitch = ana -> pitch.get();
+	PitchTier pitch = ana -> pitch;
 	long inearestPoint, ifirstSelected, ilastSelected, i;
 	RealPoint nearestPoint;
 	double dt = 0, df = 0;
@@ -929,23 +971,23 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 
 	my pitchTier.cursor = my p_pitch_minimum + yWC * (my p_pitch_maximum - my p_pitch_minimum);
 	if (! pitch) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_pitch_minimum, my p_pitch_maximum);
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_pitch_minimum, my p_pitch_maximum);
 	yWC = my pitchTier.cursor;
 
 	/*
 	 * Clicked on a pitch point?
 	 */
-	inearestPoint = AnyTier_timeToNearestIndex (pitch->asAnyTier(), xWC);
+	inearestPoint = AnyTier_timeToNearestIndex (pitch, xWC);
 	if (inearestPoint == 0) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
-	nearestPoint = pitch -> points.at [inearestPoint];
-	if (Graphics_distanceWCtoMM (my d_graphics.get(), xWC, yWC, nearestPoint -> number, YLIN (nearestPoint -> value)) > 1.5) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+	nearestPoint = (RealPoint) pitch -> points -> item [inearestPoint];
+	if (Graphics_distanceWCtoMM (my d_graphics, xWC, yWC, nearestPoint -> number, YLIN (nearestPoint -> value)) > 1.5) {
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
 
@@ -955,8 +997,8 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 	draggingSelection = shiftKeyPressed &&
 		nearestPoint -> number > my d_startSelection && nearestPoint -> number < my d_endSelection;
 	if (draggingSelection) {
-		ifirstSelected = AnyTier_timeToHighIndex (pitch->asAnyTier(), my d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (pitch->asAnyTier(), my d_endSelection);
+		ifirstSelected = AnyTier_timeToHighIndex (pitch, my d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (pitch, my d_endSelection);
 		Editor_save (me, U"Drag pitch points");
 	} else {
 		ifirstSelected = ilastSelected = inearestPoint;
@@ -971,14 +1013,14 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 	  * Since some systems do double buffering,
 	  * the undrawing at the old position and redrawing at the new have to be bracketed by Graphics_mouseStillDown ().
 	  */
-	Graphics_xorOn (my d_graphics.get(), Graphics_MAROON);
+	Graphics_xorOn (my d_graphics, Graphics_MAROON);
 	drawWhileDragging (me, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 	dragHorizontal = my p_pitch_draggingStrategy != kManipulationEditor_draggingStrategy_VERTICAL &&
 		(! shiftKeyPressed || my p_pitch_draggingStrategy != kManipulationEditor_draggingStrategy_HYBRID);
 	dragVertical = my p_pitch_draggingStrategy != kManipulationEditor_draggingStrategy_HORIZONTAL;
-	while (Graphics_mouseStillDown (my d_graphics.get())) {
+	while (Graphics_mouseStillDown (my d_graphics)) {
 		double xWC_new, yWC_new;
-		Graphics_getMouseLocation (my d_graphics.get(), & xWC_new, & yWC_new);
+		Graphics_getMouseLocation (my d_graphics, & xWC_new, & yWC_new);
 		if (xWC_new != xWC || yWC_new != yWC) {
 			drawWhileDragging (me, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 			if (dragHorizontal) dt += xWC_new - xWC;
@@ -987,7 +1029,7 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 			drawWhileDragging (me, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 		}
 	}
-	Graphics_xorOff (my d_graphics.get());
+	Graphics_xorOff (my d_graphics);
 
 	/*
 	 * Dragged inside window?
@@ -998,21 +1040,22 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 	 * Points not dragged past neighbours?
 	 */
 	{
-		double newTime = pitch -> points.at [ifirstSelected] -> number + dt;
+		RealPoint *points = (RealPoint *) pitch -> points -> item;
+		double newTime = points [ifirstSelected] -> number + dt;
 		if (newTime < my tmin) return 1;   // outside domain
-		if (ifirstSelected > 1 && newTime <= pitch -> points.at [ifirstSelected - 1] -> number)
+		if (ifirstSelected > 1 && newTime <= points [ifirstSelected - 1] -> number)
 			return 1;   /* Past left neighbour. */
-		newTime = pitch -> points.at [ilastSelected] -> number + dt;
+		newTime = points [ilastSelected] -> number + dt;
 		if (newTime > my tmax) return 1;   // outside domain
-		if (ilastSelected < pitch -> points.size && newTime >= pitch -> points.at [ilastSelected + 1] -> number)
-			return FunctionEditor_UPDATE_NEEDED;   // past right neighbour
+		if (ilastSelected < pitch -> points -> size && newTime >= points [ilastSelected + 1] -> number)
+			return 1;   // past right neighbour
 	}
 
 	/*
 	 * Drop.
 	 */
 	for (i = ifirstSelected; i <= ilastSelected; i ++) {
-		RealPoint point = pitch -> points.at [i];
+		RealPoint point = (RealPoint) pitch -> points -> item [i];
 		point -> number += dt;
 		point -> value = YLININV (YLIN (point -> value) + df);
 		if (point -> value < 50.0) point -> value = 50.0;
@@ -1025,49 +1068,52 @@ static bool clickPitch (ManipulationEditor me, double xWC, double yWC, bool shif
 
 	if (draggingSelection) my d_startSelection += dt, my d_endSelection += dt;
 	if (my d_startSelection == my d_endSelection) {
-		RealPoint point = pitch -> points.at [ifirstSelected];
+		RealPoint point = (RealPoint) pitch -> points -> item [ifirstSelected];
 		my d_startSelection = my d_endSelection = point -> number;
 		my pitchTier.cursor = YLIN (point -> value);
 	}
 
 	Editor_broadcastDataChanged (me);
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;   /* Update needed. */
 }
 
-static void drawDurationWhileDragging (ManipulationEditor me, double /* xWC */, double /* yWC */, long first, long last, double dt, double df) {
+static void drawDurationWhileDragging (ManipulationEditor me, double xWC, double yWC, long first, long last, double dt, double df) {
 	Manipulation ana = (Manipulation) my data;
-	DurationTier duration = ana -> duration.get();
+	DurationTier duration = ana -> duration;
+	long i;
+	(void) xWC;
+	(void) yWC;
 
 	/*
 	 * Draw all selected duration points as magenta empty circles, if inside the window.
 	 */
-	for (long i = first; i <= last; i ++) {
-		RealPoint point = duration -> points.at [i];
+	for (i = first; i <= last; i ++) {
+		RealPoint point = (RealPoint) duration -> points -> item [i];
 		double t = point -> number + dt, dur = point -> value + df;
 		if (t >= my d_startWindow && t <= my d_endWindow)
-			Graphics_circle_mm (my d_graphics.get(), t, dur < my p_duration_minimum ? my p_duration_minimum :
-				dur > my p_duration_maximum ? my p_duration_maximum : dur, 3.0);
+			Graphics_circle_mm (my d_graphics, t, dur < my p_duration_minimum ? my p_duration_minimum :
+				dur > my p_duration_maximum ? my p_duration_maximum : dur, 3);
 	}
 
 	if (last == first) {
 		/*
 		 * Draw a crosshair with time and duration.
 		 */
-		RealPoint point = duration -> points.at [first];
+		RealPoint point = (RealPoint) duration -> points -> item [first];
 		double t = point -> number + dt, durWC = point -> value + df;
-		Graphics_line (my d_graphics.get(), t, my p_duration_minimum, t, my p_duration_maximum - Graphics_dyMMtoWC (my d_graphics.get(), 4.0));
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_TOP);
-		Graphics_text (my d_graphics.get(), t, my p_duration_maximum, Melder_fixed (t, 6));
-		Graphics_line (my d_graphics.get(), my d_startWindow, durWC, my d_endWindow, durWC);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-		Graphics_text (my d_graphics.get(), my d_startWindow, durWC, Melder_fixed (durWC, 2));
+		Graphics_line (my d_graphics, t, my p_duration_minimum, t, my p_duration_maximum - Graphics_dyMMtoWC (my d_graphics, 4.0));
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_TOP);
+		Graphics_text (my d_graphics, t, my p_duration_maximum, Melder_fixed (t, 6));
+		Graphics_line (my d_graphics, my d_startWindow, durWC, my d_endWindow, durWC);
+		Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_text (my d_graphics, my d_startWindow, durWC, Melder_fixed (durWC, 2));
 	}
 }
 
-static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int shiftKeyPressed) {
+static int clickDuration (ManipulationEditor me, double xWC, double yWC, int shiftKeyPressed) {
 	Manipulation ana = (Manipulation) my data;
-	DurationTier duration = ana -> duration.get();
-	long inearestPoint, ifirstSelected, ilastSelected;
+	DurationTier duration = ana -> duration;
+	long inearestPoint, ifirstSelected, ilastSelected, i;
 	RealPoint nearestPoint;
 	double dt = 0, df = 0;
 	int draggingSelection;
@@ -1083,22 +1129,22 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 	my duration.cursor = yWC;
 
 	if (! duration) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
-	Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_duration_minimum, my p_duration_maximum);
+	Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_duration_minimum, my p_duration_maximum);
 
 	/*
 	 * Clicked on a duration point?
 	 */
-	inearestPoint = AnyTier_timeToNearestIndex (duration->asAnyTier(), xWC);
+	inearestPoint = AnyTier_timeToNearestIndex (duration, xWC);
 	if (inearestPoint == 0) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
-	nearestPoint = duration -> points.at [inearestPoint];
-	if (Graphics_distanceWCtoMM (my d_graphics.get(), xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
-		Graphics_resetViewport (my d_graphics.get(), my inset);
+	nearestPoint = (RealPoint) duration -> points -> item [inearestPoint];
+	if (Graphics_distanceWCtoMM (my d_graphics, xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
+		Graphics_resetViewport (my d_graphics, my inset);
 		return my ManipulationEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
 
@@ -1108,8 +1154,8 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 	draggingSelection = shiftKeyPressed &&
 		nearestPoint -> number > my d_startSelection && nearestPoint -> number < my d_endSelection;
 	if (draggingSelection) {
-		ifirstSelected = AnyTier_timeToHighIndex (duration->asAnyTier(), my d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (duration->asAnyTier(), my d_endSelection);
+		ifirstSelected = AnyTier_timeToHighIndex (duration, my d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (duration, my d_endSelection);
 		Editor_save (me, U"Drag duration points");
 	} else {
 		ifirstSelected = ilastSelected = inearestPoint;
@@ -1119,11 +1165,11 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 	/*
 	 * Drag.
 	 */
-	Graphics_xorOn (my d_graphics.get(), Graphics_MAROON);
+	Graphics_xorOn (my d_graphics, Graphics_MAROON);
 	drawDurationWhileDragging (me, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
-	while (Graphics_mouseStillDown (my d_graphics.get())) {
+	while (Graphics_mouseStillDown (my d_graphics)) {
 		double xWC_new, yWC_new;
-		Graphics_getMouseLocation (my d_graphics.get(), & xWC_new, & yWC_new);
+		Graphics_getMouseLocation (my d_graphics, & xWC_new, & yWC_new);
 		if (xWC_new != xWC || yWC_new != yWC) {
 			drawDurationWhileDragging (me, xWC, yWC, ifirstSelected, ilastSelected, dt, df);
 			dt += xWC_new - xWC, xWC = xWC_new;
@@ -1131,7 +1177,7 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 			drawDurationWhileDragging (me, xWC_new, yWC_new, ifirstSelected, ilastSelected, dt, df);
 		}
 	}
-	Graphics_xorOff (my d_graphics.get());
+	Graphics_xorOff (my d_graphics);
 
 	/*
 	 * Dragged inside window?
@@ -1142,21 +1188,22 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 	 * Points not dragged past neighbours?
 	 */
 	{
-		double newTime = duration -> points.at [ifirstSelected] -> number + dt;
+		RealPoint *points = (RealPoint *) duration -> points -> item;
+		double newTime = points [ifirstSelected] -> number + dt;
 		if (newTime < my tmin) return 1;   // outside domain
-		if (ifirstSelected > 1 && newTime <= duration -> points.at [ifirstSelected - 1] -> number)
+		if (ifirstSelected > 1 && newTime <= points [ifirstSelected - 1] -> number)
 			return 1;   /* Past left neighbour. */
-		newTime = duration -> points.at [ilastSelected] -> number + dt;
+		newTime = points [ilastSelected] -> number + dt;
 		if (newTime > my tmax) return 1;   // outside domain
-		if (ilastSelected < duration -> points.size && newTime >= duration -> points.at [ilastSelected + 1] -> number)
+		if (ilastSelected < duration -> points -> size && newTime >= points [ilastSelected + 1] -> number)
 			return 1;   // past right neighbour
 	}
 
 	/*
 	 * Drop.
 	 */
-	for (long i = ifirstSelected; i <= ilastSelected; i ++) {
-		RealPoint point = duration -> points.at [i];
+	for (i = ifirstSelected; i <= ilastSelected; i ++) {
+		RealPoint point = (RealPoint) duration -> points -> item [i];
 		point -> number += dt;
 		point -> value += df;
 		if (point -> value < my p_duration_minimum) point -> value = my p_duration_minimum;
@@ -1169,16 +1216,16 @@ static bool clickDuration (ManipulationEditor me, double xWC, double yWC, int sh
 
 	if (draggingSelection) my d_startSelection += dt, my d_endSelection += dt;
 	if (my d_startSelection == my d_endSelection) {
-		RealPoint point = duration -> points.at [ifirstSelected];
+		RealPoint point = (RealPoint) duration -> points -> item [ifirstSelected];
 		my d_startSelection = my d_endSelection = point -> number;
 		my duration.cursor = point -> value;
 	}
 
 	Editor_broadcastDataChanged (me);
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;   /* Update needed. */
 }
 
-bool structManipulationEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structManipulationEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	double ypitchmin, ypitchmax, ydurationmin, ydurationmax;
 	int hasPitchArea = getPitchArea (this, & ypitchmin, & ypitchmax);
 	int hasDurationArea = getDurationArea (this, & ydurationmin, & ydurationmax);
@@ -1187,10 +1234,10 @@ bool structManipulationEditor :: v_click (double xWC, double yWC, bool shiftKeyP
 	 * Dispatch click to clicked area.
 	 */
 	if (hasPitchArea && yWC > ypitchmin && yWC < ypitchmax) {   // clicked in pitch area?
-		inset = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, ypitchmin, ypitchmax);
+		inset = Graphics_insetViewport (our d_graphics, 0, 1, ypitchmin, ypitchmax);
 		return clickPitch (this, xWC, (yWC - ypitchmin) / (ypitchmax - ypitchmin), shiftKeyPressed);
 	} else if (hasDurationArea && yWC > ydurationmin && yWC < ydurationmax) {   // clicked in duration area?
-		inset = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, ydurationmin, ydurationmax);
+		inset = Graphics_insetViewport (our d_graphics, 0, 1, ydurationmin, ydurationmax);
 		return clickDuration (this, xWC, (yWC - ydurationmin) / (ydurationmax - ydurationmin), shiftKeyPressed);
 	}
 	/*
@@ -1203,18 +1250,18 @@ void structManipulationEditor :: v_play (double a_tmin, double a_tmax) {
 	Manipulation ana = (Manipulation) our data;
 	if (our shiftKeyPressed) {
 		if (ana -> sound)
-			Sound_playPart (ana -> sound.get(), a_tmin, a_tmax, theFunctionEditor_playCallback, this);
+			Sound_playPart (ana -> sound, a_tmin, a_tmax, theFunctionEditor_playCallback, this);
 	} else {
 		Manipulation_playPart (ana, a_tmin, a_tmax, our synthesisMethod);
 	}
 }
 
-autoManipulationEditor ManipulationEditor_create (const char32 *title, Manipulation ana) {
+ManipulationEditor ManipulationEditor_create (const char32 *title, Manipulation ana) {
 	try {
 		autoManipulationEditor me = Thing_new (ManipulationEditor);
-		FunctionEditor_init (me.get(), title, ana);
+		FunctionEditor_init (me.peek(), title, ana);
 
-		double maximumPitchValue = RealTier_getMaximumValue (ana -> pitch.get());
+		double maximumPitchValue = RealTier_getMaximumValue (ana -> pitch);
 		if (my p_pitch_units == kManipulationEditor_pitchUnits_HERTZ) {
 			my p_pitch_minimum = 25.0;
 			my pitchTier.minPeriodic = 50.0;
@@ -1231,13 +1278,13 @@ autoManipulationEditor ManipulationEditor_create (const char32 *title, Manipulat
 		if (my p_pitch_maximum == NUMundefined || my p_pitch_maximum < my pref_pitch_maximum ())
 			my p_pitch_maximum = my pref_pitch_maximum ();
 
-		double minimumDurationValue = ana -> duration ? RealTier_getMinimumValue (ana -> duration.get()) : NUMundefined;
+		double minimumDurationValue = ana -> duration ? RealTier_getMinimumValue (ana -> duration) : NUMundefined;
 		my p_duration_minimum = NUMdefined (minimumDurationValue) ? minimumDurationValue : 1.0;
 		if (my pref_duration_minimum () > 1)
 			my pref_duration_minimum () = Melder_atof (my default_duration_minimum ());
 		if (my p_duration_minimum > my pref_duration_minimum ())
 			my p_duration_minimum = my pref_duration_minimum ();
-		double maximumDurationValue = ana -> duration ? RealTier_getMaximumValue (ana -> duration.get()) : NUMundefined;
+		double maximumDurationValue = ana -> duration ? RealTier_getMaximumValue (ana -> duration) : NUMundefined;
 		my p_duration_maximum = NUMdefined (maximumDurationValue) ? maximumDurationValue : 1.0;
 		if (my pref_duration_maximum () < 1)
 			my pref_duration_maximum () = Melder_atof (my default_duration_maximum ());
@@ -1251,10 +1298,10 @@ autoManipulationEditor ManipulationEditor_create (const char32 *title, Manipulat
 
 		my synthesisMethod = prefs_synthesisMethod;
 		if (ana -> sound)
-			Matrix_getWindowExtrema (ana -> sound.get(), 0, 0, 0, 0, & my soundmin, & my soundmax);
+			Matrix_getWindowExtrema (ana -> sound, 0, 0, 0, 0, & my soundmin, & my soundmax);
 		if (my soundmin == my soundmax) my soundmin = -1.0, my soundmax = +1.0;
-		updateMenus (me.get());
-		return me;
+		updateMenus (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Manipulation window not created.");
 	}
diff --git a/fon/ManipulationEditor.h b/fon/ManipulationEditor.h
index 6b5cd7b..2d8159e 100644
--- a/fon/ManipulationEditor.h
+++ b/fon/ManipulationEditor.h
@@ -25,9 +25,9 @@
 #include "ManipulationEditor_enums.h"
 
 Thing_define (ManipulationEditor, FunctionEditor) {
-	autoPointProcess previousPulses;
-	autoPitchTier previousPitch;
-	autoDurationTier previousDuration;
+	PointProcess previousPulses;
+	PitchTier previousPitch;
+	DurationTier previousDuration;
 	double soundmin, soundmax;
 	int synthesisMethod;
 	GuiMenuItem synthPulsesButton, synthPulsesHumButton;
@@ -40,6 +40,8 @@ Thing_define (ManipulationEditor, FunctionEditor) {
 	struct { double cursor;  } duration;
 	Graphics_Viewport inset;
 
+	void v_destroy ()
+		override;
 	void v_createMenus ()
 		override;
 	void v_createHelpMenuItems (EditorMenu menu)
@@ -50,7 +52,7 @@ Thing_define (ManipulationEditor, FunctionEditor) {
 		override;
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -58,7 +60,7 @@ Thing_define (ManipulationEditor, FunctionEditor) {
 	#include "ManipulationEditor_prefs.h"
 };
 
-autoManipulationEditor ManipulationEditor_create (const char32 *title, Manipulation ana);
+ManipulationEditor ManipulationEditor_create (const char32 *title, Manipulation ana);
 
 /* End of file ManipulationEditor.h */
 #endif
diff --git a/fon/Manipulation_def.h b/fon/Manipulation_def.h
index b7ac2d0..4b2e835 100644
--- a/fon/Manipulation_def.h
+++ b/fon/Manipulation_def.h
@@ -23,22 +23,22 @@ oo_DEFINE_CLASS (Manipulation, Function)
 
 	#if oo_READING
 		if (formatVersion >= 5 || (Melder_debug == 25 && formatVersion == 4)) {
-			oo_AUTO_OBJECT (Sound, 2, sound)
+			oo_OBJECT (Sound, 2, sound)
 		} else {
-			oo_AUTO_OBJECT (Sound, 0, sound)
+			oo_OBJECT (Sound, 0, sound)
 		}
 	#else
-		oo_AUTO_OBJECT (Sound, 0, sound)
+		oo_OBJECT (Sound, 0, sound)
 	#endif
-	oo_AUTO_OBJECT (PointProcess, 0, pulses)
-	oo_AUTO_OBJECT (PitchTier, 0, pitch)
+	oo_OBJECT (PointProcess, 0, pulses)
+	oo_OBJECT (PitchTier, 0, pitch)
 
 	oo_FROM (1)
-		oo_AUTO_OBJECT (IntensityTier, 0, dummyIntensity)
+		oo_OBJECT (IntensityTier, 0, dummyIntensity)
 	oo_ENDFROM
 
 	oo_FROM (2)
-		oo_AUTO_OBJECT (DurationTier, 0, duration)
+		oo_OBJECT (DurationTier, 0, duration)
 	oo_ENDFROM
 
 	oo_FROM (3)
@@ -47,25 +47,25 @@ oo_DEFINE_CLASS (Manipulation, Function)
 		 * but allow it to be read (a legacy of writing but not reading the version 3 stuff).
 		 */
 		#if oo_WRITING
-			{ autoImage save = dummySpectrogram.move();
+			{ Image save = dummySpectrogram; dummySpectrogram = NULL;
 		#endif
-		oo_AUTO_OBJECT (Image, 0, dummySpectrogram)
+		oo_OBJECT (Image, 0, dummySpectrogram)
 		#if oo_WRITING
-			dummySpectrogram = save.move(); }
+			dummySpectrogram = save; }
 		#endif
-		oo_AUTO_OBJECT (FormantTier, 0, dummyFormantTier)
-		oo_AUTO_OBJECT (Daata, 0, dummy1)
-		oo_AUTO_OBJECT (Daata, 0, dummy2)
-		oo_AUTO_OBJECT (Daata, 0, dummy3)
+		oo_OBJECT (FormantTier, 0, dummyFormantTier)
+		oo_OBJECT (Data, 0, dummy1)
+		oo_OBJECT (Data, 0, dummy2)
+		oo_OBJECT (Data, 0, dummy3)
 	oo_ENDFROM
 
 	oo_FROM (4)
 		oo_DOUBLE (dummy10)
-		oo_AUTO_OBJECT (Pitch, 0, dummyPitchAnalysis)
+		oo_OBJECT (Pitch, 0, dummyPitchAnalysis)
 		oo_DOUBLE (dummy11)
 		oo_DOUBLE (dummy12)
-		oo_AUTO_OBJECT (Intensity, 0, dummyIntensityAnalysis)
-		oo_AUTO_OBJECT (Formant, 1, dummyFormantAnalysis)
+		oo_OBJECT (Intensity, 0, dummyIntensityAnalysis)
+		oo_OBJECT (Formant, 1, dummyFormantAnalysis)
 		oo_INT (dummy4)
 		oo_DOUBLE (dummy5)
 		oo_DOUBLE (dummy6)
@@ -75,7 +75,7 @@ oo_DEFINE_CLASS (Manipulation, Function)
 	oo_ENDFROM
 
 	#if !oo_READING && !oo_WRITING
-		oo_AUTO_OBJECT (LPC, 0, lpc)
+		oo_OBJECT (LPC, 0, lpc)
 	#endif
 
 	#if oo_DECLARING
@@ -90,5 +90,4 @@ oo_DEFINE_CLASS (Manipulation, Function)
 oo_END_CLASS (Manipulation)
 #undef ooSTRUCT
 
-
 /* End of file Manipulation_def.h */
diff --git a/fon/Matrix.cpp b/fon/Matrix.cpp
index 5090d4b..2c3d95b 100644
--- a/fon/Matrix.cpp
+++ b/fon/Matrix.cpp
@@ -1,6 +1,6 @@
 /* Matrix.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -42,7 +42,7 @@
 Thing_implement (Matrix, SampledXY, 2);
 
 void structMatrix :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	double minimum = 0.0, maximum = 0.0;
 	Matrix_getWindowExtrema (this, 1, our nx, 1, our ny, & minimum, & maximum);
 	MelderInfo_writeLine (U"xmin: ", our xmin);
@@ -125,35 +125,35 @@ void Matrix_init
 	my z = NUMmatrix <double> (1, my ny, 1, my nx);
 }
 
-autoMatrix Matrix_create
+Matrix Matrix_create
 	(double xmin, double xmax, long nx, double dx, double x1,
 	 double ymin, double ymax, long ny, double dy, double y1)
 {
 	try {
 		autoMatrix me = Thing_new (Matrix);
-		Matrix_init (me.get(), xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
-		return me;
+		Matrix_init (me.peek(), xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix object not created.");
 	}
 }
 
-autoMatrix Matrix_createSimple (long numberOfRows, long numberOfColumns) {
+Matrix Matrix_createSimple (long numberOfRows, long numberOfColumns) {
 	try {
 		autoMatrix me = Thing_new (Matrix);
-		Matrix_init (me.get(), 0.5, numberOfColumns + 0.5, numberOfColumns, 1, 1,
+		Matrix_init (me.peek(), 0.5, numberOfColumns + 0.5, numberOfColumns, 1, 1,
 			0.5, numberOfRows + 0.5, numberOfRows, 1, 1);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix object not created.");
 	}
 }
 
-double Matrix_columnToX (Matrix me, double column) { return my x1 + (column - 1.0) * my dx; }   // FIXME inline and use Sampled
+double Matrix_columnToX (Matrix me, double column) { return my x1 + (column - 1) * my dx; }
 
-double Matrix_rowToY (Matrix me, double row) { return my y1 + (row - 1.0) * my dy; }
+double Matrix_rowToY (Matrix me, double row) { return my y1 + (row - 1) * my dy; }
 
-double Matrix_xToColumn (Matrix me, double x) { return (x - my x1) / my dx + 1.0; }
+double Matrix_xToColumn (Matrix me, double x) { return (x - my x1) / my dx + 1; }
 
 long Matrix_xToLowColumn (Matrix me, double x) { return (long) floor (Matrix_xToColumn (me, x)); }
 
@@ -161,7 +161,7 @@ long Matrix_xToHighColumn (Matrix me, double x) { return (long) ceil (Matrix_xTo
 
 long Matrix_xToNearestColumn (Matrix me, double x) { return (long) floor (Matrix_xToColumn (me, x) + 0.5); }
 
-double Matrix_yToRow (Matrix me, double y) { return (y - my y1) / my dy + 1.0; }
+double Matrix_yToRow (Matrix me, double y) { return (y - my y1) / my dy + 1; }
 
 long Matrix_yToLowRow (Matrix me, double y) { return (long) floor (Matrix_yToRow (me, y)); }
 
@@ -357,7 +357,7 @@ void Matrix_paintContours (Matrix me, Graphics g, double xmin, double xmax, doub
 }
 
 static void cellArrayOrImage (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax,
-	double minimum, double maximum, bool interpolate)
+	double minimum, double maximum, int interpolate)
 {
 	if (xmax <= xmin) { xmin = my xmin; xmax = my xmax; }
 	if (ymax <= ymin) { ymin = my ymin; ymax = my ymax; }
@@ -389,13 +389,13 @@ static void cellArrayOrImage (Matrix me, Graphics g, double xmin, double xmax, d
 void Matrix_paintImage (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax,
 	double minimum, double maximum)
 {
-	cellArrayOrImage (me, g, xmin, xmax, ymin, ymax, minimum, maximum, true);
+	cellArrayOrImage (me, g, xmin, xmax, ymin, ymax, minimum, maximum, TRUE);
 }
 
 void Matrix_paintCells (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax,
 	double minimum, double maximum)
 {
-	cellArrayOrImage (me, g, xmin, xmax, ymin, ymax, minimum, maximum, false);
+	cellArrayOrImage (me, g, xmin, xmax, ymin, ymax, minimum, maximum, FALSE);
 }
 
 void Matrix_paintSurface (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax,
@@ -410,7 +410,7 @@ void Matrix_paintSurface (Matrix me, Graphics g, double xmin, double xmax, doubl
 		(void) Matrix_getWindowExtrema (me, ixmin, ixmax, iymin, iymax, & minimum, & maximum);
 	if (maximum <= minimum) { minimum -= 1.0; maximum += 1.0; }
 	Graphics_setInner (g);
-	Graphics_setWindow (g, -1.0, 1.0, minimum, maximum);
+	Graphics_setWindow (g, -1, 1, minimum, maximum);
 	Graphics_surface (g, my z,
 		ixmin, ixmax, Matrix_columnToX (me, ixmin), Matrix_columnToX (me, ixmax),
 		iymin, iymax, Matrix_rowToY (me, iymin), Matrix_rowToY (me, iymax),
@@ -422,18 +422,18 @@ void Matrix_movie (Matrix me, Graphics g) {
 	autoNUMvector <double> column (1, my ny);
 	double minimum = 0.0, maximum = 1.0;
 	Matrix_getWindowExtrema (me, 1, my nx, 1, my ny, & minimum, & maximum);
+	Graphics_setViewport (g, 0, 1, 0, 1);
+	Graphics_setWindow (g, my ymin, my ymax, minimum, maximum);
 	for (long icol = 1; icol <= my nx; icol ++) {
-		for (long irow = 1; irow <= my ny; irow ++) {
+		for (long irow = 1; irow <= my ny; irow ++)
 			column [irow] = my z [irow] [icol];
-		}
-		Graphics_beginMovieFrame (g, & Graphics_WHITE);
-		Graphics_setWindow (g, my ymin, my ymax, minimum, maximum);
+		Graphics_clearWs (g);
 		Graphics_function (g, column.peek(), 1, my ny, my ymin, my ymax);
-		Graphics_endMovieFrame (g, 0.03);
+		Graphics_flushWs (g);
 	}
 }
 
-autoMatrix Matrix_readAP (MelderFile file) {
+Matrix Matrix_readAP (MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 		int16_t header [256];
@@ -441,8 +441,8 @@ autoMatrix Matrix_readAP (MelderFile file) {
 			header [i] = bingeti2LE (f);
 		double samplingFrequency = header [100];   // converting up (from 16 to 54 bytes)
 		Melder_casual (U"Sampling frequency ", samplingFrequency);
-		autoMatrix me = Matrix_create (0.0, (double) header [34], header [34] /* Number of frames. */, 1.0, 0.5,
-			0.0, (double) header [35], header [35] /* Number of words per frame. */, 1.0, 0.5);
+		autoMatrix me = Matrix_create (0, header [34], header [34] /* Number of frames. */, 1, 0.5,
+			0, header [35], header [35] /* Number of words per frame. */, 1, 0.5);
 			/*Mat := MATRIX_create (Buffer.I2 [36], (* Number of words per frame. *)
 							   Buffer.I2 [35], (* Number of frames. *)
 							   1.0,
@@ -462,16 +462,16 @@ autoMatrix Matrix_readAP (MelderFile file) {
 				my z [1] [i] = - samplingFrequency / my z [1] [i];
 
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix object not read from AP file ", file);
 	}
 }
 
-autoMatrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas) {
+Matrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas) {
 	try {
-		autoMatrix him = Thing_newFromClass (klas).static_cast_move<structMatrix>();
-		Matrix_init (him.get(), my xmin < thy xmin ? my xmin : thy xmin,
+		autoMatrix him = static_cast <Matrix> (Thing_newFromClass (klas));
+		Matrix_init (him.peek(), my xmin < thy xmin ? my xmin : thy xmin,
 			my xmax > thy xmax ? my xmax : thy xmax,
 			my nx > thy nx ? my nx : thy nx, my dx, my x1 < thy x1 ? my x1 : thy x1,
 			my ymin, my ymax + (thy ymax - thy ymin), my ny + thy ny, my dy, my y1);
@@ -481,13 +481,13 @@ autoMatrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas) {
 		for (long irow = 1; irow <= thy ny; irow ++)
 			for (long icol = 1; icol <= thy nx; icol ++)
 				his z [irow + my ny] [icol] = thy z [irow] [icol];
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": rows not appended.");
 	}
 }
 
-autoMatrix Matrix_readFromRawTextFile (MelderFile file) {   // BUG: not Unicode-compatible
+Matrix Matrix_readFromRawTextFile (MelderFile file) {   // BUG: not Unicode-compatible
 	try {
 		autofile f = Melder_fopen (file, "rb");
 
@@ -540,34 +540,36 @@ autoMatrix Matrix_readFromRawTextFile (MelderFile file) {   // BUG: not Unicode-
 				fscanf (f, "%lf", & my z [irow] [icol]);
 
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix object not read from raw text file ", file, U".");
 	}
 }
 
-void Matrix_eigen (Matrix me, autoMatrix *out_eigenvectors, autoMatrix *out_eigenvalues) {
+void Matrix_eigen (Matrix me, Matrix *out_eigenvectors, Matrix *out_eigenvalues) {
+	*out_eigenvectors = NULL;
+	*out_eigenvalues = NULL;
 	try {
 		if (my nx != my ny)
 			Melder_throw (U"(Matrix not square.");
 
 		autoEigen eigen = Thing_new (Eigen);
-		Eigen_initFromSymmetricMatrix (eigen.get(), my z, my nx);
+		Eigen_initFromSymmetricMatrix (eigen.peek(), my z, my nx);
 		autoMatrix eigenvectors = Data_copy (me);
-		autoMatrix eigenvalues = Matrix_create (1.0, 1.0, 1, 1.0, 1.0, my ymin, my ymax, my ny, my dy, my y1);
+		autoMatrix eigenvalues = Matrix_create (1, 1, 1, 1, 1, my ymin, my ymax, my ny, my dy, my y1);
 		for (long i = 1; i <= my nx; i ++) {
 			eigenvalues -> z [i] [1] = eigen -> eigenvalues [i];
 			for (long j = 1; j <= my nx; j ++)
 				eigenvectors -> z [i] [j] = eigen -> eigenvectors [j] [i];
 		}
-		*out_eigenvectors = eigenvectors.move();
-		*out_eigenvalues = eigenvalues.move();
+		*out_eigenvectors = eigenvectors.transfer();
+		*out_eigenvalues = eigenvalues.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": eigenstructure not computed.");
 	}
 }
 
-autoMatrix Matrix_power (Matrix me, long power) {
+Matrix Matrix_power (Matrix me, long power) {
 	try {
 		if (my nx != my ny)
 			Melder_throw (U"Matrix not square.");
@@ -584,7 +586,7 @@ autoMatrix Matrix_power (Matrix me, long power) {
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": power not computed.");
 	}
@@ -627,8 +629,8 @@ void Matrix_writeToHeaderlessSpreadsheetFile (Matrix me, MelderFile file) {
 void Matrix_formula (Matrix me, const char32 *expression, Interpreter interpreter, Matrix target) {
 	try {
 		struct Formula_Result result;
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! target) target = me;
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (target == NULL) target = me;
 		for (long irow = 1; irow <= my ny; irow ++) {
 			for (long icol = 1; icol <= my nx; icol ++) {
 				Formula_run (irow, icol, & result);
@@ -650,8 +652,8 @@ void Matrix_formula_part (Matrix me, double xmin, double xmax, double ymin, doub
 		(void) Matrix_getWindowSamplesX (me, xmin, xmax, & ixmin, & ixmax);
 		(void) Matrix_getWindowSamplesY (me, ymin, ymax, & iymin, & iymax);
 		struct Formula_Result result;
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! target) target = me;
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (target == NULL) target = me;
 		for (long irow = iymin; irow <= iymax; irow ++) {
 			for (long icol = ixmin; icol <= ixmax; icol ++) {
 				Formula_run (irow, icol, & result);
@@ -682,43 +684,43 @@ void Matrix_scaleAbsoluteExtremum (Matrix me, double scale) {
 	}
 }
 
-autoMatrix TableOfReal_to_Matrix (TableOfReal me) {
+Matrix TableOfReal_to_Matrix (TableOfReal me) {
 	try {
 		autoMatrix thee = Matrix_createSimple (my numberOfRows, my numberOfColumns);
 		for (long i = 1; i <= my numberOfRows; i ++)
 			for (long j = 1; j <= my numberOfColumns; j ++)
 				thy z [i] [j] = my data [i] [j];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoTableOfReal Matrix_to_TableOfReal (Matrix me) {
+TableOfReal Matrix_to_TableOfReal (Matrix me) {
 	try {
 		autoTableOfReal thee = TableOfReal_create (my ny, my nx);
 		for (long i = 1; i <= my ny; i ++)
 			for (long j = 1; j <= my nx; j ++)
 				thy data [i] [j] = my z [i] [j];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
 }
 
-autoMatrix Table_to_Matrix (Table me) {
+Matrix Table_to_Matrix (Table me) {
 	try {
-		autoMatrix thee = Matrix_createSimple (my rows.size, my numberOfColumns);
+		autoMatrix thee = Matrix_createSimple (my rows -> size, my numberOfColumns);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			Table_numericize_Assert (me, icol);
 		}
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 				thy z [irow] [icol] = row -> cells [icol]. number;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/fon/Matrix.h b/fon/Matrix.h
index 7e12198..9533872 100644
--- a/fon/Matrix.h
+++ b/fon/Matrix.h
@@ -2,7 +2,7 @@
 #define _Matrix_h_
 /* Matrix.h
  *
- * Copyright (C) 1992-2011,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,36 +23,25 @@
 #include "Graphics.h"
 #include "../stat/Table.h"
 #include "../stat/TableOfReal.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "Matrix_def.h"
-
-#if 1
-template <typename T, typename... Args>
-	_Thing_auto <T> Thing_create (Args ... args) {
-		_Thing_auto <T> me (new T);   // this `new` has to set classInfo
-		my T::init (args...);
-		return me;
-	}
-#endif
+oo_CLASS_CREATE (Matrix, SampledXY);
 
 void Matrix_init
 	(Matrix me, double xmin, double xmax, long nx, double dx, double x1,
 	            double ymin, double ymax, long ny, double dy, double y1);
 
-autoMatrix Matrix_create
+Matrix Matrix_create
 	(double xmin, double xmax, long nx, double dx, double x1,
 	 double ymin, double ymax, long ny, double dy, double y1);
 /*
 	Function:
-		return a new empty Matrix.
+		return a new empty Matrix, or NULL if out of memory.
 	Preconditions:
-		xmin <= xmax;
-		ymin <= ymax;
-		nx >= 1;
-		ny >= 1;
-		dx > 0.0;
-		dy > 0.0;
+		xmin <= xmax;   ymin <= ymax;
+		nx >= 1;  ny >= 1;
+		dx > 0.0;   dy > 0.0;
 	Postconditions:
 		result -> xmin == xmin;
 		result -> xmax == xmax;
@@ -67,13 +56,12 @@ autoMatrix Matrix_create
 		result -> z [1..ny] [1..nx] == 0.0;
 */
 
-autoMatrix Matrix_createSimple (long numberOfRows, long numberOfColumns);
+Matrix Matrix_createSimple (long numberOfRows, long numberOfColumns);
 /*
 	Function:
-		return a new empty Matrix.
+		return a new empty Matrix, or NULL if out of memory.
 	Preconditions:
-		numberOfRows >= 1;
-		numberOfColumns >= 1;
+		numberOfRows >= 1;  numberOfColumns >= 1;
 	Postconditions:
 		result -> xmin == 0.5;
 		result -> xmax == numberOfColumns + 0.5;
@@ -81,18 +69,18 @@ autoMatrix Matrix_createSimple (long numberOfRows, long numberOfColumns);
 		result -> ymax == numberOfRows + 0.5;
 		result -> nx == numberOfColumns;
 		result -> ny == numberOfRows;
-		result -> dx == 1.0;
-		result -> dy == 1.0;
-		result -> x1 == 1.0;
-		result -> y1 == 1.0;
+		result -> dx == 1;
+		result -> dy == 1;
+		result -> x1 == 1;
+		result -> y1 == 1;
 		result -> z [1..ny] [1..nx] == 0.0;
 */
 
-/* An implemented method
+/* Implemented methods
 
-	void structMatrix :: v_writeText (MelderFile file);
-		writes a Matrix as text to `file`.
-		A sample of the format follows:
+	int Matrix::writeText (I, FILE *f);
+		writes a Matrix as text to the stream f.
+		A sample of the format follows (see example 3 above):
 			0 5000 1 2   ! xmin xmax ymin ymax
 			8193 2   ! nx ny
 			0.61035156 1   ! dx dy
@@ -107,6 +95,27 @@ autoMatrix Matrix_createSimple (long numberOfRows, long numberOfColumns);
 			The data lines (all lines after the fourth) contain: my z [iy, ix], x, y.
 			things written after the "!" are mere comments:
 			you cannot use them to change the meaning or order of the data.
+
+	int Matrix::readText (I, FILE *f)
+		reads a Matrix as text from the stream f.
+		The requested format is the same as the format produced by
+		Matrix::writeText, though any comments may be left out.
+		Failures:
+			Wrong text input: this line should start with xmin, xmax, ymin, and ymax.
+			Wrong text input: this line should start with nx >= 1 and ny >= 1.
+			Wrong text input: this line should start with dx > 0.0 and dy > 0.0.
+			Wrong text input: this line should start with x1 and y1.
+			Out of text input: there should be 'nx * ny' lines with z values.
+
+	int Matrix::writeBinary (I, FILE *f)
+		writes a Matrix to the stream f, in IEEE floating-point format.
+
+	int Matrix::readBinary (I, FILE *f)
+		reads a Matrix from the stream f, in IEEE floating-point format.
+		Failures:
+			Wrong binary input.
+			Not enough memory to read this Matrix.
+			Out of input.
 */
 
 long Matrix_getWindowSamplesX (Matrix me, double xmin, double xmax, long *ixmin, long *ixmax);
@@ -132,25 +141,25 @@ double Matrix_getValueAtXY (Matrix me, double x, double y);
 double Matrix_getSum (Matrix me);
 double Matrix_getNorm (Matrix me);
 
-double Matrix_columnToX (Matrix me, double column);   // return my x1 + (column - 1) * my dx
+double Matrix_columnToX (Matrix me, double column);   /* Return my x1 + (column - 1) * my dx.	 */
 
-double Matrix_rowToY (Matrix me, double row);   // return my y1 + (row - 1) * my dy
+double Matrix_rowToY (Matrix me, double row);   /* Return my y1 + (row - 1) * my dy. */
 
-double Matrix_xToColumn (Matrix me, double x);   // return (x - xmin) / my dx + 1
+double Matrix_xToColumn (Matrix me, double x);   /* Return (x - xmin) / my dx + 1. */
 
-long Matrix_xToLowColumn (Matrix me, double x);   // return floor (Matrix_xToColumn (me, x))
+long Matrix_xToLowColumn (Matrix me, double x);   /* Return floor (Matrix_xToColumn (me, x)). */
 
-long Matrix_xToHighColumn (Matrix me, double x);   // return ceil (Matrix_xToColumn (me, x))
+long Matrix_xToHighColumn (Matrix me, double x);   /* Return ceil (Matrix_xToColumn (me, x)). */
 
-long Matrix_xToNearestColumn (Matrix me, double x);   // return floor (Matrix_xToColumn (me, x) + 0.5)
+long Matrix_xToNearestColumn (Matrix me, double x);   /* Return floor (Matrix_xToColumn (me, x) + 0.5). */
 
-double Matrix_yToRow (Matrix me, double y);   // return (y - ymin) / my dy + 1
+double Matrix_yToRow (Matrix me, double y);   /* Return (y - ymin) / my dy + 1. */
 
-long Matrix_yToLowRow (Matrix me, double y);   // return floor (Matrix_yToRow (me, y))
+long Matrix_yToLowRow (Matrix me, double y);   /* Return floor (Matrix_yToRow (me, y)). */
 
-long Matrix_yToHighRow (Matrix me, double x);   // return ceil (Matrix_yToRow (me, y))
+long Matrix_yToHighRow (Matrix me, double x);   /* Return ceil (Matrix_yToRow (me, y)). */
 
-long Matrix_yToNearestRow (Matrix me, double y);   // return floor (Matrix_yToRow (me, y) + 0.5)
+long Matrix_yToNearestRow (Matrix me, double y);   /* Return floor (Matrix_yToRow (me, y) + 0.5). */
 
 long Matrix_getWindowSamplesY (Matrix me, double ymin, double ymax, long *iymin, long *iymax);
 
@@ -178,7 +187,7 @@ void Matrix_formula (Matrix me, const char32 *expression, Interpreter interprete
 				ENDFOR
 			ENDFOR
 		"expression" is the text to be compiled and interpreted.
-		If "target" is null, the result will go to "me"; otherwise, to "target".
+		If "target" is NULL, the result will go to "me"; otherwise, to "target".
 	Return value:
 		0 in case of failure, otherwise 1.
 */
@@ -239,21 +248,21 @@ void Matrix_paintSurface (Matrix me, Graphics g, double xmin, double xmax, doubl
 
 void Matrix_movie (Matrix me, Graphics g);
 
-autoMatrix Matrix_readFromRawTextFile (MelderFile file);
-autoMatrix Matrix_readAP (MelderFile file);
-autoMatrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas);
+Matrix Matrix_readFromRawTextFile (MelderFile file);
+Matrix Matrix_readAP (MelderFile file);
+Matrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas);
 
-void Matrix_eigen (Matrix me, autoMatrix *eigenvectors, autoMatrix *eigenvalues);
-autoMatrix Matrix_power (Matrix me, long power);
+void Matrix_eigen (Matrix me, Matrix *eigenvectors, Matrix *eigenvalues);
+Matrix Matrix_power (Matrix me, long power);
 
 void Matrix_scaleAbsoluteExtremum (Matrix me, double scale);
 
-autoMatrix Table_to_Matrix (Table me);
+Matrix Table_to_Matrix (Table me);
 void Matrix_writeToMatrixTextFile (Matrix me, MelderFile file);
 void Matrix_writeToHeaderlessSpreadsheetFile (Matrix me, MelderFile file);
 
-autoMatrix TableOfReal_to_Matrix (TableOfReal me);
-autoTableOfReal Matrix_to_TableOfReal (Matrix me);
+Matrix TableOfReal_to_Matrix (TableOfReal me);
+TableOfReal Matrix_to_TableOfReal (Matrix me);
 
 /* End of file Matrix.h */
 #endif
diff --git a/fon/Matrix_and_Pitch.cpp b/fon/Matrix_and_Pitch.cpp
index 0378679..670b937 100644
--- a/fon/Matrix_and_Pitch.cpp
+++ b/fon/Matrix_and_Pitch.cpp
@@ -27,20 +27,20 @@
 
 #include "Matrix_and_Pitch.h"
 
-autoMatrix Pitch_to_Matrix (Pitch me) {
+Matrix Pitch_to_Matrix (Pitch me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1, 1, 1, 1, 1);
 		for (long i = 1; i <= my nx; i ++) {
 			double value = my frame [i]. candidate [1]. frequency;
 			thy z [1] [i] = value > 0.0 && value < my ceiling ? my frame [i]. candidate [1]. frequency : 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoPitch Matrix_to_Pitch (Matrix me) {
+Pitch Matrix_to_Pitch (Matrix me) {
 	try {
 		autoPitch thee = Pitch_create (my xmin, my xmax, my nx, my dx, my x1, 5000, 2);
 		for (long i = 1; i <= my nx; i ++) {
@@ -58,7 +58,7 @@ autoPitch Matrix_to_Pitch (Matrix me) {
 				frame->candidate[2].strength = 0.4;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Pitch.");
 	}
@@ -72,7 +72,7 @@ void Pitch_formula (Pitch me, const char32 *formula, Interpreter interpreter) {
 			for (long icand = 1; icand <= frame -> nCandidates; icand ++)
 				m -> z [icand] [iframe] = frame -> candidate [icand]. frequency;
 		}
-		Matrix_formula (m.get(), formula, interpreter, nullptr);
+		Matrix_formula (m.peek(), formula, interpreter, NULL);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Pitch_Frame frame = & my frame [iframe];
 			for (long icand = 1; icand <= frame -> nCandidates; icand ++)
diff --git a/fon/Matrix_and_Pitch.h b/fon/Matrix_and_Pitch.h
index eb1327c..456190e 100644
--- a/fon/Matrix_and_Pitch.h
+++ b/fon/Matrix_and_Pitch.h
@@ -1,6 +1,6 @@
 /* Matrix_and_Pitch.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,8 +20,8 @@
 #include "Matrix.h"
 #include "Pitch.h"
 
-autoMatrix Pitch_to_Matrix (Pitch me);
+Matrix Pitch_to_Matrix (Pitch me);
 
-autoPitch Matrix_to_Pitch (Matrix me);
+Pitch Matrix_to_Pitch (Matrix me);
 
 /* End of file Matrix_and_Pitch.h */
diff --git a/fon/Matrix_and_PointProcess.cpp b/fon/Matrix_and_PointProcess.cpp
index 4bf82f5..eced2aa 100644
--- a/fon/Matrix_and_PointProcess.cpp
+++ b/fon/Matrix_and_PointProcess.cpp
@@ -1,6 +1,6 @@
 /* Matrix_and_PointProcess.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,28 +17,34 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 1997/03/29
+ * pb 2002/07/16 GPL
+ * pb 2011/06/04 C++
+ */
+
 #include "Matrix_and_PointProcess.h"
 
-autoMatrix PointProcess_to_Matrix (PointProcess me) {
+Matrix PointProcess_to_Matrix (PointProcess me) {
 	try {
 		if (my nt == 0)
 			Melder_throw (U"No times in PointProcess.");
-		autoMatrix thee = Matrix_create (1.0, my nt, my nt, 1.0, 1.0, 1.0, 1.0, 1, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (1, my nt, my nt, 1, 1, 1, 1, 1, 1, 1);
 		for (long i = 1; i <= my nt; i ++)
 			thy z [1] [i] = my t [i];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoPointProcess Matrix_to_PointProcess (Matrix me) {
+PointProcess Matrix_to_PointProcess (Matrix me) {
 	try {
 		autoPointProcess thee = PointProcess_create (my z [1] [1], my z [1] [my nx], my nx);
 		for (long i = 1; i <= my nx; i ++) {
-			PointProcess_addPoint (thee.get(), my z [1] [i]);
+			PointProcess_addPoint (thee.peek(), my z [1] [i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PointProcess.");
 	}
diff --git a/fon/Matrix_and_PointProcess.h b/fon/Matrix_and_PointProcess.h
index b63a63e..f7f12b6 100644
--- a/fon/Matrix_and_PointProcess.h
+++ b/fon/Matrix_and_PointProcess.h
@@ -1,6 +1,6 @@
 /* Matrix_and_PointProcess.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,10 +20,10 @@
 #include "Matrix.h"
 #include "PointProcess.h"
 
-autoMatrix PointProcess_to_Matrix (PointProcess me);
+Matrix PointProcess_to_Matrix (PointProcess me);
 /*
 	Function:
-		create a Matrix from a PointProcess.
+		create a Matrix from a PointProcess; return NULL if out of memory.
 	Postconditions:
 		thy xmin == 1;
 		thy xmax == my numberOfEvents;
@@ -34,10 +34,10 @@ autoMatrix PointProcess_to_Matrix (PointProcess me);
 		for (ievent in 1..my numberOfEvents) thy z [1] [ievent] == my event [ievent];
 */
 
-autoPointProcess Matrix_to_PointProcess (Matrix me);
+PointProcess Matrix_to_PointProcess (Matrix me);
 /*
 	Function:
-		create a PointProcess from a Matrix.
+		create a PointProcess from a Matrix; return NULL if out of memory.
 	Postconditions:
 		thy maximumNumberOfEvents == my nx;
 		thy numberOfEvents == my nx;
diff --git a/fon/Matrix_and_Polygon.cpp b/fon/Matrix_and_Polygon.cpp
index 53b4a14..3c8e21e 100644
--- a/fon/Matrix_and_Polygon.cpp
+++ b/fon/Matrix_and_Polygon.cpp
@@ -1,6 +1,6 @@
 /* Matrix_and_Polygon.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,34 +26,34 @@
 
 #include "Matrix_and_Polygon.h"
 
-autoPolygon Matrix_to_Polygon (Matrix me) {
+Polygon Matrix_to_Polygon (Matrix me) {
 	try {
 		if (my nx != 2 && my ny != 2)
 			Melder_throw (U"Matrix must have exactly 2 rows or columns.");
-		autoPolygon thee;
+		autoPolygon thee = NULL;
 		if (my ny == 2) {
-			thee = Polygon_create (my nx);
+			thee.reset (Polygon_create (my nx));
 			NUMvector_copyElements (my z [1], thy x, 1, my nx);
 			NUMvector_copyElements (my z [2], thy y, 1, my nx);
 		} else {
-			thee = Polygon_create (my ny);
+			thee.reset (Polygon_create (my ny));
 			for (long i = 1; i <= my ny; i ++) {
 				thy x [i] = my z [i] [1];
 				thy y [i] = my z [i] [2];
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Polygon.");
 	}
 }
 
-autoMatrix Polygon_to_Matrix (Polygon me) {
+Matrix Polygon_to_Matrix (Polygon me) {
 	try {
-		autoMatrix thee = Matrix_create (1.0, my numberOfPoints, my numberOfPoints, 1.0, 1.0, 1.0, 2.0, 2, 1.0, 1.0);
+		autoMatrix thee = Matrix_create (1, my numberOfPoints, my numberOfPoints, 1, 1, 1, 2, 2, 1, 1);
 		NUMvector_copyElements (my x, thy z [1], 1, my numberOfPoints);
 		NUMvector_copyElements (my y, thy z [2], 1, my numberOfPoints);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/fon/Matrix_and_Polygon.h b/fon/Matrix_and_Polygon.h
index a4de5b7..2007e1f 100644
--- a/fon/Matrix_and_Polygon.h
+++ b/fon/Matrix_and_Polygon.h
@@ -1,6 +1,6 @@
 /* Matrix_and_Polygon.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,10 +20,10 @@
 #include "Matrix.h"
 #include "Polygon.h"
 
-autoPolygon Matrix_to_Polygon (Matrix me);
+Polygon Matrix_to_Polygon (Matrix me);
 /*
 	Function:
-		create a Polygon from a Matrix.
+		create a Polygon from a Matrix; return NULL in case of failure.
 	Failures:
 		my ny != 2 && my nx != 2;   //  Matrix must have exactly 2 rows or columns.
 		Out of memory.
@@ -38,10 +38,10 @@ autoPolygon Matrix_to_Polygon (Matrix me);
 		}
 */
 
-autoMatrix Polygon_to_Matrix (Polygon me);
+Matrix Polygon_to_Matrix (Polygon me);
 /*
 	Function:
-		create a Matrix from a Polygon.
+		create a Matrix from a Polygon; return NULL if out of memory.
 	Postconditions:
 		thy xmin xmax nx dx x1 == 1 my numberOfPoints my numberOfPoints 1 1;
 		thy ymin ymax ny dy y1 == 1 2 2 1 1;
diff --git a/fon/Movie.cpp b/fon/Movie.cpp
index 18c937a..90879a8 100644
--- a/fon/Movie.cpp
+++ b/fon/Movie.cpp
@@ -1,6 +1,6 @@
 /* Movie.cpp
  *
- * Copyright (C) 2011-2012,2015,2016 Paul Boersma
+ * Copyright (C) 2011-2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -42,7 +42,7 @@ Thing_implement (Movie, Sampled, 0);
 
 void structMovie :: v_info ()
 {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"End time: ", xmax, U" seconds");
 	MelderInfo_writeLine (U"Total duration: ", xmax - xmin, U" seconds");
@@ -53,15 +53,15 @@ void structMovie :: v_info ()
 	MelderInfo_writeLine (U"   First frame centred at: ", x1, U" seconds");
 }
 
-void Movie_init (Movie me, autoSound sound, const char32 *folderName, autoStrings fileNames)
+void Movie_init (Movie me, Sound sound, const char32 *folderName, Strings fileNames)
 {
 	Sampled_init (me, sound -> xmin, sound -> xmax, fileNames ? fileNames -> numberOfStrings : 0, 0.04, 0.0);
-	my d_sound = sound.move();
+	my d_sound = sound;
 	my d_folderName = Melder_dup (folderName);
-	my d_fileNames = fileNames.move();
+	my d_fileNames = fileNames;
 }
 
-autoMovie Movie_openFromSoundFile (MelderFile file)
+Movie Movie_openFromSoundFile (MelderFile file)
 {
 	try {
 		autoMovie me = Thing_new (Movie);
@@ -69,15 +69,15 @@ autoMovie Movie_openFromSoundFile (MelderFile file)
 		autoMelderString fileNameHead;
 		MelderString_copy (& fileNameHead, Melder_fileToPath (file));
 		char32 *extensionLocation = str32rchr (fileNameHead.string, U'.');
-		if (! extensionLocation)
+		if (extensionLocation == NULL)
 			extensionLocation = & fileNameHead.string [fileNameHead.length];
 		*extensionLocation = U'\0';
 		fileNameHead.length = extensionLocation - fileNameHead.string;
 		autoStrings strings = Strings_createAsFileList (Melder_cat (fileNameHead.string, U"*.png"));
 		struct structMelderDir folder;
 		MelderFile_getParentDir (file, & folder);
-		Movie_init (me.get(), sound.move(), Melder_dirToPath (& folder), strings.move());
-		return me;
+		Movie_init (me.peek(), sound.transfer(), Melder_dirToPath (& folder), strings.transfer());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Movie object not read from file ", file, U".");
 	}
@@ -88,7 +88,7 @@ void Movie_paintOneImageInside (Movie me, Graphics graphics, long frameNumber, d
 	try {
 		if (frameNumber < 1) Melder_throw (U"Specified frame number is ", frameNumber, U" but should be at least 1.");
 		if (frameNumber > my nx) Melder_throw (U"Specified frame number is ", frameNumber, U" but there are only ", my nx, U"frames.");
-		Melder_assert (my d_fileNames);
+		Melder_assert (my d_fileNames != 0);
 		Melder_assert (my d_fileNames -> numberOfStrings == my nx);
 		struct structMelderDir folder;
 		Melder_pathToDir (my d_folderName, & folder);
@@ -112,9 +112,10 @@ void Movie_paintOneImage (Movie me, Graphics graphics, long frameNumber, double
 	}
 }
 
-void Movie_play (Movie me, Graphics /* g */, double tmin, double tmax, Sound_PlayCallback callback, Thing boss)
+void Movie_play (Movie me, Graphics g, double tmin, double tmax, int (*callback) (void *closure, int phase, double tmin, double tmax, double t), void *closure)
 {
-	Sound_playPart (my d_sound.get(), tmin, tmax, callback, boss);
+	(void) g;
+	Sound_playPart (my d_sound, tmin, tmax, callback, closure);
 }
 
 /* End of file Movie.cpp */
diff --git a/fon/Movie.h b/fon/Movie.h
index db4df33..e0ae21c 100644
--- a/fon/Movie.h
+++ b/fon/Movie.h
@@ -2,7 +2,7 @@
 #define _Movie_h_
 /* Movie.h
  *
- * Copyright (C) 2011,2014,2015 Paul Boersma
+ * Copyright (C) 2011,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,16 +25,17 @@
 #include "Strings_.h"
 
 #include "Movie_def.h"
+oo_CLASS_CREATE (Movie, Sampled);
 
-autoMovie Movie_openFromSoundFile (MelderFile file);
+Movie Movie_openFromSoundFile (MelderFile file);
 
-void Movie_init (Movie me, autoSound sound, const char32 *folderName, autoStrings fileNames);
+void Movie_init (Movie me, Sound sound, const char32 *folderName, Strings fileNames);
 
 void Movie_paintOneImageInside (Movie me, Graphics graphics, long frameNumber, double xmin, double xmax, double ymin, double ymax);
 
 void Movie_paintOneImage (Movie me, Graphics graphics, long frameNumber, double xmin, double xmax, double ymin, double ymax);
 
-void Movie_play (Movie me, Graphics graphics, double tmin, double tmax, Sound_PlayCallback callback, Thing boss);
+void Movie_play (Movie me, Graphics graphics, double tmin, double tmax, int (*callback) (void *closure, int phase, double tmin, double tmax, double t), void *closure);
 
 /* End of file Movie.h */
 #endif
diff --git a/fon/MovieWindow.cpp b/fon/MovieWindow.cpp
index b1026e8..de590d1 100644
--- a/fon/MovieWindow.cpp
+++ b/fon/MovieWindow.cpp
@@ -1,6 +1,6 @@
 /* MovieWindow.cpp
  *
- * Copyright (C) 2011-2012,2013,2014,2016 Paul Boersma
+ * Copyright (C) 2011-2012,2013,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -53,21 +53,21 @@ void structMovieWindow :: v_draw () {
 	bool showAnalysis = (our p_spectrogram_show || our p_pitch_show || our p_intensity_show || our p_formant_show) && movie -> d_sound;
 	double soundY = _MovieWindow_getSoundBottomPosition (this);
 	if (movie -> d_sound) {
-		Graphics_Viewport viewport = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, soundY, 1.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-		Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		Graphics_Viewport viewport = Graphics_insetViewport (our d_graphics, 0, 1, soundY, 1.0);
+		Graphics_setColour (our d_graphics, Graphics_WHITE);
+		Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+		Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
 		TimeSoundEditor_drawSound (this, -1.0, 1.0);
-		Graphics_flushWs (our d_graphics.get());
-		Graphics_resetViewport (our d_graphics.get(), viewport);
+		Graphics_flushWs (our d_graphics);
+		Graphics_resetViewport (our d_graphics, viewport);
 	}
 	if (true) {
-		Graphics_Viewport viewport = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, 0.0, 0.3);
-		Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-		Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-		Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0.0, 1.0);
+		Graphics_Viewport viewport = Graphics_insetViewport (d_graphics, 0.0, 1.0, 0.0, 0.3);
+		Graphics_setColour (our d_graphics, Graphics_WHITE);
+		Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+		Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+		Graphics_setColour (our d_graphics, Graphics_BLACK);
+		Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, 0.0, 1.0);
 		long firstFrame = Sampled_xToNearestIndex (movie, our d_startWindow);
 		long lastFrame = Sampled_xToNearestIndex (movie, our d_endWindow);
 		if (firstFrame < 1) firstFrame = 1;
@@ -77,23 +77,23 @@ void structMovieWindow :: v_draw () {
 			double timeLeft = time - 0.5 * movie -> dx, timeRight = time + 0.5 * movie -> dx;
 			if (timeLeft < our d_startWindow) timeLeft = our d_startWindow;
 			if (timeRight > our d_endWindow) timeRight = our d_endWindow;
-			Movie_paintOneImageInside (movie, our d_graphics.get(), iframe, timeLeft, timeRight, 0.0, 1.0);
+			Movie_paintOneImageInside (movie, our d_graphics, iframe, timeLeft, timeRight, 0.0, 1.0);
 		}
-		Graphics_flushWs (our d_graphics.get());
-		Graphics_resetViewport (our d_graphics.get(), viewport);
+		Graphics_flushWs (our d_graphics);
+		Graphics_resetViewport (our d_graphics, viewport);
 	}
 	if (showAnalysis) {
-		Graphics_Viewport viewport = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 0.3, soundY);
+		Graphics_Viewport viewport = Graphics_insetViewport (our d_graphics, 0.0, 1.0, 0.3, soundY);
 		our v_draw_analysis ();
-		Graphics_flushWs (our d_graphics.get());
-		Graphics_resetViewport (our d_graphics.get(), viewport);
+		Graphics_flushWs (our d_graphics);
+		Graphics_resetViewport (our d_graphics, viewport);
 		/* Draw pulses. */
 		if (our p_pulses_show) {
-			viewport = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, soundY, 1.0);
+			viewport = Graphics_insetViewport (our d_graphics, 0.0, 1.0, soundY, 1.0);
 			our v_draw_analysis_pulses ();
 			TimeSoundEditor_drawSound (this, -1.0, 1.0);   // second time, partially across the pulses
-			Graphics_flushWs (our d_graphics.get());
-			Graphics_resetViewport (our d_graphics.get(), viewport);
+			Graphics_flushWs (our d_graphics);
+			Graphics_resetViewport (our d_graphics, viewport);
 		}
 	}
 	our v_updateMenuItems_file ();
@@ -101,37 +101,37 @@ void structMovieWindow :: v_draw () {
 
 void structMovieWindow :: v_highlightSelection (double left, double right, double bottom, double top) {
 	if (our p_spectrogram_show)
-		Graphics_highlight (our d_graphics.get(), left, right, 0.3 * bottom + 0.7 * top, top);
+		Graphics_highlight (our d_graphics, left, right, 0.3 * bottom + 0.7 * top, top);
 	else
-		Graphics_highlight (our d_graphics.get(), left, right, 0.7 * bottom + 0.3 * top, top);
+		Graphics_highlight (our d_graphics, left, right, 0.7 * bottom + 0.3 * top, top);
 }
 
 void structMovieWindow :: v_unhighlightSelection (double left, double right, double bottom, double top) {
 	if (our p_spectrogram_show)
-		Graphics_highlight (our d_graphics.get(), left, right, 0.3 * bottom + 0.7 * top, top);
+		Graphics_highlight (our d_graphics, left, right, 0.3 * bottom + 0.7 * top, top);
 	else
-		Graphics_highlight (our d_graphics.get(), left, right, 0.7 * bottom + 0.3 * top, top);
+		Graphics_highlight (our d_graphics, left, right, 0.7 * bottom + 0.3 * top, top);
 }
 
-bool structMovieWindow :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structMovieWindow :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	return our MovieWindow_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 }
 
 void structMovieWindow :: v_play (double tmin, double tmax) {
 	Movie movie = (Movie) data;
-	Movie_play (movie, our d_graphics.get(), tmin, tmax, theFunctionEditor_playCallback, this);
+	Movie_play (movie, our d_graphics, tmin, tmax, theFunctionEditor_playCallback, this);
 }
 
 void MovieWindow_init (MovieWindow me, const char32 *title, Movie movie) {
-	Melder_assert (movie);
-	TimeSoundAnalysisEditor_init (me, title, movie, movie -> d_sound.get(), false);
+	Melder_assert (movie != NULL);
+	TimeSoundAnalysisEditor_init (me, title, movie, movie -> d_sound, false);
 }
 
-autoMovieWindow MovieWindow_create (const char32 *title, Movie movie) {
+MovieWindow MovieWindow_create (const char32 *title, Movie movie) {
 	try {
 		autoMovieWindow me = Thing_new (MovieWindow);
-		MovieWindow_init (me.get(), title, movie);
-		return me;
+		MovieWindow_init (me.peek(), title, movie);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Movie window not created.");
 	}
diff --git a/fon/MovieWindow.h b/fon/MovieWindow.h
index 1612553..5ed20f5 100644
--- a/fon/MovieWindow.h
+++ b/fon/MovieWindow.h
@@ -27,7 +27,7 @@ Thing_define (MovieWindow, TimeSoundAnalysisEditor) {
 		override;
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -41,7 +41,7 @@ Thing_define (MovieWindow, TimeSoundAnalysisEditor) {
 
 void MovieWindow_init (MovieWindow me, const char32 *title, Movie movie);
 
-autoMovieWindow MovieWindow_create (const char32 *title, Movie movie);
+MovieWindow MovieWindow_create (const char32 *title, Movie movie);
 
 /* End of file MovieWindow.h */
 #endif
diff --git a/fon/Movie_def.h b/fon/Movie_def.h
index bc87dcd..a42e907 100644
--- a/fon/Movie_def.h
+++ b/fon/Movie_def.h
@@ -21,9 +21,9 @@
 #define ooSTRUCT Movie
 oo_DEFINE_CLASS (Movie, Sampled)
 
-	oo_AUTO_OBJECT (Sound, 2, d_sound)
+	oo_OBJECT (Sound, 2, d_sound)
 	oo_STRING (d_folderName)
-	oo_AUTO_OBJECT (Strings, 0, d_fileNames)
+	oo_OBJECT (Strings, 0, d_fileNames)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/fon/ParamCurve.cpp b/fon/ParamCurve.cpp
index 287090d..6f17517 100644
--- a/fon/ParamCurve.cpp
+++ b/fon/ParamCurve.cpp
@@ -33,63 +33,63 @@
 Thing_implement (ParamCurve, Function, 2);
 
 void structParamCurve :: v_info () {
-	double xmin = 1e308, xmax = -1e308, ymin = 1e308, ymax = -1e308;
-	for (long i = 1; i <= our x -> nx; i ++) {
-		double value = our x -> z [1] [i];
+	double xmin = 1e300, xmax = -1e300, ymin = 1e300, ymax = -1e300;
+	for (long i = 1; i <= x -> nx; i ++) {
+		double value = x -> z [1] [i];
 		if (value < xmin) xmin = value;
 		if (value > xmax) xmax = value;
 	}
 	for (long i = 1; i <= y -> nx; i ++) {
-		double value = our y -> z [1] [i];
+		double value = y -> z [1] [i];
 		if (value < ymin) ymin = value;
 		if (value > ymax) ymax = value;
 	}
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Domain:");
 	MelderInfo_writeLine (U"   tmin: ", xmin);
 	MelderInfo_writeLine (U"   tmax: ", xmax);
 	MelderInfo_writeLine (U"x sampling:");
-	MelderInfo_writeLine (U"   Number of values of t in x: ", our x -> nx);
-	MelderInfo_writeLine (U"   t step in x: ", our x -> dx, U" (sampling rate ", 1.0 / our x -> dx, U")");
-	MelderInfo_writeLine (U"   First t in x: ", our x -> x1);
+	MelderInfo_writeLine (U"   Number of values of t in x: ", x -> nx);
+	MelderInfo_writeLine (U"   t step in x: ", x -> dx, U" (sampling rate ", 1.0 / x -> dx, U")");
+	MelderInfo_writeLine (U"   First t in x: ", x -> x1);
 	MelderInfo_writeLine (U"x values:");
 	MelderInfo_writeLine (U"   Minimum x: ", xmin);
 	MelderInfo_writeLine (U"   Maximum x: ", xmax);
 	MelderInfo_writeLine (U"y sampling:");
-	MelderInfo_writeLine (U"   Number of values of t in y: ", our y -> nx);
-	MelderInfo_writeLine (U"   t step in y: ", our y -> dx, U" (sampling rate ", 1.0 / our y -> dx, U")");
-	MelderInfo_writeLine (U"   First t in y: ", our y -> x1);
+	MelderInfo_writeLine (U"   Number of values of t in y: ", y -> nx);
+	MelderInfo_writeLine (U"   t step in y: ", y -> dx, U" (sampling rate ", 1.0 / y -> dx, U")");
+	MelderInfo_writeLine (U"   First t in y: ", y -> x1);
 	MelderInfo_writeLine (U"y values:");
 	MelderInfo_writeLine (U"   Minimum y: ", ymin);
 	MelderInfo_writeLine (U"   Maximum y: ", ymax);
 }
 
 void structParamCurve :: v_writeText (MelderFile file) {
-	Data_writeText (our x.get(), file);
-	Data_writeText (our y.get(), file);
+	Data_writeText (x, file);
+	Data_writeText (y, file);
 }
 
 void structParamCurve :: v_readText (MelderReadText text, int formatVersion) {
-	our x = Thing_new (Sound);
-	our y = Thing_new (Sound);
-	Data_readText (our x.get(), text, formatVersion);
-	Data_readText (our y.get(), text, formatVersion);
-	our xmin = our x -> xmin > our y -> xmin ? our x -> xmin : our y -> xmin;
-	our xmax = our x -> xmax < our y -> xmax ? our x -> xmax : our y -> xmax;
+	x = Thing_new (Sound);
+	y = Thing_new (Sound);
+	Data_readText (x, text, formatVersion);
+	Data_readText (y, text, formatVersion);
+	xmin = x -> xmin > y -> xmin ? x -> xmin : y -> xmin;
+	xmax = x -> xmax < y -> xmax ? x -> xmax : y -> xmax;
 }
 
 void structParamCurve :: v_writeBinary (FILE *f) {
-	Data_writeBinary (x.get(), f);
-	Data_writeBinary (y.get(), f);
+	Data_writeBinary (x, f);
+	Data_writeBinary (y, f);
 }
 
 void structParamCurve :: v_readBinary (FILE *f, int /*formatVersion*/) {
-	our x = Thing_new (Sound);
-	our y = Thing_new (Sound);
-	Data_readBinary (our x.get(), f, 2);
-	Data_readBinary (our y.get(), f, 2);
-	our xmin = our x -> xmin > our y -> xmin ? our x -> xmin : our y -> xmin;
-	our xmax = our x -> xmax < our y -> xmax ? our x -> xmax : our y -> xmax;
+	x = Thing_new (Sound);
+	y = Thing_new (Sound);
+	Data_readBinary (x, f, 2);
+	Data_readBinary (y, f, 2);
+	xmin = x -> xmin > y -> xmin ? x -> xmin : y -> xmin;
+	xmax = x -> xmax < y -> xmax ? x -> xmax : y -> xmax;
 }
 
 void ParamCurve_init (ParamCurve me, Sound x, Sound y) {
@@ -101,11 +101,11 @@ void ParamCurve_init (ParamCurve me, Sound x, Sound y) {
 	my xmax = x -> xmax < y -> xmax ? x -> xmax : y -> xmax;
 }
 
-autoParamCurve ParamCurve_create (Sound x, Sound y) {
+ParamCurve ParamCurve_create (Sound x, Sound y) {
 	try {
 		autoParamCurve me = Thing_new (ParamCurve);
-		ParamCurve_init (me.get(), x, y);
-		return me;
+		ParamCurve_init (me.peek(), x, y);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"ParamCurve not created.");
 	}
@@ -122,9 +122,9 @@ void ParamCurve_draw (ParamCurve me, Graphics g, double t1, double t2, double dt
 		t1 = tx1 > ty1 ? tx1 : ty1;
 		t2 = tx2 < ty2 ? tx2 : ty2;
 	}
-	if (x2 <= x1) Matrix_getWindowExtrema (my x.get(), 0, 0, 1, 1, & x1, & x2);
+	if (x2 <= x1) Matrix_getWindowExtrema (my x, 0, 0, 1, 1, & x1, & x2);
 	if (x1 == x2) { x1 -= 1.0; x2 += 1.0; }
-	if (y2 <= y1) Matrix_getWindowExtrema (my y.get(), 0, 0, 1, 1, & y1, & y2);
+	if (y2 <= y1) Matrix_getWindowExtrema (my y, 0, 0, 1, 1, & y1, & y2);
 	if (y1 == y2) { y1 -= 1.0; y2 += 1.0; }
 	if (dt <= 0.0)
 		dt = my x -> dx < my y -> dx ? my x -> dx : my y -> dx;
@@ -134,9 +134,9 @@ void ParamCurve_draw (ParamCurve me, Graphics g, double t1, double t2, double dt
 		autoNUMvector <double> y (1, numberOfPoints);
 		for (long i = 1; i <= numberOfPoints; i ++) {
 			double t = i == numberOfPoints ? t2 : t1 + (i - 1) * dt;
-			double index = Sampled_xToIndex (my x.get(), t);
+			double index = Sampled_xToIndex (my x, t);
 			x [i] = NUM_interpolate_sinc (my x -> z [1], my x -> nx, index, 50);
-			index = Sampled_xToIndex (my y.get(), t);
+			index = Sampled_xToIndex (my y, t);
 			y [i] = NUM_interpolate_sinc (my y -> z [1], my y -> nx, index, 50);
 		}
 		Graphics_setWindow (g, x1, x2, y1, y2);
@@ -146,15 +146,15 @@ void ParamCurve_draw (ParamCurve me, Graphics g, double t1, double t2, double dt
 	}
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
 }
 
 void ParamCurve_swapXY (ParamCurve me) {
-	autoSound help = my x.move();
-	my x = my y.move();
-	my y = help.move();
+	Sound help = my x;
+	my x = my y;
+	my y = help;
 }
 
 /* End of file ParamCurve.cpp */
diff --git a/fon/ParamCurve.h b/fon/ParamCurve.h
index a0755dc..bcf9788 100644
--- a/fon/ParamCurve.h
+++ b/fon/ParamCurve.h
@@ -2,7 +2,7 @@
 #define _ParamCurve_h_
 /* ParamCurve.h
  *
- * Copyright (C) 1992-2011,2012,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,13 +31,15 @@
 #include "Graphics.h"
 
 #include "ParamCurve_def.h"
+oo_CLASS_CREATE (ParamCurve, Function);
 
 void ParamCurve_init (ParamCurve me, Sound x, Sound y);
 
-autoParamCurve ParamCurve_create (Sound x, Sound y);
+ParamCurve ParamCurve_create (Sound x, Sound y);
 /*
 	Return value:
-		a newly created ParamCurve object.
+		a newly created ParamCurve object,
+		or NULL in case of failure.
 	Failures:
 		Out of memory.
 		Domains do not overlap:
@@ -60,6 +62,8 @@ void ParamCurve_draw (ParamCurve me, Graphics g, double t1, double t2, double dt
 		dt <= 0.0: time step is the smaller of my x -> dx and my y -> dx.
 		x2 <= x1: autoscaling along horizontal axis.
 		y2 <= y1: autoscaling along vertical axis.
+	Return value:
+		1 if OK, 0 if out of memory.
 */
 
 void ParamCurve_swapXY (ParamCurve me);
diff --git a/fon/ParamCurve_def.h b/fon/ParamCurve_def.h
index 3baab4a..75a8666 100644
--- a/fon/ParamCurve_def.h
+++ b/fon/ParamCurve_def.h
@@ -21,8 +21,8 @@
 #define ooSTRUCT ParamCurve
 oo_DEFINE_CLASS (ParamCurve, Function)
 
-	oo_AUTO_OBJECT (Sound, 2, x)
-	oo_AUTO_OBJECT (Sound, 2, y)
+	oo_OBJECT (Sound, 2, x)
+	oo_OBJECT (Sound, 2, y)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/fon/Photo.cpp b/fon/Photo.cpp
index 480f020..3e2246e 100644
--- a/fon/Photo.cpp
+++ b/fon/Photo.cpp
@@ -1,6 +1,6 @@
 /* Photo.cpp
  *
- * Copyright (C) 2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2013,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@
 Thing_implement (Photo, SampledXY, 0);
 
 void structPhoto :: v_info () {
-	our structDaata :: v_info ();
+	our structData :: v_info ();
 	MelderInfo_writeLine (U"xmin: ", our xmin);
 	MelderInfo_writeLine (U"xmax: ", our xmax);
 	MelderInfo_writeLine (U"Number of columns: ", our nx);
@@ -76,31 +76,31 @@ void Photo_init (Photo me,
 	my d_transparency = Matrix_create (xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
 }
 
-autoPhoto Photo_create
+Photo Photo_create
 	(double xmin, double xmax, long nx, double dx, double x1,
 	 double ymin, double ymax, long ny, double dy, double y1)
 {
 	try {
 		autoPhoto me = Thing_new (Photo);
-		Photo_init (me.get(), xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
-		return me;
+		Photo_init (me.peek(), xmin, xmax, nx, dx, x1, ymin, ymax, ny, dy, y1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Photo object not created.");
 	}
 }
 
-autoPhoto Photo_createSimple (long numberOfRows, long numberOfColumns) {
+Photo Photo_createSimple (long numberOfRows, long numberOfColumns) {
 	try {
 		autoPhoto me = Thing_new (Photo);
-		Photo_init (me.get(), 0.5, numberOfColumns + 0.5, numberOfColumns, 1, 1,
-							  0.5, numberOfRows    + 0.5, numberOfRows,    1, 1);
-		return me;
+		Photo_init (me.peek(), 0.5, numberOfColumns + 0.5, numberOfColumns, 1, 1,
+		                       0.5, numberOfRows    + 0.5, numberOfRows,    1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Photo object not created.");
 	}
 }
 
-autoPhoto Photo_readFromImageFile (MelderFile file) {
+Photo Photo_readFromImageFile (MelderFile file) {
 	try {
 		#if defined (linux)
 			cairo_surface_t *surface = cairo_image_surface_create_from_png (Melder_peek32to8 (file -> path));
@@ -141,7 +141,7 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 				Melder_throw (U"Unsupported PNG format ", format, U".");
 			}
 			cairo_surface_destroy (surface);
-			return me;
+			return me.transfer();
 		#elif defined (_WIN32)
 			Gdiplus::Bitmap gdiplusBitmap (Melder_peek32toW (file -> path));
 			long width = gdiplusBitmap. GetWidth ();
@@ -159,24 +159,24 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 					my d_transparency -> z [irow] [icol] = 1.0 - (gdiplusColour. GetAlpha ()) / 255.0;
 				}
 			}
-			return me;
+			return me.transfer();
 		#elif defined (macintosh)
-			autoPhoto me;
+			autoPhoto me = NULL;
 			char utf8 [500];
 			Melder_str32To8bitFileRepresentation_inline (file -> path, utf8);
-			CFStringRef path = CFStringCreateWithCString (nullptr, utf8, kCFStringEncodingUTF8);
-			CFURLRef url = CFURLCreateWithFileSystemPath (nullptr, path, kCFURLPOSIXPathStyle, false);
+			CFStringRef path = CFStringCreateWithCString (NULL, utf8, kCFStringEncodingUTF8);
+			CFURLRef url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, false);
 			CFRelease (path);
-			CGImageSourceRef imageSource = CGImageSourceCreateWithURL (url, nullptr);
+			CGImageSourceRef imageSource = CGImageSourceCreateWithURL (url, NULL);
 			CFRelease (url);
-			if (! imageSource)
+			if (imageSource == NULL)
 				Melder_throw (U"Cannot open picture file ", file, U".");
-			CGImageRef image = CGImageSourceCreateImageAtIndex (imageSource, 0, nullptr);
+			CGImageRef image = CGImageSourceCreateImageAtIndex (imageSource, 0, NULL);
 			CFRelease (imageSource);
-			if (image) {
+			if (image != NULL) {
 				long width = CGImageGetWidth (image);
 				long height = CGImageGetHeight (image);
-				me = Photo_createSimple (height, width);
+				me.reset (Photo_createSimple (height, width));
 				long bitsPerPixel = CGImageGetBitsPerPixel (image);
 				long bitsPerComponent = CGImageGetBitsPerComponent (image);
 				long bytesPerRow = CGImageGetBytesPerRow (image);
@@ -205,9 +205,7 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 				CFRelease (data);
 				CGImageRelease (image);
 			}
-			return me;
-		#else
-			return autoPhoto();
+			return me.transfer();
 		#endif
 	} catch (MelderError) {
 		Melder_throw (U"Picture file ", file, U" not opened as Photo.");
@@ -217,7 +215,9 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 #if defined (macintosh)
 	#include <time.h>
 	#include "macport_on.h"
-	static void _mac_releaseDataCallback (void * /* info */, const void *data, size_t /* size */) {
+	static void _mac_releaseDataCallback (void *info, const void *data, size_t size) {
+		(void) info;
+		(void) size;
 		Melder_free (data);
 	}
 #endif
@@ -269,7 +269,7 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 		for (int iencoder = 0; iencoder < numberOfImageEncoders; iencoder ++) {
 			trace (U"Supported MIME type: ", Melder_peekWto32 (imageEncoderInfos [iencoder]. MimeType));
 			if (str32equ (Melder_peekWto32 (imageEncoderInfos [iencoder]. MimeType), mimeType)) {
-				Gdiplus::EncoderParameters *p = nullptr;
+				Gdiplus::EncoderParameters *p = NULL;
 				Gdiplus::EncoderParameters encoderParameters;
 				if (str32equ (mimeType, U"image/jpeg")) {
 					encoderParameters. Count = 1;
@@ -304,24 +304,24 @@ autoPhoto Photo_readFromImageFile (MelderFile file) {
 				* rowAddress ++ = 255 - (uint8) lround (my d_transparency -> z [irow] [icol] * 255.0);
 			}
 		}
-		static CGColorSpaceRef colourSpace = nullptr;
-		if (! colourSpace) {
+		static CGColorSpaceRef colourSpace = NULL;
+		if (colourSpace == NULL) {
 			colourSpace = CGColorSpaceCreateWithName (kCGColorSpaceGenericRGB);   // used to be kCGColorSpaceUserRGB
-			Melder_assert (colourSpace);
+			Melder_assert (colourSpace != NULL);
 		}
-		CGDataProviderRef dataProvider = CGDataProviderCreateWithData (nullptr,
+		CGDataProviderRef dataProvider = CGDataProviderCreateWithData (NULL,
 			imageData,
 			bytesPerRow * numberOfRows,
 			_mac_releaseDataCallback   // needed?
 		);
-		Melder_assert (dataProvider);
+		Melder_assert (dataProvider != NULL);
 		CGImageRef image = CGImageCreate (my nx, numberOfRows,
-			8, 32, bytesPerRow, colourSpace, kCGImageAlphaNone, dataProvider, nullptr, false, kCGRenderingIntentDefault);
+			8, 32, bytesPerRow, colourSpace, kCGImageAlphaNone, dataProvider, NULL, false, kCGRenderingIntentDefault);
 		CGDataProviderRelease (dataProvider);
-		Melder_assert (image);
+		Melder_assert (image != NULL);
 		NSString *path = (NSString *) Melder_peek32toCfstring (Melder_fileToPath (file));
 		CFURLRef url = (CFURLRef) [NSURL   fileURLWithPath: path   isDirectory: NO];
-		CGImageDestinationRef destination = CGImageDestinationCreateWithURL (url, (CFStringRef) which, 1, nullptr);
+		CGImageDestinationRef destination = CGImageDestinationCreateWithURL (url, (CFStringRef) which, 1, NULL);
 		CGImageDestinationAddImage (destination, image, nil);
 
 		if (! CGImageDestinationFinalize (destination)) {
@@ -422,19 +422,27 @@ void Photo_saveAsWindowsIconFile (Photo me, MelderFile file) {
 }
 
 void Photo_replaceRed (Photo me, Matrix red) {
-	my d_red = Data_copy (red);
+	autoMatrix copy = Data_copy (red);
+	forget (my d_red);
+	my d_red = copy.transfer();
 }
 
 void Photo_replaceGreen (Photo me, Matrix green) {
-	my d_green = Data_copy (green);
+	autoMatrix copy = Data_copy (green);
+	forget (my d_green);
+	my d_green = copy.transfer();
 }
 
 void Photo_replaceBlue (Photo me, Matrix blue) {
-	my d_blue = Data_copy (blue);
+	autoMatrix copy = Data_copy (blue);
+	forget (my d_blue);
+	my d_blue = copy.transfer();
 }
 
 void Photo_replaceTransparency (Photo me, Matrix transparency) {
-	my d_transparency = Data_copy (transparency);
+	autoMatrix copy = Data_copy (transparency);
+	forget (my d_transparency);
+	my d_transparency = copy.transfer();
 }
 
 static void _Photo_cellArrayOrImage (Photo me, Graphics g, double xmin, double xmax, double ymin, double ymax, bool interpolate) {
diff --git a/fon/Photo.h b/fon/Photo.h
index de51638..cabb569 100644
--- a/fon/Photo.h
+++ b/fon/Photo.h
@@ -2,7 +2,7 @@
 #define _Photo_h_
 /* Photo.h
  *
- * Copyright (C) 2013,2014,2015 Paul Boersma
+ * Copyright (C) 2013,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,17 +22,18 @@
 #include "Matrix.h"
 
 #include "Photo_def.h"
+oo_CLASS_CREATE (Photo, SampledXY);
 
 void Photo_init (Photo me,
 	double xmin, double xmax, long nx, double dx, double x1,
 	double ymin, double ymax, long ny, double dy, double y1);
 
-autoPhoto Photo_create
+Photo Photo_create
 	(double xmin, double xmax, long nx, double dx, double x1,
 	 double ymin, double ymax, long ny, double dy, double y1);
 /*
 	Function:
-		return a new opaque black Photo.
+		return a new opaque black Photo, or NULL if out of memory.
 	Preconditions:
 		xmin <= xmax;   ymin <= ymax;
 		nx >= 1;  ny >= 1;
@@ -54,10 +55,10 @@ autoPhoto Photo_create
 		result -> d_transparency -> z [1..ny] [1..nx] == 0.0;
 */
 
-autoPhoto Photo_createSimple (long numberOfRows, long numberOfColumns);
+Photo Photo_createSimple (long numberOfRows, long numberOfColumns);
 /*
 	Function:
-		return a new opaque black Photo.
+		return a new opaque black Photo, or NULL if out of memory.
 	Preconditions:
 		numberOfRows >= 1;  numberOfColumns >= 1;
 	Postconditions:
@@ -77,7 +78,7 @@ autoPhoto Photo_createSimple (long numberOfRows, long numberOfColumns);
 		result -> d_transparency -> z [1..ny] [1..nx] == 0.0;
 */
 
-autoPhoto Photo_readFromImageFile (MelderFile file);
+Photo Photo_readFromImageFile (MelderFile file);
 
 double_rgbt Photo_getValueAtXY (Photo me, double x, double y);
 /*
diff --git a/fon/Photo_def.h b/fon/Photo_def.h
index e0a6353..7eb763a 100644
--- a/fon/Photo_def.h
+++ b/fon/Photo_def.h
@@ -21,10 +21,10 @@
 #define ooSTRUCT Photo
 oo_DEFINE_CLASS (Photo, SampledXY)
 
-	oo_AUTO_OBJECT (Matrix, 2, d_red)
-	oo_AUTO_OBJECT (Matrix, 2, d_green)
-	oo_AUTO_OBJECT (Matrix, 2, d_blue)
-	oo_AUTO_OBJECT (Matrix, 2, d_transparency)
+	oo_OBJECT (Matrix, 2, d_red)
+	oo_OBJECT (Matrix, 2, d_green)
+	oo_OBJECT (Matrix, 2, d_blue)
+	oo_OBJECT (Matrix, 2, d_transparency)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/fon/Pitch.cpp b/fon/Pitch.cpp
index 422e611..ab88907 100644
--- a/fon/Pitch.cpp
+++ b/fon/Pitch.cpp
@@ -1,6 +1,6 @@
 /* Pitch.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -153,14 +153,14 @@ bool Pitch_isVoiced_i (Pitch me, long iframe) {
 }
 
 bool Pitch_isVoiced_t (Pitch me, double time) {
-	return NUMdefined (Sampled_getValueAtX (me, time, Pitch_LEVEL_FREQUENCY, kPitch_unit_HERTZ, false));
+	return NUMdefined (Sampled_getValueAtX (me, time, Pitch_LEVEL_FREQUENCY, kPitch_unit_HERTZ, FALSE));
 }
 
-double Pitch_getValueAtTime (Pitch me, double time, int unit, bool interpolate) {
+double Pitch_getValueAtTime (Pitch me, double time, int unit, int interpolate) {
 	return Sampled_getValueAtX (me, time, Pitch_LEVEL_FREQUENCY, unit, interpolate);
 }
 
-double Pitch_getStrengthAtTime (Pitch me, double time, int unit, bool interpolate) {
+double Pitch_getStrengthAtTime (Pitch me, double time, int unit, int interpolate) {
 	return Sampled_getValueAtX (me, time, Pitch_LEVEL_STRENGTH, unit, interpolate);
 }
 
@@ -169,11 +169,11 @@ long Pitch_countVoicedFrames (Pitch me) {
 }
 
 double Pitch_getMean (Pitch me, double tmin, double tmax, int unit) {
-	return Sampled_getMean (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, true);
+	return Sampled_getMean (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, TRUE);
 }
 
 double Pitch_getMeanStrength (Pitch me, double tmin, double tmax, int unit) {
-	return Sampled_getMean (me, tmin, tmax, Pitch_LEVEL_STRENGTH, unit, true);
+	return Sampled_getMean (me, tmin, tmax, Pitch_LEVEL_STRENGTH, unit, TRUE);
 }
 
 double Pitch_getQuantile (Pitch me, double tmin, double tmax, double quantile, int unit) {
@@ -185,76 +185,76 @@ double Pitch_getQuantile (Pitch me, double tmin, double tmax, double quantile, i
 }
 
 double Pitch_getStandardDeviation (Pitch me, double tmin, double tmax, int unit) {
-	return Sampled_getStandardDeviation (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, true);
+	return Sampled_getStandardDeviation (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, TRUE);
 }
 
 #define MEL(f)  NUMhertzToMel (f)
 #define SEMITONES(f)  NUMhertzToSemitones (f)
 #define ERB(f)  NUMhertzToErb (f)
 
-void Pitch_getMaximumAndTime (Pitch me, double tmin, double tmax, int unit, bool interpolate,
+void Pitch_getMaximumAndTime (Pitch me, double tmin, double tmax, int unit, int interpolate,
 	double *return_maximum, double *return_timeOfMaximum)
 {
 	Sampled_getMaximumAndX (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, interpolate, return_maximum, return_timeOfMaximum);
 	if (! doesUnitAllowNegativeValues (unit) && return_maximum && *return_maximum <= 0.0)
 	{
-		*return_maximum = NUMundefined;   // unlikely
+		*return_maximum = NUMundefined;   /* Unlikely. */
 	}
 }
 
-double Pitch_getMaximum (Pitch me, double tmin, double tmax, int unit, bool interpolate) {
+double Pitch_getMaximum (Pitch me, double tmin, double tmax, int unit, int interpolate) {
 	double maximum;
-	Pitch_getMaximumAndTime (me, tmin, tmax, unit, interpolate, & maximum, nullptr);
+	Pitch_getMaximumAndTime (me, tmin, tmax, unit, interpolate, & maximum, NULL);
 	return maximum;
 }
 
-double Pitch_getTimeOfMaximum (Pitch me, double tmin, double tmax, int unit, bool interpolate) {
+double Pitch_getTimeOfMaximum (Pitch me, double tmin, double tmax, int unit, int interpolate) {
 	double time;
-	Pitch_getMaximumAndTime (me, tmin, tmax, unit, interpolate, nullptr, & time);
+	Pitch_getMaximumAndTime (me, tmin, tmax, unit, interpolate, NULL, & time);
 	return time;
 }
 
-void Pitch_getMinimumAndTime (Pitch me, double tmin, double tmax, int unit, bool interpolate,
+void Pitch_getMinimumAndTime (Pitch me, double tmin, double tmax, int unit, int interpolate,
 	double *return_minimum, double *return_timeOfMinimum)
 {
 	Sampled_getMinimumAndX (me, tmin, tmax, Pitch_LEVEL_FREQUENCY, unit, interpolate, return_minimum, return_timeOfMinimum);
 	if (! doesUnitAllowNegativeValues (unit) && return_minimum && *return_minimum <= 0.0)
 	{
-		*return_minimum = NUMundefined;   // not so unlikely
+		*return_minimum = NUMundefined;   /* Not so unlikely. */
 	}
 }
 
-double Pitch_getMinimum (Pitch me, double tmin, double tmax, int unit, bool interpolate) {
+double Pitch_getMinimum (Pitch me, double tmin, double tmax, int unit, int interpolate) {
 	double minimum;
-	Pitch_getMinimumAndTime (me, tmin, tmax, unit, interpolate, & minimum, nullptr);
+	Pitch_getMinimumAndTime (me, tmin, tmax, unit, interpolate, & minimum, NULL);
 	return minimum;
 }
 
-double Pitch_getTimeOfMinimum (Pitch me, double tmin, double tmax, int unit, bool interpolate) {
+double Pitch_getTimeOfMinimum (Pitch me, double tmin, double tmax, int unit, int interpolate) {
 	double time;
-	Pitch_getMinimumAndTime (me, tmin, tmax, unit, interpolate, nullptr, & time);
+	Pitch_getMinimumAndTime (me, tmin, tmax, unit, interpolate, NULL, & time);
 	return time;
 }
 
 static long Pitch_getMeanAbsoluteSlope (Pitch me,
 	double *out_hertz, double *out_mel, double *out_semitones, double *out_erb, double *out_withoutOctaveJumps)
 {
-	long firstVoicedFrame = 0, lastVoicedFrame = 0, nVoiced = 0;
+	long firstVoicedFrame = 0, lastVoicedFrame = 0, nVoiced = 0, i;
 	autoNUMvector <double> frequencies (1, my nx);
-	for (long i = 1; i <= my nx; i ++) {
+	for (i = 1; i <= my nx; i ++) {
 		double frequency = my frame [i]. candidate [1]. frequency;
 		frequencies [i] = frequency > 0.0 && frequency < my ceiling ? frequency : 0.0;
 		if (frequencies [i] != 0.0) nVoiced ++;
 	}
-	for (long i = 1; i <= my nx; i ++)   // look for first voiced frame
+	for (i = 1; i <= my nx; i ++)   // look for first voiced frame
 		if (frequencies [i] != 0.0) { firstVoicedFrame = i; break; }
-	for (long i = my nx; i >= 1; i --)   // look for last voiced frame
+	for (i = my nx; i >= 1; i --)   // look for last voiced frame
 		if (frequencies [i] != 0.0) { lastVoicedFrame = i; break; }
 	if (nVoiced > 1) {
 		int ilast = firstVoicedFrame;
 		double span = (lastVoicedFrame - firstVoicedFrame) * my dx, flast = frequencies [ilast];
-		double slopeHz = 0.0, slopeMel = 0.0, slopeSemitones = 0.0, slopeErb = 0.0, slopeRobust = 0.0;
-		for (long i = firstVoicedFrame + 1; i <= lastVoicedFrame; i ++) if (frequencies [i] != 0.0) {
+		double slopeHz = 0, slopeMel = 0, slopeSemitones = 0, slopeErb = 0, slopeRobust = 0;
+		for (i = firstVoicedFrame + 1; i <= lastVoicedFrame; i ++) if (frequencies [i] != 0.0) {
 			double localStepSemitones = fabs (SEMITONES (frequencies [i]) - SEMITONES (flast));
 			slopeHz += fabs (frequencies [i] - flast);
 			slopeMel += fabs (MEL (frequencies [i]) - MEL (flast));
@@ -282,29 +282,29 @@ static long Pitch_getMeanAbsoluteSlope (Pitch me,
 }
 
 long Pitch_getMeanAbsSlope_hertz (Pitch me, double *slope) {
-	return Pitch_getMeanAbsoluteSlope (me, slope, nullptr, nullptr, nullptr, nullptr);
+	return Pitch_getMeanAbsoluteSlope (me, slope, NULL, NULL, NULL, NULL);
 }
 
 long Pitch_getMeanAbsSlope_mel (Pitch me, double *slope) {
-	return Pitch_getMeanAbsoluteSlope (me, nullptr, slope, nullptr, nullptr, nullptr);
+	return Pitch_getMeanAbsoluteSlope (me, NULL, slope, NULL, NULL, NULL);
 }
 
 long Pitch_getMeanAbsSlope_semitones (Pitch me, double *slope) {
-	return Pitch_getMeanAbsoluteSlope (me, nullptr, nullptr, slope, nullptr, nullptr);
+	return Pitch_getMeanAbsoluteSlope (me, NULL, NULL, slope, NULL, NULL);
 }
 
 long Pitch_getMeanAbsSlope_erb (Pitch me, double *slope) {
-	return Pitch_getMeanAbsoluteSlope (me, nullptr, nullptr, nullptr, slope, nullptr);
+	return Pitch_getMeanAbsoluteSlope (me, NULL, NULL, NULL, slope, NULL);
 }
 
 long Pitch_getMeanAbsSlope_noOctave (Pitch me, double *slope) {
-	return Pitch_getMeanAbsoluteSlope (me, nullptr, nullptr, nullptr, nullptr, slope);
+	return Pitch_getMeanAbsoluteSlope (me, NULL, NULL, NULL, NULL, slope);
 }
 
 void structPitch :: v_info () {
 	long nVoiced;
 	autoNUMvector <double> frequencies (Sampled_getSortedValues (this, Pitch_LEVEL_FREQUENCY, kPitch_unit_HERTZ, & nVoiced), 1);
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -345,8 +345,8 @@ void structPitch :: v_info () {
 		}
 	}
 	if (nVoiced >= 1) {   // extrema, range, mean and standard deviation
-		double minimum = Pitch_getMinimum (this, xmin, xmax, kPitch_unit_HERTZ, false);
-		double maximum = Pitch_getMaximum (this, xmin, xmax, kPitch_unit_HERTZ, false);
+		double minimum = Pitch_getMinimum (this, xmin, xmax, kPitch_unit_HERTZ, FALSE);
+		double maximum = Pitch_getMaximum (this, xmin, xmax, kPitch_unit_HERTZ, FALSE);
 		double meanHertz, meanMel, meanSemitones, meanErb;
 		MelderInfo_write (U"\nMinimum ", Melder_single (minimum), U" Hz = ", Melder_single (MEL (minimum)), U" Mel = ");
 		MelderInfo_writeLine (Melder_single (SEMITONES (minimum)), U" semitones above 100 Hz = ", Melder_single (ERB (minimum)), U" ERB");
@@ -391,12 +391,12 @@ void Pitch_Frame_init (Pitch_Frame me, int nCandidates) {
 	my nCandidates = nCandidates;
 }
 
-autoPitch Pitch_create (double tmin, double tmax, long nt, double dt, double t1,
+Pitch Pitch_create (double tmin, double tmax, long nt, double dt, double t1,
 	double ceiling, int maxnCandidates)
 {
 	try {
 		autoPitch me = Thing_new (Pitch);
-		Sampled_init (me.get(), tmin, tmax, nt, dt, t1);
+		Sampled_init (me.peek(), tmin, tmax, nt, dt, t1);
 		my ceiling = ceiling;
 		my maxnCandidates = maxnCandidates;
 		my frame = NUMvector <structPitch_Frame> (1, nt);
@@ -406,7 +406,7 @@ autoPitch Pitch_create (double tmin, double tmax, long nt, double dt, double t1,
 			Pitch_Frame_init (& my frame [it], 1);
 		}
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Pitch not created.");
 	}
@@ -594,7 +594,7 @@ void Pitch_draw (Pitch me, Graphics g, double tmin, double tmax, double fmin, do
 		Graphics_drawInnerBox (g);
 		Graphics_textBottom (g, true, U"Time (s)");
 		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, Melder_cat (U"Pitch (", Function_getUnitText (me, Pitch_LEVEL_FREQUENCY, unit, Function_UNIT_TEXT_GRAPHICAL), U")"));
+		Graphics_textLeft (g, TRUE, Melder_cat (U"Pitch (", Function_getUnitText (me, Pitch_LEVEL_FREQUENCY, unit, Function_UNIT_TEXT_GRAPHICAL), U")"));
 		if (Function_isUnitLogarithmic (me, Pitch_LEVEL_FREQUENCY, unit)) {
 			Graphics_marksLeftLogarithmic (g, 6, true, true, false);
 		} else {
@@ -647,7 +647,7 @@ void Pitch_difference (Pitch me, Pitch thee) {
 	MelderInfo_close ();
 }
 
-autoPitch Pitch_killOctaveJumps (Pitch me) {
+Pitch Pitch_killOctaveJumps (Pitch me) {
 	try {
 		autoPitch thee = Pitch_create (my xmin, my xmax, my nx, my dx, my x1, my ceiling, 2);
 		long nVoiced = 0, nUp = 0;
@@ -665,7 +665,7 @@ autoPitch Pitch_killOctaveJumps (Pitch me) {
 				lastFrequency = thy frame [i]. candidate [1]. frequency = f;
 			}
 		}
-		thy ceiling *= 2.0;   // make room for some octave jumps
+		thy ceiling *= 2;   /* Make room for some octave jumps. */
 		while (nUp > nVoiced / 2) {
 			for (long i = 1; i <= thy nx; i ++)
 				thy frame [i]. candidate [1]. frequency *= 0.5;
@@ -676,13 +676,13 @@ autoPitch Pitch_killOctaveJumps (Pitch me) {
 				thy frame [i]. candidate [1]. frequency *= 2.0;
 			nUp += nVoiced;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": octave jumps not killed.");
 	}
 }
 
-autoPitch Pitch_interpolate (Pitch me) {
+Pitch Pitch_interpolate (Pitch me) {
 	try {
 		autoPitch thee = Pitch_create (my xmin, my xmax, my nx, my dx, my x1, my ceiling, 2);
 		for (long i = 1; i <= my nx; i ++) {
@@ -706,13 +706,13 @@ autoPitch Pitch_interpolate (Pitch me) {
 						((i - left) * fright + (right - i) * fleft) / (right - left);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not interpolated.");
 	}
 }
 
-autoPitch Pitch_subtractLinearFit (Pitch me, int unit) {
+Pitch Pitch_subtractLinearFit (Pitch me, int unit) {
 	try {
 		autoPitch thee = Pitch_interpolate (me);
 		/*
@@ -720,17 +720,17 @@ autoPitch Pitch_subtractLinearFit (Pitch me, int unit) {
 		 */
 		long imin = thy nx + 1, imax = 0;
 		for (long i = 1; i <= my nx; i ++)
-			if (Pitch_isVoiced_i (thee.get(), i)) { imin = i; break; }
+			if (Pitch_isVoiced_i (thee.peek(), i)) { imin = i; break; }
 		for (long i = imin + 1; i <= my nx; i ++)
-			if (! Pitch_isVoiced_i (thee.get(), i)) { imax = i - 1; break; }
+			if (! Pitch_isVoiced_i (thee.peek(), i)) { imax = i - 1; break; }
 		long n = imax - imin + 1;
-		if (n < 3) return thee;
+		if (n < 3) return thee.transfer();
 		/*
 		 * Compute average pitch and time.
 		 */
 		double sum = 0.0;
 		for (long i = imin; i <= imax; i ++) {
-			sum += Sampled_getValueAtSample (thee.get(), i, Pitch_LEVEL_FREQUENCY, unit);
+			sum += Sampled_getValueAtSample (thee.peek(), i, Pitch_LEVEL_FREQUENCY, unit);
 		}
 		double fmean = sum / n;
 		double tmean = thy x1 + (0.5 * (imin + imax) - 1) * thy dx;
@@ -740,7 +740,7 @@ autoPitch Pitch_subtractLinearFit (Pitch me, int unit) {
 		double numerator = 0.0, denominator = 0.0;
 		for (long i = imin; i <= imax; i ++) {
 			double t = thy x1 + (i - 1) * thy dx - tmean;
-			double f = Sampled_getValueAtSample (thee.get(), i, Pitch_LEVEL_FREQUENCY, unit) - fmean;
+			double f = Sampled_getValueAtSample (thee.peek(), i, Pitch_LEVEL_FREQUENCY, unit) - fmean;
 			numerator += f * t;
 			denominator += t * t;
 		}
@@ -751,23 +751,23 @@ autoPitch Pitch_subtractLinearFit (Pitch me, int unit) {
 		for (long i = imin; i <= imax; i ++) {
 			Pitch_Frame myFrame = & my frame [i], thyFrame = & thy frame [i];
 			double t = thy x1 + (i - 1) * thy dx - tmean, myFreq = FREQUENCY (myFrame);
-			double f = Sampled_getValueAtSample (thee.get(), i, Pitch_LEVEL_FREQUENCY, unit);
+			double f = Sampled_getValueAtSample (thee.peek(), i, Pitch_LEVEL_FREQUENCY, unit);
 			f -= slope * t;
 			if (NOT_VOICED (myFreq))
 				FREQUENCY (thyFrame) = 0.0;
 			else
 				FREQUENCY (thyFrame) = Function_convertSpecialToStandardUnit (me, f, Pitch_LEVEL_FREQUENCY, unit);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": linear fit not subtracted.");
 	}
 }
 
-autoPitch Pitch_smooth (Pitch me, double bandWidth) {
+Pitch Pitch_smooth (Pitch me, double bandWidth) {
 	try {
 		autoPitch interp = Pitch_interpolate (me);
-		autoMatrix matrix1 = Pitch_to_Matrix (interp.get());
+		autoMatrix matrix1 = Pitch_to_Matrix (interp.peek());
 		autoSound sound1 = Sound_create (1, 2 * matrix1->xmin - matrix1->xmax, 2 * matrix1->xmax - matrix1->xmin,
 			3 * matrix1->nx, matrix1->dx, matrix1->x1 - 2 * matrix1->nx * matrix1->dx);
 
@@ -792,23 +792,23 @@ autoPitch Pitch_smooth (Pitch me, double bandWidth) {
 			sound1 -> z [1] [i] = fextrap;
 
 		/* Smooth. */
-		autoSpectrum spectrum = Sound_to_Spectrum (sound1.get(), true);
+		autoSpectrum spectrum = Sound_to_Spectrum (sound1.peek(), TRUE);
 		for (long i = 1; i <= spectrum -> nx; i ++) {
 			double f = (i - 1) * spectrum -> dx, fT = f / bandWidth, factor = exp (- fT * fT);
 			spectrum -> z [1] [i] *= factor;
 			spectrum -> z [2] [i] *= factor;
 		}
-		autoSound sound2 = Spectrum_to_Sound (spectrum.get());
+		autoSound sound2 = Spectrum_to_Sound (spectrum.peek());
 
-		autoMatrix matrix2 = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1.0, 1.0, 1, 1.0, 1.0);
+		autoMatrix matrix2 = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, 1, 1, 1, 1, 1);
 		for (long i = 1; i <= my nx; i ++) {
 			double originalF0 = my frame [i]. candidate [1]. frequency;
 			matrix2 -> z [1] [i] = originalF0 > 0.0 && originalF0 < my ceiling ?
 				sound2 -> z [1] [i + matrix2 -> nx] : 0.0;
 		}
-		autoPitch thee = Matrix_to_Pitch (matrix2.get());
+		autoPitch thee = Matrix_to_Pitch (matrix2.peek());
 		thy ceiling = my ceiling;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not smoothed.");
 	}
diff --git a/fon/Pitch.h b/fon/Pitch.h
index dcbc9ce..44a3d97 100644
--- a/fon/Pitch.h
+++ b/fon/Pitch.h
@@ -2,7 +2,7 @@
 #define _Pitch_h_
 /* Pitch.h
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,17 +21,18 @@
 
 #include "Sampled.h"
 #include "Graphics.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "Pitch_enums.h"
 
 #include "Pitch_def.h"
+oo_CLASS_CREATE (Pitch, Sampled);
 
-autoPitch Pitch_create (double tmin, double tmax, long nt, double dt, double t1,
+Pitch Pitch_create (double tmin, double tmax, long nt, double dt, double t1,
 	double ceiling, int maxnCandidates);
 /*
 	Function:
-		create an empty pitch contour (voiceless).
+		create an empty pitch contour (voiceless), or NULL if out of memory.
 	Preconditions:
 		tmax > tmin;
 		nt >= 1;
@@ -75,8 +76,8 @@ bool Pitch_isVoiced_i (Pitch me, long index);
 
 bool Pitch_isVoiced_t (Pitch me, double t);
 /*
-	Are you voiced at time `t`?
-	The answer is `true` iff `t` lies within a voiced frame.
+	Are you voiced at time 't'?
+	The answer is TRUE iff 't' lies within a voiced frame.
 */
 
 #define Pitch_LEVEL_FREQUENCY  1
@@ -91,8 +92,8 @@ bool Pitch_isVoiced_t (Pitch me, double t);
 #define Pitch_NEAREST  0
 #define Pitch_LINEAR  1
 
-double Pitch_getValueAtTime (Pitch me, double time, int unit, bool interpolate);
-double Pitch_getStrengthAtTime (Pitch me, double time, int unit, bool interpolate);
+double Pitch_getValueAtTime (Pitch me, double time, int unit, int interpolate);
+double Pitch_getStrengthAtTime (Pitch me, double time, int unit, int interpolate);
 
 long Pitch_countVoicedFrames (Pitch me);
 
@@ -100,14 +101,14 @@ double Pitch_getMean (Pitch me, double tmin, double tmax, int unit);
 double Pitch_getMeanStrength (Pitch me, double tmin, double tmax, int unit);
 double Pitch_getQuantile (Pitch me, double tmin, double tmax, double quantile, int unit);
 double Pitch_getStandardDeviation (Pitch me, double tmin, double tmax, int unit);
-void Pitch_getMaximumAndTime (Pitch me, double tmin, double tmax, int unit, bool interpolate,
+void Pitch_getMaximumAndTime (Pitch me, double tmin, double tmax, int unit, int interpolate,
 	double *return_maximum, double *return_timeOfMaximum);
-double Pitch_getMaximum (Pitch me, double tmin, double tmax, int unit, bool interpolate);
-double Pitch_getTimeOfMaximum (Pitch me, double tmin, double tmax, int unit, bool interpolate);
-void Pitch_getMinimumAndTime (Pitch me, double tmin, double tmax, int unit, bool interpolate,
+double Pitch_getMaximum (Pitch me, double tmin, double tmax, int unit, int interpolate);
+double Pitch_getTimeOfMaximum (Pitch me, double tmin, double tmax, int unit, int interpolate);
+void Pitch_getMinimumAndTime (Pitch me, double tmin, double tmax, int unit, int interpolate,
 	double *return_minimum, double *return_timeOfMinimum);
-double Pitch_getMinimum (Pitch me, double tmin, double tmax, int unit, bool interpolate);
-double Pitch_getTimeOfMinimum (Pitch me, double tmin, double tmax, int unit, bool interpolate);
+double Pitch_getMinimum (Pitch me, double tmin, double tmax, int unit, int interpolate);
+double Pitch_getTimeOfMinimum (Pitch me, double tmin, double tmax, int unit, int interpolate);
 
 int Pitch_getMaxnCandidates (Pitch me);
 /*
@@ -150,10 +151,10 @@ long Pitch_getMeanAbsSlope_noOctave (Pitch me, double *slope);
    'value', 'minimum', 'maximum', and 'mean' are valid if nVoiced >= 1;
    'variance' and 'slope' are valid if nVoiced >= 2.
    Invalid variables are always set to 0.0.
-   'minimum', 'maximum', 'mean', and 'variance' may be null.
+   'minimum', 'maximum', 'mean', and 'variance' may be NULL.
 */
 
-autoPitch Pitch_killOctaveJumps (Pitch me);
+Pitch Pitch_killOctaveJumps (Pitch me);
 /* Add octave jumps so that every pitch step,
    including those across unvoiced frames,
    does not exceed 1/2 octave.
@@ -161,13 +162,13 @@ autoPitch Pitch_killOctaveJumps (Pitch me);
       result -> ceiling = my ceiling * 2;
 */
 
-autoPitch Pitch_interpolate (Pitch me);
+Pitch Pitch_interpolate (Pitch me);
 /* Interpolate the pitch values of unvoiced frames. */
 /* No extrapolation beyond first and last voiced frames. */
 
-autoPitch Pitch_subtractLinearFit (Pitch me, int unit);
+Pitch Pitch_subtractLinearFit (Pitch me, int unit);
 
-autoPitch Pitch_smooth (Pitch me, double bandWidth);
+Pitch Pitch_smooth (Pitch me, double bandWidth);
 /* Smoothing by convolution with Gaussian curve.
    Time domain: exp (- (pi t bandWidth) ^ 2)
       down to 8.5 % for t = +- 0.5/bandWidth
diff --git a/fon/PitchEditor.cpp b/fon/PitchEditor.cpp
index c4ad3f1..ba584d5 100644
--- a/fon/PitchEditor.cpp
+++ b/fon/PitchEditor.cpp
@@ -1,6 +1,6 @@
 /* PitchEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,9 +29,10 @@ Thing_implement (PitchEditor, FunctionEditor, 0);
 
 /********** MENU COMMANDS **********/
 
-static void menu_cb_setCeiling (PitchEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Change ceiling", nullptr)
-		POSITIVE (U"Ceiling (Hz)", U"600.0")
+static void menu_cb_setCeiling (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
+	EDITOR_FORM (U"Change ceiling", 0)
+		POSITIVE (U"Ceiling (Hz)", U"600")
 	EDITOR_OK
 		Pitch pitch = (Pitch) my data;
 		SET_REAL (U"Ceiling", pitch -> ceiling)
@@ -44,15 +45,16 @@ static void menu_cb_setCeiling (PitchEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_pathFinder (PitchEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Path finder", nullptr)
+static void menu_cb_pathFinder (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
+	EDITOR_FORM (U"Path finder", 0)
 		REAL (U"Silence threshold", U"0.03")
 		REAL (U"Voicing threshold", U"0.45")
 		REAL (U"Octave cost", U"0.01")
 		REAL (U"Octave-jump cost", U"0.35")
 		REAL (U"Voiced/unvoiced cost", U"0.14")
-		POSITIVE (U"Ceiling (Hz)", U"600.0")
-		BOOLEAN (U"Pull formants", false)
+		POSITIVE (U"Ceiling (Hz)", U"600")
+		BOOLEAN (U"Pull formants", 0)
 	EDITOR_OK
 		Pitch pitch = (Pitch) my data;
 		SET_REAL (U"Ceiling", pitch -> ceiling)
@@ -68,7 +70,8 @@ static void menu_cb_pathFinder (PitchEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_getPitch (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getPitch (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	if (my d_startSelection == my d_endSelection) {
 		Melder_informationReal (Pitch_getValueAtTime ((Pitch) my data, my d_startSelection, kPitch_unit_HERTZ, 1), U"Hz");
 	} else {
@@ -76,7 +79,8 @@ static void menu_cb_getPitch (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_octaveUp (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_octaveUp (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	Pitch pitch = (Pitch) my data;
 	Editor_save (me, U"Octave up");
 	Pitch_step (pitch, 2.0, 0.1, my d_startSelection, my d_endSelection);
@@ -84,7 +88,8 @@ static void menu_cb_octaveUp (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_fifthUp (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_fifthUp (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	Pitch pitch = (Pitch) my data;
 	Editor_save (me, U"Fifth up");
 	Pitch_step (pitch, 1.5, 0.1, my d_startSelection, my d_endSelection);
@@ -92,7 +97,8 @@ static void menu_cb_fifthUp (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_fifthDown (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_fifthDown (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	Pitch pitch = (Pitch) my data;
 	Editor_save (me, U"Fifth down");
 	Pitch_step (pitch, 1 / 1.5, 0.1, my d_startSelection, my d_endSelection);
@@ -100,7 +106,8 @@ static void menu_cb_fifthDown (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_octaveDown (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_octaveDown (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	Pitch pitch = (Pitch) my data;
 	Editor_save (me, U"Octave down");
 	Pitch_step (pitch, 0.5, 0.1, my d_startSelection, my d_endSelection);
@@ -108,7 +115,8 @@ static void menu_cb_octaveDown (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_voiceless (PitchEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_voiceless (EDITOR_ARGS) {
+	EDITOR_IAM (PitchEditor);
 	Pitch pitch = (Pitch) my data;
 	long ileft = Sampled_xToHighIndex (pitch, my d_startSelection);
 	long iright = Sampled_xToLowIndex (pitch, my d_endSelection);
@@ -129,8 +137,8 @@ static void menu_cb_voiceless (PitchEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_PitchEditorHelp (PitchEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"PitchEditor"); }
-static void menu_cb_PitchHelp (PitchEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Pitch"); }
+static void menu_cb_PitchEditorHelp (EDITOR_ARGS) { EDITOR_IAM (PitchEditor); Melder_help (U"PitchEditor"); }
+static void menu_cb_PitchHelp (EDITOR_ARGS) { EDITOR_IAM (PitchEditor); Melder_help (U"Pitch"); }
 
 void structPitchEditor :: v_createMenus () {
 	PitchEditor_Parent :: v_createMenus ();
@@ -138,12 +146,12 @@ void structPitchEditor :: v_createMenus () {
 	Editor_addCommand (this, U"Edit", U"Change ceiling...", 0, menu_cb_setCeiling);
 	Editor_addCommand (this, U"Edit", U"Path finder...", 0, menu_cb_pathFinder);
 
-	Editor_addCommand (this, U"Query", U"-- pitch --", 0, nullptr);
+	Editor_addCommand (this, U"Query", U"-- pitch --", 0, NULL);
 	Editor_addCommand (this, U"Query", U"Get pitch", GuiMenu_F5, menu_cb_getPitch);
 
 	Editor_addMenu (this, U"Selection", 0);
 	Editor_addCommand (this, U"Selection", U"Unvoice", 0, menu_cb_voiceless);
-	Editor_addCommand (this, U"Selection", U"-- up and down --", 0, nullptr);
+	Editor_addCommand (this, U"Selection", U"-- up and down --", 0, NULL);
 	Editor_addCommand (this, U"Selection", U"Octave up", 0, menu_cb_octaveUp);
 	Editor_addCommand (this, U"Selection", U"Fifth up", 0, menu_cb_fifthUp);
 	Editor_addCommand (this, U"Selection", U"Fifth down", 0, menu_cb_fifthDown);
@@ -163,14 +171,14 @@ void structPitchEditor :: v_draw () {
 	long it, it1, it2;
 	double dyUnv, dyIntens;
 
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
+	Graphics_rectangle (our d_graphics, 0, 1, 0, 1);
 
-	dyUnv = Graphics_dyMMtoWC (our d_graphics.get(), HEIGHT_UNV);
-	dyIntens = Graphics_dyMMtoWC (our d_graphics.get(), HEIGHT_INTENS);
+	dyUnv = Graphics_dyMMtoWC (our d_graphics, HEIGHT_UNV);
+	dyIntens = Graphics_dyMMtoWC (our d_graphics, HEIGHT_INTENS);
 
 	Sampled_getWindowSamples (pitch, our d_startWindow, our d_endWindow, & it1, & it2);
 
@@ -187,32 +195,32 @@ void structPitchEditor :: v_draw () {
 			50;
 		double radius;
 		Graphics_Viewport previous;
-		previous = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, dyUnv, 1.0 - dyIntens);
-		Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0.0, pitch -> ceiling);
-		radius = Graphics_dxMMtoWC (our d_graphics.get(), RADIUS);
+		previous = Graphics_insetViewport (our d_graphics, 0, 1, dyUnv, 1 - dyIntens);
+		Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, 0, pitch -> ceiling);
+		radius = Graphics_dxMMtoWC (our d_graphics, RADIUS);
 
 		/* Horizontal hair at current pitch. */
 
 		if (our d_startSelection == our d_endSelection && our d_startSelection >= our d_startWindow && our d_startSelection <= our d_endWindow) {
 			double f = Pitch_getValueAtTime (pitch, our d_startSelection, kPitch_unit_HERTZ, Pitch_LINEAR);
 			if (NUMdefined (f)) {
-				Graphics_setColour (our d_graphics.get(), Graphics_RED);
-				Graphics_line (our d_graphics.get(), our d_startWindow - radius, f, our d_endWindow, f);
-				Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-				Graphics_text (our d_graphics.get(), our d_startWindow - radius, f, Melder_fixed (f, 2));
+				Graphics_setColour (our d_graphics, Graphics_RED);
+				Graphics_line (our d_graphics, our d_startWindow - radius, f, our d_endWindow, f);
+				Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+				Graphics_text (our d_graphics, our d_startWindow - radius, f, Melder_fixed (f, 2));
 			}
 		}
 
 		/* Horizontal scaling lines. */
 
-		Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
-		Graphics_setLineType (our d_graphics.get(), Graphics_DOTTED);
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_HALF);
+		Graphics_setColour (our d_graphics, Graphics_BLUE);
+		Graphics_setLineType (our d_graphics, Graphics_DOTTED);
+		Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_HALF);
 		for (long f = df; f <= pitch -> ceiling; f += df) {
-			Graphics_line (our d_graphics.get(), our d_startWindow, f, our d_endWindow, f);
-			Graphics_text (our d_graphics.get(), our d_endWindow + 0.5 * radius, f,   f, U" Hz");
+			Graphics_line (our d_graphics, our d_startWindow, f, our d_endWindow, f);
+			Graphics_text (our d_graphics, our d_endWindow + radius/2, f,   f, U" Hz");
 		}
-		Graphics_setLineType (our d_graphics.get(), Graphics_DRAWN);
+		Graphics_setLineType (our d_graphics, Graphics_DRAWN);
 
 		/* Show candidates. */
 
@@ -221,41 +229,41 @@ void structPitchEditor :: v_draw () {
 			double t = Sampled_indexToX (pitch, it);
 			double f = frame -> candidate [1]. frequency;
 			if (f > 0.0 && f < pitch -> ceiling) {
-				Graphics_setColour (our d_graphics.get(), Graphics_MAGENTA);
-				Graphics_fillCircle_mm (our d_graphics.get(), t, f, RADIUS * 2.0);
+				Graphics_setColour (our d_graphics, Graphics_MAGENTA);
+				Graphics_fillCircle_mm (our d_graphics, t, f, RADIUS * 2);
 			}
-			Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-			Graphics_setTextAlignment (our d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
+			Graphics_setColour (our d_graphics, Graphics_BLACK);
+			Graphics_setTextAlignment (our d_graphics, Graphics_CENTRE, Graphics_HALF);
 			for (int icand = 1; icand <= frame -> nCandidates; icand ++) {
 				int strength = (int) floor (10 * frame -> candidate [icand]. strength + 0.5);
 				f = frame -> candidate [icand]. frequency;
 				if (strength > 9) strength = 9;
-				if (f > 0 && f <= pitch -> ceiling) Graphics_text (our d_graphics.get(), t, f, strength);
+				if (f > 0 && f <= pitch -> ceiling) Graphics_text (our d_graphics, t, f, strength);
 			}
 		}
-		Graphics_resetViewport (our d_graphics.get(), previous);
+		Graphics_resetViewport (our d_graphics, previous);
 	}
 
 	/*
 	 * Show intensity.
 	 */
 	{
-		Graphics_Viewport previous = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 1.0 - dyIntens, 1.0);
-		Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0.0, 1.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), our d_startWindow, 0.5, U"intens");
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), our d_endWindow, 0.5, U"intens");
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
+		Graphics_Viewport previous = Graphics_insetViewport (our d_graphics, 0, 1, 1 - dyIntens, 1);
+		Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, 0, 1);
+		Graphics_setColour (our d_graphics, Graphics_BLACK);
+		Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+		Graphics_text (our d_graphics, our d_startWindow, 0.5, U"intens");
+		Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_HALF);
+		Graphics_text (our d_graphics, our d_endWindow, 0.5, U"intens");
+		Graphics_setTextAlignment (our d_graphics, Graphics_CENTRE, Graphics_HALF);
 		for (it = it1; it <= it2; it ++) {
 			Pitch_Frame frame = & pitch -> frame [it];
 			double t = Sampled_indexToX (pitch, it);
-			long strength = lround (10 * frame -> intensity + 0.5);   // map 0.0-1.0 to 0-9
+			int strength = (int) floor (10 * frame -> intensity + 0.5);   // map 0.0-1.0 to 0-9
 			if (strength > 9) strength = 9;
-			Graphics_text (our d_graphics.get(), t, 0.5,   strength);
+			Graphics_text (our d_graphics, t, 0.5, strength);
 		}
-		Graphics_resetViewport (our d_graphics.get(), previous);
+		Graphics_resetViewport (our d_graphics, previous);
 	}
 
 	if (it1 > 1) it1 -= 1;
@@ -265,13 +273,13 @@ void structPitchEditor :: v_draw () {
 	 * Show voicelessness.
 	 */
 	{
-		Graphics_Viewport previous = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 0.0, dyUnv);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
-		Graphics_line (our d_graphics.get(), our d_startWindow, 1.0, our d_endWindow, 1.0);
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), our d_startWindow, 0.5, U"Unv");
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), our d_endWindow, 0.5, U"Unv");
+		Graphics_Viewport previous = Graphics_insetViewport (our d_graphics, 0, 1, 0, dyUnv);
+		Graphics_setColour (our d_graphics, Graphics_BLUE);
+		Graphics_line (our d_graphics, our d_startWindow, 1, our d_endWindow, 1);
+		Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+		Graphics_text (our d_graphics, our d_startWindow, 0.5, U"Unv");
+		Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_HALF);
+		Graphics_text (our d_graphics, our d_endWindow, 0.5, U"Unv");
 		for (it = it1; it <= it2; it ++) {
 			Pitch_Frame frame = & pitch -> frame [it];
 			double t = Sampled_indexToX (pitch, it), tleft = t - 0.5 * pitch -> dx, tright = t + 0.5 * pitch -> dx;
@@ -279,10 +287,10 @@ void structPitchEditor :: v_draw () {
 			if ((f > 0.0 && f < pitch -> ceiling) || tright <= our d_startWindow || tleft >= our d_endWindow) continue;
 			if (tleft < our d_startWindow) tleft = our d_startWindow;
 			if (tright > our d_endWindow) tright = our d_endWindow;
-			Graphics_fillRectangle (our d_graphics.get(), tleft, tright, 0.0, 1.0);
+			Graphics_fillRectangle (our d_graphics, tleft, tright, 0, 1);
 		}
-		Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-		Graphics_resetViewport (our d_graphics.get(), previous);
+		Graphics_setColour (our d_graphics, Graphics_BLACK);
+		Graphics_resetViewport (our d_graphics, previous);
 	}
 }
 
@@ -290,10 +298,10 @@ void structPitchEditor :: v_play (double a_tmin, double a_tmax) {
 	Pitch_hum ((Pitch) our data, a_tmin, a_tmax);
 }
 
-bool structPitchEditor :: v_click (double xWC, double yWC, bool dummy) {
+int structPitchEditor :: v_click (double xWC, double yWC, bool dummy) {
 	Pitch pitch = (Pitch) our data;
-	double dyUnv = Graphics_dyMMtoWC (d_graphics.get(), HEIGHT_UNV);
-	double dyIntens = Graphics_dyMMtoWC (d_graphics.get(), HEIGHT_INTENS);
+	double dyUnv = Graphics_dyMMtoWC (d_graphics, HEIGHT_UNV);
+	double dyIntens = Graphics_dyMMtoWC (d_graphics, HEIGHT_INTENS);
 	double frequency = (yWC - dyUnv) / (1 - dyIntens - dyUnv) * pitch -> ceiling, tmid;
 	double minimumDf = 1e30;
 	int cand, bestCandidate = -1;
@@ -316,7 +324,7 @@ bool structPitchEditor :: v_click (double xWC, double yWC, bool dummy) {
 	if (bestCandidate != -1) {
 		double bestFrequency = bestFrame -> candidate [bestCandidate]. frequency;
 		double distanceWC = (frequency - bestFrequency) / pitch -> ceiling * (1 - dyIntens - dyUnv);
-		double dx_mm = Graphics_dxWCtoMM (our d_graphics.get(), xWC - tmid), dy_mm = Graphics_dyWCtoMM (our d_graphics.get(), distanceWC);
+		double dx_mm = Graphics_dxWCtoMM (our d_graphics, xWC - tmid), dy_mm = Graphics_dyWCtoMM (our d_graphics, distanceWC);
 		if (bestFrequency < pitch -> ceiling &&   // above ceiling: ignore
 		    ((bestFrequency <= 0.0 && fabs (xWC - tmid) <= 0.5 * pitch -> dx && frequency <= 0.0) ||   // voiceless: click within frame
 		     (bestFrequency > 0.0 && dx_mm * dx_mm + dy_mm * dy_mm <= RADIUS * RADIUS)))   // voiced: click within circle
@@ -328,7 +336,7 @@ bool structPitchEditor :: v_click (double xWC, double yWC, bool dummy) {
 			FunctionEditor_redraw (this);
 			Editor_broadcastDataChanged (this);
 			our d_startSelection = our d_endSelection = tmid;   // cursor will snap to candidate
-			return FunctionEditor_UPDATE_NEEDED;
+			return 1;
 		} else {
 			return PitchEditor_Parent :: v_click (xWC, yWC, dummy);   // move cursor or drag selection
 		}
@@ -336,11 +344,11 @@ bool structPitchEditor :: v_click (double xWC, double yWC, bool dummy) {
 	return PitchEditor_Parent :: v_click (xWC, yWC, dummy);   // move cursor or drag selection
 }
 
-autoPitchEditor PitchEditor_create (const char32 *title, Pitch pitch) {
+PitchEditor PitchEditor_create (const char32 *title, Pitch pitch) {
 	try {
 		autoPitchEditor me = Thing_new (PitchEditor);
-		FunctionEditor_init (me.get(), title, pitch);
-		return me;
+		FunctionEditor_init (me.peek(), title, pitch);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Pitch window not created.");
 	}
diff --git a/fon/PitchEditor.h b/fon/PitchEditor.h
index 18a9fb4..32da594 100644
--- a/fon/PitchEditor.h
+++ b/fon/PitchEditor.h
@@ -31,11 +31,11 @@ Thing_define (PitchEditor, FunctionEditor) {
 		override;
 	void v_play (double tmin, double tmax)
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 };
 
-autoPitchEditor PitchEditor_create (const char32 *title, Pitch pitch);
+PitchEditor PitchEditor_create (const char32 *title, Pitch pitch);
 
 /* End of file PitchEditor.h */
 #endif
diff --git a/fon/PitchTier.cpp b/fon/PitchTier.cpp
index a1069b0..0f530c8 100644
--- a/fon/PitchTier.cpp
+++ b/fon/PitchTier.cpp
@@ -1,6 +1,6 @@
 /* PitchTier.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,21 +23,21 @@
 Thing_implement (PitchTier, RealTier, 0);
 
 void structPitchTier :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
 	MelderInfo_writeLine (U"   Total duration: ", xmax - xmin, U" seconds");
-	MelderInfo_writeLine (U"Number of points: ", points.size);
+	MelderInfo_writeLine (U"Number of points: ", points -> size);
 	MelderInfo_writeLine (U"Minimum pitch value: ", RealTier_getMinimumValue (this), U" Hz");
 	MelderInfo_writeLine (U"Maximum pitch value: ", RealTier_getMaximumValue (this), U" Hz");
 }
 
-autoPitchTier PitchTier_create (double tmin, double tmax) {
+PitchTier PitchTier_create (double tmin, double tmax) {
 	try {
 		autoPitchTier me = Thing_new (PitchTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PitchTier not created.");
 	}
@@ -49,10 +49,9 @@ void PitchTier_draw (PitchTier me, Graphics g, double tmin, double tmax,
 	RealTier_draw (me, g, tmin, tmax, fmin, fmax, garnish, method, U"Frequency (Hz)");
 }
 
-autoPitchTier PointProcess_upto_PitchTier (PointProcess me, double frequency) {
+PitchTier PointProcess_upto_PitchTier (PointProcess me, double frequency) {
 	try {
-		autoPitchTier thee = PointProcess_upto_RealTier (me, frequency, classPitchTier).static_cast_move<structPitchTier>();
-		return thee;
+		return (PitchTier) PointProcess_upto_RealTier (me, frequency, classPitchTier);
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PitchTier.");
 	}
@@ -62,11 +61,11 @@ void PitchTier_stylize (PitchTier me, double frequencyResolution, int useSemiton
 	double dfmin;
 	for (;;) {
 		long i, imin = 0;
-		dfmin = 1e308;
-		for (i = 2; i <= my points.size - 1; i ++) {
-			RealPoint pm = my points.at [i];
-			RealPoint pl = my points.at [i - 1];
-			RealPoint pr = my points.at [i + 1];
+		dfmin = 1e300;
+		for (i = 2; i <= my points -> size - 1; i ++) {
+			RealPoint pm = (RealPoint) my points -> item [i];
+			RealPoint pl = (RealPoint) my points -> item [i - 1];
+			RealPoint pr = (RealPoint) my points -> item [i + 1];
 			double expectedFrequency = pl -> value + (pr -> value - pl -> value) /
 				 (pr -> number - pl -> number) * (pm -> number - pl -> number);
 			double df = useSemitones ?
@@ -78,16 +77,16 @@ void PitchTier_stylize (PitchTier me, double frequencyResolution, int useSemiton
 			}
 		}
 		if (imin == 0 || dfmin > frequencyResolution) break;
-		my points. removeItem (imin);
+		Collection_removeItem (my points, imin);
 	}
 }
 
-static void PitchTier_writeToSpreadsheetFile (PitchTier me, MelderFile file, bool hasHeader) {
+static void PitchTier_writeToSpreadsheetFile (PitchTier me, MelderFile file, int hasHeader) {
 	autofile f = Melder_fopen (file, "w");
 	if (hasHeader)
-		fprintf (f, "\"ooTextFile\"\n\"PitchTier\"\n%.17g %.17g %ld\n", my xmin, my xmax, my points.size);
-	for (long i = 1; i <= my points.size; i ++) {
-		RealPoint point = my points.at [i];
+		fprintf (f, "\"ooTextFile\"\n\"PitchTier\"\n%.17g %.17g %ld\n", my xmin, my xmax, my points -> size);
+	for (long i = 1; i <= my points -> size; i ++) {
+		RealPoint point = (RealPoint) my points -> item [i];
 		fprintf (f, "%.17g\t%.17g\n", point -> number, point -> value);
 	}
 	f.close (file);
@@ -95,7 +94,7 @@ static void PitchTier_writeToSpreadsheetFile (PitchTier me, MelderFile file, boo
 
 void PitchTier_writeToPitchTierSpreadsheetFile (PitchTier me, MelderFile file) {
 	try {
-		PitchTier_writeToSpreadsheetFile (me, file, true);
+		PitchTier_writeToSpreadsheetFile (me, file, TRUE);
 	} catch (MelderError) {
 		Melder_throw (me, U" not written to tab-separated PitchTier file.");
 	}
@@ -103,7 +102,7 @@ void PitchTier_writeToPitchTierSpreadsheetFile (PitchTier me, MelderFile file) {
 
 void PitchTier_writeToHeaderlessSpreadsheetFile (PitchTier me, MelderFile file) {
 	try {
-		PitchTier_writeToSpreadsheetFile (me, file, false);
+		PitchTier_writeToSpreadsheetFile (me, file, FALSE);
 	} catch (MelderError) {
 		Melder_throw (me, U" not written to tab-separated table file.");
 	}
@@ -111,8 +110,8 @@ void PitchTier_writeToHeaderlessSpreadsheetFile (PitchTier me, MelderFile file)
 
 void PitchTier_shiftFrequencies (PitchTier me, double tmin, double tmax, double shift, int unit) {
 	try {
-		for (long i = 1; i <= my points.size; i ++) {
-			RealPoint point = my points.at [i];
+		for (long i = 1; i <= my points -> size; i ++) {
+			RealPoint point = (RealPoint) my points -> item [i];
 			double frequency = point -> value;
 			if (point -> number < tmin || point -> number > tmax) continue;
 			switch (unit) {
@@ -145,8 +144,8 @@ void PitchTier_shiftFrequencies (PitchTier me, double tmin, double tmax, double
 
 void PitchTier_multiplyFrequencies (PitchTier me, double tmin, double tmax, double factor) {
 	Melder_assert (factor > 0.0);
-	for (long i = 1; i <= my points.size; i ++) {
-		RealPoint point = my points.at [i];
+	for (long i = 1; i <= my points -> size; i ++) {
+		RealPoint point = (RealPoint) my points -> item [i];
 		if (point -> number < tmin || point -> number > tmax) continue;
 		point -> value *= factor;
 	}
diff --git a/fon/PitchTier.h b/fon/PitchTier.h
index a7b5f69..eae4df2 100644
--- a/fon/PitchTier.h
+++ b/fon/PitchTier.h
@@ -32,12 +32,12 @@ Thing_define (PitchTier, RealTier) {
 		override { return MelderQuantity_TIME_SECONDS; }
 };
 
-autoPitchTier PitchTier_create (double tmin, double tmax);
+PitchTier PitchTier_create (double tmin, double tmax);
 /*
 	Postconditions:
 		result -> xmin == tmin;
 		result -> xmax == tmax;
-		result -> points.size == 0;
+		result -> points -> size == 0;
 */
 
 void PitchTier_shiftFrequencies (PitchTier me, double tmin, double tmax, double shift, int units);
@@ -46,7 +46,7 @@ void PitchTier_multiplyFrequencies (PitchTier me, double tmin, double tmax, doub
 void PitchTier_draw (PitchTier me, Graphics g, double tmin, double tmax,
 	double fmin, double fmax, int garnish, const char32 *method);
 
-autoPitchTier PointProcess_upto_PitchTier (PointProcess me, double frequency);
+PitchTier PointProcess_upto_PitchTier (PointProcess me, double frequency);
 void PitchTier_stylize (PitchTier me, double frequencyResolution, int useSemitones);
 
 void PitchTier_writeToPitchTierSpreadsheetFile (PitchTier me, MelderFile file);
diff --git a/fon/PitchTierEditor.cpp b/fon/PitchTierEditor.cpp
index 8e623f1..6ac7460 100644
--- a/fon/PitchTierEditor.cpp
+++ b/fon/PitchTierEditor.cpp
@@ -1,6 +1,6 @@
 /* PitchTierEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,20152016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@
 
 Thing_implement (PitchTierEditor, RealTierEditor, 0);
 
-static void menu_cb_PitchTierEditorHelp (PitchTierEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"PitchTierEditor"); }
-static void menu_cb_PitchTierHelp (PitchTierEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"PitchTier"); }
+static void menu_cb_PitchTierEditorHelp (EDITOR_ARGS) { EDITOR_IAM (PitchTierEditor); Melder_help (U"PitchTierEditor"); }
+static void menu_cb_PitchTierHelp (EDITOR_ARGS) { EDITOR_IAM (PitchTierEditor); Melder_help (U"PitchTier"); }
 
 void structPitchTierEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	PitchTierEditor_Parent :: v_createHelpMenuItems (menu);
@@ -36,15 +36,15 @@ void structPitchTierEditor :: v_play (double a_tmin, double a_tmax) {
 	if (d_sound.data) {
 		Sound_playPart (d_sound.data, a_tmin, a_tmax, theFunctionEditor_playCallback, this);
 	} else {
-		PitchTier_playPart ((PitchTier) data, a_tmin, a_tmax, false);
+		PitchTier_playPart ((PitchTier) data, a_tmin, a_tmax, FALSE);
 	}
 }
 
-autoPitchTierEditor PitchTierEditor_create (const char32 *title, PitchTier pitch, Sound sound, bool ownSound) {
+PitchTierEditor PitchTierEditor_create (const char32 *title, PitchTier pitch, Sound sound, bool ownSound) {
 	try {
 		autoPitchTierEditor me = Thing_new (PitchTierEditor);
-		RealTierEditor_init (me.get(), title, pitch, sound, ownSound);
-		return me;
+		RealTierEditor_init (me.peek(), title, (RealTier) pitch, sound, ownSound);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PitchTier window not created.");
 	}
diff --git a/fon/PitchTierEditor.h b/fon/PitchTierEditor.h
index 21fffe2..c81bb57 100644
--- a/fon/PitchTierEditor.h
+++ b/fon/PitchTierEditor.h
@@ -56,9 +56,9 @@ Thing_define (PitchTierEditor, RealTierEditor) {
 		override { return U"Maximum frequency"; }
 };
 
-autoPitchTierEditor PitchTierEditor_create (const char32 *title,
+PitchTierEditor PitchTierEditor_create (const char32 *title,
 	PitchTier pitch,
-	Sound sound,   // may be null
+	Sound sound,   // may be NULL
 	bool ownSound);
 
 /* End of file PitchTierEditor.h */
diff --git a/fon/PitchTier_to_PointProcess.cpp b/fon/PitchTier_to_PointProcess.cpp
index 42b891c..2bf7caf 100644
--- a/fon/PitchTier_to_PointProcess.cpp
+++ b/fon/PitchTier_to_PointProcess.cpp
@@ -1,6 +1,6 @@
 /* PitchTier_to_PointProcess.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,23 +17,29 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2007/08/12 wchar
+ * pb 2011/06/05
+ */
+
 #include "PitchTier_to_PointProcess.h"
 #include "Pitch_to_PitchTier.h"
 
-autoPointProcess PitchTier_to_PointProcess (PitchTier me) {
+PointProcess PitchTier_to_PointProcess (PitchTier me) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 1000);
 		double area = 0.5;   // imagine an event half a period before the beginning
-		long size = my points.size;
-		if (size == 0) return thee;
+		long size = my points -> size;
+		if (size == 0) return thee.transfer();
 		for (long interval = 0; interval <= size; interval ++) {
-			double t1 = ( interval == 0 ? my xmin : my points.at [interval] -> number );
+			double t1 = interval == 0 ? my xmin : ((RealPoint) my points -> item [interval]) -> number;
 			Melder_assert (NUMdefined (t1));
-			double t2 = ( interval == size ? my xmax : my points.at [interval + 1] -> number );
+			double t2 = interval == size ? my xmax : ((RealPoint) my points -> item [interval + 1]) -> number;
 			Melder_assert (NUMdefined (t2));
-			double f1 = my points.at [interval == 0 ? 1 : interval] -> value;
+			double f1 = ((RealPoint) my points -> item [interval == 0 ? 1 : interval]) -> value;
 			Melder_assert (NUMdefined (f1));
-			double f2 = my points.at [interval == size ? size : interval + 1] -> value;
+			double f2 = ((RealPoint) my points -> item [interval == size ? size : interval + 1]) -> value;
 			Melder_assert (NUMdefined (f2));
 			area += (t2 - t1) * 0.5 * (f1 + f2);
 			while (area >= 1.0) {
@@ -41,16 +47,16 @@ autoPointProcess PitchTier_to_PointProcess (PitchTier me) {
 				area -= 1.0;
 				discriminant = f2 * f2 - 2.0 * area * slope;
 				if (discriminant < 0.0) discriminant = 0.0;   // catch rounding errors
-				PointProcess_addPoint (thee.get(), t2 - 2.0 * area / (f2 + sqrt (discriminant)));
+				PointProcess_addPoint (thee.peek(), t2 - 2.0 * area / (f2 + sqrt (discriminant)));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PointProcess.");
 	}
 }
 
-autoPointProcess PitchTier_Pitch_to_PointProcess (PitchTier me, Pitch vuv) {
+PointProcess PitchTier_Pitch_to_PointProcess (PitchTier me, Pitch vuv) {
 	try {
 		autoPointProcess fullPoint = PitchTier_to_PointProcess (me);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, fullPoint -> maxnt);
@@ -60,10 +66,10 @@ autoPointProcess PitchTier_Pitch_to_PointProcess (PitchTier me, Pitch vuv) {
 		for (long i = 1; i <= fullPoint -> nt; i ++) {
 			double t = fullPoint -> t [i];
 			if (Pitch_isVoiced_t (vuv, t)) {
-				PointProcess_addPoint (thee.get(), t);
+				PointProcess_addPoint (thee.peek(), t);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", vuv, U": not converted to PointProcess.");
 	}
@@ -81,7 +87,7 @@ static int PointProcess_isVoiced_t (PointProcess me, double t, double maxT) {
 	return 0;
 }
 
-autoPointProcess PitchTier_Point_to_PointProcess (PitchTier me, PointProcess vuv, double maxT) {
+PointProcess PitchTier_Point_to_PointProcess (PitchTier me, PointProcess vuv, double maxT) {
 	try {
 		autoPointProcess fullPoint = PitchTier_to_PointProcess (me);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, fullPoint -> maxnt);
@@ -91,62 +97,62 @@ autoPointProcess PitchTier_Point_to_PointProcess (PitchTier me, PointProcess vuv
 		for (long i = 1; i <= fullPoint -> nt; i ++) {
 			double t = fullPoint -> t [i];
 			if (PointProcess_isVoiced_t (vuv, t, maxT)) {
-				PointProcess_addPoint (thee.get(), t);
+				PointProcess_addPoint (thee.peek(), t);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", vuv, U": not converted to PointProcess.");
 	}
 }
 
-autoPitchTier PointProcess_to_PitchTier (PointProcess me, double maximumInterval) {
+PitchTier PointProcess_to_PitchTier (PointProcess me, double maximumInterval) {
 	try {
 		autoPitchTier thee = PitchTier_create (my xmin, my xmax);
 		for (long i = 1; i < my nt; i ++) {
 			double interval = my t [i + 1] - my t [i];
 			if (interval <= maximumInterval) {
-				RealTier_addPoint (thee.get(), my t [i] + 0.5 * interval, 1.0 / interval);
+				RealTier_addPoint (thee.peek(), my t [i] + 0.5 * interval, 1.0 / interval);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PitchTier.");
 	}
 }
 
-autoPitchTier Pitch_PointProcess_to_PitchTier (Pitch me, PointProcess pp) {
+PitchTier Pitch_PointProcess_to_PitchTier (Pitch me, PointProcess pp) {
 	try {
 		autoPitchTier temp = Pitch_to_PitchTier (me);
-		autoPitchTier thee = PitchTier_PointProcess_to_PitchTier (temp.get(), pp);
-		return thee;
+		autoPitchTier thee = PitchTier_PointProcess_to_PitchTier (temp.peek(), pp);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", pp, U": not converted to PitchTier.");
 	}
 }
 
-autoPitchTier PitchTier_PointProcess_to_PitchTier (PitchTier me, PointProcess pp) {
+PitchTier PitchTier_PointProcess_to_PitchTier (PitchTier me, PointProcess pp) {
 	try {
-		if (my points.size == 0) Melder_throw (U"No pitch points.");
+		if (my points -> size == 0) Melder_throw (U"No pitch points.");
 		autoPitchTier thee = PitchTier_create (pp -> xmin, pp -> xmax);
 		for (long i = 1; i <= pp -> nt; i ++) {
 			double time = pp -> t [i];
 			double value = RealTier_getValueAtTime (me, time);
-			RealTier_addPoint (thee.get(), time, value);
+			RealTier_addPoint (thee.peek(), time, value);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", pp, U": not converted to PitchTier.");
 	}
 }
 
-autoTableOfReal PitchTier_downto_TableOfReal (PitchTier me, int useSemitones) {
+TableOfReal PitchTier_downto_TableOfReal (PitchTier me, int useSemitones) {
 	try {
 		autoTableOfReal thee = RealTier_downto_TableOfReal (me, U"Time", U"F0");
 		if (useSemitones)
 			for (long i = 1; i <= thy numberOfRows; i ++)
 				thy data [i] [2] = NUMhertzToSemitones (thy data [i] [2]);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
diff --git a/fon/PitchTier_to_PointProcess.h b/fon/PitchTier_to_PointProcess.h
index 3bb5355..d1a4c91 100644
--- a/fon/PitchTier_to_PointProcess.h
+++ b/fon/PitchTier_to_PointProcess.h
@@ -1,6 +1,6 @@
 /* PitchTier_to_PointProcess.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,20 +21,20 @@
 #include "PointProcess.h"
 #include "Pitch.h"
 
-autoPointProcess PitchTier_to_PointProcess (PitchTier me);
+PointProcess PitchTier_to_PointProcess (PitchTier me);
 
-autoPointProcess PitchTier_Pitch_to_PointProcess (PitchTier me, Pitch vuv);
+PointProcess PitchTier_Pitch_to_PointProcess (PitchTier me, Pitch vuv);
 /* Keeps only the parts that are voiced according to 'vuv'. */
 /* Voiced means: inside voiced frame of 'pitch'. */
 
-autoPointProcess PitchTier_Point_to_PointProcess (PitchTier me, PointProcess vuv, double maxT);
+PointProcess PitchTier_Point_to_PointProcess (PitchTier me, PointProcess vuv, double maxT);
 /* Keeps only the parts that are voiced according to 'vuv'. */
 /* Voiced means: within an interval no longer than 'maxT', */
 /* or within half an adjacent short-enough interval from any pulse. */
 
-autoPitchTier PointProcess_to_PitchTier (PointProcess me, double maximumInterval);
-autoPitchTier Pitch_PointProcess_to_PitchTier (Pitch me, PointProcess pp);
-autoPitchTier PitchTier_PointProcess_to_PitchTier (PitchTier me, PointProcess pp);
-autoTableOfReal PitchTier_downto_TableOfReal (PitchTier me, int useSemitones);
+PitchTier PointProcess_to_PitchTier (PointProcess me, double maximumInterval);
+PitchTier Pitch_PointProcess_to_PitchTier (Pitch me, PointProcess pp);
+PitchTier PitchTier_PointProcess_to_PitchTier (PitchTier me, PointProcess pp);
+TableOfReal PitchTier_downto_TableOfReal (PitchTier me, int useSemitones);
 
 /* End of file PitchTier_to_PointProcess.h */
diff --git a/fon/PitchTier_to_Sound.cpp b/fon/PitchTier_to_Sound.cpp
index 634af3d..cf2db95 100644
--- a/fon/PitchTier_to_Sound.cpp
+++ b/fon/PitchTier_to_Sound.cpp
@@ -1,6 +1,6 @@
 /* PitchTier_to_Sound.cpp
  *
- * Copyright (C) 1992-2011,2016 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,68 +17,77 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2004/10/03 sine wave generation
+ * pb 2005/07/08 PitchTier_to_Sound_phonation
+ * pb 2006/12/30 new Sound_create API
+ * pb 2007/02/25 changed default sampling frequency to 44100 Hz
+ * pb 2008/01/19 double
+ * pb 2011/06/05 C++
+ */
+
 #include "PitchTier_to_Sound.h"
 #include "PitchTier_to_PointProcess.h"
 #include "PointProcess_and_Sound.h"
 
-autoSound PitchTier_to_Sound_pulseTrain (PitchTier me, double samplingFrequency,
-	 double adaptFactor, double adaptTime, long interpolationDepth, bool hum)
+Sound PitchTier_to_Sound_pulseTrain (PitchTier me, double samplingFrequency,
+	 double adaptFactor, double adaptTime, long interpolationDepth, int hum)
 {
-	static double formant [1 + 6] = { 0.0, 600.0, 1400.0, 2400.0, 3400.0, 4500.0, 5500.0 };
-	static double bandwidth [1 + 6] = { 0.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0 };
+	static double formant [1 + 6] = { 0, 600, 1400, 2400, 3400, 4500, 5500 };
+	static double bandwidth [1 + 6] = { 0, 50, 100, 200, 300, 400, 500 };
 	try {
 		autoPointProcess point = PitchTier_to_PointProcess (me);
-		autoSound sound = PointProcess_to_Sound_pulseTrain (point.get(), samplingFrequency, adaptFactor, adaptTime, interpolationDepth);
+		autoSound sound = PointProcess_to_Sound_pulseTrain (point.peek(), samplingFrequency, adaptFactor, adaptTime, interpolationDepth);
 		if (hum) {
-			Sound_filterWithFormants (sound.get(), 0.0, 0.0, 6, formant, bandwidth);
+			Sound_filterWithFormants (sound.peek(), 0, 0, 6, formant, bandwidth);
 		}
-		return sound;
+		return sound.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (pulse train).");
 	}
 }
 
-autoSound PitchTier_to_Sound_phonation (PitchTier me, double samplingFrequency,
-	 double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2, bool hum)
+Sound PitchTier_to_Sound_phonation (PitchTier me, double samplingFrequency,
+	 double adaptFactor, double maximumPeriod, double openPhase, double collisionPhase, double power1, double power2, int hum)
 {
-	static double formant [1 + 6] = { 0.0, 600.0, 1400.0, 2400.0, 3400.0, 4500.0, 5500.0 };
-	static double bandwidth [1 + 6] = { 0.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0 };
+	static double formant [1 + 6] = { 0, 600, 1400, 2400, 3400, 4500, 5500 };
+	static double bandwidth [1 + 6] = { 0, 50, 100, 200, 300, 400, 500 };
 	try {
 		autoPointProcess point = PitchTier_to_PointProcess (me);
-		autoSound sound = PointProcess_to_Sound_phonation (point.get(), samplingFrequency, adaptFactor,
+		autoSound sound = PointProcess_to_Sound_phonation (point.peek(), samplingFrequency, adaptFactor,
 			maximumPeriod, openPhase, collisionPhase, power1, power2);
 		if (hum) {
-			Sound_filterWithFormants (sound.get(), 0.0, 0.0, 6, formant, bandwidth);
+			Sound_filterWithFormants (sound.peek(), 0, 0, 6, formant, bandwidth);
 		}
-		return sound;
+		return sound.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (phonation).");
 	}
 }
 
-void PitchTier_playPart (PitchTier me, double tmin, double tmax, bool hum) {
+void PitchTier_playPart (PitchTier me, double tmin, double tmax, int hum) {
 	try {
 		autoSound sound = PitchTier_to_Sound_pulseTrain (me, 44100.0, 0.7, 0.05, 30, hum);
-		Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+		Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
 }
 
 void PitchTier_play (PitchTier me) {
-	PitchTier_playPart (me, my xmin, my xmax, false);
+	PitchTier_playPart (me, my xmin, my xmax, FALSE);
 }
 
 void PitchTier_hum (PitchTier me) {
-	PitchTier_playPart (me, my xmin, my xmax, true);
+	PitchTier_playPart (me, my xmin, my xmax, TRUE);
 }
 
-autoSound PitchTier_to_Sound_sine (PitchTier me, double tmin, double tmax, double samplingFrequency) {
+Sound PitchTier_to_Sound_sine (PitchTier me, double tmin, double tmax, double samplingFrequency) {
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;
 		long numberOfSamples = 1 + (long) floor ((my xmax - my xmin) * samplingFrequency);   // >= 1
 		double samplingPeriod = 1.0 / samplingFrequency;
-		double tmid = (tmin + tmax) / 2.0;
+		double tmid = (tmin + tmax) / 2;
 		double t1 = tmid - 0.5 * (numberOfSamples - 1) * samplingPeriod;
 		autoSound thee = Sound_create (1, tmin, tmax, numberOfSamples, samplingPeriod, t1);
 		double phase = 0.0;
@@ -88,7 +97,7 @@ autoSound PitchTier_to_Sound_sine (PitchTier me, double tmin, double tmax, doubl
 			phase += fleft * thy dx;
 			thy z [1] [isamp] = 0.5 * sin (2.0 * NUMpi * phase);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (sine).");
 	}
@@ -98,7 +107,7 @@ void PitchTier_playPart_sine (PitchTier me, double tmin, double tmax) {
 	try {
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindowing
 		autoSound sound = PitchTier_to_Sound_sine (me, tmin, tmax, 44100.0);
-		Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+		Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
diff --git a/fon/PitchTier_to_Sound.h b/fon/PitchTier_to_Sound.h
index 237c332..9c17bab 100644
--- a/fon/PitchTier_to_Sound.h
+++ b/fon/PitchTier_to_Sound.h
@@ -1,6 +1,6 @@
 /* PitchTier_to_Sound.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,18 +20,18 @@
 #include "PitchTier.h"
 #include "Sound.h"
 
-autoSound PitchTier_to_Sound_pulseTrain (PitchTier me, double samplingFrequency,
+Sound PitchTier_to_Sound_pulseTrain (PitchTier me, double samplingFrequency,
 	 double adaptFactor, double adaptTime, long interpolationDepth,
-	 bool hum);
-autoSound PitchTier_to_Sound_phonation (PitchTier me, double samplingFrequency,
+	 int hum);
+Sound PitchTier_to_Sound_phonation (PitchTier me, double samplingFrequency,
 	 double adaptFactor, double maximumPeriod,
 	 double openPhase, double collisionPhase, double power1, double power2,
-	 bool hum);
-void PitchTier_playPart (PitchTier me, double tmin, double tmax, bool hum);
+	 int hum);
+void PitchTier_playPart (PitchTier me, double tmin, double tmax, int hum);
 void PitchTier_play (PitchTier me);
 void PitchTier_hum (PitchTier me);
 
-autoSound PitchTier_to_Sound_sine (PitchTier me, double tmin, double tmax, double samplingFrequency);
+Sound PitchTier_to_Sound_sine (PitchTier me, double tmin, double tmax, double samplingFrequency);
 void PitchTier_playPart_sine (PitchTier me, double tmin, double tmax);
 
 /* End of file PitchTier_to_Sound.h */
diff --git a/fon/Pitch_AnyTier_to_PitchTier.cpp b/fon/Pitch_AnyTier_to_PitchTier.cpp
index a269413..1eb2a96 100644
--- a/fon/Pitch_AnyTier_to_PitchTier.cpp
+++ b/fon/Pitch_AnyTier_to_PitchTier.cpp
@@ -1,6 +1,6 @@
 /* Pitch_AnyTier_to_PitchTier.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,12 +17,19 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2005/06/16 units
+ * pb 2011/06/04 C++
+ */
+
 #include "Pitch_AnyTier_to_PitchTier.h"
 #include "Pitch_to_PitchTier.h"
 
-autoPitchTier PitchTier_AnyTier_to_PitchTier (PitchTier pitch, AnyTier tier) {
+PitchTier PitchTier_AnyTier_to_PitchTier (PitchTier pitch, AnyTier tier) {
 	try {
-		if (pitch -> points.size == 0) Melder_throw (U"No pitch points.");
+		SortedSetOfDouble points = tier -> points;
+		if (pitch -> points -> size == 0) Melder_throw (U"No pitch points.");
 
 		/*
 		 * Result's domain is a union of both domains.
@@ -34,24 +41,26 @@ autoPitchTier PitchTier_AnyTier_to_PitchTier (PitchTier pitch, AnyTier tier) {
 		/*
 		 * Copy pitch's frequencies at tier's points to the resulting PitchTier.
 		 */
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			AnyPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= points -> size; ipoint ++) {
+			AnyPoint point = (AnyPoint) points -> item [ipoint];
 			double time = point -> number;
 			double frequency = RealTier_getValueAtTime (pitch, time);
-			RealTier_addPoint (thee.get(), time, frequency);
+			RealTier_addPoint (thee.peek(), time, frequency);
 		}
 
-		return thee;
+		return thee.peek();
 	} catch (MelderError) {
 		Melder_throw (pitch, U" & ", tier, U": not converted to PitchTier.");
 	}
 }
 
-autoPitchTier Pitch_AnyTier_to_PitchTier (Pitch pitch, AnyTier tier, int checkMethod) {
+PitchTier Pitch_AnyTier_to_PitchTier (Pitch pitch, AnyTier tier, int checkMethod) {
 	try {
+		SortedSetOfDouble points = tier -> points;
 		if (checkMethod == 2) {
 			autoPitchTier temp = Pitch_to_PitchTier (pitch);
-			return PitchTier_AnyTier_to_PitchTier (temp.get(), tier);
+			autoPitchTier thee = PitchTier_AnyTier_to_PitchTier (temp.peek(), tier);
+			return thee.transfer();
 		}
 
 		/*
@@ -64,16 +73,16 @@ autoPitchTier Pitch_AnyTier_to_PitchTier (Pitch pitch, AnyTier tier, int checkMe
 		/*
 		 * Copy pitch's frequencies at tier's points to the resulting PitchTier.
 		 */
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			AnyPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= points -> size; ipoint ++) {
+			AnyPoint point = (AnyPoint) points -> item [ipoint];
 			double time = point -> number;
 			double frequency = Pitch_getValueAtTime (pitch, time, kPitch_unit_HERTZ, Pitch_LINEAR);
 			if (frequency == NUMundefined && checkMethod)
 				Melder_throw (U"No periodicity at time ", time, U" seconds.");
-			RealTier_addPoint (thee.get(), time, frequency);
+			RealTier_addPoint (thee.peek(), time, frequency);
 		}
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (pitch, U" & ", tier, U": not converted to PitchTier.");
 	}
diff --git a/fon/Pitch_AnyTier_to_PitchTier.h b/fon/Pitch_AnyTier_to_PitchTier.h
index 928db8f..529347c 100644
--- a/fon/Pitch_AnyTier_to_PitchTier.h
+++ b/fon/Pitch_AnyTier_to_PitchTier.h
@@ -1,6 +1,6 @@
 /* Pitch_AnyTier_to_PitchTier.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
 #include "AnyTier.h"
 #include "PitchTier.h"
 
-autoPitchTier Pitch_AnyTier_to_PitchTier (Pitch pitch, AnyTier tier, int checkMethod);
-autoPitchTier PitchTier_AnyTier_to_PitchTier (PitchTier pitch, AnyTier tier);
+PitchTier Pitch_AnyTier_to_PitchTier (Pitch pitch, AnyTier tier, int checkMethod);
+PitchTier PitchTier_AnyTier_to_PitchTier (PitchTier pitch, AnyTier tier);
 
 /* End of file Pitch_AnyTier_to_PitchTier.h */
diff --git a/fon/Pitch_Intensity.cpp b/fon/Pitch_Intensity.cpp
index ab3175b..cfb6488 100644
--- a/fon/Pitch_Intensity.cpp
+++ b/fon/Pitch_Intensity.cpp
@@ -1,6 +1,6 @@
 /* Pitch_Intensity.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,39 +17,45 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2005/03/08 connect
+ * pb 2005/06/17 units
+ * pb 2011/06/04 C++
+ */
+
 #include "Pitch_Intensity.h"
 
 static void Pitch_getExtrema (Pitch me, double *minimum, double *maximum) {
-	*minimum = 1e308, *maximum = -1e308;
+	*minimum = 1e30, *maximum = -1e30;
 	for (long i = 1; i <= my nx; i ++) {
 		double frequency = my frame [i]. candidate [1]. frequency;
-		if (frequency == 0.0) continue;   // voiceless
+		if (frequency == 0.0) continue;   /* Voiceless. */
 		if (frequency < *minimum) *minimum = frequency;
 		if (frequency > *maximum) *maximum = frequency;
 	}
-	if (*maximum == -1e308) *maximum = 0.0;
-	if (*minimum == 1e308) *minimum = 0.0;
+	if (*maximum == -1e30) *maximum = 0.0;
+	if (*minimum == 1e30) *minimum = 0.0;
 }
 
 void Pitch_Intensity_draw (Pitch pitch, Intensity intensity, Graphics g,
-	double f1, double f2, double s1, double s2, bool garnish, int connect)
+	double f1, double f2, double s1, double s2, int garnish, int connect)
 {
 	if (f2 <= f1) Pitch_getExtrema (pitch, & f1, & f2);
-	if (f1 == 0.0) return;   // all voiceless
+	if (f1 == 0.0) return;   /* All voiceless. */
 	if (f1 == f2) { f1 -= 1.0; f2 += 1.0; }
 	if (s2 <= s1) Matrix_getWindowExtrema (intensity, 0, 0, 1, 1, & s1, & s2);
 	if (s1 == s2) { s1 -= 1.0; s2 += 1.0; }
 	Graphics_setWindow (g, f1, f2, s1, s2);
 	Graphics_setInner (g);
-	double previousX = NUMundefined;
-	double previousY = NUMundefined;
 	long previousI = 0;
+	double previousX = NUMundefined, previousY = NUMundefined;
 	for (long i = 1; i <= pitch -> nx; i ++) {
 		double t = Sampled_indexToX (pitch, i);
 		double x = pitch -> frame [i]. candidate [1]. frequency;
-		double y = Sampled_getValueAtX (intensity, t, Pitch_LEVEL_FREQUENCY, kPitch_unit_HERTZ, true);
+		double y = Sampled_getValueAtX (intensity, t, Pitch_LEVEL_FREQUENCY, kPitch_unit_HERTZ, TRUE);
 		if (x == 0) {
-			continue;   // voiceless
+			continue;   /* Voiceless. */
 		}
 		if (connect & 1) Graphics_speckle (g, x, y);
 		if ((connect & 2) && NUMdefined (previousX)) {
@@ -66,43 +72,11 @@ void Pitch_Intensity_draw (Pitch pitch, Intensity intensity, Graphics g,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Fundamental frequency (Hz)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Intensity (dB)");
-		Graphics_marksLeft (g, 2, true, true, false);
-	}
-}
-
-double Pitch_Intensity_getMean (Pitch thee, Intensity me) {
-	long numberOfValidLocalMeasurements = 0;
-	double sumOfLocalValues = 0.0;
-	for (long iframe = 1; iframe <= my nx; iframe ++) {
-		double t = Sampled_indexToX (me, iframe);
-		bool localMeasurentIsValid = Pitch_isVoiced_t (thee, t);
-		if (localMeasurentIsValid) {
-			double localValue = my z [1] [iframe];
-			sumOfLocalValues += localValue;
-			numberOfValidLocalMeasurements += 1;
-		}
-	}
-	return numberOfValidLocalMeasurements > 0 ? sumOfLocalValues / numberOfValidLocalMeasurements : NUMundefined;
-}
-
-double Pitch_Intensity_getMeanAbsoluteSlope (Pitch thee, Intensity me) {
-	long numberOfValidLocalMeasurements = 0;
-	double sumOfLocalAbsoluteSlopes = 0.0;
-	for (long iframe = 1; iframe < my nx; iframe ++) {
-		double t1 = Sampled_indexToX (me, iframe);
-		double t2 = t1 + my dx;
-		bool localMeasurentIsValid = ( Pitch_isVoiced_t (thee, t1) && Pitch_isVoiced_t (thee, t2) );
-		if (localMeasurentIsValid) {
-			double absoluteLocalSlope = fabs (my z [1] [iframe + 1] -  my z [1] [iframe]);
-			sumOfLocalAbsoluteSlopes += absoluteLocalSlope;
-			numberOfValidLocalMeasurements += 1;
-		}
+		Graphics_textBottom (g, 1, U"Fundamental frequency (Hz)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Intensity (dB)");
+		Graphics_marksLeft (g, 2, 1, 1, 0);
 	}
-	sumOfLocalAbsoluteSlopes /= my dx;   // convert to dB per second
-	return numberOfValidLocalMeasurements > 0 ? sumOfLocalAbsoluteSlopes / numberOfValidLocalMeasurements : NUMundefined;
 }
 
 /* End of file Pitch_Intensity.cpp */
diff --git a/fon/Pitch_Intensity.h b/fon/Pitch_Intensity.h
index b6b91ae..bf338f1 100644
--- a/fon/Pitch_Intensity.h
+++ b/fon/Pitch_Intensity.h
@@ -1,6 +1,6 @@
 /* Pitch_Intensity.h
  *
- * Copyright (C) 1992-2011,2016 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,10 +22,6 @@
 #include "Graphics.h"
 
 void Pitch_Intensity_draw (Pitch pitch, Intensity intensity, Graphics g,
-	double f1, double f2, double s1, double s2, bool garnish, int connect);
-
-double Pitch_Intensity_getMean (Pitch thee, Intensity me);
-
-double Pitch_Intensity_getMeanAbsoluteSlope (Pitch pitch, Intensity intensity);
+	double f1, double f2, double s1, double s2, int garnish, int connect);
 
 /* End of file Pitch_Intensity.h */
diff --git a/fon/Pitch_def.h b/fon/Pitch_def.h
index babc281..8adf968 100644
--- a/fon/Pitch_def.h
+++ b/fon/Pitch_def.h
@@ -69,7 +69,6 @@ oo_DEFINE_STRUCT (Pitch_Frame)
 		oo_DOUBLE (intensity)
 		oo_LONG (nCandidates)
 	#endif
-
 	oo_STRUCT_VECTOR (Pitch_Candidate, candidate, nCandidates)
 
 oo_END_STRUCT (Pitch_Frame)
diff --git a/fon/Pitch_to_PitchTier.cpp b/fon/Pitch_to_PitchTier.cpp
index 9386e58..22995e5 100644
--- a/fon/Pitch_to_PitchTier.cpp
+++ b/fon/Pitch_to_PitchTier.cpp
@@ -1,6 +1,6 @@
 /* Pitch_to_PitchTier.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 
 #include "Pitch_to_PitchTier.h"
 
-autoPitchTier Pitch_to_PitchTier (Pitch me) {
+PitchTier Pitch_to_PitchTier (Pitch me) {
 	try {
 		autoPitchTier thee = PitchTier_create (my xmin, my xmax);
 		for (long i = 1; i <= my nx; i ++) {
@@ -37,10 +37,10 @@ autoPitchTier Pitch_to_PitchTier (Pitch me) {
 			 */
 			if (frequency > 0.0 && frequency < my ceiling) {
 				double time = Sampled_indexToX (me, i);
-				RealTier_addPoint (thee.get(), time, frequency);
+				RealTier_addPoint (thee.peek(), time, frequency);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to PitchTier.");
 	}
@@ -81,7 +81,7 @@ static void Pitch_line (Pitch me, Graphics g, double tmin, double fleft, double
 void PitchTier_Pitch_draw (PitchTier me, Pitch uv, Graphics g,
 	double tmin, double tmax, double fmin, double fmax, int nonPeriodicLineType, int garnish, const char32 *method)
 {
-	long n = my points.size, imin, imax, i;
+	long n = my points -> size, imin, imax, i;
 	if (nonPeriodicLineType == 0) {
 		PitchTier_draw (me, g, tmin, tmax, fmin, fmax, garnish, method);
 		return;
@@ -89,15 +89,15 @@ void PitchTier_Pitch_draw (PitchTier me, Pitch uv, Graphics g,
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
 	Graphics_setWindow (g, tmin, tmax, fmin, fmax);
 	Graphics_setInner (g);
-	imin = AnyTier_timeToHighIndex (me->asAnyTier(), tmin);
-	imax = AnyTier_timeToLowIndex (me->asAnyTier(), tmax);
+	imin = AnyTier_timeToHighIndex (me, tmin);
+	imax = AnyTier_timeToLowIndex (me, tmax);
 	if (n == 0) {
 	} else if (imax < imin) {
 		double fleft = RealTier_getValueAtTime (me, tmin);
 		double fright = RealTier_getValueAtTime (me, tmax);
 		Pitch_line (uv, g, tmin, fleft, tmax, fright, nonPeriodicLineType);
 	} else for (i = imin; i <= imax; i ++) {
-		RealPoint point = my points.at [i];
+		RealPoint point = (RealPoint) my points -> item [i];
 		double t = point -> number, f = point -> value;
 		Graphics_speckle (g, t, f);
 		if (i == 1)
@@ -109,23 +109,23 @@ void PitchTier_Pitch_draw (PitchTier me, Pitch uv, Graphics g,
 		else if (i == imax)
 			Pitch_line (uv, g, t, f, tmax, RealTier_getValueAtTime (me, tmax), nonPeriodicLineType);
 		else {
-			RealPoint pointRight = my points.at [i + 1];
+			RealPoint pointRight = (RealPoint) my points -> item [i + 1];
 			Pitch_line (uv, g, t, f, pointRight -> number, pointRight -> value, nonPeriodicLineType);
 		}
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Frequency (Hz)");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Frequency (Hz)");
 	}
 }
 
-autoPitch Pitch_PitchTier_to_Pitch (Pitch me, PitchTier tier) {
+Pitch Pitch_PitchTier_to_Pitch (Pitch me, PitchTier tier) {
 	try {
-		if (tier -> points.size == 0) Melder_throw (U"No pitch points.");
+		if (tier -> points -> size == 0) Melder_throw (U"No pitch points.");
 		autoPitch thee = Data_copy (me);
 		for (long iframe = 1; iframe <= my nx; iframe ++) {
 			Pitch_Frame frame = & thy frame [iframe];
@@ -135,7 +135,7 @@ autoPitch Pitch_PitchTier_to_Pitch (Pitch me, PitchTier tier) {
 			cand -> strength = 0.9;
 			frame -> nCandidates = 1;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", tier, U": not converted to Pitch.");
 	}
diff --git a/fon/Pitch_to_PitchTier.h b/fon/Pitch_to_PitchTier.h
index 8365588..3fb5506 100644
--- a/fon/Pitch_to_PitchTier.h
+++ b/fon/Pitch_to_PitchTier.h
@@ -20,7 +20,7 @@
 #include "Pitch.h"
 #include "PitchTier.h"
 
-autoPitchTier Pitch_to_PitchTier (Pitch me);
+PitchTier Pitch_to_PitchTier (Pitch me);
 /*
 	Creates a PitchTier from an existing Pitch contour.
 	The best candidate in each frame becomes a target in the result.
@@ -31,6 +31,6 @@ void PitchTier_Pitch_draw (PitchTier me, Pitch uv, Graphics g,
 	double tmin, double tmax, double fmin, double fmax,
 	int nonPeriodicLineType, int garnish, const char32 *method);
 
-autoPitch Pitch_PitchTier_to_Pitch (Pitch me, PitchTier tier);
+Pitch Pitch_PitchTier_to_Pitch (Pitch me, PitchTier tier);
 
 /* End of file Pitch_to_PitchTier.h */
diff --git a/fon/Pitch_to_PointProcess.cpp b/fon/Pitch_to_PointProcess.cpp
index 3533955..9a866cf 100644
--- a/fon/Pitch_to_PointProcess.cpp
+++ b/fon/Pitch_to_PointProcess.cpp
@@ -1,6 +1,6 @@
 /* Pitch_to_PointProcess.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,11 +38,11 @@
 #include "Pitch_to_PitchTier.h"
 #include <ctype.h>
 
-autoPointProcess Pitch_to_PointProcess (Pitch pitch) {
+PointProcess Pitch_to_PointProcess (Pitch pitch) {
 	try {
 		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch);
-		autoPointProcess point = PitchTier_Pitch_to_PointProcess (pitchTier.get(), pitch);
-		return point;
+		autoPointProcess point = PitchTier_Pitch_to_PointProcess (pitchTier.peek(), pitch);
+		return point.transfer();
 	} catch (MelderError) {
 		Melder_throw (pitch, U": not converted to PointProcess.");
 	}
@@ -50,13 +50,13 @@ autoPointProcess Pitch_to_PointProcess (Pitch pitch) {
 
 static int Pitch_getVoicedIntervalAfter (Pitch me, double after, double *tleft, double *tright) {
 	long ileft = Sampled_xToHighIndex (me, after), iright;
-	if (ileft > my nx) return 0;   // offright
-	if (ileft < 1) ileft = 1;   // offleft
+	if (ileft > my nx) return 0;   /* Offright. */
+	if (ileft < 1) ileft = 1;   /* Offleft. */
 
 	/* Search for first voiced frame. */
 	for (; ileft <= my nx; ileft ++)
 		if (Pitch_isVoiced_i (me, ileft)) break;
-	if (ileft > my nx) return 0;   // offright
+	if (ileft > my nx) return 0;   /* Offright. */
 
 	/* Search for last voiced frame. */
 	for (iright = ileft; iright <= my nx; iright ++)
@@ -68,19 +68,18 @@ static int Pitch_getVoicedIntervalAfter (Pitch me, double after, double *tleft,
 	if (*tleft >= my xmax - 0.5 * my dx) return 0;
 	if (*tleft < my xmin) *tleft = my xmin;
 	if (*tright > my xmax) *tright = my xmax;
-	if (*tright <= after) return 0;
 	return 1;
 }
 
 static double findExtremum_3 (double *channel1_base, double *channel2_base, long d, long n, int includeMaxima, int includeMinima) {
-	double *channel1 = channel1_base + d, *channel2 = channel2_base ? channel2_base + d : nullptr;
+	double *channel1 = channel1_base + d, *channel2 = channel2_base ? channel2_base + d : NULL;
 	int includeAll = includeMaxima == includeMinima;
 	long imin = 1, imax = 1, i, iextr;
 	double minimum, maximum;
 	if (n < 3) {
-		if (n <= 0) return 0.0;   // outside
+		if (n <= 0) return 0.0;   /* Outside. */
 		else if (n == 1) return 1.0;
-		else {   // n == 2
+		else {   /* n == 2 */
 			double x1 = channel2 ? 0.5 * (channel1 [1] + channel2 [1]) : channel1 [1];
 			double x2 = channel2 ? 0.5 * (channel1 [2] + channel2 [2]) : channel1 [2];
 			double xleft = includeAll ? fabs (x1) : includeMaxima ? x1 : - x1;
@@ -97,7 +96,7 @@ static double findExtremum_3 (double *channel1_base, double *channel2_base, long
 		if (value > maximum) { maximum = value; imax = i; }
 	}
 	if (minimum == maximum) {
-		return 0.5 * (n + 1.0);   // all equal
+		return 0.5 * (n + 1.0);   /* All equal. */
 	}
 	iextr = includeAll ? ( fabs (minimum) > fabs (maximum) ? imin : imax ) : includeMaxima ? imax : imin;
 	if (iextr == 1) return 1.0;
@@ -116,7 +115,7 @@ static double Sound_findExtremum (Sound me, double tmin, double tmax, int includ
 	Melder_assert (NUMdefined (tmax));
 	if (imin < 1) imin = 1;
 	if (imax > my nx) imax = my nx;
-	double iextremum = findExtremum_3 (my z [1], my ny > 1 ? my z [2] : nullptr, imin - 1, imax - imin + 1, includeMaxima, includeMinima);
+	double iextremum = findExtremum_3 (my z [1], my ny > 1 ? my z [2] : NULL, imin - 1, imax - imin + 1, includeMaxima, includeMinima);
 	if (iextremum != 0.0)
 		return my x1 + (imin - 1 + iextremum - 1) * my dx;
 	else
@@ -175,11 +174,11 @@ static double Sound_findMaximumCorrelation (Sound me, double t1, double windowLe
 	return maximumCorrelation;
 }
 
-autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
+PointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
 	try {
 		autoPointProcess point = PointProcess_create (sound -> xmin, sound -> xmax, 10);
 		double t = pitch -> xmin;
-		double addedRight = -1e308;
+		double addedRight = -1e300;
 		double globalPeak = Vector_getAbsoluteExtremum (sound, sound -> xmin, sound -> xmax, 0), peak;
 		
 		/*
@@ -189,8 +188,6 @@ autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
 		for (;;) {
 			double tleft, tright;
 			if (! Pitch_getVoicedIntervalAfter (pitch, t, & tleft, & tright)) break;
-			Melder_assert (tright > t);
-
 			/*
 			 * Go to the middle of the voice stretch.
 			 */
@@ -208,9 +205,9 @@ autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
 					U", f0middle ", f0middle
 				);
 			}
-			double tmax = Sound_findExtremum (sound, tmiddle - 0.5 / f0middle, tmiddle + 0.5 / f0middle, true, true);
+			double tmax = Sound_findExtremum (sound, tmiddle - 0.5 / f0middle, tmiddle + 0.5 / f0middle, TRUE, TRUE);
 			Melder_assert (NUMdefined (tmax));
-			PointProcess_addPoint (point.get(), tmax);
+			PointProcess_addPoint (point.peek(), tmax);
 
 			double tsave = tmax;
 			for (;;) {
@@ -220,13 +217,13 @@ autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
 				if (correlation == -1) /*break*/ tmax -= 1.0 / f0;   // this one period will drop out
 				if (tmax < tleft) {
 					if (correlation > 0.7 && peak > 0.023333 * globalPeak && tmax - addedRight > 0.8 / f0) {
-						PointProcess_addPoint (point.get(), tmax);
+						PointProcess_addPoint (point.peek(), tmax);
 					}
 					break;
 				}
 				if (correlation > 0.3 && (peak == 0.0 || peak > 0.01 * globalPeak)) {
 					if (tmax - addedRight > 0.8 / f0) {   // do not fill in a short originally unvoiced interval twice
-						PointProcess_addPoint (point.get(), tmax);
+						PointProcess_addPoint (point.peek(), tmax);
 					}
 				}
 			}
@@ -238,30 +235,30 @@ autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch) {
 				if (correlation == -1) /*break*/ tmax += 1.0 / f0;
 				if (tmax > tright) {
 					if (correlation > 0.7 && peak > 0.023333 * globalPeak) {
-						PointProcess_addPoint (point.get(), tmax);
+						PointProcess_addPoint (point.peek(), tmax);
 						addedRight = tmax;
 					}
 					break;
 				}
 				if (correlation > 0.3 && (peak == 0.0 || peak > 0.01 * globalPeak)) {
-					PointProcess_addPoint (point.get(), tmax);
+					PointProcess_addPoint (point.peek(), tmax);
 					addedRight = tmax;
 				}
 			}
 			t = tright;
 		}
-		return point;
+		return point.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", pitch, U": not converted to PointProcess (cc).");
 	}
 }
 	
 
-autoPointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, int includeMaxima, int includeMinima) {
+PointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, int includeMaxima, int includeMinima) {
 	try {
 		autoPointProcess point = PointProcess_create (sound -> xmin, sound -> xmax, 10);
 		double t = pitch -> xmin;
-		double addedRight = -1e308;
+		double addedRight = -1e300;
 		/*
 		 * Cycle over all voiced intervals.
 		 */
@@ -283,7 +280,7 @@ autoPointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, in
 			Melder_assert (NUMdefined (f0middle));
 			double tmax = Sound_findExtremum (sound, tmiddle - 0.5 / f0middle, tmiddle + 0.5 / f0middle, includeMaxima, includeMinima);
 			Melder_assert (NUMdefined (tmax));
-			PointProcess_addPoint (point.get(), tmax);
+			PointProcess_addPoint (point.peek(), tmax);
 
 			double tsave = tmax;
 			for (;;) {
@@ -292,12 +289,12 @@ autoPointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, in
 				tmax = Sound_findExtremum (sound, tmax - 1.25 / f0, tmax - 0.8 / f0, includeMaxima, includeMinima);
 				if (tmax < tleft) {
 					if (tmax - addedRight > 0.8 / f0) {
-						PointProcess_addPoint (point.get(), tmax);
+						PointProcess_addPoint (point.peek(), tmax);
 					}
 					break;
 				}
 				if (tmax - addedRight > 0.8 / f0) {   // do not fill in a short originally unvoiced interval twice
-					PointProcess_addPoint (point.get(), tmax);
+					PointProcess_addPoint (point.peek(), tmax);
 				}
 			}
 			tmax = tsave;
@@ -306,16 +303,16 @@ autoPointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, in
 				if (f0 == NUMundefined) break;
 				tmax = Sound_findExtremum (sound, tmax + 0.8 / f0, tmax + 1.25 / f0, includeMaxima, includeMinima);
 				if (tmax > tright) {
-					PointProcess_addPoint (point.get(), tmax);
+					PointProcess_addPoint (point.peek(), tmax);
 					addedRight = tmax;
 					break;
 				}
-				PointProcess_addPoint (point.get(), tmax);
+				PointProcess_addPoint (point.peek(), tmax);
 				addedRight = tmax;
 			}
 			t = tright;
 		}
-		return point;
+		return point.transfer();
 	} catch (MelderError) {
 		Melder_throw (sound, U" & ", pitch, U": not converted to PointProcess (peaks).");
 	}
diff --git a/fon/Pitch_to_PointProcess.h b/fon/Pitch_to_PointProcess.h
index 6d685f4..67bd95c 100644
--- a/fon/Pitch_to_PointProcess.h
+++ b/fon/Pitch_to_PointProcess.h
@@ -21,10 +21,10 @@
 #include "PointProcess.h"
 #include "Sound.h"
 
-autoPointProcess Pitch_to_PointProcess (Pitch pitch);
+PointProcess Pitch_to_PointProcess (Pitch pitch);
 
-autoPointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch);
+PointProcess Sound_Pitch_to_PointProcess_cc (Sound sound, Pitch pitch);
 
-autoPointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, int includeMaxima, int includeMinima);
+PointProcess Sound_Pitch_to_PointProcess_peaks (Sound sound, Pitch pitch, int includeMaxima, int includeMinima);
 
 /* End of file Pitch_to_PointProcess.h */
diff --git a/fon/Pitch_to_Sound.cpp b/fon/Pitch_to_Sound.cpp
index 4c2e059..1d2ba5b 100644
--- a/fon/Pitch_to_Sound.cpp
+++ b/fon/Pitch_to_Sound.cpp
@@ -1,6 +1,6 @@
 /* Pitch_to_Sound.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,16 +31,16 @@
 #include "PitchTier_to_Sound.h"
 #include "Pitch_to_PitchTier.h"
 
-autoSound Pitch_to_Sound (Pitch me, double tmin, double tmax, bool hum) {
-	static double formant [1 + 6] { 0.0, 600.0, 1400.0, 2400.0, 3400.0, 4500.0, 5500.0 };
-	static double bandwidth [1 + 6] { 0.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0 };
+Sound Pitch_to_Sound (Pitch me, double tmin, double tmax, int hum) {
+	static double formant [1 + 6] = { 0, 600, 1400, 2400, 3400, 4500, 5500 };
+	static double bandwidth [1 + 6] = { 0, 50, 100, 200, 300, 400, 500 };
 	try {
 		autoPointProcess point = Pitch_to_PointProcess (me);
-		autoSound sound = PointProcess_to_Sound_pulseTrain (point.get(), 44100.0, 0.7, 0.05, 30);
+		autoSound sound = PointProcess_to_Sound_pulseTrain (point.peek(), 44100, 0.7, 0.05, 30);
 		if (hum) {
-			Sound_filterWithFormants (sound.get(), tmin, tmax, 6, formant, bandwidth);
+			Sound_filterWithFormants (sound.peek(), tmin, tmax, 6, formant, bandwidth);
 		}
-		return sound;
+		return sound.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
@@ -48,9 +48,9 @@ autoSound Pitch_to_Sound (Pitch me, double tmin, double tmax, bool hum) {
 
 void Pitch_play (Pitch me, double tmin, double tmax) {
 	try {
-		autoSound sound = Pitch_to_Sound (me, tmin, tmax, false);
+		autoSound sound = Pitch_to_Sound (me, tmin, tmax, FALSE);
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindowing
-		Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+		Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
@@ -58,18 +58,18 @@ void Pitch_play (Pitch me, double tmin, double tmax) {
 
 void Pitch_hum (Pitch me, double tmin, double tmax) {
 	try {
-		autoSound sound = Pitch_to_Sound (me, tmin, tmax, true);
+		autoSound sound = Pitch_to_Sound (me, tmin, tmax, TRUE);
 		if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindowing
-		Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+		Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
 }
 
-autoSound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double samplingFrequency, bool roundToNearestZeroCrossings) {
+Sound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double samplingFrequency, int roundToNearestZeroCrossings) {
 	try {
 		autoPitchTier tier = Pitch_to_PitchTier (me);
-		autoSound sound = PitchTier_to_Sound_sine (tier.get(), tmin, tmax, samplingFrequency);
+		autoSound sound = PitchTier_to_Sound_sine (tier.peek(), tmin, tmax, samplingFrequency);
 		long iframe = 1;
 		double unvoicedMin = my xmin;
 		double unvoicedMax = my x1 + (iframe - 1.5) * my dx;
@@ -79,7 +79,7 @@ autoSound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double sampli
 				if (++ iframe > my nx) break;
 			}
 			if (unvoicedMax > unvoicedMin) {
-				Sound_setZero (sound.get(), unvoicedMin, unvoicedMax, roundToNearestZeroCrossings);
+				Sound_setZero (sound.peek(), unvoicedMin, unvoicedMax, roundToNearestZeroCrossings);
 			}
 			if (iframe > my nx) break;
 			while (Pitch_isVoiced_i (me, iframe)) {
@@ -90,9 +90,9 @@ autoSound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double sampli
 		}
 		unvoicedMax = my xmax;
 		if (unvoicedMax > unvoicedMin) {
-			Sound_setZero (sound.get(), unvoicedMin, unvoicedMax, roundToNearestZeroCrossings);
+			Sound_setZero (sound.peek(), unvoicedMin, unvoicedMax, roundToNearestZeroCrossings);
 		}
-		return sound;
+		return sound.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (sine).");
 	}
diff --git a/fon/Pitch_to_Sound.h b/fon/Pitch_to_Sound.h
index ded8748..0b30e5b 100644
--- a/fon/Pitch_to_Sound.h
+++ b/fon/Pitch_to_Sound.h
@@ -1,6 +1,6 @@
 /* Pitch_to_Sound.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
 /* then this PointProcess into a Sound (pulse train), */
 /* and then optionally filter this with 6 formants. */
 
-autoSound Pitch_to_Sound (Pitch me, double tmin, double tmax, bool hum);
+Sound Pitch_to_Sound (Pitch me, double tmin, double tmax, int hum);
 void Pitch_play (Pitch me, double tmin, double tmax);
 void Pitch_hum (Pitch me, double tmin, double tmax);
 
@@ -32,7 +32,7 @@ void Pitch_hum (Pitch me, double tmin, double tmax);
 /* then this PitchTier into a Sound (sine wave), */
 /* and then cuts away the unvoiced stretches. */
 
-autoSound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double samplingFrequency,
-	bool roundToNearestZeroCrossings);
+Sound Pitch_to_Sound_sine (Pitch me, double tmin, double tmax, double samplingFrequency,
+	int roundToNearestZeroCrossings);
 
 /* End of file Pitch_to_Sound.h */
diff --git a/fon/PointEditor.cpp b/fon/PointEditor.cpp
index 23a4d53..2066820 100644
--- a/fon/PointEditor.cpp
+++ b/fon/PointEditor.cpp
@@ -1,6 +1,6 @@
 /* PointEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,68 +26,81 @@ Thing_implement (PointEditor, TimeSoundEditor, 0);
 
 /********** DESTRUCTION **********/
 
-void structPointEditor :: v_destroy () noexcept {
+void structPointEditor :: v_destroy () {
+	forget (monoSound);
 	PointEditor_Parent :: v_destroy ();
 }
 
 /********** MENU COMMANDS **********/
 
-static void menu_cb_getJitter_local (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getJitter_local (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure jitter, make a selection first.");
-	Melder_informationReal (PointProcess_getJitter_local ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), nullptr);
+	Melder_informationReal (PointProcess_getJitter_local ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), NULL);
 }
 
-static void menu_cb_getJitter_local_absolute (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getJitter_local_absolute (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure jitter, make a selection first.");
 	Melder_informationReal (PointProcess_getJitter_local_absolute ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), U"seconds");
 }
 
-static void menu_cb_getJitter_rap (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getJitter_rap (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure jitter, make a selection first.");
-	Melder_informationReal (PointProcess_getJitter_rap ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), nullptr);
+	Melder_informationReal (PointProcess_getJitter_rap ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), NULL);
 }
 
-static void menu_cb_getJitter_ppq5 (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getJitter_ppq5 (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure jitter, make a selection first.");
-	Melder_informationReal (PointProcess_getJitter_ppq5 ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), nullptr);
+	Melder_informationReal (PointProcess_getJitter_ppq5 ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), NULL);
 }
 
-static void menu_cb_getJitter_ddp (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getJitter_ddp (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure jitter, make a selection first.");
-	Melder_informationReal (PointProcess_getJitter_ddp ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), nullptr);
+	Melder_informationReal (PointProcess_getJitter_ddp ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), NULL);
 }
 
-static void menu_cb_getShimmer_local (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_local (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_local ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_local ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_getShimmer_local_dB (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_local_dB (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_local_dB ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_local_dB ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_getShimmer_apq3 (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_apq3 (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_apq3 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_apq3 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_getShimmer_apq5 (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_apq5 (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_apq5 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_apq5 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_getShimmer_apq11 (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_apq11 (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_apq11 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_apq11 ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_getShimmer_dda (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getShimmer_dda (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	if (my d_startSelection == my d_endSelection) Melder_throw (U"To measure shimmer, make a selection first.");
-	Melder_informationReal (PointProcess_Sound_getShimmer_dda ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), nullptr);
+	Melder_informationReal (PointProcess_Sound_getShimmer_dda ((PointProcess) my data, my d_sound.data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3, 1.6), NULL);
 }
 
-static void menu_cb_removePoints (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removePoints (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	Editor_save (me, U"Remove point(s)");
 	if (my d_startSelection == my d_endSelection)
 		PointProcess_removePointNear ((PointProcess) my data, my d_startSelection);
@@ -97,15 +110,17 @@ static void menu_cb_removePoints (PointEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAtCursor (PointEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPointAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
 	Editor_save (me, U"Add point");
 	PointProcess_addPoint ((PointProcess) my data, 0.5 * (my d_startSelection + my d_endSelection));
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAt (PointEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add point", nullptr)
+static void menu_cb_addPointAt (EDITOR_ARGS) {
+	EDITOR_IAM (PointEditor);
+	EDITOR_FORM (U"Add point", 0)
 		REAL (U"Position", U"0.0");
 	EDITOR_OK
 		SET_REAL (U"Position", 0.5 * (my d_startSelection + my d_endSelection));
@@ -117,19 +132,19 @@ static void menu_cb_addPointAt (PointEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_PointEditorHelp (PointEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"PointEditor"); }
+static void menu_cb_PointEditorHelp (EDITOR_ARGS) { EDITOR_IAM (PointEditor); Melder_help (U"PointEditor"); }
 
 void structPointEditor :: v_createMenus () {
 	PointEditor_Parent :: v_createMenus ();
 
-	Editor_addCommand (this, U"Query", U"-- query jitter --", 0, nullptr);
+	Editor_addCommand (this, U"Query", U"-- query jitter --", 0, NULL);
 	Editor_addCommand (this, U"Query", U"Get jitter (local)", 0, menu_cb_getJitter_local);
 	Editor_addCommand (this, U"Query", U"Get jitter (local, absolute)", 0, menu_cb_getJitter_local_absolute);
 	Editor_addCommand (this, U"Query", U"Get jitter (rap)", 0, menu_cb_getJitter_rap);
 	Editor_addCommand (this, U"Query", U"Get jitter (ppq5)", 0, menu_cb_getJitter_ppq5);
 	Editor_addCommand (this, U"Query", U"Get jitter (ddp)", 0, menu_cb_getJitter_ddp);
 	if (d_sound.data) {
-		Editor_addCommand (this, U"Query", U"-- query shimmer --", 0, nullptr);
+		Editor_addCommand (this, U"Query", U"-- query shimmer --", 0, NULL);
 		Editor_addCommand (this, U"Query", U"Get shimmer (local)", 0, menu_cb_getShimmer_local);
 		Editor_addCommand (this, U"Query", U"Get shimmer (local, dB)", 0, menu_cb_getShimmer_local_dB);
 		Editor_addCommand (this, U"Query", U"Get shimmer (apq3)", 0, menu_cb_getShimmer_apq3);
@@ -141,7 +156,7 @@ void structPointEditor :: v_createMenus () {
 	Editor_addMenu (this, U"Point", 0);
 	Editor_addCommand (this, U"Point", U"Add point at cursor", 'P', menu_cb_addPointAtCursor);
 	Editor_addCommand (this, U"Point", U"Add point at...", 0, menu_cb_addPointAt);
-	Editor_addCommand (this, U"Point", U"-- remove point --", 0, nullptr);
+	Editor_addCommand (this, U"Point", U"-- remove point --", 0, NULL);
 	Editor_addCommand (this, U"Point", U"Remove point(s)", GuiMenu_OPTION + 'P', menu_cb_removePoints);
 }
 
@@ -153,39 +168,39 @@ void structPointEditor :: v_createHelpMenuItems (EditorMenu menu) {
 /********** DRAWING AREA **********/
 
 void structPointEditor :: v_draw () {
-	PointProcess point = static_cast <PointProcess> (our data);
+	PointProcess point = (PointProcess) data;
 	Sound sound = d_sound.data;
-	Graphics_setColour (d_graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setColour (d_graphics, Graphics_WHITE);
+	Graphics_setWindow (d_graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (d_graphics, 0, 1, 0, 1);
 	double minimum = -1.0, maximum = +1.0;
-	if (sound && (p_sound_scalingStrategy == kTimeSoundEditor_scalingStrategy_BY_WINDOW || p_sound_scalingStrategy == kTimeSoundEditor_scalingStrategy_BY_WINDOW_AND_CHANNEL)) {
+	if (sound != NULL && (p_sound_scalingStrategy == kTimeSoundEditor_scalingStrategy_BY_WINDOW || p_sound_scalingStrategy == kTimeSoundEditor_scalingStrategy_BY_WINDOW_AND_CHANNEL)) {
 		long first, last;
 		if (Sampled_getWindowSamples (sound, d_startWindow, d_endWindow, & first, & last) >= 1) {
 			Matrix_getWindowExtrema (sound, first, last, 1, 1, & minimum, & maximum);
 			if (minimum == maximum) minimum -= 1.0, maximum += 1.0;
 		}
 	}
-	Graphics_setWindow (d_graphics.get(), d_startWindow, d_endWindow, minimum, maximum);
-	Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-	if (sound) {
+	Graphics_setWindow (d_graphics, d_startWindow, d_endWindow, minimum, maximum);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
+	if (sound != NULL) {
 		long first, last;
 		if (Sampled_getWindowSamples (sound, d_startWindow, d_endWindow, & first, & last) > 1) {
-			Graphics_setLineType (d_graphics.get(), Graphics_DOTTED);
-			Graphics_line (d_graphics.get(), d_startWindow, 0.0, d_endWindow, 0.0);
-			Graphics_setLineType (d_graphics.get(), Graphics_DRAWN);
-			Graphics_function (d_graphics.get(), sound -> z [1], first, last,
+			Graphics_setLineType (d_graphics, Graphics_DOTTED);
+			Graphics_line (d_graphics, d_startWindow, 0.0, d_endWindow, 0.0);
+			Graphics_setLineType (d_graphics, Graphics_DRAWN);      
+			Graphics_function (d_graphics, sound -> z [1], first, last,
 				Sampled_indexToX (sound, first), Sampled_indexToX (sound, last));
 		}
 	}
-	Graphics_setColour (d_graphics.get(), Graphics_BLUE);
-	Graphics_setWindow (d_graphics.get(), d_startWindow, d_endWindow, -1.0, +1.0);
+	Graphics_setColour (d_graphics, Graphics_BLUE);
+	Graphics_setWindow (d_graphics, d_startWindow, d_endWindow, -1.0, +1.0);
 	for (long i = 1; i <= point -> nt; i ++) {
 		double t = point -> t [i];
 		if (t >= d_startWindow && t <= d_endWindow)
-			Graphics_line (d_graphics.get(), t, -0.9, t, +0.9);
+			Graphics_line (d_graphics, t, -0.9, t, +0.9);
 	}
-	Graphics_setColour (d_graphics.get(), Graphics_BLACK);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
 	v_updateMenuItems_file ();
 }
 
@@ -197,14 +212,14 @@ void structPointEditor :: v_play (double a_tmin, double a_tmax) {
 	}
 }
 
-autoPointEditor PointEditor_create (const char32 *title, PointProcess point, Sound sound) {
+PointEditor PointEditor_create (const char32 *title, PointProcess point, Sound sound) {
 	try {
 		autoPointEditor me = Thing_new (PointEditor);
 		if (sound) {
 			my monoSound = Sound_convertToMono (sound);
 		}
-		TimeSoundEditor_init (me.get(), title, point, my monoSound.get(), false);
-		return me;
+		TimeSoundEditor_init (me.peek(), title, point, my monoSound, false);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PointProcess window not created.");
 	}
diff --git a/fon/PointEditor.h b/fon/PointEditor.h
index 993069b..2d87b3d 100644
--- a/fon/PointEditor.h
+++ b/fon/PointEditor.h
@@ -23,10 +23,10 @@
 #include "PointProcess.h"
 
 Thing_define (PointEditor, TimeSoundEditor) {
-	autoSound monoSound;
+	Sound monoSound;
 	GuiObject addPointAtDialog;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_createMenus ()
 		override;
@@ -38,9 +38,9 @@ Thing_define (PointEditor, TimeSoundEditor) {
 		override;
 };
 
-autoPointEditor PointEditor_create (const char32 *title,
+PointEditor PointEditor_create (const char32 *title,
 	PointProcess point,
-	Sound sound   // may be null
+	Sound sound   // may be NULL
 );
 
 /* End of file PointEditor.h */
diff --git a/fon/PointProcess.cpp b/fon/PointProcess.cpp
index 017e87c..5cd40e2 100644
--- a/fon/PointProcess.cpp
+++ b/fon/PointProcess.cpp
@@ -1,6 +1,6 @@
 /* PointProcess.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -61,7 +61,7 @@ static void infoPeriods (PointProcess me, double shortestPeriod, double longestP
 }
 
 void structPointProcess :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -75,7 +75,7 @@ void structPointProcess :: v_info () {
 	MelderInfo_writeLine (U"with a maximum \"period factor\" of 1.3:");
 	infoPeriods (this, 1e-4, 20e-3, 1.3, 3);
 	MelderInfo_writeLine (U"All periods:");
-	infoPeriods (this, 0.0, 0.0, 1e308, 6);
+	infoPeriods (this, 0.0, 0.0, 1e300, 6);
 }
 
 void structPointProcess :: v_shiftX (double xfrom, double xto) {
@@ -92,7 +92,8 @@ void structPointProcess :: v_scaleX (double xminfrom, double xmaxfrom, double xm
 	}
 }
 
-void PointProcess_init (PointProcess me, double tmin, double tmax, long initialMaxnt) {
+void PointProcess_init (I, double tmin, double tmax, long initialMaxnt) {
+	iam (PointProcess);
 	Function_init (me, tmin, tmax);
 	if (initialMaxnt < 1) initialMaxnt = 1;
 	my maxnt = initialMaxnt;
@@ -100,17 +101,17 @@ void PointProcess_init (PointProcess me, double tmin, double tmax, long initialM
 	my t = NUMvector <double> (1, my maxnt);
 }
 
-autoPointProcess PointProcess_create (double tmin, double tmax, long initialMaxnt) {
+PointProcess PointProcess_create (double tmin, double tmax, long initialMaxnt) {
 	try {
 		autoPointProcess me = Thing_new (PointProcess);
-		PointProcess_init (me.get(), tmin, tmax, initialMaxnt);
-		return me;
+		PointProcess_init (me.peek(), tmin, tmax, initialMaxnt);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PointProcess not created.");
 	}
 }
 
-autoPointProcess PointProcess_createPoissonProcess (double startingTime, double finishingTime, double density) {
+PointProcess PointProcess_createPoissonProcess (double startingTime, double finishingTime, double density) {
 	try {
 		long nt = NUMrandomPoisson ((finishingTime - startingTime) * density);
 		autoPointProcess me = PointProcess_create (startingTime, finishingTime, nt);
@@ -118,7 +119,7 @@ autoPointProcess PointProcess_createPoissonProcess (double startingTime, double
 		for (long i = 1; i <= nt; i ++)
 			my t [i] = NUMrandomUniform (startingTime, finishingTime);
 		NUMsort_d (my nt, my t);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PointProcess (Poisson process) not created.");
 	}
@@ -127,9 +128,9 @@ autoPointProcess PointProcess_createPoissonProcess (double startingTime, double
 long PointProcess_getLowIndex (PointProcess me, double t) {
 	if (my nt == 0 || t < my t [1])
 		return 0;
-	if (t >= my t [my nt])   // special case that often occurs in practice
+	if (t >= my t [my nt])   /* Special case that often occurs in practice. */
 		return my nt;
-	Melder_assert (my nt != 1);   // may fail if t or my t [1] is NaN
+	Melder_assert (my nt != 1);   /* May fail if t or my t [1] is NaN. */
 	/* Start binary search. */
 	long left = 1, right = my nt;
 	while (left < right - 1) {
@@ -231,25 +232,24 @@ void PointProcess_removePointsBetween (PointProcess me, double tmin, double tmax
 	PointProcess_removePoints (me, PointProcess_getHighIndex (me, tmin), PointProcess_getLowIndex (me, tmax));
 }
 
-void PointProcess_draw (PointProcess me, Graphics g, double tmin, double tmax, bool garnish) {
+void PointProcess_draw (PointProcess me, Graphics g, double tmin, double tmax, int garnish) {
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
-	Graphics_setWindow (g, tmin, tmax, -1.0, 1.0);
+	Graphics_setWindow (g, tmin, tmax, -1, 1);
 	if (my nt) {
-		long imin = PointProcess_getHighIndex (me, tmin);
-		long imax = PointProcess_getLowIndex  (me, tmax);
+		long imin = PointProcess_getHighIndex (me, tmin), imax = PointProcess_getLowIndex (me, tmax), i;
 		int lineType = Graphics_inqLineType (g);
 		Graphics_setLineType (g, Graphics_DOTTED);
 		Graphics_setInner (g);
-		for (long i = imin; i <= imax; i ++) {
-			Graphics_line (g, my t [i], -1.0, my t [i], 1.0);
+		for (i = imin; i <= imax; i ++) {
+			Graphics_line (g, my t [i], -1, my t [i], 1);
 		}
 		Graphics_setLineType (g, lineType);
 		Graphics_unsetInner (g);
 	}
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 	}
 }
 
@@ -259,15 +259,15 @@ double PointProcess_getInterval (PointProcess me, double t) {
 	return my t [ileft + 1] - my t [ileft];
 }
 
-autoPointProcess PointProcesses_union (PointProcess me, PointProcess thee) {
+PointProcess PointProcesses_union (PointProcess me, PointProcess thee) {
 	try {
 		autoPointProcess him = Data_copy (me);
 		if (thy xmin < my xmin) his xmin = thy xmin;
 		if (thy xmax > my xmax) his xmax = thy xmax;
 		for (long i = 1; i <= thy nt; i ++) {
-			PointProcess_addPoint (him.get(), thy t [i]);
+			PointProcess_addPoint (him.peek(), thy t [i]);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": union not computed.");
 	}
@@ -278,7 +278,7 @@ long PointProcess_findPoint (PointProcess me, double t) {
 	if (my nt == 0) return 0;
 	if (t < my t [left] || t > my t [right]) return 0;
 	while (left < right - 1) {
-		long mid = (left + right) / 2;   // tleft <= t <= tright
+		long mid = (left + right) / 2;   /* tleft <= t <= tright */
 		if (t == my t [mid]) return mid;
 		if (t > my t [mid])
 			left = mid;
@@ -290,27 +290,27 @@ long PointProcess_findPoint (PointProcess me, double t) {
 	return 0;
 }
 
-autoPointProcess PointProcesses_intersection (PointProcess me, PointProcess thee) {
+PointProcess PointProcesses_intersection (PointProcess me, PointProcess thee) {
 	try {
 		autoPointProcess him = Data_copy (me);
 		if (thy xmin > my xmin) his xmin = thy xmin;
 		if (thy xmax < my xmax) his xmax = thy xmax;
 		for (long i = my nt; i >= 1; i --)
 			if (! PointProcess_findPoint (thee, my t [i]))
-				PointProcess_removePoint (him.get(), i);
-		return him;
+				PointProcess_removePoint (him.peek(), i);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": intersection not computed.");
 	}
 }
 
-autoPointProcess PointProcesses_difference (PointProcess me, PointProcess thee) {
+PointProcess PointProcesses_difference (PointProcess me, PointProcess thee) {
 	try {
 		autoPointProcess him = Data_copy (me);
 		for (long i = my nt; i >= 1; i --)
 			if (PointProcess_findPoint (thee, my t [i]))
-				PointProcess_removePoint (him.get(), i);
-		return him;
+				PointProcess_removePoint (him.peek(), i);
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": difference not computed.");
 	}
@@ -349,15 +349,15 @@ void PointProcess_voice (PointProcess me, double period, double maxT) {
 	}
 }
 
-long PointProcess_getWindowPoints (PointProcess me, double tmin, double tmax, long *p_imin, long *p_imax) {
+long PointProcess_getWindowPoints (PointProcess me, double tmin, double tmax, long *pimin, long *pimax) {
 	long imin = PointProcess_getHighIndex (me, tmin);
 	long imax = PointProcess_getLowIndex (me, tmax);
-	if (p_imin) *p_imin = imin;
-	if (p_imax) *p_imax = imax;
+	if (pimin) *pimin = imin;
+	if (pimax) *pimax = imax;
 	return imax - imin + 1;
 }
 
-static bool PointProcess_isPeriod (PointProcess me, long ileft, double minimumPeriod, double maximumPeriod, double maximumPeriodFactor) {
+static int PointProcess_isPeriod (PointProcess me, long ileft, double minimumPeriod, double maximumPeriod, double maximumPeriodFactor) {
 	/*
 	 * This function answers the question: is the interval from point 'ileft' to point 'ileft+1' a period?
 	 */
@@ -366,19 +366,19 @@ static bool PointProcess_isPeriod (PointProcess me, long ileft, double minimumPe
 	 * Period condition 1: both 'ileft' and 'iright' have to be within the point process.
 	 */
 	if (ileft < 1 || iright > my nt) {
-		return false;
+		return FALSE;
 	} else {
 		/*
 		 * Period condition 2: the interval has to be within the boundaries, if specified.
 		 */
 		if (minimumPeriod == maximumPeriod) {
-			return true;   // all intervals count as periods, irrespective of absolute size and relative size
+			return TRUE;   /* All intervals count as periods, irrespective of absolute size and relative size. */
 		} else {
 			double interval = my t [iright] - my t [ileft];
 			if (interval <= 0.0 || interval < minimumPeriod || interval > maximumPeriod) {
-				return false;
+				return FALSE;
 			} else if (! NUMdefined (maximumPeriodFactor) || maximumPeriodFactor < 1.0) {
-				return true;
+				return TRUE;
 			} else {
 				/*
 				 * Period condition 3: the interval cannot be too different from both of its neigbours, if any.
@@ -388,7 +388,7 @@ static bool PointProcess_isPeriod (PointProcess me, long ileft, double minimumPe
 				double previousIntervalFactor = NUMdefined (previousInterval) && previousInterval > 0.0 ? interval / previousInterval : NUMundefined;
 				double nextIntervalFactor = NUMdefined (nextInterval) && nextInterval > 0.0 ? interval / nextInterval : NUMundefined;
 				if (! NUMdefined (previousIntervalFactor) && ! NUMdefined (nextIntervalFactor)) {
-					return true;   // no neighbours: this is a period
+					return TRUE;   /* No neighbours: this is a period. */
 				}
 				if (NUMdefined (previousIntervalFactor) && previousIntervalFactor > 0.0 && previousIntervalFactor < 1.0) {
 					previousIntervalFactor = 1.0 / previousIntervalFactor;
@@ -399,26 +399,26 @@ static bool PointProcess_isPeriod (PointProcess me, long ileft, double minimumPe
 				if (NUMdefined (previousIntervalFactor) && previousIntervalFactor > maximumPeriodFactor &&
 					NUMdefined (nextIntervalFactor) && nextIntervalFactor > maximumPeriodFactor)
 				{
-					return false;
+					return FALSE;
 				}
 			}
 		}
 	}
-	return true;
+	return TRUE;
 }
 
 long PointProcess_getNumberOfPeriods (PointProcess me, double tmin, double tmax,
 	double minimumPeriod, double maximumPeriod, double maximumPeriodFactor)
 {
-	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
-	long imin, imax;
-	long numberOfPeriods = PointProcess_getWindowPoints (me, tmin, tmax, & imin, & imax) - 1;
+	long imin, imax, numberOfPeriods, i;
+	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   /* Autowindowing. */
+	numberOfPeriods = PointProcess_getWindowPoints (me, tmin, tmax, & imin, & imax) - 1;
 	if (numberOfPeriods < 1) return 0;
-	for (long i = imin; i < imax; i ++) {
+	for (i = imin; i < imax; i ++) {
 		if (PointProcess_isPeriod (me, i, minimumPeriod, maximumPeriod, maximumPeriodFactor)) {
-			(void) 0;   // this interval counts as a period
+			(void) 0;   /* This interval counts as a period. */
 		} else {
-			numberOfPeriods --;   // this interval does not count as a period
+			numberOfPeriods --;   /* This interval does not count as a period. */
 		}
 	}
 	return numberOfPeriods;
@@ -427,16 +427,16 @@ long PointProcess_getNumberOfPeriods (PointProcess me, double tmin, double tmax,
 double PointProcess_getMeanPeriod (PointProcess me, double tmin, double tmax,
 	double minimumPeriod, double maximumPeriod, double maximumPeriodFactor)
 {
-	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
+	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   /* Autowindowing. */
 	long imin, imax;
 	long numberOfPeriods = PointProcess_getWindowPoints (me, tmin, tmax, & imin, & imax) - 1;
 	if (numberOfPeriods < 1) return NUMundefined;
 	double sum = 0.0;
 	for (long i = imin; i < imax; i ++) {
 		if (PointProcess_isPeriod (me, i, minimumPeriod, maximumPeriod, maximumPeriodFactor)) {
-			sum += my t [i + 1] - my t [i];   // this interval counts as a period
+			sum += my t [i + 1] - my t [i];   /* This interval counts as a period. */
 		} else {
-			numberOfPeriods --;   // this interval does not count as a period
+			numberOfPeriods --;   /* This interval does not count as a period. */
 		}
 	}
 	return numberOfPeriods > 0 ? sum / numberOfPeriods : NUMundefined;
@@ -445,7 +445,7 @@ double PointProcess_getMeanPeriod (PointProcess me, double tmin, double tmax,
 double PointProcess_getStdevPeriod (PointProcess me, double tmin, double tmax,
 	double minimumPeriod, double maximumPeriod, double maximumPeriodFactor)
 {
-	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
+	if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   /* Autowindowing. */
 	long imin, imax;
 	long numberOfPeriods = PointProcess_getWindowPoints (me, tmin, tmax, & imin, & imax) - 1;
 	if (numberOfPeriods < 2) return NUMundefined;
@@ -455,9 +455,9 @@ double PointProcess_getStdevPeriod (PointProcess me, double tmin, double tmax,
 	double sum = 0.0;
 	for (long i = imin; i < imax; i ++) {
 		if (PointProcess_isPeriod (me, i, minimumPeriod, maximumPeriod, maximumPeriodFactor)) {
-			sum += my t [i + 1] - my t [i];   // this interval counts as a period
+			sum += my t [i + 1] - my t [i];   /* This interval counts as a period. */
 		} else {
-			numberOfPeriods --;   // this interval does not count as a period
+			numberOfPeriods --;   /* This interval does not count as a period. */
 		}
 	}
 	if (numberOfPeriods < 2) return NUMundefined;
diff --git a/fon/PointProcess.h b/fon/PointProcess.h
index 27b5e01..89165a7 100644
--- a/fon/PointProcess.h
+++ b/fon/PointProcess.h
@@ -2,7 +2,7 @@
 #define _PointProcess_h_
 /* PointProcess.h
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,25 +23,26 @@
 #include "Graphics.h"
 
 #include "PointProcess_def.h"
+oo_CLASS_CREATE (PointProcess, Function);
 
-autoPointProcess PointProcess_create (double startingTime, double finishingTime, long initialMaxnt);
-autoPointProcess PointProcess_createPoissonProcess (double startingTime, double finishingTime, double density);
-void PointProcess_init (PointProcess me, double startingTime, double finishingTime, long initialMaxnt);
+PointProcess PointProcess_create (double startingTime, double finishingTime, long initialMaxnt);
+PointProcess PointProcess_createPoissonProcess (double startingTime, double finishingTime, double density);
+void PointProcess_init (I, double startingTime, double finishingTime, long initialMaxnt);
 long PointProcess_getLowIndex (PointProcess me, double t);
 long PointProcess_getHighIndex (PointProcess me, double t);
 long PointProcess_getNearestIndex (PointProcess me, double t);
-long PointProcess_getWindowPoints (PointProcess me, double tmin, double tmax, long *p_imin, long *p_imax);
+long PointProcess_getWindowPoints (PointProcess me, double tmin, double tmax, long *imin, long *imax);
 void PointProcess_addPoint (PointProcess me, double t);
 long PointProcess_findPoint (PointProcess me, double t);
 void PointProcess_removePoint (PointProcess me, long index);
 void PointProcess_removePointNear (PointProcess me, double t);
 void PointProcess_removePoints (PointProcess me, long first, long last);
 void PointProcess_removePointsBetween (PointProcess me, double fromTime, double toTime);
-void PointProcess_draw (PointProcess me, Graphics g, double fromTime, double toTime, bool garnish);
+void PointProcess_draw (PointProcess me, Graphics g, double fromTime, double toTime, int garnish);
 double PointProcess_getInterval (PointProcess me, double t);
-autoPointProcess PointProcesses_union (PointProcess me, PointProcess thee);
-autoPointProcess PointProcesses_intersection (PointProcess me, PointProcess thee);
-autoPointProcess PointProcesses_difference (PointProcess me, PointProcess thee);
+PointProcess PointProcesses_union (PointProcess me, PointProcess thee);
+PointProcess PointProcesses_intersection (PointProcess me, PointProcess thee);
+PointProcess PointProcesses_difference (PointProcess me, PointProcess thee);
 void PointProcess_fill (PointProcess me, double tmin, double tmax, double period);
 void PointProcess_voice (PointProcess me, double period, double maxT);
 
diff --git a/fon/PointProcess_and_Sound.cpp b/fon/PointProcess_and_Sound.cpp
index 0d3545b..196469b 100644
--- a/fon/PointProcess_and_Sound.cpp
+++ b/fon/PointProcess_and_Sound.cpp
@@ -1,6 +1,6 @@
 /* PointProcess_and_Sound.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,9 +17,21 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2003/04/15 improved handling of edges in Sound_getRms
+ * pb 2003/07/20 moved shimmer measurements to VoiceAnalysis.c
+ * pb 2005/07/07 glottal source signals
+ * pb 2006/12/30 new Sound_create API
+ * pb 2007/02/25 changed default sampling frequency to 44100 Hz
+ * pb 2008/01/19 double
+ * pb 2011/06/06 C++
+ * pb 2011/06/19 removed a bug in PointProcess_to_Sound_phonation that caused a crash if a pulse came after the time domain
+ */
+
 #include "PointProcess_and_Sound.h"
 
-autoSound PointProcess_to_Sound_pulseTrain
+Sound PointProcess_to_Sound_pulseTrain
 	(PointProcess me, double samplingFrequency,
 	 double adaptFactor, double adaptTime, long interpolationDepth)
 {
@@ -32,7 +44,7 @@ autoSound PointProcess_to_Sound_pulseTrain
 		double *sound = thy z [1];
 		for (long it = 1; it <= my nt; it ++) {
 			double t = my t [it], amplitude = 0.9, angle, halfampsinangle;
-			long mid = Sampled_xToNearestIndex (thee.get(), t);
+			long mid = Sampled_xToNearestIndex (thee.peek(), t);
 			if (it <= 2 || my t [it - 2] < my t [it] - adaptTime) {
 				amplitude *= adaptFactor;
 				if (it == 1 || my t [it - 1] < my t [it] - adaptTime)
@@ -41,35 +53,35 @@ autoSound PointProcess_to_Sound_pulseTrain
 			long begin = mid - interpolationDepth, end = mid + interpolationDepth;
 			if (begin < 1) begin = 1;
 			if (end > thy nx) end = thy nx;
-			angle = NUMpi * (Sampled_indexToX (thee.get(), begin) - t) / thy dx;
+			angle = NUMpi * (Sampled_indexToX (thee.peek(), begin) - t) / thy dx;
 			halfampsinangle = 0.5 * amplitude * sin (angle);
 			for (long j = begin; j <= end; j ++) {
 				if (fabs (angle) < 1e-6)
 					sound [j] += amplitude;
 				else if (angle < 0.0)
 					sound [j] += halfampsinangle *
-						(1.0 + cos (angle / (mid - begin + 1))) / angle;
+						(1 + cos (angle / (mid - begin + 1))) / angle;
 				else
 					sound [j] += halfampsinangle *
-						(1.0 + cos (angle / (end - mid + 1))) / angle;
+						(1 + cos (angle / (end - mid + 1))) / angle;
 				angle += NUMpi;
 				halfampsinangle = - halfampsinangle;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pulse train not synthesized.");
 	}
 }
 
-autoSound PointProcess_to_Sound_phonation
+Sound PointProcess_to_Sound_phonation
 	(PointProcess me, double samplingFrequency, double adaptFactor, double maximumPeriod,
 	 double openPhase, double collisionPhase, double power1, double power2)
 {
 	try {
 		long sound_nt = 1 + (long) floor ((my xmax - my xmin) * samplingFrequency);   // >= 1
 		double dt = 1.0 / samplingFrequency;
-		double tmid = (my xmin + my xmax) / 2.0;
+		double tmid = (my xmin + my xmax) / 2;
 		double t1 = tmid - 0.5 * (sound_nt - 1) * dt;
 		double a = (power1 + power2 + 1.0) / (power2 - power1);
 		double re = openPhase - collisionPhase;
@@ -103,7 +115,7 @@ autoSound PointProcess_to_Sound_phonation
 		for (long it = 1; it <= my nt; it ++) {
 			double t = my t [it], amplitude = a;
 			double period = NUMundefined, te, phase, flow;
-			long midSample = Sampled_xToNearestIndex (thee.get(), t);
+			long midSample = Sampled_xToNearestIndex (thee.peek(), t);
 			/*
 			 * Determine the period: first look left (because that's where the open phase is),
 			 * then right.
@@ -114,15 +126,15 @@ autoSound PointProcess_to_Sound_phonation
 					period = NUMundefined;
 				}
 			}
-			if (! NUMdefined (period)) {
+			if (period == NUMundefined) {
 				if (it < my nt) {
 					period = my t [it + 1] - my t [it];
 					if (period > maximumPeriod) {
 						period = NUMundefined;
 					}
 				}
-				if (! NUMdefined (period)) {
-					period = 0.5 * maximumPeriod;   // some default value
+				if (period == NUMundefined) {
+					period = 0.5 * maximumPeriod;   /* Some default value. */
 				}
 			}
 			te = re * period;
@@ -165,7 +177,7 @@ autoSound PointProcess_to_Sound_phonation
 				double value = flowDerivative * factorPerSample;
 				long beginSample = midSample + 1;
 				if (beginSample < 1) beginSample = 1;
-				long endSample = midSample + (long) floor (20.0 * ta / thy dx);
+				long endSample = midSample + (long) floor (20 * ta / thy dx);
 				if (endSample > thy nx) endSample = thy nx;
 				for (long isamp = beginSample; isamp <= endSample; isamp ++) {
 					sound [isamp] += value;
@@ -173,8 +185,8 @@ autoSound PointProcess_to_Sound_phonation
 				}
 			}
 		}
-		Vector_scale (thee.get(), 0.9);
-		return thee;
+		Vector_scale (thee.peek(), 0.9);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (phonation).");
 	}
@@ -182,8 +194,8 @@ autoSound PointProcess_to_Sound_phonation
 
 void PointProcess_playPart (PointProcess me, double tmin, double tmax) {
 	try {
-		autoSound sound = PointProcess_to_Sound_pulseTrain (me, 44100.0, 0.7, 0.05, 30);
-		Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+		autoSound sound = PointProcess_to_Sound_pulseTrain (me, 44100, 0.7, 0.05, 30);
+		Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
@@ -194,20 +206,20 @@ void PointProcess_play (PointProcess me) {
 }
 
 void PointProcess_hum (PointProcess me, double tmin, double tmax) {
-	static double formant [1 + 6] = { 0, 600.0, 1400.0, 2400.0, 3400.0, 4500.0, 5500.0 };
-	static double bandwidth [1 + 6] = { 0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0 };
+	static double formant [1 + 6] = { 0, 600, 1400, 2400, 3400, 4500, 5500 };
+	static double bandwidth [1 + 6] = { 0, 50, 100, 200, 300, 400, 500 };
 	autoSound sound = PointProcess_to_Sound_pulseTrain (me, 44100, 0.7, 0.05, 30);
-	Sound_filterWithFormants (sound.get(), tmin, tmax, 6, formant, bandwidth);
-	Sound_playPart (sound.get(), tmin, tmax, nullptr, nullptr);
+	Sound_filterWithFormants (sound.peek(), tmin, tmax, 6, formant, bandwidth);
+	Sound_playPart (sound.peek(), tmin, tmax, NULL, NULL);
 }
 
-autoSound PointProcess_to_Sound_hum (PointProcess me) {
-	static double formant [1 + 6] = { 0, 600.0, 1400.0, 2400.0, 3400.0, 4500.0, 5500.0 };
-	static double bandwidth [1 + 6] = { 0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0 };
+Sound PointProcess_to_Sound_hum (PointProcess me) {
+	static double formant [1 + 6] = { 0, 600, 1400, 2400, 3400, 4500, 5500 };
+	static double bandwidth [1 + 6] = { 0, 50, 100, 200, 300, 400, 500 };
 	try {
-		autoSound sound = PointProcess_to_Sound_pulseTrain (me, 44100.0, 0.7, 0.05, 30);
-		Sound_filterWithFormants (sound.get(), my xmin, my xmax, 6, formant, bandwidth);
-		return sound;
+		autoSound sound = PointProcess_to_Sound_pulseTrain (me, 44100, 0.7, 0.05, 30);
+		Sound_filterWithFormants (sound.peek(), my xmin, my xmax, 6, formant, bandwidth);
+		return sound.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound (hum).");
 	}
diff --git a/fon/PointProcess_and_Sound.h b/fon/PointProcess_and_Sound.h
index c6fd9f0..bd4045d 100644
--- a/fon/PointProcess_and_Sound.h
+++ b/fon/PointProcess_and_Sound.h
@@ -1,6 +1,6 @@
 /* PointProcess_and_Sound.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,11 +20,12 @@
 #include "PointProcess.h"
 #include "Sound.h"
 
-autoSound PointProcess_to_Sound_pulseTrain (PointProcess me, double samplingFrequency,
+Sound PointProcess_to_Sound_pulseTrain (PointProcess me, double samplingFrequency,
 	double adaptFactor, double adaptTime, long interpolationDepth);
 /*
 	Function:
-		create a time signal out of a point process.
+		create a time signal out of a point process;
+		return NULL if out of memory.
 	Preconditions:
 		samplingFrequency > 0.0;
 	Arguments:
@@ -33,7 +34,7 @@ autoSound PointProcess_to_Sound_pulseTrain (PointProcess me, double samplingFreq
 		"interpolationDepth" is the number of samples for sinxx interpolation in each direction.
 */
 
-autoSound PointProcess_to_Sound_phonation
+Sound PointProcess_to_Sound_phonation
 	(PointProcess me, double samplingFrequency, double adaptFactor, double maximumPeriod,
 	 double openPhase, double collisionPhase, double power1, double power2);
 #define PointProcess_to_Sound_phonation_DEFAULT_ADAPT_FACTOR  1.0
@@ -46,6 +47,6 @@ autoSound PointProcess_to_Sound_phonation
 void PointProcess_playPart (PointProcess me, double tmin, double tmax);
 void PointProcess_play (PointProcess me);
 void PointProcess_hum (PointProcess me, double tmin, double tmax);
-autoSound PointProcess_to_Sound_hum (PointProcess me);
+Sound PointProcess_to_Sound_hum (PointProcess me);
 
 /* End of file PointProcess_and_Sound.h */
diff --git a/fon/Polygon.cpp b/fon/Polygon.cpp
index e5d3fe2..7c40c22 100644
--- a/fon/Polygon.cpp
+++ b/fon/Polygon.cpp
@@ -1,6 +1,6 @@
 /* Polygon.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,10 +34,10 @@
 #include "oo_DESCRIPTION.h"
 #include "Polygon_def.h"
 
-Thing_implement (Polygon, Daata, 1);
+Thing_implement (Polygon, Data, 1);
 
 void structPolygon :: v_info () {
-	our structDaata :: v_info ();
+	our structData :: v_info ();
 	MelderInfo_writeLine (U"Number of points: ", our numberOfPoints);
 	MelderInfo_writeLine (U"Perimeter: ", Melder_single (Polygon_perimeter (this)));
 }
@@ -62,13 +62,13 @@ void structPolygon :: v_readText (MelderReadText text, int /*formatVersion*/) {
 	}
 }
 
-autoPolygon Polygon_create (long numberOfPoints) {
+Polygon Polygon_create (long numberOfPoints) {
 	try {
 		autoPolygon me = Thing_new (Polygon);
 		my numberOfPoints = numberOfPoints;
 		my x = NUMvector <double> (1, numberOfPoints);
 		my y = NUMvector <double> (1, numberOfPoints);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Polygon not created.");
 	}
diff --git a/fon/Polygon.h b/fon/Polygon.h
index 966c0f8..e6d6927 100644
--- a/fon/Polygon.h
+++ b/fon/Polygon.h
@@ -2,7 +2,7 @@
 #define _Polygon_h_
 /* Polygon.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,13 +23,14 @@
 #include "Graphics.h"
 
 #include "Polygon_def.h"
+oo_CLASS_CREATE (Polygon, Data);
 
-autoPolygon Polygon_create (long numberOfPoints);
+Polygon Polygon_create (long numberOfPoints);
 /*
 	Function:
 		create a new instance of Polygon.
 	Return value:
-		the newly created object.
+		a pointer to the newly created object, or NULL in case of failure.
 	Precondition:
 		numberOfPoints >= 1;
 	Failure:
@@ -49,7 +50,7 @@ void Polygon_salesperson (Polygon me, long numberOfIterations);
 	Function:
 		change the order of the points in such a way that it defines the shortest closed path.
 	Preconditions:
-		!! me;
+		me != NULL;
 		numberOfIterations >= 1;
 	Postconditions:
 		my numberOfPoints == my old numberOfPoints;
diff --git a/fon/Polygon_def.h b/fon/Polygon_def.h
index db68585..6b4e9d0 100644
--- a/fon/Polygon_def.h
+++ b/fon/Polygon_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Polygon
-oo_DEFINE_CLASS (Polygon, Daata)
+oo_DEFINE_CLASS (Polygon, Data)
 
 	oo_LONG (numberOfPoints)
 
diff --git a/fon/Praat_tests.cpp b/fon/Praat_tests.cpp
index 563368e..d10d524 100644
--- a/fon/Praat_tests.cpp
+++ b/fon/Praat_tests.cpp
@@ -17,23 +17,9 @@
 #include "Praat_tests_enums.h"
 #include <string>
 
-static void testAutoData (autoDaata data) {
-	fprintf (stderr, "testAutoData: %p %p\n", data.get(), data -> name);
-}
-static void testAutoDataRef (autoDaata& data) {
-	fprintf (stderr, "testAutoDataRef: %p %p\n", data.get(), data -> name);
-}
-static void testData (Daata data) {
-	fprintf (stderr, "testData: %p %s\n", data, Melder_peek32to8 (data -> name));
-}
-static autoDaata newAutoData () {
-	autoDaata data (Thing_new (Daata));
-	return data;
-}
-
 int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *arg4) {
 	int64 n = Melder_atoi (arg1);
-	double t = 0.0;
+	double t;
 	(void) arg1;
 	(void) arg2;
 	(void) arg3;
@@ -63,11 +49,9 @@ int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *ar
 			NUMvector_free (array, 1);
 		} break;
 		case kPraatTests_TIME_INTEGER: {
-			int64 sum = 0;
-			#if ! useCarbon
+			double sum = 0;
 			for (int64 i = 1; i <= n; i ++)
 				sum += i * (i - 1) * (i - 2);
-			#endif
 			t = Melder_stopwatch ();
 			MelderInfo_writeLine (sum);
 		} break;
@@ -82,7 +66,7 @@ int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *ar
 			uint64_t sum = 0;
 			double fn = n;
 			for (double fi = 1.0; fi <= fn; fi = fi + 1.0)
-				sum += (uint32) fi;
+				sum += (uint32_t) fi;
 			t = Melder_stopwatch ();   // 2.59   // 1.60
 			MelderInfo_writeLine (sum);
 		} break;
@@ -90,23 +74,23 @@ int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *ar
 			uint64_t sum = 0;
 			double fn = n;
 			for (double fi = 1.0; fi <= fn; fi = fi + 1.0)
-				sum += (uint32) ((int32) (fi - 2147483648.0) + 2147483647L + 1);
+				sum += (uint32_t) ((int32_t) (fi - 2147483648.0) + 2147483647L + 1);
 			t = Melder_stopwatch ();   // 1.60
 			MelderInfo_writeLine (sum);
 		} break;
 		case kPraatTests_TIME_UNSIGNED_TO_FLOAT_BUILTIN: {
 			double sum = 0.0;
-			uint32 nu = (uint32) n;
-			for (uint32 iu = 1; iu <= nu; iu ++)
+			uint32_t nu = (uint32_t) n;
+			for (uint32_t iu = 1; iu <= nu; iu ++)
 				sum += (double) iu;
 			t = Melder_stopwatch ();   // 1.35
 			MelderInfo_writeLine (sum);
 		} break;
 		case kPraatTests_TIME_UNSIGNED_TO_FLOAT_EXTERN: {
 			double sum = 0.0;
-			uint32 nu = (uint32) n;
-			for (uint32 iu = 1; iu <= nu; iu ++)
-				sum += (double) (int32) (iu - 2147483647L - 1) + 2147483648.0;
+			uint32_t nu = (uint32_t) n;
+			for (uint32_t iu = 1; iu <= nu; iu ++)
+				sum += (double) (int32_t) (iu - 2147483647L - 1) + 2147483648.0;
 			t = Melder_stopwatch ();   // 0.96
 			MelderInfo_writeLine (sum);
 		} break;
@@ -121,17 +105,6 @@ int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *ar
 			}
 			t = Melder_stopwatch ();
 		} break;
-		case kPraatTests_TIME_STRING_MELDER_32_ALLOC: {
-			char32 word [] { U"abc" };
-			word [2] = NUMrandomInteger ('a', 'z');
-			for (int64 i = 1; i <= n; i ++) {
-				autoMelderString string;
-				MelderString_copy (& string, word);
-				for (int j = 1; j <= 30; j ++)
-					MelderString_append (& string, word);
-			}
-			t = Melder_stopwatch ();
-		} break;
 		case kPraatTests_TIME_STRING_CPP_S: {
 			std::string s = "";
 			char word [] { "abc" };
@@ -242,79 +215,6 @@ int Praat_tests (int itest, char32 *arg1, char32 *arg2, char32 *arg3, char32 *ar
 			}
 			t = Melder_stopwatch ();
 		} break;
-		case kPraatTests_THING_AUTO: {
-			int numberOfThingsBefore = theTotalNumberOfThings;
-			{
-				Melder_casual (U"1\n");
-				autoDaata data = Thing_new (Daata);
-				Thing_setName (data.get(), U"hello");
-				Melder_casual (U"2\n");
-				testData (data.get());
-				testAutoData (data.move());
-				autoDaata data18 = Thing_new (Daata);
-				testAutoData (data18.move());
-				fprintf (stderr, "3\n");
-				autoDaata data2 = newAutoData ();
-				fprintf (stderr, "4\n");
-				autoDaata data3 = newAutoData ();
-				fprintf (stderr, "5\n");
-				//data2 = data;   // disabled l-value copy assignment from same class
-				fprintf (stderr, "6\n");
-				autoOrdered ordered = Thing_new (Ordered);
-				fprintf (stderr, "7\n");
-				//data = ordered;   // disabled l-value copy assignment from subclass
-				data = ordered.move();
-				//ordered = data;   // disabled l-value copy assignment from superclass
-				//ordered = data.move();   // assignment from superclass to subclass is rightfully refused by compiler
-				fprintf (stderr, "8\n");
-				data2 = newAutoData ();
-				fprintf (stderr, "8a\n");
-				autoDaata data5 = newAutoData ();
-				fprintf (stderr, "8b\n");
-				data2 = data5.move();
-				fprintf (stderr, "9\n");
-				//ordered = data;   // rightfully refused by compiler
-				fprintf (stderr, "10\n");
-				//autoOrdered ordered2 = Thing_new (Daata);   // rightfully refused by compiler
-				fprintf (stderr, "11\n");
-				autoDaata data4 = Thing_new (Ordered);   // constructor
-				fprintf (stderr, "12\n");
-				//autoDaata data6 = data4;   // disabled l-value copy constructor from same class
-				fprintf (stderr, "13\n");
-				autoDaata data7 = data4.move();
-				fprintf (stderr, "14\n");
-				autoOrdered ordered3 = Thing_new (Ordered);
-				autoDaata data8 = ordered3.move();
-				fprintf (stderr, "15\n");
-				//autoDaata data9 = ordered;   // disabled l-value copy constructor from subclass
-				fprintf (stderr, "16\n");
-				autoDaata data10 = data7.move();
-				fprintf (stderr, "17\n");
-				autoDaata data11 = Thing_new (Daata);   // constructor, move assignment, null destructor
-				fprintf (stderr, "18\n");
-				data11 = Thing_new (Ordered);
-				fprintf (stderr, "19\n");
-				testAutoDataRef (data11);
-				fprintf (stderr, "20\n");
-				//data11 = nullptr;   // disabled implicit assignment of pointer to autopointer
-				fprintf (stderr, "21\n");
-			}
-			int numberOfThingsAfter = theTotalNumberOfThings;
-			fprintf (stderr, "Number of things: before %d, after %d\n", numberOfThingsBefore, numberOfThingsAfter);
-			#if 1
-				MelderCallback<void,structDaata>::FunctionType f;
-				typedef void (*DataFunc) (Daata);
-				typedef void (*OrderedFunc) (Ordered);
-				DataFunc dataFun;
-				OrderedFunc orderedFun;
-				MelderCallback<void,structDaata> dataFun2 (dataFun);
-				MelderCallback<void,structOrdered> orderedFun2 (orderedFun);
-				MelderCallback<void,structDaata> dataFun3 (orderedFun);
-				//MelderCallback<void,structOrdered> orderedFun3 (dataFun);   // rightfully refused by compiler
-				autoDaata data = Thing_new (Daata);
-				dataFun3 (data.get());
-			#endif
-		} break;
 	}
 	MelderInfo_writeLine (Melder_single (t / n * 1e9), U" nanoseconds");
 	MelderInfo_close ();
diff --git a/fon/Praat_tests_enums.h b/fon/Praat_tests_enums.h
index 16387fb..fd429d0 100644
--- a/fon/Praat_tests_enums.h
+++ b/fon/Praat_tests_enums.h
@@ -1,5 +1,5 @@
 /* Praat_tests_enums.h */
-/* Paul Boersma, 26 September 2015 */
+/* Paul Boersma, 29 June 2015 */
 
 enums_begin (kPraatTests, 0)
 	enums_add (kPraatTests, 0, _, U"_")
@@ -14,18 +14,16 @@ enums_begin (kPraatTests, 0)
 	enums_add (kPraatTests, 9, TIME_UNSIGNED_TO_FLOAT_BUILTIN, U"TimeUnsignedToFloat_builtin")
 	enums_add (kPraatTests, 10, TIME_UNSIGNED_TO_FLOAT_EXTERN, U"TimeUnsignedToFloat_extern")
 	enums_add (kPraatTests, 11, TIME_STRING_MELDER_32, U"TimeStringMelder32")
-	enums_add (kPraatTests, 12, TIME_STRING_MELDER_32_ALLOC, U"TimeStringMelder32_alloc")
-	enums_add (kPraatTests, 13, TIME_STRING_CPP_S, U"TimeStringC++S")
-	enums_add (kPraatTests, 14, TIME_STRING_CPP_C, U"TimeStringC++C")
-	enums_add (kPraatTests, 15, TIME_STRING_CPP_WS, U"TimeStringC++WS")
-	enums_add (kPraatTests, 16, TIME_STRING_CPP_WC, U"TimeStringC++WC")
-	enums_add (kPraatTests, 17, TIME_STRING_CPP_32, U"TimeStringC++32")
-	enums_add (kPraatTests, 18, TIME_STRING_CPP_U32STRING, U"TimeStringC++U32STRING")
-	enums_add (kPraatTests, 19, TIME_STRCPY, U"TimeStrcpy")
-	enums_add (kPraatTests, 20, TIME_WCSCPY, U"TimeWcscpy")
-	enums_add (kPraatTests, 21, TIME_STR32CPY, U"TimeStr32cpy")
-	enums_add (kPraatTests, 22, TIME_GRAPHICS_TEXT_TOP, U"TimeGraphicsTextTop")
-	enums_add (kPraatTests, 23, THING_AUTO, U"ThingAuto")
-enums_end (kPraatTests, 23, CHECK_RANDOM_1009_2009)
+	enums_add (kPraatTests, 12, TIME_STRING_CPP_S, U"TimeStringC++S")
+	enums_add (kPraatTests, 13, TIME_STRING_CPP_C, U"TimeStringC++C")
+	enums_add (kPraatTests, 14, TIME_STRING_CPP_WS, U"TimeStringC++WS")
+	enums_add (kPraatTests, 15, TIME_STRING_CPP_WC, U"TimeStringC++WC")
+	enums_add (kPraatTests, 16, TIME_STRING_CPP_32, U"TimeStringC++32")
+	enums_add (kPraatTests, 17, TIME_STRING_CPP_U32STRING, U"TimeStringC++U32STRING")
+	enums_add (kPraatTests, 18, TIME_STRCPY, U"TimeStrcpy")
+	enums_add (kPraatTests, 19, TIME_WCSCPY, U"TimeWcscpy")
+	enums_add (kPraatTests, 20, TIME_STR32CPY, U"TimeStr32cpy")
+	enums_add (kPraatTests, 21, TIME_GRAPHICS_TEXT_TOP, U"TimeGraphicsTextTop")
+enums_end (kPraatTests, 21, CHECK_RANDOM_1009_2009)
 
 /* End of file Praat_tests_enums.h */
diff --git a/fon/RealTier.cpp b/fon/RealTier.cpp
index 917afba..5005a76 100644
--- a/fon/RealTier.cpp
+++ b/fon/RealTier.cpp
@@ -1,6 +1,6 @@
 /* RealTier.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,18 +43,18 @@
 
 Thing_implement (RealPoint, AnyPoint, 0);
 
-autoRealPoint RealPoint_create (double time, double value) {
+RealPoint RealPoint_create (double time, double value) {
 	autoRealPoint me = Thing_new (RealPoint);
 	my number = time;
 	my value = value;
-	return me;
+	return me.transfer();
 }
 
 /********** class RealTier **********/
 
 void structRealTier :: v_info () {
 	structFunction :: v_info ();
-	MelderInfo_writeLine (U"Number of points: ", our points.size);
+	MelderInfo_writeLine (U"Number of points: ", our numberOfPoints ());
 	MelderInfo_writeLine (U"Minimum value: ", RealTier_getMinimumValue (this));
 	MelderInfo_writeLine (U"Maximum value: ", RealTier_getMaximumValue (this));
 }
@@ -69,28 +69,45 @@ double structRealTier :: v_getFunction1 (long irow, double x) {
 	return RealTier_getValueAtTime (this, x);
 }
 
-Thing_implement (RealTier, AnyTier, 0);
+void structRealTier :: v_shiftX (double xfrom, double xto) {
+	RealTier_Parent :: v_shiftX (xfrom, xto);
+	for (long i = 1; i <= our numberOfPoints (); i ++) {
+		RealPoint point = our point (i);
+		NUMshift (& point -> number, xfrom, xto);
+	}
+}
+
+void structRealTier :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
+	RealTier_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	for (long i = 1; i <= our numberOfPoints (); i ++) {
+		RealPoint point = our point (i);
+		NUMscale (& point -> number, xminfrom, xmaxfrom, xminto, xmaxto);
+	}
+}
+
+Thing_implement (RealTier, Function, 0);
 
 void RealTier_init (RealTier me, double tmin, double tmax) {
 	my xmin = tmin;
 	my xmax = tmax;
+	my points = SortedSetOfDouble_create ();
 }
 
-autoRealTier RealTier_create (double tmin, double tmax) {
+RealTier RealTier_create (double tmin, double tmax) {
 	try {
 		autoRealTier me = Thing_new (RealTier);
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"RealTier not created.");
 	}
 }
 
-autoRealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas) {
+RealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas) {
 	try {
-		autoRealTier me = Thing_newFromClass (klas).static_cast_move <structRealTier> ();
-		RealTier_init (me.get(), tmin, tmax);
-		return me;
+		autoRealTier me = static_cast <RealTier> (Thing_newFromClass (klas));
+		RealTier_init (me.peek(), tmin, tmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (klas -> className, U" not created.");
 	}
@@ -99,29 +116,29 @@ autoRealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas)
 void RealTier_addPoint (RealTier me, double t, double value) {
 	try {
 		autoRealPoint point = RealPoint_create (t, value);
-		my points. addItem_move (point.move());
+		Collection_addItem (my points, point.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": point not added.");
 	}
 }
 
 double RealTier_getValueAtIndex (RealTier me, long i) {
-	if (i < 1 || i > my points.size) return NUMundefined;
-	return my points.at [i] -> value;
+	if (i < 1 || i > my numberOfPoints ()) return NUMundefined;
+	return my point (i) -> value;
 }
 
 double RealTier_getValueAtTime (RealTier me, double t) {
-	long n = my points.size;
+	long n = my numberOfPoints ();
 	if (n == 0) return NUMundefined;
-	RealPoint pointRight = my points.at [1];
+	RealPoint pointRight = my point (1);
 	if (t <= pointRight -> number) return pointRight -> value;   // constant extrapolation
-	RealPoint pointLeft = my points.at [n];
+	RealPoint pointLeft = my point (n);
 	if (t >= pointLeft -> number) return pointLeft -> value;   // constant extrapolation
 	Melder_assert (n >= 2);
-	long ileft = AnyTier_timeToLowIndex (me->asAnyTier(), t), iright = ileft + 1;
+	long ileft = AnyTier_timeToLowIndex (me, t), iright = ileft + 1;
 	Melder_assert (ileft >= 1 && iright <= n);
-	pointLeft = my points.at [ileft];
-	pointRight = my points.at [iright];
+	pointLeft = my point (ileft);
+	pointRight = my point (iright);
 	double tleft = pointLeft -> number, fleft = pointLeft -> value;
 	double tright = pointRight -> number, fright = pointRight -> value;
 	return t == tright ? fright   // be very accurate
@@ -131,9 +148,9 @@ double RealTier_getValueAtTime (RealTier me, double t) {
 
 double RealTier_getMaximumValue (RealTier me) {
 	double result = NUMundefined;
-	long n = my points.size;
+	long n = my numberOfPoints ();
 	for (long i = 1; i <= n; i ++) {
-		RealPoint point = my points.at [i];
+		RealPoint point = my point (i);
 		if (result == NUMundefined || point -> value > result)
 			result = point -> value;
 	}
@@ -142,9 +159,9 @@ double RealTier_getMaximumValue (RealTier me) {
 
 double RealTier_getMinimumValue (RealTier me) {
 	double result = NUMundefined;
-	long n = my points.size;
+	long n = my numberOfPoints ();
 	for (long i = 1; i <= n; i ++) {
-		RealPoint point = my points.at [i];
+		RealPoint point = my point (i);
 		if (result == NUMundefined || point -> value < result)
 			result = point -> value;
 	}
@@ -152,14 +169,14 @@ double RealTier_getMinimumValue (RealTier me) {
 }
 
 double RealTier_getArea (RealTier me, double tmin, double tmax) {
-	long n = my points.size, imin, imax;
-	//RealPoint *points = & my points [0];
+	long n = my numberOfPoints (), imin, imax;
+	RealPoint *points = my peekPoints ();
 	if (n == 0) return NUMundefined;
-	if (n == 1) return (tmax - tmin) * my points.at [1] -> value;
-	imin = AnyTier_timeToLowIndex (me->asAnyTier(), tmin);
-	if (imin == n) return (tmax - tmin) * my points.at [n] -> value;
-	imax = AnyTier_timeToHighIndex (me->asAnyTier(), tmax);
-	if (imax == 1) return (tmax - tmin) * my points.at [1] -> value;
+	if (n == 1) return (tmax - tmin) * points [1] -> value;
+	imin = AnyTier_timeToLowIndex (me, tmin);
+	if (imin == n) return (tmax - tmin) * points [n] -> value;
+	imax = AnyTier_timeToHighIndex (me, tmax);
+	if (imax == 1) return (tmax - tmin) * points [1] -> value;
 	Melder_assert (imin < n);
 	Melder_assert (imax > 1);
 	/*
@@ -169,20 +186,10 @@ double RealTier_getArea (RealTier me, double tmin, double tmax) {
 	double area = 0.0;
 	for (long i = imin; i < imax; i ++) {
 		double tleft, fleft, tright, fright;
-		if (i == imin) {
-			tleft = tmin;
-			fleft = RealTier_getValueAtTime (me, tmin);
-		} else {
-			tleft = my points.at [i] -> number;
-			fleft = my points.at [i] -> value;
-		}
-		if (i + 1 == imax) {
-			tright = tmax;
-			fright = RealTier_getValueAtTime (me, tmax);
-		} else {
-			tright = my points.at [i + 1] -> number;
-			fright = my points.at [i + 1] -> value;
-		}
+		if (i == imin) tleft = tmin, fleft = RealTier_getValueAtTime (me, tmin);
+		else tleft = points [i] -> number, fleft = points [i] -> value;
+		if (i + 1 == imax) tright = tmax, fright = RealTier_getValueAtTime (me, tmax);
+		else tright = points [i + 1] -> number, fright = points [i + 1] -> value;
 		area += 0.5 * (fleft + fright) * (tright - tleft);
 	}
 	return area;
@@ -196,14 +203,15 @@ double RealTier_getMean_curve (RealTier me, double tmin, double tmax) {
 }
 
 double RealTier_getStandardDeviation_curve (RealTier me, double tmin, double tmax) {
-	long n = my points.size, imin, imax;
+	long n = my numberOfPoints (), imin, imax;
+	RealPoint *points = my peekPoints ();
 	double mean, integral = 0.0;
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindow
 	if (n == 0) return NUMundefined;
 	if (n == 1) return 0.0;
-	imin = AnyTier_timeToLowIndex (me->asAnyTier(), tmin);
+	imin = AnyTier_timeToLowIndex (me, tmin);
 	if (imin == n) return 0.0;
-	imax = AnyTier_timeToHighIndex (me->asAnyTier(), tmax);
+	imax = AnyTier_timeToHighIndex (me, tmax);
 	if (imax == 1) return 0.0;
 	Melder_assert (imin < n);
 	Melder_assert (imax > 1);
@@ -214,20 +222,10 @@ double RealTier_getStandardDeviation_curve (RealTier me, double tmin, double tma
 	mean = RealTier_getMean_curve (me, tmin, tmax);
 	for (long i = imin; i < imax; i ++) {
 		double tleft, fleft, tright, fright, sum, diff;
-		if (i == imin) {
-			tleft = tmin;
-			fleft = RealTier_getValueAtTime (me, tmin);
-		} else {
-			tleft = my points.at [i] -> number;
-			fleft = my points.at [i] -> value - mean;
-		}
-		if (i + 1 == imax) {
-			tright = tmax;
-			fright = RealTier_getValueAtTime (me, tmax);
-		} else {
-			tright = my points.at [i + 1] -> number;
-			fright = my points.at [i + 1] -> value - mean;
-		}
+		if (i == imin) tleft = tmin, fleft = RealTier_getValueAtTime (me, tmin);
+		else tleft = points [i] -> number, fleft = points [i] -> value - mean;
+		if (i + 1 == imax) tright = tmax, fright = RealTier_getValueAtTime (me, tmax);
+		else tright = points [i + 1] -> number, fright = points [i + 1] -> value - mean;
 		/*
 		 * The area is integral dt f^2
 		 *   = integral dt [f1 + (f2-f1)/(t2-t1) (t-t1)]^2
@@ -246,33 +244,35 @@ double RealTier_getStandardDeviation_curve (RealTier me, double tmin, double tma
 }
 
 double RealTier_getMean_points (RealTier me, double tmin, double tmax) {
-	long n = my points.size, imin, imax;
+	long n = my numberOfPoints (), imin, imax;
 	double sum = 0.0;
+	RealPoint *points = my peekPoints ();
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindow
-	n = AnyTier_getWindowPoints (me->asAnyTier(), tmin, tmax, & imin, & imax);
+	n = AnyTier_getWindowPoints (me, tmin, tmax, & imin, & imax);
 	if (n == 0) return NUMundefined;
 	for (long i = imin; i <= imax; i ++)
-		sum += my points.at [i] -> value;
+		sum += points [i] -> value;
 	return sum / n;
 }
 
 double RealTier_getStandardDeviation_points (RealTier me, double tmin, double tmax) {
-	long n = my points.size, imin, imax;
+	long n = my numberOfPoints (), imin, imax;
 	double mean, sum = 0.0;
+	RealPoint *points = my peekPoints ();
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }   // autowindow
-	n = AnyTier_getWindowPoints (me->asAnyTier(), tmin, tmax, & imin, & imax);
+	n = AnyTier_getWindowPoints (me, tmin, tmax, & imin, & imax);
 	if (n < 2) return NUMundefined;
 	mean = RealTier_getMean_points (me, tmin, tmax);
 	for (long i = imin; i <= imax; i ++) {
-		double diff = my points.at [i] -> value - mean;
+		double diff = points [i] -> value - mean;
 		sum += diff * diff;
 	}
 	return sqrt (sum / (n - 1));
 }
 
 void RealTier_multiplyPart (RealTier me, double tmin, double tmax, double factor) {
-	for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-		RealPoint point = my points.at [ipoint];
+	for (long ipoint = 1; ipoint <= my numberOfPoints (); ipoint ++) {
+		RealPoint point = my point (ipoint);
 		double t = point -> number;
 		if (t >= tmin && t <= tmax) {
 			point -> value *= factor;
@@ -285,19 +285,19 @@ void RealTier_draw (RealTier me, Graphics g, double tmin, double tmax, double fm
 {
 	bool drawLines = str32str (method, U"lines") || str32str (method, U"Lines");
 	bool drawSpeckles = str32str (method, U"speckles") || str32str (method, U"Speckles");
-	long n = my points.size, imin, imax, i;
+	long n = my numberOfPoints (), imin, imax, i;
 	if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
 	Graphics_setWindow (g, tmin, tmax, fmin, fmax);
 	Graphics_setInner (g);
-	imin = AnyTier_timeToHighIndex (me->asAnyTier(), tmin);
-	imax = AnyTier_timeToLowIndex (me->asAnyTier(), tmax);
+	imin = AnyTier_timeToHighIndex (me, tmin);
+	imax = AnyTier_timeToLowIndex (me, tmax);
 	if (n == 0) {
 	} else if (imax < imin) {
 		double fleft = RealTier_getValueAtTime (me, tmin);
 		double fright = RealTier_getValueAtTime (me, tmax);
 		if (drawLines) Graphics_line (g, tmin, fleft, tmax, fright);
 	} else for (i = imin; i <= imax; i ++) {
-		RealPoint point = my points.at [i];
+		RealPoint point = my point (i);
 		double t = point -> number, f = point -> value;
 		if (drawSpeckles) Graphics_speckle (g, t, f);
 		if (drawLines) {
@@ -310,7 +310,7 @@ void RealTier_draw (RealTier me, Graphics g, double tmin, double tmax, double fm
 			else if (i == imax)
 				Graphics_line (g, t, f, tmax, RealTier_getValueAtTime (me, tmax));
 			else {
-				RealPoint pointRight = my points.at [i + 1];
+				RealPoint pointRight = my point (i + 1);
 				Graphics_line (g, t, f, pointRight -> number, pointRight -> value);
 			}
 		}
@@ -318,24 +318,24 @@ void RealTier_draw (RealTier me, Graphics g, double tmin, double tmax, double fm
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, my v_getUnitText (0, 0, 0));
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		if (quantity) Graphics_textLeft (g, true, quantity);
+		Graphics_textBottom (g, TRUE, my v_getUnitText (0, 0, 0));
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
+		Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
+		if (quantity) Graphics_textLeft (g, TRUE, quantity);
 	}
 }
 
-autoTableOfReal RealTier_downto_TableOfReal (RealTier me, const char32 *timeLabel, const char32 *valueLabel) {
+TableOfReal RealTier_downto_TableOfReal (RealTier me, const char32 *timeLabel, const char32 *valueLabel) {
 	try {
-		autoTableOfReal thee = TableOfReal_create (my points.size, 2);
-		TableOfReal_setColumnLabel (thee.get(), 1, timeLabel);
-		TableOfReal_setColumnLabel (thee.get(), 2, valueLabel);
-		for (long i = 1; i <= my points.size; i ++) {
-			RealPoint point = my points.at [i];
+		autoTableOfReal thee = TableOfReal_create (my numberOfPoints (), 2);
+		TableOfReal_setColumnLabel (thee.peek(), 1, timeLabel);
+		TableOfReal_setColumnLabel (thee.peek(), 2, valueLabel);
+		for (long i = 1; i <= my numberOfPoints (); i ++) {
+			RealPoint point = my point (i);
 			thy data [i] [1] = point -> number;
 			thy data [i] [2] = point -> value;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
@@ -344,8 +344,8 @@ autoTableOfReal RealTier_downto_TableOfReal (RealTier me, const char32 *timeLabe
 void RealTier_interpolateQuadratically (RealTier me, long numberOfPointsPerParabola, int logarithmically) {
 	try {
 		autoRealTier thee = Data_copy (me);
-		for (long ipoint = 1; ipoint < my points.size; ipoint ++) {
-			RealPoint point1 = my points.at [ipoint], point2 = my points.at [ipoint + 1];
+		for (long ipoint = 1; ipoint < my numberOfPoints (); ipoint ++) {
+			RealPoint point1 = my point (ipoint), point2 = my point (ipoint + 1);
 			double time1 = point1 -> number, time2 = point2 -> number, tmid = 0.5 * (time1 + time2);
 			double value1 = point1 -> value, value2 = point2 -> value, valuemid;
 			double timeStep = (tmid - time1) / (numberOfPointsPerParabola + 1);
@@ -359,12 +359,12 @@ void RealTier_interpolateQuadratically (RealTier me, long numberOfPointsPerParab
 				double phase = (newTime - time1) / (tmid - time1);
 				double newValue = value1 + (valuemid - value1) * phase * phase;
 				if (logarithmically) newValue = exp (newValue);
-				RealTier_addPoint (thee.get(), newTime, newValue);
+				RealTier_addPoint (thee.peek(), newTime, newValue);
 			}
 			/*
 			 * The midpoint.
 			 */
-			RealTier_addPoint (thee.get(), tmid, logarithmically ? exp (valuemid) : valuemid);
+			RealTier_addPoint (thee.peek(), tmid, logarithmically ? exp (valuemid) : valuemid);
 			/*
 			 * Right from the midpoint.
 			 */
@@ -373,49 +373,49 @@ void RealTier_interpolateQuadratically (RealTier me, long numberOfPointsPerParab
 				double phase = (time2 - newTime) / (time2 - tmid);
 				double newValue = value2 + (valuemid - value2) * phase * phase;
 				if (logarithmically) newValue = exp (newValue);
-				RealTier_addPoint (thee.get(), newTime, newValue);
+				RealTier_addPoint (thee.peek(), newTime, newValue);
 			}
 		}
-		Thing_swap (me, thee.get());
+		Thing_swap (me, thee.peek());
 	} catch (MelderError) {
 		Melder_throw (me, U": not interpolated quadratically.");
 	}
 }
 
-autoTable RealTier_downto_Table (RealTier me, const char32 *indexText, const char32 *timeText, const char32 *valueText) {
+Table RealTier_downto_Table (RealTier me, const char32 *indexText, const char32 *timeText, const char32 *valueText) {
 	try {
-		autoTable thee = Table_createWithoutColumnNames (my points.size,
-			(!! indexText) + (!! timeText) + (!! valueText));
+		autoTable thee = Table_createWithoutColumnNames (my numberOfPoints (),
+			(indexText != NULL) + (timeText != NULL) + (valueText != NULL));
 		long icol = 0;
-		if (indexText) Table_setColumnLabel (thee.get(), ++ icol, indexText);
-		if (timeText ) Table_setColumnLabel (thee.get(), ++ icol, timeText);
-		if (valueText) Table_setColumnLabel (thee.get(), ++ icol, valueText);
-		for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-			RealPoint point = my points.at [ipoint];
+		if (indexText != NULL) Table_setColumnLabel (thee.peek(), ++ icol, indexText);
+		if (timeText  != NULL) Table_setColumnLabel (thee.peek(), ++ icol, timeText);
+		if (valueText != NULL) Table_setColumnLabel (thee.peek(), ++ icol, valueText);
+		for (long ipoint = 1; ipoint <= my numberOfPoints (); ipoint ++) {
+			RealPoint point = my point (ipoint);
 			icol = 0;
-			if (indexText) Table_setNumericValue (thee.get(), ipoint, ++ icol, ipoint);
-			if (timeText)  Table_setNumericValue (thee.get(), ipoint, ++ icol, point -> number);
-			if (valueText) Table_setNumericValue (thee.get(), ipoint, ++ icol, point -> value);
+			if (indexText != NULL) Table_setNumericValue (thee.peek(), ipoint, ++ icol, ipoint);
+			if (timeText != NULL)  Table_setNumericValue (thee.peek(), ipoint, ++ icol, point -> number);
+			if (valueText != NULL) Table_setNumericValue (thee.peek(), ipoint, ++ icol, point -> value);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
 }
 
-autoRealTier Vector_to_RealTier (Vector me, long channel, ClassInfo klas) {
+RealTier Vector_to_RealTier (Vector me, long channel, ClassInfo klas) {
 	try {
 		autoRealTier thee = RealTier_createWithClass (my xmin, my xmax, klas);
 		for (long i = 1; i <= my nx; i ++) {
-			RealTier_addPoint (thee.get(), Sampled_indexToX (me, i), my z [channel] [i]);
+			RealTier_addPoint (thee.peek(), Sampled_indexToX (me, i), my z [channel] [i]);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ", klas -> className, U".");
 	}
 }
 
-autoRealTier Vector_to_RealTier_peaks (Vector me, long channel, ClassInfo klas) {
+RealTier Vector_to_RealTier_peaks (Vector me, long channel, ClassInfo klas) {
 	try {
 		autoRealTier thee = RealTier_createWithClass (my xmin, my xmax, klas);
 		for (long i = 2; i < my nx; i ++) {
@@ -424,16 +424,16 @@ autoRealTier Vector_to_RealTier_peaks (Vector me, long channel, ClassInfo klas)
 				double x, maximum;
 				Vector_getMaximumAndX (me, my x1 + (i - 2.5) * my dx, my x1 + (i + 0.5) * my dx,
 					channel, NUM_PEAK_INTERPOLATE_PARABOLIC, & maximum, & x);
-				RealTier_addPoint (thee.get(), x, maximum);
+				RealTier_addPoint (thee.peek(), x, maximum);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ", klas -> className, U" (peaks).");
 	}
 }
 
-autoRealTier Vector_to_RealTier_valleys (Vector me, long channel, ClassInfo klas) {
+RealTier Vector_to_RealTier_valleys (Vector me, long channel, ClassInfo klas) {
 	try {
 		autoRealTier thee = RealTier_createWithClass (my xmin, my xmax, klas);
 		for (long i = 2; i < my nx; i ++) {
@@ -442,22 +442,22 @@ autoRealTier Vector_to_RealTier_valleys (Vector me, long channel, ClassInfo klas
 				double x, minimum;
 				Vector_getMinimumAndX (me, my x1 + (i - 2.5) * my dx, my x1 + (i + 0.5) * my dx,
 					channel, NUM_PEAK_INTERPOLATE_PARABOLIC, & minimum, & x);
-				RealTier_addPoint (thee.get(), x, minimum);
+				RealTier_addPoint (thee.peek(), x, minimum);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to ", klas -> className, U" (valleys).");
 	}
 }
 
-autoRealTier PointProcess_upto_RealTier (PointProcess me, double value, ClassInfo klas) {
+RealTier PointProcess_upto_RealTier (PointProcess me, double value, ClassInfo klas) {
 	try {
 		autoRealTier thee = RealTier_createWithClass (my xmin, my xmax, klas);
 		for (long i = 1; i <= my nt; i ++) {
-			RealTier_addPoint (thee.get(), my t [i], value);
+			RealTier_addPoint (thee.peek(), my t [i], value);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to RealTier.");
 	}
@@ -465,14 +465,14 @@ autoRealTier PointProcess_upto_RealTier (PointProcess me, double value, ClassInf
 
 void RealTier_formula (RealTier me, const char32 *expression, Interpreter interpreter, RealTier thee) {
 	try {
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! thee) thee = me;
-		for (long icol = 1; icol <= my points.size; icol ++) {
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (thee == NULL) thee = me;
+		for (long icol = 1; icol <= my numberOfPoints (); icol ++) {
 			struct Formula_Result result;
 			Formula_run (0, icol, & result);
 			if (result. result.numericResult == NUMundefined)
 				Melder_throw (U"Cannot put an undefined value into the tier.");
-			thy points.at [icol] -> value = result. result.numericResult;
+			thy point (icol) -> value = result. result.numericResult;
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": formula not completed.");
@@ -480,10 +480,10 @@ void RealTier_formula (RealTier me, const char32 *expression, Interpreter interp
 }
 
 void RealTier_removePointsBelow (RealTier me, double level) {
-	for (long ipoint = my points.size; ipoint > 0; ipoint --) {
-		RealPoint point = my points.at [ipoint];
+	for (long ipoint = my numberOfPoints (); ipoint > 0; ipoint --) {
+		RealPoint point = my point (ipoint);
 		if (point -> value < level) {
-			AnyTier_removePoint (me->asAnyTier(), ipoint);
+			AnyTier_removePoint (me, ipoint);
 		}
 	}
 }
diff --git a/fon/RealTier.h b/fon/RealTier.h
index 3ecc9dd..3f6da29 100644
--- a/fon/RealTier.h
+++ b/fon/RealTier.h
@@ -23,13 +23,14 @@
 #include "Graphics.h"
 #include "TableOfReal.h"
 #include "Vector.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 /********** class RealPoint **********/
 
 #include "RealTier_def.h"
+oo_CLASS_CREATE (RealPoint, AnyPoint);
 
-autoRealPoint RealPoint_create (double time, double value);
+RealPoint RealPoint_create (double time, double value);
 /*
 	Postconditions:
 		result -> time == time;
@@ -38,16 +39,16 @@ autoRealPoint RealPoint_create (double time, double value);
 
 /********** class RealTier **********/
 
-//oo_CLASS_CREATE (RealTier);
+oo_CLASS_CREATE (RealTier, Function);
 
 void RealTier_init (RealTier me, double tmin, double tmax);
-autoRealTier RealTier_create (double tmin, double tmax);
-autoRealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas);
+RealTier RealTier_create (double tmin, double tmax);
+RealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas);
 /*
 	Postconditions:
 		result -> xmin == tmin;
 		result -> xmax == tmax;
-		result -> points.size == 0;
+		result -> points -> size == 0;
 */
 
 double RealTier_getValueAtIndex (RealTier me, long point);
@@ -69,15 +70,15 @@ double RealTier_getStandardDeviation_points (RealTier me, double tmin, double tm
 void RealTier_addPoint (RealTier me, double t, double value);
 void RealTier_draw (RealTier me, Graphics g, double tmin, double tmax,
 	double ymin, double ymax, int garnish, const char32 *method, const char32 *quantity);
-autoTableOfReal RealTier_downto_TableOfReal (RealTier me, const char32 *timeLabel, const char32 *valueLabel);
+TableOfReal RealTier_downto_TableOfReal (RealTier me, const char32 *timeLabel, const char32 *valueLabel);
 
 void RealTier_interpolateQuadratically (RealTier me, long numberOfPointsPerParabola, int logarithmically);
 
-autoTable RealTier_downto_Table (RealTier me, const char32 *indexText, const char32 *timeText, const char32 *valueText);
-autoRealTier Vector_to_RealTier (Vector me, long channel, ClassInfo klas);
-autoRealTier Vector_to_RealTier_peaks (Vector me, long channel, ClassInfo klas);
-autoRealTier Vector_to_RealTier_valleys (Vector me, long channel, ClassInfo klas);
-autoRealTier PointProcess_upto_RealTier (PointProcess me, double value, ClassInfo klas);
+Table RealTier_downto_Table (RealTier me, const char32 *indexText, const char32 *timeText, const char32 *valueText);
+RealTier Vector_to_RealTier (Vector me, long channel, ClassInfo klas);
+RealTier Vector_to_RealTier_peaks (Vector me, long channel, ClassInfo klas);
+RealTier Vector_to_RealTier_valleys (Vector me, long channel, ClassInfo klas);
+RealTier PointProcess_upto_RealTier (PointProcess me, double value, ClassInfo klas);
 
 void RealTier_formula (RealTier me, const char32 *expression, Interpreter interpreter, RealTier thee);
 void RealTier_multiplyPart (RealTier me, double tmin, double tmax, double factor);
diff --git a/fon/RealTierEditor.cpp b/fon/RealTierEditor.cpp
index d5d1ad8..2331e4e 100644
--- a/fon/RealTierEditor.cpp
+++ b/fon/RealTierEditor.cpp
@@ -26,19 +26,20 @@ Thing_implement (RealTierEditor, TimeSoundEditor, 0);
 
 /********** MENU COMMANDS **********/
 
-static void menu_cb_removePoints (RealTierEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removePoints (EDITOR_ARGS) {
+	EDITOR_IAM (RealTierEditor);
 	Editor_save (me, U"Remove point(s)");
-	RealTier tier = (RealTier) my data;
 	if (my d_startSelection == my d_endSelection)
-		AnyTier_removePointNear (tier->asAnyTier(), my d_startSelection);
+		AnyTier_removePointNear (my data, my d_startSelection);
 	else
-		AnyTier_removePointsBetween (tier->asAnyTier(), my d_startSelection, my d_endSelection);
+		AnyTier_removePointsBetween (my data, my d_startSelection, my d_endSelection);
 	RealTierEditor_updateScaling (me);
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAtCursor (RealTierEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_addPointAtCursor (EDITOR_ARGS) {
+	EDITOR_IAM (RealTierEditor);
 	if (NUMdefined (my v_minimumLegalValue ()) && my ycursor < my v_minimumLegalValue ())
 		Melder_throw (U"Cannot add a point below ", my v_minimumLegalValue (), my v_rightTickUnits (), U".");
 	if (NUMdefined (my v_maximumLegalValue ()) && my ycursor > my v_maximumLegalValue ())
@@ -50,7 +51,8 @@ static void menu_cb_addPointAtCursor (RealTierEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_addPointAt (RealTierEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_addPointAt (EDITOR_ARGS) {
+	EDITOR_IAM (RealTierEditor);
 	EDITOR_FORM (U"Add point", 0)
 		REAL (U"Time (s)", U"0.0")
 		REAL (my v_quantityText (), U"0.0")
@@ -71,7 +73,8 @@ static void menu_cb_addPointAt (RealTierEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_setRange (RealTierEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_setRange (EDITOR_ARGS) {
+	EDITOR_IAM (RealTierEditor);
 	EDITOR_FORM (my v_setRangeTitle (), 0)
 		REAL (my v_yminText (), my v_defaultYminText ())
 		REAL (my v_ymaxText (), my v_defaultYmaxText ())
@@ -97,13 +100,13 @@ void structRealTierEditor :: v_createMenus () {
 	EditorMenu menu = Editor_addMenu (this, U"Point", 0);
 	EditorMenu_addCommand (menu, U"Add point at cursor", 'T', menu_cb_addPointAtCursor);
 	EditorMenu_addCommand (menu, U"Add point at...", 0, menu_cb_addPointAt);
-	EditorMenu_addCommand (menu, U"-- remove point --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- remove point --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Remove point(s)", GuiMenu_OPTION + 'T', menu_cb_removePoints);
 }
 
 void RealTierEditor_updateScaling (RealTierEditor me) {
 	RealTier data = (RealTier) my data;
-	if (data -> points.size == 0) {
+	if (data -> points -> size == 0) {
 		my ymin = my v_defaultYmin ();
 		my ymax = my v_defaultYmax ();
 	} else {
@@ -149,102 +152,104 @@ void structRealTierEditor :: v_dataChanged () {
 
 void structRealTierEditor :: v_draw () {
 	RealTier data = (RealTier) our data;
-	long n = data -> points.size;
-	Melder_casual (U"structRealTierEditor :: v_draw ", n);
+	long ifirstSelected, ilastSelected, n = data -> points -> size, imin, imax, i;
 	Graphics_Viewport viewport;
 	if (our d_sound.data) {
-		viewport = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 1.0 - SOUND_HEIGHT, 1.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-		Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		viewport = Graphics_insetViewport (our d_graphics, 0, 1, 1 - SOUND_HEIGHT, 1.0);
+		Graphics_setColour (our d_graphics, Graphics_WHITE);
+		Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+		Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
 		TimeSoundEditor_drawSound (this, -1.0, 1.0);
-		Graphics_resetViewport (our d_graphics.get(), viewport);
-		Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0 - SOUND_HEIGHT);
+		Graphics_resetViewport (our d_graphics, viewport);
+		Graphics_insetViewport (our d_graphics, 0, 1, 0.0, 1 - SOUND_HEIGHT);
 	}
-	Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, our ymin, our ymax);
-	Graphics_setColour (our d_graphics.get(), Graphics_RED);
-	Graphics_line (our d_graphics.get(), our d_startWindow, ycursor, our d_endWindow, our ycursor);
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-	Graphics_text (our d_graphics.get(), our d_startWindow, our ycursor, Melder_float (Melder_half (our ycursor)));
-	Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_TOP);
-	Graphics_text (our d_graphics.get(), our d_endWindow, our ymax,   Melder_float (Melder_half (ymax)), our v_rightTickUnits ());
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-	Graphics_text (our d_graphics.get(), our d_endWindow, our ymin,   Melder_float (Melder_half (our ymin)), our v_rightTickUnits ());
-	long ifirstSelected = AnyTier_timeToHighIndex (data->asAnyTier(), our d_startSelection);
-	long ilastSelected = AnyTier_timeToLowIndex (data->asAnyTier(), our d_endSelection);
-	Melder_casual (U"structRealTierEditor :: v_draw: selected from ", our d_startSelection, U" ",
-		ifirstSelected, U" to ", our d_endSelection, U" ", ilastSelected);
-	long imin = AnyTier_timeToHighIndex (data->asAnyTier(), our d_startWindow);
-	long imax = AnyTier_timeToLowIndex (data->asAnyTier(), our d_endWindow);
-	Graphics_setLineWidth (our d_graphics.get(), 2.0);
+	Graphics_setColour (our d_graphics, Graphics_WHITE);
+	Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, our ymin, our ymax);
+	Graphics_setColour (our d_graphics, Graphics_RED);
+	Graphics_line (our d_graphics, our d_startWindow, ycursor, our d_endWindow, our ycursor);
+	Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+	Graphics_text (our d_graphics, our d_startWindow, our ycursor, Melder_float (Melder_half (our ycursor)));
+	Graphics_setColour (our d_graphics, Graphics_BLUE);
+	Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_TOP);
+	Graphics_text (our d_graphics, our d_endWindow, our ymax,   Melder_float (Melder_half (ymax)), our v_rightTickUnits ());
+	Graphics_setTextAlignment (our d_graphics, Graphics_LEFT, Graphics_HALF);
+	Graphics_text (our d_graphics, our d_endWindow, our ymin,   Melder_float (Melder_half (our ymin)), our v_rightTickUnits ());
+	ifirstSelected = AnyTier_timeToHighIndex (data, our d_startSelection);
+	ilastSelected = AnyTier_timeToLowIndex (data, our d_endSelection);
+	imin = AnyTier_timeToHighIndex (data, our d_startWindow);
+	imax = AnyTier_timeToLowIndex (data, our d_endWindow);
+	Graphics_setLineWidth (our d_graphics, 2);
 	if (n == 0) {
-		Graphics_setTextAlignment (our d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (our d_graphics.get(), 0.5 * (our d_startWindow + our d_endWindow),
+		Graphics_setTextAlignment (our d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (our d_graphics, 0.5 * (our d_startWindow + our d_endWindow),
 			0.5 * (our ymin + our ymax), U"(no points)");
 	} else if (imax < imin) {
 		double yleft = RealTier_getValueAtTime (data, our d_startWindow);
 		double yright = RealTier_getValueAtTime (data, our d_endWindow);
-		Graphics_line (our d_graphics.get(), our d_startWindow, yleft, our d_endWindow, yright);
-	} else for (long i = imin; i <= imax; i ++) {
-		RealPoint point = data -> points.at [i];
+		Graphics_line (our d_graphics, our d_startWindow, yleft, our d_endWindow, yright);
+	} else for (i = imin; i <= imax; i ++) {
+		RealPoint point = data -> point (i);
 		double t = point -> number, y = point -> value;
 		if (i >= ifirstSelected && i <= ilastSelected)
-			Graphics_setColour (our d_graphics.get(), Graphics_RED);
-		Graphics_fillCircle_mm (our d_graphics.get(), t, y, 3.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
+			Graphics_setColour (our d_graphics, Graphics_RED);
+		Graphics_fillCircle_mm (our d_graphics, t, y, 3);
+		Graphics_setColour (our d_graphics, Graphics_BLUE);
 		if (i == 1)
-			Graphics_line (our d_graphics.get(), our d_startWindow, y, t, y);
+			Graphics_line (our d_graphics, our d_startWindow, y, t, y);
 		else if (i == imin)
-			Graphics_line (our d_graphics.get(), t, y, our d_startWindow, RealTier_getValueAtTime (data, our d_startWindow));
+			Graphics_line (our d_graphics, t, y, our d_startWindow, RealTier_getValueAtTime (data, our d_startWindow));
 		if (i == n)
-			Graphics_line (our d_graphics.get(), t, y, our d_endWindow, y);
+			Graphics_line (our d_graphics, t, y, our d_endWindow, y);
 		else if (i == imax)
-			Graphics_line (our d_graphics.get(), t, y, our d_endWindow, RealTier_getValueAtTime (data, our d_endWindow));
+			Graphics_line (our d_graphics, t, y, our d_endWindow, RealTier_getValueAtTime (data, our d_endWindow));
 		else {
-			RealPoint pointRight = data -> points.at [i + 1];
-			Graphics_line (our d_graphics.get(), t, y, pointRight -> number, pointRight -> value);
+			RealPoint pointRight = data -> point (i + 1);
+			Graphics_line (our d_graphics, t, y, pointRight -> number, pointRight -> value);
 		}
 	}
-	Graphics_setLineWidth (our d_graphics.get(), 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
+	Graphics_setLineWidth (our d_graphics, 1);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
 	our v_updateMenuItems_file ();
 }
 
-static void drawWhileDragging (RealTierEditor me, double /* xWC */, double /* yWC */, long first, long last, double dt, double dy) {
+static void drawWhileDragging (RealTierEditor me, double xWC, double yWC, long first, long last, double dt, double dy) {
 	RealTier data = (RealTier) my data;
+	(void) xWC;
+	(void) yWC;
 
 	/*
 	 * Draw all selected points as magenta empty circles, if inside the window.
 	 */
 	for (long i = first; i <= last; i ++) {
-		RealPoint point = data -> points.at [i];
+		RealPoint point = data -> point (i);
 		double t = point -> number + dt, y = point -> value + dy;
 		if (t >= my d_startWindow && t <= my d_endWindow)
-			Graphics_circle_mm (my d_graphics.get(), t, y, 3);
+			Graphics_circle_mm (my d_graphics, t, y, 3);
 	}
 
 	if (last == first) {
 		/*
 		 * Draw a crosshair with time and y.
 		 */
-		RealPoint point = data -> points.at [first];
+		RealPoint point = data -> point (first);
 		double t = point -> number + dt, y = point -> value + dy;
-		Graphics_line (my d_graphics.get(), t, my ymin, t, my ymax - Graphics_dyMMtoWC (my d_graphics.get(), 4.0));
-		Graphics_setTextAlignment (my d_graphics.get(), kGraphics_horizontalAlignment_CENTRE, Graphics_TOP);
-		Graphics_text (my d_graphics.get(), t, my ymax, Melder_fixed (t, 6));
-		Graphics_line (my d_graphics.get(), my d_startWindow, y, my d_endWindow, y);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-		Graphics_text (my d_graphics.get(), my d_startWindow, y, Melder_fixed (y, 6));
+		Graphics_line (my d_graphics, t, my ymin, t, my ymax - Graphics_dyMMtoWC (my d_graphics, 4.0));
+		Graphics_setTextAlignment (my d_graphics, kGraphics_horizontalAlignment_CENTRE, Graphics_TOP);
+		Graphics_text (my d_graphics, t, my ymax, Melder_fixed (t, 6));
+		Graphics_line (my d_graphics, my d_startWindow, y, my d_endWindow, y);
+		Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_text (my d_graphics, my d_startWindow, y, Melder_fixed (y, 6));
 	}
 }
 
-bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	RealTier pitch = (RealTier) our data;
-	double dt = 0.0, df = 0.0;
+	long inearestPoint, ifirstSelected, ilastSelected;
+	RealPoint nearestPoint;
+	double dt = 0, df = 0;
+	bool draggingSelection;
 	Graphics_Viewport viewport;
 
 	/*
@@ -252,39 +257,38 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 	 */
 	//our d_startSelection = our d_endSelection = xWC;
 	if (our d_sound.data) {
-		if (yWC < 1.0 - SOUND_HEIGHT) {   /* Clicked in tier area? */
-			yWC /= 1.0 - SOUND_HEIGHT;
+		if (yWC < 1 - SOUND_HEIGHT) {   /* Clicked in tier area? */
+			yWC /= 1 - SOUND_HEIGHT;
 			our ycursor = (1.0 - yWC) * our ymin + yWC * our ymax;
-			viewport = Graphics_insetViewport (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0 - SOUND_HEIGHT);
+			viewport = Graphics_insetViewport (our d_graphics, 0, 1, 0, 1 - SOUND_HEIGHT);
 		} else {
 			return our RealTierEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 		}
 	} else {
 		our ycursor = (1.0 - yWC) * our ymin + yWC * our ymax;
 	}
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, our ymin, our ymax);
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, our ymin, our ymax);
 	yWC = our ycursor;
 
 	/*
 	 * Clicked on a point?
 	 */
-	long inearestPoint = AnyTier_timeToNearestIndex (pitch->asAnyTier(), xWC);
+	inearestPoint = AnyTier_timeToNearestIndex (pitch, xWC);
 	if (inearestPoint == 0) return RealTierEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
-	RealPoint nearestPoint = pitch -> points.at [inearestPoint];
-	if (Graphics_distanceWCtoMM (d_graphics.get(), xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
-		if (d_sound.data) Graphics_resetViewport (our d_graphics.get(), viewport);
+	nearestPoint = (RealPoint) pitch -> points -> item [inearestPoint];
+	if (Graphics_distanceWCtoMM (d_graphics, xWC, yWC, nearestPoint -> number, nearestPoint -> value) > 1.5) {
+		if (d_sound.data) Graphics_resetViewport (our d_graphics, viewport);
 		return our RealTierEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 	}
 
 	/*
 	 * Clicked on a selected point?
 	 */
-	bool draggingSelection = shiftKeyPressed &&
+	draggingSelection = shiftKeyPressed &&
 		nearestPoint -> number > d_startSelection && nearestPoint -> number < d_endSelection;
-	long ifirstSelected, ilastSelected;
 	if (draggingSelection) {
-		ifirstSelected = AnyTier_timeToHighIndex (pitch->asAnyTier(), d_startSelection);
-		ilastSelected = AnyTier_timeToLowIndex (pitch->asAnyTier(), d_endSelection);
+		ifirstSelected = AnyTier_timeToHighIndex (pitch, d_startSelection);
+		ilastSelected = AnyTier_timeToLowIndex (pitch, d_endSelection);
 		Editor_save (this, U"Drag points");
 	} else {
 		ifirstSelected = ilastSelected = inearestPoint;
@@ -294,11 +298,11 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 	/*
 	 * Drag.
 	 */
-	Graphics_xorOn (our d_graphics.get(), Graphics_MAROON);
+	Graphics_xorOn (our d_graphics, Graphics_MAROON);
 	drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);   // draw at old position
-	while (Graphics_mouseStillDown (our d_graphics.get())) {
+	while (Graphics_mouseStillDown (our d_graphics)) {
 		double xWC_new, yWC_new;
-		Graphics_getMouseLocation (our d_graphics.get(), & xWC_new, & yWC_new);
+		Graphics_getMouseLocation (our d_graphics, & xWC_new, & yWC_new);
 		if (xWC_new != xWC || yWC_new != yWC) {
 			drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);   // undraw at old position
 			dt += xWC_new - xWC, df += yWC_new - yWC;
@@ -306,7 +310,7 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 			drawWhileDragging (this, xWC, yWC, ifirstSelected, ilastSelected, dt, df);   // draw at new position
 		}
 	}
-	Graphics_xorOff (d_graphics.get());
+	Graphics_xorOff (d_graphics);
 
 	/*
 	 * Dragged inside window?
@@ -317,21 +321,22 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 	 * Points not dragged past neighbours?
 	 */
 	{
-		double newTime = pitch -> points.at [ifirstSelected] -> number + dt;
+		RealPoint *points = pitch -> peekPoints ();
+		double newTime = points [ifirstSelected] -> number + dt;
 		if (newTime < our tmin) return 1;   // outside domain
-		if (ifirstSelected > 1 && newTime <= pitch -> points.at [ifirstSelected - 1] -> number)
+		if (ifirstSelected > 1 && newTime <= points [ifirstSelected - 1] -> number)
 			return 1;   // past left neighbour
-		newTime = pitch -> points.at [ilastSelected] -> number + dt;
+		newTime = points [ilastSelected] -> number + dt;
 		if (newTime > our tmax) return 1;   // outside domain
-		if (ilastSelected < pitch -> points.size && newTime >= pitch -> points.at [ilastSelected + 1] -> number)
-			return FunctionEditor_UPDATE_NEEDED;   // past right neighbour
+		if (ilastSelected < pitch -> numberOfPoints() && newTime >= points [ilastSelected + 1] -> number)
+			return 1;   // past right neighbour
 	}
 
 	/*
 	 * Drop.
 	 */
 	for (int i = ifirstSelected; i <= ilastSelected; i ++) {
-		RealPoint point = pitch -> points.at [i];
+		RealPoint point = pitch -> point (i);
 		point -> number += dt;
 		point -> value += df;
 		if (NUMdefined (v_minimumLegalValue ()) && point -> value < v_minimumLegalValue ())
@@ -349,7 +354,7 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 		/*
 		 * Move crosshair to only selected pitch point.
 		 */
-		RealPoint point = pitch -> points.at [ifirstSelected];
+		RealPoint point = (RealPoint) pitch -> points -> item [ifirstSelected];
 		our d_startSelection = our d_endSelection = point -> number;
 		our ycursor = point -> value;
 	} else {
@@ -366,7 +371,7 @@ bool structRealTierEditor :: v_click (double xWC, double yWC, bool shiftKeyPress
 
 	Editor_broadcastDataChanged (this);
 	RealTierEditor_updateScaling (this);
-	return FunctionEditor_UPDATE_NEEDED;
+	return 1;   // update needed
 }
 
 void structRealTierEditor :: v_play (double a_tmin, double a_tmax) {
@@ -375,7 +380,7 @@ void structRealTierEditor :: v_play (double a_tmin, double a_tmax) {
 }
 
 void RealTierEditor_init (RealTierEditor me, const char32 *title, RealTier data, Sound sound, bool ownSound) {
-	Melder_assert (data);
+	Melder_assert (data != NULL);
 	Melder_assert (Thing_isa (data, classRealTier));
 	TimeSoundEditor_init (me, title, data, sound, ownSound);
 	my ymin = -1.0;
diff --git a/fon/RealTierEditor.h b/fon/RealTierEditor.h
index 127d1f3..d6efceb 100644
--- a/fon/RealTierEditor.h
+++ b/fon/RealTierEditor.h
@@ -31,7 +31,7 @@ Thing_define (RealTierEditor, TimeSoundEditor) {
 		override;
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -62,8 +62,8 @@ void RealTierEditor_updateScaling (RealTierEditor me);
 
 void RealTierEditor_init (RealTierEditor me, const char32 *title, RealTier data, Sound sound, bool ownSound);
 /*
-	`sound` may be null;
-	if `ownSound` is `true`, the editor will contain a deep copy of the Sound,
+	'Sound' may be NULL;
+	if 'ownSound' is TRUE, the editor will contain a deep copy of the Sound,
 	which the editor will destroy when the editor is destroyed.
 */
 
diff --git a/fon/RealTier_def.h b/fon/RealTier_def.h
index e2dc232..4dc9a90 100644
--- a/fon/RealTier_def.h
+++ b/fon/RealTier_def.h
@@ -30,25 +30,30 @@ oo_END_CLASS (RealPoint)
 #define ooSTRUCT RealTier
 oo_DEFINE_CLASS (RealTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, points, RealPoint, 0)   // a kind of AnyTier though
+	oo_COLLECTION (SortedSetOfDouble, points, RealPoint, 0)
 
 	#if oo_DECLARING
-		AnyTier_METHODS
+		long numberOfPoints () // accessor
+			{ return points -> size; }
+		RealPoint * peekPoints () // accessor
+			{ return reinterpret_cast <RealPoint *> (points -> item); }
+		RealPoint point (long ipoint) // accessor
+			{ return static_cast <RealPoint> (points -> item [ipoint]); }
 
 		void v_info ()
 			override;
 		bool v_hasGetNx ()
 			override { return true; }
 		double v_getNx ()
-			override { return points.size; }
+			override { return numberOfPoints (); }
 		bool v_hasGetX ()
 			override { return true; }
 		double v_getX (long ix)
-			override { return points.at [ix] -> number; }
+			override { return point (ix) -> number; }
 		bool v_hasGetNcol ()
 			override { return true; }
 		double v_getNcol ()
-			override { return points.size; }
+			override { return numberOfPoints (); }
 		bool v_hasGetVector ()
 			override { return true; }
 		double v_getVector (long irow, long icol)
@@ -59,6 +64,10 @@ oo_DEFINE_CLASS (RealTier, Function)
 			override;
 		const char32 * v_getUnitText (long /* ilevel */, int /* unit */, unsigned long /* flags */)
 			override { return U"Time (s)"; }
+		void v_shiftX (double xfrom, double xto)
+			override;
+		void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
+			override;
 	#endif
 
 oo_END_CLASS (RealTier)
diff --git a/fon/RunnerMFC.cpp b/fon/RunnerMFC.cpp
index 2654bc5..43ca42b 100644
--- a/fon/RunnerMFC.cpp
+++ b/fon/RunnerMFC.cpp
@@ -1,6 +1,6 @@
 /* RunnerMFC.cpp
  *
- * Copyright (C) 2001-2011,2013,2015,2016 Paul Boersma
+ * Copyright (C) 2001-2011,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,50 +34,56 @@
 
 Thing_implement (RunnerMFC, Editor, 0);
 
-void structRunnerMFC :: v_destroy () noexcept {
+void structRunnerMFC :: v_destroy () {
+	if (our experiments) {
+		our experiments -> size = 0;   // give ownership back to whoever thinks they own the experiments. BUG: can be dontOwnItems
+		forget (our experiments);
+	}
+	forget (our graphics);
 	our RunnerMFC_Parent :: v_destroy ();
 }
 
 void structRunnerMFC :: v_dataChanged () {
-	Graphics_updateWs (our graphics.get());
+	Graphics_updateWs (our graphics);
 }
 
 static int RunnerMFC_startExperiment (RunnerMFC me) {
-	my data = my experiments->at [my iexperiment];
+	my data = (Data) my experiments -> item [my iexperiment];
 	Melder_assert (my data -> classInfo == classExperimentMFC);
 	ExperimentMFC_start ((ExperimentMFC) my data);
 	Thing_setName (me, ((ExperimentMFC) my data) -> name);
 	Editor_broadcastDataChanged (me);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my graphics);
 	return 1;
 }
 
 static void drawControlButton (RunnerMFC me, double left, double right, double bottom, double top, const char32 *visibleText) {
-	Graphics_setColour (my graphics.get(), Graphics_MAROON);
-	Graphics_setLineWidth (my graphics.get(), 3.0);
-	Graphics_fillRectangle (my graphics.get(), left, right, bottom, top);
-	Graphics_setColour (my graphics.get(), Graphics_YELLOW);
-	Graphics_rectangle (my graphics.get(), left, right, bottom, top);
-	Graphics_text (my graphics.get(), 0.5 * (left + right), 0.5 * (bottom + top), visibleText);
+	Graphics_setColour (my graphics, Graphics_MAROON);
+	Graphics_setLineWidth (my graphics, 3.0);
+	Graphics_fillRectangle (my graphics, left, right, bottom, top);
+	Graphics_setColour (my graphics, Graphics_YELLOW);
+	Graphics_rectangle (my graphics, left, right, bottom, top);
+	Graphics_text (my graphics, 0.5 * (left + right), 0.5 * (bottom + top), visibleText);
 }
 
-static void gui_drawingarea_cb_expose (RunnerMFC me, GuiDrawingArea_ExposeEvent event) {
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (RunnerMFC);
 	Melder_assert (event -> widget == my d_drawingArea);
-	if (! my graphics) return;   // could be the case in the very beginning
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	ExperimentMFC experiment = (ExperimentMFC) my data;
 	long iresponse;
-	if (! my data) return;
-	Graphics_setGrey (my graphics.get(), 0.8);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setGrey (my graphics.get(), 0.0);
+	if (my data == NULL) return;
+	Graphics_setGrey (my graphics, 0.8);
+	Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+	Graphics_setGrey (my graphics, 0.0);
 	if (experiment -> trial == 0) {
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_setFontSize (my graphics.get(), 24);
-		Graphics_text (my graphics.get(), 0.5, 0.5, experiment -> startText);
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_setFontSize (my graphics, 24);
+		Graphics_text (my graphics, 0.5, 0.5, experiment -> startText);
 	} else if (experiment -> pausing) {
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_setFontSize (my graphics.get(), 24);
-		Graphics_text (my graphics.get(), 0.5, 0.5, experiment -> pauseText);
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_setFontSize (my graphics, 24);
+		Graphics_text (my graphics, 0.5, 0.5, experiment -> pauseText);
 		if (experiment -> oops_right > experiment -> oops_left && experiment -> trial > 1) {
 			drawControlButton (me,
 				experiment -> oops_left, experiment -> oops_right, experiment -> oops_bottom, experiment -> oops_top,
@@ -87,25 +93,25 @@ static void gui_drawingarea_cb_expose (RunnerMFC me, GuiDrawingArea_ExposeEvent
 		const char32 *visibleText = experiment -> stimulus [experiment -> stimuli [experiment -> trial]]. visibleText;
 		autostring32 visibleText_dup = Melder_dup_f (visibleText ? visibleText : U"");
 		char32 *visibleText_p = visibleText_dup.peek();
-		Graphics_setFont (my graphics.get(), kGraphics_font_TIMES);
-		Graphics_setFontSize (my graphics.get(), 10);
-		Graphics_setColour (my graphics.get(), Graphics_BLACK);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_LEFT, Graphics_TOP);
-		Graphics_text (my graphics.get(), 0.0, 1.0,   experiment -> trial, U" / ", experiment -> numberOfTrials);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_TOP);
-		Graphics_setFontSize (my graphics.get(), 24);
+		Graphics_setFont (my graphics, kGraphics_font_TIMES);
+		Graphics_setFontSize (my graphics, 10);
+		Graphics_setColour (my graphics, Graphics_BLACK);
+		Graphics_setTextAlignment (my graphics, Graphics_LEFT, Graphics_TOP);
+		Graphics_text (my graphics, 0, 1,   experiment -> trial, U" / ", experiment -> numberOfTrials);
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_TOP);
+		Graphics_setFontSize (my graphics, 24);
 		/*
 		 * The run text.
 		 */
 		if (visibleText_p [0] != U'\0') {
 			char32 *visibleText_q = str32chr (visibleText_p, U'|');
 			if (visibleText_q) *visibleText_q = '\0';
-			Graphics_text (my graphics.get(), 0.5, 1.0, visibleText_p [0] != '\0' ? visibleText_p : experiment -> runText);
+			Graphics_text (my graphics, 0.5, 1.0, visibleText_p [0] != '\0' ? visibleText_p : experiment -> runText);
 			if (visibleText_q) visibleText_p = visibleText_q + 1; else visibleText_p += str32len (visibleText_p);
 		} else {
-			Graphics_text (my graphics.get(), 0.5, 1.0, experiment -> runText);
+			Graphics_text (my graphics, 0.5, 1.0, experiment -> runText);
 		}
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_HALF);
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_HALF);
 		for (iresponse = 1; iresponse <= experiment -> numberOfDifferentResponses; iresponse ++) {
 			ResponseMFC response = & experiment -> response [iresponse];
 			char32 *textToDraw = response -> label;   // can be overridden
@@ -118,32 +124,32 @@ static void gui_drawingarea_cb_expose (RunnerMFC me, GuiDrawingArea_ExposeEvent
 			if (str32nequ (textToDraw, U"\\FI", 3)) {
 				structMelderFile file = { 0 };
 				MelderDir_relativePathToFile (& experiment -> rootDirectory, textToDraw + 3, & file);
-				Graphics_imageFromFile (my graphics.get(), Melder_fileToPath (& file), response -> left, response -> right, response -> bottom, response -> top);
+				Graphics_imageFromFile (my graphics, Melder_fileToPath (& file), response -> left, response -> right, response -> bottom, response -> top);
 			} else {
-				Graphics_setColour (my graphics.get(),
+				Graphics_setColour (my graphics,
 					response -> name [0] == U'\0' ? Graphics_SILVER :
 					experiment -> responses [experiment -> trial] == iresponse ? Graphics_RED :
 					experiment -> ok_right > experiment -> ok_left || experiment -> responses [experiment -> trial] == 0 ?
 					Graphics_YELLOW : Graphics_SILVER);
-				Graphics_setLineWidth (my graphics.get(), 3.0);
-				Graphics_fillRectangle (my graphics.get(), response -> left, response -> right, response -> bottom, response -> top);
-				Graphics_setColour (my graphics.get(), Graphics_MAROON);
-				Graphics_rectangle (my graphics.get(), response -> left, response -> right, response -> bottom, response -> top);
-				Graphics_setFontSize (my graphics.get(), response -> fontSize ? response -> fontSize : 24);
-				Graphics_text (my graphics.get(), 0.5 * (response -> left + response -> right),
+				Graphics_setLineWidth (my graphics, 3.0);
+				Graphics_fillRectangle (my graphics, response -> left, response -> right, response -> bottom, response -> top);
+				Graphics_setColour (my graphics, Graphics_MAROON);
+				Graphics_rectangle (my graphics, response -> left, response -> right, response -> bottom, response -> top);
+				Graphics_setFontSize (my graphics, response -> fontSize ? response -> fontSize : 24);
+				Graphics_text (my graphics, 0.5 * (response -> left + response -> right),
 					0.5 * (response -> bottom + response -> top), textToDraw);
 			}
-			Graphics_setFontSize (my graphics.get(), 24);
+			Graphics_setFontSize (my graphics, 24);
 		}
 		for (iresponse = 1; iresponse <= experiment -> numberOfGoodnessCategories; iresponse ++) {
 			GoodnessMFC goodness = & experiment -> goodness [iresponse];
-			Graphics_setColour (my graphics.get(), experiment -> responses [experiment -> trial] == 0 ? Graphics_SILVER :
+			Graphics_setColour (my graphics, experiment -> responses [experiment -> trial] == 0 ? Graphics_SILVER :
 				experiment -> goodnesses [experiment -> trial] == iresponse ? Graphics_RED : Graphics_YELLOW);
-			Graphics_setLineWidth (my graphics.get(), 3.0);
-			Graphics_fillRectangle (my graphics.get(), goodness -> left, goodness -> right, goodness -> bottom, goodness -> top);
-			Graphics_setColour (my graphics.get(), Graphics_MAROON);
-			Graphics_rectangle (my graphics.get(), goodness -> left, goodness -> right, goodness -> bottom, goodness -> top);
-			Graphics_text (my graphics.get(), 0.5 * (goodness -> left + goodness -> right), 0.5 * (goodness -> bottom + goodness -> top), goodness -> label);
+			Graphics_setLineWidth (my graphics, 3.0);
+			Graphics_fillRectangle (my graphics, goodness -> left, goodness -> right, goodness -> bottom, goodness -> top);
+			Graphics_setColour (my graphics, Graphics_MAROON);
+			Graphics_rectangle (my graphics, goodness -> left, goodness -> right, goodness -> bottom, goodness -> top);
+			Graphics_text (my graphics, 0.5 * (goodness -> left + goodness -> right), 0.5 * (goodness -> bottom + goodness -> top), goodness -> label);
 		}
 		if (experiment -> replay_right > experiment -> replay_left && my numberOfReplays < experiment -> maximumNumberOfReplays) {
 			drawControlButton (me,
@@ -164,9 +170,9 @@ static void gui_drawingarea_cb_expose (RunnerMFC me, GuiDrawingArea_ExposeEvent
 				experiment -> oops_label);
 		}
 	} else {
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_setFontSize (my graphics.get(), 24);
-		Graphics_text (my graphics.get(), 0.5, 0.5, experiment -> endText);
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_setFontSize (my graphics, 24);
+		Graphics_text (my graphics, 0.5, 0.5, experiment -> endText);
 		if (experiment -> oops_right > experiment -> oops_left && experiment -> trial > 1) {
 			drawControlButton (me,
 				experiment -> oops_left, experiment -> oops_right, experiment -> oops_bottom, experiment -> oops_top,
@@ -175,12 +181,13 @@ static void gui_drawingarea_cb_expose (RunnerMFC me, GuiDrawingArea_ExposeEvent
 	}
 }
 
-static void gui_drawingarea_cb_resize (RunnerMFC me, GuiDrawingArea_ResizeEvent event) {
-	if (! my graphics) return;
-	Graphics_setWsViewport (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
-	Graphics_setWsWindow (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
-	Graphics_setViewport (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
-	Graphics_updateWs (my graphics.get());
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (RunnerMFC);
+	if (my graphics == NULL) return;
+	Graphics_setWsViewport (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_setWsWindow (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_setViewport (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_updateWs (my graphics);
 }
 
 static void do_ok (RunnerMFC me) {
@@ -190,21 +197,21 @@ static void do_ok (RunnerMFC me) {
 	if (experiment -> trial == experiment -> numberOfTrials) {
 		experiment -> trial ++;
 		Editor_broadcastDataChanged (me);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my graphics);
 	} else if (experiment -> breakAfterEvery != 0 && experiment -> trial % experiment -> breakAfterEvery == 0) {
-		experiment -> pausing = true;
+		experiment -> pausing = TRUE;
 		Editor_broadcastDataChanged (me);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my graphics);
 	} else {
 		experiment -> trial ++;
 		Editor_broadcastDataChanged (me);
 		if (experiment -> blankWhilePlaying) {
-			Graphics_setGrey (my graphics.get(), 0.8);
-			Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-			Graphics_setGrey (my graphics.get(), 0.0);
-			Graphics_flushWs (my graphics.get());
+			Graphics_setGrey (my graphics, 0.8);
+			Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+			Graphics_setGrey (my graphics, 0.0);
+			Graphics_flushWs (my graphics);
 		}
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my graphics);
 		if (experiment -> stimuliAreSounds) {
 			autoMelderAudioSaveMaximumAsynchronicity saveMaximumAsynchronicity;
 			if (experiment -> blankWhilePlaying)
@@ -224,16 +231,16 @@ static void do_oops (RunnerMFC me) {
 	experiment -> trial --;
 	experiment -> responses [experiment -> trial] = 0;
 	experiment -> goodnesses [experiment -> trial] = 0;
-	experiment -> pausing = false;
+	experiment -> pausing = FALSE;
 	my numberOfReplays = 0;
 	Editor_broadcastDataChanged (me);
 	if (experiment -> blankWhilePlaying) {
-		Graphics_setGrey (my graphics.get(), 0.8);
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setGrey (my graphics.get(), 0.0);
-		Graphics_flushWs (my graphics.get());
+		Graphics_setGrey (my graphics, 0.8);
+		Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+		Graphics_setGrey (my graphics, 0.0);
+		Graphics_flushWs (my graphics);
 	}
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my graphics);
 	if (experiment -> stimuliAreSounds) {
 		autoMelderAudioSaveMaximumAsynchronicity saveMaximumAsynchronicity;
 		if (experiment -> blankWhilePlaying)
@@ -248,12 +255,12 @@ static void do_replay (RunnerMFC me) {
 	my numberOfReplays ++;
 	Editor_broadcastDataChanged (me);
 	if (experiment -> blankWhilePlaying) {
-		Graphics_setGrey (my graphics.get(), 0.8);
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setGrey (my graphics.get(), 0.0);
-		Graphics_flushWs (my graphics.get());
+		Graphics_setGrey (my graphics, 0.8);
+		Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+		Graphics_setGrey (my graphics, 0.0);
+		Graphics_flushWs (my graphics);
 	}
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my graphics);
 	if (experiment -> stimuliAreSounds) {
 		autoMelderAudioSaveMaximumAsynchronicity saveMaximumAsynchronicity;
 		if (experiment -> blankWhilePlaying)
@@ -262,25 +269,26 @@ static void do_replay (RunnerMFC me) {
 	}
 }
 
-static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (RunnerMFC);
+	if (my graphics == NULL) return;   // could be the case in the very beginning
 	ExperimentMFC experiment = (ExperimentMFC) my data;
-	if (! my data) return;
+	if (my data == NULL) return;
 	double reactionTime = Melder_clock () - experiment -> startingTime;
 	if (! experiment -> blankWhilePlaying)
 		reactionTime -= experiment -> stimulusInitialSilenceDuration;
 	double x, y;
-	Graphics_DCtoWC (my graphics.get(), event -> x, event -> y, & x, & y);
+	Graphics_DCtoWC (my graphics, event -> x, event -> y, & x, & y);
 	if (experiment -> trial == 0) {   // the first click of the experiment
 		experiment -> trial ++;
 		Editor_broadcastDataChanged (me);
 		if (experiment -> blankWhilePlaying) {
-			Graphics_setGrey (my graphics.get(), 0.8);
-			Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-			Graphics_setGrey (my graphics.get(), 0.0);
-			Graphics_flushWs (my graphics.get());
+			Graphics_setGrey (my graphics, 0.8);
+			Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+			Graphics_setGrey (my graphics, 0.0);
+			Graphics_flushWs (my graphics);
 		}
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my graphics);
 		if (experiment -> stimuliAreSounds) {
 			if (experiment -> numberOfTrials < 1) {
 				Melder_flushError (U"There are zero trials in this experiment.");
@@ -298,16 +306,16 @@ static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent ev
 		{
 			do_oops (me);
 		} else {
-			experiment -> pausing = false;
+			experiment -> pausing = FALSE;
 			experiment -> trial ++;
 			Editor_broadcastDataChanged (me);
 			if (experiment -> blankWhilePlaying) {
-				Graphics_setGrey (my graphics.get(), 0.8);
-				Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-				Graphics_setGrey (my graphics.get(), 0.0);
-				Graphics_flushWs (my graphics.get());
+				Graphics_setGrey (my graphics, 0.8);
+				Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+				Graphics_setGrey (my graphics, 0.0);
+				Graphics_flushWs (my graphics);
 			}
-			Graphics_updateWs (my graphics.get());
+			Graphics_updateWs (my graphics);
 			if (experiment -> stimuliAreSounds) {
 				autoMelderAudioSaveMaximumAsynchronicity saveMaximumAsynchronicity;
 				if (experiment -> blankWhilePlaying)
@@ -344,7 +352,7 @@ static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent ev
 						do_ok (me);
 					} else {
 						Editor_broadcastDataChanged (me);
-						Graphics_updateWs (my graphics.get());
+						Graphics_updateWs (my graphics);
 					}
 				}
 			}
@@ -354,7 +362,7 @@ static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent ev
 					if (x > cat -> left && x < cat -> right && y > cat -> bottom && y < cat -> top) {
 						experiment -> goodnesses [experiment -> trial] = iresponse;
 						Editor_broadcastDataChanged (me);
-						Graphics_updateWs (my graphics.get());
+						Graphics_updateWs (my graphics);
 					}
 				}
 			}
@@ -375,7 +383,7 @@ static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent ev
 			do_oops (me);
 			return;
 		}
-		if (my iexperiment < my experiments->size) {
+		if (my iexperiment < my experiments -> size) {
 			my iexperiment ++;
 			if (! RunnerMFC_startExperiment (me)) {
 				Melder_flushError ();
@@ -386,10 +394,11 @@ static void gui_drawingarea_cb_click (RunnerMFC me, GuiDrawingArea_ClickEvent ev
 	}
 }
 
-static void gui_drawingarea_cb_key (RunnerMFC me, GuiDrawingArea_KeyEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_key (I, GuiDrawingAreaKeyEvent event) {
+	iam (RunnerMFC);
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	ExperimentMFC experiment = (ExperimentMFC) my data;
-	if (! my data) return;
+	if (my data == NULL) return;
 	double reactionTime = Melder_clock () - experiment -> startingTime;
 	if (! experiment -> blankWhilePlaying)
 		reactionTime -= experiment -> stimulusInitialSilenceDuration;
@@ -397,23 +406,23 @@ static void gui_drawingarea_cb_key (RunnerMFC me, GuiDrawingArea_KeyEvent event)
 	} else if (experiment -> pausing) {
 	} else if (experiment -> trial <= experiment -> numberOfTrials) {
 		long iresponse;
-		if (experiment -> ok_key && experiment -> ok_key [0] == event -> key &&
+		if (experiment -> ok_key != NULL && experiment -> ok_key [0] == event -> key &&
 			experiment -> responses [experiment -> trial] != 0 &&
 			(experiment -> numberOfGoodnessCategories == 0 || experiment -> goodnesses [experiment -> trial] != 0))
 		{
 			do_ok (me);
-		} else if (experiment -> replay_key && experiment -> replay_key [0] == event -> key &&
+		} else if (experiment -> replay_key != NULL && experiment -> replay_key [0] == event -> key &&
 			my numberOfReplays < experiment -> maximumNumberOfReplays)
 		{
 			do_replay (me);
-		} else if (experiment -> oops_key && experiment -> oops_key [0] == event -> key) {
+		} else if (experiment -> oops_key != NULL && experiment -> oops_key [0] == event -> key) {
 			if (experiment -> trial > 1) {
 				do_oops (me);
 			}
 		} else if (experiment -> responses [experiment -> trial] == 0) {
 			for (iresponse = 1; iresponse <= experiment -> numberOfDifferentResponses; iresponse ++) {
 				ResponseMFC response = & experiment -> response [iresponse];
-				if (response -> key && response -> key [0] == event -> key) {
+				if (response -> key != NULL && response -> key [0] == event -> key) {
 					experiment -> responses [experiment -> trial] = iresponse;
 					experiment -> reactionTimes [experiment -> trial] = reactionTime;
 					if (experiment -> responsesAreSounds) {
@@ -423,7 +432,7 @@ static void gui_drawingarea_cb_key (RunnerMFC me, GuiDrawingArea_KeyEvent event)
 						do_ok (me);
 					} else {
 						Editor_broadcastDataChanged (me);
-						Graphics_updateWs (my graphics.get());
+						Graphics_updateWs (my graphics);
 					}
 				}
 			}
@@ -436,21 +445,21 @@ void structRunnerMFC :: v_createChildren () {
 		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, gui_drawingarea_cb_key, gui_drawingarea_cb_resize, this, 0);
 }
 
-autoRunnerMFC RunnerMFC_create (const char32 *title, autoExperimentMFCList experiments) {
+RunnerMFC RunnerMFC_create (const char32 *title, Ordered experiments) {
 	try {
 		autoRunnerMFC me = Thing_new (RunnerMFC);
-		Editor_init (me.get(), 0, 0, 2000, 2000, title, nullptr);
-		my experiments = experiments.move();
+		Editor_init (me.peek(), 0, 0, 2000, 2000, title, NULL);
+		my experiments = experiments;
 		my graphics = Graphics_create_xmdrawingarea (my d_drawingArea);
 
-struct structGuiDrawingArea_ResizeEvent event { my d_drawingArea, 0 };
+struct structGuiDrawingAreaResizeEvent event = { my d_drawingArea, 0 };
 event. width  = GuiControl_getWidth  (my d_drawingArea);
 event. height = GuiControl_getHeight (my d_drawingArea);
-gui_drawingarea_cb_resize (me.get(), & event);
+gui_drawingarea_cb_resize (me.peek(), & event);
 
 		my iexperiment = 1;
-		RunnerMFC_startExperiment (me.get());
-		return me;
+		RunnerMFC_startExperiment (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Experiment window not created.");
 	}
diff --git a/fon/RunnerMFC.h b/fon/RunnerMFC.h
index 9a1f2e9..e3d62cf 100644
--- a/fon/RunnerMFC.h
+++ b/fon/RunnerMFC.h
@@ -24,12 +24,12 @@
 
 Thing_define (RunnerMFC, Editor) {
 	GuiDrawingArea d_drawingArea;
-	autoExperimentMFCList experiments;
+	Ordered experiments;
 	long iexperiment;
-	autoGraphics graphics;
+	Graphics graphics;
 	long numberOfReplays;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	bool v_editable ()
 		override { return false; }
@@ -41,7 +41,7 @@ Thing_define (RunnerMFC, Editor) {
 		override;
 };
 
-autoRunnerMFC RunnerMFC_create (const char32 *title, autoExperimentMFCList experiments);
+RunnerMFC RunnerMFC_create (const char32 *title, Ordered experiments);
 
 /* End of file RunnerMFC.h */
 #endif
diff --git a/fon/Sampled.cpp b/fon/Sampled.cpp
index 37a4a2e..422de13 100644
--- a/fon/Sampled.cpp
+++ b/fon/Sampled.cpp
@@ -1,6 +1,6 @@
 /* Sampled.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -320,14 +320,14 @@ static void Sampled_getSum2AndDefinitionRange
 		Outside [x1-dx/2, xN+dx/2], the curve is undefined and neither times nor values are counted.
 		In [x1-dx/2,x1] and [xN,xN+dx/2], the curve is linearly extrapolated.
 	*/
-	long imin, imax;
+	long imin, imax, isamp;
 	double sum2 = 0.0, definitionRange = 0.0;
 	Function_unidirectionalAutowindow (me, & xmin, & xmax);
 	if (Function_intersectRangeWithDomain (me, & xmin, & xmax)) {
 		if (interpolate) {
 			if (Sampled_getWindowSamples (me, xmin, xmax, & imin, & imax)) {
 				double leftEdge = my x1 - 0.5 * my dx, rightEdge = leftEdge + my nx * my dx;
-				for (long isamp = imin; isamp <= imax; isamp ++) {
+				for (isamp = imin; isamp <= imax; isamp ++) {
 					double value = my v_getValueAtSample (isamp, ilevel, unit);   // a fast way to integrate a linearly interpolated curve; works everywhere except at the edges
 					if (NUMdefined (value)) {
 						value -= mean;
@@ -426,9 +426,9 @@ static void Sampled_getSum2AndDefinitionRange
 		} else {   // no interpolation
 			double rimin = Sampled_xToIndex (me, xmin), rimax = Sampled_xToIndex (me, xmax);
 			if (rimax >= 0.5 && rimin < my nx + 0.5) {
-				imin = rimin < 0.5 ? 0 : lround (rimin);
-				imax = rimax >= my nx + 0.5 ? my nx + 1 : lround (rimax);
-				for (long isamp = imin + 1; isamp < imax; isamp ++) {
+				imin = rimin < 0.5 ? 0 : (long) floor (rimin + 0.5);
+				imax = rimax >= my nx + 0.5 ? my nx + 1 : (long) floor (rimax + 0.5);
+				for (isamp = imin + 1; isamp < imax; isamp ++) {
 					double value = my v_getValueAtSample (isamp, ilevel, unit);
 					if (NUMdefined (value)) {
 						value -= mean;
@@ -490,6 +490,7 @@ double Sampled_getStandardDeviation_standardUnit (Sampled me, double xmin, doubl
 void Sampled_getMinimumAndX (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate,
 	double *return_minimum, double *return_xOfMinimum)
 {
+	long imin, imax, i;
 	double minimum = 1e301, xOfMinimum = 0.0;
 	if (xmin == NUMundefined || xmax == NUMundefined) {
 		minimum = xOfMinimum = NUMundefined;
@@ -500,7 +501,6 @@ void Sampled_getMinimumAndX (Sampled me, double xmin, double xmax, long ilevel,
 		minimum = xOfMinimum = NUMundefined;   // requested range and logical domain do not intersect
 		goto end;
 	}
-	long imin, imax;
 	if (! Sampled_getWindowSamples (me, xmin, xmax, & imin, & imax)) {
 		/*
 		 * No sample centres between xmin and xmax.
@@ -511,10 +511,10 @@ void Sampled_getMinimumAndX (Sampled me, double xmin, double xmax, long ilevel,
 		if (NUMdefined (fleft) && fleft < minimum) minimum = fleft, xOfMinimum = xmin;
 		if (NUMdefined (fright) && fright < minimum) minimum = fright, xOfMinimum = xmax;
 	} else {
-		for (long i = imin; i <= imax; i ++) {
+		for (i = imin; i <= imax; i ++) {
 			double fmid = my v_getValueAtSample (i, ilevel, unit);
 			if (fmid == NUMundefined) continue;
-			if (! interpolate) {
+			if (interpolate == FALSE) {
 				if (fmid < minimum) minimum = fmid, xOfMinimum = i;
 			} else {
 				/*
@@ -533,11 +533,11 @@ void Sampled_getMinimumAndX (Sampled me, double xmin, double xmax, long ilevel,
 				}
 			}
 		}
-		xOfMinimum = my x1 + (xOfMinimum - 1) * my dx;   // from index plus phase to time
+		xOfMinimum = my x1 + (xOfMinimum - 1) * my dx;   /* From index plus phase to time. */
 		/* Check boundary values. */
 		if (interpolate) {
-			double fleft = Sampled_getValueAtX (me, xmin, ilevel, unit, true);
-			double fright = Sampled_getValueAtX (me, xmax, ilevel, unit, true);
+			double fleft = Sampled_getValueAtX (me, xmin, ilevel, unit, TRUE);
+			double fright = Sampled_getValueAtX (me, xmax, ilevel, unit, TRUE);
 			if (NUMdefined (fleft) && fleft < minimum) minimum = fleft, xOfMinimum = xmin;
 			if (NUMdefined (fright) && fright < minimum) minimum = fright, xOfMinimum = xmax;
 		}
@@ -552,19 +552,20 @@ end:
 
 double Sampled_getMinimum (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate) {
 	double minimum;
-	Sampled_getMinimumAndX (me, xmin, xmax, ilevel, unit, interpolate, & minimum, nullptr);
+	Sampled_getMinimumAndX (me, xmin, xmax, ilevel, unit, interpolate, & minimum, NULL);
 	return minimum;
 }
 
 double Sampled_getXOfMinimum (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate) {
 	double time;
-	Sampled_getMinimumAndX (me, xmin, xmax, ilevel, unit, interpolate, nullptr, & time);
+	Sampled_getMinimumAndX (me, xmin, xmax, ilevel, unit, interpolate, NULL, & time);
 	return time;
 }
 
 void Sampled_getMaximumAndX (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate,
 	double *return_maximum, double *return_xOfMaximum)
 {
+	long imin, imax, i;
 	double maximum = -1e301, xOfMaximum = 0.0;
 	if (xmin == NUMundefined || xmax == NUMundefined) {
 		maximum = xOfMaximum = NUMundefined;
@@ -575,7 +576,6 @@ void Sampled_getMaximumAndX (Sampled me, double xmin, double xmax, long ilevel,
 		maximum = xOfMaximum = NUMundefined;   // requested range and logical domain do not intersect
 		goto end;
 	}
-	long imin, imax;
 	if (! Sampled_getWindowSamples (me, xmin, xmax, & imin, & imax)) {
 		/*
 		 * No sample centres between tmin and tmax.
@@ -586,10 +586,10 @@ void Sampled_getMaximumAndX (Sampled me, double xmin, double xmax, long ilevel,
 		if (NUMdefined (fleft) && fleft > maximum) maximum = fleft, xOfMaximum = xmin;
 		if (NUMdefined (fright) && fright > maximum) maximum = fright, xOfMaximum = xmax;
 	} else {
-		for (long i = imin; i <= imax; i ++) {
+		for (i = imin; i <= imax; i ++) {
 			double fmid = my v_getValueAtSample (i, ilevel, unit);
 			if (fmid == NUMundefined) continue;
-			if (! interpolate) {
+			if (interpolate == FALSE) {
 				if (fmid > maximum) maximum = fmid, xOfMaximum = i;
 			} else {
 				/*
@@ -611,8 +611,8 @@ void Sampled_getMaximumAndX (Sampled me, double xmin, double xmax, long ilevel,
 		xOfMaximum = my x1 + (xOfMaximum - 1) * my dx;   // from index plus phase to time
 		/* Check boundary values. */
 		if (interpolate) {
-			double fleft = Sampled_getValueAtX (me, xmin, ilevel, unit, true);
-			double fright = Sampled_getValueAtX (me, xmax, ilevel, unit, true);
+			double fleft = Sampled_getValueAtX (me, xmin, ilevel, unit, TRUE);
+			double fright = Sampled_getValueAtX (me, xmax, ilevel, unit, TRUE);
 			if (NUMdefined (fleft) && fleft > maximum) maximum = fleft, xOfMaximum = xmin;
 			if (NUMdefined (fright) && fright > maximum) maximum = fright, xOfMaximum = xmax;
 		}
@@ -627,13 +627,13 @@ end:
 
 double Sampled_getMaximum (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate) {
 	double maximum;
-	Sampled_getMaximumAndX (me, xmin, xmax, ilevel, unit, interpolate, & maximum, nullptr);
+	Sampled_getMaximumAndX (me, xmin, xmax, ilevel, unit, interpolate, & maximum, NULL);
 	return maximum;
 }
 
 double Sampled_getXOfMaximum (Sampled me, double xmin, double xmax, long ilevel, int unit, bool interpolate) {
 	double time;
-	Sampled_getMaximumAndX (me, xmin, xmax, ilevel, unit, interpolate, nullptr, & time);
+	Sampled_getMaximumAndX (me, xmin, xmax, ilevel, unit, interpolate, NULL, & time);
 	return time;
 }
 
diff --git a/fon/Sampled.h b/fon/Sampled.h
index aaafbdb..df62c21 100644
--- a/fon/Sampled.h
+++ b/fon/Sampled.h
@@ -24,6 +24,7 @@
 #include "Graphics.h"
 
 #include "Sampled_def.h"
+oo_CLASS_CREATE (Sampled, Function);
 
 /* A Sampled is a Function that is sampled at nx points [1..nx], */
 /* which are spaced apart by a constant distance dx. */
diff --git a/fon/SampledXY.cpp b/fon/SampledXY.cpp
index 7fbe0b0..bb8155b 100644
--- a/fon/SampledXY.cpp
+++ b/fon/SampledXY.cpp
@@ -40,20 +40,6 @@
 
 Thing_implement (SampledXY, Sampled, 0);
 
-/*
- * CHECK
-	if (xmin > xmax || ymin > ymax) {
-		Melder_throw (U"xmax should be greater than xmax and ymax should be greater than ymin.");
-	}
-	if (nx < 1 || ny < 1) {
-		Melder_throw (U"nx and ny should be at least 1.");
-	}
-	if (dx <= 0 || dy <= 0) {
-		Melder_throw (U"dx and dy should be positive.");
-	}
-}
-*/
-
 void SampledXY_init (SampledXY me,
 	double xmin, double xmax, long nx, double dx, double x1,
 	double ymin, double ymax, long ny, double dy, double y1)
diff --git a/fon/SampledXY.h b/fon/SampledXY.h
index e83f519..b343d57 100644
--- a/fon/SampledXY.h
+++ b/fon/SampledXY.h
@@ -22,6 +22,7 @@
 #include "Sampled.h"
 
 #include "SampledXY_def.h"
+oo_CLASS_CREATE (SampledXY, Sampled);
 
 void SampledXY_init (SampledXY me, double xmin, double xmax, long nx, double dx, double x1,
                                    double ymin, double ymax, long ny, double dy, double y1);
diff --git a/fon/SampledXY_def.h b/fon/SampledXY_def.h
index b0ea401..4488f20 100644
--- a/fon/SampledXY_def.h
+++ b/fon/SampledXY_def.h
@@ -17,6 +17,9 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 20131022 split off from Matrix
+ */
 
 #define ooSTRUCT SampledXY
 oo_DEFINE_CLASS (SampledXY, Sampled)
@@ -27,18 +30,6 @@ oo_DEFINE_CLASS (SampledXY, Sampled)
 	oo_DOUBLE (dy)
 	oo_DOUBLE (y1)
 
-	#if oo_READING
-		if (ymin > ymax) {
-			Melder_throw (U"ymax should be greater than ymin.");
-		}
-		if (ny < 1) {
-			Melder_throw (U"ny should be at least 1.");
-		}
-		if (dy <= 0.0) {
-			Melder_throw (U"dy should be positive.");
-		}
-	#endif
-
 	#if oo_DECLARING
 		bool v_hasGetYmin ()
 			override { return true; }
@@ -65,5 +56,4 @@ oo_DEFINE_CLASS (SampledXY, Sampled)
 oo_END_CLASS (SampledXY)
 #undef ooSTRUCT
 
-
 /* End of file SampledXY_def.h */
diff --git a/fon/Sampled_def.h b/fon/Sampled_def.h
index 12bf682..3c8950f 100644
--- a/fon/Sampled_def.h
+++ b/fon/Sampled_def.h
@@ -25,18 +25,6 @@ oo_DEFINE_CLASS (Sampled, Function)
 	oo_DOUBLE (dx)
 	oo_DOUBLE (x1)
 
-	#if oo_READING
-		if (xmin > xmax) {
-			Melder_throw (U"xmax should be greater than xmin.");
-		}
-		if (nx < 1) {
-			Melder_throw (U"nx should be at least 1.");
-		}
-		if (dx <= 0.0) {
-			Melder_throw (U"dx should be positive.");
-		}
-	#endif
-
 	#if oo_DECLARING
 		bool v_hasGetNx ()
 			override { return true; }
diff --git a/fon/Sound.cpp b/fon/Sound.cpp
index c08c13a..63c907e 100644
--- a/fon/Sound.cpp
+++ b/fon/Sound.cpp
@@ -1,6 +1,6 @@
 /* Sound.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,10 +34,10 @@
 
 Thing_implement (Sound, Vector, 2);
 
-autoSound Sound_clipboard;
+Sound Sound_clipboard;
 
 void structSound :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	const double rho_c = 400;   /* rho = 1.14 kg m-3; c = 353 m s-1; [rho c] = kg m-2 s-1 */
 	double minimum = z [1] [1], maximum = minimum;
 	MelderInfo_writeLine (U"Number of channels: ", ny, ny == 1 ? U" (mono)" : ny == 2 ? U" (stereo)" : U"");
@@ -123,27 +123,27 @@ double structSound :: v_getFunction2 (double x, double y) {
 	return v_getFunction1 (channel, x);
 }
 
-autoSound Sound_create (long numberOfChannels, double xmin, double xmax, long nx, double dx, double x1) {
+Sound Sound_create (long numberOfChannels, double xmin, double xmax, long nx, double dx, double x1) {
 	try {
 		autoSound me = Thing_new (Sound);
-		Matrix_init (me.get(), xmin, xmax, nx, dx, x1, 1, numberOfChannels, numberOfChannels, 1, 1);
-		return me;
+		Matrix_init (me.peek(), xmin, xmax, nx, dx, x1, 1, numberOfChannels, numberOfChannels, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created.");
 	}
 }
 
-autoSound Sound_createSimple (long numberOfChannels, double duration, double samplingFrequency) {
+Sound Sound_createSimple (long numberOfChannels, double duration, double samplingFrequency) {
 	Melder_assert (duration >= 0.0);
 	Melder_assert (samplingFrequency > 0.0);
 	double numberOfSamples_f = round (duration * samplingFrequency);
 	if (numberOfSamples_f > (double) INT32_MAX)
 		Melder_throw (U"Cannot create sounds with more than ", Melder_bigInteger (INT32_MAX), U" samples, because they cannot be saved to disk.");
 	return Sound_create (numberOfChannels, 0.0, duration, (long) (int32_t) numberOfSamples_f,
-		1.0 / samplingFrequency, 0.5 / samplingFrequency);
+		1 / samplingFrequency, 0.5 / samplingFrequency);
 }
 
-autoSound Sound_convertToMono (Sound me) {
+Sound Sound_convertToMono (Sound me) {
 	if (my ny == 1) return Data_copy (me);   // optimization
 	try {
 		autoSound thee = Sound_create (1, my xmin, my xmax, my nx, my dx, my x1);
@@ -160,13 +160,13 @@ autoSound Sound_convertToMono (Sound me) {
 				thy z [1] [i] = sum / my ny;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to mono.");
 	}
 }
 
-autoSound Sound_convertToStereo (Sound me) {
+Sound Sound_convertToStereo (Sound me) {
 	if (my ny == 2) return Data_copy (me);
 	try {
 		if (my ny > 2) {
@@ -177,18 +177,18 @@ autoSound Sound_convertToStereo (Sound me) {
 		for (long i = 1; i <= my nx; i ++) {
 			thy z [1] [i] = thy z [2] [i] = my z [1] [i];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to stereo.");
 	}
 }
 
-autoSound Sounds_combineToStereo (OrderedOf<structSound>* me) {
+Sound Sounds_combineToStereo (Collection me) {
 	try {
 		long totalNumberOfChannels = 0;
 		double sharedSamplingPeriod = 0.0;
 		for (long isound = 1; isound <= my size; isound ++) {
-			Sound sound = my at [isound];
+			Sound sound = (Sound) my item [isound];
 			totalNumberOfChannels += sound -> ny;
 			if (sharedSamplingPeriod == 0.0) {
 				sharedSamplingPeriod = sound -> dx;
@@ -199,7 +199,7 @@ autoSound Sounds_combineToStereo (OrderedOf<structSound>* me) {
 		}
 		double sharedMinimumTime = NUMundefined, sharedMaximumTime = NUMundefined;
 		for (long isound = 1; isound <= my size; isound ++) {
-			Sound sound = my at [isound];
+			Sound sound = (Sound) my item [isound];
 			if (isound == 1) {
 				sharedMinimumTime = sound -> xmin;
 				sharedMaximumTime = sound -> xmax;
@@ -212,7 +212,7 @@ autoSound Sounds_combineToStereo (OrderedOf<structSound>* me) {
 		long sharedNumberOfSamples = 0;
 		double sumOfFirstTimes = 0.0;
 		for (long isound = 1; isound <= my size; isound ++) {
-			Sound sound = my at [isound];
+			Sound sound = (Sound) my item [isound];
 			numberOfInitialZeroes [isound] = floor ((sound -> xmin - sharedMinimumTime) / sharedSamplingPeriod);
 			double newFirstTime = sound -> x1 - sound -> dx * numberOfInitialZeroes [isound];
 			sumOfFirstTimes += newFirstTime;
@@ -224,7 +224,7 @@ autoSound Sounds_combineToStereo (OrderedOf<structSound>* me) {
 			sharedNumberOfSamples, sharedSamplingPeriod, sharedTimeOfFirstSample);
 		long channelNumber = 0;
 		for (long isound = 1; isound <= my size; isound ++) {
-			Sound sound = my at [isound];
+			Sound sound = (Sound) my item [isound];
 			long offset = (long) floor (numberOfInitialZeroes [isound]);
 			for (long ichan = 1; ichan <= sound -> ny; ichan ++) {
 				channelNumber ++;
@@ -233,13 +233,13 @@ autoSound Sounds_combineToStereo (OrderedOf<structSound>* me) {
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sounds not combined to stereo.");
 	}
 }
 
-autoSound Sound_extractChannel (Sound me, long ichan) {
+Sound Sound_extractChannel (Sound me, long ichan) {
 	try {
 		if (ichan <= 0 || ichan > my ny)
 			Melder_throw (U"There is no channel ", ichan, U".");
@@ -247,7 +247,7 @@ autoSound Sound_extractChannel (Sound me, long ichan) {
 		for (long isamp = 1; isamp <= my nx; isamp ++) {
 			thy z [1] [isamp] = my z [ichan] [isamp];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": channel ", ichan, U" not extracted.");
 	}
@@ -305,46 +305,46 @@ double Sound_getPowerInAir (Sound me) {
 	return NUMdefined (sum2) ? sum2 / (n * my ny) / 400 : NUMundefined;
 }
 
-autoSound Matrix_to_Sound_mono (Matrix me, long row) {
+Sound Matrix_to_Sound_mono (Matrix me, long row) {
 	try {
 		autoSound thee = Sound_create (1, my xmin, my xmax, my nx, my dx, my x1);
 		if (row < 0) row = my ny + 1 + row;
 		if (row < 1) row = 1;
 		if (row > my ny) row = my ny;
 		NUMvector_copyElements (my z [row], thy z [1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
 }
 
-autoSound Matrix_to_Sound (Matrix me) {
+Sound Matrix_to_Sound (Matrix me) {
 	try {
 		autoSound thee = Thing_new (Sound);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
 }
 
-autoMatrix Sound_to_Matrix (Sound me) {
+Matrix Sound_to_Matrix (Sound me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoSound Sound_upsample (Sound me) {
+Sound Sound_upsample (Sound me) {
 	try {
 		long nfft = 1;
 		while (nfft < my nx + 2000) nfft *= 2;
 		autoSound thee = Sound_create (my ny, my xmin, my xmax, my nx * 2, my dx / 2, my x1 - my dx / 4);
 		for (long channel = 1; channel <= my ny; channel ++) {
-			autoNUMvector<double> data (1, 2 * nfft);   // zeroing is important...
+			autoNUMvector <double> data (1, 2 * nfft);   // zeroing is important...
 			NUMvector_copyElements (my z [channel], & data [1000], 1, my nx);   // ...because this fills only part of the sound
 			NUMrealft (data.peek(), nfft, 1);
 			long imin = (long) (nfft * 0.95);
@@ -358,13 +358,13 @@ autoSound Sound_upsample (Sound me) {
 				thy z [channel] [i] = data [i + 2000] * factor;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not upsampled.");
 	}
 }
 
-autoSound Sound_resample (Sound me, double samplingFrequency, long precision) {
+Sound Sound_resample (Sound me, double samplingFrequency, long precision) {
 	double upfactor = samplingFrequency * my dx;
 	if (fabs (upfactor - 2) < 1e-6) return Sound_upsample (me);
 	if (fabs (upfactor - 1) < 1e-6) return Data_copy (me);
@@ -372,20 +372,20 @@ autoSound Sound_resample (Sound me, double samplingFrequency, long precision) {
 		long numberOfSamples = lround ((my xmax - my xmin) * samplingFrequency);
 		if (numberOfSamples < 1)
 			Melder_throw (U"The resampled Sound would have no samples.");
-		autoSound filtered;
+		autoSound filtered = NULL;
 		if (upfactor < 1.0) {   // need anti-aliasing filter?
 			long nfft = 1, antiTurnAround = 1000;
 			while (nfft < my nx + antiTurnAround * 2) nfft *= 2;
-			autoNUMvector<double> data (1, nfft);
-			filtered = Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1);
+			autoNUMvector <double> data (1, nfft);
+			filtered.reset (Sound_create (my ny, my xmin, my xmax, my nx, my dx, my x1));
 			for (long channel = 1; channel <= my ny; channel ++) {
 				for (long i = 1; i <= nfft; i ++) {
-					data [i] = 0.0;
+					data [i] = 0;
 				}
 				NUMvector_copyElements (my z [channel], & data [antiTurnAround], 1, my nx);
 				NUMrealft (data.peek(), nfft, 1);   // go to the frequency domain
 				for (long i = (long) floor (upfactor * nfft); i <= nfft; i ++) {
-					data [i] = 0.0;   // filter away high frequencies
+					data [i] = 0;   // filter away high frequencies
 				}
 				data [2] = 0.0;
 				NUMrealft (data.peek(), nfft, -1);   // return to the time domain
@@ -395,7 +395,7 @@ autoSound Sound_resample (Sound me, double samplingFrequency, long precision) {
 					to [i] = data [i + antiTurnAround] * factor;
 				}
 			}
-			me = filtered.get();   // reference copy; remove at end
+			me = filtered.peek();   // reference copy; remove at end
 		}
 		autoSound thee = Sound_create (my ny, my xmin, my xmax, numberOfSamples, 1.0 / samplingFrequency,
 			0.5 * (my xmin + my xmax - (numberOfSamples - 1) / samplingFrequency));
@@ -404,7 +404,7 @@ autoSound Sound_resample (Sound me, double samplingFrequency, long precision) {
 			double *to = thy z [channel];
 			if (precision <= 1) {
 				for (long i = 1; i <= numberOfSamples; i ++) {
-					double x = Sampled_indexToX (thee.get(), i);
+					double x = Sampled_indexToX (thee.peek(), i);
 					double index = Sampled_xToIndex (me, x);
 					long leftSample = (long) floor (index);
 					double fraction = index - leftSample;
@@ -413,42 +413,42 @@ autoSound Sound_resample (Sound me, double samplingFrequency, long precision) {
 				}
 			} else {
 				for (long i = 1; i <= numberOfSamples; i ++) {
-					double x = Sampled_indexToX (thee.get(), i);
+					double x = Sampled_indexToX (thee.peek(), i);
 					double index = Sampled_xToIndex (me, x);
 					to [i] = NUM_interpolate_sinc (my z [channel], my nx, index, precision);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not resampled.");
 	}
 }
 
-autoSound Sounds_append (Sound me, double silenceDuration, Sound thee) {
+Sound Sounds_append (Sound me, double silenceDuration, Sound thee) {
 	try {
 		long nx_silence = lround (silenceDuration / my dx), nx = my nx + nx_silence + thy nx;
 		if (my ny != thy ny)
 			Melder_throw (U"The numbers of channels are not equal (e.g. one is mono, the other stereo).");
 		if (my dx != thy dx)
 			Melder_throw (U"The sampling frequencies are not equal.");
-		autoSound him = Sound_create (my ny, 0.0, nx * my dx, nx, my dx, 0.5 * my dx);
+		autoSound him = Sound_create (my ny, 0, nx * my dx, nx, my dx, 0.5 * my dx);
 		for (long channel = 1; channel <= my ny; channel ++) {
 			NUMvector_copyElements (my z [channel], his z [channel], 1, my nx);
 			NUMvector_copyElements (thy z [channel], his z [channel] + my nx + nx_silence, 1, thy nx);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not appended.");
 	}
 }
 
-autoSound Sounds_concatenate (OrderedOf<structSound>& list, double overlapTime) {
+Sound Sounds_concatenate_e (Collection me, double overlapTime) {
 	try {
 		long numberOfChannels = 0, nx = 0, numberOfSmoothingSamples;
 		double dx = 0.0;
-		for (long i = 1; i <= list.size; i ++) {
-			Sound sound = list.at [i];
+		for (long i = 1; i <= my size; i ++) {
+			Sound sound = (Sound) my item [i];
 			if (numberOfChannels == 0) {
 				numberOfChannels = sound -> ny;
 			} else if (sound -> ny != numberOfChannels) {
@@ -473,12 +473,12 @@ autoSound Sounds_concatenate (OrderedOf<structSound>& list, double overlapTime)
 			}
 		}
 		nx = 0;
-		for (long i = 1; i <= list.size; i ++) {
-			Sound sound = list.at [i];
+		for (long i = 1; i <= my size; i ++) {
+			Sound sound = (Sound) my item [i];
 			if (numberOfSmoothingSamples > 2 * sound -> nx)
 				Melder_throw (U"At least one of the sounds is shorter than twice the overlap time.\nChoose a shorter overlap time.");
 			bool thisIsTheFirstSound = ( i == 1 );
-			bool thisIsTheLastSound = ( i == list.size );
+			bool thisIsTheLastSound = ( i == my size );
 			bool weNeedSmoothingAtTheStartOfThisSound = ! thisIsTheFirstSound;
 			bool weNeedSmoothingAtTheEndOfThisSound = ! thisIsTheLastSound;
 			long numberOfSmoothingSamplesAtTheStartOfThisSound = weNeedSmoothingAtTheStartOfThisSound ? numberOfSmoothingSamples : 0;
@@ -501,16 +501,16 @@ autoSound Sounds_concatenate (OrderedOf<structSound>& list, double overlapTime)
 			}
 			nx += sound -> nx - numberOfSmoothingSamplesAtTheEndOfThisSound;
 		}
-		thy nx -= numberOfSmoothingSamples * (list.size - 1);
+		thy nx -= numberOfSmoothingSamples * (my size - 1);
 		Melder_assert (thy nx == nx);
 		thy xmax = thy nx * dx;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sounds not concatenated.");
 	}
 }
 
-autoSound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		if (my ny > 1 && thy ny > 1 && my ny != thy ny)
 			Melder_throw (U"The numbers of channels of the two sounds have to be equal or 1.");
@@ -567,29 +567,29 @@ autoSound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling s
 		}
 		switch (scaling) {
 			case kSounds_convolve_scaling_INTEGRAL: {
-				Vector_multiplyByScalar (him.get(), my dx / nfft);
+				Vector_multiplyByScalar (him.peek(), my dx / nfft);
 			} break;
 			case kSounds_convolve_scaling_SUM: {
-				Vector_multiplyByScalar (him.get(), 1.0 / nfft);
+				Vector_multiplyByScalar (him.peek(), 1.0 / nfft);
 			} break;
 			case kSounds_convolve_scaling_NORMALIZE: {
 				double normalizationFactor = Matrix_getNorm (me) * Matrix_getNorm (thee);
 				if (normalizationFactor != 0.0) {
-					Vector_multiplyByScalar (him.get(), 1.0 / nfft / normalizationFactor);
+					Vector_multiplyByScalar (him.peek(), 1.0 / nfft / normalizationFactor);
 				}
 			} break;
 			case kSounds_convolve_scaling_PEAK_099: {
-				Vector_scale (him.get(), 0.99);
+				Vector_scale (him.peek(), 0.99);
 			} break;
 			default: Melder_fatal (U"Sounds_convolve: unimplemented scaling ", scaling);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not convolved.");
 	}
 }
 
-autoSound Sounds_crossCorrelate (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound Sounds_crossCorrelate (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		if (my ny > 1 && thy ny > 1 && my ny != thy ny)
 			Melder_throw (U"The numbers of channels of the two sounds have to be equal or 1.");
@@ -650,29 +650,29 @@ autoSound Sounds_crossCorrelate (Sound me, Sound thee, enum kSounds_convolve_sca
 		}
 		switch (scaling) {
 			case kSounds_convolve_scaling_INTEGRAL: {
-				Vector_multiplyByScalar (him.get(), my dx / nfft);
+				Vector_multiplyByScalar (him.peek(), my dx / nfft);
 			} break;
 			case kSounds_convolve_scaling_SUM: {
-				Vector_multiplyByScalar (him.get(), 1.0 / nfft);
+				Vector_multiplyByScalar (him.peek(), 1.0 / nfft);
 			} break;
 			case kSounds_convolve_scaling_NORMALIZE: {
 				double normalizationFactor = Matrix_getNorm (me) * Matrix_getNorm (thee);
 				if (normalizationFactor != 0.0) {
-					Vector_multiplyByScalar (him.get(), 1.0 / nfft / normalizationFactor);
+					Vector_multiplyByScalar (him.peek(), 1.0 / nfft / normalizationFactor);
 				}
 			} break;
 			case kSounds_convolve_scaling_PEAK_099: {
-				Vector_scale (him.get(), 0.99);
+				Vector_scale (him.peek(), 0.99);
 			} break;
 			default: Melder_fatal (U"Sounds_crossCorrelate: unimplemented scaling ", scaling);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not cross-correlated.");
 	}
 }
 
-autoSound Sound_autoCorrelate (Sound me, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
+Sound Sound_autoCorrelate (Sound me, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain) {
 	try {
 		long numberOfChannels = my ny, n1 = my nx, n2 = n1 + n1 - 1, nfft = 1;
 		while (nfft < n2) nfft *= 2;
@@ -721,23 +721,23 @@ autoSound Sound_autoCorrelate (Sound me, enum kSounds_convolve_scaling scaling,
 		}
 		switch (scaling) {
 			case kSounds_convolve_scaling_INTEGRAL: {
-				Vector_multiplyByScalar (thee.get(), my dx / nfft);
+				Vector_multiplyByScalar (thee.peek(), my dx / nfft);
 			} break;
 			case kSounds_convolve_scaling_SUM: {
-				Vector_multiplyByScalar (thee.get(), 1.0 / nfft);
+				Vector_multiplyByScalar (thee.peek(), 1.0 / nfft);
 			} break;
 			case kSounds_convolve_scaling_NORMALIZE: {
 				double normalizationFactor = Matrix_getNorm (me) * Matrix_getNorm (me);
 				if (normalizationFactor != 0.0) {
-					Vector_multiplyByScalar (thee.get(), 1.0 / nfft / normalizationFactor);
+					Vector_multiplyByScalar (thee.peek(), 1.0 / nfft / normalizationFactor);
 				}
 			} break;
 			case kSounds_convolve_scaling_PEAK_099: {
-				Vector_scale (thee.get(), 0.99);
+				Vector_scale (thee.peek(), 0.99);
 			} break;
 			default: Melder_fatal (U"Sounds_autoCorrelate: unimplemented scaling ", scaling);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": autocorrelation not computed.");
 	}
@@ -813,20 +813,20 @@ void Sound_draw (Sound me, Graphics g,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
 		Graphics_setWindow (g, tmin, tmax, minimum - (my ny - 1) * (maximum - minimum), maximum);
-		Graphics_markLeft (g, minimum, true, true, false, nullptr);
-		Graphics_markLeft (g, maximum, true, true, false, nullptr);
+		Graphics_markLeft (g, minimum, 1, 1, 0, NULL);
+		Graphics_markLeft (g, maximum, 1, 1, 0, NULL);
 		if (minimum != 0.0 && maximum != 0.0 && (minimum > 0.0) != (maximum > 0.0)) {
-			Graphics_markLeft (g, 0.0, true, true, true, nullptr);
+			Graphics_markLeft (g, 0.0, 1, 1, 1, NULL);
 		}
 		if (my ny == 2) {
 			Graphics_setWindow (g, treversed ? tmax : tmin, treversed ? tmin : tmax, minimum, maximum + (my ny - 1) * (maximum - minimum));
-			Graphics_markRight (g, minimum, true, true, false, nullptr);
-			Graphics_markRight (g, maximum, true, true, false, nullptr);
+			Graphics_markRight (g, minimum, 1, 1, 0, NULL);
+			Graphics_markRight (g, maximum, 1, 1, 0, NULL);
 			if (minimum != 0.0 && maximum != 0.0 && (minimum > 0.0) != (maximum > 0.0)) {
-				Graphics_markRight (g, 0.0, true, true, true, nullptr);
+				Graphics_markRight (g, 0.0, 1, 1, 1, NULL);
 			}
 		}
 	}
@@ -838,7 +838,7 @@ static double interpolate (Sound me, long i1, long channel)
 	long i2 = i1 + 1;
 	double x1 = Sampled_indexToX (me, i1), x2 = Sampled_indexToX (me, i2);
 	double y1 = my z [channel] [i1], y2 = my z [channel] [i2];
-	return x1 + (x2 - x1) * y1 / (y1 - y2);   // linear
+	return x1 + (x2 - x1) * y1 / (y1 - y2);   /* Linear. */
 }
 double Sound_getNearestZeroCrossing (Sound me, double position, long channel) {
 	double *amplitude = my z [channel];
@@ -873,7 +873,7 @@ double Sound_getNearestZeroCrossing (Sound me, double position, long channel) {
 		position - leftZero < rightZero - position ? leftZero : rightZero;
 }
 
-void Sound_setZero (Sound me, double tmin_in, double tmax_in, bool roundTimesToNearestZeroCrossing) {
+void Sound_setZero (Sound me, double tmin_in, double tmax_in, int roundTimesToNearestZeroCrossing) {
 	Function_unidirectionalAutowindow (me, & tmin_in, & tmax_in);
 	Function_intersectRangeWithDomain (me, & tmin_in, & tmax_in);
 	for (long channel = 1; channel <= my ny; channel ++) {
@@ -892,7 +892,7 @@ void Sound_setZero (Sound me, double tmin_in, double tmax_in, bool roundTimesToN
 	}
 }
 
-autoSound Sound_createAsPureTone (long numberOfChannels, double startingTime, double endTime,
+Sound Sound_createAsPureTone (long numberOfChannels, double startingTime, double endTime,
 	double sampleRate, double frequency, double amplitude, double fadeInDuration, double fadeOutDuration)
 {
 	try {
@@ -900,7 +900,7 @@ autoSound Sound_createAsPureTone (long numberOfChannels, double startingTime, do
 		if (numberOfSamples_f > (double) INT32_MAX)
 			Melder_throw (U"Cannot create sounds with more than ", Melder_bigInteger (INT32_MAX), U" samples, because they cannot be saved to disk.");
 		autoSound me = Sound_create (numberOfChannels, startingTime, endTime, (long) numberOfSamples_f,
-			1.0 / sampleRate, startingTime + 0.5 / sampleRate);
+			1 / sampleRate, startingTime + 0.5 / sampleRate);
 		for (long isamp = 1; isamp <= my nx; isamp ++) {
 			double time = my x1 + (isamp - 1) * my dx;
 			double value = amplitude * sin (NUM2pi * frequency * time);
@@ -914,13 +914,13 @@ autoSound Sound_createAsPureTone (long numberOfChannels, double startingTime, do
 				my z [ichan] [isamp] = value;
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from tone complex.");
 	}
 }
 
-autoSound Sound_createFromToneComplex (double startingTime, double endTime, double sampleRate,
+Sound Sound_createFromToneComplex (double startingTime, double endTime, double sampleRate,
 	int phase, double frequencyStep, double firstFrequency, double ceiling, long numberOfComponents)
 {
 	try {
@@ -949,10 +949,10 @@ autoSound Sound_createFromToneComplex (double startingTime, double endTime, doub
 		 */
 		double factor = 0.99 / numberOfComponents;
 		autoSound me = Sound_create (1, startingTime, endTime, lround ((endTime - startingTime) * sampleRate),
-			1.0 / sampleRate, startingTime + 0.5 / sampleRate);
+			1 / sampleRate, startingTime + 0.5 / sampleRate);
 		double *amplitude = my z [1];
 		for (long isamp = 1; isamp <= my nx; isamp ++) {
-			double value = 0.0, t = Sampled_indexToX (me.get(), isamp);
+			double value = 0.0, t = Sampled_indexToX (me.peek(), isamp);
 			double omegaStepT = omegaStep * t, firstOmegaT = firstOmega * t;
 			if (phase == Sound_TONE_COMPLEX_SINE)
 				for (long icomp = 1; icomp <= numberOfComponents; icomp ++)
@@ -962,7 +962,7 @@ autoSound Sound_createFromToneComplex (double startingTime, double endTime, doub
 					value += cos (firstOmegaT + (icomp - 1) * omegaStepT);
 			amplitude [isamp] = value * factor;
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not created from tone complex.");
 	}
@@ -1055,7 +1055,7 @@ void Sound_overrideSamplingFrequency (Sound me, double rate) {
 	my xmax = my xmin + my nx * my dx;
 }
 
-autoSound Sound_extractPart (Sound me, double t1, double t2, enum kSound_windowShape windowShape, double relativeWidth, bool preserveTimes) {
+Sound Sound_extractPart (Sound me, double t1, double t2, enum kSound_windowShape windowShape, double relativeWidth, bool preserveTimes) {
 	try {
 		/*
 		 * We do not clip to the Sound's time domain.
@@ -1096,14 +1096,14 @@ autoSound Sound_extractPart (Sound me, double t1, double t2, enum kSound_windowS
 		/*
 		 * Multiply by a window that extends throughout the target domain.
 		 */
-		Sound_multiplyByWindow (thee.get(), windowShape);
-		return thee;
+		Sound_multiplyByWindow (thee.peek(), windowShape);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": part not extracted.");
 	}
 }
 
-autoSound Sound_extractPartForOverlap (Sound me, double t1, double t2, double overlap) {
+Sound Sound_extractPartForOverlap (Sound me, double t1, double t2, double overlap) {
 	try {
 		if (t1 == t2) { t1 = my xmin; t2 = my xmax; };   // autowindow
 		if (overlap > 0.0) {
@@ -1134,7 +1134,7 @@ autoSound Sound_extractPartForOverlap (Sound me, double t1, double t2, double ov
 			NUMvector_copyElements (my z [channel], thy z [channel] + 1 - ix1,
 					( ix1 < 1 ? 1 : ix1 ), ( ix2 > my nx ? my nx : ix2 ));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": part not extracted.");
 	}
@@ -1162,11 +1162,11 @@ void Sound_filterWithFormants (Sound me, double tmin, double tmax,
 	}
 }
 
-autoSound Sound_filter_oneFormant (Sound me, double frequency, double bandwidth) {
+Sound Sound_filter_oneFormant (Sound me, double frequency, double bandwidth) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_filterWithOneFormantInline (thee.get(), frequency, bandwidth);
-		return thee;
+		Sound_filterWithOneFormantInline (thee.peek(), frequency, bandwidth);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (one formant).");
 	}
@@ -1179,23 +1179,23 @@ void Sound_filterWithOneFormantInline (Sound me, double frequency, double bandwi
 	Matrix_scaleAbsoluteExtremum (me, 0.99);
 }
 
-autoSound Sound_filter_preemphasis (Sound me, double frequency) {
+Sound Sound_filter_preemphasis (Sound me, double frequency) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_preEmphasis (thee.get(), frequency);
-		Matrix_scaleAbsoluteExtremum (thee.get(), 0.99);
-		return thee;
+		Sound_preEmphasis (thee.peek(), frequency);
+		Matrix_scaleAbsoluteExtremum (thee.peek(), 0.99);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (pre-emphasis).");
 	}
 }
 
-autoSound Sound_filter_deemphasis (Sound me, double frequency) {
+Sound Sound_filter_deemphasis (Sound me, double frequency) {
 	try {
 		autoSound thee = Data_copy (me);
-		Sound_deEmphasis (thee.get(), frequency);
-		Matrix_scaleAbsoluteExtremum (thee.get(), 0.99);
-		return thee;
+		Sound_deEmphasis (thee.peek(), frequency);
+		Matrix_scaleAbsoluteExtremum (thee.peek(), 0.99);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (de-emphasis).");
 	}
@@ -1215,7 +1215,7 @@ void Sound_reverse (Sound me, double tmin, double tmax) {
 	}
 }
 
-autoSound Sounds_crossCorrelate_short (Sound me, Sound thee, double tmin, double tmax, int normalize) {
+Sound Sounds_crossCorrelate_short (Sound me, Sound thee, double tmin, double tmax, int normalize) {
 	try {
 		if (my dx != thy dx)
 			Melder_throw (U"Sampling frequencies are not equal.");
@@ -1265,7 +1265,7 @@ autoSound Sounds_crossCorrelate_short (Sound me, Sound thee, double tmin, double
 				his z [1] [i] *= factor;
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not cross-correlated.");
 	}
diff --git a/fon/Sound.h b/fon/Sound.h
index b7e41ba..e86d416 100644
--- a/fon/Sound.h
+++ b/fon/Sound.h
@@ -55,10 +55,10 @@ Thing_define (Sound, Vector) {
 	z may be replaced (e.g., in pasting).
 */
 
-autoSound Sound_create (long numberOfChannels, double xmin, double xmax, long nx, double dx, double x1);
+Sound Sound_create (long numberOfChannels, double xmin, double xmax, long nx, double dx, double x1);
 /*
 	Function:
-		return a new silent Sound.
+		return a new silent Sound, or NULL if out of memory.
 	Preconditions:
 		xmax > xmin;
 		nx >= 1;
@@ -77,10 +77,10 @@ autoSound Sound_create (long numberOfChannels, double xmin, double xmax, long nx
 		thy z [i] [1..nx] == 0.0;
 */
 
-autoSound Sound_createSimple (long numberOfChannels, double duration, double samplingFrequency);
+Sound Sound_createSimple (long numberOfChannels, double duration, double samplingFrequency);
 /*
 	Function:
-		return a new silent Sound.
+		return a new silent Sound, or NULL if out of memory.
 	Preconditions:
 		duration > 0.0;
 		samplingFrequency > 0.0;
@@ -98,26 +98,26 @@ autoSound Sound_createSimple (long numberOfChannels, double duration, double sam
 		thy z [i] [1..nx] == 0.0;
 */
 
-autoSound Sound_convertToMono (Sound me);
-autoSound Sound_convertToStereo (Sound me);
-autoSound Sound_extractChannel (Sound me, long ichannel);
-autoSound Sounds_combineToStereo (OrderedOf<structSound>* me);
+Sound Sound_convertToMono (Sound me);
+Sound Sound_convertToStereo (Sound me);
+Sound Sound_extractChannel (Sound me, long ichannel);
+Sound Sounds_combineToStereo (Collection me);
 
 /* Levels for Sampled_getValueAtSample (me, index, level, unit) */
 #define Sound_LEVEL_MONO  0
 #define Sound_LEVEL_LEFT  1
 #define Sound_LEVEL_RIGHT  2
 
-autoSound Sound_upsample (Sound me);   /* By a factor 2. */
+Sound Sound_upsample (Sound me);   /* By a factor 2. */
 
-autoSound Sound_resample (Sound me, double samplingFrequency, long precision);
+Sound Sound_resample (Sound me, double samplingFrequency, long precision);
 /*
 	Method:
 		precision <= 1: linear interpolation.
 		precision >= 2: sinx/x interpolation with maximum depth equal to 'precision'.
 */
 
-autoSound Sounds_append (Sound me, double silenceDuration, Sound thee);
+Sound Sounds_append (Sound me, double silenceDuration, Sound thee);
 /*
 	Function:
 		append two Sounds.
@@ -135,7 +135,7 @@ autoSound Sounds_append (Sound me, double silenceDuration, Sound thee);
 		result -> z [1] [i + my nx + round (silenceDuration / my dx)] == thy z [1] [i]
 */
  
-autoSound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 /*
 	Function:
 		convolve two Sounds.
@@ -151,9 +151,9 @@ autoSound Sounds_convolve (Sound me, Sound thee, enum kSounds_convolve_scaling s
 			result -> z [1] [i] == result -> dx *
 				sum (j = 1..i, my z [1] [j] * thy z [1] [i - j + 1])
 */
-autoSound Sounds_crossCorrelate (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
-autoSound Sounds_crossCorrelate_short (Sound me, Sound thee, double tmin, double tmax, int normalize);
-autoSound Sound_autoCorrelate (Sound me, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound Sounds_crossCorrelate (Sound me, Sound thee, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
+Sound Sounds_crossCorrelate_short (Sound me, Sound thee, double tmin, double tmax, int normalize);
+Sound Sound_autoCorrelate (Sound me, enum kSounds_convolve_scaling scaling, enum kSounds_convolve_signalOutsideTimeDomain signalOutsideTimeDomain);
 
 double Sound_getRootMeanSquare (Sound me, double xmin, double xmax);
 double Sound_getEnergy (Sound me, double xmin, double xmax);
@@ -163,29 +163,29 @@ double Sound_getPowerInAir (Sound me);
 double Sound_getIntensity_dB (Sound me);
 
 double Sound_getNearestZeroCrossing (Sound me, double position, long ichannel);
-void Sound_setZero (Sound me, double tmin, double tmax, bool roundTimesToNearestZeroCrossing);
+void Sound_setZero (Sound me, double tmin, double tmax, int roundTimesToNearestZeroCrossing);
 
-autoSound Sound_createAsPureTone (long numberOfChannels, double startingTime, double endTime,
+Sound Sound_createAsPureTone (long numberOfChannels, double startingTime, double endTime,
 	double sampleRate, double frequency, double amplitude, double fadeInDuration, double fadeOutDuration);
-autoSound Sound_createFromToneComplex (double startingTime, double endTime,
+Sound Sound_createFromToneComplex (double startingTime, double endTime,
 	double sampleRate, int phase, double frequencyStep,
 	double firstFrequency, double ceiling, long numberOfComponents);
 /* Values for `phase' parameter: */
 #define Sound_TONE_COMPLEX_SINE  0
 #define Sound_TONE_COMPLEX_COSINE  1
 
-autoSound Sounds_concatenate (OrderedOf<structSound>& list, double overlapTime);
+Sound Sounds_concatenate_e (Collection me, double overlapTime);
 void Sound_multiplyByWindow (Sound me, enum kSound_windowShape windowShape);
 void Sound_scaleIntensity (Sound me, double newAverageIntensity);
 void Sound_overrideSamplingFrequency (Sound me, double newSamplingFrequency);
-autoSound Sound_extractPart (Sound me, double t1, double t2, enum kSound_windowShape windowShape, double relativeWidth, bool preserveTimes);
-autoSound Sound_extractPartForOverlap (Sound me, double t1, double t2, double overlap);
+Sound Sound_extractPart (Sound me, double t1, double t2, enum kSound_windowShape windowShape, double relativeWidth, bool preserveTimes);
+Sound Sound_extractPartForOverlap (Sound me, double t1, double t2, double overlap);
 void Sound_filterWithFormants (Sound me, double tmin, double tmax,
 	int numberOfFormants, double formant [], double bandwidth []);
-autoSound Sound_filter_oneFormant (Sound me, double frequency, double bandwidth);
+Sound Sound_filter_oneFormant (Sound me, double frequency, double bandwidth);
 void Sound_filterWithOneFormantInline (Sound me, double frequency, double bandwidth);
-autoSound Sound_filter_preemphasis (Sound me, double frequency);
-autoSound Sound_filter_deemphasis (Sound me, double frequency);
+Sound Sound_filter_preemphasis (Sound me, double frequency);
+Sound Sound_filter_deemphasis (Sound me, double frequency);
 
 void Sound_reverse (Sound me, double tmin, double tmax);
 
@@ -193,21 +193,23 @@ void Sound_draw (Sound me, Graphics g,
 	double tmin, double tmax, double minimum, double maximum, bool garnish, const char32 *method);
 /* For method, see Vector_draw. */
 
-autoMatrix Sound_to_Matrix (Sound me);
+Matrix Sound_to_Matrix (Sound me);
 /*
 	Create a Matrix from a Sound,
 	with deep copy of all its Matrix attributes, except class information and methods.
+	Return NULL if out of memory.  
 */
 
-autoSound Matrix_to_Sound (Matrix me);
+Sound Matrix_to_Sound (Matrix me);
 
-autoSound Matrix_to_Sound_mono (Matrix me, long row);
+Sound Matrix_to_Sound_mono (Matrix me, long row);
 /*
 	Function:
 		create a Sound from one row of a Matrix.
 		"row" is forced inside the segment [1, my ny];
 		negative values count from the last row;
 		e.g., if "row" is -1, the last row is taken.
+		Return NULL if out of memory.
 	Postconditions:
 		thy xmin == my xmin;
 		thy xmax == my xmax;
@@ -218,11 +220,11 @@ autoSound Matrix_to_Sound_mono (Matrix me, long row);
 		thy z [1] [...] == my z [row] [...];
 */
 
-extern autoSound Sound_clipboard;
+extern Sound Sound_clipboard;
 
 /********** Sound_audio.cpp **********/
 
-autoSound Sound_recordFixedTime (int inputSource,
+Sound Sound_recordFixedTime (int inputSource,
 	double gain, double balance, double samplingFrequency, double duration);
 	/*
 		Function:
@@ -249,7 +251,7 @@ autoSound Sound_recordFixedTime (int inputSource,
 			duration:
 				positive time in seconds.
 		Return value:
-			the resulting Sound.
+			the resulting Sound; NULL in case of failure.
 		Failures:
 			Hardware does not support sampling frequency.
 			Duration must be positive.
@@ -259,13 +261,12 @@ autoSound Sound_recordFixedTime (int inputSource,
 			and wait for broadcastPublication().
 	*/
 
-typedef MelderCallback <int, structThing /* boss */, int /* phase */, double /* tmin */, double /* tmax */, double /* t */> Sound_PlayCallback;
-
-void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback playCallback, Thing playBoss);
+void Sound_playPart (Sound me, double tmin, double tmax,
+	int (*playCallback) (void *playClosure, int phase, double tmin, double tmax, double t), void *playClosure);
 /*
  * Play a sound. The playing can be interrupted with the Escape key (also Command-period on the Mac).
- * If playCallback is not null, Sound_play will call it repeatedly, with five parameters:
- *    1. playBoss: the same value as was supplied as the last argument to Sound_playPart.
+ * If playCallback is not NULL, Sound_play will call it repeatedly, with five parameters:
+ *    1. playClosure: the same value as was supplied as the last argument to Sound_playPart.
  *    2. phase: 1 at the start, 2 while playing, 3 at the end.
  *    3. tmin: the same tmin that was supplied as the second argument to Sound_playPart.
  *    4. tmax: the same tmax that was supplied as the second argument to Sound_playPart.
@@ -274,7 +275,8 @@ void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback play
  * cursor while we play a sound:
  *    Sound_playPart (my sound, my startSelection, my endSelection, thePlayCallback, me);
  * We gave ourselves as the playClosure, so that the message will arrive with us:
- *    int thePlayCallback (SoundEditor me, int phase, double tmin, double tmax, double t) {
+ *    int thePlayCallback (void *playClosure, int phase, double tmin, double tmax, double t) {
+ *       SoundEditor me = (SoundEditor) playClosure;
  *       if (phase == 1) {
  *          Melder_assert (t == tmin);
  *          drawPlayCursor (me, my playCursor = t);
@@ -294,25 +296,26 @@ void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback play
  *
  * Sound_playPart () usually runs asynchronously, and kills an already playing sound.
  */
-void Sound_play (Sound me, Sound_PlayCallback playCallback, Thing playBoss);
-	/* The same as Sound_playPart (me, my xmin, my xmax, playCallback, playBoss); */
+void Sound_play (Sound me,
+	int (*playCallback) (void *playClosure, int phase, double tmin, double tmax, double t), void *playClosure);
+	/* The same as Sound_playPart (me, my xmin, my xmax, playCallback, playClosure); */
 
 /********** Sound_files.cpp **********/
 
 /* To avoid clipping, keep the absolute amplitude below 1.000. */
 /* All are mono or stereo PCM. */
 void Sound_writeToAudioFile (Sound me, MelderFile file, int audioFileType, int numberOfBitsPerSamplePoint);
-void Sound_writeToKayFile (Sound me, MelderFile file);   // 16-bit
-void Sound_writeToSesamFile (Sound me, MelderFile file);   // 12-bit SESAM/LVS
+void Sound_writeToKayFile (Sound me, MelderFile file);   /* 16 bit */
+void Sound_writeToSesamFile (Sound me, MelderFile file);   /* 12-bit SESAM/LVS */
 
-autoSound Sound_readFromSoundFile (MelderFile file);   // AIFF, WAV, NeXT/Sun, or NIST
-autoSound Sound_readFromKayFile (MelderFile file);   // 16-bit
-autoSound Sound_readFromSesamFile (MelderFile file);   // 12-bit SESAM/LVS
-autoSound Sound_readFromBellLabsFile (MelderFile file);   // 16-bit
-autoSound Sound_readFromRawAlawFile (MelderFile file);
-autoSound Sound_readFromMovieFile (MelderFile file);
+Sound Sound_readFromSoundFile (MelderFile file);   /* AIFF, WAV, NeXT/Sun, or NIST */
+Sound Sound_readFromKayFile (MelderFile file);   /* 16 bit */
+Sound Sound_readFromSesamFile (MelderFile file);   /* 12 bit SESAM/LVS */
+Sound Sound_readFromBellLabsFile (MelderFile file);   /* 16 bit */
+Sound Sound_readFromRawAlawFile (MelderFile file);
+Sound Sound_readFromMovieFile (MelderFile file);
 
-autoSound Sound_readFromRawSoundFile (MelderFile file, int encoding, int numberOfChannels, double sampleRate);
+Sound Sound_readFromRawSoundFile (MelderFile file, int encoding, int numberOfChannels, double sampleRate);
 /*
 	'encoding' is any of the following:
 		Melder_LINEAR_8_SIGNED
@@ -336,8 +339,8 @@ void Sound_writeToRawSoundFile (Sound me, MelderFile file, int encoding);
 
 /********** Sound_enhance.cpp **********/
 
-autoSound Sound_lengthen_overlapAdd (Sound me, double fmin, double fmax, double factor);
-autoSound Sound_deepenBandModulation (Sound me, double enhancement_dB,
+Sound Sound_lengthen_overlapAdd (Sound me, double fmin, double fmax, double factor);
+Sound Sound_deepenBandModulation (Sound me, double enhancement_dB,
 	double flow, double fhigh, double slowModulation, double fastModulation, double bandSmoothing);
 
 /* End of file Sound.h */
diff --git a/fon/SoundEditor.cpp b/fon/SoundEditor.cpp
index f29baed..e15cf6a 100644
--- a/fon/SoundEditor.cpp
+++ b/fon/SoundEditor.cpp
@@ -1,6 +1,6 @@
 /* SoundEditor.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma, 2007 Erez Volk (FLAC support)
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma, 2007 Erez Volk (FLAC support)
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,24 +29,34 @@ Thing_implement (SoundEditor, TimeSoundAnalysisEditor, 0);
 
 void structSoundEditor :: v_dataChanged () {
 	Sound sound = (Sound) data;
-	Melder_assert (sound);   // LongSound objects should not get v_dataChanged messages
+	Melder_assert (sound != NULL);   // LongSound objects should not get v_dataChanged messages
 	Matrix_getWindowExtrema (sound, 1, sound -> nx, 1, sound -> ny, & d_sound.minimum, & d_sound.maximum);   // BUG unreadable
-	v_reset_analysis ();
+	v_destroy_analysis ();
 	SoundEditor_Parent :: v_dataChanged ();
 }
 
 /***** EDIT MENU *****/
 
-static void menu_cb_Copy (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Copy (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	try {
-		Sound_clipboard = my d_longSound.data ? LongSound_extractPart ((LongSound) my data, my d_startSelection, my d_endSelection, false) :
-			Sound_extractPart ((Sound) my data, my d_startSelection, my d_endSelection, kSound_windowShape_RECTANGULAR, 1.0, false);
+		/*
+		 * Create without change.
+		 */
+		autoSound publish = my d_longSound.data ? LongSound_extractPart ((LongSound) my data, my d_startSelection, my d_endSelection, FALSE) :
+			Sound_extractPart ((Sound) my data, my d_startSelection, my d_endSelection, kSound_windowShape_RECTANGULAR, 1.0, FALSE);
+		/*
+		 * Change without error.
+		 */
+		forget (Sound_clipboard);
+		Sound_clipboard = publish.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound selection not copied to clipboard.");
 	}
 }
 
-static void menu_cb_Cut (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Cut (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	try {
 		Sound sound = (Sound) my data;
 		long first, last, selectionNumberOfSamples = Sampled_getWindowSamples (sound,
@@ -90,7 +100,8 @@ static void menu_cb_Cut (SoundEditor me, EDITOR_ARGS_DIRECT) {
 			sound -> nx = newNumberOfSamples;
 			sound -> x1 = 0.5 * sound -> dx;
 			sound -> z = newData.transfer();
-			Sound_clipboard = publish.move();
+			forget (Sound_clipboard);
+			Sound_clipboard = publish.transfer();
 
 			/* Start updating the markers of the FunctionEditor, respecting the invariants. */
 
@@ -134,7 +145,7 @@ static void menu_cb_Cut (SoundEditor me, EDITOR_ARGS_DIRECT) {
 			/* Force FunctionEditor to show changes. */
 
 			Matrix_getWindowExtrema (sound, 1, sound -> nx, 1, sound -> ny, & my d_sound.minimum, & my d_sound.maximum);
-			my v_reset_analysis ();
+			my v_destroy_analysis ();
 			FunctionEditor_ungroup (me);
 			FunctionEditor_marksChanged (me, false);
 			Editor_broadcastDataChanged (me);
@@ -146,7 +157,8 @@ static void menu_cb_Cut (SoundEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_Paste (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Paste (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	Sound sound = (Sound) my data;
 	long leftSample = Sampled_xToLowIndex (sound, my d_endSelection);
 	long oldNumberOfSamples = sound -> nx, newNumberOfSamples;
@@ -203,13 +215,14 @@ static void menu_cb_Paste (SoundEditor me, EDITOR_ARGS_DIRECT) {
 	/* Force FunctionEditor to show changes. */
 
 	Matrix_getWindowExtrema (sound, 1, sound -> nx, 1, sound -> ny, & my d_sound.minimum, & my d_sound.maximum);
-	my v_reset_analysis ();
+	my v_destroy_analysis ();
 	FunctionEditor_ungroup (me);
 	FunctionEditor_marksChanged (me, false);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_SetSelectionToZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SetSelectionToZero (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	Sound sound = (Sound) my data;
 	long first, last;
 	Sampled_getWindowSamples (sound, my d_startSelection, my d_endSelection, & first, & last);
@@ -219,22 +232,24 @@ static void menu_cb_SetSelectionToZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
 			sound -> z [channel] [i] = 0.0;
 		}
 	}
-	my v_reset_analysis ();
+	my v_destroy_analysis ();
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_ReverseSelection (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ReverseSelection (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	Editor_save (me, U"Reverse selection");
 	Sound_reverse ((Sound) my data, my d_startSelection, my d_endSelection);
-	my v_reset_analysis ();
+	my v_destroy_analysis ();
 	FunctionEditor_redraw (me);
 	Editor_broadcastDataChanged (me);
 }
 
 /***** SELECT MENU *****/
 
-static void menu_cb_MoveCursorToZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveCursorToZero (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	double zero = Sound_getNearestZeroCrossing ((Sound) my data, 0.5 * (my d_startSelection + my d_endSelection), 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_startSelection = my d_endSelection = zero;
@@ -242,7 +257,8 @@ static void menu_cb_MoveCursorToZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_MoveBtoZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveBtoZero (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	double zero = Sound_getNearestZeroCrossing ((Sound) my data, my d_startSelection, 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_startSelection = zero;
@@ -255,7 +271,8 @@ static void menu_cb_MoveBtoZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_MoveEtoZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveEtoZero (EDITOR_ARGS) {
+	EDITOR_IAM (SoundEditor);
 	double zero = Sound_getNearestZeroCrossing ((Sound) my data, my d_endSelection, 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_endSelection = zero;
@@ -270,20 +287,20 @@ static void menu_cb_MoveEtoZero (SoundEditor me, EDITOR_ARGS_DIRECT) {
 
 /***** HELP MENU *****/
 
-static void menu_cb_SoundEditorHelp (SoundEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"SoundEditor"); }
-static void menu_cb_LongSoundEditorHelp (SoundEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"LongSoundEditor"); }
+static void menu_cb_SoundEditorHelp (EDITOR_ARGS) { EDITOR_IAM (SoundEditor); Melder_help (U"SoundEditor"); }
+static void menu_cb_LongSoundEditorHelp (EDITOR_ARGS) { EDITOR_IAM (SoundEditor); Melder_help (U"LongSoundEditor"); }
 
 void structSoundEditor :: v_createMenus () {
 	SoundEditor_Parent :: v_createMenus ();
-	Melder_assert (data);
-	Melder_assert (d_sound.data || d_longSound.data);
+	Melder_assert (data != NULL);
+	Melder_assert (d_sound.data != NULL || d_longSound.data != NULL);
 
-	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, NULL);
 	if (d_sound.data) cutButton = Editor_addCommand (this, U"Edit", U"Cut", 'X', menu_cb_Cut);
 	copyButton = Editor_addCommand (this, U"Edit", U"Copy selection to Sound clipboard", 'C', menu_cb_Copy);
 	if (d_sound.data) pasteButton = Editor_addCommand (this, U"Edit", U"Paste after selection", 'V', menu_cb_Paste);
 	if (d_sound.data) {
-		Editor_addCommand (this, U"Edit", U"-- zero --", 0, nullptr);
+		Editor_addCommand (this, U"Edit", U"-- zero --", 0, NULL);
 		zeroButton = Editor_addCommand (this, U"Edit", U"Set selection to zero", 0, menu_cb_SetSelectionToZero);
 		reverseButton = Editor_addCommand (this, U"Edit", U"Reverse selection", 'R', menu_cb_ReverseSelection);
 	}
@@ -321,56 +338,56 @@ void structSoundEditor :: v_draw () {
 	Sampled data = (Sampled) this -> data;
 	Graphics_Viewport viewport;
 	bool showAnalysis = p_spectrogram_show || p_pitch_show || p_intensity_show || p_formant_show;
-	Melder_assert (data);
-	Melder_assert (d_sound.data || d_longSound.data);
+	Melder_assert (data != NULL);
+	Melder_assert (d_sound.data != NULL || d_longSound.data != NULL);
 
 	/*
 	 * We check beforehand whether the window fits the LongSound buffer.
 	 */
 	if (d_longSound.data && d_endWindow - d_startWindow > d_longSound.data -> bufferLength) {
-		Graphics_setColour (d_graphics.get(), Graphics_WHITE);
-		Graphics_setWindow (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_fillRectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-		Graphics_setTextAlignment (d_graphics.get(), Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (d_graphics.get(), 0.5, 0.5,   U"(window longer than ", Melder_float (Melder_single (d_longSound.data -> bufferLength)), U" seconds)");
-		Graphics_setTextAlignment (d_graphics.get(), Graphics_CENTRE, Graphics_TOP);
-		Graphics_text (d_graphics.get(), 0.5, 0.5, U"(zoom in to see the samples)");
+		Graphics_setColour (d_graphics, Graphics_WHITE);
+		Graphics_setWindow (d_graphics, 0, 1, 0, 1);
+		Graphics_fillRectangle (d_graphics, 0, 1, 0, 1);
+		Graphics_setColour (d_graphics, Graphics_BLACK);
+		Graphics_setTextAlignment (d_graphics, Graphics_CENTRE, Graphics_BOTTOM);
+		Graphics_text (d_graphics, 0.5, 0.5,   U"(window longer than ", Melder_float (Melder_single (d_longSound.data -> bufferLength)), U" seconds)");
+		Graphics_setTextAlignment (d_graphics, Graphics_CENTRE, Graphics_TOP);
+		Graphics_text (d_graphics, 0.5, 0.5, U"(zoom in to see the samples)");
 		return;
 	}
 
 	/* Draw sound. */
 
 	if (showAnalysis)
-		viewport = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, 0.5, 1.0);
-	Graphics_setColour (d_graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		viewport = Graphics_insetViewport (d_graphics, 0, 1, 0.5, 1);
+	Graphics_setColour (d_graphics, Graphics_WHITE);
+	Graphics_setWindow (d_graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (d_graphics, 0, 1, 0, 1);
 	TimeSoundEditor_drawSound (this, d_sound.minimum, d_sound.maximum);
-	//Graphics_flushWs (d_graphics.get());
+	Graphics_flushWs (d_graphics);
 	if (showAnalysis)
-		Graphics_resetViewport (d_graphics.get(), viewport);
+		Graphics_resetViewport (d_graphics, viewport);
 
 	/* Draw analyses. */
 
 	if (showAnalysis) {
 		/* Draw spectrogram, pitch, formants. */
-		viewport = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, 0.0, 0.5);
+		viewport = Graphics_insetViewport (d_graphics, 0, 1, 0, 0.5);
 		v_draw_analysis ();
-		//Graphics_flushWs (d_graphics.get());
-		Graphics_resetViewport (d_graphics.get(), viewport);
+		Graphics_flushWs (d_graphics);
+		Graphics_resetViewport (d_graphics, viewport);
 	}
 
 	/* Draw pulses. */
 
 	if (p_pulses_show) {
 		if (showAnalysis)
-			viewport = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, 0.5, 1.0);
+			viewport = Graphics_insetViewport (d_graphics, 0, 1, 0.5, 1);
 		v_draw_analysis_pulses ();
 		TimeSoundEditor_drawSound (this, d_sound.minimum, d_sound.maximum);   // second time, partially across the pulses
-		//Graphics_flushWs (d_graphics.get());
+		Graphics_flushWs (d_graphics);
 		if (showAnalysis)
-			Graphics_resetViewport (d_graphics.get(), viewport);
+			Graphics_resetViewport (d_graphics, viewport);
 	}
 
 	/* Update buttons. */
@@ -393,32 +410,32 @@ void structSoundEditor :: v_play (double a_tmin, double a_tmax) {
 		Sound_playPart ((Sound) data, a_tmin, a_tmax, theFunctionEditor_playCallback, this);
 }
 
-bool structSoundEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structSoundEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	if ((p_spectrogram_show || p_formant_show) && yWC < 0.5 && xWC > d_startWindow && xWC < d_endWindow) {
 		d_spectrogram_cursor = p_spectrogram_viewFrom +
-			2.0 * yWC * (p_spectrogram_viewTo - p_spectrogram_viewFrom);
+			2 * yWC * (p_spectrogram_viewTo - p_spectrogram_viewFrom);
 	}
 	return SoundEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);   // drag & update
 }
 
 void structSoundEditor :: v_highlightSelection (double left, double right, double bottom, double top) {
 	if (p_spectrogram_show)
-		Graphics_highlight (d_graphics.get(), left, right, 0.5 * (bottom + top), top);
+		Graphics_highlight (d_graphics, left, right, 0.5 * (bottom + top), top);
 	else
-		Graphics_highlight (d_graphics.get(), left, right, bottom, top);
+		Graphics_highlight (d_graphics, left, right, bottom, top);
 }
 
 void structSoundEditor :: v_unhighlightSelection (double left, double right, double bottom, double top) {
 	if (p_spectrogram_show)
-		Graphics_unhighlight (d_graphics.get(), left, right, 0.5 * (bottom + top), top);
+		Graphics_unhighlight (d_graphics, left, right, 0.5 * (bottom + top), top);
 	else
-		Graphics_unhighlight (d_graphics.get(), left, right, bottom, top);
+		Graphics_unhighlight (d_graphics, left, right, bottom, top);
 }
 
 void SoundEditor_init (SoundEditor me, const char32 *title, Sampled data) {
 	/*
 	 * my longSound.data or my sound.data have to be set before we call FunctionEditor_init,
-	 * because createMenus expects that one of them is not null.
+	 * because createMenus expects that one of them is not NULL.
 	 */
 	TimeSoundAnalysisEditor_init (me, title, data, data, false);
 	if (my d_longSound.data && my d_endWindow - my d_startWindow > 30.0) {
@@ -429,12 +446,12 @@ void SoundEditor_init (SoundEditor me, const char32 *title, Sampled data) {
 	}
 }
 
-autoSoundEditor SoundEditor_create (const char32 *title, Sampled data) {
-	Melder_assert (data);
+SoundEditor SoundEditor_create (const char32 *title, Sampled data) {
+	Melder_assert (data != NULL);
 	try {
 		autoSoundEditor me = Thing_new (SoundEditor);
-		SoundEditor_init (me.get(), title, data);
-		return me;
+		SoundEditor_init (me.peek(), title, data);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound window not created.");
 	}
diff --git a/fon/SoundEditor.h b/fon/SoundEditor.h
index c9f71ce..5c5e8e7 100644
--- a/fon/SoundEditor.h
+++ b/fon/SoundEditor.h
@@ -37,7 +37,7 @@ Thing_define (SoundEditor, TimeSoundAnalysisEditor) {
 		override;
 	void v_play (double tmin, double tmax)
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_highlightSelection (double left, double right, double bottom, double top)
 		override;
@@ -50,7 +50,7 @@ void SoundEditor_init (SoundEditor me,
 	Sampled data
 );
 
-autoSoundEditor SoundEditor_create (
+SoundEditor SoundEditor_create (
 	const char32 *title,
 	Sampled data   // either a Sound or a LongSound
 );
diff --git a/fon/SoundRecorder.cpp b/fon/SoundRecorder.cpp
index 347cca7..a700f55 100644
--- a/fon/SoundRecorder.cpp
+++ b/fon/SoundRecorder.cpp
@@ -1,6 +1,6 @@
 /* SoundRecorder.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
  * this would seem a good candidate for object-oriented programming
  * (one audio manager and several audio drivers).
  * However, the places where sound recorders are similar and where they are different,
- * are hard to predict. For this reason, everything is done with platform #ifdefs.
+ * are hard to predict. For this reason, everything is done with system #ifdefs.
  */
 
 #include <errno.h>
@@ -101,7 +101,7 @@ static void win_fillHeader (SoundRecorder me, int which) {
 	my waveHeader [which]. lpData = which == 0 ? (char *) my buffer : which == 1 ? (char *) my buffertje1: (char *) my buffertje2;
 	my waveHeader [which]. dwBufferLength = which == 0 ? my nmax * my waveFormat. nChannels * 2 : 1000 * my waveFormat. nChannels * 2;
 	my waveHeader [which]. dwLoops = 0;
-	my waveHeader [which]. lpNext = nullptr;
+	my waveHeader [which]. lpNext = NULL;
 	my waveHeader [which]. reserved = 0;
 }
 static void win_waveInCheck (SoundRecorder me) {
@@ -191,7 +191,7 @@ static void stopRecording (SoundRecorder me) {
 			if (my inputUsesPortAudio) {
 				Pa_StopStream (my portaudioStream);
 				Pa_CloseStream (my portaudioStream);
-				my portaudioStream = nullptr;
+				my portaudioStream = NULL;
 			} else {
 				#if defined (_WIN32)
 					/*
@@ -220,12 +220,12 @@ static void stopRecording (SoundRecorder me) {
 	} catch (MelderError) {
 		Melder_flushError (U"Cannot stop recording.");
 	}
-	Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setColour (my graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, 1.0);
 }
 
-void structSoundRecorder :: v_destroy () noexcept {
+void structSoundRecorder :: v_destroy () {
 	stopRecording (this);   // must occur before freeing my buffer
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);   // must also occur before freeing my buffer
 	#if cocoa
@@ -252,56 +252,57 @@ void structSoundRecorder :: v_destroy () noexcept {
 			if (our fd != -1) close (our fd);
 		#endif
 	}
+	forget (our graphics);
 	SoundRecorder_Parent :: v_destroy ();
 }
 
 static void showMaximum (SoundRecorder me, int channel, double maximum) {
 	maximum /= 32768.0;
-	Graphics_setWindow (my graphics.get(),
+	Graphics_setWindow (my graphics,
 		my numberOfChannels == 1 || channel == 1 ? 0.0 : -1.0,
 		my numberOfChannels == 1 || channel == 2 ? 1.0 : 2.0,
 		-0.1, 1.1);
-	Graphics_setGrey (my graphics.get(), 0.9);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, maximum, 1.0);
-	Graphics_setColour (my graphics.get(), Graphics_GREEN);
+	Graphics_setGrey (my graphics, 0.9);
+	Graphics_fillRectangle (my graphics, 0.0, 1.0, maximum, 1.0);
+	Graphics_setColour (my graphics, Graphics_GREEN);
 	if (maximum < 0.75) {
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, maximum);
+		Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, maximum);
 	} else {
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 0.75);
-		Graphics_setColour (my graphics.get(), Graphics_YELLOW);
+		Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, 0.75);
+		Graphics_setColour (my graphics, Graphics_YELLOW);
 		if (maximum < 0.92) {
-			Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.75, maximum);
+			Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.75, maximum);
 		} else {
-			Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.75, 0.92);
-			Graphics_setColour (my graphics.get(), Graphics_RED);
-			Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.92, maximum);
+			Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.75, 0.92);
+			Graphics_setColour (my graphics, Graphics_RED);
+			Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.92, maximum);
 		}
 	}
 }
 
 static void showMeter (SoundRecorder me, short *buffer, long nsamp) {
-	Melder_assert (my graphics);
+	Melder_assert (my graphics != NULL);
 	if (nsamp < 1) {
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
 		#if defined (macintosh)
-			Graphics_setColour (my graphics.get(), Graphics_WHITE);
-			Graphics_fillRectangle (my graphics.get(), 0.2, 0.8, 0.3, 0.7);
+			Graphics_setColour (my graphics, Graphics_WHITE);
+			Graphics_fillRectangle (my graphics, 0.2, 0.8, 0.3, 0.7);
 		#endif
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_setColour (my graphics.get(), Graphics_BLACK);
-		Graphics_text (my graphics.get(), 0.5, 0.5, U"Not recording.");
+		Graphics_setTextAlignment (my graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_setColour (my graphics, Graphics_BLACK);
+		Graphics_text (my graphics, 0.5, 0.5, U"Not recording.");
 		return;
 	}
 	if (my p_meter_which == kSoundRecorder_meter_INTENSITY) {
-		int leftMaximum = 0, rightMaximum = 0;
+		short leftMaximum = 0, rightMaximum = 0;
 		if (my numberOfChannels == 1) {
 			for (long i = 0; i < nsamp; i ++) {
-				int value = buffer [i];
+				short value = buffer [i];
 				if (abs (value) > leftMaximum) leftMaximum = abs (value);
 			}
 		} else {
 			for (long i = 0; i < nsamp; i ++) {
-				int left = buffer [i+i], right = buffer [i+i+1];
+				long left = buffer [i+i], right = buffer [i+i+1];
 				if (abs (left) > leftMaximum) leftMaximum = abs (left);
 				if (abs (right) > rightMaximum) rightMaximum = abs (right);
 			}
@@ -330,22 +331,22 @@ static void showMeter (SoundRecorder me, short *buffer, long nsamp) {
 				sound -> z [ichan] [isamp] = * (p ++) / 32768.0;
 			}
 		}
-		Sound_multiplyByWindow (sound.get(), kSound_windowShape_KAISER_2);
-		double intensity = Sound_getIntensity_dB (sound.get());
-		autoSpectrum spectrum = Sound_to_Spectrum (sound.get(), true);
-		double centreOfGravity = Spectrum_getCentreOfGravity (spectrum.get(), 1.0);
+		Sound_multiplyByWindow (sound.peek(), kSound_windowShape_KAISER_2);
+		double intensity = Sound_getIntensity_dB (sound.peek());
+		autoSpectrum spectrum = Sound_to_Spectrum (sound.peek(), true);
+		double centreOfGravity = Spectrum_getCentreOfGravity (spectrum.peek(), 1.0);
 		trace (nsamp, U" samples, intensity ", intensity, U" dB, centre of gravity ", centreOfGravity, U" Hz");
-		Graphics_setWindow (my graphics.get(),
+		Graphics_setWindow (my graphics,
 			my p_meter_centreOfGravity_minimum, my p_meter_centreOfGravity_maximum,
 			my p_meter_intensity_minimum, my p_meter_intensity_maximum);
-		Graphics_setColour (my graphics.get(), Graphics_WHITE);
-		Graphics_fillRectangle (my graphics.get(),
+		Graphics_setColour (my graphics, Graphics_WHITE);
+		Graphics_fillRectangle (my graphics,
 			my p_meter_centreOfGravity_minimum, my p_meter_centreOfGravity_maximum,
 			my p_meter_intensity_minimum, my p_meter_intensity_maximum);
-		Graphics_setColour (my graphics.get(), Graphics_BLACK);
-		Graphics_fillCircle_mm (my graphics.get(), centreOfGravity, intensity, 3.0);
+		Graphics_setColour (my graphics, Graphics_BLACK);
+		Graphics_fillCircle_mm (my graphics, centreOfGravity, intensity, 3.0);
 	}
-	Graphics_flushWs (my graphics.get());
+	Graphics_flushWs (my graphics);
 }
 
 static bool tooManySamplesInBufferToReturnToGui (SoundRecorder me) {
@@ -359,18 +360,14 @@ static long getMyNsamp (SoundRecorder me) {
 }
 
 #if cocoa
-	#define WORKPROC_RETURN  void
-	#define WORKPROC_ARGS  CFRunLoopTimerRef /*timer*/, void *void_SoundRecorder
+static void workProc (CFRunLoopTimerRef timer, void *void_me) {
+	(void) timer;
 #elif gtk
-	#define WORKPROC_RETURN  gboolean
-	#define WORKPROC_ARGS  void *void_SoundRecorder
+static gboolean workProc (void *void_me) {
 #else
-	#define WORKPROC_RETURN  bool
-	#define WORKPROC_ARGS  void *void_SoundRecorder
+static bool workProc (void *void_me) {
 #endif
-
-static WORKPROC_RETURN workProc (WORKPROC_ARGS) {
-	SoundRecorder me = static_cast <SoundRecorder> (void_SoundRecorder);
+	iam (SoundRecorder);
 	try {
 		short buffertje [step*2];
 		int stepje = 0;
@@ -479,7 +476,7 @@ static WORKPROC_RETURN workProc (WORKPROC_ARGS) {
 				showMeter (me, my buffer + firstSample * my numberOfChannels, lastSample - firstSample);
 				GuiScale_setValue (my progressScale, 1000.0 * ((double) lastSample / (double) my nmax));
 			} else {
-				showMeter (me, nullptr, 0);
+				showMeter (me, NULL, 0);
 			}
 		}
 	} catch (MelderError) {
@@ -495,11 +492,11 @@ static WORKPROC_RETURN workProc (WORKPROC_ARGS) {
 }
 
 static int portaudioStreamCallback (
-    const void *input, void * /* output */,
+    const void *input, void *output,
     unsigned long frameCount,
-    const PaStreamCallbackTimeInfo* /* timeInfo */,
-    PaStreamCallbackFlags /* statusFlags */,
-    void *void_SoundRecorder)
+    const PaStreamCallbackTimeInfo* timeInfo,
+    PaStreamCallbackFlags statusFlags,
+    void *void_me)
 {
 	/*
 	 * This procedure may be called at interrupt time.
@@ -508,7 +505,10 @@ static int portaudioStreamCallback (
 	 * The only thing it changes is my nsamp;
 	 * the workProc will therefore have to take some care in accessing my nsamp (see there).
 	 */
-	SoundRecorder me = static_cast <SoundRecorder> (void_SoundRecorder);
+	iam (SoundRecorder);
+	(void) output;
+	(void) timeInfo;
+	(void) statusFlags;
 	if (Melder_debug == 20)
 		Melder_casual (U"The PortAudio stream callback receives ", frameCount, U" frames.");
 	Melder_assert (my nsamp <= my nmax);
@@ -527,7 +527,9 @@ static int portaudioStreamCallback (
 	return paContinue;
 }
 
-static void gui_button_cb_record (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_record (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	try {
 		if (my recording) return;
 		my nsamp = 0;
@@ -551,7 +553,7 @@ static void gui_button_cb_record (SoundRecorder me, GuiButtonEvent /* event */)
 				#endif
 				if (Melder_debug == 20)
 					Melder_casual (U"Before Pa_OpenStream");
-				PaError err = Pa_OpenStream (& my portaudioStream, & streamParameters, nullptr,
+				PaError err = Pa_OpenStream (& my portaudioStream, & streamParameters, NULL,
 					theControlPanel. sampleRate, 0, paNoFlag, portaudioStreamCallback, (void *) me);
 				if (Melder_debug == 20)
 					Melder_casual (U"Pa_OpenStream returns ", (int) err);
@@ -574,25 +576,29 @@ static void gui_button_cb_record (SoundRecorder me, GuiButtonEvent /* event */)
 				#endif
 			}
 		}
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (my graphics.get(), Graphics_WHITE);
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
+		Graphics_setColour (my graphics, Graphics_WHITE);
+		Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, 1.0);
 	} catch (MelderError) {
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (my graphics.get(), Graphics_WHITE);
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
+		Graphics_setColour (my graphics, Graphics_WHITE);
+		Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, 1.0);
 		my recording = false;
 		Melder_flushError (U"Cannot record.");
 	}
 }
 
-static void gui_button_cb_stop (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_stop (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	stopRecording (me);
 }
 
-static void gui_button_cb_play (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_play (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	if (my recording || my nsamp == 0) return;
-	MelderAudio_play16 (my buffer, theControlPanel. sampleRate, my fakeMono ? my nsamp / 2 : my nsamp, my fakeMono ? 2 : my numberOfChannels, nullptr, nullptr);
+	MelderAudio_play16 (my buffer, theControlPanel. sampleRate, my fakeMono ? my nsamp / 2 : my nsamp, my fakeMono ? 2 : my numberOfChannels, NULL, NULL);
 }
 
 static void publish (SoundRecorder me) {
@@ -602,7 +608,7 @@ static void publish (SoundRecorder me) {
 	double fsamp = theControlPanel. sampleRate;
 	if (fsamp <= 0.0) fsamp = 44100.0;   // safe
 	try {
-		sound = Sound_createSimple (my numberOfChannels, (double) nsamp / fsamp, fsamp);
+		sound.reset (Sound_createSimple (my numberOfChannels, (double) nsamp / fsamp, fsamp));
 	} catch (MelderError) {
 		Melder_flushError (U"You can still save to file.");
 		return;
@@ -621,22 +627,28 @@ static void publish (SoundRecorder me) {
 	}
 	if (my soundName) {
 		autostring32 name = GuiText_getString (my soundName);
-		Thing_setName (sound.get(), name.peek());
+		Thing_setName (sound.peek(), name.peek());
 	}
-	Editor_broadcastPublication (me, sound.move());
+	Editor_broadcastPublication (me, sound.transfer());
 }
 
-static void gui_button_cb_cancel (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancel (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	stopRecording (me);
 	forget (me);
 }
 
-static void gui_button_cb_apply (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_apply (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	stopRecording (me);
 	publish (me);
 }
 
-static void gui_button_cb_ok (SoundRecorder me, GuiButtonEvent /* event */) {
+static void gui_button_cb_ok (I, GuiButtonEvent event) {
+	(void) event;
+	iam (SoundRecorder);
 	stopRecording (me);
 	publish (me);
 	forget (me);
@@ -679,7 +691,7 @@ static void initialize (SoundRecorder me) {
 						Melder_throw (U"Cannot open audio device.\n"
 							U"Please switch on PortAudio in the Sound Recording Preferences.");
 				}
-				ioctl (my fd, SNDCTL_DSP_RESET, nullptr);
+				ioctl (my fd, SNDCTL_DSP_RESET, NULL);
 				ioctl (my fd, SNDCTL_DSP_SPEED, & sampleRate);
 				ioctl (my fd, SNDCTL_DSP_SAMPLESIZE, & sampleSize);
 				ioctl (my fd, SNDCTL_DSP_CHANNELS, (val = channels, & val));
@@ -707,7 +719,8 @@ static void initialize (SoundRecorder me) {
 	}
 }
 
-static void gui_radiobutton_cb_input (SoundRecorder me, GuiRadioButtonEvent event) {
+static void gui_radiobutton_cb_input (I, GuiRadioButtonEvent event) {
+	iam (SoundRecorder);
 	Melder_casual (U"SoundRecorder:"
 		U" setting the input source from ", theControlPanel. inputSource,
 		U" to ", event -> position, U".");
@@ -739,7 +752,8 @@ static void gui_radiobutton_cb_input (SoundRecorder me, GuiRadioButtonEvent even
 	}
 }
 
-static void gui_radiobutton_cb_fsamp (SoundRecorder me, GuiRadioButtonEvent event) {
+static void gui_radiobutton_cb_fsamp (I, GuiRadioButtonEvent event) {
+	iam (SoundRecorder);
 	if (my recording) return;
 	try {
 		double fsamp = NUMundefined;
@@ -785,12 +799,13 @@ static void gui_radiobutton_cb_fsamp (SoundRecorder me, GuiRadioButtonEvent even
 	}
 }
 
-static void gui_drawingarea_cb_resize (SoundRecorder me, GuiDrawingArea_ResizeEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
-	Graphics_setWsViewport (my graphics.get(), 0, event -> width, 0, event -> height);
-	Graphics_setWsWindow (my graphics.get(), 0, event -> width, 0, event -> height);
-	Graphics_setViewport (my graphics.get(), 0, event -> width, 0, event -> height);
-	Graphics_updateWs (my graphics.get());
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (SoundRecorder);
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
+	Graphics_setWsViewport (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_setWsWindow (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_setViewport (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_updateWs (my graphics);
 }
 
 void structSoundRecorder :: v_createChildren ()
@@ -803,10 +818,10 @@ void structSoundRecorder :: v_createChildren ()
 	GuiRadioGroup_begin ();
 	y += Gui_RADIOBUTTON_HEIGHT + Gui_RADIOBUTTON_SPACING;
 	monoButton = GuiRadioButton_createShown (d_windowForm, 20, 170, y, y + Gui_RADIOBUTTON_HEIGHT,
-		U"Mono", nullptr, nullptr, 0);
+		U"Mono", NULL, NULL, 0);
 	y += Gui_RADIOBUTTON_HEIGHT + Gui_RADIOBUTTON_SPACING;
 	stereoButton = GuiRadioButton_createShown (d_windowForm, 20, 170, y, y + Gui_RADIOBUTTON_HEIGHT,
-		U"Stereo", nullptr, nullptr, 0);
+		U"Stereo", NULL, NULL, 0);
 	GuiRadioGroup_end ();
 
 	/* Input source */
@@ -835,7 +850,7 @@ void structSoundRecorder :: v_createChildren ()
 	GuiLabel_createShown (d_windowForm, 170, -170, y, y + Gui_LABEL_HEIGHT, U"Meter", GuiLabel_CENTRE);
 	y += Gui_LABEL_HEIGHT;
 	meter = GuiDrawingArea_createShown (d_windowForm, 170, -170, y, -150,
-		nullptr, nullptr, nullptr, gui_drawingarea_cb_resize, this, GuiDrawingArea_BORDER);
+		NULL, NULL, NULL, gui_drawingarea_cb_resize, this, GuiDrawingArea_BORDER);
 
 	/* Sampling frequency */
 
@@ -913,8 +928,9 @@ static void writeAudioFile (SoundRecorder me, MelderFile file, int audioFileType
 	}
 }
 
-static void menu_cb_writeWav (SoundRecorder me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as WAV file", nullptr)
+static void menu_cb_writeWav (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
+	EDITOR_FORM_WRITE (U"Save as WAV file", 0)
 		char32 *name = GuiText_getString (my soundName);
 		Melder_sprint (defaultName,300, name, U".wav");
 		Melder_free (name);
@@ -923,8 +939,9 @@ static void menu_cb_writeWav (SoundRecorder me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_writeAifc (SoundRecorder me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as AIFC file", nullptr)
+static void menu_cb_writeAifc (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
+	EDITOR_FORM_WRITE (U"Save as AIFC file", 0)
 		char32 *name = GuiText_getString (my soundName);
 		Melder_sprint (defaultName,300, name, U".aifc");
 		Melder_free (name);
@@ -933,8 +950,9 @@ static void menu_cb_writeAifc (SoundRecorder me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_writeNextSun (SoundRecorder me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as NeXT/Sun file", nullptr)
+static void menu_cb_writeNextSun (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
+	EDITOR_FORM_WRITE (U"Save as NeXT/Sun file", 0)
 		char32 *name = GuiText_getString (my soundName);
 		Melder_sprint (defaultName,300, name, U".au");
 		Melder_free (name);
@@ -943,8 +961,9 @@ static void menu_cb_writeNextSun (SoundRecorder me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_writeNist (SoundRecorder me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as NIST file", nullptr)
+static void menu_cb_writeNist (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
+	EDITOR_FORM_WRITE (U"Save as NIST file", 0)
 		char32 *name = GuiText_getString (my soundName);
 		Melder_sprint (defaultName,300, name, U".nist");
 		Melder_free (name);
@@ -960,16 +979,18 @@ static void updateMenus (SoundRecorder me) {
 		my p_meter_which == kSoundRecorder_meter_CENTRE_OF_GRAVITY_VERSUS_INTENSITY);
 }
 
-static void menu_cb_intensity (SoundRecorder me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_intensity (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
 	my pref_meter_which () = my p_meter_which = kSoundRecorder_meter_INTENSITY;
 	updateMenus (me);
 }
-static void menu_cb_centreOfGravityVersusIntensity (SoundRecorder me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_centreOfGravityVersusIntensity (EDITOR_ARGS) {
+	EDITOR_IAM (SoundRecorder);
 	my pref_meter_which () = my p_meter_which = kSoundRecorder_meter_CENTRE_OF_GRAVITY_VERSUS_INTENSITY;
 	updateMenus (me);
 }
 
-static void menu_cb_SoundRecorder_help (SoundRecorder, EDITOR_ARGS_DIRECT) { Melder_help (U"SoundRecorder"); }
+static void menu_cb_SoundRecorder_help (EDITOR_ARGS) { EDITOR_IAM (SoundRecorder); Melder_help (U"SoundRecorder"); }
 
 void structSoundRecorder :: v_createMenus () {
 	SoundRecorder_Parent :: v_createMenus ();
@@ -990,17 +1011,10 @@ void structSoundRecorder :: v_createHelpMenuItems (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"SoundRecorder help", '?', menu_cb_SoundRecorder_help);
 }
 
-autoSoundRecorder SoundRecorder_create (int numberOfChannels) {
+SoundRecorder SoundRecorder_create (int numberOfChannels) {
 	try {
 		autoSoundRecorder me = Thing_new (SoundRecorder);
-		my inputUsesPortAudio =
-			#if defined (_WIN32)
-				MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_MME_VIA_PORTAUDIO;
-			#elif defined (macintosh)
-				MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_COREAUDIO_VIA_PORTAUDIO;
-			#else
-				MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_ALSA_VIA_PORTAUDIO;
-			#endif
+		my inputUsesPortAudio = MelderAudio_getInputUsesPortAudio ();
 
 		if (my inputUsesPortAudio) {
 		} else {
@@ -1048,7 +1062,7 @@ autoSoundRecorder SoundRecorder_create (int numberOfChannels) {
 		 */
 		if (preferences.bufferSizeInMegabytes < 1) preferences.bufferSizeInMegabytes = 1;   // validate preferences
 		if (preferences.bufferSizeInMegabytes > 1000) preferences.bufferSizeInMegabytes = 1000;
-		if (! my buffer) {
+		if (my buffer == NULL) {
 			long nmax_bytes_pref = preferences.bufferSizeInMegabytes * 1000000;
 			long nmax_bytes = my inputUsesPortAudio ? nmax_bytes_pref :
 				#if defined (_WIN32)
@@ -1071,7 +1085,7 @@ autoSoundRecorder SoundRecorder_create (int numberOfChannels) {
 				}
 			}
 		}
-		Melder_assert (my buffer);
+		Melder_assert (my buffer != NULL);
 
 		/*
 		 * Count the number of input devices and sources.
@@ -1160,32 +1174,32 @@ autoSoundRecorder SoundRecorder_create (int numberOfChannels) {
 		 * Some systems take initial values from the system control panel
 		 * (automatically in the workProc), other systems from theControlPanel.
 		 */
-		initialize (me.get());
+		initialize (me.peek());
 
-		Editor_init (me.get(), 100, 100, 600, 500, U"SoundRecorder", nullptr);
+		Editor_init (me.peek(), 100, 100, 600, 500, U"SoundRecorder", NULL);
 		my graphics = Graphics_create_xmdrawingarea (my meter);
 		Melder_assert (my graphics);
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (my graphics.get(), Graphics_WHITE);
-		Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		Graphics_setWindow (my graphics, 0.0, 1.0, 0.0, 1.0);
+		Graphics_setColour (my graphics, Graphics_WHITE);
+		Graphics_fillRectangle (my graphics, 0.0, 1.0, 0.0, 1.0);
 
-struct structGuiDrawingArea_ResizeEvent event { my meter, 0 };
+struct structGuiDrawingAreaResizeEvent event = { my meter, 0 };
 event. width  = GuiControl_getWidth  (my meter);
 event. height = GuiControl_getHeight (my meter);
-gui_drawingarea_cb_resize (me.get(), & event);
+gui_drawingarea_cb_resize (me.peek(), & event);
 
 		#if cocoa
-			CFRunLoopTimerContext context = { 0, me.get(), nullptr, nullptr, nullptr };
-			my d_cocoaTimer = CFRunLoopTimerCreate (nullptr, CFAbsoluteTimeGetCurrent () + 0.02,
+			CFRunLoopTimerContext context = { 0, me.peek(), NULL, NULL, NULL };
+			my d_cocoaTimer = CFRunLoopTimerCreate (NULL, CFAbsoluteTimeGetCurrent () + 0.02,
 				0.02, 0, 0, workProc, & context);
 			CFRunLoopAddTimer (CFRunLoopGetCurrent (), my d_cocoaTimer, kCFRunLoopCommonModes);
 		#elif gtk
-			g_idle_add (workProc, me.get());
+			g_idle_add (workProc, me.peek());
 		#elif motif
-			my workProcId = GuiAddWorkProc (workProc, me.get());
+			my workProcId = GuiAddWorkProc (workProc, me.peek());
 		#endif
-		updateMenus (me.get());
-		return me;
+		updateMenus (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SoundRecorder not created.");
 	}
diff --git a/fon/SoundRecorder.h b/fon/SoundRecorder.h
index 54120c0..f082146 100644
--- a/fon/SoundRecorder.h
+++ b/fon/SoundRecorder.h
@@ -88,7 +88,7 @@ Thing_define (SoundRecorder, Editor) {
 	GuiText soundName;
 	GuiButton cancelButton, applyButton, okButton;
 	GuiMenuItem d_meterIntensityButton, d_meterCentreOfGravityVersusIntensityButton;
-	autoGraphics graphics;
+	Graphics graphics;
 	bool inputUsesPortAudio;
 	const PaDeviceInfo *deviceInfos [1+SoundRecorder_IDEVICE_MAX];
 	PaDeviceIndex deviceIndices [1+SoundRecorder_IDEVICE_MAX];
@@ -114,7 +114,7 @@ Thing_define (SoundRecorder, Editor) {
 		int fd;
 	#endif
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	bool v_editable ()
 		override { return false; }
@@ -130,7 +130,7 @@ Thing_define (SoundRecorder, Editor) {
 	#include "SoundRecorder_prefs.h"
 };
 
-autoSoundRecorder SoundRecorder_create (int numberOfChannels);
+SoundRecorder SoundRecorder_create (int numberOfChannels);
 /*
 	Function:
 		create a SoundRecorder, which is an interactive window
diff --git a/fon/Sound_PointProcess.cpp b/fon/Sound_PointProcess.cpp
index 430765c..ee0305d 100644
--- a/fon/Sound_PointProcess.cpp
+++ b/fon/Sound_PointProcess.cpp
@@ -24,7 +24,7 @@
 
 #include "Sound_PointProcess.h"
 
-autoSound Sound_PointProcess_to_SoundEnsemble_correlate (Sound me, PointProcess thee, double fromLag, double toLag) {
+Sound Sound_PointProcess_to_SoundEnsemble_correlate (Sound me, PointProcess thee, double fromLag, double toLag) {
 	try {
 		if (my ny > 1)
 			Melder_throw (U"Sound has to be mono.");
@@ -48,7 +48,7 @@ autoSound Sound_PointProcess_to_SoundEnsemble_correlate (Sound me, PointProcess
 				his z [ipoint] [isample] = jsample < 1 || jsample > my nx ? 0.0 : my z [1] [jsample];
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": Sound ensemble not created.");
 	}
diff --git a/fon/Sound_PointProcess.h b/fon/Sound_PointProcess.h
index 66b79bd..f8b4160 100644
--- a/fon/Sound_PointProcess.h
+++ b/fon/Sound_PointProcess.h
@@ -1,6 +1,6 @@
 /* Sound_PointProcess.h
  *
- * Copyright (C) 2010-2011,2015 Paul Boersma
+ * Copyright (C) 2010-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,6 @@
 #include "Sound.h"
 #include "PointProcess.h"
 
-autoSound Sound_PointProcess_to_SoundEnsemble_correlate (Sound me, PointProcess thee, double tmin, double tmax);
+Sound Sound_PointProcess_to_SoundEnsemble_correlate (Sound me, PointProcess thee, double tmin, double tmax);
 
 /* End of file Sound_PointProcess.h */
diff --git a/fon/Sound_and_Spectrogram.cpp b/fon/Sound_and_Spectrogram.cpp
index 3e166e3..5e29eff 100644
--- a/fon/Sound_and_Spectrogram.cpp
+++ b/fon/Sound_and_Spectrogram.cpp
@@ -41,7 +41,7 @@
 #include "enums_getValue.h"
 #include "Sound_and_Spectrogram_enums.h"
 
-autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, double fmax,
+Spectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, double fmax,
 	double minimumTimeStep1, double minimumFreqStep1, enum kSound_to_Spectrogram_windowShape windowType,
 	double maximumTimeOversampling, double maximumFreqOversampling)
 {
@@ -78,7 +78,7 @@ autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, d
 		 */
 		if (fmax <= 0.0 || fmax > nyquist) fmax = nyquist;
 		long numberOfFreqs = (long) floor (fmax / freqStep);
-		if (numberOfFreqs < 1) return autoSpectrogram ();
+		if (numberOfFreqs < 1) return NULL;
 		long nsampFFT = 1;
 		while (nsampFFT < nsamp_window || nsampFFT < 2 * numberOfFreqs * (nyquist / fmax))
 			nsampFFT *= 2;
@@ -92,7 +92,7 @@ autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, d
 		double binWidth_hertz = 1.0 / (my dx * nsampFFT);
 		freqStep = binWidth_samples * binWidth_hertz;
 		numberOfFreqs = (long) floor (fmax / freqStep);
-		if (numberOfFreqs < 1) return autoSpectrogram ();
+		if (numberOfFreqs < 1) return NULL;
 
 		autoSpectrogram thee = Spectrogram_create (my xmin, my xmax, numberOfTimes, timeStep, t1,
 				0.0, fmax, numberOfFreqs, freqStep, 0.5 * (freqStep - binWidth_hertz));
@@ -135,7 +135,7 @@ autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, d
 		double oneByBinWidth = 1.0 / windowssq / binWidth_samples;
 
 		for (long iframe = 1; iframe <= numberOfTimes; iframe ++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
+			double t = Sampled_indexToX (thee.peek(), iframe);
 			long leftSample = Sampled_xToLowIndex (me, t), rightSample = leftSample + 1;
 			long startSample = rightSample - halfnsamp_window;
 			long endSample = leftSample + halfnsamp_window;
@@ -176,20 +176,20 @@ autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, d
 				thy z [iband] [iframe] = power * oneByBinWidth;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": spectrogram analysis not performed.");
 	}
 }
 
-autoSound Spectrogram_to_Sound (Spectrogram me, double fsamp) {
+Sound Spectrogram_to_Sound (Spectrogram me, double fsamp) {
 	try {
 		double dt = 1 / fsamp;
 		long n = (long) floor ((my xmax - my xmin) / dt);
-		if (n < 0) return autoSound ();
+		if (n < 0) return NULL;
 		autoSound thee = Sound_create (1, my xmin, my xmax, n, dt, 0.5 * dt);
 		for (long i = 1; i <= n; i ++) {
-			double t = Sampled_indexToX (thee.get(), i);
+			double t = Sampled_indexToX (thee.peek(), i);
 			double rframe = Sampled_xToIndex (me, t), phase, value = 0.0;
 			long leftFrame, rightFrame;
 			if (rframe < 1 || rframe >= my nx) continue;
@@ -201,7 +201,7 @@ autoSound Spectrogram_to_Sound (Spectrogram me, double fsamp) {
 			}
 			thy z [1] [i] = value;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
diff --git a/fon/Sound_and_Spectrogram.h b/fon/Sound_and_Spectrogram.h
index 4f3db32..5b23991 100644
--- a/fon/Sound_and_Spectrogram.h
+++ b/fon/Sound_and_Spectrogram.h
@@ -2,7 +2,7 @@
 #define _Sound_and_Spectrogram_h_
 /* Sound_and_Spectrogram.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,11 +24,11 @@
 
 #include "Sound_and_Spectrogram_enums.h"
 
-autoSpectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, double fmax,
+Spectrogram Sound_to_Spectrogram (Sound me, double effectiveAnalysisWidth, double fmax,
 	double minimumTimeStep1, double minimumFreqStep1, enum kSound_to_Spectrogram_windowShape windowShape,
 	double maximumTimeOversampling, double maximumFreqOversampling);
 
-autoSound Spectrogram_to_Sound (Spectrogram me, double fsamp);
+Sound Spectrogram_to_Sound (Spectrogram me, double fsamp);
 
 /* End of Sound_and_Spectrogram.h */
 #endif
diff --git a/fon/Sound_and_Spectrum.cpp b/fon/Sound_and_Spectrum.cpp
index 55e3581..24167f3 100644
--- a/fon/Sound_and_Spectrum.cpp
+++ b/fon/Sound_and_Spectrum.cpp
@@ -1,6 +1,6 @@
 /* Sound_and_Spectrum.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
 #include "Sound_and_Spectrum.h"
 #include "NUM2.h"
 
-autoSpectrum Sound_to_Spectrum (Sound me, int fast) {
+Spectrum Sound_to_Spectrum (Sound me, int fast) {
 	try {
 		long numberOfSamples = my nx;
 		if (fast) {
@@ -57,8 +57,8 @@ autoSpectrum Sound_to_Spectrum (Sound me, int fast) {
 		re [1] = data [1] * scaling;
 		im [1] = 0.0;
 		for (long i = 2; i < numberOfFrequencies; i ++) {
-			re [i] = data [i + i - 2] * scaling;   // data [2], data [4], ...
-			im [i] = data [i + i - 1] * scaling;   // data [3], data [5], ...
+			re [i] = data [i + i - 2] * scaling;
+			im [i] = data [i + i - 1] * scaling;
 		}
 		if ((numberOfSamples & 1) != 0) {
 			if (numberOfSamples > 1) {
@@ -69,13 +69,13 @@ autoSpectrum Sound_to_Spectrum (Sound me, int fast) {
 			re [numberOfFrequencies] = data [numberOfSamples] * scaling;
 			im [numberOfFrequencies] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrum.");
 	}
 }
 
-autoSound Spectrum_to_Sound (Spectrum me) {
+Sound Spectrum_to_Sound (Spectrum me) {
 	try {
 		double *re = my z [1], *im = my z [2];
 		double lastFrequency = my x1 + (my nx - 1) * my dx;
@@ -98,13 +98,13 @@ autoSound Spectrum_to_Sound (Spectrum me) {
 			amp [2] = re [my nx] * scaling;
 		}
 		NUMrealft (amp, numberOfSamples, -1);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Sound.");
 	}
 }
 
-autoSpectrum Spectrum_lpcSmoothing (Spectrum me, int numberOfPeaks, double preemphasisFrequency) {
+Spectrum Spectrum_lpcSmoothing (Spectrum me, int numberOfPeaks, double preemphasisFrequency) {
 	try {
 		double gain, a [100];
 		long numberOfCoefficients = 2 * numberOfPeaks;
@@ -136,76 +136,76 @@ autoSpectrum Spectrum_lpcSmoothing (Spectrum me, int numberOfPeaks, double preem
 		}
 		re [halfnfft + 1] = scale / data [2] / (1 + thy dx * halfnfft / preemphasisFrequency);
 		im [halfnfft + 1] = 0.0;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not smoothed.");
 	}
 }
 
-autoSound Sound_filter_formula (Sound me, const char32 *formula, Interpreter interpreter) {
+Sound Sound_filter_formula (Sound me, const char32 *formula, Interpreter interpreter) {
 	try {
 		autoSound thee = Data_copy (me);
 		if (my ny == 1) {
-			autoSpectrum spec = Sound_to_Spectrum (me, true);
-			Matrix_formula (spec.get(), formula, interpreter, nullptr);
-			autoSound him = Spectrum_to_Sound (spec.get());
+			autoSpectrum spec = Sound_to_Spectrum (me, TRUE);
+			Matrix_formula ((Matrix) spec.peek(), formula, interpreter, NULL);
+			autoSound him = Spectrum_to_Sound (spec.peek());
 			NUMvector_copyElements (his z [1], thy z [1], 1, thy nx);
 		} else {
 			for (long ichan = 1; ichan <= my ny; ichan ++) {
 				autoSound channel = Sound_extractChannel (me, ichan);
-				autoSpectrum spec = Sound_to_Spectrum (channel.get(), true);
-				Matrix_formula (spec.get(), formula, interpreter, nullptr);
-				autoSound him = Spectrum_to_Sound (spec.get());
+				autoSpectrum spec = Sound_to_Spectrum (channel.peek(), TRUE);
+				Matrix_formula ((Matrix) spec.peek(), formula, interpreter, NULL);
+				autoSound him = Spectrum_to_Sound (spec.peek());
 				NUMvector_copyElements (his z [1], thy z [ichan], 1, thy nx);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (with formula).");
 	}
 }
 
-autoSound Sound_filter_passHannBand (Sound me, double fmin, double fmax, double smooth) {
+Sound Sound_filter_passHannBand (Sound me, double fmin, double fmax, double smooth) {
 	try {
 		autoSound thee = Data_copy (me);
 		if (my ny == 1) {
-			autoSpectrum spec = Sound_to_Spectrum (me, true);
-			Spectrum_passHannBand (spec.get(), fmin, fmax, smooth);
-			autoSound him = Spectrum_to_Sound (spec.get());
+			autoSpectrum spec = Sound_to_Spectrum (me, TRUE);
+			Spectrum_passHannBand (spec.peek(), fmin, fmax, smooth);
+			autoSound him = Spectrum_to_Sound (spec.peek());
 			NUMvector_copyElements (his z [1], thy z [1], 1, thy nx);
 		} else {
 			for (long ichan = 1; ichan <= my ny; ichan ++) {
 				autoSound channel = Sound_extractChannel (me, ichan);
-				autoSpectrum spec = Sound_to_Spectrum (channel.get(), true);
-				Spectrum_passHannBand (spec.get(), fmin, fmax, smooth);
-				autoSound him = Spectrum_to_Sound (spec.get());
+				autoSpectrum spec = Sound_to_Spectrum (channel.peek(), TRUE);
+				Spectrum_passHannBand (spec.peek(), fmin, fmax, smooth);
+				autoSound him = Spectrum_to_Sound (spec.peek());
 				NUMvector_copyElements (his z [1], thy z [ichan], 1, thy nx);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (pass Hann band).");
 	}
 }
 
-autoSound Sound_filter_stopHannBand (Sound me, double fmin, double fmax, double smooth) {
+Sound Sound_filter_stopHannBand (Sound me, double fmin, double fmax, double smooth) {
 	try {
 		autoSound thee = Data_copy (me);
 		if (my ny == 1) {
-			autoSpectrum spec = Sound_to_Spectrum (me, true);
-			Spectrum_stopHannBand (spec.get(), fmin, fmax, smooth);
-			autoSound him = Spectrum_to_Sound (spec.get());
+			autoSpectrum spec = Sound_to_Spectrum (me, TRUE);
+			Spectrum_stopHannBand (spec.peek(), fmin, fmax, smooth);
+			autoSound him = Spectrum_to_Sound (spec.peek());
 			NUMvector_copyElements (his z [1], thy z [1], 1, thy nx);
 		} else {
 			for (long ichan = 1; ichan <= my ny; ichan ++) {
 				autoSound channel = Sound_extractChannel (me, ichan);
-				autoSpectrum spec = Sound_to_Spectrum (channel.get(), true);
-				Spectrum_stopHannBand (spec.get(), fmin, fmax, smooth);
-				autoSound him = Spectrum_to_Sound (spec.get());
+				autoSpectrum spec = Sound_to_Spectrum (channel.peek(), TRUE);
+				Spectrum_stopHannBand (spec.peek(), fmin, fmax, smooth);
+				autoSound him = Spectrum_to_Sound (spec.peek());
 				NUMvector_copyElements (his z [1], thy z [ichan], 1, thy nx);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not filtered (stop Hann band).");
 	}
diff --git a/fon/Sound_and_Spectrum.h b/fon/Sound_and_Spectrum.h
index eebe1dc..24c966e 100644
--- a/fon/Sound_and_Spectrum.h
+++ b/fon/Sound_and_Spectrum.h
@@ -19,17 +19,17 @@
 
 #include "Sound.h"
 #include "Spectrum.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
-autoSpectrum Sound_to_Spectrum_at (Sound me, double tim, double windowDuration, int windowType);
+Spectrum Sound_to_Spectrum_at (Sound me, double tim, double windowDuration, int windowType);
 
-autoSpectrum Sound_to_Spectrum (Sound me, int fast);
-autoSound Spectrum_to_Sound (Spectrum me);
+Spectrum Sound_to_Spectrum (Sound me, int fast);
+Sound Spectrum_to_Sound (Spectrum me);
 
-autoSpectrum Spectrum_lpcSmoothing (Spectrum me, int numberOfPeaks, double preemphasisFrequency);
+Spectrum Spectrum_lpcSmoothing (Spectrum me, int numberOfPeaks, double preemphasisFrequency);
 
-autoSound Sound_filter_passHannBand (Sound me, double fmin, double fmax, double smooth);
-autoSound Sound_filter_stopHannBand (Sound me, double fmin, double fmax, double smooth);
-autoSound Sound_filter_formula (Sound me, const char32 *formula, Interpreter interpreter);
+Sound Sound_filter_passHannBand (Sound me, double fmin, double fmax, double smooth);
+Sound Sound_filter_stopHannBand (Sound me, double fmin, double fmax, double smooth);
+Sound Sound_filter_formula (Sound me, const char32 *formula, Interpreter interpreter);
 
 /* End of file Sound_and_Spectrum.h */
diff --git a/fon/Sound_audio.cpp b/fon/Sound_audio.cpp
index f58431e..ff1c911 100644
--- a/fon/Sound_audio.cpp
+++ b/fon/Sound_audio.cpp
@@ -1,6 +1,6 @@
 /* Sound_audio.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -143,28 +143,21 @@ static int portaudioStreamCallback (
 	return paContinue;
 }
 
-autoSound Sound_recordFixedTime (int inputSource, double gain, double balance, double sampleRate, double duration) {
-	bool inputUsesPortAudio =
-		#if defined (_WIN32)
-			MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_MME_VIA_PORTAUDIO;
-		#elif defined (macintosh)
-			MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_COREAUDIO_VIA_PORTAUDIO;
-		#else
-			MelderAudio_getInputSoundSystem () == kMelder_inputSoundSystem_ALSA_VIA_PORTAUDIO;
-		#endif
-	PaStream *portaudioStream = nullptr;
+Sound Sound_recordFixedTime (int inputSource, double gain, double balance, double sampleRate, double duration) {
+	bool inputUsesPortAudio = MelderAudio_getInputUsesPortAudio ();
+	PaStream *portaudioStream = NULL;
 	#if defined (macintosh)
 	#elif defined (_WIN32)
 		HWAVEIN hWaveIn = 0;
 	#else
-		int fd = -1;   // other systems use stream I/O with a file descriptor
+		int fd = -1;   /* Other systems use stream I/O with a file descriptor. */
 		int fd_mixer = -1;
 	#endif
 	try {
 		long numberOfSamples, i;
-		bool mulaw = false;
-		bool can16bit = true;
-		bool fakeMonoByStereo = false;   // will be set to `true` for systems (like MacOS X) that do not allow direct mono recording
+		int mulaw = FALSE;
+		int can16bit = TRUE;
+		int fakeMonoByStereo = FALSE;   /* Will be set to TRUE for systems (like MacOS X) that do not allow direct mono recording. */
 
 		/* Declare system-dependent data structures. */
 
@@ -249,7 +242,7 @@ autoSound Sound_recordFixedTime (int inputSource, double gain, double balance, d
 				/* The device immediately started recording into its buffer, but probably at the wrong rate etc. */
 				/* Pause and flush this rubbish. */
 				#if defined (linux)
-					ioctl (fd, SNDCTL_DSP_RESET, nullptr);
+					ioctl (fd, SNDCTL_DSP_RESET, NULL);
 				#endif
 			#endif
 		}
@@ -381,7 +374,7 @@ autoSound Sound_recordFixedTime (int inputSource, double gain, double balance, d
 			info. numberOfSamples = numberOfSamples;
 			info. numberOfSamplesRead = 0;
 			info. buffer = buffer.peek();
-			PaError err = Pa_OpenStream (& portaudioStream, & streamParameters, nullptr,
+			PaError err = Pa_OpenStream (& portaudioStream, & streamParameters, NULL,
 				sampleRate, 0, paNoFlag, portaudioStreamCallback, (void *) & info);
 			if (err)
 				Melder_throw (U"open ", Melder_peek8to32 (Pa_GetErrorText (err)));
@@ -415,7 +408,7 @@ for (i = 1; i <= numberOfSamples; i ++) trace (U"Recorded ", buffer [i]);
 				waveHeader. lpData = (char *) & buffer [1];
 				waveHeader. dwBufferLength = numberOfSamples * 2;
 				waveHeader. dwLoops = 0;
-				waveHeader. lpNext = nullptr;
+				waveHeader. lpNext = NULL;
 				waveHeader. reserved = 0;
 				err = waveInPrepareHeader (hWaveIn, & waveHeader, sizeof (WAVEHDR));
 				if (err != MMSYSERR_NOERROR)
@@ -480,7 +473,7 @@ for (i = 1; i <= numberOfSamples; i ++) trace (U"Recorded ", buffer [i]);
 
 		/* Hand the resulting sound to the caller. */
 
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		if (inputUsesPortAudio) {
 			if (portaudioStream) Pa_StopStream (portaudioStream);
@@ -503,9 +496,9 @@ for (i = 1; i <= numberOfSamples; i ++) trace (U"Recorded ", buffer [i]);
 static struct SoundPlay {
 	long numberOfSamples, i1, i2, silenceBefore, silenceAfter;
 	double tmin, tmax, dt, t1;
-	Sound_PlayCallback callback;
-	Thing boss;
-	int16 *buffer;
+	int (*callback) (void *closure, int phase, double tmin, double tmax, double t);
+	void *closure;
+	short *buffer;
 } thePlayingSound;
 
 static bool melderPlayCallback (void *closure, long samplesPlayed) {
@@ -515,21 +508,22 @@ static bool melderPlayCallback (void *closure, long samplesPlayed) {
 		samplesPlayed >= my silenceBefore + my numberOfSamples ? my tmax :
 		my t1 + (my i1 - 1.5 + samplesPlayed - my silenceBefore) * my dt;
 	if (! MelderAudio_isPlaying) {
-		NUMvector_free (my buffer, 1), my buffer = nullptr;
+		NUMvector_free (my buffer, 1), my buffer = NULL;
 		phase = 3;
 	}
 	if (my callback)
-		return my callback (my boss, phase, my tmin, my tmax, t);
+		return my callback (my closure, phase, my tmin, my tmax, t);
 	return true;
 }
 
-void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback callback, Thing boss)
+void Sound_playPart (Sound me, double tmin, double tmax,
+	int (*callback) (void *closure, int phase, double tmin, double tmax, double t), void *closure)
 {
 	try {
 		long ifsamp = lround (1.0 / my dx), bestSampleRate = MelderAudio_getOutputBestSampleRate (ifsamp);
 		if (ifsamp == bestSampleRate) {
 			struct SoundPlay *thee = (struct SoundPlay *) & thePlayingSound;
-			double *fromLeft = my z [1], *fromRight = my ny > 1 ? my z [2] : nullptr;
+			double *fromLeft = my z [1], *fromRight = my ny > 1 ? my z [2] : NULL;
 			MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 			long i1, i2;
 			if ((thy numberOfSamples = Matrix_getWindowSamplesX (me, tmin, tmax, & i1, & i2)) < 1) return;
@@ -538,7 +532,7 @@ void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback call
 			thy dt = my dx;
 			thy t1 = my x1;
 			thy callback = callback;
-			thy boss = boss;
+			thy closure = closure;
 			thy silenceBefore = (long) (ifsamp * MelderAudio_getOutputSilenceBefore ());
 			thy silenceAfter = (long) (ifsamp * MelderAudio_getOutputSilenceAfter ());
 			int numberOfChannels = my ny;
@@ -567,19 +561,20 @@ void Sound_playPart (Sound me, double tmin, double tmax, Sound_PlayCallback call
 					* ++ to = value < -32768 ? -32768 : value > 32767 ? 32767 : value;
 				}
 			}
-			if (thy callback) thy callback (thy boss, 1, tmin, tmax, tmin);
+			if (thy callback) thy callback (thy closure, 1, tmin, tmax, tmin);
 			MelderAudio_play16 (thy buffer + 1, ifsamp,
 				thy silenceBefore + thy numberOfSamples + thy silenceAfter, numberOfChannels, melderPlayCallback, thee);
 		} else {
 			autoSound resampled = Sound_resample (me, bestSampleRate, 1);
-			Sound_playPart (resampled.get(), tmin, tmax, callback, boss);   // recursively
+			Sound_playPart (resampled.peek(), tmin, tmax, callback, closure);   // recursively
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": not played.");
 	}
 }
 
-void Sound_play (Sound me, Sound_PlayCallback playCallback, Thing playClosure)
+void Sound_play (Sound me,
+	int (*playCallback) (void *playClosure, int phase, double tmin, double tmax, double t), void *playClosure)
 {
 	Sound_playPart (me, my xmin, my xmax, playCallback, playClosure);
 }
diff --git a/fon/Sound_enhance.cpp b/fon/Sound_enhance.cpp
index 9bf8187..270793b 100644
--- a/fon/Sound_enhance.cpp
+++ b/fon/Sound_enhance.cpp
@@ -1,6 +1,6 @@
 /* Sound_enhance.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,47 +32,45 @@
 #include "Pitch_to_PointProcess.h"
 #include "Sound_and_Spectrum.h"
 
-autoSound Sound_lengthen_overlapAdd (Sound me, double fmin, double fmax, double factor) {
+Sound Sound_lengthen_overlapAdd (Sound me, double fmin, double fmax, double factor) {
 	try {
 		if (my ny > 1)
 			Melder_throw (U"Overlap-add works only on mono sounds.");
 		autoSound sound = Data_copy (me);
-		Vector_subtractMean (sound.get());
-		autoPitch pitch = Sound_to_Pitch (sound.get(), 0.8 / fmin, fmin, fmax);
-		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.get(), pitch.get());
-		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.get());
+		Vector_subtractMean (sound.peek());
+		autoPitch pitch = Sound_to_Pitch (sound.peek(), 0.8 / fmin, fmin, fmax);
+		autoPointProcess pulses = Sound_Pitch_to_PointProcess_cc (sound.peek(), pitch.peek());
+		autoPitchTier pitchTier = Pitch_to_PitchTier (pitch.peek());
 		autoDurationTier duration = DurationTier_create (my xmin, my xmax);
-		RealTier_addPoint (duration.get(), 0.5 * (my xmin + my xmax), factor);
-		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.get(), pulses.get(), pitchTier.get(), duration.get(), 1.5 / fmin);
-		return thee;
+		RealTier_addPoint (duration.peek(), 0.5 * (my xmin + my xmax), factor);
+		autoSound thee = Sound_Point_Pitch_Duration_to_Sound (sound.peek(), pulses.peek(), pitchTier.peek(), duration.peek(), 1.5 / fmin);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not lengthened.");
 	}
 }
 
-autoSound Sound_deepenBandModulation (Sound me, double enhancement_dB,
+Sound Sound_deepenBandModulation (Sound me, double enhancement_dB,
 	double flow, double fhigh, double slowModulation, double fastModulation, double bandSmoothing)
 {
 	try {
 		autoSound thee = Data_copy (me);
-		double maximumFactor = pow (10.0, enhancement_dB / 20.0), alpha = sqrt (log (2.0));
+		double maximumFactor = pow (10, enhancement_dB / 20), alpha = sqrt (log (2.0));
 		double alphaslow = alpha / slowModulation, alphafast = alpha / fastModulation;
 
 		for (long channel = 1; channel <= my ny; channel ++) {
 			autoSound channelSound = Sound_extractChannel (me, channel);
-			autoSpectrum orgspec = Sound_to_Spectrum (channelSound.get(), true);
+			autoSpectrum orgspec = Sound_to_Spectrum (channelSound.peek(), TRUE);
 
 			/*
 			 * Keep the part of the sound that is outside the filter bank.
 			 */
-			autoSpectrum spec = Data_copy (orgspec.get());
-			Spectrum_stopHannBand (spec.get(), flow, fhigh, bandSmoothing);
-			autoSound filtered = Spectrum_to_Sound (spec.get());
+			autoSpectrum spec = Data_copy (orgspec.peek());
+			Spectrum_stopHannBand (spec.peek(), flow, fhigh, bandSmoothing);
+			autoSound filtered = Spectrum_to_Sound (spec.peek());
 			long n = thy nx;
 			double *amp = thy z [channel];
-			for (long i = 1; i <= n; i ++) {
-				amp [i] = filtered -> z [1] [i];
-			}
+			for (long i = 1; i <= n; i ++) amp [i] = filtered -> z [1] [i];
 
 			autoMelderProgress progress (U"Deepen band modulation...");
 			double fmin = flow;
@@ -81,22 +79,20 @@ autoSound Sound_deepenBandModulation (Sound me, double enhancement_dB,
 				 * Take a one-bark frequency band.
 				 */
 				double fmid_bark = NUMhertzToBark (fmin) + 0.5, ceiling;
-				double fmax = NUMbarkToHertz (NUMhertzToBark (fmin) + 1.0);
+				double fmax = NUMbarkToHertz (NUMhertzToBark (fmin) + 1);
 				if (fmax > fhigh) fmax = fhigh;
 				Melder_progress (fmin / fhigh, U"Band: ", Melder_fixed (fmin, 0), U" ... ", Melder_fixed (fmax, 0), U" Hz");
 				NUMmatrix_copyElements (orgspec -> z, spec -> z, 1, 2, 1, spec -> nx);
-				Spectrum_passHannBand (spec.get(), fmin, fmax, bandSmoothing);
-				autoSound band = Spectrum_to_Sound (spec.get());
+				Spectrum_passHannBand (spec.peek(), fmin, fmax, bandSmoothing);
+				autoSound band = Spectrum_to_Sound (spec.peek());
 				/*
 				 * Compute a relative intensity contour.
 				 */		
-				autoSound intensity = Data_copy (band.get());
+				autoSound intensity = Data_copy (band.peek());
 				n = intensity -> nx;
 				amp = intensity -> z [1];
-				for (long i = 1; i <= n; i ++) {
-					amp [i] = 10.0 * log10 (amp [i] * amp [i] + 1e-6);
-				}
-				autoSpectrum intensityFilter = Sound_to_Spectrum (intensity.get(), true);
+				for (long i = 1; i <= n; i ++) amp [i] = 10 * log10 (amp [i] * amp [i] + 1e-6);
+				autoSpectrum intensityFilter = Sound_to_Spectrum (intensity.peek(), TRUE);
 				n = intensityFilter -> nx;
 				for (long i = 1; i <= n; i ++) {
 					double frequency = intensityFilter -> x1 + (i - 1) * intensityFilter -> dx;
@@ -105,19 +101,15 @@ autoSound Sound_deepenBandModulation (Sound me, double enhancement_dB,
 					intensityFilter -> z [1] [i] *= factor;
 					intensityFilter -> z [2] [i] *= factor;
 				}
-				intensity = Spectrum_to_Sound (intensityFilter.get());
+				intensity.reset (Spectrum_to_Sound (intensityFilter.peek()));
 				n = intensity -> nx;
 				amp = intensity -> z [1];
-				for (long i = 1; i <= n; i ++) {
-					amp [i] = pow (10.0, amp [i] / 2.0);
-				}
+				for (long i = 1; i <= n; i ++) amp [i] = pow (10, amp [i] / 2);
 				/*
 				 * Clip to maximum enhancement.
 				 */
-				ceiling = 1 + (maximumFactor - 1.0) * (0.5 - 0.5 * cos (NUMpi * fmid_bark / 13.0));
-				for (long i = 1; i <= n; i ++) {
-					amp [i] = 1.0 / (1.0 / amp [i] + 1.0 / ceiling);
-				}
+				ceiling = 1 + (maximumFactor - 1.0) * (0.5 - 0.5 * cos (NUMpi * fmid_bark / 13));
+				for (long i = 1; i <= n; i ++) amp [i] = 1 / (1 / amp [i] + 1 / ceiling);
 
 				n = thy nx;
 				amp = thy z [channel];
@@ -126,13 +118,13 @@ autoSound Sound_deepenBandModulation (Sound me, double enhancement_dB,
 				fmin = fmax;
 			}
 		}
-		Vector_scale (thee.get(), 0.99);
+		Vector_scale (thee.peek(), 0.99);
 		/* Truncate. */
 		thy xmin = my xmin;
 		thy xmax = my xmax;
 		thy nx = my nx;
 		thy x1 = my x1;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": band modulation not deepened.");
 	}
diff --git a/fon/Sound_files.cpp b/fon/Sound_files.cpp
index 9116ea3..43ac849 100644
--- a/fon/Sound_files.cpp
+++ b/fon/Sound_files.cpp
@@ -66,7 +66,7 @@ static void Sound_alawDecode (Sound me) {
 #include <time.h>
 #include "Sound.h"
 
-autoSound Sound_readFromSoundFile (MelderFile file) {
+Sound Sound_readFromSoundFile (MelderFile file) {
 	try {
 		autoMelderFile mfile = MelderFile_open (file);
 		int numberOfChannels, encoding;
@@ -85,13 +85,13 @@ autoSound Sound_readFromSoundFile (MelderFile file) {
 			Melder_throw (U"Cannot unshorten. Write to paul.boersma at uva.nl for more information.");
 		Melder_readAudioToFloat (file -> filePointer, numberOfChannels, encoding, my z, numberOfSamples);
 		mfile.close ();
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from sound file ", file, U".");
 	}
 }
 
-autoSound Sound_readFromSesamFile (MelderFile file) {
+Sound Sound_readFromSesamFile (MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 		int32_t header [1 + 128];
@@ -116,13 +116,13 @@ autoSound Sound_readFromSesamFile (MelderFile file) {
 			my z [1] [i] = (double) bingeti2LE (f) * (1.0 / 2048);   // 12 bits
 		}
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from Sesam file ", file, U".");
 	}
 }
 
-autoSound Sound_readFromBellLabsFile (MelderFile file) {
+Sound Sound_readFromBellLabsFile (MelderFile file) {
 	try {
 		/*
 		 * Check existence and permissions of file.
@@ -136,7 +136,7 @@ autoSound Sound_readFromBellLabsFile (MelderFile file) {
 		if (fread (tag, 1, 16, f) < 16 || ! strnequ (tag, "SIG\n", 4))
 			Melder_throw (U"Not a Bell-Labs sound file.");
 		char *endOfTag = strchr (tag + 4, '\n');
-		if (! endOfTag)
+		if (endOfTag == NULL)
 			Melder_throw (U"Second line missing or too long.");
 		unsigned long tagLength = (endOfTag - tag) + 1;   // probably 12
 		unsigned long headerLength = atol (tag + 4);
@@ -152,7 +152,7 @@ autoSound Sound_readFromBellLabsFile (MelderFile file) {
 			Melder_throw (U"Header too short.");
 		unsigned long numberOfSamples = 0;
 		char *psamples = & lines [-1];
-		while (!! (psamples = strstr (psamples + 1, "samples ")))   // take last occurrence
+		while ((psamples = strstr (psamples + 1, "samples ")) != NULL)   // take last occurrence
 			numberOfSamples = atol (psamples + 8);
 		if (numberOfSamples < 1) {
 			/* Use file length. */
@@ -163,7 +163,7 @@ autoSound Sound_readFromBellLabsFile (MelderFile file) {
 			Melder_throw (U"No samples found.");
 		double samplingFrequency = 0.0;
 		char *pfrequency = & lines [-1];
-		while (!! (pfrequency = strstr (pfrequency + 1, "frequency ")))   // take last occurrence
+		while ((pfrequency = strstr (pfrequency + 1, "frequency ")) != NULL)   // take last occurrence
 			samplingFrequency = atof (pfrequency + 10);
 		if (samplingFrequency <= 0.0)
 			samplingFrequency = 16000.0;
@@ -181,7 +181,7 @@ autoSound Sound_readFromBellLabsFile (MelderFile file) {
 			my z [1] [i] = (double) bingeti2 (f) * (1.0 / 32768);   // 16-bits big-endian
 
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from Bell Labs sound file ", file, U".");
 	}
@@ -191,7 +191,7 @@ static void readError () {
 	Melder_throw (U"Error reading bytes from file.");
 }
 
-autoSound Sound_readFromKayFile (MelderFile file) {
+Sound Sound_readFromKayFile (MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 
@@ -226,7 +226,7 @@ autoSound Sound_readFromKayFile (MelderFile file) {
 
 		if (fread (data, 1, 4, f) < 4) readError ();
 		while (! strnequ (data, "SDA_", 4) && ! strnequ (data, "SD_B", 4)) {
-			if (feof ((FILE *) f))
+			if (feof (f))
 				Melder_throw (U"Missing or unreadable SD chunk. Please report to paul.boersma at uva.nl.");
 			chunkSize = bingetu4LE (f);
 			if (chunkSize & 1) ++ chunkSize;
@@ -244,13 +244,13 @@ autoSound Sound_readFromKayFile (MelderFile file) {
 			}
 		}
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from Kay file ", file, U".");
 	}
 }
 
-autoSound Sound_readFromRawAlawFile (MelderFile file) {
+Sound Sound_readFromRawAlawFile (MelderFile file) {
 	try {
 		double sampleRate = 8000.0;
 		autofile f = Melder_fopen (file, "rb");
@@ -260,7 +260,7 @@ autoSound Sound_readFromRawAlawFile (MelderFile file) {
 		autoSound me = Sound_createSimple (1, numberOfSamples / sampleRate, sampleRate); 
 		Melder_readAudioToFloat (f, 1, Melder_ALAW, my z, numberOfSamples);
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Sound not read from raw A-law file ", file, U".");
 	}
@@ -270,7 +270,7 @@ void Sound_writeToAudioFile (Sound me, MelderFile file, int audioFileType, int n
 	try {
 		autoMelderFile mfile = MelderFile_create (file);
 		MelderFile_writeAudioFileHeader (file, audioFileType, lround (1.0 / my dx), my nx, my ny, numberOfBitsPerSamplePoint);
-		MelderFile_writeFloatToAudio (file, my ny, Melder_defaultAudioFileEncoding (audioFileType, numberOfBitsPerSamplePoint), my z, my nx, true);
+		MelderFile_writeFloatToAudio (file, my ny, Melder_defaultAudioFileEncoding (audioFileType, numberOfBitsPerSamplePoint), my z, my nx, TRUE);
 		MelderFile_writeAudioFileTrailer (file, audioFileType, lround (1.0 / my dx), my nx, my ny, numberOfBitsPerSamplePoint);
 		mfile.close ();
 	} catch (MelderError) {
@@ -318,7 +318,7 @@ void Sound_writeToKayFile (Sound me, MelderFile file) {
 		binputi4LE (32, file -> filePointer);
 
 		char date [100];
-		time_t today = time (nullptr);
+		time_t today = time (NULL);
 		strcpy (date, ctime (& today));	
 		fwrite (date+4, 1, 20, file -> filePointer);   // skip weekday
 
@@ -345,9 +345,9 @@ void Sound_writeToKayFile (Sound me, MelderFile file) {
 		fwrite ("SDA_", 1, 4, file -> filePointer);
 		binputi4LE (my nx * 2, file -> filePointer);   // chunk size
 
-		MelderFile_writeFloatToAudio (file, 1, Melder_LINEAR_16_LITTLE_ENDIAN, my z, my nx, true);
+		MelderFile_writeFloatToAudio (file, 1, Melder_LINEAR_16_LITTLE_ENDIAN, my z, my nx, TRUE);
 		if (my ny > 1)
-			MelderFile_writeFloatToAudio (file, 1, Melder_LINEAR_16_LITTLE_ENDIAN, my z + 1, my nx, true);
+			MelderFile_writeFloatToAudio (file, 1, Melder_LINEAR_16_LITTLE_ENDIAN, my z + 1, my nx, TRUE);
 		mfile.close ();
 	} catch (MelderError) {
 		Melder_throw (me, U": not written to Kay sound file ", file, U".");
@@ -357,7 +357,7 @@ void Sound_writeToKayFile (Sound me, MelderFile file) {
 void Sound_writeToRawSoundFile (Sound me, MelderFile file, int encoding) {
 	try {
 		autoMelderFile mfile = MelderFile_create (file);
-		MelderFile_writeFloatToAudio (file, my ny, encoding, my z, my nx, true);
+		MelderFile_writeFloatToAudio (file, my ny, encoding, my z, my nx, TRUE);
 		mfile.close ();
 	} catch (MelderError) {
 		Melder_throw (me, U": not written to raw sound file ", file, U".");
diff --git a/fon/Sound_to_Cochleagram.cpp b/fon/Sound_to_Cochleagram.cpp
index e2a2033..c20a50e 100644
--- a/fon/Sound_to_Cochleagram.cpp
+++ b/fon/Sound_to_Cochleagram.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_Cochleagram.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 #include "Sound_and_Spectrum.h"
 #include "Spectrum_to_Excitation.h"
 
-autoCochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double dt_window, double forwardMaskingTime) {
+Cochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double dt_window, double forwardMaskingTime) {
 	try {
 		double duration = my nx * my dx;
 		long nFrames = 1 + (long) floor ((duration - dt_window) / dt);
@@ -43,12 +43,12 @@ autoCochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double dt_
 		double integrationCorrection = 1.0 - dampingFactor;
 
 		nsamp_window = halfnsamp_window * 2;
-		if (nFrames < 2) return autoCochleagram ();
+		if (nFrames < 2) return NULL;
 		double t1 = my x1 + 0.5 * (duration - my dx - (nFrames - 1) * dt);   // centre of first frame
 		autoCochleagram thee = Cochleagram_create (my xmin, my xmax, nFrames, dt, t1, df, nf);
 		autoSound window = Sound_createSimple (1, nsamp_window * my dx, 1.0 / my dx);
 		for (long iframe = 1; iframe <= nFrames; iframe ++) {
-			double t = Sampled_indexToX (thee.get(), iframe);
+			double t = Sampled_indexToX (thee.peek(), iframe);
 			long leftSample = Sampled_xToLowIndex (me, t);
 			long rightSample = leftSample + 1;
 			long startSample = rightSample - halfnsamp_window;
@@ -69,22 +69,22 @@ autoCochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double dt_
 			for (long i = 1; i <= nsamp_window; i ++)
 				window -> z [1] [i] =
 					( my ny == 1 ? my z[1][i+startSample-1] : 0.5 * (my z[1][i+startSample-1] + my z[2][i+startSample-1]) ) *
-					(0.5 - 0.5 * cos (2.0 * NUMpi * i / (nsamp_window + 1)));
-			autoSpectrum spec = Sound_to_Spectrum (window.get(), true);
-			autoExcitation excitation = Spectrum_to_Excitation (spec.get(), df);
+					(0.5 - 0.5 * cos (2 * NUMpi * i / (nsamp_window + 1)));
+			autoSpectrum spec = Sound_to_Spectrum (window.peek(), TRUE);
+			autoExcitation excitation = Spectrum_to_Excitation (spec.peek(), df);
 			for (long ifreq = 1; ifreq <= nf; ifreq ++)
 				thy z [ifreq] [iframe] = excitation -> z [1] [ifreq] + ( iframe > 1 ? dampingFactor * thy z [ifreq] [iframe - 1] : 0 );
 		}
 		for (long iframe = 1; iframe <= nFrames; iframe ++)
 			for (long ifreq = 1; ifreq <= nf; ifreq ++)
 				thy z [ifreq] [iframe] *= integrationCorrection;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Cochleagram.");
 	}
 }
 
-static autoSound createGammatone (double midFrequency_Hertz, double samplingFrequency) {
+static Sound createGammatone (double midFrequency_Hertz, double samplingFrequency) {
 	double lengthOfGammatone_seconds = 50.0 / midFrequency_Hertz;   // 50 periods
 	long lengthOfGammatone_samples;
 	/* EdB's alfa1: */
@@ -102,10 +102,10 @@ static autoSound createGammatone (double midFrequency_Hertz, double samplingFreq
 		if (time_seconds > latency) gammatone -> z [1] [itime] =
 			x * x * x * exp (- x) * cos (midFrequency_radPerSecond * timeAfterLatency);
 	}
-	return gammatone;
+	return gammatone.transfer();
 }
 
-autoCochleagram Sound_to_Cochleagram_edb
+Cochleagram Sound_to_Cochleagram_edb
 	(Sound me, double dtime, double dfreq, int hasSynapse, double replenishmentRate,
 	 double lossRate, double returnRate, double reprocessingRate)
 {
@@ -113,7 +113,7 @@ autoCochleagram Sound_to_Cochleagram_edb
 		double duration_seconds = my xmax;
 		if (dtime < my dx) dtime = my dx;
 		long ntime = lround (duration_seconds / dtime);
-		if (ntime < 2) return autoCochleagram ();
+		if (ntime < 2) return NULL;
 		long nfreq = lround (25.6 / dfreq);   // 25.6 Bark = highest frequency
 
 		autoCochleagram thee = Cochleagram_create (my xmin, my xmax, ntime, dtime, 0.5 * dtime, dfreq, nfreq);
@@ -129,37 +129,37 @@ autoCochleagram Sound_to_Cochleagram_edb
 
 			double midFrequency_Bark = (ifreq - 0.5) * dfreq;
 			double midFrequency_Hertz = Excitation_barkToHertz (midFrequency_Bark);
-			autoSound gammatone = createGammatone (midFrequency_Hertz, 1.0 / my dx);
-			autoSound basil = Sounds_convolve (me, gammatone.get(), kSounds_convolve_scaling_SUM, kSounds_convolve_signalOutsideTimeDomain_ZERO);
+			autoSound gammatone = createGammatone (midFrequency_Hertz, 1 / my dx);
+			autoSound basil = Sounds_convolve (me, gammatone.peek(), kSounds_convolve_scaling_SUM, kSounds_convolve_signalOutsideTimeDomain_ZERO);
 
 			/* Stage 4: detection = rectify + integrate + low-pass 500 Hz. */
 			/* From basilar membrane response to firing rate. */
 
 			if (hasSynapse) {
 				double dt = my dx;
-				double M = 1.0;   // maximum free transmitter
-				double A = 5.0, B = 300.0, g = 2000.0;   // determine permeability
-				double y = replenishmentRate;            // Meddis: 5.05
-				double l = lossRate, r = returnRate;     // Meddis: 2500, 6580
-				double x = reprocessingRate;             // Meddis: 66.31
-				double h = 50000;   // convert cleft contents to firing rate
-				double gdt = 1.0 - exp (- g * dt);
-				double ydt = 1.0 - exp (- y * dt);
-				double ldt = (1.0 - exp (- (l + r) * dt)) * l / (l + r);
-				double rdt = (1.0 - exp (- (l + r) * dt)) * r / (l + r);
-				double xdt = 1.0 - exp (- x * dt);
-				double kt = g * A / (A + B);   // membrane permeability
-				double c = M * y * kt / (l * kt + y * (l + r));   // cleft contents
-				double q = c * (l + r) / kt;   // free transmitter
-				double w = c * r / x;   // reprocessing store
+				double M = 1;   /* Maximum free transmitter. */
+				double A = 5, B = 300, g = 2000;   /* Determine permeability. */
+				double y = replenishmentRate;          /* Meddis: 5.05 */
+				double l = lossRate, r = returnRate;   /* Meddis: 2500, 6580 */
+				double x = reprocessingRate;           /* Meddis: 66.31 */
+				double h = 50000;   /* Convert cleft contents to firing rate. */
+				double gdt = 1 - exp (- g * dt), ydt = 1 - exp (- y * dt),
+						 ldt = (1 - exp (- (l + r) * dt)) * l / (l + r),
+						 rdt = (1 - exp (- (l + r) * dt)) * r / (l + r),
+						 xdt = 1 - exp (- x * dt);
+				double kt = g * A / (A + B);   /* Membrane permeability. */
+				double c = M * y * kt / (l * kt + y * (l + r));   /* Cleft contents. */
+				double q = c * (l + r) / kt;   /* Free transmitter. */
+				double w = c * r / x;   /* Reprocessing store. */
 				for (long itime = 1; itime <= basil -> nx; itime ++) {
-					double splusA = basil -> z [1] [itime] * 10.0 + A;
-					double replenish = ( M > q ? ydt * (M - q) : 0.0 );
-					kt = ( splusA > 0.0 ? gdt * splusA / (splusA + B) : 0.0 );
-					double eject = kt * q;
-					double loss = ldt * c;
-					double reuptake = rdt * c;
-					double reprocess = xdt * w;
+					double splusA = basil -> z [1] [itime] * 10 + A;
+					double replenish = M > q ? ydt * (M - q) : 0;
+					double eject, loss, reuptake, reprocess;
+					kt = splusA > 0 ? gdt * splusA / (splusA + B) : 0;
+					eject = kt * q;
+					loss = ldt * c;
+					reuptake = rdt * c;
+					reprocess = xdt * w;
 					q = q + replenish - eject + reprocess;
 					c = c + eject - loss - reuptake;
 					w = w + reuptake - reprocess;
@@ -176,11 +176,9 @@ autoCochleagram Sound_to_Cochleagram_edb
 				double area = d * sqrt (NUMpi / 6);
 				double expmin6 = exp (-6), onebyoneminexpmin6 = 1 / (1 - expmin6);
 				for (long itime = 1; itime <= ntime; itime ++) {
-					double t1 = (itime - 1) * dtime;
-					double t2 = t1 + dtime;
-					double mean = 0.0;
+					double t1 = (itime - 1) * dtime, t2 = t1 + dtime, mean = 0;
 					long i1, i2;
-					long n = Matrix_getWindowSamplesX (basil.get(), t1, t2, & i1, & i2);
+					long n = Matrix_getWindowSamplesX (basil.peek(), t1, t2, & i1, & i2);
 					Melder_assert (n >= 1);
 					if (n <= 2) {
 						for (long isamp = i1; isamp <= i2; isamp ++)
@@ -204,7 +202,7 @@ autoCochleagram Sound_to_Cochleagram_edb
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Cochleagram (edb).");
 	}
diff --git a/fon/Sound_to_Cochleagram.h b/fon/Sound_to_Cochleagram.h
index 42fe1e8..bb5237e 100644
--- a/fon/Sound_to_Cochleagram.h
+++ b/fon/Sound_to_Cochleagram.h
@@ -1,6 +1,6 @@
 /* Sound_to_Cochleagram.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,9 +20,9 @@
 #include "Sound.h"
 #include "Cochleagram.h"
 
-autoCochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double windowLength, double forwardMaskingTime);
+Cochleagram Sound_to_Cochleagram (Sound me, double dt, double df, double windowLength, double forwardMaskingTime);
 
-autoCochleagram Sound_to_Cochleagram_edb
+Cochleagram Sound_to_Cochleagram_edb
 	(Sound me, double dtime, double dfreq, int hasSynapse, double replenishmentRate,
 	 double lossRate, double returnRate, double reprocessingRate);
 
diff --git a/fon/Sound_to_Formant.cpp b/fon/Sound_to_Formant.cpp
index b87dd46..4f218eb 100644
--- a/fon/Sound_to_Formant.cpp
+++ b/fon/Sound_to_Formant.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_Formant.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,10 +50,10 @@ static void burg (double sample [], long nsamp_window, double cof [], int nPoles
 	/*
 	 * Find the roots of the polynomial.
 	 */
-	autoRoots roots = Polynomial_to_Roots (polynomial.get());
-	Roots_fixIntoUnitCircle (roots.get());
+	autoRoots roots = Polynomial_to_Roots (polynomial.peek());
+	Roots_fixIntoUnitCircle (roots.peek());
 
-	Melder_assert (frame -> nFormants == 0 && ! frame -> formant);
+	Melder_assert (frame -> nFormants == 0 && frame -> formant == NULL);
 
 	/*
 	 * First pass: count the formants.
@@ -75,7 +75,7 @@ static void burg (double sample [], long nsamp_window, double cof [], int nPoles
 	 * Second pass: fill in the formants.
 	 */
 	int iformant = 0;
-	for (int i = roots -> min; i <= roots -> max; i ++) if (roots -> v [i]. im >= 0.0) {
+	for (int i = roots -> min; i <= roots -> max; i ++) if (roots -> v [i]. im >= 0) {
 		double f = fabs (atan2 (roots -> v [i].im, roots -> v [i].re)) * nyquistFrequency / NUMpi;
 		if (f >= safetyMargin && f <= nyquistFrequency - safetyMargin) {
 			Formant_Formant formant = & frame -> formant [++ iformant];
@@ -265,7 +265,7 @@ void Formant_sort (Formant me) {
 	}
 }
 
-static autoFormant Sound_to_Formant_any_inline (Sound me, double dt_in, int numberOfPoles,
+static Formant Sound_to_Formant_any_inline (Sound me, double dt_in, int numberOfPoles,
 	double halfdt_window, int which, double preemphasisFrequency, double safetyMargin)
 {
 	double dt = dt_in > 0.0 ? dt_in : halfdt_window / 4.0;
@@ -296,11 +296,11 @@ static autoFormant Sound_to_Formant_any_inline (Sound me, double dt_in, int numb
 	/* Gaussian window. */
 	for (long i = 1; i <= nsamp_window; i ++) {
 		double imid = 0.5 * (nsamp_window + 1), edge = exp (-12.0);
-		window [i] = (exp (-48.0 * (i - imid) * (i - imid) / (nsamp_window + 1) / (nsamp_window + 1)) - edge) / (1.0 - edge);
+		window [i] = (exp (-48.0 * (i - imid) * (i - imid) / (nsamp_window + 1) / (nsamp_window + 1)) - edge) / (1 - edge);
 	}
 
 	for (long iframe = 1; iframe <= nFrames; iframe ++) {
-		double t = Sampled_indexToX (thee.get(), iframe);
+		double t = Sampled_indexToX (thee.peek(), iframe);
 		long leftSample = Sampled_xToLowIndex (me, t);
 		long rightSample = leftSample + 1;
 		long startSample = rightSample - halfnsamp_window;
@@ -336,24 +336,25 @@ static autoFormant Sound_to_Formant_any_inline (Sound me, double dt_in, int numb
 		}
 		Melder_progress ((double) iframe / (double) nFrames, U"Formant analysis: frame ", iframe);
 	}
-	Formant_sort (thee.get());
-	return thee;
+	Formant_sort (thee.peek());
+	return thee.transfer();
 }
 
-autoFormant Sound_to_Formant_any (Sound me, double dt, int numberOfPoles, double maximumFrequency,
+Formant Sound_to_Formant_any (Sound me, double dt, int numberOfPoles, double maximumFrequency,
 	double halfdt_window, int which, double preemphasisFrequency, double safetyMargin)
 {
 	double nyquist = 0.5 / my dx;
-	autoSound sound;
+	autoSound sound = NULL;
 	if (maximumFrequency <= 0.0 || fabs (maximumFrequency / nyquist - 1) < 1.0e-12) {
-		sound = Data_copy (me);   // will be modified
+		sound.reset (Data_copy (me));   // will be modified
 	} else {
-		sound = Sound_resample (me, maximumFrequency * 2, 50);
+		sound.reset (Sound_resample (me, maximumFrequency * 2, 50));
 	}
-	return Sound_to_Formant_any_inline (sound.get(), dt, numberOfPoles, halfdt_window, which, preemphasisFrequency, safetyMargin);
+	autoFormant thee = Sound_to_Formant_any_inline (sound.peek(), dt, numberOfPoles, halfdt_window, which, preemphasisFrequency, safetyMargin);
+	return thee.transfer();
 }
 
-autoFormant Sound_to_Formant_burg (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
+Formant Sound_to_Formant_burg (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
 	try {
 		return Sound_to_Formant_any (me, dt, (int) (2 * nFormants), maximumFrequency, halfdt_window, 1, preemphasisFrequency, 50.0);
 	} catch (MelderError) {
@@ -361,7 +362,7 @@ autoFormant Sound_to_Formant_burg (Sound me, double dt, double nFormants, double
 	}
 }
 
-autoFormant Sound_to_Formant_keepAll (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
+Formant Sound_to_Formant_keepAll (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
 	try {
 		return Sound_to_Formant_any (me, dt, (int) (2 * nFormants), maximumFrequency, halfdt_window, 1, preemphasisFrequency, 0.0);
 	} catch (MelderError) {
@@ -369,7 +370,7 @@ autoFormant Sound_to_Formant_keepAll (Sound me, double dt, double nFormants, dou
 	}
 }
 
-autoFormant Sound_to_Formant_willems (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
+Formant Sound_to_Formant_willems (Sound me, double dt, double nFormants, double maximumFrequency, double halfdt_window, double preemphasisFrequency) {
 	try {
 		return Sound_to_Formant_any (me, dt, (int) (2 * nFormants), maximumFrequency, halfdt_window, 2, preemphasisFrequency, 50.0);
 	} catch (MelderError) {
diff --git a/fon/Sound_to_Formant.h b/fon/Sound_to_Formant.h
index c06eeab..66de4c8 100644
--- a/fon/Sound_to_Formant.h
+++ b/fon/Sound_to_Formant.h
@@ -1,6 +1,6 @@
 /* Sound_to_Formant.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,22 +20,22 @@
 #include "Sound.h"
 #include "Formant.h"
 
-autoFormant Sound_to_Formant_any (Sound me, double timeStep, int numberOfPoles, double maximumFrequency,
+Formant Sound_to_Formant_any (Sound me, double timeStep, int numberOfPoles, double maximumFrequency,
 	double halfdt_window, int which, double preemphasisFrequency, double safetyMargin);
 /*
 	Which = 1: Burg.
 	Which = 2: Split-Levinson
 */
 
-autoFormant Sound_to_Formant_burg (Sound me, double timeStep, double maximumNumberOfFormants,
+Formant Sound_to_Formant_burg (Sound me, double timeStep, double maximumNumberOfFormants,
 	double maximumFormantFrequency, double windowLength, double preemphasisFrequency);
 /* Throws away all formants below 50 Hz and above Nyquist minus 50 Hz. */
 
-autoFormant Sound_to_Formant_keepAll (Sound me, double timeStep, double maximumNumberOfFormants,
+Formant Sound_to_Formant_keepAll (Sound me, double timeStep, double maximumNumberOfFormants,
 	double maximumFormantFrequency, double windowLength, double preemphasisFrequency);
 /* Same as previous, but keeps all formants. Good for resynthesis. */
 
-autoFormant Sound_to_Formant_willems (Sound me, double timeStep, double numberOfFormants,
+Formant Sound_to_Formant_willems (Sound me, double timeStep, double numberOfFormants,
 	double maximumFormantFrequency, double windowLength, double preemphasisFrequency);
 
 /* End of file Sound_to_Formant.h */
diff --git a/fon/Sound_to_Harmonicity.cpp b/fon/Sound_to_Harmonicity.cpp
index a7b612b..5fab19b 100644
--- a/fon/Sound_to_Harmonicity.cpp
+++ b/fon/Sound_to_Harmonicity.cpp
@@ -26,7 +26,7 @@
 #include "Sound_to_Pitch.h"
 #include "Sound_to_Harmonicity.h"
 
-autoHarmonicity Sound_to_Harmonicity_ac (Sound me, double dt, double minimumPitch,
+Harmonicity Sound_to_Harmonicity_ac (Sound me, double dt, double minimumPitch,
 	double silenceThreshold, double periodsPerWindow)
 {
 	try {
@@ -42,13 +42,13 @@ autoHarmonicity Sound_to_Harmonicity_ac (Sound me, double dt, double minimumPitc
 				thy z [1] [i] = r <= 1e-15 ? -150 : r > 1 - 1e-15 ? 150 : 10 * log10 (r / (1 - r));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": harmonicity analysis (ac) not performed.");
 	}
 }
 
-autoHarmonicity Sound_to_Harmonicity_cc (Sound me, double dt, double minimumPitch,
+Harmonicity Sound_to_Harmonicity_cc (Sound me, double dt, double minimumPitch,
 	double silenceThreshold, double periodsPerWindow)
 {
 	try {
@@ -64,7 +64,7 @@ autoHarmonicity Sound_to_Harmonicity_cc (Sound me, double dt, double minimumPitc
 				thy z [1] [i] = r <= 1e-15 ? -150 : r > 1 - 1e-15 ? 150 : 10 * log10 (r / (1 - r));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": harmonicity analysis (cc) not performed.");
 	}
diff --git a/fon/Sound_to_Harmonicity.h b/fon/Sound_to_Harmonicity.h
index c1a062b..5cbf5db 100644
--- a/fon/Sound_to_Harmonicity.h
+++ b/fon/Sound_to_Harmonicity.h
@@ -1,6 +1,6 @@
 /* Sound_to_Harmonicity.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,13 +20,13 @@
 #include "Sound.h"
 #include "Harmonicity.h"
 
-autoHarmonicity Sound_to_Harmonicity_ac (Sound me, double dt, double minimumPitch,
+Harmonicity Sound_to_Harmonicity_ac (Sound me, double dt, double minimumPitch,
 	double silenceThreshold, double periodsPerWindow);
 
-autoHarmonicity Sound_to_Harmonicity_cc (Sound me, double dt, double minimumPitch,
+Harmonicity Sound_to_Harmonicity_cc (Sound me, double dt, double minimumPitch,
 	double silenceThreshold, double periodsPerWindow);
 
-autoMatrix Sound_to_Harmonicity_GNE (Sound me,
+Matrix Sound_to_Harmonicity_GNE (Sound me,
 	double fmin,   /* 500 Hz */
 	double fmax,   /* 4500 Hz */
 	double bandwidth,  /* 1000 Hz */
diff --git a/fon/Sound_to_Harmonicity_GNE.cpp b/fon/Sound_to_Harmonicity_GNE.cpp
index 770eedb..c62c721 100644
--- a/fon/Sound_to_Harmonicity_GNE.cpp
+++ b/fon/Sound_to_Harmonicity_GNE.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_Harmonicity_GNE.cpp
  *
- * Copyright (C) 1999-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1999-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,13 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2004/11/22 simplified Sound_to_Spectrum ()
+ * pb 2008/01/19 double
+ * pb 2011/06/13 C++
+ */
+
 /* a replication of:
     D. Michaelis, T. Gramss & H.W. Strube (1997):
        "Glottal-to-noise excitation ratio -- a new measure
@@ -31,8 +38,8 @@
 
 static void bandFilter (Spectrum me, double fmid, double bandwidth) {
 	double *re = my z [1], *im = my z [2];
-	double fmin = fmid - bandwidth / 2.0, fmax = fmid + bandwidth / 2.0;
-	double twopibybandwidth = 2.0 * NUMpi / bandwidth;
+	double fmin = fmid - bandwidth / 2, fmax = fmid + bandwidth / 2;
+	double twopibybandwidth = 2 * NUMpi / bandwidth;
 	for (long col = 1; col <= my nx; col ++) {
 		double x = my x1 + (col - 1) * my dx;
 		if (x < fmin || x > fmax) {
@@ -46,17 +53,17 @@ static void bandFilter (Spectrum me, double fmid, double bandwidth) {
 	}
 }
 
-autoMatrix Sound_to_Harmonicity_GNE (Sound me,
-	double fmin,   // 500 Hz
-	double fmax,   // 4500 Hz
-	double bandwidth,  // 1000 Hz
-	double step)   // 80 Hz
+Matrix Sound_to_Harmonicity_GNE (Sound me,
+	double fmin,   /* 500 Hz */
+	double fmax,   /* 4500 Hz */
+	double bandwidth,  /* 1000 Hz */
+	double step)   /* 80 Hz */
 {
 	try {
 		autoSound envelope [1+100];
 		long nenvelopes = (long) floor ((fmax - fmin) / step);
 		for (long ienvelope = 1; ienvelope <= 100; ienvelope ++)
-			Melder_assert (! envelope [ienvelope].get());
+			Melder_assert (envelope [ienvelope].peek() == NULL);
 
 		/*
 		 * Step 1: down-sampling to 10 kHz,
@@ -64,7 +71,7 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 		 * (since the human voice does not contain much above 5 kHz).
 		 */
 		autoSound original10k = Sound_resample (me, 10000, 500);
-		Vector_subtractMean (original10k.get());
+		Vector_subtractMean (original10k.peek());
 		double duration = my xmax - my xmin;
 
 		/*
@@ -79,10 +86,10 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 		 * in the LPC object of the high frequencies, so that inverse
 		 * filtering would yield weakened high frequencies.
 		 */
-		autoLPC lpc = Sound_to_LPC_auto (original10k.get(), 13, 30e-3, 10e-3, 1e9);
-		autoSound flat = LPC_and_Sound_filterInverse (lpc.get(), original10k.get());
-		autoSpectrum flatSpectrum = Sound_to_Spectrum (flat.get(), true);
-		autoSpectrum hilbertSpectrum = Data_copy (flatSpectrum.get());
+		autoLPC lpc = Sound_to_LPC_auto (original10k.peek(), 13, 30e-3, 10e-3, 1e9);
+		autoSound flat = LPC_and_Sound_filterInverse (lpc.peek(), original10k.peek());
+		autoSpectrum flatSpectrum = Sound_to_Spectrum (flat.peek(), TRUE);
+		autoSpectrum hilbertSpectrum = Data_copy (flatSpectrum.peek());
 		for (long col = 1; col <= hilbertSpectrum -> nx; col ++) {
 			hilbertSpectrum -> z [1] [col] = flatSpectrum -> z [2] [col];
 			hilbertSpectrum -> z [2] [col] = - flatSpectrum -> z [1] [col];
@@ -94,25 +101,24 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 			/*
 			 * Step 3: calculate Hilbert envelopes of bands.
 			 */
-			autoSpectrum bandSpectrum = Data_copy (flatSpectrum.get());
-			autoSpectrum hilbertBandSpectrum = Data_copy (hilbertSpectrum.get());
+			autoSpectrum bandSpectrum = Data_copy (flatSpectrum.peek());
+			autoSpectrum hilbertBandSpectrum = Data_copy (hilbertSpectrum.peek());
 			/*
 			 * 3a: Filter both the spectrum of the original flat sound and its Hilbert transform.
 			 */
-			bandFilter (bandSpectrum.get(), fmid, bandwidth);
-			bandFilter (hilbertBandSpectrum.get(), fmid, bandwidth);
+			bandFilter (bandSpectrum.peek(), fmid, bandwidth);
+			bandFilter (hilbertBandSpectrum.peek(), fmid, bandwidth);
 			/*
 			 * 3b: Create both the band-filtered flat sound and its Hilbert transform.
 			 */
-			autoSound band = Spectrum_to_Sound (bandSpectrum.get());
+			autoSound band = Spectrum_to_Sound (bandSpectrum.peek());
 			/*if (graphics) {
-				Graphics_beginMovieFrame (graphics, & Graphics_WHITE);
-				Spectrum_draw (bandSpectrum, graphics, 0, 5000, 0, 0, true);
-				Graphics_endMovieFrame (graphics, 0.0);
+				Graphics_clearWs (graphics);
+				Spectrum_draw (bandSpectrum, graphics, 0, 5000, 0, 0, TRUE);
 			}*/
 			Melder_monitor (ienvelope / (nenvelopes + 1.0), U"Computing Hilbert envelope ", ienvelope, U"...");
-			autoSound hilbertBand = Spectrum_to_Sound (hilbertBandSpectrum.get());
-			envelope [ienvelope] = Sound_extractPart (band.get(), 0, duration, kSound_windowShape_RECTANGULAR, 1.0, true);
+			autoSound hilbertBand = Spectrum_to_Sound (hilbertBandSpectrum.peek());
+			envelope [ienvelope].reset (Sound_extractPart (band.peek(), 0, duration, kSound_windowShape_RECTANGULAR, 1.0, TRUE));
 			/*
 			 * 3c: Compute the Hilbert envelope of the band-passed flat signal.
 			 */
@@ -120,7 +126,7 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 				double self = envelope [ienvelope] -> z [1] [col], other = hilbertBand -> z [1] [col];
 				envelope [ienvelope] -> z [1] [col] = sqrt (self * self + other * other);
 			}
-			Vector_subtractMean (envelope [ienvelope].get());
+			Vector_subtractMean (envelope [ienvelope].peek());
 			/*
 			 * Next band.
 			 */
@@ -135,11 +141,11 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 		autoMatrix cc = Matrix_createSimple (nenvelopes, nenvelopes);
 		for (long row = 2; row <= nenvelopes; row ++) {
 			for (long col = 1; col <= row - 1; col ++) {
-				autoSound crossCorrelation = Sounds_crossCorrelate_short (envelope [row].get(), envelope [col].get(), -3.1e-4, 3.1e-4, true);
+				autoSound crossCorrelation = Sounds_crossCorrelate_short (envelope [row].peek(), envelope [col].peek(), -3.1e-4, 3.1e-4, TRUE);
 				/*
 				 * Step 5: the maximum of each correlation function
 				 */
-				double ccmax = Vector_getMaximum (crossCorrelation.get(), 0.0, 0.0, 0);
+				double ccmax = Vector_getMaximum (crossCorrelation.peek(), 0, 0, 0);
 				cc -> z [row] [col] = ccmax;
 			}
 		}
@@ -149,13 +155,13 @@ autoMatrix Sound_to_Harmonicity_GNE (Sound me,
 		 */	
 		for (long row = 2; row <= nenvelopes; row ++) {
 			for (long col = 1; col <= row - 1; col ++) {
-				if (labs (row - col) < bandwidth / 2.0 / step) {
+				if (labs (row - col) < bandwidth / 2 / step) {
 					cc -> z [row] [col] = 0.0;
 				}
 			}
 		}
 
-		return cc;
+		return cc.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Harmonicity (GNE).");
 	}
diff --git a/fon/Sound_to_Intensity.cpp b/fon/Sound_to_Intensity.cpp
index 2628a78..0372457 100644
--- a/fon/Sound_to_Intensity.cpp
+++ b/fon/Sound_to_Intensity.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_Intensity.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
 
 #include "Sound_to_Intensity.h"
 
-static autoIntensity Sound_to_Intensity_ (Sound me, double minimumPitch, double timeStep, int subtractMeanPressure) {
+static Intensity Sound_to_Intensity_ (Sound me, double minimumPitch, double timeStep, int subtractMeanPressure) {
 	try {
 		/*
 		 * Preconditions.
@@ -71,7 +71,7 @@ static autoIntensity Sound_to_Intensity_ (Sound me, double minimumPitch, double
 		}
 		autoIntensity thee = Intensity_create (my xmin, my xmax, numberOfFrames, timeStep, thyFirstTime);
 		for (long iframe = 1; iframe <= numberOfFrames; iframe ++) {
-			double midTime = Sampled_indexToX (thee.get(), iframe);
+			double midTime = Sampled_indexToX (thee.peek(), iframe);
 			long midSample = Sampled_xToNearestIndex (me, midTime);
 			long leftSample = midSample - halfWindowSamples, rightSample = midSample + halfWindowSamples;
 			double sumxw = 0.0, sumw = 0.0, intensity;
@@ -101,26 +101,29 @@ static autoIntensity Sound_to_Intensity_ (Sound me, double minimumPitch, double
 			intensity /= 4e-10;
 			thy z [1] [iframe] = intensity < 1e-30 ? -300 : 10 * log10 (intensity);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": intensity analysis not performed.");
 	}
 }
 
-autoIntensity Sound_to_Intensity (Sound me, double minimumPitch, double timeStep, int subtractMeanPressure) {
+Intensity Sound_to_Intensity (Sound me, double minimumPitch, double timeStep, int subtractMeanPressure) {
 	bool veryAccurate = false;
 	if (veryAccurate) {
 		autoSound up = Sound_upsample (me);   // because squaring doubles the frequency content, i.e. you get super-Nyquist components
-		return Sound_to_Intensity_ (up.get(), minimumPitch, timeStep, subtractMeanPressure);
+		autoIntensity thee = Sound_to_Intensity_ (up.peek(), minimumPitch, timeStep, subtractMeanPressure);
+		return thee.transfer();
 	} else {
-		return Sound_to_Intensity_ (me, minimumPitch, timeStep, subtractMeanPressure);
+		autoIntensity thee = Sound_to_Intensity_ (me, minimumPitch, timeStep, subtractMeanPressure);
+		return thee.transfer();
 	}
 }
 
-autoIntensityTier Sound_to_IntensityTier (Sound me, double minimumPitch, double timeStep, int subtractMean) {
+IntensityTier Sound_to_IntensityTier (Sound me, double minimumPitch, double timeStep, int subtractMean) {
 	try {
 		autoIntensity intensity = Sound_to_Intensity (me, minimumPitch, timeStep, subtractMean);
-		return Intensity_downto_IntensityTier (intensity.get());
+		autoIntensityTier thee = Intensity_downto_IntensityTier (intensity.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": no IntensityTier created.");
 	}
diff --git a/fon/Sound_to_Intensity.h b/fon/Sound_to_Intensity.h
index b386819..1cbdda4 100644
--- a/fon/Sound_to_Intensity.h
+++ b/fon/Sound_to_Intensity.h
@@ -1,6 +1,6 @@
 /* Sound_to_Intensity.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
 #include "Intensity.h"
 #include "IntensityTier.h"
 
-autoIntensity Sound_to_Intensity (Sound me, double minimumPitch, double timeStep, int subtractMean);
+Intensity Sound_to_Intensity (Sound me, double minimumPitch, double timeStep, int subtractMean);
 /*
 	Function:
 		smooth away the periodic part of a signal,
@@ -46,6 +46,6 @@ autoIntensity Sound_to_Intensity (Sound me, double minimumPitch, double timeStep
 		actual window duration = 64 ms;
 */
 
-autoIntensityTier Sound_to_IntensityTier (Sound me, double minimumPitch, double timeStep, int subtractMean);
+IntensityTier Sound_to_IntensityTier (Sound me, double minimumPitch, double timeStep, int subtractMean);
 
 /* End of file Sound_to_Intensity.h */
diff --git a/fon/Sound_to_Pitch.cpp b/fon/Sound_to_Pitch.cpp
index 8c501b1..3d98c48 100644
--- a/fon/Sound_to_Pitch.cpp
+++ b/fon/Sound_to_Pitch.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_Pitch.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -258,7 +258,7 @@ Thing_define (Sound_into_Pitch_Args, Thing) { public:
 
 Thing_implement (Sound_into_Pitch_Args, Thing, 0);
 
-static autoSound_into_Pitch_Args Sound_into_Pitch_Args_create (Sound sound, Pitch pitch,
+static Sound_into_Pitch_Args Sound_into_Pitch_Args_create (Sound sound, Pitch pitch,
 	long firstFrame, long lastFrame, double minimumPitch, int maxnCandidates, int method,
 	double voicingThreshold, double octaveCost,
 	double dt_window, long nsamp_window, long halfnsamp_window, long maximumLag, long nsampFFT,
@@ -290,7 +290,7 @@ static autoSound_into_Pitch_Args Sound_into_Pitch_Args_create (Sound sound, Pitc
 	my windowR = windowR;
 	my isMainThread = isMainThread;
 	my cancelled = cancelled;
-	return me;
+	return me.transfer();
 }
 
 MelderThread_MUTEX (mutex);
@@ -341,7 +341,7 @@ static MelderThread_RETURN_TYPE Sound_into_Pitch (Sound_into_Pitch_Args me)
 	MelderThread_RETURN;
 }
 
-autoPitch Sound_to_Pitch_any (Sound me,
+Pitch Sound_to_Pitch_any (Sound me,
 	double dt, double minimumPitch, double periodsPerWindow, int maxnCandidates,
 	int method,
 	double silenceThreshold, double voicingThreshold,
@@ -458,7 +458,7 @@ autoPitch Sound_to_Pitch_any (Sound me,
 			}
 		}
 		if (globalPeak == 0.0) {
-			return thee;
+			return thee.transfer();
 		}
 
 		autoNUMvector <double> window;
@@ -535,34 +535,34 @@ autoPitch Sound_to_Pitch_any (Sound me,
 		volatile int cancelled = 0;
 		for (int ithread = 1; ithread <= numberOfThreads; ithread ++) {
 			if (ithread == numberOfThreads) lastFrame = nFrames;
-			args [ithread - 1] = Sound_into_Pitch_Args_create (me, thee.get(),
+			args [ithread - 1].reset (Sound_into_Pitch_Args_create (me, thee.peek(),
 				firstFrame, lastFrame, minimumPitch, maxnCandidates, method,
 				voicingThreshold, octaveCost,
 				dt_window, nsamp_window, halfnsamp_window, maximumLag,
 				nsampFFT, nsamp_period, halfnsamp_period, brent_ixmax, brent_depth,
 				globalPeak, window.peek(), windowR.peek(),
-				ithread == numberOfThreads, & cancelled);
+				ithread == numberOfThreads, & cancelled));
 			firstFrame = lastFrame + 1;
 			lastFrame += numberOfFramesPerThread;
 		}
 		MelderThread_run (Sound_into_Pitch, args, numberOfThreads);
 
 		Melder_progress (0.95, U"Sound to Pitch: path finder");
-		Pitch_pathFinder (thee.get(), silenceThreshold, voicingThreshold,
+		Pitch_pathFinder (thee.peek(), silenceThreshold, voicingThreshold,
 			octaveCost, octaveJumpCost, voicedUnvoicedCost, ceiling, Melder_debug == 31 ? true : false);
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": pitch analysis not performed.");
 	}
 }
 
-autoPitch Sound_to_Pitch (Sound me, double timeStep, double minimumPitch, double maximumPitch) {
+Pitch Sound_to_Pitch (Sound me, double timeStep, double minimumPitch, double maximumPitch) {
 	return Sound_to_Pitch_ac (me, timeStep, minimumPitch,
-		3.0, 15, false, 0.03, 0.45, 0.01, 0.35, 0.14, maximumPitch);
+		3.0, 15, FALSE, 0.03, 0.45, 0.01, 0.35, 0.14, maximumPitch);
 }
 
-autoPitch Sound_to_Pitch_ac (Sound me,
+Pitch Sound_to_Pitch_ac (Sound me,
 	double dt, double minimumPitch, double periodsPerWindow, int maxnCandidates, int accurate,
 	double silenceThreshold, double voicingThreshold,
 	double octaveCost, double octaveJumpCost, double voicedUnvoicedCost, double ceiling)
@@ -571,7 +571,7 @@ autoPitch Sound_to_Pitch_ac (Sound me,
 		silenceThreshold, voicingThreshold, octaveCost, octaveJumpCost, voicedUnvoicedCost, ceiling);
 }
 
-autoPitch Sound_to_Pitch_cc (Sound me,
+Pitch Sound_to_Pitch_cc (Sound me,
 	double dt, double minimumPitch, double periodsPerWindow, int maxnCandidates, int accurate,
 	double silenceThreshold, double voicingThreshold,
 	double octaveCost, double octaveJumpCost, double voicedUnvoicedCost, double ceiling)
diff --git a/fon/Sound_to_Pitch.h b/fon/Sound_to_Pitch.h
index ea2c971..2132353 100644
--- a/fon/Sound_to_Pitch.h
+++ b/fon/Sound_to_Pitch.h
@@ -1,6 +1,6 @@
 /* Sound_to_Pitch.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,23 +20,23 @@
 #include "Sound.h"
 #include "Pitch.h"
 
-autoPitch Sound_to_Pitch (Sound me, double timeStep,
+Pitch Sound_to_Pitch (Sound me, double timeStep,
 	double minimumPitch, double maximumPitch);
 /* Calls Sound_to_Pitch_ac with default arguments. */
 
-autoPitch Sound_to_Pitch_ac (Sound me, double timeStep, double minimumPitch,
+Pitch Sound_to_Pitch_ac (Sound me, double timeStep, double minimumPitch,
 	double periodsPerWindow, int maxnCandidates, int accurate,
 	double silenceThreshold, double voicingThreshold, double octaveCost,
 	double octaveJumpCost, double voicedUnvoicedCost, double maximumPitch);
 /* Calls Sound_to_Pitch_any with AC method. */
 
-autoPitch Sound_to_Pitch_cc (Sound me, double timeStep, double minimumPitch,
+Pitch Sound_to_Pitch_cc (Sound me, double timeStep, double minimumPitch,
 	double periodsPerWindow, int maxnCandidates, int accurate,
 	double silenceThreshold, double voicingThreshold, double octaveCost,
 	double octaveJumpCost, double voicedUnvoicedCost, double maximumPitch);
 /* Calls Sound_to_Pitch_any with FCC method. */
 
-autoPitch Sound_to_Pitch_any (Sound me,
+Pitch Sound_to_Pitch_any (Sound me,
 
 	double dt,                 /* time step (seconds); 0.0 = automatic = periodsPerWindow / minimumPitch / 4 */
 	double minimumPitch,       /* (Hz) */
@@ -57,7 +57,7 @@ autoPitch Sound_to_Pitch_any (Sound me,
 		minimumPitch > 0.0;
 		maxnCandidates >= 2;
 	Return value:
-		the resulting pitch contour.
+		the resulting pitch contour, or NULL in case of failure.
 	Failures:
 		Out of memory.
 		Minimum frequency too low.
diff --git a/fon/Sound_to_PointProcess.cpp b/fon/Sound_to_PointProcess.cpp
index f736648..d79c229 100644
--- a/fon/Sound_to_PointProcess.cpp
+++ b/fon/Sound_to_PointProcess.cpp
@@ -1,6 +1,6 @@
 /* Sound_to_PointProcess.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,11 +17,20 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2002/07/16 GPL
+ * pb 2003/02/26 Sound_to_PointProcess_peaks
+ * pb 2004/07/11 default time steps in Sound_to_Pitch
+ * pb 2007/01/28 made compatible with stereo sounds
+ * pb 2008/01/19 double
+ * pb 2011/03/09 C++
+ */
+
 #include "Sound_to_PointProcess.h"
 #include "Sound_to_Pitch.h"
 #include "Pitch_to_PointProcess.h"
 
-autoPointProcess Sound_to_PointProcess_extrema (Sound me, long channel, int interpolation, bool includeMaxima, bool includeMinima) {
+PointProcess Sound_to_PointProcess_extrema (Sound me, long channel, int interpolation, bool includeMaxima, bool includeMinima) {
 	try {
 		/*
 		 * Pass 1: count the extrema. There may be a maximum and minimum in the same interval!
@@ -45,28 +54,28 @@ autoPointProcess Sound_to_PointProcess_extrema (Sound me, long channel, int inte
 			if (includeMaxima && y [i] > y [i - 1] && y [i] >= y [i + 1]) {
 				(void) NUMimproveMaximum (y, my nx, i, interpolation, & i_real);
 				time = my x1 + (i_real - 1.0) * my dx;
-				PointProcess_addPoint (thee.get(), time);
+				PointProcess_addPoint (thee.peek(), time);
 			}
 			if (includeMinima && y [i] <= y [i - 1] && y [i] < y [i + 1]) {
 				(void) NUMimproveMinimum (y, my nx, i, interpolation, & i_real);
 				time = my x1 + (i_real - 1.0) * my dx;
-				PointProcess_addPoint (thee.get(), time);
+				PointProcess_addPoint (thee.peek(), time);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": extrema not computed.");
 	}
 }
 
-autoPointProcess Sound_to_PointProcess_maxima (Sound me, long channel, int interpolation)
+PointProcess Sound_to_PointProcess_maxima (Sound me, long channel, int interpolation)
 	{ return Sound_to_PointProcess_extrema (me, channel, interpolation, true, false); }
-autoPointProcess Sound_to_PointProcess_minima (Sound me, long channel, int interpolation)
+PointProcess Sound_to_PointProcess_minima (Sound me, long channel, int interpolation)
 	{ return Sound_to_PointProcess_extrema (me, channel, interpolation, false, true); }
-autoPointProcess Sound_to_PointProcess_allExtrema (Sound me, long channel, int interpolation)
+PointProcess Sound_to_PointProcess_allExtrema (Sound me, long channel, int interpolation)
 	{ return Sound_to_PointProcess_extrema (me, channel, interpolation, true, true); }
 
-autoPointProcess Sound_to_PointProcess_zeroes (Sound me, long channel, bool includeRaisers, bool includeFallers) {
+PointProcess Sound_to_PointProcess_zeroes (Sound me, long channel, bool includeRaisers, bool includeFallers) {
 	try {
 		/*
 		 * Pass 1: count the zeroes.
@@ -90,30 +99,30 @@ autoPointProcess Sound_to_PointProcess_zeroes (Sound me, long channel, bool incl
 				(includeFallers && y [i - 1] >= 0.0 && y [i] < 0.0))
 			{
 				double time = Sampled_indexToX (me, i - 1) + my dx * y [i - 1] / (y [i - 1] - y [i]);   // linear
-				PointProcess_addPoint (thee.get(), time);
+				PointProcess_addPoint (thee.peek(), time);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": zeroes not computed.");
 	}
 }
 
-autoPointProcess Sound_to_PointProcess_periodic_cc (Sound me, double fmin, double fmax) {
+PointProcess Sound_to_PointProcess_periodic_cc (Sound me, double fmin, double fmax) {
 	try {
 		autoPitch pitch = Sound_to_Pitch (me, 0.0, fmin, fmax);
-		autoPointProcess thee = Sound_Pitch_to_PointProcess_cc (me, pitch.get());
-		return thee;
+		autoPointProcess thee = Sound_Pitch_to_PointProcess_cc (me, pitch.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": periodic pulses (cc) not computed.");
 	}
 }
 
-autoPointProcess Sound_to_PointProcess_periodic_peaks (Sound me, double fmin, double fmax, bool includeMaxima, bool includeMinima) {
+PointProcess Sound_to_PointProcess_periodic_peaks (Sound me, double fmin, double fmax, bool includeMaxima, bool includeMinima) {
 	try {
 		autoPitch pitch = Sound_to_Pitch (me, 0.0, fmin, fmax);
-		autoPointProcess thee = Sound_Pitch_to_PointProcess_peaks (me, pitch.get(), includeMaxima, includeMinima);
-		return thee;
+		autoPointProcess thee = Sound_Pitch_to_PointProcess_peaks (me, pitch.peek(), includeMaxima, includeMinima);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": periodic pulses (peaks) not computed.");
 	}
diff --git a/fon/Sound_to_PointProcess.h b/fon/Sound_to_PointProcess.h
index c36920c..847103d 100644
--- a/fon/Sound_to_PointProcess.h
+++ b/fon/Sound_to_PointProcess.h
@@ -1,6 +1,6 @@
 /* Sound_to_PointProcess.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,15 +20,15 @@
 #include "Sound.h"
 #include "PointProcess.h"
 
-autoPointProcess Sound_to_PointProcess_extrema (Sound me, long channel, int interpolation, bool includeMaxima, bool includeMinima);
-autoPointProcess Sound_to_PointProcess_maxima (Sound me, long channel, int interpolation);
-autoPointProcess Sound_to_PointProcess_minima (Sound me, long channel, int interpolation);
-autoPointProcess Sound_to_PointProcess_allExtrema (Sound me, long channel, int interpolation);
+PointProcess Sound_to_PointProcess_extrema (Sound me, long channel, int interpolation, bool includeMaxima, bool includeMinima);
+PointProcess Sound_to_PointProcess_maxima (Sound me, long channel, int interpolation);
+PointProcess Sound_to_PointProcess_minima (Sound me, long channel, int interpolation);
+PointProcess Sound_to_PointProcess_allExtrema (Sound me, long channel, int interpolation);
 
-autoPointProcess Sound_to_PointProcess_zeroes (Sound me, long channel, bool includeRaisers, bool includeFallers);
+PointProcess Sound_to_PointProcess_zeroes (Sound me, long channel, bool includeRaisers, bool includeFallers);
 
-autoPointProcess Sound_to_PointProcess_periodic_cc (Sound me, double fmin, double fmax);
+PointProcess Sound_to_PointProcess_periodic_cc (Sound me, double fmin, double fmax);
 
-autoPointProcess Sound_to_PointProcess_periodic_peaks (Sound me, double fmin, double fmax, bool includeMaxima, bool includeMinima);
+PointProcess Sound_to_PointProcess_periodic_peaks (Sound me, double fmin, double fmax, bool includeMaxima, bool includeMinima);
 
 /* End of file Sound_to_PointProcess.h */
diff --git a/fon/Spectrogram.cpp b/fon/Spectrogram.cpp
index 03f04fa..a78bea8 100644
--- a/fon/Spectrogram.cpp
+++ b/fon/Spectrogram.cpp
@@ -1,6 +1,6 @@
 /* Spectrogram.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 Thing_implement (Spectrogram, Matrix, 2);
 
 void structSpectrogram :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Time domain:");
 	MelderInfo_writeLine (U"   Start time: ", xmin, U" seconds");
 	MelderInfo_writeLine (U"   End time: ", xmax, U" seconds");
@@ -41,13 +41,13 @@ void structSpectrogram :: v_info () {
 	MelderInfo_writeLine (U"   First frequency band around (bin centre at): ", y1, U" Hz");
 }
 
-autoSpectrogram Spectrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+Spectrogram Spectrogram_create (double tmin, double tmax, long nt, double dt, double t1,
 	double fmin, double fmax, long nf, double df, double f1)
 {
 	try {
 		autoSpectrogram me = Thing_new (Spectrogram);
-		Matrix_init (me.get(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
-		return me;
+		Matrix_init (me.peek(), tmin, tmax, nt, dt, t1, fmin, fmax, nf, df, f1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Spectrogram not created.");
 	}
@@ -69,9 +69,9 @@ void Spectrogram_paintInside (Spectrogram me, Graphics g, double tmin, double tm
 	for (long ifreq = ifmin; ifreq <= ifmax; ifreq ++) {
 		preemphasisFactor [ifreq] = (preemphasis / NUMln2) * log (ifreq * my dy / 1000.0);
 		for (long itime = itmin; itime <= itmax; itime ++) {
-			double value = my z [ifreq] [itime];   // power
-			value = (10.0/NUMln10) * log ((value + 1e-30) / 4.0e-10) + preemphasisFactor [ifreq];   // dB
-			if (value > dynamicFactor [itime]) dynamicFactor [itime] = value;   // local maximum
+			double value = my z [ifreq] [itime];   /* Power. */
+			value = (10.0/NUMln10) * log ((value + 1e-30) / 4.0e-10) + preemphasisFactor [ifreq];   /* dB */
+			if (value > dynamicFactor [itime]) dynamicFactor [itime] = value;   /* Local maximum. */
 			my z [ifreq] [itime] = value;
 		}
 	}
@@ -113,28 +113,28 @@ void Spectrogram_paint (Spectrogram me, Graphics g,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_marksLeft (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Frequency (Hz)");
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 0);
+		Graphics_marksLeft (g, 2, 1, 1, 0);
+		Graphics_textLeft (g, 1, U"Frequency (Hz)");
 	}
 }
 
-autoSpectrogram Matrix_to_Spectrogram (Matrix me) {
+Spectrogram Matrix_to_Spectrogram (Matrix me) {
 	try {
 		autoSpectrogram thee = Spectrogram_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrogram.");
 	}
 }
 
-autoMatrix Spectrogram_to_Matrix (Spectrogram me) {
+Matrix Spectrogram_to_Matrix (Spectrogram me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMmatrix_copyElements (my z, thy z, 1, my ny, 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
diff --git a/fon/Spectrogram.h b/fon/Spectrogram.h
index 7dcbbe2..9dd4edb 100644
--- a/fon/Spectrogram.h
+++ b/fon/Spectrogram.h
@@ -42,7 +42,7 @@ Thing_define (Spectrogram, Matrix) {
 	z [iy] [ix]		// Power spectrum density.
 */
 
-autoSpectrogram Spectrogram_create (double tmin, double tmax, long nt, double dt, double t1,
+Spectrogram Spectrogram_create (double tmin, double tmax, long nt, double dt, double t1,
 					double fmin, double fmax, long nf, double df, double f1);
 /*
 	Function:
@@ -83,16 +83,18 @@ void Spectrogram_paint (Spectrogram me, Graphics g,
 			a boolean that determines if a box, ticks, numbers, and text are written in the margins.
 */
 
-autoSpectrogram Matrix_to_Spectrogram (Matrix me);
+Spectrogram Matrix_to_Spectrogram (Matrix me);
 /*
 	Create a Spectrogram from a Matrix,
 	with deep copy of all its attributes, except class information and methods.
+	Return NULL if out of memory.  
 */
 
-autoMatrix Spectrogram_to_Matrix (Spectrogram me);
+Matrix Spectrogram_to_Matrix (Spectrogram me);
 /*
 	Create a Matrix from a Spectrogram,
 	with deep copy of all its attributes, except class information and methods.
+	Return NULL if out of memory.  
 */
 
 /* End of file Spectrogram.h */
diff --git a/fon/SpectrogramEditor.cpp b/fon/SpectrogramEditor.cpp
index 5fa512a..5a5f1d4 100644
--- a/fon/SpectrogramEditor.cpp
+++ b/fon/SpectrogramEditor.cpp
@@ -1,6 +1,6 @@
 /* SpectrogramEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,11 +24,11 @@ Thing_implement (SpectrogramEditor, FunctionEditor, 0);
 void structSpectrogramEditor :: v_draw () {
 	Spectrogram spectrogram = (Spectrogram) our data;
 
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
+	Graphics_rectangle (our d_graphics, 0, 1, 0, 1);
 
 	long itmin, itmax;
 	Sampled_getWindowSamples (spectrogram, our d_startWindow, our d_endWindow, & itmin, & itmax);
@@ -38,34 +38,34 @@ void structSpectrogramEditor :: v_draw () {
 	 */
 	our maximum = spectrogram -> ymax;
 
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0.0, our maximum);
-	Spectrogram_paintInside (spectrogram, our d_graphics.get(), our d_startWindow, our d_endWindow, 0, 0, 0.0, true,
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, 0.0, our maximum);
+	Spectrogram_paintInside (spectrogram, our d_graphics, our d_startWindow, our d_endWindow, 0, 0, 0.0, TRUE,
 		 60, 6.0, 0);
 
 	/*
 	 * Horizontal scaling lines.
 	 */
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, our maximum);
-	Graphics_setTextAlignment (our d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-	Graphics_setColour (our d_graphics.get(), Graphics_RED);
+	Graphics_setWindow (our d_graphics, 0.0, 1.0, 0.0, our maximum);
+	Graphics_setTextAlignment (our d_graphics, Graphics_RIGHT, Graphics_HALF);
+	Graphics_setColour (our d_graphics, Graphics_RED);
 	long df = 1000;
 	for (long f = df; f <= our maximum; f += df) {
-		Graphics_line (our d_graphics.get(), 0.0, f, 1.0, f);
-		Graphics_text (our d_graphics.get(), -0.01, f,   f, U" Hz");
+		Graphics_line (our d_graphics, 0.0, f, 1.0, f);
+		Graphics_text (our d_graphics, -0.01, f,   f, U" Hz");
 	}
 
 	/*
 	 * Vertical cursor lines.
 	 */
-	Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, 0.0, our maximum);
+	Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, 0.0, our maximum);
 	if (our d_startSelection > our d_startWindow && our d_startSelection < our d_endWindow)
-		Graphics_line (our d_graphics.get(), our d_startSelection, 0, our d_startSelection, our maximum);
+		Graphics_line (our d_graphics, our d_startSelection, 0, our d_startSelection, our maximum);
 	if (our d_endSelection > our d_startWindow && d_endSelection < d_endWindow)
-		Graphics_line (our d_graphics.get(), our d_endSelection, 0, our d_endSelection, our maximum);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
+		Graphics_line (our d_graphics, our d_endSelection, 0, our d_endSelection, our maximum);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
 }
 
-bool structSpectrogramEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structSpectrogramEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	Spectrogram spectrogram = (Spectrogram) our data;
 	/*double frequency = yWC * our maximum;*/
 	long bestFrame;
@@ -77,12 +77,12 @@ bool structSpectrogramEditor :: v_click (double xWC, double yWC, bool shiftKeyPr
 	return our SpectrogramEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);
 }
 
-autoSpectrogramEditor SpectrogramEditor_create (const char32 *title, Spectrogram data) {
+SpectrogramEditor SpectrogramEditor_create (const char32 *title, Spectrogram data) {
 	try {
 		autoSpectrogramEditor me = Thing_new (SpectrogramEditor);
-		FunctionEditor_init (me.get(), title, data);
+		FunctionEditor_init (me.peek(), title, data);
 		my maximum = 10000.0;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Spectrogram window not created.");
 	}
diff --git a/fon/SpectrogramEditor.h b/fon/SpectrogramEditor.h
index 4abddeb..70039ba 100644
--- a/fon/SpectrogramEditor.h
+++ b/fon/SpectrogramEditor.h
@@ -27,11 +27,11 @@ Thing_define (SpectrogramEditor, FunctionEditor) {
 
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 };
 
-autoSpectrogramEditor SpectrogramEditor_create (const char32 *title, Spectrogram data);
+SpectrogramEditor SpectrogramEditor_create (const char32 *title, Spectrogram data);
 
 /* End of file SpectrogramEditor.h */
 #endif
diff --git a/fon/Spectrum.cpp b/fon/Spectrum.cpp
index 387a97b..19a37a3 100644
--- a/fon/Spectrum.cpp
+++ b/fon/Spectrum.cpp
@@ -1,6 +1,6 @@
 /* Spectrum.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,7 +49,7 @@
 Thing_implement (Spectrum, Matrix, 2);
 
 void structSpectrum :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Frequency domain:");
 	MelderInfo_writeLine (U"   Lowest frequency: ", xmin, U" Hz");
 	MelderInfo_writeLine (U"   Highest frequency: ", xmax, U" Hz");
@@ -76,31 +76,31 @@ double structSpectrum :: v_getValueAtSample (long isamp, long which, int units)
 		if (units == 1) {
 			return energyDensity;
 		} else {
-			double powerDensity = energyDensity * dx;   // Pa^2 Hz-2 s-1, after division by approximate duration
+			double powerDensity = energyDensity * dx;   /* Pa^2 Hz-2 s-1, after division by approximate duration */
 			if (units == 2) {
 				/* "dB/Hz" */
-				return powerDensity == 0.0 ? -300.0 : 10.0 * log10 (powerDensity / 4.0e-10);
+				return powerDensity == 0.0 ? -300.0 : 10 * log10 (powerDensity / 4.0e-10);
 			}
 		}
 	}
 	return NUMundefined;
 }
 
-autoSpectrum Spectrum_create (double fmax, long nf) {
+Spectrum Spectrum_create (double fmax, long nf) {
 	try {
 		autoSpectrum me = Thing_new (Spectrum);
-		Matrix_init (me.get(), 0.0, fmax, nf, fmax / (nf - 1), 0.0, 1.0, 2.0, 2, 1.0, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0.0, fmax, nf, fmax / (nf - 1), 0.0, 1, 2, 2, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Spectrum not created.");
 	}
 }
 
 int Spectrum_getPowerDensityRange (Spectrum me, double *minimum, double *maximum) {
-	*minimum = 1e308, *maximum = 0.0;
+	*minimum = 1e300, *maximum = 0;
 	for (long ifreq = 1; ifreq <= my nx; ifreq ++) {
-		double oneSidedPowerSpectralDensity =   // Pa2 Hz-2 s-1
-			2.0 * (my z [1] [ifreq] * my z [1] [ifreq] + my z [2] [ifreq] * my z [2] [ifreq]) * my dx;
+		double oneSidedPowerSpectralDensity =   /* Pa2 Hz-2 s-1 */
+			2 * (my z [1] [ifreq] * my z [1] [ifreq] + my z [2] [ifreq] * my z [2] [ifreq]) * my dx;
 		if (oneSidedPowerSpectralDensity < *minimum) *minimum = oneSidedPowerSpectralDensity;
 		if (oneSidedPowerSpectralDensity > *maximum) *maximum = oneSidedPowerSpectralDensity;
 	}
@@ -111,7 +111,7 @@ int Spectrum_getPowerDensityRange (Spectrum me, double *minimum, double *maximum
 }
 
 void Spectrum_drawInside (Spectrum me, Graphics g, double fmin, double fmax, double minimum, double maximum) {
-	bool autoscaling = ( minimum >= maximum );
+	int autoscaling = minimum >= maximum;
 
 	if (fmax <= fmin) { fmin = my xmin; fmax = my xmax; }
 	long ifmin, ifmax;
@@ -122,22 +122,13 @@ void Spectrum_drawInside (Spectrum me, Graphics g, double fmin, double fmax, dou
 	/*
 	 * First pass: compute power density.
 	 */
-	if (autoscaling) maximum = -1e308;
+	if (autoscaling) maximum = -1e30;
 	for (long ifreq = ifmin; ifreq <= ifmax; ifreq ++) {
 		double y = my v_getValueAtSample (ifreq, 0, 2);
 		if (autoscaling && y > maximum) maximum = y;
 		yWC [ifreq] = y;
 	}
-	if (autoscaling) {
-		constexpr double defaultDynamicRange_dB { 60.0 };
-		minimum = maximum - defaultDynamicRange_dB;
-		if (minimum == maximum) {   // because infinity minus something is still infinity
-			Graphics_setWindow (g, 0.0, 1.0, 0.0, 1.0);
-			Graphics_setTextAlignment (g, kGraphics_horizontalAlignment_CENTRE, Graphics_HALF);
-			Graphics_text (g, 0.5, 0.5, U"(undefined spectrum values cannot be drawn)");
-			return;
-		}
-	}
+	if (autoscaling) minimum = maximum - 60;   /* Default dynamic range is 60 dB. */
 
 	/*
 	 * Second pass: clip.
@@ -157,15 +148,15 @@ void Spectrum_draw (Spectrum me, Graphics g, double fmin, double fmax, double mi
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency (Hz)");
+		Graphics_textBottom (g, 1, U"Frequency (Hz)");
 		Graphics_marksBottom (g, 2, true, true, false);
-		Graphics_textLeft (g, true, U"Sound pressure level (dB/Hz)");
+		Graphics_textLeft (g, 1, U"Sound pressure level (dB/Hz)");
 		Graphics_marksLeftEvery (g, 1.0, 20.0, true, true, false);
 	}
 }
 
 void Spectrum_drawLogFreq (Spectrum me, Graphics g, double fmin, double fmax, double minimum, double maximum, int garnish) {
-	bool autoscaling = ( minimum >= maximum );
+	int autoscaling = minimum >= maximum;
 	if (fmax <= fmin) { fmin = my xmin; fmax = my xmax; }
 	long ifmin, ifmax;
 	if (! Matrix_getWindowSamplesX (me, fmin, fmax, & ifmin, & ifmax)) return;
@@ -198,36 +189,36 @@ if(ifmin==1)ifmin=2;  /* BUG */
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency (Hz)");
-		Graphics_marksBottomLogarithmic (g, 3, true, true, false);
-		Graphics_textLeft (g, true, U"Sound pressure level (dB/Hz)");
-		Graphics_marksLeftEvery (g, 1.0, 20.0, true, true, false);
+		Graphics_textBottom (g, 1, U"Frequency (Hz)");
+		Graphics_marksBottomLogarithmic (g, 3, TRUE, TRUE, FALSE);
+		Graphics_textLeft (g, 1, U"Sound pressure level (dB/Hz)");
+		Graphics_marksLeftEvery (g, 1.0, 20.0, TRUE, TRUE, FALSE);
 	}
 }
 
-autoTable Spectrum_downto_Table (Spectrum me, bool includeBinNumbers, bool includeFrequency,
+Table Spectrum_downto_Table (Spectrum me, bool includeBinNumbers, bool includeFrequency,
 	bool includeRealPart, bool includeImaginaryPart, bool includeEnergyDensity, bool includePowerDensity)
 {
 	try {
 		autoTable thee = Table_createWithoutColumnNames (my nx,
 			includeBinNumbers + includeFrequency + includeRealPart + includeImaginaryPart + includeEnergyDensity + includePowerDensity);
 		long icol = 0;
-		if (includeBinNumbers) Table_setColumnLabel (thee.get(), ++ icol, U"bin");
-		if (includeFrequency) Table_setColumnLabel (thee.get(), ++ icol, U"freq(Hz)");
-		if (includeRealPart) Table_setColumnLabel (thee.get(), ++ icol, U"re(Pa/Hz)");
-		if (includeImaginaryPart) Table_setColumnLabel (thee.get(), ++ icol, U"im(Pa/Hz)");
-		if (includeEnergyDensity) Table_setColumnLabel (thee.get(), ++ icol, U"energy(Pa^2/Hz^2)");
-		if (includePowerDensity) Table_setColumnLabel (thee.get(), ++ icol, U"pow(dB/Hz)");
+		if (includeBinNumbers) Table_setColumnLabel (thee.peek(), ++ icol, U"bin");
+		if (includeFrequency) Table_setColumnLabel (thee.peek(), ++ icol, U"freq(Hz)");
+		if (includeRealPart) Table_setColumnLabel (thee.peek(), ++ icol, U"re(Pa/Hz)");
+		if (includeImaginaryPart) Table_setColumnLabel (thee.peek(), ++ icol, U"im(Pa/Hz)");
+		if (includeEnergyDensity) Table_setColumnLabel (thee.peek(), ++ icol, U"energy(Pa^2/Hz^2)");
+		if (includePowerDensity) Table_setColumnLabel (thee.peek(), ++ icol, U"pow(dB/Hz)");
 		for (long ibin = 1; ibin <= my nx; ibin ++) {
 			icol = 0;
-			if (includeBinNumbers) Table_setNumericValue (thee.get(), ibin, ++ icol, ibin);
-			if (includeFrequency) Table_setNumericValue (thee.get(), ibin, ++ icol, my x1 + (ibin - 1) * my dx);
-			if (includeRealPart) Table_setNumericValue (thee.get(), ibin, ++ icol, my z [1] [ibin]);
-			if (includeImaginaryPart) Table_setNumericValue (thee.get(), ibin, ++ icol, my z [2] [ibin]);
-			if (includeEnergyDensity) Table_setNumericValue (thee.get(), ibin, ++ icol, Sampled_getValueAtSample (me, ibin, 0, 1));
-			if (includePowerDensity) Table_setNumericValue (thee.get(), ibin, ++ icol, Sampled_getValueAtSample (me, ibin, 0, 2));
+			if (includeBinNumbers) Table_setNumericValue (thee.peek(), ibin, ++ icol, ibin);
+			if (includeFrequency) Table_setNumericValue (thee.peek(), ibin, ++ icol, my x1 + (ibin - 1) * my dx);
+			if (includeRealPart) Table_setNumericValue (thee.peek(), ibin, ++ icol, my z [1] [ibin]);
+			if (includeImaginaryPart) Table_setNumericValue (thee.peek(), ibin, ++ icol, my z [2] [ibin]);
+			if (includeEnergyDensity) Table_setNumericValue (thee.peek(), ibin, ++ icol, Sampled_getValueAtSample (me, ibin, 0, 1));
+			if (includePowerDensity) Table_setNumericValue (thee.peek(), ibin, ++ icol, Sampled_getValueAtSample (me, ibin, 0, 2));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
@@ -239,35 +230,35 @@ void Spectrum_list (Spectrum me, bool includeBinNumbers, bool includeFrequency,
 	try {
 		autoTable table = Spectrum_downto_Table (me, includeBinNumbers, includeFrequency,
 			includeRealPart, includeImaginaryPart, includeEnergyDensity, includePowerDensity);
-		Table_list (table.get(), false);
+		Table_list (table.peek(), false);
 	} catch (MelderError) {
 		Melder_throw (me, U": not listed.");
 	}
 }
 
-autoSpectrum Matrix_to_Spectrum (Matrix me) {
+Spectrum Matrix_to_Spectrum (Matrix me) {
 	try {
 		if (my ny != 2)
-			Melder_throw (U"The Matrix should have exactly 2 rows.");
+			Melder_throw (U"Matrix must have exactly 2 rows.");
 		autoSpectrum thee = Thing_new (Spectrum);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrum.");
 	}
 }
 
-autoMatrix Spectrum_to_Matrix (Spectrum me) {
+Matrix Spectrum_to_Matrix (Spectrum me) {
 	try {
 		autoMatrix thee = Thing_new (Matrix);
-		my structMatrix :: v_copy (thee.get());
-		return thee;
+		my structMatrix :: v_copy (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
+Spectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
 	try {
 		/*
 		 * dB-spectrum is log (power).
@@ -275,14 +266,14 @@ autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
 		autoSpectrum dBspectrum = Data_copy (me);
 		double *re = dBspectrum -> z [1], *im = dBspectrum -> z [2];
 		for (long i = 1; i <= dBspectrum -> nx; i ++) {
-			re [i] = log (re [i] * re [i] + im [i] * im [i] + 1e-308);
+			re [i] = log (re [i] * re [i] + im [i] * im [i] + 1e-300);
 			im [i] = 0.0;
 		}
 
 		/*
 		 * Cepstrum is Fourier transform of dB-spectrum.
 		 */
-		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.get());
+		autoSound cepstrum = Spectrum_to_Sound (dBspectrum.peek());
 
 		/*
 		 * Multiply cepstrum by a Gaussian.
@@ -290,13 +281,13 @@ autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
 		double factor = - bandWidth * bandWidth;
 		for (long i = 1; i <= cepstrum -> nx; i ++) {
 			double t = (i - 1) * cepstrum -> dx;
-			cepstrum -> z [1] [i] *= exp (factor * t * t) * ( i == 1 ? 1.0 : 2.0 );
+			cepstrum -> z [1] [i] *= exp (factor * t * t) * ( i == 1 ? 1 : 2 );
 		}
 
 		/*
 		 * Smoothed power spectrum is original power spectrum convolved with a Gaussian.
 		 */
-		autoSpectrum thee = Sound_to_Spectrum (cepstrum.get(), true);
+		autoSpectrum thee = Sound_to_Spectrum (cepstrum.peek(), TRUE);
 
 		/*
 		 * Convert power spectrum back into a "complex" spectrum without phase information.
@@ -306,7 +297,7 @@ autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
 			re [i] = exp (0.5 * re [i]);   // i.e., sqrt (exp (re [i]))
 			im [i] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": cepstral smoothing not computed.");
 	}
@@ -315,7 +306,7 @@ autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth) {
 void Spectrum_passHannBand (Spectrum me, double fmin, double fmax0, double smooth) {
 	double fmax = fmax0 == 0.0 ? my xmax : fmax0;
 	double f1 = fmin - smooth, f2 = fmin + smooth, f3 = fmax - smooth, f4 = fmax + smooth;
-	double halfpibysmooth = smooth != 0.0 ? NUMpi / (2.0 * smooth) : 0.0;
+	double halfpibysmooth = smooth != 0.0 ? NUMpi / (2 * smooth) : 0.0;
 	double *re = my z [1], *im = my z [2];
 	for (long i = 1; i <= my nx; i ++) {
 		double frequency = my x1 + (i - 1) * my dx;
@@ -335,7 +326,7 @@ void Spectrum_passHannBand (Spectrum me, double fmin, double fmax0, double smoot
 void Spectrum_stopHannBand (Spectrum me, double fmin, double fmax0, double smooth) {
 	double fmax = fmax0 == 0.0 ? my xmax : fmax0;
 	double f1 = fmin - smooth, f2 = fmin + smooth, f3 = fmax - smooth, f4 = fmax + smooth;
-	double halfpibysmooth = smooth != 0.0 ? NUMpi / (2.0 * smooth) : 0.0;
+	double halfpibysmooth = smooth != 0.0 ? NUMpi / (2 * smooth) : 0.0;
 	double *re = my z [1], *im = my z [2];
 	for (long i = 1; i <= my nx; i ++) {
 		double frequency = my x1 + (i - 1) * my dx;
@@ -375,12 +366,12 @@ double Spectrum_getBandEnergy (Spectrum me, double fmin, double fmax) {
 	 *
 	 * All this truncation is automatically performed by Sampled_getMean ().
 	 */
-	return Sampled_getIntegral (me, fmin, fmax, 0, 1, false);
+	return Sampled_getIntegral (me, fmin, fmax, 0, 1, FALSE);
 }
 
 double Spectrum_getBandDensity (Spectrum me, double fmin, double fmax) {
-	if (my xmin < 0.0) return NUMundefined;   // no negative frequencies allowed in one-sided spectral density
-	return Sampled_getMean (me, fmin, fmax, 0, 1, false);
+	if (my xmin < 0.0) return NUMundefined;   /* No negative frequencies allowed in one-sided spectral density. */
+	return Sampled_getMean (me, fmin, fmax, 0, 1, FALSE);
 }
 
 double Spectrum_getBandDensityDifference (Spectrum me, double lowBandMin, double lowBandMax, double highBandMin, double highBandMax) {
@@ -396,7 +387,7 @@ double Spectrum_getBandEnergyDifference (Spectrum me, double lowBandMin, double
 	double highBandEnergy = Spectrum_getBandEnergy (me, highBandMin, highBandMax);
 	if (lowBandEnergy == NUMundefined || highBandEnergy == NUMundefined) return NUMundefined;
 	if (lowBandEnergy == 0.0 || highBandEnergy == 0.0) return NUMundefined;
-	return 10.0 * log10 (highBandEnergy / lowBandEnergy);
+	return 10 * log10 (highBandEnergy / lowBandEnergy);
 }
 
 double Spectrum_getCentreOfGravity (Spectrum me, double power) {
@@ -432,24 +423,24 @@ double Spectrum_getStandardDeviation (Spectrum me, double power) {
 double Spectrum_getSkewness (Spectrum me, double power) {
 	double m2 = Spectrum_getCentralMoment (me, 2.0, power);
 	double m3 = Spectrum_getCentralMoment (me, 3.0, power);
-	if (m2 == NUMundefined || m3 == NUMundefined || m2 == 0.0) return NUMundefined;
+	if (m2 == NUMundefined || m3 == NUMundefined || m2 == 0) return NUMundefined;
 	return m3 / (m2 * sqrt (m2));
 }
 
 double Spectrum_getKurtosis (Spectrum me, double power) {
 	double m2 = Spectrum_getCentralMoment (me, 2.0, power);
 	double m4 = Spectrum_getCentralMoment (me, 4.0, power);
-	if (m2 == NUMundefined || m4 == NUMundefined || m2 == 0.0) return NUMundefined;
+	if (m2 == NUMundefined || m4 == NUMundefined || m2 == 0) return NUMundefined;
 	return m4 / (m2 * m2) - 3;
 }
 
 void Spectrum_getNearestMaximum (Spectrum me, double frequency, double *frequencyOfMaximum, double *heightOfMaximum) {
 	try {
 		autoSpectrumTier thee = Spectrum_to_SpectrumTier_peaks (me);
-		long index = AnyTier_timeToNearestIndex (thee.get()->asAnyTier(), frequency);
+		long index = AnyTier_timeToNearestIndex (thee.peek(), frequency);
 		if (index == 0)
 			Melder_throw (U"No peak.");
-		RealPoint point = thy points.at [index];
+		RealPoint point = (RealPoint) thy points -> item [index];
 		*frequencyOfMaximum = point -> number;
 		*heightOfMaximum = point -> value;
 	} catch (MelderError) {
diff --git a/fon/Spectrum.h b/fon/Spectrum.h
index ed6e695..b542391 100644
--- a/fon/Spectrum.h
+++ b/fon/Spectrum.h
@@ -2,7 +2,7 @@
 #define _Spectrum_h_
 /* Spectrum.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
 #include "Graphics.h"
 
 #include "Spectrum_def.h"
+oo_CLASS_CREATE (Spectrum, Matrix);
 
 /*
 	xmin            // lowest frequency (Hz)
@@ -33,13 +34,13 @@
 	nx              // number of frequencies
 	dx              // frequency step (Hz)
 	x1              // first frequency (Hz)
-	ymin = 1.0      // first row: real part
-	ymax = 2.0      // second row: imaginary part
+	ymin = 1        // first row: real part
+	ymax = 2        // second row: imaginary part
 	ny = 2          // two rows
-	dy = y1 = 1.0   // y is row number
+	dy = 1; y1 = 1  // y is row number
 */
 
-autoSpectrum Spectrum_create (double fmax, long nf);
+Spectrum Spectrum_create (double fmax, long nf);
 /* Preconditions:
 		fmax > 0.0;
 		nf >= 2;
@@ -57,9 +58,9 @@ autoSpectrum Spectrum_create (double fmax, long nf);
 		my z [1..ny] [1..nx] == 0.0;
 */
 		
-int Spectrum_getPowerDensityRange (Spectrum me, double *minimum, double *maximum);   // return 0 if all zeroes
-double Spectrum_getBandDensity (Spectrum me, double fmin, double fmax);   // Pa2 / Hz2
-double Spectrum_getBandEnergy (Spectrum me, double fmin, double fmax);   // Pa2 sec
+int Spectrum_getPowerDensityRange (Spectrum me, double *minimum, double *maximum);   /* Return 0 if all zeroes. */
+double Spectrum_getBandDensity (Spectrum me, double fmin, double fmax);   /* Pa2 / Hz2 */
+double Spectrum_getBandEnergy (Spectrum me, double fmin, double fmax);   /* Pa2 sec */
 double Spectrum_getBandDensityDifference (Spectrum me,
 	double lowBandMin, double lowBandMax, double highBandMin, double HighBandMax);
 double Spectrum_getBandEnergyDifference (Spectrum me,
@@ -88,16 +89,16 @@ void Spectrum_draw (Spectrum me, Graphics g, double fmin, double fmax, double mi
 */
 void Spectrum_drawLogFreq (Spectrum me, Graphics g, double fmin, double fmax, double minimum, double maximum, int garnish);
 
-autoTable Spectrum_downto_Table (Spectrum me, bool includeBinNumbers, bool includeFrequency,
+Table Spectrum_downto_Table (Spectrum me, bool includeBinNumbers, bool includeFrequency,
 	bool includeRealPart, bool includeImaginaryPart, bool includeEnergyDensity, bool includePowerDensity);
 void Spectrum_list (Spectrum me, bool includeBinNumbers, bool includeFrequency,
 	bool includeRealPart, bool includeImaginaryPart, bool includeEnergyDensity, bool includePowerDensity);
 
-autoSpectrum Matrix_to_Spectrum (Matrix me);
+Spectrum Matrix_to_Spectrum (Matrix me);
 
-autoMatrix Spectrum_to_Matrix (Spectrum me);
+Matrix Spectrum_to_Matrix (Spectrum me);
 
-autoSpectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth);
+Spectrum Spectrum_cepstralSmoothing (Spectrum me, double bandWidth);
 
 void Spectrum_passHannBand (Spectrum me, double fmin, double fmax, double smooth);
 void Spectrum_stopHannBand (Spectrum me, double fmin, double fmax, double smooth);
diff --git a/fon/SpectrumEditor.cpp b/fon/SpectrumEditor.cpp
index 34040bc..89e8cf0 100644
--- a/fon/SpectrumEditor.cpp
+++ b/fon/SpectrumEditor.cpp
@@ -1,6 +1,6 @@
 /* SpectrumEditor.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ static void updateRange (SpectrumEditor me) {
 	if (Spectrum_getPowerDensityRange ((Spectrum) my data, & my minimum, & my maximum)) {
 		my minimum = my maximum - my p_dynamicRange;
 	} else {
-		my minimum = -1000.0, my maximum = 1000.0;
+		my minimum = -1000, my maximum = 1000;
 	}
 }
 
@@ -46,17 +46,17 @@ void structSpectrumEditor :: v_dataChanged () {
 void structSpectrumEditor :: v_draw () {
 	Spectrum spectrum = (Spectrum) our data;
 
-	Graphics_setWindow (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (our d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Spectrum_drawInside (spectrum, our d_graphics.get(), our d_startWindow, our d_endWindow, our minimum, our maximum);
+	Graphics_setWindow (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (our d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
+	Graphics_rectangle (our d_graphics, 0, 1, 0, 1);
+	Spectrum_drawInside (spectrum, our d_graphics, our d_startWindow, our d_endWindow, our minimum, our maximum);
 	FunctionEditor_drawRangeMark (this, our maximum, Melder_fixed (maximum, 1), U" dB", Graphics_TOP);
 	FunctionEditor_drawRangeMark (this, our minimum, Melder_fixed (minimum, 1), U" dB", Graphics_BOTTOM);
 	if (our cursorHeight > our minimum && our cursorHeight < our maximum)
 		FunctionEditor_drawHorizontalHair (this, our cursorHeight, Melder_fixed (our cursorHeight, 1), U" dB");
-	Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
+	Graphics_setColour (our d_graphics, Graphics_BLACK);
 
 	/* Update buttons. */
 
@@ -66,43 +66,45 @@ void structSpectrumEditor :: v_draw () {
 	GuiThing_setSensitive (our publishSoundButton, selectedSamples != 0);
 }
 
-bool structSpectrumEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
+int structSpectrumEditor :: v_click (double xWC, double yWC, bool shiftKeyPressed) {
 	our cursorHeight = our minimum + yWC * (our maximum - our minimum);
 	return our SpectrumEditor_Parent :: v_click (xWC, yWC, shiftKeyPressed);   // move cursor or drag selection
 }
 
-static autoSpectrum Spectrum_band (Spectrum me, double fmin, double fmax) {
+static Spectrum Spectrum_band (Spectrum me, double fmin, double fmax) {
 	autoSpectrum band = Data_copy (me);
 	double *re = band -> z [1], *im = band -> z [2];
-	long imin = Sampled_xToLowIndex (band.get(), fmin);
-	long imax = Sampled_xToHighIndex (band.get(), fmax);
+	long imin = Sampled_xToLowIndex (band.peek(), fmin), imax = Sampled_xToHighIndex (band.peek(), fmax);
 	for (long i = 1; i <= imin; i ++) re [i] = 0.0, im [i] = 0.0;
 	for (long i = imax; i <= band -> nx; i ++) re [i] = 0.0, im [i] = 0.0;
-	return band;
+	return band.transfer();
 }
 
-static autoSound Spectrum_to_Sound_part (Spectrum me, double fmin, double fmax) {
+static Sound Spectrum_to_Sound_part (Spectrum me, double fmin, double fmax) {
 	autoSpectrum band = Spectrum_band (me, fmin, fmax);
-	autoSound sound = Spectrum_to_Sound (band.get());
-	return sound;
+	autoSound sound = Spectrum_to_Sound (band.peek());
+	return sound.transfer();
 }
 
 void structSpectrumEditor :: v_play (double fmin, double fmax) {
 	autoSound sound = Spectrum_to_Sound_part ((Spectrum) our data, fmin, fmax);
-	Sound_play (sound.get(), nullptr, nullptr);
+	Sound_play (sound.peek(), NULL, NULL);
 }
 
-static void menu_cb_publishBand (SpectrumEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_publishBand (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
 	autoSpectrum publish = Spectrum_band ((Spectrum) my data, my d_startSelection, my d_endSelection);
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_publishSound (SpectrumEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_publishSound (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
 	autoSound publish = Spectrum_to_Sound_part ((Spectrum) my data, my d_startSelection, my d_endSelection);
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_passBand (SpectrumEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_passBand (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
 	EDITOR_FORM (U"Filter (pass Hann band)", U"Spectrum: Filter (pass Hann band)...");
 		REAL (U"Band smoothing (Hz)", my default_bandSmoothing ())
 	EDITOR_OK
@@ -117,8 +119,9 @@ static void menu_cb_passBand (SpectrumEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_stopBand (SpectrumEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Filter (stop Hann band)", nullptr)
+static void menu_cb_stopBand (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
+	EDITOR_FORM (U"Filter (stop Hann band)", 0)
 		REAL (U"Band smoothing (Hz)", my default_bandSmoothing ())
 	EDITOR_OK
 		SET_REAL (U"Band smoothing", my p_bandSmoothing)
@@ -132,7 +135,8 @@ static void menu_cb_stopBand (SpectrumEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_moveCursorToPeak (SpectrumEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveCursorToPeak (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
 	double frequencyOfMaximum, heightOfMaximum;
 	Spectrum_getNearestMaximum ((Spectrum) my data, 0.5 * (my d_startSelection + my d_endSelection), & frequencyOfMaximum, & heightOfMaximum);
 	my d_startSelection = my d_endSelection = frequencyOfMaximum;
@@ -140,8 +144,9 @@ static void menu_cb_moveCursorToPeak (SpectrumEditor me, EDITOR_ARGS_DIRECT) {
 	FunctionEditor_marksChanged (me, true);
 }
 
-static void menu_cb_setDynamicRange (SpectrumEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Set dynamic range", nullptr)
+static void menu_cb_setDynamicRange (EDITOR_ARGS) {
+	EDITOR_IAM (SpectrumEditor);
+	EDITOR_FORM (U"Set dynamic range", 0)
 		POSITIVE (U"Dynamic range (dB)", my default_dynamicRange ())
 	EDITOR_OK
 		SET_REAL (U"Dynamic range", my p_dynamicRange)
@@ -152,18 +157,18 @@ static void menu_cb_setDynamicRange (SpectrumEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_help_SpectrumEditor (SpectrumEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"SpectrumEditor"); }
-static void menu_cb_help_Spectrum (SpectrumEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Spectrum"); }
+static void menu_cb_help_SpectrumEditor (EDITOR_ARGS) { EDITOR_IAM (SpectrumEditor); Melder_help (U"SpectrumEditor"); }
+static void menu_cb_help_Spectrum (EDITOR_ARGS) { EDITOR_IAM (SpectrumEditor); Melder_help (U"Spectrum"); }
 
 void structSpectrumEditor :: v_createMenus () {
 	SpectrumEditor_Parent :: v_createMenus ();
 	our publishBandButton = Editor_addCommand (this, U"File", U"Publish band", 0, menu_cb_publishBand);
 	our publishSoundButton = Editor_addCommand (this, U"File", U"Publish band-filtered sound", 0, menu_cb_publishSound);
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
-	Editor_addCommand (this, U"Edit", U"-- edit band --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
+	Editor_addCommand (this, U"Edit", U"-- edit band --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Pass band...", 0, menu_cb_passBand);
 	Editor_addCommand (this, U"Edit", U"Stop band...", 0, menu_cb_stopBand);
-	Editor_addCommand (this, U"Select", U"-- move to peak --", 0, nullptr);
+	Editor_addCommand (this, U"Select", U"-- move to peak --", 0, 0);
 	Editor_addCommand (this, U"Select", U"Move cursor to nearest peak", 'K', menu_cb_moveCursorToPeak);
 }
 
@@ -179,13 +184,13 @@ void structSpectrumEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"Spectrum help", 0, menu_cb_help_Spectrum);
 }
 
-autoSpectrumEditor SpectrumEditor_create (const char32 *title, Spectrum data) {
+SpectrumEditor SpectrumEditor_create (const char32 *title, Spectrum data) {
 	try {
 		autoSpectrumEditor me = Thing_new (SpectrumEditor);
-		FunctionEditor_init (me.get(), title, data);
+		FunctionEditor_init (me.peek(), title, data);
 		my cursorHeight = -1000;
-		updateRange (me.get());
-		return me;
+		updateRange (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Spectrum window not created.");
 	}
diff --git a/fon/SpectrumEditor.h b/fon/SpectrumEditor.h
index 713e84e..a8d6e7b 100644
--- a/fon/SpectrumEditor.h
+++ b/fon/SpectrumEditor.h
@@ -34,7 +34,7 @@ Thing_define (SpectrumEditor, FunctionEditor) {
 		override;
 	void v_draw ()
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -60,7 +60,7 @@ Thing_define (SpectrumEditor, FunctionEditor) {
 	#include "SpectrumEditor_prefs.h"
 };
 
-autoSpectrumEditor SpectrumEditor_create (const char32 *title, Spectrum data);
+SpectrumEditor SpectrumEditor_create (const char32 *title, Spectrum data);
 
 /* End of file SpectrumEditor.h */
 #endif
diff --git a/fon/SpectrumTier.cpp b/fon/SpectrumTier.cpp
index 01e8dfb..9c9b7b0 100644
--- a/fon/SpectrumTier.cpp
+++ b/fon/SpectrumTier.cpp
@@ -1,6 +1,6 @@
 /* SpectrumTier.cpp
  *
- * Copyright (C) 2007-2012,2015,2016 Paul Boersma
+ * Copyright (C) 2007-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,21 +22,21 @@
 Thing_implement (SpectrumTier, RealTier, 0);
 
 void structSpectrumTier :: v_info () {
-	our structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Frequency domain:");
-	MelderInfo_writeLine (U"   Lowest frequency: ", our xmin, U" Hz");
-	MelderInfo_writeLine (U"   Highest frequency: ", our xmax, U" Hz");
-	MelderInfo_writeLine (U"   Total bandwidth: ", our xmax - our xmin, U" Hz");
-	MelderInfo_writeLine (U"Number of points: ", our points.size);
+	MelderInfo_writeLine (U"   Lowest frequency: ", xmin, U" Hz");
+	MelderInfo_writeLine (U"   Highest frequency: ", xmax, U" Hz");
+	MelderInfo_writeLine (U"   Total bandwidth: ", xmax - xmin, U" Hz");
+	MelderInfo_writeLine (U"Number of points: ", points -> size);
 	MelderInfo_writeLine (U"Minimum power value: ", RealTier_getMinimumValue (this), U" dB/Hz");
 	MelderInfo_writeLine (U"Maximum power value: ", RealTier_getMaximumValue (this), U" dB/Hz");
 }
 
-autoSpectrumTier SpectrumTier_create (double fmin, double fmax) {
+SpectrumTier SpectrumTier_create (double fmin, double fmax) {
 	try {
 		autoSpectrumTier me = Thing_new (SpectrumTier);
-		RealTier_init (me.get(), fmin, fmax);
-		return me;
+		RealTier_init (me.peek(), fmin, fmax);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"SpectrumTier not created.");
 	}
@@ -51,24 +51,24 @@ void SpectrumTier_draw (SpectrumTier me, Graphics g, double fmin, double fmax,
 void SpectrumTier_list (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity) {
 	try {
 		autoTable table = SpectrumTier_downto_Table (me, includeIndexes, includeFrequency, includePowerDensity);
-		Table_list (table.get(), false);
+		Table_list (table.peek(), false);
 	} catch (MelderError) {
 		Melder_throw (me, U": not listed.");
 	}
 }
 
-autoTable SpectrumTier_downto_Table (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity) {
+Table SpectrumTier_downto_Table (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity) {
 	return RealTier_downto_Table (me,
-		includeIndexes ? U"index" : nullptr,
-		includeFrequency ? U"freq(Hz)" : nullptr,
-		includePowerDensity ? U"pow(dB/Hz)" : nullptr);
+		includeIndexes ? U"index" : NULL,
+		includeFrequency ? U"freq(Hz)" : NULL,
+		includePowerDensity ? U"pow(dB/Hz)" : NULL);
 }
 
-autoSpectrumTier Spectrum_to_SpectrumTier_peaks (Spectrum me) {
+SpectrumTier Spectrum_to_SpectrumTier_peaks (Spectrum me) {
 	try {
 		autoLtas ltas = Spectrum_to_Ltas_1to1 (me);
-		autoSpectrumTier thee = Ltas_to_SpectrumTier_peaks (ltas.get());
-		return thee;
+		autoSpectrumTier thee = Ltas_to_SpectrumTier_peaks (ltas.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": peaks not converted to SpectrumTier.");
 	}
diff --git a/fon/SpectrumTier.h b/fon/SpectrumTier.h
index af51584..c47294e 100644
--- a/fon/SpectrumTier.h
+++ b/fon/SpectrumTier.h
@@ -34,12 +34,12 @@ Thing_define (SpectrumTier, RealTier) {
 		override { return U"Frequency (Hz)"; }
 };
 
-autoSpectrumTier SpectrumTier_create (double fmin, double fmax);
+SpectrumTier SpectrumTier_create (double fmin, double fmax);
 /*
 	Postconditions:
 		result -> xmin == fmin;
 		result -> xmax == fmax;
-		result -> points.size == 0;
+		result -> points -> size == 0;
 */
 
 void SpectrumTier_draw (SpectrumTier me, Graphics g, double fmin, double fmax,
@@ -47,9 +47,9 @@ void SpectrumTier_draw (SpectrumTier me, Graphics g, double fmin, double fmax,
 
 void SpectrumTier_list (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity);
 
-autoTable SpectrumTier_downto_Table (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity);
+Table SpectrumTier_downto_Table (SpectrumTier me, bool includeIndexes, bool includeFrequency, bool includePowerDensity);
 
-autoSpectrumTier Spectrum_to_SpectrumTier_peaks (Spectrum me);
+SpectrumTier Spectrum_to_SpectrumTier_peaks (Spectrum me);
 
 /* End of file SpectrumTier.h */
 #endif
diff --git a/fon/Spectrum_and_Spectrogram.cpp b/fon/Spectrum_and_Spectrogram.cpp
index 266aec8..1a8fb6d 100644
--- a/fon/Spectrum_and_Spectrogram.cpp
+++ b/fon/Spectrum_and_Spectrogram.cpp
@@ -25,7 +25,8 @@
 
 #include "Spectrum_and_Spectrogram.h"
 
-autoSpectrum Spectrogram_to_Spectrum (Spectrogram me, double tim) {
+Spectrum Spectrogram_to_Spectrum (I, double tim) {
+	iam (Spectrogram);
 	try {
 		autoSpectrum thee = Spectrum_create (my ymax, my ny);
 		/* Override stupid Spectrum values. */
@@ -43,18 +44,19 @@ autoSpectrum Spectrogram_to_Spectrum (Spectrogram me, double tim) {
 			thy z [1] [ifreq] = sqrt (value);
 			thy z [2] [ifreq] = 0.0;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": spectral slice not extracted.");
 	}
 }
 
-autoSpectrogram Spectrum_to_Spectrogram (Spectrum me) {
+Spectrogram Spectrum_to_Spectrogram (I) {
+	iam (Spectrum);
 	try {
 		autoSpectrogram thee = Spectrogram_create (0, 1, 1, 1, 0.5, my xmin, my xmax, my nx, my dx, my x1);
 		for (long i = 1; i <= my nx; i ++)
 			thy z [i] [1] = my z [1] [i] * my z [1] [i] + my z [2] [i] * my z [2] [i];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrogram.");
 	}
diff --git a/fon/Spectrum_and_Spectrogram.h b/fon/Spectrum_and_Spectrogram.h
index 3273650..25bfae8 100644
--- a/fon/Spectrum_and_Spectrogram.h
+++ b/fon/Spectrum_and_Spectrogram.h
@@ -1,6 +1,6 @@
 /* Spectrum_and_Spectrogram.h
  *
- * Copyright (C) 1992-2011,2015 David Weenink & Paul Boersma
+ * Copyright (C) 1992-2011 David Weenink & Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,10 +20,11 @@
 #include "Spectrum.h"
 #include "Spectrogram.h"
 
-autoSpectrum Spectrogram_to_Spectrum (Spectrogram me, double time);
+Spectrum Spectrogram_to_Spectrum (I, double time);
 /*
 	Function:
 		Create a time slice from the Spectrogram at the time nearest to 'time'.
+		Return NULL in case of failure (no memory).
 	Postconditions:
 		result -> xmin == my ymin;   // Lowest frequency; often 0.
 		result -> xmax == my ymax;   // Highest frequency.
@@ -36,10 +37,11 @@ autoSpectrum Spectrogram_to_Spectrum (Spectrogram me, double time);
 		}
 */
  
-autoSpectrogram Spectrum_to_Spectrogram (Spectrum me);
+Spectrogram Spectrum_to_Spectrogram (I);
 /*
 	Function:
 		Create a Spectrogram with one time slice from the Spectrum.
+		Return NULL in case of failure (no memory).
 	Postconditions:
 		thy xmin = 0.0;			thy ymin == my xmin;
 		thy xmax = 1.0;		thy ymax == my xmax;
diff --git a/fon/Spectrum_to_Excitation.cpp b/fon/Spectrum_to_Excitation.cpp
index dd07893..2b0ffbb 100644
--- a/fon/Spectrum_to_Excitation.cpp
+++ b/fon/Spectrum_to_Excitation.cpp
@@ -1,6 +1,6 @@
 /* Spectrum_to_Excitation.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,9 +17,15 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 1995/05/20
+ * pb 2002/07/16 GPL
+ * pb 2011/06/10 C++
+ */
+
 #include "Spectrum_to_Excitation.h"
 
-autoExcitation Spectrum_to_Excitation (Spectrum me, double dbark) {
+Excitation Spectrum_to_Excitation (Spectrum me, double dbark) {
 	try {
 		long nbark = (int) floor (25.6 / dbark + 0.5);
 		double *re = my z [1], *im = my z [2]; 
@@ -43,30 +49,26 @@ autoExcitation Spectrum_to_Excitation (Spectrum me, double dbark) {
 			long low = iFreqs [i], high = iFreqs [i + 1] - 1;
 			if (low < 1) low = 1;
 			if (high > my nx) high = my nx;
-			for (long j = low; j <= high; j ++) {
+			for (long j = low; j <= high; j ++)
 				inSig [i] += re [j] * re [j] + im [j] * im [j];   // Pa2 s2
-			}
 
 			/* An anti-undersampling correction. */
 			if (high >= low)
-				inSig [i] *= 2.0 * (rFreqs [i + 1] - rFreqs [i]) / (high - low + 1) * my dx;   // Pa2: power density in this band
+				inSig [i] *= 2 * (rFreqs [i + 1] - rFreqs [i]) / (high - low + 1) * my dx;   // Pa2: power density in this band
 		}
 
 		/* Convolution with auditory (masking) filter. */
 
 		autoNUMvector <double> outSig (1, 2 * nbark);
-		for (long i = 1; i <= nbark; i ++) {
-			for (long j = 1; j <= nbark; j ++) {
+		for (long i = 1; i <= nbark; i ++)
+			for (long j = 1; j <= nbark; j ++)
 				outSig [i + j] += inSig [i] * auditoryFilter [j];
-			}
-		}
 
 		autoExcitation thee = Excitation_create (dbark, nbark);
-		for (long i = 1; i <= nbark; i ++) {
-			thy z [1] [i] = Excitation_soundPressureToPhon (sqrt (outSig [i + nbark/2]), Sampled_indexToX (thee.get(), i));
-		}
+		for (long i = 1; i <= nbark; i ++)
+			thy z [1] [i] = Excitation_soundPressureToPhon (sqrt (outSig [i + nbark/2]), Sampled_indexToX (thee.peek(), i));
 
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Excitation.");
 	}
diff --git a/fon/Spectrum_to_Excitation.h b/fon/Spectrum_to_Excitation.h
index fe6cec6..6b1b182 100644
--- a/fon/Spectrum_to_Excitation.h
+++ b/fon/Spectrum_to_Excitation.h
@@ -1,6 +1,6 @@
 /* Spectrum_to_Excitation.h
  *
- * Copyright (C) 1992-2011,2014,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
 #include "Spectrum.h"
 #include "Excitation.h"
 
-autoExcitation Spectrum_to_Excitation (Spectrum me, double df);
+Excitation Spectrum_to_Excitation (Spectrum me, double df);
 /*
 	Postcondition:
 		filtered with 10 ^ (1.581 + 0.75 * bark - 1.75 * sqrt (1 + bark * bark)))
diff --git a/fon/Spectrum_to_Formant.cpp b/fon/Spectrum_to_Formant.cpp
index 9a98f07..19dbd9e 100644
--- a/fon/Spectrum_to_Formant.cpp
+++ b/fon/Spectrum_to_Formant.cpp
@@ -25,7 +25,7 @@
 
 #include "Spectrum_to_Formant.h"
 
-autoFormant Spectrum_to_Formant (Spectrum me, int maxnFormants) {
+Formant Spectrum_to_Formant (Spectrum me, int maxnFormants) {
 	try {
 		long nfreq = my nx, nform = 0;
 		autoNUMvector <double> p (1, nfreq);   // power
@@ -54,7 +54,7 @@ autoFormant Spectrum_to_Formant (Spectrum me, int maxnFormants) {
 				if (nform == maxnFormants) break;
 			}
 		thy d_frames [1]. nFormants = nform;
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Formant.");
 	}
diff --git a/fon/Spectrum_to_Formant.h b/fon/Spectrum_to_Formant.h
index da33c40..27fd747 100644
--- a/fon/Spectrum_to_Formant.h
+++ b/fon/Spectrum_to_Formant.h
@@ -1,6 +1,6 @@
 /* Spectrum_to_Formant.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,6 @@
 #include "Spectrum.h"
 #include "Formant.h"
 
-autoFormant Spectrum_to_Formant (Spectrum me, int maxnFormants);
+Formant Spectrum_to_Formant (Spectrum me, int maxnFormants);
 
 /* End of file Spectrum_to_Formant.h */
diff --git a/fon/SpellingChecker.cpp b/fon/SpellingChecker.cpp
index 49472ee..a5de4cd 100644
--- a/fon/SpellingChecker.cpp
+++ b/fon/SpellingChecker.cpp
@@ -50,45 +50,60 @@
 
 #include "longchar.h"
 
-Thing_implement (SpellingChecker, Daata, 0);
+Thing_implement (SpellingChecker, Data, 0);
 
-autoSpellingChecker WordList_upto_SpellingChecker (WordList me) {
+SpellingChecker WordList_upto_SpellingChecker (WordList me) {
 	try {
 		autoSpellingChecker thee = Thing_new (SpellingChecker);
 		thy wordList = Data_copy (me);
-		thy userDictionary = StringSet_create ();
 		thy separatingCharacters = Melder_dup (U".,;:()\"");
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to SpellingChecker.");
 	}
 }
 
-autoWordList SpellingChecker_extractWordList (SpellingChecker me) {
-	return Data_copy (my wordList.get());
+WordList SpellingChecker_extractWordList (SpellingChecker me) {
+	return Data_copy (my wordList);
 }
 
 void SpellingChecker_replaceWordList (SpellingChecker me, WordList list) {
 	try {
-		my wordList = Data_copy (list);
+		/*
+		 * Create without change.
+		 */
+		autoWordList newList = Data_copy (list);
+		/*
+		 * Change without error.
+		 */
+		forget (my wordList);
+		my wordList = newList.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": word list not replaced.");
 	}
 }
 
-autoStringSet SpellingChecker_extractUserDictionary (SpellingChecker me) {
+SortedSetOfString SpellingChecker_extractUserDictionary (SpellingChecker me) {
 	try {
-		if (my userDictionary->size == 0)
+		if (! my userDictionary)
 			Melder_throw (U"This spelling checker does not contain a user dictionary.");
-		return Data_copy (my userDictionary.get());
+		return Data_copy (my userDictionary);
 	} catch (MelderError) {
 		Melder_throw (me, U": user dictionary not extracted.");
 	}
 }
 
-void SpellingChecker_replaceUserDictionary (SpellingChecker me, StringSet userDictionary) {
+void SpellingChecker_replaceUserDictionary (SpellingChecker me, SortedSetOfString userDictionary) {
 	try {
-		my userDictionary = Data_copy (userDictionary);
+		/*
+		 * Create without change.
+		 */
+		autoSortedSetOfString newDict = Data_copy (userDictionary);
+		/*
+		 * Change without error.
+		 */
+		forget (my userDictionary);
+		my userDictionary = newDict.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": user dictionary not replaced.");
 	}
@@ -121,7 +136,7 @@ bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word) {
 			/*
 			 * Allow word if it contains this token.
 			 */
-			if (str32str (word, token)) return true;
+			if (str32str (word, token)) return TRUE;
 		}
 	}
 	if (my allowAllNames) {
@@ -129,7 +144,7 @@ bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word) {
 		 * Allow word if it starts with a capital.
 		 */
 		if (startsWithCapital (word)) {
-			return true;
+			return TRUE;
 		}
 		if (my namePrefixes && my namePrefixes [0]) {
 			char32 *p = & my namePrefixes [0];
@@ -143,14 +158,14 @@ bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word) {
 				 * and this prefix is followed by a capital.
 				 */
 				if (str32str (word, token) == word && startsWithCapital (word + str32len (token))) {
-					return true;
+					return TRUE;
 				}
 			}
 		}
 	} else if (my allowAllAbbreviations && startsWithCapital (word)) {
 		const char32 *p = & word [0];
 		for (;;) {
-			if (*p == '\0') return true;
+			if (*p == '\0') return TRUE;
 			if (iswlower ((int) *p)) break;
 			p ++;
 		}
@@ -165,7 +180,7 @@ bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word) {
 			*q = U'\0';   // trailing null character
 			tokenLength = str32len (token);
 			if (wordLength >= tokenLength && str32nequ (token, word, tokenLength)) {
-				return true;
+				return TRUE;
 			}
 		}
 	}
@@ -179,27 +194,29 @@ bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word) {
 			*q = U'\0';   // trailing null character
 			tokenLength = str32len (token);
 			if (wordLength >= tokenLength && str32nequ (token, word + wordLength - tokenLength, tokenLength)) {
-				return true;
+				return TRUE;
 			}
 		}
 	}
-	if (WordList_hasWord (my wordList.get(), word))
-		return true;
-	if (my userDictionary->size > 0) {
-		if (str32len (word) > 3333) return false;   // superfluous, because WordList_hasWord already checked; but safe
+	if (WordList_hasWord (my wordList, word))
+		return TRUE;
+	if (my userDictionary != NULL) {
+		if (str32len (word) > 3333) return FALSE;   // superfluous, because WordList_hasWord already checked; but safe
 		static char32 buffer [3*3333+1];
 		Longchar_genericize32 (word, buffer);
-		if (my userDictionary -> lookUp (buffer) != 0)
-			return true;
+		if (SortedSetOfString_lookUp (my userDictionary, buffer) != 0)
+			return TRUE;
 	}
-	return false;
+	return FALSE;
 }
 
 void SpellingChecker_addNewWord (SpellingChecker me, const char32 *word) {
 	try {
+		if (! my userDictionary)
+			my userDictionary = SortedSetOfString_create ();
 		autostring32 generic = Melder_calloc (char32, 3 * str32len (word) + 1);
 		Longchar_genericize32 (word, generic.peek());
-		my userDictionary -> addString_copy (generic.transfer());
+		SortedSetOfString_addString (my userDictionary, generic.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": word \"", word, U"\" not added.");
 	}
@@ -209,12 +226,12 @@ char32 * SpellingChecker_nextNotAllowedWord (SpellingChecker me, const char32 *s
 	const char32 *p = sentence + *start;
 	for (;;) {
 		if (*p == U'\0') {
-			return nullptr;   // all words allowed
+			return NULL;   // all words allowed
 		} else if (*p == U'(' && my allowAllParenthesized) {
 			p ++;
 			for (;;) {
 				if (*p == U'\0') {
-					return nullptr;   // everything is parenthesized...
+					return NULL;   // everything is parenthesized...
 				} else if (*p == U')') {
 					p ++;
 					break;
@@ -243,7 +260,7 @@ char32 * SpellingChecker_nextNotAllowedWord (SpellingChecker me, const char32 *s
 			}
 		}
 	}
-	return nullptr;   // all words allowed
+	return NULL;   // all words allowed
 }
 
 /* End of file SpellingChecker.cpp */
diff --git a/fon/SpellingChecker.h b/fon/SpellingChecker.h
index ff66366..f42ec3e 100644
--- a/fon/SpellingChecker.h
+++ b/fon/SpellingChecker.h
@@ -23,12 +23,13 @@
 #include "Collection.h"
 
 #include "SpellingChecker_def.h"
+oo_CLASS_CREATE (SpellingChecker, Data);
 
-autoSpellingChecker WordList_upto_SpellingChecker (WordList me);
-autoWordList SpellingChecker_extractWordList (SpellingChecker me);
+SpellingChecker WordList_upto_SpellingChecker (WordList me);
+WordList SpellingChecker_extractWordList (SpellingChecker me);
 void SpellingChecker_replaceWordList (SpellingChecker me, WordList list);
-autoStringSet SpellingChecker_extractUserDictionary (SpellingChecker me);
-void SpellingChecker_replaceUserDictionary (SpellingChecker me, StringSet userDictionary);
+SortedSetOfString SpellingChecker_extractUserDictionary (SpellingChecker me);
+void SpellingChecker_replaceUserDictionary (SpellingChecker me, SortedSetOfString userDictionary);
 
 bool SpellingChecker_isWordAllowed (SpellingChecker me, const char32 *word);
 char32 * SpellingChecker_nextNotAllowedWord (SpellingChecker me, const char32 *sentence, long *start);
diff --git a/fon/SpellingChecker_def.h b/fon/SpellingChecker_def.h
index 062a636..1f4b711 100644
--- a/fon/SpellingChecker_def.h
+++ b/fon/SpellingChecker_def.h
@@ -17,10 +17,12 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2007/08/12
+ */
 
 #define ooSTRUCT SpellingChecker
-oo_DEFINE_CLASS (SpellingChecker, Daata)           // CGN:
-
+oo_DEFINE_CLASS (SpellingChecker, Data)           // CGN:
 	oo_STRING (forbiddenStrings)              // : ; "
 	oo_BOOLEAN (checkMatchingParentheses)     // true
 	oo_STRING (separatingCharacters)          // .,:;()!?
@@ -33,11 +35,9 @@ oo_DEFINE_CLASS (SpellingChecker, Daata)           // CGN:
 	oo_STRING (allowAllWordsContaining)       // * xxx
 	oo_STRING (allowAllWordsStartingWith)
 	oo_STRING (allowAllWordsEndingIn)         // -
-	oo_AUTO_OBJECT (WordList, 0, wordList)
-	oo_AUTO_COLLECTION (StringSet, userDictionary, SimpleString, 0)
-
+	oo_OBJECT (WordList, 0, wordList)
+	oo_COLLECTION (SortedSetOfString, userDictionary, SimpleString, 0)
 oo_END_CLASS (SpellingChecker)
 #undef ooSTRUCT
 
-
 /* End of file SpellingChecker_def.h */
diff --git a/fon/TextGrid.cpp b/fon/TextGrid.cpp
index d9ac8a1..d67801d 100644
--- a/fon/TextGrid.cpp
+++ b/fon/TextGrid.cpp
@@ -1,6 +1,6 @@
 /* TextGrid.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,12 +43,12 @@
 
 Thing_implement (TextPoint, AnyPoint, 0);
 
-autoTextPoint TextPoint_create (double time, const char32 *mark) {
+TextPoint TextPoint_create (double time, const char32 *mark) {
 	try {
 		autoTextPoint me = Thing_new (TextPoint);
 		my number = time;
 		my mark = Melder_dup (mark);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Text point not created.");
 	}
@@ -74,13 +74,13 @@ void TextPoint_setText (TextPoint me, const char32 *text) {
 
 Thing_implement (TextInterval, Function, 0);
 
-autoTextInterval TextInterval_create (double tmin, double tmax, const char32 *text) {
+TextInterval TextInterval_create (double tmin, double tmax, const char32 *text) {
 	try {
 		autoTextInterval me = Thing_new (TextInterval);
 		my xmin = tmin;
 		my xmax = tmax;
 		my text = Melder_dup (text);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Text interval not created.");
 	}
@@ -106,14 +106,31 @@ void TextInterval_setText (TextInterval me, const char32 *text) {
 	}
 }
 
-Thing_implement (TextTier, AnyTier, 0);
+Thing_implement (TextTier, Function, 0);
 
-autoTextTier TextTier_create (double tmin, double tmax) {
+void structTextTier :: v_shiftX (double xfrom, double xto) {
+	TextTier_Parent :: v_shiftX (xfrom, xto);
+	for (long i = 1; i <= our numberOfPoints(); i ++) {
+		TextPoint point = our point (i);
+		NUMshift (& point -> number, xfrom, xto);
+	}
+}
+
+void structTextTier :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
+	TextTier_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
+	for (long i = 1; i <= our numberOfPoints(); i ++) {
+		TextPoint point = our point (i);
+		NUMscale (& point -> number, xminfrom, xmaxfrom, xminto, xmaxto);
+	}
+}
+
+TextTier TextTier_create (double tmin, double tmax) {
 	try {
 		autoTextTier me = Thing_new (TextTier);
+		my points = SortedSetOfDouble_create ();
 		my xmin = tmin;
 		my xmax = tmax;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Point tier not created.");
 	}
@@ -121,8 +138,7 @@ autoTextTier TextTier_create (double tmin, double tmax) {
 
 void TextTier_addPoint (TextTier me, double time, const char32 *mark) {
 	try {
-		autoTextPoint point = TextPoint_create (time, mark);
-		my points. addItem_move (point.move());
+		Collection_addItem (my points, TextPoint_create (time, mark));
 	} catch (MelderError) {
 		Melder_throw (U"Point tier: point not added.");
 	}
@@ -132,43 +148,44 @@ Thing_implement (IntervalTier, Function, 0);
 
 void structIntervalTier :: v_shiftX (double xfrom, double xto) {
 	IntervalTier_Parent :: v_shiftX (xfrom, xto);
-	for (long i = 1; i <= our intervals.size; i ++) {
-		TextInterval interval = our intervals.at [i];
+	for (long i = 1; i <= our numberOfIntervals(); i ++) {
+		TextInterval interval = our interval (i);
 		interval -> v_shiftX (xfrom, xto);
 	}
 }
 
 void structIntervalTier :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	IntervalTier_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	for (long i = 1; i <= our intervals.size; i ++) {
-		TextInterval interval = our intervals.at [i];
+	for (long i = 1; i <= our numberOfIntervals(); i ++) {
+		TextInterval interval = our interval (i);
 		interval -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 	}
 }
 
-autoIntervalTier IntervalTier_create (double tmin, double tmax) {
+IntervalTier IntervalTier_create (double tmin, double tmax) {
 	try {
 		autoIntervalTier me = Thing_new (IntervalTier);
+		my intervals = SortedSetOfDouble_create ();
 		my xmin = tmin;
 		my xmax = tmax;
-		autoTextInterval interval = TextInterval_create (tmin, tmax, nullptr);
-		my intervals. addItem_move (interval.move());
-		return me;
+		autoTextInterval interval = TextInterval_create (tmin, tmax, NULL);
+		Collection_addItem (my intervals, interval.transfer());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Interval tier not created.");
 	}
 }
 
 long IntervalTier_timeToLowIndex (IntervalTier me, double t) {
-	long ileft = 1, iright = my intervals.size;
+	long ileft = 1, iright = my numberOfIntervals();
 	if (iright < 1) return 0;   // empty tier
-	TextInterval leftInterval = my intervals.at [ileft];
+	TextInterval leftInterval = my interval (ileft);
 	if (t < leftInterval -> xmin) return 0;   // very small t
-	TextInterval rightInterval = my intervals.at [iright];
+	TextInterval rightInterval = my interval (iright);
 	if (t >= rightInterval -> xmax) return 0;   // very large t
 	while (ileft < iright) {
 		long imid = (ileft + iright) / 2;
-		TextInterval midInterval = my intervals.at [imid];
+		TextInterval midInterval = my interval (imid);
 		if (t >= midInterval -> xmax) {
 			ileft = imid + 1;
 		} else {
@@ -179,15 +196,15 @@ long IntervalTier_timeToLowIndex (IntervalTier me, double t) {
 }
 
 long IntervalTier_timeToIndex (IntervalTier me, double t) {
-	long ileft = 1, iright = my intervals.size;
+	long ileft = 1, iright = my numberOfIntervals();
 	if (iright < 1) return 0;   // empty tier
-	TextInterval leftInterval = my intervals.at [ileft];
+	TextInterval leftInterval = my interval (ileft);
 	if (t < leftInterval -> xmin) return 0;   // very small t
-	TextInterval rightInterval = my intervals.at [iright];
+	TextInterval rightInterval = my interval (iright);
 	if (t > rightInterval -> xmax) return 0;   // very large t
 	while (ileft < iright) {
 		long imid = (ileft + iright) / 2;
-		TextInterval midInterval = my intervals.at [imid];
+		TextInterval midInterval = my interval (imid);
 		if (t >= midInterval -> xmax) {
 			ileft = imid + 1;
 		} else {
@@ -198,15 +215,15 @@ long IntervalTier_timeToIndex (IntervalTier me, double t) {
 }
 
 long IntervalTier_timeToHighIndex (IntervalTier me, double t) {
-	long ileft = 1, iright = my intervals.size;
+	long ileft = 1, iright = my numberOfIntervals();
 	if (iright < 1) return 0;   // empty tier
-	TextInterval leftInterval = my intervals.at [ileft];
+	TextInterval leftInterval = my interval (ileft);
 	if (t <= leftInterval -> xmin) return 0;   // very small t
-	TextInterval rightInterval = my intervals.at [iright];
+	TextInterval rightInterval = my interval (iright);
 	if (t > rightInterval -> xmax) return 0;   // very large t
 	while (ileft < iright) {
 		long imid = (ileft + iright) / 2;
-		TextInterval midInterval = my intervals.at [imid];
+		TextInterval midInterval = my interval (imid);
 		if (t > midInterval -> xmax) {
 			ileft = imid + 1;
 		} else {
@@ -217,15 +234,15 @@ long IntervalTier_timeToHighIndex (IntervalTier me, double t) {
 }
 
 long IntervalTier_hasTime (IntervalTier me, double t) {
-	long ileft = 1, iright = my intervals.size;
+	long ileft = 1, iright = my numberOfIntervals();
 	if (iright < 1) return 0;   // empty tier
-	TextInterval leftInterval = my intervals.at [ileft];
+	TextInterval leftInterval = my interval (ileft);
 	if (t < leftInterval -> xmin) return 0;   // very small t
-	TextInterval rightInterval = my intervals.at [iright];
+	TextInterval rightInterval = my interval (iright);
 	if (t > rightInterval -> xmax) return 0;   // very large t
 	while (ileft < iright) {
 		long imid = (ileft + iright) / 2;
-		TextInterval midInterval = my intervals.at [imid];
+		TextInterval midInterval = my interval (imid);
 		if (t >= midInterval -> xmax) {
 			ileft = imid + 1;
 		} else {
@@ -235,46 +252,46 @@ long IntervalTier_hasTime (IntervalTier me, double t) {
 	/*
 	 * We now know that t is within interval ileft.
 	 */
-	leftInterval = my intervals.at [ileft];
+	leftInterval = my interval (ileft);
 	if (t == leftInterval -> xmin || t == leftInterval -> xmax) return ileft;
 	return 0;   // not found
 }
 
 long IntervalTier_hasBoundary (IntervalTier me, double t) {
-	long ileft = 2, iright = my intervals.size;
+	long ileft = 2, iright = my numberOfIntervals();
 	if (iright < 2) return 0;   // tier without inner boundaries
-	TextInterval leftInterval = my intervals.at [ileft];
+	TextInterval leftInterval = my interval (ileft);
 	if (t < leftInterval -> xmin) return 0;   // very small t
-	TextInterval rightInterval = my intervals.at [iright];
+	TextInterval rightInterval = my interval (iright);
 	if (t >= rightInterval -> xmax) return 0;   // very large t
 	while (ileft < iright) {
 		long imid = (ileft + iright) / 2;
-		TextInterval midInterval = my intervals.at [imid];
+		TextInterval midInterval = my interval (imid);
 		if (t >= midInterval -> xmax) {
 			ileft = imid + 1;
 		} else {
 			iright = imid;
 		}
 	}
-	leftInterval = my intervals.at [ileft];
+	leftInterval = my interval (ileft);
 	if (t == leftInterval -> xmin) return ileft;
 	return 0;   // not found
 }
 
 void structTextGrid :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 
 	long intervalTierCount = 0, pointTierCount = 0, intervalCount = 0, pointCount = 0;
-	for (long itier = 1; itier <= our tiers->size; itier ++) {
-		Function anyTier = our tiers->at [itier];
+	for (long itier = 1; itier <= our numberOfTiers(); itier ++) {
+		Function anyTier = our tier (itier);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier intervalTier = static_cast <IntervalTier> (anyTier);
 			intervalTierCount += 1;
-			intervalCount += intervalTier -> intervals.size;
+			intervalCount += intervalTier -> numberOfIntervals();
 		} else {
 			TextTier textTier = static_cast <TextTier> (anyTier);
 			pointTierCount += 1;
-			pointCount += textTier -> points.size;
+			pointCount += textTier -> numberOfPoints();
 		}
 	}
 	MelderInfo_writeLine (U"Number of interval tiers: ", intervalTierCount);
@@ -285,15 +302,15 @@ void structTextGrid :: v_info () {
 
 static void IntervalTier_addInterval_unsafe (IntervalTier me, double tmin, double tmax, const char32 *label) {
 	autoTextInterval interval = TextInterval_create (tmin, tmax, label);
-	my intervals.addItem_move (interval.move());
+	Collection_addItem (my intervals, interval.transfer());
 }
 
 void structTextGrid :: v_repair () {
-	for (long itier = 1; itier <= our tiers->size; itier ++) {
-		Function anyTier = our tiers->at [itier];   // it's a triple indirection: * ((* (* us). tiers). at + itier)
+	for (long itier = 1; itier <= our numberOfTiers(); itier ++) {
+		Function anyTier = our tier (itier);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			if (tier -> intervals.size == 0) {
+			if (tier -> numberOfIntervals() == 0) {
 				IntervalTier_addInterval_unsafe (tier, tier -> xmin, tier -> xmax, U"");
 			}
 		}
@@ -302,37 +319,35 @@ void structTextGrid :: v_repair () {
 
 void structTextGrid :: v_shiftX (double xfrom, double xto) {
 	TextGrid_Parent :: v_shiftX (xfrom, xto);
-	for (long i = 1; i <= our tiers->size; i ++) {
-		Function tier = our tiers->at [i];
+	for (long i = 1; i <= our numberOfTiers(); i ++) {
+		Function tier = our tier (i);
 		tier -> v_shiftX (xfrom, xto);
 	}
 }
 
 void structTextGrid :: v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto) {
 	TextGrid_Parent :: v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
-	for (long i = 1; i <= our tiers->size; i ++) {
-		Function tier = our tiers->at [i];
+	for (long i = 1; i <= our numberOfTiers(); i ++) {
+		Function tier = our tier (i);
 		tier -> v_scaleX (xminfrom, xmaxfrom, xminto, xmaxto);
 	}
 }
 
-Thing_implement (FunctionList, Ordered, 0);
-
 Thing_implement (TextGrid, Function, 0);
 
-autoTextGrid TextGrid_createWithoutTiers (double tmin, double tmax) {
+TextGrid TextGrid_createWithoutTiers (double tmin, double tmax) {
 	try {
 		autoTextGrid me = Thing_new (TextGrid);
-		my tiers = FunctionList_create ();
+		my tiers = Ordered_create ();
 		my xmin = tmin;
 		my xmax = tmax;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not created.");
 	}
 }
 
-autoTextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames, const char32 *pointTiers) {
+TextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames, const char32 *pointTiers) {
 	try {
 		autoTextGrid me = TextGrid_createWithoutTiers (tmin, tmax);
 		char32 nameBuffer [400];
@@ -342,10 +357,10 @@ autoTextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames,
 		 */
 		if (tierNames && tierNames [0]) {
 			str32cpy (nameBuffer, tierNames);
-			for (char32 *tierName = Melder_tok (nameBuffer, U" "); tierName; tierName = Melder_tok (nullptr, U" ")) {
+			for (char32 *tierName = Melder_tok (nameBuffer, U" "); tierName != NULL; tierName = Melder_tok (NULL, U" ")) {
 				autoIntervalTier tier = IntervalTier_create (tmin, tmax);
-				Thing_setName (tier.get(), tierName);
-				my tiers -> addItem_move (tier.move());
+				Thing_setName (tier.peek(), tierName);
+				Collection_addItem (my tiers, tier.transfer());
 			}
 		}
 
@@ -354,25 +369,26 @@ autoTextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames,
 		 */
 		if (pointTiers && pointTiers [0]) {
 			str32cpy (nameBuffer, pointTiers);
-			for (char32 *tierName = Melder_tok (nameBuffer, U" "); tierName; tierName = Melder_tok (nullptr, U" ")) {
-				for (long itier = 1; itier <= my tiers->size; itier ++) {
-					if (str32equ (tierName, Thing_getName (my tiers->at [itier]))) {
+			for (char32 *tierName = Melder_tok (nameBuffer, U" "); tierName != NULL; tierName = Melder_tok (NULL, U" ")) {
+				for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+					if (str32equ (tierName, Thing_getName (my tier (itier)))) {
 						autoTextTier tier = TextTier_create (tmin, tmax);
-						Thing_setName (tier.get(), tierName);
-						my tiers -> replaceItem_move (tier.move(), itier);
+						Thing_setName (tier.peek(), tierName);
+						forget (my tier (itier));
+						my tier (itier) = tier.transfer();
 					}
 				}
 			}
 		}
-		if (my tiers->size == 0)
+		if (my numberOfTiers() == 0)
 			Melder_throw (U"Cannot create a TextGrid without tiers. Supply at least one tier name.");
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not created.");
 	}
 }
 
-autoTextTier TextTier_readFromXwaves (MelderFile file) {
+TextTier TextTier_readFromXwaves (MelderFile file) {
 	try {
 		char *line;
 
@@ -384,7 +400,7 @@ autoTextTier TextTier_readFromXwaves (MelderFile file) {
 		 */
 		for (;;) {
 			line = MelderFile_readLine (file);
-			if (! line)
+			if (line == NULL)
 				Melder_throw (U"Missing '#' line.");
 			if (line [0] == '#') break;
 		}
@@ -394,26 +410,26 @@ autoTextTier TextTier_readFromXwaves (MelderFile file) {
 		 */
 		for (;;) {
 			line = MelderFile_readLine (file);
-			if (! line) break;   // normal end-of-file
+			if (line == NULL) break;   // normal end-of-file
 			double time;
 			long colour;
 			char mark [300];
 			if (sscanf (line, "%lf%ld%s", & time, & colour, mark) < 3)   // BUG: buffer overflow
 				Melder_throw (U"Line too short: \"", Melder_peek8to32 (line), U"\".");
-			TextTier_addPoint (me.get(), time, Melder_peek8to32 (mark));
+			TextTier_addPoint (me.peek(), time, Melder_peek8to32 (mark));
 		}
 
 		/*
 		 * Fix domain.
 		 */
-		if (my points.size > 0) {
-			TextPoint point = my points.at [1];
+		if (my numberOfPoints() > 0) {
+			TextPoint point = my point (1);
 			if (point -> number < 0.0) my xmin = point -> number - 1.0;
-			point = my points.at [my points.size];
+			point = my point (my numberOfPoints());
 			my xmax = point -> number + 1.0;
 		}
 		mfile.close ();
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextTier not read from Xwaves file.");
 	}
@@ -422,9 +438,9 @@ autoTextTier TextTier_readFromXwaves (MelderFile file) {
 Function TextGrid_checkSpecifiedTierNumberWithinRange (TextGrid me, long tierNumber) {
 	if (tierNumber < 1)
 		Melder_throw (me, U": the specified tier number is ", tierNumber, U", but should be at least 1.");
-	if (tierNumber > my tiers->size)
-		Melder_throw (me, U": the specified tier number (", tierNumber, U") exceeds my number of tiers (", my tiers->size, U").");
-	return my tiers->at [tierNumber];
+	if (tierNumber > my numberOfTiers())
+		Melder_throw (me, U": the specified tier number (", tierNumber, U") exceeds my number of tiers (", my numberOfTiers(), U").");
+	return my tier (tierNumber);
 }
 
 IntervalTier TextGrid_checkSpecifiedTierIsIntervalTier (TextGrid me, long tierNumber) {
@@ -447,15 +463,15 @@ long TextGrid_countLabels (TextGrid me, long tierNumber, const char32 *text) {
 		long count = 0;
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			for (long i = 1; i <= tier -> intervals.size; i ++) {
-				TextInterval segment = tier -> intervals.at [i];
+			for (long i = 1; i <= tier -> numberOfIntervals(); i ++) {
+				TextInterval segment = tier -> interval (i);
 				if (segment -> text && str32equ (segment -> text, text))
 					count ++;
 			}
 		} else {
 			TextTier tier = static_cast <TextTier> (anyTier);
-			for (long i = 1; i <= tier -> points.size; i ++) {
-				TextPoint point = tier -> points.at [i];
+			for (long i = 1; i <= tier -> numberOfPoints(); i ++) {
+				TextPoint point = tier -> point (i);
 				if (point -> mark && str32equ (point -> mark, text))
 					count ++;
 			}
@@ -470,8 +486,8 @@ long TextGrid_countIntervalsWhere (TextGrid me, long tierNumber, int which_Melde
 	try {
 		long count = 0;
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+			TextInterval interval = tier -> interval (iinterval);
 			if (Melder_stringMatchesCriterion (interval -> text, which_Melder_STRING, criterion)) {
 				count ++;
 			}
@@ -486,8 +502,8 @@ long TextGrid_countPointsWhere (TextGrid me, long tierNumber, int which_Melder_S
 	try {
 		long count = 0;
 		TextTier tier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			TextPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= tier -> numberOfPoints(); ipoint ++) {
+			TextPoint point = tier -> point (ipoint);
 			if (Melder_stringMatchesCriterion (point -> mark, which_Melder_STRING, criterion)) {
 				count ++;
 			}
@@ -498,47 +514,47 @@ long TextGrid_countPointsWhere (TextGrid me, long tierNumber, int which_Melder_S
 	}
 }
 
-void TextGrid_addTier_copy (TextGrid me, Function anyTier) {
+void TextGrid_addTier (TextGrid me, Function anyTier) {
 	try {
 		autoFunction tier = Data_copy (anyTier);
 		if (tier -> xmin < my xmin) my xmin = tier -> xmin;
 		if (tier -> xmax > my xmax) my xmax = tier -> xmax;
-		my tiers -> addItem_move (tier.move());
+		Collection_addItem (my tiers, tier.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": tier not added.");
 	}
 }
 
-autoTextGrid TextGrids_merge (OrderedOf<structTextGrid>* textGrids) {
+TextGrid TextGrid_merge (Collection textGrids) {
 	try {
-		if (textGrids->size < 1)
+		if (textGrids -> size < 1)
 			Melder_throw (U"Cannot merge zero TextGrid objects.");
-		autoTextGrid thee = Data_copy (textGrids->at [1]);
-		for (long igrid = 2; igrid <= textGrids->size; igrid ++) {
-			TextGrid textGrid = textGrids->at [igrid];
-			for (long itier = 1; itier <= textGrid -> tiers->size; itier ++) {
-				TextGrid_addTier_copy (thee.get(), textGrid -> tiers->at [itier]);
+		autoTextGrid thee = Data_copy ((TextGrid) textGrids -> item [1]);
+		for (long igrid = 2; igrid <= textGrids -> size; igrid ++) {
+			TextGrid textGrid = (TextGrid) textGrids -> item [igrid];
+			for (long itier = 1; itier <= textGrid -> numberOfTiers(); itier ++) {
+				TextGrid_addTier (thee.peek(), textGrid -> tier (itier));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrids not merged.");
 	}
 }
 
-autoTextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int preserveTimes) {
+TextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int preserveTimes) {
 	try {
 		autoTextGrid thee = Data_copy (me);
-		if (tmax <= tmin) return thee;
+		if (tmax <= tmin) return thee.transfer();
 
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			Function anyTier = thy tiers->at [itier];
+		for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+			Function anyTier = thy tier (itier);
 			if (anyTier -> classInfo == classIntervalTier) {
 				IntervalTier tier = static_cast <IntervalTier> (anyTier);
-				for (long iinterval = tier -> intervals.size; iinterval >= 1; iinterval --) {
-					TextInterval interval = tier -> intervals.at [iinterval];
+				for (long iinterval = tier -> numberOfIntervals(); iinterval >= 1; iinterval --) {
+					TextInterval interval = tier -> interval (iinterval);
 					if (interval -> xmin >= tmax || interval -> xmax <= tmin) {
-						tier -> intervals.removeItem (iinterval);
+						Collection_removeItem (tier -> intervals, iinterval);
 					} else {
 						if (interval -> xmin < tmin) interval -> xmin = tmin;
 						if (interval -> xmax > tmax) interval -> xmax = tmax;
@@ -546,10 +562,10 @@ autoTextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int pr
 				}
 			} else {
 				TextTier textTier = static_cast <TextTier> (anyTier);
-				for (long ipoint = textTier -> points.size; ipoint >= 1; ipoint --) {
-					TextPoint point = textTier -> points.at [ipoint];
+				for (long ipoint = textTier -> numberOfPoints(); ipoint >= 1; ipoint --) {
+					TextPoint point = textTier -> point (ipoint);
 					if (point -> number < tmin || point -> number > tmax) {
-						textTier -> points. removeItem (ipoint);
+						Collection_removeItem (textTier -> points, ipoint);
 					}
 				}
 			}
@@ -558,33 +574,33 @@ autoTextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int pr
 		}
 		thy xmin = tmin;
 		thy xmax = tmax;
-		if (! preserveTimes) Function_shiftXTo (thee.get(), thy xmin, 0.0);
-		return thee;
+		if (! preserveTimes) Function_shiftXTo (thee.peek(), thy xmin, 0.0);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": part not extracted.");
 	}
 }
 
-static autoTextGrid _Label_to_TextGrid (Label me, double tmin, double tmax) {
+static TextGrid _Label_to_TextGrid (Label me, double tmin, double tmax) {
 	autoTextGrid thee = TextGrid_createWithoutTiers (tmin, tmax);
 	for (long itier = 1; itier <= my size; itier ++) {
-		Tier tier = my at [itier];
+		Tier tier = (Tier) my item [itier];
 		autoIntervalTier intervalTier = IntervalTier_create (tmin, tmax);
-		thy tiers -> addItem_move (intervalTier.move());
-		intervalTier -> intervals.removeItem (1);
-		for (long iinterval = 1; iinterval <= tier->size; iinterval ++) {
-			Autosegment autosegment = tier->at [iinterval];
+		Collection_addItem (thy tiers, intervalTier.transfer());
+		Collection_removeItem (intervalTier -> intervals, 1);
+		for (long iinterval = 1; iinterval <= tier -> size; iinterval ++) {
+			Autosegment autosegment = (Autosegment) tier -> item [iinterval];
 			autoTextInterval textInterval = TextInterval_create (
 				iinterval == 1 ? tmin : autosegment -> xmin,
-				iinterval == tier->size ? tmax : autosegment -> xmax,
+				iinterval == tier -> size ? tmax : autosegment -> xmax,
 				autosegment -> name);
-			intervalTier -> intervals. addItem_move (textInterval.move());
+			Collection_addItem (intervalTier -> intervals, textInterval.transfer());
 		}
 	}
-	return thee;
+	return thee.transfer();
 }
 
-autoTextGrid Label_to_TextGrid (Label me, double duration) {
+TextGrid Label_to_TextGrid (Label me, double duration) {
 	try {
 		double tmin = 0.0, tmax = duration;
 		if (duration == 0.0) Label_suggestDomain (me, & tmin, & tmax);
@@ -595,309 +611,309 @@ autoTextGrid Label_to_TextGrid (Label me, double duration) {
 	}
 }
 
-autoTextGrid Label_Function_to_TextGrid (Label me, Function function) {
+TextGrid Label_Function_to_TextGrid (Label me, Any function) {
 	try {
-		return _Label_to_TextGrid (me, function -> xmin, function -> xmax);
+		return _Label_to_TextGrid (me, ((Function) function) -> xmin, ((Function) function) -> xmax);
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TextGrid.");
 	}
 }
 
-autoTextTier PointProcess_upto_TextTier (PointProcess me, const char32 *text) {
+TextTier PointProcess_upto_TextTier (PointProcess me, const char32 *text) {
 	try {
 		autoTextTier thee = TextTier_create (my xmin, my xmax);
 		for (long i = 1; i <= my nt; i ++) {
-			TextTier_addPoint (thee.get(), my t [i], text);
+			TextTier_addPoint (thee.peek(), my t [i], text);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TextTier.");
 	}
 }
 
-autoPointProcess TextTier_getPoints (TextTier me, const char32 *text) {
+PointProcess TextTier_getPoints (TextTier me, const char32 *text) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long i = 1; i <= my points.size; i ++) {
-			TextPoint point = my points.at [i];
+		for (long i = 1; i <= my numberOfPoints(); i ++) {
+			TextPoint point = my point (i);
 			if (text && text [0]) {
 				if (point -> mark && str32equ (text, point -> mark))
-					PointProcess_addPoint (thee.get(), point -> number);
+					PointProcess_addPoint (thee.peek(), point -> number);
 			} else {
 				if (! point -> mark || ! point -> mark [0])
-					PointProcess_addPoint (thee.get(), point -> number);
+					PointProcess_addPoint (thee.peek(), point -> number);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess IntervalTier_getStartingPoints (IntervalTier me, const char32 *text) {
+PointProcess IntervalTier_getStartingPoints (IntervalTier me, const char32 *text) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval interval = my intervals.at [i];
+		for (long i = 1; i <= my numberOfIntervals(); i ++) {
+			TextInterval interval = my interval (i);
 			if (text && text [0]) {
 				if (interval -> text && str32equ (text, interval -> text))
-					PointProcess_addPoint (thee.get(), interval -> xmin);
+					PointProcess_addPoint (thee.peek(), interval -> xmin);
 			} else {
 				if (! interval -> text || ! interval -> text [0])
-					PointProcess_addPoint (thee.get(), interval -> xmin);
+					PointProcess_addPoint (thee.peek(), interval -> xmin);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": starting points not gotten.");
 	}
 }
 
-autoPointProcess IntervalTier_getEndPoints (IntervalTier me, const char32 *text) {
+PointProcess IntervalTier_getEndPoints (IntervalTier me, const char32 *text) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval interval = my intervals.at [i];
+		for (long i = 1; i <= my numberOfIntervals(); i ++) {
+			TextInterval interval = my interval (i);
 			if (text && text [0]) {
 				if (interval -> text && str32equ (text, interval -> text))
-					PointProcess_addPoint (thee.get(), interval -> xmax);
+					PointProcess_addPoint (thee.peek(), interval -> xmax);
 			} else {
 				if (! interval -> text || ! interval -> text [0])
-					PointProcess_addPoint (thee.get(), interval -> xmax);
+					PointProcess_addPoint (thee.peek(), interval -> xmax);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": end points not gotten.");
 	}
 }
 
-autoPointProcess IntervalTier_getCentrePoints (IntervalTier me, const char32 *text) {
+PointProcess IntervalTier_getCentrePoints (IntervalTier me, const char32 *text) {
 	try {
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval interval = my intervals.at [i];
+		for (long i = 1; i <= my numberOfIntervals(); i ++) {
+			TextInterval interval = my interval (i);
 			if (text && text [0]) {
 				if (interval -> text && str32equ (text, interval -> text))
-					PointProcess_addPoint (thee.get(), 0.5 * (interval -> xmin + interval -> xmax));
+					PointProcess_addPoint (thee.peek(), 0.5 * (interval -> xmin + interval -> xmax));
 			} else {
 				if (! interval -> text || ! interval -> text [0])
-					PointProcess_addPoint (thee.get(), 0.5 * (interval -> xmin + interval -> xmax));
+					PointProcess_addPoint (thee.peek(), 0.5 * (interval -> xmin + interval -> xmax));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": centre points not gotten.");
 	}
 }
 
-autoPointProcess TextGrid_getStartingPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
+PointProcess TextGrid_getStartingPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+			TextInterval interval = tier -> interval (iinterval);
 			if (Melder_stringMatchesCriterion (interval -> text, which_Melder_STRING, criterion)) {
-				PointProcess_addPoint (thee.get(), interval -> xmin);
+				PointProcess_addPoint (thee.peek(), interval -> xmin);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": starting points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess TextGrid_getEndPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
+PointProcess TextGrid_getEndPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+			TextInterval interval = tier -> interval (iinterval);
 			if (Melder_stringMatchesCriterion (interval -> text, which_Melder_STRING, criterion)) {
-				PointProcess_addPoint (thee.get(), interval -> xmax);
+				PointProcess_addPoint (thee.peek(), interval -> xmax);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": end points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess TextGrid_getCentrePoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
+PointProcess TextGrid_getCentrePoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+			TextInterval interval = tier -> interval (iinterval);
 			if (Melder_stringMatchesCriterion (interval -> text, which_Melder_STRING, criterion)) {
-				PointProcess_addPoint (thee.get(), 0.5 * (interval -> xmin + interval -> xmax));
+				PointProcess_addPoint (thee.peek(), 0.5 * (interval -> xmin + interval -> xmax));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": centre points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess TextGrid_getPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
+PointProcess TextGrid_getPoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		TextTier tier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			TextPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= tier -> numberOfPoints(); ipoint ++) {
+			TextPoint point = tier -> point (ipoint);
 			if (Melder_stringMatchesCriterion (point -> mark, which_Melder_STRING, criterion)) {
-				PointProcess_addPoint (thee.get(), point -> number);
+				PointProcess_addPoint (thee.peek(), point -> number);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess TextGrid_getPoints_preceded (TextGrid me, long tierNumber,
+PointProcess TextGrid_getPoints_preceded (TextGrid me, long tierNumber,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_precededBy, const char32 *criterion_precededBy)
 {
 	try {
 		TextTier tier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			TextPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= tier -> numberOfPoints(); ipoint ++) {
+			TextPoint point = tier -> point (ipoint);
 			if (Melder_stringMatchesCriterion (point -> mark, which_Melder_STRING, criterion)) {
-				TextPoint preceding = ( ipoint <= 1 ? nullptr : tier -> points.at [ipoint - 1] );
+				TextPoint preceding = ipoint <= 1 ? NULL : tier -> point (ipoint - 1);
 				if (Melder_stringMatchesCriterion (preceding -> mark, which_Melder_STRING_precededBy, criterion_precededBy)) {
-					PointProcess_addPoint (thee.get(), point -> number);
+					PointProcess_addPoint (thee.peek(), point -> number);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess TextGrid_getPoints_followed (TextGrid me, long tierNumber,
+PointProcess TextGrid_getPoints_followed (TextGrid me, long tierNumber,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_followedBy, const char32 *criterion_followedBy)
 {
 	try {
 		TextTier tier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
 		autoPointProcess thee = PointProcess_create (my xmin, my xmax, 10);
-		for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-			TextPoint point = tier -> points.at [ipoint];
+		for (long ipoint = 1; ipoint <= tier -> numberOfPoints(); ipoint ++) {
+			TextPoint point = tier -> point (ipoint);
 			if (Melder_stringMatchesCriterion (point -> mark, which_Melder_STRING, criterion)) {
-				TextPoint following = ( ipoint >= tier -> points.size ? nullptr : tier -> points.at [ipoint + 1] );
+				TextPoint following = ipoint >= tier -> numberOfPoints() ? NULL : tier -> point (ipoint + 1);
 				if (Melder_stringMatchesCriterion (following -> mark, which_Melder_STRING_followedBy, criterion_followedBy)) {
-					PointProcess_addPoint (thee.get(), point -> number);
+					PointProcess_addPoint (thee.peek(), point -> number);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": points not converted to PointProcess.");
 	}
 }
 
-autoPointProcess IntervalTier_PointProcess_startToCentre (IntervalTier tier, PointProcess point, double phase) {
+PointProcess IntervalTier_PointProcess_startToCentre (IntervalTier tier, PointProcess point, double phase) {
 	try {
 		autoPointProcess thee = PointProcess_create (tier -> xmin, tier -> xmax, 10);
 		for (long i = 1; i <= point -> nt; i ++) {
 			double t = point -> t [i];
 			long index = IntervalTier_timeToLowIndex (tier, t);
 			if (index) {
-				TextInterval interval = tier -> intervals.at [index];
+				TextInterval interval = tier -> interval (index);
 				if (interval -> xmin == t)
-					PointProcess_addPoint (thee.get(), (1 - phase) * interval -> xmin + phase * interval -> xmax);
+					PointProcess_addPoint (thee.peek(), (1 - phase) * interval -> xmin + phase * interval -> xmax);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (tier, U" & ", point, U": starts of intervals not converted to PointProcess.");
 	}
 }
 
-autoPointProcess IntervalTier_PointProcess_endToCentre (IntervalTier tier, PointProcess point, double phase) {
+PointProcess IntervalTier_PointProcess_endToCentre (IntervalTier tier, PointProcess point, double phase) {
 	try {
 		autoPointProcess thee = PointProcess_create (tier -> xmin, tier -> xmax, 10);
 		for (long i = 1; i <= point -> nt; i ++) {
 			double t = point -> t [i];
 			long index = IntervalTier_timeToHighIndex (tier, t);
 			if (index) {
-				TextInterval interval = tier -> intervals.at [index];
+				TextInterval interval = tier -> interval (index);
 				if (interval -> xmax == t)
-					PointProcess_addPoint (thee.get(), (1 - phase) * interval -> xmin + phase * interval -> xmax);
+					PointProcess_addPoint (thee.peek(), (1 - phase) * interval -> xmin + phase * interval -> xmax);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (tier, U" & ", point, U": ends of intervals not converted to PointProcess.");
 	}
 }
 
-autoTableOfReal IntervalTier_downto_TableOfReal (IntervalTier me, const char32 *label) {
+TableOfReal IntervalTier_downto_TableOfReal (IntervalTier me, const char32 *label) {
 	try {
 		long n = 0;
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval interval = my intervals.at [i];
-			if (! label || (label [0] == U'\0' && ! interval -> text) || (interval -> text && str32equ (interval -> text, label)))
+		for (long i = 1; i <= my numberOfIntervals(); i ++) {
+			TextInterval interval = my interval (i);
+			if (label == NULL || (label [0] == U'\0' && ! interval -> text) || (interval -> text && str32equ (interval -> text, label)))
 				n ++;
 		}
 		autoTableOfReal thee = TableOfReal_create (n, 3);
-		TableOfReal_setColumnLabel (thee.get(), 1, U"Start");
-		TableOfReal_setColumnLabel (thee.get(), 2, U"End");
-		TableOfReal_setColumnLabel (thee.get(), 3, U"Duration");
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"Start");
+		TableOfReal_setColumnLabel (thee.peek(), 2, U"End");
+		TableOfReal_setColumnLabel (thee.peek(), 3, U"Duration");
 		n = 0;
-		for (long i = 1; i <= my intervals.size; i ++) {
-			TextInterval interval = my intervals.at [i];
-			if (! label || (label [0] == U'\0' && ! interval -> text) || (interval -> text && str32equ (interval -> text, label))) {
+		for (long i = 1; i <= my numberOfIntervals(); i ++) {
+			TextInterval interval = my interval (i);
+			if (label == NULL || (label [0] == U'\0' && ! interval -> text) || (interval -> text && str32equ (interval -> text, label))) {
 				n ++;
-				TableOfReal_setRowLabel (thee.get(), n, interval -> text ? interval -> text : U"");
+				TableOfReal_setRowLabel (thee.peek(), n, interval -> text ? interval -> text : U"");
 				thy data [n] [1] = interval -> xmin;
 				thy data [n] [2] = interval -> xmax;
 				thy data [n] [3] = interval -> xmax - interval -> xmin;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
 }
 
-autoTableOfReal IntervalTier_downto_TableOfReal_any (IntervalTier me) {
-	return IntervalTier_downto_TableOfReal (me, nullptr);
+TableOfReal IntervalTier_downto_TableOfReal_any (IntervalTier me) {
+	return IntervalTier_downto_TableOfReal (me, NULL);
 }
 
-autoTableOfReal TextTier_downto_TableOfReal (TextTier me, const char32 *label) {
+TableOfReal TextTier_downto_TableOfReal (TextTier me, const char32 *label) {
 	try {
 		long n = 0;
-		for (long i = 1; i <= my points.size; i ++) {
-			TextPoint point = my points.at [i];
-			if (! label || (label [0] == U'\0' && ! point -> mark) || (point -> mark && str32equ (point -> mark, label)))
+		for (long i = 1; i <= my numberOfPoints(); i ++) {
+			TextPoint point = my point (i);
+			if (label == NULL || (label [0] == U'\0' && ! point -> mark) || (point -> mark && str32equ (point -> mark, label)))
 				n ++;
 		}
 		autoTableOfReal thee = TableOfReal_create (n, 1);
-		TableOfReal_setColumnLabel (thee.get(), 1, U"Time");
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"Time");
 		n = 0;
-		for (long i = 1; i <= my points.size; i ++) {
-			TextPoint point = my points.at [i];
-			if (! label || (label [0] == U'\0' && ! point -> mark) || (point -> mark && str32equ (point -> mark, label))) {
+		for (long i = 1; i <= my numberOfPoints(); i ++) {
+			TextPoint point = my point (i);
+			if (label == NULL || (label [0] == U'\0' && ! point -> mark) || (point -> mark && str32equ (point -> mark, label))) {
 				n ++;
-				TableOfReal_setRowLabel (thee.get(), n, point -> mark ? point -> mark : U"");
+				TableOfReal_setRowLabel (thee.peek(), n, point -> mark ? point -> mark : U"");
 				thy data [n] [1] = point -> number;
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
 }
 
-autoTableOfReal TextTier_downto_TableOfReal_any (TextTier me) {
-	return TextTier_downto_TableOfReal (me, nullptr);
+TableOfReal TextTier_downto_TableOfReal_any (TextTier me) {
+	return TextTier_downto_TableOfReal (me, NULL);
 }
 
-autoIntervalTier IntervalTier_readFromXwaves (MelderFile file) {
+IntervalTier IntervalTier_readFromXwaves (MelderFile file) {
 	try {
 		char *line;
 		double lastTime = 0.0;
@@ -910,7 +926,7 @@ autoIntervalTier IntervalTier_readFromXwaves (MelderFile file) {
 		 */
 		for (;;) {
 			line = MelderFile_readLine (file);
-			if (! line)
+			if (line == NULL)
 				Melder_throw (U"Missing '#' line.");
 			if (line [0] == '#') break;
 		}
@@ -924,7 +940,7 @@ autoIntervalTier IntervalTier_readFromXwaves (MelderFile file) {
 			char mark [300];
 
 			line = MelderFile_readLine (file);
-			if (! line) break;   // normal end-of-file
+			if (line == NULL) break;   // normal end-of-file
 			numberOfElements = sscanf (line, "%lf%ld%s", & time, & colour, mark);
 			if (numberOfElements == 0) {
 				break;   // an empty line, hopefully at the end
@@ -934,11 +950,11 @@ autoIntervalTier IntervalTier_readFromXwaves (MelderFile file) {
 			if (numberOfElements == 2)
 				mark [0] = '\0';
 			if (lastTime == 0.0) {
-				TextInterval interval = my intervals.at [1];
+				TextInterval interval = my interval (1);
 				interval -> xmax = time;
 				TextInterval_setText (interval, Melder_peek8to32 (mark));
 			} else {
-				IntervalTier_addInterval_unsafe (me.get(), lastTime, time, Melder_peek8to32 (mark));
+				IntervalTier_addInterval_unsafe (me.peek(), lastTime, time, Melder_peek8to32 (mark));
 			}
 			lastTime = time;
 		}
@@ -947,12 +963,12 @@ autoIntervalTier IntervalTier_readFromXwaves (MelderFile file) {
 		 * Fix domain.
 		 */
 		if (lastTime > 0.0) {
-			TextInterval lastInterval = my intervals.at [my intervals.size];
+			TextInterval lastInterval = my interval (my numberOfIntervals());
 			my xmax = lastInterval -> xmax = lastTime;
 		}
 
 		mfile.close ();
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"IntervalTier not read from file ", file, U".");
 	}
@@ -962,8 +978,8 @@ void IntervalTier_writeToXwaves (IntervalTier me, MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "w");
 		fprintf (f, "separator ;\nnfields 1\n#\n");
-		for (long iinterval = 1; iinterval <= my intervals.size; iinterval ++) {
-			TextInterval interval = my intervals.at [iinterval];
+		for (long iinterval = 1; iinterval <= my numberOfIntervals(); iinterval ++) {
+			TextInterval interval = my interval (iinterval);
 			fprintf (f, "\t%.6f 26\t%s\n", interval -> xmax, Melder_peek32to8 (interval -> text));
 		}
 		f.close (file);
@@ -972,11 +988,11 @@ void IntervalTier_writeToXwaves (IntervalTier me, MelderFile file) {
 	}
 }
 
-autoTextGrid PointProcess_to_TextGrid_vuv (PointProcess me, double maxT, double meanT) {
+TextGrid PointProcess_to_TextGrid_vuv (PointProcess me, double maxT, double meanT) {
 	try {
-		autoTextGrid thee = TextGrid_create (my xmin, my xmax, U"vuv", nullptr);
-		IntervalTier tier = static_cast <IntervalTier> (thy tiers->at [1]);
-		tier -> intervals. removeItem (1);
+		autoTextGrid thee = TextGrid_create (my xmin, my xmax, U"vuv", NULL);
+		IntervalTier tier = static_cast <IntervalTier> (thy tier (1));
+		Collection_removeItem (tier -> intervals, 1);
 		long ipointright;
 		double beginVoiceless = my xmin, endVoiceless, halfMeanT = 0.5 * meanT;
 		for (long ipointleft = 1; ipointleft <= my nt; ipointleft = ipointright + 1) {
@@ -999,7 +1015,7 @@ autoTextGrid PointProcess_to_TextGrid_vuv (PointProcess me, double maxT, double
 		if (endVoiceless > beginVoiceless) {
 			IntervalTier_addInterval_unsafe (tier, beginVoiceless, endVoiceless, U"U");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TextGrid (vuv).");
 	}
@@ -1015,8 +1031,8 @@ long TextPoint_labelLength (TextPoint me) {
 
 long IntervalTier_maximumLabelLength (IntervalTier me) {
 	long maximum = 0;
-	for (long iinterval = 1; iinterval <= my intervals.size; iinterval ++) {
-		long length = TextInterval_labelLength (my intervals.at [iinterval]);
+	for (long iinterval = 1; iinterval <= my numberOfIntervals(); iinterval ++) {
+		long length = TextInterval_labelLength (my interval (iinterval));
 		if (length > maximum) {
 			maximum = length;
 		}
@@ -1026,8 +1042,8 @@ long IntervalTier_maximumLabelLength (IntervalTier me) {
 
 long TextTier_maximumLabelLength (TextTier me) {
 	long maximum = 0;
-	for (long ipoint = 1; ipoint <= my points.size; ipoint ++) {
-		long length = TextPoint_labelLength (my points.at [ipoint]);
+	for (long ipoint = 1; ipoint <= my numberOfPoints(); ipoint ++) {
+		long length = TextPoint_labelLength (my point (ipoint));
 		if (length > maximum) {
 			maximum = length;
 		}
@@ -1037,8 +1053,8 @@ long TextTier_maximumLabelLength (TextTier me) {
 
 long TextGrid_maximumLabelLength (TextGrid me) {
 	long maximum = 0;
-	for (long itier = 1; itier <= my tiers->size; itier ++) {
-		Function anyTier = my tiers->at [itier];
+	for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+		Function anyTier = my tier (itier);
 		long length = anyTier -> classInfo == classIntervalTier ?
 			IntervalTier_maximumLabelLength ((IntervalTier) anyTier) :
 			TextTier_maximumLabelLength ((TextTier) anyTier);
@@ -1072,18 +1088,18 @@ static void genericize (char32 **pstring, char32 *buffer) {
 void TextGrid_genericize (TextGrid me) {
 	try {
 		autostring32 buffer = Melder_calloc (char32, TextGrid_maximumLabelLength (me) * 3 + 1);
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			Function anyTier = my tiers->at [itier];
+		for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+			Function anyTier = my tier (itier);
 			if (anyTier -> classInfo == classIntervalTier) {
 				IntervalTier tier = static_cast <IntervalTier> (anyTier);
-				for (long i = 1; i <= tier -> intervals.size; i ++) {
-					TextInterval interval = tier -> intervals.at [i];
+				for (long i = 1; i <= tier -> numberOfIntervals(); i ++) {
+					TextInterval interval = tier -> interval (i);
 					genericize (& interval -> text, buffer.peek());
 				}
 			} else {
 				TextTier tier = static_cast <TextTier> (anyTier);
-				for (long i = 1; i <= tier -> points.size; i ++) {
-					TextPoint point = tier -> points.at [i];
+				for (long i = 1; i <= tier -> numberOfPoints(); i ++) {
+					TextPoint point = tier -> point (i);
 					genericize (& point -> mark, buffer.peek());
 				}
 			}
@@ -1096,23 +1112,23 @@ void TextGrid_genericize (TextGrid me) {
 void TextGrid_nativize (TextGrid me) {
 	try {
 		autostring32 buffer = Melder_calloc (char32, TextGrid_maximumLabelLength (me) + 1);
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			Function anyTier = my tiers->at [itier];
+		for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+			Function anyTier = my tier (itier);
 			if (anyTier -> classInfo == classIntervalTier) {
 				IntervalTier tier = static_cast <IntervalTier> (anyTier);
-				for (long i = 1; i <= tier -> intervals.size; i ++) {
-					TextInterval interval = tier -> intervals.at [i];
+				for (long i = 1; i <= tier -> numberOfIntervals(); i ++) {
+					TextInterval interval = tier -> interval (i);
 					if (interval -> text) {
-						Longchar_nativize32 (interval -> text, buffer.peek(), false);
+						Longchar_nativize32 (interval -> text, buffer.peek(), FALSE);
 						str32cpy (interval -> text, buffer.peek());
 					}
 				}
 			} else {
 				TextTier tier = static_cast <TextTier> (anyTier);
-				for (long i = 1; i <= tier -> points.size; i ++) {
-					TextPoint point = tier -> points.at [i];
+				for (long i = 1; i <= tier -> numberOfPoints(); i ++) {
+					TextPoint point = tier -> point (i);
 					if (point -> mark) {
-						Longchar_nativize32 (point -> mark, buffer.peek(), false);
+						Longchar_nativize32 (point -> mark, buffer.peek(), FALSE);
 						str32cpy (point -> mark, buffer.peek());
 					}
 				}
@@ -1132,15 +1148,15 @@ void TextPoint_removeText (TextPoint me) {
 }
 
 void IntervalTier_removeText (IntervalTier me) {
-	long ninterval = my intervals.size;
+	long ninterval = my numberOfIntervals ();
 	for (long iinterval = 1; iinterval <= ninterval; iinterval ++)
-		TextInterval_removeText (my intervals.at [iinterval]);
+		TextInterval_removeText (my interval (iinterval));
 }
 
 void TextTier_removeText (TextTier me) {
-	long npoint = my points.size;
+	long npoint = my numberOfPoints ();
 	for (long ipoint = 1; ipoint <= npoint; ipoint ++)
-		TextPoint_removeText (my points.at [ipoint]);
+		TextPoint_removeText (my point (ipoint));
 }
 
 void TextGrid_insertBoundary (TextGrid me, int tierNumber, double t) {
@@ -1154,13 +1170,13 @@ void TextGrid_insertBoundary (TextGrid me, int tierNumber, double t) {
 		long intervalNumber = IntervalTier_timeToIndex (intervalTier, t);
 		if (intervalNumber == 0)
 			Melder_throw (U"Cannot add a boundary at ", Melder_fixed (t, 6), U" seconds, because this is outside the time domain of the intervals.");
-		TextInterval interval = intervalTier -> intervals.at [intervalNumber];
+		TextInterval interval = intervalTier -> interval (intervalNumber);
 		/*
 		 * Move the text to the left of the boundary.
 		 */
 		autoTextInterval newInterval = TextInterval_create (t, interval -> xmax, U"");
 		interval -> xmax = t;
-		intervalTier -> intervals. addItem_move (newInterval.move());
+		Collection_addItem (intervalTier -> intervals, newInterval.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": boundary not inserted.");
 	}
@@ -1169,21 +1185,21 @@ void TextGrid_insertBoundary (TextGrid me, int tierNumber, double t) {
 void IntervalTier_removeLeftBoundary (IntervalTier me, long intervalNumber) {
 	try {
 		Melder_assert (intervalNumber > 1);
-		Melder_assert (intervalNumber <= my intervals.size);
-		TextInterval left = my intervals.at [intervalNumber - 1];
-		TextInterval right = my intervals.at [intervalNumber];
+		Melder_assert (intervalNumber <= my numberOfIntervals ());
+		TextInterval left = my interval (intervalNumber - 1);
+		TextInterval right = my interval (intervalNumber);
 		/*
 		 * Move the text to the left of the boundary.
 		 */
 		left -> xmax = right -> xmax;   // collapse left and right intervals into left interval
-		if (! right -> text) {
+		if (right -> text == NULL) {
 			;
-		} else if (! left -> text) {
+		} else if (left -> text == NULL) {
 			TextInterval_setText (left, right -> text);
 		} else {
 			TextInterval_setText (left, Melder_cat (left -> text, right -> text));
 		}
-		my intervals. removeItem (intervalNumber);   // remove right interval
+		Collection_removeItem (my intervals, intervalNumber);   // remove right interval
 	} catch (MelderError) {
 		Melder_throw (me, U": left boundary not removed.");
 	}
@@ -1208,9 +1224,9 @@ void TextGrid_removeBoundaryAtTime (TextGrid me, int tierNumber, double t) {
 void TextGrid_setIntervalText (TextGrid me, int tierNumber, long intervalNumber, const char32 *text) {
 	try {
 		IntervalTier intervalTier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		if (intervalNumber < 1 || intervalNumber > intervalTier -> intervals.size)
+		if (intervalNumber < 1 || intervalNumber > intervalTier -> numberOfIntervals ())
 			Melder_throw (U"Interval ", intervalNumber, U" does not exist on tier ", tierNumber, U".");
-		TextInterval interval = intervalTier -> intervals.at [intervalNumber];
+		TextInterval interval = intervalTier -> interval (intervalNumber);
 		TextInterval_setText (interval, text);
 	} catch (MelderError) {
 		Melder_throw (me, U": interval text not set.");
@@ -1220,24 +1236,24 @@ void TextGrid_setIntervalText (TextGrid me, int tierNumber, long intervalNumber,
 void TextGrid_insertPoint (TextGrid me, int tierNumber, double t, const char32 *mark) {
 	try {
 		TextTier textTier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
-		if (AnyTier_hasPoint (textTier->asAnyTier(), t))
+		if (AnyTier_hasPoint (textTier, t))
 			Melder_throw (U"There is already a point at ", t, U" seconds.");
 		autoTextPoint newPoint = TextPoint_create (t, mark);
-		textTier -> points. addItem_move (newPoint.move());
+		Collection_addItem (textTier -> points, newPoint.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": point not inserted.");
 	}
 }
 
 void TextTier_removePoint (TextTier me, long ipoint) {
-	Melder_assert (ipoint <= my points.size);
-	my points. removeItem (ipoint);
+	Melder_assert (ipoint <= my numberOfPoints());
+	Collection_removeItem (my points, ipoint);
 }
 
 void TextTier_removePoints (TextTier me, int which_Melder_STRING, const char32 *criterion) {
-	for (long i = my points.size; i > 0; i --)
-		if (Melder_stringMatchesCriterion (my points.at [i] -> mark, which_Melder_STRING, criterion))
-			my points. removeItem (i);
+	for (long i = my numberOfPoints (); i > 0; i --)
+		if (Melder_stringMatchesCriterion (my point (i) -> mark, which_Melder_STRING, criterion))
+			Collection_removeItem (my points, i);
 }
 
 void TextGrid_removePoints (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion) {
@@ -1252,9 +1268,9 @@ void TextGrid_removePoints (TextGrid me, long tierNumber, int which_Melder_STRIN
 void TextGrid_setPointText (TextGrid me, int tierNumber, long pointNumber, const char32 *text) {
 	try {
 		TextTier textTier = TextGrid_checkSpecifiedTierIsPointTier (me, tierNumber);
-		if (pointNumber < 1 || pointNumber > textTier -> points.size)
+		if (pointNumber < 1 || pointNumber > textTier -> numberOfPoints ())
 			Melder_throw (U"Point ", pointNumber, U" does not exist on tier ", tierNumber, U".");
-		TextPoint point = textTier -> points.at [pointNumber];
+		TextPoint point = textTier -> point (pointNumber);
 		TextPoint_setText (point, text);
 	} catch (MelderError) {
 		Melder_throw (me, U": point text not set.");
@@ -1283,7 +1299,7 @@ static void sgmlToPraat (char *text) {
 				{ "ocirc", "\\o^" }, { "ocirc", "\\o^" },
 				{ "Acirc", "\\A^" }, { "Ecirc", "\\E^" }, { "Icirc", "\\I^" },
 				{ "Ocirc", "\\O^" }, { "Ucirc", "\\U^" },
-				{ nullptr, nullptr } };
+				{ NULL, NULL } };
 			char sgmlCode [201];
 			int i = 0;
 			++ sgml;
@@ -1298,14 +1314,14 @@ static void sgmlToPraat (char *text) {
 			}
 			if (i >= 200) Melder_throw (U"Unfinished SGML code.");
 			sgmlCode [i] = '\0';
-			for (i = 0; translations [i]. sgml; i ++) {
+			for (i = 0; translations [i]. sgml != NULL; i ++) {
 				if (strequ (sgmlCode, translations [i]. sgml)) {
 					memcpy (praat, translations [i]. praat, strlen (translations [i]. praat));
 					praat += strlen (translations [i]. praat);
 					break;
 				}
 			}
-			if (! translations [i]. sgml) Melder_throw (U"Unknown SGML code &", Melder_peek8to32 (sgmlCode), U";.");
+			if (translations [i]. sgml == NULL) Melder_throw (U"Unknown SGML code &", Melder_peek8to32 (sgmlCode), U";.");
 		} else {
 			* praat ++ = * sgml ++;
 		}
@@ -1313,7 +1329,7 @@ static void sgmlToPraat (char *text) {
 	*praat = '\0';
 }
 
-autoTextGrid TextGrid_readFromChronologicalTextFile (MelderFile file) {
+TextGrid TextGrid_readFromChronologicalTextFile (MelderFile file) {
 	try {
 		int formatVersion = 0;
 		autoMelderReadText text = MelderReadText_createFromFile (file);
@@ -1322,7 +1338,7 @@ autoTextGrid TextGrid_readFromChronologicalTextFile (MelderFile file) {
 			Melder_throw (U"This is not a chronological TextGrid text file.");
 		autoTextGrid me = Thing_new (TextGrid);
 		my structFunction :: v_readText (text.peek(), formatVersion);
-		my tiers = FunctionList_create ();
+		my tiers = Ordered_create ();
 		long numberOfTiers = texgeti4 (text.peek());
 		for (long itier = 1; itier <= numberOfTiers; itier ++) {
 			autostring32 klas = texgetw2 (text.peek());
@@ -1330,12 +1346,14 @@ autoTextGrid TextGrid_readFromChronologicalTextFile (MelderFile file) {
 				autoIntervalTier tier = Thing_new (IntervalTier);
 				tier -> name = texgetw2 (text.peek());
 				tier -> structFunction :: v_readText (text.peek(), formatVersion);
-				my tiers -> addItem_move (tier.move());
+				tier -> intervals = SortedSetOfDouble_create ();
+				Collection_addItem (my tiers, tier.transfer());
 			} else if (str32equ (klas.peek(), U"TextTier")) {
 				autoTextTier tier = Thing_new (TextTier);
 				tier -> name = texgetw2 (text.peek());
 				tier -> structFunction :: v_readText (text.peek(), formatVersion);
-				my tiers -> addItem_move (tier.move());
+				tier -> points = SortedSetOfDouble_create ();
+				Collection_addItem (my tiers, tier.transfer());
 			} else {
 				Melder_throw (U"Unknown tier class \"", klas.peek(), U"\".");
 			}
@@ -1352,20 +1370,20 @@ autoTextGrid TextGrid_readFromChronologicalTextFile (MelderFile file) {
 					throw;
 				}
 			}
-			Function anyTier = TextGrid_checkSpecifiedTierNumberWithinRange (me.get(), tierNumber);
+			Function anyTier = TextGrid_checkSpecifiedTierNumberWithinRange (me.peek(), tierNumber);
 			if (anyTier -> classInfo == classIntervalTier) {
 				IntervalTier tier = static_cast <IntervalTier> (anyTier);
 				autoTextInterval interval = Thing_new (TextInterval);
 				interval -> v_readText (text.peek(), formatVersion);
-				tier -> intervals. addItem_move (interval.move());   // not earlier: sorting depends on contents of interval
+				Collection_addItem (tier -> intervals, interval.transfer());   // not earlier: sorting depends on contents of interval
 			} else {
 				TextTier tier = static_cast <TextTier> (anyTier);
 				autoTextPoint point = Thing_new (TextPoint);
 				point -> v_readText (text.peek(), formatVersion);
-				tier -> points. addItem_move (point.move());   // not earlier: sorting depends on contents of point
+				Collection_addItem (tier -> points, point.transfer());   // not earlier: sorting depends on contents of point
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not read from chronological text file ", file, U".");
 	}
@@ -1395,9 +1413,9 @@ void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file) {
 		file -> verbose = false;
 		texindent (file);
 		MelderFile_write (file, U"\"Praat chronological TextGrid text file\"\n", my xmin, U" ", my xmax,
-			U"   ! Time domain.\n", my tiers->size, U"   ! Number of tiers.");
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			Function anyTier = my tiers->at [itier];
+			U"   ! Time domain.\n", my numberOfTiers(), U"   ! Number of tiers.");
+		for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+			Function anyTier = my tier (itier);
 			MelderFile_write (file, U"\n");
 			writeQuotedString (file, Thing_className (anyTier));
 			MelderFile_write (file, U" ");
@@ -1407,12 +1425,12 @@ void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file) {
 		for (;;) {
 			double firstRemainingTime = +1e308;
 			long firstRemainingTier = 2000000000, firstRemainingElement = 0;
-			for (long itier = 1; itier <= my tiers->size; itier ++) {
-				Function anyTier = my tiers->at [itier];
+			for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+				Function anyTier = my tier (itier);
 				if (anyTier -> classInfo == classIntervalTier) {
 					IntervalTier tier = static_cast <IntervalTier> (anyTier);
-					for (long ielement = 1; ielement <= tier -> intervals.size; ielement ++) {
-						TextInterval interval = tier -> intervals.at [ielement];
+					for (long ielement = 1; ielement <= tier -> numberOfIntervals(); ielement ++) {
+						TextInterval interval = tier -> interval (ielement);
 						if ((interval -> xmin > sortingTime ||   // sort primarily by time
 							 (interval -> xmin == sortingTime && itier > sortingTier)) &&   // sort secondarily by tier number
 							(interval -> xmin < firstRemainingTime ||   // sort primarily by time
@@ -1425,8 +1443,8 @@ void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file) {
 					}
 				} else {
 					TextTier tier = static_cast <TextTier> (anyTier);
-					for (long ielement = 1; ielement <= tier -> points.size; ielement ++) {
-						TextPoint point = tier -> points.at [ielement];
+					for (long ielement = 1; ielement <= tier -> numberOfPoints(); ielement ++) {
+						TextPoint point = tier -> point (ielement);
 						if ((point -> number > sortingTime ||   // sort primarily by time
 							 (point -> number == sortingTime && itier > sortingTier)) &&   // sort secondarily by tier number
 							(point -> number < firstRemainingTime ||   // sort primarily by time
@@ -1442,16 +1460,16 @@ void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file) {
 			if (firstRemainingElement == 0) {
 				break;
 			} else {
-				Function anyTier = my tiers->at [firstRemainingTier];
+				Function anyTier = my tier (firstRemainingTier);
 				if (anyTier -> classInfo == classIntervalTier) {
 					IntervalTier tier = static_cast <IntervalTier> (anyTier);
-					TextInterval interval = tier -> intervals.at [firstRemainingElement];
+					TextInterval interval = tier -> interval (firstRemainingElement);
 					if (tier -> name) MelderFile_write (file, U"\n\n! ", tier -> name, U":");
 					MelderFile_write (file, U"\n", firstRemainingTier, U" ", interval -> xmin, U" ", interval -> xmax);
 					texputw4 (file, interval -> text, U"", 0,0,0,0,0);
 				} else {
 					TextTier tier = static_cast <TextTier> (anyTier);
-					TextPoint point = tier -> points.at [firstRemainingElement];
+					TextPoint point = tier -> point (firstRemainingElement);
 					if (tier -> name) MelderFile_write (file, U"\n\n! ", tier -> name, U":");
 					MelderFile_write (file, U"\n", firstRemainingTier, U" ", point -> number, U" ");
 					texputw4 (file, point -> mark, U"", 0,0,0,0,0);
@@ -1467,15 +1485,15 @@ void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file) {
 	}
 }
 
-autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
+TextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 	try {
 		autoTextGrid me = Thing_new (TextGrid);
 		long sentenceNumber = 0;
 		double phraseBegin = 0.0, phraseEnd = 0.0;
-		IntervalTier sentenceTier = nullptr, phraseTier = nullptr;
-		TextInterval lastInterval = nullptr;
+		IntervalTier sentenceTier = NULL, phraseTier = NULL;
+		TextInterval lastInterval = NULL;
 		static char phrase [1000];
-		my tiers = FunctionList_create ();
+		my tiers = Ordered_create ();
 		autoMelderFile mfile = MelderFile_open (file);
 		char *line = MelderFile_readLine (file);
 		if (! strequ (line, "<?xml version=\"1.0\"?>"))
@@ -1521,8 +1539,8 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 				/*
 				 * Does this speaker name occur in the tiers?
 				 */
-				for (long itier = 1; itier <= my tiers->size; itier ++) {
-					IntervalTier tier = static_cast <IntervalTier> (my tiers->at [itier]);
+				for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+					IntervalTier tier = static_cast <IntervalTier> (my tier (itier));
 					if (str32equ (tier -> name, Melder_peek8to32 (speakerName))) {
 						speakerTier = itier;
 						break;
@@ -1533,18 +1551,22 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 					 * Create two new tiers.
 					 */
 					autoIntervalTier newSentenceTier = Thing_new (IntervalTier);
+					newSentenceTier -> intervals = SortedSetOfDouble_create ();
 					newSentenceTier -> xmin = 0.0;
 					newSentenceTier -> xmax = my xmax;
-					Thing_setName (newSentenceTier.get(), Melder_peek8to32 (speakerName));
-					sentenceTier = (IntervalTier) my tiers -> addItem_move (newSentenceTier.move());
+					Thing_setName (newSentenceTier.peek(), Melder_peek8to32 (speakerName));
+					sentenceTier = newSentenceTier.peek();   // for later use; this seems safe
+					Collection_addItem (my tiers, newSentenceTier.transfer());
 					autoIntervalTier newPhraseTier = Thing_new (IntervalTier);
+					newPhraseTier -> intervals = SortedSetOfDouble_create ();
 					newPhraseTier -> xmin = 0.0;
 					newPhraseTier -> xmax = my xmax;
-					Thing_setName (newPhraseTier.get(), Melder_peek8to32 (speakerName));
-					phraseTier = (IntervalTier) my tiers -> addItem_move (newPhraseTier.move());
+					Thing_setName (newPhraseTier.peek(), Melder_peek8to32 (speakerName));
+					phraseTier = newPhraseTier.peek();
+					Collection_addItem (my tiers, newPhraseTier.transfer());
 				} else {
-					sentenceTier = (IntervalTier) my tiers->at [speakerTier];
-					phraseTier = (IntervalTier) my tiers->at [speakerTier + 1];
+					sentenceTier = (IntervalTier) my tier (speakerTier);
+					phraseTier = (IntervalTier) my tier (speakerTier + 1);
 				}
 				tb = atof (arg4 + 4), te = atof (arg5 + 4);
 				if (te <= tb)
@@ -1552,24 +1574,24 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 				/*
 				 * We are going to add one or two intervals to the sentence tier.
 				 */
-				if (sentenceTier -> intervals.size > 0) {
-					TextInterval latestInterval = sentenceTier -> intervals.at [sentenceTier -> intervals.size];
+				if (sentenceTier -> numberOfIntervals() > 0) {
+					TextInterval latestInterval = sentenceTier -> interval (sentenceTier -> numberOfIntervals());
 					if (tb > latestInterval -> xmax) {
 						autoTextInterval interval = TextInterval_create (latestInterval -> xmax, tb, U"");
-						sentenceTier -> intervals.addItem_move (interval.move());
+						Collection_addItem (sentenceTier -> intervals, interval.transfer());
 					} else if (tb < latestInterval -> xmax) {
 						Melder_throw (U"Overlap on tier not allowed.");
 					}
 				} else {
 					if (tb > 0.0) {
-						autoTextInterval interval = TextInterval_create (0.0, tb, U"");
-						sentenceTier -> intervals.addItem_move (interval.move());
+						TextInterval interval = TextInterval_create (0.0, tb, U"");
+						Collection_addItem (sentenceTier -> intervals, interval);
 					} else if (tb < 0.0) {
 						Melder_throw (U"Negative times not allowed.");
 					}
 				}
 				autoTextInterval interval = TextInterval_create (tb, te, Melder_integer (++ sentenceNumber));
-				sentenceTier -> intervals.addItem_move (interval.move());
+				Collection_addItem (sentenceTier -> intervals, interval.transfer());
 			} else if (strnequ (line, "    <tw ref=\"", 13)) {
 				int length;
 				double tb, te;
@@ -1605,18 +1627,18 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 						Melder_throw (U"Missing word.");
 					arg7 [length - 3] = '\0';   // truncate "/>
 					strcat (phrase, arg7 + 3);
-					if (phraseTier -> intervals.size > 0) {
-						TextInterval latestInterval = phraseTier -> intervals.at [phraseTier -> intervals.size];
+					if (phraseTier -> numberOfIntervals() > 0) {
+						TextInterval latestInterval = phraseTier -> interval (phraseTier -> numberOfIntervals());
 						if (tb > latestInterval -> xmax) {
 							autoTextInterval interval = TextInterval_create (latestInterval -> xmax, tb, U"");
-							phraseTier -> intervals. addItem_move (interval.move());
+							Collection_addItem (phraseTier -> intervals, interval.transfer());
 						} else if (tb < latestInterval -> xmax) {
 							Melder_throw (U"Overlap on tier not allowed.");
 						}
 					} else {
 						if (tb > 0.0) {
 							autoTextInterval interval = TextInterval_create (0.0, tb, U"");
-							phraseTier -> intervals. addItem_move (interval.move());
+							Collection_addItem (phraseTier -> intervals, interval.transfer());
 						} else if (tb < 0.0) {
 							Melder_throw (U"Negative times not allowed.");
 						}
@@ -1624,8 +1646,8 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 					if (! phraseTier)
 						Melder_throw (U"Phrase outside sentence.");
 					autoTextInterval newLastInterval = TextInterval_create (tb, te, U"");
-					lastInterval = newLastInterval.get();
-					phraseTier -> intervals.addItem_move (newLastInterval.move());
+					lastInterval = newLastInterval.peek();
+					Collection_addItem (phraseTier -> intervals, newLastInterval.transfer());
 					phraseBegin = tb;
 					phraseEnd = te;
 				}
@@ -1635,123 +1657,122 @@ autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file) {
 			sgmlToPraat (phrase);
 			TextInterval_setText (lastInterval, Melder_peek8to32 (phrase));
 		}
-		for (long itier = 1; itier <= my tiers->size; itier ++) {
-			IntervalTier tier = static_cast <IntervalTier> (my tiers->at [itier]);
-			if (tier -> intervals.size > 0) {
-				TextInterval latestInterval = tier -> intervals.at [tier -> intervals.size];
+		for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+			IntervalTier tier = static_cast <IntervalTier> (my tier (itier));
+			if (tier -> numberOfIntervals() > 0) {
+				TextInterval latestInterval = tier -> interval (tier -> numberOfIntervals());
 				if (my xmax > latestInterval -> xmax) {
 					autoTextInterval interval = TextInterval_create (latestInterval -> xmax, my xmax, U"");
-					tier -> intervals. addItem_move (interval.move());
+					Collection_addItem (tier -> intervals, interval.transfer());
 				}
 			} else {
 				autoTextInterval interval = TextInterval_create (my xmin, my xmax, U"");
-				tier -> intervals. addItem_move (interval.move());
+				Collection_addItem (tier -> intervals, interval.transfer());
 			}
 		}
 		mfile.close ();
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid not read from CGN syntax file ", file, U".");
 	}
 }
 
-autoTable TextGrid_downto_Table (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals) {
+Table TextGrid_downto_Table (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals) {
 	long numberOfRows = 0;
-	for (long itier = 1; itier <= my tiers->size; itier ++) {
-		Function anyTier = my tiers->at [itier];
+	for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+		Function anyTier = my tier (itier);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
 			if (includeEmptyIntervals) {
-				numberOfRows += tier -> intervals.size;
+				numberOfRows += tier -> numberOfIntervals();
 			} else {
-				for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-					TextInterval interval = tier -> intervals.at [iinterval];
-					if (interval -> text && interval -> text [0] != U'\0') {
+				for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+					TextInterval interval = tier -> interval (iinterval);
+					if (interval -> text != NULL && interval -> text [0] != U'\0') {
 						numberOfRows ++;
 					}
 				}
 			}
 		} else {
 			TextTier tier = static_cast <TextTier> (anyTier);
-			numberOfRows += tier -> points.size;
+			numberOfRows += tier -> numberOfPoints();
 		}
 	}
 	autoTable thee = Table_createWithoutColumnNames (numberOfRows, 3 + includeLineNumbers + includeTierNames);
 	long icol = 0;
 	if (includeLineNumbers)
-		Table_setColumnLabel (thee.get(), ++ icol, U"line");
-	Table_setColumnLabel (thee.get(), ++ icol, U"tmin");
+		Table_setColumnLabel (thee.peek(), ++ icol, U"line");
+	Table_setColumnLabel (thee.peek(), ++ icol, U"tmin");
 	if (includeTierNames)
-		Table_setColumnLabel (thee.get(), ++ icol, U"tier");
-	Table_setColumnLabel (thee.get(), ++ icol, U"text");
-	Table_setColumnLabel (thee.get(), ++ icol, U"tmax");
+		Table_setColumnLabel (thee.peek(), ++ icol, U"tier");
+	Table_setColumnLabel (thee.peek(), ++ icol, U"text");
+	Table_setColumnLabel (thee.peek(), ++ icol, U"tmax");
 	long irow = 0;
-	for (long itier = 1; itier <= my tiers->size; itier ++) {
-		Function anyTier = my tiers->at [itier];
+	for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+		Function anyTier = my tier (itier);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			for (long iinterval = 1; iinterval <= tier -> intervals.size; iinterval ++) {
-				TextInterval interval = tier -> intervals.at [iinterval];
-				if (includeEmptyIntervals || (interval -> text && interval -> text [0] != U'\0')) {
+			for (long iinterval = 1; iinterval <= tier -> numberOfIntervals(); iinterval ++) {
+				TextInterval interval = tier -> interval (iinterval);
+				if (includeEmptyIntervals || (interval -> text != NULL && interval -> text [0] != U'\0')) {
 					++ irow;
 					icol = 0;
 					if (includeLineNumbers)
-						Table_setNumericValue (thee.get(), irow, ++ icol, irow);
-					Table_setStringValue (thee.get(), irow, ++ icol, Melder_fixed (interval -> xmin, timeDecimals));
+						Table_setNumericValue (thee.peek(), irow, ++ icol, irow);
+					Table_setStringValue (thee.peek(), irow, ++ icol, Melder_fixed (interval -> xmin, timeDecimals));
 					if (includeTierNames)
-						Table_setStringValue (thee.get(), irow, ++ icol, tier -> name);
-					Table_setStringValue (thee.get(), irow, ++ icol, interval -> text);
-					Table_setStringValue (thee.get(), irow, ++ icol, Melder_fixed (interval -> xmax, timeDecimals));
+						Table_setStringValue (thee.peek(), irow, ++ icol, tier -> name);
+					Table_setStringValue (thee.peek(), irow, ++ icol, interval -> text);
+					Table_setStringValue (thee.peek(), irow, ++ icol, Melder_fixed (interval -> xmax, timeDecimals));
 				}
 			}
 		} else {
 			TextTier tier = static_cast <TextTier> (anyTier);
-			for (long ipoint = 1; ipoint <= tier -> points.size; ipoint ++) {
-				TextPoint point = tier -> points.at [ipoint];
+			for (long ipoint = 1; ipoint <= tier -> numberOfPoints(); ipoint ++) {
+				TextPoint point = tier -> point (ipoint);
 				++ irow;
 				icol = 0;
 				if (includeLineNumbers)
-					Table_setNumericValue (thee.get(), irow, ++ icol, irow);
-				Table_setStringValue (thee.get(), irow, ++ icol, Melder_fixed (point -> number, timeDecimals));
+					Table_setNumericValue (thee.peek(), irow, ++ icol, irow);
+				Table_setStringValue (thee.peek(), irow, ++ icol, Melder_fixed (point -> number, timeDecimals));
 				if (includeTierNames)
-					Table_setStringValue (thee.get(), irow, ++ icol, tier -> name);
-				Table_setStringValue (thee.get(), irow, ++ icol, point -> mark);
-				Table_setStringValue (thee.get(), irow, ++ icol, Melder_fixed (point -> number, timeDecimals));
+					Table_setStringValue (thee.peek(), irow, ++ icol, tier -> name);
+				Table_setStringValue (thee.peek(), irow, ++ icol, point -> mark);
+				Table_setStringValue (thee.peek(), irow, ++ icol, Melder_fixed (point -> number, timeDecimals));
 			}
 		}
 	}
 	long columns [1+2] = { 0, 1 + includeLineNumbers, 3 + includeLineNumbers + includeTierNames };   // sort by tmin and tmax
-	Table_sortRows_Assert (thee.get(), columns, 2);
-	return thee;
+	Table_sortRows_Assert (thee.peek(), columns, 2);
+	return thee.transfer();
 }
 
 void TextGrid_list (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals) {
 	try {
 		autoTable table = TextGrid_downto_Table (me, includeLineNumbers, timeDecimals, includeTierNames, includeEmptyIntervals);
-		Table_list (table.get(), false);
+		Table_list (table.peek(), false);
 	} catch (MelderError) {
 		Melder_throw (me, U": not listed.");
 	}
 }
 
 void TextGrid_correctRoundingErrors (TextGrid me) {
-	for (long itier = 1; itier <= my tiers->size; itier ++) {
-		Function anyTier = my tiers->at [itier];
+	for (long itier = 1; itier <= my numberOfTiers(); itier ++) {
+		Function anyTier = my tier (itier);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			Melder_assert (tier -> intervals.size > 0);
-			TextInterval first = tier -> intervals.at [1];
+			TextInterval first = tier -> interval (1);
 			first -> xmin = my xmin;
 			Melder_assert (first -> xmin < first -> xmax);
-			for (long iinterval = 1; iinterval < tier -> intervals.size; iinterval ++) {
-				TextInterval left = tier -> intervals.at [iinterval];
-				TextInterval right = tier -> intervals.at [iinterval + 1];
+			for (long iinterval = 1; iinterval < tier -> numberOfIntervals(); iinterval ++) {
+				TextInterval left = tier -> interval (iinterval);
+				TextInterval right = tier -> interval (iinterval + 1);
 				right -> xmin = left -> xmax;
 				trace (U"tier ", itier, U", interval ", iinterval, U", ", right -> xmin, U" ", right -> xmax);
 				Melder_assert (right -> xmin < right -> xmax);
 			}
-			TextInterval last = tier -> intervals.at [tier -> intervals.size];
-			trace (tier -> intervals.size, U" ", last -> xmax, U" ", my xmax);
+			TextInterval last = tier -> interval (tier -> numberOfIntervals());
+			trace (tier -> numberOfIntervals(), U" ", last -> xmax, U" ", my xmax);
 			last -> xmax = my xmax;
 			Melder_assert (last -> xmax > last -> xmin);
 		}
@@ -1760,11 +1781,11 @@ void TextGrid_correctRoundingErrors (TextGrid me) {
 	}
 }
 
-autoTextGrid TextGrids_concatenate (OrderedOf<structTextGrid>* me) {
+TextGrid TextGrids_concatenate (Collection me) {
 	try {
 		autoTextGrid thee = TextGrids_to_TextGrid_appendContinuous (me, false);
-		TextGrid_correctRoundingErrors (thee.get());
-		return thee;
+		TextGrid_correctRoundingErrors (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrids not concatenated.");
 	}
diff --git a/fon/TextGrid.h b/fon/TextGrid.h
index 0bc251d..8f11f9e 100644
--- a/fon/TextGrid.h
+++ b/fon/TextGrid.h
@@ -25,27 +25,28 @@
 #include "TableOfReal.h"
 #include "Table.h"
 
-Collection_define (FunctionList, OrderedOf, Function) {
-};
-
 #include "TextGrid_def.h"
 
-autoTextPoint TextPoint_create (double time, const char32 *mark);
+oo_CLASS_CREATE (TextPoint, AnyPoint);
+TextPoint TextPoint_create (double time, const char32 *mark);
 
 void TextPoint_setText (TextPoint me, const char32 *text);
 
-autoTextInterval TextInterval_create (double tmin, double tmax, const char32 *text);
+oo_CLASS_CREATE (TextInterval, Function);
+TextInterval TextInterval_create (double tmin, double tmax, const char32 *text);
 
 void TextInterval_setText (TextInterval me, const char32 *text);
 
-autoTextTier TextTier_create (double tmin, double tmax);
+oo_CLASS_CREATE (TextTier, Function);
+TextTier TextTier_create (double tmin, double tmax);
 
 void TextTier_addPoint (TextTier me, double time, const char32 *mark);
-autoTextTier TextTier_readFromXwaves (MelderFile file);
-autoPointProcess TextTier_getPoints (TextTier me, const char32 *text);
+TextTier TextTier_readFromXwaves (MelderFile file);
+PointProcess TextTier_getPoints (TextTier me, const char32 *text);
 
-autoIntervalTier IntervalTier_create (double tmin, double tmax);
-autoIntervalTier IntervalTier_readFromXwaves (MelderFile file);
+oo_CLASS_CREATE (IntervalTier, Function);
+IntervalTier IntervalTier_create (double tmin, double tmax);
+IntervalTier IntervalTier_readFromXwaves (MelderFile file);
 void IntervalTier_writeToXwaves (IntervalTier me, MelderFile file);
 
 long IntervalTier_timeToLowIndex (IntervalTier me, double t);
@@ -53,29 +54,30 @@ long IntervalTier_timeToIndex (IntervalTier me, double t);   // obsolete
 long IntervalTier_timeToHighIndex (IntervalTier me, double t);
 long IntervalTier_hasTime (IntervalTier me, double t);
 long IntervalTier_hasBoundary (IntervalTier me, double t);
-autoPointProcess IntervalTier_getStartingPoints (IntervalTier me, const char32 *text);
-autoPointProcess IntervalTier_getEndPoints (IntervalTier me, const char32 *text);
-autoPointProcess IntervalTier_getCentrePoints (IntervalTier me, const char32 *text);
-autoPointProcess IntervalTier_PointProcess_startToCentre (IntervalTier tier, PointProcess point, double phase);
-autoPointProcess IntervalTier_PointProcess_endToCentre (IntervalTier tier, PointProcess point, double phase);
+PointProcess IntervalTier_getStartingPoints (IntervalTier me, const char32 *text);
+PointProcess IntervalTier_getEndPoints (IntervalTier me, const char32 *text);
+PointProcess IntervalTier_getCentrePoints (IntervalTier me, const char32 *text);
+PointProcess IntervalTier_PointProcess_startToCentre (IntervalTier tier, PointProcess point, double phase);
+PointProcess IntervalTier_PointProcess_endToCentre (IntervalTier tier, PointProcess point, double phase);
 void IntervalTier_removeLeftBoundary (IntervalTier me, long iinterval);
 
 void TextTier_removePoint (TextTier me, long ipoint);
 
-autoTextGrid TextGrid_createWithoutTiers (double tmin, double tmax);
-autoTextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames, const char32 *pointTiers);
+oo_CLASS_CREATE (TextGrid, Function);
+TextGrid TextGrid_createWithoutTiers (double tmin, double tmax);
+TextGrid TextGrid_create (double tmin, double tmax, const char32 *tierNames, const char32 *pointTiers);
 
 long TextGrid_countLabels (TextGrid me, long itier, const char32 *text);
 long TextGrid_countIntervalsWhere (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion);
 long TextGrid_countPointsWhere (TextGrid me, long tierNumber, int which_Melder_STRING, const char32 *criterion);
-autoPointProcess TextGrid_getStartingPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
-autoPointProcess TextGrid_getEndPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
-autoPointProcess TextGrid_getCentrePoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
-autoPointProcess TextGrid_getPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
-autoPointProcess TextGrid_getPoints_preceded (TextGrid me, long tierNumber,
+PointProcess TextGrid_getStartingPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
+PointProcess TextGrid_getEndPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
+PointProcess TextGrid_getCentrePoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
+PointProcess TextGrid_getPoints (TextGrid me, long itier, int which_Melder_STRING, const char32 *criterion);
+PointProcess TextGrid_getPoints_preceded (TextGrid me, long tierNumber,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_precededBy, const char32 *criterion_precededBy);
-autoPointProcess TextGrid_getPoints_followed (TextGrid me, long tierNumber,
+PointProcess TextGrid_getPoints_followed (TextGrid me, long tierNumber,
 	int which_Melder_STRING, const char32 *criterion,
 	int which_Melder_STRING_followedBy, const char32 *criterion_followedBy);
 
@@ -83,20 +85,20 @@ Function TextGrid_checkSpecifiedTierNumberWithinRange (TextGrid me, long tierNum
 IntervalTier TextGrid_checkSpecifiedTierIsIntervalTier (TextGrid me, long tierNumber);
 TextTier TextGrid_checkSpecifiedTierIsPointTier (TextGrid me, long tierNumber);
 
-void TextGrid_addTier_copy (TextGrid me, Function tier);
-autoTextGrid TextGrids_merge (OrderedOf<structTextGrid>* textGrids);
-autoTextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int preserveTimes);
+void TextGrid_addTier (TextGrid me, Function tier);
+TextGrid TextGrid_merge (Collection textGrids);
+TextGrid TextGrid_extractPart (TextGrid me, double tmin, double tmax, int preserveTimes);
 
-autoTextGrid Label_to_TextGrid (Label me, double duration);
-autoTextGrid Label_Function_to_TextGrid (Label me, Function function);
+TextGrid Label_to_TextGrid (Label me, double duration);
+TextGrid Label_Function_to_TextGrid (Label me, Any function);
 
-autoTextTier PointProcess_upto_TextTier (PointProcess me, const char32 *text);
-autoTableOfReal IntervalTier_downto_TableOfReal (IntervalTier me, const char32 *label);
-autoTableOfReal IntervalTier_downto_TableOfReal_any (IntervalTier me);
-autoTableOfReal TextTier_downto_TableOfReal (TextTier me, const char32 *label);
-autoTableOfReal TextTier_downto_TableOfReal_any (TextTier me);
+TextTier PointProcess_upto_TextTier (PointProcess me, const char32 *text);
+TableOfReal IntervalTier_downto_TableOfReal (IntervalTier me, const char32 *label);
+TableOfReal IntervalTier_downto_TableOfReal_any (IntervalTier me);
+TableOfReal TextTier_downto_TableOfReal (TextTier me, const char32 *label);
+TableOfReal TextTier_downto_TableOfReal_any (TextTier me);
 
-autoTextGrid PointProcess_to_TextGrid_vuv (PointProcess me, double maxT, double meanT);
+TextGrid PointProcess_to_TextGrid_vuv (PointProcess me, double maxT, double meanT);
 
 long TextInterval_labelLength (TextInterval me);
 long TextPoint_labelLength (TextPoint me);
@@ -121,14 +123,14 @@ void TextGrid_insertPoint (TextGrid me, int itier, double t, const char32 *mark)
 void TextGrid_setPointText (TextGrid me, int itier, long ipoint, const char32 *text);
 
 void TextGrid_writeToChronologicalTextFile (TextGrid me, MelderFile file);
-autoTextGrid TextGrid_readFromChronologicalTextFile (MelderFile file);
-autoTextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file);
+TextGrid TextGrid_readFromChronologicalTextFile (MelderFile file);
+TextGrid TextGrid_readFromCgnSyntaxFile (MelderFile file);
 
-autoTable TextGrid_downto_Table (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals);
+Table TextGrid_downto_Table (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals);
 void TextGrid_list (TextGrid me, bool includeLineNumbers, int timeDecimals, bool includeTierNames, bool includeEmptyIntervals);
 
 void TextGrid_correctRoundingErrors (TextGrid me);
-autoTextGrid TextGrids_concatenate (OrderedOf<structTextGrid>* me);
+TextGrid TextGrids_concatenate (Collection me);
 
 /* End of file TextGrid.h */
 #endif
diff --git a/fon/TextGridEditor.cpp b/fon/TextGridEditor.cpp
index de53865..157238f 100644
--- a/fon/TextGridEditor.cpp
+++ b/fon/TextGridEditor.cpp
@@ -1,6 +1,6 @@
 /* TextGridEditor.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@ void structTextGridEditor :: v_info () {
 
 static double _TextGridEditor_computeSoundY (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
-	int numberOfTiers = grid -> tiers->size;
+	int numberOfTiers = grid -> tiers -> size;
 	bool showAnalysis = my v_hasAnalysis () && (my p_spectrogram_show || my p_pitch_show || my p_intensity_show || my p_formant_show) && (my d_longSound.data || my d_sound.data);
 	int numberOfVisibleChannels = my d_sound.data ? (my d_sound.data -> ny > 8 ? 8 : my d_sound.data -> ny) :
 		my d_longSound.data ? (my d_longSound.data -> numberOfChannels > 8 ? 8 : my d_longSound.data -> numberOfChannels) : 1;
@@ -61,16 +61,16 @@ static double _TextGridEditor_computeSoundY (TextGridEditor me) {
 static void _AnyTier_identifyClass (Function anyTier, IntervalTier *intervalTier, TextTier *textTier) {
 	if (anyTier -> classInfo == classIntervalTier) {
 		*intervalTier = (IntervalTier) anyTier;
-		*textTier = nullptr;
+		*textTier = NULL;
 	} else {
-		*intervalTier = nullptr;
+		*intervalTier = NULL;
 		*textTier = (TextTier) anyTier;
 	}
 }
 
 static int _TextGridEditor_yWCtoTier (TextGridEditor me, double yWC) {
 	TextGrid grid = (TextGrid) my data;
-	int ntier = grid -> tiers->size;
+	int ntier = grid -> tiers -> size;
 	double soundY = _TextGridEditor_computeSoundY (me);
 	int itier = ntier - (int) floor (yWC / soundY * (double) ntier);
 	if (itier < 1) itier = 1; if (itier > ntier) itier = ntier;
@@ -79,10 +79,9 @@ static int _TextGridEditor_yWCtoTier (TextGridEditor me, double yWC) {
 
 static void _TextGridEditor_timeToInterval (TextGridEditor me, double t, int itier, double *tmin, double *tmax) {
 	TextGrid grid = (TextGrid) my data;
-	Function tier = grid -> tiers->at [itier];
 	IntervalTier intervalTier;
 	TextTier textTier;
-	_AnyTier_identifyClass (tier, & intervalTier, & textTier);
+	_AnyTier_identifyClass ((Function) grid -> tiers -> item [itier], & intervalTier, & textTier);
 	if (intervalTier) {
 		long iinterval = IntervalTier_timeToIndex (intervalTier, t);
 		TextInterval interval;
@@ -90,23 +89,23 @@ static void _TextGridEditor_timeToInterval (TextGridEditor me, double t, int iti
 			if (t < my tmin) {
 				iinterval = 1;
 			} else {
-				iinterval = intervalTier -> intervals.size;
+				iinterval = intervalTier -> intervals -> size;
 			}
 		}
 		Melder_assert (iinterval >= 1);
-		Melder_assert (iinterval <= intervalTier -> intervals.size);
-		interval = intervalTier -> intervals.at [iinterval];
+		Melder_assert (iinterval <= intervalTier -> intervals -> size);
+		interval = (TextInterval) intervalTier -> intervals -> item [iinterval];
 		*tmin = interval -> xmin;
 		*tmax = interval -> xmax;
 	} else {
-		long n = textTier -> points.size;
+		long n = textTier -> points -> size;
 		if (n == 0) {
 			*tmin = my tmin;
 			*tmax = my tmax;
 		} else {
-			long ipointleft = AnyTier_timeToLowIndex (textTier->asAnyTier(), t);
-			*tmin = ipointleft == 0 ? my tmin : textTier -> points.at [ipointleft] -> number;
-			*tmax = ipointleft == n ? my tmax : textTier -> points.at [ipointleft + 1] -> number;
+			long ipointleft = AnyTier_timeToLowIndex (textTier, t);
+			*tmin = ipointleft == 0 ? my tmin : ((TextPoint) textTier -> points -> item [ipointleft]) -> number;
+			*tmax = ipointleft == n ? my tmax : ((TextPoint) textTier -> points -> item [ipointleft + 1]) -> number;
 		}
 	}
 	if (*tmin < my tmin) *tmin = my tmin;   // clip by FunctionEditor's time domain
@@ -115,32 +114,32 @@ static void _TextGridEditor_timeToInterval (TextGridEditor me, double t, int iti
 
 static void checkTierSelection (TextGridEditor me, const char32 *verbPhrase) {
 	TextGrid grid = (TextGrid) my data;
-	if (my selectedTier < 1 || my selectedTier > grid -> tiers->size)
+	if (my selectedTier < 1 || my selectedTier > grid -> tiers -> size)
 		Melder_throw (U"To ", verbPhrase, U", first select a tier by clicking anywhere inside it.");
 }
 
 static long getSelectedInterval (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
-	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers->size);
-	IntervalTier tier = (IntervalTier) grid -> tiers->at [my selectedTier];
+	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers -> size);
+	IntervalTier tier = (IntervalTier) grid -> tiers -> item [my selectedTier];
 	Melder_assert (tier -> classInfo == classIntervalTier);
 	return IntervalTier_timeToIndex (tier, my d_startSelection);
 }
 
 static long getSelectedLeftBoundary (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
-	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers->size);
-	IntervalTier tier = (IntervalTier) grid -> tiers->at [my selectedTier];
+	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers -> size);
+	IntervalTier tier = (IntervalTier) grid -> tiers -> item [my selectedTier];
 	Melder_assert (tier -> classInfo == classIntervalTier);
 	return IntervalTier_hasBoundary (tier, my d_startSelection);
 }
 
 static long getSelectedPoint (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
-	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers->size);
-	TextTier tier = (TextTier) grid -> tiers->at [my selectedTier];
+	Melder_assert (my selectedTier >= 1 || my selectedTier <= grid -> tiers -> size);
+	TextTier tier = (TextTier) grid -> tiers -> item [my selectedTier];
 	Melder_assert (tier -> classInfo == classTextTier);
-	return AnyTier_hasPoint (tier->asAnyTier(), my d_startSelection);
+	return AnyTier_hasPoint (tier, my d_startSelection);
 }
 
 static void scrollToView (TextGridEditor me, double t) {
@@ -163,16 +162,18 @@ static void scrollToView (TextGridEditor me, double t) {
 
 /***** FILE MENU *****/
 
-static void menu_cb_ExtractSelectedTextGrid_preserveTimes (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtractSelectedTextGrid_preserveTimes (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	if (my d_endSelection <= my d_startSelection) Melder_throw (U"No selection.");
 	autoTextGrid extract = TextGrid_extractPart ((TextGrid) my data, my d_startSelection, my d_endSelection, true);
-	Editor_broadcastPublication (me, extract.move());
+	Editor_broadcastPublication (me, extract.transfer());
 }
 
-static void menu_cb_ExtractSelectedTextGrid_timeFromZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtractSelectedTextGrid_timeFromZero (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	if (my d_endSelection <= my d_startSelection) Melder_throw (U"No selection.");
 	autoTextGrid extract = TextGrid_extractPart ((TextGrid) my data, my d_startSelection, my d_endSelection, false);
-	Editor_broadcastPublication (me, extract.move());
+	Editor_broadcastPublication (me, extract.transfer());
 }
 
 void structTextGridEditor :: v_createMenuItems_file_extract (EditorMenu menu) {
@@ -183,9 +184,10 @@ void structTextGridEditor :: v_createMenuItems_file_extract (EditorMenu menu) {
 		EditorMenu_addCommand (menu, U"Extract selected TextGrid (time from 0)", 0, menu_cb_ExtractSelectedTextGrid_timeFromZero);
 }
 
-static void menu_cb_WriteToTextFile (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as TextGrid text file", nullptr)
-		Melder_sprint (defaultName,300, my data -> name, U".TextGrid");
+static void menu_cb_WriteToTextFile (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM_WRITE (U"Save as TextGrid text file", 0)
+		Melder_sprint (defaultName,300, ((Thing) my data) -> name, U".TextGrid");
 	EDITOR_DO_WRITE
 		Data_writeToTextFile (my data, file);
 	EDITOR_END
@@ -196,8 +198,9 @@ void structTextGridEditor :: v_createMenuItems_file_write (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"Save TextGrid as text file...", 'S', menu_cb_WriteToTextFile);
 }
 
-static void menu_cb_DrawVisibleTextGrid (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible TextGrid", nullptr)
+static void menu_cb_DrawVisibleTextGrid (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Draw visible TextGrid", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
@@ -213,15 +216,16 @@ static void menu_cb_DrawVisibleTextGrid (TextGridEditor me, EDITOR_ARGS_FORM) {
 		my v_do_pictureSelection (cmd);
 		my pref_picture_garnish () = GET_INTEGER (U"Garnish");
 		Editor_openPraatPicture (me);
-		TextGrid_Sound_draw ((TextGrid) my data, nullptr, my pictureGraphics, my d_startWindow, my d_endWindow, true, my p_useTextStyles,
+		TextGrid_Sound_draw ((TextGrid) my data, NULL, my pictureGraphics, my d_startWindow, my d_endWindow, true, my p_useTextStyles,
 			my pref_picture_garnish ());
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
-static void menu_cb_DrawVisibleSoundAndTextGrid (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible sound and TextGrid", nullptr)
+static void menu_cb_DrawVisibleSoundAndTextGrid (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Draw visible sound and TextGrid", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
@@ -237,14 +241,11 @@ static void menu_cb_DrawVisibleSoundAndTextGrid (TextGridEditor me, EDITOR_ARGS_
 		my v_do_pictureSelection (cmd);
 		my pref_picture_garnish () = GET_INTEGER (U"Garnish");
 		Editor_openPraatPicture (me);
-		{// scope
-			autoSound sound = my d_longSound.data ?
-				LongSound_extractPart (my d_longSound.data, my d_startWindow, my d_endWindow, true) :
-				Sound_extractPart (my d_sound.data, my d_startWindow, my d_endWindow,
-					kSound_windowShape_RECTANGULAR, 1.0, true);
-			TextGrid_Sound_draw ((TextGrid) my data, sound.get(), my pictureGraphics,
-				my d_startWindow, my d_endWindow, true, my p_useTextStyles, my pref_picture_garnish ());
-		}
+		Sound publish = my d_longSound.data ?
+			LongSound_extractPart (my d_longSound.data, my d_startWindow, my d_endWindow, true) :
+			Sound_extractPart (my d_sound.data, my d_startWindow, my d_endWindow, kSound_windowShape_RECTANGULAR, 1.0, true);
+		TextGrid_Sound_draw ((TextGrid) my data, publish, my pictureGraphics, my d_startWindow, my d_endWindow, true, my p_useTextStyles, my pref_picture_garnish ());
+		forget (publish);
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
 	EDITOR_END
@@ -260,21 +261,26 @@ void structTextGridEditor :: v_createMenuItems_file_draw (EditorMenu menu) {
 /***** EDIT MENU *****/
 
 #ifndef macintosh
-static void menu_cb_Cut (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Cut (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	GuiText_cut (my text);
 }
-static void menu_cb_Copy (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Copy (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	GuiText_copy (my text);
 }
-static void menu_cb_Paste (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Paste (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	GuiText_paste (my text);
 }
-static void menu_cb_Erase (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Erase (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	GuiText_remove (my text);
 }
 #endif
 
-static void menu_cb_Genericize (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Genericize (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	Editor_save (me, U"Convert to Backslash Trigraphs");
 	TextGrid_genericize ((TextGrid) my data);
 	FunctionEditor_updateText (me);
@@ -282,7 +288,8 @@ static void menu_cb_Genericize (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_Nativize (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Nativize (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	Editor_save (me, U"Convert to Unicode");
 	TextGrid_nativize ((TextGrid) my data);
 	FunctionEditor_updateText (me);
@@ -292,45 +299,48 @@ static void menu_cb_Nativize (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 
 /***** QUERY MENU *****/
 
-static void menu_cb_GetStartingPointOfInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_GetStartingPointOfInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"query the starting point of an interval");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long iinterval = IntervalTier_timeToIndex (tier, my d_startSelection);
-		double time = iinterval < 1 || iinterval > tier -> intervals.size ? NUMundefined :
-			tier -> intervals.at [iinterval] -> xmin;
+		double time = iinterval < 1 || iinterval > tier -> intervals -> size ? NUMundefined :
+			((TextInterval) tier -> intervals -> item [iinterval]) -> xmin;
 		Melder_informationReal (time, U"seconds");
 	} else {
 		Melder_throw (U"The selected tier is not an interval tier.");
 	}
 }
 
-static void menu_cb_GetEndPointOfInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_GetEndPointOfInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"query the end point of an interval");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long iinterval = IntervalTier_timeToIndex (tier, my d_startSelection);
-		double time = iinterval < 1 || iinterval > tier -> intervals.size ? NUMundefined :
-			tier -> intervals.at [iinterval] -> xmax;
+		double time = iinterval < 1 || iinterval > tier -> intervals -> size ? NUMundefined :
+			((TextInterval) tier -> intervals -> item [iinterval]) -> xmax;
 		Melder_informationReal (time, U"seconds");
 	} else {
 		Melder_throw (U"The selected tier is not an interval tier.");
 	}
 }
 
-static void menu_cb_GetLabelOfInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_GetLabelOfInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"query the label of an interval");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long iinterval = IntervalTier_timeToIndex (tier, my d_startSelection);
-		const char32 *label = iinterval < 1 || iinterval > tier -> intervals.size ? U"" :
-			tier -> intervals.at [iinterval] -> text;
+		const char32 *label = iinterval < 1 || iinterval > tier -> intervals -> size ? U"" :
+			((TextInterval) tier -> intervals -> item [iinterval]) -> text;
 		Melder_information (label);
 	} else {
 		Melder_throw (U"The selected tier is not an interval tier.");
@@ -341,7 +351,7 @@ static void menu_cb_GetLabelOfInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 
 static void do_selectAdjacentTier (TextGridEditor me, bool previous) {
 	TextGrid grid = (TextGrid) my data;
-	long n = grid -> tiers->size;
+	long n = grid -> tiers -> size;
 	if (n >= 2) {
 		my selectedTier = previous ?
 			my selectedTier > 1 ? my selectedTier - 1 : n :
@@ -351,11 +361,13 @@ static void do_selectAdjacentTier (TextGridEditor me, bool previous) {
 	}
 }
 
-static void menu_cb_SelectPreviousTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SelectPreviousTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentTier (me, true);
 }
 
-static void menu_cb_SelectNextTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SelectNextTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentTier (me, false);
 }
 
@@ -363,10 +375,10 @@ static void do_selectAdjacentInterval (TextGridEditor me, bool previous, bool sh
 	TextGrid grid = (TextGrid) my data;
 	IntervalTier intervalTier;
 	TextTier textTier;
-	if (my selectedTier < 1 || my selectedTier > grid -> tiers->size) return;
-	_AnyTier_identifyClass (grid -> tiers->at [my selectedTier], & intervalTier, & textTier);
+	if (my selectedTier < 1 || my selectedTier > grid -> tiers -> size) return;
+	_AnyTier_identifyClass ((Function) grid -> tiers -> item [my selectedTier], & intervalTier, & textTier);
 	if (intervalTier) {
-		long n = intervalTier -> intervals.size;
+		long n = intervalTier -> intervals -> size;
 		if (n >= 2) {
 			TextInterval interval;
 			long iinterval = IntervalTier_timeToIndex (intervalTier, my d_startSelection);
@@ -375,27 +387,27 @@ static void do_selectAdjacentInterval (TextGridEditor me, bool previous, bool sh
 				long einterval = IntervalTier_timeToIndex (intervalTier, my d_endSelection);
 				if (my d_endSelection == intervalTier -> xmax) einterval ++;
 				if (binterval < iinterval && einterval > iinterval + 1) {
-					interval = intervalTier -> intervals.at [iinterval];
+					interval = (TextInterval) intervalTier -> intervals -> item [iinterval];
 					my d_startSelection = interval -> xmin;
 					my d_endSelection = interval -> xmax;
 				} else if (previous) {
 					if (einterval > iinterval + 1) {
 						if (einterval <= n + 1) {
-							interval = intervalTier -> intervals.at [einterval - 1];
+							interval = (TextInterval) intervalTier -> intervals -> item [einterval - 1];
 							my d_endSelection = interval -> xmin;
 						}
 					} else if (binterval > 1) {
-						interval = intervalTier -> intervals.at [binterval - 1];
+						interval = (TextInterval) intervalTier -> intervals -> item [binterval - 1];
 						my d_startSelection = interval -> xmin;
 					}
 				} else {
 					if (binterval < iinterval) {
 						if (binterval > 0) {
-							interval = intervalTier -> intervals.at [binterval];
+							interval = (TextInterval) intervalTier -> intervals -> item [binterval];
 							my d_startSelection = interval -> xmax;
 						}
 					} else if (einterval <= n) {
-						interval = intervalTier -> intervals.at [einterval];
+						interval = (TextInterval) intervalTier -> intervals -> item [einterval];
 						my d_endSelection = interval -> xmax;
 					}
 				}
@@ -403,44 +415,49 @@ static void do_selectAdjacentInterval (TextGridEditor me, bool previous, bool sh
 				iinterval = previous ?
 					iinterval > 1 ? iinterval - 1 : n :
 					iinterval < n ? iinterval + 1 : 1;
-				interval = intervalTier -> intervals.at [iinterval];
+				interval = (TextInterval) intervalTier -> intervals -> item [iinterval];
 				my d_startSelection = interval -> xmin;
 				my d_endSelection = interval -> xmax;
 			}
 			scrollToView (me, iinterval == n ? my d_startSelection : iinterval == 1 ? my d_endSelection : (my d_startSelection + my d_endSelection) / 2);
 		}
 	} else {
-		long n = textTier -> points.size;
+		long n = textTier -> points -> size;
 		if (n >= 2) {
 			TextPoint point;
-			long ipoint = AnyTier_timeToHighIndex (textTier->asAnyTier(), my d_startSelection);
+			long ipoint = AnyTier_timeToHighIndex (textTier, my d_startSelection);
 			ipoint = previous ?
 				ipoint > 1 ? ipoint - 1 : n :
 				ipoint < n ? ipoint + 1 : 1;
-			point = textTier -> points.at [ipoint];
+			point = (TextPoint) textTier -> points -> item [ipoint];
 			my d_startSelection = my d_endSelection = point -> number;
 			scrollToView (me, my d_startSelection);
 		}
 	}
 }
 
-static void menu_cb_SelectPreviousInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SelectPreviousInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentInterval (me, true, false);
 }
 
-static void menu_cb_SelectNextInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SelectNextInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentInterval (me, false, false);
 }
 
-static void menu_cb_ExtendSelectPreviousInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtendSelectPreviousInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentInterval (me, true, true);
 }
 
-static void menu_cb_ExtendSelectNextInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_ExtendSelectNextInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_selectAdjacentInterval (me, false, true);
 }
 
-static void menu_cb_MoveBtoZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveBtoZero (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	double zero = Sound_getNearestZeroCrossing (my d_sound.data, my d_startSelection, 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_startSelection = zero;
@@ -453,7 +470,8 @@ static void menu_cb_MoveBtoZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_MoveCursorToZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveCursorToZero (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	double zero = Sound_getNearestZeroCrossing (my d_sound.data, 0.5 * (my d_startSelection + my d_endSelection), 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_startSelection = my d_endSelection = zero;
@@ -461,7 +479,8 @@ static void menu_cb_MoveCursorToZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_MoveEtoZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveEtoZero (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	double zero = Sound_getNearestZeroCrossing (my d_sound.data, my d_endSelection, 1);   // STEREO BUG
 	if (NUMdefined (zero)) {
 		my d_endSelection = zero;
@@ -476,8 +495,9 @@ static void menu_cb_MoveEtoZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 
 /***** PITCH MENU *****/
 
-static void menu_cb_DrawTextGridAndPitch (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw TextGrid and Pitch separately", nullptr)
+static void menu_cb_DrawTextGridAndPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Draw TextGrid and Pitch separately", 0)
 		my v_form_pictureWindow (cmd);
 		LABEL (U"", U"TextGrid:")
 		BOOLEAN (U"Show boundaries and points", my default_picture_showBoundaries ());
@@ -507,13 +527,13 @@ static void menu_cb_DrawTextGridAndPitch (TextGridEditor me, EDITOR_ARGS_FORM) {
 			if (! my d_pitch) Melder_throw (U"Cannot compute pitch.");
 		}
 		Editor_openPraatPicture (me);
-		double pitchFloor_hidden = Function_convertStandardToSpecialUnit (my d_pitch.get(), my p_pitch_floor, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchCeiling_hidden = Function_convertStandardToSpecialUnit (my d_pitch.get(), my p_pitch_ceiling, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchFloor_overt = Function_convertToNonlogarithmic (my d_pitch.get(), pitchFloor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchCeiling_overt = Function_convertToNonlogarithmic (my d_pitch.get(), pitchCeiling_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchViewFrom_overt = ( my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewFrom : pitchFloor_overt );
-		double pitchViewTo_overt = ( my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewTo : pitchCeiling_overt );
-		TextGrid_Pitch_drawSeparately ((TextGrid) my data, my d_pitch.get(), my pictureGraphics, my d_startWindow, my d_endWindow,
+		double pitchFloor_hidden = Function_convertStandardToSpecialUnit (my d_pitch, my p_pitch_floor, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchCeiling_hidden = Function_convertStandardToSpecialUnit (my d_pitch, my p_pitch_ceiling, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchFloor_overt = Function_convertToNonlogarithmic (my d_pitch, pitchFloor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchCeiling_overt = Function_convertToNonlogarithmic (my d_pitch, pitchCeiling_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchViewFrom_overt = my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewFrom : pitchFloor_overt;
+		double pitchViewTo_overt = my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewTo : pitchCeiling_overt;
+		TextGrid_Pitch_drawSeparately ((TextGrid) my data, my d_pitch, my pictureGraphics, my d_startWindow, my d_endWindow,
 			pitchViewFrom_overt, pitchViewTo_overt, GET_INTEGER (U"Show boundaries and points"), my p_useTextStyles, GET_INTEGER (U"Garnish"),
 			GET_INTEGER (U"Speckle"), my p_pitch_unit);
 		FunctionEditor_garnish (me);
@@ -527,14 +547,14 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 	TextGrid grid = (TextGrid) my data;
 	IntervalTier intervalTier;
 	TextTier textTier;
-	int ntiers = grid -> tiers->size;
+	int ntiers = grid -> tiers -> size;
 	if (itier < 1 || itier > ntiers)
 		Melder_throw (U"No tier ", itier, U".");
-	_AnyTier_identifyClass (grid -> tiers->at [itier], & intervalTier, & textTier);
+	_AnyTier_identifyClass ((Function) grid -> tiers -> item [itier], & intervalTier, & textTier);
 	Melder_assert (t1 <= t2);
 
 	if (intervalTier) {
-		autoTextInterval rightNewInterval, midNewInterval;
+		TextInterval rightNewInterval = NULL, midNewInterval = NULL;
 		bool t1IsABoundary = IntervalTier_hasTime (intervalTier, t1);
 		bool t2IsABoundary = IntervalTier_hasTime (intervalTier, t2);
 		if (t1 == t2 && t1IsABoundary)
@@ -547,10 +567,10 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 		//Melder_casual ("iinterval2 %ld, t = %f", iinterval2, t2);
 		if (iinterval == 0 || iinterval2 == 0)
 			Melder_throw (U"The selection is outside the time domain of the intervals.");
-		long correctedIinterval2 = t2IsABoundary && iinterval2 == intervalTier -> intervals.size ? iinterval2 + 1 : iinterval2;
+		long correctedIinterval2 = t2IsABoundary && iinterval2 == intervalTier -> intervals -> size ? iinterval2 + 1 : iinterval2;
 		if (correctedIinterval2 > iinterval + 1 || (correctedIinterval2 > iinterval && ! t2IsABoundary))
 			Melder_throw (U"The selection straddles a boundary.");
-		TextInterval interval = intervalTier -> intervals.at [iinterval];
+		TextInterval interval = (TextInterval) intervalTier -> intervals -> item [iinterval];
 
 		if (t1 == t2) {
 			Editor_save (me, U"Add boundary");
@@ -568,7 +588,7 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 			rightNewInterval = TextInterval_create (t2, interval -> xmax, text + right);
 			text [right] = '\0';
 			midNewInterval = TextInterval_create (t1, t2, text + left);
-			if (! wholeTextIsSelected || t1 != t2) text [left] = U'\0';
+			if (! wholeTextIsSelected || t1 != t2) text [left] = '\0';
 			TextInterval_setText (interval, text);
 			Melder_free (text);
 		} else {
@@ -586,6 +606,7 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 				Melder_fatal (U"Boundary unequal: ", interval -> xmin, U" versus ", t1, U".");
 			interval -> xmax = t2;
 			TextInterval_setText (interval, Melder_cat (interval -> text, midNewInterval -> text));
+			forget (midNewInterval);
 		} else if (t2IsABoundary) {
 			/*
 			 * Merge mid and right interval.
@@ -596,12 +617,13 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 			Melder_assert (rightNewInterval -> xmin == t2);
 			Melder_assert (rightNewInterval -> xmax == t2);
 			rightNewInterval -> xmin = t1;
-			TextInterval_setText (rightNewInterval.get(), Melder_cat (midNewInterval -> text, rightNewInterval -> text));
+			TextInterval_setText (rightNewInterval, Melder_cat (midNewInterval -> text, rightNewInterval -> text));
+			forget (midNewInterval);
 		} else {
 			interval -> xmax = t1;
-			if (t1 != t2) intervalTier -> intervals.addItem_move (midNewInterval.move());
+			if (t1 != t2) Collection_addItem (intervalTier -> intervals, midNewInterval);
 		}
-		intervalTier -> intervals.addItem_move (rightNewInterval.move());
+		Collection_addItem (intervalTier -> intervals, rightNewInterval);
 		if (insertSecond && ntiers >= 2 && t1 == t2) {
 			/*
 			 * Find the last time before t on another tier.
@@ -614,19 +636,20 @@ static void insertBoundaryOrPoint (TextGridEditor me, int itier, double t1, doub
 				}
 			}
 			if (tlast > interval -> xmin && tlast < t1) {
-				autoTextInterval newInterval = TextInterval_create (tlast, t1, U"");
+				TextInterval newInterval = TextInterval_create (tlast, t1, U"");
 				interval -> xmax = tlast;
-				intervalTier -> intervals.addItem_move (newInterval.move());
+				Collection_addItem (intervalTier -> intervals, newInterval);
 			}
 		}
 	} else {
-		if (AnyTier_hasPoint (textTier->asAnyTier(), t1))
+		TextPoint newPoint;
+		if (AnyTier_hasPoint (textTier, t1))
 			Melder_throw (U"Cannot add a point at ", Melder_fixed (t1, 6), U" seconds, because there is already a point there.");
 
 		Editor_save (me, U"Add point");
 
-		autoTextPoint newPoint = TextPoint_create (t1, U"");
-		textTier -> points. addItem_move (newPoint.move());
+		newPoint = TextPoint_create (t1, U"");
+		Collection_addItem (textTier -> points, newPoint);
 	}
 	my d_startSelection = my d_endSelection = t1;
 }
@@ -645,19 +668,20 @@ static void do_insertIntervalOnTier (TextGridEditor me, int itier) {
 	}
 }
 
-static void menu_cb_InsertIntervalOnTier1 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 1); }
-static void menu_cb_InsertIntervalOnTier2 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 2); }
-static void menu_cb_InsertIntervalOnTier3 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 3); }
-static void menu_cb_InsertIntervalOnTier4 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 4); }
-static void menu_cb_InsertIntervalOnTier5 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 5); }
-static void menu_cb_InsertIntervalOnTier6 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 6); }
-static void menu_cb_InsertIntervalOnTier7 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 7); }
-static void menu_cb_InsertIntervalOnTier8 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertIntervalOnTier (me, 8); }
+static void menu_cb_InsertIntervalOnTier1 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 1); }
+static void menu_cb_InsertIntervalOnTier2 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 2); }
+static void menu_cb_InsertIntervalOnTier3 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 3); }
+static void menu_cb_InsertIntervalOnTier4 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 4); }
+static void menu_cb_InsertIntervalOnTier5 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 5); }
+static void menu_cb_InsertIntervalOnTier6 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 6); }
+static void menu_cb_InsertIntervalOnTier7 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 7); }
+static void menu_cb_InsertIntervalOnTier8 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertIntervalOnTier (me, 8); }
 
-static void menu_cb_AlignInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_AlignInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"align words");
-	AnyTier tier = static_cast <AnyTier> (grid -> tiers->at [my selectedTier]);
+	AnyTier tier = static_cast <AnyTier> (grid -> tiers -> item [my selectedTier]);
 	if (tier -> classInfo != classIntervalTier)
 		Melder_throw (U"Alignment works only for interval tiers, whereas tier ", my selectedTier, U" is a point tier.\nSelect an interval tier instead.");
 	long intervalNumber = getSelectedInterval (me);
@@ -677,9 +701,10 @@ static void menu_cb_AlignInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_AlignmentSettings (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Alignment settings", nullptr)
-		OPTIONMENU (U"Language", Strings_findString (espeakdata_voices_names.get(), U"English"))
+static void menu_cb_AlignmentSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Alignment settings", 0)
+		OPTIONMENU (U"Language", Strings_findString (espeakdata_voices_names, U"English"))
 		for (long i = 1; i <= espeakdata_voices_names -> numberOfStrings; i ++) {
 			OPTION ((const char32 *) espeakdata_voices_names -> strings [i]);
 		}
@@ -687,8 +712,8 @@ static void menu_cb_AlignmentSettings (TextGridEditor me, EDITOR_ARGS_FORM) {
 		BOOLEAN (U"Include phonemes", my default_align_includePhonemes ())
 		BOOLEAN (U"Allow silences", my default_align_allowSilences ())
 	EDITOR_OK
-		long prefVoice = Strings_findString (espeakdata_voices_names.get(), my p_align_language);
-		if (prefVoice == 0) prefVoice = Strings_findString (espeakdata_voices_names.get(), U"English");
+		long prefVoice = Strings_findString (espeakdata_voices_names, my p_align_language);
+		if (prefVoice == 0) prefVoice = Strings_findString (espeakdata_voices_names, U"English");
 		SET_INTEGER (U"Language", prefVoice);
 		SET_INTEGER (U"Include words", my p_align_includeWords)
 		SET_INTEGER (U"Include phonemes", my p_align_includePhonemes)
@@ -704,10 +729,11 @@ static void menu_cb_AlignmentSettings (TextGridEditor me, EDITOR_ARGS_FORM) {
 
 /***** BOUNDARY/POINT MENU *****/
 
-static void menu_cb_RemovePointOrBoundary (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_RemovePointOrBoundary (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"remove a point or boundary");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long selectedLeftBoundary = getSelectedLeftBoundary (me);
@@ -721,7 +747,7 @@ static void menu_cb_RemovePointOrBoundary (TextGridEditor me, EDITOR_ARGS_DIRECT
 		if (! selectedPoint) Melder_throw (U"To remove a point, first click on it.");
 
 		Editor_save (me, U"Remove point");
-		tier -> points. removeItem (selectedPoint);
+		Collection_removeItem (tier -> points, selectedPoint);
 	}
 	FunctionEditor_updateText (me);
 	FunctionEditor_redraw (me);
@@ -731,9 +757,9 @@ static void menu_cb_RemovePointOrBoundary (TextGridEditor me, EDITOR_ARGS_DIRECT
 static void do_movePointOrBoundary (TextGridEditor me, int where) {
 	double position;
 	TextGrid grid = (TextGrid) my data;
-	if (where == 0 && ! my d_sound.data) return;
+	if (where == 0 && my d_sound.data == NULL) return;
 	checkTierSelection (me, U"move a point or boundary");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		static const char32 *boundarySaveText [3] { U"Move boundary to zero crossing", U"Move boundary to B", U"Move boundary to E" };
@@ -741,8 +767,8 @@ static void do_movePointOrBoundary (TextGridEditor me, int where) {
 		long selectedLeftBoundary = getSelectedLeftBoundary (me);
 		if (! selectedLeftBoundary)
 			Melder_throw (U"To move a boundary, first click on it.");
-		left = tier -> intervals.at [selectedLeftBoundary - 1];
-		right = tier -> intervals.at [selectedLeftBoundary];
+		left = (TextInterval) tier -> intervals -> item [selectedLeftBoundary - 1];
+		right = (TextInterval) tier -> intervals -> item [selectedLeftBoundary];
 		position = where == 1 ? my d_startSelection : where == 2 ? my d_endSelection :
 			Sound_getNearestZeroCrossing (my d_sound.data, left -> xmax, 1);   // STEREO BUG
 		if (position == NUMundefined)
@@ -760,7 +786,7 @@ static void do_movePointOrBoundary (TextGridEditor me, int where) {
 		long selectedPoint = getSelectedPoint (me);
 		if (! selectedPoint)
 			Melder_throw (U"To move a point, first click on it.");
-		point = tier -> points.at [selectedPoint];
+		point = (TextPoint) tier -> points -> item [selectedPoint];
 		position = where == 1 ? my d_startSelection : where == 2 ? my d_endSelection :
 			Sound_getNearestZeroCrossing (my d_sound.data, point -> number, 1);   // STEREO BUG
 		if (position == NUMundefined)
@@ -774,15 +800,18 @@ static void do_movePointOrBoundary (TextGridEditor me, int where) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_MoveToB (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveToB (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_movePointOrBoundary (me, 1);
 }
 
-static void menu_cb_MoveToE (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveToE (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_movePointOrBoundary (me, 2);
 }
 
-static void menu_cb_MoveToZero (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_MoveToZero (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_movePointOrBoundary (me, 0);
 }
 
@@ -800,23 +829,25 @@ static void do_insertOnTier (TextGridEditor me, int itier) {
 	}
 }
 
-static void menu_cb_InsertOnSelectedTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_InsertOnSelectedTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_insertOnTier (me, my selectedTier);
 }
 
-static void menu_cb_InsertOnTier1 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 1); }
-static void menu_cb_InsertOnTier2 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 2); }
-static void menu_cb_InsertOnTier3 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 3); }
-static void menu_cb_InsertOnTier4 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 4); }
-static void menu_cb_InsertOnTier5 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 5); }
-static void menu_cb_InsertOnTier6 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 6); }
-static void menu_cb_InsertOnTier7 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 7); }
-static void menu_cb_InsertOnTier8 (TextGridEditor me, EDITOR_ARGS_DIRECT) { do_insertOnTier (me, 8); }
+static void menu_cb_InsertOnTier1 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 1); }
+static void menu_cb_InsertOnTier2 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 2); }
+static void menu_cb_InsertOnTier3 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 3); }
+static void menu_cb_InsertOnTier4 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 4); }
+static void menu_cb_InsertOnTier5 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 5); }
+static void menu_cb_InsertOnTier6 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 6); }
+static void menu_cb_InsertOnTier7 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 7); }
+static void menu_cb_InsertOnTier8 (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); do_insertOnTier (me, 8); }
 
-static void menu_cb_InsertOnAllTiers (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_InsertOnAllTiers (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	int saveTier = my selectedTier;
-	for (int itier = 1; itier <= grid -> tiers->size; itier ++) {
+	for (int itier = 1; itier <= grid -> tiers -> size; itier ++) {
 		do_insertOnTier (me, itier);
 	}
 	my selectedTier = saveTier;   // only if everything went right; otherwise, the tier where something went wrong will stand selected
@@ -827,12 +858,12 @@ static void menu_cb_InsertOnAllTiers (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 static void findInTier (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"find a text");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long iinterval = IntervalTier_timeToIndex (tier, my d_startSelection) + 1;
-		while (iinterval <= tier -> intervals.size) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		while (iinterval <= tier -> intervals -> size) {
+			TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
 			char32 *text = interval -> text;
 			if (text) {
 				char32 *position = str32str (text, my findString);
@@ -846,13 +877,13 @@ static void findInTier (TextGridEditor me) {
 			}
 			iinterval ++;
 		}
-		if (iinterval > tier -> intervals.size)
+		if (iinterval > tier -> intervals -> size)
 			Melder_beep ();
 	} else {
 		TextTier tier = (TextTier) anyTier;
-		long ipoint = AnyTier_timeToLowIndex (tier->asAnyTier(), my d_startSelection) + 1;
-		while (ipoint <= tier -> points.size) {
-			TextPoint point = tier->points.at [ipoint];
+		long ipoint = AnyTier_timeToLowIndex (tier, my d_startSelection) + 1;
+		while (ipoint <= tier -> points -> size) {
+			TextPoint point = (TextPoint) tier -> points -> item [ipoint];
 			char32 *text = point -> mark;
 			if (text) {
 				char32 *position = str32str (text, my findString);
@@ -865,7 +896,7 @@ static void findInTier (TextGridEditor me) {
 			}
 			ipoint ++;
 		}
-		if (ipoint > tier -> points.size)
+		if (ipoint > tier -> points -> size)
 			Melder_beep ();
 	}
 }
@@ -883,8 +914,9 @@ static void do_find (TextGridEditor me) {
 	}
 }
 
-static void menu_cb_Find (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Find text", nullptr)
+static void menu_cb_Find (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Find text", 0)
 		LABEL (U"", U"Text:")
 		TEXTFIELD (U"string", U"")
 	EDITOR_OK
@@ -895,19 +927,20 @@ static void menu_cb_Find (TextGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_FindAgain (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_FindAgain (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	do_find (me);
 }
 
 static void checkSpellingInTier (TextGridEditor me) {
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"check spelling");
-	Function anyTier = grid -> tiers->at [my selectedTier];
+	Function anyTier = (Function) grid -> tiers -> item [my selectedTier];
 	if (anyTier -> classInfo == classIntervalTier) {
 		IntervalTier tier = (IntervalTier) anyTier;
 		long iinterval = IntervalTier_timeToIndex (tier, my d_startSelection) + 1;
-		while (iinterval <= tier -> intervals.size) {
-			TextInterval interval = tier -> intervals.at [iinterval];
+		while (iinterval <= tier -> intervals -> size) {
+			TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
 			char32 *text = interval -> text;
 			if (text) {
 				long position = 0;
@@ -922,13 +955,13 @@ static void checkSpellingInTier (TextGridEditor me) {
 			}
 			iinterval ++;
 		}
-		if (iinterval > tier -> intervals.size)
+		if (iinterval > tier -> intervals -> size)
 			Melder_beep ();
 	} else {
 		TextTier tier = (TextTier) anyTier;
-		long ipoint = AnyTier_timeToLowIndex (tier->asAnyTier(), my d_startSelection) + 1;
-		while (ipoint <= tier -> points.size) {
-			TextPoint point = tier -> points.at [ipoint];
+		long ipoint = AnyTier_timeToLowIndex (tier, my d_startSelection) + 1;
+		while (ipoint <= tier -> points -> size) {
+			TextPoint point = (TextPoint) tier -> points -> item [ipoint];
 			char32 *text = point -> mark;
 			if (text) {
 				long position = 0;
@@ -942,12 +975,13 @@ static void checkSpellingInTier (TextGridEditor me) {
 			}
 			ipoint ++;
 		}
-		if (ipoint > tier -> points.size)
+		if (ipoint > tier -> points -> size)
 			Melder_beep ();
 	}
 }
 
-static void menu_cb_CheckSpelling (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_CheckSpelling (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	if (my spellingChecker) {
 		long left, right;
 		autostring32 label = GuiText_getStringAndSelectionPosition (my text, & left, & right);
@@ -961,7 +995,8 @@ static void menu_cb_CheckSpelling (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_CheckSpellingInInterval (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_CheckSpellingInInterval (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	if (my spellingChecker) {
 		long left, right;
 		autostring32 label = GuiText_getStringAndSelectionPosition (my text, & left, & right);
@@ -973,7 +1008,8 @@ static void menu_cb_CheckSpellingInInterval (TextGridEditor me, EDITOR_ARGS_DIRE
 	}
 }
 
-static void menu_cb_AddToUserDictionary (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_AddToUserDictionary (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	if (my spellingChecker) {
 		autostring32 word = GuiText_getSelection (my text);
 		SpellingChecker_addNewWord (my spellingChecker, word.peek());
@@ -983,18 +1019,19 @@ static void menu_cb_AddToUserDictionary (TextGridEditor me, EDITOR_ARGS_DIRECT)
 
 /***** TIER MENU *****/
 
-static void menu_cb_RenameTier (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Rename tier", nullptr)
+static void menu_cb_RenameTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Rename tier", 0)
 		SENTENCE (U"Name", U"");
 	EDITOR_OK
 		TextGrid grid = (TextGrid) my data;
 		checkTierSelection (me, U"rename a tier");
-		Daata tier = grid -> tiers->at [my selectedTier];
+		Data tier = (Data) grid -> tiers -> item [my selectedTier];
 		SET_STRING (U"Name", tier -> name ? tier -> name : U"")
 	EDITOR_DO
 		TextGrid grid = (TextGrid) my data;
 		checkTierSelection (me, U"rename a tier");
-		Function tier = grid -> tiers->at [my selectedTier];
+		Function tier = (Function) grid -> tiers -> item [my selectedTier];
 
 		Editor_save (me, U"Rename tier");
 
@@ -1006,22 +1043,24 @@ static void menu_cb_RenameTier (TextGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_PublishTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_PublishTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"publish a tier");
-	Function tier = grid -> tiers->at [my selectedTier];
+	Function tier = (Function) grid -> tiers -> item [my selectedTier];
 	autoTextGrid publish = TextGrid_createWithoutTiers (1e30, -1e30);
-	TextGrid_addTier_copy (publish.get(), tier);
-	Thing_setName (publish.get(), tier -> name);
-	Editor_broadcastPublication (me, publish.move());
+	TextGrid_addTier (publish.peek(), tier);
+	Thing_setName (publish.peek(), tier -> name);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_RemoveAllTextFromTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_RemoveAllTextFromTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
 	checkTierSelection (me, U"remove all text from a tier");
 	IntervalTier intervalTier;
 	TextTier textTier;
-	_AnyTier_identifyClass (grid -> tiers->at [my selectedTier], & intervalTier, & textTier);
+	_AnyTier_identifyClass ((Function) grid -> tiers -> item [my selectedTier], & intervalTier, & textTier);
 
 	Editor_save (me, U"Remove text from tier");
 	if (intervalTier) {
@@ -1035,15 +1074,16 @@ static void menu_cb_RemoveAllTextFromTier (TextGridEditor me, EDITOR_ARGS_DIRECT
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_RemoveTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_RemoveTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
 	TextGrid grid = (TextGrid) my data;
-	if (grid -> tiers->size <= 1) {
+	if (grid -> tiers -> size <= 1) {
 		Melder_throw (U"Sorry, I refuse to remove the last tier.");
 	}
 	checkTierSelection (me, U"remove a tier");
 
 	Editor_save (me, U"Remove tier");
-	grid -> tiers-> removeItem (my selectedTier);
+	Collection_removeItem (grid -> tiers, my selectedTier);
 
 	my selectedTier = 1;
 	FunctionEditor_updateText (me);
@@ -1051,26 +1091,25 @@ static void menu_cb_RemoveTier (TextGridEditor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_AddIntervalTier (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add interval tier", nullptr)
+static void menu_cb_AddIntervalTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Add interval tier", 0)
 		NATURAL (U"Position", U"1 (= at top)")
 		SENTENCE (U"Name", U"")
 	EDITOR_OK
 		TextGrid grid = (TextGrid) my data;
-		SET_STRING (U"Position", Melder_cat (grid -> tiers->size + 1, U" (= at bottom)"))
+		SET_STRING (U"Position", Melder_cat (grid -> tiers -> size + 1, U" (= at bottom)"))
 		SET_STRING (U"Name", U"")
 	EDITOR_DO
 		TextGrid grid = (TextGrid) my data;
 		int position = GET_INTEGER (U"Position");
 		char32 *name = GET_STRING (U"Name");
-		{// scope
-			autoIntervalTier tier = IntervalTier_create (grid -> xmin, grid -> xmax);
-			if (position > grid -> tiers->size) position = grid -> tiers->size + 1;
-			Thing_setName (tier.get(), name);
+		autoIntervalTier tier = IntervalTier_create (grid -> xmin, grid -> xmax);
+		if (position > grid -> tiers -> size) position = grid -> tiers -> size + 1;
+		Thing_setName (tier.peek(), name);
 
-			Editor_save (me, U"Add interval tier");
-			grid -> tiers -> addItemAtPosition_move (tier.move(), position);
-		}
+		Editor_save (me, U"Add interval tier");
+		Ordered_addItemPos (grid -> tiers, tier.transfer(), position);
 
 		my selectedTier = position;
 		FunctionEditor_updateText (me);
@@ -1079,26 +1118,25 @@ static void menu_cb_AddIntervalTier (TextGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_AddPointTier (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Add point tier", nullptr)
+static void menu_cb_AddPointTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Add point tier", 0)
 		NATURAL (U"Position", U"1 (= at top)")
 		SENTENCE (U"Name", U"");
 	EDITOR_OK
 		TextGrid grid = (TextGrid) my data;
-		SET_STRING (U"Position", Melder_cat (grid -> tiers->size + 1, U" (= at bottom)"))
+		SET_STRING (U"Position", Melder_cat (grid -> tiers -> size + 1, U" (= at bottom)"))
 		SET_STRING (U"Name", U"")
 	EDITOR_DO
 		TextGrid grid = (TextGrid) my data;
 		int position = GET_INTEGER (U"Position");
 		char32 *name = GET_STRING (U"Name");
-		{// scope
-			autoTextTier tier = TextTier_create (grid -> xmin, grid -> xmax);
-			if (position > grid -> tiers->size) position = grid -> tiers->size + 1;
-			Thing_setName (tier.get(), name);
+		autoTextTier tier = TextTier_create (grid -> xmin, grid -> xmax);
+		if (position > grid -> tiers -> size) position = grid -> tiers -> size + 1;
+		Thing_setName (tier.peek(), name);
 
-			Editor_save (me, U"Add point tier");
-			grid -> tiers -> addItemAtPosition_move (tier.move(), position);
-		}
+		Editor_save (me, U"Add point tier");
+		Ordered_addItemPos (grid -> tiers, tier.transfer(), position);
 
 		my selectedTier = position;
 		FunctionEditor_updateText (me);
@@ -1107,31 +1145,30 @@ static void menu_cb_AddPointTier (TextGridEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_DuplicateTier (TextGridEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Duplicate tier", nullptr)
+static void menu_cb_DuplicateTier (EDITOR_ARGS) {
+	EDITOR_IAM (TextGridEditor);
+	EDITOR_FORM (U"Duplicate tier", 0)
 		NATURAL (U"Position", U"1 (= at top)")
 		SENTENCE (U"Name", U"")
 	EDITOR_OK
 		TextGrid grid = (TextGrid) my data;
 		if (my selectedTier) {
 			SET_STRING (U"Position", Melder_integer (my selectedTier + 1))
-			SET_STRING (U"Name", grid -> tiers->at [my selectedTier] -> name)
+			SET_STRING (U"Name", ((AnyTier) grid -> tiers -> item [my selectedTier]) -> name)
 		}
 	EDITOR_DO
 		TextGrid grid = (TextGrid) my data;
 		int position = GET_INTEGER (U"Position");
 		char32 *name = GET_STRING (U"Name");
 		checkTierSelection (me, U"duplicate a tier");
-		Function tier = grid -> tiers->at [my selectedTier];
-		{// scope
-			autoFunction newTier = Data_copy (tier);
-			if (position > grid -> tiers->size)
-				position = grid -> tiers->size + 1;
-			Thing_setName (newTier.get(), name);
-
-			Editor_save (me, U"Duplicate tier");
-			grid -> tiers -> addItemAtPosition_move (newTier.move(), position);
-		}
+		AnyTier tier = (AnyTier) grid -> tiers -> item [my selectedTier];
+		autoAnyTier newTier = Data_copy (tier);
+		if (position > grid -> tiers -> size)
+			position = grid -> tiers -> size + 1;
+		Thing_setName (newTier.peek(), name);
+
+		Editor_save (me, U"Duplicate tier");
+		Ordered_addItemPos (grid -> tiers, newTier.transfer(), position);
 
 		my selectedTier = position;
 		FunctionEditor_updateText (me);
@@ -1142,17 +1179,17 @@ static void menu_cb_DuplicateTier (TextGridEditor me, EDITOR_ARGS_FORM) {
 
 /***** HELP MENU *****/
 
-static void menu_cb_TextGridEditorHelp (TextGridEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"TextGridEditor"); }
-static void menu_cb_AboutSpecialSymbols (TextGridEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Special symbols"); }
-static void menu_cb_PhoneticSymbols (TextGridEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Phonetic symbols"); }
-static void menu_cb_AboutTextStyles (TextGridEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Text styles"); }
+static void menu_cb_TextGridEditorHelp (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); Melder_help (U"TextGridEditor"); }
+static void menu_cb_AboutSpecialSymbols (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); Melder_help (U"Special symbols"); }
+static void menu_cb_PhoneticSymbols (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); Melder_help (U"Phonetic symbols"); }
+static void menu_cb_AboutTextStyles (EDITOR_ARGS) { EDITOR_IAM (TextGridEditor); Melder_help (U"Text styles"); }
 
 void structTextGridEditor :: v_createMenus () {
 	TextGridEditor_Parent :: v_createMenus ();
 	EditorMenu menu;
 
 	#ifndef macintosh
-		Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, nullptr);
+		Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, NULL);
 		Editor_addCommand (this, U"Edit", U"Cut text", 'X', menu_cb_Cut);
 		Editor_addCommand (this, U"Edit", U"Cut", Editor_HIDDEN, menu_cb_Cut);
 		Editor_addCommand (this, U"Edit", U"Copy text", 'C', menu_cb_Copy);
@@ -1162,14 +1199,14 @@ void structTextGridEditor :: v_createMenus () {
 		Editor_addCommand (this, U"Edit", U"Erase text", 0, menu_cb_Erase);
 		Editor_addCommand (this, U"Edit", U"Erase", Editor_HIDDEN, menu_cb_Erase);
 	#endif
-	Editor_addCommand (this, U"Edit", U"-- encoding --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- encoding --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Convert entire TextGrid to backslash trigraphs", 0, menu_cb_Genericize);
 	Editor_addCommand (this, U"Edit", U"Genericize entire TextGrid", Editor_HIDDEN, menu_cb_Genericize);
 	Editor_addCommand (this, U"Edit", U"Genericize", Editor_HIDDEN, menu_cb_Genericize);
 	Editor_addCommand (this, U"Edit", U"Convert entire TextGrid to Unicode", 0, menu_cb_Nativize);
 	Editor_addCommand (this, U"Edit", U"Nativize entire TextGrid", Editor_HIDDEN, menu_cb_Nativize);
 	Editor_addCommand (this, U"Edit", U"Nativize", Editor_HIDDEN, menu_cb_Nativize);
-	Editor_addCommand (this, U"Edit", U"-- search --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- search --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Find...", 'F', menu_cb_Find);
 	Editor_addCommand (this, U"Edit", U"Find again", 'G', menu_cb_FindAgain);
 
@@ -1181,7 +1218,7 @@ void structTextGridEditor :: v_createMenus () {
 		Editor_addCommand (this, U"Select", U"Move end of selection to nearest zero crossing", '.', menu_cb_MoveEtoZero);
 	}
 
-	Editor_addCommand (this, U"Query", U"-- query interval --", 0, nullptr);
+	Editor_addCommand (this, U"Query", U"-- query interval --", 0, NULL);
 	Editor_addCommand (this, U"Query", U"Get starting point of interval", 0, menu_cb_GetStartingPointOfInterval);
 	Editor_addCommand (this, U"Query", U"Get end point of interval", 0, menu_cb_GetEndPointOfInterval);
 	Editor_addCommand (this, U"Query", U"Get label of interval", 0, menu_cb_GetLabelOfInterval);
@@ -1190,7 +1227,7 @@ void structTextGridEditor :: v_createMenus () {
 	if (d_sound.data || d_longSound.data) {
 		EditorMenu_addCommand (menu, U"Align interval", 'D', menu_cb_AlignInterval);
 		EditorMenu_addCommand (menu, U"Alignment settings...", 0, menu_cb_AlignmentSettings);
-		EditorMenu_addCommand (menu, U"-- add interval --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- add interval --", 0, NULL);
 	}
 	EditorMenu_addCommand (menu, U"Add interval on tier 1", GuiMenu_COMMAND | '1', menu_cb_InsertIntervalOnTier1);
 	EditorMenu_addCommand (menu, U"Add interval on tier 2", GuiMenu_COMMAND | '2', menu_cb_InsertIntervalOnTier2);
@@ -1206,7 +1243,7 @@ void structTextGridEditor :: v_createMenus () {
 	EditorMenu_addCommand (menu, U"Move to E", 0, menu_cb_MoveToE);*/
 	if (d_sound.data) {
 		EditorMenu_addCommand (menu, U"Move to nearest zero crossing", 0, menu_cb_MoveToZero);
-		EditorMenu_addCommand (menu, U"-- insert boundary --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- insert boundary --", 0, NULL);
 	}
 	EditorMenu_addCommand (menu, U"Add on selected tier", GuiMenu_ENTER, menu_cb_InsertOnSelectedTier);
 	EditorMenu_addCommand (menu, U"Add on tier 1", GuiMenu_COMMAND | GuiMenu_F1, menu_cb_InsertOnTier1);
@@ -1218,7 +1255,7 @@ void structTextGridEditor :: v_createMenus () {
 	EditorMenu_addCommand (menu, U"Add on tier 7", GuiMenu_COMMAND | GuiMenu_F7, menu_cb_InsertOnTier7);
 	EditorMenu_addCommand (menu, U"Add on tier 8", GuiMenu_COMMAND | GuiMenu_F8, menu_cb_InsertOnTier8);
 	EditorMenu_addCommand (menu, U"Add on all tiers", GuiMenu_COMMAND | GuiMenu_F9, menu_cb_InsertOnAllTiers);
-	EditorMenu_addCommand (menu, U"-- remove mark --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- remove mark --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Remove", GuiMenu_OPTION | GuiMenu_BACKSPACE, menu_cb_RemovePointOrBoundary);
 
 	menu = Editor_addMenu (this, U"Tier", 0);
@@ -1226,10 +1263,10 @@ void structTextGridEditor :: v_createMenus () {
 	EditorMenu_addCommand (menu, U"Add point tier...", 0, menu_cb_AddPointTier);
 	EditorMenu_addCommand (menu, U"Duplicate tier...", 0, menu_cb_DuplicateTier);
 	EditorMenu_addCommand (menu, U"Rename tier...", 0, menu_cb_RenameTier);
-	EditorMenu_addCommand (menu, U"-- remove tier --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- remove tier --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Remove all text from tier", 0, menu_cb_RemoveAllTextFromTier);
 	EditorMenu_addCommand (menu, U"Remove entire tier", 0, menu_cb_RemoveTier);
-	EditorMenu_addCommand (menu, U"-- extract tier --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- extract tier --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Extract to list of objects:", GuiMenu_INSENSITIVE, menu_cb_PublishTier /* dummy */);
 	EditorMenu_addCommand (menu, U"Extract entire selected tier", 0, menu_cb_PublishTier);
 
@@ -1237,7 +1274,7 @@ void structTextGridEditor :: v_createMenus () {
 		menu = Editor_addMenu (this, U"Spell", 0);
 		EditorMenu_addCommand (menu, U"Check spelling in tier", GuiMenu_COMMAND | GuiMenu_OPTION | 'L', menu_cb_CheckSpelling);
 		EditorMenu_addCommand (menu, U"Check spelling in interval", 0, menu_cb_CheckSpellingInInterval);
-		EditorMenu_addCommand (menu, U"-- edit lexicon --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- edit lexicon --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Add selected word to user dictionary", 0, menu_cb_AddToUserDictionary);
 	}
 
@@ -1258,7 +1295,9 @@ void structTextGridEditor :: v_createHelpMenuItems (EditorMenu menu) {
 
 /***** CHILDREN *****/
 
-static void gui_text_cb_changed (TextGridEditor me, GuiTextEvent /* event */) {
+static void gui_text_cb_change (I, GuiTextEvent event) {
+	iam (TextGridEditor);
+	(void) event;
 	TextGrid grid = (TextGrid) my data;
 	//Melder_casual (U"gui_text_cb_change 1 in editor ", Melder_pointer (me));
 	if (my suppressRedraw) return;   /* Prevent infinite loop if 'draw' method or Editor_broadcastChange calls GuiText_setString. */
@@ -1267,11 +1306,11 @@ static void gui_text_cb_changed (TextGridEditor me, GuiTextEvent /* event */) {
 		char32 *text = GuiText_getString (my text);
 		IntervalTier intervalTier;
 		TextTier textTier;
-		_AnyTier_identifyClass (grid -> tiers->at [my selectedTier], & intervalTier, & textTier);
+		_AnyTier_identifyClass ((Function) grid -> tiers -> item [my selectedTier], & intervalTier, & textTier);
 		if (intervalTier) {
 			long selectedInterval = getSelectedInterval (me);
 			if (selectedInterval) {
-				TextInterval interval = intervalTier -> intervals.at [selectedInterval];
+				TextInterval interval = (TextInterval) intervalTier -> intervals -> item [selectedInterval];
 				//Melder_casual (U"gui_text_cb_change 3 in editor ", Melder_pointer (me));
 				TextInterval_setText (interval, text);
 				//Melder_casual (U"gui_text_cb_change 4 in editor ", Melder_pointer (me));
@@ -1283,7 +1322,7 @@ static void gui_text_cb_changed (TextGridEditor me, GuiTextEvent /* event */) {
 		} else {
 			long selectedPoint = getSelectedPoint (me);
 			if (selectedPoint) {
-				TextPoint point = textTier -> points.at [selectedPoint];
+				TextPoint point = (TextPoint) textTier -> points -> item [selectedPoint];
 				Melder_free (point -> mark);
 				if (str32spn (text, U" \n\t") != str32len (text))   // any visible characters?
 				point -> mark = Melder_dup_f (text);
@@ -1297,7 +1336,7 @@ static void gui_text_cb_changed (TextGridEditor me, GuiTextEvent /* event */) {
 
 void structTextGridEditor :: v_createChildren () {
 	TextGridEditor_Parent :: v_createChildren ();
-	if (text) GuiText_setChangedCallback (text, gui_text_cb_changed, this);
+	if (text) GuiText_setChangeCallback (text, gui_text_cb_change, this);
 }
 
 void structTextGridEditor :: v_dataChanged () {
@@ -1307,8 +1346,8 @@ void structTextGridEditor :: v_dataChanged () {
 	 * Most changes will involve intervals and boundaries; however, there may also be tier removals.
 	 * Do a simple guess.
 	 */
-	if (selectedTier > grid -> tiers->size) {
-		selectedTier = grid -> tiers->size;
+	if (selectedTier > grid -> tiers -> size) {
+		selectedTier = grid -> tiers -> size;
 	}
 	TextGridEditor_Parent :: v_dataChanged ();   // does all the updating
 }
@@ -1332,20 +1371,20 @@ static void do_drawIntervalTier (TextGridEditor me, IntervalTier tier, int itier
 		bool platformUsesAntiAliasing = false;
 	#endif
 	long x1DC, x2DC, yDC;
-	int selectedInterval = itier == my selectedTier ? getSelectedInterval (me) : 0, iinterval, ninterval = tier -> intervals.size;
-	Graphics_WCtoDC (my d_graphics.get(), my d_startWindow, 0.0, & x1DC, & yDC);
-	Graphics_WCtoDC (my d_graphics.get(), my d_endWindow, 0.0, & x2DC, & yDC);
-	Graphics_setPercentSignIsItalic (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setNumberSignIsBold (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setCircumflexIsSuperscript (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setUnderscoreIsSubscript (my d_graphics.get(), my p_useTextStyles);
+	int selectedInterval = itier == my selectedTier ? getSelectedInterval (me) : 0, iinterval, ninterval = tier -> intervals -> size;
+	Graphics_WCtoDC (my d_graphics, my d_startWindow, 0.0, & x1DC, & yDC);
+	Graphics_WCtoDC (my d_graphics, my d_endWindow, 0.0, & x2DC, & yDC);
+	Graphics_setPercentSignIsItalic (my d_graphics, my p_useTextStyles);
+	Graphics_setNumberSignIsBold (my d_graphics, my p_useTextStyles);
+	Graphics_setCircumflexIsSuperscript (my d_graphics, my p_useTextStyles);
+	Graphics_setUnderscoreIsSubscript (my d_graphics, my p_useTextStyles);
 
 	/*
 	 * Highlight interval: yellow (selected) or green (matching label).
 	 */
 	
 	for (iinterval = 1; iinterval <= ninterval; iinterval ++) {
-		TextInterval interval = tier -> intervals.at [iinterval];
+		TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
 		double tmin = interval -> xmin, tmax = interval -> xmax;
 		if (tmax > my d_startWindow && tmin < my d_endWindow) {   // interval visible?
 			int intervalIsSelected = iinterval == selectedInterval;
@@ -1353,45 +1392,45 @@ static void do_drawIntervalTier (TextGridEditor me, IntervalTier tier, int itier
 			if (tmin < my d_startWindow) tmin = my d_startWindow;
 			if (tmax > my d_endWindow) tmax = my d_endWindow;
 			if (labelMatches) {
-				Graphics_setColour (my d_graphics.get(), Graphics_LIME);
-				Graphics_fillRectangle (my d_graphics.get(), tmin, tmax, 0.0, 1.0);
+				Graphics_setColour (my d_graphics, Graphics_LIME);
+				Graphics_fillRectangle (my d_graphics, tmin, tmax, 0.0, 1.0);
 			}
 			if (intervalIsSelected) {
 				if (labelMatches) {
 					tmin = 0.85 * tmin + 0.15 * tmax;
 					tmax = 0.15 * tmin + 0.85 * tmax;
 				}
-				Graphics_setColour (my d_graphics.get(), Graphics_YELLOW);
-				Graphics_fillRectangle (my d_graphics.get(), tmin, tmax, labelMatches ? 0.15 : 0.0, labelMatches? 0.85: 1.0);
+				Graphics_setColour (my d_graphics, Graphics_YELLOW);
+				Graphics_fillRectangle (my d_graphics, tmin, tmax, labelMatches ? 0.15 : 0.0, labelMatches? 0.85: 1.0);
 			}
 		}
 	}
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_line (my d_graphics.get(), my d_endWindow, 0.0, my d_endWindow, 1.0);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_line (my d_graphics, my d_endWindow, 0.0, my d_endWindow, 1.0);
 
 	/*
 	 * Draw a grey bar and a selection button at the cursor position.
 	 */
 	if (my d_startSelection == my d_endSelection && my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow) {
-		bool cursorAtBoundary = false;
+		int cursorAtBoundary = FALSE;
 		for (iinterval = 2; iinterval <= ninterval; iinterval ++) {
-			TextInterval interval = tier -> intervals.at [iinterval];
-			if (interval -> xmin == my d_startSelection) cursorAtBoundary = true;
+			TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
+			if (interval -> xmin == my d_startSelection) cursorAtBoundary = TRUE;
 		}
 		if (! cursorAtBoundary) {
-			double dy = Graphics_dyMMtoWC (my d_graphics.get(), 1.5);
-			Graphics_setGrey (my d_graphics.get(), 0.8);
-			Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 6.0 : 5.0);
-			Graphics_line (my d_graphics.get(), my d_startSelection, 0.0, my d_startSelection, 1.0);
-			Graphics_setLineWidth (my d_graphics.get(), 1.0);
-			Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-			Graphics_circle_mm (my d_graphics.get(), my d_startSelection, 1.0 - dy, 3.0);
+			double dy = Graphics_dyMMtoWC (my d_graphics, 1.5);
+			Graphics_setGrey (my d_graphics, 0.8);
+			Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 6.0 : 5.0);
+			Graphics_line (my d_graphics, my d_startSelection, 0.0, my d_startSelection, 1.0);
+			Graphics_setLineWidth (my d_graphics, 1.0);
+			Graphics_setColour (my d_graphics, Graphics_BLUE);
+			Graphics_circle_mm (my d_graphics, my d_startSelection, 1.0 - dy, 3.0);
 		}
 	}
 
-	Graphics_setTextAlignment (my d_graphics.get(), my p_alignment, Graphics_HALF);
+	Graphics_setTextAlignment (my d_graphics, my p_alignment, Graphics_HALF);
 	for (iinterval = 1; iinterval <= ninterval; iinterval ++) {
-		TextInterval interval = tier -> intervals.at [iinterval];
+		TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
 		double tmin = interval -> xmin, tmax = interval -> xmax;
 		if (tmin < my tmin) tmin = my tmin; if (tmax > my tmax) tmax = my tmax;
 		if (tmin >= tmax) continue;
@@ -1402,20 +1441,20 @@ static void do_drawIntervalTier (TextGridEditor me, IntervalTier tier, int itier
 		 */
 		if (tmin >= my d_startWindow && tmin <= my d_endWindow && iinterval > 1) {
 			bool boundaryIsSelected = ( my selectedTier == itier && tmin == my d_startSelection );
-			Graphics_setColour (my d_graphics.get(), boundaryIsSelected ? Graphics_RED : Graphics_BLUE);
-			Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 6.0 : 5.0);
-			Graphics_line (my d_graphics.get(), tmin, 0.0, tmin, 1.0);
+			Graphics_setColour (my d_graphics, boundaryIsSelected ? Graphics_RED : Graphics_BLUE);
+			Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 6.0 : 5.0);
+			Graphics_line (my d_graphics, tmin, 0.0, tmin, 1.0);
 
 			/*
 			 * Show alignment with cursor.
 			 */
 			if (tmin == my d_startSelection) {
-				Graphics_setColour (my d_graphics.get(), Graphics_YELLOW);
-				Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 2.0 : 1.0);
-				Graphics_line (my d_graphics.get(), tmin, 0.0, tmin, 1.0);
+				Graphics_setColour (my d_graphics, Graphics_YELLOW);
+				Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 2.0 : 1.0);
+				Graphics_line (my d_graphics, tmin, 0.0, tmin, 1.0);
 			}
 		}
-		Graphics_setLineWidth (my d_graphics.get(), 1.0);
+		Graphics_setLineWidth (my d_graphics, 1.0);
 
 		/*
 		 * Draw label text.
@@ -1423,16 +1462,16 @@ static void do_drawIntervalTier (TextGridEditor me, IntervalTier tier, int itier
 		if (interval -> text && tmax >= my d_startWindow && tmin <= my d_endWindow) {
 			double t1 = my d_startWindow > tmin ? my d_startWindow : tmin;
 			double t2 = my d_endWindow < tmax ? my d_endWindow : tmax;
-			Graphics_setColour (my d_graphics.get(), intervalIsSelected ? Graphics_RED : Graphics_BLACK);
-			Graphics_textRect (my d_graphics.get(), t1, t2, 0.0, 1.0, interval -> text);
-			Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+			Graphics_setColour (my d_graphics, intervalIsSelected ? Graphics_RED : Graphics_BLACK);
+			Graphics_textRect (my d_graphics, t1, t2, 0.0, 1.0, interval -> text);
+			Graphics_setColour (my d_graphics, Graphics_BLACK);
 		}
 
 	}
-	Graphics_setPercentSignIsItalic (my d_graphics.get(), true);
-	Graphics_setNumberSignIsBold (my d_graphics.get(), true);
-	Graphics_setCircumflexIsSuperscript (my d_graphics.get(), true);
-	Graphics_setUnderscoreIsSubscript (my d_graphics.get(), true);
+	Graphics_setPercentSignIsItalic (my d_graphics, TRUE);
+	Graphics_setNumberSignIsBold (my d_graphics, TRUE);
+	Graphics_setCircumflexIsSuperscript (my d_graphics, TRUE);
+	Graphics_setUnderscoreIsSubscript (my d_graphics, TRUE);
 }
 
 static void do_drawTextTier (TextGridEditor me, TextTier tier, int itier) {
@@ -1441,75 +1480,75 @@ static void do_drawTextTier (TextGridEditor me, TextTier tier, int itier) {
 	#else
 		bool platformUsesAntiAliasing = false;
 	#endif
-	int ipoint, npoint = tier -> points.size;
-	Graphics_setPercentSignIsItalic (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setNumberSignIsBold (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setCircumflexIsSuperscript (my d_graphics.get(), my p_useTextStyles);
-	Graphics_setUnderscoreIsSubscript (my d_graphics.get(), my p_useTextStyles);
+	int ipoint, npoint = tier -> points -> size;
+	Graphics_setPercentSignIsItalic (my d_graphics, my p_useTextStyles);
+	Graphics_setNumberSignIsBold (my d_graphics, my p_useTextStyles);
+	Graphics_setCircumflexIsSuperscript (my d_graphics, my p_useTextStyles);
+	Graphics_setUnderscoreIsSubscript (my d_graphics, my p_useTextStyles);
 
 	/*
 	 * Draw a grey bar and a selection button at the cursor position.
 	 */
 	if (my d_startSelection == my d_endSelection && my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow) {
-		bool cursorAtPoint = false;
+		int cursorAtPoint = FALSE;
 		for (ipoint = 1; ipoint <= npoint; ipoint ++) {
-			TextPoint point = tier -> points.at [ipoint];
-			if (point -> number == my d_startSelection) cursorAtPoint = true;
+			TextPoint point = (TextPoint) tier -> points -> item [ipoint];
+			if (point -> number == my d_startSelection) cursorAtPoint = TRUE;
 		}
 		if (! cursorAtPoint) {
-			double dy = Graphics_dyMMtoWC (my d_graphics.get(), 1.5);
-			Graphics_setGrey (my d_graphics.get(), 0.8);
-			Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 6.0 : 5.0);
-			Graphics_line (my d_graphics.get(), my d_startSelection, 0.0, my d_startSelection, 1.0);
-			Graphics_setLineWidth (my d_graphics.get(), 1.0);
-			Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-			Graphics_circle_mm (my d_graphics.get(), my d_startSelection, 1.0 - dy, 3.0);
+			double dy = Graphics_dyMMtoWC (my d_graphics, 1.5);
+			Graphics_setGrey (my d_graphics, 0.8);
+			Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 6.0 : 5.0);
+			Graphics_line (my d_graphics, my d_startSelection, 0.0, my d_startSelection, 1.0);
+			Graphics_setLineWidth (my d_graphics, 1.0);
+			Graphics_setColour (my d_graphics, Graphics_BLUE);
+			Graphics_circle_mm (my d_graphics, my d_startSelection, 1.0 - dy, 3.0);
 		}
 	}
 
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
+	Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
 	for (ipoint = 1; ipoint <= npoint; ipoint ++) {
-		TextPoint point = tier -> points.at [ipoint];
+		TextPoint point = (TextPoint) tier -> points -> item [ipoint];
 		double t = point -> number;
 		if (t >= my d_startWindow && t <= my d_endWindow) {
 			bool pointIsSelected = ( itier == my selectedTier && t == my d_startSelection );
-			Graphics_setColour (my d_graphics.get(), pointIsSelected ? Graphics_RED : Graphics_BLUE);
-			Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 6.0 : 5.0);
-			Graphics_line (my d_graphics.get(), t, 0.0, t, 0.2);
-			Graphics_line (my d_graphics.get(), t, 0.8, t, 1);
-			Graphics_setLineWidth (my d_graphics.get(), 1.0);
+			Graphics_setColour (my d_graphics, pointIsSelected ? Graphics_RED : Graphics_BLUE);
+			Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 6.0 : 5.0);
+			Graphics_line (my d_graphics, t, 0.0, t, 0.2);
+			Graphics_line (my d_graphics, t, 0.8, t, 1);
+			Graphics_setLineWidth (my d_graphics, 1.0);
 
 			/*
 			 * Wipe out the cursor where the text is going to be.
 			 */
-			Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-			Graphics_line (my d_graphics.get(), t, 0.2, t, 0.8);
+			Graphics_setColour (my d_graphics, Graphics_WHITE);
+			Graphics_line (my d_graphics, t, 0.2, t, 0.8);
 
 			/*
 			 * Show alignment with cursor.
 			 */
 			if (my d_startSelection == my d_endSelection && t == my d_startSelection) {
-				Graphics_setColour (my d_graphics.get(), Graphics_YELLOW);
-				Graphics_setLineWidth (my d_graphics.get(), platformUsesAntiAliasing ? 2.0 : 1.0);
-				Graphics_line (my d_graphics.get(), t, 0.0, t, 0.2);
-				Graphics_line (my d_graphics.get(), t, 0.8, t, 1.0);
+				Graphics_setColour (my d_graphics, Graphics_YELLOW);
+				Graphics_setLineWidth (my d_graphics, platformUsesAntiAliasing ? 2.0 : 1.0);
+				Graphics_line (my d_graphics, t, 0.0, t, 0.2);
+				Graphics_line (my d_graphics, t, 0.8, t, 1.0);
 			}
-			Graphics_setColour (my d_graphics.get(), pointIsSelected ? Graphics_RED : Graphics_BLUE);
-			if (point -> mark) Graphics_text (my d_graphics.get(), t, 0.5, point -> mark);
+			Graphics_setColour (my d_graphics, pointIsSelected ? Graphics_RED : Graphics_BLUE);
+			if (point -> mark) Graphics_text (my d_graphics, t, 0.5, point -> mark);
 		}
 	}
-	Graphics_setPercentSignIsItalic (my d_graphics.get(), true);
-	Graphics_setNumberSignIsBold (my d_graphics.get(), true);
-	Graphics_setCircumflexIsSuperscript (my d_graphics.get(), true);
-	Graphics_setUnderscoreIsSubscript (my d_graphics.get(), true);
+	Graphics_setPercentSignIsItalic (my d_graphics, TRUE);
+	Graphics_setNumberSignIsBold (my d_graphics, TRUE);
+	Graphics_setCircumflexIsSuperscript (my d_graphics, TRUE);
+	Graphics_setUnderscoreIsSubscript (my d_graphics, TRUE);
 }
 
 void structTextGridEditor :: v_draw () {
 	TextGrid grid = (TextGrid) data;
 	Graphics_Viewport vp1, vp2;
-	long itier, ntier = grid -> tiers->size;
-	enum kGraphics_font oldFont = Graphics_inqFont (d_graphics.get());
-	int oldFontSize = Graphics_inqFontSize (d_graphics.get());
+	long itier, ntier = grid -> tiers -> size;
+	enum kGraphics_font oldFont = Graphics_inqFont (d_graphics);
+	int oldFontSize = Graphics_inqFontSize (d_graphics);
 	bool showAnalysis = v_hasAnalysis () && (p_spectrogram_show || p_pitch_show || p_intensity_show || p_formant_show) && (d_longSound.data || d_sound.data);
 	double soundY = _TextGridEditor_computeSoundY (this), soundY2 = showAnalysis ? 0.5 * (1.0 + soundY) : soundY;
 
@@ -1517,121 +1556,121 @@ void structTextGridEditor :: v_draw () {
 	 * Draw optional sound.
 	 */
 	if (d_longSound.data || d_sound.data) {
-		vp1 = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, soundY2, 1.0);
-		Graphics_setColour (d_graphics.get(), Graphics_WHITE);
-		Graphics_setWindow (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_fillRectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+		vp1 = Graphics_insetViewport (d_graphics, 0.0, 1.0, soundY2, 1.0);
+		Graphics_setColour (d_graphics, Graphics_WHITE);
+		Graphics_setWindow (d_graphics, 0, 1, 0, 1);
+		Graphics_fillRectangle (d_graphics, 0, 1, 0, 1);
 		TimeSoundEditor_drawSound (this, -1.0, 1.0);
-		//Graphics_flushWs (d_graphics.get());
-		Graphics_resetViewport (d_graphics.get(), vp1);
+		Graphics_flushWs (d_graphics);
+		Graphics_resetViewport (d_graphics, vp1);
 	}
 
 	/*
 	 * Draw tiers.
 	 */
-	if (d_longSound.data || d_sound.data) vp1 = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, 0.0, soundY);
-	Graphics_setColour (d_graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setWindow (d_graphics.get(), d_startWindow, d_endWindow, 0.0, 1.0);
+	if (d_longSound.data || d_sound.data) vp1 = Graphics_insetViewport (d_graphics, 0.0, 1.0, 0.0, soundY);
+	Graphics_setColour (d_graphics, Graphics_WHITE);
+	Graphics_setWindow (d_graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (d_graphics, 0, 1, 0, 1);
+	Graphics_setColour (d_graphics, Graphics_BLACK);
+	Graphics_rectangle (d_graphics, 0, 1, 0, 1);
+	Graphics_setWindow (d_graphics, d_startWindow, d_endWindow, 0.0, 1.0);
 	for (itier = 1; itier <= ntier; itier ++) {
-		Function anyTier = grid -> tiers->at [itier];
+		Function anyTier = (Function) grid -> tiers -> item [itier];
 		bool tierIsSelected = itier == selectedTier;
 		bool isIntervalTier = anyTier -> classInfo == classIntervalTier;
-		vp2 = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0,
+		vp2 = Graphics_insetViewport (d_graphics, 0.0, 1.0,
 			1.0 - (double) itier / (double) ntier,
 			1.0 - (double) (itier - 1) / (double) ntier);
-		Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-		if (itier != 1) Graphics_line (d_graphics.get(), d_startWindow, 1.0, d_endWindow, 1.0);
+		Graphics_setColour (d_graphics, Graphics_BLACK);
+		if (itier != 1) Graphics_line (d_graphics, d_startWindow, 1.0, d_endWindow, 1.0);
 
 		/*
 		 * Show the number and the name of the tier.
 		 */
-		Graphics_setColour (d_graphics.get(), tierIsSelected ? Graphics_RED : Graphics_BLACK);
-		Graphics_setFont (d_graphics.get(), oldFont);
-		Graphics_setFontSize (d_graphics.get(), 14);
-		Graphics_setTextAlignment (d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-		Graphics_text (d_graphics.get(), d_startWindow, 0.5,   tierIsSelected ? U"☞ " : U"", itier);
-		Graphics_setFontSize (d_graphics.get(), oldFontSize);
+		Graphics_setColour (d_graphics, tierIsSelected ? Graphics_RED : Graphics_BLACK);
+		Graphics_setFont (d_graphics, oldFont);
+		Graphics_setFontSize (d_graphics, 14);
+		Graphics_setTextAlignment (d_graphics, Graphics_RIGHT, Graphics_HALF);
+		Graphics_text (d_graphics, d_startWindow, 0.5,   tierIsSelected ? U"☞ " : U"", itier);
+		Graphics_setFontSize (d_graphics, oldFontSize);
 		if (anyTier -> name && anyTier -> name [0]) {
-			Graphics_setTextAlignment (d_graphics.get(), Graphics_LEFT,
+			Graphics_setTextAlignment (d_graphics, Graphics_LEFT,
 				p_showNumberOf == kTextGridEditor_showNumberOf_NOTHING ? Graphics_HALF : Graphics_BOTTOM);
-			Graphics_text (d_graphics.get(), d_endWindow, 0.5, anyTier -> name);
+			Graphics_text (d_graphics, d_endWindow, 0.5, anyTier -> name);
 		}
 		if (p_showNumberOf != kTextGridEditor_showNumberOf_NOTHING) {
-			Graphics_setTextAlignment (d_graphics.get(), Graphics_LEFT, Graphics_TOP);
+			Graphics_setTextAlignment (d_graphics, Graphics_LEFT, Graphics_TOP);
 			if (p_showNumberOf == kTextGridEditor_showNumberOf_INTERVALS_OR_POINTS) {
-				long count = isIntervalTier ? ((IntervalTier) anyTier) -> intervals.size : ((TextTier) anyTier) -> points.size;
+				long count = isIntervalTier ? ((IntervalTier) anyTier) -> intervals -> size : ((TextTier) anyTier) -> points -> size;
 				long position = itier == selectedTier ? ( isIntervalTier ? getSelectedInterval (this) : getSelectedPoint (this) ) : 0;
 				if (position) {
-					Graphics_text (d_graphics.get(), d_endWindow, 0.5,   U"(", position, U"/", count, U")");
+					Graphics_text (d_graphics, d_endWindow, 0.5,   U"(", position, U"/", count, U")");
 				} else {
-					Graphics_text (d_graphics.get(), d_endWindow, 0.5,   U"(", count, U")");
+					Graphics_text (d_graphics, d_endWindow, 0.5,   U"(", count, U")");
 				}
 			} else {
 				Melder_assert (kTextGridEditor_showNumberOf_NONEMPTY_INTERVALS_OR_POINTS);
 				long count = 0;
 				if (isIntervalTier) {
 					IntervalTier tier = (IntervalTier) anyTier;
-					long ninterval = tier -> intervals.size, iinterval;
+					long ninterval = tier -> intervals -> size, iinterval;
 					for (iinterval = 1; iinterval <= ninterval; iinterval ++) {
-						TextInterval interval = tier -> intervals.at [iinterval];
-						if (interval -> text && interval -> text [0] != U'\0') {
+						TextInterval interval = (TextInterval) tier -> intervals -> item [iinterval];
+						if (interval -> text != NULL && interval -> text [0] != '\0') {
 							count ++;
 						}
 					}
 				} else {
 					TextTier tier = (TextTier) anyTier;
-					long npoint = tier -> points.size, ipoint;
+					long npoint = tier -> points -> size, ipoint;
 					for (ipoint = 1; ipoint <= npoint; ipoint ++) {
-						TextPoint point = tier -> points.at [ipoint];
-						if (point -> mark && point -> mark [0] != U'\0') {
+						TextPoint point = (TextPoint) tier -> points -> item [ipoint];
+						if (point -> mark != NULL && point -> mark [0] != '\0') {
 							count ++;
 						}
 					}
 				}
-				Graphics_text (d_graphics.get(), d_endWindow, 0.5,   U"(##", count, U"#)");
+				Graphics_text (d_graphics, d_endWindow, 0.5,   U"(##", count, U"#)");
 			}
 		}
 
-		Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-		Graphics_setFont (d_graphics.get(), kGraphics_font_TIMES);
-		Graphics_setFontSize (d_graphics.get(), p_fontSize);
+		Graphics_setColour (d_graphics, Graphics_BLACK);
+		Graphics_setFont (d_graphics, kGraphics_font_TIMES);
+		Graphics_setFontSize (d_graphics, p_fontSize);
 		if (isIntervalTier)
 			do_drawIntervalTier (this, (IntervalTier) anyTier, itier);
 		else
 			do_drawTextTier (this, (TextTier) anyTier, itier);
-		Graphics_resetViewport (d_graphics.get(), vp2);
+		Graphics_resetViewport (d_graphics, vp2);
 	}
-	Graphics_setColour (d_graphics.get(), Graphics_BLACK);
-	Graphics_setFont (d_graphics.get(), oldFont);
-	Graphics_setFontSize (d_graphics.get(), oldFontSize);
-	if (d_longSound.data || d_sound.data) Graphics_resetViewport (d_graphics.get(), vp1);
-	//Graphics_flushWs (d_graphics.get());
+	Graphics_setColour (d_graphics, Graphics_BLACK);
+	Graphics_setFont (d_graphics, oldFont);
+	Graphics_setFontSize (d_graphics, oldFontSize);
+	if (d_longSound.data || d_sound.data) Graphics_resetViewport (d_graphics, vp1);
+	Graphics_flushWs (d_graphics);
 
 	if (showAnalysis) {
-		vp1 = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, soundY, soundY2);
+		vp1 = Graphics_insetViewport (d_graphics, 0.0, 1.0, soundY, soundY2);
 		v_draw_analysis ();
-		//Graphics_flushWs (d_graphics.get());
-		Graphics_resetViewport (d_graphics.get(), vp1);
+		Graphics_flushWs (d_graphics);
+		Graphics_resetViewport (d_graphics, vp1);
 		/* Draw pulses. */
 		if (p_pulses_show) {
-			vp1 = Graphics_insetViewport (d_graphics.get(), 0.0, 1.0, soundY2, 1.0);
+			vp1 = Graphics_insetViewport (d_graphics, 0.0, 1.0, soundY2, 1.0);
 			v_draw_analysis_pulses ();
 			TimeSoundEditor_drawSound (this, -1.0, 1.0);   // second time, partially across the pulses
-			//Graphics_flushWs (d_graphics.get());
-			Graphics_resetViewport (d_graphics.get(), vp1);
+			Graphics_flushWs (d_graphics);
+			Graphics_resetViewport (d_graphics, vp1);
 		}
 	}
-	Graphics_setWindow (d_graphics.get(), d_startWindow, d_endWindow, 0.0, 1.0);
+	Graphics_setWindow (d_graphics, d_startWindow, d_endWindow, 0.0, 1.0);
 	if (d_longSound.data || d_sound.data) {
-		Graphics_line (d_graphics.get(), d_startWindow, soundY, d_endWindow, soundY);
+		Graphics_line (d_graphics, d_startWindow, soundY, d_endWindow, soundY);
 		if (showAnalysis) {
-			Graphics_line (d_graphics.get(), d_startWindow, soundY2, d_endWindow, soundY2);
-			Graphics_line (d_graphics.get(), d_startWindow, soundY, d_startWindow, soundY2);
-			Graphics_line (d_graphics.get(), d_endWindow, soundY, d_endWindow, soundY2);
+			Graphics_line (d_graphics, d_startWindow, soundY2, d_endWindow, soundY2);
+			Graphics_line (d_graphics, d_startWindow, soundY, d_startWindow, soundY2);
+			Graphics_line (d_graphics, d_endWindow, soundY, d_endWindow, soundY2);
 		}
 	}
 
@@ -1641,32 +1680,32 @@ void structTextGridEditor :: v_draw () {
 	v_updateMenuItems_file ();
 }
 
-static void do_drawWhileDragging (TextGridEditor me, double numberOfTiers, bool selectedTier [], double x, double soundY) {
+static void do_drawWhileDragging (TextGridEditor me, double numberOfTiers, int *selectedTier, double x, double soundY) {
 	long itier;
 	for (itier = 1; itier <= numberOfTiers; itier ++) if (selectedTier [itier]) {
 		double ymin = soundY * (1.0 - (double) itier / numberOfTiers);
 		double ymax = soundY * (1.0 - (double) (itier - 1) / numberOfTiers);
-		Graphics_setLineWidth (my d_graphics.get(), 7.0);
-		Graphics_line (my d_graphics.get(), x, ymin, x, ymax);
+		Graphics_setLineWidth (my d_graphics, 7);
+		Graphics_line (my d_graphics, x, ymin, x, ymax);
 	}
-	Graphics_setLineWidth (my d_graphics.get(), 1);
-	Graphics_line (my d_graphics.get(), x, 0.0, x, 1.01);
-	Graphics_text (my d_graphics.get(), x, 1.01, Melder_fixed (x, 6));
+	Graphics_setLineWidth (my d_graphics, 1);
+	Graphics_line (my d_graphics, x, 0, x, 1.01);
+	Graphics_text (my d_graphics, x, 1.01, Melder_fixed (x, 6));
 }
 
 static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier, int shiftKeyPressed) {
 	TextGrid grid = (TextGrid) my data;
-	int numberOfTiers = grid -> tiers->size, itierDrop;
+	int itier, numberOfTiers = grid -> tiers -> size, itierDrop;
 	double xWC = xbegin, yWC;
 	double leftDraggingBoundary = my tmin, rightDraggingBoundary = my tmax;   // initial dragging range
-	bool selectedTier [1000];
+	int selectedTier [100];
 	double soundY = _TextGridEditor_computeSoundY (me);
 
 	/*
 	 * Determine the set of selected boundaries and points, and the dragging range.
 	 */
-	for (int itier = 1; itier <= numberOfTiers; itier ++) {
-		selectedTier [itier] = false;   // the default
+	for (itier = 1; itier <= numberOfTiers; itier ++) {
+		selectedTier [itier] = FALSE;   /* The default. */
 		/*
 		 * If she has pressed the shift key, let her drag all the boundaries and points at this time.
 		 * Otherwise, let her only drag the boundary or point on the clicked tier.
@@ -1674,13 +1713,13 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 		if (itier == iClickedTier || shiftKeyPressed == my p_shiftDragMultiple) {
 			IntervalTier intervalTier;
 			TextTier textTier;
-			_AnyTier_identifyClass (grid -> tiers->at [itier], & intervalTier, & textTier);
+			_AnyTier_identifyClass ((Function) grid -> tiers -> item [itier], & intervalTier, & textTier);
 			if (intervalTier) {
 				long ibound = IntervalTier_hasBoundary (intervalTier, xbegin);
 				if (ibound) {
-					TextInterval leftInterval = intervalTier -> intervals.at [ibound - 1];
-					TextInterval rightInterval = intervalTier -> intervals.at [ibound];
-					selectedTier [itier] = true;
+					TextInterval leftInterval = (TextInterval) intervalTier -> intervals -> item [ibound - 1];
+					TextInterval rightInterval = (TextInterval) intervalTier -> intervals -> item [ibound];
+					selectedTier [itier] = TRUE;
 					/*
 					 * Prevent her to drag the boundary past its left or right neighbours on the same tier.
 					 */
@@ -1692,23 +1731,23 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 					}
 				}
 			} else {
-				if (AnyTier_hasPoint (textTier->asAnyTier(), xbegin)) {
+				if (AnyTier_hasPoint (textTier, xbegin)) {
 					/*
 					 * Other than with boundaries on interval tiers,
 					 * points on text tiers can be dragged past their neighbours.
 					 */
-					selectedTier [itier] = true;
+					selectedTier [itier] = TRUE;
 				}
 			}
 		}
 	}
 
-	Graphics_xorOn (my d_graphics.get(), Graphics_MAROON);
-	Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_BOTTOM);
+	Graphics_xorOn (my d_graphics, Graphics_MAROON);
+	Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_BOTTOM);
 	do_drawWhileDragging (me, numberOfTiers, selectedTier, xWC, soundY);   // draw at old position
-	while (Graphics_mouseStillDown (my d_graphics.get())) {
+	while (Graphics_mouseStillDown (my d_graphics)) {
 		double xWC_new;
-		Graphics_getMouseLocation (my d_graphics.get(), & xWC_new, & yWC);
+		Graphics_getMouseLocation (my d_graphics, & xWC_new, & yWC);
 		if (xWC_new != xWC) {
 			do_drawWhileDragging (me, numberOfTiers, selectedTier, xWC, soundY);   // undraw at old position
 			xWC = xWC_new;
@@ -1716,7 +1755,7 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 		}
 	}
 	do_drawWhileDragging (me, numberOfTiers, selectedTier, xWC, soundY);   // undraw at new position
-	Graphics_xorOff (my d_graphics.get());
+	Graphics_xorOff (my d_graphics);
 
 	/*
 	 * The simplest way to cancel the dragging operation, is to drag outside the window.
@@ -1730,13 +1769,13 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 	 */
 	itierDrop = _TextGridEditor_yWCtoTier (me, yWC);
 	if (yWC > 0.0 && yWC < soundY && ! selectedTier [itierDrop]) {   // dropped inside an unselected tier?
-		Function anyTierDrop = grid -> tiers->at [itierDrop];
+		Function anyTierDrop = (Function) grid -> tiers -> item [itierDrop];
 		if (anyTierDrop -> classInfo == classIntervalTier) {
 			IntervalTier tierDrop = (IntervalTier) anyTierDrop;
 			long ibound;
-			for (ibound = 1; ibound < tierDrop -> intervals.size; ibound ++) {
-				TextInterval left = tierDrop -> intervals.at [ibound];
-				if (fabs (Graphics_dxWCtoMM (my d_graphics.get(), xWC - left -> xmax)) < 1.5) {   // near a boundary?
+			for (ibound = 1; ibound < tierDrop -> intervals -> size; ibound ++) {
+				TextInterval left = (TextInterval) tierDrop -> intervals -> item [ibound];
+				if (fabs (Graphics_dxWCtoMM (my d_graphics, xWC - left -> xmax)) < 1.5) {   // near a boundary?
 					/*
 					 * Snap to boundary.
 					 */
@@ -1746,9 +1785,9 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 		} else {
 			TextTier tierDrop = (TextTier) anyTierDrop;
 			long ipoint;
-			for (ipoint = 1; ipoint <= tierDrop -> points.size; ipoint ++) {
-				TextPoint point = tierDrop -> points.at [ipoint];
-				if (fabs (Graphics_dxWCtoMM (my d_graphics.get(), xWC - point -> number)) < 1.5) {   // near a point?
+			for (ipoint = 1; ipoint <= tierDrop -> points -> size; ipoint ++) {
+				TextPoint point = (TextPoint) tierDrop -> points -> item [ipoint];
+				if (fabs (Graphics_dxWCtoMM (my d_graphics, xWC - point -> number)) < 1.5) {   // near a point?
 					/*
 					 * Snap to point.
 					 */
@@ -1756,12 +1795,12 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 				}
 			}
 		}
-	} else if (xbegin != my d_startSelection && fabs (Graphics_dxWCtoMM (my d_graphics.get(), xWC - my d_startSelection)) < 1.5) {   // near the cursor?
+	} else if (xbegin != my d_startSelection && fabs (Graphics_dxWCtoMM (my d_graphics, xWC - my d_startSelection)) < 1.5) {   // near the cursor?
 		/*
 		 * Snap to cursor.
 		 */
 		xWC = my d_startSelection;
-	} else if (xbegin != my d_endSelection && fabs (Graphics_dxWCtoMM (my d_graphics.get(), xWC - my d_endSelection)) < 1.5) {   // near the cursor?
+	} else if (xbegin != my d_endSelection && fabs (Graphics_dxWCtoMM (my d_graphics, xWC - my d_endSelection)) < 1.5) {   // near the cursor?
 		/*
 		 * Snap to cursor.
 		 */
@@ -1778,34 +1817,35 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 
 	Editor_save (me, U"Drag");
 
-	for (int itier = 1; itier <= numberOfTiers; itier ++) if (selectedTier [itier]) {
+	for (itier = 1; itier <= numberOfTiers; itier ++) if (selectedTier [itier]) {
 		IntervalTier intervalTier;
 		TextTier textTier;
-		_AnyTier_identifyClass (grid -> tiers->at [itier], & intervalTier, & textTier);
+		_AnyTier_identifyClass ((Function) grid -> tiers -> item [itier], & intervalTier, & textTier);
 		if (intervalTier) {
-			long ibound, numberOfIntervals = intervalTier -> intervals.size;
+			long ibound, numberOfIntervals = intervalTier -> intervals -> size;
+			Any *intervals = intervalTier -> intervals -> item;
 			for (ibound = 2; ibound <= numberOfIntervals; ibound ++) {
-				TextInterval left = intervalTier -> intervals.at [ibound - 1], right = intervalTier -> intervals.at [ibound];
+				TextInterval left = (TextInterval) intervals [ibound - 1], right = (TextInterval) intervals [ibound];
 				if (left -> xmax == xbegin) {   // boundary dragged?
 					left -> xmax = right -> xmin = xWC;   // move boundary to drop site
 					break;
 				}
 			}
 		} else {
-			long iDraggedPoint = AnyTier_hasPoint (textTier->asAnyTier(), xbegin);
+			long iDraggedPoint = AnyTier_hasPoint (textTier, xbegin);
 			if (iDraggedPoint) {
-				long dropSiteHasPoint = AnyTier_hasPoint (textTier->asAnyTier(), xWC);
+				long dropSiteHasPoint = AnyTier_hasPoint (textTier, xWC);
 				if (dropSiteHasPoint) {
 					Melder_warning (U"Cannot drop point on an existing point.");
 				} else {
-					TextPoint point = textTier -> points.at [iDraggedPoint];
+					TextPoint point = (TextPoint) textTier -> points -> item [iDraggedPoint];
 					/*
 					 * Move point to drop site. May have passed another point.
 					 */
-					autoTextPoint newPoint = Data_copy (point);
+					TextPoint newPoint = Data_copy (point);
 					newPoint -> number = xWC;   // move point to drop site
-					textTier -> points. removeItem (iDraggedPoint);
-					textTier -> points. addItem_move (newPoint.move());
+					Collection_removeItem (textTier -> points, iDraggedPoint);
+					Collection_addItem (textTier -> points, newPoint);
 				}
 			}
 		}
@@ -1827,16 +1867,15 @@ static void do_dragBoundary (TextGridEditor me, double xbegin, int iClickedTier,
 	Editor_broadcastDataChanged (me);
 }
 
-bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPressed) {
+int structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPressed) {
 	TextGrid grid = (TextGrid) our data;
 	double tmin, tmax, x, y;
-	long ntiers = grid -> tiers->size, iClickedTier, iClickedInterval, iClickedPoint;
-	int clickedLeftBoundary = 0;
-	bool nearBoundaryOrPoint, nearCursorCircle, drag = false;
+	long ntiers = grid -> tiers -> size, iClickedTier, iClickedInterval, iClickedPoint;
+	int clickedLeftBoundary = 0, nearBoundaryOrPoint, nearCursorCircle, drag = FALSE;
 	IntervalTier intervalTier;
 	TextTier textTier;
-	TextInterval interval = nullptr;
-	TextPoint point = nullptr;
+	TextInterval interval = NULL;
+	TextPoint point = NULL;
 	double soundY = _TextGridEditor_computeSoundY (this);
 	double tnear;
 
@@ -1865,7 +1904,7 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 	}
 
 	_TextGridEditor_timeToInterval (this, xclick, iClickedTier, & tmin, & tmax);
-	_AnyTier_identifyClass (grid -> tiers->at [iClickedTier], & intervalTier, & textTier);
+	_AnyTier_identifyClass ((Function) grid -> tiers -> item [iClickedTier], & intervalTier, & textTier);
 
 	/*
 	 * Get the time of the nearest boundary or point.
@@ -1874,7 +1913,7 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 	if (intervalTier) {
 		iClickedInterval = IntervalTier_timeToIndex (intervalTier, xclick);
 		if (iClickedInterval) {
-			interval = intervalTier -> intervals.at [iClickedInterval];
+			interval = (TextInterval) intervalTier -> intervals -> item [iClickedInterval];
 			if (xclick > 0.5 * (interval -> xmin + interval -> xmax)) {
 				tnear = interval -> xmax;
 				clickedLeftBoundary = iClickedInterval + 1;
@@ -1891,9 +1930,9 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 			return FunctionEditor_UPDATE_NEEDED;
 		}
 	} else {
-		iClickedPoint = AnyTier_timeToNearestIndex (textTier->asAnyTier(), xclick);
+		iClickedPoint = AnyTier_timeToNearestIndex (textTier, xclick);
 		if (iClickedPoint) {
-			point = textTier -> points.at [iClickedPoint];
+			point = (TextPoint) textTier -> points -> item [iClickedPoint];
 			tnear = point -> number;
 		}
 	}
@@ -1902,19 +1941,19 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 	/*
 	 * Where did she click?
 	 */
-	nearBoundaryOrPoint = ( tnear != NUMundefined && fabs (Graphics_dxWCtoMM (our d_graphics.get(), xclick - tnear)) < 1.5 );
-	nearCursorCircle = ( our d_startSelection == our d_endSelection && Graphics_distanceWCtoMM (our d_graphics.get(), xclick, yWC,
-		our d_startSelection, (ntiers + 1 - iClickedTier) * soundY / ntiers - Graphics_dyMMtoWC (our d_graphics.get(), 1.5)) < 1.5 );
+	nearBoundaryOrPoint = tnear != NUMundefined && fabs (Graphics_dxWCtoMM (our d_graphics, xclick - tnear)) < 1.5;
+	nearCursorCircle = our d_startSelection == our d_endSelection && Graphics_distanceWCtoMM (our d_graphics, xclick, yWC,
+		our d_startSelection, (ntiers + 1 - iClickedTier) * soundY / ntiers - Graphics_dyMMtoWC (our d_graphics, 1.5)) < 1.5;
 
 	/*
 	 * Find out whether this is a click or a drag.
 	 */
-	while (Graphics_mouseStillDown (our d_graphics.get())) {
-		Graphics_getMouseLocation (our d_graphics.get(), & x, & y);
+	while (Graphics_mouseStillDown (our d_graphics)) {
+		Graphics_getMouseLocation (our d_graphics, & x, & y);
 		if (x < our d_startWindow) x = our d_startWindow;
 		if (x > our d_endWindow) x = our d_endWindow;
-		if (fabs (Graphics_dxWCtoMM (our d_graphics.get(), x - xclick)) > 1.5) {
-			drag = true;
+		if (fabs (Graphics_dxWCtoMM (our d_graphics, x - xclick)) > 1.5) {
+			drag = TRUE;
 			break;
 		}
 	}
@@ -1924,7 +1963,7 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 		 * Possibility 1: she clicked near a boundary or point.
 		 * Select or drag it.
 		 */
-		if (intervalTier && (clickedLeftBoundary < 2 || clickedLeftBoundary > intervalTier -> intervals.size)) {
+		if (intervalTier && (clickedLeftBoundary < 2 || clickedLeftBoundary > intervalTier -> intervals -> size)) {		
 			/*
 			 * Ignore click on left edge of first interval or right edge of last interval.
 			 */
@@ -1961,7 +2000,7 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 		our selectedTier = iClickedTier;
 		FunctionEditor_marksChanged (this, true);
 		Editor_broadcastDataChanged (this);
-		if (drag) Graphics_waitMouseUp (our d_graphics.get());
+		if (drag) Graphics_waitMouseUp (our d_graphics);
 		return FunctionEditor_NO_UPDATE_NEEDED;
 	} else {
 		/*
@@ -1973,11 +2012,11 @@ bool structTextGridEditor :: v_click (double xclick, double yWC, bool shiftKeyPr
 		}
 		selectedTier = iClickedTier;
 	}
-	if (drag) Graphics_waitMouseUp (our d_graphics.get());
+	if (drag) Graphics_waitMouseUp (our d_graphics);
 	return FunctionEditor_UPDATE_NEEDED;
 }
 
-bool structTextGridEditor :: v_clickB (double t, double yWC) {
+int structTextGridEditor :: v_clickB (double t, double yWC) {
 	double soundY = _TextGridEditor_computeSoundY (this);
 
 	if (yWC > soundY) {   // clicked in sound part?
@@ -2001,7 +2040,7 @@ bool structTextGridEditor :: v_clickB (double t, double yWC) {
 	return FunctionEditor_UPDATE_NEEDED;
 }
 
-bool structTextGridEditor :: v_clickE (double t, double yWC) {
+int structTextGridEditor :: v_clickE (double t, double yWC) {
 	double soundY = _TextGridEditor_computeSoundY (this);
 
 	if (yWC > soundY) {   // clicked in sound part?
@@ -2040,19 +2079,19 @@ void structTextGridEditor :: v_updateText () {
 	if (our selectedTier) {
 		IntervalTier intervalTier;
 		TextTier textTier;
-		_AnyTier_identifyClass (grid -> tiers->at [selectedTier], & intervalTier, & textTier);
+		_AnyTier_identifyClass ((Function) grid -> tiers -> item [selectedTier], & intervalTier, & textTier);
 		if (intervalTier) {
 			long iinterval = IntervalTier_timeToIndex (intervalTier, d_startSelection);
 			if (iinterval) {
-				TextInterval interval = intervalTier -> intervals.at [iinterval];
+				TextInterval interval = (TextInterval) intervalTier -> intervals -> item [iinterval];
 				if (interval -> text) {
 					newText = interval -> text;
 				}
 			}
 		} else {
-			long ipoint = AnyTier_hasPoint (textTier->asAnyTier(), d_startSelection);
+			long ipoint = AnyTier_hasPoint (textTier, d_startSelection);
 			if (ipoint) {
-				TextPoint point = textTier -> points.at [ipoint];
+				TextPoint point = (TextPoint) textTier -> points -> item [ipoint];
 				if (point -> mark) {
 					newText = point -> mark;
 				}
@@ -2061,17 +2100,17 @@ void structTextGridEditor :: v_updateText () {
 	}
 	//Melder_casual ("v_updateText in editor %ld %ls %d", this, name, (int) suppressRedraw);
 	if (our text) {
-		our suppressRedraw = true;   // prevent valueChangedCallback from redrawing
+		our suppressRedraw = TRUE;   // prevent valueChangedCallback from redrawing
 		trace (U"setting new text ", newText);
 		GuiText_setString (text, newText);
 		long cursor = str32len (newText);   // at end
 		GuiText_setSelection (text, cursor, cursor);
-		our suppressRedraw = false;
+		our suppressRedraw = FALSE;
 	}
 }
 
 void structTextGridEditor :: v_prefs_addFields (EditorCommand cmd) {
-	UiField radio;
+	Any radio;
 	NATURAL (U"Font size (points)", default_fontSize ())
 	OPTIONMENU_ENUM (U"Text alignment in intervals", kGraphics_horizontalAlignment, kGraphics_horizontalAlignment_DEFAULT)
 	OPTIONMENU (U"The symbols %#_^ in labels", default_useTextStyles () + 1)
@@ -2117,20 +2156,20 @@ void structTextGridEditor :: v_createMenuItems_view_timeDomain (EditorMenu menu)
 void structTextGridEditor :: v_highlightSelection (double left, double right, double bottom, double top) {
 	if (our v_hasAnalysis () && our p_spectrogram_show && (our d_longSound.data || our d_sound.data)) {
 		double soundY = _TextGridEditor_computeSoundY (this), soundY2 = 0.5 * (1.0 + soundY);
-		//Graphics_highlight (our d_graphics.get(), left, right, bottom, soundY * top + (1 - soundY) * bottom);
-		Graphics_highlight (our d_graphics.get(), left, right, soundY2 * top + (1 - soundY2) * bottom, top);
+		//Graphics_highlight (our d_graphics, left, right, bottom, soundY * top + (1 - soundY) * bottom);
+		Graphics_highlight (our d_graphics, left, right, soundY2 * top + (1 - soundY2) * bottom, top);
 	} else {
-		Graphics_highlight (our d_graphics.get(), left, right, bottom, top);
+		Graphics_highlight (our d_graphics, left, right, bottom, top);
 	}
 }
 
 void structTextGridEditor :: v_unhighlightSelection (double left, double right, double bottom, double top) {
 	if (our v_hasAnalysis () && our p_spectrogram_show && (our d_longSound.data || our d_sound.data)) {
 		double soundY = _TextGridEditor_computeSoundY (this), soundY2 = 0.5 * (1.0 + soundY);
-		//Graphics_unhighlight (our d_graphics.get(), left, right, bottom, soundY * top + (1 - soundY) * bottom);
-		Graphics_unhighlight (our d_graphics.get(), left, right, soundY2 * top + (1 - soundY2) * bottom, top);
+		//Graphics_unhighlight (our d_graphics, left, right, bottom, soundY * top + (1 - soundY) * bottom);
+		Graphics_unhighlight (our d_graphics, left, right, soundY2 * top + (1 - soundY2) * bottom, top);
 	} else {
-		Graphics_unhighlight (our d_graphics.get(), left, right, bottom, top);
+		Graphics_unhighlight (our d_graphics, left, right, bottom, top);
 	}
 }
 
@@ -2170,7 +2209,7 @@ void TextGridEditor_init (TextGridEditor me, const char32 *title, TextGrid grid,
 			my d_startSelection = my d_endSelection = 0.5 * (my d_startWindow + my d_endWindow);
 		FunctionEditor_marksChanged (me, false);
 	}
-	if (spellingChecker)
+	if (spellingChecker != NULL)
 		GuiText_setSelection (my text, 0, 0);
 	if (sound && sound -> xmin == 0.0 && grid -> xmin != 0.0 && grid -> xmax > sound -> xmax)
 		Melder_warning (U"The time domain of the TextGrid (starting at ",
@@ -2180,11 +2219,11 @@ void TextGridEditor_init (TextGridEditor me, const char32 *title, TextGrid grid,
 			U"to shift the starting time of the TextGrid to zero.");
 }
 
-autoTextGridEditor TextGridEditor_create (const char32 *title, TextGrid grid, Sampled sound, bool ownSound, SpellingChecker spellingChecker, const char *callbackSocket) {
+TextGridEditor TextGridEditor_create (const char32 *title, TextGrid grid, Sampled sound, bool ownSound, SpellingChecker spellingChecker, const char *callbackSocket) {
 	try {
 		autoTextGridEditor me = Thing_new (TextGridEditor);
-		TextGridEditor_init (me.get(), title, grid, sound, ownSound, spellingChecker, callbackSocket);
-		return me;
+		TextGridEditor_init (me.peek(), title, grid, sound, ownSound, spellingChecker, callbackSocket);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TextGrid window not created.");
 	}
diff --git a/fon/TextGridEditor.h b/fon/TextGridEditor.h
index 51fa0b7..1bf0eab 100644
--- a/fon/TextGridEditor.h
+++ b/fon/TextGridEditor.h
@@ -55,11 +55,11 @@ Thing_define (TextGridEditor, TimeSoundAnalysisEditor) {
 		override;
 	bool v_hasText ()
 		override { return true; }
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
-	bool v_clickB (double xWC, double yWC)
+	int v_clickB (double xWC, double yWC)
 		override;
-	bool v_clickE (double xWC, double yWC)
+	int v_clickE (double xWC, double yWC)
 		override;
 	void v_play (double tmin, double tmax)
 		override;
@@ -91,7 +91,7 @@ Thing_define (TextGridEditor, TimeSoundAnalysisEditor) {
 
 void TextGridEditor_init (TextGridEditor me, const char32 *title, TextGrid grid, Sampled sound, bool ownSound, SpellingChecker spellingChecker, const char *callbackSocket);
 
-autoTextGridEditor TextGridEditor_create (const char32 *title, TextGrid grid,
+TextGridEditor TextGridEditor_create (const char32 *title, TextGrid grid,
 	Sampled sound,   // either a Sound or a LongSound, or null
 	bool ownSound,
 	SpellingChecker spellingChecker,
diff --git a/fon/TextGrid_Sound.cpp b/fon/TextGrid_Sound.cpp
index 6d7f4e1..260d560 100644
--- a/fon/TextGrid_Sound.cpp
+++ b/fon/TextGrid_Sound.cpp
@@ -1,6 +1,6 @@
 /* TextGrid_Sound.cpp
  *
- * Copyright (C) 1992-2011,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,29 +17,28 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2010/12/06 BDF/EDF files (for EEG)
+ * pb 2010/12/08 split off from TextGrid.c and Sound.c
+ * pb 2011/06/11 C++
+ */
+
 #include "TextGrid_Sound.h"
 #include "Pitch_to_PitchTier.h"
 #include "SpeechSynthesizer_and_TextGrid.h"
 #include "LongSound.h"
 
 static bool IntervalTier_check (IntervalTier me) {
-	for (long iinterval = 1; iinterval <= my intervals.size; iinterval ++) {
-		TextInterval interval = my intervals.at [iinterval];
-		if (interval -> xmin >= interval -> xmax) {
-			Melder_casual (U"Interval ", iinterval, U" starts at ", interval -> xmin,
-				U" but ends at ", interval -> xmax, U" seconds.");
+	for (long iinterval = 1; iinterval <= my numberOfIntervals (); iinterval ++) {
+		TextInterval interval = my interval (iinterval);
+		if (interval -> xmin >= interval -> xmax)
 			return false;
-		}
 	}
-	if (my intervals.size < 2) return true;
-	for (long iinterval = 1; iinterval < my intervals.size; iinterval ++) {
-		TextInterval thisInterval = my intervals.at [iinterval];
-		TextInterval nextInterval = my intervals.at [iinterval + 1];
-		if (thisInterval -> xmax != nextInterval -> xmin) {
-			Melder_casual (U"Interval ", iinterval, U" ends at ", thisInterval -> xmax,
-				U" but the next interval starts at ", nextInterval -> xmin, U" seconds.");
+	if (my numberOfIntervals () < 2) return true;
+	for (long iinterval = 1; iinterval < my numberOfIntervals (); iinterval ++) {
+		TextInterval interval = my interval (iinterval), nextInterval = my interval (iinterval + 1);
+		if (interval -> xmax != nextInterval -> xmin)
 			return false;
-		}
 	}
 	return true;
 }
@@ -56,43 +55,43 @@ static void IntervalTier_insertIntervalDestructively (IntervalTier me, double tm
 		long intervalNumber = IntervalTier_timeToIndex (me, tmin);
 		if (intervalNumber == 0)
 			Melder_throw (U"Cannot add a boundary at ", Melder_fixed (tmin, 6), U" seconds, because this is outside the time domain of the intervals.");
-		TextInterval interval = my intervals.at [intervalNumber];
+		TextInterval interval = my interval (intervalNumber);
 		/*
 		 * Move the text to the left of the boundary.
 		 */
 		autoTextInterval newInterval = TextInterval_create (tmin, interval -> xmax, U"");
 		interval -> xmax = tmin;
-		my intervals. addItem_move (newInterval.move());
+		Collection_addItem (my intervals, newInterval.transfer());
 		firstIntervalNumber = IntervalTier_hasTime (me, interval -> xmin);
 	}
-	Melder_assert (firstIntervalNumber >= 1 && firstIntervalNumber <= my intervals.size);
+	Melder_assert (firstIntervalNumber >= 1 && firstIntervalNumber <= my intervals -> size);
 	long lastIntervalNumber = IntervalTier_hasTime (me, tmax);
 	if (! lastIntervalNumber) {
 		long intervalNumber = IntervalTier_timeToIndex (me, tmax);
 		if (intervalNumber == 0)
 			Melder_throw (U"Cannot add a boundary at ", Melder_fixed (tmin, 6), U" seconds, because this is outside the time domain of the intervals.");
-		TextInterval interval = my intervals.at [intervalNumber];
+		TextInterval interval = my interval (intervalNumber);
 		/*
 		 * Move the text to the right of the boundary.
 		 */
 		autoTextInterval newInterval = TextInterval_create (interval -> xmin, tmax, U"");
 		interval -> xmin = tmax;
-		my intervals. addItem_move (newInterval.move());
+		Collection_addItem (my intervals, newInterval.transfer());
 		lastIntervalNumber = IntervalTier_hasTime (me, interval -> xmax);
 	}
-	Melder_assert (lastIntervalNumber >= 1 && lastIntervalNumber <= my intervals.size);
+	Melder_assert (lastIntervalNumber >= 1 && lastIntervalNumber <= my intervals -> size);
 	/*
 	 * Empty the interval in the word tier.
 	 */
 	trace (U"Empty interval %ld down to ", lastIntervalNumber, U".", firstIntervalNumber);
 	for (long iinterval = lastIntervalNumber; iinterval >= firstIntervalNumber; iinterval --) {
-		TextInterval interval = my intervals.at [iinterval];
+		TextInterval interval = my interval (iinterval);
 		if (interval -> xmin > tmin && interval -> xmin < tmax) {
 			Melder_assert (iinterval > 1);
-			TextInterval previous = my intervals.at [iinterval - 1];
+			TextInterval previous = (TextInterval) my intervals -> item [iinterval - 1];
 			previous -> xmax = tmax;   // collapse left and right intervals into left interval
 			TextInterval_setText (previous, U"");
-			my intervals. removeItem (iinterval);   // remove right interval
+			Collection_removeItem (my intervals, iinterval);   // remove right interval
 		}
 		if (interval -> xmax == tmax) {
 			TextInterval_setText (interval, U"");
@@ -103,7 +102,7 @@ static void IntervalTier_insertIntervalDestructively (IntervalTier me, double tm
 static double IntervalTier_boundaryTimeClosestTo (IntervalTier me, double tmin, double tmax) {
 	long intervalNumber = IntervalTier_timeToLowIndex (me, tmax);
 	if (intervalNumber != 0) {
-		TextInterval interval = my intervals.at [intervalNumber];
+		TextInterval interval = my interval (intervalNumber);
 		if (interval -> xmin > tmin && interval -> xmin < tmax) {
 			return interval -> xmin;
 		}
@@ -113,19 +112,19 @@ static double IntervalTier_boundaryTimeClosestTo (IntervalTier me, double tmin,
 
 static void IntervalTier_removeEmptyIntervals (IntervalTier me, IntervalTier boss) {
 	IntervalTier_removeBoundariesBetweenIdenticallyLabeledIntervals (me, U"");
-	if (my intervals.size < 2) return;
-	TextInterval firstInterval = my intervals.at [1];
+	if (my intervals -> size < 2) return;
+	TextInterval firstInterval = my interval (1);
 	if (Melder_equ (firstInterval -> text, U"")) {
 		IntervalTier_removeLeftBoundary (me, 2);
 	}
-	if (my intervals.size < 2) return;
-	TextInterval lastInterval = my intervals.at [my intervals.size];
+	if (my numberOfIntervals () < 2) return;
+	TextInterval lastInterval = my interval (my numberOfIntervals ());
 	if (Melder_equ (lastInterval -> text, U"")) {
-		IntervalTier_removeLeftBoundary (me, my intervals.size);
+		IntervalTier_removeLeftBoundary (me, my numberOfIntervals ());
 	}
-	if (my intervals.size < 3) return;
-	for (long iinterval = my intervals.size - 1; iinterval >= 2; iinterval --) {
-		TextInterval interval = my intervals.at [iinterval];
+	if (my numberOfIntervals () < 3) return;
+	for (long iinterval = my numberOfIntervals () - 1; iinterval >= 2; iinterval --) {
+		TextInterval interval = my interval (iinterval);
 		if (Melder_equ (interval -> text, U"")) {
 			/*
 			 * Distribute the empty interval between its neigbours.
@@ -134,11 +133,11 @@ static void IntervalTier_removeEmptyIntervals (IntervalTier me, IntervalTier bos
 				boss ?
 				IntervalTier_boundaryTimeClosestTo (boss, interval -> xmin, interval -> xmax) :
 				0.5 * (interval -> xmin + interval -> xmax);
-			TextInterval previous = my intervals.at [iinterval - 1];
-			TextInterval next = my intervals.at [iinterval + 1];
+			TextInterval previous = my interval (iinterval - 1);
+			TextInterval next = my interval (iinterval + 1);
 			previous -> xmax = newBoundaryTime;
 			next -> xmin = newBoundaryTime;
-			my intervals. removeItem (iinterval);
+			Collection_removeItem (my intervals, iinterval);
 		}
 	}
 }
@@ -146,9 +145,9 @@ static void IntervalTier_removeEmptyIntervals (IntervalTier me, IntervalTier bos
 void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierNumber, long intervalNumber, const char32 *languageName, bool includeWords, bool includePhonemes) {
 	try {
 		IntervalTier headTier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		if (intervalNumber < 1 || intervalNumber > headTier -> intervals.size)
+		if (intervalNumber < 1 || intervalNumber > headTier -> numberOfIntervals ())
 			Melder_throw (U"Interval ", intervalNumber, U" does not exist.");
-		TextInterval interval = headTier -> intervals.at [intervalNumber];
+		TextInterval interval = headTier -> interval (intervalNumber);
 		if (! includeWords && ! includePhonemes)
 			Melder_throw (U"Nothing to be done, because you asked neither for word alignment nor for phoneme alignment.");
 		if (str32str (headTier -> name, U"/") )
@@ -158,57 +157,45 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 				LongSound_extractPart (static_cast <LongSound> (anySound), interval -> xmin, interval -> xmax, true) :
 				Sound_extractPart (static_cast <Sound> (anySound), interval -> xmin, interval -> xmax, kSound_windowShape_RECTANGULAR, 1.0, true);
 		autoSpeechSynthesizer synthesizer = SpeechSynthesizer_create (languageName, U"default");
-		synthesizer -> d_samplingFrequency = round (
-			anySound -> classInfo == classLongSound ?
-				static_cast <LongSound> (anySound) -> sampleRate :
-				1.0 / static_cast <Sound> (anySound) -> dx
-		);
-		double silenceThreshold = -35.0, minSilenceDuration = 0.1, minSoundingDuration = 0.1;
-		autoTextGrid analysis;
+		double silenceThreshold = -35, minSilenceDuration = 0.1, minSoundingDuration = 0.1;
+		autoTextGrid analysis = NULL;
 		if (! Melder_equ (interval -> text, U"")) {
-			analysis = SpeechSynthesizer_and_Sound_and_TextInterval_align
-				(synthesizer.get(), part.get(), interval, silenceThreshold, minSilenceDuration, minSoundingDuration);
+			try {
+				analysis.reset (SpeechSynthesizer_and_Sound_and_TextInterval_align
+					(synthesizer.peek(), part.peek(), interval, silenceThreshold, minSilenceDuration, minSoundingDuration));
+			} catch (MelderError) {
+				Melder_clearError ();   // ignore all error messages from DTW and the like
+			}
 		}
-		if (analysis) {
+		if (analysis.peek()) {
 			/*
 			 * Clean up the analysis.
 			 */
-			Melder_assert (fabs (analysis -> xmin - interval -> xmin) < 1e-12);
-			if (analysis -> xmax != interval -> xmax) {
-				//Melder_fatal (U"Analysis ends at ", analysis -> xmax, U" but interval at ", interval -> xmax, U"seconds.");
-				analysis -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (1) -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (2) -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (3) -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (4) -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (1) -> intervals.at [analysis -> intervalTier_cast (1) -> intervals.size] -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (2) -> intervals.at [analysis -> intervalTier_cast (2) -> intervals.size] -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (3) -> intervals.at [analysis -> intervalTier_cast (3) -> intervals.size] -> xmax = interval -> xmax;
-				analysis -> intervalTier_cast (4) -> intervals.at [analysis -> intervalTier_cast (4) -> intervals.size] -> xmax = interval -> xmax;
-			}
-			Melder_assert (analysis -> tiers->size == 4);
-			IntervalTier analysisWordTier = analysis -> intervalTier_cast (3);
+			Melder_assert (analysis -> xmin == interval -> xmin);
+			Melder_assert (analysis -> xmax == interval -> xmax);
+			Melder_assert (analysis -> numberOfTiers () == 4);
+			Thing_cast (IntervalTier, analysisWordTier, analysis -> tier (3));
 			if (! IntervalTier_check (analysisWordTier))
 				Melder_throw (U"Analysis word tier out of order.");
-			IntervalTier_removeEmptyIntervals (analysisWordTier, nullptr);
+			IntervalTier_removeEmptyIntervals (analysisWordTier, NULL);
 			Melder_assert (analysisWordTier -> xmax == analysis -> xmax);
-			Melder_assert (analysisWordTier -> intervals.size >= 1);
-			TextInterval firstInterval = analysisWordTier -> intervals.at [1];
-			TextInterval lastInterval = analysisWordTier -> intervals.at [analysisWordTier -> intervals.size];
+			Melder_assert (analysisWordTier -> numberOfIntervals () >= 1);
+			TextInterval firstInterval = analysisWordTier -> interval (1);
+			TextInterval lastInterval = analysisWordTier -> interval (analysisWordTier -> numberOfIntervals ());
 			firstInterval -> xmin = analysis -> xmin;
 			lastInterval  -> xmax = analysis -> xmax;
 			if (lastInterval -> xmax != analysis -> xmax)
 				Melder_fatal (U"analysis ends at ", analysis -> xmax, U", but last interval at ", lastInterval -> xmax, U" seconds");
 			if (! IntervalTier_check (analysisWordTier))
 				Melder_throw (U"Analysis word tier out of order (2).");
-			IntervalTier analysisPhonemeTier = analysis -> intervalTier_cast (4);
+			Thing_cast (IntervalTier, analysisPhonemeTier, analysis -> tier (4));
 			if (! IntervalTier_check (analysisPhonemeTier))
 				Melder_throw (U"Analysis phoneme tier out of order.");
 			IntervalTier_removeEmptyIntervals (analysisPhonemeTier, analysisWordTier);
 			Melder_assert (analysisPhonemeTier -> xmax == analysis -> xmax);
-			Melder_assert (analysisPhonemeTier -> intervals.size >= 1);
-			firstInterval = analysisPhonemeTier -> intervals.at [1];
-			lastInterval  = analysisPhonemeTier -> intervals.at [analysisPhonemeTier -> intervals.size];
+			Melder_assert (analysisPhonemeTier -> numberOfIntervals () >= 1);
+			firstInterval = analysisPhonemeTier -> interval (1);
+			lastInterval  = analysisPhonemeTier -> interval (analysisPhonemeTier -> numberOfIntervals ());
 			firstInterval -> xmin = analysis -> xmin;
 			lastInterval  -> xmax = analysis -> xmax;
 			Melder_assert (lastInterval -> xmax == analysis -> xmax);
@@ -216,7 +203,7 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 				Melder_throw (U"Analysis phoneme tier out of order (2).");
 		}
 		long wordTierNumber = 0, phonemeTierNumber = 0;
-		IntervalTier wordTier = nullptr, phonemeTier = nullptr;
+		IntervalTier wordTier = NULL, phonemeTier = NULL;
 		/*
 		 * Include a word tier.
 		 */
@@ -226,8 +213,8 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			 */
 			autoMelderString newWordTierName;
 			MelderString_copy (& newWordTierName, headTier -> name, U"/word");
-			for (long itier = 1; itier <= my tiers->size; itier ++) {
-				Function tier = my tiers->at [itier];
+			for (long itier = 1; itier <= my numberOfTiers (); itier ++) {
+				IntervalTier tier = static_cast <IntervalTier> (my tier (itier));
 				if (Melder_equ (newWordTierName.string, tier -> name)) {
 					if (tier -> classInfo != classIntervalTier)
 						Melder_throw (U"A tier with the prospective word tier name (", tier -> name, U") already exists, but it is not an interval tier."
@@ -238,11 +225,11 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			}
 			if (! wordTierNumber) {
 				autoIntervalTier newWordTier = IntervalTier_create (my xmin, my xmax);
-				Thing_setName (newWordTier.get(), newWordTierName.string);
-				my tiers -> addItemAtPosition_move (newWordTier.move(), wordTierNumber = tierNumber + 1);
+				Thing_setName (newWordTier.peek(), newWordTierName.string);
+				Ordered_addItemPos (my tiers, newWordTier.transfer(), wordTierNumber = tierNumber + 1);
 			}
-			Melder_assert (wordTierNumber >= 1 && wordTierNumber <= my tiers->size);
-			wordTier = static_cast <IntervalTier> (my tiers->at [wordTierNumber]);
+			Melder_assert (wordTierNumber >= 1 && wordTierNumber <= my tiers -> size);
+			wordTier = static_cast <IntervalTier> (my tier (wordTierNumber));
 			/*
 			 * Make sure that the word tier has boundaries at the edges of the interval.
 			 */
@@ -252,24 +239,24 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			 */
 			long wordIntervalNumber = IntervalTier_hasTime (wordTier, interval -> xmin);
 			Melder_assert (wordIntervalNumber != 0);
-			if (analysis) {
-				IntervalTier analysisWordTier = analysis -> intervalTier_cast (3);
+			if (analysis.peek()) {
+				Thing_cast (IntervalTier, analysisWordTier, analysis -> tier (3));
 				if (! IntervalTier_check (analysisWordTier))
 					Melder_throw (U"Analysis word tier out of order (3).");
 				if (! IntervalTier_check (wordTier))
 					Melder_throw (U"Word tier out of order (3).");
-				for (long ianalysisInterval = 1; ianalysisInterval <= analysisWordTier -> intervals.size; ianalysisInterval ++) {
-					TextInterval analysisInterval = analysisWordTier -> intervals.at [ianalysisInterval];
-					TextInterval wordInterval = nullptr;
+				for (long ianalysisInterval = 1; ianalysisInterval <= analysisWordTier -> numberOfIntervals (); ianalysisInterval ++) {
+					TextInterval analysisInterval = analysisWordTier -> interval (ianalysisInterval);
+					TextInterval wordInterval = NULL;
 					double tmin = analysisInterval -> xmin, tmax = analysisInterval -> xmax;
 					if (tmax == analysis -> xmax) {
-						wordInterval = wordTier -> intervals.at [wordIntervalNumber];
+						wordInterval = wordTier -> interval (wordIntervalNumber);
 						TextInterval_setText (wordInterval, analysisInterval -> text);
 					} else {
-						wordInterval = wordTier -> intervals.at [wordIntervalNumber];
+						wordInterval = wordTier -> interval (wordIntervalNumber);
 						autoTextInterval newInterval = TextInterval_create (tmin, tmax, analysisInterval -> text);
 						wordInterval -> xmin = tmax;
-						wordTier -> intervals. addItem_move (newInterval.move());
+						Collection_addItem (wordTier -> intervals, newInterval.transfer());
 						wordIntervalNumber ++;
 					}
 				}
@@ -288,8 +275,8 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			 */
 			autoMelderString newPhonemeTierName;
 			MelderString_copy (& newPhonemeTierName, headTier -> name, U"/phon");
-			for (long itier = 1; itier <= my tiers->size; itier ++) {
-				Function tier = my tiers->at [itier];
+			for (long itier = 1; itier <= my numberOfTiers (); itier ++) {
+				IntervalTier tier = static_cast <IntervalTier> (my tier (itier));
 				if (Melder_equ (newPhonemeTierName.string, tier -> name)) {
 					if (tier -> classInfo != classIntervalTier)
 						Melder_throw (U"A tier with the prospective phoneme tier name (", tier -> name, U") already exists, but it is not an interval tier."
@@ -300,12 +287,11 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			}
 			if (! phonemeTierNumber) {
 				autoIntervalTier newPhonemeTier = IntervalTier_create (my xmin, my xmax);
-				Thing_setName (newPhonemeTier.get(), newPhonemeTierName.string);
-				my tiers -> addItemAtPosition_move (newPhonemeTier.move(),
-					phonemeTierNumber = wordTierNumber ? wordTierNumber + 1 : tierNumber + 1);
+				Thing_setName (newPhonemeTier.peek(), newPhonemeTierName.string);
+				Ordered_addItemPos (my tiers, newPhonemeTier.transfer(), phonemeTierNumber = wordTierNumber ? wordTierNumber + 1 : tierNumber + 1);
 			}
-			Melder_assert (phonemeTierNumber >= 1 && phonemeTierNumber <= my tiers->size);
-			phonemeTier = my intervalTier_cast (phonemeTierNumber);
+			Melder_assert (phonemeTierNumber >= 1 && phonemeTierNumber <= my tiers -> size);
+			phonemeTier = static_cast <IntervalTier> (my tiers -> item [phonemeTierNumber]);
 			/*
 			 * Make sure that the phoneme tier has boundaries at the edges of the interval.
 			 */
@@ -315,20 +301,20 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 			 */
 			long phonemeIntervalNumber = IntervalTier_hasTime (phonemeTier, interval -> xmin);
 			Melder_assert (phonemeIntervalNumber != 0);
-			if (analysis.get()) {
-				IntervalTier analysisPhonemeTier = analysis -> intervalTier_cast (4);
-				for (long ianalysisInterval = 1; ianalysisInterval <= analysisPhonemeTier -> intervals.size; ianalysisInterval ++) {
-					TextInterval analysisInterval = analysisPhonemeTier -> intervals.at [ianalysisInterval];
-					TextInterval phonemeInterval = nullptr;
+			if (analysis.peek()) {
+				Thing_cast (IntervalTier, analysisPhonemeTier, analysis -> tiers -> item [4]);
+				for (long ianalysisInterval = 1; ianalysisInterval <= analysisPhonemeTier -> numberOfIntervals (); ianalysisInterval ++) {
+					TextInterval analysisInterval = analysisPhonemeTier -> interval (ianalysisInterval);
+					TextInterval phonemeInterval = NULL;
 					double tmin = analysisInterval -> xmin, tmax = analysisInterval -> xmax;
 					if (tmax == analysis -> xmax) {
-						phonemeInterval = phonemeTier -> intervals.at [phonemeIntervalNumber];
+						phonemeInterval = phonemeTier -> interval (phonemeIntervalNumber);
 						TextInterval_setText (phonemeInterval, analysisInterval -> text);
 					} else {
-						phonemeInterval = phonemeTier -> intervals.at [phonemeIntervalNumber];
+						phonemeInterval = phonemeTier -> interval (phonemeIntervalNumber);
 						autoTextInterval newInterval = TextInterval_create (tmin, tmax, analysisInterval -> text);
 						phonemeInterval -> xmin = tmax;
-						phonemeTier -> intervals. addItem_move (newInterval.move());
+						Collection_addItem (phonemeTier -> intervals, newInterval.transfer());
 						phonemeIntervalNumber ++;
 					}
 				}
@@ -348,7 +334,7 @@ void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierN
 void TextGrid_Sound_draw (TextGrid me, Sound sound, Graphics g, double tmin, double tmax,
 	bool showBoundaries, bool useTextStyles, bool garnish)   // STEREO BUG
 {
-	long numberOfTiers = my tiers->size;
+	long numberOfTiers = my numberOfTiers ();
 
 	/*
 	 * Automatic windowing:
@@ -379,21 +365,21 @@ void TextGrid_Sound_draw (TextGrid me, Sound sound, Graphics g, double tmin, dou
 	Graphics_setCircumflexIsSuperscript (g, useTextStyles);
 	Graphics_setUnderscoreIsSubscript (g, useTextStyles);
 	for (long itier = 1; itier <= numberOfTiers; itier ++) {
-		Function anyTier = my tiers->at [itier];
+		Function anyTier = my tier (itier);
 		double ymin = -1.0 - 0.5 * itier, ymax = ymin + 0.5;
 		Graphics_rectangle (g, tmin, tmax, ymin, ymax);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			long ninterval = tier -> intervals.size;
+			long ninterval = tier -> numberOfIntervals ();
 			for (long iinterval = 1; iinterval <= ninterval; iinterval ++) {
-				TextInterval interval = tier -> intervals.at [iinterval];
+				TextInterval interval = tier -> interval (iinterval);
 				double intmin = interval -> xmin, intmax = interval -> xmax;
 				if (intmin < tmin) intmin = tmin;
 				if (intmax > tmax) intmax = tmax;
 				if (intmin >= intmax) continue;
 				if (showBoundaries && intmin > tmin && intmin < tmax) {
 					Graphics_setLineType (g, Graphics_DOTTED);
-					Graphics_line (g, intmin, -1.0, intmin, 1.0);   // in sound part
+					Graphics_line (g, intmin, -1.0, intmin, 1.0);   /* In sound part. */
 					Graphics_setLineType (g, Graphics_DRAWN);
 				}      
 				/* Draw left boundary. */
@@ -407,14 +393,14 @@ void TextGrid_Sound_draw (TextGrid me, Sound sound, Graphics g, double tmin, dou
 			}
 		} else {
 			TextTier tier = static_cast <TextTier> (anyTier);
-			long numberOfPoints = tier -> points.size;
+			long numberOfPoints = tier -> numberOfPoints ();
 			for (long ipoint = 1; ipoint <= numberOfPoints; ipoint ++) {
-				TextPoint point = tier -> points.at [ipoint];
+				TextPoint point = tier -> point (ipoint);
 				double t = point -> number;
 				if (t > tmin && t < tmax) {
 					if (showBoundaries) {
 						Graphics_setLineType (g, Graphics_DOTTED);
-						Graphics_line (g, t, -1.0, t, 1.0);   // in sound part
+						Graphics_line (g, t, -1.0, t, 1.0);   /* In sound part. */
 						Graphics_setLineType (g, Graphics_DRAWN);
 					}
 					Graphics_line (g, t, ymin, t, 0.8 * ymin + 0.2 * ymax);
@@ -425,73 +411,71 @@ void TextGrid_Sound_draw (TextGrid me, Sound sound, Graphics g, double tmin, dou
 			}
 		}
 	}
-	Graphics_setPercentSignIsItalic (g, true);
-	Graphics_setNumberSignIsBold (g, true);
-	Graphics_setCircumflexIsSuperscript (g, true);
-	Graphics_setUnderscoreIsSubscript (g, true);
+	Graphics_setPercentSignIsItalic (g, TRUE);
+	Graphics_setNumberSignIsBold (g, TRUE);
+	Graphics_setCircumflexIsSuperscript (g, TRUE);
+	Graphics_setUnderscoreIsSubscript (g, TRUE);
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_textBottom (g, 1, U"Time (s)");
+		Graphics_marksBottom (g, 2, 1, 1, 1);
 	}
 }
 
-autoSoundList TextGrid_Sound_extractAllIntervals (TextGrid me, Sound sound, long tierNumber, bool preserveTimes) {
+Collection TextGrid_Sound_extractAllIntervals (TextGrid me, Sound sound, long tierNumber, int preserveTimes) {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		autoSoundList list = SoundList_create ();
-		for (long iseg = 1; iseg <= tier -> intervals.size; iseg ++) {
-			TextInterval segment = tier -> intervals.at [iseg];
+		autoCollection collection = Collection_create (NULL, tier -> numberOfIntervals ());
+		for (long iseg = 1; iseg <= tier -> numberOfIntervals (); iseg ++) {
+			TextInterval segment = tier -> interval (iseg);
 			autoSound interval = Sound_extractPart (sound, segment -> xmin, segment -> xmax, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
-			Thing_setName (interval.get(), segment -> text ? segment -> text : U"untitled");
-			list -> addItem_move (interval.move());
+			Thing_setName (interval.peek(), segment -> text ? segment -> text : U"untitled");
+			Collection_addItem (collection.peek(), interval.transfer()); 
 		}
-		return list;
+		return collection.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", sound, U": intervals not extracted.");
 	}
 }
 
-Thing_implement (SoundList, Ordered, 0);
-
-autoSoundList TextGrid_Sound_extractNonemptyIntervals (TextGrid me, Sound sound, long tierNumber, bool preserveTimes) {
+Collection TextGrid_Sound_extractNonemptyIntervals (TextGrid me, Sound sound, long tierNumber, int preserveTimes) {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		autoSoundList list = SoundList_create ();
-		for (long iseg = 1; iseg <= tier -> intervals.size; iseg ++) {
-			TextInterval segment = tier -> intervals.at [iseg];
-			if (segment -> text && segment -> text [0] != U'\0') {
+		autoCollection collection = Collection_create (NULL, tier -> numberOfIntervals ());
+		for (long iseg = 1; iseg <= tier -> numberOfIntervals (); iseg ++) {
+			TextInterval segment = tier -> interval (iseg);
+			if (segment -> text != NULL && segment -> text [0] != '\0') {
 				autoSound interval = Sound_extractPart (sound, segment -> xmin, segment -> xmax, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
-				Thing_setName (interval.get(), segment -> text ? segment -> text : U"untitled");
-				list -> addItem_move (interval.move());
+				Thing_setName (interval.peek(), segment -> text ? segment -> text : U"untitled");
+				Collection_addItem (collection.peek(), interval.transfer());
 			}
 		}
-		if (list->size == 0) Melder_warning (U"No non-empty intervals were found.");
-		return list;
+		if (collection -> size == 0) Melder_warning (U"No non-empty intervals were found.");
+		return collection.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", sound, U": non-empty intervals not extracted.");
 	}
 }
 
-autoSoundList TextGrid_Sound_extractIntervalsWhere (TextGrid me, Sound sound, long tierNumber,
-	int comparison_Melder_STRING, const char32 *text, bool preserveTimes)
+Collection TextGrid_Sound_extractIntervalsWhere (TextGrid me, Sound sound, long tierNumber,
+	int comparison_Melder_STRING, const char32 *text, int preserveTimes)
 {
 	try {
 		IntervalTier tier = TextGrid_checkSpecifiedTierIsIntervalTier (me, tierNumber);
-		autoSoundList list = SoundList_create ();
+		autoCollection collection = Collection_create (NULL, tier -> numberOfIntervals ());
 		long count = 0;
-		for (long iseg = 1; iseg <= tier -> intervals.size; iseg ++) {
-			TextInterval segment = tier -> intervals.at [iseg];
+		for (long iseg = 1; iseg <= tier -> numberOfIntervals (); iseg ++) {
+			TextInterval segment = tier -> interval (iseg);
 			if (Melder_stringMatchesCriterion (segment -> text, comparison_Melder_STRING, text)) {
 				autoSound interval = Sound_extractPart (sound, segment -> xmin, segment -> xmax, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
-				Thing_setName (interval.get(), Melder_cat (sound -> name ? sound -> name : U"", U"_", text, U"_", ++ count));
-				list -> addItem_move (interval.move());
+				Thing_setName (interval.peek(), Melder_cat (sound -> name ? sound -> name : U"", U"_", text, U"_", ++ count));
+				Collection_addItem (collection.peek(), interval.transfer());
 			}
 		}
-		if (list->size == 0)
+		if (collection -> size == 0)
 			Melder_warning (U"No label that ", kMelder_string_getText (comparison_Melder_STRING), U" the text \"", text, U"\" was found.");
-		return list;
+		return collection.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", sound, U": intervals not extracted.");
 	}
@@ -499,22 +483,22 @@ autoSoundList TextGrid_Sound_extractIntervalsWhere (TextGrid me, Sound sound, lo
 
 static void autoMarks (Graphics g, double ymin, double ymax, bool haveDottedLines) {
 	double dy = ymax - ymin;
-	if (dy < 26.0) {
+	if (dy < 26) {
 		long imin = (long) ceil ((ymin + 2.0) / 5.0), imax = (long) floor ((ymax - 2.0) / 5.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 5.0, true, true, haveDottedLines, nullptr);
-	} else if (dy < 110.0) {
+			Graphics_markLeft (g, i * 5, TRUE, TRUE, haveDottedLines, NULL);
+	} else if (dy < 110) {
 		long imin = (long) ceil ((ymin + 8.0) / 20.0), imax = (long) floor ((ymax - 8.0) / 20.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 20.0, true, true, haveDottedLines, nullptr);
-	} else if (dy < 260.0) {
+			Graphics_markLeft (g, i * 20, TRUE, TRUE, haveDottedLines, NULL);
+	} else if (dy < 260) {
 		long imin = (long) ceil ((ymin + 20.0) / 50.0), imax = (long) floor ((ymax - 20.0) / 50.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 50.0, true, true, haveDottedLines, nullptr);
-	} else if (dy < 510.0) {
+			Graphics_markLeft (g, i * 50, TRUE, TRUE, haveDottedLines, NULL);
+	} else if (dy < 510) {
 		long imin = (long) ceil ((ymin + 40.0) / 100.0), imax = (long) floor ((ymax - 40.0) / 100.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 100.0, true, true, haveDottedLines, nullptr);
+			Graphics_markLeft (g, i * 100, TRUE, TRUE, haveDottedLines, NULL);
 	}
 }
 
@@ -523,35 +507,35 @@ static void autoMarks_logarithmic (Graphics g, double ymin, double ymax, bool ha
 	for (int i = -12; i <= 12; i ++) {
 		double power = pow (10, i), y = power;
 		if (y > ymin * 1.2 && y < ymax / 1.2)
-			Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+			Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 		if (fy > 2100) {
 			;   /* Enough. */
 		} else if (fy > 210) {
 			y = 3.0 * power;
 			if (y > ymin * 1.2 && y < ymax / 1.2)
-				Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+				Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 		} else {
 			y = 2.0 * power;
 			if (y > ymin * 1.2 && y < ymax / 1.2)
-				Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+				Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 			y = 5.0 * power;
 			if (y > ymin * 1.2 && y < ymax / 1.2)
-				Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+				Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 			if (fy < 21) {
 				y = 3.0 * power;
 				if (y > ymin * 1.2 && y < ymax / 1.2)
-					Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+					Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 				y = 7.0 * power;
 				if (y > ymin * 1.2 && y < ymax / 1.2)
-					Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+					Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 			}
 			if (fy < 4.1) {
 				y = 1.5 * power;
 				if (y > ymin * 1.2 && y < ymax / 1.2)
-					Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+					Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 				y = 4.0 * power;
 				if (y > ymin * 1.2 && y < ymax / 1.2)
-					Graphics_markLeftLogarithmic (g, y, true, true, haveDottedLines, nullptr);
+					Graphics_markLeftLogarithmic (g, y, TRUE, TRUE, haveDottedLines, NULL);
 			}
 		}
 	}
@@ -562,66 +546,66 @@ static void autoMarks_semitones (Graphics g, double ymin, double ymax, bool have
 	if (dy < 16) {
 		long imin = (long) ceil ((ymin + 1.2) / 3.0), imax = (long) floor ((ymax - 1.2) / 3.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 3.0, true, true, haveDottedLines, nullptr);
+			Graphics_markLeft (g, i * 3, TRUE, TRUE, haveDottedLines, NULL);
 	} else if (dy < 32) {
 		long imin = (long) ceil ((ymin + 2.4) / 6.0), imax = (long) floor ((ymax - 2.4) / 6.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 6.0, true, true, haveDottedLines, nullptr);
+			Graphics_markLeft (g, i * 6, TRUE, TRUE, haveDottedLines, NULL);
 	} else if (dy < 64) {
 		long imin = (long) ceil ((ymin + 4.8) / 12.0), imax = (long) floor ((ymax - 4.8) / 12.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 12.0, true, true, haveDottedLines, nullptr);
+			Graphics_markLeft (g, i * 12, TRUE, TRUE, haveDottedLines, NULL);
 	} else if (dy < 128) {
 		long imin = (long) ceil ((ymin + 9.6) / 24.0), imax = (long) floor ((ymax - 9.6) / 24.0);
 		for (long i = imin; i <= imax; i ++)
-			Graphics_markLeft (g, i * 24.0, true, true, haveDottedLines, nullptr);
+			Graphics_markLeft (g, i * 24, TRUE, TRUE, haveDottedLines, NULL);
 	}
 }
 
 void TextGrid_Pitch_drawSeparately (TextGrid grid, Pitch pitch, Graphics g, double tmin, double tmax,
-	double fmin, double fmax, bool showBoundaries, bool useTextStyles, bool garnish, bool speckle, int unit)
+	double fmin, double fmax, int showBoundaries, int useTextStyles, int garnish, int speckle, int unit)
 {
-	int ntier = grid -> tiers->size;
+	int ntier = grid -> tiers -> size;
 	if (tmax <= tmin) tmin = grid -> xmin, tmax = grid -> xmax;
 	if (Function_isUnitLogarithmic (pitch, Pitch_LEVEL_FREQUENCY, unit)) {
 		fmin = Function_convertStandardToSpecialUnit (pitch, fmin, Pitch_LEVEL_FREQUENCY, unit);
 		fmax = Function_convertStandardToSpecialUnit (pitch, fmax, Pitch_LEVEL_FREQUENCY, unit);
 	}
 	if (unit == kPitch_unit_HERTZ_LOGARITHMIC)
-		Pitch_draw (pitch, g, tmin, tmax, pow (10.0, fmin - 0.25 * (fmax - fmin) * ntier), pow (10.0, fmax), false, speckle, unit);
+		Pitch_draw (pitch, g, tmin, tmax, pow (10, fmin - 0.25 * (fmax - fmin) * ntier), pow (10, fmax), FALSE, speckle, unit);
 	else
-		Pitch_draw (pitch, g, tmin, tmax, fmin - 0.25 * (fmax - fmin) * ntier, fmax, false, speckle, unit);
-	TextGrid_Sound_draw (grid, nullptr, g, tmin, tmax, showBoundaries, useTextStyles, false);
+		Pitch_draw (pitch, g, tmin, tmax, fmin - 0.25 * (fmax - fmin) * ntier, fmax, FALSE, speckle, unit);
+	TextGrid_Sound_draw (grid, NULL, g, tmin, tmax, showBoundaries, useTextStyles, FALSE);
 	/*
 	 * Restore window for the sake of margin drawing.
 	 */
 	Graphics_setWindow (g, tmin, tmax, fmin - 0.25 * (fmax - fmin) * ntier, fmax);
 	if (unit == kPitch_unit_HERTZ_LOGARITHMIC)
-		fmin = pow (10, fmin), fmax = pow (10.0, fmax);
+		fmin = pow (10, fmin), fmax = pow (10, fmax);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
 		if (unit == kPitch_unit_HERTZ_LOGARITHMIC) {
-			Graphics_markLeftLogarithmic (g, fmin, true, true, false, nullptr);
-			Graphics_markLeftLogarithmic (g, fmax, true, true, false, nullptr);
-			autoMarks_logarithmic (g, fmin, fmax, false);
+			Graphics_markLeftLogarithmic (g, fmin, TRUE, TRUE, FALSE, NULL);
+			Graphics_markLeftLogarithmic (g, fmax, TRUE, TRUE, FALSE, NULL);
+			autoMarks_logarithmic (g, fmin, fmax, FALSE);
 		} else if (unit == kPitch_unit_SEMITONES_100) {
-			Graphics_markLeft (g, fmin, true, true, false, nullptr);
-			Graphics_markLeft (g, fmax, true, true, false, nullptr);
-			autoMarks_semitones (g, fmin, fmax, false);
+			Graphics_markLeft (g, fmin, TRUE, TRUE, FALSE, NULL);
+			Graphics_markLeft (g, fmax, TRUE, TRUE, FALSE, NULL);
+			autoMarks_semitones (g, fmin, fmax, FALSE);
 		} else {
-			Graphics_markLeft (g, fmin, true, true, false, nullptr);
-			Graphics_markLeft (g, fmax, true, true, false, nullptr);
-			autoMarks (g, fmin, fmax, false);
+			Graphics_markLeft (g, fmin, TRUE, TRUE, FALSE, NULL);
+			Graphics_markLeft (g, fmax, TRUE, TRUE, FALSE, NULL);
+			autoMarks (g, fmin, fmax, FALSE);
 		}
 		Graphics_textLeft (g, true, Melder_cat (U"Pitch (", Function_getUnitText (pitch, Pitch_LEVEL_FREQUENCY, unit, Function_UNIT_TEXT_GRAPHICAL), U")"));
 		Graphics_textBottom (g, true, U"Time (s)");
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, true, true, true);
 	}
 }
 
 void TextGrid_Pitch_draw (TextGrid grid, Pitch pitch, Graphics g,
 	long tierNumber, double tmin, double tmax, double fmin, double fmax,
-	double fontSize, bool useTextStyles, int horizontalAlignment, bool garnish, bool speckle, int unit)
+	double fontSize, int useTextStyles, int horizontalAlignment, int garnish, int speckle, int unit)
 {
 	try {
 		Function anyTier = TextGrid_checkSpecifiedTierNumberWithinRange (grid, tierNumber);
@@ -642,15 +626,15 @@ void TextGrid_Pitch_draw (TextGrid grid, Pitch pitch, Graphics g,
 		Graphics_setUnderscoreIsSubscript (g, useTextStyles);
 		if (anyTier -> classInfo == classIntervalTier) {
 			IntervalTier tier = static_cast <IntervalTier> (anyTier);
-			for (long i = 1; i <= tier -> intervals.size; i ++) {
-				TextInterval interval = tier -> intervals.at [i];
+			for (long i = 1; i <= tier -> numberOfIntervals (); i ++) {
+				TextInterval interval = tier -> interval (i);
 				double tleft = interval -> xmin, tright = interval -> xmax, tmid, f0;
 				if (! interval -> text || ! interval -> text [0]) continue;
 				if (tleft < pitch -> xmin) tleft = pitch -> xmin;
 				if (tright > pitch -> xmax) tright = pitch -> xmax;
 				tmid = (tleft + tright) / 2;
 				if (tmid < tmin || tmid > tmax) continue;
-				f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.get(), tmid), Pitch_LEVEL_FREQUENCY, unit);
+				f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.peek(), tmid), Pitch_LEVEL_FREQUENCY, unit);
 				if (f0 < fmin || f0 > fmax) continue;
 				Graphics_text (g,
 					horizontalAlignment == Graphics_LEFT ? tleft : horizontalAlignment == Graphics_RIGHT ? tright : tmid,
@@ -658,20 +642,20 @@ void TextGrid_Pitch_draw (TextGrid grid, Pitch pitch, Graphics g,
 			}
 		} else {
 			TextTier tier = static_cast <TextTier> (anyTier);
-			for (long i = 1; i <= tier -> points.size; i ++) {
-				TextPoint point = tier -> points.at [i];
-				double t = point -> number;
+			for (long i = 1; i <= tier -> numberOfPoints (); i ++) {
+				TextPoint point = tier -> point (i);
+				double t = point -> number, f0;
 				if (! point -> mark || ! point -> mark [0]) continue;
 				if (t < tmin || t > tmax) continue;
-				double f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.get(), t), Pitch_LEVEL_FREQUENCY, unit);
+				f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.peek(), t), Pitch_LEVEL_FREQUENCY, unit);
 				if (f0 < fmin || f0 > fmax) continue;
 				Graphics_text (g, t, f0, point -> mark);
 			}
 		}
-		Graphics_setPercentSignIsItalic (g, true);
-		Graphics_setNumberSignIsBold (g, true);
-		Graphics_setCircumflexIsSuperscript (g, true);
-		Graphics_setUnderscoreIsSubscript (g, true);
+		Graphics_setPercentSignIsItalic (g, TRUE);
+		Graphics_setNumberSignIsBold (g, TRUE);
+		Graphics_setCircumflexIsSuperscript (g, TRUE);
+		Graphics_setUnderscoreIsSubscript (g, TRUE);
 		Graphics_setFontSize (g, oldFontSize);
 		Graphics_unsetInner (g);
 	} catch (MelderError) {
diff --git a/fon/TextGrid_Sound.h b/fon/TextGrid_Sound.h
index d9b99f7..814dc09 100644
--- a/fon/TextGrid_Sound.h
+++ b/fon/TextGrid_Sound.h
@@ -23,20 +23,16 @@
 
 void TextGrid_Sound_draw (TextGrid me, Sound sound, Graphics g, double tmin, double tmax,
 	bool showBoundaries, bool useTextStyles, bool garnish);
-
-Collection_define (SoundList, OrderedOf, Sound) {
-};
-
-autoSoundList TextGrid_Sound_extractAllIntervals (TextGrid me, Sound sound, long itier, bool preserveTimes);
-autoSoundList TextGrid_Sound_extractNonemptyIntervals (TextGrid me, Sound sound, long itier, bool preserveTimes);
-autoSoundList TextGrid_Sound_extractIntervalsWhere (TextGrid me, Sound sound,
-	long itier, int which_Melder_STRING, const char32 *text, bool preserveTimes);
+Collection TextGrid_Sound_extractAllIntervals (TextGrid me, Sound sound, long itier, int preserveTimes);
+Collection TextGrid_Sound_extractNonemptyIntervals (TextGrid me, Sound sound, long itier, int preserveTimes);
+Collection TextGrid_Sound_extractIntervalsWhere (TextGrid me, Sound sound,
+	long itier, int which_Melder_STRING, const char32 *text, int preserveTimes);
 
 void TextGrid_Pitch_draw (TextGrid grid, Pitch pitch, Graphics g,
 	long itier, double tmin, double tmax, double fmin, double fmax,
-	double fontSize, bool useTextStyles, int horizontalAlignment, bool garnish, bool speckle, int yscale);
+	double fontSize, int useTextStyles, int horizontalAlignment, int garnish, int speckle, int yscale);
 void TextGrid_Pitch_drawSeparately (TextGrid grid, Pitch pitch, Graphics g, double tmin, double tmax,
-	double fmin, double fmax, bool showBoundaries, bool useTextStyles, bool garnish, bool speckle, int yscale);
+	double fmin, double fmax, int showBoundaries, int useTextStyles, int garnish, int speckle, int yscale);
 
 void TextGrid_anySound_alignInterval (TextGrid me, Function anySound, long tierNumber, long intervalNumber,
 	const char32 *languageName, bool includeWords, bool includePhonemes);
diff --git a/fon/TextGrid_def.h b/fon/TextGrid_def.h
index ce02807..13db9bf 100644
--- a/fon/TextGrid_def.h
+++ b/fon/TextGrid_def.h
@@ -23,6 +23,13 @@ oo_DEFINE_CLASS (TextPoint, AnyPoint)
 
 	oo_STRING (mark)
 
+	/* 'after' was a temporary attribute (19970211-19970307). */
+	#if oo_READING_TEXT
+		if (formatVersion == 1) texgetw2 (a_text);
+	#elif oo_READING_BINARY
+		if (formatVersion == 1) bingetw2 (f);
+	#endif
+
 oo_END_CLASS (TextPoint)
 #undef ooSTRUCT
 
@@ -42,15 +49,22 @@ oo_END_CLASS (TextInterval)
 
 
 #define ooSTRUCT TextTier
-oo_DEFINE_CLASS (TextTier, Function)   // a kind of AnyTier though
+oo_DEFINE_CLASS (TextTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, points, TextPoint, 0)
+	oo_COLLECTION (SortedSetOfDouble, points, TextPoint, 0)
 
 	#if oo_DECLARING
-		AnyTier_METHODS
+		long numberOfPoints () // accessor
+			{ return our points -> size; }
+		TextPoint& point (long i) // accessor
+			{ return reinterpret_cast <TextPoint&> (our points -> item [i]); }
 
 		int v_domainQuantity ()
 			override { return MelderQuantity_TIME_SECONDS; }
+		void v_shiftX (double xfrom, double xto)
+			override;
+		void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
+			override;
 	#endif
 
 oo_END_CLASS (TextTier)
@@ -60,9 +74,14 @@ oo_END_CLASS (TextTier)
 #define ooSTRUCT IntervalTier
 oo_DEFINE_CLASS (IntervalTier, Function)
 
-	oo_COLLECTION_OF (SortedSetOfDoubleOf, intervals, TextInterval, 0)
+	oo_COLLECTION (SortedSetOfDouble, intervals, TextInterval, 0)
 
 	#if oo_DECLARING
+		long numberOfIntervals () // accessor
+			{ return our intervals -> size; }
+		TextInterval& interval (long i) // accessor
+			{ return reinterpret_cast <TextInterval&> (our intervals -> item [i]); }
+
 		int v_domainQuantity ()
 			override { return MelderQuantity_TIME_SECONDS; }
 		void v_shiftX (double xfrom, double xto)
@@ -78,9 +97,14 @@ oo_END_CLASS (IntervalTier)
 #define ooSTRUCT TextGrid
 oo_DEFINE_CLASS (TextGrid, Function)
 
-	oo_AUTO_OBJECT (FunctionList, 0, tiers)   // TextTier and IntervalTier objects
+	oo_OBJECT (Ordered, 0, tiers)   // TextTier and IntervalTier objects
 
 	#if oo_DECLARING
+		long numberOfTiers () // accessor
+			{ return our tiers -> size; }
+		Function& tier (long i) // accessor
+			{ return reinterpret_cast <Function&> (our tiers -> item [i]); }
+
 		void v_info ()
 			override;
 		void v_repair ()
@@ -91,13 +115,6 @@ oo_DEFINE_CLASS (TextGrid, Function)
 			override;
 		void v_scaleX (double xminfrom, double xmaxfrom, double xminto, double xmaxto)
 			override;
-
-		IntervalTier intervalTier_cast (int32 tierNumber) {
-			return static_cast <IntervalTier> (our tiers -> at [tierNumber]);
-		}
-		TextTier textTier_cast (int32 tierNumber) {
-			return static_cast <TextTier> (our tiers -> at [tierNumber]);
-		}
 	#endif
 
 oo_END_CLASS (TextGrid)
diff --git a/fon/TimeSoundAnalysisEditor.cpp b/fon/TimeSoundAnalysisEditor.cpp
index 95d4e46..35986cc 100644
--- a/fon/TimeSoundAnalysisEditor.cpp
+++ b/fon/TimeSoundAnalysisEditor.cpp
@@ -1,6 +1,6 @@
 /* TimeSoundAnalysisEditor.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,7 +50,8 @@ static const char32 * theMessage_Cannot_compute_formant = U"The formants are not
 static const char32 * theMessage_Cannot_compute_intensity = U"The intensity curve is not defined at the edge of the sound.";
 static const char32 * theMessage_Cannot_compute_pulses = U"The pulses are not defined at the edge of the sound.";
 
-void structTimeSoundAnalysisEditor :: v_destroy () noexcept {
+void structTimeSoundAnalysisEditor :: v_destroy () {
+	v_destroy_analysis ();
 	TimeSoundAnalysisEditor_Parent :: v_destroy ();
 }
 
@@ -126,12 +127,12 @@ void structTimeSoundAnalysisEditor :: v_info () {
 	}
 }
 
-void structTimeSoundAnalysisEditor :: v_reset_analysis () {
-	d_spectrogram. reset();
-	d_pitch. reset();
-	d_intensity. reset();
-	d_formant. reset();
-	d_pulses. reset();
+void structTimeSoundAnalysisEditor :: v_destroy_analysis () {
+	forget (d_spectrogram);
+	forget (d_pitch);
+	forget (d_intensity);
+	forget (d_formant);
+	forget (d_pulses);
 }
 
 enum {
@@ -171,7 +172,8 @@ static int makeQueriable (TimeSoundAnalysisEditor me, int allowCursor, double *t
 	return TimeSoundAnalysisEditor_PART_SELECTION;
 }
 
-static void menu_cb_logSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_logSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Log settings", U"Log files")
 		OPTIONMENU (U"Write log 1 to", 3)
 			OPTION (U"Log file only")
@@ -216,14 +218,16 @@ static void menu_cb_logSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_deleteLogFile1 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	structMelderFile file { 0 };
+static void menu_cb_deleteLogFile1 (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	structMelderFile file = { 0 };
 	Melder_pathToFile (my p_log1_fileName, & file);
 	MelderFile_delete (& file);
 }
 
-static void menu_cb_deleteLogFile2 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	structMelderFile file { 0 };
+static void menu_cb_deleteLogFile2 (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	structMelderFile file = { 0 };
 	Melder_pathToFile (my p_log2_fileName, & file);
 	MelderFile_delete (& file);
 }
@@ -231,7 +235,7 @@ static void menu_cb_deleteLogFile2 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRE
 static void do_log (TimeSoundAnalysisEditor me, int which) {
 	char32 format [Preferences_STRING_BUFFER_SIZE], *p;
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	str32cpy (format, which == 1 ? my p_log1_format : my p_log2_format);
 	for (p = format; *p != U'\0'; p ++) if (*p == U'\'') {
 		/*
@@ -240,7 +244,7 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 		char32 *q = p + 1, varName [300], *r, *s, *colon;
 		int precision = -1;
 		double value = NUMundefined;
-		const char32 *stringValue = nullptr;
+		const char32 *stringValue = NULL;
 		while (*q != U'\0' && *q != U'\'') q ++;
 		if (*q == U'\0') break;   /* No matching right quote: done with this line. */
 		if (q - p == 1) continue;   /* Ignore empty variable names. */
@@ -275,9 +279,9 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 				Melder_throw (theMessage_Cannot_compute_pitch);
 			}
 			if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-				value = Pitch_getValueAtTime (my d_pitch.get(), tmin, my p_pitch_unit, 1);
+				value = Pitch_getValueAtTime (my d_pitch, tmin, my p_pitch_unit, 1);
 			} else {
-				value = Pitch_getMean (my d_pitch.get(), tmin, tmax, my p_pitch_unit);
+				value = Pitch_getMean (my d_pitch, tmin, tmax, my p_pitch_unit);
 			}
 		} else if (varName [0] == 'f' && varName [1] >= '1' && varName [1] <= '5' && varName [2] == '\0') {
 			if (! my p_formant_show)
@@ -286,9 +290,9 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 				Melder_throw (theMessage_Cannot_compute_formant);
 			}
 			if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-				value = Formant_getValueAtTime (my d_formant.get(), (int) (varName [1] - U'0'), tmin, 0);
+				value = Formant_getValueAtTime (my d_formant, (int) (varName [1] - U'0'), tmin, 0);
 			} else {
-				value = Formant_getMean (my d_formant.get(), (int) (varName [1] - U'0'), tmin, tmax, 0);
+				value = Formant_getMean (my d_formant, (int) (varName [1] - U'0'), tmin, tmax, 0);
 			}
 		} else if (varName [0] == U'b' && varName [1] >= U'1' && varName [1] <= U'5' && varName [2] == U'\0') {
 			if (! my p_formant_show)
@@ -296,7 +300,7 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 			if (! my d_formant) {
 				Melder_throw (theMessage_Cannot_compute_formant);
 			}
-			value = Formant_getBandwidthAtTime (my d_formant.get(), (int) (varName [1] - U'0'), 0.5 * (tmin + tmax), 0);
+			value = Formant_getBandwidthAtTime (my d_formant, (int) (varName [1] - U'0'), 0.5 * (tmin + tmax), 0);
 		} else if (str32equ (varName, U"intensity")) {
 			if (! my p_intensity_show)
 				Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
@@ -304,9 +308,9 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 				Melder_throw (theMessage_Cannot_compute_intensity);
 			}
 			if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-				value = Vector_getValueAtX (my d_intensity.get(), tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
+				value = Vector_getValueAtX (my d_intensity, tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
 			} else {
-				value = Intensity_getAverage (my d_intensity.get(), tmin, tmax, my p_intensity_averagingMethod);
+				value = Intensity_getAverage (my d_intensity, tmin, tmax, my p_intensity_averagingMethod);
 			}
 		} else if (str32equ (varName, U"power")) {
 			if (! my p_spectrogram_show)
@@ -315,7 +319,7 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 				Melder_throw (theMessage_Cannot_compute_spectrogram);
 			}
 			if (part != TimeSoundAnalysisEditor_PART_CURSOR) Melder_throw (U"Click inside the spectrogram first.");
-			value = Matrix_getValueAtXY (my d_spectrogram.get(), tmin, my d_spectrogram_cursor);
+			value = Matrix_getValueAtXY (my d_spectrogram, tmin, my d_spectrogram_cursor);
 		}
 		if (NUMdefined (value)) {
 			int varlen = (q - p) - 1, headlen = p - format;
@@ -331,7 +335,7 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 			MelderString_append (& buffer, formattedNumber, p + varlen + 2);
 			str32cpy (format, buffer.string);
 			p += arglen - 1;
-		} else if (stringValue) {
+		} else if (stringValue != NULL) {
 			int varlen = (q - p) - 1, headlen = p - format, arglen = str32len (stringValue);
 			static MelderString buffer { 0 };
 			MelderString_ncopy (& buffer, format, headlen);
@@ -339,7 +343,7 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 			str32cpy (format, buffer.string);
 			p += arglen - 1;
 		} else {
-			p = q - 1;   // go to before next quote
+			p = q - 1;   /* Go to before next quote. */
 		}
 	}
 	if ((which == 1 && my p_log1_toInfoWindow) || (which == 2 && my p_log2_toInfoWindow)) {
@@ -354,18 +358,21 @@ static void do_log (TimeSoundAnalysisEditor me, int which) {
 	}
 }
 
-static void menu_cb_log1 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) { do_log (me, 1); }
-static void menu_cb_log2 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) { do_log (me, 2); }
+static void menu_cb_log1 (EDITOR_ARGS) { EDITOR_IAM (TimeSoundAnalysisEditor); do_log (me, 1); }
+static void menu_cb_log2 (EDITOR_ARGS) { EDITOR_IAM (TimeSoundAnalysisEditor); do_log (me, 2); }
 
-static void menu_cb_logScript3 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_logScript3 (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	DO_RunTheScriptFromAnyAddedEditorCommand (me, my p_logScript3);
 }
-static void menu_cb_logScript4 (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_logScript4 (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	DO_RunTheScriptFromAnyAddedEditorCommand (me, my p_logScript4);
 }
 
-static void menu_cb_showAnalyses (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Show analyses", nullptr)
+static void menu_cb_showAnalyses (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Show analyses", 0)
 		BOOLEAN  (U"Show spectrogram",     my default_spectrogram_show ())
 		BOOLEAN  (U"Show pitch",           my default_pitch_show       ())
 		BOOLEAN  (U"Show intensity",       my default_intensity_show   ())
@@ -390,7 +397,8 @@ static void menu_cb_showAnalyses (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM)
 	EDITOR_END
 }
 
-static void menu_cb_timeStepSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_timeStepSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Time step settings", U"Time step settings...")
 		OPTIONMENU_ENUM (U"Time step strategy", kTimeSoundAnalysisEditor_timeStepStrategy, my default_timeStepStrategy ())
 		LABEL (U"", U"")
@@ -407,23 +415,25 @@ static void menu_cb_timeStepSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FO
 		my pref_timeStepStrategy         () = my p_timeStepStrategy         = GET_ENUM    (kTimeSoundAnalysisEditor_timeStepStrategy, U"Time step strategy");
 		my pref_fixedTimeStep            () = my p_fixedTimeStep            = GET_REAL    (U"Fixed time step");
 		my pref_numberOfTimeStepsPerView () = my p_numberOfTimeStepsPerView = GET_INTEGER (U"Number of time steps per view");
-		my d_pitch. reset();
-		my d_formant. reset();
-		my d_intensity. reset();
-		my d_pulses. reset();
+		forget (my d_pitch);
+		forget (my d_formant);
+		forget (my d_intensity);
+		forget (my d_pulses);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
 /***** SPECTROGRAM MENU *****/
 
-static void menu_cb_showSpectrogram (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showSpectrogram (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	my pref_spectrogram_show () = my p_spectrogram_show = ! my p_spectrogram_show;
 	GuiMenuItem_check (my spectrogramToggle, my p_spectrogram_show);   // in case we're called from a script
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_spectrogramSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_spectrogramSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Spectrogram settings", U"Intro 3.2. Configuring the spectrogram")
 		REAL     (U"left View range (Hz)",  my default_spectrogram_viewFrom     ())
 		POSITIVE (U"right View range (Hz)", my default_spectrogram_viewTo       ())
@@ -459,12 +469,13 @@ static void menu_cb_spectrogramSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS
 		my pref_spectrogram_viewTo       () = my p_spectrogram_viewTo       = GET_REAL (U"right View range");
 		my pref_spectrogram_windowLength () = my p_spectrogram_windowLength = GET_REAL (U"Window length");
 		my pref_spectrogram_dynamicRange () = my p_spectrogram_dynamicRange = GET_REAL (U"Dynamic range");
-		my d_spectrogram. reset();
+		forget (my d_spectrogram);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_advancedSpectrogramSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_advancedSpectrogramSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Advanced spectrogram settings", U"Advanced spectrogram settings...")
 		LABEL (U"", U"Time and frequency resolutions:")
 		NATURAL (U"Number of time steps",      my default_spectrogram_timeSteps          ())
@@ -495,18 +506,20 @@ static void menu_cb_advancedSpectrogramSettings (TimeSoundAnalysisEditor me, EDI
 		my pref_spectrogram_maximum            () = my p_spectrogram_maximum            = GET_REAL (U"Maximum");
 		my pref_spectrogram_preemphasis        () = my p_spectrogram_preemphasis        = GET_REAL (U"Pre-emphasis");
 		my pref_spectrogram_dynamicCompression () = my p_spectrogram_dynamicCompression = GET_REAL (U"Dynamic compression");
-		my d_spectrogram. reset();
+		forget (my d_spectrogram);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_getFrequency (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getFrequency (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	Melder_informationReal (my d_spectrogram_cursor, U"Hz");
 }
 
-static void menu_cb_getSpectralPowerAtCursorCross (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getSpectralPowerAtCursorCross (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_spectrogram_show)
 		Melder_throw (U"No spectrogram is visible.\nFirst choose \"Show spectrogram\" from the Spectrum menu.");
 	if (! my d_spectrogram) {
@@ -515,12 +528,13 @@ static void menu_cb_getSpectralPowerAtCursorCross (TimeSoundAnalysisEditor me, E
 	}
 	if (part != TimeSoundAnalysisEditor_PART_CURSOR) Melder_throw (U"Click inside the spectrogram first.");
 	MelderInfo_open ();
-	MelderInfo_write (Matrix_getValueAtXY (my d_spectrogram.get(), tmin, my d_spectrogram_cursor),
+	MelderInfo_write (Matrix_getValueAtXY (my d_spectrogram, tmin, my d_spectrogram_cursor),
 		U" Pa2/Hz (at time = ", tmin, U" seconds and frequency = ", my d_spectrogram_cursor, U" Hz)");
 	MelderInfo_close ();
 }
 
-static void menu_cb_moveFrequencyCursorTo (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_moveFrequencyCursorTo (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_spectrogram_show)
 		Melder_throw (U"No spectrogram is visible.\nFirst choose \"Show spectrogram\" from the Spectrum menu.");
 	EDITOR_FORM (U"Move frequency cursor to", 0)
@@ -534,32 +548,34 @@ static void menu_cb_moveFrequencyCursorTo (TimeSoundAnalysisEditor me, EDITOR_AR
 	EDITOR_END
 }
 
-static autoSound extractSound (TimeSoundAnalysisEditor me, double tmin, double tmax) {
-	autoSound sound;
+static Sound extractSound (TimeSoundAnalysisEditor me, double tmin, double tmax) {
+	Sound sound = NULL;
 	if (my d_longSound.data) {
 		if (tmin < my d_longSound.data -> xmin) tmin = my d_longSound.data -> xmin;
 		if (tmax > my d_longSound.data -> xmax) tmax = my d_longSound.data -> xmax;
-		sound = LongSound_extractPart (my d_longSound.data, tmin, tmax, true);
+		sound = LongSound_extractPart (my d_longSound.data, tmin, tmax, TRUE);
 	} else if (my d_sound.data) {
 		if (tmin < my d_sound.data -> xmin) tmin = my d_sound.data -> xmin;
 		if (tmax > my d_sound.data -> xmax) tmax = my d_sound.data -> xmax;
-		sound = Sound_extractPart (my d_sound.data, tmin, tmax, kSound_windowShape_RECTANGULAR, 1.0, true);
+		sound = Sound_extractPart (my d_sound.data, tmin, tmax, kSound_windowShape_RECTANGULAR, 1.0, TRUE);
 	}
 	return sound;
 }
 
-static void menu_cb_extractVisibleSpectrogram (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractVisibleSpectrogram (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_spectrogram_show)
 		Melder_throw (U"No spectrogram is visible.\nFirst choose \"Show spectrogram\" from the Spectrum menu.");
 	if (! my d_spectrogram) {
 		TimeSoundAnalysisEditor_computeSpectrogram (me);
 		if (! my d_spectrogram) Melder_throw (theMessage_Cannot_compute_spectrogram);
 	}
-	autoSpectrogram publish = Data_copy (my d_spectrogram.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoSpectrogram publish = Data_copy (my d_spectrogram);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_viewSpectralSlice (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_viewSpectralSlice (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double start = my d_startSelection == my d_endSelection ?
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_GAUSSIAN ? my d_startSelection - my p_spectrogram_windowLength :
 		my d_startSelection - my p_spectrogram_windowLength / 2 : my d_startSelection;
@@ -567,25 +583,26 @@ static void menu_cb_viewSpectralSlice (TimeSoundAnalysisEditor me, EDITOR_ARGS_D
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_GAUSSIAN ? my d_endSelection + my p_spectrogram_windowLength :
 		my d_endSelection + my p_spectrogram_windowLength / 2 : my d_endSelection;
 	autoSound sound = extractSound (me, start, finish);
-	Sound_multiplyByWindow (sound.get(),
+	Sound_multiplyByWindow (sound.peek(),
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_SQUARE ? kSound_windowShape_RECTANGULAR :
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_HAMMING ? kSound_windowShape_HAMMING :
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_BARTLETT ? kSound_windowShape_TRIANGULAR :
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_WELCH ? kSound_windowShape_PARABOLIC :
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_HANNING ? kSound_windowShape_HANNING :
 		my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_GAUSSIAN ? kSound_windowShape_GAUSSIAN_2 : kSound_windowShape_RECTANGULAR);
-	autoSpectrum publish = Sound_to_Spectrum (sound.get(), true);
-	Thing_setName (publish.get(), Melder_cat (( my data == nullptr ? U"untitled" : ((Daata) my data) -> name ),
+	autoSpectrum publish = Sound_to_Spectrum (sound.peek(), TRUE);
+	Thing_setName (publish.peek(), Melder_cat (( my data == NULL ? U"untitled" : ((Data) my data) -> name ),
 		U"_", Melder_fixed (0.5 * (my d_startSelection + my d_endSelection), 3)));
-	Editor_broadcastPublication (me, publish.move());
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_paintVisibleSpectrogram (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Paint visible spectrogram", nullptr)
+static void menu_cb_paintVisibleSpectrogram (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Paint visible spectrogram", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
-		BOOLEAN (U"Garnish", true);
+		BOOLEAN (U"Garnish", 1);
 	EDITOR_OK
 		my v_ok_pictureWindow (cmd);
 		my v_ok_pictureMargins (cmd);
@@ -603,7 +620,7 @@ static void menu_cb_paintVisibleSpectrogram (TimeSoundAnalysisEditor me, EDITOR_
 			if (! my d_spectrogram) Melder_throw (theMessage_Cannot_compute_spectrogram);
 		}
 		Editor_openPraatPicture (me);
-		Spectrogram_paint (my d_spectrogram.get(), my pictureGraphics, my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo,
+		Spectrogram_paint (my d_spectrogram, my pictureGraphics, my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo,
 			my p_spectrogram_maximum, my p_spectrogram_autoscaling, my p_spectrogram_dynamicRange, my p_spectrogram_preemphasis,
 			my p_spectrogram_dynamicCompression, my p_spectrogram_picture_garnish);
 		FunctionEditor_garnish (me);
@@ -613,13 +630,15 @@ static void menu_cb_paintVisibleSpectrogram (TimeSoundAnalysisEditor me, EDITOR_
 
 /***** PITCH MENU *****/
 
-static void menu_cb_showPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	my pref_pitch_show () = my p_pitch_show = ! my p_pitch_show;
 	GuiMenuItem_check (my pitchToggle, my p_pitch_show);   // in case we're called from a script
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_pitchSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_pitchSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Pitch settings", U"Intro 4.2. Configuring the pitch contour")
 		POSITIVE (U"left Pitch range (Hz)", my default_pitch_floor ())
 		POSITIVE (U"right Pitch range (Hz)", my default_pitch_ceiling ())
@@ -661,14 +680,15 @@ static void menu_cb_pitchSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM)
 		my pref_pitch_unit          () = my p_pitch_unit          = GET_ENUM (kPitch_unit, U"Unit");
 		my pref_pitch_method        () = my p_pitch_method        = GET_ENUM (kTimeSoundAnalysisEditor_pitch_analysisMethod, U"Analysis method");
 		my pref_pitch_drawingMethod () = my p_pitch_drawingMethod = GET_ENUM (kTimeSoundAnalysisEditor_pitch_drawingMethod, U"Drawing method");
-		my d_pitch. reset();
-		my d_intensity. reset();
-		my d_pulses. reset();
+		forget (my d_pitch);
+		forget (my d_intensity);
+		forget (my d_pulses);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_advancedPitchSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_advancedPitchSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Advanced pitch settings", U"Advanced pitch settings...")
 		LABEL   (U"", U"Make view range different from analysis range:")
 		REAL    (U"left View range (units)",   my default_pitch_viewFrom                  ())
@@ -703,16 +723,17 @@ static void menu_cb_advancedPitchSettings (TimeSoundAnalysisEditor me, EDITOR_AR
 		my pref_pitch_octaveCost                () = my p_pitch_octaveCost                = GET_REAL    (U"Octave cost");
 		my pref_pitch_octaveJumpCost            () = my p_pitch_octaveJumpCost            = GET_REAL    (U"Octave-jump cost");
 		my pref_pitch_voicedUnvoicedCost        () = my p_pitch_voicedUnvoicedCost        = GET_REAL    (U"Voiced / unvoiced cost");
-		my d_pitch. reset();
-		my d_intensity. reset();
-		my d_pulses. reset();
+		forget (my d_pitch);
+		forget (my d_intensity);
+		forget (my d_pulses);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_pitchListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pitchListing (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the Pitch menu.");
 	if (! my d_pitch) {
@@ -720,27 +741,28 @@ static void menu_cb_pitchListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT
 		if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);
 	}
 	MelderInfo_open ();
-	MelderInfo_writeLine (U"Time_s   F0_", Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT));
+	MelderInfo_writeLine (U"Time_s   F0_", Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT));
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		double f0 = Pitch_getValueAtTime (my d_pitch.get(), tmin, my p_pitch_unit, true);
-		f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double f0 = Pitch_getValueAtTime (my d_pitch, tmin, my p_pitch_unit, TRUE);
+		f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
 		MelderInfo_writeLine (Melder_fixed (tmin, 6), U"   ", Melder_fixed (f0, 6));
 	} else {
 		long i, i1, i2;
-		Sampled_getWindowSamples (my d_pitch.get(), tmin, tmax, & i1, & i2);
+		Sampled_getWindowSamples (my d_pitch, tmin, tmax, & i1, & i2);
 		for (i = i1; i <= i2; i ++) {
-			double t = Sampled_indexToX (my d_pitch.get(), i);
-			double f0 = Sampled_getValueAtSample (my d_pitch.get(), i, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-			f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+			double t = Sampled_indexToX (my d_pitch, i);
+			double f0 = Sampled_getValueAtSample (my d_pitch, i, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+			f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
 			MelderInfo_writeLine (Melder_fixed (t, 6), U"   ", Melder_fixed (f0, 6));
 		}
 	}
 	MelderInfo_close ();
 }
 
-static void menu_cb_getPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the Pitch menu.");
 	if (! my d_pitch) {
@@ -748,49 +770,52 @@ static void menu_cb_getPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
 		if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);
 	}
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		double f0 = Pitch_getValueAtTime (my d_pitch.get(), tmin, my p_pitch_unit, true);
-		f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		Melder_information (f0, U" ", Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
+		double f0 = Pitch_getValueAtTime (my d_pitch, tmin, my p_pitch_unit, TRUE);
+		f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		Melder_information (f0, U" ", Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
 			U" (interpolated pitch at CURSOR)");
 	} else {
-		double f0 = Pitch_getMean (my d_pitch.get(), tmin, tmax, my p_pitch_unit);
-		f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		Melder_information (f0, U" ", Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
+		double f0 = Pitch_getMean (my d_pitch, tmin, tmax, my p_pitch_unit);
+		f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		Melder_information (f0, U" ", Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
 			U" (mean pitch ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 	}
 }
 
-static void menu_cb_getMinimumPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getMinimumPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax, f0;
-	int part = makeQueriable (me, false, & tmin, & tmax);
+	int part = makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the Pitch menu.");
 	if (! my d_pitch) {
 		TimeSoundAnalysisEditor_computePitch (me);
 		if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);
 	}
-	f0 = Pitch_getMinimum (my d_pitch.get(), tmin, tmax, my p_pitch_unit, true);
-	f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-	Melder_information (f0, U" ", Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
+	f0 = Pitch_getMinimum (my d_pitch, tmin, tmax, my p_pitch_unit, TRUE);
+	f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+	Melder_information (f0, U" ", Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
 		U" (minimum pitch ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 }
 
-static void menu_cb_getMaximumPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getMaximumPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax, f0;
-	int part = makeQueriable (me, false, & tmin, & tmax);
+	int part = makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the Pitch menu.");
 	if (! my d_pitch) {
 		TimeSoundAnalysisEditor_computePitch (me);
 		if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);   // BUG
 	}
-	f0 = Pitch_getMaximum (my d_pitch.get(), tmin, tmax, my p_pitch_unit, true);
-	f0 = Function_convertToNonlogarithmic (my d_pitch.get(), f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-	Melder_information (f0, U" ", Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
+	f0 = Pitch_getMaximum (my d_pitch, tmin, tmax, my p_pitch_unit, TRUE);
+	f0 = Function_convertToNonlogarithmic (my d_pitch, f0, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+	Melder_information (f0, U" ", Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, 0),
 		U" (maximum pitch ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 }
 
-static void menu_cb_moveCursorToMinimumPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveCursorToMinimumPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the View menu.");
 	if (! my d_pitch) {
@@ -801,8 +826,8 @@ static void menu_cb_moveCursorToMinimumPitch (TimeSoundAnalysisEditor me, EDITOR
 		Melder_throw (U"Empty selection.");
 	} else {
 		double time;
-		Pitch_getMinimumAndTime (my d_pitch.get(), my d_startSelection, my d_endSelection,
-			my p_pitch_unit, 1, nullptr, & time);
+		Pitch_getMinimumAndTime (my d_pitch, my d_startSelection, my d_endSelection,
+			my p_pitch_unit, 1, NULL, & time);
 		if (! NUMdefined (time))
 			Melder_throw (U"Selection is voiceless.");
 		my d_startSelection = my d_endSelection = time;
@@ -810,7 +835,8 @@ static void menu_cb_moveCursorToMinimumPitch (TimeSoundAnalysisEditor me, EDITOR
 	}
 }
 
-static void menu_cb_moveCursorToMaximumPitch (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_moveCursorToMaximumPitch (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the View menu.");
 	if (! my d_pitch) {
@@ -821,8 +847,8 @@ static void menu_cb_moveCursorToMaximumPitch (TimeSoundAnalysisEditor me, EDITOR
 		Melder_throw (U"Empty selection.");
 	} else {
 		double time;
-		Pitch_getMaximumAndTime (my d_pitch.get(), my d_startSelection, my d_endSelection,
-			my p_pitch_unit, 1, nullptr, & time);
+		Pitch_getMaximumAndTime (my d_pitch, my d_startSelection, my d_endSelection,
+			my p_pitch_unit, 1, NULL, & time);
 		if (! NUMdefined (time))
 			Melder_throw (U"Selection is voiceless.");
 		my d_startSelection = my d_endSelection = time;
@@ -830,25 +856,27 @@ static void menu_cb_moveCursorToMaximumPitch (TimeSoundAnalysisEditor me, EDITOR
 	}
 }
 
-static void menu_cb_extractVisiblePitchContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractVisiblePitchContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_pitch_show)
 		Melder_throw (U"No pitch contour is visible.\nFirst choose \"Show pitch\" from the Pitch menu.");
 	if (! my d_pitch) {
 		TimeSoundAnalysisEditor_computePitch (me);
 		if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);
 	}
-	autoPitch publish = Data_copy (my d_pitch.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoPitch publish = Data_copy (my d_pitch);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_drawVisiblePitchContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible pitch contour", nullptr)
+static void menu_cb_drawVisiblePitchContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Draw visible pitch contour", 0)
 		my v_form_pictureWindow (cmd);
 		LABEL (U"", U"Pitch:")
-		BOOLEAN (U"Speckle", false);
+		BOOLEAN (U"Speckle", 0);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
-		BOOLEAN (U"Garnish", true);
+		BOOLEAN (U"Garnish", 1);
 	EDITOR_OK
 		my v_ok_pictureWindow (cmd);
 		SET_INTEGER (U"Speckle", my p_pitch_picture_speckle);
@@ -868,13 +896,13 @@ static void menu_cb_drawVisiblePitchContour (TimeSoundAnalysisEditor me, EDITOR_
 			if (! my d_pitch) Melder_throw (theMessage_Cannot_compute_pitch);
 		}
 		Editor_openPraatPicture (me);
-		double pitchFloor_hidden = Function_convertStandardToSpecialUnit (my d_pitch.get(), my p_pitch_floor, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchCeiling_hidden = Function_convertStandardToSpecialUnit (my d_pitch.get(), my p_pitch_ceiling, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchFloor_overt = Function_convertToNonlogarithmic (my d_pitch.get(), pitchFloor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
-		double pitchCeiling_overt = Function_convertToNonlogarithmic (my d_pitch.get(), pitchCeiling_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchFloor_hidden = Function_convertStandardToSpecialUnit (my d_pitch, my p_pitch_floor, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchCeiling_hidden = Function_convertStandardToSpecialUnit (my d_pitch, my p_pitch_ceiling, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchFloor_overt = Function_convertToNonlogarithmic (my d_pitch, pitchFloor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+		double pitchCeiling_overt = Function_convertToNonlogarithmic (my d_pitch, pitchCeiling_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
 		double pitchViewFrom_overt = my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewFrom : pitchFloor_overt;
 		double pitchViewTo_overt = my p_pitch_viewFrom < my p_pitch_viewTo ? my p_pitch_viewTo : pitchCeiling_overt;
-		Pitch_draw (my d_pitch.get(), my pictureGraphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt,
+		Pitch_draw (my d_pitch, my pictureGraphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt,
 			my p_pitch_picture_garnish, my p_pitch_picture_speckle, my p_pitch_unit);
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
@@ -883,13 +911,15 @@ static void menu_cb_drawVisiblePitchContour (TimeSoundAnalysisEditor me, EDITOR_
 
 /***** INTENSITY MENU *****/
 
-static void menu_cb_showIntensity (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showIntensity (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	my pref_intensity_show () = my p_intensity_show = ! my p_intensity_show;
 	GuiMenuItem_check (my intensityToggle, my p_intensity_show);   // in case we're called from a script
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_intensitySettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_intensitySettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Intensity settings", U"Intro 6.2. Configuring the intensity contour")
 		REAL (U"left View range (dB)",  my default_intensity_viewFrom ())
 		REAL (U"right View range (dB)", my default_intensity_viewTo   ())
@@ -912,24 +942,26 @@ static void menu_cb_intensitySettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_F
 		my pref_intensity_viewTo               () = my p_intensity_viewTo               = GET_REAL    (U"right View range");
 		my pref_intensity_averagingMethod      () = my p_intensity_averagingMethod      = GET_ENUM    (kTimeSoundAnalysisEditor_intensity_averagingMethod, U"Averaging method");
 		my pref_intensity_subtractMeanPressure () = my p_intensity_subtractMeanPressure = GET_INTEGER (U"Subtract mean pressure");
-		my d_intensity. reset();
+		forget (my d_intensity);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_extractVisibleIntensityContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractVisibleIntensityContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_intensity_show)
 		Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
 	if (! my d_intensity) {
 		TimeSoundAnalysisEditor_computeIntensity (me);
 		if (! my d_intensity) Melder_throw (theMessage_Cannot_compute_intensity);
 	}
-	autoIntensity publish = Data_copy (my d_intensity.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoIntensity publish = Data_copy (my d_intensity);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_drawVisibleIntensityContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible intensity contour", nullptr)
+static void menu_cb_drawVisibleIntensityContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Draw visible intensity contour", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
@@ -951,16 +983,17 @@ static void menu_cb_drawVisibleIntensityContour (TimeSoundAnalysisEditor me, EDI
 			if (! my d_intensity) Melder_throw (theMessage_Cannot_compute_intensity);
 		}
 		Editor_openPraatPicture (me);
-		Intensity_draw (my d_intensity.get(), my pictureGraphics, my d_startWindow, my d_endWindow, my p_intensity_viewFrom, my p_intensity_viewTo,
+		Intensity_draw (my d_intensity, my pictureGraphics, my d_startWindow, my d_endWindow, my p_intensity_viewFrom, my p_intensity_viewTo,
 			my p_intensity_picture_garnish);
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
-static void menu_cb_intensityListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_intensityListing (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_intensity_show)
 		Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
 	if (! my d_intensity) {
@@ -970,23 +1003,24 @@ static void menu_cb_intensityListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DI
 	MelderInfo_open ();
 	MelderInfo_writeLine (U"Time_s   Intensity_dB");
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		double intensity = Vector_getValueAtX (my d_intensity.get(), tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
+		double intensity = Vector_getValueAtX (my d_intensity, tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
 		MelderInfo_writeLine (Melder_fixed (tmin, 6), U"   ", Melder_fixed (intensity, 6));
 	} else {
 		long i, i1, i2;
-		Sampled_getWindowSamples (my d_intensity.get(), tmin, tmax, & i1, & i2);
+		Sampled_getWindowSamples (my d_intensity, tmin, tmax, & i1, & i2);
 		for (i = i1; i <= i2; i ++) {
-			double t = Sampled_indexToX (my d_intensity.get(), i);
-			double intensity = Vector_getValueAtX (my d_intensity.get(), t, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_NEAREST);
+			double t = Sampled_indexToX (my d_intensity, i);
+			double intensity = Vector_getValueAtX (my d_intensity, t, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_NEAREST);
 			MelderInfo_writeLine (Melder_fixed (t, 6), U"   ", Melder_fixed (intensity, 6));
 		}
 	}
 	MelderInfo_close ();
 }
 
-static void menu_cb_getIntensity (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getIntensity (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_intensity_show)
 		Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
 	if (! my d_intensity) {
@@ -994,49 +1028,53 @@ static void menu_cb_getIntensity (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT
 		if (! my d_intensity) Melder_throw (theMessage_Cannot_compute_intensity);
 	}
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		Melder_information (Vector_getValueAtX (my d_intensity.get(), tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR), U" dB (intensity at CURSOR)");
+		Melder_information (Vector_getValueAtX (my d_intensity, tmin, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR), U" dB (intensity at CURSOR)");
 	} else {
 		static const char32 *methodString [] = { U"median", U"mean-energy", U"mean-sones", U"mean-dB" };
-		Melder_information (Intensity_getAverage (my d_intensity.get(), tmin, tmax, my p_intensity_averagingMethod),
+		Melder_information (Intensity_getAverage (my d_intensity, tmin, tmax, my p_intensity_averagingMethod),
 			U" dB (", methodString [my p_intensity_averagingMethod], U" intensity ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 	}
 }
 
-static void menu_cb_getMinimumIntensity (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getMinimumIntensity (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, false, & tmin, & tmax);
+	int part = makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_intensity_show)
 		Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
 	if (! my d_intensity) {
 		TimeSoundAnalysisEditor_computeIntensity (me);
 		if (! my d_intensity) Melder_throw (theMessage_Cannot_compute_intensity);
 	}
-	double intensity = Vector_getMinimum (my d_intensity.get(), tmin, tmax, NUM_PEAK_INTERPOLATE_PARABOLIC);
+	double intensity = Vector_getMinimum (my d_intensity, tmin, tmax, NUM_PEAK_INTERPOLATE_PARABOLIC);
 	Melder_information (intensity, U" dB (minimum intensity ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 }
 
-static void menu_cb_getMaximumIntensity (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_getMaximumIntensity (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, false, & tmin, & tmax);
+	int part = makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_intensity_show)
 		Melder_throw (U"No intensity contour is visible.\nFirst choose \"Show intensity\" from the Intensity menu.");
 	if (! my d_intensity) {
 		TimeSoundAnalysisEditor_computeIntensity (me);
 		if (! my d_intensity) Melder_throw (theMessage_Cannot_compute_intensity);
 	}
-	double intensity = Vector_getMaximum (my d_intensity.get(), tmin, tmax, NUM_PEAK_INTERPOLATE_PARABOLIC);
+	double intensity = Vector_getMaximum (my d_intensity, tmin, tmax, NUM_PEAK_INTERPOLATE_PARABOLIC);
 	Melder_information (intensity, U" dB (maximum intensity ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 }
 
 /***** FORMANT MENU *****/
 
-static void menu_cb_showFormants (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showFormants (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	my pref_formant_show () = my p_formant_show = ! my p_formant_show;
 	GuiMenuItem_check (my formantToggle, my p_formant_show);   // in case we're called from a script
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_formantSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_formantSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Formant settings", U"Intro 5.2. Configuring the formant contours")
 		POSITIVE (U"Maximum formant (Hz)", my default_formant_maximumFormant   ())
 		POSITIVE (U"Number of formants",   my default_formant_numberOfFormants ())
@@ -1067,12 +1105,13 @@ static void menu_cb_formantSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FOR
 		my pref_formant_windowLength     () = my p_formant_windowLength     = GET_REAL (U"Window length");
 		my pref_formant_dynamicRange     () = my p_formant_dynamicRange     = GET_REAL (U"Dynamic range");
 		my pref_formant_dotSize          () = my p_formant_dotSize          = GET_REAL (U"Dot size");
-		my d_formant. reset();
+		forget (my d_formant);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_advancedFormantSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_advancedFormantSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Advanced formant settings", U"Advanced formant settings...")
 		RADIO_ENUM (U"Method", kTimeSoundAnalysisEditor_formant_analysisMethod, my default_formant_method ())
 		POSITIVE (U"Pre-emphasis from (Hz)", my default_formant_preemphasisFrom ())
@@ -1082,28 +1121,30 @@ static void menu_cb_advancedFormantSettings (TimeSoundAnalysisEditor me, EDITOR_
 	EDITOR_DO
 		my pref_formant_method          () = my p_formant_method          = GET_ENUM (kTimeSoundAnalysisEditor_formant_analysisMethod, U"Method");
 		my pref_formant_preemphasisFrom () = my p_formant_preemphasisFrom = GET_REAL (U"Pre-emphasis from");
-		my d_formant. reset();
+		forget (my d_formant);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_extractVisibleFormantContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractVisibleFormantContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_formant_show)
 		Melder_throw (U"No formant contour is visible.\nFirst choose \"Show formants\" from the Formant menu.");
 	if (! my d_formant) {
 		TimeSoundAnalysisEditor_computeFormants (me);
 		if (! my d_formant) Melder_throw (theMessage_Cannot_compute_formant);
 	}
-	autoFormant publish = Data_copy (my d_formant.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoFormant publish = Data_copy (my d_formant);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_drawVisibleFormantContour (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible formant contour", nullptr)
+static void menu_cb_drawVisibleFormantContour (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Draw visible formant contour", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
-		BOOLEAN (U"Garnish", true);
+		BOOLEAN (U"Garnish", 1);
 	EDITOR_OK
 		my v_ok_pictureWindow (cmd);
 		my v_ok_pictureMargins (cmd);
@@ -1121,7 +1162,7 @@ static void menu_cb_drawVisibleFormantContour (TimeSoundAnalysisEditor me, EDITO
 			if (! my d_formant) Melder_throw (theMessage_Cannot_compute_formant);
 		}
 		Editor_openPraatPicture (me);
-		Formant_drawSpeckles (my d_formant.get(), my pictureGraphics, my d_startWindow, my d_endWindow,
+		Formant_drawSpeckles (my d_formant, my pictureGraphics, my d_startWindow, my d_endWindow,
 			my p_spectrogram_viewTo, my p_formant_dynamicRange,
 			my p_formant_picture_garnish);
 		FunctionEditor_garnish (me);
@@ -1129,9 +1170,10 @@ static void menu_cb_drawVisibleFormantContour (TimeSoundAnalysisEditor me, EDITO
 	EDITOR_END
 }
 
-static void menu_cb_formantListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_formantListing (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_formant_show)
 		Melder_throw (U"No formant contour is visible.\nFirst choose \"Show formants\" from the Formant menu.");
 	if (! my d_formant) {
@@ -1141,20 +1183,20 @@ static void menu_cb_formantListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRE
 	MelderInfo_open ();
 	MelderInfo_writeLine (U"Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz");
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		double f1 = Formant_getValueAtTime (my d_formant.get(), 1, tmin, 0);
-		double f2 = Formant_getValueAtTime (my d_formant.get(), 2, tmin, 0);
-		double f3 = Formant_getValueAtTime (my d_formant.get(), 3, tmin, 0);
-		double f4 = Formant_getValueAtTime (my d_formant.get(), 4, tmin, 0);
+		double f1 = Formant_getValueAtTime (my d_formant, 1, tmin, 0);
+		double f2 = Formant_getValueAtTime (my d_formant, 2, tmin, 0);
+		double f3 = Formant_getValueAtTime (my d_formant, 3, tmin, 0);
+		double f4 = Formant_getValueAtTime (my d_formant, 4, tmin, 0);
 		MelderInfo_writeLine (Melder_fixed (tmin, 6), U"   ", Melder_fixed (f1, 6), U"   ", Melder_fixed (f2, 6), U"   ", Melder_fixed (f3, 6), U"   ", Melder_fixed (f4, 6));
 	} else {
 		long i, i1, i2;
-		Sampled_getWindowSamples (my d_formant.get(), tmin, tmax, & i1, & i2);
+		Sampled_getWindowSamples (my d_formant, tmin, tmax, & i1, & i2);
 		for (i = i1; i <= i2; i ++) {
-			double t = Sampled_indexToX (my d_formant.get(), i);
-			double f1 = Formant_getValueAtTime (my d_formant.get(), 1, t, 0);
-			double f2 = Formant_getValueAtTime (my d_formant.get(), 2, t, 0);
-			double f3 = Formant_getValueAtTime (my d_formant.get(), 3, t, 0);
-			double f4 = Formant_getValueAtTime (my d_formant.get(), 4, t, 0);
+			double t = Sampled_indexToX (my d_formant, i);
+			double f1 = Formant_getValueAtTime (my d_formant, 1, t, 0);
+			double f2 = Formant_getValueAtTime (my d_formant, 2, t, 0);
+			double f3 = Formant_getValueAtTime (my d_formant, 3, t, 0);
+			double f4 = Formant_getValueAtTime (my d_formant, 4, t, 0);
 			MelderInfo_writeLine (Melder_fixed (t, 6), U"   ", Melder_fixed (f1, 6), U"   ", Melder_fixed (f2, 6), U"   ", Melder_fixed (f3, 6), U"   ", Melder_fixed (f4, 6));
 		}
 	}
@@ -1163,7 +1205,7 @@ static void menu_cb_formantListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRE
 
 static void do_getFormant (TimeSoundAnalysisEditor me, int iformant) {
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_formant_show)
 		Melder_throw (U"No formant contour is visible.\nFirst choose \"Show formants\" from the Formant menu.");
 	if (! my d_formant) {
@@ -1171,16 +1213,16 @@ static void do_getFormant (TimeSoundAnalysisEditor me, int iformant) {
 		if (! my d_formant) Melder_throw (theMessage_Cannot_compute_formant);
 	}
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		Melder_information (Formant_getValueAtTime (my d_formant.get(), iformant, tmin, 0),
+		Melder_information (Formant_getValueAtTime (my d_formant, iformant, tmin, 0),
 			U" Hz (nearest F", iformant, U" to CURSOR)");
 	} else {
-		Melder_information (Formant_getMean (my d_formant.get(), iformant, tmin, tmax, 0),
+		Melder_information (Formant_getMean (my d_formant, iformant, tmin, tmax, 0),
 			U" Hz (mean F", iformant, U" ", TimeSoundAnalysisEditor_partString_locative (part), U")");
 	}
 }
 static void do_getBandwidth (TimeSoundAnalysisEditor me, int iformant) {
 	double tmin, tmax;
-	int part = makeQueriable (me, true, & tmin, & tmax);
+	int part = makeQueriable (me, TRUE, & tmin, & tmax);
 	if (! my p_formant_show)
 		Melder_throw (U"No formant contour is visible.\nFirst choose \"Show formants\" from the Formant menu.");
 	if (! my d_formant) {
@@ -1188,32 +1230,33 @@ static void do_getBandwidth (TimeSoundAnalysisEditor me, int iformant) {
 		if (! my d_formant) Melder_throw (theMessage_Cannot_compute_formant);
 	}
 	if (part == TimeSoundAnalysisEditor_PART_CURSOR) {
-		Melder_information (Formant_getBandwidthAtTime (my d_formant.get(), iformant, tmin, 0),
+		Melder_information (Formant_getBandwidthAtTime (my d_formant, iformant, tmin, 0),
 			U" Hz (nearest B", iformant, U" to CURSOR)");
 	} else {
-		Melder_information (Formant_getBandwidthAtTime (my d_formant.get(), iformant, 0.5 * (tmin + tmax), 0),
+		Melder_information (Formant_getBandwidthAtTime (my d_formant, iformant, 0.5 * (tmin + tmax), 0),
 			U" Hz (B", iformant, U" in centre of ", TimeSoundAnalysisEditor_partString (part), U")");
 	}
 }
-static void menu_cb_getFirstFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getFormant (me, 1); }
-static void menu_cb_getFirstBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getBandwidth (me, 1); }
-static void menu_cb_getSecondFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getFormant (me, 2); }
-static void menu_cb_getSecondBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getBandwidth (me, 2); }
-static void menu_cb_getThirdFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getFormant (me, 3); }
-static void menu_cb_getThirdBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getBandwidth (me, 3); }
-static void menu_cb_getFourthFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getFormant (me, 4); }
-static void menu_cb_getFourthBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	do_getBandwidth (me, 4); }
-
-static void menu_cb_getFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Get formant", nullptr)
+static void menu_cb_getFirstFormant (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getFormant (me, 1); }
+static void menu_cb_getFirstBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getBandwidth (me, 1); }
+static void menu_cb_getSecondFormant (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getFormant (me, 2); }
+static void menu_cb_getSecondBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getBandwidth (me, 2); }
+static void menu_cb_getThirdFormant (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getFormant (me, 3); }
+static void menu_cb_getThirdBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getBandwidth (me, 3); }
+static void menu_cb_getFourthFormant (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getFormant (me, 4); }
+static void menu_cb_getFourthBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor); do_getBandwidth (me, 4); }
+
+static void menu_cb_getFormant (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Get formant", 0)
 		NATURAL (U"Formant number", U"5")
 	EDITOR_OK
 	EDITOR_DO
@@ -1221,8 +1264,9 @@ static void menu_cb_getFormant (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_getBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Get bandwidth", nullptr)
+static void menu_cb_getBandwidth (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Get bandwidth", 0)
 		NATURAL (U"Formant number", U"5")
 	EDITOR_OK
 	EDITOR_DO
@@ -1232,13 +1276,15 @@ static void menu_cb_getBandwidth (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM)
 
 /***** PULSE MENU *****/
 
-static void menu_cb_showPulses (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_showPulses (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	my pref_pulses_show () = my p_pulses_show = ! my p_pulses_show;
 	GuiMenuItem_check (my pulsesToggle, my p_pulses_show);   // in case we're called from a script
 	FunctionEditor_redraw (me);
 }
 
-static void menu_cb_advancedPulsesSettings (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_advancedPulsesSettings (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	EDITOR_FORM (U"Advanced pulses settings", U"Advanced pulses settings...")
 		POSITIVE (U"Maximum period factor",    my default_pulses_maximumPeriodFactor    ())
 		POSITIVE (U"Maximum amplitude factor", my default_pulses_maximumAmplitudeFactor ())
@@ -1248,28 +1294,30 @@ static void menu_cb_advancedPulsesSettings (TimeSoundAnalysisEditor me, EDITOR_A
 	EDITOR_DO
 		my pref_pulses_maximumPeriodFactor    () = my p_pulses_maximumPeriodFactor    = GET_REAL (U"Maximum period factor");
 		my pref_pulses_maximumAmplitudeFactor () = my p_pulses_maximumAmplitudeFactor = GET_REAL (U"Maximum amplitude factor");
-		my d_pulses. reset();
+		forget (my d_pulses);
 		FunctionEditor_redraw (me);
 	EDITOR_END
 }
 
-static void menu_cb_extractVisiblePulses (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_extractVisiblePulses (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	if (! my p_pulses_show)
 		Melder_throw (U"No pulses are visible.\nFirst choose \"Show pulses\" from the Pulses menu.");
 	if (! my d_pulses) {
 		TimeSoundAnalysisEditor_computePulses (me);
 		if (! my d_pulses) Melder_throw (theMessage_Cannot_compute_pulses);
 	}
-	autoPointProcess publish = Data_copy (my d_pulses.get());
-	Editor_broadcastPublication (me, publish.move());
+	autoPointProcess publish = Data_copy (my d_pulses);
+	Editor_broadcastPublication (me, publish.transfer());
 }
 
-static void menu_cb_drawVisiblePulses (TimeSoundAnalysisEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible pulses", nullptr)
+static void menu_cb_drawVisiblePulses (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	EDITOR_FORM (U"Draw visible pulses", 0)
 		my v_form_pictureWindow (cmd);
 		my v_form_pictureMargins (cmd);
 		my v_form_pictureSelection (cmd);
-		BOOLEAN (U"Garnish", true);
+		BOOLEAN (U"Garnish", 1);
 	EDITOR_OK
 		my v_ok_pictureWindow (cmd);
 		my v_ok_pictureMargins (cmd);
@@ -1287,17 +1335,18 @@ static void menu_cb_drawVisiblePulses (TimeSoundAnalysisEditor me, EDITOR_ARGS_F
 			if (! my d_pulses) Melder_throw (theMessage_Cannot_compute_pulses);
 		}
 		Editor_openPraatPicture (me);
-		PointProcess_draw (my d_pulses.get(), my pictureGraphics, my d_startWindow, my d_endWindow,
+		PointProcess_draw (my d_pulses, my pictureGraphics, my d_startWindow, my d_endWindow,
 			my p_pulses_picture_garnish);
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
-static void menu_cb_voiceReport (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
-	time_t today = time (nullptr);
+static void menu_cb_voiceReport (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
+	time_t today = time (NULL);
 	double tmin, tmax;
-	int part = makeQueriable (me, false, & tmin, & tmax);
+	int part = makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_pulses_show)
 		Melder_throw (U"No pulses are visible.\nFirst choose \"Show pulses\" from the Pulses menu.");
 	if (! my d_pulses) {
@@ -1311,15 +1360,16 @@ static void menu_cb_voiceReport (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT)
 		MelderInfo_writeLine (U"WARNING: some of the following measurements may be imprecise.\n"
 			"For more precision, go to \"Pitch settings\" and choose \"Optimize for voice analysis\".\n");
 	MelderInfo_writeLine (U"Time range of ", TimeSoundAnalysisEditor_partString (part));
-	Sound_Pitch_PointProcess_voiceReport (sound.get(), my d_pitch.get(), my d_pulses.get(), tmin, tmax,
+	Sound_Pitch_PointProcess_voiceReport (sound.peek(), my d_pitch, my d_pulses, tmin, tmax,
 		my p_pitch_floor, my p_pitch_ceiling, my p_pulses_maximumPeriodFactor, my p_pulses_maximumAmplitudeFactor, my p_pitch_silenceThreshold, my p_pitch_voicingThreshold);
 	MelderInfo_close ();
 }
 
-static void menu_cb_pulseListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pulseListing (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundAnalysisEditor);
 	long i, i1, i2;
 	double tmin, tmax;
-	makeQueriable (me, false, & tmin, & tmax);
+	makeQueriable (me, FALSE, & tmin, & tmax);
 	if (! my p_pulses_show)
 		Melder_throw (U"No pulses are visible.\nFirst choose \"Show pulses\" from the Pulses menu.");
 	if (! my d_pulses) {
@@ -1328,8 +1378,8 @@ static void menu_cb_pulseListing (TimeSoundAnalysisEditor me, EDITOR_ARGS_DIRECT
 	}
 	MelderInfo_open ();
 	MelderInfo_writeLine (U"Time_s");
-	i1 = PointProcess_getHighIndex (my d_pulses.get(), tmin);
-	i2 = PointProcess_getLowIndex (my d_pulses.get(), tmax);
+	i1 = PointProcess_getHighIndex (my d_pulses, tmin);
+	i2 = PointProcess_getLowIndex (my d_pulses, tmax);
 	for (i = i1; i <= i2; i ++) {
 		double t = my d_pulses -> t [i];
 		MelderInfo_writeLine (Melder_fixed (t, 12));
@@ -1350,7 +1400,7 @@ static void cb_getJitter_xx (TimeSoundAnalysisEditor me, double (*PointProcess_g
 		Melder_throw (U"Make a selection first.");
 	makeQueriable
 	Melder_informationReal (PointProcess_getJitter_xx (my d_pulses, my startSelection, my endSelection,
-		minimumPeriod, maximumPeriod, my p_pulses_maximumPeriodFactor), nullptr);
+		minimumPeriod, maximumPeriod, my p_pulses_maximumPeriodFactor), NULL);
 }
 DIRECT (TimeSoundAnalysisEditor, cb_getJitter_local) cb_getJitter_xx (me, PointProcess_getJitter_local); END
 DIRECT (TimeSoundAnalysisEditor, cb_getJitter_local_absolute) cb_getJitter_xx (me, PointProcess_getJitter_local_absolute); END
@@ -1371,7 +1421,7 @@ static void cb_getShimmer_xx (TimeSoundAnalysisEditor me, double (*PointProcess_
 	makeQueriable
 	autoSound sound = extractSound (me, my startSelection, my endSelection);
 	Melder_informationReal (PointProcess_Sound_getShimmer_xx (my d_pulses, sound, my startSelection, my endSelection,
-		minimumPeriod, maximumPeriod, my p_pulses_maximumAmplitudeFactor), nullptr);
+		minimumPeriod, maximumPeriod, my p_pulses_maximumAmplitudeFactor), NULL);
 }
 DIRECT (TimeSoundAnalysisEditor, cb_getShimmer_local) cb_getShimmer_xx (me, PointProcess_Sound_getShimmer_local); END
 DIRECT (TimeSoundAnalysisEditor, cb_getShimmer_local_dB) cb_getShimmer_xx (me, PointProcess_Sound_getShimmer_local_dB); END
@@ -1401,7 +1451,7 @@ void structTimeSoundAnalysisEditor :: v_createMenuItems_query (EditorMenu menu)
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_query_log (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- query log --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- query log --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Log settings...", 0, menu_cb_logSettings);
 	EditorMenu_addCommand (menu, U"Delete log file 1", 0, menu_cb_deleteLogFile1);
 	EditorMenu_addCommand (menu, U"Delete log file 2", 0, menu_cb_deleteLogFile2);
@@ -1420,15 +1470,15 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 			GuiMenu_CHECKBUTTON | (pref_spectrogram_show () ? GuiMenu_TOGGLE_ON : 0), menu_cb_showSpectrogram);
 		EditorMenu_addCommand (menu, U"Spectrogram settings...", 0, menu_cb_spectrogramSettings);
 		EditorMenu_addCommand (menu, U"Advanced spectrogram settings...", 0, menu_cb_advancedSpectrogramSettings);
-		EditorMenu_addCommand (menu, U"-- spectrum query --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- spectrum query --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Query:", GuiMenu_INSENSITIVE, menu_cb_getFrequency /* dummy */);
 		EditorMenu_addCommand (menu, U"Get frequency at frequency cursor", 0, menu_cb_getFrequency);
 		EditorMenu_addCommand (menu, U"Get spectral power at cursor cross", GuiMenu_F7, menu_cb_getSpectralPowerAtCursorCross);
-		EditorMenu_addCommand (menu, U"-- spectrum select --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- spectrum select --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Select:", GuiMenu_INSENSITIVE, menu_cb_moveFrequencyCursorTo/* dummy */);
 		EditorMenu_addCommand (menu, U"Move frequency cursor to...", 0, menu_cb_moveFrequencyCursorTo);
 		v_createMenuItems_spectrum_picture (menu);
-		EditorMenu_addCommand (menu, U"-- spectrum extract --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- spectrum extract --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Extract to objects window:", GuiMenu_INSENSITIVE, menu_cb_extractVisibleSpectrogram /* dummy */);
 		EditorMenu_addCommand (menu, U"Extract visible spectrogram", 0, menu_cb_extractVisibleSpectrogram);
 		EditorMenu_addCommand (menu, U"View spectral slice", 'L', menu_cb_viewSpectralSlice);
@@ -1440,18 +1490,18 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 			GuiMenu_CHECKBUTTON | (pref_pitch_show () ? GuiMenu_TOGGLE_ON : 0), menu_cb_showPitch);
 		EditorMenu_addCommand (menu, U"Pitch settings...", 0, menu_cb_pitchSettings);
 		EditorMenu_addCommand (menu, U"Advanced pitch settings...", 0, menu_cb_advancedPitchSettings);
-		EditorMenu_addCommand (menu, U"-- pitch query --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- pitch query --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Query:", GuiMenu_INSENSITIVE, menu_cb_getFrequency /* dummy */);
 		EditorMenu_addCommand (menu, U"Pitch listing", 0, menu_cb_pitchListing);
 		EditorMenu_addCommand (menu, U"Get pitch", GuiMenu_F5, menu_cb_getPitch);
 		EditorMenu_addCommand (menu, U"Get minimum pitch", GuiMenu_F5 + GuiMenu_COMMAND, menu_cb_getMinimumPitch);
 		EditorMenu_addCommand (menu, U"Get maximum pitch", GuiMenu_F5 + GuiMenu_SHIFT, menu_cb_getMaximumPitch);
-		EditorMenu_addCommand (menu, U"-- pitch select --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- pitch select --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Select:", GuiMenu_INSENSITIVE, menu_cb_moveCursorToMinimumPitch /* dummy */);
 		EditorMenu_addCommand (menu, U"Move cursor to minimum pitch", GuiMenu_COMMAND + GuiMenu_SHIFT + 'L', menu_cb_moveCursorToMinimumPitch);
 		EditorMenu_addCommand (menu, U"Move cursor to maximum pitch", GuiMenu_COMMAND + GuiMenu_SHIFT + 'H', menu_cb_moveCursorToMaximumPitch);
 		v_createMenuItems_pitch_picture (menu);
-		EditorMenu_addCommand (menu, U"-- pitch extract --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- pitch extract --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Extract to objects window:", GuiMenu_INSENSITIVE, menu_cb_extractVisiblePitchContour /* dummy */);
 		EditorMenu_addCommand (menu, U"Extract visible pitch contour", 0, menu_cb_extractVisiblePitchContour);
 	}
@@ -1461,14 +1511,14 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 		intensityToggle = EditorMenu_addCommand (menu, U"Show intensity",
 			GuiMenu_CHECKBUTTON | (pref_intensity_show () ? GuiMenu_TOGGLE_ON : 0), menu_cb_showIntensity);
 		EditorMenu_addCommand (menu, U"Intensity settings...", 0, menu_cb_intensitySettings);
-		EditorMenu_addCommand (menu, U"-- intensity query --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- intensity query --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Query:", GuiMenu_INSENSITIVE, menu_cb_getFrequency /* dummy */);
 		EditorMenu_addCommand (menu, U"Intensity listing", 0, menu_cb_intensityListing);
 		EditorMenu_addCommand (menu, U"Get intensity", GuiMenu_F8, menu_cb_getIntensity);
 		EditorMenu_addCommand (menu, U"Get minimum intensity", GuiMenu_F8 + GuiMenu_COMMAND, menu_cb_getMinimumIntensity);
 		EditorMenu_addCommand (menu, U"Get maximum intensity", GuiMenu_F8 + GuiMenu_SHIFT, menu_cb_getMaximumIntensity);
 		v_createMenuItems_intensity_picture (menu);
-		EditorMenu_addCommand (menu, U"-- intensity extract --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- intensity extract --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Extract to objects window:", GuiMenu_INSENSITIVE, menu_cb_extractVisibleIntensityContour /* dummy */);
 		EditorMenu_addCommand (menu, U"Extract visible intensity contour", 0, menu_cb_extractVisibleIntensityContour);
 	}
@@ -1479,7 +1529,7 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 			GuiMenu_CHECKBUTTON | (pref_formant_show () ? GuiMenu_TOGGLE_ON : 0), menu_cb_showFormants);
 		EditorMenu_addCommand (menu, U"Formant settings...", 0, menu_cb_formantSettings);
 		EditorMenu_addCommand (menu, U"Advanced formant settings...", 0, menu_cb_advancedFormantSettings);
-		EditorMenu_addCommand (menu, U"-- formant query --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- formant query --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Query:", GuiMenu_INSENSITIVE, menu_cb_getFrequency /* dummy */);
 		EditorMenu_addCommand (menu, U"Formant listing", 0, menu_cb_formantListing);
 		EditorMenu_addCommand (menu, U"Get first formant", GuiMenu_F1, menu_cb_getFirstFormant);
@@ -1493,7 +1543,7 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 		EditorMenu_addCommand (menu, U"Get formant...", 0, menu_cb_getFormant);
 		EditorMenu_addCommand (menu, U"Get bandwidth...", 0, menu_cb_getBandwidth);
 		v_createMenuItems_formant_picture (menu);
-		EditorMenu_addCommand (menu, U"-- formant extract --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- formant extract --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Extract to objects window:", GuiMenu_INSENSITIVE, menu_cb_extractVisibleFormantContour /* dummy */);
 		EditorMenu_addCommand (menu, U"Extract visible formant contour", 0, menu_cb_extractVisibleFormantContour);
 	}
@@ -1503,7 +1553,7 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 		pulsesToggle = EditorMenu_addCommand (menu, U"Show pulses",
 			GuiMenu_CHECKBUTTON | (pref_pulses_show () ? GuiMenu_TOGGLE_ON : 0), menu_cb_showPulses);
 		EditorMenu_addCommand (menu, U"Advanced pulses settings...", 0, menu_cb_advancedPulsesSettings);
-		EditorMenu_addCommand (menu, U"-- pulses query --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- pulses query --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Query:", GuiMenu_INSENSITIVE, menu_cb_getFrequency /* dummy */);
 		EditorMenu_addCommand (menu, U"Voice report", 0, menu_cb_voiceReport);
 		EditorMenu_addCommand (menu, U"Pulse listing", 0, menu_cb_pulseListing);
@@ -1521,38 +1571,38 @@ void structTimeSoundAnalysisEditor :: v_createMenus_analysis () {
 		EditorMenu_addCommand (menu, U"Get shimmer (dda)", 0, cb_getShimmer_dda);
 		*/
 		v_createMenuItems_pulses_picture (menu);
-		EditorMenu_addCommand (menu, U"-- pulses extract --", 0, nullptr);
+		EditorMenu_addCommand (menu, U"-- pulses extract --", 0, NULL);
 		EditorMenu_addCommand (menu, U"Extract to objects window:", GuiMenu_INSENSITIVE, menu_cb_extractVisiblePulses /* dummy */);
 		EditorMenu_addCommand (menu, U"Extract visible pulses", 0, menu_cb_extractVisiblePulses);
 	}
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_spectrum_picture (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- spectrum draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- spectrum draw --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Draw to picture window:", GuiMenu_INSENSITIVE, menu_cb_paintVisibleSpectrogram /* dummy */);
 	EditorMenu_addCommand (menu, U"Paint visible spectrogram...", 0, menu_cb_paintVisibleSpectrogram);
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_pitch_picture (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- pitch draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- pitch draw --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Draw to picture window:", GuiMenu_INSENSITIVE, menu_cb_drawVisiblePitchContour /* dummy */);
 	EditorMenu_addCommand (menu, U"Draw visible pitch contour...", 0, menu_cb_drawVisiblePitchContour);
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_intensity_picture (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- intensity draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- intensity draw --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Draw to picture window:", GuiMenu_INSENSITIVE, menu_cb_drawVisibleIntensityContour /* dummy */);
 	EditorMenu_addCommand (menu, U"Draw visible intensity contour...", 0, menu_cb_drawVisibleIntensityContour);
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_formant_picture (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- formant draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- formant draw --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Draw to picture window:", GuiMenu_INSENSITIVE, menu_cb_drawVisibleFormantContour /* dummy */);
 	EditorMenu_addCommand (menu, U"Draw visible formant contour...", 0, menu_cb_drawVisibleFormantContour);
 }
 
 void structTimeSoundAnalysisEditor :: v_createMenuItems_pulses_picture (EditorMenu menu) {
-	EditorMenu_addCommand (menu, U"-- pulses draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- pulses draw --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Draw to picture window:", GuiMenu_INSENSITIVE, menu_cb_drawVisiblePulses /* dummy */);
 	EditorMenu_addCommand (menu, U"Draw visible pulses...", 0, menu_cb_drawVisiblePulses);
 }
@@ -1560,13 +1610,13 @@ void structTimeSoundAnalysisEditor :: v_createMenuItems_pulses_picture (EditorMe
 void TimeSoundAnalysisEditor_computeSpectrogram (TimeSoundAnalysisEditor me) {
 	autoMelderProgressOff progress;
 	if (my p_spectrogram_show && my d_endWindow - my d_startWindow <= my p_longestAnalysis &&
-		(! my d_spectrogram || my d_spectrogram -> xmin != my d_startWindow || my d_spectrogram -> xmax != my d_endWindow))
+		(my d_spectrogram == NULL || my d_spectrogram -> xmin != my d_startWindow || my d_spectrogram -> xmax != my d_endWindow))
 	{
 		double margin = my p_spectrogram_windowShape == kSound_to_Spectrogram_windowShape_GAUSSIAN ? my p_spectrogram_windowLength : 0.5 * my p_spectrogram_windowLength;
-		my d_spectrogram.reset();
+		forget (my d_spectrogram);
 		try {
 			autoSound sound = extractSound (me, my d_startWindow - margin, my d_endWindow + margin);
-			my d_spectrogram = Sound_to_Spectrogram (sound.get(), my p_spectrogram_windowLength,
+			my d_spectrogram = Sound_to_Spectrogram (sound.peek(), my p_spectrogram_windowLength,
 				my p_spectrogram_viewTo, (my d_endWindow - my d_startWindow) / my p_spectrogram_timeSteps,
 				my p_spectrogram_viewTo / my p_spectrogram_frequencySteps, my p_spectrogram_windowShape, 8.0, 8.0);
 			my d_spectrogram -> xmin = my d_startWindow;
@@ -1579,14 +1629,14 @@ void TimeSoundAnalysisEditor_computeSpectrogram (TimeSoundAnalysisEditor me) {
 
 static void computePitch_inside (TimeSoundAnalysisEditor me) {
 	double margin = my p_pitch_veryAccurate ? 3.0 / my p_pitch_floor : 1.5 / my p_pitch_floor;
-	my d_pitch. reset();
+	forget (my d_pitch);
 	try {
 		autoSound sound = extractSound (me, my d_startWindow - margin, my d_endWindow + margin);
 		double pitchTimeStep =
 			my p_timeStepStrategy == kTimeSoundAnalysisEditor_timeStepStrategy_FIXED ? my p_fixedTimeStep :
 			my p_timeStepStrategy == kTimeSoundAnalysisEditor_timeStepStrategy_VIEW_DEPENDENT ? (my d_endWindow - my d_startWindow) / my p_numberOfTimeStepsPerView :
 			0.0;   // the default: determined by pitch floor
-		my d_pitch = Sound_to_Pitch_any (sound.get(), pitchTimeStep,
+		my d_pitch = Sound_to_Pitch_any (sound.peek(), pitchTimeStep,
 			my p_pitch_floor,
 			my p_pitch_method == kTimeSoundAnalysisEditor_pitch_analysisMethod_AUTOCORRELATION ? 3.0 : 1.0,
 			my p_pitch_maximumNumberOfCandidates,
@@ -1603,7 +1653,7 @@ static void computePitch_inside (TimeSoundAnalysisEditor me) {
 void TimeSoundAnalysisEditor_computePitch (TimeSoundAnalysisEditor me) {
 	autoMelderProgressOff progress;
 	if (my p_pitch_show && my d_endWindow - my d_startWindow <= my p_longestAnalysis &&
-		(! my d_pitch || my d_pitch -> xmin != my d_startWindow || my d_pitch -> xmax != my d_endWindow))
+		(my d_pitch == NULL || my d_pitch -> xmin != my d_startWindow || my d_pitch -> xmax != my d_endWindow))
 	{
 		computePitch_inside (me);
 	}
@@ -1612,13 +1662,13 @@ void TimeSoundAnalysisEditor_computePitch (TimeSoundAnalysisEditor me) {
 void TimeSoundAnalysisEditor_computeIntensity (TimeSoundAnalysisEditor me) {
 	autoMelderProgressOff progress;
 	if (my p_intensity_show && my d_endWindow - my d_startWindow <= my p_longestAnalysis &&
-		(! my d_intensity || my d_intensity -> xmin != my d_startWindow || my d_intensity -> xmax != my d_endWindow))
+		(my d_intensity == NULL || my d_intensity -> xmin != my d_startWindow || my d_intensity -> xmax != my d_endWindow))
 	{
 		double margin = 3.2 / my p_pitch_floor;
-		my d_intensity. reset();
+		forget (my d_intensity);
 		try {
 			autoSound sound = extractSound (me, my d_startWindow - margin, my d_endWindow + margin);
-			my d_intensity = Sound_to_Intensity (sound.get(), my p_pitch_floor,
+			my d_intensity = Sound_to_Intensity (sound.peek(), my p_pitch_floor,
 				my d_endWindow - my d_startWindow > my p_longestAnalysis ? (my d_endWindow - my d_startWindow) / 100 : 0.0,
 				my p_intensity_subtractMeanPressure);
 			my d_intensity -> xmin = my d_startWindow;
@@ -1632,10 +1682,10 @@ void TimeSoundAnalysisEditor_computeIntensity (TimeSoundAnalysisEditor me) {
 void TimeSoundAnalysisEditor_computeFormants (TimeSoundAnalysisEditor me) {
 	autoMelderProgressOff progress;
 	if (my p_formant_show && my d_endWindow - my d_startWindow <= my p_longestAnalysis &&
-		(! my d_formant || my d_formant -> xmin != my d_startWindow || my d_formant -> xmax != my d_endWindow))
+		(my d_formant == NULL || my d_formant -> xmin != my d_startWindow || my d_formant -> xmax != my d_endWindow))
 	{
 		double margin = my p_formant_windowLength;
-		my d_formant. reset();
+		forget (my d_formant);
 		try {
 			autoSound sound =
 				my d_endWindow - my d_startWindow > my p_longestAnalysis ?
@@ -1647,7 +1697,7 @@ void TimeSoundAnalysisEditor_computeFormants (TimeSoundAnalysisEditor me) {
 				my p_timeStepStrategy == kTimeSoundAnalysisEditor_timeStepStrategy_FIXED ? my p_fixedTimeStep :
 				my p_timeStepStrategy == kTimeSoundAnalysisEditor_timeStepStrategy_VIEW_DEPENDENT ? (my d_endWindow - my d_startWindow) / my p_numberOfTimeStepsPerView :
 				0.0;   // the default: determined by analysis window length
-			my d_formant = Sound_to_Formant_any (sound.get(), formantTimeStep,
+			my d_formant = Sound_to_Formant_any (sound.peek(), formantTimeStep,
 				lround (my p_formant_numberOfFormants * 2), my p_formant_maximumFormant,
 				my p_formant_windowLength, my p_formant_method, my p_formant_preemphasisFrom, 50.0);
 			my d_formant -> xmin = my d_startWindow;
@@ -1661,16 +1711,16 @@ void TimeSoundAnalysisEditor_computeFormants (TimeSoundAnalysisEditor me) {
 void TimeSoundAnalysisEditor_computePulses (TimeSoundAnalysisEditor me) {
 	autoMelderProgressOff progress;
 	if (my p_pulses_show && my d_endWindow - my d_startWindow <= my p_longestAnalysis &&
-		(! my d_pulses || my d_pulses -> xmin != my d_startWindow || my d_pulses -> xmax != my d_endWindow))
+		(my d_pulses == NULL || my d_pulses -> xmin != my d_startWindow || my d_pulses -> xmax != my d_endWindow))
 	{
-		my d_pulses. reset();
-		if (! my d_pitch || my d_pitch -> xmin != my d_startWindow || my d_pitch -> xmax != my d_endWindow) {
+		forget (my d_pulses);
+		if (my d_pitch == NULL || my d_pitch -> xmin != my d_startWindow || my d_pitch -> xmax != my d_endWindow) {
 			computePitch_inside (me);
 		}
-		if (my d_pitch) {
+		if (my d_pitch != NULL) {
 			try {
 				autoSound sound = extractSound (me, my d_startWindow, my d_endWindow);
-				my d_pulses = Sound_Pitch_to_PointProcess_cc (sound.get(), my d_pitch.get());
+				my d_pulses = Sound_Pitch_to_PointProcess_cc (sound.peek(), my d_pitch);
 			} catch (MelderError) {
 				Melder_clearError ();
 			}
@@ -1681,7 +1731,7 @@ void TimeSoundAnalysisEditor_computePulses (TimeSoundAnalysisEditor me) {
 static void TimeSoundAnalysisEditor_v_draw_analysis (TimeSoundAnalysisEditor me) {
 	/*
 	 * d_pitch may not exist yet (if shown at all, it may be going to be created in TimeSoundAnalysisEditor_computePitch (),
-	 * and even if that fails the user should see what the pitch settings are). So we use a dummy object.
+	 * and even if if that fails we should see the pitch settings. So we use a dummy object.
 	 */
 	double pitchFloor_hidden = Function_convertStandardToSpecialUnit (Thing_dummyObject (Pitch), my p_pitch_floor, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
 	double pitchCeiling_hidden = Function_convertStandardToSpecialUnit (Thing_dummyObject (Pitch), my p_pitch_ceiling, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
@@ -1692,29 +1742,29 @@ static void TimeSoundAnalysisEditor_v_draw_analysis (TimeSoundAnalysisEditor me)
 	double pitchViewFrom_hidden = Function_isUnitLogarithmic (Thing_dummyObject (Pitch), Pitch_LEVEL_FREQUENCY, my p_pitch_unit) ? log10 (pitchViewFrom_overt) : pitchViewFrom_overt;
 	double pitchViewTo_hidden = Function_isUnitLogarithmic (Thing_dummyObject (Pitch), Pitch_LEVEL_FREQUENCY, my p_pitch_unit) ? log10 (pitchViewTo_overt) : pitchViewTo_overt;
 
-	Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-	Graphics_rectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (my d_graphics, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setColour (my d_graphics, Graphics_WHITE);
+	Graphics_fillRectangle (my d_graphics, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
+	Graphics_rectangle (my d_graphics, 0.0, 1.0, 0.0, 1.0);
 
 	if (my d_endWindow - my d_startWindow > my p_longestAnalysis) {
-		Graphics_setFont (my d_graphics.get(), kGraphics_font_HELVETICA);
-		Graphics_setFontSize (my d_graphics.get(), 10);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), 0.5, 0.67,   U"(To see the analyses, zoom in to at most ", Melder_half (my p_longestAnalysis), U" seconds,");
-		Graphics_text (my d_graphics.get(), 0.5, 0.33, U"or raise the \"longest analysis\" setting with \"Show analyses\" in the View menu.)");
-		Graphics_setFontSize (my d_graphics.get(), 12);
+		Graphics_setFont (my d_graphics, kGraphics_font_HELVETICA);
+		Graphics_setFontSize (my d_graphics, 10);
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (my d_graphics, 0.5, 0.67,   U"(To see the analyses, zoom in to at most ", Melder_half (my p_longestAnalysis), U" seconds,");
+		Graphics_text (my d_graphics, 0.5, 0.33, U"or raise the \"longest analysis\" setting with \"Show analyses\" in the View menu.)");
+		Graphics_setFontSize (my d_graphics, 12);
 		return;
 	}
 	TimeSoundAnalysisEditor_computeSpectrogram (me);
-	if (my p_spectrogram_show && my d_spectrogram) {
-		Spectrogram_paintInside (my d_spectrogram.get(), my d_graphics.get(), my d_startWindow, my d_endWindow,
+	if (my p_spectrogram_show && my d_spectrogram != NULL) {
+		Spectrogram_paintInside (my d_spectrogram, my d_graphics, my d_startWindow, my d_endWindow,
 			my p_spectrogram_viewFrom, my p_spectrogram_viewTo, my p_spectrogram_maximum, my p_spectrogram_autoscaling,
 			my p_spectrogram_dynamicRange, my p_spectrogram_preemphasis, my p_spectrogram_dynamicCompression);
 	}
 	TimeSoundAnalysisEditor_computePitch (me);
-	if (my p_pitch_show && my d_pitch) {
+	if (my p_pitch_show && my d_pitch != NULL) {
 		double periodsPerAnalysisWindow = my p_pitch_method == kTimeSoundAnalysisEditor_pitch_analysisMethod_AUTOCORRELATION ? 3.0 : 1.0;
 		double greatestNonUndersamplingTimeStep = 0.5 * periodsPerAnalysisWindow / my p_pitch_floor;
 		double defaultTimeStep = 0.5 * greatestNonUndersamplingTimeStep;
@@ -1724,91 +1774,92 @@ static void TimeSoundAnalysisEditor_v_draw_analysis (TimeSoundAnalysisEditor me)
 			defaultTimeStep;
 		int undersampled = timeStep > greatestNonUndersamplingTimeStep;
 		long numberOfVisiblePitchPoints = (long) ((my d_endWindow - my d_startWindow) / timeStep);
-		Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-		Graphics_setLineWidth (my d_graphics.get(), 3.0);
+		Graphics_setColour (my d_graphics, Graphics_CYAN);
+		Graphics_setLineWidth (my d_graphics, 3.0);
 		if ((my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_AUTOMATIC && (undersampled || numberOfVisiblePitchPoints < 101)) ||
 		    my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_SPECKLE)
 		{
-			Pitch_drawInside (my d_pitch.get(), my d_graphics.get(), my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, 2, my p_pitch_unit);
+			Pitch_drawInside (my d_pitch, my d_graphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, 2, my p_pitch_unit);
 		}
 		if ((my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_AUTOMATIC && ! undersampled) ||
 		    my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_CURVE)
 		{
-			Pitch_drawInside (my d_pitch.get(), my d_graphics.get(), my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, false, my p_pitch_unit);
+			Pitch_drawInside (my d_pitch, my d_graphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, FALSE, my p_pitch_unit);
 		}
-		Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
-		Graphics_setLineWidth (my d_graphics.get(), 1.0);
+		Graphics_setColour (my d_graphics, Graphics_BLUE);
+		Graphics_setLineWidth (my d_graphics, 1.0);
 		if ((my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_AUTOMATIC && (undersampled || numberOfVisiblePitchPoints < 101)) ||
 		    my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_SPECKLE)
 		{
-			Pitch_drawInside (my d_pitch.get(), my d_graphics.get(), my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, 1, my p_pitch_unit);
+			Pitch_drawInside (my d_pitch, my d_graphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, 1, my p_pitch_unit);
 		}
 		if ((my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_AUTOMATIC && ! undersampled) ||
 		    my p_pitch_drawingMethod == kTimeSoundAnalysisEditor_pitch_drawingMethod_CURVE)
 		{
-			Pitch_drawInside (my d_pitch.get(), my d_graphics.get(), my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, false, my p_pitch_unit);
+			Pitch_drawInside (my d_pitch, my d_graphics, my d_startWindow, my d_endWindow, pitchViewFrom_overt, pitchViewTo_overt, FALSE, my p_pitch_unit);
 		}
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
 	}
 	TimeSoundAnalysisEditor_computeIntensity (me);
-	if (my p_intensity_show && my d_intensity) {
-		Graphics_setColour (my d_graphics.get(), my p_spectrogram_show ? Graphics_YELLOW : Graphics_LIME);
-		Graphics_setLineWidth (my d_graphics.get(), my p_spectrogram_show ? 1.0 : 3.0);
-		Intensity_drawInside (my d_intensity.get(), my d_graphics.get(), my d_startWindow, my d_endWindow,
+	if (my p_intensity_show && my d_intensity != NULL) {
+		Graphics_setColour (my d_graphics, my p_spectrogram_show ? Graphics_YELLOW : Graphics_LIME);
+		Graphics_setLineWidth (my d_graphics, my p_spectrogram_show ? 1.0 : 3.0);
+		Intensity_drawInside (my d_intensity, my d_graphics, my d_startWindow, my d_endWindow,
 			my p_intensity_viewFrom, my p_intensity_viewTo);
-		Graphics_setLineWidth (my d_graphics.get(), 1.0);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+		Graphics_setLineWidth (my d_graphics, 1.0);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
 	}
 	TimeSoundAnalysisEditor_computeFormants (me);
-	if (my p_formant_show && my d_formant) {
-		Graphics_setColour (my d_graphics.get(), Graphics_RED);
-		Graphics_setSpeckleSize (my d_graphics.get(), my p_formant_dotSize);
-		Formant_drawSpeckles_inside (my d_formant.get(), my d_graphics.get(), my d_startWindow, my d_endWindow,
+	if (my p_formant_show && my d_formant != NULL) {
+		Graphics_setColour (my d_graphics, Graphics_RED);
+		Graphics_setSpeckleSize (my d_graphics, my p_formant_dotSize);
+		Formant_drawSpeckles_inside (my d_formant, my d_graphics, my d_startWindow, my d_endWindow,
 			my p_spectrogram_viewFrom, my p_spectrogram_viewTo, my p_formant_dynamicRange);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
 	}
 	/*
 	 * Draw vertical scales.
 	 */
 	if (my p_pitch_show) {
 		double pitchCursor_overt = NUMundefined, pitchCursor_hidden = NUMundefined;
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, pitchViewFrom_hidden, pitchViewTo_hidden);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLUE);
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, pitchViewFrom_hidden, pitchViewTo_hidden);
+		Graphics_setColour (my d_graphics, Graphics_BLUE);
 		if (my d_pitch) {
 			if (my d_startSelection == my d_endSelection)
-				pitchCursor_hidden = Pitch_getValueAtTime (my d_pitch.get(), my d_startSelection, my p_pitch_unit, 1);
+				pitchCursor_hidden = Pitch_getValueAtTime (my d_pitch, my d_startSelection, my p_pitch_unit, 1);
 			else
-				pitchCursor_hidden = Pitch_getMean (my d_pitch.get(), my d_startSelection, my d_endSelection, my p_pitch_unit);
-			pitchCursor_overt = Function_convertToNonlogarithmic (my d_pitch.get(), pitchCursor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
+				pitchCursor_hidden = Pitch_getMean (my d_pitch, my d_startSelection, my d_endSelection, my p_pitch_unit);
+			pitchCursor_overt = Function_convertToNonlogarithmic (my d_pitch, pitchCursor_hidden, Pitch_LEVEL_FREQUENCY, my p_pitch_unit);
 			if (NUMdefined (pitchCursor_hidden)) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_HALF);
-				Graphics_text (my d_graphics.get(), my d_endWindow, pitchCursor_hidden,
+				Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_HALF);
+				Graphics_text (my d_graphics, my d_endWindow, pitchCursor_hidden,
 					Melder_float (Melder_half (pitchCursor_overt)), U" ",
-					Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
+					Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
 			}
-			if (! NUMdefined (pitchCursor_hidden) || Graphics_dyWCtoMM (my d_graphics.get(), pitchCursor_hidden - pitchViewFrom_hidden) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-				Graphics_text (my d_graphics.get(), my d_endWindow, pitchViewFrom_hidden - Graphics_dyMMtoWC (my d_graphics.get(), 0.5),
+			if (! NUMdefined (pitchCursor_hidden) || Graphics_dyWCtoMM (my d_graphics, pitchCursor_hidden - pitchViewFrom_hidden) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_BOTTOM);
+				Graphics_text (my d_graphics, my d_endWindow, pitchViewFrom_hidden - Graphics_dyMMtoWC (my d_graphics, 0.5),
 					Melder_float (Melder_half (pitchViewFrom_overt)), U" ",
-					Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
+					Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
 			}
-			if (! NUMdefined (pitchCursor_hidden) || Graphics_dyWCtoMM (my d_graphics.get(), pitchViewTo_hidden - pitchCursor_hidden) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_TOP);
-				Graphics_text (my d_graphics.get(), my d_endWindow, pitchViewTo_hidden,
+			if (! NUMdefined (pitchCursor_hidden) || Graphics_dyWCtoMM (my d_graphics, pitchViewTo_hidden - pitchCursor_hidden) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_TOP);
+				Graphics_text (my d_graphics, my d_endWindow, pitchViewTo_hidden,
 					Melder_float (Melder_half (pitchViewTo_overt)), U" ",
-					Function_getUnitText (my d_pitch.get(), Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
+					Function_getUnitText (my d_pitch, Pitch_LEVEL_FREQUENCY, my p_pitch_unit, Function_UNIT_TEXT_SHORT | Function_UNIT_TEXT_GRAPHICAL));
 			}
 		} else {
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-			Graphics_setFontSize (my d_graphics.get(), 10);
-			Graphics_text (my d_graphics.get(), 0.5 * (my d_startWindow + my d_endWindow), 0.5 * (pitchViewFrom_hidden + pitchViewTo_hidden),
+			Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+			Graphics_setFontSize (my d_graphics, 10);
+			Graphics_text (my d_graphics, 0.5 * (my d_startWindow + my d_endWindow), 0.5 * (pitchViewFrom_hidden + pitchViewTo_hidden),
 				U"(Cannot show pitch contour. Zoom out or change bottom of pitch range in pitch settings.)");
-			Graphics_setFontSize (my d_graphics.get(), 12);
+			Graphics_setFontSize (my d_graphics, 12);
 		}
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
 	}
 	if (my p_intensity_show) {
 		double intensityCursor = NUMundefined;
+		int intensityCursorVisible;
 		Graphics_Colour textColour;
 		int alignment;
 		double y;
@@ -1816,65 +1867,64 @@ static void TimeSoundAnalysisEditor_v_draw_analysis (TimeSoundAnalysisEditor me)
 		else if (! my p_spectrogram_show && ! my p_formant_show) textColour = Graphics_GREEN, alignment = Graphics_RIGHT, y = my d_startWindow;
 		else textColour = my p_spectrogram_show ? Graphics_LIME : Graphics_GREEN, alignment = Graphics_RIGHT, y = my d_endWindow;
 		if (my p_intensity_viewTo > my p_intensity_viewFrom) {
-			Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_intensity_viewFrom, my p_intensity_viewTo);
+			Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_intensity_viewFrom, my p_intensity_viewTo);
 			if (my d_intensity) {
 				if (my d_startSelection == my d_endSelection) {
-					intensityCursor = Vector_getValueAtX (my d_intensity.get(), my d_startSelection, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
+					intensityCursor = Vector_getValueAtX (my d_intensity, my d_startSelection, Vector_CHANNEL_1, Vector_VALUE_INTERPOLATION_LINEAR);
 				} else {
-					intensityCursor = Intensity_getAverage (my d_intensity.get(), my d_startSelection, my d_endSelection, my p_intensity_averagingMethod);
+					intensityCursor = Intensity_getAverage (my d_intensity, my d_startSelection, my d_endSelection, my p_intensity_averagingMethod);
 				}
 			}
-			Graphics_setColour (my d_graphics.get(), textColour);
-			bool intensityCursorVisible = NUMdefined (intensityCursor) &&
-				intensityCursor > my p_intensity_viewFrom && intensityCursor < my p_intensity_viewTo;
+			Graphics_setColour (my d_graphics, textColour);
+			intensityCursorVisible = NUMdefined (intensityCursor) && intensityCursor > my p_intensity_viewFrom && intensityCursor < my p_intensity_viewTo;
 			if (intensityCursorVisible) {
 				static const char32 *methodString [] = { U" (.5)", U" (μE)", U" (μS)", U" (μ)" };
-				Graphics_setTextAlignment (my d_graphics.get(), alignment, Graphics_HALF);
-				Graphics_text (my d_graphics.get(), y, intensityCursor,
+				Graphics_setTextAlignment (my d_graphics, alignment, Graphics_HALF);
+				Graphics_text (my d_graphics, y, intensityCursor,
 					Melder_float (Melder_half (intensityCursor)), U" dB",
 					my d_startSelection == my d_endSelection ? U"" : methodString [my p_intensity_averagingMethod]);
 			}
-			if (! intensityCursorVisible || Graphics_dyWCtoMM (my d_graphics.get(), intensityCursor - my p_intensity_viewFrom) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), alignment, Graphics_BOTTOM);
-				Graphics_text (my d_graphics.get(), y, my p_intensity_viewFrom - Graphics_dyMMtoWC (my d_graphics.get(), 0.5),
+			if (! intensityCursorVisible || Graphics_dyWCtoMM (my d_graphics, intensityCursor - my p_intensity_viewFrom) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, alignment, Graphics_BOTTOM);
+				Graphics_text (my d_graphics, y, my p_intensity_viewFrom - Graphics_dyMMtoWC (my d_graphics, 0.5),
 					Melder_float (Melder_half (my p_intensity_viewFrom)), U" dB");
 			}
-			if (! intensityCursorVisible || Graphics_dyWCtoMM (my d_graphics.get(), my p_intensity_viewTo - intensityCursor) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), alignment, Graphics_TOP);
-				Graphics_text (my d_graphics.get(), y, my p_intensity_viewTo,
+			if (! intensityCursorVisible || Graphics_dyWCtoMM (my d_graphics, my p_intensity_viewTo - intensityCursor) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, alignment, Graphics_TOP);
+				Graphics_text (my d_graphics, y, my p_intensity_viewTo,
 					Melder_float (Melder_half (my p_intensity_viewTo)), U" dB");
 			}
-			Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+			Graphics_setColour (my d_graphics, Graphics_BLACK);
 		}
 	}
 	if (my p_spectrogram_show || my p_formant_show) {
-		bool frequencyCursorVisible = my d_spectrogram_cursor > my p_spectrogram_viewFrom && my d_spectrogram_cursor < my p_spectrogram_viewTo;
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo);
+		int frequencyCursorVisible = my d_spectrogram_cursor > my p_spectrogram_viewFrom && my d_spectrogram_cursor < my p_spectrogram_viewTo;
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo);
 		/*
 		 * Range marks.
 		 */
-		Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-		if (! frequencyCursorVisible || Graphics_dyWCtoMM (my d_graphics.get(), my d_spectrogram_cursor - my p_spectrogram_viewFrom) > 5.0) {
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_BOTTOM);
-			Graphics_text (my d_graphics.get(), my d_startWindow, my p_spectrogram_viewFrom - Graphics_dyMMtoWC (my d_graphics.get(), 0.5),
+		Graphics_setLineType (my d_graphics, Graphics_DRAWN);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
+		if (! frequencyCursorVisible || Graphics_dyWCtoMM (my d_graphics, my d_spectrogram_cursor - my p_spectrogram_viewFrom) > 5.0) {
+			Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_BOTTOM);
+			Graphics_text (my d_graphics, my d_startWindow, my p_spectrogram_viewFrom - Graphics_dyMMtoWC (my d_graphics, 0.5),
 				Melder_float (Melder_half (my p_spectrogram_viewFrom)), U" Hz");
 		}
-		if (! frequencyCursorVisible || Graphics_dyWCtoMM (my d_graphics.get(), my p_spectrogram_viewTo - my d_spectrogram_cursor) > 5.0) {
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-			Graphics_text (my d_graphics.get(), my d_startWindow, my p_spectrogram_viewTo,
+		if (! frequencyCursorVisible || Graphics_dyWCtoMM (my d_graphics, my p_spectrogram_viewTo - my d_spectrogram_cursor) > 5.0) {
+			Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+			Graphics_text (my d_graphics, my d_startWindow, my p_spectrogram_viewTo,
 				Melder_float (Melder_half (my p_spectrogram_viewTo)), U" Hz");
 		}
 		/*
 		 * Cursor lines.
 		 */
-		Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
-		Graphics_setColour (my d_graphics.get(), Graphics_RED);
+		Graphics_setLineType (my d_graphics, Graphics_DOTTED);
+		Graphics_setColour (my d_graphics, Graphics_RED);
 		if (frequencyCursorVisible) {
 			double x = my d_startWindow, y = my d_spectrogram_cursor;
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-			Graphics_text (my d_graphics.get(), x, y,   Melder_float (Melder_half (y)), U" Hz");
-			Graphics_line (my d_graphics.get(), x, y, my d_endWindow, y);
+			Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+			Graphics_text (my d_graphics, x, y,   Melder_float (Melder_half (y)), U" Hz");
+			Graphics_line (my d_graphics, x, y, my d_endWindow, y);
 		}
 		/*
 		if (our startSelection >= our startWindow && our startSelection <= our endWindow)
@@ -1884,9 +1934,9 @@ static void TimeSoundAnalysisEditor_v_draw_analysis (TimeSoundAnalysisEditor me)
 		/*
 		 * Cadre.
 		 */
-		Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-		Graphics_rectangle (my d_graphics.get(), my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo);
+		Graphics_setLineType (my d_graphics, Graphics_DRAWN);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
+		Graphics_rectangle (my d_graphics, my d_startWindow, my d_endWindow, my p_spectrogram_viewFrom, my p_spectrogram_viewTo);
 	}
 }
 void structTimeSoundAnalysisEditor :: v_draw_analysis () {
@@ -1895,35 +1945,35 @@ void structTimeSoundAnalysisEditor :: v_draw_analysis () {
 
 void structTimeSoundAnalysisEditor :: v_draw_analysis_pulses () {
 	TimeSoundAnalysisEditor_computePulses (this);
-	if (our p_pulses_show && our d_endWindow - our d_startWindow <= our p_longestAnalysis && our d_pulses) {
-		PointProcess point = our d_pulses.get();
-		Graphics_setWindow (our d_graphics.get(), our d_startWindow, our d_endWindow, -1.0, 1.0);
-		Graphics_setColour (our d_graphics.get(), Graphics_BLUE);
+	if (our p_pulses_show && our d_endWindow - our d_startWindow <= our p_longestAnalysis && our d_pulses != NULL) {
+		PointProcess point = d_pulses;
+		Graphics_setWindow (our d_graphics, our d_startWindow, our d_endWindow, -1.0, 1.0);
+		Graphics_setColour (our d_graphics, Graphics_BLUE);
 		if (point -> nt < 2000) for (long i = 1; i <= point -> nt; i ++) {
 			double t = point -> t [i];
 			if (t >= our d_startWindow && t <= our d_endWindow)
-				Graphics_line (our d_graphics.get(), t, -0.9, t, 0.9);
+				Graphics_line (our d_graphics, t, -0.9, t, 0.9);
 		}
-		Graphics_setColour (our d_graphics.get(), Graphics_BLACK);
+		Graphics_setColour (our d_graphics, Graphics_BLACK);
 	}
 }
 
-bool structTimeSoundAnalysisEditor :: v_click (double xbegin, double ybegin, bool shiftKeyPressed) {
+int structTimeSoundAnalysisEditor :: v_click (double xbegin, double ybegin, bool shiftKeyPressed) {
 	if (our p_pitch_show) {
 		//Melder_warning (xbegin, U" ", ybegin);
 		if (xbegin >= our d_endWindow && ybegin > 0.48 && ybegin <= 0.50) {
 			our pref_pitch_ceiling () = our p_pitch_ceiling = our p_pitch_ceiling * 1.26;
-			our d_pitch. reset();
-			our d_intensity.reset();
-			our d_pulses. reset();
-			return FunctionEditor_UPDATE_NEEDED;
+			forget (our d_pitch);
+			forget (our d_intensity);
+			forget (our d_pulses);
+			return 1;
 		}
 		if (xbegin >= our d_endWindow && ybegin > 0.46 && ybegin <= 0.48) {
 			our pref_pitch_ceiling () = our p_pitch_ceiling = our p_pitch_ceiling / 1.26;
-			our d_pitch. reset();
-			our d_intensity. reset();
-			our d_pulses. reset();
-			return FunctionEditor_UPDATE_NEEDED;
+			forget (our d_pitch);
+			forget (our d_intensity);
+			forget (our d_pulses);
+			return 1;
 		}
 	}
 	return TimeSoundAnalysisEditor_Parent :: v_click (xbegin, ybegin, shiftKeyPressed);
diff --git a/fon/TimeSoundAnalysisEditor.h b/fon/TimeSoundAnalysisEditor.h
index b834b66..cd70843 100644
--- a/fon/TimeSoundAnalysisEditor.h
+++ b/fon/TimeSoundAnalysisEditor.h
@@ -56,21 +56,21 @@
 #include "TimeSoundAnalysisEditor_enums.h"
 
 Thing_define (TimeSoundAnalysisEditor, TimeSoundEditor) {
-	autoSpectrogram d_spectrogram;
+	Spectrogram d_spectrogram;
 	double d_spectrogram_cursor;
-	autoPitch d_pitch;
-	autoIntensity d_intensity;
-	autoFormant d_formant;
-	autoPointProcess d_pulses;
+	Pitch d_pitch;
+	Intensity d_intensity;
+	Formant d_formant;
+	PointProcess d_pulses;
 	GuiMenuItem spectrogramToggle, pitchToggle, intensityToggle, formantToggle, pulsesToggle;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
 	void v_createMenuItems_query (EditorMenu menu)
 		override;
-	bool v_click (double xWC, double yWC, bool shiftKeyPressed)
+	int v_click (double xWC, double yWC, bool shiftKeyPressed)
 		override;
 	void v_createMenuItems_view_sound (EditorMenu menu)
 		override;
@@ -86,7 +86,7 @@ Thing_define (TimeSoundAnalysisEditor, TimeSoundEditor) {
 	virtual bool v_hasIntensity   () { return true; }
 	virtual bool v_hasFormants    () { return true; }
 	virtual bool v_hasPulses      () { return true; }
-	virtual void v_reset_analysis ();
+	virtual void v_destroy_analysis ();
 	virtual void v_createMenuItems_spectrum_picture (EditorMenu menu);
 	virtual void v_createMenuItems_pitch_picture (EditorMenu menu);
 	virtual void v_createMenuItems_intensity_picture (EditorMenu menu);
diff --git a/fon/TimeSoundEditor.cpp b/fon/TimeSoundEditor.cpp
index ea8739e..c31e500 100644
--- a/fon/TimeSoundEditor.cpp
+++ b/fon/TimeSoundEditor.cpp
@@ -1,6 +1,6 @@
 /* TimeSoundEditor.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -37,9 +37,9 @@ Thing_implement (TimeSoundEditor, FunctionEditor, 0);
 
 /********** Thing methods **********/
 
-void structTimeSoundEditor :: v_destroy () noexcept {
-	if (our d_ownSound)
-		forget (our d_sound.data);
+void structTimeSoundEditor :: v_destroy () {
+	if (d_ownSound)
+		forget (d_sound.data);
 	TimeSoundEditor_Parent :: v_destroy ();
 }
 
@@ -51,8 +51,9 @@ void structTimeSoundEditor :: v_info () {
 
 /***** FILE MENU *****/
 
-static void menu_cb_DrawVisibleSound (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw visible sound", nullptr)
+static void menu_cb_DrawVisibleSound (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM (U"Draw visible sound", 0)
 		my v_form_pictureWindow (cmd);
 		LABEL (U"", U"Sound:")
 		BOOLEAN (U"Preserve times", my default_picture_preserveTimes ());
@@ -77,21 +78,22 @@ static void menu_cb_DrawVisibleSound (TimeSoundEditor me, EDITOR_ARGS_FORM) {
 		my v_do_pictureMargins (cmd);
 		my v_do_pictureSelection (cmd);
 		my pref_picture_garnish () = GET_INTEGER (U"Garnish");
-		if (! my d_longSound.data && ! my d_sound.data)
+		if (my d_longSound.data == NULL && my d_sound.data == NULL)
 			Melder_throw (U"There is no sound to draw.");
 		autoSound publish = my d_longSound.data ?
 			LongSound_extractPart (my d_longSound.data, my d_startWindow, my d_endWindow, my pref_picture_preserveTimes ()) :
 			Sound_extractPart (my d_sound.data, my d_startWindow, my d_endWindow, kSound_windowShape_RECTANGULAR, 1.0, my pref_picture_preserveTimes ());
 		Editor_openPraatPicture (me);
-		Sound_draw (publish.get(), my pictureGraphics, 0.0, 0.0, my pref_picture_bottom (), my pref_picture_top (),
+		Sound_draw (publish.peek(), my pictureGraphics, 0.0, 0.0, my pref_picture_bottom (), my pref_picture_top (),
 			my pref_picture_garnish (), U"Curve");
 		FunctionEditor_garnish (me);
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
-static void menu_cb_DrawSelectedSound (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Draw selected sound", nullptr)
+static void menu_cb_DrawSelectedSound (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM (U"Draw selected sound", 0)
 		my v_form_pictureWindow (cmd);
 		LABEL (U"", U"Sound:")
 		BOOLEAN (U"Preserve times", my default_picture_preserveTimes ());
@@ -113,40 +115,43 @@ static void menu_cb_DrawSelectedSound (TimeSoundEditor me, EDITOR_ARGS_FORM) {
 		my pref_picture_top () = GET_REAL (U"right Vertical range");
 		my v_do_pictureMargins (cmd);
 		my pref_picture_garnish () = GET_INTEGER (U"Garnish");
-		if (! my d_longSound.data && ! my d_sound.data)
+		if (my d_longSound.data == NULL && my d_sound.data == NULL)
 			Melder_throw (U"There is no sound to draw.");
 		autoSound publish = my d_longSound.data ?
 			LongSound_extractPart (my d_longSound.data, my d_startSelection, my d_endSelection, my pref_picture_preserveTimes ()) :
 			Sound_extractPart (my d_sound.data, my d_startSelection, my d_endSelection, kSound_windowShape_RECTANGULAR, 1.0, my pref_picture_preserveTimes ());
 		Editor_openPraatPicture (me);
-		Sound_draw (publish.get(), my pictureGraphics, 0.0, 0.0, my pref_picture_bottom (), my pref_picture_top (),
+		Sound_draw (publish.peek(), my pictureGraphics, 0.0, 0.0, my pref_picture_bottom (), my pref_picture_top (),
 			my pref_picture_garnish (), U"Curve");
 		Editor_closePraatPicture (me);
 	EDITOR_END
 }
 
 static void do_ExtractSelectedSound (TimeSoundEditor me, bool preserveTimes) {
-	autoSound extract;
+	autoSound extract = NULL;
 	if (my d_endSelection <= my d_startSelection)
 		Melder_throw (U"No selection.");
 	if (my d_longSound.data) {
-		extract = LongSound_extractPart (my d_longSound.data, my d_startSelection, my d_endSelection, preserveTimes);
+		extract.reset (LongSound_extractPart (my d_longSound.data, my d_startSelection, my d_endSelection, preserveTimes));
 	} else if (my d_sound.data) {
-		extract = Sound_extractPart (my d_sound.data, my d_startSelection, my d_endSelection, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes);
+		extract.reset (Sound_extractPart (my d_sound.data, my d_startSelection, my d_endSelection, kSound_windowShape_RECTANGULAR, 1.0, preserveTimes));
 	}
-	Editor_broadcastPublication (me, extract.move());
+	Editor_broadcastPublication (me, extract.transfer());
 }
 
-static void menu_cb_ExtractSelectedSound_timeFromZero (TimeSoundEditor me, EDITOR_ARGS_DIRECT) {
-	do_ExtractSelectedSound (me, false);
+static void menu_cb_ExtractSelectedSound_timeFromZero (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	do_ExtractSelectedSound (me, FALSE);
 }
 
-static void menu_cb_ExtractSelectedSound_preserveTimes (TimeSoundEditor me, EDITOR_ARGS_DIRECT) {
-	do_ExtractSelectedSound (me, true);
+static void menu_cb_ExtractSelectedSound_preserveTimes (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	do_ExtractSelectedSound (me, TRUE);
 }
 
-static void menu_cb_ExtractSelectedSound_windowed (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Extract selected sound (windowed)", nullptr)
+static void menu_cb_ExtractSelectedSound_windowed (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM (U"Extract selected sound (windowed)", 0)
 		WORD (U"Name", U"slice")
 		OPTIONMENU_ENUM (U"Window shape", kSound_windowShape, my default_extract_windowShape ())
 		POSITIVE (U"Relative width", my default_extract_relativeWidth ())
@@ -157,39 +162,40 @@ static void menu_cb_ExtractSelectedSound_windowed (TimeSoundEditor me, EDITOR_AR
 		SET_INTEGER (U"Preserve times", my pref_extract_preserveTimes ())
 	EDITOR_DO
 		Sound sound = my d_sound.data;
-		Melder_assert (sound);
+		Melder_assert (sound != NULL);
 		my pref_extract_windowShape () = GET_ENUM (kSound_windowShape, U"Window shape");
 		my pref_extract_relativeWidth () = GET_REAL (U"Relative width");
 		my pref_extract_preserveTimes () = GET_INTEGER (U"Preserve times");
 		autoSound extract = Sound_extractPart (sound, my d_startSelection, my d_endSelection, my pref_extract_windowShape (),
 			my pref_extract_relativeWidth (), my pref_extract_preserveTimes ());
-		Thing_setName (extract.get(), GET_STRING (U"Name"));
-		Editor_broadcastPublication (me, extract.move());
+		Thing_setName (extract.peek(), GET_STRING (U"Name"));
+		Editor_broadcastPublication (me, extract.transfer());
 	EDITOR_END
 }
 
-static void menu_cb_ExtractSelectedSoundForOverlap (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Extract selected sound for overlap)", nullptr)
+static void menu_cb_ExtractSelectedSoundForOverlap (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM (U"Extract selected sound for overlap)", 0)
 		WORD (U"Name", U"slice")
 		POSITIVE (U"Overlap (s)", my default_extract_overlap ())
 	EDITOR_OK
 		SET_REAL (U"Overlap", my pref_extract_overlap ())
 	EDITOR_DO
 		Sound sound = my d_sound.data;
-		Melder_assert (sound);
+		Melder_assert (sound != NULL);
 		my pref_extract_overlap () = GET_REAL (U"Overlap");
 		autoSound extract = Sound_extractPartForOverlap (sound, my d_startSelection, my d_endSelection,
 			my pref_extract_overlap ());
-		Thing_setName (extract.get(), GET_STRING (U"Name"));
-		Editor_broadcastPublication (me, extract.move());
+		Thing_setName (extract.peek(), GET_STRING (U"Name"));
+		Editor_broadcastPublication (me, extract.transfer());
 	EDITOR_END
 }
 
-static void do_write (TimeSoundEditor me, MelderFile file, int format, int numberOfBitsPerSamplePoint) {
+static void do_write (TimeSoundEditor me, MelderFile file, int format, int numberOfBitsPersamplePoint) {
 	if (my d_startSelection >= my d_endSelection)
 		Melder_throw (U"No samples selected.");
 	if (my d_longSound.data) {
-		LongSound_writePartToAudioFile (my d_longSound.data, format, my d_startSelection, my d_endSelection, file, numberOfBitsPerSamplePoint);
+		LongSound_writePartToAudioFile (my d_longSound.data, format, my d_startSelection, my d_endSelection, file);
 	} else if (my d_sound.data) {
 		Sound sound = my d_sound.data;
 		double margin = 0.0;
@@ -208,71 +214,79 @@ static void do_write (TimeSoundEditor me, MelderFile file, int format, int numbe
 					save -> z [channel] [i - offset] = sound -> z [channel] [i];
 				}
 			}
-			Sound_writeToAudioFile (save.get(), file, format, numberOfBitsPerSamplePoint);
+			Sound_writeToAudioFile (save.peek(), file, format, numberOfBitsPersamplePoint);
 		}
 	}
 }
 
-static void menu_cb_WriteWav (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as WAV file", nullptr)
+static void menu_cb_WriteWav (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as WAV file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".wav");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_WAV, 16);
 	EDITOR_END
 }
 
-static void menu_cb_SaveAs24BitWav (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as 24-bit WAV file", nullptr)
-		Melder_assert (! my d_longSound.data && my d_sound.data);
+static void menu_cb_SaveAs24BitWav (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as 24-bit WAV file", 0)
+		Melder_assert (my d_longSound.data == NULL && my d_sound.data != NULL);
 		Melder_sprint (defaultName,300, my d_sound.data -> name, U".wav");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_WAV, 24);
 	EDITOR_END
 }
 
-static void menu_cb_SaveAs32BitWav (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as 32-bit WAV file", nullptr)
-		Melder_assert (! my d_longSound.data && my d_sound.data);
+static void menu_cb_SaveAs32BitWav (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as 32-bit WAV file", 0)
+		Melder_assert (my d_longSound.data == NULL && my d_sound.data != NULL);
 		Melder_sprint (defaultName,300, my d_sound.data -> name, U".wav");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_WAV, 32);
 	EDITOR_END
 }
 
-static void menu_cb_WriteAiff (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as AIFF file", nullptr)
+static void menu_cb_WriteAiff (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as AIFF file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".aiff");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_AIFF, 16);
 	EDITOR_END
 }
 
-static void menu_cb_WriteAifc (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as AIFC file", nullptr)
+static void menu_cb_WriteAifc (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as AIFC file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".aifc");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_AIFC, 16);
 	EDITOR_END
 }
 
-static void menu_cb_WriteNextSun (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as NeXT/Sun file", nullptr)
+static void menu_cb_WriteNextSun (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as NeXT/Sun file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".au");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_NEXT_SUN, 16);
 	EDITOR_END
 }
 
-static void menu_cb_WriteNist (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as NIST file", nullptr)
+static void menu_cb_WriteNist (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as NIST file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".nist");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_NIST, 16);
 	EDITOR_END
 }
 
-static void menu_cb_WriteFlac (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save selected sound as FLAC file", nullptr)
+static void menu_cb_WriteFlac (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM_WRITE (U"Save selected sound as FLAC file", 0)
 		Melder_sprint (defaultName,300, my d_longSound.data ? my d_longSound.data -> name : my d_sound.data -> name, U".flac");
 	EDITOR_DO_WRITE
 		do_write (me, file, Melder_FLAC, 16);
@@ -342,36 +356,39 @@ void structTimeSoundEditor :: v_createMenuItems_file_write (EditorMenu menu) {
 void structTimeSoundEditor :: v_createMenuItems_file (EditorMenu menu) {
 	TimeSoundEditor_Parent :: v_createMenuItems_file (menu);
 	v_createMenuItems_file_draw (menu);
-	EditorMenu_addCommand (menu, U"-- after file draw --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- after file draw --", 0, NULL);
 	v_createMenuItems_file_extract (menu);
-	EditorMenu_addCommand (menu, U"-- after file extract --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- after file extract --", 0, NULL);
 	v_createMenuItems_file_write (menu);
-	EditorMenu_addCommand (menu, U"-- after file write --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- after file write --", 0, NULL);
 }
 
 /********** QUERY MENU **********/
 
-static void menu_cb_SoundInfo (TimeSoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_SoundInfo (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
 	Thing_info (my d_sound.data);
 }
 
-static void menu_cb_LongSoundInfo (TimeSoundEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_LongSoundInfo (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
 	Thing_info (my d_longSound.data);
 }
 
 void structTimeSoundEditor :: v_createMenuItems_query_info (EditorMenu menu) {
 	TimeSoundEditor_Parent :: v_createMenuItems_query_info (menu);
-	if (d_sound.data && d_sound.data != data) {
+	if (d_sound.data != NULL && d_sound.data != data) {
 		EditorMenu_addCommand (menu, U"Sound info", 0, menu_cb_SoundInfo);
-	} else if (d_longSound.data && d_longSound.data != data) {
+	} else if (d_longSound.data != NULL && d_longSound.data != data) {
 		EditorMenu_addCommand (menu, U"LongSound info", 0, menu_cb_LongSoundInfo);
 	}
 }
 
 /********** VIEW MENU **********/
 
-static void menu_cb_soundScaling (TimeSoundEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Sound scaling", nullptr)
+static void menu_cb_soundScaling (EDITOR_ARGS) {
+	EDITOR_IAM (TimeSoundEditor);
+	EDITOR_FORM (U"Sound scaling", 0)
 		OPTIONMENU_ENUM (U"Scaling strategy", kTimeSoundEditor_scalingStrategy, my default_sound_scalingStrategy ())
 		LABEL (U"", U"For \"fixed height\":");
 		POSITIVE (U"Height", my default_sound_scaling_height ())
@@ -400,17 +417,12 @@ void structTimeSoundEditor :: v_createMenuItems_view (EditorMenu menu) {
 
 void structTimeSoundEditor :: v_createMenuItems_view_sound (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"Sound scaling...", 0, menu_cb_soundScaling);
-	EditorMenu_addCommand (menu, U"-- sound view --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- sound view --", 0, 0);
 }
 
 void structTimeSoundEditor :: v_updateMenuItems_file () {
-	Sampled sound;
-	if (d_sound.data) {
-		sound = d_sound.data;
-	} else {
-		sound = d_longSound.data;
-	}
-	if (! sound) return;
+	Sampled sound = d_sound.data != NULL ? (Sampled) d_sound.data : (Sampled) d_longSound.data;
+	if (sound == NULL) return;
 	long first, last, selectedSamples = Sampled_getWindowSamples (sound, d_startSelection, d_endSelection, & first, & last);
 	if (drawButton) {
 		GuiThing_setSensitive (drawButton, selectedSamples != 0);
@@ -434,32 +446,32 @@ void structTimeSoundEditor :: v_updateMenuItems_file () {
 void TimeSoundEditor_drawSound (TimeSoundEditor me, double globalMinimum, double globalMaximum) {
 	Sound sound = my d_sound.data;
 	LongSound longSound = my d_longSound.data;
-	Melder_assert (!! sound != !! longSound);
+	Melder_assert ((sound == NULL) != (longSound == NULL));
 	int nchan = sound ? sound -> ny : longSound -> numberOfChannels;
 	bool cursorVisible = my d_startSelection == my d_endSelection && my d_startSelection >= my d_startWindow && my d_startSelection <= my d_endWindow;
-	Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+	Graphics_setColour (my d_graphics, Graphics_BLACK);
 	bool fits;
 	try {
 		fits = sound ? true : LongSound_haveWindow (longSound, my d_startWindow, my d_endWindow);
 	} catch (MelderError) {
-		bool outOfMemory = !! str32str (Melder_getError (), U"memory");
+		int outOfMemory = str32str (Melder_getError (), U"memory") != NULL;
 		if (Melder_debug == 9) Melder_flushError (); else Melder_clearError ();
-		Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), 0.5, 0.5, outOfMemory ? U"(out of memory)" : U"(cannot read sound file)");
+		Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (my d_graphics, 0.5, 0.5, outOfMemory ? U"(out of memory)" : U"(cannot read sound file)");
 		return;
 	}
 	if (! fits) {
-		Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), 0.5, 0.5, U"(window too large; zoom in to see the data)");
+		Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (my d_graphics, 0.5, 0.5, U"(window too large; zoom in to see the data)");
 		return;
 	}
 	long first, last;
 	if (Sampled_getWindowSamples (sound ? (Sampled) sound : (Sampled) longSound, my d_startWindow, my d_endWindow, & first, & last) <= 1) {
-		Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setTextAlignment (my d_graphics.get(), Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (my d_graphics.get(), 0.5, 0.5, U"(zoom out to see the data)");
+		Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+		Graphics_setTextAlignment (my d_graphics, Graphics_CENTRE, Graphics_HALF);
+		Graphics_text (my d_graphics, 0.5, 0.5, U"(zoom out to see the data)");
 		return;
 	}
 	const int numberOfVisibleChannels = nchan > 8 ? 8 : nchan;
@@ -493,7 +505,7 @@ void TimeSoundEditor_drawSound (TimeSoundEditor me, double globalMinimum, double
 		 */
 		double ymin = (double) (numberOfVisibleChannels - ichan + my d_sound.channelOffset) / numberOfVisibleChannels;
 		double ymax = (double) (numberOfVisibleChannels + 1 - ichan + my d_sound.channelOffset) / numberOfVisibleChannels;
-		Graphics_Viewport vp = Graphics_insetViewport (my d_graphics.get(), 0.0, 1.0, ymin, ymax);
+		Graphics_Viewport vp = Graphics_insetViewport (my d_graphics, 0, 1, ymin, ymax);
 		bool horizontal = false;
 		double minimum = sound ? globalMinimum : -1.0, maximum = sound ? globalMaximum : 1.0;
 		if (my p_sound_scalingStrategy == kTimeSoundEditor_scalingStrategy_BY_WINDOW) {
@@ -532,42 +544,42 @@ void TimeSoundEditor_drawSound (TimeSoundEditor me, double globalMinimum, double
 			minimum = my p_sound_scaling_minimum;
 			maximum = my p_sound_scaling_maximum;
 		}
-		if (minimum == maximum) { horizontal = true; minimum -= 1.0; maximum += 1.0;}
-		Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, minimum, maximum);
+		if (minimum == maximum) { horizontal = true; minimum -= 1; maximum += 1;}
+		Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, minimum, maximum);
 		if (horizontal) {
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
+			Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
 			double mid = 0.5 * (minimum + maximum);
-			Graphics_text (my d_graphics.get(), my d_startWindow, mid, Melder_float (Melder_half (mid)));
+			Graphics_text (my d_graphics, my d_startWindow, mid, Melder_float (Melder_half (mid)));
 		} else {
-			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || Graphics_dyWCtoMM (my d_graphics.get(), cursorFunctionValue - minimum) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_BOTTOM);
-				Graphics_text (my d_graphics.get(), my d_startWindow, minimum, Melder_float (Melder_half (minimum)));
+			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || Graphics_dyWCtoMM (my d_graphics, cursorFunctionValue - minimum) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_BOTTOM);
+				Graphics_text (my d_graphics, my d_startWindow, minimum, Melder_float (Melder_half (minimum)));
 			}
-			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || Graphics_dyWCtoMM (my d_graphics.get(), maximum - cursorFunctionValue) > 5.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_TOP);
-				Graphics_text (my d_graphics.get(), my d_startWindow, maximum, Melder_float (Melder_half (maximum)));
+			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || Graphics_dyWCtoMM (my d_graphics, maximum - cursorFunctionValue) > 5.0) {
+				Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_TOP);
+				Graphics_text (my d_graphics, my d_startWindow, maximum, Melder_float (Melder_half (maximum)));
 			}
 		}
 		if (minimum < 0 && maximum > 0 && ! horizontal) {
-			Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, minimum, maximum);
-			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || fabs (Graphics_dyWCtoMM (my d_graphics.get(), cursorFunctionValue - 0.0)) > 3.0) {
-				Graphics_setTextAlignment (my d_graphics.get(), Graphics_RIGHT, Graphics_HALF);
-				Graphics_text (my d_graphics.get(), 0.0, 0.0, U"0");
+			Graphics_setWindow (my d_graphics, 0, 1, minimum, maximum);
+			if (! cursorVisible || ! NUMdefined (cursorFunctionValue) || fabs (Graphics_dyWCtoMM (my d_graphics, cursorFunctionValue - 0.0)) > 3.0) {
+				Graphics_setTextAlignment (my d_graphics, Graphics_RIGHT, Graphics_HALF);
+				Graphics_text (my d_graphics, 0, 0, U"0");
 			}
-			Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-			Graphics_setLineType (my d_graphics.get(), Graphics_DOTTED);
-			Graphics_line (my d_graphics.get(), 0.0, 0.0, 1.0, 0.0);
-			Graphics_setLineType (my d_graphics.get(), Graphics_DRAWN);
+			Graphics_setColour (my d_graphics, Graphics_CYAN);
+			Graphics_setLineType (my d_graphics, Graphics_DOTTED);
+			Graphics_line (my d_graphics, 0, 0, 1, 0);
+			Graphics_setLineType (my d_graphics, Graphics_DRAWN);
 		}
 		/*
 		 * Garnish the drawing area of each channel.
 		 */
-		Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (my d_graphics.get(), Graphics_CYAN);
-		Graphics_innerRectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
+		Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+		Graphics_setColour (my d_graphics, Graphics_CYAN);
+		Graphics_innerRectangle (my d_graphics, 0, 1, 0, 1);
+		Graphics_setColour (my d_graphics, Graphics_BLACK);
 		if (nchan > 1) {
-			Graphics_setTextAlignment (my d_graphics.get(), Graphics_LEFT, Graphics_HALF);
+			Graphics_setTextAlignment (my d_graphics, Graphics_LEFT, Graphics_HALF);
 			const char32 *channelName = my v_getChannelName (ichan);
 			static MelderString channelLabel;
 			MelderString_copy (& channelLabel, ( channelName ? U"ch" : U"Channel " ), ichan);
@@ -578,53 +590,53 @@ void TimeSoundEditor_drawSound (TimeSoundEditor me, double globalMinimum, double
 			} else if (ichan >= 8 && ichan - my d_sound.channelOffset == 8 && ichan < nchan) {
 				MelderString_append (& channelLabel, U" " UNITEXT_DOWNWARDS_ARROW);
 			}
-			Graphics_text (my d_graphics.get(), 1.0, 0.5, channelLabel.string);
+			Graphics_text (my d_graphics, 1, 0.5, channelLabel.string);
 		}
 		/*
 		 * Draw a very thin separator line underneath.
 		 */
 		if (ichan < nchan) {
-			/*Graphics_setColour (d_graphics.get(), Graphics_BLACK);*/
-			Graphics_line (my d_graphics.get(), 0.0, 0.0, 1.0, 0.0);
+			/*Graphics_setColour (d_graphics, Graphics_BLACK);*/
+			Graphics_line (my d_graphics, 0, 0, 1, 0);
 		}
 		/*
 		 * Draw the samples.
 		 */
 		/*if (ichan == 1) FunctionEditor_SoundAnalysis_drawPulses (this);*/
 		if (sound) {
-			Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, minimum, maximum);
+			Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, minimum, maximum);
 			if (cursorVisible && NUMdefined (cursorFunctionValue))
 				FunctionEditor_drawCursorFunctionValue (me, cursorFunctionValue, Melder_float (Melder_half (cursorFunctionValue)), U"");
-			Graphics_setColour (my d_graphics.get(), Graphics_BLACK);
-			Graphics_function (my d_graphics.get(), sound -> z [ichan], first, last,
+			Graphics_setColour (my d_graphics, Graphics_BLACK);
+			Graphics_function (my d_graphics, sound -> z [ichan], first, last,
 				Sampled_indexToX (sound, first), Sampled_indexToX (sound, last));
 		} else {
-			Graphics_setWindow (my d_graphics.get(), my d_startWindow, my d_endWindow, minimum * 32768, maximum * 32768);
-			Graphics_function16 (my d_graphics.get(),
+			Graphics_setWindow (my d_graphics, my d_startWindow, my d_endWindow, minimum * 32768, maximum * 32768);
+			Graphics_function16 (my d_graphics,
 				longSound -> buffer - longSound -> imin * nchan + (ichan - 1), nchan - 1, first, last,
 				Sampled_indexToX (longSound, first), Sampled_indexToX (longSound, last));
 		}
-		Graphics_resetViewport (my d_graphics.get(), vp);
+		Graphics_resetViewport (my d_graphics, vp);
 	}
-	Graphics_setWindow (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_rectangle (my d_graphics.get(), 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (my d_graphics, 0, 1, 0, 1);
+	Graphics_rectangle (my d_graphics, 0, 1, 0, 1);
 }
 
-bool structTimeSoundEditor :: v_click (double xbegin, double ybegin, bool shiftKeyPressed) {
+int structTimeSoundEditor :: v_click (double xbegin, double ybegin, bool shiftKeyPressed) {
 	Sound sound = d_sound.data;
 	LongSound longSound = d_longSound.data;
-	if (!! sound != !! longSound) {
+	if ((sound == NULL) != (longSound == NULL)) {
 		ybegin = (ybegin - v_getBottomOfSoundArea ()) / (1.0 - v_getBottomOfSoundArea ());
 		int nchan = sound ? sound -> ny : longSound -> numberOfChannels;
 		if (nchan > 8) {
 			trace (xbegin, U" ", ybegin, U" ", nchan, U" ", d_sound.channelOffset);
 			if (xbegin >= d_endWindow && ybegin > 0.875 && ybegin <= 1.000 && d_sound.channelOffset > 0) {
 				d_sound.channelOffset -= 8;
-				return FunctionEditor_UPDATE_NEEDED;
+				return 1;
 			}
 			if (xbegin >= d_endWindow && ybegin > 0.000 && ybegin <= 0.125 && d_sound.channelOffset < nchan - 8) {
 				d_sound.channelOffset += 8;
-				return FunctionEditor_UPDATE_NEEDED;
+				return 1;
 			}
 		}
 	}
@@ -633,10 +645,10 @@ bool structTimeSoundEditor :: v_click (double xbegin, double ybegin, bool shiftK
 
 void TimeSoundEditor_init (TimeSoundEditor me, const char32 *title, Function data, Sampled sound, bool ownSound) {
 	my d_ownSound = ownSound;
-	if (sound) {
+	if (sound != NULL) {
 		if (ownSound) {
 			Melder_assert (Thing_isa (sound, classSound));
-			my d_sound.data = Data_copy ((Sound) sound).releaseToAmbiguousOwner();   // deep copy; ownership transferred
+			my d_sound.data = Data_copy ((Sound) sound);   // deep copy; ownership transferred
 			Matrix_getWindowExtrema (my d_sound.data, 1, my d_sound.data -> nx, 1, my d_sound.data -> ny, & my d_sound.minimum, & my d_sound.maximum);
 		} else if (Thing_isa (sound, classSound)) {
 			my d_sound.data = (Sound) sound;   // reference copy; ownership not transferred
diff --git a/fon/TimeSoundEditor.h b/fon/TimeSoundEditor.h
index 7f8305c..03c30ed 100644
--- a/fon/TimeSoundEditor.h
+++ b/fon/TimeSoundEditor.h
@@ -38,7 +38,7 @@ Thing_define (TimeSoundEditor, FunctionEditor) {
 	GuiMenuItem drawButton, publishButton, publishPreserveButton, publishWindowButton, publishOverlapButton;
 	GuiMenuItem writeAiffButton, d_saveAs24BitWavButton, d_saveAs32BitWavButton, writeAifcButton, writeWavButton, writeNextSunButton, writeNistButton, writeFlacButton;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
@@ -54,12 +54,12 @@ Thing_define (TimeSoundEditor, FunctionEditor) {
 		override;
 	void v_createMenuItems_view (EditorMenu menu)
 		override;
-	bool v_click (double xbegin, double ybegin, bool shiftKeyPressed)
+	int v_click (double xbegin, double ybegin, bool shiftKeyPressed)
 		override;   // catch channel scrolling
 
 	virtual void v_createMenuItems_view_sound (EditorMenu menu);
 	virtual void v_updateMenuItems_file ();
-	virtual const char32 * v_getChannelName (long /* channelNumber */) { return nullptr; }
+	virtual const char32 * v_getChannelName (long channelNumber) { (void) channelNumber; return NULL; }
 
 	#include "TimeSoundEditor_prefs.h"
 };
diff --git a/fon/Transition.cpp b/fon/Transition.cpp
index b369f88..fb26214 100644
--- a/fon/Transition.cpp
+++ b/fon/Transition.cpp
@@ -1,6 +1,6 @@
 /* Transition.cpp
  *
- * Copyright (C) 1997-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,10 +38,10 @@
 #include "oo_DESCRIPTION.h"
 #include "Transition_def.h"
 
-Thing_implement (Transition, Daata, 0);
+Thing_implement (Transition, Data, 0);
 
 void structTransition :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of states: ", numberOfStates);
 }
 
@@ -52,7 +52,7 @@ void structTransition :: v_writeText (MelderFile file) {
 	MelderFile_write (file, U"\n");
 	for (long i = 1; i <= numberOfStates; i ++) {
 		MelderFile_write (file, U"\"");
-		if (stateLabels [i]) MelderFile_write (file, stateLabels [i]);
+		if (stateLabels [i] != NULL) MelderFile_write (file, stateLabels [i]);
 		MelderFile_write (file, U"\"\t");
 	}
 	for (long i = 1; i <= numberOfStates; i ++) {
@@ -71,11 +71,11 @@ void Transition_init (Transition me, long numberOfStates) {
 	my data = NUMmatrix <double> (1, my numberOfStates, 1, my numberOfStates);
 }
 
-autoTransition Transition_create (long numberOfStates) {
+Transition Transition_create (long numberOfStates) {
 	try {
 		autoTransition me = Thing_new (Transition);
-		Transition_init (me.get(), numberOfStates);
-		return me;
+		Transition_init (me.peek(), numberOfStates);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Transition not created.");
 	}
@@ -156,12 +156,14 @@ static void Transition_transpose (Transition me) {
 	}
 }
 
-void Transition_eigen (Transition me, autoMatrix *out_eigenvectors, autoMatrix *out_eigenvalues) {
+void Transition_eigen (Transition me, Matrix *out_eigenvectors, Matrix *out_eigenvalues) {
+	*out_eigenvectors = NULL;
+	*out_eigenvalues = NULL;
 	bool transposed = false;
 	try {
 		autoEigen eigen = Thing_new (Eigen);
 		Transition_transpose (me);
-		Eigen_initFromSymmetricMatrix (eigen.get(), my data, my numberOfStates);
+		Eigen_initFromSymmetricMatrix (eigen.peek(), my data, my numberOfStates);
 		Transition_transpose (me);
 		transposed = true;
 		autoMatrix eigenvectors = Matrix_createSimple (my numberOfStates, my numberOfStates);
@@ -171,8 +173,8 @@ void Transition_eigen (Transition me, autoMatrix *out_eigenvectors, autoMatrix *
 			for (long j = 1; j <= my numberOfStates; j ++)
 				eigenvectors -> z [i] [j] = eigen -> eigenvectors [j] [i];
 		}
-		*out_eigenvectors = eigenvectors.move();
-		*out_eigenvalues = eigenvalues.move();
+		*out_eigenvectors = eigenvectors.transfer();
+		*out_eigenvalues = eigenvalues.transfer();
 	} catch (MelderError) {
 		if (transposed)
 			Transition_transpose (me);
@@ -180,7 +182,7 @@ void Transition_eigen (Transition me, autoMatrix *out_eigenvectors, autoMatrix *
 	}
 }
 
-autoTransition Transition_power (Transition me, long power) {
+Transition Transition_power (Transition me, long power) {
 	try {
 		autoTransition thee = Data_copy (me);
 		autoTransition him = Data_copy (me);
@@ -195,25 +197,25 @@ autoTransition Transition_power (Transition me, long power) {
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": power not computed.");
 	}
 }
 
-autoMatrix Transition_to_Matrix (Transition me) {
+Matrix Transition_to_Matrix (Transition me) {
 	try {
 		autoMatrix thee = Matrix_createSimple (my numberOfStates, my numberOfStates);
 		for (long i = 1; i <= my numberOfStates; i ++)
 			for (long j = 1; j <= my numberOfStates; j ++)
 				thy z [i] [j] = my data [i] [j];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoTransition Matrix_to_Transition (Matrix me) {
+Transition Matrix_to_Transition (Matrix me) {
 	try {
 		if (my nx != my ny)
 			Melder_throw (U"Matrix should be square.");
@@ -221,7 +223,7 @@ autoTransition Matrix_to_Transition (Matrix me) {
 		for (long i = 1; i <= my nx; i ++)
 			for (long j = 1; j <= my nx; j ++)
 				thy data [i] [j] = my z [i] [j];
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Transition.");
 	}
diff --git a/fon/Transition.h b/fon/Transition.h
index aafecc3..0f6f7ea 100644
--- a/fon/Transition.h
+++ b/fon/Transition.h
@@ -2,7 +2,7 @@
 #define _Transition_h_
 /* Transition.h
  *
- * Copyright (C) 1992-2011,2012,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,22 +19,24 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/* Transition inherits from Data */
 #include "Matrix.h"
 #include "Graphics.h"
 
 #include "Transition_def.h"
+oo_CLASS_CREATE (Transition, Data);
 
 void Transition_init (Transition me, long numberOfStates);
-autoTransition Transition_create (long numberOfStates);
+Transition Transition_create (long numberOfStates);
 
 void Transition_formula (Transition me, const char32 *formula);
 void Transition_drawAsNumbers (Transition me, Graphics g, int iformat, int precision);
 
-void Transition_eigen (Transition me, autoMatrix *eigenvectors, autoMatrix *eigenvalues);
-autoTransition Transition_power (Transition me, long power);
+void Transition_eigen (Transition me, Matrix *eigenvectors, Matrix *eigenvalues);
+Transition Transition_power (Transition me, long power);
 
-autoMatrix Transition_to_Matrix (Transition me);
-autoTransition Matrix_to_Transition (Matrix me);
+Matrix Transition_to_Matrix (Transition me);
+Transition Matrix_to_Transition (Matrix me);
 
 /* End of file Transition.h */
 #endif
diff --git a/fon/Transition_def.h b/fon/Transition_def.h
index dae56aa..c2b4911 100644
--- a/fon/Transition_def.h
+++ b/fon/Transition_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Transition
-oo_DEFINE_CLASS (Transition, Daata)
+oo_DEFINE_CLASS (Transition, Data)
 
 	oo_LONG (numberOfStates)
 	oo_STRING_VECTOR (stateLabels, numberOfStates)
diff --git a/fon/Vector.cpp b/fon/Vector.cpp
index b2a032e..3b1689e 100644
--- a/fon/Vector.cpp
+++ b/fon/Vector.cpp
@@ -194,19 +194,19 @@ void Vector_getMinimumAndXAndChannel (Vector me, double xmin, double xmax, int i
 
 double Vector_getMinimum (Vector me, double xmin, double xmax, int interpolation) {
 	double minimum;
-	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, & minimum, nullptr, nullptr);
+	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, & minimum, NULL, NULL);
 	return minimum;
 }
 
 double Vector_getXOfMinimum (Vector me, double xmin, double xmax, int interpolation) {
 	double xOfMinimum;
-	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, nullptr, & xOfMinimum, nullptr);
+	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, NULL, & xOfMinimum, NULL);
 	return xOfMinimum;
 }
 
 long Vector_getChannelOfMinimum (Vector me, double xmin, double xmax, int interpolation) {
 	long channelOfMinimum;
-	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, nullptr, nullptr, & channelOfMinimum);
+	Vector_getMinimumAndXAndChannel (me, xmin, xmax, interpolation, NULL, NULL, & channelOfMinimum);
 	return channelOfMinimum;
 }
 
@@ -269,19 +269,19 @@ void Vector_getMaximumAndXAndChannel (Vector me, double xmin, double xmax, int i
 
 double Vector_getMaximum (Vector me, double xmin, double xmax, int interpolation) {
 	double maximum;
-	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, & maximum, nullptr, nullptr);
+	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, & maximum, NULL, NULL);
 	return maximum;
 }
 
 double Vector_getXOfMaximum (Vector me, double xmin, double xmax, int interpolation) {
 	double xOfMaximum;
-	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, nullptr, & xOfMaximum, nullptr);
+	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, NULL, & xOfMaximum, NULL);
 	return xOfMaximum;
 }
 
 long Vector_getChannelOfMaximum (Vector me, double xmin, double xmax, int interpolation) {
 	long channelOfMaximum;
-	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, nullptr, nullptr, & channelOfMaximum);
+	Vector_getMaximumAndXAndChannel (me, xmin, xmax, interpolation, NULL, NULL, & channelOfMaximum);
 	return channelOfMaximum;
 }
 
@@ -294,7 +294,7 @@ double Vector_getAbsoluteExtremum (Vector me, double xmin, double xmax, int inte
 /***** Get statistics. *****/
 
 double Vector_getMean (Vector me, double xmin, double xmax, long channel) {
-	return Sampled_getMean (me, xmin, xmax, channel, 0, true);
+	return Sampled_getMean (me, xmin, xmax, channel, 0, TRUE);
 }
 
 double Vector_getStandardDeviation (Vector me, double xmin, double xmax, long ilevel) {
diff --git a/fon/Vector.h b/fon/Vector.h
index 20933f1..0b6e8a6 100644
--- a/fon/Vector.h
+++ b/fon/Vector.h
@@ -82,7 +82,7 @@ void Vector_draw (Vector me, Graphics g, double *pxmin, double *pxmax, double *p
 	If *pymin equals *pymax, then autoscaling from minimum to maximum;
 	if minimum then equals maximum, defaultDy will be subtracted from *pymin and added to *pymax;
 	it must be a positive real number (e.g. 0.5 Pa for Sound, 1.0 dB for Ltas).
-	method can be "curve", "bars", "poles", or "speckles"; it must not be null;
+	method can be "curve", "bars", "poles", or "speckles"; it must not be NULL;
 	if anything else is specified, a curve is drawn.
 */
 
diff --git a/fon/VocalTract.cpp b/fon/VocalTract.cpp
index 3e796ac..0ade495 100644
--- a/fon/VocalTract.cpp
+++ b/fon/VocalTract.cpp
@@ -1,6 +1,6 @@
 /* VocalTract.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,140 +22,138 @@
 Thing_implement (VocalTract, Vector, 2);
 
 void structVocalTract :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Vocal tract length: ", Melder_single (xmax), U" metres");
 	MelderInfo_writeLine (U"Number of sections: ", nx);
 	MelderInfo_writeLine (U"Section length: ", Melder_single (dx), U" metres");
 }
 
-autoVocalTract VocalTract_create (long nx, double dx) {
+VocalTract VocalTract_create (long nx, double dx) {
 	try {
 		autoVocalTract me = Thing_new (VocalTract);
-		Matrix_init (me.get(), 0.0, nx * dx, nx, dx, 0.5 * dx, 1.0, 1.0, 1, 1.0, 1.0);
-		return me;
+		Matrix_init (me.peek(), 0, nx * dx, nx, dx, 0.5 * dx, 1, 1, 1, 1, 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"VocalTract not created.");
 	}
 }
 
-namespace theVocalTract {
-	constexpr double minimumWidth { 0.0001 };
-	struct { const char32 *phone; int numberOfSections; double area [40]; }
-		data [] = {
-	{ U"a", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
-		2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
-		8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9 } },
-	{ U"e", 33, { 2.3, 1.95, 1.73, 1.7, 5.3, 6.3, 6.8, 7.55, 8.2, 9.1, 9.7,
-		10.1, 10.2, 10, 8, 7.2, 7.5, 6.4, 5.4, 4.9, 4.35, 3.9, 3.5, 3.1,
-		2.7, 2.4, 2.2, 2.5, 3.4, 5, 6.7, 8.5, 10 } },
-	{ U"i", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5, 8 } },
-	{ U"o", 37, { 2.6, 2.05, 1.56, 1.3, 5.2, 4.54, 3.49, 2.6, 2.1, 1.8, 1.6, 1.4,
-		1.29, 1.19, 1.22, 2.6, 2.9, 2.2, 2.6, 3.6, 4.55, 5.55, 6.4, 7.15,
-		8, 8.9, 9.6, 10.5, 11.8, 14.6, 14.5, 12.9, 10.4, 5, 3.4, 3.4, 4 } },
-	{ U"u", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
-		1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
-		10.9, 12.9, 13.15, 13, 12.5, 9.9, 3.9, 1.8, 0.32, 0.4, 0.6 } },
-	{ U"y1", 37, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 1.8, 0.32,
-		0.4, 0.6 } },
-	{ U"y2", 38, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 4, 1.8, 0.32,
-		0.4, 0.6 } },
-	{ U"y3", 39, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 4, 4, 1.8, 0.32,
-		0.4, 0.6 } },
-	{ U"jery", 38, { 3.2, 3.2, 3.2, 3.2, 10.5, 10.5, 13, 13, 10.5, 10.5, 10.5, 10.5, 10.5,
-		8, 6.5, 6.5, 5, 4, 2, 2.6, 1.6, 1.3, 1, 1, 1.3, 1.6, 2, 2, 2.6, 3.2, 5,
-		8, 8, 8, 6.5,
-		2, 6.5, 6.5 } },
-	{ U"p", 39, { 3.5, 3.2, 2.9, 2.6, 6.9, 6.65, 5.8, 4.9, 4, 3.14, 2.5, 1.84,
-		1.25, 0.83, 0.6, 0.53,
-		0.5, 0.6, 0.85, 1, 1.6, 2.05, 2.55, 3.08, 3.67, 4.15, 4.8, 5.5, 6.3,
-		7.4, 12, 12.98, 12.9, 11.4, 6.6, 2, 0.45, 0.1, minimumWidth } },
-	{ U"t", 36, { 2.8, 2.7, 2.4, 2.6, 6.45, 6.01, 5.31, 4.85, 4.55, 4.32, 4.18, 4.1,
-		4.04, 3.97, 3.85, 3.7, 3.4, 3.05, 2.91, 3.1, 3.55, 3.9, 4.1, 4, 3.8,
-		3.3, 2.55, 1.8, 1, 0.45, 0.1, minimumWidth, 0.8, 2.5, 6, 9 } },
-	{ U"k", 38, { 2.4, 2.7, 3, 3.3, 7, 9.38, 9.25, 8.62, 7.8, 6.7, 5.4, 4, 2.8, 1.9, 1.35,
-		0.9, 0.55, 0.3, 0.19, 0.07, minimumWidth, 0.12, 0.17, 0.3, 0.5, 0.9,
-		1.4, 2.2, 3.3, 5, 9, 11.25, 10.9, 7.3, 4.3, 3.5, 3.7, 6 } },
-	{ U"x", 40, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-		4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 } },
-	{ U"pa", 39, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
-		2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
-		8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9, 6.6, 2, 0.45, 0.1,
-		minimumWidth } },
-	{ U"ta", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
-		2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
-		8.5, 6, 2, 0.45, minimumWidth, 0.8, 2.5, 5.5, 7.9 } },
-	{ U"ka", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
-		2.1, 2.9, 3.09, 2.1, 0.3, minimumWidth,
-		0.3, 2, 5, 7.6, 8.15, 8.5, 8.6,
-		8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9 } },
-	{ U"pi", 39, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5,
-		6.6, 2, 0.45, 0.1, minimumWidth } },
-	{ U"ti", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.5, 0.5, 0.3, 0.1, minimumWidth,
-		0.8, 2.5, 8 } },
-	{ U"ki", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
-		10.9, 11.15, 11.3, 11.2, 10.8, 8, 6, 2, 0.3, minimumWidth, 0.3, 1.3,
-		0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5, 8 } },
-	{ U"pu", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
-		1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
-		10.9, 12.9, 13.15, 13, 12.5, 9.9, 6.6, 2, 0.45, 0.1, minimumWidth } },
-	{ U"tu", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
-		1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
-		10.9, 9, 3, 0.4, minimumWidth, 0.8, 2.5, 1.8, 0.32, 0.4, 0.6 } },
-	{ U"ku", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
-		1.05, 1.1, 1.4, 1.2, 0.3, minimumWidth, 0.3, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
-		10.9, 12.9, 13.15, 13, 12.5, 9.9, 3.9, 1.8, 0.32, 0.4, 0.6 } },
-	{ nullptr, 0, { 0 } } };
-}
+#define MinimumWidth 0.0001
+static struct { const char32 *phone; int numberOfSections; double area [40]; }
+	data [] = {
+{ U"a", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
+	2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
+	8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9 } },
+{ U"e", 33, { 2.3, 1.95, 1.73, 1.7, 5.3, 6.3, 6.8, 7.55, 8.2, 9.1, 9.7,
+	10.1, 10.2, 10, 8, 7.2, 7.5, 6.4, 5.4, 4.9, 4.35, 3.9, 3.5, 3.1,
+	2.7, 2.4, 2.2, 2.5, 3.4, 5, 6.7, 8.5, 10 } },
+{ U"i", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5, 8 } },
+{ U"o", 37, { 2.6, 2.05, 1.56, 1.3, 5.2, 4.54, 3.49, 2.6, 2.1, 1.8, 1.6, 1.4,
+	1.29, 1.19, 1.22, 2.6, 2.9, 2.2, 2.6, 3.6, 4.55, 5.55, 6.4, 7.15,
+	8, 8.9, 9.6, 10.5, 11.8, 14.6, 14.5, 12.9, 10.4, 5, 3.4, 3.4, 4 } },
+{ U"u", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
+	1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
+	10.9, 12.9, 13.15, 13, 12.5, 9.9, 3.9, 1.8, 0.32, 0.4, 0.6 } },
+{ U"y1", 37, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 1.8, 0.32,
+	0.4, 0.6 } },
+{ U"y2", 38, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 4, 1.8, 0.32,
+	0.4, 0.6 } },
+{ U"y3", 39, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 4, 4, 1.8, 0.32,
+	0.4, 0.6 } },
+{ U"jery", 38, { 3.2, 3.2, 3.2, 3.2, 10.5, 10.5, 13, 13, 10.5, 10.5, 10.5, 10.5, 10.5,
+	8, 6.5, 6.5, 5, 4, 2, 2.6, 1.6, 1.3, 1, 1, 1.3, 1.6, 2, 2, 2.6, 3.2, 5,
+	8, 8, 8, 6.5,
+	2, 6.5, 6.5 } },
+{ U"p", 39, { 3.5, 3.2, 2.9, 2.6, 6.9, 6.65, 5.8, 4.9, 4, 3.14, 2.5, 1.84,
+	1.25, 0.83, 0.6, 0.53,
+	0.5, 0.6, 0.85, 1, 1.6, 2.05, 2.55, 3.08, 3.67, 4.15, 4.8, 5.5, 6.3,
+	7.4, 12, 12.98, 12.9, 11.4, 6.6, 2, 0.45, 0.1, MinimumWidth } },
+{ U"t", 36, { 2.8, 2.7, 2.4, 2.6, 6.45, 6.01, 5.31, 4.85, 4.55, 4.32, 4.18, 4.1,
+	4.04, 3.97, 3.85, 3.7, 3.4, 3.05, 2.91, 3.1, 3.55, 3.9, 4.1, 4, 3.8,
+	3.3, 2.55, 1.8, 1, 0.45, 0.1, MinimumWidth, 0.8, 2.5, 6, 9 } },
+{ U"k", 38, { 2.4, 2.7, 3, 3.3, 7, 9.38, 9.25, 8.62, 7.8, 6.7, 5.4, 4, 2.8, 1.9, 1.35,
+	0.9, 0.55, 0.3, 0.19, 0.07, MinimumWidth, 0.12, 0.17, 0.3, 0.5, 0.9,
+	1.4, 2.2, 3.3, 5, 9, 11.25, 10.9, 7.3, 4.3, 3.5, 3.7, 6 } },
+{ U"x", 40, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+	4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 } },
+{ U"pa", 39, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
+	2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
+	8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9, 6.6, 2, 0.45, 0.1,
+	MinimumWidth } },
+{ U"ta", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
+	2.1, 2.9, 3.09, 2.1, 2.5, 4, 5.3, 6.16, 7, 7.6, 8.15, 8.5, 8.6,
+	8.5, 6, 2, 0.45, MinimumWidth, 0.8, 2.5, 5.5, 7.9 } },
+{ U"ka", 34, { 1.7, 1.2, 1.6, 3.39, 2.1, 1.4, 1, 0.8, 0.8, 0.8, 1, 1.4,
+	2.1, 2.9, 3.09, 2.1, 0.3, MinimumWidth,
+	0.3, 2, 5, 7.6, 8.15, 8.5, 8.6,
+	8.4, 8, 7.5, 6.9, 6, 5.1, 5, 5.5, 7.9 } },
+{ U"pi", 39, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5,
+	6.6, 2, 0.45, 0.1, MinimumWidth } },
+{ U"ti", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 7.8, 7, 4.5, 2.8, 1.9, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.5, 0.5, 0.3, 0.1, MinimumWidth,
+	0.8, 2.5, 8 } },
+{ U"ki", 35, { 3, 2.9, 2.75, 2.58, 2.7, 6.35, 7.8, 8.9, 9.6, 10.15, 10.55,
+	10.9, 11.15, 11.3, 11.2, 10.8, 8, 6, 2, 0.3, MinimumWidth, 0.3, 1.3,
+	0.9, 0.65, 0.55, 0.5, 0.55, 0.7, 0.95, 1.3, 2, 3, 5, 8 } },
+{ U"pu", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
+	1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
+	10.9, 12.9, 13.15, 13, 12.5, 9.9, 6.6, 2, 0.45, 0.1, MinimumWidth } },
+{ U"tu", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
+	1.05, 1.1, 1.4, 2.2, 2, 1.3, 2, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
+	10.9, 9, 3, 0.4, MinimumWidth, 0.8, 2.5, 1.8, 0.32, 0.4, 0.6 } },
+{ U"ku", 40, { 2.5, 2.5, 2.5, 2.4, 5, 8.1, 8.9, 8.9, 8.4, 7.5, 5.8, 3.9, 2.3, 1.6, 1.2,
+	1.05, 1.1, 1.4, 1.2, 0.3, MinimumWidth, 0.3, 2.2, 2.3, 2.8, 3.7, 5, 6.2, 7.9,
+	10.9, 12.9, 13.15, 13, 12.5, 9.9, 3.9, 1.8, 0.32, 0.4, 0.6 } },
+{ NULL, 0, { 0 } } };
 
-autoVocalTract VocalTract_createFromPhone (const char32 *phone) {
+VocalTract VocalTract_createFromPhone (const char32 *phone) {
 	try {
 		int i = 0;
 		for (;; i ++) {
-			if (! theVocalTract::data [i]. phone)
+			if (data [i]. phone == NULL)
 				Melder_throw (U"Unknown phone ", phone);
-			if (Melder_equ (theVocalTract::data [i]. phone, phone))
+			if (Melder_equ (data [i]. phone, phone))
 				break;
 		}
-		autoVocalTract me = VocalTract_create (theVocalTract::data [i]. numberOfSections, 0.005);
+		autoVocalTract me = VocalTract_create (data [i]. numberOfSections, 0.005);
 		for (int isection = 1; isection <= my nx; isection ++)
-			my z [1] [isection] = theVocalTract::data [i]. area [isection - 1] * 0.0001;
-		return me;
+			my z [1] [isection] = data [i]. area [isection - 1] * 0.0001;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"VocalTract not created from phone.");
 	}
 }
 
 void VocalTract_draw (VocalTract me, Graphics g) {
-	Matrix_drawRows (me, g, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+	Matrix_drawRows (me, g, 0, 0, 0, 0, 0, 0);
 }
 
-autoMatrix VocalTract_to_Matrix (VocalTract me) {
+Matrix VocalTract_to_Matrix (VocalTract me) {
 	try {
 		autoMatrix thee = Matrix_create (my xmin, my xmax, my nx, my dx, my x1, my ymin, my ymax, my ny, my dy, my y1);
 		NUMvector_copyElements (my z [1], thy z [1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Matrix.");
 	}
 }
 
-autoVocalTract Matrix_to_VocalTract (Matrix me) {
+VocalTract Matrix_to_VocalTract (Matrix me) {
 	try {
 		autoVocalTract thee = VocalTract_create (my nx, my dx);
 		NUMvector_copyElements (my z [1], thy z [1], 1, my nx);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to VocalTract.");
 	}
diff --git a/fon/VocalTract.h b/fon/VocalTract.h
index dab4122..0b413b9 100644
--- a/fon/VocalTract.h
+++ b/fon/VocalTract.h
@@ -40,10 +40,10 @@ Thing_define (VocalTract, Vector) {
 		z [1] [1..nx]		// The area, in square metres.
 */
 
-autoVocalTract VocalTract_create (long nx, double dx);
+VocalTract VocalTract_create (long nx, double dx);
 /*
 	Function:
-		create a VocalTract.
+		create a VocalTract, or NULL if out of memory.
 	Preconditions:
 		nx >= 1;
 		dx > 0.0;
@@ -56,21 +56,23 @@ autoVocalTract VocalTract_create (long nx, double dx);
 		my z [1] [1..nx] == 1e-4; // straight tube, area 1 cm2.
  */
 
-autoVocalTract VocalTract_createFromPhone (const char32 *phone);
+VocalTract VocalTract_createFromPhone (const char32 *phone);
 /* 'phone' is one of the following: a e i o u y1 y2 y3 jery p t k x pa ta ka pi ti ki pu tu ku */
 
 void VocalTract_draw (VocalTract me, Graphics g);   /* Draw a VocalTract into a Graphics. */
 
-autoMatrix VocalTract_to_Matrix (VocalTract me);
+Matrix VocalTract_to_Matrix (VocalTract me);
 /*
 	Create a Matrix from a VocalTract,
 	with deep copy of all of its Matrix attributes, except class information and methods.
+	Return NULL if out of memory.  
 */
 
-autoVocalTract Matrix_to_VocalTract (Matrix me);
+VocalTract Matrix_to_VocalTract (Matrix me);
 /*
 	Function:
 		create a VocalTract from a Matrix.
+		Return NULL if out of memory.
 	Postconditions:
 		thy xmin == my xmin;
 		thy xmax == my xmax;
diff --git a/fon/VocalTract_to_Spectrum.cpp b/fon/VocalTract_to_Spectrum.cpp
index 3432d3f..101ed03 100644
--- a/fon/VocalTract_to_Spectrum.cpp
+++ b/fon/VocalTract_to_Spectrum.cpp
@@ -115,7 +115,7 @@ static void TUBE_transfer (double area [], int numberOfSections, double sectionL
 	}
 }
 
-autoSpectrum VocalTract_to_Spectrum
+Spectrum VocalTract_to_Spectrum
 	(VocalTract me, long numberOfFrequencies, double maximumFrequency,
 	 double glottalDamping, int hasRadiationDamping, int hasInternalDamping)
 {
@@ -129,7 +129,7 @@ autoSpectrum VocalTract_to_Spectrum
 			thy z [1] [ifreq] *= 0.02;
 			thy z [2] [ifreq] *= 0.02;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Spectrum.");
 	}
diff --git a/fon/VocalTract_to_Spectrum.h b/fon/VocalTract_to_Spectrum.h
index 9aaac74..c6721b4 100644
--- a/fon/VocalTract_to_Spectrum.h
+++ b/fon/VocalTract_to_Spectrum.h
@@ -1,6 +1,6 @@
 /* VocalTract_to_Spectrum.h
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
 #include "VocalTract.h"
 #include "Spectrum.h"
 
-autoSpectrum VocalTract_to_Spectrum
+Spectrum VocalTract_to_Spectrum
     (VocalTract tube, long numberOfFrequencies, double maximumFrequency,
      double glottalDamping, int hasRadiationDamping, int hasInternalDamping);
 
diff --git a/fon/VoiceAnalysis.cpp b/fon/VoiceAnalysis.cpp
index 0ef7bd6..baec2b6 100644
--- a/fon/VoiceAnalysis.cpp
+++ b/fon/VoiceAnalysis.cpp
@@ -1,6 +1,6 @@
 /* VoiceAnalysis.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -131,7 +131,7 @@ double PointProcess_Sound_getShimmer_local (PointProcess me, Sound thee, double
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		return AmplitudeTier_getShimmer_local (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		return AmplitudeTier_getShimmer_local (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -148,7 +148,7 @@ double PointProcess_Sound_getShimmer_local_dB (PointProcess me, Sound thee, doub
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		return AmplitudeTier_getShimmer_local_dB (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		return AmplitudeTier_getShimmer_local_dB (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -165,7 +165,7 @@ double PointProcess_Sound_getShimmer_apq3 (PointProcess me, Sound thee, double t
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		return AmplitudeTier_getShimmer_apq3 (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		return AmplitudeTier_getShimmer_apq3 (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -182,7 +182,7 @@ double PointProcess_Sound_getShimmer_apq5 (PointProcess me, Sound thee, double t
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		return AmplitudeTier_getShimmer_apq5 (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		return AmplitudeTier_getShimmer_apq5 (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -199,7 +199,7 @@ double PointProcess_Sound_getShimmer_apq11 (PointProcess me, Sound thee, double
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		return AmplitudeTier_getShimmer_apq11 (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		return AmplitudeTier_getShimmer_apq11 (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -216,7 +216,7 @@ double PointProcess_Sound_getShimmer_dda (PointProcess me, Sound thee, double tm
 	try {
 		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   /* Autowindowing. */
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		double apq3 = AmplitudeTier_getShimmer_apq3 (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		double apq3 = AmplitudeTier_getShimmer_apq3 (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 		return NUMdefined (apq3) ? 3.0 * apq3 : NUMundefined;
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
@@ -233,17 +233,14 @@ void PointProcess_Sound_getShimmer_multi (PointProcess me, Sound thee, double tm
 	double *local, double *local_dB, double *apq3, double *apq5, double *apq11, double *dda)
 {
 	try {
-		if (tmax <= tmin) {
-			tmin = my xmin;
-			tmax = my xmax;   // autowindowing
-		}
+		if (tmax <= tmin) tmin = my xmin, tmax = my xmax;   // autowindowing
 		autoAmplitudeTier peaks = PointProcess_Sound_to_AmplitudeTier_period (me, thee, tmin, tmax, pmin, pmax, maximumPeriodFactor);
-		if (local)    *local    =       AmplitudeTier_getShimmer_local    (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
-		if (local_dB) *local_dB =       AmplitudeTier_getShimmer_local_dB (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
-		if (apq3)     *apq3     =       AmplitudeTier_getShimmer_apq3     (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
-		if (apq5)     *apq5     =       AmplitudeTier_getShimmer_apq5     (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
-		if (apq11)    *apq11    =       AmplitudeTier_getShimmer_apq11    (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
-		if (dda)      *dda      = 3.0 * AmplitudeTier_getShimmer_apq3     (peaks.get(), pmin, pmax, maximumAmplitudeFactor);
+		if (local)    *local    =       AmplitudeTier_getShimmer_local    (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
+		if (local_dB) *local_dB =       AmplitudeTier_getShimmer_local_dB (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
+		if (apq3)     *apq3     =       AmplitudeTier_getShimmer_apq3     (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
+		if (apq5)     *apq5     =       AmplitudeTier_getShimmer_apq5     (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
+		if (apq11)    *apq11    =       AmplitudeTier_getShimmer_apq11    (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
+		if (dda)      *dda      = 3.0 * AmplitudeTier_getShimmer_apq3     (peaks.peek(), pmin, pmax, maximumAmplitudeFactor);
 	} catch (MelderError) {
 		if (Melder_hasError (U"Too few pulses between ")) {
 			Melder_clearError ();
@@ -283,7 +280,7 @@ void Sound_Pitch_PointProcess_voiceReport (Sound sound, Pitch pitch, PointProces
 		 */
 		double pmin = 0.8 / ceiling, pmax = 1.25 / floor;
 		MelderInfo_writeLine (U"Pulses:");
-		MelderInfo_writeLine (U"   Number of pulses: ", PointProcess_getWindowPoints (pulses, tmin, tmax, nullptr, nullptr));
+		MelderInfo_writeLine (U"   Number of pulses: ", PointProcess_getWindowPoints (pulses, tmin, tmax, NULL, NULL));
 		MelderInfo_writeLine (U"   Number of periods: ", PointProcess_getNumberOfPeriods (pulses, tmin, tmax, pmin, pmax, maximumPeriodFactor));
 		MelderInfo_writeLine (U"   Mean period: ", Melder_fixedExponent (PointProcess_getMeanPeriod (pulses, tmin, tmax, pmin, pmax, maximumPeriodFactor), -3, 6), U" seconds");
 		MelderInfo_writeLine (U"   Standard deviation of period: ", Melder_fixedExponent (PointProcess_getStdevPeriod (pulses, tmin, tmax, pmin, pmax, maximumPeriodFactor), -3, 6), U" seconds");
diff --git a/fon/WordList.cpp b/fon/WordList.cpp
index b8b1d5a..f69cd95 100644
--- a/fon/WordList.cpp
+++ b/fon/WordList.cpp
@@ -37,7 +37,7 @@
 
 /* BUG: not Unicode-savvy */
 
-Thing_implement (WordList, Daata, 0);
+Thing_implement (WordList, Data, 0);
 
 static long WordList_count (WordList me) {
 	long n = 0;
@@ -48,7 +48,7 @@ static long WordList_count (WordList me) {
 }
 
 void structWordList :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	long n = WordList_count (this);
 	if (! our length) our length = str32len (our string);
 	MelderInfo_writeLine (U"Number of words: ", n);
@@ -133,7 +133,7 @@ void structWordList :: v_writeBinary (FILE *f) {
 	}
 }
 
-autoWordList Strings_to_WordList (Strings me) {
+WordList Strings_to_WordList (Strings me) {
 	try {
 		long totalLength = 0;
 		/*
@@ -165,13 +165,13 @@ autoWordList Strings_to_WordList (Strings me) {
 		}
 		*q = U'\0';
 		Melder_assert (q - thy string == thy length);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to WordList.");
 	}
 }
 
-autoStrings WordList_to_Strings (WordList me) {
+Strings WordList_to_Strings (WordList me) {
 	try {
 		unsigned char *word = (unsigned char *) my string;   // BUG: explain this
 		autoStrings thee = Thing_new (Strings);
@@ -188,7 +188,7 @@ autoStrings WordList_to_Strings (WordList me) {
 			thy strings [i] [length] = U'\0';
 			word += length + 1;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Strings.");
 	}
@@ -233,19 +233,21 @@ static int compare (const char32 *word, const char32 *p) {
 static char32 buffer [3333+1];
 
 bool WordList_hasWord (WordList me, const char32 *word) {
+	long p, d;
+	int cf;
 	if (str32len (word) > 3333) return false;
 	Longchar_genericize32 (word, buffer);
 	if (! my length) my length = str32len (my string);
-	long p = my length / 2, d = p / 2;
+	p = my length / 2, d = p / 2;
 	while (d > 20) {
 		p = gotoStart (me, p);
-		int cf = compare (buffer, my string + p);
+		cf = compare (buffer, my string + p);
 		if (cf == 0) return true;
 		if (cf < 0) p -= d; else p += d;
 		d /= 2;
 	}
 	p = gotoStart (me, p);
-	int cf = compare (buffer, my string + p);
+	cf = compare (buffer, my string + p);
 	if (cf == 0) return true;
 	if (cf > 0) {
 		for (;;) {
diff --git a/fon/WordList.h b/fon/WordList.h
index 4c68004..40ceabe 100644
--- a/fon/WordList.h
+++ b/fon/WordList.h
@@ -22,9 +22,10 @@
 #include "Strings_.h"
 
 #include "WordList_def.h"
+oo_CLASS_CREATE (WordList, Data);
 
-autoWordList Strings_to_WordList (Strings me);
-autoStrings WordList_to_Strings (WordList me);
+WordList Strings_to_WordList (Strings me);
+Strings WordList_to_Strings (WordList me);
 
 bool WordList_hasWord (WordList me, const char32 *word);
 
diff --git a/fon/WordList_def.h b/fon/WordList_def.h
index db3ed8b..6410d8e 100644
--- a/fon/WordList_def.h
+++ b/fon/WordList_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT WordList
-oo_DEFINE_CLASS (WordList, Daata)
+oo_DEFINE_CLASS (WordList, Data)
 
 	#if !oo_DESCRIBING
 		oo_LSTRING (string)
diff --git a/fon/manual_Fon.cpp b/fon/manual_Fon.cpp
index 859650e..41c243b 100644
--- a/fon/manual_Fon.cpp
+++ b/fon/manual_Fon.cpp
@@ -20,18 +20,18 @@
 #include "ManPagesM.h"
 
 static void draw_CreateDurationTier (Graphics g) {
-	static double x [] = { 0.0, 0.3, 0.6, 0.7, 0.9 }, y [] = { 1.0, 1.0, 2.3, 1.0, 1.0 };
-	Graphics_setWindow (g, 0.0, 0.9, 0.0, 2.5);
+	static double x [] = { 0, 0.3, 0.6, 0.7, 0.9 }, y [] = { 1, 1, 2.3, 1, 1 };
+	Graphics_setWindow (g, 0, 0.9, 0, 2.5);
 	Graphics_drawInnerBox (g);
-	Graphics_marksLeftEvery (g, 1.0, 1.0, true, true, false);
-	Graphics_marksBottomEvery (g, 1.0, 0.1, true, true, false);
+	Graphics_marksLeftEvery (g, 1, 1, TRUE, TRUE, FALSE);
+	Graphics_marksBottomEvery (g, 1, 0.1, TRUE, TRUE, FALSE);
 	Graphics_setInner (g);
 	Graphics_setColour (g, Graphics_RED);
 	Graphics_polyline (g, 5, x, y);
 	Graphics_setColour (g, Graphics_BLACK);
 	Graphics_unsetInner (g);
-	Graphics_textBottom (g, true, U"Time (s)");
-	Graphics_textLeft (g, true, U"Relative duration");
+	Graphics_textBottom (g, TRUE, U"Time (s)");
+	Graphics_textLeft (g, TRUE, U"Relative duration");
 }
 
 void manual_Sampling_init (ManPages me);
@@ -438,7 +438,7 @@ Uses auditory filter (width apx. 1 Bark) for masking.
 
 Excitation Excitation_create (double df, long nf);
 	Function:
-		return a new instance of Excitation.
+		return a new instance of Excitation, or NULL if out of memory.
 	Preconditions:
 		df > 0.0;
 		nf >= 1;
@@ -457,9 +457,11 @@ Matrix Excitation_to_Matrix (Excitation me);
 	Function:
 		Create a Matrix from an Excitation,
 		with deep copy of all of its Matrix attributes, except class information and methods.
+	Return NULL if out of memory.  
 Excitation Matrix_to_Excitation (Matrix me);
 	Function:
 		create an Excitation from a Matrix.
+		Return NULL if out of memory.
 	Postconditions:
 		thy xmin == 0.0;
 		thy xmax == my nx / (1 / my dx);
diff --git a/fon/manual_Picture.cpp b/fon/manual_Picture.cpp
index 050effb..d34ef17 100644
--- a/fon/manual_Picture.cpp
+++ b/fon/manual_Picture.cpp
@@ -94,8 +94,8 @@ static void draw_IPA_consonant_chart (Graphics graphics) {
 { 17, 14, U"\\h-" }, { 17, 13, U"\\9e" },
 { 18, 17, U"\\?-" }, { 18, 14, U"\\hc" }, { 18, 13, U"\\9-" },
 { 19, 17, U"\\?g" }, { 19, 14, U"h" }, { 19, 13, U"\\h^" },
-		{ 0, 0, nullptr } };
-		for (int i = 0; symbols [i]. string != nullptr; i ++)
+		{ 0, 0, NULL } };
+		for (int i = 0; symbols [i]. string != NULL; i ++)
 			drawOneIpaSymbol (graphics, symbols [i]. x, symbols [i]. y, symbols [i]. string);
 	}
 }
@@ -125,8 +125,8 @@ static void draw_IPA_vowel_chart (Graphics graphics) {
 { 4, 2, U"\\ef" }, { 5, 2, U"\\oe" }, { 6.5, 2, U"\\er" }, { 7.5, 2, U"\\kb" }, { 9, 2, U"\\vt" }, { 10, 2, U"\\ct" },
 { 4, 1, U"\\ae" },
 { 4, 0, U"a" }, { 5, 0, U"\\Oe" }, { 9, 0, U"\\as" }, { 10, 0, U"\\ab" },
-		{ 0, 0, nullptr } };
-		for (int i = 0; symbols [i]. string != nullptr; i ++)
+		{ 0, 0, NULL } };
+		for (int i = 0; symbols [i]. string != NULL; i ++)
 			drawOneIpaSymbol (graphics, symbols [i]. x, symbols [i]. y, symbols [i]. string);
 	}
 }
diff --git a/fon/manual_Script.cpp b/fon/manual_Script.cpp
index ed33de6..1c655a4 100644
--- a/fon/manual_Script.cpp
+++ b/fon/manual_Script.cpp
@@ -228,7 +228,7 @@ LIST_ITEM (U"4. Those action commands that match the currently selected objects
 NORMAL (U"To execute any of these blue commands, just click on it.")
 MAN_END
 
-MAN_BEGIN (U"buttons file", U"ppgb", 20151020)
+MAN_BEGIN (U"buttons file", U"ppgb", 20071204)
 NORMAL (U"The file into which changes in the availability and visibility of commands in the fixed "
 	"and dynamic menus are recorded.")
 NORMAL (U"The buttons file is written to disk when you quit Praat, "
@@ -243,12 +243,12 @@ NORMAL (U"To hide a built-in command from a fixed or dynamic menu, or to make a
 	"you typically use the @ButtonEditor.")
 ENTRY (U"Where is the buttons file?")
 NORMAL (U"The buttons file is in your Praat @@preferences directory at .")
-NORMAL (U"On Windows the file is called ##Buttons5.ini#, "
-	"for instance ##C:\\bsUsers\\bsMiep\\bsPraat\\bsButtons5.ini#.")
-NORMAL (U"On MacOS it is called #Buttons5, "
+NORMAL (U"On Unix the file is called #buttons5, "
+	"for instance ##/people/miep/.praat-dir/buttons5#.")
+NORMAL (U"On Macintosh it is called #Buttons5, "
 	"for instance ##/Users/miep/Library/Preferences/Praat Prefs/Buttons5#.")
-NORMAL (U"On Linux it is called #buttons5, "
-	"for instance ##/home/miep/.praat-dir/buttons5#.")
+NORMAL (U"On Windows it is called ##Buttons5.ini#, "
+	"for instance ##C:\\bsDocuments and Settings\\bsMiep\\bsPraat\\bsButtons5.ini#.")
 MAN_END
 
 MAN_BEGIN (U"Calculator", U"ppgb", 20021201)
@@ -1190,23 +1190,32 @@ NORMAL (U"This macro mechanism is much more flexible than the usual opaque macro
 	"See the @Scripting tutorial for all the things that you can do in scripts.")
 MAN_END
 
-MAN_BEGIN (U"initialization script", U"ppgb", 20151020)
+MAN_BEGIN (U"initialization script", U"ppgb", 20150607)
 INTRO (U"Your initialization script is a normal @@Praat script@ that is run as soon as you start Praat.")
+#if defined (UNIX) || defined (macintosh)
 NORMAL (U"On Unix or MacOS X, you create an initialization script by creating a file named \"praat-startUp\" "
 	"in the directory /usr/local, "
 	"or putting a file \".praat-user-startUp\" or \"praat-user-startUp\" in your home directory "
 	"(if you rename the Praat executable, these names have to change as well).")
 NORMAL (U"If you have more than one of these files, they are run in the above order.")
-NORMAL (U"On Windows, you create an initialization script by creating a file named "
+#elif defined (_WIN32)
+NORMAL (U"On Windows NT or XP, you create an initialization script by creating a file named "
 	"\"praat-user-startUp\" in your home directory, "
-	"which could be C:\\bsUsers\\bsMiep if you are Miep.")
+	"which on my Windows XP computer is C:\\bsDocuments and Settings\\bsPaul.")
 NORMAL (U"If you have both of these files, they are run in the above order.")
+#endif
 ENTRY (U"Example")
 NORMAL (U"If you like to be greeted by your husband when Praat starts up, "
 	"you could put the following lines in your initialization script:")
-CODE (U"Read from file: \"C:\\bsUsers\\bsMiep\\bshelloMiep.wav\"   ! Windows")
-CODE (U"Read from file: \"/Users/miep/helloMiep.wav\"   ! Mac")
-CODE (U"Read from file: \"/home/miep/helloMiep.wav\"   ! Linux")
+#if defined (UNIX)
+	CODE (U"Read from file: \"/u/miep/helloMiep.wav\"")
+#elif defined (macintosh)
+	CODE (U"Read from file: \"/Users/miep/helloMiep.wav\"")
+#elif defined (_WIN32)
+	CODE (U"Read from file: \"C:\\bsUsers\\bsMiep\\bshelloMiep.wav\"")
+#else
+	#error Some audio file reading example should go here
+#endif
 CODE (U"Play")
 CODE (U"Remove")
 ENTRY (U"What not to use an initialization script for")
@@ -1261,7 +1270,7 @@ FORMULA (U"(1 / (0.463\\.c0.072)) (10^^(0.072/10)(10log(%I/%I__0_))^ \\-- 1) "
 	"= 30 \\.c (1.0167^^SL^ \\-- 1)")
 MAN_END
 
-MAN_BEGIN (U"plug-ins", U"ppgb", 20151020)
+MAN_BEGIN (U"plug-ins", U"ppgb", 20140212)
 INTRO (U"Experienced Praat script writers can distribute their product as a plug-in to Praat.")
 ENTRY (U"The Praat plug-in mechanism")
 NORMAL (U"When Praat starts up, it will execute all Praat scripts called ##setup.praat# "
@@ -1283,9 +1292,9 @@ NORMAL (U"(If you ran this script, Praat would install those two commands in the
 	"but you are now going to install them in a different way.)")
 NORMAL (U"You now put the three scripts in a new directory called ##plugin_Queak#, "
 	"and put this directory in your Praat preferences directory. If you are on Windows, "
-	"you will now have a directory called something like ##C:\\bsUsers\\bsYour Name\\bsPraat\\bsplugin_Queak#.")
+	"you will now have a directory called something like ##C:\\bsDocuments and Settings\\bsYour Name\\bsPraat\\bsplugin_Queak#.")
 NORMAL (U"If you now start up Praat, Praat will automatically execute the script "
-	"##C:\\bsUsers\\bsYour Name\\bsPraat\\bsplugin_Queak\\bssetup.praat# "
+	"##C:\\bsDocuments and Settings\\bsYour Name\\bsPraat\\bsplugin_Queak\\bssetup.praat# "
 	"and thereby install the two buttons. The two buttons will %not be remembered in the buttons file, "
 	"but they will be installed at every Praat start-up. De-installation involves removing (or renaming) the ##plugin_Queak# directory.")
 NORMAL (U"To distribute the Queak plug-in among your colleague guinea pig researchers, you can use any installer program to put "
@@ -1327,19 +1336,19 @@ INTRO (U"An executable text that consists of menu commands and action commands."
 NORMAL (U"See the @Scripting tutorial.")
 MAN_END
 
-MAN_BEGIN (U"preferences directory", U"ppgb", 20151020)
+MAN_BEGIN (U"preferences directory", U"ppgb", 20101204)
 INTRO (U"The Praat preferences directory is the directory where Praat saves the @@preferences file@ and the @@buttons file@, "
 	"and where you can install @@plug-ins@ and save the preferences of your scripts (in your subdirectory of the #apps subdirectory). "
 	"If the preferences directory does not exist, it will automatically be created when you start Praat.")
-ENTRY (U"Windows")
-NORMAL (U"If you are user #Miep, your Praat preferences directory will be ##C:\\bsUsers\\bsMiep\\bsPraat\\bs#.")
+ENTRY (U"Unix")
+NORMAL (U"If your home directory is ##/people/miep/#, your Praat preferences directory will be ##/people/miep/.praat-dir/#.")
 ENTRY (U"Macintosh")
 NORMAL (U"If you are user #miep, your Praat preferences directory will be ##/Users/miep/Library/Preferences/Praat Prefs/#.")
-ENTRY (U"Linux")
-NORMAL (U"If your home directory is ##/home/miep/#, your Praat preferences directory will be ##/home/miep/.praat-dir/#.")
+ENTRY (U"Windows")
+NORMAL (U"If you are user #Miep, your Praat preferences directory will be ##C:\\bsDocuments and Settings\\bsMiep\\bsPraat\\bs#.")
 MAN_END
 
-MAN_BEGIN (U"preferences file", U"ppgb", 20151020)
+MAN_BEGIN (U"preferences file", U"ppgb", 20071205)
 NORMAL (U"The file into which some of your preferences are saved across your sessions with Praat. "
 	"For instance, if you change the font used by the Picture window to Palatino and quit Praat, "
 	"the Picture-window font will still be Palatino when you start Praat again.")
@@ -1348,12 +1357,12 @@ NORMAL (U"The preferences file is written to disk when you quit Praat, "
 	"(but should not edit) with any text editor.")
 ENTRY (U"Where is the preferences file?")
 NORMAL (U"The preferences file is in your Praat @@preferences directory at .")
-NORMAL (U"On Windows it is called ##Preferences5.ini#, "
-	"for instance ##C:\\bsUsers\\bsMiep\\bsPraat\\bsPreferences5.ini#.")
+NORMAL (U"On Unix the file is called #prefs5, "
+	"for instance ##/people/miep/.praat-dir/prefs5#.")
 NORMAL (U"On Macintosh it is called #Prefs5, "
 	"for instance ##/Users/miep/Library/Preferences/Praat Prefs/Prefs5#.")
-NORMAL (U"On Linux the file is called #prefs5, "
-	"for instance ##/home/miep/.praat-dir/prefs5#.")
+NORMAL (U"On Windows it is called ##Preferences5.ini#, "
+	"for instance ##C:\\bsDocuments and Settings\\bsMiep\\bsPraat\\bsPreferences5.ini#.")
 MAN_END
 
 MAN_BEGIN (U"Scripting", U"ppgb", 20141012)
@@ -1382,7 +1391,7 @@ LIST_ITEM1 (U"@@Scripting 5.2. Expressions@ (numeric, string)")
 LIST_ITEM1 (U"@@Scripting 5.3. Jumps@ (if, then, elsif, else, endif)")
 LIST_ITEM1 (U"@@Scripting 5.4. Loops@ (for/endfor, while/endwhile, repeat/until)")
 LIST_ITEM1 (U"@@Scripting 5.5. Procedures@ (\\@ , procedure)")
-LIST_ITEM1 (U"@@Scripting 5.6. Arrays and dictionaries")
+LIST_ITEM1 (U"@@Scripting 5.6. Arrays")
 LIST_ITEM1 (U"@@Scripting 5.7. Including other scripts")
 LIST_ITEM1 (U"@@Scripting 5.8. Quitting@ (exitScript)")
 LIST_ITEM (U"@@Scripting 6. Communication outside the script")
@@ -2217,7 +2226,7 @@ CODE (U"#for i from 1 to n")
 CODE (U"#endfor")
 MAN_END
 
-MAN_BEGIN (U"Scripting 5. Language elements reference", U"ppgb", 20160405)
+MAN_BEGIN (U"Scripting 5. Language elements reference", U"ppgb", 20130421)
 NORMAL (U"In a Praat script, you can use variables, expressions, and functions, of numeric as well as string type, "
 	"and most of the control structures known from other procedural computer languages. "
 	"The way the distinction between numbers and strings is made, may remind you of the programming language Basic.")
@@ -2226,7 +2235,7 @@ LIST_ITEM (U"@@Scripting 5.2. Expressions@ (numeric, string)")
 LIST_ITEM (U"@@Scripting 5.3. Jumps@ (if, then, elsif, else, endif)")
 LIST_ITEM (U"@@Scripting 5.4. Loops@ (for/endfor, while/endwhile, repeat/until)")
 LIST_ITEM (U"@@Scripting 5.5. Procedures@ (\\@ , procedure)")
-LIST_ITEM (U"@@Scripting 5.6. Arrays and dictionaries@")
+LIST_ITEM (U"@@Scripting 5.6. Arrays@")
 LIST_ITEM (U"@@Scripting 5.7. Including other scripts@")
 LIST_ITEM (U"@@Scripting 5.8. Quitting@ (exit)")
 MAN_END
@@ -2650,7 +2659,7 @@ CODE (U"#endproc")
 NORMAL (U"However, this uses variable substitution, a trick better avoided.")
 MAN_END
 
-MAN_BEGIN (U"Scripting 5.6. Arrays and dictionaries", U"ppgb", 20160405)
+MAN_BEGIN (U"Scripting 5.6. Arrays", U"ppgb", 20140111)
 NORMAL (U"You can use arrays of numeric and string variables:")
 CODE (U"#for i #from 1 #to 5")
 	CODE1 (U"square [i] = i * i")
@@ -2664,11 +2673,6 @@ CODE (U"#for i #from 1 #to 5")
 	CODE1 (U"#appendInfoLine: \"The square of \", i, \" is \", square [i]")
 CODE (U"#endfor")
 NORMAL (U"You can use any number of variables in a script, but you can also use Matrix or Sound objects for arrays.")
-NORMAL (U"In the examples above, the %index into the array was always a number. "
-	" A %hash or %dictionary is an array variable where the index is a string:")
-CODE (U"age [\"John\"] = 36")
-CODE (U"age [\"Babs\"] = 39")
-CODE (U"#writeInfoLine: \"John is \", age [\"John\"], \" years old.\"")
 MAN_END
 
 MAN_BEGIN (U"Scripting 5.7. Including other scripts", U"ppgb", 20140111)
@@ -2971,7 +2975,7 @@ NORMAL (U"Most system commands are different on different platforms. "
 CODE (U"#runSystem: \"del \", directory\\$ , \"\\bs*.wav\"")
 NORMAL (U"on Windows, but")
 CODE (U"#runSystem: \"rm \", directory\\$ , \"/*.wav\"")
-NORMAL (U"on Macintosh and Linux.")
+NORMAL (U"on Macintosh and Unix.")
 NORMAL (U"The script will stop running if a system command returns an error. For instance,")
 CODE (U"#runSystem: \"rm \", directory\\$ , \"/*.wav\"")
 NORMAL (U"will stop the script if there are no WAV files in the directory. "
@@ -3139,11 +3143,11 @@ NORMAL (U"In this example, the default button is 2 (i.e. #OK), and the cancel bu
 	"and the variables $$learning_rate$, $directions and $$directions\\$ $ will not be changed (i.e. they might remain undefined).")
 MAN_END
 
-MAN_BEGIN (U"Scripting 6.7. Sending a message to another program", U"ppgb", 20151020)
+MAN_BEGIN (U"Scripting 6.7. Sending a message to another program", U"ppgb", 20140107)
 NORMAL (U"To send messages to running programs that use the Praat shell, "
 	"use $sendpraat (see @@Scripting 8. Controlling Praat from another program@).")
 NORMAL (U"To send a message to another running program that listens to a socket, "
-	"you can use the $sendsocket directive. This works on Linux and Windows only.")
+	"you can use the $sendsocket directive. This works on Unix and Windows only.")
 ENTRY (U"Example")
 NORMAL (U"Suppose we are in the Praat-shell program #Praat, which is a system for doing phonetics by computer. "
 	"From this program, we can send a message to the %%non%-Praat-shell program #MovieEdit, "
@@ -3189,157 +3193,47 @@ CODE (U"nocheck Remove")
 NORMAL (U"This would cause the script to continue even if there is nothing to remove.")
 MAN_END
 
-MAN_BEGIN (U"Scripting 6.9. Calling from the command line", U"ppgb", 20151031)
+MAN_BEGIN (U"Scripting 6.9. Calling from the command line", U"ppgb", 20150728)
 INTRO (U"Previous sections of this tutorial have shown you how to run a Praat script from the Script window. "
 	"However, you can also call a Praat script from the command line (text console) instead. "
 	"Information that would normally show up in the Info window, then goes to %stdout, "
 	"and error messages go to %stderr. "
-	"You cannot use commands in your script that create windows, such as ##View & Edit#. "
-	"Before describing how to achieve this (from section 4 below on), we first describe "
-	"how the normal Praat, with its usual Objects and Picture (and perhaps Info) window, "
-	"can be started from the command line.")
-
-ENTRY (U"1. Starting Praat from the command line")
-NORMAL (U"Before seeing how a Praat script can be called from the command line, "
-	"you should first know that just calling Praat from the command line just starts up Praat "
-	"with its usual GUI (Graphical User Interface), i.e. with its two windows. "
-	"For instance, on Windows you can start the Command Prompt window (the \"Console\"), and type")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\"")
-NORMAL (U"(including the quotes) if Praat.exe is indeed in the folder $$C:\\bsProgram Files$.")
-NORMAL (U"On the Mac, the executable is hidden inside the $$app$ file, so you open a Terminal window "
-	"and type something like")
-CODE (U"/Applications/Praat.app/Contents/MacOS/Praat")
-NORMAL (U"On Linux, you type into the Terminal something like")
-CODE (U"/usr/bin/praat")
-
-ENTRY (U"2. Calling Praat to open data files")
-NORMAL (U"On Windows, you can open Praat with a sound file and a TextGrid file by typing")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\" --open data\\bshello.wav data\\bshello.TextGrid")
+	"You cannot use commands like ##View & Edit#.")
+ENTRY (U"Command lines on Unix and Macintosh")
+NORMAL (U"On Unix or MacOS X, you call Praat scripts from the command line like this:")
+CODE (U"> /people/mietta/praat doit.praat 50 hallo")
 NORMAL (U"or")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\" --open data/hello.wav data/hello.TextGrid")
-NORMAL (U"at least if your current directory (see the Console's $$cd$ and $$dir$ commands) "
-	"contains the folder $$data$ and that folder contains those two files. "
-	"Praat will start up, and shows the two files as a Sound and a TextGrid object in the list. "
-	"If Praat was already running when you typed the command, "
-	"the two files are added as objects to the existing list in Praat.")
-NORMAL (U"On the Mac, you do")
-CODE (U"/Applications/Praat.app/Contents/MacOS/Praat --open data/hello.wav data/hello.TextGrid")
-NORMAL (U"and on Linux")
-CODE (U"/usr/bin/praat --open data/hello.wav data/hello.TextGrid")
-
-ENTRY (U"3. Calling Praat to open a script")
-NORMAL (U"On Windows, when you type")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\" --open \"my script.praat\"")
-NORMAL (U"Praat will start up, opening the script $$my script.praat$$ in a script window. "
-	"If Praat was already running when you typed the command, "
-	"the script window will appear within the already running instantiation of Praat.")
-NORMAL (U"On the Mac, you do")
-CODE (U"/Applications/Praat.app/Contents/MacOS/Praat --open \"my script.praat\"")
-NORMAL (U"and on Linux")
-CODE (U"/usr/bin/praat data/hello.wav --open \"my script.praat\"")
-NORMAL (U"Note that on all three platforms, you have to supply quotes around the file name "
-	"if that file name contains one or more spaces, as here between $$my$ and $$script$ "
-	"or above between $$Program$ and $$Files$. This is because the script languages of "
-	"the Console or Terminal use spaces for separating commands and arguments.")
-
-ENTRY (U"4. Calling Praat to run a script")
-NORMAL (U"Now we are ready to discuss how to run Praat without a GUI.")
-NORMAL (U"On Windows, when you type")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\" --run \"my script.praat\"")
-NORMAL (U"Praat will execute the script $$my script.praat$$ without showing Praat's GUI, "
-	"i.e. without showing its usual two windows. "
-	"In fact, any output that would normally go to the Info window, "
-	"will now go directly to the Console window in which you typed te command. "
-	"If Praat was already running when you typed the command, "
-	"its windows will not be affected. In fact, the GUI-instantiation of Praat and the Console-instantiation "
-	"can run simultaneously without them noticing each other's existence; "
-	"moreover, multiple Console-instantiations of Praat can run simultaneously, each in their own Console.")
-NORMAL (U"On the Mac, you type")
-CODE (U"/Applications/Praat.app/Contents/MacOS/Praat --run \"my script.praat\"")
-NORMAL (U"and on Linux")
-CODE (U"/usr/bin/praat data/hello.wav --run \"my script.praat\"")
-NORMAL (U"What happens on all platforms is that the Console or Terminal starts up Praat, "
-	"then Praat executes the script, and then Praat closes itself.")
-
-ENTRY (U"5. Calling Praat to run a script with arguments")
-NORMAL (U"Consider the following script:")
-CODE (U"form Test command line calls")
-CODE1 (U"sentence First_text I love you")
-CODE1 (U"real Beep_duration 0.4")
-CODE1 (U"sentence Second_text Me too")
-CODE (U"endform")
-CODE (U"")
-CODE (U"writeInfoLine: \"She: \"\"\", first_text\\$ , \"\"\"\"")
-CODE (U"appendInfoLine: \"He: \"\"\", second_text\\$ , \"\"\"\"")
-CODE (U"")
-CODE (U"synth1 = Create SpeechSynthesizer: \"English\", \"f1\"")
-CODE (U"Play text: first_text\\$ ")
-CODE (U"Create Sound as pure tone: \"beep\", 1, 0.0, beep_duration,")
-CODE (U"... 44100, 440, 0.2, 0.01, 0.01")
-CODE (U"Play")
-CODE (U"Remove")
-CODE (U"synth2 = Create SpeechSynthesizer: \"English\", \"m1\"")
-CODE (U"Play text: second_text\\$ ")
-NORMAL (U"When you run this script from within Praat, it writes two lines to the Info window "
-	"and plays first a female voice speaking the first sentence, then a beep, and then a male voice "
-	"speaking the second sentence. To make this happen from the Windows command line instead, you type")
-CODE (U"\"C:\\bsProgram Files\\bsPraat.exe\" --run testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"")
-NORMAL (U"In the Mac terminal, you type")
-CODE (U"/Applications/Praat.app/Contents/MacOS/Praat --run testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"")
-NORMAL (U"and in the Linux terminal, you do")
-CODE (U"/usr/bin/praat --run testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"")
-NORMAL (U"Note that each argument that contains one or more spaces has to be put within quotes, "
-	"on all three platforms. As with #runScript, Praat will not present a form window, "
-	"but simply run the script with the arguments given on the command line "
-	"(see @@Scripting 6.1. Arguments to the script@).")
-NORMAL (U"What then happens on all three platforms is that a console instantiation of Praat writes "
-	"the two lines to the Console window and plays the three sounds.")
-
-ENTRY (U"6. Calling Praat from other programs such as Python")
-NORMAL (U"You can run the above script from several programming languages, not just from a Console or Terminal. "
-	"In Python, for instance, you can do it using the same syntax as you would use in the Console or Terminal:")
-CODE (U"import os")
-CODE (U"os.system ('\"C:\\bs\\bsProgram Files\\bs\\bsPraat.exe\" --run testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"')")
-NORMAL (U"Note that you have to double the backslashes!")
-NORMAL (U"A disadvantage of the $$os.system$ method is that you have to use quotes within quotes. "
-	"A somewhat cleaner approach is:")
-CODE (U"import subprocess")
-CODE (U"subprocess.call(['C:\\bs\\bsProgram Files\\bs\\bsPraat.exe', '--run', 'testCommandLineCalls.praat', 'I love you', '0.4', 'Me too'])")
-NORMAL (U"This way you specify the arguments directly, with quotes only because they are all strings, "
-	"but without having to worry about spaces. And perhaps even more importantly, this syntax "
-	"makes it easy to use variables as arguments, as in:")
-CODE (U"first_line = 'I love you'")
-CODE (U"second_line = 'me too'")
-CODE (U"subprocess.call(['C:\\bs\\bsProgram Files\\bs\\bsPraat.exe', '--run', 'testCommandLineCalls.praat', first_line, '0.4', second_line])")
-NORMAL (U"Many other programs beside Python have a $$system$-like command, so that you can run a command like")
-CODE (U"system ('\"C:\\bs\\bsProgram Files\\bs\\bsPraat.exe\" --run testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"')")
-
-ENTRY (U"7. What happens if I specify neither --open nor --run?")
-NORMAL (U"If you specify neither $$--open$ nor $$--run$, Praat's behaviour is not guaranteed. "
-	"If you type something like")
-CODE (U"praat testCommandLineCalls.praat \"I love you\" 0.4 \"Me too\"")
-NORMAL (U"into a Console or Terminal window by hand, Praat will typically run the script. "
-	"Also, the $$--run$ option can probably be left out from the Python call above. "
-	"However, if you redirect the output of Praat to a file or pipe, you cannot typically leave out the $$--run$ option; "
-	"if you do, Praat may start its GUI and %open the file rather than run it.")
-
-ENTRY (U"8. Running Praat interactively from the command line")
-NORMAL (U"On the Mac and Linux, you have the possibility of running the program interactively from the command line:")
-CODE (U"> /usr/bin/praat -")
+CODE (U"> /Applications/Praat.app/Contents/MacOS/Praat doit.praat 50 hallo")
+NORMAL (U"This opens Praat, runs the script ##doit.praat# with arguments \"50\" and \"hallo\", "
+	"and closes Praat.")
+NORMAL (U"You also have the possibility of running the program interactively from the command line:")
+CODE (U"> /people/mietta/praat -")
 NORMAL (U"You can then type in any of the fixed and dynamic commands, and commands that handle object selection, "
-	"such as #selectObject. This method also works in pipes:")
-CODE (U"> echo \"Report memory use\" | /usr/bin/praat -")
-
-ENTRY (U"9. Calling Praat from a web server")
+	"like #select. This method also works in pipes:")
+CODE (U"> echo \"Statistics...\" | /people/mietta/praat -")
+ENTRY (U"Command lines on Windows")
+NORMAL (U"On Windows, you call Praat scripts from the command line like this:")
+CODE (U"e:\\bspraatcon.exe e:\\bsdoit.praat 50 hallo")
+NORMAL (U"Note that you use the program ##praatcon.exe# instead of ##praat.exe#. "
+	"The script will write to the console output in UTF-16 Little Endian encoding. "
+	"If you want to use ISO Latin-1 encoding instead, or if you want to use praatcon's output in a pipe or redirect it to a file, "
+	"use ##praatcon -a# or ##praatcon --ansi# instead.")
+ENTRY (U"How to get arguments into the script")
+NORMAL (U"In the above example, the script ##doit.praat# requires two arguments. In the script ##doit.praat#, "
+	"you use #form and #endform to receive these arguments. See @@Scripting 6.1. Arguments to the script at . "
+	"As with #runScript, Praat will not present a form window, but simply run the script "
+	"with the arguments given on the command line. The example given in @@Scripting 6.1. Arguments to the script@ "
+	"will be called in the following way:")
+CODE (U"> /people/mietta/praat playSine.praat 550 0.9")
+NORMAL (U"or")
+CODE (U"e:\\bspraatcon.exe playSine.praat 550 0.9")
+ENTRY (U"Calling Praat from a web server")
 NORMAL (U"If you call Praat from a web server, you typically do not want to read and write its preferences and buttons files. "
 	"To achieve this, you use the ##--no-pref-files# command line option before the script name:")
-CODE (U"system ('/users/apache/praat --run --no-pref-files /user/apache/scripts/computeAnalysis.praat 1234 blibla')")
-
-ENTRY (U"10. All command line options")
-TAG (U"##--open")
-DEFINITION (U"Interpret the command line arguments as files to be opened in the GUI.")
-TAG (U"##--run")
-DEFINITION (U"Interpret the command line arguments as a script file name and its arguments.")
+CODE (U"> /users/apache/praat --no-pref-files /user/apache/scripts/computeAnalysis.praat 1234 blibla")
+ENTRY (U"Command line options")
+TAG (U"##-a#, ##--ansi#")
+DEFINITION (U"Use ISO Latin-1 encoding (see above; not recommended).")
 TAG (U"##--no-pref-files#")
 DEFINITION (U"Ignore the preferences file and the buttons file at start-up, and don't write them when quitting (see above).")
 TAG (U"##--no-plugins#")
@@ -3347,14 +3241,6 @@ DEFINITION (U"Don't activate the plugins at start-up.")
 TAG (U"##--pref-dir=#/var/www/praat_plugins")
 DEFINITION (U"Set the preferences directory to /var/www/praat_plugins (for instance). "
 	"This can come in handy if you require access to preference files and/or plugins that are not in your home directory.")
-TAG (U"##--version")
-DEFINITION (U"Print the Praat version.")
-TAG (U"##--help")
-DEFINITION (U"Print this list of command line options.")
-TAG (U"##-a#, ##--ansi#")
-DEFINITION (U"On Windows: use ISO Latin-1 encoding instead of the Console's native UTF-16 Little Endian encoding. "
-	"This is not recommended, but might be necessary if you want to use Praat in a pipe "
-	"or with redirection to a file.")
 MAN_END
 
 MAN_BEGIN (U"Scripting 7. Scripting the editors", U"ppgb", 20040222)
@@ -3480,21 +3366,21 @@ LIST_ITEM (U"@@Scripting 8.2. The sendpraat program")
 LIST_ITEM (U"@@Scripting 8.3. The sendpraat directive")
 MAN_END
 
-MAN_BEGIN (U"Scripting 8.1. The sendpraat subroutine", U"ppgb", 20151020)
+MAN_BEGIN (U"Scripting 8.1. The sendpraat subroutine", U"ppgb", 20140212)
 INTRO (U"A subroutine for sending messages to a %running Praat. "
-	"Also a Windows console, MacOS, or Linux console program with the same purpose.")
+	"Also a Unix, MacOS, or DOS console program with the same purpose.")
 ENTRY (U"Syntax")
 LIST_ITEM (U"##sendpraat (void *#%display##, const char *#%program##, long #%timeOut##, char *#%text##);")
 ENTRY (U"Arguments")
 TAG (U"%display")
 DEFINITION (U"the display pointer if the subroutine is called from a running X program; "
-	"if null, sendpraat will open the display by itself. On Windows and Macintosh, "
+	"if NULL, sendpraat will open the display by itself. On Windows and Macintosh, "
 	"this argument is ignored.")
 TAG (U"%program")
 DEFINITION (U"the name of a running program that uses the Praat shell, e.g. \"Praat\" or \"ALS\". "
-	"The first letter may be specified as lower or upper case; it will be converted "
-	"to upper case for Windows or MacOS and to lower case for Linux.")
-TAG (U"%timeOut (MacOS and Linux only)")
+	"The first letter may be specified as lower or upper case; it will be converted to lower case for Unix "
+	"and to upper case for Macintosh and Windows.")
+TAG (U"%timeOut (Unix and Macintosh only)")
 DEFINITION (U"the number of seconds that sendpraat will wait for an answer "
 	"before writing an error message. A %timeOut of 0 means that "
 	"the message will be sent asynchronously, i.e., that sendpraat "
@@ -3505,10 +3391,10 @@ ENTRY (U"Example 1: killing a program")
 CODE (U"char message [100], *errorMessage;")
 CODE (U"strcpy (message, \"Quit\");")
 CODE (U"errorMessage = #sendpraat (NULL, \"praat\", 0, message);")
-CODE (U"if (errorMessage) fprintf (stderr, \"\\% s\", errorMessage);")
+CODE (U"if (errorMessage != NULL) fprintf (stderr, \"\\% s\", errorMessage);")
 NORMAL (U"This causes the program #Praat to quit (gracefully), because #Quit is a fixed "
 	"command in one of the menus of that program. "
-	"On MacOS and Linux, sendpraat returns immediately; on Windows, the %timeOut argument is ignored. "
+	"On Unix and Macintosh, sendpraat returns immediately; on Windows, the %timeOut argument is ignored. "
 	"The return value %errorMessage is a statically allocated string internal to sendpraat, "
 	"and is overwritten by the next call to sendpraat.")
 ENTRY (U"Example 2: playing a sound file in reverse")
@@ -3520,7 +3406,7 @@ CODE (U"sprintf (message, \"Read from file... \\% s\\bsnPlay reverse\\bsnRemove\
 CODE (U"errorMessage = #sendpraat (NULL, \"praat\", 1000, message);")
 NORMAL (U"This will work because ##Play reverse# is an action command "
 	"that becomes available in the dynamic menu when a Sound is selected. "
-	"On Linux, sendpraat will allow #Praat at most 1000 seconds to perform this.")
+	"On Unix, sendpraat will allow #Praat at most 1000 seconds to perform this.")
 ENTRY (U"Example 3: executing a large script file")
 NORMAL (U"Sometimes, it may be unpractical to send a large script directly to #sendpraat. "
 	"Fortunately, the receiving program knows #runScript:")
@@ -3544,8 +3430,8 @@ NORMAL (U"To start a program from the command line instead and sending it a mess
 	"See @@Scripting 6.9. Calling from the command line at .")
 MAN_END
 
-MAN_BEGIN (U"Scripting 8.2. The sendpraat program", U"ppgb", 20151020)
-INTRO (U"A Windows console or Unix (MacOS, Linux) terminal program for sending messages to a %running Praat program.")
+MAN_BEGIN (U"Scripting 8.2. The sendpraat program", U"ppgb", 20140212)
+INTRO (U"A Unix or DOS console program for sending messages to a %running Praat program.")
 ENTRY (U"Syntax")
 CODE (U"#sendpraat [%timeOut] %program %message...")
 NORMAL (U"For the meaning of the arguments, see @@Scripting 8.1. The sendpraat subroutine|the sendpraat subroutine at .")
diff --git a/fon/manual_exampleSound.cpp b/fon/manual_exampleSound.cpp
index 217e80b..2997bc6 100644
--- a/fon/manual_exampleSound.cpp
+++ b/fon/manual_exampleSound.cpp
@@ -2580,31 +2580,31 @@ static const char *data [] = {
 "74??83??;9??=9??<1??6;??>5?>>2?>",
 "57??58??0:??19??5=??3<??=4?>" };
 
-Sound manual_exampleSound () {
-	static autoSound me;
-	if (! me) {
+Sound manual_exampleSound (void) {
+	static Sound me = NULL;
+	if (me == NULL) {
 		long istring = 0, ichar = 24;
 		me = Sound_create (1, 0.0, 20457.0/44100, 20457, 1.0/44100, 0.5/44100);
 		for (long isamp = 1; isamp <= 20457; isamp ++) {
-			uint16 part1 = data [istring] [ichar] - '0';
-			uint16 part2 = data [istring] [++ ichar] - '0';
-			uint16 part3 = data [istring] [++ ichar] - '0';
-			uint16 part4 = data [istring] [++ ichar] - '0';
-			my z [1] [isamp] = (int16) ((part3 << 12) + (part4 << 8) + (part1 << 4) + part2) / 32768.0;
+			unsigned short part1 = data [istring] [ichar] - '0';
+			unsigned short part2 = data [istring] [++ ichar] - '0';
+			unsigned short part3 = data [istring] [++ ichar] - '0';
+			unsigned short part4 = data [istring] [++ ichar] - '0';
+			my z [1] [isamp] = (signed short) ((part3 << 12) + (part4 << 8) + (part1 << 4) + part2) / 32768.0;
 			if (++ ichar == 32) istring ++, ichar = 0;
 		}
 	}
-	return me.get();   // reference
+	return me;
 }
 
-Pitch manual_examplePitch () {
-	static autoPitch me;
-	if (! me) {
+Pitch manual_examplePitch (void) {
+	static Pitch me = NULL;
+	if (me == NULL) {
 		Melder_progressOff ();
 		me = Sound_to_Pitch (manual_exampleSound (), 0.0, 200.0, 500.0);
 		Melder_progressOn ();
 	}
-	return me.get();   // reference
+	return me;
 }
 
 /* End of file manual_exampleSound.cpp */
diff --git a/fon/manual_exampleSound.h b/fon/manual_exampleSound.h
index c916029..05ecef6 100644
--- a/fon/manual_exampleSound.h
+++ b/fon/manual_exampleSound.h
@@ -22,8 +22,8 @@
 #include "Sound.h"
 #include "Pitch.h"
 
-Sound manual_exampleSound ();
-Pitch manual_examplePitch ();
+Sound manual_exampleSound (void);
+Pitch manual_examplePitch (void);
 
 /* End of file manual_exampleSound.h */
 #endif
diff --git a/fon/manual_glossary.cpp b/fon/manual_glossary.cpp
index 812559c..fdb2d56 100644
--- a/fon/manual_glossary.cpp
+++ b/fon/manual_glossary.cpp
@@ -22,10 +22,10 @@
 #include "manual_exampleSound.h"
 
 static void draw_TimeDomain_Sound (Graphics g) {
-	Sound_draw (manual_exampleSound (), g, 0, 0, 0, 0, true, U"curve");
+	Sound_draw (manual_exampleSound (), g, 0, 0, 0, 0, TRUE, U"curve");
 }
 static void draw_TimeDomain_Pitch (Graphics g) {
-	Pitch_draw (manual_examplePitch (), g, 0, 0, 200.0, 500.0, true, Pitch_speckle_NO, kPitch_unit_HERTZ);
+	Pitch_draw (manual_examplePitch (), g, 0, 0, 200.0, 500.0, TRUE, Pitch_speckle_NO, kPitch_unit_HERTZ);
 }
 
 void manual_glossary_init (ManPages me);
diff --git a/fon/manual_programming.cpp b/fon/manual_programming.cpp
index a50b82c..d3442fb 100644
--- a/fon/manual_programming.cpp
+++ b/fon/manual_programming.cpp
@@ -22,372 +22,7 @@
 void manual_programming_init (ManPages me);
 void manual_programming_init (ManPages me) {
 
-MAN_BEGIN (U"Interoperability", U"ppgb", 20151107)
-INTRO (U"You can use Praat in workflows that involve other programs.")
-ENTRY (U"1. General ways to access Praat from other programs")
-NORMAL (U"• To send messages from another program to a running Praat, use @@sendpraat at . "
-	"This method is used by the programs CHAT (Childes) and Phon to view a sound in a Sound window.")
-NORMAL (U"• To execute a Praat script as a subprocess of another program, see @@Scripting 6.9. Calling from the command line at .")
-ENTRY (U"2. General ways to access other programs from Praat")
-NORMAL (U"• To execute another program as a subprocess of Praat, see @@Scripting 6.5. Calling system commands at .")
-ENTRY (U"3. Files")
-NORMAL (U"• Many programs read and/or write Praat TextGrid files. If you want create a TextGrid reading or writing procedure, "
-	"consult @@TextGrid file formats at .")
-MAN_END
-
-MAN_BEGIN (U"TextGrid file formats", U"ppgb", 20151107)
-INTRO (U"This page describes the syntax and semantics of TextGrid files that Praat can read and/or write.")
-ENTRY (U"1. The full text format of a minimal TextGrid")
-NORMAL (U"If you record a Sound with a druation of 2.3 seconds, and then do ##To TextGrid...#, "
-	"you are asked to provide tier names and to say which of these tiers are point tiers. "
-	"If you click OK without changing the settings from their standard values, "
-	" you obtain a TextGrid with two interval tiers, called %Mary and %John, and one point tier called %bell. "
-	"When you save this TextGrid to disk by choosing @@Save as text file...@ from the #New menu, "
-	"the resulting text file, when opened in a text editor, will look as follows:")
-CODE (U"File type = \"ooTextFile\"")
-CODE (U"Object class = \"TextGrid\"")
-CODE (U"")
-CODE (U"xmin = 0")
-CODE (U"xmax = 2.3")
-CODE (U"tiers? <exists>")
-CODE (U"size = 3")
-CODE (U"item []:")
-	CODE1 (U"item [1]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"Mary\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 1")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"\"")
-	CODE1 (U"item [2]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"John\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 1")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"\"")
-	CODE1 (U"item [3]:")
-		CODE2 (U"class = \"TextTier\"")
-		CODE2 (U"name = \"bell\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"points: size = 0")
-NORMAL (U"This text file contains the following pieces of data, which Praat will use when reading this file from disk "
-	"and turning it into a TextGrid object again:")
-NORMAL (U"• The text \"ooTextFile\", which appears in the first line of any text file that you write with @@Save as text file...@, "
-	"i.e. not only in text files created from a TextGrid object, but also in text files created from e.g. a Pitch "
-	"or ExperimentMFC object or from any other of the hundreds of types of objects that Praat can have in its Objects list.")
-NORMAL (U"• The text \"TextGrid\", which designates the type of the object that has been saved to this file.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of this TextGrid.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the TextGrid.")
-NORMAL (U"• The flag <exists>, which tells us that this TextGrid contains tiers (this value would be <absent> "
-	"if the TextGrid contained no tiers, in which case the file would end here; however, you cannot really create TextGrid objects "
-	"without tiers in Praat, so this issue can be ignored).")
-NORMAL (U"• The integer number 3, which is the number of tiers that you created.")
-NORMAL (U"• The text \"IntervalTier\", which designates the type of the first tier (an interval tier, therefore).")
-NORMAL (U"• The text \"Mary\", which is the name you gave to the first tier.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of the first tier.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the first tier. "
-	"When you create a TextGrid with an interval tier, the time domain of the interval tier is automatically set equal "
-	"to the time domain of the whole TextGrid.")
-NORMAL (U"• The integer number 1, which is the number of intervals in the first tier. "
-	"Although you did not add any intervals and did not add any text to the first tier, "
-	"all interval tiers always contain at least one interval, which is created when you create the TextGrid.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of the first (only) interval of the first tier.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the first interval of the first tier. "
-	"The interval that is automatically created for you when you create a TextGrid with an interval tier, "
-	"spans the whole tier.")
-NORMAL (U"• The text \"\", which is the contents of the interval on the first tier. This text is empty.")
-NORMAL (U"• The text \"IntervalTier\", which gives the type of the second tier (again an interval tier).")
-NORMAL (U"• The text \"John\", which is the name you gave to the second tier.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of the second tier.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the second tier.")
-NORMAL (U"• The integer number 1, which is the number of intervals in the second tier.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of the first (only) interval of the second tier.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the first interval of the second tier.")
-NORMAL (U"• The text \"\", which is the contents of the interval on the second tier. This text is empty.")
-NORMAL (U"• The text \"TextTier\", which designates the type of the third tier (a point tier this time).")
-NORMAL (U"• The text \"bell\", which is the name you gave to the third tier.")
-NORMAL (U"• The real number 0, which is the starting time (in seconds) of the third tier.")
-NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the third tier.")
-NORMAL (U"• The integer number 0, which is the number of points in the third tier. "
-	"A newly created point tier contains no points yet.")
-NORMAL (U"You will have noticed that the file contains a lot of stuff that was not mentioned in this list. "
-	"All of that stuff are %comments that are present only to help the human reader understand the contents "
-	"of the file: labels for all tiers (such as $$item [2]$), labels for the starting times of the TextGrid or "
-	"a tier or an interval ($xmin), labels for end times ($xmax); labels for the number of tiers or "
-	"intervals or points ($size), and little numbers enclosed in square brackets to tell the reader where they are ($$[2]$).")
-NORMAL (U"When reading a text file containing a TextGrid (or any other object), Praat totally ignores these comments, "
-	"so if you e.g. replace $$[2]$ with $$[4]$ somewhere, Praat will not notice. Praat will consider as data only the following "
-	"types of information in the file:")
-LIST_ITEM (U"• free-standing numbers, such as $$0$ and $$2.3$ above, but not $$[1]$ or $$[3]$;")
-LIST_ITEM (U"• free-standing text enclosed within double quotes, such as $$\"TextGrid\"$ and $$\"\"$ above;")
-LIST_ITEM (U"• free-standing flags, such as $$<exists>$ above (this is the only flag that appears in TextGrid files; "
-	"see @ExperimentMFC for a much broader use of flags).")
-NORMAL (U"In this list, \"free-standing\" means that the number, text or flag is preceded by the beginning of the file, "
-	"the beginning of a line, or a space, and that it is followed by the end of the file, the end of a line, or a space.")
-ENTRY (U"2. The shortest text format of a minimal TextGrid")
-NORMAL (U"From the description above of what in the file is considered data (namely free-standing numbers, texts and flags) "
-	"and what is not (namely everything else), you can conclude that Praat will be able to read a much shorter version of "
-	"the file above. And indeed, when you choose @@Save as short text file...@ from the #New menu, your file will consist of "
-	"the following text, "
-	"with every piece of data alone on a separate line:")
-CODE (U"File type = \"ooTextFile\"")
-CODE (U"Object class = \"TextGrid\"")
-CODE (U"")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"<exists>")
-CODE (U"3")
-CODE (U"\"IntervalTier\"")
-CODE (U"\"Mary\"")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"1")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"\"\"")
-CODE (U"\"IntervalTier\"")
-CODE (U"\"John\"")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"1")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"\"\"")
-CODE (U"\"TextTier\"")
-CODE (U"\"bell\"")
-CODE (U"0")
-CODE (U"2.3")
-CODE (U"0")
-NORMAL (U"That's much less human-readable than before, but equally computer-readable, at least by Praat. "
-	"When you write your own TextGrid file recognizer, you should be able to interpret both versions shown above, "
-	"and also any version that is intermediate between the two, as long as it has the data written as freestanding numbers, "
-	"texts, and flags. For instance, a human-readable TextGrid file that can be interpreted by Praat could look "
-	"as follows:")
-CODE (U"\"ooTextFile\"")
-CODE (U"\"TextGrid\"")
-CODE (U"0  2.3  ! time domain of TextGrid")
-CODE (U"<exists>")
-CODE (U"3 tiers")
-CODE (U"\"IntervalTier\"  \"Mary\"  ! type and name of tier 1")
-CODE (U"0  2.3  ! time domain of tier 1")
-CODE (U"1 interval coming")
-CODE (U"0  2.3  \"\"  ! interval 1 on tier 1")
-CODE (U"\"IntervalTier\"  \"John\"  ! type and name of tier 2")
-CODE (U"0  2.3  ! time domain of tier 2")
-CODE (U"1 interval coming")
-CODE (U"0  2.3  \"\"  ! interval 1 on tier 2")
-CODE (U"\"TextTier\"  \"bell\"  ! type and name of tier 3")
-CODE (U"0  2.3  ! time domain of tier 3")
-CODE (U"0 points coming")
-NORMAL (U"Here we see that multiple pieces of data can be together on a line, as long as each of them stands free; "
-	"the only layout requirement is that the text \"ooTextFile\" has to be alone on the first line.")
-NORMAL (U"Another thing we see is that there is an additional type of comment: everything that follows an "
-	"exclamation mark on the same line is considered a comment. Thus, although some lines seem to end in a free-standing "
-	"number (1, 2, or 3), those numbers do not count as data, because they are part of a comment that follows "
-	"an exclamation mark.")
-ENTRY (U"3. Reading a TextGrid file")
-NORMAL (U"Reading the contents of a TextGrid file into your own data structure is fairly easy. "
-	"For instance, to figure out how many intervals there in a tier, you do not have to read multiple lines and then backtrack "
-	"to see where the list of intervals ends. Instead, the number of intervals is given before the intervals are enumerated.")
-ENTRY (U"4. Writing a TextGrid file")
-NORMAL (U"Writing the contents of a TextGrid file involves deciding on a level of human readability.")
-ENTRY (U"5. A TextGrid file with more than the minimal content")
-NORMAL (U"The above example was about a rather uninteresting TextGrid object, with no text in it. Suppose instead that "
-	"the sound was a recording of speaker saying a sentence, and your TextGrid annotates the sentence orthographically "
-	"as well as phonetically, and also annotates two chimes of the bell:")
-SCRIPT (6.0, 3.0, U""
-	"textgrid = Create TextGrid: 0, 2.3, \"sentence phonemes bell\", \"bell\"\n"
-	"Set interval text: 1, 1, \"říkej \"\"ahoj\"\" dvakrát\"\n"
-	"Insert boundary: 2, 0.7\n"
-	"Insert boundary: 2, 1.6\n"
-	"Set interval text: 2, 1, \"r̝iːkɛj\"\n"
-	"Set interval text: 2, 2, \"ʔaɦɔj\"\n"
-	"Set interval text: 2, 3, \"dʋakraːt\"\n"
-	"Insert point: 3, 0.9, \"ding\"\n"
-	"Insert point: 3, 1.3, \"dong\"\n"
-	"Draw: 0.0, 0.0, 1, 1, 1\n")
-NORMAL (U"When you save this as a full text file, it will look as follows:")
-CODE (U"File type = \"ooTextFile\"")
-CODE (U"Object class = \"TextGrid\"")
-CODE (U"")
-CODE (U"xmin = 0")
-CODE (U"xmax = 2.3")
-CODE (U"tiers? <exists>")
-CODE (U"size = 3")
-CODE (U"item []:")
-	CODE1 (U"item [1]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"sentence\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 1")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"říkej \"\"ahoj\"\" dvakrát\"")
-	CODE1 (U"item [2]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"phonemes\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 3")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 0.7")
-			CODE3 (U"text = \"r̝iːkɛj\"")
-		CODE2 (U"intervals [2]:")
-			CODE3 (U"xmin = 0.7")
-			CODE3 (U"xmax = 1.6")
-			CODE3 (U"text = \"ʔaɦɔj\"")
-		CODE2 (U"intervals [3]:")
-			CODE3 (U"xmin = 1.6")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"dʋakraːt\"")
-	CODE1 (U"item [3]:")
-		CODE2 (U"class = \"TextTier\"")
-		CODE2 (U"name = \"bell\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"points: size = 2")
-		CODE2 (U"points [1]:")
-			CODE3 (U"number = 0.9")
-			CODE3 (U"mark = \"ding\"")
-		CODE2 (U"points [2]:")
-			CODE3 (U"number = 1.3")
-			CODE3 (U"mark = \"dong\"")
-NORMAL (U"We now see how points on a point tier are written: with their time ($number) and their text ($mark). "
-	"As usual, most of the contents of the file is comments; for instance, older TextGrid files may call "
-	"the time of the point $time instead of $number, but as these are just comments, Praat will ignore these words "
-	"when reading the file, and so should anybody who programs a TextGrid file parser.")
-NORMAL (U"A thing to note is the doubling of double quotes. The sentence in tier 1 contains double quotes around %ahoj, "
-	"as you can see in the picture above, and you typed only these two double quotes in the TextGrid window to start with. "
-	"However, the file format uses double quotes to mark texts, so if a text itself contains a double quote, "
-	"something special has to be done about it lest Praat think that you're ending the text. The solution that Praat chooses "
-	"is that a double quote that appears in a text is written as a %doubled double quote in the text file, as above on tier 1.")
-ENTRY (U"6. Restrictions in a TextGrid object")
-NORMAL (U"TextGrid object maintain several invariants, some stronger and some weaker.")
-NORMAL (U"The two strongest invariants within an interval tier are %%positive duration% and %adjacency. "
-	"That is, the end time of each interval has to be greater than the starting time of that same interval, "
-	"and the starting time of each interval (except the first) has to be equal to the end time of the previous interval. "
-	"As a result, the union of the time domains of the set of intervals in a tier is a contiguous stretch of time, "
-	"and no intervals overlap. If a TextGrid file violates these invariants, Praat may refuse to read the file and give "
-	"an error message instead (or Praat may try to repair the TextGrid, but that is not guaranteed).")
-NORMAL (U"A weaker invariant is that the starting time of the first interval on a tier equals the starting time of that tier, "
-	"and the end time of the last interval equals the end time of the tier. When you create a TextGrid with Praat, "
-	"this invariant is automatically maintained, and most types of modifications also maintain it, except sometimes the commands "
-	"that combine multiple TextGrid objects with different durations into a new TextGrid. "
-	"Praat will happily read TextGrid files that do not honour this weak invariant, and will also display such a TextGrid "
-	"reasonably well in a TextGrid window. It is nevertheless advisable for other programs that create TextGrids "
-	"to honour this weak invariant.")
-NORMAL (U"For a point tier, a strong invariant is that the time of each point (except the first) has to be greater than the time "
-	"of the previous point. Praat maintains this invariant for instance by refusing to insert a point at a time of an existing "
-	"point. TextGrid files that violate this invariant may or may not be read by Praat, and may cause strange behviour in Praat "
-	"if they are read.")
-NORMAL (U"A further weak invariant is that the starting and end times of each tier equal the starting and end times of the whole "
-	"TextGrid. This can be violated by combining multiple TextGrids into one, but other programs are advised to create TextGrids "
-	"that honour this invariant, because TextGrids that violate it may look strange to the user.")
-ENTRY (U"7. Text encoding")
-NORMAL (U"Existing TextGrid text files come in various encoding. When creating a parser for TextGrid text files, "
-	"you should be prepared for reading it in UTF-8 encoding (without Byte Order Mark), or in UTF-16 encoding "
-	"(either Big-Endian or Little-Endian, with Byte Order Mark). Pre-Unicode TextGrid text files may have a Latin-1 encoding "
-	"if they were created on Windows or Linux, or a MacRoman encoding if they were created on a Mac, "
-	"so it would be good to prepare for such old files as well, although it may be difficult to figure out which is which "
-	"(line separators, as described below, may help).")
-NORMAL (U"When writing a TextGrid text file, you can use UTF-8 encoding (without Byte Order Mark), or UTF-16 encoding "
-	"(either Big-Endian or Little-Endian, with Byte Order Mark). "
-	"Please never write a limited encoding such as Latin-1 or MacRoman.")
-NORMAL (U"The lines in the file are typically separated by a newline symbol (Linux or modern Mac), "
-	"or by a Return symbol (old Mac), or by a Return symbol followed by a newline symbol (Windows). "
-	"When reading a TextGrid text file, you should be prepared for each of these line separators. "
-	"When writing a TextGrid text file, you can use any of these line separators, because most text editors "
-	"on all platforms can meanwhile open and view all these versions correctly.")
-ENTRY (U"8. Interpreting trigraphs")
-NORMAL (U"The example above contains several phonetic symbols, and it is not always easy to type those into a text field. "
-	"For this reason, Praat provides %trigraphs for most phonetic characters, as well as for many non-ASCII characters "
-	"used in the languages of the world. For instance, the vowel \"ɔ\" (a \"turned c\") can be typed as \"\\bsct\" into "
-	"the TextGrid window as well as anywhere else in Praat where you want to draw graphical text "
-	"(see @@Special symbols@ for all trigraphs). Thus, the file above could have looked as follows:")
-CODE (U"File type = \"ooTextFile\"")
-CODE (U"Object class = \"TextGrid\"")
-CODE (U"")
-CODE (U"xmin = 0")
-CODE (U"xmax = 2.3")
-CODE (U"tiers? <exists>")
-CODE (U"size = 3")
-CODE (U"item []:")
-	CODE1 (U"item [1]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"sentence\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 1")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"\\bsr<\\bsi'kej \"\"ahoj\"\" dvakr\\bsa't\"")
-	CODE1 (U"item [2]:")
-		CODE2 (U"class = \"IntervalTier\"")
-		CODE2 (U"name = \"phonemes\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"intervals: size = 3")
-		CODE2 (U"intervals [1]:")
-			CODE3 (U"xmin = 0")
-			CODE3 (U"xmax = 0.7")
-			CODE3 (U"text = \"r\\bsT^i\\bs:fk\\bsefj\"")
-		CODE2 (U"intervals [2]:")
-			CODE3 (U"xmin = 0.7")
-			CODE3 (U"xmax = 1.6")
-			CODE3 (U"text = \"\\bs?ga\\bsh\\^ \\bsctj\"")
-		CODE2 (U"intervals [3]:")
-			CODE3 (U"xmin = 1.6")
-			CODE3 (U"xmax = 2.3")
-			CODE3 (U"text = \"d\\bsvsakra\\bs:ft\"")
-	CODE1 (U"item [3]:")
-		CODE2 (U"class = \"TextTier\"")
-		CODE2 (U"name = \"bell\"")
-		CODE2 (U"xmin = 0")
-		CODE2 (U"xmax = 2.3")
-		CODE2 (U"points: size = 2")
-		CODE2 (U"points [1]:")
-			CODE3 (U"number = 0.9")
-			CODE3 (U"mark = \"ding\"")
-		CODE2 (U"points [2]:")
-			CODE3 (U"number = 1.3")
-			CODE3 (U"mark = \"dong\"")
-NORMAL (U"On the screen, this TextGrid looks the same as before:")
-SCRIPT (6.0, 3.0, U""
-	"textgrid = Create TextGrid: 0, 2.3, \"sentence phonemes bell\", \"bell\"\n"
-	"Set interval text: 1, 1, \"\\r<\\i'kej \"\"ahoj\"\" dvakr\\a't\"\n"
-	"Insert boundary: 2, 0.7\n"
-	"Insert boundary: 2, 1.6\n"
-	"Set interval text: 2, 1, \"r\\T^i\\:fk\\efj\"\n"
-	"Set interval text: 2, 2, \"\\?ga\\h^\\ctj\"\n"
-	"Set interval text: 2, 3, \"d\\vsakra\\:ft\"\n"
-	"Insert point: 3, 0.9, \"ding\"\n"
-	"Insert point: 3, 1.3, \"dong\"\n"
-	"Draw: 0.0, 0.0, 1, 1, 1\n")
-NORMAL (U"There are several hundreds of such trigraphs, and a few more might be added in the future. "
-	"When you create a TextGrid file parser and want to interpret the trigraphs in the correct way, "
-	"it is advisable to have Praat do the conversion for you: read the TextGrid file into Praat, "
-	"call the menu command ##Convert to Unicode#, and save the TextGrid as a new text file.")
-ENTRY (U"9. The binary TextGrid file format")
-NORMAL (U"Besides the TextGrid text file format described above, TextGrid objects can also be saved as binary files "
-	"with @@Save as binary file... at . If you need a description of this format, we can add it here on request. "
-	"When you want to create only a TextGrid %text file parser, and still want to support binary TextGrid files, "
-	"you can have Praat do the conversion for you: read the binary TextGrid file into Praat with @@Read from file...@ "
-	"and save the resulting TextGrid object as a text file with @@Save as text file... at .")
-MAN_END
-
-MAN_BEGIN (U"Programming with Praat", U"ppgb", 20151028)
+MAN_BEGIN (U"Programming with Praat", U"ppgb", 20150713)
 INTRO (U"You can extend the functionality of the Praat program "
 	"by adding modules written in C or C++ to it. All of Praat's source code "
 	"is available under the General Public Licence.")
@@ -398,16 +33,26 @@ NORMAL (U"Before trying the task of learning how to write Praat extensions in C
 	"lives as Praat scripts, and scripts are easier to write than extensions in C or C++. "
 	"If you have a set of scripts, you can distribute them as a @@plug-ins|plug-in at .")
 ENTRY (U"2. Getting the existing source code")
-NORMAL (U"You obtain the Praat source code from GitHub (https://github.com/praat), in a file with a name like "
-	"##praat5423_sources.zip# or ##praat5423_sources.tar.gz# (depending on the Praat version), and unpack this by double-clicking. "
+NORMAL (U"You obtain the Praat source code via ##www.praat.org#, in a file with a name like "
+	"##praat5347_sources.zip# or ##praat5347_sources.tar.gz# (depending on the Praat version), and unpack this by double-clicking. "
 	"The result will be a set of directories "
 	"called #kar, #num, #external (with #GSL, #glpk, #FLAC, #mp3, #portaudio and #espeak in it), "
-	"#sys, #dwsys, #stat, #fon, #dwtools, #LPC, #FFNet, #gram, #artsynth, #EEG, #contrib, #main, #makefiles, #test, and #dwtest, "
-	"plus a makefile and an Xcode project for MacOS X.")
-ENTRY (U"3. Building Praat")
-NORMAL (U"Consult the README file on GitHub for directions to compile and link Praat for your platform.")
-ENTRY (U"4. Extending Praat")
-NORMAL (U"To start extending Praat’s functionality, you can edit ##main/main_Praat.cpp#. "
+	"#sys, #dwsys, #stat, #fon, #dwtools, #LPC, #FFNet, #gram, #artsynth, #EEG, #contrib, #main, #makefiles, and #test, "
+	"plus a makefile and an Xcode project for Macintosh.")
+ENTRY (U"3. Building Praat on Macintosh")
+NORMAL (U"Open ##praat.xcodeproj# in Xcode and choose #Build and #Run. For more details see the download page.")
+ENTRY (U"4. Building Praat on Windows")
+NORMAL (U"Praat for Windows is compiled with MinGW. See the download page for instructions.")
+ENTRY (U"5. Building Praat on Linux")
+NORMAL (U"To compile and link Praat on Linux, you go to the directory that "
+	"contains the source directories and the makefile, and copy a ##makefile.defs# "
+	"file from the #makefiles directory:")
+CODE (U"> cp makefiles/makefile.defs.linux ./makefile.defs")
+NORMAL (U"You have to have installed ##libgtk2.0-dev# (and its dependencies) and ##libasound2-dev#.")
+NORMAL (U"On other Unixes, you do the same, but the file ##makefile.defs# may require some editing after this, "
+	"because Silicon Graphics Irix, Sparc Solaris and HPUX may use different libraries or have them in different locations than Linux.")
+ENTRY (U"6. Extending Praat")
+NORMAL (U"You can edit ##main/main_Praat.cpp#. "
 	"This example shows you how to create a very simple program with all the functionality "
 	"of the Praat program, and a single bit more (namely an additional command in the New menu):")
 CODE (U"\\# include \"praat.h\"")
@@ -419,17 +64,17 @@ CODE (U"")
 CODE (U"int main (int argc, char **argv) {")
 CODE1 (U"praat_init (U\"Praat_Jane\", argc, argv);")
 CODE1 (U"INCLUDE_LIBRARY (praat_uvafon_init)")
-CODE1 (U"praat_addMenuCommand (U\"Objects\", U\"New\", U\"Hello from Jane...\", nullptr, 0, DO_HelloFromJane);")
+CODE1 (U"praat_addMenuCommand (U\"Objects\", U\"New\", U\"Hello from Jane...\", NULL, 0, DO_HelloFromJane);")
 CODE1 (U"praat_run ();")
 CODE1 (U"return 0;")
 CODE (U"}")
-ENTRY (U"5. Learning how to program")
-NORMAL (U"To see how objects are defined, take a look at ##sys/Thing.h#, ##sys/Daata.h#, "
+ENTRY (U"7. Learning how to program")
+NORMAL (U"To see how objects are defined, take a look at ##sys/Thing.h#, ##sys/Data.h#, "
 	"##sys/oo.h#, the ##XXX_def.h# files in the #fon directory, and the corresponding "
 	"##XXX.cpp# files in the #fon directory. To see how commands show up on the buttons "
 	"in the fixed and dynamic menus, take a look at the large interface description file "
 	"##fon/praat_Fon.cpp#.")
-ENTRY (U"6. Using the Praat shell only")
+ENTRY (U"8. Using the Praat shell only")
 NORMAL (U"For building the Praat shell (the Objects and Picture windows) only, you need only the code in the eight directories "
 	"#kar, #GSL, #num, ##external/{FLAC,MP3,portaudio}#, #sys, and #dwsys. You delete the inclusion of praat_uvafon_init from #main. "
 	"You will be able to build a Praat shell, i.e. an Objects and a Picture window, "
diff --git a/fon/manual_sound.cpp b/fon/manual_sound.cpp
index 492d1eb..af6705a 100644
--- a/fon/manual_sound.cpp
+++ b/fon/manual_sound.cpp
@@ -22,58 +22,56 @@
 #include "Sound.h"
 
 static void draw_SoundDeepen_filter (Graphics g) {
-	try {
-		autoSound s = Sound_createSimple (1, 100.0, 10.0);
-		double alpha = sqrt (log (2.0));
-		Graphics_setWindow (g, 0.0, 100.0, 0.0, 1.0);
-		for (int i = 1; i <= s -> nx; i ++) {
-			double alpha_f = alpha * (s -> x1 + (i - 1) * s -> dx);
-			double slow = alpha_f / 3.0, fast = alpha_f / 30.0;
-			s -> z [1] [i] = exp (- fast * fast) - exp (- slow * slow);
-		}
-		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Frequency %f (Hz)");
-		Graphics_textLeft (g, true, U"Amplitude filter %H (%f)");
-		Graphics_markLeft (g, 0.0, true, true, false, nullptr);
-		Graphics_markLeft (g, 0.5, true, true, true, nullptr);
-		Graphics_markLeft (g, 1.0, true, true, false, nullptr);
-		Graphics_markRight (g, 1.0, false, true, false, U"0 dB");
-		Graphics_markRight (g, 0.5, false, true, false, U"-6 dB");
-		Graphics_markBottom (g, 0.0, true, true, false, nullptr);
-		Graphics_markBottom (g, 3.0, true, true, true, nullptr);
-		Graphics_markBottom (g, 30.0, true, true, true, nullptr);
-		Graphics_markBottom (g, 100.0, true, true, false, nullptr);
-		Graphics_setColour (g, Graphics_RED);
-		Sound_draw (s.get(), g, 0.0, 0.0, 0.0, 1.0, false, U"curve");
-		Graphics_setColour (g, Graphics_BLACK);
-	} catch (MelderError) {
-		Melder_clearError ();
+	Sound s = Sound_createSimple (1, 100, 10);
+	int i;
+	double alpha = sqrt (log (2.0));
+	if (! s) return;
+	Graphics_setWindow (g, 0, 100, 0, 1);
+	for (i = 1; i <= s -> nx; i ++) {
+		double alpha_f = alpha * (s -> x1 + (i - 1) * s -> dx);
+		double slow = alpha_f / 3.0, fast = alpha_f / 30.0;
+		s -> z [1] [i] = exp (- fast * fast) - exp (- slow * slow);
 	}
+	Graphics_drawInnerBox (g);
+	Graphics_textBottom (g, TRUE, U"Frequency %f (Hz)");
+	Graphics_textLeft (g, TRUE, U"Amplitude filter %H (%f)");
+	Graphics_markLeft (g, 0, TRUE, TRUE, FALSE, NULL);
+	Graphics_markLeft (g, 0.5, TRUE, TRUE, TRUE, NULL);
+	Graphics_markLeft (g, 1, TRUE, TRUE, FALSE, NULL);
+	Graphics_markRight (g, 1, FALSE, TRUE, FALSE, U"0 dB");
+	Graphics_markRight (g, 0.5, FALSE, TRUE, FALSE, U"-6 dB");
+	Graphics_markBottom (g, 0, TRUE, TRUE, FALSE, NULL);
+	Graphics_markBottom (g, 3, TRUE, TRUE, TRUE, NULL);
+	Graphics_markBottom (g, 30, TRUE, TRUE, TRUE, NULL);
+	Graphics_markBottom (g, 100, TRUE, TRUE, FALSE, NULL);
+	Graphics_setColour (g, Graphics_RED);
+	Sound_draw (s, g, 0, 0, 0, 1, FALSE, U"curve");
+	Graphics_setColour (g, Graphics_BLACK);
+	forget (s);
 }
 
 static void draw_SoundDeepen_impulse (Graphics g) {
-	try {
-		autoSound s = Sound_create (1, -0.2, 0.2, 1000, 4e-4, -0.1998);
-		double pibyalpha = NUMpi / sqrt (log (2.0)), twosqrtpitimespibyalpha = 2 * sqrt (NUMpi) * pibyalpha;
-		Graphics_setWindow (g, -0.2, 0.2, -100.0, 400.0);
-		for (int i = 1; i <= s -> nx; i ++) {
-			double pibyalpha_f = pibyalpha * (s -> x1 + (i - 1) * s -> dx);
-			double slow = pibyalpha_f * 3.0, fast = pibyalpha_f * 30.0;
-			s -> z [1] [i] = twosqrtpitimespibyalpha * (30.0 * exp (- fast * fast) - 3.0 * exp (- slow * slow));
-		}
-		Graphics_drawInnerBox (g);
-		Graphics_textBottom (g, true, U"Time %t (s)");
-		Graphics_textLeft (g, true, U"Intensity impulse reponse %h (%t)");
-		Graphics_markBottom (g, -0.2, true, true, false, nullptr);
-		Graphics_markBottom (g, 0, true, true, true, nullptr);
-		Graphics_markBottom (g, 0.2, true, true, false, nullptr);
-		Graphics_markLeft (g, 0, true, true, true, nullptr);
-		Graphics_setColour (g, Graphics_RED);
-		Sound_draw (s.get(), g, 0.0, 0.0, -100.0, 400.0, false, U"curve");
-		Graphics_setColour (g, Graphics_BLACK);
-	} catch (MelderError) {
-		Melder_clearError ();
+	Sound s = Sound_create (1, -0.2, 0.2, 1000, 4e-4, -0.1998);
+	int i;
+	double pibyalpha = NUMpi / sqrt (log (2.0)), twosqrtpitimespibyalpha = 2 * sqrt (NUMpi) * pibyalpha;
+	if (! s) return;
+	Graphics_setWindow (g, -0.2, 0.2, -100, 400);
+	for (i = 1; i <= s -> nx; i ++) {
+		double pibyalpha_f = pibyalpha * (s -> x1 + (i - 1) * s -> dx);
+		double slow = pibyalpha_f * 3.0, fast = pibyalpha_f * 30.0;
+		s -> z [1] [i] = twosqrtpitimespibyalpha * (30.0 * exp (- fast * fast) - 3.0 * exp (- slow * slow));
 	}
+	Graphics_drawInnerBox (g);
+	Graphics_textBottom (g, TRUE, U"Time %t (s)");
+	Graphics_textLeft (g, TRUE, U"Intensity impulse reponse %h (%t)");
+	Graphics_markBottom (g, -0.2, TRUE, TRUE, FALSE, NULL);
+	Graphics_markBottom (g, 0, TRUE, TRUE, TRUE, NULL);
+	Graphics_markBottom (g, 0.2, TRUE, TRUE, FALSE, NULL);
+	Graphics_markLeft (g, 0, TRUE, TRUE, TRUE, NULL);
+	Graphics_setColour (g, Graphics_RED);
+	Sound_draw (s, g, 0, 0, -100, 400, FALSE, U"curve");
+	Graphics_setColour (g, Graphics_BLACK);
+	forget (s);
 }
 
 void manual_sound_init (ManPages me);
diff --git a/fon/manual_soundFiles.cpp b/fon/manual_soundFiles.cpp
index 186fa02..f4c92f6 100644
--- a/fon/manual_soundFiles.cpp
+++ b/fon/manual_soundFiles.cpp
@@ -331,7 +331,7 @@ NORMAL (U"The format of the original sound files may be 16-bit linear "
 	"(with big-endian or little-endian byte order), 8-bit linear (signed or unsigned), "
 	"8-bit μ-law, or 8-bit A-law. The format of the resulting sound file is always "
 	"16-bit linear, with an appropriate default byte order. The following commands "
-	"are available in the @@Save menu@ if you select any combination of @LongSound "
+	"are available in the @@Save menu@ of you select any combination of @LongSound "
 	"and/or @Sound objects:")
 LIST_ITEM (U"• @@Save as WAV file...@ (little-endian)")
 LIST_ITEM (U"• @@Save as AIFF file...@ (big-endian)")
diff --git a/fon/manual_spectrum.cpp b/fon/manual_spectrum.cpp
index 948b1cc..f08a861 100644
--- a/fon/manual_spectrum.cpp
+++ b/fon/manual_spectrum.cpp
@@ -21,66 +21,65 @@
 
 #include "Sound.h"
 
-static void draw_SpectrumHann (Graphics g, double f1, double f2, bool stop, int garnish) {
-	try {
-		double fmin = garnish == 1 ? 300 : 0, fmax = garnish == 1 ? 1300 : 4000, df = garnish == 1 ? 1 : 4;
-		autoSound me = Sound_create (1, fmin, fmax, (long) floor ((fmax - fmin) / df) + 1, df, fmin);
-		double w = 100, f1left = f1 - w, f1right = f1 + w, f2left = f2 - w, f2right = f2 + w, halfpibysmooth = NUMpi / (w + w);
-		Graphics_setWindow (g, fmin, fmax, -0.1, 1.1);
-		for (int i = 1; i <= my nx; i ++) {
-			double f = my x1 + (i - 1) * my dx;
-			my z [1] [i] = f < f1left ? 0.0 : f < f1right ? ( f1 > 0.0 ? 0.5 - 0.5 * cos (halfpibysmooth * (f - f1left)) : 1.0 ) :
-				f < f2left ? 1.0 : f < f2right ? ( f2 < fmax ? 0.5 + 0.5 * cos (halfpibysmooth * (f - f2left)) : 1.0 ) : 0.0;
-		}
-		if (stop)
-			for (int i = 1; i <= my nx; i ++)
-				my z [1] [i] = 1.0 - my z [1] [i];
-		if (garnish) {
-			Graphics_drawInnerBox (g);
-			Graphics_textLeft (g, true, U"Amplitude filter %H (%f)");
-			Graphics_markLeft (g, 0.0, true, true, false, nullptr);
-			Graphics_markLeft (g, 1.0, true, true, false, nullptr);
-		}
-		if (garnish == 1) {
-			Graphics_textBottom (g, true, U"Frequency %f");
-			Graphics_markBottom (g, f1left, false, true, true, U"%f__1_-%w");
-			Graphics_markBottom (g, f1, false, true, true, U"%f__1_");
-			Graphics_markBottom (g, f1right, false, true, true, U"%f__1_+%w");
-			Graphics_markBottom (g, f2left, false, true, true, U"%f__2_-%w");
-			Graphics_markBottom (g, f2, false, true, true, U"%f__2_");
-			Graphics_markBottom (g, f2right, false, true, true, U"%f__2_+%w");
-			Graphics_markRight (g, 1.0, false, true, false, U"0 dB");
-			Graphics_markLeft (g, 0.5, true, true, true, nullptr);
-			Graphics_markRight (g, 0.5, false, true, false, U"-6 dB");
-		}
-		if (garnish == 2) {
-			Graphics_textBottom (g, true, U"Frequency %f (Hz)");
-			Graphics_markBottom (g, 0.0, true, true, false, nullptr);
-			Graphics_markBottom (g, 500.0, true, true, false, nullptr);
-			Graphics_markBottom (g, 1000.0, true, true, false, nullptr);
-			Graphics_markBottom (g, 2000.0, true, true, false, nullptr);
-			Graphics_markBottom (g, 4000.0, true, true, false, nullptr);
-		}
-		Graphics_setColour (g, stop ? Graphics_BLUE : Graphics_RED);
-		Sound_draw (me.get(), g, 0.0, 0.0, -0.1, 1.1, false, U"curve");
-		Graphics_setColour (g, Graphics_BLACK);
-	} catch (MelderError) {
-		Melder_clearError ();
+static void draw_SpectrumHann (Graphics g, double f1, double f2, int stop, int garnish) {
+	double fmin = garnish == 1 ? 300 : 0, fmax = garnish == 1 ? 1300 : 4000, df = garnish == 1 ? 1 : 4;
+	Sound me = Sound_create (1, fmin, fmax, (long) floor ((fmax - fmin) / df) + 1, df, fmin);
+	double w = 100, f1left = f1 - w, f1right = f1 + w, f2left = f2 - w, f2right = f2 + w, halfpibysmooth = NUMpi / (w + w);
+	int i;
+	if (! me) return;
+	Graphics_setWindow (g, fmin, fmax, -0.1, 1.1);
+	for (i = 1; i <= my nx; i ++) {
+		double f = my x1 + (i - 1) * my dx;
+		my z [1] [i] = f < f1left ? 0.0 : f < f1right ? ( f1 > 0.0 ? 0.5 - 0.5 * cos (halfpibysmooth * (f - f1left)) : 1.0 ) :
+			f < f2left ? 1.0 : f < f2right ? ( f2 < fmax ? 0.5 + 0.5 * cos (halfpibysmooth * (f - f2left)) : 1.0 ) : 0.0;
 	}
+	if (stop)
+		for (i = 1; i <= my nx; i ++)
+			my z [1] [i] = 1.0 - my z [1] [i];
+	if (garnish) {
+		Graphics_drawInnerBox (g);
+		Graphics_textLeft (g, TRUE, U"Amplitude filter %H (%f)");
+		Graphics_markLeft (g, 0, TRUE, TRUE, FALSE, NULL);
+		Graphics_markLeft (g, 1, TRUE, TRUE, FALSE, NULL);
+	}
+	if (garnish == 1) {
+		Graphics_textBottom (g, TRUE, U"Frequency %f");
+		Graphics_markBottom (g, f1left, FALSE, TRUE, TRUE, U"%f__1_-%w");
+		Graphics_markBottom (g, f1, FALSE, TRUE, TRUE, U"%f__1_");
+		Graphics_markBottom (g, f1right, FALSE, TRUE, TRUE, U"%f__1_+%w");
+		Graphics_markBottom (g, f2left, FALSE, TRUE, TRUE, U"%f__2_-%w");
+		Graphics_markBottom (g, f2, FALSE, TRUE, TRUE, U"%f__2_");
+		Graphics_markBottom (g, f2right, FALSE, TRUE, TRUE, U"%f__2_+%w");
+		Graphics_markRight (g, 1, FALSE, TRUE, FALSE, U"0 dB");
+		Graphics_markLeft (g, 0.5, TRUE, TRUE, TRUE, NULL);
+		Graphics_markRight (g, 0.5, FALSE, TRUE, FALSE, U"-6 dB");
+	}
+	if (garnish == 2) {
+		Graphics_textBottom (g, TRUE, U"Frequency %f (Hz)");
+		Graphics_markBottom (g, 0, TRUE, TRUE, FALSE, NULL);
+		Graphics_markBottom (g, 500, TRUE, TRUE, FALSE, NULL);
+		Graphics_markBottom (g, 1000, TRUE, TRUE, FALSE, NULL);
+		Graphics_markBottom (g, 2000, TRUE, TRUE, FALSE, NULL);
+		Graphics_markBottom (g, 4000, TRUE, TRUE, FALSE, NULL);
+	}
+	Graphics_setColour (g, stop ? Graphics_BLUE : Graphics_RED);
+	Sound_draw (me, g, 0, 0, -0.1, 1.1, FALSE, U"curve");
+	Graphics_setColour (g, Graphics_BLACK);
+	forget (me);
 }
 static void draw_SpectrumPassHann (Graphics g) {
-	draw_SpectrumHann (g, 500.0, 1000.0, false, 1);
+	draw_SpectrumHann (g, 500, 1000, 0, 1);
 }
 static void draw_SpectrumPassHann_decompose (Graphics g) {
-	draw_SpectrumHann (g, 0.0, 500.0, false, 2);
-	draw_SpectrumHann (g, 500, 1000, false, 0);
-	draw_SpectrumHann (g, 1000, 2000, false, 0);
-	draw_SpectrumHann (g, 2000, 4000, false, 0);
+	draw_SpectrumHann (g, 0, 500, 0, 2);
+	draw_SpectrumHann (g, 500, 1000, 0, 0);
+	draw_SpectrumHann (g, 1000, 2000, 0, 0);
+	draw_SpectrumHann (g, 2000, 4000, 0, 0);
 }
 static void draw_SpectrumStopHann (Graphics g) { draw_SpectrumHann (g, 500, 1000, 1, 1); }
 static void draw_SpectrumStopHann_decompose (Graphics g) {
-	draw_SpectrumHann (g, 500.0, 1000.0, false, 2);
-	draw_SpectrumHann (g, 500.0, 1000.0, true, 0);
+	draw_SpectrumHann (g, 500, 1000, 0, 2);
+	draw_SpectrumHann (g, 500, 1000, 1, 0);
 }
 
 void manual_spectrum_init (ManPages me);
diff --git a/fon/manual_tutorials.cpp b/fon/manual_tutorials.cpp
index 16f6716..fe628b6 100644
--- a/fon/manual_tutorials.cpp
+++ b/fon/manual_tutorials.cpp
@@ -1,6 +1,6 @@
 /* manual_tutorials.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,93 +23,15 @@
 void manual_tutorials_init (ManPages me);
 void manual_tutorials_init (ManPages me) {
 
-MAN_BEGIN (U"What's new?", U"ppgb", 20160421)
+MAN_BEGIN (U"What's new?", U"ppgb", 20150907)
 INTRO (U"Latest changes in Praat.")
-//LIST_ITEM (U"• Manual page about @@drawing a vowel triangle at .")
-
-NORMAL (U"##6.0.17# (21 April 2016)")
-LIST_ITEM (U"• TextGrid window: better automatic alignment.")
-NORMAL (U"##6.0.16# (5 April 2016)")
-LIST_ITEM (U"• Scripting: \"hashes\": variables can now be indexed with strings rather than only with numbers.")
-LIST_ITEM (U"• TextGrid window: fewer out-of-order messages in automatic alignment.")
-NORMAL (U"##6.0.15# (21 March 2016)")
-LIST_ITEM (U"• TextGrid window: removed a bug whereby Praat could do automatic alignment only on sounds sampled at 44.1 kHz.")
-LIST_ITEM (U"• TextGrid window: improved the location of the final boundary in automatic alignment.")
-LIST_ITEM (U"• Table window: added a preference for the interpretation of graphical style symbols (\\% \\# \\^ \\_ \\@ ).")
-NORMAL (U"##6.0.14# (11 February 2016)")
-LIST_ITEM (U"• Linux: corrected a bug by which the Tab short-cut for playing a sound would not work if the NumLock key was on.")
-LIST_ITEM (U"• Mac 64-bit: corrected a bug that could cause Praat to crash if the Tab key was pressed in a dialog window.")
-NORMAL (U"##6.0.13# (31 January 2016)")
-LIST_ITEM (U"• Windows: corrected a bug that could cause Praat to crash when closing a script window.")
-LIST_ITEM (U"• Mac 64-bit: progress bars with movies.")
-NORMAL (U"##6.0.12# (24 January 2016)")
-LIST_ITEM (U"• Windows 32-bit: corrected a bug that could cause Praat to crash when closing the Sound window after popping up dialog boxes.")
-LIST_ITEM (U"• Mac 64-bit: better $$demoShow()$.")
-LIST_ITEM (U"• Mac 64-bit: working Matrix movies and articulatory synthesizer movies.")
-NORMAL (U"##6.0.11# (18 January 2016)")
-LIST_ITEM (U"• Corrected a bug that could cause Praat to crash when drawing a Spectrum with undefined values.")
-LIST_ITEM (U"• Mac 64-bit: corrected a bug by which some text in the Sound window would sometimes not be drawn.")
-LIST_ITEM (U"• Mac 64-bit demo window: improved the working of $$demoShow()$.")
-NORMAL (U"##6.0.10# (8 January 2016)")
-LIST_ITEM (U"• Corrected a bug that would cause Praat to crash when starting an ExperimentMFC window.")
-LIST_ITEM (U"• Mac 64-bit: corrected a bug that would cause black selections in the Sound window.")
-NORMAL (U"##6.0.09# (1 January 2016)")
-LIST_ITEM (U"• Windows 64-bit: corrected a bug that could cause Praat to crash when closing the Sound window after popping up dialog boxes.")
-NORMAL (U"##6.0.08# (5 December 2015)")
-LIST_ITEM (U"• Windows command line: the $$--a$ option can be used when redirecting the output to pipes and files.")
-LIST_ITEM (U"• Linux command line: the $$--run$ option is not needed in the Terminal when redirecting output "
-	"(unless you redirect standard output, standard input %and standard error).")
-NORMAL (U"##6.0.07# (30 November 2015)")
-LIST_ITEM (U"• Mac 64-bit: repaired dragging selections (which got broken in the El Capitan fix in 6.0.06).")
-NORMAL (U"##6.0.06# (29 November 2015)")
-LIST_ITEM (U"• Mac 64-bit: correct early Info window updates and $$demoShow()$ in El Capitan.")
-LIST_ITEM (U"• Manual updates.")
-LIST_ITEM (U"• Corrected some small memory leaks.")
-NORMAL (U"##6.0.05# (8 November 2015)")
-LIST_ITEM (U"• A manual page that describes @@TextGrid file formats at .")
-LIST_ITEM (U"• Corrected a bug that prevented some KlattGrid tiers from being edited.")
-LIST_ITEM (U"• 32-bit Linux: correct use of PulseAudio (note: 6.0.04 on Debian already had this correct).")
-NORMAL (U"##6.0.04# (1 November 2015)")
-LIST_ITEM (U"• Corrected a bug that caused an incorrect number in FFNet files; "
-	"unreadable FFNet files can be sent to the Praat authors for repair.")
-NORMAL (U"##6.0.03# (31 October 2015)")
-LIST_ITEM (U"• Corrected a bug that caused Praat to crash when the Soundrecorder window was closed.")
-LIST_ITEM (U"• Scripting: when calling Praat from the command line, added the $$--run$ option to force script execution.")
-NORMAL (U"##6.0.02# (30 October 2015)")
-LIST_ITEM (U"• Corrected the redrawing of analyses in the Sound window after a change in the sound.")
-NORMAL (U"##6.0.01# (29 October 2015)")
-LIST_ITEM (U"• Windows: fixed a bug that caused Praat to crash at start-up in some Windows versions.")
-NORMAL (U"##6.0# (28 October 2015)")
-LIST_ITEM (U"• Linux: use PulseAudio as the server for playing sound.")
-LIST_ITEM (U"• Windows: removed Praatcon.exe, because Praat.exe can now be used from the command line.")
-LIST_ITEM (U"• Praat can now open files from the command line on all platforms.")
-LIST_ITEM (U"• The API change that requires raising the major Praat version to 6: "
-	"no longer any need for Praatcon.exe, because Praat itself can now run a script from the command line on all platforms.")
-LIST_ITEM (U"• See @@Scripting 6.9. Calling from the command line@ for all command line options.")
-LIST_ITEM (U"• SpeechSynthesizer: corrected a potentially crashing bug.")
-LIST_ITEM (U"• Mac Retina graphics: made function drawing (e.g. in the TextGrid window) twice as fast.")
-LIST_ITEM (U"• LongSound: corrected playing of more than 2 channels.")
-NORMAL (U"##5.4.22# (8 October 2015)")
-LIST_ITEM (U"• Sound files: added support for MP3 files with ID3 version 2 headers.")
-LIST_ITEM (U"• Table: Line graph where: removed a bug that caused nothing to be drawn if the number of columns was larger than the number of rows and "
-	"the column index was larger than the number of rows.")
-LIST_ITEM (U"• Mac: corrected horizontal spacing in graphical text on El Capitán.")
-LIST_ITEM (U"• Mac: corrected a bug that would cause Praat to crash if a PNG file could not be saved (from a script).")
-LIST_ITEM (U"• Windows: enabled PNG saving from Praatcon.")
-NORMAL (U"##5.4.21# (29 September 2015)")
-LIST_ITEM (U"• Corrected a bug introduced in 5.4.20 that could cause the Sound window to crash.")
-LIST_ITEM (U"• Repaired a very old hang with pulses in the Sound window.")
-NORMAL (U"##5.4.20# (26 September 2015)")
-LIST_ITEM (U"• Corrected the graphical representation of numbers with exponents (wrong since 5.4.10).")
-LIST_ITEM (U"• Windows: prevented flashing console window in $$runScript()$.")
-NORMAL (U"##5.4.19# (16 September 2015)")
-LIST_ITEM (U"• LongSound: corrected saving of 8-bit files as 16-bit.")
+/*LIST_ITEM (U"• Manual page about @@drawing a vowel triangle at .")*/
 NORMAL (U"##5.4.18# (7 September 2015)")
 LIST_ITEM (U"• Regular expressions: if the pattern is illegal, you'll now get an error message instead of an empty string.")
 LIST_ITEM (U"• LongSound: removed a bug introduced in 1999 that could play long stereo sounds much too fast if they had unusual sampling frequencies. "
 	"This bug has become more noticeable on the Mac since January 2015.")
-LIST_ITEM (U"• Guard better against sound files that contain 0 samples.")
-LIST_ITEM (U"• Scripting: faster look-up of variables.")
+LIST_ITEM (U"Guard better against sound files that contain 0 samples.")
+LIST_ITEM (U"Scripting: faster look-up of variables.")
 NORMAL (U"##5.4.17# (20 August 2015)")
 LIST_ITEM (U"• Scripting: removed a bug that could cause Praat to crash when calling $$writeFile()$ with an empty text.")
 NORMAL (U"##5.4.16# (16 August 2015)")
@@ -574,7 +496,7 @@ LIST_ITEM (U"• Scripting: support for arrays with multiple indexes.")
 LIST_ITEM (U"• Linux: made spectrogram drawing compatible with Ubuntu 10.10.")
 LIST_ITEM (U"• Linux: made sound more easily available on Ubuntu 10.10.")
 NORMAL (U"##5.2.01# (4 November 2010)")
-LIST_ITEM (U"• Scripting: support for numeric @@Scripting 5.6. Arrays and dictionaries|arrays at .")
+LIST_ITEM (U"• Scripting: support for numeric @@Scripting 5.6. Arrays|arrays at .")
 MAN_END
 
 MAN_BEGIN (U"What was new in 5.2?", U"ppgb", 20101029)
@@ -1805,9 +1727,13 @@ ENTRY (U"To do")
 	LIST_ITEM (U"• Phoneme-to-articulation conversion??") // Mirjam Ernestus, Jul 1 1996
 ENTRY (U"Known bugs in the Windows version")
 	LIST_ITEM (U"• Cannot stand infinitesimal zooming in SpectrogramEditor.")
+	LIST_ITEM (U"• Clipboards with greys sometimes become black-and-white after use of colour.")
+ENTRY (U"Known bugs in the Linux version")
+	LIST_ITEM (U"• Sounds shorter than 200 ms do not always play (workaround: add zeroes in prefs).")
+	LIST_ITEM (U"• Keyboard shortcuts do not work if NumLock is on.")
 */
  
-MAN_BEGIN (U"Acknowledgments", U"ppgb", 20151103)
+MAN_BEGIN (U"Acknowledgments", U"ppgb", 20150828)
 NORMAL (U"The following people contributed source code to Praat:")
 LIST_ITEM (U"Paul Boersma: user interface, graphics, @printing, @@Intro|sound@, "
 	"@@Intro 3. Spectral analysis|spectral analysis@, @@Intro 4. Pitch analysis|pitch analysis@, "
@@ -1834,7 +1760,7 @@ LIST_ITEM (U"PortAudio: Portable Audio Library by Ross Bencina, Phil Burk, Bjorn
 LIST_ITEM (U"Espeak: text-to-speech synthesizer by Jonathan Duddington (GPL).")
 LIST_ITEM (U"MAD: MPEG Audio Decoder by Underbit Technologies (GPL).")
 LIST_ITEM (U"FLAC: Free Lossless Audio Codec by Josh Coalson.")
-LIST_ITEM (U"fftpack: public domain Fourier transforms by Paul Swarztrauber and Christopher Montgomery.")
+LIST_ITEM (U"fftpack: public domain Fourier transforms by Paul Swarztrauber and Monty.")
 LIST_ITEM (U"LAPACK: public domain numeric algorithms by Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., "
 	"Courant Institute, Argonne National Lab, and Rice University.")
 LIST_ITEM (U"Regular expressions by Henry Spencer, Mark Edel, Christopher Conrad, Eddy De Greef (GPL).")
@@ -1860,10 +1786,8 @@ LIST_ITEM (U"Cornell Phonetics Lab, Ithaca NY.")
 NORMAL (U"Finally we thank:")
 LIST_ITEM (U"Ton Wempe and Dirk Jan Vet, for technical support and advice.")
 LIST_ITEM (U"Daniel Hirst, for managing the Praat Discussion list.")
-LIST_ITEM (U"Rafael Laboissière and Andreas Tille, for maintaining the Debian package.")
-LIST_ITEM (U"Jason Bacon, for maintaining the FreeBSD port.")
 LIST_ITEM (U"José Joaquín Atria and Ingmar Steiner, for setting up the source-code repository on GitHub.")
-LIST_ITEM (U"Hundreds of Praat users, for sending suggestions and notifying us of problems and thus helping us to improve Praat.")
+LIST_ITEM (U"Hundreds of Praat users, for notifying us of problems and thus helping us to improve Praat.")
 MAN_END
 
 MAN_BEGIN (U"Praat menu", U"ppgb", 20050822)
diff --git a/fon/praat_Exp.cpp b/fon/praat_Exp.cpp
index 4cd58f3..dba9b07 100644
--- a/fon/praat_Exp.cpp
+++ b/fon/praat_Exp.cpp
@@ -42,41 +42,29 @@ END2 }
 
 DIRECT2 (ExperimentMFC_run) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot run experiments from the command line.");
-	autoRunnerMFC runner;
-	{// scope
-		/*
-			This `scope` comment refers to the idea that an autoThing (here, `experiments`)
-			is created in the beginning of the scope and invalidated at the end of the scope (by `move`).
-		*/
-		autoExperimentMFCList experiments = ExperimentMFCList_create ();
-		WHERE (SELECTED) {
-			iam_LOOP (ExperimentMFC);
-			Melder_assert (my classInfo == classExperimentMFC);
-			experiments -> addItem_ref (me);
-		}
-		Melder_assert (experiments->size >= 1);
-		Melder_assert (experiments->at [1] -> classInfo == classExperimentMFC);
-		Melder_assert (experiments->at [experiments->size] -> classInfo == classExperimentMFC);
-		runner = RunnerMFC_create (U"listening experiments", experiments.move());
-		/*
-			Now that `experiments` has been moved, it has become invalid.
-			We help the compiler notice this by ending the scope here:
-		*/
+	autoOrdered experiments = Ordered_create ();
+	Collection_dontOwnItems (experiments.peek());
+	WHERE (SELECTED) {
+		iam_LOOP (ExperimentMFC);
+		Melder_assert (my classInfo == classExperimentMFC);
+		Collection_addItem (experiments.peek(), me);   // reference copy of me
 	}
-	/*
-		As a result of the scope braces above, the compiler will now protest
-		if we refer to `experiments` in the next line. So instead we refer to the `runner`-internal experiments,
-		which are still in scope and haven't been invalidated:
-	*/
-	praat_installEditorN (runner.get(), runner -> experiments->asDaataList());   // refer to the moved version!
-	runner.releaseToUser();
+	Melder_assert (experiments -> size >= 1);
+	Melder_assert (((Data) experiments -> item [1]) -> classInfo == classExperimentMFC);
+	Melder_assert (((Data) experiments -> item [experiments -> size]) -> classInfo == classExperimentMFC);
+	autoOrdered experimentsCopy = experiments.clone();   // we need a copy, because we do a transfer, then a peek
+	Melder_assert (experimentsCopy -> size == experiments -> size);
+	Melder_assert (experimentsCopy -> item [1] == experiments -> item [1]);
+	Melder_assert (experimentsCopy -> item [experimentsCopy -> size] == experiments -> item [experiments -> size]);
+	autoRunnerMFC runner = RunnerMFC_create (U"listening experiments", experimentsCopy.transfer());
+	praat_installEditorN (runner.transfer(), experiments.peek());
 END2 }
 
 DIRECT2 (ExperimentMFC_extractResults) {
 	WHERE (SELECTED) {
 		iam_LOOP (ExperimentMFC);
 		autoResultsMFC thee = ExperimentMFC_extractResults (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -87,7 +75,7 @@ DIRECT2 (ResultsMFC_getNumberOfTrials) {
 	Melder_information (my numberOfTrials);
 END2 }
 
-FORM (ResultsMFC_getResponse, U"ResultsMFC: Get response", nullptr) {
+FORM (ResultsMFC_getResponse, U"ResultsMFC: Get response", 0) {
 	NATURAL (U"Trial", U"1")
 	OK2
 DO
@@ -98,7 +86,7 @@ DO
 	Melder_information (my result [trial]. response);
 END2 }
 
-FORM (ResultsMFC_getStimulus, U"ResultsMFC: Get stimulus", nullptr) {
+FORM (ResultsMFC_getStimulus, U"ResultsMFC: Get stimulus", 0) {
 	NATURAL (U"Trial", U"1")
 	OK2
 DO
@@ -110,18 +98,17 @@ DO
 END2 }
 
 DIRECT2 (ResultsMFC_removeUnsharedStimuli) {
-	ResultsMFC res1 = nullptr, res2 = nullptr;
+	ResultsMFC res1 = NULL, res2 = NULL;
 	WHERE (SELECTED) { if (res1) res2 = (ResultsMFC) OBJECT; else res1 = (ResultsMFC) OBJECT; }
 	Melder_assert (res1 && res2);
-	autoResultsMFC result = ResultsMFC_removeUnsharedStimuli (res1, res2);
-	praat_new (result.move(), res2 -> name, U"_shared");
+	praat_new (ResultsMFC_removeUnsharedStimuli (res1, res2), res2 -> name, U"_shared");
 END2 }
 
 DIRECT2 (ResultsMFC_to_Categories_stimuli) {
 	WHERE (SELECTED) {
 		iam_LOOP (ResultsMFC);
 		autoCategories thee = ResultsMFC_to_Categories_stimuli (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -129,43 +116,44 @@ DIRECT2 (ResultsMFC_to_Categories_responses) {
 	WHERE (SELECTED) {
 		iam_LOOP (ResultsMFC);
 		autoCategories thee = ResultsMFC_to_Categories_responses (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (ResultsMFCs_to_Table) {
-	OrderedOf<structResultsMFC> collection;
+	autoCollection collection = Collection_create (classResultsMFC, 100);
+	Collection_dontOwnItems (collection.peek());
 	WHERE (SELECTED) {
 		iam_LOOP (ResultsMFC);
-		collection. addItem_ref (me);
+		Collection_addItem (collection.peek(), me);
 	}
-	autoTable thee = ResultsMFCs_to_Table (& collection);
-	praat_new (thee.move(), U"allResults");
+	autoTable thee = ResultsMFCs_to_Table (collection.peek());
+	praat_new (thee.transfer(), U"allResults");
 END2 }
 
 /***** buttons *****/
 
-void praat_uvafon_Exp_init ();
-void praat_uvafon_Exp_init () {
-	Thing_recognizeClassesByName (classExperimentMFC, classResultsMFC, nullptr);
+void praat_uvafon_Exp_init (void);
+void praat_uvafon_Exp_init (void) {
+	Thing_recognizeClassesByName (classExperimentMFC, classResultsMFC, NULL);
 
-	praat_addAction1 (classCategories, 0, U"Sort", nullptr, 0, DO_Categories_sort);
-	praat_addAction1 (classCategories, 1, U"Get entropy", nullptr, 0, DO_Categories_getEntropy);
+	praat_addAction1 (classCategories, 0, U"Sort", 0, 0, DO_Categories_sort);
+	praat_addAction1 (classCategories, 1, U"Get entropy", 0, 0, DO_Categories_getEntropy);
 
-	praat_addAction1 (classExperimentMFC, 0, U"Run", nullptr, 0, DO_ExperimentMFC_run);
-	praat_addAction1 (classExperimentMFC, 0, U"Extract results", nullptr, 0, DO_ExperimentMFC_extractResults);
+	praat_addAction1 (classExperimentMFC, 0, U"Run", 0, 0, DO_ExperimentMFC_run);
+	praat_addAction1 (classExperimentMFC, 0, U"Extract results", 0, 0, DO_ExperimentMFC_extractResults);
 
-	praat_addAction1 (classResultsMFC, 0, U"Query -", nullptr, 0, nullptr);
-	praat_addAction1 (classResultsMFC, 1, U"Get number of trials", nullptr, 1, DO_ResultsMFC_getNumberOfTrials);
-	praat_addAction1 (classResultsMFC, 1, U"Get stimulus...", nullptr, 1, DO_ResultsMFC_getStimulus);
-	praat_addAction1 (classResultsMFC, 1, U"Get response...", nullptr, 1, DO_ResultsMFC_getResponse);
-	praat_addAction1 (classResultsMFC, 0, U"Modify", nullptr, 0, nullptr);
+	praat_addAction1 (classResultsMFC, 0, U"Query -", 0, 0, 0);
+	praat_addAction1 (classResultsMFC, 1, U"Get number of trials", 0, 1, DO_ResultsMFC_getNumberOfTrials);
+	praat_addAction1 (classResultsMFC, 1, U"Get stimulus...", 0, 1, DO_ResultsMFC_getStimulus);
+	praat_addAction1 (classResultsMFC, 1, U"Get response...", 0, 1, DO_ResultsMFC_getResponse);
+	praat_addAction1 (classResultsMFC, 0, U"Modify", 0, 0, 0);
 	praat_addAction1 (classResultsMFC, 2, U"Remove unshared stimuli", 0, 0, DO_ResultsMFC_removeUnsharedStimuli);
-	praat_addAction1 (classResultsMFC, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classResultsMFC, 0, U"To Categories (stimuli)", nullptr, 0, DO_ResultsMFC_to_Categories_stimuli);
-	praat_addAction1 (classResultsMFC, 0, U"To Categories (responses)", nullptr, 0, DO_ResultsMFC_to_Categories_responses);
-	praat_addAction1 (classResultsMFC, 0, U"Collect", nullptr, 0, nullptr);
-	praat_addAction1 (classResultsMFC, 0, U"Collect to Table", nullptr, 0, DO_ResultsMFCs_to_Table);
+	praat_addAction1 (classResultsMFC, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classResultsMFC, 0, U"To Categories (stimuli)", 0, 0, DO_ResultsMFC_to_Categories_stimuli);
+	praat_addAction1 (classResultsMFC, 0, U"To Categories (responses)", 0, 0, DO_ResultsMFC_to_Categories_responses);
+	praat_addAction1 (classResultsMFC, 0, U"Collect", 0, 0, 0);
+	praat_addAction1 (classResultsMFC, 0, U"Collect to Table", 0, 0, DO_ResultsMFCs_to_Table);
 }
 
 /* End of file praat_Exp.cpp */
diff --git a/fon/praat_Fon.cpp b/fon/praat_Fon.cpp
index f64333e..1712731 100644
--- a/fon/praat_Fon.cpp
+++ b/fon/praat_Fon.cpp
@@ -1,6 +1,6 @@
 /* praat_Fon.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,8 +39,6 @@
 #include "Matrix_and_Pitch.h"
 #include "Matrix_and_PointProcess.h"
 #include "Matrix_and_Polygon.h"
-#include "Matrix_extensions.h"
-
 #include "MovieWindow.h"
 #include "ParamCurve.h"
 #include "Photo.h"
@@ -86,25 +84,25 @@ static const char32 *STRING_TO_FREQUENCY = U"right Frequency range";
 
 /***** Common dialog contents. *****/
 
-void praat_dia_timeRange (UiForm dia);
-void praat_dia_timeRange (UiForm dia) {
+void praat_dia_timeRange (Any dia);
+void praat_dia_timeRange (Any dia) {
 	REAL (STRING_FROM_TIME_SECONDS, U"0.0")
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 }
-void praat_get_timeRange (UiForm dia, double *tmin, double *tmax);
-void praat_get_timeRange (UiForm dia, double *tmin, double *tmax) {
+void praat_get_timeRange (Any dia, double *tmin, double *tmax);
+void praat_get_timeRange (Any dia, double *tmin, double *tmax) {
 	*tmin = GET_REAL (STRING_FROM_TIME);
 	*tmax = GET_REAL (STRING_TO_TIME);
 }
-int praat_get_frequencyRange (UiForm dia, double *fmin, double *fmax);
-int praat_get_frequencyRange (UiForm dia, double *fmin, double *fmax) {
+int praat_get_frequencyRange (Any dia, double *fmin, double *fmax);
+int praat_get_frequencyRange (Any dia, double *fmin, double *fmax) {
 	*fmin = GET_REAL (STRING_FROM_FREQUENCY);
 	*fmax = GET_REAL (STRING_TO_FREQUENCY);
 	REQUIRE (*fmax > *fmin, U"Maximum frequency must be greater than minimum frequency.")
 	return 1;
 }
-static void dia_Vector_getExtremum (UiForm dia) {
-	UiField radio;
+static void dia_Vector_getExtremum (Any dia) {
+	Any radio;
 	praat_dia_timeRange (dia);
 	RADIO (U"Interpolation", 2)
 		RADIOBUTTON (U"None")
@@ -113,8 +111,8 @@ static void dia_Vector_getExtremum (UiForm dia) {
 		RADIOBUTTON (U"Sinc70")
 		RADIOBUTTON (U"Sinc700")
 }
-static void dia_Vector_getValue (UiForm dia) {
-	UiField radio;
+static void dia_Vector_getValue (Any dia) {
+	Any radio;
 	REAL (U"Time (s)", U"0.5")
 	RADIO (U"Interpolation", 3)
 		RADIOBUTTON (U"Nearest")
@@ -124,7 +122,7 @@ static void dia_Vector_getValue (UiForm dia) {
 		RADIOBUTTON (U"Sinc700")
 }
 
-static void getTminTmaxFminFmax (UiForm dia, double *tmin, double *tmax, double *fmin, double *fmax) {
+static void getTminTmaxFminFmax (Any dia, double *tmin, double *tmax, double *fmin, double *fmax) {
 	*tmin = GET_REAL (STRING_FROM_TIME);
 	*tmax = GET_REAL (STRING_TO_TIME);
 	*fmin = GET_REAL (STRING_FROM_FREQUENCY);
@@ -143,7 +141,7 @@ int praat_Fon_formula (UiForm dia, Interpreter interpreter) {
 	LOOP {
 		iam (Matrix);
 		try {
-			Matrix_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -153,20 +151,14 @@ int praat_Fon_formula (UiForm dia, Interpreter interpreter) {
 	return 1;
 }
 
-static autoGraphics graphics;
-
-static void gui_drawingarea_cb_expose (Thing /* boss */, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! graphics) return;
-	Graphics_play (graphics.get(), graphics.get());
-}
-
 extern "C" Graphics Movie_create (const char32 *title, int width, int height);
 extern "C" Graphics Movie_create (const char32 *title, int width, int height) {
+	static Graphics graphics;
 	static GuiDialog dialog;
 	static GuiDrawingArea drawingArea;
 	if (! graphics) {
-		dialog = GuiDialog_create (theCurrentPraatApplication -> topShell, 100, 100, width + 2, height + 2, title, nullptr, nullptr, 0);
-		drawingArea = GuiDrawingArea_createShown (dialog, 0, width, 0, height, gui_drawingarea_cb_expose, nullptr, nullptr, nullptr, nullptr, 0);
+		dialog = GuiDialog_create (theCurrentPraatApplication -> topShell, 100, 100, width + 2, height + 2, title, NULL, NULL, 0);
+		drawingArea = GuiDrawingArea_createShown (dialog, 0, width, 0, height, NULL, NULL, NULL, NULL, NULL, 0);
 		GuiThing_show (dialog);
 		graphics = Graphics_create_xmdrawingarea (drawingArea);
 	}
@@ -174,7 +166,7 @@ extern "C" Graphics Movie_create (const char32 *title, int width, int height) {
 	GuiControl_setSize (dialog, width + 2, height + 2);
 	GuiControl_setSize (drawingArea, width, height);
 	GuiThing_show (dialog);
-	return graphics.get();
+	return graphics;
 }
 
 /***** AMPLITUDETIER *****/
@@ -191,7 +183,7 @@ DO
 	}
 END2 }
 
-FORM (AmplitudeTier_create, U"Create empty AmplitudeTier", nullptr) {
+FORM (AmplitudeTier_create, U"Create empty AmplitudeTier", NULL) {
 	WORD (U"Name", U"empty")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
@@ -200,14 +192,14 @@ DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
 	if (endTime <= startTime) Melder_throw (U"End time must be greater than start time.");
 	autoAmplitudeTier thee = AmplitudeTier_create (startTime, endTime);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (AmplitudeTier_downto_PointProcess) {
 	LOOP {
 		iam (AmplitudeTier);
-		autoPointProcess thee = AnyTier_downto_PointProcess (me->asAnyTier());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = AnyTier_downto_PointProcess (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -215,21 +207,20 @@ DIRECT2 (AmplitudeTier_downto_TableOfReal) {
 	LOOP {
 		iam (AmplitudeTier);
 		autoTableOfReal thee = AmplitudeTier_downto_TableOfReal (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (AmplitudeTier_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit an AmplitudeTier from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	LOOP if (CLASS == classAmplitudeTier) {
 		iam (AmplitudeTier);
-		autoAmplitudeTierEditor editor = AmplitudeTierEditor_create (ID_AND_FULL_NAME, me, sound, true);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoAmplitudeTierEditor editor = AmplitudeTierEditor_create (ID_AND_FULL_NAME, me, sound, TRUE);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -246,7 +237,7 @@ DO
 	LOOP {
 		iam (AmplitudeTier);
 		try {
-			RealTier_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			RealTier_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -255,7 +246,7 @@ DO
 	}
 END2 }
 
-static void dia_AmplitudeTier_getRangeProperty (UiForm dia) {
+static void dia_AmplitudeTier_getRangeProperty (Any dia) {
 	REAL (U"Shortest period (s)", U"0.0001")
 	REAL (U"Longest period (s)", U"0.02")
 	POSITIVE (U"Maximum amplitude factor", U"1.6")
@@ -269,7 +260,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_local (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -281,7 +272,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_local_dB (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -293,7 +284,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_apq3 (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -305,7 +296,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_apq5 (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -317,7 +308,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_apq11 (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -329,7 +320,7 @@ DO
 		iam (AmplitudeTier);
 		double shimmer = AmplitudeTier_getShimmer_dda (me,
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum amplitude factor"));
-		Melder_informationReal (shimmer, nullptr);
+		Melder_informationReal (shimmer, NULL);
 	}
 END2 }
 
@@ -358,7 +349,7 @@ DO
 	LOOP {
 		iam (AmplitudeTier);
 		autoIntensityTier thee = AmplitudeTier_to_IntensityTier (me, GET_REAL (U"Threshold"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -370,7 +361,7 @@ DO
 	LOOP {
 		iam (AmplitudeTier);
 		autoSound thee = AmplitudeTier_to_Sound (me, GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Interpolation depth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -382,23 +373,23 @@ END2 }
 /***** AMPLITUDETIER & SOUND *****/
 
 DIRECT2 (Sound_AmplitudeTier_multiply) {
-	Sound sound = nullptr;
-	AmplitudeTier tier = nullptr;
+	Sound sound = NULL;
+	AmplitudeTier tier = NULL;
 	LOOP {
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 		if (CLASS == classAmplitudeTier) tier = (AmplitudeTier) OBJECT;
 	}
 	autoSound thee = Sound_AmplitudeTier_multiply (sound, tier);
-	praat_new (thee.move(), sound -> name, U"_amp");
+	praat_new (thee.transfer(), sound -> name, U"_amp");
 END2 }
 
 /***** COCHLEAGRAM *****/
 
-FORM (Cochleagram_difference, U"Cochleagram difference", nullptr) {
+FORM (Cochleagram_difference, U"Cochleagram difference", 0) {
 	praat_dia_timeRange (dia);
 	OK2
 DO
-	Cochleagram coch1 = nullptr, coch2 = nullptr;
+	Cochleagram coch1 = NULL, coch2 = NULL;
 	LOOP (coch1 ? coch2 : coch1) = (Cochleagram) OBJECT;
 	Melder_informationReal (Cochleagram_difference (coch1, coch2,
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range")), U"Hertz (root-mean-square)");
@@ -435,9 +426,9 @@ DIRECT2 (Cochleagram_movie) {
 	}
 END2 }
 
-FORM (Cochleagram_paint, U"Paint Cochleagram", nullptr) {
+FORM (Cochleagram_paint, U"Paint Cochleagram", 0) {
 	praat_dia_timeRange (dia);
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -447,14 +438,14 @@ DO
 	}
 END2 }
 
-FORM (Cochleagram_to_Excitation, U"From Cochleagram to Excitation", nullptr) {
+FORM (Cochleagram_to_Excitation, U"From Cochleagram to Excitation", 0) {
 	REAL (U"Time (s)", U"0.0")
 	OK2
 DO
 	LOOP {
 		iam (Cochleagram);
 		autoExcitation thee = Cochleagram_to_Excitation (me, GET_REAL (U"Time"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -462,7 +453,7 @@ DIRECT2 (Cochleagram_to_Matrix) {
 	LOOP {
 		iam (Cochleagram);
 		autoMatrix thee = Cochleagram_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -483,77 +474,76 @@ DIRECT2 (Corpus_edit) {
 	LOOP {
 		iam (Corpus);
 		autoTableEditor editor = TableEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 /***** DISTRIBUTIONS *****/
 
-FORM (Distributions_to_Transition, U"To Transition", nullptr) {
+FORM (Distributions_to_Transition, U"To Transition", 0) {
 	NATURAL (U"Environment", U"1")
-	BOOLEAN (U"Greedy", true)
+	BOOLEAN (U"Greedy", 1)
 	OK2
 DO
 	LOOP {
 		iam (Distributions);
-		autoTransition thee = Distributions_to_Transition (me, nullptr, GET_INTEGER (U"Environment"), nullptr, GET_INTEGER (U"Greedy"));
-		praat_new (thee.move(), my name);
+		autoTransition thee = Distributions_to_Transition (me, NULL, GET_INTEGER (U"Environment"), NULL, GET_INTEGER (U"Greedy"));
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Distributions_to_Transition_adj, U"To Transition", nullptr) {
+FORM (Distributions_to_Transition_adj, U"To Transition", 0) {
 	NATURAL (U"Environment", U"1")
-	BOOLEAN (U"Greedy", true)
+	BOOLEAN (U"Greedy", 1)
 	OK2
 DO
-	Distributions dist = nullptr;
-	Transition trans = nullptr;
+	Distributions dist = NULL;
+	Transition trans = NULL;
 	LOOP {
 		if (CLASS == classDistributions) dist = (Distributions) OBJECT;
 		if (CLASS == classTransition) trans = (Transition) OBJECT;
 	}
-	autoTransition thee = Distributions_to_Transition (dist, nullptr, GET_INTEGER (U"Environment"), trans, GET_INTEGER (U"Greedy"));
-	praat_new (thee.move());
+	autoTransition thee = Distributions_to_Transition (dist, NULL, GET_INTEGER (U"Environment"), trans, GET_INTEGER (U"Greedy"));
+	praat_new (thee.transfer());
 END2 }
 
-FORM (Distributions_to_Transition_noise, U"To Transition (noise)", nullptr) {
+FORM (Distributions_to_Transition_noise, U"To Transition (noise)", 0) {
 	NATURAL (U"Environment", U"1")
-	BOOLEAN (U"Greedy", true)
+	BOOLEAN (U"Greedy", 1)
 	OK2
 DO
-	Distributions underlying = nullptr, surface = nullptr;
+	Distributions underlying = NULL, surface = NULL;
 	LOOP (underlying ? surface : underlying) = (Distributions) OBJECT;
-	autoTransition thee = Distributions_to_Transition (underlying, surface, GET_INTEGER (U"Environment"), nullptr, GET_INTEGER (U"Greedy"));
-	praat_new (thee.move());
+	autoTransition thee = Distributions_to_Transition (underlying, surface, GET_INTEGER (U"Environment"), NULL, GET_INTEGER (U"Greedy"));
+	praat_new (thee.transfer());
 END2 }
 
-FORM (Distributions_to_Transition_noise_adj, U"To Transition (noise)", nullptr) {
+FORM (Distributions_to_Transition_noise_adj, U"To Transition (noise)", 0) {
 	NATURAL (U"Environment", U"1")
-	BOOLEAN (U"Greedy", true)
+	BOOLEAN (U"Greedy", 1)
 	OK2
 DO
-	Distributions underlying = nullptr, surface = nullptr;
-	Transition trans = nullptr;
+	Distributions underlying = NULL, surface = NULL;
+	Transition trans = NULL;
 	LOOP {
 		if (CLASS == classDistributions) (underlying ? surface : underlying) = (Distributions) OBJECT;
 		if (CLASS == classTransition) trans = (Transition) OBJECT;
 	}
 	autoTransition thee = Distributions_to_Transition (underlying, surface, GET_INTEGER (U"Environment"), trans, GET_INTEGER (U"Greedy"));
-	praat_new (thee.move());
+	praat_new (thee.transfer());
 END2 }
 
 /***** DISTRIBUTIONS & TRANSITION *****/
 
 DIRECT2 (Distributions_Transition_map) {
-	Distributions dist = nullptr;
-	Transition trans = nullptr;
+	Distributions dist = NULL;
+	Transition trans = NULL;
 	LOOP {
 		if (CLASS == classDistributions) dist = (Distributions) OBJECT;
 		if (CLASS == classTransition) trans = (Transition) OBJECT;
 	}
 	autoDistributions thee = Distributions_Transition_map (dist, trans);
-	praat_new (thee.move(), U"surface");
+	praat_new (thee.transfer(), U"surface");
 END2 }
 
 /***** DURATIONTIER *****/
@@ -579,28 +569,27 @@ DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
 	if (endTime <= startTime) Melder_throw (U"End time must be greater than start time.");
 	autoDurationTier thee = DurationTier_create (startTime, endTime);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (DurationTier_downto_PointProcess) {
 	LOOP {
 		iam (DurationTier);
-		autoPointProcess thee = AnyTier_downto_PointProcess (me->asAnyTier());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = AnyTier_downto_PointProcess (OBJECT);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (DurationTier_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a DurationTier from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	LOOP if (CLASS == classDurationTier) {
 		iam (DurationTier);
-		autoDurationTierEditor editor = DurationTierEditor_create (ID_AND_FULL_NAME, me, sound, true);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoDurationTierEditor editor = DurationTierEditor_create (ID_AND_FULL_NAME, me, sound, TRUE);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -617,7 +606,7 @@ DO
 	LOOP {
 		iam (DurationTier);
 		try {
-			RealTier_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			RealTier_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -626,7 +615,7 @@ DO
 	}
 END2 }
 
-FORM (DurationTier_getTargetDuration, U"Get target duration", nullptr) {
+FORM (DurationTier_getTargetDuration, U"Get target duration", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"1.0")
 	OK2
@@ -645,7 +634,7 @@ DO
 	LOOP {
 		iam (DurationTier);
 		double value = RealTier_getValueAtTime (me, GET_REAL (U"Time"));
-		Melder_informationReal (value, nullptr);
+		Melder_informationReal (value, NULL);
 	}
 END2 }
 	
@@ -656,7 +645,7 @@ DO
 	LOOP {
 		iam (DurationTier);
 		double value = RealTier_getValueAtIndex (me, GET_INTEGER (U"Point number"));
-		Melder_informationReal (value, nullptr);
+		Melder_informationReal (value, NULL);
 	}
 END2 }
 
@@ -697,7 +686,7 @@ DO
 	LOOP {
 		iam (Excitation);
 		try {
-			Matrix_formula (reinterpret_cast <Matrix> (me), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (reinterpret_cast <Matrix> (me), GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -725,7 +714,7 @@ DO
 	LOOP {
 		iam (Excitation);
 		autoFormant thee = Excitation_to_Formant (me, GET_INTEGER (U"Maximum number of formants"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -733,7 +722,7 @@ DIRECT2 (Excitation_to_Matrix) {
 	LOOP {
 		iam (Excitation);
 		autoMatrix thee = Excitation_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -743,7 +732,7 @@ DIRECT2 (Formant_downto_FormantGrid) {
 	LOOP {
 		iam (Formant);
 		autoFormantGrid thee = Formant_downto_FormantGrid (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -751,7 +740,7 @@ DIRECT2 (Formant_downto_FormantTier) {
 	LOOP {
 		iam (Formant);
 		autoFormantTier thee = Formant_downto_FormantTier (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -927,7 +916,7 @@ DO
 	}
 END2 }
 
-FORM (Formant_getQuantile, U"Formant: Get quantile", nullptr) {
+FORM (Formant_getQuantile, U"Formant: Get quantile", 0) {
 	NATURAL (U"Formant number", U"1")
 	praat_dia_timeRange (dia);
 	RADIO (U"Unit", 1)
@@ -945,7 +934,7 @@ DO
 	}
 END2 }
 
-FORM (Formant_getQuantileOfBandwidth, U"Formant: Get quantile of bandwidth", nullptr) {
+FORM (Formant_getQuantileOfBandwidth, U"Formant: Get quantile of bandwidth", 0) {
 	NATURAL (U"Formant number", U"1")
 	praat_dia_timeRange (dia);
 	RADIO (U"Unit", 1)
@@ -963,7 +952,7 @@ DO
 	}
 END2 }
 
-FORM (Formant_getStandardDeviation, U"Formant: Get standard deviation", nullptr) {
+FORM (Formant_getStandardDeviation, U"Formant: Get standard deviation", 0) {
 	NATURAL (U"Formant number", U"1")
 	praat_dia_timeRange (dia);
 	RADIO (U"Unit", 1)
@@ -1044,7 +1033,7 @@ DIRECT2 (Formant_help) {
 	Melder_help (U"Formant");
 END2 }
 
-FORM (Formant_downto_Table, U"Formant: Down to Table", nullptr) {
+FORM (Formant_downto_Table, U"Formant: Down to Table", 0) {
 	BOOLEAN (U"Include frame number", false)
 	BOOLEAN (U"Include time", true)
 	NATURAL (U"Time decimals", U"6")
@@ -1062,7 +1051,7 @@ DO
 			GET_INTEGER (U"Include intensity"), GET_INTEGER (U"Intensity decimals"),
 			GET_INTEGER (U"Include number of formants"), GET_INTEGER (U"Frequency decimals"),
 			GET_INTEGER (U"Include bandwidths"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1088,7 +1077,7 @@ DO
 	}
 END2 }
 
-FORM (Formant_scatterPlot, U"Formant: Scatter plot", nullptr) {
+FORM (Formant_scatterPlot, U"Formant: Scatter plot", 0) {
 	praat_dia_timeRange (dia);
 	NATURAL (U"Horizontal formant number", U"2")
 	REAL (U"left Horizontal range (Hz)", U"3000")
@@ -1097,7 +1086,7 @@ FORM (Formant_scatterPlot, U"Formant: Scatter plot", nullptr) {
 	REAL (U"left Vertical range (Hz)", U"1500")
 	REAL (U"right Vertical range (Hz)", U"100")
 	POSITIVE (U"Mark size (mm)", U"1.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	SENTENCE (U"Mark string (+xo.)", U"+")
 	OK2
 DO
@@ -1122,14 +1111,14 @@ DIRECT2 (Formant_sort) {
 	}
 END2 }
 
-FORM (Formant_to_Matrix, U"From Formant to Matrix", nullptr) {
+FORM (Formant_to_Matrix, U"From Formant to Matrix", 0) {
 	INTEGER (U"Formant", U"1")
 	OK2
 DO
 	LOOP {
 		iam (Formant);
 		autoMatrix thee = Formant_to_Matrix (me, GET_INTEGER (U"Formant"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1154,48 +1143,48 @@ DO
 			GET_REAL (U"Reference F3"), GET_REAL (U"Reference F4"),
 			GET_REAL (U"Reference F5"), GET_REAL (U"Frequency cost"),
 			GET_REAL (U"Bandwidth cost"), GET_REAL (U"Transition cost"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** FORMANT & POINTPROCESS *****/
 
 DIRECT2 (Formant_PointProcess_to_FormantTier) {
-	Formant formant = nullptr;
-	PointProcess point = nullptr;
+	Formant formant = NULL;
+	PointProcess point = NULL;
 	LOOP {
 		if (CLASS == classFormant) formant = (Formant) OBJECT;
 		if (CLASS == classPointProcess) point = (PointProcess) OBJECT;
 		if (formant && point) break;
 	}
 	autoFormantTier thee = Formant_PointProcess_to_FormantTier (formant, point);
-	praat_new (thee.move(), formant -> name, U"_", point -> name);
+	praat_new (thee.transfer(), formant -> name, U"_", point -> name);
 END2 }
 
 /***** FORMANT & SOUND *****/
 
 DIRECT2 (Sound_Formant_filter) {
-	Sound sound = nullptr;
-	Formant formant = nullptr;
+	Sound sound = NULL;
+	Formant formant = NULL;
 	LOOP {
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 		if (CLASS == classFormant) formant = (Formant) OBJECT;
 		if (sound && formant) break;
 	}
 	autoSound thee = Sound_Formant_filter (sound, formant);
-	praat_new (thee.move(), sound -> name, U"_filt");
+	praat_new (thee.transfer(), sound -> name, U"_filt");
 END2 }
 
 DIRECT2 (Sound_Formant_filter_noscale) {
-	Sound sound = nullptr;
-	Formant formant = nullptr;
+	Sound sound = NULL;
+	Formant formant = NULL;
 	LOOP {
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 		if (CLASS == classFormant) formant = (Formant) OBJECT;
 		if (sound && formant) break;
 	}
 	autoSound thee = Sound_Formant_filter_noscale (sound, formant);
-	praat_new (thee.move(), sound -> name, U"_filt");
+	praat_new (thee.transfer(), sound -> name, U"_filt");
 END2 }
 
 /***** FORMANTGRID *****/
@@ -1203,7 +1192,7 @@ END2 }
 FORM (FormantGrid_addBandwidthPoint, U"FormantGrid: Add bandwidth point", U"FormantGrid: Add bandwidth point...") {
 	NATURAL (U"Formant number", U"1")
 	REAL (U"Time (s)", U"0.5")
-	POSITIVE (U"Bandwidth (Hz)", U"100.0")
+	POSITIVE (U"Bandwidth (Hz)", U"100")
 	OK2
 DO
 	LOOP {
@@ -1216,7 +1205,7 @@ END2 }
 FORM (FormantGrid_addFormantPoint, U"FormantGrid: Add formant point", U"FormantGrid: Add formant point...") {
 	NATURAL (U"Formant number", U"1")
 	REAL (U"Time (s)", U"0.5")
-	POSITIVE (U"Frequency (Hz)", U"550.0")
+	POSITIVE (U"Frequency (Hz)", U"550")
 	OK2
 DO
 	LOOP {
@@ -1226,15 +1215,15 @@ DO
 	}
 END2 }
 
-FORM (FormantGrid_create, U"Create FormantGrid", nullptr) {
+FORM (FormantGrid_create, U"Create FormantGrid", NULL) {
 	WORD (U"Name", U"schwa")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
 	NATURAL (U"Number of formants", U"10")
-	POSITIVE (U"Initial first formant (Hz)", U"550.0")
-	POSITIVE (U"Initial formant spacing (Hz)", U"1100.0")
-	REAL (U"Initial first bandwidth (Hz)", U"60.0")
-	REAL (U"Initial bandwidth spacing (Hz)", U"50.0")
+	POSITIVE (U"Initial first formant (Hz)", U"550")
+	POSITIVE (U"Initial formant spacing (Hz)", U"1100")
+	REAL (U"Initial first bandwidth (Hz)", U"60")
+	REAL (U"Initial bandwidth spacing (Hz)", U"50")
 	OK2
 DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
@@ -1242,15 +1231,17 @@ DO
 	autoFormantGrid thee = FormantGrid_create (startTime, endTime, GET_INTEGER (U"Number of formants"),
 		GET_REAL (U"Initial first formant"), GET_REAL (U"Initial formant spacing"),
 		GET_REAL (U"Initial first bandwidth"), GET_REAL (U"Initial bandwidth spacing"));
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END2 }
 
-static void cb_FormantGridEditor_publish (Editor /* me */, autoDaata publish) {
+static void cb_FormantGridEditor_publish (Editor me, void *closure, Data publish) {
+	(void) me;
+	(void) closure;
 	/*
 	 * Keep the gate for error handling.
 	 */
 	try {
-		praat_new (publish.move(), U"fromFormantGridEditor");
+		praat_new (publish, U"fromFormantGridEditor");
 		praat_updateSelection ();
 	} catch (MelderError) {
 		Melder_flushError ();
@@ -1261,9 +1252,8 @@ DIRECT2 (FormantGrid_edit) {
 	LOOP {
 		iam (FormantGrid);
 		autoFormantGridEditor editor = FormantGridEditor_create (ID_AND_FULL_NAME, me);
-		Editor_setPublicationCallback (editor.get(), cb_FormantGridEditor_publish);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		Editor_setPublicationCallback (editor.peek(), cb_FormantGridEditor_publish, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -1276,7 +1266,7 @@ DO
 	LOOP {
 		iam (FormantGrid);
 		try {
-			FormantGrid_formula_bandwidths (me, GET_STRING (U"formula"), interpreter, nullptr);
+			FormantGrid_formula_bandwidths (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the FormantGrid may have partially changed
@@ -1293,7 +1283,7 @@ DO
 	LOOP {
 		iam (FormantGrid);
 		try {
-			FormantGrid_formula_frequencies (me, GET_STRING (U"formula"), interpreter, nullptr);
+			FormantGrid_formula_frequencies (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the FormantGrid may have partially changed
@@ -1332,7 +1322,7 @@ DO
 	}
 END2 }
 
-FORM (FormantGrid_to_Formant, U"FormantGrid: To Formant", nullptr) {
+FORM (FormantGrid_to_Formant, U"FormantGrid: To Formant", 0) {
 	POSITIVE (U"Time step (s)", U"0.01")
 	REAL (U"Intensity (Pa\u00B2)", U"0.1")
 	OK2
@@ -1342,34 +1332,34 @@ DO
 	LOOP {
 		iam (FormantGrid);
 		autoFormant thee = FormantGrid_to_Formant (me, GET_REAL (U"Time step"), intensity);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** FORMANTGRID & SOUND *****/
 
 DIRECT2 (Sound_FormantGrid_filter) {
-	Sound me = nullptr;
-	FormantGrid grid = nullptr;
+	Sound me = NULL;
+	FormantGrid grid = NULL;
 	LOOP {
 		if (CLASS == classSound) me = (Sound) OBJECT;
 		if (CLASS == classFormantGrid) grid = (FormantGrid) OBJECT;
 		if (me && grid) break;   // OPTIMIZE
 	}
 	autoSound thee = Sound_FormantGrid_filter (me, grid);
-	praat_new (thee.move(), my name, U"_filt");
+	praat_new (thee.transfer(), my name, U"_filt");
 END2 }
 
 DIRECT2 (Sound_FormantGrid_filter_noscale) {
-	Sound me = nullptr;
-	FormantGrid grid = nullptr;
+	Sound me = NULL;
+	FormantGrid grid = NULL;
 	LOOP {
 		if (CLASS == classSound) me = (Sound) OBJECT;
 		if (CLASS == classFormantGrid) grid = (FormantGrid) OBJECT;
 		if (me && grid) break;   // OPTIMIZE
 	}
 	autoSound thee = Sound_FormantGrid_filter_noscale (me, grid);
-	praat_new (thee.move(), my name, U"_filt");
+	praat_new (thee.transfer(), my name, U"_filt");
 END2 }
 
 /***** FORMANTTIER *****/
@@ -1390,13 +1380,13 @@ DO
 	point -> numberOfFormants = numberOfFormants;
 	LOOP {
 		iam (FormantTier);
-		autoFormantPoint point2 = Data_copy (point.get());
-		AnyTier_addPoint_move (me->asAnyTier(), point2.move());
+		autoFormantPoint point2 = Data_copy (point.peek());
+		AnyTier_addPoint (me, point2.transfer());
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM (FormantTier_create, U"Create empty FormantTier", nullptr) {
+FORM (FormantTier_create, U"Create empty FormantTier", NULL) {
 	WORD (U"Name", U"empty")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
@@ -1405,18 +1395,18 @@ DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
 	if (endTime <= startTime) Melder_throw (U"End time must be greater than start time.");
 	autoFormantTier thee = FormantTier_create (startTime, endTime);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (FormantTier_downto_TableOfReal, U"Down to TableOfReal", nullptr) {
-	BOOLEAN (U"Include formants", true)
-	BOOLEAN (U"Include bandwidths", false)
+FORM (FormantTier_downto_TableOfReal, U"Down to TableOfReal", 0) {
+	BOOLEAN (U"Include formants", 1)
+	BOOLEAN (U"Include bandwidths", 0)
 	OK2
 DO
 	LOOP {
 		iam (FormantTier);
 		autoTableOfReal thee = FormantTier_downto_TableOfReal (me, GET_INTEGER (U"Include formants"), GET_INTEGER (U"Include bandwidths"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1448,7 +1438,7 @@ DIRECT2 (FormantTier_help) {
 	Melder_help (U"FormantTier");
 END2 }
 
-FORM (FormantTier_speckle, U"Draw FormantTier", nullptr) {
+FORM (FormantTier_speckle, U"Draw FormantTier", 0) {
 	praat_dia_timeRange (dia);
 	POSITIVE (U"Maximum frequency (Hz)", U"5500.0")
 	BOOLEAN (U"Garnish", 1)
@@ -1464,27 +1454,27 @@ END2 }
 /***** FORMANTTIER & SOUND *****/
 
 DIRECT2 (Sound_FormantTier_filter) {
-	Sound me = nullptr;
-	FormantTier tier = nullptr;
+	Sound me = NULL;
+	FormantTier tier = NULL;
 	LOOP {
 		if (CLASS == classSound) me = (Sound) OBJECT;
 		if (CLASS == classFormantTier) tier = (FormantTier) OBJECT;
 		if (me && tier) break;   // OPTIMIZE
 	}
 	autoSound thee = Sound_FormantTier_filter (me, tier);
-	praat_new (thee.move(), my name, U"_filt");
+	praat_new (thee.transfer(), my name, U"_filt");
 END2 }
 
 DIRECT2 (Sound_FormantTier_filter_noscale) {
-	Sound me = nullptr;
-	FormantTier tier = nullptr;
+	Sound me = NULL;
+	FormantTier tier = NULL;
 	LOOP {
 		if (CLASS == classSound) me = (Sound) OBJECT;
 		if (CLASS == classFormantTier) tier = (FormantTier) OBJECT;
 		if (me && tier) break;   // OPTIMIZE
 	}
 	autoSound thee = Sound_FormantTier_filter_noscale (me, tier);
-	praat_new (thee.move(), my name, U"_filt");
+	praat_new (thee.transfer(), my name, U"_filt");
 END2 }
 
 /***** HARMONICITY *****/
@@ -1513,7 +1503,7 @@ DO
 	LOOP {
 		iam (Harmonicity);
 		try {
-			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Harmonicity may have partically changed
@@ -1623,17 +1613,17 @@ DIRECT2 (Harmonicity_to_Matrix) {
 	LOOP {
 		iam (Harmonicity);
 		autoMatrix thee = Harmonicity_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** INTENSITY *****/
 
-FORM (Intensity_draw, U"Draw Intensity", nullptr) {
+FORM (Intensity_draw, U"Draw Intensity", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"Minimum (dB)", U"0.0")
 	REAL (U"Maximum (dB)", U"0.0 (= auto)")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -1648,7 +1638,7 @@ DIRECT2 (Intensity_downto_IntensityTier) {
 	LOOP {
 		iam (Intensity);
 		autoIntensityTier thee = Intensity_downto_IntensityTier (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1656,7 +1646,7 @@ DIRECT2 (Intensity_downto_Matrix) {
 	LOOP {
 		iam (Intensity);
 		autoMatrix thee = Intensity_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1669,7 +1659,7 @@ DO
 	LOOP {
 		iam (Intensity);
 		try {
-			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Intensity may have partially changed
@@ -1697,7 +1687,7 @@ FORM (old_Intensity_getMean, U"Intensity: Get mean", U"Intensity: Get mean...")
 DO
 	LOOP {
 		iam (Intensity);
-		double mean = Sampled_getMean_standardUnit (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), 0, 0, true);
+		double mean = Sampled_getMean_standardUnit (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), 0, 0, TRUE);
 		Melder_informationReal (mean, U"dB");
 		break;   // OPTIMIZE
 	}
@@ -1714,7 +1704,7 @@ DO_ALTERNATIVE (old_Intensity_getMean)
 	LOOP {
 		iam (Intensity);
 		double mean = Sampled_getMean_standardUnit (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-			0, GET_INTEGER (U"Averaging method"), true);
+			0, GET_INTEGER (U"Averaging method"), TRUE);
 		Melder_informationReal (mean, U"dB");
 		break;   // OPTIMIZE
 	}
@@ -1810,7 +1800,7 @@ DIRECT2 (Intensity_to_IntensityTier_peaks) {
 	LOOP {
 		iam (Intensity);
 		autoIntensityTier thee = Intensity_to_IntensityTier_peaks (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1818,26 +1808,26 @@ DIRECT2 (Intensity_to_IntensityTier_valleys) {
 	LOOP {
 		iam (Intensity);
 		autoIntensityTier thee = Intensity_to_IntensityTier_valleys (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** INTENSITY & PITCH *****/
 
-FORM (Pitch_Intensity_draw, U"Plot intensity by pitch", nullptr) {
+FORM (Pitch_Intensity_draw, U"Plot intensity by pitch", 0) {
 	REAL (U"From frequency (Hz)", U"0.0")
 	REAL (U"To frequency (Hz)", U"0.0 (= auto)")
 	REAL (U"From intensity (dB)", U"0.0")
 	REAL (U"To intensity (dB)", U"100.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	RADIO (U"Drawing method", 1)
 		RADIOBUTTON (U"Speckles")
 		RADIOBUTTON (U"Curve")
 		RADIOBUTTON (U"Speckles and curve")
 	OK2
 DO
-	Pitch pitch = nullptr;
-	Intensity intensity = nullptr;
+	Pitch pitch = NULL;
+	Intensity intensity = NULL;
 	LOOP {
 		if (CLASS == classPitch) pitch = (Pitch) OBJECT;
 		if (CLASS == classIntensity) intensity = (Intensity) OBJECT;
@@ -1849,16 +1839,16 @@ DO
 		GET_REAL (U"From intensity"), GET_REAL (U"To intensity"), GET_INTEGER (U"Garnish"), GET_INTEGER (U"Drawing method"));
 END2 }
 
-FORM (Pitch_Intensity_speckle, U"Plot intensity by pitch", nullptr) {
+FORM (Pitch_Intensity_speckle, U"Plot intensity by pitch", 0) {
 	REAL (U"From frequency (Hz)", U"0.0")
 	REAL (U"To frequency (Hz)", U"0.0 (= auto)")
 	REAL (U"From intensity (dB)", U"0.0")
 	REAL (U"To intensity (dB)", U"100.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
-	Pitch pitch = nullptr;
-	Intensity intensity = nullptr;
+	Pitch pitch = NULL;
+	Intensity intensity = NULL;
 	LOOP {
 		if (CLASS == classPitch) pitch = (Pitch) OBJECT;
 		if (CLASS == classIntensity) intensity = (Intensity) OBJECT;
@@ -1870,42 +1860,18 @@ DO
 		GET_REAL (U"From intensity"), GET_REAL (U"To intensity"), GET_INTEGER (U"Garnish"), 1);
 END2 }
 
-DIRECT2 (Pitch_Intensity_getMean) {
-	Pitch pitch = nullptr;
-	Intensity intensity = nullptr;
-	LOOP {
-		if (CLASS == classPitch) pitch = (Pitch) OBJECT;
-		if (CLASS == classIntensity) intensity = (Intensity) OBJECT;
-		if (pitch && intensity) break;   // OPTIMIZE
-	}
-	double value = Pitch_Intensity_getMean (pitch, intensity);
-	Melder_informationReal (value, U"dB");
-END2 }
-
-DIRECT2 (Pitch_Intensity_getMeanAbsoluteSlope) {
-	Pitch pitch = nullptr;
-	Intensity intensity = nullptr;
-	LOOP {
-		if (CLASS == classPitch) pitch = (Pitch) OBJECT;
-		if (CLASS == classIntensity) intensity = (Intensity) OBJECT;
-		if (pitch && intensity) break;   // OPTIMIZE
-	}
-	double slope = Pitch_Intensity_getMeanAbsoluteSlope (pitch, intensity);
-	Melder_informationReal (slope, U"dB/second");
-END2 }
-
 /***** INTENSITY & POINTPROCESS *****/
 
 DIRECT2 (Intensity_PointProcess_to_IntensityTier) {
-	Intensity intensity = nullptr;
-	PointProcess point = nullptr;
+	Intensity intensity = NULL;
+	PointProcess point = NULL;
 	LOOP {
 		if (CLASS == classIntensity) intensity = (Intensity) OBJECT;
 		if (CLASS == classPointProcess) point = (PointProcess) OBJECT;
 		if (intensity && point) break;   // OPTIMIZE
 	}
 	autoIntensityTier thee = Intensity_PointProcess_to_IntensityTier (intensity, point);
-	praat_new (thee.move(), intensity -> name);
+	praat_new (thee.transfer(), intensity -> name);
 END2 }
 
 /***** INTENSITYTIER *****/
@@ -1922,7 +1888,7 @@ DO
 	}
 END2 }
 
-FORM (IntensityTier_create, U"Create empty IntensityTier", nullptr) {
+FORM (IntensityTier_create, U"Create empty IntensityTier", NULL) {
 	WORD (U"Name", U"empty")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
@@ -1931,14 +1897,14 @@ DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
 	if (endTime <= startTime) Melder_throw (U"End time must be greater than start time.");
 	autoIntensityTier thee = IntensityTier_create (startTime, endTime);
-	praat_new (thee.move(), GET_STRING (U"Name"));
+	praat_new (thee.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (IntensityTier_downto_PointProcess) {
 	LOOP {
 		iam (IntensityTier);
-		autoPointProcess thee = AnyTier_downto_PointProcess (me->asAnyTier());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = AnyTier_downto_PointProcess (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1946,22 +1912,21 @@ DIRECT2 (IntensityTier_downto_TableOfReal) {
 	LOOP {
 		iam (IntensityTier);
 		autoTableOfReal thee = IntensityTier_downto_TableOfReal (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (IntensityTier_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit an IntensityTier from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 		if (sound) break;   // OPTIMIZE
 	}
 	LOOP if (CLASS == classIntensityTier) {
 		iam (IntensityTier);
-		autoIntensityTierEditor editor = IntensityTierEditor_create (ID_AND_FULL_NAME, me, sound, true);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoIntensityTierEditor editor = IntensityTierEditor_create (ID_AND_FULL_NAME, me, sound, TRUE);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -1978,7 +1943,7 @@ DO
 	LOOP {
 		iam (IntensityTier);
 		try {
-			RealTier_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			RealTier_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the IntensityTier may have partially changed
@@ -2017,7 +1982,7 @@ DIRECT2 (IntensityTier_to_AmplitudeTier) {
 	LOOP {
 		iam (IntensityTier);
 		autoAmplitudeTier thee = IntensityTier_to_AmplitudeTier (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2029,63 +1994,59 @@ END2 }
 /***** INTENSITYTIER & POINTPROCESS *****/
 
 DIRECT2 (IntensityTier_PointProcess_to_IntensityTier) {
-	IntensityTier intensity = nullptr;
-	PointProcess point = nullptr;
+	IntensityTier intensity = NULL;
+	PointProcess point = NULL;
 	LOOP {
 		if (CLASS == classIntensityTier) intensity = (IntensityTier) OBJECT;
 		if (CLASS == classPointProcess) point = (PointProcess) OBJECT;
 		if (intensity && point) break;   // OPTIMIZE
 	}
 	autoIntensityTier thee = IntensityTier_PointProcess_to_IntensityTier (intensity, point);
-	praat_new (thee.move(), intensity -> name);
+	praat_new (thee.transfer(), intensity -> name);
 END2 }
 
 /***** INTENSITYTIER & SOUND *****/
 
 DIRECT2 (Sound_IntensityTier_multiply_old) {
-	Sound sound = nullptr;
-	IntensityTier intensity = nullptr;
+	Sound sound = NULL;
+	IntensityTier intensity = NULL;
 	LOOP {
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 		if (CLASS == classIntensityTier) intensity = (IntensityTier) OBJECT;
 		if (sound && intensity) break;   // OPTIMIZE
 	}
-	autoSound thee = Sound_IntensityTier_multiply (sound, intensity, true);
-	praat_new (thee.move(), sound -> name, U"_int");
+	autoSound thee = Sound_IntensityTier_multiply (sound, intensity, TRUE);
+	praat_new (thee.transfer(), sound -> name, U"_int");
 END2 }
 
-FORM (Sound_IntensityTier_multiply, U"Sound & IntervalTier: Multiply", nullptr) {
-	BOOLEAN (U"Scale to 0.9", true)
+FORM (Sound_IntensityTier_multiply, U"Sound & IntervalTier: Multiply", 0) {
+	BOOLEAN (U"Scale to 0.9", 1)
 	OK2
 DO
-	Sound sound = nullptr;
-	IntensityTier intensity = nullptr;
+	Sound sound = NULL;
+	IntensityTier intensity = NULL;
 	LOOP {
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 		if (CLASS == classIntensityTier) intensity = (IntensityTier) OBJECT;
 		if (sound && intensity) break;   // OPTIMIZE
 	}
 	autoSound thee = Sound_IntensityTier_multiply (sound, intensity, GET_INTEGER (U"Scale to 0.9"));
-	praat_new (thee.move(), sound -> name, U"_int");
+	praat_new (thee.transfer(), sound -> name, U"_int");
 END2 }
 
 /***** INTERVALTIER, rest in praat_TextGrid_init.cpp *****/
 
 FORM_READ2 (IntervalTier_readFromXwaves, U"Read IntervalTier from Xwaves", 0, true) {
 	autoIntervalTier me = IntervalTier_readFromXwaves (file);
-	praat_newWithFile (me.move(), file, MelderFile_name (file));
+	praat_newWithFile (me.transfer(), file, MelderFile_name (file));
 END2 }
 
 /***** LTAS *****/
 
 DIRECT2 (Ltases_average) {
-	autoLtasBag ltases = LtasBag_create ();
-	LOOP {
-		iam (Ltas);
-		ltases -> addItem_ref (me);
-	}
-	autoLtas result = Ltases_average (ltases.get());
-	praat_new (result.move(), U"averaged");
+	autoCollection ltases = praat_getSelectedObjects ();
+	autoLtas thee = Ltases_average (ltases.peek());
+	praat_new (thee.transfer(), U"averaged");
 END2 }
 
 FORM (Ltas_computeTrendLine, U"Ltas: Compute trend line", U"Ltas: Compute trend line...") {
@@ -2096,36 +2057,32 @@ DO
 	LOOP {
 		iam (Ltas);
 		autoLtas thee = Ltas_computeTrendLine (me, GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"));
-		praat_new (thee.move(), my name, U"_trend");
+		praat_new (thee.transfer(), my name, U"_trend");
 	}
 END2 }
 
-FORM (old_Ltas_draw, U"Ltas: Draw", nullptr) {
+FORM (old_Ltas_draw, U"Ltas: Draw", 0) {
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"0.0 (= all)")
 	REAL (U"left Power range (dB/Hz)", U"-20.0")
 	REAL (U"right Power range (dB/Hz)", U"80.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
 		iam (Ltas);
 		autoPraatPicture picture;
-		Ltas_draw (me, GRAPHICS,
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Power range"),
-			GET_REAL (U"right Power range"),
-			GET_INTEGER (U"Garnish"), U"Bars");
+		Ltas_draw (me, GRAPHICS, GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+			GET_REAL (U"left Power range"), GET_REAL (U"right Power range"), GET_INTEGER (U"Garnish"), U"Bars");
 	}
 END2 }
 
-FORM (Ltas_draw, U"Ltas: Draw", nullptr) {
+FORM (Ltas_draw, U"Ltas: Draw", 0) {
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"0.0 (= all)")
 	REAL (U"left Power range (dB/Hz)", U"-20.0")
 	REAL (U"right Power range (dB/Hz)", U"80.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"")
 	OPTIONMENU (U"Drawing method", 2)
 		OPTION (U"Curve")
@@ -2137,17 +2094,12 @@ DO_ALTERNATIVE (old_Ltas_draw)
 	LOOP {
 		iam (Ltas);
 		autoPraatPicture picture;
-		Ltas_draw (me, GRAPHICS,
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"),
-			GET_REAL (U"left Power range"),
-			GET_REAL (U"right Power range"),
-			GET_INTEGER (U"Garnish"),
-			GET_STRING (U"Drawing method"));
+		Ltas_draw (me, GRAPHICS, GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"),
+			GET_REAL (U"left Power range"), GET_REAL (U"right Power range"), GET_INTEGER (U"Garnish"), GET_STRING (U"Drawing method"));
 	}
 END2 }
 
-FORM (Ltas_formula, U"Ltas Formula", nullptr) {
+FORM (Ltas_formula, U"Ltas Formula", 0) {
 	LABEL (U"label", U"`x' is the frequency in hertz, `col' is the bin number")
 	LABEL (U"label", U"x := x1;   for col := 1 to ncol do { self [1, col] := `formula' ; x := x + dx }")
 	TEXTFIELD (U"formula", U"0")
@@ -2156,7 +2108,7 @@ DO
 	LOOP {
 		iam (Ltas);
 		try {
-			Matrix_formula (reinterpret_cast <Matrix> (me), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (reinterpret_cast <Matrix> (me), GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Ltas may have partially changed
@@ -2166,12 +2118,12 @@ DO
 END2 }
 
 FORM (Ltas_getBinNumberFromFrequency, U"Ltas: Get band from frequency", U"Ltas: Get band from frequency...") {
-	REAL (U"Frequency (Hz)", U"2000.0")
+	REAL (U"Frequency (Hz)", U"2000")
 	OK2
 DO
 	Ltas me = FIRST (Ltas);
 	double binNumber = Sampled_xToIndex (me, GET_REAL (U"Frequency"));
-	Melder_informationReal (binNumber, nullptr);
+	Melder_informationReal (binNumber, NULL);
 END2 }
 
 DIRECT2 (Ltas_getBinWidth) {
@@ -2201,9 +2153,7 @@ FORM (Ltas_getFrequencyOfMaximum, U"Ltas: Get frequency of maximum", U"Ltas: Get
 DO
 	Ltas me = FIRST (Ltas);
 	double frequency = Vector_getXOfMaximum (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		GET_INTEGER (U"Interpolation") - 1);
+		GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_INTEGER (U"Interpolation") - 1);
 	Melder_informationReal (frequency, U"hertz");
 END2 }
 
@@ -2220,9 +2170,7 @@ FORM (Ltas_getFrequencyOfMinimum, U"Ltas: Get frequency of minimum", U"Ltas: Get
 DO
 	Ltas me = FIRST (Ltas);
 	double frequency = Vector_getXOfMinimum (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		GET_INTEGER (U"Interpolation") - 1);
+		GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_INTEGER (U"Interpolation") - 1);
 	Melder_informationReal (frequency, U"hertz");
 END2 }
 
@@ -2231,7 +2179,7 @@ DIRECT2 (Ltas_getHighestFrequency) {
 	Melder_informationReal (my xmax, U"Hz");
 END2 }
 
-FORM (Ltas_getLocalPeakHeight, U"Ltas: Get local peak height", nullptr) {
+FORM (Ltas_getLocalPeakHeight, U"Ltas: Get local peak height", 0) {
 	REAL (U"left Environment (Hz)", U"1700.0")
 	REAL (U"right Environment (Hz)", U"4200.0")
 	REAL (U"left Peak (Hz)", U"2400.0")
@@ -2271,9 +2219,7 @@ FORM (Ltas_getMaximum, U"Ltas: Get maximum", U"Ltas: Get maximum...") {
 DO
 	Ltas me = FIRST (Ltas);
 	double maximum = Vector_getMaximum (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		GET_INTEGER (U"Interpolation") - 1);
+		GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_INTEGER (U"Interpolation") - 1);
 	Melder_informationReal (maximum, U"dB");
 END2 }
 
@@ -2287,12 +2233,8 @@ FORM (Ltas_getMean, U"Ltas: Get mean", U"Ltas: Get mean...") {
 	OK2
 DO
 	Ltas me = FIRST (Ltas);
-	double mean = Sampled_getMean_standardUnit (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		0,
-		GET_INTEGER (U"Averaging method"),
-		false);
+	double mean = Sampled_getMean_standardUnit (me, GET_REAL (U"From frequency"), GET_REAL (U"To frequency"),
+		0, GET_INTEGER (U"Averaging method"), FALSE);
 	Melder_informationReal (mean, U"dB");
 END2 }
 
@@ -2309,9 +2251,7 @@ FORM (Ltas_getMinimum, U"Ltas: Get minimum", U"Ltas: Get minimum...") {
 DO
 	Ltas me = FIRST (Ltas);
 	double minimum = Vector_getMinimum (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		GET_INTEGER (U"Interpolation") - 1);
+		GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_INTEGER (U"Interpolation") - 1);
 	Melder_informationReal (minimum, U"dB");
 END2 }
 
@@ -2333,12 +2273,8 @@ FORM (Ltas_getSlope, U"Ltas: Get slope", 0) {
 	OK2
 DO
 	Ltas me = FIRST (Ltas);
-	double slope = Ltas_getSlope (me,
-		GET_REAL (U"left Low band"),
-		GET_REAL (U"right Low band"),
-		GET_REAL (U"left High band"),
-		GET_REAL (U"right High band"),
-		GET_INTEGER (U"Averaging method"));
+	double slope = Ltas_getSlope (me, GET_REAL (U"left Low band"), GET_REAL (U"right Low band"),
+		GET_REAL (U"left High band"), GET_REAL (U"right High band"), GET_INTEGER (U"Averaging method"));
 	Melder_informationReal (slope, U"dB");
 END2 }
 
@@ -2352,12 +2288,8 @@ FORM (Ltas_getStandardDeviation, U"Ltas: Get standard deviation", U"Ltas: Get st
 	OK2
 DO
 	Ltas me = FIRST (Ltas);
-	double stdev = Sampled_getStandardDeviation_standardUnit (me,
-		GET_REAL (U"From frequency"),
-		GET_REAL (U"To frequency"),
-		0,   // level (irrelevant)
-		GET_INTEGER (U"Averaging method"),
-		false);   // interpolate (don't)
+	double stdev = Sampled_getStandardDeviation_standardUnit (me, GET_REAL (U"From frequency"), GET_REAL (U"To frequency"),
+		0, GET_INTEGER (U"Averaging method"), FALSE);
 	Melder_informationReal (stdev, U"dB");
 END2 }
 
@@ -2372,10 +2304,7 @@ FORM (Ltas_getValueAtFrequency, U"Ltas: Get value", U"Ltas: Get value at frequen
 	OK2
 DO
 	Ltas me = FIRST (Ltas);
-	double value = Vector_getValueAtX (me,
-		GET_REAL (U"Frequency"),
-		1,   // level
-		GET_INTEGER (U"Interpolation") - 1);
+	double value = Vector_getValueAtX (me, GET_REAL (U"Frequency"), 1, GET_INTEGER (U"Interpolation") - 1);
 	Melder_informationReal (value, U"dB");
 END2 }
 	
@@ -2394,13 +2323,9 @@ DIRECT2 (Ltas_help) {
 END2 }
 
 DIRECT2 (Ltases_merge) {
-	autoLtasBag ltases = LtasBag_create ();
-	LOOP {
-		iam (Ltas);
-		ltases -> addItem_ref (me);
-	}
-	autoLtas thee = Ltases_merge (ltases.get());
-	praat_new (thee.move(), U"merged");
+	autoCollection ltases = praat_getSelectedObjects ();
+	autoLtas thee = Ltases_merge (ltases.peek());
+	praat_new (thee.transfer(), U"merged");
 END2 }
 
 FORM (Ltas_subtractTrendLine, U"Ltas: Subtract trend line", U"Ltas: Subtract trend line...") {
@@ -2410,18 +2335,16 @@ FORM (Ltas_subtractTrendLine, U"Ltas: Subtract trend line", U"Ltas: Subtract tre
 DO
 	LOOP {
 		iam (Ltas);
-		autoLtas result = Ltas_subtractTrendLine (me,
-			GET_REAL (U"left Frequency range"),
-			GET_REAL (U"right Frequency range"));
-		praat_new (result.move(), my name, U"_fit");
+		autoLtas thee = Ltas_subtractTrendLine (me, GET_REAL (U"left Frequency range"), GET_REAL (U"right Frequency range"));
+		praat_new (thee.transfer(), my name, U"_fit");
 	}
 END2 }
 
 DIRECT2 (Ltas_to_Matrix) {
 	LOOP {
 		iam (Ltas);
-		autoMatrix result = Ltas_to_Matrix (me);
-		praat_new (result.move(), my name);
+		autoMatrix thee = Ltas_to_Matrix (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2429,15 +2352,17 @@ DIRECT2 (Ltas_to_SpectrumTier_peaks) {
 	LOOP {
 		iam (Ltas);
 		autoSpectrumTier thee = Ltas_to_SpectrumTier_peaks (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** MANIPULATION *****/
 
-static void cb_ManipulationEditor_publication (Editor /* editor */, autoDaata publication) {
+static void cb_ManipulationEditor_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	try {
-		praat_new (publication.move(), U"fromManipulationEditor");
+		praat_new (publication, U"fromManipulationEditor");
 		praat_updateSelection ();
 	} catch (MelderError) {
 		Melder_flushError ();
@@ -2448,9 +2373,8 @@ DIRECT2 (Manipulation_edit) {
 	LOOP {
 		iam (Manipulation);
 		autoManipulationEditor editor = ManipulationEditor_create (ID_AND_FULL_NAME, me);
-		Editor_setPublicationCallback (editor.get(), cb_ManipulationEditor_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		Editor_setPublicationCallback (editor.peek(), cb_ManipulationEditor_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -2458,8 +2382,8 @@ DIRECT2 (Manipulation_extractDurationTier) {
 	LOOP {
 		iam (Manipulation);
 		if (! my duration) Melder_throw (me, U": I don't contain a DurationTier.");
-		autoDurationTier thee = Data_copy (my duration.get());
-		praat_new (thee.move(), my name);
+		autoDurationTier thee = Data_copy (my duration);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2467,8 +2391,8 @@ DIRECT2 (Manipulation_extractOriginalSound) {
 	LOOP {
 		iam (Manipulation);
 		if (! my sound) Melder_throw (me, U": I don't contain a Sound.");
-		autoSound thee = Data_copy (my sound.get());
-		praat_new (thee.move(), my name);
+		autoSound thee = Data_copy (my sound);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2476,8 +2400,8 @@ DIRECT2 (Manipulation_extractPitchTier) {
 	LOOP {
 		iam (Manipulation);
 		if (! my pitch) Melder_throw (me, U": I don't contain a PitchTier.");
-		autoPitchTier thee = Data_copy (my pitch.get());
-		praat_new (thee.move(), my name);
+		autoPitchTier thee = Data_copy (my pitch);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2485,8 +2409,8 @@ DIRECT2 (Manipulation_extractPulses) {
 	LOOP {
 		iam (Manipulation);
 		if (! my pulses) Melder_throw (me, U": I don't contain a PointProcess.");
-		autoPointProcess thee = Data_copy (my pulses.get());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = Data_copy (my pulses);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2494,7 +2418,7 @@ DIRECT2 (Manipulation_getResynthesis_lpc) {
 	LOOP {
 		iam (Manipulation);
 		autoSound thee = Manipulation_to_Sound (me, Manipulation_PITCH_LPC);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2502,7 +2426,7 @@ DIRECT2 (Manipulation_getResynthesis_overlapAdd) {
 	LOOP {
 		iam (Manipulation);
 		autoSound thee = Manipulation_to_Sound (me, Manipulation_OVERLAPADD);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2527,7 +2451,7 @@ END2 }
 DIRECT2 (Manipulation_removeDuration) {
 	LOOP {
 		iam (Manipulation);
-		my duration = autoDurationTier();
+		forget (my duration);
 		praat_dataChanged (me);
 	}
 END2 }
@@ -2535,16 +2459,16 @@ END2 }
 DIRECT2 (Manipulation_removeOriginalSound) {
 	LOOP {
 		iam (Manipulation);
-		my sound = autoSound();
+		forget (my sound);
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM_WRITE (Manipulation_writeToBinaryFileWithoutSound, U"Binary file without Sound", nullptr, nullptr)
+FORM_WRITE (Manipulation_writeToBinaryFileWithoutSound, U"Binary file without Sound", 0, 0)
 	Manipulation_writeToBinaryFileWithoutSound (FIRST_ANY (Manipulation), file);
 END
 
-FORM_WRITE (Manipulation_writeToTextFileWithoutSound, U"Text file without Sound", nullptr, nullptr)
+FORM_WRITE (Manipulation_writeToTextFileWithoutSound, U"Text file without Sound", 0, 0)
 	Manipulation_writeToTextFileWithoutSound (FIRST_ANY (Manipulation), file);
 END
 
@@ -2604,16 +2528,16 @@ DIRECT2 (Manipulation_TextTier_to_Manipulation) {
 	Manipulation me = FIRST (Manipulation);
 	TextTier thee = FIRST (TextTier);
 	autoManipulation him = Manipulation_AnyTier_to_Manipulation (me, reinterpret_cast <AnyTier> (thee));
-	praat_new (him.move(), my name);
+	praat_new (him.transfer(), my name);	
 END2 }
 
 /***** MATRIX *****/
 
 DIRECT2 (Matrix_appendRows) {
-	Matrix m1 = nullptr, m2 = nullptr;
+	Matrix m1 = NULL, m2 = NULL;
 	LOOP (m1 ? m2 : m1) = (Matrix) OBJECT;
 	autoMatrix thee = Matrix_appendRows (m1, m2, classMatrix);
-	praat_new (thee.move(), m1 -> name, U"_", m2 -> name);
+	praat_new (thee.transfer(), m1 -> name, U"_", m2 -> name);
 END2 }
 
 FORM (Matrix_create, U"Create Matrix", U"Create Matrix...") {
@@ -2639,8 +2563,8 @@ DO
 	autoMatrix me = Matrix_create (
 		xmin, xmax, GET_INTEGER (U"Number of columns"), GET_REAL (U"dx"), GET_REAL (U"x1"),
 		ymin, ymax, GET_INTEGER (U"Number of rows"), GET_REAL (U"dy"), GET_REAL (U"y1"));
-	Matrix_formula (me.get(), GET_STRING (U"formula"), interpreter, nullptr);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	Matrix_formula (me.peek(), GET_STRING (U"formula"), interpreter, NULL);
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (Matrix_createSimple, U"Create simple Matrix", U"Create simple Matrix...") {
@@ -2652,11 +2576,11 @@ FORM (Matrix_createSimple, U"Create simple Matrix", U"Create simple Matrix...")
 	OK2
 DO
 	autoMatrix me = Matrix_createSimple (GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"));
-	Matrix_formula (me.get(), GET_STRING (U"formula"), interpreter, nullptr);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	Matrix_formula (me.peek(), GET_STRING (U"formula"), interpreter, NULL);
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (Matrix_drawOneContour, U"Draw one altitude contour", nullptr) {
+FORM (Matrix_drawOneContour, U"Draw one altitude contour", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2673,7 +2597,7 @@ DO
 	}
 END2 }
 
-FORM (Matrix_drawContours, U"Draw altitude contours", nullptr) {
+FORM (Matrix_drawContours, U"Draw altitude contours", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2691,7 +2615,7 @@ DO
 	}
 END2 }
 
-FORM (Matrix_drawRows, U"Draw rows", nullptr) {
+FORM (Matrix_drawRows, U"Draw rows", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2713,10 +2637,12 @@ END2 }
 DIRECT2 (Matrix_eigen) {
 	LOOP {
 		iam (Matrix);
-		autoMatrix vectors, values;
-		Matrix_eigen (me, & vectors, & values);
-		praat_new (vectors.move(), U"eigenvectors");
-		praat_new (values.move(), U"eigenvalues");
+		Matrix vec_ = NULL, val_ = NULL;
+		Matrix_eigen (me, & vec_, & val_);
+		autoMatrix vec = vec_;
+		autoMatrix val = val_;
+		praat_new (vec.transfer(), U"eigenvectors");
+		praat_new (val.transfer(), U"eigenvalues");
 	}
 END2 }
 
@@ -2729,7 +2655,7 @@ DO
 	LOOP {
 		iam (Matrix);
 		try {
-			Matrix_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Matrix may have partially changed
@@ -2740,22 +2666,22 @@ END2 }
 
 DIRECT2 (Matrix_getHighestX) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my xmax, nullptr);
+	Melder_informationReal (my xmax, NULL);
 END2 }
 
 DIRECT2 (Matrix_getHighestY) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my ymax, nullptr);
+	Melder_informationReal (my ymax, NULL);
 END2 }
 
 DIRECT2 (Matrix_getLowestX) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my xmin, nullptr);
+	Melder_informationReal (my xmin, NULL);
 END2 }
 
 DIRECT2 (Matrix_getLowestY) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my ymin, nullptr);
+	Melder_informationReal (my ymin, NULL);
 END2 }
 
 DIRECT2 (Matrix_getNumberOfColumns) {
@@ -2770,35 +2696,35 @@ END2 }
 
 DIRECT2 (Matrix_getColumnDistance) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my dx, nullptr);
+	Melder_informationReal (my dx, NULL);
 END2 }
 
 DIRECT2 (Matrix_getRowDistance) {
 	Matrix me = FIRST_ANY (Matrix);
-	Melder_informationReal (my dy, nullptr);
+	Melder_informationReal (my dy, NULL);
 END2 }
 
 DIRECT2 (Matrix_getSum) {
 	Matrix me = FIRST_ANY (Matrix);
 	double sum = Matrix_getSum (me);
-	Melder_informationReal (sum, nullptr);
+	Melder_informationReal (sum, NULL);
 END2 }
 
 DIRECT2 (Matrix_getMaximum) {
 	Matrix me = FIRST_ANY (Matrix);
 	double minimum = NUMundefined, maximum = NUMundefined;
 	Matrix_getWindowExtrema (me, 0, 0, 0, 0, & minimum, & maximum);
-	Melder_informationReal (maximum, nullptr);
+	Melder_informationReal (maximum, NULL);
 END2 }
 
 DIRECT2 (Matrix_getMinimum) {
 	Matrix me = FIRST_ANY (Matrix);
 	double minimum = NUMundefined, maximum = NUMundefined;
 	Matrix_getWindowExtrema (me, 0, 0, 0, 0, & minimum, & maximum);
-	Melder_informationReal (minimum, nullptr);
+	Melder_informationReal (minimum, NULL);
 END2 }
 
-FORM (Matrix_getValueAtXY, U"Matrix: Get value at xy", nullptr) {
+FORM (Matrix_getValueAtXY, U"Matrix: Get value at xy", 0) {
 	REAL (U"X", U"0")
 	REAL (U"Y", U"0")
 	OK2
@@ -2809,7 +2735,7 @@ DO
 	Melder_information (value, U" (at x = ", x, U" and y = ", y, U")");
 END2 }
 
-FORM (Matrix_getValueInCell, U"Matrix: Get value in cell", nullptr) {
+FORM (Matrix_getValueInCell, U"Matrix: Get value in cell", 0) {
 	NATURAL (U"Row number", U"1")
 	NATURAL (U"Column number", U"1")
 	OK2
@@ -2818,25 +2744,25 @@ DO
 	long row = GET_INTEGER (U"Row number"), column = GET_INTEGER (U"Column number");
 	if (row > my ny) Melder_throw (U"Row number must not exceed number of rows.");
 	if (column > my nx) Melder_throw (U"Column number must not exceed number of columns.");
-	Melder_informationReal (my z [row] [column], nullptr);
+	Melder_informationReal (my z [row] [column], NULL);
 END2 }
 
-FORM (Matrix_getXofColumn, U"Matrix: Get x of column", nullptr) {
+FORM (Matrix_getXofColumn, U"Matrix: Get x of column", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
 	Matrix me = FIRST_ANY (Matrix);
 	double x = Matrix_columnToX (me, GET_INTEGER (U"Column number"));
-	Melder_informationReal (x, nullptr);
+	Melder_informationReal (x, NULL);
 END2 }
 
-FORM (Matrix_getYofRow, U"Matrix: Get y of row", nullptr) {
+FORM (Matrix_getYofRow, U"Matrix: Get y of row", 0) {
 	NATURAL (U"Row number", U"1")
 	OK2
 DO
 	Matrix me = FIRST_ANY (Matrix);
 	double y = Matrix_rowToY (me, GET_INTEGER (U"Row number"));
-	Melder_informationReal (y, nullptr);
+	Melder_informationReal (y, NULL);
 END2 }
 
 DIRECT2 (Matrix_help) {
@@ -2869,7 +2795,7 @@ DO
 	}
 END2 }
 
-FORM (Matrix_paintContours, U"Matrix: Paint altitude contours with greys", nullptr) {
+FORM (Matrix_paintContours, U"Matrix: Paint altitude contours with greys", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2887,7 +2813,7 @@ DO
 	}
 END2 }
 
-FORM (Matrix_paintImage, U"Matrix: Paint grey image", nullptr) {
+FORM (Matrix_paintImage, U"Matrix: Paint grey image", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2905,7 +2831,7 @@ DO
 	}
 END2 }
 
-FORM (Matrix_paintSurface, U"Matrix: Paint 3-D surface plot", nullptr) {
+FORM (Matrix_paintSurface, U"Matrix: Paint 3-D surface plot", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -2923,25 +2849,25 @@ DO
 	}
 END2 }
 
-FORM (Matrix_power, U"Matrix: Power...", nullptr) {
+FORM (Matrix_power, U"Matrix: Power...", 0) {
 	NATURAL (U"Power", U"2")
 	OK2
 DO
 	LOOP {
 		iam (Matrix);
 		autoMatrix thee = Matrix_power (me, GET_INTEGER (U"Power"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM_READ2 (Matrix_readFromRawTextFile, U"Read Matrix from raw text file", nullptr, true) {
+FORM_READ2 (Matrix_readFromRawTextFile, U"Read Matrix from raw text file", 0, true) {
 	autoMatrix me = Matrix_readFromRawTextFile (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-FORM_READ2 (Matrix_readAP, U"Read Matrix from LVS AP file", nullptr, true) {
+FORM_READ2 (Matrix_readAP, U"Read Matrix from LVS AP file", 0, true) {
 	autoMatrix me = Matrix_readAP (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
 FORM (Matrix_setValue, U"Matrix: Set value", U"Matrix: Set value...") {
@@ -2964,7 +2890,7 @@ DIRECT2 (Matrix_to_Cochleagram) {
 	LOOP {
 		iam (Matrix);
 		autoCochleagram thee = Matrix_to_Cochleagram (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2972,7 +2898,7 @@ DIRECT2 (Matrix_to_Excitation) {
 	LOOP {
 		iam (Matrix);
 		autoExcitation thee = Matrix_to_Excitation (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2980,7 +2906,7 @@ DIRECT2 (Matrix_to_Harmonicity) {
 	LOOP {
 		iam (Matrix);
 		autoHarmonicity thee = Matrix_to_Harmonicity (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2988,7 +2914,7 @@ DIRECT2 (Matrix_to_Intensity) {
 	LOOP {
 		iam (Matrix);
 		autoIntensity thee = Matrix_to_Intensity (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2996,7 +2922,7 @@ DIRECT2 (Matrix_to_Pitch) {
 	LOOP {
 		iam (Matrix);
 		autoPitch thee = Matrix_to_Pitch (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3004,7 +2930,7 @@ DIRECT2 (Matrix_to_Spectrogram) {
 	LOOP {
 		iam (Matrix);
 		autoSpectrogram thee = Matrix_to_Spectrogram (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3012,7 +2938,7 @@ DIRECT2 (Matrix_to_Spectrum) {
 	LOOP {
 		iam (Matrix);
 		autoSpectrum thee = Matrix_to_Spectrum (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3020,23 +2946,23 @@ DIRECT2 (Matrix_to_Ltas) {
 	LOOP {
 		iam (Matrix);
 		autoLtas thee = Matrix_to_Ltas (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Matrix_to_ParamCurve) {
-	Matrix m1 = nullptr, m2 = nullptr;
+	Matrix m1 = NULL, m2 = NULL;
 	LOOP (m1 ? m2 : m1) = (Matrix) OBJECT;
 	autoSound sound1 = Matrix_to_Sound (m1), sound2 = Matrix_to_Sound (m2);
-	autoParamCurve thee = ParamCurve_create (sound1.get(), sound2.get());
-	praat_new (thee.move(), m1 -> name, U"_", m2 -> name);
+	autoParamCurve thee = ParamCurve_create (sound1.peek(), sound2.peek());
+	praat_new (thee.transfer(), m1 -> name, U"_", m2 -> name);
 END2 }
 
 DIRECT2 (Matrix_to_PointProcess) {
 	LOOP {
 		iam (Matrix);
 		autoPointProcess thee = Matrix_to_PointProcess (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3044,7 +2970,7 @@ DIRECT2 (Matrix_to_Polygon) {
 	LOOP {
 		iam (Matrix);
 		autoPolygon thee = Matrix_to_Polygon (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3052,7 +2978,7 @@ DIRECT2 (Matrix_to_Sound) {
 	LOOP {
 		iam (Matrix);
 		autoSound thee = Matrix_to_Sound (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3064,7 +2990,7 @@ DO
 	LOOP {
 		iam (Matrix);
 		autoSound thee = Matrix_to_Sound_mono (me, GET_INTEGER (U"Row"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3072,7 +2998,7 @@ DIRECT2 (Matrix_to_TableOfReal) {
 	LOOP {
 		iam (Matrix);
 		autoTableOfReal thee = Matrix_to_TableOfReal (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3080,7 +3006,7 @@ DIRECT2 (Matrix_to_Transition) {
 	LOOP {
 		iam (Matrix);
 		autoTransition thee = Matrix_to_Transition (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3088,28 +3014,28 @@ DIRECT2 (Matrix_to_VocalTract) {
 	LOOP {
 		iam (Matrix);
 		autoVocalTract thee = Matrix_to_VocalTract (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM_WRITE (Matrix_writeToMatrixTextFile, U"Save Matrix as matrix text file", nullptr, U"mat")
+FORM_WRITE (Matrix_writeToMatrixTextFile, U"Save Matrix as matrix text file", 0, U"mat")
 	Matrix me = FIRST (Matrix);
 	Matrix_writeToMatrixTextFile (me, file);
 END
 
-FORM_WRITE (Matrix_writeToHeaderlessSpreadsheetFile, U"Save Matrix as spreadsheet", nullptr, U"txt")
+FORM_WRITE (Matrix_writeToHeaderlessSpreadsheetFile, U"Save Matrix as spreadsheet", 0, U"txt")
 	Matrix me = FIRST (Matrix);
 	Matrix_writeToHeaderlessSpreadsheetFile (me, file);
 END
 
 /***** MOVIE *****/
 
-FORM_READ2 (Movie_openFromSoundFile, U"Open movie file", nullptr, true) {
+FORM_READ2 (Movie_openFromSoundFile, U"Open movie file", 0, true) {
 	autoMovie me = Movie_openFromSoundFile (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-FORM (Movie_paintOneImage, U"Movie: Paint one image", nullptr) {
+FORM (Movie_paintOneImage, U"Movie: Paint one image", 0) {
 	NATURAL (U"Frame number", U"1")
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"1.0")
@@ -3130,14 +3056,13 @@ DIRECT2 (Movie_viewAndEdit) {
 	LOOP {
 		iam (Movie);
 		autoMovieWindow editor = MovieWindow_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 /***** PARAMCURVE *****/
 
-FORM (ParamCurve_draw, U"Draw parametrized curve", nullptr) {
+FORM (ParamCurve_draw, U"Draw parametrized curve", 0) {
 	REAL (U"Tmin", U"0.0")
 	REAL (U"Tmax", U"0.0")
 	REAL (U"Step", U"0.0")
@@ -3145,7 +3070,7 @@ FORM (ParamCurve_draw, U"Draw parametrized curve", nullptr) {
 	REAL (U"Xmax", U"0.0")
 	REAL (U"Ymin", U"0.0")
 	REAL (U"Ymax", U"0.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -3189,10 +3114,10 @@ DO
 	autoPhoto me = Photo_create (
 		xmin, xmax, GET_INTEGER (U"Number of columns"), GET_REAL (U"dx"), GET_REAL (U"x1"),
 		ymin, ymax, GET_INTEGER (U"Number of rows"), GET_REAL (U"dy"), GET_REAL (U"y1"));
-	Matrix_formula (my d_red  .get(), GET_STRING (U"redFormula"),   interpreter, nullptr);
-	Matrix_formula (my d_green.get(), GET_STRING (U"greenFormula"), interpreter, nullptr);
-	Matrix_formula (my d_blue .get(), GET_STRING (U"blueFormula"),  interpreter, nullptr);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	Matrix_formula (my d_red,   GET_STRING (U"redFormula"),   interpreter, NULL);
+	Matrix_formula (my d_green, GET_STRING (U"greenFormula"), interpreter, NULL);
+	Matrix_formula (my d_blue,  GET_STRING (U"blueFormula"),  interpreter, NULL);
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (Photo_createSimple, U"Create simple Photo", U"Create simple Photo...") {
@@ -3208,41 +3133,41 @@ FORM (Photo_createSimple, U"Create simple Photo", U"Create simple Photo...") {
 	OK2
 DO
 	autoPhoto me = Photo_createSimple (GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"));
-	Matrix_formula (my d_red.get(),   GET_STRING (U"redFormula"),   interpreter, nullptr);
-	Matrix_formula (my d_green.get(), GET_STRING (U"greenFormula"), interpreter, nullptr);
-	Matrix_formula (my d_blue.get(),  GET_STRING (U"blueFormula"),  interpreter, nullptr);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	Matrix_formula (my d_red,   GET_STRING (U"redFormula"),   interpreter, NULL);
+	Matrix_formula (my d_green, GET_STRING (U"greenFormula"), interpreter, NULL);
+	Matrix_formula (my d_blue,  GET_STRING (U"blueFormula"),  interpreter, NULL);
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (Photo_extractBlue) {
 	LOOP {
 		iam (Photo);
-		autoMatrix thee = Data_copy (my d_blue.get());
-		praat_new (thee.move(), my name, U"_blue");
+		autoMatrix thee = Data_copy (my d_blue);
+		praat_new (thee.transfer(), my name, U"_blue");
 	}
 END2 }
 
 DIRECT2 (Photo_extractGreen) {
 	LOOP {
 		iam (Photo);
-		autoMatrix thee = Data_copy (my d_green.get());
-		praat_new (thee.move(), my name, U"_green");
+		autoMatrix thee = Data_copy (my d_green);
+		praat_new (thee.transfer(), my name, U"_green");
 	}
 END2 }
 
 DIRECT2 (Photo_extractRed) {
 	LOOP {
 		iam (Photo);
-		autoMatrix thee = Data_copy (my d_red.get());
-		praat_new (thee.move(), my name, U"_red");
+		autoMatrix thee = Data_copy (my d_red);
+		praat_new (thee.transfer(), my name, U"_red");
 	}
 END2 }
 
 DIRECT2 (Photo_extractTransparency) {
 	LOOP {
 		iam (Photo);
-		autoMatrix thee = Data_copy (my d_transparency.get());
-		praat_new (thee.move(), my name, U"_transparency");
+		autoMatrix thee = Data_copy (my d_transparency);
+		praat_new (thee.transfer(), my name, U"_transparency");
 	}
 END2 }
 
@@ -3255,7 +3180,7 @@ DO
 	LOOP {
 		iam (Photo);
 		try {
-			Matrix_formula (my d_red.get(), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (my d_red, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Photo may have partially changed
@@ -3273,7 +3198,7 @@ DO
 	LOOP {
 		iam (Photo);
 		try {
-			Matrix_formula (my d_green.get(), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (my d_green, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Photo may have partially changed
@@ -3291,7 +3216,7 @@ DO
 	LOOP {
 		iam (Photo);
 		try {
-			Matrix_formula (my d_blue.get(), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (my d_blue, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Photo may have partially changed
@@ -3309,7 +3234,7 @@ DO
 	LOOP {
 		iam (Photo);
 		try {
-			Matrix_formula (my d_transparency.get(), GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula (my d_transparency, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Photo may have partially changed
@@ -3333,7 +3258,7 @@ DO
 	}
 END2 }
 
-FORM (Photo_paintImage, U"Photo: Paint colour image", nullptr) {
+FORM (Photo_paintImage, U"Photo: Paint colour image", 0) {
 	REAL (U"From x =", U"0.0")
 	REAL (U"To x =", U"0.0")
 	REAL (U"From y =", U"0.0")
@@ -3348,56 +3273,56 @@ DO
 	}
 END2 }
 
-FORM_WRITE (Photo_saveAsAppleIconFile, U"Save as Apple icon file", nullptr, U"icns")
+FORM_WRITE (Photo_saveAsAppleIconFile, U"Save as Apple icon file", 0, U"icns")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsAppleIconFile (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsGIF, U"Save as GIF file", nullptr, U"gif")
+FORM_WRITE (Photo_saveAsGIF, U"Save as GIF file", 0, U"gif")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsGIF (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsJPEG, U"Save as JPEG file", nullptr, U"jpg")
+FORM_WRITE (Photo_saveAsJPEG, U"Save as JPEG file", 0, U"jpg")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsJPEG (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsJPEG2000, U"Save as JPEG-2000 file", nullptr, U"jpg")
+FORM_WRITE (Photo_saveAsJPEG2000, U"Save as JPEG-2000 file", 0, U"jpg")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsJPEG2000 (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsPNG, U"Save as PNG file", nullptr, U"png")
+FORM_WRITE (Photo_saveAsPNG, U"Save as PNG file", 0, U"png")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsPNG (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsTIFF, U"Save as TIFF file", nullptr, U"tiff")
+FORM_WRITE (Photo_saveAsTIFF, U"Save as TIFF file", 0, U"tiff")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsTIFF (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsWindowsBitmapFile, U"Save as Windows bitmap file", nullptr, U"bmp")
+FORM_WRITE (Photo_saveAsWindowsBitmapFile, U"Save as Windows bitmap file", 0, U"bmp")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsWindowsBitmapFile (me, file);
 	}
 END
 
-FORM_WRITE (Photo_saveAsWindowsIconFile, U"Save as Windows icon file", nullptr, U"ico")
+FORM_WRITE (Photo_saveAsWindowsIconFile, U"Save as Windows icon file", 0, U"ico")
 	LOOP {
 		iam (Photo);
 		Photo_saveAsWindowsIconFile (me, file);
@@ -3442,7 +3367,7 @@ DIRECT2 (Pitch_getNumberOfVoicedFrames) {
 END2 }
 
 DIRECT2 (Pitch_difference) {
-	Pitch pit1 = nullptr, pit2 = nullptr;
+	Pitch pit1 = NULL, pit2 = NULL;
 	LOOP (pit1 ? pit2 : pit1) = (Pitch) OBJECT;
 	Pitch_difference (pit1, pit2);
 END2 }
@@ -3451,7 +3376,7 @@ FORM (Pitch_draw, U"Pitch: Draw", U"Pitch: Draw...") {
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3468,7 +3393,7 @@ FORM (Pitch_drawErb, U"Pitch: Draw erb", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3485,7 +3410,7 @@ FORM (Pitch_drawLogarithmic, U"Pitch: Draw logarithmic", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3502,7 +3427,7 @@ FORM (Pitch_drawMel, U"Pitch: Draw mel", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	REAL (U"left Frequency range (mel)", U"0.0")
 	REAL (U"right Frequency range (mel)", U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3520,7 +3445,7 @@ FORM (Pitch_drawSemitones100, U"Pitch: Draw semitones (re 100 Hz)", U"Pitch: Dra
 	LABEL (U"", U"Range in semitones re 100 Hz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3538,7 +3463,7 @@ FORM (Pitch_drawSemitones200, U"Pitch: Draw semitones (re 200 Hz)", U"Pitch: Dra
 	LABEL (U"", U"Range in semitones re 200 Hz:")
 	REAL (U"left Frequency range (st)", U"-24.0")
 	REAL (U"right Frequency range (st)", U"18.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3556,7 +3481,7 @@ FORM (Pitch_drawSemitones440, U"Pitch: Draw semitones (re 440 Hz)", U"Pitch: Dra
 	LABEL (U"", U"Range in semitones re 440 Hz:")
 	REAL (U"left Frequency range (st)", U"-36.0")
 	REAL (U"right Frequency range (st)", U"6.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3573,8 +3498,7 @@ DIRECT2 (Pitch_edit) {
 	LOOP {
 		iam (Pitch);
 		autoPitchEditor editor = PitchEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -3595,7 +3519,7 @@ DO
 	}
 END2 }
 
-FORM (Pitch_getMaximum, U"Pitch: Get maximum", nullptr) {
+FORM (Pitch_getMaximum, U"Pitch: Get maximum", 0) {
 	praat_dia_timeRange (dia);
 	OPTIONMENU_ENUM (U"Unit", kPitch_unit, DEFAULT)
 	RADIO (U"Interpolation", 2)
@@ -3610,7 +3534,7 @@ DO
 	Melder_informationReal (value, Function_getUnitText (me, Pitch_LEVEL_FREQUENCY, unit, 0));
 END2 }
 
-FORM (Pitch_getMean, U"Pitch: Get mean", nullptr) {
+FORM (Pitch_getMean, U"Pitch: Get mean", 0) {
 	praat_dia_timeRange (dia);
 	OPTIONMENU_ENUM (U"Unit", kPitch_unit, DEFAULT)
 	OK2
@@ -3665,7 +3589,7 @@ DO
 	Melder_informationReal (value, Function_getUnitText (me, Pitch_LEVEL_FREQUENCY, unit, 0));
 END2 }
 
-FORM (Pitch_getQuantile, U"Pitch: Get quantile", nullptr) {
+FORM (Pitch_getQuantile, U"Pitch: Get quantile", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"Quantile", U"0.50 (= median)")
 	OPTIONMENU_ENUM (U"Unit", kPitch_unit, DEFAULT)
@@ -3679,7 +3603,7 @@ DO
 	Melder_informationReal (value, Function_getUnitText (me, Pitch_LEVEL_FREQUENCY, unit, 0));
 END2 }
 
-FORM (Pitch_getStandardDeviation, U"Pitch: Get standard deviation", nullptr) {
+FORM (Pitch_getStandardDeviation, U"Pitch: Get standard deviation", 0) {
 	praat_dia_timeRange (dia);
 	OPTIONMENU (U"Unit", 1)
 		OPTION (U"Hertz")
@@ -3707,7 +3631,7 @@ DO
 	Melder_informationReal (value, unitText);
 END2 }
 
-FORM (Pitch_getTimeOfMaximum, U"Pitch: Get time of maximum", nullptr) {
+FORM (Pitch_getTimeOfMaximum, U"Pitch: Get time of maximum", 0) {
 	praat_dia_timeRange (dia);
 	OPTIONMENU_ENUM (U"Unit", kPitch_unit, DEFAULT)
 	RADIO (U"Interpolation", 2)
@@ -3722,7 +3646,7 @@ DO
 	Melder_informationReal (time, U"seconds");
 END2 }
 
-FORM (Pitch_getTimeOfMinimum, U"Pitch: Get time of minimum", nullptr) {
+FORM (Pitch_getTimeOfMinimum, U"Pitch: Get time of minimum", 0) {
 	praat_dia_timeRange (dia);
 	OPTIONMENU_ENUM (U"Unit", kPitch_unit, DEFAULT)
 	RADIO (U"Interpolation", 2)
@@ -3771,7 +3695,7 @@ END2 }
 DIRECT2 (Pitch_hum) {
 	LOOP {
 		iam (Pitch);
-		Pitch_hum (me, 0.0, 0.0);
+		Pitch_hum (me, 0, 0);
 	}
 END2 }
 
@@ -3779,7 +3703,7 @@ DIRECT2 (Pitch_interpolate) {
 	LOOP {
 		iam (Pitch);
 		autoPitch thee = Pitch_interpolate (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3787,14 +3711,14 @@ DIRECT2 (Pitch_killOctaveJumps) {
 	LOOP {
 		iam (Pitch);
 		autoPitch thee = Pitch_killOctaveJumps (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Pitch_play) {
 	LOOP {
 		iam (Pitch);
-		Pitch_play (me, 0.0, 0.0);
+		Pitch_play (me, 0, 0);
 	}
 END2 }
 
@@ -3805,7 +3729,7 @@ DO
 	LOOP {
 		iam (Pitch);
 		autoPitch thee = Pitch_smooth (me, GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3814,7 +3738,7 @@ FORM (Pitch_speckle, U"Pitch: Speckle", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3830,7 +3754,7 @@ FORM (Pitch_speckleErb, U"Pitch: Speckle erb", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3846,7 +3770,7 @@ FORM (Pitch_speckleLogarithmic, U"Pitch: Speckle logarithmic", U"Pitch: Draw..."
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3862,7 +3786,7 @@ FORM (Pitch_speckleMel, U"Pitch: Speckle mel", U"Pitch: Draw...") {
 	REAL (STRING_TO_TIME_SECONDS, U"0.0 (= all)")
 	REAL (U"left Frequency range (mel)", U"0")
 	REAL (U"right Frequency range (mel)", U"500")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3879,7 +3803,7 @@ FORM (Pitch_speckleSemitones100, U"Pitch: Speckle semitones (re 100 Hz)", U"Pitc
 	LABEL (U"", U"Range in semitones re 100 hertz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3896,7 +3820,7 @@ FORM (Pitch_speckleSemitones200, U"Pitch: Speckle semitones (re 200 Hz)", U"Pitc
 	LABEL (U"", U"Range in semitones re 200 hertz:")
 	REAL (U"left Frequency range (st)", U"-24.0")
 	REAL (U"right Frequency range (st)", U"18.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3913,7 +3837,7 @@ FORM (Pitch_speckleSemitones440, U"Pitch: Speckle semitones (re 440 Hz)", U"Pitc
 	LABEL (U"", U"Range in semitones re 440 hertz:")
 	REAL (U"left Frequency range (st)", U"-36.0")
 	REAL (U"right Frequency range (st)", U"6.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	GET_TMIN_TMAX_FMIN_FMAX
@@ -3924,7 +3848,7 @@ DO
 	}
 END2 }
 
-FORM (Pitch_subtractLinearFit, U"Pitch: subtract linear fit", nullptr) {
+FORM (Pitch_subtractLinearFit, U"Pitch: subtract linear fit", 0) {
 	RADIO (U"Unit", 1)
 		RADIOBUTTON (U"Hertz")
 		RADIOBUTTON (U"Hertz (logarithmic)")
@@ -3936,7 +3860,7 @@ DO
 	LOOP {
 		iam (Pitch);
 		autoPitch thee = Pitch_subtractLinearFit (me, GET_INTEGER (U"Unit") - 1);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3944,7 +3868,7 @@ DIRECT2 (Pitch_to_IntervalTier) {
 	LOOP {
 		iam (Pitch);
 		autoIntervalTier thee = IntervalTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3952,7 +3876,7 @@ DIRECT2 (Pitch_to_Matrix) {
 	LOOP {
 		iam (Pitch);
 		autoMatrix thee = Pitch_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3960,7 +3884,7 @@ DIRECT2 (Pitch_to_PitchTier) {
 	LOOP {
 		iam (Pitch);
 		autoPitchTier thee = Pitch_to_PitchTier (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -3968,28 +3892,28 @@ DIRECT2 (Pitch_to_PointProcess) {
 	LOOP {
 		iam (Pitch);
 		autoPointProcess thee = Pitch_to_PointProcess (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Pitch_to_Sound_pulses) {
 	LOOP {
 		iam (Pitch);
-		autoSound thee = Pitch_to_Sound (me, 0.0, 0.0, false);
-		praat_new (thee.move(), my name);
+		autoSound thee = Pitch_to_Sound (me, 0, 0, FALSE);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Pitch_to_Sound_hum) {
 	LOOP {
 		iam (Pitch);
-		autoSound thee = Pitch_to_Sound (me, 0.0, 0.0, true);
-		praat_new (thee.move(), my name);
+		autoSound thee = Pitch_to_Sound (me, 0, 0, TRUE);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Pitch_to_Sound_sine, U"Pitch: To Sound (sine)", nullptr) {
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+FORM (Pitch_to_Sound_sine, U"Pitch: To Sound (sine)", 0) {
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	RADIO (U"Cut voiceless stretches", 2)
 		OPTION (U"exactly")
 		OPTION (U"at nearest zero crossings")
@@ -3997,8 +3921,8 @@ FORM (Pitch_to_Sound_sine, U"Pitch: To Sound (sine)", nullptr) {
 DO
 	LOOP {
 		iam (Pitch);
-		autoSound thee = Pitch_to_Sound_sine (me, 0.0, 0.0, GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Cut voiceless stretches") - 1);
-		praat_new (thee.move(), my name);
+		autoSound thee = Pitch_to_Sound_sine (me, 0, 0, GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Cut voiceless stretches") - 1);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4010,7 +3934,7 @@ DO
 	LOOP {
 		iam (Pitch);
 		autoTextGrid thee = TextGrid_create (my xmin, my xmax, GET_STRING (U"Tier names"), GET_STRING (U"Point tiers"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4018,13 +3942,13 @@ DIRECT2 (Pitch_to_TextTier) {
 	LOOP {
 		iam (Pitch);
 		autoTextTier thee = TextTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 /***** PITCH & PITCHTIER *****/
 
-FORM (old_PitchTier_Pitch_draw, U"PitchTier & Pitch: Draw", nullptr) {
+FORM (old_PitchTier_Pitch_draw, U"PitchTier & Pitch: Draw", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"From frequency (Hz)", U"0.0")
 	REAL (U"To frequency (Hz)", U"500.0")
@@ -4045,7 +3969,7 @@ DO
 		GET_INTEGER (U"Garnish"), U"lines and speckles");
 END2 }
 
-FORM (PitchTier_Pitch_draw, U"PitchTier & Pitch: Draw", nullptr) {
+FORM (PitchTier_Pitch_draw, U"PitchTier & Pitch: Draw", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"From frequency (Hz)", U"0.0")
 	REAL (U"To frequency (Hz)", U"500.0")
@@ -4053,7 +3977,7 @@ FORM (PitchTier_Pitch_draw, U"PitchTier & Pitch: Draw", nullptr) {
 		RADIOBUTTON (U"Normal")
 		RADIOBUTTON (U"Dotted")
 		RADIOBUTTON (U"Blank")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"")
 	OPTIONMENU (U"Drawing method", 1)
 		OPTION (U"lines")
@@ -4075,7 +3999,7 @@ DIRECT2 (Pitch_PitchTier_to_Pitch) {
 	Pitch pitch = FIRST (Pitch);
 	PitchTier tier = FIRST (PitchTier);
 	autoPitch thee = Pitch_PitchTier_to_Pitch (pitch, tier);
-	praat_new (thee.move(), pitch -> name, U"_stylized");
+	praat_new (thee.transfer(), pitch -> name, U"_stylized");
 END2 }
 
 /***** PITCH & POINTPROCESS *****/
@@ -4084,7 +4008,7 @@ DIRECT2 (Pitch_PointProcess_to_PitchTier) {
 	Pitch pitch = FIRST (Pitch);
 	PointProcess point = FIRST (PointProcess);
 	autoPitchTier thee = Pitch_PointProcess_to_PitchTier (pitch, point);
-	praat_new (thee.move(), pitch -> name);
+	praat_new (thee.transfer(), pitch -> name);
 END2 }
 
 /***** PITCH & SOUND *****/
@@ -4093,14 +4017,14 @@ DIRECT2 (Sound_Pitch_to_Manipulation) {
 	Pitch pitch = FIRST (Pitch);
 	Sound sound = FIRST (Sound);
 	autoManipulation thee = Sound_Pitch_to_Manipulation (sound, pitch);
-	praat_new (thee.move(), pitch -> name);
+	praat_new (thee.transfer(), pitch -> name);
 END2 }
 
 DIRECT2 (Sound_Pitch_to_PointProcess_cc) {
 	Sound sound = FIRST (Sound);
 	Pitch pitch = FIRST (Pitch);
 	autoPointProcess thee = Sound_Pitch_to_PointProcess_cc (sound, pitch);
-	praat_new (thee.move(), sound -> name, U"_", pitch -> name);
+	praat_new (thee.transfer(), sound -> name, U"_", pitch -> name);
 END2 }
 
 FORM (Sound_Pitch_to_PointProcess_peaks, U"Sound & Pitch: To PointProcess (peaks)", 0) {
@@ -4111,14 +4035,14 @@ DO
 	Sound sound = FIRST (Sound);
 	Pitch pitch = FIRST (Pitch);
 	autoPointProcess thee = Sound_Pitch_to_PointProcess_peaks (sound, pitch, GET_INTEGER (U"Include maxima"), GET_INTEGER (U"Include minima"));
-	praat_new (thee.move(), sound -> name, U"_", pitch -> name);
+	praat_new (thee.transfer(), sound -> name, U"_", pitch -> name);
 END2 }
 
 /***** PITCHTIER *****/
 
 FORM (PitchTier_addPoint, U"PitchTier: Add point", U"PitchTier: Add point...") {
 	REAL (U"Time (s)", U"0.5")
-	REAL (U"Pitch (Hz)", U"200.0")
+	REAL (U"Pitch (Hz)", U"200")
 	OK2
 DO
 	LOOP {
@@ -4128,7 +4052,7 @@ DO
 	}
 END2 }
 
-FORM (PitchTier_create, U"Create empty PitchTier", nullptr) {
+FORM (PitchTier_create, U"Create empty PitchTier", NULL) {
 	WORD (U"Name", U"empty")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
@@ -4137,18 +4061,18 @@ DO
 	double startTime = GET_REAL (U"Start time"), endTime = GET_REAL (U"End time");
 	if (endTime <= startTime) Melder_throw (U"End time must be greater than start time.");
 	autoPitchTier me = PitchTier_create (startTime, endTime);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (PitchTier_downto_PointProcess) {
 	LOOP {
 		iam (PitchTier);
-		autoPointProcess thee = AnyTier_downto_PointProcess (me->asAnyTier());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = AnyTier_downto_PointProcess (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (PitchTier_downto_TableOfReal, U"PitchTier: Down to TableOfReal", nullptr) {
+FORM (PitchTier_downto_TableOfReal, U"PitchTier: Down to TableOfReal", NULL) {
 	RADIO (U"Unit", 1)
 		RADIOBUTTON (U"Hertz")
 		RADIOBUTTON (U"Semitones")
@@ -4157,15 +4081,15 @@ DO
 	LOOP {
 		iam (PitchTier);
 		autoTableOfReal thee = PitchTier_downto_TableOfReal (me, GET_INTEGER (U"Unit") - 1);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (old_PitchTier_draw, U"PitchTier: Draw", nullptr) {
+FORM (old_PitchTier_draw, U"PitchTier: Draw", 0) {
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	double minimumFrequency = GET_REAL (STRING_FROM_FREQUENCY);
@@ -4180,11 +4104,11 @@ DO
 	}
 END2 }
 
-FORM (PitchTier_draw, U"PitchTier: Draw", nullptr) {
+FORM (PitchTier_draw, U"PitchTier: Draw", 0) {
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"")
 	OPTIONMENU (U"Drawing method", 1)
 		OPTION (U"lines")
@@ -4209,9 +4133,8 @@ DIRECT2 (PitchTier_edit) {
 	Sound sound = FIRST (Sound);
 	LOOP if (CLASS == classPitchTier) {
 		iam (PitchTier);
-		autoPitchTierEditor editor = PitchTierEditor_create (ID_AND_FULL_NAME, me, sound, true);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoPitchTierEditor editor = PitchTierEditor_create (ID_AND_FULL_NAME, me, sound, TRUE);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -4228,7 +4151,7 @@ DO
 	LOOP {
 		iam (PitchTier);
 		try {
-			RealTier_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			RealTier_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the PitchTier may have partially changed
@@ -4290,7 +4213,7 @@ DIRECT2 (PitchTier_hum) {
 	}
 END2 }
 
-FORM (PitchTier_interpolateQuadratically, U"PitchTier: Interpolate quadratically", nullptr) {
+FORM (PitchTier_interpolateQuadratically, U"PitchTier: Interpolate quadratically", 0) {
 	NATURAL (U"Number of points per parabola", U"4")
 	RADIO (U"Unit", 2)
 		RADIOBUTTON (U"Hz")
@@ -4318,7 +4241,7 @@ DIRECT2 (PitchTier_playSine) {
 	}
 END2 }
 
-FORM (PitchTier_shiftFrequencies, U"PitchTier: Shift frequencies", nullptr) {
+FORM (PitchTier_shiftFrequencies, U"PitchTier: Shift frequencies", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"1000.0")
 	REAL (U"Frequency shift", U"-20.0")
@@ -4349,7 +4272,7 @@ DO
 	}
 END2 }
 
-FORM (PitchTier_multiplyFrequencies, U"PitchTier: Multiply frequencies", nullptr) {
+FORM (PitchTier_multiplyFrequencies, U"PitchTier: Multiply frequencies", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"1000.0")
 	POSITIVE (U"Factor", U"1.2")
@@ -4380,11 +4303,11 @@ DIRECT2 (PitchTier_to_PointProcess) {
 	LOOP {
 		iam (PitchTier);
 		autoPointProcess thee = PitchTier_to_PointProcess (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (PitchTier_to_Sound_phonation, U"PitchTier: To Sound (phonation)", nullptr) {
+FORM (PitchTier_to_Sound_phonation, U"PitchTier: To Sound (phonation)", 0) {
 	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	POSITIVE (U"Adaptation factor", U"1.0")
 	POSITIVE (U"Maximum period (s)", U"0.05")
@@ -4392,7 +4315,7 @@ FORM (PitchTier_to_Sound_phonation, U"PitchTier: To Sound (phonation)", nullptr)
 	REAL (U"Collision phase", U"0.03")
 	POSITIVE (U"Power 1", U"3.0")
 	POSITIVE (U"Power 2", U"4.0")
-	BOOLEAN (U"Hum", false)
+	BOOLEAN (U"Hum", 0)
 	OK2
 DO
 	LOOP {
@@ -4400,16 +4323,16 @@ DO
 		autoSound thee = PitchTier_to_Sound_phonation (me, GET_REAL (U"Sampling frequency"),
 			GET_REAL (U"Adaptation factor"), GET_REAL (U"Maximum period"),
 			GET_REAL (U"Open phase"), GET_REAL (U"Collision phase"), GET_REAL (U"Power 1"), GET_REAL (U"Power 2"), GET_INTEGER (U"Hum"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (PitchTier_to_Sound_pulseTrain, U"PitchTier: To Sound (pulse train)", nullptr) {
+FORM (PitchTier_to_Sound_pulseTrain, U"PitchTier: To Sound (pulse train)", 0) {
 	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	POSITIVE (U"Adaptation factor", U"1.0")
 	POSITIVE (U"Adaptation time", U"0.05")
 	NATURAL (U"Interpolation depth (samples)", U"2000")
-	BOOLEAN (U"Hum", false)
+	BOOLEAN (U"Hum", 0)
 	OK2
 DO
 	LOOP {
@@ -4417,18 +4340,18 @@ DO
 		autoSound thee = PitchTier_to_Sound_pulseTrain (me, GET_REAL (U"Sampling frequency"),
 			GET_REAL (U"Adaptation factor"), GET_REAL (U"Adaptation time"),
 			GET_INTEGER (U"Interpolation depth"), GET_INTEGER (U"Hum"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (PitchTier_to_Sound_sine, U"PitchTier: To Sound (sine)", nullptr) {
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+FORM (PitchTier_to_Sound_sine, U"PitchTier: To Sound (sine)", 0) {
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	OK2
 DO
 	LOOP {
 		iam (PitchTier);
 		autoSound thee = PitchTier_to_Sound_sine (me, 0.0, 0.0, GET_REAL (U"Sampling frequency"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4437,14 +4360,14 @@ DIRECT2 (info_PitchTier_Sound_edit) {
 		"   select a PitchTier and a Sound, and click \"View & Edit\".");
 END2 }
 
-FORM_WRITE (PitchTier_writeToPitchTierSpreadsheetFile, U"Save PitchTier as spreadsheet", nullptr, U"PitchTier")
+FORM_WRITE (PitchTier_writeToPitchTierSpreadsheetFile, U"Save PitchTier as spreadsheet", 0, U"PitchTier")
 	LOOP {
 		iam (PitchTier);
 		PitchTier_writeToPitchTierSpreadsheetFile (me, file);
 	}
 END
 
-FORM_WRITE (PitchTier_writeToHeaderlessSpreadsheetFile, U"Save PitchTier as spreadsheet", nullptr, U"txt")
+FORM_WRITE (PitchTier_writeToHeaderlessSpreadsheetFile, U"Save PitchTier as spreadsheet", 0, U"txt")
 	LOOP {
 		iam (PitchTier);
 		PitchTier_writeToHeaderlessSpreadsheetFile (me, file);
@@ -4457,7 +4380,7 @@ DIRECT2 (PitchTier_PointProcess_to_PitchTier) {
 	PitchTier pitch = FIRST (PitchTier);
 	PointProcess point = FIRST (PointProcess);
 	autoPitchTier thee = PitchTier_PointProcess_to_PitchTier (pitch, point);
-	praat_new (thee.move(), pitch -> name);
+	praat_new (thee.transfer(), pitch -> name);
 END2 }
 
 /***** POINTPROCESS *****/
@@ -4482,7 +4405,7 @@ DO
 	double tmin = GET_REAL (U"Start time"), tmax = GET_REAL (U"End time");
 	if (tmax < tmin) Melder_throw (U"End time (", tmax, U") should not be less than start time (", tmin, U").");
 	autoPointProcess me = PointProcess_create (tmin, tmax, 0);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (PointProcess_createPoissonProcess, U"Create Poisson process", U"Create Poisson process...") {
@@ -4496,19 +4419,19 @@ DO
 	if (tmax < tmin)
 		Melder_throw (U"End time (", tmax, U") should not be less than start time (", tmin, U").");
 	autoPointProcess me = PointProcess_createPoissonProcess (tmin, tmax, GET_REAL (U"Density"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (PointProcess_difference) {
-	PointProcess point1 = nullptr, point2 = nullptr;
+	PointProcess point1 = NULL, point2 = NULL;
 	LOOP (point1 ? point2 : point1) = (PointProcess) OBJECT;
 	autoPointProcess thee = PointProcesses_difference (point1, point2);
-	praat_new (thee.move(), U"difference");
+	praat_new (thee.transfer(), U"difference");
 END2 }
 
-FORM (PointProcess_draw, U"PointProcess: Draw", nullptr) {
+FORM (PointProcess_draw, U"PointProcess: Draw", 0) {
 	praat_dia_timeRange (dia);
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -4525,12 +4448,11 @@ DIRECT2 (PointProcess_edit) {
 	LOOP if (CLASS == classPointProcess) {
 		iam (PointProcess);
 		autoPointEditor editor = PointEditor_create (ID_AND_FULL_NAME, me, sound);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
-FORM (PointProcess_fill, U"PointProcess: Fill", nullptr) {
+FORM (PointProcess_fill, U"PointProcess: Fill", 0) {
 	praat_dia_timeRange (dia);
 	POSITIVE (U"Period (s)", U"0.01")
 	OK2
@@ -4554,7 +4476,7 @@ DO
 	Melder_informationReal (PointProcess_getInterval (FIRST_ANY (PointProcess), GET_REAL (U"Time")), U"seconds");
 END2 }
 
-static void dia_PointProcess_getRangeProperty (UiForm dia) {
+static void dia_PointProcess_getRangeProperty (Any dia) {
 	praat_dia_timeRange (dia);
 	REAL (U"Shortest period (s)", U"0.0001")
 	REAL (U"Longest period (s)", U"0.02")
@@ -4567,7 +4489,7 @@ FORM (PointProcess_getJitter_local, U"PointProcess: Get jitter (local)", U"Point
 DO
 	Melder_informationReal (PointProcess_getJitter_local (FIRST_ANY (PointProcess),
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), nullptr);
+		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), NULL);
 END2 }
 
 FORM (PointProcess_getJitter_local_absolute, U"PointProcess: Get jitter (local, absolute)", U"PointProcess: Get jitter (local, absolute)...") {
@@ -4585,7 +4507,7 @@ FORM (PointProcess_getJitter_rap, U"PointProcess: Get jitter (rap)", U"PointProc
 DO
 	Melder_informationReal (PointProcess_getJitter_rap (FIRST_ANY (PointProcess),
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), nullptr);
+		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), NULL);
 END2 }
 
 FORM (PointProcess_getJitter_ppq5, U"PointProcess: Get jitter (ppq5)", U"PointProcess: Get jitter (ppq5)...") {
@@ -4594,7 +4516,7 @@ FORM (PointProcess_getJitter_ppq5, U"PointProcess: Get jitter (ppq5)", U"PointPr
 DO
 	Melder_informationReal (PointProcess_getJitter_ppq5 (FIRST_ANY (PointProcess),
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), nullptr);
+		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), NULL);
 END2 }
 
 FORM (PointProcess_getJitter_ddp, U"PointProcess: Get jitter (ddp)", U"PointProcess: Get jitter (ddp)...") {
@@ -4603,7 +4525,7 @@ FORM (PointProcess_getJitter_ddp, U"PointProcess: Get jitter (ddp)", U"PointProc
 DO
 	Melder_informationReal (PointProcess_getJitter_ddp (FIRST_ANY (PointProcess),
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
-		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), nullptr);
+		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor")), NULL);
 END2 }
 
 FORM (PointProcess_getMeanPeriod, U"PointProcess: Get mean period", U"PointProcess: Get mean period...") {
@@ -4681,10 +4603,10 @@ DIRECT2 (PointProcess_hum) {
 END2 }
 
 DIRECT2 (PointProcess_intersection) {
-	PointProcess point1 = nullptr, point2 = nullptr;
+	PointProcess point1 = NULL, point2 = NULL;
 	LOOP (point1 ? point2 : point1) = (PointProcess) OBJECT;
 	autoPointProcess thee = PointProcesses_intersection (point1, point2);
-	praat_new (thee.move(), U"intersection");
+	praat_new (thee.transfer(), U"intersection");
 END2 }
 
 DIRECT2 (PointProcess_play) {
@@ -4744,7 +4666,7 @@ DIRECT2 (PointProcess_to_IntervalTier) {
 	LOOP {
 		iam (PointProcess);
 		autoIntervalTier thee = IntervalTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4752,7 +4674,7 @@ DIRECT2 (PointProcess_to_Matrix) {
 	LOOP {
 		iam (PointProcess);
 		autoMatrix thee = PointProcess_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4763,7 +4685,7 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoPitchTier thee = PointProcess_to_PitchTier (me, GET_REAL (U"Maximum interval"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4775,7 +4697,7 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoTextGrid thee = TextGrid_create (my xmin, my xmax, GET_STRING (U"Tier names"), GET_STRING (U"Point tiers"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4787,7 +4709,7 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoTextGrid thee = PointProcess_to_TextGrid_vuv (me, GET_REAL (U"Maximum period"), GET_REAL (U"Mean period"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4795,7 +4717,7 @@ DIRECT2 (PointProcess_to_TextTier) {
 	LOOP {
 		iam (PointProcess);
 		autoTextTier thee = TextTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4814,7 +4736,7 @@ DO
 		autoSound thee = PointProcess_to_Sound_phonation (me, GET_REAL (U"Sampling frequency"),
 			GET_REAL (U"Adaptation factor"), GET_REAL (U"Maximum period"),
 			GET_REAL (U"Open phase"), GET_REAL (U"Collision phase"), GET_REAL (U"Power 1"), GET_REAL (U"Power 2"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4830,7 +4752,7 @@ DO
 		autoSound thee = PointProcess_to_Sound_pulseTrain (me, GET_REAL (U"Sampling frequency"),
 			GET_REAL (U"Adaptation factor"), GET_REAL (U"Adaptation time"),
 			GET_INTEGER (U"Interpolation depth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4838,15 +4760,15 @@ DIRECT2 (PointProcess_to_Sound_hum) {
 	LOOP {
 		iam (PointProcess);
 		autoSound thee = PointProcess_to_Sound_hum (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (PointProcess_union) {
-	PointProcess point1 = nullptr, point2 = nullptr;
+	PointProcess point1 = NULL, point2 = NULL;
 	LOOP (point1 ? point2 : point1) = (PointProcess) OBJECT;
 	autoPointProcess thee = PointProcesses_union (point1, point2);
-	praat_new (thee.move(), U"union");
+	praat_new (thee.transfer(), U"union");
 END2 }
 
 FORM (PointProcess_upto_IntensityTier, U"PointProcess: Up to IntensityTier", U"PointProcess: Up to IntensityTier...") {
@@ -4856,7 +4778,7 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoIntensityTier thee = PointProcess_upto_IntensityTier (me, GET_REAL (U"Intensity"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4867,7 +4789,7 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoPitchTier thee = PointProcess_upto_PitchTier (me, GET_REAL (U"Frequency"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -4878,11 +4800,11 @@ DO
 	LOOP {
 		iam (PointProcess);
 		autoTextTier thee = PointProcess_upto_TextTier (me, GET_STRING (U"Text"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (PointProcess_voice, U"PointProcess: Fill unvoiced parts", nullptr) {
+FORM (PointProcess_voice, U"PointProcess: Fill unvoiced parts", 0) {
 	POSITIVE (U"Period (s)", U"0.01")
 	POSITIVE (U"Maximum voiced period (s)", U"0.02000000001")
 	OK2
@@ -4906,6 +4828,12 @@ END2 }
 
 /***** POINTPROCESS & SOUND *****/
 
+/*DIRECT (Sound_PointProcess_to_Manipulation)
+	Sound sound = ONLY (classSound);
+	PointProcess point = ONLY (classPointProcess);
+	if (! praat_new1 (Sound_PointProcess_to_Manipulation (sound, point), point -> name)) return 0;
+END*/
+
 DIRECT2 (Point_Sound_transplantDomain) {
 	PointProcess point = FIRST (PointProcess);
 	Sound sound = FIRST (Sound);
@@ -4925,7 +4853,7 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
 FORM (Point_Sound_getShimmer_local_dB, U"PointProcess & Sound: Get shimmer (local, dB)", U"PointProcess & Sound: Get shimmer (local, dB)...") {
@@ -4939,7 +4867,7 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
 FORM (Point_Sound_getShimmer_apq3, U"PointProcess & Sound: Get shimmer (apq3)", U"PointProcess & Sound: Get shimmer (apq3)...") {
@@ -4953,7 +4881,7 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
 FORM (Point_Sound_getShimmer_apq5, U"PointProcess & Sound: Get shimmer (apq)", U"PointProcess & Sound: Get shimmer (apq5)...") {
@@ -4967,7 +4895,7 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
 FORM (Point_Sound_getShimmer_apq11, U"PointProcess & Sound: Get shimmer (apq11)", U"PointProcess & Sound: Get shimmer (apq11)...") {
@@ -4981,7 +4909,7 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
 FORM (Point_Sound_getShimmer_dda, U"PointProcess & Sound: Get shimmer (dda)", U"PointProcess & Sound: Get shimmer (dda)...") {
@@ -4995,10 +4923,10 @@ DO
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"),
 		GET_REAL (U"Maximum period factor"), GET_REAL (U"Maximum amplitude factor"));
-	Melder_informationReal (shimmer, nullptr);
+	Melder_informationReal (shimmer, NULL);
 END2 }
 
-FORM (PointProcess_Sound_to_AmplitudeTier_period, U"PointProcess & Sound: To AmplitudeTier (period)", nullptr) {
+FORM (PointProcess_Sound_to_AmplitudeTier_period, U"PointProcess & Sound: To AmplitudeTier (period)", 0) {
 	dia_PointProcess_getRangeProperty (dia);
 	OK2
 DO
@@ -5007,17 +4935,17 @@ DO
 	autoAmplitudeTier thee = PointProcess_Sound_to_AmplitudeTier_period (point, sound,
 		GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor"));
-	praat_new (thee.move(), sound -> name, U"_", point -> name);
+	praat_new (thee.transfer(), sound -> name, U"_", point -> name);
 END2 }
 
 DIRECT2 (PointProcess_Sound_to_AmplitudeTier_point) {
 	PointProcess point = FIRST (PointProcess);
 	Sound sound = FIRST (Sound);
 	autoAmplitudeTier thee = PointProcess_Sound_to_AmplitudeTier_point (point, sound);
-	praat_new (thee.move(), sound -> name, U"_", point -> name);
+	praat_new (thee.transfer(), sound -> name, U"_", point -> name);
 END2 }
 
-FORM (PointProcess_Sound_to_Ltas, U"PointProcess & Sound: To Ltas", nullptr) {
+FORM (PointProcess_Sound_to_Ltas, U"PointProcess & Sound: To Ltas", 0) {
 	POSITIVE (U"Maximum frequency (Hz)", U"5000")
 	POSITIVE (U"Band width (Hz)", U"100")
 	REAL (U"Shortest period (s)", U"0.0001")
@@ -5030,10 +4958,10 @@ DO
 	autoLtas thee = PointProcess_Sound_to_Ltas (point, sound,
 		GET_REAL (U"Maximum frequency"), GET_REAL (U"Band width"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor"));
-	praat_new (thee.move(), sound -> name);
+	praat_new (thee.transfer(), sound -> name);
 END2 }
 
-FORM (PointProcess_Sound_to_Ltas_harmonics, U"PointProcess & Sound: To Ltas (harmonics", nullptr) {
+FORM (PointProcess_Sound_to_Ltas_harmonics, U"PointProcess & Sound: To Ltas (harmonics", 0) {
 	NATURAL (U"Maximum harmonic", U"20")
 	REAL (U"Shortest period (s)", U"0.0001")
 	REAL (U"Longest period (s)", U"0.02")
@@ -5045,10 +4973,10 @@ DO
 	autoLtas thee = PointProcess_Sound_to_Ltas_harmonics (point, sound,
 		GET_INTEGER (U"Maximum harmonic"),
 		GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor"));
-	praat_new (thee.move(), sound -> name);
+	praat_new (thee.transfer(), sound -> name);
 END2 }
 
-FORM (Sound_PointProcess_to_SoundEnsemble_correlate, U"Sound & PointProcess: To SoundEnsemble (correlate)", nullptr) {
+FORM (Sound_PointProcess_to_SoundEnsemble_correlate, U"Sound & PointProcess: To SoundEnsemble (correlate)", 0) {
 	REAL (U"From time (s)", U"-0.1")
 	REAL (U"To time (s)", U"1.0")
 	OK2
@@ -5056,12 +4984,12 @@ DO
 	PointProcess point = FIRST (PointProcess);
 	Sound sound = FIRST (Sound);
 	autoSound thee = Sound_PointProcess_to_SoundEnsemble_correlate (sound, point, GET_REAL (U"From time"), GET_REAL (U"To time"));
-	praat_new (thee.move(), point -> name);
+	praat_new (thee.transfer(), point -> name);
 END2 }
 
 /***** POLYGON *****/
 
-FORM (Polygon_draw, U"Polygon: Draw", nullptr) {
+FORM (Polygon_draw, U"Polygon: Draw", 0) {
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0")
 	REAL (U"Ymin", U"0.0")
@@ -5075,12 +5003,12 @@ DO
 	}
 END2 }
 
-FORM (Polygon_drawCircles, U"Polygon: Draw circles", nullptr) {
+FORM (Polygon_drawCircles, U"Polygon: Draw circles", 0) {
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0 (= all)")
 	REAL (U"Ymin", U"0.0")
 	REAL (U"Ymax", U"0.0 (= all)")
-	POSITIVE (U"Diameter (mm)", U"3.0")
+	POSITIVE (U"Diameter (mm)", U"3")
 	OK2
 DO
 	LOOP {
@@ -5092,7 +5020,7 @@ DO
 	}
 END2 }
 
-FORM (Polygon_drawClosed, U"Polygon: Draw", nullptr) {
+FORM (Polygon_drawClosed, U"Polygon: Draw", 0) {
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0")
 	REAL (U"Ymin", U"0.0")
@@ -5106,7 +5034,7 @@ DO
 	}
 END2 }
 
-FORM (Polygons_drawConnection, U"Polygons: Draw connection", nullptr) {
+FORM (Polygons_drawConnection, U"Polygons: Draw connection", 0) {
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0 (= all)")
 	REAL (U"Ymin", U"0.0")
@@ -5115,7 +5043,7 @@ FORM (Polygons_drawConnection, U"Polygons: Draw connection", nullptr) {
 	POSITIVE (U"Relative length", U"0.9")
 	OK2
 DO
-	Polygon polygon1 = nullptr, polygon2 = nullptr;
+	Polygon polygon1 = NULL, polygon2 = NULL;
 	LOOP (polygon1 ? polygon2 : polygon1) = (Polygon) OBJECT;
 	autoPraatPicture picture;
 	Polygons_drawConnection (polygon1, polygon2, GRAPHICS,
@@ -5127,7 +5055,7 @@ DIRECT2 (Polygon_help) {
 	Melder_help (U"Polygon");
 END2 }
 
-FORM (Polygon_paint, U"Polygon: Paint", nullptr) {
+FORM (Polygon_paint, U"Polygon: Paint", 0) {
 	COLOUR (U"Colour (0-1, name, or {r,g,b})", U"0.5")
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0 (= all)")
@@ -5142,12 +5070,12 @@ DO
 	}
 END2 }
 
-FORM (Polygon_paintCircles, U"Polygon: Paint circles", nullptr) {
+FORM (Polygon_paintCircles, U"Polygon: Paint circles", 0) {
 	REAL (U"Xmin", U"0.0")
 	REAL (U"Xmax", U"0.0 (= all)")
 	REAL (U"Ymin", U"0.0")
 	REAL (U"Ymax", U"0.0 (= all)")
-	POSITIVE (U"Diameter (mm)", U"3.0")
+	POSITIVE (U"Diameter (mm)", U"3")
 	OK2
 DO
 	LOOP {
@@ -5166,7 +5094,7 @@ DIRECT2 (Polygon_randomize) {
 	}
 END2 }
 
-FORM (Polygon_salesperson, U"Polygon: Find shortest path", nullptr) {
+FORM (Polygon_salesperson, U"Polygon: Find shortest path", 0) {
 	NATURAL (U"Number of iterations", U"1")
 	OK2
 DO
@@ -5181,7 +5109,7 @@ DIRECT2 (Polygon_to_Matrix) {
 	LOOP {
 		iam (Polygon);
 		autoMatrix thee = Polygon_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5208,13 +5136,13 @@ END2 }
 
 /***** SOUND & POINTPROCESS & PITCHTIER & DURATIONTIER *****/
 
-FORM (Sound_Point_Pitch_Duration_to_Sound, U"To Sound", nullptr) {
+FORM (Sound_Point_Pitch_Duration_to_Sound, U"To Sound", 0) {
 	POSITIVE (U"Longest period (s)", U"0.02")
 	OK2
 DO
 	autoSound thee = Sound_Point_Pitch_Duration_to_Sound (FIRST (Sound), FIRST (PointProcess),
 		FIRST (PitchTier), FIRST (DurationTier), GET_REAL (U"Longest period"));
-	praat_new (thee.move(), U"manip");
+	praat_new (thee.transfer(), U"manip");
 END2 }
 
 /***** SPECTROGRAM *****/
@@ -5254,7 +5182,7 @@ DO
 	LOOP {
 		iam (Spectrogram);
 		try {
-			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Spectrogram may have partially changed
@@ -5263,7 +5191,7 @@ DO
 	}
 END2 }
 
-FORM (Spectrogram_getPowerAt, U"Spectrogram: Get power at (time, frequency)", nullptr) {
+FORM (Spectrogram_getPowerAt, U"Spectrogram: Get power at (time, frequency)", 0) {
 	REAL (U"Time (s)", U"0.5")
 	REAL (U"Frequency (Hz)", U"1000")
 	OK2
@@ -5292,29 +5220,29 @@ DIRECT2 (Spectrogram_to_Matrix) {
 	LOOP {
 		iam (Spectrogram);
 		autoMatrix thee = Spectrogram_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Spectrogram_to_Sound, U"Spectrogram: To Sound", nullptr) {
+FORM (Spectrogram_to_Sound, U"Spectrogram: To Sound", 0) {
 	REAL (U"Sampling frequency (Hz)", U"44100")
 	OK2
 DO
 	LOOP {
 		iam (Spectrogram);
 		autoSound thee = Spectrogram_to_Sound (me, GET_REAL (U"Sampling frequency"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Spectrogram_to_Spectrum, U"Spectrogram: To Spectrum (slice)", nullptr) {
+FORM (Spectrogram_to_Spectrum, U"Spectrogram: To Spectrum (slice)", 0) {
 	REAL (U"Time (seconds)", U"0.0")
 	OK2
 DO
 	LOOP {
 		iam (Spectrogram);
 		autoSpectrum thee = Spectrogram_to_Spectrum (me, GET_REAL (U"Time"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5323,30 +5251,29 @@ DIRECT2 (Spectrogram_view) {
 	LOOP {
 		iam (Spectrogram);
 		autoSpectrogramEditor editor = SpectrogramEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 /***** SPECTRUM *****/
 
-FORM (Spectrum_cepstralSmoothing, U"Spectrum: Cepstral smoothing", nullptr) {
+FORM (Spectrum_cepstralSmoothing, U"Spectrum: Cepstral smoothing", 0) {
 	POSITIVE (U"Bandwidth (Hz)", U"500.0")
 	OK2
 DO
 	LOOP {
 		iam (Spectrum);
 		autoSpectrum thee = Spectrum_cepstralSmoothing (me, GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Spectrum_draw, U"Spectrum: Draw", nullptr) {
+FORM (Spectrum_draw, U"Spectrum: Draw", 0) {
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"0.0 (= all)")
 	REAL (U"Minimum power (dB/Hz)", U"0 (= auto)")
 	REAL (U"Maximum power (dB/Hz)", U"0 (= auto)")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -5358,12 +5285,12 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_drawLogFreq, U"Spectrum: Draw (log freq)", nullptr) {
+FORM (Spectrum_drawLogFreq, U"Spectrum: Draw (log freq)", 0) {
 	POSITIVE (U"left Frequency range (Hz)", U"10.0")
 	POSITIVE (U"right Frequency range (Hz)", U"10000.0")
 	REAL (U"Minimum power (dB/Hz)", U"0 (= auto)")
 	REAL (U"Maximum power (dB/Hz)", U"0 (= auto)")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -5380,8 +5307,7 @@ DIRECT2 (Spectrum_edit) {
 	LOOP {
 		iam (Spectrum);
 		autoSpectrumEditor editor = SpectrumEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -5398,7 +5324,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		try {
-			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Spectrum may have partially changed
@@ -5407,7 +5333,7 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getBandDensity, U"Spectrum: Get band density", nullptr) {
+FORM (Spectrum_getBandDensity, U"Spectrum: Get band density", 0) {
 	REAL (U"Band floor (Hz)", U"200.0")
 	REAL (U"Band ceiling (Hz)", U"1000")
 	OK2
@@ -5419,11 +5345,11 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getBandDensityDifference, U"Spectrum: Get band density difference", nullptr) {
-	REAL (U"Low band floor (Hz)", U"0.0")
-	REAL (U"Low band ceiling (Hz)", U"500.0")
-	REAL (U"High band floor (Hz)", U"500.0")
-	REAL (U"High band ceiling (Hz)", U"4000.0")
+FORM (Spectrum_getBandDensityDifference, U"Spectrum: Get band density difference", 0) {
+	REAL (U"Low band floor (Hz)", U"0")
+	REAL (U"Low band ceiling (Hz)", U"500")
+	REAL (U"High band floor (Hz)", U"500")
+	REAL (U"High band ceiling (Hz)", U"4000")
 	OK2
 DO
 	LOOP {
@@ -5434,9 +5360,9 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getBandEnergy, U"Spectrum: Get band energy", nullptr) {
+FORM (Spectrum_getBandEnergy, U"Spectrum: Get band energy", 0) {
 	REAL (U"Band floor (Hz)", U"200.0")
-	REAL (U"Band ceiling (Hz)", U"1000.0")
+	REAL (U"Band ceiling (Hz)", U"1000")
 	OK2
 DO
 	LOOP {
@@ -5446,11 +5372,11 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getBandEnergyDifference, U"Spectrum: Get band energy difference", nullptr) {
-	REAL (U"Low band floor (Hz)", U"0.0")
-	REAL (U"Low band ceiling (Hz)", U"500.0")
-	REAL (U"High band floor (Hz)", U"500.0")
-	REAL (U"High band ceiling (Hz)", U"4000.0")
+FORM (Spectrum_getBandEnergyDifference, U"Spectrum: Get band energy difference", 0) {
+	REAL (U"Low band floor (Hz)", U"0")
+	REAL (U"Low band ceiling (Hz)", U"500")
+	REAL (U"High band floor (Hz)", U"500")
+	REAL (U"High band ceiling (Hz)", U"4000")
 	OK2
 DO
 	LOOP {
@@ -5461,14 +5387,14 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getBinFromFrequency, U"Spectrum: Get bin from frequency", nullptr) {
+FORM (Spectrum_getBinFromFrequency, U"Spectrum: Get bin from frequency", 0) {
 	REAL (U"Frequency (Hz)", U"2000")
 	OK2
 DO
 	LOOP {
 		iam (Spectrum);
 		double bin = Sampled_xToIndex (me, GET_REAL (U"Frequency"));
-		Melder_informationReal (bin, nullptr);
+		Melder_informationReal (bin, NULL);
 	}
 END2 }
 
@@ -5502,7 +5428,7 @@ DO
 	}
 END2 }
 
-FORM (Spectrum_getFrequencyFromBin, U"Spectrum: Get frequency from bin", nullptr) {
+FORM (Spectrum_getFrequencyFromBin, U"Spectrum: Get frequency from bin", 0) {
 	NATURAL (U"Band number", U"1")
 	OK2
 DO
@@ -5520,7 +5446,7 @@ DIRECT2 (Spectrum_getHighestFrequency) {
 	}
 END2 }
 
-FORM (Spectrum_getImaginaryValueInBin, U"Spectrum: Get imaginary value in bin", nullptr) {
+FORM (Spectrum_getImaginaryValueInBin, U"Spectrum: Get imaginary value in bin", 0) {
 	NATURAL (U"Bin number", U"100")
 	OK2
 DO
@@ -5528,7 +5454,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		if (binNumber > my nx) Melder_throw (U"Bin number must not exceed number of bins.");
-		Melder_informationReal (my z [2] [binNumber], nullptr);
+		Melder_informationReal (my z [2] [binNumber], NULL);
 	}
 END2 }
 
@@ -5539,7 +5465,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		double kurtosis = Spectrum_getKurtosis (me, GET_REAL (U"Power"));
-		Melder_informationReal (kurtosis, nullptr);
+		Melder_informationReal (kurtosis, NULL);
 	}
 END2 }
 
@@ -5557,7 +5483,7 @@ DIRECT2 (Spectrum_getNumberOfBins) {
 	}
 END2 }
 
-FORM (Spectrum_getRealValueInBin, U"Spectrum: Get real value in bin", nullptr) {
+FORM (Spectrum_getRealValueInBin, U"Spectrum: Get real value in bin", 0) {
 	NATURAL (U"Bin number", U"100")
 	OK2
 DO
@@ -5565,7 +5491,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		if (binNumber > my nx) Melder_throw (U"Bin number must not exceed number of bins.");
-		Melder_informationReal (my z [1] [binNumber], nullptr);
+		Melder_informationReal (my z [1] [binNumber], NULL);
 	}
 END2 }
 
@@ -5576,7 +5502,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		double skewness = Spectrum_getSkewness (me, GET_REAL (U"Power"));
-		Melder_informationReal (skewness, nullptr);
+		Melder_informationReal (skewness, NULL);
 	}
 END2 }
 
@@ -5620,7 +5546,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoSpectrum thee = Spectrum_lpcSmoothing (me, GET_INTEGER (U"Number of peaks"), GET_REAL (U"Pre-emphasis from"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5657,7 +5583,7 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoExcitation thee = Spectrum_to_Excitation (me, GET_REAL (U"Frequency resolution"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5669,18 +5595,18 @@ DO
 	LOOP {
 		iam (Spectrum);
 		autoFormant thee = Spectrum_to_Formant (me, GET_INTEGER (U"Maximum number of formants"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Spectrum_to_Ltas, U"Spectrum: To Long-term average spectrum", nullptr) {
-	POSITIVE (U"Bandwidth (Hz)", U"1000.0")
+FORM (Spectrum_to_Ltas, U"Spectrum: To Long-term average spectrum", 0) {
+	POSITIVE (U"Bandwidth (Hz)", U"1000")
 	OK2
 DO
 	LOOP {
 		iam (Spectrum);
 		autoLtas thee = Spectrum_to_Ltas (me, GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5688,7 +5614,7 @@ DIRECT2 (Spectrum_to_Ltas_1to1) {
 	LOOP {
 		iam (Spectrum);
 		autoLtas thee = Spectrum_to_Ltas_1to1 (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5696,7 +5622,7 @@ DIRECT2 (Spectrum_to_Matrix) {
 	LOOP {
 		iam (Spectrum);
 		autoMatrix thee = Spectrum_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5704,7 +5630,7 @@ DIRECT2 (Spectrum_to_Sound) {
 	LOOP {
 		iam (Spectrum);
 		autoSound thee = Spectrum_to_Sound (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5712,7 +5638,7 @@ DIRECT2 (Spectrum_to_Spectrogram) {
 	LOOP {
 		iam (Spectrum);
 		autoSpectrogram thee = Spectrum_to_Spectrogram (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5720,7 +5646,7 @@ DIRECT2 (Spectrum_to_SpectrumTier_peaks) {
 	LOOP {
 		iam (Spectrum);
 		autoSpectrumTier thee = Spectrum_to_SpectrumTier_peaks (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -5730,16 +5656,16 @@ DIRECT2 (SpectrumTier_downto_Table) {
 	LOOP {
 		iam (SpectrumTier);
 		autoTable thee = SpectrumTier_downto_Table (me, true, true, true);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (old_SpectrumTier_draw, U"SpectrumTier: Draw", nullptr) {   // 2010-10-19
+FORM (old_SpectrumTier_draw, U"SpectrumTier: Draw", 0) {   // 2010/10/19
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"10000.0")
 	REAL (U"left Power range (dB)", U"20.0")
 	REAL (U"right Power range (dB)", U"80.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	LOOP {
@@ -5752,12 +5678,12 @@ DO
 	}
 END2 }
 
-FORM (SpectrumTier_draw, U"SpectrumTier: Draw", nullptr) {
+FORM (SpectrumTier_draw, U"SpectrumTier: Draw", 0) {
 	REAL (U"left Frequency range (Hz)", U"0.0")
 	REAL (U"right Frequency range (Hz)", U"10000.0")
 	REAL (U"left Power range (dB)", U"20.0")
 	REAL (U"right Power range (dB)", U"80.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	LABEL (U"", U"")
 	OPTIONMENU (U"Drawing method", 1)
 		OPTION (U"lines")
@@ -5775,7 +5701,7 @@ DO_ALTERNATIVE (old_SpectrumTier_draw)
 	}
 END2 }
 
-FORM (SpectrumTier_list, U"SpectrumTier: List", nullptr) {
+FORM (SpectrumTier_list, U"SpectrumTier: List", 0) {
 	BOOLEAN (U"Include indexes", true)
 	BOOLEAN (U"Include frequency", true)
 	BOOLEAN (U"Include power density", true)
@@ -5787,7 +5713,7 @@ DO
 	}
 END2 }
 
-FORM (SpectrumTier_removePointsBelow, U"SpectrumTier: Remove points below", nullptr) {
+FORM (SpectrumTier_removePointsBelow, U"SpectrumTier: Remove points below", 0) {
 	REAL (U"Remove all points below (dB)", U"40.0")
 	OK2
 DO
@@ -5805,9 +5731,9 @@ FORM (Strings_createAsFileList, U"Create Strings as file list", U"Create Strings
 	LABEL (U"", U"File path:")
 	TEXTFIELD (U"path", U"/people/Miep/*.wav")
 	OK2
-static bool inited;
+static int inited;
 if (! inited) {
-	structMelderDir defaultDir { { 0 } };
+	structMelderDir defaultDir = { { 0 } };
 	Melder_getDefaultDir (& defaultDir);
 	char32 *workingDirectory = Melder_dirToPath (& defaultDir);
 	char32 path [kMelder_MAXPATH+1];
@@ -5822,11 +5748,11 @@ if (! inited) {
 		Melder_sprint (path, kMelder_MAXPATH+1, workingDirectory, U"*.wav");
 	#endif
 	SET_STRING (U"path", path);
-	inited = true;
+	inited = TRUE;
 }
 DO
 	autoStrings me = Strings_createAsFileList (GET_STRING (U"path"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (Strings_createAsDirectoryList, U"Create Strings as directory list", U"Create Strings as directory list...") {
@@ -5834,7 +5760,7 @@ FORM (Strings_createAsDirectoryList, U"Create Strings as directory list", U"Crea
 	LABEL (U"", U"Path:")
 	TEXTFIELD (U"path", U"/people/Miep/*")
 	OK2
-static bool inited;
+static int inited;
 if (! inited) {
 	structMelderDir defaultDir = { { 0 } };
 	Melder_getDefaultDir (& defaultDir);
@@ -5851,11 +5777,11 @@ if (! inited) {
 		Melder_sprint (path, kMelder_MAXPATH+1, workingDirectory, U"*");
 	#endif
 	SET_STRING (U"path", path);
-	inited = true;
+	inited = TRUE;
 }
 DO
 	autoStrings me = Strings_createAsDirectoryList (GET_STRING (U"path"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 DIRECT2 (Strings_edit) {
@@ -5863,13 +5789,12 @@ DIRECT2 (Strings_edit) {
 	LOOP {
 		iam (Strings);
 		autoStringsEditor editor = StringsEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 DIRECT2 (Strings_equal) {
-	Strings s1 = nullptr, s2 = nullptr;
+	Strings s1 = NULL, s2 = NULL;
 	LOOP (s1 ? s2 : s1) = (Strings) OBJECT;
 	bool equal = Data_equal (s1, s2);
 	Melder_information ((int) equal);   // we need a 0 or 1
@@ -5895,7 +5820,7 @@ DIRECT2 (Strings_getNumberOfStrings) {
 	}
 END2 }
 
-FORM (Strings_getString, U"Get string", nullptr) {
+FORM (Strings_getString, U"Get string", 0) {
 	NATURAL (U"Position", U"1")
 	OK2
 DO
@@ -5946,10 +5871,10 @@ END2 }
 
 FORM_READ2 (Strings_readFromRawTextFile, U"Read Strings from raw text file", 0, true) {
 	autoStrings me = Strings_readFromRawTextFile (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-FORM (Strings_removeString, U"Strings: Remove string", nullptr) {
+FORM (Strings_removeString, U"Strings: Remove string", 0) {
 	NATURAL (U"Position", U"1")
 	OK2
 DO
@@ -5960,7 +5885,7 @@ DO
 	}
 END2 }
 
-FORM (Strings_replaceAll, U"Strings: Replace all", nullptr) {
+FORM (Strings_replaceAll, U"Strings: Replace all", 0) {
 	SENTENCE (U"Find", U"a")
 	SENTENCE (U"Replace with", U"b")
 	INTEGER (U"Replace limit per string", U"0 (=unlimited)")
@@ -5972,13 +5897,12 @@ DO
 	long numberOfMatches, numberOfStringMatches;
 	LOOP {
 		iam (Strings);
-		autoStrings thee = Strings_change (me, GET_STRING (U"Find"), GET_STRING (U"Replace with"),
-			GET_INTEGER (U"Replace limit per string"), & numberOfMatches, & numberOfStringMatches, GET_INTEGER (U"Find and replace strings are") - 1);
-		praat_new (thee.move());
+		praat_new (Strings_change (me, GET_STRING (U"Find"), GET_STRING (U"Replace with"),
+			GET_INTEGER (U"Replace limit per string"), & numberOfMatches, & numberOfStringMatches, GET_INTEGER (U"Find and replace strings are") - 1), 0);
 	}
 END2 }
 
-FORM (Strings_setString, U"Strings: Set string", nullptr) {
+FORM (Strings_setString, U"Strings: Set string", 0) {
 	NATURAL (U"Position", U"1")
 	LABEL (U"", U"New string:")
 	TEXTFIELD (U"newString", U"")
@@ -6003,7 +5927,7 @@ DIRECT2 (Strings_to_Distributions) {
 	LOOP {
 		iam (Strings);
 		autoDistributions thee = Strings_to_Distributions (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -6011,11 +5935,11 @@ DIRECT2 (Strings_to_WordList) {
 	LOOP {
 		iam (Strings);
 		autoWordList thee = Strings_to_WordList (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM_WRITE (Strings_writeToRawTextFile, U"Save Strings as text file", nullptr, U"txt")
+FORM_WRITE (Strings_writeToRawTextFile, U"Save Strings as text file", 0, U"txt")
 	LOOP {
 		iam (Strings);
 		Strings_writeToRawTextFile (me, file);
@@ -6028,7 +5952,7 @@ DIRECT2 (Table_to_Matrix) {
 	LOOP {
 		iam (Table);
 		autoMatrix thee = Table_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -6046,14 +5970,14 @@ DO
 	double tmin = GET_REAL (U"Start time"), tmax = GET_REAL (U"End time");
 	if (tmax <= tmin) Melder_throw (U"End time should be greater than start time");
 	autoTextGrid thee = TextGrid_create (tmin, tmax, GET_STRING (U"All tier names"), GET_STRING (U"Which of these are point tiers?"));
-	praat_new (thee.move(), GET_STRING (U"All tier names"));
+	praat_new (thee.transfer(), GET_STRING (U"All tier names"));
 END2 }
 
 /***** TEXTTIER, rest in praat_TextGrid_init.cpp *****/
 
-FORM_READ2 (TextTier_readFromXwaves, U"Read TextTier from Xwaves", nullptr, true) {
+FORM_READ2 (TextTier_readFromXwaves, U"Read TextTier from Xwaves", 0, true) {
 	autoTextTier me = TextTier_readFromXwaves (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
 /***** TIMEFRAMESAMPLED *****/
@@ -6073,7 +5997,7 @@ DO
 	LOOP {
 		iam (Sampled);
 		double frame = Sampled_xToIndex (me, GET_REAL (U"Time"));
-		Melder_informationReal (frame, nullptr);
+		Melder_informationReal (frame, NULL);
 	}
 END2 }
 
@@ -6122,7 +6046,7 @@ DIRECT2 (TimeFunction_getStartTime) {
 	}
 END2 }
 
-FORM (TimeFunction_scaleTimesBy, U"Scale times by", nullptr) {
+FORM (TimeFunction_scaleTimesBy, U"Scale times by", 0) {
 	POSITIVE (U"Factor", U"2.0")
 	OK2
 DO
@@ -6133,7 +6057,7 @@ DO
 	}
 END2 }
 
-FORM (TimeFunction_scaleTimesTo, U"Scale times to", nullptr) {
+FORM (TimeFunction_scaleTimesTo, U"Scale times to", 0) {
 	REAL (U"New start time (s)", U"0.0")
 	REAL (U"New end time (s)", U"1.0")
 	OK2
@@ -6147,7 +6071,7 @@ DO
 	}
 END2 }
 
-FORM (TimeFunction_shiftTimesBy, U"Shift times by", nullptr) {
+FORM (TimeFunction_shiftTimesBy, U"Shift times by", 0) {
 	REAL (U"Shift (s)", U"0.5")
 	OK2
 DO
@@ -6158,7 +6082,7 @@ DO
 	}
 END2 }
 
-FORM (TimeFunction_shiftTimesTo, U"Shift times to", nullptr) {
+FORM (TimeFunction_shiftTimesTo, U"Shift times to", 0) {
 	RADIO (U"Shift", 1)
 		OPTION (U"start time")
 		OPTION (U"centre time")
@@ -6190,7 +6114,7 @@ FORM (TimeTier_getHighIndexFromTime, U"Get high index", U"AnyTier: Get high inde
 DO
 	LOOP {
 		iam (AnyTier);
-		Melder_information (my points.size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToHighIndex (me, GET_REAL (U"Time"))));
+		Melder_information (my points -> size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToHighIndex (me, GET_REAL (U"Time"))));
 	}
 END2 }
 
@@ -6200,7 +6124,7 @@ FORM (TimeTier_getLowIndexFromTime, U"Get low index", U"AnyTier: Get low index f
 DO
 	LOOP {
 		iam (AnyTier);
-		Melder_information (my points.size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToLowIndex (me, GET_REAL (U"Time"))));
+		Melder_information (my points -> size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToLowIndex (me, GET_REAL (U"Time"))));
 	}
 END2 }
 
@@ -6210,26 +6134,26 @@ FORM (TimeTier_getNearestIndexFromTime, U"Get nearest index", U"AnyTier: Get nea
 DO
 	LOOP {
 		iam (AnyTier);
-		Melder_information (my points.size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToNearestIndex (me, GET_REAL (U"Time"))));
+		Melder_information (my points -> size == 0 ? U"--undefined--" : Melder_integer (AnyTier_timeToNearestIndex (me, GET_REAL (U"Time"))));
 	}
 END2 }
 
 DIRECT2 (TimeTier_getNumberOfPoints) {
 	LOOP {
 		iam (AnyTier);
-		Melder_information (my points.size, U" points");
+		Melder_information (my points -> size, U" points");
 	}
 END2 }
 
-FORM (TimeTier_getTimeFromIndex, U"Get time", nullptr /*"AnyTier: Get time from index..."*/) {
+FORM (TimeTier_getTimeFromIndex, U"Get time", 0 /*"AnyTier: Get time from index..."*/) {
 	NATURAL (U"Point number", U"10")
 	OK2
 DO
 	LOOP {
 		iam (AnyTier);
 		long i = GET_INTEGER (U"Point number");
-		if (i > my points.size) Melder_information (U"--undefined--");
-		else Melder_informationReal (my points.at [i] -> number, U"seconds");
+		if (i > my points -> size) Melder_information (U"--undefined--");
+		else Melder_informationReal (((AnyPoint) my points -> item [i]) -> number, U"seconds");
 	}
 END2 }
 
@@ -6273,11 +6197,11 @@ DIRECT2 (Transition_conflate) {
 	LOOP {
 		iam (Transition);
 		autoDistributions thee = Transition_to_Distributions_conflate (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Transition_drawAsNumbers, U"Draw as numbers", nullptr) {
+FORM (Transition_drawAsNumbers, U"Draw as numbers", 0) {
 	RADIO (U"Format", 1)
 		RADIOBUTTON (U"decimal")
 		RADIOBUTTON (U"exponential")
@@ -6296,10 +6220,12 @@ END2 }
 DIRECT2 (Transition_eigen) {
 	LOOP {
 		iam (Transition);
-		autoMatrix vectors, values;
-		Transition_eigen (me, & vectors, & values);
-		praat_new (vectors.move(), U"eigenvectors");
-		praat_new (values.move(), U"eigenvalues");
+		Matrix vec_, val_;
+		Transition_eigen (me, & vec_, & val_);
+		autoMatrix vec = vec_;
+		autoMatrix val = val_;
+		praat_new (vec.transfer(), U"eigenvectors");
+		praat_new (val.transfer(), U"eigenvalues");
 	}
 END2 }
 
@@ -6307,14 +6233,14 @@ DIRECT2 (Transition_help) {
 	Melder_help (U"Transition");
 END2 }
 
-FORM (Transition_power, U"Transition: Power...", nullptr) {
+FORM (Transition_power, U"Transition: Power...", 0) {
 	NATURAL (U"Power", U"2")
 	OK2
 DO
 	LOOP {
 		iam (Transition);
 		autoTransition thee = Transition_power (me, GET_INTEGER (U"Power"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -6322,7 +6248,7 @@ DIRECT2 (Transition_to_Matrix) {
 	LOOP {
 		iam (Transition);
 		autoMatrix thee = Transition_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -6352,22 +6278,21 @@ DIRECT (Acknowledgments) Melder_help (U"Acknowledgments"); END
 DIRECT (FormulasTutorial) Melder_help (U"Formulas"); END
 DIRECT (ScriptingTutorial) Melder_help (U"Scripting"); END
 DIRECT (DemoWindow) Melder_help (U"Demo window"); END
-DIRECT (Interoperability) Melder_help (U"Interoperability"); END
 DIRECT (Programming) Melder_help (U"Programming with Praat"); END
 DIRECT (SearchManual) Melder_search (); END
 
 /***** file recognizers *****/
 
-static autoDaata cgnSyntaxFileRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread < 57) return autoDaata ();
+static Any cgnSyntaxFileRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread < 57) return NULL;
 	if (! strnequ (& header [0], "<?xml version=\"1.0\"?>", 21) ||
 	    (! strnequ (& header [22], "<!DOCTYPE ttext SYSTEM \"ttext.dtd\">", 35) &&
-	     ! strnequ (& header [23], "<!DOCTYPE ttext SYSTEM \"ttext.dtd\">", 35))) return autoDaata ();
+	     ! strnequ (& header [23], "<!DOCTYPE ttext SYSTEM \"ttext.dtd\">", 35))) return NULL;
 	return TextGrid_readFromCgnSyntaxFile (file);
 }
 
-static autoDaata chronologicalTextGridTextFileRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread < 100) return autoDaata ();
+static Any chronologicalTextGridTextFileRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread < 100) return NULL;
 	if (strnequ (& header [0], "\"Praat chronological TextGrid text file\"", 40))
 		return TextGrid_readFromChronologicalTextFile (file);
 	char headerCopy [101];
@@ -6382,10 +6307,10 @@ static autoDaata chronologicalTextGridTextFileRecognizer (int nread, const char
 	{
 		return TextGrid_readFromChronologicalTextFile (file);
 	}
-	return autoDaata ();
+	return NULL;
 }
 
-static autoDaata imageFileRecognizer (int /* nread */, const char * /* header */, MelderFile file) {
+static Any imageFileRecognizer (int /* nread */, const char * /* header */, MelderFile file) {
 	const char32 *fileName = MelderFile_name (file);
 	if (Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".jpg") ||
 	    Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".JPG") ||
@@ -6400,7 +6325,7 @@ static autoDaata imageFileRecognizer (int /* nread */, const char * /* header */
 	{
 		return Photo_readFromImageFile (file);
 	}
-	return autoDaata ();
+	return NULL;
 }
 
 /***** buttons *****/
@@ -6409,56 +6334,56 @@ void praat_TableOfReal_init (ClassInfo klas);   // Buttons for TableOfReal and f
 
 void praat_TimeFunction_query_init (ClassInfo klas);   // Query buttons for time-based subclasses of Function.
 void praat_TimeFunction_query_init (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"Query time domain", nullptr, 1, nullptr);
-	praat_addAction1 (klas, 1, U"Get start time", nullptr, 2, DO_TimeFunction_getStartTime);
+	praat_addAction1 (klas, 1, U"Query time domain", 0, 1, 0);
+	praat_addAction1 (klas, 1, U"Get start time", 0, 2, DO_TimeFunction_getStartTime);
 						praat_addAction1 (klas, 1, U"Get starting time", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_getStartTime);
-	praat_addAction1 (klas, 1, U"Get end time", nullptr, 2, DO_TimeFunction_getEndTime);
+	praat_addAction1 (klas, 1, U"Get end time", 0, 2, DO_TimeFunction_getEndTime);
 						praat_addAction1 (klas, 1, U"Get finishing time", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_getEndTime);
-	praat_addAction1 (klas, 1, U"Get total duration", nullptr, 2, DO_TimeFunction_getDuration);
+	praat_addAction1 (klas, 1, U"Get total duration", 0, 2, DO_TimeFunction_getDuration);
 						praat_addAction1 (klas, 1, U"Get duration", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_getDuration);
 }
 
 void praat_TimeFunction_modify_init (ClassInfo klas);   // Modify buttons for time-based subclasses of Function.
 void praat_TimeFunction_modify_init (ClassInfo klas) {
-	praat_addAction1 (klas, 0, U"Modify times", nullptr, 1, nullptr);
-	praat_addAction1 (klas, 0, U"Shift times by...", nullptr, 2, DO_TimeFunction_shiftTimesBy);
-	praat_addAction1 (klas, 0, U"Shift times to...", nullptr, 2, DO_TimeFunction_shiftTimesTo);
-						praat_addAction1 (klas, 0, U"Shift to zero", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_shiftToZero);   // hidden 2008
-	praat_addAction1 (klas, 0, U"Scale times by...", nullptr, 2, DO_TimeFunction_scaleTimesBy);
-	praat_addAction1 (klas, 0, U"Scale times to...", nullptr, 2, DO_TimeFunction_scaleTimesTo);
-						praat_addAction1 (klas, 0, U"Scale times...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_scaleTimesTo);   // hidden 2008
+	praat_addAction1 (klas, 0, U"Modify times", 0, 1, 0);
+	praat_addAction1 (klas, 0, U"Shift times by...", 0, 2, DO_TimeFunction_shiftTimesBy);
+	praat_addAction1 (klas, 0, U"Shift times to...", 0, 2, DO_TimeFunction_shiftTimesTo);
+						praat_addAction1 (klas, 0, U"Shift to zero", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_shiftToZero);   // hidden 2008
+	praat_addAction1 (klas, 0, U"Scale times by...", 0, 2, DO_TimeFunction_scaleTimesBy);
+	praat_addAction1 (klas, 0, U"Scale times to...", 0, 2, DO_TimeFunction_scaleTimesTo);
+						praat_addAction1 (klas, 0, U"Scale times...", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFunction_scaleTimesTo);   // hidden 2008
 }
 
 void praat_TimeFrameSampled_query_init (ClassInfo klas);   // Query buttons for frame-based time-based subclasses of Sampled.
 void praat_TimeFrameSampled_query_init (ClassInfo klas) {
 	praat_TimeFunction_query_init (klas);
-	praat_addAction1 (klas, 1, U"Query time sampling", nullptr, 1, nullptr);
-	praat_addAction1 (klas, 1, U"Get number of frames", nullptr, 2, DO_TimeFrameSampled_getNumberOfFrames);
-	praat_addAction1 (klas, 1, U"Get time step", nullptr, 2, DO_TimeFrameSampled_getFrameLength);
-						praat_addAction1 (klas, 1, U"Get frame length", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameLength);
-						praat_addAction1 (klas, 1, U"Get frame duration", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameLength);
-	praat_addAction1 (klas, 1, U"Get time from frame number...", nullptr, 2, DO_TimeFrameSampled_getTimeFromFrame);
-						praat_addAction1 (klas, 1, U"Get time from frame...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getTimeFromFrame);
-	praat_addAction1 (klas, 1, U"Get frame number from time...", nullptr, 2, DO_TimeFrameSampled_getFrameFromTime);
-						praat_addAction1 (klas, 1, U"Get frame from time...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameFromTime);
+	praat_addAction1 (klas, 1, U"Query time sampling", 0, 1, 0);
+	praat_addAction1 (klas, 1, U"Get number of frames", 0, 2, DO_TimeFrameSampled_getNumberOfFrames);
+	praat_addAction1 (klas, 1, U"Get time step", 0, 2, DO_TimeFrameSampled_getFrameLength);
+						praat_addAction1 (klas, 1, U"Get frame length", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameLength);
+						praat_addAction1 (klas, 1, U"Get frame duration", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameLength);
+	praat_addAction1 (klas, 1, U"Get time from frame number...", 0, 2, DO_TimeFrameSampled_getTimeFromFrame);
+						praat_addAction1 (klas, 1, U"Get time from frame...", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getTimeFromFrame);
+	praat_addAction1 (klas, 1, U"Get frame number from time...", 0, 2, DO_TimeFrameSampled_getFrameFromTime);
+						praat_addAction1 (klas, 1, U"Get frame from time...", 0, praat_HIDDEN + praat_DEPTH_2, DO_TimeFrameSampled_getFrameFromTime);
 }
 
 void praat_TimeTier_query_init (ClassInfo klas);   // Query buttons for time-based subclasses of AnyTier.
 void praat_TimeTier_query_init (ClassInfo klas) {
 	praat_TimeFunction_query_init (klas);
-	praat_addAction1 (klas, 1, U"Get number of points", nullptr, 1, DO_TimeTier_getNumberOfPoints);
-	praat_addAction1 (klas, 1, U"Get low index from time...", nullptr, 1, DO_TimeTier_getLowIndexFromTime);
-	praat_addAction1 (klas, 1, U"Get high index from time...", nullptr, 1, DO_TimeTier_getHighIndexFromTime);
-	praat_addAction1 (klas, 1, U"Get nearest index from time...", nullptr, 1, DO_TimeTier_getNearestIndexFromTime);
-	praat_addAction1 (klas, 1, U"Get time from index...", nullptr, 1, DO_TimeTier_getTimeFromIndex);
+	praat_addAction1 (klas, 1, U"Get number of points", 0, 1, DO_TimeTier_getNumberOfPoints);
+	praat_addAction1 (klas, 1, U"Get low index from time...", 0, 1, DO_TimeTier_getLowIndexFromTime);
+	praat_addAction1 (klas, 1, U"Get high index from time...", 0, 1, DO_TimeTier_getHighIndexFromTime);
+	praat_addAction1 (klas, 1, U"Get nearest index from time...", 0, 1, DO_TimeTier_getNearestIndexFromTime);
+	praat_addAction1 (klas, 1, U"Get time from index...", 0, 1, DO_TimeTier_getTimeFromIndex);
 }
 
 void praat_TimeTier_modify_init (ClassInfo klas);   // Modification buttons for time-based subclasses of AnyTier.
 void praat_TimeTier_modify_init (ClassInfo klas) {
 	praat_TimeFunction_modify_init (klas);
-	praat_addAction1 (klas, 0, U"Remove point...", nullptr, 1, DO_TimeTier_removePoint);
-	praat_addAction1 (klas, 0, U"Remove point near...", nullptr, 1, DO_TimeTier_removePointNear);
-	praat_addAction1 (klas, 0, U"Remove points between...", nullptr, 1, DO_TimeTier_removePointsBetween);
+	praat_addAction1 (klas, 0, U"Remove point...", 0, 1, DO_TimeTier_removePoint);
+	praat_addAction1 (klas, 0, U"Remove point near...", 0, 1, DO_TimeTier_removePointNear);
+	praat_addAction1 (klas, 0, U"Remove points between...", 0, 1, DO_TimeTier_removePointsBetween);
 }
 
 void praat_uvafon_init ();
@@ -6473,7 +6398,7 @@ void praat_uvafon_init () {
 		classManipulation, classTextPoint, classTextInterval, classTextTier,
 		classIntervalTier, classTextGrid, classLongSound, classWordList, classSpellingChecker,
 		classMovie, classCorpus, classPhoto,
-		nullptr);
+		NULL);
 	Thing_recognizeClassByOtherName (classManipulation, U"Psola");
 	Thing_recognizeClassByOtherName (classManipulation, U"Analysis");
 	Thing_recognizeClassByOtherName (classPitchTier, U"StylPitch");
@@ -6481,8 +6406,7 @@ void praat_uvafon_init () {
 	Data_recognizeFileType (cgnSyntaxFileRecognizer);
 	Data_recognizeFileType (chronologicalTextGridTextFileRecognizer);
 	Data_recognizeFileType (imageFileRecognizer);
-	Data_recognizeFileType (IDXFormattedMatrixFileRecognizer);
-	
+
 	structManipulationEditor :: f_preferences ();
 	structSpectrumEditor     :: f_preferences ();
 	structFormantGridEditor  :: f_preferences ();
@@ -6490,793 +6414,790 @@ void praat_uvafon_init () {
 	INCLUDE_LIBRARY (praat_uvafon_Sound_init)
 	INCLUDE_LIBRARY (praat_uvafon_TextGrid_init)
 
-	praat_addMenuCommand (U"Objects", U"Technical", U"Praat test...", nullptr, 0, DO_Praat_test);
-
-	praat_addMenuCommand (U"Objects", U"New", U"-- new numerics --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Matrix", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Matrix...", nullptr, 1, DO_Matrix_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create simple Matrix...", nullptr, 1, DO_Matrix_createSimple);
-		praat_addMenuCommand (U"Objects", U"New", U"-- colour matrix --", nullptr, 1, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Photo...", nullptr, 1, DO_Photo_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create simple Photo...", nullptr, 1, DO_Photo_createSimple);
-	praat_addMenuCommand (U"Objects", U"Open", U"-- read movie --", nullptr, praat_HIDDEN, nullptr);
-	praat_addMenuCommand (U"Objects", U"Open", U"Open movie file...", nullptr, praat_HIDDEN, DO_Movie_openFromSoundFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"-- read raw --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Matrix from raw text file...", nullptr, 0, DO_Matrix_readFromRawTextFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Matrix from LVS AP file...", nullptr, praat_HIDDEN, DO_Matrix_readAP);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Strings from raw text file...", nullptr, 0, DO_Strings_readFromRawTextFile);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Praat test...", 0, 0, DO_Praat_test);
+
+	praat_addMenuCommand (U"Objects", U"New", U"-- new numerics --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Matrix", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Matrix...", 0, 1, DO_Matrix_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create simple Matrix...", 0, 1, DO_Matrix_createSimple);
+		praat_addMenuCommand (U"Objects", U"New", U"-- colour matrix --", 0, 1, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Photo...", 0, 1, DO_Photo_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create simple Photo...", 0, 1, DO_Photo_createSimple);
+	praat_addMenuCommand (U"Objects", U"Open", U"-- read movie --", 0, praat_HIDDEN, 0);
+	praat_addMenuCommand (U"Objects", U"Open", U"Open movie file...", 0, praat_HIDDEN, DO_Movie_openFromSoundFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"-- read raw --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Matrix from raw text file...", 0, 0, DO_Matrix_readFromRawTextFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Matrix from LVS AP file...", 0, praat_HIDDEN, DO_Matrix_readAP);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Strings from raw text file...", 0, 0, DO_Strings_readFromRawTextFile);
 
 	INCLUDE_LIBRARY (praat_uvafon_stat_init)
 
-	praat_addMenuCommand (U"Objects", U"New", U"Tiers", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create empty PointProcess...", nullptr, 1, DO_PointProcess_createEmpty);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Poisson process...", nullptr, 1, DO_PointProcess_createPoissonProcess);
-		praat_addMenuCommand (U"Objects", U"New", U"-- new tiers ---", nullptr, 1, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create PitchTier...", nullptr, 1, DO_PitchTier_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create FormantGrid...", nullptr, 1, DO_FormantGrid_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create FormantTier...", nullptr, praat_HIDDEN | praat_DEPTH_1, DO_FormantTier_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create IntensityTier...", nullptr, 1, DO_IntensityTier_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create DurationTier...", nullptr, 1, DO_DurationTier_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create AmplitudeTier...", nullptr, 1, DO_AmplitudeTier_create);
-	praat_addMenuCommand (U"Objects", U"New", U"-- new textgrid --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"New", U"Create TextGrid...", nullptr, 0, DO_TextGrid_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Corpus...", nullptr, praat_HIDDEN, DO_Corpus_create);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as file list...", nullptr, 0, DO_Strings_createAsFileList);
-	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as directory list...", nullptr, 0, DO_Strings_createAsDirectoryList);
-
-	praat_addMenuCommand (U"Objects", U"Open", U"-- read tier --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read from special tier file...", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"Open", U"Read TextTier from Xwaves...", nullptr, 1, DO_TextTier_readFromXwaves);
-		praat_addMenuCommand (U"Objects", U"Open", U"Read IntervalTier from Xwaves...", nullptr, 1, DO_IntervalTier_readFromXwaves);
-
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Praat Intro", nullptr, '?', DO_Intro);
+	praat_addMenuCommand (U"Objects", U"New", U"Tiers", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create empty PointProcess...", 0, 1, DO_PointProcess_createEmpty);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Poisson process...", 0, 1, DO_PointProcess_createPoissonProcess);
+		praat_addMenuCommand (U"Objects", U"New", U"-- new tiers ---", 0, 1, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create PitchTier...", 0, 1, DO_PitchTier_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create FormantGrid...", 0, 1, DO_FormantGrid_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create FormantTier...", 0, praat_HIDDEN | praat_DEPTH_1, DO_FormantTier_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create IntensityTier...", 0, 1, DO_IntensityTier_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create DurationTier...", 0, 1, DO_DurationTier_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create AmplitudeTier...", 0, 1, DO_AmplitudeTier_create);
+	praat_addMenuCommand (U"Objects", U"New", U"-- new textgrid --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"New", U"Create TextGrid...", 0, 0, DO_TextGrid_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Corpus...", 0, praat_HIDDEN, DO_Corpus_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as file list...", 0, 0, DO_Strings_createAsFileList);
+	praat_addMenuCommand (U"Objects", U"New", U"Create Strings as directory list...", 0, 0, DO_Strings_createAsDirectoryList);
+
+	praat_addMenuCommand (U"Objects", U"Open", U"-- read tier --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read from special tier file...", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"Open", U"Read TextTier from Xwaves...", 0, 1, DO_TextTier_readFromXwaves);
+		praat_addMenuCommand (U"Objects", U"Open", U"Read IntervalTier from Xwaves...", 0, 1, DO_IntervalTier_readFromXwaves);
+
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Praat Intro", 0, '?', DO_Intro);
 	#ifndef macintosh
-		praat_addMenuCommand (U"Objects", U"Help", U"Object window", nullptr, 0, DO_ObjectWindow);
+		praat_addMenuCommand (U"Objects", U"Help", U"Object window", 0, 0, DO_ObjectWindow);
 	#endif
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Frequently asked questions", nullptr, 0, DO_FrequentlyAskedQuestions);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"What's new?", nullptr, 0, DO_WhatsNew);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Types of objects", nullptr, 0, DO_TypesOfObjects);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Editors", nullptr, 0, DO_Editors);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Acknowledgments", nullptr, 0, DO_Acknowledgments);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"-- shell help --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Formulas tutorial", nullptr, 0, DO_FormulasTutorial);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Scripting tutorial", nullptr, 0, DO_ScriptingTutorial);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Demo window", nullptr, 0, DO_DemoWindow);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Interoperability", nullptr, 0, DO_Interoperability);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Programming", nullptr, 0, DO_Programming);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Frequently asked questions", 0, 0, DO_FrequentlyAskedQuestions);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"What's new?", 0, 0, DO_WhatsNew);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Types of objects", 0, 0, DO_TypesOfObjects);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Editors", 0, 0, DO_Editors);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Acknowledgments", 0, 0, DO_Acknowledgments);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"-- shell help --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Formulas tutorial", 0, 0, DO_FormulasTutorial);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Scripting tutorial", 0, 0, DO_ScriptingTutorial);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Demo window", 0, 0, DO_DemoWindow);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Programming", 0, 0, DO_Programming);
 	#ifdef macintosh
-		praat_addMenuCommand (U"Objects", U"Help", U"Praat Intro", nullptr, '?', DO_Intro);
-		praat_addMenuCommand (U"Objects", U"Help", U"Object window help", nullptr, 0, DO_ObjectWindow);
-		praat_addMenuCommand (U"Objects", U"Help", U"-- manual --", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"Help", U"Search Praat manual...", nullptr, 'M', DO_SearchManual);
+		praat_addMenuCommand (U"Objects", U"Help", U"Praat Intro", 0, '?', DO_Intro);
+		praat_addMenuCommand (U"Objects", U"Help", U"Object window help", 0, 0, DO_ObjectWindow);
+		praat_addMenuCommand (U"Objects", U"Help", U"-- manual --", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"Help", U"Search Praat manual...", 0, 'M', DO_SearchManual);
 	#endif
 
-	praat_addAction1 (classAmplitudeTier, 0, U"AmplitudeTier help", nullptr, 0, DO_AmplitudeTier_help);
-	praat_addAction1 (classAmplitudeTier, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_AmplitudeTier_edit);
-	praat_addAction1 (classAmplitudeTier, 1, U"Edit", nullptr, praat_HIDDEN, DO_AmplitudeTier_edit);
+	praat_addAction1 (classAmplitudeTier, 0, U"AmplitudeTier help", 0, 0, DO_AmplitudeTier_help);
+	praat_addAction1 (classAmplitudeTier, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_AmplitudeTier_edit);
+	praat_addAction1 (classAmplitudeTier, 1, U"Edit", 0, praat_HIDDEN, DO_AmplitudeTier_edit);
 	praat_addAction1 (classAmplitudeTier, 0, U"View & Edit with Sound?", 0, 0, DO_info_AmplitudeTier_Sound_edit);
-	praat_addAction1 (classAmplitudeTier, 0, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classAmplitudeTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classAmplitudeTier);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (local)...", nullptr, 1, DO_AmplitudeTier_getShimmer_local);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (local_dB)...", nullptr, 1, DO_AmplitudeTier_getShimmer_local_dB);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq3)...", nullptr, 1, DO_AmplitudeTier_getShimmer_apq3);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq5)...", nullptr, 1, DO_AmplitudeTier_getShimmer_apq5);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq11)...", nullptr, 1, DO_AmplitudeTier_getShimmer_apq11);
-		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (dda)...", nullptr, 1, DO_AmplitudeTier_getShimmer_dda);
-	praat_addAction1 (classAmplitudeTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (local)...", 0, 1, DO_AmplitudeTier_getShimmer_local);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (local_dB)...", 0, 1, DO_AmplitudeTier_getShimmer_local_dB);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq3)...", 0, 1, DO_AmplitudeTier_getShimmer_apq3);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq5)...", 0, 1, DO_AmplitudeTier_getShimmer_apq5);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (apq11)...", 0, 1, DO_AmplitudeTier_getShimmer_apq11);
+		praat_addAction1 (classAmplitudeTier, 1, U"Get shimmer (dda)...", 0, 1, DO_AmplitudeTier_getShimmer_dda);
+	praat_addAction1 (classAmplitudeTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classAmplitudeTier);
-		praat_addAction1 (classAmplitudeTier, 0, U"Add point...", nullptr, 1, DO_AmplitudeTier_addPoint);
-		praat_addAction1 (classAmplitudeTier, 0, U"Formula...", nullptr, 1, DO_AmplitudeTier_formula);
-praat_addAction1 (classAmplitudeTier, 0, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction1 (classAmplitudeTier, 0, U"To Sound (pulse train)...", nullptr, 0, DO_AmplitudeTier_to_Sound);
-praat_addAction1 (classAmplitudeTier, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classAmplitudeTier, 0, U"To IntensityTier...", nullptr, 0, DO_AmplitudeTier_to_IntensityTier);
-	praat_addAction1 (classAmplitudeTier, 0, U"Down to PointProcess", nullptr, 0, DO_AmplitudeTier_downto_PointProcess);
-	praat_addAction1 (classAmplitudeTier, 0, U"Down to TableOfReal", nullptr, 0, DO_AmplitudeTier_downto_TableOfReal);
-
-	praat_addAction1 (classCochleagram, 0, U"Cochleagram help", nullptr, 0, DO_Cochleagram_help);
-	praat_addAction1 (classCochleagram, 1, U"Movie", nullptr, 0, DO_Cochleagram_movie);
-praat_addAction1 (classCochleagram, 0, U"Info", nullptr, 0, nullptr);
-	praat_addAction1 (classCochleagram, 2, U"Difference...", nullptr, 0, DO_Cochleagram_difference);
-praat_addAction1 (classCochleagram, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classCochleagram, 0, U"Paint...", nullptr, 0, DO_Cochleagram_paint);
-praat_addAction1 (classCochleagram, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classCochleagram, 0, U"Formula...", nullptr, 0, DO_Cochleagram_formula);
-praat_addAction1 (classCochleagram, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classCochleagram, 0, U"To Excitation (slice)...", nullptr, 0, DO_Cochleagram_to_Excitation);
-praat_addAction1 (classCochleagram, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classCochleagram, 0, U"To Matrix", nullptr, 0, DO_Cochleagram_to_Matrix);
-
-	praat_addAction1 (classCorpus, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Corpus_edit);
-
-praat_addAction1 (classDistributions, 0, U"Learn", nullptr, 0, nullptr);
-	praat_addAction1 (classDistributions, 1, U"To Transition...", nullptr, 0, DO_Distributions_to_Transition);
-	praat_addAction1 (classDistributions, 2, U"To Transition (noise)...", nullptr, 0, DO_Distributions_to_Transition_noise);
-
-	praat_addAction1 (classDurationTier, 0, U"DurationTier help", nullptr, 0, DO_DurationTier_help);
-	praat_addAction1 (classDurationTier, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_DurationTier_edit);
-	praat_addAction1 (classDurationTier, 1, U"Edit", nullptr, praat_HIDDEN, DO_DurationTier_edit);
-	praat_addAction1 (classDurationTier, 0, U"View & Edit with Sound?", nullptr, 0, DO_info_DurationTier_Sound_edit);
-	praat_addAction1 (classDurationTier, 0, U"& Manipulation: Replace?", nullptr, 0, DO_info_DurationTier_Manipulation_replace);
-	praat_addAction1 (classDurationTier, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classAmplitudeTier, 0, U"Add point...", 0, 1, DO_AmplitudeTier_addPoint);
+		praat_addAction1 (classAmplitudeTier, 0, U"Formula...", 0, 1, DO_AmplitudeTier_formula);
+praat_addAction1 (classAmplitudeTier, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classAmplitudeTier, 0, U"To Sound (pulse train)...", 0, 0, DO_AmplitudeTier_to_Sound);
+praat_addAction1 (classAmplitudeTier, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classAmplitudeTier, 0, U"To IntensityTier...", 0, 0, DO_AmplitudeTier_to_IntensityTier);
+	praat_addAction1 (classAmplitudeTier, 0, U"Down to PointProcess", 0, 0, DO_AmplitudeTier_downto_PointProcess);
+	praat_addAction1 (classAmplitudeTier, 0, U"Down to TableOfReal", 0, 0, DO_AmplitudeTier_downto_TableOfReal);
+
+	praat_addAction1 (classCochleagram, 0, U"Cochleagram help", 0, 0, DO_Cochleagram_help);
+	praat_addAction1 (classCochleagram, 1, U"Movie", 0, 0, DO_Cochleagram_movie);
+praat_addAction1 (classCochleagram, 0, U"Info", 0, 0, 0);
+	praat_addAction1 (classCochleagram, 2, U"Difference...", 0, 0, DO_Cochleagram_difference);
+praat_addAction1 (classCochleagram, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classCochleagram, 0, U"Paint...", 0, 0, DO_Cochleagram_paint);
+praat_addAction1 (classCochleagram, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classCochleagram, 0, U"Formula...", 0, 0, DO_Cochleagram_formula);
+praat_addAction1 (classCochleagram, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classCochleagram, 0, U"To Excitation (slice)...", 0, 0, DO_Cochleagram_to_Excitation);
+praat_addAction1 (classCochleagram, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classCochleagram, 0, U"To Matrix", 0, 0, DO_Cochleagram_to_Matrix);
+
+	praat_addAction1 (classCorpus, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Corpus_edit);
+
+praat_addAction1 (classDistributions, 0, U"Learn", 0, 0, 0);
+	praat_addAction1 (classDistributions, 1, U"To Transition...", 0, 0, DO_Distributions_to_Transition);
+	praat_addAction1 (classDistributions, 2, U"To Transition (noise)...", 0, 0, DO_Distributions_to_Transition_noise);
+
+	praat_addAction1 (classDurationTier, 0, U"DurationTier help", 0, 0, DO_DurationTier_help);
+	praat_addAction1 (classDurationTier, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_DurationTier_edit);
+	praat_addAction1 (classDurationTier, 1, U"Edit", 0, praat_HIDDEN, DO_DurationTier_edit);
+	praat_addAction1 (classDurationTier, 0, U"View & Edit with Sound?", 0, 0, DO_info_DurationTier_Sound_edit);
+	praat_addAction1 (classDurationTier, 0, U"& Manipulation: Replace?", 0, 0, DO_info_DurationTier_Manipulation_replace);
+	praat_addAction1 (classDurationTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classDurationTier);
-		praat_addAction1 (classDurationTier, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classDurationTier, 1, U"Get value at time...", nullptr, 1, DO_DurationTier_getValueAtTime);
-		praat_addAction1 (classDurationTier, 1, U"Get value at index...", nullptr, 1, DO_DurationTier_getValueAtIndex);
-		praat_addAction1 (classDurationTier, 1, U"Get target duration...", nullptr, 1, DO_DurationTier_getTargetDuration);
-	praat_addAction1 (classDurationTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classDurationTier, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classDurationTier, 1, U"Get value at time...", 0, 1, DO_DurationTier_getValueAtTime);
+		praat_addAction1 (classDurationTier, 1, U"Get value at index...", 0, 1, DO_DurationTier_getValueAtIndex);
+		praat_addAction1 (classDurationTier, 1, U"Get target duration...", 0, 1, DO_DurationTier_getTargetDuration);
+	praat_addAction1 (classDurationTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classDurationTier);
-		praat_addAction1 (classDurationTier, 0, U"Add point...", nullptr, 1, DO_DurationTier_addPoint);
-		praat_addAction1 (classDurationTier, 0, U"Formula...", nullptr, 1, DO_DurationTier_formula);
-praat_addAction1 (classDurationTier, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classDurationTier, 0, U"Down to PointProcess", nullptr, 0, DO_DurationTier_downto_PointProcess);
-
-	praat_addAction1 (classExcitation, 0, U"Excitation help", nullptr, 0, DO_Excitation_help);
-praat_addAction1 (classExcitation, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classExcitation, 0, U"Draw...", nullptr, 0, DO_Excitation_draw);
-praat_addAction1 (classExcitation, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classExcitation, 0, U"To Formant...", nullptr, 0, DO_Excitation_to_Formant);
-praat_addAction1 (classExcitation, 1, U"Query -", nullptr, 0, nullptr);
-	praat_addAction1 (classExcitation, 1, U"Get loudness", nullptr, 0, DO_Excitation_getLoudness);
-praat_addAction1 (classExcitation, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classExcitation, 0, U"Formula...", nullptr, 0, DO_Excitation_formula);
-praat_addAction1 (classExcitation, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classExcitation, 0, U"To Matrix", nullptr, 0, DO_Excitation_to_Matrix);
-
-	praat_addAction1 (classFormant, 0, U"Formant help", nullptr, 0, DO_Formant_help);
-	praat_addAction1 (classFormant, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classFormant, 0, U"Speckle...", nullptr, 1, DO_Formant_drawSpeckles);
-		praat_addAction1 (classFormant, 0, U"Draw tracks...", nullptr, 1, DO_Formant_drawTracks);
-		praat_addAction1 (classFormant, 0, U"Scatter plot...", nullptr, 1, DO_Formant_scatterPlot);
-	praat_addAction1 (classFormant, 0, U"Tabulate -", nullptr, 0, nullptr);
-		praat_addAction1 (classFormant, 1, U"List...", nullptr, 1, DO_Formant_list);
-		praat_addAction1 (classFormant, 0, U"Down to Table...", nullptr, 1, DO_Formant_downto_Table);
-	praat_addAction1 (classFormant, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classDurationTier, 0, U"Add point...", 0, 1, DO_DurationTier_addPoint);
+		praat_addAction1 (classDurationTier, 0, U"Formula...", 0, 1, DO_DurationTier_formula);
+praat_addAction1 (classDurationTier, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classDurationTier, 0, U"Down to PointProcess", 0, 0, DO_DurationTier_downto_PointProcess);
+
+	praat_addAction1 (classExcitation, 0, U"Excitation help", 0, 0, DO_Excitation_help);
+praat_addAction1 (classExcitation, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classExcitation, 0, U"Draw...", 0, 0, DO_Excitation_draw);
+praat_addAction1 (classExcitation, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classExcitation, 0, U"To Formant...", 0, 0, DO_Excitation_to_Formant);
+praat_addAction1 (classExcitation, 1, U"Query -", 0, 0, 0);
+	praat_addAction1 (classExcitation, 1, U"Get loudness", 0, 0, DO_Excitation_getLoudness);
+praat_addAction1 (classExcitation, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classExcitation, 0, U"Formula...", 0, 0, DO_Excitation_formula);
+praat_addAction1 (classExcitation, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classExcitation, 0, U"To Matrix", 0, 0, DO_Excitation_to_Matrix);
+
+	praat_addAction1 (classFormant, 0, U"Formant help", 0, 0, DO_Formant_help);
+	praat_addAction1 (classFormant, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classFormant, 0, U"Speckle...", 0, 1, DO_Formant_drawSpeckles);
+		praat_addAction1 (classFormant, 0, U"Draw tracks...", 0, 1, DO_Formant_drawTracks);
+		praat_addAction1 (classFormant, 0, U"Scatter plot...", 0, 1, DO_Formant_scatterPlot);
+	praat_addAction1 (classFormant, 0, U"Tabulate -", 0, 0, 0);
+		praat_addAction1 (classFormant, 1, U"List...", 0, 1, DO_Formant_list);
+		praat_addAction1 (classFormant, 0, U"Down to Table...", 0, 1, DO_Formant_downto_Table);
+	praat_addAction1 (classFormant, 0, U"Query -", 0, 0, 0);
 		praat_TimeFrameSampled_query_init (classFormant);
-		praat_addAction1 (classFormant, 1, U"Get number of formants...", nullptr, 1, DO_Formant_getNumberOfFormants);
-		praat_addAction1 (classFormant, 1, U"Get minimum number of formants", nullptr, 1, DO_Formant_getMinimumNumberOfFormants);
-		praat_addAction1 (classFormant, 1, U"Get maximum number of formants", nullptr, 1, DO_Formant_getMaximumNumberOfFormants);
-		praat_addAction1 (classFormant, 1, U"-- get value --", nullptr, 1, nullptr);
-		praat_addAction1 (classFormant, 1, U"Get value at time...", nullptr, 1, DO_Formant_getValueAtTime);
-		praat_addAction1 (classFormant, 1, U"Get bandwidth at time...", nullptr, 1, DO_Formant_getBandwidthAtTime);
-		praat_addAction1 (classFormant, 1, U"-- get extreme --", nullptr, 1, nullptr);
-		praat_addAction1 (classFormant, 1, U"Get minimum...", nullptr, 1, DO_Formant_getMinimum);
-		praat_addAction1 (classFormant, 1, U"Get time of minimum...", nullptr, 1, DO_Formant_getTimeOfMinimum);
-		praat_addAction1 (classFormant, 1, U"Get maximum...", nullptr, 1, DO_Formant_getMaximum);
-		praat_addAction1 (classFormant, 1, U"Get time of maximum...", nullptr, 1, DO_Formant_getTimeOfMaximum);
-		praat_addAction1 (classFormant, 1, U"-- get distribution --", nullptr, 1, nullptr);
-		praat_addAction1 (classFormant, 1, U"Get quantile...", nullptr, 1, DO_Formant_getQuantile);
-		praat_addAction1 (classFormant, 1, U"Get quantile of bandwidth...", nullptr, 1, DO_Formant_getQuantileOfBandwidth);
-		praat_addAction1 (classFormant, 1, U"Get mean...", nullptr, 1, DO_Formant_getMean);
-		praat_addAction1 (classFormant, 1, U"Get standard deviation...", nullptr, 1, DO_Formant_getStandardDeviation);
-	praat_addAction1 (classFormant, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classFormant, 1, U"Get number of formants...", 0, 1, DO_Formant_getNumberOfFormants);
+		praat_addAction1 (classFormant, 1, U"Get minimum number of formants", 0, 1, DO_Formant_getMinimumNumberOfFormants);
+		praat_addAction1 (classFormant, 1, U"Get maximum number of formants", 0, 1, DO_Formant_getMaximumNumberOfFormants);
+		praat_addAction1 (classFormant, 1, U"-- get value --", 0, 1, 0);
+		praat_addAction1 (classFormant, 1, U"Get value at time...", 0, 1, DO_Formant_getValueAtTime);
+		praat_addAction1 (classFormant, 1, U"Get bandwidth at time...", 0, 1, DO_Formant_getBandwidthAtTime);
+		praat_addAction1 (classFormant, 1, U"-- get extreme --", 0, 1, 0);
+		praat_addAction1 (classFormant, 1, U"Get minimum...", 0, 1, DO_Formant_getMinimum);
+		praat_addAction1 (classFormant, 1, U"Get time of minimum...", 0, 1, DO_Formant_getTimeOfMinimum);
+		praat_addAction1 (classFormant, 1, U"Get maximum...", 0, 1, DO_Formant_getMaximum);
+		praat_addAction1 (classFormant, 1, U"Get time of maximum...", 0, 1, DO_Formant_getTimeOfMaximum);
+		praat_addAction1 (classFormant, 1, U"-- get distribution --", 0, 1, 0);
+		praat_addAction1 (classFormant, 1, U"Get quantile...", 0, 1, DO_Formant_getQuantile);
+		praat_addAction1 (classFormant, 1, U"Get quantile of bandwidth...", 0, 1, DO_Formant_getQuantileOfBandwidth);
+		praat_addAction1 (classFormant, 1, U"Get mean...", 0, 1, DO_Formant_getMean);
+		praat_addAction1 (classFormant, 1, U"Get standard deviation...", 0, 1, DO_Formant_getStandardDeviation);
+	praat_addAction1 (classFormant, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classFormant);
-		praat_addAction1 (classFormant, 0, U"Sort", nullptr, 1, DO_Formant_sort);
-		praat_addAction1 (classFormant, 0, U"Formula (frequencies)...", nullptr, 1, DO_Formant_formula_frequencies);
-		praat_addAction1 (classFormant, 0, U"Formula (bandwidths)...", nullptr, 1, DO_Formant_formula_bandwidths);
-praat_addAction1 (classFormant, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classFormant, 0, U"Track...", nullptr, 0, DO_Formant_tracker);
-	praat_addAction1 (classFormant, 0, U"Down to FormantTier", nullptr, praat_HIDDEN, DO_Formant_downto_FormantTier);
-	praat_addAction1 (classFormant, 0, U"Down to FormantGrid", nullptr, 0, DO_Formant_downto_FormantGrid);
-praat_addAction1 (classFormant, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classFormant, 0, U"To Matrix...", nullptr, 0, DO_Formant_to_Matrix);
-
-	praat_addAction1 (classFormantGrid, 0, U"FormantGrid help", nullptr, 0, DO_FormantGrid_help);
-	praat_addAction1 (classFormantGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_FormantGrid_edit);
-	praat_addAction1 (classFormantGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_FormantGrid_edit);
-	praat_addAction1 (classFormantGrid, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classFormant, 0, U"Sort", 0, 1, DO_Formant_sort);
+		praat_addAction1 (classFormant, 0, U"Formula (frequencies)...", 0, 1, DO_Formant_formula_frequencies);
+		praat_addAction1 (classFormant, 0, U"Formula (bandwidths)...", 0, 1, DO_Formant_formula_bandwidths);
+praat_addAction1 (classFormant, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classFormant, 0, U"Track...", 0, 0, DO_Formant_tracker);
+	praat_addAction1 (classFormant, 0, U"Down to FormantTier", 0, praat_HIDDEN, DO_Formant_downto_FormantTier);
+	praat_addAction1 (classFormant, 0, U"Down to FormantGrid", 0, 0, DO_Formant_downto_FormantGrid);
+praat_addAction1 (classFormant, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classFormant, 0, U"To Matrix...", 0, 0, DO_Formant_to_Matrix);
+
+	praat_addAction1 (classFormantGrid, 0, U"FormantGrid help", 0, 0, DO_FormantGrid_help);
+	praat_addAction1 (classFormantGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_FormantGrid_edit);
+	praat_addAction1 (classFormantGrid, 1, U"Edit", 0, praat_HIDDEN, DO_FormantGrid_edit);
+	praat_addAction1 (classFormantGrid, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classFormantGrid);
-		praat_addAction1 (classFormantGrid, 0, U"Formula (frequencies)...", nullptr, 1, DO_FormantGrid_formula_frequencies);
-		//praat_addAction1 (classFormantGrid, 0, U"Formula (bandwidths)...", nullptr, 1, DO_FormantGrid_formula_bandwidths);
-		praat_addAction1 (classFormantGrid, 0, U"Add formant point...", nullptr, 1, DO_FormantGrid_addFormantPoint);
-		praat_addAction1 (classFormantGrid, 0, U"Add bandwidth point...", nullptr, 1, DO_FormantGrid_addBandwidthPoint);
-		praat_addAction1 (classFormantGrid, 0, U"Remove formant points between...", nullptr, 1, DO_FormantGrid_removeFormantPointsBetween);
-		praat_addAction1 (classFormantGrid, 0, U"Remove bandwidth points between...", nullptr, 1, DO_FormantGrid_removeBandwidthPointsBetween);
-	praat_addAction1 (classFormantGrid, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classFormantGrid, 0, U"To Formant...", nullptr, 1, DO_FormantGrid_to_Formant);
-
-	praat_addAction1 (classFormantTier, 0, U"FormantTier help", nullptr, 0, DO_FormantTier_help);
-	praat_addAction1 (classFormantTier, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classFormantTier, 0, U"Speckle...", nullptr, 1, DO_FormantTier_speckle);
-	praat_addAction1 (classFormantTier, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classFormantGrid, 0, U"Formula (frequencies)...", 0, 1, DO_FormantGrid_formula_frequencies);
+		//praat_addAction1 (classFormantGrid, 0, U"Formula (bandwidths)...", 0, 1, DO_FormantGrid_formula_bandwidths);
+		praat_addAction1 (classFormantGrid, 0, U"Add formant point...", 0, 1, DO_FormantGrid_addFormantPoint);
+		praat_addAction1 (classFormantGrid, 0, U"Add bandwidth point...", 0, 1, DO_FormantGrid_addBandwidthPoint);
+		praat_addAction1 (classFormantGrid, 0, U"Remove formant points between...", 0, 1, DO_FormantGrid_removeFormantPointsBetween);
+		praat_addAction1 (classFormantGrid, 0, U"Remove bandwidth points between...", 0, 1, DO_FormantGrid_removeBandwidthPointsBetween);
+	praat_addAction1 (classFormantGrid, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classFormantGrid, 0, U"To Formant...", 0, 1, DO_FormantGrid_to_Formant);
+
+	praat_addAction1 (classFormantTier, 0, U"FormantTier help", 0, 0, DO_FormantTier_help);
+	praat_addAction1 (classFormantTier, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classFormantTier, 0, U"Speckle...", 0, 1, DO_FormantTier_speckle);
+	praat_addAction1 (classFormantTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classFormantTier);
-		praat_addAction1 (classFormantTier, 1, U"-- get value --", nullptr, 1, nullptr);
-		praat_addAction1 (classFormantTier, 1, U"Get value at time...", nullptr, 1, DO_FormantTier_getValueAtTime);
-		praat_addAction1 (classFormantTier, 1, U"Get bandwidth at time...", nullptr, 1, DO_FormantTier_getBandwidthAtTime);
-	praat_addAction1 (classFormantTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classFormantTier, 1, U"-- get value --", 0, 1, 0);
+		praat_addAction1 (classFormantTier, 1, U"Get value at time...", 0, 1, DO_FormantTier_getValueAtTime);
+		praat_addAction1 (classFormantTier, 1, U"Get bandwidth at time...", 0, 1, DO_FormantTier_getBandwidthAtTime);
+	praat_addAction1 (classFormantTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classFormantTier);
-		praat_addAction1 (classFormantTier, 0, U"Add point...", nullptr, 1, DO_FormantTier_addPoint);
-praat_addAction1 (classFormantTier, 0, U"Down", nullptr, 0, nullptr);
-	praat_addAction1 (classFormantTier, 0, U"Down to TableOfReal...", nullptr, 0, DO_FormantTier_downto_TableOfReal);
-
-	praat_addAction1 (classHarmonicity, 0, U"Harmonicity help", nullptr, 0, DO_Harmonicity_help);
-	praat_addAction1 (classHarmonicity, 0, U"Draw", nullptr, 0, nullptr);
-		praat_addAction1 (classHarmonicity, 0, U"Draw...", nullptr, 0, DO_Harmonicity_draw);
-	praat_addAction1 (classHarmonicity, 1, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classFormantTier, 0, U"Add point...", 0, 1, DO_FormantTier_addPoint);
+praat_addAction1 (classFormantTier, 0, U"Down", 0, 0, 0);
+	praat_addAction1 (classFormantTier, 0, U"Down to TableOfReal...", 0, 0, DO_FormantTier_downto_TableOfReal);
+
+	praat_addAction1 (classHarmonicity, 0, U"Harmonicity help", 0, 0, DO_Harmonicity_help);
+	praat_addAction1 (classHarmonicity, 0, U"Draw", 0, 0, 0);
+		praat_addAction1 (classHarmonicity, 0, U"Draw...", 0, 0, DO_Harmonicity_draw);
+	praat_addAction1 (classHarmonicity, 1, U"Query -", 0, 0, 0);
 		praat_TimeFrameSampled_query_init (classHarmonicity);
-		praat_addAction1 (classHarmonicity, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classHarmonicity, 1, U"Get value at time...", nullptr, 1, DO_Harmonicity_getValueAtTime);
-		praat_addAction1 (classHarmonicity, 1, U"Get value in frame...", nullptr, 1, DO_Harmonicity_getValueInFrame);
-		praat_addAction1 (classHarmonicity, 1, U"-- get extreme --", nullptr, 1, nullptr);
-		praat_addAction1 (classHarmonicity, 1, U"Get minimum...", nullptr, 1, DO_Harmonicity_getMinimum);
-		praat_addAction1 (classHarmonicity, 1, U"Get time of minimum...", nullptr, 1, DO_Harmonicity_getTimeOfMinimum);
-		praat_addAction1 (classHarmonicity, 1, U"Get maximum...", nullptr, 1, DO_Harmonicity_getMaximum);
-		praat_addAction1 (classHarmonicity, 1, U"Get time of maximum...", nullptr, 1, DO_Harmonicity_getTimeOfMaximum);
-		praat_addAction1 (classHarmonicity, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classHarmonicity, 1, U"Get mean...", nullptr, 1, DO_Harmonicity_getMean);
-		praat_addAction1 (classHarmonicity, 1, U"Get standard deviation...", nullptr, 1, DO_Harmonicity_getStandardDeviation);
-	praat_addAction1 (classHarmonicity, 0, U"Modify", nullptr, 0, nullptr);
+		praat_addAction1 (classHarmonicity, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classHarmonicity, 1, U"Get value at time...", 0, 1, DO_Harmonicity_getValueAtTime);
+		praat_addAction1 (classHarmonicity, 1, U"Get value in frame...", 0, 1, DO_Harmonicity_getValueInFrame);
+		praat_addAction1 (classHarmonicity, 1, U"-- get extreme --", 0, 1, 0);
+		praat_addAction1 (classHarmonicity, 1, U"Get minimum...", 0, 1, DO_Harmonicity_getMinimum);
+		praat_addAction1 (classHarmonicity, 1, U"Get time of minimum...", 0, 1, DO_Harmonicity_getTimeOfMinimum);
+		praat_addAction1 (classHarmonicity, 1, U"Get maximum...", 0, 1, DO_Harmonicity_getMaximum);
+		praat_addAction1 (classHarmonicity, 1, U"Get time of maximum...", 0, 1, DO_Harmonicity_getTimeOfMaximum);
+		praat_addAction1 (classHarmonicity, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classHarmonicity, 1, U"Get mean...", 0, 1, DO_Harmonicity_getMean);
+		praat_addAction1 (classHarmonicity, 1, U"Get standard deviation...", 0, 1, DO_Harmonicity_getStandardDeviation);
+	praat_addAction1 (classHarmonicity, 0, U"Modify", 0, 0, 0);
 		praat_TimeFunction_modify_init (classHarmonicity);
-		praat_addAction1 (classHarmonicity, 0, U"Formula...", nullptr, 0, DO_Harmonicity_formula);
-	praat_addAction1 (classHarmonicity, 0, U"Hack", nullptr, 0, nullptr);
-		praat_addAction1 (classHarmonicity, 0, U"To Matrix", nullptr, 0, DO_Harmonicity_to_Matrix);
+		praat_addAction1 (classHarmonicity, 0, U"Formula...", 0, 0, DO_Harmonicity_formula);
+	praat_addAction1 (classHarmonicity, 0, U"Hack", 0, 0, 0);
+		praat_addAction1 (classHarmonicity, 0, U"To Matrix", 0, 0, DO_Harmonicity_to_Matrix);
 
-	praat_addAction1 (classIntensity, 0, U"Intensity help", nullptr, 0, DO_Intensity_help);
-	praat_addAction1 (classIntensity, 0, U"Draw...", nullptr, 0, DO_Intensity_draw);
-	praat_addAction1 (classIntensity, 1, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classIntensity, 0, U"Intensity help", 0, 0, DO_Intensity_help);
+	praat_addAction1 (classIntensity, 0, U"Draw...", 0, 0, DO_Intensity_draw);
+	praat_addAction1 (classIntensity, 1, U"Query -", 0, 0, 0);
 		praat_TimeFrameSampled_query_init (classIntensity);
-		praat_addAction1 (classIntensity, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classIntensity, 1, U"Get value at time...", nullptr, 1, DO_Intensity_getValueAtTime);
-		praat_addAction1 (classIntensity, 1, U"Get value in frame...", nullptr, 1, DO_Intensity_getValueInFrame);
-		praat_addAction1 (classIntensity, 1, U"-- get extreme --", nullptr, 1, nullptr);
-		praat_addAction1 (classIntensity, 1, U"Get minimum...", nullptr, 1, DO_Intensity_getMinimum);
-		praat_addAction1 (classIntensity, 1, U"Get time of minimum...", nullptr, 1, DO_Intensity_getTimeOfMinimum);
-		praat_addAction1 (classIntensity, 1, U"Get maximum...", nullptr, 1, DO_Intensity_getMaximum);
-		praat_addAction1 (classIntensity, 1, U"Get time of maximum...", nullptr, 1, DO_Intensity_getTimeOfMaximum);
-		praat_addAction1 (classIntensity, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classIntensity, 1, U"Get quantile...", nullptr, 1, DO_Intensity_getQuantile);
-		praat_addAction1 (classIntensity, 1, U"Get mean...", nullptr, 1, DO_Intensity_getMean);
-		praat_addAction1 (classIntensity, 1, U"Get standard deviation...", nullptr, 1, DO_Intensity_getStandardDeviation);
-	praat_addAction1 (classIntensity, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classIntensity, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classIntensity, 1, U"Get value at time...", 0, 1, DO_Intensity_getValueAtTime);
+		praat_addAction1 (classIntensity, 1, U"Get value in frame...", 0, 1, DO_Intensity_getValueInFrame);
+		praat_addAction1 (classIntensity, 1, U"-- get extreme --", 0, 1, 0);
+		praat_addAction1 (classIntensity, 1, U"Get minimum...", 0, 1, DO_Intensity_getMinimum);
+		praat_addAction1 (classIntensity, 1, U"Get time of minimum...", 0, 1, DO_Intensity_getTimeOfMinimum);
+		praat_addAction1 (classIntensity, 1, U"Get maximum...", 0, 1, DO_Intensity_getMaximum);
+		praat_addAction1 (classIntensity, 1, U"Get time of maximum...", 0, 1, DO_Intensity_getTimeOfMaximum);
+		praat_addAction1 (classIntensity, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classIntensity, 1, U"Get quantile...", 0, 1, DO_Intensity_getQuantile);
+		praat_addAction1 (classIntensity, 1, U"Get mean...", 0, 1, DO_Intensity_getMean);
+		praat_addAction1 (classIntensity, 1, U"Get standard deviation...", 0, 1, DO_Intensity_getStandardDeviation);
+	praat_addAction1 (classIntensity, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classIntensity);
-		praat_addAction1 (classIntensity, 0, U"Formula...", nullptr, 1, DO_Intensity_formula);
-	praat_addAction1 (classIntensity, 0, U"Analyse", nullptr, 0, nullptr);
-		praat_addAction1 (classIntensity, 0, U"To IntensityTier (peaks)", nullptr, 0, DO_Intensity_to_IntensityTier_peaks);
-		praat_addAction1 (classIntensity, 0, U"To IntensityTier (valleys)", nullptr, 0, DO_Intensity_to_IntensityTier_valleys);
-	praat_addAction1 (classIntensity, 0, U"Convert", nullptr, 0, nullptr);
-		praat_addAction1 (classIntensity, 0, U"Down to IntensityTier", nullptr, 0, DO_Intensity_downto_IntensityTier);
-		praat_addAction1 (classIntensity, 0, U"Down to Matrix", nullptr, 0, DO_Intensity_downto_Matrix);
-
-	praat_addAction1 (classIntensityTier, 0, U"IntensityTier help", nullptr, 0, DO_IntensityTier_help);
-	praat_addAction1 (classIntensityTier, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_IntensityTier_edit);
-	praat_addAction1 (classIntensityTier, 1, U"Edit", nullptr, praat_HIDDEN, DO_IntensityTier_edit);
-	praat_addAction1 (classIntensityTier, 0, U"View & Edit with Sound?", nullptr, 0, DO_info_IntensityTier_Sound_edit);
-	praat_addAction1 (classIntensityTier, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classIntensity, 0, U"Formula...", 0, 1, DO_Intensity_formula);
+	praat_addAction1 (classIntensity, 0, U"Analyse", 0, 0, 0);
+		praat_addAction1 (classIntensity, 0, U"To IntensityTier (peaks)", 0, 0, DO_Intensity_to_IntensityTier_peaks);
+		praat_addAction1 (classIntensity, 0, U"To IntensityTier (valleys)", 0, 0, DO_Intensity_to_IntensityTier_valleys);
+	praat_addAction1 (classIntensity, 0, U"Convert", 0, 0, 0);
+		praat_addAction1 (classIntensity, 0, U"Down to IntensityTier", 0, 0, DO_Intensity_downto_IntensityTier);
+		praat_addAction1 (classIntensity, 0, U"Down to Matrix", 0, 0, DO_Intensity_downto_Matrix);
+
+	praat_addAction1 (classIntensityTier, 0, U"IntensityTier help", 0, 0, DO_IntensityTier_help);
+	praat_addAction1 (classIntensityTier, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_IntensityTier_edit);
+	praat_addAction1 (classIntensityTier, 1, U"Edit", 0, praat_HIDDEN, DO_IntensityTier_edit);
+	praat_addAction1 (classIntensityTier, 0, U"View & Edit with Sound?", 0, 0, DO_info_IntensityTier_Sound_edit);
+	praat_addAction1 (classIntensityTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classIntensityTier);
-		praat_addAction1 (classIntensityTier, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classIntensityTier, 1, U"Get value at time...", nullptr, 1, DO_IntensityTier_getValueAtTime);
-		praat_addAction1 (classIntensityTier, 1, U"Get value at index...", nullptr, 1, DO_IntensityTier_getValueAtIndex);
-	praat_addAction1 (classIntensityTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classIntensityTier, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classIntensityTier, 1, U"Get value at time...", 0, 1, DO_IntensityTier_getValueAtTime);
+		praat_addAction1 (classIntensityTier, 1, U"Get value at index...", 0, 1, DO_IntensityTier_getValueAtIndex);
+	praat_addAction1 (classIntensityTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classIntensityTier);
-		praat_addAction1 (classIntensityTier, 0, U"Add point...", nullptr, 1, DO_IntensityTier_addPoint);
-		praat_addAction1 (classIntensityTier, 0, U"Formula...", nullptr, 1, DO_IntensityTier_formula);
-praat_addAction1 (classIntensityTier, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classIntensityTier, 0, U"To AmplitudeTier", nullptr, 0, DO_IntensityTier_to_AmplitudeTier);
-	praat_addAction1 (classIntensityTier, 0, U"Down to PointProcess", nullptr, 0, DO_IntensityTier_downto_PointProcess);
-	praat_addAction1 (classIntensityTier, 0, U"Down to TableOfReal", nullptr, 0, DO_IntensityTier_downto_TableOfReal);
-
-	praat_addAction1 (classLtas, 0, U"Ltas help", nullptr, 0, DO_Ltas_help);
-	praat_addAction1 (classLtas, 0, U"Draw...", nullptr, 0, DO_Ltas_draw);
-	praat_addAction1 (classLtas, 1, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classLtas, 1, U"Frequency domain", nullptr, 1, nullptr);
-		praat_addAction1 (classLtas, 1, U"Get lowest frequency", nullptr, 2, DO_Ltas_getLowestFrequency);
-		praat_addAction1 (classLtas, 1, U"Get highest frequency", nullptr, 2, DO_Ltas_getHighestFrequency);
-		praat_addAction1 (classLtas, 1, U"Frequency sampling", nullptr, 1, nullptr);
-		praat_addAction1 (classLtas, 1, U"Get number of bins", nullptr, 2, DO_Ltas_getNumberOfBins);
-			praat_addAction1 (classLtas, 1, U"Get number of bands", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getNumberOfBins);
-		praat_addAction1 (classLtas, 1, U"Get bin width", nullptr, 2, DO_Ltas_getBinWidth);
-			praat_addAction1 (classLtas, 1, U"Get band width", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getBinWidth);
-		praat_addAction1 (classLtas, 1, U"Get frequency from bin number...", nullptr, 2, DO_Ltas_getFrequencyFromBinNumber);
-			praat_addAction1 (classLtas, 1, U"Get frequency from band...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getFrequencyFromBinNumber);
-		praat_addAction1 (classLtas, 1, U"Get bin number from frequency...", nullptr, 2, DO_Ltas_getBinNumberFromFrequency);
-			praat_addAction1 (classLtas, 1, U"Get band from frequency...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getBinNumberFromFrequency);
-		praat_addAction1 (classLtas, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classLtas, 1, U"Get value at frequency...", nullptr, 1, DO_Ltas_getValueAtFrequency);
-		praat_addAction1 (classLtas, 1, U"Get value in bin...", nullptr, 1, DO_Ltas_getValueInBin);
-			praat_addAction1 (classLtas, 1, U"Get value in band...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Ltas_getValueInBin);
-		praat_addAction1 (classLtas, 1, U"-- get extreme --", nullptr, 1, nullptr);
-		praat_addAction1 (classLtas, 1, U"Get minimum...", nullptr, 1, DO_Ltas_getMinimum);
-		praat_addAction1 (classLtas, 1, U"Get frequency of minimum...", nullptr, 1, DO_Ltas_getFrequencyOfMinimum);
-		praat_addAction1 (classLtas, 1, U"Get maximum...", nullptr, 1, DO_Ltas_getMaximum);
-		praat_addAction1 (classLtas, 1, U"Get frequency of maximum...", nullptr, 1, DO_Ltas_getFrequencyOfMaximum);
-		praat_addAction1 (classLtas, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classLtas, 1, U"Get mean...", nullptr, 1, DO_Ltas_getMean);
-		praat_addAction1 (classLtas, 1, U"Get slope...", nullptr, 1, DO_Ltas_getSlope);
-		praat_addAction1 (classLtas, 1, U"Get local peak height...", nullptr, 1, DO_Ltas_getLocalPeakHeight);
-		praat_addAction1 (classLtas, 1, U"Get standard deviation...", nullptr, 1, DO_Ltas_getStandardDeviation);
-	praat_addAction1 (classLtas, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classLtas, 0, U"Formula...", nullptr, 0, DO_Ltas_formula);
-	praat_addAction1 (classLtas, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classLtas, 0, U"To SpectrumTier (peaks)", nullptr, 0, DO_Ltas_to_SpectrumTier_peaks);
-	praat_addAction1 (classLtas, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classLtas, 0, U"Compute trend line...", nullptr, 0, DO_Ltas_computeTrendLine);
-	praat_addAction1 (classLtas, 0, U"Subtract trend line...", nullptr, 0, DO_Ltas_subtractTrendLine);
-	praat_addAction1 (classLtas, 0, U"Combine", nullptr, 0, nullptr);
-	praat_addAction1 (classLtas, 0, U"Merge", nullptr, praat_HIDDEN, DO_Ltases_merge);
-	praat_addAction1 (classLtas, 0, U"Average", nullptr, 0, DO_Ltases_average);
-	praat_addAction1 (classLtas, 0, U"Hack", nullptr, 0, nullptr);
-	praat_addAction1 (classLtas, 0, U"To Matrix", nullptr, 0, DO_Ltas_to_Matrix);
-
-	praat_addAction1 (classManipulation, 0, U"Manipulation help", nullptr, 0, DO_Manipulation_help);
-	praat_addAction1 (classManipulation, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Manipulation_edit);
-	praat_addAction1 (classManipulation, 1, U"Edit", nullptr, praat_HIDDEN, DO_Manipulation_edit);
-	praat_addAction1 (classManipulation, 0, U"Play (overlap-add)", nullptr, 0, DO_Manipulation_play_overlapAdd);
-	praat_addAction1 (classManipulation, 0, U"Play (PSOLA)", nullptr, praat_HIDDEN, DO_Manipulation_play_overlapAdd);
-	praat_addAction1 (classManipulation, 0, U"Play (LPC)", nullptr, 0, DO_Manipulation_play_lpc);
-	praat_addAction1 (classManipulation, 0, U"Get resynthesis (overlap-add)", nullptr, 0, DO_Manipulation_getResynthesis_overlapAdd);
-	praat_addAction1 (classManipulation, 0, U"Get resynthesis (PSOLA)", nullptr, praat_HIDDEN, DO_Manipulation_getResynthesis_overlapAdd);
-	praat_addAction1 (classManipulation, 0, U"Get resynthesis (LPC)", nullptr, 0, DO_Manipulation_getResynthesis_lpc);
-	praat_addAction1 (classManipulation, 0, U"Extract original sound", nullptr, 0, DO_Manipulation_extractOriginalSound);
-	praat_addAction1 (classManipulation, 0, U"Extract pulses", nullptr, 0, DO_Manipulation_extractPulses);
-	praat_addAction1 (classManipulation, 0, U"Extract pitch tier", nullptr, 0, DO_Manipulation_extractPitchTier);
-	praat_addAction1 (classManipulation, 0, U"Extract duration tier", nullptr, 0, DO_Manipulation_extractDurationTier);
-	praat_addAction1 (classManipulation, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classIntensityTier, 0, U"Add point...", 0, 1, DO_IntensityTier_addPoint);
+		praat_addAction1 (classIntensityTier, 0, U"Formula...", 0, 1, DO_IntensityTier_formula);
+praat_addAction1 (classIntensityTier, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classIntensityTier, 0, U"To AmplitudeTier", 0, 0, DO_IntensityTier_to_AmplitudeTier);
+	praat_addAction1 (classIntensityTier, 0, U"Down to PointProcess", 0, 0, DO_IntensityTier_downto_PointProcess);
+	praat_addAction1 (classIntensityTier, 0, U"Down to TableOfReal", 0, 0, DO_IntensityTier_downto_TableOfReal);
+
+	praat_addAction1 (classLtas, 0, U"Ltas help", 0, 0, DO_Ltas_help);
+	praat_addAction1 (classLtas, 0, U"Draw...", 0, 0, DO_Ltas_draw);
+	praat_addAction1 (classLtas, 1, U"Query -", 0, 0, 0);
+		praat_addAction1 (classLtas, 1, U"Frequency domain", 0, 1, 0);
+		praat_addAction1 (classLtas, 1, U"Get lowest frequency", 0, 2, DO_Ltas_getLowestFrequency);
+		praat_addAction1 (classLtas, 1, U"Get highest frequency", 0, 2, DO_Ltas_getHighestFrequency);
+		praat_addAction1 (classLtas, 1, U"Frequency sampling", 0, 1, 0);
+		praat_addAction1 (classLtas, 1, U"Get number of bins", 0, 2, DO_Ltas_getNumberOfBins);
+			praat_addAction1 (classLtas, 1, U"Get number of bands", 0, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getNumberOfBins);
+		praat_addAction1 (classLtas, 1, U"Get bin width", 0, 2, DO_Ltas_getBinWidth);
+			praat_addAction1 (classLtas, 1, U"Get band width", 0, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getBinWidth);
+		praat_addAction1 (classLtas, 1, U"Get frequency from bin number...", 0, 2, DO_Ltas_getFrequencyFromBinNumber);
+			praat_addAction1 (classLtas, 1, U"Get frequency from band...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getFrequencyFromBinNumber);
+		praat_addAction1 (classLtas, 1, U"Get bin number from frequency...", 0, 2, DO_Ltas_getBinNumberFromFrequency);
+			praat_addAction1 (classLtas, 1, U"Get band from frequency...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Ltas_getBinNumberFromFrequency);
+		praat_addAction1 (classLtas, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classLtas, 1, U"Get value at frequency...", 0, 1, DO_Ltas_getValueAtFrequency);
+		praat_addAction1 (classLtas, 1, U"Get value in bin...", 0, 1, DO_Ltas_getValueInBin);
+			praat_addAction1 (classLtas, 1, U"Get value in band...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Ltas_getValueInBin);
+		praat_addAction1 (classLtas, 1, U"-- get extreme --", 0, 1, 0);
+		praat_addAction1 (classLtas, 1, U"Get minimum...", 0, 1, DO_Ltas_getMinimum);
+		praat_addAction1 (classLtas, 1, U"Get frequency of minimum...", 0, 1, DO_Ltas_getFrequencyOfMinimum);
+		praat_addAction1 (classLtas, 1, U"Get maximum...", 0, 1, DO_Ltas_getMaximum);
+		praat_addAction1 (classLtas, 1, U"Get frequency of maximum...", 0, 1, DO_Ltas_getFrequencyOfMaximum);
+		praat_addAction1 (classLtas, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classLtas, 1, U"Get mean...", 0, 1, DO_Ltas_getMean);
+		praat_addAction1 (classLtas, 1, U"Get slope...", 0, 1, DO_Ltas_getSlope);
+		praat_addAction1 (classLtas, 1, U"Get local peak height...", 0, 1, DO_Ltas_getLocalPeakHeight);
+		praat_addAction1 (classLtas, 1, U"Get standard deviation...", 0, 1, DO_Ltas_getStandardDeviation);
+	praat_addAction1 (classLtas, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classLtas, 0, U"Formula...", 0, 0, DO_Ltas_formula);
+	praat_addAction1 (classLtas, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classLtas, 0, U"To SpectrumTier (peaks)", 0, 0, DO_Ltas_to_SpectrumTier_peaks);
+	praat_addAction1 (classLtas, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classLtas, 0, U"Compute trend line...", 0, 0, DO_Ltas_computeTrendLine);
+	praat_addAction1 (classLtas, 0, U"Subtract trend line...", 0, 0, DO_Ltas_subtractTrendLine);
+	praat_addAction1 (classLtas, 0, U"Combine", 0, 0, 0);
+	praat_addAction1 (classLtas, 0, U"Merge", 0, praat_HIDDEN, DO_Ltases_merge);
+	praat_addAction1 (classLtas, 0, U"Average", 0, 0, DO_Ltases_average);
+	praat_addAction1 (classLtas, 0, U"Hack", 0, 0, 0);
+	praat_addAction1 (classLtas, 0, U"To Matrix", 0, 0, DO_Ltas_to_Matrix);
+
+	praat_addAction1 (classManipulation, 0, U"Manipulation help", 0, 0, DO_Manipulation_help);
+	praat_addAction1 (classManipulation, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Manipulation_edit);
+	praat_addAction1 (classManipulation, 1, U"Edit", 0, praat_HIDDEN, DO_Manipulation_edit);
+	praat_addAction1 (classManipulation, 0, U"Play (overlap-add)", 0, 0, DO_Manipulation_play_overlapAdd);
+	praat_addAction1 (classManipulation, 0, U"Play (PSOLA)", 0, praat_HIDDEN, DO_Manipulation_play_overlapAdd);
+	praat_addAction1 (classManipulation, 0, U"Play (LPC)", 0, 0, DO_Manipulation_play_lpc);
+	praat_addAction1 (classManipulation, 0, U"Get resynthesis (overlap-add)", 0, 0, DO_Manipulation_getResynthesis_overlapAdd);
+	praat_addAction1 (classManipulation, 0, U"Get resynthesis (PSOLA)", 0, praat_HIDDEN, DO_Manipulation_getResynthesis_overlapAdd);
+	praat_addAction1 (classManipulation, 0, U"Get resynthesis (LPC)", 0, 0, DO_Manipulation_getResynthesis_lpc);
+	praat_addAction1 (classManipulation, 0, U"Extract original sound", 0, 0, DO_Manipulation_extractOriginalSound);
+	praat_addAction1 (classManipulation, 0, U"Extract pulses", 0, 0, DO_Manipulation_extractPulses);
+	praat_addAction1 (classManipulation, 0, U"Extract pitch tier", 0, 0, DO_Manipulation_extractPitchTier);
+	praat_addAction1 (classManipulation, 0, U"Extract duration tier", 0, 0, DO_Manipulation_extractDurationTier);
+	praat_addAction1 (classManipulation, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classManipulation);
-		praat_addAction1 (classManipulation, 0, U"Replace pitch tier?", nullptr, 1, DO_Manipulation_replacePitchTier_help);
-		praat_addAction1 (classManipulation, 0, U"Replace duration tier?", nullptr, 1, DO_Manipulation_replaceDurationTier_help);
-	praat_addAction1 (classManipulation, 1, U"Save as text file without Sound...", nullptr, 0, DO_Manipulation_writeToTextFileWithoutSound);
-	praat_addAction1 (classManipulation, 1, U"Write to text file without Sound...", nullptr, praat_HIDDEN, DO_Manipulation_writeToTextFileWithoutSound);
-	praat_addAction1 (classManipulation, 1, U"Save as binary file without Sound...", nullptr, 0, DO_Manipulation_writeToBinaryFileWithoutSound);
-	praat_addAction1 (classManipulation, 1, U"Write to binary file without Sound...", nullptr, praat_HIDDEN, DO_Manipulation_writeToBinaryFileWithoutSound);
-
-	praat_addAction1 (classMatrix, 0, U"Matrix help", nullptr, 0, DO_Matrix_help);
-	praat_addAction1 (classMatrix, 1, U"Save as matrix text file...", nullptr, 0, DO_Matrix_writeToMatrixTextFile);
-	praat_addAction1 (classMatrix, 1, U"Write to matrix text file...", nullptr, praat_HIDDEN, DO_Matrix_writeToMatrixTextFile);
-	praat_addAction1 (classMatrix, 1, U"Save as headerless spreadsheet file...", nullptr, 0, DO_Matrix_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (classMatrix, 1, U"Write to headerless spreadsheet file...", nullptr, praat_HIDDEN, DO_Matrix_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (classMatrix, 1, U"Play movie", nullptr, 0, DO_Matrix_movie);
-	praat_addAction1 (classMatrix, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classMatrix, 0, U"Draw rows...", nullptr, 1, DO_Matrix_drawRows);
-		praat_addAction1 (classMatrix, 0, U"Draw one contour...", nullptr, 1, DO_Matrix_drawOneContour);
-		praat_addAction1 (classMatrix, 0, U"Draw contours...", nullptr, 1, DO_Matrix_drawContours);
-		praat_addAction1 (classMatrix, 0, U"Paint image...", nullptr, 1, DO_Matrix_paintImage);
-		praat_addAction1 (classMatrix, 0, U"Paint contours...", nullptr, 1, DO_Matrix_paintContours);
-		praat_addAction1 (classMatrix, 0, U"Paint cells...", nullptr, 1, DO_Matrix_paintCells);
-		praat_addAction1 (classMatrix, 0, U"Paint surface...", nullptr, 1, DO_Matrix_paintSurface);
-	praat_addAction1 (classMatrix, 1, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classMatrix, 1, U"Get lowest x", nullptr, 1, DO_Matrix_getLowestX);
-		praat_addAction1 (classMatrix, 1, U"Get highest x", nullptr, 1, DO_Matrix_getHighestX);
-		praat_addAction1 (classMatrix, 1, U"Get lowest y", nullptr, 1, DO_Matrix_getLowestY);
-		praat_addAction1 (classMatrix, 1, U"Get highest y", nullptr, 1, DO_Matrix_getHighestY);
-		praat_addAction1 (classMatrix, 1, U"-- get structure --", nullptr, 1, nullptr);
-		praat_addAction1 (classMatrix, 1, U"Get number of rows", nullptr, 1, DO_Matrix_getNumberOfRows);
-		praat_addAction1 (classMatrix, 1, U"Get number of columns", nullptr, 1, DO_Matrix_getNumberOfColumns);
-		praat_addAction1 (classMatrix, 1, U"Get row distance", nullptr, 1, DO_Matrix_getRowDistance);
-		praat_addAction1 (classMatrix, 1, U"Get column distance", nullptr, 1, DO_Matrix_getColumnDistance);
-		praat_addAction1 (classMatrix, 1, U"Get y of row...", nullptr, 1, DO_Matrix_getYofRow);
-		praat_addAction1 (classMatrix, 1, U"Get x of column...", nullptr, 1, DO_Matrix_getXofColumn);
-		praat_addAction1 (classMatrix, 1, U"-- get value --", nullptr, 1, nullptr);
-		praat_addAction1 (classMatrix, 1, U"Get value in cell...", nullptr, 1, DO_Matrix_getValueInCell);
-		praat_addAction1 (classMatrix, 1, U"Get value at xy...", nullptr, 1, DO_Matrix_getValueAtXY);
-		praat_addAction1 (classMatrix, 1, U"Get minimum", nullptr, 1, DO_Matrix_getMinimum);
-		praat_addAction1 (classMatrix, 1, U"Get maximum", nullptr, 1, DO_Matrix_getMaximum);
-		praat_addAction1 (classMatrix, 1, U"Get sum", nullptr, 1, DO_Matrix_getSum);
-	praat_addAction1 (classMatrix, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classMatrix, 0, U"Formula...", nullptr, 1, DO_Matrix_formula);
-		praat_addAction1 (classMatrix, 0, U"Set value...", nullptr, 1, DO_Matrix_setValue);
-praat_addAction1 (classMatrix, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classMatrix, 0, U"Eigen", nullptr, 0, DO_Matrix_eigen);
-	praat_addAction1 (classMatrix, 0, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction1 (classMatrix, 0, U"Power...", nullptr, 0, DO_Matrix_power);
-	praat_addAction1 (classMatrix, 0, U"Combine two Matrices -", nullptr, 0, nullptr);
-		praat_addAction1 (classMatrix, 2, U"Merge (append rows)", nullptr, 1, DO_Matrix_appendRows);
-		praat_addAction1 (classMatrix, 2, U"To ParamCurve", nullptr, 1, DO_Matrix_to_ParamCurve);
-	praat_addAction1 (classMatrix, 0, U"Cast -", nullptr, 0, nullptr);
-		praat_addAction1 (classMatrix, 0, U"To Cochleagram", nullptr, 1, DO_Matrix_to_Cochleagram);
-		praat_addAction1 (classMatrix, 0, U"To Excitation", nullptr, 1, DO_Matrix_to_Excitation);
-		praat_addAction1 (classMatrix, 0, U"To Harmonicity", nullptr, 1, DO_Matrix_to_Harmonicity);
-		praat_addAction1 (classMatrix, 0, U"To Intensity", nullptr, 1, DO_Matrix_to_Intensity);
-		praat_addAction1 (classMatrix, 0, U"To Ltas", nullptr, 1, DO_Matrix_to_Ltas);
-		praat_addAction1 (classMatrix, 0, U"To Pitch", nullptr, 1, DO_Matrix_to_Pitch);
-		praat_addAction1 (classMatrix, 0, U"To PointProcess", nullptr, 1, DO_Matrix_to_PointProcess);
-		praat_addAction1 (classMatrix, 0, U"To Polygon", nullptr, 1, DO_Matrix_to_Polygon);
-		praat_addAction1 (classMatrix, 0, U"To Sound", nullptr, 1, DO_Matrix_to_Sound);
-		praat_addAction1 (classMatrix, 0, U"To Sound (slice)...", nullptr, 1, DO_Matrix_to_Sound_mono);
-		praat_addAction1 (classMatrix, 0, U"To Spectrogram", nullptr, 1, DO_Matrix_to_Spectrogram);
-		praat_addAction1 (classMatrix, 0, U"To TableOfReal", nullptr, 1, DO_Matrix_to_TableOfReal);
-		praat_addAction1 (classMatrix, 0, U"To Spectrum", nullptr, 1, DO_Matrix_to_Spectrum);
-		praat_addAction1 (classMatrix, 0, U"To Transition", nullptr, 1, DO_Matrix_to_Transition);
-		praat_addAction1 (classMatrix, 0, U"To VocalTract", nullptr, 1, DO_Matrix_to_VocalTract);
-
-	praat_addAction1 (classMovie, 1, U"Paint one image...", nullptr, 1, DO_Movie_paintOneImage);
-	praat_addAction1 (classMovie, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Movie_viewAndEdit);
-
-	praat_addAction1 (classParamCurve, 0, U"ParamCurve help", nullptr, 0, DO_ParamCurve_help);
-	praat_addAction1 (classParamCurve, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classParamCurve, 0, U"Draw...", nullptr, 0, DO_ParamCurve_draw);
-
-	praat_addAction1 (classPhoto, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classPhoto, 0, U"Paint image...", nullptr, 1, DO_Photo_paintImage);
-		praat_addAction1 (classPhoto, 0, U"Paint cells...", nullptr, 1, DO_Photo_paintCells);
-	praat_addAction1 (classPhoto, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classPhoto, 0, U"Formula (red)...", nullptr, 1, DO_Photo_formula_red);
-		praat_addAction1 (classPhoto, 0, U"Formula (green)...", nullptr, 1, DO_Photo_formula_green);
-		praat_addAction1 (classPhoto, 0, U"Formula (blue)...", nullptr, 1, DO_Photo_formula_blue);
-		praat_addAction1 (classPhoto, 0, U"Formula (transparency)...", nullptr, 1, DO_Photo_formula_transparency);
-	praat_addAction1 (classPhoto, 0, U"Extract -", nullptr, 0, nullptr);
-		praat_addAction1 (classPhoto, 0, U"Extract red", nullptr, 1, DO_Photo_extractRed);
-		praat_addAction1 (classPhoto, 0, U"Extract green", nullptr, 1, DO_Photo_extractGreen);
-		praat_addAction1 (classPhoto, 0, U"Extract blue", nullptr, 1, DO_Photo_extractBlue);
-		praat_addAction1 (classPhoto, 0, U"Extract transparency", nullptr, 1, DO_Photo_extractTransparency);
-	praat_addAction1 (classPhoto, 1, U"Save as PNG file...", nullptr, 0, DO_Photo_saveAsPNG);
+		praat_addAction1 (classManipulation, 0, U"Replace pitch tier?", 0, 1, DO_Manipulation_replacePitchTier_help);
+		praat_addAction1 (classManipulation, 0, U"Replace duration tier?", 0, 1, DO_Manipulation_replaceDurationTier_help);
+	praat_addAction1 (classManipulation, 1, U"Save as text file without Sound...", 0, 0, DO_Manipulation_writeToTextFileWithoutSound);
+	praat_addAction1 (classManipulation, 1, U"Write to text file without Sound...", 0, praat_HIDDEN, DO_Manipulation_writeToTextFileWithoutSound);
+	praat_addAction1 (classManipulation, 1, U"Save as binary file without Sound...", 0, 0, DO_Manipulation_writeToBinaryFileWithoutSound);
+	praat_addAction1 (classManipulation, 1, U"Write to binary file without Sound...", 0, praat_HIDDEN, DO_Manipulation_writeToBinaryFileWithoutSound);
+
+	praat_addAction1 (classMatrix, 0, U"Matrix help", 0, 0, DO_Matrix_help);
+	praat_addAction1 (classMatrix, 1, U"Save as matrix text file...", 0, 0, DO_Matrix_writeToMatrixTextFile);
+	praat_addAction1 (classMatrix, 1, U"Write to matrix text file...", 0, praat_HIDDEN, DO_Matrix_writeToMatrixTextFile);
+	praat_addAction1 (classMatrix, 1, U"Save as headerless spreadsheet file...", 0, 0, DO_Matrix_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (classMatrix, 1, U"Write to headerless spreadsheet file...", 0, praat_HIDDEN, DO_Matrix_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (classMatrix, 1, U"Play movie", 0, 0, DO_Matrix_movie);
+	praat_addAction1 (classMatrix, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classMatrix, 0, U"Draw rows...", 0, 1, DO_Matrix_drawRows);
+		praat_addAction1 (classMatrix, 0, U"Draw one contour...", 0, 1, DO_Matrix_drawOneContour);
+		praat_addAction1 (classMatrix, 0, U"Draw contours...", 0, 1, DO_Matrix_drawContours);
+		praat_addAction1 (classMatrix, 0, U"Paint image...", 0, 1, DO_Matrix_paintImage);
+		praat_addAction1 (classMatrix, 0, U"Paint contours...", 0, 1, DO_Matrix_paintContours);
+		praat_addAction1 (classMatrix, 0, U"Paint cells...", 0, 1, DO_Matrix_paintCells);
+		praat_addAction1 (classMatrix, 0, U"Paint surface...", 0, 1, DO_Matrix_paintSurface);
+	praat_addAction1 (classMatrix, 1, U"Query -", 0, 0, 0);
+		praat_addAction1 (classMatrix, 1, U"Get lowest x", 0, 1, DO_Matrix_getLowestX);
+		praat_addAction1 (classMatrix, 1, U"Get highest x", 0, 1, DO_Matrix_getHighestX);
+		praat_addAction1 (classMatrix, 1, U"Get lowest y", 0, 1, DO_Matrix_getLowestY);
+		praat_addAction1 (classMatrix, 1, U"Get highest y", 0, 1, DO_Matrix_getHighestY);
+		praat_addAction1 (classMatrix, 1, U"-- get structure --", 0, 1, 0);
+		praat_addAction1 (classMatrix, 1, U"Get number of rows", 0, 1, DO_Matrix_getNumberOfRows);
+		praat_addAction1 (classMatrix, 1, U"Get number of columns", 0, 1, DO_Matrix_getNumberOfColumns);
+		praat_addAction1 (classMatrix, 1, U"Get row distance", 0, 1, DO_Matrix_getRowDistance);
+		praat_addAction1 (classMatrix, 1, U"Get column distance", 0, 1, DO_Matrix_getColumnDistance);
+		praat_addAction1 (classMatrix, 1, U"Get y of row...", 0, 1, DO_Matrix_getYofRow);
+		praat_addAction1 (classMatrix, 1, U"Get x of column...", 0, 1, DO_Matrix_getXofColumn);
+		praat_addAction1 (classMatrix, 1, U"-- get value --", 0, 1, 0);
+		praat_addAction1 (classMatrix, 1, U"Get value in cell...", 0, 1, DO_Matrix_getValueInCell);
+		praat_addAction1 (classMatrix, 1, U"Get value at xy...", 0, 1, DO_Matrix_getValueAtXY);
+		praat_addAction1 (classMatrix, 1, U"Get minimum", 0, 1, DO_Matrix_getMinimum);
+		praat_addAction1 (classMatrix, 1, U"Get maximum", 0, 1, DO_Matrix_getMaximum);
+		praat_addAction1 (classMatrix, 1, U"Get sum", 0, 1, DO_Matrix_getSum);
+	praat_addAction1 (classMatrix, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classMatrix, 0, U"Formula...", 0, 1, DO_Matrix_formula);
+		praat_addAction1 (classMatrix, 0, U"Set value...", 0, 1, DO_Matrix_setValue);
+praat_addAction1 (classMatrix, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classMatrix, 0, U"Eigen", 0, 0, DO_Matrix_eigen);
+	praat_addAction1 (classMatrix, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classMatrix, 0, U"Power...", 0, 0, DO_Matrix_power);
+	praat_addAction1 (classMatrix, 0, U"Combine two Matrices -", 0, 0, 0);
+		praat_addAction1 (classMatrix, 2, U"Merge (append rows)", 0, 1, DO_Matrix_appendRows);
+		praat_addAction1 (classMatrix, 2, U"To ParamCurve", 0, 1, DO_Matrix_to_ParamCurve);
+	praat_addAction1 (classMatrix, 0, U"Cast -", 0, 0, 0);
+		praat_addAction1 (classMatrix, 0, U"To Cochleagram", 0, 1, DO_Matrix_to_Cochleagram);
+		praat_addAction1 (classMatrix, 0, U"To Excitation", 0, 1, DO_Matrix_to_Excitation);
+		praat_addAction1 (classMatrix, 0, U"To Harmonicity", 0, 1, DO_Matrix_to_Harmonicity);
+		praat_addAction1 (classMatrix, 0, U"To Intensity", 0, 1, DO_Matrix_to_Intensity);
+		praat_addAction1 (classMatrix, 0, U"To Ltas", 0, 1, DO_Matrix_to_Ltas);
+		praat_addAction1 (classMatrix, 0, U"To Pitch", 0, 1, DO_Matrix_to_Pitch);
+		praat_addAction1 (classMatrix, 0, U"To PointProcess", 0, 1, DO_Matrix_to_PointProcess);
+		praat_addAction1 (classMatrix, 0, U"To Polygon", 0, 1, DO_Matrix_to_Polygon);
+		praat_addAction1 (classMatrix, 0, U"To Sound", 0, 1, DO_Matrix_to_Sound);
+		praat_addAction1 (classMatrix, 0, U"To Sound (slice)...", 0, 1, DO_Matrix_to_Sound_mono);
+		praat_addAction1 (classMatrix, 0, U"To Spectrogram", 0, 1, DO_Matrix_to_Spectrogram);
+		praat_addAction1 (classMatrix, 0, U"To TableOfReal", 0, 1, DO_Matrix_to_TableOfReal);
+		praat_addAction1 (classMatrix, 0, U"To Spectrum", 0, 1, DO_Matrix_to_Spectrum);
+		praat_addAction1 (classMatrix, 0, U"To Transition", 0, 1, DO_Matrix_to_Transition);
+		praat_addAction1 (classMatrix, 0, U"To VocalTract", 0, 1, DO_Matrix_to_VocalTract);
+
+	praat_addAction1 (classMovie, 1, U"Paint one image...", 0, 1, DO_Movie_paintOneImage);
+	praat_addAction1 (classMovie, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Movie_viewAndEdit);
+
+	praat_addAction1 (classParamCurve, 0, U"ParamCurve help", 0, 0, DO_ParamCurve_help);
+	praat_addAction1 (classParamCurve, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classParamCurve, 0, U"Draw...", 0, 0, DO_ParamCurve_draw);
+
+	praat_addAction1 (classPhoto, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classPhoto, 0, U"Paint image...", 0, 1, DO_Photo_paintImage);
+		praat_addAction1 (classPhoto, 0, U"Paint cells...", 0, 1, DO_Photo_paintCells);
+	praat_addAction1 (classPhoto, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classPhoto, 0, U"Formula (red)...", 0, 1, DO_Photo_formula_red);
+		praat_addAction1 (classPhoto, 0, U"Formula (green)...", 0, 1, DO_Photo_formula_green);
+		praat_addAction1 (classPhoto, 0, U"Formula (blue)...", 0, 1, DO_Photo_formula_blue);
+		praat_addAction1 (classPhoto, 0, U"Formula (transparency)...", 0, 1, DO_Photo_formula_transparency);
+	praat_addAction1 (classPhoto, 0, U"Extract -", 0, 0, 0);
+		praat_addAction1 (classPhoto, 0, U"Extract red", 0, 1, DO_Photo_extractRed);
+		praat_addAction1 (classPhoto, 0, U"Extract green", 0, 1, DO_Photo_extractGreen);
+		praat_addAction1 (classPhoto, 0, U"Extract blue", 0, 1, DO_Photo_extractBlue);
+		praat_addAction1 (classPhoto, 0, U"Extract transparency", 0, 1, DO_Photo_extractTransparency);
+	praat_addAction1 (classPhoto, 1, U"Save as PNG file...", 0, 0, DO_Photo_saveAsPNG);
 	#if defined (macintosh) || defined (_WIN32)
-		praat_addAction1 (classPhoto, 1, U"Save as TIFF file...", nullptr, 0, DO_Photo_saveAsTIFF);
-		praat_addAction1 (classPhoto, 1, U"Save as GIF file...", nullptr, 0, DO_Photo_saveAsGIF);
-		praat_addAction1 (classPhoto, 1, U"Save as Windows bitmap file...", nullptr, 0, DO_Photo_saveAsWindowsBitmapFile);
-		praat_addAction1 (classPhoto, 1, U"Save as lossy JPEG file...", nullptr, 0, DO_Photo_saveAsJPEG);
+		praat_addAction1 (classPhoto, 1, U"Save as TIFF file...", 0, 0, DO_Photo_saveAsTIFF);
+		praat_addAction1 (classPhoto, 1, U"Save as GIF file...", 0, 0, DO_Photo_saveAsGIF);
+		praat_addAction1 (classPhoto, 1, U"Save as Windows bitmap file...", 0, 0, DO_Photo_saveAsWindowsBitmapFile);
+		praat_addAction1 (classPhoto, 1, U"Save as lossy JPEG file...", 0, 0, DO_Photo_saveAsJPEG);
 	#endif
 	#if defined (macintosh)
-		praat_addAction1 (classPhoto, 1, U"Save as JPEG-2000 file...", nullptr, 0, DO_Photo_saveAsJPEG2000);
-		praat_addAction1 (classPhoto, 1, U"Save as Apple icon file...", nullptr, 0, DO_Photo_saveAsAppleIconFile);
-		praat_addAction1 (classPhoto, 1, U"Save as Windows icon file...", nullptr, 0, DO_Photo_saveAsWindowsIconFile);
+		praat_addAction1 (classPhoto, 1, U"Save as JPEG-2000 file...", 0, 0, DO_Photo_saveAsJPEG2000);
+		praat_addAction1 (classPhoto, 1, U"Save as Apple icon file...", 0, 0, DO_Photo_saveAsAppleIconFile);
+		praat_addAction1 (classPhoto, 1, U"Save as Windows icon file...", 0, 0, DO_Photo_saveAsWindowsIconFile);
 	#endif
 
-	praat_addAction1 (classPitch, 0, U"Pitch help", nullptr, 0, DO_Pitch_help);
-	praat_addAction1 (classPitch, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Pitch_edit);
-	praat_addAction1 (classPitch, 1, U"Edit", nullptr, praat_HIDDEN, DO_Pitch_edit);
-	praat_addAction1 (classPitch, 0, U"Sound -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitch, 0, U"Play pulses", nullptr, 1, DO_Pitch_play);
-		praat_addAction1 (classPitch, 0, U"Hum", nullptr, 1, DO_Pitch_hum);
-		praat_addAction1 (classPitch, 0, U"-- to sound --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 0, U"To Sound (pulses)", nullptr, 1, DO_Pitch_to_Sound_pulses);
-		praat_addAction1 (classPitch, 0, U"To Sound (hum)", nullptr, 1, DO_Pitch_to_Sound_hum);
-		praat_addAction1 (classPitch, 0, U"To Sound (sine)...", nullptr, 1, DO_Pitch_to_Sound_sine);
-	praat_addAction1 (classPitch, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitch, 0, U"Draw...", nullptr, 1, DO_Pitch_draw);
-		praat_addAction1 (classPitch, 0, U"Draw logarithmic...", nullptr, 1, DO_Pitch_drawLogarithmic);
-		praat_addAction1 (classPitch, 0, U"Draw semitones (re 100 Hz)...", nullptr, 1, DO_Pitch_drawSemitones100);
-		praat_addAction1 (classPitch, 0, U"Draw semitones...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_drawSemitones100);
-		praat_addAction1 (classPitch, 0, U"Draw semitones (re 200 Hz)...", nullptr, 1, DO_Pitch_drawSemitones200);
-		praat_addAction1 (classPitch, 0, U"Draw semitones (re 440 Hz)...", nullptr, 1, DO_Pitch_drawSemitones440);
-		praat_addAction1 (classPitch, 0, U"Draw mel...", nullptr, 1, DO_Pitch_drawMel);
-		praat_addAction1 (classPitch, 0, U"Draw erb...", nullptr, 1, DO_Pitch_drawErb);
-		praat_addAction1 (classPitch, 0, U"Speckle...", nullptr, 1, DO_Pitch_speckle);
-		praat_addAction1 (classPitch, 0, U"Speckle logarithmic...", nullptr, 1, DO_Pitch_speckleLogarithmic);
-		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 100 Hz)...", nullptr, 1, DO_Pitch_speckleSemitones100);
-		praat_addAction1 (classPitch, 0, U"Speckle semitones...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_speckleSemitones100);
-		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 200 Hz)...", nullptr, 1, DO_Pitch_speckleSemitones200);
-		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 440 Hz)...", nullptr, 1, DO_Pitch_speckleSemitones440);
-		praat_addAction1 (classPitch, 0, U"Speckle mel...", nullptr, 1, DO_Pitch_speckleMel);
-		praat_addAction1 (classPitch, 0, U"Speckle erb...", nullptr, 1, DO_Pitch_speckleErb);
-	praat_addAction1 (classPitch, 0, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classPitch, 0, U"Pitch help", 0, 0, DO_Pitch_help);
+	praat_addAction1 (classPitch, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Pitch_edit);
+	praat_addAction1 (classPitch, 1, U"Edit", 0, praat_HIDDEN, DO_Pitch_edit);
+	praat_addAction1 (classPitch, 0, U"Sound -", 0, 0, 0);
+		praat_addAction1 (classPitch, 0, U"Play pulses", 0, 1, DO_Pitch_play);
+		praat_addAction1 (classPitch, 0, U"Hum", 0, 1, DO_Pitch_hum);
+		praat_addAction1 (classPitch, 0, U"-- to sound --", 0, 1, 0);
+		praat_addAction1 (classPitch, 0, U"To Sound (pulses)", 0, 1, DO_Pitch_to_Sound_pulses);
+		praat_addAction1 (classPitch, 0, U"To Sound (hum)", 0, 1, DO_Pitch_to_Sound_hum);
+		praat_addAction1 (classPitch, 0, U"To Sound (sine)...", 0, 1, DO_Pitch_to_Sound_sine);
+	praat_addAction1 (classPitch, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classPitch, 0, U"Draw...", 0, 1, DO_Pitch_draw);
+		praat_addAction1 (classPitch, 0, U"Draw logarithmic...", 0, 1, DO_Pitch_drawLogarithmic);
+		praat_addAction1 (classPitch, 0, U"Draw semitones (re 100 Hz)...", 0, 1, DO_Pitch_drawSemitones100);
+		praat_addAction1 (classPitch, 0, U"Draw semitones...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_drawSemitones100);
+		praat_addAction1 (classPitch, 0, U"Draw semitones (re 200 Hz)...", 0, 1, DO_Pitch_drawSemitones200);
+		praat_addAction1 (classPitch, 0, U"Draw semitones (re 440 Hz)...", 0, 1, DO_Pitch_drawSemitones440);
+		praat_addAction1 (classPitch, 0, U"Draw mel...", 0, 1, DO_Pitch_drawMel);
+		praat_addAction1 (classPitch, 0, U"Draw erb...", 0, 1, DO_Pitch_drawErb);
+		praat_addAction1 (classPitch, 0, U"Speckle...", 0, 1, DO_Pitch_speckle);
+		praat_addAction1 (classPitch, 0, U"Speckle logarithmic...", 0, 1, DO_Pitch_speckleLogarithmic);
+		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 100 Hz)...", 0, 1, DO_Pitch_speckleSemitones100);
+		praat_addAction1 (classPitch, 0, U"Speckle semitones...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_speckleSemitones100);
+		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 200 Hz)...", 0, 1, DO_Pitch_speckleSemitones200);
+		praat_addAction1 (classPitch, 0, U"Speckle semitones (re 440 Hz)...", 0, 1, DO_Pitch_speckleSemitones440);
+		praat_addAction1 (classPitch, 0, U"Speckle mel...", 0, 1, DO_Pitch_speckleMel);
+		praat_addAction1 (classPitch, 0, U"Speckle erb...", 0, 1, DO_Pitch_speckleErb);
+	praat_addAction1 (classPitch, 0, U"Query -", 0, 0, 0);
 		praat_TimeFrameSampled_query_init (classPitch);
-		praat_addAction1 (classPitch, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 1, U"Count voiced frames", nullptr, 1, DO_Pitch_getNumberOfVoicedFrames);
-		praat_addAction1 (classPitch, 1, U"Get value at time...", nullptr, 1, DO_Pitch_getValueAtTime);
-		praat_addAction1 (classPitch, 1, U"Get value in frame...", nullptr, 1, DO_Pitch_getValueInFrame);
-		praat_addAction1 (classPitch, 1, U"-- get extreme --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 1, U"Get minimum...", nullptr, 1, DO_Pitch_getMinimum);
-		praat_addAction1 (classPitch, 1, U"Get time of minimum...", nullptr, 1, DO_Pitch_getTimeOfMinimum);
-		praat_addAction1 (classPitch, 1, U"Get maximum...", nullptr, 1, DO_Pitch_getMaximum);
-		praat_addAction1 (classPitch, 1, U"Get time of maximum...", nullptr, 1, DO_Pitch_getTimeOfMaximum);
-		praat_addAction1 (classPitch, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 1, U"Get quantile...", nullptr, 1, DO_Pitch_getQuantile);
-		/*praat_addAction1 (classPitch, 1, U"Get spreading...", nullptr, 1, DO_Pitch_getSpreading);*/
-		praat_addAction1 (classPitch, 1, U"Get mean...", nullptr, 1, DO_Pitch_getMean);
-		praat_addAction1 (classPitch, 1, U"Get standard deviation...", nullptr, 1, DO_Pitch_getStandardDeviation);
-		praat_addAction1 (classPitch, 1, U"-- get slope --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 1, U"Get mean absolute slope...", nullptr, 1, DO_Pitch_getMeanAbsoluteSlope);
-		praat_addAction1 (classPitch, 1, U"Get slope without octave jumps", nullptr, 1, DO_Pitch_getMeanAbsSlope_noOctave);
-		praat_addAction1 (classPitch, 2, U"-- query two --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 2, U"Count differences", nullptr, 1, DO_Pitch_difference);
-	praat_addAction1 (classPitch, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classPitch, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classPitch, 1, U"Count voiced frames", 0, 1, DO_Pitch_getNumberOfVoicedFrames);
+		praat_addAction1 (classPitch, 1, U"Get value at time...", 0, 1, DO_Pitch_getValueAtTime);
+		praat_addAction1 (classPitch, 1, U"Get value in frame...", 0, 1, DO_Pitch_getValueInFrame);
+		praat_addAction1 (classPitch, 1, U"-- get extreme --", 0, 1, 0);
+		praat_addAction1 (classPitch, 1, U"Get minimum...", 0, 1, DO_Pitch_getMinimum);
+		praat_addAction1 (classPitch, 1, U"Get time of minimum...", 0, 1, DO_Pitch_getTimeOfMinimum);
+		praat_addAction1 (classPitch, 1, U"Get maximum...", 0, 1, DO_Pitch_getMaximum);
+		praat_addAction1 (classPitch, 1, U"Get time of maximum...", 0, 1, DO_Pitch_getTimeOfMaximum);
+		praat_addAction1 (classPitch, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classPitch, 1, U"Get quantile...", 0, 1, DO_Pitch_getQuantile);
+		/*praat_addAction1 (classPitch, 1, U"Get spreading...", 0, 1, DO_Pitch_getSpreading);*/
+		praat_addAction1 (classPitch, 1, U"Get mean...", 0, 1, DO_Pitch_getMean);
+		praat_addAction1 (classPitch, 1, U"Get standard deviation...", 0, 1, DO_Pitch_getStandardDeviation);
+		praat_addAction1 (classPitch, 1, U"-- get slope --", 0, 1, 0);
+		praat_addAction1 (classPitch, 1, U"Get mean absolute slope...", 0, 1, DO_Pitch_getMeanAbsoluteSlope);
+		praat_addAction1 (classPitch, 1, U"Get slope without octave jumps", 0, 1, DO_Pitch_getMeanAbsSlope_noOctave);
+		praat_addAction1 (classPitch, 2, U"-- query two --", 0, 1, 0);
+		praat_addAction1 (classPitch, 2, U"Count differences", 0, 1, DO_Pitch_difference);
+	praat_addAction1 (classPitch, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classPitch);
-		praat_addAction1 (classPitch, 0, U"Formula...", nullptr, 1, DO_Pitch_formula);
-	praat_addAction1 (classPitch, 0, U"Annotate -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitch, 0, U"To TextGrid...", nullptr, 1, DO_Pitch_to_TextGrid);
-		praat_addAction1 (classPitch, 0, U"-- to single tier --", nullptr, praat_HIDDEN + praat_DEPTH_1, nullptr);
-		praat_addAction1 (classPitch, 0, U"To TextTier", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_to_TextTier);
-		praat_addAction1 (classPitch, 0, U"To IntervalTier", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_to_IntervalTier);
-	praat_addAction1 (classPitch, 0, U"Analyse -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitch, 0, U"To PointProcess", nullptr, 1, DO_Pitch_to_PointProcess);
-	praat_addAction1 (classPitch, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitch, 0, U"Interpolate", nullptr, 1, DO_Pitch_interpolate);
-		praat_addAction1 (classPitch, 0, U"Smooth...", nullptr, 1, DO_Pitch_smooth);
-		praat_addAction1 (classPitch, 0, U"Subtract linear fit...", nullptr, 1, DO_Pitch_subtractLinearFit);
-		praat_addAction1 (classPitch, 0, U"Hack", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 0, U"Kill octave jumps", nullptr, 2, DO_Pitch_killOctaveJumps);
-		praat_addAction1 (classPitch, 0, U"-- to other types --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitch, 0, U"Down to PitchTier", nullptr, 1, DO_Pitch_to_PitchTier);
-		praat_addAction1 (classPitch, 0, U"To Matrix", nullptr, 1, DO_Pitch_to_Matrix);
-
-	praat_addAction1 (classPitchTier, 1, U"Save as PitchTier spreadsheet file...", nullptr, 0, DO_PitchTier_writeToPitchTierSpreadsheetFile);
-	praat_addAction1 (classPitchTier, 1, U"Write to PitchTier spreadsheet file...", nullptr, praat_HIDDEN, DO_PitchTier_writeToPitchTierSpreadsheetFile);
-	praat_addAction1 (classPitchTier, 1, U"Save as headerless spreadsheet file...", nullptr, 0, DO_PitchTier_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (classPitchTier, 1, U"Write to headerless spreadsheet file...", nullptr, praat_HIDDEN, DO_PitchTier_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (classPitchTier, 0, U"PitchTier help", nullptr, 0, DO_PitchTier_help);
-	praat_addAction1 (classPitchTier, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_PitchTier_edit);
-	praat_addAction1 (classPitchTier, 1, U"Edit", nullptr, praat_HIDDEN, DO_PitchTier_edit);
-	praat_addAction1 (classPitchTier, 0, U"View & Edit with Sound?", nullptr, 0, DO_info_PitchTier_Sound_edit);
-	praat_addAction1 (classPitchTier, 0, U"Play pulses", nullptr, 0, DO_PitchTier_play);
-	praat_addAction1 (classPitchTier, 0, U"Hum", nullptr, 0, DO_PitchTier_hum);
-	praat_addAction1 (classPitchTier, 0, U"Play sine", nullptr, 0, DO_PitchTier_playSine);
-	praat_addAction1 (classPitchTier, 0, U"Draw...", nullptr, 0, DO_PitchTier_draw);
-	praat_addAction1 (classPitchTier, 0, U"& Manipulation: Replace?", nullptr, 0, DO_info_PitchTier_Manipulation_replace);
-	praat_addAction1 (classPitchTier, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classPitch, 0, U"Formula...", 0, 1, DO_Pitch_formula);
+	praat_addAction1 (classPitch, 0, U"Annotate -", 0, 0, 0);
+		praat_addAction1 (classPitch, 0, U"To TextGrid...", 0, 1, DO_Pitch_to_TextGrid);
+		praat_addAction1 (classPitch, 0, U"-- to single tier --", 0, praat_HIDDEN + praat_DEPTH_1, 0);
+		praat_addAction1 (classPitch, 0, U"To TextTier", 0, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_to_TextTier);
+		praat_addAction1 (classPitch, 0, U"To IntervalTier", 0, praat_HIDDEN + praat_DEPTH_1, DO_Pitch_to_IntervalTier);
+	praat_addAction1 (classPitch, 0, U"Analyse -", 0, 0, 0);
+		praat_addAction1 (classPitch, 0, U"To PointProcess", 0, 1, DO_Pitch_to_PointProcess);
+	praat_addAction1 (classPitch, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classPitch, 0, U"Interpolate", 0, 1, DO_Pitch_interpolate);
+		praat_addAction1 (classPitch, 0, U"Smooth...", 0, 1, DO_Pitch_smooth);
+		praat_addAction1 (classPitch, 0, U"Subtract linear fit...", 0, 1, DO_Pitch_subtractLinearFit);
+		praat_addAction1 (classPitch, 0, U"Hack", 0, 1, 0);
+		praat_addAction1 (classPitch, 0, U"Kill octave jumps", 0, 2, DO_Pitch_killOctaveJumps);
+		praat_addAction1 (classPitch, 0, U"-- to other types --", 0, 1, 0);
+		praat_addAction1 (classPitch, 0, U"Down to PitchTier", 0, 1, DO_Pitch_to_PitchTier);
+		praat_addAction1 (classPitch, 0, U"To Matrix", 0, 1, DO_Pitch_to_Matrix);
+
+	praat_addAction1 (classPitchTier, 1, U"Save as PitchTier spreadsheet file...", 0, 0, DO_PitchTier_writeToPitchTierSpreadsheetFile);
+	praat_addAction1 (classPitchTier, 1, U"Write to PitchTier spreadsheet file...", 0, praat_HIDDEN, DO_PitchTier_writeToPitchTierSpreadsheetFile);
+	praat_addAction1 (classPitchTier, 1, U"Save as headerless spreadsheet file...", 0, 0, DO_PitchTier_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (classPitchTier, 1, U"Write to headerless spreadsheet file...", 0, praat_HIDDEN, DO_PitchTier_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (classPitchTier, 0, U"PitchTier help", 0, 0, DO_PitchTier_help);
+	praat_addAction1 (classPitchTier, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_PitchTier_edit);
+	praat_addAction1 (classPitchTier, 1, U"Edit", 0, praat_HIDDEN, DO_PitchTier_edit);
+	praat_addAction1 (classPitchTier, 0, U"View & Edit with Sound?", 0, 0, DO_info_PitchTier_Sound_edit);
+	praat_addAction1 (classPitchTier, 0, U"Play pulses", 0, 0, DO_PitchTier_play);
+	praat_addAction1 (classPitchTier, 0, U"Hum", 0, 0, DO_PitchTier_hum);
+	praat_addAction1 (classPitchTier, 0, U"Play sine", 0, 0, DO_PitchTier_playSine);
+	praat_addAction1 (classPitchTier, 0, U"Draw...", 0, 0, DO_PitchTier_draw);
+	praat_addAction1 (classPitchTier, 0, U"& Manipulation: Replace?", 0, 0, DO_info_PitchTier_Manipulation_replace);
+	praat_addAction1 (classPitchTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classPitchTier);
-		praat_addAction1 (classPitchTier, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitchTier, 1, U"Get value at time...", nullptr, 1, DO_PitchTier_getValueAtTime);
-		praat_addAction1 (classPitchTier, 1, U"Get value at index...", nullptr, 1, DO_PitchTier_getValueAtIndex);
-		praat_addAction1 (classPitchTier, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitchTier, 1, U"Get mean (curve)...", nullptr, 1, DO_PitchTier_getMean_curve);
-		praat_addAction1 (classPitchTier, 1, U"Get mean (points)...", nullptr, 1, DO_PitchTier_getMean_points);
-		praat_addAction1 (classPitchTier, 1, U"Get standard deviation (curve)...", nullptr, 1, DO_PitchTier_getStandardDeviation_curve);
-		praat_addAction1 (classPitchTier, 1, U"Get standard deviation (points)...", nullptr, 1, DO_PitchTier_getStandardDeviation_points);
-	praat_addAction1 (classPitchTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classPitchTier, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classPitchTier, 1, U"Get value at time...", 0, 1, DO_PitchTier_getValueAtTime);
+		praat_addAction1 (classPitchTier, 1, U"Get value at index...", 0, 1, DO_PitchTier_getValueAtIndex);
+		praat_addAction1 (classPitchTier, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classPitchTier, 1, U"Get mean (curve)...", 0, 1, DO_PitchTier_getMean_curve);
+		praat_addAction1 (classPitchTier, 1, U"Get mean (points)...", 0, 1, DO_PitchTier_getMean_points);
+		praat_addAction1 (classPitchTier, 1, U"Get standard deviation (curve)...", 0, 1, DO_PitchTier_getStandardDeviation_curve);
+		praat_addAction1 (classPitchTier, 1, U"Get standard deviation (points)...", 0, 1, DO_PitchTier_getStandardDeviation_points);
+	praat_addAction1 (classPitchTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classPitchTier);
-		praat_addAction1 (classPitchTier, 0, U"Add point...", nullptr, 1, DO_PitchTier_addPoint);
-		praat_addAction1 (classPitchTier, 0, U"Formula...", nullptr, 1, DO_PitchTier_formula);
-		praat_addAction1 (classPitchTier, 0, U"-- stylize --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitchTier, 0, U"Stylize...", nullptr, 1, DO_PitchTier_stylize);
-		praat_addAction1 (classPitchTier, 0, U"Interpolate quadratically...", nullptr, 1, DO_PitchTier_interpolateQuadratically);
-		praat_addAction1 (classPitchTier, 0, U"-- modify frequencies --", nullptr, 1, nullptr);
-		praat_addAction1 (classPitchTier, 0, U"Shift frequencies...", nullptr, 1, DO_PitchTier_shiftFrequencies);
-		praat_addAction1 (classPitchTier, 0, U"Multiply frequencies...", nullptr, 1, DO_PitchTier_multiplyFrequencies);
-	praat_addAction1 (classPitchTier, 0, U"Synthesize -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitchTier, 0, U"To PointProcess", nullptr, 1, DO_PitchTier_to_PointProcess);
-		praat_addAction1 (classPitchTier, 0, U"To Sound (pulse train)...", nullptr, 1, DO_PitchTier_to_Sound_pulseTrain);
-		praat_addAction1 (classPitchTier, 0, U"To Sound (phonation)...", nullptr, 1, DO_PitchTier_to_Sound_phonation);
-		praat_addAction1 (classPitchTier, 0, U"To Sound (sine)...", nullptr, 1, DO_PitchTier_to_Sound_sine);
-	praat_addAction1 (classPitchTier, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classPitchTier, 0, U"Down to PointProcess", nullptr, 1, DO_PitchTier_downto_PointProcess);
-		praat_addAction1 (classPitchTier, 0, U"Down to TableOfReal...", nullptr, 1, DO_PitchTier_downto_TableOfReal);
-
-	praat_addAction1 (classPointProcess, 0, U"PointProcess help", nullptr, 0, DO_PointProcess_help);
-	praat_addAction1 (classPointProcess, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_PointProcess_edit);
-	praat_addAction1 (classPointProcess, 1, U"View & Edit alone", nullptr, praat_HIDDEN, DO_PointProcess_edit);
-	praat_addAction1 (classPointProcess, 1, U"Edit alone", nullptr, praat_HIDDEN, DO_PointProcess_edit);
-	praat_addAction1 (classPointProcess, 0, U"View & Edit with Sound?", nullptr, 0, DO_info_PointProcess_Sound_edit);
-	praat_addAction1 (classPointProcess, 0, U"Play -", nullptr, 0, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"Play as pulse train", nullptr, 1, DO_PointProcess_play);
-		praat_addAction1 (classPointProcess, 0, U"Hum", nullptr, 1, DO_PointProcess_hum);
-		praat_addAction1 (classPointProcess, 0, U"-- to sound --", nullptr, 1, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"To Sound (pulse train)...", nullptr, 1, DO_PointProcess_to_Sound_pulseTrain);
-		praat_addAction1 (classPointProcess, 0, U"To Sound (phonation)...", nullptr, 1, DO_PointProcess_to_Sound_phonation);
-		praat_addAction1 (classPointProcess, 0, U"To Sound (hum)", nullptr, 1, DO_PointProcess_to_Sound_hum);
-	praat_addAction1 (classPointProcess, 0, U"Draw...", nullptr, 0, DO_PointProcess_draw);
-	praat_addAction1 (classPointProcess, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classPitchTier, 0, U"Add point...", 0, 1, DO_PitchTier_addPoint);
+		praat_addAction1 (classPitchTier, 0, U"Formula...", 0, 1, DO_PitchTier_formula);
+		praat_addAction1 (classPitchTier, 0, U"-- stylize --", 0, 1, 0);
+		praat_addAction1 (classPitchTier, 0, U"Stylize...", 0, 1, DO_PitchTier_stylize);
+		praat_addAction1 (classPitchTier, 0, U"Interpolate quadratically...", 0, 1, DO_PitchTier_interpolateQuadratically);
+		praat_addAction1 (classPitchTier, 0, U"-- modify frequencies --", 0, 1, 0);
+		praat_addAction1 (classPitchTier, 0, U"Shift frequencies...", 0, 1, DO_PitchTier_shiftFrequencies);
+		praat_addAction1 (classPitchTier, 0, U"Multiply frequencies...", 0, 1, DO_PitchTier_multiplyFrequencies);
+	praat_addAction1 (classPitchTier, 0, U"Synthesize -", 0, 0, 0);
+		praat_addAction1 (classPitchTier, 0, U"To PointProcess", 0, 1, DO_PitchTier_to_PointProcess);
+		praat_addAction1 (classPitchTier, 0, U"To Sound (pulse train)...", 0, 1, DO_PitchTier_to_Sound_pulseTrain);
+		praat_addAction1 (classPitchTier, 0, U"To Sound (phonation)...", 0, 1, DO_PitchTier_to_Sound_phonation);
+		praat_addAction1 (classPitchTier, 0, U"To Sound (sine)...", 0, 1, DO_PitchTier_to_Sound_sine);
+	praat_addAction1 (classPitchTier, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classPitchTier, 0, U"Down to PointProcess", 0, 1, DO_PitchTier_downto_PointProcess);
+		praat_addAction1 (classPitchTier, 0, U"Down to TableOfReal...", 0, 1, DO_PitchTier_downto_TableOfReal);
+
+	praat_addAction1 (classPointProcess, 0, U"PointProcess help", 0, 0, DO_PointProcess_help);
+	praat_addAction1 (classPointProcess, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_PointProcess_edit);
+	praat_addAction1 (classPointProcess, 1, U"View & Edit alone", 0, praat_HIDDEN, DO_PointProcess_edit);
+	praat_addAction1 (classPointProcess, 1, U"Edit alone", 0, praat_HIDDEN, DO_PointProcess_edit);
+	praat_addAction1 (classPointProcess, 0, U"View & Edit with Sound?", 0, 0, DO_info_PointProcess_Sound_edit);
+	praat_addAction1 (classPointProcess, 0, U"Play -", 0, 0, 0);
+		praat_addAction1 (classPointProcess, 0, U"Play as pulse train", 0, 1, DO_PointProcess_play);
+		praat_addAction1 (classPointProcess, 0, U"Hum", 0, 1, DO_PointProcess_hum);
+		praat_addAction1 (classPointProcess, 0, U"-- to sound --", 0, 1, 0);
+		praat_addAction1 (classPointProcess, 0, U"To Sound (pulse train)...", 0, 1, DO_PointProcess_to_Sound_pulseTrain);
+		praat_addAction1 (classPointProcess, 0, U"To Sound (phonation)...", 0, 1, DO_PointProcess_to_Sound_phonation);
+		praat_addAction1 (classPointProcess, 0, U"To Sound (hum)", 0, 1, DO_PointProcess_to_Sound_hum);
+	praat_addAction1 (classPointProcess, 0, U"Draw...", 0, 0, DO_PointProcess_draw);
+	praat_addAction1 (classPointProcess, 0, U"Query -", 0, 0, 0);
 		praat_TimeFunction_query_init (classPointProcess);
-		praat_addAction1 (classPointProcess, 1, U"-- script get --", nullptr, 1, nullptr);
-		praat_addAction1 (classPointProcess, 1, U"Get number of points", nullptr, 1, DO_PointProcess_getNumberOfPoints);
-		praat_addAction1 (classPointProcess, 1, U"Get low index...", nullptr, 1, DO_PointProcess_getLowIndex);
-		praat_addAction1 (classPointProcess, 1, U"Get high index...", nullptr, 1, DO_PointProcess_getHighIndex);
-		praat_addAction1 (classPointProcess, 1, U"Get nearest index...", nullptr, 1, DO_PointProcess_getNearestIndex);
-		praat_addAction1 (classPointProcess, 1, U"Get time from index...", nullptr, 1, DO_PointProcess_getTimeFromIndex);
-		praat_addAction1 (classPointProcess, 1, U"Get interval...", nullptr, 1, DO_PointProcess_getInterval);
-		praat_addAction1 (classPointProcess, 1, U"-- periods --", nullptr, 1, nullptr);
-		praat_addAction1 (classPointProcess, 1, U"Get number of periods...", nullptr, 1, DO_PointProcess_getNumberOfPeriods);
-		praat_addAction1 (classPointProcess, 1, U"Get mean period...", nullptr, 1, DO_PointProcess_getMeanPeriod);
-		praat_addAction1 (classPointProcess, 1, U"Get stdev period...", nullptr, 1, DO_PointProcess_getStdevPeriod);
-		praat_addAction1 (classPointProcess, 1, U"Get jitter (local)...", nullptr, 1, DO_PointProcess_getJitter_local);
-		praat_addAction1 (classPointProcess, 1, U"Get jitter (local, absolute)...", nullptr, 1, DO_PointProcess_getJitter_local_absolute);
-		praat_addAction1 (classPointProcess, 1, U"Get jitter (rap)...", nullptr, 1, DO_PointProcess_getJitter_rap);
-		praat_addAction1 (classPointProcess, 1, U"Get jitter (ppq5)...", nullptr, 1, DO_PointProcess_getJitter_ppq5);
-		praat_addAction1 (classPointProcess, 1, U"Get jitter (ddp)...", nullptr, 1, DO_PointProcess_getJitter_ddp);
-	praat_addAction1 (classPointProcess, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classPointProcess, 1, U"-- script get --", 0, 1, 0);
+		praat_addAction1 (classPointProcess, 1, U"Get number of points", 0, 1, DO_PointProcess_getNumberOfPoints);
+		praat_addAction1 (classPointProcess, 1, U"Get low index...", 0, 1, DO_PointProcess_getLowIndex);
+		praat_addAction1 (classPointProcess, 1, U"Get high index...", 0, 1, DO_PointProcess_getHighIndex);
+		praat_addAction1 (classPointProcess, 1, U"Get nearest index...", 0, 1, DO_PointProcess_getNearestIndex);
+		praat_addAction1 (classPointProcess, 1, U"Get time from index...", 0, 1, DO_PointProcess_getTimeFromIndex);
+		praat_addAction1 (classPointProcess, 1, U"Get interval...", 0, 1, DO_PointProcess_getInterval);
+		praat_addAction1 (classPointProcess, 1, U"-- periods --", 0, 1, 0);
+		praat_addAction1 (classPointProcess, 1, U"Get number of periods...", 0, 1, DO_PointProcess_getNumberOfPeriods);
+		praat_addAction1 (classPointProcess, 1, U"Get mean period...", 0, 1, DO_PointProcess_getMeanPeriod);
+		praat_addAction1 (classPointProcess, 1, U"Get stdev period...", 0, 1, DO_PointProcess_getStdevPeriod);
+		praat_addAction1 (classPointProcess, 1, U"Get jitter (local)...", 0, 1, DO_PointProcess_getJitter_local);
+		praat_addAction1 (classPointProcess, 1, U"Get jitter (local, absolute)...", 0, 1, DO_PointProcess_getJitter_local_absolute);
+		praat_addAction1 (classPointProcess, 1, U"Get jitter (rap)...", 0, 1, DO_PointProcess_getJitter_rap);
+		praat_addAction1 (classPointProcess, 1, U"Get jitter (ppq5)...", 0, 1, DO_PointProcess_getJitter_ppq5);
+		praat_addAction1 (classPointProcess, 1, U"Get jitter (ddp)...", 0, 1, DO_PointProcess_getJitter_ddp);
+	praat_addAction1 (classPointProcess, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classPointProcess);
-		praat_addAction1 (classPointProcess, 0, U"Add point...", nullptr, 1, DO_PointProcess_addPoint);
-		praat_addAction1 (classPointProcess, 0, U"Remove point...", nullptr, 1, DO_PointProcess_removePoint);
-		praat_addAction1 (classPointProcess, 0, U"Remove point near...", nullptr, 1, DO_PointProcess_removePointNear);
-		praat_addAction1 (classPointProcess, 0, U"Remove points...", nullptr, 1, DO_PointProcess_removePoints);
-		praat_addAction1 (classPointProcess, 0, U"Remove points between...", nullptr, 1, DO_PointProcess_removePointsBetween);
-		praat_addAction1 (classPointProcess, 0, U"-- voice --", nullptr, 1, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"Fill...", nullptr, 1, DO_PointProcess_fill);
-		praat_addAction1 (classPointProcess, 0, U"Voice...", nullptr, 1, DO_PointProcess_voice);
-	praat_addAction1 (classPointProcess, 0, U"Annotate -", nullptr, 0, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"To TextGrid...", nullptr, 1, DO_PointProcess_to_TextGrid);
-		praat_addAction1 (classPointProcess, 0, U"-- to single tier --", nullptr, 1, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"To TextTier", nullptr, 1, DO_PointProcess_to_TextTier);
-		praat_addAction1 (classPointProcess, 0, U"To IntervalTier", nullptr, 1, DO_PointProcess_to_IntervalTier);
-	praat_addAction1 (classPointProcess, 0, U"Analyse -", nullptr, 0, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"To PitchTier...", nullptr, 1, DO_PointProcess_to_PitchTier);
-		praat_addAction1 (classPointProcess, 0, U"To TextGrid (vuv)...", nullptr, 1, DO_PointProcess_to_TextGrid_vuv);
-	praat_addAction1 (classPointProcess, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classPointProcess, 0, U"Hack", nullptr, 1, nullptr);
-			praat_addAction1 (classPointProcess, 0, U"To Matrix", nullptr, 2, DO_PointProcess_to_Matrix);
-			praat_addAction1 (classPointProcess, 0, U"Up to TextTier...", nullptr, 2, DO_PointProcess_upto_TextTier);
-			praat_addAction1 (classPointProcess, 0, U"Up to PitchTier...", nullptr, 2, DO_PointProcess_upto_PitchTier);
-			praat_addAction1 (classPointProcess, 0, U"Up to IntensityTier...", nullptr, 2, DO_PointProcess_upto_IntensityTier);
-	praat_addAction1 (classPointProcess, 0, U"Combine -", nullptr, 0, nullptr);
-		praat_addAction1 (classPointProcess, 2, U"Union", nullptr, 1, DO_PointProcess_union);
-		praat_addAction1 (classPointProcess, 2, U"Intersection", nullptr, 1, DO_PointProcess_intersection);
-		praat_addAction1 (classPointProcess, 2, U"Difference", nullptr, 1, DO_PointProcess_difference);
-
-	praat_addAction1 (classPolygon, 0, U"Polygon help", nullptr, 0, DO_Polygon_help);
-praat_addAction1 (classPolygon, 0, U"Draw -", nullptr, 0, nullptr);
-	praat_addAction1 (classPolygon, 0, U"Draw...", nullptr, 1, DO_Polygon_draw);
-	praat_addAction1 (classPolygon, 0, U"Draw closed...", nullptr, 1, DO_Polygon_drawClosed);
-	praat_addAction1 (classPolygon, 0, U"Paint...", nullptr, 1, DO_Polygon_paint);
-	praat_addAction1 (classPolygon, 0, U"Draw circles...", nullptr, 1, DO_Polygon_drawCircles);
-	praat_addAction1 (classPolygon, 0, U"Paint circles...", nullptr, 1, DO_Polygon_paintCircles);
-	praat_addAction1 (classPolygon, 2, U"Draw connection...", nullptr, 1, DO_Polygons_drawConnection);
-praat_addAction1 (classPolygon, 0, U"Modify -", nullptr, 0, nullptr);
-	praat_addAction1 (classPolygon, 0, U"Randomize", nullptr, 1, DO_Polygon_randomize);
-	praat_addAction1 (classPolygon, 0, U"Salesperson...", nullptr, 1, DO_Polygon_salesperson);
-praat_addAction1 (classPolygon, 0, U"Hack -", nullptr, 0, nullptr);
-	praat_addAction1 (classPolygon, 0, U"To Matrix", nullptr, 1, DO_Polygon_to_Matrix);
-
-	praat_addAction1 (classSpectrogram, 0, U"Spectrogram help", nullptr, 0, DO_Spectrogram_help);
-	praat_addAction1 (classSpectrogram, 1, U"View", nullptr, 0, DO_Spectrogram_view);
-	praat_addAction1 (classSpectrogram, 1, U"Movie", nullptr, 0, DO_Spectrogram_movie);
-	praat_addAction1 (classSpectrogram, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classPointProcess, 0, U"Add point...", 0, 1, DO_PointProcess_addPoint);
+		praat_addAction1 (classPointProcess, 0, U"Remove point...", 0, 1, DO_PointProcess_removePoint);
+		praat_addAction1 (classPointProcess, 0, U"Remove point near...", 0, 1, DO_PointProcess_removePointNear);
+		praat_addAction1 (classPointProcess, 0, U"Remove points...", 0, 1, DO_PointProcess_removePoints);
+		praat_addAction1 (classPointProcess, 0, U"Remove points between...", 0, 1, DO_PointProcess_removePointsBetween);
+		praat_addAction1 (classPointProcess, 0, U"-- voice --", 0, 1, 0);
+		praat_addAction1 (classPointProcess, 0, U"Fill...", 0, 1, DO_PointProcess_fill);
+		praat_addAction1 (classPointProcess, 0, U"Voice...", 0, 1, DO_PointProcess_voice);
+	praat_addAction1 (classPointProcess, 0, U"Annotate -", 0, 0, 0);
+		praat_addAction1 (classPointProcess, 0, U"To TextGrid...", 0, 1, DO_PointProcess_to_TextGrid);
+		praat_addAction1 (classPointProcess, 0, U"-- to single tier --", 0, 1, 0);
+		praat_addAction1 (classPointProcess, 0, U"To TextTier", 0, 1, DO_PointProcess_to_TextTier);
+		praat_addAction1 (classPointProcess, 0, U"To IntervalTier", 0, 1, DO_PointProcess_to_IntervalTier);
+	praat_addAction1 (classPointProcess, 0, U"Analyse -", 0, 0, 0);
+		praat_addAction1 (classPointProcess, 0, U"To PitchTier...", 0, 1, DO_PointProcess_to_PitchTier);
+		praat_addAction1 (classPointProcess, 0, U"To TextGrid (vuv)...", 0, 1, DO_PointProcess_to_TextGrid_vuv);
+	praat_addAction1 (classPointProcess, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classPointProcess, 0, U"Hack", 0, 1, 0);
+			praat_addAction1 (classPointProcess, 0, U"To Matrix", 0, 2, DO_PointProcess_to_Matrix);
+			praat_addAction1 (classPointProcess, 0, U"Up to TextTier...", 0, 2, DO_PointProcess_upto_TextTier);
+			praat_addAction1 (classPointProcess, 0, U"Up to PitchTier...", 0, 2, DO_PointProcess_upto_PitchTier);
+			praat_addAction1 (classPointProcess, 0, U"Up to IntensityTier...", 0, 2, DO_PointProcess_upto_IntensityTier);
+	praat_addAction1 (classPointProcess, 0, U"Combine -", 0, 0, 0);
+		praat_addAction1 (classPointProcess, 2, U"Union", 0, 1, DO_PointProcess_union);
+		praat_addAction1 (classPointProcess, 2, U"Intersection", 0, 1, DO_PointProcess_intersection);
+		praat_addAction1 (classPointProcess, 2, U"Difference", 0, 1, DO_PointProcess_difference);
+
+	praat_addAction1 (classPolygon, 0, U"Polygon help", 0, 0, DO_Polygon_help);
+praat_addAction1 (classPolygon, 0, U"Draw -", 0, 0, 0);
+	praat_addAction1 (classPolygon, 0, U"Draw...", 0, 1, DO_Polygon_draw);
+	praat_addAction1 (classPolygon, 0, U"Draw closed...", 0, 1, DO_Polygon_drawClosed);
+	praat_addAction1 (classPolygon, 0, U"Paint...", 0, 1, DO_Polygon_paint);
+	praat_addAction1 (classPolygon, 0, U"Draw circles...", 0, 1, DO_Polygon_drawCircles);
+	praat_addAction1 (classPolygon, 0, U"Paint circles...", 0, 1, DO_Polygon_paintCircles);
+	praat_addAction1 (classPolygon, 2, U"Draw connection...", 0, 1, DO_Polygons_drawConnection);
+praat_addAction1 (classPolygon, 0, U"Modify -", 0, 0, 0);
+	praat_addAction1 (classPolygon, 0, U"Randomize", 0, 1, DO_Polygon_randomize);
+	praat_addAction1 (classPolygon, 0, U"Salesperson...", 0, 1, DO_Polygon_salesperson);
+praat_addAction1 (classPolygon, 0, U"Hack -", 0, 0, 0);
+	praat_addAction1 (classPolygon, 0, U"To Matrix", 0, 1, DO_Polygon_to_Matrix);
+
+	praat_addAction1 (classSpectrogram, 0, U"Spectrogram help", 0, 0, DO_Spectrogram_help);
+	praat_addAction1 (classSpectrogram, 1, U"View", 0, 0, DO_Spectrogram_view);
+	praat_addAction1 (classSpectrogram, 1, U"Movie", 0, 0, DO_Spectrogram_movie);
+	praat_addAction1 (classSpectrogram, 0, U"Query -", 0, 0, 0);
 		praat_TimeFrameSampled_query_init (classSpectrogram);
-		praat_addAction1 (classSpectrogram, 1, U"Get power at...", nullptr, 1, DO_Spectrogram_getPowerAt);
-	praat_addAction1 (classSpectrogram, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrogram, 0, U"Paint...", nullptr, 1, DO_Spectrogram_paint);
-	praat_addAction1 (classSpectrogram, 0, U"Analyse -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrogram, 0, U"To Spectrum (slice)...", nullptr, 1, DO_Spectrogram_to_Spectrum);
-	praat_addAction1 (classSpectrogram, 0, U"Synthesize -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrogram, 0, U"To Sound...", nullptr, 1, DO_Spectrogram_to_Sound);
-	praat_addAction1 (classSpectrogram, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classSpectrogram, 1, U"Get power at...", 0, 1, DO_Spectrogram_getPowerAt);
+	praat_addAction1 (classSpectrogram, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classSpectrogram, 0, U"Paint...", 0, 1, DO_Spectrogram_paint);
+	praat_addAction1 (classSpectrogram, 0, U"Analyse -", 0, 0, 0);
+		praat_addAction1 (classSpectrogram, 0, U"To Spectrum (slice)...", 0, 1, DO_Spectrogram_to_Spectrum);
+	praat_addAction1 (classSpectrogram, 0, U"Synthesize -", 0, 0, 0);
+		praat_addAction1 (classSpectrogram, 0, U"To Sound...", 0, 1, DO_Spectrogram_to_Sound);
+	praat_addAction1 (classSpectrogram, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classSpectrogram);
-		praat_addAction1 (classSpectrogram, 0, U"Formula...", nullptr, 1, DO_Spectrogram_formula);
-	praat_addAction1 (classSpectrogram, 0, U"Hack -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrogram, 0, U"To Matrix", nullptr, 1, DO_Spectrogram_to_Matrix);
-
-	praat_addAction1 (classSpectrum, 0, U"Spectrum help", nullptr, 0, DO_Spectrum_help);
-	praat_addAction1 (classSpectrum, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Spectrum_edit);
-	praat_addAction1 (classSpectrum, 1, U"Edit", nullptr, praat_HIDDEN, DO_Spectrum_edit);
-	praat_addAction1 (classSpectrum, 0, U"Sound -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 0, U"To Sound", nullptr, 1, DO_Spectrum_to_Sound);
-						praat_addAction1 (classSpectrum, 0, U"To Sound (fft)", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Spectrum_to_Sound);
-	praat_addAction1 (classSpectrum, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 0, U"Draw...", nullptr, 1, DO_Spectrum_draw);
-		praat_addAction1 (classSpectrum, 0, U"Draw (log freq)...", nullptr, 1, DO_Spectrum_drawLogFreq);
-	praat_addAction1 (classSpectrum, 1, U"Tabulate -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 1, U"List...", nullptr, 1, DO_Spectrum_list);
-	praat_addAction1 (classSpectrum, 1, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 1, U"Frequency domain", nullptr, 1, nullptr);
-			praat_addAction1 (classSpectrum, 1, U"Get lowest frequency", nullptr, 2, DO_Spectrum_getLowestFrequency);
-			praat_addAction1 (classSpectrum, 1, U"Get highest frequency", nullptr, 2, DO_Spectrum_getHighestFrequency);
-		praat_addAction1 (classSpectrum, 1, U"Frequency sampling", nullptr, 1, nullptr);
-			praat_addAction1 (classSpectrum, 1, U"Get number of bins", nullptr, 2, DO_Spectrum_getNumberOfBins);
-			praat_addAction1 (classSpectrum, 1, U"Get bin width", nullptr, 2, DO_Spectrum_getBinWidth);
-			praat_addAction1 (classSpectrum, 1, U"Get frequency from bin number...", nullptr, 2, DO_Spectrum_getFrequencyFromBin);
-						praat_addAction1 (classSpectrum, 1, U"Get frequency from bin...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Spectrum_getFrequencyFromBin);
-			praat_addAction1 (classSpectrum, 1, U"Get bin number from frequency...", nullptr, 2, DO_Spectrum_getBinFromFrequency);
-						praat_addAction1 (classSpectrum, 1, U"Get bin from frequency...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Spectrum_getBinFromFrequency);
-		praat_addAction1 (classSpectrum, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classSpectrum, 1, U"Get real value in bin...", nullptr, 1, DO_Spectrum_getRealValueInBin);
-		praat_addAction1 (classSpectrum, 1, U"Get imaginary value in bin...", nullptr, 1, DO_Spectrum_getImaginaryValueInBin);
-		praat_addAction1 (classSpectrum, 1, U"-- get energy --", nullptr, 1, nullptr);
-		praat_addAction1 (classSpectrum, 1, U"Get band energy...", nullptr, 1, DO_Spectrum_getBandEnergy);
-		praat_addAction1 (classSpectrum, 1, U"Get band density...", nullptr, 1, DO_Spectrum_getBandDensity);
-		praat_addAction1 (classSpectrum, 1, U"Get band energy difference...", nullptr, 1, DO_Spectrum_getBandEnergyDifference);
-		praat_addAction1 (classSpectrum, 1, U"Get band density difference...", nullptr, 1, DO_Spectrum_getBandDensityDifference);
-		praat_addAction1 (classSpectrum, 1, U"-- get moments --", nullptr, 1, nullptr);
-		praat_addAction1 (classSpectrum, 1, U"Get centre of gravity...", nullptr, 1, DO_Spectrum_getCentreOfGravity);
-		praat_addAction1 (classSpectrum, 1, U"Get standard deviation...", nullptr, 1, DO_Spectrum_getStandardDeviation);
-		praat_addAction1 (classSpectrum, 1, U"Get skewness...", nullptr, 1, DO_Spectrum_getSkewness);
-		praat_addAction1 (classSpectrum, 1, U"Get kurtosis...", nullptr, 1, DO_Spectrum_getKurtosis);
-		praat_addAction1 (classSpectrum, 1, U"Get central moment...", nullptr, 1, DO_Spectrum_getCentralMoment);
-	praat_addAction1 (classSpectrum, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 0, U"Formula...", nullptr, 1, DO_Spectrum_formula);
-		praat_addAction1 (classSpectrum, 0, U"Filter (pass Hann band)...", nullptr, 1, DO_Spectrum_passHannBand);
-		praat_addAction1 (classSpectrum, 0, U"Filter (stop Hann band)...", nullptr, 1, DO_Spectrum_stopHannBand);
-	praat_addAction1 (classSpectrum, 0, U"Analyse -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 0, U"To Excitation...", nullptr, 1, DO_Spectrum_to_Excitation);
-		praat_addAction1 (classSpectrum, 0, U"To SpectrumTier (peaks)", nullptr, 1, DO_Spectrum_to_SpectrumTier_peaks);
-		praat_addAction1 (classSpectrum, 0, U"To Formant (peaks)...", nullptr, 1, DO_Spectrum_to_Formant_peaks);
-		praat_addAction1 (classSpectrum, 0, U"To Ltas...", nullptr, 1, DO_Spectrum_to_Ltas);
-		praat_addAction1 (classSpectrum, 0, U"To Ltas (1-to-1)", nullptr, 1, DO_Spectrum_to_Ltas_1to1);
-		praat_addAction1 (classSpectrum, 0, U"To Spectrogram", nullptr, 1, DO_Spectrum_to_Spectrogram);
-	praat_addAction1 (classSpectrum, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrum, 0, U"Cepstral smoothing...", nullptr, 1, DO_Spectrum_cepstralSmoothing);
-		praat_addAction1 (classSpectrum, 0, U"LPC smoothing...", nullptr, 1, DO_Spectrum_lpcSmoothing);
-		praat_addAction1 (classSpectrum, 0, U"Hack", nullptr, 1, nullptr);
-			praat_addAction1 (classSpectrum, 0, U"To Matrix", nullptr, 2, DO_Spectrum_to_Matrix);
-
-	praat_addAction1 (classSpectrumTier, 0, U"Draw...", nullptr, 0, DO_SpectrumTier_draw);
-	praat_addAction1 (classSpectrumTier, 0, U"Tabulate -", nullptr, 0, nullptr);
-		praat_addAction1 (classSpectrumTier, 1, U"List...", nullptr, 1, DO_SpectrumTier_list);
-		praat_addAction1 (classSpectrumTier, 0, U"Down to Table", nullptr, 1, DO_SpectrumTier_downto_Table);
-	praat_addAction1 (classSpectrumTier, 0, U"Remove points below...", nullptr, 0, DO_SpectrumTier_removePointsBelow);
-
-	praat_addAction1 (classStrings, 0, U"Strings help", nullptr, 0, DO_Strings_help);
-	praat_addAction1 (classStrings, 1, U"Save as raw text file...", nullptr, 0, DO_Strings_writeToRawTextFile);
-	praat_addAction1 (classStrings, 1, U"Write to raw text file...", nullptr, praat_HIDDEN, DO_Strings_writeToRawTextFile);
-	praat_addAction1 (classStrings, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Strings_edit);
-	praat_addAction1 (classStrings, 1, U"Edit", nullptr, praat_HIDDEN, DO_Strings_edit);
-	praat_addAction1 (classStrings, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classStrings, 2, U"Equal?", nullptr, 1, DO_Strings_equal);
-		praat_addAction1 (classStrings, 1, U"Get number of strings", nullptr, 1, DO_Strings_getNumberOfStrings);
-		praat_addAction1 (classStrings, 1, U"Get string...", nullptr, 1, DO_Strings_getString);
-	praat_addAction1 (classStrings, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classStrings, 0, U"Set string...", nullptr, 1, DO_Strings_setString);
-		praat_addAction1 (classStrings, 0, U"Insert string...", nullptr, 1, DO_Strings_insertString);
-		praat_addAction1 (classStrings, 0, U"Remove string...", nullptr, 1, DO_Strings_removeString);
-		praat_addAction1 (classStrings, 0, U"-- modify order --", nullptr, 1, nullptr);
-		praat_addAction1 (classStrings, 0, U"Randomize", nullptr, 1, DO_Strings_randomize);
-		praat_addAction1 (classStrings, 0, U"Sort", nullptr, 1, DO_Strings_sort);
-		praat_addAction1 (classStrings, 0, U"-- convert --", nullptr, 1, nullptr);
-		praat_addAction1 (classStrings, 0, U"Replace all...", nullptr, 1, DO_Strings_replaceAll);
-		praat_addAction1 (classStrings, 0, U"Genericize", nullptr, 1, DO_Strings_genericize);
-		praat_addAction1 (classStrings, 0, U"Nativize", nullptr, 1, DO_Strings_nativize);
-	praat_addAction1 (classStrings, 0, U"Analyze", nullptr, 0, nullptr);
-		praat_addAction1 (classStrings, 0, U"To Distributions", nullptr, 0, DO_Strings_to_Distributions);
-	praat_addAction1 (classStrings, 0, U"Synthesize", nullptr, 0, nullptr);
-		praat_addAction1 (classStrings, 0, U"To WordList", nullptr, 0, DO_Strings_to_WordList);
-
-	praat_addAction1 (classTable, 0, U"Down to Matrix", nullptr, 0, DO_Table_to_Matrix);
-
-	praat_addAction1 (classTransition, 0, U"Transition help", nullptr, 0, DO_Transition_help);
-praat_addAction1 (classTransition, 0, U"Draw", nullptr, 0, nullptr);
-	praat_addAction1 (classTransition, 0, U"Draw as numbers...", nullptr, 0, DO_Transition_drawAsNumbers);
-praat_addAction1 (classTransition, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classTransition, 0, U"Eigen", nullptr, 0, DO_Transition_eigen);
-	praat_addAction1 (classTransition, 0, U"Conflate", nullptr, 0, DO_Transition_conflate);
-praat_addAction1 (classTransition, 0, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction1 (classTransition, 0, U"Power...", nullptr, 0, DO_Transition_power);
-praat_addAction1 (classTransition, 0, U"Cast", nullptr, 0, nullptr);
-	praat_addAction1 (classTransition, 0, U"To Matrix", nullptr, 0, DO_Transition_to_Matrix);
-
-	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_AmplitudeTier_edit);
-	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_AmplitudeTier_edit);   // hidden 2011
-	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"Multiply", nullptr, 0, DO_Sound_AmplitudeTier_multiply);
-	praat_addAction2 (classDistributions, 1, classTransition, 1, U"Map", nullptr, 0, DO_Distributions_Transition_map);
-	praat_addAction2 (classDistributions, 1, classTransition, 1, U"To Transition...", nullptr, 0, DO_Distributions_to_Transition_adj);
-	praat_addAction2 (classDistributions, 2, classTransition, 1, U"To Transition (noise)...", nullptr, 0, DO_Distributions_to_Transition_noise_adj);
-	praat_addAction2 (classDurationTier, 1, classSound, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_DurationTier_edit);
-	praat_addAction2 (classDurationTier, 1, classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_DurationTier_edit);
-	praat_addAction2 (classFormant, 1, classPointProcess, 1, U"To FormantTier", nullptr, 0, DO_Formant_PointProcess_to_FormantTier);
-	praat_addAction2 (classFormant, 1, classSound, 1, U"Filter", nullptr, 0, DO_Sound_Formant_filter);
-	praat_addAction2 (classFormant, 1, classSound, 1, U"Filter (no scale)", nullptr, 0, DO_Sound_Formant_filter_noscale);
-	praat_addAction2 (classFormantGrid, 1, classSound, 1, U"Filter", nullptr, 0, DO_Sound_FormantGrid_filter);
-	praat_addAction2 (classFormantGrid, 1, classSound, 1, U"Filter (no scale)", nullptr, 0, DO_Sound_FormantGrid_filter_noscale);
-	praat_addAction2 (classFormantTier, 1, classSound, 1, U"Filter", nullptr, 0, DO_Sound_FormantTier_filter);
-	praat_addAction2 (classFormantTier, 1, classSound, 1, U"Filter (no scale)", nullptr, 0, DO_Sound_FormantTier_filter_noscale);
-	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Draw", nullptr, 0, nullptr);
-	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Draw (phonetogram)...", nullptr, 0, DO_Pitch_Intensity_draw);
-	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Speckle (phonetogram)...", nullptr, praat_HIDDEN, DO_Pitch_Intensity_speckle);   /* grandfathered 2005 */
-	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Get mean", nullptr, 1, DO_Pitch_Intensity_getMean);
-	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Get mean absolute slope", nullptr, 1, DO_Pitch_Intensity_getMeanAbsoluteSlope);
-	praat_addAction2 (classIntensity, 1, classPointProcess, 1, U"To IntensityTier", nullptr, 0, DO_Intensity_PointProcess_to_IntensityTier);
-	praat_addAction2 (classIntensityTier, 1, classPointProcess, 1, U"To IntensityTier", nullptr, 0, DO_IntensityTier_PointProcess_to_IntensityTier);
-	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_IntensityTier_edit);
-	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_IntensityTier_edit);
-	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Multiply", nullptr, praat_HIDDEN, DO_Sound_IntensityTier_multiply_old);
-	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Multiply...", nullptr, 0, DO_Sound_IntensityTier_multiply);
-	praat_addAction2 (classManipulation, 1, classSound, 1, U"Replace original sound", nullptr, 0, DO_Manipulation_replaceOriginalSound);
-	praat_addAction2 (classManipulation, 1, classPointProcess, 1, U"Replace pulses", nullptr, 0, DO_Manipulation_replacePulses);
-	praat_addAction2 (classManipulation, 1, classPitchTier, 1, U"Replace pitch tier", nullptr, 0, DO_Manipulation_replacePitchTier);
-	praat_addAction2 (classManipulation, 1, classDurationTier, 1, U"Replace duration tier", nullptr, 0, DO_Manipulation_replaceDurationTier);
-	praat_addAction2 (classManipulation, 1, classTextTier, 1, U"To Manipulation", nullptr, 0, DO_Manipulation_TextTier_to_Manipulation);
-	praat_addAction2 (classMatrix, 1, classSound, 1, U"To ParamCurve", nullptr, 0, DO_Matrix_to_ParamCurve);
-	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace red", nullptr, 0, DO_Photo_Matrix_replaceRed);
-	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace green", nullptr, 0, DO_Photo_Matrix_replaceGreen);
-	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace blue", nullptr, 0, DO_Photo_Matrix_replaceBlue);
-	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace transparency", nullptr, 0, DO_Photo_Matrix_replaceTransparency);
-	praat_addAction2 (classPitch, 1, classPitchTier, 1, U"Draw...", nullptr, 0, DO_PitchTier_Pitch_draw);
-	praat_addAction2 (classPitch, 1, classPitchTier, 1, U"To Pitch", nullptr, 0, DO_Pitch_PitchTier_to_Pitch);
-	praat_addAction2 (classPitch, 1, classPointProcess, 1, U"To PitchTier", nullptr, 0, DO_Pitch_PointProcess_to_PitchTier);
-	praat_addAction3 (classPitch, 1, classPointProcess, 1, classSound, 1, U"Voice report...", nullptr, 0, DO_Sound_Pitch_PointProcess_voiceReport);
-	praat_addAction2 (classPitch, 1, classSound, 1, U"To PointProcess (cc)", nullptr, 0, DO_Sound_Pitch_to_PointProcess_cc);
-	praat_addAction2 (classPitch, 1, classSound, 1, U"To PointProcess (peaks)...", nullptr, 0, DO_Sound_Pitch_to_PointProcess_peaks);
-	praat_addAction2 (classPitch, 1, classSound, 1, U"To Manipulation", nullptr, 0, DO_Sound_Pitch_to_Manipulation);
-	praat_addAction2 (classPitchTier, 1, classPointProcess, 1, U"To PitchTier", nullptr, 0, DO_PitchTier_PointProcess_to_PitchTier);
-	praat_addAction2 (classPitchTier, 1, classSound, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_PitchTier_edit);
-	praat_addAction2 (classPitchTier, 1, classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_PitchTier_edit);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_PointProcess_edit);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_PointProcess_edit);
-praat_addAction2 (classPointProcess, 1, classSound, 1, U"Query", nullptr, 0, nullptr);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (local)...", nullptr, 0, DO_Point_Sound_getShimmer_local);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (local_dB)...", nullptr, 0, DO_Point_Sound_getShimmer_local_dB);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq3)...", nullptr, 0, DO_Point_Sound_getShimmer_apq3);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq5)...", nullptr, 0, DO_Point_Sound_getShimmer_apq5);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq11)...", nullptr, 0, DO_Point_Sound_getShimmer_apq11);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (dda)...", nullptr, 0, DO_Point_Sound_getShimmer_dda);
-praat_addAction2 (classPointProcess, 1, classSound, 1, U"Modify", nullptr, 0, nullptr);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Transplant time domain", nullptr, 0, DO_Point_Sound_transplantDomain);
-praat_addAction2 (classPointProcess, 1, classSound, 1, U"Analyse", nullptr, 0, nullptr);
-	/*praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Manipulation", nullptr, 0, DO_Sound_PointProcess_to_Manipulation);*/
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To AmplitudeTier (point)", nullptr, 0, DO_PointProcess_Sound_to_AmplitudeTier_point);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To AmplitudeTier (period)...", nullptr, 0, DO_PointProcess_Sound_to_AmplitudeTier_period);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Ltas...", nullptr, 0, DO_PointProcess_Sound_to_Ltas);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Ltas (only harmonics)...", nullptr, 0, DO_PointProcess_Sound_to_Ltas_harmonics);
-praat_addAction2 (classPointProcess, 1, classSound, 1, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Sound ensemble...", nullptr, 0, DO_Sound_PointProcess_to_SoundEnsemble_correlate);
-
-	praat_addAction4 (classDurationTier, 1, classPitchTier, 1, classPointProcess, 1, classSound, 1, U"To Sound...", nullptr, 0, DO_Sound_Point_Pitch_Duration_to_Sound);
+		praat_addAction1 (classSpectrogram, 0, U"Formula...", 0, 1, DO_Spectrogram_formula);
+	praat_addAction1 (classSpectrogram, 0, U"Hack -", 0, 0, 0);
+		praat_addAction1 (classSpectrogram, 0, U"To Matrix", 0, 1, DO_Spectrogram_to_Matrix);
+
+	praat_addAction1 (classSpectrum, 0, U"Spectrum help", 0, 0, DO_Spectrum_help);
+	praat_addAction1 (classSpectrum, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Spectrum_edit);
+	praat_addAction1 (classSpectrum, 1, U"Edit", 0, praat_HIDDEN, DO_Spectrum_edit);
+	praat_addAction1 (classSpectrum, 0, U"Sound -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 0, U"To Sound", 0, 1, DO_Spectrum_to_Sound);
+						praat_addAction1 (classSpectrum, 0, U"To Sound (fft)", 0, praat_HIDDEN + praat_DEPTH_1, DO_Spectrum_to_Sound);
+	praat_addAction1 (classSpectrum, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 0, U"Draw...", 0, 1, DO_Spectrum_draw);
+		praat_addAction1 (classSpectrum, 0, U"Draw (log freq)...", 0, 1, DO_Spectrum_drawLogFreq);
+	praat_addAction1 (classSpectrum, 1, U"Tabulate -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 1, U"List...", 0, 1, DO_Spectrum_list);
+	praat_addAction1 (classSpectrum, 1, U"Query -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 1, U"Frequency domain", 0, 1, 0);
+			praat_addAction1 (classSpectrum, 1, U"Get lowest frequency", 0, 2, DO_Spectrum_getLowestFrequency);
+			praat_addAction1 (classSpectrum, 1, U"Get highest frequency", 0, 2, DO_Spectrum_getHighestFrequency);
+		praat_addAction1 (classSpectrum, 1, U"Frequency sampling", 0, 1, 0);
+			praat_addAction1 (classSpectrum, 1, U"Get number of bins", 0, 2, DO_Spectrum_getNumberOfBins);
+			praat_addAction1 (classSpectrum, 1, U"Get bin width", 0, 2, DO_Spectrum_getBinWidth);
+			praat_addAction1 (classSpectrum, 1, U"Get frequency from bin number...", 0, 2, DO_Spectrum_getFrequencyFromBin);
+						praat_addAction1 (classSpectrum, 1, U"Get frequency from bin...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Spectrum_getFrequencyFromBin);
+			praat_addAction1 (classSpectrum, 1, U"Get bin number from frequency...", 0, 2, DO_Spectrum_getBinFromFrequency);
+						praat_addAction1 (classSpectrum, 1, U"Get bin from frequency...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Spectrum_getBinFromFrequency);
+		praat_addAction1 (classSpectrum, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classSpectrum, 1, U"Get real value in bin...", 0, 1, DO_Spectrum_getRealValueInBin);
+		praat_addAction1 (classSpectrum, 1, U"Get imaginary value in bin...", 0, 1, DO_Spectrum_getImaginaryValueInBin);
+		praat_addAction1 (classSpectrum, 1, U"-- get energy --", 0, 1, 0);
+		praat_addAction1 (classSpectrum, 1, U"Get band energy...", 0, 1, DO_Spectrum_getBandEnergy);
+		praat_addAction1 (classSpectrum, 1, U"Get band density...", 0, 1, DO_Spectrum_getBandDensity);
+		praat_addAction1 (classSpectrum, 1, U"Get band energy difference...", 0, 1, DO_Spectrum_getBandEnergyDifference);
+		praat_addAction1 (classSpectrum, 1, U"Get band density difference...", 0, 1, DO_Spectrum_getBandDensityDifference);
+		praat_addAction1 (classSpectrum, 1, U"-- get moments --", 0, 1, 0);
+		praat_addAction1 (classSpectrum, 1, U"Get centre of gravity...", 0, 1, DO_Spectrum_getCentreOfGravity);
+		praat_addAction1 (classSpectrum, 1, U"Get standard deviation...", 0, 1, DO_Spectrum_getStandardDeviation);
+		praat_addAction1 (classSpectrum, 1, U"Get skewness...", 0, 1, DO_Spectrum_getSkewness);
+		praat_addAction1 (classSpectrum, 1, U"Get kurtosis...", 0, 1, DO_Spectrum_getKurtosis);
+		praat_addAction1 (classSpectrum, 1, U"Get central moment...", 0, 1, DO_Spectrum_getCentralMoment);
+	praat_addAction1 (classSpectrum, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 0, U"Formula...", 0, 1, DO_Spectrum_formula);
+		praat_addAction1 (classSpectrum, 0, U"Filter (pass Hann band)...", 0, 1, DO_Spectrum_passHannBand);
+		praat_addAction1 (classSpectrum, 0, U"Filter (stop Hann band)...", 0, 1, DO_Spectrum_stopHannBand);
+	praat_addAction1 (classSpectrum, 0, U"Analyse -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 0, U"To Excitation...", 0, 1, DO_Spectrum_to_Excitation);
+		praat_addAction1 (classSpectrum, 0, U"To SpectrumTier (peaks)", 0, 1, DO_Spectrum_to_SpectrumTier_peaks);
+		praat_addAction1 (classSpectrum, 0, U"To Formant (peaks)...", 0, 1, DO_Spectrum_to_Formant_peaks);
+		praat_addAction1 (classSpectrum, 0, U"To Ltas...", 0, 1, DO_Spectrum_to_Ltas);
+		praat_addAction1 (classSpectrum, 0, U"To Ltas (1-to-1)", 0, 1, DO_Spectrum_to_Ltas_1to1);
+		praat_addAction1 (classSpectrum, 0, U"To Spectrogram", 0, 1, DO_Spectrum_to_Spectrogram);
+	praat_addAction1 (classSpectrum, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classSpectrum, 0, U"Cepstral smoothing...", 0, 1, DO_Spectrum_cepstralSmoothing);
+		praat_addAction1 (classSpectrum, 0, U"LPC smoothing...", 0, 1, DO_Spectrum_lpcSmoothing);
+		praat_addAction1 (classSpectrum, 0, U"Hack", 0, 1, 0);
+			praat_addAction1 (classSpectrum, 0, U"To Matrix", 0, 2, DO_Spectrum_to_Matrix);
+
+	praat_addAction1 (classSpectrumTier, 0, U"Draw...", 0, 0, DO_SpectrumTier_draw);
+	praat_addAction1 (classSpectrumTier, 0, U"Tabulate -", 0, 0, 0);
+		praat_addAction1 (classSpectrumTier, 1, U"List...", 0, 1, DO_SpectrumTier_list);
+		praat_addAction1 (classSpectrumTier, 0, U"Down to Table", 0, 1, DO_SpectrumTier_downto_Table);
+	praat_addAction1 (classSpectrumTier, 0, U"Remove points below...", 0, 0, DO_SpectrumTier_removePointsBelow);
+
+	praat_addAction1 (classStrings, 0, U"Strings help", 0, 0, DO_Strings_help);
+	praat_addAction1 (classStrings, 1, U"Save as raw text file...", 0, 0, DO_Strings_writeToRawTextFile);
+	praat_addAction1 (classStrings, 1, U"Write to raw text file...", 0, praat_HIDDEN, DO_Strings_writeToRawTextFile);
+	praat_addAction1 (classStrings, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Strings_edit);
+	praat_addAction1 (classStrings, 1, U"Edit", 0, praat_HIDDEN, DO_Strings_edit);
+	praat_addAction1 (classStrings, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classStrings, 2, U"Equal?", 0, 1, DO_Strings_equal);
+		praat_addAction1 (classStrings, 1, U"Get number of strings", 0, 1, DO_Strings_getNumberOfStrings);
+		praat_addAction1 (classStrings, 1, U"Get string...", 0, 1, DO_Strings_getString);
+	praat_addAction1 (classStrings, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classStrings, 0, U"Set string...", 0, 1, DO_Strings_setString);
+		praat_addAction1 (classStrings, 0, U"Insert string...", 0, 1, DO_Strings_insertString);
+		praat_addAction1 (classStrings, 0, U"Remove string...", 0, 1, DO_Strings_removeString);
+		praat_addAction1 (classStrings, 0, U"-- modify order --", 0, 1, 0);
+		praat_addAction1 (classStrings, 0, U"Randomize", 0, 1, DO_Strings_randomize);
+		praat_addAction1 (classStrings, 0, U"Sort", 0, 1, DO_Strings_sort);
+		praat_addAction1 (classStrings, 0, U"-- convert --", 0, 1, 0);
+		praat_addAction1 (classStrings, 0, U"Replace all...", 0, 1, DO_Strings_replaceAll);
+		praat_addAction1 (classStrings, 0, U"Genericize", 0, 1, DO_Strings_genericize);
+		praat_addAction1 (classStrings, 0, U"Nativize", 0, 1, DO_Strings_nativize);
+	praat_addAction1 (classStrings, 0, U"Analyze", 0, 0, 0);
+		praat_addAction1 (classStrings, 0, U"To Distributions", 0, 0, DO_Strings_to_Distributions);
+	praat_addAction1 (classStrings, 0, U"Synthesize", 0, 0, 0);
+		praat_addAction1 (classStrings, 0, U"To WordList", 0, 0, DO_Strings_to_WordList);
+
+	praat_addAction1 (classTable, 0, U"Down to Matrix", 0, 0, DO_Table_to_Matrix);
+
+	praat_addAction1 (classTransition, 0, U"Transition help", 0, 0, DO_Transition_help);
+praat_addAction1 (classTransition, 0, U"Draw", 0, 0, 0);
+	praat_addAction1 (classTransition, 0, U"Draw as numbers...", 0, 0, DO_Transition_drawAsNumbers);
+praat_addAction1 (classTransition, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classTransition, 0, U"Eigen", 0, 0, DO_Transition_eigen);
+	praat_addAction1 (classTransition, 0, U"Conflate", 0, 0, DO_Transition_conflate);
+praat_addAction1 (classTransition, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classTransition, 0, U"Power...", 0, 0, DO_Transition_power);
+praat_addAction1 (classTransition, 0, U"Cast", 0, 0, 0);
+	praat_addAction1 (classTransition, 0, U"To Matrix", 0, 0, DO_Transition_to_Matrix);
+
+	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_AmplitudeTier_edit);
+	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"Edit", 0, praat_HIDDEN, DO_AmplitudeTier_edit);   // hidden 2011
+	praat_addAction2 (classAmplitudeTier, 1, classSound, 1, U"Multiply", 0, 0, DO_Sound_AmplitudeTier_multiply);
+	praat_addAction2 (classDistributions, 1, classTransition, 1, U"Map", 0, 0, DO_Distributions_Transition_map);
+	praat_addAction2 (classDistributions, 1, classTransition, 1, U"To Transition...", 0, 0, DO_Distributions_to_Transition_adj);
+	praat_addAction2 (classDistributions, 2, classTransition, 1, U"To Transition (noise)...", 0, 0, DO_Distributions_to_Transition_noise_adj);
+	praat_addAction2 (classDurationTier, 1, classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_DurationTier_edit);
+	praat_addAction2 (classDurationTier, 1, classSound, 1, U"Edit", 0, praat_HIDDEN, DO_DurationTier_edit);
+	praat_addAction2 (classFormant, 1, classPointProcess, 1, U"To FormantTier", 0, 0, DO_Formant_PointProcess_to_FormantTier);
+	praat_addAction2 (classFormant, 1, classSound, 1, U"Filter", 0, 0, DO_Sound_Formant_filter);
+	praat_addAction2 (classFormant, 1, classSound, 1, U"Filter (no scale)", 0, 0, DO_Sound_Formant_filter_noscale);
+	praat_addAction2 (classFormantGrid, 1, classSound, 1, U"Filter", 0, 0, DO_Sound_FormantGrid_filter);
+	praat_addAction2 (classFormantGrid, 1, classSound, 1, U"Filter (no scale)", 0, 0, DO_Sound_FormantGrid_filter_noscale);
+	praat_addAction2 (classFormantTier, 1, classSound, 1, U"Filter", 0, 0, DO_Sound_FormantTier_filter);
+	praat_addAction2 (classFormantTier, 1, classSound, 1, U"Filter (no scale)", 0, 0, DO_Sound_FormantTier_filter_noscale);
+	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Draw", 0, 0, 0);
+	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Draw (phonetogram)...", 0, 0, DO_Pitch_Intensity_draw);
+	praat_addAction2 (classIntensity, 1, classPitch, 1, U"Speckle (phonetogram)...", 0, praat_HIDDEN, DO_Pitch_Intensity_speckle);   /* grandfathered 2005 */
+	praat_addAction2 (classIntensity, 1, classPointProcess, 1, U"To IntensityTier", 0, 0, DO_Intensity_PointProcess_to_IntensityTier);
+	praat_addAction2 (classIntensityTier, 1, classPointProcess, 1, U"To IntensityTier", 0, 0, DO_IntensityTier_PointProcess_to_IntensityTier);
+	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_IntensityTier_edit);
+	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Edit", 0, praat_HIDDEN, DO_IntensityTier_edit);
+	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Multiply", 0, praat_HIDDEN, DO_Sound_IntensityTier_multiply_old);
+	praat_addAction2 (classIntensityTier, 1, classSound, 1, U"Multiply...", 0, 0, DO_Sound_IntensityTier_multiply);
+	praat_addAction2 (classManipulation, 1, classSound, 1, U"Replace original sound", 0, 0, DO_Manipulation_replaceOriginalSound);
+	praat_addAction2 (classManipulation, 1, classPointProcess, 1, U"Replace pulses", 0, 0, DO_Manipulation_replacePulses);
+	praat_addAction2 (classManipulation, 1, classPitchTier, 1, U"Replace pitch tier", 0, 0, DO_Manipulation_replacePitchTier);
+	praat_addAction2 (classManipulation, 1, classDurationTier, 1, U"Replace duration tier", 0, 0, DO_Manipulation_replaceDurationTier);
+	praat_addAction2 (classManipulation, 1, classTextTier, 1, U"To Manipulation", 0, 0, DO_Manipulation_TextTier_to_Manipulation);
+	praat_addAction2 (classMatrix, 1, classSound, 1, U"To ParamCurve", 0, 0, DO_Matrix_to_ParamCurve);
+	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace red", 0, 0, DO_Photo_Matrix_replaceRed);
+	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace green", 0, 0, DO_Photo_Matrix_replaceGreen);
+	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace blue", 0, 0, DO_Photo_Matrix_replaceBlue);
+	praat_addAction2 (classPhoto, 1, classMatrix, 1, U"Replace transparency", 0, 0, DO_Photo_Matrix_replaceTransparency);
+	praat_addAction2 (classPitch, 1, classPitchTier, 1, U"Draw...", 0, 0, DO_PitchTier_Pitch_draw);
+	praat_addAction2 (classPitch, 1, classPitchTier, 1, U"To Pitch", 0, 0, DO_Pitch_PitchTier_to_Pitch);
+	praat_addAction2 (classPitch, 1, classPointProcess, 1, U"To PitchTier", 0, 0, DO_Pitch_PointProcess_to_PitchTier);
+	praat_addAction3 (classPitch, 1, classPointProcess, 1, classSound, 1, U"Voice report...", 0, 0, DO_Sound_Pitch_PointProcess_voiceReport);
+	praat_addAction2 (classPitch, 1, classSound, 1, U"To PointProcess (cc)", 0, 0, DO_Sound_Pitch_to_PointProcess_cc);
+	praat_addAction2 (classPitch, 1, classSound, 1, U"To PointProcess (peaks)...", 0, 0, DO_Sound_Pitch_to_PointProcess_peaks);
+	praat_addAction2 (classPitch, 1, classSound, 1, U"To Manipulation", 0, 0, DO_Sound_Pitch_to_Manipulation);
+	praat_addAction2 (classPitchTier, 1, classPointProcess, 1, U"To PitchTier", 0, 0, DO_PitchTier_PointProcess_to_PitchTier);
+	praat_addAction2 (classPitchTier, 1, classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_PitchTier_edit);
+	praat_addAction2 (classPitchTier, 1, classSound, 1, U"Edit", 0, praat_HIDDEN, DO_PitchTier_edit);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_PointProcess_edit);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Edit", 0, praat_HIDDEN, DO_PointProcess_edit);
+praat_addAction2 (classPointProcess, 1, classSound, 1, U"Query", 0, 0, 0);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (local)...", 0, 0, DO_Point_Sound_getShimmer_local);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (local_dB)...", 0, 0, DO_Point_Sound_getShimmer_local_dB);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq3)...", 0, 0, DO_Point_Sound_getShimmer_apq3);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq5)...", 0, 0, DO_Point_Sound_getShimmer_apq5);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (apq11)...", 0, 0, DO_Point_Sound_getShimmer_apq11);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Get shimmer (dda)...", 0, 0, DO_Point_Sound_getShimmer_dda);
+praat_addAction2 (classPointProcess, 1, classSound, 1, U"Modify", 0, 0, 0);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"Transplant time domain", 0, 0, DO_Point_Sound_transplantDomain);
+praat_addAction2 (classPointProcess, 1, classSound, 1, U"Analyse", 0, 0, 0);
+	/*praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Manipulation", 0, 0, DO_Sound_PointProcess_to_Manipulation);*/
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To AmplitudeTier (point)", 0, 0, DO_PointProcess_Sound_to_AmplitudeTier_point);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To AmplitudeTier (period)...", 0, 0, DO_PointProcess_Sound_to_AmplitudeTier_period);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Ltas...", 0, 0, DO_PointProcess_Sound_to_Ltas);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Ltas (only harmonics)...", 0, 0, DO_PointProcess_Sound_to_Ltas_harmonics);
+praat_addAction2 (classPointProcess, 1, classSound, 1, U"Synthesize", 0, 0, 0);
+	praat_addAction2 (classPointProcess, 1, classSound, 1, U"To Sound ensemble...", 0, 0, DO_Sound_PointProcess_to_SoundEnsemble_correlate);
+
+	praat_addAction4 (classDurationTier, 1, classPitchTier, 1, classPointProcess, 1, classSound, 1, U"To Sound...", 0, 0, DO_Sound_Point_Pitch_Duration_to_Sound);
 
 	INCLUDE_MANPAGES (manual_Manual_init)
 	INCLUDE_MANPAGES (manual_Script_init)
@@ -7295,10 +7216,10 @@ praat_addAction2 (classPointProcess, 1, classSound, 1, U"Synthesize", nullptr, 0
 	INCLUDE_MANPAGES (manual_EEG_init)
 
 	INCLUDE_LIBRARY (praat_EEG_init)
-	praat_addMenuCommand (U"Objects", U"New", U"-- new synthesis --", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Objects", U"New", U"-- new synthesis --", 0, 0, 0);
 	INCLUDE_LIBRARY (praat_uvafon_Artsynth_init)
 	INCLUDE_LIBRARY (praat_uvafon_David_init)
-	praat_addMenuCommand (U"Objects", U"New", U"-- new grammars --", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Objects", U"New", U"-- new grammars --", 0, 0, 0);
 	INCLUDE_LIBRARY (praat_uvafon_gram_init)
 	INCLUDE_LIBRARY (praat_uvafon_FFNet_init)
 	INCLUDE_LIBRARY (praat_uvafon_LPC_init)
diff --git a/fon/praat_Sound_init.cpp b/fon/praat_Sound_init.cpp
index 8ce98eb..2a7c50a 100644
--- a/fon/praat_Sound_init.cpp
+++ b/fon/praat_Sound_init.cpp
@@ -1,6 +1,6 @@
 /* praat_Sound_init.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,6 +38,10 @@
 #include "TextGrid_Sound.h"
 #include "mp3.h"
 
+#ifndef LONG_MAX
+	#define LONG_MAX  2147483647
+#endif
+
 #undef iam
 #define iam iam_LOOP
 
@@ -51,16 +55,16 @@ DIRECT2 (LongSound_concatenate) {
 		"The result will be a sound file that contains\nthe concatenation of the selected sounds.");
 END2 }
 
-FORM (LongSound_extractPart, U"LongSound: Extract part", nullptr) {
+FORM (LongSound_extractPart, U"LongSound: Extract part", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"1.0")
-	BOOLEAN (U"Preserve times", true)
+	BOOLEAN (U"Preserve times", 1)
 	OK2
 DO
 	LOOP {
 		iam (LongSound);
 		autoSound thee = LongSound_extractPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_INTEGER (U"Preserve times"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -71,7 +75,7 @@ DO
 	LOOP {
 		iam (LongSound);
 		double index = Sampled_xToIndex (me, GET_REAL (U"Time"));
-		Melder_informationReal (index, nullptr);
+		Melder_informationReal (index, NULL);
 	}
 END2 }
 
@@ -108,12 +112,12 @@ END2 }
 
 DIRECT2 (LongSound_help) { Melder_help (U"LongSound"); END2 }
 
-FORM_READ2 (LongSound_open, U"Open long sound file", nullptr, true) {
+FORM_READ2 (LongSound_open, U"Open long sound file", 0, true) {
 	autoLongSound me = LongSound_open (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-FORM (LongSound_playPart, U"LongSound: Play part", nullptr) {
+FORM (LongSound_playPart, U"LongSound: Play part", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"10.0")
 	OK2
@@ -123,19 +127,19 @@ DO
 	if (n == 1 || MelderAudio_getOutputMaximumAsynchronicity () < kMelder_asynchronicityLevel_ASYNCHRONOUS) {
 		LOOP {
 			iam (LongSound);
-			LongSound_playPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), nullptr, nullptr);
+			LongSound_playPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), NULL, NULL);
 		}
 	} else {
 		MelderAudio_setOutputMaximumAsynchronicity (kMelder_asynchronicityLevel_INTERRUPTABLE);
 		LOOP {
 			iam (LongSound);
-			LongSound_playPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), nullptr, nullptr);
+			LongSound_playPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), NULL, NULL);
 		}
 		MelderAudio_setOutputMaximumAsynchronicity (kMelder_asynchronicityLevel_ASYNCHRONOUS);
 	}
 END2 }
 
-FORM (LongSound_writePartToAudioFile, U"LongSound: Save part as audio file", nullptr) {
+FORM (LongSound_writePartToAudioFile, U"LongSound: Save part as audio file", 0) {
 	LABEL (U"", U"Audio file:")
 	TEXTFIELD (U"Audio file", U"")
 	RADIO (U"Type", 3)
@@ -151,7 +155,7 @@ DO
 		structMelderFile file = { 0 };
 		Melder_relativePathToFile (GET_STRING (U"Audio file"), & file);
 		LongSound_writePartToAudioFile (me, GET_INTEGER (U"Type"),
-			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), & file, 16);
+			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), & file);
 	}
 END2 }
 	
@@ -163,7 +167,7 @@ DO
 	LOOP {
 		iam (LongSound);
 		autoTextGrid thee = TextGrid_create (my xmin, my xmax, GET_STRING (U"Tier names"), GET_STRING (U"Point tiers"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -172,129 +176,104 @@ DIRECT2 (LongSound_view) {
 	LOOP {
 		iam (LongSound);
 		autoSoundEditor editor = SoundEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeToAifcFile, U"Save as AIFC file", nullptr, U"aifc") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFC, 16);
+FORM_WRITE2 (LongSound_writeToAifcFile, U"Save as AIFC file", 0, U"aifc") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFC, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeToAiffFile, U"Save as AIFF file", nullptr, U"aiff") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFF, 16);
+FORM_WRITE2 (LongSound_writeToAiffFile, U"Save as AIFF file", 0, U"aiff") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFF, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeToNextSunFile, U"Save as NeXT/Sun file", nullptr, U"au") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NEXT_SUN, 16);
+FORM_WRITE2 (LongSound_writeToNextSunFile, U"Save as NeXT/Sun file", 0, U"au") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NEXT_SUN, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeToNistFile, U"Save as NIST file", nullptr, U"nist") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NIST, 16);
+FORM_WRITE2 (LongSound_writeToNistFile, U"Save as NIST file", 0, U"nist") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NIST, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeToFlacFile, U"Save as FLAC file", nullptr, U"flac") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_FLAC, 16);
+FORM_WRITE2 (LongSound_writeToFlacFile, U"Save as FLAC file", 0, U"flac") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_FLAC, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeToWavFile, U"Save as WAV file", nullptr, U"wav") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_WAV, 16);
+FORM_WRITE2 (LongSound_writeToWavFile, U"Save as WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_WAV, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToAifcFile, U"Save left channel as AIFC file", nullptr, U"aifc") {
+FORM_WRITE2 (LongSound_writeLeftChannelToAifcFile, U"Save left channel as AIFC file", 0, U"aifc") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_AIFC, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToAiffFile, U"Save left channel as AIFF file", nullptr, U"aiff") {
+FORM_WRITE2 (LongSound_writeLeftChannelToAiffFile, U"Save left channel as AIFF file", 0, U"aiff") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_AIFF, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToNextSunFile, U"Save left channel as NeXT/Sun file", nullptr, U"au") {
+FORM_WRITE2 (LongSound_writeLeftChannelToNextSunFile, U"Save left channel as NeXT/Sun file", 0, U"au") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_NEXT_SUN, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToNistFile, U"Save left channel as NIST file", nullptr, U"nist") {
+FORM_WRITE2 (LongSound_writeLeftChannelToNistFile, U"Save left channel as NIST file", 0, U"nist") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_NIST, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToFlacFile, U"Save left channel as FLAC file", nullptr, U"flac") {
+FORM_WRITE2 (LongSound_writeLeftChannelToFlacFile, U"Save left channel as FLAC file", 0, U"flac") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_FLAC, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeLeftChannelToWavFile, U"Save left channel as WAV file", nullptr, U"wav") {
+FORM_WRITE2 (LongSound_writeLeftChannelToWavFile, U"Save left channel as WAV file", 0, U"wav") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_WAV, 0, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeRightChannelToAifcFile, U"Save right channel as AIFC file", nullptr, U"aifc") {
+FORM_WRITE2 (LongSound_writeRightChannelToAifcFile, U"Save right channel as AIFC file", 0, U"aifc") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_AIFC, 1, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeRightChannelToAiffFile, U"Save right channel as AIFF file", nullptr, U"aiff") {
+FORM_WRITE2 (LongSound_writeRightChannelToAiffFile, U"Save right channel as AIFF file", 0, U"aiff") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_AIFF, 1, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeRightChannelToNextSunFile, U"Save right channel as NeXT/Sun file", nullptr, U"au") {
+FORM_WRITE2 (LongSound_writeRightChannelToNextSunFile, U"Save right channel as NeXT/Sun file", 0, U"au") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_NEXT_SUN, 1, file);
 	}
 END2 }
 
-FORM_WRITE2 (LongSound_writeRightChannelToNistFile, U"Save right channel as NIST file", nullptr, U"nist") {
+FORM_WRITE2 (LongSound_writeRightChannelToNistFile, U"Save right channel as NIST file", 0, U"nist") {
 	LOOP {
 		iam (LongSound);
 		LongSound_writeChannelToAudioFile (me, Melder_NIST, 1, file);
@@ -330,63 +309,39 @@ END2 }
 
 /********** LONGSOUND & SOUND **********/
 
-FORM_WRITE2 (LongSound_Sound_writeToAifcFile, U"Save as AIFC file", nullptr, U"aifc") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFC, 16);
+FORM_WRITE2 (LongSound_Sound_writeToAifcFile, U"Save as AIFC file", 0, U"aifc") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFC, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_Sound_writeToAiffFile, U"Save as AIFF file", nullptr, U"aiff") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFF, 16);
+FORM_WRITE2 (LongSound_Sound_writeToAiffFile, U"Save as AIFF file", 0, U"aiff") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFF, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_Sound_writeToNextSunFile, U"Save as NeXT/Sun file", nullptr, U"au") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NEXT_SUN, 16);
+FORM_WRITE2 (LongSound_Sound_writeToNextSunFile, U"Save as NeXT/Sun file", 0, U"au") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NEXT_SUN, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_Sound_writeToNistFile, U"Save as NIST file", nullptr, U"nist") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NIST, 16);
+FORM_WRITE2 (LongSound_Sound_writeToNistFile, U"Save as NIST file", 0, U"nist") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NIST, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_Sound_writeToFlacFile, U"Save as FLAC file", nullptr, U"flac") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_FLAC, 16);
+FORM_WRITE2 (LongSound_Sound_writeToFlacFile, U"Save as FLAC file", 0, U"flac") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_FLAC, 16);
 END2 }
 
-FORM_WRITE2 (LongSound_Sound_writeToWavFile, U"Save as WAV file", nullptr, U"wav") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_WAV, 16);
+FORM_WRITE2 (LongSound_Sound_writeToWavFile, U"Save as WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_WAV, 16);
 END2 }
 
 /********** SOUND **********/
 
-FORM (Sound_add, U"Sound: Add", nullptr) {
+FORM (Sound_add, U"Sound: Add", 0) {
 	LABEL (U"", U"The following number will be added to the amplitudes of ")
 	LABEL (U"", U"all samples of the sound.")
 	REAL (U"Number", U"0.1")
@@ -409,42 +364,30 @@ DO
 		autoSound thee = Sound_autoCorrelate (me,
 			GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
 			GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-		praat_new (thee.move(), U"ac_", my name);
+		praat_new (thee.transfer(), U"ac_", my name);
 	}
 END2 }
 
 DIRECT2 (Sounds_combineToStereo) {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound result = Sounds_combineToStereo (& list);
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound result = Sounds_combineToStereo (set.peek());
 	long numberOfChannels = result -> ny;   // dereference before transferring
-	praat_new (result.move(), U"combined_", numberOfChannels);
+	praat_new (result.transfer(), U"combined_", numberOfChannels);
 END2 }
 
 DIRECT2 (Sounds_concatenate) {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam_LOOP (Sound);
-		list.addItem_ref (me);
-	}
-	autoSound result = Sounds_concatenate (list, 0.0);
-	praat_new (result.move(), U"chain");
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound result = Sounds_concatenate_e (set.peek(), 0.0);
+	praat_new (result.transfer(), U"chain");
 END2 }
 
 FORM (Sounds_concatenateWithOverlap, U"Sounds: Concatenate with overlap", U"Sounds: Concatenate with overlap...") {
 	POSITIVE (U"Overlap (s)", U"0.01")
 	OK2
 DO
-	OrderedOf<structSound> list;
-	LOOP {
-		iam_LOOP (Sound);
-		list.addItem_ref (me);
-	}
-	autoSound result = Sounds_concatenate (list, GET_REAL (U"Overlap"));
-	praat_new (result.move(), U"chain");
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound result = Sounds_concatenate_e (set.peek(), GET_REAL (U"Overlap"));
+	praat_new (result.transfer(), U"chain");
 END2 }
 
 DIRECT2 (Sounds_concatenateRecoverably) {
@@ -476,21 +419,21 @@ DIRECT2 (Sounds_concatenateRecoverably) {
 		}
 		iinterval ++;
 		if (iinterval > 1) {
-			TextGrid_insertBoundary (him.get(), 1, tmin);
+			TextGrid_insertBoundary (him.peek(), 1, tmin);
 		}
-		TextGrid_setIntervalText (him.get(), 1, iinterval, my name);
+		TextGrid_setIntervalText (him.peek(), 1, iinterval, my name);
 		nx += my nx;
 		tmin = tmax;
 	}
-	praat_new (thee.move(), U"chain");
-	praat_new (him.move(), U"chain");
+	praat_new (thee.transfer(), U"chain");
+	praat_new (him.transfer(), U"chain");
 END2 }
 
 DIRECT2 (Sound_convertToMono) {
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_convertToMono (me);
-		praat_new (thee.move(), my name, U"_mono");
+		praat_new (thee.transfer(), my name, U"_mono");
 	}
 END2 }
 
@@ -498,19 +441,19 @@ DIRECT2 (Sound_convertToStereo) {
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_convertToStereo (me);
-		praat_new (thee.move(), my name, U"_stereo");
+		praat_new (thee.transfer(), my name, U"_stereo");
 	}
 END2 }
 
 DIRECT2 (Sounds_convolve_old) {
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		( s1 ? s2 : s1 ) = me;
 	}
-	Melder_assert (s1 && s2);
+	Melder_assert (s1 != NULL && s2 != NULL);
 	autoSound thee = Sounds_convolve (s1, s2, kSounds_convolve_scaling_SUM, kSounds_convolve_signalOutsideTimeDomain_ZERO);
-	praat_new (thee.move(), s1 -> name, U"_", s2 -> name);
+	praat_new (thee.transfer(), s1 -> name, U"_", s2 -> name);
 END2 }
 
 FORM (Sounds_convolve, U"Sounds: Convolve", U"Sounds: Convolve...") {
@@ -518,19 +461,19 @@ FORM (Sounds_convolve, U"Sounds: Convolve", U"Sounds: Convolve...") {
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK2
 DO
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		( s1 ? s2 : s1 ) = me;
 	}
-	Melder_assert (s1 && s2);
+	Melder_assert (s1 != NULL && s2 != NULL);
 	autoSound thee = Sounds_convolve (s1, s2,
 		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
 		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (thee.move(), s1 -> name, U"_", s2 -> name);
+	praat_new (thee.transfer(), s1 -> name, U"_", s2 -> name);
 END2 }
 
-static void common_Sound_create (UiForm dia, Interpreter interpreter, bool allowMultipleChannels) {
+static void common_Sound_create (void *dia, Interpreter interpreter, bool allowMultipleChannels) {
 	long numberOfChannels = allowMultipleChannels ? GET_INTEGER (U"Number of channels") : 1;
 	double startTime = GET_REAL (U"Start time");
 	double endTime = GET_REAL (U"End time");
@@ -570,8 +513,8 @@ static void common_Sound_create (UiForm dia, Interpreter interpreter, bool allow
 	int64 numberOfSamples = (int64) numberOfSamples_real;
 	autoSound sound;
 	try {
-		sound = Sound_create (numberOfChannels, startTime, endTime, numberOfSamples, 1.0 / samplingFrequency,
-			startTime + 0.5 * (endTime - startTime - (numberOfSamples - 1) / samplingFrequency));
+		sound.reset (Sound_create (numberOfChannels, startTime, endTime, numberOfSamples, 1.0 / samplingFrequency,
+			startTime + 0.5 * (endTime - startTime - (numberOfSamples - 1) / samplingFrequency)));
 	} catch (MelderError) {
 		if (str32str (Melder_getError (), U"memory")) {
 			Melder_clearError ();
@@ -584,8 +527,8 @@ static void common_Sound_create (UiForm dia, Interpreter interpreter, bool allow
 			throw;   // unexpected error; wait for generic message
 		}
 	}
-	Matrix_formula (sound.get(), GET_STRING (U"formula"), interpreter, nullptr);
-	praat_new (sound.move(), GET_STRING (U"Name"));
+	Matrix_formula ((Matrix) sound.peek(), GET_STRING (U"formula"), interpreter, NULL);
+	praat_new (sound.transfer(), GET_STRING (U"Name"));
 	//praat_updateSelection ();
 }
 
@@ -619,7 +562,7 @@ FORM (Sound_createAsPureTone, U"Create Sound as pure tone", U"Create Sound as pu
 	CHANNEL (U"Number of channels", U"1 (= mono)")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"0.4")
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	POSITIVE (U"Tone frequency (Hz)", U"440.0")
 	POSITIVE (U"Amplitude (Pa)", U"0.2")
 	POSITIVE (U"Fade-in duration (s)", U"0.01")
@@ -629,42 +572,42 @@ DO
 	autoSound me = Sound_createAsPureTone (GET_INTEGER (U"Number of channels"), GET_REAL (U"Start time"), GET_REAL (U"End time"),
 		GET_REAL (U"Sampling frequency"), GET_REAL (U"Tone frequency"), GET_REAL (U"Amplitude"),
 		GET_REAL (U"Fade-in duration"), GET_REAL (U"Fade-out duration"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (Sound_createFromToneComplex, U"Create Sound from tone complex", U"Create Sound from tone complex...") {
 	WORD (U"Name", U"toneComplex")
 	REAL (U"Start time (s)", U"0.0")
 	REAL (U"End time (s)", U"1.0")
-	POSITIVE (U"Sampling frequency (Hz)", U"44100.0")
+	POSITIVE (U"Sampling frequency (Hz)", U"44100")
 	RADIO (U"Phase", 2)
 		RADIOBUTTON (U"Sine")
 		RADIOBUTTON (U"Cosine")
-	POSITIVE (U"Frequency step (Hz)", U"100.0")
-	REAL (U"First frequency (Hz)", U"0.0 (= frequency step)")
-	REAL (U"Ceiling (Hz)", U"0.0 (= Nyquist)")
+	POSITIVE (U"Frequency step (Hz)", U"100")
+	REAL (U"First frequency (Hz)", U"0 (= frequency step)")
+	REAL (U"Ceiling (Hz)", U"0 (= Nyquist)")
 	INTEGER (U"Number of components", U"0 (= maximum)")
 	OK2
 DO
 	autoSound me = Sound_createFromToneComplex (GET_REAL (U"Start time"), GET_REAL (U"End time"),
 		GET_REAL (U"Sampling frequency"), GET_INTEGER (U"Phase") - 1, GET_REAL (U"Frequency step"),
 		GET_REAL (U"First frequency"), GET_REAL (U"Ceiling"), GET_INTEGER (U"Number of components"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (old_Sounds_crossCorrelate, U"Cross-correlate (short)", nullptr) {
+FORM (old_Sounds_crossCorrelate, U"Cross-correlate (short)", 0) {
 	REAL (U"From lag (s)", U"-0.1")
 	REAL (U"To lag (s)", U"0.1")
 	BOOLEAN (U"Normalize", 1)
 	OK2
 DO
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		( s1 ? s2 : s1 ) = me;
 	}
 	autoSound thee = Sounds_crossCorrelate_short (s1, s2, GET_REAL (U"From lag"), GET_REAL (U"To lag"), GET_INTEGER (U"Normalize"));
-	praat_new (thee.move(), U"cc_", s1 -> name, U"_", s2 -> name);
+	praat_new (thee.transfer(), U"cc_", s1 -> name, U"_", s2 -> name);
 END2 }
 
 FORM (Sounds_crossCorrelate, U"Sounds: Cross-correlate", U"Sounds: Cross-correlate...") {
@@ -672,16 +615,16 @@ FORM (Sounds_crossCorrelate, U"Sounds: Cross-correlate", U"Sounds: Cross-correla
 	RADIO_ENUM (U"Signal outside time domain is...", kSounds_convolve_signalOutsideTimeDomain, DEFAULT)
 	OK2
 DO_ALTERNATIVE (old_Sounds_crossCorrelate)
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		( s1 ? s2 : s1 ) = me;
 	}
-	Melder_assert (s1 && s2);
+	Melder_assert (s1 != NULL && s2 != NULL);
 	autoSound thee = Sounds_crossCorrelate (s1, s2,
 		GET_ENUM (kSounds_convolve_scaling, U"Amplitude scaling"),
 		GET_ENUM (kSounds_convolve_signalOutsideTimeDomain, U"Signal outside time domain is..."));
-	praat_new (thee.move(), s1 -> name, U"_", s2 -> name);
+	praat_new (thee.transfer(), s1 -> name, U"_", s2 -> name);
 END2 }
 
 FORM (Sound_deemphasizeInline, U"Sound: De-emphasize (in-line)", U"Sound: De-emphasize (in-line)...") {
@@ -710,11 +653,11 @@ DO
 		autoSound thee = Sound_deepenBandModulation (me, GET_REAL (U"Enhancement"),
 			GET_REAL (U"From frequency"), GET_REAL (U"To frequency"),
 			GET_REAL (U"Slow modulation"), GET_REAL (U"Fast modulation"), GET_REAL (U"Band smoothing"));
-		praat_new (thee.move(), my name, U"_", (long) (GET_REAL (U"Enhancement")));   // truncate number toward zero for visual effect
+		praat_new (thee.transfer(), my name, U"_", (long) (GET_REAL (U"Enhancement")));   // truncate number toward zero for visual effect
 	}
 END2 }
 
-FORM (old_Sound_draw, U"Sound: Draw", nullptr) {
+FORM (old_Sound_draw, U"Sound: Draw", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range", U"0.0 (= all)")
 	REAL (U"left Vertical range", U"0.0")
@@ -730,7 +673,7 @@ DO
 	}
 END2 }
 
-FORM (Sound_draw, U"Sound: Draw", nullptr) {
+FORM (Sound_draw, U"Sound: Draw", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range", U"0.0 (= all)")
 	REAL (U"left Vertical range", U"0.0")
@@ -752,21 +695,21 @@ DO_ALTERNATIVE (old_Sound_draw)
 	}
 END2 }
 
-static void cb_SoundEditor_publication (Editor /* me */, autoDaata publication) {
+static void cb_SoundEditor_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	/*
 	 * Keep the gate for error handling.
 	 */
 	try {
-		bool isaSpectrum = Thing_isa (publication.get(), classSpectrum);
-		praat_new (publication.move(), U"");
+		praat_new (publication, U"");
 		praat_updateSelection ();
-		if (isaSpectrum) {
+		if (Thing_isa (publication, classSpectrum)) {
 			int IOBJECT;
 			LOOP {
 				iam (Spectrum);
 				autoSpectrumEditor editor2 = SpectrumEditor_create (ID_AND_FULL_NAME, me);
-				praat_installEditor (editor2.get(), IOBJECT);
-				editor2.releaseToUser();
+				praat_installEditor (editor2.transfer(), IOBJECT);
 			}
 		}
 	} catch (MelderError) {
@@ -778,9 +721,8 @@ DIRECT2 (Sound_edit) {
 	LOOP {
 		iam (Sound);
 		autoSoundEditor editor = SoundEditor_create (ID_AND_FULL_NAME, me);
-		Editor_setPublicationCallback (editor.get(), cb_SoundEditor_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		Editor_setPublicationCallback (editor.peek(), cb_SoundEditor_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -789,12 +731,12 @@ DIRECT2 (Sound_extractAllChannels) {
 		iam (Sound);
 		for (long channel = 1; channel <= my ny; channel ++) {
 			autoSound thee = Sound_extractChannel (me, channel);
-			praat_new (thee.move(), my name, U"_ch", channel);
+			praat_new (thee.transfer(), my name, U"_ch", channel);
 		}
 	}
 END2 }
 
-FORM (Sound_extractChannel, U"Sound: Extract channel", nullptr) {
+FORM (Sound_extractChannel, U"Sound: Extract channel", 0) {
 	CHANNEL (U"Channel (number, Left, or Right)", U"1")
 	OK2
 DO
@@ -802,7 +744,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_extractChannel (me, channel);
-		praat_new (thee.move(), my name, U"_ch", channel);
+		praat_new (thee.transfer(), my name, U"_ch", channel);
 	}
 END2 }
 
@@ -810,16 +752,16 @@ DIRECT2 (Sound_extractLeftChannel) {
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_extractChannel (me, 1);
-		praat_new (thee.move(), my name, U"_left");
+		praat_new (thee.transfer(), my name, U"_left");
 	}
 END2 }
 
-FORM (Sound_extractPart, U"Sound: Extract part", nullptr) {
-	REAL (U"left Time range (s)", U"0.0")
+FORM (Sound_extractPart, U"Sound: Extract part", 0) {
+	REAL (U"left Time range (s)", U"0")
 	REAL (U"right Time range (s)", U"0.1")
 	OPTIONMENU_ENUM (U"Window shape", kSound_windowShape, DEFAULT)
 	POSITIVE (U"Relative width", U"1.0")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	OK2
 DO
 	LOOP {
@@ -828,12 +770,12 @@ DO
 			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 			GET_ENUM (kSound_windowShape, U"Window shape"), GET_REAL (U"Relative width"),
 			GET_INTEGER (U"Preserve times"));
-		praat_new (thee.move(), my name, U"_part");
+		praat_new (thee.transfer(), my name, U"_part");
 	}
 END2 }
 
-FORM (Sound_extractPartForOverlap, U"Sound: Extract part for overlap", nullptr) {
-	REAL (U"left Time range (s)", U"0.0")
+FORM (Sound_extractPartForOverlap, U"Sound: Extract part for overlap", 0) {
+	REAL (U"left Time range (s)", U"0")
 	REAL (U"right Time range (s)", U"0.1")
 	POSITIVE (U"Overlap (s)", U"0.01")
 	OK2
@@ -843,7 +785,7 @@ DO
 		autoSound thee = Sound_extractPartForOverlap (me,
 			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"),
 			GET_REAL (U"Overlap"));
-		praat_new (thee.move(), my name, U"_part");
+		praat_new (thee.transfer(), my name, U"_part");
 	}
 END2 }
 
@@ -851,7 +793,7 @@ DIRECT2 (Sound_extractRightChannel) {
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_extractChannel (me, 2);
-		praat_new (thee.move(), my name, U"_right");
+		praat_new (thee.transfer(), my name, U"_right");
 	}
 END2 }
 
@@ -862,7 +804,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_deemphasis (me, GET_REAL (U"From frequency"));
-		praat_new (thee.move(), my name, U"_deemp");
+		praat_new (thee.transfer(), my name, U"_deemp");
 	}
 END2 }
 
@@ -874,25 +816,25 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_formula (me, GET_STRING (U"formula"), interpreter);
-		praat_new (thee.move(), my name, U"_filt");
+		praat_new (thee.transfer(), my name, U"_filt");
 	}
 END2 }
 
 FORM (Sound_filter_oneFormant, U"Sound: Filter (one formant)", U"Sound: Filter (one formant)...") {
-	REAL (U"Frequency (Hz)", U"1000.0")
-	POSITIVE (U"Bandwidth (Hz)", U"100.0")
+	REAL (U"Frequency (Hz)", U"1000")
+	POSITIVE (U"Bandwidth (Hz)", U"100")
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_oneFormant (me, GET_REAL (U"Frequency"), GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name, U"_filt");
+		praat_new (thee.transfer(), my name, U"_filt");
 	}
 END2 }
 
 FORM (Sound_filterWithOneFormantInline, U"Sound: Filter with one formant (in-line)", U"Sound: Filter with one formant (in-line)...") {
-	REAL (U"Frequency (Hz)", U"1000.0")
-	POSITIVE (U"Bandwidth (Hz)", U"100.0")
+	REAL (U"Frequency (Hz)", U"1000")
+	POSITIVE (U"Bandwidth (Hz)", U"100")
 	OK2
 DO
 	LOOP {
@@ -903,16 +845,16 @@ DO
 END2 }
 
 FORM (Sound_filter_passHannBand, U"Sound: Filter (pass Hann band)", U"Sound: Filter (pass Hann band)...") {
-	REAL (U"From frequency (Hz)", U"500.0")
-	REAL (U"To frequency (Hz)", U"1000.0")
-	POSITIVE (U"Smoothing (Hz)", U"100.0")
+	REAL (U"From frequency (Hz)", U"500")
+	REAL (U"To frequency (Hz)", U"1000")
+	POSITIVE (U"Smoothing (Hz)", U"100")
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_passHannBand (me,
 			GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_REAL (U"Smoothing"));
-		praat_new (thee.move(), my name, U"_band");
+		praat_new (thee.transfer(), my name, U"_band");
 	}
 END2 }
 
@@ -923,20 +865,20 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_preemphasis (me, GET_REAL (U"From frequency"));
-		praat_new (thee.move(), my name, U"_preemp");
+		praat_new (thee.transfer(), my name, U"_preemp");
 	}
 END2 }
 
 FORM (Sound_filter_stopHannBand, U"Sound: Filter (stop Hann band)", U"Sound: Filter (stop Hann band)...") {
-	REAL (U"From frequency (Hz)", U"500.0")
-	REAL (U"To frequency (Hz)", U"1000.0")
-	POSITIVE (U"Smoothing (Hz)", U"100.0")
+	REAL (U"From frequency (Hz)", U"500")
+	REAL (U"To frequency (Hz)", U"1000")
+	POSITIVE (U"Smoothing (Hz)", U"100")
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_filter_stopHannBand (me, GET_REAL (U"From frequency"), GET_REAL (U"To frequency"), GET_REAL (U"Smoothing"));
-		praat_new (thee.move(), my name, U"_band");
+		praat_new (thee.transfer(), my name, U"_band");
 	}
 END2 }
 
@@ -953,7 +895,7 @@ DO
 	LOOP {
 		iam (Sound);
 		try {
-			Matrix_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			Matrix_formula ((Matrix) me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Sound may have partially changed
@@ -973,10 +915,10 @@ DO
 	LOOP {
 		iam (Sound);
 		try {
-			Matrix_formula_part (me,
+			Matrix_formula_part ((Matrix) me,
 				GET_REAL (U"From time"), GET_REAL (U"To time"),
 				GET_INTEGER (U"From channel") - 0.5, GET_INTEGER (U"To channel") + 0.5,
-				GET_STRING (U"formula"), interpreter, nullptr);
+				GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);   // in case of error, the Sound may have partially changed
@@ -1031,7 +973,7 @@ DO
 	LOOP {
 		iam (Sound);
 		double realIndex = Sampled_xToIndex (me, GET_REAL (U"Time"));
-		Melder_informationReal (realIndex, nullptr);
+		Melder_informationReal (realIndex, NULL);
 	}
 END2 }
 
@@ -1350,11 +1292,11 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_lengthen_overlapAdd (me, minimumPitch, maximumPitch, factor);
-		praat_new (thee.move(), my name, U"_", Melder_fixed (factor, 2));
+		praat_new (thee.transfer(), my name, U"_", Melder_fixed (factor, 2));
 	}
 END2 }
 
-FORM (Sound_multiply, U"Sound: Multiply", nullptr) {
+FORM (Sound_multiply, U"Sound: Multiply", 0) {
 	REAL (U"Multiplication factor", U"1.5")
 	OK2
 DO
@@ -1365,7 +1307,7 @@ DO
 	}
 END2 }
 
-FORM (Sound_multiplyByWindow, U"Sound: Multiply by window", nullptr) {
+FORM (Sound_multiplyByWindow, U"Sound: Multiply by window", 0) {
 	OPTIONMENU_ENUM (U"Window shape", kSound_windowShape, HANNING)
 	OK2
 DO
@@ -1376,7 +1318,7 @@ DO
 	}
 END2 }
 
-FORM (Sound_overrideSamplingFrequency, U"Sound: Override sampling frequency", nullptr) {
+FORM (Sound_overrideSamplingFrequency, U"Sound: Override sampling frequency", 0) {
 	POSITIVE (U"New sampling frequency (Hz)", U"16000.0")
 	OK2
 DO
@@ -1395,13 +1337,13 @@ DIRECT2 (Sound_play) {
 	if (n == 1 || MelderAudio_getOutputMaximumAsynchronicity () < kMelder_asynchronicityLevel_ASYNCHRONOUS) {
 		LOOP {
 			iam (Sound);
-			Sound_play (me, nullptr, nullptr);
+			Sound_play (me, NULL, NULL);
 		}
 	} else {
 		MelderAudio_setOutputMaximumAsynchronicity (kMelder_asynchronicityLevel_INTERRUPTABLE);
 		LOOP {
 			iam (Sound);
-			Sound_play (me, nullptr, nullptr);   // BUG: exception-safe?
+			Sound_play (me, NULL, NULL);   // BUG: exception-safe?
 		}
 		MelderAudio_setOutputMaximumAsynchronicity (kMelder_asynchronicityLevel_ASYNCHRONOUS);
 	}
@@ -1419,34 +1361,37 @@ DO
 	}
 END2 }
 
-FORM_READ2 (Sound_readSeparateChannelsFromSoundFile, U"Read separate channels from sound file", nullptr, true) {
+FORM_READ2 (Sound_readSeparateChannelsFromSoundFile, U"Read separate channels from sound file", 0, true) {
 	autoSound sound = Sound_readFromSoundFile (file);
 	char32 name [300];
 	Melder_sprint (name,300, MelderFile_name (file));
 	char32 *lastPeriod = str32rchr (name, U'.');
-	if (lastPeriod) {
-		*lastPeriod = U'\0';
+	if (lastPeriod != NULL) {
+		*lastPeriod = '\0';
 	}
 	for (long ichan = 1; ichan <= sound -> ny; ichan ++) {
-		autoSound thee = Sound_extractChannel (sound.get(), ichan);
-		praat_new (thee.move(), name, U"_ch", ichan);
+		autoSound thee = Sound_extractChannel (sound.peek(), ichan);
+		praat_new (thee.transfer(), name, U"_ch", ichan);
 	}
 END2 }
 
-FORM_READ2 (Sound_readFromRawAlawFile, U"Read Sound from raw Alaw file", nullptr, true) {
+FORM_READ2 (Sound_readFromRawAlawFile, U"Read Sound from raw Alaw file", 0, true) {
 	autoSound me = Sound_readFromRawAlawFile (file);
-	praat_new (me.move(), MelderFile_name (file));
+	praat_new (me.transfer(), MelderFile_name (file));
 END2 }
 
-static SoundRecorder theReferenceToTheOnlySoundRecorder;
+static SoundRecorder theSoundRecorder;   // only one at a time can exist
 static int thePreviousNumberOfChannels;
-
-static void cb_SoundRecorder_destruction (SoundRecorder /* me */) {
-	theReferenceToTheOnlySoundRecorder = nullptr;
+static void cb_SoundRecorder_destruction (Editor editor, void *closure) {
+	(void) editor;
+	(void) closure;
+	theSoundRecorder = NULL;
 }
-static void cb_SoundRecorder_publication (Editor /* me */, autoDaata publication) {
+static void cb_SoundRecorder_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	try {
-		praat_new (publication.move());
+		praat_new (publication);
 	} catch (MelderError) {
 		Melder_flushError ();
 	}
@@ -1455,17 +1400,19 @@ static void cb_SoundRecorder_publication (Editor /* me */, autoDaata publication
 static void do_Sound_record (int numberOfChannels) {
 	if (theCurrentPraatApplication -> batch)
 		Melder_throw (U"Cannot record a Sound from batch.");
-	if (theReferenceToTheOnlySoundRecorder && numberOfChannels == thePreviousNumberOfChannels) {
-		Editor_raise (theReferenceToTheOnlySoundRecorder);
-	} else {
-		forget (theReferenceToTheOnlySoundRecorder);
-		autoSoundRecorder recorder = SoundRecorder_create (numberOfChannels);
-		Editor_setDestructionCallback (recorder.get(), cb_SoundRecorder_destruction);
-		Editor_setPublicationCallback (recorder.get(), cb_SoundRecorder_publication);
-		theReferenceToTheOnlySoundRecorder = recorder.get();
-		recorder.releaseToUser();
-		thePreviousNumberOfChannels = numberOfChannels;
+	if (theSoundRecorder) {
+		if (numberOfChannels == thePreviousNumberOfChannels) {
+			Editor_raise (theSoundRecorder);
+		} else {
+			forget (theSoundRecorder);
+		}
+	}
+	if (! theSoundRecorder) {
+		theSoundRecorder = SoundRecorder_create (numberOfChannels);
+		Editor_setDestructionCallback (theSoundRecorder, cb_SoundRecorder_destruction, NULL);
+		Editor_setPublicationCallback (theSoundRecorder, cb_SoundRecorder_publication, NULL);
 	}
+	thePreviousNumberOfChannels = numberOfChannels;
 }
 DIRECT2 (Sound_record_mono) {
 	do_Sound_record (1);
@@ -1474,7 +1421,7 @@ DIRECT2 (Sound_record_stereo) {
 	do_Sound_record (2);
 END2 }
 
-FORM (Sound_recordFixedTime, U"Record Sound", nullptr) {
+FORM (Sound_recordFixedTime, U"Record Sound", 0) {
 	RADIO (U"Input source", 1)
 		RADIOBUTTON (U"Microphone")
 		RADIOBUTTON (U"Line")
@@ -1505,11 +1452,11 @@ DO
 	autoSound me = Sound_recordFixedTime (GET_INTEGER (U"Input source"),
 		GET_REAL (U"Gain"), GET_REAL (U"Balance"),
 		Melder_atof (GET_STRING (U"Sampling frequency")), GET_REAL (U"Duration"));
-	praat_new (me.move(), U"untitled");
+	praat_new (me.transfer(), U"untitled");
 END2 }
 
 FORM (Sound_resample, U"Sound: Resample", U"Sound: Resample...") {
-	POSITIVE (U"New sampling frequency (Hz)", U"10000.0")
+	POSITIVE (U"New sampling frequency (Hz)", U"10000")
 	NATURAL (U"Precision (samples)", U"50")
 	OK2
 DO
@@ -1517,34 +1464,26 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSound thee = Sound_resample (me, samplingFrequency, GET_INTEGER (U"Precision"));
-		praat_new (thee.move(), my name, U"_", (long) round (samplingFrequency));
+		praat_new (thee.transfer(), my name, U"_", (long) round (samplingFrequency));
 	}
 END2 }
 
 DIRECT2 (Sound_reverse) {
 	LOOP {
 		iam (Sound);
-		Sound_reverse (me, 0.0, 0.0);
+		Sound_reverse (me, 0, 0);
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAs24BitWavFile, U"Save as 24-bit WAV file", nullptr, U"wav") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_WAV, 24);
+FORM_WRITE2 (Sound_saveAs24BitWavFile, U"Save as 24-bit WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_WAV, 24);
 END2 }
 
-FORM_WRITE2 (Sound_saveAs32BitWavFile, U"Save as 32-bit WAV file", nullptr, U"wav") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_WAV, 32);
+FORM_WRITE2 (Sound_saveAs32BitWavFile, U"Save as 32-bit WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_WAV, 32);
 END2 }
 
 FORM (Sound_scalePeak, U"Sound: Scale peak", U"Sound: Scale peak...") {
@@ -1558,7 +1497,7 @@ DO
 	}
 END2 }
 
-FORM (Sound_scaleIntensity, U"Sound: Scale intensity", U"Sound: Scale intensity...") {
+FORM (Sound_scaleIntensity, U"Sound: Scale intensity", U"Sound: Scale intensity") {
 	POSITIVE (U"New average intensity (dB SPL)", U"70.0")
 	OK2
 DO
@@ -1609,7 +1548,7 @@ DO_ALTERNATIVE (old_Sound_setValueAtIndex)
 	}
 END2 }
 
-FORM (Sound_setPartToZero, U"Sound: Set part to zero", nullptr) {
+FORM (Sound_setPartToZero, U"Sound: Set part to zero", 0) {
 	REAL (U"left Time range (s)", U"0.0")
 	REAL (U"right Time range (s)", U"0.0 (= all)")
 	RADIO (U"Cut", 2)
@@ -1643,11 +1582,11 @@ DO
 	LOOP {
 		iam (Sound);
 		autoManipulation thee = Sound_to_Manipulation (me, GET_REAL (U"Time step"), fmin, fmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_Cochleagram, U"Sound: To Cochleagram", nullptr) {
+FORM (Sound_to_Cochleagram, U"Sound: To Cochleagram", 0) {
 	POSITIVE (U"Time step (s)", U"0.01")
 	POSITIVE (U"Frequency resolution (Bark)", U"0.1")
 	POSITIVE (U"Window length (s)", U"0.03")
@@ -1658,18 +1597,18 @@ DO
 		iam (Sound);
 		autoCochleagram thee = Sound_to_Cochleagram (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Frequency resolution"), GET_REAL (U"Window length"), GET_REAL (U"Forward-masking time"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_Cochleagram_edb, U"Sound: To Cochleagram (De Boer, Meddis & Hewitt)", nullptr) {
+FORM (Sound_to_Cochleagram_edb, U"Sound: To Cochleagram (De Boer, Meddis & Hewitt)", 0) {
 	POSITIVE (U"Time step (s)", U"0.01")
 	POSITIVE (U"Frequency resolution (Bark)", U"0.1")
-	BOOLEAN (U"Has synapse", true)
+	BOOLEAN (U"Has synapse", 1)
 	LABEL (U"", U"Meddis synapse properties")
 	POSITIVE (U"   replenishment rate (/sec)", U"5.05")
-	POSITIVE (U"   loss rate (/sec)", U"2500.0")
-	POSITIVE (U"   return rate (/sec)", U"6580.0")
+	POSITIVE (U"   loss rate (/sec)", U"2500")
+	POSITIVE (U"   return rate (/sec)", U"6580")
 	POSITIVE (U"   reprocessing rate (/sec)", U"66.31")
 	OK2
 DO
@@ -1679,16 +1618,16 @@ DO
 			GET_REAL (U"Frequency resolution"), GET_INTEGER (U"Has synapse"),
 			GET_REAL (U"   replenishment rate"), GET_REAL (U"   loss rate"),
 			GET_REAL (U"   return rate"), GET_REAL (U"   reprocessing rate"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Formant_burg, U"Sound: To Formant (Burg method)", U"Sound: To Formant (burg)...") {
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	POSITIVE (U"Max. number of formants", U"5.0")
-	REAL (U"Maximum formant (Hz)", U"5500.0 (= adult female)")
+	POSITIVE (U"Max. number of formants", U"5")
+	REAL (U"Maximum formant (Hz)", U"5500 (= adult female)")
 	POSITIVE (U"Window length (s)", U"0.025")
-	POSITIVE (U"Pre-emphasis from (Hz)", U"50.0")
+	POSITIVE (U"Pre-emphasis from (Hz)", U"50")
 	OK2
 DO
 	LOOP {
@@ -1696,16 +1635,16 @@ DO
 		autoFormant thee = Sound_to_Formant_burg (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Max. number of formants"), GET_REAL (U"Maximum formant"),
 			GET_REAL (U"Window length"), GET_REAL (U"Pre-emphasis from"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Formant_keepAll, U"Sound: To Formant (keep all)", U"Sound: To Formant (keep all)...") {
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	POSITIVE (U"Max. number of formants", U"5.0")
-	REAL (U"Maximum formant (Hz)", U"5500.0 (= adult female)")
+	POSITIVE (U"Max. number of formants", U"5")
+	REAL (U"Maximum formant (Hz)", U"5500 (= adult female)")
 	POSITIVE (U"Window length (s)", U"0.025")
-	POSITIVE (U"Pre-emphasis from (Hz)", U"50.0")
+	POSITIVE (U"Pre-emphasis from (Hz)", U"50")
 	OK2
 DO
 	LOOP {
@@ -1713,16 +1652,16 @@ DO
 		autoFormant thee = Sound_to_Formant_keepAll (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Max. number of formants"), GET_REAL (U"Maximum formant"),
 			GET_REAL (U"Window length"), GET_REAL (U"Pre-emphasis from"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Formant_willems, U"Sound: To Formant (split Levinson (Willems))", U"Sound: To Formant (sl)...") {
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	POSITIVE (U"Number of formants", U"5.0")
-	REAL (U"Maximum formant (Hz)", U"5500.0 (= adult female)")
+	POSITIVE (U"Number of formants", U"5")
+	REAL (U"Maximum formant (Hz)", U"5500 (= adult female)")
 	POSITIVE (U"Window length (s)", U"0.025")
-	POSITIVE (U"Pre-emphasis from (Hz)", U"50.0")
+	POSITIVE (U"Pre-emphasis from (Hz)", U"50")
 	OK2
 DO
 	LOOP {
@@ -1730,13 +1669,13 @@ DO
 		autoFormant thee = Sound_to_Formant_willems (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Number of formants"), GET_REAL (U"Maximum formant"),
 			GET_REAL (U"Window length"), GET_REAL (U"Pre-emphasis from"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Harmonicity_ac, U"Sound: To Harmonicity (ac)", U"Sound: To Harmonicity (ac)...") {
 	POSITIVE (U"Time step (s)", U"0.01")
-	POSITIVE (U"Minimum pitch (Hz)", U"75.0")
+	POSITIVE (U"Minimum pitch (Hz)", U"75")
 	REAL (U"Silence threshold", U"0.1")
 	POSITIVE (U"Periods per window", U"4.5")
 	OK2
@@ -1747,13 +1686,13 @@ DO
 		iam (Sound);
 		autoHarmonicity thee = Sound_to_Harmonicity_ac (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Minimum pitch"), GET_REAL (U"Silence threshold"), periodsPerWindow);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Harmonicity_cc, U"Sound: To Harmonicity (cc)", U"Sound: To Harmonicity (cc)...") {
 	POSITIVE (U"Time step (s)", U"0.01")
-	POSITIVE (U"Minimum pitch (Hz)", U"75.0")
+	POSITIVE (U"Minimum pitch (Hz)", U"75")
 	REAL (U"Silence threshold", U"0.1")
 	POSITIVE (U"Periods per window", U"1.0")
 	OK2
@@ -1763,15 +1702,15 @@ DO
 		autoHarmonicity thee = Sound_to_Harmonicity_cc (me, GET_REAL (U"Time step"),
 			GET_REAL (U"Minimum pitch"), GET_REAL (U"Silence threshold"),
 			GET_REAL (U"Periods per window"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_Harmonicity_gne, U"Sound: To Harmonicity (gne)", nullptr) {
-	POSITIVE (U"Minimum frequency (Hz)", U"500.0")
-	POSITIVE (U"Maximum frequency (Hz)", U"4500.0")
-	POSITIVE (U"Bandwidth (Hz)", U"1000.0")
-	POSITIVE (U"Step (Hz)", U"80.0")
+FORM (Sound_to_Harmonicity_gne, U"Sound: To Harmonicity (gne)", 0) {
+	POSITIVE (U"Minimum frequency (Hz)", U"500")
+	POSITIVE (U"Maximum frequency (Hz)", U"4500")
+	POSITIVE (U"Bandwidth (Hz)", U"1000")
+	POSITIVE (U"Step (Hz)", U"80")
 	OK2
 DO
 	LOOP {
@@ -1779,48 +1718,48 @@ DO
 		autoMatrix thee = Sound_to_Harmonicity_GNE (me, GET_REAL (U"Minimum frequency"),
 			GET_REAL (U"Maximum frequency"), GET_REAL (U"Bandwidth"),
 			GET_REAL (U"Step"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (old_Sound_to_Intensity, U"Sound: To Intensity", U"Sound: To Intensity...") {
-	POSITIVE (U"Minimum pitch (Hz)", U"100.0")
+	POSITIVE (U"Minimum pitch (Hz)", U"100")
 	REAL (U"Time step (s)", U"0.0 (= auto)")
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoIntensity thee = Sound_to_Intensity (me,
-			GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"), false);
-		praat_new (thee.move(), my name);
+			GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"), FALSE);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Intensity, U"Sound: To Intensity", U"Sound: To Intensity...") {
-	POSITIVE (U"Minimum pitch (Hz)", U"100.0")
+	POSITIVE (U"Minimum pitch (Hz)", U"100")
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	BOOLEAN (U"Subtract mean", true)
+	BOOLEAN (U"Subtract mean", 1)
 	OK2
 DO_ALTERNATIVE (old_Sound_to_Intensity)
 	LOOP {
 		iam (Sound);
 		autoIntensity thee = Sound_to_Intensity (me,
 			GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"), GET_INTEGER (U"Subtract mean"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_IntensityTier, U"Sound: To IntensityTier", nullptr) {
-	POSITIVE (U"Minimum pitch (Hz)", U"100.0")
+FORM (Sound_to_IntensityTier, U"Sound: To IntensityTier", NULL) {
+	POSITIVE (U"Minimum pitch (Hz)", U"100")
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	BOOLEAN (U"Subtract mean", true)
+	BOOLEAN (U"Subtract mean", 1)
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoIntensityTier thee = Sound_to_IntensityTier (me,
 			GET_REAL (U"Minimum pitch"), GET_REAL (U"Time step"), GET_INTEGER (U"Subtract mean"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1828,26 +1767,26 @@ DIRECT2 (Sound_to_IntervalTier) {
 	LOOP {
 		iam (Sound);
 		autoIntervalTier thee = IntervalTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_Ltas, U"Sound: To long-term average spectrum", nullptr) {
+FORM (Sound_to_Ltas, U"Sound: To long-term average spectrum", 0) {
 	POSITIVE (U"Bandwidth (Hz)", U"100")
 	OK2
 DO
 	LOOP {
 		iam (Sound);
 		autoLtas thee = Sound_to_Ltas (me, GET_REAL (U"Bandwidth"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Ltas_pitchCorrected, U"Sound: To Ltas (pitch-corrected)", U"Sound: To Ltas (pitch-corrected)...") {
-	POSITIVE (U"Minimum pitch (Hz)", U"75.0")
-	POSITIVE (U"Maximum pitch (Hz)", U"600.0")
-	POSITIVE (U"Maximum frequency (Hz)", U"5000.0")
-	POSITIVE (U"Bandwidth (Hz)", U"100.0")
+	POSITIVE (U"Minimum pitch (Hz)", U"75")
+	POSITIVE (U"Maximum pitch (Hz)", U"600")
+	POSITIVE (U"Maximum frequency (Hz)", U"5000")
+	POSITIVE (U"Bandwidth (Hz)", U"100")
 	REAL (U"Shortest period (s)", U"0.0001")
 	REAL (U"Longest period (s)", U"0.02")
 	POSITIVE (U"Maximum period factor", U"1.3")
@@ -1860,7 +1799,7 @@ DO
 		autoLtas thee = Sound_to_Ltas_pitchCorrected (me, fmin, fmax,
 			GET_REAL (U"Maximum frequency"), GET_REAL (U"Bandwidth"),
 			GET_REAL (U"Shortest period"), GET_REAL (U"Longest period"), GET_REAL (U"Maximum period factor"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1868,18 +1807,18 @@ DIRECT2 (Sound_to_Matrix) {
 	LOOP {
 		iam (Sound);
 		autoMatrix thee = Sound_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Sounds_to_ParamCurve) {
-	Sound s1 = nullptr, s2 = nullptr;
+	Sound s1 = NULL, s2 = NULL;
 	LOOP {
 		iam (Sound);
 		( s1 ? s2 : s1 ) = me;
 	}
 	autoParamCurve thee = ParamCurve_create (s1, s2);
-	praat_new (thee.move(), s1 -> name, U"_", s2 -> name);
+	praat_new (thee.transfer(), s1 -> name, U"_", s2 -> name);
 END2 }
 
 FORM (Sound_to_Pitch, U"Sound: To Pitch", U"Sound: To Pitch...") {
@@ -1891,7 +1830,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoPitch thee = Sound_to_Pitch (me, GET_REAL (U"Time step"), GET_REAL (U"Pitch floor"), GET_REAL (U"Pitch ceiling"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1900,7 +1839,7 @@ FORM (Sound_to_Pitch_ac, U"Sound: To Pitch (ac)", U"Sound: To Pitch (ac)...") {
 	REAL (U"Time step (s)", U"0.0 (= auto)")
 	POSITIVE (U"Pitch floor (Hz)", U"75.0")
 	NATURAL (U"Max. number of candidates", U"15")
-	BOOLEAN (U"Very accurate", false)
+	BOOLEAN (U"Very accurate", 0)
 	LABEL (U"", U"Finding a path")
 	REAL (U"Silence threshold", U"0.03")
 	REAL (U"Voicing threshold", U"0.45")
@@ -1919,16 +1858,16 @@ DO
 			GET_REAL (U"Silence threshold"), GET_REAL (U"Voicing threshold"),
 			GET_REAL (U"Octave cost"), GET_REAL (U"Octave-jump cost"),
 			GET_REAL (U"Voiced / unvoiced cost"), GET_REAL (U"Pitch ceiling"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Pitch_cc, U"Sound: To Pitch (cc)", U"Sound: To Pitch (cc)...") {
 	LABEL (U"", U"Finding the candidates")
 	REAL (U"Time step (s)", U"0.0 (= auto)")
-	POSITIVE (U"Pitch floor (Hz)", U"75.0")
+	POSITIVE (U"Pitch floor (Hz)", U"75")
 	NATURAL (U"Max. number of candidates", U"15")
-	BOOLEAN (U"Very accurate", false)
+	BOOLEAN (U"Very accurate", 0)
 	LABEL (U"", U"Finding a path")
 	REAL (U"Silence threshold", U"0.03")
 	REAL (U"Voicing threshold", U"0.45")
@@ -1947,14 +1886,14 @@ DO
 			GET_REAL (U"Silence threshold"), GET_REAL (U"Voicing threshold"),
 			GET_REAL (U"Octave cost"), GET_REAL (U"Octave-jump cost"),
 			GET_REAL (U"Voiced / unvoiced cost"), GET_REAL (U"Pitch ceiling"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_PointProcess_extrema, U"Sound: To PointProcess (extrema)", nullptr) {
+FORM (Sound_to_PointProcess_extrema, U"Sound: To PointProcess (extrema)", 0) {
 	CHANNEL (U"Channel (number, Left, or Right)", U"1")
-	BOOLEAN (U"Include maxima", true)
-	BOOLEAN (U"Include minima", false)
+	BOOLEAN (U"Include maxima", 1)
+	BOOLEAN (U"Include minima", 0)
 	RADIO (U"Interpolation", 4)
 		RADIOBUTTON (U"None")
 		RADIOBUTTON (U"Parabolic")
@@ -1968,7 +1907,7 @@ DO
 		iam (Sound);
 		autoPointProcess thee = Sound_to_PointProcess_extrema (me, channel > my ny ? 1 : channel, GET_INTEGER (U"Interpolation") - 1,
 			GET_INTEGER (U"Include maxima"), GET_INTEGER (U"Include minima"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1982,15 +1921,15 @@ DO
 	LOOP {
 		iam (Sound);
 		autoPointProcess thee = Sound_to_PointProcess_periodic_cc (me, fmin, fmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_PointProcess_periodic_peaks, U"Sound: To PointProcess (periodic, peaks)", U"Sound: To PointProcess (periodic, peaks)...") {
 	POSITIVE (U"Minimum pitch (Hz)", U"75")
 	POSITIVE (U"Maximum pitch (Hz)", U"600")
-	BOOLEAN (U"Include maxima", true)
-	BOOLEAN (U"Include minima", false)
+	BOOLEAN (U"Include maxima", 1)
+	BOOLEAN (U"Include minima", 0)
 	OK2
 DO
 	double fmin = GET_REAL (U"Minimum pitch"), fmax = GET_REAL (U"Maximum pitch");
@@ -1998,29 +1937,29 @@ DO
 	LOOP {
 		iam (Sound);
 		autoPointProcess thee = Sound_to_PointProcess_periodic_peaks (me, fmin, fmax, GET_INTEGER (U"Include maxima"), GET_INTEGER (U"Include minima"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Sound_to_PointProcess_zeroes, U"Get zeroes", nullptr) {
+FORM (Sound_to_PointProcess_zeroes, U"Get zeroes", 0) {
 	CHANNEL (U"Channel (number, Left, or Right)", U"1")
-	BOOLEAN (U"Include raisers", true)
-	BOOLEAN (U"Include fallers", false)
+	BOOLEAN (U"Include raisers", 1)
+	BOOLEAN (U"Include fallers", 0)
 	OK2
 DO
 	long channel = GET_INTEGER (U"Channel");
 	LOOP {
 		iam (Sound);
 		autoPointProcess thee = Sound_to_PointProcess_zeroes (me, channel > my ny ? 1 : channel, GET_INTEGER (U"Include raisers"), GET_INTEGER (U"Include fallers"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (Sound_to_Spectrogram, U"Sound: To Spectrogram", U"Sound: To Spectrogram...") {
 	POSITIVE (U"Window length (s)", U"0.005")
-	POSITIVE (U"Maximum frequency (Hz)", U"5000.0")
+	POSITIVE (U"Maximum frequency (Hz)", U"5000")
 	POSITIVE (U"Time step (s)", U"0.002")
-	POSITIVE (U"Frequency step (Hz)", U"20.0")
+	POSITIVE (U"Frequency step (Hz)", U"20")
 	RADIO_ENUM (U"Window shape", kSound_to_Spectrogram_windowShape, DEFAULT)
 	OK2
 DO
@@ -2029,7 +1968,7 @@ DO
 		autoSpectrogram thee = Sound_to_Spectrogram (me, GET_REAL (U"Window length"),
 			GET_REAL (U"Maximum frequency"), GET_REAL (U"Time step"),
 			GET_REAL (U"Frequency step"), GET_ENUM (kSound_to_Spectrogram_windowShape, U"Window shape"), 8.0, 8.0);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2040,23 +1979,23 @@ DO
 	LOOP {
 		iam (Sound);
 		autoSpectrum thee = Sound_to_Spectrum (me, GET_INTEGER (U"Fast"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Sound_to_Spectrum_dft) {
 	LOOP {
 		iam (Sound);
-		autoSpectrum thee = Sound_to_Spectrum (me, false);
-		praat_new (thee.move(), my name);
+		autoSpectrum thee = Sound_to_Spectrum (me, FALSE);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (Sound_to_Spectrum_fft) {
 	LOOP {
 		iam (Sound);
-		autoSpectrum thee = Sound_to_Spectrum (me, true);
-		praat_new (thee.move(), my name);
+		autoSpectrum thee = Sound_to_Spectrum (me, TRUE);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2068,7 +2007,7 @@ DO
 	LOOP {
 		iam (Sound);
 		autoTextGrid thee = TextGrid_create (my xmin, my xmax, GET_STRING (U"All tier names"), GET_STRING (U"Which of these are point tiers?"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -2076,24 +2015,21 @@ DIRECT2 (Sound_to_TextTier) {
 	LOOP {
 		iam (Sound);
 		autoTextTier thee = TextTier_create (my xmin, my xmax);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 FORM (SoundInputPrefs, U"Sound recording preferences", U"SoundRecorder") {
-	NATURAL (U"Buffer size (MB)", U"60")
-	OPTIONMENU_ENUM (U"Input sound system", kMelder_inputSoundSystem, DEFAULT)
+	NATURAL (U"Buffer size (MB)", U"20")
 	OK2
 SET_INTEGER (U"Buffer size", SoundRecorder_getBufferSizePref_MB ())
-SET_ENUM (U"Input sound system", kMelder_inputSoundSystem, MelderAudio_getInputSoundSystem())
 DO
 	long size = GET_INTEGER (U"Buffer size");
 	if (size > 1000) Melder_throw (U"Buffer size cannot exceed 1000 megabytes.");
 	SoundRecorder_setBufferSizePref_MB (size);
-	MelderAudio_setInputSoundSystem (GET_ENUM (kMelder_inputSoundSystem, U"Input sound system"));
 END2 }
 
-FORM (SoundOutputPrefs, U"Sound playing preferences", nullptr) {
+FORM (SoundOutputPrefs, U"Sound playing preferences", 0) {
 	LABEL (U"", U"The following determines how sounds are played.")
 	LABEL (U"", U"Between parentheses, you find what you can do simultaneously.")
 	LABEL (U"", U"Decrease asynchronicity if sound plays with discontinuities.")
@@ -2102,218 +2038,156 @@ FORM (SoundOutputPrefs, U"Sound playing preferences", nullptr) {
 	#define str(s) #s
 	REAL (U"Silence before (s)", U"" xstr (kMelderAudio_outputSilenceBefore_DEFAULT))
 	REAL (U"Silence after (s)", U"" xstr (kMelderAudio_outputSilenceAfter_DEFAULT))
-	OPTIONMENU_ENUM (U"Output sound system", kMelder_outputSoundSystem, DEFAULT)
 	OK2
 SET_ENUM (U"Maximum asynchronicity", kMelder_asynchronicityLevel, MelderAudio_getOutputMaximumAsynchronicity ())
 SET_REAL (U"Silence before", MelderAudio_getOutputSilenceBefore ())
 SET_REAL (U"Silence after", MelderAudio_getOutputSilenceAfter ())
-SET_ENUM (U"Output sound system", kMelder_outputSoundSystem, MelderAudio_getOutputSoundSystem())
 DO
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	MelderAudio_setOutputMaximumAsynchronicity (GET_ENUM (kMelder_asynchronicityLevel, U"Maximum asynchronicity"));
 	MelderAudio_setOutputSilenceBefore (GET_REAL (U"Silence before"));
 	MelderAudio_setOutputSilenceAfter (GET_REAL (U"Silence after"));
-	MelderAudio_setOutputSoundSystem (GET_ENUM (kMelder_outputSoundSystem, U"Output sound system"));
 END2 }
 
-#ifdef HAVE_PULSEAUDIO
-void pulseAudio_serverReport ();
-DIRECT (Praat_reportSoundServerProperties)
-	pulseAudio_serverReport ();
-END
-#endif
-
-FORM_WRITE2 (Sound_writeToAifcFile, U"Save as AIFC file", nullptr, U"aifc") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFC, 16);
+FORM_WRITE2 (Sound_writeToAifcFile, U"Save as AIFC file", 0, U"aifc") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFC, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToAiffFile, U"Save as AIFF file", nullptr, U"aiff") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_AIFF, 16);
+FORM_WRITE2 (Sound_writeToAiffFile, U"Save as AIFF file", 0, U"aiff") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_AIFF, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToFlacFile, U"Save as FLAC file", nullptr, U"flac") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_FLAC, 16);
+FORM_WRITE2 (Sound_writeToFlacFile, U"Save as FLAC file", 0, U"flac") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_FLAC, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToKayFile, U"Save as Kay sound file", nullptr, U"kay") {
+FORM_WRITE2 (Sound_writeToKayFile, U"Save as Kay sound file", 0, U"kay") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToKayFile (me, file);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_writeToNextSunFile, U"Save as NeXT/Sun file", nullptr, U"au") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NEXT_SUN, 16);
+FORM_WRITE2 (Sound_writeToNextSunFile, U"Save as NeXT/Sun file", 0, U"au") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NEXT_SUN, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToNistFile, U"Save as NIST file", nullptr, U"nist") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NIST, 16);
+FORM_WRITE2 (Sound_writeToNistFile, U"Save as NIST file", 0, U"nist") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NIST, 16);
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw8bitSignedFile, U"Save as raw 8-bit signed sound file", nullptr, U"8sig") {
+FORM_WRITE2 (Sound_saveAsRaw8bitSignedFile, U"Save as raw 8-bit signed sound file", 0, U"8sig") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_8_SIGNED);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw8bitUnsignedFile, U"Save as raw 8-bit unsigned sound file", nullptr, U"8uns") {
+FORM_WRITE2 (Sound_saveAsRaw8bitUnsignedFile, U"Save as raw 8-bit unsigned sound file", 0, U"8uns") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_8_UNSIGNED);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw16bitBigEndianFile, U"Save as raw 16-bit big-endian sound file", nullptr, U"16be") {
+FORM_WRITE2 (Sound_saveAsRaw16bitBigEndianFile, U"Save as raw 16-bit big-endian sound file", 0, U"16be") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_16_BIG_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw16bitLittleEndianFile, U"Save as raw 16-bit little-endian sound file", nullptr, U"16le") {
+FORM_WRITE2 (Sound_saveAsRaw16bitLittleEndianFile, U"Save as raw 16-bit little-endian sound file", 0, U"16le") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_16_LITTLE_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw24bitBigEndianFile, U"Save as raw 24-bit big-endian sound file", nullptr, U"24be") {
+FORM_WRITE2 (Sound_saveAsRaw24bitBigEndianFile, U"Save as raw 24-bit big-endian sound file", 0, U"24be") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_24_BIG_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw24bitLittleEndianFile, U"Save as raw 24-bit little-endian sound file", nullptr, U"24le") {
+FORM_WRITE2 (Sound_saveAsRaw24bitLittleEndianFile, U"Save as raw 24-bit little-endian sound file", 0, U"24le") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_24_LITTLE_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw32bitBigEndianFile, U"Save as raw 32-bit big-endian sound file", nullptr, U"32be") {
+FORM_WRITE2 (Sound_saveAsRaw32bitBigEndianFile, U"Save as raw 32-bit big-endian sound file", 0, U"32be") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_32_BIG_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_saveAsRaw32bitLittleEndianFile, U"Save as raw 32-bit little-endian sound file", nullptr, U"32le") {
+FORM_WRITE2 (Sound_saveAsRaw32bitLittleEndianFile, U"Save as raw 32-bit little-endian sound file", 0, U"32le") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToRawSoundFile (me, file, Melder_LINEAR_32_LITTLE_ENDIAN);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_writeToSesamFile, U"Save as Sesam file", nullptr, U"sdf") {
+FORM_WRITE2 (Sound_writeToSesamFile, U"Save as Sesam file", 0, U"sdf") {
 	LOOP {
 		iam (Sound);
 		Sound_writeToSesamFile (me, file);
 	}
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoAifcFile, U"Save as stereo AIFC file", nullptr, U"aifc") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_AIFC, 16);
+FORM_WRITE2 (Sound_writeToStereoAifcFile, U"Save as stereo AIFC file", 0, U"aifc") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_AIFC, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoAiffFile, U"Save as stereo AIFF file", nullptr, U"aiff") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_AIFF, 16);
+FORM_WRITE2 (Sound_writeToStereoAiffFile, U"Save as stereo AIFF file", 0, U"aiff") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_AIFF, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoNextSunFile, U"Save as stereo NeXT/Sun file", nullptr, U"au") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_NEXT_SUN, 16);
+FORM_WRITE2 (Sound_writeToStereoNextSunFile, U"Save as stereo NeXT/Sun file", 0, U"au") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_NEXT_SUN, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoNistFile, U"Save as stereo NIST file", nullptr, U"nist") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_NIST, 16);
+FORM_WRITE2 (Sound_writeToStereoNistFile, U"Save as stereo NIST file", 0, U"nist") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_NIST, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoFlacFile, U"Save as stereo FLAC file", nullptr, U"flac") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_FLAC, 16);
+FORM_WRITE2 (Sound_writeToStereoFlacFile, U"Save as stereo FLAC file", 0, U"flac") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_FLAC, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToStereoWavFile, U"Save as stereo WAV file", nullptr, U"wav") {
-	OrderedOf<structSound> list;
-	LOOP {
-		iam (Sound);
-		list. addItem_ref (me);
-	}
-	autoSound stereo = Sounds_combineToStereo (& list);
-	Sound_writeToAudioFile (stereo.get(), file, Melder_WAV, 16);
+FORM_WRITE2 (Sound_writeToStereoWavFile, U"Save as stereo WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	autoSound stereo = Sounds_combineToStereo (set.peek());
+	Sound_writeToAudioFile (stereo.peek(), file, Melder_WAV, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToSunAudioFile, U"Save as NeXT/Sun file", nullptr, U"au") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_NEXT_SUN, 16);
+FORM_WRITE2 (Sound_writeToSunAudioFile, U"Save as NeXT/Sun file", 0, U"au") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_NEXT_SUN, 16);
 END2 }
 
-FORM_WRITE2 (Sound_writeToWavFile, U"Save as WAV file", nullptr, U"wav") {
-	autoSoundAndLongSoundList list = SoundAndLongSoundList_create ();
-	LOOP {
-		iam (Sampled);
-		list -> addItem_ref (me);
-	}
-	LongSound_concatenate (list.get(), file, Melder_WAV, 16);
+FORM_WRITE2 (Sound_writeToWavFile, U"Save as WAV file", 0, U"wav") {
+	autoCollection set = praat_getSelectedObjects ();
+	LongSound_concatenate (set.peek(), file, Melder_WAV, 16);
 END2 }
 
 /***** STOP *****/
@@ -2334,14 +2208,15 @@ END2 }
 
 /***** file recognizers *****/
 
-static autoDaata macSoundOrEmptyFileRecognizer (int nread, const char * /* header */, MelderFile file) {
+static Any macSoundOrEmptyFileRecognizer (int nread, const char *header, MelderFile file) {
 	/***** No data in file? This may be a Macintosh sound file with only a resource fork. *****/
-	if (nread > 0) return autoDaata ();
+	(void) header;
+	if (nread > 0) return NULL;
 	Melder_throw (U"File ", file, U" contains no audio data.");   // !!!
 }
 
-static autoDaata soundFileRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread < 16) return autoDaata ();
+static Any soundFileRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread < 16) return NULL;
 	if (strnequ (header, "FORM", 4) && strnequ (header + 8, "AIF", 3)) return Sound_readFromSoundFile (file);
 	if (strnequ (header, "RIFF", 4) && (strnequ (header + 8, "WAVE", 4) || strnequ (header + 8, "CDDA", 4))) return Sound_readFromSoundFile (file);
 	if (strnequ (header, ".snd", 4)) return Sound_readFromSoundFile (file);
@@ -2350,11 +2225,12 @@ static autoDaata soundFileRecognizer (int nread, const char *header, MelderFile
 	if ((Melder_stringMatchesCriterion (MelderFile_name (file), kMelder_string_ENDS_WITH, U".mp3") ||
 	     Melder_stringMatchesCriterion (MelderFile_name (file), kMelder_string_ENDS_WITH, U".MP3"))
 		&& mp3_recognize (nread, header)) return Sound_readFromSoundFile (file);   // Erez Volk, May 2007
-	return autoDaata ();
+	return NULL;
 }
 
-static autoDaata movieFileRecognizer (int nread, const char * /* header */, MelderFile file) {
+static Any movieFileRecognizer (int nread, const char *header, MelderFile file) {
 	const char32 *fileName = MelderFile_name (file);
+	(void) header;
 	/*Melder_casual ("%d %d %d %d %d %d %d %d %d %d", header [0],
 		header [1], header [2], header [3],
 		header [4], header [5], header [6],
@@ -2362,70 +2238,71 @@ static autoDaata movieFileRecognizer (int nread, const char * /* header */, Meld
 	if (nread < 512 || (! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".mov") &&
 	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".MOV") &&
 	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".avi") &&
-	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".AVI"))) return autoDaata ();
+	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".AVI"))) return NULL;
 	Melder_throw (U"This Praat version cannot open movie files.");
-	return autoDaata ();
+	return NULL;
 }
 
-static autoDaata sesamFileRecognizer (int nread, const char * /* header */, MelderFile file) {
+static Any sesamFileRecognizer (int nread, const char *header, MelderFile file) {
 	const char32 *fileName = MelderFile_name (file);
+	(void) header;
 	if (nread < 512 || (! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".sdf") &&
-	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".SDF"))) return autoDaata ();
+	                    ! Melder_stringMatchesCriterion (fileName, kMelder_string_ENDS_WITH, U".SDF"))) return NULL;
 	return Sound_readFromSesamFile (file);
 }
 
-static autoDaata bellLabsFileRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread < 16 || ! strnequ (& header [0], "SIG\n", 4)) return autoDaata ();
+static Any bellLabsFileRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread < 16 || ! strnequ (& header [0], "SIG\n", 4)) return NULL;
 	return Sound_readFromBellLabsFile (file);
 }
 
-static autoDaata kayFileRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread <= 12 || ! strnequ (& header [0], "FORMDS16", 8)) return autoDaata ();
+static Any kayFileRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread <= 12 || ! strnequ (& header [0], "FORMDS16", 8)) return NULL;
 	return Sound_readFromKayFile (file);
 }
 
 /***** override play and record buttons in manuals *****/
 
-static autoSound melderSound, melderSoundFromFile;
-static Sound last;
+static Sound melderSound, melderSoundFromFile, last;
 static int recordProc (double duration) {
-	if (last == melderSound.get()) last = nullptr;
+	if (last == melderSound) last = NULL;
+	forget (melderSound);
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	melderSound = Sound_recordFixedTime (1, 1.0, 0.5, 44100, duration);
 	if (! melderSound) return 0;
-	last = melderSound.get();
+	last = melderSound;
 	return 1;
 }
 static int recordFromFileProc (MelderFile file) {
-	if (last == melderSoundFromFile.get()) last = nullptr;
-	Melder_warningOff ();   // like "misssing samples"
-	melderSoundFromFile = Data_readFromFile (file). static_cast_move<structSound>();
+	if (last == melderSoundFromFile) last = NULL;
+	forget (melderSoundFromFile);
+	Melder_warningOff ();   /* Like "misssing samples". */
+	melderSoundFromFile = (Sound) Data_readFromFile (file);
 	Melder_warningOn ();
 	if (! melderSoundFromFile) return 0;
-	if (! Thing_isa (melderSoundFromFile.get(), classSound)) { melderSoundFromFile.reset(); return 0; }
-	last = melderSoundFromFile.get();
-	Sound_play (melderSoundFromFile.get(), nullptr, nullptr);
+	if (! Thing_isa (melderSoundFromFile, classSound)) { forget (melderSoundFromFile); return 0; }
+	last = melderSoundFromFile;
+	Sound_play (melderSoundFromFile, NULL, NULL);
 	return 1;
 }
-static void playProc () {
+static void playProc (void) {
 	if (melderSound) {
-		Sound_play (melderSound.get(), nullptr, nullptr);
-		last = melderSound.get();
+		Sound_play (melderSound, NULL, NULL);
+		last = melderSound;
 	}
 }
-static void playReverseProc () {
+static void playReverseProc (void) {
 	/*if (melderSound) Sound_playReverse (melderSound);*/
 }
-static int publishPlayedProc () {
+static int publishPlayedProc (void) {
 	if (! last) return 0;
-	autoSound sound = Data_copy (last);
-	return Data_publish (sound.move());
+	return Melder_publish (Data_copy (last));
 }
 
 /***** buttons *****/
 
-void praat_uvafon_Sound_init ();
-void praat_uvafon_Sound_init () {
+void praat_uvafon_Sound_init (void);
+void praat_uvafon_Sound_init (void) {
 
 	Data_recognizeFileType (macSoundOrEmptyFileRecognizer);
 	Data_recognizeFileType (soundFileRecognizer);
@@ -2447,293 +2324,290 @@ void praat_uvafon_Sound_init () {
 	Melder_setPlayReverseProc (playReverseProc);
 	Melder_setPublishPlayedProc (publishPlayedProc);
 
-	praat_addMenuCommand (U"Objects", U"New", U"Record mono Sound...", nullptr, praat_ATTRACTIVE + 'R', DO_Sound_record_mono);
-	praat_addMenuCommand (U"Objects", U"New", U"Record stereo Sound...", nullptr, 0, DO_Sound_record_stereo);
-	praat_addMenuCommand (U"Objects", U"New", U"Record Sound (fixed time)...", nullptr, praat_HIDDEN, DO_Sound_recordFixedTime);
-	praat_addMenuCommand (U"Objects", U"New", U"Sound", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Sound...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_create);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Sound as pure tone...", nullptr, 1, DO_Sound_createAsPureTone);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Sound from formula...", nullptr, 1, DO_Sound_createFromFormula);
-		praat_addMenuCommand (U"Objects", U"New", U"-- create sound advanced --", nullptr, 1, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Sound as tone complex...", nullptr, 1, DO_Sound_createFromToneComplex);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Sound from tone complex...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_createFromToneComplex);
-
-	praat_addMenuCommand (U"Objects", U"Open", U"-- read sound --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Open", U"Open long sound file...", nullptr, 'L', DO_LongSound_open);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read two Sounds from stereo file...", nullptr, praat_HIDDEN, DO_Sound_readSeparateChannelsFromSoundFile);   // deprecated 2010
-	praat_addMenuCommand (U"Objects", U"Open", U"Read separate channels from sound file...", nullptr, 0, DO_Sound_readSeparateChannelsFromSoundFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read from special sound file", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"Open", U"Read Sound from raw Alaw file...", nullptr, 1, DO_Sound_readFromRawAlawFile);
-
-	praat_addMenuCommand (U"Objects", U"Goodies", U"Stop playing sound", nullptr, GuiMenu_ESCAPE, DO_stopPlayingSound);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"-- sound prefs --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"Sound recording preferences...", nullptr, 0, DO_SoundInputPrefs);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"Sound playing preferences...", nullptr, 0, DO_SoundOutputPrefs);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"LongSound preferences...", nullptr, 0, DO_LongSoundPrefs);
-#ifdef HAVE_PULSEAUDIO
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report sound server properties", U"Report system properties", 0, DO_Praat_reportSoundServerProperties);
-#endif
-
-	praat_addAction1 (classLongSound, 0, U"LongSound help", nullptr, 0, DO_LongSound_help);
-	praat_addAction1 (classLongSound, 1, U"View", nullptr, praat_ATTRACTIVE, DO_LongSound_view);
-	praat_addAction1 (classLongSound, 1, U"Open", nullptr, praat_HIDDEN, DO_LongSound_view);   // deprecated 2011
-	praat_addAction1 (classLongSound, 0, U"Play part...", nullptr, 0, DO_LongSound_playPart);
-	praat_addAction1 (classLongSound, 1, U"Query -", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Objects", U"New", U"Record mono Sound...", 0, praat_ATTRACTIVE + 'R', DO_Sound_record_mono);
+	praat_addMenuCommand (U"Objects", U"New", U"Record stereo Sound...", 0, 0, DO_Sound_record_stereo);
+	praat_addMenuCommand (U"Objects", U"New", U"Record Sound (fixed time)...", 0, praat_HIDDEN, DO_Sound_recordFixedTime);
+	praat_addMenuCommand (U"Objects", U"New", U"Sound", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Sound...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_create);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Sound as pure tone...", 0, 1, DO_Sound_createAsPureTone);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Sound from formula...", 0, 1, DO_Sound_createFromFormula);
+		praat_addMenuCommand (U"Objects", U"New", U"-- create sound advanced --", 0, 1, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Sound as tone complex...", 0, 1, DO_Sound_createFromToneComplex);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Sound from tone complex...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_createFromToneComplex);
+
+	praat_addMenuCommand (U"Objects", U"Open", U"-- read sound --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Open", U"Open long sound file...", 0, 'L', DO_LongSound_open);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read two Sounds from stereo file...", 0, praat_HIDDEN, DO_Sound_readSeparateChannelsFromSoundFile);   // deprecated 2010
+	praat_addMenuCommand (U"Objects", U"Open", U"Read separate channels from sound file...", 0, 0, DO_Sound_readSeparateChannelsFromSoundFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read from special sound file", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"Open", U"Read Sound from raw Alaw file...", 0, 1, DO_Sound_readFromRawAlawFile);
+
+	praat_addMenuCommand (U"Objects", U"Goodies", U"Stop playing sound", 0, GuiMenu_ESCAPE, DO_stopPlayingSound);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"-- sound prefs --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"Sound recording preferences...", 0, 0, DO_SoundInputPrefs);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"Sound playing preferences...", 0, 0, DO_SoundOutputPrefs);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"LongSound preferences...", 0, 0, DO_LongSoundPrefs);
+
+	praat_addAction1 (classLongSound, 0, U"LongSound help", 0, 0, DO_LongSound_help);
+	praat_addAction1 (classLongSound, 1, U"View", 0, praat_ATTRACTIVE, DO_LongSound_view);
+	praat_addAction1 (classLongSound, 1, U"Open", 0, praat_HIDDEN, DO_LongSound_view);   // deprecated 2011
+	praat_addAction1 (classLongSound, 0, U"Play part...", 0, 0, DO_LongSound_playPart);
+	praat_addAction1 (classLongSound, 1, U"Query -", 0, 0, 0);
 		praat_TimeFunction_query_init (classLongSound);
-		praat_addAction1 (classLongSound, 1, U"Sampling", nullptr, 1, nullptr);
-		praat_addAction1 (classLongSound, 1, U"Get number of samples", nullptr, 2, DO_LongSound_getNumberOfSamples);
-		praat_addAction1 (classLongSound, 1, U"Get sampling period", nullptr, 2, DO_LongSound_getSamplePeriod);
-							praat_addAction1 (classLongSound, 1, U"Get sample duration", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSamplePeriod);
-							praat_addAction1 (classLongSound, 1, U"Get sample period", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSamplePeriod);
-		praat_addAction1 (classLongSound, 1, U"Get sampling frequency", nullptr, 2, DO_LongSound_getSampleRate);
-							praat_addAction1 (classLongSound, 1, U"Get sample rate", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSampleRate);   // deprecated 2004
-		praat_addAction1 (classLongSound, 1, U"-- get time discretization --", nullptr, 2, nullptr);
-		praat_addAction1 (classLongSound, 1, U"Get time from sample number...", nullptr, 2, DO_LongSound_getTimeFromIndex);
-							praat_addAction1 (classLongSound, 1, U"Get time from index...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getTimeFromIndex);
-		praat_addAction1 (classLongSound, 1, U"Get sample number from time...", nullptr, 2, DO_LongSound_getIndexFromTime);
-							praat_addAction1 (classLongSound, 1, U"Get index from time...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getIndexFromTime);
-	praat_addAction1 (classLongSound, 0, U"Annotate -", nullptr, 0, nullptr);
-		praat_addAction1 (classLongSound, 0, U"Annotation tutorial", nullptr, 1, DO_AnnotationTutorial);
-		praat_addAction1 (classLongSound, 0, U"-- to text grid --", nullptr, 1, nullptr);
-		praat_addAction1 (classLongSound, 0, U"To TextGrid...", nullptr, 1, DO_LongSound_to_TextGrid);
-	praat_addAction1 (classLongSound, 0, U"Convert to Sound", nullptr, 0, nullptr);
-	praat_addAction1 (classLongSound, 0, U"Extract part...", nullptr, 0, DO_LongSound_extractPart);
-	praat_addAction1 (classLongSound, 0, U"Concatenate?", nullptr, 0, DO_LongSound_concatenate);
-	praat_addAction1 (classLongSound, 0, U"Save as WAV file...", nullptr, 0, DO_LongSound_writeToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Write to WAV file...", nullptr, praat_HIDDEN, DO_LongSound_writeToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Save as AIFF file...", nullptr, 0, DO_LongSound_writeToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Write to AIFF file...", nullptr, praat_HIDDEN, DO_LongSound_writeToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Save as AIFC file...", nullptr, 0, DO_LongSound_writeToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Write to AIFC file...", nullptr, praat_HIDDEN, DO_LongSound_writeToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Save as Next/Sun file...", nullptr, 0, DO_LongSound_writeToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Write to Next/Sun file...", nullptr, praat_HIDDEN, DO_LongSound_writeToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Save as NIST file...", nullptr, 0, DO_LongSound_writeToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Write to NIST file...", nullptr, praat_HIDDEN, DO_LongSound_writeToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Save as FLAC file...", nullptr, 0, DO_LongSound_writeToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Write to FLAC file...", nullptr, praat_HIDDEN, DO_LongSound_writeToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as WAV file...", nullptr, 0, DO_LongSound_writeLeftChannelToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to WAV file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as AIFF file...", nullptr, 0, DO_LongSound_writeLeftChannelToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to AIFF file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as AIFC file...", nullptr, 0, DO_LongSound_writeLeftChannelToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to AIFC file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as Next/Sun file...", nullptr, 0, DO_LongSound_writeLeftChannelToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to Next/Sun file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as NIST file...", nullptr, 0, DO_LongSound_writeLeftChannelToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to NIST file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Save left channel as FLAC file...", nullptr, 0, DO_LongSound_writeLeftChannelToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Write left channel to FLAC file...", nullptr, praat_HIDDEN, DO_LongSound_writeLeftChannelToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as WAV file...", nullptr, 0, DO_LongSound_writeRightChannelToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to WAV file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToWavFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as AIFF file...", nullptr, 0, DO_LongSound_writeRightChannelToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to AIFF file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToAiffFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as AIFC file...", nullptr, 0, DO_LongSound_writeRightChannelToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to AIFC file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToAifcFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as Next/Sun file...", nullptr, 0, DO_LongSound_writeRightChannelToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to Next/Sun file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToNextSunFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as NIST file...", nullptr, 0, DO_LongSound_writeRightChannelToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to NIST file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToNistFile);
-	praat_addAction1 (classLongSound, 0, U"Save right channel as FLAC file...", nullptr, 0, DO_LongSound_writeRightChannelToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Write right channel to FLAC file...", nullptr, praat_HIDDEN, DO_LongSound_writeRightChannelToFlacFile);
-	praat_addAction1 (classLongSound, 0, U"Save part as audio file...", nullptr, 0, DO_LongSound_writePartToAudioFile);
-	praat_addAction1 (classLongSound, 0, U"Write part to audio file...", nullptr, praat_HIDDEN, DO_LongSound_writePartToAudioFile);
-
-	praat_addAction1 (classSound, 0, U"Save as WAV file...", nullptr, 0, DO_Sound_writeToWavFile);
-	praat_addAction1 (classSound, 0, U"Write to WAV file...", nullptr, praat_HIDDEN, DO_Sound_writeToWavFile);   // hidden 2011
-	praat_addAction1 (classSound, 0, U"Save as AIFF file...", nullptr, 0, DO_Sound_writeToAiffFile);
-	praat_addAction1 (classSound, 0, U"Write to AIFF file...", nullptr, praat_HIDDEN, DO_Sound_writeToAiffFile);
-	praat_addAction1 (classSound, 0, U"Save as AIFC file...", nullptr, 0, DO_Sound_writeToAifcFile);
-	praat_addAction1 (classSound, 0, U"Write to AIFC file...", nullptr, praat_HIDDEN, DO_Sound_writeToAifcFile);
-	praat_addAction1 (classSound, 0, U"Save as Next/Sun file...", nullptr, 0, DO_Sound_writeToNextSunFile);
-	praat_addAction1 (classSound, 0, U"Write to Next/Sun file...", nullptr, praat_HIDDEN, DO_Sound_writeToNextSunFile);
-	praat_addAction1 (classSound, 0, U"Save as Sun audio file...", nullptr, praat_HIDDEN, DO_Sound_writeToSunAudioFile);
-	praat_addAction1 (classSound, 0, U"Write to Sun audio file...", nullptr, praat_HIDDEN, DO_Sound_writeToSunAudioFile);
-	praat_addAction1 (classSound, 0, U"Save as NIST file...", nullptr, 0, DO_Sound_writeToNistFile);
-	praat_addAction1 (classSound, 0, U"Write to NIST file...", nullptr, praat_HIDDEN, DO_Sound_writeToNistFile);
-	praat_addAction1 (classSound, 0, U"Save as FLAC file...", nullptr, 0, DO_Sound_writeToFlacFile);
-	praat_addAction1 (classSound, 0, U"Write to FLAC file...", nullptr, praat_HIDDEN, DO_Sound_writeToFlacFile);
-	praat_addAction1 (classSound, 1, U"Save as Kay sound file...", nullptr, 0, DO_Sound_writeToKayFile);
-	praat_addAction1 (classSound, 1, U"Write to Kay sound file...", nullptr, praat_HIDDEN, DO_Sound_writeToKayFile);
-	praat_addAction1 (classSound, 1, U"Save as Sesam file...", nullptr, praat_HIDDEN, DO_Sound_writeToSesamFile);
-	praat_addAction1 (classSound, 1, U"Write to Sesam file...", nullptr, praat_HIDDEN, DO_Sound_writeToSesamFile);
-	praat_addAction1 (classSound, 0, U"Save as 24-bit WAV file...", nullptr, 0, DO_Sound_saveAs24BitWavFile);
-	praat_addAction1 (classSound, 0, U"Save as 32-bit WAV file...", nullptr, 0, DO_Sound_saveAs32BitWavFile);
-	praat_addAction1 (classSound, 2, U"Write to stereo WAV file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoWavFile);   // deprecated 2007
-	praat_addAction1 (classSound, 2, U"Write to stereo AIFF file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoAiffFile);   // deprecated 2007
-	praat_addAction1 (classSound, 2, U"Write to stereo AIFC file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoAifcFile);   // deprecated 2007
-	praat_addAction1 (classSound, 2, U"Write to stereo Next/Sun file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoNextSunFile);   // deprecated 2007
-	praat_addAction1 (classSound, 2, U"Write to stereo NIST file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoNistFile);   // deprecated 2007
-	praat_addAction1 (classSound, 2, U"Write to stereo FLAC file...", nullptr, praat_HIDDEN, DO_Sound_writeToStereoFlacFile);
-	//praat_addAction1 (classSound, 1, U"Save as raw sound file", nullptr, 0, nullptr);
-	praat_addAction1 (classSound, 1, U"Save as raw 8-bit signed file...", nullptr, 0, DO_Sound_saveAsRaw8bitSignedFile);
-	praat_addAction1 (classSound, 1, U"Write to raw 8-bit signed file...", nullptr, praat_HIDDEN, DO_Sound_saveAsRaw8bitSignedFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 8-bit unsigned file...", nullptr, 0, DO_Sound_saveAsRaw8bitUnsignedFile);
-	praat_addAction1 (classSound, 1, U"Write to raw 8-bit unsigned file...", nullptr, praat_HIDDEN, DO_Sound_saveAsRaw8bitUnsignedFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 16-bit big-endian file...", nullptr, 0, DO_Sound_saveAsRaw16bitBigEndianFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 16-bit little-endian file...", nullptr, 0, DO_Sound_saveAsRaw16bitLittleEndianFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 24-bit big-endian file...", nullptr, 0, DO_Sound_saveAsRaw24bitBigEndianFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 24-bit little-endian file...", nullptr, 0, DO_Sound_saveAsRaw24bitLittleEndianFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 32-bit big-endian file...", nullptr, 0, DO_Sound_saveAsRaw32bitBigEndianFile);
-	praat_addAction1 (classSound, 1, U"Save as raw 32-bit little-endian file...", nullptr, 0, DO_Sound_saveAsRaw32bitLittleEndianFile);
-	praat_addAction1 (classSound, 0, U"Sound help", nullptr, 0, DO_Sound_help);
-	praat_addAction1 (classSound, 1, U"Edit", nullptr, praat_HIDDEN, DO_Sound_edit);   // deprecated 2011
-	praat_addAction1 (classSound, 1, U"Open", nullptr, praat_HIDDEN, DO_Sound_edit);   // deprecated 2011
+		praat_addAction1 (classLongSound, 1, U"Sampling", 0, 1, 0);
+		praat_addAction1 (classLongSound, 1, U"Get number of samples", 0, 2, DO_LongSound_getNumberOfSamples);
+		praat_addAction1 (classLongSound, 1, U"Get sampling period", 0, 2, DO_LongSound_getSamplePeriod);
+							praat_addAction1 (classLongSound, 1, U"Get sample duration", 0, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSamplePeriod);
+							praat_addAction1 (classLongSound, 1, U"Get sample period", 0, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSamplePeriod);
+		praat_addAction1 (classLongSound, 1, U"Get sampling frequency", 0, 2, DO_LongSound_getSampleRate);
+							praat_addAction1 (classLongSound, 1, U"Get sample rate", 0, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getSampleRate);   // deprecated 2004
+		praat_addAction1 (classLongSound, 1, U"-- get time discretization --", 0, 2, 0);
+		praat_addAction1 (classLongSound, 1, U"Get time from sample number...", 0, 2, DO_LongSound_getTimeFromIndex);
+							praat_addAction1 (classLongSound, 1, U"Get time from index...", 0, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getTimeFromIndex);
+		praat_addAction1 (classLongSound, 1, U"Get sample number from time...", 0, 2, DO_LongSound_getIndexFromTime);
+							praat_addAction1 (classLongSound, 1, U"Get index from time...", 0, praat_HIDDEN + praat_DEPTH_2, DO_LongSound_getIndexFromTime);
+	praat_addAction1 (classLongSound, 0, U"Annotate -", 0, 0, 0);
+		praat_addAction1 (classLongSound, 0, U"Annotation tutorial", 0, 1, DO_AnnotationTutorial);
+		praat_addAction1 (classLongSound, 0, U"-- to text grid --", 0, 1, 0);
+		praat_addAction1 (classLongSound, 0, U"To TextGrid...", 0, 1, DO_LongSound_to_TextGrid);
+	praat_addAction1 (classLongSound, 0, U"Convert to Sound", 0, 0, 0);
+	praat_addAction1 (classLongSound, 0, U"Extract part...", 0, 0, DO_LongSound_extractPart);
+	praat_addAction1 (classLongSound, 0, U"Concatenate?", 0, 0, DO_LongSound_concatenate);
+	praat_addAction1 (classLongSound, 0, U"Save as WAV file...", 0, 0, DO_LongSound_writeToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Write to WAV file...", 0, praat_HIDDEN, DO_LongSound_writeToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Save as AIFF file...", 0, 0, DO_LongSound_writeToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Write to AIFF file...", 0, praat_HIDDEN, DO_LongSound_writeToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Save as AIFC file...", 0, 0, DO_LongSound_writeToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Write to AIFC file...", 0, praat_HIDDEN, DO_LongSound_writeToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Save as Next/Sun file...", 0, 0, DO_LongSound_writeToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Write to Next/Sun file...", 0, praat_HIDDEN, DO_LongSound_writeToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Save as NIST file...", 0, 0, DO_LongSound_writeToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Write to NIST file...", 0, praat_HIDDEN, DO_LongSound_writeToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Save as FLAC file...", 0, 0, DO_LongSound_writeToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Write to FLAC file...", 0, praat_HIDDEN, DO_LongSound_writeToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as WAV file...", 0, 0, DO_LongSound_writeLeftChannelToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to WAV file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as AIFF file...", 0, 0, DO_LongSound_writeLeftChannelToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to AIFF file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as AIFC file...", 0, 0, DO_LongSound_writeLeftChannelToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to AIFC file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as Next/Sun file...", 0, 0, DO_LongSound_writeLeftChannelToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to Next/Sun file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as NIST file...", 0, 0, DO_LongSound_writeLeftChannelToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to NIST file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Save left channel as FLAC file...", 0, 0, DO_LongSound_writeLeftChannelToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Write left channel to FLAC file...", 0, praat_HIDDEN, DO_LongSound_writeLeftChannelToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as WAV file...", 0, 0, DO_LongSound_writeRightChannelToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to WAV file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToWavFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as AIFF file...", 0, 0, DO_LongSound_writeRightChannelToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to AIFF file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToAiffFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as AIFC file...", 0, 0, DO_LongSound_writeRightChannelToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to AIFC file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToAifcFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as Next/Sun file...", 0, 0, DO_LongSound_writeRightChannelToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to Next/Sun file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToNextSunFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as NIST file...", 0, 0, DO_LongSound_writeRightChannelToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to NIST file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToNistFile);
+	praat_addAction1 (classLongSound, 0, U"Save right channel as FLAC file...", 0, 0, DO_LongSound_writeRightChannelToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Write right channel to FLAC file...", 0, praat_HIDDEN, DO_LongSound_writeRightChannelToFlacFile);
+	praat_addAction1 (classLongSound, 0, U"Save part as audio file...", 0, 0, DO_LongSound_writePartToAudioFile);
+	praat_addAction1 (classLongSound, 0, U"Write part to audio file...", 0, praat_HIDDEN, DO_LongSound_writePartToAudioFile);
+
+	praat_addAction1 (classSound, 0, U"Save as WAV file...", 0, 0, DO_Sound_writeToWavFile);
+	praat_addAction1 (classSound, 0, U"Write to WAV file...", 0, praat_HIDDEN, DO_Sound_writeToWavFile);   // hidden 2011
+	praat_addAction1 (classSound, 0, U"Save as AIFF file...", 0, 0, DO_Sound_writeToAiffFile);
+	praat_addAction1 (classSound, 0, U"Write to AIFF file...", 0, praat_HIDDEN, DO_Sound_writeToAiffFile);
+	praat_addAction1 (classSound, 0, U"Save as AIFC file...", 0, 0, DO_Sound_writeToAifcFile);
+	praat_addAction1 (classSound, 0, U"Write to AIFC file...", 0, praat_HIDDEN, DO_Sound_writeToAifcFile);
+	praat_addAction1 (classSound, 0, U"Save as Next/Sun file...", 0, 0, DO_Sound_writeToNextSunFile);
+	praat_addAction1 (classSound, 0, U"Write to Next/Sun file...", 0, praat_HIDDEN, DO_Sound_writeToNextSunFile);
+	praat_addAction1 (classSound, 0, U"Save as Sun audio file...", 0, praat_HIDDEN, DO_Sound_writeToSunAudioFile);
+	praat_addAction1 (classSound, 0, U"Write to Sun audio file...", 0, praat_HIDDEN, DO_Sound_writeToSunAudioFile);
+	praat_addAction1 (classSound, 0, U"Save as NIST file...", 0, 0, DO_Sound_writeToNistFile);
+	praat_addAction1 (classSound, 0, U"Write to NIST file...", 0, praat_HIDDEN, DO_Sound_writeToNistFile);
+	praat_addAction1 (classSound, 0, U"Save as FLAC file...", 0, 0, DO_Sound_writeToFlacFile);
+	praat_addAction1 (classSound, 0, U"Write to FLAC file...", 0, praat_HIDDEN, DO_Sound_writeToFlacFile);
+	praat_addAction1 (classSound, 1, U"Save as Kay sound file...", 0, 0, DO_Sound_writeToKayFile);
+	praat_addAction1 (classSound, 1, U"Write to Kay sound file...", 0, praat_HIDDEN, DO_Sound_writeToKayFile);
+	praat_addAction1 (classSound, 1, U"Save as Sesam file...", 0, praat_HIDDEN, DO_Sound_writeToSesamFile);
+	praat_addAction1 (classSound, 1, U"Write to Sesam file...", 0, praat_HIDDEN, DO_Sound_writeToSesamFile);
+	praat_addAction1 (classSound, 0, U"Save as 24-bit WAV file...", 0, 0, DO_Sound_saveAs24BitWavFile);
+	praat_addAction1 (classSound, 0, U"Save as 32-bit WAV file...", 0, 0, DO_Sound_saveAs32BitWavFile);
+	praat_addAction1 (classSound, 2, U"Write to stereo WAV file...", 0, praat_HIDDEN, DO_Sound_writeToStereoWavFile);   // deprecated 2007
+	praat_addAction1 (classSound, 2, U"Write to stereo AIFF file...", 0, praat_HIDDEN, DO_Sound_writeToStereoAiffFile);   // deprecated 2007
+	praat_addAction1 (classSound, 2, U"Write to stereo AIFC file...", 0, praat_HIDDEN, DO_Sound_writeToStereoAifcFile);   // deprecated 2007
+	praat_addAction1 (classSound, 2, U"Write to stereo Next/Sun file...", 0, praat_HIDDEN, DO_Sound_writeToStereoNextSunFile);   // deprecated 2007
+	praat_addAction1 (classSound, 2, U"Write to stereo NIST file...", 0, praat_HIDDEN, DO_Sound_writeToStereoNistFile);   // deprecated 2007
+	praat_addAction1 (classSound, 2, U"Write to stereo FLAC file...", 0, praat_HIDDEN, DO_Sound_writeToStereoFlacFile);
+	//praat_addAction1 (classSound, 1, U"Save as raw sound file", 0, 0, 0);
+	praat_addAction1 (classSound, 1, U"Save as raw 8-bit signed file...", 0, 0, DO_Sound_saveAsRaw8bitSignedFile);
+	praat_addAction1 (classSound, 1, U"Write to raw 8-bit signed file...", 0, praat_HIDDEN, DO_Sound_saveAsRaw8bitSignedFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 8-bit unsigned file...", 0, 0, DO_Sound_saveAsRaw8bitUnsignedFile);
+	praat_addAction1 (classSound, 1, U"Write to raw 8-bit unsigned file...", 0, praat_HIDDEN, DO_Sound_saveAsRaw8bitUnsignedFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 16-bit big-endian file...", 0, 0, DO_Sound_saveAsRaw16bitBigEndianFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 16-bit little-endian file...", 0, 0, DO_Sound_saveAsRaw16bitLittleEndianFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 24-bit big-endian file...", 0, 0, DO_Sound_saveAsRaw24bitBigEndianFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 24-bit little-endian file...", 0, 0, DO_Sound_saveAsRaw24bitLittleEndianFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 32-bit big-endian file...", 0, 0, DO_Sound_saveAsRaw32bitBigEndianFile);
+	praat_addAction1 (classSound, 1, U"Save as raw 32-bit little-endian file...", 0, 0, DO_Sound_saveAsRaw32bitLittleEndianFile);
+	praat_addAction1 (classSound, 0, U"Sound help", 0, 0, DO_Sound_help);
+	praat_addAction1 (classSound, 1, U"Edit", 0, praat_HIDDEN, DO_Sound_edit);   // deprecated 2011
+	praat_addAction1 (classSound, 1, U"Open", 0, praat_HIDDEN, DO_Sound_edit);   // deprecated 2011
 	praat_addAction1 (classSound, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Sound_edit);
-	praat_addAction1 (classSound, 0, U"Play", nullptr, 0, DO_Sound_play);
-	praat_addAction1 (classSound, 1, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"Draw...", nullptr, 1, DO_Sound_draw);
-	praat_addAction1 (classSound, 1, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classSound, 0, U"Play", 0, 0, DO_Sound_play);
+	praat_addAction1 (classSound, 1, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"Draw...", 0, 1, DO_Sound_draw);
+	praat_addAction1 (classSound, 1, U"Query -", 0, 0, 0);
 		praat_TimeFunction_query_init (classSound);
-		praat_addAction1 (classSound, 1, U"Get number of channels", nullptr, 1, DO_Sound_getNumberOfChannels);
-		praat_addAction1 (classSound, 1, U"Query time sampling", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get number of samples", nullptr, 2, DO_Sound_getNumberOfSamples);
-		praat_addAction1 (classSound, 1, U"Get sampling period", nullptr, 2, DO_Sound_getSamplePeriod);
-							praat_addAction1 (classSound, 1, U"Get sample duration", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSamplePeriod);
-							praat_addAction1 (classSound, 1, U"Get sample period", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSamplePeriod);
-		praat_addAction1 (classSound, 1, U"Get sampling frequency", nullptr, 2, DO_Sound_getSampleRate);
-							praat_addAction1 (classSound, 1, U"Get sample rate", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSampleRate);   // deprecated 2004
-		praat_addAction1 (classSound, 1, U"-- get time discretization --", nullptr, 2, nullptr);
-		praat_addAction1 (classSound, 1, U"Get time from sample number...", nullptr, 2, DO_Sound_getTimeFromIndex);
-							praat_addAction1 (classSound, 1, U"Get time from index...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getTimeFromIndex);
-		praat_addAction1 (classSound, 1, U"Get sample number from time...", nullptr, 2, DO_Sound_getIndexFromTime);
-							praat_addAction1 (classSound, 1, U"Get index from time...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getIndexFromTime);
-		praat_addAction1 (classSound, 1, U"-- get content --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get value at time...", nullptr, 1, DO_Sound_getValueAtTime);
-		praat_addAction1 (classSound, 1, U"Get value at sample number...", nullptr, 1, DO_Sound_getValueAtIndex);
-							praat_addAction1 (classSound, 1, U"Get value at index...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_getValueAtIndex);
-		praat_addAction1 (classSound, 1, U"-- get shape --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get minimum...", nullptr, 1, DO_Sound_getMinimum);
-		praat_addAction1 (classSound, 1, U"Get time of minimum...", nullptr, 1, DO_Sound_getTimeOfMinimum);
-		praat_addAction1 (classSound, 1, U"Get maximum...", nullptr, 1, DO_Sound_getMaximum);
-		praat_addAction1 (classSound, 1, U"Get time of maximum...", nullptr, 1, DO_Sound_getTimeOfMaximum);
-		praat_addAction1 (classSound, 1, U"Get absolute extremum...", nullptr, 1, DO_Sound_getAbsoluteExtremum);
-		praat_addAction1 (classSound, 1, U"Get nearest zero crossing...", nullptr, 1, DO_Sound_getNearestZeroCrossing);
-		praat_addAction1 (classSound, 1, U"-- get statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get mean...", nullptr, 1, DO_Sound_getMean);
-		praat_addAction1 (classSound, 1, U"Get root-mean-square...", nullptr, 1, DO_Sound_getRootMeanSquare);
-		praat_addAction1 (classSound, 1, U"Get standard deviation...", nullptr, 1, DO_Sound_getStandardDeviation);
-		praat_addAction1 (classSound, 1, U"-- get energy --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get energy...", nullptr, 1, DO_Sound_getEnergy);
-		praat_addAction1 (classSound, 1, U"Get power...", nullptr, 1, DO_Sound_getPower);
-		praat_addAction1 (classSound, 1, U"-- get energy in air --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 1, U"Get energy in air", nullptr, 1, DO_Sound_getEnergyInAir);
-		praat_addAction1 (classSound, 1, U"Get power in air", nullptr, 1, DO_Sound_getPowerInAir);
-		praat_addAction1 (classSound, 1, U"Get intensity (dB)", nullptr, 1, DO_Sound_getIntensity_dB);
-	praat_addAction1 (classSound, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classSound, 1, U"Get number of channels", 0, 1, DO_Sound_getNumberOfChannels);
+		praat_addAction1 (classSound, 1, U"Query time sampling", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get number of samples", 0, 2, DO_Sound_getNumberOfSamples);
+		praat_addAction1 (classSound, 1, U"Get sampling period", 0, 2, DO_Sound_getSamplePeriod);
+							praat_addAction1 (classSound, 1, U"Get sample duration", 0, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSamplePeriod);
+							praat_addAction1 (classSound, 1, U"Get sample period", 0, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSamplePeriod);
+		praat_addAction1 (classSound, 1, U"Get sampling frequency", 0, 2, DO_Sound_getSampleRate);
+							praat_addAction1 (classSound, 1, U"Get sample rate", 0, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getSampleRate);   // deprecated 2004
+		praat_addAction1 (classSound, 1, U"-- get time discretization --", 0, 2, 0);
+		praat_addAction1 (classSound, 1, U"Get time from sample number...", 0, 2, DO_Sound_getTimeFromIndex);
+							praat_addAction1 (classSound, 1, U"Get time from index...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getTimeFromIndex);
+		praat_addAction1 (classSound, 1, U"Get sample number from time...", 0, 2, DO_Sound_getIndexFromTime);
+							praat_addAction1 (classSound, 1, U"Get index from time...", 0, praat_HIDDEN + praat_DEPTH_2, DO_Sound_getIndexFromTime);
+		praat_addAction1 (classSound, 1, U"-- get content --", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get value at time...", 0, 1, DO_Sound_getValueAtTime);
+		praat_addAction1 (classSound, 1, U"Get value at sample number...", 0, 1, DO_Sound_getValueAtIndex);
+							praat_addAction1 (classSound, 1, U"Get value at index...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_getValueAtIndex);
+		praat_addAction1 (classSound, 1, U"-- get shape --", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get minimum...", 0, 1, DO_Sound_getMinimum);
+		praat_addAction1 (classSound, 1, U"Get time of minimum...", 0, 1, DO_Sound_getTimeOfMinimum);
+		praat_addAction1 (classSound, 1, U"Get maximum...", 0, 1, DO_Sound_getMaximum);
+		praat_addAction1 (classSound, 1, U"Get time of maximum...", 0, 1, DO_Sound_getTimeOfMaximum);
+		praat_addAction1 (classSound, 1, U"Get absolute extremum...", 0, 1, DO_Sound_getAbsoluteExtremum);
+		praat_addAction1 (classSound, 1, U"Get nearest zero crossing...", 0, 1, DO_Sound_getNearestZeroCrossing);
+		praat_addAction1 (classSound, 1, U"-- get statistics --", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get mean...", 0, 1, DO_Sound_getMean);
+		praat_addAction1 (classSound, 1, U"Get root-mean-square...", 0, 1, DO_Sound_getRootMeanSquare);
+		praat_addAction1 (classSound, 1, U"Get standard deviation...", 0, 1, DO_Sound_getStandardDeviation);
+		praat_addAction1 (classSound, 1, U"-- get energy --", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get energy...", 0, 1, DO_Sound_getEnergy);
+		praat_addAction1 (classSound, 1, U"Get power...", 0, 1, DO_Sound_getPower);
+		praat_addAction1 (classSound, 1, U"-- get energy in air --", 0, 1, 0);
+		praat_addAction1 (classSound, 1, U"Get energy in air", 0, 1, DO_Sound_getEnergyInAir);
+		praat_addAction1 (classSound, 1, U"Get power in air", 0, 1, DO_Sound_getPowerInAir);
+		praat_addAction1 (classSound, 1, U"Get intensity (dB)", 0, 1, DO_Sound_getIntensity_dB);
+	praat_addAction1 (classSound, 0, U"Modify -", 0, 0, 0);
 		praat_TimeFunction_modify_init (classSound);
-		praat_addAction1 (classSound, 0, U"-- modify generic --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Reverse", nullptr, 1, DO_Sound_reverse);
-		praat_addAction1 (classSound, 0, U"Formula...", nullptr, 1, DO_Sound_formula);
-		praat_addAction1 (classSound, 0, U"Formula (part)...", nullptr, 1, DO_Sound_formula_part);
-		praat_addAction1 (classSound, 0, U"-- add & mul --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Add...", nullptr, 1, DO_Sound_add);
-		praat_addAction1 (classSound, 0, U"Subtract mean", nullptr, 1, DO_Sound_subtractMean);
-		praat_addAction1 (classSound, 0, U"Multiply...", nullptr, 1, DO_Sound_multiply);
-		praat_addAction1 (classSound, 0, U"Multiply by window...", nullptr, 1, DO_Sound_multiplyByWindow);
-		praat_addAction1 (classSound, 0, U"Scale peak...", nullptr, 1, DO_Sound_scalePeak);
-		praat_addAction1 (classSound, 0, U"Scale...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_scalePeak);
-		praat_addAction1 (classSound, 0, U"Scale intensity...", nullptr, 1, DO_Sound_scaleIntensity);
-		praat_addAction1 (classSound, 0, U"-- set --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Set value at sample number...", nullptr, 1, DO_Sound_setValueAtIndex);
-							praat_addAction1 (classSound, 0, U"Set value at index...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_setValueAtIndex);
-		praat_addAction1 (classSound, 0, U"Set part to zero...", nullptr, 1, DO_Sound_setPartToZero);
-		praat_addAction1 (classSound, 0, U"-- modify hack --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Override sampling frequency...", nullptr, 1, DO_Sound_overrideSamplingFrequency);
-							praat_addAction1 (classSound, 0, U"Override sample rate...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_overrideSamplingFrequency);
-		praat_addAction1 (classSound, 0, U"-- in-line filters --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"In-line filters", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Filter with one formant (in-line)...", nullptr, 2, DO_Sound_filterWithOneFormantInline);
-		praat_addAction1 (classSound, 0, U"Pre-emphasize (in-line)...", nullptr, 2, DO_Sound_preemphasizeInline);
-		praat_addAction1 (classSound, 0, U"De-emphasize (in-line)...", nullptr, 2, DO_Sound_deemphasizeInline);
-	praat_addAction1 (classSound, 0, U"Annotate -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"Annotation tutorial", nullptr, 1, DO_AnnotationTutorial);
-		praat_addAction1 (classSound, 0, U"-- to text grid --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To TextGrid...", nullptr, 1, DO_Sound_to_TextGrid);
-		praat_addAction1 (classSound, 0, U"To TextTier", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_TextTier);
-		praat_addAction1 (classSound, 0, U"To IntervalTier", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_IntervalTier);
-	praat_addAction1 (classSound, 0, U"Analyse periodicity -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"To Pitch...", nullptr, 1, DO_Sound_to_Pitch);
-		praat_addAction1 (classSound, 0, U"To Pitch (ac)...", nullptr, 1, DO_Sound_to_Pitch_ac);
-		praat_addAction1 (classSound, 0, U"To Pitch (cc)...", nullptr, 1, DO_Sound_to_Pitch_cc);
-		praat_addAction1 (classSound, 0, U"To PointProcess (periodic, cc)...", nullptr, 1, DO_Sound_to_PointProcess_periodic_cc);
-		praat_addAction1 (classSound, 0, U"To PointProcess (periodic, peaks)...", nullptr, 1, DO_Sound_to_PointProcess_periodic_peaks);
-		praat_addAction1 (classSound, 0, U"-- points --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To PointProcess (extrema)...", nullptr, 1, DO_Sound_to_PointProcess_extrema);
-		praat_addAction1 (classSound, 0, U"To PointProcess (zeroes)...", nullptr, 1, DO_Sound_to_PointProcess_zeroes);
-		praat_addAction1 (classSound, 0, U"-- hnr --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To Harmonicity (cc)...", nullptr, 1, DO_Sound_to_Harmonicity_cc);
-		praat_addAction1 (classSound, 0, U"To Harmonicity (ac)...", nullptr, 1, DO_Sound_to_Harmonicity_ac);
-		praat_addAction1 (classSound, 0, U"To Harmonicity (gne)...", nullptr, 1, DO_Sound_to_Harmonicity_gne);
-		praat_addAction1 (classSound, 0, U"-- autocorrelation --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Autocorrelate...", nullptr, 1, DO_Sound_autoCorrelate);
-	praat_addAction1 (classSound, 0, U"Analyse spectrum -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"To Spectrum...", nullptr, 1, DO_Sound_to_Spectrum);
-							praat_addAction1 (classSound, 0, U"To Spectrum (fft)", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_fft);
-							praat_addAction1 (classSound, 0, U"To Spectrum", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_fft);
-							praat_addAction1 (classSound, 0, U"To Spectrum (dft)", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_dft);
-		praat_addAction1 (classSound, 0, U"To Ltas...", nullptr, 1, DO_Sound_to_Ltas);
-		praat_addAction1 (classSound, 0, U"To Ltas (pitch-corrected)...", nullptr, 1, DO_Sound_to_Ltas_pitchCorrected);
-		praat_addAction1 (classSound, 0, U"-- spectrotemporal --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To Spectrogram...", nullptr, 1, DO_Sound_to_Spectrogram);
-		praat_addAction1 (classSound, 0, U"To Cochleagram...", nullptr, 1, DO_Sound_to_Cochleagram);
-		praat_addAction1 (classSound, 0, U"To Cochleagram (edb)...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Cochleagram_edb);
-		praat_addAction1 (classSound, 0, U"-- formants --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To Formant (burg)...", nullptr, 1, DO_Sound_to_Formant_burg);
-		praat_addAction1 (classSound, 0, U"To Formant (hack)", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"To Formant (keep all)...", nullptr, 2, DO_Sound_to_Formant_keepAll);
-		praat_addAction1 (classSound, 0, U"To Formant (sl)...", nullptr, 2, DO_Sound_to_Formant_willems);
-	praat_addAction1 (classSound, 0, U"To Intensity...", nullptr, 0, DO_Sound_to_Intensity);
-	praat_addAction1 (classSound, 0, U"To IntensityTier...", nullptr, praat_HIDDEN, DO_Sound_to_IntensityTier);
-	praat_addAction1 (classSound, 0, U"Manipulate -", nullptr, 0, nullptr);
-	praat_addAction1 (classSound, 0, U"To Manipulation...", nullptr, 1, DO_Sound_to_Manipulation);
-	praat_addAction1 (classSound, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"Convert to mono", nullptr, 1, DO_Sound_convertToMono);
-		praat_addAction1 (classSound, 0, U"Convert to stereo", nullptr, 1, DO_Sound_convertToStereo);
-		praat_addAction1 (classSound, 0, U"Extract all channels", nullptr, 1, DO_Sound_extractAllChannels);
-		praat_addAction1 (classSound, 0, U"Extract left channel", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_extractLeftChannel);   // deprecated 2010
-		praat_addAction1 (classSound, 0, U"Extract right channel", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sound_extractRightChannel);   // deprecated 2010
-		praat_addAction1 (classSound, 0, U"Extract one channel...", nullptr, 1, DO_Sound_extractChannel);
-		praat_addAction1 (classSound, 0, U"Extract part...", nullptr, 1, DO_Sound_extractPart);
-		praat_addAction1 (classSound, 0, U"Extract part for overlap...", nullptr, 1, DO_Sound_extractPartForOverlap);
-		praat_addAction1 (classSound, 0, U"Resample...", nullptr, 1, DO_Sound_resample);
-		praat_addAction1 (classSound, 0, U"-- enhance --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Lengthen (overlap-add)...", nullptr, 1, DO_Sound_lengthen_overlapAdd);
-		praat_addAction1 (classSound, 0, U"Lengthen (PSOLA)...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_lengthen_overlapAdd);
-		praat_addAction1 (classSound, 0, U"Deepen band modulation...", nullptr, 1, DO_Sound_deepenBandModulation);
-		praat_addAction1 (classSound, 0, U"-- cast --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Down to Matrix", nullptr, 1, DO_Sound_to_Matrix);
-	praat_addAction1 (classSound, 0, U"Filter -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"Filtering tutorial", nullptr, 1, DO_FilteringTutorial);
-		praat_addAction1 (classSound, 0, U"-- frequency-domain filter --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Filter (pass Hann band)...", nullptr, 1, DO_Sound_filter_passHannBand);
-		praat_addAction1 (classSound, 0, U"Filter (stop Hann band)...", nullptr, 1, DO_Sound_filter_stopHannBand);
-		praat_addAction1 (classSound, 0, U"Filter (formula)...", nullptr, 1, DO_Sound_filter_formula);
-		praat_addAction1 (classSound, 0, U"-- time-domain filter --", nullptr, 1, nullptr);
-		praat_addAction1 (classSound, 0, U"Filter (one formant)...", nullptr, 1, DO_Sound_filter_oneFormant);
-		praat_addAction1 (classSound, 0, U"Filter (pre-emphasis)...", nullptr, 1, DO_Sound_filter_preemphasis);
-		praat_addAction1 (classSound, 0, U"Filter (de-emphasis)...", nullptr, 1, DO_Sound_filter_deemphasis);
-	praat_addAction1 (classSound, 0, U"Combine -", nullptr, 0, nullptr);
-		praat_addAction1 (classSound, 0, U"Combine to stereo", nullptr, 1, DO_Sounds_combineToStereo);
-		praat_addAction1 (classSound, 0, U"Concatenate", nullptr, 1, DO_Sounds_concatenate);
-		praat_addAction1 (classSound, 0, U"Concatenate recoverably", nullptr, 1, DO_Sounds_concatenateRecoverably);
-		praat_addAction1 (classSound, 0, U"Concatenate with overlap...", nullptr, 1, DO_Sounds_concatenateWithOverlap);
-		praat_addAction1 (classSound, 2, U"Convolve", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Sounds_convolve_old);
-		praat_addAction1 (classSound, 2, U"Convolve...", nullptr, 1, DO_Sounds_convolve);
-		praat_addAction1 (classSound, 2, U"Cross-correlate...", nullptr, 1, DO_Sounds_crossCorrelate);
-		praat_addAction1 (classSound, 2, U"To ParamCurve", nullptr, 1, DO_Sounds_to_ParamCurve);
-
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as WAV file...", nullptr, 0, DO_LongSound_Sound_writeToWavFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to WAV file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToWavFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as AIFF file...", nullptr, 0, DO_LongSound_Sound_writeToAiffFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to AIFF file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToAiffFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as AIFC file...", nullptr, 0, DO_LongSound_Sound_writeToAifcFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to AIFC file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToAifcFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as NeXT/Sun file...", nullptr, 0, DO_LongSound_Sound_writeToNextSunFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to NeXT/Sun file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToNextSunFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as NIST file...", nullptr, 0, DO_LongSound_Sound_writeToNistFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to NIST file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToNistFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as FLAC file...", nullptr, 0, DO_LongSound_Sound_writeToFlacFile);
-	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to FLAC file...", nullptr, praat_HIDDEN, DO_LongSound_Sound_writeToFlacFile);
+		praat_addAction1 (classSound, 0, U"-- modify generic --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Reverse", 0, 1, DO_Sound_reverse);
+		praat_addAction1 (classSound, 0, U"Formula...", 0, 1, DO_Sound_formula);
+		praat_addAction1 (classSound, 0, U"Formula (part)...", 0, 1, DO_Sound_formula_part);
+		praat_addAction1 (classSound, 0, U"-- add & mul --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Add...", 0, 1, DO_Sound_add);
+		praat_addAction1 (classSound, 0, U"Subtract mean", 0, 1, DO_Sound_subtractMean);
+		praat_addAction1 (classSound, 0, U"Multiply...", 0, 1, DO_Sound_multiply);
+		praat_addAction1 (classSound, 0, U"Multiply by window...", 0, 1, DO_Sound_multiplyByWindow);
+		praat_addAction1 (classSound, 0, U"Scale peak...", 0, 1, DO_Sound_scalePeak);
+		praat_addAction1 (classSound, 0, U"Scale...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_scalePeak);
+		praat_addAction1 (classSound, 0, U"Scale intensity...", 0, 1, DO_Sound_scaleIntensity);
+		praat_addAction1 (classSound, 0, U"-- set --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Set value at sample number...", 0, 1, DO_Sound_setValueAtIndex);
+							praat_addAction1 (classSound, 0, U"Set value at index...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_setValueAtIndex);
+		praat_addAction1 (classSound, 0, U"Set part to zero...", 0, 1, DO_Sound_setPartToZero);
+		praat_addAction1 (classSound, 0, U"-- modify hack --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Override sampling frequency...", 0, 1, DO_Sound_overrideSamplingFrequency);
+							praat_addAction1 (classSound, 0, U"Override sample rate...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_overrideSamplingFrequency);
+		praat_addAction1 (classSound, 0, U"-- in-line filters --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"In-line filters", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Filter with one formant (in-line)...", 0, 2, DO_Sound_filterWithOneFormantInline);
+		praat_addAction1 (classSound, 0, U"Pre-emphasize (in-line)...", 0, 2, DO_Sound_preemphasizeInline);
+		praat_addAction1 (classSound, 0, U"De-emphasize (in-line)...", 0, 2, DO_Sound_deemphasizeInline);
+	praat_addAction1 (classSound, 0, U"Annotate -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"Annotation tutorial", 0, 1, DO_AnnotationTutorial);
+		praat_addAction1 (classSound, 0, U"-- to text grid --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To TextGrid...", 0, 1, DO_Sound_to_TextGrid);
+		praat_addAction1 (classSound, 0, U"To TextTier", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_TextTier);
+		praat_addAction1 (classSound, 0, U"To IntervalTier", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_to_IntervalTier);
+	praat_addAction1 (classSound, 0, U"Analyse periodicity -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"To Pitch...", 0, 1, DO_Sound_to_Pitch);
+		praat_addAction1 (classSound, 0, U"To Pitch (ac)...", 0, 1, DO_Sound_to_Pitch_ac);
+		praat_addAction1 (classSound, 0, U"To Pitch (cc)...", 0, 1, DO_Sound_to_Pitch_cc);
+		praat_addAction1 (classSound, 0, U"To PointProcess (periodic, cc)...", 0, 1, DO_Sound_to_PointProcess_periodic_cc);
+		praat_addAction1 (classSound, 0, U"To PointProcess (periodic, peaks)...", 0, 1, DO_Sound_to_PointProcess_periodic_peaks);
+		praat_addAction1 (classSound, 0, U"-- points --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To PointProcess (extrema)...", 0, 1, DO_Sound_to_PointProcess_extrema);
+		praat_addAction1 (classSound, 0, U"To PointProcess (zeroes)...", 0, 1, DO_Sound_to_PointProcess_zeroes);
+		praat_addAction1 (classSound, 0, U"-- hnr --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To Harmonicity (cc)...", 0, 1, DO_Sound_to_Harmonicity_cc);
+		praat_addAction1 (classSound, 0, U"To Harmonicity (ac)...", 0, 1, DO_Sound_to_Harmonicity_ac);
+		praat_addAction1 (classSound, 0, U"To Harmonicity (gne)...", 0, 1, DO_Sound_to_Harmonicity_gne);
+		praat_addAction1 (classSound, 0, U"-- autocorrelation --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Autocorrelate...", 0, 1, DO_Sound_autoCorrelate);
+	praat_addAction1 (classSound, 0, U"Analyse spectrum -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"To Spectrum...", 0, 1, DO_Sound_to_Spectrum);
+							praat_addAction1 (classSound, 0, U"To Spectrum (fft)", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_fft);
+							praat_addAction1 (classSound, 0, U"To Spectrum", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_fft);
+							praat_addAction1 (classSound, 0, U"To Spectrum (dft)", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Spectrum_dft);
+		praat_addAction1 (classSound, 0, U"To Ltas...", 0, 1, DO_Sound_to_Ltas);
+		praat_addAction1 (classSound, 0, U"To Ltas (pitch-corrected)...", 0, 1, DO_Sound_to_Ltas_pitchCorrected);
+		praat_addAction1 (classSound, 0, U"-- spectrotemporal --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To Spectrogram...", 0, 1, DO_Sound_to_Spectrogram);
+		praat_addAction1 (classSound, 0, U"To Cochleagram...", 0, 1, DO_Sound_to_Cochleagram);
+		praat_addAction1 (classSound, 0, U"To Cochleagram (edb)...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_to_Cochleagram_edb);
+		praat_addAction1 (classSound, 0, U"-- formants --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To Formant (burg)...", 0, 1, DO_Sound_to_Formant_burg);
+		praat_addAction1 (classSound, 0, U"To Formant (hack)", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"To Formant (keep all)...", 0, 2, DO_Sound_to_Formant_keepAll);
+		praat_addAction1 (classSound, 0, U"To Formant (sl)...", 0, 2, DO_Sound_to_Formant_willems);
+	praat_addAction1 (classSound, 0, U"To Intensity...", 0, 0, DO_Sound_to_Intensity);
+	praat_addAction1 (classSound, 0, U"To IntensityTier...", 0, praat_HIDDEN, DO_Sound_to_IntensityTier);
+	praat_addAction1 (classSound, 0, U"Manipulate -", 0, 0, 0);
+	praat_addAction1 (classSound, 0, U"To Manipulation...", 0, 1, DO_Sound_to_Manipulation);
+	praat_addAction1 (classSound, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"Convert to mono", 0, 1, DO_Sound_convertToMono);
+		praat_addAction1 (classSound, 0, U"Convert to stereo", 0, 1, DO_Sound_convertToStereo);
+		praat_addAction1 (classSound, 0, U"Extract all channels", 0, 1, DO_Sound_extractAllChannels);
+		praat_addAction1 (classSound, 0, U"Extract left channel", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_extractLeftChannel);   // deprecated 2010
+		praat_addAction1 (classSound, 0, U"Extract right channel", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sound_extractRightChannel);   // deprecated 2010
+		praat_addAction1 (classSound, 0, U"Extract one channel...", 0, 1, DO_Sound_extractChannel);
+		praat_addAction1 (classSound, 0, U"Extract part...", 0, 1, DO_Sound_extractPart);
+		praat_addAction1 (classSound, 0, U"Extract part for overlap...", 0, 1, DO_Sound_extractPartForOverlap);
+		praat_addAction1 (classSound, 0, U"Resample...", 0, 1, DO_Sound_resample);
+		praat_addAction1 (classSound, 0, U"-- enhance --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Lengthen (overlap-add)...", 0, 1, DO_Sound_lengthen_overlapAdd);
+		praat_addAction1 (classSound, 0, U"Lengthen (PSOLA)...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Sound_lengthen_overlapAdd);
+		praat_addAction1 (classSound, 0, U"Deepen band modulation...", 0, 1, DO_Sound_deepenBandModulation);
+		praat_addAction1 (classSound, 0, U"-- cast --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Down to Matrix", 0, 1, DO_Sound_to_Matrix);
+	praat_addAction1 (classSound, 0, U"Filter -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"Filtering tutorial", 0, 1, DO_FilteringTutorial);
+		praat_addAction1 (classSound, 0, U"-- frequency-domain filter --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Filter (pass Hann band)...", 0, 1, DO_Sound_filter_passHannBand);
+		praat_addAction1 (classSound, 0, U"Filter (stop Hann band)...", 0, 1, DO_Sound_filter_stopHannBand);
+		praat_addAction1 (classSound, 0, U"Filter (formula)...", 0, 1, DO_Sound_filter_formula);
+		praat_addAction1 (classSound, 0, U"-- time-domain filter --", 0, 1, 0);
+		praat_addAction1 (classSound, 0, U"Filter (one formant)...", 0, 1, DO_Sound_filter_oneFormant);
+		praat_addAction1 (classSound, 0, U"Filter (pre-emphasis)...", 0, 1, DO_Sound_filter_preemphasis);
+		praat_addAction1 (classSound, 0, U"Filter (de-emphasis)...", 0, 1, DO_Sound_filter_deemphasis);
+	praat_addAction1 (classSound, 0, U"Combine -", 0, 0, 0);
+		praat_addAction1 (classSound, 0, U"Combine to stereo", 0, 1, DO_Sounds_combineToStereo);
+		praat_addAction1 (classSound, 0, U"Concatenate", 0, 1, DO_Sounds_concatenate);
+		praat_addAction1 (classSound, 0, U"Concatenate recoverably", 0, 1, DO_Sounds_concatenateRecoverably);
+		praat_addAction1 (classSound, 0, U"Concatenate with overlap...", 0, 1, DO_Sounds_concatenateWithOverlap);
+		praat_addAction1 (classSound, 2, U"Convolve", 0, praat_HIDDEN + praat_DEPTH_1, DO_Sounds_convolve_old);
+		praat_addAction1 (classSound, 2, U"Convolve...", 0, 1, DO_Sounds_convolve);
+		praat_addAction1 (classSound, 2, U"Cross-correlate...", 0, 1, DO_Sounds_crossCorrelate);
+		praat_addAction1 (classSound, 2, U"To ParamCurve", 0, 1, DO_Sounds_to_ParamCurve);
+
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as WAV file...", 0, 0, DO_LongSound_Sound_writeToWavFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to WAV file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToWavFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as AIFF file...", 0, 0, DO_LongSound_Sound_writeToAiffFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to AIFF file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToAiffFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as AIFC file...", 0, 0, DO_LongSound_Sound_writeToAifcFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to AIFC file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToAifcFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as NeXT/Sun file...", 0, 0, DO_LongSound_Sound_writeToNextSunFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to NeXT/Sun file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToNextSunFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as NIST file...", 0, 0, DO_LongSound_Sound_writeToNistFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to NIST file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToNistFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Save as FLAC file...", 0, 0, DO_LongSound_Sound_writeToFlacFile);
+	praat_addAction2 (classLongSound, 0, classSound, 0, U"Write to FLAC file...", 0, praat_HIDDEN, DO_LongSound_Sound_writeToFlacFile);
 }
 
 /* End of file praat_Sound.cpp */
diff --git a/fon/praat_TextGrid_init.cpp b/fon/praat_TextGrid_init.cpp
index 5313149..f85b2c4 100644
--- a/fon/praat_TextGrid_init.cpp
+++ b/fon/praat_TextGrid_init.cpp
@@ -1,6 +1,6 @@
 /* praat_TextGrid_init.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,9 +30,9 @@
 #undef iam
 #define iam iam_LOOP
 
-void praat_dia_timeRange (UiForm dia);
-void praat_get_timeRange (UiForm dia, double *tmin, double *tmax);
-int praat_get_frequencyRange (UiForm dia, double *fmin, double *fmax);
+void praat_dia_timeRange (Any dia);
+void praat_get_timeRange (Any dia, double *tmin, double *tmax);
+int praat_get_frequencyRange (Any dia, double *fmin, double *fmax);
 
 static const char32 *STRING_FROM_FREQUENCY_HZ = U"left Frequency range (Hz)";
 static const char32 *STRING_TO_FREQUENCY_HZ = U"right Frequency range (Hz)";
@@ -48,9 +48,9 @@ DIRECT2 (AnyTier_into_TextGrid) {
 	autoTextGrid grid = TextGrid_createWithoutTiers (1e30, -1e30);
 	LOOP {
 		iam (AnyTier);
-		TextGrid_addTier_copy (grid.get(), me);
+		TextGrid_addTier (grid.peek(), me);
 	}
-	praat_new (grid.move(), U"grid");
+	praat_new (grid.transfer(), U"grid");
 END2 }
 
 /***** INTERVALTIER *****/
@@ -62,7 +62,7 @@ DO
 	LOOP {
 		iam (IntervalTier);
 		autoTableOfReal thee = IntervalTier_downto_TableOfReal (me, GET_STRING (U"Label"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -70,7 +70,7 @@ DIRECT2 (IntervalTier_downto_TableOfReal_any) {
 	LOOP {
 		iam (IntervalTier);
 		autoTableOfReal thee = IntervalTier_downto_TableOfReal_any (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -81,7 +81,7 @@ DO
 	LOOP {
 		iam (IntervalTier);
 		autoPointProcess thee = IntervalTier_getCentrePoints (me, GET_STRING (U"Text"));
-		praat_new (thee.move(), GET_STRING (U"Text"));
+		praat_new (thee.transfer(), GET_STRING (U"Text"));
 	}
 END2 }
 
@@ -92,7 +92,7 @@ DO
 	LOOP {
 		iam (IntervalTier);
 		autoPointProcess thee = IntervalTier_getEndPoints (me, GET_STRING (U"Text"));
-		praat_new (thee.move(), GET_STRING (U"Text"));
+		praat_new (thee.transfer(), GET_STRING (U"Text"));
 	}
 END2 }
 
@@ -103,7 +103,7 @@ DO
 	LOOP {
 		iam (IntervalTier);
 		autoPointProcess thee = IntervalTier_getStartingPoints (me, GET_STRING (U"Text"));
-		praat_new (thee.move(), GET_STRING (U"Text"));
+		praat_new (thee.transfer(), GET_STRING (U"Text"));
 	}
 END2 }
 
@@ -124,43 +124,43 @@ FORM (IntervalTier_PointProcess_endToCentre, U"From end to centre", U"IntervalTi
 	REAL (U"Phase (0-1)", U"0.5")
 	OK2
 DO
-	IntervalTier tier = nullptr;
-	PointProcess point = nullptr;
+	IntervalTier tier = NULL;
+	PointProcess point = NULL;
 	LOOP {
 		if (CLASS == classIntervalTier) tier = (IntervalTier) OBJECT;
 		if (CLASS == classPointProcess) point = (PointProcess) OBJECT;
 	}
 	double phase = GET_REAL (U"Phase");
 	autoPointProcess thee = IntervalTier_PointProcess_endToCentre (tier, point, phase);
-	praat_new (thee.move(), tier -> name, U"_", point -> name, U"_", lround (100.0 * phase));
+	praat_new (thee.transfer(), tier -> name, U"_", point -> name, U"_", lround (100.0 * phase));
 END2 }
 
 FORM (IntervalTier_PointProcess_startToCentre, U"From start to centre", U"IntervalTier & PointProcess: Start to centre...") {
 	REAL (U"Phase (0-1)", U"0.5")
 	OK2
 DO
-	IntervalTier tier = nullptr;
-	PointProcess point = nullptr;
+	IntervalTier tier = NULL;
+	PointProcess point = NULL;
 	LOOP {
 		if (CLASS == classIntervalTier) tier = (IntervalTier) OBJECT;
 		if (CLASS == classPointProcess) point = (PointProcess) OBJECT;
 	}
 	double phase = GET_REAL (U"Phase");
 	autoPointProcess thee = IntervalTier_PointProcess_startToCentre (tier, point, phase);
-	praat_new (thee.move(), tier -> name, U"_", point -> name, U"_", lround (100.0 * phase));
+	praat_new (thee.transfer(), tier -> name, U"_", point -> name, U"_", lround (100.0 * phase));
 END2 }
 
 /***** LABEL (obsolete) *****/
 
 DIRECT2 (Label_Sound_to_TextGrid) {
-	Label label = nullptr;
-	Sound sound = nullptr;
+	Label label = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classLabel) label = (Label) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 	}
 	autoTextGrid thee = Label_Function_to_TextGrid (label, sound);
-	praat_new (thee.move(), sound -> name);
+	praat_new (thee.transfer(), sound -> name);
 END2 }
 
 DIRECT2 (info_Label_Sound_to_TextGrid) {
@@ -170,9 +170,9 @@ END2 }
 
 /***** PITCH & TEXTGRID *****/
 
-static void pr_TextGrid_Pitch_draw (UiForm dia, int speckle, int unit) {
-	TextGrid grid = nullptr;
-	Pitch pitch = nullptr;
+static void pr_TextGrid_Pitch_draw (Any dia, int speckle, int unit) {
+	TextGrid grid = NULL;
+	Pitch pitch = NULL;
 	int IOBJECT;
 	LOOP {
 		if (CLASS == classTextGrid) grid = (TextGrid) OBJECT;
@@ -187,80 +187,80 @@ static void pr_TextGrid_Pitch_draw (UiForm dia, int speckle, int unit) {
 		GET_INTEGER (U"Use text styles"), GET_INTEGER (U"Text alignment") - 1, GET_INTEGER (U"Garnish"), speckle, unit);
 }
 
-FORM (TextGrid_Pitch_draw, U"TextGrid & Pitch: Draw", nullptr) {
+FORM (TextGrid_Pitch_draw, U"TextGrid & Pitch: Draw", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_NO, kPitch_unit_HERTZ);
 END2 }
 
-FORM (TextGrid_Pitch_drawErb, U"TextGrid & Pitch: Draw erb", nullptr) {
+FORM (TextGrid_Pitch_drawErb, U"TextGrid & Pitch: Draw erb", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_NO, kPitch_unit_ERB);
 END2 }
 
-FORM (TextGrid_Pitch_drawLogarithmic, U"TextGrid & Pitch: Draw logarithmic", nullptr) {
+FORM (TextGrid_Pitch_drawLogarithmic, U"TextGrid & Pitch: Draw logarithmic", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_NO, kPitch_unit_HERTZ_LOGARITHMIC);
 END2 }
 
-FORM (TextGrid_Pitch_drawMel, U"TextGrid & Pitch: Draw mel", nullptr) {
+FORM (TextGrid_Pitch_drawMel, U"TextGrid & Pitch: Draw mel", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (mel)", U"0")
 	REAL (U"right Frequency range (mel)", U"500")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_NO, kPitch_unit_MEL);
 END2 }
 
-FORM (TextGrid_Pitch_drawSemitones, U"TextGrid & Pitch: Draw semitones", nullptr) {
+FORM (TextGrid_Pitch_drawSemitones, U"TextGrid & Pitch: Draw semitones", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	LABEL (U"", U"Range in semitones re 100 hertz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_NO, kPitch_unit_SEMITONES_100);
 END2 }
 
-static void pr_TextGrid_Pitch_drawSeparately (UiForm dia, int speckle, int unit) {
-	TextGrid grid = nullptr;
-	Pitch pitch = nullptr;
+static void pr_TextGrid_Pitch_drawSeparately (Any dia, int speckle, int unit) {
+	TextGrid grid = NULL;
+	Pitch pitch = NULL;
 	int IOBJECT;
 	LOOP {
 		if (CLASS == classTextGrid) grid = (TextGrid) OBJECT;
@@ -275,194 +275,194 @@ static void pr_TextGrid_Pitch_drawSeparately (UiForm dia, int speckle, int unit)
 		GET_INTEGER (U"Use text styles"), GET_INTEGER (U"Garnish"), speckle, unit);
 }
 
-FORM (TextGrid_Pitch_drawSeparately, U"TextGrid & Pitch: Draw separately", nullptr) {
+FORM (TextGrid_Pitch_drawSeparately, U"TextGrid & Pitch: Draw separately", 0) {
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	REAL (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_NO, kPitch_unit_HERTZ);
 END2 }
 
-FORM (TextGrid_Pitch_drawSeparatelyErb, U"TextGrid & Pitch: Draw separately erb", nullptr) {
+FORM (TextGrid_Pitch_drawSeparatelyErb, U"TextGrid & Pitch: Draw separately erb", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_NO, kPitch_unit_ERB);
 END2 }
 
-FORM (TextGrid_Pitch_drawSeparatelyLogarithmic, U"TextGrid & Pitch: Draw separately logarithmic", nullptr) {
+FORM (TextGrid_Pitch_drawSeparatelyLogarithmic, U"TextGrid & Pitch: Draw separately logarithmic", 0) {
 	praat_dia_timeRange (dia);
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_NO, kPitch_unit_HERTZ_LOGARITHMIC);
 END2 }
 
-FORM (TextGrid_Pitch_drawSeparatelyMel, U"TextGrid & Pitch: Draw separately mel", nullptr) {
+FORM (TextGrid_Pitch_drawSeparatelyMel, U"TextGrid & Pitch: Draw separately mel", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (mel)", U"0")
 	REAL (U"right Frequency range (mel)", U"500")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_NO, kPitch_unit_MEL);
 END2 }
 
-FORM (TextGrid_Pitch_drawSeparatelySemitones, U"TextGrid & Pitch: Draw separately semitones", nullptr) {
+FORM (TextGrid_Pitch_drawSeparatelySemitones, U"TextGrid & Pitch: Draw separately semitones", 0) {
 	praat_dia_timeRange (dia);
 	LABEL (U"", U"Range in semitones re 100 hertz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_NO, kPitch_unit_SEMITONES_100);
 END2 }
 
-FORM (TextGrid_Pitch_speckle, U"TextGrid & Pitch: Speckle", nullptr) {
+FORM (TextGrid_Pitch_speckle, U"TextGrid & Pitch: Speckle", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_YES, kPitch_unit_HERTZ);
 END2 }
 
-FORM (TextGrid_Pitch_speckleErb, U"TextGrid & Pitch: Speckle erb", nullptr) {
+FORM (TextGrid_Pitch_speckleErb, U"TextGrid & Pitch: Speckle erb", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_YES, kPitch_unit_ERB);
 END2 }
 
-FORM (TextGrid_Pitch_speckleLogarithmic, U"TextGrid & Pitch: Speckle logarithmic", nullptr) {
+FORM (TextGrid_Pitch_speckleLogarithmic, U"TextGrid & Pitch: Speckle logarithmic", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_YES, kPitch_unit_HERTZ_LOGARITHMIC);
 END2 }
 
-FORM (TextGrid_Pitch_speckleMel, U"TextGrid & Pitch: Speckle mel", nullptr) {
+FORM (TextGrid_Pitch_speckleMel, U"TextGrid & Pitch: Speckle mel", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (mel)", U"0")
 	REAL (U"right Frequency range (mel)", U"500")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_YES, kPitch_unit_MEL);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSemitones, U"TextGrid & Pitch: Speckle semitones", nullptr) {
+FORM (TextGrid_Pitch_speckleSemitones, U"TextGrid & Pitch: Speckle semitones", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
 	praat_dia_timeRange (dia);
 	LABEL (U"", U"Range in semitones re 100 hertz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
 	INTEGER (U"Font size (points)", U"18")
-	BOOLEAN (U"Use text styles", true)
+	BOOLEAN (U"Use text styles", 1)
 	OPTIONMENU (U"Text alignment", 2) OPTION (U"Left") OPTION (U"Centre") OPTION (U"Right")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_draw (dia, Pitch_speckle_YES, kPitch_unit_SEMITONES_100);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSeparately, U"TextGrid & Pitch: Speckle separately", nullptr) {
+FORM (TextGrid_Pitch_speckleSeparately, U"TextGrid & Pitch: Speckle separately", 0) {
 	praat_dia_timeRange (dia);
 	REAL (STRING_FROM_FREQUENCY_HZ, U"0.0")
 	REAL (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_YES, kPitch_unit_HERTZ);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSeparatelyErb, U"TextGrid & Pitch: Speckle separately erb", nullptr) {
+FORM (TextGrid_Pitch_speckleSeparatelyErb, U"TextGrid & Pitch: Speckle separately erb", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (ERB)", U"0")
 	REAL (U"right Frequency range (ERB)", U"10.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_YES, kPitch_unit_ERB);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSeparatelyLogarithmic, U"TextGrid & Pitch: Speckle separately logarithmic", nullptr) {
+FORM (TextGrid_Pitch_speckleSeparatelyLogarithmic, U"TextGrid & Pitch: Speckle separately logarithmic", 0) {
 	praat_dia_timeRange (dia);
 	POSITIVE (STRING_FROM_FREQUENCY_HZ, U"50.0")
 	POSITIVE (STRING_TO_FREQUENCY_HZ, U"500.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_YES, kPitch_unit_HERTZ_LOGARITHMIC);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSeparatelyMel, U"TextGrid & Pitch: Speckle separately mel", nullptr) {
+FORM (TextGrid_Pitch_speckleSeparatelyMel, U"TextGrid & Pitch: Speckle separately mel", 0) {
 	praat_dia_timeRange (dia);
 	REAL (U"left Frequency range (mel)", U"0")
 	REAL (U"right Frequency range (mel)", U"500")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_YES, kPitch_unit_MEL);
 END2 }
 
-FORM (TextGrid_Pitch_speckleSeparatelySemitones, U"TextGrid & Pitch: Speckle separately semitones", nullptr) {
+FORM (TextGrid_Pitch_speckleSeparatelySemitones, U"TextGrid & Pitch: Speckle separately semitones", 0) {
 	praat_dia_timeRange (dia);
 	LABEL (U"", U"Range in semitones re 100 hertz:")
 	REAL (U"left Frequency range (st)", U"-12.0")
 	REAL (U"right Frequency range (st)", U"30.0")
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	pr_TextGrid_Pitch_drawSeparately (dia, Pitch_speckle_YES, kPitch_unit_SEMITONES_100);
@@ -477,28 +477,28 @@ FORM (Pitch_TextTier_to_PitchTier, U"Pitch & TextTier to PitchTier", U"Pitch & T
 		RADIOBUTTON (U"Interpolate")
 	OK2
 DO
-	Pitch pitch = nullptr;
-	TextTier tier = nullptr;
+	Pitch pitch = NULL;
+	TextTier tier = NULL;
 	LOOP {
-		iam (Daata);
+		iam (Data);
 		if (CLASS == classPitch) pitch = (Pitch) me;
 		if (CLASS == classTextTier) tier = (TextTier) me;
 	}
 	autoPitchTier thee = Pitch_AnyTier_to_PitchTier (pitch, (AnyTier) tier, GET_INTEGER (U"Unvoiced strategy") - 1);
-	praat_new (thee.move(), pitch -> name);
+	praat_new (thee.transfer(), pitch -> name);
 END2 }
 
 /***** SOUND & TEXTGRID *****/
 
-FORM (TextGrid_Sound_draw, U"TextGrid & Sound: Draw...", nullptr) {
+FORM (TextGrid_Sound_draw, U"TextGrid & Sound: Draw...", 0) {
 	praat_dia_timeRange (dia);
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
@@ -509,84 +509,80 @@ DO
 		GET_INTEGER (U"Use text styles"), GET_INTEGER (U"Garnish"));
 END2 }
 
-FORM (TextGrid_Sound_extractAllIntervals, U"TextGrid & Sound: Extract all intervals", nullptr) {
+FORM (TextGrid_Sound_extractAllIntervals, U"TextGrid & Sound: Extract all intervals", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	OK2
 DO
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 	}
-	autoSoundList thee = TextGrid_Sound_extractAllIntervals (textgrid, sound,
+	autoCollection thee = TextGrid_Sound_extractAllIntervals (textgrid, sound,
 		GET_INTEGER (STRING_TIER_NUMBER), GET_INTEGER (U"Preserve times"));
-	thy classInfo = classCollection;   // YUCK
-	praat_new (thee.move(), U"dummy");
+	praat_new (thee.transfer(), U"dummy");
 END2 }
 
-FORM (TextGrid_Sound_extractNonemptyIntervals, U"TextGrid & Sound: Extract non-empty intervals", nullptr) {
+FORM (TextGrid_Sound_extractNonemptyIntervals, U"TextGrid & Sound: Extract non-empty intervals", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	OK2
 DO
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 	}
-	autoSoundList thee = TextGrid_Sound_extractNonemptyIntervals (textgrid, sound,
+	autoCollection thee = TextGrid_Sound_extractNonemptyIntervals (textgrid, sound,
 		GET_INTEGER (STRING_TIER_NUMBER), GET_INTEGER (U"Preserve times"));
-	thy classInfo = classCollection;   // YUCK
-	praat_new (thee.move(), U"dummy");
+	praat_new (thee.transfer(), U"dummy");
 END2 }
 
-FORM (TextGrid_Sound_extractIntervals, U"TextGrid & Sound: Extract intervals", nullptr) {
+FORM (TextGrid_Sound_extractIntervals, U"TextGrid & Sound: Extract intervals", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	SENTENCE (U"Label text", U"")
 	OK2
 DO
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 	}
-	autoSoundList thee = TextGrid_Sound_extractIntervalsWhere (textgrid, sound,
+	autoCollection thee = TextGrid_Sound_extractIntervalsWhere (textgrid, sound,
 		GET_INTEGER (STRING_TIER_NUMBER), kMelder_string_EQUAL_TO, GET_STRING (U"Label text"),
 		GET_INTEGER (U"Preserve times"));
-	thy classInfo = classCollection;   // YUCK
-	praat_new (thee.move(), GET_STRING (U"Label text"));
+	praat_new (thee.transfer(), GET_STRING (U"Label text"));
 END2 }
 
-FORM (TextGrid_Sound_extractIntervalsWhere, U"TextGrid & Sound: Extract intervals", nullptr) {
+FORM (TextGrid_Sound_extractIntervalsWhere, U"TextGrid & Sound: Extract intervals", 0) {
 	INTEGER (STRING_TIER_NUMBER, U"1")
-	BOOLEAN (U"Preserve times", false)
+	BOOLEAN (U"Preserve times", 0)
 	OPTIONMENU_ENUM (U"Extract every interval whose label...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"")
 	OK2
 DO
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
 	}
-	autoSoundList thee = TextGrid_Sound_extractIntervalsWhere (textgrid, sound,
+	autoCollection thee = TextGrid_Sound_extractIntervalsWhere (textgrid, sound,
 		GET_INTEGER (STRING_TIER_NUMBER),
 		GET_ENUM (kMelder_string, U"Extract every interval whose label..."),
 		GET_STRING (U"...the text"),
 		GET_INTEGER (U"Preserve times"));
-	thy classInfo = classCollection;   // YUCK
-	praat_new (thee.move(), GET_STRING (U"...the text"));
+	praat_new (thee.transfer(), GET_STRING (U"...the text"));
 END2 }
 
 DIRECT2 (TextGrid_Sound_scaleTimes) {
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
@@ -596,8 +592,8 @@ DIRECT2 (TextGrid_Sound_scaleTimes) {
 END2 }
 
 DIRECT2 (TextGrid_Sound_cloneTimeDomain) {
-	TextGrid textgrid = nullptr;
-	Sound sound = nullptr;
+	TextGrid textgrid = NULL;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) textgrid = (TextGrid) OBJECT;
 		if (CLASS == classSound) sound = (Sound) OBJECT;
@@ -678,15 +674,15 @@ DIRECT2 (SpellingChecker_extractWordList) {
 	LOOP {
 		iam (SpellingChecker);
 		autoWordList thee = SpellingChecker_extractWordList (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
 DIRECT2 (SpellingChecker_extractUserDictionary) {
 	LOOP {
 		iam (SpellingChecker);
-		autoStringSet thee = SpellingChecker_extractUserDictionary (me);
-		praat_new (thee.move(), my name);
+		autoSortedSetOfString thee = SpellingChecker_extractUserDictionary (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -719,8 +715,8 @@ DO
 END2 }
 
 DIRECT2 (SpellingChecker_replaceWordList) {
-	SpellingChecker spellingChecker = nullptr;
-	WordList wordList = nullptr;
+	SpellingChecker spellingChecker = NULL;
+	WordList wordList = NULL;
 	LOOP {
 		if (CLASS == classSpellingChecker) spellingChecker = (SpellingChecker) OBJECT;
 		if (CLASS == classWordList) wordList = (WordList) OBJECT;
@@ -736,11 +732,11 @@ DIRECT2 (SpellingChecker_replaceWordList_help) {
 END2 }
 
 DIRECT2 (SpellingChecker_replaceUserDictionary) {
-	SpellingChecker spellingChecker = nullptr;
-	StringSet dictionary = nullptr;
+	SpellingChecker spellingChecker = NULL;
+	SortedSetOfString dictionary = NULL;
 	LOOP {
 		if (CLASS == classSpellingChecker) spellingChecker = (SpellingChecker) OBJECT;
-		if (CLASS == classStringSet) dictionary = (StringSet) OBJECT;
+		if (CLASS == classSortedSetOfString) dictionary = (SortedSetOfString) OBJECT;
 		SpellingChecker_replaceUserDictionary (spellingChecker, dictionary);
 	}
 END2 }
@@ -789,7 +785,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_downto_Table, U"TextGrid: Down to Table", nullptr) {
+FORM (TextGrid_downto_Table, U"TextGrid: Down to Table", 0) {
 	BOOLEAN (U"Include line number", false)
 	NATURAL (U"Time decimals", U"6")
 	BOOLEAN (U"Include tier names", true)
@@ -800,27 +796,27 @@ DO
 		iam (TextGrid);
 		autoTable thee = TextGrid_downto_Table (me, GET_INTEGER (U"Include line number"), GET_INTEGER (U"Time decimals"),
 			GET_INTEGER (U"Include tier names"), GET_INTEGER (U"Include empty intervals"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TextGrid_draw, U"TextGrid: Draw", nullptr) {
+FORM (TextGrid_draw, U"TextGrid: Draw", 0) {
 	praat_dia_timeRange (dia);
-	BOOLEAN (U"Show boundaries", true)
-	BOOLEAN (U"Use text styles", true)
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Show boundaries", 1)
+	BOOLEAN (U"Use text styles", 1)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
 	LOOP {
 		iam (TextGrid);
-		TextGrid_Sound_draw (me, nullptr, GRAPHICS,
+		TextGrid_Sound_draw (me, NULL, GRAPHICS,
 			GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_INTEGER (U"Show boundaries"),
 			GET_INTEGER (U"Use text styles"), GET_INTEGER (U"Garnish"));
 	}
 END2 }
 
-FORM (TextGrid_duplicateTier, U"TextGrid: Duplicate tier", nullptr) {
+FORM (TextGrid_duplicateTier, U"TextGrid: Duplicate tier", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (U"Position", U"1 (= at top)")
 	WORD (U"Name", U"")
@@ -831,31 +827,29 @@ DO
 		int itier = GET_INTEGER (STRING_TIER_NUMBER);
 		int position = GET_INTEGER (U"Position");
 		const char32 *name = GET_STRING (U"Name");
-		if (itier > my tiers->size) itier = my tiers->size;
-		{// scope
-			autoFunction newTier = Data_copy (my tiers->at [itier]);
-			Thing_setName (newTier.get(), name);
-			my tiers -> addItemAtPosition_move (newTier.move(), position);
-		}
+		if (itier > my tiers -> size) itier = my tiers -> size;
+		autoAnyTier newTier = Data_copy ((AnyTier) my tiers -> item [itier]);
+		Thing_setName (newTier.peek(), name);
+		Ordered_addItemPos (my tiers, newTier.transfer(), position);
 		praat_dataChanged (me);
 	}
 END2 }
 
-static void cb_TextGridEditor_publication (Editor /* editor */, autoDaata publication) {
+static void cb_TextGridEditor_publication (Editor editor, void *closure, Data publication) {
+	(void) editor;
+	(void) closure;
 	/*
 	 * Keep the gate for error handling.
 	 */
 	try {
-		bool isaSpectralSlice = Thing_isa (publication.get(), classSpectrum) && str32equ (Thing_getName (publication.get()), U"slice");
-		praat_new (publication.move());
+		praat_new (publication);
 		praat_updateSelection ();
-		if (isaSpectralSlice) {
+		if (Thing_isa (publication, classSpectrum) && str32equ (Thing_getName (publication), U"slice")) {
 			int IOBJECT;
 			LOOP {
 				iam (Spectrum);
 				autoSpectrumEditor editor2 = SpectrumEditor_create (ID_AND_FULL_NAME, me);
-				praat_installEditor (editor2.get(), IOBJECT);
-				editor2.releaseToUser();
+				praat_installEditor (editor2.transfer(), IOBJECT);
 			}
 		}
 	} catch (MelderError) {
@@ -864,40 +858,38 @@ static void cb_TextGridEditor_publication (Editor /* editor */, autoDaata public
 }
 DIRECT2 (TextGrid_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a TextGrid from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	LOOP if (CLASS == classTextGrid) {
 		iam (TextGrid);
-		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, nullptr, nullptr);
-		Editor_setPublicationCallback (editor.get(), cb_TextGridEditor_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, NULL, NULL);
+		Editor_setPublicationCallback (editor.peek(), cb_TextGridEditor_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
-FORM (TextGrid_editWithCallback, U"TextGrid: View & Edit with callback", nullptr) {
+FORM (TextGrid_editWithCallback, U"TextGrid: View & Edit with callback", 0) {
 	SENTENCE (U"Callback text", U"r1")
 	OK2
 DO
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a TextGrid from batch.");
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	LOOP if (CLASS == classTextGrid) {
 		iam (TextGrid);
-		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, nullptr, Melder_peek32to8 (GET_STRING (U"Callback text")));
-		Editor_setPublicationCallback (editor.get(), cb_TextGridEditor_publication);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, NULL, Melder_peek32to8 (GET_STRING (U"Callback text")));
+		Editor_setPublicationCallback (editor.peek(), cb_TextGridEditor_publication, NULL);
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
 DIRECT2 (TextGrid_LongSound_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a TextGrid from batch.");
-	LongSound longSound = nullptr;
+	LongSound longSound = NULL;
 	int ilongSound = 0;
 	LOOP {
 		if (CLASS == classLongSound) longSound = (LongSound) OBJECT, ilongSound = IOBJECT;
@@ -905,35 +897,33 @@ DIRECT2 (TextGrid_LongSound_edit) {
 	Melder_assert (ilongSound != 0);
 	LOOP if (CLASS == classTextGrid) {
 		iam (TextGrid);
-		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, longSound, false, nullptr, nullptr);
-		Editor_setPublicationCallback (editor.get(), cb_TextGridEditor_publication);
-		praat_installEditor2 (editor.get(), IOBJECT, ilongSound);
-		editor.releaseToUser();
+		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, longSound, false, NULL, NULL);
+		Editor_setPublicationCallback (editor.peek(), cb_TextGridEditor_publication, NULL);
+		praat_installEditor2 (editor.transfer(), IOBJECT, ilongSound);
 	}
 END2 }
 
 DIRECT2 (TextGrid_SpellingChecker_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a TextGrid from batch.");
-	SpellingChecker spellingChecker = nullptr;
+	SpellingChecker spellingChecker = NULL;
 	int ispellingChecker = 0;
-	Sound sound = nullptr;
+	Sound sound = NULL;
 	LOOP {
 		if (CLASS == classSpellingChecker) spellingChecker = (SpellingChecker) OBJECT, ispellingChecker = IOBJECT;
-		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay null
+		if (CLASS == classSound) sound = (Sound) OBJECT;   // may stay NULL
 	}
 	Melder_assert (ispellingChecker != 0);
 	LOOP if (CLASS == classTextGrid) {
 		iam (TextGrid);
-		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, spellingChecker, nullptr);
-		praat_installEditor2 (editor.get(), IOBJECT, ispellingChecker);
-		editor.releaseToUser();
+		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, sound, true, spellingChecker, NULL);
+		praat_installEditor2 (editor.transfer(), IOBJECT, ispellingChecker);
 	}
 END2 }
 
 DIRECT2 (TextGrid_LongSound_SpellingChecker_edit) {
 	if (theCurrentPraatApplication -> batch) Melder_throw (U"Cannot view or edit a TextGrid from batch.");
-	LongSound longSound = nullptr;
-	SpellingChecker spellingChecker = nullptr;
+	LongSound longSound = NULL;
+	SpellingChecker spellingChecker = NULL;
 	int ilongSound = 0, ispellingChecker = 0;
 	LOOP {
 		if (CLASS == classLongSound) longSound = (LongSound) OBJECT, ilongSound = IOBJECT;
@@ -942,9 +932,8 @@ DIRECT2 (TextGrid_LongSound_SpellingChecker_edit) {
 	Melder_assert (ilongSound != 0 && ispellingChecker != 0);
 	LOOP if (CLASS == classTextGrid) {
 		iam (TextGrid);
-		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, longSound, false, spellingChecker, nullptr);
-		praat_installEditor3 (editor.get(), IOBJECT, ilongSound, ispellingChecker);
-		editor.releaseToUser();
+		autoTextGridEditor editor = TextGridEditor_create (ID_AND_FULL_NAME, me, longSound, false, spellingChecker, NULL);
+		praat_installEditor3 (editor.transfer(), IOBJECT, ilongSound, ispellingChecker);
 	}
 END2 }
 
@@ -957,66 +946,66 @@ DO
 	LOOP {
 		iam (TextGrid);
 		autoTextGrid thee = TextGrid_extractPart (me, GET_REAL (U"left Time range"), GET_REAL (U"right Time range"), GET_INTEGER (U"Preserve times"));
-		praat_new (thee.move(), my name, U"_part");
+		praat_new (thee.transfer(), my name, U"_part");
 	}
 END2 }
 
-static Function pr_TextGrid_peekTier (UiForm dia) {
+static Function pr_TextGrid_peekTier (Any dia) {
 	int IOBJECT;
 	LOOP {
 		iam (TextGrid);
 		long tierNumber = GET_INTEGER (STRING_TIER_NUMBER);
-		if (tierNumber > my tiers->size)
-			Melder_throw (U"Tier number (", tierNumber, U") should not be larger than number of tiers (", my tiers->size, U").");
-		return my tiers->at [tierNumber];
+		if (tierNumber > my tiers -> size)
+			Melder_throw (U"Tier number (", tierNumber, U") should not be larger than number of tiers (", my tiers -> size, U").");
+		return (Function) my tiers -> item [tierNumber];
 	}
-	return nullptr;   // should not occur
+	return NULL;   // should not occur
 }
 
-static IntervalTier pr_TextGrid_peekIntervalTier (UiForm dia) {
+static IntervalTier pr_TextGrid_peekIntervalTier (Any dia) {
 	Function tier = pr_TextGrid_peekTier (dia);
 	if (tier -> classInfo != classIntervalTier) Melder_throw (U"Tier should be interval tier.");
 	return (IntervalTier) tier;
 }
 
-static TextTier pr_TextGrid_peekTextTier (UiForm dia) {
+static TextTier pr_TextGrid_peekTextTier (Any dia) {
 	Function tier = pr_TextGrid_peekTier (dia);
-	if (! tier) return nullptr;
+	if (! tier) return NULL;
 	if (tier -> classInfo != classTextTier) Melder_throw (U"Tier should be point tier (TextTier).");
 	return (TextTier) tier;
 }
 
-static TextInterval pr_TextGrid_peekInterval (UiForm dia) {
+static TextInterval pr_TextGrid_peekInterval (Any dia) {
 	int intervalNumber = GET_INTEGER (STRING_INTERVAL_NUMBER);
 	IntervalTier intervalTier = pr_TextGrid_peekIntervalTier (dia);
-	if (intervalNumber > intervalTier -> intervals.size) Melder_throw (U"Interval number too large.");
-	return intervalTier -> intervals.at [intervalNumber];
+	if (intervalNumber > intervalTier -> intervals -> size) Melder_throw (U"Interval number too large.");
+	return (TextInterval) intervalTier -> intervals -> item [intervalNumber];
 }
 
-static TextPoint pr_TextGrid_peekPoint (UiForm dia) {	
+static TextPoint pr_TextGrid_peekPoint (Any dia) {	
 	long pointNumber = GET_INTEGER (STRING_POINT_NUMBER);
 	TextTier textTier = pr_TextGrid_peekTextTier (dia);
-	if (pointNumber > textTier -> points.size) Melder_throw (U"Point number too large.");
-	return textTier -> points.at [pointNumber];
+	if (pointNumber > textTier -> points -> size) Melder_throw (U"Point number too large.");
+	return (TextPoint) textTier -> points -> item [pointNumber];
 }
 
-FORM (TextGrid_extractOneTier, U"TextGrid: Extract one tier", nullptr) {
+FORM (TextGrid_extractOneTier, U"TextGrid: Extract one tier", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
 	Function tier = pr_TextGrid_peekTier (dia);   // a reference
 	autoTextGrid grid = TextGrid_createWithoutTiers (1e30, -1e30);
-	TextGrid_addTier_copy (grid.get(), tier);   // no transfer of tier ownership, because a copy is made
-	praat_new (grid.move(), tier -> name);
+	TextGrid_addTier (grid.peek(), tier);   // no transfer of tier ownership, because a copy is made
+	praat_new (grid.transfer(), tier -> name);
 END2 }
 
-FORM (TextGrid_extractTier, U"TextGrid: Extract tier", nullptr) {
+FORM (TextGrid_extractTier, U"TextGrid: Extract tier", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
 	Function tier = pr_TextGrid_peekTier (dia);
 	autoFunction thee = Data_copy (tier);
-	praat_new (thee.move(), tier -> name);
+	praat_new (thee.transfer(), tier -> name);
 END2 }
 
 DIRECT2 (TextGrid_genericize) {
@@ -1041,11 +1030,11 @@ FORM (TextGrid_getHighIndexFromTime, U"Get high index", U"AnyTier: Get high inde
 	OK2
 DO
 	TextTier textTier = pr_TextGrid_peekTextTier (dia);
-	long highIndex = AnyTier_timeToHighIndex (textTier->asAnyTier(), GET_REAL (U"Time"));
+	long highIndex = AnyTier_timeToHighIndex (textTier, GET_REAL (U"Time"));
 	Melder_information (highIndex);
 END2 }
 
-FORM (TextGrid_getHighIntervalAtTime, U"TextGrid: Get high interval at time", nullptr) {
+FORM (TextGrid_getHighIntervalAtTime, U"TextGrid: Get high interval at time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1055,7 +1044,7 @@ DO
 	Melder_information (index);
 END2 }
 
-FORM (TextGrid_getIntervalBoundaryFromTime, U"TextGrid: Get interval boundary from time", nullptr) {
+FORM (TextGrid_getIntervalBoundaryFromTime, U"TextGrid: Get interval boundary from time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1065,7 +1054,7 @@ DO
 	Melder_information (index);
 END2 }
 
-FORM (TextGrid_getIntervalEdgeFromTime, U"TextGrid: Get interval edge from time", nullptr) {
+FORM (TextGrid_getIntervalEdgeFromTime, U"TextGrid: Get interval edge from time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1081,11 +1070,11 @@ FORM (TextGrid_getLowIndexFromTime, U"Get low index", U"AnyTier: Get low index f
 	OK2
 DO
 	TextTier textTier = pr_TextGrid_peekTextTier (dia);
-	long lowIndex = AnyTier_timeToLowIndex (textTier->asAnyTier(), GET_REAL (U"Time"));
+	long lowIndex = AnyTier_timeToLowIndex (textTier, GET_REAL (U"Time"));
 	Melder_information (lowIndex);
 END2 }
 
-FORM (TextGrid_getLowIntervalAtTime, U"TextGrid: Get low interval at time", nullptr) {
+FORM (TextGrid_getLowIntervalAtTime, U"TextGrid: Get low interval at time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1101,11 +1090,11 @@ FORM (TextGrid_getNearestIndexFromTime, U"Get nearest index", U"AnyTier: Get nea
 	OK2
 DO
 	TextTier textTier = pr_TextGrid_peekTextTier (dia);
-	long nearestIndex = AnyTier_timeToNearestIndex (textTier->asAnyTier(), GET_REAL (U"Time"));
+	long nearestIndex = AnyTier_timeToNearestIndex (textTier, GET_REAL (U"Time"));
 	Melder_information (nearestIndex);
 END2 }
 
-FORM (TextGrid_getIntervalAtTime, U"TextGrid: Get interval at time", nullptr) {
+FORM (TextGrid_getIntervalAtTime, U"TextGrid: Get interval at time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1115,24 +1104,24 @@ DO
 	Melder_information (index);
 END2 }
 
-FORM (TextGrid_getNumberOfIntervals, U"TextGrid: Get number of intervals", nullptr) {
+FORM (TextGrid_getNumberOfIntervals, U"TextGrid: Get number of intervals", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
 	IntervalTier intervalTier = pr_TextGrid_peekIntervalTier (dia);
-	long numberOfIntervals = intervalTier -> intervals.size;
+	long numberOfIntervals = intervalTier -> intervals -> size;
 	Melder_information (numberOfIntervals);
 END2 }
 
 DIRECT2 (TextGrid_getNumberOfTiers) {
 	LOOP {
 		iam (TextGrid);
-		long numberOfTiers = my tiers->size;
+		long numberOfTiers = my tiers -> size;
 		Melder_information (numberOfTiers);
 	}
 END2 }
 
-FORM (TextGrid_getStartingPoint, U"TextGrid: Get starting point", nullptr) {
+FORM (TextGrid_getStartingPoint, U"TextGrid: Get starting point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"1")
 	OK2
@@ -1142,7 +1131,7 @@ DO
 	Melder_informationReal (startingPoint, U"seconds");
 END2 }
 
-FORM (TextGrid_getEndPoint, U"TextGrid: Get end point", nullptr) {
+FORM (TextGrid_getEndPoint, U"TextGrid: Get end point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"1")
 	OK2
@@ -1152,7 +1141,7 @@ DO
 	Melder_informationReal (endPoint, U"seconds");
 END2 }
 
-FORM (TextGrid_getLabelOfInterval, U"TextGrid: Get label of interval", nullptr) {
+FORM (TextGrid_getLabelOfInterval, U"TextGrid: Get label of interval", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"1")
 	OK2
@@ -1163,24 +1152,24 @@ DO
 	MelderInfo_close ();
 END2 }
 
-FORM (TextGrid_getNumberOfPoints, U"TextGrid: Get number of points", nullptr) {
+FORM (TextGrid_getNumberOfPoints, U"TextGrid: Get number of points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
 	TextTier textTier = pr_TextGrid_peekTextTier (dia);
-	long numberOfPoints = textTier -> points.size;
+	long numberOfPoints = textTier -> points -> size;
 	Melder_information (numberOfPoints);
 END2 }
 
-FORM (TextGrid_getTierName, U"TextGrid: Get tier name", nullptr) {
+FORM (TextGrid_getTierName, U"TextGrid: Get tier name", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
-	Daata tier = pr_TextGrid_peekTier (dia);
+	Data tier = pr_TextGrid_peekTier (dia);
 	Melder_information (tier -> name);
 END2 }
 
-FORM (TextGrid_getTimeOfPoint, U"TextGrid: Get time of point", nullptr) {
+FORM (TextGrid_getTimeOfPoint, U"TextGrid: Get time of point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_POINT_NUMBER, U"1")
 	OK2
@@ -1189,7 +1178,7 @@ DO
 	Melder_informationReal (point -> number, U"seconds");
 END2 }
 
-FORM (TextGrid_getLabelOfPoint, U"TextGrid: Get label of point", nullptr) {
+FORM (TextGrid_getLabelOfPoint, U"TextGrid: Get label of point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_POINT_NUMBER, U"1")
 	OK2
@@ -1202,7 +1191,7 @@ DIRECT2 (TextGrid_help) {
 	Melder_help (U"TextGrid");
 END2 }
 
-FORM (TextGrid_insertBoundary, U"TextGrid: Insert boundary", nullptr) {
+FORM (TextGrid_insertBoundary, U"TextGrid: Insert boundary", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1214,7 +1203,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_insertIntervalTier, U"TextGrid: Insert interval tier", nullptr) {
+FORM (TextGrid_insertIntervalTier, U"TextGrid: Insert interval tier", 0) {
 	NATURAL (U"Position", U"1 (= at top)")
 	WORD (U"Name", U"")
 	OK2
@@ -1223,17 +1212,15 @@ DO
 		iam (TextGrid);
 		int position = GET_INTEGER (U"Position");
 		const char32 *name = GET_STRING (U"Name");
-		{// scope
-			autoIntervalTier tier = IntervalTier_create (my xmin, my xmax);
-			if (position > my tiers->size) position = my tiers->size + 1;
-			Thing_setName (tier.get(), name);
-			my tiers -> addItemAtPosition_move (tier.move(), position);
-		}
+		autoIntervalTier tier = IntervalTier_create (my xmin, my xmax);
+		if (position > my tiers -> size) position = my tiers -> size + 1;
+		Thing_setName (tier.peek(), name);
+		Ordered_addItemPos (my tiers, tier.transfer(), position);
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM (TextGrid_insertPoint, U"TextGrid: Insert point", nullptr) {
+FORM (TextGrid_insertPoint, U"TextGrid: Insert point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	LABEL (U"", U"Text:")
@@ -1247,7 +1234,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_insertPointTier, U"TextGrid: Insert point tier", nullptr) {
+FORM (TextGrid_insertPointTier, U"TextGrid: Insert point tier", 0) {
 	NATURAL (U"Position", U"1 (= at top)")
 	WORD (U"Name", U"")
 	OK2
@@ -1256,21 +1243,19 @@ DO
 		iam (TextGrid);
 		int position = GET_INTEGER (U"Position");
 		const char32 *name = GET_STRING (U"Name");
-		{// scope
-			autoTextTier tier = TextTier_create (my xmin, my xmax);
-			if (position > my tiers->size) position = my tiers->size + 1;
-			Thing_setName (tier.get(), name);
-			my tiers -> addItemAtPosition_move (tier.move(), position);
-		}
+		autoTextTier tier = TextTier_create (my xmin, my xmax);
+		if (position > my tiers -> size) position = my tiers -> size + 1;
+		Thing_setName (tier.peek(), name);
+		Ordered_addItemPos (my tiers, tier.transfer(), position);
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM (TextGrid_isIntervalTier, U"TextGrid: Is interval tier?", nullptr) {
+FORM (TextGrid_isIntervalTier, U"TextGrid: Is interval tier?", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
-	Daata tier = pr_TextGrid_peekTier (dia);
+	Data tier = pr_TextGrid_peekTier (dia);
 	if (tier -> classInfo == classIntervalTier) {
 		Melder_information (U"1 (yes, tier ", GET_INTEGER (STRING_TIER_NUMBER), U" is an interval tier)");
 	} else {
@@ -1278,7 +1263,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_list, U"TextGrid: List", nullptr) {
+FORM (TextGrid_list, U"TextGrid: List", 0) {
 	BOOLEAN (U"Include line number", false)
 	NATURAL (U"Time decimals", U"6")
 	BOOLEAN (U"Include tier names", true)
@@ -1293,30 +1278,22 @@ DO
 END2 }
 
 DIRECT2 (TextGrids_concatenate) {
-	OrderedOf <structTextGrid> textGrids;
-	LOOP {
-		iam (TextGrid);
-		textGrids. addItem_ref (me);
-	}
-	autoTextGrid thee = TextGrids_concatenate (& textGrids);
-	praat_new (thee.move(), U"chain");
+	autoCollection textGrids = praat_getSelectedObjects ();
+	autoTextGrid thee = TextGrids_concatenate (textGrids.peek());
+	praat_new (thee.transfer(), U"chain");
 END2 }
 
 DIRECT2 (TextGrids_merge) {
-	OrderedOf <structTextGrid> textGrids;
-	LOOP {
-		iam (TextGrid);
-		textGrids. addItem_ref (me);
-	}
-	autoTextGrid thee = TextGrids_merge (& textGrids);
-	praat_new (thee.move(), U"merged");
+	autoCollection textGrids = praat_getSelectedObjects ();
+	autoTextGrid thee = TextGrid_merge (textGrids.peek());
+	praat_new (thee.transfer(), U"merged");
 END2 }
 
 DIRECT2 (info_TextGrid_Pitch_draw) {
 	Melder_information (U"You can draw a TextGrid together with a Pitch after selecting them both.");
 END2 }
 
-FORM (TextGrid_removeBoundaryAtTime, U"TextGrid: Remove boundary at time", nullptr) {
+FORM (TextGrid_removeBoundaryAtTime, U"TextGrid: Remove boundary at time", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	REAL (U"Time (s)", U"0.5")
 	OK2
@@ -1328,7 +1305,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_getCentrePoints, U"TextGrid: Get centre points", nullptr) {
+FORM (TextGrid_getCentrePoints, U"TextGrid: Get centre points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get centre points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1339,11 +1316,11 @@ DO
 		iam (TextGrid);
 		autoPointProcess thee = TextGrid_getCentrePoints (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get centre points whose label"), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_getEndPoints, U"TextGrid: Get end points", nullptr) {
+FORM (TextGrid_getEndPoints, U"TextGrid: Get end points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get end points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1354,11 +1331,11 @@ DO
 		iam (TextGrid);
 		autoPointProcess thee = TextGrid_getEndPoints (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get end points whose label"), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_getStartingPoints, U"TextGrid: Get starting points", nullptr) {
+FORM (TextGrid_getStartingPoints, U"TextGrid: Get starting points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get starting points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1369,11 +1346,11 @@ DO
 		iam (TextGrid);
 		autoPointProcess thee = TextGrid_getStartingPoints (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get starting points whose label"), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_getPoints, U"Get points", nullptr) {
+FORM (TextGrid_getPoints, U"Get points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1384,11 +1361,11 @@ DO
 		iam (TextGrid);
 		autoPointProcess thee = TextGrid_getPoints (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get points whose label"), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_getPoints_followed, U"Get points (followed)", nullptr) {
+FORM (TextGrid_getPoints_followed, U"Get points (followed)", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1403,11 +1380,11 @@ DO
 		autoPointProcess thee = TextGrid_getPoints_followed (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get points whose label"), text,
 			GET_ENUM (kMelder_string, U"followed by a label that"), following);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_getPoints_preceded, U"Get points (preceded)", nullptr) {
+FORM (TextGrid_getPoints_preceded, U"Get points (preceded)", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Get points whose label", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"there")
@@ -1422,11 +1399,11 @@ DO
 		autoPointProcess thee = TextGrid_getPoints_preceded (me, GET_INTEGER (STRING_TIER_NUMBER),
 			GET_ENUM (kMelder_string, U"Get points whose label"), text,
 			GET_ENUM (kMelder_string, U"preceded by a label that"), preceding);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TextGrid_removeLeftBoundary, U"TextGrid: Remove left boundary", nullptr) {
+FORM (TextGrid_removeLeftBoundary, U"TextGrid: Remove left boundary", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"2")
 	OK2
@@ -1436,16 +1413,16 @@ DO
 	LOOP {
 		iam (TextGrid);
 		IntervalTier intervalTier;
-		if (itier > my tiers->size)
+		if (itier > my tiers -> size)
 			Melder_throw (U"You cannot remove a boundary from tier ", itier, U" of ", me,
-				U", because that TextGrid has only ", my tiers->size, U" tiers.");
-		intervalTier = (IntervalTier) my tiers->at [itier];
+				U", because that TextGrid has only ", my tiers -> size, U" tiers.");
+		intervalTier = (IntervalTier) my tiers -> item [itier];
 		if (intervalTier -> classInfo != classIntervalTier)
 			Melder_throw (U"You cannot remove a boundary from tier ", itier, U" of ", me,
 				U", because that tier is a point tier instead of an interval tier.");
-		if (iinterval > intervalTier -> intervals.size)
+		if (iinterval > intervalTier -> intervals -> size)
 			Melder_throw (U"You cannot remove a boundary from interval ", iinterval, U" of tier ", itier, U" of ", me,
-				U", because that tier has only ", intervalTier -> intervals.size, U" intervals.");
+				U", because that tier has only ", intervalTier -> intervals -> size, U" intervals.");
 		if (iinterval == 1)
 			Melder_throw (U"You cannot remove the left boundary from interval 1 of tier ", itier, U" of ", me,
 				U", because this is at the left edge of the tier.");
@@ -1454,7 +1431,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_removePoint, U"TextGrid: Remove point", nullptr) {
+FORM (TextGrid_removePoint, U"TextGrid: Remove point", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_POINT_NUMBER, U"2")
 	OK2
@@ -1464,22 +1441,22 @@ DO
 	LOOP {
 		iam (TextGrid);
 		TextTier pointTier;
-		if (itier > my tiers->size)
+		if (itier > my tiers -> size)
 			Melder_throw (U"You cannot remove a point from tier ", itier, U" of ", me,
-				U", because that TextGrid has only ", my tiers->size, U" tiers.");
-		pointTier = (TextTier) my tiers->at [itier];
+				U", because that TextGrid has only ", my tiers -> size, U" tiers.");
+		pointTier = (TextTier) my tiers -> item [itier];
 		if (pointTier -> classInfo != classTextTier)
 			Melder_throw (U"You cannot remove a point from tier ", itier, U" of ", me,
 				U", because that tier is an interval tier instead of a point tier.");
-		if (ipoint > pointTier -> points.size)
+		if (ipoint > pointTier -> points -> size)
 			Melder_throw (U"You cannot remove point ", ipoint, U" from tier ", itier, U" of ", me,
-				U", because that tier has only ", pointTier -> points.size, U" points.");
+				U", because that tier has only ", pointTier -> points -> size, U" points.");
 		TextTier_removePoint (pointTier, ipoint);
 		praat_dataChanged (me);
 	}
 END2 }
 
-FORM (TextGrid_removePoints, U"Remove points", nullptr) {
+FORM (TextGrid_removePoints, U"Remove points", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OPTIONMENU_ENUM (U"Remove every point whose label...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -1492,7 +1469,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_removeRightBoundary, U"TextGrid: Remove right boundary", nullptr) {
+FORM (TextGrid_removeRightBoundary, U"TextGrid: Remove right boundary", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"1")
 	OK2
@@ -1502,17 +1479,17 @@ DO
 	LOOP {
 		iam (TextGrid);
 		IntervalTier intervalTier;
-		if (itier > my tiers->size)
+		if (itier > my tiers -> size)
 			Melder_throw (U"You cannot remove a boundary from tier ", itier, U" of ", me,
-				U", because that TextGrid has only ", my tiers->size, U" tiers.");
-		intervalTier = (IntervalTier) my tiers->at [itier];
+				U", because that TextGrid has only ", my tiers -> size, U" tiers.");
+		intervalTier = (IntervalTier) my tiers -> item [itier];
 		if (intervalTier -> classInfo != classIntervalTier)
 			Melder_throw (U"You cannot remove a boundary from tier ", itier, U" of ", me,
 				U", because that tier is a point tier instead of an interval tier.");
-		if (iinterval > intervalTier -> intervals.size)
+		if (iinterval > intervalTier -> intervals -> size)
 			Melder_throw (U"You cannot remove a boundary from interval ", iinterval, U" of tier ", itier, U" of ", me,
-				U", because that tier has only ", intervalTier -> intervals.size, U" intervals.");
-		if (iinterval == intervalTier -> intervals.size)
+				U", because that tier has only ", intervalTier -> intervals -> size, U" intervals.");
+		if (iinterval == intervalTier -> intervals -> size)
 			Melder_throw (U"You cannot remove the right boundary from interval ", iinterval, U" of tier ", itier, U" of ", me,
 				U", because this is at the right edge of the tier.");
 		IntervalTier_removeLeftBoundary (intervalTier, iinterval + 1);
@@ -1520,17 +1497,17 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_removeTier, U"TextGrid: Remove tier", nullptr) {
+FORM (TextGrid_removeTier, U"TextGrid: Remove tier", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	OK2
 DO
 	LOOP {
 		iam (TextGrid);
 		int itier = GET_INTEGER (STRING_TIER_NUMBER);
-		if (my tiers->size <= 1)
+		if (my tiers -> size <= 1)
 			Melder_throw (U"Sorry, I refuse to remove the last tier.");
-		if (itier > my tiers->size) itier = my tiers->size;
-		my tiers -> removeItem (itier);
+		if (itier > my tiers -> size) itier = my tiers -> size;
+		Collection_removeItem (my tiers, itier);
 		praat_dataChanged (me);
 	}
 END2 }
@@ -1544,7 +1521,7 @@ DIRECT2 (info_TextGrid_Sound_draw) {
 	Melder_information (U"You can draw a TextGrid together with a Sound after selecting them both.");
 END2 }
 
-FORM (TextGrid_setIntervalText, U"TextGrid: Set interval text", nullptr) {
+FORM (TextGrid_setIntervalText, U"TextGrid: Set interval text", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_INTERVAL_NUMBER, U"1")
 	LABEL (U"", U"Text:")
@@ -1558,7 +1535,7 @@ DO
 	}
 END2 }
 
-FORM (TextGrid_setPointText, U"TextGrid: Set point text", nullptr) {
+FORM (TextGrid_setPointText, U"TextGrid: Set point text", 0) {
 	NATURAL (STRING_TIER_NUMBER, U"1")
 	NATURAL (STRING_POINT_NUMBER, U"1")
 	LABEL (U"", U"Text:")
@@ -1572,7 +1549,7 @@ DO
 	}
 END2 }
 
-FORM_WRITE2 (TextGrid_writeToChronologicalTextFile, U"Text file", nullptr, nullptr) {
+FORM_WRITE2 (TextGrid_writeToChronologicalTextFile, U"Text file", 0, 0) {
 	LOOP {
 		iam (TextGrid);
 		TextGrid_writeToChronologicalTextFile (me, file);
@@ -1582,23 +1559,23 @@ END2 }
 /***** TEXTGRID & ANYTIER *****/
 
 DIRECT2 (TextGrid_AnyTier_append) {
-	TextGrid oldGrid = nullptr;
+	TextGrid oldGrid = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) oldGrid = (TextGrid) OBJECT;
 	}
 	autoTextGrid newGrid = Data_copy (oldGrid);
 	LOOP if (OBJECT != oldGrid) {
 		iam (AnyTier);
-		TextGrid_addTier_copy (newGrid.get(), me);
+		TextGrid_addTier (newGrid.peek(), me);
 	}
-	praat_new (newGrid.move(), oldGrid -> name);
+	praat_new (newGrid.transfer(), oldGrid -> name);
 END2 }
 
 /***** TEXTGRID & LONGSOUND *****/
 
 DIRECT2 (TextGrid_LongSound_scaleTimes) {
-	TextGrid grid = nullptr;
-	LongSound longSound = nullptr;
+	TextGrid grid = NULL;
+	LongSound longSound = NULL;
 	LOOP {
 		if (CLASS == classTextGrid) grid = (TextGrid) OBJECT;
 		if (CLASS == classLongSound) longSound = (LongSound) OBJECT;
@@ -1624,19 +1601,19 @@ END2 }
 DIRECT2 (TextTier_downto_PointProcess) {
 	LOOP {
 		iam (TextTier);
-		autoPointProcess thee = AnyTier_downto_PointProcess (me->asAnyTier());
-		praat_new (thee.move(), my name);
+		autoPointProcess thee = AnyTier_downto_PointProcess (me);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TextTier_downto_TableOfReal, U"TextTier: Down to TableOfReal", nullptr) {
+FORM (TextTier_downto_TableOfReal, U"TextTier: Down to TableOfReal", 0) {
 	SENTENCE (U"Label", U"")
 	OK2
 DO
 	LOOP {
 		iam (TextTier);
 		autoTableOfReal thee = TextTier_downto_TableOfReal (me, GET_STRING (U"Label"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1644,31 +1621,31 @@ DIRECT2 (TextTier_downto_TableOfReal_any) {
 	LOOP {
 		iam (TextTier);
 		autoTableOfReal thee = TextTier_downto_TableOfReal_any (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TextTier_getLabelOfPoint, U"Get label of point", nullptr) {
+FORM (TextTier_getLabelOfPoint, U"Get label of point", 0) {
 	NATURAL (U"Point number", U"1")
 	OK2
 DO
 	LOOP {
 		iam (TextTier);
 		long ipoint = GET_INTEGER (U"Point number");
-		if (ipoint > my points.size) Melder_throw (U"No such point.");
-		TextPoint point = my points.at [ipoint];
+		if (ipoint > my points -> size) Melder_throw (U"No such point.");
+		TextPoint point = (TextPoint) my points -> item [ipoint];
 		Melder_information (point -> mark);
 	}
 END2 }
 
-FORM (TextTier_getPoints, U"Get points", nullptr) {
+FORM (TextTier_getPoints, U"Get points", 0) {
 	SENTENCE (U"Text", U"")
 	OK2
 DO
 	LOOP {
 		iam (TextTier);
 		autoPointProcess thee = TextTier_getPoints (me, GET_STRING (U"Text"));
-		praat_new (thee.move(), GET_STRING (U"Text"));
+		praat_new (thee.transfer(), GET_STRING (U"Text"));
 	}
 END2 }
 
@@ -1693,7 +1670,7 @@ DIRECT2 (WordList_to_Strings) {
 	LOOP {
 		iam (WordList);
 		autoStrings thee = WordList_to_Strings (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1701,7 +1678,7 @@ DIRECT2 (WordList_upto_SpellingChecker) {
 	LOOP {
 		iam (WordList);
 		autoSpellingChecker thee = WordList_upto_SpellingChecker (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1711,202 +1688,202 @@ void praat_TimeFunction_query_init (ClassInfo klas);
 void praat_TimeTier_query_init (ClassInfo klas);
 void praat_TimeTier_modify_init (ClassInfo klas);
 
-void praat_uvafon_TextGrid_init ();
-void praat_uvafon_TextGrid_init () {
+void praat_uvafon_TextGrid_init (void);
+void praat_uvafon_TextGrid_init (void) {
 	Thing_recognizeClassByOtherName (classTextTier, U"MarkTier");
 
 	structTextGridEditor :: f_preferences ();
 
-	praat_addAction1 (classIntervalTier, 0, U"IntervalTier help", nullptr, 0, DO_IntervalTier_help);
-	praat_addAction1 (classIntervalTier, 1, U"Save as Xwaves label file...", nullptr, 0, DO_IntervalTier_writeToXwaves);
-	praat_addAction1 (classIntervalTier, 1, U"Write to Xwaves label file...", nullptr, praat_HIDDEN, DO_IntervalTier_writeToXwaves);
-	praat_addAction1 (classIntervalTier, 0, U"Collect", nullptr, 0, nullptr);
-	praat_addAction1 (classIntervalTier, 0, U"Into TextGrid", nullptr, 0, DO_AnyTier_into_TextGrid);
-	praat_addAction1 (classIntervalTier, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classIntervalTier, 0, U"Get starting points...", nullptr, 0, DO_IntervalTier_getStartingPoints);
-	praat_addAction1 (classIntervalTier, 0, U"Get centre points...", nullptr, 0, DO_IntervalTier_getCentrePoints);
-	praat_addAction1 (classIntervalTier, 0, U"Get end points...", nullptr, 0, DO_IntervalTier_getEndPoints);
-	praat_addAction1 (classIntervalTier, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classIntervalTier, 0, U"Down to TableOfReal (any)", nullptr, 0, DO_IntervalTier_downto_TableOfReal_any);
-	praat_addAction1 (classIntervalTier, 0, U"Down to TableOfReal...", nullptr, 0, DO_IntervalTier_downto_TableOfReal);
-
-	praat_addAction1 (classLabel, 0, U"& Sound: To TextGrid?", nullptr, 0, DO_info_Label_Sound_to_TextGrid);
-
-	praat_addAction1 (classSpellingChecker, 1, U"View & Edit...", nullptr, praat_ATTRACTIVE, DO_SpellingChecker_edit);
-	praat_addAction1 (classSpellingChecker, 1, U"Edit...", nullptr, praat_HIDDEN, DO_SpellingChecker_edit);
-	praat_addAction1 (classSpellingChecker, 0, U"Query", nullptr, 0, nullptr);
-	praat_addAction1 (classSpellingChecker, 1, U"Is word allowed...", nullptr, 0, DO_SpellingChecker_isWordAllowed);
-	praat_addAction1 (classSpellingChecker, 1, U"Next not allowed word...", nullptr, 0, DO_SpellingChecker_nextNotAllowedWord);
-	praat_addAction1 (classSpellingChecker, 0, U"Modify", nullptr, 0, nullptr);
-	praat_addAction1 (classSpellingChecker, 0, U"Add new word...", nullptr, 0, DO_SpellingChecker_addNewWord);
-	praat_addAction1 (classSpellingChecker, 0, U"Analyze", nullptr, 0, nullptr);
-	praat_addAction1 (classSpellingChecker, 0, U"Extract WordList", nullptr, 0, DO_SpellingChecker_extractWordList);
-	praat_addAction1 (classSpellingChecker, 0, U"Extract user dictionary", nullptr, 0, DO_SpellingChecker_extractUserDictionary);
-
-	praat_addAction1 (classTextGrid, 0, U"TextGrid help", nullptr, 0, DO_TextGrid_help);
-	praat_addAction1 (classTextGrid, 1, U"Save as chronological text file...", nullptr, 0, DO_TextGrid_writeToChronologicalTextFile);
-	praat_addAction1 (classTextGrid, 1, U"Write to chronological text file...", nullptr, praat_HIDDEN, DO_TextGrid_writeToChronologicalTextFile);
-	praat_addAction1 (classTextGrid, 1, U"View & Edit alone", nullptr, 0, DO_TextGrid_edit);
-	praat_addAction1 (classTextGrid, 1, U"View & Edit", nullptr, praat_HIDDEN, DO_TextGrid_edit);
-	praat_addAction1 (classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_edit);
-	praat_addAction1 (classTextGrid, 1, U"View & Edit with Sound?", nullptr, praat_ATTRACTIVE, DO_info_TextGrid_Sound_edit);
-	praat_addAction1 (classTextGrid, 0, U"Draw -", nullptr, 0, nullptr);
-	praat_addAction1 (classTextGrid, 0, U"Draw...", nullptr, 1, DO_TextGrid_draw);
-	praat_addAction1 (classTextGrid, 1, U"Draw with Sound?", nullptr, 1, DO_info_TextGrid_Sound_draw);
-	praat_addAction1 (classTextGrid, 1, U"Draw with Pitch?", nullptr, 1, DO_info_TextGrid_Pitch_draw);
-	praat_addAction1 (classTextGrid, 1, U"List...", nullptr, 0, DO_TextGrid_list);
-	praat_addAction1 (classTextGrid, 0, U"Down to Table...", nullptr, 0, DO_TextGrid_downto_Table);
-	praat_addAction1 (classTextGrid, 0, U"Query -", nullptr, 0, nullptr);
+	praat_addAction1 (classIntervalTier, 0, U"IntervalTier help", 0, 0, DO_IntervalTier_help);
+	praat_addAction1 (classIntervalTier, 1, U"Save as Xwaves label file...", 0, 0, DO_IntervalTier_writeToXwaves);
+	praat_addAction1 (classIntervalTier, 1, U"Write to Xwaves label file...", 0, praat_HIDDEN, DO_IntervalTier_writeToXwaves);
+	praat_addAction1 (classIntervalTier, 0, U"Collect", 0, 0, 0);
+	praat_addAction1 (classIntervalTier, 0, U"Into TextGrid", 0, 0, DO_AnyTier_into_TextGrid);
+	praat_addAction1 (classIntervalTier, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classIntervalTier, 0, U"Get starting points...", 0, 0, DO_IntervalTier_getStartingPoints);
+	praat_addAction1 (classIntervalTier, 0, U"Get centre points...", 0, 0, DO_IntervalTier_getCentrePoints);
+	praat_addAction1 (classIntervalTier, 0, U"Get end points...", 0, 0, DO_IntervalTier_getEndPoints);
+	praat_addAction1 (classIntervalTier, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classIntervalTier, 0, U"Down to TableOfReal (any)", 0, 0, DO_IntervalTier_downto_TableOfReal_any);
+	praat_addAction1 (classIntervalTier, 0, U"Down to TableOfReal...", 0, 0, DO_IntervalTier_downto_TableOfReal);
+
+	praat_addAction1 (classLabel, 0, U"& Sound: To TextGrid?", 0, 0, DO_info_Label_Sound_to_TextGrid);
+
+	praat_addAction1 (classSpellingChecker, 1, U"View & Edit...", 0, praat_ATTRACTIVE, DO_SpellingChecker_edit);
+	praat_addAction1 (classSpellingChecker, 1, U"Edit...", 0, praat_HIDDEN, DO_SpellingChecker_edit);
+	praat_addAction1 (classSpellingChecker, 0, U"Query", 0, 0, 0);
+	praat_addAction1 (classSpellingChecker, 1, U"Is word allowed...", 0, 0, DO_SpellingChecker_isWordAllowed);
+	praat_addAction1 (classSpellingChecker, 1, U"Next not allowed word...", 0, 0, DO_SpellingChecker_nextNotAllowedWord);
+	praat_addAction1 (classSpellingChecker, 0, U"Modify", 0, 0, 0);
+	praat_addAction1 (classSpellingChecker, 0, U"Add new word...", 0, 0, DO_SpellingChecker_addNewWord);
+	praat_addAction1 (classSpellingChecker, 0, U"Analyze", 0, 0, 0);
+	praat_addAction1 (classSpellingChecker, 0, U"Extract WordList", 0, 0, DO_SpellingChecker_extractWordList);
+	praat_addAction1 (classSpellingChecker, 0, U"Extract user dictionary", 0, 0, DO_SpellingChecker_extractUserDictionary);
+
+	praat_addAction1 (classTextGrid, 0, U"TextGrid help", 0, 0, DO_TextGrid_help);
+	praat_addAction1 (classTextGrid, 1, U"Save as chronological text file...", 0, 0, DO_TextGrid_writeToChronologicalTextFile);
+	praat_addAction1 (classTextGrid, 1, U"Write to chronological text file...", 0, praat_HIDDEN, DO_TextGrid_writeToChronologicalTextFile);
+	praat_addAction1 (classTextGrid, 1, U"View & Edit alone", 0, 0, DO_TextGrid_edit);
+	praat_addAction1 (classTextGrid, 1, U"View & Edit", 0, praat_HIDDEN, DO_TextGrid_edit);
+	praat_addAction1 (classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_edit);
+	praat_addAction1 (classTextGrid, 1, U"View & Edit with Sound?", 0, praat_ATTRACTIVE, DO_info_TextGrid_Sound_edit);
+	praat_addAction1 (classTextGrid, 0, U"Draw -", 0, 0, 0);
+	praat_addAction1 (classTextGrid, 0, U"Draw...", 0, 1, DO_TextGrid_draw);
+	praat_addAction1 (classTextGrid, 1, U"Draw with Sound?", 0, 1, DO_info_TextGrid_Sound_draw);
+	praat_addAction1 (classTextGrid, 1, U"Draw with Pitch?", 0, 1, DO_info_TextGrid_Pitch_draw);
+	praat_addAction1 (classTextGrid, 1, U"List...", 0, 0, DO_TextGrid_list);
+	praat_addAction1 (classTextGrid, 0, U"Down to Table...", 0, 0, DO_TextGrid_downto_Table);
+	praat_addAction1 (classTextGrid, 0, U"Query -", 0, 0, 0);
 		praat_TimeFunction_query_init (classTextGrid);
-		praat_addAction1 (classTextGrid, 1, U"-- query textgrid --", nullptr, 1, nullptr);
-		praat_addAction1 (classTextGrid, 1, U"Get number of tiers", nullptr, 1, DO_TextGrid_getNumberOfTiers);
-		praat_addAction1 (classTextGrid, 1, U"Get tier name...", nullptr, 1, DO_TextGrid_getTierName);
-		praat_addAction1 (classTextGrid, 1, U"Is interval tier...", nullptr, 1, DO_TextGrid_isIntervalTier);
-		praat_addAction1 (classTextGrid, 1, U"-- query tier --", nullptr, 1, nullptr);
-		praat_addAction1 (classTextGrid, 1, U"Query interval tier", nullptr, 1, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Get number of intervals...", nullptr, 2, DO_TextGrid_getNumberOfIntervals);
-			praat_addAction1 (classTextGrid, 1, U"Get starting point...", nullptr, 2, DO_TextGrid_getStartingPoint);
-			praat_addAction1 (classTextGrid, 1, U"Get start point...", nullptr, praat_HIDDEN + praat_DEPTH_2, DO_TextGrid_getStartingPoint);
-			praat_addAction1 (classTextGrid, 1, U"Get end point...", nullptr, 2, DO_TextGrid_getEndPoint);
-			praat_addAction1 (classTextGrid, 1, U"Get label of interval...", nullptr, 2, DO_TextGrid_getLabelOfInterval);
-			praat_addAction1 (classTextGrid, 1, U"-- query interval from time --", nullptr, 2, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Get interval at time...", nullptr, 2, DO_TextGrid_getIntervalAtTime);
-			praat_addAction1 (classTextGrid, 1, U"Get low interval at time...", nullptr, 2, DO_TextGrid_getLowIntervalAtTime);
-			praat_addAction1 (classTextGrid, 1, U"Get high interval at time...", nullptr, 2, DO_TextGrid_getHighIntervalAtTime);
-			praat_addAction1 (classTextGrid, 1, U"Get interval edge from time...", nullptr, 2, DO_TextGrid_getIntervalEdgeFromTime);
-			praat_addAction1 (classTextGrid, 1, U"Get interval boundary from time...", nullptr, 2, DO_TextGrid_getIntervalBoundaryFromTime);
-			praat_addAction1 (classTextGrid, 1, U"-- query interval labels --", nullptr, 2, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Count intervals where...", nullptr, 2, DO_TextGrid_countIntervalsWhere);
-		praat_addAction1 (classTextGrid, 1, U"Query point tier", nullptr, 1, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Get number of points...", nullptr, 2, DO_TextGrid_getNumberOfPoints);
-			praat_addAction1 (classTextGrid, 1, U"Get time of point...", nullptr, 2, DO_TextGrid_getTimeOfPoint);
-			praat_addAction1 (classTextGrid, 1, U"Get label of point...", nullptr, 2, DO_TextGrid_getLabelOfPoint);
-			praat_addAction1 (classTextGrid, 1, U"-- query point from time --", nullptr, 2, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Get low index from time...", nullptr, 2, DO_TextGrid_getLowIndexFromTime);
-			praat_addAction1 (classTextGrid, 1, U"Get high index from time...", nullptr, 2, DO_TextGrid_getHighIndexFromTime);
-			praat_addAction1 (classTextGrid, 1, U"Get nearest index from time...", nullptr, 2, DO_TextGrid_getNearestIndexFromTime);
-			praat_addAction1 (classTextGrid, 1, U"-- query point labels --", nullptr, 2, nullptr);
-			praat_addAction1 (classTextGrid, 1, U"Count points where...", nullptr, 2, DO_TextGrid_countPointsWhere);
-		praat_addAction1 (classTextGrid, 1, U"-- query labels --", nullptr, praat_HIDDEN + praat_DEPTH_1, nullptr);
-		praat_addAction1 (classTextGrid, 1, U"Count labels...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_countLabels);   // hidden 2015
-	praat_addAction1 (classTextGrid, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classTextGrid, 0, U"Convert to backslash trigraphs", nullptr, 1, DO_TextGrid_genericize);
-		praat_addAction1 (classTextGrid, 0, U"Genericize", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_genericize);   // hidden 2007
-		praat_addAction1 (classTextGrid, 0, U"Convert to Unicode", nullptr, 1, DO_TextGrid_nativize);
-		praat_addAction1 (classTextGrid, 0, U"Nativize", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_nativize);   // hidden 2007
+		praat_addAction1 (classTextGrid, 1, U"-- query textgrid --", 0, 1, 0);
+		praat_addAction1 (classTextGrid, 1, U"Get number of tiers", 0, 1, DO_TextGrid_getNumberOfTiers);
+		praat_addAction1 (classTextGrid, 1, U"Get tier name...", 0, 1, DO_TextGrid_getTierName);
+		praat_addAction1 (classTextGrid, 1, U"Is interval tier...", 0, 1, DO_TextGrid_isIntervalTier);
+		praat_addAction1 (classTextGrid, 1, U"-- query tier --", 0, 1, 0);
+		praat_addAction1 (classTextGrid, 1, U"Query interval tier", 0, 1, 0);
+			praat_addAction1 (classTextGrid, 1, U"Get number of intervals...", 0, 2, DO_TextGrid_getNumberOfIntervals);
+			praat_addAction1 (classTextGrid, 1, U"Get starting point...", 0, 2, DO_TextGrid_getStartingPoint);
+			praat_addAction1 (classTextGrid, 1, U"Get start point...", 0, praat_HIDDEN + praat_DEPTH_2, DO_TextGrid_getStartingPoint);
+			praat_addAction1 (classTextGrid, 1, U"Get end point...", 0, 2, DO_TextGrid_getEndPoint);
+			praat_addAction1 (classTextGrid, 1, U"Get label of interval...", 0, 2, DO_TextGrid_getLabelOfInterval);
+			praat_addAction1 (classTextGrid, 1, U"-- query interval from time --", 0, 2, 0);
+			praat_addAction1 (classTextGrid, 1, U"Get interval at time...", 0, 2, DO_TextGrid_getIntervalAtTime);
+			praat_addAction1 (classTextGrid, 1, U"Get low interval at time...", 0, 2, DO_TextGrid_getLowIntervalAtTime);
+			praat_addAction1 (classTextGrid, 1, U"Get high interval at time...", 0, 2, DO_TextGrid_getHighIntervalAtTime);
+			praat_addAction1 (classTextGrid, 1, U"Get interval edge from time...", 0, 2, DO_TextGrid_getIntervalEdgeFromTime);
+			praat_addAction1 (classTextGrid, 1, U"Get interval boundary from time...", 0, 2, DO_TextGrid_getIntervalBoundaryFromTime);
+			praat_addAction1 (classTextGrid, 1, U"-- query interval labels --", 0, 2, 0);
+			praat_addAction1 (classTextGrid, 1, U"Count intervals where...", 0, 2, DO_TextGrid_countIntervalsWhere);
+		praat_addAction1 (classTextGrid, 1, U"Query point tier", 0, 1, 0);
+			praat_addAction1 (classTextGrid, 1, U"Get number of points...", 0, 2, DO_TextGrid_getNumberOfPoints);
+			praat_addAction1 (classTextGrid, 1, U"Get time of point...", 0, 2, DO_TextGrid_getTimeOfPoint);
+			praat_addAction1 (classTextGrid, 1, U"Get label of point...", 0, 2, DO_TextGrid_getLabelOfPoint);
+			praat_addAction1 (classTextGrid, 1, U"-- query point from time --", 0, 2, 0);
+			praat_addAction1 (classTextGrid, 1, U"Get low index from time...", 0, 2, DO_TextGrid_getLowIndexFromTime);
+			praat_addAction1 (classTextGrid, 1, U"Get high index from time...", 0, 2, DO_TextGrid_getHighIndexFromTime);
+			praat_addAction1 (classTextGrid, 1, U"Get nearest index from time...", 0, 2, DO_TextGrid_getNearestIndexFromTime);
+			praat_addAction1 (classTextGrid, 1, U"-- query point labels --", 0, 2, 0);
+			praat_addAction1 (classTextGrid, 1, U"Count points where...", 0, 2, DO_TextGrid_countPointsWhere);
+		praat_addAction1 (classTextGrid, 1, U"-- query labels --", 0, praat_HIDDEN + praat_DEPTH_1, 0);
+		praat_addAction1 (classTextGrid, 1, U"Count labels...", 0, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_countLabels);   // hidden 2015
+	praat_addAction1 (classTextGrid, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classTextGrid, 0, U"Convert to backslash trigraphs", 0, 1, DO_TextGrid_genericize);
+		praat_addAction1 (classTextGrid, 0, U"Genericize", 0, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_genericize);   // hidden 2007
+		praat_addAction1 (classTextGrid, 0, U"Convert to Unicode", 0, 1, DO_TextGrid_nativize);
+		praat_addAction1 (classTextGrid, 0, U"Nativize", 0, praat_HIDDEN + praat_DEPTH_1, DO_TextGrid_nativize);   // hidden 2007
 		praat_TimeFunction_modify_init (classTextGrid);
-		praat_addAction1 (classTextGrid, 0, U"-- modify tiers --", nullptr, 1, nullptr);
-		praat_addAction1 (classTextGrid, 0, U"Insert interval tier...", nullptr, 1, DO_TextGrid_insertIntervalTier);
-		praat_addAction1 (classTextGrid, 0, U"Insert point tier...", nullptr, 1, DO_TextGrid_insertPointTier);
-		praat_addAction1 (classTextGrid, 0, U"Duplicate tier...", nullptr, 1, DO_TextGrid_duplicateTier);
-		praat_addAction1 (classTextGrid, 0, U"Remove tier...", nullptr, 1, DO_TextGrid_removeTier);
-		praat_addAction1 (classTextGrid, 1, U"-- modify tier --", nullptr, 1, nullptr);
-		praat_addAction1 (classTextGrid, 0, U"Modify interval tier", nullptr, 1, nullptr);
-			praat_addAction1 (classTextGrid, 0, U"Insert boundary...", nullptr, 2, DO_TextGrid_insertBoundary);
-			praat_addAction1 (classTextGrid, 0, U"Remove left boundary...", nullptr, 2, DO_TextGrid_removeLeftBoundary);
-			praat_addAction1 (classTextGrid, 0, U"Remove right boundary...", nullptr, 2, DO_TextGrid_removeRightBoundary);
-			praat_addAction1 (classTextGrid, 0, U"Remove boundary at time...", nullptr, 2, DO_TextGrid_removeBoundaryAtTime);
-			praat_addAction1 (classTextGrid, 0, U"Set interval text...", nullptr, 2, DO_TextGrid_setIntervalText);
-		praat_addAction1 (classTextGrid, 0, U"Modify point tier", nullptr, 1, nullptr);
-			praat_addAction1 (classTextGrid, 0, U"Insert point...", nullptr, 2, DO_TextGrid_insertPoint);
-			praat_addAction1 (classTextGrid, 0, U"Remove point...", nullptr, 2, DO_TextGrid_removePoint);
-			praat_addAction1 (classTextGrid, 0, U"Remove points...", nullptr, 2, DO_TextGrid_removePoints);
-			praat_addAction1 (classTextGrid, 0, U"Set point text...", nullptr, 2, DO_TextGrid_setPointText);
-praat_addAction1 (classTextGrid, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classTextGrid, 1, U"Extract one tier...", nullptr, 0, DO_TextGrid_extractOneTier);
-	praat_addAction1 (classTextGrid, 1, U"Extract tier...", nullptr, praat_HIDDEN, DO_TextGrid_extractTier);   // hidden 2010
-	praat_addAction1 (classTextGrid, 1, U"Extract part...", nullptr, 0, DO_TextGrid_extractPart);
-	praat_addAction1 (classTextGrid, 1, U"Analyse interval tier -", nullptr, 0, nullptr);
-		praat_addAction1 (classTextGrid, 1, U"Get starting points...", nullptr, 1, DO_TextGrid_getStartingPoints);
-		praat_addAction1 (classTextGrid, 1, U"Get end points...", nullptr, 1, DO_TextGrid_getEndPoints);
-		praat_addAction1 (classTextGrid, 1, U"Get centre points...", nullptr, 1, DO_TextGrid_getCentrePoints);
-	praat_addAction1 (classTextGrid, 1, U"Analyse point tier -", nullptr, 0, nullptr);
-		praat_addAction1 (classTextGrid, 1, U"Get points...", nullptr, 1, DO_TextGrid_getPoints);
-		praat_addAction1 (classTextGrid, 1, U"Get points (preceded)...", nullptr, 1, DO_TextGrid_getPoints_preceded);
-		praat_addAction1 (classTextGrid, 1, U"Get points (followed)...", nullptr, 1, DO_TextGrid_getPoints_followed);
-praat_addAction1 (classTextGrid, 0, U"Synthesize", nullptr, 0, nullptr);
-	praat_addAction1 (classTextGrid, 0, U"Merge", nullptr, 0, DO_TextGrids_merge);
-	praat_addAction1 (classTextGrid, 0, U"Concatenate", nullptr, 0, DO_TextGrids_concatenate);
-
-	praat_addAction1 (classTextTier, 0, U"TextTier help", nullptr, 0, DO_TextTier_help);
-	praat_addAction1 (classTextTier, 0, U"Query -", nullptr, 0, nullptr);
+		praat_addAction1 (classTextGrid, 0, U"-- modify tiers --", 0, 1, 0);
+		praat_addAction1 (classTextGrid, 0, U"Insert interval tier...", 0, 1, DO_TextGrid_insertIntervalTier);
+		praat_addAction1 (classTextGrid, 0, U"Insert point tier...", 0, 1, DO_TextGrid_insertPointTier);
+		praat_addAction1 (classTextGrid, 0, U"Duplicate tier...", 0, 1, DO_TextGrid_duplicateTier);
+		praat_addAction1 (classTextGrid, 0, U"Remove tier...", 0, 1, DO_TextGrid_removeTier);
+		praat_addAction1 (classTextGrid, 1, U"-- modify tier --", 0, 1, 0);
+		praat_addAction1 (classTextGrid, 0, U"Modify interval tier", 0, 1, 0);
+			praat_addAction1 (classTextGrid, 0, U"Insert boundary...", 0, 2, DO_TextGrid_insertBoundary);
+			praat_addAction1 (classTextGrid, 0, U"Remove left boundary...", 0, 2, DO_TextGrid_removeLeftBoundary);
+			praat_addAction1 (classTextGrid, 0, U"Remove right boundary...", 0, 2, DO_TextGrid_removeRightBoundary);
+			praat_addAction1 (classTextGrid, 0, U"Remove boundary at time...", 0, 2, DO_TextGrid_removeBoundaryAtTime);
+			praat_addAction1 (classTextGrid, 0, U"Set interval text...", 0, 2, DO_TextGrid_setIntervalText);
+		praat_addAction1 (classTextGrid, 0, U"Modify point tier", 0, 1, 0);
+			praat_addAction1 (classTextGrid, 0, U"Insert point...", 0, 2, DO_TextGrid_insertPoint);
+			praat_addAction1 (classTextGrid, 0, U"Remove point...", 0, 2, DO_TextGrid_removePoint);
+			praat_addAction1 (classTextGrid, 0, U"Remove points...", 0, 2, DO_TextGrid_removePoints);
+			praat_addAction1 (classTextGrid, 0, U"Set point text...", 0, 2, DO_TextGrid_setPointText);
+praat_addAction1 (classTextGrid, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classTextGrid, 1, U"Extract one tier...", 0, 0, DO_TextGrid_extractOneTier);
+	praat_addAction1 (classTextGrid, 1, U"Extract tier...", 0, praat_HIDDEN, DO_TextGrid_extractTier);   // hidden 2010
+	praat_addAction1 (classTextGrid, 1, U"Extract part...", 0, 0, DO_TextGrid_extractPart);
+	praat_addAction1 (classTextGrid, 1, U"Analyse interval tier -", 0, 0, 0);
+		praat_addAction1 (classTextGrid, 1, U"Get starting points...", 0, 1, DO_TextGrid_getStartingPoints);
+		praat_addAction1 (classTextGrid, 1, U"Get end points...", 0, 1, DO_TextGrid_getEndPoints);
+		praat_addAction1 (classTextGrid, 1, U"Get centre points...", 0, 1, DO_TextGrid_getCentrePoints);
+	praat_addAction1 (classTextGrid, 1, U"Analyse point tier -", 0, 0, 0);
+		praat_addAction1 (classTextGrid, 1, U"Get points...", 0, 1, DO_TextGrid_getPoints);
+		praat_addAction1 (classTextGrid, 1, U"Get points (preceded)...", 0, 1, DO_TextGrid_getPoints_preceded);
+		praat_addAction1 (classTextGrid, 1, U"Get points (followed)...", 0, 1, DO_TextGrid_getPoints_followed);
+praat_addAction1 (classTextGrid, 0, U"Synthesize", 0, 0, 0);
+	praat_addAction1 (classTextGrid, 0, U"Merge", 0, 0, DO_TextGrids_merge);
+	praat_addAction1 (classTextGrid, 0, U"Concatenate", 0, 0, DO_TextGrids_concatenate);
+
+	praat_addAction1 (classTextTier, 0, U"TextTier help", 0, 0, DO_TextTier_help);
+	praat_addAction1 (classTextTier, 0, U"Query -", 0, 0, 0);
 		praat_TimeTier_query_init (classTextTier);
-		praat_addAction1 (classTextTier, 0, U"Get label of point...", nullptr, 1, DO_TextTier_getLabelOfPoint);
-	praat_addAction1 (classTextTier, 0, U"Modify -", nullptr, 0, nullptr);
+		praat_addAction1 (classTextTier, 0, U"Get label of point...", 0, 1, DO_TextTier_getLabelOfPoint);
+	praat_addAction1 (classTextTier, 0, U"Modify -", 0, 0, 0);
 		praat_TimeTier_modify_init (classTextTier);
-		praat_addAction1 (classTextTier, 0, U"Add point...", nullptr, 1, DO_TextTier_addPoint);
-	praat_addAction1 (classTextTier, 0, U"Analyse", nullptr, 0, nullptr);
-	praat_addAction1 (classTextTier, 0, U"Get points...", nullptr, 0, DO_TextTier_getPoints);
-	praat_addAction1 (classTextTier, 0, U"Collect", nullptr, 0, nullptr);
-	praat_addAction1 (classTextTier, 0, U"Into TextGrid", nullptr, 0, DO_AnyTier_into_TextGrid);
-	praat_addAction1 (classTextTier, 0, U"Convert", nullptr, 0, nullptr);
-	praat_addAction1 (classTextTier, 0, U"Down to PointProcess", nullptr, 0, DO_TextTier_downto_PointProcess);
-	praat_addAction1 (classTextTier, 0, U"Down to TableOfReal (any)", nullptr, 0, DO_TextTier_downto_TableOfReal_any);
-	praat_addAction1 (classTextTier, 0, U"Down to TableOfReal...", nullptr, 0, DO_TextTier_downto_TableOfReal);
-
-	praat_addAction1 (classWordList, 0, U"Query", nullptr, 0, nullptr);
-		praat_addAction1 (classWordList, 1, U"Has word...", nullptr, 0, DO_WordList_hasWord);
-	praat_addAction1 (classWordList, 0, U"Analyze", nullptr, 0, nullptr);
-		praat_addAction1 (classWordList, 0, U"To Strings", nullptr, 0, DO_WordList_to_Strings);
-	praat_addAction1 (classWordList, 0, U"Synthesize", nullptr, 0, nullptr);
-		praat_addAction1 (classWordList, 0, U"Up to SpellingChecker", nullptr, 0, DO_WordList_upto_SpellingChecker);
-
-	praat_addAction2 (classIntervalTier, 1, classPointProcess, 1, U"Start to centre...", nullptr, 0, DO_IntervalTier_PointProcess_startToCentre);
-	praat_addAction2 (classIntervalTier, 1, classPointProcess, 1, U"End to centre...", nullptr, 0, DO_IntervalTier_PointProcess_endToCentre);
-	praat_addAction2 (classIntervalTier, 0, classTextTier, 0, U"Collect", nullptr, 0, nullptr);
-	praat_addAction2 (classIntervalTier, 0, classTextTier, 0, U"Into TextGrid", nullptr, 0, DO_AnyTier_into_TextGrid);
-	praat_addAction2 (classLabel, 1, classSound, 1, U"To TextGrid", nullptr, 0, DO_Label_Sound_to_TextGrid);
-	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_TextGrid_LongSound_edit);
-	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_LongSound_edit);   // hidden 2011
-	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"Scale times", nullptr, 0, DO_TextGrid_LongSound_scaleTimes);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw -", nullptr, 0, nullptr);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw...", nullptr, 1, DO_TextGrid_Pitch_draw);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw logarithmic...", nullptr, 1, DO_TextGrid_Pitch_drawLogarithmic);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw semitones...", nullptr, 1, DO_TextGrid_Pitch_drawSemitones);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw mel...", nullptr, 1, DO_TextGrid_Pitch_drawMel);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw erb...", nullptr, 1, DO_TextGrid_Pitch_drawErb);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle...", nullptr, 1, DO_TextGrid_Pitch_speckle);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle logarithmic...", nullptr, 1, DO_TextGrid_Pitch_speckleLogarithmic);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle semitones...", nullptr, 1, DO_TextGrid_Pitch_speckleSemitones);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle mel...", nullptr, 1, DO_TextGrid_Pitch_speckleMel);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle erb...", nullptr, 1, DO_TextGrid_Pitch_speckleErb);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"-- draw separately --", nullptr, 1, nullptr);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately...", nullptr, 1, DO_TextGrid_Pitch_drawSeparately);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (logarithmic)...", nullptr, 1, DO_TextGrid_Pitch_drawSeparatelyLogarithmic);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (semitones)...", nullptr, 1, DO_TextGrid_Pitch_drawSeparatelySemitones);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (mel)...", nullptr, 1, DO_TextGrid_Pitch_drawSeparatelyMel);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (erb)...", nullptr, 1, DO_TextGrid_Pitch_drawSeparatelyErb);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately...", nullptr, 1, DO_TextGrid_Pitch_speckleSeparately);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (logarithmic)...", nullptr, 1, DO_TextGrid_Pitch_speckleSeparatelyLogarithmic);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (semitones)...", nullptr, 1, DO_TextGrid_Pitch_speckleSeparatelySemitones);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (mel)...", nullptr, 1, DO_TextGrid_Pitch_speckleSeparatelyMel);
-	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (erb)...", nullptr, 1, DO_TextGrid_Pitch_speckleSeparatelyErb);
-	praat_addAction2 (classPitch, 1, classTextTier, 1, U"To PitchTier...", nullptr, 0, DO_Pitch_TextTier_to_PitchTier);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_TextGrid_edit);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"View & Edit with callback...", nullptr, praat_HIDDEN, DO_TextGrid_editWithCallback);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_edit);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Draw...", nullptr, 0, DO_TextGrid_Sound_draw);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract -", nullptr, 0, nullptr);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract all intervals...", nullptr, praat_DEPTH_1, DO_TextGrid_Sound_extractAllIntervals);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract non-empty intervals...", nullptr, praat_DEPTH_1, DO_TextGrid_Sound_extractNonemptyIntervals);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract intervals...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_TextGrid_Sound_extractIntervals);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract intervals where...", nullptr, praat_DEPTH_1, DO_TextGrid_Sound_extractIntervalsWhere);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Modify TextGrid", nullptr, 0, nullptr);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Scale times", nullptr, 0, DO_TextGrid_Sound_scaleTimes);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Modify Sound", nullptr, 0, nullptr);
-	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Clone time domain", nullptr, 0, DO_TextGrid_Sound_cloneTimeDomain);
-	praat_addAction2 (classSpellingChecker, 1, classWordList, 1, U"Replace WordList", nullptr, 0, DO_SpellingChecker_replaceWordList);
-	praat_addAction2 (classSpellingChecker, 1, classStringSet, 1, U"Replace user dictionary", nullptr, 0, DO_SpellingChecker_replaceUserDictionary);
-	praat_addAction2 (classSpellingChecker, 1, classStrings, 1, U"Replace word list?", nullptr, 0, DO_SpellingChecker_replaceWordList_help);
-	praat_addAction2 (classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_TextGrid_SpellingChecker_edit);
-	praat_addAction2 (classSpellingChecker, 1, classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_SpellingChecker_edit);   // hidden 2011
-	praat_addAction2 (classTextGrid, 1, classTextTier, 1, U"Append", nullptr, 0, DO_TextGrid_AnyTier_append);
-	praat_addAction2 (classTextGrid, 1, classIntervalTier, 1, U"Append", nullptr, 0, DO_TextGrid_AnyTier_append);
-
-	praat_addAction3 (classLongSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_TextGrid_LongSound_SpellingChecker_edit);
-	praat_addAction3 (classLongSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_LongSound_SpellingChecker_edit);
-	praat_addAction3 (classSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_TextGrid_SpellingChecker_edit);
-	praat_addAction3 (classSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"Edit", nullptr, praat_HIDDEN, DO_TextGrid_SpellingChecker_edit);
+		praat_addAction1 (classTextTier, 0, U"Add point...", 0, 1, DO_TextTier_addPoint);
+	praat_addAction1 (classTextTier, 0, U"Analyse", 0, 0, 0);
+	praat_addAction1 (classTextTier, 0, U"Get points...", 0, 0, DO_TextTier_getPoints);
+	praat_addAction1 (classTextTier, 0, U"Collect", 0, 0, 0);
+	praat_addAction1 (classTextTier, 0, U"Into TextGrid", 0, 0, DO_AnyTier_into_TextGrid);
+	praat_addAction1 (classTextTier, 0, U"Convert", 0, 0, 0);
+	praat_addAction1 (classTextTier, 0, U"Down to PointProcess", 0, 0, DO_TextTier_downto_PointProcess);
+	praat_addAction1 (classTextTier, 0, U"Down to TableOfReal (any)", 0, 0, DO_TextTier_downto_TableOfReal_any);
+	praat_addAction1 (classTextTier, 0, U"Down to TableOfReal...", 0, 0, DO_TextTier_downto_TableOfReal);
+
+	praat_addAction1 (classWordList, 0, U"Query", 0, 0, 0);
+		praat_addAction1 (classWordList, 1, U"Has word...", 0, 0, DO_WordList_hasWord);
+	praat_addAction1 (classWordList, 0, U"Analyze", 0, 0, 0);
+		praat_addAction1 (classWordList, 0, U"To Strings", 0, 0, DO_WordList_to_Strings);
+	praat_addAction1 (classWordList, 0, U"Synthesize", 0, 0, 0);
+		praat_addAction1 (classWordList, 0, U"Up to SpellingChecker", 0, 0, DO_WordList_upto_SpellingChecker);
+
+	praat_addAction2 (classIntervalTier, 1, classPointProcess, 1, U"Start to centre...", 0, 0, DO_IntervalTier_PointProcess_startToCentre);
+	praat_addAction2 (classIntervalTier, 1, classPointProcess, 1, U"End to centre...", 0, 0, DO_IntervalTier_PointProcess_endToCentre);
+	praat_addAction2 (classIntervalTier, 0, classTextTier, 0, U"Collect", 0, 0, 0);
+	praat_addAction2 (classIntervalTier, 0, classTextTier, 0, U"Into TextGrid", 0, 0, DO_AnyTier_into_TextGrid);
+	praat_addAction2 (classLabel, 1, classSound, 1, U"To TextGrid", 0, 0, DO_Label_Sound_to_TextGrid);
+	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_TextGrid_LongSound_edit);
+	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_LongSound_edit);   // hidden 2011
+	praat_addAction2 (classLongSound, 1, classTextGrid, 1, U"Scale times", 0, 0, DO_TextGrid_LongSound_scaleTimes);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw -", 0, 0, 0);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw...", 0, 1, DO_TextGrid_Pitch_draw);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw logarithmic...", 0, 1, DO_TextGrid_Pitch_drawLogarithmic);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw semitones...", 0, 1, DO_TextGrid_Pitch_drawSemitones);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw mel...", 0, 1, DO_TextGrid_Pitch_drawMel);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw erb...", 0, 1, DO_TextGrid_Pitch_drawErb);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle...", 0, 1, DO_TextGrid_Pitch_speckle);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle logarithmic...", 0, 1, DO_TextGrid_Pitch_speckleLogarithmic);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle semitones...", 0, 1, DO_TextGrid_Pitch_speckleSemitones);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle mel...", 0, 1, DO_TextGrid_Pitch_speckleMel);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle erb...", 0, 1, DO_TextGrid_Pitch_speckleErb);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"-- draw separately --", 0, 1, 0);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately...", 0, 1, DO_TextGrid_Pitch_drawSeparately);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (logarithmic)...", 0, 1, DO_TextGrid_Pitch_drawSeparatelyLogarithmic);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (semitones)...", 0, 1, DO_TextGrid_Pitch_drawSeparatelySemitones);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (mel)...", 0, 1, DO_TextGrid_Pitch_drawSeparatelyMel);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Draw separately (erb)...", 0, 1, DO_TextGrid_Pitch_drawSeparatelyErb);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately...", 0, 1, DO_TextGrid_Pitch_speckleSeparately);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (logarithmic)...", 0, 1, DO_TextGrid_Pitch_speckleSeparatelyLogarithmic);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (semitones)...", 0, 1, DO_TextGrid_Pitch_speckleSeparatelySemitones);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (mel)...", 0, 1, DO_TextGrid_Pitch_speckleSeparatelyMel);
+	praat_addAction2 (classPitch, 1, classTextGrid, 1, U"Speckle separately (erb)...", 0, 1, DO_TextGrid_Pitch_speckleSeparatelyErb);
+	praat_addAction2 (classPitch, 1, classTextTier, 1, U"To PitchTier...", 0, 0, DO_Pitch_TextTier_to_PitchTier);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_TextGrid_edit);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"View & Edit with callback...", 0, praat_HIDDEN, DO_TextGrid_editWithCallback);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_edit);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Draw...", 0, 0, DO_TextGrid_Sound_draw);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract -", 0, 0, 0);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract all intervals...", 0, praat_DEPTH_1, DO_TextGrid_Sound_extractAllIntervals);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract non-empty intervals...", 0, praat_DEPTH_1, DO_TextGrid_Sound_extractNonemptyIntervals);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract intervals...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_TextGrid_Sound_extractIntervals);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Extract intervals where...", 0, praat_DEPTH_1, DO_TextGrid_Sound_extractIntervalsWhere);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Modify TextGrid", 0, 0, 0);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Scale times", 0, 0, DO_TextGrid_Sound_scaleTimes);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Modify Sound", 0, 0, 0);
+	praat_addAction2 (classSound, 1, classTextGrid, 1, U"Clone time domain", 0, 0, DO_TextGrid_Sound_cloneTimeDomain);
+	praat_addAction2 (classSpellingChecker, 1, classWordList, 1, U"Replace WordList", 0, 0, DO_SpellingChecker_replaceWordList);
+	praat_addAction2 (classSpellingChecker, 1, classSortedSetOfString, 1, U"Replace user dictionary", 0, 0, DO_SpellingChecker_replaceUserDictionary);
+	praat_addAction2 (classSpellingChecker, 1, classStrings, 1, U"Replace word list?", 0, 0, DO_SpellingChecker_replaceWordList_help);
+	praat_addAction2 (classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_TextGrid_SpellingChecker_edit);
+	praat_addAction2 (classSpellingChecker, 1, classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_SpellingChecker_edit);   // hidden 2011
+	praat_addAction2 (classTextGrid, 1, classTextTier, 1, U"Append", 0, 0, DO_TextGrid_AnyTier_append);
+	praat_addAction2 (classTextGrid, 1, classIntervalTier, 1, U"Append", 0, 0, DO_TextGrid_AnyTier_append);
+
+	praat_addAction3 (classLongSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_TextGrid_LongSound_SpellingChecker_edit);
+	praat_addAction3 (classLongSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_LongSound_SpellingChecker_edit);
+	praat_addAction3 (classSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_TextGrid_SpellingChecker_edit);
+	praat_addAction3 (classSound, 1, classSpellingChecker, 1, classTextGrid, 1, U"Edit", 0, praat_HIDDEN, DO_TextGrid_SpellingChecker_edit);
 }
 
 /* End of file praat_TextGrid_init.cpp */
diff --git a/gram/Network.cpp b/gram/Network.cpp
index 7c00c6e..f599b23 100644
--- a/gram/Network.cpp
+++ b/gram/Network.cpp
@@ -1,6 +1,6 @@
 /* Network.cpp
  *
- * Copyright (C) 2009-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2009-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@
 
 void structNetwork :: v_info ()
 {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Spreading rate: ", our spreadingRate);
 	MelderInfo_writeLine (U"Activity clipping rule: ", kNetwork_activityClippingRule_getText (our activityClippingRule));
 	MelderInfo_writeLine (U"Minimum activity: ", our minimumActivity);
@@ -70,7 +70,7 @@ void structNetwork :: v_info ()
 	MelderInfo_writeLine (U"Number of connections: ", our numberOfConnections);
 }
 
-Thing_implement (Network, Daata, 6);
+Thing_implement (Network, Data, 6);
 
 void Network_init (Network me, double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
@@ -98,17 +98,17 @@ void Network_init (Network me, double spreadingRate, enum kNetwork_activityClipp
 	my connections = NUMvector <structNetworkConnection> (1, numberOfConnections);
 }
 
-autoNetwork Network_create (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	double xmin, double xmax, double ymin, double ymax, long numberOfNodes, long numberOfConnections)
 {
 	try {
 		autoNetwork me = Thing_new (Network);
-		Network_init (me.get(), spreadingRate, activityClippingRule, minimumActivity, maximumActivity, activityLeak,
+		Network_init (me.peek(), spreadingRate, activityClippingRule, minimumActivity, maximumActivity, activityLeak,
 			learningRate, minimumWeight, maximumWeight, weightLeak,
 			xmin, xmax, ymin, ymax, numberOfNodes, numberOfConnections);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Network not created.");
 	}
@@ -277,7 +277,7 @@ void Network_normalizeWeights (Network me, long nodeMin, long nodeMax, long node
 	}
 }
 
-autoNetwork Network_create_rectangle (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create_rectangle (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	long numberOfRows, long numberOfColumns, bool bottomRowClamped,
@@ -321,13 +321,13 @@ autoNetwork Network_create_rectangle (double spreadingRate, enum kNetwork_activi
 			}
 		}
 		Melder_assert (iconn == my numberOfConnections);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Rectangular network not created.");
 	}
 }
 
-autoNetwork Network_create_rectangle_vertical (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create_rectangle_vertical (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	long numberOfRows, long numberOfColumns, bool bottomRowClamped,
@@ -364,7 +364,7 @@ autoNetwork Network_create_rectangle_vertical (double spreadingRate, enum kNetwo
 			}
 		}
 		Melder_assert (iconn == my numberOfConnections);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Vertical rectangular network not created.");
 	}
@@ -482,7 +482,7 @@ void Network_setActivityClippingRule (Network me, enum kNetwork_activityClipping
 	Network_zeroActivities (me, 0, 0);
 }
 
-autoTable Network_nodes_downto_Table (Network me, long fromNodeNumber, long toNodeNumber,
+Table Network_nodes_downto_Table (Network me, long fromNodeNumber, long toNodeNumber,
 	bool includeNodeNumbers,
 	bool includeX, bool includeY, int positionDecimals,
 	bool includeClamped,
@@ -498,23 +498,23 @@ autoTable Network_nodes_downto_Table (Network me, long fromNodeNumber, long toNo
 		autoTable thee = Table_createWithoutColumnNames (numberOfNodes,
 			includeNodeNumbers + includeX + includeY + includeClamped + includeActivity + includeExcitation);
 		long icol = 0;
-		if (includeNodeNumbers) Table_setColumnLabel (thee.get(), ++ icol, U"node");
-		if (includeX)           Table_setColumnLabel (thee.get(), ++ icol, U"x");
-		if (includeY)           Table_setColumnLabel (thee.get(), ++ icol, U"y");
-		if (includeClamped)     Table_setColumnLabel (thee.get(), ++ icol, U"clamped");
-		if (includeActivity)    Table_setColumnLabel (thee.get(), ++ icol, U"activity");
-		if (includeExcitation)  Table_setColumnLabel (thee.get(), ++ icol, U"excitation");
+		if (includeNodeNumbers) Table_setColumnLabel (thee.peek(), ++ icol, U"node");
+		if (includeX)           Table_setColumnLabel (thee.peek(), ++ icol, U"x");
+		if (includeY)           Table_setColumnLabel (thee.peek(), ++ icol, U"y");
+		if (includeClamped)     Table_setColumnLabel (thee.peek(), ++ icol, U"clamped");
+		if (includeActivity)    Table_setColumnLabel (thee.peek(), ++ icol, U"activity");
+		if (includeExcitation)  Table_setColumnLabel (thee.peek(), ++ icol, U"excitation");
 		for (long inode = fromNodeNumber; inode <= toNodeNumber; inode ++) {
 			NetworkNode node = & my nodes [inode];
 			icol = 0;
-			if (includeNodeNumbers) Table_setNumericValue (thee.get(), inode, ++ icol, inode);
-			if (includeX)           Table_setStringValue  (thee.get(), inode, ++ icol, Melder_fixed (node -> x, positionDecimals));
-			if (includeY)           Table_setStringValue  (thee.get(), inode, ++ icol, Melder_fixed (node -> y, positionDecimals));
-			if (includeClamped)     Table_setNumericValue (thee.get(), inode, ++ icol, node -> clamped);
-			if (includeActivity)    Table_setStringValue  (thee.get(), inode, ++ icol, Melder_fixed (node -> activity,   activityDecimals));
-			if (includeExcitation)  Table_setStringValue  (thee.get(), inode, ++ icol, Melder_fixed (node -> excitation, activityDecimals));
+			if (includeNodeNumbers) Table_setNumericValue (thee.peek(), inode, ++ icol, inode);
+			if (includeX)           Table_setStringValue  (thee.peek(), inode, ++ icol, Melder_fixed (node -> x, positionDecimals));
+			if (includeY)           Table_setStringValue  (thee.peek(), inode, ++ icol, Melder_fixed (node -> y, positionDecimals));
+			if (includeClamped)     Table_setNumericValue (thee.peek(), inode, ++ icol, node -> clamped);
+			if (includeActivity)    Table_setStringValue  (thee.peek(), inode, ++ icol, Melder_fixed (node -> activity,   activityDecimals));
+			if (includeExcitation)  Table_setStringValue  (thee.peek(), inode, ++ icol, Melder_fixed (node -> excitation, activityDecimals));
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
@@ -529,7 +529,7 @@ void Network_listNodes (Network me, long fromNodeNumber, long toNodeNumber,
 	try {
 		autoTable table = Network_nodes_downto_Table (me, fromNodeNumber, toNodeNumber, includeNodeNumbers,
 			includeX, includeY, positionDecimals, includeClamped, includeActivity, includeExcitation, activityDecimals);
-		Table_list (table.get(), false);
+		Table_list (table.peek(), false);
 	} catch (MelderError) {
 		Melder_throw (me, U": not listed.");
 	}
diff --git a/gram/Network.h b/gram/Network.h
index 9db0bab..0e18e7f 100644
--- a/gram/Network.h
+++ b/gram/Network.h
@@ -24,6 +24,7 @@
 #include "Network_enums.h"
 
 #include "Network_def.h"
+oo_CLASS_CREATE (Network, Data);
 
 void Network_init (Network me,
 	double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
@@ -31,18 +32,18 @@ void Network_init (Network me,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	double xmin, double xmax, double ymin, double ymax, long numberOfNodes, long numberOfConnections);
 
-autoNetwork Network_create (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	double xmin, double xmax, double ymin, double ymax, long numberOfNodes, long numberOfConnections);
 
-autoNetwork Network_create_rectangle (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create_rectangle (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	long numberOfRows, long numberOfColumns, bool bottomRowClamped,
 	double initialMinimumWeight, double initialMaximumWeight);
 
-autoNetwork Network_create_rectangle_vertical (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
+Network Network_create_rectangle_vertical (double spreadingRate, enum kNetwork_activityClippingRule activityClippingRule,
 	double minimumActivity, double maximumActivity, double activityLeak,
 	double learningRate, double minimumWeight, double maximumWeight, double weightLeak,
 	long numberOfRows, long numberOfColumns, bool bottomRowClamped,
@@ -67,7 +68,7 @@ void Network_setWeightLeak (Network me, double weightLeak);
 void Network_setActivityLeak (Network me, double activityLeak);
 void Network_setShunting (Network me, double shunting);
 void Network_setActivityClippingRule (Network me, enum kNetwork_activityClippingRule activityClippingRule);
-autoTable Network_nodes_downto_Table (Network me, long fromNodeNumber, long toNodeNumber,
+Table Network_nodes_downto_Table (Network me, long fromNodeNumber, long toNodeNumber,
 	bool includeNodeNumbers,
 	bool includeX, bool includeY, int positionDecimals,
 	bool includeClamped,
diff --git a/gram/Network_def.h b/gram/Network_def.h
index b1ad751..4231a27 100644
--- a/gram/Network_def.h
+++ b/gram/Network_def.h
@@ -25,7 +25,6 @@ oo_DEFINE_STRUCT (NetworkNode)
 	oo_DOUBLE (y)
 	oo_BOOLEAN (clamped)
 	oo_DOUBLE (activity)
-
 	#if ! oo_READING && ! oo_WRITING
 		oo_DOUBLE (excitation)
 	#endif
@@ -43,7 +42,6 @@ oo_DEFINE_STRUCT (NetworkConnection)
 	oo_FROM (1)
 		oo_DOUBLE (plasticity)
 	oo_ENDFROM
-
 	#if oo_READING
 		if (formatVersion < 1) {
 			plasticity = 1.0;
@@ -55,7 +53,7 @@ oo_END_STRUCT (NetworkConnection)
 
 
 #define ooSTRUCT Network
-oo_DEFINE_CLASS (Network, Daata)
+oo_DEFINE_CLASS (Network, Data)
 
 	oo_DOUBLE (minimumActivity)
 	oo_DOUBLE (maximumActivity)
@@ -79,7 +77,6 @@ oo_DEFINE_CLASS (Network, Daata)
 		oo_DOUBLE (outstar)
 	oo_ENDFROM
 	oo_DOUBLE (weightLeak)
-
 	#if oo_READING
 		if (formatVersion < 6) {
 			if (formatVersion < 5) {
@@ -91,7 +88,6 @@ oo_DEFINE_CLASS (Network, Daata)
 			our activityLeak = - our activityLeak;   // convert self-excitation to activity leak
 		}
 	#endif
-
 	oo_DOUBLE (xmin)
 	oo_DOUBLE (xmax)
 	oo_DOUBLE (ymin)
diff --git a/gram/OTGrammar.cpp b/gram/OTGrammar.cpp
index e3c8714..7223194 100644
--- a/gram/OTGrammar.cpp
+++ b/gram/OTGrammar.cpp
@@ -1,6 +1,6 @@
 /* OTGrammar.cpp
  *
- * Copyright (C) 1997-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -98,7 +98,7 @@
 
 void structOTGrammar :: v_info ()
 {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	long numberOfCandidates = 0, numberOfViolations = 0;
 	for (long itab = 1; itab <= numberOfTableaus; itab ++) {
 		numberOfCandidates += tableaus [itab]. numberOfCandidates;
@@ -264,8 +264,8 @@ void structOTGrammar :: v_readText (MelderReadText text, int formatVersion) {
 			 U" (input: ", tableau -> input, U")"
 			 U" in line ", MelderReadText_getLineNumber (text),
 			 itab == 1 ? U"." : U", or perhaps wrong number of candidates for input " U_LEFT_GUILLEMET,
-			 itab == 1 ? nullptr : tableaus [itab - 1]. input,
-			 itab == 1 ? nullptr : U_RIGHT_GUILLEMET U".");
+			 itab == 1 ? NULL : tableaus [itab - 1]. input,
+			 itab == 1 ? NULL : U_RIGHT_GUILLEMET U".");
 		tableau -> candidates = NUMvector <structOTGrammarCandidate> (1, tableau -> numberOfCandidates);
 		for (long icand = 1; icand <= tableau -> numberOfCandidates; icand ++) {
 			OTGrammarCandidate candidate = & tableau -> candidates [icand];
@@ -296,7 +296,7 @@ void structOTGrammar :: v_readText (MelderReadText text, int formatVersion) {
 	OTGrammar_checkIndex (this);
 }
 
-Thing_implement (OTGrammar, Daata, 2);
+Thing_implement (OTGrammar, Data, 2);
 
 Thing_implement (OTHistory, TableOfReal, 0);
 
@@ -584,8 +584,8 @@ void OTGrammar_getInterpretiveParse (OTGrammar me, const char32 *partialOutput,
 			}
 		}
 		if (itab_best == 0) Melder_throw (U"The partial output \"", partialOutput, U"\" does not match any candidate for any input form.");
-		if (bestTableau) *bestTableau = itab_best;
-		if (bestCandidate) *bestCandidate = icand_best;
+		if (bestTableau != NULL) *bestTableau = itab_best;
+		if (bestCandidate != NULL) *bestCandidate = icand_best;
 	} catch (MelderError) {
 		Melder_throw (U"Interpretive parse not computed.");
 	}
@@ -598,7 +598,7 @@ static void OTGrammar_getInterpretiveParse_opt (OTGrammar me, long ipartialOutpu
 			OTGrammarTableau tableau = & my tableaus [itab];
 			for (long icand = 1; icand <= tableau -> numberOfCandidates; icand ++) {
 				OTGrammarCandidate cand = & tableau -> candidates [icand];
-				Melder_assert (cand -> partialOutputMatches);
+				Melder_assert (cand -> partialOutputMatches != NULL);
 				if (cand -> partialOutputMatches [ipartialOutput]) {   // T&S' idea of surface->overt mapping
 					if (itab_best == 0) {
 						itab_best = itab;   // the first compatible input/output pair found is the first guess for the best candidate
@@ -631,8 +631,8 @@ static void OTGrammar_getInterpretiveParse_opt (OTGrammar me, long ipartialOutpu
 			}
 		}
 		Melder_assert (itab_best != 0);
-		if (bestTableau) *bestTableau = itab_best;
-		if (bestCandidate) *bestCandidate = icand_best;
+		if (bestTableau != NULL) *bestTableau = itab_best;
+		if (bestCandidate != NULL) *bestCandidate = icand_best;
 	} catch (MelderError) {
 		Melder_throw (U"Interpretive parse not computed.");
 	}
@@ -675,8 +675,8 @@ bool OTGrammar_isPartialOutputSinglyGrammatical (OTGrammar me, const char32 *par
 					 */
 					for (long jcand = 1; jcand <= tableau -> numberOfCandidates; jcand ++) {
 						if (OTGrammar_compareCandidates (me, itab, jcand, itab, icand) == 0) {
-							if (! str32str (tableau -> candidates [jcand]. output, partialOutput)) {
-								return false;   // partial output is multiply optimal
+							if (str32str (tableau -> candidates [jcand]. output, partialOutput) == NULL) {
+								return false;   // Partial output is multiply optimal.
 							}
 						}
 					}
@@ -966,7 +966,7 @@ void OTGrammar_drawTableau (OTGrammar me, Graphics g, bool vertical, const char3
 				if (my decisionStrategy == kOTGrammar_decisionStrategy_EXPONENTIAL_HG ||
 					my decisionStrategy == kOTGrammar_decisionStrategy_EXPONENTIAL_MAXIMUM_ENTROPY)
 				{
-					//value = value > 1e-308 ? 1000 : value < -1e308 ? -1000 : - log (- value);
+					//value = value > -1e-300 ? 1000 : value < -1e300 ? -1000 : - log (- value);
 					Graphics_text (g, x, y + descent, Melder_float (Melder_half (value)));
 				} else {
 					Graphics_text (g, x, y + descent, Melder_fixed (value, 3));
@@ -985,7 +985,7 @@ void OTGrammar_drawTableau (OTGrammar me, Graphics g, bool vertical, const char3
 	}
 }
 
-autoStrings OTGrammar_generateInputs (OTGrammar me, long numberOfTrials) {
+Strings OTGrammar_generateInputs (OTGrammar me, long numberOfTrials) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector <char32 *> (1, thy numberOfStrings = numberOfTrials);
@@ -993,20 +993,20 @@ autoStrings OTGrammar_generateInputs (OTGrammar me, long numberOfTrials) {
 			long itab = NUMrandomInteger (1, my numberOfTableaus);
 			thy strings [i] = Melder_dup (my tableaus [itab]. input);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": inputs not generated.");
 	}
 }
 
-autoStrings OTGrammar_getInputs (OTGrammar me) {
+Strings OTGrammar_getInputs (OTGrammar me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector <char32 *> (1, thy numberOfStrings = my numberOfTableaus);
 		for (long i = 1; i <= my numberOfTableaus; i ++) {
 			thy strings [i] = Melder_dup (my tableaus [i]. input);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": inputs not gotten.");
 	}
@@ -1025,7 +1025,7 @@ void OTGrammar_inputToOutput (OTGrammar me, const char32 *input, char32 *output,
 	}
 }
 
-autoStrings OTGrammar_inputsToOutputs (OTGrammar me, Strings inputs, double evaluationNoise) {
+Strings OTGrammar_inputsToOutputs (OTGrammar me, Strings inputs, double evaluationNoise) {
 	try {
 		autoStrings him = Thing_new (Strings);
 		long n = inputs -> numberOfStrings;
@@ -1036,13 +1036,13 @@ autoStrings OTGrammar_inputsToOutputs (OTGrammar me, Strings inputs, double eval
 			OTGrammar_inputToOutput (me, inputs -> strings [i], output, evaluationNoise);
 			his strings [i] = Melder_dup (output);
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": outputs not computed.");
 	}
 }
 
-autoStrings OTGrammar_inputToOutputs (OTGrammar me, const char32 *input, long n, double evaluationNoise) {
+Strings OTGrammar_inputToOutputs (OTGrammar me, const char32 *input, long n, double evaluationNoise) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy numberOfStrings = n;
@@ -1052,13 +1052,13 @@ autoStrings OTGrammar_inputToOutputs (OTGrammar me, const char32 *input, long n,
 			OTGrammar_inputToOutput (me, input, output, evaluationNoise);
 			thy strings [i] = Melder_dup (output);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": output not computed.");
 	}
 }
 
-autoDistributions OTGrammar_to_Distribution (OTGrammar me, long trialsPerInput, double noise) {
+Distributions OTGrammar_to_Distribution (OTGrammar me, long trialsPerInput, double noise) {
 	try {
 		long totalNumberOfOutputs = 0, nout = 0;
 		/*
@@ -1096,13 +1096,13 @@ autoDistributions OTGrammar_to_Distribution (OTGrammar me, long trialsPerInput,
 			 */
 			nout += tableau -> numberOfCandidates;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": output distribution not computed.");
 	}
 }
 
-autoPairDistribution OTGrammar_to_PairDistribution (OTGrammar me, long trialsPerInput, double noise) {
+PairDistribution OTGrammar_to_PairDistribution (OTGrammar me, long trialsPerInput, double noise) {
 	try {
 		long totalNumberOfOutputs = 0, nout = 0;
 		/*
@@ -1125,22 +1125,23 @@ autoPairDistribution OTGrammar_to_PairDistribution (OTGrammar me, long trialsPer
 			 * Copy the input and output strings to the target object.
 			 */
 			for (long icand = 1; icand <= tableau -> numberOfCandidates; icand ++) {
-				PairDistribution_add (thee.get(), tableau -> input, tableau -> candidates [icand]. output, 0.0);
+				PairDistribution_add (thee.peek(), tableau -> input, tableau -> candidates [icand]. output, 0);
 			}
 			/*
 			 * Compute a number of outputs and store the results.
 			 */
+			PairProbability *p = (PairProbability *) thy pairs -> item;   // may have changed after PairDistribution_add !!!
 			for (long itrial = 1; itrial <= trialsPerInput; itrial ++) {
 				OTGrammar_newDisharmonies (me, noise);
 				long iwinner = OTGrammar_getWinner (me, itab);
-				thy pairs.at [nout + iwinner] -> weight += 1.0;
+				p [nout + iwinner] -> weight += 1;
 			}
 			/*
 			 * Update the offset.
 			 */
 			nout += tableau -> numberOfCandidates;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": output distribution not computed.");
 	}
@@ -1157,7 +1158,7 @@ static bool honoursFixedRankings (OTGrammar me) {
 	return true;
 }
 
-autoDistributions OTGrammar_measureTypology (OTGrammar me) {
+Distributions OTGrammar_measureTypology (OTGrammar me) {
 	try {
 		long totalNumberOfOutputs = 0, nout = 0, ncons = my numberOfConstraints, nperm, factorial [1+12];
 		if (ncons > 12)
@@ -1218,7 +1219,7 @@ autoDistributions OTGrammar_measureTypology (OTGrammar me) {
 			 */
 			nout += tableau -> numberOfCandidates;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": typology not measured.");
 	}
@@ -1228,17 +1229,17 @@ static double learningStep (double mean, double relativeSpreading) {
 	return relativeSpreading == 0.0 ? mean : NUMrandomGauss (mean, relativeSpreading * mean);
 }
 
-static void OTGrammar_honourLocalRankings (OTGrammar me, double plasticity, double relativePlasticityNoise, bool *grammarHasChanged) {
-	bool improved;
+static void OTGrammar_honourLocalRankings (OTGrammar me, double plasticity, double relativePlasticityNoise, int *grammarHasChanged) {
+	int improved;
 	do {
-		improved = false;
+		improved = FALSE;
 		for (long irank = 1; irank <= my numberOfFixedRankings; irank ++) {
 			OTGrammarFixedRanking fixedRanking = & my fixedRankings [irank];
 			OTGrammarConstraint higher = & my constraints [fixedRanking -> higher], lower = & my constraints [fixedRanking -> lower];
 			while (higher -> ranking <= lower -> ranking) {
 				lower -> ranking -= learningStep (plasticity, relativePlasticityNoise);
-				if (grammarHasChanged) *grammarHasChanged = true;
-				improved = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = TRUE;
+				improved = TRUE;
 			}
 		}
 	} while (improved);
@@ -1246,7 +1247,7 @@ static void OTGrammar_honourLocalRankings (OTGrammar me, double plasticity, doub
 
 static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, long iadult,
 	int updateRule, int honourLocalRankings,
-	double plasticity, double relativePlasticityNoise, int warnIfStalled, bool *grammarHasChanged)
+	double plasticity, double relativePlasticityNoise, int warnIfStalled, int *grammarHasChanged)
 {
 	try {
 		OTGrammarTableau tableau = & my tableaus [itab];
@@ -1275,12 +1276,12 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 			if (adultMarks > winnerMarks) {
 				if (multiplyStepByNumberOfViolations) constraintStep *= adultMarks - winnerMarks;
 				constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak);
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 			if (winnerMarks > adultMarks) {
 				if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 				constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak);
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_SYMMETRIC_ALL) {
 			bool changed = false;
@@ -1311,7 +1312,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					my constraints [icons]. ranking -= averageWeight;
 				}
 			}
-			if (grammarHasChanged) *grammarHasChanged = changed;
+			if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 		} else if (updateRule == kOTGrammar_rerankingStrategy_SYMMETRIC_ALL_SKIPPABLE) {
 			bool changed = false;
 			int winningConstraints = 0, adultConstraints = 0;
@@ -1348,7 +1349,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					my constraints [icons]. ranking -= averageWeight;
 				}
 			}
-			if (grammarHasChanged) *grammarHasChanged = changed;
+			if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_UNCANCELLED) {
 			int winningConstraints = 0, adultConstraints = 0;
 			for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -1366,13 +1367,13 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					if (multiplyStepByNumberOfViolations) constraintStep *= adultMarks - winnerMarks;
 					constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) / adultConstraints;
 					//constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) * winningConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 				if (winnerMarks > adultMarks) {
 					if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 					constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / winningConstraints;
 					//constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) * adultConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL) {
@@ -1391,12 +1392,12 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 				if (adultMarks > 0) {
 					if (multiplyStepByNumberOfViolations) constraintStep *= adultMarks /*- winnerMarks*/;
 					constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) / adultConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 				if (winnerMarks > 0) {
 					if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks /*- adultMarks*/;
 					constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / winningConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_EDCD || updateRule == kOTGrammar_rerankingStrategy_EDCD_WITH_VACATION) {
@@ -1439,7 +1440,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 						OTGrammarConstraint constraint = & my constraints [icons];
 						if (constraint -> ranking < pivotRanking) {
 							constraint -> ranking -= numberOfConstraintsToDemote * step * constraint -> plasticity;
-							if (grammarHasChanged) *grammarHasChanged = true;
+							if (grammarHasChanged != NULL) *grammarHasChanged = true;
 						}
 					}
 				}
@@ -1458,7 +1459,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					if (constraint -> ranking >= pivotRanking) {
 						numberOfConstraintsDemoted += 1;
 						constraint -> ranking = pivotRanking - numberOfConstraintsDemoted * constraintStep;   // this preserves the order of the demotees
-						if (grammarHasChanged) *grammarHasChanged = true;
+						if (grammarHasChanged != NULL) *grammarHasChanged = true;
 					}
 				}
 			}
@@ -1487,7 +1488,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 			offendingConstraint = & my constraints [my index [crucialAdultMark]];
 			double constraintStep = step * offendingConstraint -> plasticity;
 			offendingConstraint -> ranking -= constraintStep;
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGHEST_DOWN) {
 			long numberOfUp = 0;
 			for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -1506,7 +1507,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					if (winnerMarks > adultMarks) {
 						if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 						constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / numberOfUp;
-						if (grammarHasChanged) *grammarHasChanged = true;
+						if (grammarHasChanged != NULL) *grammarHasChanged = true;
 					}
 				}
 				long crucialAdultMark, winnerMarks = 0, adultMarks = 0;
@@ -1531,7 +1532,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 				double constraintStep = step * offendingConstraint -> plasticity;
 				if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 				offendingConstraint -> ranking -= /*numberOfUp **/ constraintStep * (1.0 - offendingConstraint -> ranking * my leak);
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGHEST_DOWN_2012) {
 			long numberOfUp = 0;
@@ -1551,7 +1552,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 					if (winnerMarks > adultMarks) {
 						if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 						constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / (numberOfUp + 1);
-						if (grammarHasChanged) *grammarHasChanged = true;
+						if (grammarHasChanged != NULL) *grammarHasChanged = true;
 					}
 				}
 				long crucialAdultMark, winnerMarks = 0, adultMarks = 0;
@@ -1576,7 +1577,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 				double constraintStep = step * offendingConstraint -> plasticity;
 				if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - adultMarks;
 				offendingConstraint -> ranking -= /*numberOfUp **/ constraintStep * (1.0 - offendingConstraint -> ranking * my leak);
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGH_DOWN) {
 			long numberOfDown = 0, numberOfUp = 0, lowestDemotableConstraint = 0;
@@ -1616,7 +1617,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 						}
 					}
 				}
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGH_DOWN_2012) {
 			long numberOfDown = 0, numberOfUp = 0, lowestDemotableConstraint = 0;
@@ -1656,7 +1657,7 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 						}
 					}
 				}
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		}
 		if (honourLocalRankings && my numberOfFixedRankings) {
@@ -1668,12 +1669,12 @@ static void OTGrammar_modifyRankings (OTGrammar me, long itab, long iwinner, lon
 }
 
 void OTGrammar_learnOne (OTGrammar me, const char32 *input, const char32 *adultOutput,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double plasticity, double relativePlasticityNoise, bool newDisharmonies, bool warnIfStalled, bool *grammarHasChanged)
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double plasticity, double relativePlasticityNoise, int newDisharmonies, int warnIfStalled, int *grammarHasChanged)
 {
 	try {
 		if (newDisharmonies) OTGrammar_newDisharmonies (me, evaluationNoise);
-		if (grammarHasChanged) *grammarHasChanged = false;
+		if (grammarHasChanged != NULL) *grammarHasChanged = FALSE;
 
 		/*
 		 * Evaluate the input in the learner's hypothesis.
@@ -1717,7 +1718,7 @@ void OTGrammar_learnOne (OTGrammar me, const char32 *input, const char32 *adultO
 }
 
 void OTGrammar_learn (OTGrammar me, Strings inputs, Strings outputs,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double plasticity, double relativePlasticityNoise, long numberOfChews)
 {
 	if (! inputs) inputs = outputs;
@@ -1729,7 +1730,7 @@ void OTGrammar_learn (OTGrammar me, Strings inputs, Strings outputs,
 			for (long ichew = 1; ichew <= numberOfChews; ichew ++) {
 				OTGrammar_learnOne (me, inputs -> strings [i], outputs -> strings [i],
 					evaluationNoise, updateRule, honourLocalRankings,
-					plasticity, relativePlasticityNoise, true, true, nullptr);
+					plasticity, relativePlasticityNoise, TRUE, TRUE, NULL);
 			}
 		}
 	} catch (MelderError) {
@@ -1738,7 +1739,7 @@ void OTGrammar_learn (OTGrammar me, Strings inputs, Strings outputs,
 }
 
 void OTGrammar_PairDistribution_learn (OTGrammar me, PairDistribution thee,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
 	long numberOfPlasticities, double relativePlasticityNoise, long numberOfChews)
 {
@@ -1755,14 +1756,13 @@ void OTGrammar_PairDistribution_learn (OTGrammar me, PairDistribution thee,
 				PairDistribution_peekPair (thee, & input, & output);
 				++ idatum;
 				if (monitor.graphics() && idatum % (numberOfData / 400 + 1) == 0) {
-					Graphics_beginMovieFrame (monitor.graphics(), nullptr);
 					Graphics_setWindow (monitor.graphics(), 0, numberOfData, 50, 150);
 					for (long icons = 1; icons <= 14 && icons <= my numberOfConstraints; icons ++) {
 						Graphics_setGrey (monitor.graphics(), (double) icons / 14);
 						Graphics_line (monitor.graphics(), idatum, my constraints [icons]. ranking,
 							idatum, my constraints [icons]. ranking+1);
 					}
-					Graphics_endMovieFrame (monitor.graphics(), 0.0);
+					Graphics_flushWs (monitor.graphics());   // because drawing is faster than progress loop
 				}
 				Melder_monitor ((double) idatum / numberOfData,
 					U"Processing input-output pair ", idatum,
@@ -1770,7 +1770,7 @@ void OTGrammar_PairDistribution_learn (OTGrammar me, PairDistribution thee,
 				for (long ichew = 1; ichew <= numberOfChews; ichew ++) {
 					OTGrammar_learnOne (me, input, output,
 						evaluationNoise, updateRule, honourLocalRankings,
-						plasticity, relativePlasticityNoise, true, true, nullptr);
+						plasticity, relativePlasticityNoise, TRUE, TRUE, NULL);
 				}
 			}
 			plasticity *= plasticityDecrement;
@@ -1784,10 +1784,10 @@ void OTGrammar_PairDistribution_learn (OTGrammar me, PairDistribution thee,
 
 static long PairDistribution_getNumberOfAttestedOutputs (PairDistribution me, const char32 *input, char32 **attestedOutput) {
 	long result = 0;
-	for (long ipair = 1; ipair <= my pairs.size; ipair ++) {
-		PairProbability pair = my pairs.at [ipair];
+	for (long ipair = 1; ipair <= my pairs -> size; ipair ++) {
+		PairProbability pair = (PairProbability) my pairs -> item [ipair];
 		if (str32equ (pair -> string1, input) && pair -> weight > 0.0) {
-			if (attestedOutput) *attestedOutput = pair -> string2;
+			if (attestedOutput != NULL) *attestedOutput = pair -> string2;
 			result ++;
 		}
 	}
@@ -1795,7 +1795,7 @@ static long PairDistribution_getNumberOfAttestedOutputs (PairDistribution me, co
 }
 
 bool OTGrammar_PairDistribution_findPositiveWeights_e (OTGrammar me, PairDistribution thee, double weightFloor, double marginOfSeparation) {
-	NUMlinprog linprog = nullptr;
+	NUMlinprog linprog = NULL;
 	try {
 		bool result = false;
 		if (my decisionStrategy != kOTGrammar_decisionStrategy_HARMONIC_GRAMMAR &&
@@ -1811,14 +1811,14 @@ bool OTGrammar_PairDistribution_findPositiveWeights_e (OTGrammar me, PairDistrib
 		 */
 		for (long itab = 1; itab <= my numberOfTableaus; itab ++) {
 			OTGrammarTableau tab = & my tableaus [itab];
-			char32 *attestedOutput = nullptr;
+			char32 *attestedOutput = NULL;
 			long numberOfAttestedOutputs = PairDistribution_getNumberOfAttestedOutputs (thee, tab -> input, & attestedOutput);
 			if (numberOfAttestedOutputs == 0) {
 				Melder_throw (U"Input \"", my tableaus [itab]. input, U"\" has no attested output.");
 			} else if (numberOfAttestedOutputs > 1) {
 				Melder_throw (U"Input \"", my tableaus [itab]. input, U"\" has more than one attested output.");
 			} else {
-				Melder_assert (attestedOutput);
+				Melder_assert (attestedOutput != NULL);
 				for (long icand = 1; icand <= tab -> numberOfCandidates; icand ++) {
 					OTGrammarCandidate cand = & tab -> candidates [icand];
 					if (str32equ (attestedOutput, cand -> output)) {
@@ -1926,18 +1926,18 @@ double *theSaveRankings, *theSaveDisharmonies;
 int *theSaveTiedToTheLeft, *theSaveTiedToTheRight;
 static void OTGrammar_save (OTGrammar me) {
 	if (my numberOfConstraints != theSaveNumberOfConstraints) {
-		NUMvector_free (theSaveIndex, 1); theSaveIndex = nullptr;
-		NUMvector_free (theSaveRankings, 1); theSaveRankings = nullptr;
-		NUMvector_free (theSaveDisharmonies, 1); theSaveDisharmonies = nullptr;
-		NUMvector_free (theSaveTiedToTheLeft, 1); theSaveTiedToTheLeft = nullptr;
-		NUMvector_free (theSaveTiedToTheRight, 1); theSaveTiedToTheRight = nullptr;
+		NUMvector_free (theSaveIndex, 1); theSaveIndex = NULL;
+		NUMvector_free (theSaveRankings, 1); theSaveRankings = NULL;
+		NUMvector_free (theSaveDisharmonies, 1); theSaveDisharmonies = NULL;
+		NUMvector_free (theSaveTiedToTheLeft, 1); theSaveTiedToTheLeft = NULL;
+		NUMvector_free (theSaveTiedToTheRight, 1); theSaveTiedToTheRight = NULL;
 		theSaveNumberOfConstraints = my numberOfConstraints;
 	}
-	if (! theSaveIndex) theSaveIndex = NUMvector <long> (1, my numberOfConstraints);
-	if (! theSaveRankings) theSaveRankings = NUMvector <double> (1, my numberOfConstraints);
-	if (! theSaveDisharmonies) theSaveDisharmonies = NUMvector <double> (1, my numberOfConstraints);
-	if (! theSaveTiedToTheLeft) theSaveTiedToTheLeft = NUMvector <int> (1, my numberOfConstraints);
-	if (! theSaveTiedToTheRight) theSaveTiedToTheRight = NUMvector <int> (1, my numberOfConstraints);
+	if (theSaveIndex == NULL) theSaveIndex = NUMvector <long> (1, my numberOfConstraints);
+	if (theSaveRankings == NULL) theSaveRankings = NUMvector <double> (1, my numberOfConstraints);
+	if (theSaveDisharmonies == NULL) theSaveDisharmonies = NUMvector <double> (1, my numberOfConstraints);
+	if (theSaveTiedToTheLeft == NULL) theSaveTiedToTheLeft = NUMvector <int> (1, my numberOfConstraints);
+	if (theSaveTiedToTheRight == NULL) theSaveTiedToTheRight = NUMvector <int> (1, my numberOfConstraints);
 	for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
 		theSaveIndex [icons] = my index [icons];
 		theSaveRankings [icons] = my constraints [icons]. ranking;
@@ -1957,8 +1957,8 @@ static void OTGrammar_restore (OTGrammar me) {
 }
 
 void OTGrammar_learnOneFromPartialOutput (OTGrammar me, const char32 *partialAdultOutput,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double plasticity, double relativePlasticityNoise, long numberOfChews, bool warnIfStalled)
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double plasticity, double relativePlasticityNoise, long numberOfChews, int warnIfStalled)
 {
 	try {
 		OTGrammar_newDisharmonies (me, evaluationNoise);
@@ -1969,7 +1969,7 @@ void OTGrammar_learnOneFromPartialOutput (OTGrammar me, const char32 *partialAdu
 		for (; ichew <= numberOfChews; ichew ++) {
 			long assumedAdultInputTableau, assumedAdultCandidate;
 			OTGrammar_getInterpretiveParse (me, partialAdultOutput, & assumedAdultInputTableau, & assumedAdultCandidate);
-			bool grammarHasChanged = false;
+			int grammarHasChanged;
 			OTGrammar_learnOne (me,
 				my tableaus [assumedAdultInputTableau]. input,
 				my tableaus [assumedAdultInputTableau]. candidates [assumedAdultCandidate]. output,
@@ -1999,8 +1999,8 @@ void OTGrammar_learnOneFromPartialOutput (OTGrammar me, const char32 *partialAdu
 }
 
 static void OTGrammar_learnOneFromPartialOutput_opt (OTGrammar me, const char32 *partialAdultOutput, long ipartialAdultOutput,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double plasticity, double relativePlasticityNoise, long numberOfChews, bool warnIfStalled,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double plasticity, double relativePlasticityNoise, long numberOfChews, int warnIfStalled,
 	bool resampleForVirtualProduction, bool compareOnlyPartialOutput, long resampleForCorrectForm)
 {
 	try {
@@ -2050,7 +2050,7 @@ static void OTGrammar_learnOneFromPartialOutput_opt (OTGrammar me, const char32
 			 * Now we know that the current hypothesis prefers the (wrong) learner's winner over the (correct) adult output.
 			 * The grammar will have to change.
 			 */
-			bool grammarHasChanged = false;
+			int grammarHasChanged = FALSE;
 			OTGrammar_modifyRankings (me, assumedAdultInputTableau, iwinner, assumedAdultCandidate, updateRule, honourLocalRankings,
 				plasticity, relativePlasticityNoise, warnIfStalled, & grammarHasChanged);
 			if (! grammarHasChanged) return;
@@ -2076,21 +2076,21 @@ static void OTGrammar_learnOneFromPartialOutput_opt (OTGrammar me, const char32
 	}
 }
 
-static autoOTHistory OTGrammar_createHistory (OTGrammar me, long storeHistoryEvery, long numberOfData) {
+static OTHistory OTGrammar_createHistory (OTGrammar me, long storeHistoryEvery, long numberOfData) {
 	try {
 		long numberOfSamplingPoints = numberOfData / storeHistoryEvery, icons;   // e.g. 0, 20, 40, ...
 		autoOTHistory thee = Thing_new (OTHistory);
-		TableOfReal_init (thee.get(), 2 + numberOfSamplingPoints * 2, 1 + my numberOfConstraints);
-		TableOfReal_setColumnLabel (thee.get(), 1, U"Datum");
+		TableOfReal_init (thee.peek(), 2 + numberOfSamplingPoints * 2, 1 + my numberOfConstraints);
+		TableOfReal_setColumnLabel (thee.peek(), 1, U"Datum");
 		for (icons = 1; icons <= my numberOfConstraints; icons ++) {
-			TableOfReal_setColumnLabel (thee.get(), icons + 1, my constraints [icons]. name);
+			TableOfReal_setColumnLabel (thee.peek(), icons + 1, my constraints [icons]. name);
 		}
-		TableOfReal_setRowLabel (thee.get(), 1, U"Initial state");
+		TableOfReal_setRowLabel (thee.peek(), 1, U"Initial state");
 		thy data [1] [1] = 0;
 		for (icons = 1; icons <= my numberOfConstraints; icons ++) {
 			thy data [1] [icons + 1] = my constraints [icons]. ranking;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": history not created.");
 	}
@@ -2126,37 +2126,37 @@ static void OTGrammar_finalizeHistory (OTGrammar me, OTHistory thee, long idatum
 }
 
 void OTGrammar_learnFromPartialOutputs (OTGrammar me, Strings partialOutputs,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double plasticity, double relativePlasticityNoise, long numberOfChews,
-	long storeHistoryEvery, autoOTHistory *history_out)
+	long storeHistoryEvery, OTHistory *history_out)
 {
 	try {
 		autoOTHistory history;
 		if (storeHistoryEvery) {
-			history = OTGrammar_createHistory (me, storeHistoryEvery, partialOutputs -> numberOfStrings);
+			history.reset (OTGrammar_createHistory (me, storeHistoryEvery, partialOutputs -> numberOfStrings));
 		}
 		try {
 			for (long idatum = 1; idatum <= partialOutputs -> numberOfStrings; idatum ++) {
 				try {
 					OTGrammar_learnOneFromPartialOutput (me, partialOutputs -> strings [idatum],
 						evaluationNoise, updateRule, honourLocalRankings,
-						plasticity, relativePlasticityNoise, numberOfChews, false);
+						plasticity, relativePlasticityNoise, numberOfChews, FALSE);
 				} catch (MelderError) {
-					if (history) {
-						OTGrammar_updateHistory (me, history.get(), storeHistoryEvery, idatum, partialOutputs -> strings [idatum]);   // so that we can inspect
+					if (history.peek()) {
+						OTGrammar_updateHistory (me, history.peek(), storeHistoryEvery, idatum, partialOutputs -> strings [idatum]);   // so that we can inspect
 					}
 					throw;
 				}
-				if (history) {
-					OTGrammar_updateHistory (me, history.get(), storeHistoryEvery, idatum, partialOutputs -> strings [idatum]);
+				if (history.peek()) {
+					OTGrammar_updateHistory (me, history.peek(), storeHistoryEvery, idatum, partialOutputs -> strings [idatum]);
 				}
 			}
-			if (history) {
-				OTGrammar_finalizeHistory (me, history.get(), partialOutputs -> numberOfStrings);
+			if (history.peek()) {
+				OTGrammar_finalizeHistory (me, history.peek(), partialOutputs -> numberOfStrings);
 			}
-			*history_out = history.move();
+			*history_out = history.transfer();
 		} catch (MelderError) {
-			*history_out = history.move();   // so that we can inspect
+			*history_out = history.transfer();   // so that we can inspect
 			throw;
 		}
 	} catch (MelderError) {
@@ -2171,7 +2171,7 @@ static void OTGrammar_opt_deleteOutputMatching (OTGrammar me) {
 			OTGrammarCandidate cand = & tab -> candidates [icand];
 			cand -> numberOfPotentialPartialOutputsMatching = 0;
 			NUMvector_free (cand -> partialOutputMatches, 1);
-			cand -> partialOutputMatches = nullptr;
+			cand -> partialOutputMatches = NULL;
 		}
 	}
 }
@@ -2215,10 +2215,10 @@ static void OTGrammar_Distributions_opt_createOutputMatching (OTGrammar me, Dist
 }
 
 void OTGrammar_Distributions_learnFromPartialOutputs (OTGrammar me, Distributions thee, long columnNumber,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
 	long numberOfPlasticities, double relativePlasticityNoise, long numberOfChews,
-	long storeHistoryEvery, autoOTHistory *history_out,
+	long storeHistoryEvery, OTHistory *history_out,
 	bool resampleForVirtualProduction, bool compareOnlyPartialOutput, long resampleForCorrectForm)
 {
 	long idatum = 0;
@@ -2231,7 +2231,7 @@ void OTGrammar_Distributions_learnFromPartialOutputs (OTGrammar me, Distribution
 			Graphics_clearWs (monitor.graphics());
 		}
 		if (storeHistoryEvery) {
-			history = OTGrammar_createHistory (me, storeHistoryEvery, numberOfData);
+			history.reset (OTGrammar_createHistory (me, storeHistoryEvery, numberOfData));
 		}
 		try {
 			double plasticity = initialPlasticity;
@@ -2242,14 +2242,13 @@ void OTGrammar_Distributions_learnFromPartialOutputs (OTGrammar me, Distribution
 					Distributions_peek (thee, columnNumber, & partialOutput, & ipartialOutput);
 					++ idatum;
 					if (monitor.graphics() && idatum % (numberOfData / 400 + 1) == 0) {
-						Graphics_beginMovieFrame (monitor.graphics(), nullptr);
 						Graphics_setWindow (monitor.graphics(), 0, numberOfData, 50, 150);
 						for (long icons = 1; icons <= 14 && icons <= my numberOfConstraints; icons ++) {
 							Graphics_setGrey (monitor.graphics(), (double) icons / 14);
 							Graphics_line (monitor.graphics(), idatum, my constraints [icons]. ranking,
 								idatum, my constraints [icons]. ranking+1);
 						}
-						Graphics_endMovieFrame (monitor.graphics(), 0.0);
+						Graphics_flushWs (monitor.graphics());   /* Because drawing is faster than progress loop. */
 					}
 					Melder_monitor ((double) idatum / numberOfData,
 						U"Processing partial output ", idatum, U" out of ", numberOfData, U": ",
@@ -2257,30 +2256,30 @@ void OTGrammar_Distributions_learnFromPartialOutputs (OTGrammar me, Distribution
 					try {
 						OTGrammar_learnOneFromPartialOutput_opt (me, partialOutput, ipartialOutput,
 							evaluationNoise, updateRule, honourLocalRankings,
-							plasticity, relativePlasticityNoise, numberOfChews, false,
+							plasticity, relativePlasticityNoise, numberOfChews, FALSE,
 							resampleForVirtualProduction, compareOnlyPartialOutput, resampleForCorrectForm);   // no warning if stalled: RIP form is allowed to be harmonically bounded
 					} catch (MelderError) {
-						if (history) {
-							OTGrammar_updateHistory (me, history.get(), storeHistoryEvery, idatum, thy rowLabels [ipartialOutput]);
+						if (history.peek()) {
+							OTGrammar_updateHistory (me, history.peek(), storeHistoryEvery, idatum, thy rowLabels [ipartialOutput]);
 						}
 						throw;
 					}
-					if (history) {
-						OTGrammar_updateHistory (me, history.get(), storeHistoryEvery, idatum, thy rowLabels [ipartialOutput]);
+					if (history.peek()) {
+						OTGrammar_updateHistory (me, history.peek(), storeHistoryEvery, idatum, thy rowLabels [ipartialOutput]);
 					}
 				}
 				plasticity *= plasticityDecrement;
 			}
-			if (history) {
-				OTGrammar_finalizeHistory (me, history.get(), numberOfData);
+			if (history.peek()) {
+				OTGrammar_finalizeHistory (me, history.peek(), numberOfData);
 			}
 			OTGrammar_opt_deleteOutputMatching (me);
 			if (history_out)
-				*history_out = history.move();
+				*history_out = history.transfer();
 		} catch (MelderError) {
 			OTGrammar_opt_deleteOutputMatching (me);
 			if (history_out)
-				*history_out = history.move();   // so that we can inspect
+				*history_out = history.transfer();   // so that we can inspect
 			throw;
 		}
 	} catch (MelderError) {
@@ -2315,8 +2314,8 @@ long OTGrammar_PairDistribution_getMinimumNumberCorrect (OTGrammar me, PairDistr
 {
 	try {
 		long minimumNumberCorrect = numberOfReplications;
-		for (long ipair = 1; ipair <= thy pairs.size; ipair ++) {
-			PairProbability prob = thy pairs.at [ipair];
+		for (long ipair = 1; ipair <= thy pairs -> size; ipair ++) {
+			PairProbability prob = (PairProbability) thy pairs -> item [ipair];
 			if (prob -> weight > 0.0) {
 				long numberOfCorrect = 0;
 				char32 *input = prob -> string1, *adultOutput = prob -> string2;
@@ -2345,7 +2344,7 @@ double OTGrammar_Distributions_getFractionCorrect (OTGrammar me, Distributions t
 		OTGrammar_Distributions_opt_createOutputMatching (me, thee, columnNumber);
 		for (long ireplication = 1; ireplication <= numberOfInputs; ireplication ++) {
 			long ipartialOutput;
-			Distributions_peek (thee, columnNumber, nullptr, & ipartialOutput);
+			Distributions_peek (thee, columnNumber, NULL, & ipartialOutput);
 			OTGrammar_newDisharmonies (me, evaluationNoise);
 			long assumedAdultInputTableau, assumedAdultCandidate;
 			OTGrammar_getInterpretiveParse_opt (me, ipartialOutput, & assumedAdultInputTableau, & assumedAdultCandidate);
@@ -2402,7 +2401,7 @@ void OTGrammar_removeConstraint (OTGrammar me, const char32 *constraintName) {
 				my numberOfFixedRankings -= 1;
 				if (my numberOfFixedRankings == 0) {
 					NUMvector_free <structOTGrammarFixedRanking> (my fixedRankings, 1);
-					my fixedRankings = nullptr;
+					my fixedRankings = NULL;
 				}
 				for (long jfixed = ifixed; jfixed <= my numberOfFixedRankings; jfixed ++) {
 					my fixedRankings [jfixed] = my fixedRankings [jfixed + 1];
@@ -2476,14 +2475,14 @@ static bool OTGrammarTableau_candidateIsPossibleWinner (OTGrammar me, long itab,
 	OTGrammar_save (me);
 	OTGrammar_reset (me, 100.0);
 	for (;;) {
-		bool grammarHasChanged = false;
+		int grammarHasChanged;
+		double previousStratum = 101.0;
 		OTGrammar_learnOne (me, my tableaus [itab]. input, my tableaus [itab]. candidates [icand]. output,
-			1e-3, kOTGrammar_rerankingStrategy_EDCD, false, 1.0, 0.0, true, true, & grammarHasChanged);
+			1e-3, kOTGrammar_rerankingStrategy_EDCD, FALSE, 1.0, 0.0, TRUE, TRUE, & grammarHasChanged);
 		if (! grammarHasChanged) {
 			OTGrammar_restore (me);
 			return true;
 		}
-		double previousStratum = 101.0;
 		OTGrammar_newDisharmonies (me, 0.0);
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
 			double stratum = my constraints [my index [icons]]. ranking;
@@ -2506,7 +2505,7 @@ static bool OTGrammarTableau_candidateIsPossibleWinner (OTGrammar me, long itab,
 	return false;   // cannot occur
 }
 
-void OTGrammar_removeHarmonicallyBoundedCandidates (OTGrammar me, bool singly) {
+void OTGrammar_removeHarmonicallyBoundedCandidates (OTGrammar me, int singly) {
 	try {
 		/*
 		 * First, the candidates that are harmonically bounded by one or more single other candidates have to be removed;
@@ -2540,26 +2539,26 @@ void OTGrammar_removeHarmonicallyBoundedCandidates (OTGrammar me, bool singly) {
 	}
 }
 
-Thing_define (OTGrammar_List4, Daata) {
+Thing_define (OTGrammar_List4, Data) {
 	// new data:
 	public:
 		long hi1, lo1, hi2, lo2;
 };
 
-Thing_implement (OTGrammar_List4, Daata, 0);
+Thing_implement (OTGrammar_List4, Data, 0);
 
 void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistribution thee) {
 	/*
 	 * Save.
 	 */
 	OTGrammarFixedRanking savedFixedRankings = my fixedRankings;   // dangle...
-	my fixedRankings = nullptr;   // ...undangle
+	my fixedRankings = NULL;   // ...undangle
 	long savedNumberOfFixedRankings = my numberOfFixedRankings;
 	OTGrammar_save (me);
 	try {
 		long ifixedRanking, icons, jcons, kcons, lcons, ipair = 0, npair = my numberOfConstraints * (my numberOfConstraints - 1);
 		long ilist, jlist, itrial, iform;
-		bool improved;
+		int improved;
 		double evaluationNoise = 1e-9;
 		/*
 		 * Add room for two more fixed rankings.
@@ -2574,16 +2573,16 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 		 */
 		OTGrammar_reset (me, 100.0);
 		for (itrial = 1; itrial <= 40; itrial ++) {
-			bool grammarHasChangedDuringCycle = false;
+			int grammarHasChangedDuringCycle = FALSE;
 			OTGrammar_honourLocalRankings (me, 1.0, 0.0, & grammarHasChangedDuringCycle);
 			OTGrammar_newDisharmonies (me, evaluationNoise);
-			for (iform = 1; iform <= thy pairs.size; iform ++) {
-				PairProbability prob = thy pairs.at [iform];
+			for (iform = 1; iform <= thy pairs -> size; iform ++) {
+				PairProbability prob = (PairProbability) thy pairs -> item [iform];
 				if (prob -> weight > 0.0) {
-					bool grammarHasChanged = false;
+					int grammarHasChanged;
 					OTGrammar_learnOne (me, prob -> string1, prob -> string2,
-						evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, true /* honour fixed rankings; very important */,
-						1.0, 0.0, false, true, & grammarHasChanged);
+						evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, TRUE /* honour fixed rankings; very important */,
+						1.0, 0.0, FALSE, TRUE, & grammarHasChanged);
 					if (grammarHasChanged) {
 						OTGrammar_newDisharmonies (me, evaluationNoise);
 					}
@@ -2600,7 +2599,7 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 		 * Test learnability of every possible ranked pair.
 		 */
 		my numberOfFixedRankings ++;
-		autoNUMmatrix <bool> obligatory (1, my numberOfConstraints, 1, my numberOfConstraints);
+		autoNUMmatrix <int> obligatory (1, my numberOfConstraints, 1, my numberOfConstraints);
 		MelderInfo_open ();
 		autoMelderProgress progress (U"Finding obligatory rankings.");
 		for (icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -2612,16 +2611,16 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 					my constraints [icons]. name, U" >> ", my constraints [jcons]. name);
 				ipair ++;
 				for (itrial = 1; itrial <= 40; itrial ++) {
-					bool grammarHasChangedDuringCycle = false;
+					int grammarHasChangedDuringCycle = FALSE;
 					OTGrammar_honourLocalRankings (me, 1.0, 0.0, & grammarHasChangedDuringCycle);
 					OTGrammar_newDisharmonies (me, evaluationNoise);
-					for (iform = 1; iform <= thy pairs.size; iform ++) {
-						PairProbability prob = thy pairs.at [iform];
+					for (iform = 1; iform <= thy pairs -> size; iform ++) {
+						PairProbability prob = (PairProbability) thy pairs -> item [iform];
 						if (prob -> weight > 0.0) {
-							bool grammarHasChanged = false;
+							int grammarHasChanged;
 							OTGrammar_learnOne (me, prob -> string1, prob -> string2,
-								evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, true /* honour fixed rankings; very important */,
-								1.0, 0.0, false, true, & grammarHasChanged);
+								evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, TRUE /* honour fixed rankings; very important */,
+								1.0, 0.0, FALSE, TRUE, & grammarHasChanged);
 							if (grammarHasChanged) {
 								OTGrammar_newDisharmonies (me, evaluationNoise);
 							}
@@ -2631,7 +2630,7 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 					if (! grammarHasChangedDuringCycle) break;
 				}
 				if (itrial > 40) {
-					obligatory [jcons] [icons] = true;
+					obligatory [jcons] [icons] = TRUE;
 					MelderInfo_writeLine (my constraints [jcons]. name, U" >> ", my constraints [icons]. name);
 					MelderInfo_close ();
 				}
@@ -2640,7 +2639,7 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 		my numberOfFixedRankings ++;
 		Melder_progress (0.0, U"");
 		npair = npair * npair;
-		OrderedOf<structOTGrammar_List4> list;
+		autoOrdered list = Ordered_create ();
 		for (icons = 1; icons <= my numberOfConstraints; icons ++) {
 			for (jcons = 1; jcons <= my numberOfConstraints; jcons ++) if (icons != jcons && ! obligatory [jcons] [icons]) {
 				my fixedRankings [my numberOfFixedRankings - 1]. higher = icons;
@@ -2658,16 +2657,16 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 						Melder_progress ((double) ipair / npair, ipair + 1, U"/", npair);
 						ipair ++;
 						for (itrial = 1; itrial <= 40; itrial ++) {
-							bool grammarHasChangedDuringCycle = false;
+							int grammarHasChangedDuringCycle = FALSE;
 							OTGrammar_honourLocalRankings (me, 1.0, 0.0, & grammarHasChangedDuringCycle);
 							OTGrammar_newDisharmonies (me, evaluationNoise);
-							for (iform = 1; iform <= thy pairs.size; iform ++) {
-								PairProbability prob = thy pairs.at [iform];
+							for (iform = 1; iform <= thy pairs -> size; iform ++) {
+								PairProbability prob = (PairProbability) thy pairs -> item [iform];
 								if (prob -> weight > 0.0) {
-									bool grammarHasChanged = false;
+									int grammarHasChanged;
 									OTGrammar_learnOne (me, prob -> string1, prob -> string2,
-										evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, true /* honour fixed rankings; very important */,
-										1.0, 0.0, false, true, & grammarHasChanged);
+										evaluationNoise, kOTGrammar_rerankingStrategy_EDCD, TRUE /* honour fixed rankings; very important */,
+										1.0, 0.0, FALSE, TRUE, & grammarHasChanged);
 									if (grammarHasChanged) {
 										OTGrammar_newDisharmonies (me, evaluationNoise);
 									}
@@ -2682,7 +2681,7 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 							listElement -> lo1 = icons;
 							listElement -> hi2 = lcons;
 							listElement -> lo2 = kcons;
-							list. addItem_move (listElement.move());
+							Collection_addItem (list.peek(), listElement.transfer());
 						}
 					}
 				}
@@ -2692,13 +2691,12 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 		/*
 		 * Improve list.
 		 */
-		improved = true;
+		improved = TRUE;
 		while (improved) {
-			improved = false;
-			for (ilist = 1; ilist <= list.size; ilist ++) {
-				for (jlist = 1; jlist <= list.size; jlist ++) if (ilist != jlist) {
-					OTGrammar_List4 elA = list.at [ilist];
-					OTGrammar_List4 elB = list.at [jlist];
+			improved = FALSE;
+			for (ilist = 1; ilist <= list -> size; ilist ++) {
+				for (jlist = 1; jlist <= list -> size; jlist ++) if (ilist != jlist) {
+					OTGrammar_List4 elA = (OTGrammar_List4) list -> item [ilist], elB = (OTGrammar_List4) list -> item [jlist];
 					long ahi1 = elA -> hi1, alo1 = elA -> lo1, ahi2 = elA -> hi2, alo2 = elA -> lo2;
 					long bhi1 = elB -> hi1, blo1 = elB -> lo1, bhi2 = elB -> hi2, blo2 = elB -> lo2;
 					improved |= (ahi1 == bhi1 || obligatory [bhi1] [ahi1]) && (ahi2 == bhi2 || obligatory [bhi2] [ahi2]) &&
@@ -2706,20 +2704,19 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 					improved |= (ahi1 == bhi2 || obligatory [bhi2] [ahi1]) && (ahi2 == bhi1 || obligatory [bhi1] [ahi2]) &&
 						(alo1 == blo2 || obligatory [alo1] [blo2]) && (alo2 == blo1 || obligatory [alo2] [blo1]);
 					if (improved) {
-						list. removeItem (jlist);
+						Collection_removeItem (list.peek(), jlist);
 						break;
 					}
 				}
 				if (improved) break;
 			}
 		}
-		improved = true;
+		improved = TRUE;
 		while (improved) {
-			improved = false;
-			for (ilist = 1; ilist <= list.size; ilist ++) {
-				for (jlist = 1; jlist <= list.size; jlist ++) if (ilist != jlist) {
-					OTGrammar_List4 elA = list.at [ilist];
-					OTGrammar_List4 elB = list.at [jlist];
+			improved = FALSE;
+			for (ilist = 1; ilist <= list -> size; ilist ++) {
+				for (jlist = 1; jlist <= list -> size; jlist ++) if (ilist != jlist) {
+					OTGrammar_List4 elA = (OTGrammar_List4) list -> item [ilist], elB = (OTGrammar_List4) list -> item [jlist];
 					long ahi1 = elA -> hi1, alo1 = elA -> lo1, ahi2 = elA -> hi2, alo2 = elA -> lo2;
 					long bhi1 = elB -> hi1, blo1 = elB -> lo1, bhi2 = elB -> hi2, blo2 = elB -> lo2;
 					improved |= ahi1 == bhi1 && alo1 == blo1 && ahi2 == bhi2 && blo2 == bhi1 && alo2 == alo1;
@@ -2727,15 +2724,15 @@ void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistri
 					improved |= ahi2 == bhi1 && alo2 == blo1 && ahi1 == bhi2 && blo2 == bhi1 && alo1 == alo2;
 					improved |= ahi2 == bhi2 && alo2 == blo2 && ahi1 == bhi1 && blo1 == bhi2 && alo1 == alo2;
 					if (improved) {
-						list. removeItem (jlist);
+						Collection_removeItem (list.peek(), jlist);
 						break;
 					}
 				}
 				if (improved) break;
 			}
 		}
-		for (ilist = 1; ilist <= list.size; ilist ++) {
-			OTGrammar_List4 el = list.at [ilist];
+		for (ilist = 1; ilist <= list -> size; ilist ++) {
+			OTGrammar_List4 el = (OTGrammar_List4) list -> item [ilist];
 			MelderInfo_write (my constraints [el -> hi1]. name, U" >> ", my constraints [el -> lo1]. name, U" OR ");
 			MelderInfo_writeLine (my constraints [el -> hi2]. name, U" >> ", my constraints [el -> lo2]. name);
 			MelderInfo_close ();
@@ -2772,7 +2769,7 @@ void OTGrammar_Distributions_listObligatoryRankings (OTGrammar me, Distributions
 	 * Save.
 	 */
 	OTGrammarFixedRanking savedFixedRankings = my fixedRankings;
-	my fixedRankings = nullptr;
+	my fixedRankings = NULL;
 	OTGrammar_save (me);
 	try {
 		long ifixedRanking, icons, jcons, kcons, ipair = 0, npair = my numberOfConstraints * (my numberOfConstraints - 1);
@@ -2800,8 +2797,8 @@ void OTGrammar_Distributions_listObligatoryRankings (OTGrammar me, Distributions
 				ipair ++;
 				Melder_progressOff ();
 				OTGrammar_Distributions_learnFromPartialOutputs (me, thee, columnNumber,
-					1e-9, kOTGrammar_rerankingStrategy_EDCD, true /* honour fixed rankings; very important */,
-					1.0, 1000, 0.0, 1, 0.0, 1, 0, nullptr, false, false, 0);
+					1e-9, kOTGrammar_rerankingStrategy_EDCD, TRUE /* honour fixed rankings; very important */,
+					1.0, 1000, 0.0, 1, 0.0, 1, 0, NULL, false, false, 0);
 				Melder_progressOn ();
 				for (kcons = 1; kcons <= my numberOfConstraints; kcons ++) {
 					if (my constraints [kcons]. ranking < 0.0) {
diff --git a/gram/OTGrammar.h b/gram/OTGrammar.h
index 882bf1d..4c5a855 100644
--- a/gram/OTGrammar.h
+++ b/gram/OTGrammar.h
@@ -28,6 +28,7 @@
 #include "OTGrammar_enums.h"
 
 #include "OTGrammar_def.h"
+oo_CLASS_CREATE (OTGrammar, Data);
 
 Thing_define (OTHistory, TableOfReal) {
 };
@@ -81,38 +82,38 @@ bool OTGrammar_areAllPartialOutputsSinglyGrammatical (OTGrammar me, Strings thee
 
 void OTGrammar_drawTableau (OTGrammar me, Graphics g, bool vertical, const char32 *input);
 
-autoStrings OTGrammar_generateInputs (OTGrammar me, long numberOfTrials);
-autoStrings OTGrammar_getInputs (OTGrammar me);
+Strings OTGrammar_generateInputs (OTGrammar me, long numberOfTrials);
+Strings OTGrammar_getInputs (OTGrammar me);
 void OTGrammar_inputToOutput (OTGrammar me, const char32 *input, char32 *output, double evaluationNoise);
-autoStrings OTGrammar_inputsToOutputs (OTGrammar me, Strings inputs, double evaluationNoise);
-autoStrings OTGrammar_inputToOutputs (OTGrammar me, const char32 *input, long n, double evaluationNoise);
-autoDistributions OTGrammar_to_Distribution (OTGrammar me, long trialsPerInput, double evaluationNoise);
-autoPairDistribution OTGrammar_to_PairDistribution (OTGrammar me, long trialsPerInput, double evaluationNoise);
-autoDistributions OTGrammar_measureTypology (OTGrammar me);
+Strings OTGrammar_inputsToOutputs (OTGrammar me, Strings inputs, double evaluationNoise);
+Strings OTGrammar_inputToOutputs (OTGrammar me, const char32 *input, long n, double evaluationNoise);
+Distributions OTGrammar_to_Distribution (OTGrammar me, long trialsPerInput, double evaluationNoise);
+PairDistribution OTGrammar_to_PairDistribution (OTGrammar me, long trialsPerInput, double evaluationNoise);
+Distributions OTGrammar_measureTypology (OTGrammar me);
 
 void OTGrammar_learnOne (OTGrammar me, const char32 *input, const char32 *adultOutput,
-	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double demotionMean, double relativeDemotionSpreading, bool newDisharmonies,
-	bool warnIfStalled, bool *grammarHasChanged);
+	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double demotionMean, double relativeDemotionSpreading, int newDisharmonies,
+	int warnIfStalled, int *grammarHasChanged);
 void OTGrammar_learn (OTGrammar me, Strings inputs, Strings outputs,
-	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double demotionMean, double relativeDemotionSpreading, long numberOfChews);
 void OTGrammar_PairDistribution_learn (OTGrammar me, PairDistribution thee,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
 	long numberOfPlasticities, double relativePlasticityNoise, long numberOfChews);
 bool OTGrammar_PairDistribution_findPositiveWeights_e (OTGrammar me, PairDistribution thee, double weightFloor, double marginOfSeparation);
 void OTGrammar_learnOneFromPartialOutput (OTGrammar me, const char32 *partialAdultOutput,
-	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double demotionMean, double relativeDemotionSpreading, long numberOfChews, bool warnIfStalled);
+	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double demotionMean, double relativeDemotionSpreading, long numberOfChews, int warnIfStalled);
 void OTGrammar_learnFromPartialOutputs (OTGrammar me, Strings partialOutputs,
-	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
-	double demotionMean, double relativeDemotionSpreading, long numberOfChews, long storeHistoryEvery, autoOTHistory *history);
+	double rankingSpreading, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
+	double demotionMean, double relativeDemotionSpreading, long numberOfChews, long storeHistoryEvery, OTHistory *history);
 void OTGrammar_Distributions_learnFromPartialOutputs (OTGrammar me, Distributions thee, long columnNumber,
-	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, bool honourLocalRankings,
+	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int honourLocalRankings,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
 	long numberOfPlasticities, double relativePlasticityNoise, long numberOfChews,
-	long storeHistoryEvery, autoOTHistory *history_out,
+	long storeHistoryEvery, OTHistory *history_out,
 	bool resampleForVirtualProduction, bool compareOnlyPartialOutput, long resampleForCorrectForm);
 double OTGrammar_PairDistribution_getFractionCorrect (OTGrammar me, PairDistribution thee,
 	double evaluationNoise, long numberOfInputs);
@@ -123,14 +124,14 @@ double OTGrammar_Distributions_getFractionCorrect (OTGrammar me, Distributions t
 
 void OTGrammar_checkIndex (OTGrammar me);
 
-autoOTGrammar OTGrammar_create_NoCoda_grammar ();
-autoOTGrammar OTGrammar_create_NPA_grammar ();
-autoPairDistribution OTGrammar_create_NPA_distribution ();
-autoOTGrammar OTGrammar_create_tongueRoot_grammar (int small_large, int equal_random_infant_Wolof);
-autoOTGrammar OTGrammar_create_metrics (int equal_footForm_wsp,
+OTGrammar OTGrammar_create_NoCoda_grammar (void);
+OTGrammar OTGrammar_create_NPA_grammar (void);
+PairDistribution OTGrammar_create_NPA_distribution (void);
+OTGrammar OTGrammar_create_tongueRoot_grammar (int small_large, int equal_random_infant_Wolof);
+OTGrammar OTGrammar_create_metrics (int equal_footForm_wsp,
 	int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
 	int includePeripheral, int nonfinalityConstraint, int overtFormsHaveSecondaryStress, int includeClashAndLapse, int includeCodas);
-	/* T&S: 1, false, false, false, 1, true, false, false */
+	/* T&S: 1, FALSE, FALSE, FALSE, 1, TRUE, FALSE, FALSE */
 
 void OTGrammar_reset (OTGrammar me, double ranking);
 void OTGrammar_resetToRandomRanking (OTGrammar me, double mean, double standardDeviation);
@@ -139,7 +140,7 @@ void OTGrammar_setRanking (OTGrammar me, long constraint, double ranking, double
 void OTGrammar_setConstraintPlasticity (OTGrammar me, long constraint, double plasticity);
 
 void OTGrammar_removeConstraint (OTGrammar me, const char32 *constraintName);
-void OTGrammar_removeHarmonicallyBoundedCandidates (OTGrammar me, bool singly);
+void OTGrammar_removeHarmonicallyBoundedCandidates (OTGrammar me, int singly);
 void OTGrammar_PairDistribution_listObligatoryRankings (OTGrammar me, PairDistribution thee);
 void OTGrammar_Distributions_listObligatoryRankings (OTGrammar me, Distributions thee, long columnNumber);
 
diff --git a/gram/OTGrammarEditor.cpp b/gram/OTGrammarEditor.cpp
index 71732ae..ad1c95d 100644
--- a/gram/OTGrammarEditor.cpp
+++ b/gram/OTGrammarEditor.cpp
@@ -1,6 +1,6 @@
 /* OTGrammarEditor.cpp
  *
- * Copyright (C) 1997-2011,2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2011,2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,41 +28,46 @@
 
 Thing_implement (OTGrammarEditor, HyperPage, 0);
 
-static void menu_cb_evaluate (OTGrammarEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Evaluate", nullptr)
+static void menu_cb_evaluate (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
+	EDITOR_FORM (U"Evaluate", 0)
 		REAL (U"Noise", U"2.0")
 	EDITOR_OK
 	EDITOR_DO
 		Editor_save (me, U"Evaluate");
 		OTGrammar_newDisharmonies ((OTGrammar) my data, GET_REAL (U"Noise"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_evaluate_noise_2_0 (OTGrammarEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_evaluate_noise_2_0 (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	Editor_save (me, U"Evaluate (noise 2.0)");
 	OTGrammar_newDisharmonies ((OTGrammar) my data, 2.0);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_evaluate_tinyNoise (OTGrammarEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_evaluate_tinyNoise (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	Editor_save (me, U"Evaluate (tiny noise)");
 	OTGrammar_newDisharmonies ((OTGrammar) my data, 1e-9);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_evaluate_zeroNoise (OTGrammarEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_evaluate_zeroNoise (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	Editor_save (me, U"Evaluate (zero noise)");
 	OTGrammar_newDisharmonies ((OTGrammar) my data, 0.0);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_editConstraint (OTGrammarEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Edit constraint", nullptr)
+static void menu_cb_editConstraint (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
+	EDITOR_FORM (U"Edit constraint", 0)
 		LABEL (U"constraint", U"");
 		REAL (U"Ranking value", U"100.0");
 		REAL (U"Disharmony", U"100.0");
@@ -85,12 +90,13 @@ static void menu_cb_editConstraint (OTGrammarEditor me, EDITOR_ARGS_FORM) {
 		constraint -> disharmony = GET_REAL (U"Disharmony");
 		constraint -> plasticity = GET_REAL (U"Plasticity");
 		OTGrammar_sort (ot);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_learnOne (OTGrammarEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_learnOne (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	EDITOR_FORM (U"Learn one", U"OTGrammar: Learn one...")
 		LABEL (U"", U"Underlying form:")
 		SENTENCE (U"Input string", U"")
@@ -106,14 +112,15 @@ static void menu_cb_learnOne (OTGrammarEditor me, EDITOR_ARGS_FORM) {
 		Editor_save (me, U"Learn one");
 		OTGrammar_learnOne ((OTGrammar) my data, GET_STRING (U"Input string"), GET_STRING (U"Output string"),
 			GET_REAL (U"Evaluation noise"), GET_ENUM (kOTGrammar_rerankingStrategy, U"Update rule"), GET_INTEGER (U"Honour local rankings"),
-			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), true, true, nullptr);
+			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), TRUE, TRUE, NULL);
 		OTGrammar_sort ((OTGrammar) my data);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_learnOneFromPartialOutput (OTGrammarEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_learnOneFromPartialOutput (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	EDITOR_FORM (U"Learn one from partial adult output", 0)
 		LABEL (U"", U"Partial adult surface form (e.g. overt form):")
 		SENTENCE (U"Partial output", U"")
@@ -128,14 +135,15 @@ static void menu_cb_learnOneFromPartialOutput (OTGrammarEditor me, EDITOR_ARGS_F
 		Editor_save (me, U"Learn one from partial output");
 		OTGrammar_learnOneFromPartialOutput ((OTGrammar) my data, GET_STRING (U"Partial output"),
 			GET_REAL (U"Evaluation noise"), GET_ENUM (kOTGrammar_rerankingStrategy, U"Update rule"), GET_INTEGER (U"Honour local rankings"),
-			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), GET_INTEGER (U"Number of chews"), true);
+			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), GET_INTEGER (U"Number of chews"), TRUE);
 		OTGrammar_sort ((OTGrammar) my data);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_removeConstraint (OTGrammarEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removeConstraint (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	OTGrammar ot = (OTGrammar) my data;
 	OTGrammarConstraint constraint;
 	if (my selected < 1 || my selected > ot -> numberOfConstraints)
@@ -143,29 +151,30 @@ static void menu_cb_removeConstraint (OTGrammarEditor me, EDITOR_ARGS_DIRECT) {
 	constraint = & ot -> constraints [ot -> index [my selected]];
 	Editor_save (me, U"Remove constraint");
 	OTGrammar_removeConstraint (ot, constraint -> name);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_resetAllRankings (OTGrammarEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_resetAllRankings (EDITOR_ARGS) {
+	EDITOR_IAM (OTGrammarEditor);
 	EDITOR_FORM (U"Reset all rankings", 0)
 		REAL (U"Ranking", U"100.0")
 	EDITOR_OK
 	EDITOR_DO
 		Editor_save (me, U"Reset all rankings");
 		OTGrammar_reset ((OTGrammar) my data, GET_REAL (U"Ranking"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_OTGrammarEditor_help (OTGrammarEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"OTGrammarEditor"); }
-static void menu_cb_OTGrammar_help (OTGrammarEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"OTGrammar"); }
-static void menu_cb_OTLearningTutorial (OTGrammarEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"OT learning"); }
+static void menu_cb_OTGrammarEditor_help (EDITOR_ARGS) { EDITOR_IAM (OTGrammarEditor); Melder_help (U"OTGrammarEditor"); }
+static void menu_cb_OTGrammar_help (EDITOR_ARGS) { EDITOR_IAM (OTGrammarEditor); Melder_help (U"OTGrammar"); }
+static void menu_cb_OTLearningTutorial (EDITOR_ARGS) { EDITOR_IAM (OTGrammarEditor); Melder_help (U"OT learning"); }
 
 void structOTGrammarEditor :: v_createMenus () {
 	OTGrammarEditor_Parent :: v_createMenus ();
-	Editor_addCommand (this, U"Edit", U"-- edit ot --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- edit ot --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Evaluate...", 0, menu_cb_evaluate);
 	Editor_addCommand (this, U"Edit", U"Evaluate (noise 2.0)", '2', menu_cb_evaluate_noise_2_0);
 	Editor_addCommand (this, U"Edit", U"Evaluate (zero noise)", '0', menu_cb_evaluate_zeroNoise);
@@ -174,7 +183,7 @@ void structOTGrammarEditor :: v_createMenus () {
 	Editor_addCommand (this, U"Edit", U"Reset all rankings...", 'R', menu_cb_resetAllRankings);
 	Editor_addCommand (this, U"Edit", U"Learn one...", 0, menu_cb_learnOne);
 	Editor_addCommand (this, U"Edit", U"Learn one from partial output...", '1', menu_cb_learnOneFromPartialOutput);
-	Editor_addCommand (this, U"Edit", U"-- remove ot --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- remove ot --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Remove constraint", 0, menu_cb_removeConstraint);
 }
 
@@ -195,7 +204,7 @@ static void drawTableau (Graphics g) {
 void structOTGrammarEditor :: v_draw () {
 	OTGrammar ot = (OTGrammar) data;
 	static char32 text [1000];
-	Graphics_clearWs (graphics.get());
+	Graphics_clearWs (g);
 	if (ot -> decisionStrategy == kOTGrammar_decisionStrategy_EXPONENTIAL_HG ||
 		ot -> decisionStrategy == kOTGrammar_decisionStrategy_EXPONENTIAL_MAXIMUM_ENTROPY)
 	{
@@ -227,7 +236,7 @@ void structOTGrammarEditor :: v_draw () {
 		}
 		HyperPage_listItem (this, text);
 	}
-	Graphics_setAtSignIsLink (graphics.get(), false);
+	Graphics_setAtSignIsLink (g, FALSE);
 	for (long itab = 1; itab <= ot -> numberOfTableaus; itab ++) {
 		OTGrammarTableau tableau = & ot -> tableaus [itab];
 		double rowHeight = 0.25;
@@ -237,21 +246,21 @@ void structOTGrammarEditor :: v_draw () {
 		drawTableau_constraintsAreDrawnVertically = d_constraintsAreDrawnVertically;
 		HyperPage_picture (this, 20, tableauHeight, drawTableau);
 	}
-	Graphics_setAtSignIsLink (graphics.get(), true);
+	Graphics_setAtSignIsLink (g, TRUE);
 }
 
 int structOTGrammarEditor :: v_goToPage (const char32 *title) {
-	if (! title) return 1;
+	if (title == NULL) return 1;
 	selected = Melder_atoi (title);
 	return 1;
 }
 
-autoOTGrammarEditor OTGrammarEditor_create (const char32 *title, OTGrammar ot) {
+OTGrammarEditor OTGrammarEditor_create (const char32 *title, OTGrammar ot) {
 	try {
 		autoOTGrammarEditor me = Thing_new (OTGrammarEditor);
 		my data = ot;
-		HyperPage_init (me.get(), title, ot);
-		return me;
+		HyperPage_init (me.peek(), title, ot);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"OTGrammar window not created.");
 	}
diff --git a/gram/OTGrammarEditor.h b/gram/OTGrammarEditor.h
index de00b33..11f4436 100644
--- a/gram/OTGrammarEditor.h
+++ b/gram/OTGrammarEditor.h
@@ -38,7 +38,7 @@ Thing_define (OTGrammarEditor, HyperPage) {
 		override;
 };
 
-autoOTGrammarEditor OTGrammarEditor_create (const char32 *title, OTGrammar ot);
+OTGrammarEditor OTGrammarEditor_create (const char32 *title, OTGrammar ot);
 
 /* End of file OTGrammarEditor.h */
 #endif
diff --git a/gram/OTGrammar_def.h b/gram/OTGrammar_def.h
index 49f14c4..60dfadd 100644
--- a/gram/OTGrammar_def.h
+++ b/gram/OTGrammar_def.h
@@ -27,13 +27,11 @@ oo_DEFINE_STRUCT (OTGrammarConstraint)
 	oo_FROM (2)
 		oo_DOUBLE (plasticity)
 	oo_ENDFROM
-
 	#if oo_READING
 		if (formatVersion < 2) {
 			plasticity = 1.0;
 		}
 	#endif
-
 	#if !oo_READING && !oo_WRITING
 		oo_INT (tiedToTheLeft)
 		oo_INT (tiedToTheRight)
@@ -59,7 +57,6 @@ oo_DEFINE_STRUCT (OTGrammarCandidate)
 	oo_STRING (output)
 	oo_LONG (numberOfConstraints)
 	oo_INT_VECTOR (marks, numberOfConstraints)
-
 	#if !oo_READING && !oo_WRITING
 		oo_DOUBLE (harmony)
 		oo_DOUBLE (probability)
@@ -83,7 +80,7 @@ oo_END_STRUCT (OTGrammarTableau)
 
 
 #define ooSTRUCT OTGrammar
-oo_DEFINE_CLASS (OTGrammar, Daata)
+oo_DEFINE_CLASS (OTGrammar, Data)
 
 	oo_FROM (1)
 		oo_ENUM (kOTGrammar_decisionStrategy, decisionStrategy)
@@ -98,7 +95,6 @@ oo_DEFINE_CLASS (OTGrammar, Daata)
 	oo_STRUCT_VECTOR (OTGrammarFixedRanking, fixedRankings, numberOfFixedRankings)
 	oo_LONG (numberOfTableaus)
 	oo_STRUCT_VECTOR (OTGrammarTableau, tableaus, numberOfTableaus)
-
 	#if oo_READING
 		OTGrammar_sort (this);
 	#endif
diff --git a/gram/OTGrammar_ex_NPA.cpp b/gram/OTGrammar_ex_NPA.cpp
index b497e10..cfd355b 100644
--- a/gram/OTGrammar_ex_NPA.cpp
+++ b/gram/OTGrammar_ex_NPA.cpp
@@ -1,6 +1,6 @@
 /* OTGrammar_ex_NPA.cpp
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 
 #include "OTGrammar.h"
 
-autoOTGrammar OTGrammar_create_NPA_grammar () {
+OTGrammar OTGrammar_create_NPA_grammar (void) {
 	try {
 		OTGrammarCandidate candidate;
 		OTGrammarTableau tableau;
@@ -70,22 +70,22 @@ autoOTGrammar OTGrammar_create_NPA_grammar () {
 				candidate -> output = Melder_dup (U"apma");
 				candidate -> marks = NUMvector <int> (1, candidate -> numberOfConstraints = 3);
 				candidate -> marks [3] = 1;
-		OTGrammar_checkIndex (me.get());
-		OTGrammar_newDisharmonies (me.get(), 0.0);
-		return me;
+		OTGrammar_checkIndex (me.peek());
+		OTGrammar_newDisharmonies (me.peek(), 0.0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Nasal place assimilation grammar not created.");
 	}
 }
 
-autoPairDistribution OTGrammar_create_NPA_distribution () {
+PairDistribution OTGrammar_create_NPA_distribution (void) {
 	try {
 		autoPairDistribution me = PairDistribution_create ();
-		PairDistribution_add (me.get(), U"at+ma", U"atma", 100);
-		PairDistribution_add (me.get(), U"at+ma", U"apma",   0);
-		PairDistribution_add (me.get(), U"an+pa", U"anpa",  20);
-		PairDistribution_add (me.get(), U"an+pa", U"ampa",  80);
-		return me;
+		PairDistribution_add (me.peek(), U"at+ma", U"atma", 100);
+		PairDistribution_add (me.peek(), U"at+ma", U"apma",   0);
+		PairDistribution_add (me.peek(), U"an+pa", U"anpa",  20);
+		PairDistribution_add (me.peek(), U"an+pa", U"ampa",  80);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Nasal place assimilation distribution not created.");
 	}
diff --git a/gram/OTGrammar_ex_NoCoda.cpp b/gram/OTGrammar_ex_NoCoda.cpp
index a02b4ba..d37b86a 100644
--- a/gram/OTGrammar_ex_NoCoda.cpp
+++ b/gram/OTGrammar_ex_NoCoda.cpp
@@ -1,6 +1,6 @@
 /* OTGrammar_ex_NoCoda.cpp
  *
- * Copyright (C) 1997-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 
 #include "OTGrammar.h"
 
-autoOTGrammar OTGrammar_create_NoCoda_grammar () {
+OTGrammar OTGrammar_create_NoCoda_grammar (void) {
 	try {
 		OTGrammarCandidate candidate;
 		OTGrammarTableau tableau;
@@ -52,9 +52,9 @@ autoOTGrammar OTGrammar_create_NoCoda_grammar () {
 			candidate = & tableau -> candidates [1];
 				candidate -> output = Melder_dup (U"pa");
 				candidate -> marks = NUMvector <int> (1, candidate -> numberOfConstraints = 2);
-		OTGrammar_checkIndex (me.get());
-		OTGrammar_newDisharmonies (me.get(), 0.0);
-		return me;
+		OTGrammar_checkIndex (me.peek());
+		OTGrammar_newDisharmonies (me.peek(), 0.0);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"NoCoda grammar not created.");
 	}
diff --git a/gram/OTGrammar_ex_metrics.cpp b/gram/OTGrammar_ex_metrics.cpp
index 9a7c33c..4d454c3 100644
--- a/gram/OTGrammar_ex_metrics.cpp
+++ b/gram/OTGrammar_ex_metrics.cpp
@@ -67,7 +67,7 @@ static const char32 *constraintNames [1+NUMBER_OF_CONSTRAINTS] = { 0,
 	U"Trochaic", U"FtBimor", U"FtBisyl", U"Peripheral", U"MainNonfinal", U"HeadNonfinal", U"*Clash", U"*Lapse", U"WeightByPosition", U"*C\\mu" };
 
 static void addCandidate (OTGrammarTableau me, long numberOfSyllables, int stress [],
-	bool footedToTheLeft [], bool footedToTheRight [], int surfaceWeightPattern [],
+	int footedToTheLeft [], int footedToTheRight [], int surfaceWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
 	static const char32 *syllable [] = { U"L", U"L1", U"L2", U"H", U"H1", U"H2", U"K", U"K1", U"K2", U"J", U"J1", U"J2" };
@@ -91,7 +91,7 @@ static void addCandidate (OTGrammarTableau me, long numberOfSyllables, int stres
 }
 
 static void fillSurfaceWeightPattern (OTGrammarTableau me, long numberOfSyllables, int stress [],
-	bool footedToTheLeft [], bool footedToTheRight [], int underlyingWeightPattern [],
+	int footedToTheLeft [], int footedToTheRight [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
 	int surfaceWeightPattern [1+7], minSurfaceWeight [1+7], maxSurfaceWeight [1+7];
@@ -129,16 +129,17 @@ static void fillSurfaceWeightPattern (OTGrammarTableau me, long numberOfSyllable
 }
 
 static void path (OTGrammarTableau me, long numberOfSyllables, int stress [],
-	int startingSyllable, bool footedToTheLeft_in [], bool footedToTheRight_in [], int underlyingWeightPattern [],
+	int startingSyllable, int footedToTheLeft_in [], int footedToTheRight_in [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
-	bool footedToTheLeft [10], footedToTheRight [10];
+	int footedToTheLeft [10], footedToTheRight [10];
+	long isyll;
 	/* Localize all arguments. */
-	for (long isyll = 1; isyll <= startingSyllable; isyll ++) {
+	for (isyll = 1; isyll <= startingSyllable; isyll ++) {
 		footedToTheLeft [isyll] = footedToTheLeft_in [isyll];
 		footedToTheRight [isyll] = footedToTheRight_in [isyll];
 	}
-	for (long isyll = startingSyllable + 1; isyll <= numberOfSyllables; isyll ++)
+	for (isyll = startingSyllable + 1; isyll <= numberOfSyllables; isyll ++)
 		footedToTheLeft [isyll] = footedToTheRight [isyll] = 0;
 	if (startingSyllable > numberOfSyllables) {
 		fillSurfaceWeightPattern (me, numberOfSyllables, stress, footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
@@ -146,18 +147,18 @@ static void path (OTGrammarTableau me, long numberOfSyllables, int stress [],
 		path (me, numberOfSyllables, stress, startingSyllable + 1,
 			footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 		if (stress [startingSyllable] == 0 && startingSyllable < numberOfSyllables && stress [startingSyllable + 1] != 0) {
-			footedToTheLeft [startingSyllable + 1] = true;
-			footedToTheRight [startingSyllable] = true;
+			footedToTheLeft [startingSyllable + 1] = TRUE;
+			footedToTheRight [startingSyllable] = TRUE;
 			path (me, numberOfSyllables, stress, startingSyllable + 1,
 				footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-			footedToTheLeft [startingSyllable + 1] = false;
-			footedToTheRight [startingSyllable] = false;
+			footedToTheLeft [startingSyllable + 1] = FALSE;
+			footedToTheRight [startingSyllable] = FALSE;
 		}
 		if (stress [startingSyllable] == 0 && startingSyllable > 1 && stress [startingSyllable - 1] != 0
 		    && ! footedToTheLeft [startingSyllable - 1])
 		{
-			footedToTheRight [startingSyllable - 1] = true;
-			footedToTheLeft [startingSyllable] = true;
+			footedToTheRight [startingSyllable - 1] = TRUE;
+			footedToTheLeft [startingSyllable] = TRUE;
 			path (me, numberOfSyllables, stress, startingSyllable + 1,
 				footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 		}
@@ -167,7 +168,7 @@ static void path (OTGrammarTableau me, long numberOfSyllables, int stress [],
 static void fillOvertStressPattern (OTGrammarTableau me, long numberOfSyllables, int stress [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
-	bool footedToTheLeft [10], footedToTheRight [10];
+	int footedToTheLeft [10], footedToTheRight [10];
 	for (int isyll = 1; isyll <= numberOfSyllables; isyll ++)
 		footedToTheLeft [isyll] = footedToTheRight [isyll] = 0;
 	path (me, numberOfSyllables, stress, 1, footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
@@ -190,27 +191,27 @@ static void fillTableau (OTGrammarTableau me, long numberOfSyllables, int underl
 	for (long mainStressed = 1; mainStressed <= numberOfSyllables; mainStressed ++) {
 		int stress [10];
 		stress [mainStressed] = 1;
-		for (int secondary1 = false; secondary1 <= true; secondary1 ++) {
+		for (int secondary1 = FALSE; secondary1 <= TRUE; secondary1 ++) {
 			stress [mainStressed <= 1 ? 2 : 1] = secondary1 ? 2 : 0;
 			if (numberOfSyllables == 2) {
 				fillOvertStressPattern (me, 2, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-			} else for (int secondary2 = false; secondary2 <= true; secondary2 ++) {
+			} else for (int secondary2 = FALSE; secondary2 <= TRUE; secondary2 ++) {
 				stress [mainStressed <= 2 ? 3 : 2] = secondary2 ? 2 : 0;
 				if (numberOfSyllables == 3) {
 					fillOvertStressPattern (me, 3, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-				} else for (int secondary3 = false; secondary3 <= true; secondary3 ++) {
+				} else for (int secondary3 = FALSE; secondary3 <= TRUE; secondary3 ++) {
 					stress [mainStressed <= 3 ? 4 : 3] = secondary3 ? 2 : 0;
 					if (numberOfSyllables == 4) {
 						fillOvertStressPattern (me, 4, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-					} else for (int secondary4 = false; secondary4 <= true; secondary4 ++) {
+					} else for (int secondary4 = FALSE; secondary4 <= TRUE; secondary4 ++) {
 						stress [mainStressed <= 4 ? 5 : 4] = secondary4 ? 2 : 0;
 						if (numberOfSyllables == 5) {
 							fillOvertStressPattern (me, 5, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-						} else for (int secondary5 = false; secondary5 <= true; secondary5 ++) {
+						} else for (int secondary5 = FALSE; secondary5 <= TRUE; secondary5 ++) {
 							stress [mainStressed <= 5 ? 6 : 5] = secondary5 ? 2 : 0;
 							if (numberOfSyllables == 6) {
 								fillOvertStressPattern (me, 6, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-							} else for (int secondary6 = false; secondary6 <= true; secondary6 ++) {
+							} else for (int secondary6 = FALSE; secondary6 <= TRUE; secondary6 ++) {
 								stress [mainStressed <= 6 ? 7 : 6] = secondary6 ? 2 : 0;
 								fillOvertStressPattern (me, 7, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 							}
@@ -391,8 +392,8 @@ static void computeViolationMarks (OTGrammarCandidate me) {
 }
 
 static void replaceOutput (OTGrammarCandidate me) {
-	bool abstract = false;
-	Melder_assert (my output);
+	int abstract = FALSE;
+	Melder_assert (my output != NULL);
 	char32 newOutput [100], *q = & newOutput [0];
 	for (const char32 *p = & my output [0]; *p != U'\0'; p ++) {
 		if (p [0] == U' ') {
@@ -426,7 +427,7 @@ static void replaceOutput (OTGrammarCandidate me) {
 		} else if (isStress (p [0]) && abstract) {
 			;
 		} else {
-			if (p [0] == U'/') abstract = true;
+			if (p [0] == U'/') abstract = TRUE;
 			*q ++ = p [0];
 		}
 	}
@@ -435,7 +436,7 @@ static void replaceOutput (OTGrammarCandidate me) {
 	my output = Melder_dup (newOutput);
 }
 
-autoOTGrammar OTGrammar_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
+OTGrammar OTGrammar_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
 	int includePeripheral, int nonfinalityConstraint, int overtFormsHaveSecondaryStress,
 	int includeClashAndLapse, int includeCodas)
 {
@@ -487,33 +488,33 @@ autoOTGrammar OTGrammar_create_metrics (int equal_footForm_wsp, int trochaicityC
 				computeViolationMarks (& tableau -> candidates [icand]);
 			}
 		}
-		OTGrammar_checkIndex (me.get());
-		OTGrammar_newDisharmonies (me.get(), 0.0);
+		OTGrammar_checkIndex (me.peek());
+		OTGrammar_newDisharmonies (me.peek(), 0.0);
 		if (trochaicityConstraint == 1) {
-			OTGrammar_removeConstraint (me.get(), U"Trochaic");
+			OTGrammar_removeConstraint (me.peek(), U"Trochaic");
 		} else {
-			OTGrammar_removeConstraint (me.get(), U"FtNonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"FtNonfinal");
 		}
-		if (! includeFootBimoraic) OTGrammar_removeConstraint (me.get(), U"FtBimor");
-		if (! includeFootBisyllabic) OTGrammar_removeConstraint (me.get(), U"FtBisyl");
-		if (! includePeripheral) OTGrammar_removeConstraint (me.get(), U"Peripheral");
+		if (! includeFootBimoraic) OTGrammar_removeConstraint (me.peek(), U"FtBimor");
+		if (! includeFootBisyllabic) OTGrammar_removeConstraint (me.peek(), U"FtBisyl");
+		if (! includePeripheral) OTGrammar_removeConstraint (me.peek(), U"Peripheral");
 		if (nonfinalityConstraint == 1) {
-			OTGrammar_removeConstraint (me.get(), U"MainNonfinal");
-			OTGrammar_removeConstraint (me.get(), U"HeadNonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"MainNonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"HeadNonfinal");
 		} else if (nonfinalityConstraint == 2) {
-			OTGrammar_removeConstraint (me.get(), U"HeadNonfinal");
-			OTGrammar_removeConstraint (me.get(), U"Nonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"HeadNonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"Nonfinal");
 		} else {
-			OTGrammar_removeConstraint (me.get(), U"MainNonfinal");
-			OTGrammar_removeConstraint (me.get(), U"Nonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"MainNonfinal");
+			OTGrammar_removeConstraint (me.peek(), U"Nonfinal");
 		}
 		if (! includeClashAndLapse) {
-			OTGrammar_removeConstraint (me.get(), U"*Clash");
-			OTGrammar_removeConstraint (me.get(), U"*Lapse");
+			OTGrammar_removeConstraint (me.peek(), U"*Clash");
+			OTGrammar_removeConstraint (me.peek(), U"*Lapse");
 		}
 		if (! includeCodas) {
-			OTGrammar_removeConstraint (me.get(), U"WeightByPosition");
-			OTGrammar_removeConstraint (me.get(), U"*C\\mu");
+			OTGrammar_removeConstraint (me.peek(), U"WeightByPosition");
+			OTGrammar_removeConstraint (me.peek(), U"*C\\mu");
 		}
 		if (includeCodas) {
 			for (long itab = 1; itab <= my numberOfTableaus; itab ++) {
@@ -523,7 +524,7 @@ autoOTGrammar OTGrammar_create_metrics (int equal_footForm_wsp, int trochaicityC
 				}
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Metrics grammar not created.");
 	}
diff --git a/gram/OTGrammar_ex_tongueRoot.cpp b/gram/OTGrammar_ex_tongueRoot.cpp
index 46a0a77..1577057 100644
--- a/gram/OTGrammar_ex_tongueRoot.cpp
+++ b/gram/OTGrammar_ex_tongueRoot.cpp
@@ -1,6 +1,6 @@
 /* OTGrammar_ex_tongueRoot.cpp
  *
- * Copyright (C) 1997-2011,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2011,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@ static void OTGrammarCandidate_init (OTGrammarCandidate me, int ncons, int v1, i
 	if (isatr (v1) != isatr (v2)) my marks [5] ++;
 }
 
-autoOTGrammar OTGrammar_create_tongueRoot_grammar (int small_large, int equal_random_infant_Wolof) {
+OTGrammar OTGrammar_create_tongueRoot_grammar (int small_large, int equal_random_infant_Wolof) {
 	try {
 		int ncons = small_large == 1 ? 5 : 9, itab, v1, v2;
 		autoOTGrammar me = Thing_new (OTGrammar);
@@ -139,11 +139,11 @@ autoOTGrammar OTGrammar_create_tongueRoot_grammar (int small_large, int equal_ra
 			}
 			itab ++;
 		}
-		OTGrammar_checkIndex (me.get());
-		OTGrammar_newDisharmonies (me.get(), 0.0);
+		OTGrammar_checkIndex (me.peek());
+		OTGrammar_newDisharmonies (me.peek(), 0.0);
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++)
 			my constraints [icons]. plasticity = 1.0;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Tongue root grammar not created.");
 	}
diff --git a/gram/OTMulti.cpp b/gram/OTMulti.cpp
index 3ce8c70..d8ccbfb 100644
--- a/gram/OTMulti.cpp
+++ b/gram/OTMulti.cpp
@@ -1,6 +1,6 @@
 /* OTMulti.cpp
  *
- * Copyright (C) 2005-2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 2005-2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@
 
 void structOTMulti :: v_info ()
 {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	long numberOfViolations = 0;
 	for (long icand = 1; icand <= numberOfCandidates; icand ++) {
 		for (long icons = 1; icons <= numberOfConstraints; icons ++) {
@@ -149,7 +149,7 @@ void structOTMulti :: v_readText (MelderReadText text, int formatVersion) {
 	OTMulti_checkIndex (this);
 }
 
-Thing_implement (OTMulti, Daata, 2);
+Thing_implement (OTMulti, Data, 2);
 
 long OTMulti_getConstraintIndexFromName (OTMulti me, const char32 *name) {
 	for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -302,7 +302,7 @@ static void _OTMulti_fillInHarmonies (OTMulti me, const char32 *form1, const cha
 }
 
 static void _OTMulti_fillInProbabilities (OTMulti me, const char32 *form1, const char32 *form2) {
-	double maximumHarmony = -1e308;
+	double maximumHarmony = -1e300;
 	for (long icand = 1; icand <= my numberOfCandidates; icand ++) if (OTMulti_candidateMatches (me, icand, form1, form2)) {
 		OTCandidate candidate = & my candidates [icand];
 		if (candidate -> harmony > maximumHarmony) {
@@ -386,7 +386,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 	enum kOTGrammar_rerankingStrategy updateRule,
 	double plasticity, double relativePlasticityNoise)
 {
-	bool *grammarHasChanged = nullptr;   // to be implemented
+	bool *grammarHasChanged = NULL;   // to be implemented
 	bool warnIfStalled = false;   // to be implemented
 	if (iwinner == iloser) return;
 	OTCandidate winner = & my candidates [iwinner], loser = & my candidates [iloser];
@@ -414,12 +414,12 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 		if (loserMarks > winnerMarks) {
 			if (multiplyStepByNumberOfViolations) constraintStep *= loserMarks - winnerMarks;
 			constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak);
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		}
 		if (winnerMarks > loserMarks) {
 			if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - loserMarks;
 			constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak);
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		}
 	} else if (updateRule == kOTGrammar_rerankingStrategy_SYMMETRIC_ALL) {
 		bool changed = false;
@@ -449,7 +449,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 				my constraints [icons]. ranking -= averageWeight;
 			}
 		}
-		if (grammarHasChanged) *grammarHasChanged = changed;
+		if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 	} else if (updateRule == kOTGrammar_rerankingStrategy_SYMMETRIC_ALL_SKIPPABLE) {
 		bool changed = false;
 		int winningConstraints = 0, losingConstraints = 0;
@@ -485,7 +485,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 				my constraints [icons]. ranking -= averageWeight;
 			}
 		}
-		if (grammarHasChanged) *grammarHasChanged = changed;
+		if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 	} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_UNCANCELLED) {
 		int winningConstraints = 0, losingConstraints = 0;
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -504,13 +504,13 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 					if (multiplyStepByNumberOfViolations) constraintStep *= loserMarks - winnerMarks;
 					constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) / losingConstraints;
 					//constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) * winningConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 				if (winnerMarks > loserMarks) {
 					if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - loserMarks;
 					constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / winningConstraints;
 					//constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) * losingConstraints;
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 			}
 		}
@@ -530,12 +530,12 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 			if (loserMarks > 0) {
 				if (multiplyStepByNumberOfViolations) constraintStep *= loserMarks - winnerMarks;
 				constraint -> ranking -= constraintStep * (1.0 + constraint -> ranking * my leak) / losingConstraints;
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 			if (winnerMarks > 0) {
 				if (multiplyStepByNumberOfViolations) constraintStep *= winnerMarks - loserMarks;
 				constraint -> ranking += constraintStep * (1.0 - constraint -> ranking * my leak) / winningConstraints;
-				if (grammarHasChanged) *grammarHasChanged = true;
+				if (grammarHasChanged != NULL) *grammarHasChanged = true;
 			}
 		}
 	} else if (updateRule == kOTGrammar_rerankingStrategy_EDCD || updateRule == kOTGrammar_rerankingStrategy_EDCD_WITH_VACATION) {
@@ -578,7 +578,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 					OTConstraint constraint = & my constraints [icons];
 					if (constraint -> ranking < pivotRanking) {
 						constraint -> ranking -= numberOfConstraintsToDemote * step * constraint -> plasticity;
-						if (grammarHasChanged) *grammarHasChanged = true;
+						if (grammarHasChanged != NULL) *grammarHasChanged = true;
 					}
 				}
 			}
@@ -597,7 +597,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 				if (constraint -> ranking >= pivotRanking) {
 					numberOfConstraintsDemoted += 1;
 					constraint -> ranking = pivotRanking - numberOfConstraintsDemoted * constraintStep;   // This preserves the order of the demotees.
-					if (grammarHasChanged) *grammarHasChanged = true;
+					if (grammarHasChanged != NULL) *grammarHasChanged = true;
 				}
 			}
 		}
@@ -636,7 +636,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 			offendingConstraint = & my constraints [my index [crucialLoserMark]];
 			double constraintStep = step * offendingConstraint -> plasticity;
 			offendingConstraint -> ranking -= constraintStep;
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		}
 	} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGHEST_DOWN) {
 		bool changed = false;
@@ -693,7 +693,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 				offendingConstraint -> ranking -= /*numberOfUp **/ constraintStep * (1.0 - offendingConstraint -> ranking * my leak);
 			}
 		}
-		if (grammarHasChanged) *grammarHasChanged = changed;
+		if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 	} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGHEST_DOWN_2012) {
 		bool changed = false;
 		long numberOfUp = 0;
@@ -749,7 +749,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 				offendingConstraint -> ranking -= /*numberOfUp **/ constraintStep * (1.0 - offendingConstraint -> ranking * my leak);
 			}
 		}
-		if (grammarHasChanged) *grammarHasChanged = changed;
+		if (grammarHasChanged != NULL) *grammarHasChanged = changed;
 	} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGH_DOWN) {
 		long numberOfDown = 0, numberOfUp = 0, lowestDemotableConstraint = 0;
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
@@ -783,7 +783,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 					}
 				}
 			}
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		}
 	} else if (updateRule == kOTGrammar_rerankingStrategy_WEIGHTED_ALL_UP_HIGH_DOWN_2012) {
 		long numberOfDown = 0, numberOfUp = 0, lowestDemotableConstraint = 0;
@@ -818,7 +818,7 @@ static void OTMulti_modifyRankings (OTMulti me, long iwinner, long iloser,
 					}
 				}
 			}
-			if (grammarHasChanged) *grammarHasChanged = true;
+			if (grammarHasChanged != NULL) *grammarHasChanged = true;
 		}
 	}
 }
@@ -842,24 +842,24 @@ int OTMulti_learnOne (OTMulti me, const char32 *form1, const char32 *form2,
 	return 1;
 }
 
-static autoTable OTMulti_createHistory (OTMulti me, long storeHistoryEvery, long numberOfData)
+static Table OTMulti_createHistory (OTMulti me, long storeHistoryEvery, long numberOfData)
 {
 	try {
 		long numberOfSamplingPoints = numberOfData / storeHistoryEvery;   // e.g. 0, 20, 40, ...
 		autoTable thee = Table_createWithoutColumnNames (1 + numberOfSamplingPoints, 3 + my numberOfConstraints);
-		Table_setColumnLabel (thee.get(), 1, U"Datum");
-		Table_setColumnLabel (thee.get(), 2, U"Form1");
-		Table_setColumnLabel (thee.get(), 3, U"Form2");
+		Table_setColumnLabel (thee.peek(), 1, U"Datum");
+		Table_setColumnLabel (thee.peek(), 2, U"Form1");
+		Table_setColumnLabel (thee.peek(), 3, U"Form2");
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
-			Table_setColumnLabel (thee.get(), 3 + icons, my constraints [icons]. name);
+			Table_setColumnLabel (thee.peek(), 3 + icons, my constraints [icons]. name);
 		}
-		Table_setNumericValue (thee.get(), 1, 1, 0);
-		Table_setStringValue (thee.get(), 1, 2, U"(initial)");
-		Table_setStringValue (thee.get(), 1, 3, U"(initial)");
+		Table_setNumericValue (thee.peek(), 1, 1, 0);
+		Table_setStringValue (thee.peek(), 1, 2, U"(initial)");
+		Table_setStringValue (thee.peek(), 1, 3, U"(initial)");
 		for (long icons = 1; icons <= my numberOfConstraints; icons ++) {
-			Table_setNumericValue (thee.get(), 1, 3 + icons, my constraints [icons]. ranking);
+			Table_setNumericValue (thee.peek(), 1, 3 + icons, my constraints [icons]. ranking);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": history not created.");
 	}
@@ -886,7 +886,7 @@ static int OTMulti_updateHistory (OTMulti me, Table thee, long storeHistoryEvery
 
 void OTMulti_PairDistribution_learn (OTMulti me, PairDistribution thee, double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int direction,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
-	long numberOfPlasticities, double relativePlasticityNoise, long storeHistoryEvery, autoTable *history_out)
+	long numberOfPlasticities, double relativePlasticityNoise, long storeHistoryEvery, Table *history_out)
 {
 	long idatum = 0, numberOfData = numberOfPlasticities * replicationsPerPlasticity;
 	try {
@@ -897,7 +897,7 @@ void OTMulti_PairDistribution_learn (OTMulti me, PairDistribution thee, double e
 		}
 		autoTable history;
 		if (storeHistoryEvery) {
-			history = OTMulti_createHistory (me, storeHistoryEvery, numberOfData);
+			history.reset (OTMulti_createHistory (me, storeHistoryEvery, numberOfData));
 		}
 		for (long iplasticity = 1; iplasticity <= numberOfPlasticities; iplasticity ++) {
 			for (long ireplication = 1; ireplication <= replicationsPerPlasticity; ireplication ++) {
@@ -912,14 +912,13 @@ void OTMulti_PairDistribution_learn (OTMulti me, PairDistribution thee, double e
 							sumOfRankings += my constraints [icons]. ranking;
 						}
 						double meanRanking = sumOfRankings / numberOfDrawnConstraints;
-						Graphics_beginMovieFrame (monitor.graphics(), nullptr);
 						Graphics_setWindow (monitor.graphics(), 0, numberOfData, meanRanking - 50, meanRanking + 50);
 						for (long icons = 1; icons <= numberOfDrawnConstraints; icons ++) {
 							Graphics_setGrey (monitor.graphics(), (double) icons / numberOfDrawnConstraints);
 							Graphics_line (monitor.graphics(), idatum, my constraints [icons]. ranking,
 								idatum, my constraints [icons]. ranking+1);
 						}
-						Graphics_endMovieFrame (monitor.graphics(), 0.0);
+						Graphics_flushWs (monitor.graphics());   /* Because drawing is faster than progress loop. */
 					}
 				}
 				try {
@@ -928,26 +927,26 @@ void OTMulti_PairDistribution_learn (OTMulti me, PairDistribution thee, double e
 						U":\n      ", form1, U"     ", form2);
 				} catch (MelderError) {
 					if (history_out)
-						*history_out = history.move();   // so that we can inspect
+						*history_out = history.transfer();   // so that we can inspect
 					throw;
 				}
 				OTMulti_newDisharmonies (me, evaluationNoise);
 				try {
 					OTMulti_learnOne (me, form1, form2, updateRule, direction, plasticity, relativePlasticityNoise);
 				} catch (MelderError) {
-					if (history) {
-						OTMulti_updateHistory (me, history.get(), storeHistoryEvery, idatum, form1, form2);
+					if (history.peek()) {
+						OTMulti_updateHistory (me, history.peek(), storeHistoryEvery, idatum, form1, form2);
 					}
 					throw;
 				}
-				if (history) {
-					OTMulti_updateHistory (me, history.get(), storeHistoryEvery, idatum, form1, form2);
+				if (history.peek()) {
+					OTMulti_updateHistory (me, history.peek(), storeHistoryEvery, idatum, form1, form2);
 				}
 			}
 			plasticity *= plasticityDecrement;
 		}
 		if (history_out)
-			*history_out = history.move();
+			*history_out = history.transfer();
 	} catch (MelderError) {
 		if (idatum > 1)
 			Melder_appendError (U"Only ", idatum - 1, U" input-output pairs out of ", numberOfData, U" were processed.");
@@ -991,7 +990,7 @@ static long OTMulti_crucialCell (OTMulti me, long icand, long iwinner, long numb
 
 static double OTMulti_constraintWidth (Graphics g, OTConstraint constraint, bool showDisharmony) {
 	char32 text [100], *newLine;
-	double maximumWidth = showDisharmony ? 0.8 * Graphics_textWidth_ps (g, Melder_fixed (constraint -> disharmony, 1), true) : 0.0,
+	double maximumWidth = showDisharmony ? 0.8 * Graphics_textWidth_ps (g, Melder_fixed (constraint -> disharmony, 1), TRUE) : 0.0,
 		firstWidth, secondWidth;
 	str32cpy (text, constraint -> name);
 	newLine = str32chr (text, U'\n');
@@ -1065,7 +1064,7 @@ void OTMulti_drawTableau (OTMulti me, Graphics g, const char32 *form1, const cha
 	 * Compute longest candidate string.
 	 * Also count the number of optimal candidates (if there are more than one, the fingers will be drawn in red).
 	 */
-	double candWidth = Graphics_textWidth_ps (g, form1, true) + Graphics_textWidth_ps (g, form2, true);
+	double candWidth = Graphics_textWidth_ps (g, form1, TRUE) + Graphics_textWidth_ps (g, form2, true);
 	long numberOfMatchingCandidates = 0;
 	long numberOfOptimalCandidates = 0;
 	long numberOfOptimalCandidates1 = 0;
@@ -1398,7 +1397,7 @@ void OTMulti_generateOptimalForm (OTMulti me, const char32 *form1, const char32
 	}
 }
 
-autoStrings OTMulti_Strings_generateOptimalForms (OTMulti me, Strings thee, double evaluationNoise) {
+Strings OTMulti_Strings_generateOptimalForms (OTMulti me, Strings thee, double evaluationNoise) {
 	try {
 		autoStrings outputs = Thing_new (Strings);
 		long n = thy numberOfStrings;
@@ -1409,13 +1408,13 @@ autoStrings OTMulti_Strings_generateOptimalForms (OTMulti me, Strings thee, doub
 			OTMulti_generateOptimalForm (me, thy strings [i], U"", output, evaluationNoise);
 			outputs -> strings [i] = Melder_dup (output);
 		}
-		return outputs;
+		return outputs.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": optimal forms not generated.");
 	}
 }
 
-autoStrings OTMulti_generateOptimalForms (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise) {
+Strings OTMulti_generateOptimalForms (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise) {
 	try {
 		autoStrings outputs = Thing_new (Strings);
 		outputs -> numberOfStrings = numberOfTrials;
@@ -1425,13 +1424,13 @@ autoStrings OTMulti_generateOptimalForms (OTMulti me, const char32 *form1, const
 			OTMulti_generateOptimalForm (me, form1, form2, output, evaluationNoise);
 			outputs -> strings [i] = Melder_dup (output);
 		}
-		return outputs;
+		return outputs.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": optimal forms not generated.");
 	}
 }
 
-autoDistributions OTMulti_to_Distribution (OTMulti me, const char32 *form1, const char32 *form2,
+Distributions OTMulti_to_Distribution (OTMulti me, const char32 *form1, const char32 *form2,
 	long numberOfTrials, double evaluationNoise)
 {
 	try {
@@ -1467,7 +1466,7 @@ autoDistributions OTMulti_to_Distribution (OTMulti me, const char32 *form1, cons
 			long iwinner = OTMulti_getWinner (me, form1, form2);
 			thy data [index [iwinner]] [1] += 1;
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": distribution not computed.");
 	}
diff --git a/gram/OTMulti.h b/gram/OTMulti.h
index 4b34c72..4ba1560 100644
--- a/gram/OTMulti.h
+++ b/gram/OTMulti.h
@@ -25,6 +25,7 @@
 #include "OTGrammar.h"
 
 #include "OTMulti_def.h"
+oo_CLASS_CREATE (OTMulti, Data);
 
 long OTMulti_getConstraintIndexFromName (OTMulti me, const char32 *name);
 
@@ -51,11 +52,11 @@ int OTMulti_learnOne (OTMulti me, const char32 *form1, const char32 *form2,
 void OTMulti_PairDistribution_learn (OTMulti me, PairDistribution thee,
 	double evaluationNoise, enum kOTGrammar_rerankingStrategy updateRule, int direction,
 	double initialPlasticity, long replicationsPerPlasticity, double plasticityDecrement,
-	long numberOfPlasticities, double relativePlasticityNoise, long storeHistoryEvery, autoTable *history_out);
+	long numberOfPlasticities, double relativePlasticityNoise, long storeHistoryEvery, Table *history_out);
 
 void OTMulti_drawTableau (OTMulti me, Graphics g, const char32 *form1, const char32 *form2, bool vertical, bool showDisharmonies);
 
-autoOTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
+OTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
 	int includePeripheral, int nonfinalityConstraint, int overtFormsHaveSecondaryStress,
 	int includeClashAndLapse, int includeCodas);
 
@@ -65,9 +66,9 @@ void OTMulti_setConstraintPlasticity (OTMulti me, long constraint, double plasti
 void OTMulti_removeConstraint (OTMulti me, const char32 *constraintName);
 
 void OTMulti_generateOptimalForm (OTMulti me, const char32 *form1, const char32 *form2, char32 *optimalForm, double evaluationNoise);
-autoStrings OTMulti_generateOptimalForms (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise);
-autoDistributions OTMulti_to_Distribution (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise);
-autoStrings OTMulti_Strings_generateOptimalForms (OTMulti me, Strings forms, double evaluationNoise);
+Strings OTMulti_generateOptimalForms (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise);
+Distributions OTMulti_to_Distribution (OTMulti me, const char32 *form1, const char32 *form2, long numberOfTrials, double evaluationNoise);
+Strings OTMulti_Strings_generateOptimalForms (OTMulti me, Strings forms, double evaluationNoise);
 
 /* End of file OTMulti.h */
 #endif
diff --git a/gram/OTMultiEditor.cpp b/gram/OTMultiEditor.cpp
index a7e4cd6..3671535 100644
--- a/gram/OTMultiEditor.cpp
+++ b/gram/OTMultiEditor.cpp
@@ -1,6 +1,6 @@
 /* OTMultiEditor.cpp
  *
- * Copyright (C) 2005-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2005-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,34 +30,38 @@
 
 Thing_implement (OTMultiEditor, HyperPage, 0);
 
-static void menu_cb_evaluate (OTMultiEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Evaluate", nullptr)
+static void menu_cb_evaluate (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
+	EDITOR_FORM (U"Evaluate", 0)
 		REAL (U"Evaluation noise", U"2.0")
 	EDITOR_OK
 	EDITOR_DO
 		Editor_save (me, U"Evaluate");
 		OTMulti_newDisharmonies ((OTMulti) my data, GET_REAL (U"Evaluation noise"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_evaluate_noise_2_0 (OTMultiEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_evaluate_noise_2_0 (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
 	Editor_save (me, U"Evaluate (noise 2.0)");
 	OTMulti_newDisharmonies ((OTMulti) my data, 2.0);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_evaluate_tinyNoise (OTMultiEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_evaluate_tinyNoise (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
 	Editor_save (me, U"Evaluate (tiny noise)");
 	OTMulti_newDisharmonies ((OTMulti) my data, 1e-9);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_editRanking (OTMultiEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Edit ranking", nullptr)
+static void menu_cb_editRanking (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
+	EDITOR_FORM (U"Edit ranking", 0)
 		LABEL (U"constraint", U"");
 		REAL (U"Ranking value", U"100.0");
 		REAL (U"Disharmony", U"100.0");
@@ -77,12 +81,13 @@ static void menu_cb_editRanking (OTMultiEditor me, EDITOR_ARGS_FORM) {
 		constraint -> ranking = GET_REAL (U"Ranking value");
 		constraint -> disharmony = GET_REAL (U"Disharmony");
 		OTMulti_sort (grammar);
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_learnOne (OTMultiEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_learnOne (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
 	EDITOR_FORM (U"Learn one", U"OTGrammar: Learn one...")
 		OPTIONMENU_ENUM (U"Update rule", kOTGrammar_rerankingStrategy, kOTGrammar_rerankingStrategy_SYMMETRIC_ALL)
 		OPTIONMENU (U"Direction", 3)
@@ -101,35 +106,39 @@ static void menu_cb_learnOne (OTMultiEditor me, EDITOR_ARGS_FORM) {
 		OTMulti_learnOne ((OTMulti) my data, my form1, my form2,
 			GET_ENUM (kOTGrammar_rerankingStrategy, U"Update rule"), GET_INTEGER (U"Direction"),
 			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_removeConstraint (OTMultiEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_removeConstraint (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
 	OTMulti grammar = (OTMulti) my data;
 	if (my selectedConstraint < 1 || my selectedConstraint > grammar -> numberOfConstraints)
 		Melder_throw (U"Select a constraint first.");
 	OTConstraint constraint = & grammar -> constraints [grammar -> index [my selectedConstraint]];
 	Editor_save (me, U"Remove constraint");
 	OTMulti_removeConstraint (grammar, constraint -> name);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_resetAllRankings (OTMultiEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Reset all rankings", nullptr)
+static void menu_cb_resetAllRankings (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
+	EDITOR_FORM (U"Reset all rankings", 0)
 		REAL (U"Ranking", U"100.0")
 	EDITOR_OK
 	EDITOR_DO
 		Editor_save (me, U"Reset all rankings");
 		OTMulti_reset ((OTMulti) my data, GET_REAL (U"Ranking"));
-		Graphics_updateWs (my graphics.get());
+		Graphics_updateWs (my g);
 		Editor_broadcastDataChanged (me);
 	EDITOR_END
 }
 
-static void menu_cb_OTLearningTutorial (OTMultiEditor, EDITOR_ARGS_DIRECT) {
+static void menu_cb_OTLearningTutorial (EDITOR_ARGS) {
+	EDITOR_IAM (OTMultiEditor);
+	(void) me;
 	Melder_help (U"OT learning");
 }
 
@@ -138,10 +147,17 @@ static void do_limit (OTMultiEditor me) {
 	Melder_free (my form2);
 	my form1 = GuiText_getString (my form1Text);
 	my form2 = GuiText_getString (my form2Text);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 }
 
-static void gui_button_cb_limit (OTMultiEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_limit (I, GuiButtonEvent event) {
+	(void) event;
+	iam (OTMultiEditor);
+	do_limit (me);
+}
+
+static void gui_cb_limit (GUI_ARGS) {
+	GUI_IAM (OTMultiEditor);
 	do_limit (me);
 }
 
@@ -163,14 +179,14 @@ void structOTMultiEditor :: v_createChildren () {
 
 void structOTMultiEditor :: v_createMenus () {
 	OTMultiEditor_Parent :: v_createMenus ();
-	Editor_addCommand (this, U"Edit", U"-- edit ot --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- edit ot --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Evaluate...", 0, menu_cb_evaluate);
 	Editor_addCommand (this, U"Edit", U"Evaluate (noise 2.0)", '2', menu_cb_evaluate_noise_2_0);
 	Editor_addCommand (this, U"Edit", U"Evaluate (tiny noise)", '9', menu_cb_evaluate_tinyNoise);
 	Editor_addCommand (this, U"Edit", U"Edit ranking...", 'E', menu_cb_editRanking);
 	Editor_addCommand (this, U"Edit", U"Reset all rankings...", 'R', menu_cb_resetAllRankings);
 	Editor_addCommand (this, U"Edit", U"Learn one...", '1', menu_cb_learnOne);
-	Editor_addCommand (this, U"Edit", U"-- remove --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- remove --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Remove constraint", 0, menu_cb_removeConstraint);
 }
 
@@ -190,7 +206,7 @@ void structOTMultiEditor :: v_draw () {
 	OTMulti grammar = (OTMulti) data;
 	static MelderString buffer { 0 };
 	double rowHeight = 0.25, tableauHeight = 2 * rowHeight;
-	Graphics_clearWs (graphics.get());
+	Graphics_clearWs (g);
 	HyperPage_listItem (this, U"\t\t      %%ranking value\t      %disharmony\t      %plasticity");
 	for (long icons = 1; icons <= grammar -> numberOfConstraints; icons ++) {
 		OTConstraint constraint = & grammar -> constraints [grammar -> index [icons]];
@@ -201,7 +217,7 @@ void structOTMultiEditor :: v_draw () {
 		);
 		HyperPage_listItem (this, buffer.string);
 	}
-	Graphics_setAtSignIsLink (graphics.get(), false);
+	Graphics_setAtSignIsLink (g, FALSE);
 	drawTableau_grammar = grammar;
 	for (long icand = 1; icand <= grammar -> numberOfCandidates; icand ++) {
 		if (OTMulti_candidateMatches (grammar, icand, form1, form2)) {
@@ -212,23 +228,23 @@ void structOTMultiEditor :: v_draw () {
 	drawTableau_form2 = form2;
 	drawTableau_constraintsAreDrawnVertically = d_constraintsAreDrawnVertically;
 	HyperPage_picture (this, 20, tableauHeight, drawTableau);
-	Graphics_setAtSignIsLink (graphics.get(), true);
+	Graphics_setAtSignIsLink (g, TRUE);
 }
 
 int structOTMultiEditor :: v_goToPage (const char32 *title) {
-	if (! title) return 1;
+	if (title == NULL) return 1;
 	selectedConstraint = Melder_atoi (title);
 	return 1;
 }
 
-autoOTMultiEditor OTMultiEditor_create (const char32 *title, OTMulti grammar) {
+OTMultiEditor OTMultiEditor_create (const char32 *title, OTMulti grammar) {
 	try {
 		autoOTMultiEditor me = Thing_new (OTMultiEditor);
 		my data = grammar;
 		my form1 = Melder_dup (U"");
 		my form2 = Melder_dup (U"");
-		HyperPage_init (me.get(), title, grammar);
-		return me;
+		HyperPage_init (me.peek(), title, grammar);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"OTMulti window not created.");
 	}
diff --git a/gram/OTMultiEditor.h b/gram/OTMultiEditor.h
index 39c04dd..286be75 100644
--- a/gram/OTMultiEditor.h
+++ b/gram/OTMultiEditor.h
@@ -42,7 +42,7 @@ Thing_define (OTMultiEditor, HyperPage) {
 		override;
 };
 
-autoOTMultiEditor OTMultiEditor_create (const char32 *title, OTMulti grammar);
+OTMultiEditor OTMultiEditor_create (const char32 *title, OTMulti grammar);
 
 /* End of file OTMultiEditor.h */
 #endif
diff --git a/gram/OTMulti_def.h b/gram/OTMulti_def.h
index d968c4e..ed6c00e 100644
--- a/gram/OTMulti_def.h
+++ b/gram/OTMulti_def.h
@@ -27,13 +27,11 @@ oo_DEFINE_STRUCT (OTConstraint)
 	oo_FROM (2)
 		oo_DOUBLE (plasticity)
 	oo_ENDFROM
-
 	#if oo_READING
 		if (formatVersion < 2) {
 			plasticity = 1.0;
 		}
 	#endif
-
 	#if !oo_READING && !oo_WRITING
 		oo_INT (tiedToTheLeft)
 		oo_INT (tiedToTheRight)
@@ -49,7 +47,6 @@ oo_DEFINE_STRUCT (OTCandidate)
 	oo_STRING (string)
 	oo_LONG (numberOfConstraints)
 	oo_INT_VECTOR (marks, numberOfConstraints)
-
 	#if !oo_READING && !oo_WRITING
 		oo_DOUBLE (harmony)
 		oo_DOUBLE (probability)
@@ -60,7 +57,7 @@ oo_END_STRUCT (OTCandidate)
 
 
 #define ooSTRUCT OTMulti
-oo_DEFINE_CLASS (OTMulti, Daata)
+oo_DEFINE_CLASS (OTMulti, Data)
 
 	oo_FROM (1)
 		oo_ENUM (kOTGrammar_decisionStrategy, decisionStrategy)
@@ -73,7 +70,6 @@ oo_DEFINE_CLASS (OTMulti, Daata)
 	oo_LONG_VECTOR (index, numberOfConstraints)
 	oo_LONG (numberOfCandidates)
 	oo_STRUCT_VECTOR (OTCandidate, candidates, numberOfCandidates)
-
 	#if oo_READING
 		OTMulti_sort (this);
 	#endif
diff --git a/gram/OTMulti_ex_metrics.cpp b/gram/OTMulti_ex_metrics.cpp
index 31d0b4c..46d011f 100644
--- a/gram/OTMulti_ex_metrics.cpp
+++ b/gram/OTMulti_ex_metrics.cpp
@@ -1,6 +1,6 @@
 /* OTMulti_ex_metrics.cpp
  *
- * Copyright (C) 2014,2015,2016 Paul Boersma
+ * Copyright (C) 2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@ static const char32 *constraintNames [1+NUMBER_OF_CONSTRAINTS] { 0,
 	U"Trochaic", U"FtBimor", U"FtBisyl", U"Peripheral", U"MainNonfinal", U"HeadNonfinal", U"*Clash", U"*Lapse", U"WeightByPosition", U"*C\\mu" };
 
 static void addCandidate (OTMulti me, const char32 *underlyingForm, long numberOfSyllables, int stress [],
-	bool footedToTheLeft [], bool footedToTheRight [], int surfaceWeightPattern [],
+	int footedToTheLeft [], int footedToTheRight [], int surfaceWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
 	static const char32 *syllable [] { U"L", U"L1", U"L2", U"H", U"H1", U"H2", U"K", U"K1", U"K2", U"J", U"J1", U"J2" };
@@ -76,7 +76,7 @@ static void addCandidate (OTMulti me, const char32 *underlyingForm, long numberO
 }
 
 static void fillSurfaceWeightPattern (OTMulti me, const char32 *underlyingForm, long numberOfSyllables, int stress [],
-	bool footedToTheLeft [], bool footedToTheRight [], int underlyingWeightPattern [],
+	int footedToTheLeft [], int footedToTheRight [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
 	int surfaceWeightPattern [1+7], minSurfaceWeight [1+7], maxSurfaceWeight [1+7];
@@ -114,10 +114,10 @@ static void fillSurfaceWeightPattern (OTMulti me, const char32 *underlyingForm,
 }
 
 static void path (OTMulti me, const char32 *underlyingForm, long numberOfSyllables, int stress [],
-	int startingSyllable, bool footedToTheLeft_in [], bool footedToTheRight_in [], int underlyingWeightPattern [],
+	int startingSyllable, int footedToTheLeft_in [], int footedToTheRight_in [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
-	bool footedToTheLeft [10], footedToTheRight [10];
+	int footedToTheLeft [10], footedToTheRight [10];
 	long isyll;
 	/* Localize all arguments. */
 	for (isyll = 1; isyll <= startingSyllable; isyll ++) {
@@ -132,18 +132,18 @@ static void path (OTMulti me, const char32 *underlyingForm, long numberOfSyllabl
 		path (me, underlyingForm, numberOfSyllables, stress, startingSyllable + 1,
 			footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 		if (stress [startingSyllable] == 0 && startingSyllable < numberOfSyllables && stress [startingSyllable + 1] != 0) {
-			footedToTheLeft [startingSyllable + 1] = true;
-			footedToTheRight [startingSyllable] = true;
+			footedToTheLeft [startingSyllable + 1] = TRUE;
+			footedToTheRight [startingSyllable] = TRUE;
 			path (me, underlyingForm, numberOfSyllables, stress, startingSyllable + 1,
 				footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-			footedToTheLeft [startingSyllable + 1] = false;
-			footedToTheRight [startingSyllable] = false;
+			footedToTheLeft [startingSyllable + 1] = FALSE;
+			footedToTheRight [startingSyllable] = FALSE;
 		}
 		if (stress [startingSyllable] == 0 && startingSyllable > 1 && stress [startingSyllable - 1] != 0
 		    && ! footedToTheLeft [startingSyllable - 1])
 		{
-			footedToTheRight [startingSyllable - 1] = true;
-			footedToTheLeft [startingSyllable] = true;
+			footedToTheRight [startingSyllable - 1] = TRUE;
+			footedToTheLeft [startingSyllable] = TRUE;
 			path (me, underlyingForm, numberOfSyllables, stress, startingSyllable + 1,
 				footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 		}
@@ -153,7 +153,7 @@ static void path (OTMulti me, const char32 *underlyingForm, long numberOfSyllabl
 static void fillOvertStressPattern (OTMulti me, const char32 *underlyingForm, long numberOfSyllables, int stress [], int underlyingWeightPattern [],
 	int overtFormsHaveSecondaryStress)
 {
-	bool footedToTheLeft [10], footedToTheRight [10];
+	int footedToTheLeft [10], footedToTheRight [10];
 	for (int isyll = 1; isyll <= numberOfSyllables; isyll ++)
 		footedToTheLeft [isyll] = footedToTheRight [isyll] = 0;
 	path (me, underlyingForm, numberOfSyllables, stress, 1, footedToTheLeft, footedToTheRight, underlyingWeightPattern, overtFormsHaveSecondaryStress);
@@ -175,27 +175,27 @@ static void fillTableau (OTMulti me, long numberOfSyllables, int underlyingWeigh
 	for (long mainStressed = 1; mainStressed <= numberOfSyllables; mainStressed ++) {
 		int stress [10];
 		stress [mainStressed] = 1;
-		for (int secondary1 = false; secondary1 <= true; secondary1 ++) {
+		for (int secondary1 = FALSE; secondary1 <= TRUE; secondary1 ++) {
 			stress [mainStressed <= 1 ? 2 : 1] = secondary1 ? 2 : 0;
 			if (numberOfSyllables == 2) {
 				fillOvertStressPattern (me, underlyingForm, 2, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-			} else for (int secondary2 = false; secondary2 <= true; secondary2 ++) {
+			} else for (int secondary2 = FALSE; secondary2 <= TRUE; secondary2 ++) {
 				stress [mainStressed <= 2 ? 3 : 2] = secondary2 ? 2 : 0;
 				if (numberOfSyllables == 3) {
 					fillOvertStressPattern (me, underlyingForm, 3, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-				} else for (int secondary3 = false; secondary3 <= true; secondary3 ++) {
+				} else for (int secondary3 = FALSE; secondary3 <= TRUE; secondary3 ++) {
 					stress [mainStressed <= 3 ? 4 : 3] = secondary3 ? 2 : 0;
 					if (numberOfSyllables == 4) {
 						fillOvertStressPattern (me, underlyingForm, 4, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-					} else for (int secondary4 = false; secondary4 <= true; secondary4 ++) {
+					} else for (int secondary4 = FALSE; secondary4 <= TRUE; secondary4 ++) {
 						stress [mainStressed <= 4 ? 5 : 4] = secondary4 ? 2 : 0;
 						if (numberOfSyllables == 5) {
 							fillOvertStressPattern (me, underlyingForm, 5, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-						} else for (int secondary5 = false; secondary5 <= true; secondary5 ++) {
+						} else for (int secondary5 = FALSE; secondary5 <= TRUE; secondary5 ++) {
 							stress [mainStressed <= 5 ? 6 : 5] = secondary5 ? 2 : 0;
 							if (numberOfSyllables == 6) {
 								fillOvertStressPattern (me, underlyingForm, 6, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
-							} else for (int secondary6 = false; secondary6 <= true; secondary6 ++) {
+							} else for (int secondary6 = FALSE; secondary6 <= TRUE; secondary6 ++) {
 								stress [mainStressed <= 6 ? 7 : 6] = secondary6 ? 2 : 0;
 								fillOvertStressPattern (me, underlyingForm, 7, stress, underlyingWeightPattern, overtFormsHaveSecondaryStress);
 							}
@@ -376,8 +376,8 @@ static void computeViolationMarks (OTCandidate me) {
 }
 
 static void replaceOutput (OTCandidate me) {
-	bool abstract = false;
-	Melder_assert (my string);
+	int abstract = FALSE;
+	Melder_assert (my string != NULL);
 	char32 newString [150], *q = & newString [0];
 	for (const char32 *p = & my string [0]; *p != U'\0'; p ++) {
 		if (p [0] == U' ') {
@@ -411,7 +411,7 @@ static void replaceOutput (OTCandidate me) {
 		} else if (isStress (p [0]) && abstract) {
 			;
 		} else {
-			if (p [0] == U'/') abstract = true;
+			if (p [0] == U'/') abstract = TRUE;
 			*q ++ = p [0];
 		}
 	}
@@ -420,7 +420,7 @@ static void replaceOutput (OTCandidate me) {
 	my string = Melder_dup (newString);
 }
 
-autoOTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
+OTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConstraint, int includeFootBimoraic, int includeFootBisyllabic,
 	int includePeripheral, int nonfinalityConstraint, int overtFormsHaveSecondaryStress,
 	int includeClashAndLapse, int includeCodas)
 {
@@ -457,7 +457,7 @@ autoOTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConst
 				underlyingWeightPattern [isyll] = 1;   /* L or cv */
 			}
 			for (long iweightPattern = 1; iweightPattern <= numberOfUnderlyingWeightPatterns; iweightPattern ++) {
-				fillTableau (me.get(), numberOfSyllables, underlyingWeightPattern, overtFormsHaveSecondaryStress, includeCodas);
+				fillTableau (me.peek(), numberOfSyllables, underlyingWeightPattern, overtFormsHaveSecondaryStress, includeCodas);
 				/*
 				 * Cycle to next underlying weight pattern.
 				 */
@@ -475,40 +475,40 @@ autoOTMulti OTMulti_create_metrics (int equal_footForm_wsp, int trochaicityConst
 		for (long icand = 1; icand <= my numberOfCandidates; icand ++) {
 			computeViolationMarks (& my candidates [icand]);
 		}
-		OTMulti_checkIndex (me.get());
-		OTMulti_newDisharmonies (me.get(), 0.0);
+		OTMulti_checkIndex (me.peek());
+		OTMulti_newDisharmonies (me.peek(), 0.0);
 		if (trochaicityConstraint == 1) {
-			OTMulti_removeConstraint (me.get(), U"Trochaic");
+			OTMulti_removeConstraint (me.peek(), U"Trochaic");
 		} else {
-			OTMulti_removeConstraint (me.get(), U"FtNonfinal");
+			OTMulti_removeConstraint (me.peek(), U"FtNonfinal");
 		}
-		if (! includeFootBimoraic) OTMulti_removeConstraint (me.get(), U"FtBimor");
-		if (! includeFootBisyllabic) OTMulti_removeConstraint (me.get(), U"FtBisyl");
-		if (! includePeripheral) OTMulti_removeConstraint (me.get(), U"Peripheral");
+		if (! includeFootBimoraic) OTMulti_removeConstraint (me.peek(), U"FtBimor");
+		if (! includeFootBisyllabic) OTMulti_removeConstraint (me.peek(), U"FtBisyl");
+		if (! includePeripheral) OTMulti_removeConstraint (me.peek(), U"Peripheral");
 		if (nonfinalityConstraint == 1) {
-			OTMulti_removeConstraint (me.get(), U"MainNonfinal");
-			OTMulti_removeConstraint (me.get(), U"HeadNonfinal");
+			OTMulti_removeConstraint (me.peek(), U"MainNonfinal");
+			OTMulti_removeConstraint (me.peek(), U"HeadNonfinal");
 		} else if (nonfinalityConstraint == 2) {
-			OTMulti_removeConstraint (me.get(), U"HeadNonfinal");
-			OTMulti_removeConstraint (me.get(), U"Nonfinal");
+			OTMulti_removeConstraint (me.peek(), U"HeadNonfinal");
+			OTMulti_removeConstraint (me.peek(), U"Nonfinal");
 		} else {
-			OTMulti_removeConstraint (me.get(), U"MainNonfinal");
-			OTMulti_removeConstraint (me.get(), U"Nonfinal");
+			OTMulti_removeConstraint (me.peek(), U"MainNonfinal");
+			OTMulti_removeConstraint (me.peek(), U"Nonfinal");
 		}
 		if (! includeClashAndLapse) {
-			OTMulti_removeConstraint (me.get(), U"*Clash");
-			OTMulti_removeConstraint (me.get(), U"*Lapse");
+			OTMulti_removeConstraint (me.peek(), U"*Clash");
+			OTMulti_removeConstraint (me.peek(), U"*Lapse");
 		}
 		if (! includeCodas) {
-			OTMulti_removeConstraint (me.get(), U"WeightByPosition");
-			OTMulti_removeConstraint (me.get(), U"*C\\mu");
+			OTMulti_removeConstraint (me.peek(), U"WeightByPosition");
+			OTMulti_removeConstraint (me.peek(), U"*C\\mu");
 		}
 		if (includeCodas) {
 			for (long icand = 1; icand <= my numberOfCandidates; icand ++) {
 				replaceOutput (& my candidates [icand]);
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Metrics grammar not created.");
 	}
diff --git a/gram/manual_gram.cpp b/gram/manual_gram.cpp
index 6f998b7..cb31790 100644
--- a/gram/manual_gram.cpp
+++ b/gram/manual_gram.cpp
@@ -21,72 +21,84 @@
 #include "OTGrammar.h"
 
 static void draw_NoCoda_pat (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NoCoda_grammar ();
-	OTGrammar_drawTableau (ot.get(), g, false, U"pat");
+	OTGrammar ot = OTGrammar_create_NoCoda_grammar ();
+	OTGrammar_drawTableau (ot, g, false, U"pat");
+	forget (ot);
 }
 static void draw_NoCoda_pa (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NoCoda_grammar ();
-	OTGrammar_drawTableau (ot.get(), g, false, U"pa");
+	OTGrammar ot = OTGrammar_create_NoCoda_grammar ();
+	OTGrammar_drawTableau (ot, g, false, U"pa");
+	forget (ot);
 }
 static void draw_NoCoda_reverse (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NoCoda_grammar ();
+	OTGrammar ot = OTGrammar_create_NoCoda_grammar ();
 	ot -> index [1] = 2;
 	ot -> index [2] = 1;
-	OTGrammar_drawTableau (ot.get(), g, false, U"pat");
+	OTGrammar_drawTableau (ot, g, false, U"pat");
+	forget (ot);
 }
 static void draw_NPA_assimilate_anpa (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NPA_grammar ();
+	OTGrammar ot = OTGrammar_create_NPA_grammar ();
 	ot -> index [1] = 3;
 	ot -> index [2] = 1;
 	ot -> index [3] = 2;
-	OTGrammar_drawTableau (ot.get(), g, false, U"an+pa");
+	OTGrammar_drawTableau (ot, g, false, U"an+pa");
+	forget (ot);
 }
 static void draw_NPA_assimilate_atma (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NPA_grammar ();
+	OTGrammar ot = OTGrammar_create_NPA_grammar ();
 	ot -> index [1] = 3;
 	ot -> index [2] = 1;
 	ot -> index [3] = 2;
-	OTGrammar_drawTableau (ot.get(), g, false, U"at+ma");
+	OTGrammar_drawTableau (ot, g, false, U"at+ma");
+	forget (ot);
 }
 static void draw_NPA_faithful_anpa (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NPA_grammar ();
+	OTGrammar ot = OTGrammar_create_NPA_grammar ();
 	ot -> index [1] = 3;
 	ot -> index [2] = 2;
 	ot -> index [3] = 1;
-	OTGrammar_drawTableau (ot.get(), g, false, U"an+pa");
+	OTGrammar_drawTableau (ot, g, false, U"an+pa");
+	forget (ot);
 }
 static void draw_NPA_faithful_atma (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_NPA_grammar ();
+	OTGrammar ot = OTGrammar_create_NPA_grammar ();
 	ot -> index [1] = 3;
 	ot -> index [2] = 2;
 	ot -> index [3] = 1;
-	OTGrammar_drawTableau (ot.get(), g, false, U"at+ma");
+	OTGrammar_drawTableau (ot, g, false, U"at+ma");
+	forget (ot);
 }
 static void draw_Wolof_ItI (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
-	OTGrammar_drawTableau (ot.get(), g, false, U"\\ict\\ic");
+	OTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
+	OTGrammar_drawTableau (ot, g, false, U"\\ict\\ic");
+	forget (ot);
 }
 static void draw_Wolof_itE (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
-	OTGrammar_drawTableau (ot.get(), g, false, U"it\\ef");
+	OTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
+	OTGrammar_drawTableau (ot, g, false, U"it\\ef");
+	forget (ot);
 }
 static void draw_Wolof_etE (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
-	OTGrammar_drawTableau (ot.get(), g, false, U"et\\ef");
+	OTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
+	OTGrammar_drawTableau (ot, g, false, U"et\\ef");
+	forget (ot);
 }
 static void draw_Wolof_schwatschwa (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
-	OTGrammar_drawTableau (ot.get(), g, false, U"\\swt\\sw");
+	OTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 4);
+	OTGrammar_drawTableau (ot, g, false, U"\\swt\\sw");
+	forget (ot);
 }
 static void draw_Infant_swtI (Graphics g) {
-	autoOTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 3);
+	OTGrammar ot = OTGrammar_create_tongueRoot_grammar (1, 3);
 	ot -> constraints [1]. disharmony = 3;
 	ot -> constraints [2]. disharmony = 4;
 	ot -> constraints [3]. disharmony = 2;
 	ot -> constraints [4]. disharmony = 1;
 	ot -> constraints [5]. disharmony = 5;
-	OTGrammar_sort (ot.get());
-	OTGrammar_drawTableau (ot.get(), g, false, U"\\swt\\ic");
+	OTGrammar_sort (ot);
+	OTGrammar_drawTableau (ot, g, false, U"\\swt\\ic");
+	forget (ot);
 }
 
 void manual_gram_init (ManPages me);
diff --git a/gram/praat_gram.cpp b/gram/praat_gram.cpp
index 741d36f..50bbac4 100644
--- a/gram/praat_gram.cpp
+++ b/gram/praat_gram.cpp
@@ -34,7 +34,7 @@
 #pragma mark New
 
 static void UiForm_addNetworkFields (UiForm dia) {
-	UiField radio;
+	Any radio;
 	LABEL (U"", U"Activity spreading settings:")
 	REAL (U"Spreading rate", U"0.01")
 	OPTIONMENU_ENUM (U"Activity clipping rule", kNetwork_activityClippingRule, DEFAULT)
@@ -63,7 +63,7 @@ DO
 		GET_REAL (U"Learning rate"), GET_REAL (U"left Weight range"), GET_REAL (U"right Weight range"), GET_REAL (U"Weight leak"),
 		GET_REAL (U"left x range"), GET_REAL (U"right x range"), GET_REAL (U"left y range"), GET_REAL (U"right y range"),
 		0, 0);
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
 FORM (Create_rectangular_Network, U"Create rectangular Network", 0) {
@@ -83,7 +83,7 @@ DO
 		GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"),
 		GET_INTEGER (U"Bottom row clamped"),
 		GET_REAL (U"left Initial weight range"), GET_REAL (U"right Initial weight range"));
-	praat_new (me.move(),
+	praat_new (me.transfer(),
 			U"rectangle_", GET_INTEGER (U"Number of rows"),
 			U"_", GET_INTEGER (U"Number of columns"));
 END2 }
@@ -105,7 +105,7 @@ DO
 		GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"),
 		GET_INTEGER (U"Bottom row clamped"),
 		GET_REAL (U"left Initial weight range"), GET_REAL (U"right Initial weight range"));
-	praat_new (me.move(),
+	praat_new (me.transfer(),
 			U"rectangle_", GET_INTEGER (U"Number of rows"),
 			U"_", GET_INTEGER (U"Number of columns"));
 END2 }
@@ -168,7 +168,7 @@ DO
 			GET_INTEGER (U"Include x"), GET_INTEGER (U"Include y"), GET_INTEGER (U"Position decimals"),
 			GET_INTEGER (U"Include clamped"),
 			GET_INTEGER (U"Include activity"), GET_INTEGER (U"Include excitation"), GET_INTEGER (U"Activity decimals"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -394,17 +394,17 @@ END2 }
 
 DIRECT2 (Create_NoCoda_grammar) {
 	autoOTGrammar me = OTGrammar_create_NoCoda_grammar ();
-	praat_new (me.move(), U"NoCoda");
+	praat_new (me.transfer(), U"NoCoda");
 END2 }
 
 DIRECT2 (Create_NPA_grammar) {
 	autoOTGrammar me = OTGrammar_create_NPA_grammar ();
-	praat_new (me.move(), U"assimilation");
+	praat_new (me.transfer(), U"assimilation");
 END2 }
 
 DIRECT2 (Create_NPA_distribution) {
 	autoPairDistribution me = OTGrammar_create_NPA_distribution ();
-	praat_new (me.move(), U"assimilation");
+	praat_new (me.transfer(), U"assimilation");
 END2 }
 
 FORM (Create_tongue_root_grammar, U"Create tongue-root grammar", U"Create tongue-root grammar...") {
@@ -419,7 +419,7 @@ FORM (Create_tongue_root_grammar, U"Create tongue-root grammar", U"Create tongue
 	OK2
 DO
 	autoOTGrammar me = OTGrammar_create_tongueRoot_grammar (GET_INTEGER (U"Constraint set"), GET_INTEGER (U"Ranking"));
-	praat_new (me.move(), GET_STRING (U"Ranking"));
+	praat_new (me.transfer(), GET_STRING (U"Ranking"));
 END2 }
 
 FORM (Create_metrics_grammar, U"Create metrics grammar", 0) {
@@ -442,11 +442,11 @@ FORM (Create_metrics_grammar, U"Create metrics grammar", 0) {
 	BOOLEAN (U"Include codas", 0)
 	OK2
 DO
-	autoOTGrammar me = OTGrammar_create_metrics (GET_INTEGER (U"Initial ranking"), GET_INTEGER (U"Trochaicity constraint"),
+	praat_new (OTGrammar_create_metrics (GET_INTEGER (U"Initial ranking"), GET_INTEGER (U"Trochaicity constraint"),
 		GET_INTEGER (U"Include FootBimoraic"), GET_INTEGER (U"Include FootBisyllabic"),
 		GET_INTEGER (U"Include Peripheral"), GET_INTEGER (U"Nonfinality constraint"),
-		GET_INTEGER (U"Overt forms have secondary stress"), GET_INTEGER (U"Include *Clash and *Lapse"), GET_INTEGER (U"Include codas"));
-	praat_new (me.move(), GET_STRING (U"Initial ranking"));
+		GET_INTEGER (U"Overt forms have secondary stress"), GET_INTEGER (U"Include *Clash and *Lapse"), GET_INTEGER (U"Include codas")),
+		GET_STRING (U"Initial ranking"));
 END2 }
 
 #pragma mark Save
@@ -468,8 +468,7 @@ DIRECT2 (OTGrammar_edit) {
 	LOOP {
 		iam (OTGrammar);
 		autoOTGrammarEditor editor = OTGrammarEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -708,7 +707,7 @@ DO
 	LOOP {
 		iam (OTGrammar);
 		autoStrings thee = OTGrammar_generateInputs (me, GET_INTEGER (U"Number of trials"));
-		praat_new (thee.move(), my name, U"_in");
+		praat_new (thee.transfer(), my name, U"_in");
 	}
 END2 }
 
@@ -716,7 +715,7 @@ DIRECT2 (OTGrammar_getInputs) {
 	LOOP {
 		iam (OTGrammar);
 		autoStrings thee = OTGrammar_getInputs (me);
-		praat_new (thee.move(), my name, U"_in");
+		praat_new (thee.transfer(), my name, U"_in");
 	}
 END2 }
 
@@ -724,7 +723,7 @@ DIRECT2 (OTGrammar_measureTypology) {
 	LOOP try {
 		iam (OTGrammar);
 		autoDistributions thee = OTGrammar_measureTypology (me);
-		praat_new (thee.move(), my name, U"_out");
+		praat_new (thee.transfer(), my name, U"_out");
 		praat_dataChanged (me);
 	} catch (MelderError) {
 		praat_dataChanged (OBJECT);
@@ -765,7 +764,7 @@ FORM (OTGrammar_inputToOutputs, U"OTGrammar: Input to outputs", U"OTGrammar: Inp
 DO
 	iam_ONLY (OTGrammar);
 	autoStrings thee = OTGrammar_inputToOutputs (me, GET_STRING (U"Input form"), GET_INTEGER (U"Trials"), GET_REAL (U"Evaluation noise"));
-	praat_new (thee.move(), my name, U"_out");
+	praat_new (thee.transfer(), my name, U"_out");
 	praat_dataChanged (me);
 END2 }
 
@@ -778,7 +777,7 @@ DO
 		iam (OTGrammar);
 		try {
 			autoDistributions thee = OTGrammar_to_Distribution (me, GET_INTEGER (U"Trials per input"), GET_REAL (U"Evaluation noise"));
-			praat_new (thee.move(), my name, U"_out");
+			praat_new (thee.transfer(), my name, U"_out");
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -795,7 +794,7 @@ DO
 	LOOP try {
 		iam (OTGrammar);
 		autoPairDistribution thee = OTGrammar_to_PairDistribution (me, GET_INTEGER (U"Trials per input"), GET_REAL (U"Evaluation noise"));
-		praat_new (thee.move(), my name, U"_out");
+		praat_new (thee.transfer(), my name, U"_out");
 		praat_dataChanged (me);
 	} catch (MelderError) {
 		praat_dataChanged (OBJECT);
@@ -869,7 +868,7 @@ DO
 			GET_REAL (U"Evaluation noise"),
 			GET_ENUM (kOTGrammar_rerankingStrategy, U"Update rule"),
 			GET_INTEGER (U"Honour local rankings"),
-			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), true, true, nullptr);
+			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), TRUE, TRUE, NULL);
 		praat_dataChanged (me);
 	} catch (MelderError) {
 		praat_dataChanged (OBJECT);
@@ -894,7 +893,7 @@ DO
 			GET_REAL (U"Evaluation noise"),
 			GET_ENUM (kOTGrammar_rerankingStrategy, U"Update rule"),
 			GET_INTEGER (U"Honour local rankings"),
-			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), GET_INTEGER (U"Number of chews"), true);
+			GET_REAL (U"Plasticity"), GET_REAL (U"Rel. plasticity spreading"), GET_INTEGER (U"Number of chews"), TRUE);
 		praat_dataChanged (me);
 	} catch (MelderError) {
 		praat_dataChanged (OBJECT);
@@ -971,7 +970,7 @@ DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Strings);
 	autoStrings him = OTGrammar_inputsToOutputs (me, thee, GET_REAL (U"Evaluation noise"));
-	praat_new (him.move(), my name, U"_out");
+	praat_new (him.transfer(), my name, U"_out");
 	praat_dataChanged (me);
 END2 }
 
@@ -997,7 +996,7 @@ FORM (OTGrammar_Stringses_learn, U"OTGrammar: Learn", U"OTGrammar & 2 Strings: L
 	OK2
 DO
 	iam_ONLY (OTGrammar);
-	Strings inputs = nullptr, outputs = nullptr;
+	Strings inputs = NULL, outputs = NULL;
 	WHERE (SELECTED && CLASS == classStrings) { if (! inputs) inputs = (Strings) OBJECT; else outputs = (Strings) OBJECT; }
 	try {
 		OTGrammar_learn (me, inputs, outputs,
@@ -1024,7 +1023,7 @@ FORM (OTGrammar_Strings_learnFromPartialOutputs, U"OTGrammar: Learn from partial
 DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Strings);
-	autoOTHistory history;
+	OTHistory history = NULL;
 	try {
 		OTGrammar_learnFromPartialOutputs (me, thee,
 			GET_REAL (U"Evaluation noise"),
@@ -1038,7 +1037,7 @@ DO
 		Melder_flushError ();
 		// trickle down to save history
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 #pragma mark OTGRAMMAR & DISTRIBUTIONS
@@ -1054,7 +1053,7 @@ DO
 	double result = OTGrammar_Distributions_getFractionCorrect (me, thee, GET_INTEGER (U"Column number"),
 		GET_REAL (U"Evaluation noise"), GET_INTEGER (U"Replications"));
 	praat_dataChanged (me);
-	Melder_informationReal (result, nullptr);
+	Melder_informationReal (result, NULL);
 END2 }
 
 FORM (OTGrammar_Distributions_learnFromPartialOutputs, U"OTGrammar & Distributions: Learn from partial outputs", U"OT learning 6. Shortcut to grammar learning") {
@@ -1073,7 +1072,7 @@ FORM (OTGrammar_Distributions_learnFromPartialOutputs, U"OTGrammar & Distributio
 DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Distributions);
-	autoOTHistory history;
+	OTHistory history = NULL;
 	try {
 		OTGrammar_Distributions_learnFromPartialOutputs (me, thee, GET_INTEGER (U"Column number"),
 			GET_REAL (U"Evaluation noise"),
@@ -1088,7 +1087,7 @@ DO
 		praat_dataChanged (me);
 		Melder_flushError ();
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 FORM (OTGrammar_Distributions_learnFromPartialOutputs_rrip, U"OTGrammar & Distributions: Learn from partial outputs (rrip)", U"OT learning 6. Shortcut to grammar learning") {
@@ -1107,7 +1106,7 @@ FORM (OTGrammar_Distributions_learnFromPartialOutputs_rrip, U"OTGrammar & Distri
 DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Distributions);
-	autoOTHistory history;
+	OTHistory history = NULL;
 	try {
 		OTGrammar_Distributions_learnFromPartialOutputs (me, thee, GET_INTEGER (U"Column number"),
 			GET_REAL (U"Evaluation noise"),
@@ -1122,7 +1121,7 @@ DO
 		praat_dataChanged (me);
 		Melder_flushError ();
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 FORM (OTGrammar_Distributions_learnFromPartialOutputs_eip, U"OTGrammar & Distributions: Learn from partial outputs (eip)", U"OT learning 6. Shortcut to grammar learning") {
@@ -1141,7 +1140,7 @@ FORM (OTGrammar_Distributions_learnFromPartialOutputs_eip, U"OTGrammar & Distrib
 DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Distributions);
-	autoOTHistory history;
+	OTHistory history = NULL;
 	try {
 		OTGrammar_Distributions_learnFromPartialOutputs (me, thee, GET_INTEGER (U"Column number"),
 			GET_REAL (U"Evaluation noise"),
@@ -1156,7 +1155,7 @@ DO
 		praat_dataChanged (me);
 		Melder_flushError ();
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 FORM (OTGrammar_Distributions_learnFromPartialOutputs_wrip, U"OTGrammar & Distributions: Learn from partial outputs (wrip)", U"OT learning 6. Shortcut to grammar learning") {
@@ -1175,7 +1174,7 @@ FORM (OTGrammar_Distributions_learnFromPartialOutputs_wrip, U"OTGrammar & Distri
 DO
 	iam_ONLY (OTGrammar);
 	thouart_ONLY (Distributions);
-	autoOTHistory history;
+	OTHistory history = NULL;
 	try {
 		OTGrammar_Distributions_learnFromPartialOutputs (me, thee, GET_INTEGER (U"Column number"),
 			GET_REAL (U"Evaluation noise"),
@@ -1190,7 +1189,7 @@ DO
 		praat_dataChanged (me);
 		Melder_flushError ();
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 FORM (OTGrammar_Distributions_listObligatoryRankings, U"OTGrammar & Distributions: Get fraction correct...", 0) {
@@ -1232,7 +1231,7 @@ DO
 		praat_dataChanged (me);
 		throw;
 	}
-	Melder_informationReal (result, nullptr);
+	Melder_informationReal (result, NULL);
 END2 }
 
 FORM (OTGrammar_PairDistribution_getMinimumNumberCorrect, U"OTGrammar & PairDistribution: Get minimum number correct...", 0) {
@@ -1310,11 +1309,11 @@ FORM (Create_multi_level_metrics_grammar, U"Create multi-level metrics grammar",
 	BOOLEAN (U"Include codas", 0)
 	OK2
 DO
-	autoOTMulti me = OTMulti_create_metrics (GET_INTEGER (U"Initial ranking"), GET_INTEGER (U"Trochaicity constraint"),
+	praat_new (OTMulti_create_metrics (GET_INTEGER (U"Initial ranking"), GET_INTEGER (U"Trochaicity constraint"),
 		GET_INTEGER (U"Include FootBimoraic"), GET_INTEGER (U"Include FootBisyllabic"),
 		GET_INTEGER (U"Include Peripheral"), GET_INTEGER (U"Nonfinality constraint"),
-		GET_INTEGER (U"Overt forms have secondary stress"), GET_INTEGER (U"Include *Clash and *Lapse"), GET_INTEGER (U"Include codas"));
-	praat_new (me.move(), GET_STRING (U"Initial ranking"));
+		GET_INTEGER (U"Overt forms have secondary stress"), GET_INTEGER (U"Include *Clash and *Lapse"), GET_INTEGER (U"Include codas")),
+		GET_STRING (U"Initial ranking"));
 END2 }
 
 FORM (OTMulti_drawTableau, U"Draw tableau", U"OT learning") {
@@ -1350,8 +1349,7 @@ DIRECT2 (OTMulti_edit) {
 	LOOP {
 		iam (OTMulti);
 		autoOTMultiEditor editor = OTMultiEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -1374,7 +1372,7 @@ DO
 	iam_ONLY (OTMulti);
 	autoStrings thee = OTMulti_generateOptimalForms (me, GET_STRING (U"Partial form 1"), GET_STRING (U"Partial form 2"),
 		GET_INTEGER (U"Number of trials"), GET_REAL (U"Evaluation noise"));
-	praat_new (thee.move(), my name, U"_out");
+	praat_new (thee.transfer(), my name, U"_out");
 	praat_dataChanged (me);
 END2 }
 
@@ -1585,7 +1583,7 @@ DO
 		try {
 			autoDistributions thee = OTMulti_to_Distribution (me, GET_STRING (U"Partial form 1"), GET_STRING (U"Partial form 2"),
 				GET_INTEGER (U"Number of trials"), GET_REAL (U"Evaluation noise"));
-			praat_new (thee.move(), my name, U"_out");
+			praat_new (thee.transfer(), my name, U"_out");
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -1611,7 +1609,7 @@ FORM (OTMulti_PairDistribution_learn, U"OTMulti & PairDistribution: Learn", 0) {
 DO
 	iam_ONLY (OTMulti);
 	thouart_ONLY (PairDistribution);
-	autoTable history;
+	Table history = NULL;
 	try {
 		OTMulti_PairDistribution_learn (me, thee,
 			GET_REAL (U"Evaluation noise"),
@@ -1627,7 +1625,7 @@ DO
 		Melder_flushError ();
 		// trickle down to save history
 	}
-	if (history) praat_new (history.move(), my name);
+	if (history) praat_new (history, my name);
 END2 }
 
 FORM (OTMulti_Strings_generateOptimalForms, U"OTGrammar: Inputs to outputs", U"OTGrammar: Inputs to outputs...") {
@@ -1637,163 +1635,163 @@ DO
 	iam_ONLY (OTMulti);
 	thouart_ONLY (Strings);
 	autoStrings him = OTMulti_Strings_generateOptimalForms (me, thee, GET_REAL (U"Evaluation noise"));
-	praat_new (him.move(), my name, U"_out");
+	praat_new (him.transfer(), my name, U"_out");
 	praat_dataChanged (me);
 END2 }
 
 /***** buttons *****/
 
-void praat_uvafon_gram_init ();
-void praat_uvafon_gram_init () {
-	Thing_recognizeClassesByName (classNetwork, classOTGrammar, classOTHistory, classOTMulti, nullptr);
+void praat_uvafon_gram_init (void);
+void praat_uvafon_gram_init (void) {
+	Thing_recognizeClassesByName (classNetwork, classOTGrammar, classOTHistory, classOTMulti, NULL);
 	Thing_recognizeClassByOtherName (classOTGrammar, U"OTCase");
 
-	praat_addMenuCommand (U"Objects", U"New", U"Constraint grammars", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"OT learning tutorial", nullptr, 1, DO_OT_learning_tutorial);
-		praat_addMenuCommand (U"Objects", U"New", U"-- tableau grammars --", nullptr, 1, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create NoCoda grammar", nullptr, 1, DO_Create_NoCoda_grammar);
-		praat_addMenuCommand (U"Objects", U"New", U"Create place assimilation grammar", nullptr, 1, DO_Create_NPA_grammar);
-		praat_addMenuCommand (U"Objects", U"New", U"Create place assimilation distribution", nullptr, 1, DO_Create_NPA_distribution);
-		praat_addMenuCommand (U"Objects", U"New", U"Create tongue-root grammar...", nullptr, 1, DO_Create_tongue_root_grammar);
-		praat_addMenuCommand (U"Objects", U"New", U"Create metrics grammar...", nullptr, 1, DO_Create_metrics_grammar);
-		praat_addMenuCommand (U"Objects", U"New", U"Create multi-level metrics grammar...", nullptr, 1, DO_Create_multi_level_metrics_grammar);
-	praat_addAction1 (classOTGrammar, 1, U"Save as headerless spreadsheet file...", nullptr, 0, DO_OTGrammar_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (classOTGrammar, 1, U"Write to headerless spreadsheet file...", nullptr, praat_HIDDEN, DO_OTGrammar_writeToHeaderlessSpreadsheetFile);
-
-	praat_addAction1 (classOTGrammar, 0, U"OTGrammar help", nullptr, 0, DO_OTGrammar_help);
-	praat_addAction1 (classOTGrammar, 0, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_OTGrammar_edit);
-	praat_addAction1 (classOTGrammar, 0, U"Edit", nullptr, praat_HIDDEN, DO_OTGrammar_edit);
-	praat_addAction1 (classOTGrammar, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 0, U"Draw tableau...", nullptr, 0, DO_OTGrammar_drawTableau);
-		praat_addAction1 (classOTGrammar, 0, U"Draw tableau (narrowly)...", nullptr, 0, DO_OTGrammar_drawTableau_narrowly);
-	praat_addAction1 (classOTGrammar, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 1, U"Get number of constraints", nullptr, 1, DO_OTGrammar_getNumberOfConstraints);
-		praat_addAction1 (classOTGrammar, 1, U"Get constraint...", nullptr, 1, DO_OTGrammar_getConstraint);
-		praat_addAction1 (classOTGrammar, 1, U"Get ranking value...", nullptr, 1, DO_OTGrammar_getRankingValue);
-		praat_addAction1 (classOTGrammar, 1, U"Get disharmony...", nullptr, 1, DO_OTGrammar_getDisharmony);
-		praat_addAction1 (classOTGrammar, 1, U"Get number of tableaus", nullptr, 1, DO_OTGrammar_getNumberOfTableaus);
-		praat_addAction1 (classOTGrammar, 1, U"Get input...", nullptr, 1, DO_OTGrammar_getInput);
-		praat_addAction1 (classOTGrammar, 1, U"Get number of candidates...", nullptr, 1, DO_OTGrammar_getNumberOfCandidates);
-		praat_addAction1 (classOTGrammar, 1, U"Get candidate...", nullptr, 1, DO_OTGrammar_getCandidate);
-		praat_addAction1 (classOTGrammar, 1, U"Get number of violations...", nullptr, 1, DO_OTGrammar_getNumberOfViolations);
-		praat_addAction1 (classOTGrammar, 1, U"-- parse --", nullptr, 1, nullptr);
-		praat_addAction1 (classOTGrammar, 1, U"Get winner...", nullptr, 1, DO_OTGrammar_getWinner);
-		praat_addAction1 (classOTGrammar, 1, U"Compare candidates...", nullptr, 1, DO_OTGrammar_compareCandidates);
-		praat_addAction1 (classOTGrammar, 1, U"Get number of optimal candidates...", nullptr, 1, DO_OTGrammar_getNumberOfOptimalCandidates);
-		praat_addAction1 (classOTGrammar, 1, U"Is candidate grammatical...", nullptr, 1, DO_OTGrammar_isCandidateGrammatical);
-		praat_addAction1 (classOTGrammar, 1, U"Is candidate singly grammatical...", nullptr, 1, DO_OTGrammar_isCandidateSinglyGrammatical);
-		praat_addAction1 (classOTGrammar, 1, U"Get interpretive parse...", nullptr, 1, DO_OTGrammar_getInterpretiveParse);
-		praat_addAction1 (classOTGrammar, 1, U"Is partial output grammatical...", nullptr, 1, DO_OTGrammar_isPartialOutputGrammatical);
-		praat_addAction1 (classOTGrammar, 1, U"Is partial output singly grammatical...", nullptr, 1, DO_OTGrammar_isPartialOutputSinglyGrammatical);
-	praat_addAction1 (classOTGrammar, 0, U"Generate inputs...", nullptr, 0, DO_OTGrammar_generateInputs);
-	praat_addAction1 (classOTGrammar, 0, U"Get inputs", nullptr, 0, DO_OTGrammar_getInputs);
-	praat_addAction1 (classOTGrammar, 0, U"Measure typology", nullptr, 0, DO_OTGrammar_measureTypology);
-	praat_addAction1 (classOTGrammar, 0, U"Evaluate", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 0, U"Evaluate...", nullptr, 0, DO_OTGrammar_evaluate);
-		praat_addAction1 (classOTGrammar, 0, U"Input to output...", nullptr, 0, DO_OTGrammar_inputToOutput);
-		praat_addAction1 (classOTGrammar, 0, U"Input to outputs...", nullptr, 0, DO_OTGrammar_inputToOutputs);
-		praat_addAction1 (classOTGrammar, 0, U"To output Distributions...", nullptr, 0, DO_OTGrammar_to_Distributions);
-		praat_addAction1 (classOTGrammar, 0, U"To PairDistribution...", nullptr, 0, DO_OTGrammar_to_PairDistribution);
-	praat_addAction1 (classOTGrammar, 0, U"Modify ranking -", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 0, U"Set ranking...", nullptr, 1, DO_OTGrammar_setRanking);
-		praat_addAction1 (classOTGrammar, 0, U"Reset all rankings...", nullptr, 1, DO_OTGrammar_resetAllRankings);
-		praat_addAction1 (classOTGrammar, 0, U"Reset to random ranking...", nullptr, 1, DO_OTGrammar_resetToRandomRanking);
-		praat_addAction1 (classOTGrammar, 0, U"Reset to random total ranking...", nullptr, 1, DO_OTGrammar_resetToRandomTotalRanking);
-		praat_addAction1 (classOTGrammar, 0, U"Learn one...", nullptr, 1, DO_OTGrammar_learnOne);
-		praat_addAction1 (classOTGrammar, 0, U"Learn one from partial output...", nullptr, 1, DO_OTGrammar_learnOneFromPartialOutput);
-	praat_addAction1 (classOTGrammar, 0, U"Modify behaviour -", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 1, U"Set harmony computation method...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_OTGrammar_setDecisionStrategy);
-		praat_addAction1 (classOTGrammar, 1, U"Set decision strategy...", nullptr, 1, DO_OTGrammar_setDecisionStrategy);
-		praat_addAction1 (classOTGrammar, 1, U"Set leak...", nullptr, 1, DO_OTGrammar_setLeak);
-		praat_addAction1 (classOTGrammar, 1, U"Set constraint plasticity...", nullptr, 1, DO_OTGrammar_setConstraintPlasticity);
-	praat_addAction1 (classOTGrammar, 0, U"Modify structure -", nullptr, 0, nullptr);
-		praat_addAction1 (classOTGrammar, 0, U"Remove constraint...", nullptr, 1, DO_OTGrammar_removeConstraint);
-		praat_addAction1 (classOTGrammar, 0, U"Remove harmonically bounded candidates...", nullptr, 1, DO_OTGrammar_removeHarmonicallyBoundedCandidates);
+	praat_addMenuCommand (U"Objects", U"New", U"Constraint grammars", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"OT learning tutorial", 0, 1, DO_OT_learning_tutorial);
+		praat_addMenuCommand (U"Objects", U"New", U"-- tableau grammars --", 0, 1, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create NoCoda grammar", 0, 1, DO_Create_NoCoda_grammar);
+		praat_addMenuCommand (U"Objects", U"New", U"Create place assimilation grammar", 0, 1, DO_Create_NPA_grammar);
+		praat_addMenuCommand (U"Objects", U"New", U"Create place assimilation distribution", 0, 1, DO_Create_NPA_distribution);
+		praat_addMenuCommand (U"Objects", U"New", U"Create tongue-root grammar...", 0, 1, DO_Create_tongue_root_grammar);
+		praat_addMenuCommand (U"Objects", U"New", U"Create metrics grammar...", 0, 1, DO_Create_metrics_grammar);
+		praat_addMenuCommand (U"Objects", U"New", U"Create multi-level metrics grammar...", 0, 1, DO_Create_multi_level_metrics_grammar);
+	praat_addAction1 (classOTGrammar, 1, U"Save as headerless spreadsheet file...", 0, 0, DO_OTGrammar_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (classOTGrammar, 1, U"Write to headerless spreadsheet file...", 0, praat_HIDDEN, DO_OTGrammar_writeToHeaderlessSpreadsheetFile);
+
+	praat_addAction1 (classOTGrammar, 0, U"OTGrammar help", 0, 0, DO_OTGrammar_help);
+	praat_addAction1 (classOTGrammar, 0, U"View & Edit", 0, praat_ATTRACTIVE, DO_OTGrammar_edit);
+	praat_addAction1 (classOTGrammar, 0, U"Edit", 0, praat_HIDDEN, DO_OTGrammar_edit);
+	praat_addAction1 (classOTGrammar, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 0, U"Draw tableau...", 0, 0, DO_OTGrammar_drawTableau);
+		praat_addAction1 (classOTGrammar, 0, U"Draw tableau (narrowly)...", 0, 0, DO_OTGrammar_drawTableau_narrowly);
+	praat_addAction1 (classOTGrammar, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 1, U"Get number of constraints", 0, 1, DO_OTGrammar_getNumberOfConstraints);
+		praat_addAction1 (classOTGrammar, 1, U"Get constraint...", 0, 1, DO_OTGrammar_getConstraint);
+		praat_addAction1 (classOTGrammar, 1, U"Get ranking value...", 0, 1, DO_OTGrammar_getRankingValue);
+		praat_addAction1 (classOTGrammar, 1, U"Get disharmony...", 0, 1, DO_OTGrammar_getDisharmony);
+		praat_addAction1 (classOTGrammar, 1, U"Get number of tableaus", 0, 1, DO_OTGrammar_getNumberOfTableaus);
+		praat_addAction1 (classOTGrammar, 1, U"Get input...", 0, 1, DO_OTGrammar_getInput);
+		praat_addAction1 (classOTGrammar, 1, U"Get number of candidates...", 0, 1, DO_OTGrammar_getNumberOfCandidates);
+		praat_addAction1 (classOTGrammar, 1, U"Get candidate...", 0, 1, DO_OTGrammar_getCandidate);
+		praat_addAction1 (classOTGrammar, 1, U"Get number of violations...", 0, 1, DO_OTGrammar_getNumberOfViolations);
+		praat_addAction1 (classOTGrammar, 1, U"-- parse --", 0, 1, 0);
+		praat_addAction1 (classOTGrammar, 1, U"Get winner...", 0, 1, DO_OTGrammar_getWinner);
+		praat_addAction1 (classOTGrammar, 1, U"Compare candidates...", 0, 1, DO_OTGrammar_compareCandidates);
+		praat_addAction1 (classOTGrammar, 1, U"Get number of optimal candidates...", 0, 1, DO_OTGrammar_getNumberOfOptimalCandidates);
+		praat_addAction1 (classOTGrammar, 1, U"Is candidate grammatical...", 0, 1, DO_OTGrammar_isCandidateGrammatical);
+		praat_addAction1 (classOTGrammar, 1, U"Is candidate singly grammatical...", 0, 1, DO_OTGrammar_isCandidateSinglyGrammatical);
+		praat_addAction1 (classOTGrammar, 1, U"Get interpretive parse...", 0, 1, DO_OTGrammar_getInterpretiveParse);
+		praat_addAction1 (classOTGrammar, 1, U"Is partial output grammatical...", 0, 1, DO_OTGrammar_isPartialOutputGrammatical);
+		praat_addAction1 (classOTGrammar, 1, U"Is partial output singly grammatical...", 0, 1, DO_OTGrammar_isPartialOutputSinglyGrammatical);
+	praat_addAction1 (classOTGrammar, 0, U"Generate inputs...", 0, 0, DO_OTGrammar_generateInputs);
+	praat_addAction1 (classOTGrammar, 0, U"Get inputs", 0, 0, DO_OTGrammar_getInputs);
+	praat_addAction1 (classOTGrammar, 0, U"Measure typology", 0, 0, DO_OTGrammar_measureTypology);
+	praat_addAction1 (classOTGrammar, 0, U"Evaluate", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 0, U"Evaluate...", 0, 0, DO_OTGrammar_evaluate);
+		praat_addAction1 (classOTGrammar, 0, U"Input to output...", 0, 0, DO_OTGrammar_inputToOutput);
+		praat_addAction1 (classOTGrammar, 0, U"Input to outputs...", 0, 0, DO_OTGrammar_inputToOutputs);
+		praat_addAction1 (classOTGrammar, 0, U"To output Distributions...", 0, 0, DO_OTGrammar_to_Distributions);
+		praat_addAction1 (classOTGrammar, 0, U"To PairDistribution...", 0, 0, DO_OTGrammar_to_PairDistribution);
+	praat_addAction1 (classOTGrammar, 0, U"Modify ranking -", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 0, U"Set ranking...", 0, 1, DO_OTGrammar_setRanking);
+		praat_addAction1 (classOTGrammar, 0, U"Reset all rankings...", 0, 1, DO_OTGrammar_resetAllRankings);
+		praat_addAction1 (classOTGrammar, 0, U"Reset to random ranking...", 0, 1, DO_OTGrammar_resetToRandomRanking);
+		praat_addAction1 (classOTGrammar, 0, U"Reset to random total ranking...", 0, 1, DO_OTGrammar_resetToRandomTotalRanking);
+		praat_addAction1 (classOTGrammar, 0, U"Learn one...", 0, 1, DO_OTGrammar_learnOne);
+		praat_addAction1 (classOTGrammar, 0, U"Learn one from partial output...", 0, 1, DO_OTGrammar_learnOneFromPartialOutput);
+	praat_addAction1 (classOTGrammar, 0, U"Modify behaviour -", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 1, U"Set harmony computation method...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_OTGrammar_setDecisionStrategy);
+		praat_addAction1 (classOTGrammar, 1, U"Set decision strategy...", 0, 1, DO_OTGrammar_setDecisionStrategy);
+		praat_addAction1 (classOTGrammar, 1, U"Set leak...", 0, 1, DO_OTGrammar_setLeak);
+		praat_addAction1 (classOTGrammar, 1, U"Set constraint plasticity...", 0, 1, DO_OTGrammar_setConstraintPlasticity);
+	praat_addAction1 (classOTGrammar, 0, U"Modify structure -", 0, 0, 0);
+		praat_addAction1 (classOTGrammar, 0, U"Remove constraint...", 0, 1, DO_OTGrammar_removeConstraint);
+		praat_addAction1 (classOTGrammar, 0, U"Remove harmonically bounded candidates...", 0, 1, DO_OTGrammar_removeHarmonicallyBoundedCandidates);
 
 	{ void praat_TableOfReal_init (ClassInfo klas); praat_TableOfReal_init (classOTHistory); }
 
-	praat_addAction1 (classOTMulti, 0, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_OTMulti_edit);
-	praat_addAction1 (classOTMulti, 0, U"Edit", nullptr, praat_HIDDEN, DO_OTMulti_edit);
-	praat_addAction1 (classOTMulti, 0, U"Draw tableau...", nullptr, 0, DO_OTMulti_drawTableau);
-	praat_addAction1 (classOTMulti, 0, U"Draw tableau (narrowly)...", nullptr, 0, DO_OTMulti_drawTableau_narrowly);
-	praat_addAction1 (classOTMulti, 0, U"Query -", nullptr, 0, nullptr);
-	praat_addAction1 (classOTMulti, 1, U"Get number of constraints", nullptr, 1, DO_OTMulti_getNumberOfConstraints);
-	praat_addAction1 (classOTMulti, 1, U"Get constraint...", nullptr, 1, DO_OTMulti_getConstraint);
-	praat_addAction1 (classOTMulti, 1, U"Get constraint number...", nullptr, 1, DO_OTMulti_getConstraintIndexFromName);
-	praat_addAction1 (classOTMulti, 1, U"Get ranking value...", nullptr, 1, DO_OTMulti_getRankingValue);
-	praat_addAction1 (classOTMulti, 1, U"Get disharmony...", nullptr, 1, DO_OTMulti_getDisharmony);
-	praat_addAction1 (classOTMulti, 1, U"Get number of candidates", nullptr, 1, DO_OTMulti_getNumberOfCandidates);
-	praat_addAction1 (classOTMulti, 1, U"Get candidate...", nullptr, 1, DO_OTMulti_getCandidate);
-	praat_addAction1 (classOTMulti, 1, U"Get number of violations...", nullptr, 1, DO_OTMulti_getNumberOfViolations);
-	praat_addAction1 (classOTMulti, 1, U"-- parse --", nullptr, 1, nullptr);
-	praat_addAction1 (classOTMulti, 1, U"Get winner...", nullptr, 1, DO_OTMulti_getWinner);
-	praat_addAction1 (classOTMulti, 0, U"Evaluate", nullptr, 0, nullptr);
-	praat_addAction1 (classOTMulti, 0, U"Evaluate...", nullptr, 0, DO_OTMulti_evaluate);
-	praat_addAction1 (classOTMulti, 0, U"Get output...", nullptr, 0, DO_OTMulti_generateOptimalForm);
-	praat_addAction1 (classOTMulti, 0, U"Get outputs...", nullptr, 0, DO_OTMulti_generateOptimalForms);
-	praat_addAction1 (classOTMulti, 0, U"To output Distribution...", nullptr, 0, DO_OTMulti_to_Distribution);
-	praat_addAction1 (classOTMulti, 0, U"Modify ranking", nullptr, 0, nullptr);
-	praat_addAction1 (classOTMulti, 0, U"Set ranking...", nullptr, 0, DO_OTMulti_setRanking);
-	praat_addAction1 (classOTMulti, 0, U"Reset all rankings...", nullptr, 0, DO_OTMulti_resetAllRankings);
-	praat_addAction1 (classOTMulti, 0, U"Learn one...", nullptr, 0, DO_OTMulti_learnOne);
-	praat_addAction1 (classOTMulti, 0, U"Modify behaviour -", nullptr, 0, nullptr);
-	praat_addAction1 (classOTMulti, 1, U"Set decision strategy...", nullptr, 1, DO_OTMulti_setDecisionStrategy);
-	praat_addAction1 (classOTMulti, 1, U"Set leak...", nullptr, 1, DO_OTMulti_setLeak);
-	praat_addAction1 (classOTMulti, 1, U"Set constraint plasticity...", nullptr, 1, DO_OTMulti_setConstraintPlasticity);
-	praat_addAction1 (classOTMulti, 0, U"Modify structure -", nullptr, 0, nullptr);
-	praat_addAction1 (classOTMulti, 0, U"Remove constraint...", nullptr, 1, DO_OTMulti_removeConstraint);
-
-	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Query -", nullptr, 0, nullptr);
-		praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Are all partial outputs grammatical?", nullptr, 1, DO_OTGrammar_Strings_areAllPartialOutputsGrammatical);
-		praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Are all partial outputs singly grammatical?", nullptr, 1, DO_OTGrammar_Strings_areAllPartialOutputsSinglyGrammatical);
-	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Inputs to outputs...", nullptr, 0, DO_OTGrammar_Strings_inputsToOutputs);
-	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Learn from partial outputs...", nullptr, 0, DO_OTGrammar_Strings_learnFromPartialOutputs);
-	praat_addAction2 (classOTGrammar, 1, classStrings, 2, U"Learn...", nullptr, 0, DO_OTGrammar_Stringses_learn);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs...", nullptr, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (rrip)...", nullptr, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_rrip);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (eip)...", nullptr, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_eip);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (wrip)...", nullptr, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_wrip);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Get fraction correct...", nullptr, 0, DO_OTGrammar_Distributions_getFractionCorrect);
-	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"List obligatory rankings...", nullptr, praat_HIDDEN, DO_OTGrammar_Distributions_listObligatoryRankings);
-	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Learn...", nullptr, 0, DO_OTGrammar_PairDistribution_learn);
-	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Find positive weights...", nullptr, 0, DO_OTGrammar_PairDistribution_findPositiveWeights);
-	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Get fraction correct...", nullptr, 0, DO_OTGrammar_PairDistribution_getFractionCorrect);
-	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Get minimum number correct...", nullptr, 0, DO_OTGrammar_PairDistribution_getMinimumNumberCorrect);
-	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"List obligatory rankings", nullptr, 0, DO_OTGrammar_PairDistribution_listObligatoryRankings);
-	praat_addAction2 (classOTMulti, 1, classPairDistribution, 1, U"Learn...", nullptr, 0, DO_OTMulti_PairDistribution_learn);
-	praat_addAction2 (classOTMulti, 1, classStrings, 1, U"Get outputs...", nullptr, 0, DO_OTMulti_Strings_generateOptimalForms);
-
-	praat_addMenuCommand (U"Objects", U"New", U"Symmetric neural networks", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create empty Network...", nullptr, 1, DO_Create_empty_Network);
-		praat_addMenuCommand (U"Objects", U"New", U"Create rectangular Network...", nullptr, 1, DO_Create_rectangular_Network);
-		praat_addMenuCommand (U"Objects", U"New", U"Create rectangular Network (vertical)...", nullptr, 1, DO_Create_rectangular_Network_vertical);
-
-	praat_addAction1 (classNetwork, 0, U"Draw...", nullptr, 0, DO_Network_draw);
-	praat_addAction1 (classNetwork, 1, U"Tabulate -", nullptr, 0, nullptr);
-		praat_addAction1 (classNetwork, 1, U"List nodes...", nullptr, 1, DO_Network_listNodes);
-		praat_addAction1 (classNetwork, 1, U"Nodes down to table...", nullptr, 1, DO_Network_nodes_downto_Table);
-	praat_addAction1 (classNetwork, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classNetwork, 1, U"Get activity...", nullptr, 1, DO_Network_getActivity);
-		praat_addAction1 (classNetwork, 1, U"Get weight...", nullptr, 1, DO_Network_getWeight);
-	praat_addAction1 (classNetwork, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classNetwork, 0, U"Add node...", nullptr, 1, DO_Network_addNode);
-		praat_addAction1 (classNetwork, 0, U"Add connection...", nullptr, 1, DO_Network_addConnection);
-		praat_addAction1 (classNetwork, 1, U"-- activity --", nullptr, 1, nullptr);
-		praat_addAction1 (classNetwork, 0, U"Set activity...", nullptr, 1, DO_Network_setActivity);
-		praat_addAction1 (classNetwork, 0, U"Set clamping...", nullptr, 1, DO_Network_setClamping);
-		praat_addAction1 (classNetwork, 0, U"Zero activities...", nullptr, 1, DO_Network_zeroActivities);
-		praat_addAction1 (classNetwork, 0, U"Normalize activities...", nullptr, 1, DO_Network_normalizeActivities);
-		praat_addAction1 (classNetwork, 0, U"Spread activities...", nullptr, 1, DO_Network_spreadActivities);
-		praat_addAction1 (classNetwork, 1, U"Set activity clipping rule...", nullptr, 1, DO_Network_setActivityClippingRule);
-		praat_addAction1 (classNetwork, 1, U"Set activity leak...", nullptr, 1, DO_Network_setActivityLeak);
-		praat_addAction1 (classNetwork, 1, U"Set shunting...", nullptr, 1, DO_Network_setShunting);
-		praat_addAction1 (classNetwork, 1, U"-- weight --", nullptr, 1, nullptr);
-		praat_addAction1 (classNetwork, 0, U"Set weight...", nullptr, 1, DO_Network_setWeight);
-		praat_addAction1 (classNetwork, 0, U"Update weights", nullptr, 1, DO_Network_updateWeights);
-		praat_addAction1 (classNetwork, 0, U"Normalize weights...", nullptr, 1, DO_Network_normalizeWeights);
-		praat_addAction1 (classNetwork, 1, U"Set instar...", nullptr, 1, DO_Network_setInstar);
-		praat_addAction1 (classNetwork, 1, U"Set outstar...", nullptr, 1, DO_Network_setOutstar);
-		praat_addAction1 (classNetwork, 1, U"Set weight leak...", nullptr, 1, DO_Network_setWeightLeak);
+	praat_addAction1 (classOTMulti, 0, U"View & Edit", 0, praat_ATTRACTIVE, DO_OTMulti_edit);
+	praat_addAction1 (classOTMulti, 0, U"Edit", 0, praat_HIDDEN, DO_OTMulti_edit);
+	praat_addAction1 (classOTMulti, 0, U"Draw tableau...", 0, 0, DO_OTMulti_drawTableau);
+	praat_addAction1 (classOTMulti, 0, U"Draw tableau (narrowly)...", 0, 0, DO_OTMulti_drawTableau_narrowly);
+	praat_addAction1 (classOTMulti, 0, U"Query -", 0, 0, 0);
+	praat_addAction1 (classOTMulti, 1, U"Get number of constraints", 0, 1, DO_OTMulti_getNumberOfConstraints);
+	praat_addAction1 (classOTMulti, 1, U"Get constraint...", 0, 1, DO_OTMulti_getConstraint);
+	praat_addAction1 (classOTMulti, 1, U"Get constraint number...", 0, 1, DO_OTMulti_getConstraintIndexFromName);
+	praat_addAction1 (classOTMulti, 1, U"Get ranking value...", 0, 1, DO_OTMulti_getRankingValue);
+	praat_addAction1 (classOTMulti, 1, U"Get disharmony...", 0, 1, DO_OTMulti_getDisharmony);
+	praat_addAction1 (classOTMulti, 1, U"Get number of candidates", 0, 1, DO_OTMulti_getNumberOfCandidates);
+	praat_addAction1 (classOTMulti, 1, U"Get candidate...", 0, 1, DO_OTMulti_getCandidate);
+	praat_addAction1 (classOTMulti, 1, U"Get number of violations...", 0, 1, DO_OTMulti_getNumberOfViolations);
+	praat_addAction1 (classOTMulti, 1, U"-- parse --", 0, 1, 0);
+	praat_addAction1 (classOTMulti, 1, U"Get winner...", 0, 1, DO_OTMulti_getWinner);
+	praat_addAction1 (classOTMulti, 0, U"Evaluate", 0, 0, 0);
+	praat_addAction1 (classOTMulti, 0, U"Evaluate...", 0, 0, DO_OTMulti_evaluate);
+	praat_addAction1 (classOTMulti, 0, U"Get output...", 0, 0, DO_OTMulti_generateOptimalForm);
+	praat_addAction1 (classOTMulti, 0, U"Get outputs...", 0, 0, DO_OTMulti_generateOptimalForms);
+	praat_addAction1 (classOTMulti, 0, U"To output Distribution...", 0, 0, DO_OTMulti_to_Distribution);
+	praat_addAction1 (classOTMulti, 0, U"Modify ranking", 0, 0, 0);
+	praat_addAction1 (classOTMulti, 0, U"Set ranking...", 0, 0, DO_OTMulti_setRanking);
+	praat_addAction1 (classOTMulti, 0, U"Reset all rankings...", 0, 0, DO_OTMulti_resetAllRankings);
+	praat_addAction1 (classOTMulti, 0, U"Learn one...", 0, 0, DO_OTMulti_learnOne);
+	praat_addAction1 (classOTMulti, 0, U"Modify behaviour -", 0, 0, 0);
+	praat_addAction1 (classOTMulti, 1, U"Set decision strategy...", 0, 1, DO_OTMulti_setDecisionStrategy);
+	praat_addAction1 (classOTMulti, 1, U"Set leak...", 0, 1, DO_OTMulti_setLeak);
+	praat_addAction1 (classOTMulti, 1, U"Set constraint plasticity...", 0, 1, DO_OTMulti_setConstraintPlasticity);
+	praat_addAction1 (classOTMulti, 0, U"Modify structure -", 0, 0, 0);
+	praat_addAction1 (classOTMulti, 0, U"Remove constraint...", 0, 1, DO_OTMulti_removeConstraint);
+
+	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Query -", 0, 0, 0);
+		praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Are all partial outputs grammatical?", 0, 1, DO_OTGrammar_Strings_areAllPartialOutputsGrammatical);
+		praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Are all partial outputs singly grammatical?", 0, 1, DO_OTGrammar_Strings_areAllPartialOutputsSinglyGrammatical);
+	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Inputs to outputs...", 0, 0, DO_OTGrammar_Strings_inputsToOutputs);
+	praat_addAction2 (classOTGrammar, 1, classStrings, 1, U"Learn from partial outputs...", 0, 0, DO_OTGrammar_Strings_learnFromPartialOutputs);
+	praat_addAction2 (classOTGrammar, 1, classStrings, 2, U"Learn...", 0, 0, DO_OTGrammar_Stringses_learn);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs...", 0, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (rrip)...", 0, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_rrip);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (eip)...", 0, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_eip);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Learn from partial outputs (wrip)...", 0, 0, DO_OTGrammar_Distributions_learnFromPartialOutputs_wrip);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"Get fraction correct...", 0, 0, DO_OTGrammar_Distributions_getFractionCorrect);
+	praat_addAction2 (classOTGrammar, 1, classDistributions, 1, U"List obligatory rankings...", 0, praat_HIDDEN, DO_OTGrammar_Distributions_listObligatoryRankings);
+	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Learn...", 0, 0, DO_OTGrammar_PairDistribution_learn);
+	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Find positive weights...", 0, 0, DO_OTGrammar_PairDistribution_findPositiveWeights);
+	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Get fraction correct...", 0, 0, DO_OTGrammar_PairDistribution_getFractionCorrect);
+	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"Get minimum number correct...", 0, 0, DO_OTGrammar_PairDistribution_getMinimumNumberCorrect);
+	praat_addAction2 (classOTGrammar, 1, classPairDistribution, 1, U"List obligatory rankings", 0, 0, DO_OTGrammar_PairDistribution_listObligatoryRankings);
+	praat_addAction2 (classOTMulti, 1, classPairDistribution, 1, U"Learn...", 0, 0, DO_OTMulti_PairDistribution_learn);
+	praat_addAction2 (classOTMulti, 1, classStrings, 1, U"Get outputs...", 0, 0, DO_OTMulti_Strings_generateOptimalForms);
+
+	praat_addMenuCommand (U"Objects", U"New", U"Symmetric networks", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create empty Network...", 0, 1, DO_Create_empty_Network);
+		praat_addMenuCommand (U"Objects", U"New", U"Create rectangular Network...", 0, 1, DO_Create_rectangular_Network);
+		praat_addMenuCommand (U"Objects", U"New", U"Create rectangular Network (vertical)...", 0, 1, DO_Create_rectangular_Network_vertical);
+
+	praat_addAction1 (classNetwork, 0, U"Draw...", 0, 0, DO_Network_draw);
+	praat_addAction1 (classNetwork, 1, U"Tabulate -", 0, 0, 0);
+		praat_addAction1 (classNetwork, 1, U"List nodes...", 0, 1, DO_Network_listNodes);
+		praat_addAction1 (classNetwork, 1, U"Nodes down to table...", 0, 1, DO_Network_nodes_downto_Table);
+	praat_addAction1 (classNetwork, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classNetwork, 1, U"Get activity...", 0, 1, DO_Network_getActivity);
+		praat_addAction1 (classNetwork, 1, U"Get weight...", 0, 1, DO_Network_getWeight);
+	praat_addAction1 (classNetwork, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classNetwork, 0, U"Add node...", 0, 1, DO_Network_addNode);
+		praat_addAction1 (classNetwork, 0, U"Add connection...", 0, 1, DO_Network_addConnection);
+		praat_addAction1 (classNetwork, 1, U"-- activity --", 0, 1, 0);
+		praat_addAction1 (classNetwork, 0, U"Set activity...", 0, 1, DO_Network_setActivity);
+		praat_addAction1 (classNetwork, 0, U"Set clamping...", 0, 1, DO_Network_setClamping);
+		praat_addAction1 (classNetwork, 0, U"Zero activities...", 0, 1, DO_Network_zeroActivities);
+		praat_addAction1 (classNetwork, 0, U"Normalize activities...", 0, 1, DO_Network_normalizeActivities);
+		praat_addAction1 (classNetwork, 0, U"Spread activities...", 0, 1, DO_Network_spreadActivities);
+		praat_addAction1 (classNetwork, 1, U"Set activity clipping rule...", 0, 1, DO_Network_setActivityClippingRule);
+		praat_addAction1 (classNetwork, 1, U"Set activity leak...", 0, 1, DO_Network_setActivityLeak);
+		praat_addAction1 (classNetwork, 1, U"Set shunting...", 0, 1, DO_Network_setShunting);
+		praat_addAction1 (classNetwork, 1, U"-- weight --", 0, 1, 0);
+		praat_addAction1 (classNetwork, 0, U"Set weight...", 0, 1, DO_Network_setWeight);
+		praat_addAction1 (classNetwork, 0, U"Update weights", 0, 1, DO_Network_updateWeights);
+		praat_addAction1 (classNetwork, 0, U"Normalize weights...", 0, 1, DO_Network_normalizeWeights);
+		praat_addAction1 (classNetwork, 1, U"Set instar...", 0, 1, DO_Network_setInstar);
+		praat_addAction1 (classNetwork, 1, U"Set outstar...", 0, 1, DO_Network_setOutstar);
+		praat_addAction1 (classNetwork, 1, U"Set weight leak...", 0, 1, DO_Network_setWeightLeak);
 }
 
 /* End of file praat_gram.cpp */
diff --git a/kar/longchar.cpp b/kar/longchar.cpp
index 3f9fd8c..9e59aa0 100644
--- a/kar/longchar.cpp
+++ b/kar/longchar.cpp
@@ -617,7 +617,7 @@ static short inited = 0;
 #define UNICODE_TOP_GENERICIZABLE  65000
 static struct { char first, second; } genericDigraph [1+UNICODE_TOP_GENERICIZABLE];
 
-static void init () {
+static void init (void) {
 	Longchar_Info data;
 	int i;
 	for (i = 0, data = & Longchar_database [0]; data -> first != '\0'; i ++, data ++) {
diff --git a/main/GNU_General_Public_License.txt b/main/GNU_General_Public_License.txt
index 1e12414..c92e00f 100644
--- a/main/GNU_General_Public_License.txt
+++ b/main/GNU_General_Public_License.txt
@@ -3,7 +3,7 @@ GNU GENERAL PUBLIC LICENSE
 Version 2, June 1991 
 
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
 
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.
diff --git a/main/main_Praat.cpp b/main/main_Praat.cpp
index 660b2a1..bf66920 100644
--- a/main/main_Praat.cpp
+++ b/main/main_Praat.cpp
@@ -1,6 +1,6 @@
 /* main_Praat.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,37 +17,37 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include "../sys/praat.h"
-#include "../sys/praat_version.h"
+#include "praat.h"
+#include "praat_version.h"
 
-static void logo (Graphics graphics) {
-	Graphics_setWindow (graphics, 0.0, 1.0, 0.0, 0.8);
-	Graphics_setTextAlignment (graphics, Graphics_CENTRE, Graphics_HALF);
-	Graphics_setFont (graphics, kGraphics_font_TIMES);
-	Graphics_setFontSize (graphics, 45);
-	Graphics_setColour (graphics, Graphics_MAROON);
-	Graphics_text (graphics, 0.385, 0.66, U"P");
-	Graphics_text (graphics, 0.448, 0.66, U"\\s{R}");
-	Graphics_text (graphics, 0.510, 0.66, U"\\s{A}");
-	Graphics_text (graphics, 0.575, 0.66, U"\\s{A}");
-	Graphics_text (graphics, 0.628, 0.66, U"\\s{T}");
-	Graphics_setFontSize (graphics, 15);
-	Graphics_text (graphics, 0.5, 0.55, U"%%doing phonetics by computer");
+static void logo (Graphics g) {
+	Graphics_setWindow (g, 0, 1, 0.00, 0.80);
+	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
+	Graphics_setFont (g, kGraphics_font_TIMES);
+	Graphics_setFontSize (g, 45);
+	Graphics_setColour (g, Graphics_MAROON);
+	Graphics_text (g, 0.385, 0.66, U"P");
+	Graphics_text (g, 0.448, 0.66, U"\\s{R}");
+	Graphics_text (g, 0.510, 0.66, U"\\s{A}");
+	Graphics_text (g, 0.575, 0.66, U"\\s{A}");
+	Graphics_text (g, 0.628, 0.66, U"\\s{T}");
+	Graphics_setFontSize (g, 15);
+	Graphics_text (g, 0.5, 0.55, U"%%doing phonetics by computer");
 	#define xstr(s) str(s)
 	#define str(s) #s
-	Graphics_text (graphics, 0.5, 0.45, U"version " xstr(PRAAT_VERSION_STR));
-	Graphics_setColour (graphics, Graphics_BLACK);
-	Graphics_setFontSize (graphics, 14);
-	Graphics_text (graphics, 0.5, 0.33, U"www.praat.org");
-	Graphics_setFont (graphics, kGraphics_font_HELVETICA);
-	Graphics_setFontSize (graphics, 10);
-	Graphics_text (graphics, 0.5, 0.16, U"Copyright © 1992–" xstr(PRAAT_YEAR) " by Paul Boersma and David Weenink");
+	Graphics_text (g, 0.5, 0.45, U"version " xstr(PRAAT_VERSION_STR));
+	Graphics_setColour (g, Graphics_BLACK);
+	Graphics_setFontSize (g, 14);
+	Graphics_text (g, 0.5, 0.33, U"www.praat.org");
+	Graphics_setFont (g, kGraphics_font_HELVETICA);
+	Graphics_setFontSize (g, 10);
+	Graphics_text (g, 0.5, 0.16, U"Copyright © 1992–" xstr(PRAAT_YEAR) " by Paul Boersma and David Weenink");
 }
 
 int main (int argc, char *argv []) {
 	try {
-		praat_setLogo (130.0, 80.0, logo);
-		praat_init (U"Praat", argc, argv);
+		praat_setLogo (130, 80, logo);
+		praat_init (U"Praat", (unsigned int) argc, argv);
 		INCLUDE_LIBRARY (praat_uvafon_init)
 		INCLUDE_LIBRARY (praat_contrib_Ola_KNN_init)
 		praat_run ();
diff --git a/makefiles/makefile.defs.cygwin64 b/makefiles/makefile.defs.cygwin64
deleted file mode 100644
index fb5ce91..0000000
--- a/makefiles/makefile.defs.cygwin64
+++ /dev/null
@@ -1,25 +0,0 @@
-# File: makefile.defs.cygwin64
-
-# System: Cygwin on Windows
-# Paul Boersma, 13 September 2015
-
-CC = gcc -std=gnu99
-
-CXX = g++ -std=gnu++11 -Wshadow
-
-CFLAGS = -mwin32 -DUNICODE -D_FILE_OFFSET_BITS=64 -O1
-# Probably implicit: -m64 -mwin32 -march=x86_64 -mtune=generic
-
-CXXFLAGS = $(CFLAGS)
-
-LINK = g++
-
-EXECUTABLE = Praat.exe
-
-LIBS = -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
-
-AR = ar
-RANLIB = ranlib
-WINDRES = windres
-ICON = praat_win.o
-MAIN_ICON = main/praat_win.o
diff --git a/makefiles/makefile.defs.linux.pulse b/makefiles/makefile.defs.linux.pulse
deleted file mode 100644
index 8fda41a..0000000
--- a/makefiles/makefile.defs.linux.pulse
+++ /dev/null
@@ -1,23 +0,0 @@
-# File: makefile.defs.linux.pulse
-
-# System: Linux
-# David Weenink and Paul Boersma, 17 January 2016
-
-CC = gcc -std=gnu99
-
-CXX = g++ -std=c++11
-
-CFLAGS = -DUNIX -Dlinux -DALSA -DHAVE_PULSEAUDIO -D_FILE_OFFSET_BITS=64 `pkg-config --cflags gtk+-2.0` -Werror=missing-prototypes -Werror=implicit -Wreturn-type -Wunused -Wunused-parameter -Wuninitialized -O3 -g1 -pthread
-
-CXXFLAGS = $(CFLAGS) -Wshadow
-
-LINK = g++
-
-EXECUTABLE = praat
-
-LIBS = `pkg-config --libs gtk+-2.0` -lm -lpulse -lasound -lpthread
-
-AR = ar
-RANLIB = ls
-ICON =
-MAIN_ICON =
diff --git a/makefiles/makefile.defs.linuxc.alsa b/makefiles/makefile.defs.linuxc.alsa
new file mode 100644
index 0000000..45f8f46
--- /dev/null
+++ b/makefiles/makefile.defs.linuxc.alsa
@@ -0,0 +1,23 @@
+# File: makefile.defs.linuxc.alsa
+
+# System: Linux
+# Paul Boersma, 22 March 2014
+
+CC = gcc -std=gnu99
+
+CXX = g++ -std=c++11
+
+CFLAGS = -DCONSOLE_APPLICATION -DUNIX -Dlinux -DALSA -D_FILE_OFFSET_BITS=64 -Werror=missing-prototypes -Werror=implicit -Wreturn-type -Wunused -Wunused-parameter -Wuninitialized -O1 -g1 -pthread
+
+CXXFLAGS = $(CFLAGS) -Wshadow
+
+LINK = g++
+
+EXECUTABLE = praat
+
+LIBS = -lm -lasound -lpthread
+
+AR = ar
+RANLIB = ls
+ICON =
+MAIN_ICON =
diff --git a/makefiles/makefile.defs.linuxs.alsa b/makefiles/makefile.defs.linuxs.alsa
new file mode 100644
index 0000000..850520b
--- /dev/null
+++ b/makefiles/makefile.defs.linuxs.alsa
@@ -0,0 +1,23 @@
+# File: makefile.defs.linuxc.alsa
+
+# System: Linux
+# Paul Boersma, 22 March 2014
+
+CC = gcc -std=gnu99
+
+CXX = g++ -std=c++11
+
+CFLAGS = -DNO_GRAPHICS -DUNIX -Dlinux -DALSA -D_FILE_OFFSET_BITS=64 -Werror=missing-prototypes -Werror=implicit -Wreturn-type -Wunused -Wunused-parameter -Wuninitialized -O1 -g1 -pthread
+
+CXXFLAGS = $(CFLAGS) -Wshadow
+
+LINK = g++
+
+EXECUTABLE = praat
+
+LIBS = -lm -lasound -lpthread
+
+AR = ar
+RANLIB = ls
+ICON =
+MAIN_ICON =
diff --git a/makefiles/makefile.defs.linuxs.pulse b/makefiles/makefile.defs.linuxs.pulse
deleted file mode 100644
index d1519af..0000000
--- a/makefiles/makefile.defs.linuxs.pulse
+++ /dev/null
@@ -1,23 +0,0 @@
-# File: makefile.defs.linuxs.pulse
-
-# System: Linux
-# Paul Boersma, 4 November 2015
-
-CC = gcc -std=gnu99
-
-CXX = g++ -std=c++11
-
-CFLAGS = -DNO_GRAPHICS -DUNIX -Dlinux -DALSA -DHAVE_PULSEAUDIO -D_FILE_OFFSET_BITS=64 -Werror=missing-prototypes -Werror=implicit -Wreturn-type -Wunused -Wunused-parameter -Wuninitialized -O1 -g1 -pthread
-
-CXXFLAGS = $(CFLAGS) -Wshadow
-
-LINK = g++
-
-EXECUTABLE = praat
-
-LIBS = -lm -lasound -lpthread
-
-AR = ar
-RANLIB = ls
-ICON =
-MAIN_ICON =
diff --git a/makefiles/makefile.defs.mingw32 b/makefiles/makefile.defs.mingw32
index 44b08b6..09b51ff 100644
--- a/makefiles/makefile.defs.mingw32
+++ b/makefiles/makefile.defs.mingw32
@@ -1,27 +1,24 @@
 # File: makefile.defs.mingw32
 
-# System: MinGW on Windows under Cygwin
-# Paul Boersma, 8 January 2016
+# System: MinGW
+# Paul Boersma, 17 December 2014
 
-PREFIX = i686-w64-mingw32-
+CC = /mingw32/bin/gcc -std=gnu99 -isystem /mingw32/include
 
-CC = $(PREFIX)gcc -std=gnu99
+CXX = /mingw32/bin/g++ -std=c++0x -isystem /mingw32/include/c++/4.7.0 -isystem /mingw32/include -Wshadow
 
-CXX = $(PREFIX)g++ -std=gnu++11 -Wshadow
-
-CFLAGS = -municode -D_FILE_OFFSET_BITS=64 -O3
-# Probably implicit: -m32 -mwin32 -march=i686 -mtune=generic
+CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1 -pthread
 
 CXXFLAGS = $(CFLAGS)
 
-LINK = $(PREFIX)g++
+LINK = /mingw32/bin/g++
 
 EXECUTABLE = Praat.exe
 
-LIBS = -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+LIBS = -L/mingw32/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
 
-AR = $(PREFIX)ar
-RANLIB = $(PREFIX)ranlib
-WINDRES = $(PREFIX)windres
+AR = /mingw32/bin/ar
+RANLIB = /mingw32/bin/ranlib
+WINDRES = /mingw32/bin/windres
 ICON = praat_win.o
 MAIN_ICON = main/praat_win.o
diff --git a/makefiles/makefile.defs.mingw32-490 b/makefiles/makefile.defs.mingw32-490
new file mode 100644
index 0000000..4c26614
--- /dev/null
+++ b/makefiles/makefile.defs.mingw32-490
@@ -0,0 +1,24 @@
+# File: makefile.defs.mingw32-490
+
+# System: MinGW
+# Paul Boersma, 17 December 2014
+
+CC = /mingw32-490/bin/x86_64-w64-mingw32-gcc -std=gnu99 -isystem /mingw32-490/mingw/include
+
+CXX = /mingw32-490/bin/x86_64-w64-mingw32-g++ -std=c++0x -isystem /mingw32-490/mingw/include/c++/4.9.0 -isystem /mingw32-490/mingw/include -Wshadow -m64 -flto
+
+CFLAGS = -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -D_WIN32_IE=0x0700 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1
+
+CXXFLAGS = $(CFLAGS) -pthread
+
+LINK = /mingw32-490/mingw/bin/g++
+
+EXECUTABLE = Praat.exe
+
+LIBS = -L/mingw32-490/x86_64-w64-mingw32/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+
+AR = /mingw32-490/mingw/bin/ar
+RANLIB = /mingw32-490/mingw/bin/ranlib
+WINDRES = /mingw32-490/bin/x86_64-w64-mingw32-windres
+ICON = praat_win.o
+MAIN_ICON = main/praat_win.o
diff --git a/makefiles/makefile.defs.darmin32 b/makefiles/makefile.defs.mingw32c
similarity index 73%
rename from makefiles/makefile.defs.darmin32
rename to makefiles/makefile.defs.mingw32c
index 09b51ff..2386a26 100644
--- a/makefiles/makefile.defs.darmin32
+++ b/makefiles/makefile.defs.mingw32c
@@ -1,4 +1,4 @@
-# File: makefile.defs.mingw32
+# File: makefile.defs.mingw32c
 
 # System: MinGW
 # Paul Boersma, 17 December 2014
@@ -7,15 +7,15 @@ CC = /mingw32/bin/gcc -std=gnu99 -isystem /mingw32/include
 
 CXX = /mingw32/bin/g++ -std=c++0x -isystem /mingw32/include/c++/4.7.0 -isystem /mingw32/include -Wshadow
 
-CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1 -pthread
+CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -DCONSOLE_APPLICATION -O1 -pthread
 
 CXXFLAGS = $(CFLAGS)
 
 LINK = /mingw32/bin/g++
 
-EXECUTABLE = Praat.exe
+EXECUTABLE = praatcon.exe
 
-LIBS = -L/mingw32/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+LIBS = -L/mingw32/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++
 
 AR = /mingw32/bin/ar
 RANLIB = /mingw32/bin/ranlib
diff --git a/makefiles/makefile.defs.mingw64 b/makefiles/makefile.defs.mingw64
index 8d269a1..381dd11 100644
--- a/makefiles/makefile.defs.mingw64
+++ b/makefiles/makefile.defs.mingw64
@@ -1,27 +1,24 @@
 # File: makefile.defs.mingw64
 
-# System: MinGW on Windows under Cygwin
-# Paul Boersma, 8 January 2016
+# System: MinGW
+# Paul Boersma, 17 December 2014
 
-PREFIX = x86_64-w64-mingw32-
+CC = /mingw64/bin/gcc -std=gnu99 -isystem /mingw64/include
 
-CC = $(PREFIX)gcc -std=gnu99
+CXX = /mingw64/bin/g++ -std=c++0x -isystem /mingw64/include/c++/4.7.0 -isystem /mingw64/include -Wshadow -m64
 
-CXX = $(PREFIX)g++ -std=gnu++11 -Wshadow
-
-CFLAGS = -municode -D_FILE_OFFSET_BITS=64 -O3
-# Probably implicit: -m64 -mwin32 -march=x86_64 -mtune=generic
+CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1 -pthread
 
 CXXFLAGS = $(CFLAGS)
 
-LINK = $(PREFIX)g++
+LINK = /mingw64/bin/g++
 
 EXECUTABLE = Praat.exe
 
-LIBS = -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 -lgdiplus -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+LIBS = -L/mingw64/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 /mingw64/lib/GdiPlus.dll -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
 
-AR = $(PREFIX)ar
-RANLIB = $(PREFIX)ranlib
-WINDRES = $(PREFIX)windres
+AR = /mingw64/bin/ar
+RANLIB = /mingw64/bin/ranlib
+WINDRES = /mingw64/bin/windres
 ICON = praat_win.o
 MAIN_ICON = main/praat_win.o
diff --git a/makefiles/makefile.defs.mingw64-490 b/makefiles/makefile.defs.mingw64-490
new file mode 100644
index 0000000..d1381f7
--- /dev/null
+++ b/makefiles/makefile.defs.mingw64-490
@@ -0,0 +1,24 @@
+# File: makefile.defs.mingw64-490
+
+# System: MinGW
+# Paul Boersma, 17 December 2014
+
+CC = /mingw64-490/bin/x86_64-w64-mingw32-gcc -std=gnu99 -isystem /mingw64-490/mingw/include
+
+CXX = /mingw64-490/bin/x86_64-w64-mingw32-g++ -std=c++0x -isystem /mingw64-490/mingw/include/c++/4.9.0 -isystem /mingw64-490/mingw/include -Wshadow -m64
+
+CFLAGS = -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -D_WIN32_IE=0x0700 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1 -flto
+
+CXXFLAGS = $(CFLAGS) -pthread
+
+LINK = /mingw64-490/mingw/bin/g++
+
+EXECUTABLE = Praat.exe
+
+LIBS = -L/mingw64-490/x86_64-w64-mingw32/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 /mingw64/lib/GdiPlus.dll -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+
+AR = /mingw64-490/mingw/bin/ar
+RANLIB = /mingw64-490/mingw/bin/ranlib
+WINDRES = /mingw64-490/bin/x86_64-w64-mingw32-windres
+ICON = praat_win.o
+MAIN_ICON = main/praat_win.o
diff --git a/makefiles/makefile.defs.darmin64 b/makefiles/makefile.defs.mingw64c
similarity index 81%
rename from makefiles/makefile.defs.darmin64
rename to makefiles/makefile.defs.mingw64c
index 381dd11..16fa729 100644
--- a/makefiles/makefile.defs.darmin64
+++ b/makefiles/makefile.defs.mingw64c
@@ -1,4 +1,4 @@
-# File: makefile.defs.mingw64
+# File: makefile.defs.mingw64c
 
 # System: MinGW
 # Paul Boersma, 17 December 2014
@@ -7,15 +7,15 @@ CC = /mingw64/bin/gcc -std=gnu99 -isystem /mingw64/include
 
 CXX = /mingw64/bin/g++ -std=c++0x -isystem /mingw64/include/c++/4.7.0 -isystem /mingw64/include -Wshadow -m64
 
-CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -Dmain=wingwmain -O1 -pthread
+CFLAGS = -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DUNICODE -D_FILE_OFFSET_BITS=64 -DCONSOLE_APPLICATION -O1 -pthread
 
 CXXFLAGS = $(CFLAGS)
 
 LINK = /mingw64/bin/g++
 
-EXECUTABLE = Praat.exe
+EXECUTABLE = praatcon.exe
 
-LIBS = -L/mingw64/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 /mingw64/lib/GdiPlus.dll -lcomdlg32 -static-libgcc -static-libstdc++ -mwindows
+LIBS = -L/mingw64/lib -lwinmm -lwsock32 -lcomctl32 -lole32 -lgdi32 /mingw64/lib/GdiPlus.dll -lcomdlg32 -static-libgcc -static-libstdc++
 
 AR = /mingw64/bin/ar
 RANLIB = /mingw64/bin/ranlib
diff --git a/num/NUM.cpp b/num/NUM.cpp
index 98f43a7..416632f 100644
--- a/num/NUM.cpp
+++ b/num/NUM.cpp
@@ -58,7 +58,7 @@ void NUMscale (double *x, double xminfrom, double xmaxfrom, double xminto, doubl
 	else *x = xminto + (xmaxto - xminto) * ((*x - xminfrom) / (xmaxfrom - xminfrom));
 }
 
-void NUMinit () {
+void NUMinit (void) {
 	gsl_set_error_handler_off ();
 	NUMrandom_init ();
 }
@@ -497,7 +497,7 @@ void NUM_viterbi (
 	}
 	for (long iframe = 2; iframe <= numberOfFrames; iframe ++) {
 		for (long icand2 = 1; icand2 <= numberOfCandidates [iframe]; icand2 ++) {
-			double maximum = -1e308;
+			double maximum = -1e300;
 			long place = 0;
 			for (long icand1 = 1; icand1 <= numberOfCandidates [iframe - 1]; icand1 ++) {
 				double value = delta [iframe - 1] [icand1] + delta [iframe] [icand2]
@@ -573,7 +573,7 @@ void NUM_viterbi_multi (
 	void *closure)
 {
 	struct parm2 parm;
-	parm.indices = nullptr;
+	parm.indices = NULL;
 
 	if (ntrack > ncand) Melder_throw (U"(NUM_viterbi_multi:) "
 		U"Number of tracks (", ntrack, U") should not exceed number of candidates (", ncand, U").");
diff --git a/num/NUM.h b/num/NUM.h
index eb2126a..8608d0f 100644
--- a/num/NUM.h
+++ b/num/NUM.h
@@ -47,7 +47,7 @@
 #endif
 #include <stdio.h>
 #include <wchar.h>
-#include "../sys/abcio.h"
+#include "abcio.h"
 #define NUMlog2(x)  (log (x) * NUMlog2e)
 
 void NUMinit ();
@@ -129,6 +129,7 @@ void * NUMvector (long elementSize, long lo, long hi);
 /*
 	Function:
 		create a vector [lo...hi] with all values initialized to 0.
+		Queue an error message and return NULL if anything went wrong.
 	Preconditions:
 		hi >= lo;
 */
@@ -145,8 +146,9 @@ void * NUMvector_copy (long elementSize, void *v, long lo, long hi);
 /*
 	Function:
 		copy (part of) a vector v, which need not have been created with NUMvector, to a new one.
+		Queue an error message and return NULL if anything went wrong.
 	Preconditions:
-		if v != nullptr, the values v [lo..hi] must exist.
+		if v != NULL, the values v [lo..hi] must exist.
 */
 
 void NUMvector_copyElements (long elementSize, void *v, void *to, long lo, long hi);
@@ -157,8 +159,8 @@ void NUMvector_copyElements (long elementSize, void *v, void *to, long lo, long
 
 bool NUMvector_equal (long elementSize, void *v1, void *v2, long lo, long hi);
 /*
-	return true if the vector elements v1 [lo..hi] are equal
-	to the corresponding elements of the vector v2; otherwise, return false.
+	return 1 if the vector elements v1 [lo..hi] are equal
+	to the corresponding elements of the vector v2; otherwise, return 0.
 	The vectors need not have been created by NUMvector.
 */
 
@@ -177,6 +179,7 @@ void * NUMmatrix (long elementSize, long row1, long row2, long col1, long col2);
 /*
 	Function:
 		create a matrix [row1...row2] [col1...col2] with all values initialized to 0.
+		Queue an error message and return NULL if anything went wrong.
 	Preconditions:
 		row2 >= row1;
 		col2 >= col1;
@@ -187,7 +190,7 @@ void NUMmatrix_free (long elementSize, void *m, long row1, long col1);
 	Function:
 		destroy a matrix m created with NUM...matrix.
 	Preconditions:
-		if m != nullptr: row1 and col1
+		if m != NULL: row1 and row2
 		must have the same value as with the creation of the matrix.
 */
 
@@ -195,8 +198,9 @@ void * NUMmatrix_copy (long elementSize, void *m, long row1, long row2, long col
 /*
 	Function:
 		copy (part of) a matrix m, wich does not have to be created with NUMmatrix, to a new one.
+		Queue an error message and return NULL if anything went wrong.
 	Preconditions:
-		if m != nullptr: the values m [rowmin..rowmax] [colmin..colmax] must exist.
+		if m != NULL: the values m [rowmin..rowmax] [colmin..colmax] must exist.
 */
 
 void NUMmatrix_copyElements (long elementSize, void *m, void *to, long row1, long row2, long col1, long col2);
@@ -212,20 +216,20 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 	The matrices need not have been created by NUM...matrix.
 */
 
-long NUM_getTotalNumberOfArrays ();   // for debugging
+long NUM_getTotalNumberOfArrays (void);   /* For debugging. */
 
 /********** Special functions (NUM.cpp) **********/
 
 double NUMlnGamma (double x);
 double NUMbeta (double z, double w);
-double NUMbesselI (long n, double x);   // precondition: n >= 0
+double NUMbesselI (long n, double x);   /* Precondition: n >= 0 */
 double NUMbessel_i0_f (double x);
 double NUMbessel_i1_f (double x);
-double NUMbesselK (long n, double x);   // preconditions: n >= 0 && x > 0.0
+double NUMbesselK (long n, double x);   /* Preconditions: n >= 0 && x > 0.0 */
 double NUMbessel_k0_f (double x);
 double NUMbessel_k1_f (double x);
 double NUMbesselK_f (long n, double x);
-double NUMsigmoid (double x);   // correct also for large positive or negative x
+double NUMsigmoid (double x);   /* Correct also for large positive or negative x. */
 double NUMinvSigmoid (double x);
 double NUMerfcc (double x);
 double NUMgaussP (double z);
@@ -258,7 +262,7 @@ double NUMerbToHertz (double erb);
 
 /********** Sorting (NUMsort.cpp) **********/
 
-void NUMsort_d (long n, double ra []);   // heap sort
+void NUMsort_d (long n, double ra []);   /* Heap sort. */
 void NUMsort_i (long n, int ra []);
 void NUMsort_l (long n, long ra []);
 void NUMsort_str (long n, char32 *a []);
@@ -463,7 +467,7 @@ public:
 	}
 	autoNUMvector (T *ptr, long from) : d_ptr (ptr), d_from (from) {
 	}
-	autoNUMvector () : d_ptr (nullptr), d_from (1) {
+	autoNUMvector () : d_ptr (NULL), d_from (1) {
 	}
 	~autoNUMvector<T> () {
 		if (d_ptr) NUMvector_free (sizeof (T), d_ptr, d_from);
@@ -476,13 +480,13 @@ public:
 	}
 	T* transfer () {
 		T* temp = d_ptr;
-		d_ptr = nullptr;   // make the pointer non-automatic again
+		d_ptr = NULL;   // make the pointer non-automatic again
 		return temp;
 	}
 	void reset (long from, long to) {
 		if (d_ptr) {
 			NUMvector_free (sizeof (T), d_ptr, d_from);
-			d_ptr = nullptr;
+			d_ptr = NULL;
 		}
 		d_from = from;
 		d_ptr = static_cast <T*> (NUMvector (sizeof (T), from, to));
@@ -526,7 +530,7 @@ public:
 	}
 	autoNUMmatrix (T **ptr, long row1, long col1) : d_ptr (ptr), d_row1 (row1), d_col1 (col1) {
 	}
-	autoNUMmatrix () : d_ptr (nullptr), d_row1 (0), d_col1 (0) {
+	autoNUMmatrix () : d_ptr (NULL), d_row1 (0), d_col1 (0) {
 	}
 	~autoNUMmatrix () {
 		if (d_ptr) NUMmatrix_free (sizeof (T), d_ptr, d_row1, d_col1);
@@ -539,13 +543,13 @@ public:
 	}
 	T** transfer () {
 		T** temp = d_ptr;
-		d_ptr = nullptr;
+		d_ptr = NULL;
 		return temp;
 	}
 	void reset (long row1, long row2, long col1, long col2) {
 		if (d_ptr) {
 			NUMmatrix_free (sizeof (T), d_ptr, d_row1, d_col1);
-			d_ptr = nullptr;
+			d_ptr = NULL;
 		}
 		d_row1 = row1;
 		d_col1 = col1;
@@ -563,7 +567,7 @@ public:
 	}
 	autodatavector (T *ptr, long from, long to) : d_ptr (ptr), d_from (from), d_to (to) {
 	}
-	autodatavector () : d_ptr (nullptr), d_from (1), d_to (0) {
+	autodatavector () : d_ptr (NULL), d_from (1), d_to (0) {
 	}
 	~autodatavector<T> () {
 		if (d_ptr) {
@@ -580,7 +584,7 @@ public:
 	}
 	T* transfer () {
 		T* temp = d_ptr;
-		d_ptr = nullptr;   // make the pointer non-automatic again
+		d_ptr = NULL;   // make the pointer non-automatic again
 		return temp;
 	}
 	void reset (long from, long to) {
@@ -588,9 +592,9 @@ public:
 			for (long i = d_from; i <= d_to; i ++)
 				Melder_free (d_ptr [i]);
 			NUMvector_free (sizeof (T), d_ptr, d_from);
-			d_ptr = nullptr;
+			d_ptr = NULL;
 		}
-		d_from = from;   // this assignment is safe, because d_ptr is null
+		d_from = from;   // this assignment is safe, because d_ptr is NULL
 		d_to = to;
 		d_ptr = static_cast <T*> (NUMvector (sizeof (T), from, to));
 	}
diff --git a/num/NUMarrays.cpp b/num/NUMarrays.cpp
index 2250515..cd9b04f 100644
--- a/num/NUMarrays.cpp
+++ b/num/NUMarrays.cpp
@@ -32,13 +32,13 @@
 
 static long theTotalNumberOfArrays;
 
-long NUM_getTotalNumberOfArrays () { return theTotalNumberOfArrays; }
+long NUM_getTotalNumberOfArrays (void) { return theTotalNumberOfArrays; }
 
 /*** Generic memory routines for vectors. ***/
 
 void * NUMvector (long elementSize, long lo, long hi) {
 	try {
-		if (hi < lo) return nullptr;   // not an error
+		if (hi < lo) return NULL;   // not an error
 		char *result;
 		Melder_assert (sizeof (char) == 1);   // some say that this is true by definition
 		for (;;) {   // not very infinite: 99.999 % of the time once, 0.001 % twice
@@ -54,7 +54,7 @@ void * NUMvector (long elementSize, long lo, long hi) {
 }
 
 void NUMvector_free (long elementSize, void *v, long lo) {
-	if (! v) return;   // no error
+	if (v == NULL) return;   // no error
 	char *dum = (char *) v + lo * elementSize;
 	Melder_free (dum);
 	theTotalNumberOfArrays -= 1;
@@ -62,7 +62,7 @@ void NUMvector_free (long elementSize, void *v, long lo) {
 
 void * NUMvector_copy (long elementSize, void *v, long lo, long hi) {
 	try {
-		if (! v) return nullptr;
+		if (v == NULL) return NULL;
 		char *result = reinterpret_cast <char *> (NUMvector (elementSize, lo, hi));
 		long offset = lo * elementSize;
 		memcpy (result + offset, (char *) v + offset, (hi - lo + 1) * elementSize);
@@ -74,27 +74,27 @@ void * NUMvector_copy (long elementSize, void *v, long lo, long hi) {
 
 void NUMvector_copyElements (long elementSize, void *v, void *to, long lo, long hi) {
 	long offset = lo * elementSize;
-	Melder_assert (!! v && !! to);
+	Melder_assert (v != NULL && to != NULL);
 	if (hi >= lo) memcpy ((char *) to + offset, (char *) v + offset, (hi - lo + 1) * elementSize);
 }
 
 bool NUMvector_equal (long elementSize, void *v1, void *v2, long lo, long hi) {
 	long offset = lo * elementSize;
-	Melder_assert (v1 && v2);
+	Melder_assert (v1 != NULL && v2 != NULL);
 	return ! memcmp ((char *) v1 + offset, (char *) v2 + offset, (hi - lo + 1) * elementSize);
 }
 
 void NUMvector_append (long elementSize, void **v, long lo, long *hi) {
 	try {
 		char *result;
-		if (! *v) {
+		if (*v == NULL) {
 			result = reinterpret_cast <char *> (NUMvector (elementSize, lo, lo));
 			*hi = lo;
 		} else {
 			long offset = lo * elementSize;
 			for (;;) {   // not very infinite: 99.999 % of the time once, 0.001 % twice
 				result = reinterpret_cast <char *> (Melder_realloc ((char *) *v + offset, (*hi - lo + 2) * elementSize));
-				if ((result -= offset) != nullptr) break;   // this will normally succeed at the first try
+				if ((result -= offset) != NULL) break;   // this will normally succeed at the first try
 				(void) Melder_realloc_f (result + offset, 1);   // make "sure" that the second try will succeed
 			}
 			(*hi) ++;
@@ -109,7 +109,7 @@ void NUMvector_append (long elementSize, void **v, long lo, long *hi) {
 void NUMvector_insert (long elementSize, void **v, long lo, long *hi, long position) {
 	try {
 		char *result;
-		if (! *v) {
+		if (*v == NULL) {
 			result = reinterpret_cast <char *> (NUMvector (elementSize, lo, lo));
 			*hi = lo;
 			Melder_assert (position == lo);
@@ -131,9 +131,9 @@ void NUMvector_insert (long elementSize, void **v, long lo, long *hi, long posit
 
 void * NUMmatrix (long elementSize, long row1, long row2, long col1, long col2) {
 	try {
-		int64 numberOfRows = row2 - row1 + 1;
-		int64 numberOfColumns = col2 - col1 + 1;
-		int64 numberOfCells = numberOfRows * numberOfColumns;
+		int64_t numberOfRows = row2 - row1 + 1;
+		int64_t numberOfColumns = col2 - col1 + 1;
+		int64_t numberOfCells = numberOfRows * numberOfColumns;
 
 		/*
 		 * Allocate room for the row pointers.
@@ -143,7 +143,7 @@ void * NUMmatrix (long elementSize, long row1, long row2, long col1, long col2)
 		for (;;) {
 			result = reinterpret_cast <char **> (_Melder_malloc_f (numberOfRows * sizeof (char *)));   // assume that all pointers have the same size
 			result -= row1;
-			if (result) break;   // this will normally succeed at the first try
+			if (result != NULL) break;   // this will normally succeed at the first try
 			(void) Melder_realloc_f (result + row1, 1);   // make "sure" that the second try will succeed
 		}
 		/*
@@ -158,10 +158,10 @@ void * NUMmatrix (long elementSize, long row1, long row2, long col1, long col2)
 				Melder_free (result);   // free the row pointers
 				throw MelderError ();
 			}
-			if ((result [row1] -= col1 * elementSize) != nullptr) break;   // this will normally succeed at the first try
+			if ((result [row1] -= col1 * elementSize) != NULL) break;   // this will normally succeed at the first try
 			(void) Melder_realloc_f (result [row1] + col1 * elementSize, 1);   // make "sure" that the second try will succeed
 		}
-		int64 columnSize = numberOfColumns * elementSize;
+		int64_t columnSize = numberOfColumns * elementSize;
 		for (long irow = row1 + 1; irow <= row2; irow ++) result [irow] = result [irow - 1] + columnSize;
 		theTotalNumberOfArrays += 1;
 		return result;
@@ -171,7 +171,7 @@ void * NUMmatrix (long elementSize, long row1, long row2, long col1, long col2)
 }
 
 void NUMmatrix_free (long elementSize, void *m, long row1, long col1) {
-	if (! m) return;
+	if (m == NULL) return;
 	char *dummy1 = ((char **) m) [row1] + col1 * elementSize;
 	Melder_free (dummy1);
 	char **dummy2 = (char **) m + row1;
@@ -181,9 +181,9 @@ void NUMmatrix_free (long elementSize, void *m, long row1, long col1) {
 
 void * NUMmatrix_copy (long elementSize, void * m, long row1, long row2, long col1, long col2) {
 	try {
-		if (! m) return nullptr;
+		if (m == NULL) return NULL;
 		char **result = reinterpret_cast <char **> (NUMmatrix (elementSize, row1, row2, col1, col2));
-		if (! result) return nullptr;
+		if (result == NULL) return NULL;
 		long columnOffset = col1 * elementSize;
 		long dataSize = (row2 - row1 + 1) * (col2 - col1 + 1) * elementSize;
 		memcpy (result [row1] + columnOffset, ((char **) m) [row1] + columnOffset, dataSize);
@@ -194,14 +194,14 @@ void * NUMmatrix_copy (long elementSize, void * m, long row1, long row2, long co
 }
 
 void NUMmatrix_copyElements (long elementSize, void *m, void *to, long row1, long row2, long col1, long col2) {
-	Melder_assert (m && to);
+	Melder_assert (m != NULL && to != NULL);
 	long columnOffset = col1 * elementSize;
 	long dataSize = (row2 - row1 + 1) * (col2 - col1 + 1) * elementSize;
 	memcpy (((char **) to) [row1] + columnOffset, ((char **) m) [row1] + columnOffset, dataSize);
 }
 
 bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2, long col1, long col2) {
-	Melder_assert (m1 && m2);
+	Melder_assert (m1 != NULL && m2 != NULL);
 	long columnOffset = col1 * elementSize;
 	long dataSize = (row2 - row1 + 1) * (col2 - col1 + 1) * elementSize;
 	return ! memcmp (((char **) m1) [row1] + columnOffset, ((char **) m2) [row1] + columnOffset, dataSize);
@@ -211,7 +211,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 
 #define FUNCTION(type,storage)  \
 	void NUMvector_writeText_##storage (const type *v, long lo, long hi, MelderFile file, const char32 *name) { \
-		texputintro (file, name, U" []: ", hi >= lo ? nullptr : U"(empty)", 0,0,0); \
+		texputintro (file, name, U" []: ", hi >= lo ? NULL : U"(empty)", 0,0,0); \
 		for (long i = lo; i <= hi; i ++) \
 			texput##storage (file, v [i], name, U" [", Melder_integer (i), U"]", 0,0); \
 		texexdent (file); \
@@ -223,7 +223,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 		if (feof (f) || ferror (f)) Melder_throw (U"Write error."); \
 	} \
 	type * NUMvector_readText_##storage (long lo, long hi, MelderReadText text, const char *name) { \
-		type *result = nullptr; \
+		type *result = NULL; \
 		try { \
 			result = NUMvector <type> (lo, hi); \
 			for (long i = lo; i <= hi; i ++) { \
@@ -240,7 +240,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 		} \
 	} \
 	type * NUMvector_readBinary_##storage (long lo, long hi, FILE *f) { \
-		type *result = nullptr; \
+		type *result = NULL; \
 		try { \
 			result = NUMvector <type> (lo, hi); \
 			for (long i = lo; i <= hi; i ++) { \
@@ -253,7 +253,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 		} \
 	} \
 	void NUMmatrix_writeText_##storage (type **m, long row1, long row2, long col1, long col2, MelderFile file, const char32 *name) { \
-		texputintro (file, name, U" [] []: ", row2 >= row1 ? nullptr : U"(empty)", 0,0,0); \
+		texputintro (file, name, U" [] []: ", row2 >= row1 ? NULL : U"(empty)", 0,0,0); \
 		if (row2 >= row1) { \
 			for (long irow = row1; irow <= row2; irow ++) { \
 				texputintro (file, name, U" [", Melder_integer (irow), U"]:", 0,0); \
@@ -276,7 +276,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 		if (feof (f) || ferror (f)) Melder_throw (U"Write error."); \
 	} \
 	type ** NUMmatrix_readText_##storage (long row1, long row2, long col1, long col2, MelderReadText text, const char *name) { \
-		type **result = nullptr; \
+		type **result = NULL; \
 		try { \
 			result = NUMmatrix <type> (row1, row2, col1, col2); \
 			for (long irow = row1; irow <= row2; irow ++) for (long icol = col1; icol <= col2; icol ++) { \
@@ -293,7 +293,7 @@ bool NUMmatrix_equal (long elementSize, void *m1, void *m2, long row1, long row2
 		} \
 	} \
 	type ** NUMmatrix_readBinary_##storage (long row1, long row2, long col1, long col2, FILE *f) { \
-		type **result = nullptr; \
+		type **result = NULL; \
 		try { \
 			result = NUMmatrix <type> (row1, row2, col1, col2); \
 			for (long irow = row1; irow <= row2; irow ++) for (long icol = col1; icol <= col2; icol ++) \
diff --git a/num/NUMlinprog.cpp b/num/NUMlinprog.cpp
index f055d05..d3cc2dc 100644
--- a/num/NUMlinprog.cpp
+++ b/num/NUMlinprog.cpp
@@ -36,15 +36,15 @@ struct structNUMlinprog {
 };
 
 void NUMlinprog_delete (NUMlinprog me) {
-	if (! me) return;
-	if (my linearProgram) glp_delete_prob (my linearProgram);
+	if (me == NULL) return;
+	if (my linearProgram != NULL) glp_delete_prob (my linearProgram);
 	NUMvector_free <int> (my ind, 1);
 	NUMvector_free <double> (my val, 1);
 	Melder_free (me);
 }
 
 NUMlinprog NUMlinprog_new (bool maximize) {
-	NUMlinprog me = nullptr;
+	NUMlinprog me = NULL;
 	try {
 		me = Melder_calloc (structNUMlinprog, 1);
 		my linearProgram = glp_create_prob ();   // TODO: check
diff --git a/num/NUMrandom.cpp b/num/NUMrandom.cpp
index 91098e5..36838b1 100644
--- a/num/NUMrandom.cpp
+++ b/num/NUMrandom.cpp
@@ -101,7 +101,7 @@ class NUMrandom_State { public:
 		// when NUMrandomFraction() is called without NUMrandom_init() having been called before;
 		// without this initialization, it would be detected only after 312 calls to NUMrandomFraction()
 
-	bool secondAvailable;
+	int secondAvailable;
 	double y;
 
 	/**
@@ -134,19 +134,19 @@ void NUMrandom_State :: init_by_array64 (uint64_t init_key [], unsigned int key_
 	unsigned int k = ( NN > key_length ? NN : key_length );
 	for (; k; k --) {
 		array [i] = (array [i] ^ ((array [i - 1] ^ (array [i - 1] >> 62)) * UINT64_C (3935559000370003845)))
-		  + init_key [j] + (uint64_t) j;   // non-linear
+		  + init_key [j] + (uint64_t) j;   /* non linear */
 		i ++, j ++;
 		if (i >= NN) { array [0] = array [NN - 1]; i = 1; }
 		if (j >= key_length) j = 0;
 	}
 	for (k = NN - 1; k; k --) {
 		array [i] = (array [i] ^ ((array [i - 1] ^ (array [i - 1] >> 62)) * UINT64_C (2862933555777941757)))
-		  - (uint64_t) i;   // non-linear
+		  - (uint64_t) i;   /* non linear */
 		i ++;
 		if (i >= NN) { array [0] = array [NN - 1]; i = 1; }
 	}
 
-	array [0] = UINT64_C (1) << 63;   // MSB is 1; assuring non-zero initial array
+	array [0] = UINT64_C (1) << 63; /* MSB is 1; assuring non-zero initial array */
 }
 
 static bool theInited = false;
@@ -192,7 +192,7 @@ void NUMrandom_init () {
 
 #define ZERO_OR_MAGIC_VERSION  3
 
-#if ZERO_OR_MAGIC_VERSION == 1   // M&N 1999
+#if ZERO_OR_MAGIC_VERSION == 1  // M&N 1999
 	#define ZERO_OR_MAGIC  ( (x & UINT64_C (1)) ? MATRIX_A : UINT64_C (0) )
 #elif ZERO_OR_MAGIC_VERSION == 2
 	#define ZERO_OR_MAGIC  ( (x & UINT64_C (1)) * MATRIX_A )
@@ -205,7 +205,7 @@ double NUMrandomFraction () {
 	NUMrandom_State *me = & states [0];
 	uint64_t x;
 
-	if (my index >= NN) {   // generate NN words at a time
+	if (my index >= NN) { /* generate NN words at a time */
 
 		Melder_assert (theInited);   // if NUMrandom_init() hasn't been called, we'll detect that here, probably in the first call
 
@@ -238,7 +238,7 @@ double NUMrandomFraction_mt (int threadNumber) {
 	NUMrandom_State *me = & states [threadNumber];
 	uint64_t x;
 
-	if (my index >= NN) {   // generate NN words at a time
+	if (my index >= NN) { /* generate NN words at a time */
 
 		Melder_assert (theInited);
 
@@ -283,22 +283,22 @@ double NUMrandomGauss (double mean, double standardDeviation) {
 		Knuth, p. 122.
 	*/
 	if (my secondAvailable) {
-		my secondAvailable = false;
+		my secondAvailable = FALSE;
 		return mean + standardDeviation * my y;
 	} else {
 		double s, x;
 		repeat {
-			x = 2.0 * NUMrandomFraction () - 1.0;   // inside the square [-1; 1] x [-1; 1]
+			x = 2.0 * NUMrandomFraction () - 1.0;   /* Inside the square [-1; 1] x [-1; 1]. */
 			my y = 2.0 * NUMrandomFraction () - 1.0;
 			s = x * x + my y * my y;
-		} until (s < 1.0);   // inside the unit circle
+		} until (s < 1.0);   /* Inside the unit circle. */
 		if (s == 0.0) {
 			x = my y = 0.0;
 		} else {
 			double factor = sqrt (-2.0 * log (s) / s);
 			x *= factor, my y *= factor;
 		}
-		my secondAvailable = true;
+		my secondAvailable = TRUE;
 		return mean + standardDeviation * x;
 	}
 }
@@ -309,22 +309,22 @@ double NUMrandomGauss_mt (int threadNumber, double mean, double standardDeviatio
 		Knuth, p. 122.
 	*/
 	if (my secondAvailable) {
-		my secondAvailable = false;
+		my secondAvailable = FALSE;
 		return mean + standardDeviation * my y;
 	} else {
 		double s, x;
 		repeat {
-			x = 2.0 * NUMrandomFraction_mt (threadNumber) - 1.0;   // inside the square [-1; 1] x [-1; 1]
+			x = 2.0 * NUMrandomFraction_mt (threadNumber) - 1.0;   /* Inside the square [-1; 1] x [-1; 1]. */
 			my y = 2.0 * NUMrandomFraction_mt (threadNumber) - 1.0;
 			s = x * x + my y * my y;
-		} until (s < 1.0);   // inside the unit circle
+		} until (s < 1.0);   /* Inside the unit circle. */
 		if (s == 0.0) {
 			x = my y = 0.0;
 		} else {
 			double factor = sqrt (-2.0 * log (s) / s);
 			x *= factor, my y *= factor;
 		}
-		my secondAvailable = true;
+		my secondAvailable = TRUE;
 		return mean + standardDeviation * x;
 	}
 }
@@ -360,7 +360,7 @@ double NUMrandomPoisson (double mean) {
 
 			exp ((k - mean) * ln (mean) + lnGamma (mean + 1) - lnGamma (k + 1))
 	*/
-	static double previousMean = -1.0;   // this routine may well be called repeatedly with the same mean; optimize
+	static double previousMean = -1.0;   /* This routine may well be called repeatedly with the same mean. Optimize. */
 	if (mean < 8.0) {
 		static double expMean;
 		double product = 1.0;
diff --git a/stat/Distributions.cpp b/stat/Distributions.cpp
index 1c7bdb4..351dc73 100644
--- a/stat/Distributions.cpp
+++ b/stat/Distributions.cpp
@@ -1,6 +1,6 @@
 /* Distributions.cpp
  *
- * Copyright (C) 1997-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,16 +22,16 @@
 Thing_implement (Distributions, TableOfReal, 0);
 
 void structDistributions :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of distributions: ", numberOfColumns);
 	MelderInfo_writeLine (U"Number of values: ", numberOfRows);
 }
 
-autoDistributions Distributions_create (long numberOfRows, long numberOfColumns) {
+Distributions Distributions_create (long numberOfRows, long numberOfColumns) {
 	try {
 		autoDistributions me = Thing_new (Distributions);
-		TableOfReal_init (me.get(), numberOfRows, numberOfColumns);
-		return me;
+		TableOfReal_init (me.peek(), numberOfRows, numberOfColumns);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distributions not created.");
 	}
@@ -62,7 +62,7 @@ void Distributions_peek (Distributions me, long column, char32 **string, long *n
 			if (rand <= sum) break;
 		}
 	} while (irow > my numberOfRows);   // guard against rounding errors
-	if (! my rowLabels [irow])
+	if (my rowLabels [irow] == NULL)
 		Melder_throw (me, U": no string in row ", irow, U".");
 	if (string)
 		*string = my rowLabels [irow];
@@ -98,8 +98,8 @@ static void unicize (Distributions me) {
 	/* Must have been sorted beforehand. */
 	long nrow = 0, ifrom = 1;
 	for (long irow = 1; irow <= my numberOfRows; irow ++) {
-		if (irow == my numberOfRows || (my rowLabels [irow] == nullptr) != (my rowLabels [irow + 1] == nullptr) ||
-		    (my rowLabels [irow] != nullptr && ! str32equ (my rowLabels [irow], my rowLabels [irow + 1])))
+		if (irow == my numberOfRows || (my rowLabels [irow] == NULL) != (my rowLabels [irow + 1] == NULL) ||
+		    (my rowLabels [irow] != NULL && ! str32equ (my rowLabels [irow], my rowLabels [irow + 1])))
 		{
 			/*
 			 * Detected a change.
@@ -111,8 +111,8 @@ static void unicize (Distributions me) {
 			 */
 			if (ifrom != nrow) {
 				Melder_free (my rowLabels [nrow]);
-				my rowLabels [nrow] = my rowLabels [ifrom];   // surface copy
-				my rowLabels [ifrom] = nullptr;   // undangle
+				my rowLabels [nrow] = my rowLabels [ifrom];   /* Surface copy. */
+				my rowLabels [ifrom] = NULL;   /* Undangle. */
 				for (long icol = 1; icol <= my numberOfColumns; icol ++)
 					my data [nrow] [icol] = my data [ifrom] [icol];
 			}
@@ -130,23 +130,23 @@ static void unicize (Distributions me) {
 	my numberOfRows = nrow;
 }
 
-autoDistributions Distributions_addTwo (Distributions me, Distributions thee) {
+Distributions Distributions_addTwo (Distributions me, Distributions thee) {
 	try {
-		autoDistributions him = TablesOfReal_append (me, thee).static_cast_move<structDistributions>();
-		TableOfReal_sortByLabel (him.get(), 0, 0);
-		unicize (him.get());
-		return him;
+		autoDistributions him = static_cast<Distributions> (TablesOfReal_append (me, thee));
+		TableOfReal_sortByLabel (him.peek(), 0, 0);
+		unicize (him.peek());
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", thee, U": not added.");
 	}
 }
 
-autoDistributions Distributions_addMany (OrderedOf<structDistributions>* me) {
+Distributions Distributions_addMany (Collection me) {
 	try {
-		autoDistributions thee = TablesOfReal_appendMany ((OrderedOf<structTableOfReal>*) me).static_cast_move<structDistributions>();   // FIXME cast
-		TableOfReal_sortByLabel (thee.get(), 0, 0);
-		unicize (thee.get());
-		return thee;
+		autoDistributions thee = static_cast<Distributions> (TablesOfReal_appendMany (me));
+		TableOfReal_sortByLabel (thee.peek(), 0, 0);
+		unicize (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Distributions objects not added.");
 	}
diff --git a/stat/Distributions.h b/stat/Distributions.h
index 3ffa587..02e3047 100644
--- a/stat/Distributions.h
+++ b/stat/Distributions.h
@@ -27,15 +27,15 @@ Thing_define (Distributions, TableOfReal) {
 		override;
 };
 
-autoDistributions Distributions_create (long numberOfRows, long numberOfColumns);
+Distributions Distributions_create (long numberOfRows, long numberOfColumns);
 
 void Distributions_peek (Distributions me, long column, char32 **string, long *row);
 
 double Distributions_getProbability (Distributions me, const char32 *string, long column);
 double Distributionses_getMeanAbsoluteDifference (Distributions me, Distributions thee, long column);
 
-autoDistributions Distributions_addTwo (Distributions me, Distributions thee);
-autoDistributions Distributions_addMany (OrderedOf<structDistributions>* me);
+Distributions Distributions_addTwo (Distributions me, Distributions thee);
+Distributions Distributions_addMany (Collection me);
 
 void Distributions_checkSpecifiedColumnNumberWithinRange (Distributions me, long columnNumber);
 
diff --git a/stat/Distributions_and_Strings.cpp b/stat/Distributions_and_Strings.cpp
index 2395b5d..e088034 100644
--- a/stat/Distributions_and_Strings.cpp
+++ b/stat/Distributions_and_Strings.cpp
@@ -1,6 +1,6 @@
 /* Distributions_and_Strings.cpp
  *
- * Copyright (C) 1997-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,23 +26,23 @@
 
 #include "Distributions_and_Strings.h"
 
-autoStrings Distributions_to_Strings (Distributions me, long column, long numberOfStrings) {
+Strings Distributions_to_Strings (Distributions me, long column, long numberOfStrings) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy numberOfStrings = numberOfStrings;
 		thy strings = NUMvector <char32*> (1, numberOfStrings);
 		for (long istring = 1; istring <= numberOfStrings; istring ++) {
 			char32 *string;
-			Distributions_peek (me, column, & string, nullptr);
+			Distributions_peek (me, column, & string, NULL);
 			thy strings [istring] = Melder_dup (string);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Strings not generated.");
 	}
 }
 
-autoStrings Distributions_to_Strings_exact (Distributions me, long column) {
+Strings Distributions_to_Strings_exact (Distributions me, long column) {
 	try {
 		long total = 0;
 		long istring = 0;
@@ -72,14 +72,14 @@ autoStrings Distributions_to_Strings_exact (Distributions me, long column) {
 				thy strings [++ istring] = Melder_dup (string);
 			}
 		}
-		Strings_randomize (thee.get());
-		return thee;
+		Strings_randomize (thee.peek());
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": Strings not generated.");
 	}
 }
 
-autoDistributions Strings_to_Distributions (Strings me) {
+Distributions Strings_to_Distributions (Strings me) {
 	try {
 		autoDistributions thee = Distributions_create (my numberOfStrings, 1);
 		long idist = 0;
@@ -98,8 +98,8 @@ autoDistributions Strings_to_Distributions (Strings me) {
 			}
 		}
 		thy numberOfRows = idist;
-		TableOfReal_sortByLabel (thee.get(), 1, 0);
-		return thee;
+		TableOfReal_sortByLabel (thee.peek(), 1, 0);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": distribution not computed.");
 	}
diff --git a/stat/Distributions_and_Strings.h b/stat/Distributions_and_Strings.h
index 0bc9d60..0df4795 100644
--- a/stat/Distributions_and_Strings.h
+++ b/stat/Distributions_and_Strings.h
@@ -1,6 +1,6 @@
 /* Distributions_and_Strings.h
  *
- * Copyright (C) 1997-2011,2015 Paul Boersma
+ * Copyright (C) 1997-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,8 +20,8 @@
 #include "Distributions.h"
 #include "Strings_.h"
 
-autoStrings Distributions_to_Strings (Distributions me, long column, long numberOfStrings);
-autoStrings Distributions_to_Strings_exact (Distributions me, long column);
-autoDistributions Strings_to_Distributions (Strings me);
+Strings Distributions_to_Strings (Distributions me, long column, long numberOfStrings);
+Strings Distributions_to_Strings_exact (Distributions me, long column);
+Distributions Strings_to_Distributions (Strings me);
 
 /* End of file Distributions_and_Strings.h */
diff --git a/stat/LogisticRegression.cpp b/stat/LogisticRegression.cpp
index 7c28267..646228d 100644
--- a/stat/LogisticRegression.cpp
+++ b/stat/LogisticRegression.cpp
@@ -1,6 +1,6 @@
 /* LogisticRegression.cpp
  *
- * Copyright (C) 2005-2012,2015,2016 Paul Boersma
+ * Copyright (C) 2005-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,15 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * pb 2005/05/01 created
+ * pb 2006/12/10 MelderInfo
+ * pb 2007/08/12 wchar
+ * pb 2007/10/01 can write as encoding
+ * pb 2007/11/18 split off from Regression.c
+ * pb 2011/03/20 C++
+ */
+
 #include "LogisticRegression.h"
 #include "UnicodeData.h"
 
@@ -47,39 +56,39 @@ void structLogisticRegression :: v_info () {
 	MelderInfo_writeLine (U"Dependent 2: ", our dependent2);
 	MelderInfo_writeLine (U"Interpretation:");
 	MelderInfo_write (U"   ln (P(", dependent2, U")/P(", dependent1, U")) " UNITEXT_ALMOST_EQUAL_TO U" ", Melder_fixed (intercept, 6));
-	for (long ivar = 1; ivar <= parameters.size; ivar ++) {
-		RegressionParameter parm = parameters.at [ivar];
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_write (parm -> value < 0.0 ? U" - " : U" + ", Melder_fixed (fabs (parm -> value), 6), U" * ", parm -> label);
 	}
 	MelderInfo_writeLine (U"");
 	MelderInfo_writeLine (U"Log odds ratios:");
-	for (long ivar = 1; ivar <= parameters.size; ivar ++) {
-		RegressionParameter parm = parameters.at [ivar];
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_writeLine (U"   Log odds ratio of factor ", parm -> label, U": ", Melder_fixed ((parm -> maximum - parm -> minimum) * parm -> value, 6));
 	}
 	MelderInfo_writeLine (U"Odds ratios:");
-	for (long ivar = 1; ivar <= parameters.size; ivar ++) {
-		RegressionParameter parm = parameters.at [ivar];
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_writeLine (U"   Odds ratio of factor ", parm -> label, U": ", exp ((parm -> maximum - parm -> minimum) * parm -> value));
 	}
 }
 
-autoLogisticRegression LogisticRegression_create (const char32 *dependent1, const char32 *dependent2) {
+LogisticRegression LogisticRegression_create (const char32 *dependent1, const char32 *dependent2) {
 	try {
 		autoLogisticRegression me = Thing_new (LogisticRegression);
-		Regression_init (me.get());
+		Regression_init (me.peek());
 		my dependent1 = Melder_dup (dependent1);
 		my dependent2 = Melder_dup (dependent2);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LogisticRegression not created.");
 	}
 }
 
-static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *factors, long numberOfFactors, long dependent1, long dependent2) {
+static LogisticRegression _Table_to_LogisticRegression (Table me, long *factors, long numberOfFactors, long dependent1, long dependent2) {
 	long numberOfParameters = numberOfFactors + 1;
-	long numberOfCells = my rows.size, numberOfY0 = 0, numberOfY1 = 0, numberOfData = 0;
-	double logLikelihood = 1e307, previousLogLikelihood = 1e308;
+	long numberOfCells = my rows -> size, numberOfY0 = 0, numberOfY1 = 0, numberOfData = 0;
+	double logLikelihood = 1e300, previousLogLikelihood = 2e300;
 	if (numberOfParameters < 1)   // includes intercept
 		Melder_throw (U"Not enough columns (has to be more than 1).");
 	/*
@@ -95,7 +104,7 @@ static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *fact
 	for (long ivar = 1; ivar <= numberOfFactors; ivar ++) {
 		double minimum = Table_getMinimum (me, factors [ivar]);
 		double maximum = Table_getMaximum (me, factors [ivar]);
-		Regression_addParameter (thee.get(), my columnHeaders [factors [ivar]]. label, minimum, maximum, 0.0);
+		Regression_addParameter (thee.peek(), my columnHeaders [factors [ivar]]. label, minimum, maximum, 0.0);
 	}
 	for (long icell = 1; icell <= numberOfCells; icell ++) {
 		y0 [icell] = Table_getNumericValue_Assert (me, icell, dependent1);
@@ -140,7 +149,7 @@ static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *fact
 	 */
 	thy intercept = log ((double) numberOfY1 / (double) numberOfY0);   // initial state of intercept: best guess for average log odds
 	for (long ivar = 1; ivar <= numberOfFactors; ivar ++) {
-		RegressionParameter parm = thy parameters.at [ivar];
+		RegressionParameter parm = static_cast<RegressionParameter> (thy parameters -> item [ivar]);
 		parm -> value = 0.0;   // initial state of dependence: none
 	}
 	long iteration = 1;
@@ -158,7 +167,7 @@ static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *fact
 		for (long icell = 1; icell <= numberOfCells; icell ++) {
 			double fittedLogit = thy intercept, fittedP, fittedQ, fittedLogP, fittedLogQ, fittedPQ, fittedVariance;
 			for (long ivar = 1; ivar <= numberOfFactors; ivar ++) {
-				RegressionParameter parm = thy parameters.at [ivar];
+				RegressionParameter parm = static_cast<RegressionParameter> (thy parameters -> item [ivar]);
 				fittedLogit += parm -> value * x [icell] [ivar];
 			}
 			/*
@@ -248,7 +257,7 @@ static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *fact
 		 */
 		thy intercept += smallMatrix [0] [numberOfParameters];
 		for (long ivar = 1; ivar <= numberOfFactors; ivar ++) {
-			RegressionParameter parm = thy parameters.at [ivar];
+			RegressionParameter parm = static_cast<RegressionParameter> (thy parameters -> item [ivar]);
 			parm -> value += smallMatrix [ivar] [numberOfParameters];
 		}
 	}
@@ -256,14 +265,14 @@ static autoLogisticRegression _Table_to_LogisticRegression (Table me, long *fact
 		Melder_warning (U"Logistic regression has not converged in 100 iterations. The results are unreliable.");
 	}
 	for (long ivar = 1; ivar <= numberOfFactors; ivar ++) {
-		RegressionParameter parm = thy parameters.at [ivar];
+		RegressionParameter parm = static_cast<RegressionParameter> (thy parameters -> item [ivar]);
 		parm -> value /= stdevX [ivar];
 		thy intercept -= parm -> value * meanX [ivar];
 	}
-	return thee;
+	return thee.transfer();
 }
 
-autoLogisticRegression Table_to_LogisticRegression (Table me, const char32 *factors_columnLabelString,
+LogisticRegression Table_to_LogisticRegression (Table me, const char32 *factors_columnLabelString,
 	const char32 *dependent1_columnLabel, const char32 *dependent2_columnLabel)
 {
 	try {
@@ -272,7 +281,7 @@ autoLogisticRegression Table_to_LogisticRegression (Table me, const char32 *fact
 		long dependent1_columnIndex = Table_getColumnIndexFromColumnLabel (me, dependent1_columnLabel);
 		long dependent2_columnIndex = Table_getColumnIndexFromColumnLabel (me, dependent2_columnLabel);
 		autoLogisticRegression thee = _Table_to_LogisticRegression (me, factors_columnIndices.peek(), numberOfFactors, dependent1_columnIndex, dependent2_columnIndex);
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": logistic regression not performed.");
 	}
@@ -289,8 +298,8 @@ static inline double NUMmax2 (double a, double b) {
 void LogisticRegression_drawBoundary (LogisticRegression me, Graphics graphics, long colx, double xleft, double xright,
 	long coly, double ybottom, double ytop, bool garnish)
 {
-	RegressionParameter parmx = my parameters.at [colx];
-	RegressionParameter parmy = my parameters.at [coly];
+	RegressionParameter parmx = static_cast<RegressionParameter> (my parameters -> item [colx]);
+	RegressionParameter parmy = static_cast<RegressionParameter> (my parameters -> item [coly]);
 	if (xleft == xright) {
 		xleft = parmx -> minimum;
 		xright = parmx -> maximum;
@@ -300,9 +309,9 @@ void LogisticRegression_drawBoundary (LogisticRegression me, Graphics graphics,
 		ytop = parmy -> maximum;
 	}
 	double intercept = my intercept;
-	for (long iparm = 1; iparm <= my parameters.size; iparm ++) {
+	for (long iparm = 1; iparm <= my parameters -> size; iparm ++) {
 		if (iparm != colx && iparm != coly) {
-			RegressionParameter parm = my parameters.at [iparm];
+			RegressionParameter parm = static_cast<RegressionParameter> (my parameters -> item [iparm]);
 			intercept += parm -> value * (0.5 * (parm -> minimum + parm -> maximum));
 		}
 	}
@@ -343,7 +352,7 @@ void LogisticRegression_drawBoundary (LogisticRegression me, Graphics graphics,
 }
 
 /*
-autoTable Table_LogisticRegression_addProbabilities (Table me, LogisticRegression thee) {
+Table Table_LogisticRegression_addProbabilities (Table me, LogisticRegression thee) {
 	for (icell = 1; icell <= numberOfCells; icell ++) {
 		double fittedLogit = parameters [0], fittedP, fittedQ, fittedLogP, fittedLogQ;
 		for (ivar = 1; ivar <= numberOfIndependentVariables; ivar ++) {
diff --git a/stat/LogisticRegression.h b/stat/LogisticRegression.h
index ca8f7f2..24c4fef 100644
--- a/stat/LogisticRegression.h
+++ b/stat/LogisticRegression.h
@@ -22,10 +22,11 @@
 #include "Regression.h"
 
 #include "LogisticRegression_def.h"
+oo_CLASS_CREATE (LogisticRegression, Regression);
 
-autoLogisticRegression LogisticRegression_create (const char32 *dependent1, const char32 *dependent2);
+LogisticRegression LogisticRegression_create (const char32 *dependent1, const char32 *dependent2);
 
-autoLogisticRegression Table_to_LogisticRegression (Table me, const char32 *columnsWithFactors_string,
+LogisticRegression Table_to_LogisticRegression (Table me, const char32 *columnsWithFactors_string,
 	const char32 *columnWithDependent1_string, const char32 *columnWithDependent2_string);
 
 void LogisticRegression_drawBoundary (LogisticRegression me, Graphics graphics, long colx, double xmin, double xmax,
diff --git a/stat/PairDistribution.cpp b/stat/PairDistribution.cpp
index 95b1d35..93c9638 100644
--- a/stat/PairDistribution.cpp
+++ b/stat/PairDistribution.cpp
@@ -1,6 +1,6 @@
 /* PairDistribution.cpp
  *
- * Copyright (C) 1997-2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,47 +38,44 @@
 #include "oo_DESCRIPTION.h"
 #include "PairDistribution_def.h"
 
-Thing_implement (PairProbability, Daata, 0);
+Thing_implement (PairProbability, Data, 0);
 
-Thing_implement (PairDistribution, Daata, 0);
+Thing_implement (PairDistribution, Data, 0);
 
 void structPairDistribution :: v_info () {
 	PairDistribution_Parent :: v_info ();
-	MelderInfo_writeLine (U"Number of pairs: ", pairs.size);
+	MelderInfo_writeLine (U"Number of pairs: ", pairs -> size);
 }
 
-autoPairProbability PairProbability_create (const char32 *string1, const char32 *string2, double weight) {
+PairProbability PairProbability_create (const char32 *string1, const char32 *string2, double weight) {
 	autoPairProbability me = Thing_new (PairProbability);
 	my string1 = Melder_dup (string1);
 	my string2 = Melder_dup (string2);
 	my weight = weight;
-	return me;
+	return me.transfer();
 }
 
-autoPairDistribution PairDistribution_create () {
+PairDistribution PairDistribution_create () {
 	try {
 		autoPairDistribution me = Thing_new (PairDistribution);
-		return me;
+		my pairs = Ordered_create ();
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"PairDistribution not created.");
 	}
 }
 
-int PairProbability_compare (PairProbability me, PairProbability thee) noexcept {
-	return str32cmp (my string1, thy string1);
-}
-
 static void PairDistribution_checkSpecifiedPairNumber (PairDistribution me, long pairNumber) {
 	if (pairNumber < 1)
 		Melder_throw (me, U": the specified pair number is ", pairNumber, U", but should be at least 1.");
-	if (pairNumber > my pairs.size)
-		Melder_throw (me, U": the specified pair number is ", pairNumber, U", but should be at most my number of pairs (", my pairs.size, U").");
+	if (pairNumber > my pairs -> size)
+		Melder_throw (me, U": the specified pair number is ", pairNumber, U", but should be at most my number of pairs (", my pairs -> size, U").");
 }
 
 const char32 * PairDistribution_getString1 (PairDistribution me, long pairNumber) {
 	try {
 		PairDistribution_checkSpecifiedPairNumber (me, pairNumber);
-		PairProbability prob = my pairs.at [pairNumber];
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [pairNumber]);
 		return prob -> string1;
 	} catch (MelderError) {
 		Melder_throw (me, U": string1 not retrieved.");
@@ -88,7 +85,7 @@ const char32 * PairDistribution_getString1 (PairDistribution me, long pairNumber
 const char32 * PairDistribution_getString2 (PairDistribution me, long pairNumber) {
 	try {
 		PairDistribution_checkSpecifiedPairNumber (me, pairNumber);
-		PairProbability prob = my pairs.at [pairNumber];
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [pairNumber]);
 		return prob -> string2;
 	} catch (MelderError) {
 		Melder_throw (me, U": string2 not retrieved.");
@@ -98,7 +95,7 @@ const char32 * PairDistribution_getString2 (PairDistribution me, long pairNumber
 double PairDistribution_getWeight (PairDistribution me, long pairNumber) {
 	try {
 		PairDistribution_checkSpecifiedPairNumber (me, pairNumber);
-		PairProbability prob = my pairs.at [pairNumber];
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [pairNumber]);
 		return prob -> weight;
 	} catch (MelderError) {
 		Melder_throw (me, U": weight not retrieved.");
@@ -106,22 +103,22 @@ double PairDistribution_getWeight (PairDistribution me, long pairNumber) {
 }
 
 void PairDistribution_add (PairDistribution me, const char32 *string1, const char32 *string2, double weight) {
-	autoPairProbability pair = PairProbability_create (string1, string2, weight);
-	my pairs.addItem_move (pair.move());
+	PairProbability pair = PairProbability_create (string1, string2, weight);
+	Collection_addItem (my pairs, pair);
 }
 
 void PairDistribution_removeZeroWeights (PairDistribution me) {
-	for (long ipair = my pairs.size; ipair > 0; ipair --) {
-		PairProbability prob = my pairs.at [ipair];
+	for (long ipair = my pairs -> size; ipair > 0; ipair --) {
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [ipair]);
 		if (prob -> weight <= 0.0) {
-			my pairs.removeItem (ipair);
+			Collection_removeItem (my pairs, ipair);
 		}
 	}
 }
 
 void PairDistribution_swapInputsAndOutputs (PairDistribution me) {
-	for (long ipair = my pairs.size; ipair > 0; ipair --) {
-		PairProbability prob = my pairs.at [ipair];
+	for (long ipair = my pairs -> size; ipair > 0; ipair --) {
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [ipair]);
 		char32 *tmp = prob -> string1;
 		prob -> string1 = prob -> string2;
 		prob -> string2 = tmp;
@@ -130,8 +127,8 @@ void PairDistribution_swapInputsAndOutputs (PairDistribution me) {
 
 static double PairDistributions_getTotalWeight_checkPositive (PairDistribution me) throw (MelderError) {
 	double totalWeight = 0.0;
-	for (long ipair = 1; ipair <= my pairs.size; ipair ++) {
-		PairProbability prob = my pairs.at [ipair];
+	for (long ipair = 1; ipair <= my pairs -> size; ipair ++) {
+		PairProbability prob = static_cast <PairProbability> (my pairs -> item [ipair]);
 		totalWeight += prob -> weight;
 	}
 	if (totalWeight <= 0.0) {
@@ -140,9 +137,10 @@ static double PairDistributions_getTotalWeight_checkPositive (PairDistribution m
 	return totalWeight;
 }
 
-void PairDistribution_to_Stringses (PairDistribution me, long nout, autoStrings *strings1_out, autoStrings *strings2_out) {
+void PairDistribution_to_Stringses (PairDistribution me, long nout, Strings *strings1_out, Strings *strings2_out) {
 	try {
-		long nin = my pairs.size, iin;
+		*strings1_out = *strings2_out = NULL;
+		long nin = my pairs -> size, iin;
 		if (nin < 1)
 			Melder_throw (U"No candidates.");
 		if (nout < 1)
@@ -158,19 +156,19 @@ void PairDistribution_to_Stringses (PairDistribution me, long nout, autoStrings
 			do {
 				double rand = NUMrandomUniform (0, total), sum = 0.0;
 				for (iin = 1; iin <= nin; iin ++) {
-					PairProbability prob = my pairs.at [iin];
+					PairProbability prob = static_cast <PairProbability> (my pairs -> item [iin]);
 					sum += prob -> weight;
 					if (rand <= sum) break;
 				}
 			} while (iin > nin);   /* Guard against rounding errors. */
-			PairProbability prob = my pairs.at [iin];
+			PairProbability prob = static_cast <PairProbability> (my pairs -> item [iin]);
 			if (! prob -> string1 || ! prob -> string2)
 				Melder_throw (U"No string in probability pair ", iin, U".");
 			strings1 -> strings [iout] = Melder_dup (prob -> string1);
 			strings2 -> strings [iout] = Melder_dup (prob -> string2);
 		}
-		*strings1_out = strings1.move();
-		*strings2_out = strings2.move();
+		*strings1_out = strings1.transfer();
+		*strings2_out = strings2.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": generation of Stringses not performed.");
 	}
@@ -178,24 +176,24 @@ void PairDistribution_to_Stringses (PairDistribution me, long nout, autoStrings
 
 void PairDistribution_peekPair (PairDistribution me, char32 **string1, char32 **string2) {
 	try {
-		*string1 = *string2 = nullptr;
+		*string1 = *string2 = NULL;
 		double total = 0.0;
-		long nin = my pairs.size, iin;
+		long nin = my pairs -> size, iin;
 		PairProbability prob;
 		if (nin < 1) Melder_throw (U"No candidates.");
 		for (iin = 1; iin <= nin; iin ++) {
-			prob = my pairs.at [iin];
+			prob = static_cast <PairProbability> (my pairs -> item [iin]);
 			total += prob -> weight;
 		}
 		do {
 			double rand = NUMrandomUniform (0, total), sum = 0.0;
 			for (iin = 1; iin <= nin; iin ++) {
-				prob = my pairs.at [iin];
+				prob = static_cast <PairProbability> (my pairs -> item [iin]);
 				sum += prob -> weight;
 				if (rand <= sum) break;
 			}
 		} while (iin > nin);   // guard against rounding errors
-		prob = my pairs.at [iin];
+		prob = static_cast <PairProbability> (my pairs -> item [iin]);
 		if (! prob -> string1 || ! prob -> string2) Melder_throw (U"No string in probability pair ", iin, U".");
 		*string1 = prob -> string1;
 		*string2 = prob -> string2;
@@ -204,28 +202,32 @@ void PairDistribution_peekPair (PairDistribution me, char32 **string1, char32 **
 	}
 }
 
+static int compare (PairProbability me, PairProbability thee) throw () {
+	return str32cmp (my string1, thy string1);
+}
+
 static double PairDistribution_getFractionCorrect (PairDistribution me, int which) {
 	try {
 		double correct = 0.0;
 		long pairmin = 1, ipair;
 		autoPairDistribution thee = Data_copy (me);
-		thy pairs.sort (PairProbability_compare);
-		double total = PairDistributions_getTotalWeight_checkPositive (thee.get());
+		NUMsort_p (thy pairs -> size, thy pairs -> item, (int (*) (const void *, const void *)) compare);
+		double total = PairDistributions_getTotalWeight_checkPositive (thee.peek());
 		do {
 			long pairmax = pairmin;
-			char32 *firstInput = thy pairs.at [pairmin] -> string1;
-			for (ipair = pairmin + 1; ipair <= thy pairs.size; ipair ++) {
-				PairProbability prob = thy pairs.at [ipair];
+			char32 *firstInput = ((PairProbability) thy pairs -> item [pairmin]) -> string1;
+			for (ipair = pairmin + 1; ipair <= thy pairs -> size; ipair ++) {
+				PairProbability prob = static_cast <PairProbability> (thy pairs -> item [ipair]);
 				if (! str32equ (prob -> string1, firstInput)) {
 					pairmax = ipair - 1;
 					break;
 				}
 			}
-			if (ipair > thy pairs.size) pairmax = thy pairs.size;
+			if (ipair > thy pairs -> size) pairmax = thy pairs -> size;
 			if (which == 0) {
 				double pmax = 0.0;
 				for (ipair = pairmin; ipair <= pairmax; ipair ++) {
-					PairProbability prob = thy pairs.at [ipair];
+					PairProbability prob = static_cast <PairProbability> (thy pairs -> item [ipair]);
 					double p = prob -> weight / total;
 					if (p > pmax) pmax = p;
 				}
@@ -233,7 +235,7 @@ static double PairDistribution_getFractionCorrect (PairDistribution me, int whic
 			} else {
 				double sum = 0.0, p2 = 0.0;
 				for (ipair = pairmin; ipair <= pairmax; ipair ++) {
-					PairProbability prob = thy pairs.at [ipair];
+					PairProbability prob = static_cast <PairProbability> (thy pairs -> item [ipair]);
 					double p = prob -> weight / total;
 					sum += p;
 					p2 += p * p;
@@ -241,7 +243,7 @@ static double PairDistribution_getFractionCorrect (PairDistribution me, int whic
 				correct += p2 / sum;
 			}
 			pairmin = pairmax + 1;
-		} while (pairmin <= thy pairs.size);
+		} while (pairmin <= thy pairs -> size);
 		return correct;
 	} catch (MelderError) {
 		Melder_throw (me, U": could not compute my fraction correct.");
@@ -263,22 +265,22 @@ double PairDistribution_Distributions_getFractionCorrect (PairDistribution me, D
 		char32 string [1000];
 		Distributions_checkSpecifiedColumnNumberWithinRange (dist, column);
 		autoPairDistribution thee = Data_copy (me);
-		thy pairs.sort (PairProbability_compare);
-		double total = PairDistributions_getTotalWeight_checkPositive (thee.get());
+		NUMsort_p (thy pairs -> size, thy pairs -> item, (int (*) (const void *, const void *)) compare);
+		double total = PairDistributions_getTotalWeight_checkPositive (thee.peek());
 		do {
 			long pairmax = pairmin, length, ipair;
 			double sum = 0.0, sumDist = 0.0;
-			char32 *firstInput = thy pairs.at [pairmin] -> string1;
-			for (ipair = pairmin + 1; ipair <= thy pairs.size; ipair ++) {
-				PairProbability prob = thy pairs.at [ipair];
+			char32 *firstInput = ((PairProbability) thy pairs -> item [pairmin]) -> string1;
+			for (ipair = pairmin + 1; ipair <= thy pairs -> size; ipair ++) {
+				PairProbability prob = static_cast <PairProbability> (thy pairs -> item [ipair]);
 				if (! str32equ (prob -> string1, firstInput)) {
 					pairmax = ipair - 1;
 					break;
 				}
 			}
-			if (ipair > thy pairs.size) pairmax = thy pairs.size;
+			if (ipair > thy pairs -> size) pairmax = thy pairs -> size;
 			for (ipair = pairmin; ipair <= pairmax; ipair ++) {
-				PairProbability prob = thy pairs.at [ipair];
+				PairProbability prob = static_cast <PairProbability> (thy pairs -> item [ipair]);
 				double p = prob -> weight / total, pout = 0.0;
 				Melder_sprint (string, 1000, prob -> string1, U" \\-> ", prob -> string2);
 				for (long idist = 1; idist <= dist -> numberOfRows; idist ++) {
@@ -298,23 +300,23 @@ double PairDistribution_Distributions_getFractionCorrect (PairDistribution me, D
 			}
 			if (sumDist != 0.0) correct += sum / sumDist;
 			pairmin = pairmax + 1;
-		} while (pairmin <= thy pairs.size);
+		} while (pairmin <= thy pairs -> size);
 		return correct;
 	} catch (MelderError) {
 		Melder_throw (me, U" & ", dist, U": could not compute our fraction correct.");
 	}
 }
 
-autoTable PairDistribution_to_Table (PairDistribution me) {
+Table PairDistribution_to_Table (PairDistribution me) {
 	try {
-		autoTable thee = Table_createWithColumnNames (my pairs.size, U"string1 string2 weight");
-		for (long ipair = 1; ipair <= my pairs.size; ipair ++) {
-			PairProbability prob = my pairs.at [ipair];
-			Table_setStringValue (thee.get(), ipair, 1, prob -> string1);
-			Table_setStringValue (thee.get(), ipair, 2, prob -> string2);
-			Table_setNumericValue (thee.get(), ipair, 3, prob -> weight);
+		autoTable thee = Table_createWithColumnNames (my pairs -> size, U"string1 string2 weight");
+		for (long ipair = 1; ipair <= my pairs -> size; ipair ++) {
+			PairProbability prob = static_cast <PairProbability> (my pairs -> item [ipair]);
+			Table_setStringValue (thee.peek(), ipair, 1, prob -> string1);
+			Table_setStringValue (thee.peek(), ipair, 2, prob -> string2);
+			Table_setNumericValue (thee.peek(), ipair, 3, prob -> weight);
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
diff --git a/stat/PairDistribution.h b/stat/PairDistribution.h
index e42c3aa..5dd1911 100644
--- a/stat/PairDistribution.h
+++ b/stat/PairDistribution.h
@@ -24,12 +24,11 @@
 #include "Distributions.h"
 
 #include "PairDistribution_def.h"
+oo_CLASS_CREATE (PairProbability, Data);
+oo_CLASS_CREATE (PairDistribution, Data);
 
-autoPairProbability PairProbability_create (const char32 *string1, const char32 *string2, double weight);
-
-int PairProbability_compare (PairProbability me, PairProbability thee) noexcept;
-
-autoPairDistribution PairDistribution_create ();
+PairProbability PairProbability_create (const char32 *string1, const char32 *string2, double weight);
+PairDistribution PairDistribution_create (void);
 
 const char32 * PairDistribution_getString1 (PairDistribution me, long pairNumber);
 const char32 * PairDistribution_getString2 (PairDistribution me, long pairNumber);
@@ -37,7 +36,7 @@ double PairDistribution_getWeight (PairDistribution me, long pairNumber);
 
 void PairDistribution_add (PairDistribution me, const char32 *string1, const char32 *string2, double weight);
 void PairDistribution_removeZeroWeights (PairDistribution me);
-void PairDistribution_to_Stringses (PairDistribution me, long nout, autoStrings *strings1, autoStrings *strings2);
+void PairDistribution_to_Stringses (PairDistribution me, long nout, Strings *strings1, Strings *strings2);
 void PairDistribution_peekPair (PairDistribution me, char32 **string1, char32 **string2);
 
 void PairDistribution_swapInputsAndOutputs (PairDistribution me);
@@ -46,7 +45,7 @@ double PairDistribution_getFractionCorrect_maximumLikelihood (PairDistribution m
 double PairDistribution_getFractionCorrect_probabilityMatching (PairDistribution me);
 double PairDistribution_Distributions_getFractionCorrect (PairDistribution me, Distributions thee, long column);
 
-autoTable PairDistribution_to_Table (PairDistribution me);
+Table PairDistribution_to_Table (PairDistribution me);
 
 /* End of file PairDistribution.h */
 #endif
diff --git a/stat/PairDistribution_def.h b/stat/PairDistribution_def.h
index 1b385ab..130dc42 100644
--- a/stat/PairDistribution_def.h
+++ b/stat/PairDistribution_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT PairProbability
-oo_DEFINE_CLASS (PairProbability, Daata)
+oo_DEFINE_CLASS (PairProbability, Data)
 
 	oo_STRING (string1)
 	oo_STRING (string2)
@@ -30,9 +30,9 @@ oo_END_CLASS (PairProbability)
 
 
 #define ooSTRUCT PairDistribution
-oo_DEFINE_CLASS (PairDistribution, Daata)
+oo_DEFINE_CLASS (PairDistribution, Data)
 
-	oo_COLLECTION_OF (OrderedOf, pairs, PairProbability, 0)
+	oo_COLLECTION (Ordered, pairs, PairProbability, 0)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/stat/Regression.cpp b/stat/Regression.cpp
index 69b7789..f7482f2 100644
--- a/stat/Regression.cpp
+++ b/stat/Regression.cpp
@@ -1,6 +1,6 @@
 /* Regression.cpp
  *
- * Copyright (C) 2005-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2005-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,34 +39,34 @@
 #include "oo_DESCRIPTION.h"
 #include "Regression_def.h"
 
-Thing_implement (RegressionParameter, Daata, 0);
+Thing_implement (RegressionParameter, Data, 0);
 
 void structRegression :: v_info () {
 	Regression_Parent :: v_info ();
 	MelderInfo_writeLine (U"Factors:");
-	MelderInfo_writeLine (U"   Number of factors: ", our parameters.size);
-	for (long ivar = 1; ivar <= our parameters.size; ivar ++) {
-		RegressionParameter parm = our parameters.at [ivar];
+	MelderInfo_writeLine (U"   Number of factors: ", parameters -> size);
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_writeLine (U"   Factor ", ivar, U": ", parm -> label);
 	}
 	MelderInfo_writeLine (U"Fitted coefficients:");
 	MelderInfo_writeLine (U"   Intercept: ", intercept);
-	for (long ivar = 1; ivar <= our parameters.size; ivar ++) {
-		RegressionParameter parm = our parameters.at [ivar];
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_writeLine (U"   Coefficient of factor ", parm -> label, U": ", parm -> value);
 	}
 	MelderInfo_writeLine (U"Ranges of values:");
-	for (long ivar = 1; ivar <= our parameters.size; ivar ++) {
-		RegressionParameter parm = our parameters.at [ivar];
+	for (long ivar = 1; ivar <= parameters -> size; ivar ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (parameters -> item [ivar]);
 		MelderInfo_writeLine (U"   Range of factor ", parm -> label, U": minimum ",
 			parm -> minimum, U", maximum ", parm -> maximum);
 	}
 }
 
-Thing_implement (Regression, Daata, 0);
+Thing_implement (Regression, Data, 0);
 
 void Regression_init (Regression me) {
-	//my parameters = Ordered_create ();
+	my parameters = Ordered_create ();
 }
 
 void Regression_addParameter (Regression me, const char32 *label, double minimum, double maximum, double value) {
@@ -76,15 +76,15 @@ void Regression_addParameter (Regression me, const char32 *label, double minimum
 		thy minimum = minimum;
 		thy maximum = maximum;
 		thy value = value;
-		my parameters.addItem_move (thee.move());
+		Collection_addItem (my parameters, thee.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": parameter not added.");
 	}
 }
 
 long Regression_getFactorIndexFromFactorName_e (Regression me, const char32 *factorName) {
-	for (long iparm = 1; iparm <= my parameters.size; iparm ++) {
-		RegressionParameter parm = my parameters.at [iparm];
+	for (long iparm = 1; iparm <= my parameters -> size; iparm ++) {
+		RegressionParameter parm = static_cast<RegressionParameter> (my parameters -> item [iparm]);
 		if (Melder_equ (factorName, parm -> label)) return iparm;
 	}
 	Melder_throw (Thing_messageName (me), U" has no parameter named \"", factorName, U"\".");
@@ -92,21 +92,21 @@ long Regression_getFactorIndexFromFactorName_e (Regression me, const char32 *fac
 
 Thing_implement (LinearRegression, Regression, 0);
 
-autoLinearRegression LinearRegression_create () {
+LinearRegression LinearRegression_create (void) {
 	try {
 		autoLinearRegression me = Thing_new (LinearRegression);
-		Regression_init (me.get());
-		return me;
+		Regression_init (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"LinearRegression not created.");
 	}
 }
 
-autoLinearRegression Table_to_LinearRegression (Table me) {
+LinearRegression Table_to_LinearRegression (Table me) {
 	try {
 		long numberOfIndependentVariables = my numberOfColumns - 1, numberOfParameters = my numberOfColumns;
-		long numberOfCells = my rows.size, icell, ivar;
-		if (numberOfParameters < 1)   // includes intercept
+		long numberOfCells = my rows -> size, icell, ivar;
+		if (numberOfParameters < 1)   /* Includes intercept. */
 			Melder_throw (U"Not enough columns (has to be more than 1).");
 		if (numberOfCells < numberOfParameters) {
 			Melder_warning (U"Solution is not unique (more parameters than cases).");
@@ -118,22 +118,22 @@ autoLinearRegression Table_to_LinearRegression (Table me) {
 		for (ivar = 1; ivar <= numberOfIndependentVariables; ivar ++) {
 			double minimum = Table_getMinimum (me, ivar);
 			double maximum = Table_getMaximum (me, ivar);
-			Regression_addParameter (thee.get(), my columnHeaders [ivar]. label, minimum, maximum, 0.0);
+			Regression_addParameter (thee.peek(), my columnHeaders [ivar]. label, minimum, maximum, 0.0);
 		}
 		for (icell = 1; icell <= numberOfCells; icell ++) {
 			for (ivar = 1; ivar < numberOfParameters; ivar ++) {
 				u [icell] [ivar] = Table_getNumericValue_Assert (me, icell, ivar);
 			}
-			u [icell] [numberOfParameters] = 1.0;   // for the intercept
+			u [icell] [numberOfParameters] = 1.0;   /* For the intercept. */
 			b [icell] = Table_getNumericValue_Assert (me, icell, my numberOfColumns);   // the dependent variable
 		}
 		NUMsolveEquation (u.peek(), numberOfCells, numberOfParameters, b.peek(), NUMeps * numberOfCells, x.peek());
 		thy intercept = x [numberOfParameters];
 		for (ivar = 1; ivar <= numberOfIndependentVariables; ivar ++) {
-			RegressionParameter parm = thy parameters.at [ivar];
+			RegressionParameter parm = static_cast<RegressionParameter> (thy parameters -> item [ivar]);
 			parm -> value = x [ivar];
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": linear regression not performed.");
 	}
diff --git a/stat/Regression.h b/stat/Regression.h
index c41b5a6..e1a3535 100644
--- a/stat/Regression.h
+++ b/stat/Regression.h
@@ -22,6 +22,8 @@
 #include "Table.h"
 
 #include "Regression_def.h"
+oo_CLASS_CREATE (RegressionParameter, Data);
+oo_CLASS_CREATE (Regression, Data);
 
 void Regression_init (Regression me);
 void Regression_addParameter (Regression me, const char32 *label, double minimum, double maximum, double value);
@@ -30,9 +32,9 @@ long Regression_getFactorIndexFromFactorName_e (Regression me, const char32 *fac
 Thing_define (LinearRegression, Regression) {
 };
 
-autoLinearRegression LinearRegression_create ();
+LinearRegression LinearRegression_create (void);
 
-autoLinearRegression Table_to_LinearRegression (Table me);
+LinearRegression Table_to_LinearRegression (Table me);
 
 /* End of file Regression.h */
 #endif
diff --git a/stat/Regression_def.h b/stat/Regression_def.h
index ccd9ad2..79cd712 100644
--- a/stat/Regression_def.h
+++ b/stat/Regression_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT RegressionParameter
-oo_DEFINE_CLASS (RegressionParameter, Daata)
+oo_DEFINE_CLASS (RegressionParameter, Data)
 
 	oo_STRING (label)
 	oo_DOUBLE (minimum)
@@ -34,10 +34,10 @@ oo_END_CLASS (RegressionParameter)
 
 
 #define ooSTRUCT Regression
-oo_DEFINE_CLASS (Regression, Daata)
+oo_DEFINE_CLASS (Regression, Data)
 
 	oo_DOUBLE (intercept)
-	oo_COLLECTION_OF (OrderedOf, parameters, RegressionParameter, 0)
+	oo_COLLECTION (Ordered, parameters, RegressionParameter, 0)
 
 	#if oo_DECLARING
 		void v_info ()
diff --git a/stat/Table.cpp b/stat/Table.cpp
index 3002aea..2482732 100644
--- a/stat/Table.cpp
+++ b/stat/Table.cpp
@@ -1,6 +1,6 @@
 /* Table.cpp
  *
- * Copyright (C) 2002-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 2002-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -81,44 +81,44 @@
 #include "oo_DESCRIPTION.h"
 #include "Table_def.h"
 
-Thing_implement (TableRow, Daata, 0);
+Thing_implement (TableRow, Data, 0);
 
-Thing_implement (Table, Daata, 0);
+Thing_implement (Table, Data, 0);
 
 void structTable :: v_info () {
-	our structDaata :: v_info ();
-	MelderInfo_writeLine (U"Number of rows: ", our rows.size);
-	MelderInfo_writeLine (U"Number of columns: ", our numberOfColumns);
+	structData :: v_info ();
+	MelderInfo_writeLine (U"Number of rows: ", rows -> size);
+	MelderInfo_writeLine (U"Number of columns: ", numberOfColumns);
 }
 
 const char32 * structTable :: v_getColStr (long columnNumber) {
-	if (columnNumber < 1 || columnNumber > our numberOfColumns) return nullptr;
-	return our columnHeaders [columnNumber]. label ? our columnHeaders [columnNumber]. label : U"";
+	if (columnNumber < 1 || columnNumber > numberOfColumns) return NULL;
+	return columnHeaders [columnNumber]. label ? columnHeaders [columnNumber]. label : U"";
 }
 
 double structTable :: v_getMatrix (long rowNumber, long columnNumber) {
-	if (rowNumber < 1 || rowNumber > our rows.size) return NUMundefined;
-	if (columnNumber < 1 || columnNumber > our numberOfColumns) return NUMundefined;
-	char32 *stringValue = our rows.at [rowNumber] -> cells [columnNumber]. string;
-	return stringValue ? Melder_atof (stringValue) : NUMundefined;
+	if (rowNumber < 1 || rowNumber > rows -> size) return NUMundefined;
+	if (columnNumber < 1 || columnNumber > numberOfColumns) return NUMundefined;
+	char32 *stringValue = ((TableRow) rows -> item [rowNumber]) -> cells [columnNumber]. string;
+	return stringValue == NULL ? NUMundefined : Melder_atof (stringValue);
 }
 
 const char32 * structTable :: v_getMatrixStr (long rowNumber, long columnNumber) {
-	if (rowNumber < 1 || rowNumber > our rows.size) return U"";
-	if (columnNumber < 1 || columnNumber > our numberOfColumns) return U"";
-	char32 *stringValue = our rows.at [rowNumber] -> cells [columnNumber]. string;
-	return stringValue ? stringValue : U"";
+	if (rowNumber < 1 || rowNumber > rows -> size) return U"";
+	if (columnNumber < 1 || columnNumber > numberOfColumns) return U"";
+	char32 *stringValue = ((TableRow) rows -> item [rowNumber]) -> cells [columnNumber]. string;
+	return stringValue == NULL ? U"" : stringValue;
 }
 
 double structTable :: v_getColIndex (const char32 *columnLabel) {
 	return Table_findColumnIndexFromColumnLabel (this, columnLabel);
 }
 
-static autoTableRow TableRow_create (long numberOfColumns) {
+static TableRow TableRow_create (long numberOfColumns) {
 	autoTableRow me = Thing_new (TableRow);
 	my numberOfColumns = numberOfColumns;
 	my cells = NUMvector <structTableCell> (1, numberOfColumns);
-	return me;
+	return me.transfer();
 }
 
 void Table_initWithoutColumnNames (Table me, long numberOfRows, long numberOfColumns) {
@@ -126,16 +126,17 @@ void Table_initWithoutColumnNames (Table me, long numberOfRows, long numberOfCol
 		Melder_throw (U"Cannot create table without columns.");
 	my numberOfColumns = numberOfColumns;
 	my columnHeaders = NUMvector <structTableColumnHeader> (1, numberOfColumns);
+	my rows = Ordered_create ();
 	for (long irow = 1; irow <= numberOfRows; irow ++) {
 		Table_appendRow (me);
 	}
 }
 
-autoTable Table_createWithoutColumnNames (long numberOfRows, long numberOfColumns) {
+Table Table_createWithoutColumnNames (long numberOfRows, long numberOfColumns) {
 	try {
 		autoTable me = Thing_new (Table);
-		Table_initWithoutColumnNames (me.get(), numberOfRows, numberOfColumns);
-		return me;
+		Table_initWithoutColumnNames (me.peek(), numberOfRows, numberOfColumns);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created.");
 	}
@@ -144,17 +145,17 @@ autoTable Table_createWithoutColumnNames (long numberOfRows, long numberOfColumn
 void Table_initWithColumnNames (Table me, long numberOfRows, const char32 *columnNames) {
 	Table_initWithoutColumnNames (me, numberOfRows, Melder_countTokens (columnNames));
 	long icol = 0;
-	for (char32 *columnName = Melder_firstToken (columnNames); columnName; columnName = Melder_nextToken ()) {
+	for (char32 *columnName = Melder_firstToken (columnNames); columnName != NULL; columnName = Melder_nextToken ()) {
 		icol ++;
 		Table_setColumnLabel (me, icol, columnName);
 	}
 }
 
-autoTable Table_createWithColumnNames (long numberOfRows, const char32 *columnNames) {
+Table Table_createWithColumnNames (long numberOfRows, const char32 *columnNames) {
 	try {
 		autoTable me = Thing_new (Table);
-		Table_initWithColumnNames (me.get(), numberOfRows, columnNames);
-		return me;
+		Table_initWithColumnNames (me.peek(), numberOfRows, columnNames);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table not created.");
 	}
@@ -163,7 +164,7 @@ autoTable Table_createWithColumnNames (long numberOfRows, const char32 *columnNa
 void Table_appendRow (Table me) {
 	try {
 		autoTableRow row = TableRow_create (my numberOfColumns);
-		my rows. addItem_move (row.move());
+		Collection_addItem (my rows, row.transfer());
 	} catch (MelderError) {
 		Melder_throw (me, U": row not appended.");
 	}
@@ -180,18 +181,18 @@ void Table_appendColumn (Table me, const char32 *label) {
 void Table_checkSpecifiedRowNumberWithinRange (Table me, long rowNumber) {
 	if (rowNumber < 1)
 		Melder_throw (me, U": the specified row number is ", rowNumber, U", but should be at least 1.");
-	if (rowNumber > my rows.size)
-		Melder_throw (me, U": the specified row number (", rowNumber, U") exceeds my number of rows (", my rows.size, U").");
+	if (rowNumber > my rows -> size)
+		Melder_throw (me, U": the specified row number (", rowNumber, U") exceeds my number of rows (", my rows -> size, U").");
 }
 
 void Table_removeRow (Table me, long rowNumber) {
 	try {
-		if (my rows.size == 1)
+		if (my rows -> size == 1)
 			Melder_throw (me, U": cannot remove my only row.");
 		Table_checkSpecifiedRowNumberWithinRange (me, rowNumber);
-		my rows. removeItem (rowNumber);
+		Collection_removeItem (my rows, rowNumber);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++)
-			my columnHeaders [icol]. numericized = false;
+			my columnHeaders [icol]. numericized = FALSE;
 	} catch (MelderError) {
 		Melder_throw (me, U": row ", rowNumber, U" not removed.");
 	}
@@ -215,8 +216,8 @@ void Table_removeColumn (Table me, long columnNumber) {
 		Melder_free (my columnHeaders [columnNumber]. label);
 		for (long icol = columnNumber; icol < my numberOfColumns; icol ++)
 			my columnHeaders [icol] = my columnHeaders [icol + 1];
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			Melder_free (row -> cells [columnNumber]. string);
 			for (long icol = columnNumber; icol < row -> numberOfColumns; icol ++)
 				row -> cells [icol] = row -> cells [icol + 1];
@@ -235,18 +236,18 @@ void Table_insertRow (Table me, long rowNumber) {
 		 */
 		if (rowNumber < 1)
 			Melder_throw (me, U": the specified row number is ", rowNumber, U", but should be at least 1.");
-		if (rowNumber > my rows.size + 1)
-			Melder_throw (me, U": the specified row number is ", rowNumber, U", but should be at most my number of rows (", my rows.size, U") plus 1.");
+		if (rowNumber > my rows -> size + 1)
+			Melder_throw (me, U": the specified row number is ", rowNumber, U", but should be at most my number of rows (", my rows -> size, U") plus 1.");
 		autoTableRow row = TableRow_create (my numberOfColumns);
 		/*
 		 * Safe change.
 		 */
-		my rows. addItemAtPosition_move (row.move(), rowNumber);
+		Ordered_addItemPos (my rows, row.transfer(), rowNumber);
 		/*
 		 * Changes without error.
 		 */
 		for (long icol = 1; icol <= my numberOfColumns; icol ++)
-			my columnHeaders [icol]. numericized = false;
+			my columnHeaders [icol]. numericized = FALSE;
 	} catch (MelderError) {
 		Melder_throw (me, U": row ", rowNumber, U" not inserted.");
 	}
@@ -262,7 +263,7 @@ void Table_insertColumn (Table me, long columnNumber, const char32 *label /* cat
 		if (columnNumber > my numberOfColumns + 1)
 			Melder_throw (me, U": the specified column number is ", columnNumber, U", but should be at most my number of columns (", my numberOfColumns, U") plus 1.");
 		autostring32 newLabel = Melder_dup (label);
-		autoTable thee = Table_createWithoutColumnNames (my rows.size, my numberOfColumns + 1);
+		autoTable thee = Table_createWithoutColumnNames (my rows -> size, my numberOfColumns + 1);
 		/*
 		 * Changes without error.
 		 */
@@ -270,34 +271,33 @@ void Table_insertColumn (Table me, long columnNumber, const char32 *label /* cat
 		 * Transfer column headers to larger structure.
 		 */
 		for (long icol = 1; icol < columnNumber; icol ++) {
-			Melder_assert (! thy columnHeaders [icol]. label);   // make room...
+			Melder_assert (thy columnHeaders [icol]. label == NULL);   // make room...
 			thy columnHeaders [icol] = my columnHeaders [icol];   // ...fill in and dangle...
-			my columnHeaders [icol]. label = nullptr;   // ...undangle
+			my columnHeaders [icol]. label = NULL;   // ...undangle
 		}
 		thy columnHeaders [columnNumber]. label = newLabel.transfer();
 		thy columnHeaders [columnNumber]. numericized = false;
 		for (long icol = my numberOfColumns + 1; icol > columnNumber; icol --) {
-			Melder_assert (! thy columnHeaders [icol]. label);   // make room...
+			Melder_assert (thy columnHeaders [icol]. label == NULL);   // make room...
 			thy columnHeaders [icol] = my columnHeaders [icol - 1];   // ...fill in and dangle...
-			my columnHeaders [icol - 1]. label = nullptr;   // ...undangle
+			my columnHeaders [icol - 1]. label = NULL;   // ...undangle
 		}
 		/*
 		 * Transfer rows to larger structure.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			TableRow thyRow = thy rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]), thyRow = static_cast <TableRow> (thy rows -> item [irow]);
 			for (long icol = 1; icol < columnNumber; icol ++) {
-				Melder_assert (! thyRow -> cells [icol]. string);   // make room...
+				Melder_assert (thyRow -> cells [icol]. string == NULL);   // make room...
 				thyRow -> cells [icol] = myRow -> cells [icol];   // ...fill in and dangle...
-				myRow -> cells [icol]. string = nullptr;   // ...undangle
+				myRow -> cells [icol]. string = NULL;   // ...undangle
 			}
-			Melder_assert (! thyRow -> cells [columnNumber]. string);
+			Melder_assert (thyRow -> cells [columnNumber]. string == NULL);
 			Melder_assert (thyRow -> cells [columnNumber]. number == 0.0);
 			for (long icol = myRow -> numberOfColumns + 1; icol > columnNumber; icol --) {
-				Melder_assert (! thyRow -> cells [icol]. string);   // make room...
+				Melder_assert (thyRow -> cells [icol]. string == NULL);   // make room...
 				thyRow -> cells [icol] = myRow -> cells [icol - 1];   // ...fill in and dangle...
-				myRow -> cells [icol - 1]. string = nullptr;   // ...undangle
+				myRow -> cells [icol - 1]. string = NULL;   // ...undangle
 			}
 		}
 		/*
@@ -305,11 +305,13 @@ void Table_insertColumn (Table me, long columnNumber, const char32 *label /* cat
 		 */
 		NUMvector_free <structTableColumnHeader> (my columnHeaders, 1);   // make room...
 		my columnHeaders = thy columnHeaders;   // ...fill in and dangle...
-		thy columnHeaders = nullptr;   // ...undangle
+		thy columnHeaders = NULL;   // ...undangle
 		/*
 		 * Transfer larger structure with rows to me.
 		 */
-		my rows = thy rows.move();
+		forget (my rows);   // make room...
+		my rows = thy rows;   // ...fill in and dangle...
+		thy rows = NULL;   // ...undangle
 		/*
 		 * Update my state.
 		 */
@@ -336,7 +338,7 @@ void Table_setColumnLabel (Table me, long columnNumber, const char32 *label /* c
 	}
 }
 
-long Table_findColumnIndexFromColumnLabel (Table me, const char32 *label) noexcept {
+long Table_findColumnIndexFromColumnLabel (Table me, const char32 *label) {
 	for (long icol = 1; icol <= my numberOfColumns; icol ++)
 		if (my columnHeaders [icol]. label && str32equ (my columnHeaders [icol]. label, label))
 			return icol;
@@ -350,22 +352,22 @@ long Table_getColumnIndexFromColumnLabel (Table me, const char32 *columnLabel) {
 	return columnNumber;
 }
 
-long * Table_getColumnIndicesFromColumnLabelString (Table me, const char32 *string, long *ptr_numberOfTokens) {
-	autoMelderTokens tokens (string);
-	if (tokens.count() < 1)
+long * Table_getColumnIndicesFromColumnLabelString (Table me, const char32 *string, long *numberOfTokens) {
+	*numberOfTokens = 0;
+	autoMelderTokens tokens (string, numberOfTokens);
+	if (*numberOfTokens < 1)
 		Melder_throw (me, U": you specified an empty list of columns.");
-	autoNUMvector <long> columns (1, tokens.count());
-	for (long icol = 1; icol <= tokens.count(); icol ++) {
+	autoNUMvector <long> columns (1, *numberOfTokens);
+	for (long icol = 1; icol <= *numberOfTokens; icol ++) {
 		columns [icol] = Table_getColumnIndexFromColumnLabel (me, tokens [icol]);
 	}
-	*ptr_numberOfTokens = tokens.count();
 	return columns.transfer();
 }
 
-long Table_searchColumn (Table me, long columnNumber, const char32 *value) noexcept {
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
-		if (row -> cells [columnNumber]. string && str32equ (row -> cells [columnNumber]. string, value))
+long Table_searchColumn (Table me, long columnNumber, const char32 *value) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+		if (row -> cells [columnNumber]. string != NULL && str32equ (row -> cells [columnNumber]. string, value))
 			return irow;
 	}
 	return 0;
@@ -382,10 +384,10 @@ void Table_setStringValue (Table me, long rowNumber, long columnNumber, const ch
 		/*
 		 * Change without errors.
 		 */
-		TableRow row = my rows.at [rowNumber];
+		TableRow row = static_cast <TableRow> (my rows -> item [rowNumber]);
 		Melder_free (row -> cells [columnNumber]. string);
 		row -> cells [columnNumber]. string = newValue.transfer();
-		my columnHeaders [columnNumber]. numericized = false;
+		my columnHeaders [columnNumber]. numericized = FALSE;
 	} catch (MelderError) {
 		Melder_throw (me, U": string value not set.");
 	}
@@ -402,21 +404,21 @@ void Table_setNumericValue (Table me, long rowNumber, long columnNumber, double
 		/*
 		 * Change without errors.
 		 */
-		TableRow row = my rows.at [rowNumber];
+		TableRow row = static_cast <TableRow> (my rows -> item [rowNumber]);
 		Melder_free (row -> cells [columnNumber]. string);
 		row -> cells [columnNumber]. string = newValue.transfer();
-		my columnHeaders [columnNumber]. numericized = false;
+		my columnHeaders [columnNumber]. numericized = FALSE;
 	} catch (MelderError) {
 		Melder_throw (me, U": numeric value not set.");
 	}
 }
 
 bool Table_isCellNumeric_ErrorFalse (Table me, long rowNumber, long columnNumber) {
-	if (rowNumber < 1 || rowNumber > my rows.size) return false;
+	if (rowNumber < 1 || rowNumber > my rows -> size) return false;
 	if (columnNumber < 1 || columnNumber > my numberOfColumns) return false;
-	TableRow row = my rows.at [rowNumber];
+	TableRow row = static_cast <TableRow> (my rows -> item [rowNumber]);
 	const char32 *cell = row -> cells [columnNumber]. string;
-	if (! cell) return true;   // the value --undefined--
+	if (cell == NULL) return true;   // the value --undefined--
 	/*
 	 * Skip leading white space, in order to separately detect "?" and "--undefined--".
 	 */
@@ -435,7 +437,7 @@ bool Table_isCellNumeric_ErrorFalse (Table me, long rowNumber, long columnNumber
 
 bool Table_isColumnNumeric_ErrorFalse (Table me, long columnNumber) {
 	if (columnNumber < 1 || columnNumber > my numberOfColumns) return false;
-	for (long irow = 1; irow <= my rows.size; irow ++) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
 		if (! Table_isCellNumeric_ErrorFalse (me, irow, columnNumber)) return false;
 	}
 	return true;
@@ -453,7 +455,7 @@ static int stringCompare_NoError (const void *first, const void *second) {
 static void sortRowsByStrings_Assert (Table me, long columnNumber) {
 	Melder_assert (columnNumber >= 1 && columnNumber <= my numberOfColumns);
 	stringCompare_column = columnNumber;
-	qsort (& my rows.at [1], (unsigned long) my rows.size, sizeof (TableRow), stringCompare_NoError);
+	qsort (& my rows -> item [1], (unsigned long) my rows -> size, sizeof (TableRow), stringCompare_NoError);
 }
 
 static int indexCompare_NoError (const void *first, const void *second) {
@@ -464,33 +466,33 @@ static int indexCompare_NoError (const void *first, const void *second) {
 }
 
 static void sortRowsByIndex_NoError (Table me) {
-	qsort (& my rows.at [1], (unsigned long) my rows.size, sizeof (TableRow), indexCompare_NoError);
+	qsort (& my rows -> item [1], (unsigned long) my rows -> size, sizeof (TableRow), indexCompare_NoError);
 }
 
 void Table_numericize_Assert (Table me, long columnNumber) {
 	Melder_assert (columnNumber >= 1 && columnNumber <= my numberOfColumns);
 	if (my columnHeaders [columnNumber]. numericized) return;
 	if (Table_isColumnNumeric_ErrorFalse (me, columnNumber)) {
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			const char32 *string = row -> cells [columnNumber]. string;
 			row -> cells [columnNumber]. number =
-				! string || string [0] == U'\0' || (string [0] == U'?' && string [1] == U'\0') ? NUMundefined :
+				string == NULL || string [0] == U'\0' || (string [0] == U'?' && string [1] == U'\0') ? NUMundefined :
 				Melder_atof (string);
 		}
 	} else {
 		long iunique = 0;
-		const char32 *previousString = nullptr;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		const char32 *previousString = NULL;
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			row -> sortingIndex = irow;
 		}
 		sortRowsByStrings_Assert (me, columnNumber);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			const char32 *string = row -> cells [columnNumber]. string;
-			if (! string) string = U"";
-			if (! previousString || ! str32equ (string, previousString)) {
+			if (string == NULL) string = U"";
+			if (previousString == NULL || ! str32equ (string, previousString)) {
 				iunique ++;
 			}
 			row -> cells [columnNumber]. number = iunique;
@@ -498,13 +500,13 @@ void Table_numericize_Assert (Table me, long columnNumber) {
 		}
 		sortRowsByIndex_NoError (me);
 	}
-	my columnHeaders [columnNumber]. numericized = true;
+	my columnHeaders [columnNumber]. numericized = TRUE;
 }
 
 static void Table_numericize_checkDefined (Table me, long columnNumber) {
 	Table_numericize_Assert (me, columnNumber);
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		if (row -> cells [columnNumber]. number == NUMundefined)
 			Melder_throw (me, U": the cell in row ", irow,
 				U" of column \"", my columnHeaders [columnNumber]. label ? my columnHeaders [columnNumber]. label : Melder_integer (columnNumber),
@@ -513,16 +515,16 @@ static void Table_numericize_checkDefined (Table me, long columnNumber) {
 }
 
 const char32 * Table_getStringValue_Assert (Table me, long rowNumber, long columnNumber) {
-	Melder_assert (rowNumber >= 1 && rowNumber <= my rows.size);
+	Melder_assert (rowNumber >= 1 && rowNumber <= my rows -> size);
 	Melder_assert (columnNumber >= 1 && columnNumber <= my numberOfColumns);
-	TableRow row = my rows.at [rowNumber];
+	TableRow row = static_cast <TableRow> (my rows -> item [rowNumber]);
 	return row -> cells [columnNumber]. string ? row -> cells [columnNumber]. string : U"";
 }
 
 double Table_getNumericValue_Assert (Table me, long rowNumber, long columnNumber) {
-	Melder_assert (rowNumber >= 1 && rowNumber <= my rows.size);
+	Melder_assert (rowNumber >= 1 && rowNumber <= my rows -> size);
 	Melder_assert (columnNumber >= 1 && columnNumber <= my numberOfColumns);
-	TableRow row = my rows.at [rowNumber];
+	TableRow row = static_cast <TableRow> (my rows -> item [rowNumber]);
 	Table_numericize_Assert (me, columnNumber);
 	return row -> cells [columnNumber]. number;
 }
@@ -531,14 +533,14 @@ double Table_getMean (Table me, long columnNumber) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_checkDefined (me, columnNumber);
-		if (my rows.size < 1)
+		if (my rows -> size < 1)
 			return NUMundefined;
 		double sum = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			sum += row -> cells [columnNumber]. number;
 		}
-		return sum / my rows.size;
+		return sum / my rows -> size;
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot compute mean of column ", columnNumber, U".");
 	}
@@ -548,12 +550,12 @@ double Table_getMaximum (Table me, long columnNumber) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_checkDefined (me, columnNumber);
-		if (my rows.size < 1)
+		if (my rows -> size < 1)
 			return NUMundefined;
-		TableRow firstRow = my rows.at [1];
+		TableRow firstRow = static_cast <TableRow> (my rows -> item [1]);
 		double maximum = firstRow -> cells [columnNumber]. number;
-		for (long irow = 2; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 2; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			if (row -> cells [columnNumber]. number > maximum)
 				maximum = row -> cells [columnNumber]. number;
 		}
@@ -567,12 +569,12 @@ double Table_getMinimum (Table me, long columnNumber) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_checkDefined (me, columnNumber);
-		if (my rows.size < 1)
+		if (my rows -> size < 1)
 			return NUMundefined;
-		TableRow firstRow = my rows.at [1];
+		TableRow firstRow = static_cast <TableRow> (my rows -> item [1]);
 		double minimum = firstRow -> cells [columnNumber]. number;
-		for (long irow = 2; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 2; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			if (row -> cells [columnNumber]. number < minimum)
 				minimum = row -> cells [columnNumber]. number;
 		}
@@ -588,8 +590,8 @@ double Table_getGroupMean (Table me, long columnNumber, long groupColumnNumber,
 		Table_numericize_checkDefined (me, columnNumber);
 		long n = 0;
 		double sum = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			if (Melder_equ (row -> cells [groupColumnNumber]. string, group)) {
 				n += 1;
 				sum += row -> cells [columnNumber]. number;
@@ -607,15 +609,15 @@ double Table_getQuantile (Table me, long columnNumber, double quantile) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_checkDefined (me, columnNumber);
-		if (my rows.size < 1)
+		if (my rows -> size < 1)
 			return NUMundefined;
-		autoNUMvector <double> sortingColumn (1, my rows.size);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		autoNUMvector <double> sortingColumn (1, my rows -> size);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			sortingColumn [irow] = row -> cells [columnNumber]. number;
 		}
-		NUMsort_d (my rows.size, sortingColumn.peek());
-		return NUMquantile (my rows.size, sortingColumn.peek(), quantile);
+		NUMsort_d (my rows -> size, sortingColumn.peek());
+		return NUMquantile (my rows -> size, sortingColumn.peek(), quantile);
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot compute the ", quantile, U" quantile of column ", columnNumber, U".");
 	}
@@ -624,15 +626,15 @@ double Table_getQuantile (Table me, long columnNumber, double quantile) {
 double Table_getStdev (Table me, long columnNumber) {
 	try {
 		double mean = Table_getMean (me, columnNumber);   // already checks for columnNumber and undefined cells
-		if (my rows.size < 2)
+		if (my rows -> size < 2)
 			return NUMundefined;
 		double sum = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			double d = row -> cells [columnNumber]. number - mean;
 			sum += d * d;
 		}
-		return sqrt (sum / (my rows.size - 1));
+		return sqrt (sum / (my rows -> size - 1));
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot compute the standard deviation of column ", columnNumber, U".");
 	}
@@ -642,11 +644,11 @@ long Table_drawRowFromDistribution (Table me, long columnNumber) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_checkDefined (me, columnNumber);
-		if (my rows.size < 1)
+		if (my rows -> size < 1)
 			Melder_throw (me, U": no rows.");
 		double total = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			total += row -> cells [columnNumber]. number;
 		}
 		if (total <= 0.0)
@@ -654,19 +656,19 @@ long Table_drawRowFromDistribution (Table me, long columnNumber) {
 		long irow;
 		do {
 			double rand = NUMrandomUniform (0, total), sum = 0.0;
-			for (irow = 1; irow <= my rows.size; irow ++) {
-				TableRow row = my rows.at [irow];
+			for (irow = 1; irow <= my rows -> size; irow ++) {
+				TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 				sum += row -> cells [columnNumber]. number;
 				if (rand <= sum) break;
 			}
-		} while (irow > my rows.size);   // guard against rounding errors
+		} while (irow > my rows -> size);   // guard against rounding errors
 		return irow;
 	} catch (MelderError) {
 		Melder_throw (me, U": cannot draw a row from the distribution of column ", columnNumber, U".");
 	}
 }
 
-autoTable Table_extractRowsWhereColumn_number (Table me, long columnNumber, int which_Melder_NUMBER, double criterion) {
+Table Table_extractRowsWhereColumn_number (Table me, long columnNumber, int which_Melder_NUMBER, double criterion) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		Table_numericize_Assert (me, columnNumber);   // extraction should work even if cells are not defined
@@ -674,23 +676,23 @@ autoTable Table_extractRowsWhereColumn_number (Table me, long columnNumber, int
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			thy columnHeaders [icol]. label = Melder_dup (my columnHeaders [icol]. label);
 		}
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			if (Melder_numberMatchesCriterion (row -> cells [columnNumber]. number, which_Melder_NUMBER, criterion)) {
 				autoTableRow newRow = Data_copy (row);
-				thy rows. addItem_move (newRow.move());
+				Collection_addItem (thy rows, newRow.transfer());
 			}
 		}
-		if (thy rows.size == 0) {
+		if (thy rows -> size == 0) {
 			Melder_warning (U"No row matches criterion.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rows not extracted.");
 	}
 }
 
-autoTable Table_extractRowsWhereColumn_string (Table me, long columnNumber, int which_Melder_STRING, const char32 *criterion) {
+Table Table_extractRowsWhereColumn_string (Table me, long columnNumber, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, columnNumber);
 		autoTable thee = Table_create (0, my numberOfColumns);
@@ -698,17 +700,17 @@ autoTable Table_extractRowsWhereColumn_string (Table me, long columnNumber, int
 			autostring32 newLabel = Melder_dup (my columnHeaders [icol]. label);
 			thy columnHeaders [icol]. label = newLabel.transfer();
 		}
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			if (Melder_stringMatchesCriterion (row -> cells [columnNumber]. string, which_Melder_STRING, criterion)) {
 				autoTableRow newRow = Data_copy (row);
-				thy rows. addItem_move (newRow.move());
+				Collection_addItem (thy rows, newRow.transfer());
 			}
 		}
-		if (thy rows.size == 0) {
+		if (thy rows -> size == 0) {
 			Melder_warning (U"No row matches criterion.");
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rows not extracted.");
 	}
@@ -730,60 +732,55 @@ static void Table_columns_checkCrossSectionEmpty (char32 **factors, long nfactor
 	}
 }
 
-autoTable Table_collapseRows (Table me, const char32 *factors_string, const char32 *columnsToSum_string,
+Table Table_collapseRows (Table me, const char32 *factors_string, const char32 *columnsToSum_string,
 	const char32 *columnsToAverage_string, const char32 *columnsToMedianize_string,
 	const char32 *columnsToAverageLogarithmically_string, const char32 *columnsToMedianizeLogarithmically_string)
 {
 	bool originalChanged = false;
 	try {
-		Melder_assert (factors_string);
+		Melder_assert (factors_string != NULL);
 
 		/*
 		 * Parse the six strings of tokens.
 		 */
-		autoMelderTokens factors (factors_string);
-		long numberOfFactors = factors.count();
+		long numberOfFactors;
+		autoMelderTokens factors (factors_string, & numberOfFactors);
 		if (numberOfFactors < 1)
 			Melder_throw (U"In order to pool table data, you must supply at least one independent variable.");
 		Table_columns_checkExist (me, factors.peek(), numberOfFactors);
 
-		autoMelderTokens columnsToSum;
 		long numberToSum = 0;
+		autoMelderTokens columnsToSum;
 		if (columnsToSum_string) {
-			columnsToSum.reset (columnsToSum_string);
-			numberToSum = columnsToSum.count();
+			columnsToSum.reset (columnsToSum_string, & numberToSum);
 			Table_columns_checkExist (me, columnsToSum.peek(), numberToSum);
 			Table_columns_checkCrossSectionEmpty (factors.peek(), numberOfFactors, columnsToSum.peek(), numberToSum);
 		}
-		autoMelderTokens columnsToAverage;
 		long numberToAverage = 0;
+		autoMelderTokens columnsToAverage;
 		if (columnsToAverage_string) {
-			columnsToAverage.reset (columnsToAverage_string);
-			numberToAverage = columnsToAverage.count();
+			columnsToAverage.reset (columnsToAverage_string, & numberToAverage);
 			Table_columns_checkExist (me, columnsToAverage.peek(), numberToAverage);
 			Table_columns_checkCrossSectionEmpty (factors.peek(), numberOfFactors, columnsToAverage.peek(), numberToAverage);
 		}
-		autoMelderTokens columnsToMedianize;
 		long numberToMedianize = 0;
+		autoMelderTokens columnsToMedianize;
 		if (columnsToMedianize_string) {
-			columnsToMedianize.reset (columnsToMedianize_string);
-			numberToMedianize = columnsToMedianize.count();
+			columnsToMedianize.reset (columnsToMedianize_string, & numberToMedianize);
 			Table_columns_checkExist (me, columnsToMedianize.peek(), numberToMedianize);
 			Table_columns_checkCrossSectionEmpty (factors.peek(), numberOfFactors, columnsToMedianize.peek(), numberToMedianize);
 		}
-		autoMelderTokens columnsToAverageLogarithmically;
 		long numberToAverageLogarithmically = 0;
+		autoMelderTokens columnsToAverageLogarithmically;
 		if (columnsToAverageLogarithmically_string) {
-			columnsToAverageLogarithmically.reset (columnsToAverageLogarithmically_string);
-			numberToAverageLogarithmically = columnsToAverageLogarithmically.count();
+			columnsToAverageLogarithmically.reset (columnsToAverageLogarithmically_string, & numberToAverageLogarithmically);
 			Table_columns_checkExist (me, columnsToAverageLogarithmically.peek(), numberToAverageLogarithmically);
 			Table_columns_checkCrossSectionEmpty (factors.peek(), numberOfFactors, columnsToAverageLogarithmically.peek(), numberToAverageLogarithmically);
 		}
-		autoMelderTokens columnsToMedianizeLogarithmically;
 		long numberToMedianizeLogarithmically = 0;
+		autoMelderTokens columnsToMedianizeLogarithmically;
 		if (columnsToMedianizeLogarithmically_string) {
-			columnsToMedianizeLogarithmically.reset (columnsToMedianizeLogarithmically_string);
-			numberToMedianizeLogarithmically = columnsToMedianizeLogarithmically.count();
+			columnsToMedianizeLogarithmically.reset (columnsToMedianizeLogarithmically_string, & numberToMedianizeLogarithmically);
 			Table_columns_checkExist (me, columnsToMedianizeLogarithmically.peek(), numberToMedianizeLogarithmically);
 			Table_columns_checkCrossSectionEmpty (factors.peek(), numberOfFactors, columnsToMedianizeLogarithmically.peek(), numberToMedianizeLogarithmically);
 		}
@@ -794,7 +791,7 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 
 		autoNUMvector <double> sortingColumn;
 		if (numberToMedianize > 0 || numberToMedianizeLogarithmically > 0) {
-			sortingColumn.reset (1, my rows.size);
+			sortingColumn.reset (1, my rows -> size);
 		}
 		/*
 		 * Set the column names. Within the dependent variables, the same name may occur more than once.
@@ -803,27 +800,27 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 		{
 			long icol = 0;
 			for (long i = 1; i <= numberOfFactors; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, factors [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, factors [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, factors [i]);
 			}
 			for (long i = 1; i <= numberToSum; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, columnsToSum [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, columnsToSum [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, columnsToSum [i]);
 			}
 			for (long i = 1; i <= numberToAverage; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, columnsToAverage [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, columnsToAverage [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, columnsToAverage [i]);
 			}
 			for (long i = 1; i <= numberToMedianize; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, columnsToMedianize [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, columnsToMedianize [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, columnsToMedianize [i]);
 			}
 			for (long i = 1; i <= numberToAverageLogarithmically; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, columnsToAverageLogarithmically [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, columnsToAverageLogarithmically [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, columnsToAverageLogarithmically [i]);
 			}
 			for (long i = 1; i <= numberToMedianizeLogarithmically; i ++) {
-				Table_setColumnLabel (thee.get(), ++ icol, columnsToMedianizeLogarithmically [i]);
+				Table_setColumnLabel (thee.peek(), ++ icol, columnsToMedianizeLogarithmically [i]);
 				columns [icol] = Table_findColumnIndexFromColumnLabel (me, columnsToMedianizeLogarithmically [i]);
 			}
 			Melder_assert (icol == thy numberOfColumns);
@@ -839,8 +836,8 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 		 * (This is safe: the sorting index may change only vacuously when numericizing.)
 		 * But this cannot be done before the previous block!
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			row -> sortingIndex = irow;
 		}
 		/*
@@ -851,14 +848,14 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 		/*
 		 * Find stretches of identical factors.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			long rowmin = irow, rowmax = irow;
 			for (;;) {
 				bool identical = true;
-				if (++ rowmax > my rows.size) break;
+				if (++ rowmax > my rows -> size) break;
 				for (long icol = 1; icol <= numberOfFactors; icol ++) {
-					if (my rows.at [rowmax] -> cells [columns [icol]]. number !=
-						my rows.at [rowmin] -> cells [columns [icol]]. number)
+					if (((TableRow) my rows -> item [rowmax]) -> cells [columns [icol]]. number !=
+						((TableRow) my rows -> item [rowmin]) -> cells [columns [icol]]. number)
 					{
 						identical = false;
 						break;
@@ -870,44 +867,44 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 			/*
 			 * We have the stretch.
 			 */
-			Table_insertRow (thee.get(), thy rows.size + 1);
+			Table_insertRow (thee.peek(), thy rows -> size + 1);
 			{
 				long icol = 0;
 				for (long i = 1; i <= numberOfFactors; i ++) {
 					++ icol;
-					Table_setStringValue (thee.get(), thy rows.size, icol,
-						my rows.at [rowmin] -> cells [columns [icol]]. string);
+					Table_setStringValue (thee.peek(), thy rows -> size, icol,
+						((TableRow) my rows -> item [rowmin]) -> cells [columns [icol]]. string);
 				}
 				for (long i = 1; i <= numberToSum; i ++) {
 					++ icol;
 					double sum = 0.0;
 					for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-						sum += my rows.at [jrow] -> cells [columns [icol]]. number;
+						sum += ((TableRow) my rows -> item [jrow]) -> cells [columns [icol]]. number;
 					}
-					Table_setNumericValue (thee.get(), thy rows.size, icol, sum);
+					Table_setNumericValue (thee.peek(), thy rows -> size, icol, sum);
 				}
 				for (long i = 1; i <= numberToAverage; i ++) {
 					++ icol;
 					double sum = 0.0;
 					for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-						sum += my rows.at [jrow] -> cells [columns [icol]]. number;
+						sum += ((TableRow) my rows -> item [jrow]) -> cells [columns [icol]]. number;
 					}
-					Table_setNumericValue (thee.get(), thy rows.size, icol, sum / (rowmax - rowmin + 1));
+					Table_setNumericValue (thee.peek(), thy rows -> size, icol, sum / (rowmax - rowmin + 1));
 				}
 				for (long i = 1; i <= numberToMedianize; i ++) {
 					++ icol;
 					for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-						sortingColumn [jrow] = my rows.at [jrow] -> cells [columns [icol]]. number;
+						sortingColumn [jrow] = ((TableRow) my rows -> item [jrow]) -> cells [columns [icol]]. number;
 					}
 					NUMsort_d (rowmax - rowmin + 1, & sortingColumn [rowmin - 1]);
 					double median = NUMquantile (rowmax - rowmin + 1, & sortingColumn [rowmin - 1], 0.5);
-					Table_setNumericValue (thee.get(), thy rows.size, icol, median);
+					Table_setNumericValue (thee.peek(), thy rows -> size, icol, median);
 				}
 				for (long i = 1; i <= numberToAverageLogarithmically; i ++) {
 					++ icol;
 					double sum = 0.0;
 					for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-						double value = my rows.at [jrow] -> cells [columns [icol]]. number;
+						double value = ((TableRow) my rows -> item [jrow]) -> cells [columns [icol]]. number;
 						if (value <= 0.0)
 							Melder_throw (
 								U"The cell in column \"", columnsToAverageLogarithmically [i],
@@ -915,12 +912,12 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 								U" is not positive.\nCannot average logarithmically.");
 						sum += log (value);
 					}
-					Table_setNumericValue (thee.get(), thy rows.size, icol, exp (sum / (rowmax - rowmin + 1)));
+					Table_setNumericValue (thee.peek(), thy rows -> size, icol, exp (sum / (rowmax - rowmin + 1)));
 				}
 				for (long i = 1; i <= numberToMedianizeLogarithmically; i ++) {
 					++ icol;
 					for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-						double value = my rows.at [jrow] -> cells [columns [icol]]. number;
+						double value = ((TableRow) my rows -> item [jrow]) -> cells [columns [icol]]. number;
 						if (value <= 0.0)
 							Melder_throw (
 								U"The cell in column \"", columnsToMedianizeLogarithmically [i],
@@ -930,72 +927,72 @@ autoTable Table_collapseRows (Table me, const char32 *factors_string, const char
 					}
 					NUMsort_d (rowmax - rowmin + 1, & sortingColumn [rowmin - 1]);
 					double median = NUMquantile (rowmax - rowmin + 1, & sortingColumn [rowmin - 1], 0.5);
-					Table_setNumericValue (thee.get(), thy rows.size, icol, exp (median));
+					Table_setNumericValue (thee.peek(), thy rows -> size, icol, exp (median));
 				}
 				Melder_assert (icol == thy numberOfColumns);
 			}
 			irow = rowmax;
 		}
 		if (originalChanged) sortRowsByIndex_NoError (me);   // unsort the original table
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		if (originalChanged) sortRowsByIndex_NoError (me);   // unsort the original table   // UGLY
 		throw;
+		return NULL;
 	}
 }
 
 static char32 ** _Table_getLevels (Table me, long column, long *numberOfLevels) {
 	try {
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			row -> sortingIndex = irow;
 		}
 		long columns [2] = { 0, column };
 		Table_sortRows_Assert (me, columns, 1);
 		*numberOfLevels = 0;
 		long irow = 1;
-		while (irow <= my rows.size) {
-			double value = my rows.at [irow] -> cells [column]. number;
+		while (irow <= my rows -> size) {
+			double value = ((TableRow) my rows -> item [irow]) -> cells [column]. number;
 			(*numberOfLevels) ++;
-			while (++ irow <= my rows.size && my rows.at [irow] -> cells [column]. number == value) { }
+			while (++ irow <= my rows -> size && ((TableRow) my rows -> item [irow]) -> cells [column]. number == value) { }
 		}
 		autostring32vector result (1, *numberOfLevels);
 		*numberOfLevels = 0;
 		irow = 1;
-		while (irow <= my rows.size) {
-			double value = my rows.at [irow] -> cells [column]. number;
+		while (irow <= my rows -> size) {
+			double value = ((TableRow) my rows -> item [irow]) -> cells [column]. number;
 			result [++ *numberOfLevels] = Melder_dup (Table_getStringValue_Assert (me, irow, column));
-			while (++ irow <= my rows.size && my rows.at [irow] -> cells [column]. number == value) { }
+			while (++ irow <= my rows -> size && ((TableRow) my rows -> item [irow]) -> cells [column]. number == value) { }
 		}
 		sortRowsByIndex_NoError (me);   // unsort the original table
 		return result.transfer();
 	} catch (MelderError) {
 		sortRowsByIndex_NoError (me);   // unsort the original table   // UGLY
 		throw;
+		return NULL;
 	}
 }
 
-autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long columnToTranspose, const char32 *columnsToExpand_string) {
+Table Table_rowsToColumns (Table me, const char32 *factors_string, long columnToTranspose, const char32 *columnsToExpand_string) {
 	bool originalChanged = false;
 	try {
-		Melder_assert (factors_string);
+		Melder_assert (factors_string != NULL);
 
+		long numberOfFactors = 0, numberToExpand = 0, numberOfLevels = 0;
 		bool warned = false;
 		/*
 		 * Parse the two strings of tokens.
 		 */
-		autoMelderTokens factors_names (factors_string);
-		long numberOfFactors = factors_names.count();
+		autoMelderTokens factors_names (factors_string, & numberOfFactors);
 		if (numberOfFactors < 1)
 			Melder_throw (U"In order to nest table data, you must supply at least one independent variable.");
 		Table_columns_checkExist (me, factors_names.peek(), numberOfFactors);
-		autoMelderTokens columnsToExpand_names (columnsToExpand_string);
-		long numberToExpand = columnsToExpand_names.count();
+		autoMelderTokens columnsToExpand_names (columnsToExpand_string, & numberToExpand);
 		if (numberToExpand < 1)
 			Melder_throw (U"In order to nest table data, you must supply at least one dependent variable (to expand).");
 		Table_columns_checkExist (me, columnsToExpand_names.peek(), numberToExpand);
 		Table_columns_checkCrossSectionEmpty (factors_names.peek(), numberOfFactors, columnsToExpand_names.peek(), numberToExpand);
-		long numberOfLevels = 0;
 		char32 ** dummy = _Table_getLevels (me, columnToTranspose, & numberOfLevels);
 		autostring32vector levels_names (dummy, 1, numberOfLevels);
 		/*
@@ -1023,7 +1020,7 @@ autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long colu
 		autoTable thee = Table_createWithoutColumnNames (0, numberOfFactors + (numberOfLevels * numberToExpand));
 		Melder_assert (thy numberOfColumns > 0);
 		for (long ifactor = 1; ifactor <= numberOfFactors; ifactor ++) {
-			Table_setColumnLabel (thee.get(), ifactor, factors_names [ifactor]);
+			Table_setColumnLabel (thee.peek(), ifactor, factors_names [ifactor]);
 		}
 		for (long iexpand = 1; iexpand <= numberToExpand; iexpand ++) {
 			for (long ilevel = 1; ilevel <= numberOfLevels; ilevel ++) {
@@ -1031,7 +1028,7 @@ autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long colu
 				//Melder_casual (U"Level: ", ilevel, U" out of ", numberOfLevels);
 				long columnNumber = numberOfFactors + (iexpand - 1) * numberOfLevels + ilevel;
 				//Melder_casual (U"Column number: ", columnNumber);
-				Table_setColumnLabel (thee.get(), columnNumber, Melder_cat (columnsToExpand_names [iexpand], U".", levels_names [ilevel]));
+				Table_setColumnLabel (thee.peek(), columnNumber, Melder_cat (columnsToExpand_names [iexpand], U".", levels_names [ilevel]));
 			}
 		}
 		/*
@@ -1039,8 +1036,8 @@ autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long colu
 		 * (This is safe: the sorting index may change only vacuously when numericizing.)
 		 * But this cannot be done before the previous blocks that numericize!
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			row -> sortingIndex = irow;
 		}
 		/*
@@ -1051,14 +1048,14 @@ autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long colu
 		/*
 		 * Find stretches of identical factors.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			long rowmin = irow, rowmax = irow;
 			for (;;) {
 				bool identical = true;
-				if (++ rowmax > my rows.size) break;
+				if (++ rowmax > my rows -> size) break;
 				for (long ifactor = 1; ifactor <= numberOfFactors; ifactor ++) {
-					if (my rows.at [rowmax] -> cells [factorColumns [ifactor]]. number !=
-						my rows.at [rowmin] -> cells [factorColumns [ifactor]]. number)
+					if (((TableRow) my rows -> item [rowmax]) -> cells [factorColumns [ifactor]]. number !=
+						((TableRow) my rows -> item [rowmin]) -> cells [factorColumns [ifactor]]. number)
 					{
 						identical = false;
 						break;
@@ -1077,48 +1074,49 @@ autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long colu
 			/*
 			 * We have the stretch.
 			 */
-			Table_insertRow (thee.get(), thy rows.size + 1);
-			TableRow thyRow = thy rows.at [thy rows.size];
+			Table_insertRow (thee.peek(), thy rows -> size + 1);
+			TableRow thyRow = static_cast <TableRow> (thy rows -> item [thy rows -> size]);
 			for (long ifactor = 1; ifactor <= numberOfFactors; ifactor ++) {
-				Table_setStringValue (thee.get(), thy rows.size, ifactor,
-					my rows.at [rowmin] -> cells [factorColumns [ifactor]]. string);
+				Table_setStringValue (thee.peek(), thy rows -> size, ifactor,
+					((TableRow) my rows -> item [rowmin]) -> cells [factorColumns [ifactor]]. string);
 			}
 			for (long iexpand = 1; iexpand <= numberToExpand; iexpand ++) {
 				for (long jrow = rowmin; jrow <= rowmax; jrow ++) {
-					TableRow myRow = my rows.at [jrow];
+					TableRow myRow = static_cast <TableRow> (my rows -> item [jrow]);
 					double value = myRow -> cells [columnsToExpand [iexpand]]. number;
 					long level = lround (myRow -> cells [columnToTranspose]. number);
 					long thyColumn = numberOfFactors + (iexpand - 1) * numberOfLevels + level;
-					if (thyRow -> cells [thyColumn]. string && ! warned) {
+					if (thyRow -> cells [thyColumn]. string != NULL && ! warned) {
 						Melder_warning (U"Some information from the original table has not been included in the new table. "
 							U"You could perhaps add more factors.");
 						warned = true;
 					}
-					Table_setNumericValue (thee.get(), thy rows.size, thyColumn, value);
+					Table_setNumericValue (thee.peek(), thy rows -> size, thyColumn, value);
 				}
 			}
 			irow = rowmax;
 		}
 		if (originalChanged) sortRowsByIndex_NoError (me);   // unsort the original table
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		if (originalChanged) sortRowsByIndex_NoError (me);   // unsort the original table   // UGLY
 		throw;
+		return NULL;
 	}
 }
 
-autoTable Table_transpose (Table me) {
+Table Table_transpose (Table me) {
 	try {
-		autoTable thee = Table_createWithoutColumnNames (my numberOfColumns, 1 + my rows.size);
+		autoTable thee = Table_createWithoutColumnNames (my numberOfColumns, 1 + my rows -> size);
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
-				Table_setStringValue (thee.get(), icol, 1, my columnHeaders [icol]. label);
+				Table_setStringValue (thee.peek(), icol, 1, my columnHeaders [icol]. label);
 			}
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
-				Table_setStringValue (thee.get(), icol, 1 + irow, Table_getStringValue_Assert (me, irow, icol));
+				Table_setStringValue (thee.peek(), icol, 1 + irow, Table_getStringValue_Assert (me, irow, icol));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not transposed.");
 	}
@@ -1141,13 +1139,13 @@ void Table_sortRows_Assert (Table me, long *columns, long numberOfColumns) {
 	}
 	cellCompare_columns = columns;
 	cellCompare_numberOfColumns = numberOfColumns;
-	qsort (& my rows.at [1], (unsigned long) my rows.size, sizeof (TableRow), cellCompare_NoError);
+	qsort (& my rows -> item [1], (unsigned long) my rows -> size, sizeof (TableRow), cellCompare_NoError);
 }
 
 void Table_sortRows_string (Table me, const char32 *columns_string) {
 	try {
-		autoMelderTokens columns_tokens (columns_string);
-		long numberOfColumns = columns_tokens.count();
+		long numberOfColumns;
+		autoMelderTokens columns_tokens (columns_string, & numberOfColumns);
 		if (numberOfColumns < 1)
 			Melder_throw (me, U": you specified an empty list of columns.");
 		autoNUMvector <long> columns (1, numberOfColumns);
@@ -1162,34 +1160,34 @@ void Table_sortRows_string (Table me, const char32 *columns_string) {
 	}
 }
 
-void Table_randomizeRows (Table me) noexcept {
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		long jrow = NUMrandomInteger (irow, my rows.size);
-		TableRow tmp = my rows.at [irow];
-		my rows.at [irow] = my rows.at [jrow];
-		my rows.at [jrow] = tmp;
+void Table_randomizeRows (Table me) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		long jrow = NUMrandomInteger (irow, my rows -> size);
+		TableRow tmp = static_cast <TableRow> (my rows -> item [irow]);
+		my rows -> item [irow] = my rows -> item [jrow];
+		my rows -> item [jrow] = tmp;
 	}
 }
 
-void Table_reflectRows (Table me) noexcept {
-	for (long irow = 1; irow <= my rows.size / 2; irow ++) {
-		long jrow = my rows.size + 1 - irow;
-		TableRow tmp = my rows.at [irow];
-		my rows.at [irow] = my rows.at [jrow];
-		my rows.at [jrow] = tmp;
+void Table_reflectRows (Table me) {
+	for (long irow = 1; irow <= my rows -> size / 2; irow ++) {
+		long jrow = my rows -> size + 1 - irow;
+		TableRow tmp = static_cast <TableRow> (my rows -> item [irow]);
+		my rows -> item [irow] = my rows -> item [jrow];
+		my rows -> item [jrow] = tmp;
 	}
 }
 
-autoTable Tables_append (OrderedOf<structTable>* me) {
+Table Tables_append (Collection me) {
 	try {
 		if (my size == 0) Melder_throw (U"Cannot add zero tables.");
-		Table thee = my at [1];
-		long nrow = thy rows.size;
+		Table thee = static_cast <Table> (my item [1]);
+		long nrow = thy rows -> size;
 		long ncol = thy numberOfColumns;
 		Table firstTable = thee;
 		for (long itab = 2; itab <= my size; itab ++) {
-			thee = my at [itab];
-			nrow += thy rows.size;
+			thee = static_cast <Table> (my item [itab]);
+			nrow += thy rows -> size;
 			if (thy numberOfColumns != ncol)
 				Melder_throw (U"Numbers of columns do not match.");
 			for (long icol = 1; icol <= ncol; icol ++) {
@@ -1201,19 +1199,19 @@ autoTable Tables_append (OrderedOf<structTable>* me) {
 		}
 		autoTable him = Table_createWithoutColumnNames (nrow, ncol);
 		for (long icol = 1; icol <= ncol; icol ++) {
-			Table_setColumnLabel (him.get(), icol, thy columnHeaders [icol]. label);
+			Table_setColumnLabel (him.peek(), icol, thy columnHeaders [icol]. label);
 		}
 		nrow = 0;
 		for (long itab = 1; itab <= my size; itab ++) {
-			thee = my at [itab];
-			for (long irow = 1; irow <= thy rows.size; irow ++) {
+			thee = static_cast <Table> (my item [itab]);
+			for (long irow = 1; irow <= thy rows -> size; irow ++) {
 				nrow ++;
 				for (long icol = 1; icol <= ncol; icol ++) {
-					Table_setStringValue (him.get(), nrow, icol, Table_getStringValue_Assert (thee, irow, icol));
+					Table_setStringValue (him.peek(), nrow, icol, Table_getStringValue_Assert (thee, irow, icol));
 				}
 			}
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table objects not appended.");
 	}
@@ -1228,10 +1226,10 @@ void Table_appendSumColumn (Table me, long column1, long column2, const char32 *
 		Table_checkSpecifiedColumnNumberWithinRange (me, column2);
 		Table_numericize_checkDefined (me, column1);
 		Table_numericize_checkDefined (me, column2);
-		autoTable thee = Table_createWithoutColumnNames (my rows.size, 1);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			Table_setNumericValue (thee.get(), irow, 1, myRow -> cells [column1]. number + myRow -> cells [column2]. number);
+		autoTable thee = Table_createWithoutColumnNames (my rows -> size, 1);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			Table_setNumericValue (thee.peek(), irow, 1, myRow -> cells [column1]. number + myRow -> cells [column2]. number);
 		}
 		/*
 		 * Safe change.
@@ -1240,14 +1238,14 @@ void Table_appendSumColumn (Table me, long column1, long column2, const char32 *
 		/*
 		 * Change without error.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			TableRow thyRow = thy rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			TableRow thyRow = static_cast <TableRow> (thy rows -> item [irow]);
 			TableCell myCell = & myRow -> cells [my numberOfColumns];
 			TableCell thyCell = & thyRow -> cells [1];
-			Melder_assert (! myCell -> string);   // make room...
+			Melder_assert (myCell -> string == NULL);   // make room...
 			myCell -> string = thyCell -> string;   // ...fill in and dangle...
-			thyCell -> string = nullptr;   // ...undangle
+			thyCell -> string = NULL;   // ...undangle
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": sum column not appended.");
@@ -1263,10 +1261,10 @@ void Table_appendDifferenceColumn (Table me, long column1, long column2, const c
 		Table_checkSpecifiedColumnNumberWithinRange (me, column2);
 		Table_numericize_checkDefined (me, column1);
 		Table_numericize_checkDefined (me, column2);
-		autoTable thee = Table_createWithoutColumnNames (my rows.size, 1);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			Table_setNumericValue (thee.get(), irow, 1, myRow -> cells [column1]. number - myRow -> cells [column2]. number);
+		autoTable thee = Table_createWithoutColumnNames (my rows -> size, 1);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			Table_setNumericValue (thee.peek(), irow, 1, myRow -> cells [column1]. number - myRow -> cells [column2]. number);
 		}
 		/*
 		 * Safe change.
@@ -1275,14 +1273,14 @@ void Table_appendDifferenceColumn (Table me, long column1, long column2, const c
 		/*
 		 * Change without error.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			TableRow thyRow = thy rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			TableRow thyRow = static_cast <TableRow> (thy rows -> item [irow]);
 			TableCell myCell = & myRow -> cells [my numberOfColumns];
 			TableCell thyCell = & thyRow -> cells [1];
-			Melder_assert (! myCell -> string);   // make room...
+			Melder_assert (myCell -> string == NULL);   // make room...
 			myCell -> string = thyCell -> string;   // ...fill in and dangle...
-			thyCell -> string = nullptr;   // ...undangle
+			thyCell -> string = NULL;   // ...undangle
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": difference column not appended.");
@@ -1298,10 +1296,10 @@ void Table_appendProductColumn (Table me, long column1, long column2, const char
 		Table_checkSpecifiedColumnNumberWithinRange (me, column2);
 		Table_numericize_checkDefined (me, column1);
 		Table_numericize_checkDefined (me, column2);
-		autoTable thee = Table_createWithoutColumnNames (my rows.size, 1);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			Table_setNumericValue (thee.get(), irow, 1, myRow -> cells [column1]. number * myRow -> cells [column2]. number);
+		autoTable thee = Table_createWithoutColumnNames (my rows -> size, 1);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			Table_setNumericValue (thee.peek(), irow, 1, myRow -> cells [column1]. number * myRow -> cells [column2]. number);
 		}
 		/*
 		 * Safe change.
@@ -1310,14 +1308,14 @@ void Table_appendProductColumn (Table me, long column1, long column2, const char
 		/*
 		 * Change without error.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			TableRow thyRow = thy rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			TableRow thyRow = static_cast <TableRow> (thy rows -> item [irow]);
 			TableCell myCell = & myRow -> cells [my numberOfColumns];
 			TableCell thyCell = & thyRow -> cells [1];
-			Melder_assert (! myCell -> string);   // make room...
+			Melder_assert (myCell -> string == NULL);   // make room...
 			myCell -> string = thyCell -> string;   // ...fill in and dangle...
-			thyCell -> string = nullptr;   // ...undangle
+			thyCell -> string = NULL;   // ...undangle
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": product column not appended.");
@@ -1333,12 +1331,12 @@ void Table_appendQuotientColumn (Table me, long column1, long column2, const cha
 		Table_checkSpecifiedColumnNumberWithinRange (me, column2);
 		Table_numericize_checkDefined (me, column1);
 		Table_numericize_checkDefined (me, column2);
-		autoTable thee = Table_createWithoutColumnNames (my rows.size, 1);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
+		autoTable thee = Table_createWithoutColumnNames (my rows -> size, 1);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
 			double value = myRow -> cells [column2]. number == 0.0 ? NUMundefined :
 				myRow -> cells [column1]. number / myRow -> cells [column2]. number;
-			Table_setNumericValue (thee.get(), irow, 1, value);
+			Table_setNumericValue (thee.peek(), irow, 1, value);
 		}
 		/*
 		 * Safe change.
@@ -1347,14 +1345,14 @@ void Table_appendQuotientColumn (Table me, long column1, long column2, const cha
 		/*
 		 * Change without error.
 		 */
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow myRow = my rows.at [irow];
-			TableRow thyRow = thy rows.at [irow];
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow myRow = static_cast <TableRow> (my rows -> item [irow]);
+			TableRow thyRow = static_cast <TableRow> (thy rows -> item [irow]);
 			TableCell myCell = & myRow -> cells [my numberOfColumns];
 			TableCell thyCell = & thyRow -> cells [1];
-			Melder_assert (! myCell -> string);   // make room...
+			Melder_assert (myCell -> string == NULL);   // make room...
 			myCell -> string = thyCell -> string;   // ...fill in and dangle...
-			thyCell -> string = nullptr;   // ...undangle
+			thyCell -> string = NULL;   // ...undangle
 		}
 	} catch (MelderError) {
 		Melder_throw (me, U": quotient column not appended.");
@@ -1365,8 +1363,8 @@ void Table_formula_columnRange (Table me, long fromColumn, long toColumn, const
 	try {
 		Table_checkSpecifiedColumnNumberWithinRange (me, fromColumn);
 		Table_checkSpecifiedColumnNumberWithinRange (me, toColumn);
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_UNKNOWN, true);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_UNKNOWN, TRUE);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			for (long icol = fromColumn; icol <= toColumn; icol ++) {
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
@@ -1394,7 +1392,7 @@ void Table_formula (Table me, long icol, const char32 *expression, Interpreter i
 double Table_getCorrelation_pearsonR (Table me, long column1, long column2, double significanceLevel,
 	double *out_significance, double *out_lowerLimit, double *out_upperLimit)
 {
-	long n = my rows.size, irow;
+	long n = my rows -> size, irow;
 	double correlation;
 	double sum1 = 0.0, sum2 = 0.0, sum12 = 0.0, sum11 = 0.0, sum22 = 0.0, mean1, mean2;
 	if (out_significance) *out_significance = NUMundefined;
@@ -1406,14 +1404,14 @@ double Table_getCorrelation_pearsonR (Table me, long column1, long column2, doub
 	Table_numericize_Assert (me, column1);
 	Table_numericize_Assert (me, column2);
 	for (irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		sum1 += row -> cells [column1]. number;
 		sum2 += row -> cells [column2]. number;
 	}
 	mean1 = sum1 / n;
 	mean2 = sum2 / n;
 	for (irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		double d1 = row -> cells [column1]. number - mean1, d2 = row -> cells [column2]. number - mean2;
 		sum12 += d1 * d2;
 		sum11 += d1 * d1;
@@ -1443,7 +1441,7 @@ double Table_getCorrelation_pearsonR (Table me, long column1, long column2, doub
 double Table_getCorrelation_kendallTau (Table me, long column1, long column2, double significanceLevel,
 	double *out_significance, double *out_lowerLimit, double *out_upperLimit)
 {
-	long n = my rows.size, irow, jrow;
+	long n = my rows -> size, irow, jrow;
 	double correlation, denominator;
 	long numberOfConcordants = 0, numberOfDiscordants = 0, numberOfExtra1 = 0, numberOfExtra2 = 0;
 	if (out_significance) *out_significance = NUMundefined;
@@ -1454,9 +1452,9 @@ double Table_getCorrelation_kendallTau (Table me, long column1, long column2, do
 	Table_numericize_Assert (me, column1);
 	Table_numericize_Assert (me, column2);
 	for (irow = 1; irow < n; irow ++) {
-		TableRow rowi = my rows.at [irow];
+		TableRow rowi = static_cast <TableRow> (my rows -> item [irow]);
 		for (jrow = irow + 1; jrow <= n; jrow ++) {
-			TableRow rowj = my rows.at [jrow];
+			TableRow rowj = static_cast <TableRow> (my rows -> item [jrow]);
 			double diff1 = rowi -> cells [column1]. number - rowj -> cells [column1]. number;
 			double diff2 = rowi -> cells [column2]. number - rowj -> cells [column2]. number;
 			double concord = diff1 * diff2;
@@ -1494,7 +1492,7 @@ double Table_getDifference_studentT (Table me, long column1, long column2, doubl
 	if (out_significance) *out_significance = NUMundefined;
 	if (out_lowerLimit) *out_lowerLimit = NUMundefined;
 	if (out_upperLimit) *out_upperLimit = NUMundefined;
-	long n = my rows.size;
+	long n = my rows -> size;
 	if (n < 1) return NUMundefined;
 	if (column1 < 1 || column1 > my numberOfColumns) return NUMundefined;
 	if (column2 < 1 || column2 > my numberOfColumns) return NUMundefined;
@@ -1502,7 +1500,7 @@ double Table_getDifference_studentT (Table me, long column1, long column2, doubl
 	Table_numericize_Assert (me, column2);
 	double sum = 0.0;
 	for (long irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		sum += row -> cells [column1]. number - row -> cells [column2]. number;
 	}
 	double meanDifference = sum / n;
@@ -1511,7 +1509,7 @@ double Table_getDifference_studentT (Table me, long column1, long column2, doubl
 	if (degreesOfFreedom >= 1 && (out_t || out_significance || out_lowerLimit || out_upperLimit)) {
 		double sumOfSquares = 0.0;
 		for (long irow = 1; irow <= n; irow ++) {
-			TableRow row = my rows.at [irow];
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			double diff = (row -> cells [column1]. number - row -> cells [column2]. number) - meanDifference;
 			sumOfSquares += diff * diff;
 		}
@@ -1531,7 +1529,7 @@ double Table_getMean_studentT (Table me, long column, double significanceLevel,
 	double *out_tFromZero, double *out_numberOfDegreesOfFreedom, double *out_significanceFromZero, double *out_lowerLimit, double *out_upperLimit)
 {
 	double mean = 0.0, var = 0.0, standardError;
-	long n = my rows.size;
+	long n = my rows -> size;
 	if (out_tFromZero) *out_tFromZero = NUMundefined;
 	if (out_numberOfDegreesOfFreedom) *out_numberOfDegreesOfFreedom = NUMundefined;
 	if (out_significanceFromZero) *out_significanceFromZero = NUMundefined;
@@ -1543,13 +1541,13 @@ double Table_getMean_studentT (Table me, long column, double significanceLevel,
 	if (out_numberOfDegreesOfFreedom) *out_numberOfDegreesOfFreedom = degreesOfFreedom;
 	Table_numericize_Assert (me, column);
 	for (long irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		mean += row -> cells [column]. number;
 	}
 	mean /= n;
 	if (n >= 2 && (out_tFromZero || out_significanceFromZero || out_lowerLimit || out_upperLimit)) {
 		for (long irow = 1; irow <= n; irow ++) {
-			TableRow row = my rows.at [irow];
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			double diff = row -> cells [column]. number - mean;
 			var += diff * diff;
 		}
@@ -1577,9 +1575,9 @@ double Table_getGroupMean_studentT (Table me, long column, long groupColumn, con
 	Table_numericize_Assert (me, column);
 	long n = 0;
 	double sum = 0.0;
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
-		if (row -> cells [groupColumn]. string) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+		if (row -> cells [groupColumn]. string != NULL) {
 			if (str32equ (row -> cells [groupColumn]. string, group)) {
 				n += 1;
 				sum += row -> cells [column]. number;
@@ -1592,9 +1590,9 @@ double Table_getGroupMean_studentT (Table me, long column, long groupColumn, con
 	if (out_numberOfDegreesOfFreedom) *out_numberOfDegreesOfFreedom = degreesOfFreedom;
 	if (degreesOfFreedom >= 1 && (out_tFromZero || out_significanceFromZero || out_lowerLimit || out_upperLimit)) {
 		double sumOfSquares = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
-			if (row -> cells [groupColumn]. string) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+			if (row -> cells [groupColumn]. string != NULL) {
 				if (str32equ (row -> cells [groupColumn]. string, group)) {
 					double diff = row -> cells [column]. number - mean;
 					sumOfSquares += diff * diff;
@@ -1626,9 +1624,9 @@ double Table_getGroupDifference_studentT (Table me, long column, long groupColum
 	Table_numericize_Assert (me, column);
 	long n1 = 0, n2 = 0;
 	double sum1 = 0.0, sum2 = 0.0;
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
-		if (row -> cells [groupColumn]. string) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+		if (row -> cells [groupColumn]. string != NULL) {
 			if (str32equ (row -> cells [groupColumn]. string, group1)) {
 				n1 ++;
 				sum1 += row -> cells [column]. number;
@@ -1646,9 +1644,9 @@ double Table_getGroupDifference_studentT (Table me, long column, long groupColum
 	double difference = mean1 - mean2;
 	if (degreesOfFreedom >= 1 && (out_tFromZero || out_significanceFromZero || out_lowerLimit || out_upperLimit)) {
 		double sumOfSquares = 0.0;
-		for (long irow = 1; irow <= my rows.size; irow ++) {
-			TableRow row = my rows.at [irow];
-			if (row -> cells [groupColumn]. string) {
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+			if (row -> cells [groupColumn]. string != NULL) {
 				if (str32equ (row -> cells [groupColumn]. string, group1)) {
 					double diff = row -> cells [column]. number - mean1;
 					sumOfSquares += diff * diff;
@@ -1679,9 +1677,9 @@ double Table_getGroupDifference_wilcoxonRankSum (Table me, long column, long gro
 	if (groupColumn < 1 || groupColumn > my numberOfColumns) return NUMundefined;
 	Table_numericize_Assert (me, column);
 	long n1 = 0, n2 = 0;
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
-		if (row -> cells [groupColumn]. string) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+		if (row -> cells [groupColumn]. string != NULL) {
 			if (str32equ (row -> cells [groupColumn]. string, group1)) {
 				n1 ++;
 			} else if (str32equ (row -> cells [groupColumn]. string, group2)) {
@@ -1691,52 +1689,53 @@ double Table_getGroupDifference_wilcoxonRankSum (Table me, long column, long gro
 	}
 	long n = n1 + n2;
 	if (n1 < 1 || n2 < 1 || n < 3) return NUMundefined;
-	autoTable ranks = Table_createWithoutColumnNames (n, 3);   // column 1 = group, 2 = value, 3 = rank
-	for (long irow = 1, jrow = 0; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
-		if (row -> cells [groupColumn]. string) {
+	Table ranks = Table_createWithoutColumnNames (n, 3);   // column 1 = group, 2 = value, 3 = rank
+	for (long irow = 1, jrow = 0; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
+		if (row -> cells [groupColumn]. string != NULL) {
 			if (str32equ (row -> cells [groupColumn]. string, group1)) {
-				Table_setNumericValue (ranks.get(), ++ jrow, 1, 1.0);
-				Table_setNumericValue (ranks.get(), jrow, 2, row -> cells [column]. number);
+				Table_setNumericValue (ranks, ++ jrow, 1, 1.0);
+				Table_setNumericValue (ranks, jrow, 2, row -> cells [column]. number);
 			} else if (str32equ (row -> cells [groupColumn]. string, group2)) {
-				Table_setNumericValue (ranks.get(), ++ jrow, 1, 2.0);
-				Table_setNumericValue (ranks.get(), jrow, 2, row -> cells [column]. number);
+				Table_setNumericValue (ranks, ++ jrow, 1, 2.0);
+				Table_setNumericValue (ranks, jrow, 2, row -> cells [column]. number);
 			}
 		}
 	}
-	Table_numericize_Assert (ranks.get(), 1);
-	Table_numericize_Assert (ranks.get(), 2);
-	Table_numericize_Assert (ranks.get(), 3);
+	Table_numericize_Assert (ranks, 1);
+	Table_numericize_Assert (ranks, 2);
+	Table_numericize_Assert (ranks, 3);
 	long columns [1+1] = { 0, 2 };   // we're gonna sort by column 2
-	Table_sortRows_Assert (ranks.get(), columns, 1);   // we sort by one column only
+	Table_sortRows_Assert (ranks, columns, 1);   // we sort by one column only
 	double totalNumberOfTies3 = 0.0;
-	for (long irow = 1; irow <= ranks -> rows.size; irow ++) {
-		TableRow row = ranks -> rows.at [irow];
+	for (long irow = 1; irow <= ranks -> rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (ranks -> rows -> item [irow]);
 		double value = row -> cells [2]. number;
 		long rowOfLastTie = irow + 1;
-		for (; rowOfLastTie <= ranks -> rows.size; rowOfLastTie ++) {
-			TableRow row2 = ranks -> rows.at [rowOfLastTie];
+		for (; rowOfLastTie <= ranks -> rows -> size; rowOfLastTie ++) {
+			TableRow row2 = static_cast <TableRow> (ranks -> rows -> item [rowOfLastTie]);
 			double value2 = row2 -> cells [2]. number;
 			if (value2 != value) break;
 		}
 		rowOfLastTie --;
 		double averageRank = 0.5 * ((double) irow + (double) rowOfLastTie);
 		for (long jrow = irow; jrow <= rowOfLastTie; jrow ++) {
-			Table_setNumericValue (ranks.get(), jrow, 3, averageRank);
+			Table_setNumericValue (ranks, jrow, 3, averageRank);
 		}
 		long numberOfTies = rowOfLastTie - irow + 1;
 		totalNumberOfTies3 += (double) (numberOfTies - 1) * (double) numberOfTies * (double) (numberOfTies + 1);
 	}
-	Table_numericize_Assert (ranks.get(), 3);
+	Table_numericize_Assert (ranks, 3);
 	double maximumRankSum = (double) n1 * (double) n2, rankSum = 0.0;
-	for (long irow = 1; irow <= ranks -> rows.size; irow ++) {
-		TableRow row = ranks -> rows.at [irow];
+	for (long irow = 1; irow <= ranks -> rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (ranks -> rows -> item [irow]);
 		if (row -> cells [1]. number == 1.0) rankSum += row -> cells [3]. number;
 	}
 	rankSum -= 0.5 * (double) n1 * ((double) n1 + 1.0);
 	double stdev = sqrt (maximumRankSum * ((double) n + 1.0 - totalNumberOfTies3 / n / (n - 1)) / 12.0);
 	if (out_rankSum) *out_rankSum = rankSum;
 	if (out_significanceFromZero) *out_significanceFromZero = NUMgaussQ (fabs (rankSum - 0.5 * maximumRankSum) / stdev);
+	forget (ranks);
 	return rankSum / maximumRankSum;
 }
 
@@ -1746,15 +1745,15 @@ double Table_getFisherFLowerLimit (Table me, long col1, long col2, double signif
 double Table_getFisherFUpperLimit (Table me, long col1, long col2, double significanceLevel);
 
 bool Table_getExtrema (Table me, long icol, double *minimum, double *maximum) {
-	long n = my rows.size, irow;
+	long n = my rows -> size, irow;
 	if (icol < 1 || icol > my numberOfColumns || n == 0) {
 		*minimum = *maximum = NUMundefined;
 		return false;
 	}
 	Table_numericize_Assert (me, icol);
-	*minimum = *maximum = my rows.at [1] -> cells [icol]. number;
+	*minimum = *maximum = ((TableRow) my rows -> item [1]) -> cells [icol]. number;
 	for (irow = 2; irow <= n; irow ++) {
-		double value = my rows.at [irow] -> cells [icol]. number;
+		double value = ((TableRow) my rows -> item [irow]) -> cells [icol]. number;
 		if (value < *minimum) *minimum = value;
 		if (value > *maximum) *maximum = value;
 	}
@@ -1764,7 +1763,7 @@ bool Table_getExtrema (Table me, long icol, double *minimum, double *maximum) {
 void Table_scatterPlot_mark (Table me, Graphics g, long xcolumn, long ycolumn,
 	double xmin, double xmax, double ymin, double ymax, double markSize_mm, const char32 *mark, int garnish)
 {
-	long n = my rows.size, irow;
+	long n = my rows -> size, irow;
 	if (xcolumn < 1 || xcolumn > my numberOfColumns || ycolumn < 1 || ycolumn > my numberOfColumns) return;
 	Table_numericize_Assert (me, xcolumn);
 	Table_numericize_Assert (me, ycolumn);
@@ -1781,25 +1780,25 @@ void Table_scatterPlot_mark (Table me, Graphics g, long xcolumn, long ycolumn,
 
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 	for (irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		Graphics_mark (g, row -> cells [xcolumn]. number, row -> cells [ycolumn]. number, markSize_mm, mark);
 	}
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
 		if (my columnHeaders [xcolumn]. label)
-			Graphics_textBottom (g, true, my columnHeaders [xcolumn]. label);
-		Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_textBottom (g, TRUE, my columnHeaders [xcolumn]. label);
+		Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
 		if (my columnHeaders [ycolumn]. label)
-			Graphics_textLeft (g, true, my columnHeaders [ycolumn]. label);
+			Graphics_textLeft (g, TRUE, my columnHeaders [ycolumn]. label);
 	}
 }
 
 void Table_scatterPlot (Table me, Graphics g, long xcolumn, long ycolumn,
 	double xmin, double xmax, double ymin, double ymax, long markColumn, int fontSize, int garnish)
 {
-	long n = my rows.size;
+	long n = my rows -> size;
 	int saveFontSize = Graphics_inqFontSize (g);
 	if (xcolumn < 1 || xcolumn > my numberOfColumns || ycolumn < 1 || ycolumn > my numberOfColumns) return;
 	Table_numericize_Assert (me, xcolumn);
@@ -1818,7 +1817,7 @@ void Table_scatterPlot (Table me, Graphics g, long xcolumn, long ycolumn,
 	Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
 	Graphics_setFontSize (g, fontSize);
 	for (long irow = 1; irow <= n; irow ++) {
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		const char32 *mark = row -> cells [markColumn]. string;
 		if (mark)
 			Graphics_text (g, row -> cells [xcolumn]. number, row -> cells [ycolumn]. number, mark);
@@ -1827,12 +1826,12 @@ void Table_scatterPlot (Table me, Graphics g, long xcolumn, long ycolumn,
 	Graphics_unsetInner (g);
 	if (garnish) {
 		Graphics_drawInnerBox (g);
-		Graphics_marksBottom (g, 2, true, true, false);
+		Graphics_marksBottom (g, 2, TRUE, TRUE, FALSE);
 		if (my columnHeaders [xcolumn]. label)
-			Graphics_textBottom (g, true, my columnHeaders [xcolumn]. label);
-		Graphics_marksLeft (g, 2, true, true, false);
+			Graphics_textBottom (g, TRUE, my columnHeaders [xcolumn]. label);
+		Graphics_marksLeft (g, 2, TRUE, TRUE, FALSE);
 		if (my columnHeaders [ycolumn]. label)
-			Graphics_textLeft (g, true, my columnHeaders [ycolumn]. label);
+			Graphics_textLeft (g, TRUE, my columnHeaders [ycolumn]. label);
 	}
 }
 
@@ -1851,20 +1850,20 @@ void Table_drawEllipse_e (Table me, Graphics g, long xcolumn, long ycolumn,
 			if (! Table_getExtrema (me, ycolumn, & ymin, & ymax)) return;
 			if (ymin == ymax) ymin -= 0.5, ymax += 0.5;
 		}
-		autoTableOfReal tableOfReal = TableOfReal_create (my rows.size, 2);
-		for (long irow = 1; irow <= my rows.size; irow ++) {
+		autoTableOfReal tableOfReal = TableOfReal_create (my rows -> size, 2);
+		for (long irow = 1; irow <= my rows -> size; irow ++) {
 			tableOfReal -> data [irow] [1] = Table_getNumericValue_Assert (me, irow, xcolumn);
 			tableOfReal -> data [irow] [2] = Table_getNumericValue_Assert (me, irow, ycolumn);
 		}
-		autoSSCP sscp = TableOfReal_to_SSCP (tableOfReal.get(), 0, 0, 0, 0);
-		SSCP_drawConcentrationEllipse (sscp.get(), g, numberOfSigmas, 0, 1, 2, xmin, xmax, ymin, ymax, garnish);
+		autoSSCP sscp = TableOfReal_to_SSCP (tableOfReal.peek(), 0, 0, 0, 0);
+		SSCP_drawConcentrationEllipse (sscp.peek(), g, numberOfSigmas, 0, 1, 2, xmin, xmax, ymin, ymax, garnish);
 	} catch (MelderError) {
 		Melder_clearError ();   // drawing errors shall be ignored
 	}
 }
 
 static const char32 *visibleString (const char32 *s) {
-	return ( s && s [0] != U'\0' ? s : U"?" );
+	return s != NULL && s [0] != U'\0' ? s : U"?";
 }
 
 void Table_list (Table me, bool includeRowNumbers) {
@@ -1878,12 +1877,12 @@ void Table_list (Table me, bool includeRowNumbers) {
 		MelderInfo_write (visibleString (my columnHeaders [icol]. label));
 	}
 	MelderInfo_write (U"\n");
-	for (long irow = 1; irow <= my rows.size; irow ++) {
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
 		if (includeRowNumbers) {
 			MelderInfo_write (irow);
 			if (my numberOfColumns > 0) MelderInfo_write (U"\t");
 		}
-		TableRow row = my rows.at [irow];
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			if (icol > 1) MelderInfo_write (U"\t");
 			MelderInfo_write (visibleString (row -> cells [icol]. string));
@@ -1898,15 +1897,15 @@ static void _Table_writeToCharacterSeparatedFile (Table me, MelderFile file, cha
 	for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 		if (icol != 1) MelderString_appendCharacter (& buffer, kar);
 		char32 *s = my columnHeaders [icol]. label;
-		MelderString_append (& buffer, ( s && s [0] != U'\0' ? s : U"?" ));
+		MelderString_append (& buffer, s != NULL && s [0] != U'\0' ? s : U"?");
 	}
-	MelderString_appendCharacter (& buffer, U'\n');
-	for (long irow = 1; irow <= my rows.size; irow ++) {
-		TableRow row = my rows.at [irow];
+	MelderString_appendCharacter (& buffer, '\n');
+	for (long irow = 1; irow <= my rows -> size; irow ++) {
+		TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			if (icol != 1) MelderString_appendCharacter (& buffer, kar);
 			char32 *s = row -> cells [icol]. string;
-			MelderString_append (& buffer, ( s && s [0] != U'\0' ? s : U"?" ));
+			MelderString_append (& buffer, s != NULL && s [0] != U'\0' ? s : U"?");
 		}
 		MelderString_appendCharacter (& buffer, U'\n');
 	}
@@ -1929,7 +1928,8 @@ void Table_writeToCommaSeparatedFile (Table me, MelderFile file) {
 	}
 }
 
-autoTable Table_readFromTableFile (MelderFile file) {
+Table Table_readFromTableFile (MelderFile file) {
+	Table me = NULL;
 	try {
 		autostring32 string = MelderFile_readText (file);
 		long nrow, ncol, nelements;
@@ -1972,7 +1972,7 @@ autoTable Table_readFromTableFile (MelderFile file) {
 		 * Create empty table.
 		 */
 		nrow = nelements / ncol - 1;
-		autoTable me = Table_create (nrow, ncol);
+		me = Table_create (nrow, ncol);
 
 		/*
 		 * Read elements.
@@ -1983,11 +1983,11 @@ autoTable Table_readFromTableFile (MelderFile file) {
 			static MelderString buffer { 0 };
 			MelderString_empty (& buffer);
 			while (*p != U' ' && *p != U'\t' && *p != U'\n') { MelderString_appendCharacter (& buffer, *p); p ++; }
-			Table_setColumnLabel (me.get(), icol, buffer.string);
+			Table_setColumnLabel (me, icol, buffer.string);
 			MelderString_empty (& buffer);
 		}
 		for (long irow = 1; irow <= nrow; irow ++) {
-			TableRow row = my rows.at [irow];
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			for (long icol = 1; icol <= ncol; icol ++) {
 				while (*p == U' ' || *p == U'\t' || *p == U'\n') { Melder_assert (*p != U'\0'); p ++; }
 				static MelderString buffer { 0 };
@@ -1999,11 +1999,12 @@ autoTable Table_readFromTableFile (MelderFile file) {
 		}
 		return me;
 	} catch (MelderError) {
+		forget (me);
 		Melder_throw (U"Table object not read from space-separated text file ", file, U".");
 	}
 }
 
-autoTable Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 separator) {
+Table Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 separator) {
 	try {
 		autostring32 string = MelderFile_readText (file);
 
@@ -2052,14 +2053,14 @@ autoTable Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 sepa
 				p ++;
 			}
 			p ++;
-			Table_setColumnLabel (me.get(), icol, buffer.string);
+			Table_setColumnLabel (me.peek(), icol, buffer.string);
 		}
 
 		/*
 		 * Read cells.
 		 */
 		for (long irow = 1; irow <= nrow; irow ++) {
-			TableRow row = my rows.at [irow];
+			TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 			for (long icol = 1; icol <= ncol; icol ++) {
 				MelderString_empty (& buffer);
 				while (*p != separator && *p != U'\n' && *p != U'\0') {
@@ -2076,10 +2077,10 @@ autoTable Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 sepa
 					Melder_assert (*p == separator);
 					p ++;
 				}
-				row -> cells [icol]. string = Melder_dup (buffer.string);   // BUG? could be null
+				row -> cells [icol]. string = Melder_dup (buffer.string);   // BUG? could be NULL
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Table object not read from character-separated text file ", file, U".");
 	}
diff --git a/stat/Table.h b/stat/Table.h
index 2f1fd53..70714bb 100644
--- a/stat/Table.h
+++ b/stat/Table.h
@@ -21,17 +21,19 @@
 
 #include "Collection.h"
 #include "Graphics.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "Table_def.h"
+oo_CLASS_CREATE (TableRow, Data);
+oo_CLASS_CREATE (Table, Data);
 
 void Table_initWithColumnNames (Table me, long numberOfRows, const char32 *columnNames);
-autoTable Table_createWithColumnNames (long numberOfRows, const char32 *columnNames);
+Table Table_createWithColumnNames (long numberOfRows, const char32 *columnNames);
 void Table_initWithoutColumnNames (Table me, long numberOfRows, long numberOfColumns);
-autoTable Table_createWithoutColumnNames (long numberOfRows, long numberOfColumns);
+Table Table_createWithoutColumnNames (long numberOfRows, long numberOfColumns);
 #define Table_create Table_createWithoutColumnNames
 
-autoTable Tables_append (OrderedOf<structTable>* me);
+Table Tables_append (Collection me);
 void Table_appendRow (Table me);
 void Table_appendColumn (Table me, const char32 *label);
 void Table_appendSumColumn (Table me, long column1, long column2, const char32 *label);
@@ -43,10 +45,10 @@ void Table_removeColumn (Table me, long column);
 void Table_insertRow (Table me, long row);
 void Table_insertColumn (Table me, long column, const char32 *label /* cattable */);
 void Table_setColumnLabel (Table me, long column, const char32 *label /* cattable */);
-long Table_findColumnIndexFromColumnLabel (Table me, const char32 *label) noexcept;
+long Table_findColumnIndexFromColumnLabel (Table me, const char32 *label);
 long Table_getColumnIndexFromColumnLabel (Table me, const char32 *columnLabel);
 long * Table_getColumnIndicesFromColumnLabelString (Table me, const char32 *string, long *numberOfTokens);
-long Table_searchColumn (Table me, long column, const char32 *value) noexcept;
+long Table_searchColumn (Table me, long column, const char32 *value);
 
 /*
  * Procedure for reading strings or numbers from table cells:
@@ -95,8 +97,8 @@ void Table_formula_columnRange (Table me, long column1, long column2, const char
 
 void Table_sortRows_Assert (Table me, long *columns, long numberOfColumns);
 void Table_sortRows_string (Table me, const char32 *columns_string);
-void Table_randomizeRows (Table me) noexcept;
-void Table_reflectRows (Table me) noexcept;
+void Table_randomizeRows (Table me);
+void Table_reflectRows (Table me);
 
 void Table_scatterPlot (Table me, Graphics g, long xcolumn, long ycolumn,
 	double xmin, double xmax, double ymin, double ymax, long markColumn, int fontSize, int garnish);
@@ -108,16 +110,16 @@ void Table_drawEllipse_e (Table me, Graphics g, long xcolumn, long ycolumn,
 void Table_list (Table me, bool includeRowNumbers);
 void Table_writeToTabSeparatedFile (Table me, MelderFile file);
 void Table_writeToCommaSeparatedFile (Table me, MelderFile file);
-autoTable Table_readFromTableFile (MelderFile file);
-autoTable Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 separator);
+Table Table_readFromTableFile (MelderFile file);
+Table Table_readFromCharacterSeparatedTextFile (MelderFile file, char32 separator);
 
-autoTable Table_extractRowsWhereColumn_number (Table me, long column, int which_Melder_NUMBER, double criterion);
-autoTable Table_extractRowsWhereColumn_string (Table me, long column, int which_Melder_STRING, const char32 *criterion);
-autoTable Table_collapseRows (Table me, const char32 *factors_string, const char32 *columnsToSum_string,
+Table Table_extractRowsWhereColumn_number (Table me, long column, int which_Melder_NUMBER, double criterion);
+Table Table_extractRowsWhereColumn_string (Table me, long column, int which_Melder_STRING, const char32 *criterion);
+Table Table_collapseRows (Table me, const char32 *factors_string, const char32 *columnsToSum_string,
 	const char32 *columnsToAverage_string, const char32 *columnsToMedianize_string,
 	const char32 *columnsToAverageLogarithmically_string, const char32 *columnsToMedianizeLogarithmically_string);
-autoTable Table_rowsToColumns (Table me, const char32 *factors_string, long columnToTranspose, const char32 *columnsToExpand_string);
-autoTable Table_transpose (Table me);
+Table Table_rowsToColumns (Table me, const char32 *factors_string, long columnToTranspose, const char32 *columnsToExpand_string);
+Table Table_transpose (Table me);
 
 void Table_checkSpecifiedRowNumberWithinRange (Table me, long rowNumber);
 void Table_checkSpecifiedColumnNumberWithinRange (Table me, long columnNumber);
diff --git a/stat/TableEditor.cpp b/stat/TableEditor.cpp
index cfff9e7..7315102 100644
--- a/stat/TableEditor.cpp
+++ b/stat/TableEditor.cpp
@@ -1,6 +1,6 @@
 /* TableEditor.cpp
  *
- * Copyright (C) 2006-2011,2013,2015,2016 Paul Boersma
+ * Copyright (C) 2006-2011,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,30 +23,18 @@
 
 Thing_implement (TableEditor, Editor, 0);
 
-#include "prefs_define.h"
-#include "TableEditor_prefs.h"
-#include "prefs_install.h"
-#include "TableEditor_prefs.h"
-#include "prefs_copyToInstance.h"
-#include "TableEditor_prefs.h"
-
 #define SIZE_INCHES  40
 
 /********** EDITOR METHODS **********/
 
-void structTableEditor :: v_destroy () noexcept {
+void structTableEditor :: v_destroy () {
+	forget (graphics);
 	TableEditor_Parent :: v_destroy ();
 }
 
-void structTableEditor :: v_info () {
-	our TableEditor_Parent :: v_info ();
-	MelderInfo_writeLine (U"Table uses text styles: ", our p_useTextStyles);
-	//MelderInfo_writeLine (U"Table font size: ", our p_fontSize);
-}
-
 static void updateVerticalScrollBar (TableEditor me) {
 	Table table = static_cast<Table> (my data);
-	GuiScrollBar_set (my verticalScrollBar, NUMundefined, table -> rows.size + 1, my topRow, NUMundefined, NUMundefined, NUMundefined);
+	GuiScrollBar_set (my verticalScrollBar, NUMundefined, table -> rows -> size + 1, my topRow, NUMundefined, NUMundefined, NUMundefined);
 }
 
 static void updateHorizontalScrollBar (TableEditor me) {
@@ -55,42 +43,34 @@ static void updateHorizontalScrollBar (TableEditor me) {
 }
 
 void structTableEditor :: v_dataChanged () {
-	Table table = static_cast<Table> (our data);
-	if (topRow > table -> rows.size) topRow = table -> rows.size;
+	Table table = static_cast<Table> (data);
+	if (topRow > table -> rows -> size) topRow = table -> rows -> size;
 	if (leftColumn > table -> numberOfColumns) leftColumn = table -> numberOfColumns;
 	updateVerticalScrollBar (this);
 	updateHorizontalScrollBar (this);
-	Graphics_updateWs (our graphics.get());
+	Graphics_updateWs (graphics);
 }
 
 /********** FILE MENU **********/
 
-static void menu_cb_preferences (TableEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"TableEditor preferences", nullptr);
-		OPTIONMENU (U"The symbols %#_^ in labels", my default_useTextStyles () + 1)
-			OPTION (U"are shown as typed")
-			OPTION (U"mean italic/bold/sub/super")
-	EDITOR_OK
-		SET_INTEGER (U"The symbols %#_^ in labels", my p_useTextStyles + 1)
-	EDITOR_DO
-		my pref_useTextStyles () = my p_useTextStyles = GET_INTEGER (U"The symbols %#_^ in labels") - 1;
-		Graphics_updateWs (my graphics.get());
-	EDITOR_END
-}
 
 /********** EDIT MENU **********/
 
 #ifndef macintosh
-static void menu_cb_Cut (TableEditor me, EDITOR_ARGS_DIRECT) {   // BUG: why only on Mac?
+static void menu_cb_Cut (EDITOR_ARGS) {   // BUG: why only on Mac?
+	EDITOR_IAM (TableEditor);
 	GuiText_cut (my text);
 }
-static void menu_cb_Copy (TableEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Copy (EDITOR_ARGS) {
+	EDITOR_IAM (TableEditor);
 	GuiText_copy (my text);
 }
-static void menu_cb_Paste (TableEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Paste (EDITOR_ARGS) {
+	EDITOR_IAM (TableEditor);
 	GuiText_paste (my text);
 }
-static void menu_cb_Erase (TableEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_Erase (EDITOR_ARGS) {
+	EDITOR_IAM (TableEditor);
 	GuiText_remove (my text);
 }
 #endif
@@ -99,7 +79,8 @@ static void menu_cb_Erase (TableEditor me, EDITOR_ARGS_DIRECT) {
 
 /********** HELP MENU **********/
 
-static void menu_cb_TableEditorHelp (TableEditor, EDITOR_ARGS_DIRECT) {
+static void menu_cb_TableEditorHelp (EDITOR_ARGS) {
+	EDITOR_IAM (TableEditor);
 	Melder_help (U"TableEditor");
 }
 
@@ -114,61 +95,54 @@ void structTableEditor :: v_draw () {
 	 */
 	long rowmin = topRow, rowmax = rowmin + 197;
 	long colmin = leftColumn, colmax = colmin + (kTableEditor_MAXNUM_VISIBLE_COLUMNS - 1);
-	if (rowmax > table -> rows.size) rowmax = table -> rows.size;
+	if (rowmax > table -> rows -> size) rowmax = table -> rows -> size;
 	if (colmax > table -> numberOfColumns) colmax = table -> numberOfColumns;
-	Graphics_clearWs (graphics.get());
-	Graphics_setTextAlignment (graphics.get(), Graphics_CENTRE, Graphics_HALF);
-	Graphics_setWindow (graphics.get(), 0.0, 1.0, rowmin + 197.5, rowmin - 2.5);
-	Graphics_setColour (graphics.get(), Graphics_SILVER);
-	Graphics_fillRectangle (graphics.get(), 0.0, 1.0, rowmin - 2.5, rowmin - 0.5);
-	Graphics_setColour (graphics.get(), Graphics_BLACK);
-	Graphics_line (graphics.get(), 0.0, rowmin - 0.5, 1.0, rowmin - 0.5);
-	Graphics_setWindow (graphics.get(), 0.0, Graphics_dxWCtoMM (graphics.get(), 1.0), rowmin + 197.5, rowmin - 2.5);
+	Graphics_clearWs (graphics);
+	Graphics_setTextAlignment (graphics, Graphics_CENTRE, Graphics_HALF);
+	Graphics_setWindow (graphics, 0.0, 1.0, rowmin + 197.5, rowmin - 2.5);
+	Graphics_setColour (graphics, Graphics_SILVER);
+	Graphics_fillRectangle (graphics, 0.0, 1.0, rowmin - 2.5, rowmin - 0.5);
+	Graphics_setColour (graphics, Graphics_BLACK);
+	Graphics_line (graphics, 0.0, rowmin - 0.5, 1.0, rowmin - 0.5);
+	Graphics_setWindow (graphics, 0.0, Graphics_dxWCtoMM (graphics, 1.0), rowmin + 197.5, rowmin - 2.5);
 	/*
 	 * Determine the width of the column with the row numbers.
 	 */
-	columnWidth = Graphics_textWidth (graphics.get(), U"row");
+	columnWidth = Graphics_textWidth (graphics, U"row");
 	for (long irow = rowmin; irow <= rowmax; irow ++) {
-		cellWidth = Graphics_textWidth (graphics.get(), Melder_integer (irow));
+		cellWidth = Graphics_textWidth (graphics, Melder_integer (irow));
 		if (cellWidth > columnWidth) columnWidth = cellWidth;
 	}
 	columnLeft [0] = columnWidth + 2 * spacing;
-	Graphics_setColour (graphics.get(), Graphics_SILVER);
-	Graphics_fillRectangle (graphics.get(), 0.0, columnLeft [0], rowmin - 0.5, rowmin + 197.5);
-	Graphics_setColour (graphics.get(), Graphics_BLACK);
-	Graphics_line (graphics.get(), columnLeft [0], rowmin - 0.5, columnLeft [0], rowmin + 197.5);
+	Graphics_setColour (graphics, Graphics_SILVER);
+	Graphics_fillRectangle (graphics, 0.0, columnLeft [0], rowmin - 0.5, rowmin + 197.5);
+	Graphics_setColour (graphics, Graphics_BLACK);
+	Graphics_line (graphics, columnLeft [0], rowmin - 0.5, columnLeft [0], rowmin + 197.5);
 	/*
 	 * Determine the width of the columns.
 	 */
 	for (long icol = colmin; icol <= colmax; icol ++) {
 		const char32 *columnLabel = table -> columnHeaders [icol]. label;
-		columnWidth = Graphics_textWidth (graphics.get(), Melder_integer (icol));
-		if (! columnLabel) columnLabel = U"";
-		cellWidth = Graphics_textWidth (graphics.get(), columnLabel);
+		columnWidth = Graphics_textWidth (graphics, Melder_integer (icol));
+		if (columnLabel == NULL) columnLabel = U"";
+		cellWidth = Graphics_textWidth (graphics, columnLabel);
 		if (cellWidth > columnWidth) columnWidth = cellWidth;
 		for (long irow = rowmin; irow <= rowmax; irow ++) {
 			const char32 *cell = Table_getStringValue_Assert (table, irow, icol);
-			Melder_assert (cell);
+			Melder_assert (cell != NULL);
 			if (cell [0] == U'\0') cell = U"?";
-			cellWidth = Graphics_textWidth (graphics.get(), cell);
+			cellWidth = Graphics_textWidth (graphics, cell);
 			if (cellWidth > columnWidth) columnWidth = cellWidth;
 		}
 		columnRight [icol - colmin] = columnLeft [icol - colmin] + columnWidth + 2 * spacing;
 		if (icol < colmax) columnLeft [icol - colmin + 1] = columnRight [icol - colmin];
 	}
 	/*
-		Text can be "graphic" or not.
-	*/
-	Graphics_setPercentSignIsItalic (our graphics.get(), our p_useTextStyles);
-	Graphics_setNumberSignIsBold (our graphics.get(), our p_useTextStyles);
-	Graphics_setCircumflexIsSuperscript (our graphics.get(), our p_useTextStyles);
-	Graphics_setUnderscoreIsSubscript (our graphics.get(), our p_useTextStyles);
-	/*
 	 * Show the row numbers.
 	 */
-	Graphics_text (graphics.get(), columnLeft [0] / 2, rowmin - 1, U"row");
+	Graphics_text (graphics, columnLeft [0] / 2, rowmin - 1, U"row");
 	for (long irow = rowmin; irow <= rowmax; irow ++) {
-		Graphics_text (graphics.get(), columnLeft [0] / 2, irow, irow);
+		Graphics_text (graphics, columnLeft [0] / 2, irow, irow);
 	}
 	/*
 	 * Show the column labels.
@@ -176,9 +150,9 @@ void structTableEditor :: v_draw () {
 	for (long icol = colmin; icol <= colmax; icol ++) {
 		double mid = (columnLeft [icol - colmin] + columnRight [icol - colmin]) / 2;
 		const char32 *columnLabel = table -> columnHeaders [icol]. label;
-		if (! columnLabel || columnLabel [0] == U'\0') columnLabel = U"?";
-		Graphics_text (graphics.get(), mid, rowmin - 2, icol);
-		Graphics_text (graphics.get(), mid, rowmin - 1, columnLabel);
+		if (columnLabel == NULL || columnLabel [0] == U'\0') columnLabel = U"?";
+		Graphics_text (graphics, mid, rowmin - 2, icol);
+		Graphics_text (graphics, mid, rowmin - 1, columnLabel);
 	}
 	/*
 	 * Show the cell contents.
@@ -187,60 +161,69 @@ void structTableEditor :: v_draw () {
 		for (long icol = colmin; icol <= colmax; icol ++) {
 			double mid = (columnLeft [icol - colmin] + columnRight [icol - colmin]) / 2;
 			const char32 *cell = Table_getStringValue_Assert (table, irow, icol);
-			Melder_assert (cell);
+			Melder_assert (cell != NULL);
 			if (cell [0] == U'\0') cell = U"?";
-			Graphics_text (graphics.get(), mid, irow, cell);
+			Graphics_text (graphics, mid, irow, cell);
 		}
 	}
 }
 
-bool structTableEditor :: v_click (double xclick, double yWC, bool shiftKeyPressed) {
-	Table table = static_cast<Table> (our data);
-	return true;
+int structTableEditor :: v_click (double xclick, double yWC, bool shiftKeyPressed) {
+	Table table = static_cast<Table> (data);
+	return 1;
 }
 
-static void gui_text_cb_changed (TableEditor me, GuiTextEvent /* event */) {
+static void gui_text_cb_change (I, GuiTextEvent event) {
+	iam (TableEditor);
+	(void) event;
+	Table table = static_cast<Table> (my data);
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_drawingarea_cb_expose (TableEditor me, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! my graphics) return;
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (TableEditor);
+	(void) event;
+	if (my graphics == NULL) return;
 	my v_draw ();
 }
 
-static void gui_drawingarea_cb_click (TableEditor me, GuiDrawingArea_ClickEvent event) {
-	if (! my graphics) return;
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (TableEditor);
+	if (my graphics == NULL) return;
 	double xWC, yWC;
-	Graphics_DCtoWC (my graphics.get(), event -> x, event -> y, & xWC, & yWC);
+	Graphics_DCtoWC (my graphics, event -> x, event -> y, & xWC, & yWC);
 	// TODO: implement selection
 }
 
-static void gui_drawingarea_cb_resize (TableEditor me, GuiDrawingArea_ResizeEvent /* event */) {
-	if (! my graphics) return;
-	Graphics_updateWs (my graphics.get());
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (TableEditor);
+	if (my graphics == NULL) return;
+	Graphics_updateWs (my graphics);
 }
 
-static void gui_cb_scrollHorizontal (TableEditor me, GuiScrollBarEvent event) {
+static void gui_cb_scrollHorizontal (I, GuiScrollBarEvent event) {
+	iam (TableEditor);
 	int value = GuiScrollBar_getValue (event -> scrollBar);
 	if (value != my leftColumn) {
 		my leftColumn = value;
 		#if cocoa || gtk || win
-			Graphics_updateWs (my graphics.get());   // wait for expose event
+			Graphics_updateWs (my graphics);   // wait for expose event
 		#else
-			Graphics_clearWs (my graphics.get());
+			Graphics_clearWs (my graphics);
 			my v_draw ();   // do not wait for expose event
 		#endif
 	}
 }
 
-static void gui_cb_scrollVertical (TableEditor me, GuiScrollBarEvent event) {
+static void gui_cb_scrollVertical (I, GuiScrollBarEvent event) {
+	iam (TableEditor);
 	int value = GuiScrollBar_getValue (event -> scrollBar);
 	if (value != my topRow) {
 		my topRow = value;
 		#if cocoa || gtk || win
-			Graphics_updateWs (my graphics.get());   // wait for expose event
+			Graphics_updateWs (my graphics);   // wait for expose event
 		#else
-			Graphics_clearWs (my graphics.get());
+			Graphics_clearWs (my graphics);
 			my v_draw ();   // do not wait for expose event
 		#endif
 	}
@@ -251,14 +234,14 @@ void structTableEditor :: v_createChildren () {
 	int y = Machine_getMenuBarHeight () + 4, scrollWidth = Machine_getScrollBarWidth ();
 
 	our text = GuiText_createShown (our d_windowForm, 0, 0, y, y + Machine_getTextHeight (), 0);
-	GuiText_setChangedCallback (our text, gui_text_cb_changed, this);
+	GuiText_setChangeCallback (our text, gui_text_cb_change, this);
 	y += Machine_getTextHeight () + 4;
 
 	our drawingArea = GuiDrawingArea_createShown (our d_windowForm, 0, - scrollWidth, y, - scrollWidth,
 		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, gui_drawingarea_cb_resize, this, 0);
 
 	our verticalScrollBar = GuiScrollBar_createShown (our d_windowForm, - scrollWidth, 0, y, - scrollWidth,
-		1, table -> rows.size + 1, 1, 1, 1, 10, gui_cb_scrollVertical, this, 0);
+		1, table -> rows -> size + 1, 1, 1, 1, 10, gui_cb_scrollVertical, this, 0);
 
 	our horizontalScrollBar = GuiScrollBar_createShown (our d_windowForm, 0, - scrollWidth, - scrollWidth, 0,
 		1, table -> numberOfColumns + 1, 1, 1, 1, 3, gui_cb_scrollHorizontal, this, GuiScrollBar_HORIZONTAL);
@@ -269,11 +252,8 @@ void structTableEditor :: v_createChildren () {
 void structTableEditor :: v_createMenus () {
 	TableEditor_Parent :: v_createMenus ();
 
-	Editor_addCommand (this, U"File", U"Preferences...", 0, menu_cb_preferences);
-	Editor_addCommand (this, U"File", U"-- before scripting --", 0, nullptr);
-
 	#ifndef macintosh
-	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Cut text", 'X', menu_cb_Cut);
 	Editor_addCommand (this, U"Edit", U"Cut", Editor_HIDDEN, menu_cb_Cut);
 	Editor_addCommand (this, U"Edit", U"Copy text", 'C', menu_cb_Copy);
@@ -290,10 +270,10 @@ void structTableEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"TableEditor help", U'?', menu_cb_TableEditorHelp);
 }
 
-autoTableEditor TableEditor_create (const char32 *title, Table table) {
+TableEditor TableEditor_create (const char32 *title, Table table) {
 	try {
 		autoTableEditor me = Thing_new (TableEditor);
-		Editor_init (me.get(), 0, 0, 700, 500, title, table);
+		Editor_init (me.peek(), 0, 0, 700, 500, title, table);
 		#if motif
 		Melder_assert (XtWindow (my drawingArea -> d_widget));
 		#endif
@@ -302,15 +282,15 @@ autoTableEditor TableEditor_create (const char32 *title, Table table) {
 		my selectedColumn = 1;
 		my selectedRow = 1;
 		my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-		double size_pixels = SIZE_INCHES * Graphics_getResolution (my graphics.get());
-		Graphics_setWsViewport (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels);
-		Graphics_setWsWindow (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels);
-		Graphics_setViewport (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels);
-		Graphics_setFont (my graphics.get(), kGraphics_font_COURIER);
-		Graphics_setFontSize (my graphics.get(), 12);
-		Graphics_setUnderscoreIsSubscript (my graphics.get(), false);
-		Graphics_setAtSignIsLink (my graphics.get(), true);
-		return me;
+		double size_pixels = SIZE_INCHES * Graphics_getResolution (my graphics);
+		Graphics_setWsViewport (my graphics, 0, size_pixels, 0, size_pixels);
+		Graphics_setWsWindow (my graphics, 0, size_pixels, 0, size_pixels);
+		Graphics_setViewport (my graphics, 0, size_pixels, 0, size_pixels);
+		Graphics_setFont (my graphics, kGraphics_font_COURIER);
+		Graphics_setFontSize (my graphics, 12);
+		Graphics_setUnderscoreIsSubscript (my graphics, FALSE);
+		Graphics_setAtSignIsLink (my graphics, TRUE);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableEditor not created.");
 	}
diff --git a/stat/TableEditor.h b/stat/TableEditor.h
index 8d213ec..bd0dc92 100644
--- a/stat/TableEditor.h
+++ b/stat/TableEditor.h
@@ -2,7 +2,7 @@
 #define _TableEditor_h_
 /* TableEditor.h
  *
- * Copyright (C) 2006-2011,2012,2015,2016 Paul Boersma
+ * Copyright (C) 2006-2011,2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,11 +30,9 @@ Thing_define (TableEditor, Editor) {
 	GuiDrawingArea drawingArea;
 	GuiScrollBar horizontalScrollBar, verticalScrollBar;
 	double columnLeft [kTableEditor_MAXNUM_VISIBLE_COLUMNS], columnRight [kTableEditor_MAXNUM_VISIBLE_COLUMNS];
-	autoGraphics graphics;
+	Graphics graphics;
 
-	void v_destroy () noexcept
-		override;
-	void v_info ()
+	void v_destroy ()
 		override;
 	void v_createChildren ()
 		override;
@@ -46,12 +44,10 @@ Thing_define (TableEditor, Editor) {
 		override;
 
 	virtual void v_draw ();
-	virtual bool v_click (double xWC, double yWC, bool shiftKeyPressed);
-
-	#include "TableEditor_prefs.h"
+	virtual int v_click (double xWC, double yWC, bool shiftKeyPressed);
 };
 
-autoTableEditor TableEditor_create (const char32 *title, Table table);
+TableEditor TableEditor_create (const char32 *title, Table table);
 
 /* End of file TableEditor.h */
 #endif
diff --git a/stat/TableEditor_prefs.h b/stat/TableEditor_prefs.h
deleted file mode 100644
index eb093d2..0000000
--- a/stat/TableEditor_prefs.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* TableEditor_prefs.h
- *
- * Copyright (C) 2016 Paul Boersma
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-prefs_begin (TableEditor)
-
-	prefs_add_bool_with_data   (TableEditor, useTextStyles,          1, false)
-
-prefs_end (TableEditor)
-
-/* End of file TableEditor_prefs.h */
diff --git a/stat/TableOfReal.cpp b/stat/TableOfReal.cpp
index eef2576..1383b65 100644
--- a/stat/TableOfReal.cpp
+++ b/stat/TableOfReal.cpp
@@ -1,6 +1,6 @@
 /* TableOfReal.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,9 +38,6 @@
 #include "oo_DESCRIPTION.h"
 #include "TableOfReal_def.h"
 
-Thing_implement (TableOfReal, Daata, 0);
-Thing_implement (TableOfRealList, Ordered, 0);
-
 static void fprintquotedstring (MelderFile file, const char32 *s) {
 	MelderFile_writeCharacter (file, U'\"');
 	if (s) { char32 c; while ((c = *s ++) != U'\0') { MelderFile_writeCharacter (file, c); if (c == U'\"') MelderFile_writeCharacter (file, c); } }
@@ -89,17 +86,17 @@ void structTableOfReal :: v_readText (MelderReadText a_text, int /*formatVersion
 }
 
 void structTableOfReal :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of rows: ", numberOfRows);
 	MelderInfo_writeLine (U"Number of columns: ", numberOfColumns);
 }
 
 const char32 * structTableOfReal :: v_getRowStr (long irow) {
-	if (irow < 1 || irow > numberOfRows) return nullptr;
+	if (irow < 1 || irow > numberOfRows) return NULL;
 	return rowLabels [irow] ? rowLabels [irow] : U"";
 }
 const char32 * structTableOfReal :: v_getColStr (long icol) {
-	if (icol < 1 || icol > numberOfColumns) return nullptr;
+	if (icol < 1 || icol > numberOfColumns) return NULL;
 	return columnLabels [icol] ? columnLabels [icol] : U"";
 }
 double structTableOfReal :: v_getMatrix (long irow, long icol) {
@@ -114,6 +111,8 @@ double structTableOfReal :: v_getColIndex (const char32 *columnLabel) {
 	return TableOfReal_columnLabelToIndex (this, columnLabel);
 }
 
+Thing_implement (TableOfReal, Data, 0);
+
 void TableOfReal_init (TableOfReal me, long numberOfRows, long numberOfColumns) {
 	if (numberOfRows < 1 || numberOfColumns < 1)
 		Melder_throw (U"Cannot create cell-less table.");
@@ -124,11 +123,11 @@ void TableOfReal_init (TableOfReal me, long numberOfRows, long numberOfColumns)
 	my data = NUMmatrix <double> (1, my numberOfRows, 1, my numberOfColumns);
 }
 
-autoTableOfReal TableOfReal_create (long numberOfRows, long numberOfColumns) {
+TableOfReal TableOfReal_create (long numberOfRows, long numberOfColumns) {
 	try {
 		autoTableOfReal me = Thing_new (TableOfReal);
-		TableOfReal_init (me.get(), numberOfRows, numberOfColumns);
-		return me;
+		TableOfReal_init (me.peek(), numberOfRows, numberOfColumns);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal not created.");
 	}
@@ -310,8 +309,8 @@ void TableOfReal_setColumnLabel (TableOfReal me, long columnNumber, const char32
 
 void TableOfReal_formula (TableOfReal me, const char32 *expression, Interpreter interpreter, TableOfReal thee) {
 	try {
-		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, true);
-		if (! thee) thee = me;
+		Formula_compile (interpreter, me, expression, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
+		if (thee == NULL) thee = me;
 		for (long irow = 1; irow <= my numberOfRows; irow ++) {
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 				struct Formula_Result result;
@@ -360,7 +359,7 @@ static void copyColumn (TableOfReal me, long myCol, TableOfReal thee, long thyCo
 	}
 }
 
-autoTableOfReal TableOfReal_extractRowsWhereColumn (TableOfReal me, long column, int which_Melder_NUMBER, double criterion) {
+TableOfReal TableOfReal_extractRowsWhereColumn (TableOfReal me, long column, int which_Melder_NUMBER, double criterion) {
 	try {
 		if (column < 1 || column > my numberOfColumns)
 			Melder_throw (U"No such column: ", column, U".");
@@ -372,18 +371,18 @@ autoTableOfReal TableOfReal_extractRowsWhereColumn (TableOfReal me, long column,
 		}
 		if (n == 0) Melder_throw (U"No row matches this criterion.");
 		autoTableOfReal thee = TableOfReal_create (n, my numberOfColumns);
-		copyColumnLabels (me, thee.get());
+		copyColumnLabels (me, thee.peek());
 		n = 0;
 		for (long irow = 1; irow <= my numberOfRows; irow ++)
 			if (Melder_numberMatchesCriterion (my data [irow] [column], which_Melder_NUMBER, criterion))
-				copyRow (me, irow, thee.get(), ++ n);
-		return thee;
+				copyRow (me, irow, thee.peek(), ++ n);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rows not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractRowsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion) {
+TableOfReal TableOfReal_extractRowsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		long n = 0;
 		for (long irow = 1; irow <= my numberOfRows; irow ++) {
@@ -394,18 +393,18 @@ autoTableOfReal TableOfReal_extractRowsWhereLabel (TableOfReal me, int which_Mel
 		if (n == 0)
 			Melder_throw (U"No row matches this criterion.");
 		autoTableOfReal thee = TableOfReal_create (n, my numberOfColumns);
-		copyColumnLabels (me, thee.get());
+		copyColumnLabels (me, thee.peek());
 		n = 0;
 		for (long irow = 1; irow <= my numberOfRows; irow ++)
 			if (Melder_stringMatchesCriterion (my rowLabels [irow], which_Melder_STRING, criterion))
-				copyRow (me, irow, thee.get(), ++ n);
-		return thee;
+				copyRow (me, irow, thee.peek(), ++ n);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rows not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractColumnsWhereRow (TableOfReal me, long row, int which_Melder_NUMBER, double criterion) {
+TableOfReal TableOfReal_extractColumnsWhereRow (TableOfReal me, long row, int which_Melder_NUMBER, double criterion) {
 	try {
 		if (row < 1 || row > my numberOfRows)
 			Melder_throw (U"No such row: ", row, U".");
@@ -418,18 +417,18 @@ autoTableOfReal TableOfReal_extractColumnsWhereRow (TableOfReal me, long row, in
 		if (n == 0) Melder_throw (U"No column matches this criterion.");
 
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, n);
-		copyRowLabels (me, thee.get());
+		copyRowLabels (me, thee.peek());
 		n = 0;
 		for (long icol = 1; icol <= my numberOfColumns; icol ++)
 			if (Melder_numberMatchesCriterion (my data [row] [icol], which_Melder_NUMBER, criterion))
-				copyColumn (me, icol, thee.get(), ++ n);
-		return thee;
+				copyColumn (me, icol, thee.peek(), ++ n);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": columns not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractColumnsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion) {
+TableOfReal TableOfReal_extractColumnsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion) {
 	try {
 		long n = 0;
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
@@ -440,14 +439,14 @@ autoTableOfReal TableOfReal_extractColumnsWhereLabel (TableOfReal me, int which_
 		if (n == 0) Melder_throw (U"No column matches this criterion.");
 
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, n);
-		copyRowLabels (me, thee.get());
+		copyRowLabels (me, thee.peek());
 		n = 0;
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			if (Melder_stringMatchesCriterion (my columnLabels [icol], which_Melder_STRING, criterion)) {
-				copyColumn (me, icol, thee.get(), ++ n);
+				copyColumn (me, icol, thee.peek(), ++ n);
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": columns not extracted.");
 	}
@@ -538,37 +537,37 @@ static long *getElementsOfRanges (const char32 *ranges, long maximumElement, lon
 	return elements.transfer();
 }
 
-autoTableOfReal TableOfReal_extractRowRanges (TableOfReal me, const char32 *ranges) {
+TableOfReal TableOfReal_extractRowRanges (TableOfReal me, const char32 *ranges) {
 	try {
 		long numberOfElements;
 		autoNUMvector <long> elements (getElementsOfRanges (ranges, my numberOfRows, & numberOfElements, U"row"), 1);
 		autoTableOfReal thee = TableOfReal_create (numberOfElements, my numberOfColumns);
-		copyColumnLabels (me, thee.get());
+		copyColumnLabels (me, thee.peek());
 		for (long ielement = 1; ielement <= numberOfElements; ielement ++)
-			copyRow (me, elements [ielement], thee.get(), ielement);
-		return thee;
+			copyRow (me, elements [ielement], thee.peek(), ielement);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": row ranges not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractColumnRanges (TableOfReal me, const char32 *ranges) {
+TableOfReal TableOfReal_extractColumnRanges (TableOfReal me, const char32 *ranges) {
 	try {
 		long numberOfElements;
 		autoNUMvector <long> elements (getElementsOfRanges (ranges, my numberOfColumns, & numberOfElements, U"column"), 1);
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, numberOfElements);
-		copyRowLabels (me, thee.get());
+		copyRowLabels (me, thee.peek());
 		for (long ielement = 1; ielement <= numberOfElements; ielement ++)
-			copyColumn (me, elements [ielement], thee.get(), ielement);
-		return thee;
+			copyColumn (me, elements [ielement], thee.peek(), ielement);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": column ranges not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter) {
+TableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter) {
 	try {
-		Formula_compile (interpreter, me, condition, kFormula_EXPRESSION_TYPE_NUMERIC, true);
+		Formula_compile (interpreter, me, condition, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
 		/*
 		 * Count the new number of rows.
 		 */
@@ -589,7 +588,7 @@ autoTableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *cond
 		 * Create room for the result.
 		 */	
 		autoTableOfReal thee = TableOfReal_create (numberOfElements, my numberOfColumns);
-		copyColumnLabels (me, thee.get());
+		copyColumnLabels (me, thee.peek());
 		/*
 		 * Store the result.
 		 */
@@ -599,20 +598,20 @@ autoTableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *cond
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
 				if (result. result.numericResult != 0.0) {
-					copyRow (me, irow, thee.get(), ++ numberOfElements);
+					copyRow (me, irow, thee.peek(), ++ numberOfElements);
 					break;
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": rows not extracted.");
 	}
 }
 
-autoTableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter) {
+TableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter) {
 	try {
-		Formula_compile (interpreter, me, condition, kFormula_EXPRESSION_TYPE_NUMERIC, true);
+		Formula_compile (interpreter, me, condition, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
 		/*
 		 * Count the new number of columns.
 		 */
@@ -633,7 +632,7 @@ autoTableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *c
 		 * Create room for the result.
 		 */	
 		autoTableOfReal thee = TableOfReal_create (my numberOfRows, numberOfElements);
-		copyRowLabels (me, thee.get());
+		copyRowLabels (me, thee.peek());
 		/*
 		 * Store the result.
 		 */
@@ -643,12 +642,12 @@ autoTableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *c
 				struct Formula_Result result;
 				Formula_run (irow, icol, & result);
 				if (result. result.numericResult != 0.0) {
-					copyColumn (me, icol, thee.get(), ++ numberOfElements);
+					copyColumn (me, icol, thee.peek(), ++ numberOfElements);
 					break;
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": columns not extracted.");
 	}
@@ -656,7 +655,7 @@ autoTableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *c
 
 /***** EXTRACT *****/
 
-autoStrings TableOfReal_extractRowLabelsAsStrings (TableOfReal me) {
+Strings TableOfReal_extractRowLabelsAsStrings (TableOfReal me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector <char32 *> (1, my numberOfRows);
@@ -664,13 +663,13 @@ autoStrings TableOfReal_extractRowLabelsAsStrings (TableOfReal me) {
 		for (long irow = 1; irow <= my numberOfRows; irow ++) {
 			thy strings [irow] = Melder_dup (my rowLabels [irow] ? my rowLabels [irow] : U"");
 		}
-		return thee;
+		return thee.transfer();	
 	} catch (MelderError) {
 		Melder_throw (me, U": row labels not extracted.");
 	}
 }
 
-autoStrings TableOfReal_extractColumnLabelsAsStrings (TableOfReal me) {
+Strings TableOfReal_extractColumnLabelsAsStrings (TableOfReal me) {
 	try {
 		autoStrings thee = Thing_new (Strings);
 		thy strings = NUMvector <char32 *> (1, my numberOfColumns);
@@ -678,7 +677,7 @@ autoStrings TableOfReal_extractColumnLabelsAsStrings (TableOfReal me) {
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			thy strings [icol] = Melder_dup (my columnLabels [icol] ? my columnLabels [icol] : U"");
 		}
-		return thee;
+		return thee.transfer();	
 	} catch (MelderError) {
 		Melder_throw (me, U": column labels not extracted.");
 	}
@@ -732,16 +731,16 @@ static double getMaxRowLabelWidth (TableOfReal me, Graphics graphics, long rowmi
 	if (! my rowLabels) return 0.0;
 	fixRows (me, & rowmin, & rowmax);
 	for (long irow = rowmin; irow <= rowmax; irow ++) if (my rowLabels [irow] && my rowLabels [irow] [0]) {
-		double textWidth = Graphics_textWidth_ps (graphics, my rowLabels [irow], true);   // SILIPA is bigger than XIPA
+		double textWidth = Graphics_textWidth_ps (graphics, my rowLabels [irow], TRUE);   /* SILIPA is bigger than XIPA */
 		if (textWidth > maxWidth) maxWidth = textWidth;
 	}
 	return maxWidth;
 }
 static double getLeftMargin (Graphics graphics) {
-	return Graphics_dxMMtoWC (graphics, 1.0);
+	return Graphics_dxMMtoWC (graphics, 1);
 }
 static double getLineSpacing (Graphics graphics) {
-	return Graphics_dyMMtoWC (graphics, 1.5 * Graphics_inqFontSize (graphics) * 25.4 / 72.0);
+	return Graphics_dyMMtoWC (graphics, 1.5 * Graphics_inqFontSize (graphics) * 25.4 / 72);
 }
 static double getMaxColumnLabelHeight (TableOfReal me, Graphics graphics, long colmin, long colmax) {
 	double maxHeight = 0.0, lineSpacing = getLineSpacing (graphics);
@@ -756,7 +755,7 @@ static double getMaxColumnLabelHeight (TableOfReal me, Graphics graphics, long c
 void TableOfReal_drawAsNumbers (TableOfReal me, Graphics graphics, long rowmin, long rowmax, int iformat, int precision) {
 	fixRows (me, & rowmin, & rowmax);
 	Graphics_setInner (graphics);
-	Graphics_setWindow (graphics, 0.5, my numberOfColumns + 0.5, 0.0, 1.0);
+	Graphics_setWindow (graphics, 0.5, my numberOfColumns + 0.5, 0, 1);
 	double leftMargin = getLeftMargin (graphics);   // not earlier!
 	double lineSpacing = getLineSpacing (graphics);   // not earlier!
 	double maxTextWidth = getMaxRowLabelWidth (me, graphics, rowmin, rowmax);
@@ -782,7 +781,7 @@ void TableOfReal_drawAsNumbers (TableOfReal me, Graphics graphics, long rowmin,
 	if (maxTextHeight != 0.0) {
 		double left = 0.5;
 		if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * leftMargin;
-		Graphics_line (graphics, left, 1.0, my numberOfColumns + 0.5, 1.0);
+		Graphics_line (graphics, left, 1, my numberOfColumns + 0.5, 1);
 	}
 	Graphics_unsetInner (graphics);
 }
@@ -792,15 +791,15 @@ void TableOfReal_drawAsNumbers_if (TableOfReal me, Graphics graphics, long rowmi
 {
 	try {
 		autoMatrix original = TableOfReal_to_Matrix (me);
-		autoMatrix conditions = Data_copy (original.get());
+		autoMatrix conditions = original.clone ();
 		fixRows (me, & rowmin, & rowmax);
 		Graphics_setInner (graphics);
-		Graphics_setWindow (graphics, 0.5, my numberOfColumns + 0.5, 0.0, 1.0);
+		Graphics_setWindow (graphics, 0.5, my numberOfColumns + 0.5, 0, 1);
 		double leftMargin = getLeftMargin (graphics);   // not earlier!
 		double lineSpacing = getLineSpacing (graphics);   // not earlier!
 		double maxTextWidth = getMaxRowLabelWidth (me, graphics, rowmin, rowmax);
 		double maxTextHeight = getMaxColumnLabelHeight (me, graphics, 1, my numberOfColumns);
-		Matrix_formula (original.get(), conditionFormula, interpreter, conditions.get());
+		Matrix_formula (original.peek(), conditionFormula, interpreter, conditions.peek());
 
 		Graphics_setTextAlignment (graphics, Graphics_CENTRE, Graphics_BOTTOM);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
@@ -822,7 +821,7 @@ void TableOfReal_drawAsNumbers_if (TableOfReal me, Graphics graphics, long rowmi
 		if (maxTextHeight != 0.0) {
 			double left = 0.5;
 			if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * leftMargin;
-			Graphics_line (graphics, left, 1.0, my numberOfColumns + 0.5, 1.0);
+			Graphics_line (graphics, left, 1, my numberOfColumns + 0.5, 1);
 		}
 		Graphics_unsetInner (graphics);
 	} catch (MelderError) {
@@ -841,7 +840,7 @@ void TableOfReal_drawVerticalLines (TableOfReal me, Graphics graphics, long rowm
 
 	if (maxTextWidth > 0.0) colmin -= 1;
 	for (long col = colmin + 1; col <= colmax; col ++)
-		Graphics_line (graphics, col - 0.5, 1.0 + maxTextHeight, col - 0.5, 1.0 - lineSpacing * (rowmax - rowmin + 1));
+		Graphics_line (graphics, col - 0.5, 1 + maxTextHeight, col - 0.5, 1 - lineSpacing * (rowmax - rowmin + 1));
 	Graphics_unsetInner (graphics);
 }
 
@@ -849,16 +848,16 @@ void TableOfReal_drawLeftAndRightLines (TableOfReal me, Graphics graphics, long
 	long colmin = 1, colmax = my numberOfColumns;
 	fixRows (me, & rowmin, & rowmax);
 	Graphics_setInner (graphics);
-	Graphics_setWindow (graphics, colmin - 0.5, colmax + 0.5, 0.0, 1.0);
+	Graphics_setWindow (graphics, colmin - 0.5, colmax + 0.5, 0, 1);
 	double lineSpacing = getLineSpacing (graphics);
 	double maxTextWidth = getMaxRowLabelWidth (me, graphics, rowmin, rowmax);
 	double maxTextHeight = getMaxColumnLabelHeight (me, graphics, 1, my numberOfColumns);
 
 	double left = 0.5;
-	if (maxTextWidth > 0.0) left -= maxTextWidth + 2.0 * lineSpacing;
+	if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * lineSpacing;
 	double right = colmax + 0.5;
-	double top = 1.0 + maxTextHeight;
-	double bottom = 1.0 - lineSpacing * (rowmax - rowmin + 1);
+	double top = 1 + maxTextHeight;
+	double bottom = 1 - lineSpacing * (rowmax - rowmin + 1);
 	Graphics_line (graphics, left, top, left, bottom);
 	Graphics_line (graphics, right, top, right, bottom);
 	Graphics_unsetInner (graphics);
@@ -875,11 +874,11 @@ void TableOfReal_drawHorizontalLines (TableOfReal me, Graphics graphics, long ro
 
 	double left = 0.5;
 	double top = rowmin;
-	if (maxTextWidth > 0.0) left -= maxTextWidth + 2.0 * lineSpacing;
+	if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * lineSpacing;
 	if (maxTextHeight > 0.0) rowmin -= 1;
 	double right = colmax + 0.5;
 	for (long irow = rowmin; irow < rowmax; irow ++) {
-		double y = 1.0 - lineSpacing * (irow - top + 1);
+		double y = 1 - lineSpacing * (irow - top + 1);
 		Graphics_line (graphics, left, y, right, y);
 	}
 	Graphics_unsetInner (graphics);
@@ -889,7 +888,7 @@ void TableOfReal_drawTopAndBottomLines (TableOfReal me, Graphics graphics, long
 	long colmin = 1, colmax = my numberOfColumns;
 	fixRows (me, & rowmin, & rowmax);
 	Graphics_setInner (graphics);
-	Graphics_setWindow (graphics, colmin - 0.5, colmax + 0.5, 0.0, 1.0);
+	Graphics_setWindow (graphics, colmin - 0.5, colmax + 0.5, 0, 1);
 	double lineSpacing = getLineSpacing (graphics);
 	double maxTextWidth = getMaxRowLabelWidth (me, graphics, rowmin, rowmax);
 	double maxTextHeight = getMaxColumnLabelHeight (me, graphics, 1, my numberOfColumns);
@@ -897,8 +896,8 @@ void TableOfReal_drawTopAndBottomLines (TableOfReal me, Graphics graphics, long
 	double left = 0.5;
 	if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * lineSpacing;
 	double right = colmax + 0.5;
-	double top = 1.0 + maxTextHeight;
-	double bottom = 1.0 - lineSpacing * (rowmax - rowmin + 1);
+	double top = 1 + maxTextHeight;
+	double bottom = 1 - lineSpacing * (rowmax - rowmin + 1);
 	Graphics_line (graphics, left, top, right, top);
 	Graphics_line (graphics, left, bottom, right, bottom);
 	Graphics_unsetInner (graphics);
@@ -907,7 +906,7 @@ void TableOfReal_drawTopAndBottomLines (TableOfReal me, Graphics graphics, long
 void TableOfReal_drawAsSquares (TableOfReal me, Graphics graphics, long rowmin, long rowmax,
 	long colmin, long colmax, int garnish)
 {
-	double dx = 1.0, dy = 1.0;
+	double dx = 1, dy = 1;
 	Graphics_Colour colour = Graphics_inqColour (graphics);
 	fixRows (me, & rowmin, & rowmax);
 	fixColumns (me, & colmin, & colmax);
@@ -925,8 +924,8 @@ void TableOfReal_drawAsSquares (TableOfReal me, Graphics graphics, long rowmin,
 			double x = icol;
 			/* two neighbouring squares should not touch -> 0.95 */
 			double d = 0.95 * sqrt (fabs (my data [irow] [icol]) / datamax);
-			double x1WC = x - d * dx / 2.0, x2WC = x + d * dx / 2.0;
-			double y1WC = y - d * dy / 2.0, y2WC = y + d * dy / 2.0;
+			double x1WC = x - d * dx / 2, x2WC = x + d * dx / 2;
+			double y1WC = y - d * dy / 2, y2WC = y + d * dy / 2;
 			if (my data [irow] [icol] > 0) Graphics_setColour (graphics, Graphics_WHITE);
 			Graphics_fillRectangle (graphics, x1WC, x2WC, y1WC, y2WC);
 			Graphics_setColour (graphics, colour);
@@ -937,68 +936,68 @@ void TableOfReal_drawAsSquares (TableOfReal me, Graphics graphics, long rowmin,
 	Graphics_unsetInner (graphics);
 	if (garnish) {
 		for (long irow = rowmin; irow <= rowmax; irow ++) if (my rowLabels [irow]) 
-			Graphics_markLeft (graphics, rowmax + rowmin - irow, false, false, false, my rowLabels [irow]);
+			Graphics_markLeft (graphics, rowmax + rowmin - irow, 0, 0, 0, my rowLabels [irow]);
 		for (long icol = colmin; icol <= colmax; icol ++) if (my columnLabels [icol])
-			Graphics_markTop (graphics, icol, false, false, false, my columnLabels [icol]);
+			Graphics_markTop (graphics, icol, 0, 0, 0, my columnLabels [icol]);
 	}
 }
 
-autoTableOfReal TablesOfReal_append (TableOfReal me, TableOfReal thee) {
+Any TablesOfReal_append (TableOfReal me, TableOfReal thee) {
 	try {
 		if (thy numberOfColumns != my numberOfColumns)
 			Melder_throw (U"Numbers of columns are ", my numberOfColumns, U" and ", thy numberOfColumns, U" but should be equal.");
-		autoTableOfReal him = Thing_newFromClass (my classInfo).static_cast_move <structTableOfReal> ();
-		TableOfReal_init (him.get(), my numberOfRows + thy numberOfRows, my numberOfColumns);
+		autoTableOfReal him = static_cast <TableOfReal> (Thing_newFromClass (my classInfo));
+		TableOfReal_init (him.peek(), my numberOfRows + thy numberOfRows, my numberOfColumns);
 		/* Unsafe: new attributes not initialized. */
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
-			TableOfReal_setColumnLabel (him.get(), icol, my columnLabels [icol]);
+			TableOfReal_setColumnLabel (him.peek(), icol, my columnLabels [icol]);
 		}
 		for (long irow = 1; irow <= my numberOfRows; irow ++) {
-			TableOfReal_setRowLabel (him.get(), irow, my rowLabels [irow]);
+			TableOfReal_setRowLabel (him.peek(), irow, my rowLabels [irow]);
 			for (long icol = 1; icol <= my numberOfColumns; icol ++)
 				his data [irow] [icol] = my data [irow] [icol];
 		}
 		for (long irow = 1; irow <= thy numberOfRows; irow ++) {
 			long hisRow = irow + my numberOfRows;
-			TableOfReal_setRowLabel (him.get(), hisRow, thy rowLabels [irow]);
+			TableOfReal_setRowLabel (him.peek(), hisRow, thy rowLabels [irow]);
 			for (long icol = 1; icol <= my numberOfColumns; icol ++)
 				his data [hisRow] [icol] = thy data [irow] [icol];
 		}
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal objects not appended.");
 	}
 }
 
-autoTableOfReal TablesOfReal_appendMany (OrderedOf<structTableOfReal>* me) {
+Any TablesOfReal_appendMany (Collection me) {
 	try {
 		if (my size == 0) Melder_throw (U"Cannot add zero tables.");
-		TableOfReal thee = my at [1];
+		TableOfReal thee = static_cast <TableOfReal> (my item [1]);
 		long totalNumberOfRows = thy numberOfRows;
 		long numberOfColumns = thy numberOfColumns;
 		for (long itab = 2; itab <= my size; itab ++) {
-			thee = my at [itab];
+			thee = static_cast <TableOfReal> (my item [itab]);
 			totalNumberOfRows += thy numberOfRows;
 			if (thy numberOfColumns != numberOfColumns) Melder_throw (U"Numbers of columns do not match.");
 		}
-		autoTableOfReal him = Thing_newFromClass (thy classInfo).static_cast_move <structTableOfReal> ();
-		TableOfReal_init (him.get(), totalNumberOfRows, numberOfColumns);
+		autoTableOfReal him = static_cast <TableOfReal> (Thing_newFromClass (thy classInfo));
+		TableOfReal_init (him.peek(), totalNumberOfRows, numberOfColumns);
 		/* Unsafe: new attributes not initialized. */
 		for (long icol = 1; icol <= numberOfColumns; icol ++) {
-			TableOfReal_setColumnLabel (him.get(), icol, thy columnLabels [icol]);
+			TableOfReal_setColumnLabel (him.peek(), icol, thy columnLabels [icol]);
 		}
 		totalNumberOfRows = 0;
 		for (long itab = 1; itab <= my size; itab ++) {
-			thee = my at [itab];
+			thee = static_cast <TableOfReal> (my item [itab]);
 			for (long irow = 1; irow <= thy numberOfRows; irow ++) {
 				totalNumberOfRows ++;
-				TableOfReal_setRowLabel (him.get(), totalNumberOfRows, thy rowLabels [irow]);
+				TableOfReal_setRowLabel (him.peek(), totalNumberOfRows, thy rowLabels [irow]);
 				for (long icol = 1; icol <= numberOfColumns; icol ++)
 					his data [totalNumberOfRows] [icol] = thy data [irow] [icol];
 			}
 		}
 		Melder_assert (totalNumberOfRows == his numberOfRows);
-		return him;
+		return him.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal objects not appended.");
 	}
@@ -1008,16 +1007,16 @@ static void TableOfReal_sort (TableOfReal me, bool useLabels, long column1, long
 	for (long irow = 1; irow < my numberOfRows; irow ++) for (long jrow = irow + 1; jrow <= my numberOfRows; jrow ++) {
 		char32 *tmpString;
 		if (useLabels) {
-			if (my rowLabels [irow]) {
-				if (my rowLabels [jrow]) {
+			if (my rowLabels [irow] != NULL) {
+				if (my rowLabels [jrow] != NULL) {
 					int compare = str32cmp (my rowLabels [irow], my rowLabels [jrow]);
 					if (compare < 0) continue;
 					if (compare > 0) goto swap;
 				} else goto swap;
-			} else if (my rowLabels [jrow]) continue;
+			} else if (my rowLabels [jrow] != NULL) continue;
 		}
 		/*
-		 * If we arrive here, the two labels are equal or both null (or useLabels is `false`).
+		 * If we arrive here, the two labels are equal or both NULL (or useLabels is FALSE).
 		 */
 		if (column1 > 0 && column1 <= my numberOfColumns) {
 			if (my data [irow] [column1] < my data [jrow] [column1]) continue;
@@ -1051,24 +1050,24 @@ void TableOfReal_sortByColumn (TableOfReal me, long column1, long column2) {
 	TableOfReal_sort (me, false, column1, column2);
 }
 
-autoTableOfReal Table_to_TableOfReal (Table me, long labelColumn) {
+TableOfReal Table_to_TableOfReal (Table me, long labelColumn) {
 	try {
 		if (labelColumn < 1 || labelColumn > my numberOfColumns) labelColumn = 0;
-		autoTableOfReal thee = TableOfReal_create (my rows.size, labelColumn ? my numberOfColumns - 1 : my numberOfColumns);
+		autoTableOfReal thee = TableOfReal_create (my rows -> size, labelColumn ? my numberOfColumns - 1 : my numberOfColumns);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			Table_numericize_Assert (me, icol);
 		}
 		if (labelColumn) {
 			for (long icol = 1; icol < labelColumn; icol ++) {
-				TableOfReal_setColumnLabel (thee.get(), icol, my columnHeaders [icol]. label);
+				TableOfReal_setColumnLabel (thee.peek(), icol, my columnHeaders [icol]. label);
 			}
 			for (long icol = labelColumn + 1; icol <= my numberOfColumns; icol ++) {
-				TableOfReal_setColumnLabel (thee.get(), icol - 1, my columnHeaders [icol]. label);
+				TableOfReal_setColumnLabel (thee.peek(), icol - 1, my columnHeaders [icol]. label);
 			}
-			for (long irow = 1; irow <= my rows.size; irow ++) {
-				TableRow row = my rows.at [irow];
+			for (long irow = 1; irow <= my rows -> size; irow ++) {
+				TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 				char32 *string = row -> cells [labelColumn]. string;
-				TableOfReal_setRowLabel (thee.get(), irow, string ? string : U"");
+				TableOfReal_setRowLabel (thee.peek(), irow, string ? string : U"");
 				for (long icol = 1; icol < labelColumn; icol ++) {
 					thy data [irow] [icol] = row -> cells [icol]. number;   // Optimization.
 					//thy data [irow] [icol] = Table_getNumericValue_Assert (me, irow, icol);
@@ -1080,40 +1079,40 @@ autoTableOfReal Table_to_TableOfReal (Table me, long labelColumn) {
 			}
 		} else {
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
-				TableOfReal_setColumnLabel (thee.get(), icol, my columnHeaders [icol]. label);
+				TableOfReal_setColumnLabel (thee.peek(), icol, my columnHeaders [icol]. label);
 			}
-			for (long irow = 1; irow <= my rows.size; irow ++) {
-				TableRow row = my rows.at [irow];
+			for (long irow = 1; irow <= my rows -> size; irow ++) {
+				TableRow row = static_cast <TableRow> (my rows -> item [irow]);
 				for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 					thy data [irow] [icol] = row -> cells [icol]. number;   // Optimization.
 					//thy data [irow] [icol] = Table_getNumericValue_Assert (me, irow, icol);
 				}
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to TableOfReal.");
 	}
 }
 
-autoTable TableOfReal_to_Table (TableOfReal me, const char32 *labelOfFirstColumn) {
+Table TableOfReal_to_Table (TableOfReal me, const char32 *labelOfFirstColumn) {
 	try {
 		autoTable thee = Table_createWithoutColumnNames (my numberOfRows, my numberOfColumns + 1);
-		Table_setColumnLabel (thee.get(), 1, labelOfFirstColumn);
+		Table_setColumnLabel (thee.peek(), 1, labelOfFirstColumn);
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			char32 *columnLabel = my columnLabels [icol];
 			thy columnHeaders [icol + 1]. label = Melder_dup (columnLabel && columnLabel [0] ? columnLabel : U"?");
 		}
-		for (long irow = 1; irow <= thy rows.size; irow ++) {
+		for (long irow = 1; irow <= thy rows -> size; irow ++) {
 			char32 *stringValue = my rowLabels [irow];
-			TableRow row = thy rows.at [irow];
+			TableRow row = static_cast <TableRow> (thy rows -> item [irow]);
 			row -> cells [1]. string = Melder_dup (stringValue && stringValue [0] ? stringValue : U"?");
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 				double numericValue = my data [irow] [icol];
 				row -> cells [icol + 1]. string = Melder_dup (Melder_double (numericValue));
 			}
 		}
-		return thee;
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not converted to Table.");
 	}
@@ -1126,12 +1125,12 @@ void TableOfReal_writeToHeaderlessSpreadsheetFile (TableOfReal me, MelderFile fi
 		for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 			MelderString_appendCharacter (& buffer, U'\t');
 			char32 *s = my columnLabels [icol];
-			MelderString_append (& buffer, ( s && s [0] != U'\0' ? s : U"?" ));
+			MelderString_append (& buffer, s != NULL && s [0] != U'\0' ? s : U"?");
 		}
 		MelderString_appendCharacter (& buffer, U'\n');
 		for (long irow = 1; irow <= my numberOfRows; irow ++) {
 			char32 *s = my rowLabels [irow];
-			MelderString_append (& buffer, ( s && s [0] != U'\0' ? s : U"?" ));
+			MelderString_append (& buffer, s != NULL && s [0] != U'\0' ? s : U"?");
 			for (long icol = 1; icol <= my numberOfColumns; icol ++) {
 				MelderString_appendCharacter (& buffer, U'\t');
 				double x = my data [irow] [icol];
@@ -1145,7 +1144,7 @@ void TableOfReal_writeToHeaderlessSpreadsheetFile (TableOfReal me, MelderFile fi
 	}
 }
 
-autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file) {
+TableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file) {
 	try {
 		autostring32 string = MelderFile_readText (file);
 		long nrow, ncol, nelements;
@@ -1157,11 +1156,11 @@ autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file)
 		char32 *p = & string [0];
 		for (;;) {
 			char32 kar = *p++;
-			if (kar == U'\n' || kar == U'\0') break;
-			if (kar == U' ' || kar == U'\t') continue;
+			if (kar == '\n' || kar == '\0') break;
+			if (kar == ' ' || kar == '\t') continue;
 			ncol ++;
-			do { kar = *p++; } while (kar != U' ' && kar != U'\t' && kar != U'\n' && kar != U'\0');
-			if (kar == U'\n' || kar == U'\0') break;
+			do { kar = *p++; } while (kar != ' ' && kar != '\t' && kar != '\n' && kar != '\0');
+			if (kar == '\n' || kar == '\0') break;
 		}
 		ncol --;
 		if (ncol < 1) Melder_throw (U"No columns.");
@@ -1206,7 +1205,7 @@ autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file)
 				MelderString_appendCharacter (& buffer, *p);
 				p ++;
 			}
-			TableOfReal_setColumnLabel (me.get(), icol, buffer.string);
+			TableOfReal_setColumnLabel (me.peek(), icol, buffer.string);
 		}
 		for (long irow = 1; irow <= nrow; irow ++) {
 			while (*p == U' ' || *p == U'\t' || *p == U'\n') { Melder_assert (*p != U'\0'); p ++; }
@@ -1215,7 +1214,7 @@ autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file)
 				MelderString_appendCharacter (& buffer, *p);
 				p ++;
 			}
-			TableOfReal_setRowLabel (me.get(), irow, buffer.string);
+			TableOfReal_setRowLabel (me.peek(), irow, buffer.string);
 			for (long icol = 1; icol <= ncol; icol ++) {
 				while (*p == U' ' || *p == U'\t' || *p == U'\n') { Melder_assert (*p != U'\0'); p ++; }
 				MelderString_empty (& buffer);
@@ -1226,7 +1225,7 @@ autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file)
 				my data [irow] [icol] = Melder_atof (buffer.string);   // if cell contains a string, this will be 0
 			}
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"TableOfReal: tab-separated file ", file, U" not read.");
 	}
diff --git a/stat/TableOfReal.h b/stat/TableOfReal.h
index 3629367..8a6429a 100644
--- a/stat/TableOfReal.h
+++ b/stat/TableOfReal.h
@@ -23,12 +23,13 @@
 #include "Collection.h"
 #include "Strings_.h"
 #include "Table.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 #include "TableOfReal_def.h"
+oo_CLASS_CREATE (TableOfReal, Data);
 
 void TableOfReal_init (TableOfReal me, long numberOfRows, long numberOfColumns);
-autoTableOfReal TableOfReal_create (long numberOfRows, long numberOfColumns);
+TableOfReal TableOfReal_create (long numberOfRows, long numberOfColumns);
 void TableOfReal_removeRow (TableOfReal me, long irow);
 void TableOfReal_removeColumn (TableOfReal me, long icol);
 void TableOfReal_insertRow (TableOfReal me, long irow);
@@ -40,8 +41,8 @@ long TableOfReal_columnLabelToIndex (TableOfReal me, const char32 *label /* catt
 double TableOfReal_getColumnMean (TableOfReal me, long icol);
 double TableOfReal_getColumnStdev (TableOfReal me, long icol);
 
-autoTableOfReal Table_to_TableOfReal (Table me, long labelColumn);
-autoTable TableOfReal_to_Table (TableOfReal me, const char32 *labelOfFirstColumn);
+TableOfReal Table_to_TableOfReal (Table me, long labelColumn);
+Table TableOfReal_to_Table (TableOfReal me, const char32 *labelOfFirstColumn);
 void TableOfReal_formula (TableOfReal me, const char32 *expression, Interpreter interpreter, TableOfReal target);
 void TableOfReal_drawAsNumbers (TableOfReal me, Graphics g, long rowmin, long rowmax, int iformat, int precision);
 void TableOfReal_drawAsNumbers_if (TableOfReal me, Graphics g, long rowmin, long rowmax, int iformat, int precision,
@@ -53,33 +54,28 @@ void TableOfReal_drawHorizontalLines (TableOfReal me, Graphics g, long rowmin, l
 void TableOfReal_drawLeftAndRightLines (TableOfReal me, Graphics g, long rowmin, long rowmax);
 void TableOfReal_drawTopAndBottomLines (TableOfReal me, Graphics g, long rowmin, long rowmax);
 
-autoTableOfReal TablesOfReal_append (TableOfReal me, TableOfReal thee);
-autoTableOfReal TablesOfReal_appendMany (OrderedOf<structTableOfReal>* me);
+Any TablesOfReal_append (TableOfReal me, TableOfReal thee);
+Any TablesOfReal_appendMany (Collection me);
 void TableOfReal_sortByLabel (TableOfReal me, long column1, long column2);
 void TableOfReal_sortByColumn (TableOfReal me, long column1, long column2);
 
 void TableOfReal_writeToHeaderlessSpreadsheetFile (TableOfReal me, MelderFile file);
-autoTableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file);
+TableOfReal TableOfReal_readFromHeaderlessSpreadsheetFile (MelderFile file);
 
-autoTableOfReal TableOfReal_extractRowRanges (TableOfReal me, const char32 *ranges);
-autoTableOfReal TableOfReal_extractColumnRanges (TableOfReal me, const char32 *ranges);
+TableOfReal TableOfReal_extractRowRanges (TableOfReal me, const char32 *ranges);
+TableOfReal TableOfReal_extractColumnRanges (TableOfReal me, const char32 *ranges);
 
-autoTableOfReal TableOfReal_extractRowsWhereColumn (TableOfReal me, long icol, int which_Melder_NUMBER, double criterion);
-autoTableOfReal TableOfReal_extractColumnsWhereRow (TableOfReal me, long icol, int which_Melder_NUMBER, double criterion);
+TableOfReal TableOfReal_extractRowsWhereColumn (TableOfReal me, long icol, int which_Melder_NUMBER, double criterion);
+TableOfReal TableOfReal_extractColumnsWhereRow (TableOfReal me, long icol, int which_Melder_NUMBER, double criterion);
 
-autoTableOfReal TableOfReal_extractRowsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion);
-autoTableOfReal TableOfReal_extractColumnsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion);
+TableOfReal TableOfReal_extractRowsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion);
+TableOfReal TableOfReal_extractColumnsWhereLabel (TableOfReal me, int which_Melder_STRING, const char32 *criterion);
 
-autoTableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter);
-autoTableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter);
+TableOfReal TableOfReal_extractRowsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter);
+TableOfReal TableOfReal_extractColumnsWhere (TableOfReal me, const char32 *condition, Interpreter interpreter);
 
-autoStrings TableOfReal_extractRowLabelsAsStrings (TableOfReal me);
-autoStrings TableOfReal_extractColumnLabelsAsStrings (TableOfReal me);
-
-#pragma mark - class TableOfRealList
-
-Collection_define (TableOfRealList, OrderedOf, TableOfReal) {
-};
+Strings TableOfReal_extractRowLabelsAsStrings (TableOfReal me);
+Strings TableOfReal_extractColumnLabelsAsStrings (TableOfReal me);
 
 /* End of file TableOfReal.h */
 #endif
diff --git a/stat/TableOfReal_def.h b/stat/TableOfReal_def.h
index 8466a02..081f845 100644
--- a/stat/TableOfReal_def.h
+++ b/stat/TableOfReal_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT TableOfReal
-oo_DEFINE_CLASS (TableOfReal, Daata)
+oo_DEFINE_CLASS (TableOfReal, Data)
 
 	oo_LONG (numberOfRows)
 	oo_LONG (numberOfColumns)
diff --git a/stat/Table_def.h b/stat/Table_def.h
index 4f43d4e..ea0ff73 100644
--- a/stat/Table_def.h
+++ b/stat/Table_def.h
@@ -31,12 +31,11 @@ oo_END_STRUCT (TableCell)
 
 
 #define ooSTRUCT TableRow
-oo_DEFINE_CLASS (TableRow, Daata)
+oo_DEFINE_CLASS (TableRow, Data)
 
 	#if oo_DECLARING || oo_COPYING
 		oo_LONG (sortingIndex)
 	#endif
-
 	oo_LONG (numberOfColumns)
 	oo_STRUCT_VECTOR (TableCell, cells, numberOfColumns)
 
@@ -48,7 +47,6 @@ oo_END_CLASS (TableRow)
 oo_DEFINE_STRUCT (TableColumnHeader)
 
 	oo_STRING (label)
-
 	#if oo_DECLARING || oo_COPYING
 		oo_INT (numericized)
 	#endif
@@ -58,19 +56,22 @@ oo_END_STRUCT (TableColumnHeader)
 
 
 #define ooSTRUCT Table
-oo_DEFINE_CLASS (Table, Daata)
+oo_DEFINE_CLASS (Table, Data)
 
 	oo_LONG (numberOfColumns)
 	oo_STRUCT_VECTOR (TableColumnHeader, columnHeaders, numberOfColumns)
-	oo_COLLECTION_OF (OrderedOf, rows, TableRow, 0)
+	oo_COLLECTION (Ordered, rows, TableRow, 0)
 
 	#if oo_DECLARING
+		TableRow row (long i) // accessor
+			{ return static_cast <TableRow> (rows -> item [i]); }
+
 		void v_info ()
 			override;
 		bool v_hasGetNrow ()
 			override { return true; }
 		double v_getNrow ()
-			override { return rows.size; }
+			override { return rows -> size; }
 		bool v_hasGetNcol ()
 			override { return true; }
 		double v_getNcol ()
diff --git a/stat/praat_Stat.cpp b/stat/praat_Stat.cpp
index 65ea250..372c46d 100644
--- a/stat/praat_Stat.cpp
+++ b/stat/praat_Stat.cpp
@@ -31,7 +31,7 @@
 #define iam iam_LOOP
 
 static const char32 * Table_messageColumn (Table me, long column) {
-	if (my columnHeaders [column]. label && my columnHeaders [column]. label [0] != U'\0')
+	if (my columnHeaders [column]. label != NULL && my columnHeaders [column]. label [0] != U'\0')
 		return Melder_cat (U"\"", my columnHeaders [column]. label, U"\"");
 	else
 		return Melder_integer (column);
@@ -42,27 +42,23 @@ static const char32 * Table_messageColumn (Table me, long column) {
 #pragma mark DISTRIBUTIONS
 
 DIRECT2 (Distributionses_add) {
-	OrderedOf<structDistributions> list;
-	LOOP {
-		iam (Distributions);
-		list. addItem_ref (me);
-	}
-	autoDistributions thee = Distributions_addMany (& list);
-	praat_new (thee.move(), U"added");
+	autoCollection me = praat_getSelectedObjects ();
+	autoDistributions thee = Distributions_addMany (me.peek());
+	praat_new (thee.transfer(), U"added");
 END2 }
 
-FORM (Distributionses_getMeanAbsoluteDifference, U"Get mean difference", nullptr) {
+FORM (Distributionses_getMeanAbsoluteDifference, U"Get mean difference", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
-	Distributions me = nullptr, thee = nullptr;
+	Distributions me = NULL, thee = NULL;
 	LOOP {
 		(me ? thee : me) = (Distributions) OBJECT;
 	}
-	Melder_informationReal (Distributionses_getMeanAbsoluteDifference (me, thee, GET_INTEGER (U"Column number")), nullptr);
+	Melder_informationReal (Distributionses_getMeanAbsoluteDifference (me, thee, GET_INTEGER (U"Column number")), NULL);
 END2 }
 
-FORM (Distributions_getProbability, U"Get probability", nullptr) {
+FORM (Distributions_getProbability, U"Get probability", 0) {
 	NATURAL (U"Column number", U"1")
 	SENTENCE (U"String", U"")
 	OK2
@@ -70,7 +66,7 @@ DO
 	LOOP {
 		iam (Distributions);
 		double probability = Distributions_getProbability (me, GET_STRING (U"String"), GET_INTEGER (U"Column number"));
-		Melder_informationReal (probability, nullptr);
+		Melder_informationReal (probability, NULL);
 	}
 END2 }
 
@@ -78,7 +74,7 @@ DIRECT2 (Distributions_help) {
 	Melder_help (U"Distributions");
 END2 }
 
-FORM (Distributions_to_Strings, U"To Strings", nullptr) {
+FORM (Distributions_to_Strings, U"To Strings", 0) {
 	NATURAL (U"Column number", U"1")
 	NATURAL (U"Number of strings", U"1000")
 	OK2
@@ -86,18 +82,18 @@ DO
 	LOOP {
 		iam (Distributions);
 		autoStrings thee = Distributions_to_Strings (me, GET_INTEGER (U"Column number"), GET_INTEGER (U"Number of strings"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (Distributions_to_Strings_exact, U"To Strings (exact)", nullptr) {
+FORM (Distributions_to_Strings_exact, U"To Strings (exact)", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
 	LOOP {
 		iam (Distributions);
 		autoStrings thee = Distributions_to_Strings_exact (me, GET_INTEGER (U"Column number"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -105,14 +101,14 @@ END2 }
 #pragma mark -
 #pragma mark LOGISTICREGRESSION
 
-FORM (LogisticRegression_drawBoundary, U"LogisticRegression: Draw boundary", nullptr) {
+FORM (LogisticRegression_drawBoundary, U"LogisticRegression: Draw boundary", 0) {
 	WORD (U"Horizontal factor", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
 	WORD (U"Vertical factor", U"")
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0 (= auto)")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
@@ -135,7 +131,7 @@ DIRECT2 (PairDistribution_getFractionCorrect_maximumLikelihood) {
 	LOOP {
 		iam (PairDistribution);
 		double fractionCorrect = PairDistribution_getFractionCorrect_maximumLikelihood (me);
-		Melder_informationReal (fractionCorrect, nullptr);
+		Melder_informationReal (fractionCorrect, NULL);
 	}
 END2 }
 
@@ -143,18 +139,18 @@ DIRECT2 (PairDistribution_getFractionCorrect_probabilityMatching) {
 	LOOP {
 		iam (PairDistribution);
 		double fractionCorrect = PairDistribution_getFractionCorrect_probabilityMatching (me);
-		Melder_informationReal (fractionCorrect, nullptr);
+		Melder_informationReal (fractionCorrect, NULL);
 	}
 END2 }
 
 DIRECT2 (PairDistribution_getNumberOfPairs) {
 	LOOP {
 		iam (PairDistribution);
-		Melder_information (my pairs.size);
+		Melder_information (my pairs -> size);
 	}
 END2 }
 
-FORM (PairDistribution_getString1, U"Get string1", nullptr) {
+FORM (PairDistribution_getString1, U"Get string1", 0) {
 	NATURAL (U"Pair number", U"1")
 	OK2
 DO
@@ -165,7 +161,7 @@ DO
 	}
 END2 }
 
-FORM (PairDistribution_getString2, U"Get string2", nullptr) {
+FORM (PairDistribution_getString2, U"Get string2", 0) {
 	NATURAL (U"Pair number", U"1")
 	OK2
 DO
@@ -176,7 +172,7 @@ DO
 	}
 END2 }
 
-FORM (PairDistribution_getWeight, U"Get weight", nullptr) {
+FORM (PairDistribution_getWeight, U"Get weight", 0) {
 	NATURAL (U"Pair number", U"1")
 	OK2
 DO
@@ -207,7 +203,7 @@ DIRECT2 (PairDistribution_swapInputsAndOutputs) {
 	}
 END2 }
 
-FORM (PairDistribution_to_Stringses, U"Generate two Strings objects", nullptr) {
+FORM (PairDistribution_to_Stringses, U"Generate two Strings objects", 0) {
 	NATURAL (U"Number", U"1000")
 	SENTENCE (U"Name of first Strings", U"input")
 	SENTENCE (U"Name of second Strings", U"output")
@@ -215,10 +211,11 @@ FORM (PairDistribution_to_Stringses, U"Generate two Strings objects", nullptr) {
 DO
 	LOOP {
 		iam (PairDistribution);
-		autoStrings strings1, strings2;
-		PairDistribution_to_Stringses (me, GET_INTEGER (U"Number"), & strings1, & strings2);
-		praat_new (strings1.move(), GET_STRING (U"Name of first Strings"));
-		praat_new (strings2.move(), GET_STRING (U"Name of second Strings"));
+		Strings strings1_, strings2_;
+		PairDistribution_to_Stringses (me, GET_INTEGER (U"Number"), & strings1_, & strings2_);
+		autoStrings strings1 = strings1_, strings2 = strings2_;   // UGLY
+		praat_new (strings1.transfer(), GET_STRING (U"Name of first Strings"));
+		praat_new (strings2.transfer(), GET_STRING (U"Name of second Strings"));
 	}
 END2 }
 
@@ -226,7 +223,7 @@ DIRECT2 (PairDistribution_to_Table) {
 	LOOP {
 		iam (PairDistribution);
 		autoTable thee = PairDistribution_to_Table (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -234,18 +231,18 @@ END2 }
 #pragma mark -
 #pragma mark PAIRDISTRIBUTION & DISTRIBUTIONS
 
-FORM (PairDistribution_Distributions_getFractionCorrect, U"PairDistribution & Distributions: Get fraction correct", nullptr) {
+FORM (PairDistribution_Distributions_getFractionCorrect, U"PairDistribution & Distributions: Get fraction correct", 0) {
 	NATURAL (U"Column", U"1")
 	OK2
 DO
-	PairDistribution me = nullptr;
-	Distributions thee = nullptr;
+	PairDistribution me = NULL;
+	Distributions thee = NULL;
 	LOOP {
 		if (CLASS == classPairDistribution) me = (PairDistribution) OBJECT;
 		if (CLASS == classDistributions) thee = (Distributions) OBJECT;
 	}
 	double fractionCorrect = PairDistribution_Distributions_getFractionCorrect (me, thee, GET_INTEGER (U"Column"));
-	Melder_informationReal (fractionCorrect, nullptr);
+	Melder_informationReal (fractionCorrect, NULL);
 END2 }
 
 /***** TABLE *****/
@@ -253,16 +250,17 @@ END2 }
 #pragma mark TABLE
 
 DIRECT2 (Tables_append) {
-	OrderedOf<structTable> list;
+	autoCollection collection = Collection_create (classTable, 10);
+	Collection_dontOwnItems (collection.peek());
 	LOOP {
 		iam (Table);
-		list. addItem_ref (me);
+		Collection_addItem (collection.peek(), me);
 	}
-	autoTable thee = Tables_append (& list);
-	praat_new (thee.move(), U"appended");
+	autoTable thee = Tables_append (collection.peek());
+	praat_new (thee.transfer(), U"appended");
 END2 }
 
-FORM (Table_appendColumn, U"Table: Append column", nullptr) {
+FORM (Table_appendColumn, U"Table: Append column", 0) {
 	WORD (U"Label", U"newcolumn")
 	OK2
 DO
@@ -273,7 +271,7 @@ DO
 	}
 END2 }
 
-FORM (Table_appendDifferenceColumn, U"Table: Append difference column", nullptr) {
+FORM (Table_appendDifferenceColumn, U"Table: Append difference column", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	WORD (U"Label", U"diff")
@@ -288,7 +286,7 @@ DO
 	}
 END2 }
 
-FORM (Table_appendProductColumn, U"Table: Append product column", nullptr) {
+FORM (Table_appendProductColumn, U"Table: Append product column", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	WORD (U"Label", U"diff")
@@ -303,7 +301,7 @@ DO
 	}
 END2 }
 
-FORM (Table_appendQuotientColumn, U"Table: Append quotient column", nullptr) {
+FORM (Table_appendQuotientColumn, U"Table: Append quotient column", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	WORD (U"Label", U"diff")
@@ -318,7 +316,7 @@ DO
 	}
 END2 }
 
-FORM (Table_appendSumColumn, U"Table: Append sum column", nullptr) {
+FORM (Table_appendSumColumn, U"Table: Append sum column", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	WORD (U"Label", U"diff")
@@ -341,7 +339,7 @@ DIRECT2 (Table_appendRow) {
 	}
 END2 }
 
-FORM (Table_collapseRows, U"Table: Collapse rows", nullptr) {
+FORM (Table_collapseRows, U"Table: Collapse rows", 0) {
 	LABEL (U"", U"Columns with factors (independent variables):")
 	TEXTFIELD (U"factors", U"speaker dialect age vowel")
 	LABEL (U"", U"Columns to sum:")
@@ -363,11 +361,11 @@ DO
 			GET_STRING (U"factors"), GET_STRING (U"columnsToSum"),
 			GET_STRING (U"columnsToAverage"), GET_STRING (U"columnsToMedianize"),
 			GET_STRING (U"columnsToAverageLogarithmically"), GET_STRING (U"columnsToMedianizeLogarithmically"));
-		praat_new (thee.move(), my name, U"_pooled");
+		praat_new (thee.transfer(), my name, U"_pooled");
 	}
 END2 }
 
-FORM (Table_createWithColumnNames, U"Create Table with column names", nullptr) {
+FORM (Table_createWithColumnNames, U"Create Table with column names", 0) {
 	WORD (U"Name", U"table")
 	INTEGER (U"Number of rows", U"10")
 	LABEL (U"", U"Column names:")
@@ -375,20 +373,20 @@ FORM (Table_createWithColumnNames, U"Create Table with column names", nullptr) {
 	OK2
 DO
 	autoTable me = Table_createWithColumnNames (GET_INTEGER (U"Number of rows"), GET_STRING (U"columnNames"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (Table_createWithoutColumnNames, U"Create Table without column names", nullptr) {
+FORM (Table_createWithoutColumnNames, U"Create Table without column names", 0) {
 	WORD (U"Name", U"table")
 	INTEGER (U"Number of rows", U"10")
 	NATURAL (U"Number of columns", U"3")
 	OK2
 DO
 	autoTable me = Table_createWithoutColumnNames (GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (Table_drawEllipse, U"Draw ellipse (standard deviation)", nullptr) {
+FORM (Table_drawEllipse, U"Draw ellipse (standard deviation)", 0) {
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -411,7 +409,7 @@ DO
 	}
 END2 }
 
-FORM (Table_drawRowFromDistribution, U"Table: Draw row from distribution", nullptr) {
+FORM (Table_drawRowFromDistribution, U"Table: Draw row from distribution", 0) {
 	WORD (U"Column with distribution", U"")
 	OK2
 DO
@@ -428,12 +426,11 @@ DIRECT2 (Table_edit) {
 	LOOP {
 		iam (Table);
 		autoTableEditor editor = TableEditor_create (ID_AND_FULL_NAME, me);
-		praat_installEditor (editor.get(), IOBJECT);
-		editor.releaseToUser();
+		praat_installEditor (editor.transfer(), IOBJECT);
 	}
 END2 }
 
-FORM (Table_extractRowsWhereColumn_number, U"Table: Extract rows where column (number)", nullptr) {
+FORM (Table_extractRowsWhereColumn_number, U"Table: Extract rows where column (number)", 0) {
 	WORD (U"Extract all rows where column...", U"")
 	RADIO_ENUM (U"...is...", kMelder_number, DEFAULT)
 	REAL (U"...the number", U"0.0")
@@ -444,12 +441,12 @@ DO
 		iam (Table);
 		long icol = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Extract all rows where column..."));
 		autoTable thee = Table_extractRowsWhereColumn_number (me, icol, GET_ENUM (kMelder_number, U"...is..."), value);
-		praat_new (thee.move(), my name, U"_", Table_messageColumn (static_cast <Table> OBJECT, icol), U"_", NUMdefined (value) ? Melder_integer (lround (value)) : U"undefined");
+		praat_new (thee.transfer(), my name, U"_", Table_messageColumn (static_cast <Table> OBJECT, icol), U"_", NUMdefined (value) ? Melder_integer (lround (value)) : U"undefined");
 		praat_dataChanged (me);   // WHY?
 	}
 END2 }
 
-FORM (Table_extractRowsWhereColumn_text, U"Table: Extract rows where column (text)", nullptr) {
+FORM (Table_extractRowsWhereColumn_text, U"Table: Extract rows where column (text)", 0) {
 	WORD (U"Extract all rows where column...", U"")
 	OPTIONMENU_ENUM (U"...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"hi")
@@ -460,7 +457,7 @@ DO
 		iam (Table);
 		long icol = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Extract all rows where column..."));
 		autoTable thee = Table_extractRowsWhereColumn_string (me, icol, GET_ENUM (kMelder_string, U"..."), value);
-		praat_new (thee.move(), my name, U"_", value);
+		praat_new (thee.transfer(), my name, U"_", value);
 		praat_dataChanged (me);   // WHY?
 	}
 END2 }
@@ -503,7 +500,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getColumnIndex, U"Table: Get column index", nullptr) {
+FORM (Table_getColumnIndex, U"Table: Get column index", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -513,7 +510,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getColumnLabel, U"Table: Get column label", nullptr) {
+FORM (Table_getColumnLabel, U"Table: Get column label", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -525,7 +522,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getGroupMean, U"Table: Get group mean", nullptr) {
+FORM (Table_getGroupMean, U"Table: Get group mean", 0) {
 	WORD (U"Column label", U"salary")
 	WORD (U"Group column", U"gender")
 	SENTENCE (U"Group", U"F")
@@ -539,7 +536,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getMaximum, U"Table: Get maximum", nullptr) {
+FORM (Table_getMaximum, U"Table: Get maximum", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -551,7 +548,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getMean, U"Table: Get mean", nullptr) {
+FORM (Table_getMean, U"Table: Get mean", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -563,7 +560,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getMinimum, U"Table: Get minimum", nullptr) {
+FORM (Table_getMinimum, U"Table: Get minimum", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -575,7 +572,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getQuantile, U"Table: Get quantile", nullptr) {
+FORM (Table_getQuantile, U"Table: Get quantile", 0) {
 	SENTENCE (U"Column label", U"")
 	POSITIVE (U"Quantile", U"0.50 (= median)")
 	OK2
@@ -588,7 +585,7 @@ DO
 	}
 END2 }
 
-FORM (Table_getStandardDeviation, U"Table: Get standard deviation", nullptr) {
+FORM (Table_getStandardDeviation, U"Table: Get standard deviation", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -610,11 +607,11 @@ END2 }
 DIRECT2 (Table_getNumberOfRows) {
 	LOOP {
 		iam (Table);
-		Melder_information (my rows.size);
+		Melder_information (my rows -> size);
 	}
 END2 }
 
-FORM (Table_getValue, U"Table: Get value", nullptr) {
+FORM (Table_getValue, U"Table: Get value", 0) {
 	NATURAL (U"Row number", U"1")
 	WORD (U"Column label", U"")
 	OK2
@@ -624,7 +621,7 @@ DO
 		long rowNumber = GET_INTEGER (U"Row number");
 		Table_checkSpecifiedRowNumberWithinRange (me, rowNumber);
 		long icol = Table_getColumnIndexFromColumnLabel (me, GET_STRING (U"Column label"));
-		Melder_information (my rows.at [rowNumber] -> cells [icol]. string);
+		Melder_information (((TableRow) my rows -> item [rowNumber]) -> cells [icol]. string);
 	}
 END2 }
 
@@ -632,7 +629,7 @@ DIRECT2 (Table_help) {
 	Melder_help (U"Table");
 END2 }
 
-FORM (Table_insertColumn, U"Table: Insert column", nullptr) {
+FORM (Table_insertColumn, U"Table: Insert column", 0) {
 	NATURAL (U"Position", U"1")
 	WORD (U"Label", U"newcolumn")
 	OK2
@@ -644,7 +641,7 @@ DO
 	}
 END2 }
 
-FORM (Table_insertRow, U"Table: Insert row", nullptr) {
+FORM (Table_insertRow, U"Table: Insert row", 0) {
 	NATURAL (U"Position", U"1")
 	OK2
 DO
@@ -655,7 +652,7 @@ DO
 	}
 END2 }
 
-FORM (Table_list, U"Table: List", nullptr) {
+FORM (Table_list, U"Table: List", 0) {
 	BOOLEAN (U"Include row numbers", true)
 	OK2
 DO
@@ -665,22 +662,19 @@ DO
 	}
 END2 }
 
-FORM_READ2 (Table_readFromTableFile, U"Read Table from table file", nullptr, true) {
-	autoTable me = Table_readFromTableFile (file);
-	praat_newWithFile (me.move(), file, MelderFile_name (file));
+FORM_READ2 (Table_readFromTableFile, U"Read Table from table file", 0, true) {
+	praat_newWithFile (Table_readFromTableFile (file), file, MelderFile_name (file));
 END2 }
 
-FORM_READ2 (Table_readFromCommaSeparatedFile, U"Read Table from comma-separated file", nullptr, true) {
-	autoTable me = Table_readFromCharacterSeparatedTextFile (file, U',');
-	praat_newWithFile (me.move(), file, MelderFile_name (file));
+FORM_READ2 (Table_readFromCommaSeparatedFile, U"Read Table from comma-separated file", 0, true) {
+	praat_newWithFile (Table_readFromCharacterSeparatedTextFile (file, ','), file, MelderFile_name (file));
 END2 }
 
-FORM_READ2 (Table_readFromTabSeparatedFile, U"Read Table from tab-separated file", nullptr, true) {
-	autoTable me = Table_readFromCharacterSeparatedTextFile (file, U'\t');
-	praat_newWithFile (me.move(), file, MelderFile_name (file));
+FORM_READ2 (Table_readFromTabSeparatedFile, U"Read Table from tab-separated file", 0, true) {
+	praat_newWithFile (Table_readFromCharacterSeparatedTextFile (file, '\t'), file, MelderFile_name (file));
 END2 }
 
-FORM (Table_removeColumn, U"Table: Remove column", nullptr) {
+FORM (Table_removeColumn, U"Table: Remove column", 0) {
 	WORD (U"Column label", U"")
 	OK2
 DO
@@ -692,7 +686,7 @@ DO
 	}
 END2 }
 
-FORM (Table_removeRow, U"Table: Remove row", nullptr) {
+FORM (Table_removeRow, U"Table: Remove row", 0) {
 	NATURAL (U"Row number", U"1")
 	OK2
 DO
@@ -703,7 +697,7 @@ DO
 	}
 END2 }
 
-FORM (Table_reportCorrelation_kendallTau, U"Report correlation (Kendall tau)", nullptr) {
+FORM (Table_reportCorrelation_kendallTau, U"Report correlation (Kendall tau)", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	POSITIVE (U"One-tailed unconfidence", U"0.025")
@@ -722,7 +716,7 @@ DO
 			U" and column ", Table_messageColumn (me, column2), U":");
 		MelderInfo_writeLine (U"Correlation = ", correlation, U" (Kendall's tau-b)");
 		MelderInfo_writeLine (U"Significance from zero = ", significance, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest tau that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -731,7 +725,7 @@ DO
 	}
 END2 }
 
-FORM (Table_reportCorrelation_pearsonR, U"Report correlation (Pearson r)", nullptr) {
+FORM (Table_reportCorrelation_pearsonR, U"Report correlation (Pearson r)", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	POSITIVE (U"One-tailed unconfidence", U"0.025")
@@ -749,9 +743,9 @@ DO
 		MelderInfo_writeLine (U"Correlation between column ", Table_messageColumn (me, column1),
 			U" and column ", Table_messageColumn (me, column2), U":");
 		MelderInfo_writeLine (U"Correlation = ", correlation, U" (Pearson's r)");
-		MelderInfo_writeLine (U"Number of degrees of freedom = ", my rows.size - 2);
+		MelderInfo_writeLine (U"Number of degrees of freedom = ", my rows -> size - 2);
 		MelderInfo_writeLine (U"Significance from zero = ", significance, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest r that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -760,7 +754,7 @@ DO
 	}
 END2 }
 	
-FORM (Table_reportDifference_studentT, U"Report difference (Student t)", nullptr) {
+FORM (Table_reportDifference_studentT, U"Report difference (Student t)", 0) {
 	WORD (U"left Columns", U"")
 	WORD (U"right Columns", U"")
 	POSITIVE (U"One-tailed unconfidence", U"0.025")
@@ -781,7 +775,7 @@ DO
 		MelderInfo_writeLine (U"Student's t = ", t);
 		MelderInfo_writeLine (U"Number of degrees of freedom = ", numberOfDegreesOfFreedom);
 		MelderInfo_writeLine (U"Significance from zero = ", significance, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest difference that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -790,7 +784,7 @@ DO
 	}
 END2 }
 	
-FORM (Table_reportGroupDifference_studentT, U"Report group difference (Student t)", nullptr) {
+FORM (Table_reportGroupDifference_studentT, U"Report group difference (Student t)", 0) {
 	WORD (U"Column", U"salary")
 	WORD (U"Group column", U"gender")
 	SENTENCE (U"Group 1", U"F")
@@ -814,7 +808,7 @@ DO
 		MelderInfo_writeLine (U"Student's t = ", tFromZero);
 		MelderInfo_writeLine (U"Number of degrees of freedom = ", numberOfDegreesOfFreedom);
 		MelderInfo_writeLine (U"Significance from zero = ", significanceFromZero, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest difference that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -823,7 +817,7 @@ DO
 	}
 END2 }
 
-FORM (Table_reportGroupDifference_wilcoxonRankSum, U"Report group difference (Wilcoxon rank sum)", nullptr) {
+FORM (Table_reportGroupDifference_wilcoxonRankSum, U"Report group difference (Wilcoxon rank sum)", 0) {
 	WORD (U"Column", U"salary")
 	WORD (U"Group column", U"gender")
 	SENTENCE (U"Group 1", U"F")
@@ -849,7 +843,7 @@ DO
 	}
 END2 }
 
-FORM (Table_reportGroupMean_studentT, U"Report group mean (Student t)", nullptr) {
+FORM (Table_reportGroupMean_studentT, U"Report group mean (Student t)", 0) {
 	WORD (U"Column", U"salary")
 	WORD (U"Group column", U"gender")
 	SENTENCE (U"Group", U"F")
@@ -872,7 +866,7 @@ DO
 		MelderInfo_writeLine (U"Student's t from zero = ", tFromZero);
 		MelderInfo_writeLine (U"Number of degrees of freedom = ", numberOfDegreesOfFreedom);
 		MelderInfo_writeLine (U"Significance from zero = ", significanceFromZero, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest difference that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -881,7 +875,7 @@ DO
 	}
 END2 }
 
-FORM (Table_reportMean_studentT, U"Report mean (Student t)", nullptr) {
+FORM (Table_reportMean_studentT, U"Report mean (Student t)", 0) {
 	WORD (U"Column", U"")
 	POSITIVE (U"One-tailed unconfidence", U"0.025")
 	OK2
@@ -899,7 +893,7 @@ DO
 		MelderInfo_writeLine (U"Student's t from zero = ", tFromZero);
 		MelderInfo_writeLine (U"Number of degrees of freedom = ", numberOfDegreesOfFreedom);
 		MelderInfo_writeLine (U"Significance from zero = ", significanceFromZero, U" (one-tailed)");
-		MelderInfo_writeLine (U"Confidence interval (", 100.0 * (1.0 - 2.0 * unconfidence), U"%):");
+		MelderInfo_writeLine (U"Confidence interval (", 100 * (1.0 - 2.0 * unconfidence), U"%):");
 		MelderInfo_writeLine (U"   Lower limit = ", lowerLimit,
 			U" (lowest value that cannot be rejected with " UNITEXT_GREEK_SMALL_LETTER_ALPHA " = ", unconfidence, U")");
 		MelderInfo_writeLine (U"   Upper limit = ", upperLimit,
@@ -908,7 +902,7 @@ DO
 	}
 END2 }
 
-FORM (Table_rowsToColumns, U"Table: Rows to columns", nullptr) {
+FORM (Table_rowsToColumns, U"Table: Rows to columns", 0) {
 	LABEL (U"", U"Columns with factors (independent variables):")
 	TEXTFIELD (U"factors", U"dialect gender speaker")
 	WORD (U"Column to transpose", U"vowel")
@@ -922,11 +916,11 @@ DO
 		iam (Table);
 		long icol = Table_getColumnIndexFromColumnLabel (me, columnLabel);
 		autoTable thee = Table_rowsToColumns (me, GET_STRING (U"factors"), icol, GET_STRING (U"columnsToExpand"));
-		praat_new (thee.move(), NAME, U"_nested");
+		praat_new (thee.transfer(), NAME, U"_nested");
 	}
 END2 }
 
-FORM (Table_scatterPlot, U"Scatter plot", nullptr) {
+FORM (Table_scatterPlot, U"Scatter plot", 0) {
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -935,7 +929,7 @@ FORM (Table_scatterPlot, U"Scatter plot", nullptr) {
 	REAL (U"right Vertical range", U"0.0 (= auto)")
 	WORD (U"Column with marks", U"")
 	NATURAL (U"Font size", U"12")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	OK2
 DO
 	autoPraatPicture picture;
@@ -951,7 +945,7 @@ DO
 	}
 END2 }
 
-FORM (Table_scatterPlot_mark, U"Scatter plot (marks)", nullptr) {
+FORM (Table_scatterPlot_mark, U"Scatter plot (marks)", 0) {
 	WORD (U"Horizontal column", U"")
 	REAL (U"left Horizontal range", U"0.0")
 	REAL (U"right Horizontal range", U"0.0 (= auto)")
@@ -959,7 +953,7 @@ FORM (Table_scatterPlot_mark, U"Scatter plot (marks)", nullptr) {
 	REAL (U"left Vertical range", U"0.0")
 	REAL (U"right Vertical range", U"0.0 (= auto)")
 	POSITIVE (U"Mark size (mm)", U"1.0")
-	BOOLEAN (U"Garnish", true)
+	BOOLEAN (U"Garnish", 1)
 	SENTENCE (U"Mark string (+xo.)", U"+")
 	OK2
 DO
@@ -975,7 +969,7 @@ DO
 	}
 END2 }
 
-FORM (Table_searchColumn, U"Table: Search column", nullptr) {
+FORM (Table_searchColumn, U"Table: Search column", 0) {
 	WORD (U"Column label", U"")
 	WORD (U"Value", U"")
 	OK2
@@ -987,7 +981,7 @@ DO
 	}
 END2 }
 	
-FORM (Table_setColumnLabel_index, U"Set column label", nullptr) {
+FORM (Table_setColumnLabel_index, U"Set column label", 0) {
 	NATURAL (U"Column number", U"1")
 	SENTENCE (U"Label", U"")
 	OK2
@@ -999,7 +993,7 @@ DO
 	}
 END2 }
 
-FORM (Table_setColumnLabel_label, U"Set column label", nullptr) {
+FORM (Table_setColumnLabel_label, U"Set column label", 0) {
 	SENTENCE (U"Old label", U"")
 	SENTENCE (U"New label", U"")
 	OK2
@@ -1011,7 +1005,7 @@ DO
 	}
 END2 }
 
-FORM (Table_setNumericValue, U"Table: Set numeric value", nullptr) {
+FORM (Table_setNumericValue, U"Table: Set numeric value", 0) {
 	NATURAL (U"Row number", U"1")
 	WORD (U"Column label", U"")
 	REAL_OR_UNDEFINED (U"Numeric value", U"1.5")
@@ -1025,7 +1019,7 @@ DO
 	}
 END2 }
 
-FORM (Table_setStringValue, U"Table: Set string value", nullptr) {
+FORM (Table_setStringValue, U"Table: Set string value", 0) {
 	NATURAL (U"Row number", U"1")
 	WORD (U"Column label", U"")
 	SENTENCE (U"String value", U"xx")
@@ -1055,7 +1049,7 @@ DIRECT2 (Table_reflectRows) {
 	}
 END2 }
 
-FORM (Table_sortRows, U"Table: Sort rows", nullptr) {
+FORM (Table_sortRows, U"Table: Sort rows", 0) {
 	LABEL (U"", U"One or more column labels for sorting:")
 	TEXTFIELD (U"columnLabels", U"dialect gender name")
 	OK2
@@ -1071,11 +1065,11 @@ DIRECT2 (Table_to_LinearRegression) {
 	LOOP {
 		iam (Table);
 		autoLinearRegression thee = Table_to_LinearRegression (me);
-		praat_new (thee.move(), NAME);
+		praat_new (thee.transfer(), NAME);
 	}
 END2 }
 
-FORM (Table_to_LogisticRegression, U"Table: To LogisticRegression", nullptr) {
+FORM (Table_to_LogisticRegression, U"Table: To LogisticRegression", 0) {
 	LABEL (U"", U"Factors (column names):")
 	TEXTFIELD (U"factors", U"F0 F1 duration")
 	WORD (U"Dependent 1 (column name)", U"e")
@@ -1085,11 +1079,11 @@ DO
 	LOOP {
 		iam (Table);
 		autoLogisticRegression thee = Table_to_LogisticRegression (me, GET_STRING (U"factors"), GET_STRING (U"Dependent 1"), GET_STRING (U"Dependent 2"));
-		praat_new (thee.move(), NAME);
+		praat_new (thee.transfer(), NAME);
 	}
 END2 }
 
-FORM (Table_to_TableOfReal, U"Table: Down to TableOfReal", nullptr) {
+FORM (Table_to_TableOfReal, U"Table: Down to TableOfReal", 0) {
 	WORD (U"Column for row labels", U"")
 	OK2
 DO
@@ -1097,7 +1091,7 @@ DO
 		iam (Table);
 		long icol = Table_findColumnIndexFromColumnLabel (me, GET_STRING (U"Column for row labels"));
 		autoTableOfReal thee = Table_to_TableOfReal (me, icol);
-		praat_new (thee.move(), NAME);
+		praat_new (thee.transfer(), NAME);
 	}
 END2 }
 
@@ -1105,7 +1099,7 @@ DIRECT2 (Table_transpose) {
 	LOOP {
 		iam (Table);
 		autoTable thee = Table_transpose (me);
-		praat_new (thee.move(), NAME, U"_transposed");
+		praat_new (thee.transfer(), NAME, U"_transposed");
 	}
 END2 }
 
@@ -1128,26 +1122,27 @@ END2 }
 #pragma mark TABLEOFREAL
 
 DIRECT2 (TablesOfReal_append) {
-	OrderedOf<structTableOfReal> list;
+	autoCollection tables = Collection_create (classTableOfReal, 10);
+	Collection_dontOwnItems (tables.peek());
 	LOOP {
 		iam (TableOfReal);
-		list. addItem_ref (me);
+		Collection_addItem (tables.peek(), me);
 	}
-	autoTableOfReal thee = TablesOfReal_appendMany (& list);
-	praat_new (thee.move(), U"appended");
+	autoTableOfReal thee = static_cast <TableOfReal> (TablesOfReal_appendMany (tables.peek()));
+	praat_new (thee.transfer(), U"appended");
 END2 }
 
-FORM (TableOfReal_create, U"Create TableOfReal", nullptr) {
+FORM (TableOfReal_create, U"Create TableOfReal", 0) {
 	WORD (U"Name", U"table")
 	NATURAL (U"Number of rows", U"10")
 	NATURAL (U"Number of columns", U"3")
 	OK2
 DO
 	autoTableOfReal me = TableOfReal_create (GET_INTEGER (U"Number of rows"), GET_INTEGER (U"Number of columns"));
-	praat_new (me.move(), GET_STRING (U"Name"));
+	praat_new (me.transfer(), GET_STRING (U"Name"));
 END2 }
 
-FORM (TableOfReal_drawAsNumbers, U"Draw as numbers", nullptr) {
+FORM (TableOfReal_drawAsNumbers, U"Draw as numbers", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	RADIO (U"Format", 3)
@@ -1167,7 +1162,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawAsNumbers_if, U"Draw as numbers if...", nullptr) {
+FORM (TableOfReal_drawAsNumbers_if, U"Draw as numbers if...", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	RADIO (U"Format", 3)
@@ -1189,7 +1184,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawAsSquares, U"Draw table as squares", nullptr) {
+FORM (TableOfReal_drawAsSquares, U"Draw table as squares", 0) {
 	INTEGER (U"From row", U"1")
 	INTEGER (U"To row", U"0")
 	INTEGER (U"From column", U"1")
@@ -1207,7 +1202,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawHorizontalLines, U"Draw horizontal lines", nullptr) {
+FORM (TableOfReal_drawHorizontalLines, U"Draw horizontal lines", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	OK2
@@ -1219,7 +1214,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawLeftAndRightLines, U"Draw left and right lines", nullptr) {
+FORM (TableOfReal_drawLeftAndRightLines, U"Draw left and right lines", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	OK2
@@ -1231,7 +1226,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawTopAndBottomLines, U"Draw top and bottom lines", nullptr) {
+FORM (TableOfReal_drawTopAndBottomLines, U"Draw top and bottom lines", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	OK2
@@ -1243,7 +1238,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_drawVerticalLines, U"Draw vertical lines", nullptr) {
+FORM (TableOfReal_drawVerticalLines, U"Draw vertical lines", 0) {
 	NATURAL (U"From row", U"1")
 	INTEGER (U"To row", U"0 (= all)")
 	OK2
@@ -1259,11 +1254,11 @@ DIRECT2 (TableOfReal_extractColumnLabelsAsStrings) {
 	LOOP {
 		iam (TableOfReal);
 		autoStrings thee = TableOfReal_extractColumnLabelsAsStrings (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TableOfReal_extractColumnRanges, U"Extract column ranges", nullptr) {
+FORM (TableOfReal_extractColumnRanges, U"Extract column ranges", 0) {
 	LABEL (U"", U"Create a new TableOfReal from the following columns:")
 	TEXTFIELD (U"ranges", U"1 2")
 	LABEL (U"", U"To supply rising or falling ranges, use e.g. 2:6 or 5:3.")
@@ -1272,11 +1267,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractColumnRanges (me, GET_STRING (U"ranges"));
-		praat_new (thee.move(), my name, U"_cols");
+		praat_new (thee.transfer(), my name, U"_cols");
 	}
 END2 }
 
-FORM (TableOfReal_extractColumnsWhere, U"Extract columns where", nullptr) {
+FORM (TableOfReal_extractColumnsWhere, U"Extract columns where", 0) {
 	LABEL (U"", U"Extract all columns with at least one cell where:")
 	TEXTFIELD (U"condition", U"col mod 3 = 0 ; this example extracts every third column")
 	OK2
@@ -1284,11 +1279,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractColumnsWhere (me, GET_STRING (U"condition"), interpreter);
-		praat_new (thee.move(), my name, U"_cols");
+		praat_new (thee.transfer(), my name, U"_cols");
 	}
 END2 }
 
-FORM (TableOfReal_extractColumnsWhereLabel, U"Extract column where label", nullptr) {
+FORM (TableOfReal_extractColumnsWhereLabel, U"Extract column where label", 0) {
 	OPTIONMENU_ENUM (U"Extract all columns whose label...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"a")
 	OK2
@@ -1297,11 +1292,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractColumnsWhereLabel (me, GET_ENUM (kMelder_string, U"Extract all columns whose label..."), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
-FORM (TableOfReal_extractColumnsWhereRow, U"Extract columns where row", nullptr) {
+FORM (TableOfReal_extractColumnsWhereRow, U"Extract columns where row", 0) {
 	NATURAL (U"Extract all columns where row...", U"1")
 	OPTIONMENU_ENUM (U"...is...", kMelder_number, DEFAULT)
 	REAL (U"...the value", U"0.0")
@@ -1312,7 +1307,7 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractColumnsWhereRow (me, row, GET_ENUM (kMelder_number, U"...is..."), value);
-		praat_new (thee.move(), my name, U"_", row, U"_", lround (value));
+		praat_new (thee.transfer(), my name, U"_", row, U"_", lround (value));
 	}
 END2 }
 
@@ -1320,11 +1315,11 @@ DIRECT2 (TableOfReal_extractRowLabelsAsStrings) {
 	LOOP {
 		iam (TableOfReal);
 		autoStrings thee = TableOfReal_extractRowLabelsAsStrings (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TableOfReal_extractRowRanges, U"Extract row ranges", nullptr) {
+FORM (TableOfReal_extractRowRanges, U"Extract row ranges", 0) {
 	LABEL (U"", U"Create a new TableOfReal from the following rows:")
 	TEXTFIELD (U"ranges", U"1 2")
 	LABEL (U"", U"To supply rising or falling ranges, use e.g. 2:6 or 5:3.")
@@ -1333,11 +1328,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractRowRanges (me, GET_STRING (U"ranges"));
-		praat_new (thee.move(), my name, U"_rows");
+		praat_new (thee.transfer(), my name, U"_rows");
 	}
 END2 }
 
-FORM (TableOfReal_extractRowsWhere, U"Extract rows where", nullptr) {
+FORM (TableOfReal_extractRowsWhere, U"Extract rows where", 0) {
 	LABEL (U"", U"Extract all rows with at least one cell where:")
 	TEXTFIELD (U"condition", U"row mod 3 = 0 ; this example extracts every third row")
 	OK2
@@ -1345,11 +1340,11 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractRowsWhere (me, GET_STRING (U"condition"), interpreter);
-		praat_new (thee.move(), my name, U"_rows");
+		praat_new (thee.transfer(), my name, U"_rows");
 	}
 END2 }
 
-FORM (TableOfReal_extractRowsWhereColumn, U"Extract rows where column", nullptr) {
+FORM (TableOfReal_extractRowsWhereColumn, U"Extract rows where column", 0) {
 	NATURAL (U"Extract all rows where column...", U"1")
 	OPTIONMENU_ENUM (U"...is...", kMelder_number, DEFAULT)
 	REAL (U"...the value", U"0.0")
@@ -1361,11 +1356,11 @@ DO
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractRowsWhereColumn (me,
 			column, GET_ENUM (kMelder_number, U"...is..."), value);
-		praat_new (thee.move(), my name, U"_", column, U"_", lround (value));
+		praat_new (thee.transfer(), my name, U"_", column, U"_", lround (value));
 	}
 END2 }
 
-FORM (TableOfReal_extractRowsWhereLabel, U"Extract rows where label", nullptr) {
+FORM (TableOfReal_extractRowsWhereLabel, U"Extract rows where label", 0) {
 	OPTIONMENU_ENUM (U"Extract all rows whose label...", kMelder_string, DEFAULT)
 	SENTENCE (U"...the text", U"a")
 	OK2
@@ -1374,7 +1369,7 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		autoTableOfReal thee = TableOfReal_extractRowsWhereLabel (me, GET_ENUM (kMelder_string, U"Extract all rows whose label..."), text);
-		praat_new (thee.move(), my name, U"_", text);
+		praat_new (thee.transfer(), my name, U"_", text);
 	}
 END2 }
 
@@ -1386,7 +1381,7 @@ DO
 	LOOP {
 		iam (TableOfReal);
 		try {
-			TableOfReal_formula (me, GET_STRING (U"formula"), interpreter, nullptr);
+			TableOfReal_formula (me, GET_STRING (U"formula"), interpreter, NULL);
 			praat_dataChanged (me);
 		} catch (MelderError) {
 			praat_dataChanged (me);
@@ -1395,7 +1390,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_getColumnIndex, U"Get column index", nullptr) {
+FORM (TableOfReal_getColumnIndex, U"Get column index", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -1406,7 +1401,7 @@ DO
 	}
 END2 }
 	
-FORM (TableOfReal_getColumnLabel, U"Get column label", nullptr) {
+FORM (TableOfReal_getColumnLabel, U"Get column label", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -1414,11 +1409,11 @@ DO
 		iam (TableOfReal);
 		long columnNumber = GET_INTEGER (U"Column number");
 		if (columnNumber > my numberOfColumns) Melder_throw (me, U": column number must not be greater than number of columns.");
-		Melder_information (my columnLabels ? my columnLabels [columnNumber] : U"");
+		Melder_information (my columnLabels == NULL ? U"" : my columnLabels [columnNumber]);
 	}
 END2 }
 	
-FORM (TableOfReal_getColumnMean_index, U"Get column mean", nullptr) {
+FORM (TableOfReal_getColumnMean_index, U"Get column mean", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -1427,11 +1422,11 @@ DO
 		long columnNumber = GET_INTEGER (U"Column number");
 		if (columnNumber > my numberOfColumns) Melder_throw (me, U": column number must not be greater than number of columns.");
 		double columnMean = TableOfReal_getColumnMean (me, columnNumber);
-		Melder_informationReal (columnMean, nullptr);
+		Melder_informationReal (columnMean, NULL);
 	}
 END2 }
 	
-FORM (TableOfReal_getColumnMean_label, U"Get column mean", nullptr) {
+FORM (TableOfReal_getColumnMean_label, U"Get column mean", 0) {
 	SENTENCE (U"Column label", U"")
 	OK2
 DO
@@ -1440,11 +1435,11 @@ DO
 		long columnNumber = TableOfReal_columnLabelToIndex (me, GET_STRING (U"Column label"));
 		if (columnNumber == 0) Melder_throw (me, U": column label does not exist.");
 		double columnMean = TableOfReal_getColumnMean (me, columnNumber);
-		Melder_informationReal (columnMean, nullptr);
+		Melder_informationReal (columnMean, NULL);
 	}
 END2 }
 	
-FORM (TableOfReal_getColumnStdev_index, U"Get column standard deviation", nullptr) {
+FORM (TableOfReal_getColumnStdev_index, U"Get column standard deviation", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -1453,11 +1448,11 @@ DO
 		long columnNumber = GET_INTEGER (U"Column number");
 		if (columnNumber > my numberOfColumns) Melder_throw (me, U": column number must not be greater than number of columns.");
 		double stdev = TableOfReal_getColumnStdev (me, columnNumber);
-		Melder_informationReal (stdev, nullptr);
+		Melder_informationReal (stdev, NULL);
 	}
 END2 }
 	
-FORM (TableOfReal_getColumnStdev_label, U"Get column standard deviation", nullptr) {
+FORM (TableOfReal_getColumnStdev_label, U"Get column standard deviation", 0) {
 	SENTENCE (U"Column label", U"1")
 	OK2
 DO
@@ -1466,7 +1461,7 @@ DO
 		long columnNumber = TableOfReal_columnLabelToIndex (me, GET_STRING (U"Column label"));
 		if (columnNumber == 0) Melder_throw (me, U": column label does not exist.");
 		double stdev = TableOfReal_getColumnStdev (me, columnNumber);
-		Melder_informationReal (stdev, nullptr);
+		Melder_informationReal (stdev, NULL);
 	}
 END2 }
 
@@ -1484,7 +1479,7 @@ DIRECT2 (TableOfReal_getNumberOfRows) {
 	}
 END2 }
 
-FORM (TableOfReal_getRowIndex, U"Get row index", nullptr) {
+FORM (TableOfReal_getRowIndex, U"Get row index", 0) {
 	SENTENCE (U"Row label", U"")
 	OK2
 DO
@@ -1495,7 +1490,7 @@ DO
 	}
 END2 }
 	
-FORM (TableOfReal_getRowLabel, U"Get row label", nullptr) {
+FORM (TableOfReal_getRowLabel, U"Get row label", 0) {
 	NATURAL (U"Row number", U"1")
 	OK2
 DO
@@ -1503,11 +1498,11 @@ DO
 		iam (TableOfReal);
 		long rowNumber = GET_INTEGER (U"Row number");
 		if (rowNumber > my numberOfRows) Melder_throw (me, U": row number must not be greater than number of rows.");
-		Melder_information (my rowLabels ? my rowLabels [rowNumber] : U"");
+		Melder_information (my rowLabels == NULL ? U"" : my rowLabels [rowNumber]);
 	}
 END2 }
 
-FORM (TableOfReal_getValue, U"Get value", nullptr) {
+FORM (TableOfReal_getValue, U"Get value", 0) {
 	NATURAL (U"Row number", U"1")
 	NATURAL (U"Column number", U"1")
 	OK2
@@ -1517,7 +1512,7 @@ DO
 		long rowNumber = GET_INTEGER (U"Row number"), columnNumber = GET_INTEGER (U"Column number");
 		if (rowNumber > my numberOfRows) Melder_throw (me, U": row number must not exceed number of rows.");
 		if (columnNumber > my numberOfColumns) Melder_throw (me, U": column number must not exceed number of columns.");
-		Melder_informationReal (my data [rowNumber] [columnNumber], nullptr);
+		Melder_informationReal (my data [rowNumber] [columnNumber], NULL);
 	}
 END2 }
 
@@ -1525,7 +1520,7 @@ DIRECT2 (TableOfReal_help) {
 	Melder_help (U"TableOfReal");
 END2 }
 
-FORM (TableOfReal_insertColumn, U"Insert column", nullptr) {
+FORM (TableOfReal_insertColumn, U"Insert column", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -1536,7 +1531,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_insertRow, U"Insert row", nullptr) {
+FORM (TableOfReal_insertRow, U"Insert row", 0) {
 	NATURAL (U"Row number", U"1")
 	OK2
 DO
@@ -1547,12 +1542,11 @@ DO
 	}
 END2 }
 
-FORM_READ2 (TableOfReal_readFromHeaderlessSpreadsheetFile, U"Read TableOfReal from headerless spreadsheet file", nullptr, true) {
-	autoTableOfReal me = TableOfReal_readFromHeaderlessSpreadsheetFile (file);
-	praat_newWithFile (me.move(), file, MelderFile_name (file));
+FORM_READ2 (TableOfReal_readFromHeaderlessSpreadsheetFile, U"Read TableOfReal from headerless spreadsheet file", 0, true) {
+	praat_newWithFile (TableOfReal_readFromHeaderlessSpreadsheetFile (file), file, MelderFile_name (file));
 END2 }
 
-FORM (TableOfReal_removeColumn, U"Remove column", nullptr) {
+FORM (TableOfReal_removeColumn, U"Remove column", 0) {
 	NATURAL (U"Column number", U"1")
 	OK2
 DO
@@ -1563,7 +1557,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_removeRow, U"Remove row", nullptr) {
+FORM (TableOfReal_removeRow, U"Remove row", 0) {
 	NATURAL (U"Row number", U"1")
 	OK2
 DO
@@ -1574,7 +1568,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_setColumnLabel_index, U"Set column label", nullptr) {
+FORM (TableOfReal_setColumnLabel_index, U"Set column label", 0) {
 	NATURAL (U"Column number", U"1")
 	SENTENCE (U"Label", U"")
 	OK2
@@ -1586,7 +1580,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_setColumnLabel_label, U"Set column label", nullptr) {
+FORM (TableOfReal_setColumnLabel_label, U"Set column label", 0) {
 	SENTENCE (U"Old label", U"")
 	SENTENCE (U"New label", U"")
 	OK2
@@ -1599,7 +1593,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_setRowLabel_index, U"Set row label", nullptr) {
+FORM (TableOfReal_setRowLabel_index, U"Set row label", 0) {
 	NATURAL (U"Row number", U"1")
 	SENTENCE (U"Label", U"")
 	OK2
@@ -1627,7 +1621,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_setRowLabel_label, U"Set row label", nullptr) {
+FORM (TableOfReal_setRowLabel_label, U"Set row label", 0) {
 	SENTENCE (U"Old label", U"")
 	SENTENCE (U"New label", U"")
 	OK2
@@ -1640,7 +1634,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_sortByColumn, U"Sort rows by column", nullptr) {
+FORM (TableOfReal_sortByColumn, U"Sort rows by column", 0) {
 	INTEGER (U"Column", U"1")
 	INTEGER (U"Secondary column", U"0")
 	OK2
@@ -1652,7 +1646,7 @@ DO
 	}
 END2 }
 
-FORM (TableOfReal_sortByLabel, U"Sort rows by label", nullptr) {
+FORM (TableOfReal_sortByLabel, U"Sort rows by label", 0) {
 	LABEL (U"", U"Secondary sorting keys:")
 	INTEGER (U"Column1", U"1")
 	INTEGER (U"Column2", U"0")
@@ -1669,18 +1663,18 @@ DIRECT2 (TableOfReal_to_Matrix) {
 	LOOP {
 		iam (TableOfReal);
 		autoMatrix thee = TableOfReal_to_Matrix (me);
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
-FORM (TableOfReal_to_Table, U"TableOfReal: To Table", nullptr) {
+FORM (TableOfReal_to_Table, U"TableOfReal: To Table", 0) {
 	SENTENCE (U"Label of first column", U"rowLabel")
 	OK2
 DO
 	LOOP {
 		iam (TableOfReal);
 		autoTable thee = TableOfReal_to_Table (me, GET_STRING (U"Label of first column"));
-		praat_new (thee.move(), my name);
+		praat_new (thee.transfer(), my name);
 	}
 END2 }
 
@@ -1720,7 +1714,7 @@ static bool isTabSeparated_utf16le (int nread, const char *header) {
 	return false;
 }
 
-static autoDaata tabSeparatedFileRecognizer (int nread, const char *header, MelderFile file) {
+static Any tabSeparatedFileRecognizer (int nread, const char *header, MelderFile file) {
 	/*
 	 * A table is recognized if it has at least one tab symbol,
 	 * which must be before the first newline symbol (if any).
@@ -1730,205 +1724,203 @@ static autoDaata tabSeparatedFileRecognizer (int nread, const char *header, Meld
 		uheader [0] == 0xef && uheader [1] == 0xff ? isTabSeparated_utf16be (nread, header) :
 		uheader [0] == 0xff && uheader [1] == 0xef ? isTabSeparated_utf16le (nread, header) :
 		isTabSeparated_8bit (nread, header);
-	if (! isTabSeparated) return autoDaata ();
+	if (! isTabSeparated) return NULL;
 	return Table_readFromCharacterSeparatedTextFile (file, '\t');
 }
 
-void praat_TableOfReal_init (ClassInfo klas);   // buttons for TableOfReal and for its subclasses
+void praat_TableOfReal_init (ClassInfo klas);   /* Buttons for TableOfReal and for its subclasses. */
 void praat_TableOfReal_init (ClassInfo klas) {
-	praat_addAction1 (klas, 1, U"Save as headerless spreadsheet file...", nullptr, 0, DO_TableOfReal_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (klas, 1, U"Write to headerless spreadsheet file...", nullptr, praat_HIDDEN, DO_TableOfReal_writeToHeaderlessSpreadsheetFile);
-	praat_addAction1 (klas, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"Draw as numbers...", nullptr, 1, DO_TableOfReal_drawAsNumbers);
-		praat_addAction1 (klas, 0, U"Draw as numbers if...", nullptr, 1, DO_TableOfReal_drawAsNumbers_if);
-		praat_addAction1 (klas, 0, U"Draw as squares...", nullptr, 1, DO_TableOfReal_drawAsSquares);
-		praat_addAction1 (klas, 0, U"-- draw lines --", nullptr, 1, 0);
-		praat_addAction1 (klas, 0, U"Draw vertical lines...", nullptr, 1, DO_TableOfReal_drawVerticalLines);
-		praat_addAction1 (klas, 0, U"Draw horizontal lines...", nullptr, 1, DO_TableOfReal_drawHorizontalLines);
-		praat_addAction1 (klas, 0, U"Draw left and right lines...", nullptr, 1, DO_TableOfReal_drawLeftAndRightLines);
-		praat_addAction1 (klas, 0, U"Draw top and bottom lines...", nullptr, 1, DO_TableOfReal_drawTopAndBottomLines);
-	praat_addAction1 (klas, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 1, U"Get number of rows", nullptr, 1, DO_TableOfReal_getNumberOfRows);
-		praat_addAction1 (klas, 1, U"Get number of columns", nullptr, 1, DO_TableOfReal_getNumberOfColumns);
-		praat_addAction1 (klas, 1, U"Get row label...", nullptr, 1, DO_TableOfReal_getRowLabel);
-		praat_addAction1 (klas, 1, U"Get column label...", nullptr, 1, DO_TableOfReal_getColumnLabel);
-		praat_addAction1 (klas, 1, U"Get row index...", nullptr, 1, DO_TableOfReal_getRowIndex);
-		praat_addAction1 (klas, 1, U"Get column index...", nullptr, 1, DO_TableOfReal_getColumnIndex);
-		praat_addAction1 (klas, 1, U"-- get value --", nullptr, 1, nullptr);
-		praat_addAction1 (klas, 1, U"Get value...", nullptr, 1, DO_TableOfReal_getValue);
+	praat_addAction1 (klas, 1, U"Save as headerless spreadsheet file...", 0, 0, DO_TableOfReal_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (klas, 1, U"Write to headerless spreadsheet file...", 0, praat_HIDDEN, DO_TableOfReal_writeToHeaderlessSpreadsheetFile);
+	praat_addAction1 (klas, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"Draw as numbers...", 0, 1, DO_TableOfReal_drawAsNumbers);
+		praat_addAction1 (klas, 0, U"Draw as numbers if...", 0, 1, DO_TableOfReal_drawAsNumbers_if);
+		praat_addAction1 (klas, 0, U"Draw as squares...", 0, 1, DO_TableOfReal_drawAsSquares);	
+		praat_addAction1 (klas, 0, U"-- draw lines --", 0, 1, 0);
+		praat_addAction1 (klas, 0, U"Draw vertical lines...", 0, 1, DO_TableOfReal_drawVerticalLines);
+		praat_addAction1 (klas, 0, U"Draw horizontal lines...", 0, 1, DO_TableOfReal_drawHorizontalLines);
+		praat_addAction1 (klas, 0, U"Draw left and right lines...", 0, 1, DO_TableOfReal_drawLeftAndRightLines);
+		praat_addAction1 (klas, 0, U"Draw top and bottom lines...", 0, 1, DO_TableOfReal_drawTopAndBottomLines);
+	praat_addAction1 (klas, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (klas, 1, U"Get number of rows", 0, 1, DO_TableOfReal_getNumberOfRows);
+		praat_addAction1 (klas, 1, U"Get number of columns", 0, 1, DO_TableOfReal_getNumberOfColumns);
+		praat_addAction1 (klas, 1, U"Get row label...", 0, 1, DO_TableOfReal_getRowLabel);
+		praat_addAction1 (klas, 1, U"Get column label...", 0, 1, DO_TableOfReal_getColumnLabel);
+		praat_addAction1 (klas, 1, U"Get row index...", 0, 1, DO_TableOfReal_getRowIndex);
+		praat_addAction1 (klas, 1, U"Get column index...", 0, 1, DO_TableOfReal_getColumnIndex);
+		praat_addAction1 (klas, 1, U"-- get value --", 0, 1, 0);
+		praat_addAction1 (klas, 1, U"Get value...", 0, 1, DO_TableOfReal_getValue);
 		if (klas == classTableOfReal) {
-			praat_addAction1 (klas, 1, U"-- get statistics --", nullptr, 1, nullptr);
-			praat_addAction1 (klas, 1, U"Get column mean (index)...", nullptr, 1, DO_TableOfReal_getColumnMean_index);
-			praat_addAction1 (klas, 1, U"Get column mean (label)...", nullptr, 1, DO_TableOfReal_getColumnMean_label);
-			praat_addAction1 (klas, 1, U"Get column stdev (index)...", nullptr, 1, DO_TableOfReal_getColumnStdev_index);
-			praat_addAction1 (klas, 1, U"Get column stdev (label)...", nullptr, 1, DO_TableOfReal_getColumnStdev_label);
+			praat_addAction1 (klas, 1, U"-- get statistics --", 0, 1, 0);
+			praat_addAction1 (klas, 1, U"Get column mean (index)...", 0, 1, DO_TableOfReal_getColumnMean_index);
+			praat_addAction1 (klas, 1, U"Get column mean (label)...", 0, 1, DO_TableOfReal_getColumnMean_label);
+			praat_addAction1 (klas, 1, U"Get column stdev (index)...", 0, 1, DO_TableOfReal_getColumnStdev_index);
+			praat_addAction1 (klas, 1, U"Get column stdev (label)...", 0, 1, DO_TableOfReal_getColumnStdev_label);
 		}
-	praat_addAction1 (klas, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"Formula...", nullptr, 1, DO_TableOfReal_formula);
-		praat_addAction1 (klas, 0, U"Set value...", nullptr, 1, DO_TableOfReal_setValue);
-		praat_addAction1 (klas, 0, U"Sort by label...", nullptr, 1, DO_TableOfReal_sortByLabel);
-		praat_addAction1 (klas, 0, U"Sort by column...", nullptr, 1, DO_TableOfReal_sortByColumn);
-		praat_addAction1 (klas, 0, U"-- structure --", nullptr, 1, nullptr);
-		praat_addAction1 (klas, 0, U"Remove row (index)...", nullptr, 1, DO_TableOfReal_removeRow);
-		praat_addAction1 (klas, 0, U"Remove column (index)...", nullptr, 1, DO_TableOfReal_removeColumn);
-		praat_addAction1 (klas, 0, U"Insert row (index)...", nullptr, 1, DO_TableOfReal_insertRow);
-		praat_addAction1 (klas, 0, U"Insert column (index)...", nullptr, 1, DO_TableOfReal_insertColumn);
-		praat_addAction1 (klas, 0, U"-- set --", nullptr, 1, nullptr);
-		praat_addAction1 (klas, 0, U"Set row label (index)...", nullptr, 1, DO_TableOfReal_setRowLabel_index);
-		praat_addAction1 (klas, 0, U"Set row label (label)...", nullptr, 1, DO_TableOfReal_setRowLabel_label);
-		praat_addAction1 (klas, 0, U"Set column label (index)...", nullptr, 1, DO_TableOfReal_setColumnLabel_index);
-		praat_addAction1 (klas, 0, U"Set column label (label)...", nullptr, 1, DO_TableOfReal_setColumnLabel_label);
-	praat_addAction1 (klas, 0, U"Synthesize -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"Append", nullptr, 1, DO_TablesOfReal_append);
-	praat_addAction1 (klas, 0, U"Extract part -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"Extract row ranges...", nullptr, 1, DO_TableOfReal_extractRowRanges);
-		praat_addAction1 (klas, 0, U"Extract rows where column...", nullptr, 1, DO_TableOfReal_extractRowsWhereColumn);
-		praat_addAction1 (klas, 0, U"Extract rows where label...", nullptr, 1, DO_TableOfReal_extractRowsWhereLabel);
-		praat_addAction1 (klas, 0, U"Extract rows where...", nullptr, 1, DO_TableOfReal_extractRowsWhere);
-		praat_addAction1 (klas, 0, U"Extract column ranges...", nullptr, 1, DO_TableOfReal_extractColumnRanges);
-		praat_addAction1 (klas, 0, U"Extract columns where row...", nullptr, 1, DO_TableOfReal_extractColumnsWhereRow);
-		praat_addAction1 (klas, 0, U"Extract columns where label...", nullptr, 1, DO_TableOfReal_extractColumnsWhereLabel);
-		praat_addAction1 (klas, 0, U"Extract columns where...", nullptr, 1, DO_TableOfReal_extractColumnsWhere);
-	praat_addAction1 (klas, 0, U"Extract -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"Extract row labels as Strings", nullptr, 1, DO_TableOfReal_extractRowLabelsAsStrings);
-		praat_addAction1 (klas, 0, U"Extract column labels as Strings", nullptr, 1, DO_TableOfReal_extractColumnLabelsAsStrings);
-	praat_addAction1 (klas, 0, U"Convert -", nullptr, 0, nullptr);
-		praat_addAction1 (klas, 0, U"To Table...", nullptr, 1, DO_TableOfReal_to_Table);
-		praat_addAction1 (klas, 0, U"To Matrix", nullptr, 1, DO_TableOfReal_to_Matrix);
+	praat_addAction1 (klas, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"Formula...", 0, 1, DO_TableOfReal_formula);
+		praat_addAction1 (klas, 0, U"Set value...", 0, 1, DO_TableOfReal_setValue);
+		praat_addAction1 (klas, 0, U"Sort by label...", 0, 1, DO_TableOfReal_sortByLabel);
+		praat_addAction1 (klas, 0, U"Sort by column...", 0, 1, DO_TableOfReal_sortByColumn);
+		praat_addAction1 (klas, 0, U"-- structure --", 0, 1, 0);
+		praat_addAction1 (klas, 0, U"Remove row (index)...", 0, 1, DO_TableOfReal_removeRow);
+		praat_addAction1 (klas, 0, U"Remove column (index)...", 0, 1, DO_TableOfReal_removeColumn);
+		praat_addAction1 (klas, 0, U"Insert row (index)...", 0, 1, DO_TableOfReal_insertRow);
+		praat_addAction1 (klas, 0, U"Insert column (index)...", 0, 1, DO_TableOfReal_insertColumn);
+		praat_addAction1 (klas, 0, U"-- set --", 0, 1, 0);
+		praat_addAction1 (klas, 0, U"Set row label (index)...", 0, 1, DO_TableOfReal_setRowLabel_index);
+		praat_addAction1 (klas, 0, U"Set row label (label)...", 0, 1, DO_TableOfReal_setRowLabel_label);
+		praat_addAction1 (klas, 0, U"Set column label (index)...", 0, 1, DO_TableOfReal_setColumnLabel_index);
+		praat_addAction1 (klas, 0, U"Set column label (label)...", 0, 1, DO_TableOfReal_setColumnLabel_label);
+	praat_addAction1 (klas, 0, U"Synthesize -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"Append", 0, 1, DO_TablesOfReal_append);
+	praat_addAction1 (klas, 0, U"Extract part -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"Extract row ranges...", 0, 1, DO_TableOfReal_extractRowRanges);
+		praat_addAction1 (klas, 0, U"Extract rows where column...", 0, 1, DO_TableOfReal_extractRowsWhereColumn);
+		praat_addAction1 (klas, 0, U"Extract rows where label...", 0, 1, DO_TableOfReal_extractRowsWhereLabel);
+		praat_addAction1 (klas, 0, U"Extract rows where...", 0, 1, DO_TableOfReal_extractRowsWhere);
+		praat_addAction1 (klas, 0, U"Extract column ranges...", 0, 1, DO_TableOfReal_extractColumnRanges);
+		praat_addAction1 (klas, 0, U"Extract columns where row...", 0, 1, DO_TableOfReal_extractColumnsWhereRow);
+		praat_addAction1 (klas, 0, U"Extract columns where label...", 0, 1, DO_TableOfReal_extractColumnsWhereLabel);
+		praat_addAction1 (klas, 0, U"Extract columns where...", 0, 1, DO_TableOfReal_extractColumnsWhere);
+	praat_addAction1 (klas, 0, U"Extract -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"Extract row labels as Strings", 0, 1, DO_TableOfReal_extractRowLabelsAsStrings);
+		praat_addAction1 (klas, 0, U"Extract column labels as Strings", 0, 1, DO_TableOfReal_extractColumnLabelsAsStrings);
+	praat_addAction1 (klas, 0, U"Convert -", 0, 0, 0);
+		praat_addAction1 (klas, 0, U"To Table...", 0, 1, DO_TableOfReal_to_Table);
+		praat_addAction1 (klas, 0, U"To Matrix", 0, 1, DO_TableOfReal_to_Matrix);
 }
 
 void praat_uvafon_stat_init ();
 void praat_uvafon_stat_init () {
 
 	Thing_recognizeClassesByName (classTableOfReal, classDistributions, classPairDistribution,
-		classTable, classLinearRegression, classLogisticRegression, nullptr);
+		classTable, classLinearRegression, classLogisticRegression, NULL);
 
 	Data_recognizeFileType (tabSeparatedFileRecognizer);
 
-	structTableEditor :: f_preferences ();
-
-	praat_addMenuCommand (U"Objects", U"New", U"Tables", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Table with column names...", nullptr, 1, DO_Table_createWithColumnNames);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Table without column names...", nullptr, 1, DO_Table_createWithoutColumnNames);
-		praat_addMenuCommand (U"Objects", U"New", U"Create Table...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Table_createWithoutColumnNames);
-		praat_addMenuCommand (U"Objects", U"New", U"Create TableOfReal...", nullptr, 1, DO_TableOfReal_create);
+	praat_addMenuCommand (U"Objects", U"New", U"Tables", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Table with column names...", 0, 1, DO_Table_createWithColumnNames);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Table without column names...", 0, 1, DO_Table_createWithoutColumnNames);
+		praat_addMenuCommand (U"Objects", U"New", U"Create Table...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Table_createWithoutColumnNames);
+		praat_addMenuCommand (U"Objects", U"New", U"Create TableOfReal...", 0, 1, DO_TableOfReal_create);
 
-	praat_addMenuCommand (U"Objects", U"Open", U"Read TableOfReal from headerless spreadsheet file...", nullptr, 0, DO_TableOfReal_readFromHeaderlessSpreadsheetFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from tab-separated file...", nullptr, 0, DO_Table_readFromTabSeparatedFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from comma-separated file...", nullptr, 0, DO_Table_readFromCommaSeparatedFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from whitespace-separated file...", nullptr, 0, DO_Table_readFromTableFile);
-	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from table file...", nullptr, praat_HIDDEN, DO_Table_readFromTableFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read TableOfReal from headerless spreadsheet file...", 0, 0, DO_TableOfReal_readFromHeaderlessSpreadsheetFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from tab-separated file...", 0, 0, DO_Table_readFromTabSeparatedFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from comma-separated file...", 0, 0, DO_Table_readFromCommaSeparatedFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from whitespace-separated file...", 0, 0, DO_Table_readFromTableFile);
+	praat_addMenuCommand (U"Objects", U"Open", U"Read Table from table file...", 0, praat_HIDDEN, DO_Table_readFromTableFile);
 
-	praat_addAction1 (classDistributions, 0, U"Distributions help", nullptr, 0, DO_Distributions_help);
+	praat_addAction1 (classDistributions, 0, U"Distributions help", 0, 0, DO_Distributions_help);
 	praat_TableOfReal_init (classDistributions);
 	praat_addAction1 (classDistributions, 1, U"Get probability (label)...", U"Get value...", 1, DO_Distributions_getProbability);
-	praat_addAction1 (classDistributions, 0, U"-- get from two --", U"Get probability (label)...", 1, nullptr);
+	praat_addAction1 (classDistributions, 0, U"-- get from two --", U"Get probability (label)...", 1, 0);
 	praat_addAction1 (classDistributions, 2, U"Get mean absolute difference...", U"-- get from two --", 1, DO_Distributionses_getMeanAbsoluteDifference);
-	praat_addAction1 (classDistributions, 0, U"-- add --", U"Append", 1, nullptr);
+	praat_addAction1 (classDistributions, 0, U"-- add --", U"Append", 1, 0);
 	praat_addAction1 (classDistributions, 0, U"Add", U"-- add --", 1, DO_Distributionses_add);
-	praat_addAction1 (classDistributions, 0, U"Generate", nullptr, 0, nullptr);   // FIXME no hyphen?
-		praat_addAction1 (classDistributions, 0, U"To Strings...", nullptr, 0, DO_Distributions_to_Strings);
-		praat_addAction1 (classDistributions, 0, U"To Strings (exact)...", nullptr, 0, DO_Distributions_to_Strings_exact);
-
-	praat_addAction1 (classLogisticRegression, 0, U"Draw boundary...", nullptr, 0, DO_LogisticRegression_drawBoundary);
-
-	praat_addAction1 (classPairDistribution, 0, U"PairDistribution help", nullptr, 0, DO_PairDistribution_help);
-	praat_addAction1 (classPairDistribution, 0, U"To Table", nullptr, 0, DO_PairDistribution_to_Table);
-	praat_addAction1 (classPairDistribution, 1, U"To Stringses...", nullptr, 0, DO_PairDistribution_to_Stringses);
-	praat_addAction1 (classPairDistribution, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classPairDistribution, 1, U"Get number of pairs", nullptr, 1, DO_PairDistribution_getNumberOfPairs);
-		praat_addAction1 (classPairDistribution, 1, U"Get string1...", nullptr, 1, DO_PairDistribution_getString1);
-		praat_addAction1 (classPairDistribution, 1, U"Get string2...", nullptr, 1, DO_PairDistribution_getString2);
-		praat_addAction1 (classPairDistribution, 1, U"Get weight...", nullptr, 1, DO_PairDistribution_getWeight);
-		praat_addAction1 (classPairDistribution, 1, U"-- get fraction correct --", nullptr, 1, nullptr);
-		praat_addAction1 (classPairDistribution, 1, U"Get fraction correct (maximum likelihood)", nullptr, 1, DO_PairDistribution_getFractionCorrect_maximumLikelihood);
-		praat_addAction1 (classPairDistribution, 1, U"Get fraction correct (probability matching)", nullptr, 1, DO_PairDistribution_getFractionCorrect_probabilityMatching);
-	praat_addAction1 (classPairDistribution, 0, U"Modify -", nullptr, 0, nullptr);
-	praat_addAction1 (classPairDistribution, 0, U"Remove zero weights", nullptr, 1, DO_PairDistribution_removeZeroWeights);
-	praat_addAction1 (classPairDistribution, 0, U"Swap inputs and outputs", nullptr, 1, DO_PairDistribution_swapInputsAndOutputs);
-
-	praat_addAction1 (classTable, 0, U"Table help", nullptr, 0, DO_Table_help);
-	praat_addAction1 (classTable, 1, U"Save as tab-separated file...", nullptr, 0, DO_Table_writeToTabSeparatedFile);
-	praat_addAction1 (classTable, 1, U"Save as comma-separated file...", nullptr, 0, DO_Table_writeToCommaSeparatedFile);
-	praat_addAction1 (classTable, 1, U"Save as table file...", nullptr, praat_HIDDEN, DO_Table_writeToTabSeparatedFile);
-	praat_addAction1 (classTable, 1, U"Write to table file...", nullptr, praat_HIDDEN, DO_Table_writeToTabSeparatedFile);
-	praat_addAction1 (classTable, 1, U"View & Edit", nullptr, praat_ATTRACTIVE, DO_Table_edit);
-	praat_addAction1 (classTable, 1, U"Edit", nullptr, praat_HIDDEN, DO_Table_edit);
-	praat_addAction1 (classTable, 0, U"Draw -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 0, U"Scatter plot...", nullptr, 1, DO_Table_scatterPlot);
-		praat_addAction1 (classTable, 0, U"Scatter plot (mark)...", nullptr, 1, DO_Table_scatterPlot_mark);
-		praat_addAction1 (classTable, 0, U"Draw ellipse (standard deviation)...", nullptr, 1, DO_Table_drawEllipse);
-	praat_addAction1 (classTable, 0, U"Query -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 1, U"List...", nullptr, 1, DO_Table_list);
-		praat_addAction1 (classTable, 1, U"-- get structure --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 1, U"Get number of rows", nullptr, 1, DO_Table_getNumberOfRows);
-		praat_addAction1 (classTable, 1, U"Get number of columns", nullptr, 1, DO_Table_getNumberOfColumns);
-		praat_addAction1 (classTable, 1, U"Get column label...", nullptr, 1, DO_Table_getColumnLabel);
-		praat_addAction1 (classTable, 1, U"Get column index...", nullptr, 1, DO_Table_getColumnIndex);
-		praat_addAction1 (classTable, 1, U"-- get value --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 1, U"Get value...", nullptr, 1, DO_Table_getValue);
-		praat_addAction1 (classTable, 1, U"Search column...", nullptr, 1, DO_Table_searchColumn);
-		praat_addAction1 (classTable, 1, U"-- statistics --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 1, U"Statistics tutorial", nullptr, 1, DO_StatisticsTutorial);
-		praat_addAction1 (classTable, 1, U"-- get stats --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 1, U"Get quantile...", nullptr, 1, DO_Table_getQuantile);
-		praat_addAction1 (classTable, 1, U"Get minimum...", nullptr, 1, DO_Table_getMinimum);
-		praat_addAction1 (classTable, 1, U"Get maximum...", nullptr, 1, DO_Table_getMaximum);
-		praat_addAction1 (classTable, 1, U"Get mean...", nullptr, 1, DO_Table_getMean);
-		praat_addAction1 (classTable, 1, U"Get group mean...", nullptr, 1, DO_Table_getGroupMean);
-		praat_addAction1 (classTable, 1, U"Get standard deviation...", nullptr, 1, DO_Table_getStandardDeviation);
-		praat_addAction1 (classTable, 1, U"-- report stats --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 1, U"Report mean (Student t)...", nullptr, 1, DO_Table_reportMean_studentT);
-		/*praat_addAction1 (classTable, 1, U"Report standard deviation...", nullptr, 1, DO_Table_reportStandardDeviation);*/
-		praat_addAction1 (classTable, 1, U"Report difference (Student t)...", nullptr, 1, DO_Table_reportDifference_studentT);
-		praat_addAction1 (classTable, 1, U"Report group mean (Student t)...", nullptr, 1, DO_Table_reportGroupMean_studentT);
-		praat_addAction1 (classTable, 1, U"Report group difference (Student t)...", nullptr, 1, DO_Table_reportGroupDifference_studentT);
-		praat_addAction1 (classTable, 1, U"Report group difference (Wilcoxon rank sum)...", nullptr, 1, DO_Table_reportGroupDifference_wilcoxonRankSum);
-		praat_addAction1 (classTable, 1, U"Report correlation (Pearson r)...", nullptr, 1, DO_Table_reportCorrelation_pearsonR);
-		praat_addAction1 (classTable, 1, U"Report correlation (Kendall tau)...", nullptr, 1, DO_Table_reportCorrelation_kendallTau);
-	praat_addAction1 (classTable, 0, U"Modify -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 0, U"Set string value...", nullptr, 1, DO_Table_setStringValue);
-		praat_addAction1 (classTable, 0, U"Set numeric value...", nullptr, 1, DO_Table_setNumericValue);
-		praat_addAction1 (classTable, 0, U"Formula...", nullptr, 1, DO_Table_formula);
-		praat_addAction1 (classTable, 0, U"Formula (column range)...", nullptr, 1, DO_Table_formula_columnRange);
-		praat_addAction1 (classTable, 0, U"Sort rows...", nullptr, 1, DO_Table_sortRows);
-		praat_addAction1 (classTable, 0, U"Randomize rows", nullptr, 1, DO_Table_randomizeRows);
-		praat_addAction1 (classTable, 0, U"Reflect rows", nullptr, 1, DO_Table_reflectRows);
-		praat_addAction1 (classTable, 0, U"-- structure --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 0, U"Append row", nullptr, 1, DO_Table_appendRow);
-		praat_addAction1 (classTable, 0, U"Append column...", nullptr, 1, DO_Table_appendColumn);
-		praat_addAction1 (classTable, 0, U"Append sum column...", nullptr, 1, DO_Table_appendSumColumn);
-		praat_addAction1 (classTable, 0, U"Append difference column...", nullptr, 1, DO_Table_appendDifferenceColumn);
-		praat_addAction1 (classTable, 0, U"Append product column...", nullptr, 1, DO_Table_appendProductColumn);
-		praat_addAction1 (classTable, 0, U"Append quotient column...", nullptr, 1, DO_Table_appendQuotientColumn);
-		praat_addAction1 (classTable, 0, U"Remove row...", nullptr, 1, DO_Table_removeRow);
-		praat_addAction1 (classTable, 0, U"Remove column...", nullptr, 1, DO_Table_removeColumn);
-		praat_addAction1 (classTable, 0, U"Insert row...", nullptr, 1, DO_Table_insertRow);
-		praat_addAction1 (classTable, 0, U"Insert column...", nullptr, 1, DO_Table_insertColumn);
-		praat_addAction1 (classTable, 0, U"-- set --", nullptr, 1, nullptr);
-		praat_addAction1 (classTable, 0, U"Set column label (index)...", nullptr, 1, DO_Table_setColumnLabel_index);
-		praat_addAction1 (classTable, 0, U"Set column label (label)...", nullptr, 1, DO_Table_setColumnLabel_label);
-	praat_addAction1 (classTable, 0, U"Analyse -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 0, U"To linear regression", nullptr, 1, DO_Table_to_LinearRegression);
-		praat_addAction1 (classTable, 0, U"To logistic regression...", nullptr, 1, DO_Table_to_LogisticRegression);
-	praat_addAction1 (classTable, 0, U"Synthesize -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 0, U"Append", nullptr, 1, DO_Tables_append);
-	praat_addAction1 (classTable, 0, U"Generate -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 1, U"Draw row from distribution...", nullptr, 1, DO_Table_drawRowFromDistribution);
-	praat_addAction1 (classTable, 0, U"Extract -", nullptr, 0, nullptr);
-		praat_addAction1 (classTable, 0, U"Extract rows where column (number)...", nullptr, 1, DO_Table_extractRowsWhereColumn_number);
-		praat_addAction1 (classTable, 0, U"Extract rows where column...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Table_extractRowsWhereColumn_number);
-		praat_addAction1 (classTable, 0, U"Select rows where column...", nullptr, praat_DEPTH_1 + praat_HIDDEN, DO_Table_extractRowsWhereColumn_number);
-		praat_addAction1 (classTable, 0, U"Extract rows where column (text)...", nullptr, 1, DO_Table_extractRowsWhereColumn_text);
-		praat_addAction1 (classTable, 0, U"Transpose", nullptr, 1, DO_Table_transpose);
-		praat_addAction1 (classTable, 0, U"Collapse rows...", nullptr, 1, DO_Table_collapseRows);
-		praat_addAction1 (classTable, 0, U"Rows to columns...", nullptr, 1, DO_Table_rowsToColumns);
-	praat_addAction1 (classTable, 0, U"Down to TableOfReal...", nullptr, 0, DO_Table_to_TableOfReal);
-
-	praat_addAction1 (classTableOfReal, 0, U"TableOfReal help", nullptr, 0, DO_TableOfReal_help);
+	praat_addAction1 (classDistributions, 0, U"Generate", 0, 0, 0);
+		praat_addAction1 (classDistributions, 0, U"To Strings...", 0, 0, DO_Distributions_to_Strings);
+		praat_addAction1 (classDistributions, 0, U"To Strings (exact)...", 0, 0, DO_Distributions_to_Strings_exact);
+
+	praat_addAction1 (classLogisticRegression, 0, U"Draw boundary...", 0, 0, DO_LogisticRegression_drawBoundary);
+
+	praat_addAction1 (classPairDistribution, 0, U"PairDistribution help", 0, 0, DO_PairDistribution_help);
+	praat_addAction1 (classPairDistribution, 0, U"To Table", 0, 0, DO_PairDistribution_to_Table);
+	praat_addAction1 (classPairDistribution, 1, U"To Stringses...", 0, 0, DO_PairDistribution_to_Stringses);
+	praat_addAction1 (classPairDistribution, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classPairDistribution, 1, U"Get number of pairs", 0, 1, DO_PairDistribution_getNumberOfPairs);
+		praat_addAction1 (classPairDistribution, 1, U"Get string1...", 0, 1, DO_PairDistribution_getString1);
+		praat_addAction1 (classPairDistribution, 1, U"Get string2...", 0, 1, DO_PairDistribution_getString2);
+		praat_addAction1 (classPairDistribution, 1, U"Get weight...", 0, 1, DO_PairDistribution_getWeight);
+		praat_addAction1 (classPairDistribution, 1, U"-- get fraction correct --", 0, 1, 0);
+		praat_addAction1 (classPairDistribution, 1, U"Get fraction correct (maximum likelihood)", 0, 1, DO_PairDistribution_getFractionCorrect_maximumLikelihood);
+		praat_addAction1 (classPairDistribution, 1, U"Get fraction correct (probability matching)", 0, 1, DO_PairDistribution_getFractionCorrect_probabilityMatching);
+	praat_addAction1 (classPairDistribution, 0, U"Modify -", 0, 0, 0);
+	praat_addAction1 (classPairDistribution, 0, U"Remove zero weights", 0, 1, DO_PairDistribution_removeZeroWeights);
+	praat_addAction1 (classPairDistribution, 0, U"Swap inputs and outputs", 0, 1, DO_PairDistribution_swapInputsAndOutputs);
+
+	praat_addAction1 (classTable, 0, U"Table help", 0, 0, DO_Table_help);
+	praat_addAction1 (classTable, 1, U"Save as tab-separated file...", 0, 0, DO_Table_writeToTabSeparatedFile);
+	praat_addAction1 (classTable, 1, U"Save as comma-separated file...", 0, 0, DO_Table_writeToCommaSeparatedFile);
+	praat_addAction1 (classTable, 1, U"Save as table file...", 0, praat_HIDDEN, DO_Table_writeToTabSeparatedFile);
+	praat_addAction1 (classTable, 1, U"Write to table file...", 0, praat_HIDDEN, DO_Table_writeToTabSeparatedFile);
+	praat_addAction1 (classTable, 1, U"View & Edit", 0, praat_ATTRACTIVE, DO_Table_edit);
+	praat_addAction1 (classTable, 1, U"Edit", 0, praat_HIDDEN, DO_Table_edit);
+	praat_addAction1 (classTable, 0, U"Draw -", 0, 0, 0);
+		praat_addAction1 (classTable, 0, U"Scatter plot...", 0, 1, DO_Table_scatterPlot);
+		praat_addAction1 (classTable, 0, U"Scatter plot (mark)...", 0, 1, DO_Table_scatterPlot_mark);
+		praat_addAction1 (classTable, 0, U"Draw ellipse (standard deviation)...", 0, 1, DO_Table_drawEllipse);
+	praat_addAction1 (classTable, 0, U"Query -", 0, 0, 0);
+		praat_addAction1 (classTable, 1, U"List...", 0, 1, DO_Table_list);
+		praat_addAction1 (classTable, 1, U"-- get structure --", 0, 1, 0);
+		praat_addAction1 (classTable, 1, U"Get number of rows", 0, 1, DO_Table_getNumberOfRows);
+		praat_addAction1 (classTable, 1, U"Get number of columns", 0, 1, DO_Table_getNumberOfColumns);
+		praat_addAction1 (classTable, 1, U"Get column label...", 0, 1, DO_Table_getColumnLabel);
+		praat_addAction1 (classTable, 1, U"Get column index...", 0, 1, DO_Table_getColumnIndex);
+		praat_addAction1 (classTable, 1, U"-- get value --", 0, 1, 0);
+		praat_addAction1 (classTable, 1, U"Get value...", 0, 1, DO_Table_getValue);
+		praat_addAction1 (classTable, 1, U"Search column...", 0, 1, DO_Table_searchColumn);
+		praat_addAction1 (classTable, 1, U"-- statistics --", 0, 1, 0);
+		praat_addAction1 (classTable, 1, U"Statistics tutorial", 0, 1, DO_StatisticsTutorial);
+		praat_addAction1 (classTable, 1, U"-- get stats --", 0, 1, 0);
+		praat_addAction1 (classTable, 1, U"Get quantile...", 0, 1, DO_Table_getQuantile);
+		praat_addAction1 (classTable, 1, U"Get minimum...", 0, 1, DO_Table_getMinimum);
+		praat_addAction1 (classTable, 1, U"Get maximum...", 0, 1, DO_Table_getMaximum);
+		praat_addAction1 (classTable, 1, U"Get mean...", 0, 1, DO_Table_getMean);
+		praat_addAction1 (classTable, 1, U"Get group mean...", 0, 1, DO_Table_getGroupMean);
+		praat_addAction1 (classTable, 1, U"Get standard deviation...", 0, 1, DO_Table_getStandardDeviation);
+		praat_addAction1 (classTable, 1, U"-- report stats --", 0, 1, 0);
+		praat_addAction1 (classTable, 1, U"Report mean (Student t)...", 0, 1, DO_Table_reportMean_studentT);
+		/*praat_addAction1 (classTable, 1, U"Report standard deviation...", 0, 1, DO_Table_reportStandardDeviation);*/
+		praat_addAction1 (classTable, 1, U"Report difference (Student t)...", 0, 1, DO_Table_reportDifference_studentT);
+		praat_addAction1 (classTable, 1, U"Report group mean (Student t)...", 0, 1, DO_Table_reportGroupMean_studentT);
+		praat_addAction1 (classTable, 1, U"Report group difference (Student t)...", 0, 1, DO_Table_reportGroupDifference_studentT);
+		praat_addAction1 (classTable, 1, U"Report group difference (Wilcoxon rank sum)...", 0, 1, DO_Table_reportGroupDifference_wilcoxonRankSum);
+		praat_addAction1 (classTable, 1, U"Report correlation (Pearson r)...", 0, 1, DO_Table_reportCorrelation_pearsonR);
+		praat_addAction1 (classTable, 1, U"Report correlation (Kendall tau)...", 0, 1, DO_Table_reportCorrelation_kendallTau);
+	praat_addAction1 (classTable, 0, U"Modify -", 0, 0, 0);
+		praat_addAction1 (classTable, 0, U"Set string value...", 0, 1, DO_Table_setStringValue);
+		praat_addAction1 (classTable, 0, U"Set numeric value...", 0, 1, DO_Table_setNumericValue);
+		praat_addAction1 (classTable, 0, U"Formula...", 0, 1, DO_Table_formula);
+		praat_addAction1 (classTable, 0, U"Formula (column range)...", 0, 1, DO_Table_formula_columnRange);
+		praat_addAction1 (classTable, 0, U"Sort rows...", 0, 1, DO_Table_sortRows);
+		praat_addAction1 (classTable, 0, U"Randomize rows", 0, 1, DO_Table_randomizeRows);
+		praat_addAction1 (classTable, 0, U"Reflect rows", 0, 1, DO_Table_reflectRows);
+		praat_addAction1 (classTable, 0, U"-- structure --", 0, 1, 0);
+		praat_addAction1 (classTable, 0, U"Append row", 0, 1, DO_Table_appendRow);
+		praat_addAction1 (classTable, 0, U"Append column...", 0, 1, DO_Table_appendColumn);
+		praat_addAction1 (classTable, 0, U"Append sum column...", 0, 1, DO_Table_appendSumColumn);
+		praat_addAction1 (classTable, 0, U"Append difference column...", 0, 1, DO_Table_appendDifferenceColumn);
+		praat_addAction1 (classTable, 0, U"Append product column...", 0, 1, DO_Table_appendProductColumn);
+		praat_addAction1 (classTable, 0, U"Append quotient column...", 0, 1, DO_Table_appendQuotientColumn);
+		praat_addAction1 (classTable, 0, U"Remove row...", 0, 1, DO_Table_removeRow);
+		praat_addAction1 (classTable, 0, U"Remove column...", 0, 1, DO_Table_removeColumn);
+		praat_addAction1 (classTable, 0, U"Insert row...", 0, 1, DO_Table_insertRow);
+		praat_addAction1 (classTable, 0, U"Insert column...", 0, 1, DO_Table_insertColumn);
+		praat_addAction1 (classTable, 0, U"-- set --", 0, 1, 0);
+		praat_addAction1 (classTable, 0, U"Set column label (index)...", 0, 1, DO_Table_setColumnLabel_index);
+		praat_addAction1 (classTable, 0, U"Set column label (label)...", 0, 1, DO_Table_setColumnLabel_label);
+	praat_addAction1 (classTable, 0, U"Analyse -", 0, 0, 0);
+		praat_addAction1 (classTable, 0, U"To linear regression", 0, 1, DO_Table_to_LinearRegression);
+		praat_addAction1 (classTable, 0, U"To logistic regression...", 0, 1, DO_Table_to_LogisticRegression);
+	praat_addAction1 (classTable, 0, U"Synthesize -", 0, 0, 0);
+		praat_addAction1 (classTable, 0, U"Append", 0, 1, DO_Tables_append);
+	praat_addAction1 (classTable, 0, U"Generate -", 0, 0, 0);
+		praat_addAction1 (classTable, 1, U"Draw row from distribution...", 0, 1, DO_Table_drawRowFromDistribution);
+	praat_addAction1 (classTable, 0, U"Extract -", 0, 0, 0);
+		praat_addAction1 (classTable, 0, U"Extract rows where column (number)...", 0, 1, DO_Table_extractRowsWhereColumn_number);
+		praat_addAction1 (classTable, 0, U"Extract rows where column...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Table_extractRowsWhereColumn_number);
+		praat_addAction1 (classTable, 0, U"Select rows where column...", 0, praat_DEPTH_1 + praat_HIDDEN, DO_Table_extractRowsWhereColumn_number);
+		praat_addAction1 (classTable, 0, U"Extract rows where column (text)...", 0, 1, DO_Table_extractRowsWhereColumn_text);
+		praat_addAction1 (classTable, 0, U"Transpose", 0, 1, DO_Table_transpose);
+		praat_addAction1 (classTable, 0, U"Collapse rows...", 0, 1, DO_Table_collapseRows);
+		praat_addAction1 (classTable, 0, U"Rows to columns...", 0, 1, DO_Table_rowsToColumns);
+	praat_addAction1 (classTable, 0, U"Down to TableOfReal...", 0, 0, DO_Table_to_TableOfReal);
+
+	praat_addAction1 (classTableOfReal, 0, U"TableOfReal help", 0, 0, DO_TableOfReal_help);
 	praat_TableOfReal_init (classTableOfReal);
 
-	praat_addAction2 (classPairDistribution, 1, classDistributions, 1, U"Get fraction correct...", nullptr, 0, DO_PairDistribution_Distributions_getFractionCorrect);
+	praat_addAction2 (classPairDistribution, 1, classDistributions, 1, U"Get fraction correct...", 0, 0, DO_PairDistribution_Distributions_getFractionCorrect);
 }
 
 /* End of file praat_Stat.cpp */
diff --git a/sys/ButtonEditor.cpp b/sys/ButtonEditor.cpp
index b4134dc..dbde3b0 100644
--- a/sys/ButtonEditor.cpp
+++ b/sys/ButtonEditor.cpp
@@ -33,11 +33,11 @@ Thing_implement (ButtonEditor, HyperPage, 0);
 	#define BUTTON_WIDTH  96
 #endif
 
-static void drawMenuCommand (ButtonEditor me, Praat_Command cmd, long i) {
+static void drawMenuCommand (ButtonEditor me, praat_Command cmd, long i) {
 	static MelderString text { 0 };
-	bool isAdded = cmd -> uniqueID != 0 || cmd -> script != nullptr;
-	bool isHidden = cmd -> hidden;
-	bool isToggled = cmd -> toggled;
+	int isAdded = cmd -> uniqueID != 0 || cmd -> script != NULL;
+	int isHidden = cmd -> hidden;
+	int isToggled = cmd -> toggled;
 	const char32 *clickText = isHidden ? (isToggled ? (isAdded ? U"REMOVED" : U"HIDDEN") : U"hidden") :
 		(isToggled ? U"SHOWN" :  (isAdded ? (cmd -> uniqueID ? U"ADDED" : U"START-UP") : U"shown"));
 	MelderString_empty (& text);
@@ -69,10 +69,10 @@ static void drawMenuCommand (ButtonEditor me, Praat_Command cmd, long i) {
 		cmd -> depth * 0.3, 0.4, 0.0, 0.0, 0);
 }
 
-static void drawAction (ButtonEditor me, Praat_Command cmd, long i) {
+static void drawAction (ButtonEditor me, praat_Command cmd, long i) {
 	static MelderString text { 0 };
-	bool isAdded = cmd -> uniqueID != 0 || cmd -> script != nullptr;
-	bool isHidden = cmd -> hidden, isToggled = cmd -> toggled;
+	int isAdded = cmd -> uniqueID != 0 || cmd -> script != NULL;
+	int isHidden = cmd -> hidden, isToggled = cmd -> toggled;
 	const char32 *clickText = isHidden ? (isToggled ? (isAdded ? U"REMOVED" : U"HIDDEN") : U"hidden") :
 		(isToggled ? U"SHOWN" :  (isAdded ? (cmd -> uniqueID ? U"ADDED" : U"START-UP") : U"shown"));
 	int n1 = cmd -> n1;
@@ -128,32 +128,32 @@ static void drawAction (ButtonEditor me, Praat_Command cmd, long i) {
 }
 
 void structButtonEditor :: v_draw () {
-	Graphics_clearWs (our graphics.get());
+	Graphics_clearWs (g);
 	switch (show) {
 		case 1:
 			for (long i = 1, n = praat_getNumberOfMenuCommands (); i <= n; i ++) {
-				Praat_Command cmd = praat_getMenuCommand (i);
+				praat_Command cmd = praat_getMenuCommand (i);
 				if (str32equ (cmd -> window, U"Objects"))
 					drawMenuCommand (this, praat_getMenuCommand (i), i);
 			}
 			break;
 		case 2:
 			for (long i = 1, n = praat_getNumberOfMenuCommands (); i <= n; i ++) {
-				Praat_Command cmd = praat_getMenuCommand (i);
+				praat_Command cmd = praat_getMenuCommand (i);
 				if (str32equ (cmd -> window, U"Picture"))
 					drawMenuCommand (this, praat_getMenuCommand (i), i);
 			}
 			break;
 		case 3:
 			for (long i = 1, n = praat_getNumberOfMenuCommands (); i <= n; i ++) {
-				Praat_Command cmd = praat_getMenuCommand (i);
+				praat_Command cmd = praat_getMenuCommand (i);
 				if (! str32equ (cmd -> window, U"Objects") && ! str32equ (cmd -> window, U"Picture"))
 					drawMenuCommand (this, praat_getMenuCommand (i), i);
 			}
 			break;
 		case 4:
 			for (long i = 1, n = praat_getNumberOfActions (); i <= n; i ++) {
-				Praat_Command cmd = praat_getAction (i);
+				praat_Command cmd = praat_getAction (i);
 				const char32 *klas = cmd -> class1 -> className;
 				if (str32cmp (klas, U"N") < 0)
 					drawAction (this, praat_getAction (i), i);
@@ -161,7 +161,7 @@ void structButtonEditor :: v_draw () {
 			break;
 		case 5:
 			for (long i = 1, n = praat_getNumberOfActions (); i <= n; i ++) {
-				Praat_Command cmd = praat_getAction (i);
+				praat_Command cmd = praat_getAction (i);
 				const char32 *klas = cmd -> class1 -> className;
 				if (str32cmp (klas, U"N") >= 0)
 					drawAction (this, praat_getAction (i), i);
@@ -176,7 +176,7 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 	switch (title [0]) {
 		case 'a': {   // toggle visibility of action
 			long i = Melder_atoi (& title [1]);
-			Praat_Command action = praat_getAction (i);
+			praat_Command action = praat_getAction (i);
 			if (! action) return 0;
 			if (action -> hidden)
 				praat_showAction (action -> class1, action -> class2, action -> class3, action -> title);
@@ -185,7 +185,7 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 		} break;
 		case 'm': {   // toggle visibility of menu command
 			long i = Melder_atoi (& title [1]);
-			Praat_Command menuCommand = praat_getMenuCommand (i);
+			praat_Command menuCommand = praat_getMenuCommand (i);
 			if (! menuCommand) return 0;
 			if (menuCommand -> hidden)
 				praat_showMenuCommand (menuCommand -> window, menuCommand -> menu, menuCommand -> title);
@@ -194,7 +194,7 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 		} break;
 		case 'e': {   // execute action
 			long i = Melder_atoi (& title [1]);
-			Praat_Command action = praat_getAction (i);
+			praat_Command action = praat_getAction (i);
 			if (! action || ! action -> callback) return 0;
 			if (action -> title) {
 				UiHistory_write (U"\n");
@@ -202,13 +202,13 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 			}
 			if (action -> script) {
 				try {
-					DO_RunTheScriptFromAnyAddedMenuCommand (nullptr, 0, nullptr, action -> script, nullptr, nullptr, false, nullptr);
+					DO_RunTheScriptFromAnyAddedMenuCommand (NULL, 0, NULL, action -> script, NULL, NULL, false, NULL);
 				} catch (MelderError) {
 					Melder_flushError (U"Command not executed.");
 				}
 			} else {
 				try {
-					action -> callback (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+					action -> callback (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 				} catch (MelderError) {
 					Melder_flushError (U"Command not executed.");
 				}
@@ -217,7 +217,7 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 		} break;
 		case 'p': {   // perform menu command
 			long i = Melder_atoi (& title [1]);
-			Praat_Command menuCommand = praat_getMenuCommand (i);
+			praat_Command menuCommand = praat_getMenuCommand (i);
 			if (! menuCommand || ! menuCommand -> callback) return 0;
 			if (menuCommand -> title) {
 				UiHistory_write (U"\n");
@@ -225,13 +225,13 @@ int structButtonEditor :: v_goToPage (const char32 *title) {
 			}
 			if (menuCommand -> script) {
 				try {
-					DO_RunTheScriptFromAnyAddedMenuCommand (nullptr, 0, nullptr, menuCommand -> script, nullptr, nullptr, false, nullptr);
+					DO_RunTheScriptFromAnyAddedMenuCommand (NULL, 0, NULL, menuCommand -> script, NULL, NULL, false, NULL);
 				} catch (MelderError) {
 					Melder_flushError (U"Command not executed.");
 				}
 			} else {
 				try {
-					menuCommand -> callback (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+					menuCommand -> callback (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 				} catch (MelderError) {
 					Melder_flushError (U"Command not executed.");
 				}
@@ -249,11 +249,11 @@ static void which (ButtonEditor me, int show) {
 	HyperPage_goToPage (me, U"Buttons");
 }
 
-static void gui_radiobutton_cb_objects (ButtonEditor me, GuiRadioButtonEvent /* event */) { which (me, 1); }
-static void gui_radiobutton_cb_picture (ButtonEditor me, GuiRadioButtonEvent /* event */) { which (me, 2); }
-static void gui_radiobutton_cb_editors (ButtonEditor me, GuiRadioButtonEvent /* event */) { which (me, 3); }
-static void gui_radiobutton_cb_actionsAM (ButtonEditor me, GuiRadioButtonEvent /* event */) { which (me, 4); }
-static void gui_radiobutton_cb_actionsNZ (ButtonEditor me, GuiRadioButtonEvent /* event */) { which (me, 5); }
+static void gui_radiobutton_cb_objects (I, GuiRadioButtonEvent event) { (void) event; which ((ButtonEditor) void_me, 1); }
+static void gui_radiobutton_cb_picture (I, GuiRadioButtonEvent event) { (void) event; which ((ButtonEditor) void_me, 2); }
+static void gui_radiobutton_cb_editors (I, GuiRadioButtonEvent event) { (void) event; which ((ButtonEditor) void_me, 3); }
+static void gui_radiobutton_cb_actionsAM (I, GuiRadioButtonEvent event) { (void) event; which ((ButtonEditor) void_me, 4); }
+static void gui_radiobutton_cb_actionsNZ (I, GuiRadioButtonEvent event) { (void) event; which ((ButtonEditor) void_me, 5); }
 
 void structButtonEditor :: v_createChildren () {
 	ButtonEditor_Parent :: v_createChildren ();
@@ -276,19 +276,19 @@ void structButtonEditor :: v_createChildren () {
 	GuiRadioGroup_end ();
 }
 
-static void menu_cb_ButtonEditorHelp (ButtonEditor /* me */, EDITOR_ARGS_DIRECT) { Melder_help (U"ButtonEditor"); }
+static void menu_cb_ButtonEditorHelp (EDITOR_ARGS) { EDITOR_IAM (ButtonEditor); Melder_help (U"ButtonEditor"); }
 
 void structButtonEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	ButtonEditor_Parent :: v_createHelpMenuItems (menu);
 	EditorMenu_addCommand (menu, U"ButtonEditor help", '?', menu_cb_ButtonEditorHelp);
 }
 
-autoButtonEditor ButtonEditor_create () {
+ButtonEditor ButtonEditor_create () {
 	try {
 		autoButtonEditor me = Thing_new (ButtonEditor);
-		HyperPage_init (me.get(), U"Buttons", nullptr);
-		which (me.get(), 1);
-		return me;
+		HyperPage_init (me.peek(), U"Buttons", NULL);
+		which (me.peek(), 1);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Buttons window not created.");
 	}
diff --git a/sys/ButtonEditor.h b/sys/ButtonEditor.h
index b558bb1..b1a1e76 100644
--- a/sys/ButtonEditor.h
+++ b/sys/ButtonEditor.h
@@ -37,7 +37,7 @@ Thing_define (ButtonEditor, HyperPage) {
 		override;
 };
 
-autoButtonEditor ButtonEditor_create ();
+ButtonEditor ButtonEditor_create ();
 
 /* End of file ButtonEditor.h */
 #endif
diff --git a/sys/Collection.cpp b/sys/Collection.cpp
index c9da956..7199432 100644
--- a/sys/Collection.cpp
+++ b/sys/Collection.cpp
@@ -1,6 +1,6 @@
 /* Collection.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,40 +22,56 @@
 
 /********** class Collection **********/
 
-void _CollectionOfDaata_v_copy (_CollectionOfDaata* me, _CollectionOfDaata* thee) {
-	thy at._elements = nullptr;   // set to null in case the inherited v_copy crashes
-	my structDaata :: v_copy (thee);
-	thy _ownershipInitialized = my _ownershipInitialized;
-	thy _ownItems = my _ownItems;
-	thy _capacity = my _capacity;
-	thy size = my size;
-	if (my _capacity > 0) {
-		thy at._elements = Melder_calloc (Daata, my _capacity);   // filled with null pointers
-		thy at._elements --;   // immediately turn from base-0 into base-1  // BUG use NUMvector
-	}
-	for (long i = 1; i <= my size; i ++) {
-		Daata itempie = my at [i];
-		if (my _ownItems) {
-			if (! Thing_isa (itempie, classDaata))
-				Melder_throw (U"Cannot copy item of class ", Thing_className (itempie), U".");
-			thy at [i] = Data_copy (itempie).releaseToAmbiguousOwner();
+void structCollection :: v_destroy () {
+	if (item != NULL) {
+		if (! _dontOwnItems) {
+			for (long i = 1; i <= size; i ++) {
+				forget (((Thing *) item) [i]);
+			}
+		}
+		item ++;   // base 1
+		Melder_free (item);
+	}
+	Collection_Parent :: v_destroy ();
+}
+
+void structCollection :: v_info () {
+	MelderInfo_writeLine (size, U" items");
+}
+
+void structCollection :: v_copy (thou) {
+	thouart (Collection);
+	thy item = NULL;   // kill shallow copy of item  // BUG
+	Collection_Parent :: v_copy (thee);
+	thy itemClass = itemClass;
+	thy _capacity = _capacity;
+	thy size = size;
+	thy item = Melder_calloc (void *, _capacity);   // filled with NULL
+	thy item --;   // immediately turn from base-0 into base-1  // BUG use NUMvector
+	for (long i = 1; i <= size; i ++) {
+		Thing itempie = (Thing) item [i];
+		if (_dontOwnItems) {
+			thy item [i] = itempie;   // reference copy: if me doesn't own the items, then thee shouldn't either   // NOTE: the items don't have to be Data
 		} else {
-			thy at [i] = itempie;   // reference copy: if me doesn't own the items, then thee shouldn't either   // NOTE: the items don't have to be Daata
+			if (! Thing_isa (itempie, classData))
+				Melder_throw (U"Cannot copy item of class ", Thing_className (itempie), U".");
+			thy item [i] = Data_copy ((Data) itempie);
 		}
 	}
 }
 
-bool _CollectionOfDaata_v_equal (_CollectionOfDaata* me, _CollectionOfDaata* thee) {
-	if (! my structDaata :: v_equal (thee)) return false;
-	if (my size != thy size) return false;
-	for (long i = 1; i <= my size; i ++) {
-		if (! Thing_isa (my at [i], classDaata))
+bool structCollection :: v_equal (thou) {
+	thouart (Collection);
+	if (! Collection_Parent :: v_equal (thee)) return false;
+	if (size != thy size) return false;
+	for (long i = 1; i <= size; i ++) {
+		if (! Thing_isa ((Thing) item [i], classData))
 			Melder_throw (U"Collection::equal: "
-				U"cannot compare items of class ", Thing_className (my at [i]), U".");
-		if (! Thing_isa (thy at [i], classDaata))
+				U"cannot compare items of class ", Thing_className ((Thing) item [i]), U".");
+		if (! Thing_isa ((Thing) thy item [i], classData))
 			Melder_throw (U"Collection::equal: "
-				U"cannot compare items of class ", Thing_className (thy at [i]), U".");
-		bool equal = Data_equal (my at [i], thy at [i]);
+				U"cannot compare items of class ", Thing_className ((Thing) thy item [i]), U".");
+		bool equal = Data_equal ((Data) item [i], (Data) thy item [i]);
 		//Melder_casual (U"classCollection_equal: ", equal,
 		//	U", item ", i,
 		//  U", types ", Thing_className (my item [i]), U" and ", Thing_className (thy item [i]));
@@ -64,23 +80,23 @@ bool _CollectionOfDaata_v_equal (_CollectionOfDaata* me, _CollectionOfDaata* the
 	return true;
 }
 
-bool _CollectionOfDaata_v_canWriteAsEncoding (_CollectionOfDaata* me, int encoding) {
-	for (long i = 1; i <= my size; i ++) {
-		Daata data = my at [i];
-		if (data -> name && ! Melder_isEncodable (data -> name, encoding)) return false;
+bool structCollection :: v_canWriteAsEncoding (int encoding) {
+	for (long i = 1; i <= size; i ++) {
+		Data data = (Data) item [i];
+		if (data -> name != NULL && ! Melder_isEncodable (data -> name, encoding)) return false;
 		if (! Data_canWriteAsEncoding (data, encoding)) return false;
 	}
 	return true;
 }
 
-void _CollectionOfDaata_v_writeText (_CollectionOfDaata* me, MelderFile file) {
-	texputi4 (file, my size, U"size", 0,0,0,0,0);
-	texputintro (file, U"item []: ", my size ? nullptr : U"(empty)", 0,0,0,0);
-	for (long i = 1; i <= my size; i ++) {
-		Daata thing = my at [i];
+void structCollection :: v_writeText (MelderFile file) {
+	texputi4 (file, size, U"size", 0,0,0,0,0);
+	texputintro (file, U"item []: ", size ? NULL : U"(empty)", 0,0,0,0);
+	for (long i = 1; i <= size; i ++) {
+		Thing thing = (Thing) item [i];
 		ClassInfo classInfo = thing -> classInfo;
 		texputintro (file, U"item [", Melder_integer (i), U"]:", 0,0,0);
-		if (! Thing_isa (thing, classDaata) || ! Data_canWriteText (thing))
+		if (! Thing_isa (thing, classData) || ! Data_canWriteText ((Data) thing))
 			Melder_throw (U"Objects of class ", classInfo -> className, U" cannot be written.");
 		texputw2 (file,
 			classInfo -> version > 0 ?
@@ -88,26 +104,26 @@ void _CollectionOfDaata_v_writeText (_CollectionOfDaata* me, MelderFile file) {
 				classInfo -> className,
 			U"class", 0,0,0,0,0);
 		texputw2 (file, thing -> name, U"name", 0,0,0,0,0);
-		Data_writeText (thing, file);
+		Data_writeText ((Data) thing, file);
 		texexdent (file);
 	}
 	texexdent (file);
 }
 
-void _CollectionOfDaata_v_readText (_CollectionOfDaata* me, MelderReadText text, int formatVersion) {
+void structCollection :: v_readText (MelderReadText text, int formatVersion) {
 	if (formatVersion < 0) {
 		long l_size;
 		autostring8 line = Melder_32to8 (MelderReadText_readLine (text));
-		if (! line.peek() || ! sscanf (line.peek(), "%ld", & l_size) || l_size < 0)
+		if (line.peek() == NULL || ! sscanf (line.peek(), "%ld", & l_size) || l_size < 0)
 			Melder_throw (U"Collection::readText: cannot read size.");
-		my _grow (l_size);
+		Collection_init (this, NULL, l_size);
 		for (long i = 1; i <= l_size; i ++) {
 			long itemNumberRead;
 			int n = 0, length, stringsRead;
 			char klas [200], nameTag [2000];
 			do {
 				line.reset (Melder_32to8 (MelderReadText_readLine (text)));
-				if (! line.peek())
+				if (line.peek() == NULL)
 					Melder_throw (U"Missing object line.");
 			} while (strncmp (line.peek(), "Object ", 7));
 			stringsRead = sscanf (line.peek(), "Object %ld: class %s %s%n", & itemNumberRead, klas, nameTag, & n);
@@ -118,111 +134,446 @@ void _CollectionOfDaata_v_readText (_CollectionOfDaata* me, MelderReadText text,
 					U" while expecting ", i, U".");
 			if (stringsRead == 3 && ! strequ (nameTag, "name"))
 				Melder_throw (U"Collection::readText: wrong header at object ", i, U".");
-			my at [i] = (Daata) Thing_newFromClassName (Melder_peek8to32 (klas), nullptr).releaseToAmbiguousOwner();
-			my size ++;
-			if (! Thing_isa (my at [i], classDaata) || ! Data_canReadText (my at [i]))
-				Melder_throw (U"Cannot read item of class ", Thing_className (my at [i]), U" in collection.");
-			Data_readText (my at [i], text, -1);
+			our item [i] = Thing_newFromClassName (Melder_peek8to32 (klas), NULL);
+			our size ++;
+			if (! Thing_isa ((Thing) our item [i], classData) || ! Data_canReadText ((Data) our item [i]))
+				Melder_throw (U"Cannot read item of class ", Thing_className ((Thing) our item [i]), U" in collection.");
+			Data_readText ((Data) our item [i], text, -1);
 			if (stringsRead == 3) {
 				if (line [n] == U' ') n ++;   // skip space character
 				length = strlen (line.peek()+n);
 				if (length > 0 && (line.peek()+n) [length - 1] == '\n')
 					(line.peek()+n) [length - 1] = '\0';
-				Thing_setName (my at [i], Melder_peek8to32 (line.peek()+n));
+				Thing_setName ((Thing) item [i], Melder_peek8to32 (line.peek()+n));
 			}
 		}
 	} else {
 		int32_t l_size = texgeti4 (text);
-		my _grow (l_size);
+		Collection_init (this, NULL, l_size);
 		for (int32_t i = 1; i <= l_size; i ++) {
 			autostring32 className = texgetw2 (text);
 			int elementFormatVersion;
-			my at [i] = (Daata) Thing_newFromClassName (className.peek(), & elementFormatVersion).releaseToAmbiguousOwner();
-			my size ++;
-			if (! Thing_isa (my at [i], classDaata) || ! Data_canReadText (my at [i]))
-				Melder_throw (U"Cannot read item of class ", Thing_className (my at [i]), U" in collection.");
+			our item [i] = Thing_newFromClassName (className.peek(), & elementFormatVersion);
+			our size ++;
+			if (! Thing_isa ((Thing) our item [i], classData) || ! Data_canReadText ((Data) our item [i]))
+				Melder_throw (U"Cannot read item of class ", Thing_className ((Thing) our item [i]), U" in collection.");
 			autostring32 objectName = texgetw2 (text);
-			Thing_setName (my at [i], objectName.peek());
-			Data_readText (my at [i], text, elementFormatVersion);
+			Thing_setName ((Thing) our item [i], objectName.peek());
+			Data_readText ((Data) our item [i], text, elementFormatVersion);
 		}
 	}
 }
 
-void _CollectionOfDaata_v_writeBinary (_CollectionOfDaata* me, FILE *f) {
-	binputi4 (my size, f);
-	for (long i = 1; i <= my size; i ++) {
-		Daata thing = my at [i];
+void structCollection :: v_writeBinary (FILE *f) {
+	binputi4 (our size, f);
+	for (long i = 1; i <= our size; i ++) {
+		Thing thing = (Thing) our item [i];
 		ClassInfo classInfo = thing -> classInfo;
-		if (! Thing_isa (thing, classDaata) || ! Data_canWriteBinary (thing))
+		if (! Thing_isa (thing, classData) || ! Data_canWriteBinary ((Data) thing))
 			Melder_throw (U"Objects of class ", classInfo -> className, U" cannot be written.");
 		binputw1 (classInfo -> version > 0 ?
 			Melder_cat (classInfo -> className, U" ", classInfo -> version) : classInfo -> className, f);
 		binputw2 (thing -> name, f);
-		Data_writeBinary ((Daata) thing, f);
+		Data_writeBinary ((Data) thing, f);
 	}
 }
 
-void _CollectionOfDaata_v_readBinary (_CollectionOfDaata* me, FILE *f, int formatVersion) {
+void structCollection :: v_readBinary (FILE *f, int formatVersion) {
 	if (formatVersion < 0) {
 		int32 l_size = bingeti4 (f);
 		if (l_size < 0)
 			Melder_throw (U"Empty collection.");
-		my _grow (l_size);
+		Collection_init (this, NULL, l_size);
 		for (int32_t i = 1; i <= l_size; i ++) {
 			char klas [200], name [2000];
 			if (fscanf (f, "%s%s", klas, name) < 2)   // BUG
 				Melder_throw (U"Cannot read class and name.");
-			my at [i] = (Daata) Thing_newFromClassName (Melder_peek8to32 (klas), nullptr).releaseToAmbiguousOwner();
-			my size ++;
-			if (! Thing_isa (my at [i], classDaata))
-				Melder_throw (U"Cannot read item of class ", Thing_className (my at [i]), U".");
+			our item [i] = Thing_newFromClassName (Melder_peek8to32 (klas), NULL);
+			our size ++;
+			if (! Thing_isa ((Thing) our item [i], classData))
+				Melder_throw (U"Cannot read item of class ", Thing_className ((Thing) our item [i]), U".");
 			if (fgetc (f) != ' ')
 				Melder_throw (U"Cannot read space.");
-			Data_readBinary (my at [i], f, -1);
+			Data_readBinary ((Data) our item [i], f, -1);
 			if (strcmp (name, "?"))
-				Thing_setName (my at [i], Melder_peek8to32 (name));
+				Thing_setName ((Thing) our item [i], Melder_peek8to32 (name));
 		}
 	} else {
 		int32_t l_size = bingeti4 (f);
 		if (Melder_debug == 44)
 			Melder_casual (U"structCollection :: v_readBinary: Reading ", l_size, U" objects");
-		my _grow (l_size);
+		Collection_init (this, NULL, l_size);
 		for (int32_t i = 1; i <= l_size; i ++) {
 			autostring8 klas = bingets1 (f);
 			if (Melder_debug == 44)
 				Melder_casual (U"structCollection :: v_readBinary: Reading object of type ", Melder_peek8to32 (klas.peek()));
 			int elementFormatVersion;
-			my at [i] = (Daata) Thing_newFromClassName (Melder_peek8to32 (klas.peek()), & elementFormatVersion).releaseToAmbiguousOwner();
-			my size ++;
-			if (! Thing_isa (my at [i], classDaata) || ! Data_canReadBinary (my at [i]))
-				Melder_throw (U"Objects of class ", Thing_className (my at [i]), U" cannot be read.");
+			our item [i] = Thing_newFromClassName (Melder_peek8to32 (klas.peek()), & elementFormatVersion);
+			our size ++;
+			if (! Thing_isa ((Thing) our item [i], classData) || ! Data_canReadBinary ((Data) our item [i]))
+				Melder_throw (U"Objects of class ", Thing_className ((Thing) our item [i]), U" cannot be read.");
 			autostring32 name = bingetw2 (f);
 			if (Melder_debug == 44)
 				Melder_casual (U"structCollection :: v_readBinary: Reading object with name ", name.peek());
-			Thing_setName (my at [i], name.peek());
-			Data_readBinary (my at [i], f, elementFormatVersion);
+			Thing_setName ((Thing) our item [i], name.peek());
+			Data_readBinary ((Data) our item [i], f, elementFormatVersion);
 		}
 	}
 }
 
-struct structData_Description theCollectionOfDaata_v_description [] = {
-	{ U"size", longwa, Melder_offsetof (CollectionOf<structThing>*, size), sizeof (long) },
-	{ U"items", objectwa, Melder_offsetof (CollectionOf<structThing>*, at), sizeof (Daata), U"Daata", & theClassInfo_Daata, 1, 0, U"size" },
+static struct structData_Description theCollection_description [] = {
+	{ U"size", longwa, Melder_offsetof (Collection, size), sizeof (long) },
+	{ U"item", objectwa, Melder_offsetof (Collection, item), sizeof (Data), U"Data", & theClassInfo_Data, 1, 0, U"size" },
 	{ 0 }
 };
+Data_Description structCollection :: s_description = & theCollection_description [0];
+
+Thing_implement (Collection, Data, 0);
+
+void Collection_init (Collection me, ClassInfo itemClass_, long initialCapacity) {
+	my itemClass = itemClass_;
+	my _capacity = initialCapacity >= 1 ? initialCapacity : 1;
+	my size = 0;
+	my item = Melder_calloc (void *, my _capacity);
+	my item --;   // base 1
+}
+
+Collection Collection_create (ClassInfo itemClass, long initialCapacity) {
+	autoCollection me = Thing_new (Collection);
+	Collection_init (me.peek(), itemClass, initialCapacity);
+	return me.transfer();
+}
+
+void Collection_dontOwnItems (Collection me) {
+	Melder_assert (my size == 0);
+	my _dontOwnItems = true;
+}
+
+void _Collection_insertItem (Collection me, Thing data, long pos) {
+	if (my size >= my _capacity) {
+		/*
+		 * Check without change.
+		 */
+		Any *dum = (Any *) Melder_realloc (my item + 1, 2 * my _capacity * (int64) sizeof (Any));
+		/*
+		 * From here: change without error.
+		 */
+		my item = dum - 1;
+		my _capacity *= 2;
+	}
+	my size ++;
+	for (long i = my size; i > pos; i --) my item [i] = my item [i - 1];
+	my item [pos] = data;
+}
+
+void Collection_addItem (Collection me, Thing data) {
+	try {
+		Melder_assert (data != NULL);
+		long index = my v_position (data);
+		if (index != 0) {
+			_Collection_insertItem (me, data, index);
+		} else {
+			if (! my _dontOwnItems)
+				forget (data);   // could not insert; I am the owner, so I must dispose of the data
+		}
+	} catch (MelderError) {
+		Melder_throw (me, U": item not added.");
+	}
+}
+
+void Collection_removeItem (Collection me, long pos) {
+	Melder_assert (pos >= 1 && pos <= my size);
+	if (! my _dontOwnItems) forget (((Thing *) my item) [pos]);
+	for (long i = pos; i < my size; i ++) my item [i] = my item [i + 1];
+	my size --;
+}
+
+void Collection_undangleItem (Collection me, Thing item) {
+	for (long i = my size; i > 0; i --) if (my item [i] == item) {
+		for (long j = i; j < my size; j ++) my item [j] = my item [j + 1];
+		my size --;
+	}
+}
+
+Any Collection_subtractItem (Collection me, long pos) {
+	Melder_assert (pos >= 1 && pos <= my size);
+	Any result = my item [pos];
+	for (long i = pos; i < my size; i ++) my item [i] = my item [i + 1];
+	my size --;
+	return result;
+}
+
+void Collection_removeAllItems (Collection me) {
+	if (! my _dontOwnItems)
+		for (long i = 1; i <= my size; i ++)
+			forget (((Thing *) my item) [i]);
+	my size = 0;
+}
+
+void Collection_shrinkToFit (Collection me) {
+	my _capacity = my size ? my size : 1;
+	my item = (Any *) Melder_realloc (my item + 1, my _capacity * (int64) sizeof (Any)) - 1;
+}
+
+Any Collections_merge (Collection me, Collection thee) {
+	try {
+		if (my classInfo != thy classInfo)
+			Melder_throw (U"Objects are of different class.");
+		if (my _dontOwnItems != thy _dontOwnItems)
+			Melder_throw (U"Cannot mix data and references.");
+		autoCollection him = Data_copy (me);
+		for (long i = 1; i <= thy size; i ++) {
+			Thing item = (Thing) thy item [i];
+			if (my _dontOwnItems) {
+				Collection_addItem (him.peek(), item);
+			} else {
+				if (! Thing_isa (item, classData))
+					Melder_throw (U"Cannot copy item of class ", Thing_className (item), U".");
+				Collection_addItem (him.peek(), Data_copy ((Data) item));
+			}
+		}
+		return him.transfer();
+	} catch (MelderError) {
+		Melder_throw (me, U" and ", thee, U" not merged." );
+	}
+}
+
+/********** class Ordered **********/
+
+Thing_implement (Ordered, Collection, 0);
+
+void Ordered_init (Ordered me, ClassInfo itemClass, long initialMaximumLength) {
+	Collection_init (me, itemClass, initialMaximumLength);
+}
+
+Ordered Ordered_create (void) {
+	autoOrdered me = Thing_new (Ordered);
+	Ordered_init (me.peek(), NULL, 10);
+	return me.transfer();
+}
+
+void Ordered_addItemPos (Ordered me, Thing data, long position) {
+	Melder_assert (data);
+	if (position < 1 || position > my size)
+		position = my size + 1;
+	_Collection_insertItem (me, data, position);
+}
+
+/********** class Sorted **********/
+
+Thing_implement (Sorted, Collection, 0);
+
+long structSorted :: v_position (Any data) {
+	Data_CompareFunction compare = v_getCompareFunction ();
+	if (size == 0 || compare (data, item [size]) >= 0) return size + 1;
+	if (compare (data, item [1]) < 0) return 1;
+	/* Binary search. */
+	long left = 1, right = size;
+	while (left < right - 1) {
+		long mid = (left + right) / 2;
+		if (compare (data, item [mid]) >= 0) left = mid; else right = mid;
+	}
+	Melder_assert (right == left + 1);
+	return right;
+}
+
+int structSorted :: s_compare (Any data1, Any data2) {
+	(void) data1;
+	(void) data2;
+	return 0;   // in the base class, all are equal
+}
+
+void Sorted_init (Sorted me, ClassInfo itemClass, long initialCapacity) {
+	Collection_init (me, itemClass, initialCapacity);
+}
+
+void Sorted_addItem_unsorted (Sorted me, Thing data) {
+	_Collection_insertItem (me, data, my size + 1);
+}
+
+void Sorted_sort (Sorted me) {
+	NUMsort_p (my size, my item, (int (*) (const void *, const void *)) my v_getCompareFunction ());
+}
+
+/********** class SortedSet **********/
+
+long structSortedSet :: v_position (Any data) {
+	Data_CompareFunction compare = v_getCompareFunction ();
+	if (size == 0) return 1;   // empty set? then 'data' is going to be the first item
+	int where = compare (data, item [size]);   // compare with last item
+	if (where > 0) return size + 1;   // insert at end
+	if (where == 0) return 0;
+	if (compare (data, item [1]) < 0) return 1;   // compare with first item
+	long left = 1, right =size;
+	while (left < right - 1) {
+		long mid = (left + right) / 2;
+		if (compare (data, item [mid]) >= 0)
+			left = mid;
+		else
+			right = mid;
+	}
+	Melder_assert (right == left + 1);
+	if (! compare (data, item [left]) || ! compare (data, item [right]))
+		return 0;
+	return right;
+}
+
+Thing_implement (SortedSet, Sorted, 0);
+
+void SortedSet_init (SortedSet me, ClassInfo itemClass, long initialCapacity) {
+	Sorted_init (me, itemClass, initialCapacity);
+}
+
+/********** class SortedSetOfInt **********/
+
+Thing_implement (SortedSetOfInt, SortedSet, 0);
+
+int structSortedSetOfInt :: s_compare (I, thou) {
+	iam (SimpleInt); thouart (SimpleInt);
+	if (my number < thy number) return -1;
+	if (my number > thy number) return +1;
+	return 0;
+}
+
+void SortedSetOfInt_init (SortedSetOfInt me) {
+	SortedSet_init (me, classSimpleInt, 10);
+}
+
+SortedSetOfInt SortedSetOfInt_create (void) {
+	autoSortedSetOfInt me = Thing_new (SortedSetOfInt);
+	SortedSetOfInt_init (me.peek());
+	return me.transfer();
+}
+
+/********** class SortedSetOfLong **********/
+
+Thing_implement (SortedSetOfLong, SortedSet, 0);
+
+int structSortedSetOfLong :: s_compare (I, thou) {
+	iam (SimpleLong); thouart (SimpleLong);
+	if (my number < thy number) return -1;
+	if (my number > thy number) return +1;
+	return 0;
+}
+
+void SortedSetOfLong_init (SortedSetOfLong me) {
+	SortedSet_init (me, classSimpleLong, 10);
+}
+
+SortedSetOfLong SortedSetOfLong_create (void) {
+	autoSortedSetOfLong me = Thing_new (SortedSetOfLong);
+	SortedSetOfLong_init (me.peek());
+	return me.transfer();
+}
+
+/********** class SortedSetOfDouble **********/
+
+int structSortedSetOfDouble :: s_compare (I, thou) {
+	iam (SimpleDouble); thouart (SimpleDouble);
+	if (my number < thy number) return -1;
+	if (my number > thy number) return +1;
+	return 0;
+}
 
-#define _Collection_implement(klas,genericClass,itemClass,parentClass,version) \
-	static Thing _##klas##_new () { return new genericClass<struct##itemClass>; } \
-	struct structClassInfo theClassInfo_##klas = { U"" #klas, & theClassInfo_##parentClass, \
-		sizeof (genericClass<struct##itemClass>), _##klas##_new, version, 0, nullptr}; \
-	ClassInfo class##klas = & theClassInfo_##klas
+Thing_implement (SortedSetOfDouble, SortedSet, 0);
 
-_Collection_implement (Collection, CollectionOf, Thing, Daata, 0);
-_Collection_implement (Ordered, OrderedOf, Daata, Collection, 0);
-_Collection_implement (Sorted, SortedOf, Daata, Collection, 0);
-_Collection_implement (SortedSet, SortedSetOf, Daata, Sorted, 0);
+void SortedSetOfDouble_init (SortedSetOfDouble me) {
+	SortedSet_init (me, classSimpleDouble, 10);
+}
+
+SortedSetOfDouble SortedSetOfDouble_create (void) {
+	autoSortedSetOfDouble me = Thing_new (SortedSetOfDouble);
+	SortedSetOfDouble_init (me.peek());
+	return me.transfer();
+}
+
+/********** class SortedSetOfString **********/
 
-Thing_implement (StringList, Ordered, 0);
-Thing_implement (StringSet, SortedSet, 0);
+Thing_implement (SortedSetOfString, SortedSet, 0);
+
+int structSortedSetOfString :: s_compare (I, thou) {
+	iam (SimpleString); thouart (SimpleString);
+	return str32cmp (my string, thy string);
+}
+
+void SortedSetOfString_init (SortedSetOfString me) {
+	SortedSet_init (me, classSimpleString, 10);
+}
+
+SortedSetOfString SortedSetOfString_create (void) {
+	autoSortedSetOfString me = Thing_new (SortedSetOfString);
+	SortedSetOfString_init (me.peek());
+	return me.transfer();
+}
+
+long SortedSetOfString_lookUp (SortedSetOfString me, const char32 *string) {
+	SimpleString *items = (SimpleString *) my item;
+	long numberOfItems = my size;
+	long left = 1, right = numberOfItems;
+	int atStart, atEnd;
+	if (numberOfItems == 0) return 0;
+
+	atEnd = str32cmp (string, items [numberOfItems] -> string);
+	if (atEnd > 0) return 0;
+	if (atEnd == 0) return numberOfItems;
+
+	atStart = str32cmp (string, items [1] -> string);
+	if (atStart < 0) return 0;
+	if (atStart == 0) return 1;
+
+	while (left < right - 1) {
+		long mid = (left + right) / 2;
+		int here = str32cmp (string, items [mid] -> string);
+		if (here == 0) return mid;
+		if (here > 0) left = mid; else right = mid;
+	}
+	Melder_assert (right == left + 1);
+	return 0;
+}
+
+void SortedSetOfString_addString (SortedSetOfString me, const char32 *string) {
+	static SimpleString simp;
+	if (simp == NULL) {
+		simp = SimpleString_create (U"");
+		Melder_free (simp -> string);
+	}
+	simp -> string = (char32 *) string;   // reference copy
+	long index = my v_position (simp);
+	if (index == 0) return;   // OK: already there: do not add
+	autoSimpleString newSimp = SimpleString_create (string);
+	_Collection_insertItem (me, newSimp.transfer(), index);
+}
+
+/********** class Cyclic **********/
+
+Thing_implement (Cyclic, Collection, 0);
+
+int structCyclic :: s_compare (I, thou) {
+	(void) void_me;
+	(void) void_thee;
+	Melder_fatal (U"Cyclic::compare: subclass responsibility.");
+	return 0;
+}
+
+void Cyclic_cycleLeft (Cyclic me) {
+	if (my size == 0) return;   // for size == 1 no motion will take place either, but in that case the algorithm determines that automatically
+	Data help = (Data) my item [1];
+	for (long i = 1; i < my size; i ++) my item [i] = my item [i + 1];
+	my item [my size] = help;
+}
+
+void Cyclic_unicize (Cyclic me) {
+	Data_CompareFunction compare = my v_getCompareFunction ();
+	if (my size <= 1) return;
+	long lowest = 1;
+	for (long i = 1; i <= my size; i ++)
+		if (compare (my item [i], my item [lowest]) < 0) lowest = i;
+	for (long i = 1; i < lowest; i ++)
+		Cyclic_cycleLeft (me);
+}
+
+void Cyclic_init (Cyclic me, ClassInfo itemClass, long initialCapacity) {
+	Collection_init (me, itemClass, initialCapacity);
+}
 
 /* End of file Collection.cpp */
diff --git a/sys/Collection.h b/sys/Collection.h
index af0d63e..8dbafce 100644
--- a/sys/Collection.h
+++ b/sys/Collection.h
@@ -2,7 +2,7 @@
 #define _Collection_h_
 /* Collection.h
  *
- * Copyright (C) 1992-2011,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,802 +20,295 @@
  */
 
 /*
- * Collection objects contain a number of items whose class is a subclass of Thing or Daata.
+ * Collection objects contain a number of items whose class is a subclass of Data.
  */
 
 #include "Simple.h"
 
+Thing_define (Collection, Data) {
+	ClassInfo itemClass;   // the class of which all items must be members (see Thing_isa)
+	long _capacity, size;
+	bool _dontOwnItems;
+	Any *item;   // [1..size]
+
+	void v_info ()
+		override;
+	void v_destroy ()
+		override;   // destroys all the items
+	void v_copy (Any data_to)
+		override;   // copies all the items
+	bool v_equal (Any data2)
+		override;   // compares 'my item [i]' with 'thy item [i]', i = 1..size
+	bool v_canWriteAsEncoding (int outputEncoding)
+		override;
+	void v_writeText (MelderFile openFile)
+		override;
+	void v_readText (MelderReadText text, int formatVersion)
+		override;
+	void v_writeBinary (FILE *f)
+		override;
+	void v_readBinary (FILE *f, int formatVersion)
+		override;
+	static Data_Description s_description;
+	Data_Description v_description ()
+		override { return s_description; }
+
+	virtual long v_position (Any /* data */) { return size + 1; /* at end */ };
+};
+/*
+	An object of type Collection is a collection of items of any class.
+	It is the owner of its items.
+	You can access the items in the collection as item [1] through item [size].
+	There can be no NULL items.
+
+	Attributes:
+		_capacity >= size		// private; grows as you add items.
+		size			// the current number of items.
+		item [1..size]		// the items.
+*/
 
-#pragma mark - class Collection
+void Collection_init (Collection me, ClassInfo itemClass, long initialCapacity);
+Collection Collection_create (ClassInfo itemClass, long initialCapacity);
+/*
+	Function:
+		return a new empty Collection, or NULL if out of memory.
+	Preconditions:
+		initialCapacity >= 1;
+	Postconditions:
+		my _capacity == initialCapacity;
+*/
 
-/**
-	An object of type Collection is a collection of objects of any class T*
-	that is a subclass of Thing or Daata.
-	These elements ("items") are either owned by the Collection, or they are references.
-	You can access the items as `at [1]` through `at [size]`.
-	There can be no null items.
+void Collection_dontOwnItems (Collection me);
 
-	@param  size			the current number of items
-	@param  at[1..size]		the items
+/*
+	Data_copy, Data_equal, Data_writeXXX, Data_readXXX
+	try to copy, compare, write, or read all the items.
+	However, if any of the items is not of class Data,
+	these routines fail with a message and return 0.
 */
-template <typename T> struct CollectionOf;
-
-typedef CollectionOf<structDaata> _CollectionOfDaata;
-extern void _CollectionOfDaata_v_copy (_CollectionOfDaata* me, _CollectionOfDaata* thee);
-extern bool _CollectionOfDaata_v_equal (_CollectionOfDaata* me, _CollectionOfDaata* thee);
-extern bool _CollectionOfDaata_v_canWriteAsEncoding (_CollectionOfDaata* me, int outputEncoding);
-extern void _CollectionOfDaata_v_writeText (_CollectionOfDaata* me, MelderFile openFile);
-extern void _CollectionOfDaata_v_readText (_CollectionOfDaata* me, MelderReadText text, int formatVersion);
-extern void _CollectionOfDaata_v_writeBinary (_CollectionOfDaata* me, FILE *f);
-extern void _CollectionOfDaata_v_readBinary (_CollectionOfDaata* me, FILE *f, int formatVersion);
-extern struct structData_Description theCollectionOfDaata_v_description [3];
-
-template <typename T   /*Melder_ENABLE_IF_ISA (T, structThing)*/>
-struct ArrayOf {
-	T** _elements { nullptr };
-	T*& operator[] (long i) const {
-		return our _elements [i];
-	}
-};
 
-template <typename T   /*Melder_ENABLE_IF_ISA (T, structThing)*/>
-struct CollectionOf : structDaata {
-	ArrayOf <T> at;
-	long size { 0 };
-	long _capacity { 0 };
-	bool _ownItems { true };
-	bool _ownershipInitialized { false };
-
-	CollectionOf () {
-		extern ClassInfo classCollection;
-		our classInfo = classCollection;
-		our name = nullptr;
-	}
-	virtual ~ CollectionOf () {
-		/*
-			We cannot simply do
-				//our v_destroy ();
-			because C++ will implicitly call the destructor for structDaata,
-			whereas structCollection::v_destroy explicitly calls structDaata::v_destroy;
-			calling v_destroy here would therefore free structThing::name twice,
-			which may not crash Praat (assuming that `name` is nulled the first time)
-			but which is not how destruction should be organized.
-		*/
-		if (our at._elements) {
-			if (our _ownItems) {
-				for (long i = 1; i <= our size; i ++) {
-					_Thing_forget (our at [i]);
-				}
-			}
-			our at._elements ++;   // convert from base-1 to base-0
-			Melder_free (our at._elements);
-		}
-	}
-	//explicit operator bool () const {
-	//	return !! our item;
-	//}
-	CollectionOf<T>& operator= (const CollectionOf<T>&) = delete;   // disable copy assignment from an l-value of class T*
-	template <class Y> CollectionOf<T>& operator= (const CollectionOf<Y>&) = delete;   // disable copy assignment from an l-value of a descendant class of T*
-	CollectionOf<T> (CollectionOf<T>&& other) noexcept :
-		at (other. at),
-		size (other. size),
-		_capacity (other. _capacity),
-		_ownItems (other. _ownItems),
-		_ownershipInitialized (other. _ownershipInitialized)
-	{
-		other. at._elements = nullptr;
-		other. size = 0;
-		other. _capacity = 0;
-		other. _ownItems = false;
-		other. _ownershipInitialized = false;
-	}
-	template <class Y> CollectionOf<T> (CollectionOf<Y>&& other) noexcept :
-		at (other. at),
-		size (other. size),
-		_capacity (other. _capacity),
-		_ownItems (other. _ownItems),
-		_ownershipInitialized (other. _ownershipInitialized)
-	{
-		other. at._elements = nullptr;
-		other. size = 0;
-		other. _capacity = 0;
-		other. _ownItems = false;
-		other. _ownershipInitialized = false;
-	}
-	CollectionOf<T>& operator= (CollectionOf<T>&& other) noexcept {
-		if (other. at._elements != our at._elements) {
-			if (our at._elements) {
-				if (our _ownItems) {
-					for (long i = 1; i <= our size; i ++) {
-						_Thing_forget (our at [i]);
-					}
-				}
-				our at._elements ++;   // convert from base-1 to base-0
-				Melder_free (our at._elements);
-			}
-		}
-		our at = other. at;
-		our size = other. size;
-		our _capacity = other. _capacity;
-		our _ownItems = other. _ownItems;
-		our _ownershipInitialized = other. _ownershipInitialized;
-		other. at._elements = nullptr;
-		other. size = 0;
-		other. _capacity = 0;
-		other. _ownItems = false;
-		other. _ownershipInitialized = false;
-		return *this;
-	}
-	template <class Y> CollectionOf<T>& operator= (CollectionOf<Y>&& other) noexcept {
-		if (other. at_elements != our at_elements) {
-			if (our at._elements) {
-				if (our _ownItems) {
-					for (long i = 1; i <= our size; i ++) {
-						_Thing_forget (our at [i]);
-					}
-				}
-				our at._elements ++;   // convert from base-1 to base-0
-				Melder_free (our at._elements);
-			}
-		}
-		our at = other. at;
-		our size = other. size;
-		our _capacity = other. _capacity;
-		our _ownItems = other. _ownItems;
-		our _ownershipInitialized = other. _ownershipInitialized;
-		other. at._elements = nullptr;
-		other. size = 0;
-		other. _capacity = 0;
-		other. _ownItems = false;
-		other. _ownershipInitialized = false;
-		return *this;
-	}
-	CollectionOf<T>&& move () noexcept { return static_cast <CollectionOf<T>&&> (*this); }
-
-	void _initializeOwnership (bool ownItems) {
-		if (our _ownershipInitialized) {
-			Melder_assert (our _ownItems == ownItems);
-		} else {
-			our _ownItems = ownItems;
-			our _ownershipInitialized = true;
-		}
-	}
-	void _grow (long newCapacity) {
-		if (newCapacity <= our _capacity) return;
-		T** oldItem_base0 = ( our at._elements ? our at._elements + 1 : nullptr );   // convert from base-1 to base-0
-		T** newItem_base0 = (T**) Melder_realloc (oldItem_base0, newCapacity * (int64) sizeof (T*));
-		our at._elements = newItem_base0 - 1;   // convert from base-0 to base-1
-		our _capacity = newCapacity;
-	}
-	void _makeRoomForOneMoreItem (long pos) {
-		if (our size >= our _capacity) {
-			long newCapacity = 2 * our _capacity + 30;   // enough room to guarantee space for one more item, if _capacity >= 0
-			T** oldItem_base0 = ( our at._elements ? our at._elements + 1 : nullptr );   // convert from base-1 to base-0
-			T** newItem_base0 = (T**) Melder_realloc (oldItem_base0, newCapacity * (int64) sizeof (T*));
-			our at._elements = newItem_base0 - 1;   // convert from base-0 to base-1
-			our _capacity = newCapacity;
-		}
-		our size ++;
-		for (long i = our size; i > pos; i --) our at [i] = our at [i - 1];
-	}
-	T* _insertItem_move (_Thing_auto <T> data, long pos) {
-		our _initializeOwnership (true);
-		our _makeRoomForOneMoreItem (pos);
-		return our at [pos] = data.releaseToAmbiguousOwner();
-	}
-	void _insertItem_ref (T* data, long pos) {
-		our _initializeOwnership (false);
-		our _makeRoomForOneMoreItem (pos);
-		our at [pos] = data;
-	}
-
-	/**
-		Add `thing` to the collection.
-		@pre
-			!! thing;
-		@post
-			my size >= my old size
-
-		You don't transfer ownership of `thing` to the Collection.
-
-		You cannot call both addItem_move() and addItem_ref() on the same Collection.
-	*/
-	void addItem_ref (T* thing) {
-		Melder_assert (thing);
-		long index = our _v_position (thing);
-		if (index != 0) {
-			our _insertItem_ref (thing, index);
-		} else {
-			our _initializeOwnership (false);
-		}
-	}
-
-	/**
-		Add 'thing' to the collection.
-		@pre
-			!! thing;
-		@post
-			my size >= my old size
-
-		You transfer ownership of 'thing' to the Collection.
-
-		You cannot call both
-		Collection_addItem_move() and Collection_addItem_ref() on the same Collection.
-		For a SortedSet, this may mean that the Collection immediately disposes of 'item',
-		if that item already occurred in the Collection.
-	*/
-	T* addItem_move (_Thing_auto<T> thing) {
-		T* thingRef = thing.get();
-		long index = our _v_position (thingRef);
-		if (index != 0) {
-			return our _insertItem_move (thing.move(), index);
-		} else {
-			our _initializeOwnership (true);
-			thing.reset();   // could not insert; I am the owner, so I must dispose of the data
-			return nullptr;
-		}
-	}
-
-	/**
-		Remove the item from the collection, without destroying it.
-		@post
-			item not found || my size == my old size - 1;
-
-		Usage:
-			this is the way in which an item can detach itself from a list;
-			often used just before the item is destroyed, hence the name of this procedure.
-	*/
-	void undangleItem (Thing thing) {
-		for (long i = our size; i > 0; i --) {
-			if (our at [i] == thing) {
-				for (long j = i; j < our size; j ++) {
-					our at [j] = our at [j + 1];
-				}
-			}
-			our size --;
-		}
-	}
-
-	/**
-		For subtractItem_move(): FIXME
-		Remove the item at 'position' from the collection and transfer ownership to the caller.
-		Return value:
-			the subtracted item; the caller is responsible for eventually removing it.
-		Preconditions:
-			1 <= position <= my size;
-		Postconditions:
-			my size == my old size - 1;
-			my _capacity not changed;
-	*/
-	_Thing_auto<T> subtractItem_move (long pos) {
-		Melder_assert (pos >= 1 && pos <= our size);
-		Melder_assert (our _ownItems);
-		_Thing_auto<T> result (our at [pos]);
-		for (long i = pos; i < our size; i ++) our at [i] = our at [i + 1];
-		our size --;
-		return result;
-	}
-	T* subtractItem_ref (long pos) {
-		Melder_assert (pos >= 1 && pos <= our size);
-		Melder_assert (! our _ownItems);
-		T* result = our at [pos];
-		for (long i = pos; i < our size; i ++) our at [i] = our at [i + 1];
-		our size --;
-		return result;
-	}
-	void replaceItem_ref (T* data, long pos) {
-		Melder_assert (pos >= 1 && pos <= our size);
-		Melder_assert (! our _ownItems);
-		our at [pos] = data;
-	}
-	T* replaceItem_move (_Thing_auto <T> data, long pos) {
-		Melder_assert (pos >= 1 && pos <= our size);
-		Melder_assert (our _ownItems);
-		_Thing_forget (our at [pos]);
-		return our at [pos] = data.releaseToAmbiguousOwner();
-	}
-
-	/**
-		Remove the item at 'position' from the collection and from memory.
-		@pre
-			1 <= position <= my size;
-		@post
-			my size == my old size - 1;
-			my _capacity not changed;
-	*/
-	void removeItem (long pos) {
-		Melder_assert (pos >= 1 && pos <= our size);
-		if (our _ownItems) _Thing_forget (our at [pos]);
-		for (long i = pos; i < our size; i ++) our at [i] = our at [i + 1];
-		our size --;
-	}
-
-	/**
-		Remove all items from the collection and from memory.
-		@post
-			my size == 0;
-			my _capacity not changed;
-	*/
-	void removeAllItems () {
-		if (our _ownItems) {
-			for (long i = 1; i <= our size; i ++) {
-				_Thing_forget (our at [i]);
-			}
-		}
-		our size = 0;
-	}
-
-	/**
-		Release as much memory as possible without affecting the items.
-		@post
-			my _capacity == max (my size, 1);
-	*/
-	void shrinkToFit () {
-		our _capacity = ( our size > 0 ? our size : 1 );
-		our at ++;
-		our at = (T**) Melder_realloc (our at, our _capacity * (int64) sizeof (Thing));
-		our at --;
-	}
-	void sort (int (*compare) (T*, T*)) {
-		long l, r, j, i;
-		T* k;
-		T** a = our at._elements;
-		long n = our size;
-		if (n < 2) return;
-		l = (n >> 1) + 1;
-		r = n;
-		for (;;) {
-			if (l > 1) {
-				l --;
-				k = a [l];
-			} else { 
-				k = a [r];
-				a [r] = a [1];
-				r --;
-				if (r == 1) { a [1] = k; return; }
-			}
-			j = l;
-			for (;;) {
-				i = j;
-				j = j << 1;
-				if (j > r) break;
-				if (j < r && compare (a [j], a [j + 1]) < 0) j ++;
-				if (compare (k, a [j]) >= 0) break;
-				a [i] = a [j];
-			}
-			a [i] = k;
-		}
-	}
-	/*
-		Function:
-			merge two Collections into a new one. The class is the same as the type of `me`.
-		Postconditions:
-			result->size >= my size;
-			result->size >= thy size;
-	*/
-	void merge (CollectionOf<T>* thee) {
-		try {
-			if (our classInfo != thy classInfo)
-				Melder_throw (U"The two collections are of different classes.");
-			if (our _ownershipInitialized && thy _ownershipInitialized && our _ownItems != thy _ownItems)
-				Melder_throw (U"Cannot mix data and references.");
-			if (! our _ownershipInitialized && ! thy _ownershipInitialized) {
-				Melder_assert (our size == 0 && thy size == 0);
-				return;
-			}
-			our _ownItems = ( our _ownershipInitialized ? our _ownItems : thy _ownItems );
-			for (long i = 1; i <= thy size; i ++) {
-				T* item = thy at [i];
-				if (our _ownItems) {
-					if (! Thing_isa (item, classDaata))
-						Melder_throw (U"Cannot copy item of class ", Thing_className (item), U".");
-					our addItem_move (Data_copy (item));
-				} else {
-					our addItem_ref (item);
-				}
-			}
-		} catch (MelderError) {
-			Melder_throw (this, U" and ", thee, U" not merged." );
-		}
-	}
-
-	/*
-		CollectionOf overrides all virtual methods of Daata.
-		They are defined in Collection.cpp (if not in this header file).
-		These methods are needed only when a Collection object is used
-		as an independent pointer-to-object created with XXX_create ().
-	*/
-
-	void v_info () override {
-		MelderInfo_writeLine (our size, U" items");
-	}
-
-	void v_destroy () noexcept override {
-		/*
-			The items are destroyed automatically be the destructor,
-			which is called by delete, which is called by forget().
-			So we only have to destroy the members of Daata,
-			which are not automatic.
-		*/
-		structDaata::v_destroy ();
-	}
-
-
-	void v_copy (Daata data_to) override {   // copies all the items
-		_CollectionOfDaata_v_copy (reinterpret_cast<_CollectionOfDaata*> (this), reinterpret_cast<_CollectionOfDaata*> (data_to));
-	}
-	bool v_equal (Daata data2) override {   // compares 'my item [i]' with 'thy item [i]', i = 1..size
-		return _CollectionOfDaata_v_equal (reinterpret_cast<_CollectionOfDaata*> (this), reinterpret_cast<_CollectionOfDaata*> (data2));
-	}
-	bool v_canWriteAsEncoding (int outputEncoding) override {
-		return _CollectionOfDaata_v_canWriteAsEncoding (reinterpret_cast<_CollectionOfDaata*> (this), outputEncoding);
-	}
-	void v_writeText (MelderFile openFile) override {
-		_CollectionOfDaata_v_writeText (reinterpret_cast<_CollectionOfDaata*> (this), openFile);
-	}
-	void v_readText (MelderReadText text, int formatVersion) override {
-		_CollectionOfDaata_v_readText (reinterpret_cast<_CollectionOfDaata*> (this), text, formatVersion);
-	}
-	void v_writeBinary (FILE *f) override {
-		_CollectionOfDaata_v_writeBinary (reinterpret_cast<_CollectionOfDaata*> (this), f);
-	}
-	void v_readBinary (FILE *f, int formatVersion) override {
-		_CollectionOfDaata_v_readBinary (reinterpret_cast<_CollectionOfDaata*> (this), f, formatVersion);
-	}
-	Data_Description v_description () override {
-		return & theCollectionOfDaata_v_description [0];
-	}
-
-	/*
-		CollectionOf<> introduces one virtual method of its own (not counting the destructor).
-	*/
-	virtual long _v_position (T* /* data */) {
-		return our size + 1;   // at end
-	};
-};
+void Collection_addItem (Collection me, Thing item);
+/*
+	Function:
+		add the 'item' to the collection. Return 0 if out of memory, else 1.
+	Preconditions:
+ 		item != NULL;
+	Postconditions if result == 1:
+		my size >= my old size + 1;
+		if (my size > my old _capacity) my _capacity == 2 * my old _capacity;
+	When calling this function, you transfer ownership of 'item' to the Collection, unless dontOwnItems is on.
+	For a SortedSet, this may mean that the Collection immediately disposes of 'item',
+	if that item already occurred in the Collection.
+*/
 
+void Collection_removeItem (Collection me, long position);
+/*
+	Function:
+		remove the item at 'position' from the collection and from memory.
+	Preconditions:
+		1 <= position <= my size;
+	Postconditions:
+		my size == my old size - 1;
+		my _capacity not changed;
+*/
 
-#define _Collection_declare(klas,genericClass,itemClass) \
-	typedef genericClass<struct##itemClass> struct##klas; \
-	typedef genericClass<struct##itemClass> *klas; \
-	typedef _Thing_auto <genericClass<struct##itemClass>> auto##klas; \
-	extern struct structClassInfo theClassInfo_##klas; \
-	extern ClassInfo class##klas; \
-	static inline auto##klas klas##_create () { \
-		auto##klas me (new genericClass<struct##itemClass>); \
-		theTotalNumberOfThings += 1; \
-		return me; \
-	}
+void Collection_undangleItem (Collection me, Thing item);
+/*
+	Function:
+		remove the item from the collection, without destroying it.
+	Postconditions:
+		item not found || my size == my old size - 1;
+	Usage:
+		this is the way in which an item can detach itself from a list;
+		often used just before the item is destroyed, hence the name of this procedure.
+*/
+
+Any Collection_subtractItem (Collection me, long position);
+/*
+	Function:
+		remove the item at 'position' from the collection and transfer ownership to the caller.
+	Return value:
+		the subtracted item; the caller is responsible for eventually removing it.
+	Preconditions:
+		1 <= position <= my size;
+	Postconditions:
+		my size == my old size - 1;
+		my _capacity not changed;
+*/
 
-_Collection_declare (Collection, CollectionOf, Thing);
+void Collection_removeAllItems (Collection me);
+/*
+	Function:
+		remove all items from the collection and from memory.
+	Postconditions:
+		my size == 0;
+		my _capacity not changed;
+*/
 
+void Collection_shrinkToFit (Collection me);
+/*
+	Function:
+		release as much memory as possible without affecting the items.
+	Postconditions:
+		my _capacity == max (my size, 1);
+*/
 
-#pragma mark - class Ordered
+Any Collections_merge (Collection me, Collection thee);
 /*
-	An Ordered is a Collection in which the order of the elements is crucial.
-	It could also be called a List.
+	Function:
+		merge two Collections into a new one.
+	Postconditions:
+		result -> size >= my size;
+		result -> size >= thy size;
 */
 
-template <typename T>
-struct OrderedOf : CollectionOf <T   /*Melder_ENABLE_IF_ISA (T, structDaata)*/> {
-
-	OrderedOf () {
-		extern ClassInfo classOrdered;
-		our classInfo = classOrdered;
-	}
-
-	/**
-		Function:
-			insert an item at 'position'.
-			If 'position' is less than 1 or greater than the current 'size',
-			insert the item at the end.
-	*/
-	T* addItemAtPosition_move (_Thing_auto <T> data, long position) {
-		Melder_assert (data);
-		if (position < 1 || position > our size)
-			position = our size + 1;
-		return our _insertItem_move (data.move(), position);
-	}
-
-	OrderedOf<T>&& move () noexcept { return static_cast <OrderedOf<T>&&> (*this); }
+/* For the inheritors. */
+
+void _Collection_insertItem (Collection me, Thing item, long position);
+
+/* Methods:
+
+	static long position (I, Any data, long hint);
+		Question asked by Collection_addItem: return a position for the data.
+	Collection::position always returns my size + 1 (add item at the end).
+
+*/
+
+/********** class Ordered **********/
+
+Thing_define (Ordered, Collection) {
 };
 
-_Collection_declare (Ordered, OrderedOf, Daata);
+Ordered Ordered_create (void);
+void Ordered_init (Ordered me, ClassInfo itemClass, long initialCapacity);
+
+/* Behaviour:
+	Collection_addItem (Ordered) inserts an item at the end.
+*/
 
-#pragma mark - class Sorted
+void Ordered_addItemPos (Ordered me, Thing data, long position);
 /*
-	A Sorted is a sorted Collection.
-	Behaviour:
-		Sorted::addItem inserts an item at such a position that the collection stays sorted.
-		Sorted::merge yields a Sorted.
+	Function:
+		insert an item at 'position'.
+		If 'position' is less than 1 or greater than the current 'size',
+		insert the item at the end.
 */
 
-template <typename T   /*Melder_ENABLE_IF_ISA (T, structDaata)*/>
-struct SortedOf : CollectionOf <T> {
-	SortedOf () {
-		extern ClassInfo classSorted;
-		our classInfo = classSorted;
-	}
-	SortedOf<T>&& move () noexcept { return static_cast <SortedOf<T>&&> (*this); }
-
-	/***** Two routines for optimization. ******/
-	/* If you want to add a large group of items,
-		it is best to call addItem_unsorted () repeatedly,
-		and finish with Sorted::sort(), which uses the fast 'heapsort' algorithm,
-		and, when appropriate, also SortedSet::unicize(), which has linear complexity.
-		Calling addItem_move () repeatedly would be slower,
-		because on average half the collection is moved in memory
-		with every insertion.
-	*/
-	/*
-		Function:
-			add an item to the collection, quickly at the end.
-		Warning:
-			this leaves the collection unsorted; follow by Sorted::sort ().
-	*/
-	void addItem_unsorted_move (_Thing_auto <T> data) {
-		our _insertItem_move (data.move(), our size + 1);
-	}
-	/* Call this after a number of calls to Sorted_addItem_unsorted (). */
-	/* The procedure used is 'heapsort'. */
-	void sort () {
-		our CollectionOf<T>::sort (our v_getCompareHook ());
-	}
-
-	long _v_position (T* data) override {
-		typename SortedOf<T>::CompareHook compare = our v_getCompareHook ();
-		if (our size == 0 || compare (data, our at [our size]) >= 0) return our size + 1;
-		if (compare (data, our at [1]) < 0) return 1;
-		/* Binary search. */
-		long left = 1, right = our size;
-		while (left < right - 1) {
-			long mid = (left + right) / 2;
-			if (compare (data, our at [mid]) >= 0) left = mid; else right = mid;
-		}
-		Melder_assert (right == left + 1);
-		return right;
-	}
-
-	static int s_compareHook (T* /* data1 */, T* /* data2 */) noexcept { return 0; }
-	typedef int (*CompareHook) (T*, T*);
-	virtual CompareHook v_getCompareHook () { return s_compareHook; }
+/********** class Sorted **********/
+/* A Sorted is a sorted Collection. */
+
+Thing_define (Sorted, Collection) {
+	long v_position (Any data)
+		override;
+
+	static int s_compare (Any data1, Any data2);
+	virtual Data_CompareFunction v_getCompareFunction () { return s_compare; }
 		// should compare the keys of two items; returns negative if me < thee, 0 if me == thee, and positive if me > thee
 };
 
-_Collection_declare (Sorted, SortedOf, Daata);
+void Sorted_init (Sorted me, ClassInfo itemClass, long initialCapacity);
+
+/* Behaviour:
+	Collection_addItem (Sorted) inserts an item at such a position that the collection stays sorted.
+	Collections_merge (Sorted) yields a Sorted.
+*/
 
+/***** Two routines for optimization. ******/
+/* If you want to add a large group of items,
+	it is best to call Sorted_addItem_unsorted () repeatedly,
+	and finish with Sorted_sort (); this uses the fast 'heapsort' algorithm.
+	Calling Collection_addItem () repeatedly would be slower,
+	because on the average half the collection is moved in memory
+	with every insertion.
+*/
 
-#pragma mark - class SortedSet
+void Sorted_addItem_unsorted (Sorted me, Thing data);
 /*
-	In a SortedSet, every item must be unique (by key).
+	Function:
+		add an item to the collection, quickly at the end.
+	Warning:
+		this leaves the collection unsorted; follow by Sorted_sort ().
 */
+void Sorted_sort (Sorted me);
+/* Call this after a number of calls to Sorted_addItem_unsorted (). */
+/* The procedure used is 'heapsort'. */
 
-template <typename T   /*Melder_ENABLE_IF_ISA (T, structDaata)*/>
-struct SortedSetOf : SortedOf <T> {
-
-	SortedSetOf () {
-		extern ClassInfo classSortedSet;
-		our classInfo = classSortedSet;
-	}
-
-	SortedSetOf<T>&& move () noexcept { return static_cast <SortedSetOf<T>&&> (*this); }
-
-	/**
-		@return
-			0 (refusal) if the key of `data` already occurs
-	*/
-	long _v_position (T* data) override {
-		typename SortedOf<T>::CompareHook compare = our v_getCompareHook ();
-		if (our size == 0) return 1;   // empty set? then 'data' is going to be the first item
-		int where = compare (data, our at [our size]);   // compare with last item
-		if (where > 0) return our size + 1;   // insert at end
-		if (where == 0) return 0;
-		if (compare (data, our at [1]) < 0) return 1;   // compare with first item
-		long left = 1, right = our size;
-		while (left < right - 1) {
-			long mid = (left + right) / 2;
-			if (compare (data, our at [mid]) >= 0)
-				left = mid;
-			else
-				right = mid;
-		}
-		Melder_assert (right == left + 1);
-		if (! compare (data, our at [left]) || ! compare (data, our at [right]))
-			return 0;
-		return right;
-	}
-
-	bool hasItem (T* item) {
-		return our _v_position (item) == 0;
-	}
-
-	/**
-		See the comments at Sorted::sort().
-		@pre Must have been sorted beforehand.
-		@post All elements are different (by key).
-	*/
-	void unicize () {
-		typename SortedOf<T>::CompareHook compare = our v_getCompareHook ();
-		long n = 0, ifrom = 1;
-		for (long i = 1; i <= our size; i ++) {
-			if (i == our size || compare (our at [i], our at [i + 1]))
-			{
-				/*
-				 * Detected a change.
-				 */
-				n ++;
-				long ito = i;
-				/*
-				 * Move item 'ifrom' to 'n'.
-				 */
-				if (ifrom != n) {
-					if (our _ownItems) {
-						_Thing_forget (our at [n]);
-					}
-					our at [n] = our at [ifrom];   // surface copy
-					our at [ifrom] = nullptr;   // undangle
-				}
-				/*
-				 * Purge items from 'ifrom'+1 to 'ito'.
-				 */
-				for (long j = ifrom + 1; j <= ito; j ++) {
-					_Thing_forget (our at [j]);
-				}
-				ifrom = ito + 1;
-			}
-		}
-		our size = n;
-	}
+/********** class SortedSet **********/
 
+Thing_define (SortedSet, Sorted) {   // every item must be unique (by key)
+	virtual long v_position (Any data);   // returns 0 (refusal) if the key of 'data' already occurs
 };
 
+void SortedSet_init (SortedSet me, ClassInfo itemClass, long initialCapacity);
+
+inline static bool SortedSet_hasItem (SortedSet me, Any a_item) {
+	return my v_position (a_item) == 0;
+}
+
 /* Behaviour:
 	Collection_addItem (SortedSet) refuses to insert an item if this item already occurs.
 		Equality is there when the compare routine returns 0.
 	Collections_merge (SortedSet) yields a SortedSet that is the union of the two sources.
 */
 
-_Collection_declare (SortedSet, SortedOf, Daata);
-
+/********** class SortedSetOfInt **********/
 
-#pragma mark - class SortedSetOfInt
-
-template <typename T   Melder_ENABLE_IF_ISA (T, structSimpleInt)>
-struct SortedSetOfIntOf : SortedSetOf <T> {
-	SortedSetOfIntOf () {
-	}
-	SortedSetOfIntOf<T>&& move () noexcept { return static_cast <SortedSetOfIntOf<T>&&> (*this); }
-	static int s_compareHook (SimpleInt me, SimpleInt thee) noexcept {
-		if (my number < thy number) return -1;
-		if (my number > thy number) return +1;
-		return 0;
-	}
-	typename SortedOf<T>::CompareHook v_getCompareHook ()
-		override { return (typename SortedOf<T>::CompareHook) our s_compareHook; }
+Thing_define (SortedSetOfInt, SortedSet) {
+	static int s_compare (Any data1, Any data2);
+	Data_CompareFunction v_getCompareFunction ()
+		override { return s_compare; }
 };
 
+void SortedSetOfInt_init (SortedSetOfInt me);
+SortedSetOfInt SortedSetOfInt_create (void);
 
-#pragma mark - class SortedSetOfLong
-
-template <typename T   Melder_ENABLE_IF_ISA (T, structSimpleLong)>
-struct SortedSetOfLongOf : SortedSetOf <T> {
-	SortedSetOfLongOf () {
-	}
-	SortedSetOfLongOf<T>&& move () noexcept { return static_cast <SortedSetOfLongOf<T>&&> (*this); }
-	static int s_compareHook (SimpleLong me, SimpleLong thee) noexcept {
-		if (my number < thy number) return -1;
-		if (my number > thy number) return +1;
-		return 0;
-	}
-	typename SortedOf<T>::CompareHook v_getCompareHook ()
-		override { return (typename SortedOf<T>::CompareHook) our s_compareHook; }
-};
-
+/********** class SortedSetOfLong **********/
 
-#pragma mark - class SortedSetOfDouble
-
-template <typename T   /*Melder_ENABLE_IF_ISA (T, structSimpleDouble)*/>
-struct SortedSetOfDoubleOf : SortedSetOf <T> {
-	SortedSetOfDoubleOf () {
-	}
-	SortedSetOfDoubleOf<T>&& move () noexcept { return static_cast <SortedSetOfDoubleOf<T>&&> (*this); }
-	static int s_compareHook (SimpleDouble me, SimpleDouble thee) noexcept {
-		if (my number < thy number) return -1;
-		if (my number > thy number) return +1;
-		return 0;
-	}
-	typename SortedOf<T>::CompareHook v_getCompareHook ()
-		override { return (typename SortedOf<T>::CompareHook) our s_compareHook; }
+Thing_define (SortedSetOfLong, SortedSet) {
+	static int s_compare (Any data1, Any data2);
+	Data_CompareFunction v_getCompareFunction ()
+		override { return s_compare; }
 };
 
+void SortedSetOfLong_init (SortedSetOfLong me);
+SortedSetOfLong SortedSetOfLong_create (void);
 
-#pragma mark - class SortedSetOfString
-
-template <typename T   Melder_ENABLE_IF_ISA (T, structSimpleString)>
-struct SortedSetOfStringOf : SortedSetOf <T> {
-	SortedSetOfStringOf () {
-	}
-	SortedSetOfStringOf<T>&& move () noexcept { return static_cast <SortedSetOfStringOf<T>&&> (*this); }
-	static int s_compareHook (SimpleString me, SimpleString thee) noexcept {
-		return str32cmp (my string, thy string);
-	}
-	typename SortedOf<T>::CompareHook v_getCompareHook ()
-		override { return (typename SortedOf<T>::CompareHook) our s_compareHook; }
-
-	long lookUp (const char32 *string) {
-		long numberOfItems = our size;
-		long left = 1, right = numberOfItems;
-		int atStart, atEnd;
-		if (numberOfItems == 0) return 0;
-
-		atEnd = str32cmp (string, our at [numberOfItems] -> string);
-		if (atEnd > 0) return 0;
-		if (atEnd == 0) return numberOfItems;
-
-		atStart = str32cmp (string, our at [1] -> string);
-		if (atStart < 0) return 0;
-		if (atStart == 0) return 1;
-
-		while (left < right - 1) {
-			long mid = (left + right) / 2;
-			int here = str32cmp (string, our at [mid] -> string);
-			if (here == 0) return mid;
-			if (here > 0) left = mid; else right = mid;
-		}
-		Melder_assert (right == left + 1);
-		return 0;
-	}
-
-	/**
-		Add a SimpleString to the set.
-
-		@note one can create a class that specializes SortedSetOfStringOf
-		with an element class <i>derived</i> from SimpleString.
-		Trying to call @c addString_copy() for an object of that class
-		would lead to a compile-time type mismatch error,
-		because a SimpleString cannot be inserted where a derived object is expected.
-		This is correct behaviour, because a SimpleString object has no place
-		in a homogeneous set of derived-class objects.
-
-		@param string   a C-string
-	*/
-	void addString_copy (const char32 *string) {
-		static autoSimpleString simp;
-		if (! simp) {
-			simp = SimpleString_create (U"");
-			Melder_free (simp -> string);
-		}
-		simp -> string = (char32 *) string;   // reference copy
-		long index = our _v_position (simp.get());
-		simp -> string = nullptr;   // otherwise Praat will crash at shutdown
-		if (index == 0) return;   // OK: already there: do not add
-		autoSimpleString newSimp = SimpleString_create (string);
-		our _insertItem_move (newSimp.move(), index);
-	}
-};
-
+/********** class SortedSetOfDouble **********/
 
-#pragma mark - Collections of specific types
+Thing_define (SortedSetOfDouble, SortedSet) {
+	static int s_compare (Any data1, Any data2);
+	Data_CompareFunction v_getCompareFunction ()
+		override { return s_compare; }
+};
 
-#define Collection_define(klas,genericClass,itemClass) \
-	Thing_declare (klas); \
-	static inline auto##klas klas##_create () { return Thing_new (klas); } \
-	struct struct##klas : genericClass<struct##itemClass>
+void SortedSetOfDouble_init (SortedSetOfDouble me);
+SortedSetOfDouble SortedSetOfDouble_create (void);
 
-#pragma mark class DaataList
+/********** class SortedSetOfString **********/
 
-Collection_define (DaataList, OrderedOf, Daata) {
+Thing_define (SortedSetOfString, SortedSet) {
+	static int s_compare (Any data1, Any data2);
+	Data_CompareFunction v_getCompareFunction ()
+		override { return s_compare; }
 };
 
-#pragma mark class StringList
+void SortedSetOfString_init (SortedSetOfString me);
+SortedSetOfString SortedSetOfString_create (void);
+void SortedSetOfString_addString (SortedSetOfString me, const char32 *string);
+long SortedSetOfString_lookUp (SortedSetOfString me, const char32 *string);
 
-Collection_define (StringList, OrderedOf, SimpleString) {
+/********** class Cyclic **********/
+
+Thing_define (Cyclic, Collection) {   // the cyclic list (a, b, c, d) equals (b, c, d, a) but not (d, c, a, b)
+	static int s_compare (Any data1, Any data2);
+	virtual Data_CompareFunction v_getCompareFunction () { return s_compare; }
 };
 
-#pragma mark class StringSet
+void Cyclic_init (Cyclic me, ClassInfo itemClass, long initialCapacity);
+
+void Cyclic_cycleLeft (Cyclic me);
+void Cyclic_unicize (Cyclic me);
 
-Collection_define (StringSet, SortedSetOfStringOf, SimpleString) {
-};
 
 /* End of file Collection.h */
 #endif
diff --git a/sys/Data.cpp b/sys/Data.cpp
index 1568579..0b98d7d 100644
--- a/sys/Data.cpp
+++ b/sys/Data.cpp
@@ -1,6 +1,6 @@
 /* Data.cpp
  *
- * Copyright (C) 1992-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,68 +19,72 @@
 
 #include "Collection.h"
 
-Thing_implement (Daata, Thing, 0);
+Thing_implement (Data, Thing, 0);
 
-structMelderDir Data_directoryBeingRead { { 0 } };
+structMelderDir Data_directoryBeingRead = { { 0 } };
 
-void structDaata :: v_copy (Daata /* thee */) {
+void structData :: v_copy (thou) {
+	thouart (Data);
+	(void) thee;
 }
 
-bool structDaata :: v_equal (Daata /* thee */) {
+bool structData :: v_equal (thou) {
+	thouart (Data);
+	(void) thee;
 	return true;
 }   // names of "identical" objects are allowed to be different
 
-bool structDaata :: v_canWriteAsEncoding (int /* encoding */) {
+bool structData :: v_canWriteAsEncoding (int /*encoding*/) {
 	return true;
 }
 
-void structDaata :: v_writeText (MelderFile /* openFile */) {
+void structData :: v_writeText (MelderFile /*openFile*/) {
 }
 
-void structDaata :: v_readText (MelderReadText, int /* formatVersion */) {
+void structData :: v_readText (MelderReadText, int /*formatVersion*/) {
 }
 
-void structDaata :: v_writeBinary (FILE *) {
+void structData :: v_writeBinary (FILE *) {
 }
 
-void structDaata :: v_readBinary (FILE *, int /*formatVersion*/) {
+void structData :: v_readBinary (FILE *, int /*formatVersion*/) {
 }
 
-autoDaata _Data_copy (Daata me) {
+Data _Data_copy (Data me) {
 	try {
-		if (! me) return autoDaata();
-		autoDaata thee = Thing_newFromClass (my classInfo).static_cast_move <structDaata> ();
-		my v_copy (thee.get());
-		Thing_setName (thee.get(), my name);
-		return thee;
+		if (me == NULL) return NULL;
+		autoData thee = static_cast <Data> (Thing_newFromClass (my classInfo));
+		my v_copy (thee.peek());
+		Thing_setName (thee.peek(), my name);
+		return thee.transfer();
 	} catch (MelderError) {
 		Melder_throw (me, U": not copied.");
 	}
 }
 
-bool Data_equal (Daata me, Daata thee) {
+bool Data_equal (Data me, Data thee) {
 	if (my classInfo != thy classInfo) return false;   // different class: not equal
-	int offset = sizeof (struct structDaata);   // we already compared the methods, and are going to skip the names
-	if (! memcmp ((char *) me + offset, (char *) thee + offset, my classInfo -> size - offset))   // BUG: not necessarily portable
+	int offset = sizeof (struct structData);   // we already compared the methods, and are going to skip the names
+	if (! memcmp ((char *) me + offset, (char *) thee + offset, my classInfo -> size - offset))
 		return true;   // no shallow differences
 	return my v_equal (thee);
 }
 
-bool Data_canWriteAsEncoding (Daata me, int encoding) {
+bool Data_canWriteAsEncoding (Data me, int encoding) {
 	return my v_canWriteAsEncoding (encoding);
 }
 
-bool Data_canWriteText (Daata me) {
+bool Data_canWriteText (Data me) {
 	return my v_writable ();
 }
 
-void Data_writeText (Daata me, MelderFile openFile) {
+void Data_writeText (Data me, MelderFile openFile) {
 	my v_writeText (openFile);
 	if (ferror (openFile -> filePointer))
 		Melder_throw (U"I/O error.");
 }
 
-MelderFile Data_createTextFile (Daata me, MelderFile file, bool verbose) {
+MelderFile Data_createTextFile (Data me, MelderFile file, bool verbose) {
 	autoMelderFile mfile = MelderFile_create (file);
 	#if defined (_WIN32)
 		file -> requiresCRLF = true;
@@ -97,7 +101,7 @@ MelderFile Data_createTextFile (Daata me, MelderFile file, bool verbose) {
 	return mfile.transfer();
 }
 
-static void _Data_writeToTextFile (Daata me, MelderFile file, bool verbose) {
+static void _Data_writeToTextFile (Data me, MelderFile file, bool verbose) {
 	try {
 		if (! Data_canWriteText (me))
 			Melder_throw (U"Objects of class ", my classInfo -> className, U" cannot be written to a text file.");
@@ -117,13 +121,13 @@ static void _Data_writeToTextFile (Daata me, MelderFile file, bool verbose) {
 		mfile.close ();
 	} catch (MelderError) {
 		#ifndef _WIN32
-			if (file -> filePointer) funlockfile (file -> filePointer);   // the file pointer is null before Data_createTextFile() and after mfile.close()
+			if (file -> filePointer) funlockfile (file -> filePointer);   // the file pointer is NULL before Data_createTextFile() and after mfile.close()
 		#endif
 		throw;
 	}
 }
 
-void Data_writeToTextFile (Daata me, MelderFile file) {
+void Data_writeToTextFile (Data me, MelderFile file) {
 	try {
 		_Data_writeToTextFile (me, file, true);
 	} catch (MelderError) {
@@ -131,7 +135,7 @@ void Data_writeToTextFile (Daata me, MelderFile file) {
 	}
 }
 
-void Data_writeToShortTextFile (Daata me, MelderFile file) {
+void Data_writeToShortTextFile (Data me, MelderFile file) {
 	try {
 		_Data_writeToTextFile (me, file, false);
 	} catch (MelderError) {
@@ -139,17 +143,17 @@ void Data_writeToShortTextFile (Daata me, MelderFile file) {
 	}
 }
 
-bool Data_canWriteBinary (Daata me) {
+bool Data_canWriteBinary (Data me) {
 	return my v_writable ();
 }
 
-void Data_writeBinary (Daata me, FILE *f) {
+void Data_writeBinary (Data me, FILE *f) {
 	my v_writeBinary (f);
 	if (ferror (f))
 		Melder_throw (U"I/O error.");
 }
 
-void Data_writeToBinaryFile (Daata me, MelderFile file) {
+void Data_writeToBinaryFile (Data me, MelderFile file) {
 	try {
 		if (! Data_canWriteBinary (me))
 			Melder_throw (U"Objects of class ", my classInfo -> className, U" cannot be written to a generic binary file.");
@@ -168,11 +172,11 @@ void Data_writeToBinaryFile (Daata me, MelderFile file) {
 	}
 }
 
-bool Data_canReadText (Daata me) {
+bool Data_canReadText (Data me) {
 	return my v_writable ();
 }
 
-void Data_readText (Daata me, MelderReadText text, int formatVersion) {
+void Data_readText (Data me, MelderReadText text, int formatVersion) {
 	try {
 		my v_readText (text, formatVersion);
 		my v_repair ();
@@ -181,40 +185,40 @@ void Data_readText (Daata me, MelderReadText text, int formatVersion) {
 	}
 }
 
-autoDaata Data_readFromTextFile (MelderFile file) {
+Data Data_readFromTextFile (MelderFile file) {
 	try {
 		autoMelderReadText text = MelderReadText_createFromFile (file);
 		char32 *line = MelderReadText_readLine (text.peek());
-		if (! line)
+		if (line == NULL)
 			Melder_throw (U"No lines.");
 		char32 *end = str32str (line, U"ooTextFile");   // oo format?
-		autoDaata me;
+		autoData me = NULL;
 		int formatVersion;
 		if (end) {
 			autostring32 klas = texgetw2 (text.peek());
-			me = Thing_newFromClassName (klas.peek(), & formatVersion).static_cast_move <structDaata> ();
+			me.reset (static_cast <Data> (Thing_newFromClassName (klas.peek(), & formatVersion)));
 		} else {
 			end = str32str (line, U"TextFile");
-			if (! end)
+			if (end == NULL)
 				Melder_throw (U"Not an old-type text file; should not occur.");
 			*end = U'\0';
-			me = Thing_newFromClassName (line, nullptr).static_cast_move <structDaata> ();
+			me.reset (static_cast <Data> (Thing_newFromClassName (line, NULL)));
 			formatVersion = -1;   // old version
 		}
 		MelderFile_getParentDir (file, & Data_directoryBeingRead);
-		Data_readText (me.get(), text.peek(), formatVersion);
+		Data_readText (me.peek(), text.peek(), formatVersion);
 		file -> format = structMelderFile :: Format :: text;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Data not read from text file ", file, U".");
 	}
 }
 
-bool Data_canReadBinary (Daata me) {
+bool Data_canReadBinary (Data me) {
 	return my v_writable ();
 }
 
-void Data_readBinary (Daata me, FILE *f, int formatVersion) {
+void Data_readBinary (Data me, FILE *f, int formatVersion) {
 	try {
 		my v_readBinary (f, formatVersion);
 		if (feof (f))
@@ -227,63 +231,49 @@ void Data_readBinary (Daata me, FILE *f, int formatVersion) {
 	}
 }
 
-autoDaata Data_readFromBinaryFile (MelderFile file) {
+Data Data_readFromBinaryFile (MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "rb");
 		char line [200];
 		int n = fread (line, 1, 199, f); line [n] = '\0';
 		char *end = strstr (line, "ooBinaryFile");
-		autoDaata me;
+		autoData me = NULL;
 		int formatVersion;
 		if (end) {
 			fseek (f, strlen ("ooBinaryFile"), 0);
 			autostring8 klas = bingets1 (f);
-			me = Thing_newFromClassName (Melder_peek8to32 (klas.peek()), & formatVersion).static_cast_move <structDaata> ();
+			me.reset (static_cast <Data> (Thing_newFromClassName (Melder_peek8to32 (klas.peek()), & formatVersion)));
 		} else {
 			end = strstr (line, "BinaryFile");
 			if (! end) {
 				Melder_throw (U"File ", file, U" is not a Data binary file.");
 			}
 			*end = '\0';
-			me = Thing_newFromClassName (Melder_peek8to32 (line), nullptr).static_cast_move <structDaata> ();
+			me.reset (static_cast <Data> (Thing_newFromClassName (Melder_peek8to32 (line), NULL)));
 			formatVersion = -1;   // old version: override version number, which was set to 0 by newFromClassName
 			rewind (f);
 			fread (line, 1, end - line + strlen ("BinaryFile"), f);
 		}
 		MelderFile_getParentDir (file, & Data_directoryBeingRead);
-		Data_readBinary (me.get(), f, formatVersion);
+		Data_readBinary (me.peek(), f, formatVersion);
 		file -> format = structMelderFile :: Format :: binary;
 		f.close (file);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Data not read from binary file ", file, U".");
 	}
 }
 
-static int defaultPublish (autoDaata /* me */) {
-	return 0;   // nothing published
-}
-
-static int (*thePublish) (autoDaata) = defaultPublish;
-
-int Data_publish (autoDaata me) {
-	return thePublish (me.move());
-}
-
-void Data_setPublishProc (int (*publish) (autoDaata)) {
-	thePublish = publish ? publish : defaultPublish;
-}
-
 /* Generic reading. */
 
 static int numFileTypeRecognizers = 0;
-static Data_FileTypeRecognizer fileTypeRecognizers [100];
-void Data_recognizeFileType (Data_FileTypeRecognizer recognizer) {
+static Any (*fileTypeRecognizers [100]) (int nread, const char *header, MelderFile file);
+void Data_recognizeFileType (Any (*recognizer) (int nread, const char *header, MelderFile file)) {
 	Melder_assert (numFileTypeRecognizers < 100);
 	fileTypeRecognizers [++ numFileTypeRecognizers] = recognizer;
 }
 
-autoDaata Data_readFromFile (MelderFile file) {
+Data Data_readFromFile (MelderFile file) {
 	int nread, i;
 	char header [513];
 	autofile f = Melder_fopen (file, "rb");
@@ -295,7 +285,7 @@ autoDaata Data_readFromFile (MelderFile file) {
 
 	if (nread > 11) {
 		char *p = strstr (header, "TextFile");
-		if (p && p - header < nread - 8 && p - header < 40)
+		if (p != NULL && p - header < nread - 8 && p - header < 40)
 			return Data_readFromTextFile (file);
 	}
 	if (nread > 22) {
@@ -305,7 +295,7 @@ autoDaata Data_readFromFile (MelderFile file) {
 		for (i = 0; i < 100; i ++)
 			if (headerCopy [i] == '\0') headerCopy [i] = '\001';
 		char *p = strstr (headerCopy, "T\001e\001x\001t\001F\001i\001l\001e");
-		if (p && p - headerCopy < nread - 15 && p - headerCopy < 80)
+		if (p != NULL && p - headerCopy < nread - 15 && p - headerCopy < 80)
 			return Data_readFromTextFile (file);
 	}
 
@@ -313,7 +303,7 @@ autoDaata Data_readFromFile (MelderFile file) {
 
 	if (nread > 13) {
 		char *p = strstr (header, "BinaryFile");
-		if (p && p - header < nread - 10 && p - header < 40)
+		if (p != NULL && p - header < nread - 10 && p - header < 40)
 			return Data_readFromBinaryFile (file);
 	}
 
@@ -321,18 +311,15 @@ autoDaata Data_readFromFile (MelderFile file) {
 
 	MelderFile_getParentDir (file, & Data_directoryBeingRead);
 	for (i = 1; i <= numFileTypeRecognizers; i ++) {
-		autoDaata object = fileTypeRecognizers [i] (nread, header, file);
-		if (object) {
-			if (object -> classInfo == classDaata)   // dummy object? the recognizer could have had a side effect, such as drawing a picture
-				return autoDaata ();
-			return object;
-		}
+		Data object = (Data) fileTypeRecognizers [i] (nread, header, file);
+		if (object == (Data) 1) return NULL;
+		if (object) return object;
 	}
 
 	/***** 4. Is this a common text file? *****/
 
 	for (i = 0; i < nread; i ++)
-		if (header [i] < 32 || header [i] > 126)   // not ASCII?
+		if (header [i] < 32 || header [i] > 126)   /* Not ASCII? */
 			break;
 	if (i >= nread) return Data_readFromTextFile (file);
 
@@ -346,7 +333,7 @@ int Data_Description_countMembers (Data_Description structDescription) {
 	for (Data_Description desc = structDescription; desc -> name; desc ++)
 		count ++;
 	if (structDescription [0]. type == inheritwa) {
-		Data_Description parentDescription = ((Daata) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
+		Data_Description parentDescription = ((Data) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
 		if (parentDescription)
 			return count + Data_Description_countMembers (parentDescription);
 	}
@@ -357,11 +344,11 @@ Data_Description Data_Description_findMatch (Data_Description structDescription,
 	for (Data_Description desc = structDescription; desc -> name; desc ++)
 		if (str32equ (name, desc -> name)) return desc;
 	if (structDescription [0]. type == inheritwa) {
-		Data_Description parentDescription = ((Daata) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
+		Data_Description parentDescription = ((Data) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
 		if (parentDescription)
 			return Data_Description_findMatch (parentDescription, name);
 	}
-	return nullptr;   // not found
+	return NULL;   /* Not found. */
 }
 
 Data_Description Data_Description_findNumberUse (Data_Description structDescription, const char32 *string) {
@@ -370,28 +357,26 @@ Data_Description Data_Description_findNumberUse (Data_Description structDescript
 		if (desc -> max2 && str32equ (desc -> max2, string)) return desc;
 	}
 	if (structDescription [0]. type == inheritwa) {
-		Data_Description parentDescription = ((Daata) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
+		Data_Description parentDescription = ((Data) _Thing_dummyObject ((ClassInfo) structDescription [0]. tagType)) -> v_description ();
 		if (parentDescription)
 			return Data_Description_findNumberUse (parentDescription, string);
 	}
-	return nullptr;
+	return NULL;
 }
 
 /* Retrieving data from object + description. */
 
 int64 Data_Description_integer (void *address, Data_Description description) {
 	switch (description -> type) {
-		case bytewa:           return * (signed char *)    ((char *) address + description -> offset);
-		case intwa:            return * (int *)            ((char *) address + description -> offset);
-		case longwa:           return * (long *)           ((char *) address + description -> offset);
-		case ubytewa:          return * (unsigned char *)  ((char *) address + description -> offset);
-		case uintwa:           return * (unsigned int *)   ((char *) address + description -> offset);
-		case ulongwa:          return * (unsigned long *)  ((char *) address + description -> offset);
-		case boolwa:           return * (bool *)           ((char *) address + description -> offset);
-		case objectwa:         return (* (Collection *)    ((char *) address + description -> offset))->size;
-		case autoobjectwa:     return (* (Collection *)    ((char *) address + description -> offset))->size;   // FIXME: alignment not guaranteed
-		case collectionofwa:   return (  (Collection)      ((char *) address + description -> offset))->size;   // FIXME: alignment not guaranteed
-		case autocollectionwa: return (* (Collection *)    ((char *) address + description -> offset))->size;   // FIXME: alignment not guaranteed
+		case bytewa:       return * (signed char *)    ((char *) address + description -> offset);
+		case intwa:        return * (int *)            ((char *) address + description -> offset);
+		case longwa:       return * (long *)           ((char *) address + description -> offset);
+		case ubytewa:      return * (unsigned char *)  ((char *) address + description -> offset);
+		case uintwa:       return * (unsigned int *)   ((char *) address + description -> offset);
+		case ulongwa:      return * (unsigned long *)  ((char *) address + description -> offset);
+		case boolwa:       return * (bool *)           ((char *) address + description -> offset);
+		case objectwa:     return (* (Collection *)    ((char *) address + description -> offset)) -> size;
+		case collectionwa: return (* (Collection *)    ((char *) address + description -> offset)) -> size;
 		default: return 0;
 	}
 }
@@ -399,7 +384,7 @@ int64 Data_Description_integer (void *address, Data_Description description) {
 int Data_Description_evaluateInteger (void *structAddress, Data_Description structDescription,
 	const char32 *formula, long *result)
 {
-	if (! formula) {   // this was a VECTOR_FROM array
+	if (formula == NULL) {   // this was a VECTOR_FROM array
 		*result = 1;
 		return 1;
 	}
@@ -407,9 +392,9 @@ int Data_Description_evaluateInteger (void *structAddress, Data_Description stru
 		char32 buffer [100], *minus1, *psize;
 		Data_Description sizeDescription;
 		str32cpy (buffer, formula);
-		if ((minus1 = str32str (buffer, U" - 1")) != nullptr)
+		if ((minus1 = str32str (buffer, U" - 1")) != NULL)
 			*minus1 = U'\0';   // strip trailing " - 1", but remember
-		if ((psize = str32str (buffer, U" -> size")) != nullptr)
+		if ((psize = str32str (buffer, U" -> size")) != NULL)
 			*psize = U'\0';   // strip trailing " -> size"
 		if (! (sizeDescription = Data_Description_findMatch (structDescription, buffer))) {
 			*result = 0;
diff --git a/sys/Data.h b/sys/Data.h
index 81e4ef6..57fce43 100644
--- a/sys/Data.h
+++ b/sys/Data.h
@@ -35,15 +35,10 @@ typedef struct structData_Description {
 	const char32 *min2, *max2;   // for matrices
 } *Data_Description;
 
-/*
- * We call the class Daata instead of Data,
- * because of a conflict with the use of "Data" in assembler strings in intrin-impl.h on Windows.
- */
-
-Thing_define (Daata, Thing) {
-	virtual void v_copy (Daata data_to);
-	virtual bool v_equal (Daata otherData);
-	virtual Data_Description v_description () { return nullptr; }
+Thing_define (Data, Thing) {
+	virtual void v_copy (Any data_to);
+	virtual bool v_equal (Any otherData);
+	virtual Data_Description v_description () { return NULL; }
 	virtual bool v_writable () { return true; }
 	virtual bool v_canWriteAsEncoding (int outputEncoding);
 	virtual void v_writeText (MelderFile openFile);
@@ -52,45 +47,45 @@ Thing_define (Daata, Thing) {
 	virtual void v_readBinary (FILE *f, int formatVersion);
 	virtual void v_repair () { }   // after reading Praat data files created by others
 	// methods for scripting:
-	virtual bool v_hasGetNrow      () { return false; }   virtual double        v_getNrow      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetNcol      () { return false; }   virtual double        v_getNcol      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetXmin      () { return false; }   virtual double        v_getXmin      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetXmax      () { return false; }   virtual double        v_getXmax      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetYmin      () { return false; }   virtual double        v_getYmin      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetYmax      () { return false; }   virtual double        v_getYmax      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetNx        () { return false; }   virtual double        v_getNx        ()                                 { return NUMundefined; }
-	virtual bool v_hasGetNy        () { return false; }   virtual double        v_getNy        ()                                 { return NUMundefined; }
-	virtual bool v_hasGetDx        () { return false; }   virtual double        v_getDx        ()                                 { return NUMundefined; }
-	virtual bool v_hasGetDy        () { return false; }   virtual double        v_getDy        ()                                 { return NUMundefined; }
-	virtual bool v_hasGetX         () { return false; }   virtual double        v_getX         (long /* ix */)                    { return NUMundefined; }
-	virtual bool v_hasGetY         () { return false; }   virtual double        v_getY         (long /* iy */)                    { return NUMundefined; }
-	virtual bool v_hasGetRowStr    () { return false; }   virtual const char32 *v_getRowStr    (long /* irow */)                  { return nullptr;      }
-	virtual bool v_hasGetColStr    () { return false; }   virtual const char32 *v_getColStr    (long /* icol */)                  { return nullptr;      }
-	virtual bool v_hasGetCell      () { return false; }   virtual double        v_getCell      ()                                 { return NUMundefined; }
-	virtual bool v_hasGetCellStr   () { return false; }   virtual const char32 *v_getCellStr   ()                                 { return nullptr; }
-	virtual bool v_hasGetVector    () { return false; }   virtual double        v_getVector    (long /* irow */, long /* icol */) { return NUMundefined; }
-	virtual bool v_hasGetVectorStr () { return false; }   virtual const char32 *v_getVectorStr (long /* icol */)                  { return nullptr;      }
-	virtual bool v_hasGetMatrix    () { return false; }   virtual double        v_getMatrix    (long /* irow */, long /* icol */) { return NUMundefined; }
-	virtual bool v_hasGetMatrixStr () { return false; }   virtual const char32 *v_getMatrixStr (long /* irow */, long /* icol */) { return nullptr;      }
-	virtual bool v_hasGetFunction0 () { return false; }   virtual double        v_getFunction0 ()                                 { return NUMundefined; }
-	virtual bool v_hasGetFunction1 () { return false; }   virtual double        v_getFunction1 (long /* irow */, double /* x */)  { return NUMundefined; }
-	virtual bool v_hasGetFunction2 () { return false; }   virtual double        v_getFunction2 (double /* x */, double /* y */)   { return NUMundefined; }
-	virtual bool v_hasGetRowIndex  () { return false; }   virtual double        v_getRowIndex  (const char32 * /* rowLabel */)    { return NUMundefined; }
-	virtual bool v_hasGetColIndex  () { return false; }   virtual double        v_getColIndex  (const char32 * /* colLabel */)    { return NUMundefined; }
+	virtual bool v_hasGetNrow      () { return false; }   virtual double        v_getNrow      ()                      { return NUMundefined; }
+	virtual bool v_hasGetNcol      () { return false; }   virtual double        v_getNcol      ()                      { return NUMundefined; }
+	virtual bool v_hasGetXmin      () { return false; }   virtual double        v_getXmin      ()                      { return NUMundefined; }
+	virtual bool v_hasGetXmax      () { return false; }   virtual double        v_getXmax      ()                      { return NUMundefined; }
+	virtual bool v_hasGetYmin      () { return false; }   virtual double        v_getYmin      ()                      { return NUMundefined; }
+	virtual bool v_hasGetYmax      () { return false; }   virtual double        v_getYmax      ()                      { return NUMundefined; }
+	virtual bool v_hasGetNx        () { return false; }   virtual double        v_getNx        ()                      { return NUMundefined; }
+	virtual bool v_hasGetNy        () { return false; }   virtual double        v_getNy        ()                      { return NUMundefined; }
+	virtual bool v_hasGetDx        () { return false; }   virtual double        v_getDx        ()                      { return NUMundefined; }
+	virtual bool v_hasGetDy        () { return false; }   virtual double        v_getDy        ()                      { return NUMundefined; }
+	virtual bool v_hasGetX         () { return false; }   virtual double        v_getX         (long ix)               { return NUMundefined; (void) ix;   }
+	virtual bool v_hasGetY         () { return false; }   virtual double        v_getY         (long iy)               { return NUMundefined; (void) iy;   }
+	virtual bool v_hasGetRowStr    () { return false; }   virtual const char32 *v_getRowStr    (long irow)             { return NULL;         (void) irow; }
+	virtual bool v_hasGetColStr    () { return false; }   virtual const char32 *v_getColStr    (long icol)             { return NULL;         (void) icol; }
+	virtual bool v_hasGetCell      () { return false; }   virtual double        v_getCell      ()                      { return NUMundefined; }
+	virtual bool v_hasGetCellStr   () { return false; }   virtual const char32 *v_getCellStr   ()                      { return NULL; }
+	virtual bool v_hasGetVector    () { return false; }   virtual double        v_getVector    (long irow, long icol)  { return NUMundefined; (void) irow; (void) icol; }
+	virtual bool v_hasGetVectorStr () { return false; }   virtual const char32 *v_getVectorStr (long icol)             { return NULL;         (void) icol; }
+	virtual bool v_hasGetMatrix    () { return false; }   virtual double        v_getMatrix    (long irow, long icol)  { return NUMundefined; (void) irow; (void) icol; }
+	virtual bool v_hasGetMatrixStr () { return false; }   virtual const char32 *v_getMatrixStr (long irow, long icol)  { return NULL;         (void) irow; (void) icol; }
+	virtual bool v_hasGetFunction0 () { return false; }   virtual double        v_getFunction0 ()                      { return NUMundefined; }
+	virtual bool v_hasGetFunction1 () { return false; }   virtual double        v_getFunction1 (long irow, double x)   { return NUMundefined; (void) irow; (void) x; }
+	virtual bool v_hasGetFunction2 () { return false; }   virtual double        v_getFunction2 (double x, double y)    { return NUMundefined; (void) x; (void) y; }
+	virtual bool v_hasGetRowIndex  () { return false; }   virtual double        v_getRowIndex  (const char32 *rowLabel){ return NUMundefined; (void) rowLabel; }
+	virtual bool v_hasGetColIndex  () { return false; }   virtual double        v_getColIndex  (const char32 *colLabel){ return NUMundefined; (void) colLabel; }
 };
 
-template <class T> _Thing_auto<T> Data_copy (T* data) {
-	return _Data_copy (data).template static_cast_move <T> ();
+template <class T> T* Data_copy (T* data) {
+	return static_cast <T*> (_Data_copy (data));
 }
-autoDaata _Data_copy (Daata me);
+Data _Data_copy (Data me);
 /*
 	Message:
 		"return a deep copy of yourself."
 	Postconditions:
-		result -> name == nullptr;	  // the only attribute NOT copied
+		result -> name == NULL;	  // the only attribute NOT copied
 */
 
-bool Data_equal (Daata data1, Daata data2);
+bool Data_equal (Data data1, Data data2);
 /*
 	Message:
 		"return 1 if the shallow or deep attributes of 'data1' and 'data2' are equal;
@@ -99,16 +94,16 @@ bool Data_equal (Daata data1, Daata data2);
 		Data_equal (data, Data_copy (data)) should always return 1; the names are not compared.
 */
 
-typedef MelderCompareHook<structDaata> Data_CompareHook;
+typedef int (*Data_CompareFunction) (Any data1, Any data2);
 
-bool Data_canWriteAsEncoding (Daata me, int outputEncoding);
+bool Data_canWriteAsEncoding (Data me, int outputEncoding);
 /*
 	Message:
 		"Can you write yourself in that encoding?"
 	The answer depends on whether all members can be written in that encoding.
 */
 
-bool Data_canWriteText (Daata me);
+bool Data_canWriteText (Data me);
 /*
 	Message:
 		"Can you write yourself as text?"
@@ -116,12 +111,12 @@ bool Data_canWriteText (Daata me);
 */
 
 MelderFile Data_createTextFile (
-	Daata me,
+	Data me,
 	MelderFile file,
 	bool verbose
 );   // returns the input MelderFile in order to be caught by an autoMelderFile
 
-void Data_writeText (Daata me, MelderFile openFile);
+void Data_writeText (Data me, MelderFile openFile);
 /*
 	Message:
 		"try to write yourself as text to an open file."
@@ -134,7 +129,7 @@ void Data_writeText (Daata me, MelderFile openFile);
 		The format depends on the 'writeText' method defined by the subclass.
 */
 
-void Data_writeToTextFile (Daata me, MelderFile file);
+void Data_writeToTextFile (Data me, MelderFile file);
 /*
 	Message:
 		"try to write yourself as text to a file".
@@ -145,7 +140,7 @@ void Data_writeToTextFile (Daata me, MelderFile file);
 		The format of the lines after the second line is the same as in Data_writeText.
 */
 
-void Data_writeToShortTextFile (Daata me, MelderFile file);
+void Data_writeToShortTextFile (Data me, MelderFile file);
 /*
 	Message:
 		"try to write yourself as text to a file".
@@ -156,14 +151,14 @@ void Data_writeToShortTextFile (Daata me, MelderFile file);
 		The format of the lines after the second line is the same as in Data_writeText.
 */
 
-bool Data_canWriteBinary (Daata me);
+bool Data_canWriteBinary (Data me);
 /*
 	Message:
 		"Can you write yourself as binary data?"
 	The answer depends on whether the subclass defines the 'writeBinary' method.
 */
 
-void Data_writeBinary (Daata me, FILE *f);
+void Data_writeBinary (Data me, FILE *f);
 /*
 	Message:
 		"try to write yourself as binary data to an open file."
@@ -176,7 +171,7 @@ void Data_writeBinary (Daata me, FILE *f);
 		and IEEE floating-point format.
 */
 
-void Data_writeToBinaryFile (Daata me, MelderFile file);
+void Data_writeToBinaryFile (Data me, MelderFile file);
 /*
 	Message:
 		"try to write yourself as binary data to a file".
@@ -186,7 +181,7 @@ void Data_writeToBinaryFile (Daata me, MelderFile file);
 		The format of the file after this is the same as in Data_writeBinary.
 */
 
-bool Data_canReadText (Daata me);
+bool Data_canReadText (Data me);
 /*
 	Message:
 		"Can you read yourself as text?"
@@ -194,7 +189,7 @@ bool Data_canReadText (Daata me);
 	but is preferably the same as the answer from Data_canWriteText.
 */
 
-void Data_readText (Daata me, MelderReadText text, int formatVersion);
+void Data_readText (Data me, MelderReadText text, int formatVersion);
 /*
 	Message:
 		"try to read yourself as text from a string."
@@ -207,7 +202,7 @@ void Data_readText (Daata me, MelderReadText text, int formatVersion);
 		but is preferably the same as the format produced by the 'writeText' method.
 */
 
-autoDaata Data_readFromTextFile (MelderFile file);
+Data Data_readFromTextFile (MelderFile file);
 /*
 	Message:
 		"try to read a Data as text from a file".
@@ -223,7 +218,7 @@ autoDaata Data_readFromTextFile (MelderFile file);
 		(plus those from Data_readText)
 */
 
-bool Data_canReadBinary (Daata me);
+bool Data_canReadBinary (Data me);
 /*
 	Message:
 		"Can you read yourself as binary data?"
@@ -231,7 +226,7 @@ bool Data_canReadBinary (Daata me);
 	but is preferably the same as the answer from Data_canWriteBinary.
 */
 
-void Data_readBinary (Daata me, FILE *f, int formatVersion);
+void Data_readBinary (Data me, FILE *f, int formatVersion);
 /*
 	Message:
 		"try to read yourself as binary data from the stream <f>."
@@ -244,7 +239,7 @@ void Data_readBinary (Daata me, FILE *f, int formatVersion);
 		but is preferably the same as the format produced by the 'writeBinary' method.
 */
 
-autoDaata Data_readFromBinaryFile (MelderFile file);
+Data Data_readFromBinaryFile (MelderFile file);
 /*
 	Message:
 		"try to read a Data as binary data from a file".
@@ -260,9 +255,7 @@ autoDaata Data_readFromBinaryFile (MelderFile file);
 		(plus those from Data_readBinary)
 */
 
-typedef autoDaata (*Data_FileTypeRecognizer) (int numberOfBytesRead, const char *header, MelderFile file);
-
-void Data_recognizeFileType (Data_FileTypeRecognizer recognizer);
+void Data_recognizeFileType (Any (*recognizer) (int nread, const char *header, MelderFile file));
 /*
 Purpose:
 	to make sure that a file can be read by Data_readFromFile.
@@ -288,15 +281,15 @@ Defining a file-type recognizer:
 	You define a file-type recognizer as in the following example,
 	which tries to identify and read a Sun audio file.
 	A Sun audio file should contain at least 24 bytes and start with the string ".snd":
-	autoDaata Sound_sunAudioFileRecognizer (int nread, const char *header, MelderFile file) {
+	Any Sound_sunAudioFileRecognizer (int nread, const char *header, const char *fileName) {
 		if (nread >= 24 && strnequ (& header [0], ".snd", 4))
-			return Sound_readFromSunAudioFile (file);
+			return Sound_readFromSunAudioFile (fileName);
 		else
-			return autoDaata ();
+			return NULL;
 	}
 	From this example, we see that if the file is recognized, it should be read immediately,
 	and the resulting object (always a descendant of class Data) should be returned.
-	We also see that the return value nullptr is used for notifying Data_readFromFile
+	We also see that the return value NULL is used for notifying Data_readFromFile
 	of the fact that the file is not a Sun audio file.
 Registering a file-type recognizer:
 	You would put a statement like the following in the initialization section of your program:
@@ -304,28 +297,24 @@ Registering a file-type recognizer:
 	After this, Data_readFromFile is able to read Sun audio files.
 */
 
-autoDaata Data_readFromFile (MelderFile file);
+Data Data_readFromFile (MelderFile file);
 /*
 Purpose:
 	to read a file with data of any kind.
 Return value:
-	the object read from `file`.
-Failure:
-	the file was not recognized.
+	the object read from the file fs,
+	or NULL if the file was not recognized (an error message is queued in that case).
 Behaviour:
 	Data_readFromFile first checks whether the file is a text file
 	that is readable by Data_readFromTextFile, or a binary file
 	written by Data_writeToBinaryFile, or a file as written by Data_writeToLispFile.
 	If one of these succeeds, the file is read and the resulting object is returned.
 	If not, the recognizers installed with Data_recognizeFileType are tried.
+	If this also fails, Data_readFromFile returns NULL.
 */
 
 extern structMelderDir Data_directoryBeingRead;
 
-int Data_publish (autoDaata me);
-
-void Data_setPublishProc (int (*publish) (autoDaata));
-
 /* The values of 'type' in struct descriptions. */
 
 #define bytewa  1
@@ -349,10 +338,8 @@ void Data_setPublishProc (int (*publish) (autoDaata));
 #define structwa  18
 #define widgetwa  19
 #define objectwa  20
-#define autoobjectwa  21
-#define collectionofwa  22
-#define autocollectionwa  23
-#define inheritwa  24
+#define collectionwa  21
+#define inheritwa  22
 
 /* Recursive routines for working with struct members. */
 
diff --git a/sys/DataEditor.cpp b/sys/DataEditor.cpp
index 9b2f5bb..cb3f021 100644
--- a/sys/DataEditor.cpp
+++ b/sys/DataEditor.cpp
@@ -1,6 +1,6 @@
 /* DataEditor.cpp
  *
- * Copyright (C) 1995-2012,2015,2016 Paul Boersma
+ * Copyright (C) 1995-2012,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 #include "machine.h"
 
 static Data_Description Class_getDescription (ClassInfo table) {
-	return ((Daata) _Thing_dummyObject (table)) -> v_description ();
+	return ((Data) _Thing_dummyObject (table)) -> v_description ();
 }
 
 /*static const char * typeStrings [] = { "none",
@@ -46,15 +46,15 @@ static int stringLengths [] = { 0,
 	15, 27, 35, 59,
 	33, 33, 8, 6, 60, 60 };
 
-static void VectorEditor_create (DataEditor root, const char32 *title, void *address,
+static VectorEditor VectorEditor_create (DataEditor root, const char32 *title, void *address,
 	Data_Description description, long minimum, long maximum);
 
-static void MatrixEditor_create (DataEditor root, const char32 *title, void *address,
+static MatrixEditor MatrixEditor_create (DataEditor root, const char32 *title, void *address,
 	Data_Description description, long min1, long max1, long min2, long max2);
 
-static void StructEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description);
+static StructEditor StructEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description);
 
-static void ClassEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description);
+static ClassEditor ClassEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description);
 
 static inline const char32 * strip_d (const char32 *s) {
 	return s && s [0] == U'd' && s [1] == U'_' ? & s [2] : & s [0];
@@ -64,13 +64,13 @@ static inline const char32 * strip_d (const char32 *s) {
 
 Thing_implement (DataSubEditor, Editor, 0);
 
-void structDataSubEditor :: v_destroy () noexcept {
+void structDataSubEditor :: v_destroy () {
 	for (int i = 1; i <= kDataSubEditor_MAXNUM_ROWS; i ++)
 		Melder_free (d_fieldData [i]. history);
-	if (our root)
-		for (int i = our root -> children.size; i > 0; i --)
-			if (our root -> children.at [i] == this)
-				our root -> children.subtractItem_ref (i);
+	if (d_root && d_root -> d_children)
+		for (int i = d_root -> d_children -> size; i > 0; i --)
+			if (d_root -> d_children -> item [i] == this)
+				Collection_subtractItem (d_root -> d_children, i);
 	DataSubEditor_Parent :: v_destroy ();
 }
 
@@ -79,8 +79,8 @@ static void update (DataSubEditor me) {
 	/* Hide all the existing widgets. */
 
 	for (int i = 1; i <= kDataSubEditor_MAXNUM_ROWS; i ++) {
-		my d_fieldData [i]. address = nullptr;
-		my d_fieldData [i]. description = nullptr;
+		my d_fieldData [i]. address = NULL;
+		my d_fieldData [i]. description = NULL;
 		GuiThing_hide (my d_fieldData [i]. label);
 		GuiThing_hide (my d_fieldData [i]. button);
 		GuiThing_hide (my d_fieldData [i]. text);
@@ -93,28 +93,30 @@ static void update (DataSubEditor me) {
 static Data_Description DataSubEditor_findNumberUse (DataSubEditor me, const char32 *number) {
 	Data_Description structDescription, result;
 	char32 string [100];
-	if (my classInfo == classMatrixEditor) return nullptr;   // no structs inside
+	if (my classInfo == classMatrixEditor) return NULL;   // no structs inside
 	if (my classInfo == classVectorEditor) {
-		if (my d_description -> type != structwa) return nullptr;   // no structs inside
+		if (my d_description -> type != structwa) return NULL;   // no structs inside
 		structDescription = * (Data_Description *) my d_description -> tagType;
 	} else { /* StructEditor or ClassEditor or DataEditor. */
 		structDescription = my d_description;
 	}
 	Melder_sprint (string,100, number);
-	if ((result = Data_Description_findNumberUse (structDescription, string)) != nullptr) return result;
+	if ((result = Data_Description_findNumberUse (structDescription, string)) != NULL) return result;
 	Melder_sprint (string,100, number, U" - 1");
-	if ((result = Data_Description_findNumberUse (structDescription, string)) != nullptr) return result;
-	return nullptr;
+	if ((result = Data_Description_findNumberUse (structDescription, string)) != NULL) return result;
+	return NULL;
 }
 
-static void gui_button_cb_change (DataSubEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_change (I, GuiButtonEvent event) {
+	(void) event;
+	iam (DataSubEditor);
 	int irow = 1;
 	for (; irow <= kDataSubEditor_MAXNUM_ROWS; irow ++) {
 		#if motif
 			bool visible = XtIsManaged (my d_fieldData [irow]. text -> d_widget);
 		#elif gtk
 			gboolean visible;
-			g_object_get (G_OBJECT (my d_fieldData [irow]. text), "visible", & visible, nullptr);
+			g_object_get (G_OBJECT (my d_fieldData [irow]. text), "visible", & visible, NULL);
 		#elif defined (macintosh) && ! useCarbon
 			bool visible = ! [(GuiCocoaTextField *) my d_fieldData [irow]. text -> d_widget   isHidden];
 		#else
@@ -211,10 +213,10 @@ static void gui_button_cb_change (DataSubEditor me, GuiButtonEvent /* event */)
 	 * 1. The owner (creator) of our root DataEditor: so that she can notify other editors, if any.
 	 * 2. All our sibling DataSubEditors.
 	 */
-	Editor_broadcastDataChanged (my root);
+	Editor_broadcastDataChanged (my d_root);
 	update (me);
-	for (int isub = 1; isub <= my root -> children.size; isub ++) {
-		DataSubEditor subeditor = my root -> children.at [isub];
+	for (int isub = 1; isub <= my d_root -> d_children -> size; isub ++) {
+		DataSubEditor subeditor = (DataSubEditor) my d_root -> d_children -> item [isub];
 		if (subeditor != me) update (subeditor);
 	}
 	return;
@@ -222,16 +224,20 @@ error:
 	Melder_flushError (U"Edit field \"", strip_d (my d_fieldData [irow]. description -> name), U"\" or click \"Cancel\".");
 }
 
-static void gui_button_cb_cancel (DataSubEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancel (I, GuiButtonEvent event) {
+	(void) event;
+	iam (DataSubEditor);
 	update (me);
 }
 
-static void gui_cb_scroll (DataSubEditor me, GuiScrollBarEvent event) {
+static void gui_cb_scroll (I, GuiScrollBarEvent event) {
+	iam (DataSubEditor);
 	my d_topField = GuiScrollBar_getValue (event -> scrollBar) + 1;
 	update (me);
 }
 
-static void gui_button_cb_open (DataSubEditor me, GuiButtonEvent event) {
+static void gui_button_cb_open (I, GuiButtonEvent event) {
+	iam (DataSubEditor);
 	int ifield = 0;
 	static MelderString name { 0 };
 	MelderString_empty (& name);
@@ -253,27 +259,24 @@ static void gui_button_cb_open (DataSubEditor me, GuiButtonEvent event) {
 	if (fieldData -> description -> rank == 1 || fieldData -> description -> rank == 3 || fieldData -> description -> rank < 0) {
 		MelderString_append (& name, fieldData -> history, U". ", strip_d (fieldData -> description -> name),
 			U" [", fieldData -> minimum, U"..", fieldData -> maximum, U"]");
-		VectorEditor_create (my root, name.string, fieldData -> address,
+		VectorEditor_create (my d_root, name.string, fieldData -> address,
 			fieldData -> description, fieldData -> minimum, fieldData -> maximum);
 	} else if (fieldData -> description -> rank == 2) {
 		MelderString_append (& name, fieldData -> history, U". ", strip_d (fieldData -> description -> name),
 			U" [", fieldData -> minimum, U"..", fieldData -> maximum, U"]");
 		MelderString_append (& name, U" [", fieldData -> min2, U"..", fieldData -> max2, U"]");
-		MatrixEditor_create (my root, name.string, fieldData -> address, fieldData -> description,
+		MatrixEditor_create (my d_root, name.string, fieldData -> address, fieldData -> description,
 			fieldData -> minimum, fieldData -> maximum, fieldData -> min2, fieldData -> max2);
 	} else if (fieldData -> description -> type == structwa) {
 		MelderString_append (& name, fieldData -> history, U". ", strip_d (fieldData -> description -> name));
-		StructEditor_create (my root, name.string, fieldData -> address,
+		StructEditor_create (my d_root, name.string, fieldData -> address,
 			* (Data_Description *) fieldData -> description -> tagType);
-	} else if (fieldData -> description -> type == objectwa ||
-	           fieldData -> description -> type == autoobjectwa ||
-	           fieldData -> description -> type == collectionofwa ||
-			   fieldData -> description -> type == autocollectionwa) {
+	} else if (fieldData -> description -> type == objectwa || fieldData -> description -> type == collectionwa) {
 		MelderString_append (& name, fieldData -> history, U". ", strip_d (fieldData -> description -> name));
-		ClassEditor_create (my root, name.string, fieldData -> address,
+		ClassEditor_create (my d_root, name.string, fieldData -> address,
 			Class_getDescription ((ClassInfo) fieldData -> description -> tagType));
 	} else /*if (fieldData -> description -> type == inheritwa)*/ {
-		ClassEditor_create (my root, fieldData -> history, fieldData -> address,
+		ClassEditor_create (my d_root, fieldData -> history, fieldData -> address,
 			fieldData -> description);
 /*	} else {
 		Melder_casual (
@@ -311,7 +314,7 @@ void structDataSubEditor :: v_createChildren () {
 	}
 }
 
-static void menu_cb_help (DataSubEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Inspect"); }
+static void menu_cb_help (EDITOR_ARGS) { EDITOR_IAM (DataSubEditor); Melder_help (U"Inspect"); }
 
 void structDataSubEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	DataSubEditor_Parent :: v_createHelpMenuItems (menu);
@@ -319,15 +322,15 @@ void structDataSubEditor :: v_createHelpMenuItems (EditorMenu menu) {
 }
 
 static void DataSubEditor_init (DataSubEditor me, DataEditor root, const char32 *title, void *address, Data_Description description) {
-	my root = root;
+	my d_root = root;
 	if (me != root) {
-		root -> children.addItem_ref (me);
+		Collection_addItem (root -> d_children, me);
 	}
 	my d_address = address;
 	my d_description = description;
 	my d_topField = 1;
 	my d_numberOfFields = my v_countFields ();
-	Editor_init (me, 0, 0, EDITOR_WIDTH, EDITOR_HEIGHT, title, nullptr);
+	Editor_init (me, 0, 0, EDITOR_WIDTH, EDITOR_HEIGHT, title, NULL);
 	update (me);
 }
 
@@ -361,7 +364,7 @@ static const char32 * singleTypeToText (void *address, int type, void *tagType,
 		case stringwa:
 		case lstringwa: {
 			char32 *string = * (char32 **) address;
-			if (! string) { MelderString_empty (buffer); return buffer -> string; }   // convert null string to empty string
+			if (string == NULL) { MelderString_empty (buffer); return buffer -> string; }   // convert NULL string to empty string
 			return string;   // may be much longer than the usual size of 'buffer'
 		} break;
 		default: return U"(unknown)";
@@ -392,7 +395,7 @@ static void showStructMember (
 	/* Show the value (for a single type) or a button (for a composite type). */
 	if (isSingleType) {
 		#if motif
-			XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], nullptr);   // TODO: change to GuiObject_size
+			XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], NULL);   // TODO: change to GuiObject_size
 		#endif
 		autoMelderString buffer;
 		const char32 *text = singleTypeToText (memberAddress, type, memberDescription -> tagType, & buffer);
@@ -404,7 +407,7 @@ static void showStructMember (
 	} else if (rank == 1) {
 		void *arrayAddress = * (void **) memberAddress;
 		long minimum, maximum;
-		if (! arrayAddress) return;   // no button for empty fields
+		if (arrayAddress == NULL) return;   // no button for empty fields
 		Data_Description_evaluateInteger (structAddress, structDescription,
 			memberDescription -> min1, & minimum);
 		Data_Description_evaluateInteger (structAddress, structDescription,
@@ -446,7 +449,7 @@ static void showStructMember (
 	} else if (rank == 2) {
 		void *arrayAddress = * (void **) memberAddress;
 		long min1, max1, min2, max2;
-		if (! arrayAddress) return;   // no button for empty fields
+		if (arrayAddress == NULL) return;   // no button for empty fields
 		Data_Description_evaluateInteger (structAddress, structDescription,
 			memberDescription -> min1,  & min1);
 		Data_Description_evaluateInteger (structAddress, structDescription,
@@ -471,18 +474,9 @@ static void showStructMember (
 		fieldData -> rank = 0;
 		Melder_free (fieldData -> history); fieldData -> history = Melder_dup_f (history);
 		GuiThing_show (fieldData -> button);
-	} else if (type == objectwa || type == autoobjectwa || type == autocollectionwa) {
-		fieldData -> address = * (Daata *) memberAddress;   // indirect  // FIXME: not guaranteed for auto objects
-		if (! fieldData -> address) return;   // no button if no object
-		fieldData -> description = memberDescription;
-		fieldData -> rank = 0;
-		Melder_free (fieldData -> history); fieldData -> history = Melder_dup_f (history);
-		GuiThing_show (fieldData -> button);
-	} else if (type == collectionofwa) {
-		fieldData -> address = (Daata) memberAddress;   // direct  // FIXME: not guaranteed for auto objects
-		Melder_casual (U"Daata ", Melder_pointer (fieldData -> address));
-		Melder_casual (U"Class ", ((Daata) fieldData -> address) -> classInfo -> className);
-		if (! fieldData -> address) return;   // no button if no object
+	} else if (type == objectwa || type == collectionwa) {
+		fieldData -> address = * (Data *) memberAddress;   /* Indirect. */
+		if (! fieldData -> address) return;   /* No button if no object. */
 		fieldData -> description = memberDescription;
 		fieldData -> rank = 0;
 		Melder_free (fieldData -> history); fieldData -> history = Melder_dup_f (history);
@@ -493,9 +487,9 @@ static void showStructMember (
 static void showStructMembers (DataSubEditor me, void *structAddress, Data_Description structDescription, int fromMember, char32 *history) {
 	int i = 1;
 	Data_Description memberDescription = structDescription;
-	for (; i < fromMember && memberDescription -> name != nullptr; i ++, memberDescription ++)
+	for (; i < fromMember && memberDescription -> name != NULL; i ++, memberDescription ++)
 		(void) 0;
-	for (; memberDescription -> name != nullptr; memberDescription ++) {
+	for (; memberDescription -> name != NULL; memberDescription ++) {
 		if (++ my d_irow > kDataSubEditor_MAXNUM_ROWS) return;
 		showStructMember (structAddress, structDescription, memberDescription, & my d_fieldData [my d_irow], history);
 	}
@@ -509,11 +503,11 @@ static void StructEditor_init (StructEditor me, DataEditor root, const char32 *t
 	DataSubEditor_init (me, root, title, address, description);
 }
 
-static void StructEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description) {
+static StructEditor StructEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description) {
 	try {
 		autoStructEditor me = Thing_new (StructEditor);
-		StructEditor_init (me.get(), root, title, address, description);
-		return me.releaseToUser();
+		StructEditor_init (me.peek(), root, title, address, description);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Struct inspector window not created.");
 	}
@@ -555,7 +549,7 @@ void structVectorEditor :: v_showMembers () {
 			autoMelderString buffer;
 			const char32 *text = singleTypeToText (elementAddress, type, d_description -> tagType, & buffer);
 			#if motif
-				XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], nullptr);   // TODO: change to GuiObject_size
+				XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], NULL);   // TODO: change to GuiObject_size
 			#endif
 			GuiText_setString (fieldData -> text, text);
 			GuiThing_show (fieldData -> text);
@@ -569,7 +563,7 @@ void structVectorEditor :: v_showMembers () {
 
 			if (history.string [history.length - 1] == ']') {
 				char32 *openingBracket = str32rchr (history.string, U'[');
-				Melder_assert (openingBracket != nullptr);
+				Melder_assert (openingBracket != NULL);
 				* openingBracket = '\0';
 				history.length = openingBracket - history.string;
 			}
@@ -584,12 +578,12 @@ void structVectorEditor :: v_showMembers () {
 				GuiThing_show (fieldData -> label);
 			}
 			showStructMembers (this, elementAddress, * (Data_Description *) d_description -> tagType, skip, history.string);
-		} else if (type == objectwa || type == autoobjectwa) {
+		} else if (type == objectwa) {
 			static MelderString history { 0 };
 			MelderString_copy (& history, name);
 			if (history.string [history.length - 1] == U']') {
 				char32 *openingBracket = str32rchr (history.string, U'[');
-				Melder_assert (openingBracket != nullptr);
+				Melder_assert (openingBracket != NULL);
 				* openingBracket = U'\0';
 				history.length = openingBracket - history.string;
 			}
@@ -599,8 +593,8 @@ void structVectorEditor :: v_showMembers () {
 			GuiLabel_setText (fieldData -> label, Melder_cat (strip_d (d_description -> name), U" [", ielement, U"]"));
 			GuiThing_show (fieldData -> label);
 
-			Daata object = * (Daata *) elementAddress;
-			if (! object) return;   // no button if no object
+			Data object = * (Data *) elementAddress;
+			if (object == NULL) return;   // no button if no object
 			if (! Class_getDescription (object -> classInfo)) return;   // no button if no description for this class
 			fieldData -> address = object;
 			fieldData -> description = Class_getDescription (object -> classInfo);
@@ -612,15 +606,15 @@ void structVectorEditor :: v_showMembers () {
 	}
 }
 
-static void VectorEditor_create (DataEditor root, const char32 *title, void *address,
+static VectorEditor VectorEditor_create (DataEditor root, const char32 *title, void *address,
 	Data_Description description, long minimum, long maximum)
 {
 	try {
 		autoVectorEditor me = Thing_new (VectorEditor);
 		my d_minimum = minimum;
 		my d_maximum = maximum;
-		DataSubEditor_init (me.get(), root, title, address, description);
-		return me.releaseToUser();
+		DataSubEditor_init (me.peek(), root, title, address, description);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Vector inspector window not created.");
 	}
@@ -661,7 +655,7 @@ void structMatrixEditor :: v_showMembers () {
 			autoMelderString buffer;
 			const char32 *text = singleTypeToText (elementAddress, type, d_description -> tagType, & buffer);
 			#if motif
-				XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], nullptr);   // TODO: change to GuiObject_size
+				XtVaSetValues (fieldData -> text -> d_widget, XmNcolumns, stringLengths [type], NULL);   // TODO: change to GuiObject_size
 			#endif
 			GuiText_setString (fieldData -> text, text);
 			GuiThing_show (fieldData -> text);
@@ -671,7 +665,7 @@ void structMatrixEditor :: v_showMembers () {
 	}
 }
 
-static void MatrixEditor_create (DataEditor root, const char32 *title, void *address,
+static MatrixEditor MatrixEditor_create (DataEditor root, const char32 *title, void *address,
 	Data_Description description, long min1, long max1, long min2, long max2)
 {
 	try {
@@ -680,8 +674,8 @@ static void MatrixEditor_create (DataEditor root, const char32 *title, void *add
 		my d_maximum = max1;
 		my d_min2 = min2;
 		my d_max2 = max2;
-		DataSubEditor_init (me.get(), root, title, address, description);
-		return me.releaseToUser();
+		DataSubEditor_init (me.peek(), root, title, address, description);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Matrix inspector window not created.");
 	}
@@ -697,7 +691,7 @@ static void ClassEditor_showMembers_recursive (ClassEditor me, ClassInfo klas) {
 	int classFieldsTraversed = 0;
 	while (Class_getDescription (parentClass) == description)
 		parentClass = parentClass -> parent;
-	if (parentClass != classDaata) {
+	if (parentClass != classData) {
 		ClassEditor_showMembers_recursive (me, parentClass);
 		classFieldsTraversed = Data_Description_countMembers (Class_getDescription (parentClass));
 		//Melder_casual (U"ClassEditor_showMembers_recursive: classFieldsTraversed = ", classFieldsTraversed);
@@ -706,20 +700,20 @@ static void ClassEditor_showMembers_recursive (ClassEditor me, ClassInfo klas) {
 }
 
 void structClassEditor :: v_showMembers () {
-	ClassEditor_showMembers_recursive (this, ((Daata) d_address) -> classInfo);
+	ClassEditor_showMembers_recursive (this, ((Data) d_address) -> classInfo);
 }
 
 static void ClassEditor_init (ClassEditor me, DataEditor root, const char32 *title, void *address, Data_Description description) {
-	if (! description)
+	if (description == NULL)
 		Melder_throw (U"Class ", Thing_className ((Thing) address), U" cannot be inspected.");
 	StructEditor_init (me, root, title, address, description);
 }
 
-static void ClassEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description) {
+static ClassEditor ClassEditor_create (DataEditor root, const char32 *title, void *address, Data_Description description) {
 	try {
 		autoClassEditor me = Thing_new (ClassEditor);
-		ClassEditor_init (me.get(), root, title, address, description);
-		return me.releaseToUser();
+		ClassEditor_init (me.peek(), root, title, address, description);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Class inspector window not created.");
 	}
@@ -729,84 +723,45 @@ static void ClassEditor_create (DataEditor root, const char32 *title, void *addr
 
 Thing_implement (DataEditor, ClassEditor, 0);
 
-static void DataEditor_destroyAllChildren (DataEditor me) {
-	/*
-		To destroy all children, we travel them from youngest to oldest,
-		because the array of children will change from under us:
-	*/
-	for (int i = my children.size; i >= 1; i --) {
-		/*
-			An optimization coming!
-			
-			Instead of
-				DataSubEditor child = my children [i];
-				forget (child);
-			we isolate the child from the parent before destroying the child,
-			so that the child won't try to remove the reference
-			that the parent has to her.
-			So first we make the parent forget the moribund child,
-			which prevents a dangling pointer:
-		*/
-		DataSubEditor child = my children.subtractItem_ref (i);
-		/*
-			That was fast, because subtracting the last item involves no shifting
-			of the remaining items.
-
-			Second, we make the child forget the parent,
-			so that the child won't try to remove the reference
-			that the parent had to her (but no longer has):
-		*/
-		child -> root = nullptr;
-		/*
-			The child is now fully isolated, so we are ready to destroy her:
-		*/
-		forget (child);
-		/*
-			This procedure was an optimization because if we just destroyed each child,
-			each child would remove itself from the array by (1) searching for itself
-			and (2) shifting the remaining children, both of which have a complexity
-			that is linear in the number of children. So we would end up with quadratic complexity,
-			whereas the procedure that we use above has linear complexity.
-			
-			This linear complexity makes this procedure good enough for `v_destroy()`
-			(where obtaining linear complexity would have been easy anyway),
-			and nice enough for `v_dataChanged()`.
-			
-			Something to note is that this procedure doesn't care whether the autoCollection
-			`children` owns its items or not.
-		*/
+void structDataEditor :: v_destroy () {
+
+	/* Tell my children not to notify me when they die. */
+
+	for (int i = 1; i <= d_children -> size; i ++) {
+		DataSubEditor child = (DataSubEditor) d_children -> item [i];
+		child -> d_root = NULL;
 	}
-}
 
-void structDataEditor :: v_destroy () noexcept {
-	DataEditor_destroyAllChildren (this);
+	forget (d_children);
 	DataEditor_Parent :: v_destroy ();
 }
 
 void structDataEditor :: v_dataChanged () {
 	/*
-		Someone else changed our data.
-		We know that the top-level data is still accessible,
-		so we update the top-level window to show the change:
-	*/
+	 * Someone else changed our data.
+	 * We know that the top-level data is still accessible.
+	 */
 	update (this);
 	/*
-		Changing the data may have changed any part of the *structure* of the data,
-		so we do not know if the data visible in any of the subeditors is still valid.
-		We follow the most straightforward solution, which is to simply close all the child windows,
-		which guarantees the removal of all dangling visual representations:
-	*/
-	DataEditor_destroyAllChildren (this);
+	 * But all structure may have changed,
+	 * so that we do not know if any of the subeditors contain valid data.
+	 */
+	for (int i = d_children -> size; i >= 1; i --) {
+		DataSubEditor subeditor = (DataSubEditor) d_children -> item [i];
+		Collection_subtractItem (d_children, i);
+		forget (subeditor);
+	}
 }
 
-autoDataEditor DataEditor_create (const char32 *title, Daata data) {
+DataEditor DataEditor_create (const char32 *title, Data data) {
 	try {
 		ClassInfo klas = data -> classInfo;
-		if (Class_getDescription (klas) == nullptr)
+		if (Class_getDescription (klas) == NULL)
 			Melder_throw (U"Class ", klas -> className, U" cannot be inspected.");
 		autoDataEditor me = Thing_new (DataEditor);
-		ClassEditor_init (me.get(), me.get(), title, data, Class_getDescription (klas));
-		return me;
+		my d_children = Collection_create (classDataSubEditor, 10);
+		ClassEditor_init (me.peek(), me.peek(), title, data, Class_getDescription (klas));
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Inspector window not created.");
 	}
diff --git a/sys/DataEditor.h b/sys/DataEditor.h
index 3c40cb1..7fba169 100644
--- a/sys/DataEditor.h
+++ b/sys/DataEditor.h
@@ -43,14 +43,14 @@ typedef struct structDataSubEditor_FieldData {
 #define kDataSubEditor_MAXNUM_ROWS  12
 
 Thing_define (DataSubEditor, Editor) {
-	DataEditor root;
+	DataEditor d_root;
 	void *d_address;
 	Data_Description d_description;
 	GuiScrollBar d_scrollBar;
 	int d_irow, d_topField, d_numberOfFields;
 	struct structDataSubEditor_FieldData d_fieldData [1 + kDataSubEditor_MAXNUM_ROWS];
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	bool v_scriptable ()
 		override { return false; }
@@ -94,15 +94,15 @@ Thing_define (ClassEditor, StructEditor) {
 };
 
 Thing_define (DataEditor, ClassEditor) {
-	CollectionOf <structDataSubEditor> children;
+	Collection d_children;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_dataChanged ()
 		override;
 };
 
-autoDataEditor DataEditor_create (const char32 *title, Daata data);
+DataEditor DataEditor_create (const char32 *title, Data data);
 
 /* End of file DataEditor.h */
 #endif
diff --git a/sys/DemoEditor.cpp b/sys/DemoEditor.cpp
index e78d236..3ededa4 100644
--- a/sys/DemoEditor.cpp
+++ b/sys/DemoEditor.cpp
@@ -1,6 +1,6 @@
 /* DemoEditor.cpp
  *
- * Copyright (C) 2009-2011,2013,2015,2016 Paul Boersma
+ * Copyright (C) 2009-2011,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,13 +24,14 @@
 
 Thing_implement (DemoEditor, Editor, 0);
 
-static DemoEditor theReferenceToTheOnlyDemoEditor;
+static DemoEditor theDemoEditor;
 
 /***** DemoEditor methods *****/
 
-void structDemoEditor :: v_destroy () noexcept {
+void structDemoEditor :: v_destroy () {
 	Melder_free (praatPicture);
-	theReferenceToTheOnlyDemoEditor = nullptr;
+	forget (graphics);
+	theDemoEditor = NULL;
 	DemoEditor_Parent :: v_destroy ();
 }
 
@@ -53,22 +54,25 @@ void structDemoEditor :: v_createMenus () {
 	DemoEditor_Parent :: v_createMenus ();
 }
 
-static void gui_drawingarea_cb_expose (DemoEditor me, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (DemoEditor);
+	(void) event;
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	/*
 	 * Erase the background. Don't record this erasure!
 	 */
-	Graphics_stopRecording (my graphics.get());   // the only place in Praat (the Picture window has a separate Graphics for erasing)?
-	Graphics_setColour (my graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my graphics.get(), Graphics_BLACK);
-	Graphics_startRecording (my graphics.get());
-	Graphics_play (my graphics.get(), my graphics.get());
+	Graphics_stopRecording (my graphics);   // the only place in Praat (the Picture window has a separate Graphics for erasing)?
+	Graphics_setColour (my graphics, Graphics_WHITE);
+	Graphics_setWindow (my graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+	Graphics_setColour (my graphics, Graphics_BLACK);
+	Graphics_startRecording (my graphics);
+	Graphics_play (my graphics, my graphics);
 }
 
-static void gui_drawingarea_cb_click (DemoEditor me, GuiDrawingArea_ClickEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (DemoEditor);
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	my clicked = true;
 	my keyPressed = false;
 	my x = event -> x;
@@ -80,8 +84,9 @@ static void gui_drawingarea_cb_click (DemoEditor me, GuiDrawingArea_ClickEvent e
 	my extraControlKeyPressed = event -> extraControlKeyPressed;
 }
 
-static void gui_drawingarea_cb_key (DemoEditor me, GuiDrawingArea_KeyEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_key (I, GuiDrawingAreaKeyEvent event) {
+	iam (DemoEditor);
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	my clicked = false;
 	my keyPressed = true;
 	my x = 0;
@@ -94,13 +99,14 @@ static void gui_drawingarea_cb_key (DemoEditor me, GuiDrawingArea_KeyEvent event
 	my extraControlKeyPressed = event -> extraControlKeyPressed;
 }
 
-static void gui_drawingarea_cb_resize (DemoEditor me, GuiDrawingArea_ResizeEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (DemoEditor);
+	if (my graphics == NULL) return;   // Could be the case in the very beginning.
 	trace (event -> width, U" ", event -> height);
-	Graphics_setWsViewport (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
-	Graphics_setWsWindow (my graphics.get(), 0.0, 100.0, 0.0, 100.0);
-	//Graphics_setViewport (my graphics.get(), 0.0, 100.0, 0.0, 100.0);
-	Graphics_updateWs (my graphics.get());
+	Graphics_setWsViewport (my graphics, 0, event -> width, 0, event -> height);
+	Graphics_setWsWindow (my graphics, 0, 100, 0, 100);
+	//Graphics_setViewport (my graphics, 0, 100, 0, 100);
+	Graphics_updateWs (my graphics);
 }
 
 void structDemoEditor :: v_createChildren () {
@@ -109,95 +115,93 @@ void structDemoEditor :: v_createChildren () {
 }
 
 void DemoEditor_init (DemoEditor me) {
-	Editor_init (me, 0, 0, 1024, 768, U"", nullptr);
+	Editor_init (me, 0, 0, 1024, 768, U"", NULL);
 	my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-	Graphics_setColour (my graphics.get(), Graphics_WHITE);
-	Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_fillRectangle (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-	Graphics_setColour (my graphics.get(), Graphics_BLACK);
-	Graphics_startRecording (my graphics.get());
-	Graphics_setWsViewport (my graphics.get(), 0.0, GuiControl_getWidth  (my drawingArea),
-	                                           0.0, GuiControl_getHeight (my drawingArea));
-	Graphics_setWsWindow (my graphics.get(), 0.0, 100.0, 0.0, 100.0);
-	Graphics_setViewport (my graphics.get(), 0.0, 100.0, 0.0, 100.0);
-	Graphics_updateWs (my graphics.get());
+	Graphics_setColour (my graphics, Graphics_WHITE);
+	Graphics_setWindow (my graphics, 0, 1, 0, 1);
+	Graphics_fillRectangle (my graphics, 0, 1, 0, 1);
+	Graphics_setColour (my graphics, Graphics_BLACK);
+	Graphics_startRecording (my graphics);
+	Graphics_setWsViewport (my graphics, 0, GuiControl_getWidth  (my drawingArea),
+	                                     0, GuiControl_getHeight (my drawingArea));
+	Graphics_setWsWindow (my graphics, 0, 100, 0, 100);
+	Graphics_setViewport (my graphics, 0, 100, 0, 100);
+	Graphics_updateWs (my graphics);
 }
 
-autoDemoEditor DemoEditor_create () {
+DemoEditor DemoEditor_create () {
 	try {
 		autoDemoEditor me = Thing_new (DemoEditor);
-		DemoEditor_init (me.get());
-		return me;
+		DemoEditor_init (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Demo window not created.");
 	}
 }
 
-void Demo_open () {
-	if (Melder_batch) {
-		/*
-		 * Batch scripts have to be able to run demos.
-		 */
-		//Melder_batch = false;
-	}
-	if (! theReferenceToTheOnlyDemoEditor) {
-		autoDemoEditor editor = DemoEditor_create ();
-		Melder_assert (editor);
-		//GuiObject_show (editor -> d_windowForm);
-		editor -> praatPicture = Melder_calloc_f (structPraatPicture, 1);
-		theCurrentPraatPicture = (PraatPicture) editor -> praatPicture;
-		theCurrentPraatPicture -> graphics = editor -> graphics.get();
-		theCurrentPraatPicture -> font = kGraphics_font_HELVETICA;
-		theCurrentPraatPicture -> fontSize = 10;
-		theCurrentPraatPicture -> lineType = Graphics_DRAWN;
-		theCurrentPraatPicture -> colour = Graphics_BLACK;
-		theCurrentPraatPicture -> lineWidth = 1.0;
-		theCurrentPraatPicture -> arrowSize = 1.0;
-		theCurrentPraatPicture -> speckleSize = 1.0;
-		theCurrentPraatPicture -> x1NDC = 0.0;
-		theCurrentPraatPicture -> x2NDC = 100.0;
-		theCurrentPraatPicture -> y1NDC = 0.0;
-		theCurrentPraatPicture -> y2NDC = 100.0;
-		theReferenceToTheOnlyDemoEditor = editor.get();
-		editor.releaseToUser();
-	}
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput)
-		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
-			U"Please click or type into the Demo window or close it.");
-	theCurrentPraatPicture = (PraatPicture) theReferenceToTheOnlyDemoEditor -> praatPicture;
+void Demo_open (void) {
+	#ifndef CONSOLE_APPLICATION
+		if (Melder_batch) {
+			/*
+			 * Batch scripts have to be able to run demos.
+			 */
+			//Melder_batch = false;
+		}
+		if (theDemoEditor == NULL) {
+			theDemoEditor = DemoEditor_create ();
+			Melder_assert (theDemoEditor != NULL);
+			//GuiObject_show (theDemoEditor -> d_windowForm);
+			theDemoEditor -> praatPicture = Melder_calloc_f (structPraatPicture, 1);
+			theCurrentPraatPicture = (PraatPicture) theDemoEditor -> praatPicture;
+			theCurrentPraatPicture -> graphics = theDemoEditor -> graphics;
+			theCurrentPraatPicture -> font = kGraphics_font_HELVETICA;
+			theCurrentPraatPicture -> fontSize = 10;
+			theCurrentPraatPicture -> lineType = Graphics_DRAWN;
+			theCurrentPraatPicture -> colour = Graphics_BLACK;
+			theCurrentPraatPicture -> lineWidth = 1.0;
+			theCurrentPraatPicture -> arrowSize = 1.0;
+			theCurrentPraatPicture -> speckleSize = 1.0;
+			theCurrentPraatPicture -> x1NDC = 0;
+			theCurrentPraatPicture -> x2NDC = 100;
+			theCurrentPraatPicture -> y1NDC = 0;
+			theCurrentPraatPicture -> y2NDC = 100;
+		}
+		if (theDemoEditor -> waitingForInput)
+			Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
+				U"Please click or type into the Demo window or close it.");
+		theCurrentPraatPicture = (PraatPicture) theDemoEditor -> praatPicture;
+	#endif
 }
 
-void Demo_close () {
+void Demo_close (void) {
 	theCurrentPraatPicture = & theForegroundPraatPicture;
 }
 
 int Demo_windowTitle (const char32 *title) {
 	autoDemoOpen demo;
-	Thing_setName (theReferenceToTheOnlyDemoEditor, title);
+	Thing_setName (theDemoEditor, title);
 	return 1;
 }
 
-int Demo_show () {
-	if (! theReferenceToTheOnlyDemoEditor) return 0;
+int Demo_show (void) {
+	if (theDemoEditor == NULL) return 0;
 	autoDemoOpen demo;
-	GuiThing_show (theReferenceToTheOnlyDemoEditor -> d_windowForm);
-	#if defined (macintosh) && ! useCarbon
-		Graphics_updateWs (theReferenceToTheOnlyDemoEditor -> graphics.get());
-	#endif
-	GuiShell_drain (theReferenceToTheOnlyDemoEditor -> d_windowForm);
+	GuiThing_show (theDemoEditor -> d_windowForm);
+	GuiShell_drain (theDemoEditor -> d_windowForm);
 	return 1;
 }
 
 void Demo_waitForInput (Interpreter interpreter) {
-	if (! theReferenceToTheOnlyDemoEditor) return;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+	if (theDemoEditor == NULL) return;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	//GuiObject_show (theReferenceToTheOnlyDemoEditor -> d_windowForm);
-	theReferenceToTheOnlyDemoEditor -> clicked = false;
-	theReferenceToTheOnlyDemoEditor -> keyPressed = false;
-	theReferenceToTheOnlyDemoEditor -> waitingForInput = true;
+	//GuiObject_show (theDemoEditor -> d_windowForm);
+	theDemoEditor -> clicked = false;
+	theDemoEditor -> keyPressed = false;
+	theDemoEditor -> waitingForInput = true;
+	#if ! defined (CONSOLE_APPLICATION)
 	{// scope
 		autoMelderSaveDefaultDir saveDir;
 		bool wasBackgrounding = Melder_backgrounding;
@@ -206,162 +210,154 @@ void Demo_waitForInput (Interpreter interpreter) {
 			#if gtk
 				do {
 					gtk_main_iteration ();
-				} while (! theReferenceToTheOnlyDemoEditor -> clicked &&
-				         ! theReferenceToTheOnlyDemoEditor -> keyPressed &&
-						 ! theReferenceToTheOnlyDemoEditor -> userWantsToClose);
+				} while (! theDemoEditor -> clicked && ! theDemoEditor -> keyPressed && ! theDemoEditor -> userWantsToClose);
 			#elif cocoa
 				do {
 					NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-					[theReferenceToTheOnlyDemoEditor -> d_windowForm -> d_cocoaShell   flushWindow];
-					Graphics_updateWs (theReferenceToTheOnlyDemoEditor -> graphics.get());   // make sure that even texts will be drawn
+					[theDemoEditor -> d_windowForm -> d_cocoaWindow   flushWindow];
 					NSEvent *nsEvent = [NSApp
 						nextEventMatchingMask: NSAnyEventMask
 						untilDate: [NSDate distantFuture]   // wait
 						inMode: NSDefaultRunLoopMode
 						dequeue: YES
 					];
-					Melder_assert (nsEvent);
+					Melder_assert (nsEvent != NULL);
 					[NSApp  sendEvent: nsEvent];
 					[NSApp  updateWindows];   // called automatically?
 					[pool release];
-				} while (! theReferenceToTheOnlyDemoEditor -> clicked &&
-				         ! theReferenceToTheOnlyDemoEditor -> keyPressed &&
-						 ! theReferenceToTheOnlyDemoEditor -> userWantsToClose);
+				} while (! theDemoEditor -> clicked && ! theDemoEditor -> keyPressed && ! theDemoEditor -> userWantsToClose);
 			#elif defined (_WIN32)
 				do {
 					XEvent event;
 					GuiNextEvent (& event);
 					XtDispatchEvent (& event);
-				} while (! theReferenceToTheOnlyDemoEditor -> clicked &&
-				         ! theReferenceToTheOnlyDemoEditor -> keyPressed &&
-						 ! theReferenceToTheOnlyDemoEditor -> userWantsToClose);
+				} while (! theDemoEditor -> clicked && ! theDemoEditor -> keyPressed && ! theDemoEditor -> userWantsToClose);
 			#elif defined (macintosh)
 				do {
 					XEvent event;
 					GuiNextEvent (& event);
 					XtDispatchEvent (& event);
-				} while (! theReferenceToTheOnlyDemoEditor -> clicked &&
-				         ! theReferenceToTheOnlyDemoEditor -> keyPressed &&
-						 ! theReferenceToTheOnlyDemoEditor -> userWantsToClose);
+				} while (! theDemoEditor -> clicked && ! theDemoEditor -> keyPressed && ! theDemoEditor -> userWantsToClose);
 			#endif
 		} catch (MelderError) {
 			Melder_flushError (U"An error made it to the outer level in the Demo window; should not occur! Please write to paul.boersma at uva.nl");
 		}
 		if (wasBackgrounding) praat_background ();
 	}
-	theReferenceToTheOnlyDemoEditor -> waitingForInput = false;
-	if (theReferenceToTheOnlyDemoEditor -> userWantsToClose) {
+	#endif
+	theDemoEditor -> waitingForInput = false;
+	if (theDemoEditor -> userWantsToClose) {
 		Interpreter_stop (interpreter);
-		forget (theReferenceToTheOnlyDemoEditor);
+		forget (theDemoEditor);
 		Melder_throw (U"You interrupted the script.");
 	}
 }
 
-bool Demo_clicked () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_clicked (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> clicked;
+	return theDemoEditor -> clicked;
 }
 
-double Demo_x () {
-	if (! theReferenceToTheOnlyDemoEditor) return NUMundefined;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+double Demo_x (void) {
+	if (theDemoEditor == NULL) return NUMundefined;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	trace (U"NDC before: ", theReferenceToTheOnlyDemoEditor -> graphics -> d_x1NDC, U" ", theReferenceToTheOnlyDemoEditor -> graphics -> d_x2NDC);
-	Graphics_setInner (theReferenceToTheOnlyDemoEditor -> graphics.get());
-	trace (U"NDC after: ", theReferenceToTheOnlyDemoEditor -> graphics -> d_x1NDC, U" ", theReferenceToTheOnlyDemoEditor -> graphics -> d_x2NDC);
+	trace (U"NDC before: ", theDemoEditor -> graphics -> d_x1NDC, U" ", theDemoEditor -> graphics -> d_x2NDC);
+	Graphics_setInner (theDemoEditor -> graphics);
+	trace (U"NDC after: ", theDemoEditor -> graphics -> d_x1NDC, U" ", theDemoEditor -> graphics -> d_x2NDC);
 	double xWC, yWC;
-	trace (U"DC: x ", theReferenceToTheOnlyDemoEditor -> x, U", y ", theReferenceToTheOnlyDemoEditor -> y);
-	Graphics_DCtoWC (theReferenceToTheOnlyDemoEditor -> graphics.get(), theReferenceToTheOnlyDemoEditor -> x, theReferenceToTheOnlyDemoEditor -> y, & xWC, & yWC);
+	trace (U"DC: x ", theDemoEditor -> x, U", y ", theDemoEditor -> y);
+	Graphics_DCtoWC (theDemoEditor -> graphics, theDemoEditor -> x, theDemoEditor -> y, & xWC, & yWC);
 	trace (U"WC: x ", xWC, U", y ", yWC);
-	Graphics_unsetInner (theReferenceToTheOnlyDemoEditor -> graphics.get());
+	Graphics_unsetInner (theDemoEditor -> graphics);
 	return xWC;
 }
 
-double Demo_y () {
-	if (! theReferenceToTheOnlyDemoEditor) return NUMundefined;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+double Demo_y (void) {
+	if (theDemoEditor == NULL) return NUMundefined;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	Graphics_setInner (theReferenceToTheOnlyDemoEditor -> graphics.get());
+	Graphics_setInner (theDemoEditor -> graphics);
 	double xWC, yWC;
-	Graphics_DCtoWC (theReferenceToTheOnlyDemoEditor -> graphics.get(), theReferenceToTheOnlyDemoEditor -> x, theReferenceToTheOnlyDemoEditor -> y, & xWC, & yWC);
-	Graphics_unsetInner (theReferenceToTheOnlyDemoEditor -> graphics.get());
+	Graphics_DCtoWC (theDemoEditor -> graphics, theDemoEditor -> x, theDemoEditor -> y, & xWC, & yWC);
+	Graphics_unsetInner (theDemoEditor -> graphics);
 	return yWC;
 }
 
-bool Demo_keyPressed () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_keyPressed (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> keyPressed;
+	return theDemoEditor -> keyPressed;
 }
 
-char32 Demo_key () {
-	if (! theReferenceToTheOnlyDemoEditor) return U'\0';
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+char32 Demo_key (void) {
+	if (theDemoEditor == NULL) return 0;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> key;
+	return theDemoEditor -> key;
 }
 
-bool Demo_shiftKeyPressed () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_shiftKeyPressed (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> shiftKeyPressed;
+	return theDemoEditor -> shiftKeyPressed;
 }
 
-bool Demo_commandKeyPressed () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_commandKeyPressed (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> commandKeyPressed;
+	return theDemoEditor -> commandKeyPressed;
 }
 
-bool Demo_optionKeyPressed () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_optionKeyPressed (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> optionKeyPressed;
+	return theDemoEditor -> optionKeyPressed;
 }
 
-bool Demo_extraControlKeyPressed () {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+bool Demo_extraControlKeyPressed (void) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return theReferenceToTheOnlyDemoEditor -> extraControlKeyPressed;
+	return theDemoEditor -> extraControlKeyPressed;
 }
 
 bool Demo_input (const char32 *keys) {
-	if (! theReferenceToTheOnlyDemoEditor) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+	if (theDemoEditor == NULL) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
-	return str32chr (keys, theReferenceToTheOnlyDemoEditor -> key) != nullptr;
+	return str32chr (keys, theDemoEditor -> key) != NULL;
 }
 
 bool Demo_clickedIn (double left, double right, double bottom, double top) {
-	if (! theReferenceToTheOnlyDemoEditor || ! theReferenceToTheOnlyDemoEditor -> clicked) return false;
-	if (theReferenceToTheOnlyDemoEditor -> waitingForInput) {
+	if (theDemoEditor == NULL || ! theDemoEditor -> clicked) return false;
+	if (theDemoEditor -> waitingForInput) {
 		Melder_throw (U"You cannot work with the Demo window while it is waiting for input. "
 			U"Please click or type into the Demo window or close it.");
 	}
diff --git a/sys/DemoEditor.h b/sys/DemoEditor.h
index 86582e2..f4c21d9 100644
--- a/sys/DemoEditor.h
+++ b/sys/DemoEditor.h
@@ -23,14 +23,14 @@
 
 Thing_define (DemoEditor, Editor) {
 	GuiDrawingArea drawingArea;
-	autoGraphics graphics;
+	Graphics graphics;
 	void *praatPicture;
 	bool clicked, keyPressed, shiftKeyPressed, commandKeyPressed, optionKeyPressed, extraControlKeyPressed;
 	long x, y;
 	char32 key;
 	bool waitingForInput, userWantsToClose, fullScreen;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
@@ -49,27 +49,27 @@ Thing_define (DemoEditor, Editor) {
 };
 
 void DemoEditor_init (DemoEditor me);
-autoDemoEditor DemoEditor_create ();
+DemoEditor DemoEditor_create ();
 
-void Demo_open ();
-void Demo_close ();
+void Demo_open (void);
+void Demo_close (void);
 struct autoDemoOpen {
 	autoDemoOpen () { Demo_open (); }
 	~autoDemoOpen () { Demo_close (); }
 };
 
 int Demo_windowTitle (const char32 *title);
-int Demo_show ();
+int Demo_show (void);
 void Demo_waitForInput (Interpreter interpreter);
-bool Demo_clicked ();
-double Demo_x ();
-double Demo_y ();
-bool Demo_keyPressed ();
-char32 Demo_key ();
-bool Demo_shiftKeyPressed ();
-bool Demo_commandKeyPressed ();
-bool Demo_optionKeyPressed ();
-bool Demo_extraControlKeyPressed ();
+bool Demo_clicked (void);
+double Demo_x (void);
+double Demo_y (void);
+bool Demo_keyPressed (void);
+char32 Demo_key (void);
+bool Demo_shiftKeyPressed (void);
+bool Demo_commandKeyPressed (void);
+bool Demo_optionKeyPressed (void);
+bool Demo_extraControlKeyPressed (void);
 /* Shortcuts: */
 bool Demo_input (const char32 *keys);
 bool Demo_clickedIn (double left, double right, double bottom, double top);
diff --git a/sys/Editor.cpp b/sys/Editor.cpp
index f93e7ee..4203ebd 100644
--- a/sys/Editor.cpp
+++ b/sys/Editor.cpp
@@ -1,6 +1,6 @@
 /* Editor.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brausse
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brausse
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -42,9 +42,10 @@ Thing_implement (Editor, Thing, 0);
 
 Thing_implement (EditorCommand, Thing, 0);
 
-void structEditorCommand :: v_destroy () noexcept {
+void structEditorCommand :: v_destroy () {
 	Melder_free (our itemTitle);
 	Melder_free (our script);
+	forget (our d_uiform);
 	EditorCommand_Parent :: v_destroy ();
 }
 
@@ -52,20 +53,22 @@ void structEditorCommand :: v_destroy () noexcept {
 
 Thing_implement (EditorMenu, Thing, 0);
 
-void structEditorMenu :: v_destroy () noexcept {
+void structEditorMenu :: v_destroy () {
 	Melder_free (our menuTitle);
+	forget (our commands);
 	EditorMenu_Parent :: v_destroy ();
 }
 
 /********** functions **********/
 
-static void commonCallback (EditorCommand me, GuiMenuItemEvent /* event */) {
+static void commonCallback (GUI_ARGS) {
+	GUI_IAM (EditorCommand);
 	if (my d_editor && my d_editor -> v_scriptable () && ! str32str (my itemTitle, U"...")) {
 		UiHistory_write (U"\n");
 		UiHistory_write_colonize (my itemTitle);
 	}
 	try {
-		my commandCallback (my d_editor, me, nullptr, 0, nullptr, nullptr, nullptr);
+		my commandCallback (my d_editor, me, NULL, 0, NULL, NULL, NULL);
 	} catch (MelderError) {
 		if (! Melder_hasError (U"Script exited.")) {
 			Melder_appendError (U"Menu command \"", my itemTitle, U"\" not completed.");
@@ -74,19 +77,20 @@ static void commonCallback (EditorCommand me, GuiMenuItemEvent /* event */) {
 	}
 }
 
-GuiMenuItem EditorMenu_addCommand (EditorMenu me, const char32 *itemTitle /* cattable */, long flags, EditorCommandCallback commandCallback)
+GuiMenuItem EditorMenu_addCommand (EditorMenu me, const char32 *itemTitle /* cattable */, long flags,
+	void (*commandCallback) (Editor me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter))
 {
 	autoEditorCommand thee = Thing_new (EditorCommand);
 	thy d_editor = my d_editor;
 	thy menu = me;
 	thy itemTitle = Melder_dup (itemTitle);
 	thy itemWidget =
-		! commandCallback ? GuiMenu_addSeparator (my menuWidget) :
-		flags & Editor_HIDDEN ? nullptr :
-		GuiMenu_addItem (my menuWidget, itemTitle, flags, commonCallback, thee.get());   // DANGLE BUG: me can be killed by Collection_addItem(), but EditorCommand::destroy doesn't remove the item
+		commandCallback == NULL ? GuiMenu_addSeparator (my menuWidget) :
+		flags & Editor_HIDDEN ? NULL :
+		GuiMenu_addItem (my menuWidget, itemTitle, flags, commonCallback, thee.peek());   // DANGLE BUG: me can be killed by Collection_addItem(), but EditorCommand::destroy doesn't remove the item
 	thy commandCallback = commandCallback;
 	GuiMenuItem result = thy itemWidget;
-	my commands. addItem_move (thee.move());
+	Collection_addItem (my commands, thee.transfer());
 	return result;
 }
 
@@ -97,17 +101,21 @@ EditorMenu Editor_addMenu (Editor me, const char32 *menuTitle, long flags) {
 	thy d_editor = me;
 	thy menuTitle = Melder_dup (menuTitle);
 	thy menuWidget = GuiMenu_createInWindow (my d_windowForm, menuTitle, flags);
-	return my menus. addItem_move (thee.move());
+	thy commands = Ordered_create ();
+	EditorMenu result = thee.peek();
+	Collection_addItem (my menus, thee.transfer());
+	return result;
 }
 
 /*GuiObject EditorMenu_getMenuWidget (EditorMenu me) { return my menuWidget; }*/
 
-GuiMenuItem Editor_addCommand (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags, EditorCommandCallback commandCallback)
+GuiMenuItem Editor_addCommand (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags,
+	void (*commandCallback) (Editor me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter))
 {
 	try {
-		long numberOfMenus = my menus.size;
+		long numberOfMenus = my menus -> size;
 		for (long imenu = 1; imenu <= numberOfMenus; imenu ++) {
-			EditorMenu menu = my menus.at [imenu];
+			EditorMenu menu = (EditorMenu) my menus -> item [imenu];
 			if (str32equ (menuTitle, menu -> menuTitle))
 				return EditorMenu_addCommand (menu, itemTitle, flags, commandCallback);
 		}
@@ -117,25 +125,28 @@ GuiMenuItem Editor_addCommand (Editor me, const char32 *menuTitle, const char32
 	}
 }
 
-static void Editor_scriptCallback (Editor me, EditorCommand cmd, UiForm /* sendingForm */,
-	int /* narg */, Stackel /* args */, const char32 * /* sendingString */, Interpreter /* interpreter */)
-{
+static void Editor_scriptCallback (Editor me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter) {
+	(void) sendingForm;
+	(void) narg;
+	(void) args;
+	(void) sendingString;
+	(void) interpreter;
 	DO_RunTheScriptFromAnyAddedEditorCommand (me, cmd -> script);
 }
 
 GuiMenuItem Editor_addCommandScript (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags,
 	const char32 *script)
 {
-	long numberOfMenus = my menus.size;
+	long numberOfMenus = my menus -> size;
 	for (long imenu = 1; imenu <= numberOfMenus; imenu ++) {
-		EditorMenu menu = my menus.at [imenu];
+		EditorMenu menu = (EditorMenu) my menus -> item [imenu];
 		if (str32equ (menuTitle, menu -> menuTitle)) {
 			autoEditorCommand cmd = Thing_new (EditorCommand);
 			cmd -> d_editor = me;
 			cmd -> menu = menu;
 			cmd -> itemTitle = Melder_dup_f (itemTitle);
-			cmd -> itemWidget = script == nullptr ? GuiMenu_addSeparator (menu -> menuWidget) :
-				GuiMenu_addItem (menu -> menuWidget, itemTitle, flags, commonCallback, cmd.get());   // DANGLE BUG
+			cmd -> itemWidget = script == NULL ? GuiMenu_addSeparator (menu -> menuWidget) :
+				GuiMenu_addItem (menu -> menuWidget, itemTitle, flags, commonCallback, cmd.peek());   // DANGLE BUG
 			cmd -> commandCallback = Editor_scriptCallback;
 			if (str32len (script) == 0) {
 				cmd -> script = Melder_dup_f (U"");
@@ -145,7 +156,7 @@ GuiMenuItem Editor_addCommandScript (Editor me, const char32 *menuTitle, const c
 				cmd -> script = Melder_dup_f (Melder_fileToPath (& file));
 			}
 			GuiMenuItem result = cmd -> itemWidget;
-			menu -> commands. addItem_move (cmd.move());
+			Collection_addItem (menu -> commands, cmd.transfer());
 			return result;
 		}
 	}
@@ -154,13 +165,13 @@ GuiMenuItem Editor_addCommandScript (Editor me, const char32 *menuTitle, const c
 		U"Command \"", itemTitle, U"\" not inserted in menu \"", menuTitle, U".\n"
 		U"To fix this, go to Praat->Preferences->Buttons->Editors, and remove the script from this menu.\n"
 		U"You may want to install the script in a different menu.");
-	return nullptr;
+	return NULL;
 }
 
 void Editor_setMenuSensitive (Editor me, const char32 *menuTitle, int sensitive) {
-	int numberOfMenus = my menus.size;
+	int numberOfMenus = my menus -> size;
 	for (int imenu = 1; imenu <= numberOfMenus; imenu ++) {
-		EditorMenu menu = my menus.at [imenu];
+		EditorMenu menu = (EditorMenu) my menus -> item [imenu];
 		if (str32equ (menuTitle, menu -> menuTitle)) {
 			GuiThing_setSensitive (menu -> menuWidget, sensitive);
 			return;
@@ -169,13 +180,13 @@ void Editor_setMenuSensitive (Editor me, const char32 *menuTitle, int sensitive)
 }
 
 EditorCommand Editor_getMenuCommand (Editor me, const char32 *menuTitle, const char32 *itemTitle) {
-	int numberOfMenus = my menus.size;
+	int numberOfMenus = my menus -> size;
 	for (int imenu = 1; imenu <= numberOfMenus; imenu ++) {
-		EditorMenu menu = my menus.at [imenu];
+		EditorMenu menu = (EditorMenu) my menus -> item [imenu];
 		if (str32equ (menuTitle, menu -> menuTitle)) {
-			int numberOfCommands = menu -> commands.size, icommand;
+			int numberOfCommands = menu -> commands -> size, icommand;
 			for (icommand = 1; icommand <= numberOfCommands; icommand ++) {
-				EditorCommand command = menu -> commands.at [icommand];
+				EditorCommand command = (EditorCommand) menu -> commands -> item [icommand];
 				if (str32equ (itemTitle, command -> itemTitle))
 					return command;
 			}
@@ -185,14 +196,14 @@ EditorCommand Editor_getMenuCommand (Editor me, const char32 *menuTitle, const c
 }
 
 void Editor_doMenuCommand (Editor me, const char32 *commandTitle, int narg, Stackel args, const char32 *arguments, Interpreter interpreter) {
-	int numberOfMenus = my menus.size;
+	int numberOfMenus = my menus -> size;
 	for (int imenu = 1; imenu <= numberOfMenus; imenu ++) {
-		EditorMenu menu = my menus.at [imenu];
-		long numberOfCommands = menu -> commands.size;
+		EditorMenu menu = (EditorMenu) my menus -> item [imenu];
+		long numberOfCommands = menu -> commands -> size;
 		for (long icommand = 1; icommand <= numberOfCommands; icommand ++) {
-			EditorCommand command = menu -> commands.at [icommand];
+			EditorCommand command = (EditorCommand) menu -> commands -> item [icommand];
 			if (str32equ (commandTitle, command -> itemTitle)) {
-				command -> commandCallback (me, command, nullptr, narg, args, arguments, interpreter);
+				command -> commandCallback (me, command, NULL, narg, args, arguments, interpreter);
 				return;
 			}
 		}
@@ -202,15 +213,14 @@ void Editor_doMenuCommand (Editor me, const char32 *commandTitle, int narg, Stac
 
 /********** class Editor **********/
 
-void structEditor :: v_destroy () noexcept {
+void structEditor :: v_destroy () {
 	trace (U"enter");
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	/*
 	 * The following command must be performed before the shell is destroyed.
 	 * Otherwise, we would be forgetting dangling command dialogs here.
 	 */
-	our menus.removeAllItems();
-
+	forget (our menus);
 	Editor_broadcastDestruction (this);
 	if (our d_windowForm) {
 		#if gtk
@@ -219,9 +229,9 @@ void structEditor :: v_destroy () noexcept {
 				gtk_widget_destroy (GTK_WIDGET (our d_windowForm -> d_gtkWindow));
 			}
 		#elif cocoa
-			if (our d_windowForm -> d_cocoaShell) {
-				NSWindow *cocoaWindow = our d_windowForm -> d_cocoaShell;
-				//d_windowForm -> d_cocoaShell = nullptr;
+			if (our d_windowForm -> d_cocoaWindow) {
+				NSWindow *cocoaWindow = our d_windowForm -> d_cocoaWindow;
+				//d_windowForm -> d_cocoaWindow = NULL;
 				[cocoaWindow close];
 			}
 		#elif motif
@@ -230,6 +240,7 @@ void structEditor :: v_destroy () noexcept {
 			}
 		#endif
 	}
+	forget (our previousData);
 	if (our d_ownData) forget (our data);
 	Melder_free (our callbackSocket);
 	Editor_Parent :: v_destroy ();
@@ -238,7 +249,7 @@ void structEditor :: v_destroy () noexcept {
 void structEditor :: v_info () {
 	MelderInfo_writeLine (U"Editor type: ", Thing_className (this));
 	MelderInfo_writeLine (U"Editor name: ", our name ? our name : U"<no name>");
-	time_t today = time (nullptr);
+	time_t today = time (NULL);
 	MelderInfo_writeLine (U"Date: ", Melder_peek8to32 (ctime (& today)));   // includes a newline
 	if (our data) {
 		MelderInfo_writeLine (U"Data type: ", our data -> classInfo -> className);
@@ -253,15 +264,17 @@ void structEditor :: v_nameChanged () {
 
 void structEditor :: v_saveData () {
 	if (! our data) return;
+	forget (our previousData);
 	our previousData = Data_copy (our data);
 }
 
 void structEditor :: v_restoreData () {
 	if (our data && our previousData)
-		Thing_swap (our data, our previousData.get());
+		Thing_swap (our data, our previousData);
 }
 
-static void menu_cb_sendBackToCallingProgram (Editor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_sendBackToCallingProgram (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	if (my data) {
 		extern structMelderDir praatDir;
 		structMelderFile file = { 0 };
@@ -272,11 +285,13 @@ static void menu_cb_sendBackToCallingProgram (Editor me, EDITOR_ARGS_DIRECT) {
 	my v_goAway ();
 }
 
-static void menu_cb_close (Editor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_close (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	my v_goAway ();
 }
 
-static void menu_cb_undo (Editor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_undo (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	my v_restoreData ();
 	if (str32nequ (my undoText, U"Undo", 4)) my undoText [0] = U'R', my undoText [1] = U'e';
 	else if (str32nequ (my undoText, U"Redo", 4)) my undoText [0] = U'U', my undoText [1] = U'n';
@@ -287,7 +302,7 @@ static void menu_cb_undo (Editor me, EDITOR_ARGS_DIRECT) {
 		[(GuiCocoaMenuItem *) my undoButton -> d_widget   setTitle: (NSString *) Melder_peek32toCfstring (my undoText)];
 	#elif motif
 		char *text_utf8 = Melder_peek32to8 (my undoText);
-		XtVaSetValues (my undoButton -> d_widget, XmNlabelString, text_utf8, nullptr);
+		XtVaSetValues (my undoButton -> d_widget, XmNlabelString, text_utf8, NULL);
 	#endif
 	/*
 	 * Send a message to myself (e.g., I will redraw myself).
@@ -299,22 +314,24 @@ static void menu_cb_undo (Editor me, EDITOR_ARGS_DIRECT) {
 	Editor_broadcastDataChanged (me);
 }
 
-static void menu_cb_searchManual (Editor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_searchManual (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	Melder_search ();
 }
 
-static void menu_cb_newScript (Editor me, EDITOR_ARGS_DIRECT) {
-	autoScriptEditor scriptEditor = ScriptEditor_createFromText (me, nullptr);
-	scriptEditor.releaseToUser();
+static void menu_cb_newScript (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
+	(void) ScriptEditor_createFromText (me, NULL);
 }
 
-static void menu_cb_openScript (Editor me, EDITOR_ARGS_DIRECT) {
-	autoScriptEditor scriptEditor = ScriptEditor_createFromText (me, nullptr);
-	TextEditor_showOpen (scriptEditor.get());
-	scriptEditor.releaseToUser();
+static void menu_cb_openScript (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
+	autoScriptEditor scriptEditor = ScriptEditor_createFromText (me, NULL);
+	TextEditor_showOpen (scriptEditor.transfer());
 }
 
-void structEditor :: v_createMenuItems_file (EditorMenu /* menu */) {
+void structEditor :: v_createMenuItems_file (EditorMenu menu) {
+	(void) menu;
 }
 
 void structEditor :: v_createMenuItems_edit (EditorMenu menu) {
@@ -322,11 +339,13 @@ void structEditor :: v_createMenuItems_edit (EditorMenu menu) {
 		our undoButton = EditorMenu_addCommand (menu, U"Cannot undo", GuiMenu_INSENSITIVE + 'Z', menu_cb_undo);
 }
 
-static void menu_cb_settingsReport (Editor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_settingsReport (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	Thing_info (me);
 }
 
-static void menu_cb_info (Editor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_info (EDITOR_ARGS) {
+	EDITOR_IAM (Editor);
 	if (my data) Thing_info (my data);
 }
 
@@ -357,7 +376,7 @@ void structEditor :: v_createMenus () {
 
 void structEditor :: v_form_pictureWindow (EditorCommand cmd) {
 	LABEL (U"", U"Picture window:")
-	BOOLEAN (U"Erase first", true);
+	BOOLEAN (U"Erase first", 1);
 }
 void structEditor :: v_ok_pictureWindow (EditorCommand cmd) {
 	SET_INTEGER (U"Erase first", pref_picture_eraseFirst ());
@@ -367,7 +386,7 @@ void structEditor :: v_do_pictureWindow (EditorCommand cmd) {
 }
 
 void structEditor :: v_form_pictureMargins (EditorCommand cmd) {
-	UiField radio;
+	Any radio = 0;
 	LABEL (U"", U"Margins:")
 	OPTIONMENU_ENUM (U"Write name at top", kEditor_writeNameAtTop, kEditor_writeNameAtTop_DEFAULT);
 }
@@ -378,14 +397,15 @@ void structEditor :: v_do_pictureMargins (EditorCommand cmd) {
 	pref_picture_writeNameAtTop () = GET_ENUM (kEditor_writeNameAtTop, U"Write name at top");
 }
 
-static void gui_window_cb_goAway (Editor me) {
-	Melder_assert (me);
+static void gui_window_cb_goAway (I) {
+	iam (Editor);
+	Melder_assert (me != NULL);
 	Melder_assert (Thing_isa (me, classEditor));
 	my v_goAway ();
 }
 
 void praat_addCommandsToEditor (Editor me);
-void Editor_init (Editor me, int x, int y, int width, int height, const char32 *title, Daata data) {
+void Editor_init (Editor me, int x, int y, int width, int height, const char32 *title, Data data) {
 	double xmin, ymin, widthmax, heightmax;
 	Gui_getWindowPositioningBounds (& xmin, & ymin, & widthmax, & heightmax);
 	/*
@@ -460,6 +480,7 @@ void Editor_init (Editor me, int x, int y, int width, int height, const char32 *
 	/* Create menus. */
 
 	if (my v_hasMenuBar ()) {
+		my menus = Ordered_create ();
 		GuiWindow_addMenuBar (my d_windowForm);
 	}
 
@@ -469,7 +490,7 @@ void Editor_init (Editor me, int x, int y, int width, int height, const char32 *
 		my v_createMenus ();
 		EditorMenu helpMenu = Editor_addMenu (me, U"Help", 0);
 		my v_createHelpMenuItems (helpMenu);
-		EditorMenu_addCommand (helpMenu, U"-- search --", 0, nullptr);
+		EditorMenu_addCommand (helpMenu, U"-- search --", 0, NULL);
 		my searchButton = EditorMenu_addCommand (helpMenu, U"Search manual...", 'M', menu_cb_searchManual);
 		if (my v_scriptable ()) {
 			Editor_addCommand (me, U"File", U"New editor script", 0, menu_cb_newScript);
@@ -498,7 +519,7 @@ void Editor_save (Editor me, const char32 *text) {
 		[(GuiCocoaMenuItem *) my undoButton -> d_widget   setTitle: (NSString *) Melder_peek32toCfstring (my undoText)];
 	#elif motif
 		char *text_utf8 = Melder_peek32to8 (my undoText);
-		XtVaSetValues (my undoButton -> d_widget, XmNlabelString, text_utf8, nullptr);
+		XtVaSetValues (my undoButton -> d_widget, XmNlabelString, text_utf8, NULL);
 	#endif
 }
 
@@ -506,7 +527,7 @@ void Editor_openPraatPicture (Editor me) {
 	my pictureGraphics = praat_picture_editor_open (my pref_picture_eraseFirst ());
 }
 void Editor_closePraatPicture (Editor me) {
-	if (my data && my pref_picture_writeNameAtTop () != kEditor_writeNameAtTop_NO) {
+	if (my data != NULL && my pref_picture_writeNameAtTop () != kEditor_writeNameAtTop_NO) {
 		Graphics_setNumberSignIsBold (my pictureGraphics, false);
 		Graphics_setPercentSignIsItalic (my pictureGraphics, false);
 		Graphics_setCircumflexIsSuperscript (my pictureGraphics, false);
diff --git a/sys/Editor.h b/sys/Editor.h
index 4e0df5e..6f9e3d6 100644
--- a/sys/Editor.h
+++ b/sys/Editor.h
@@ -33,55 +33,39 @@ Thing_define (EditorMenu, Thing) {
 	Editor d_editor;
 	const char32 *menuTitle;
 	GuiMenu menuWidget;
-	OrderedOf<structEditorCommand> commands;
+	Ordered commands;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
-typedef MelderCallback <void, structEditor, EditorCommand, UiForm, int /*narg*/, Stackel /*args*/, const char32 *, Interpreter> EditorCommandCallback;
-
 Thing_define (EditorCommand, Thing) {
 	Editor d_editor;
 	EditorMenu menu;
 	const char32 *itemTitle;
 	GuiMenuItem itemWidget;
-	EditorCommandCallback commandCallback;
+	void (*commandCallback) (Editor editor_me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter);
 	const char32 *script;
-	autoUiForm d_uiform;
+	UiForm d_uiform;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
-typedef MelderCallback <void, structEditor> Editor_DataChangedCallback;
-typedef MelderCallback <void, structEditor> Editor_DestructionCallback;
-
-/*
-	The following doesn't work yet:
-*/
-//typedef MelderCallback <void, structEditor, autoDaata /* publication */> Editor_PublicationCallback;
-/*
-	because the autoDaata argument tends to be called with .move().
-	Therefore we have the stupider version:
-*/
-typedef void (*Editor_PublicationCallback) (Editor, autoDaata /* publication */);
-
 Thing_define (Editor, Thing) {
 	GuiWindow d_windowForm;
 	GuiMenuItem undoButton, searchButton;
-	OrderedOf<structEditorMenu> menus;
-	Daata data;   // the data that can be displayed and edited
-	autoDaata previousData;   // the data that can be displayed and edited
+	Ordered menus;
+	Data data, previousData;   // the data that can be displayed and edited
 	bool d_ownData;
 	char32 undoText [100];
 	Graphics pictureGraphics;
-	Editor_DataChangedCallback d_dataChangedCallback;
-	Editor_DestructionCallback d_destructionCallback;
-	Editor_PublicationCallback d_publicationCallback;
+	void (*d_dataChangedCallback) (Editor me, void *closure);                   void *d_dataChangedClosure;
+	void (*d_destructionCallback) (Editor me, void *closure);                   void *d_destructionClosure;
+	void (*d_publicationCallback) (Editor me, void *closure, Data publication); void *d_publicationClosure;
 	const char *callbackSocket;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_info ()
 		override;
@@ -114,14 +98,16 @@ Thing_define (Editor, Thing) {
 	#include "Editor_prefs.h"
 };
 
-GuiMenuItem EditorMenu_addCommand (EditorMenu me, const char32 *itemTitle /* cattable */, long flags, EditorCommandCallback commandCallback);
+GuiMenuItem EditorMenu_addCommand (EditorMenu me, const char32 *itemTitle /* cattable */, long flags,
+	void (*commandCallback) (Editor me, EditorCommand, UiForm, int, Stackel, const char32 *, Interpreter));
 GuiMenuItem EditorCommand_getItemWidget (EditorCommand me);
 
 EditorMenu Editor_addMenu (Editor me, const char32 *menuTitle, long flags);
 GuiObject EditorMenu_getMenuWidget (EditorMenu me);
 
 #define Editor_HIDDEN  (1 << 14)
-GuiMenuItem Editor_addCommand (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags, EditorCommandCallback commandCallback);
+GuiMenuItem Editor_addCommand (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags,
+	void (*commandCallback) (Editor me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter));
 GuiMenuItem Editor_addCommandScript (Editor me, const char32 *menuTitle, const char32 *itemTitle, long flags,
 	const char32 *script);
 void Editor_setMenuSensitive (Editor me, const char32 *menu, int sensitive);
@@ -144,7 +130,7 @@ inline static void Editor_dataChanged (Editor me)
 	{
 		my v_dataChanged ();
 	}
-inline static void Editor_setDataChangedCallback (Editor me, Editor_DataChangedCallback dataChangedCallback)
+inline static void Editor_setDataChangedCallback (Editor me, void (*dataChangedCallback) (Editor me, void *closure), void *dataChangedClosure)
 	/*
 	 * Message from boss: "notify me by calling this dataChangedCallback every time your data is changed from *inside* yourself."
 	 *
@@ -155,6 +141,7 @@ inline static void Editor_setDataChangedCallback (Editor me, Editor_DataChangedC
 	 */
 	{
 		my d_dataChangedCallback = dataChangedCallback;
+		my d_dataChangedClosure = dataChangedClosure;
 	}
 inline static void Editor_broadcastDataChanged (Editor me)
 	/*
@@ -164,18 +151,19 @@ inline static void Editor_broadcastDataChanged (Editor me)
 	 */
 	{
 		if (my d_dataChangedCallback)
-			my d_dataChangedCallback (me);
+			my d_dataChangedCallback (me, my d_dataChangedClosure);
 	}
-inline static void Editor_setDestructionCallback (Editor me, Editor_DestructionCallback destructionCallback)
+inline static void Editor_setDestructionCallback (Editor me, void (*destructionCallback) (Editor me, void *closure), void *destructionClosure)
 	/*
-	 * Message from observer: "notify me by calling this destructionCallback every time you destroy yourself."
+	 * Message from boss: "notify me by calling this destructionCallback every time you destroy yourself."
 	 *
 	 * In Praat, "destroying yourself" typically happens when the user closes the editor window
 	 * or when an object that is being viewed in an editor window is "Remove"d.
-	 * Typically, the observer will (in the destructionCallback it installed) remove all dangling references to this editor.
+	 * Typically, the boss will (in the destructionCallback it installed) remove all dangling references to this editor.
 	 */
 	{
 		my d_destructionCallback = destructionCallback;
+		my d_destructionClosure = destructionClosure;
 	}
 inline static void Editor_broadcastDestruction (Editor me)
 	/*
@@ -185,9 +173,9 @@ inline static void Editor_broadcastDestruction (Editor me)
 	 */
 	{
 		if (my d_destructionCallback)
-			my d_destructionCallback (me);
+			my d_destructionCallback (me, my d_destructionClosure);
 	}
-inline static void Editor_setPublicationCallback (Editor me, Editor_PublicationCallback publicationCallback)
+inline static void Editor_setPublicationCallback (Editor me, void (*publicationCallback) (Editor me, void *closure, Data publication), void *publicationClosure)
 	/*
 	 * Message from boss: "notify me by calling this publicationCallback every time you have a piece of data to publish."
 	 *
@@ -198,8 +186,9 @@ inline static void Editor_setPublicationCallback (Editor me, Editor_PublicationC
 	 */
 	{
 		my d_publicationCallback = publicationCallback;
+		my d_publicationClosure = publicationClosure;
 	}
-inline static void Editor_broadcastPublication (Editor me, autoDaata publication)
+inline static void Editor_broadcastPublication (Editor me, Data publication)
 	/*
 	 * Message to boss: "I have a piece of data for you to publish."
 	 *
@@ -211,13 +200,13 @@ inline static void Editor_broadcastPublication (Editor me, autoDaata publication
 	 */
 	{
 		if (my d_publicationCallback)
-			my d_publicationCallback (me, publication.move());
+			my d_publicationCallback (me, my d_publicationClosure, publication);
 	}
 
 /***** For inheritors. *****/
 
 void Editor_init (Editor me, int x, int y , int width, int height,
-	const char32 *title, Daata data);
+	const char32 *title, Data data);
 /*
 	This creates my shell and my d_windowForm,
 	calls the v_createMenus and v_createChildren methods,
@@ -240,7 +229,7 @@ void Editor_init (Editor me, int x, int y , int width, int height,
 
 void Editor_save (Editor me, const char32 *text);   // for Undo
 
-autoUiForm UiForm_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle);
+UiForm UiForm_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle);
 void UiForm_parseStringE (EditorCommand cmd, int narg, Stackel args, const char32 *arguments, Interpreter interpreter);
 UiForm UiOutfile_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle);
 UiForm UiInfile_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle);
@@ -253,7 +242,7 @@ void Editor_doMenuCommand (Editor me, const char32 *command, int narg, Stackel a
  * They allow editors to draw into the Picture window.
  */
 Graphics praat_picture_editor_open (bool eraseFirst);
-void praat_picture_editor_close ();
+void praat_picture_editor_close (void);
 void Editor_openPraatPicture (Editor me);
 void Editor_closePraatPicture (Editor me);
 
diff --git a/sys/EditorM.h b/sys/EditorM.h
index 99d6d87..90b36b6 100644
--- a/sys/EditorM.h
+++ b/sys/EditorM.h
@@ -55,21 +55,21 @@
 #undef GET_STRING
 #undef GET_FILE
 
-#define REAL(label,def)		UiForm_addReal (cmd -> d_uiform.get(), label, def);
-#define REAL_OR_UNDEFINED(label,def)  UiForm_addRealOrUndefined (cmd -> d_uiform.get(), label, def);
-#define POSITIVE(label,def)	UiForm_addPositive (cmd -> d_uiform.get(), label, def);
-#define INTEGER(label,def)	UiForm_addInteger (cmd -> d_uiform.get(), label, def);
-#define NATURAL(label,def)	UiForm_addNatural (cmd -> d_uiform.get(), label, def);
-#define WORD(label,def)		UiForm_addWord (cmd -> d_uiform.get(), label, def);
-#define SENTENCE(label,def)	UiForm_addSentence (cmd -> d_uiform.get(), label, def);
-#define COLOUR(label,def)	UiForm_addColour (cmd -> d_uiform.get(), label, def);
-#define CHANNEL(label,def)	UiForm_addChannel (cmd -> d_uiform.get(), label, def);
-#define BOOLEAN(label,def)	UiForm_addBoolean (cmd -> d_uiform.get(), label, def);
-#define LABEL(name,label)	UiForm_addLabel (cmd -> d_uiform.get(), name, label);
-#define TEXTFIELD(name,def)	UiForm_addText (cmd -> d_uiform.get(), name, def);
-#define RADIO(label,def)	radio = UiForm_addRadio (cmd -> d_uiform.get(), label, def);
+#define REAL(label,def)		UiForm_addReal (cmd -> d_uiform, label, def);
+#define REAL_OR_UNDEFINED(label,def)  UiForm_addRealOrUndefined (cmd -> d_uiform, label, def);
+#define POSITIVE(label,def)	UiForm_addPositive (cmd -> d_uiform, label, def);
+#define INTEGER(label,def)	UiForm_addInteger (cmd -> d_uiform, label, def);
+#define NATURAL(label,def)	UiForm_addNatural (cmd -> d_uiform, label, def);
+#define WORD(label,def)		UiForm_addWord (cmd -> d_uiform, label, def);
+#define SENTENCE(label,def)	UiForm_addSentence (cmd -> d_uiform, label, def);
+#define COLOUR(label,def)	UiForm_addColour (cmd -> d_uiform, label, def);
+#define CHANNEL(label,def)	UiForm_addChannel (cmd -> d_uiform, label, def);
+#define BOOLEAN(label,def)	UiForm_addBoolean (cmd -> d_uiform, label, def);
+#define LABEL(name,label)	UiForm_addLabel (cmd -> d_uiform, name, label);
+#define TEXTFIELD(name,def)	UiForm_addText (cmd -> d_uiform, name, def);
+#define RADIO(label,def)	radio = UiForm_addRadio (cmd -> d_uiform, label, def);
 #define RADIOBUTTON(label)	UiRadio_addButton (radio, label);
-#define OPTIONMENU(label,def)	radio = UiForm_addOptionMenu (cmd -> d_uiform.get(), label, def);
+#define OPTIONMENU(label,def)	radio = UiForm_addOptionMenu (cmd -> d_uiform, label, def);
 #define OPTION(label)	UiOptionMenu_addButton (radio, label);
 #define RADIOBUTTONS_ENUM(labelProc,min,max) { for (int itext = min; itext <= max; itext ++) RADIOBUTTON (labelProc) }
 #define OPTIONS_ENUM(labelProc,min,max) { for (int itext = min; itext <= max; itext ++) OPTION (labelProc) }
@@ -81,47 +81,46 @@
 	OPTIONMENU (label, def - enum##_MIN + 1) \
 	for (int ienum = enum##_MIN; ienum <= enum##_MAX; ienum ++) \
 		OPTION (enum##_getText (ienum))
-#define LIST(label,n,str,def)	UiForm_addList (cmd -> d_uiform.get(), label, n, str, def);
-#define SET_REAL(name,value)	UiForm_setReal (cmd -> d_uiform.get(), name, value);
-#define SET_INTEGER(name,value)	UiForm_setInteger (cmd -> d_uiform.get(), name, value);
-#define SET_STRING(name,value)	UiForm_setString (cmd -> d_uiform.get(), name, value);
+#define LIST(label,n,str,def)	UiForm_addList (cmd -> d_uiform, label, n, str, def);
+#define SET_REAL(name,value)	UiForm_setReal (cmd -> d_uiform, name, value);
+#define SET_INTEGER(name,value)	UiForm_setInteger (cmd -> d_uiform, name, value);
+#define SET_STRING(name,value)	UiForm_setString (cmd -> d_uiform, name, value);
 #define SET_ENUM(name,enum,value)  SET_STRING (name, enum##_getText (value))
 
 #define DIALOG  cmd -> d_uiform
 
-#define EDITOR_ARGS_FORM  EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter
-#define EDITOR_ARGS_CMD  EditorCommand cmd, UiForm, int, Stackel, const char32 *, Interpreter
-#define EDITOR_ARGS_DIRECT  EditorCommand, UiForm, int, Stackel, const char32 *, Interpreter
-#define EDITOR_FORM(title,helpTitle)  if (! cmd -> d_uiform) { UiField radio = nullptr; (void) radio; \
+#define EDITOR_ARGS  Editor void_me, EditorCommand cmd, UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter
+#define EDITOR_IAM(klas)  iam (klas); (void) me; (void) cmd; (void) sendingForm; (void) narg; (void) args; (void) sendingString; (void) interpreter
+#define EDITOR_FORM(title,helpTitle)  if (cmd -> d_uiform == NULL) { Any radio = 0; (void) radio; \
 	cmd -> d_uiform = UiForm_createE (cmd, title, cmd -> itemTitle, helpTitle);
-#define EDITOR_OK  UiForm_finish (cmd -> d_uiform.get()); } if (! sendingForm && ! args && ! sendingString) {
-#define EDITOR_DO  UiForm_do (cmd -> d_uiform.get(), false); } else if (! sendingForm) { \
+#define EDITOR_OK  UiForm_finish (cmd -> d_uiform); } if (sendingForm == NULL && args == NULL && sendingString == NULL) {
+#define EDITOR_DO  UiForm_do (cmd -> d_uiform, false); } else if (sendingForm == NULL) { \
 	UiForm_parseStringE (cmd, narg, args, sendingString, interpreter); } else {
 #define EDITOR_END  }
 
 #define EDITOR_FORM_WRITE(title,helpTitle) \
-	if (! cmd -> d_uiform) { \
-		cmd -> d_uiform = autoUiForm (UiOutfile_createE (cmd, title, cmd -> itemTitle, helpTitle)); \
-		} if (! sendingForm && ! args && ! sendingString) { char32 defaultName [300]; defaultName [0] = U'\0';
+	if (cmd -> d_uiform == NULL) { \
+		cmd -> d_uiform = UiOutfile_createE (cmd, title, cmd -> itemTitle, helpTitle); \
+		} if (sendingForm == NULL && args == NULL && sendingString == NULL) { char32 defaultName [300]; defaultName [0] = U'\0';
 #define EDITOR_DO_WRITE \
-	UiOutfile_do (cmd -> d_uiform.get(), defaultName); } else { MelderFile file; structMelderFile file2 { 0 }; \
-		if (! args && ! sendingString) file = UiFile_getFile (sendingForm); \
+	UiOutfile_do (cmd -> d_uiform, defaultName); } else { MelderFile file; structMelderFile file2 = { 0 }; \
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (sendingForm); \
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
 
 #define EDITOR_FORM_READ(title,helpTitle) \
-	if (! cmd -> d_uiform) { \
-		cmd -> d_uiform = autoUiForm (UiInfile_createE (cmd, title, cmd -> itemTitle, helpTitle)); \
-		} if (! sendingForm && ! args && ! sendingString) {
+	if (cmd -> d_uiform == NULL) { \
+		cmd -> d_uiform = UiInfile_createE (cmd, title, cmd -> itemTitle, helpTitle); \
+		} if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 #define EDITOR_DO_READ \
-	UiInfile_do (cmd -> d_uiform.get()); } else { MelderFile file; structMelderFile file2 { 0 }; \
-		if (! args && ! sendingString) file = UiFile_getFile (sendingForm); \
+	UiInfile_do (cmd -> d_uiform); } else { MelderFile file; structMelderFile file2 = { 0 }; \
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (sendingForm); \
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
 
-#define GET_REAL(name)  UiForm_getReal (cmd -> d_uiform.get(), name)
-#define GET_INTEGER(name)  UiForm_getInteger (cmd -> d_uiform.get(), name)
-#define GET_STRING(name)  UiForm_getString (cmd -> d_uiform.get(), name)
+#define GET_REAL(name)  UiForm_getReal (cmd -> d_uiform, name)
+#define GET_INTEGER(name)  UiForm_getInteger (cmd -> d_uiform, name)
+#define GET_STRING(name)  UiForm_getString (cmd -> d_uiform, name)
 #define GET_ENUM(enum,name)  (enum) enum##_getValue (GET_STRING (name))
-#define GET_FILE  UiForm_getFile (cmd -> d_uiform.get())
+#define GET_FILE  UiForm_getFile (cmd -> d_uiform)
 
 /* End of file EditorM.h */
 #endif
diff --git a/sys/Formula.cpp b/sys/Formula.cpp
index 77f0cfb..e216c6b 100644
--- a/sys/Formula.cpp
+++ b/sys/Formula.cpp
@@ -35,16 +35,15 @@
 #include "UiPause.h"
 #include "DemoEditor.h"
 
-static Interpreter theInterpreter;
-static autoInterpreter theLocalInterpreter;
-static Daata theSource;
+static Interpreter theInterpreter, theLocalInterpreter;
+static Data theSource;
 static const char32 *theExpression;
 static int theLevel = 1;
 #define MAXIMUM_NUMBER_OF_LEVELS  20
 static int theExpressionType [1 + MAXIMUM_NUMBER_OF_LEVELS];
-static bool theOptimize;
+static int theOptimize;
 
-static struct Formula_NumericArray theZeroNumericArray = { 0, 0, nullptr };
+static struct Formula_NumericArray theZeroNumericArray = { 0, 0, NULL };
 
 typedef struct structFormulaInstruction {
 	int symbol;
@@ -54,7 +53,7 @@ typedef struct structFormulaInstruction {
 		int label;
 		char32 *string;
 		//struct Formula_NumericArray numericArray;
-		Daata object;
+		Data object;
 		InterpreterVariable variable;
 	} content;
 } *FormulaInstruction;
@@ -285,14 +284,14 @@ static int languageNameCompare (const void *first, const void *second) {
 
 static int Formula_hasLanguageName (const char32 *f) {
 	static int *index;
-	if (! index) {
+	if (index == NULL) {
 		index = NUMvector <int> (1, hoogsteInvoersymbool);
 		for (int tok = 1; tok <= hoogsteInvoersymbool; tok ++) {
 			index [tok] = tok;
 		}
 		qsort (& index [1], hoogsteInvoersymbool, sizeof (int), languageNameCompare);
 	}
-	if (! index) {   // linear search
+	if (index == NULL) {   // linear search
 		for (int tok = 1; tok <= hoogsteInvoersymbool; tok ++) {
 			if (str32equ (f, Formula_instructionNames [tok])) return tok;
 		}
@@ -300,12 +299,12 @@ static int Formula_hasLanguageName (const char32 *f) {
 		int dummy = 0, *found;
 		languageNameCompare_searchString = f;
 		found = (int *) bsearch (& dummy, & index [1], hoogsteInvoersymbool, sizeof (int), languageNameCompare);
-		if (found) return *found;
+		if (found != NULL) return *found;
 	}
 	return 0;
 }
 
-static void Formula_lexan () {
+static void Formula_lexan (void) {
 /*
 	Purpose:
 		translate the formula text into a series of symbols.
@@ -423,7 +422,7 @@ static void Formula_lexan () {
 						 * This could be a variable with the same name as a function.
 						 */
 						InterpreterVariable var = Interpreter_hasVariable (theInterpreter, token.string);
-						if (! var) {
+						if (var == NULL) {
 							nieuwtok (VARIABLE_NAME_)
 							lexan [itok]. content.string = Melder_dup_f (token.string);
 							numberOfStringConstants ++;
@@ -491,7 +490,7 @@ static void Formula_lexan () {
 							numberOfStringConstants ++;
 						} else {
 							InterpreterVariable var = Interpreter_hasVariable (theInterpreter, token.string);
-							if (! var) {
+							if (var == NULL) {
 								nieuwtok (VARIABLE_NAME_)
 								lexan [itok]. content.string = Melder_dup_f (token.string);
 								numberOfStringConstants ++;
@@ -535,7 +534,7 @@ static void Formula_lexan () {
 					numberOfStringConstants ++;
 				} else {
 					InterpreterVariable var = Interpreter_hasVariable (theInterpreter, token.string);
-					if (! var) {
+					if (var == NULL) {
 						nieuwtok (VARIABLE_NAME_)
 						lexan [itok]. content.string = Melder_dup_f (token.string);
 						numberOfStringConstants ++;
@@ -558,27 +557,28 @@ static void Formula_lexan () {
 				}
 			}
 		} else if (kar >= U'A' && kar <= U'Z') {
-			bool endsInDollarSign = false;
+			int endsInDollarSign = FALSE;
+			char32 *underscore;
 			stokaan;
 			do stokkar while (isalnum ((int) kar) || kar == U'_');   // TODO: allow more than just ASCII
-			if (kar == U'$') { stokkar endsInDollarSign = true; }
+			if (kar == U'$') { stokkar endsInDollarSign = TRUE; }
 			stokuit;
 			oudkar;
 			/*
 			 * 'token' now contains a word that could be an object name.
 			 */
-			char32 *underscore = str32chr (token.string, '_');
+			underscore = str32chr (token.string, '_');
 			if (str32equ (token.string, U"Self")) {
-				if (! theSource)
+				if (theSource == NULL)
 					formulefout (U"Cannot use \"Self\" if there is no current object.", ikar);
 				nieuwtok (MATRIKS_)
 				tokmatriks (theSource);
 			} else if (str32equ (token.string, U"Self$")) {
-				if (! theSource)
+				if (theSource == NULL)
 					formulefout (U"Cannot use \"Self$\" if there is no current object.", ikar);
 				nieuwtok (MATRIKSSTR_)
 				tokmatriks (theSource);
-			} else if (! underscore) {
+			} else if (underscore == NULL) {
 				Melder_throw (
 					U"Unknown symbol " U_LEFT_GUILLEMET , token.string,
 					U_RIGHT_GUILLEMET U" in formula "
@@ -591,7 +591,7 @@ static void Formula_lexan () {
 				if (i == 0)
 					formulefout (U"No such object (note: variables start with lower case)", ikar);
 				nieuwtok (endsInDollarSign ? MATRIKSSTR_ : MATRIKS_)
-				tokmatriks ((Daata) theCurrentPraatObjects -> list [i]. object);
+				tokmatriks ((Data) theCurrentPraatObjects -> list [i]. object);
 			} else {
 				int i = theCurrentPraatObjects -> n;
 				*underscore = ' ';
@@ -601,7 +601,7 @@ static void Formula_lexan () {
 				if (i == 0)
 					formulefout (U"No such object (note: variables start with lower case)", ikar);
 				nieuwtok (endsInDollarSign ? MATRIKSSTR_ : MATRIKS_)
-				tokmatriks ((Daata) theCurrentPraatObjects -> list [i]. object);
+				tokmatriks ((Data) theCurrentPraatObjects -> list [i]. object);
 			}
 		} else if (kar == U'(') {
 			nieuwtok (HAAKJEOPENEN_)
@@ -734,12 +734,12 @@ static void pas (int symbol) {
 	} else {
 		const char32 *symbolName1 = Formula_instructionNames [symbol];
 		const char32 *symbolName2 = Formula_instructionNames [lexan [ilexan]. symbol];
-		bool needQuotes1 = ( str32chr (symbolName1, U' ') == nullptr );
-		bool needQuotes2 = ( str32chr (symbolName2, U' ') == nullptr );
+		bool needQuotes1 = str32chr (symbolName1, U' ') == NULL;
+		bool needQuotes2 = str32chr (symbolName2, U' ') == NULL;
 		static MelderString melding { 0 };
 		MelderString_copy (& melding,
-			U"Expected ", needQuotes1 ? U"\"" : nullptr, symbolName1, needQuotes1 ? U"\"" : nullptr,
-			U", but found ", needQuotes2 ? U"\"" : nullptr, symbolName2, needQuotes2 ? U"\"" : nullptr);
+			U"Expected ", needQuotes1 ? U"\"" : NULL, symbolName1, needQuotes1 ? U"\"" : NULL,
+			U", but found ", needQuotes2 ? U"\"" : NULL, symbolName2, needQuotes2 ? U"\"" : NULL);
 		formulefout (melding.string, lexan [ilexan]. position);
 	}
 }
@@ -749,10 +749,10 @@ static bool pasArguments () {
     if (symbol == HAAKJEOPENEN_) return true;   // success: a function call like: myFunction (...)
     if (symbol == COLON_) return false;   // success: a function call like: myFunction: ...
     const char32 *symbolName2 = Formula_instructionNames [lexan [ilexan]. symbol];
-    bool needQuotes2 = ( str32chr (symbolName2, U' ') == nullptr );
+    bool needQuotes2 = str32chr (symbolName2, U' ') == NULL;
     static MelderString melding { 0 };
     MelderString_copy (& melding,
-		U"Expected \"(\" or \":\", but found ", needQuotes2 ? U"\"" : nullptr, symbolName2, needQuotes2 ? U"\"" : nullptr);
+		U"Expected \"(\" or \":\", but found ", needQuotes2 ? U"\"" : NULL, symbolName2, needQuotes2 ? U"\"" : NULL);
     formulefout (melding.string, lexan [ilexan]. position);
     return false;   // will never occur
 }
@@ -761,9 +761,9 @@ static bool pasArguments () {
 #define parsenumber(g)  parse [iparse]. content.number = (g)
 #define ontleedlabel(l)  parse [iparse]. content.label = (l)
 
-static void parseExpression ();
+static void parseExpression (void);
 
-static void parsePowerFactor () {
+static void parsePowerFactor (void) {
 	int symbol = nieuwlees;
 
 	if (symbol >= LOW_VALUE && symbol <= HIGH_VALUE) {
@@ -835,7 +835,7 @@ static void parsePowerFactor () {
 
 	if (symbol == VARIABLE_NAME_) {
 		InterpreterVariable var = Interpreter_hasVariable (theInterpreter, lexan [ilexan]. content.string);
-		if (! var)
+		if (var == NULL)
 			formulefout (U"Unknown variable", lexan [ilexan]. position);
 		nieuwontleed (NUMERIC_VARIABLE_);
 		parse [iparse]. content.variable = var;
@@ -1019,8 +1019,8 @@ static void parsePowerFactor () {
 	}
 
 	if (symbol == MATRIKS_) {
-		Daata thee = lexan [ilexan]. content.object;
-		Melder_assert (thee != nullptr);
+		Data thee = lexan [ilexan]. content.object;
+		Melder_assert (thee != NULL);
 		symbol = nieuwlees;
 		if (symbol == RECHTEHAAKOPENEN_) {
 			if (nieuwlees == RECHTEHAAKSLUITEN_) {
@@ -1173,8 +1173,8 @@ static void parsePowerFactor () {
 	}
 
 	if (symbol == MATRIKSSTR_) {
-		Daata thee = lexan [ilexan]. content.object;
-		Melder_assert (thee != nullptr);
+		Data thee = lexan [ilexan]. content.object;
+		Melder_assert (thee != NULL);
 		symbol = nieuwlees;
 		if (symbol == RECHTEHAAKOPENEN_) {
 			if (nieuwlees == RECHTEHAAKSLUITEN_) {
@@ -1374,9 +1374,9 @@ static void parsePowerFactor () {
 	formulefout (U"Symbol misplaced", lexan [ilexan + 1]. position);
 }
 
-static void parseFactor ();
+static void parseFactor (void);
 
-static void parsePowerFactors () {
+static void parsePowerFactors (void) {
 	if (nieuwlees == POWER_) {
 		if (ilexan > 2 && lexan [ilexan - 2]. symbol == MINUS_ && lexan [ilexan - 1]. symbol == NUMBER_) {
 			oudlees;
@@ -1389,12 +1389,12 @@ static void parsePowerFactors () {
 		oudlees;
 }
 
-static void parseMinus () {
+static void parseMinus (void) {
 	parsePowerFactor ();
 	parsePowerFactors ();
 }
 
-static void parseFactor () {
+static void parseFactor (void) {
 	if (nieuwlees == MINUS_) {
 		parseFactor ();   // there can be multiple consecutive minuses
 		nieuwontleed (MINUS_);
@@ -1404,7 +1404,7 @@ static void parseFactor () {
 	parseMinus ();   // like -a^b
 }
 
-static void parseFactors () {
+static void parseFactors (void) {
 	int sym = nieuwlees;   // has to be local, because of recursion
 	if (sym == MUL_ || sym == RDIV_ || sym == IDIV_ || sym == MOD_) {
 		parseFactor ();
@@ -1414,12 +1414,12 @@ static void parseFactors () {
 	else oudlees;
 }
 
-static void parseTerm () {
+static void parseTerm (void) {
 	parseFactor ();
 	parseFactors ();
 }
 
-static void parseTerms () {
+static void parseTerms (void) {
 	int symbol = nieuwlees;
 	if (symbol == ADD_ || symbol == SUB_) {
 		parseTerm ();
@@ -1429,7 +1429,7 @@ static void parseTerms () {
 	else oudlees;
 }
 
-static void parseNot () {
+static void parseNot (void) {
 	int symbol;
 	parseTerm ();
 	parseTerms ();
@@ -1442,7 +1442,7 @@ static void parseNot () {
 	else oudlees;
 }
 
-static void parseAnd () {
+static void parseAnd (void) {
 	if (nieuwlees == NOT_) {
 		parseAnd ();   // like not not not
 		nieuwontleed (NOT_);
@@ -1452,7 +1452,7 @@ static void parseAnd () {
 	parseNot ();
 }
 
-static void parseOr () {
+static void parseOr (void) {
 	parseAnd ();
 	if (nieuwlees == AND_) {
 		int falseLabel = nieuwlabel;
@@ -1471,7 +1471,7 @@ static void parseOr () {
 	oudlees;
 }
 
-static void parseExpression () {
+static void parseExpression (void) {
 	parseOr ();
 	if (nieuwlees == OR_) {
 		int trueLabel = nieuwlabel;
@@ -1505,7 +1505,7 @@ static void parseExpression () {
 		result == 0 || my parse [my numberOfInstructions]. symbol == END_
 */
 
-static void Formula_parseExpression () {
+static void Formula_parseExpression (void) {
 	ilabel = ilexan = iparse = 0;
 	if (lexan [1]. symbol == END_) Melder_throw (U"Empty formula.");
 	parseExpression ();
@@ -1528,7 +1528,7 @@ static int vindLabel (int label) {
 	return result;
 }
 
-static void Formula_optimizeFlow ()
+static void Formula_optimizeFlow (void)
 /* Vereenvoudig boolse uitdrukkingen.					*/
 /* Nadien:								*/
 /*    de stroom volgt het kortste pad;					*/
@@ -1723,7 +1723,7 @@ static void Formula_optimizeFlow ()
 	}
 }
 
-static void Formula_evaluateConstants () {
+static void Formula_evaluateConstants (void) {
 	for (;;) {
 		bool improved = 0;
 		for (int i = 1; i <= numberOfInstructions; i ++) {
@@ -1752,7 +1752,7 @@ static void Formula_evaluateConstants () {
 	}
 }
 
-static void Formula_removeLabels () {
+static void Formula_removeLabels (void) {
 	/*
 	 * First translate symbolic labels (< 0) into instructions locations (> 0).
 	 */
@@ -1813,7 +1813,7 @@ static void Formula_print (FormulaInstruction f) {
 		else if (symbol == MATRIKS_ || symbol == MATRIKSSTR_ || symbol == MATRIKS1_ || symbol == MATRIKSSTR1_ ||
 		         symbol == MATRIKS2_ || symbol == MATRIKSSTR2_ || symbol == ROWSTR_ || symbol == COLSTR_)
 		{
-			Thing object = f [i]. content.object;
+			Thing object = (Thing) f [i]. content.object;
 			if (object) {
 				Melder_casual (i, U" ", instructionName, U" ", Thing_className (object), U" ", object -> name);
 			} else {
@@ -1827,13 +1827,13 @@ static void Formula_print (FormulaInstruction f) {
 	} while (symbol != END_);
 }
 
-void Formula_compile (Interpreter interpreter, Daata data, const char32 *expression, int expressionType, bool optimize) {
-	theInterpreter = interpreter;
-	if (! theInterpreter) {
-		if (! theLocalInterpreter) {
-			theLocalInterpreter = Interpreter_create (nullptr, nullptr);
+void Formula_compile (Any interpreter, Any data, const char32 *expression, int expressionType, int optimize) {
+	theInterpreter = (Interpreter) interpreter;
+	if (theInterpreter == NULL) {
+		if (theLocalInterpreter == NULL) {
+			theLocalInterpreter = Interpreter_create (NULL, NULL);
 		}
-		theInterpreter = theLocalInterpreter.get();
+		theInterpreter = theLocalInterpreter;
 		#if USE_HASH
 		for (std::unordered_map<std::u32string, InterpreterVariable>::iterator it = theInterpreter -> variablesMap -> begin(); it != theInterpreter -> variablesMap -> end(); it ++) {
 			InterpreterVariable var = it -> second;
@@ -1841,10 +1841,10 @@ void Formula_compile (Interpreter interpreter, Daata data, const char32 *express
 		}
 		theInterpreter -> variablesMap -> clear ();
 		#else
-		theInterpreter -> variables. removeAllItems ();
+		Collection_removeAllItems (theInterpreter -> variables);
 		#endif
 	}
-	theSource = data;
+	theSource = (Data) data;
 	theExpression = expression;
 	theExpressionType [theLevel] = expressionType;
 	theOptimize = optimize;
@@ -1947,7 +1947,7 @@ const char32 *Stackel_whichText (Stackel me) {
 		U"???";
 }
 
-static void do_not () {
+static void do_not (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : x->number == 0.0 ? 1.0 : 0.0);
@@ -1955,7 +1955,7 @@ static void do_not () {
 		Melder_throw (U"Cannot negate (\"not\") ", Stackel_whichText (x), U".");
 	}
 }
-static void do_eq () {
+static void do_eq (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == y->number ? 1.0 : 0.0);   /* Even if undefined. */
@@ -1966,7 +1966,7 @@ static void do_eq () {
 		Melder_throw (U"Cannot compare (=) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_ne () {
+static void do_ne (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number != y->number ? 1.0 : 0.0);   /* Even if undefined. */
@@ -1977,7 +1977,7 @@ static void do_ne () {
 		Melder_throw (U"Cannot compare (<>) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_le () {
+static void do_le (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -1989,7 +1989,7 @@ static void do_le () {
 		Melder_throw (U"Cannot compare (<=) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_lt () {
+static void do_lt (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2001,7 +2001,7 @@ static void do_lt () {
 		Melder_throw (U"Cannot compare (<) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_ge () {
+static void do_ge (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2013,7 +2013,7 @@ static void do_ge () {
 		Melder_throw (U"Cannot compare (>=) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_gt () {
+static void do_gt (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2025,7 +2025,7 @@ static void do_gt () {
 		Melder_throw (U"Cannot compare (>) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_add () {
+static void do_add (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2040,7 +2040,7 @@ static void do_add () {
 		Melder_throw (U"Cannot add ", Stackel_whichText (y), U" to ", Stackel_whichText (x), U".");
 	}
 }
-static void do_sub () {
+static void do_sub (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2060,7 +2060,7 @@ static void do_sub () {
 		Melder_throw (U"Cannot subtract (-) ", Stackel_whichText (y), U" from ", Stackel_whichText (x), U".");
 	}
 }
-static void do_mul () {
+static void do_mul (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2069,7 +2069,7 @@ static void do_mul () {
 		Melder_throw (U"Cannot multiply (*) ", Stackel_whichText (x), U" by ", Stackel_whichText (y), U".");
 	}
 }
-static void do_rdiv () {
+static void do_rdiv (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2079,7 +2079,7 @@ static void do_rdiv () {
 		Melder_throw (U"Cannot divide (/) ", Stackel_whichText (x), U" by ", Stackel_whichText (y), U".");
 	}
 }
-static void do_idiv () {
+static void do_idiv (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2089,7 +2089,7 @@ static void do_idiv () {
 		Melder_throw (U"Cannot divide (\"div\") ", Stackel_whichText (x), U" by ", Stackel_whichText (y), U".");
 	}
 }
-static void do_mod () {
+static void do_mod (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2099,7 +2099,7 @@ static void do_mod () {
 		Melder_throw (U"Cannot divide (\"mod\") ", Stackel_whichText (x), U" by ", Stackel_whichText (y), U".");
 	}
 }
-static void do_minus () {
+static void do_minus (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : - x->number);
@@ -2107,7 +2107,7 @@ static void do_minus () {
 		Melder_throw (U"Cannot take the opposite (-) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_power () {
+static void do_power (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined :
@@ -2116,7 +2116,7 @@ static void do_power () {
 		Melder_throw (U"Cannot exponentiate (^) ", Stackel_whichText (x), U" to ", Stackel_whichText (y), U".");
 	}
 }
-static void do_sqr () {
+static void do_sqr (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : x->number * x->number);
@@ -2133,7 +2133,7 @@ static void do_function_n_n (double (*f) (double)) {
 			U" requires a numeric argument, not ", Stackel_whichText (x), U".");
 	}
 }
-static void do_abs () {
+static void do_abs (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : fabs (x->number));
@@ -2141,7 +2141,7 @@ static void do_abs () {
 		Melder_throw (U"Cannot take the absolute value (abs) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_round () {
+static void do_round (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : floor (x->number + 0.5));
@@ -2149,7 +2149,7 @@ static void do_round () {
 		Melder_throw (U"Cannot round ", Stackel_whichText (x), U".");
 	}
 }
-static void do_floor () {
+static void do_floor (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : floor (x->number));
@@ -2157,7 +2157,7 @@ static void do_floor () {
 		Melder_throw (U"Cannot round down (floor) ", Stackel_whichText (x), U".");
 	}
 }
-static void do_ceiling () {
+static void do_ceiling (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : ceil (x->number));
@@ -2165,7 +2165,7 @@ static void do_ceiling () {
 		Melder_throw (U"Cannot round up (ceiling) ", Stackel_whichText (x), U".");
 	}
 }
-static void do_sqrt () {
+static void do_sqrt (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2174,7 +2174,7 @@ static void do_sqrt () {
 		Melder_throw (U"Cannot take the square root (sqrt) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_sin () {
+static void do_sin (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : sin (x->number));
@@ -2182,7 +2182,7 @@ static void do_sin () {
 		Melder_throw (U"Cannot take the sine (sin) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_cos () {
+static void do_cos (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : cos (x->number));
@@ -2190,7 +2190,7 @@ static void do_cos () {
 		Melder_throw (U"Cannot take the cosine (cos) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_tan () {
+static void do_tan (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : tan (x->number));
@@ -2198,7 +2198,7 @@ static void do_tan () {
 		Melder_throw (U"Cannot take the tangent (tan) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_arcsin () {
+static void do_arcsin (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2207,7 +2207,7 @@ static void do_arcsin () {
 		Melder_throw (U"Cannot take the arcsine (arcsin) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_arccos () {
+static void do_arccos (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2216,7 +2216,7 @@ static void do_arccos () {
 		Melder_throw (U"Cannot take the arccosine (arccos) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_arctan () {
+static void do_arctan (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : atan (x->number));
@@ -2224,7 +2224,7 @@ static void do_arctan () {
 		Melder_throw (U"Cannot take the arctangent (arctan) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_exp () {
+static void do_exp (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : exp (x->number));
@@ -2232,7 +2232,7 @@ static void do_exp () {
 		Melder_throw (U"Cannot exponentiate (exp) ", Stackel_whichText (x), U".");
 	}
 }
-static void do_sinh () {
+static void do_sinh (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : sinh (x->number));
@@ -2240,7 +2240,7 @@ static void do_sinh () {
 		Melder_throw (U"Cannot take the hyperbolic sine (sinh) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_cosh () {
+static void do_cosh (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : cosh (x->number));
@@ -2248,7 +2248,7 @@ static void do_cosh () {
 		Melder_throw (U"Cannot take the hyperbolic cosine (cosh) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_tanh () {
+static void do_tanh (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined : tanh (x->number));
@@ -2256,7 +2256,7 @@ static void do_tanh () {
 		Melder_throw (U"Cannot take the hyperbolic tangent (tanh) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_log2 () {
+static void do_log2 (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2265,7 +2265,7 @@ static void do_log2 () {
 		Melder_throw (U"Cannot take the base-2 logarithm (log2) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_ln () {
+static void do_ln (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2274,7 +2274,7 @@ static void do_ln () {
 		Melder_throw (U"Cannot take the natural logarithm (ln) of ", Stackel_whichText (x), U".");
 	}
 }
-static void do_log10 () {
+static void do_log10 (void) {
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		pushNumber (x->number == NUMundefined ? NUMundefined :
@@ -2382,18 +2382,18 @@ static void do_function_dl_l (long (*f) (double, long)) {
 			Stackel_whichText (x), U" and ", Stackel_whichText (y), U".");
 	}
 }
-static void do_objects_are_identical () {
+static void do_objects_are_identical (void) {
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		int id1 = lround (x->number), id2 = lround (y->number);
 		int i = theCurrentPraatObjects -> n;
 		while (i > 0 && id1 != theCurrentPraatObjects -> list [i]. id) i --;
 		if (i == 0) Melder_throw (U"Object #", id1, U" does not exist in function objectsAreIdentical.");
-		Daata object1 = (Daata) theCurrentPraatObjects -> list [i]. object;
+		Data object1 = (Data) theCurrentPraatObjects -> list [i]. object;
 		i = theCurrentPraatObjects -> n;
 		while (i > 0 && id2 != theCurrentPraatObjects -> list [i]. id) i --;
 		if (i == 0) Melder_throw (U"Object #", id2, U" does not exist in function objectsAreIdentical.");
-		Daata object2 = (Daata) theCurrentPraatObjects -> list [i]. object;
+		Data object2 = (Data) theCurrentPraatObjects -> list [i]. object;
 		pushNumber (x->number == NUMundefined || y->number == NUMundefined ? NUMundefined : Data_equal (object1, object2));
 	} else {
 		Melder_throw (U"The function objectsAreIdentical requires two numeric arguments (object IDs), not ",
@@ -2422,7 +2422,7 @@ static void do_function_dll_d (double (*f) (double, long, long)) {
 			Stackel_whichText (y), U", and ", Stackel_whichText (z), U".");
 	}
 }
-static void do_do () {
+static void do_do (void) {
 	Stackel narg = pop;
 	Melder_assert (narg->which == Stackel_NUMBER);
 	if (narg->number < 1)
@@ -2437,12 +2437,12 @@ static void do_do () {
 	if (stack [0]. which != Stackel_STRING)
 		Melder_throw (U"The first argument of the function \"do\" has to be a string, namely a menu command, and not ", Stackel_whichText (& stack [0]), U".");
 	const char32 *command = stack [0]. string;
-	if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor != nullptr) {
+	if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor != NULL) {
 		autoMelderString valueString;
 		MelderString_appendCharacter (& valueString, 1);   // TODO: check whether this is needed at all, or is just MelderString_empty enough?
 		autoMelderDivertInfo divert (& valueString);
 		autostring32 command2 = Melder_dup (command);   // allow the menu command to reuse the stack (?)
-		Editor_doMenuCommand (praatP. editor, command2.peek(), numberOfArguments, & stack [0], nullptr, theInterpreter);
+		Editor_doMenuCommand ((Editor) praatP. editor, command2.peek(), numberOfArguments, & stack [0], NULL, theInterpreter);
 		pushNumber (Melder_atof (valueString.string));
 		return;
 	} else if (theCurrentPraatObjects != & theForegroundPraatObjects &&
@@ -2476,7 +2476,7 @@ static void do_do () {
 	praat_updateSelection ();   // BUG: superfluous? flickering?
 	pushNumber (1);
 }
-static void do_doStr () {
+static void do_doStr (void) {
 	Stackel narg = pop;
 	Melder_assert (narg->which == Stackel_NUMBER);
 	if (narg->number < 1)
@@ -2491,12 +2491,12 @@ static void do_doStr () {
 	if (stack [0]. which != Stackel_STRING)
 		Melder_throw (U"The first argument of the function \"do$\" has to be a string, namely a menu command, and not ", Stackel_whichText (& stack [0]), U".");
 	const char32 *command = stack [0]. string;
-	if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor != nullptr) {
+	if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor != NULL) {
 		static MelderString info;
 		MelderString_empty (& info);
 		autoMelderDivertInfo divert (& info);
 		autostring32 command2 = Melder_dup (command);
-		Editor_doMenuCommand (praatP. editor, command2.peek(), numberOfArguments, & stack [0], nullptr, theInterpreter);
+		Editor_doMenuCommand ((Editor) praatP. editor, command2.peek(), numberOfArguments, & stack [0], NULL, theInterpreter);
 		pushString (Melder_dup (info.string));
 		return;
 	} else if (theCurrentPraatObjects != & theForegroundPraatObjects &&
@@ -2605,7 +2605,7 @@ static void do_writeFile () {
 	}
 	structMelderFile file = { 0 };
 	Melder_relativePathToFile (fileName -> string, & file);
-	MelderFile_writeText (& file, text.string, Melder_getOutputEncoding ());
+	MelderFile_writeText (& file, text.transfer(), Melder_getOutputEncoding ());
 	pushNumber (1);
 }
 static void do_writeFileLine () {
@@ -2630,7 +2630,7 @@ static void do_writeFileLine () {
 	MelderString_appendCharacter (& text, U'\n');
 	structMelderFile file = { 0 };
 	Melder_relativePathToFile (fileName -> string, & file);
-	MelderFile_writeText (& file, text.string, Melder_getOutputEncoding ());
+	MelderFile_writeText (& file, text.transfer(), Melder_getOutputEncoding ());
 	pushNumber (1);
 }
 static void do_appendFile () {
@@ -2654,7 +2654,7 @@ static void do_appendFile () {
 	}
 	structMelderFile file = { 0 };
 	Melder_relativePathToFile (fileName -> string, & file);
-	MelderFile_appendText (& file, text.string);
+	MelderFile_appendText (& file, text.transfer());
 	pushNumber (1);
 }
 static void do_appendFileLine () {
@@ -2679,7 +2679,7 @@ static void do_appendFileLine () {
 	MelderString_appendCharacter (& text, '\n');
 	structMelderFile file = { 0 };
 	Melder_relativePathToFile (fileName -> string, & file);
-	MelderFile_appendText (& file, text.string);
+	MelderFile_appendText (& file, text.transfer());
 	pushNumber (1);
 }
 static void do_pauseScript () {
@@ -2700,7 +2700,7 @@ static void do_pauseScript () {
 	}
 	UiPause_begin (theCurrentPraatApplication -> topShell, U"stop or continue", theInterpreter);
 	UiPause_comment (numberOfArguments == 0 ? U"..." : buffer.string);
-	UiPause_end (1, 1, 0, U"Continue", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, theInterpreter);
+	UiPause_end (1, 1, 0, U"Continue", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, theInterpreter);
 	pushNumber (1);
 }
 static void do_exitScript () {
@@ -2783,7 +2783,7 @@ static void do_runSystem_nocheck () {
 	}
 	pushNumber (1);
 }
-static void do_min () {
+static void do_min (void) {
 	Stackel n = pop, last;
 	double result;
 	Melder_assert (n->which == Stackel_NUMBER);
@@ -2802,7 +2802,7 @@ static void do_min () {
 	}
 	pushNumber (result);
 }
-static void do_max () {
+static void do_max (void) {
 	Stackel n = pop, last;
 	double result;
 	Melder_assert (n->which == Stackel_NUMBER);
@@ -2821,7 +2821,7 @@ static void do_max () {
 	}
 	pushNumber (result);
 }
-static void do_imin () {
+static void do_imin (void) {
 	Stackel n = pop, last;
 	double minimum, result;
 	Melder_assert (n->which == Stackel_NUMBER);
@@ -2846,7 +2846,7 @@ static void do_imin () {
 	}
 	pushNumber (result);
 }
-static void do_imax () {
+static void do_imax (void) {
 	Stackel n = pop, last;
 	double maximum, result;
 	Melder_assert (n->which == Stackel_NUMBER);
@@ -2871,7 +2871,7 @@ static void do_imax () {
 	}
 	pushNumber (result);
 }
-static void do_zeroNumar () {
+static void do_zeroNumar (void) {
 	Stackel n = pop;
 	Melder_assert (n -> which == Stackel_NUMBER);
 	int rank = lround (n -> number);
@@ -2901,7 +2901,7 @@ static void do_zeroNumar () {
 	autoNUMmatrix <double> data (1, numberOfRows, 1, numberOfColumns);
 	pushNumericArray (numberOfRows, numberOfColumns, data.transfer());
 }
-static void do_linearNumar () {
+static void do_linearNumar (void) {
 	Stackel stackel_narg = pop;
 	Melder_assert (stackel_narg -> which == Stackel_NUMBER);
 	int narg = lround (stackel_narg -> number);
@@ -2943,7 +2943,7 @@ static void do_linearNumar () {
 	if (! excludeEdges) data [numberOfSteps] [1] = maximum;   // remove rounding problems
 	pushNumericArray (numberOfSteps, 1, data.transfer());
 }
-static void do_numberOfRows () {
+static void do_numberOfRows (void) {
 	Stackel n = pop;
 	Melder_assert (n->which == Stackel_NUMBER);
 	if (n->number != 1)
@@ -2956,7 +2956,7 @@ static void do_numberOfRows () {
 			U" requires a numeric argument, not ", Stackel_whichText (array), U".");
 	}
 }
-static void do_numberOfColumns () {
+static void do_numberOfColumns (void) {
 	Stackel n = pop;
 	Melder_assert (n->which == Stackel_NUMBER);
 	if (n->number != 1)
@@ -2969,7 +2969,7 @@ static void do_numberOfColumns () {
 			U" requires a numeric argument, not ", Stackel_whichText (array), U".");
 	}
 }
-static void do_editor () {
+static void do_editor (void) {
 	Stackel n = pop;
 	Melder_assert (n->which == Stackel_NUMBER);
 	if (n->number == 0) {
@@ -2993,7 +2993,7 @@ static void do_editor () {
 	pushNumber (1);
 }
 
-static void do_hash () {
+static void do_hash (void) {
 	Stackel n = pop;
 	Melder_assert (n->which == Stackel_NUMBER);
 	if (n->number == 1) {
@@ -3009,7 +3009,7 @@ static void do_hash () {
 	}
 }
 
-static void do_numericArrayElement () {
+static void do_numericArrayElement (void) {
 	Stackel n = pop;
 	Melder_assert (n -> which == Stackel_NUMBER);
 	int narg = lround (n -> number);
@@ -3041,7 +3041,7 @@ static void do_numericArrayElement () {
 		Melder_throw (U"Row index out of bounds.");
 	pushNumber (array -> numericArrayValue. data [row] [column]);
 }
-static void do_indexedNumericVariable () {
+static void do_indexedNumericVariable (void) {
 	Stackel n = pop;
 	Melder_assert (n -> which == Stackel_NUMBER);
 	int nindex = lround (n -> number);
@@ -3053,20 +3053,16 @@ static void do_indexedNumericVariable () {
 	w -= nindex;
 	for (int iindex = 1; iindex <= nindex; iindex ++) {
 		Stackel index = & theStack [w + iindex];
-		if (index -> which == Stackel_NUMBER) {
-			MelderString_append (& totalVariableName, index -> number, iindex == nindex ? U"]" : U",");
-		} else if (index -> which == Stackel_STRING) {
-			MelderString_append (& totalVariableName, U"\"", index -> string, U"\"", iindex == nindex ? U"]" : U",");
-		} else {
-			Melder_throw (U"In indexed variables, the index has to be a number or a string, not ", Stackel_whichText (index), U".");
-		}
+		if (index -> which != Stackel_NUMBER)
+			Melder_throw (U"In indexed variables, the index has to be a number, not ", Stackel_whichText (index), U".");
+		MelderString_append (& totalVariableName, index -> number, iindex == nindex ? U"]" : U",");
 	}
 	InterpreterVariable var = Interpreter_hasVariable (theInterpreter, totalVariableName.string);
-	if (! var)
+	if (var == NULL)
 		Melder_throw (U"Undefined indexed variable " U_LEFT_GUILLEMET, totalVariableName.string, U_RIGHT_GUILLEMET U".");
 	pushNumber (var -> numericValue);
 }
-static void do_indexedStringVariable () {
+static void do_indexedStringVariable (void) {
 	Stackel n = pop;
 	Melder_assert (n -> which == Stackel_NUMBER);
 	int nindex = lround (n -> number);
@@ -3078,21 +3074,17 @@ static void do_indexedStringVariable () {
 	w -= nindex;
 	for (int iindex = 1; iindex <= nindex; iindex ++) {
 		Stackel index = & theStack [w + iindex];
-		if (index -> which == Stackel_NUMBER) {
-			MelderString_append (& totalVariableName, index -> number, iindex == nindex ? U"]" : U",");
-		} else if (index -> which == Stackel_STRING) {
-			MelderString_append (& totalVariableName, U"\"", index -> string, U"\"", iindex == nindex ? U"]" : U",");
-		} else {
-			Melder_throw (U"In indexed variables, the index has to be a number or a string, not ", Stackel_whichText (index), U".");
-		}
+		if (index -> which != Stackel_NUMBER)
+			Melder_throw (U"In indexed variables, the index has to be a number, not ", Stackel_whichText (index), U".");
+		MelderString_append (& totalVariableName, index -> number, iindex == nindex ? U"]" : U",");
 	}
 	InterpreterVariable var = Interpreter_hasVariable (theInterpreter, totalVariableName.string);
-	if (! var)
+	if (var == NULL)
 		Melder_throw (U"Undefined indexed variable " U_LEFT_GUILLEMET, totalVariableName.string, U_RIGHT_GUILLEMET U".");
 	autostring32 result = Melder_dup (var -> stringValue);
 	pushString (result.transfer());
 }
-static void do_length () {
+static void do_length (void) {
 	Stackel s = pop;
 	if (s->which == Stackel_STRING) {
 		double result = str32len (s->string);
@@ -3101,7 +3093,7 @@ static void do_length () {
 		Melder_throw (U"The function \"length\" requires a string, not ", Stackel_whichText (s), U".");
 	}
 }
-static void do_number () {
+static void do_number (void) {
 	Stackel s = pop;
 	if (s->which == Stackel_STRING) {
 		double result = Melder_atof (s->string);
@@ -3110,7 +3102,7 @@ static void do_number () {
 		Melder_throw (U"The function \"number\" requires a string, not ", Stackel_whichText (s), U".");
 	}
 }
-static void do_fileReadable () {
+static void do_fileReadable (void) {
 	Stackel s = pop;
 	if (s->which == Stackel_STRING) {
 		structMelderFile file = { 0 };
@@ -3120,24 +3112,24 @@ static void do_fileReadable () {
 		Melder_throw (U"The function \"fileReadable\" requires a string, not ", Stackel_whichText (s), U".");
 	}
 }
-static void do_dateStr () {
-	time_t today = time (nullptr);
+static void do_dateStr (void) {
+	time_t today = time (NULL);
 	char32 *date, *newline;
 	date = Melder_8to32 (ctime (& today));
 	newline = str32chr (date, U'\n');
 	if (newline) *newline = U'\0';
 	pushString (date);
 }
-static void do_infoStr () {
+static void do_infoStr (void) {
 	char32 *info = Melder_dup (Melder_getInfo ());
 	pushString (info);
 }
-static void do_leftStr () {
+static void do_leftStr (void) {
 	trace (U"enter");
 	Stackel narg = pop;
 	if (narg->number == 1 || narg->number == 2) {
-		Stackel x = ( narg->number == 2 ? pop : nullptr ), s = pop;
-		if (s->which == Stackel_STRING && (x == nullptr || x->which == Stackel_NUMBER)) {
+		Stackel x = ( narg->number == 2 ? pop : NULL ), s = pop;
+		if (s->which == Stackel_STRING && (x == NULL || x->which == Stackel_NUMBER)) {
 			long newlength = x ? lround (x->number) : 1;
 			long length = str32len (s->string);
 			if (newlength < 0) newlength = 0;
@@ -3159,11 +3151,11 @@ static void do_leftStr () {
 	}
 	trace (U"exit");
 }
-static void do_rightStr () {
+static void do_rightStr (void) {
 	Stackel narg = pop;
 	if (narg->number == 1 || narg->number == 2) {
-		Stackel x = ( narg->number == 2 ? pop : nullptr ), s = pop;
-		if (s->which == Stackel_STRING && (x == nullptr || x->which == Stackel_NUMBER)) {
+		Stackel x = ( narg->number == 2 ? pop : NULL ), s = pop;
+		if (s->which == Stackel_STRING && (x == NULL || x->which == Stackel_NUMBER)) {
 			long newlength = x ? lround (x->number) : 1;
 			long length = str32len (s->string);
 			if (newlength < 0) newlength = 0;
@@ -3176,11 +3168,11 @@ static void do_rightStr () {
 		Melder_throw (U"The function \"right$\" requires one or two arguments.");
 	}
 }
-static void do_midStr () {
+static void do_midStr (void) {
 	Stackel narg = pop;
 	if (narg->number == 2 || narg->number == 3) {
-		Stackel y = ( narg->number == 3 ? pop : nullptr ), x = pop, s = pop;
-		if (s->which == Stackel_STRING && x->which == Stackel_NUMBER && (y == nullptr || y->which == Stackel_NUMBER)) {
+		Stackel y = ( narg->number == 3 ? pop : NULL ), x = pop, s = pop;
+		if (s->which == Stackel_STRING && x->which == Stackel_NUMBER && (y == NULL || y->which == Stackel_NUMBER)) {
 			long newlength = y ? lround (y->number) : 1;
 			long start = lround (x->number);
 			long length = str32len (s->string), finish = start + newlength - 1;
@@ -3225,17 +3217,17 @@ static void do_backslashTrigraphsToUnicodeStr () {
 		Melder_throw (U"The function \"unicodeToBackslashTrigraphs$\" requires a string, not ", Stackel_whichText (s), U".");
 	}
 }
-static void do_environmentStr () {
+static void do_environmentStr (void) {
 	Stackel s = pop;
 	if (s->which == Stackel_STRING) {
 		char32 *value = Melder_getenv (s->string);
-		autostring32 result = Melder_dup (value ? value : U"");
+		autostring32 result = Melder_dup (value != NULL ? value : U"");
 		pushString (result.transfer());
 	} else {
 		Melder_throw (U"The function \"environment$\" requires a string, not ", Stackel_whichText (s), U".");
 	}
 }
-static void do_index () {
+static void do_index (void) {
 	Stackel t = pop, s = pop;
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING) {
 		char32 *substring = str32str (s->string, t->string);
@@ -3246,7 +3238,7 @@ static void do_index () {
 			Stackel_whichText (s), U" and ", Stackel_whichText (t), U".");
 	}
 }
-static void do_rindex () {
+static void do_rindex (void) {
 	Stackel part = pop, whole = pop;
 	if (whole->which == Stackel_STRING && part->which == Stackel_STRING) {
 		char32 *lastSubstring = str32str (whole->string, part->string);
@@ -3256,7 +3248,7 @@ static void do_rindex () {
 		} else if (lastSubstring) {
 			for (;;) {
 				char32 *substring = str32str (lastSubstring + 1, part->string);
-				if (! substring) break;
+				if (substring == NULL) break;
 				lastSubstring = substring;
 			}
 			pushNumber (lastSubstring - whole->string + 1);
@@ -3283,15 +3275,15 @@ static void do_index_regex (int backward) {
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING) {
 		const char32 *errorMessage;
 		regexp *compiled_regexp = CompileRE (t->string, & errorMessage, 0);
-		if (! compiled_regexp) {
+		if (compiled_regexp == NULL) {
 			Melder_throw (U"index_regex(): ", errorMessage, U".");
 		} else {
-			if (ExecRE (compiled_regexp, nullptr, s->string, nullptr, backward, '\0', '\0', nullptr, nullptr, nullptr)) {
+			if (ExecRE (compiled_regexp, NULL, s->string, NULL, backward, '\0', '\0', NULL, NULL, NULL)) {
 				char32 *place = (char32 *) compiled_regexp -> startp [0];
 				pushNumber (place - s->string + 1);
 				free (compiled_regexp);
 			} else {
-				pushNumber (false);
+				pushNumber (FALSE);
 			}
 		}
 	} else {
@@ -3299,7 +3291,7 @@ static void do_index_regex (int backward) {
 			U"\" requires two strings, not ", Stackel_whichText (s), U" and ", Stackel_whichText (t), U".");
 	}
 }
-static void do_replaceStr () {
+static void do_replaceStr (void) {
 	Stackel x = pop, u = pop, t = pop, s = pop;
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING && u->which == Stackel_STRING && x->which == Stackel_NUMBER) {
 		long numberOfMatches;
@@ -3309,12 +3301,12 @@ static void do_replaceStr () {
 		Melder_throw (U"The function \"replace$\" requires three strings and a number.");
 	}
 }
-static void do_replace_regexStr () {
+static void do_replace_regexStr (void) {
 	Stackel x = pop, u = pop, t = pop, s = pop;
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING && u->which == Stackel_STRING && x->which == Stackel_NUMBER) {
 		const char32 *errorMessage;
 		regexp *compiled_regexp = CompileRE (t->string, & errorMessage, 0);
-		if (! compiled_regexp) {
+		if (compiled_regexp == NULL) {
 			Melder_throw (U"replace_regex$(): ", errorMessage, U".");
 		} else {
 			long numberOfMatches;
@@ -3325,11 +3317,11 @@ static void do_replace_regexStr () {
 		Melder_throw (U"The function \"replace_regex$\" requires three strings and a number.");
 	}
 }
-static void do_extractNumber () {
+static void do_extractNumber (void) {
 	Stackel t = pop, s = pop;
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING) {
 		char32 *substring = str32str (s->string, t->string);
-		if (! substring) {
+		if (substring == NULL) {
 			pushNumber (NUMundefined);
 		} else {
 			/* Skip the prompt. */
@@ -3368,12 +3360,12 @@ static void do_extractNumber () {
 			U"\" requires two strings, not ", Stackel_whichText (s), U" and ", Stackel_whichText (t), U".");
 	}
 }
-static void do_extractTextStr (bool singleWord) {
+static void do_extractTextStr (int singleWord) {
 	Stackel t = pop, s = pop;
 	if (s->which == Stackel_STRING && t->which == Stackel_STRING) {
 		char32 *substring = str32str (s->string, t->string);
 		autostring32 result;
-		if (! substring) {
+		if (substring == NULL) {
 			result.reset (Melder_dup (U""));
 		} else {
 			long length;
@@ -3402,25 +3394,25 @@ static void do_extractTextStr (bool singleWord) {
 			U"\" requires two strings, not ", Stackel_whichText (s), U" and ", Stackel_whichText (t), U".");
 	}
 }
-static void do_selected () {
+static void do_selected (void) {
 	Stackel n = pop;
 	long result = 0;
 	if (n->number == 0) {
-		result = praat_idOfSelected (nullptr, 0);
+		result = praat_idOfSelected (NULL, 0);
 	} else if (n->number == 1) {
 		Stackel a = pop;
 		if (a->which == Stackel_STRING) {
-			ClassInfo klas = Thing_classFromClassName (a->string, nullptr);
+			ClassInfo klas = Thing_classFromClassName (a->string, NULL);
 			result = praat_idOfSelected (klas, 0);
 		} else if (a->which == Stackel_NUMBER) {
-			result = praat_idOfSelected (nullptr, lround (a->number));
+			result = praat_idOfSelected (NULL, lround (a->number));
 		} else {
 			Melder_throw (U"The function \"selected\" requires a string (an object type name) and/or a number.");
 		}
 	} else if (n->number == 2) {
 		Stackel x = pop, s = pop;
 		if (s->which == Stackel_STRING && x->which == Stackel_NUMBER) {
-			ClassInfo klas = Thing_classFromClassName (s->string, nullptr);
+			ClassInfo klas = Thing_classFromClassName (s->string, NULL);
 			result = praat_idOfSelected (klas, lround (x->number));
 		} else {
 			Melder_throw (U"The function \"selected\" requires a string (an object type name) and/or a number.");
@@ -3430,25 +3422,25 @@ static void do_selected () {
 	}
 	pushNumber (result);
 }
-static void do_selectedStr () {
+static void do_selectedStr (void) {
 	Stackel n = pop;
 	autostring32 result;
 	if (n->number == 0) {
-		result.reset (Melder_dup (praat_nameOfSelected (nullptr, 0)));
+		result.reset (Melder_dup (praat_nameOfSelected (NULL, 0)));
 	} else if (n->number == 1) {
 		Stackel a = pop;
 		if (a->which == Stackel_STRING) {
-			ClassInfo klas = Thing_classFromClassName (a->string, nullptr);
+			ClassInfo klas = Thing_classFromClassName (a->string, NULL);
 			result.reset (Melder_dup (praat_nameOfSelected (klas, 0)));
 		} else if (a->which == Stackel_NUMBER) {
-			result.reset (Melder_dup (praat_nameOfSelected (nullptr, lround (a->number))));
+			result.reset (Melder_dup (praat_nameOfSelected (NULL, lround (a->number))));
 		} else {
 			Melder_throw (U"The function \"selected$\" requires a string (an object type name) and/or a number.");
 		}
 	} else if (n->number == 2) {
 		Stackel x = pop, s = pop;
 		if (s->which == Stackel_STRING && x->which == Stackel_NUMBER) {
-			ClassInfo klas = Thing_classFromClassName (s->string, nullptr);
+			ClassInfo klas = Thing_classFromClassName (s->string, NULL);
 			result.reset (Melder_dup (praat_nameOfSelected (klas, lround (x->number))));
 		} else {
 			Melder_throw (U"The function \"selected$\" requires 0, 1, or 2 arguments, not ", n->number, U".");
@@ -3456,15 +3448,15 @@ static void do_selectedStr () {
 	}
 	pushString (result.transfer());
 }
-static void do_numberOfSelected () {
+static void do_numberOfSelected (void) {
 	Stackel n = pop;
 	long result = 0;
 	if (n->number == 0) {
-		result = praat_numberOfSelected (nullptr);
+		result = praat_numberOfSelected (NULL);
 	} else if (n->number == 1) {
 		Stackel s = pop;
 		if (s->which == Stackel_STRING) {
-			ClassInfo klas = Thing_classFromClassName (s->string, nullptr);
+			ClassInfo klas = Thing_classFromClassName (s->string, NULL);
 			result = praat_numberOfSelected (klas);
 		} else {
 			Melder_throw (U"The function \"numberOfSelected\" requires a string (an object type name), not ", Stackel_whichText (s), U".");
@@ -3489,25 +3481,25 @@ static int praat_findObjectFromString (const char32 *name) {
 		static MelderString buffer { 0 };
 		MelderString_copy (& buffer, name);
 		char32 *space = str32chr (buffer.string, U' ');
-		if (space == nullptr)
+		if (space == NULL)
 			Melder_throw (U"Missing space in object name \"", name, U"\".");
 		*space = U'\0';
 		char32 *className = & buffer.string [0], *givenName = space + 1;
 		WHERE_DOWN (1) {
-			Daata object = OBJECT;
-			if (str32equ (className, Thing_className (OBJECT)) && str32equ (givenName, object -> name))
+			Data object = (Data) OBJECT;
+			if (str32equ (className, Thing_className ((Thing) OBJECT)) && str32equ (givenName, object -> name))
 				return IOBJECT;
 		}
-		ClassInfo klas = Thing_classFromClassName (className, nullptr);
+		ClassInfo klas = Thing_classFromClassName (className, NULL);
 		WHERE_DOWN (1) {
-			Daata object = OBJECT;
-			if (str32equ (klas -> className, Thing_className (OBJECT)) && str32equ (givenName, object -> name))
+			Data object = (Data) OBJECT;
+			if (str32equ (klas -> className, Thing_className ((Thing) OBJECT)) && str32equ (givenName, object -> name))
 				return IOBJECT;
 		}
 	}
 	Melder_throw (U"No object with name \"", name, U"\".");
 }
-static void do_selectObject () {
+static void do_selectObject (void) {
 	Stackel n = pop;
 	praat_deselectAll ();
 	for (int iobject = 1; iobject <= n -> number; iobject ++) {
@@ -3525,7 +3517,7 @@ static void do_selectObject () {
 	praat_show ();
 	pushNumber (1);
 }
-static void do_plusObject () {
+static void do_plusObject (void) {
 	Stackel n = pop;
 	for (int iobject = 1; iobject <= n -> number; iobject ++) {
 		Stackel object = pop;
@@ -3542,7 +3534,7 @@ static void do_plusObject () {
 	praat_show ();
 	pushNumber (1);
 }
-static void do_minusObject () {
+static void do_minusObject (void) {
 	Stackel n = pop;
 	for (int iobject = 1; iobject <= n -> number; iobject ++) {
 		Stackel object = pop;
@@ -3559,7 +3551,7 @@ static void do_minusObject () {
 	praat_show ();
 	pushNumber (1);
 }
-static void do_removeObject () {
+static void do_removeObject (void) {
 	Stackel n = pop;
 	for (int iobject = 1; iobject <= n -> number; iobject ++) {
 		Stackel object = pop;
@@ -3576,7 +3568,7 @@ static void do_removeObject () {
 	praat_show ();
 	pushNumber (1);
 }
-static void do_stringStr () {
+static void do_stringStr (void) {
 	Stackel value = pop;
 	if (value->which == Stackel_NUMBER) {
 		autostring32 result = Melder_dup (Melder_double (value->number));
@@ -3585,7 +3577,7 @@ static void do_stringStr () {
 		Melder_throw (U"The function \"string$\" requires a number, not ", Stackel_whichText (value), U".");
 	}
 }
-static void do_fixedStr () {
+static void do_fixedStr (void) {
 	Stackel precision = pop, value = pop;
 	if (value->which == Stackel_NUMBER && precision->which == Stackel_NUMBER) {
 		autostring32 result = Melder_dup (Melder_fixed (value->number, lround (precision->number)));
@@ -3594,7 +3586,7 @@ static void do_fixedStr () {
 		Melder_throw (U"The function \"fixed$\" requires two numbers (value and precision), not ", Stackel_whichText (value), U" and ", Stackel_whichText (precision), U".");
 	}
 }
-static void do_percentStr () {
+static void do_percentStr (void) {
 	Stackel precision = pop, value = pop;
 	if (value->which == Stackel_NUMBER && precision->which == Stackel_NUMBER) {
 		autostring32 result = Melder_dup (Melder_percent (value->number, lround (precision->number)));
@@ -3603,7 +3595,7 @@ static void do_percentStr () {
 		Melder_throw (U"The function \"percent$\" requires two numbers (value and precision), not ", Stackel_whichText (value), U" and ", Stackel_whichText (precision), U".");
 	}
 }
-static void do_deleteFile () {
+static void do_deleteFile (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"deleteFile\" is not available inside manuals.");
 	Stackel f = pop;
@@ -3616,7 +3608,7 @@ static void do_deleteFile () {
 		Melder_throw (U"The function \"deleteFile\" requires a string, not ", Stackel_whichText (f), U".");
 	}
 }
-static void do_createDirectory () {
+static void do_createDirectory (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"createDirectory\" is not available inside manuals.");
 	Stackel f = pop;
@@ -3633,16 +3625,16 @@ static void do_createDirectory () {
 		Melder_throw (U"The function \"createDirectory\" requires a string, not ", Stackel_whichText (f), U".");
 	}
 }
-static void do_variableExists () {
+static void do_variableExists (void) {
 	Stackel f = pop;
 	if (f->which == Stackel_STRING) {
-		bool result = Interpreter_hasVariable (theInterpreter, f->string) != nullptr;
+		bool result = Interpreter_hasVariable (theInterpreter, f->string) != NULL;
 		pushNumber (result);
 	} else {
 		Melder_throw (U"The function \"variableExists\" requires a string, not ", Stackel_whichText (f), U".");
 	}
 }
-static void do_readFile () {
+static void do_readFile (void) {
 	Stackel f = pop;
 	if (f->which == Stackel_STRING) {
 		structMelderFile file = { 0 };
@@ -3653,7 +3645,7 @@ static void do_readFile () {
 		Melder_throw (U"The function \"readFile\" requires a string (a file name), not ", Stackel_whichText (f), U".");
 	}
 }
-static void do_readFileStr () {
+static void do_readFileStr (void) {
 	Stackel f = pop;
 	if (f->which == Stackel_STRING) {
 		structMelderFile file = { 0 };
@@ -3664,7 +3656,7 @@ static void do_readFileStr () {
 		Melder_throw (U"The function \"readFile$\" requires a string (a file name), not ", Stackel_whichText (f), U".");
 	}
 }
-static void do_beginPauseForm () {
+static void do_beginPauseForm (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"beginPauseForm\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3680,13 +3672,13 @@ static void do_beginPauseForm () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddReal () {
+static void do_pauseFormAddReal (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"real\" is not available inside manuals.");
 	Stackel n = pop;
 	if (n->number == 2) {
 		Stackel defaultValue = pop;
-		const char32 *defaultString = nullptr;
+		const char32 *defaultString = NULL;
 		if (defaultValue->which == Stackel_STRING) {
 			defaultString = defaultValue->string;
 		} else if (defaultValue->which == Stackel_NUMBER) {
@@ -3705,13 +3697,13 @@ static void do_pauseFormAddReal () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddPositive () {
+static void do_pauseFormAddPositive (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"positive\" is not available inside manuals.");
 	Stackel n = pop;
 	if (n->number == 2) {
 		Stackel defaultValue = pop;
-		const char32 *defaultString = nullptr;
+		const char32 *defaultString = NULL;
 		if (defaultValue->which == Stackel_STRING) {
 			defaultString = defaultValue->string;
 		} else if (defaultValue->which == Stackel_NUMBER) {
@@ -3730,13 +3722,13 @@ static void do_pauseFormAddPositive () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddInteger () {
+static void do_pauseFormAddInteger (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"integer\" is not available inside manuals.");
 	Stackel n = pop;
 	if (n->number == 2) {
 		Stackel defaultValue = pop;
-		const char32 *defaultString = nullptr;
+		const char32 *defaultString = NULL;
 		if (defaultValue->which == Stackel_STRING) {
 			defaultString = defaultValue->string;
 		} else if (defaultValue->which == Stackel_NUMBER) {
@@ -3755,13 +3747,13 @@ static void do_pauseFormAddInteger () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddNatural () {
+static void do_pauseFormAddNatural (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"natural\" is not available inside manuals.");
 	Stackel n = pop;
 	if (n->number == 2) {
 		Stackel defaultValue = pop;
-		const char32 *defaultString = nullptr;
+		const char32 *defaultString = NULL;
 		if (defaultValue->which == Stackel_STRING) {
 			defaultString = defaultValue->string;
 		} else if (defaultValue->which == Stackel_NUMBER) {
@@ -3780,7 +3772,7 @@ static void do_pauseFormAddNatural () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddWord () {
+static void do_pauseFormAddWord (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"word\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3800,7 +3792,7 @@ static void do_pauseFormAddWord () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddSentence () {
+static void do_pauseFormAddSentence (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"sentence\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3820,7 +3812,7 @@ static void do_pauseFormAddSentence () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddText () {
+static void do_pauseFormAddText (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"text\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3840,7 +3832,7 @@ static void do_pauseFormAddText () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddBoolean () {
+static void do_pauseFormAddBoolean (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"boolean\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3860,7 +3852,7 @@ static void do_pauseFormAddBoolean () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddChoice () {
+static void do_pauseFormAddChoice (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"choice\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3880,7 +3872,7 @@ static void do_pauseFormAddChoice () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddOptionMenu () {
+static void do_pauseFormAddOptionMenu (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"optionMenu\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3900,7 +3892,7 @@ static void do_pauseFormAddOptionMenu () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddOption () {
+static void do_pauseFormAddOption (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"option\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3916,7 +3908,7 @@ static void do_pauseFormAddOption () {
 	}
 	pushNumber (1);
 }
-static void do_pauseFormAddComment () {
+static void do_pauseFormAddComment (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"comment\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3932,7 +3924,7 @@ static void do_pauseFormAddComment () {
 	}
 	pushNumber (1);
 }
-static void do_endPauseForm () {
+static void do_endPauseForm (void) {
 	if (theCurrentPraatObjects != & theForegroundPraatObjects)
 		Melder_throw (U"The function \"endPause\" is not available inside manuals.");
 	Stackel n = pop;
@@ -3960,26 +3952,26 @@ static void do_endPauseForm () {
 				U" argument(s) of \"endPause\" has to be a string (a button text), not ", Stackel_whichText (co[i]), U".");
 	}
 	int buttonClicked = UiPause_end (numberOfContinueButtons, defaultContinueButton, cancelContinueButton,
-		! co [1] ? nullptr : co[1]->string, ! co [2] ? nullptr : co[2]->string,
-		! co [3] ? nullptr : co[3]->string, ! co [4] ? nullptr : co[4]->string,
-		! co [5] ? nullptr : co[5]->string, ! co [6] ? nullptr : co[6]->string,
-		! co [7] ? nullptr : co[7]->string, ! co [8] ? nullptr : co[8]->string,
-		! co [9] ? nullptr : co[9]->string, ! co [10] ? nullptr : co[10]->string,
+		co [1] == NULL ? NULL : co[1]->string, co [2] == NULL ? NULL : co[2]->string,
+		co [3] == NULL ? NULL : co[3]->string, co [4] == NULL ? NULL : co[4]->string,
+		co [5] == NULL ? NULL : co[5]->string, co [6] == NULL ? NULL : co[6]->string,
+		co [7] == NULL ? NULL : co[7]->string, co [8] == NULL ? NULL : co[8]->string,
+		co [9] == NULL ? NULL : co[9]->string, co [10] == NULL ? NULL : co[10]->string,
 		theInterpreter);
 	//Melder_casual (U"Button ", buttonClicked);
 	pushNumber (buttonClicked);
 }
-static void do_chooseReadFileStr () {
+static void do_chooseReadFileStr (void) {
 	Stackel n = pop;
 	if (n->number == 1) {
 		Stackel title = pop;
 		if (title->which == Stackel_STRING) {
-			autoStringSet fileNames = GuiFileSelect_getInfileNames (nullptr, title->string, false);
-			if (fileNames->size == 0) {
+			autoSortedSetOfString fileNames = GuiFileSelect_getInfileNames (NULL, title->string, false);
+			if (fileNames -> size == 0) {
 				autostring32 result = Melder_dup (U"");
 				pushString (result.transfer());
 			} else {
-				SimpleString fileName = fileNames->at [1];
+				SimpleString fileName = (SimpleString) fileNames -> item [1];
 				autostring32 result = Melder_dup (fileName -> string);
 				pushString (result.transfer());
 			}
@@ -3990,13 +3982,13 @@ static void do_chooseReadFileStr () {
 		Melder_throw (U"The function \"chooseReadFile$\" requires 1 argument (a title), not ", n->number, U".");
 	}
 }
-static void do_chooseWriteFileStr () {
+static void do_chooseWriteFileStr (void) {
 	Stackel n = pop;
 	if (n->number == 2) {
 		Stackel defaultName = pop, title = pop;
 		if (title->which == Stackel_STRING && defaultName->which == Stackel_STRING) {
-			autostring32 result = GuiFileSelect_getOutfileName (nullptr, title->string, defaultName->string);
-			if (! result.peek()) {
+			autostring32 result = GuiFileSelect_getOutfileName (NULL, title->string, defaultName->string);
+			if (result.peek() == NULL) {
 				result.reset (Melder_dup (U""));
 			}
 			pushString (result.transfer());
@@ -4007,13 +3999,13 @@ static void do_chooseWriteFileStr () {
 		Melder_throw (U"The function \"chooseWriteFile$\" requires 2 arguments (a title and a default name), not ", n->number, U".");
 	}
 }
-static void do_chooseDirectoryStr () {
+static void do_chooseDirectoryStr (void) {
 	Stackel n = pop;
 	if (n->number == 1) {
 		Stackel title = pop;
 		if (title->which == Stackel_STRING) {
-			autostring32 result = GuiFileSelect_getDirectoryName (nullptr, title->string);
-			if (! result.peek()) {
+			autostring32 result = GuiFileSelect_getDirectoryName (NULL, title->string);
+			if (result.peek() == NULL) {
 				result.reset (Melder_dup (U""));
 			}
 			pushString (result.transfer());
@@ -4024,7 +4016,7 @@ static void do_chooseDirectoryStr () {
 		Melder_throw (U"The function \"chooseDirectory$\" requires 1 argument (a title), not ", n->number, U".");
 	}
 }
-static void do_demoWindowTitle () {
+static void do_demoWindowTitle (void) {
 	Stackel n = pop;
 	if (n->number == 1) {
 		Stackel title = pop;
@@ -4038,21 +4030,21 @@ static void do_demoWindowTitle () {
 	}
 	pushNumber (1);
 }
-static void do_demoShow () {
+static void do_demoShow (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoShow\" requires 0 arguments, not ", n->number, U".");
 	Demo_show ();
 	pushNumber (1);
 }
-static void do_demoWaitForInput () {
+static void do_demoWaitForInput (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoWaitForInput\" requires 0 arguments, not ", n->number, U".");
 	Demo_waitForInput (theInterpreter);
 	pushNumber (1);
 }
-static void do_demoInput () {
+static void do_demoInput (void) {
 	Stackel n = pop;
 	if (n->number == 1) {
 		Stackel keys = pop;
@@ -4066,7 +4058,7 @@ static void do_demoInput () {
 		Melder_throw (U"The function \"demoInput\" requires 1 argument (keys), not ", n->number, U".");
 	}
 }
-static void do_demoClickedIn () {
+static void do_demoClickedIn (void) {
 	Stackel n = pop;
 	if (n->number == 4) {
 		Stackel top = pop, bottom = pop, right = pop, left = pop;
@@ -4080,35 +4072,35 @@ static void do_demoClickedIn () {
 		Melder_throw (U"The function \"demoClickedIn\" requires 4 arguments (x and y ranges), not ", n->number, U".");
 	}
 }
-static void do_demoClicked () {
+static void do_demoClicked (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoClicked\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_clicked ();
 	pushNumber (result);
 }
-static void do_demoX () {
+static void do_demoX (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoX\" requires 0 arguments, not ", n->number, U".");
 	double result = Demo_x ();
 	pushNumber (result);
 }
-static void do_demoY () {
+static void do_demoY (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoY\" requires 0 arguments, not ", n->number, U".");
 	double result = Demo_y ();
 	pushNumber (result);
 }
-static void do_demoKeyPressed () {
+static void do_demoKeyPressed (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoKeyPressed\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_keyPressed ();
 	pushNumber (result);
 }
-static void do_demoKey () {
+static void do_demoKey (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoKey\" requires 0 arguments, not ", n->number, U".");
@@ -4117,35 +4109,35 @@ static void do_demoKey () {
 	key [1] = U'\0';
 	pushString (key.transfer());
 }
-static void do_demoShiftKeyPressed () {
+static void do_demoShiftKeyPressed (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoShiftKeyPressed\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_shiftKeyPressed ();
 	pushNumber (result);
 }
-static void do_demoCommandKeyPressed () {
+static void do_demoCommandKeyPressed (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoCommandKeyPressed\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_commandKeyPressed ();
 	pushNumber (result);
 }
-static void do_demoOptionKeyPressed () {
+static void do_demoOptionKeyPressed (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoOptionKeyPressed\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_optionKeyPressed ();
 	pushNumber (result);
 }
-static void do_demoExtraControlKeyPressed () {
+static void do_demoExtraControlKeyPressed (void) {
 	Stackel n = pop;
 	if (n->number != 0)
 		Melder_throw (U"The function \"demoControlKeyPressed\" requires 0 arguments, not ", n->number, U".");
 	bool result = Demo_extraControlKeyPressed ();
 	pushNumber (result);
 }
-static long Stackel_getRowNumber (Stackel row, Daata thee) {
+static long Stackel_getRowNumber (Stackel row, Data thee) {
 	long result = 0;
 	if (row->which == Stackel_NUMBER) {
 		result = lround (row->number);
@@ -4160,7 +4152,7 @@ static long Stackel_getRowNumber (Stackel row, Daata thee) {
 	}
 	return result;
 }
-static long Stackel_getColumnNumber (Stackel column, Daata thee) {
+static long Stackel_getColumnNumber (Stackel column, Data thee) {
 	long result = 0;
 	if (column->which == Stackel_NUMBER) {
 		result = lround (column->number);
@@ -4176,8 +4168,8 @@ static long Stackel_getColumnNumber (Stackel column, Daata thee) {
 	return result;
 }
 static void do_self0 (long irow, long icol) {
-	Daata me = theSource;
-	if (! me) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
+	Data me = theSource;
+	if (me == NULL) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
 	if (my v_hasGetCell ()) {
 		pushNumber (my v_getCell ());
 	} else if (my v_hasGetVector ()) {
@@ -4208,8 +4200,8 @@ static void do_self0 (long irow, long icol) {
 	}
 }
 static void do_selfStr0 (long irow, long icol) {
-	Daata me = theSource;
-	if (! me) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
+	Data me = theSource;
+	if (me == NULL) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
 	if (my v_hasGetCellStr ()) {
 		autostring32 result = Melder_dup (my v_getCellStr ());
 		pushString (result.transfer());
@@ -4242,8 +4234,8 @@ static void do_selfStr0 (long irow, long icol) {
 		Melder_throw (Thing_className (me), U" objects (like self) accept no [] indexing.");
 	}
 }
-static Daata getObjectFromUniqueID (Stackel object) {
-	Daata thee = nullptr;
+static Data getObjectFromUniqueID (Stackel object) {
+	Data thee = NULL;
 	if (object->which == Stackel_NUMBER) {
 		int i = theCurrentPraatObjects -> n;
 		while (i > 0 && object->number != theCurrentPraatObjects -> list [i]. id)
@@ -4251,7 +4243,7 @@ static Daata getObjectFromUniqueID (Stackel object) {
 		if (i == 0) {
 			Melder_throw (U"No such object: ", object->number);
 		}
-		thee = (Daata) theCurrentPraatObjects -> list [i]. object;
+		thee = (Data) theCurrentPraatObjects -> list [i]. object;
 	} else if (object->which == Stackel_STRING) {
 		int i = theCurrentPraatObjects -> n;
 		while (i > 0 && ! Melder_equ (object->string, theCurrentPraatObjects -> list [i]. name))
@@ -4259,14 +4251,14 @@ static Daata getObjectFromUniqueID (Stackel object) {
 		if (i == 0) {
 			Melder_throw (U"No such object: ", object->string);
 		}
-		thee = (Daata) theCurrentPraatObjects -> list [i]. object;
+		thee = (Data) theCurrentPraatObjects -> list [i]. object;
 	} else {
 		Melder_throw (U"The first argument to \"object\" must be a number (unique ID) or a string (name), not ", Stackel_whichText (object), U".");
 	}
 	return thee;
 }
 static void do_objectCell0 (long irow, long icol) {
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	if (thy v_hasGetCell ()) {
 		pushNumber (thy v_getCell ());
 	} else if (thy v_hasGetVector ()) {
@@ -4296,7 +4288,7 @@ static void do_objectCell0 (long irow, long icol) {
 	}
 }
 static void do_matriks0 (long irow, long icol) {
-	Daata thee = parse [programPointer]. content.object;
+	Data thee = parse [programPointer]. content.object;
 	if (thy v_hasGetCell ()) {
 		pushNumber (thy v_getCell ());
 	} else if (thy v_hasGetVector ()) {
@@ -4326,9 +4318,9 @@ static void do_matriks0 (long irow, long icol) {
 	}
 }
 static void do_selfMatriks1 (long irow) {
-	Daata me = theSource;
+	Data me = theSource;
 	Stackel column = pop;
-	if (! me) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
+	if (me == NULL) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
 	long icol = Stackel_getColumnNumber (column, me);
 	if (my v_hasGetVector ()) {
 		pushNumber (my v_getVector (irow, icol));
@@ -4345,9 +4337,9 @@ static void do_selfMatriks1 (long irow) {
 	}
 }
 static void do_selfMatriksStr1 (long irow) {
-	Daata me = theSource;
+	Data me = theSource;
 	Stackel column = pop;
-	if (! me) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
+	if (me == NULL) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
 	long icol = Stackel_getColumnNumber (column, me);
 	if (my v_hasGetVectorStr ()) {
 		autostring32 result = Melder_dup (my v_getVectorStr (icol));
@@ -4367,7 +4359,7 @@ static void do_selfMatriksStr1 (long irow) {
 }
 static void do_objectCell1 (long irow) {
 	Stackel column = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (thy v_hasGetVector ()) {
 		pushNumber (thy v_getVector (irow, icol));
@@ -4384,7 +4376,7 @@ static void do_objectCell1 (long irow) {
 	}
 }
 static void do_matriks1 (long irow) {
-	Daata thee = parse [programPointer]. content.object;
+	Data thee = parse [programPointer]. content.object;
 	Stackel column = pop;
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (thy v_hasGetVector ()) {
@@ -4403,7 +4395,7 @@ static void do_matriks1 (long irow) {
 }
 static void do_objectCellStr1 (long irow) {
 	Stackel column = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (thy v_hasGetVectorStr ()) {
 		autostring32 result = Melder_dup (thy v_getVectorStr (icol));
@@ -4422,7 +4414,7 @@ static void do_objectCellStr1 (long irow) {
 	}
 }
 static void do_matrixStr1 (long irow) {
-	Daata thee = parse [programPointer]. content.object;
+	Data thee = parse [programPointer]. content.object;
 	Stackel column = pop;
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (thy v_hasGetVectorStr ()) {
@@ -4441,20 +4433,20 @@ static void do_matrixStr1 (long irow) {
 		Melder_throw (Thing_className (thee), U" objects accept no [column] indexes for string cells.");
 	}
 }
-static void do_selfMatriks2 () {
-	Daata me = theSource;
+static void do_selfMatriks2 (void) {
+	Data me = theSource;
 	Stackel column = pop, row = pop;
-	if (! me) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
+	if (me == NULL) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
 	long irow = Stackel_getRowNumber (row, me);
 	long icol = Stackel_getColumnNumber (column, me);
 	if (! my v_hasGetMatrix ())
 		Melder_throw (Thing_className (me), U" objects like \"self\" accept no [row, column] indexing.");
 	pushNumber (my v_getMatrix (irow, icol));
 }
-static void do_selfMatriksStr2 () {
-	Daata me = theSource;
+static void do_selfMatriksStr2 (void) {
+	Data me = theSource;
 	Stackel column = pop, row = pop;
-	if (! me) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
+	if (me == NULL) Melder_throw (U"The name \"self$\" is restricted to formulas for objects.");
 	long irow = Stackel_getRowNumber (row, me);
 	long icol = Stackel_getColumnNumber (column, me);
 	if (! my v_hasGetMatrixStr ())
@@ -4462,17 +4454,17 @@ static void do_selfMatriksStr2 () {
 	autostring32 result = Melder_dup (my v_getMatrixStr (irow, icol));
 	pushString (result.transfer());
 }
-static void do_objectCell2 () {
+static void do_objectCell2 (void) {
 	Stackel column = pop, row = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	long irow = Stackel_getRowNumber (row, thee);
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (! thy v_hasGetMatrix ())
 		Melder_throw (Thing_className (thee), U" objects accept no [id, row, column] indexing.");
 	pushNumber (thy v_getMatrix (irow, icol));
 }
-static void do_matriks2 () {
-	Daata thee = parse [programPointer]. content.object;
+static void do_matriks2 (void) {
+	Data thee = parse [programPointer]. content.object;
 	Stackel column = pop, row = pop;
 	long irow = Stackel_getRowNumber (row, thee);
 	long icol = Stackel_getColumnNumber (column, thee);
@@ -4480,9 +4472,9 @@ static void do_matriks2 () {
 		Melder_throw (Thing_className (thee), U" objects accept no [row, column] indexing.");
 	pushNumber (thy v_getMatrix (irow, icol));
 }
-static void do_objectCellStr2 () {
+static void do_objectCellStr2 (void) {
 	Stackel column = pop, row = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	long irow = Stackel_getRowNumber (row, thee);
 	long icol = Stackel_getColumnNumber (column, thee);
 	if (! thy v_hasGetMatrixStr ())
@@ -4490,8 +4482,8 @@ static void do_objectCellStr2 () {
 	autostring32 result = Melder_dup (thy v_getMatrixStr (irow, icol));
 	pushString (result.transfer());
 }
-static void do_matriksStr2 () {
-	Daata thee = parse [programPointer]. content.object;
+static void do_matriksStr2 (void) {
+	Data thee = parse [programPointer]. content.object;
 	Stackel column = pop, row = pop;
 	long irow = Stackel_getRowNumber (row, thee);
 	long icol = Stackel_getColumnNumber (column, thee);
@@ -4501,12 +4493,12 @@ static void do_matriksStr2 () {
 	pushString (result.transfer());
 }
 static void do_objectLocation0 (long irow, long icol) {
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	if (thy v_hasGetFunction0 ()) {
 		pushNumber (thy v_getFunction0 ());
 	} else if (thy v_hasGetFunction1 ()) {
-		Daata me = theSource;
-		if (! me)
+		Data me = theSource;
+		if (me == NULL)
 			Melder_throw (U"No current object (we are not in a Formula command),\n"
 				U"hence no implicit x value for this ", Thing_className (thee), U" object.\n"
 				U"Try using: object (id, x).");
@@ -4518,8 +4510,8 @@ static void do_objectLocation0 (long irow, long icol) {
 		double x = my v_getX (icol);
 		pushNumber (thy v_getFunction1 (irow, x));
 	} else if (thy v_hasGetFunction2 ()) {
-		Daata me = theSource;
-		if (! me)
+		Data me = theSource;
+		if (me == NULL)
 			Melder_throw (U"No current object (we are not in a Formula command),\n"
 				U"hence no implicit x or y values for this ", Thing_className (thee), U" object.\n"
 				U"Try using: object (id, x, y).");
@@ -4539,12 +4531,12 @@ static void do_objectLocation0 (long irow, long icol) {
 	}
 }
 static void do_funktie0 (long irow, long icol) {
-	Daata thee = parse [programPointer]. content.object;
+	Data thee = parse [programPointer]. content.object;
 	if (thy v_hasGetFunction0 ()) {
 		pushNumber (thy v_getFunction0 ());
 	} else if (thy v_hasGetFunction1 ()) {
-		Daata me = theSource;
-		if (!me)
+		Data me = theSource;
+		if (me == NULL)
 			Melder_throw (U"No current object (we are not in a Formula command),\n"
 				U"hence no implicit x value for this ", Thing_className (thee), U" object.\n"
 				U"Try using the (x) argument explicitly.");
@@ -4556,8 +4548,8 @@ static void do_funktie0 (long irow, long icol) {
 		double x = my v_getX (icol);
 		pushNumber (thy v_getFunction1 (irow, x));
 	} else if (thy v_hasGetFunction2 ()) {
-		Daata me = theSource;
-		if (! me)
+		Data me = theSource;
+		if (me == NULL)
 			Melder_throw (U"No current object (we are not in a Formula command),\n"
 				U"hence no implicit x or y values for this ", Thing_className (thee), U" object.\n"
 				U"Try using both (x, y) arguments explicitly.");
@@ -4577,10 +4569,10 @@ static void do_funktie0 (long irow, long icol) {
 	}
 }
 static void do_selfFunktie1 (long irow) {
-	Daata me = theSource;
+	Data me = theSource;
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
-		if (! me) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
+		if (me == NULL) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
 		if (my v_hasGetFunction1 ()) {
 			pushNumber (my v_getFunction1 (irow, x->number));
 		} else if (my v_hasGetFunction2 ()) {
@@ -4598,13 +4590,13 @@ static void do_selfFunktie1 (long irow) {
 }
 static void do_objectLocation1 (long irow) {
 	Stackel x = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	if (x->which == Stackel_NUMBER) {
 		if (thy v_hasGetFunction1 ()) {
 			pushNumber (thy v_getFunction1 (irow, x->number));
 		} else if (thy v_hasGetFunction2 ()) {
-			Daata me = theSource;
-			if (! me)
+			Data me = theSource;
+			if (me == NULL)
 				Melder_throw (U"No current object (we are not in a Formula command),\n"
 					U"hence no implicit y value for this ", Thing_className (thee), U" object.\n"
 					U"Try using: object (id, x, y).");
@@ -4622,14 +4614,14 @@ static void do_objectLocation1 (long irow) {
 	}
 }
 static void do_funktie1 (long irow) {
-	Daata thee = parse [programPointer]. content.object;
+	Data thee = parse [programPointer]. content.object;
 	Stackel x = pop;
 	if (x->which == Stackel_NUMBER) {
 		if (thy v_hasGetFunction1 ()) {
 			pushNumber (thy v_getFunction1 (irow, x->number));
 		} else if (thy v_hasGetFunction2 ()) {
-			Daata me = theSource;
-			if (! me)
+			Data me = theSource;
+			if (me == NULL)
 				Melder_throw (U"No current object (we are not in a Formula command),\n"
 					U"hence no implicit y value for this ", Thing_className (thee), U" object.\n"
 					U"Try using both (x, y) arguments instead.");
@@ -4646,11 +4638,11 @@ static void do_funktie1 (long irow) {
 		Melder_throw (Thing_className (thee), U" objects accept only numeric x values.");
 	}
 }
-static void do_selfFunktie2 () {
-	Daata me = theSource;
+static void do_selfFunktie2 (void) {
+	Data me = theSource;
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
-		if (! me) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
+		if (me == NULL) Melder_throw (U"The name \"self\" is restricted to formulas for objects.");
 		if (! my v_hasGetFunction2 ())
 			Melder_throw (Thing_className (me), U" objects like \"self\" accept no (x, y) values.");
 		pushNumber (my v_getFunction2 (x->number, y->number));
@@ -4658,9 +4650,9 @@ static void do_selfFunktie2 () {
 		Melder_throw (Thing_className (me), U" objects accept only numeric x values.");
 	}
 }
-static void do_objectLocation2 () {
+static void do_objectLocation2 (void) {
 	Stackel y = pop, x = pop;
-	Daata thee = getObjectFromUniqueID (pop);
+	Data thee = getObjectFromUniqueID (pop);
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		if (! thy v_hasGetFunction2 ())
 			Melder_throw (Thing_className (thee), U" objects accept no (x, y) values.");
@@ -4669,8 +4661,8 @@ static void do_objectLocation2 () {
 		Melder_throw (Thing_className (thee), U" objects accept only numeric x values.");
 	}
 }
-static void do_funktie2 () {
-	Daata thee = parse [programPointer]. content.object;
+static void do_funktie2 (void) {
+	Data thee = parse [programPointer]. content.object;
 	Stackel y = pop, x = pop;
 	if (x->which == Stackel_NUMBER && y->which == Stackel_NUMBER) {
 		if (! thy v_hasGetFunction2 ())
@@ -4680,21 +4672,21 @@ static void do_funktie2 () {
 		Melder_throw (Thing_className (thee), U" objects accept only numeric x values.");
 	}
 }
-static void do_rowStr () {
-	Daata thee = parse [programPointer]. content.object;
+static void do_rowStr (void) {
+	Data thee = parse [programPointer]. content.object;
 	Stackel row = pop;
 	long irow = Stackel_getRowNumber (row, thee);
 	autostring32 result = Melder_dup (thy v_getRowStr (irow));
-	if (! result.peek())
+	if (result.peek() == NULL)
 		Melder_throw (U"Row index out of bounds.");
 	pushString (result.transfer());
 }
-static void do_colStr () {
-	Daata thee = parse [programPointer]. content.object;
+static void do_colStr (void) {
+	Data thee = parse [programPointer]. content.object;
 	Stackel col = pop;
 	long icol = Stackel_getColumnNumber (col, thee);
 	autostring32 result = Melder_dup (thy v_getColStr (icol));
-	if (! result.peek())
+	if (result.peek() == NULL)
 		Melder_throw (U"Column index out of bounds.");
 	pushString (result.transfer());
 }
@@ -4715,8 +4707,8 @@ static double NUMerf (double x) {
 void Formula_run (long row, long col, struct Formula_Result *result) {
 	FormulaInstruction f = parse;
 	programPointer = 1;   // first symbol of the program
-	if (! theStack) theStack = Melder_calloc_f (struct structStackel, 10000);
-	if (! theStack)
+	if (theStack == NULL) theStack = Melder_calloc_f (struct structStackel, 10000);
+	if (theStack == NULL)
 		Melder_throw (U"Out of memory during formula computation.");
 	w = 0, wmax = 0;   // start new stack
 	try {
@@ -4729,11 +4721,11 @@ case NUMBER_: { pushNumber (f [programPointer]. content.number);
 } break; case ROW_: { pushNumber (row);
 } break; case COL_: { pushNumber (col);
 } break; case X_: {
-	Daata me = theSource;
+	Data me = theSource;
 	if (! my v_hasGetX ()) Melder_throw (U"No values for \"x\" for this object.");
 	pushNumber (my v_getX (col));
 } break; case Y_: {
-	Daata me = theSource;
+	Data me = theSource;
 	if (! my v_hasGetY ()) Melder_throw (U"No values for \"y\" for this object.");
 	pushNumber (my v_getY (row));
 } break; case NOT_: { do_not ();
@@ -4870,12 +4862,12 @@ case NUMBER_: { pushNumber (f [programPointer]. content.number);
 } break; case STARTS_WITH_: { do_stringMatchesCriterion (kMelder_string_STARTS_WITH);
 } break; case ENDS_WITH_: { do_stringMatchesCriterion (kMelder_string_ENDS_WITH);
 } break; case REPLACESTR_: { do_replaceStr ();
-} break; case INDEX_REGEX_: { do_index_regex (false);
-} break; case RINDEX_REGEX_: { do_index_regex (true);
+} break; case INDEX_REGEX_: { do_index_regex (FALSE);
+} break; case RINDEX_REGEX_: { do_index_regex (TRUE);
 } break; case REPLACE_REGEXSTR_: { do_replace_regexStr ();
 } break; case EXTRACT_NUMBER_: { do_extractNumber ();
-} break; case EXTRACT_WORDSTR_: { do_extractTextStr (true);
-} break; case EXTRACT_LINESTR_: { do_extractTextStr (false);
+} break; case EXTRACT_WORDSTR_: { do_extractTextStr (TRUE);
+} break; case EXTRACT_LINESTR_: { do_extractTextStr (FALSE);
 } break; case SELECTED_: { do_selected ();
 } break; case SELECTEDSTR_: { do_selectedStr ();
 } break; case NUMBER_OF_SELECTED_: { do_numberOfSelected ();
@@ -5046,7 +5038,7 @@ case NUMBER_: { pushNumber (f [programPointer]. content.number);
 			if (theStack [1]. which == Stackel_NUMERIC_ARRAY) Melder_throw (U"Found a numeric array expression instead of a string expression.");
 			result -> expressionType = kFormula_EXPRESSION_TYPE_STRING;
 			result -> result.stringResult = theStack [1]. string;   // dangle...
-			theStack [1]. string = nullptr;   // ...undangle (and disown)
+			theStack [1]. string = NULL;   // ...undangle (and disown)
 		} else if (theExpressionType [theLevel] == kFormula_EXPRESSION_TYPE_NUMERIC_ARRAY) {
 			if (theStack [1]. which == Stackel_NUMBER) Melder_throw (U"Found a numeric expression instead of a numeric array expression.");
 			if (theStack [1]. which == Stackel_STRING) Melder_throw (U"Found a string expression instead of a numeric array expression.");
@@ -5062,7 +5054,7 @@ case NUMBER_: { pushNumber (f [programPointer]. content.number);
 				Melder_assert (theStack [1]. which == Stackel_STRING);
 				result -> expressionType = kFormula_EXPRESSION_TYPE_STRING;
 				result -> result.stringResult = theStack [1]. string;   // dangle...
-				theStack [1]. string = nullptr;   // ...undangle (and disown)
+				theStack [1]. string = NULL;   // ...undangle (and disown)
 			}
 		}
 		/*
diff --git a/sys/Formula.h b/sys/Formula.h
index c10fc55..80d04f3 100644
--- a/sys/Formula.h
+++ b/sys/Formula.h
@@ -19,7 +19,7 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include "Data.h"
+#include "Thing.h"
 
 #define kFormula_EXPRESSION_TYPE_NUMERIC  0
 #define kFormula_EXPRESSION_TYPE_STRING  1
@@ -32,7 +32,7 @@ struct Formula_NumericArray {
 	double **data;
 };
 
-Thing_declare (InterpreterVariable);
+typedef struct structInterpreterVariable *InterpreterVariable;
 
 typedef struct structStackel {
 	#define Stackel_NUMBER  0
@@ -59,9 +59,7 @@ struct Formula_Result {
 	} result;
 };
 
-Thing_declare (Interpreter);
-
-void Formula_compile (Interpreter interpreter, Daata data, const char32 *expression, int expressionType, bool optimize);
+void Formula_compile (Any interpreter, Any data, const char32 *expression, int expressionType, int optimize);
 
 void Formula_run (long row, long col, struct Formula_Result *result);
 
diff --git a/sys/Graphics.cpp b/sys/Graphics.cpp
index dff9a4a..73d9c0a 100644
--- a/sys/Graphics.cpp
+++ b/sys/Graphics.cpp
@@ -38,7 +38,7 @@ void Graphics_prefs () {
 	Preferences_addEnum (U"Graphics.cjkFontStyle", & theGraphicsCjkFontStyle, kGraphics_cjkFontStyle, kGraphics_cjkFontStyle_DEFAULT);
 }
 
-void structGraphics :: v_destroy () noexcept {
+void structGraphics :: v_destroy () {
 	Melder_free (record);
 	Graphics_Parent :: v_destroy ();
 }
@@ -48,12 +48,13 @@ void structGraphics :: v_destroy () noexcept {
  * The following routine computes the conversion. It is called by Graphics_init () and by
  * Graphics_setWsViewport ().
  */
-static void widgetToWindowCoordinates (Graphics me) {
+static void widgetToWindowCoordinates (I) {
 	#if motif && mac
+		iam (Graphics);
 		if (my screen) {
-			GraphicsScreen me2 = static_cast <GraphicsScreen> (me);
-			if (me2 -> d_drawingArea) {
-				GuiObject widget = me2 -> d_drawingArea -> d_widget;
+			iam (GraphicsScreen);
+			if (my d_drawingArea) {
+				GuiObject widget = my d_drawingArea -> d_widget;
 				int shellX = 0, shellY = 0;
 				do {
 					int x = widget -> x, y = widget -> y;
@@ -68,7 +69,7 @@ static void widgetToWindowCoordinates (Graphics me) {
 			}
 		}
 	#else
-		(void) me;
+		(void) void_me;
 	#endif
 }
 
@@ -134,7 +135,7 @@ void Graphics_init (Graphics me, int resolution) {
 	my font = kGraphics_font_HELVETICA;
 	my fontSize = 10;
 	my fontStyle = Graphics_NORMAL;
-	my record = nullptr;
+	my record = NULL;
 	my irecord = my nrecord = 0;
 	my percentSignIsItalic = 1;
 	my numberSignIsBold = 1;
@@ -144,9 +145,9 @@ void Graphics_init (Graphics me, int resolution) {
 	my atSignIsLink = 0;
 }
 
-autoGraphics Graphics_create (int resolution) {
-	autoGraphics me = Thing_new (Graphics);
-	Graphics_init (me.get(), resolution);
+Graphics Graphics_create (int resolution) {
+	Graphics me = (Graphics) Thing_new (Graphics);
+	Graphics_init (me, resolution);
 	return me;
 }
 
diff --git a/sys/Graphics.h b/sys/Graphics.h
index f3cebeb..e54d584 100644
--- a/sys/Graphics.h
+++ b/sys/Graphics.h
@@ -112,18 +112,18 @@ Thing_define (Graphics, Thing) {
 	double horTick, vertTick;   // for Graphics_mark(s)XXX ()
 	double paperWidth, paperHeight;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 
-	virtual void v_polyline (long /* numberOfPoints */, double * /* xyDC */, bool /* close */) { }
-	virtual void v_fillArea (long /* numberOfPoints */, double * /* xyDC */) { }
-	virtual void v_rectangle (double /* x1DC */, double /* x2DC */, double /* y1DC */, double /* y2DC */) { }
-	virtual void v_fillRectangle (double /* x1DC */, double /* x2DC */, double /* y1DC */, double /* y2DC */) { }
-	virtual void v_circle (double /* xDC */, double /* yDC */, double /* rDC */) { }
-	virtual void v_ellipse (double /* x1DC */, double /* x2DC */, double /* y1DC */, double /* y2DC */) { }
-	virtual void v_arc (double /* xDC */, double /* yDC */, double /* rDC */, double /* fromAngle */, double /* toAngle */) { }
-	virtual void v_fillCircle (double /* xDC */, double /* yDC */, double /* rDC */) { }
-	virtual void v_fillEllipse (double /* x1DC */, double /* x2DC */, double /* y1DC */, double /* y2DC */) { }
+	virtual void v_polyline (long numberOfPoints, double *xyDC, bool close) { (void) numberOfPoints; (void) xyDC; (void) close; }
+	virtual void v_fillArea (long numberOfPoints, double *xyDC) { (void) numberOfPoints; (void) xyDC; }
+	virtual void v_rectangle (double x1DC, double x2DC, double y1DC, double y2DC) { (void) x1DC; (void) x2DC; (void) y1DC; (void) y2DC; }
+	virtual void v_fillRectangle (double a_x1DC, double a_x2DC, double a_y1DC, double a_y2DC) { (void) a_x1DC; (void) a_x2DC; (void) a_y1DC; (void) a_y2DC; }
+	virtual void v_circle (double xDC, double yDC, double rDC) { (void) xDC; (void) yDC; (void) rDC; }
+	virtual void v_ellipse (double a_x1DC, double a_x2DC, double a_y1DC, double a_y2DC) { (void) a_x1DC; (void) a_x2DC; (void) a_y1DC; (void) a_y2DC; }
+	virtual void v_arc (double xDC, double yDC, double rDC, double fromAngle, double toAngle) { (void) xDC; (void) yDC; (void) rDC; (void) fromAngle; (void) toAngle; }
+	virtual void v_fillCircle (double xDC, double yDC, double rDC) { (void) xDC; (void) yDC; (void) rDC; }
+	virtual void v_fillEllipse (double a_x1DC, double a_x2DC, double a_y1DC, double a_y2DC) { (void) a_x1DC; (void) a_x2DC; (void) a_y1DC; (void) a_y2DC; }
 	virtual void v_button (double a_x1DC, double a_x2DC, double a_y1DC, double a_y2DC)
 		{
 			v_rectangle (a_x1DC, a_x2DC, a_y1DC, a_y2DC);   // the simplest implementation
@@ -138,21 +138,21 @@ Thing_define (Graphics, Thing) {
 	virtual void v_updateWs () { }
 };
 
-autoGraphics Graphics_create (int resolution);
-autoGraphics Graphics_create_postscriptjob (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
+Graphics Graphics_create (int resolution);
+Graphics Graphics_create_postscriptjob (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
 	enum kGraphicsPostscript_paperSize paperSize, enum kGraphicsPostscript_orientation rotation, double magnification);
-autoGraphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
+Graphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
 	double xmin, double xmax, double ymin, double ymax, bool includeFonts, bool useSilipaPS);
-autoGraphics Graphics_create_pdffile (MelderFile file, int resolution,
+Graphics Graphics_create_pdffile (MelderFile file, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches);
-autoGraphics Graphics_create_pdf (void *context, int resolution,
+Graphics Graphics_create_pdf (void *context, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches);
-autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
+Graphics Graphics_create_pngfile (MelderFile file, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches);
-autoGraphics Graphics_create_postscriptprinter (void);
-autoGraphics Graphics_create_screenPrinter (void *display, void *window);
-autoGraphics Graphics_create_screen (void *display, void *window, int resolution);
-autoGraphics Graphics_create_xmdrawingarea (GuiDrawingArea drawingArea);
+Graphics Graphics_create_postscriptprinter (void);
+Graphics Graphics_create_screenPrinter (void *display, void *window);
+Graphics Graphics_create_screen (void *display, void *window, int resolution);
+Graphics Graphics_create_xmdrawingarea (GuiDrawingArea drawingArea);
 
 int Graphics_getResolution (Graphics me);
 
@@ -164,8 +164,6 @@ void Graphics_inqWsWindow (Graphics me, double *x1NDC, double *x2NDC, double *y1
 void Graphics_clearWs (Graphics me);
 void Graphics_flushWs (Graphics me);
 void Graphics_updateWs (Graphics me);
-void Graphics_beginMovieFrame (Graphics me, Graphics_Colour *colour);
-void Graphics_endMovieFrame (Graphics me, double frameDuration);
 void Graphics_DCtoWC (Graphics me, long xDC, long yDC, double *xWC, double *yWC);
 void Graphics_WCtoDC (Graphics me, double xWC, double yWC, long *xDC, long *yDC);
 
diff --git a/sys/GraphicsP.h b/sys/GraphicsP.h
index c62313a..c100210 100644
--- a/sys/GraphicsP.h
+++ b/sys/GraphicsP.h
@@ -85,7 +85,7 @@ Thing_define (GraphicsScreen, Graphics) {
 		CGContextRef d_macGraphicsContext;
 	#endif
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_polyline (long numberOfPoints, double *xyDC, bool close)
 		override;
@@ -145,15 +145,13 @@ Thing_define (GraphicsPostscript, Graphics) {
 	FILE *d_file;
 	int (*d_printf) (void *stream, const char *format, ...);
 	int languageLevel;
-	int photocopyable, spotsDensity, spotsAngle;
-	bool loadedXipa, useSilipaPS, landscape, includeFonts;
+	int photocopyable, spotsDensity, spotsAngle, landscape, includeFonts, loadedXipa, useSilipaPS;
 	double magnification;
 	char *fontInfos [1 + kGraphics_font_DINGBATS] [1 + Graphics_BOLD_ITALIC];
 	const char *lastFid;
-	int pageNumber, lastSize;
-	bool job, eps;
+	int job, eps, pageNumber, lastSize;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_polyline (long numberOfPoints, double *xyDC, bool close)
 		override;
@@ -212,7 +210,7 @@ void _Graphics_fillRectangle (Graphics me, long x1DC, long x2DC, long y1DC, long
 void _Graphics_setColour (Graphics me, Graphics_Colour colour);
 void _Graphics_setGrey (Graphics me, double grey);
 void _Graphics_colour_init (Graphics me);
-bool _GraphicsMac_tryToInitializeFonts ();
+bool _GraphicsMac_tryToInitializeFonts (void);
 
 #ifdef macintosh
 	void GraphicsQuartz_initDraw (GraphicsScreen me);
diff --git a/sys/GraphicsPostscript.cpp b/sys/GraphicsPostscript.cpp
index fb09fd6..103ac30 100644
--- a/sys/GraphicsPostscript.cpp
+++ b/sys/GraphicsPostscript.cpp
@@ -1,6 +1,6 @@
 /* GraphicsPostscript.cpp
  *
- * Copyright (C) 1992-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -91,7 +91,7 @@ static void initPage (GraphicsPostscript me) {
 	}
 	my d_printf (my d_file, "%.6g dup scale\n", 72.0 * my magnification / my resolution);
 	if (my job) my d_printf (my d_file, "%%%%EndPageSetup\n");
-	my lastFid = nullptr;
+	my lastFid = NULL;
 }
 
 static void exitPage (GraphicsPostscript me) {
@@ -112,31 +112,31 @@ static void exitPage (GraphicsPostscript me) {
 	for (font = 0; font <= kGraphics_font_DINGBATS; font ++)
 		for (style = 0; style <= Graphics_BOLD_ITALIC; style ++)
 			Melder_free (my fontInfos [font] [style]);
-	my loadedXipa = false;   // FIXME: include this because of the unpredictable page order with DSC?
+	my loadedXipa = FALSE;   /* BUG. Include this because of the unpredictable page order with DSC? */
 }
 
-void structGraphicsPostscript :: v_destroy () noexcept {
+void structGraphicsPostscript :: v_destroy () {
 	exitPage (this);
-	if (our d_file) {
-		if (our job) {
-			our d_printf (our d_file, "%%%%Trailer\n");
-			our d_printf (our d_file, "%%%%Pages: %d\n", our pageNumber);
+	if (d_file) {
+		if (job) {
+			d_printf (d_file, "%%%%Trailer\n");
+			d_printf (d_file, "%%%%Pages: %d\n", pageNumber);
 		}
-		our d_printf (our d_file, "%%%%EOF\n");   // BUG. Correct according to DSC. But not good in EPS files?
-		fclose (our d_file);
+		d_printf (d_file, "%%%%EOF\n");   // BUG. Correct according to DSC. But not good in EPS files?
+		fclose (d_file);
 	}
 	GraphicsPostscript_Parent :: v_destroy ();
 }
 
-autoGraphics Graphics_create_postscriptjob (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
+Graphics Graphics_create_postscriptjob (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
 	enum kGraphicsPostscript_paperSize paperSize, enum kGraphicsPostscript_orientation rotation, double magnification)
 {
 	autoGraphicsPostscript me = Thing_new (GraphicsPostscript);
 	time_t today;
 	my postScript = true, my yIsZeroAtTheTop = false, my languageLevel = 2;
-	my job = true, my eps = false, my printer = false;
+	my job = TRUE, my eps = FALSE, my printer = FALSE;
 	my d_printf = (int (*)(void *, const char*, ...)) fprintf;
-	Graphics_init (me.get(), resolution);   // virtual resolution; may differ from that of the printer; OK if always 600 dpi
+	Graphics_init (me.peek(), resolution);   // virtual resolution; may differ from that of the printer; OK if always 600 dpi
 	my photocopyable = spots == kGraphicsPostscript_spots_PHOTOCOPYABLE;
 	if (my photocopyable) { my spotsDensity = 85; my spotsAngle = 35; }
 	else { my spotsDensity = 106; my spotsAngle = 46; }
@@ -145,7 +145,7 @@ autoGraphics Graphics_create_postscriptjob (MelderFile file, int resolution, enu
 	else my paperWidth = 595 / 72.0, my paperHeight = 842 / 72.0;
 	my landscape = rotation == kGraphicsPostscript_orientation_LANDSCAPE;
 	my magnification = magnification;
-	my includeFonts = true;
+	my includeFonts = TRUE;
 	my d_file = Melder_fopen (file, "w");
 	/*
 	 * The Device Coordinates are the PostScript user coordinates.
@@ -160,21 +160,21 @@ autoGraphics Graphics_create_postscriptjob (MelderFile file, int resolution, enu
 	/*
 	 * Now don't just set x1wNDC etc, but force computation of the scaling as well.
 	 */
-	Graphics_setWsWindow (me.get(), 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
+	Graphics_setWsWindow ((Graphics) me.peek(), 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
 	/*
 	 * We will adhere to version 3.0 of the Document Structuring Conventions for print jobs.
 	 */
 	my d_printf (my d_file, "%%!PS-Adobe-3.0\n");
 	my d_printf (my d_file, "%%%%Creator: Praat Shell 4.2\n");
 	my d_printf (my d_file, "%%%%Title: %s\n", Melder_peek32to8 (MelderFile_name (file)));
-	today = time (nullptr);
-	my d_printf (my d_file, "%%%%CreationDate: %s", ctime (& today));   // contains newline symbol
+	today = time (NULL);
+	my d_printf (my d_file, "%%%%CreationDate: %s", ctime (& today));   /* Contains newline symbol. */
 	my d_printf (my d_file, "%%%%PageOrder: Special\n");
 	my d_printf (my d_file, "%%%%Pages: (atend)\n");
 	my d_printf (my d_file, "%%%%EndComments\n");
-	downloadPrologAndSetUp (me.get());
-	initPage (me.get());
-	return me.move();
+	downloadPrologAndSetUp (me.peek());
+	initPage (me.peek());
+	return (Graphics) me.transfer();
 }
 
 #if defined (macintosh)
@@ -190,7 +190,7 @@ static int Eps_postScript_printf (void *stream, const char *format, ... ) {
 }
 #endif
 
-autoGraphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
+Graphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGraphicsPostscript_spots spots,
 	double x1inches, double x2inches, double y1inches, double y2inches, bool includeFonts, bool useSilipaPS)
 {
 	autoGraphicsPostscript me = Thing_new (GraphicsPostscript);
@@ -204,12 +204,12 @@ autoGraphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGra
 	#else
 		my d_printf = (int (*)(void *, const char*, ...)) fprintf;
 	#endif
-	Graphics_init (me.get(), resolution);   // virtual resolution; may differ from that of the printer; OK if always 600 dpi
+	Graphics_init (me.peek(), resolution);   // virtual resolution; may differ from that of the printer; OK if always 600 dpi
 	my photocopyable = spots == kGraphicsPostscript_spots_PHOTOCOPYABLE;
 	if (my photocopyable) { my spotsDensity = 85; my spotsAngle = 35; }
 	else { my spotsDensity = 106; my spotsAngle = 46; }
 	my paperWidth = 7.5, my paperHeight = 11.0;
-	my landscape = false;
+	my landscape = FALSE;
 	my magnification = 1.0;
 	my includeFonts = includeFonts;
 	my useSilipaPS = useSilipaPS;
@@ -218,7 +218,7 @@ autoGraphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGra
 	my d_x2DC = my d_x2DCmax = my paperWidth * resolution;   // 600 dpi -> 4500 virtual dots
 	my d_y1DC = my d_y1DCmin = 0;
 	my d_y2DC = my d_y2DCmax = my paperHeight * resolution;   // 600 dpi -> 6600 virtual dots
-	Graphics_setWsWindow (me.get(), 0, my paperWidth, 12.0 - my paperHeight, 12.0);   // force scaling
+	Graphics_setWsWindow ((Graphics) me.peek(), 0, my paperWidth, 12.0 - my paperHeight, 12.0);   // force scaling
 	/*
 	 * We will honour version 3.0 of the DSC for Encapsulated PostScript files,
 	 * which includes supplying the bounding box information.
@@ -235,21 +235,21 @@ autoGraphics Graphics_create_epsfile (MelderFile file, int resolution, enum kGra
 	 * This leaves us room to show a warning that should keep users from thinking anything is wrong.
 	 */
 	my d_printf (my d_file, "%%%%Title: NO SCREEN PREVIEW, BUT WILL PRINT CORRECTLY\n");
-	today = time (nullptr);
+	today = time (NULL);
 	my d_printf (my d_file, "%%%%CreationDate: %s", ctime (& today));   /* Contains newline symbol. */
 	my d_printf (my d_file, "%%%%EndComments\n");
-	downloadPrologAndSetUp (me.get());
-	initPage (me.get());
-	return me.move();
+	downloadPrologAndSetUp (me.peek());
+	initPage (me.peek());
+	return (Graphics) me.transfer();
 }
 
-#if defined (macintosh) || defined (_WIN32)
-autoGraphics Graphics_create_postscriptprinter () {
-	autoGraphicsPostscript me = Thing_new (GraphicsPostscript);
-	my postScript = true, my languageLevel = 2;
-	my job = false, my eps = false, my printer = true;
+#ifndef UNIX
+Graphics Graphics_create_postscriptprinter (void) {
+	GraphicsPostscript me = Thing_new (GraphicsPostscript);
+	my postScript = TRUE, my languageLevel = 2;
+	my job = FALSE, my eps = FALSE, my printer = TRUE;
 	my d_printf = Printer_postScript_printf;
-	Graphics_init (me.get(), thePrinter. resolution);   // virtual resolution
+	Graphics_init (me, thePrinter. resolution);   // virtual resolution
 	my photocopyable = thePrinter. spots == kGraphicsPostscript_spots_PHOTOCOPYABLE;
 	if (my photocopyable) { my spotsDensity = 85; my spotsAngle = 35; }
 	else { my spotsDensity = 106; my spotsAngle = 46; }
@@ -257,15 +257,15 @@ autoGraphics Graphics_create_postscriptprinter () {
 	my paperHeight = (double) thePrinter. paperHeight / my resolution;
 	my landscape = thePrinter. orientation == kGraphicsPostscript_orientation_LANDSCAPE;
 	my magnification = thePrinter. magnification;
-	my includeFonts = true;
+	my includeFonts = TRUE;
 	my d_x1DC = my d_x1DCmin = my resolution / 2;
 	my d_x2DC = my d_x2DCmax = (my paperWidth - 0.5) * my resolution;
 	my d_y1DC = my d_y1DCmin = my resolution / 2;
 	my d_y2DC = my d_y2DCmax = (my paperHeight - 0.5) * my resolution;
-	Graphics_setWsWindow (me.get(), 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
-	downloadPrologAndSetUp (me.get());
-	initPage (me.get());
-	return me.move();
+	Graphics_setWsWindow ((Graphics) me, 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
+	downloadPrologAndSetUp (me);
+	initPage (me);
+	return (Graphics) me;
 }
 #endif
 
diff --git a/sys/GraphicsScreen.cpp b/sys/GraphicsScreen.cpp
index 701406f..03652d8 100644
--- a/sys/GraphicsScreen.cpp
+++ b/sys/GraphicsScreen.cpp
@@ -1,6 +1,6 @@
 /* GraphicsScreen.cpp
  *
- * Copyright (C) 1992-2012,2014,2015,2016 Paul Boersma, 2013 Tom Naughton
+ * Copyright (C) 1992-2012,2014,2015 Paul Boersma, 2013 Tom Naughton
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -41,35 +41,35 @@
 	#include <gdiplus.h>
 	//#include "winport_off.h"
 	//using namespace Gdiplus;
-	static bool _GraphicsWindows_tryToInitializeGdiPlus () {
+	static bool _GraphicsWindows_tryToInitializeGdiPlus (void) {
 		Gdiplus::GdiplusStartupInput gdiplusStartupInput;
 		ULONG_PTR gdiplusToken;
-		GdiplusStartup (& gdiplusToken, & gdiplusStartupInput, nullptr);
+		GdiplusStartup (& gdiplusToken, & gdiplusStartupInput, NULL);
 		return true;
 	}
 #elif mac
 	#include "macport_on.h"
 	static RGBColor theBlackColour = { 0, 0, 0 };
-	static bool _GraphicsMacintosh_tryToInitializeQuartz () {
+	static bool _GraphicsMacintosh_tryToInitializeQuartz (void) {
 		return _GraphicsMac_tryToInitializeFonts ();
 	}
 #endif
 
 Thing_implement (GraphicsScreen, Graphics, 0);
 
-void structGraphicsScreen :: v_destroy () noexcept {
+void structGraphicsScreen :: v_destroy () {
 	#if cairo
 		#if ALLOW_GDK_DRAWING
-			if (d_gdkGraphicsContext) {
+			if (d_gdkGraphicsContext != NULL) {
 				g_object_unref (d_gdkGraphicsContext);			
-				d_gdkGraphicsContext = nullptr;
+				d_gdkGraphicsContext = NULL;
 			}
 		#endif
-		if (d_cairoGraphicsContext) {
+		if (d_cairoGraphicsContext != NULL) {
 			cairo_destroy (d_cairoGraphicsContext);
-			d_cairoGraphicsContext = nullptr;
+			d_cairoGraphicsContext = NULL;
 		}
-		if (d_cairoSurface) {
+		if (d_cairoSurface != NULL) {
 			cairo_surface_flush (d_cairoSurface);
 			if (d_isPng) {
 				#if 1
@@ -83,25 +83,25 @@ void structGraphicsScreen :: v_destroy () noexcept {
 			cairo_surface_destroy (d_cairoSurface);
 		}
 	#elif win
-		if (d_gdiGraphicsContext) {
+		if (d_gdiGraphicsContext != NULL) {
 			SelectPen (d_gdiGraphicsContext, GetStockPen (BLACK_PEN));
 			SelectBrush (d_gdiGraphicsContext, GetStockBrush (NULL_BRUSH));
 		}
-		if (d_winPen) {
+		if (d_winPen != NULL) {
 			DeleteObject (d_winPen);
-			d_winPen = nullptr;
+			d_winPen = NULL;
 		}
-		if (d_winBrush) {
+		if (d_winBrush != NULL) {
 			DeleteObject (d_winBrush);
-			d_winBrush = nullptr;
+			d_winBrush = NULL;
 		}
 		if (d_isPng && d_gdiBitmap) {
 			trace (U"saving the filled bitmap to a PNG file");
 			/*
 			 * Deselect the bitmap from the device context (otherwise GetDIBits won't work).
 			 */
-			//SelectBitmap (d_gdiGraphicsContext, nullptr);
-			//SelectBitmap (d_gdiGraphicsContext, CreateCompatibleBitmap (nullptr, 1, 1));
+			//SelectBitmap (d_gdiGraphicsContext, NULL);
+			//SelectBitmap (d_gdiGraphicsContext, CreateCompatibleBitmap (NULL, 1, 1));
 
 			BITMAP bitmap;
 			GetObject (d_gdiBitmap, sizeof (BITMAP), & bitmap);
@@ -127,7 +127,7 @@ void structGraphicsScreen :: v_destroy () noexcept {
 			unsigned char *bits = Melder_calloc (unsigned char, 4 * width * height);
 			//HANDLE handle = GlobalAlloc (GHND, 4 * width * height);
 			//unsigned char *bits = (unsigned char *) GlobalLock (handle);
-			int numberOfLinesScanned = GetDIBits (GetDC (nullptr), d_gdiBitmap, 0, height, bits, (BITMAPINFO *) & bitmapInfo, DIB_RGB_COLORS);
+			int numberOfLinesScanned = GetDIBits (GetDC (NULL), d_gdiBitmap, 0, height, bits, (BITMAPINFO *) & bitmapInfo, DIB_RGB_COLORS);
 			trace (numberOfLinesScanned, U" lines scanned");
 
 			trace (U"creating a savable bitmap");
@@ -156,7 +156,7 @@ void structGraphicsScreen :: v_destroy () noexcept {
 			Gdiplus::GetImageEncoders (numberOfImageEncoders, sizeOfImageEncoderArray, imageEncoderInfos);
 			for (int iencoder = 0; iencoder < numberOfImageEncoders; iencoder ++) {
 				if (! wcscmp (imageEncoderInfos [iencoder]. MimeType, L"image/png")) {
-					gdiplusBitmap. Save (Melder_peek32toW (our d_file. path), & imageEncoderInfos [iencoder]. Clsid, nullptr);
+					gdiplusBitmap. Save (Melder_peek32toW (our d_file. path), & imageEncoderInfos [iencoder]. Clsid, NULL);
 				}
 			}
 
@@ -175,15 +175,15 @@ void structGraphicsScreen :: v_destroy () noexcept {
 		 * No ReleaseDC here, because we have not created it ourselves,
 		 * not even with GetDC. Is this a BUG?
 		 */
-		d_gdiGraphicsContext = nullptr;
+		d_gdiGraphicsContext = NULL;
 	#elif mac
         #if useCarbon
-            if (! d_macPort && ! d_isPng) {
+            if (d_macPort == NULL && ! d_isPng) {
                 CGContextEndPage (d_macGraphicsContext);
                 CGContextRelease (d_macGraphicsContext);
             }
         #else
-            if (! d_macView && ! d_isPng) {
+            if (d_macView == NULL && ! d_isPng) {
                 CGContextEndPage (d_macGraphicsContext);
                 CGContextRelease (d_macGraphicsContext);
             }
@@ -193,7 +193,7 @@ void structGraphicsScreen :: v_destroy () noexcept {
 			 * Turn the offscreen bitmap into an image.
 			 */
 			CGImageRef image = CGBitmapContextCreateImage (d_macGraphicsContext);
-			Melder_assert (image);
+			Melder_assert (image != NULL);
 			//CGContextRelease (d_macGraphicsContext);
 			/*
 			 * Create a dictionary with resolution properties.
@@ -202,23 +202,22 @@ void structGraphicsScreen :: v_destroy () noexcept {
 			keys [0] = kCGImagePropertyDPIWidth;
 			keys [1] = kCGImagePropertyDPIHeight;
 			float resolution_float = resolution;
-			values [1] = values [0] = CFNumberCreate (nullptr, kCFNumberFloatType, & resolution_float);
-			CFDictionaryRef properties = CFDictionaryCreate (nullptr,
+			values [1] = values [0] = CFNumberCreate (NULL, kCFNumberFloatType, & resolution_float);
+			CFDictionaryRef properties = CFDictionaryCreate (NULL,
 				(const void **) keys, (const void **) values, 2,
 				& kCFTypeDictionaryKeyCallBacks, & kCFTypeDictionaryValueCallBacks);
-			Melder_assert (properties);
+			Melder_assert (properties != NULL);
 			/*
 			 */
-			CFURLRef url = CFURLCreateWithFileSystemPath (nullptr,
+			CFURLRef url = CFURLCreateWithFileSystemPath (NULL,
 				(CFStringRef) Melder_peek32toCfstring (d_file. path), kCFURLPOSIXPathStyle, false);
-			CGImageDestinationRef imageDestination = CGImageDestinationCreateWithURL (url, kUTTypePNG, 1, nullptr);
-			if (imageDestination) {
-				CGImageDestinationAddImage (imageDestination, image, properties);
-				CGImageDestinationFinalize (imageDestination);
-				CFRelease (imageDestination);
-			}
+			CGImageDestinationRef imageDestination = CGImageDestinationCreateWithURL (url, kUTTypePNG, 1, NULL);
+			Melder_assert (imageDestination != NULL);
+			CGImageDestinationAddImage (imageDestination, image, properties);
 			CGImageRelease (image);
 			CFRelease (properties);
+			CGImageDestinationFinalize (imageDestination);
+			CFRelease (imageDestination);
 			CFRelease (url);
 		}
 		Melder_free (d_bits);
@@ -231,7 +230,7 @@ void structGraphicsScreen :: v_destroy () noexcept {
 void structGraphicsScreen :: v_flushWs () {
 	#if cairo
 		// Ik weet niet of dit is wat het zou moeten zijn ;)
-		//gdk_window_process_updates (d_window, true);   // this "works" but is incorrect because it's not the expose events that have to be carried out
+		//gdk_window_process_updates (d_window, TRUE);   // this "works" but is incorrect because it's not the expose events that have to be carried out
 		//gdk_window_flush (d_window);
 		gdk_flush ();
 		// TODO: een aanroep die de eventuele grafische buffer ledigt,
@@ -239,33 +238,15 @@ void structGraphicsScreen :: v_flushWs () {
 	#elif cocoa
 		if (d_drawingArea) {
 			GuiShell shell = d_drawingArea -> d_shell;
-			Melder_assert (shell);
-			#if 0
-				//GuiCocoaDrawingArea *cocoaDrawingArea = (GuiCocoaDrawingArea *) d_drawingArea -> d_widget;
-				//[cocoaDrawingArea display];
-				//GuiShell_drain (shell);
-				//CGContextFlush (our d_macGraphicsContext);
-				v_updateWs ();
-				NSEvent *nsEvent = [[d_macView window]
-					nextEventMatchingMask: NSAnyEventMask
-					untilDate: [NSDate distantPast]
-					inMode: NSDefaultRunLoopMode
-					dequeue: NO
-					];
-				Melder_assert (shell -> d_cocoaShell);
-				[shell -> d_cocoaShell   flushWindow];
-				//[[NSGraphicsContext currentContext] flushGraphics];
-			#else
-				Melder_assert (shell -> d_cocoaShell);
-				[shell -> d_cocoaShell   flushWindow];
-			#endif
+			Melder_assert (shell != NULL);
+        	[shell -> d_cocoaWindow   flushWindow];
 		}
 	#elif win
 		/*GdiFlush ();*/
 	#elif mac
 		if (d_drawingArea) {
 			GuiShell shell = d_drawingArea -> d_shell;
-			Melder_assert (shell);
+			Melder_assert (shell != NULL);
 			GuiShell_drain (shell);
 		}
 	#endif
@@ -278,24 +259,24 @@ void Graphics_flushWs (Graphics me) {
 void structGraphicsScreen :: v_clearWs () {
 	#if cairo
 		GdkRectangle rect;
-		if (our d_x1DC < our d_x2DC) {
-			rect.x = our d_x1DC;
-			rect.width = our d_x2DC - our d_x1DC;
+		if (this -> d_x1DC < this -> d_x2DC) {
+			rect.x = this -> d_x1DC;
+			rect.width = this -> d_x2DC - this -> d_x1DC;
 		} else {
-			rect.x = our d_x2DC;
-			rect.width = our d_x1DC - our d_x2DC;
+			rect.x = this -> d_x2DC;
+			rect.width = this -> d_x1DC - this -> d_x2DC;
 		}
-		if (our d_y1DC < our d_y2DC) {
-			rect.y = our d_y1DC;
-			rect.height = our d_y2DC - our d_y1DC;
+		if (this -> d_y1DC < this -> d_y2DC) {
+			rect.y = this -> d_y1DC;
+			rect.height = this -> d_y2DC - this -> d_y1DC;
 		} else {
-			rect.y = our d_y2DC;
-			rect.height = our d_y1DC - our d_y2DC;
+			rect.y = this -> d_y2DC;
+			rect.height = this -> d_y1DC - this -> d_y2DC;
 		}
-		if (! d_cairoGraphicsContext) {
+		if (d_cairoGraphicsContext == NULL) {
 			trace (U"clear and null");
-			//gdk_window_clear (our window);
-			//gdk_window_invalidate_rect (our window, & rect, true);   // BUG: it seems weird that this is necessary.
+			//gdk_window_clear (this -> window);
+			//gdk_window_invalidate_rect (this -> window, & rect, true);   // BUG: it seems weird that this is necessary.
 		} else {
 			trace (U"clear and not null");
 			cairo_set_source_rgb (d_cairoGraphicsContext, 1.0, 1.0, 1.0);
@@ -307,19 +288,19 @@ void structGraphicsScreen :: v_clearWs () {
         GuiCocoaDrawingArea *cocoaDrawingArea = (GuiCocoaDrawingArea *) d_drawingArea -> d_widget;
         if (cocoaDrawingArea) {
             NSRect rect;
-            if (our d_x1DC < our d_x2DC) {
-                rect.origin.x = our d_x1DC;
-                rect.size.width = our d_x2DC - our d_x1DC;
+            if (this -> d_x1DC < this -> d_x2DC) {
+                rect.origin.x = this -> d_x1DC;
+                rect.size.width = this -> d_x2DC - this -> d_x1DC;
             } else {
-                rect.origin.x = our d_x2DC;
-                rect.size.width = our d_x1DC - our d_x2DC;
+                rect.origin.x = this -> d_x2DC;
+                rect.size.width = this -> d_x1DC - this -> d_x2DC;
             }
-            if (our d_y1DC < our d_y2DC) {
-                rect.origin.y = our d_y1DC;
-                rect.size.height = our d_y2DC - our d_y1DC;
+            if (this -> d_y1DC < this -> d_y2DC) {
+                rect.origin.y = this -> d_y1DC;
+                rect.size.height = this -> d_y2DC - this -> d_y1DC;
             } else {
-                rect.origin.y = our d_y2DC;
-                rect.size.height = our d_y1DC - our d_y2DC;
+                rect.origin.y = this -> d_y2DC;
+                rect.size.height = this -> d_y1DC - this -> d_y2DC;
             }
 			[cocoaDrawingArea lockFocus];
             CGContextRef context = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
@@ -339,7 +320,6 @@ void structGraphicsScreen :: v_clearWs () {
             CGContextRestoreGState (context);
 			[cocoaDrawingArea unlockFocus];
 			[cocoaDrawingArea setNeedsDisplay: YES];
-			//[cocoaDrawingArea display];
         }
 	#elif win
 		RECT rect;
@@ -355,7 +335,7 @@ void structGraphicsScreen :: v_clearWs () {
 		//CGContextSetAllowsAntialiasing (my macGraphicsContext, false);
 		int shellHeight = GuiMac_clipOn_graphicsContext (d_drawingArea -> d_widget, d_macGraphicsContext);
 		CGContextSetRGBFillColor (d_macGraphicsContext, 1.0, 1.0, 1.0, 1.0);
-		CGContextFillRect (d_macGraphicsContext, CGRectMake (our d_x1DC, shellHeight - our d_y1DC, our d_x2DC - our d_x1DC, our d_y1DC - our d_y2DC));
+		CGContextFillRect (d_macGraphicsContext, CGRectMake (this -> d_x1DC, shellHeight - this -> d_y1DC, this -> d_x2DC - this -> d_x1DC, this -> d_y1DC - this -> d_y2DC));
 		QDEndCGContext (d_macPort, & d_macGraphicsContext);
 	#endif
 }
@@ -427,7 +407,7 @@ void structGraphicsScreen :: v_updateWs () {
     
 	#elif win
 		//clear (this); // lll
-		if (d_winWindow) InvalidateRect (d_winWindow, nullptr, true);
+		if (d_winWindow) InvalidateRect (d_winWindow, NULL, TRUE);
 	#elif mac
 		Rect r;
 		if (d_drawingArea) GuiMac_clipOn (d_drawingArea -> d_widget);   // to prevent invalidating invisible parts of the canvas
@@ -444,35 +424,6 @@ void Graphics_updateWs (Graphics me) {
 		my v_updateWs ();
 }
 
-void Graphics_beginMovieFrame (Graphics any, Graphics_Colour *p_colour) {
-	if (any -> classInfo == classGraphicsScreen) {
-		GraphicsScreen me = (GraphicsScreen) any;
-		Graphics_clearRecording (me);
-		Graphics_startRecording (me);
-		if (p_colour) {
-			Graphics_setViewport (me, 0.0, 1.0, 0.0, 1.0);
-			Graphics_setColour (me, *p_colour);
-			Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
-			Graphics_fillRectangle (me, 0.0, 1.0, 0.0, 1.0);
-			Graphics_setColour (me, Graphics_BLACK);
-		}
-	}
-}
-
-void Graphics_endMovieFrame (Graphics any, double frameDuration) {
-	if (any -> classInfo == classGraphicsScreen) {
-		GraphicsScreen me = (GraphicsScreen) any;
-		Graphics_stopRecording (me);
-		#if cocoa
-			my v_updateWs ();
-			GuiShell_drain (my d_drawingArea -> d_shell);
-		#else
-			my v_flushWs ();
-		#endif
-		Melder_sleep (frameDuration);
-	}
-}
-
 static int GraphicsScreen_init (GraphicsScreen me, void *voidDisplay, void *voidWindow) {
 
 	/* Fill in new members. */
@@ -494,12 +445,12 @@ static int GraphicsScreen_init (GraphicsScreen me, void *voidDisplay, void *void
 			my d_gdiGraphicsContext = (HDC) voidWindow;
 		} else if (voidDisplay) {
 			my d_gdiGraphicsContext = (HDC) voidDisplay;
-			my metafile = true;
+			my metafile = TRUE;
 		} else {
 			my d_winWindow = (HWND) voidWindow;
 			my d_gdiGraphicsContext = GetDC (my d_winWindow);   // window must have a constant display context; see XtInitialize ()
 		}
-		Melder_assert (my d_gdiGraphicsContext);
+		Melder_assert (my d_gdiGraphicsContext != NULL);
 		SetBkMode (my d_gdiGraphicsContext, TRANSPARENT);   // not the default!
 		/*
 		 * Create pens and brushes.
@@ -530,8 +481,8 @@ static int GraphicsScreen_init (GraphicsScreen me, void *voidDisplay, void *void
 	return 1;
 }
 
-autoGraphics Graphics_create_screen (void *display, void *window, int resolution) {
-	autoGraphicsScreen me = Thing_new (GraphicsScreen);
+Graphics Graphics_create_screen (void *display, void *window, int resolution) {
+	GraphicsScreen me = Thing_new (GraphicsScreen);
 	my screen = true;
 	#if win
 		my d_useGdiplus = _GraphicsWindows_tryToInitializeGdiPlus ();
@@ -539,18 +490,18 @@ autoGraphics Graphics_create_screen (void *display, void *window, int resolution
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
 	my yIsZeroAtTheTop = true;
-	Graphics_init (me.get(), resolution);
-	Graphics_setWsViewport (me.get(), 0.0, 100.0, 0.0, 100.0);
+	Graphics_init (me, resolution);
+	Graphics_setWsViewport ((Graphics) me, 0, 100, 0, 100);
 	#if mac && useCarbon
-		GraphicsScreen_init (me.get(), display, GetWindowPort ((WindowRef) window));
+		GraphicsScreen_init (me, display, GetWindowPort ((WindowRef) window));
 	#else
-		GraphicsScreen_init (me.get(), display, window);
+		GraphicsScreen_init (me, display, window);
 	#endif
-	return me.move();
+	return (Graphics) me;
 }
 
-autoGraphics Graphics_create_screenPrinter (void *display, void *window) {
-	autoGraphicsScreen me = Thing_new (GraphicsScreen);
+Graphics Graphics_create_screenPrinter (void *display, void *window) {
+	GraphicsScreen me = Thing_new (GraphicsScreen);
 	my screen = true;
 	my yIsZeroAtTheTop = true;
 	my printer = true;
@@ -559,7 +510,7 @@ autoGraphics Graphics_create_screenPrinter (void *display, void *window) {
 	#elif mac
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
-	Graphics_init (me.get(), thePrinter. resolution);
+	Graphics_init (me, thePrinter. resolution);
 	my paperWidth = (double) thePrinter. paperWidth / thePrinter. resolution;
 	my paperHeight = (double) thePrinter. paperHeight / thePrinter. resolution;
 	//NSLog (@"Graphics_create_screenPrinter: %f %f", my paperWidth, my paperHeight);
@@ -576,9 +527,9 @@ autoGraphics Graphics_create_screenPrinter (void *display, void *window) {
 		my d_y1DC -= GetDeviceCaps ((HDC) window, PHYSICALOFFSETY);
 		my d_y2DC -= GetDeviceCaps ((HDC) window, PHYSICALOFFSETY);
 	#endif
-	Graphics_setWsWindow (me.get(), 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
-	GraphicsScreen_init (me.get(), display, window);
-	return me.move();
+	Graphics_setWsWindow ((Graphics) me, 0, my paperWidth - 1.0, 13.0 - my paperHeight, 12.0);
+	GraphicsScreen_init (me, display, window);
+	return (Graphics) me;
 }
 
 #if mac && useCarbon
@@ -591,7 +542,7 @@ autoGraphics Graphics_create_screenPrinter (void *display, void *window) {
 static void cb_move (GuiObject w, XtPointer void_me, XtPointer call) {
 	iam (GraphicsScreen);
 	Dimension width, height;
-	XtVaGetValues (w, XmNwidth, & width, XmNheight, & height, nullptr);
+	XtVaGetValues (w, XmNwidth, & width, XmNheight, & height, NULL);
 
 	/* The four values returned are probably equal to the previous ones.
 	 * However, the following call forces a new computation of the device coordinates
@@ -604,9 +555,9 @@ static void cb_move (GuiObject w, XtPointer void_me, XtPointer call) {
 }
 #endif
 
-autoGraphics Graphics_create_xmdrawingarea (GuiDrawingArea w) {
+Graphics Graphics_create_xmdrawingarea (GuiDrawingArea w) {
 	trace (U"begin");
-	autoGraphicsScreen me = Thing_new (GraphicsScreen);
+	GraphicsScreen me = Thing_new (GraphicsScreen);
 	#if gtk
 		GtkRequisition realsize;
 		GtkAllocation allocation;
@@ -624,23 +575,23 @@ autoGraphics Graphics_create_xmdrawingarea (GuiDrawingArea w) {
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
 	#if mac
-		Graphics_init (me.get(), Gui_getResolution (nullptr));
+		Graphics_init (me, Gui_getResolution (NULL));
 		#if useCarbon
-            GraphicsScreen_init (me.get(),
+            GraphicsScreen_init (me,
                 XtDisplay (my d_drawingArea -> d_widget),
                 GetWindowPort ((WindowRef) XtWindow (my d_drawingArea -> d_widget)));
 		#else
-            GraphicsScreen_init (me.get(),
+            GraphicsScreen_init (me,
                                  my d_drawingArea -> d_widget,
                                  my d_drawingArea -> d_widget);
 		#endif
 	#else
 		#if gtk
-			Graphics_init (me.get(), Gui_getResolution (my d_drawingArea -> d_widget));
-			GraphicsScreen_init (me.get(), GTK_WIDGET (my d_drawingArea -> d_widget), GTK_WIDGET (my d_drawingArea -> d_widget));
+			Graphics_init (me, Gui_getResolution (my d_drawingArea -> d_widget));
+			GraphicsScreen_init (me, GTK_WIDGET (my d_drawingArea -> d_widget), GTK_WIDGET (my d_drawingArea -> d_widget));
 		#elif motif
-			Graphics_init (me.get(), Gui_getResolution (my d_drawingArea -> d_widget));
-			GraphicsScreen_init (me.get(), XtDisplay (my d_drawingArea -> d_widget), XtWindow (my d_drawingArea -> d_widget));
+			Graphics_init (me, Gui_getResolution (my d_drawingArea -> d_widget));
+			GraphicsScreen_init (me, XtDisplay (my d_drawingArea -> d_widget), XtWindow (my d_drawingArea -> d_widget));
 		#endif
 	#endif
 
@@ -650,40 +601,38 @@ autoGraphics Graphics_create_xmdrawingarea (GuiDrawingArea w) {
 		gtk_widget_get_allocation (GTK_WIDGET (my d_drawingArea -> d_widget), & allocation);
 		// HIER WAS IK
 		trace (U"requested ", realsize.width, U" x ", realsize.height, U", allocated ", allocation.width, U" x ", allocation.height);
-		Graphics_setWsViewport (me.get(), 0.0, realsize.width, 0.0, realsize.height);
+		Graphics_setWsViewport ((Graphics) me, 0, realsize.width, 0, realsize.height);
 	#elif motif
-		XtVaGetValues (my d_drawingArea -> d_widget, XmNwidth, & width, XmNheight, & height, nullptr);
-		Graphics_setWsViewport (me.get(), 0.0, width, 0.0, height);
+		XtVaGetValues (my d_drawingArea -> d_widget, XmNwidth, & width, XmNheight, & height, NULL);
+		Graphics_setWsViewport ((Graphics) me, 0, width, 0, height);
     #elif cocoa
         NSView *view = (NSView *)my d_drawingArea -> d_widget;
         NSRect bounds = [view bounds];
-        Graphics_setWsViewport (me.get(), 0.0, bounds.size.width, 0.0, bounds.size.height);
+        Graphics_setWsViewport ((Graphics) me, 0, bounds.size.width, 0, bounds.size.height);
 	#endif
 	#if mac && useCarbon
-		XtAddCallback (my d_drawingArea -> d_widget, XmNmoveCallback, cb_move, (XtPointer) me.get());
+		XtAddCallback (my d_drawingArea -> d_widget, XmNmoveCallback, cb_move, (XtPointer) me);
 	#endif
-	return me.move();
+	return (Graphics) me;
 }
 
-autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
+Graphics Graphics_create_pngfile (MelderFile file, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches)
 {
 	autoGraphicsScreen me = Thing_new (GraphicsScreen);
 	my screen = true;
 	my yIsZeroAtTheTop = true;
-	#if win
-		my d_useGdiplus = _GraphicsWindows_tryToInitializeGdiPlus ();
-	#elif mac
+	#ifdef macintosh
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
-	Graphics_init (me.get(), resolution);
+	Graphics_init (me.peek(), resolution);
 	my d_isPng = true;
 	my d_file = *file;
 	my d_x1DC = my d_x1DCmin = 0;
 	my d_x2DC = my d_x2DCmax = (x2inches - x1inches) * resolution;
 	my d_y1DC = my d_y1DCmin = 0;
 	my d_y2DC = my d_y2DCmax = (y2inches - y1inches) * resolution;
-	Graphics_setWsWindow (me.get(), x1inches, x2inches, y1inches, y2inches);
+	Graphics_setWsWindow ((Graphics) me.peek(), x1inches, x2inches, y1inches, y2inches);
 	#if gtk
 		my d_cairoSurface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
 			(x2inches - x1inches) * resolution, (y2inches - y1inches) * resolution);
@@ -701,10 +650,10 @@ autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
 		long stride = width * 4;
 		stride = (stride + 15) & ~15;   // CommonCode/AppDrawing.c: "a multiple of 16 bytes, for best performance"
 		my d_bits = Melder_malloc (uint8_t, stride * height);
-		static CGColorSpaceRef colourSpace = nullptr;
-		if (! colourSpace) {
+		static CGColorSpaceRef colourSpace = NULL;
+		if (colourSpace == NULL) {
 			colourSpace = CGColorSpaceCreateWithName (kCGColorSpaceGenericRGB);
-			Melder_assert (colourSpace);
+			Melder_assert (colourSpace != NULL);
 		}
 		my d_macGraphicsContext = CGBitmapContextCreate (my d_bits,
 			width, height,
@@ -712,7 +661,7 @@ autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
 			stride,
 			colourSpace,
 			kCGImageAlphaPremultipliedLast);
-    	if (! my d_macGraphicsContext)
+    	if (my d_macGraphicsContext == NULL)
 			Melder_throw (U"Could not create PNG file ", file, U".");
 		CGRect rect = CGRectMake (0, 0, width, height);
 		CGContextSetAlpha (my d_macGraphicsContext, 1.0);
@@ -722,15 +671,15 @@ autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
 		CGContextTranslateCTM (my d_macGraphicsContext, 0, height);
 		CGContextScaleCTM (my d_macGraphicsContext, 1.0, -1.0);
 	#elif win
-		my metafile = true;
-		HDC screenDC = GetDC (nullptr);
+		my metafile = TRUE;
+		HDC screenDC = GetDC (NULL);
 		my d_gdiGraphicsContext = CreateCompatibleDC (screenDC);
 		trace (U"d_gdiGraphicsContext ", Melder_pointer (my d_gdiGraphicsContext));
-		Melder_assert (my d_gdiGraphicsContext);
+		Melder_assert (my d_gdiGraphicsContext != NULL);
 		my d_gdiBitmap = CreateCompatibleBitmap (screenDC, (x2inches - x1inches) * resolution, (y2inches - y1inches) * resolution);
 		trace (U"d_gdiBitmap ", Melder_pointer (my d_gdiBitmap));
-		Melder_assert (my d_gdiBitmap);
-		ReleaseDC (nullptr, screenDC);
+		Melder_assert (my d_gdiBitmap != NULL);
+		ReleaseDC (NULL, screenDC);
 		SelectObject (my d_gdiGraphicsContext, my d_gdiBitmap);
 		trace (U"bitmap selected into device context");
 		my resolution = resolution;
@@ -747,10 +696,10 @@ autoGraphics Graphics_create_pngfile (MelderFile file, int resolution,
 		SelectPen (my d_gdiGraphicsContext, GetStockPen (BLACK_PEN));
 		SelectBrush (my d_gdiGraphicsContext, GetStockBrush (NULL_BRUSH));
 	#endif
-	return me.move();
+	return (Graphics) me.transfer();
 }
 
-autoGraphics Graphics_create_pdffile (MelderFile file, int resolution,
+Graphics Graphics_create_pdffile (MelderFile file, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches)
 {
 	autoGraphicsScreen me = Thing_new (GraphicsScreen);
@@ -759,7 +708,7 @@ autoGraphics Graphics_create_pdffile (MelderFile file, int resolution,
 	#ifdef macintosh
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
-	Graphics_init (me.get(), resolution);
+	Graphics_init (me.peek(), resolution);
 	#if gtk
 		my d_cairoSurface = cairo_pdf_surface_create (Melder_peek32to8 (file -> path),
 			(NUMdefined (x1inches) ? x2inches - x1inches : x2inches) * 72.0,
@@ -769,30 +718,30 @@ autoGraphics Graphics_create_pdffile (MelderFile file, int resolution,
 		my d_x2DC = my d_x2DCmax = (NUMdefined (x1inches) ?  7.5 : x2inches) * resolution;
 		my d_y1DC = my d_y1DCmin = 0;
 		my d_y2DC = my d_y2DCmax = (NUMdefined (y1inches) ? 11.0 : y2inches) * resolution;
-		Graphics_setWsWindow (me.get(),
+		Graphics_setWsWindow ((Graphics) me.peek(),
 			NUMdefined (x1inches) ? 0.0 : 0.0, NUMdefined (x1inches) ?  7.5 : x2inches,
 			NUMdefined (y1inches) ? 1.0 : 0.0, NUMdefined (y1inches) ? 12.0 : y2inches);
 		cairo_scale (my d_cairoGraphicsContext, 72.0 / resolution, 72.0 / resolution);
 	#elif mac
-		CFURLRef url = CFURLCreateWithFileSystemPath (nullptr, (CFStringRef) Melder_peek32toCfstring (file -> path), kCFURLPOSIXPathStyle, false);
+		CFURLRef url = CFURLCreateWithFileSystemPath (NULL, (CFStringRef) Melder_peek32toCfstring (file -> path), kCFURLPOSIXPathStyle, false);
 		CGRect rect = CGRectMake (0, 0,
 			(NUMdefined (x1inches) ? x2inches - x1inches : x2inches) * 72.0,
 			(NUMdefined (y1inches) ? y2inches - y1inches : y2inches) * 72.0);   // don't tire PDF viewers with funny origins
 		CFStringRef key = (CFStringRef) Melder_peek32toCfstring (U"Creator");
 		CFStringRef value = (CFStringRef) Melder_peek32toCfstring (U"Praat");
 		CFIndex numberOfValues = 1;
-		CFDictionaryRef dictionary = CFDictionaryCreate (nullptr, (const void **) & key, (const void **) & value, numberOfValues,
+		CFDictionaryRef dictionary = CFDictionaryCreate (NULL, (const void **) & key, (const void **) & value, numberOfValues,
 			& kCFTypeDictionaryKeyCallBacks, & kCFTypeDictionaryValueCallBacks);
 		my d_macGraphicsContext = CGPDFContextCreateWithURL (url, & rect, dictionary);
 		CFRelease (url);
 		CFRelease (dictionary);
-    	if (! my d_macGraphicsContext)
+    	if (my d_macGraphicsContext == NULL)
 			Melder_throw (U"Could not create PDF file ", file, U".");
 		my d_x1DC = my d_x1DCmin = 0;
 		my d_x2DC = my d_x2DCmax = (NUMdefined (x1inches) ?  7.5 : x2inches) * resolution;
 		my d_y1DC = my d_y1DCmin = 0;
 		my d_y2DC = my d_y2DCmax = (NUMdefined (y1inches) ? 11.0 : y2inches) * resolution;
-		Graphics_setWsWindow (me.get(),
+		Graphics_setWsWindow ((Graphics) me.peek(),
 			NUMdefined (x1inches) ? 0.0 : 0.0, NUMdefined (x1inches) ?  7.5 : x2inches,
 			NUMdefined (y1inches) ? 1.0 : 0.0, NUMdefined (y1inches) ? 12.0 : y2inches);
 		CGContextBeginPage (my d_macGraphicsContext, & rect);
@@ -802,18 +751,18 @@ autoGraphics Graphics_create_pdffile (MelderFile file, int resolution,
 			(NUMdefined (y1inches) ? (12.0 - y1inches) : y2inches) * resolution);
 		CGContextScaleCTM (my d_macGraphicsContext, 1.0, -1.0);
 	#endif
-	return me.move();
+	return (Graphics) me.transfer();
 }
-autoGraphics Graphics_create_pdf (void *context, int resolution,
+Graphics Graphics_create_pdf (void *context, int resolution,
 	double x1inches, double x2inches, double y1inches, double y2inches)
 {
-	autoGraphicsScreen me = Thing_new (GraphicsScreen);
+	GraphicsScreen me = Thing_new (GraphicsScreen);
 	my screen = true;
 	my yIsZeroAtTheTop = true;
 	#ifdef macintosh
 		_GraphicsMacintosh_tryToInitializeQuartz ();
 	#endif
-	Graphics_init (me.get(), resolution);
+	Graphics_init (me, resolution);
 	#ifdef macintosh
 		my d_macGraphicsContext = static_cast <CGContext *> (context);
 		CGRect rect = CGRectMake (0, 0, (x2inches - x1inches) * 72, (y2inches - y1inches) * 72);   // don't tire PDF viewers with funny origins
@@ -821,14 +770,14 @@ autoGraphics Graphics_create_pdf (void *context, int resolution,
 		my d_x2DC = my d_x2DCmax = 7.5 * resolution;
 		my d_y1DC = my d_y1DCmin = 0;
 		my d_y2DC = my d_y2DCmax = 11.0 * resolution;
-		Graphics_setWsWindow (me.get(), 0, 7.5, 1.0, 12.0);
-    	Melder_assert (my d_macGraphicsContext);
+		Graphics_setWsWindow ((Graphics) me, 0, 7.5, 1.0, 12.0);
+    	Melder_assert (my d_macGraphicsContext != NULL);
 		CGContextBeginPage (my d_macGraphicsContext, & rect);
 		CGContextScaleCTM (my d_macGraphicsContext, 72.0 / resolution, 72.0 / resolution);
 		CGContextTranslateCTM (my d_macGraphicsContext, - x1inches * resolution, (12.0 - y1inches) * resolution);
 		CGContextScaleCTM (my d_macGraphicsContext, 1.0, -1.0);
 	#endif
-	return me.move();
+	return (Graphics) me;
 }
 
 #if cairo
@@ -846,8 +795,8 @@ autoGraphics Graphics_create_pdf (void *context, int resolution,
 			if (my d_macPort) {
 				QDBeginCGContext (my d_macPort, & my d_macGraphicsContext);
 				//CGContextSetAlpha (my macGraphicsContext, 1.0);
-				CGContextSetAllowsAntialiasing (my d_macGraphicsContext, true);
-				if (my d_drawingArea) {
+				//CGContextSetAllowsAntialiasing (my macGraphicsContext, false);
+				if (my d_drawingArea != NULL) {
 					int shellHeight = GuiMac_clipOn_graphicsContext (my d_drawingArea -> d_widget, my d_macGraphicsContext);
 					CGContextTranslateCTM (my d_macGraphicsContext, 0, shellHeight);
 				} else if (my printer) {
@@ -861,7 +810,7 @@ autoGraphics Graphics_create_pdf (void *context, int resolution,
 				//if (! my printer) {
 					my d_macGraphicsContext = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
 				//}
-                Melder_assert (my d_macGraphicsContext);
+                Melder_assert (my d_macGraphicsContext != NULL);
 				if (my printer) {
 					//CGContextTranslateCTM (my d_macGraphicsContext, 0, [my d_macView bounds]. size. height);
 					//CGContextScaleCTM (my d_macGraphicsContext, 1.0, -1.0);
diff --git a/sys/Graphics_altitude.cpp b/sys/Graphics_altitude.cpp
index 0a657be..98fc1b6 100644
--- a/sys/Graphics_altitude.cpp
+++ b/sys/Graphics_altitude.cpp
@@ -1,6 +1,6 @@
 /* Graphics_altitude.cpp
  *
- * Copyright (C) 1992-2011,2015 Paul Boersma
+ * Copyright (C) 1992-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,17 +45,17 @@ static double *x, *y;
 static int closed;
 static double dx, dy, xoff, yoff;
 
-static int note (double **z, double height, int row, int col, int ori, int pleaseForget) {
+static int note (double **z, double height, int row, int col, int ori, int forget) {
 	++ numberOfPoints;
 	Melder_assert (numberOfPoints <= MAXALTPATH);
 	if (ori == 3) { row ++; ori = 1; } else if (ori == 2) { col ++; ori = 4; }
 	if (ori == 1) {
-		if (pleaseForget) right [row - row1] [col - col1] = 1;
+		if (forget) right [row - row1] [col - col1] = 1;
 		x [numberOfPoints] = xoff +
 			(col + (height - z [row] [col]) / (z [row] [col + 1] - z [row] [col])) * dx;
 		y [numberOfPoints] = yoff + row * dy;
 	} else {   /* ori == 4 */
-		if (pleaseForget) below [row - row1] [col - col1] = 1;
+		if (forget) below [row - row1] [col - col1] = 1;
 		x [numberOfPoints] = xoff + col * dx;
 		y [numberOfPoints] = yoff +
 			(row + (height - z [row] [col]) / (z [row + 1] [col] - z [row] [col])) * dy;
diff --git a/sys/Graphics_colour.cpp b/sys/Graphics_colour.cpp
index d0ece60..2dbbd6a 100644
--- a/sys/Graphics_colour.cpp
+++ b/sys/Graphics_colour.cpp
@@ -104,7 +104,7 @@ void _Graphics_setColour (Graphics graphics, Graphics_Colour colour) {
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			if (! my d_cairoGraphicsContext) return;
+			if (my d_cairoGraphicsContext == NULL) return;
 			cairo_set_source_rgb (my d_cairoGraphicsContext, colour. red, colour. green, colour. blue);
 		#elif win
 			my d_winForegroundColour = RGB (colour. red * 255, colour. green * 255, colour. blue * 255);
@@ -141,7 +141,7 @@ void _Graphics_setGrey (Graphics graphics, double fgrey) {
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			if (! my d_cairoGraphicsContext) return;
+			if (my d_cairoGraphicsContext == NULL) return;
 			if (fgrey < 0.0) fgrey = 0.0; else if (fgrey > 1.0) fgrey = 1.0;
 			cairo_set_source_rgb (my d_cairoGraphicsContext, fgrey, fgrey, fgrey);
 		#elif win
@@ -174,14 +174,14 @@ static void highlight (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			if (! my d_cairoGraphicsContext) return;
+			if (my d_cairoGraphicsContext == NULL) return;
 			int width = x2DC - x1DC, height = y1DC - y2DC;
 			if (width <= 0 || height <= 0) return;
 			#if ALLOW_GDK_DRAWING
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_XOR);
 				GdkColor pinkXorWhite = { 0, 0x0000, 0x4000, 0x4000 }, black = { 0, 0x0000, 0x0000, 0x0000 };
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & pinkXorWhite);
-				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, true, x1DC, y2DC, width, height);
+				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, TRUE, x1DC, y2DC, width, height);
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & black);
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_COPY);
 				gdk_flush ();
@@ -191,7 +191,7 @@ static void highlight (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 			if (width <= 0 || height <= 0) return;
 			GuiCocoaDrawingArea *drawingArea = (GuiCocoaDrawingArea *) my d_drawingArea -> d_widget;
 			if (drawingArea) {
-				bool cacheImageInRectWillWork = ( Melder_systemVersion < 101100 || Melder_systemVersion > 101104 );
+				bool cacheImageInRectWillWork = ( Melder_systemVersion < 101100 );
 				if (cacheImageInRectWillWork) {
 					NSView *nsView = my d_macView;
 					if (direction == 1) {   // forward
@@ -205,21 +205,20 @@ static void highlight (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 						[drawingArea lockFocus];
 						CGContextRef context = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
 						CGContextSaveGState (context);
-						//CGContextSetBlendMode (context, kCGBlendModeDifference);
-						CGContextSetBlendMode (context, kCGBlendModeDarken);
+						CGContextSetBlendMode (context, kCGBlendModeDifference);
+						//CGContextSetBlendMode (context, kCGBlendModeDarken);
 						CGContextSetShouldAntialias (context, false);
 						NSColor *colour = [[NSColor selectedTextBackgroundColor] colorUsingColorSpaceName: NSDeviceRGBColorSpace];
 						double red = 0.5 + 0.5 * colour.redComponent, green = 0.5 + 0.5 * colour.greenComponent, blue = 0.5 + 0.5 * colour.blueComponent;
-						//CGContextSetRGBFillColor (context, 1.0 - red, 1.0 - green, 1.0 - blue, 1.0);
-						CGContextSetRGBFillColor (context, red, green, blue, 1.0);
+						CGContextSetRGBFillColor (context, 1.0 - red, 1.0 - green, 1.0 - blue, 1.0);
+						//CGContextSetRGBFillColor (context, red, green, blue, 1.0);
 						CGContextFillRect (context, rect);
 						CGContextRestoreGState (context);
 						[drawingArea unlockFocus];
-						//GuiShell_drain (nullptr);
 					} else {   // backward
 						//[drawingArea lockFocus];
 						[[nsView window] restoreCachedImage];
-						//[[nsView window] discardCachedImage];
+						[[nsView window] discardCachedImage];
 						//[drawingArea unlockFocus];
 						//[[nsView window] flushWindow];
 						//[[nsView window] flushWindowIfNeeded];
@@ -293,17 +292,17 @@ static void highlight2 (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			if (! my d_cairoGraphicsContext) return;
+			if (my d_cairoGraphicsContext == NULL) return;
 			int width = x2DC - x1DC, height = y1DC - y2DC;
 			if (width <= 0 || height <= 0) return;
 			#if ALLOW_GDK_DRAWING
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_XOR);
 				GdkColor pinkXorWhite = { 0, 0x0000, 0x4000, 0x4000 }, black = { 0, 0x0000, 0x0000, 0x0000 };
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & pinkXorWhite);
-				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, true, x1DC, y2DC, x2DC - x1DC, y2DC_inner - y2DC); // upper
-				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, true, x1DC, y2DC_inner, x1DC_inner - x1DC, y1DC_inner - y2DC_inner); // left part
-				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, true, x2DC_inner, y2DC_inner, x2DC - x2DC_inner, y1DC_inner - y2DC_inner); // right part
-				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, true, x1DC, y1DC_inner, x2DC - x1DC, y1DC - y1DC_inner); // lower
+				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, TRUE, x1DC, y2DC, x2DC - x1DC, y2DC_inner - y2DC); // upper
+				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, TRUE, x1DC, y2DC_inner, x1DC_inner - x1DC, y1DC_inner - y2DC_inner); // left part
+				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, TRUE, x2DC_inner, y2DC_inner, x2DC - x2DC_inner, y1DC_inner - y2DC_inner); // right part
+				gdk_draw_rectangle (my d_window, my d_gdkGraphicsContext, TRUE, x1DC, y1DC_inner, x2DC - x1DC, y1DC - y1DC_inner); // lower
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & black);
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_COPY);
 				gdk_flush ();
@@ -311,7 +310,7 @@ static void highlight2 (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 		#elif cocoa
 			GuiCocoaDrawingArea *drawingArea = (GuiCocoaDrawingArea *) my d_drawingArea -> d_widget;
 			if (drawingArea) {
-				bool cacheImageInRectWillWork = ( Melder_systemVersion < 101100 || Melder_systemVersion > 101104 );
+				bool cacheImageInRectWillWork = ( Melder_systemVersion < 101100 );
 				if (cacheImageInRectWillWork) {
 					NSView *nsView = my d_macView;
 					if (direction == 1) {
@@ -341,9 +340,9 @@ static void highlight2 (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 					CGContextFillRect (my d_macGraphicsContext, leftRect);
 					CGContextFillRect (my d_macGraphicsContext, rightRect);
 					CGContextFillRect (my d_macGraphicsContext, lowerRect);
-				} else if (1) {
+				} else {
 					/*
-						An older, suboptimal method.
+					 * An older, suboptimal method.
 					 */
 					CGContextSetBlendMode (my d_macGraphicsContext, kCGBlendModeDifference);
 					if (direction == 1) {
@@ -364,16 +363,6 @@ static void highlight2 (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 						CGContextFillRect (my d_macGraphicsContext, rightRect);
 						CGContextFillRect (my d_macGraphicsContext, lowerRect);
 					}
-				} else if (1) {
-					/*
-						This is true XOR.
-					*/
-					CGContextSetBlendMode (my d_macGraphicsContext, kCGBlendModeDifference);
-					CGContextSetRGBFillColor (my d_macGraphicsContext, 1.0, 1.0, 1.0, 1.0);
-					CGContextFillRect (my d_macGraphicsContext, upperRect);
-					CGContextFillRect (my d_macGraphicsContext, leftRect);
-					CGContextFillRect (my d_macGraphicsContext, rightRect);
-					CGContextFillRect (my d_macGraphicsContext, lowerRect);
 				}
 				CGContextRestoreGState (my d_macGraphicsContext);
 				[drawingArea unlockFocus];
@@ -408,7 +397,7 @@ static void highlight2 (Graphics graphics, long x1DC, long x2DC, long y1DC, long
 			Rectangle (my d_gdiGraphicsContext, x1DC, y1DC_inner, x2DC + 1, y1DC + 1);
 			SetROP2 (my d_gdiGraphicsContext, R2_COPYPEN);
 			SelectPen (my d_gdiGraphicsContext, GetStockPen (BLACK_PEN));
-			SelectBrush (my d_gdiGraphicsContext, GetStockBrush (NULL_BRUSH));   // superfluous?
+			SelectBrush (my d_gdiGraphicsContext, GetStockBrush (NULL_BRUSH));   /* Superfluous? */
 		#endif
 	}
 }
@@ -433,10 +422,10 @@ void Graphics_xorOn (Graphics graphics, Graphics_Colour colour) {
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			GdkColor colourXorWhite { 0,
-				(uint16) ((uint16) (colour. red   * 65535.0) ^ (uint16) 0xFFFF),
-				(uint16) ((uint16) (colour. green * 65535.0) ^ (uint16) 0xFFFF),
-				(uint16) ((uint16) (colour. blue  * 65535.0) ^ (uint16) 0xFFFF) };
+			GdkColor colourXorWhite = { 0,
+				(uint16_t) ((uint16_t) (colour. red * 65535.0) ^ (uint16_t) 0xFFFF),
+				(uint16_t) ((uint16_t) (colour. green * 65535.0) ^ (uint16_t) 0xFFFF),
+				(uint16_t) ((uint16_t) (colour. blue * 65535.0) ^ (uint16_t) 0xFFFF) };
 			#if ALLOW_GDK_DRAWING
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & colourXorWhite);
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_XOR);
@@ -447,9 +436,9 @@ void Graphics_xorOn (Graphics graphics, Graphics_Colour colour) {
 			#endif
 		#elif win
 			SetROP2 (my d_gdiGraphicsContext, R2_XORPEN);
-			colour. red   = ((uint16) (colour. red   * 65535.0) ^ 0xFFFF) / 65535.0;
-			colour. green = ((uint16) (colour. green * 65535.0) ^ 0xFFFF) / 65535.0;
-			colour. blue  = ((uint16) (colour. blue  * 65535.0) ^ 0xFFFF) / 65535.0;
+			colour. red = ((uint16_t) (colour. red * 65535.0) ^ 0xFFFF) / 65535.0;
+			colour. green = ((uint16_t) (colour. green * 65535.0) ^ 0xFFFF) / 65535.0;
+			colour. blue = ((uint16_t) (colour. blue * 65535.0) ^ 0xFFFF) / 65535.0;
 			_Graphics_setColour (me, colour);
 		#elif cocoa
 		#elif mac
@@ -464,7 +453,7 @@ void Graphics_xorOff (Graphics graphics) {
 	if (graphics -> screen) {
 		GraphicsScreen me = static_cast <GraphicsScreen> (graphics);
 		#if cairo
-			GdkColor black { 0, 0x0000, 0x0000, 0x0000 };
+			GdkColor black = { 0, 0x0000, 0x0000, 0x0000 };
 			#if ALLOW_GDK_DRAWING
 				gdk_gc_set_rgb_fg_color (my d_gdkGraphicsContext, & black);
 				gdk_gc_set_function (my d_gdkGraphicsContext, GDK_COPY);
diff --git a/sys/Graphics_grey.cpp b/sys/Graphics_grey.cpp
index 33bc9f8..0da4cd7 100644
--- a/sys/Graphics_grey.cpp
+++ b/sys/Graphics_grey.cpp
@@ -243,7 +243,7 @@ static void makeClosedContour (int row0, int col0, int ori0) {
 
 	{
 		int i;
-		double xmin = 1e308, xmax = -1e308, ymin = 1e308, ymax = -1e308;
+		double xmin = 1e300, xmax = -1e300, ymin = 1e300, ymax = -1e300;
 		c -> grey = up ? iBorder + 1 : iBorder;
 		for (i = 1; i <= numberOfPoints; i ++) {
 			c -> x [i] = x [i];
@@ -260,7 +260,7 @@ static void makeClosedContour (int row0, int col0, int ori0) {
 	}
 }
 
-static void smallGrey () {
+static void smallGrey (void) {
 	int row, col, i;
 	numberOfEdgeContours = 0;
 	numberOfClosedContours = 0;
diff --git a/sys/Graphics_image.cpp b/sys/Graphics_image.cpp
index b951bcd..6752d9f 100644
--- a/sys/Graphics_image.cpp
+++ b/sys/Graphics_image.cpp
@@ -201,7 +201,7 @@ static void _GraphicsScreen_cellArrayOrImage (GraphicsScreen me, double **z_floa
 			bitmapInfo. header.biClrUsed = 0;
 			bitmapInfo. header.biClrImportant = 0;
 			bitmap = CreateDIBSection (my d_gdiGraphicsContext /* ignored */, (CONST BITMAPINFO *) & bitmapInfo,
-				DIB_RGB_COLORS, (VOID **) & bits, nullptr, 0);
+				DIB_RGB_COLORS, (VOID **) & bits, NULL, 0);
 		#elif mac
 			long bytesPerRow = (clipx2 - clipx1) * 4;
 			Melder_assert (bytesPerRow > 0);
@@ -275,7 +275,7 @@ static void _GraphicsScreen_cellArrayOrImage (GraphicsScreen me, double **z_floa
 					} \
 				}
 		#else
-			#define ROW_START_ADDRESS  nullptr
+			#define ROW_START_ADDRESS  NULL
 			#define PUT_PIXEL
 		#endif
 		if (interpolate) {
@@ -411,34 +411,34 @@ static void _GraphicsScreen_cellArrayOrImage (GraphicsScreen me, double **z_floa
 			//	bits, (CONST BITMAPINFO *) & bitmapInfo, DIB_RGB_COLORS, SRCCOPY);
 		#elif mac
 			CGImageRef image;
-			static CGColorSpaceRef colourSpace = nullptr;
-			if (! colourSpace) {
+			static CGColorSpaceRef colourSpace = NULL;
+			if (colourSpace == NULL) {
 				colourSpace = CGColorSpaceCreateWithName (kCGColorSpaceGenericRGB);   // used to be kCGColorSpaceUserRGB
-				Melder_assert (colourSpace != nullptr);
+				Melder_assert (colourSpace != NULL);
 			}
 			if (1) {
-				CGDataProviderRef dataProvider = CGDataProviderCreateWithData (nullptr,
+				CGDataProviderRef dataProvider = CGDataProviderCreateWithData (NULL,
 					imageData,
 					bytesPerRow * numberOfRows,
 					_mac_releaseDataCallback   // we need this because we cannot release the image data immediately after drawing,
 						// because in PDF files the imageData has to stay available through EndPage
 				);
-				Melder_assert (dataProvider != nullptr);
+				Melder_assert (dataProvider != NULL);
 				image = CGImageCreate (clipx2 - clipx1, numberOfRows,
-					8, 32, bytesPerRow, colourSpace, kCGImageAlphaNone, dataProvider, nullptr, false, kCGRenderingIntentDefault);
+					8, 32, bytesPerRow, colourSpace, kCGImageAlphaNone, dataProvider, NULL, false, kCGRenderingIntentDefault);
 				CGDataProviderRelease (dataProvider);
 			} else if (0) {
-				Melder_assert (CGBitmapContextCreate != nullptr);
+				Melder_assert (CGBitmapContextCreate != NULL);
 				CGContextRef bitmaptest = CGBitmapContextCreate (imageData, 100, 100,
 					8, 800, colourSpace, 0);
-				Melder_assert (bitmaptest != nullptr);
-				CGContextRef bitmap = CGBitmapContextCreate (nullptr /* imageData */, clipx2 - clipx1, numberOfRows,
+				Melder_assert (bitmaptest != NULL);
+				CGContextRef bitmap = CGBitmapContextCreate (NULL/*imageData*/, clipx2 - clipx1, numberOfRows,
 					8, bytesPerRow, colourSpace, kCGImageAlphaLast);
-				Melder_assert (bitmap != nullptr);
+				Melder_assert (bitmap != NULL);
 				image = CGBitmapContextCreateImage (bitmap);
 				// release bitmap?
 			}
-			Melder_assert (image != nullptr);
+			Melder_assert (image != NULL);
 			GraphicsQuartz_initDraw (me);
 			CGContextDrawImage (my d_macGraphicsContext, CGRectMake (clipx1, clipy2, clipx2 - clipx1, clipy1 - clipy2), image);
 			GraphicsQuartz_exitDraw (me);
@@ -688,27 +688,27 @@ static void cellArrayOrImage (Graphics me, double **z_float, double_rgbt **z_rgb
 
 void Graphics_cellArray (Graphics me, double **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, double minimum, double maximum)
-{ cellArrayOrImage (me, z, nullptr, nullptr, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, false); }
+{ cellArrayOrImage (me, z, NULL, NULL, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, FALSE); }
 
 void Graphics_cellArray_colour (Graphics me, double_rgbt **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, double minimum, double maximum)
-{ cellArrayOrImage (me, nullptr, z, nullptr, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, false); }
+{ cellArrayOrImage (me, NULL, z, NULL, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, FALSE); }
 
 void Graphics_cellArray8 (Graphics me, unsigned char **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, unsigned char minimum, unsigned char maximum)
-{ cellArrayOrImage (me, nullptr, nullptr, z, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, false); }
+{ cellArrayOrImage (me, NULL, NULL, z, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, FALSE); }
 
 void Graphics_image (Graphics me, double **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, double minimum, double maximum)
-{ cellArrayOrImage (me, z, nullptr, nullptr, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, true); }
+{ cellArrayOrImage (me, z, NULL, NULL, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, TRUE); }
 
 void Graphics_image_colour (Graphics me, double_rgbt **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, double minimum, double maximum)
-{ cellArrayOrImage (me, nullptr, z, nullptr, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, true); }
+{ cellArrayOrImage (me, NULL, z, NULL, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, TRUE); }
 
 void Graphics_image8 (Graphics me, unsigned char **z, long ix1, long ix2, double x1WC, double x2WC,
 	long iy1, long iy2, double y1WC, double y2WC, unsigned char minimum, unsigned char maximum)
-{ cellArrayOrImage (me, nullptr, nullptr, z, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, true); }
+{ cellArrayOrImage (me, NULL, NULL, z, ix1, ix2, x1WC, x2WC, iy1, iy2, y1WC, y2WC, minimum, maximum, TRUE); }
 
 static void _GraphicsScreen_imageFromFile (GraphicsScreen me, const char32 *relativeFileName, double x1, double x2, double y1, double y2) {
 	long x1DC = wdx (x1), x2DC = wdx (x2), y1DC = wdy (y1), y2DC = wdy (y2);
@@ -737,7 +737,7 @@ static void _GraphicsScreen_imageFromFile (GraphicsScreen me, const char32 *rela
 					z [iy] [ix]. transparency = photo -> d_transparency -> z [iy] [ix];
 				}
 			}
-			_cellArrayOrImage (me, nullptr, z.peek(), nullptr,
+			_cellArrayOrImage (me, NULL, z.peek(), NULL,
 				1, photo -> nx, x1DC, x2DC, 1, photo -> ny, y1DC, y2DC,
 				0.0, 1.0,
 				//wdx (my d_x1WC), wdx (my d_x2WC), wdy (my d_y1WC), wdy (my d_y2WC),   // in case of clipping
@@ -771,15 +771,15 @@ static void _GraphicsScreen_imageFromFile (GraphicsScreen me, const char32 *rela
 		Melder_relativePathToFile (relativeFileName, & file);
 		char utf8 [500];
 		Melder_str32To8bitFileRepresentation_inline (file. path, utf8);
-		CFStringRef path = CFStringCreateWithCString (nullptr, utf8, kCFStringEncodingUTF8);
-		CFURLRef url = CFURLCreateWithFileSystemPath (nullptr, path, kCFURLPOSIXPathStyle, false);
+		CFStringRef path = CFStringCreateWithCString (NULL, utf8, kCFStringEncodingUTF8);
+		CFURLRef url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, false);
 		CFRelease (path);
-		CGImageSourceRef imageSource = CGImageSourceCreateWithURL (url, nullptr);
+		CGImageSourceRef imageSource = CGImageSourceCreateWithURL (url, NULL);
 		CFRelease (url);
-		if (imageSource) {
-			CGImageRef image = CGImageSourceCreateImageAtIndex (imageSource, 0, nullptr);
+		if (imageSource != NULL) {
+			CGImageRef image = CGImageSourceCreateImageAtIndex (imageSource, 0, NULL);
 			CFRelease (imageSource);
-			if (image) {
+			if (image != NULL) {
 				if (x1 == x2 && y1 == y2) {
 					width = CGImageGetWidth (image), x1DC -= width / 2, x2DC = x1DC + width;
 					height = CGImageGetHeight (image), y2DC -= height / 2, y1DC = y2DC + height;
diff --git a/sys/Graphics_linesAndAreas.cpp b/sys/Graphics_linesAndAreas.cpp
index 7fc3cfa..49c4b47 100644
--- a/sys/Graphics_linesAndAreas.cpp
+++ b/sys/Graphics_linesAndAreas.cpp
@@ -59,10 +59,10 @@ static void psRevertLine (GraphicsPostscript me) {
 		}
 	#endif
 	static void cairoPrepareLine (GraphicsScreen me) {
-		if (! my d_cairoGraphicsContext) return;
-		double dotted_line [] { 2.0, 2.0 };
-		double dashed_line [] { 6.0, 2.0 };
-		double dashed_dotted_line [] { 6.0, 2.0, 2.0, 2.0 };
+		if (my d_cairoGraphicsContext == NULL) return;
+		double dotted_line [] = { 2, 2 };
+		double dashed_line [] = { 6, 2 };
+		double dashed_dotted_line [] = { 6, 2, 2, 2 };
 		cairo_save (my d_cairoGraphicsContext);
 		switch (my lineType) {
 			case Graphics_DOTTED:
@@ -78,9 +78,9 @@ static void psRevertLine (GraphicsPostscript me) {
 		cairo_set_line_width (my d_cairoGraphicsContext, my lineWidth);
 	}
 	static void cairoRevertLine (GraphicsScreen me) {
-		if (! my d_cairoGraphicsContext) return;
+		if (my d_cairoGraphicsContext == NULL) return;
 		if (my lineType >= Graphics_DOTTED) {
-			cairo_set_dash (my d_cairoGraphicsContext, nullptr, 0, 0);
+			cairo_set_dash (my d_cairoGraphicsContext, NULL, 0, 0);
 		}
 		cairo_restore (my d_cairoGraphicsContext);
 	}
@@ -97,7 +97,7 @@ static void psRevertLine (GraphicsPostscript me) {
 			brush. lbStyle = BS_SOLID;
 			brush. lbColor = my d_winForegroundColour;
 			brush. lbHatch = my lineType == Graphics_DRAWN ? 0 : my lineType == Graphics_DOTTED ? PS_DOT : my lineType == Graphics_DASHED ? PS_DASH : PS_DASHDOT;
-			newPen = ExtCreatePen (PS_GEOMETRIC, lineWidth_pixels, & brush, 0, nullptr);
+			newPen = ExtCreatePen (PS_GEOMETRIC, lineWidth_pixels, & brush, 0, NULL);
 		} else {
 			/*newPen = CreatePen (my lineType == Graphics_DRAWN ? PS_SOLID :
 				my lineType == Graphics_DOTTED ? PS_DOT : my lineType == Graphics_DASHED ? PS_DASH : PS_DASHDOT,
@@ -115,7 +115,7 @@ static void psRevertLine (GraphicsPostscript me) {
 	}
 #elif mac
 	static void quartzPrepareLine (GraphicsScreen me) {
-		CGContextSetLineJoin (my d_macGraphicsContext, kCGLineJoinBevel);   // much faster than kCGLineJoinRound
+		CGContextSetLineJoin (my d_macGraphicsContext, kCGLineJoinRound);
 		if (my duringXor) {
 			CGContextSetBlendMode (my d_macGraphicsContext, kCGBlendModeDifference);
 			CGContextSetAllowsAntialiasing (my d_macGraphicsContext, false);
@@ -125,7 +125,6 @@ static void psRevertLine (GraphicsPostscript me) {
 		}
 		double lineWidth_pixels = LINE_WIDTH_IN_PIXELS (me);
 		CGContextSetLineWidth (my d_macGraphicsContext, lineWidth_pixels);
-
 		CGFloat lengths [4];
 		if (my lineType == Graphics_DOTTED)
 			lengths [0] = my resolution > 192 ? my resolution / 100.0 : 2,
@@ -138,7 +137,7 @@ static void psRevertLine (GraphicsPostscript me) {
 			lengths [1] = my resolution > 192 ? my resolution / 50.0 + lineWidth_pixels : 2;
 			lengths [2] = my resolution > 192 ? my resolution / 100.0 : 2;
 			lengths [3] = my resolution > 192 ? my resolution / 50.0 + lineWidth_pixels : 2;
-		CGContextSetLineDash (my d_macGraphicsContext, 0.0, my lineType == Graphics_DRAWN ? nullptr : lengths, my lineType == 0 ? 0 : my lineType == Graphics_DASHED_DOTTED ? 4 : 2);
+		CGContextSetLineDash (my d_macGraphicsContext, 0.0, my lineType == Graphics_DRAWN ? NULL : lengths, my lineType == 0 ? 0 : my lineType == Graphics_DASHED_DOTTED ? 4 : 2);
 	}
 	static void quartzRevertLine (GraphicsScreen me) {
 		if (my duringXor) {
@@ -168,7 +167,7 @@ void structGraphicsScreen :: v_polyline (long numberOfPoints, double *xyDC, bool
 				gdk_flush ();
 			#endif
 		} else {
-			if (our d_cairoGraphicsContext == nullptr) return;
+			if (our d_cairoGraphicsContext == NULL) return;
 			cairoPrepareLine (this);
 			// cairo_new_path (d_cairoGraphicsContext); // move_to() automatically creates a new path
 			cairo_move_to (our d_cairoGraphicsContext, xyDC [0], xyDC [1]);
@@ -271,7 +270,7 @@ void structGraphicsPostscript :: v_polyline (long numberOfPoints, double *xyDC,
 
 void structGraphicsScreen :: v_fillArea (long numberOfPoints, double *xyDC) {
 	#if cairo
-		if (our d_cairoGraphicsContext == nullptr) return;
+		if (our d_cairoGraphicsContext == NULL) return;
 		// cairo_new_path (our d_cairoGraphicsContext); // move_to() automatically creates a new path
 		cairo_move_to (our d_cairoGraphicsContext, xyDC [0], xyDC [1]);
 		for (long i = 1; i < numberOfPoints; i ++)
@@ -281,7 +280,7 @@ void structGraphicsScreen :: v_fillArea (long numberOfPoints, double *xyDC) {
 	#elif win
 		MY_BRUSH
 		BeginPath (our d_gdiGraphicsContext);
-		MoveToEx (our d_gdiGraphicsContext, xyDC [0], xyDC [1], nullptr);
+		MoveToEx (our d_gdiGraphicsContext, xyDC [0], xyDC [1], NULL);
 		for (long i = 1; i < numberOfPoints; i ++)
 			LineTo (our d_gdiGraphicsContext, xyDC [i + i], xyDC [i + i + 1]);
 		EndPath (our d_gdiGraphicsContext);
@@ -314,16 +313,16 @@ void structGraphicsPostscript :: v_fillArea (long numberOfPoints, double *xyDC)
 void structGraphicsScreen :: v_rectangle (double x1DC, double x2DC, double y1DC, double y2DC) {
 	ORDER_DC
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;
 		double width = x2DC - x1DC, height = y1DC - y2DC;
-		if (width <= 0.0 || height <= 0.0) return;
+		if (width <= 0 || height <= 0) return;
 		cairoPrepareLine (this);
 		cairo_rectangle (d_cairoGraphicsContext, x1DC, y2DC, width, height);
 		cairo_stroke (d_cairoGraphicsContext);
 		cairoRevertLine (this);
 	#elif win
 		winPrepareLine (this);
-		Rectangle (our d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1.0, y1DC + 1.0);
+		Rectangle (our d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1, y1DC + 1);
 		DEFAULT
 	#elif mac
 		GraphicsQuartz_initDraw (this);
@@ -351,9 +350,9 @@ void structGraphicsPostscript :: v_rectangle (double x1DC, double x2DC, double y
 void structGraphicsScreen :: v_fillRectangle (double x1DC, double x2DC, double y1DC, double y2DC) {
 	ORDER_DC
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;	
 		double width = x2DC - x1DC + 1.0, height = y1DC - y2DC + 1.0;
-		if (width <= 0.0 || height <= 0.0) return;
+		if (width <= 0 || height <= 0) return;
 		trace (U"x1DC ", x1DC, U", x2DC ", x2DC, U", y1DC ", y1DC, U", y2DC ", y2DC);
 		cairo_rectangle (d_cairoGraphicsContext, round (x1DC), round (y2DC), round (width), round (height));
 		cairo_fill (d_cairoGraphicsContext);
@@ -361,7 +360,7 @@ void structGraphicsScreen :: v_fillRectangle (double x1DC, double x2DC, double y
 		RECT rect;
 		rect. left = x1DC, rect. right = x2DC, rect. top = y2DC, rect. bottom = y1DC;   /* Superfluous? */
 		MY_BRUSH
-		Rectangle (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1.0, y1DC + 1.0);
+		Rectangle (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1, y1DC + 1);
 		DEFAULT
 	#elif mac
 		GraphicsQuartz_initDraw (this);
@@ -390,21 +389,21 @@ void structGraphicsScreen :: v_circle (double xDC, double yDC, double rDC) {
 		if (duringXor) {
 			#if ALLOW_GDK_DRAWING
 				gdkPrepareLine (this);
-				gdk_draw_arc (d_window, d_gdkGraphicsContext, false, xDC - rDC, yDC - rDC, rDC + rDC, rDC + rDC, 0, 360 * 64);
+				gdk_draw_arc (d_window, d_gdkGraphicsContext, FALSE, xDC - rDC, yDC - rDC, rDC + rDC, rDC + rDC, 0, 360 * 64);
 				gdkRevertLine (this);
 				gdk_flush ();
 			#endif
 		} else {
-			if (! d_cairoGraphicsContext) return;
+			if (d_cairoGraphicsContext == NULL) return;
 			cairoPrepareLine (this);
 			cairo_new_path (d_cairoGraphicsContext);
-			cairo_arc (d_cairoGraphicsContext, xDC, yDC, rDC, 0.0, 2.0 * M_PI);
+			cairo_arc (d_cairoGraphicsContext, xDC, yDC, rDC, 0.0, 2 * M_PI);
 			cairo_stroke (d_cairoGraphicsContext);
 			cairoRevertLine (this);
 		}
 	#elif win
 		winPrepareLine (this);
-		Ellipse (d_gdiGraphicsContext, xDC - rDC, yDC - rDC, xDC + rDC + 1.0, yDC + rDC + 1.0);
+		Ellipse (d_gdiGraphicsContext, xDC - rDC, yDC - rDC, xDC + rDC + 1, yDC + rDC + 1);
 		DEFAULT
 	#elif mac
 		GraphicsQuartz_initDraw (this);
@@ -426,7 +425,7 @@ void structGraphicsPostscript :: v_circle (double xDC, double yDC, double rDC) {
 void structGraphicsScreen :: v_ellipse (double x1DC, double x2DC, double y1DC, double y2DC) {
 	ORDER_DC
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;
 		cairoPrepareLine (this);
 		cairo_new_path (d_cairoGraphicsContext);
 		cairo_save (d_cairoGraphicsContext);
@@ -474,7 +473,7 @@ void structGraphicsPostscript :: v_ellipse (double x1DC, double x2DC, double y1D
 
 void structGraphicsScreen :: v_arc (double xDC, double yDC, double rDC, double fromAngle, double toAngle) {
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;
 		cairoPrepareLine (this);
 		cairo_new_path (d_cairoGraphicsContext);
 		cairo_arc (d_cairoGraphicsContext, xDC, yDC, rDC, -toAngle * (M_PI / 180.0), -fromAngle * (M_PI / 180.0));
@@ -509,7 +508,7 @@ void structGraphicsPostscript :: v_arc (double xDC, double yDC, double rDC, doub
 
 void structGraphicsScreen :: v_fillCircle (double xDC, double yDC, double rDC) {
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;
 		cairo_new_path (d_cairoGraphicsContext);
 		cairo_arc (d_cairoGraphicsContext, xDC, yDC, rDC, 0, 2 * M_PI);
 		cairo_fill (d_cairoGraphicsContext);
@@ -518,7 +517,7 @@ void structGraphicsScreen :: v_fillCircle (double xDC, double yDC, double rDC) {
 		/*
 		 * NT cannot fill circles that span less than five pixels...
 		 */
-		Ellipse (d_gdiGraphicsContext, xDC - rDC - 1.0, yDC - rDC - 1.0, xDC + rDC + 1.0, yDC + rDC + 1.0);
+		Ellipse (d_gdiGraphicsContext, xDC - rDC - 1, yDC - rDC - 1, xDC + rDC + 1, yDC + rDC + 1);
 		DEFAULT
 	#elif mac
 		GraphicsQuartz_initDraw (this);
@@ -539,17 +538,17 @@ void structGraphicsPostscript :: v_fillCircle (double xDC, double yDC, double rD
 void structGraphicsScreen :: v_fillEllipse (double x1DC, double x2DC, double y1DC, double y2DC) {
 	ORDER_DC
 	#if cairo
-		if (! d_cairoGraphicsContext) return;
+		if (d_cairoGraphicsContext == NULL) return;	
 		cairo_new_path (d_cairoGraphicsContext);
 		cairo_save (d_cairoGraphicsContext);
 		cairo_translate (d_cairoGraphicsContext, 0.5 * (x2DC + x1DC), 0.5 * (y2DC + y1DC));
 		cairo_scale (d_cairoGraphicsContext, 0.5 * (x2DC - x1DC), 0.5 * (y2DC - y1DC));
-		cairo_arc (d_cairoGraphicsContext, 0.0, 0.0, 1.0, 0.0, 2.0 * M_PI);
+		cairo_arc (d_cairoGraphicsContext, 0.0, 0.0, 1.0, 0.0, 2 * M_PI);
 		cairo_restore (d_cairoGraphicsContext);
 		cairo_fill (d_cairoGraphicsContext);
 	#elif win
 		MY_BRUSH
-		Ellipse (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1.0, y1DC + 1.0);
+		Ellipse (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1, y1DC + 1);
 		DEFAULT
 	#elif mac
 		GraphicsQuartz_initDraw (this);
@@ -571,7 +570,7 @@ void structGraphicsScreen :: v_fillEllipse (double x1DC, double x2DC, double y1D
 
 void structGraphicsPostscript :: v_fillEllipse (double x1DC, double x2DC, double y1DC, double y2DC) {
 	d_printf (d_file, "gsave %.7g %.7g translate %.7g %.7g scale N 0 0 1 FC grestore\n",
-		(x2DC + x1DC) / 2.0, (y2DC + y1DC) / 2.0, (x2DC - x1DC) / 2.0, (y2DC - y1DC) / 2.0);
+		(x2DC + x1DC) / 2, (y2DC + y1DC) / 2, (x2DC - x1DC) / 2, (y2DC - y1DC) / 2);
 }
 
 void structGraphicsScreen :: v_button (double x1DC, double x2DC, double y1DC, double y2DC) {
@@ -668,7 +667,7 @@ void structGraphicsScreen :: v_button (double x1DC, double x2DC, double y1DC, do
             }
         }
 		CGContextSetAllowsAntialiasing (d_macGraphicsContext, true);
-		CGContextSetLineDash (d_macGraphicsContext, 0, nullptr, 0);
+		CGContextSetLineDash (d_macGraphicsContext, 0, NULL, 0);
 		GraphicsQuartz_exitDraw (this);
     #elif win
         RECT rect;
@@ -691,25 +690,25 @@ void structGraphics :: v_roundedRectangle (double x1DC, double x2DC, double y1DC
 	xyDC [2] = x2DC - r;
 	xyDC [3] = y1DC;
 	v_polyline (2, xyDC, false);
-	v_arc (x2DC - r, y1DC + dy, r, -90.0, 0.0);
+	v_arc (x2DC - r, y1DC + dy, r, -90, 0);
 	xyDC [0] = x2DC;
 	xyDC [1] = y1DC + dy;
 	xyDC [2] = x2DC;
 	xyDC [3] = y2DC - dy;
 	v_polyline (2, xyDC, false);
-	v_arc (x2DC - r, y2DC - dy, r, 0.0, 90.0);
+	v_arc (x2DC - r, y2DC - dy, r, 0, 90);
 	xyDC [0] = x2DC - r;
 	xyDC [1] = y2DC;
 	xyDC [2] = x1DC + r;
 	xyDC [3] = y2DC;
 	v_polyline (2, xyDC, false);
-	v_arc (x1DC + r, y2DC - dy, r, 90.0, 180.0);
+	v_arc (x1DC + r, y2DC - dy, r, 90, 180);
 	xyDC [0] = x1DC;
 	xyDC [1] = y2DC - dy;
 	xyDC [2] = x1DC;
 	xyDC [3] = y1DC + dy;
 	v_polyline (2, xyDC, false);
-	v_arc (x1DC + r, y1DC + dy, r, 180.0, 270.0);
+	v_arc (x1DC + r, y1DC + dy, r, 180, 270);
 }
 
 void structGraphicsScreen :: v_roundedRectangle (double x1DC, double x2DC, double y1DC, double y2DC, double r) {
@@ -717,7 +716,7 @@ void structGraphicsScreen :: v_roundedRectangle (double x1DC, double x2DC, doubl
 		double dy = yIsZeroAtTheTop ? - r : r, xyDC [4];
 		ORDER_DC
 		winPrepareLine (this);
-		RoundRect (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1.0, y1DC + 1.0, r + r, r + r);
+		RoundRect (d_gdiGraphicsContext, x1DC, y2DC, x2DC + 1, y1DC + 1, r + r, r + r);
 		DEFAULT
 		return;
 	#else
@@ -835,7 +834,7 @@ void Graphics_fillArea (Graphics me, long numberOfPoints, double *xWC, double *y
 	long x1DC, x2DC; \
 	long clipy1 = wdy (my d_y1WC), clipy2 = wdy (my d_y2WC); \
 	double dx, offsetX, translation, scale; \
-	long n = ix2 - ix1 + 1; \
+	long i, n = ix2 - ix1 + 1; \
  \
 	if (ix2 <= ix1 || my scaleX == 0.0) return; \
  \
@@ -853,7 +852,7 @@ void Graphics_fillArea (Graphics me, long numberOfPoints, double *xWC, double *y
 		TYPE lastMini; \
 		if (numberOfPointsActuallyDrawn < 1) return; \
 		xyDC = Melder_malloc_f (double, 2 * numberOfPointsActuallyDrawn); \
-		for (long i = 0; i < numberOfPixels; i ++) { \
+		for (i = 0; i < numberOfPixels; i ++) { \
 			long j, jmin = ix1 + i / scale, jmax = ix1 + (i + 1) / scale; \
 			TYPE mini, maxi; \
 			long minDC, maxDC; \
@@ -913,7 +912,7 @@ void Graphics_fillArea (Graphics me, long numberOfPoints, double *xWC, double *y
 		Melder_free (xyDC); \
 	} else {  /* Normal. */  \
 		double *xyDC = Melder_malloc_f (double, 2 * n); \
-		for (long i = 0; i < n; i ++) { \
+		for (i = 0; i < n; i ++) { \
 			long ix = ix1 + i; \
 			long value = wdy (yWC [STAGGER (ix)]); \
 			xyDC [i + i] = translation + ix * scale; \
@@ -1063,21 +1062,21 @@ void structGraphics :: v_arrowHead (double xDC, double yDC, double angle) {
 
 void structGraphicsScreen :: v_arrowHead (double xDC, double yDC, double angle) {
 	#if cairo
-		if (! our d_cairoGraphicsContext) return;
-		double size = 10.0 * our resolution * our arrowSize / 75.0;   // TODO: die 75 zou dat niet de scherm resolutie moeten worden?
+		if (our d_cairoGraphicsContext == NULL) return;
+		double size = 10.0 * our resolution * our arrowSize / 75.0; // TODO: die 75 zou dat niet de scherm resolutie moeten worden?
 		cairo_new_path (our d_cairoGraphicsContext);
-		cairo_move_to (our d_cairoGraphicsContext, xDC + cos ((angle + 160.0) * NUMpi / 180.0) * size, yDC - sin ((angle + 160.0) * NUMpi / 180.0) * size);
+		cairo_move_to (our d_cairoGraphicsContext, xDC + cos ((angle + 160) * NUMpi / 180) * size, yDC - sin ((angle + 160) * NUMpi / 180) * size);
 		cairo_line_to (our d_cairoGraphicsContext, xDC, yDC);
-		cairo_line_to (our d_cairoGraphicsContext, xDC + cos ((angle - 160.0) * NUMpi / 180.0) * size, yDC - sin ((angle - 160.0) * NUMpi / 180.0) * size);
+		cairo_line_to (our d_cairoGraphicsContext, xDC + cos ((angle - 160) * NUMpi / 180) * size, yDC - sin ((angle - 160) * NUMpi / 180) * size);
 		cairo_close_path (our d_cairoGraphicsContext);
 		cairo_fill (our d_cairoGraphicsContext);
 	#elif win
 		double size = 10.0 * our resolution * our arrowSize / 72.0;
 		MY_BRUSH
 		BeginPath (our d_gdiGraphicsContext);
-		MoveToEx (our d_gdiGraphicsContext, xDC + cos ((angle + 160.0) * NUMpi / 180.0) * size, yDC - sin ((angle + 160.0) * NUMpi / 180.0) * size, nullptr);
+		MoveToEx (our d_gdiGraphicsContext, xDC + cos ((angle + 160) * NUMpi / 180) * size, yDC - sin ((angle + 160) * NUMpi / 180) * size, NULL);
 		LineTo (our d_gdiGraphicsContext, xDC, yDC);
-		LineTo (our d_gdiGraphicsContext, xDC + cos ((angle - 160.0) * NUMpi / 180.0) * size, yDC - sin ((angle - 160.0) * NUMpi / 180.0) * size);
+		LineTo (our d_gdiGraphicsContext, xDC + cos ((angle - 160) * NUMpi / 180) * size, yDC - sin ((angle - 160) * NUMpi / 180) * size);
 		EndPath (our d_gdiGraphicsContext);
 		FillPath (our d_gdiGraphicsContext);
 		DEFAULT
@@ -1088,10 +1087,10 @@ void structGraphicsScreen :: v_arrowHead (double xDC, double yDC, double angle)
 		CGContextSaveGState (our d_macGraphicsContext);
 		CGContextBeginPath (our d_macGraphicsContext);
 		CGContextTranslateCTM (our d_macGraphicsContext, xDC, yDC);
-		CGContextRotateCTM (our d_macGraphicsContext, - angle * NUMpi / 180.0);
+		CGContextRotateCTM (our d_macGraphicsContext, - angle * NUMpi / 180);
 		CGContextMoveToPoint (our d_macGraphicsContext, 0.0, 0.0);
 		double size = 10.0 * our resolution * our arrowSize / 72.0;
-		double radius = our resolution * our arrowSize / 30.0;
+		double radius = our resolution * our arrowSize / 30;
 		CGContextAddArc (our d_macGraphicsContext, - size, 0.0, radius, - NUMpi / 3.0, NUMpi / 3.0, 0);
 		CGContextAddLineToPoint (our d_macGraphicsContext, 0.0, 0.0);
 		CGContextFillPath (our d_macGraphicsContext);
@@ -1101,34 +1100,34 @@ void structGraphicsScreen :: v_arrowHead (double xDC, double yDC, double angle)
 }
 
 void structGraphicsPostscript :: v_arrowHead (double xDC, double yDC, double angle) {
-	double length = resolution * arrowSize / 10.0, radius = resolution * arrowSize / 30.0;
+	double length = resolution * arrowSize / 10, radius = resolution * arrowSize / 30;
 	d_printf (d_file, "gsave %.7g %.7g translate %.7g rotate\n"
 		"N 0 0 M %.7g 0 %.7g -60 60 arc closepath fill grestore\n", xDC, yDC, angle, - length, radius);
 }
 
 void Graphics_arrow (Graphics me, double x1WC, double y1WC, double x2WC, double y2WC) {
-	double angle = (180.0 / NUMpi) * atan2 ((wdy (y2WC) - wdy (y1WC)) * (my yIsZeroAtTheTop ? -1.0 : 1.0), wdx (x2WC) - wdx (x1WC));
+	double angle = (180.0 / NUMpi) * atan2 ((wdy (y2WC) - wdy (y1WC)) * (my yIsZeroAtTheTop ? -1 : 1), wdx (x2WC) - wdx (x1WC));
 	double size = my screen ? 10.0 * my resolution * my arrowSize / 72.0 : my resolution * my arrowSize / 10;
 	double xyDC [4];
 	xyDC [0] = wdx (x1WC);
 	xyDC [1] = wdy (y1WC);
-	xyDC [2] = wdx (x2WC) + (my screen ? 0.7 : 0.6) * cos ((angle - 180.0) * NUMpi / 180.0) * size;
-	xyDC [3] = wdy (y2WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin ((angle - 180.0) * NUMpi / 180.0) * size;
+	xyDC [2] = wdx (x2WC) + (my screen ? 0.7 : 0.6) * cos ((angle - 180) * NUMpi / 180) * size;
+	xyDC [3] = wdy (y2WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin ((angle - 180) * NUMpi / 180) * size;
 	my v_polyline (2, xyDC, false);
 	my v_arrowHead (wdx (x2WC), wdy (y2WC), angle);
 	if (my recording) { op (ARROW, 4); put (x1WC); put (y1WC); put (x2WC); put (y2WC); }
 }
 
 void Graphics_doubleArrow (Graphics me, double x1WC, double y1WC, double x2WC, double y2WC) {
-	double angle = (180.0 / NUMpi) * atan2 ((wdy (y2WC) - wdy (y1WC)) * (my yIsZeroAtTheTop ? -1.0 : 1.0), wdx (x2WC) - wdx (x1WC));
-	double size = my screen ? 10.0 * my resolution * my arrowSize / 72.0 : my resolution * my arrowSize / 10.0;
+	double angle = (180.0 / NUMpi) * atan2 ((wdy (y2WC) - wdy (y1WC)) * (my yIsZeroAtTheTop ? -1 : 1), wdx (x2WC) - wdx (x1WC));
+	double size = my screen ? 10.0 * my resolution * my arrowSize / 72.0 : my resolution * my arrowSize / 10;
 	double xyDC [4];
-	xyDC [0] = wdx (x1WC) + (my screen ? 0.7 : 0.6) * cos (angle * NUMpi / 180.0) * size;
-	xyDC [1] = wdy (y1WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin (angle * NUMpi / 180.0) * size;
-	xyDC [2] = wdx (x2WC) + (my screen ? 0.7 : 0.6) * cos ((angle - 180) * NUMpi / 180.0) * size;
-	xyDC [3] = wdy (y2WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin ((angle - 180.0) * NUMpi / 180.0) * size;
+	xyDC [0] = wdx (x1WC) + (my screen ? 0.7 : 0.6) * cos (angle * NUMpi / 180) * size;
+	xyDC [1] = wdy (y1WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin (angle * NUMpi / 180) * size;
+	xyDC [2] = wdx (x2WC) + (my screen ? 0.7 : 0.6) * cos ((angle - 180) * NUMpi / 180) * size;
+	xyDC [3] = wdy (y2WC) + (my yIsZeroAtTheTop ? -1.0 : 1.0) * (my screen ? 0.7 : 0.6) * sin ((angle - 180) * NUMpi / 180) * size;
 	my v_polyline (2, xyDC, false);
-	my v_arrowHead (wdx (x1WC), wdy (y1WC), angle + 180.0);
+	my v_arrowHead (wdx (x1WC), wdy (y1WC), angle + 180);
 	//my v_polyline (2, xyDC);
 	my v_arrowHead (wdx (x2WC), wdy (y2WC), angle);
 	if (my recording) { op (DOUBLE_ARROW, 4); put (x1WC); put (y1WC); put (x2WC); put (y2WC); }
@@ -1140,10 +1139,10 @@ void Graphics_arcArrow (Graphics me, double xWC, double yWC, double rWC,
 	my v_arc (wdx (xWC), wdy (yWC), my scaleX * rWC, fromAngle, toAngle);
 	if (arrowAtStart) my v_arrowHead (
 		wdx (xWC + rWC * cos (fromAngle * (NUMpi / 180.0))),
-		wdy (yWC + rWC * sin (fromAngle * (NUMpi / 180.0))), fromAngle - 90.0);
+		wdy (yWC + rWC * sin (fromAngle * (NUMpi / 180.0))), fromAngle - 90);
 	if (arrowAtEnd) my v_arrowHead (
 		wdx (xWC + rWC * cos (toAngle * (NUMpi / 180.0))),
-		wdy (yWC + rWC * sin (toAngle * (NUMpi / 180.0))), toAngle + 90.0);
+		wdy (yWC + rWC * sin (toAngle * (NUMpi / 180.0))), toAngle + 90);
 	if (my recording)
 		{ op (ARC_ARROW, 7); put (xWC); put (yWC); put (rWC);
 		  put (fromAngle); put (toAngle); put (arrowAtStart); put (arrowAtEnd); }
diff --git a/sys/Graphics_mouse.cpp b/sys/Graphics_mouse.cpp
index 2f64512..3195fec 100644
--- a/sys/Graphics_mouse.cpp
+++ b/sys/Graphics_mouse.cpp
@@ -35,7 +35,7 @@ bool structGraphicsScreen :: v_mouseStillDown () {
 		gdk_event_free (gevent);
 		return gdkEventType != GDK_BUTTON_RELEASE;
 	#elif cocoa
-		[[d_macView window]   flushWindow];
+		Graphics_flushWs (this);
 		NSEvent *nsEvent = [[d_macView window]
 			nextEventMatchingMask: NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSKeyDownMask
 			untilDate: [NSDate distantFuture]
@@ -49,8 +49,6 @@ bool structGraphicsScreen :: v_mouseStillDown () {
 		return motif_win_mouseStillDown ();
 	#elif mac
 		return StillDown ();
-	#else
-		return false;
 	#endif
 }
 
@@ -58,30 +56,30 @@ bool Graphics_mouseStillDown (Graphics me) {
 	return my v_mouseStillDown ();
 }
 
-void structGraphicsScreen :: v_getMouseLocation (double *p_xWC, double *p_yWC) {
+void structGraphicsScreen :: v_getMouseLocation (double *xWC, double *yWC) {
 	#if cairo
 		gint xDC, yDC;
-		gdk_window_get_pointer (d_window, & xDC, & yDC, nullptr);
-		Graphics_DCtoWC (this, xDC, yDC, p_xWC, p_yWC);
+		gdk_window_get_pointer (d_window, & xDC, & yDC, NULL);
+		Graphics_DCtoWC (this, xDC, yDC, xWC, yWC);
 	#elif cocoa
         NSPoint mouseLoc = [[d_macView window]  mouseLocationOutsideOfEventStream];
         mouseLoc = [d_macView   convertPoint: mouseLoc   fromView: nil];
         //mouseLoc. y = d_macView. bounds. size. height - mouseLoc. y;
-        Graphics_DCtoWC (this, mouseLoc. x, mouseLoc. y, p_xWC, p_yWC);
+        Graphics_DCtoWC (this, mouseLoc. x, mouseLoc. y, xWC, yWC);
 	#elif win
 		POINT pos;
 		if (! GetCursorPos (& pos)) { Melder_warning (U"Cannot find the location of the mouse."); return; }
 		ScreenToClient (d_winWindow, & pos);
-		Graphics_DCtoWC (this, pos. x, pos. y, p_xWC, p_yWC);
+		Graphics_DCtoWC (this, pos. x, pos. y, xWC, yWC);
 	#elif mac
 		Point mouseLoc;
 		GetMouse (& mouseLoc);
-		Graphics_DCtoWC (this, mouseLoc. h, mouseLoc. v, p_xWC, p_yWC);
+		Graphics_DCtoWC (this, mouseLoc. h, mouseLoc. v, xWC, yWC);
 	#endif
 }
 
-void Graphics_getMouseLocation (Graphics me, double *p_xWC, double *p_yWC) {
-	my v_getMouseLocation (p_xWC, p_yWC);
+void Graphics_getMouseLocation (Graphics me, double *xWC, double *yWC) {
+	my v_getMouseLocation (xWC, yWC);
 }
 
 void Graphics_waitMouseUp (Graphics me) {
diff --git a/sys/Graphics_record.cpp b/sys/Graphics_record.cpp
index e48d63a..2ba9d5c 100644
--- a/sys/Graphics_record.cpp
+++ b/sys/Graphics_record.cpp
@@ -36,7 +36,7 @@
 
 double * _Graphics_check (Graphics me, long number) {
 	static bool messageHasAlreadyBeenShownOnce = false;
-	double *result = nullptr;
+	double *result = NULL;
 	double *record = my record;
 	long nrecord = my nrecord;
 	if (nrecord == 0) {
@@ -51,7 +51,7 @@ double * _Graphics_check (Graphics me, long number) {
 				Melder_flushError (U"_Graphics_growRecorder: out of memory.\n"
 					U"This message will not show up on future occasions.");   // because of loop danger when redrawing
 			}
-			return nullptr;
+			return NULL;
 		}
 		my record = record; my nrecord = nrecord;
 	}
@@ -67,7 +67,7 @@ double * _Graphics_check (Graphics me, long number) {
 				Melder_flushError (U"_Graphics_growRecorder: out of memory.\n"
 					U"This message will not show up on future occasions.");   // because of loop danger when redrawing
 			}
-			return nullptr;
+			return NULL;
 		}
 		my record = record; my nrecord = nrecord;
 	}
@@ -446,8 +446,7 @@ void Graphics_writeRecordings (Graphics me, FILE *f) {
 void Graphics_readRecordings (Graphics me, FILE *f) {
 	long old_irecord = my irecord;
 	long added_irecord = 0;
-	double* p = nullptr;
-	double* endp = nullptr;
+	double *p = NULL, *endp = NULL;
 	signed long numberOfArguments = 0;
 	int opcode = 0;
 	try {
diff --git a/sys/Graphics_text.cpp b/sys/Graphics_text.cpp
index a7ad8a7..be3f18e 100644
--- a/sys/Graphics_text.cpp
+++ b/sys/Graphics_text.cpp
@@ -70,9 +70,9 @@ extern const char * ipaSerifRegularPS [];
  * The ISO8859-1 character encoding, which is used on Xwin and Win, has not.
  */
 #if mac
-	#define HAS_FI_AND_FL_LIGATURES  true
+	#define HAS_FI_AND_FL_LIGATURES  TRUE
 #else
-	#define HAS_FI_AND_FL_LIGATURES  ( my postScript == true )
+	#define HAS_FI_AND_FL_LIGATURES  ( my postScript == TRUE )
 #endif
 
 #if win
@@ -98,20 +98,15 @@ extern const char * ipaSerifRegularPS [];
 #endif
 
 #if win
-#ifdef __CYGWIN__
-	#define FONT_TYPE_TYPE  unsigned int
-#else
-	#define FONT_TYPE_TYPE  unsigned long int
-#endif
 static bool charisAvailable = false, doulosAvailable = false;
-static int CALLBACK fontFuncEx_charis (const LOGFONTW *oldLogFont, const TEXTMETRICW *oldTextMetric, FONT_TYPE_TYPE fontType, LPARAM lparam) {
+static int CALLBACK fontFuncEx_charis (const LOGFONTW *oldLogFont, const TEXTMETRICW *oldTextMetric, unsigned long fontType, LPARAM lparam) {
 	const LPENUMLOGFONTW logFont = (LPENUMLOGFONTW) oldLogFont; (void) oldTextMetric; (void) fontType; (void) lparam;
-	charisAvailable = true;
+	charisAvailable = TRUE;
 	return 1;
 }
-static int CALLBACK fontFuncEx_doulos (const LOGFONTW *oldLogFont, const TEXTMETRICW *oldTextMetric, FONT_TYPE_TYPE fontType, LPARAM lparam) {
+static int CALLBACK fontFuncEx_doulos (const LOGFONTW *oldLogFont, const TEXTMETRICW *oldTextMetric, unsigned long fontType, LPARAM lparam) {
 	const LPENUMLOGFONTW logFont = (LPENUMLOGFONTW) oldLogFont; (void) oldTextMetric; (void) fontType; (void) lparam;
-	doulosAvailable = true;
+	doulosAvailable = TRUE;
 	return 1;
 }
 static HFONT loadFont (GraphicsScreen me, int font, int size, int style) {
@@ -148,7 +143,7 @@ static HFONT loadFont (GraphicsScreen me, int font, int size, int style) {
 		EnumFontFamiliesExW (my d_gdiGraphicsContext, & logFont, fontFuncEx_charis, 0, 0);
 		wcscpy (logFont. lfFaceName, L"Doulos SIL");
 		EnumFontFamiliesExW (my d_gdiGraphicsContext, & logFont, fontFuncEx_doulos, 0, 0);
-		ipaInited = true;
+		ipaInited = TRUE;
 		if (! charisAvailable && ! doulosAvailable) {
 			/* BUG: The next warning may cause reentry of drawing (on window exposure) and lead to crash. Some code must be non-reentrant !! */
 			Melder_warning (U"The phonetic font is not available.\nSeveral characters may not look correct.\nSee www.praat.org");
@@ -169,7 +164,7 @@ static HFONT loadFont (GraphicsScreen me, int font, int size, int style) {
 }
 #endif
 
-static void charSize (void *void_me, _Graphics_widechar *lc) {
+static void charSize (I, _Graphics_widechar *lc) {
 	iam (Graphics);
 	if (my screen) {
 		iam (GraphicsScreen);
@@ -182,11 +177,11 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 				lc -> width = 10;
 				lc -> baseline *= my fontSize * 0.01;
 				lc -> code = lc -> kar;
-				lc -> font.string = nullptr;
+				lc -> font.string = NULL;
 				lc -> font.integer = 0;
 				lc -> size = size;
 			} else {
-				if (! my d_cairoGraphicsContext) return;
+				if (my d_cairoGraphicsContext == NULL) return;
 				Longchar_Info info = Longchar_getInfoFromNative (lc -> kar);
 				int font, size, style;
 				int normalSize = my fontSize * my resolution / 72.0;
@@ -219,7 +214,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 				trace (U"width ", lc -> width);
 				lc -> baseline *= my fontSize * 0.01;
 				lc -> code = lc -> kar;
-				lc -> font.string = nullptr;
+				lc -> font.string = NULL;
 				lc -> font.integer = font;
 				lc -> size = size;
 			}
@@ -281,7 +276,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 			}
 			lc -> width = extent. cx;
 			lc -> baseline *= my fontSize * 0.01 * my resolution / 72.0;
-			lc -> font.string = nullptr;
+			lc -> font.string = NULL;
 			lc -> font.integer = font;   // kGraphics_font_HELVETICA .. kGraphics_font_DINGBATS
 			lc -> size = size;   // 0..4 instead of 10..24
 			lc -> style = style;   // without Graphics_CODE
@@ -292,7 +287,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 			lc -> size = lc -> size < 100 ? (3 * normalSize + 2) / 4 : /*lc -> size > 100 ? 1.2 * normalSize :*/ normalSize;
 			lc -> baseline *= 0.01 * normalSize;
 			long saveFont = lc -> font.integer;   // save!
-			lc -> font.string = nullptr;   // this erases font.integer!
+			lc -> font.string = NULL;   // this erases font.integer!
 			ATSFontRef atsuiFont =
 				info -> alphabet == Longchar_SYMBOL ? theSymbolAtsuiFont :
 				info -> alphabet == Longchar_PHONETIC ? ( my font == kGraphics_font_TIMES && lc -> style == 0 ? theIpaTimesAtsuiFont : theIpaPalatinoAtsuiFont ) :
@@ -304,7 +299,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 				my font == kGraphics_font_COURIER ? theCourierAtsuiFont : theTimesAtsuiFont;
 			Melder_assert (atsuiFont != 0);
 			lc -> font.integer = (long) atsuiFont;
-			//CTFontRef ctFont = CTFontCreateWithName (CFSTR("Times"), 48, nullptr);
+			//CTFontRef ctFont = CTFontCreateWithName (CFSTR("Times"), 48, NULL);
 			lc -> code = lc -> kar;
 			if (lc -> code == 0) {
 				_Graphics_widechar *lc2;
@@ -329,8 +324,8 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 			/*
 			 * Define the text layout.
 			 */
-			static ATSUTextLayout textLayout = nullptr;
-			if (! textLayout) {
+			static ATSUTextLayout textLayout;
+			if (textLayout == NULL) {
 				OSStatus err = ATSUCreateTextLayout (& textLayout);
 				if (err != 0) Melder_fatal (U"Graphics_text/ATSUCreateTextLayout: unknown MacOS error ", (int) err, U".");
 			}
@@ -350,10 +345,10 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 					kATSUFromTextBeginning, kATSUToTextEnd, 2);   // BUG: not 64-bit
 				if (err != 0) Melder_fatal (U"Graphics_text/ATSUSetTextPointerLocation high Unicode: unknown MacOS error ", (int) err, U".");
 			}
-			static ATSUFontFallbacks fontFallbacks = nullptr;
-			if (! fontFallbacks) {
+			static ATSUFontFallbacks fontFallbacks = NULL;
+			if (fontFallbacks == NULL) {
 				ATSUCreateFontFallbacks (& fontFallbacks);
-				ATSUSetObjFontFallbacks (fontFallbacks, 0, nullptr, kATSUDefaultFontFallbacks);
+				ATSUSetObjFontFallbacks (fontFallbacks, 0, NULL, kATSUDefaultFontFallbacks);
 			}
 			ATSUAttributeTag attributeTags [] = { kATSUCGContextTag, kATSULineFontFallbacksTag };
 			ByteCount valueSizes [] = { sizeof (CGContextRef), sizeof (ATSUFontFallbacks) };
@@ -363,8 +358,8 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 			/*
 			 * Set styles: font, size, colour, bold, italic.
 			 */
-			static ATSUStyle atsuStyle = nullptr;
-			if (! atsuStyle) {
+			static ATSUStyle atsuStyle;
+			if (atsuStyle == NULL) {
 				ATSUCreateStyle (& atsuStyle);
 			}
 			Fixed fontSize = lc -> size << 16;
@@ -390,7 +385,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 			lc -> style == Graphics_BOLD || lc -> link ? Graphics_BOLD :
 			lc -> style == Graphics_BOLD_ITALIC ? Graphics_BOLD_ITALIC : 0;
 		if (! my fontInfos [font] [style]) {
-			const char *fontInfo, *secondaryFontInfo = nullptr, *tertiaryFontInfo = nullptr;
+			const char *fontInfo, *secondaryFontInfo = NULL, *tertiaryFontInfo = NULL;
 			if (font == kGraphics_font_COURIER) {
 				fontInfo = style == Graphics_BOLD ? "Courier-Bold" :
 					style == Graphics_ITALIC ? "Courier-Oblique" :
@@ -426,7 +421,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 					const char **p;
 					for (p = & ipaSerifRegularPS [0]; *p; p ++)
 						my d_printf (my d_file, "%s", *p);
-					my loadedXipa = true;
+					my loadedXipa = TRUE;
 				}
 				fontInfo = my useSilipaPS ?
 					(style == Graphics_BOLD || style == Graphics_BOLD_ITALIC ? "SILDoulosIPA93Bold" : "SILDoulosIPA93Regular") :
@@ -459,7 +454,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 					my d_printf (my d_file, "/%s /%s-Praat PraatEncode\n", secondaryFontInfo, fontInfo);
 				} else {
 					/* Automatic font choice strategy. */
-					if (secondaryFontInfo) {
+					if (secondaryFontInfo != NULL) {
 						my d_printf (my d_file,
 							"/%s /Font resourcestatus\n"
 							"{ pop pop /%s /%s-Praat PraatEncode }\n"
@@ -539,7 +534,7 @@ static void charSize (void *void_me, _Graphics_widechar *lc) {
 	}
 }
 
-static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
+static void charDraw (I, int xDC, int yDC, _Graphics_widechar *lc,
 	const char32 *codes, int nchars, int width)
 {
 	iam (Graphics);
@@ -587,7 +582,7 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 		#if cairo
 			if (my duringXor) {
 			} else {
-				if (! my d_cairoGraphicsContext) return;
+				if (my d_cairoGraphicsContext == NULL) return;
 				// TODO!
 			}
 			int font = lc -> font.integer;
@@ -610,9 +605,9 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 				CTFontSymbolicTraits ctStyle = ( style & Graphics_BOLD ? kCTFontBoldTrait : 0 ) | ( lc -> style & Graphics_ITALIC ? kCTFontItalicTrait : 0 );
 			#if 1
 				CFStringRef key = kCTFontSymbolicTrait;
-				CFNumberRef value = CFNumberCreate (nullptr, kCFNumberIntType, & ctStyle);
+				CFNumberRef value = CFNumberCreate (NULL, kCFNumberIntType, & ctStyle);
 				CFIndex numberOfValues = 1;
-				CFDictionaryRef styleDict = CFDictionaryCreate (nullptr, (const void **) & key, (const void **) & value, numberOfValues,
+				CFDictionaryRef styleDict = CFDictionaryCreate (NULL, (const void **) & key, (const void **) & value, numberOfValues,
 					& kCFTypeDictionaryKeyCallBacks, & kCFTypeDictionaryValueCallBacks);
 				CFRelease (value);
 				CFStringRef keys [2];
@@ -634,7 +629,7 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 					case kGraphics_font_DINGBATS:    { cfFont = (CFStringRef) Melder_peek32toCfstring (U"Zapf Dingbats"  ); } break;
 				}
 				void *values [2] = { (void *) styleDict, (void *) cfFont };
-				CFDictionaryRef attributes = CFDictionaryCreate (nullptr, (const void **) & keys, (const void **) & values, 2,
+				CFDictionaryRef attributes = CFDictionaryCreate (NULL, (const void **) & keys, (const void **) & values, 2,
 					& kCFTypeDictionaryKeyCallBacks, & kCFTypeDictionaryValueCallBacks);
 				CFRelease (styleDict);
 				CTFontDescriptorRef ctFontDescriptor = CTFontDescriptorCreateWithAttributes (attributes);
@@ -662,14 +657,14 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 				[styleDict release];
 				[attributes release];
 			#endif
-				ctFont = CTFontCreateWithFontDescriptor (ctFontDescriptor, lc -> size, nullptr);
+				ctFont = CTFontCreateWithFontDescriptor (ctFontDescriptor, lc -> size, NULL);
 				CFRelease (ctFontDescriptor);
 				theScreenFonts [font] [lc -> size] [style] = ctFont;
 			}
 
 			const char16 *codes16 = Melder_peek32to16 (codes);
 			#if 1
-				CFStringRef s = CFStringCreateWithBytes (nullptr,
+				CFStringRef s = CFStringCreateWithBytes (NULL,
 					(const UInt8 *) codes16, str16len (codes16) * 2,
 					kCFStringEncodingUTF16LE, false);
 				int length = CFStringGetLength (s);
@@ -697,13 +692,13 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 				CTTextAlignment textAlignment = kCTLeftTextAlignment;
 				CTParagraphStyleSetting paragraphSettings [1] = { { kCTParagraphStyleSpecifierAlignment, sizeof (CTTextAlignment), & textAlignment } };
 				paragraphStyle = CTParagraphStyleCreate (paragraphSettings, 1);
-				Melder_assert (paragraphStyle != nullptr);
+				Melder_assert (paragraphStyle != NULL);
 			}
             CFAttributedStringSetAttribute (string, textRange, kCTParagraphStyleAttributeName, paragraphStyle);
 
             RGBColor *macColor = lc -> link ? & theBlueColour : my duringXor ? & theWhiteColour : & my d_macColour;
             CGColorRef color = CGColorCreateGenericRGB (macColor->red / 65536.0, macColor->green / 65536.0, macColor->blue / 65536.0, 1.0);
-			Melder_assert (color != nullptr);
+			Melder_assert (color != NULL);
             CFAttributedStringSetAttribute (string, textRange, kCTForegroundColorAttributeName, color);
 
             /*
@@ -732,7 +727,6 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
             } else {
 				CTLineDraw (line, my d_macGraphicsContext);
             }
-			//CGContextFlush (my d_macGraphicsContext);
 			CFRelease (line);
             CGContextRestoreGState (my d_macGraphicsContext);
 
@@ -745,11 +739,8 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 					CGContextSynchronize (my d_macGraphicsContext);
 				#endif
 				[my d_macView   unlockFocus];
-				if (! my duringXor) {
-					//[my d_macView   setNeedsDisplay: YES];   // otherwise, CoreText text may not be drawn
-				}
 			}
-			return;
+        
 		#elif win
 			int font = lc -> font.integer;
 		#elif mac
@@ -758,8 +749,8 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 			/*
 			 * Define the text layout.
 			 */
-			static ATSUTextLayout theAtsuiTextLayout = nullptr;
-			if (! theAtsuiTextLayout) {
+			static ATSUTextLayout theAtsuiTextLayout;
+			if (theAtsuiTextLayout == NULL) {
 				OSStatus err = ATSUCreateTextLayout (& theAtsuiTextLayout);
 				if (err != 0) {
 					if (err == kATSUInvalidFontID) {
@@ -777,10 +768,10 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 				kATSUFromTextBeginning, kATSUToTextEnd, nchars);
 			if (err != 0) Melder_fatal (U"Graphics_text/ATSUSetTextPointerLocation: unknown MacOS error ", (int) err, U".");
 
-			static ATSUFontFallbacks fontFallbacks = nullptr;
-			if (! fontFallbacks) {
+			static ATSUFontFallbacks fontFallbacks = NULL;
+			if (fontFallbacks == NULL) {
 				ATSUCreateFontFallbacks (& fontFallbacks);
-				ATSUSetObjFontFallbacks (fontFallbacks, 0, nullptr, kATSUDefaultFontFallbacks);
+				ATSUSetObjFontFallbacks (fontFallbacks, 0, NULL, kATSUDefaultFontFallbacks);
 				ATSUSetObjFontFallbacks (fontFallbacks, 1, & theArabicAtsuiFont, kATSUSequentialFallbacksPreferred);
 			}
 			ATSUAttributeTag attributeTags [] = { kATSUCGContextTag, kATSULineFontFallbacksTag };
@@ -791,8 +782,8 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 			/*
 			 * Set styles: font, size, colour, bold, italic.
 			 */
-			static ATSUStyle theAtsuStyle = nullptr;
-			if (! theAtsuStyle) {
+			static ATSUStyle theAtsuStyle;
+			if (theAtsuStyle == NULL) {
 				ATSUCreateStyle (& theAtsuStyle);
 			}
 			Fixed fontSize = lc -> size << 16;
@@ -850,8 +841,8 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 			#if cairo
 				if (my duringXor) {
 					#if ALLOW_GDK_DRAWING
-						static GdkFont *font = nullptr;
-						if (! font) {
+						static GdkFont *font = NULL;
+						if (font == NULL) {
 							font = gdk_font_load ("-*-courier-medium-r-normal--*-120-*-*-*-*-iso8859-1");
 							if (! font) {
 								font = gdk_font_load ("-*-courier 10 pitch-medium-r-normal--*-120-*-*-*-*-iso8859-1");
@@ -986,7 +977,7 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 				static HBITMAP bitmap;
 				if (! inited) {
 					dc = CreateCompatibleDC (my d_gdiGraphicsContext);
-					bitmap = CreateBitmap (/*my d_gdiGraphicsContext,*/ maxWidth, maxHeight, 1, 1, nullptr);
+					bitmap = CreateBitmap (/*my d_gdiGraphicsContext,*/ maxWidth, maxHeight, 1, 1, NULL);
 					SelectBitmap (dc, bitmap);
 					inited = 1;
 				}
@@ -1024,7 +1015,7 @@ static void charDraw (void *void_me, int xDC, int yDC, _Graphics_widechar *lc,
 	}
 }
 
-static void initText (void *void_me) {
+static void initText (I) {
 	iam (Graphics);
 	if (my screen) {
 		iam (GraphicsScreen);
@@ -1032,7 +1023,7 @@ static void initText (void *void_me) {
 	}
 }
 
-static void exitText (void *void_me) {
+static void exitText (I) {
 	iam (Graphics);
 	if (my screen) {
 		iam (GraphicsScreen);
@@ -1137,7 +1128,7 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
 					) :
 				my font;   // why not lc -> font.integer?
 			Melder_assert (font >= 0 && font <= kGraphics_font_DINGBATS);
-			lc -> font.string = nullptr;   // this erases font.integer!
+			lc -> font.string = NULL;   // this erases font.integer!
 
 			/*
 			 * Determine the style.
@@ -1149,7 +1140,7 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
 			 * Determine the font-style combination.
 			 */
 			CTFontRef ctFont = theScreenFonts [font] [100] [style];
-			if (! ctFont) {
+			if (ctFont == NULL) {
 				CTFontSymbolicTraits ctStyle = ( style & Graphics_BOLD ? kCTFontBoldTrait : 0 ) | ( lc -> style & Graphics_ITALIC ? kCTFontItalicTrait : 0 );
 				NSMutableDictionary *styleDict = [[NSMutableDictionary alloc] initWithCapacity: 1];
 				[styleDict   setObject: [NSNumber numberWithUnsignedInt: ctStyle]   forKey: (id) kCTFontSymbolicTrait];
@@ -1172,7 +1163,7 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
  				CTFontDescriptorRef ctFontDescriptor = CTFontDescriptorCreateWithAttributes ((CFMutableDictionaryRef) attributes);
 				[styleDict release];
 				[attributes release];
-				ctFont = CTFontCreateWithFontDescriptor (ctFontDescriptor, 100.0, nullptr);
+				ctFont = CTFontCreateWithFontDescriptor (ctFontDescriptor, 100.0, NULL);
 				CFRelease (ctFontDescriptor);
  				theScreenFonts [font] [100] [style] = ctFont;
 			}
@@ -1200,11 +1191,9 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
 			{
 				charCodes [nchars] = U'\0';
 				const char16 *codes16 = Melder_peek32to16 (charCodes);
-				int64 length = str16len (codes16);
-
 				NSString *s = [[NSString alloc]
 					initWithBytes: codes16
-					length: (NSUInteger) (length * 2)
+					length: (NSUInteger) (str16len (codes16) * 2)
 					encoding: NSUTF16LittleEndianStringEncoding   // BUG: should be NSUTF16NativeStringEncoding, except that that doesn't exist
 					];
 
@@ -1222,12 +1211,12 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
 				// Create a path to render text in
 				CGMutablePathRef path = CGPathCreateMutable ();
 				NSRect measureRect = NSMakeRect (0, 0, CGFLOAT_MAX, CGFLOAT_MAX);
-				CGPathAddRect (path, nullptr, (CGRect) measureRect);
+				CGPathAddRect (path, NULL, (CGRect) measureRect);
 			
 				CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString ((CFAttributedStringRef) cfstring);
 				CFRange fitRange;
 				CGSize targetSize = CGSizeMake (lc -> width, CGFLOAT_MAX);
-				CGSize frameSize = CTFramesetterSuggestFrameSizeWithConstraints (framesetter, textRange, nullptr, targetSize, & fitRange);
+				CGSize frameSize = CTFramesetterSuggestFrameSizeWithConstraints (framesetter, textRange, NULL, targetSize, & fitRange);
 				CFRelease (framesetter);
 				CFRelease (cfstring);
 				[s release];
@@ -1236,17 +1225,6 @@ static void charSizes (Graphics me, _Graphics_widechar string [], bool measureEa
 				//bool isDiacritic = info -> ps.times == 0;
 				//lc -> width = isDiacritic ? 0.0 : frameSize.width * lc -> size / 100.0;
 				lc -> width = frameSize.width * lc -> size / 100.0;
-				#if cocoa
-					if (Melder_systemVersion >= 101100) {
-						/*
-						 * If the text ends in a space, CTFramesetterSuggestFrameSizeWithConstraints() ignores the space.
-						 * we correct for this.
-						 */
-						if (codes16 [length - 1] == u' ') {
-							lc -> width += 25.0 * lc -> size / 100.0;
-						}
-					}
-				#endif
 				nchars = 0;
 			}
 		}
@@ -1297,7 +1275,7 @@ static void drawOneCell (Graphics me, int xDC, int yDC, _Graphics_widechar lc []
 	 * We must continue even if width is zero (for adjusting textY).
 	 */
 	_Graphics_widechar *plc, *lastlc;
-	bool inLink = false;
+	int inLink = 0;
 	switch (my horizontalTextAlignment) {
 		case Graphics_LEFT:      dx = 1 + (0.1/72) * my fontSize * my resolution; break;
 		case Graphics_CENTRE:    dx = - width / 2; break;
@@ -1392,11 +1370,11 @@ static void drawOneCell (Graphics me, int xDC, int yDC, _Graphics_widechar lc []
 					links [++ numberOfLinks]. x1 = x;
 					links [numberOfLinks]. y1 = y - descent;
 					links [numberOfLinks]. y2 = y + 3 * descent;
-					inLink = true;
+					inLink = TRUE;
 				}
 			} else if (inLink) {
 				links [numberOfLinks]. x2 = x;
-				inLink = false;
+				inLink = FALSE;
 			}
 			if (plc -> kar == U'\n') {
 				xbegin = x = xDC + dx + my secondIndent * my scaleX;
@@ -1419,7 +1397,7 @@ static void drawOneCell (Graphics me, int xDC, int yDC, _Graphics_widechar lc []
 		}
 		if (inLink) {
 			links [numberOfLinks]. x2 = x;
-			inLink = false;
+			inLink = FALSE;
 		}
 		my textX = (x - my deltaX) / my scaleX;
 		my textY = (( my yIsZeroAtTheTop ? y + dy : y - dy ) - my deltaY) / my scaleY;
@@ -1637,7 +1615,7 @@ static void parseTextIntoCellsLinesRuns (Graphics me, const char32 *txt /* catta
 			(wordLink | globalLink) && my fontStyle != Graphics_CODE ? Graphics_BOLD :
 			((my fontStyle & Graphics_ITALIC) | charItalic | wordItalic | globalItalic ? Graphics_ITALIC : 0) +
 			((my fontStyle & Graphics_BOLD) | charBold | wordBold | globalBold ? Graphics_BOLD : 0);
-		out -> font.string = nullptr;
+		out -> font.string = NULL;
 		out -> font.integer = my fontStyle == Graphics_CODE || wordCode || globalCode ||
 			kar == U'/' || kar == U'|' ? kGraphics_font_COURIER : my font;
 		out -> link = wordLink | globalLink;
@@ -1684,7 +1662,7 @@ void Graphics_textRect (Graphics me, double x1, double x2, double y1, double y2,
 	initText (me);
 	parseTextIntoCellsLinesRuns (me, txt, theWidechar);
 	charSizes (me, theWidechar, true);
-	for (plc = theWidechar; plc -> kar > U'\t'; plc ++) {
+	for (plc = theWidechar; plc -> kar > '\t'; plc ++) {
 		width += plc -> width;
 		if (width > availableWidth) {
 			if (++ linesNeeded > linesAvailable) break;
@@ -1696,16 +1674,16 @@ void Graphics_textRect (Graphics me, double x1, double x2, double y1, double y2,
 	for (iline = 1; iline <= lines; iline ++) {
 		width = 0.0;
 		for (plc = startOfLine; plc -> kar > U'\t'; plc ++) {
-			bool flush = false;
+			int flush = FALSE;
 			width += plc -> width;
-			if (width > availableWidth) flush = true;
+			if (width > availableWidth) flush = TRUE;
 			/*
 			 * Trick for incorporating end-of-text.
 			 */
 			if (! flush && plc [1]. kar <= U'\t') {
 				Melder_assert (iline == lines);
 				plc ++;   // brr
-				flush = true;
+				flush = TRUE;
 			}
 			if (flush) {
 				char32 saveKar = plc -> kar;
@@ -1731,25 +1709,25 @@ void Graphics_textRect (Graphics me, double x1, double x2, double y1, double y2,
 
 static void _Graphics_text (Graphics me, double xWC, double yWC, const char32 *txt) {
 	if (my wrapWidth == 0.0 && str32chr (txt, U'\n') && my textRotation == 0.0) {
-		double lineSpacingWC = (1.2/72.0) * my fontSize * my resolution / fabs (my scaleY);
+		double lineSpacingWC = (1.2/72) * my fontSize * my resolution / fabs (my scaleY);
 		long numberOfLines = 1;
 		for (const char32 *p = & txt [0]; *p != U'\0'; p ++) {
-			if (*p == U'\n') {
+			if (*p == '\n') {
 				numberOfLines ++;
 			}
 		}
 		yWC +=
-			my verticalTextAlignment == Graphics_TOP ? 0.0 :
+			my verticalTextAlignment == Graphics_TOP ? 0 :
 			my verticalTextAlignment == Graphics_HALF ? 0.5 * (numberOfLines - 1) * lineSpacingWC:
 			(numberOfLines - 1) * lineSpacingWC;
 		autostring32 linesToDraw = Melder_dup_f (txt);
 		char32 *p = & linesToDraw [0];
 		for (;;) {
 			char32 *newline = str32chr (p, U'\n');
-			if (newline) *newline = U'\0';
+			if (newline != NULL) *newline = U'\0';
 			Graphics_text (me, xWC, yWC, p);
 			yWC -= lineSpacingWC;
-			if (newline) {
+			if (newline != NULL) {
 				p = newline + 1;
 			} else {
 				break;
@@ -1832,13 +1810,13 @@ double Graphics_inqTextY (Graphics me) { return my textY; }
 
 int Graphics_getLinks (Graphics_Link **plinks) { *plinks = & links [0]; return numberOfLinks; }
 
-static double psTextWidth (_Graphics_widechar string [], bool useSilipaPS) {
+static double psTextWidth (_Graphics_widechar string [], int useSilipaPS) {
 	_Graphics_widechar *character;
 	/*
 	 * The following has to be kept IN SYNC with GraphicsPostscript::charSize.
 	 */
 	double textWidth = 0;
-	for (character = string; character -> kar > U'\t'; character ++) {
+	for (character = string; character -> kar > '\t'; character ++) {
 		Longchar_Info info = Longchar_getInfoFromNative (character -> kar);
 		int font = info -> alphabet == Longchar_SYMBOL ? kGraphics_font_SYMBOL :
 				info -> alphabet == Longchar_PHONETIC ? kGraphics_font_IPATIMES :
@@ -1881,7 +1859,7 @@ static double psTextWidth (_Graphics_widechar string [], bool useSilipaPS) {
 	/*
 	 * The following has to be kept IN SYNC with charSizes ().
 	 */
-	for (character = string; character -> kar > U'\t'; character ++) {
+	for (character = string; character -> kar > '\t'; character ++) {
 		if ((character -> style & Graphics_ITALIC) != 0) {
 			_Graphics_widechar *nextCharacter = character + 1;
 			if (nextCharacter -> kar <= '\t') {
@@ -1889,7 +1867,7 @@ static double psTextWidth (_Graphics_widechar string [], bool useSilipaPS) {
 			} else if (((nextCharacter -> style & Graphics_ITALIC) == 0 && nextCharacter -> baseline >= character -> baseline)
 				|| (character -> baseline == 0 && nextCharacter -> baseline > 0))
 			{
-				if (nextCharacter -> kar == U'.' || nextCharacter -> kar == U',')
+				if (nextCharacter -> kar == '.' || nextCharacter -> kar == ',')
 					textWidth += 0.5 * POSTSCRIPT_SLANT_CORRECTION;
 				else
 					textWidth += POSTSCRIPT_SLANT_CORRECTION;
@@ -1922,7 +1900,7 @@ static ATSFontRef findFont (CFStringRef name) {
 	return fontRef;		
 }
 #endif
-bool _GraphicsMac_tryToInitializeFonts () {
+bool _GraphicsMac_tryToInitializeFonts (void) {
 #if useCarbon
 	if (theTimesAtsuiFont != 0) return true;   // once
 	theTimesAtsuiFont = findFont (CFSTR ("Times"));
@@ -1958,7 +1936,7 @@ bool _GraphicsMac_tryToInitializeFonts () {
 		theIpaPalatinoAtsuiFont = theIpaTimesAtsuiFont;
 	}
 	Melder_assert (theTimesAtsuiFont != 0);
-	ATSUFindFontFromName (nullptr, 0, 0, 0, 0, kFontArabicLanguage, & theArabicAtsuiFont);
+	ATSUFindFontFromName (NULL, 0, 0, 0, 0, kFontArabicLanguage, & theArabicAtsuiFont);
 	return true;
 #else
     static bool inited = false;
diff --git a/sys/Graphics_utils.cpp b/sys/Graphics_utils.cpp
index af57e2a..34f487e 100644
--- a/sys/Graphics_utils.cpp
+++ b/sys/Graphics_utils.cpp
@@ -35,11 +35,11 @@ void Graphics_drawInnerBox (Graphics me) {
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
 	Graphics_setInner (me);
-	Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (me, 0, 1, 0, 1);
 	Graphics_setLineType (me, Graphics_DRAWN);
 	Graphics_setLineWidth (me, 2.0 * lineWidth);
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_rectangle (me, 0.0, 1.0, 0.0, 1.0);
+	Graphics_rectangle (me, 0, 1, 0, 1);
 	Graphics_unsetInner (me);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setLineType (me, lineType);
@@ -52,13 +52,13 @@ void Graphics_textLeft (Graphics me, bool farr, const char32 *text) {
 	int vert = farr ? Graphics_TOP : Graphics_BOTTOM;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
-	Graphics_setTextRotation (me, 90.0);
+	Graphics_setWindow (me, 0, 1, 0, 1);
+	Graphics_setTextRotation (me, 90);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, vert);
 	if (! farr) Graphics_setInner (me);
-	Graphics_text (me, 0.0, 0.5, text);
+	Graphics_text (me, 0, 0.5, text);
 	if (! farr) Graphics_unsetInner (me);
-	Graphics_setTextRotation (me, 0.0);
+	Graphics_setTextRotation (me, 0);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setColour (me, colour);
 }
@@ -69,12 +69,12 @@ void Graphics_textRight (Graphics me, bool farr, const char32 *text) {
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, vert);
-	Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
-	Graphics_setTextRotation (me, 270.0);
+	Graphics_setWindow (me, 0, 1, 0, 1);
+	Graphics_setTextRotation (me, 270);
 	if (! farr) Graphics_setInner (me);
-	Graphics_text (me, 1.0, 0.5, text);
+	Graphics_text (me, 1, 0.5, text);
 	if (! farr) Graphics_unsetInner (me);
-	Graphics_setTextRotation (me, 0.0);
+	Graphics_setTextRotation (me, 0);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setColour (me, colour);
 }
@@ -83,10 +83,10 @@ void Graphics_textBottom (Graphics me, bool farr, const char32 *text) {
 	double x1WC = my d_x1WC, x2WC = my d_x2WC, y1WC = my d_y1WC, y2WC = my d_y2WC;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (me, 0, 1, 0, 1);
 	if (farr) {
 		Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (me, 0.5, 0.0, text);
+		Graphics_text (me, 0.5, 0, text);
 	} else {
 		Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 		Graphics_setInner (me);
@@ -101,14 +101,14 @@ void Graphics_textTop (Graphics me, bool farr, const char32 *text) {
 	double x1WC = my d_x1WC, x2WC = my d_x2WC, y1WC = my d_y1WC, y2WC = my d_y2WC;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, 0.0, 1.0);
+	Graphics_setWindow (me, 0, 1, 0, 1);
 	if (farr) {
 		Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
-		Graphics_text (me, 0.5, 1.0, text);
+		Graphics_text (me, 0.5, 1, text);
 	} else {
 		Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 		Graphics_setInner (me);
-		Graphics_text (me, 0.5, 1.0 + my vertTick, text);
+		Graphics_text (me, 0.5, 1 + my vertTick, text);
 		Graphics_unsetInner (me);
 	}
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
@@ -140,7 +140,7 @@ void Graphics_marksLeft (Graphics me, int numberOfMarks, bool haveNumbers, bool
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = 2; i < numberOfMarks; i ++) {
 			double f = (i - 1.0) / (numberOfMarks - 1), yWC = y1WC + (y2WC - y1WC) * f;
-			Graphics_line (me, 0.0, yWC, 1.0, yWC);
+			Graphics_line (me, 0, yWC, 1, yWC);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -166,8 +166,8 @@ void Graphics_marksRight (Graphics me, int numberOfMarks, bool haveNumbers, bool
 	}
 	for (int i = 1; i <= numberOfMarks; i ++) {
 		double f = (i - 1.0) / (numberOfMarks - 1), yWC = y1WC + (y2WC - y1WC) * f;
-		if (haveNumbers) Graphics_text (me, 1.0 + my horTick, yWC, Melder_float (Melder_half (yWC)));
-		if (haveTicks) Graphics_line (me, 1.0, yWC, 1.0 + my horTick, yWC);
+		if (haveNumbers) Graphics_text (me, 1 + my horTick, yWC, Melder_float (Melder_half (yWC)));
+		if (haveTicks) Graphics_line (me, 1, yWC, 1 + my horTick, yWC);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines && numberOfMarks > 2) {
@@ -175,7 +175,7 @@ void Graphics_marksRight (Graphics me, int numberOfMarks, bool haveNumbers, bool
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = 2; i < numberOfMarks; i ++) {
 			double f = (i - 1.0) / (numberOfMarks - 1), yWC = y1WC + (y2WC - y1WC) * f;
-			Graphics_line (me, 0.0, yWC, 1.0, yWC);
+			Graphics_line (me, 0, yWC, 1, yWC);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -192,7 +192,7 @@ void Graphics_marksBottom (Graphics me, int numberOfMarks, bool haveNumbers, boo
 	Graphics_Colour colour = my colour;
 	if (numberOfMarks < 2) return;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 	Graphics_setInner (me);
 	if (haveTicks) {
@@ -211,7 +211,7 @@ void Graphics_marksBottom (Graphics me, int numberOfMarks, bool haveNumbers, boo
 		for (int i = 2; i < numberOfMarks; i ++)
 		{
 			double f = (i - 1.0) / (numberOfMarks - 1), xWC = x1WC + (x2WC - x1WC) * f;
-			Graphics_line (me, xWC, 0.0, xWC, 1.0);
+			Graphics_line (me, xWC, 0, xWC, 1);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -228,7 +228,7 @@ void Graphics_marksTop (Graphics me, int numberOfMarks, bool haveNumbers, bool h
 	Graphics_Colour colour = my colour;
 	if (numberOfMarks < 2) return;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 	Graphics_setInner (me);
 	if (haveTicks) {
@@ -237,8 +237,8 @@ void Graphics_marksTop (Graphics me, int numberOfMarks, bool haveNumbers, bool h
 	}
 	for (int i = 1; i <= numberOfMarks; i ++) {
 		double f = (i - 1.0) / (numberOfMarks - 1), xWC = x1WC + (x2WC - x1WC) * f;
-		if (haveNumbers) Graphics_text (me, xWC, 1.0 + my vertTick, Melder_float (Melder_half (xWC)));
-		if (haveTicks) Graphics_line (me, xWC, 1.0, xWC, 1.0 + my vertTick);
+		if (haveNumbers) Graphics_text (me, xWC, 1 + my vertTick, Melder_float (Melder_half (xWC)));
+		if (haveTicks) Graphics_line (me, xWC, 1, xWC, 1 + my vertTick);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines && numberOfMarks > 2) {
@@ -246,7 +246,7 @@ void Graphics_marksTop (Graphics me, int numberOfMarks, bool haveNumbers, bool h
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = 2; i < numberOfMarks; i ++) {
 			double f = (i - 1.0) / (numberOfMarks - 1), xWC = x1WC + (x2WC - x1WC) * f;
-			Graphics_line (me, xWC, 0.0, xWC, 1.0);
+			Graphics_line (me, xWC, 0, xWC, 1);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -284,9 +284,9 @@ void Graphics_marksLeftLogarithmic (Graphics me, int numberOfMarksPerDecade, boo
 	Graphics_setInner (me);
 	for (int i = 1; i <= numberOfMarksPerDecade; i ++) {
 		double y = decade_y [numberOfMarksPerDecade] [i];
-		while (y < (y1<y2?py1:py2)) y *= 10.0;
-		while (y >= (y1<y2?py1:py2)) y /= 10.0;
-		for (y *= 10.0; y <= (y1<y2?py2:py1); y *= 10.0) {
+		while (y < (y1<y2?py1:py2)) y *= 10;
+		while (y >= (y1<y2?py1:py2)) y /= 10;
+		for (y *= 10; y <= (y1<y2?py2:py1); y *= 10) {
 			if (haveNumbers) Graphics_text (me, - my horTick, log10 (y), Melder_float (Melder_half (y)));
 			if (haveTicks) {
 				Graphics_setLineWidth (me, 2.0 * lineWidth);
@@ -297,7 +297,7 @@ void Graphics_marksLeftLogarithmic (Graphics me, int numberOfMarksPerDecade, boo
 			if (haveDottedLines) {
 				Graphics_setLineType (me, Graphics_DOTTED);
 				Graphics_setLineWidth (me, 0.67 * lineWidth);
-				Graphics_line (me, 0.0, log10 (y), 1.0, log10 (y));
+				Graphics_line (me, 0, log10 (y), 1, log10 (y));
 				Graphics_setLineType (me, lineType);
 				Graphics_setLineWidth (me, lineWidth);
 			}
@@ -315,29 +315,29 @@ void Graphics_marksRightLogarithmic (Graphics me, int numberOfMarksPerDecade, bo
 	Graphics_Colour colour = my colour;
 	if (numberOfMarksPerDecade < 1) numberOfMarksPerDecade = 1;
 	if (numberOfMarksPerDecade > MAXNUM_MARKS_PER_DECADE) numberOfMarksPerDecade = MAXNUM_MARKS_PER_DECADE;
-	if (y1 > 300.0 || y2 > 300.0) return;
-	double py1 = pow (10.0, y1 + ( y1 < y2 ? -1e-6 : 1e-6 ));
-	double py2 = pow (10.0, y2 + ( y1 < y2 ? 1e-6 : -1e-6 ));
+	if (y1 > 300 || y2 > 300) return;
+	double py1 = pow (10, y1 + ( y1 < y2 ? -1e-6 : 1e-6 ));
+	double py2 = pow (10, y2 + ( y1 < y2 ? 1e-6 : -1e-6 ));
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, y1, y2);
+	Graphics_setWindow (me, 0, 1, y1, y2);
 	Graphics_setTextAlignment (me, Graphics_LEFT, Graphics_HALF);
 	Graphics_setInner (me);
 	for (int i = 1; i <= numberOfMarksPerDecade; i ++) {
 		double y = decade_y [numberOfMarksPerDecade] [i];
-		while (y < (y1<y2?py1:py2)) y *= 10.0;
-		while (y >= (y1<y2?py1:py2)) y /= 10.0;
-		for (y *= 10.0; y <= (y1<y2?py2:py1); y *= 10.0) {
-			if (haveNumbers) Graphics_text (me, 1.0 + my horTick, log10 (y), Melder_float (Melder_half (y)));
+		while (y < (y1<y2?py1:py2)) y *= 10;
+		while (y >= (y1<y2?py1:py2)) y /= 10;
+		for (y *= 10; y <= (y1<y2?py2:py1); y *= 10) {
+			if (haveNumbers) Graphics_text (me, 1 + my horTick, log10 (y), Melder_float (Melder_half (y)));
 			if (haveTicks) {
 				Graphics_setLineWidth (me, 2.0 * lineWidth);
 				Graphics_setLineType (me, Graphics_DRAWN);
-				Graphics_line (me, 1.0, log10 (y), 1.0 + my horTick, log10 (y));
+				Graphics_line (me, 1, log10 (y), 1 + my horTick, log10 (y));
 				Graphics_setLineWidth (me, lineWidth);
 			}
 			if (haveDottedLines) {
 				Graphics_setLineType (me, Graphics_DOTTED);
 				Graphics_setLineWidth (me, 0.67 * lineWidth);
-				Graphics_line (me, 0.0, log10 (y), 1.0, log10 (y));
+				Graphics_line (me, 0, log10 (y), 1, log10 (y));
 				Graphics_setLineType (me, lineType);
 				Graphics_setLineWidth (me, lineWidth);
 			}
@@ -355,29 +355,29 @@ void Graphics_marksTopLogarithmic (Graphics me, int numberOfMarksPerDecade, bool
 	Graphics_Colour colour = my colour;
 	if (numberOfMarksPerDecade < 1) numberOfMarksPerDecade = 1;
 	if (numberOfMarksPerDecade > MAXNUM_MARKS_PER_DECADE) numberOfMarksPerDecade = MAXNUM_MARKS_PER_DECADE;
-	if (x1 > 300.0 || x2 > 300.0) return;
-	double px1 = pow (10.0, x1 + ( x1 < x2 ? -1e-6 : 1e-6 ));
-	double px2 = pow (10.0, x2 + ( x1 < x2 ? 1e-6 : -1e-6 ));
+	if (x1 > 300 || x2 > 300) return;
+	double px1 = pow (10, x1 + ( x1 < x2 ? -1e-6 : 1e-6 ));
+	double px2 = pow (10, x2 + ( x1 < x2 ? 1e-6 : -1e-6 ));
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1, x2, 0.0, 1.0);
+	Graphics_setWindow (me, x1, x2, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 	Graphics_setInner (me);
 	for (int i = 1; i <= numberOfMarksPerDecade; i ++) {
 		double x = decade_y [numberOfMarksPerDecade] [i];
-		while (x < (x1<x2?px1:px2)) x *= 10.0;
-		while (x >= (x1<x2?px1:px2)) x /= 10.0;
-		for (x *= 10.0; x <= (x1<x2?px2:px1); x *= 10.0) {
-			if (haveNumbers) Graphics_text (me, log10 (x), 1.0 + my vertTick, Melder_float (Melder_half (x)));
+		while (x < (x1<x2?px1:px2)) x *= 10;
+		while (x >= (x1<x2?px1:px2)) x /= 10;
+		for (x *= 10; x <= (x1<x2?px2:px1); x *= 10) {
+			if (haveNumbers) Graphics_text (me, log10 (x), 1 + my vertTick, Melder_float (Melder_half (x)));
 			if (haveTicks) {
 				Graphics_setLineWidth (me, 2.0 * lineWidth);
 				Graphics_setLineType (me, Graphics_DRAWN);
-				Graphics_line (me, log10 (x), 1.0, log10 (x), 1.0 + my vertTick);
+				Graphics_line (me, log10 (x), 1, log10 (x), 1 + my vertTick);
 				Graphics_setLineWidth (me, lineWidth);
 			}
 			if (haveDottedLines) {
 				Graphics_setLineType (me, Graphics_DOTTED);
 				Graphics_setLineWidth (me, 0.67 * lineWidth);
-				Graphics_line (me, log10 (x), 0.0, log10 (x), 1.0);
+				Graphics_line (me, log10 (x), 0, log10 (x), 1);
 				Graphics_setLineType (me, lineType);
 				Graphics_setLineWidth (me, lineWidth);
 			}
@@ -395,29 +395,29 @@ void Graphics_marksBottomLogarithmic (Graphics me, int numberOfMarksPerDecade, b
 	Graphics_Colour colour = my colour;
 	if (numberOfMarksPerDecade < 1) numberOfMarksPerDecade = 1;
 	if (numberOfMarksPerDecade > MAXNUM_MARKS_PER_DECADE) numberOfMarksPerDecade = MAXNUM_MARKS_PER_DECADE;
-	if (x1 > 300.0 || x2 > 300.0) return;
-	double px1 = pow (10.0, x1 + ( x1 < x2 ? -1e-6 : 1e-6 ));
-	double px2 = pow (10.0, x2 + ( x1 < x2 ? 1e-6 : -1e-6 ));
+	if (x1 > 300 || x2 > 300) return;
+	double px1 = pow (10, x1 + ( x1 < x2 ? -1e-6 : 1e-6 ));
+	double px2 = pow (10, x2 + ( x1 < x2 ? 1e-6 : -1e-6 ));
 	Graphics_setColour (me, Graphics_BLACK);
 	Graphics_setWindow (me, x1, x2, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 	Graphics_setInner (me);
 	for (int i = 1; i <= numberOfMarksPerDecade; i ++) {
 		double x = decade_y [numberOfMarksPerDecade] [i];
-		while (x < (x1<x2?px1:px2)) x *= 10.0;
-		while (x >= (x1<x2?px1:px2)) x /= 10.0;
-		for (x *= 10.0; x <= (x1<x2?px2:px1); x *= 10.0) {
+		while (x < (x1<x2?px1:px2)) x *= 10;
+		while (x >= (x1<x2?px1:px2)) x /= 10;
+		for (x *= 10; x <= (x1<x2?px2:px1); x *= 10) {
 			if (haveNumbers) Graphics_text (me, log10 (x), - my vertTick, Melder_float (Melder_half (x)));
 			if (haveTicks) {
 				Graphics_setLineWidth (me, 2.0 * lineWidth);
 				Graphics_setLineType (me, Graphics_DRAWN);
-				Graphics_line (me, log10 (x), - my vertTick, log10 (x), 0.0);
+				Graphics_line (me, log10 (x), - my vertTick, log10 (x), 0);
 				Graphics_setLineWidth (me, lineWidth);
 			}
 			if (haveDottedLines) {
 				Graphics_setLineType (me, Graphics_DOTTED);
 				Graphics_setLineWidth (me, 0.67 * lineWidth);
-				Graphics_line (me, log10 (x), 0.0, log10 (x), 1.0);
+				Graphics_line (me, log10 (x), 0, log10 (x), 1);
 				Graphics_setLineType (me, lineType);
 				Graphics_setLineWidth (me, lineWidth);
 			}
@@ -434,20 +434,20 @@ void Graphics_markLeft (Graphics me, double position, bool hasNumber, bool hasTi
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, y1WC, y2WC);
+	Graphics_setWindow (me, 0, 1, y1WC, y2WC);
 	Graphics_setTextAlignment (me, Graphics_RIGHT, Graphics_HALF);
 	Graphics_setInner (me);
 	if (hasNumber) Graphics_text (me, - my horTick, position, Melder_float (Melder_half (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, - my horTick, position, 0.0, position);
+		Graphics_line (me, - my horTick, position, 0, position);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, 0.0, position, 1.0, position);
+		Graphics_line (me, 0, position, 1, position);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (text && text [0]) Graphics_text (me, - my horTick, position, text);   // 'text' has to stay valid until here; no Graphics is allowed to use the cat buffer!
@@ -463,23 +463,23 @@ void Graphics_markRight (Graphics me, double position, bool hasNumber, bool hasT
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, y1WC, y2WC);
+	Graphics_setWindow (me, 0, 1, y1WC, y2WC);
 	Graphics_setTextAlignment (me, Graphics_LEFT, Graphics_HALF);
 	Graphics_setInner (me);
-	if (hasNumber) Graphics_text (me, 1.0 + my horTick, position, Melder_float (Melder_half (position)));
+	if (hasNumber) Graphics_text (me, 1 + my horTick, position, Melder_float (Melder_half (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, 1.0, position, 1.0 + my horTick, position);
+		Graphics_line (me, 1, position, 1 + my horTick, position);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, 0.0, position, 1.0, position);
+		Graphics_line (me, 0, position, 1, position);
 		Graphics_setLineWidth (me, lineWidth);
 	}
-	if (text && text [0]) Graphics_text (me, 1.0 + my horTick, position, text);
+	if (text && text [0]) Graphics_text (me, 1 + my horTick, position, text);
 	Graphics_unsetInner (me);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setLineType (me, lineType);
@@ -492,23 +492,23 @@ void Graphics_markTop (Graphics me, double position, bool hasNumber, bool hasTic
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 	Graphics_setInner (me);
-	if (hasNumber) Graphics_text (me, position, 1.0 + my vertTick, Melder_float (Melder_single (position)));
+	if (hasNumber) Graphics_text (me, position, 1 + my vertTick, Melder_float (Melder_single (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, position, 1.0, position, 1.0 + my vertTick);
+		Graphics_line (me, position, 1, position, 1 + my vertTick);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, position, 0.0, position, 1.0);
+		Graphics_line (me, position, 0, position, 1);
 		Graphics_setLineWidth (me, lineWidth);
 	}
-	if (text && text [0]) Graphics_text (me, position, 1.0 + my vertTick, text);
+	if (text && text [0]) Graphics_text (me, position, 1 + my vertTick, text);
 	Graphics_unsetInner (me);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setLineType (me, lineType);
@@ -521,20 +521,20 @@ void Graphics_markBottom (Graphics me, double position, bool hasNumber, bool has
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 	Graphics_setInner (me);
 	if (hasNumber) Graphics_text (me, position, - my vertTick, Melder_float (Melder_single (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, position, - my vertTick, position, 0.0);
+		Graphics_line (me, position, - my vertTick, position, 0);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, position, 0.0, position, 1.0);
+		Graphics_line (me, position, 0, position, 1);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (text && text [0]) Graphics_text (me, position, - my vertTick, text);
@@ -549,7 +549,7 @@ void Graphics_markLeftLogarithmic (Graphics me, double position, bool hasNumber,
 	int lineType = my lineType;
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
-	if (position <= 0.0) return;
+	if (position <= 0) return;
 	Graphics_setColour (me, Graphics_BLACK);
 	Graphics_setWindow (me, 0, 1, y1WC, y2WC);
 	Graphics_setTextAlignment (me, Graphics_RIGHT, Graphics_HALF);
@@ -558,13 +558,13 @@ void Graphics_markLeftLogarithmic (Graphics me, double position, bool hasNumber,
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, - my horTick, log10 (position), 0.0, log10 (position));
+		Graphics_line (me, - my horTick, log10 (position), 0, log10 (position));
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, 0.0, log10 (position), 1.0, log10 (position));
+		Graphics_line (me, 0, log10 (position), 1, log10 (position));
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (text && text [0]) Graphics_text (me, - my horTick, log10 (position), text);
@@ -579,25 +579,25 @@ void Graphics_markRightLogarithmic (Graphics me, double position, bool hasNumber
 	int lineType = my lineType;
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
-	if (position <= 0.0) return;
+	if (position <= 0) return;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, 0.0, 1.0, y1WC, y2WC);
+	Graphics_setWindow (me, 0, 1, y1WC, y2WC);
 	Graphics_setTextAlignment (me, Graphics_LEFT, Graphics_HALF);
 	Graphics_setInner (me);
-	if (hasNumber) Graphics_text (me, 1.0 + my horTick, log10 (position), Melder_float (Melder_half (position)));
+	if (hasNumber) Graphics_text (me, 1 + my horTick, log10 (position), Melder_float (Melder_half (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, 1.0, log10 (position), 1.0 + my horTick, log10 (position));
+		Graphics_line (me, 1, log10 (position), 1 + my horTick, log10 (position));
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, 0.0, log10 (position), 1.0, log10 (position));
+		Graphics_line (me, 0, log10 (position), 1, log10 (position));
 		Graphics_setLineWidth (me, lineWidth);
 	}
-	if (text && text [0]) Graphics_text (me, 1.0 + my horTick, log10 (position), text);
+	if (text && text [0]) Graphics_text (me, 1 + my horTick, log10 (position), text);
 	Graphics_unsetInner (me);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setLineType (me, lineType);
@@ -609,25 +609,25 @@ void Graphics_markTopLogarithmic (Graphics me, double position, bool hasNumber,
 	int lineType = my lineType;
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
-	if (position <= 0.0) return;
+	if (position <= 0) return;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 	Graphics_setInner (me);
-	if (hasNumber) Graphics_text (me, log10 (position), 1.0 + my vertTick, Melder_float (Melder_half (position)));
+	if (hasNumber) Graphics_text (me, log10 (position), 1 + my vertTick, Melder_float (Melder_half (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, log10 (position), 1.0, log10 (position), 1.0 + my vertTick);
+		Graphics_line (me, log10 (position), 1, log10 (position), 1 + my vertTick);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, log10 (position), 0.0, log10 (position), 1.0);
+		Graphics_line (me, log10 (position), 0, log10 (position), 1);
 		Graphics_setLineWidth (me, lineWidth);
 	}
-	if (text && text [0]) Graphics_text (me, log10 (position), 1.0 + my vertTick, text);
+	if (text && text [0]) Graphics_text (me, log10 (position), 1 + my vertTick, text);
 	Graphics_unsetInner (me);
 	Graphics_setWindow (me, x1WC, x2WC, y1WC, y2WC);
 	Graphics_setLineType (me, lineType);
@@ -639,22 +639,22 @@ void Graphics_markBottomLogarithmic (Graphics me, double position, bool hasNumbe
 	int lineType = my lineType;
 	double lineWidth = my lineWidth;
 	Graphics_Colour colour = my colour;
-	if (position <= 0.0) return;
+	if (position <= 0) return;
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 	Graphics_setInner (me);
 	if (hasNumber) Graphics_text (me, log10 (position), - my vertTick, Melder_float (Melder_half (position)));
 	if (hasTick) {
 		Graphics_setLineType (me, Graphics_DRAWN);
 		Graphics_setLineWidth (me, 2.0 * lineWidth);
-		Graphics_line (me, log10 (position), - my vertTick, log10 (position), 0.0);
+		Graphics_line (me, log10 (position), - my vertTick, log10 (position), 0);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (hasDottedLine) {
 		Graphics_setLineType (me, Graphics_DOTTED);
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
-		Graphics_line (me, log10 (position), 0.0, log10 (position), 1.0);
+		Graphics_line (me, log10 (position), 0, log10 (position), 1);
 		Graphics_setLineWidth (me, lineWidth);
 	}
 	if (text && text [0]) Graphics_text (me, log10 (position), - my vertTick, text);
@@ -683,7 +683,7 @@ void Graphics_marksLeftEvery (Graphics me, double units, double distance, bool h
 	for (int i = first; i <= last; i ++) {
 		double yWC = i * distance;
 		if (haveNumbers) Graphics_text (me, - my horTick, yWC, Melder_float (Melder_half (yWC / units)));
-		if (haveTicks) Graphics_line (me, - my horTick, yWC, 0.0, yWC);
+		if (haveTicks) Graphics_line (me, - my horTick, yWC, 0, yWC);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines) {
@@ -691,7 +691,7 @@ void Graphics_marksLeftEvery (Graphics me, double units, double distance, bool h
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = first; i <= last; i ++) {
 			double yWC = i * distance;
-			Graphics_line (me, 0.0, yWC, 1.0, yWC);
+			Graphics_line (me, 0, yWC, 1, yWC);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -720,8 +720,8 @@ void Graphics_marksRightEvery (Graphics me, double units, double distance, bool
 	}
 	for (int i = first; i <= last; i ++) {
 		double yWC = i * distance;
-		if (haveNumbers) Graphics_text (me, 1.0 + my horTick, yWC, Melder_float (Melder_half (yWC / units)));
-		if (haveTicks) Graphics_line (me, 1.0, yWC, 1.0 + my horTick, yWC);
+		if (haveNumbers) Graphics_text (me, 1 + my horTick, yWC, Melder_float (Melder_half (yWC / units)));
+		if (haveTicks) Graphics_line (me, 1, yWC, 1 + my horTick, yWC);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines) {
@@ -729,7 +729,7 @@ void Graphics_marksRightEvery (Graphics me, double units, double distance, bool
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = first; i <= last; i ++) {
 			double yWC = i * distance;
-			Graphics_line (me, 0.0, yWC, 1.0, yWC);
+			Graphics_line (me, 0, yWC, 1, yWC);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -748,7 +748,7 @@ void Graphics_marksBottomEvery (Graphics me, double units, double distance, bool
 	first = (int) ceil (( x1WC < x2WC ? x1WC : x2WC ) / distance - 1e-5);
 	last = (int) floor (( x1WC < x2WC ? x2WC : x1WC) / distance + 1e-5);
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_TOP);
 	Graphics_setInner (me);
 	if (haveTicks) {
@@ -758,7 +758,7 @@ void Graphics_marksBottomEvery (Graphics me, double units, double distance, bool
 	for (int i = first; i <= last; i ++) {
 		double xWC = i * distance;
 		if (haveNumbers) Graphics_text (me, xWC, - my vertTick, Melder_float (Melder_half (xWC / units)));
-		if (haveTicks) Graphics_line (me, xWC, - my vertTick, xWC, 0.0);
+		if (haveTicks) Graphics_line (me, xWC, - my vertTick, xWC, 0);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines) {
@@ -766,7 +766,7 @@ void Graphics_marksBottomEvery (Graphics me, double units, double distance, bool
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = first; i <= last; i ++) {
 			double xWC = i * distance;
-			Graphics_line (me, xWC, 0.0, xWC, 1.0);
+			Graphics_line (me, xWC, 0, xWC, 1);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -785,7 +785,7 @@ void Graphics_marksTopEvery (Graphics me, double units, double distance, bool ha
 	first = (int) ceil (( x1WC < x2WC ? x1WC : x2WC ) / distance - 1e-5);
 	last = (int) floor (( x1WC < x2WC ? x2WC : x1WC) / distance + 1e-5);
 	Graphics_setColour (me, Graphics_BLACK);
-	Graphics_setWindow (me, x1WC, x2WC, 0.0, 1.0);
+	Graphics_setWindow (me, x1WC, x2WC, 0, 1);
 	Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_BOTTOM);
 	Graphics_setInner (me);
 	if (haveTicks) {
@@ -794,8 +794,8 @@ void Graphics_marksTopEvery (Graphics me, double units, double distance, bool ha
 	}
 	for (int i = first; i <= last; i ++) {
 		double xWC = i * distance;
-		if (haveNumbers) Graphics_text (me, xWC, 1.0 + my vertTick, Melder_float (Melder_half (xWC / units)));
-		if (haveTicks) Graphics_line (me, xWC, 1.0, xWC, 1.0 + my vertTick);
+		if (haveNumbers) Graphics_text (me, xWC, 1 + my vertTick, Melder_float (Melder_half (xWC / units)));
+		if (haveTicks) Graphics_line (me, xWC, 1, xWC, 1 + my vertTick);
 	}
 	if (haveTicks) Graphics_setLineWidth (me, lineWidth);
 	if (haveDottedLines) {
@@ -803,7 +803,7 @@ void Graphics_marksTopEvery (Graphics me, double units, double distance, bool ha
 		Graphics_setLineWidth (me, 0.67 * lineWidth);
 		for (int i = first; i <= last; i ++) {
 			double xWC = i * distance;
-			Graphics_line (me, xWC, 0.0, xWC, 1.0);
+			Graphics_line (me, xWC, 0, xWC, 1);
 		}
 		Graphics_setLineWidth (me, lineWidth);
 	}
@@ -827,7 +827,7 @@ void Graphics_mark (Graphics me, double x, double y, double size_mm, const char3
 		int oldSize = my fontSize;
 		int oldHorizontalAlignment = my horizontalTextAlignment;
 		int oldVerticalAlignment = my verticalTextAlignment;
-		Graphics_setFontSize (me, size_mm * 72.0 / 25.4);
+		Graphics_setFontSize (me, size_mm * 72 / 25.4);
 		Graphics_setTextAlignment (me, Graphics_CENTRE, Graphics_HALF);
 		Graphics_text (me, x, y, markString);
 		Graphics_setFontSize (me, oldSize);
@@ -857,7 +857,7 @@ void Graphics_setTextRotation_vector (Graphics me, double dx, double dy) {
 		angle = dy > 0.0 ? 90.0 : 270.0;
 	} else {
 		double dxDC = dx * my scaleX, dyDC = my yIsZeroAtTheTop ? -dy * my scaleY : dy * my scaleY;
-		angle = atan2 (dyDC, dxDC) * (180.0 / NUMpi);
+		angle = atan2 (dyDC, dxDC) * (180 / NUMpi);
 	}
 	Graphics_setTextRotation (me, angle);
 }
diff --git a/sys/Gui.cpp b/sys/Gui.cpp
index 8814d32..5aeae56 100644
--- a/sys/Gui.cpp
+++ b/sys/Gui.cpp
@@ -1,6 +1,6 @@
 /* Gui.cpp
  *
- * Copyright (C) 1992-2011,2012,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ int Gui_getResolution (GuiObject widget) {
 		#elif gtk
 			resolution = gdk_screen_get_resolution (gdk_display_get_default_screen (gtk_widget_get_display (GTK_WIDGET (widget))));
 		#else
-			Melder_fatal (U"Gui_getResolution: unknown platform.");
+			Melder_fatal ("Gui_getResolution: unknown platform.");
 		#endif
 	}
 	return 100;   // in conformance with most other applications; and so that fonts always look the same size in the Demo window
@@ -63,11 +63,11 @@ int Gui_getResolution (GuiObject widget) {
 void GuiGtk_initialize () {
 	static bool gtkHasBeenInitialized = false;
 	if (! gtkHasBeenInitialized) {
-		trace (U"before initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"before initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		gtk_disable_setlocale ();   // otherwise 1.5 will be written "1,5" on computers with a French or German locale
-		trace (U"during initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-		gtk_init_check (nullptr, nullptr);
-		trace (U"after initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"during initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
+		gtk_init_check (NULL, NULL);
+		trace (U"after initing GTK: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		gtkHasBeenInitialized = true;
 	}
 	}
@@ -122,9 +122,9 @@ void Gui_getWindowPositioningBounds (double *x, double *y, double *width, double
 		GuiGtk_initialize ();
 		GdkScreen *screen = gdk_screen_get_default ();
 		/*
-		if (parent) {
+		if (parent != NULL) {
 			GuiObject parent_win = gtk_widget_get_ancestor (GTK_WIDGET (parent), GTK_TYPE_WINDOW);
-			if (parent_win) {
+			if (parent_win != NULL) {
 				screen = gtk_window_get_screen (GTK_WINDOW (parent_win));
 			}
 		}
@@ -133,7 +133,7 @@ void Gui_getWindowPositioningBounds (double *x, double *y, double *width, double
 		if (y) *y = 0;
 		if (width) *width = gdk_screen_get_width (screen);
 		if (height) *height = gdk_screen_get_height (screen);
-	#elif defined (UNIX) && ! defined (NO_GRAPHICS)
+	#elif ! defined (NO_GRAPHICS)
 		if (x) *x = 0;
 		if (y) *y = 0;
 		if (width) *width = WidthOfScreen (DefaultScreenOfDisplay (XtDisplay (parent)));
diff --git a/sys/Gui.h b/sys/Gui.h
index bf25a6a..787dba1 100644
--- a/sys/Gui.h
+++ b/sys/Gui.h
@@ -66,6 +66,10 @@
 	#include "winport_off.h"
 #endif
 
+#define GUI_ARGS  void *void_me, GuiMenuItemEvent event
+
+#define GUI_IAM(klas)  (void) void_me; (void) event; iam (klas);
+
 #define Gui_LEFT_DIALOG_SPACING  20
 #define Gui_RIGHT_DIALOG_SPACING  20
 #define Gui_TOP_DIALOG_SPACING  14
@@ -101,7 +105,7 @@
 #elif cocoa
 	Thing_declare (GuiThing);
 	@protocol GuiCocoaAny
-		- (GuiThing) getUserData;
+		- (GuiThing) userData;
 		- (void) setUserData: (GuiThing) userData;
 	@end
 	typedef NSObject <GuiCocoaAny> *GuiObject;
@@ -126,11 +130,11 @@
 		- (void) magnifyBy: (double) step;
 	@end
 	@interface GuiCocoaScrolledWindow : NSScrollView <GuiCocoaAny> @end
-	@interface GuiCocoaShell : NSWindow <GuiCocoaAny> @end
 	@interface GuiCocoaTextField : NSTextField <GuiCocoaAny> @end
 	@interface GuiCocoaTextView : NSTextView <GuiCocoaAny, NSTextViewDelegate> @end
+	@interface GuiCocoaWindow : NSWindow <GuiCocoaAny> @end
 #elif motif
-	typedef class structGuiObject *GuiObject;   // opaque
+	typedef class structGuiObject *GuiObject;   // Opaque
 
 	/*
 	 * Definitions of X11 types.
@@ -186,6 +190,7 @@
 	void XtDestroyWidget (GuiObject w);
 	void XtDispatchEvent (XEvent *event);
 	#define XtDisplay(w)  0
+	void GuiInitialize (const char *name, unsigned int *argc, char **argv);
 	Boolean XtIsManaged (GuiObject w);
 	Boolean XtIsShell (GuiObject w);
 	void XtManageChild (GuiObject w);
@@ -198,14 +203,15 @@
 	void XtSetSensitive (GuiObject w, Boolean value);
 	void XtUnmanageChild (GuiObject self);
 	void XtUnmanageChildren (GuiObjectList children, Cardinal num_children);
-	void GuiAppInitialize (const char *name, unsigned int argc, char **argv);
+	void GuiAppInitialize (const char *name,
+		void *dum1, int dum2, unsigned int *argc, char **argv, void *dum3, void *dum4);
 	void GuiApp_setApplicationShell (GuiObject shell);
 	GuiObject XtVaCreateWidget (const char *name, int widgetClass, GuiObject parent, ...);
 	GuiObject XtVaCreateManagedWidget (const char *name, int widgetClass, GuiObject parent, ...);
 	void XtVaGetValues (GuiObject w, ...);
 	void XtVaSetValues (GuiObject w, ...);
 	Window XtWindow (GuiObject w);
-	long Gui_getNumberOfMotifWidgets ();
+	long Gui_getNumberOfMotifWidgets (void);
 
 	/*
 	 * Xm widget classes.
@@ -290,14 +296,14 @@
 	void XmUpdateDisplay (GuiObject dummy);
 
 	#if defined (macintosh)
-		void motif_mac_defaultFont ();
+		void motif_mac_defaultFont (void);
 		void GuiMac_clipOn (GuiObject widget);   /* Clip to the inner area of a drawingArea (for drawing);
 			used by graphics drivers for Macintosh (clipping is automatic for Xwindows). */
 		int GuiMac_clipOn_graphicsContext (GuiObject me, void *graphicsContext);
-		void GuiMac_clipOff ();
+		void GuiMac_clipOff (void);
 		void motif_mac_setUserMessageCallback (int (*userMessageCallback) (char32 *message));
 	#elif defined (_WIN32)
-		bool motif_win_mouseStillDown ();
+		int motif_win_mouseStillDown (void);
 		void motif_win_setUserMessageCallback (int (*userMessageCallback) (void));
 	#endif
 #else
@@ -318,7 +324,7 @@ Thing_define (GuiThing, Thing) {
 	GuiThing d_parent;
 	GuiObject d_widget;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 
 	virtual void v_show ();
@@ -348,21 +354,19 @@ void GuiControl_setSize (GuiControl me, int width, int height);
 Thing_define (GuiForm, GuiControl) {
 };
 
-typedef MelderCallback <void, structThing /* boss */> GuiShell_GoAwayCallback;
-
 Thing_define (GuiShell, GuiForm) {
 	int d_width, d_height;
 	#if gtk
 		GtkWindow *d_gtkWindow;
 	#elif cocoa
-		GuiCocoaShell *d_cocoaShell;
+		GuiCocoaWindow *d_cocoaWindow;
 	#elif motif
 		GuiObject d_xmShell;
 	#endif
-	GuiShell_GoAwayCallback d_goAwayCallback;
-	Thing d_goAwayBoss;
+	void (*d_goAwayCallback) (void *boss);
+	void *d_goAwayBoss;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
@@ -380,11 +384,9 @@ typedef struct structGuiButtonEvent {
 	bool shiftKeyPressed, commandKeyPressed, optionKeyPressed, extraControlKeyPressed;
 } *GuiButtonEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiButtonEvent> GuiButton_ActivateCallback;
-
 Thing_define (GuiButton, GuiControl) {
-	GuiButton_ActivateCallback d_activateCallback;
-	Thing d_activateBoss;
+	void (*d_activateCallback) (void *boss, GuiButtonEvent event);
+	void *d_activateBoss;
 	GuiMenu d_menu;   // for cascade buttons
 };
 
@@ -396,12 +398,12 @@ Thing_define (GuiButton, GuiControl) {
 GuiButton GuiButton_create      (GuiForm parent,
 	int left, int right, int top, int bottom,
 	const char32 *text,
-	GuiButton_ActivateCallback activateCallback, Thing boss,
+	void (*activateCallback) (void *boss, GuiButtonEvent event), void *boss,
 	uint32 flags);
 GuiButton GuiButton_createShown (GuiForm parent,
 	int left, int right, int top, int bottom,
 	const char32 *text,
-	GuiButton_ActivateCallback activateCallback, Thing boss,
+	void (*activateCallback) (void *boss, GuiButtonEvent event), void *boss,
 	uint32 flags);
 
 void GuiButton_setText (GuiButton me, const char32 *text /* cattable */);
@@ -414,11 +416,9 @@ typedef struct structGuiCheckButtonEvent {
 	GuiCheckButton toggle;
 } *GuiCheckButtonEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiCheckButtonEvent> GuiCheckButton_ValueChangedCallback;
-
 Thing_define (GuiCheckButton, GuiControl) {
-	GuiCheckButton_ValueChangedCallback d_valueChangedCallback;
-	Thing d_valueChangedBoss;
+	void (*d_valueChangedCallback) (void *boss, GuiCheckButtonEvent event);
+	void *d_valueChangedBoss;
 };
 
 /* GuiCheckButton creation flags: */
@@ -427,12 +427,12 @@ Thing_define (GuiCheckButton, GuiControl) {
 GuiCheckButton GuiCheckButton_create      (GuiForm parent,
 	int left, int right, int top, int bottom,
 	const char32 *text,
-	GuiCheckButton_ValueChangedCallback valueChangedCallback, Thing boss,
+	void (*valueChangedCallback) (void *boss, GuiCheckButtonEvent event), void *boss,
 	uint32 flags);
 GuiCheckButton GuiCheckButton_createShown (GuiForm parent,
 	int left, int right, int top, int bottom,
 	const char32 *text,
-	GuiCheckButton_ValueChangedCallback valueChangedCallback, Thing boss,
+	void (*valueChangedCallback) (void *boss, GuiCheckButtonEvent event), void *boss,
 	uint32 flags);
 
 bool GuiCheckButton_getValue (GuiCheckButton me);
@@ -448,7 +448,7 @@ Thing_define (GuiDialog, GuiShell) {
 GuiDialog GuiDialog_create (GuiWindow parent,
 	int x, int y, int width, int height,
 	const char32 *title,
-	GuiShell_GoAwayCallback goAwayCallback, Thing goAwayBoss,
+	void (*goAwayCallback) (void *goAwayBoss), void *goAwayBoss,
 	uint32 flags);
 
 /********** GuiDrawingArea **********/
@@ -456,78 +456,73 @@ GuiDialog GuiDialog_create (GuiWindow parent,
 Thing_declare (GuiDrawingArea);
 Thing_declare (GuiScrollBar);
 
-typedef struct structGuiDrawingArea_ExposeEvent {
+typedef struct structGuiDrawingAreaExposeEvent {
 	GuiDrawingArea widget;
 	int x, y, width, height;
-} *GuiDrawingArea_ExposeEvent;
-typedef struct structGuiDrawingArea_ClickEvent {
+} *GuiDrawingAreaExposeEvent;
+typedef struct structGuiDrawingAreaClickEvent {
 	GuiDrawingArea widget;
 	int x, y;
 	bool shiftKeyPressed, commandKeyPressed, optionKeyPressed, extraControlKeyPressed;
 	int button;
-} *GuiDrawingArea_ClickEvent;
-typedef struct structGuiDrawingArea_KeyEvent {
+} *GuiDrawingAreaClickEvent;
+typedef struct structGuiDrawingAreaKeyEvent {
 	GuiDrawingArea widget;
 	char32 key;
 	bool shiftKeyPressed, commandKeyPressed, optionKeyPressed, extraControlKeyPressed;
-} *GuiDrawingArea_KeyEvent;
-typedef struct structGuiDrawingArea_ResizeEvent {
+} *GuiDrawingAreaKeyEvent;
+typedef struct structGuiDrawingAreaResizeEvent {
 	GuiDrawingArea widget;
 	int width, height;
-} *GuiDrawingArea_ResizeEvent;
-
-typedef MelderCallback <void, structThing /* boss */, GuiDrawingArea_ExposeEvent> GuiDrawingArea_ExposeCallback;
-typedef MelderCallback <void, structThing /* boss */, GuiDrawingArea_ClickEvent > GuiDrawingArea_ClickCallback;
-typedef MelderCallback <void, structThing /* boss */, GuiDrawingArea_KeyEvent   > GuiDrawingArea_KeyCallback;
-typedef MelderCallback <void, structThing /* boss */, GuiDrawingArea_ResizeEvent> GuiDrawingArea_ResizeCallback;
+} *GuiDrawingAreaResizeEvent;
 
 Thing_define (GuiDrawingArea, GuiControl) {
 	GuiScrollBar d_horizontalScrollBar, d_verticalScrollBar;   // for swiping
-	GuiDrawingArea_ExposeCallback d_exposeCallback;
-	Thing d_exposeBoss;
-	GuiDrawingArea_ClickCallback d_clickCallback;
-	Thing d_clickBoss;
-	GuiDrawingArea_KeyCallback d_keyCallback;
-	Thing d_keyBoss;
-	GuiDrawingArea_ResizeCallback d_resizeCallback;
-	Thing d_resizeBoss;
+	void (*d_exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event);
+	void *d_exposeBoss;
+	void (*d_clickCallback) (void *boss, GuiDrawingAreaClickEvent event);
+	void *d_clickBoss;
+	void (*d_keyCallback) (void *boss, GuiDrawingAreaKeyEvent event);
+	void *d_keyBoss;
+	void (*d_resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event);
+	void *d_resizeBoss;
 };
 
 /* GuiDrawingArea creation flags: */
 #define GuiDrawingArea_BORDER  1
 GuiDrawingArea GuiDrawingArea_create (GuiForm parent, int left, int right, int top, int bottom,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags);
 GuiDrawingArea GuiDrawingArea_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags);
 GuiDrawingArea GuiDrawingArea_create (GuiScrolledWindow parent, int width, int height,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags);
 GuiDrawingArea GuiDrawingArea_createShown (GuiScrolledWindow parent, int width, int height,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags);
 
 void GuiDrawingArea_setSwipable (GuiDrawingArea me, GuiScrollBar horizontalScrollBar, GuiScrollBar verticalScrollBar);
-void GuiDrawingArea_setExposeCallback (GuiDrawingArea me, GuiDrawingArea_ExposeCallback callback, Thing boss);
-void GuiDrawingArea_setClickCallback  (GuiDrawingArea me, GuiDrawingArea_ClickCallback  callback, Thing boss);
-void GuiDrawingArea_setResizeCallback (GuiDrawingArea me, GuiDrawingArea_ResizeCallback callback, Thing boss);
+void GuiDrawingArea_setExposeCallback (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaExposeEvent event), void *boss);
+void GuiDrawingArea_setClickCallback  (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaClickEvent  event), void *boss);
+void GuiDrawingArea_setResizeCallback (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss);
 
 /********** GuiFileSelect **********/
 
-autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *title, bool allowMultipleFiles);
+SortedSetOfString GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *title, bool allowMultipleFiles);
 char32 * GuiFileSelect_getOutfileName (GuiWindow parent, const char32 *title, const char32 *defaultName);
 char32 * GuiFileSelect_getDirectoryName (GuiWindow parent, const char32 *title);
 
@@ -557,29 +552,16 @@ void GuiLabel_setText (GuiLabel me, const char32 *text /* cattable */);
 Thing_declare (GuiList);
 Thing_declare (GuiScrolledWindow);
 
-typedef struct structGuiList_SelectionChangedEvent {
-	GuiList list;
-} *GuiList_SelectionChangedEvent;
-typedef MelderCallback <void, structThing /* boss */, GuiList_SelectionChangedEvent> GuiList_SelectionChangedCallback;
-
-typedef struct structGuiList_DoubleClickEvent {
+typedef struct structGuiListEvent {
 	GuiList list;
-} *GuiList_DoubleClickEvent;
-typedef MelderCallback <void, structThing /* boss */, GuiList_DoubleClickEvent> GuiList_DoubleClickCallback;
-
-typedef struct structGuiList_ScrollEvent {
-	GuiList list;
-} *GuiList_ScrollEvent;
-typedef MelderCallback <void, structThing /* boss */, GuiList_ScrollEvent> GuiList_ScrollCallback;
+} *GuiListEvent;
 
 Thing_define (GuiList, GuiControl) {
 	bool d_allowMultipleSelection;
-	GuiList_SelectionChangedCallback d_selectionChangedCallback;
-	Thing d_selectionChangedBoss;
-	GuiList_DoubleClickCallback d_doubleClickCallback;
-	Thing d_doubleClickBoss;
-	GuiList_ScrollCallback d_scrollCallback;
-	Thing d_scrollBoss;
+	void (*d_selectionChangedCallback) (void *boss, GuiListEvent event);
+	void *d_selectionChangedBoss;
+	void (*d_doubleClickCallback) (void *boss, GuiListEvent event);
+	void *d_doubleClickBoss;
 	#if gtk
 		GtkListStore *d_liststore;
 	#elif cocoa
@@ -600,34 +582,20 @@ long GuiList_getBottomPosition (GuiList me);
 long GuiList_getNumberOfItems (GuiList me);
 long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelected);
 long GuiList_getTopPosition (GuiList me);
-
-/**
-	Inserts a new item into a GuiList at a given position.
-	@param me
-		The GuiList into which the new item is inserted.
-	@param itemText
-		The text of the new item. Cattable.
-	@param position
-		The position of the new item in the list after insertion.
-		A value of 1 therefore puts the new item at the top of the list.
-		A value of 0 is special: the item is put at the bottom of the list.
- */
 void GuiList_insertItem  (GuiList me, const char32 *itemText /* cattable */, long position);
-
 void GuiList_replaceItem (GuiList me, const char32 *itemText /* cattable */, long position);
 void GuiList_setTopPosition (GuiList me, long topPosition);
 void GuiList_selectItem (GuiList me, long position);
-void GuiList_setSelectionChangedCallback (GuiList me, GuiList_SelectionChangedCallback callback, Thing boss);
-void GuiList_setDoubleClickCallback (GuiList me, GuiList_DoubleClickCallback callback, Thing boss);
-void GuiList_setScrollCallback (GuiList me, GuiList_ScrollCallback callback, Thing boss);
+void GuiList_setSelectionChangedCallback (GuiList me, void (*callback) (void *boss, GuiListEvent event), void *boss);
+void GuiList_setDoubleClickCallback (GuiList me, void (*callback) (void *boss, GuiListEvent event), void *boss);
 
 /********** GuiMenu **********/
 
 Thing_declare (GuiMenuItem);
 
 Thing_define (GuiMenu, GuiThing) {
-	autoGuiMenuItem d_menuItem;
-	autoGuiButton d_cascadeButton;
+	GuiMenuItem d_menuItem;
+	GuiButton d_cascadeButton;
 	#if gtk
 		GtkMenuItem *d_gtkMenuTitle;
 	#elif cocoa
@@ -639,7 +607,7 @@ Thing_define (GuiMenu, GuiThing) {
 		GuiObject d_xmMenuBar;   // in case the menu is in a form
 	#endif
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_show ()
 		override;
@@ -664,12 +632,10 @@ typedef struct structGuiMenuItemEvent {
 	bool shiftKeyPressed, commandKeyPressed, optionKeyPressed, extraControlKeyPressed;
 } *GuiMenuItemEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiMenuItemEvent> GuiMenuItemCallback;
-
 Thing_define (GuiMenuItem, GuiThing) {
 	GuiMenu d_menu;
-	GuiMenuItemCallback d_callback;
-	Thing d_boss;
+	void (*d_commandCallback) (void *boss, GuiMenuItemEvent event);
+	void *d_boss;
 	#if gtk
 		bool d_callbackBlocked;
 	#endif
@@ -719,8 +685,8 @@ Thing_define (GuiMenuItem, GuiThing) {
 // or any ASCII character (preferably a letter or digit) between 32 and 126
 
 GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
-	GuiMenuItemCallback callback, Thing boss);
-/* Flags is a combination of the above defines (both layout and accelerators). */
+	void (*commandCallback) (void *boss, GuiMenuItemEvent event), void *boss);
+/* Flags is a combination of the above defines. */
 GuiMenuItem GuiMenu_addSeparator (GuiMenu menu);
 
 void GuiMenuItem_check (GuiMenuItem me, bool check);
@@ -729,7 +695,7 @@ void GuiMenuItem_check (GuiMenuItem me, bool check);
 
 Thing_define (GuiOptionMenu, GuiControl) {
 	int d_value;
-	OrderedOf<structGuiMenuItem> d_options;
+	Ordered d_options;   // of SimpleString
 	#if gtk
 		//GtkComboBox *d_gtkCascadeButton;
 	#elif cocoa
@@ -753,7 +719,7 @@ void GuiOptionMenu_setValue (GuiOptionMenu me, int value);
 
 Thing_declare (GuiProgressBar);
 
-Thing_define (GuiProgressBar, GuiControl) {
+Thing_define (GuiProgressBar, GuiControl) { public:
 	#if cocoa
 		GuiCocoaProgressBar *d_cocoaProgressBar;
 	#endif
@@ -773,12 +739,10 @@ typedef struct structGuiRadioButtonEvent {
 	int position;
 } *GuiRadioButtonEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiRadioButtonEvent> GuiRadioButtonCallback;
-
-Thing_define (GuiRadioButton, GuiControl) {
+Thing_define (GuiRadioButton, GuiControl) { public:
 	GuiRadioButton d_previous, d_next;   // there's a linked list of grouped radio buttons
-	GuiRadioButtonCallback d_valueChangedCallback;
-	Thing d_valueChangedBoss;
+	void (*d_valueChangedCallback) (void *boss, GuiRadioButtonEvent event);
+	void *d_valueChangedBoss;
 	#if cocoa
 		GuiCocoaRadioButton *d_cocoaRadioButton;
 	#endif
@@ -788,9 +752,9 @@ Thing_define (GuiRadioButton, GuiControl) {
 #define GuiRadioButton_SET  1
 #define GuiRadioButton_INSENSITIVE  2
 GuiRadioButton GuiRadioButton_create      (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiRadioButtonCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags);
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiRadioButtonEvent event), void *valueChangedBoss, uint32 flags);
 GuiRadioButton GuiRadioButton_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiRadioButtonCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags);
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiRadioButtonEvent event), void *valueChangedBoss, uint32 flags);
 
 void GuiRadioGroup_begin ();
 void GuiRadioGroup_end ();
@@ -824,21 +788,19 @@ typedef struct structGuiScrollBarEvent {
 	GuiScrollBar scrollBar;
 } *GuiScrollBarEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiScrollBarEvent> GuiScrollBarCallback;
-
-Thing_define (GuiScrollBar, GuiControl) {
-	GuiScrollBarCallback d_valueChangedCallback;
-	Thing d_valueChangedBoss;
+Thing_define (GuiScrollBar, GuiControl) { public:
+	void (*d_valueChangedCallback) (void *boss, GuiScrollBarEvent event);
+	void *d_valueChangedBoss;
 };
 
 /* GuiScrollBar creation flags: */
 #define GuiScrollBar_HORIZONTAL  1
 GuiScrollBar GuiScrollBar_create      (GuiForm parent, int left, int right, int top, int bottom,
 	double minimum, double maximum, double value, double sliderSize, double increment, double pageIncrement,
-	GuiScrollBarCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags);
+	void (*valueChangedCallback) (void *boss, GuiScrollBarEvent event), void *valueChangedBoss, uint32 flags);
 GuiScrollBar GuiScrollBar_createShown (GuiForm parent, int left, int right, int top, int bottom,
 	double minimum, double maximum, double value, double sliderSize, double increment, double pageIncrement,
-	GuiScrollBarCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags);
+	void (*valueChangedCallback) (void *boss, GuiScrollBarEvent event), void *valueChangedBoss, uint32 flags);
 
 int GuiScrollBar_getValue (GuiScrollBar me);
 int GuiScrollBar_getSliderSize (GuiScrollBar me);
@@ -865,8 +827,6 @@ typedef struct structGuiTextEvent {
 	GuiText text;
 } *GuiTextEvent;
 
-typedef MelderCallback <void, structThing /* boss */, GuiTextEvent> GuiText_ChangedCallback;
-
 #if gtk
 	typedef gchar * history_data;
 #else
@@ -881,9 +841,9 @@ struct _history_entry_s {
 	bool type_del : 1;
 };
 
-Thing_define (GuiText, GuiControl) {
-	GuiText_ChangedCallback d_changedCallback;
-	Thing d_changedBoss;
+Thing_define (GuiText, GuiControl) { public:
+	void (*d_changeCallback) (void *boss, GuiTextEvent event);
+	void *d_changeBoss;
 	#if cocoa
 		GuiCocoaScrolledWindow *d_cocoaScrollView;
 		GuiCocoaTextView *d_cocoaTextView;
@@ -918,7 +878,7 @@ void GuiText_redo (GuiText me);
 void GuiText_remove (GuiText me);
 void GuiText_replace (GuiText me, long from_pos, long to_pos, const char32 *value);
 void GuiText_scrollToSelection (GuiText me);
-void GuiText_setChangedCallback (GuiText me, GuiText_ChangedCallback changedCallback, Thing changedBoss);
+void GuiText_setChangeCallback (GuiText me, void (*changeCallback) (void *boss, GuiTextEvent event), void *changeBoss);
 void GuiText_setFontSize (GuiText me, int size);
 void GuiText_setRedoItem (GuiText me, GuiMenuItem item);
 void GuiText_setSelection (GuiText me, long first, long last);
@@ -928,17 +888,17 @@ void GuiText_undo (GuiText me);
 
 /********** GuiWindow **********/
 
-Thing_define (GuiWindow, GuiShell) {
+Thing_define (GuiWindow, GuiShell) { public:
 	#if gtk
 		GtkMenuBar *d_gtkMenuBar;
 	#elif cocoa
 		int d_menuBarWidth;
-		GuiMenuItemCallback d_tabCallback;
-		Thing d_tabBoss;
-		GuiMenuItemCallback d_shiftTabCallback;
-		Thing d_shiftTabBoss;
-		GuiMenuItemCallback d_optionBackspaceCallback;
-		Thing d_optionBackspaceBoss;
+		void (*d_tabCallback) (void *boss, GuiMenuItemEvent event);
+		void *d_tabBoss;
+		void (*d_shiftTabCallback) (void *boss, GuiMenuItemEvent event);
+		void *d_shiftTabBoss;
+		void (*d_optionBackspaceCallback) (void *boss, GuiMenuItemEvent event);
+		void *d_optionBackspaceBoss;
 	#elif motif
 		GuiObject d_xmMenuBar;
 	#endif
@@ -947,7 +907,7 @@ Thing_define (GuiWindow, GuiShell) {
 /* GuiWindow creation flags: */
 #define GuiWindow_FULLSCREEN  1
 GuiWindow GuiWindow_create (int x, int y, int width, int height, int minimumWidth, int minimumHeight,
-	const char32 *title /* cattable */, GuiShell_GoAwayCallback goAwayCallback, Thing goAwayBoss, uint32 flags);
+	const char32 *title /* cattable */, void (*goAwayCallback) (void *goAwayBoss), void *goAwayBoss, uint32 flags);
 	// returns a Form widget that has a new Shell parent.
 
 void GuiWindow_addMenuBar (GuiWindow me);
@@ -956,7 +916,7 @@ bool GuiWindow_setDirty (GuiWindow me, bool dirty);
 		Purpose: on OSX you get a little dot in the red close button,
 			and the window proxy icon dims.
 		Return value:
-			`true` if the system supports this feature, `false` if not;
+			TRUE if the system supports this feature, FALSE if not;
 			the point of this is that you can use a different user feedback strategy, like appending
 			the text "(modified)" to the window title, if this feature is not supported.
 	*/
diff --git a/sys/GuiButton.cpp b/sys/GuiButton.cpp
index 8977ec3..37db35f 100644
--- a/sys/GuiButton.cpp
+++ b/sys/GuiButton.cpp
@@ -21,24 +21,27 @@
 
 Thing_implement (GuiButton, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if gtk
-	#define iam_button  GuiButton me = (GuiButton) userData
+	#define iam_button  GuiButton me = (GuiButton) _GuiObject_getUserData (widget)
 #elif cocoa
-	#define iam_button  GuiButton me = (GuiButton) self -> d_userData
+	#define iam_button  GuiButton me = (GuiButton) [(GuiCocoaButton *) widget userData];
 #elif motif
 	#define iam_button  GuiButton me = (GuiButton) widget -> userData
 #endif
 
 #if gtk
-	static void _GuiGtkButton_destroyCallback (GuiObject /* widget */, gpointer userData) {
-		GuiButton me = (GuiButton) userData;
+	static void _GuiGtkButton_destroyCallback (GuiObject widget, gpointer void_me) {
+		(void) widget;
+		iam (GuiButton);
 		trace (U"destroying GuiButton ", Melder_pointer (me));
 		forget (me);
 	}
-	static void _GuiGtkButton_activateCallback (GuiObject widget, gpointer userData) {
-		GuiButton me = (GuiButton) userData;
-		struct structGuiButtonEvent event { me, false, false, false, false };
-		if (my d_activateCallback) {
+	static void _GuiGtkButton_activateCallback (GuiObject widget, gpointer void_me) {
+		iam (GuiButton);
+		struct structGuiButtonEvent event = { me, 0 };
+		if (my d_activateCallback != NULL) {
 			try {
 				my d_activateCallback (my d_activateBoss, & event);
 			} catch (MelderError) {
@@ -56,18 +59,18 @@ Thing_implement (GuiButton, GuiControl, 0);
 		trace (U"deleting a button");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiButton));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiButton));
 		d_userData = static_cast <GuiButton> (userData);
 	}
 	- (void) _guiCocoaButton_activateCallback: (id) widget {
 		Melder_assert (self == widget);   // sender (widget) and receiver (self) happen to be the same object
 		GuiButton me = d_userData;
-		if (my d_activateCallback) {
-			struct structGuiButtonEvent event { me, false, false, false, false };
+		if (my d_activateCallback != NULL) {
+			struct structGuiButtonEvent event = { me, 0 };
 			try {
 				my d_activateCallback (my d_activateBoss, & event);
 			} catch (MelderError) {
@@ -80,16 +83,16 @@ Thing_implement (GuiButton, GuiControl, 0);
 	void _GuiWinButton_destroy (GuiObject widget) {
 		iam_button;
 		if (widget == widget -> shell -> defaultButton)
-			widget -> shell -> defaultButton = nullptr;   // remove dangling reference
+			widget -> shell -> defaultButton = NULL;   // remove dangling reference
 		if (widget == widget -> shell -> cancelButton)
-			widget -> shell -> cancelButton = nullptr;   // remove dangling reference
+			widget -> shell -> cancelButton = NULL;   // remove dangling reference
 		_GuiNativeControl_destroy (widget);
 		forget (me);   // NOTE: my widget is not destroyed here
 	}
 	void _GuiWinButton_handleClick (GuiObject widget) {
 		iam_button;
-		if (my d_activateCallback) {
-			struct structGuiButtonEvent event { me, false, false, false, false };
+		if (my d_activateCallback != NULL) {
+			struct structGuiButtonEvent event = { me, 0 };
 			try {
 				my d_activateCallback (my d_activateBoss, & event);
 			} catch (MelderError) {
@@ -99,8 +102,8 @@ Thing_implement (GuiButton, GuiControl, 0);
 	}
 	bool _GuiWinButton_tryToHandleShortcutKey (GuiObject widget) {
 		iam_button;
-		if (my d_activateCallback) {
-			struct structGuiButtonEvent event { me, false, false, false, false };
+		if (my d_activateCallback != NULL) {
+			struct structGuiButtonEvent event = { me, 0 };
 			try {
 				my d_activateCallback (my d_activateBoss, & event);
 			} catch (MelderError) {
@@ -114,19 +117,19 @@ Thing_implement (GuiButton, GuiControl, 0);
 	void _GuiMacButton_destroy (GuiObject widget) {
 		iam_button;
 		if (widget == widget -> shell -> defaultButton)
-			widget -> shell -> defaultButton = nullptr;   // remove dangling reference
+			widget -> shell -> defaultButton = NULL;   // remove dangling reference
 		if (widget == widget -> shell -> cancelButton)
-			widget -> shell -> cancelButton = nullptr;   // remove dangling reference
+			widget -> shell -> cancelButton = NULL;   // remove dangling reference
 		_GuiNativeControl_destroy (widget);
 		forget (me);   // NOTE: my widget is not destroyed here
 	}
 	void _GuiMacButton_handleClick (GuiObject widget, EventRecord *macEvent) {
 		iam_button;
 		_GuiMac_clipOnParent (widget);
-		bool pushed = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, nullptr);
+		bool pushed = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, NULL);
 		GuiMac_clipOff ();
-		if (pushed && my d_activateCallback) {
-			struct structGuiButtonEvent event { me, false, false, false, false };
+		if (pushed && my d_activateCallback != NULL) {
+			struct structGuiButtonEvent event = { me, 0 };
 			//enum { cmdKey = 256, shiftKey = 512, optionKey = 2048, controlKey = 4096 };
 			Melder_assert (macEvent -> what == mouseDown);
 			event. shiftKeyPressed = (macEvent -> modifiers & shiftKey) != 0;
@@ -142,8 +145,8 @@ Thing_implement (GuiButton, GuiControl, 0);
 	}
 	bool _GuiMacButton_tryToHandleShortcutKey (GuiObject widget, EventRecord *macEvent) {
 		iam_button;
-		if (my d_activateCallback) {
-			struct structGuiButtonEvent event { me, false, false, false, false };
+		if (my d_activateCallback != NULL) {
+			struct structGuiButtonEvent event = { me, 0 };
 			// ignore modifier keys for Enter
 			try {
 				my d_activateCallback (my d_activateBoss, & event);
@@ -157,28 +160,28 @@ Thing_implement (GuiButton, GuiControl, 0);
 #endif
 
 GuiButton GuiButton_create (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiButton_ActivateCallback activateCallback, Thing activateBoss, uint32 flags)
+	const char32 *buttonText, void (*activateCallback) (void *boss, GuiButtonEvent event), void *activateBoss, uint32 flags)
 {
-	autoGuiButton me = Thing_new (GuiButton);
+	GuiButton me = Thing_new (GuiButton);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_activateCallback = activateCallback;
 	my d_activateBoss = activateBoss;
 	#if gtk
 		my d_widget = gtk_button_new_with_label (Melder_peek32to8 (buttonText));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiButton_DEFAULT || flags & GuiButton_ATTRACTIVE) {
 			GTK_WIDGET_SET_FLAGS (my d_widget, GTK_CAN_DEFAULT);
 			GtkWidget *shell = gtk_widget_get_toplevel (GTK_WIDGET (my d_widget));
-			Melder_assert (shell);
+			Melder_assert (shell != NULL);
 			gtk_window_set_default (GTK_WINDOW (shell), GTK_WIDGET (my d_widget));
 		} else if (1) {
 			gtk_button_set_focus_on_click (GTK_BUTTON (my d_widget), false);
 			GTK_WIDGET_UNSET_FLAGS (my d_widget, GTK_CAN_DEFAULT);
 		}
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkButton_destroyCallback), me.get());
-		g_signal_connect (GTK_BUTTON (my d_widget), "clicked", G_CALLBACK (_GuiGtkButton_activateCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkButton_destroyCallback), me);
+		g_signal_connect (GTK_BUTTON (my d_widget), "clicked", G_CALLBACK (_GuiGtkButton_activateCallback), me);
 //		if (flags & GuiButton_CANCEL) {
 //			parent -> shell -> cancelButton = parent -> cancelButton = my widget;
 //		}
@@ -186,7 +189,7 @@ GuiButton GuiButton_create (GuiForm parent, int left, int right, int top, int bo
 		GuiCocoaButton *button = [[GuiCocoaButton alloc] init];
 		my d_widget = (GuiObject) button;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[button setUserData: me.get()];
+		[button setUserData: me];
 		[button setButtonType: NSMomentaryPushInButton];
 		[button setBezelStyle: NSRoundedBezelStyle];
 		[button setImagePosition: NSNoImage];
@@ -214,15 +217,15 @@ GuiButton GuiButton_create (GuiForm parent, int left, int right, int top, int bo
 		}
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmPushButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> window = CreateWindow (L"button", Melder_peek32toW (_GuiWin_expandAmpersands (my d_widget -> name)),
 			WS_CHILD
 			| ( flags & (GuiButton_DEFAULT | GuiButton_ATTRACTIVE) ? BS_DEFPUSHBUTTON : BS_PUSHBUTTON )
 			| WS_CLIPSIBLINGS,
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, nullptr);
+			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
-		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), false);
+		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), FALSE);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiButton_DEFAULT || flags & GuiButton_ATTRACTIVE) {
 			parent -> d_widget -> shell -> defaultButton = parent -> d_widget -> defaultButton = my d_widget;
@@ -232,9 +235,9 @@ GuiButton GuiButton_create (GuiForm parent, int left, int right, int top, int bo
 		}
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmPushButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
-		CreatePushButtonControl (my d_widget -> macWindow, & my d_widget -> rect, nullptr, & my d_widget -> nat.control.handle);
-		Melder_assert (my d_widget -> nat.control.handle);
+		_GuiObject_setUserData (my d_widget, me);
+		CreatePushButtonControl (my d_widget -> macWindow, & my d_widget -> rect, NULL, & my d_widget -> nat.control.handle);
+		Melder_assert (my d_widget -> nat.control.handle != NULL);
 		SetControlReference (my d_widget -> nat.control.handle, (long) my d_widget);
 		my d_widget -> isControl = true;
 		_GuiNativeControl_setFont (my d_widget, flags & GuiButton_ATTRACTIVE ? /*1*/0 : 0, 13);
@@ -250,15 +253,15 @@ GuiButton GuiButton_create (GuiForm parent, int left, int right, int top, int bo
 		}
 	#endif
 	if (flags & GuiButton_INSENSITIVE) {
-		GuiThing_setSensitive (me.get(), false);
+		GuiThing_setSensitive (me, false);
 	}
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiButton GuiButton_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiButton_ActivateCallback activateCallback, Thing activateBoss, uint32 flags)
+	const char32 *buttonText, void (*clickedCallback) (void *boss, GuiButtonEvent event), void *clickedBoss, uint32 flags)
 {
-	GuiButton me = GuiButton_create (parent, left, right, top, bottom, buttonText, activateCallback, activateBoss, flags);
+	GuiButton me = GuiButton_create (parent, left, right, top, bottom, buttonText, clickedCallback, clickedBoss, flags);
 	GuiThing_show (me);
 	return me;
 }
diff --git a/sys/GuiCheckButton.cpp b/sys/GuiCheckButton.cpp
index e4a38e6..8e18009 100644
--- a/sys/GuiCheckButton.cpp
+++ b/sys/GuiCheckButton.cpp
@@ -21,6 +21,8 @@
 
 Thing_implement (GuiCheckButton, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_checkbutton \
 		Melder_assert (widget -> widgetClass == xmToggleButtonWidgetClass); \
@@ -38,8 +40,8 @@ Thing_implement (GuiCheckButton, GuiControl, 0);
 	}
 	static void _GuiGtkCheckButton_valueChangedCallback (GuiObject widget, gpointer void_me) {
 		iam (GuiCheckButton);
-		if (my d_valueChangedCallback && ! my d_blockValueChangedCallbacks) {
-			struct structGuiCheckButtonEvent event { me };
+		if (my d_valueChangedCallback != NULL && ! my d_blockValueChangedCallbacks) {
+			struct structGuiCheckButtonEvent event = { me };
 			my d_valueChangedCallback (my d_valueChangedBoss, & event);
 		}
 	}
@@ -53,19 +55,19 @@ Thing_implement (GuiCheckButton, GuiControl, 0);
 		trace (U"deleting a check button");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiCheckButton));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiCheckButton));
 		d_userData = static_cast <GuiCheckButton> (userData);
 	}
 	- (void) _guiCocoaButton_activateCallback: (id) widget {
 		Melder_assert (self == widget);   // sender (widget) and receiver (self) happen to be the same object
 		GuiCheckButton me = d_userData;
-		if (my d_valueChangedCallback) {
+		if (my d_valueChangedCallback != NULL) {
 			Melder_assert (! my d_blockValueChangedCallbacks);
-			struct structGuiCheckButtonEvent event { me };
+			struct structGuiCheckButtonEvent event = { me };
 			my d_valueChangedCallback (my d_valueChangedBoss, & event);
 		}
 	}
@@ -79,8 +81,8 @@ Thing_implement (GuiCheckButton, GuiControl, 0);
 	}
 	void _GuiWinCheckButton_handleClick (GuiObject widget) {
 		iam_checkbutton;
-		if (my d_valueChangedCallback) {
-			struct structGuiCheckButtonEvent event { me };
+		if (my d_valueChangedCallback != NULL) {
+			struct structGuiCheckButtonEvent event = { me };
 			my d_valueChangedCallback (my d_valueChangedBoss, & event);
 		}
 	}
@@ -93,11 +95,11 @@ Thing_implement (GuiCheckButton, GuiControl, 0);
 	void _GuiMacCheckButton_handleClick (GuiObject widget, EventRecord *macEvent) {
 		iam_checkbutton;
 		_GuiMac_clipOnParent (widget);
-		bool clicked = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, nullptr);
+		bool clicked = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, NULL);
 		GuiMac_clipOff ();
 		if (clicked) {
-			if (my d_valueChangedCallback) {
-				struct structGuiCheckButtonEvent event { me };
+			if (my d_valueChangedCallback != NULL) {
+				struct structGuiCheckButtonEvent event = { me };
 				my d_valueChangedCallback (my d_valueChangedBoss, & event);
 			}
 		}
@@ -105,28 +107,28 @@ Thing_implement (GuiCheckButton, GuiControl, 0);
 #endif
 
 GuiCheckButton GuiCheckButton_create (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiCheckButton_ValueChangedCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiCheckButtonEvent event), void *valueChangedBoss, uint32 flags)
 {
-	autoGuiCheckButton me = Thing_new (GuiCheckButton);
+	GuiCheckButton me = Thing_new (GuiCheckButton);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_valueChangedCallback = valueChangedCallback;
 	my d_valueChangedBoss = valueChangedBoss;
 	#if gtk
 		my d_widget = gtk_check_button_new_with_label (Melder_peek32to8 (buttonText));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), (flags & GuiCheckButton_SET) != 0);
 		if (flags & GuiCheckButton_INSENSITIVE) {
-			GuiThing_setSensitive (me.get(), false);
+			GuiThing_setSensitive (me, false);
 		}
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkCheckButton_destroyCallback), me.get());
-		g_signal_connect (GTK_TOGGLE_BUTTON (my d_widget), "toggled", G_CALLBACK (_GuiGtkCheckButton_valueChangedCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkCheckButton_destroyCallback), me);
+		g_signal_connect (GTK_TOGGLE_BUTTON (my d_widget), "toggled", G_CALLBACK (_GuiGtkCheckButton_valueChangedCallback), me);
 	#elif cocoa
 		GuiCocoaCheckButton *checkButton = [[GuiCocoaCheckButton alloc] init];
 		my d_widget = (GuiObject) checkButton;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[checkButton setUserData: me.get()];
+		[checkButton setUserData: me];
 		[checkButton setButtonType: NSSwitchButton];
 		[checkButton setTitle: (NSString *) Melder_peek32toCfstring (buttonText)];
 		[checkButton setTarget: checkButton];
@@ -136,42 +138,42 @@ GuiCheckButton GuiCheckButton_create (GuiForm parent, int left, int right, int t
 		}
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmToggleButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> isRadioButton = false;
 		my d_widget -> window = CreateWindow (L"button", Melder_peek32toW (_GuiWin_expandAmpersands (buttonText)),
 			WS_CHILD | BS_AUTOCHECKBOX | WS_CLIPSIBLINGS,
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, nullptr);
+			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
-		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), false);
+		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), FALSE);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiCheckButton_SET) {
 			Button_SetCheck (my d_widget -> window, BST_CHECKED);
 		}
 		if (flags & GuiCheckButton_INSENSITIVE) {
-			GuiThing_setSensitive (me.get(), false);
+			GuiThing_setSensitive (me, false);
 		}
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmToggleButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> isRadioButton = false;
-		CreateCheckBoxControl (my d_widget -> macWindow, & my d_widget -> rect, nullptr,
+		CreateCheckBoxControl (my d_widget -> macWindow, & my d_widget -> rect, NULL,
 			(flags & GuiCheckButton_SET) != 0, true, & my d_widget -> nat.control.handle);
-		Melder_assert (my d_widget -> nat.control.handle != nullptr);
+		Melder_assert (my d_widget -> nat.control.handle != NULL);
 		SetControlReference (my d_widget -> nat.control.handle, (long) my d_widget);
 		my d_widget -> isControl = true;
 		_GuiNativeControl_setFont (my d_widget, 0, 13);
 		_GuiNativeControl_setTitle (my d_widget);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiCheckButton_INSENSITIVE) {
-			GuiThing_setSensitive (me.get(), false);
+			GuiThing_setSensitive (me, false);
 		}
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiCheckButton GuiCheckButton_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiCheckButton_ValueChangedCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiCheckButtonEvent event), void *valueChangedBoss, uint32 flags)
 {
 	GuiCheckButton me = GuiCheckButton_create (parent, left, right, top, bottom, buttonText, valueChangedCallback, valueChangedBoss, flags);
 	GuiThing_show (me);
diff --git a/sys/GuiControl.cpp b/sys/GuiControl.cpp
index 657a29e..273cdc6 100644
--- a/sys/GuiControl.cpp
+++ b/sys/GuiControl.cpp
@@ -98,25 +98,25 @@ void structGuiControl :: v_positionInForm (GuiObject widget, int left, int right
 		(void) parent;
 		if (left >= 0) {
 			if (right > 0) {
-				XtVaSetValues (widget, XmNx, left, XmNwidth, right - left, nullptr);
+				XtVaSetValues (widget, XmNx, left, XmNwidth, right - left, NULL);
 			} else {
-				XtVaSetValues (widget, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, left, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, - right, nullptr);
+				XtVaSetValues (widget, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, left, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, - right, NULL);
 			}
 		} else {
 			Melder_assert (right <= 0);
 			trace (U"parent width ", parent -> d_widget -> width);
-			XtVaSetValues (widget, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, - right, XmNwidth, right - left, nullptr);
+			XtVaSetValues (widget, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, - right, XmNwidth, right - left, NULL);
 			trace (U"parent width ", parent -> d_widget -> width);
 		}
 		if (top >= 0) {
 			if (bottom > 0) {
-				XtVaSetValues (widget, XmNy, top, XmNheight, bottom - top, nullptr);
+				XtVaSetValues (widget, XmNy, top, XmNheight, bottom - top, NULL);
 			} else {
-				XtVaSetValues (widget, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, top, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, - bottom, nullptr);
+				XtVaSetValues (widget, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, top, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, - bottom, NULL);
 			}
 		} else {
 			Melder_assert (bottom <= 0);
-			XtVaSetValues (widget, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, - bottom, XmNheight, bottom - top, nullptr);
+			XtVaSetValues (widget, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, - bottom, XmNheight, bottom - top, NULL);
 		}
 	#endif
 }
@@ -137,7 +137,7 @@ void structGuiControl :: v_positionInScrolledWindow (GuiObject widget, int width
 		[widgetView release];   // ... so we can release the item already
 	#elif motif
 		(void) parent;
-		XtVaSetValues (widget, XmNwidth, width, XmNheight, height, nullptr);
+		XtVaSetValues (widget, XmNwidth, width, XmNheight, height, NULL);
 	#endif
 }
 
@@ -148,8 +148,6 @@ int GuiControl_getX (GuiControl me) {
 		return [(NSView *) my d_widget frame]. origin. x;
 	#elif motif
 		return my d_widget -> x;
-	#else
-		return 0;
 	#endif
 }
 
@@ -160,8 +158,6 @@ int GuiControl_getY (GuiControl me) {
 		return [(NSView *) my d_widget frame]. origin. y;
 	#elif motif
 		return my d_widget -> y;
-	#else
-		return 0;
 	#endif
 }
 
@@ -172,8 +168,6 @@ int GuiControl_getWidth (GuiControl me) {
 		return [(NSView *) my d_widget frame]. size. width;
 	#elif motif
 		return my d_widget -> width;
-	#else
-		return 0;
 	#endif
 }
 
@@ -184,8 +178,6 @@ int GuiControl_getHeight (GuiControl me) {
 		return [(NSView *) my d_widget frame]. size. height;
 	#elif motif
 		return my d_widget -> height;
-	#else
-		return 0;
 	#endif
 }
 
@@ -197,7 +189,7 @@ void GuiControl_move (GuiControl me, int x, int y) {
 		}
 	#elif cocoa
 	#elif motif
-		XtVaSetValues (my d_widget, XmNx, (Position) x, XmNy, (Position) y, nullptr);   // 64-bit-compatible
+		XtVaSetValues (my d_widget, XmNx, (Position) x, XmNy, (Position) y, NULL);   // 64-bit-compatible
 	#endif
 }
 
@@ -206,7 +198,7 @@ void GuiControl_setSize (GuiControl me, int width, int height) {
 		gtk_widget_set_size_request (GTK_WIDGET (my d_widget), width, height);
 	#elif cocoa
 	#elif motif
-		XtVaSetValues (my d_widget, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, nullptr);   // 64-bit-compatible
+		XtVaSetValues (my d_widget, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, NULL);   // 64-bit-compatible
 	#endif
 }
 
diff --git a/sys/GuiDialog.cpp b/sys/GuiDialog.cpp
index e38171c..24f71cc 100644
--- a/sys/GuiDialog.cpp
+++ b/sys/GuiDialog.cpp
@@ -39,11 +39,42 @@ Thing_implement (GuiDialog, GuiShell, 0);
 		(void) widget;
 		(void) event;
 		iam (GuiDialog);
-		if (my d_goAwayCallback) {
+		if (my d_goAwayCallback != NULL) {
 			my d_goAwayCallback (my d_goAwayBoss);
 		}
-		return true;   // signal handled (don't destroy dialog)
+		return TRUE;   // signal handled (don't destroy dialog)
 	}
+#elif cocoa
+	@interface GuiCocoaDialog : NSWindow
+	@end
+	@implementation GuiCocoaDialog {
+		GuiDialog d_userData;
+	}
+	- (void) dealloc {   // override
+		GuiDialog me = d_userData;
+		forget (me);
+		trace (U"deleting a dialog");
+		[super dealloc];
+	}
+	- (GuiDialog) userData {
+		return d_userData;
+	}
+	- (void) setUserData: (GuiDialog) userData {
+		d_userData = userData;
+	}
+	- (BOOL) windowShouldClose: (id) sender {
+		GuiCocoaDialog *widget = (GuiCocoaDialog *) sender;
+		GuiDialog me = [widget userData];
+		if (my d_goAwayCallback != NULL) {
+			trace (U"calling goAwayCallback)");
+			my d_goAwayCallback (my d_goAwayBoss);
+		} else {
+			trace (U"hiding window");
+			[widget orderOut: nil];
+		}
+		return FALSE;
+	}
+	@end
 #elif motif
 	static void _GuiMotifDialog_destroyCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		(void) widget; (void) call;
@@ -53,16 +84,16 @@ Thing_implement (GuiDialog, GuiShell, 0);
 	static void _GuiMotifDialog_goAwayCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		(void) widget; (void) call;
 		iam (GuiDialog);
-		if (my d_goAwayCallback) {
+		if (my d_goAwayCallback != NULL) {
 			my d_goAwayCallback (my d_goAwayBoss);
 		}
 	}
 #endif
 
 GuiDialog GuiDialog_create (GuiWindow parent, int x, int y, int width, int height,
-	const char32 *title, GuiShell_GoAwayCallback goAwayCallback, Thing goAwayBoss, uint32 flags)
+	const char32 *title, void (*goAwayCallback) (void *goAwayBoss), void *goAwayBoss, uint32 flags)
 {
-	autoGuiDialog me = Thing_new (GuiDialog);
+	GuiDialog me = Thing_new (GuiDialog);
 	my d_parent = parent;
 	my d_goAwayCallback = goAwayCallback;
 	my d_goAwayBoss = goAwayBoss;
@@ -73,52 +104,52 @@ GuiDialog GuiDialog_create (GuiWindow parent, int x, int y, int width, int heigh
 			GuiObject toplevel = gtk_widget_get_ancestor (GTK_WIDGET (parent -> d_widget), GTK_TYPE_WINDOW);
 			if (toplevel) {
 				gtk_window_set_transient_for (GTK_WINDOW (my d_gtkWindow), GTK_WINDOW (toplevel));
-				gtk_window_set_destroy_with_parent (GTK_WINDOW (my d_gtkWindow), true);
+				gtk_window_set_destroy_with_parent (GTK_WINDOW (my d_gtkWindow), TRUE);
 			}
 		}
 		g_signal_connect (G_OBJECT (my d_gtkWindow), "delete-event",
-			goAwayCallback ? G_CALLBACK (_GuiGtkDialog_goAwayCallback) : G_CALLBACK (gtk_widget_hide_on_delete), me.get());
+			goAwayCallback ? G_CALLBACK (_GuiGtkDialog_goAwayCallback) : G_CALLBACK (gtk_widget_hide_on_delete), me);
 		gtk_window_set_default_size (GTK_WINDOW (my d_gtkWindow), width, height);
 		gtk_window_set_modal (GTK_WINDOW (my d_gtkWindow), flags & GuiDialog_MODAL);
-		GuiShell_setTitle (me.get(), title);
+		GuiShell_setTitle (me, title);
 		GuiObject vbox = GTK_DIALOG (my d_gtkWindow) -> vbox;
 		my d_widget = gtk_fixed_new ();
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		gtk_widget_set_size_request (GTK_WIDGET (my d_widget), width, height);
 		gtk_container_add (GTK_CONTAINER (vbox /*my d_gtkWindow*/), GTK_WIDGET (my d_widget));
 		gtk_widget_show (GTK_WIDGET (my d_widget));
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkDialog_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkDialog_destroyCallback), me);
 	#elif cocoa
 		(void) parent;
 		NSRect rect = { { (CGFloat) x, (CGFloat) y }, { (CGFloat) width, (CGFloat) height } };
-		my d_cocoaShell = [[GuiCocoaShell alloc]
+		NSWindow *nsWindow = [[GuiCocoaDialog alloc]
 			initWithContentRect: rect
 			styleMask: NSTitledWindowMask | NSClosableWindowMask
 			backing: NSBackingStoreBuffered
 			defer: false];
-        [my d_cocoaShell   setMinSize: NSMakeSize (500.0, 500.0)];   // BUG: should not be needed
-		[my d_cocoaShell   setTitle: (NSString *) Melder_peek32toCfstring (title)];
-		//[my d_cocoaShell   makeKeyAndOrderFront: nil];
-		my d_widget = (GuiObject) [my d_cocoaShell   contentView];
-		[my d_cocoaShell   setUserData: me.get()];
-		[my d_cocoaShell   setReleasedWhenClosed: NO];
+        [nsWindow setMinSize: NSMakeSize (500.0, 500.0)];   // BUG: should not be needed
+		[nsWindow setTitle: (NSString *) Melder_peek32toCfstring (title)];
+		//[nsWindow makeKeyAndOrderFront: nil];
+		my d_widget = (GuiObject) [nsWindow contentView];
+		[(GuiCocoaDialog *) nsWindow setUserData: me];
+		[nsWindow setReleasedWhenClosed: NO];
 	#elif motif
-		my d_xmShell = XmCreateDialogShell (mac ? nullptr : parent -> d_widget, "dialogShell", nullptr, 0);
-		XtVaSetValues (my d_xmShell, XmNdeleteResponse, goAwayCallback ? XmDO_NOTHING : XmUNMAP, XmNx, x, XmNy, y, nullptr);
+		my d_xmShell = XmCreateDialogShell (mac ? NULL : parent -> d_widget, "dialogShell", NULL, 0);
+		XtVaSetValues (my d_xmShell, XmNdeleteResponse, goAwayCallback ? XmDO_NOTHING : XmUNMAP, XmNx, x, XmNy, y, NULL);
 		if (goAwayCallback) {
-			XmAddWMProtocolCallback (my d_xmShell, 'delw', _GuiMotifDialog_goAwayCallback, (char *) me.get());
+			XmAddWMProtocolCallback (my d_xmShell, 'delw', _GuiMotifDialog_goAwayCallback, (char *) me);
 		}
-		GuiShell_setTitle (me.get(), title);
-		my d_widget = XmCreateForm (my d_xmShell, "dialog", nullptr, 0);
-		XtVaSetValues (my d_widget, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, nullptr);
-		_GuiObject_setUserData (my d_widget, me.get());
-		XtAddCallback (my d_widget, XmNdestroyCallback, _GuiMotifDialog_destroyCallback, me.get());
+		GuiShell_setTitle (me, title);
+		my d_widget = XmCreateForm (my d_xmShell, "dialog", NULL, 0);
+		XtVaSetValues (my d_widget, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, NULL);
+		_GuiObject_setUserData (my d_widget, me);
+		XtAddCallback (my d_widget, XmNdestroyCallback, _GuiMotifDialog_destroyCallback, me);
 		XtVaSetValues (my d_widget, XmNdialogStyle,
 			(flags & GuiDialog_MODAL) ? XmDIALOG_FULL_APPLICATION_MODAL : XmDIALOG_MODELESS,
-			XmNautoUnmanage, False, nullptr);
+			XmNautoUnmanage, False, NULL);
 	#endif
-	my d_shell = me.get();
-	return me.releaseToAmbiguousOwner();
+	my d_shell = me;
+	return me;
 }
 
 /* End of file GuiDialog.cpp */
diff --git a/sys/GuiDrawingArea.cpp b/sys/GuiDrawingArea.cpp
index 3f9e2a2..5bffc78 100644
--- a/sys/GuiDrawingArea.cpp
+++ b/sys/GuiDrawingArea.cpp
@@ -25,6 +25,8 @@
 
 Thing_implement (GuiDrawingArea, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_drawingarea \
 		Melder_assert (widget -> widgetClass == xmDrawingAreaWidgetClass); \
@@ -49,7 +51,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 		// first place?? Additionally this causes even more flickering
 		//gdk_window_clear_area ((GTK_WIDGET (widget)) -> window, expose->area.x, expose->area.y, expose->area.width, expose->area.height);
 		if (my d_exposeCallback) {
-			struct structGuiDrawingArea_ExposeEvent event { me, 0 };
+			struct structGuiDrawingAreaExposeEvent event = { me, 0 };
 			event. x = expose -> area. x;
 			event. y = expose -> area. y;
 			event. width = expose -> area. width;
@@ -58,10 +60,10 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 				//GdkRectangle rect = { event. x, event. y, event. width, event. height };
 				//gdk_window_begin_paint_rect ((GTK_WIDGET (widget)) -> window, & rect);
 				trace (U"send the expose callback");
-				trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+				trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 				my d_exposeCallback (my d_exposeBoss, & event);
 				trace (U"the expose callback finished");
-				trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+				trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 				//gdk_window_end_paint ((GTK_WIDGET (widget)) -> window);
 				//gdk_window_flush ((GTK_WIDGET (widget)) -> window);
 				//gdk_flush ();
@@ -69,16 +71,16 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 				Melder_flushError (U"Redrawing not completed");
 			}
 			trace (U"the expose callback handled drawing");
-			return true;
+			return TRUE;
 		}
 		trace (U"GTK will handle redrawing");
-		return false;
+		return FALSE;
 	}
 	static gboolean _GuiGtkDrawingArea_clickCallback (GuiObject widget, GdkEvent *e, gpointer void_me) {
 		iam (GuiDrawingArea);
-		if (e -> type != GDK_BUTTON_PRESS) return false;
+		if (e -> type != GDK_BUTTON_PRESS) return FALSE;
 		if (my d_clickCallback) {
-			struct structGuiDrawingArea_ClickEvent event { me, 0 };
+			struct structGuiDrawingAreaClickEvent event = { me, 0 };
 			event. button = ((GdkEventButton *) e) -> button;
 			event. x = ((GdkEventButton *) e) -> x;
 			event. y = ((GdkEventButton *) e) -> y;
@@ -88,15 +90,15 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 			} catch (MelderError) {
 				Melder_flushError (U"Mouse click not completely handled.");
 			}
-			return true;
+			return TRUE;
 		}
-		return false;
+		return FALSE;
 	}
 	static gboolean _GuiGtkDrawingArea_keyCallback (GuiObject widget, GdkEvent *gevent, gpointer void_me) {
 		iam (GuiDrawingArea);
 		trace (U"begin");
 		if (my d_keyCallback && gevent -> type == GDK_KEY_PRESS) {
-			struct structGuiDrawingArea_KeyEvent event { me, 0 };
+			struct structGuiDrawingAreaKeyEvent event = { me, 0 };
 			GdkEventKey *gkeyEvent = (GdkEventKey *) gevent;
 			event. key = gkeyEvent -> keyval;
 			/*
@@ -119,14 +121,14 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 			/*
 			 * FIXME: here we should empty the type-ahead buffer
 			 */
-			return true;
+			return TRUE;
 		}
-		return false;   // if the drawing area has no keyCallback, the system will send the key press to a text field.
+		return FALSE;   // if the drawing area has no keyCallback, the system will send the key press to a text field.
 	}
 	static gboolean _GuiGtkDrawingArea_resizeCallback (GuiObject widget, GtkAllocation *allocation, gpointer void_me) {
 		iam (GuiDrawingArea);
 		if (my d_resizeCallback) {
-			struct structGuiDrawingArea_ResizeEvent event { me, 0 };
+			struct structGuiDrawingAreaResizeEvent event = { me, 0 };
 			trace (U"drawingArea resized to ", allocation -> width, U" x ", allocation -> height, U".");
 			event. width = allocation -> width;
 			event. height = allocation -> height;
@@ -136,9 +138,9 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 			} catch (MelderError) {
 				Melder_flushError (U"Window resizing not completely handled.");
 			}
-			return true;
+			return TRUE;
 		}
-		return false;
+		return FALSE;
 	}
 #elif cocoa
 	@interface GuiCocoaDrawingArea ()
@@ -168,7 +170,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 		trace (U"deleting a drawing area");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
@@ -177,7 +179,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	- (void) resizeCallback: (NSRect) rect {
 		GuiDrawingArea me = (GuiDrawingArea) d_userData;
 		if (me && my d_resizeCallback) {
-			struct structGuiDrawingArea_ResizeEvent event { me, 0 };
+			struct structGuiDrawingAreaResizeEvent event = { me, 0 };
 			event. width = rect. size. width;
 			event. height = rect. size. height;
 			try {
@@ -196,7 +198,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 			_inited = YES;
 		}
 		if (my d_exposeCallback) {
-			struct structGuiDrawingArea_ExposeEvent event { me };
+			struct structGuiDrawingAreaExposeEvent event = { me };
 			try {
 				my d_exposeCallback (my d_exposeBoss, & event);
 			} catch (MelderError) {
@@ -221,7 +223,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 		 * the key focus from the Search field, a situation that cannot hurt).
 		 */
 		GuiDrawingArea me = (GuiDrawingArea) d_userData;
-		return !! my d_keyCallback;
+		return my d_keyCallback != NULL;
 	}
 	- (void) mouseEntered: (NSEvent *) nsEvent {
 		(void) nsEvent;
@@ -235,7 +237,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	 //   [self becomeFirstResponder];
 		GuiDrawingArea me = (GuiDrawingArea) d_userData;
 		if (my d_clickCallback) {
-			struct structGuiDrawingArea_ClickEvent event { me, 0 };
+			struct structGuiDrawingAreaClickEvent event = { me, 0 };
 			NSPoint local_point = [self   convertPoint: [nsEvent locationInWindow]   fromView: nil];
 			event. x = local_point. x;
 			//event. y = [self frame]. size. height - local_point. y;
@@ -287,7 +289,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	- (void) keyDown: (NSEvent *) nsEvent {
 		GuiDrawingArea me = (GuiDrawingArea) d_userData;
 		if (my d_keyCallback) {
-			struct structGuiDrawingArea_KeyEvent event { me, 0 };
+			struct structGuiDrawingAreaKeyEvent event = { me, 0 };
 			event. key = [[nsEvent charactersIgnoringModifiers]   characterAtIndex: 0];
 			if (event. key == NSLeftArrowFunctionKey)  event. key = 0x2190;
 			if (event. key == NSRightArrowFunctionKey) event. key = 0x2192;
@@ -317,7 +319,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 		PAINTSTRUCT paintStruct;
 		BeginPaint (widget -> window, & paintStruct);
 		if (my d_exposeCallback) {
-			struct structGuiDrawingArea_ExposeEvent event { me };
+			struct structGuiDrawingAreaExposeEvent event = { me };
 			try {
 				my d_exposeCallback (my d_exposeBoss, & event);
 			} catch (MelderError) {
@@ -329,7 +331,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiWinDrawingArea_handleClick (GuiObject widget, int x, int y) {
 		iam_drawingarea;
 		if (my d_clickCallback) {
-			struct structGuiDrawingArea_ClickEvent event { me, 0 };
+			struct structGuiDrawingAreaClickEvent event = { me, 0 };
 			event. x = x;
 			event. y = y;
 			event. shiftKeyPressed = GetKeyState (VK_SHIFT) < 0;
@@ -345,7 +347,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiWinDrawingArea_handleKey (GuiObject widget, TCHAR kar) {   // TODO: event?
 		iam_drawingarea;
 		if (my d_keyCallback) {
-			struct structGuiDrawingArea_KeyEvent event { me, 0 };
+			struct structGuiDrawingAreaKeyEvent event = { me, 0 };
 			event. key = kar;
 			if (event. key == VK_RETURN) event. key = 10;
 			if (event. key == VK_LEFT)  event. key = 0x2190;
@@ -365,7 +367,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiWinDrawingArea_shellResize (GuiObject widget) {
 		iam_drawingarea;
 		if (my d_resizeCallback) {
-			struct structGuiDrawingArea_ResizeEvent event { me };
+			struct structGuiDrawingAreaResizeEvent event = { me };
 			event. width = widget -> width;
 			event. height = widget -> height;
 			try {
@@ -383,7 +385,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiMacDrawingArea_update (GuiObject widget) {
 		iam_drawingarea;
 		if (my d_exposeCallback) {
-			struct structGuiDrawingArea_ExposeEvent event { me };
+			struct structGuiDrawingAreaExposeEvent event = { me };
 			_GuiMac_clipOnParent (widget);
 			try {
 				my d_exposeCallback (my d_exposeBoss, & event);
@@ -396,7 +398,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiMacDrawingArea_handleClick (GuiObject widget, EventRecord *macEvent) {
 		iam_drawingarea;
 		if (my d_clickCallback) {
-			struct structGuiDrawingArea_ClickEvent event { me, 0 };
+			struct structGuiDrawingAreaClickEvent event = { me, 0 };
 			event. x = macEvent -> where. h;
 			event. y = macEvent -> where. v;
 			event. shiftKeyPressed = (macEvent -> modifiers & shiftKey) != 0;
@@ -413,7 +415,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	bool _GuiMacDrawingArea_tryToHandleKey (GuiObject widget, EventRecord *macEvent) {
 		iam_drawingarea;
 		if (my d_keyCallback) {
-			struct structGuiDrawingArea_KeyEvent event { me, 0 };
+			struct structGuiDrawingAreaKeyEvent event = { me, 0 };
 			event. key = macEvent -> message & charCodeMask;
 			//if (event. key == 9) event. key = 0x2324;   // tab
 			if (event. key == 13) event. key = 10;   // return -> newline
@@ -438,7 +440,7 @@ Thing_implement (GuiDrawingArea, GuiControl, 0);
 	void _GuiMacDrawingArea_shellResize (GuiObject widget) {
 		iam_drawingarea;
 		if (my d_resizeCallback) {
-			struct structGuiDrawingArea_ResizeEvent event = { me, 0 };
+			struct structGuiDrawingAreaResizeEvent event = { me, 0 };
 			event. width = widget -> width;
 			event. height = widget -> height;
 			try {
@@ -457,7 +459,7 @@ static gboolean _guiGtkDrawingArea_swipeCallback (GuiObject w, GdkEventScroll *e
 		double hv = gtk_range_get_value (GTK_RANGE (my d_horizontalScrollBar -> d_widget));
 		GtkAdjustment *adjustment = gtk_range_get_adjustment (GTK_RANGE (my d_horizontalScrollBar -> d_widget));
 		gdouble hi;
-		g_object_get (adjustment, "step_increment", & hi, nullptr);
+		g_object_get (adjustment, "step_increment", & hi, NULL);
 		switch (event -> direction) {
 			case GDK_SCROLL_LEFT:
 				gtk_range_set_value (GTK_RANGE (my d_horizontalScrollBar -> d_widget), hv - hi);
@@ -471,7 +473,7 @@ static gboolean _guiGtkDrawingArea_swipeCallback (GuiObject w, GdkEventScroll *e
 		double vv = gtk_range_get_value (GTK_RANGE (my d_verticalScrollBar -> d_widget));
 		GtkAdjustment *adjustment = gtk_range_get_adjustment (GTK_RANGE (my d_verticalScrollBar -> d_widget));
 		gdouble vi;
-		g_object_get (adjustment, "step_increment", & vi, nullptr);
+		g_object_get (adjustment, "step_increment", & vi, NULL);
 		switch (event -> direction) {
 			case GDK_SCROLL_UP:
 				gtk_range_set_value (GTK_RANGE (my d_verticalScrollBar -> d_widget), vv - vi);
@@ -481,18 +483,18 @@ static gboolean _guiGtkDrawingArea_swipeCallback (GuiObject w, GdkEventScroll *e
 				break;
 		}
 	}
-	return true;
+	return TRUE;
 }
 #endif
 
 GuiDrawingArea GuiDrawingArea_create (GuiForm parent, int left, int right, int top, int bottom,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback)  (void *boss, GuiDrawingAreaClickEvent  event),
+	void (*keyCallback)    (void *boss, GuiDrawingAreaKeyEvent    event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 /* flags */)
 {
-	autoGuiDrawingArea me = Thing_new (GuiDrawingArea);
+	GuiDrawingArea me = Thing_new (GuiDrawingArea);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_exposeCallback = exposeCallback;
@@ -511,50 +513,50 @@ GuiDrawingArea GuiDrawingArea_create (GuiForm parent, int left, int right, int t
 			| GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK
 			| GDK_POINTER_MOTION_HINT_MASK);                    // receive fewer motion notify events (the cb might take time)
 		gtk_widget_set_events (GTK_WIDGET (my d_widget), mask);
-		g_signal_connect (G_OBJECT (my d_widget), "expose-event",         G_CALLBACK (_GuiGtkDrawingArea_exposeCallback),  me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "destroy",              G_CALLBACK (_GuiGtkDrawingArea_destroyCallback), me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "button-press-event",   G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "button-release-event", G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "motion-notify-event",  G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		if (parent) {
+		g_signal_connect (G_OBJECT (my d_widget), "expose-event",         G_CALLBACK (_GuiGtkDrawingArea_exposeCallback),  me);
+		g_signal_connect (G_OBJECT (my d_widget), "destroy",              G_CALLBACK (_GuiGtkDrawingArea_destroyCallback), me);
+		g_signal_connect (G_OBJECT (my d_widget), "button-press-event",   G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		g_signal_connect (G_OBJECT (my d_widget), "button-release-event", G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		g_signal_connect (G_OBJECT (my d_widget), "motion-notify-event",  G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		if (parent != NULL) {
 			Melder_assert (parent -> d_widget);
 			g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (GTK_WIDGET (parent -> d_widget))), "key-press-event",
-				G_CALLBACK (_GuiGtkDrawingArea_keyCallback), me.get());
+				G_CALLBACK (_GuiGtkDrawingArea_keyCallback), me);
 		}
-		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiGtkDrawingArea_resizeCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiGtkDrawingArea_resizeCallback), me);
 
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		gtk_widget_set_double_buffered (GTK_WIDGET (my d_widget), false);
+		gtk_widget_set_double_buffered (GTK_WIDGET (my d_widget), FALSE);
 	#elif cocoa
 		GuiCocoaDrawingArea *drawingArea = [[GuiCocoaDrawingArea alloc] init];
 		my d_widget = (GuiObject) drawingArea;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[drawingArea   setUserData: me.get()];
+		[drawingArea   setUserData: me];
 		if (keyCallback) {
 			[[drawingArea window]   makeFirstResponder: drawingArea];   // needed in DemoWindow
 		}
     #elif win
 		my d_widget = _Gui_initializeWidget (xmDrawingAreaWidgetClass, parent -> d_widget, U"drawingArea");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> window = CreateWindowEx (0, Melder_peek32toW (_GuiWin_getDrawingAreaClassName ()), L"drawingArea",
 			WS_CHILD | WS_BORDER | WS_CLIPSIBLINGS,
-			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height, my d_widget -> parent -> window, nullptr, theGui.instance, nullptr);
+			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height, my d_widget -> parent -> window, NULL, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmDrawingAreaWidgetClass, parent -> d_widget, U"drawingArea");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiDrawingArea GuiDrawingArea_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags)
 {
 	GuiDrawingArea me = GuiDrawingArea_create (parent, left, right, top, bottom, exposeCallback, clickCallback, keyCallback, resizeCallback, boss, flags);
@@ -563,13 +565,13 @@ GuiDrawingArea GuiDrawingArea_createShown (GuiForm parent, int left, int right,
 }
 
 GuiDrawingArea GuiDrawingArea_create (GuiScrolledWindow parent, int width, int height,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 /* flags */)
 {
-	autoGuiDrawingArea me = Thing_new (GuiDrawingArea);
+	GuiDrawingArea me = Thing_new (GuiDrawingArea);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_exposeCallback = exposeCallback;
@@ -588,45 +590,45 @@ GuiDrawingArea GuiDrawingArea_create (GuiScrolledWindow parent, int width, int h
 			| GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK
 			| GDK_POINTER_MOTION_HINT_MASK);                    // receive fewer motion notify events (the cb might take time)
 		gtk_widget_set_events (GTK_WIDGET (my d_widget), mask);
-		g_signal_connect (G_OBJECT (my d_widget), "expose-event",         G_CALLBACK (_GuiGtkDrawingArea_exposeCallback),  me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "destroy",              G_CALLBACK (_GuiGtkDrawingArea_destroyCallback), me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "button-press-event",   G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "button-release-event", G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		g_signal_connect (G_OBJECT (my d_widget), "motion-notify-event",  G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me.get());
-		if (parent) {
+		g_signal_connect (G_OBJECT (my d_widget), "expose-event",         G_CALLBACK (_GuiGtkDrawingArea_exposeCallback),  me);
+		g_signal_connect (G_OBJECT (my d_widget), "destroy",              G_CALLBACK (_GuiGtkDrawingArea_destroyCallback), me);
+		g_signal_connect (G_OBJECT (my d_widget), "button-press-event",   G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		g_signal_connect (G_OBJECT (my d_widget), "button-release-event", G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		g_signal_connect (G_OBJECT (my d_widget), "motion-notify-event",  G_CALLBACK (_GuiGtkDrawingArea_clickCallback),   me);
+		if (parent != NULL) {
 			g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (GTK_WIDGET (parent -> d_widget))), "key-press-event",
-				G_CALLBACK (_GuiGtkDrawingArea_keyCallback), me.get());
+				G_CALLBACK (_GuiGtkDrawingArea_keyCallback), me);
 		}
-		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiGtkDrawingArea_resizeCallback), me.get());
-		_GuiObject_setUserData (my d_widget, me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiGtkDrawingArea_resizeCallback), me);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInScrolledWindow (my d_widget, width, height, parent);
-		gtk_widget_set_double_buffered (GTK_WIDGET (my d_widget), false);
+		gtk_widget_set_double_buffered (GTK_WIDGET (my d_widget), FALSE);
 	#elif cocoa
 		GuiCocoaDrawingArea *drawingArea = [[GuiCocoaDrawingArea alloc] init];
 		my d_widget = (GuiObject) drawingArea;
 		my v_positionInScrolledWindow (my d_widget, width, height, parent);
-		[drawingArea setUserData: me.get()];
+		[drawingArea setUserData: me];
     #elif win
 		my d_widget = _Gui_initializeWidget (xmDrawingAreaWidgetClass, parent -> d_widget, U"drawingArea");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> window = CreateWindowEx (0, Melder_peek32toW (_GuiWin_getDrawingAreaClassName ()), L"drawingArea",
 			WS_CHILD | WS_BORDER | WS_CLIPSIBLINGS,
-			0, 0, my d_widget -> width, my d_widget -> height, my d_widget -> parent -> window, nullptr, theGui.instance, nullptr);
+			0, 0, my d_widget -> width, my d_widget -> height, my d_widget -> parent -> window, NULL, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
 		my v_positionInScrolledWindow (my d_widget, width, height, parent);
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmDrawingAreaWidgetClass, parent -> d_widget, U"drawingArea");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInScrolledWindow (my d_widget, width, height, parent);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiDrawingArea GuiDrawingArea_createShown (GuiScrolledWindow parent, int width, int height,
-	GuiDrawingArea_ExposeCallback exposeCallback,
-	GuiDrawingArea_ClickCallback clickCallback,
-	GuiDrawingArea_KeyCallback keyCallback,
-	GuiDrawingArea_ResizeCallback resizeCallback, Thing boss,
+	void (*exposeCallback) (void *boss, GuiDrawingAreaExposeEvent event),
+	void (*clickCallback) (void *boss, GuiDrawingAreaClickEvent event),
+	void (*keyCallback) (void *boss, GuiDrawingAreaKeyEvent event),
+	void (*resizeCallback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss,
 	uint32 flags)
 {
 	GuiDrawingArea me = GuiDrawingArea_create (parent, width, height, exposeCallback, clickCallback, keyCallback, resizeCallback, boss, flags);
@@ -642,17 +644,17 @@ void GuiDrawingArea_setSwipable (GuiDrawingArea me, GuiScrollBar horizontalScrol
 	#endif
 }
 
-void GuiDrawingArea_setExposeCallback (GuiDrawingArea me, GuiDrawingArea_ExposeCallback callback, Thing boss) {
+void GuiDrawingArea_setExposeCallback (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaExposeEvent event), void *boss) {
 	my d_exposeCallback = callback;
 	my d_exposeBoss = boss;
 }
 
-void GuiDrawingArea_setClickCallback (GuiDrawingArea me, GuiDrawingArea_ClickCallback callback, Thing boss) {
+void GuiDrawingArea_setClickCallback (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaClickEvent event), void *boss) {
 	my d_clickCallback = callback;
 	my d_clickBoss = boss;
 }
 
-void GuiDrawingArea_setResizeCallback (GuiDrawingArea me, GuiDrawingArea_ResizeCallback callback, Thing boss) {
+void GuiDrawingArea_setResizeCallback (GuiDrawingArea me, void (*callback) (void *boss, GuiDrawingAreaResizeEvent event), void *boss) {
 	my d_resizeCallback = callback;
 	my d_resizeBoss = boss;
 }
diff --git a/sys/GuiFileSelect.cpp b/sys/GuiFileSelect.cpp
index 45fbb6f..30a084e 100644
--- a/sys/GuiFileSelect.cpp
+++ b/sys/GuiFileSelect.cpp
@@ -23,30 +23,30 @@
 	#include <Shlobj.h>
 #endif
 
-autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *title, bool allowMultipleFiles) {
-	structMelderDir saveDir { { 0 } };
+SortedSetOfString GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *title, bool allowMultipleFiles) {
+	structMelderDir saveDir = { { 0 } };
 	Melder_getDefaultDir (& saveDir);
-	autoStringSet me = StringSet_create ();
+	autoSortedSetOfString me = SortedSetOfString_create ();
 	#if gtk
 		(void) parent;
 		static structMelderDir dir;
-		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), nullptr, GTK_FILE_CHOOSER_ACTION_OPEN,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr);
+		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
 		gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), allowMultipleFiles);
 		if (MelderDir_isNull (& dir))   // first time?
 			Melder_getDefaultDir (& dir);
 		gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), Melder_peek32to8 (Melder_dirToPath (& dir)));
 		if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
 			char *infolderName_utf8 = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dialog));
-			if (infolderName_utf8) {
+			if (infolderName_utf8 != NULL) {
 				char32 *infolderName = Melder_peek8to32 (infolderName_utf8);   // dangle
 				Melder_pathToDir (infolderName, & dir);
 				g_free (infolderName_utf8);
 			}
 			GSList *infileNames_list = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (dialog));
-			for (GSList *element = infileNames_list; element != nullptr; element = g_slist_next (element)) {
+			for (GSList *element = infileNames_list; element != NULL; element = g_slist_next (element)) {
 				char *infileName_utf8 = (char *) element -> data;
-				my addString_copy (Melder_peek8to32 (infileName_utf8));
+				SortedSetOfString_addString (me.peek(), Melder_peek8to32 (infileName_utf8));
 				g_free (infileName_utf8);
 			}
 			g_slist_free (infileNames_list);
@@ -61,9 +61,9 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 		[openPanel setCanChooseDirectories: NO];
 		if ([openPanel runModal] == NSFileHandlingPanelOKButton) {
 			for (NSURL *url in [openPanel URLs]) {
-				structMelderFile file { 0 };
+				structMelderFile file = { 0 };
 				Melder_8bitFileRepresentationToStr32_inline ([[url path] UTF8String], file. path);   // BUG: unsafe buffer
-				my addString_copy (file. path);
+				SortedSetOfString_addString (me.peek(), file. path);
 			}
 		}
 		setlocale (LC_ALL, "en_US");
@@ -76,7 +76,7 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 		dialogOptions. optionFlags |= kNavDontAutoTranslate;
 		//dialogOptions. windowTitle = (CFStringRef) Melder_peek32toCfstring (title);
 		if (! allowMultipleFiles) dialogOptions. optionFlags &= ~ kNavAllowMultipleFiles;
-		err = NavCreateChooseFileDialog (& dialogOptions, nullptr, nullptr, nullptr, nullptr, nullptr, & dialogRef);
+		err = NavCreateChooseFileDialog (& dialogOptions, NULL, NULL, NULL, NULL, NULL, & dialogRef);
 		if (err == noErr) {
 			NavReplyRecord reply;
 			[(NSOpenPanel *) dialogRef setTitle: (NSString *) Melder_peek32toCfstring (title)];
@@ -90,10 +90,10 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 					DescType typeCode;
 					Size actualSize = 0;
 					FSRef machFile;
-					structMelderFile file { 0 };
+					structMelderFile file = { 0 };
 					if ((err = AEGetNthPtr (& reply. selection, ifile, typeFSRef, & keyWord, & typeCode, & machFile, sizeof (FSRef), & actualSize)) == noErr)
 						Melder_machToFile (& machFile, & file);
-					my addString_copy (Melder_fileToPath (& file));
+					SortedSetOfString_addString (me.peek(), Melder_fileToPath (& file));
 				}
 				NavDisposeReply (& reply);
 			}
@@ -105,24 +105,24 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 		static WCHAR fullFileNameW [3000+2];
 		ZeroMemory (& openFileName, sizeof (OPENFILENAMEW));
 		openFileName. lStructSize = sizeof (OPENFILENAMEW);
-		openFileName. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : nullptr;
-		openFileName. hInstance = nullptr;
+		openFileName. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : NULL;
+		openFileName. hInstance = NULL;
 		openFileName. lpstrFilter = L"All Files\0*.*\0";
 		ZeroMemory (fullFileNameW, (3000+2) * sizeof (WCHAR));
-		openFileName. lpstrCustomFilter = nullptr;
+		openFileName. lpstrCustomFilter = NULL;
 		openFileName. nMaxCustFilter = 0;
 		openFileName. lpstrFile = fullFileNameW;
 		openFileName. nMaxFile = 3000;
-		openFileName. lpstrFileTitle = nullptr;
+		openFileName. lpstrFileTitle = NULL;
 		openFileName. nMaxFileTitle = 0;
-		openFileName. lpstrInitialDir = nullptr;
+		openFileName. lpstrInitialDir = NULL;
 		openFileName. lpstrTitle = Melder_peek32toW (title);
 		openFileName. Flags = OFN_EXPLORER | OFN_LONGNAMES | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
 			| (allowMultipleFiles ? OFN_ALLOWMULTISELECT : 0);
-		openFileName. lpstrDefExt = nullptr;
-		openFileName. lpfnHook = nullptr;
-		openFileName. lpTemplateName = nullptr;
-		openFileName. pvReserved = nullptr;
+		openFileName. lpstrDefExt = NULL;
+		openFileName. lpfnHook = NULL;
+		openFileName. lpTemplateName = NULL;
+		openFileName. pvReserved = NULL;
 		openFileName. dwReserved = 0;
 		openFileName. FlagsEx = 0;
 		OSVERSIONINFO osVersionInfo;
@@ -135,7 +135,7 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 				/*
 				 * The user selected one file.
 				 */
-				my addString_copy (Melder_peekWto32 (fullFileNameW));
+				SortedSetOfString_addString (me.peek(), Melder_peekWto32 (fullFileNameW));
 			} else {
 				/*
 				 * The user selected multiple files.
@@ -146,26 +146,26 @@ autoStringSet GuiFileSelect_getInfileNames (GuiWindow parent, const char32 *titl
 				for (const WCHAR *p = & fullFileNameW [firstFileNameLength + 1]; *p != L'\0'; p += wcslen (p) + 1) {
 					structMelderFile file { 0 };
 					MelderDir_getFile (& dir, Melder_peekWto32 (p), & file);
-					my addString_copy (Melder_fileToPath (& file));
+					SortedSetOfString_addString (me.peek(), Melder_fileToPath (& file));
 				}
 			}
 		}
 		setlocale (LC_ALL, "C");
 	#endif
 	Melder_setDefaultDir (& saveDir);
-	return me;
+	return me.transfer();
 }
 
 char32 * GuiFileSelect_getOutfileName (GuiWindow parent, const char32 *title, const char32 *defaultName) {
 	structMelderDir saveDir { { 0 } };
 	Melder_getDefaultDir (& saveDir);
-	char32 *outfileName = nullptr;
+	char32 *outfileName = NULL;
 	#if gtk
 		(void) parent;
 		static structMelderFile file;
-		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), nullptr, GTK_FILE_CHOOSER_ACTION_SAVE,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr);
-		gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), true);
+		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
+			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
+		gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
 		if (file. path [0] != '\0') {
 			gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), Melder_peek32to8 (file. path));
 		}
@@ -209,7 +209,7 @@ char32 * GuiFileSelect_getOutfileName (GuiWindow parent, const char32 *title, co
 		//dialogOptions. message = (CFStringRef) Melder_peek32toCfstring (title);
 		dialogOptions. saveFileName = (CFStringRef) Melder_peek32toCfstring (lastSlash ? lastSlash + 1 : defaultName);
 		dialogOptions. optionFlags |= kNavNoTypePopup;
-		err = NavCreatePutFileDialog (& dialogOptions, 0, 0, nullptr, nullptr, & dialogRef);
+		err = NavCreatePutFileDialog (& dialogOptions, 0, 0, NULL, NULL, & dialogRef);
 		if (err == noErr) {
 			NavReplyRecord reply;
 			NavDialogRun (dialogRef);
@@ -253,17 +253,17 @@ char32 * GuiFileSelect_getOutfileName (GuiWindow parent, const char32 *title, co
 		wcsncpy (fullFileNameW, Melder_peek32toW (defaultName), 300+2);
 		fullFileNameW [300+1] = L'\0';
 		openFileName. lStructSize = sizeof (OPENFILENAMEW);
-		openFileName. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : nullptr;
-		openFileName. lpstrFilter = nullptr;   // like *.txt
+		openFileName. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : NULL;
+		openFileName. lpstrFilter = NULL;   // like *.txt
 		openFileName. lpstrCustomFilter = customFilter;
 		openFileName. nMaxCustFilter = 100;
 		openFileName. lpstrFile = fullFileNameW;
 		openFileName. nMaxFile = 300;
-		openFileName. lpstrFileTitle = nullptr;
-		openFileName. lpstrInitialDir = nullptr;
+		openFileName. lpstrFileTitle = NULL;
+		openFileName. lpstrInitialDir = NULL;
 		openFileName. lpstrTitle = Melder_peek32toW (title);
 		openFileName. Flags = OFN_LONGNAMES | OFN_OVERWRITEPROMPT | OFN_EXPLORER | OFN_HIDEREADONLY;
-		openFileName. lpstrDefExt = nullptr;
+		openFileName. lpstrDefExt = NULL;
 		if (GetSaveFileNameW (& openFileName)) {
 			outfileName = Melder_Wto32 (fullFileNameW);
 		}
@@ -274,14 +274,14 @@ char32 * GuiFileSelect_getOutfileName (GuiWindow parent, const char32 *title, co
 }
 
 char32 * GuiFileSelect_getDirectoryName (GuiWindow parent, const char32 *title) {
-	structMelderDir saveDir { { 0 } };
+	structMelderDir saveDir = { { 0 } };
 	Melder_getDefaultDir (& saveDir);
-	char32 *directoryName = nullptr;
+	char32 *directoryName = NULL;
 	#if gtk
 		(void) parent;
 		static structMelderFile file;
-		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), nullptr, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, "Choose", GTK_RESPONSE_ACCEPT, nullptr);
+		GuiObject dialog = gtk_file_chooser_dialog_new (Melder_peek32to8 (title), NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, "Choose", GTK_RESPONSE_ACCEPT, NULL);
 		if (file. path [0] != '\0') {
 			gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), Melder_peek32to8 (file. path));
 		}
@@ -319,7 +319,7 @@ char32 * GuiFileSelect_getDirectoryName (GuiWindow parent, const char32 *title)
 		dialogOptions. windowTitle = (CFStringRef) Melder_peek32toCfstring (title);
 		dialogOptions. optionFlags |= kNavDontAutoTranslate;
 		dialogOptions. optionFlags &= ~ kNavAllowMultipleFiles;
-		err = NavCreateChooseFolderDialog (& dialogOptions, nullptr, nullptr, nullptr, & dialogRef);
+		err = NavCreateChooseFolderDialog (& dialogOptions, NULL, NULL, NULL, & dialogRef);
 		if (err == noErr) {
 			NavReplyRecord reply;
 			NavDialogRun (dialogRef);
@@ -346,14 +346,14 @@ char32 * GuiFileSelect_getDirectoryName (GuiWindow parent, const char32 *title)
 		static WCHAR fullFileNameW [3000+2];
 		static bool comInited = false;
 		if (! comInited) {
-			CoInitializeEx (nullptr, COINIT_APARTMENTTHREADED);
+			CoInitializeEx (NULL, COINIT_APARTMENTTHREADED);
 			comInited = true;
 		}
 		static BROWSEINFO info;
-		info. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : nullptr;
+		info. hwndOwner = parent && parent -> d_xmShell ? (HWND) XtWindow (parent -> d_xmShell) : NULL;
 		info. ulFlags = BIF_USENEWUI;
-		info. pidlRoot = nullptr;   // everything on the computer should be browsable
-		info. pszDisplayName = nullptr;   // this would only give the bare directory name, not the full path
+		info. pidlRoot = NULL;   // everything on the computer should be browsable
+		info. pszDisplayName = NULL;   // this would only give the bare directory name, not the full path
 		info. lpszTitle = Melder_peek32toW (title);
 		LPITEMIDLIST idList = SHBrowseForFolder (& info);
 		SHGetPathFromIDList (idList, fullFileNameW);
diff --git a/sys/GuiForm.cpp b/sys/GuiForm.cpp
index c2228ba..d82f468 100644
--- a/sys/GuiForm.cpp
+++ b/sys/GuiForm.cpp
@@ -39,7 +39,7 @@ Thing_implement (GuiForm, GuiControl, 0);
 
 GuiForm GuiForm_createInScrolledWindow (GuiScrolledWindow parent)
 {
-	autoGuiForm me = Thing_new (GuiForm);
+	GuiForm me = Thing_new (GuiForm);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
@@ -47,19 +47,19 @@ GuiForm GuiForm_createInScrolledWindow (GuiScrolledWindow parent)
 		gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (parent -> d_widget), GTK_WIDGET (my d_widget));
 	#elif cocoa
 	#elif motif
-		//my d_widget = XmCreateRowColumn (parent -> d_widget, "menu", nullptr, 0);
-		my d_widget = XmCreateForm (parent -> d_widget, "menu", nullptr, 0);
+		//my d_widget = XmCreateRowColumn (parent -> d_widget, "menu", NULL, 0);
+		my d_widget = XmCreateForm (parent -> d_widget, "menu", NULL, 0);
 	#endif
-	GuiThing_show (me.get());
+	GuiThing_show (me);
 
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkForm_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkForm_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifForm_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifForm_destroyCallback, me);
 	#endif
 
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 /* End of file GuiForm.cpp */
diff --git a/sys/GuiLabel.cpp b/sys/GuiLabel.cpp
index a88849a..65e4b28 100644
--- a/sys/GuiLabel.cpp
+++ b/sys/GuiLabel.cpp
@@ -21,6 +21,8 @@
 
 Thing_implement (GuiLabel, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if gtk
 	#define iam_label  GuiLabel me = (GuiLabel) _GuiObject_getUserData (widget)
 #elif cocoa
@@ -45,11 +47,11 @@ Thing_implement (GuiLabel, GuiControl, 0);
 		trace (U"deleting a label");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiLabel));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiLabel));
 		d_userData = static_cast <GuiLabel> (userData);
 	}
 	@end
@@ -70,14 +72,14 @@ Thing_implement (GuiLabel, GuiControl, 0);
 GuiLabel GuiLabel_create (GuiForm parent, int left, int right, int top, int bottom,
 	const char32 *labelText, uint32 flags)
 {
-	autoGuiLabel me = Thing_new (GuiLabel);
+	GuiLabel me = Thing_new (GuiLabel);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
 		my d_widget = gtk_label_new (Melder_peek32to8 (labelText));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkLabel_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkLabel_destroyCallback), me);
 		gtk_misc_set_alignment (GTK_MISC (my d_widget), flags & GuiLabel_RIGHT ? 1.0 : flags & GuiLabel_CENTRE ? 0.5 : 0.0, 0.5);
 	#elif cocoa
 		trace (U"create");
@@ -86,7 +88,7 @@ GuiLabel GuiLabel_create (GuiForm parent, int left, int right, int top, int bott
 		trace (U"position");
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		trace (U"set user data");
-		[label setUserData: me.get()];
+		[label setUserData: me];
 		trace (U"set bezel style");
 		[label setBezelStyle: NSTextFieldRoundedBezel];
 		trace (U"set bordered");
@@ -103,32 +105,32 @@ GuiLabel GuiLabel_create (GuiForm parent, int left, int right, int top, int bott
 		[label setFont: theLabelFont];
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmLabelWidgetClass, parent -> d_widget, labelText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> window = CreateWindow (L"static", Melder_peek32toW (_GuiWin_expandAmpersands (my d_widget -> name)),
 			WS_CHILD
 			| ( flags & GuiLabel_RIGHT ? SS_RIGHT : flags & GuiLabel_CENTRE ? SS_CENTER : SS_LEFT )
 			| SS_CENTERIMAGE,
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, nullptr);
+			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
-		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), false);
+		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), FALSE);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmLabelWidgetClass, parent -> d_widget, labelText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		ControlFontStyleRec macFontStyleRecord = { 0 };   // BUG: _GuiNativeControl_setFont will reset alignment (should do inheritance)
 		macFontStyleRecord. flags = kControlUseFontMask | kControlUseSizeMask | kControlUseJustMask;
 		macFontStyleRecord. font = systemFont;
 		macFontStyleRecord. size = 13;
 		macFontStyleRecord. just = ( flags & GuiLabel_RIGHT ? teFlushRight : flags & GuiLabel_CENTRE ? teCenter : teFlushLeft );
-		CreateStaticTextControl (my d_widget -> macWindow, & my d_widget -> rect, nullptr, & macFontStyleRecord, & my d_widget -> nat.control.handle);
-		Melder_assert (my d_widget -> nat.control.handle);
+		CreateStaticTextControl (my d_widget -> macWindow, & my d_widget -> rect, NULL, & macFontStyleRecord, & my d_widget -> nat.control.handle);
+		Melder_assert (my d_widget -> nat.control.handle != NULL);
 		SetControlReference (my d_widget -> nat.control.handle, (long) my d_widget);
 		my d_widget -> isControl = true;
 		_GuiNativeControl_setTitle (my d_widget);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiLabel GuiLabel_createShown (GuiForm parent, int left, int right, int top, int bottom,
diff --git a/sys/GuiList.cpp b/sys/GuiList.cpp
index cfe1aef..b29482b 100644
--- a/sys/GuiList.cpp
+++ b/sys/GuiList.cpp
@@ -19,7 +19,7 @@
 
 /*
  * pb 2007/12/26 abstraction from Motif
- * pb 2009/01/31 NUMlvector_free has to be followed by assigning a nullptr
+ * pb 2009/01/31 NUMlvector_free has to be followed by assigning a NULL
  * fb 2010/02/23 GTK
  * pb 2010/06/14 HandleControlClick
  * pb 2010/07/05 blockSelectionChangedCallback
@@ -32,6 +32,8 @@
 
 Thing_implement (GuiList, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_list \
 		Melder_assert (widget -> widgetClass == xmListWidgetClass); \
@@ -54,9 +56,9 @@ Thing_implement (GuiList, GuiControl, 0);
 	}
 	static void _GuiGtkList_selectionChangedCallback (GtkTreeSelection *sel, gpointer void_me) {
 		iam (GuiList);
-		if (my d_selectionChangedCallback && ! my d_blockValueChangedCallbacks) {
+		if (my d_selectionChangedCallback != NULL && ! my d_blockValueChangedCallbacks) {
 			trace (U"Selection changed.");
-			struct structGuiList_SelectionChangedEvent event { me };
+			struct structGuiListEvent event { me };
 			my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 	}
@@ -72,7 +74,7 @@ Thing_implement (GuiList, GuiControl, 0);
 		[_contents release];
 		GuiThing me = d_userData;
 		forget (me);
-		//Melder_casual (U"deleting a list");
+		Melder_casual (U"deleting a list");
 		[super dealloc];
 	}
 
@@ -117,11 +119,11 @@ Thing_implement (GuiList, GuiControl, 0);
 	/*
 	 * Implement GuiCocoaAny protocol.
 	 */
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiList));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiList));
 		d_userData = static_cast <GuiList> (userData);
 	}
 
@@ -137,7 +139,7 @@ Thing_implement (GuiList, GuiControl, 0);
 		trace (U"enter");
 		GuiList me = d_userData;
 		if (me && my d_selectionChangedCallback) {
-			//struct structGuiList_SelectionChangedEvent event { me };
+			struct structGuiListEvent event { me };
 			//my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 	}
@@ -166,7 +168,7 @@ Thing_implement (GuiList, GuiControl, 0);
 		trace (U"enter");
 		GuiList me = d_userData;
 		if (me && my d_selectionChangedCallback && ! my d_blockValueChangedCallbacks) {
-			struct structGuiList_SelectionChangedEvent event { me };
+			struct structGuiListEvent event { me };
 			my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 	}
@@ -183,8 +185,8 @@ Thing_implement (GuiList, GuiControl, 0);
 	}
 	void _GuiWinList_handleClick (GuiObject widget) {
 		iam_list;
-		if (my d_selectionChangedCallback) {
-			struct structGuiList_SelectionChangedEvent event { me };
+		if (my d_selectionChangedCallback != NULL) {
+			struct structGuiListEvent event { me };
 			my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 	}
@@ -223,10 +225,10 @@ Thing_implement (GuiList, GuiControl, 0);
 	void _GuiMacList_handleControlClick (GuiObject widget, EventRecord *macEvent) {
 		iam_list;
 		_GuiMac_clipOnParent (widget);
-		bool pushed = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, nullptr);
+		bool pushed = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, NULL);
 		GuiMac_clipOff ();
 		if (pushed && my d_selectionChangedCallback) {
-			struct structGuiList_SelectionChangedEvent event { me };
+			struct structGuiListEvent event { me };
 			my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 	}
@@ -236,11 +238,11 @@ Thing_implement (GuiList, GuiControl, 0);
 		bool doubleClick = LClick (macEvent -> where, macEvent -> modifiers, my d_macListHandle);
 		GuiMac_clipOff ();
 		if (my d_selectionChangedCallback) {
-			struct structGuiList_SelectionChangedEvent event { me };
+			struct structGuiListEvent event { me };
 			my d_selectionChangedCallback (my d_selectionChangedBoss, & event);
 		}
 		if (doubleClick && my d_doubleClickCallback) {
-			struct structGuiList_DoubleClickEvent event { me };
+			struct structGuiListEvent event { me };
 			my d_doubleClickCallback (my d_doubleClickBoss, & event);
 		}
 	}
@@ -280,7 +282,7 @@ Thing_implement (GuiList, GuiControl, 0);
 		switch (message) {
 			case lDrawMsg:
 			case lHiliteMsg:   // We redraw everything, even when just highlighting. The reason is anti-aliasing.
-				Melder_assert (widget);
+				Melder_assert (widget != NULL);
 				SetPortWindowPort (widget -> macWindow);
 				_GuiMac_clipOnParent (widget);
 				/*
@@ -308,10 +310,10 @@ Thing_implement (GuiList, GuiControl, 0);
 				CGContextRef macGraphicsContext;
 				QDBeginCGContext (GetWindowPort (widget -> macWindow), & macGraphicsContext);
 				int shellHeight = GuiMac_clipOn_graphicsContext (widget, macGraphicsContext);
-				static ATSUFontFallbacks fontFallbacks = nullptr;
-				if (! fontFallbacks) {
+				static ATSUFontFallbacks fontFallbacks = NULL;
+				if (fontFallbacks == NULL) {
 					ATSUCreateFontFallbacks (& fontFallbacks);
-					ATSUSetObjFontFallbacks (fontFallbacks, 0, nullptr, kATSUDefaultFontFallbacks);
+					ATSUSetObjFontFallbacks (fontFallbacks, 0, NULL, kATSUDefaultFontFallbacks);
 				}
 				char *text_utf8 = (char *) *(*handle) -> cells + dataOffset;
 				static char buffer [30001];
@@ -349,7 +351,7 @@ Thing_implement (GuiList, GuiControl, 0);
 				GuiMac_clipOff ();
 				break;
 	/*		case lHiliteMsg:
-				Melder_assert (me);
+				Melder_assert (me != NULL);
 				SetPortWindowPort (my macWindow);
 				_GuiMac_clipOnParent (me);
 				LMSetHiliteMode (LMGetHiliteMode () & ~ 128L);
@@ -368,39 +370,39 @@ enum {
 #endif
 
 GuiList GuiList_create (GuiForm parent, int left, int right, int top, int bottom, bool allowMultipleSelection, const char32 *header) {
-	autoGuiList me = Thing_new (GuiList);
+	GuiList me = Thing_new (GuiList);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_allowMultipleSelection = allowMultipleSelection;
 	#if gtk
-		GtkCellRenderer *renderer = nullptr;
-		GtkTreeViewColumn *col = nullptr;
-		GtkTreeSelection *sel = nullptr;
-		GtkListStore *liststore = nullptr;
+		GtkCellRenderer *renderer = NULL;
+		GtkTreeViewColumn *col = NULL;
+		GtkTreeSelection *sel = NULL;
+		GtkListStore *liststore = NULL;
 
 		liststore = gtk_list_store_new (1, G_TYPE_STRING);   // 1 column, of type String (this is a vararg list)
-		GuiObject scrolled = gtk_scrolled_window_new (nullptr, nullptr);
+		GuiObject scrolled = gtk_scrolled_window_new (NULL, NULL);
 		gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 		my d_widget = gtk_tree_view_new_with_model (GTK_TREE_MODEL (liststore));
-		gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (my d_widget), false);
+		gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (my d_widget), FALSE);
 		gtk_container_add (GTK_CONTAINER (scrolled), GTK_WIDGET (my d_widget));
 		gtk_widget_show (GTK_WIDGET (scrolled));   // BUG
 		gtk_tree_view_set_rubber_banding (GTK_TREE_VIEW (my d_widget), allowMultipleSelection ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
 		g_object_unref (liststore);   // Destroys the widget after the list is destroyed
 
-		_GuiObject_setUserData (my d_widget, me.get());
-		_GuiObject_setUserData (scrolled, me.get());   // for resizing
+		_GuiObject_setUserData (my d_widget, me);
+		_GuiObject_setUserData (scrolled, me);   // for resizing
 
 		renderer = gtk_cell_renderer_text_new ();
 		col = gtk_tree_view_column_new ();
-		gtk_tree_view_column_pack_start (col, renderer, true);
+		gtk_tree_view_column_pack_start (col, renderer, TRUE);
 		gtk_tree_view_column_add_attribute (col, renderer, "text", 0);   // zeroeth column
-		if (header) {
+		if (header != NULL) {
 			//gtk_tree_view_column_set_title (col, Melder_peek32to8 (header));
 		}
 		gtk_tree_view_append_column (GTK_TREE_VIEW (my d_widget), col);
 
-		g_object_set_data_full (G_OBJECT (my d_widget), "guiList", me.get(), (GDestroyNotify) _GuiGtkList_destroyCallback);
+		g_object_set_data_full (G_OBJECT (my d_widget), "guiList", me, (GDestroyNotify) _GuiGtkList_destroyCallback); 
 
 /*		GtkCellRenderer *renderer;
 		GtkTreeViewColumn *col;
@@ -409,21 +411,21 @@ GuiList GuiList_create (GuiForm parent, int left, int right, int top, int bottom
 
 		renderer = gtk_cell_renderer_text_new ();
 		col = gtk_tree_view_column_new ();
-		gtk_tree_view_column_pack_start (col, renderer, true);
+		gtk_tree_view_column_pack_start (col, renderer, TRUE);
 		gtk_tree_view_column_add_attribute (col, renderer, "text", COL_ID);
 		gtk_tree_view_column_set_title (col, " ID ");
 		gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
 		
 		renderer = gtk_cell_renderer_text_new ();
 		col = gtk_tree_view_column_new ();
-		gtk_tree_view_column_pack_start (col, renderer, true);
+		gtk_tree_view_column_pack_start (col, renderer, TRUE);
 		gtk_tree_view_column_add_attribute (col, renderer, "text", COL_TYPE);
 		gtk_tree_view_column_set_title (col, " Type ");
 		gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
 
 		renderer = gtk_cell_renderer_text_new ();
 		col = gtk_tree_view_column_new ();
-		gtk_tree_view_column_pack_start (col, renderer, true);
+		gtk_tree_view_column_pack_start (col, renderer, TRUE);
 		gtk_tree_view_column_add_attribute (col, renderer, "text", COL_NAME);
 		gtk_tree_view_column_set_title (col, " Name ");
 		gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
@@ -436,41 +438,41 @@ GuiList GuiList_create (GuiForm parent, int left, int right, int top, int bottom
 			gtk_tree_selection_set_mode (sel, GTK_SELECTION_SINGLE);
 		}
 		my v_positionInForm (scrolled, left, right, top, bottom, parent);
-		g_signal_connect (sel, "changed", G_CALLBACK (_GuiGtkList_selectionChangedCallback), me.get());
+		g_signal_connect (sel, "changed", G_CALLBACK (_GuiGtkList_selectionChangedCallback), me);
 	#elif cocoa
 		GuiCocoaList *list = [[GuiCocoaList alloc] init];
 		my d_widget = (GuiObject) list;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		[[list tableView] setAllowsMultipleSelection: allowMultipleSelection];
-		[list setUserData: me.get()];
+		[list setUserData:me];
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmListWidgetClass, parent -> d_widget, U"list");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> window = CreateWindowEx (0, L"listbox", L"list",
 			WS_CHILD | WS_BORDER | WS_VSCROLL | LBS_NOTIFY | WS_CLIPSIBLINGS |
 			( allowMultipleSelection ? LBS_EXTENDEDSEL : 0 ),
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, nullptr, theGui.instance, nullptr);
+			my d_widget -> parent -> window, NULL, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
-		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), false);
+		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), FALSE);
 		/*if (MEMBER (my parent, ScrolledWindow)) {
 			XtDestroyWidget (my d_widget -> parent -> motiff.scrolledWindow.horizontalBar);
-			my d_widget -> parent -> motiff.scrolledWindow.horizontalBar = nullptr;
+			my d_widget -> parent -> motiff.scrolledWindow.horizontalBar = NULL;
 			XtDestroyWidget (my d_widget -> parent -> motiff.scrolledWindow.verticalBar);
-			my d_widget -> parent -> motiff.scrolledWindow.verticalBar = nullptr;
+			my d_widget -> parent -> motiff.scrolledWindow.verticalBar = NULL;
 		}*/
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#elif mac
-		my d_xmScrolled = XmCreateScrolledWindow (parent -> d_widget, "scrolled", nullptr, 0);
+		my d_xmScrolled = XmCreateScrolledWindow (parent -> d_widget, "scrolled", NULL, 0);
 		my v_positionInForm (my d_xmScrolled, left, right, top, bottom, parent);
 		my d_xmList = my d_widget = _Gui_initializeWidget (xmListWidgetClass, my d_xmScrolled, U"list");
-		_GuiObject_setUserData (my d_xmScrolled, me.get());
-		_GuiObject_setUserData (my d_xmList, me.get());
-		Rect dataBounds { 0, 0, 0, 1 };
+		_GuiObject_setUserData (my d_xmScrolled, me);
+		_GuiObject_setUserData (my d_xmList, me);
+		Rect dataBounds = { 0, 0, 0, 1 };
 		Point cSize;
 		SetPt (& cSize, my d_xmList -> rect.right - my d_xmList -> rect.left + 1, CELL_HEIGHT);
 		static ListDefSpec listDefSpec;
-		if (! listDefSpec. u. userProc) {
+		if (listDefSpec. u. userProc == NULL) {
 			listDefSpec. defType = kListDefUserProcType;
 			listDefSpec. u. userProc = mac_listDefinition;
 		}
@@ -479,9 +481,9 @@ GuiList GuiList_create (GuiForm parent, int left, int right, int top, int bottom
 		SetListRefCon (my d_macListHandle, (long) my d_xmList);
 		if (allowMultipleSelection)
 			SetListSelectionFlags (my d_macListHandle, lExtendDrag | lNoRect);
-		XtVaSetValues (my d_xmList, XmNwidth, right > 0 ? right - left + 100 : 530, nullptr);
+		XtVaSetValues (my d_xmList, XmNwidth, right > 0 ? right - left + 100 : 530, NULL);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiList GuiList_createShown (GuiForm parent, int left, int right, int top, int bottom, bool allowMultipleSelection, const char32 *header) {
@@ -513,7 +515,7 @@ void GuiList_deleteItem (GuiList me, long position) {
 	#if gtk
 		GtkTreeIter iter;
 		GtkTreeModel *tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget));
-		if (gtk_tree_model_iter_nth_child (tree_model, & iter, nullptr, (gint) (position - 1))) {
+		if (gtk_tree_model_iter_nth_child (tree_model, & iter, NULL, (gint) (position - 1))) {
 			gtk_list_store_remove (GTK_LIST_STORE (tree_model), & iter);
 		}
 	#elif cocoa
@@ -527,7 +529,7 @@ void GuiList_deleteItem (GuiList me, long position) {
 		LDelRow (1, position - 1, my d_macListHandle);
 		GuiMac_clipOff ();
 		long n = (** my d_macListHandle). dataBounds. bottom;
-		XtVaSetValues (my d_widget, XmNheight, n * CELL_HEIGHT, nullptr);
+		XtVaSetValues (my d_widget, XmNheight, n * CELL_HEIGHT, NULL);
 	#endif
 }
 
@@ -554,13 +556,13 @@ void GuiList_deselectItem (GuiList me, long position) {
 	GuiControlBlockValueChangedCallbacks block (me);
 	#if gtk
 		GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (my d_widget));
-//		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
-//		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position, -1 /* terminator */);
+/*		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
+		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position);*/
 		GtkTreeIter iter;
 //		gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store), & iter, path);
 //		gtk_tree_path_free (path);
 		GtkTreeModel *tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget));
-		if (gtk_tree_model_iter_nth_child (tree_model, & iter, nullptr, (gint) (position - 1))) {
+		if (gtk_tree_model_iter_nth_child (tree_model, & iter, NULL, (gint) (position - 1))) {
 			gtk_tree_selection_unselect_iter (selection, & iter);
 		}
 	#elif cocoa
@@ -580,7 +582,7 @@ void GuiList_deselectItem (GuiList me, long position) {
 
 long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelectedPositions) {
 	*numberOfSelectedPositions = 0;
-	long *selectedPositions = nullptr;
+	long *selectedPositions = NULL;
 	#if gtk
 		GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (my d_widget));
 		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
@@ -590,13 +592,13 @@ long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelectedPositions
 			long ipos = 1;
 			*numberOfSelectedPositions = n;
 			selectedPositions = NUMvector <long> (1, *numberOfSelectedPositions);
-			Melder_assert (selectedPositions);
-			for (GList *l = g_list_first (list); l != nullptr; l = g_list_next (l)) {
+			Melder_assert (selectedPositions != NULL);
+			for (GList *l = g_list_first (list); l != NULL; l = g_list_next (l)) {
 				gint *index = gtk_tree_path_get_indices ((GtkTreePath *) l -> data);
 				selectedPositions [ipos] = index [0] + 1;
 				ipos ++;
 			}
-			g_list_foreach (list, (GFunc) gtk_tree_path_free, nullptr);
+			g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
 			g_list_free (list);
 		}
 		return selectedPositions;
@@ -627,7 +629,7 @@ long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelectedPositions
 		}
 		*numberOfSelectedPositions = n;
 		selectedPositions = NUMvector <long> (1, *numberOfSelectedPositions);
-		Melder_assert (selectedPositions);
+		Melder_assert (selectedPositions != NULL);
 		for (long ipos = 1; ipos <= *numberOfSelectedPositions; ipos ++) {
 			selectedPositions [ipos] = indices [ipos - 1] + 1;   // convert from zero-based list of zero-based indices
 		}
@@ -647,7 +649,7 @@ long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelectedPositions
 		}
 		if (*numberOfSelectedPositions == 0) {
 			NUMvector_free (selectedPositions, 1);
-			selectedPositions = nullptr;
+			selectedPositions = NULL;
 		}
 	#endif
 	return selectedPositions;
@@ -655,15 +657,8 @@ long * GuiList_getSelectedPositions (GuiList me, long *numberOfSelectedPositions
 
 long GuiList_getBottomPosition (GuiList me) {
 	#if gtk
-		GtkTreePath *path;
-		long position = 1;
-		if (gtk_tree_view_get_visible_range (GTK_TREE_VIEW (my d_widget), nullptr, & path)) {
-			int *indices = gtk_tree_path_get_indices (path);
-			position = indices ? indices[0] + 1 : 1;
-			gtk_tree_path_free (path); // also frees indices !!
-		}
-		trace (U"bottom: ", position);
-		return position;
+		// TODO
+		return 1;
 	#elif cocoa
 		return 1;   // TODO
 	#elif win
@@ -684,8 +679,6 @@ long GuiList_getBottomPosition (GuiList me) {
 		if (bottom < 1) bottom = 1;
 		if (bottom > n) bottom = n;
 		return bottom;
-	#else
-		return 0;
 	#endif
 }
 
@@ -693,7 +686,7 @@ long GuiList_getNumberOfItems (GuiList me) {
 	long numberOfItems = 0;
 	#if gtk
 		GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget));
-		numberOfItems = gtk_tree_model_iter_n_children (model, nullptr);
+		numberOfItems = gtk_tree_model_iter_n_children (model, NULL); 
 	#elif cocoa
 		GuiCocoaList *list = (GuiCocoaList *) my d_widget;
 		numberOfItems = [[list contents] count];
@@ -707,15 +700,8 @@ long GuiList_getNumberOfItems (GuiList me) {
 
 long GuiList_getTopPosition (GuiList me) {
 	#if gtk
-		GtkTreePath *path;
-		long position = 1;
-		if (gtk_tree_view_get_visible_range (GTK_TREE_VIEW (my d_widget), & path, nullptr)) {
-			int *indices = gtk_tree_path_get_indices (path);
-			position = indices ? indices[0] + 1 : 1;
-			gtk_tree_path_free (path); // also frees indices !!
-		}
-		trace (U"top: ", position);
-		return position;
+		// TODO
+		return 1;
 	#elif cocoa
 		return 1;   // TODO
 	#elif win
@@ -733,53 +719,50 @@ long GuiList_getTopPosition (GuiList me) {
 		long n = (** my d_macListHandle). dataBounds. bottom;
 		if (top > n) top = 0;
 		return top;
-	#else
-		return 0;
 	#endif
 }
 
-void GuiList_insertItem (GuiList me, const char32 *itemText /* cattable */, long position_base1) {
-	bool explicitlyInsertAtEnd = ( position_base1 <= 0 );
+void GuiList_insertItem (GuiList me, const char32 *itemText /* cattable */, long position) {
 	GuiControlBlockValueChangedCallbacks block (me);
+	/*
+	 * 'position' is the position of the new item in the list after insertion:
+	 * a value of 1 therefore puts the new item at the top of the list;
+	 * a value of 0 is special: the item is put at the bottom of the list.
+	 */
 	#if gtk
 		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
-		gtk_list_store_insert_with_values (list_store, nullptr, explicitlyInsertAtEnd ? 1000000000 : (gint) position_base1 - 1, COLUMN_STRING, Melder_peek32to8 (itemText), -1);
+		gtk_list_store_insert_with_values (list_store, NULL, (gint) position - 1, COLUMN_STRING, Melder_peek32to8 (itemText), -1);
 		// TODO: Tekst opsplitsen
 		// does GTK know the '0' trick?
-		// it does know about nullptr, to append in another function
+		// it does know about NULL, to append in another function
 	#elif cocoa
-		GuiCocoaList *nativeList = (GuiCocoaList *) my d_widget;
-		NSString *nativeItemText = [[NSString alloc] initWithUTF8String: Melder_peek32to8 (itemText)];
-		if (explicitlyInsertAtEnd) {
-			[[nativeList contents]   addObject: nativeItemText];
-		} else {
-			NSUInteger nativePosition_base0 = (unsigned long) position_base1 - 1;
-			[[nativeList contents]   insertObject: nativeItemText   atIndex: nativePosition_base0];
-		}
-		[nativeItemText release];
-		[[nativeList tableView] reloadData];
+		GuiCocoaList *list = (GuiCocoaList *) my d_widget;
+		NSString *nsString = [[NSString alloc] initWithUTF8String: Melder_peek32to8 (itemText)];
+		if (position)
+			[[list contents]   insertObject: nsString   atIndex: position - 1];   // cocoa lists start with item 0
+		else
+			[[list contents]   addObject: nsString];   // insert at end
+		//Melder_assert ([nsString retainCount] == 2);
+		[nsString release];
+		[[list tableView] reloadData];
 	#elif win
-		HWND nativeList = my d_widget -> window;
-		WCHAR *nativeItemText = Melder_peek32toW (itemText);
-		if (explicitlyInsertAtEnd) {
-			ListBox_AddString (nativeList, nativeItemText);
-		} else {
-			int nativePosition_base0 = position_base1 - 1;
-			ListBox_InsertString (nativeList, nativePosition_base0, nativeItemText);
-		}
+		if (position)
+			ListBox_InsertString (my d_widget -> window, position - 1, Melder_peek32toW (itemText));   // win lists start with item 0
+		else
+			ListBox_AddString (my d_widget -> window, Melder_peek32toW (itemText));   // insert at end
 	#elif mac
 		long n = (** my d_macListHandle). dataBounds. bottom;
-		if (explicitlyInsertAtEnd)
-			position_base1 = n + 1;
+		if (position == 0)
+			position = n + 1;   // insert at end
 		Cell cell;
-		cell.h = 0; cell. v = position_base1 - 1;   // mac lists start with item 0
+		cell.h = 0; cell. v = position - 1;   // mac lists start with item 0
 		_GuiMac_clipOnParent (my d_widget);
-		LAddRow (1, position_base1 - 1, my d_macListHandle);
+		LAddRow (1, position - 1, my d_macListHandle);
 		const char *itemText_utf8 = Melder_peek32to8 (itemText);   // although defProc will convert again...
 		LSetCell (itemText_utf8, (short) strlen (itemText_utf8), cell, my d_macListHandle);
 		(** my d_macListHandle). visible. bottom = n + 1;
 		_GuiMac_clipOffInvalid (my d_widget);
-		XtVaSetValues (my d_widget, XmNheight, (n + 1) * CELL_HEIGHT, nullptr);
+		XtVaSetValues (my d_widget, XmNheight, (n + 1) * CELL_HEIGHT, NULL);
 	#endif
 }
 
@@ -788,11 +771,11 @@ void GuiList_replaceItem (GuiList me, const char32 *itemText, long position) {
 	#if gtk
 		GtkTreeIter iter;
 		GtkTreeModel *tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget));
-		if (gtk_tree_model_iter_nth_child (tree_model, & iter, nullptr, (gint) (position - 1))) {
+		if (gtk_tree_model_iter_nth_child (tree_model, & iter, NULL, (gint) (position - 1))) {
 			gtk_list_store_set (GTK_LIST_STORE (tree_model), & iter, COLUMN_STRING, Melder_peek32to8 (itemText), -1);
 		}
 /*
-		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position, -1);   // -1 = terminator
+		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position);
 		GtkTreeIter iter;
 		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
 		gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store), & iter, path);
@@ -825,13 +808,13 @@ void GuiList_selectItem (GuiList me, long position) {
 	GuiControlBlockValueChangedCallbacks block (me);
 	#if gtk
 		GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (my d_widget));
-		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position - 1, -1 /* terminator */);
+		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position - 1, -1);
 		gtk_tree_selection_select_path (selection, path);
 		gtk_tree_path_free (path);
 
 // TODO: check of het bovenstaande werkt, dan kan dit weg
 //		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my d_widget)));
-//		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position, -1 /* terminator */);
+//		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) position);
 //		GtkTreeIter iter;
 //		gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store), & iter, path);
 //		gtk_tree_selection_select_iter (selection, & iter);
@@ -862,27 +845,22 @@ void GuiList_selectItem (GuiList me, long position) {
 	#endif
 }
 
-void GuiList_setSelectionChangedCallback (GuiList me, GuiList_SelectionChangedCallback callback, Thing boss) {
-	my d_selectionChangedCallback = callback;
-	my d_selectionChangedBoss = boss;
-}
-
-void GuiList_setDoubleClickCallback (GuiList me, GuiList_DoubleClickCallback callback, Thing boss) {
+void GuiList_setDoubleClickCallback (GuiList me, void (*callback) (void *boss, GuiListEvent event), void *boss) {
 	my d_doubleClickCallback = callback;
 	my d_doubleClickBoss = boss;
 }
 
-void GuiList_setScrollCallback (GuiList me, GuiList_ScrollCallback callback, Thing boss) {
-	my d_scrollCallback = callback;
-	my d_scrollBoss = boss;
+void GuiList_setSelectionChangedCallback (GuiList me, void (*callback) (void *boss, GuiListEvent event), void *boss) {
+	my d_selectionChangedCallback = callback;
+	my d_selectionChangedBoss = boss;
 }
 
 void GuiList_setTopPosition (GuiList me, long topPosition) {
 	trace (U"Set top position ", topPosition);
 	#if gtk
 //		GtkListStore *list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (my md_widget)));
-		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) topPosition, -1 /* terminator */);
-		gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (my d_widget), path, nullptr, false, 0.0, 0.0);
+		GtkTreePath *path = gtk_tree_path_new_from_indices ((gint) topPosition);
+		gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (my d_widget), path, NULL, FALSE, 0.0, 0.0);
 		gtk_tree_path_free (path);
 	#elif cocoa
 	 // TODO: implement
@@ -893,7 +871,7 @@ void GuiList_setTopPosition (GuiList me, long topPosition) {
 		//LScroll (0, topPosition - (** d_macListHandle). visible. top - 1, my d_macListHandle);   // TODO: implement
 		//GuiMac_clipOff ();
 		//my d_scrolled -> motiff.scrolledWindow.verticalBar;   // TODO: implement
-		XtVaSetValues (my d_widget, XmNy, - (topPosition - 1) * CELL_HEIGHT, nullptr);
+		XtVaSetValues (my d_widget, XmNy, - (topPosition - 1) * CELL_HEIGHT, NULL);
 	#endif
 }
 
diff --git a/sys/GuiMenu.cpp b/sys/GuiMenu.cpp
index 76f8e28..f2b25ca 100644
--- a/sys/GuiMenu.cpp
+++ b/sys/GuiMenu.cpp
@@ -1,6 +1,6 @@
 /* GuiMenu.cpp
  *
- * Copyright (C) 1992-2012,2013,2015,2016 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brausse, 2013 Tom Naughton
+ * Copyright (C) 1992-2012,2013,2015 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brausse, 2013 Tom Naughton
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,8 +21,10 @@
 
 Thing_implement (GuiMenu, GuiThing, 0);
 
-void structGuiMenu :: v_destroy () noexcept {
-	our GuiMenu_Parent :: v_destroy ();   // if (d_widget) { _GuiObject_setUserData (d_widget, nullptr); GuiObject_destroy (d_widget); }
+void structGuiMenu :: v_destroy () {
+	forget (our d_cascadeButton);
+	forget (our d_menuItem);
+	our GuiMenu_Parent :: v_destroy ();   // if (d_widget) { _GuiObject_setUserData (d_widget, NULL); GuiObject_destroy (d_widget); }
 }
 
 #if gtk
@@ -31,16 +33,16 @@ void structGuiMenu :: v_destroy () noexcept {
 		GuiMenu me = (GuiMenu) _GuiObject_getUserData (widget);
 		trace (U"destroying GuiMenu ", Melder_pointer (me));
 		if (! me) return;   // we could be destroying me
-		my d_widget = nullptr;   // undangle
-		if (my d_cascadeButton) my d_cascadeButton -> d_widget = nullptr;   // undangle
-		if (my d_menuItem) my d_menuItem -> d_widget = nullptr;   // undangle
+		my d_widget = NULL;   // undangle
+		if (my d_cascadeButton) my d_cascadeButton -> d_widget = NULL;   // undangle
+		if (my d_menuItem) my d_menuItem -> d_widget = NULL;   // undangle
 		forget (me);
 	}
 	static void _guiGtkMenuCascadeButton_destroyCallback (GuiObject widget, gpointer void_me) {
 		(void) void_me;
 		GuiMenu me = (GuiMenu) _GuiObject_getUserData (widget);
 		if (! me) return;
-		trace (U"destroying GuiButton ", Melder_pointer (my d_cascadeButton.get()));
+		trace (U"destroying GuiButton ", Melder_pointer (my d_cascadeButton));
 		gtk_widget_destroy (GTK_WIDGET (my d_widget));
 	}
 #elif cocoa
@@ -73,23 +75,16 @@ void structGuiMenu :: v_destroy () noexcept {
 			}
 			if (character == NSTabCharacter) {
 				NSWindow *cocoaKeyWindow = [NSApp keyWindow];
-				if ([cocoaKeyWindow class] == [GuiCocoaShell class]) {
-					GuiShell shell = (GuiShell) [(GuiCocoaShell *) cocoaKeyWindow   getUserData];
-					if (shell -> classInfo == classGuiWindow) {
-						GuiWindow window = (GuiWindow) shell;
-						if (window -> d_tabCallback) {
-							try {
-								struct structGuiMenuItemEvent event { nullptr, false, false, false, false };
-								window -> d_tabCallback (window -> d_tabBoss, & event);
-							} catch (MelderError) {
-								Melder_flushError (U"Tab key not completely handled.");
-							}
-							return;
+				if ([cocoaKeyWindow class] == [GuiCocoaWindow class]) {
+					GuiWindow window = (GuiWindow) [(GuiCocoaWindow *) cocoaKeyWindow userData];
+					if (window -> d_tabCallback) {
+						try {
+							struct structGuiMenuItemEvent event = { NULL, 0 };
+							window -> d_tabCallback (window -> d_tabBoss, & event);
+						} catch (MelderError) {
+							Melder_flushError (U"Tab key not completely handled.");
 						}
-					} else {
-						/*
-							We're in a dialog. Do nothing. Send the event on.
-						*/
+						return;
 					}
 				}
 			} else if (character == NSBackTabCharacter) {
@@ -101,58 +96,44 @@ void structGuiMenu :: v_destroy () noexcept {
 				 * one can get here as well by pressing Ctrl-Y (Y is the 25th letter in the alphabet).
 				 */
 				NSWindow *cocoaKeyWindow = [NSApp keyWindow];
-				if ([cocoaKeyWindow class] == [GuiCocoaShell class]) {
-					GuiShell shell = (GuiShell) [(GuiCocoaShell *) cocoaKeyWindow   getUserData];
-					if (shell -> classInfo == classGuiWindow) {
-						GuiWindow window = (GuiWindow) shell;
-						if ([nsEvent modifierFlags] & NSShiftKeyMask) {
-							/*
-								Make sure we got here by Shift-Tab rather than Ctrl-Y.
-							*/
-							if (window -> d_shiftTabCallback) {
-								try {
-									struct structGuiMenuItemEvent event { nullptr, false, false, false, false };
-									window -> d_shiftTabCallback (window -> d_shiftTabBoss, & event);
-								} catch (MelderError) {
-									Melder_flushError (U"Tab key not completely handled.");
-								}
-								return;
+				if ([cocoaKeyWindow class] == [GuiCocoaWindow class]) {
+					GuiWindow window = (GuiWindow) [(GuiCocoaWindow *) cocoaKeyWindow userData];
+					if ([nsEvent modifierFlags] & NSShiftKeyMask) {
+						/*
+						 * Make sure we got here by Shift-Tab rather than Ctrl-Y.
+						 */
+						if (window -> d_shiftTabCallback) {
+							try {
+								struct structGuiMenuItemEvent event = { NULL, 0 };
+								window -> d_shiftTabCallback (window -> d_shiftTabBoss, & event);
+							} catch (MelderError) {
+								Melder_flushError (U"Tab key not completely handled.");
 							}
-						} else {
-							/*
-							 * We probably got in this branch by pressing Ctrl-Y.
-							 * People sometimes press that because it means "yank" (= Paste) in Emacs,
-							 * and indeed sending this key combination on, as we do here,
-							 * implements (together with Ctrl-K = "kil" = Cut)
-							 * a special cut & paste operation in text fields.
-							 */
-							// do nothing, i.e. send on
+							return;
 						}
 					} else {
 						/*
-							We're in a dialog. Do nothing. Send on.
-						*/
+						 * We probably got in this branch by pressing Ctrl-Y.
+						 * People sometimes press that because it means "yank" (= Paste) in Emacs,
+						 * and indeed sending this key combination on, as we do here,
+						 * implements (together with Ctrl-K = "kil" = Cut)
+						 * a special cut & paste operation in text fields.
+						 */
+						// do nothing, i.e. send on
 					}
 				}
 			} else if (character == NSDeleteCharacter) {
 				NSWindow *cocoaKeyWindow = [NSApp keyWindow];
-				if ([cocoaKeyWindow class] == [GuiCocoaShell class]) {
-					GuiShell shell = (GuiShell) [(GuiCocoaShell *) cocoaKeyWindow   getUserData];
-					if (shell -> classInfo == classGuiWindow) {
-						GuiWindow window = (GuiWindow) shell;
-						if (([nsEvent modifierFlags] & NSAlternateKeyMask) && window -> d_optionBackspaceCallback) {
-							try {
-								struct structGuiMenuItemEvent event { nullptr, false, false, false, false };
-								window -> d_optionBackspaceCallback (window -> d_optionBackspaceBoss, & event);
-							} catch (MelderError) {
-								Melder_flushError (U"Option-Backspace not completely handled.");
-							}
-							return;
+				if ([cocoaKeyWindow class] == [GuiCocoaWindow class]) {
+					GuiWindow window = (GuiWindow) [(GuiCocoaWindow *) cocoaKeyWindow userData];
+					if (([nsEvent modifierFlags] & NSAlternateKeyMask) && window -> d_optionBackspaceCallback) {
+						try {
+							struct structGuiMenuItemEvent event = { NULL, 0 };
+							window -> d_optionBackspaceCallback (window -> d_optionBackspaceBoss, & event);
+						} catch (MelderError) {
+							Melder_flushError (U"Option-Backspace not completely handled.");
 						}
-					} else {
-						/*
-							We're in a dialog. Do nothing. Send on.
-						*/
+						return;
 					}
 				}
 			}
@@ -189,9 +170,9 @@ void structGuiMenu :: v_destroy () noexcept {
 		GuiMenu me = (GuiMenu) _GuiObject_getUserData (widget);
 		trace (U"destroying GuiMenu ", Melder_pointer (me));
 		if (! me) return;   // we could be destroying me
-		my d_widget = nullptr;   // undangle
-		if (my d_cascadeButton) my d_cascadeButton -> d_widget = nullptr;   // undangle
-		if (my d_menuItem) my d_menuItem -> d_widget = nullptr;   // undangle
+		my d_widget = NULL;   // undangle
+		if (my d_cascadeButton) my d_cascadeButton -> d_widget = NULL;   // undangle
+		if (my d_menuItem) my d_menuItem -> d_widget = NULL;   // undangle
 		forget (me);
 	}
 #endif
@@ -235,7 +216,7 @@ void GuiMenu_empty (GuiMenu me) {
 		/*
 		 * Destroy my widget, but prevent forgetting me.
 		 */
-		_GuiObject_setUserData (my d_widget, nullptr);
+		_GuiObject_setUserData (my d_widget, NULL);
 		gtk_widget_destroy (GTK_WIDGET (my d_widget));
 
 		my d_widget = gtk_menu_new ();
@@ -260,40 +241,40 @@ void GuiMenu_empty (GuiMenu me) {
 		GuiMenu d_userData;
 	}
 	- (void) dealloc {   // override
-		GuiMenu me = d_userData;
+		GuiMenu me = self -> d_userData;
 		forget (me);
 		trace (U"deleting a menu button");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
-		return d_userData;
+	- (GuiThing) userData {
+		return self -> d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiMenu));
-		d_userData = static_cast <GuiMenu> (userData);
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiMenu));
+		self -> d_userData = static_cast <GuiMenu> (userData);
 	}
 	@end
 	@implementation GuiCocoaMenu {
 		GuiMenu d_userData;
 	}
 	- (void) dealloc {   // override
-		GuiMenu me = d_userData;
+		GuiMenu me = self -> d_userData;
 		forget (me);
 		trace (U"deleting a menu");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
-		return d_userData;
+	- (GuiThing) userData {
+		return self -> d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiMenu));
-		d_userData = static_cast <GuiMenu> (userData);
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiMenu));
+		self -> d_userData = static_cast <GuiMenu> (userData);
 	}
 	@end
 #endif
 
 GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 flags) {
-	autoGuiMenu me = Thing_new (GuiMenu);
+	GuiMenu me = Thing_new (GuiMenu);
 	my d_shell = window;
 	my d_parent = window;
 	#if gtk
@@ -301,14 +282,14 @@ GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 fl
 		my d_gtkMenuTitle = (GtkMenuItem *) gtk_menu_item_new_with_label (Melder_peek32to8 (title));
 		gtk_menu_shell_append (GTK_MENU_SHELL (window -> d_gtkMenuBar), GTK_WIDGET (my d_gtkMenuTitle));
 		if (flags & GuiMenu_INSENSITIVE)
-			gtk_widget_set_sensitive (GTK_WIDGET (my d_gtkMenuTitle), false);
+			gtk_widget_set_sensitive (GTK_WIDGET (my d_gtkMenuTitle), FALSE);
 		gtk_widget_show (GTK_WIDGET (my d_gtkMenuTitle));
 		trace (U"create the menu");
 		my d_widget = gtk_menu_new ();
 		GtkAccelGroup *ag = (GtkAccelGroup *) g_object_get_data (G_OBJECT (window -> d_gtkMenuBar), "accel-group");
 		gtk_menu_set_accel_group (GTK_MENU (my d_widget), ag);
 		gtk_menu_item_set_submenu (GTK_MENU_ITEM (my d_gtkMenuTitle), GTK_WIDGET (my d_widget));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#elif cocoa
 		if (! theMenuBar) {
 			int numberOfMenus = [[[NSApp mainMenu] itemArray] count];
@@ -320,9 +301,8 @@ GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 fl
 		my d_cocoaMenu = [[GuiCocoaMenu alloc]
 			initWithTitle: (NSString *) Melder_peek32toCfstring (title)];
 		my d_widget = my d_cocoaMenu;
-		[my d_cocoaMenu   setUserData: me.get()];
 		[my d_cocoaMenu   setAutoenablesItems: NO];
-		if (! window) {
+		if (window == NULL) {
 			/*
 			 * Install the menu in the main OS X menu bar along the top of the screen.
 			 * This is done by creating a menu item for the main menu bar,
@@ -330,7 +310,7 @@ GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 fl
 			 */
             NSString *itemTitle = (NSString *) Melder_peek32toCfstring (title);
 			my d_cocoaMenuItem = [[GuiCocoaMenuItem alloc]
-				initWithTitle: itemTitle  action: nullptr   keyEquivalent: @""];
+				initWithTitle: itemTitle  action: NULL   keyEquivalent: @""];
 
 			[my d_cocoaMenuItem   setSubmenu: my d_cocoaMenu];   // the item will retain the menu...
 			[my d_cocoaMenu release];   // ... so we can release the menu already (before even returning it!)
@@ -369,7 +349,7 @@ GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 fl
 			/*
 			 * Apparently, Cocoa swallows title setting only if there is already a menu with a dummy item.
 			 */
-			GuiCocoaMenuItem *item = [[GuiCocoaMenuItem alloc] initWithTitle: @"-you should never get to see this-" action: nullptr keyEquivalent: @""];
+			GuiCocoaMenuItem *item = [[GuiCocoaMenuItem alloc] initWithTitle: @"-you should never get to see this-" action: NULL keyEquivalent: @""];
 			[my d_cocoaMenu   addItem: item];   // the menu will retain the item...
 			[item release];   // ... so we can release the item already
 			/*
@@ -387,62 +367,62 @@ GuiMenu GuiMenu_createInWindow (GuiWindow window, const char32 *title, uint32 fl
 
 		}
 	#elif motif
-		if (! window) {
-			my d_xmMenuTitle = XmCreateCascadeButton (theGuiTopMenuBar, Melder_peek32to8 (title), nullptr, 0);
+		if (window == NULL) {
+			my d_xmMenuTitle = XmCreateCascadeButton (theGuiTopMenuBar, Melder_peek32to8 (title), NULL, 0);
 			if (str32equ (title, U"Help"))
-				XtVaSetValues (theGuiTopMenuBar, XmNmenuHelpWidget, my d_xmMenuTitle, nullptr);
-			my d_widget = XmCreatePulldownMenu (theGuiTopMenuBar, Melder_peek32to8 (title), nullptr, 0);
+				XtVaSetValues (theGuiTopMenuBar, XmNmenuHelpWidget, my d_xmMenuTitle, NULL);
+			my d_widget = XmCreatePulldownMenu (theGuiTopMenuBar, Melder_peek32to8 (title), NULL, 0);
 			if (flags & GuiMenu_INSENSITIVE)
 				XtSetSensitive (my d_xmMenuTitle, False);
-			XtVaSetValues (my d_xmMenuTitle, XmNsubMenuId, my d_widget, nullptr);
+			XtVaSetValues (my d_xmMenuTitle, XmNsubMenuId, my d_widget, NULL);
 			XtManageChild (my d_xmMenuTitle);
 		} else {
-			my d_xmMenuTitle = XmCreateCascadeButton (window -> d_xmMenuBar, Melder_peek32to8 (title), nullptr, 0);
+			my d_xmMenuTitle = XmCreateCascadeButton (window -> d_xmMenuBar, Melder_peek32to8 (title), NULL, 0);
 			if (str32equ (title, U"Help"))
-				XtVaSetValues (window -> d_xmMenuBar, XmNmenuHelpWidget, my d_xmMenuTitle, nullptr);
-			my d_widget = XmCreatePulldownMenu (window -> d_xmMenuBar, Melder_peek32to8 (title), nullptr, 0);
+				XtVaSetValues (window -> d_xmMenuBar, XmNmenuHelpWidget, my d_xmMenuTitle, NULL);
+			my d_widget = XmCreatePulldownMenu (window -> d_xmMenuBar, Melder_peek32to8 (title), NULL, 0);
 			if (flags & GuiMenu_INSENSITIVE)
 				XtSetSensitive (my d_xmMenuTitle, False);
-			XtVaSetValues (my d_xmMenuTitle, XmNsubMenuId, my d_widget, nullptr);
+			XtVaSetValues (my d_xmMenuTitle, XmNsubMenuId, my d_widget, NULL);
 			XtManageChild (my d_xmMenuTitle);
 		}
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#endif
 
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiMenu GuiMenu_createInMenu (GuiMenu supermenu, const char32 *title, uint32 flags) {
-	autoGuiMenu me = Thing_new (GuiMenu);
+	GuiMenu me = Thing_new (GuiMenu);
 	my d_shell = supermenu -> d_shell;
 	my d_parent = supermenu;
 	my d_menuItem = Thing_new (GuiMenuItem);
 	my d_menuItem -> d_shell = my d_shell;
 	my d_menuItem -> d_parent = supermenu;
-	my d_menuItem -> d_menu = me.get();
+	my d_menuItem -> d_menu = me;
 	#if gtk
 		my d_menuItem -> d_widget = gtk_menu_item_new_with_label (Melder_peek32to8 (title));
 		my d_widget = gtk_menu_new ();
 		GtkAccelGroup *ag = (GtkAccelGroup *) gtk_menu_get_accel_group (GTK_MENU (supermenu -> d_widget));
 		gtk_menu_set_accel_group (GTK_MENU (my d_widget), ag);
 		if (flags & GuiMenu_INSENSITIVE)
-			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), false);
+			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), FALSE);
 		gtk_menu_item_set_submenu (GTK_MENU_ITEM (my d_menuItem -> d_widget), GTK_WIDGET (my d_widget));
 		gtk_menu_shell_append (GTK_MENU_SHELL (supermenu -> d_widget), GTK_WIDGET (my d_menuItem -> d_widget));
 		gtk_widget_show (GTK_WIDGET (my d_widget));
 		gtk_widget_show (GTK_WIDGET (my d_menuItem -> d_widget));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#elif cocoa
 		trace (U"creating menu item ", title);
 		NSMenuItem *item = [[NSMenuItem alloc]
 			initWithTitle: (NSString *) Melder_peek32toCfstring (title)
-			action: nullptr
+			action: NULL
 			keyEquivalent: @""];
 		trace (U"adding the item to its supermenu ", Melder_pointer (supermenu));
 		[supermenu -> d_cocoaMenu  addItem: item];   // the menu will retain the item...
@@ -451,31 +431,30 @@ GuiMenu GuiMenu_createInMenu (GuiMenu supermenu, const char32 *title, uint32 fla
 		trace (U"creating menu ", title);
 		my d_cocoaMenu = [[GuiCocoaMenu alloc]
 			initWithTitle: (NSString *) Melder_peek32toCfstring (title)];
-		[my d_cocoaMenu   setUserData: me.get()];
-		[my d_cocoaMenu   setAutoenablesItems: NO];
-		trace (U"adding the new menu ", Melder_pointer (me.get()), U" to its supermenu ", Melder_pointer (supermenu));
+		[my d_cocoaMenu setAutoenablesItems: NO];
+		trace (U"adding the new menu ", Melder_pointer (me), U" to its supermenu ", Melder_pointer (supermenu));
 		[supermenu -> d_cocoaMenu   setSubmenu: my d_cocoaMenu   forItem: item];   // the supermenu will retain the menu...
 		Melder_assert ([my d_cocoaMenu retainCount] == 2);
 		[my d_cocoaMenu release];   // ... so we can release the menu already, even before returning it
 		my d_widget = my d_cocoaMenu;
 		my d_menuItem -> d_widget = (GuiObject) item;
 	#elif motif
-		my d_menuItem -> d_widget = XmCreateCascadeButton (supermenu -> d_widget, Melder_peek32to8 (title), nullptr, 0);
-		my d_widget = XmCreatePulldownMenu (supermenu -> d_widget, Melder_peek32to8 (title), nullptr, 0);
+		my d_menuItem -> d_widget = XmCreateCascadeButton (supermenu -> d_widget, Melder_peek32to8 (title), NULL, 0);
+		my d_widget = XmCreatePulldownMenu (supermenu -> d_widget, Melder_peek32to8 (title), NULL, 0);
 		if (flags & GuiMenu_INSENSITIVE)
 			XtSetSensitive (my d_menuItem -> d_widget, False);
-		XtVaSetValues (my d_menuItem -> d_widget, XmNsubMenuId, my d_widget, nullptr);
+		XtVaSetValues (my d_menuItem -> d_widget, XmNsubMenuId, my d_widget, NULL);
 		XtManageChild (my d_menuItem -> d_widget);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#endif
 
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 #if gtk
@@ -502,21 +481,21 @@ static gint button_press (GtkWidget *widget, GdkEvent *event)
 	
 	if (event->type == GDK_BUTTON_PRESS) {
 		GdkEventButton *bevent = (GdkEventButton *) event;
-		gtk_menu_popup (GTK_MENU (widget), nullptr, nullptr, (GtkMenuPositionFunc) set_position, nullptr, bevent->button, bevent->time);
-		return true;
+		gtk_menu_popup (GTK_MENU (widget), NULL, NULL, (GtkMenuPositionFunc) set_position, NULL, bevent->button, bevent->time);
+		return TRUE;
 	}
-	return false;
+	return FALSE;
 }
 #endif
 
 GuiMenu GuiMenu_createInForm (GuiForm form, int left, int right, int top, int bottom, const char32 *title, uint32 flags) {
-	autoGuiMenu me = Thing_new (GuiMenu);
+	GuiMenu me = Thing_new (GuiMenu);
 	my d_shell = form -> d_shell;
 	my d_parent = form;
 	my d_cascadeButton = Thing_new (GuiButton);
 	my d_cascadeButton -> d_shell = my d_shell;
 	my d_cascadeButton -> d_parent = form;
-	my d_cascadeButton -> d_menu = me.get();
+	my d_cascadeButton -> d_menu = me;
 	#if gtk
 		my d_cascadeButton -> d_widget = gtk_button_new_with_label (Melder_peek32to8 (title));
 		my d_cascadeButton -> v_positionInForm (my d_cascadeButton -> d_widget, left, right, top, bottom, form);
@@ -524,19 +503,19 @@ GuiMenu GuiMenu_createInForm (GuiForm form, int left, int right, int top, int bo
 
 		my d_widget = gtk_menu_new ();
 		if (flags & GuiMenu_INSENSITIVE)
-			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), false);
+			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), FALSE);
 
 		g_signal_connect_object (G_OBJECT (my d_cascadeButton -> d_widget), "event",
 			GTK_SIGNAL_FUNC (button_press), G_OBJECT (my d_widget), G_CONNECT_SWAPPED);
 		g_object_set_data (G_OBJECT (my d_widget), "button", my d_cascadeButton -> d_widget);
-		gtk_menu_attach_to_widget (GTK_MENU (my d_widget), GTK_WIDGET (my d_cascadeButton -> d_widget), nullptr);
+		gtk_menu_attach_to_widget (GTK_MENU (my d_widget), GTK_WIDGET (my d_cascadeButton -> d_widget), NULL);
 		gtk_button_set_alignment (GTK_BUTTON (my d_cascadeButton -> d_widget), 0.0f, 0.5f);
-		_GuiObject_setUserData (my d_widget, me.get());
-		_GuiObject_setUserData (my d_cascadeButton -> d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
+		_GuiObject_setUserData (my d_cascadeButton -> d_widget, me);
 	#elif cocoa
 		my d_cascadeButton -> d_widget = my d_cocoaMenuButton = [[GuiCocoaMenuButton alloc] init];
 		my d_cascadeButton -> v_positionInForm (my d_cocoaMenuButton, left, right, top, bottom, form);
-		[my d_cocoaMenuButton   setUserData: me.get()];
+		[my d_cocoaMenuButton   setUserData: me];
 		[my d_cocoaMenuButton   setPullsDown: YES];
 		[my d_cocoaMenuButton   setAutoenablesItems: NO];
 		[my d_cocoaMenuButton   setBezelStyle: NSShadowlessSquareBezelStyle];
@@ -549,7 +528,7 @@ GuiMenu GuiMenu_createInForm (GuiForm form, int left, int right, int top, int bo
 		/*
 		 * Apparently, Cocoa swallows title setting only if there is already a menu with a dummy item.
 		 */
-		NSMenuItem *item = [[NSMenuItem alloc] initWithTitle: @"-you should never get to see this-" action: nullptr keyEquivalent: @""];
+		NSMenuItem *item = [[NSMenuItem alloc] initWithTitle: @"-you should never get to see this-" action: NULL keyEquivalent: @""];
 		[my d_cocoaMenu   addItem: item];   // the menu will retain the item...
 		[item release];   // ... so we can release the item already
 		/*
@@ -561,25 +540,25 @@ GuiMenu GuiMenu_createInForm (GuiForm form, int left, int right, int top, int bo
 	#elif motif
 		my d_xmMenuBar = XmCreateMenuBar (form -> d_widget, "dynamicSubmenuBar", 0, 0);
 		form -> v_positionInForm (my d_xmMenuBar, left, right, top, bottom, form);
-		my d_cascadeButton -> d_widget = XmCreateCascadeButton (my d_xmMenuBar, Melder_peek32to8 (title), nullptr, 0);
+		my d_cascadeButton -> d_widget = XmCreateCascadeButton (my d_xmMenuBar, Melder_peek32to8 (title), NULL, 0);
 		form -> v_positionInForm (my d_cascadeButton -> d_widget, 0, right - left - 4, 0, bottom - top, form);
-		my d_widget = XmCreatePulldownMenu (my d_xmMenuBar, Melder_peek32to8 (title), nullptr, 0);
+		my d_widget = XmCreatePulldownMenu (my d_xmMenuBar, Melder_peek32to8 (title), NULL, 0);
 		if (flags & GuiMenu_INSENSITIVE)
 			XtSetSensitive (my d_cascadeButton -> d_widget, False);
-		XtVaSetValues (my d_cascadeButton -> d_widget, XmNsubMenuId, my d_widget, nullptr);
+		XtVaSetValues (my d_cascadeButton -> d_widget, XmNsubMenuId, my d_widget, NULL);
 		XtManageChild (my d_cascadeButton -> d_widget);
 		XtManageChild (my d_xmMenuBar);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#endif
 
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me.get());
-		g_signal_connect (G_OBJECT (my d_cascadeButton -> d_widget), "destroy", G_CALLBACK (_guiGtkMenuCascadeButton_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenu_destroyCallback), me);
+		g_signal_connect (G_OBJECT (my d_cascadeButton -> d_widget), "destroy", G_CALLBACK (_guiGtkMenuCascadeButton_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenu_destroyCallback, me);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 };
 
 /* End of file GuiMenu.cpp */
diff --git a/sys/GuiMenuItem.cpp b/sys/GuiMenuItem.cpp
index 12538d2..eca8de2 100644
--- a/sys/GuiMenuItem.cpp
+++ b/sys/GuiMenuItem.cpp
@@ -28,10 +28,12 @@
 
 Thing_implement (GuiMenuItem, GuiThing, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if gtk
 	#define iam_menuitem  GuiMenuItem me = (GuiMenuItem) _GuiObject_getUserData (widget)
 #elif cocoa
-	#define iam_menuitem  GuiMenuItem me = (GuiMenuItem) [(GuiCocoaMenuItem *) widget getUserData];
+	#define iam_menuitem  GuiMenuItem me = (GuiMenuItem) [(GuiCocoaMenuItem *) widget userData];
 #elif motif
 	#define iam_menuitem  GuiMenuItem me = (GuiMenuItem) widget -> userData
 #endif
@@ -63,9 +65,9 @@ static void NativeMenuItem_setText (GuiObject me) {
 				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 			const char32 *keyString = keyStrings [acc] ? keyStrings [acc] : U"???";
 			MelderString_copy (& title, _GuiWin_expandAmpersands (my name), U"\t",
-				modifiers & _motif_COMMAND_MASK ? U"Ctrl-" : nullptr,
-				modifiers & _motif_OPTION_MASK ? U"Alt-" : nullptr,
-				modifiers & _motif_SHIFT_MASK ? U"Shift-" : nullptr, keyString);
+				modifiers & _motif_COMMAND_MASK ? U"Ctrl-" : NULL,
+				modifiers & _motif_OPTION_MASK ? U"Alt-" : NULL,
+				modifiers & _motif_SHIFT_MASK ? U"Shift-" : NULL, keyString);
 		}
 		ModifyMenu (my nat.entry.handle, my nat.entry.id, MF_BYCOMMAND | MF_STRING, my nat.entry.id, Melder_peek32toW (title.string));
 	#elif mac
@@ -104,10 +106,10 @@ static void NativeMenuItem_setText (GuiObject me) {
 		iam (GuiMenuItem);
 		if (my d_callbackBlocked) return;
 		if (G_OBJECT_TYPE (widget) == GTK_TYPE_RADIO_MENU_ITEM && ! gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) return;
-		struct structGuiMenuItemEvent event { me, false, false, false, false };
-		if (my d_callback) {
+		struct structGuiMenuItemEvent event = { me, 0 };
+		if (my d_commandCallback) {
 			try {
-				my d_callback (my d_boss, & event);
+				my d_commandCallback (my d_boss, & event);
 			} catch (MelderError) {
 				Melder_flushError (U"Your choice of menu item \"", Melder_peek8to32 (GTK_WIDGET (widget) -> name), U"\" was not completely handled.");
 			}
@@ -118,25 +120,25 @@ static void NativeMenuItem_setText (GuiObject me) {
 		GuiMenuItem d_userData;
 	}
 	- (void) dealloc {   // override
-		GuiMenuItem me = d_userData;
+		GuiMenuItem me = self -> d_userData;
 		forget (me);
 		trace (U"deleting a menu item");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
-		return d_userData;
+	- (GuiThing) userData {
+		return self -> d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiMenuItem));
-		d_userData = static_cast <GuiMenuItem> (userData);
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiMenuItem));
+		self -> d_userData = static_cast <GuiMenuItem> (userData);
 	}
 	- (void) _guiCocoaMenuItem_activateCallback: (id) widget {
 		Melder_assert (self == widget);   // sender (widget) and receiver (self) happen to be the same object
-		GuiMenuItem me = d_userData;
-		if (my d_callback) {
-			struct structGuiMenuItemEvent event { me, false, false, false, false };
+		GuiMenuItem me = self -> d_userData;
+		if (my d_commandCallback != NULL) {
+			struct structGuiMenuItemEvent event = { me, 0 };
 			try {
-				my d_callback (my d_boss, & event);
+				my d_commandCallback (my d_boss, & event);
 			} catch (MelderError) {
 				Melder_flushError (U"Your choice of menu item \"", U"xx", U"\" was not completely handled.");
 			}
@@ -151,10 +153,10 @@ static void NativeMenuItem_setText (GuiObject me) {
 	}
 	static void _guiMotifMenuItem_activateCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		iam (GuiMenuItem);
-		if (my d_callback) {
-			struct structGuiMenuItemEvent event { me, false, false, false, false };
+		if (my d_commandCallback != NULL) {
+			struct structGuiMenuItemEvent event = { me, 0 };
 			try {
-				my d_callback (my d_boss, & event);
+				my d_commandCallback (my d_boss, & event);
 			} catch (MelderError) {
 				Melder_flushError (U"Your choice of menu item \"", widget -> name, U"\" was not completely handled.");
 			}
@@ -163,9 +165,9 @@ static void NativeMenuItem_setText (GuiObject me) {
 #endif
 
 GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
-	GuiMenuItemCallback commandCallback, Thing boss)
+	void (*commandCallback) (void *boss, GuiMenuItemEvent event), void *boss)
 {
-	autoGuiMenuItem me = Thing_new (GuiMenuItem);
+	GuiMenuItem me = Thing_new (GuiMenuItem);
 	my d_shell = menu -> d_shell;
 	my d_parent = menu;
 	my d_menu = menu;
@@ -173,11 +175,11 @@ GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
 	trace (U"creating item \"", title, U"\" in menu ", Melder_pointer (menu));
 	bool toggle = flags & (GuiMenu_CHECKBUTTON | GuiMenu_RADIO_FIRST | GuiMenu_RADIO_NEXT | GuiMenu_TOGGLE_ON) ? true : false;
 	uint32 accelerator = flags & 127;
-	Melder_assert (title);
+	Melder_assert (title != NULL);
 	#if gtk
-		static GSList *group = nullptr;
+		static GSList *group = NULL;
 		if (toggle) {
-			if (flags & (GuiMenu_RADIO_FIRST)) group = nullptr;
+			if (flags & (GuiMenu_RADIO_FIRST)) group = NULL;
 			if (flags & (GuiMenu_RADIO_FIRST | GuiMenu_RADIO_NEXT)) {
 				my d_widget = gtk_radio_menu_item_new_with_label (group, Melder_peek32to8 (title));
 				group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (my d_widget));
@@ -190,13 +192,13 @@ GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
 		}
 		Melder_assert (menu -> d_widget);
 		gtk_menu_shell_append (GTK_MENU_SHELL (menu -> d_widget), GTK_WIDGET (my d_widget));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 	#elif cocoa
 		(void) toggle;   // no difference between toggling and normal menu items on Cocoa
 		NSString *string = (NSString *) Melder_peek32toCfstring (title);
 		GuiCocoaMenuItem *menuItem = [[GuiCocoaMenuItem alloc]
 			initWithTitle:string
-			action: nullptr
+			action: NULL
 			keyEquivalent: @""];
 		//Melder_assert ([string retainCount] == 2 || [string retainCount] == -1);   // the menu item retains the string (assertion can fail on 10.6)
 		trace (U"string retain count = ", [string retainCount]);
@@ -215,22 +217,22 @@ GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
 		trace (U"release the item");
 		[menuItem release];   // ... so we can release the item already
 		trace (U"set user data");
-		[menuItem setUserData: me.get()];
+		[menuItem setUserData: me];
 	#elif motif
 		my d_widget = XtVaCreateManagedWidget (Melder_peek32to8 (title),
-			toggle ? xmToggleButtonGadgetClass : xmPushButtonGadgetClass, menu -> d_widget, nullptr);
-		_GuiObject_setUserData (my d_widget, me.get());
+			toggle ? xmToggleButtonGadgetClass : xmPushButtonGadgetClass, menu -> d_widget, NULL);
+		_GuiObject_setUserData (my d_widget, me);
 	#endif
-	Melder_assert (my d_widget);
+	Melder_assert (my d_widget != NULL);
 
 	trace (U"set sensitivity");
 	if (flags & GuiMenu_INSENSITIVE)
-		GuiThing_setSensitive (me.get(), false);
+		GuiThing_setSensitive (me, false);
 
 	trace (U"understand toggle menu items");
 	if (flags & GuiMenu_TOGGLE_ON)
 		#if gtk
-			gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (my d_widget), true);
+			gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (my d_widget), TRUE);
 		#elif cocoa
 			[menuItem setState: NSOnState];
 		#elif motif
@@ -337,27 +339,27 @@ GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
 	#endif
 
 	trace (U"install the command callback");
-	my d_callback = commandCallback;
+	my d_commandCallback = commandCallback;
 	my d_boss = boss;
 	#if gtk
-		if (commandCallback) {
+		if (commandCallback != NULL) {
 			if (flags == GuiMenu_TAB) {
 				GtkWidget *shell = gtk_widget_get_toplevel (gtk_menu_get_attach_widget (GTK_MENU (menu -> d_widget)));
 				trace (U"tab set in GTK window ", Melder_pointer (shell));
 				g_object_set_data (G_OBJECT (shell), "tabCallback", (gpointer) _guiGtkMenuItem_activateCallback);
-				g_object_set_data (G_OBJECT (shell), "tabClosure", (gpointer) me.get());
+				g_object_set_data (G_OBJECT (shell), "tabClosure", (gpointer) me);
 			} else if (flags == (GuiMenu_TAB | GuiMenu_SHIFT)) {
 				GtkWidget *shell = gtk_widget_get_toplevel (gtk_menu_get_attach_widget (GTK_MENU (menu -> d_widget)));
 				trace (U"shift-tab set in GTK window ", Melder_pointer (shell));
 				g_object_set_data (G_OBJECT (shell), "shiftTabCallback", (gpointer) _guiGtkMenuItem_activateCallback);
-				g_object_set_data (G_OBJECT (shell), "shiftTabClosure", (gpointer) me.get());
+				g_object_set_data (G_OBJECT (shell), "shiftTabClosure", (gpointer) me);
 			} else {
 				g_signal_connect (G_OBJECT (my d_widget),
 					toggle ? "toggled" : "activate",
-					G_CALLBACK (_guiGtkMenuItem_activateCallback), (gpointer) me.get());
+					G_CALLBACK (_guiGtkMenuItem_activateCallback), (gpointer) me);
 			}
 		} else {
-			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), false);
+			gtk_widget_set_sensitive (GTK_WIDGET (my d_widget), FALSE);
 		}
 		gtk_widget_show (GTK_WIDGET (my d_widget));
 	#elif cocoa
@@ -366,22 +368,22 @@ GuiMenuItem GuiMenu_addItem (GuiMenu menu, const char32 *title, uint32 flags,
 	#elif motif
 		XtAddCallback (my d_widget,
 			toggle ? XmNvalueChangedCallback : XmNactivateCallback,
-			_guiMotifMenuItem_activateCallback, (XtPointer) me.get());
+			_guiMotifMenuItem_activateCallback, (XtPointer) me);
 	#endif
 
 	trace (U"make sure that I will be destroyed when my widget is destroyed");
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenuItem_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenuItem_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenuItem_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenuItem_destroyCallback, me);
 	#endif
 
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiMenuItem GuiMenu_addSeparator (GuiMenu menu) {
-	autoGuiMenuItem me = Thing_new (GuiMenuItem);
+	GuiMenuItem me = Thing_new (GuiMenuItem);
 	my d_shell = menu -> d_shell;
 	my d_parent = menu;
 	my d_menu = menu;
@@ -406,23 +408,23 @@ GuiMenuItem GuiMenu_addSeparator (GuiMenu menu) {
 		trace (U"release the item");
 		//[(NSMenuItem *) my d_widget release];   // ... so we can release the item already
 		trace (U"set user data");
-		[(GuiCocoaMenuItem *) my d_widget   setUserData: me.get()];
+		[(GuiCocoaMenuItem *) my d_widget setUserData: me];
 	#elif motif
-		my d_widget = XtVaCreateManagedWidget ("menuSeparator", xmSeparatorGadgetClass, menu -> d_widget, nullptr);
+		my d_widget = XtVaCreateManagedWidget ("menuSeparator", xmSeparatorGadgetClass, menu -> d_widget, NULL);
 	#endif
 
 	trace (U"make sure that I will be destroyed when my widget is destroyed");
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenuItem_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkMenuItem_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenuItem_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifMenuItem_destroyCallback, me);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 void GuiMenuItem_check (GuiMenuItem me, bool check) {
-	Melder_assert (my d_widget);
+	Melder_assert (my d_widget != NULL);
 	#if gtk
 		my d_callbackBlocked = true;
 		gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (my d_widget), check);
diff --git a/sys/GuiObject.cpp b/sys/GuiObject.cpp
index 5324b57..34f7e18 100644
--- a/sys/GuiObject.cpp
+++ b/sys/GuiObject.cpp
@@ -22,19 +22,19 @@
 
 #if cocoa
 	@interface GuiCocoaView : NSView
-		- (GuiThing) getUserData;
+		- (GuiThing) userData;
 		- (void) setUserData: (GuiThing) userData;
 	@end
 #endif
 
 void * _GuiObject_getUserData (GuiObject widget) {
-	void *userData = nullptr;
+	void *userData = NULL;
 	#if gtk
 		userData = (void *) g_object_get_data (G_OBJECT (widget), "praat");
 	#elif cocoa
-		userData = [(GuiCocoaView *) widget   getUserData];
+		userData = [(GuiCocoaView *) widget   userData];
 	#elif motif
-		XtVaGetValues (widget, XmNuserData, & userData, nullptr);
+		XtVaGetValues (widget, XmNuserData, & userData, NULL);
 	#endif
 	return userData;
 }
@@ -45,7 +45,7 @@ void _GuiObject_setUserData (GuiObject widget, void *userData) {
 	#elif cocoa
 		[(GuiCocoaView *) widget   setUserData: (GuiThing) userData];
 	#elif motif
-		XtVaSetValues (widget, XmNuserData, userData, nullptr);
+		XtVaSetValues (widget, XmNuserData, userData, NULL);
 	#endif
 }
 
diff --git a/sys/GuiOptionMenu.cpp b/sys/GuiOptionMenu.cpp
index 8e6c434..895d6e3 100644
--- a/sys/GuiOptionMenu.cpp
+++ b/sys/GuiOptionMenu.cpp
@@ -1,6 +1,6 @@
 /* GuiOptionMenu.cpp
  *
- * Copyright (C) 1993-2012,2013,2014,2015,2016 Paul Boersma, 2007 Stefan de Konink, 2013 Tom Naughton
+ * Copyright (C) 1993-2012,2013,2014,2015 Paul Boersma, 2007 Stefan de Konink, 2013 Tom Naughton
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,9 +21,21 @@
 
 Thing_implement (GuiOptionMenu, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if gtk
-	static void _guiGtkOptionMenu_destroyCallback (GuiObject /* widget */, gpointer void_me) {
+	#define iam_optionmenu  GuiOptionMenu me = (GuiOptionMenu) _GuiObject_getUserData (widget)
+#elif cocoa
+	#define iam_optionmenu  GuiOptionMenu me = (GuiOptionMenu) [(GuiCocoaLabel *) widget userData];
+#elif motif
+	#define iam_optionmenu  GuiOptionMenu me = (GuiOptionMenu) widget -> userData
+#endif
+
+#if gtk
+	static void _guiGtkOptionMenu_destroyCallback (GuiObject widget, gpointer void_me) {
+		(void) widget;
 		iam (GuiOptionMenu);
+		forget (my d_options);
 		forget (me);
 	}
 #elif cocoa
@@ -35,20 +47,23 @@ Thing_implement (GuiOptionMenu, GuiControl, 0);
         [self removeAllItems];
         [self setMenu:nil];
         
-		forget (me);
+        forget (my d_options);
+		forget (me);   
 		trace (U"deleting an option menu");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		d_userData = (GuiOptionMenu) userData;
+		d_userData = (GuiOptionMenu)userData;
 	}
 	@end
 #elif motif
-	static void _guiMotifOptionMenu_destroyCallback (GuiObject /* widget */, XtPointer void_me, XtPointer /* call */) {
+	static void _guiMotifOptionMenu_destroyCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
+		(void) widget; (void) call;
 		iam (GuiOptionMenu);
+		forget (my d_options);
 		forget (me);
 	}
 #endif
@@ -67,6 +82,7 @@ void GuiOptionMenu_init (GuiOptionMenu me, GuiForm parent, int left, int right,
 {
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
+	my d_options = Ordered_create ();
 	#if gtk
 		my d_widget = gtk_combo_box_new_text ();
 		gtk_widget_set_size_request (GTK_WIDGET (my d_widget), right - left, bottom - top + 8);
@@ -86,20 +102,20 @@ void GuiOptionMenu_init (GuiOptionMenu me, GuiForm parent, int left, int right,
 
 
 	#elif motif
-		my d_xmMenuBar = XmCreateMenuBar (parent -> d_widget, "UiOptionMenu", nullptr, 0);
+		my d_xmMenuBar = XmCreateMenuBar (parent -> d_widget, "UiOptionMenu", NULL, 0);
 		XtVaSetValues (my d_xmMenuBar, XmNx, left - 4, XmNy, top - 4
 			#if mac
 				- 1
 			#endif
-			, XmNwidth, right - left + 8, XmNheight, bottom - top + 8, nullptr);
-		my d_xmCascadeButton = XmCreateCascadeButton (my d_xmMenuBar, "choice", nullptr, 0);
-		my d_widget = XmCreatePulldownMenu (my d_xmMenuBar, "choice", nullptr, 0);
+			, XmNwidth, right - left + 8, XmNheight, bottom - top + 8, NULL);
+		my d_xmCascadeButton = XmCreateCascadeButton (my d_xmMenuBar, "choice", NULL, 0);
+		my d_widget = XmCreatePulldownMenu (my d_xmMenuBar, "choice", NULL, 0);
 		if (flags & GuiMenu_INSENSITIVE)
 			XtSetSensitive (my d_widget, False);
-		XtVaSetValues (my d_xmCascadeButton, XmNsubMenuId, my d_widget, nullptr);
+		XtVaSetValues (my d_xmCascadeButton, XmNsubMenuId, my d_widget, NULL);
 		XtManageChild (my d_xmCascadeButton);
-		XtVaSetValues (my d_xmMenuBar, XmNwidth, right - left + 8, nullptr);   // BUG: twice?
-		XtVaSetValues (my d_xmCascadeButton, XmNx, 4, XmNy, 4, XmNwidth, right - left, XmNheight, bottom - top, nullptr);
+		XtVaSetValues (my d_xmMenuBar, XmNwidth, right - left + 8, NULL);   // BUG: twice?
+		XtVaSetValues (my d_xmCascadeButton, XmNx, 4, XmNy, 4, XmNwidth, right - left, XmNheight, bottom - top, NULL);
 	#endif
 
 	#if gtk
@@ -112,8 +128,8 @@ void GuiOptionMenu_init (GuiOptionMenu me, GuiForm parent, int left, int right,
 
 GuiOptionMenu GuiOptionMenu_create (GuiForm parent, int left, int right, int top, int bottom, uint32 flags) {
 	autoGuiOptionMenu me = Thing_new (GuiOptionMenu);
-	GuiOptionMenu_init (me.get(), parent, left, right, top, bottom, flags);
-	return me.releaseToAmbiguousOwner();
+	GuiOptionMenu_init (me.peek(), parent, left, right, top, bottom, flags);
+	return me.transfer();
 }
 
 GuiOptionMenu GuiOptionMenu_createShown (GuiForm parent, int left, int right, int top, int bottom, uint32 flags) {
@@ -126,16 +142,16 @@ GuiOptionMenu GuiOptionMenu_createShown (GuiForm parent, int left, int right, in
 static void cb_optionChanged (GuiObject w, XtPointer void_me, XtPointer call) {
 	iam (GuiOptionMenu);
 	(void) call;
-	for (int i = 1; i <= my d_options.size; i ++) {
-		GuiMenuItem item = my d_options.at [i];
+	for (int i = 1; i <= my d_options -> size; i ++) {
+		GuiMenuItem item = static_cast <GuiMenuItem> (my d_options -> item [i]);
 		if (item -> d_widget == w) {
-			XtVaSetValues (my d_xmCascadeButton, XmNlabelString, Melder_peek32to8 (item -> d_widget -> name), nullptr);
-			XmToggleButtonSetState (item -> d_widget, true, false);
+			XtVaSetValues (my d_xmCascadeButton, XmNlabelString, Melder_peek32to8 (item -> d_widget -> name), NULL);
+			XmToggleButtonSetState (item -> d_widget, TRUE, FALSE);
 			if (Melder_debug == 11) {
 				Melder_warning (i, U" \"", item -> d_widget -> name, U"\"");
 			}
 		} else {
-			XmToggleButtonSetState (item -> d_widget, false, false);
+			XmToggleButtonSetState (item -> d_widget, FALSE, FALSE);
 		}
 	}
 }
@@ -145,10 +161,10 @@ void GuiOptionMenu_addOption (GuiOptionMenu me, const char32 *text) {
 	#if gtk
 		gtk_combo_box_append_text (GTK_COMBO_BOX (my d_widget), Melder_peek32to8 (text));
 	#elif motif
-		autoGuiMenuItem menuItem = Thing_new (GuiMenuItem);
-		menuItem -> d_widget = XtVaCreateManagedWidget (Melder_peek32to8 (text), xmToggleButtonWidgetClass, my d_widget, nullptr);
+		GuiMenuItem menuItem = Thing_new (GuiMenuItem);
+		menuItem -> d_widget = XtVaCreateManagedWidget (Melder_peek32to8 (text), xmToggleButtonWidgetClass, my d_widget, NULL);
 		XtAddCallback (menuItem -> d_widget, XmNvalueChangedCallback, cb_optionChanged, (XtPointer) me);
-		my d_options. addItem_move (menuItem.move());
+		Collection_addItem (my d_options, menuItem);
     #elif cocoa
         GuiCocoaOptionMenu *menu = (GuiCocoaOptionMenu *) my d_widget;
         [menu addItemWithTitle: [NSString stringWithUTF8String: Melder_peek32to8 (text)]];
@@ -161,8 +177,8 @@ int GuiOptionMenu_getValue (GuiOptionMenu me) {
 		// TODO: Graag even een check :)
 		my d_value = gtk_combo_box_get_active (GTK_COMBO_BOX (my d_widget)) + 1;
 	#elif motif
-		for (int i = 1; i <= my d_options.size; i ++) {
-			GuiMenuItem menuItem = my d_options.at [i];
+		for (int i = 1; i <= my d_options -> size; i ++) {
+			GuiMenuItem menuItem = static_cast <GuiMenuItem> (my d_options -> item [i]);
 			if (XmToggleButtonGetState (menuItem -> d_widget))
 				my d_value = i;
 		}
@@ -180,11 +196,11 @@ void GuiOptionMenu_setValue (GuiOptionMenu me, int value) {
         GuiCocoaOptionMenu *menu = (GuiCocoaOptionMenu *) my d_widget;
         [menu   selectItemAtIndex: value - 1];
 	#elif motif
-		for (int i = 1; i <= my d_options.size; i ++) {
-			GuiMenuItem menuItem = my d_options.at [i];
+		for (int i = 1; i <= my d_options -> size; i ++) {
+			GuiMenuItem menuItem = static_cast <GuiMenuItem> (my d_options -> item [i]);
 			XmToggleButtonSetState (menuItem -> d_widget, i == value, False);
 			if (i == value) {
-				XtVaSetValues (my d_xmCascadeButton, XmNlabelString, Melder_peek32to8 (menuItem -> d_widget -> name), nullptr);
+				XtVaSetValues (my d_xmCascadeButton, XmNlabelString, Melder_peek32to8 (menuItem -> d_widget -> name), NULL);
 			}
 		}
 	#endif
diff --git a/sys/GuiP.h b/sys/GuiP.h
index 110b482..ba12331 100644
--- a/sys/GuiP.h
+++ b/sys/GuiP.h
@@ -163,8 +163,7 @@ class GuiControlBlockValueChangedCallbacks {
 			GuiObject textFocus;
 			bool duringUpdate;
 			#if win
-				HINSTANCE instance;   // first argument of WinMain
-				int commandShow;   // another argument of WinMain
+				HINSTANCE instance;   /* First argument of WinMain. */
 			#elif mac
 				WindowPtr modalDialog;
 			#endif
@@ -292,7 +291,7 @@ class GuiControlBlockValueChangedCallbacks {
 		void _GuiText_handleFocusReception (GuiObject widget);
 		void _GuiText_handleFocusLoss (GuiObject widget);
 		#if mac
-		void _GuiMac_clearTheTextFocus ();
+		void _GuiMac_clearTheTextFocus (void);
 		#endif
 		void _GuiText_setTheTextFocus (GuiObject widget);
 		void _GuiText_handleValueChanged (GuiObject widget);
@@ -306,10 +305,10 @@ class GuiControlBlockValueChangedCallbacks {
 			int _GuiMacText_tryToHandleReturnKey (EventHandlerCallRef eventHandlerCallRef, EventRef eventRef, GuiObject widget, EventRecord *event);
 			int _GuiMacText_tryToHandleClipboardShortcut (EventHandlerCallRef eventHandlerCallRef, EventRef eventRef, GuiObject widget, unsigned char charCode, EventRecord *event);
 			void _GuiMacText_handleClick (GuiObject widget, EventRecord *event);
-			void _GuiMac_makeTextCaretBlink ();
+			void _GuiMac_makeTextCaretBlink (void);
 		#endif
-		void _GuiText_init ();
-		void _GuiText_exit ();
+		void _GuiText_init (void);
+		void _GuiText_exit (void);
 
 	#endif
 #endif
diff --git a/sys/GuiProgressBar.cpp b/sys/GuiProgressBar.cpp
index 4f5b58d..6aeaa1f 100644
--- a/sys/GuiProgressBar.cpp
+++ b/sys/GuiProgressBar.cpp
@@ -37,11 +37,11 @@ Thing_implement (GuiProgressBar, GuiControl, 0);
 		trace (U"deleting a progress bar");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiProgressBar));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiProgressBar));
 		d_userData = static_cast <GuiProgressBar> (userData);
 	}
 	@end
@@ -57,23 +57,23 @@ Thing_implement (GuiProgressBar, GuiControl, 0);
 
 GuiProgressBar GuiProgressBar_create (GuiForm parent, int left, int right, int top, int bottom, uint32 /* flags */)
 {
-	autoGuiProgressBar me = Thing_new (GuiProgressBar);
+	GuiProgressBar me = Thing_new (GuiProgressBar);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
 		my d_widget = gtk_progress_bar_new ();
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#elif cocoa
 		my d_cocoaProgressBar = [[GuiCocoaProgressBar alloc] init];
 		my d_widget = my d_cocoaProgressBar;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[my d_cocoaProgressBar   setUserData: me.get()];
+		[my d_cocoaProgressBar   setUserData: me];
 		[my d_cocoaProgressBar   setIndeterminate: false];
 		[my d_cocoaProgressBar   setMaxValue: 1.0];
 	#elif motif
-		my d_widget = XmCreateScale (parent -> d_widget, "scale", nullptr, 0);
-		_GuiObject_setUserData (my d_widget, me.get());
+		my d_widget = XmCreateScale (parent -> d_widget, "scale", NULL, 0);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		XtVaSetValues (my d_widget, XmNorientation, XmHORIZONTAL,
 			XmNminimum, 0, XmNmaximum, 10000, XmNvalue, 0,
@@ -83,17 +83,17 @@ GuiProgressBar GuiProgressBar_create (GuiForm parent, int left, int right, int t
 			#ifdef macintosh
 				//XmNscaleWidth, 340,
 			#endif
-			nullptr);
+			NULL);
 	#endif
 
 	#if gtk
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkProgressBar_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_guiGtkProgressBar_destroyCallback), me);
 	#elif cocoa
 	#elif motif
-		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifProgressBar_destroyCallback, me.get());
+		XtAddCallback (my d_widget, XmNdestroyCallback, _guiMotifProgressBar_destroyCallback, me);
 	#endif
 
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiProgressBar GuiProgressBar_createShown (GuiForm parent, int left, int right, int top, int bottom, uint32 flags)
diff --git a/sys/GuiRadioButton.cpp b/sys/GuiRadioButton.cpp
index 8d8f0cd..5caf47b 100644
--- a/sys/GuiRadioButton.cpp
+++ b/sys/GuiRadioButton.cpp
@@ -30,6 +30,8 @@
 
 Thing_implement (GuiRadioButton, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if motif
 	#define iam_radiobutton \
 		Melder_assert (widget -> widgetClass == xmToggleButtonWidgetClass); \
@@ -59,8 +61,8 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 		trace (U"enter");
 		if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
 			trace (U"on");
-			if (my d_valueChangedCallback && ! my d_blockValueChangedCallbacks) {
-				struct structGuiRadioButtonEvent event { me };
+			if (my d_valueChangedCallback != NULL && ! my d_blockValueChangedCallbacks) {
+				struct structGuiRadioButtonEvent event = { me };
 				event. position = _GuiRadioButton_getPosition (me);
 				my d_valueChangedCallback (my d_valueChangedBoss, & event);
 			}
@@ -71,16 +73,16 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 		GuiRadioButton d_userData;
 	}
 	- (void) dealloc {   // override
-		GuiRadioButton me = d_userData;
+		GuiRadioButton me = self -> d_userData;
 		forget (me);
 		trace (U"deleting a radio button");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiRadioButton));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiRadioButton));
 		d_userData = static_cast <GuiRadioButton> (userData);
 	}
 	- (void) _guiCocoaRadioButton_activateCallback: (id) widget {
@@ -90,15 +92,15 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 		/*
 		 * Deselect the sister buttons.
 		 */
-		for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+		for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 			[sibling -> d_cocoaRadioButton   setState: NSOffState];
 		}
-		for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+		for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 			[sibling -> d_cocoaRadioButton   setState: NSOffState];
 		}
-		if (my d_valueChangedCallback) {
+		if (my d_valueChangedCallback != NULL) {
 			Melder_assert (! my d_blockValueChangedCallbacks);
-			struct structGuiRadioButtonEvent event { me };
+			struct structGuiRadioButtonEvent event = { me };
 			event. position = _GuiRadioButton_getPosition (me);
 			my d_valueChangedCallback (my d_valueChangedBoss, & event);
 		}
@@ -116,14 +118,14 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 		/*
 		 * Deselect the sister buttons.
 		 */
-		for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+		for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 			Button_SetCheck (sibling -> d_widget -> window, BST_UNCHECKED);
 		}
-		for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+		for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 			Button_SetCheck (sibling -> d_widget -> window, BST_UNCHECKED);
 		}
-		if (my d_valueChangedCallback) {
-			struct structGuiRadioButtonEvent event { me };
+		if (my d_valueChangedCallback != NULL) {
+			struct structGuiRadioButtonEvent event = { me };
 			event. position = _GuiRadioButton_getPosition (me);
 			my d_valueChangedCallback (my d_valueChangedBoss, & event);
 		}
@@ -137,20 +139,20 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 	void _GuiMacRadioButton_handleClick (GuiObject widget, EventRecord *macEvent) {
 		iam_radiobutton;
 		_GuiMac_clipOnParent (widget);
-		bool clicked = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, nullptr);
+		bool clicked = HandleControlClick (widget -> nat.control.handle, macEvent -> where, macEvent -> modifiers, NULL);
 		GuiMac_clipOff ();
 		if (clicked) {
 			/*
 			 * Deselect the sister buttons.
 			 */
-			for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+			for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 				SetControlValue (sibling -> d_widget -> nat.control.handle, 0);
 			}
-			for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+			for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 				SetControlValue (sibling -> d_widget -> nat.control.handle, 0);
 			}
-			if (my d_valueChangedCallback) {
-				struct structGuiRadioButtonEvent event { me };
+			if (my d_valueChangedCallback != NULL) {
+				struct structGuiRadioButtonEvent event = { me };
 				event. position = _GuiRadioButton_getPosition (me);
 				my d_valueChangedCallback (my d_valueChangedBoss, & event);
 			}
@@ -158,43 +160,43 @@ static int _GuiRadioButton_getPosition (GuiRadioButton me) {
 	}
 #endif
 
-static GuiRadioButton latestRadioButton = nullptr;
+static GuiRadioButton latestRadioButton = NULL;
 
 void GuiRadioGroup_begin () {
-	latestRadioButton = nullptr;
+	latestRadioButton = NULL;
 }
 
 void GuiRadioGroup_end () {
-	latestRadioButton = nullptr;
+	latestRadioButton = NULL;
 }
 
 GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiRadioButtonCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiRadioButtonEvent event), void *valueChangedBoss, uint32 flags)
 {
 	trace (U"begin: text %", buttonText);
-	autoGuiRadioButton me = Thing_new (GuiRadioButton);
+	GuiRadioButton me = Thing_new (GuiRadioButton);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_valueChangedCallback = valueChangedCallback;
 	my d_valueChangedBoss = valueChangedBoss;
 	my d_previous = latestRadioButton;
-	my d_next = nullptr;
+	my d_next = NULL;
 	#if gtk
-		my d_widget = gtk_radio_button_new_with_label_from_widget (latestRadioButton ? GTK_RADIO_BUTTON (latestRadioButton -> d_widget) : nullptr, Melder_peek32to8 (buttonText));
-		_GuiObject_setUserData (my d_widget, me.get());
+		my d_widget = gtk_radio_button_new_with_label_from_widget (latestRadioButton ? GTK_RADIO_BUTTON (latestRadioButton -> d_widget) : NULL, Melder_peek32to8 (buttonText));
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiRadioButton_SET) {
-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), true);
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), TRUE);
 		} else {
-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), false);
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), FALSE);
 		}
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkRadioButton_destroyCallback), me.get());
-		g_signal_connect (GTK_TOGGLE_BUTTON (my d_widget), "toggled", G_CALLBACK (_GuiGtkRadioButton_handleToggle), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkRadioButton_destroyCallback), me);
+		g_signal_connect (GTK_TOGGLE_BUTTON (my d_widget), "toggled", G_CALLBACK (_GuiGtkRadioButton_handleToggle), me);
 	#elif cocoaXXX
 		my d_cocoaRadioButton = [[GuiCocoaRadioButton alloc] init];
 		my d_widget = my d_cocoaRadioButton;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[my d_cocoaRadioButton   setUserData: me.get()];
+		[my d_cocoaRadioButton   setUserData: me];
 		[my d_cocoaRadioButton setButtonType: NSRadioButton];
 		[my d_cocoaRadioButton setTitle: (NSString *) Melder_peek32toCfstring (buttonText)];
 		if (flags & GuiCheckButton_SET) {
@@ -206,7 +208,7 @@ GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int t
 		my d_cocoaRadioButton = [[GuiCocoaRadioButton alloc] init];
 		my d_widget = my d_cocoaRadioButton;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[my d_cocoaRadioButton   setUserData: me.get()];
+		[my d_cocoaRadioButton   setUserData: me];
 		[my d_cocoaRadioButton setButtonType: NSRadioButton];
 		NSImage *image = [my d_cocoaRadioButton image], *alternateImage = [my d_cocoaRadioButton alternateImage];
 		[my d_cocoaRadioButton setButtonType: NSSwitchButton];
@@ -221,7 +223,7 @@ GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int t
 	#elif cocoa
 		NSRect matrixRect = NSMakeRect (20.0, 20.0, 125.0, 125.0);
 		my d_cocoaRadioButton = [[GuiCocoaRadioButton alloc] initWithFrame:matrixRect];
-		[my d_cocoaRadioButton   setUserData: me.get()];
+		[my d_cocoaRadioButton   setUserData: me];
 		[my d_cocoaRadioButton setButtonType: NSRadioButton];
 		[my d_cocoaRadioButton setTitle: (NSString *) Melder_peek32toCfstring (buttonText)];
     	NSMatrix *radioMatrix = [[NSMatrix alloc] initWithFrame: matrixRect   mode: NSRadioModeMatrix
@@ -229,7 +231,7 @@ GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int t
 		my d_widget = (GuiObject) radioMatrix; //my d_cocoaRadioButton;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		[radioMatrix   addSubview: my d_cocoaRadioButton];
-		[my d_cocoaRadioButton   setUserData: me.get()];
+		[my d_cocoaRadioButton   setUserData: me];
 		[my d_cocoaRadioButton setButtonType: NSRadioButton];
 		[my d_cocoaRadioButton setTitle: (NSString *) Melder_peek32toCfstring (buttonText)];
 		if (flags & GuiCheckButton_SET) {
@@ -239,27 +241,27 @@ GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int t
 		[my d_cocoaRadioButton setAction: @selector (_guiCocoaRadioButton_activateCallback:)];
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmToggleButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> isRadioButton = true;
 		my d_widget -> window = CreateWindow (L"button", Melder_peek32toW (_GuiWin_expandAmpersands (buttonText)),
 			WS_CHILD
 			| ( my d_widget -> parent -> radioBehavior ? BS_AUTORADIOBUTTON : BS_RADIOBUTTON )
 			| WS_CLIPSIBLINGS,
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, nullptr);
+			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
-		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), false);
+		SetWindowFont (my d_widget -> window, GetStockFont (ANSI_VAR_FONT), FALSE);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		if (flags & GuiRadioButton_SET) {
 			Button_SetCheck (my d_widget -> window, BST_CHECKED);
 		}
 	#elif mac
 		my d_widget = _Gui_initializeWidget (xmToggleButtonWidgetClass, parent -> d_widget, buttonText);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_widget -> isRadioButton = true;
-		CreateRadioButtonControl (my d_widget -> macWindow, & my d_widget -> rect, nullptr,
+		CreateRadioButtonControl (my d_widget -> macWindow, & my d_widget -> rect, NULL,
 			(flags & GuiRadioButton_SET) != 0, true, & my d_widget -> nat.control.handle);
-		Melder_assert (my d_widget -> nat.control.handle);
+		Melder_assert (my d_widget -> nat.control.handle != NULL);
 		SetControlReference (my d_widget -> nat.control.handle, (long) my d_widget);
 		my d_widget -> isControl = true;
 		_GuiNativeControl_setFont (my d_widget, 0, 13);
@@ -267,20 +269,20 @@ GuiRadioButton GuiRadioButton_create (GuiForm parent, int left, int right, int t
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 	#endif
 	if (flags & GuiRadioButton_INSENSITIVE) {
-		GuiThing_setSensitive (me.get(), false);
+		GuiThing_setSensitive (me, false);
 	}
 	if (my d_previous) {
-		Melder_assert (my d_previous);
+		Melder_assert (my d_previous != NULL);
 		Melder_assert (my d_previous -> classInfo == classGuiRadioButton);
-		my d_previous -> d_next = me.get();
+		my d_previous -> d_next = me;
 	}
-	latestRadioButton = me.get();
+	latestRadioButton = me;
 	trace (U"end");
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiRadioButton GuiRadioButton_createShown (GuiForm parent, int left, int right, int top, int bottom,
-	const char32 *buttonText, GuiRadioButtonCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	const char32 *buttonText, void (*valueChangedCallback) (void *boss, GuiRadioButtonEvent event), void *valueChangedBoss, uint32 flags)
 {
 	GuiRadioButton me = GuiRadioButton_create (parent, left, right, top, bottom, buttonText, valueChangedCallback, valueChangedBoss, flags);
 	GuiThing_show (me);
@@ -305,16 +307,16 @@ void GuiRadioButton_set (GuiRadioButton me) {
 	trace (U"enter");
 	GuiControlBlockValueChangedCallbacks block (me);   // the value should be set without calling the valueChanged callback (crucial on GTK)
 	#if gtk
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), true);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (my d_widget), TRUE);
 	#elif cocoa
 		[my d_cocoaRadioButton   setState: NSOnState];
 		/*
 		 * Deselect the sister buttons.
 		 */
-		for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+		for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 			[sibling -> d_cocoaRadioButton   setState: NSOffState];
 		}
-		for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+		for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 			[sibling -> d_cocoaRadioButton   setState: NSOffState];
 		}
 	#elif win
@@ -322,10 +324,10 @@ void GuiRadioButton_set (GuiRadioButton me) {
 		/*
 		 * Deselect the sister buttons.
 		 */
-		for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+		for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 			Button_SetCheck (sibling -> d_widget -> window, BST_UNCHECKED);
 		}
-		for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+		for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 			Button_SetCheck (sibling -> d_widget -> window, BST_UNCHECKED);
 		}
 	#elif mac
@@ -333,10 +335,10 @@ void GuiRadioButton_set (GuiRadioButton me) {
 		/*
 		 * Deselect the sister buttons.
 		 */
-		for (GuiRadioButton sibling = my d_previous; sibling != nullptr; sibling = sibling -> d_previous) {
+		for (GuiRadioButton sibling = my d_previous; sibling != NULL; sibling = sibling -> d_previous) {
 			SetControlValue (sibling -> d_widget -> nat.control.handle, false);
 		}
-		for (GuiRadioButton sibling = my d_next; sibling != nullptr; sibling = sibling -> d_next) {
+		for (GuiRadioButton sibling = my d_next; sibling != NULL; sibling = sibling -> d_next) {
 			SetControlValue (sibling -> d_widget -> nat.control.handle, false);
 		}
 	#endif
diff --git a/sys/GuiScale.cpp b/sys/GuiScale.cpp
index 8b3aa78..6c7b656 100644
--- a/sys/GuiScale.cpp
+++ b/sys/GuiScale.cpp
@@ -27,6 +27,8 @@
 
 Thing_implement (GuiScale, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_scale \
 		Melder_assert (widget -> widgetClass == xmScaleWidgetClass); \
@@ -52,11 +54,11 @@ Thing_implement (GuiScale, GuiControl, 0);
 		trace (U"deleting a progress bar");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiScale));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiScale));
 		d_userData = static_cast <GuiScale> (userData);
 	}
 	@end
@@ -81,39 +83,39 @@ Thing_implement (GuiScale, GuiControl, 0);
 GuiScale GuiScale_create (GuiForm parent, int left, int right, int top, int bottom,
 	int minimum, int maximum, int value, uint32 /* flags */)
 {
-	autoGuiScale me = Thing_new (GuiScale);
+	GuiScale me = Thing_new (GuiScale);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
-		my d_widget = gtk_hscrollbar_new (nullptr);
+		my d_widget = gtk_hscrollbar_new (NULL);
 		gtk_range_set_range (GTK_RANGE (my d_widget), 0, 1000);
 		GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (my d_widget));
 		adj -> page_size = 150;
 		gtk_adjustment_changed (adj);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkScale_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkScale_destroyCallback), me);
 	#elif cocoa
 		my d_cocoaScale = [[GuiCocoaScale alloc] init];
 		my d_widget = my d_cocoaScale;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[my d_cocoaScale   setUserData: me.get()];
+		[my d_cocoaScale   setUserData: me];
 		[my d_cocoaScale   setIndeterminate: false];
 		[my d_cocoaScale   setMinValue: minimum];
 		[my d_cocoaScale   setMaxValue: maximum];
 		[my d_cocoaScale   setDoubleValue: value];
 	#elif motif
-		my d_widget = XmCreateScale (parent -> d_widget, "scale", nullptr, 0);
-		_GuiObject_setUserData (my d_widget, me.get());
+		my d_widget = XmCreateScale (parent -> d_widget, "scale", NULL, 0);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		XtVaSetValues (my d_widget, XmNorientation, XmHORIZONTAL,
 			XmNminimum, minimum, XmNmaximum, maximum, XmNvalue, value, //XmNy, 300,
 			#ifdef macintosh
 				//XmNscaleWidth, 340,
 			#endif
-			nullptr);
+			NULL);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiScale GuiScale_createShown (GuiForm parent, int left, int right, int top, int bottom,
diff --git a/sys/GuiScrollBar.cpp b/sys/GuiScrollBar.cpp
index a183e62..4fdcf5d 100644
--- a/sys/GuiScrollBar.cpp
+++ b/sys/GuiScrollBar.cpp
@@ -21,6 +21,8 @@
 
 Thing_implement (GuiScrollBar, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_scrollbar \
 		Melder_assert (widget -> widgetClass == xmScrollBarWidgetClass); \
@@ -31,7 +33,8 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 #endif
 
 #if gtk
-	static void _GuiGtkScrollBar_destroyCallback (GuiObject /* widget */, gpointer void_me) {
+	static void _GuiGtkScrollBar_destroyCallback (GuiObject widget, gpointer void_me) {
+		(void) widget;
 		iam (GuiScrollBar);
 		forget (me);
 	}
@@ -41,7 +44,7 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 		if (my d_blockValueChangedCallbacks) {
 			my d_blockValueChangedCallbacks = false;
 		} else if (my d_valueChangedCallback) {
-			struct structGuiScrollBarEvent event { me };
+			struct structGuiScrollBarEvent event = { me };
 			try {
 				my d_valueChangedCallback (my d_valueChangedBoss, & event);
 			} catch (MelderError) {
@@ -70,11 +73,11 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
     trace (U"deleting a scroll bar");
     [super dealloc];
 }
-- (GuiThing) getUserData {
+- (GuiThing) userData {
     return d_userData;
 }
 - (void) setUserData: (GuiThing) userData {
-	Melder_assert (userData == nullptr || Thing_isa (userData, classGuiScrollBar));
+	Melder_assert (userData == NULL || Thing_isa (userData, classGuiScrollBar));
 	d_userData = static_cast <GuiScrollBar> (userData);
 }
 - (void) setMinimum:(double)minimum maximum:(double)maximum value:(double)value sliderSize:(double)sliderSize increment:(double)increment pageIncrement:(double)pageIncrement {
@@ -98,7 +101,7 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 	GuiScrollBar me = (GuiScrollBar) d_userData;
 	[self setMinimum: _m_minimum maximum: _m_maximum value: _m_value sliderSize: _m_sliderSize increment: _m_increment pageIncrement: _m_pageIncrement];
     if (my d_valueChangedCallback) {
-        struct structGuiScrollBarEvent event { me };
+        struct structGuiScrollBarEvent event = { me };
         try {
             my d_valueChangedCallback (my d_valueChangedBoss, & event);
         } catch (MelderError) {
@@ -169,7 +172,7 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 		} break;
     }
     if (my d_valueChangedCallback) {
-        struct structGuiScrollBarEvent event { me };
+        struct structGuiScrollBarEvent event = { me };
         try {
             my d_valueChangedCallback (my d_valueChangedBoss, & event);
         } catch (MelderError) {
@@ -195,7 +198,7 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 	static void _GuiMotifScrollBar_valueChangedCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		iam (GuiScrollBar);
 		if (my d_valueChangedCallback) {
-			struct structGuiScrollBarEvent event { me };
+			struct structGuiScrollBarEvent event = { me };
 			try {
 				my d_valueChangedCallback (my d_valueChangedBoss, & event);
 			} catch (MelderError) {
@@ -207,9 +210,9 @@ Thing_implement (GuiScrollBar, GuiControl, 0);
 
 GuiScrollBar GuiScrollBar_create (GuiForm parent, int left, int right, int top, int bottom,
 	double minimum, double maximum, double value, double sliderSize, double increment, double pageIncrement,
-	GuiScrollBarCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	void (*valueChangedCallback) (void *boss, GuiScrollBarEvent event), void *valueChangedBoss, uint32 flags)
 {
-	autoGuiScrollBar me = Thing_new (GuiScrollBar);
+	GuiScrollBar me = Thing_new (GuiScrollBar);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	my d_valueChangedCallback = valueChangedCallback;
@@ -217,15 +220,15 @@ GuiScrollBar GuiScrollBar_create (GuiForm parent, int left, int right, int top,
 	#if gtk
 		GtkObject *adj = gtk_adjustment_new (value, minimum, maximum, increment, pageIncrement, sliderSize);
 		my d_widget = flags & GuiScrollBar_HORIZONTAL ? gtk_hscrollbar_new (GTK_ADJUSTMENT (adj)) : gtk_vscrollbar_new (GTK_ADJUSTMENT (adj));
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		g_signal_connect (G_OBJECT (my d_widget), "value-changed", G_CALLBACK (_GuiGtkScrollBar_valueChangedCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "value-changed", G_CALLBACK (_GuiGtkScrollBar_valueChangedCallback), me);
 	#elif cocoa
 		NSRect dummyFrame = flags & GuiScrollBar_HORIZONTAL ? NSMakeRect (20, 20, 100, [NSScroller scrollerWidth]) : NSMakeRect (20, 20, [NSScroller scrollerWidth], 100);
 		GuiCocoaScrollBar *scroller = [[GuiCocoaScrollBar alloc] initWithFrame: dummyFrame];
 		my d_widget = scroller;
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		[scroller setUserData: me.get()];
+		[scroller setUserData: me];
 		[scroller setEnabled: YES];
 		[scroller   setMinimum: minimum   maximum: maximum   value: value   sliderSize: sliderSize   increment: increment   pageIncrement: pageIncrement];
         //[scroller setScrollerStyle: NSScrollerStyleOverlay];
@@ -241,11 +244,11 @@ GuiScrollBar GuiScrollBar_create (GuiForm parent, int left, int right, int top,
 			XmNsliderSize, (int) sliderSize,
 			XmNincrement, (int) increment,
 			XmNpageIncrement, (int) pageIncrement,
-			nullptr);
-		_GuiObject_setUserData (my d_widget, me.get());
+			NULL);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		XtAddCallback (my d_widget, XmNvalueChangedCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me.get());
-		XtAddCallback (my d_widget, XmNdragCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me.get());
+		XtAddCallback (my d_widget, XmNvalueChangedCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me);
+		XtAddCallback (my d_widget, XmNdragCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me);
 	#elif mac
 		my d_widget = XtVaCreateWidget ("scrollBar",
 			xmScrollBarWidgetClass, parent -> d_widget,
@@ -256,18 +259,18 @@ GuiScrollBar GuiScrollBar_create (GuiForm parent, int left, int right, int top,
 			XmNsliderSize, (int) sliderSize,
 			XmNincrement, (int) increment,
 			XmNpageIncrement, (int) pageIncrement,
-			nullptr);
-		_GuiObject_setUserData (my d_widget, me.get());
+			NULL);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		XtAddCallback (my d_widget, XmNvalueChangedCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me.get());
-		XtAddCallback (my d_widget, XmNdragCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me.get());
+		XtAddCallback (my d_widget, XmNvalueChangedCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me);
+		XtAddCallback (my d_widget, XmNdragCallback, _GuiMotifScrollBar_valueChangedCallback, (XtPointer) me);
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiScrollBar GuiScrollBar_createShown (GuiForm parent, int left, int right, int top, int bottom,
 	double minimum, double maximum, double value, double sliderSize, double increment, double pageIncrement,
-	GuiScrollBarCallback valueChangedCallback, Thing valueChangedBoss, uint32 flags)
+	void (*valueChangedCallback) (void *boss, GuiScrollBarEvent event), void *valueChangedBoss, uint32 flags)
 {
 	GuiScrollBar me = GuiScrollBar_create (parent, left, right, top, bottom,
 		minimum, maximum, value, sliderSize, increment, pageIncrement,
@@ -321,9 +324,9 @@ void GuiScrollBar_set (GuiScrollBar me, double minimum, double maximum, double v
 			pageIncrement: NUMdefined (pageIncrement) ? pageIncrement : [scroller m_pageIncrement]];
 	#elif motif
 		if (NUMdefined (minimum))
-			XtVaSetValues (my d_widget, XmNminimum, (int) minimum, nullptr);
+			XtVaSetValues (my d_widget, XmNminimum, (int) minimum, NULL);
 		if (NUMdefined (maximum))
-			XtVaSetValues (my d_widget, XmNmaximum, (int) maximum, nullptr);
+			XtVaSetValues (my d_widget, XmNmaximum, (int) maximum, NULL);
 		int oldValue, oldSliderSize, oldIncrement, oldPageIncrement;
 		XmScrollBarGetValues (my d_widget, & oldValue, & oldSliderSize, & oldIncrement, & oldPageIncrement);
 		XmScrollBarSetValues (my d_widget,
@@ -346,8 +349,6 @@ int GuiScrollBar_getValue (GuiScrollBar me) {
 		int value, slider, incr, pincr;
 		XmScrollBarGetValues (my d_widget, & value, & slider, & incr, & pincr);
 		return value;
-	#else
-		return 0;
 	#endif
 }
 
@@ -361,8 +362,6 @@ int GuiScrollBar_getSliderSize (GuiScrollBar me) {
 		int value, slider, incr, pincr;
 		XmScrollBarGetValues (my d_widget, & value, & slider, & incr, & pincr);
 		return slider;
-	#else
-		return 0;
 	#endif
 }
 
diff --git a/sys/GuiScrolledWindow.cpp b/sys/GuiScrolledWindow.cpp
index 393907b..b308902 100644
--- a/sys/GuiScrolledWindow.cpp
+++ b/sys/GuiScrolledWindow.cpp
@@ -21,6 +21,8 @@
 
 Thing_implement (GuiScrolledWindow, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac
 	#define iam_scrolledwindow \
 		Melder_assert (widget -> widgetClass == xmScrolledWindowWidgetClass); \
@@ -46,11 +48,11 @@ Thing_implement (GuiScrolledWindow, GuiControl, 0);
 		trace (U"deleting a scrolled window");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiScrolledWindow));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiScrolledWindow));
 		d_userData = static_cast <GuiScrolledWindow> (userData);
 	}
 	@end
@@ -75,33 +77,33 @@ Thing_implement (GuiScrolledWindow, GuiControl, 0);
 GuiScrolledWindow GuiScrolledWindow_create (GuiForm parent, int left, int right, int top, int bottom,
 	int horizontalScrollbarPersistence, int verticalScrollbarPersistence, uint32 /* flags */)
 {
-	autoGuiScrolledWindow me = Thing_new (GuiScrolledWindow);
+	GuiScrolledWindow me = Thing_new (GuiScrolledWindow);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
-		my d_widget = gtk_scrolled_window_new (nullptr, nullptr);
+		my d_widget = gtk_scrolled_window_new (NULL, NULL);
 		gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (my d_widget),
 			horizontalScrollbarPersistence == 0 ? GTK_POLICY_NEVER : horizontalScrollbarPersistence == 1 ? GTK_POLICY_AUTOMATIC : GTK_POLICY_ALWAYS,
 			verticalScrollbarPersistence   == 0 ? GTK_POLICY_NEVER : verticalScrollbarPersistence   == 1 ? GTK_POLICY_AUTOMATIC : GTK_POLICY_ALWAYS);
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkScrolledWindow_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkScrolledWindow_destroyCallback), me);
 	#elif cocoa
         GuiCocoaScrolledWindow *scrollView = [[GuiCocoaScrolledWindow alloc] init];
         my d_widget = (GuiObject) scrollView;
         my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-        [scrollView setUserData: me.get()];
+        [scrollView setUserData: me];
         [scrollView setHasVerticalScroller:   YES];
         [scrollView setHasHorizontalScroller: YES];
         [scrollView setBackgroundColor: [NSColor lightGrayColor]];
 	#elif motif
-		my d_widget = XmCreateScrolledWindow (parent -> d_widget, "scrolledWindow", nullptr, 0);
-		_GuiObject_setUserData (my d_widget, me.get());
+		my d_widget = XmCreateScrolledWindow (parent -> d_widget, "scrolledWindow", NULL, 0);
+		_GuiObject_setUserData (my d_widget, me);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		Melder_assert (my classInfo == classGuiScrolledWindow);
-		trace (U"me = ", Melder_pointer (me.get()), U", user data = ", Melder_pointer (my d_widget -> userData));
+		trace (U"me = ", Melder_pointer (me), U", user data = ", Melder_pointer (my d_widget -> userData));
 	#endif
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 
diff --git a/sys/GuiShell.cpp b/sys/GuiShell.cpp
index f10532a..7d157b5 100644
--- a/sys/GuiShell.cpp
+++ b/sys/GuiShell.cpp
@@ -22,51 +22,15 @@
 
 Thing_implement (GuiShell, GuiForm, 0);
 
-#if cocoa
-	@implementation GuiCocoaShell {
-		GuiShell d_userData;
-	}
-	- (void) dealloc {   // override
-		GuiShell me = d_userData;
-		my d_cocoaShell = nullptr;   // this is already under destruction, so undangle
-		forget (me);
-		trace (U"deleting a window or dialog");
-		[super dealloc];
-	}
-	- (GuiThing) getUserData {
-		return d_userData;
-	}
-	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiShell));
-		d_userData = static_cast <GuiShell> (userData);
-	}
-	- (void) keyDown: (NSEvent *) theEvent {
-		trace (U"key down");
-	}
-	- (BOOL) windowShouldClose: (id) sender {
-		GuiCocoaShell *widget = (GuiCocoaShell *) sender;
-		GuiShell me = (GuiShell) [widget getUserData];
-		if (my d_goAwayCallback) {
-			trace (U"calling goAwayCallback)");
-			my d_goAwayCallback (my d_goAwayBoss);
-		} else {
-			trace (U"hiding window or dialog");
-			[widget orderOut: nil];
-		}
-		return false;
-	}
-	@end
-#endif
-
-void structGuiShell :: v_destroy () noexcept {
+void structGuiShell :: v_destroy () {
 	#if cocoa
-		if (our d_cocoaShell) {
-			[our d_cocoaShell setUserData: nullptr];   // undangle reference to this
+		if (our d_cocoaWindow) {
+			[our d_cocoaWindow setUserData: NULL];   // undangle reference to this
 			Melder_fatal (U"ordering out?");
-			[our d_cocoaShell orderOut: nil];
-			[our d_cocoaShell close];
-			[our d_cocoaShell release];
-			our d_cocoaShell = nullptr;   // undangle
+			[our d_cocoaWindow orderOut: nil];
+			[our d_cocoaWindow close];
+			[our d_cocoaWindow release];
+			our d_cocoaWindow = NULL;   // undangle
 		}
 	#endif
 	GuiShell_Parent :: v_destroy ();
@@ -77,7 +41,7 @@ int GuiShell_getShellWidth (GuiShell me) {
 	#if gtk
 		width = GTK_WIDGET (my d_gtkWindow) -> allocation.width;
 	#elif cocoa
-        return [my d_cocoaShell   frame].size.width;
+        return [my d_cocoaWindow frame].size.width;
 	#elif motif
 		width = my d_xmShell -> width;
 	#endif
@@ -89,7 +53,7 @@ int GuiShell_getShellHeight (GuiShell me) {
 	#if gtk
 		height = GTK_WIDGET (my d_gtkWindow) -> allocation.height;
 	#elif cocoa
-        return [my d_cocoaShell   frame].size.height;
+        return [my d_cocoaWindow frame].size.height;
 	#elif motif
 		height = my d_xmShell -> height;
 	#endif
@@ -100,7 +64,7 @@ void GuiShell_setTitle (GuiShell me, const char32 *title /* cattable */) {
 	#if gtk
 		gtk_window_set_title (my d_gtkWindow, Melder_peek32to8 (title));
 	#elif cocoa
-		[my d_cocoaShell   setTitle: (NSString *) Melder_peek32toCfstring (title)];
+		[my d_cocoaWindow setTitle: (NSString *) Melder_peek32toCfstring (title)];
 	#elif win
 		SetWindowTextW (my d_xmShell -> window, Melder_peek32toW (title));
 	#elif mac
@@ -113,19 +77,14 @@ void GuiShell_drain (GuiShell me) {
 		//gdk_window_flush (gtk_widget_get_window (my d_gtkWindow));
 		gdk_flush ();
 	#elif cocoa
-		NSEvent *nsEvent = [NSApp
-			nextEventMatchingMask: NSAnyEventMask
-			untilDate: [NSDate distantPast]
-			inMode: NSDefaultRunLoopMode
-			dequeue: NO
-			];
-		Melder_assert (my d_cocoaShell);
-        [my d_cocoaShell   flushWindow];
+        //[my d_cocoaWindow   displayIfNeeded];
+        [my d_cocoaWindow   flushWindow];
+		//[my d_cocoaWindow   display];
 	#elif win
 	#elif mac
-		Melder_assert (my d_xmShell);
-		Melder_assert (my d_xmShell -> nat.window.ptr);
-		QDFlushPortBuffer (GetWindowPort (my d_xmShell -> nat.window.ptr), nullptr);
+		Melder_assert (my d_xmShell != NULL);
+		Melder_assert (my d_xmShell -> nat.window.ptr != NULL);
+		QDFlushPortBuffer (GetWindowPort (my d_xmShell -> nat.window.ptr), NULL);
 		/*
 		 * The following TRICK cost me half a day to work out.
 		 * It turns out that after a call to QDFlushPortBuffer (),
diff --git a/sys/GuiText.cpp b/sys/GuiText.cpp
index 2ce127e..8e368b3 100644
--- a/sys/GuiText.cpp
+++ b/sys/GuiText.cpp
@@ -49,6 +49,8 @@
 
 Thing_implement (GuiText, GuiControl, 0);
 
+#undef iam
+#define iam(x)  x me = (x) void_me
 #if win || mac && useCarbon
 	#define iam_text \
 		Melder_assert (widget -> widgetClass == xmTextWidgetClass); \
@@ -62,7 +64,7 @@ Thing_implement (GuiText, GuiControl, 0);
 
 #if mac
 	#define isTextControl(w)  ((w) -> isControl != 0)
-	#define isMLTE(w)  ((w) -> d_macMlteObject != nullptr)
+	#define isMLTE(w)  ((w) -> d_macMlteObject != NULL)
 #endif
 
 #if win
@@ -139,11 +141,11 @@ void _GuiText_handleFocusLoss (GuiObject widget) {
 	 * 4. on window unmanaging
 	 */
 	if (widget == theGui.textFocus)
-		theGui.textFocus = nullptr;
+		theGui.textFocus = NULL;
 }
 
 #if mac
-void _GuiMac_clearTheTextFocus () {
+void _GuiMac_clearTheTextFocus (void) {
 	if (theGui.textFocus) {
 		GuiText textFocus = (GuiText) theGui.textFocus -> userData;
 		_GuiMac_clipOnParent (theGui.textFocus);
@@ -160,7 +162,7 @@ void _GuiMac_clearTheTextFocus () {
 #endif
 
 void _GuiText_setTheTextFocus (GuiObject widget) {
-	if (! widget || theGui.textFocus == widget
+	if (widget == NULL || theGui.textFocus == widget
 		|| ! widget -> managed) return;   // perhaps not-yet-managed; test: open Praat's DataEditor with a Sound, then type
 	#if gtk
 		gtk_widget_grab_focus (GTK_WIDGET (widget));   // not used: gtk is not 1 when motif is 1
@@ -186,9 +188,9 @@ void _GuiText_setTheTextFocus (GuiObject widget) {
  */
 void _GuiText_handleValueChanged (GuiObject widget) {
 	iam_text;
-	if (my d_changedCallback) {
-		struct structGuiTextEvent event { me };
-		my d_changedCallback (my d_changedBoss, & event);
+	if (my d_changeCallback) {
+		struct structGuiTextEvent event = { me };
+		my d_changeCallback (my d_changeBoss, & event);
 	}
 }
 
@@ -202,7 +204,7 @@ void _GuiText_handleValueChanged (GuiObject widget) {
 			widget -> activateCallback (widget, widget -> activateClosure, (XtPointer) event);
 				return 1;
 		}
-		return 0;   // not handled
+		return 0;   /* Not handled. */
 	}
 	int _GuiMacText_tryToHandleClipboardShortcut (EventHandlerCallRef eventHandlerCallRef, EventRef eventRef, GuiObject widget, unsigned char charCode, EventRecord *event) {
 		if (widget) {
@@ -229,7 +231,7 @@ void _GuiText_handleValueChanged (GuiObject widget) {
 				}
 			}
 		}
-		return 0;   // not handled
+		return 0;   /* Not handled. */
 	}
 	int _GuiMacText_tryToHandleKey (EventHandlerCallRef eventHandlerCallRef, EventRef eventRef, GuiObject widget, unsigned char keyCode, unsigned char charCode, EventRecord *event) {
 		(void) keyCode;
@@ -259,7 +261,7 @@ void _GuiText_handleValueChanged (GuiObject widget) {
 		_GuiText_setTheTextFocus (widget);
 		_GuiMac_clipOnParent (widget);
 		if (isTextControl (widget)) {
-			HandleControlClick (widget -> nat.control.handle, event -> where, event -> modifiers, nullptr);
+			HandleControlClick (widget -> nat.control.handle, event -> where, event -> modifiers, NULL);
 		} else if (isMLTE (me)) {
 			LocalToGlobal (& event -> where);
 			TXNClick (my d_macMlteObject, event);   // handles text selection and scrolling
@@ -345,9 +347,9 @@ void _GuiText_unmanage (GuiObject widget) {
 #if win
 	void _GuiWinText_destroy (GuiObject widget) {
 		if (widget == theGui.textFocus)
-			theGui.textFocus = nullptr;   // remove dangling reference
+			theGui.textFocus = NULL;   // remove dangling reference
 		if (widget == widget -> shell -> textFocus)
-			widget -> shell -> textFocus = nullptr;   // remove dangling reference
+			widget -> shell -> textFocus = NULL;   // remove dangling reference
 		iam_text;
 		DestroyWindow (widget -> window);
 		forget (me);   // NOTE: my widget is not destroyed here
@@ -359,9 +361,9 @@ void _GuiText_unmanage (GuiObject widget) {
 #elif mac
 	void _GuiMacText_destroy (GuiObject widget) {
 		if (widget == theGui.textFocus)
-			theGui.textFocus = nullptr;   // remove dangling reference
+			theGui.textFocus = NULL;   // remove dangling reference
 		if (widget == widget -> shell -> textFocus)
-			widget -> shell -> textFocus = nullptr;   // remove dangling reference
+			widget -> shell -> textFocus = NULL;   // remove dangling reference
 		iam_text;
 		if (isTextControl (widget)) {
 			_GuiMac_clipOnParent (widget);
@@ -378,7 +380,7 @@ void _GuiText_unmanage (GuiObject widget) {
 		if (isTextControl (widget)) {
 			Draw1Control (widget -> nat.control.handle);
 		} else if (isMLTE (me)) {
-			TXNDraw (my d_macMlteObject, nullptr);
+			TXNDraw (my d_macMlteObject, NULL);
 		}
 		GuiMac_clipOff ();
 	}
@@ -405,7 +407,7 @@ static long NativeText_getLength (GuiObject widget) {
 		if (isTextControl (widget)) {
 			Size size;
 			CFStringRef cfString;
-			GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextCFStringTag, sizeof (CFStringRef), & cfString, nullptr);
+			GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextCFStringTag, sizeof (CFStringRef), & cfString, NULL);
 			size = CFStringGetLength (cfString);
 			CFRelease (cfString);
 			return size;
@@ -427,7 +429,7 @@ static void NativeText_getText (GuiObject widget, char32 *buffer, long length) {
 	iam_text;
 	if (isTextControl (widget)) {
 		CFStringRef cfString;
-		GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextCFStringTag, sizeof (CFStringRef), & cfString, nullptr);
+		GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextCFStringTag, sizeof (CFStringRef), & cfString, NULL);
 		UniChar *macText = Melder_malloc_f (UniChar, length + 1);
 		CFRange range = { 0, length };
 		CFStringGetCharacters (cfString, range, macText);
@@ -464,7 +466,7 @@ static void NativeText_getText (GuiObject widget, char32 *buffer, long length) {
 		buffer [j] = U'\0';
 		DisposeHandle (han);
 	}
-	buffer [length] = U'\0';   // superfluous?
+	buffer [length] = L'\0';   // superfluous?
 }
 #endif
 
@@ -483,7 +485,7 @@ static int NativeText_getSelectionRange (GuiObject widget, long *out_left, long
 		iam_text;
 		if (isTextControl (widget)) {
 			ControlEditTextSelectionRec rec;
-			GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextSelectionTag, sizeof (rec), & rec, nullptr);
+			GetControlData (widget -> nat.control.handle, kControlEntireControl, kControlEditTextSelectionTag, sizeof (rec), & rec, NULL);
 			left = rec.selStart;
 			right = rec. selEnd;
 		} else if (isMLTE (me)) {
@@ -499,7 +501,7 @@ static int NativeText_getSelectionRange (GuiObject widget, long *out_left, long
  * PACKAGE
  */
 
-void _GuiText_init () {
+void _GuiText_init (void) {
 	#if mac
 		//short font;
 		TXNMacOSPreferredFontDescription defaults = { 0 };
@@ -512,15 +514,15 @@ void _GuiText_init () {
 	#endif
 }
 
-void _GuiText_exit () {
+void _GuiText_exit (void) {
 	#if mac
-		TXNTerminateTextension ();
+		TXNTerminateTextension (); 
 	#endif
 }
 
 #endif
 
-#if ! mac
+#if !mac
 	/*
 	 * Undo/Redo history functions
 	 */
@@ -562,16 +564,17 @@ void _GuiText_exit () {
 
 	/* Tests the previous elements of the history for mergability with the one to insert given via parameters.
 	 * If successful, it returns a pointer to the last valid entry in the merged history list, otherwise
-	 * returns nullptr.
+	 * returns NULL.
 	 * Specifically the function expands the previous insert/delete event(s)
 	 *  - with the current, if current also is an insert/delete event and the ranges of previous and current event match
 	 *  - with the previous delete and current insert event, in case the ranges of both event-pairs respectively match
 	 */
-	static history_entry * history_addAndMerge (GuiText me, history_data text_new, long first, long last, bool deleted) {
-		history_entry *he = nullptr;
+	static history_entry * history_addAndMerge (void *void_me, history_data text_new, long first, long last, bool deleted) {
+		iam(GuiText);
+		history_entry *he = NULL;
 		
-		if (! my d_prev)
-			return nullptr;
+		if (!(my d_prev))
+			return NULL;
 		
 		if (my d_prev->type_del == deleted) {
 			// extend the last history event by this one
@@ -602,7 +605,7 @@ void _GuiText_exit () {
 			}
 		} else {
 			// prev->type_del != deleted, no simple expansion possible, check for double expansion
-			if (! deleted && my d_prev->prev && my d_prev->prev->prev) {
+			if (!deleted && my d_prev->prev && my d_prev->prev->prev) {
 				history_entry *del_one = my d_prev;
 				history_entry *ins_mult = del_one->prev;
 				history_entry *del_mult = ins_mult->prev;
@@ -610,7 +613,7 @@ void _GuiText_exit () {
 				long from2 = ins_mult->first, to2 = ins_mult->last;
 				long from3 = del_one->first, to3 = del_one->last;
 				if (from3 == first && to3 == last && from2 == from1 && to2 == to1 && to1 == first &&
-						! ins_mult->type_del && del_mult->type_del) {
+						!ins_mult->type_del && del_mult->type_del) {
 					// most common for overwriting text
 					/* So the layout is as follows:
 					 *
@@ -640,8 +643,9 @@ void _GuiText_exit () {
 	 *   text_new  a newly allocated string that will be freed by a history function
 	 *             (history_add or history_clear)
 	 */
-	static void history_add (GuiText me, history_data text_new, long first, long last, bool deleted) {
-
+	static void history_add (void *void_me, history_data text_new, long first, long last, bool deleted) {
+		iam (GuiText);
+		
 		// delete all newer entries; from here on there is no 'Redo' until the next 'Undo' is performed
 		history_entry *old_hnext = my d_next, *hnext;
 		while (old_hnext) {
@@ -650,39 +654,42 @@ void _GuiText_exit () {
 			free (old_hnext);
 			old_hnext = hnext;
 		}
-		my d_next = nullptr;
+		my d_next = NULL;
 		
-		history_entry *he = history_addAndMerge (me, text_new, first, last, deleted);
-		if (! he) {
-			he = (history_entry *) malloc (sizeof *he);
+		history_entry *he = history_addAndMerge (void_me, text_new, first, last, deleted);
+		if (he == NULL) {
+			he = (history_entry *) malloc (sizeof (history_entry));
 			he->first = first;
 			he->last = last;
 			he->type_del = deleted;
 			he->text = text_new;
 			
 			he->prev = my d_prev;
-			he->next = nullptr;
+			he->next = NULL;
 			if (my d_prev)
 				my d_prev->next = he;
 		}
 		my d_prev = he;
-		he->next = nullptr;
+		he->next = NULL;
 		
 		if (my d_undo_item) GuiThing_setSensitive (my d_undo_item, true);
 		if (my d_redo_item) GuiThing_setSensitive (my d_redo_item, false);
 	}
 
-	static bool history_has_undo (GuiText me) {
-		return !! my d_prev;
+	static bool history_has_undo (void *void_me) {
+		iam (GuiText);
+		return my d_prev != NULL;
 	}
 
-	static bool history_has_redo (GuiText me) {
-		return !! my d_next;
+	static bool history_has_redo (void *void_me) {
+		iam (GuiText);
+		return my d_next != NULL;
 	}
 
-	static void history_do (GuiText me, bool undo) {
+	static void history_do (void *void_me, bool undo) {
+		iam (GuiText);
 		history_entry *he = undo ? my d_prev : my d_next;
-		if (! he) // TODO: this function should not be called in that case
+		if (he == NULL) // TODO: this function should not be called in that case
 			return;
 		
 		my d_history_change = 1;
@@ -705,26 +712,27 @@ void _GuiText_exit () {
 		if (my d_redo_item) GuiThing_setSensitive (my d_redo_item, history_has_redo (me));
 	}
 
-	static void history_clear (GuiText me) {
+	static void history_clear(void *void_me) {
+		iam(GuiText);
 		history_entry *h1, *h2;
 		
 		h1 = my d_prev;
 		while (h1) {
 			h2 = h1->prev;
-			free (h1->text);
-			free (h1);
+			free(h1->text);
+			free(h1);
 			h1 = h2;
 		}
-		my d_prev = nullptr;
+		my d_prev = NULL;
 		
 		h1 = my d_next;
 		while (h1) {
 			h2 = h1->next;
-			free (h1->text);
-			free (h1);
+			free(h1->text);
+			free(h1);
 			h1 = h2;
 		}
-		my d_next = nullptr;
+		my d_next = NULL;
 		
 		if (my d_undo_item) GuiThing_setSensitive (my d_undo_item, false);
 		if (my d_redo_item) GuiThing_setSensitive (my d_redo_item, false);
@@ -759,7 +767,7 @@ void _GuiText_exit () {
 		if (my d_history_change) return;
 		int from_pos = gtk_text_iter_get_offset (from);
 		int to_pos = gtk_text_iter_get_offset (to);
-		history_add (me, gtk_text_buffer_get_text (buffer, from, to, false), from_pos, to_pos, 1);
+		history_add (me, gtk_text_buffer_get_text (buffer, from, to, FALSE), from_pos, to_pos, 1);
 	}
 	
 	static void _GuiGtkTextBuf_history_insert_cb (GtkTextBuffer *buffer, GtkTextIter *from, gchar *utf8_text, gint len, gpointer void_me) {
@@ -776,17 +784,17 @@ void _GuiText_exit () {
 	static void _GuiGtkText_valueChangedCallback (GuiObject widget, gpointer void_me) {
 		iam (GuiText);
 		trace (U"begin");
-		Melder_assert (me);
-		if (my d_changedCallback) {
-			struct structGuiTextEvent event { me };
-			my d_changedCallback (my d_changedBoss, & event);
+		Melder_assert (me != NULL);
+		if (my d_changeCallback != NULL) {
+			struct structGuiTextEvent event = { me };
+			my d_changeCallback (my d_changeBoss, & event);
 		}
 	}
 	
 	static void _GuiGtkText_destroyCallback (GuiObject widget, gpointer void_me) {
 		(void) widget;
 		iam (GuiText);
-		Melder_assert (me);
+		Melder_assert (me != NULL);
 		Melder_assert (my classInfo == classGuiText);
 		trace (U"begin");
 		if (my d_undo_item) {
@@ -797,8 +805,8 @@ void _GuiText_exit () {
 			trace (U"redo");
 			//g_object_unref (my d_redo_item -> d_widget);
 		}
-		my d_undo_item = nullptr;
-		my d_redo_item = nullptr;
+		my d_undo_item = NULL;
+		my d_redo_item = NULL;
 		trace (U"history");
 		history_clear (me);
 		forget (me);
@@ -813,19 +821,19 @@ void _GuiText_exit () {
 		trace (U"deleting a text field");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiText));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiText));
 		d_userData = static_cast <GuiText> (userData);
 	}
 	- (void) textDidChange: (NSNotification *) notification {
 		(void) notification;
 		GuiText me = d_userData;
-		if (me && my d_changedCallback) {
-			struct structGuiTextEvent event { me };
-			my d_changedCallback (my d_changedBoss, & event);
+		if (me && my d_changeCallback) {
+			struct structGuiTextEvent event = { me };
+			my d_changeCallback (my d_changeBoss, & event);
 		}
 	}
 	@end
@@ -838,11 +846,11 @@ void _GuiText_exit () {
 		trace (U"deleting a text view");
 		[super dealloc];
 	}
-	- (GuiThing) getUserData {
+	- (GuiThing) userData {
 		return d_userData;
 	}
 	- (void) setUserData: (GuiThing) userData {
-		Melder_assert (userData == nullptr || Thing_isa (userData, classGuiText));
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiText));
 		d_userData = static_cast <GuiText> (userData);
 	}
 	/*
@@ -856,9 +864,9 @@ void _GuiText_exit () {
 		(void) replacementString;
 		trace (U"changing text to: ", Melder_peek8to32 ([replacementString UTF8String]));
 		GuiText me = d_userData;
-		if (me && my d_changedCallback) {
-			struct structGuiTextEvent event { me };
-			my d_changedCallback (my d_changedBoss, & event);
+		if (me && my d_changeCallback) {
+			struct structGuiTextEvent event = { me };
+			my d_changeCallback (my d_changeBoss, & event);
 		}
 		return YES;
 	}
@@ -868,14 +876,14 @@ void _GuiText_exit () {
 #endif
 
 GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom, uint32 flags) {
-	autoGuiText me = Thing_new (GuiText);
+	GuiText me = Thing_new (GuiText);
 	my d_shell = parent -> d_shell;
 	my d_parent = parent;
 	#if gtk
-		trace (U"before creating a GTK text widget: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"before creating a GTK text widget: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		if (flags & GuiText_SCROLLED) {
 			GtkWrapMode ww;
-			GuiObject scrolled = gtk_scrolled_window_new (nullptr, nullptr);
+			GuiObject scrolled = gtk_scrolled_window_new (NULL, NULL);
 			gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 			my d_widget = gtk_text_view_new ();
 			gtk_container_add (GTK_CONTAINER (scrolled), GTK_WIDGET (my d_widget));
@@ -887,34 +895,34 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 				ww = GTK_WRAP_NONE;
 			gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (my d_widget), ww);
 			GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (my d_widget));
-			g_signal_connect (G_OBJECT (buffer), "delete-range", G_CALLBACK (_GuiGtkTextBuf_history_delete_cb), me.get());
-			g_signal_connect (G_OBJECT (buffer), "insert-text", G_CALLBACK (_GuiGtkTextBuf_history_insert_cb), me.get());
-			g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (_GuiGtkText_valueChangedCallback), me.get());
-			_GuiObject_setUserData (my d_widget, me.get());
-			_GuiObject_setUserData (scrolled, me.get());
+			g_signal_connect (G_OBJECT (buffer), "delete-range", G_CALLBACK (_GuiGtkTextBuf_history_delete_cb), me);
+			g_signal_connect (G_OBJECT (buffer), "insert-text", G_CALLBACK (_GuiGtkTextBuf_history_insert_cb), me);
+			g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (_GuiGtkText_valueChangedCallback), me);
+			_GuiObject_setUserData (my d_widget, me);
+			_GuiObject_setUserData (scrolled, me);
 			my v_positionInForm (scrolled, left, right, top, bottom, parent);
 		} else {
 			my d_widget = gtk_entry_new ();
 			gtk_editable_set_editable (GTK_EDITABLE (my d_widget), (flags & GuiText_NONEDITABLE) == 0);
-			g_signal_connect (G_OBJECT (my d_widget), "delete-text", G_CALLBACK (_GuiGtkEntry_history_delete_cb), me.get());
-			g_signal_connect (G_OBJECT (my d_widget), "insert-text", G_CALLBACK (_GuiGtkEntry_history_insert_cb), me.get());
-			g_signal_connect (GTK_EDITABLE (my d_widget), "changed", G_CALLBACK (_GuiGtkText_valueChangedCallback), me.get());
+			g_signal_connect (G_OBJECT (my d_widget), "delete-text", G_CALLBACK (_GuiGtkEntry_history_delete_cb), me);
+			g_signal_connect (G_OBJECT (my d_widget), "insert-text", G_CALLBACK (_GuiGtkEntry_history_insert_cb), me);
+			g_signal_connect (GTK_EDITABLE (my d_widget), "changed", G_CALLBACK (_GuiGtkText_valueChangedCallback), me);
 			//GTK_WIDGET_UNSET_FLAGS (my d_widget, GTK_CAN_DEFAULT);
-			_GuiObject_setUserData (my d_widget, me.get());
+			_GuiObject_setUserData (my d_widget, me);
 			my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 			gtk_entry_set_activates_default (GTK_ENTRY (my d_widget), true);
 		}
-		trace (U"after creating a GTK text widget: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-		my d_prev = nullptr;
-		my d_next = nullptr;
+		trace (U"after creating a GTK text widget: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
+		my d_prev = NULL;
+		my d_next = NULL;
 		my d_history_change = 0;
-		my d_undo_item = nullptr;
-		my d_redo_item = nullptr;
-		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkText_destroyCallback), me.get());
+		my d_undo_item = NULL;
+		my d_redo_item = NULL;
+		g_signal_connect (G_OBJECT (my d_widget), "destroy", G_CALLBACK (_GuiGtkText_destroyCallback), me);
 	#elif cocoa
 		if (flags & GuiText_SCROLLED) {
 			my d_cocoaScrollView = [[GuiCocoaScrolledWindow alloc] init];
-			[my d_cocoaScrollView setUserData: nullptr];   // because those user data can only be GuiScrolledWindow
+			[my d_cocoaScrollView setUserData: NULL];   // because those user data can only be GuiScrolledWindow
 			my d_widget = my d_cocoaScrollView;
 			my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 			[my d_cocoaScrollView setBorderType: NSNoBorder];
@@ -923,7 +931,7 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 			[my d_cocoaScrollView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
 			NSSize contentSize = [my d_cocoaScrollView contentSize];
 			my d_cocoaTextView = [[GuiCocoaTextView alloc] initWithFrame: NSMakeRect (0, 0, contentSize. width, contentSize. height)];
-			[my d_cocoaTextView setUserData: me.get()];
+			[my d_cocoaTextView setUserData: me];
 			if (Melder_systemVersion < 101100) {
 				[my d_cocoaTextView setMinSize: NSMakeSize (0.0, contentSize.height)];
 			} else {
@@ -935,8 +943,7 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 			[my d_cocoaTextView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
 			[[my d_cocoaTextView textContainer] setContainerSize: NSMakeSize (FLT_MAX, FLT_MAX)];
 			[[my d_cocoaTextView textContainer] setWidthTracksTextView: NO];
-			[my d_cocoaScrollView setDocumentView: my d_cocoaTextView];   // the scroll view will own the text view?
-			[my d_cocoaTextView release];   // so we release the text view itself
+			[my d_cocoaScrollView setDocumentView: my d_cocoaTextView];
 			[[my d_cocoaScrollView window] makeFirstResponder: my d_cocoaTextView];
 			static NSFont *theTextFont;
 			if (! theTextFont) {
@@ -954,7 +961,7 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 		} else {
 			my d_widget = [[GuiCocoaTextField alloc] init];
 			my v_positionInForm (my d_widget, left, right, top, bottom, parent);
-			[(GuiCocoaTextField *) my d_widget   setUserData: me.get()];
+			[(GuiCocoaTextField *) my d_widget   setUserData: me];
 			[(NSTextField *) my d_widget   setEditable: YES];
 			static NSFont *theTextFont;
 			if (! theTextFont) {
@@ -964,14 +971,14 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 		}
 	#elif win
 		my d_widget = _Gui_initializeWidget (xmTextWidgetClass, parent -> d_widget, flags & GuiText_SCROLLED ? U"scrolledText" : U"text");
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		my d_editable = (flags & GuiText_NONEDITABLE) == 0;
-		my d_widget -> window = CreateWindow (L"edit", nullptr, WS_CHILD | WS_BORDER
+		my d_widget -> window = CreateWindow (L"edit", NULL, WS_CHILD | WS_BORDER
 			| ( flags & GuiText_WORDWRAP ? ES_AUTOVSCROLL : ES_AUTOHSCROLL )
 			| ES_MULTILINE | WS_CLIPSIBLINGS
 			| ( flags & GuiText_SCROLLED ? WS_HSCROLL | WS_VSCROLL : 0 ),
 			my d_widget -> x, my d_widget -> y, my d_widget -> width, my d_widget -> height,
-			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, nullptr);
+			my d_widget -> parent -> window, (HMENU) 1, theGui.instance, NULL);
 		SetWindowLongPtr (my d_widget -> window, GWLP_USERDATA, (LONG_PTR) my d_widget);
 		if (! font10) {
 			font10 = CreateFont (13, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0/*FIXED_PITCH | FF_MODERN*/, /*L"Doulos SIL"*/L"Courier New");
@@ -980,7 +987,7 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 			font18 = CreateFont (24, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0/*FIXED_PITCH | FF_MODERN*/, /*L"Doulos SIL"*/L"Courier New");
 			font24 = CreateFont (32, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0/*FIXED_PITCH | FF_MODERN*/, /*L"Doulos SIL"*/L"Courier New");
 		}
-		SetWindowFont (my d_widget -> window, font12 /*theScrolledHint ? font : GetStockFont (ANSI_VAR_FONT)*/, false);
+		SetWindowFont (my d_widget -> window, font12 /*theScrolledHint ? font : GetStockFont (ANSI_VAR_FONT)*/, FALSE);
 		Edit_LimitText (my d_widget -> window, 0);
 		my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		/*
@@ -992,38 +999,38 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 	#elif mac
 		if (flags & GuiText_SCROLLED) {
 			my d_widget = _Gui_initializeWidget (xmTextWidgetClass, parent -> d_widget, U"scrolledText");
-			_GuiObject_setUserData (my d_widget, me.get());
+			_GuiObject_setUserData (my d_widget, me);
 			my d_editable = (flags & GuiText_NONEDITABLE) == 0;
 			TXNLongRect destRect;
 			TXNMargins margins;
 			TXNControlData controlData;
 			TXNControlTag controlTag = kTXNMarginsTag;
-			TXNNewObject (nullptr,   // no file
+			TXNNewObject (NULL,   // no file
 				my d_widget -> macWindow, & my d_widget -> rect, kTXNWantHScrollBarMask | kTXNWantVScrollBarMask
 					| kTXNMonostyledTextMask | kTXNDrawGrowIconMask,
 				kTXNTextEditStyleFrameType, kTXNTextensionFile,
-				/*kTXNMacOSEncoding*/ kTXNSystemDefaultEncoding, & my d_macMlteObject, & my d_macMlteFrameId, me.get());
+				/*kTXNMacOSEncoding*/ kTXNSystemDefaultEncoding, & my d_macMlteObject, & my d_macMlteFrameId, me);
 			destRect. left = 0;
 			destRect. top = 0;
 			destRect. right = 10000;
 			destRect. bottom = 2000000000;
-			TXNSetRectBounds (my d_macMlteObject, nullptr, & destRect, false);
+			TXNSetRectBounds (my d_macMlteObject, NULL, & destRect, FALSE);
 			margins. leftMargin = 3;
 			margins. topMargin = 3;
 			margins. rightMargin = 0;
 			margins. bottomMargin = 0;
 			controlData. marginsPtr = & margins;
-			TXNSetTXNObjectControls (my d_macMlteObject, false, 1, & controlTag, & controlData);
+			TXNSetTXNObjectControls (my d_macMlteObject, FALSE, 1, & controlTag, & controlData);
 			my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		} else {
 			my d_widget = _Gui_initializeWidget (xmTextWidgetClass, parent -> d_widget, U"text");
-			_GuiObject_setUserData (my d_widget, me.get());
+			_GuiObject_setUserData (my d_widget, me);
 			my d_editable = (flags & GuiText_NONEDITABLE) == 0;
 			Rect r = my d_widget -> rect;
 			InsetRect (& r, 3, 3);
-			CreateEditUnicodeTextControl (my d_widget -> macWindow, & r, nullptr, false, nullptr, & my d_widget -> nat.control.handle);
+			CreateEditUnicodeTextControl (my d_widget -> macWindow, & r, NULL, false, NULL, & my d_widget -> nat.control.handle);
 			SetControlReference (my d_widget -> nat.control.handle, (long) my d_widget);
-			my d_widget -> isControl = true;
+			my d_widget -> isControl = TRUE;
 			my v_positionInForm (my d_widget, left, right, top, bottom, parent);
 		}
 		/*
@@ -1034,7 +1041,7 @@ GuiText GuiText_create (GuiForm parent, int left, int right, int top, int bottom
 		}
 	#endif
 	
-	return me.releaseToAmbiguousOwner();
+	return me;
 }
 
 GuiText GuiText_createShown (GuiForm parent, int left, int right, int top, int bottom, uint32 flags) {
@@ -1059,10 +1066,10 @@ void GuiText_copy (GuiText me) {
 			[[[(GuiCocoaTextField *) my d_widget   window]   fieldEditor: NO   forObject: nil] copy: nil];
 		}
 	#elif win
-		if (! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		SendMessage (my d_widget -> window, WM_COPY, 0, 0);
 	#elif mac
-		if (! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		if (isTextControl (my d_widget)) {
 			HandleControlKey (my d_widget -> nat.control.handle, 0, 'C', cmdKey);
 		} else if (isMLTE (me)) {
@@ -1087,11 +1094,11 @@ void GuiText_cut (GuiText me) {
 			[[[(GuiCocoaTextField *) my d_widget   window]   fieldEditor: NO   forObject: nil] cut: nil];
 		}
 	#elif win
-		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		SendMessage (my d_widget -> window, WM_CUT, 0, 0);   // this will send the EN_CHANGE message, hence no need to call the valueChangedCallbacks
 		UpdateWindow (my d_widget -> window);
 	#elif mac
-		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		if (isTextControl (my d_widget)) {
 			_GuiMac_clipOnParent (my d_widget);
 			HandleControlKey (my d_widget -> nat.control.handle, 0, 'X', cmdKey);
@@ -1121,7 +1128,7 @@ char32 * GuiText_getSelection (GuiText me) {
 			if (gtk_text_buffer_get_has_selection (textBuffer)) {   // at least one character selected?
 				GtkTextIter start, end;
 				gtk_text_buffer_get_selection_bounds (textBuffer, & start, & end);
-				gchar *text = gtk_text_buffer_get_text (textBuffer, & start, & end, true);
+				gchar *text = gtk_text_buffer_get_text (textBuffer, & start, & end, TRUE);
 				char32 *result = Melder_8to32 (text);
 				g_free (text);
 				return result;
@@ -1183,7 +1190,7 @@ char32 * GuiText_getSelection (GuiText me) {
 			return result;
 		}
 	#endif
-	return nullptr;   // zero characters selected
+	return NULL;   // zero characters selected
 }
 
 char32 * GuiText_getString (GuiText me) {
@@ -1204,7 +1211,7 @@ char32 * GuiText_getStringAndSelectionPosition (GuiText me, long *first, long *l
 			GtkTextIter start, end;
 			gtk_text_buffer_get_start_iter (textBuffer, & start);
 			gtk_text_buffer_get_end_iter (textBuffer, & end);
-			gchar *text = gtk_text_buffer_get_text (textBuffer, & start, & end, true);   // TODO: Hidden chars ook maar doen he?
+			gchar *text = gtk_text_buffer_get_text (textBuffer, & start, & end, TRUE);   // TODO: Hidden chars ook maar doen he?
 			char32 *result = Melder_8to32 (text);
 			g_free (text);
 			gtk_text_buffer_get_selection_bounds (textBuffer, & start, & end);
@@ -1212,7 +1219,7 @@ char32 * GuiText_getStringAndSelectionPosition (GuiText me, long *first, long *l
 			*last = gtk_text_iter_get_offset (& end);
 			return result;
 		}
-		return nullptr;
+		return NULL;
 	#elif cocoa
 		if (my d_cocoaTextView) {
 			NSString *nsString = [my d_cocoaTextView   string];
@@ -1269,8 +1276,6 @@ char32 * GuiText_getStringAndSelectionPosition (GuiText me, long *first, long *l
 		for (long i = *first; i < *last; i ++) if (result [i] > 0xFFFF) { (*last) --; }
 		Melder_killReturns_inline (result);
 		return result;
-	#else
-		return nullptr;
 	#endif
 }
 
@@ -1281,7 +1286,7 @@ void GuiText_paste (GuiText me) {
 		} else if (G_OBJECT_TYPE (G_OBJECT (my d_widget)) == GTK_TYPE_TEXT_VIEW) {
 			GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (my d_widget));
 			GtkClipboard *cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
-			gtk_text_buffer_paste_clipboard (buffer, cb, nullptr, gtk_text_view_get_editable (GTK_TEXT_VIEW (my d_widget)));
+			gtk_text_buffer_paste_clipboard (buffer, cb, NULL, gtk_text_view_get_editable (GTK_TEXT_VIEW (my d_widget)));
 		}
 	#elif cocoa
 		if (my d_cocoaTextView) {
@@ -1327,18 +1332,18 @@ void GuiText_remove (GuiText me) {
 			gtk_editable_delete_selection (GTK_EDITABLE (my d_widget));
 		} else if (G_OBJECT_TYPE (G_OBJECT (my d_widget)) == GTK_TYPE_TEXT_VIEW) {
 			GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (my d_widget));
-			gtk_text_buffer_delete_selection (buffer, true, gtk_text_view_get_editable (GTK_TEXT_VIEW (my d_widget)));
+			gtk_text_buffer_delete_selection (buffer, TRUE, gtk_text_view_get_editable (GTK_TEXT_VIEW (my d_widget)));
 		}
 	#elif cocoa
 		if (my d_cocoaTextView) {
 			[my d_cocoaTextView   delete: nil];
 		}
 	#elif win
-		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		SendMessage (my d_widget -> window, WM_CLEAR, 0, 0);   // this will send the EN_CHANGE message, hence no need to call the valueChangedCallbacks
 		UpdateWindow (my d_widget -> window);
 	#elif mac
-		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, nullptr, nullptr)) return;
+		if (! my d_editable || ! NativeText_getSelectionRange (my d_widget, NULL, NULL)) return;
 		if (isTextControl (my d_widget)) {
 			_GuiMac_clipOnParent (my d_widget);
 			HandleControlKey (my d_widget -> nat.control.handle, 0, 8, 0);   // backspace key
@@ -1457,7 +1462,7 @@ void GuiText_scrollToSelection (GuiText me) {
 		GtkTextBuffer *textBuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (my d_widget));
 		GtkTextIter start, end;
 		gtk_text_buffer_get_selection_bounds (textBuffer, & start, & end);
-		//GtkTextMark *mark = gtk_text_buffer_create_mark (textBuffer, nullptr, & start, true);
+		//GtkTextMark *mark = gtk_text_buffer_create_mark (textBuffer, NULL, & start, true);
 		gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (my d_widget), & start, 0.1, false, 0.0, 0.0);
 		//gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (my d_widget), mark, 0.1, false, 0.0, 0.0);
 	#elif cocoa
@@ -1474,24 +1479,24 @@ void GuiText_scrollToSelection (GuiText me) {
 	#endif
 }
 
-void GuiText_setChangedCallback (GuiText me, GuiText_ChangedCallback changedCallback, Thing changedBoss) {
-	my d_changedCallback = changedCallback;
-	my d_changedBoss = changedBoss;
+void GuiText_setChangeCallback (GuiText me, void (*changeCallback) (void *boss, GuiTextEvent event), void *changeBoss) {
+	my d_changeCallback = changeCallback;
+	my d_changeBoss = changeBoss;
 }
 
 void GuiText_setFontSize (GuiText me, int size) {
 	#if gtk
 		GtkRcStyle *modStyle = gtk_widget_get_modifier_style (GTK_WIDGET (my d_widget));
-		trace (U"before initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-		PangoFontDescription *fontDesc = modStyle -> font_desc != nullptr ? modStyle -> font_desc :
+		trace (U"before initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
+		PangoFontDescription *fontDesc = modStyle -> font_desc != NULL ? modStyle -> font_desc :
 			#if ALLOW_GDK_DRAWING
 				pango_font_description_copy (GTK_WIDGET (my d_widget) -> style -> font_desc);
 			#else
-				nullptr;
+				NULL;
 			#endif
-		trace (U"during initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"during initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		pango_font_description_set_absolute_size (fontDesc, size * PANGO_SCALE);
-		trace (U"after initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"after initializing Pango: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		modStyle -> font_desc = fontDesc;
 		gtk_widget_modify_style (GTK_WIDGET (my d_widget), modStyle);
 	#elif cocoa
@@ -1505,15 +1510,15 @@ void GuiText_setFontSize (GuiText me, int size) {
 		GuiText_setString (me, U"");   // erase all
 		UpdateWindow (my d_widget -> window);
 		if (size <= 10) {
-			SetWindowFont (my d_widget -> window, font10, false);
+			SetWindowFont (my d_widget -> window, font10, FALSE);
 		} else if (size <= 12) {
-			SetWindowFont (my d_widget -> window, font12, false);
+			SetWindowFont (my d_widget -> window, font12, FALSE);
 		} else if (size <= 14) {
-			SetWindowFont (my d_widget -> window, font14, false);
+			SetWindowFont (my d_widget -> window, font14, FALSE);
 		} else if (size <= 18) {
-			SetWindowFont (my d_widget -> window, font18, false);
+			SetWindowFont (my d_widget -> window, font18, FALSE);
 		} else {
-			SetWindowFont (my d_widget -> window, font24, false);
+			SetWindowFont (my d_widget -> window, font24, FALSE);
 		}
 		GuiText_setString (me, text);
 		Melder_free (text);
@@ -1546,7 +1551,7 @@ void GuiText_setRedoItem (GuiText me, GuiMenuItem item) {
 }
 
 void GuiText_setSelection (GuiText me, long first, long last) {
-	if (my d_widget) {
+	if (my d_widget != NULL) {
 	#if gtk
 		if (G_OBJECT_TYPE (G_OBJECT (my d_widget)) == GTK_TYPE_ENTRY) {
 			gtk_editable_select_region (GTK_EDITABLE (my d_widget), first, last);
@@ -1667,8 +1672,8 @@ void GuiText_setString (GuiText me, const char32 *text) {
 	#elif mac
 		long length_utf32 = str32len (text), length_utf16 = str32len_utf16 (text, false);
 		UniChar *macText = Melder_malloc_f (UniChar, length_utf16 + 1);
-		//Melder_assert (macText);
-		//Melder_assert (my d_widget);
+		//Melder_assert (macText != NULL);
+		//Melder_assert (my d_widget != NULL);
 		//Melder_assert (my d_widget -> widgetClass == xmTextWidgetClass);
 		/*
 		 * Convert from UTF-32 to UTF-16 and replace all LF with CR.
@@ -1691,7 +1696,7 @@ void GuiText_setString (GuiText me, const char32 *text) {
 		if (j != length_utf16)
 			Melder_fatal (U"GuiText_setString: incorrect number of UTF-16 words (", j, U" instead of ", length_utf16, U"): <<", text, U">>.");
 		if (isTextControl (my d_widget)) {
-			CFStringRef cfString = CFStringCreateWithCharacters (nullptr, macText, length_utf16);
+			CFStringRef cfString = CFStringCreateWithCharacters (NULL, macText, length_utf16);
 			SetControlData (my d_widget -> nat.control.handle, kControlEntireControl, kControlEditTextCFStringTag, sizeof (CFStringRef), & cfString);
 			CFRelease (cfString);
 		} else if (isMLTE (me)) {
diff --git a/sys/GuiThing.cpp b/sys/GuiThing.cpp
index 50bad4f..3ebd078 100644
--- a/sys/GuiThing.cpp
+++ b/sys/GuiThing.cpp
@@ -20,16 +20,16 @@
 #include "GuiP.h"
 #include "machine.h"
 
-void structGuiThing :: v_destroy () noexcept {
+void structGuiThing :: v_destroy () {
 	GuiThing_Parent :: v_destroy ();
 }
 
 void structGuiThing :: v_hide () {
 	#if gtk
 		GuiObject parent = gtk_widget_get_parent (GTK_WIDGET (d_widget));
-		if (parent && GTK_IS_DIALOG (parent)) {   // I am the top GtkFixed of a dialog
+		if (parent != NULL && GTK_IS_DIALOG (parent)) {   // I am the top GtkFixed of a dialog
 			gtk_widget_hide (GTK_WIDGET (parent));
-		} else if (parent && GTK_IS_DIALOG (gtk_widget_get_parent (GTK_WIDGET (parent)))) {
+		} else if (parent != NULL && GTK_IS_DIALOG (gtk_widget_get_parent (GTK_WIDGET (parent)))) {
 			trace (U"hiding a dialog indirectly");
 			gtk_widget_hide (GTK_WIDGET (gtk_widget_get_parent (GTK_WIDGET (parent))));
 		} else {
diff --git a/sys/GuiWindow.cpp b/sys/GuiWindow.cpp
index f6723fe..2167420 100644
--- a/sys/GuiWindow.cpp
+++ b/sys/GuiWindow.cpp
@@ -44,27 +44,27 @@ Thing_implement (GuiWindow, GuiShell, 0);
 		(void) widget;
 		iam (GuiWindow);
 		forget (me);
-		return true;
+		return TRUE;
 	}
 	static gboolean _GuiWindow_goAwayCallback (GuiObject widget, GdkEvent *event, gpointer void_me) {
 		(void) widget;
 		iam (GuiWindow);
-		if (my d_goAwayCallback) {
+		if (my d_goAwayCallback != NULL) {
 			my d_goAwayCallback (my d_goAwayBoss);
 		}
-		return true;
+		return TRUE;
 	}
 	static void _GuiWindow_child_resizeCallback (GtkWidget *childWidget, gpointer data) {
 		GtkAllocation *allocation = (GtkAllocation *) data;
 		GtkWidget *parentWidget = gtk_widget_get_parent (childWidget);
 		Thing_cast (GuiThing, child, _GuiObject_getUserData (childWidget));
 		if (child) {
-			GuiControl control = nullptr;
+			GuiControl control = NULL;
 			if (Thing_isa (child, classGuiControl)) {
 				control = static_cast <GuiControl> (child);
 			} else if (Thing_isa (child, classGuiMenu)) {
 				Thing_cast (GuiMenu, menu, child);
-				control = menu -> d_cascadeButton.get();
+				control = menu -> d_cascadeButton;
 			}
 			if (control) {
 				/*
@@ -104,8 +104,47 @@ Thing_implement (GuiWindow, GuiShell, 0);
 			gtk_widget_set_size_request (GTK_WIDGET (widget), allocation -> width, allocation -> height);
 		}
 		trace (U"end");
-		return false;
+		return FALSE;
+	}
+#elif cocoa
+	@implementation GuiCocoaWindow {
+		GuiWindow d_userData;
+	}
+	- (void) dealloc {   // override
+		GuiWindow me = d_userData;
+		my d_cocoaWindow = NULL;   // this is already under destruction, so undangle
+		forget (me);
+		trace (U"deleting a window");
+		[super dealloc];
+	}
+	- (GuiThing) userData {
+		return d_userData;
+	}
+	- (void) setUserData: (GuiThing) userData {
+		Melder_assert (userData == NULL || Thing_isa (userData, classGuiWindow));
+		d_userData = static_cast <GuiWindow> (userData);
 	}
+	- (void) keyDown: (NSEvent *) theEvent {
+		trace (U"key down");
+	}
+	//@end
+	//@interface GuiCocoaWindowDelegate : NSObject <NSWindowDelegate> { } @end
+	//@implementation GuiCocoaWindowDelegate {
+	//}
+	- (BOOL) windowShouldClose: (id) sender {
+		GuiCocoaWindow *widget = (GuiCocoaWindow *) sender;
+		GuiWindow me = (GuiWindow) [widget userData];
+		if (my d_goAwayCallback != NULL) {
+			trace (U"calling goAwayCallback)");
+			my d_goAwayCallback (my d_goAwayBoss);
+		} else {
+			trace (U"hiding window");
+			[widget orderOut: nil];
+		}
+		return FALSE;
+	}
+	@end
+	//static GuiCocoaWindowDelegate *theGuiCocoaWindowDelegate;
 #elif motif
 	static void _GuiMotifWindow_destroyCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		(void) widget; (void) call;
@@ -118,72 +157,70 @@ Thing_implement (GuiWindow, GuiShell, 0);
 	static void _GuiMotifWindow_goAwayCallback (GuiObject widget, XtPointer void_me, XtPointer call) {
 		(void) widget; (void) call;
 		iam (GuiWindow);
-		if (my d_goAwayCallback) {
-			//Melder_casual (U"_GuiMotifWindow_goAwayCallback: before");
+		if (my d_goAwayCallback != NULL) {
 			my d_goAwayCallback (my d_goAwayBoss);
-			//Melder_casual (U"_GuiMotifWindow_goAwayCallback: after");
 		}
 	}
 #endif
 
 GuiWindow GuiWindow_create (int x, int y, int width, int height, int minimumWidth, int minimumHeight,
-	const char32 *title /* cattable */, GuiShell_GoAwayCallback goAwayCallback, Thing goAwayBoss, uint32 flags)
+	const char32 *title /* cattable */, void (*goAwayCallback) (void *goAwayBoss), void *goAwayBoss, uint32 flags)
 {
-	autoGuiWindow me = Thing_new (GuiWindow);
-	my d_parent = nullptr;
+	GuiWindow me = Thing_new (GuiWindow);
+	my d_parent = NULL;
 	my d_goAwayCallback = goAwayCallback;
 	my d_goAwayBoss = goAwayBoss;
 	#if gtk
 		GuiGtk_initialize ();
 		my d_gtkWindow = (GtkWindow *) gtk_window_new (GTK_WINDOW_TOPLEVEL);
-		g_signal_connect (G_OBJECT (my d_gtkWindow), "delete-event", goAwayCallback ? G_CALLBACK (_GuiWindow_goAwayCallback) : G_CALLBACK (gtk_widget_hide), me.get());
-		g_signal_connect (G_OBJECT (my d_gtkWindow), "destroy-event", G_CALLBACK (_GuiWindow_destroyCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_gtkWindow), "delete-event", goAwayCallback ? G_CALLBACK (_GuiWindow_goAwayCallback) : G_CALLBACK (gtk_widget_hide), me);
+		g_signal_connect (G_OBJECT (my d_gtkWindow), "destroy-event", G_CALLBACK (_GuiWindow_destroyCallback), me);
 
 		gtk_window_set_default_size (GTK_WINDOW (my d_gtkWindow), width, height);
-		gtk_window_set_resizable (GTK_WINDOW (my d_gtkWindow), true);
-		GuiShell_setTitle (me.get(), title);
+		gtk_window_set_resizable (GTK_WINDOW (my d_gtkWindow), TRUE);
+		GuiShell_setTitle (me, title);
 
 		my d_widget = gtk_fixed_new ();
-		_GuiObject_setUserData (my d_widget, me.get());
+		_GuiObject_setUserData (my d_widget, me);
 		gtk_widget_set_size_request (GTK_WIDGET (my d_widget), width, height);
 		gtk_container_add (GTK_CONTAINER (my d_gtkWindow), GTK_WIDGET (my d_widget));
 		GdkGeometry geometry = { minimumWidth, minimumHeight, 0, 0, 0, 0, 0, 0, 0, 0, GDK_GRAVITY_NORTH_WEST };
 		gtk_window_set_geometry_hints (my d_gtkWindow, GTK_WIDGET (my d_gtkWindow), & geometry, GDK_HINT_MIN_SIZE);
-		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiWindow_resizeCallback), me.get());
+		g_signal_connect (G_OBJECT (my d_widget), "size-allocate", G_CALLBACK (_GuiWindow_resizeCallback), me);
 	#elif cocoa
 		NSRect rect = { { static_cast<CGFloat>(x), static_cast<CGFloat>(y) }, { static_cast<CGFloat>(width), static_cast<CGFloat>(height) } };
-		my d_cocoaShell = [[GuiCocoaShell alloc]
+		my d_cocoaWindow = [[GuiCocoaWindow alloc]
 			initWithContentRect: rect
 			styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask
 			backing: NSBackingStoreBuffered
 			defer: false];
-		[my d_cocoaShell setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];
-        [my d_cocoaShell setMinSize: NSMakeSize (minimumWidth, minimumHeight)];
-		GuiShell_setTitle (me.get(), title);
-		[my d_cocoaShell makeKeyAndOrderFront: nil];
-		my d_widget = (GuiObject) [my d_cocoaShell   contentView];   // BUG: this d_widget doesn't have the GuiCocoaAny protocol
-		_GuiObject_setUserData (my d_cocoaShell, me.get());
+		[my d_cocoaWindow setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];
+        [my d_cocoaWindow setMinSize: NSMakeSize (minimumWidth, minimumHeight)];
+		GuiShell_setTitle (me, title);
+		[my d_cocoaWindow makeKeyAndOrderFront: nil];
+		my d_widget = (GuiObject) [my d_cocoaWindow contentView];   // BUG: this d_widget doesn't have the GuiCocoaAny protocol
+		_GuiObject_setUserData (my d_cocoaWindow, me);
 		//if (! theGuiCocoaWindowDelegate) {
 		//	theGuiCocoaWindowDelegate = [[GuiCocoaWindowDelegate alloc] init];
 		//}
 		//[my d_cocoaWindow setDelegate: theGuiCocoaWindowDelegate];
 	#elif motif
-		my d_xmShell = XmCreateShell (nullptr, flags & GuiWindow_FULLSCREEN ? "Praatwulgfullscreen" : "Praatwulg", nullptr, 0);
-		XtVaSetValues (my d_xmShell, XmNdeleteResponse, goAwayCallback ? XmDO_NOTHING : XmUNMAP, nullptr);
-		XtVaSetValues (my d_xmShell, XmNx, x, XmNy, y, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, nullptr);
+		my d_xmShell = XmCreateShell (NULL, flags & GuiWindow_FULLSCREEN ? "Praatwulgfullscreen" : "Praatwulg", NULL, 0);
+		XtVaSetValues (my d_xmShell, XmNdeleteResponse, goAwayCallback ? XmDO_NOTHING : XmUNMAP, NULL);
+		XtVaSetValues (my d_xmShell, XmNx, x, XmNy, y, XmNwidth, (Dimension) width, XmNheight, (Dimension) height, NULL);
 		if (goAwayCallback) {
-			XmAddWMProtocolCallback (my d_xmShell, 'delw', _GuiMotifWindow_goAwayCallback, (char *) me.get());
+			XmAddWMProtocolCallback (my d_xmShell, 'delw', _GuiMotifWindow_goAwayCallback, (char *) me);
 		}
-		GuiShell_setTitle (me.get(), title);
-		my d_widget = XmCreateForm (my d_xmShell, "dialog", nullptr, 0);
-		_GuiObject_setUserData (my d_widget, me.get());
-		XtAddCallback (my d_widget, XmNdestroyCallback, _GuiMotifWindow_destroyCallback, me.get());
-		XtVaSetValues (my d_widget, XmNdialogStyle, XmDIALOG_MODELESS, XmNautoUnmanage, False, nullptr);
+		GuiShell_setTitle (me, title);
+		my d_widget = XmCreateForm (my d_xmShell, "dialog", NULL, 0);
+		_GuiObject_setUserData (my d_widget, me);
+		XtAddCallback (my d_widget, XmNdestroyCallback, _GuiMotifWindow_destroyCallback, me);
+		XtVaSetValues (my d_widget, XmNdialogStyle, XmDIALOG_MODELESS, XmNautoUnmanage, False, NULL);
 	#endif
 	my d_width = width;
 	my d_height = height;
-	my d_shell = me.get();
-	return me.releaseToAmbiguousOwner();
+	my d_shell = me;
+	return me;
 }
 
 GuiObject theGuiTopMenuBar;
@@ -208,11 +245,11 @@ void GuiWindow_addMenuBar (GuiWindow me) {
 	#elif cocoa
 	#elif motif
 		if (win || theGuiTopMenuBar) {
-			my d_xmMenuBar = XmCreateMenuBar (my d_widget, "menuBar", nullptr, 0);
-			XtVaSetValues (my d_xmMenuBar, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, nullptr);
+			my d_xmMenuBar = XmCreateMenuBar (my d_widget, "menuBar", NULL, 0);
+			XtVaSetValues (my d_xmMenuBar, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL);
 			XtManageChild (my d_xmMenuBar);
 		} else {
-			theGuiTopMenuBar = XmCreateMenuBar (nullptr, "menuBar", nullptr, 0);
+			theGuiTopMenuBar = XmCreateMenuBar (NULL, "menuBar", NULL, 0);
 			//XtManageChild (topBar);
 		}
 	#endif
@@ -223,7 +260,7 @@ bool GuiWindow_setDirty (GuiWindow me, bool dirty) {
 		(void) dirty;
 		return false;
 	#elif cocoa
-		[my d_cocoaShell   setDocumentEdited: dirty];
+		[my d_cocoaWindow   setDocumentEdited: dirty];
 		return true;
 	#elif win
 		(void) dirty;
@@ -231,9 +268,6 @@ bool GuiWindow_setDirty (GuiWindow me, bool dirty) {
 	#elif mac
 		SetWindowModified (my d_xmShell -> nat.window.ptr, dirty);
 		return true;
-	#else
-		(void) dirty;
-		return false;
 	#endif
 }
 
diff --git a/sys/HyperPage.cpp b/sys/HyperPage.cpp
index eca5f0a..ac3e09b 100644
--- a/sys/HyperPage.cpp
+++ b/sys/HyperPage.cpp
@@ -1,6 +1,6 @@
 /* HyperPage.cpp
  *
- * Copyright (C) 1996-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1996-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -45,13 +45,13 @@ static double resolution;
 
 /********** class HyperLink **********/
 
-Thing_implement (HyperLink, Daata, 0);
+Thing_implement (HyperLink, Data, 0);
 
-autoHyperLink HyperLink_create (const char32 *name, double x1DC, double x2DC, double y1DC, double y2DC) {
+HyperLink HyperLink_create (const char32 *name, double x1DC, double x2DC, double y1DC, double y2DC) {
 	autoHyperLink me = Thing_new (HyperLink);
-	Thing_setName (me.get(), name);
+	Thing_setName (me.peek(), name);
 	my x1DC = x1DC, my x2DC = x2DC, my y1DC = y1DC, my y2DC = y2DC;
-	return me;
+	return me.transfer();
 }
 
 static void saveHistory (HyperPage me, const char32 *title) {
@@ -98,7 +98,8 @@ static void initScreen (HyperPage me) {
 	my d_y = PAGE_HEIGHT + my top / 5.0;
 	my d_x = 0;
 	my previousBottomSpacing = 0.0;
-	my links. removeAllItems ();
+	forget (my links);
+	my links = Collection_create (classHyperLink, 100);
 }
 
 void HyperPage_initSheetOfPaper (HyperPage me) {
@@ -169,29 +170,29 @@ if (! my printing) {
 	if (/* my d_y > PAGE_HEIGHT + 2.0 + heightGuess || */ my d_y < PAGE_HEIGHT - SCREEN_HEIGHT) {
 		my d_y -= heightGuess;
 	} else {
-		Graphics_setFont (my graphics.get(), font);
-		Graphics_setFontSize (my graphics.get(), size);
-		Graphics_setWrapWidth (my graphics.get(), my rightMargin - x - 0.1);
-		Graphics_setSecondIndent (my graphics.get(), secondIndent);
-		Graphics_setFontStyle (my graphics.get(), style);
-		Graphics_text (my graphics.get(), my d_x, my d_y, text);
+		Graphics_setFont (my g, font);
+		Graphics_setFontSize (my g, size);
+		Graphics_setWrapWidth (my g, my rightMargin - x - 0.1);
+		Graphics_setSecondIndent (my g, secondIndent);
+		Graphics_setFontStyle (my g, style);
+		Graphics_text (my g, my d_x, my d_y, text);
 		numberOfParagraphLinks = Graphics_getLinks (& paragraphLinks);
-		for (ilink = 1; ilink <= numberOfParagraphLinks; ilink ++) {
-			autoHyperLink link = HyperLink_create (paragraphLinks [ilink]. name,
+		if (my links) for (ilink = 1; ilink <= numberOfParagraphLinks; ilink ++) {
+			HyperLink link = HyperLink_create (paragraphLinks [ilink]. name,
 				paragraphLinks [ilink]. x1, paragraphLinks [ilink]. x2,
 				paragraphLinks [ilink]. y1, paragraphLinks [ilink]. y2);
-			my links. addItem_move (link.move());
+			Collection_addItem (my links, link);
 		}
 		if (method & HyperPage_ADD_BORDER) {
-			Graphics_setLineWidth (my graphics.get(), 2.0);
-			Graphics_line (my graphics.get(), 0.0, my d_y, my rightMargin, my d_y);
-			Graphics_setLineWidth (my graphics.get(), 1.0);
+			Graphics_setLineWidth (my g, 2);
+			Graphics_line (my g, 0.0, my d_y, my rightMargin, my d_y);
+			Graphics_setLineWidth (my g, 1);
 		}
 		/*
 		 * The text may have wrapped.
 		 * Ask the Graphics manager by how much, and update our text position accordingly.
 		 */
-		my d_y = Graphics_inqTextY (my graphics.get());
+		my d_y = Graphics_inqTextY (my g);
 	}
 } else {
 	Graphics_setFont (my ps, font);
@@ -302,13 +303,13 @@ if (! my printing) {
 	my d_y -= size * (1.2/72);
 	if (my d_y > PAGE_HEIGHT + 2.0 || my d_y < PAGE_HEIGHT - SCREEN_HEIGHT) {
 	} else {
-		Graphics_setFont (my graphics.get(), font);
-		Graphics_setFontStyle (my graphics.get(), 0);
-		Graphics_setFontSize (my graphics.get(), size);
-		Graphics_setWrapWidth (my graphics.get(), 0.0);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (my graphics.get(), 0.5 * my rightMargin, my d_y, formula);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_setFont (my g, font);
+		Graphics_setFontStyle (my g, 0);
+		Graphics_setFontSize (my g, size);
+		Graphics_setWrapWidth (my g, 0);
+		Graphics_setTextAlignment (my g, Graphics_CENTRE, Graphics_BOTTOM);
+		Graphics_text (my g, my rightMargin / 2, my d_y, formula);
+		Graphics_setTextAlignment (my g, Graphics_LEFT, Graphics_BOTTOM);
 	}
 } else {
 	Graphics_setFont (my ps, font);
@@ -345,16 +346,16 @@ if (! my printing) {
 		my d_y -= height_inches;
 	} else {
 		my d_y -= height_inches;
-		Graphics_setFont (my graphics.get(), font);
-		Graphics_setFontStyle (my graphics.get(), 0);
-		Graphics_setFontSize (my graphics.get(), size);
-		my d_x = width_inches > my rightMargin ? 0.0 : 0.5 * (my rightMargin - width_inches);
-		Graphics_setWrapWidth (my graphics.get(), 0.0);
-		Graphics_setViewport (my graphics.get(), my d_x, my d_x + width_inches, my d_y, my d_y + height_inches);
-		draw (my graphics.get());
-		Graphics_setViewport (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_setFont (my g, font);
+		Graphics_setFontStyle (my g, 0);
+		Graphics_setFontSize (my g, size);
+		my d_x = width_inches > my rightMargin ? 0 : 0.5 * (my rightMargin - width_inches);
+		Graphics_setWrapWidth (my g, 0);
+		Graphics_setViewport (my g, my d_x, my d_x + width_inches, my d_y, my d_y + height_inches);
+		draw (my g);
+		Graphics_setViewport (my g, 0, 1, 0, 1);
+		Graphics_setWindow (my g, 0, 1, 0, 1);
+		Graphics_setTextAlignment (my g, Graphics_LEFT, Graphics_BOTTOM);
 	}
 } else {
 	Graphics_setFont (my ps, font);
@@ -385,7 +386,7 @@ if (! my printing) {
 
 int HyperPage_script (HyperPage me, double width_inches, double height_inches, const char32 *script) {
 	char32 *text = Melder_dup (script);
-	autoInterpreter interpreter = Interpreter_createFromEnvironment (nullptr);
+	Interpreter interpreter = Interpreter_createFromEnvironment (NULL);
 	double topSpacing = 0.1, bottomSpacing = 0.1, minFooterDistance = 0.0;
 	kGraphics_font font = my p_font;
 	int size = my p_fontSize;
@@ -397,25 +398,25 @@ if (! my printing) {
 		my d_y -= true_height_inches;
 	} else {
 		my d_y -= true_height_inches;
-		Graphics_setFont (my graphics.get(), font);
-		Graphics_setFontStyle (my graphics.get(), 0);
-		Graphics_setFontSize (my graphics.get(), size);
-		my d_x = true_width_inches > my rightMargin ? 0.0 : 0.5 * (my rightMargin - true_width_inches);
-		Graphics_setWrapWidth (my graphics.get(), 0.0);
+		Graphics_setFont (my g, font);
+		Graphics_setFontStyle (my g, 0);
+		Graphics_setFontSize (my g, size);
+		my d_x = true_width_inches > my rightMargin ? 0 : 0.5 * (my rightMargin - true_width_inches);
+		Graphics_setWrapWidth (my g, 0);
 		long x1DCold, x2DCold, y1DCold, y2DCold;
-		Graphics_inqWsViewport (my graphics.get(), & x1DCold, & x2DCold, & y1DCold, & y2DCold);
+		Graphics_inqWsViewport (my g, & x1DCold, & x2DCold, & y1DCold, & y2DCold);
 		double x1NDCold, x2NDCold, y1NDCold, y2NDCold;
-		Graphics_inqWsWindow (my graphics.get(), & x1NDCold, & x2NDCold, & y1NDCold, & y2NDCold);
+		Graphics_inqWsWindow (my g, & x1NDCold, & x2NDCold, & y1NDCold, & y2NDCold);
 		{
-			if (! my praatApplication) my praatApplication = Melder_calloc_f (structPraatApplication, 1);
-			if (! my praatObjects) my praatObjects = Melder_calloc_f (structPraatObjects, 1);
-			if (! my praatPicture) my praatPicture = Melder_calloc_f (structPraatPicture, 1);
+			if (my praatApplication == NULL) my praatApplication = Melder_calloc_f (structPraatApplication, 1);
+			if (my praatObjects == NULL) my praatObjects = Melder_calloc_f (structPraatObjects, 1);
+			if (my praatPicture == NULL) my praatPicture = Melder_calloc_f (structPraatPicture, 1);
 			theCurrentPraatApplication = (PraatApplication) my praatApplication;
 			theCurrentPraatApplication -> batch = true;   // prevent creation of editor windows
 			theCurrentPraatApplication -> topShell = theForegroundPraatApplication. topShell;   // needed for UiForm_create () in dialogs
 			theCurrentPraatObjects = (PraatObjects) my praatObjects;
 			theCurrentPraatPicture = (PraatPicture) my praatPicture;
-			theCurrentPraatPicture -> graphics = my graphics.get();   // has to draw into HyperPage rather than Picture window
+			theCurrentPraatPicture -> graphics = my g;   // has to draw into HyperPage rather than Picture window
 			theCurrentPraatPicture -> font = font;
 			theCurrentPraatPicture -> fontSize = size;
 			theCurrentPraatPicture -> lineType = Graphics_DRAWN;
@@ -428,18 +429,18 @@ if (! my printing) {
 			theCurrentPraatPicture -> y1NDC = my d_y;
 			theCurrentPraatPicture -> y2NDC = my d_y + true_height_inches;
 
-			Graphics_setViewport (my graphics.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);
-			Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
+			Graphics_setViewport (my g, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);
+			Graphics_setWindow (my g, 0.0, 1.0, 0.0, 1.0);
 			long x1DC, y1DC, x2DC, y2DC;
-			Graphics_WCtoDC (my graphics.get(), 0.0, 0.0, & x1DC, & y2DC);
-			Graphics_WCtoDC (my graphics.get(), 1.0, 1.0, & x2DC, & y1DC);
-			Graphics_resetWsViewport (my graphics.get(), x1DC, x2DC, y1DC, y2DC);
-			Graphics_setWsWindow (my graphics.get(), 0, width_inches, 0, height_inches);
-			theCurrentPraatPicture -> x1NDC = 0.0;
+			Graphics_WCtoDC (my g, 0.0, 0.0, & x1DC, & y2DC);
+			Graphics_WCtoDC (my g, 1.0, 1.0, & x2DC, & y1DC);
+			Graphics_resetWsViewport (my g, x1DC, x2DC, y1DC, y2DC);
+			Graphics_setWsWindow (my g, 0, width_inches, 0, height_inches);
+			theCurrentPraatPicture -> x1NDC = 0;
 			theCurrentPraatPicture -> x2NDC = width_inches;
-			theCurrentPraatPicture -> y1NDC = 0.0;
+			theCurrentPraatPicture -> y1NDC = 0;
 			theCurrentPraatPicture -> y2NDC = height_inches;
-			Graphics_setViewport (my graphics.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);
+			Graphics_setViewport (my g, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);			
 
 			{// scope
 				autoMelderProgressOff progress;
@@ -449,7 +450,7 @@ if (! my printing) {
 					Melder_setDefaultDir (& my rootDirectory);
 				}
 				try {
-					Interpreter_run (interpreter.get(), text);
+					Interpreter_run (interpreter, text);
 				} catch (MelderError) {
 					if (my scriptErrorHasBeenNotified) {
 						Melder_clearError ();
@@ -459,28 +460,28 @@ if (! my printing) {
 					}
 				}
 			}
-			Graphics_setLineType (my graphics.get(), Graphics_DRAWN);
-			Graphics_setLineWidth (my graphics.get(), 1.0);
-			Graphics_setArrowSize (my graphics.get(), 1.0);
-			Graphics_setSpeckleSize (my graphics.get(), 1.0);
-			Graphics_setColour (my graphics.get(), Graphics_BLACK);
+			Graphics_setLineType (my g, Graphics_DRAWN);
+			Graphics_setLineWidth (my g, 1.0);
+			Graphics_setArrowSize (my g, 1.0);
+			Graphics_setSpeckleSize (my g, 1.0);
+			Graphics_setColour (my g, Graphics_BLACK);
 			/*Graphics_Link *paragraphLinks;
 			long numberOfParagraphLinks = Graphics_getLinks (& paragraphLinks);
 			if (my links) for (long ilink = 1; ilink <= numberOfParagraphLinks; ilink ++) {
-				autoHyperLink link = HyperLink_create (paragraphLinks [ilink]. name,
+				HyperLink link = HyperLink_create (paragraphLinks [ilink]. name,
 					paragraphLinks [ilink]. x1, paragraphLinks [ilink]. x2,
 					paragraphLinks [ilink]. y1, paragraphLinks [ilink]. y2);
-				Collection_addItem_move (my links, link.move());
+				Collection_addItem (my links, link);
 			}*/
 			theCurrentPraatApplication = & theForegroundPraatApplication;
 			theCurrentPraatObjects = & theForegroundPraatObjects;
 			theCurrentPraatPicture = & theForegroundPraatPicture;
 		}
-		Graphics_resetWsViewport (my graphics.get(), x1DCold, x2DCold, y1DCold, y2DCold);
-		Graphics_setWsWindow (my graphics.get(), x1NDCold, x2NDCold, y1NDCold, y2NDCold);
-		Graphics_setViewport (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setWindow (my graphics.get(), 0.0, 1.0, 0.0, 1.0);
-		Graphics_setTextAlignment (my graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
+		Graphics_resetWsViewport (my g, x1DCold, x2DCold, y1DCold, y2DCold);
+		Graphics_setWsWindow (my g, x1NDCold, x2NDCold, y1NDCold, y2NDCold);
+		Graphics_setViewport (my g, 0, 1, 0, 1);
+		Graphics_setWindow (my g, 0, 1, 0, 1);
+		Graphics_setTextAlignment (my g, Graphics_LEFT, Graphics_BOTTOM);
 	}
 } else {
 	Graphics_setFont (my ps, font);
@@ -504,9 +505,9 @@ if (! my printing) {
 	double x1NDCold, x2NDCold, y1NDCold, y2NDCold;
 	Graphics_inqWsWindow (my ps, & x1NDCold, & x2NDCold, & y1NDCold, & y2NDCold);
 	{
-		if (! my praatApplication) my praatApplication = Melder_calloc_f (structPraatApplication, 1);
-		if (! my praatObjects) my praatObjects = Melder_calloc_f (structPraatObjects, 1);
-		if (! my praatPicture) my praatPicture = Melder_calloc_f (structPraatPicture, 1);
+		if (my praatApplication == NULL) my praatApplication = Melder_calloc_f (structPraatApplication, 1);
+		if (my praatObjects == NULL) my praatObjects = Melder_calloc_f (structPraatObjects, 1);
+		if (my praatPicture == NULL) my praatPicture = Melder_calloc_f (structPraatPicture, 1);
 		theCurrentPraatApplication = (PraatApplication) my praatApplication;
 		theCurrentPraatApplication -> batch = true;
 		theCurrentPraatApplication -> topShell = theForegroundPraatApplication. topShell;   // needed for UiForm_create () in dialogs
@@ -550,7 +551,7 @@ if (! my printing) {
 				Melder_setDefaultDir (& my rootDirectory);
 			}
 			try {
-				Interpreter_run (interpreter.get(), text);
+				Interpreter_run (interpreter, text);
 			} catch (MelderError) {
 				Melder_clearError ();
 			}
@@ -571,28 +572,31 @@ if (! my printing) {
 	Graphics_setTextAlignment (my ps, Graphics_LEFT, Graphics_BOTTOM);
 }
 	my previousBottomSpacing = bottomSpacing;
+	forget (interpreter);
 	Melder_free (text);
 	return 1;
 }
 
-static void print (void *void_me, Graphics graphics) {
+static void print (I, Graphics graphics) {
 	iam (HyperPage);
 	my ps = graphics;
-	Graphics_setDollarSignIsCode (graphics, true);
-	Graphics_setAtSignIsLink (graphics, true);
-	my printing = true;
+	Graphics_setDollarSignIsCode (graphics, TRUE);
+	Graphics_setAtSignIsLink (graphics, TRUE);
+	my printing = TRUE;
 	HyperPage_initSheetOfPaper (me);
 	my v_draw ();
-	my printing = false;
+	my printing = FALSE;
 }
 
 /********** class HyperPage **********/
 
-void structHyperPage :: v_destroy () noexcept {
+void structHyperPage :: v_destroy () {
+	forget (our links);
 	Melder_free (our entryHint);
+	forget (our g);
 	for (int i = 0; i < 20; i ++) Melder_free (our history [i]. page);
 	Melder_free (our currentPageTitle);
-	if (our praatApplication) {
+	if (praatApplication != NULL) {
 		for (int iobject = ((PraatObjects) our praatObjects) -> n; iobject >= 1; iobject --) {
 			Melder_free (((PraatObjects) our praatObjects) -> list [iobject]. name);
 			forget (((PraatObjects) our praatObjects) -> list [iobject]. object);
@@ -604,9 +608,11 @@ void structHyperPage :: v_destroy () noexcept {
 	our HyperPage_Parent :: v_destroy ();
 }
 
-static void gui_drawingarea_cb_expose (HyperPage me, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! my graphics) return;   // could be the case in the very beginning
-	Graphics_clearWs (my graphics.get());
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (HyperPage);
+	(void) event;
+	if (my g == NULL) return;   // could be the case in the very beginning
+	Graphics_clearWs (my g);
 	initScreen (me);
 	trace (U"going to draw");
 	my v_draw ();
@@ -614,19 +620,21 @@ static void gui_drawingarea_cb_expose (HyperPage me, GuiDrawingArea_ExposeEvent
 		Melder_free (my entryHint);
 		my top = (int) floor (5.0 * (PAGE_HEIGHT - my entryPosition));
 		if (my top < 0) my top = 0;
-		Graphics_clearWs (my graphics.get());
+		Graphics_clearWs (my g);
 		initScreen (me);
 		my v_draw ();
 		updateVerticalScrollBar (me);
 	}
 }
 
-static void gui_drawingarea_cb_click (HyperPage me, GuiDrawingArea_ClickEvent event) {
-	if (! my graphics) return;   // could be the case in the very beginning
-	for (long ilink = 1; ilink <= my links.size; ilink ++) {
-		HyperLink link = my links.at [ilink];
-		if (! link)
-			Melder_fatal (U"gui_drawingarea_cb_click: empty link ", ilink, U"/", my links.size, U".");
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (HyperPage);
+	if (my g == NULL) return;   // could be the case in the very beginning
+	if (! my links) return;
+	for (long ilink = 1; ilink <= my links -> size; ilink ++) {
+		HyperLink link = (HyperLink) my links -> item [ilink];		
+		if (link == NULL)
+			Melder_fatal (U"gui_drawingarea_cb_click: empty link ", ilink, U"/", my links -> size, U".");
 		if (event -> y > link -> y2DC && event -> y < link -> y1DC && event -> x > link -> x1DC && event -> x < link -> x2DC) {
 			saveHistory (me, my currentPageTitle);
 			try {
@@ -639,18 +647,21 @@ static void gui_drawingarea_cb_click (HyperPage me, GuiDrawingArea_ClickEvent ev
 	}
 }
 
-static void menu_cb_postScriptSettings (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_postScriptSettings (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	Printer_postScriptSettings ();
 }
 
 #ifdef macintosh
-static void menu_cb_pageSetup (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pageSetup (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	Printer_pageSetup ();
 }
 #endif
 
-static void menu_cb_print (HyperPage me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Print", nullptr)
+static void menu_cb_print (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
+	EDITOR_FORM (U"Print", 0)
 		SENTENCE (U"Left or inside header", U"")
 		SENTENCE (U"Middle header", U"")
 		LABEL (U"", U"Right or outside header:")
@@ -658,7 +669,7 @@ static void menu_cb_print (HyperPage me, EDITOR_ARGS_FORM) {
 		SENTENCE (U"Left or inside footer", U"")
 		SENTENCE (U"Middle footer", U"")
 		SENTENCE (U"Right or outside footer", U"")
-		BOOLEAN (U"Mirror even/odd headers", true)
+		BOOLEAN (U"Mirror even/odd headers", TRUE)
 		INTEGER (U"First page number", U"0 (= no page numbers)")
 	EDITOR_OK
 		my v_defaultHeaders (cmd);
@@ -676,8 +687,9 @@ static void menu_cb_print (HyperPage me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_font (HyperPage me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Font", nullptr)
+static void menu_cb_font (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
+	EDITOR_FORM (U"Font", 0)
 		RADIO (U"Font", 1)
 			RADIOBUTTON (U"Times")
 			RADIOBUTTON (U"Helvetica")
@@ -687,7 +699,7 @@ static void menu_cb_font (HyperPage me, EDITOR_ARGS_FORM) {
 	EDITOR_DO
 		int font = GET_INTEGER (U"Font");
 		my pref_font () = my p_font = font == 1 ? kGraphics_font_TIMES : kGraphics_font_HELVETICA;
-		if (my graphics) Graphics_updateWs (my graphics.get());
+		if (my g) Graphics_updateWs (my g);
 	EDITOR_END
 }
 
@@ -700,17 +712,18 @@ static void updateSizeMenu (HyperPage me) {
 }
 static void setFontSize (HyperPage me, int fontSize) {
 	my pref_fontSize () = my p_fontSize = fontSize;
-	if (my graphics) Graphics_updateWs (my graphics.get());
+	if (my g) Graphics_updateWs (my g);
 	updateSizeMenu (me);
 }
 
-static void menu_cb_10 (HyperPage me, EDITOR_ARGS_DIRECT) { setFontSize (me, 10); }
-static void menu_cb_12 (HyperPage me, EDITOR_ARGS_DIRECT) { setFontSize (me, 12); }
-static void menu_cb_14 (HyperPage me, EDITOR_ARGS_DIRECT) { setFontSize (me, 14); }
-static void menu_cb_18 (HyperPage me, EDITOR_ARGS_DIRECT) { setFontSize (me, 18); }
-static void menu_cb_24 (HyperPage me, EDITOR_ARGS_DIRECT) { setFontSize (me, 24); }
+static void menu_cb_10 (EDITOR_ARGS) { EDITOR_IAM (HyperPage); setFontSize (me, 10); }
+static void menu_cb_12 (EDITOR_ARGS) { EDITOR_IAM (HyperPage); setFontSize (me, 12); }
+static void menu_cb_14 (EDITOR_ARGS) { EDITOR_IAM (HyperPage); setFontSize (me, 14); }
+static void menu_cb_18 (EDITOR_ARGS) { EDITOR_IAM (HyperPage); setFontSize (me, 18); }
+static void menu_cb_24 (EDITOR_ARGS) { EDITOR_IAM (HyperPage); setFontSize (me, 24); }
 
-static void menu_cb_fontSize (HyperPage me, EDITOR_ARGS_FORM) {
+static void menu_cb_fontSize (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	EDITOR_FORM (U"Font size", 0)
 		NATURAL (U"Font size (points)", my default_fontSize ())
 	EDITOR_OK
@@ -720,7 +733,8 @@ static void menu_cb_fontSize (HyperPage me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_searchForPage (HyperPage me, EDITOR_ARGS_FORM) {
+static void menu_cb_searchForPage (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	EDITOR_FORM (U"Search for page", 0)
 		TEXTFIELD (U"Page", U"a")
 	EDITOR_OK
@@ -743,16 +757,17 @@ static void menu_cb_searchForPage (HyperPage me, EDITOR_ARGS_FORM) {
  * The 'pageIncrement' is sliderSize - 1.
  */
 
-static void gui_cb_verticalScroll (HyperPage me, GuiScrollBarEvent	event) {
+static void gui_cb_verticalScroll (I, GuiScrollBarEvent	event) {
+	iam (HyperPage);
 	double value = GuiScrollBar_getValue (event -> scrollBar);
 	if (value != my top) {
 		trace (U"scroll from ", my top, U" to ", value);
 		my top = (int) floor (value);
 		#if cocoa || gtk || win
-			Graphics_updateWs (my graphics.get());   // wait for expose event
+			Graphics_updateWs (my g);   // wait for expose event
 		#else
 			initScreen (me);
-			Graphics_clearWs (my graphics.get());
+			Graphics_clearWs (my g);
 			my v_draw ();   // do not wait for expose event
 		#endif
 		updateVerticalScrollBar (me);
@@ -777,26 +792,28 @@ static void updateVerticalScrollBar (HyperPage me)
 	my history [my historyPointer]. top = 0/*my top*/;
 }
 
-static void menu_cb_pageUp (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pageUp (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	if (! my verticalScrollBar) return;
 	int value = GuiScrollBar_getValue (my verticalScrollBar) - 24;
 	if (value < 0) value = 0;
 	if (value != my top) {
 		my top = value;
-		Graphics_clearWs (my graphics.get());
+		Graphics_clearWs (my g);
 		initScreen (me);
 		my v_draw ();   // do not wait for expose event
 		updateVerticalScrollBar (me);
 	}
 }
 
-static void menu_cb_pageDown (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pageDown (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	if (! my verticalScrollBar) return;
 	int value = GuiScrollBar_getValue (my verticalScrollBar) + 24;
 	if (value > (int) (PAGE_HEIGHT * 5) - 25) value = (int) (PAGE_HEIGHT * 5) - 25;
 	if (value != my top) {
 		my top = value;
-		Graphics_clearWs (my graphics.get());
+		Graphics_clearWs (my g);
 		initScreen (me);
 		my v_draw ();   // do not wait for expose event
 		updateVerticalScrollBar (me);
@@ -816,11 +833,14 @@ static void do_back (HyperPage me) {
 	}
 }
 
-static void menu_cb_back (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_back (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	do_back (me);
 }
 
-static void gui_button_cb_back (HyperPage me, GuiButtonEvent /* event */) {
+static void gui_button_cb_back (I, GuiButtonEvent event) {
+	(void) event;
+	iam (HyperPage);
 	do_back (me);
 }
 
@@ -835,11 +855,14 @@ static void do_forth (HyperPage me) {
 	}
 }
 
-static void menu_cb_forth (HyperPage me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_forth (EDITOR_ARGS) {
+	EDITOR_IAM (HyperPage);
 	do_forth (me);
 }
 
-static void gui_button_cb_forth (HyperPage me, GuiButtonEvent /* event */) {
+static void gui_button_cb_forth (I, GuiButtonEvent event) {
+	(void) event;
+	iam (HyperPage);
 	do_forth (me);
 }
 
@@ -851,14 +874,14 @@ void structHyperPage :: v_createMenus () {
 		Editor_addCommand (this, U"File", U"Page setup...", 0, menu_cb_pageSetup);
 	#endif
 	Editor_addCommand (this, U"File", U"Print page...", 'P', menu_cb_print);
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
 
 	if (our v_hasHistory ()) {
 		Editor_addMenu (this, U"Go to", 0);
 		Editor_addCommand (this, U"Go to", U"Search for page...", 0, menu_cb_searchForPage);
 		Editor_addCommand (this, U"Go to", U"Back", GuiMenu_OPTION | GuiMenu_LEFT_ARROW, menu_cb_back);
 		Editor_addCommand (this, U"Go to", U"Forward", GuiMenu_OPTION | GuiMenu_RIGHT_ARROW, menu_cb_forth);
-		Editor_addCommand (this, U"Go to", U"-- page --", 0, nullptr);
+		Editor_addCommand (this, U"Go to", U"-- page --", 0, NULL);
 		Editor_addCommand (this, U"Go to", U"Page up", GuiMenu_PAGE_UP, menu_cb_pageUp);
 		Editor_addCommand (this, U"Go to", U"Page down", GuiMenu_PAGE_DOWN, menu_cb_pageDown);
 	}
@@ -870,27 +893,32 @@ void structHyperPage :: v_createMenus () {
 	fontSizeButton_14 = Editor_addCommand (this, U"Font", U"14", GuiMenu_CHECKBUTTON, menu_cb_14);
 	fontSizeButton_18 = Editor_addCommand (this, U"Font", U"18", GuiMenu_CHECKBUTTON, menu_cb_18);
 	fontSizeButton_24 = Editor_addCommand (this, U"Font", U"24", GuiMenu_CHECKBUTTON, menu_cb_24);
-	Editor_addCommand (this, U"Font", U"-- font --", 0, nullptr);
+	Editor_addCommand (this, U"Font", U"-- font --", 0, NULL);
 	Editor_addCommand (this, U"Font", U"Font...", 0, menu_cb_font);
 }
 
 /********** **********/
 
-static void gui_drawingarea_cb_resize (HyperPage me, GuiDrawingArea_ResizeEvent event) {
-	if (! my graphics) return;
-	Graphics_setWsViewport (my graphics.get(), 0.0, event -> width, 0.0, event -> height);
-	Graphics_setWsWindow (my graphics.get(), 0.0, my rightMargin = event -> width / resolution,
+static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) {
+	iam (HyperPage);
+	if (my g == NULL) return;
+	Graphics_setWsViewport (my g, 0, event -> width, 0, event -> height);
+	Graphics_setWsWindow (my g, 0.0, my rightMargin = event -> width / resolution,
 		PAGE_HEIGHT - event -> height / resolution, PAGE_HEIGHT);
-	Graphics_updateWs (my graphics.get());
+	Graphics_updateWs (my g);
 	updateVerticalScrollBar (me);
 }
 
-static void gui_button_cb_previousPage (HyperPage me, GuiButtonEvent /* event */) {
+static void gui_button_cb_previousPage (I, GuiButtonEvent event) {
+	(void) event;
+	iam (HyperPage);
 	HyperPage_goToPage_i (me, my v_getCurrentPageNumber () > 1 ?
 		my v_getCurrentPageNumber () - 1 : my v_getNumberOfPages ());
 }
 
-static void gui_button_cb_nextPage (HyperPage me, GuiButtonEvent /* event */) {
+static void gui_button_cb_nextPage (I, GuiButtonEvent event) {
+	(void) event;
+	iam (HyperPage);
 	long currentPageNumber = my v_getCurrentPageNumber ();
 	HyperPage_goToPage_i (me, currentPageNumber < my v_getNumberOfPages () ? currentPageNumber + 1 : 1);
 }
@@ -923,25 +951,25 @@ void structHyperPage :: v_createChildren () {
 	drawingArea = GuiDrawingArea_createShown (our d_windowForm,
 		0, - Machine_getScrollBarWidth (),
 		y + ( our d_hasExtraRowOfTools ? 2 * height + 16 : height + 9 ), - Machine_getScrollBarWidth (),
-		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, gui_drawingarea_cb_resize, this, GuiDrawingArea_BORDER);
-	GuiDrawingArea_setSwipable (drawingArea, nullptr, our verticalScrollBar);
+		gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, gui_drawingarea_cb_resize, this, GuiDrawingArea_BORDER);
+	GuiDrawingArea_setSwipable (drawingArea, NULL, our verticalScrollBar);
 }
 
-void HyperPage_init (HyperPage me, const char32 *title, Daata data) {
-	resolution = Gui_getResolution (nullptr);
+void HyperPage_init (HyperPage me, const char32 *title, Data data) {
+	resolution = Gui_getResolution (NULL);
 	Editor_init (me, 0, 0, (int) floor (6 * resolution + 30), 800, title, data);
 	#if motif
 		Melder_assert (XtWindow (my drawingArea -> d_widget));
 	#endif
-	my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-	Graphics_setAtSignIsLink (my graphics.get(), true);
-	Graphics_setDollarSignIsCode (my graphics.get(), true);
-	Graphics_setFont (my graphics.get(), kGraphics_font_TIMES);
+	my g = Graphics_create_xmdrawingarea (my drawingArea);
+	Graphics_setAtSignIsLink (my g, TRUE);
+	Graphics_setDollarSignIsCode (my g, TRUE);
+	Graphics_setFont (my g, kGraphics_font_TIMES);
 	if (my p_font != kGraphics_font_TIMES && my p_font != kGraphics_font_HELVETICA)
 		my pref_font () = my p_font = kGraphics_font_TIMES;   // ensure Unicode compatibility
 	setFontSize (me, my p_fontSize);
 
-struct structGuiDrawingArea_ResizeEvent event { my drawingArea, 0 };
+struct structGuiDrawingAreaResizeEvent event = { my drawingArea, 0 };
 event. width  = GuiControl_getWidth  (my drawingArea);
 event. height = GuiControl_getHeight (my drawingArea);
 gui_drawingarea_cb_resize (me, & event);
@@ -950,8 +978,8 @@ gui_drawingarea_cb_resize (me, & event);
 }
 
 void HyperPage_clear (HyperPage me) {
-	Graphics_updateWs (my graphics.get());
-	my links. removeAllItems();
+	Graphics_updateWs (my g);
+	forget (my links);
 }
 
 void structHyperPage :: v_dataChanged () {
diff --git a/sys/HyperPage.h b/sys/HyperPage.h
index bcdbe4b..4bae4a1 100644
--- a/sys/HyperPage.h
+++ b/sys/HyperPage.h
@@ -23,23 +23,21 @@
 #include "Collection.h"
 #include "Graphics.h"
 
-Thing_define (HyperLink, Daata) {
+Thing_define (HyperLink, Data) {
 	double x1DC, x2DC, y1DC, y2DC;
 };
 
-autoHyperLink HyperLink_create (const char32 *name, double x1, double x2, double y1, double y2);
+HyperLink HyperLink_create (const char32 *name, double x1, double x2, double y1, double y2);
 
 Thing_define (HyperPage, Editor) {
 	GuiDrawingArea drawingArea;
 	GuiScrollBar verticalScrollBar;
 	bool d_hasExtraRowOfTools;
-	autoGraphics graphics;
-	Graphics ps;
+	Graphics g, ps;
 	double d_x, d_y, rightMargin, previousBottomSpacing;
 	long d_printingPageNumber;
-	CollectionOf<structHyperLink> links;
-	bool printing;
-	int top, mirror;
+	Collection links;
+	int printing, top, mirror;
 	char32 *insideHeader, *middleHeader, *outsideHeader;
 	char32 *insideFooter, *middleFooter, *outsideFooter;
 	char32 *entryHint; double entryPosition;
@@ -51,7 +49,7 @@ Thing_define (HyperPage, Editor) {
 	bool scriptErrorHasBeenNotified;
 	structMelderDir rootDirectory;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	bool v_editable ()
 		override { return false; }
@@ -112,7 +110,7 @@ int HyperPage_script (HyperPage me, double width_inches, double height_inches, c
 int HyperPage_goToPage (HyperPage me, const char32 *title);
 void HyperPage_goToPage_i (HyperPage me, long i);
 
-void HyperPage_init (HyperPage me, const char32 *title, Daata data);
+void HyperPage_init (HyperPage me, const char32 *title, Data data);
 
 void HyperPage_setEntryHint (HyperPage me, const char32 *entry);
 void HyperPage_initSheetOfPaper (HyperPage me);
diff --git a/sys/InfoEditor.cpp b/sys/InfoEditor.cpp
index a635f54..d0458aa 100644
--- a/sys/InfoEditor.cpp
+++ b/sys/InfoEditor.cpp
@@ -21,10 +21,10 @@
 
 Thing_implement (InfoEditor, TextEditor, 0);
 
-static InfoEditor theReferenceToTheOnlyInfoEditor;
+static InfoEditor theInfoEditor;
 
-void structInfoEditor :: v_destroy () noexcept {
-	theReferenceToTheOnlyInfoEditor = nullptr;   // undangle
+void structInfoEditor :: v_destroy () {
+	theInfoEditor = NULL;   // undangle
 	InfoEditor_Parent :: v_destroy ();
 }
 
@@ -34,48 +34,23 @@ void structInfoEditor :: v_clear () {
 
 void gui_information (const char32 *message);   // BUG
 void gui_information (const char32 *message) {
-	if (! theReferenceToTheOnlyInfoEditor) {
-		autoInfoEditor editor = Thing_new (InfoEditor);
-		TextEditor_init (editor.get(), U"");
-		Thing_setName (editor.get(), U"Praat Info");
-		theReferenceToTheOnlyInfoEditor = editor.get();
-		editor.releaseToUser();
+	if (! theInfoEditor) {
+		theInfoEditor = Thing_new (InfoEditor);
+		TextEditor_init (theInfoEditor, U"");
+		Thing_setName (theInfoEditor, U"Praat Info");
 	}
-	GuiText_setString (theReferenceToTheOnlyInfoEditor -> textWidget, message);
-	GuiThing_show (theReferenceToTheOnlyInfoEditor -> d_windowForm);
+	GuiText_setString (theInfoEditor -> textWidget, message);
+	GuiThing_show (theInfoEditor -> d_windowForm);
 	/*
 	 * Try to make sure that the invalidated text widget and the elements of the fronted window are redrawn before the next event.
 	 */
 	#if cocoa
-		#if 1
-			NSEvent *nsEvent = [NSApp
-				nextEventMatchingMask: NSAnyEventMask
-				untilDate: [NSDate distantPast]
-				inMode: NSDefaultRunLoopMode
-				dequeue: NO
-				];
-			if (nsEvent) {
-				NSUInteger nsEventType = [nsEvent type];
-				if (nsEventType == NSKeyDown) NSBeep ();
-				//[[nsEvent window]  sendEvent: nsEvent];
-			}
-		#else
-			/*
-				The following is an attempt to explicitly perform the actions that event polling is supposed to perform.
-				It would be nice not to actually have to poll events (with nextEventMatchingMask),
-				because we are not interested in the events; we're interested only in the graphics update.
-			*/
-			//[theReferenceToTheOnlyInfoEditor -> d_windowForm -> d_cocoaWindow   displayIfNeeded];   // apparently, this does not suffice
-			//[theReferenceToTheOnlyInfoEditor -> textWidget -> d_cocoaTextView   lockFocus];   // this displays the menu as well as the text
-			[theReferenceToTheOnlyInfoEditor -> d_windowForm -> d_cocoaWindow   display];   // this displays the menu as well as the text
-			//[theReferenceToTheOnlyInfoEditor -> textWidget -> d_cocoaTextView   displayIfNeeded];   // this displays only the text
-			//[theReferenceToTheOnlyInfoEditor -> textWidget -> d_cocoaTextView   display];
-			//[theReferenceToTheOnlyInfoEditor -> textWidget -> d_cocoaTextView   unlockFocus];   // this displays the menu as well as the text
-			[theReferenceToTheOnlyInfoEditor -> d_windowForm -> d_cocoaWindow   flushWindow];
-			[NSApp  updateWindows];   // called automatically?
-		#endif
+		//[theInfoEditor -> d_windowForm -> d_cocoaWindow   displayIfNeeded];   // apparently, this does not suffice
+		[theInfoEditor -> d_windowForm -> d_cocoaWindow   display];   // this displays the menu as well as the text
+		//[theInfoEditor -> textWidget -> d_cocoaTextView   displayIfNeeded];   // this displays only the text
+		//[theInfoEditor -> textWidget -> d_cocoaTextView   display];
 	#elif defined (macintosh)
-		GuiShell_drain (theReferenceToTheOnlyInfoEditor -> d_windowForm);
+		GuiShell_drain (theInfoEditor -> d_windowForm);
 	#endif
 }
 
diff --git a/sys/InfoEditor.h b/sys/InfoEditor.h
index dd610b4..ee9278d 100644
--- a/sys/InfoEditor.h
+++ b/sys/InfoEditor.h
@@ -22,7 +22,7 @@
 #include "TextEditor.h"
 
 Thing_define (InfoEditor, TextEditor) {
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	bool v_scriptable ()
 		override { return false; }
diff --git a/sys/Interpreter.cpp b/sys/Interpreter.cpp
index 78ed773..e5cea36 100644
--- a/sys/Interpreter.cpp
+++ b/sys/Interpreter.cpp
@@ -79,14 +79,14 @@ extern structMelderDir praatDir;
 
 Thing_implement (InterpreterVariable, SimpleString, 0);
 
-void structInterpreterVariable :: v_destroy () noexcept {
+void structInterpreterVariable :: v_destroy () {
 	Melder_free (string);
 	Melder_free (stringValue);
 	NUMmatrix_free (numericArrayValue. data, 1, 1);
 	InterpreterVariable_Parent :: v_destroy ();
 }
 
-static autoInterpreterVariable InterpreterVariable_create (const char32 *key) {
+static InterpreterVariable InterpreterVariable_create (const char32 *key) {
 	try {
 		if (key [0] == U'e' && key [1] == U'\0')
 			Melder_throw (U"You cannot use 'e' as the name of a variable (e is the constant 2.71...).");
@@ -97,7 +97,7 @@ static autoInterpreterVariable InterpreterVariable_create (const char32 *key) {
 			Melder_throw (U"You cannot use 'undefined' as the name of a variable.");
 		autoInterpreterVariable me = Thing_new (InterpreterVariable);
 		my string = Melder_dup (key);
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Interpreter variable not created.");
 	}
@@ -105,7 +105,7 @@ static autoInterpreterVariable InterpreterVariable_create (const char32 *key) {
 
 Thing_implement (Interpreter, Thing, 0);
 
-void structInterpreter :: v_destroy () noexcept {
+void structInterpreter :: v_destroy () {
 	Melder_free (our environmentName);
 	for (int ipar = 1; ipar <= Interpreter_MAXNUM_PARAMETERS; ipar ++)
 		Melder_free (our arguments [ipar]);
@@ -117,27 +117,31 @@ void structInterpreter :: v_destroy () noexcept {
 		}
 		delete (our variablesMap);
 	}
+	#else
+	forget (our variables);
 	#endif
 	Interpreter_Parent :: v_destroy ();
 }
 
-autoInterpreter Interpreter_create (char32 *environmentName, ClassInfo editorClass) {
+Interpreter Interpreter_create (char32 *environmentName, ClassInfo editorClass) {
 	try {
 		autoInterpreter me = Thing_new (Interpreter);
 		#if USE_HASH
 		my variablesMap = new std::unordered_map <std::u32string, InterpreterVariable>;
 		my variablesMap -> max_load_factor (0.65f);
+		#else
+		my variables = SortedSetOfString_create ();
 		#endif
 		my environmentName = Melder_dup (environmentName);
 		my editorClass = editorClass;
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Interpreter not created.");
 	}
 }
 
-autoInterpreter Interpreter_createFromEnvironment (Editor editor) {
-	if (! editor) return Interpreter_create (nullptr, nullptr);
+Interpreter Interpreter_createFromEnvironment (Editor editor) {
+	if (editor == NULL) return Interpreter_create (NULL, NULL);
 	return Interpreter_create (editor -> name, editor -> classInfo);
 }
 
@@ -154,7 +158,7 @@ void Melder_includeIncludeFiles (char32 **text) {
 				Look for an include statement. If not found, we have finished.
 			 */
 			includeLocation = str32nequ (head, U"include ", 8) ? head : str32str (head, U"\ninclude ");
-			if (! includeLocation) break;
+			if (includeLocation == NULL) break;
 			if (includeLocation != head) includeLocation += 1;
 			numberOfIncludes += 1;
 			/*
@@ -209,7 +213,7 @@ void Melder_includeIncludeFiles (char32 **text) {
 }
 
 long Interpreter_readParameters (Interpreter me, char32 *text) {
-	char32 *formLocation = nullptr;
+	char32 *formLocation = NULL;
 	long npar = 0;
 	my dialogTitle [0] = U'\0';
 	/*
@@ -245,7 +249,7 @@ long Interpreter_readParameters (Interpreter me, char32 *text) {
 			while (*line == U' ' || *line == U'\t') line ++;
 			while (*line == U'#' || *line == U';' || *line == U'!' || *line == U'\n') {
 				newLine = str32chr (line, U'\n');
-				if (! newLine)
+				if (newLine == NULL)
 					Melder_throw (U"Unfinished form.");
 				line = newLine + 1;
 				while (*line == U' ' || *line == U'\t') line ++;
@@ -323,8 +327,8 @@ UiForm Interpreter_createForm (Interpreter me, GuiWindow parent, const char32 *p
 {
 	UiForm form = UiForm_create (parent,
 		Melder_cat (selectionOnly ? U"Run script (selection only): " : U"Run script: ", my dialogTitle),
-		okCallback, okClosure, nullptr, nullptr);
-	UiField radio = nullptr;
+		okCallback, okClosure, NULL, NULL);
+	Any radio = NULL;
 	if (path) UiForm_addText (form, U"$file", path);
 	for (int ipar = 1; ipar <= my numberOfParameters; ipar ++) {
 		/*
@@ -368,7 +372,7 @@ UiForm Interpreter_createForm (Interpreter me, GuiWindow parent, const char32 *p
 		/*
 		 * Strip parentheses and colon off parameter name.
 		 */
-		if ((p = str32chr (my parameters [ipar], U'(')) != nullptr) {
+		if ((p = str32chr (my parameters [ipar], U'(')) != NULL) {
 			*p = U'\0';
 			if (p - my parameters [ipar] > 0 && p [-1] == U'_') p [-1] = U'\0';
 		}
@@ -379,13 +383,13 @@ UiForm Interpreter_createForm (Interpreter me, GuiWindow parent, const char32 *p
 	return form;
 }
 
-void Interpreter_getArgumentsFromDialog (Interpreter me, UiForm dialog) {
+void Interpreter_getArgumentsFromDialog (Interpreter me, Any dialog) {
 	for (int ipar = 1; ipar <= my numberOfParameters; ipar ++) {
 		char32 parameter [100], *p;
 		/*
 		 * Strip parentheses and colon off parameter name.
 		 */
-		if ((p = str32chr (my parameters [ipar], U'(')) != nullptr) {
+		if ((p = str32chr (my parameters [ipar], U'(')) != NULL) {
 			*p = U'\0';
 			if (p - my parameters [ipar] > 0 && p [-1] == U'_') p [-1] = U'\0';
 		}
@@ -417,7 +421,7 @@ void Interpreter_getArgumentsFromDialog (Interpreter me, UiForm dialog) {
 			case Interpreter_CHOICE:
 			case Interpreter_OPTIONMENU: {
 				long integerValue = 0;
-				char32 *stringValue = nullptr;
+				char32 *stringValue = NULL;
 				integerValue = UiForm_getInteger (dialog, parameter);
 				stringValue = UiForm_getString (dialog, parameter);
 				Melder_free (my arguments [ipar]);
@@ -454,7 +458,7 @@ void Interpreter_getArgumentsFromString (Interpreter me, const char32 *arguments
 		/*
 		 * Strip parentheses and colon off parameter name.
 		 */
-		if ((p = str32chr (p, U'(')) != nullptr) {
+		if ((p = str32chr (p, U'(')) != NULL) {
 			*p = U'\0';
 			if (p - my parameters [ipar] > 0 && p [-1] == U'_') p [-1] = U'\0';
 		}
@@ -567,7 +571,7 @@ void Interpreter_getArgumentsFromArgs (Interpreter me, int narg, Stackel args) {
 		/*
 		 * Strip parentheses and colon off parameter name.
 		 */
-		if ((p = str32chr (p, U'(')) != nullptr) {
+		if ((p = str32chr (p, U'(')) != NULL) {
 			*p = U'\0';
 			if (p - my parameters [ipar] > 0 && p [-1] == U'_') p [-1] = U'\0';
 		}
@@ -586,8 +590,8 @@ void Interpreter_getArgumentsFromArgs (Interpreter me, int narg, Stackel args) {
 		Stackel arg = & args [++ iarg];
 		my arguments [ipar] =
 			arg -> which == Stackel_NUMBER ? Melder_dup (Melder_double (arg -> number)) :
-			arg -> which == Stackel_STRING ? Melder_dup (arg -> string) : nullptr;   // replace with the actual arguments
-		Melder_assert (my arguments [ipar]);
+			arg -> which == Stackel_STRING ? Melder_dup (arg -> string) : NULL;   // replace with the actual arguments
+		Melder_assert (my arguments [ipar] != NULL);
 	}
 	if (iarg < narg)
 		Melder_throw (U"Found ", narg, U" arguments but expected only ", iarg, U".");
@@ -642,47 +646,46 @@ void Interpreter_getArgumentsFromArgs (Interpreter me, int narg, Stackel args) {
 
 static void Interpreter_addNumericVariable (Interpreter me, const char32 *key, double value) {
 	#if USE_HASH
-	autoInterpreterVariable variable = InterpreterVariable_create (key);
+	InterpreterVariable variable = InterpreterVariable_create (key);
 	variable -> numericValue = value;
-	(*my variablesMap) [key] = variable.get();   // YUCK
-	variable.releaseToAmbiguousOwner();
+	(*my variablesMap) [key] = variable;
 	#else
 	autoInterpreterVariable variable = InterpreterVariable_create (key);
 	variable -> numericValue = value;
-	my variables. addItem_move (variable.move());
+	Collection_addItem (my variables, variable.transfer());
 	#endif
 }
 
 static void Interpreter_addStringVariable (Interpreter me, const char32 *key, const char32 *value) {
 	#if USE_HASH
-	autoInterpreterVariable variable = InterpreterVariable_create (key);
+	InterpreterVariable variable = InterpreterVariable_create (key);
 	variable -> stringValue = Melder_dup (value);
-	(*my variablesMap) [key] = variable.get();   // YUCK
-	variable.releaseToAmbiguousOwner();
+	(*my variablesMap) [key] = variable;
 	#else
 	autoInterpreterVariable variable = InterpreterVariable_create (key);
 	variable -> stringValue = Melder_dup (value);
-	my variables. addItem_move (variable.move());
+	Collection_addItem (my variables, variable.transfer());
 	#endif
 }
 
 InterpreterVariable Interpreter_hasVariable (Interpreter me, const char32 *key) {
-	Melder_assert (key);
+	Melder_assert (key != NULL);
 	#if USE_HASH
 	auto it = my variablesMap -> find (key [0] == U'.' ? Melder_cat (my procedureNames [my callDepth], key) : key);
 	if (it != my variablesMap -> end()) {
 		return it -> second;
 	} else {
-		return nullptr;
+		return NULL;
 	}
 	#else
-	long variableNumber = my variables. lookUp (key [0] == U'.' ? Melder_cat (my procedureNames [my callDepth], key) : key);
-	return variableNumber ? my variables.at [variableNumber] : nullptr;
+	long variableNumber = SortedSetOfString_lookUp (my variables,
+		key [0] == U'.' ? Melder_cat (my procedureNames [my callDepth], key) : key);
+	return variableNumber ? (InterpreterVariable) my variables -> item [variableNumber] : NULL;
 	#endif
 }
 
 InterpreterVariable Interpreter_lookUpVariable (Interpreter me, const char32 *key) {
-	Melder_assert (key);
+	Melder_assert (key != NULL);
 	const char32 *variableNameIncludingProcedureName =
 		key [0] == U'.' ? Melder_cat (my procedureNames [my callDepth], key) : key;
 	#if USE_HASH
@@ -693,19 +696,19 @@ InterpreterVariable Interpreter_lookUpVariable (Interpreter me, const char32 *ke
 	/*
 	 * The variable doesn't yet exist: create a new one.
 	 */
-	autoInterpreterVariable variable = InterpreterVariable_create (variableNameIncludingProcedureName);
-	InterpreterVariable variable_ref = variable.get();
-	variable.releaseToAmbiguousOwner();   // YUCK
-	(*my variablesMap) [variableNameIncludingProcedureName] = variable_ref;
-	return variable_ref;
+	InterpreterVariable variable = InterpreterVariable_create (variableNameIncludingProcedureName);
+	(*my variablesMap) [variableNameIncludingProcedureName] = variable;
+	return variable;
 	#else
-	long variableNumber = my variables. lookUp (variableNameIncludingProcedureName);
-	if (variableNumber) return my variables.at [variableNumber];   // already exists
+	long variableNumber = SortedSetOfString_lookUp (my variables, variableNameIncludingProcedureName);
+	if (variableNumber) return (InterpreterVariable) my variables -> item [variableNumber];   // already exists
 	/*
 	 * The variable doesn't yet exist: create a new one.
 	 */
 	autoInterpreterVariable variable = InterpreterVariable_create (variableNameIncludingProcedureName);
-	return my variables. addItem_move (variable.move());
+	InterpreterVariable variable_ref = variable.peek();
+	Collection_addItem (my variables, variable.transfer());
+	return variable_ref;
 	#endif
 }
 
@@ -765,16 +768,15 @@ void Interpreter_run (Interpreter me, char32 *text) {
 		autoMelderString command2;
 		autoMelderString buffer;
 		long numberOfLines = 0, assertErrorLineNumber = 0, callStack [1 + Interpreter_MAX_CALL_DEPTH];
-		bool atLastLine = false, fromif = false, fromendfor = false;
-		int callDepth = 0, chopped = 0, ipar;
+		int atLastLine = FALSE, fromif = FALSE, fromendfor = FALSE, callDepth = 0, chopped = 0, ipar;
 		my callDepth = 0;
 		/*
-		 * The "environment" is null if we are in the Praat shell, or an editor otherwise.
+		 * The "environment" is NULL if we are in the Praat shell, or an editor otherwise.
 		 */
 		if (my editorClass) {
 			praatP. editor = praat_findEditorFromString (my environmentName);
 		} else {
-			praatP. editor = nullptr;
+			praatP. editor = NULL;
 		}
 		/*
 		 * Start.
@@ -786,7 +788,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 		while (! atLastLine) {
 			char32 *endOfLine = command;
 			while (*endOfLine != U'\n' && *endOfLine != U'\0') endOfLine ++;
-			if (*endOfLine == U'\0') atLastLine = true;
+			if (*endOfLine == U'\0') atLastLine = TRUE;
 			*endOfLine = U'\0';
 			numberOfLines ++;
 			command = endOfLine + 1;
@@ -840,6 +842,9 @@ void Interpreter_run (Interpreter me, char32 *text) {
 			forget (var);
 		}
 		my variablesMap -> clear ();
+		#else
+		forget (my variables);
+		my variables = SortedSetOfString_create ();
 		#endif
 		for (ipar = 1; ipar <= my numberOfParameters; ipar ++) {
 			char32 parameter [200];
@@ -859,7 +864,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 		Interpreter_addStringVariable (me, U"newline$", U"\n");
 		Interpreter_addStringVariable (me, U"tab$", U"\t");
 		Interpreter_addStringVariable (me, U"shellDirectory$", Melder_getShellDirectory ());
-		structMelderDir dir { { 0 } }; Melder_getDefaultDir (& dir);
+		structMelderDir dir = { { 0 } }; Melder_getDefaultDir (& dir);
 		Interpreter_addStringVariable (me, U"defaultDirectory$", Melder_dirToPath (& dir));
 		Interpreter_addStringVariable (me, U"preferencesDirectory$", Melder_dirToPath (& praatDir));
 		Melder_getHomeDir (& dir);
@@ -922,8 +927,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 					 * Found a left quote. Search for a matching right quote.
 					 */
 					char32 *q = p + 1, varName [300], *r, *s, *colon;
-					int precision = -1;
-					bool percent = false;
+					int precision = -1, percent = FALSE;
 					while (*q != U'\0' && *q != U'\'' && q - p < 299) q ++;
 					if (*q == U'\0') break;   // no matching right quote? done with this line!
 					if (q - p == 1 || q - p >= 299) continue;   // ignore empty and too long variable names
@@ -932,11 +936,11 @@ void Interpreter_run (Interpreter me, char32 *text) {
 					 * Found a right quote. Get potential variable name.
 					 */
 					for (r = p + 1, s = varName; q - r > 0; r ++, s ++) *s = *r;
-					*s = U'\0';   // trailing null byte
+					*s = U'\0';   /* Trailing null byte. */
 					colon = str32chr (varName, U':');
 					if (colon) {
 						precision = a32tol (colon + 1);
-						if (str32chr (colon + 1, U'%')) percent = true;
+						if (str32chr (colon + 1, U'%')) percent = TRUE;
 						*colon = '\0';
 					}
 					InterpreterVariable var = Interpreter_hasVariable (me, varName);
@@ -1100,7 +1104,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 							double value;
 							Interpreter_numericExpression (me, command2.string + 7, & value);
 							if (value == 0.0 || value == NUMundefined) {
-								assertionFailed = true;
+								assertionFailed = TRUE;
 								Melder_throw (U"Script assertion fails in line ", lineNumber,
 									U" (", value == 0.0 ? U"false" : U"undefined", U"):\n   ", command2.string + 7);
 							}
@@ -1227,7 +1231,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 								for (iline = lineNumber - 1; iline > 0; iline --) {
 									char32 *line = lines [iline];
 									if (line [0] == U'f' && line [1] == U'o' && line [2] == U'r' && line [3] == U' ') {
-										if (depth == 0) { lineNumber = iline - 1; fromendfor = true; break; }   // go before 'for'
+										if (depth == 0) { lineNumber = iline - 1; fromendfor = TRUE; break; }   // go before 'for'
 										else depth --;
 									} else if (str32nequ (lines [iline], U"endfor", 6) && wordEnd (lines [iline] [6])) {
 										depth ++;
@@ -1266,7 +1270,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 						} else if (str32nequ (command2.string, U"elsif ", 6) || str32nequ (command2.string, U"elif ", 5)) {
 							if (fromif) {
 								double value;
-								fromif = false;
+								fromif = FALSE;
 								Interpreter_numericExpression (me, command2.string + 5, & value);
 								if (value == 0.0) {
 									int depth = 0;
@@ -1279,7 +1283,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 											if (depth == 0) { lineNumber = iline; break; }   // go after 'else'
 										} else if ((str32nequ (lines [iline], U"elsif", 5) && wordEnd (lines [iline] [5]))
 											|| (str32nequ (lines [iline], U"elif", 4) && wordEnd (lines [iline] [4]))) {
-											if (depth == 0) { lineNumber = iline - 1; fromif = true; break; }   // go at next 'elsif' or 'elif'
+											if (depth == 0) { lineNumber = iline - 1; fromif = TRUE; break; }   // go at next 'elsif' or 'elif'
 										} else if (str32nequ (lines [iline], U"if ", 3)) {
 											depth ++;
 										}
@@ -1325,7 +1329,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 							InterpreterVariable var = Interpreter_lookUpVariable (me, varpos);
 							Interpreter_numericExpression (me, topos + 4, & toValue);
 							if (fromendfor) {
-								fromendfor = false;
+								fromendfor = FALSE;
 								loopVariable = var -> numericValue + 1.0;
 							} else if (frompos) {
 								*topos = '\0';
@@ -1357,20 +1361,20 @@ void Interpreter_run (Interpreter me, char32 *text) {
 						break;
 					case U'g':
 						if (str32nequ (command2.string, U"goto ", 5)) {
-							char32 labelName [1+Interpreter_MAX_LABEL_LENGTH];
+							char32 labelName [1+Interpreter_MAX_LABEL_LENGTH], *space;
+							int dojump = TRUE, ilabel;
 							str32ncpy (labelName, command2.string + 5, 1+Interpreter_MAX_LABEL_LENGTH);
 							labelName [Interpreter_MAX_LABEL_LENGTH] = U'\0';
-							char32 *space = str32chr (labelName, U' ');
+							space = str32chr (labelName, U' ');
 							if (space == labelName) Melder_throw (U"Missing label name after 'goto'.");
-							bool dojump = true;
 							if (space) {
 								double value;
 								*space = '\0';
 								Interpreter_numericExpression (me, command2.string + 6 + str32len (labelName), & value);
-								if (value == 0.0) dojump = false;
+								if (value == 0.0) dojump = FALSE;
 							}
 							if (dojump) {
-								int ilabel = lookupLabel (me, labelName);
+								ilabel = lookupLabel (me, labelName);
 								lineNumber = my labelLines [ilabel];   // loop will add 1
 							}
 						} else fail = true;
@@ -1392,7 +1396,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 									} else if (str32nequ (lines [iline], U"else", 4)) {
 										if (depth == 0) { lineNumber = iline; break; }   // go after 'else'
 									} else if (str32nequ (lines [iline], U"elsif ", 6) || str32nequ (lines [iline], U"elif ", 5)) {
-										if (depth == 0) { lineNumber = iline - 1; fromif = true; break; }   // go at 'elsif'
+										if (depth == 0) { lineNumber = iline - 1; fromif = TRUE; break; }   // go at 'elsif'
 									} else if (str32nequ (lines [iline], U"if ", 3)) {
 										depth ++;
 									}
@@ -1555,15 +1559,9 @@ void Interpreter_run (Interpreter me, char32 *text) {
 								}
 								if (*p == U'\n' || *p == U'\0')
 									Melder_throw (U"Missing closing bracket (]) in indexed variable.");
-								struct Formula_Result result;
-								Interpreter_anyExpression (me, index.string, & result);
-								if (result.expressionType == kFormula_EXPRESSION_TYPE_NUMERIC) {
-									double numericIndexValue = result.result.numericResult;
-									MelderString_append (& indexedVariableName, numericIndexValue);
-								} else if (result.expressionType == kFormula_EXPRESSION_TYPE_STRING) {
-									MelderString_append (& indexedVariableName, U"\"", result.result.stringResult, U"\"");
-									Melder_free (result.result.stringResult);
-								}
+								double numericIndexValue;
+								Interpreter_numericExpression (me, index.string, & numericIndexValue);
+								MelderString_append (& indexedVariableName, numericIndexValue);
 								MelderString_appendCharacter (& indexedVariableName, *p);
 								if (*p == U']') {
 									break;
@@ -1700,15 +1698,8 @@ void Interpreter_run (Interpreter me, char32 *text) {
 								}
 								if (*p == U'\n' || *p == U'\0')
 									Melder_throw (U"Missing closing bracket (]) in indexed variable.");
-								struct Formula_Result result;
-								Interpreter_anyExpression (me, index.string, & result);
-								if (result.expressionType == kFormula_EXPRESSION_TYPE_NUMERIC) {
-									double numericIndexValue = result.result.numericResult;
-									MelderString_append (& indexedVariableName, numericIndexValue);
-								} else if (result.expressionType == kFormula_EXPRESSION_TYPE_STRING) {
-									MelderString_append (& indexedVariableName, U"\"", result.result.stringResult, U"\"");
-									Melder_free (result.result.stringResult);
-								}
+								Interpreter_numericExpression (me, index.string, & value);
+								MelderString_append (& indexedVariableName, value);
 								MelderString_appendCharacter (& indexedVariableName, *p);
 								if (*p == ']') {
 									break;
@@ -1780,7 +1771,7 @@ void Interpreter_run (Interpreter me, char32 *text) {
 							 * Modify an existing variable.
 							 */
 							InterpreterVariable var = Interpreter_hasVariable (me, variableName);
-							if (! var) Melder_throw (U"Unknown variable ", variableName, U".");
+							if (var == NULL) Melder_throw (U"Unknown variable ", variableName, U".");
 							if (var -> numericValue == NUMundefined) {
 								/* Keep it that way. */
 							} else {
@@ -1862,17 +1853,17 @@ void Interpreter_stop (Interpreter me) {
 }
 
 void Interpreter_voidExpression (Interpreter me, const char32 *expression) {
-	Formula_compile (me, nullptr, expression, kFormula_EXPRESSION_TYPE_NUMERIC, false);
+	Formula_compile (me, NULL, expression, kFormula_EXPRESSION_TYPE_NUMERIC, FALSE);
 	struct Formula_Result result;
 	Formula_run (0, 0, & result);
 }
 
 void Interpreter_numericExpression (Interpreter me, const char32 *expression, double *value) {
-	Melder_assert (value);
+	Melder_assert (value != NULL);
 	if (str32str (expression, U"(=")) {
 		*value = Melder_atof (expression);
 	} else {
-		Formula_compile (me, nullptr, expression, kFormula_EXPRESSION_TYPE_NUMERIC, false);
+		Formula_compile (me, NULL, expression, kFormula_EXPRESSION_TYPE_NUMERIC, FALSE);
 		struct Formula_Result result;
 		Formula_run (0, 0, & result);
 		*value = result. result.numericResult;
@@ -1880,21 +1871,21 @@ void Interpreter_numericExpression (Interpreter me, const char32 *expression, do
 }
 
 void Interpreter_stringExpression (Interpreter me, const char32 *expression, char32 **value) {
-	Formula_compile (me, nullptr, expression, kFormula_EXPRESSION_TYPE_STRING, false);
+	Formula_compile (me, NULL, expression, kFormula_EXPRESSION_TYPE_STRING, FALSE);
 	struct Formula_Result result;
 	Formula_run (0, 0, & result);
 	*value = result. result.stringResult;
 }
 
 void Interpreter_numericArrayExpression (Interpreter me, const char32 *expression, struct Formula_NumericArray *value) {
-	Formula_compile (me, nullptr, expression, kFormula_EXPRESSION_TYPE_NUMERIC_ARRAY, false);
+	Formula_compile (me, NULL, expression, kFormula_EXPRESSION_TYPE_NUMERIC_ARRAY, FALSE);
 	struct Formula_Result result;
 	Formula_run (0, 0, & result);
 	*value = result. result.numericArrayResult;
 }
 
 void Interpreter_anyExpression (Interpreter me, const char32 *expression, struct Formula_Result *result) {
-	Formula_compile (me, nullptr, expression, kFormula_EXPRESSION_TYPE_UNKNOWN, false);
+	Formula_compile (me, NULL, expression, kFormula_EXPRESSION_TYPE_UNKNOWN, FALSE);
 	Formula_run (0, 0, result);
 }
 
diff --git a/sys/Interpreter.h b/sys/Interpreter.h
index 1cbea05..7c4b2da 100644
--- a/sys/Interpreter.h
+++ b/sys/Interpreter.h
@@ -39,7 +39,7 @@ Thing_define (InterpreterVariable, SimpleString) {
 	double numericValue;
 	struct Formula_NumericArray numericArrayValue;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
@@ -66,16 +66,16 @@ Thing_define (Interpreter, Thing) {
 	#if USE_HASH
 	std::unordered_map <std::u32string, InterpreterVariable> *variablesMap;
 	#else
-	SortedSetOfStringOf<structInterpreterVariable> variables;
+	SortedSetOfString variables;
 	#endif
 	bool running, stopped;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
-autoInterpreter Interpreter_create (char32 *environmentName, ClassInfo editorClass);
-autoInterpreter Interpreter_createFromEnvironment (Editor editor);
+Interpreter Interpreter_create (char32 *environmentName, ClassInfo editorClass);
+Interpreter Interpreter_createFromEnvironment (Editor editor);
 
 void Melder_includeIncludeFiles (char32 **text);
 long Interpreter_readParameters (Interpreter me, char32 *text);
@@ -83,7 +83,7 @@ Thing_declare (UiForm);
 UiForm Interpreter_createForm (Interpreter me, GuiWindow parent, const char32 *fileName,
 	void (*okCallback) (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *closure), void *okClosure,
 	bool selectionOnly);
-void Interpreter_getArgumentsFromDialog (Interpreter me, UiForm dialog);
+void Interpreter_getArgumentsFromDialog (Interpreter me, Any dialog);
 void Interpreter_getArgumentsFromString (Interpreter me, const char32 *arguments);
 void Interpreter_getArgumentsFromArgs (Interpreter me, int nargs, Stackel args);
 void Interpreter_run (Interpreter me, char32 *text);   // destroys 'text'
diff --git a/fon/Corpus.h b/sys/Interpreter_decl.h
similarity index 79%
copy from fon/Corpus.h
copy to sys/Interpreter_decl.h
index bf00187..4bbbae2 100644
--- a/fon/Corpus.h
+++ b/sys/Interpreter_decl.h
@@ -1,8 +1,8 @@
-#ifndef _Corpus_h_
-#define _Corpus_h_
-/* AnyTier.h
+#ifndef _Interpreter_decl_h_
+#define _Interpreter_decl_h_
+/* Interpreter_decl.h
  *
- * Copyright (C) 2011 Paul Boersma
+ * Copyright (C) 1993-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,9 +19,7 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include "Table.h"
-
-#include "Corpus_def.h"
+Thing_declare (Interpreter);
 
+/* End of file Interpreter_decl.h */
 #endif
-/* End of file Corpus.h */
diff --git a/sys/ManPages.cpp b/sys/ManPages.cpp
index 465e1ab..0dde710 100644
--- a/sys/ManPages.cpp
+++ b/sys/ManPages.cpp
@@ -1,6 +1,6 @@
 /* ManPages.cpp
  *
- * Copyright (C) 1996-2012,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1996-2012,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@
 #include "Interpreter.h"
 #include "praat.h"
 
-Thing_implement (ManPages, Daata, 0);
+Thing_implement (ManPages, Data, 0);
 
 #define LONGEST_FILE_NAME  55
 
@@ -36,10 +36,10 @@ static int isSingleWordCharacter (int c) {
 
 static long lookUp_unsorted (ManPages me, const char32 *title);
 
-void structManPages :: v_destroy () noexcept {
-	if (our dynamic) {
-		for (long ipage = 1; ipage <= our pages.size; ipage ++) {
-			ManPage page = our pages.at [ipage];
+void structManPages :: v_destroy () {
+	if (dynamic && pages) {
+		for (long ipage = 1; ipage <= pages -> size; ipage ++) {
+			ManPage page = (ManPage) pages -> item [ipage];
 			Melder_free (page -> title);
 			Melder_free (page -> author);
 			if (page -> paragraphs) {
@@ -54,23 +54,24 @@ void structManPages :: v_destroy () noexcept {
 			}
 		}
 	}
-	if (our titles)
-		for (long ipage = 1; ipage <= our pages.size; ipage ++) {
+	if (pages && titles)
+		for (long ipage = 1; ipage <= pages -> size; ipage ++) {
 			Melder_free (titles [ipage]);
 		}
+	forget (pages);
 	NUMvector_free <const char32 *> (titles, 1);
 	ManPages_Parent :: v_destroy ();
 }
 
 static const char32 *extractLink (const char32 *text, const char32 *p, char32 *link) {
 	char32 *to = link, *max = link + 300;
-	if (! p) p = text;
+	if (p == NULL) p = text;
 	/*
 	 * Search for next '@' that is not in a backslash sequence.
 	 */
 	for (;;) {
 		p = str32chr (p, U'@');
-		if (! p) return nullptr;   // no more '@'
+		if (! p) return NULL;   // no more '@'
 		if (p - text <= 0 || (p [-1] != U'\\' && (p - text <= 1 || p [-2] != U'\\'))) break;
 		p ++;
 	}
@@ -115,14 +116,13 @@ static void readOnePage (ManPages me, MelderReadText text) {
 		return;
 	}
 
-	autoManPage autopage = Thing_new (ManPage);
-	autopage -> title = title;
-	ManPage page = autopage.get();
+	ManPage page = Thing_new (ManPage);
+	page -> title = title;
 
 	/*
 	 * Add the page early, so that lookUp can find it.
 	 */
-	my pages. addItem_move (autopage.move());
+	Collection_addItem (my pages, page);
 
 	try {
 		page -> author = texgetw2 (text);
@@ -163,7 +163,7 @@ static void readOnePage (ManPages me, MelderReadText text) {
 		} catch (MelderError) {
 			Melder_throw (U"Cannot find text.");
 		}
-		for (const char32 *plink = extractLink (par -> text, nullptr, link); plink != nullptr; plink = extractLink (par -> text, plink, link)) {
+		for (const char32 *plink = extractLink (par -> text, NULL, link); plink != NULL; plink = extractLink (par -> text, plink, link)) {
 			/*
 			 * Now, `link' contains the link text, with spaces and all.
 			 * Transform it into a file name.
@@ -196,7 +196,7 @@ static void readOnePage (ManPages me, MelderReadText text) {
 				if (! MelderFile_exists (& file2)) {
 					Melder_warning (U"Cannot find script ", MelderFile_messageName (& file2), U".");
 				}
-				my executable = true;
+				my executable = TRUE;
 			} else {
 				char32 *q;
 				/*
@@ -235,13 +235,15 @@ static void readOnePage (ManPages me, MelderReadText text) {
 	page -> paragraphs = (ManPage_Paragraph) Melder_realloc (page -> paragraphs, (int64) sizeof (struct structManPage_Paragraph) * (par - page -> paragraphs));
 }
 void structManPages :: v_readText (MelderReadText text, int /*formatVersion*/) {
-	our dynamic = true;
+	dynamic = TRUE;
+	pages = Ordered_create ();
 	MelderDir_copy (& Data_directoryBeingRead, & rootDirectory);
 	readOnePage (this, text);
 }
 
-autoManPages ManPages_create () {
-	autoManPages me = Thing_new (ManPages);
+ManPages ManPages_create (void) {
+	ManPages me = Thing_new (ManPages);
+	my pages = Ordered_create ();
 	return me;
 }
 
@@ -253,7 +255,7 @@ void ManPages_addPage (ManPages me, const char32 *title, const char32 *author, l
 	page -> paragraphs = & paragraphs [0];
 	page -> author = author;
 	page -> date = date;
-	my pages. addItem_move (page.move());
+	Collection_addItem (my pages, page.transfer());
 }
 
 static int pageCompare (const void *first, const void *second) {
@@ -275,8 +277,8 @@ static long lookUp_unsorted (ManPages me, const char32 *title) {
 	/*
 	 * First try to match an unaltered 'title' with the titles of the man pages.
 	 */
-	for (i = 1; i <= my pages.size; i ++) {
-		ManPage page = my pages.at [i];
+	for (i = 1; i <= my pages -> size; i ++) {
+		ManPage page = (ManPage) my pages -> item [i];
 		if (str32equ (page -> title, title)) return i;
 	}
 
@@ -287,8 +289,8 @@ static long lookUp_unsorted (ManPages me, const char32 *title) {
 		char32 upperTitle [300];
 		Melder_sprint (upperTitle,300, title);
 		upperTitle [0] = toupper (upperTitle [0]);
-		for (i = 1; i <= my pages.size; i ++) {
-			ManPage page = my pages.at [i];
+		for (i = 1; i <= my pages -> size; i ++) {
+			ManPage page = (ManPage) my pages -> item [i];
 			if (str32equ (page -> title, upperTitle)) return i;
 		}
 	}
@@ -296,21 +298,19 @@ static long lookUp_unsorted (ManPages me, const char32 *title) {
 }
 
 static long lookUp_sorted (ManPages me, const char32 *title) {
-	static autoManPage dummy;
+	static ManPage dummy;
 	ManPage *page;
 	if (! dummy) dummy = Thing_new (ManPage);
 	dummy -> title = title;
-	page = (ManPage *) bsearch (& dummy, & my pages.at [1], my pages.size, sizeof (ManPage), pageCompare);   // noexcept
-	dummy -> title = nullptr;   // undangle
-	if (page) return (page - & my pages.at [1]) + 1;
+	page = (ManPage *) bsearch (& dummy, & my pages -> item [1], my pages -> size, sizeof (ManPage), pageCompare);
+	if (page) return (page - (ManPage *) & my pages -> item [1]) + 1;
 	if (islower (title [0]) || isupper (title [0])) {
 		char32 caseSwitchedTitle [300];
 		Melder_sprint (caseSwitchedTitle,300, title);
 		caseSwitchedTitle [0] = islower (title [0]) ? toupper (caseSwitchedTitle [0]) : tolower (caseSwitchedTitle [0]);
 		dummy -> title = caseSwitchedTitle;
-		page = (ManPage *) bsearch (& dummy, & my pages.at [1], my pages.size, sizeof (ManPage), pageCompare);   // noexcept
-		dummy -> title = nullptr;   // undangle
-		if (page) return (page - & my pages.at [1]) + 1;
+		page = (ManPage *) bsearch (& dummy, & my pages -> item [1], my pages -> size, sizeof (ManPage), pageCompare);
+		if (page) return (page - (ManPage *) & my pages -> item [1]) + 1;
 	}
 	return 0;
 }
@@ -319,24 +319,24 @@ static void grind (ManPages me) {
 	long ipage, ndangle = 0, jpage, grandNlinks, ilinkHither, ilinkThither;
 	long *grandLinksHither, *grandLinksThither;
 
-	qsort (& my pages.at [1], my pages.size, sizeof (ManPage), pageCompare);
+	qsort (& my pages -> item [1], my pages -> size, sizeof (ManPage), pageCompare);
 
 	/*
 	 * First pass: count and check links: fill in nlinksHither and nlinksThither.
 	 */
 	grandNlinks = 0;
-	for (ipage = 1; ipage <= my pages.size; ipage ++) {
-		ManPage page = my pages.at [ipage];
+	for (ipage = 1; ipage <= my pages -> size; ipage ++) {
+		ManPage page = (ManPage) my pages -> item [ipage];
 		int ipar;
 		for (ipar = 0; page -> paragraphs [ipar]. type; ipar ++) {
 			const char32 *text = page -> paragraphs [ipar]. text, *p;
 			char32 link [301];
-			if (text) for (p = extractLink (text, nullptr, link); p != nullptr; p = extractLink (text, p, link)) {
+			if (text) for (p = extractLink (text, NULL, link); p != NULL; p = extractLink (text, p, link)) {
 				if (link [0] == U'\\' && ((link [1] == U'F' && link [2] == U'I') || (link [1] == U'S' && link [2] == U'C')))
 					continue;   // ignore "FILE" links
 				if ((jpage = lookUp_sorted (me, link)) != 0) {
 					page -> nlinksThither ++;
-					my pages.at [jpage] -> nlinksHither ++;
+					((ManPage) my pages -> item [jpage]) -> nlinksHither ++;
 					grandNlinks ++;
 				} else {
 					MelderInfo_writeLine (U"Page \"", page -> title, U"\" contains a dangling link to \"", link, U"\".");
@@ -355,14 +355,14 @@ static void grind (ManPages me) {
 	 * Some optimization required: use only two mallocs.
 	 * Forget nlinksHither and nlinksThither.
 	 */
-	if (grandNlinks == 0) { my ground = true; return; }
+	if (grandNlinks == 0) { my ground = TRUE; return; }
 	if (! (grandLinksHither = NUMvector <long> (1, grandNlinks)) || ! (grandLinksThither = NUMvector <long> (1, grandNlinks))) {
 		Melder_flushError ();
 		return;
 	}
 	ilinkHither = ilinkThither = 0;
-	for (ipage = 1; ipage <= my pages.size; ipage ++) {
-		ManPage page = my pages.at [ipage];
+	for (ipage = 1; ipage <= my pages -> size; ipage ++) {
+		ManPage page = (ManPage) my pages -> item [ipage];
 		page -> linksHither = grandLinksHither + ilinkHither;
 		page -> linksThither = grandLinksThither + ilinkThither;
 		ilinkHither += page -> nlinksHither;
@@ -376,24 +376,25 @@ static void grind (ManPages me) {
 	 * Third pass: remember the links: fill in linksThither [1..nlinksThither] and linksHither [1..nlinksHither].
 	 * Rebuild nlinksHither and nlinksThither.
 	 */
-	for (ipage = 1; ipage <= my pages.size; ipage ++) {
-		ManPage page = my pages.at [ipage];
-		for (int ipar = 0; page -> paragraphs [ipar]. type; ipar ++) {
+	for (ipage = 1; ipage <= my pages -> size; ipage ++) {
+		ManPage page = (ManPage) my pages -> item [ipage];
+		int ipar;
+		for (ipar = 0; page -> paragraphs [ipar]. type; ipar ++) {
 			const char32 *text = page -> paragraphs [ipar]. text, *p;
 			char32 link [301];
-			if (text) for (p = extractLink (text, nullptr, link); p != nullptr; p = extractLink (text, p, link)) {
+			if (text) for (p = extractLink (text, NULL, link); p != NULL; p = extractLink (text, p, link)) {
 				if (link [0] == U'\\' && ((link [1] == U'F' && link [2] == U'I') || (link [1] == U'S' && link [2] == U'C')))
 					continue;   // ignore "FILE" links
 				if ((jpage = lookUp_sorted (me, link)) != 0) {
-					bool alreadyPresent = false;
-					for (int ilink = 1; ilink <= page -> nlinksThither; ilink ++) {
+					int ilink, alreadyPresent = FALSE;
+					for (ilink = 1; ilink <= page -> nlinksThither; ilink ++) {
 						if (page -> linksThither [ilink] == jpage) {
-							alreadyPresent = true;
+							alreadyPresent = TRUE;
 							break;
 						}
 					}
 					if (! alreadyPresent) {
-						ManPage otherPage = my pages.at [jpage];
+						ManPage otherPage = (ManPage) my pages -> item [jpage];
 						page -> linksThither [++ page -> nlinksThither] = jpage;
 						otherPage -> linksHither [++ otherPage -> nlinksHither] = ipage;
 					}
@@ -402,11 +403,11 @@ static void grind (ManPages me) {
 		}
 	}
 
-	my ground = true;
+	my ground = TRUE;
 }
 
 long ManPages_uniqueLinksHither (ManPages me, long ipage) {
-	ManPage page = my pages.at [ipage];
+	ManPage page = (ManPage) my pages -> item [ipage];
 	long result = page -> nlinksHither, ilinkHither, ilinkThither;
 	for (ilinkHither = 1; ilinkHither <= page -> nlinksHither; ilinkHither ++) {
 		long link = page -> linksHither [ilinkHither];
@@ -423,8 +424,8 @@ long ManPages_lookUp (ManPages me, const char32 *title) {
 
 static long ManPages_lookUp_caseSensitive (ManPages me, const char32 *title) {
 	if (! my ground) grind (me);
-	for (long i = 1; i <= my pages.size; i ++) {
-		ManPage page = my pages.at [i];
+	for (long i = 1; i <= my pages -> size; i ++) {
+		ManPage page = (ManPage) my pages -> item [i];
 		if (str32equ (page -> title, title)) return i;
 	}
 	return 0;
@@ -433,13 +434,13 @@ static long ManPages_lookUp_caseSensitive (ManPages me, const char32 *title) {
 const char32 **ManPages_getTitles (ManPages me, long *numberOfTitles) {
 	if (! my ground) grind (me);
 	if (! my titles) {
-		my titles = NUMvector <const char32 *> (1, my pages.size);   // TODO
-		for (long i = 1; i <= my pages.size; i ++) {
-			ManPage page = my pages.at [i];
+		my titles = NUMvector <const char32 *> (1, my pages -> size);   // TODO
+		for (long i = 1; i <= my pages -> size; i ++) {
+			ManPage page = (ManPage) my pages -> item [i];
 			my titles [i] = Melder_dup_f (page -> title);
 		}
 	}
-	*numberOfTitles = my pages.size;
+	*numberOfTitles = my pages -> size;
 	return my titles;
 }
 
@@ -498,18 +499,17 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 			pdfFile. path [str32len (pdfFile. path) - 5] = U'\0';   // delete extension ".html"
 			str32cpy (pdfFile. path + str32len (pdfFile. path),
 				Melder_cat (U"_", numberOfPictures, U".pdf"));
-			{// scope
-				autoGraphics graphics = Graphics_create_pdffile (& pdfFile, 100, 0.0, paragraph -> width, 0.0, paragraph -> height);
-				Graphics_setFont (graphics.get(), kGraphics_font_TIMES);
-				Graphics_setFontStyle (graphics.get(), 0);
-				Graphics_setFontSize (graphics.get(), 12);
-				Graphics_setWrapWidth (graphics.get(), 0);
-				Graphics_setViewport (graphics.get(), 0.0, paragraph -> width, 0.0, paragraph -> height);
-				paragraph -> draw (graphics.get());
-				Graphics_setViewport (graphics.get(), 0, 1, 0, 1);
-				Graphics_setWindow (graphics.get(), 0, 1, 0, 1);
-				Graphics_setTextAlignment (graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
-			}
+			Graphics graphics = Graphics_create_pdffile (& pdfFile, 100, 0.0, paragraph -> width, 0.0, paragraph -> height);
+			Graphics_setFont (graphics, kGraphics_font_TIMES);
+			Graphics_setFontStyle (graphics, 0);
+			Graphics_setFontSize (graphics, 12);
+			Graphics_setWrapWidth (graphics, 0);
+			Graphics_setViewport (graphics, 0.0, paragraph -> width, 0.0, paragraph -> height);
+			paragraph -> draw (graphics);
+			Graphics_setViewport (graphics, 0, 1, 0, 1);
+			Graphics_setWindow (graphics, 0, 1, 0, 1);
+			Graphics_setTextAlignment (graphics, Graphics_LEFT, Graphics_BOTTOM);
+			forget (graphics);
 			structMelderFile tiffFile;
 			MelderFile_copy (file, & tiffFile);
 			tiffFile. path [str32len (tiffFile. path) - 5] = U'\0';   // delete extension ".html"
@@ -524,73 +524,72 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 			continue;
 		}
 		if (type == kManPage_type_SCRIPT) {
-			autoInterpreter interpreter = Interpreter_createFromEnvironment (nullptr);
+			autoInterpreter interpreter = Interpreter_createFromEnvironment (NULL);
 			numberOfPictures ++;
 			structMelderFile pdfFile;
 			MelderFile_copy (file, & pdfFile);
 			pdfFile. path [str32len (pdfFile. path) - 5] = U'\0';   // delete extension ".html"
 			str32cpy (pdfFile. path + str32len (pdfFile.path),
 				Melder_cat (U"_", numberOfPictures, U".pdf"));
+			Graphics graphics = Graphics_create_pdffile (& pdfFile, 100, 0.0, paragraph -> width, 0.0, paragraph -> height);
+			Graphics_setFont (graphics, kGraphics_font_TIMES);
+			Graphics_setFontStyle (graphics, 0);
+			Graphics_setFontSize (graphics, 12);
+			Graphics_setWrapWidth (graphics, 0);
+			static structPraatApplication praatApplication;
+			static structPraatObjects praatObjects;
+			static structPraatPicture praatPicture;
+			theCurrentPraatApplication = & praatApplication;
+			theCurrentPraatApplication -> batch = true;
+			theCurrentPraatApplication -> topShell = theForegroundPraatApplication. topShell;   // needed for UiForm_create () in dialogs
+			theCurrentPraatObjects = (PraatObjects) & praatObjects;
+			theCurrentPraatPicture = (PraatPicture) & praatPicture;
+			theCurrentPraatPicture -> graphics = graphics;
+			theCurrentPraatPicture -> font = kGraphics_font_TIMES;
+			theCurrentPraatPicture -> fontSize = 12;
+			theCurrentPraatPicture -> lineType = Graphics_DRAWN;
+			theCurrentPraatPicture -> colour = Graphics_BLACK;
+			theCurrentPraatPicture -> lineWidth = 1.0;
+			theCurrentPraatPicture -> arrowSize = 1.0;
+			theCurrentPraatPicture -> speckleSize = 1.0;
+			theCurrentPraatPicture -> x1NDC = 0;
+			theCurrentPraatPicture -> x2NDC = paragraph -> width;
+			theCurrentPraatPicture -> y1NDC = 0;
+			theCurrentPraatPicture -> y2NDC = paragraph -> height;
+			Graphics_setViewport (graphics, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);			
+			Graphics_setWindow (graphics, 0.0, 1.0, 0.0, 1.0);
+			long x1DC, y1DC, x2DC, y2DC;
+			Graphics_WCtoDC (graphics, 0.0, 0.0, & x1DC, & y2DC);
+			Graphics_WCtoDC (graphics, 1.0, 1.0, & x2DC, & y1DC);
+			Graphics_resetWsViewport (graphics, x1DC, x2DC, y1DC, y2DC);
+			Graphics_setWsWindow (graphics, 0, paragraph -> width, 0, paragraph -> height);
+			theCurrentPraatPicture -> x1NDC = 0;
+			theCurrentPraatPicture -> x2NDC = paragraph -> width;
+			theCurrentPraatPicture -> y1NDC = 0;
+			theCurrentPraatPicture -> y2NDC = paragraph -> height;
+			Graphics_setViewport (graphics, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);			
 			{// scope
-				autoGraphics graphics = Graphics_create_pdffile (& pdfFile, 100, 0.0, paragraph -> width, 0.0, paragraph -> height);
-				Graphics_setFont (graphics.get(), kGraphics_font_TIMES);
-				Graphics_setFontStyle (graphics.get(), 0);
-				Graphics_setFontSize (graphics.get(), 12);
-				Graphics_setWrapWidth (graphics.get(), 0);
-				static structPraatApplication praatApplication;
-				static structPraatObjects praatObjects;
-				static structPraatPicture praatPicture;
-				theCurrentPraatApplication = & praatApplication;
-				theCurrentPraatApplication -> batch = true;
-				theCurrentPraatApplication -> topShell = theForegroundPraatApplication. topShell;   // needed for UiForm_create () in dialogs
-				theCurrentPraatObjects = (PraatObjects) & praatObjects;
-				theCurrentPraatPicture = (PraatPicture) & praatPicture;
-				theCurrentPraatPicture -> graphics = graphics.get();   // FIXME: should be move()?
-				theCurrentPraatPicture -> font = kGraphics_font_TIMES;
-				theCurrentPraatPicture -> fontSize = 12;
-				theCurrentPraatPicture -> lineType = Graphics_DRAWN;
-				theCurrentPraatPicture -> colour = Graphics_BLACK;
-				theCurrentPraatPicture -> lineWidth = 1.0;
-				theCurrentPraatPicture -> arrowSize = 1.0;
-				theCurrentPraatPicture -> speckleSize = 1.0;
-				theCurrentPraatPicture -> x1NDC = 0.0;
-				theCurrentPraatPicture -> x2NDC = paragraph -> width;
-				theCurrentPraatPicture -> y1NDC = 0.0;
-				theCurrentPraatPicture -> y2NDC = paragraph -> height;
-				Graphics_setViewport (graphics.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);
-				Graphics_setWindow (graphics.get(), 0.0, 1.0, 0.0, 1.0);
-				long x1DC, y1DC, x2DC, y2DC;
-				Graphics_WCtoDC (graphics.get(), 0.0, 0.0, & x1DC, & y2DC);
-				Graphics_WCtoDC (graphics.get(), 1.0, 1.0, & x2DC, & y1DC);
-				Graphics_resetWsViewport (graphics.get(), x1DC, x2DC, y1DC, y2DC);
-				Graphics_setWsWindow (graphics.get(), 0.0, paragraph -> width, 0.0, paragraph -> height);
-				theCurrentPraatPicture -> x1NDC = 0.0;
-				theCurrentPraatPicture -> x2NDC = paragraph -> width;
-				theCurrentPraatPicture -> y1NDC = 0.0;
-				theCurrentPraatPicture -> y2NDC = paragraph -> height;
-				Graphics_setViewport (graphics.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC);
-				{// scope
-					autoMelderProgressOff progress;
-					autoMelderWarningOff warning;
-					autoMelderSaveDefaultDir saveDir;
-					if (! MelderDir_isNull (& my rootDirectory)) {
-						Melder_setDefaultDir (& my rootDirectory);
-					}
-					try {
-						autostring32 text = Melder_dup (p);
-						Interpreter_run (interpreter.get(), text.peek());
-					} catch (MelderError) {
-						trace (U"interpreter fails on ", pdfFile. path);
-						Melder_flushError ();
-					}
+				autoMelderProgressOff progress;
+				autoMelderWarningOff warning;
+				autoMelderSaveDefaultDir saveDir;
+				if (! MelderDir_isNull (& my rootDirectory)) {
+					Melder_setDefaultDir (& my rootDirectory);
+				}
+				try {
+					autostring32 text = Melder_dup (p);
+					Interpreter_run (interpreter.peek(), text.peek());
+				} catch (MelderError) {
+					trace (U"interpreter fails on ", pdfFile. path);
+					Melder_flushError ();
 				}
-				Graphics_setViewport (graphics.get(), 0.0, 1.0, 0.0, 1.0);
-				Graphics_setWindow (graphics.get(), 0.0, 1.0, 0.0, 1.0);
-				Graphics_setTextAlignment (graphics.get(), Graphics_LEFT, Graphics_BOTTOM);
 			}
+			Graphics_setViewport (graphics, 0, 1, 0, 1);
+			Graphics_setWindow (graphics, 0, 1, 0, 1);
+			Graphics_setTextAlignment (graphics, Graphics_LEFT, Graphics_BOTTOM);
+			forget (graphics);
 			structMelderFile tiffFile;
 			MelderFile_copy (file, & tiffFile);
-			tiffFile. path [str32len (tiffFile. path) - 5] = U'\0';   // delete extension ".html"
+			tiffFile. path [str32len (tiffFile. path) - 5] = '\0';   // delete extension ".html"
 			str32cpy (tiffFile. path + str32len (tiffFile. path),
 				Melder_cat (U"_", numberOfPictures, U".png"));
 			system (Melder_peek32to8 (Melder_cat (U"/usr/local/bin/gs -q -dNOPAUSE "
@@ -636,9 +635,9 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 			p ++;
 		}
 		while (*p) {
-				if (wordItalic && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-				if (wordBold && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</b>"); wordBold = false; }
-				if (wordCode && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</code>"); wordCode = false; }
+				if (wordItalic && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+				if (wordBold && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }
+				if (wordCode && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</code>"); wordCode = FALSE; }
 			if (*p == U'@') {
 				char32 link [301], linkText [301], *q = link;
 				if (p [1] == U'@') {
@@ -687,48 +686,48 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 				}
 				MelderString_append (buffer, U"\">", linkText, U"</a>");
 			} else if (*p == U'%') {
-				if (inItalic) { MelderString_append (buffer, U"</i>"); inItalic = false; p ++; }
-				else if (p [1] == U'%') { MelderString_append (buffer, U"<i>"); inItalic = true; p += 2; }
-				else if (p [1] == U'#') { MelderString_append (buffer, U"<i><b>"); wordItalic = true; wordBold = true; p += 2; }
-				else { MelderString_append (buffer, U"<i>"); wordItalic = true; p ++; }
+				if (inItalic) { MelderString_append (buffer, U"</i>"); inItalic = FALSE; p ++; }
+				else if (p [1] == U'%') { MelderString_append (buffer, U"<i>"); inItalic = TRUE; p += 2; }
+				else if (p [1] == U'#') { MelderString_append (buffer, U"<i><b>"); wordItalic = TRUE; wordBold = TRUE; p += 2; }
+				else { MelderString_append (buffer, U"<i>"); wordItalic = TRUE; p ++; }
 			} else if (*p == U'_') {
 				if (inSub) {
-					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }*/
-					MelderString_append (buffer, U"</sub>"); inSub = false; p ++;
+					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }*/
+					MelderString_append (buffer, U"</sub>"); inSub = FALSE; p ++;
 				} else if (p [1] == U'_') {
-					if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }
-					MelderString_append (buffer, U"<sub>"); inSub = true; p += 2;
+					if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }
+					MelderString_append (buffer, U"<sub>"); inSub = TRUE; p += 2;
 				} else { MelderString_append (buffer, U"_"); p ++; }
 			} else if (*p == U'#') {
-				if (inBold) { MelderString_append (buffer, U"</b>"); inBold = false; p ++; }
-				else if (p [1] == U'#') { MelderString_append (buffer, U"<b>"); inBold = true; p += 2; }
-				else if (p [1] == U'%') { MelderString_append (buffer, U"<b><i>"); wordBold = true; wordItalic = true; p += 2; }
-				else { MelderString_append (buffer, U"<b>"); wordBold = true; p ++; }
+				if (inBold) { MelderString_append (buffer, U"</b>"); inBold = FALSE; p ++; }
+				else if (p [1] == U'#') { MelderString_append (buffer, U"<b>"); inBold = TRUE; p += 2; }
+				else if (p [1] == U'%') { MelderString_append (buffer, U"<b><i>"); wordBold = TRUE; wordItalic = TRUE; p += 2; }
+				else { MelderString_append (buffer, U"<b>"); wordBold = TRUE; p ++; }
 			} else if (*p == U'$') {
-				if (inCode) { MelderString_append (buffer, U"</code>"); inCode = false; p ++; }
-				else if (p [1] == U'$') { MelderString_append (buffer, U"<code>"); inCode = true; p += 2; }
-				else { MelderString_append (buffer, U"<code>"); wordCode = true; p ++; }
+				if (inCode) { MelderString_append (buffer, U"</code>"); inCode = FALSE; p ++; }
+				else if (p [1] == U'$') { MelderString_append (buffer, U"<code>"); inCode = TRUE; p += 2; }
+				else { MelderString_append (buffer, U"<code>"); wordCode = TRUE; p ++; }
 			} else if (*p == U'^') {
 				if (inSuper) {
-					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }*/
-					MelderString_append (buffer, U"</sup>"); inSuper = false; p ++;
+					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }*/
+					MelderString_append (buffer, U"</sup>"); inSuper = FALSE; p ++;
 				} else if (p [1] == U'^') {
-					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }*/
-					MelderString_append (buffer, U"<sup>"); inSuper = true; p += 2;
+					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }*/
+					MelderString_append (buffer, U"<sup>"); inSuper = TRUE; p += 2;
 				} else {
-					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }*/
-					MelderString_append (buffer, U"<sup>"); letterSuper = true; p ++;
+					/*if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }*/
+					MelderString_append (buffer, U"<sup>"); letterSuper = TRUE; p ++;
 				}
 			} else if (*p == U'}') {
-				if (inSmall) { MelderString_append (buffer, U"</font>"); inSmall = false; p ++; }
+				if (inSmall) { MelderString_append (buffer, U"</font>"); inSmall = FALSE; p ++; }
 				else { MelderString_append (buffer, U"}"); p ++; }
 			} else if (*p == U'\\' && p [1] == U's' && p [2] == U'{') {
-				MelderString_append (buffer, U"<font size=-1>"); inSmall = true; p += 3;
+				MelderString_append (buffer, U"<font size=-1>"); inSmall = TRUE; p += 3;
 			} else if (*p == U'\t' && inTable) {
 				MelderString_append (buffer, U"<td width=100 align=middle>"); p ++;
 			} else if (*p == U'<') {
@@ -738,9 +737,9 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 			} else if (*p == U'&') {
 				MelderString_append (buffer, U"&"); p ++;
 			} else {
-				/*if (wordItalic && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-				if (wordBold && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</b>"); wordBold = false; }
-				if (wordCode && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</code>"); wordCode = false; }*/
+				/*if (wordItalic && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+				if (wordBold && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }
+				if (wordCode && ! isSingleWordCharacter (*p)) { MelderString_append (buffer, U"</code>"); wordCode = FALSE; }*/
 				if (*p == U'\\') {
 					int kar1 = *++p, kar2 = *++p;
 					Longchar_Info info = Longchar_getInfo (kar1, kar2);
@@ -759,21 +758,21 @@ static void writeParagraphsAsHtml (ManPages me, MelderFile file, ManPage_Paragra
 					p ++;
 				}
 				if (letterSuper) {
-					if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = false; }
-					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = false; }
-					MelderString_append (buffer, U"</sup>"); letterSuper = false;
+					if (wordItalic) { MelderString_append (buffer, U"</i>"); wordItalic = FALSE; }
+					if (wordBold) { MelderString_append (buffer, U"</b>"); wordBold = FALSE; }
+					MelderString_append (buffer, U"</sup>"); letterSuper = FALSE;
 				}
 			}
 		}
-		if (inItalic || wordItalic) { MelderString_append (buffer, U"</i>"); inItalic = wordItalic = false; }
-		if (inBold || wordBold) { MelderString_append (buffer, U"</b>"); inBold = wordBold = false; }
-		if (inCode || wordCode) { MelderString_append (buffer, U"</code>"); inCode = wordCode = false; }
-		if (inSub) { MelderString_append (buffer, U"</sub>"); inSub = false; }
-		if (inSuper || letterSuper) { MelderString_append (buffer, U"</sup>"); inSuper = letterSuper = false; }
-		if (inTable) { MelderString_append (buffer, U"</table>"); inTable = false; }
+		if (inItalic || wordItalic) { MelderString_append (buffer, U"</i>"); inItalic = wordItalic = FALSE; }
+		if (inBold || wordBold) { MelderString_append (buffer, U"</b>"); inBold = wordBold = FALSE; }
+		if (inCode || wordCode) { MelderString_append (buffer, U"</code>"); inCode = wordCode = FALSE; }
+		if (inSub) { MelderString_append (buffer, U"</sub>"); inSub = FALSE; }
+		if (inSuper || letterSuper) { MelderString_append (buffer, U"</sup>"); inSuper = letterSuper = FALSE; }
+		if (inTable) { MelderString_append (buffer, U"</table>"); inTable = FALSE; }
 		MelderString_append (buffer, stylesInfo [paragraph -> type]. htmlOut, U"\n");
 	}
-	if (inList) { MelderString_append (buffer, ul ? U"</ul>\n" : U"</dl>\n"); inList = false; }
+	if (inList) { MelderString_append (buffer, ul ? U"</ul>\n" : U"</dl>\n"); inList = FALSE; }
 }
 
 static const char32 *month [] =
@@ -781,7 +780,7 @@ static const char32 *month [] =
 	  U"July", U"August", U"September", U"October", U"November", U"December" };
 
 static void writePageAsHtml (ManPages me, MelderFile file, long ipage, MelderString *buffer) {
-	ManPage page = my pages.at [ipage];
+	ManPage page = (ManPage) my pages -> item [ipage];
 	ManPage_Paragraph paragraphs = page -> paragraphs;
 	MelderString_append (buffer, U"<html><head><meta name=\"robots\" content=\"index,follow\">"
 		U"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n"
@@ -802,12 +801,12 @@ static void writePageAsHtml (ManPages me, MelderFile file, long ipage, MelderStr
 		MelderString_append (buffer, U"<ul>\n");
 		for (ilink = 1; ilink <= page -> nlinksHither; ilink ++) {
 			long link = page -> linksHither [ilink];
-			bool alreadyShown = false;
+			int alreadyShown = FALSE;
 			for (jlink = 1; jlink <= page -> nlinksThither; jlink ++)
 				if (page -> linksThither [jlink] == link)
-					alreadyShown = true;
+					alreadyShown = TRUE;
 			if (! alreadyShown) {
-				const char32 *title = my pages.at [page -> linksHither [ilink]] -> title, *p;
+				const char32 *title = ((ManPage) my pages -> item [page -> linksHither [ilink]]) -> title, *p;
 				MelderString_append (buffer, U"<li><a href=\"");
 				for (p = title; *p; p ++) {
 					if (p - title >= LONGEST_FILE_NAME) break;
@@ -841,8 +840,8 @@ void ManPages_writeOneToHtmlFile (ManPages me, long ipage, MelderFile file) {
 void ManPages_writeAllToHtmlDir (ManPages me, const char32 *dirPath) {
 	structMelderDir dir;
 	Melder_pathToDir (dirPath, & dir);
-	for (long ipage = 1; ipage <= my pages.size; ipage ++) {
-		ManPage page = my pages.at [ipage];
+	for (long ipage = 1; ipage <= my pages -> size; ipage ++) {
+		ManPage page = (ManPage) my pages -> item [ipage];
 		char32 fileName [256];
 		Melder_assert (str32len (page -> title) < 256 - 100);
 		trace (U"page ", ipage, U": ", page -> title);
@@ -869,7 +868,7 @@ void ManPages_writeAllToHtmlDir (ManPages me, const char32 *dirPath) {
 		} catch (MelderError) {
 			Melder_clearError ();
 		}
-		if (! oldText.peek()   // doesn't the file exist yet?
+		if (oldText.peek() == NULL   // doesn't the file exist yet?
 			|| str32cmp (buffer.string, oldText.peek()))   // isn't the old file identical to the new text?
 		{
 			MelderFile_writeText (& file, buffer.string, kMelder_textOutputEncoding_UTF8);   // then write the new text
diff --git a/sys/ManPages.h b/sys/ManPages.h
index d5252c7..6f500ff 100644
--- a/sys/ManPages.h
+++ b/sys/ManPages.h
@@ -22,19 +22,19 @@
 #include "ManPage.h"
 #include "Collection.h"
 
-Thing_define (ManPages, Daata) {
-	OrderedOf<structManPage> pages;
+Thing_define (ManPages, Data) {
+	Ordered pages;
 	const char32 **titles;
-	bool ground, dynamic, executable;
+	int ground, dynamic, executable;
 	structMelderDir rootDirectory;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_readText (MelderReadText text, int formatVersion)
 		override;
 };
 
-autoManPages ManPages_create ();
+ManPages ManPages_create (void);
 
 void ManPages_addPage (ManPages me, const char32 *title, const char32 *author, long date,
 	struct structManPage_Paragraph paragraphs []);
diff --git a/sys/ManPagesM.h b/sys/ManPagesM.h
index b9c3a7f..36acf21 100644
--- a/sys/ManPagesM.h
+++ b/sys/ManPagesM.h
@@ -50,7 +50,7 @@
 #define CODE5(text)  { kManPage_type_CODE5, text },
 #define PROTOTYPE(text)  { kManPage_type_PROTOTYPE, text },
 #define FORMULA(text)  { kManPage_type_FORMULA, text },
-#define PICTURE(width,height,draw)  { kManPage_type_PICTURE, nullptr, width, height, draw },
+#define PICTURE(width,height,draw)  { kManPage_type_PICTURE, NULL, width, height, draw },
 #define SCRIPT(width,height,text)  { kManPage_type_SCRIPT, text, width, height },
 #define MAN_END  { 0 } }; ManPages_addPage (me, title, author, date, page); }
 
diff --git a/sys/Manual.cpp b/sys/Manual.cpp
index 2128d5c..1de7f8f 100644
--- a/sys/Manual.cpp
+++ b/sys/Manual.cpp
@@ -1,6 +1,6 @@
 /* Manual.cpp
  *
- * Copyright (C) 1996-2011,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1996-2011,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -55,11 +55,12 @@ static const char32 *month [] =
 	{ U"", U"January", U"February", U"March", U"April", U"May", U"June",
 	  U"July", U"August", U"September", U"October", U"November", U"December" };
 
-static void menu_cb_writeOneToHtmlFile (Manual me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM_WRITE (U"Save as HTML file", nullptr)
+static void menu_cb_writeOneToHtmlFile (EDITOR_ARGS) {
+	EDITOR_IAM (Manual);
+	EDITOR_FORM_WRITE (U"Save as HTML file", 0)
 		ManPages manPages = (ManPages) my data;
 		autoMelderString buffer;
-		MelderString_copy (& buffer, manPages -> pages.at [my path] -> title);
+		MelderString_copy (& buffer, ((ManPage) manPages -> pages -> item [my path]) -> title);
 		char32 *p = buffer.string;
 		while (*p) { if (! isalnum ((int) *p) && *p != U'_') *p = U'_'; p ++; }
 		MelderString_append (& buffer, U".html");
@@ -69,12 +70,13 @@ static void menu_cb_writeOneToHtmlFile (Manual me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_writeAllToHtmlDir (Manual me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Save all pages as HTML files", nullptr)
+static void menu_cb_writeAllToHtmlDir (EDITOR_ARGS) {
+	EDITOR_IAM (Manual);
+	EDITOR_FORM (U"Save all pages as HTML files", 0)
 		LABEL (U"", U"Type a directory name:")
 		TEXTFIELD (U"directory", U"")
 	EDITOR_OK
-		structMelderDir currentDirectory { { 0 } };
+		structMelderDir currentDirectory = { { 0 } };
 		Melder_getDefaultDir (& currentDirectory);
 		SET_STRING (U"directory", Melder_dirToPath (& currentDirectory))
 	EDITOR_DO
@@ -83,12 +85,13 @@ static void menu_cb_writeAllToHtmlDir (Manual me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_searchForPageList (Manual me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Search for page", nullptr)
+static void menu_cb_searchForPageList (EDITOR_ARGS) {
+	EDITOR_IAM (Manual);
+	EDITOR_FORM (U"Search for page", 0)
 		ManPages manPages = (ManPages) my data;
 		long numberOfPages;
 		const char32 **pages = ManPages_getTitles (manPages, & numberOfPages);
-		LIST (U"Page", manPages -> pages.size, pages, 1)
+		LIST (U"Page", manPages -> pages -> size, pages, 1)
 	EDITOR_OK
 	EDITOR_DO
 		HyperPage_goToPage_i (me, GET_INTEGER (U"Page"));
@@ -100,20 +103,20 @@ void structManual :: v_draw () {
 	ManPage page;
 	ManPage_Paragraph paragraph;
 	#if motif
-	Graphics_clearWs (our graphics.get());
+	Graphics_clearWs (g);
 	#endif
 	if (our path == SEARCH_PAGE) {
 		HyperPage_pageTitle (this, U"Best matches");
 		HyperPage_intro (this, U"The best matches to your query seem to be:");
 		for (int i = 1; i <= our numberOfMatches; i ++) {
 			char32 link [300];
-			page = manPages -> pages.at [matches [i]];
+			page = (ManPage) manPages -> pages -> item [matches [i]];
 			Melder_sprint (link,300, U"• @@", page -> title);
 			HyperPage_listItem (this, link);
 		}
 		return;
 	}
-	page = manPages -> pages.at [path];
+	page = (ManPage) manPages -> pages -> item [path];
 	if (! our paragraphs) return;
 	HyperPage_pageTitle (this, page -> title);
 	for (paragraph = & page -> paragraphs [0]; paragraph -> type != 0; paragraph ++) {
@@ -154,7 +157,7 @@ void structManual :: v_draw () {
 		while (page -> paragraphs [lastParagraph]. type != 0) lastParagraph ++;
 		if (lastParagraph > 0) {
 			const char32 *text = page -> paragraphs [lastParagraph - 1]. text;
-			if (! text || text [0] == U'\0' || text [str32len (text) - 1] != U':') {
+			if (text == NULL || text [0] == U'\0' || text [str32len (text) - 1] != U':') {
 				if (our printing && our suppressLinksHither)
 					goAhead = false;
 				else
@@ -168,7 +171,7 @@ void structManual :: v_draw () {
 				if (page -> linksThither [jlink] == link)
 					alreadyShown = true;
 			if (! alreadyShown) {
-				const char32 *title = manPages -> pages.at [page -> linksHither [ilink]] -> title;
+				const char32 *title = ((ManPage) manPages -> pages -> item [page -> linksHither [ilink]]) -> title;
 				char32 linkText [304];
 				Melder_sprint (linkText, 304, U"@@", title, U"@");
 				HyperPage_listItem (this, linkText);
@@ -195,18 +198,18 @@ void structManual :: v_draw () {
 
 /********** PRINTING **********/
 
-static void print (void *void_me, Graphics graphics) {
+static void print (I, Graphics graphics) {
 	iam (Manual);
 	ManPages manPages = (ManPages) my data;
-	long numberOfPages = manPages -> pages.size, savePage = my path;
+	long numberOfPages = manPages -> pages -> size, savePage = my path;
 	my ps = graphics;
-	Graphics_setDollarSignIsCode (my ps, true);
-	Graphics_setAtSignIsLink (my ps, true);
-	my printing = true;
+	Graphics_setDollarSignIsCode (my ps, TRUE);
+	Graphics_setAtSignIsLink (my ps, TRUE);
+	my printing = TRUE;
 	HyperPage_initSheetOfPaper ((HyperPage) me);
 	for (long ipage = 1; ipage <= numberOfPages; ipage ++) {
-		ManPage page = manPages -> pages.at [ipage];
-		if (my printPagesStartingWith == nullptr ||
+		ManPage page = (ManPage) manPages -> pages -> item [ipage];
+		if (my printPagesStartingWith == NULL ||
 		    Melder_stringMatchesCriterion (page -> title, kMelder_string_STARTS_WITH, my printPagesStartingWith))
 		{
 			ManPage_Paragraph par;
@@ -222,11 +225,12 @@ static void print (void *void_me, Graphics graphics) {
 			my v_goToPage_i (savePage);
 		}
 	}
-	my printing = false;
-	my printPagesStartingWith = nullptr;
+	my printing = FALSE;
+	my printPagesStartingWith = NULL;
 }
 
-static void menu_cb_printRange (Manual me, EDITOR_ARGS_FORM) {
+static void menu_cb_printRange (EDITOR_ARGS) {
+	EDITOR_IAM (Manual);
 	EDITOR_FORM (U"Print range", 0)
 		SENTENCE (U"Left or inside header", U"")
 		SENTENCE (U"Middle header", U"")
@@ -234,14 +238,14 @@ static void menu_cb_printRange (Manual me, EDITOR_ARGS_FORM) {
 		SENTENCE (U"Left or inside footer", U"")
 		SENTENCE (U"Middle footer", U"")
 		SENTENCE (U"Right or outside footer", U"")
-		BOOLEAN (U"Mirror even/odd headers", true)
+		BOOLEAN (U"Mirror even/odd headers", TRUE)
 		LABEL (U"", U"Print all pages whose title starts with:")
 		TEXTFIELD (U"Print pages starting with", U"Intro")
 		INTEGER (U"First page number", U"1")
-		BOOLEAN (U"Suppress \"Links to this page\"", false)
+		BOOLEAN (U"Suppress \"Links to this page\"", FALSE)
 	EDITOR_OK
 		ManPages manPages = (ManPages) my data;
-		time_t today = time (nullptr);
+		time_t today = time (NULL);
 		char dateA [50];
 		#ifdef UNIX
 			struct tm *tm = localtime (& today);
@@ -254,8 +258,8 @@ static void menu_cb_printRange (Manual me, EDITOR_ARGS_FORM) {
 		SET_STRING (U"Left or inside header", date)
 		SET_STRING (U"Right or outside header", my name)
 		if (my d_printingPageNumber) SET_INTEGER (U"First page number", my d_printingPageNumber + 1)
-		if (my path >= 1 && my path <= manPages -> pages.size) {
-			ManPage page = manPages -> pages.at [my path];
+		if (my path >= 1 && my path <= manPages -> pages -> size) {
+			ManPage page = (ManPage) manPages -> pages -> item [my path];
 			SET_STRING (U"Print pages starting with", page -> title);
 		}
 	EDITOR_DO
@@ -279,7 +283,7 @@ static double *goodnessOfMatch;
 
 static double searchToken (ManPages me, long ipage, char32 *token) {
 	double goodness = 0.0;
-	ManPage page = my pages.at [ipage];
+	ManPage page = (ManPage) my pages -> item [ipage];
 	struct structManPage_Paragraph *par = & page -> paragraphs [0];
 	if (! token [0]) return 1.0;
 	/*
@@ -316,7 +320,7 @@ static double searchToken (ManPages me, long ipage, char32 *token) {
 
 static void search (Manual me, const char32 *query) {
 	ManPages manPages = (ManPages) my data;
-	long numberOfPages = manPages -> pages.size;
+	long numberOfPages = manPages -> pages -> size;
 	static MelderString searchText { 0 };
 	MelderString_copy (& searchText, query);
 	for (char32 *p = & searchText.string [0]; *p != U'\0'; p ++) {
@@ -362,28 +366,34 @@ void Manual_search (Manual me, const char32 *query) {
 	search (me, query);
 }
 
-static void gui_button_cb_home (Manual me, GuiButtonEvent /* event */) {
+static void gui_button_cb_home (I, GuiButtonEvent event) {
+	(void) event;
+	iam (Manual);
 	ManPages pages = (ManPages) my data;
 	long iHome = ManPages_lookUp (pages, U"Intro");
 	HyperPage_goToPage_i (me, iHome ? iHome : 1);
 }
  
-static void gui_button_cb_record (Manual me, GuiButtonEvent /* event */) {
+static void gui_button_cb_record (I, GuiButtonEvent event) {
+	(void) event;
+	iam (Manual);
 	ManPages manPages = (ManPages) my data;
-	ManPage manPage = ( my path < 1 ? nullptr : manPages -> pages.at [my path] );
+	ManPage manPage = (ManPage) (my path < 1 ? NULL : manPages -> pages -> item [my path]);
 	GuiThing_setSensitive (my recordButton,  false);
 	GuiThing_setSensitive (my playButton,    false);
 	GuiThing_setSensitive (my publishButton, false);
 	#if motif
 		XmUpdateDisplay (my d_windowForm -> d_xmShell);
 	#endif
-	if (! Melder_record (manPage == nullptr ? 1.0 : manPage -> recordingTime)) Melder_flushError ();
+	if (! Melder_record (manPage == NULL ? 1.0 : manPage -> recordingTime)) Melder_flushError ();
 	GuiThing_setSensitive (my recordButton,  true);
 	GuiThing_setSensitive (my playButton,    true);
 	GuiThing_setSensitive (my publishButton, true);
 }
 
-static void gui_button_cb_play (Manual me, GuiButtonEvent /* event */) {
+static void gui_button_cb_play (I, GuiButtonEvent event) {
+	(void) event;
+	iam (Manual);
 	GuiThing_setSensitive (my recordButton,  false);
 	GuiThing_setSensitive (my playButton,    false);
 	GuiThing_setSensitive (my publishButton, false);
@@ -396,7 +406,10 @@ static void gui_button_cb_play (Manual me, GuiButtonEvent /* event */) {
 	GuiThing_setSensitive (my publishButton, true);
 }
 
-static void gui_button_cb_publish (Manual /* me */, GuiButtonEvent /* event */) {
+static void gui_button_cb_publish (I, GuiButtonEvent event) {
+	(void) event;
+	iam (Manual);
+	(void) me;
 	Melder_publishPlayed ();
 }
 
@@ -406,7 +419,14 @@ static void do_search (Manual me) {
 	Melder_free (query);
 }
 
-static void gui_button_cb_search (Manual me, GuiButtonEvent /* event */) {
+static void gui_button_cb_search (I, GuiButtonEvent event) {
+	(void) event;
+	iam (Manual);
+	do_search (me);
+}
+
+static void gui_cb_search (GUI_ARGS) {
+	GUI_IAM (Manual);
 	do_search (me);
 }
 
@@ -435,7 +455,7 @@ void structManual :: v_createChildren () {
 	our searchText = GuiText_createShown (our d_windowForm, 274+69 + STRING_SPACING, 452 + STRING_SPACING - 2, y, y + Gui_TEXTFIELD_HEIGHT, 0);
 }
 
-static void menu_cb_help (Manual me, EDITOR_ARGS_DIRECT) { HyperPage_goToPage (me, U"Manual"); }
+static void menu_cb_help (EDITOR_ARGS) { EDITOR_IAM (Manual); HyperPage_goToPage (me, U"Manual"); }
 
 void structManual :: v_createMenus () {
 	Manual_Parent :: v_createMenus ();
@@ -443,7 +463,7 @@ void structManual :: v_createMenus () {
 	Editor_addCommand (this, U"File", U"Print manual...", 0, menu_cb_printRange);
 	Editor_addCommand (this, U"File", U"Save page as HTML file...", 0, menu_cb_writeOneToHtmlFile);
 	Editor_addCommand (this, U"File", U"Save manual to HTML directory...", 0, menu_cb_writeAllToHtmlDir);
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
 
 	Editor_addCommand (this, U"Go to", U"Search for page (list)...", 0, menu_cb_searchForPageList);
 }
@@ -460,7 +480,7 @@ void structManual :: v_defaultHeaders (EditorCommand cmd) {
 		char32 string [400];
 		static const char32 *shortMonth [] =
 			{ U"Jan", U"Feb", U"Mar", U"Apr", U"May", U"Jun", U"Jul", U"Aug", U"Sep", U"Oct", U"Nov", U"Dec" };
-		ManPage page = manPages -> pages.at [my path];
+		ManPage page = (ManPage) manPages -> pages -> item [my path];
 		long date = page -> date;
 		SET_STRING (U"Right or outside header", page -> title)
 		SET_STRING (U"Left or inside footer", page -> author)
@@ -473,7 +493,7 @@ void structManual :: v_defaultHeaders (EditorCommand cmd) {
 
 long structManual :: v_getNumberOfPages () {
 	ManPages manPages = (ManPages) our data;
-	return manPages -> pages.size;
+	return manPages -> pages -> size;
 }
 
 long structManual :: v_getCurrentPageNumber () {
@@ -482,7 +502,7 @@ long structManual :: v_getCurrentPageNumber () {
 
 void structManual :: v_goToPage_i (long pageNumber) {
 	ManPages manPages = (ManPages) our data;
-	if (pageNumber < 1 || pageNumber > manPages -> pages.size) {
+	if (pageNumber < 1 || pageNumber > manPages -> pages -> size) {
 		if (pageNumber == SEARCH_PAGE) {
 			our path = SEARCH_PAGE;
 			Melder_free (our currentPageTitle);
@@ -490,7 +510,7 @@ void structManual :: v_goToPage_i (long pageNumber) {
 		} else Melder_throw (U"Page ", pageNumber, U" not found.");
 	}
 	our path = pageNumber;
-	ManPage page = manPages -> pages.at [path];
+	ManPage page = (ManPage) manPages -> pages -> item [path];
 	our paragraphs = page -> paragraphs;
 	our numberOfParagraphs = 0;
 	ManPage_Paragraph par = paragraphs;
@@ -501,12 +521,12 @@ void structManual :: v_goToPage_i (long pageNumber) {
 
 int structManual :: v_goToPage (const char32 *title) {
 	ManPages manPages = (ManPages) our data;
-	if (title [0] == U'\\' && title [1] == U'F' && title [2] == U'I') {
+	if (title [0] == '\\' && title [1] == 'F' && title [2] == 'I') {
 		structMelderFile file = { 0 };
 		MelderDir_relativePathToFile (& manPages -> rootDirectory, title + 3, & file);
 		Melder_recordFromFile (& file);
 		return -1;
-	} else if (title [0] == U'\\' && title [1] == U'S' && title [2] == U'C') {
+	} else if (title [0] == '\\' && title [1] == 'S' && title [2] == 'C') {
 		autoMelderSetDefaultDir dir (& manPages -> rootDirectory);
 		autoPraatBackground background;
 		try {
@@ -525,7 +545,7 @@ int structManual :: v_goToPage (const char32 *title) {
 	}
 }
 
-void Manual_init (Manual me, const char32 *title, Daata data, bool ownData) {
+void Manual_init (Manual me, const char32 *title, Data data, bool ownData) {
 	ManPages manPages = (ManPages) data;
 	char32 windowTitle [101];
 	long i;
@@ -534,14 +554,14 @@ void Manual_init (Manual me, const char32 *title, Daata data, bool ownData) {
 	if (! (i = ManPages_lookUp (manPages, title)))
 		Melder_throw (U"Page \"", title, U"\" not found.");
 	my path = i;
-	page = manPages -> pages.at [i];
+	page = (ManPage) manPages -> pages -> item [i];
 	my paragraphs = page -> paragraphs;
 	my numberOfParagraphs = 0;
 	par = my paragraphs;
 	while ((par ++) -> type) my numberOfParagraphs ++;
 
-	if (manPages -> pages.at [1] -> title [0] == U'-') {
-		Melder_sprint (windowTitle,101, & manPages -> pages.at [1] -> title [1]);
+	if (((ManPage) manPages -> pages -> item [1]) -> title [0] == '-') {
+		Melder_sprint (windowTitle,101, & ((ManPage) manPages -> pages -> item [1]) -> title [1]);
 		if (windowTitle [str32len (windowTitle) - 1] == U'-') windowTitle [str32len (windowTitle) - 1] = U'\0';
 	} else {
 		Melder_sprint (windowTitle,101, U"Manual");
@@ -552,11 +572,11 @@ void Manual_init (Manual me, const char32 *title, Daata data, bool ownData) {
 	my history [0]. page = Melder_dup_f (title);   // BAD
 }
 
-autoManual Manual_create (const char32 *title, Daata data, bool ownData) {
+Manual Manual_create (const char32 *title, Data data, bool ownData) {
 	try {
 		autoManual me = Thing_new (Manual);
-		Manual_init (me.get(), title, data, ownData);
-		return me;
+		Manual_init (me.peek(), title, data, ownData);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Manual window not created.");
 	}
diff --git a/sys/Manual.h b/sys/Manual.h
index 49ce538..982e697 100644
--- a/sys/Manual.h
+++ b/sys/Manual.h
@@ -60,8 +60,8 @@ Thing_define (Manual, HyperPage) {
 		override { return true; }
 };
 
-void Manual_init (Manual me, const char32 *title, Daata data, bool ownData);
-autoManual Manual_create (const char32 *title, Daata data, bool ownData);
+void Manual_init (Manual me, const char32 *title, Data data, bool ownData);
+Manual Manual_create (const char32 *title, Data data, bool ownData);
 
 void Manual_search (Manual me, const char32 *query);
 
diff --git a/sys/MelderThread.h b/sys/MelderThread.h
index 15f5770..d7f6491 100644
--- a/sys/MelderThread.h
+++ b/sys/MelderThread.h
@@ -2,7 +2,7 @@
 #define _MelderThread_h_
 /* MelderThread.h
  *
- * Copyright (C) 2014,2016 Paul Boersma
+ * Copyright (C) 2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@
 	#define MelderThread_LOCK(_mutex)  pthread_mutex_lock (& _mutex)
 	#define MelderThread_UNLOCK(_mutex)  pthread_mutex_unlock (& _mutex)
 	#define MelderThread_RETURN_TYPE  void *
-	#define MelderThread_RETURN  return nullptr;
+	#define MelderThread_RETURN  return NULL;
 #elif USE_CPPTHREADS
 	#include <mutex>
 	#include <thread>
@@ -95,15 +95,15 @@ static int MelderThread_getNumberOfProcessors () {
 #if USE_WINTHREADS
 	template <class T> void MelderThread_run (DWORD (WINAPI *func) (T *), _Thing_auto <T> *args, int numberOfThreads) {
 		if (numberOfThreads == 1) {
-			func (args [0].get());
+			func (args [0].peek());
 		} else {
 			std::vector <HANDLE> threads (numberOfThreads);
 			try {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
-					threads [ithread - 1] = CreateThread (nullptr, 0,
-						(DWORD (WINAPI *)(void *)) func, (void *) args [ithread - 1].get(), 0, nullptr);
+					threads [ithread - 1] = CreateThread (NULL, 0,
+						(DWORD (WINAPI *)(void *)) func, (void *) args [ithread - 1].peek(), 0, NULL);
 				}
-				func (args [numberOfThreads - 1].get());
+				func (args [numberOfThreads - 1].peek());
 			} catch (MelderError) {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
 					WaitForSingleObject (threads [ithread - 1], INFINITE);
@@ -120,37 +120,37 @@ static int MelderThread_getNumberOfProcessors () {
 #elif USE_PTHREADS
 	template <class T> void MelderThread_run (void * (*func) (T *), _Thing_auto <T> *args, int numberOfThreads) {
 		if (numberOfThreads == 1) {
-			func (args [0].get());
+			func (args [0].peek());
 		} else {
 			std::vector <pthread_t> threads (numberOfThreads);
 			try {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
 					(void) pthread_create (& threads [ithread - 1],
-						nullptr, (void*(*)(void *)) func, (void *) args [ithread - 1].get());
+						NULL, (void*(*)(void *)) func, (void *) args [ithread - 1].peek());
 				}
-				func (args [numberOfThreads - 1].get());
+				func (args [numberOfThreads - 1].peek());
 			} catch (MelderError) {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
-					pthread_join (threads [ithread - 1], nullptr);
+					pthread_join (threads [ithread - 1], NULL);
 				}
 				throw;
 			}
 			for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
-				pthread_join (threads [ithread - 1], nullptr);
+				pthread_join (threads [ithread - 1], NULL);
 			}
 		}
 	}
 #elif USE_CPPTHREADS
 	template <class T> void MelderThread_run (void * (*func) (T *), _Thing_auto <T> *args, int numberOfThreads) {
 		if (numberOfThreads == 1) {
-			func (args [0].get());
+			func (args [0].peek());
 		} else {
 			std::vector <std::thread> thread (numberOfThreads);
 			try {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
-					thread [ithread - 1] = std::thread (func, args [ithread - 1].get());
+					thread [ithread - 1] = std::thread (func, args [ithread - 1].peek());
 				}
-				func (args [numberOfThreads - 1].get());
+				func (args [numberOfThreads - 1].peek());
 			} catch (MelderError) {
 				for (int ithread = 1; ithread < numberOfThreads; ithread ++) {
 					if (thread [ithread - 1]. joinable ())
@@ -165,7 +165,7 @@ static int MelderThread_getNumberOfProcessors () {
 	}
 #else
 	template <class T> void MelderThread_run (void (*func) (T *), _Thing_auto <T> *args, int numberOfThreads) {
-		func (args [0].get());
+		func (args [0].peek());
 	}
 #endif
 
diff --git a/sys/Picture.cpp b/sys/Picture.cpp
index c89a635..401c31f 100644
--- a/sys/Picture.cpp
+++ b/sys/Picture.cpp
@@ -1,6 +1,6 @@
 /* Picture.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015,2016 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brauße
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma, 2008 Stefan de Konink, 2010 Franz Brauße
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,15 @@
 	#include "GraphicsP.h"
 #endif
 
-Thing_implement (Picture, Thing, 0);
+struct structPicture {
+	GuiDrawingArea drawingArea;
+	Graphics graphics, selectionGraphics;
+	bool sensitive;
+	double selx1, selx2, sely1, sely2;   // selection in NDC co-ordinates
+	void (*selectionChangedCallback) (struct structPicture *, void *, double, double, double, double);
+	void *selectionChangedClosure;
+	int backgrounding, mouseSelectsInnerViewport;
+};
 
 static void drawMarkers (Picture me)
 /*
@@ -42,82 +50,85 @@ static void drawMarkers (Picture me)
  */
 #define YELLOW_GRID 3
 {
+	int i;
+
 	/* Fill the entire canvas with GC's background. */
 
-	Graphics_setColour (my selectionGraphics.get(), Graphics_WHITE);
-	Graphics_fillRectangle (my selectionGraphics.get(), 0, SIDE, 0, SIDE);
+	Graphics_setColour (my selectionGraphics, Graphics_WHITE);
+	Graphics_fillRectangle (my selectionGraphics, 0, SIDE, 0, SIDE);
 
 	/* Draw yellow grid lines for coarse navigation. */
 
-	Graphics_setColour (my selectionGraphics.get(), Graphics_YELLOW);
-	for (int i = YELLOW_GRID; i < SIDE; i += YELLOW_GRID) {
-		Graphics_line (my selectionGraphics.get(), 0, i, SIDE, i);
-		Graphics_line (my selectionGraphics.get(), i, 0, i, SIDE);
+	Graphics_setColour (my selectionGraphics, Graphics_YELLOW);
+	for (i = YELLOW_GRID; i < SIDE; i += YELLOW_GRID) {
+		Graphics_line (my selectionGraphics, 0, i, SIDE, i);
+		Graphics_line (my selectionGraphics, i, 0, i, SIDE);
 	}
 
 	/* Draw red ticks and numbers for feedback on viewport measurement. */
 
-	Graphics_setColour (my selectionGraphics.get(), Graphics_RED);
-	for (int i = 1; i < SIDE; i ++) {
+	Graphics_setColour (my selectionGraphics, Graphics_RED);
+	for (i = 1; i < SIDE; i ++) {
 		double x = i;
-		Graphics_setTextAlignment (my selectionGraphics.get(), Graphics_CENTRE, Graphics_TOP);
-		Graphics_text (my selectionGraphics.get(), x, SIDE, i);
-		Graphics_setTextAlignment (my selectionGraphics.get(), Graphics_CENTRE, Graphics_BOTTOM);
-		Graphics_text (my selectionGraphics.get(), x, 0, i);
+		Graphics_setTextAlignment (my selectionGraphics, Graphics_CENTRE, Graphics_TOP);
+		Graphics_text (my selectionGraphics, x, SIDE, i);
+		Graphics_setTextAlignment (my selectionGraphics, Graphics_CENTRE, Graphics_BOTTOM);
+		Graphics_text (my selectionGraphics, x, 0, i);
 	}
-	for (int i = 1; i < SQUARES ; i ++) {   // vertical ticks
+	for (i = 1; i < SQUARES ; i ++) {   /* Vertical ticks. */
 		double x = 0.5 * i;
-		Graphics_line (my selectionGraphics.get(), x, SIDE - 0.04, x, SIDE);
-		Graphics_line (my selectionGraphics.get(), x, 0, x, 0.04);
+		Graphics_line (my selectionGraphics, x, SIDE - 0.04, x, SIDE);
+		Graphics_line (my selectionGraphics, x, 0, x, 0.04);
 	}
-	for (int i = 1; i < SIDE; i ++) {
+	for (i = 1; i < SIDE; i ++) {
 		double y = SIDE - i;
-		Graphics_setTextAlignment (my selectionGraphics.get(), Graphics_LEFT, Graphics_HALF);
-		Graphics_text (my selectionGraphics.get(), 0.04, y, i);
-		Graphics_setTextAlignment (my selectionGraphics.get(), Graphics_RIGHT, Graphics_HALF);
-		Graphics_text (my selectionGraphics.get(), SIDE - 0.03, y, i);
+		Graphics_setTextAlignment (my selectionGraphics, Graphics_LEFT, Graphics_HALF);
+		Graphics_text (my selectionGraphics, 0.04, y, i);
+		Graphics_setTextAlignment (my selectionGraphics, Graphics_RIGHT, Graphics_HALF);
+		Graphics_text (my selectionGraphics, SIDE - 0.03, y, i);
 	}
-	for (int i = 1; i < SQUARES; i ++) {   // horizontal ticks
+	for (i = 1; i < SQUARES; i ++) {   /* Horizontal ticks. */
 		double y = SIDE - 0.5 * i;
-		Graphics_line (my selectionGraphics.get(), SIDE - 0.04, y, SIDE, y);
-		Graphics_line (my selectionGraphics.get(), 0, y, 0.04, y);
+		Graphics_line (my selectionGraphics, SIDE - 0.04, y, SIDE, y);
+		Graphics_line (my selectionGraphics, 0, y, 0.04, y);
 	}
 
-	Graphics_setColour (my selectionGraphics.get(), Graphics_BLACK);
+	Graphics_setColour (my selectionGraphics, Graphics_BLACK);
 }
 
 static void drawSelection (Picture me, int high) {
+	double dx, dy;
 	if (my backgrounding) return;
-	double dy = 2.8 * Graphics_inqFontSize (my graphics.get()) / 72.0;
-	double dx = 1.5 * dy;
+	dy = 2.8 * Graphics_inqFontSize (my graphics) / 72.0;
+	dx = 1.5 * dy;
 	if (dy > 0.4 * (my sely2 - my sely1)) dy = 0.4 * (my sely2 - my sely1);
 	if (dx > 0.4 * (my selx2 - my selx1)) dx = 0.4 * (my selx2 - my selx1);
 	if (high) {
-		Graphics_highlight2 (my selectionGraphics.get(), my selx1, my selx2, my sely1, my sely2,
+		Graphics_highlight2 (my selectionGraphics, my selx1, my selx2, my sely1, my sely2,
 			my selx1 + dx, my selx2 - dx, my sely1 + dy, my sely2 - dy);
 	} else {
-		Graphics_unhighlight2 (my selectionGraphics.get(), my selx1, my selx2, my sely1, my sely2,
+		Graphics_unhighlight2 (my selectionGraphics, my selx1, my selx2, my sely1, my sely2,
 			my selx1 + dx, my selx2 - dx, my sely1 + dy, my sely2 - dy);
 	}
 }
 
 //static double test = 0.0;
 
-static void gui_drawingarea_cb_expose (Picture me, GuiDrawingArea_ExposeEvent event) {
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	iam (Picture);
+	(void) event;
 	#if gtk
 		/*
 		 * The size of the viewable part of the drawing area may have changed.
 		 */
 		Melder_assert (event -> widget);
 		#if ALLOW_GDK_DRAWING
-			gdk_cairo_reset_clip ((cairo_t *) Graphics_x_getCR (my graphics.get()),          GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window));
-			gdk_cairo_reset_clip ((cairo_t *) Graphics_x_getCR (my selectionGraphics.get()), GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window));
+			gdk_cairo_reset_clip ((cairo_t *) Graphics_x_getCR (my graphics),          GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window));
+			gdk_cairo_reset_clip ((cairo_t *) Graphics_x_getCR (my selectionGraphics), GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window));
 		#endif
-	#else
-		(void) event;
 	#endif
 	drawMarkers (me);
-	Graphics_play (my graphics.get(), my graphics.get());
+	Graphics_play ((Graphics) my graphics, (Graphics) my graphics);
 	drawSelection (me, 1);
 }
 
@@ -133,13 +144,14 @@ static void gui_drawingarea_cb_expose (Picture me, GuiDrawingArea_ExposeEvent ev
 // (Paul:) No, running this through the normal event loop with mouse-down-drag-up events and generating exposes
 // redrew the entire picture window on every change of the selection during dragging. Much too slow!
 
-static void gui_drawingarea_cb_click (Picture me, GuiDrawingArea_ClickEvent event) {
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	iam (Picture);
 	int xstart = event -> x;
 	int ystart = event -> y;
 	double xWC, yWC;
 	int ixstart, iystart, ix, iy, oldix = 0, oldiy = 0;
 
-	Graphics_DCtoWC (my selectionGraphics.get(), xstart, ystart, & xWC, & yWC);
+	Graphics_DCtoWC (my selectionGraphics, xstart, ystart, & xWC, & yWC);
 	ix = ixstart = 1 + floor (xWC * SQUARES / SIDE);
 	iy = iystart = SQUARES - floor (yWC * SQUARES / SIDE);
 	if (ixstart < 1 || ixstart > SQUARES || iystart < 1 || iystart > SQUARES) return;
@@ -153,7 +165,7 @@ static void gui_drawingarea_cb_click (Picture me, GuiDrawingArea_ClickEvent even
 	}
 	//while (Graphics_mouseStillDown (my selectionGraphics)) {
 	do {
-		Graphics_getMouseLocation (my selectionGraphics.get(), & xWC, & yWC);
+		Graphics_getMouseLocation (my selectionGraphics, & xWC, & yWC);
 		ix = 1 + floor (xWC * SQUARES / SIDE);
 		iy = SQUARES - floor (yWC * SQUARES / SIDE);
 		if (ix >= 1 && ix <= SQUARES && iy >= 1 && iy <= SQUARES && (ix != oldix || iy != oldiy)) {
@@ -163,7 +175,7 @@ static void gui_drawingarea_cb_click (Picture me, GuiDrawingArea_ClickEvent even
 			if (iy < iystart) { iy1 = iy; iy2 = iystart; }
 			else              { iy1 = iystart; iy2 = iy; }
 			if (my mouseSelectsInnerViewport) {
-				int fontSize = Graphics_inqFontSize (my graphics.get());
+				int fontSize = Graphics_inqFontSize (my graphics);
 				double xmargin = fontSize * 4.2 / 72.0, ymargin = fontSize * 2.8 / 72.0;
 				if (xmargin > ix2 - ix1 + 1) xmargin = ix2 - ix1 + 1;
 				if (ymargin > iy2 - iy1 + 1) ymargin = iy2 - iy1 + 1;
@@ -175,10 +187,10 @@ static void gui_drawingarea_cb_click (Picture me, GuiDrawingArea_ClickEvent even
 			}
 			oldix = ix; oldiy = iy;
 		}
-	} while (Graphics_mouseStillDown (my selectionGraphics.get()));
+	} while (Graphics_mouseStillDown (my selectionGraphics));
 	// }
 	#if cocoa
-		Graphics_updateWs (my selectionGraphics.get());   // to change the dark red back into black
+		Graphics_updateWs (my selectionGraphics);   // to change the dark red back into black
 	#endif
 	if (my selectionChangedCallback) {
 		//Melder_casual (U"selectionChangedCallback from gui_drawingarea_cb_click");
@@ -187,9 +199,10 @@ static void gui_drawingarea_cb_click (Picture me, GuiDrawingArea_ClickEvent even
 	}
 }
 
-autoPicture Picture_create (GuiDrawingArea drawingArea, bool sensitive) {
+Picture Picture_create (GuiDrawingArea drawingArea, bool sensitive) {
+	Picture me = NULL;
 	try {
-		autoPicture me = Thing_new (Picture);
+		me = Melder_calloc (struct structPicture, 1);
 		my drawingArea = drawingArea;
 		/*
 		 * The initial viewport is a rectangle 6 inches wide and 4 inches high.
@@ -202,23 +215,24 @@ autoPicture Picture_create (GuiDrawingArea drawingArea, bool sensitive) {
 		if (drawingArea) {
 			/* The drawing area must have been realized; see manual at XtWindow. */
 			my graphics = Graphics_create_xmdrawingarea (my drawingArea);
-			GuiDrawingArea_setExposeCallback (my drawingArea, gui_drawingarea_cb_expose, me.get());
+			GuiDrawingArea_setExposeCallback (my drawingArea, gui_drawingarea_cb_expose, me);
 		} else {
 			/*
 			 * Create a dummy Graphics.
 			 */
 			my graphics = Graphics_create (600);
 		}
-		Graphics_setWsWindow (my graphics.get(), 0.0, 12.0, 0.0, 12.0);
-		Graphics_setViewport (my graphics.get(), my selx1, my selx2, my sely1, my sely2);
+		Graphics_setWsWindow (my graphics, 0.0, 12.0, 0.0, 12.0);
+		Graphics_setViewport (my graphics, my selx1, my selx2, my sely1, my sely2);
 		if (my sensitive) {
 			my selectionGraphics = Graphics_create_xmdrawingarea (my drawingArea);
-			Graphics_setWindow (my selectionGraphics.get(), 0, 12, 0, 12);
-			GuiDrawingArea_setClickCallback (my drawingArea, gui_drawingarea_cb_click, me.get());
+			Graphics_setWindow (my selectionGraphics, 0, 12, 0, 12);
+			GuiDrawingArea_setClickCallback (my drawingArea, gui_drawingarea_cb_click, me);
 		}
-		Graphics_startRecording (my graphics.get());
+		Graphics_startRecording (my graphics);
 		return me;
 	} catch (MelderError) {
+		if (me) Melder_free (me);
 		Melder_throw (U"Picture not created.");
 	}
 }
@@ -235,12 +249,17 @@ void Picture_setMouseSelectsInnerViewport (Picture me, int mouseSelectsInnerView
 	my mouseSelectsInnerViewport = mouseSelectsInnerViewport;
 }
 
-void structPicture :: v_destroy () noexcept {
-	Picture_erase (this);
-	Picture_Parent :: v_destroy ();
+void Picture_remove (Picture *pme) {
+	Picture me = *pme;
+	if (! me) return;
+	Picture_erase (me);
+	forget (my graphics);
+	if (my sensitive) forget (my selectionGraphics);
+	Melder_free (me);
+	*pme = NULL;
 }
 
-Graphics Picture_peekGraphics (Picture me) { return my graphics.get(); }
+Graphics Picture_getGraphics (Picture me) { return my graphics; }
 
 void Picture_unhighlight (Picture me) {
 	if (my drawingArea) drawSelection (me, 0);   // unselect
@@ -251,8 +270,8 @@ void Picture_highlight (Picture me) {
 }
 
 void Picture_erase (Picture me) {
-	Graphics_clearRecording (my graphics.get());
-	Graphics_clearWs (my graphics.get());
+	Graphics_clearRecording (my graphics);
+	Graphics_clearWs (my graphics);
 	if (my drawingArea) {
 		drawMarkers (me);
 		drawSelection (me, 1);
@@ -263,7 +282,7 @@ void Picture_writeToPraatPictureFile (Picture me, MelderFile file) {
 	try {
 		autofile f = Melder_fopen (file, "wb");
 		if (fprintf (f, "PraatPictureFile") < 0) Melder_throw (U"Write error.");
-		Graphics_writeRecordings (my graphics.get(), f);
+		Graphics_writeRecordings (my graphics, f);
 		f.close (file);
 	} catch (MelderError) {
 		Melder_throw (U"Cannot write Praat picture file ", file, U".");
@@ -282,8 +301,8 @@ void Picture_readFromPraatPictureFile (Picture me, MelderFile file) {
 		*end = '\0';
 		rewind (f);
 		fread (line, 1, end - line + strlen (tag), f);
-		Graphics_readRecordings (my graphics.get(), f);
-		Graphics_updateWs (my graphics.get());
+		Graphics_readRecordings (my graphics, f);
+		Graphics_updateWs (my graphics);
 		f.close (file);
 	} catch (MelderError) {
 		Melder_throw (U"Praat picture not read from file ", file);
@@ -299,23 +318,22 @@ void Picture_copyToClipboard (Picture me) {
 	/*
 	 * Find the clipboard and clear it.
 	 */
-	PasteboardRef clipboard = nullptr;
+	PasteboardRef clipboard = NULL;
 	PasteboardCreate (kPasteboardClipboard, & clipboard);
 	PasteboardClear (clipboard);
 	/*
 	 * Add a PDF flavour to the clipboard.
 	 */
-	static CGDataConsumerCallbacks callbacks = { appendBytes, nullptr };
+	static CGDataConsumerCallbacks callbacks = { appendBytes, NULL };
 	CFDataRef data = CFDataCreateMutable (kCFAllocatorDefault, 0);
 	CGDataConsumerRef consumer = CGDataConsumerCreate ((void *) data, & callbacks);
 	int resolution = 600;
 	CGRect rect = CGRectMake (0, 0, (my selx2 - my selx1) * resolution, (my sely1 - my sely2) * resolution);
-	CGContextRef context = CGPDFContextCreate (consumer, & rect, nullptr);
+	CGContextRef context = CGPDFContextCreate (consumer, & rect, NULL);
 	//my selx1 * RES, (12 - my sely2) * RES, my selx2 * RES, (12 - my sely1) * RES)
-	{// scope
-		autoGraphics graphics = Graphics_create_pdf (context, resolution, my selx1, my selx2, my sely1, my sely2);
-		Graphics_play (my graphics.get(), graphics.get());
-	}
+	Graphics graphics = Graphics_create_pdf (context, resolution, my selx1, my selx2, my sely1, my sely2);
+	Graphics_play ((Graphics) my graphics, graphics);
+	forget (graphics);
 	PasteboardPutItemFlavor (clipboard, (PasteboardItemID) 1, kUTTypePDF, data, kPasteboardFlavorNoFlags);
 	CFRelease (data);
 	/*
@@ -340,7 +358,7 @@ static HENHMETAFILE copyToMetafile (Picture me) {
 	defaultPrinter. Flags = PD_RETURNDEFAULT | PD_RETURNDC;
 	PrintDlg (& defaultPrinter);
 	SetRect (& rect, my selx1 * 2540, (12 - my sely2) * 2540, my selx2 * 2540, (12 - my sely1) * 2540);
-	dc = CreateEnhMetaFile (defaultPrinter. hDC, nullptr, & rect, L"Praat\0");
+	dc = CreateEnhMetaFile (defaultPrinter. hDC, NULL, & rect, L"Praat\0");
 	if (! dc) Melder_throw (U"Cannot create Windows metafile.");
 	resolution = GetDeviceCaps (dc, LOGPIXELSX);   // Virtual PC: 360; Parallels Desktop: 600
 	//Melder_fatal (U"resolution ", resolution);
@@ -374,17 +392,17 @@ static HENHMETAFILE copyToMetafile (Picture me) {
 			MelderInfo_writeLine (U"orientation ", devMode -> dmOrientation);
 		MelderInfo_close ();
 	}
-	autoGraphics pictGraphics = Graphics_create_screen ((void *) dc, nullptr, resolution);
-	Graphics_setWsViewport (pictGraphics.get(), 0, WIN_WIDTH * resolution, 0, WIN_HEIGHT * resolution);
-	Graphics_setWsWindow (pictGraphics.get(), 0.0, WIN_WIDTH, 12.0 - WIN_HEIGHT, 12.0);
-	Graphics_play (my graphics.get(), pictGraphics.get());
+	autoGraphics pictGraphics = Graphics_create_screen ((void *) dc, NULL, resolution);
+	Graphics_setWsViewport (pictGraphics.peek(), 0, WIN_WIDTH * resolution, 0, WIN_HEIGHT * resolution);
+	Graphics_setWsWindow (pictGraphics.peek(), 0.0, WIN_WIDTH, 12.0 - WIN_HEIGHT, 12.0);
+	Graphics_play ((Graphics) my graphics, pictGraphics.peek());
 	HENHMETAFILE metafile = CloseEnhMetaFile (dc);
 	return metafile;
 }
 void Picture_copyToClipboard (Picture me) {
 	try {
 		HENHMETAFILE metafile = copyToMetafile (me);
-		OpenClipboard (((GraphicsScreen) my graphics.get()) -> d_winWindow);
+		OpenClipboard (((GraphicsScreen) my graphics) -> d_winWindow);
 		EmptyClipboard ();
 		SetClipboardData (CF_ENHMETAFILE, metafile);
 		CloseClipboard ();
@@ -408,7 +426,7 @@ void Picture_writeToWindowsMetafile (Picture me, MelderFile file) {
 }
 #endif
 
-void Picture_writeToEpsFile (Picture me, MelderFile file, bool includeFonts, bool useSilipaPS) {
+void Picture_writeToEpsFile (Picture me, MelderFile file, int includeFonts, int useSilipaPS) {
 	try {
 		MelderFile_delete (file);   // to kill resources as well (fopen only kills data fork)
 		/* BUG: no message if file cannot be deleted (e.g. because still open by Microsoft Word 2001 after reading). */
@@ -416,7 +434,7 @@ void Picture_writeToEpsFile (Picture me, MelderFile file, bool includeFonts, boo
 		{// scope
 			autoGraphics ps = Graphics_create_epsfile (file, 600, thePrinter. spots,
 				my selx1, my selx2, my sely1, my sely2, includeFonts, useSilipaPS);
-			Graphics_play (my graphics.get(), ps.get());
+			Graphics_play ((Graphics) my graphics, ps.peek());
 		}
 	} catch (MelderError) {
 		Melder_throw (U"Picture not written to EPS file ", file);
@@ -426,7 +444,7 @@ void Picture_writeToEpsFile (Picture me, MelderFile file, bool includeFonts, boo
 void Picture_writeToPdfFile (Picture me, MelderFile file) {
 	try {
 		autoGraphics graphics = Graphics_create_pdffile (file, 300, my selx1, my selx2, my sely1, my sely2);
-		Graphics_play (my graphics.get(), graphics.get());
+		Graphics_play ((Graphics) my graphics, graphics.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Picture not written to PDF file ", file, U".");
 	}
@@ -435,7 +453,7 @@ void Picture_writeToPdfFile (Picture me, MelderFile file) {
 void Picture_writeToPngFile_300 (Picture me, MelderFile file) {
 	try {
 		autoGraphics graphics = Graphics_create_pngfile (file, 300, my selx1, my selx2, my sely1, my sely2);
-		Graphics_play (my graphics.get(), graphics.get());
+		Graphics_play ((Graphics) my graphics, graphics.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Picture not written to PNG file ", file, U".");
 	}
@@ -444,15 +462,15 @@ void Picture_writeToPngFile_300 (Picture me, MelderFile file) {
 void Picture_writeToPngFile_600 (Picture me, MelderFile file) {
 	try {
 		autoGraphics graphics = Graphics_create_pngfile (file, 600, my selx1, my selx2, my sely1, my sely2);
-		Graphics_play (my graphics.get(), graphics.get());
+		Graphics_play ((Graphics) my graphics, graphics.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Picture not written to PNG file ", file, U".");
 	}
 }
 
-static void print (void *void_me, Graphics printer) {
+static void print (I, Graphics printer) {
 	iam (Picture);
-	Graphics_play (my graphics.get(), printer);
+	Graphics_play ((Graphics) my graphics, printer);
 }
 
 void Picture_print (Picture me) {
@@ -485,7 +503,7 @@ void Picture_setSelection
 	}
 }
 
-void Picture_background (Picture me) { my backgrounding = true; }
-void Picture_foreground (Picture me) { my backgrounding = false; }
+void Picture_background (Picture me) { my backgrounding = TRUE; }
+void Picture_foreground (Picture me) { my backgrounding = FALSE; }
 
 /* End of file Picture.cpp */
diff --git a/sys/Picture.h b/sys/Picture.h
index a9d0f99..ef28dc7 100644
--- a/sys/Picture.h
+++ b/sys/Picture.h
@@ -2,7 +2,7 @@
 #define _Picture_h_
 /* Picture.h
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2014 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,38 +30,31 @@
 		like clearWs, flushWs, closeWs, updateWs, setWsViewport.
 	Example:
 		Picture p = Picture_create (myDrawingArea);
-		Graphics g = Picture_peekGraphics (p);
+		Any g = Picture_getGraphics (p);
 		Picture_unhighlight (p);
 		Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
-		Graphics_text (g, 0.5, 0.7, U"Hello");
-		Graphics_text (g, 0.5, 0.6, U"there");
+		Graphics_text (g, 0.5, 0.7, L"Hello");
+		Graphics_text (g, 0.5, 0.6, L"there");
 		Picture_highlight (p);
 		... (event handling)
 		Picture_unhighlight (p);
-		Graphics_text (g, 0.5, 0.3, U"Goodbye");
+		Graphics_text (g, 0.5, 0.3, L"Goodbye");
 		Picture_highlight (p);
 		... (event handling)
-		Picture_writeToEpsFile (p, U"HelloGoodbye.eps", false, false);
+		Picture_writeToEpsFile (p, L"HelloGoodbye.eps");
 		Picture_print (p, GraphicsPostscript_FINE);
 		Picture_remove (& p);
 */
 
-#include "Gui.h"
+#ifdef macintosh
+#define Picture PictureNotMac
+#endif
 
-Thing_define (Picture, Thing) {
-	GuiDrawingArea drawingArea;
-	autoGraphics graphics, selectionGraphics;
-	bool sensitive;
-	double selx1, selx2, sely1, sely2;   // selection in NDC co-ordinates
-	void (*selectionChangedCallback) (Picture, void *, double, double, double, double);
-	void *selectionChangedClosure;
-	bool backgrounding, mouseSelectsInnerViewport;
+#include "Graphics.h"
 
-	void v_destroy () noexcept
-		override;
-};
+typedef struct structPicture *Picture;
 
-autoPicture Picture_create (GuiDrawingArea drawingArea, bool sensitive);
+Picture Picture_create (GuiDrawingArea drawingArea, bool sensitive);
 /*
 	Function:
 		create an empty self-recording picture inside 'drawingArea'.
@@ -73,7 +66,7 @@ autoPicture Picture_create (GuiDrawingArea drawingArea, bool sensitive);
 		selection is [0, 1] x [0, 1] (NDC), which is invisible;
 */
 
-Graphics Picture_peekGraphics (Picture me);
+Graphics Picture_getGraphics (Picture me);
 /*
 	Function:
 		return the Graphics object.
@@ -105,12 +98,22 @@ void Picture_setSelectionChangedCallback (Picture me,
 
 void Picture_setMouseSelectsInnerViewport (Picture me, int mouseSelectsInnerViewport);
 
-void Picture_erase (Picture me);   // clears the screen
+void Picture_remove (Picture *me);
+/*
+	Function:
+		remove a Picture from memory.
+	Preconditions:
+		none
+	Postconditions:
+		*me == NULL;
+*/
+
+void Picture_erase (Picture me);   /* Clears the screen. */
 
 void Picture_writeToPraatPictureFile (Picture me, MelderFile file);
 void Picture_readFromPraatPictureFile (Picture me, MelderFile file);
 
-void Picture_writeToEpsFile (Picture me, MelderFile file, bool includeFonts, bool useSilipaPS);
+void Picture_writeToEpsFile (Picture me, MelderFile file, int includeFonts, int useSilipaPS);
 void Picture_writeToPdfFile (Picture me, MelderFile file);
 void Picture_writeToPngFile_300 (Picture me, MelderFile file);
 void Picture_writeToPngFile_600 (Picture me, MelderFile file);
diff --git a/sys/Preferences.cpp b/sys/Preferences.cpp
index d587c5b..deb0e04 100644
--- a/sys/Preferences.cpp
+++ b/sys/Preferences.cpp
@@ -1,6 +1,6 @@
 /* Preferences.cpp
  *
- * Copyright (C) 1996-2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1996-2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,21 +27,21 @@ Thing_define (Preference, SimpleString) {
 	const char32 * (*getText) (int value);
 	int (*getValue) (const char32 *text);
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	/* Warning: copy methods etc. not implemented. */
 };
 Thing_implement (Preference, SimpleString, 0);
 
-void structPreference :: v_destroy () noexcept {
+void structPreference :: v_destroy () {
 	Melder_free (string);
 	Preference_Parent :: v_destroy ();
 }
 
-static SortedSetOfStringOf <structPreference> thePreferences;
+static SortedSetOfString thePreferences;
 
 static void Preferences_add (const char32 *string, int type, void *value, int min, int max, const char32 * (*getText) (int value), int (*getValue) (const char32 *text)) {
-	autoPreference me = Thing_new (Preference);
+	Preference me = Thing_new (Preference);
 	my string = Melder_dup (string);
 	for (char32 *p = & my string [0]; *p != U'\0'; p ++) if (*p == U'_') *p = U'.';
 	my type = type;
@@ -50,7 +50,8 @@ static void Preferences_add (const char32 *string, int type, void *value, int mi
 	my max = max;
 	my getText = getText;
 	my getValue = getValue;
-	thePreferences. addItem_move (me.move());
+	if (! thePreferences) thePreferences = SortedSetOfString_create ();
+	Collection_addItem (thePreferences, me);
 }
 
 void Preferences_addByte (const char32 *string, signed char *value, signed char defaultValue)
@@ -60,25 +61,25 @@ void Preferences_addInt (const char32 *string, int *value, int defaultValue)
 	{ *value = defaultValue; Preferences_add (string, intwa, value, 0, 0, nullptr, nullptr); }
 
 void Preferences_addLong (const char32 *string, long *value, long defaultValue)
-	{ *value = defaultValue; Preferences_add (string, longwa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, longwa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addUbyte (const char32 *string, unsigned char *value, unsigned char defaultValue)
-	{ *value = defaultValue; Preferences_add (string, ubytewa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, ubytewa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addUint (const char32 *string, unsigned int *value, unsigned int defaultValue)
-	{ *value = defaultValue; Preferences_add (string, uintwa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, uintwa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addUlong (const char32 *string, unsigned long *value, unsigned long defaultValue)
-	{ *value = defaultValue; Preferences_add (string, ulongwa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, ulongwa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addBool (const char32 *string, bool *value, bool defaultValue)
-	{ *value = defaultValue; Preferences_add (string, boolwa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, boolwa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addDouble (const char32 *string, double *value, double defaultValue)
-	{ *value = defaultValue; Preferences_add (string, doublewa, value, 0, 0, nullptr, nullptr); }
+	{ *value = defaultValue; Preferences_add (string, doublewa, value, 0, 0, NULL, NULL); }
 
 void Preferences_addString (const char32 *string, char32 *value, const char32 *defaultValue)
-	{ str32cpy (value, defaultValue); Preferences_add (string, stringwa, value, 0, 0, nullptr, nullptr); }
+	{ str32cpy (value, defaultValue); Preferences_add (string, stringwa, value, 0, 0, NULL, NULL); }
 
 void _Preferences_addEnum (const char32 *string, enum kPreferences_dummy *value, int min, int max,
 	const char32 *(*getText) (int value), int (*getValue) (const char32 *text), enum kPreferences_dummy defaultValue)
@@ -92,49 +93,49 @@ void Preferences_read (MelderFile file) {
 	 * before any preferences have been registered.
 	 * In that case, do nothing.
 	 */
-	if (thePreferences.size == 0) return;
+	if (! thePreferences) return;
 	try {
 		autoMelderReadText text = MelderReadText_createFromFile (file);
 		for (;;) {
 			char32 *line = MelderReadText_readLine (text.peek());
-			if (! line)
+			if (line == NULL)
 				return;   // OK: we have read past the last line
 			char32 *value = str32str (line, U": ");
-			if (! value)
+			if (value == NULL)
 				return;   // OK: we have read past the last key-value pair
-			*value = U'\0', value += 2;
-			long ipref = thePreferences. lookUp (line);
+			*value = '\0', value += 2;
+			long ipref = SortedSetOfString_lookUp (thePreferences, line);
 			if (! ipref) {
 				/*
 				 * Recognize some preference names that went obsolete in February 2013.
 				 */
 				if (Melder_nequ (line, U"FunctionEditor.", 15))
-					ipref = thePreferences. lookUp (Melder_cat (U"TimeSoundAnalysisEditor.", line + 15));
+					ipref = SortedSetOfString_lookUp (thePreferences, Melder_cat (U"TimeSoundAnalysisEditor.", line + 15));
 			}
 			if (! ipref) continue;   // skip unrecognized keys
-			Preference pref = thePreferences.at [ipref];
+			Preference pref = (Preference) thePreferences -> item [ipref];
 			switch (pref -> type) {
 				case bytewa: * (signed char *) pref -> value =
-					strtol (Melder_peek32to8 (value), nullptr, 10); break;
+					strtol (Melder_peek32to8 (value), NULL, 10); break;
 				case intwa: * (int *) pref -> value =
-					strtol (Melder_peek32to8 (value), nullptr, 10); break;
+					strtol (Melder_peek32to8 (value), NULL, 10); break;
 				case longwa: * (long *) pref -> value =
-					strtol (Melder_peek32to8 (value), nullptr, 10); break;
+					strtol (Melder_peek32to8 (value), NULL, 10); break;
 				case ubytewa: * (unsigned char *) pref -> value =
-					strtoul (Melder_peek32to8 (value), nullptr, 10); break;
+					strtoul (Melder_peek32to8 (value), NULL, 10); break;
 				case uintwa: * (unsigned int *) pref -> value =
-					strtoul (Melder_peek32to8 (value), nullptr, 10); break;
+					strtoul (Melder_peek32to8 (value), NULL, 10); break;
 				case ulongwa: * (unsigned long *) pref -> value =
-					strtoul (Melder_peek32to8 (value), nullptr, 10); break;
+					strtoul (Melder_peek32to8 (value), NULL, 10); break;
 				case boolwa: * (bool *) pref -> value =
 					str32nequ (value, U"yes", 3) ? true :
 					str32nequ (value, U"no", 2) ? false :
-					strtol (Melder_peek32to8 (value), nullptr, 10) != 0; break;
+					strtol (Melder_peek32to8 (value), NULL, 10) != 0; break;
 				case doublewa: * (double *) pref -> value =
 					Melder_a8tof (Melder_peek32to8 (value)); break;
 				case stringwa: {
 					str32ncpy ((char32 *) pref -> value, value, Preferences_STRING_BUFFER_SIZE);
-					((char32 *) pref -> value) [Preferences_STRING_BUFFER_SIZE - 1] = U'\0'; break;
+					((char32 *) pref -> value) [Preferences_STRING_BUFFER_SIZE - 1] = '\0'; break;
 				}
 				case enumwa: {
 					int intValue = pref -> getValue (value);
@@ -150,10 +151,10 @@ void Preferences_read (MelderFile file) {
 }
 
 void Preferences_write (MelderFile file) {
-	if (thePreferences.size == 0) return;
+	if (! thePreferences || thePreferences -> size == 0) return;
 	static MelderString buffer { 0 };
-	for (long ipref = 1; ipref <= thePreferences.size; ipref ++) {
-		Preference pref = thePreferences.at [ipref];
+	for (long ipref = 1; ipref <= thePreferences -> size; ipref ++) {
+		Preference pref = (Preference) thePreferences -> item [ipref];
 		MelderString_append (& buffer, pref -> string, U": ");
 		switch (pref -> type) {
 			case bytewa:   MelderString_append (& buffer, (int) (* (signed char *)    pref -> value)); break;
@@ -174,6 +175,7 @@ void Preferences_write (MelderFile file) {
 	} catch (MelderError) {
 		Melder_clearError ();
 	}
+	forget (thePreferences);	
 }
 
 /* End of file Preferences.cpp */
diff --git a/sys/Printer.cpp b/sys/Printer.cpp
index 8950728..2718723 100644
--- a/sys/Printer.cpp
+++ b/sys/Printer.cpp
@@ -61,10 +61,11 @@
 	kGraphicsPostscript_spots_DEFAULT, kGraphicsPostscript_paperSize_DEFAULT, kGraphicsPostscript_orientation_DEFAULT, false,
 	true, kGraphicsPostscript_fontChoiceStrategy_DEFAULT,
 	600, 5100, 6600,
-	1.0
+	1.0,
+	NULL
 };
 
-void Printer_prefs () {
+void Printer_prefs (void) {
 	Preferences_addEnum (U"Printer.spots", & thePrinter. spots, kGraphicsPostscript_spots, kGraphicsPostscript_spots_DEFAULT);
 	Preferences_addEnum (U"Printer.paperSize", & thePrinter. paperSize, kGraphicsPostscript_paperSize, kGraphicsPostscript_paperSize_DEFAULT);
 	Preferences_addBool (U"Printer.allowDirectPostScript", & thePrinter. allowDirectPostScript, true);
@@ -108,7 +109,7 @@ void Printer_prefs () {
 				theLine.chars [length + 3] = '\0';
 				length ++;
 			}
-			Escape (theWinDC, POSTSCRIPT_PASSTHROUGH, length + 2, theLine.chars, nullptr);
+			Escape (theWinDC, POSTSCRIPT_PASSTHROUGH, length + 2, theLine.chars, NULL);
 		#elif defined (macintosh)
 			if (! theLine) {
 				theLine = NewHandle (3000);
@@ -127,11 +128,11 @@ void Printer_prefs () {
 #endif
 
 #if defined (_WIN32)
-	static void initPostScriptPage () {
+	static void initPostScriptPage (void) {
 		/*
 		 * Save the driver's state.
 		 */
-		Printer_postScript_printf (nullptr, "/PraatPictureSaveObject save def\n");
+		Printer_postScript_printf (NULL, "/PraatPictureSaveObject save def\n");
 		/*
 		 * The LaserWriter driver puts the coordinates upside down.
 		 * According to the PostScript Reference Manual,
@@ -143,26 +144,26 @@ void Printer_prefs () {
 		 or whatever it is.
 		 */
 		#if 1
-		Printer_postScript_printf (nullptr, "initmatrix initclip\n");
+		Printer_postScript_printf (NULL, "initmatrix initclip\n");
 		#else
-Printer_postScript_printf (nullptr, "8 8 scale initclip\n");
+Printer_postScript_printf (NULL, "8 8 scale initclip\n");
 		#endif
 	}
-	static void exitPostScriptPage () {
-		Printer_postScript_printf (nullptr, "PraatPictureSaveObject restore\n");
+	static void exitPostScriptPage (void) {
+		Printer_postScript_printf (NULL, "PraatPictureSaveObject restore\n");
 	}
 #endif
 
 #if cocoa
 #elif defined (_WIN32)
-	static void initPrinter () {
+	static void initPrinter (void) {
 	}
 #elif defined (macintosh)
-	static void initPrinter () {
+	static void initPrinter (void) {
 		Boolean result;
 		PMResolution res300 = { 300, 300 }, res600 = { 600, 600 };
-		if (! theMacPrintSettings) {   // once
-			PMCreateSession (& theMacPrintSession);   // initialize the Printing Manager
+		if (theMacPrintSettings == NULL) {   /* Once. */
+			PMCreateSession (& theMacPrintSession);   /* Initialize the Printing Manager. */
 			PMCreatePageFormat (& theMacPageFormat);
 			PMCreatePrintSettings (& theMacPrintSettings);
 			PMSessionDefaultPageFormat (theMacPrintSession, theMacPageFormat);
@@ -176,12 +177,12 @@ Printer_postScript_printf (nullptr, "8 8 scale initclip\n");
 		 * we may get the answer that there's only 300 dpi (perhaps PostScript drivers say so?).
 		 * So we don't rely on that and have a buggy assumption instead.
 		 */
-		PMSetResolution (theMacPageFormat, & res300);   // perhaps all printers have this...
-		PMSetResolution (theMacPageFormat, & res600);   // ... but this is preferred
+		PMSetResolution (theMacPageFormat, & res300);   /* Perhaps all printers have this... */
+		PMSetResolution (theMacPageFormat, & res600);   /* ... but this is preferred. */
 	}
 #endif
 
-void Printer_nextPage () {
+void Printer_nextPage (void) {
 	#if cocoa
 		[theMacView endPage];
 		[theMacView beginPageInRect: [theMacView bounds] atPlacement: NSMakePoint (0, 0)];
@@ -202,14 +203,14 @@ void Printer_nextPage () {
 		}
 	#elif defined (macintosh)
 		PMSessionEndPage (theMacPrintSession);
-		PMSessionBeginPage (theMacPrintSession, theMacPageFormat, nullptr);
+		PMSessionBeginPage (theMacPrintSession, theMacPageFormat, NULL);
 		PMSessionGetGraphicsContext (theMacPrintSession, kPMGraphicsContextQuickdraw, (void **) & theMacPort);
 		SetPort (theMacPort);
 		SetOrigin (- paperSize. left, - paperSize. top);
 	#endif
 }
 
-int Printer_pageSetup () {
+int Printer_pageSetup (void) {
 	#if cocoa
 		NSPageLayout *cocoaPageSetupDialog = [NSPageLayout pageLayout];
 		[cocoaPageSetupDialog runModal];
@@ -249,13 +250,13 @@ static void DO_Printer_postScriptSettings (UiForm dia, int /* narg */, Stackel /
 	thePrinter. fontChoiceStrategy = GET_ENUM (kGraphicsPostscript_fontChoiceStrategy, U"Font choice strategy");
 }
 
-int Printer_postScriptSettings () {
-	static UiForm dia;
-	if (! dia) {
-		UiField radio;
-		dia = UiForm_create (theCurrentPraatApplication -> topShell, U"PostScript settings", DO_Printer_postScriptSettings, nullptr, U"PostScript settings...", U"PostScript settings...");
+int Printer_postScriptSettings (void) {
+	static Any dia;
+	if (dia == NULL) {
+		Any radio;
+		dia = UiForm_create (theCurrentPraatApplication -> topShell, U"PostScript settings", DO_Printer_postScriptSettings, NULL, U"PostScript settings...", U"PostScript settings...");
 		#if defined (_WIN32)
-			BOOLEAN (U"Allow direct PostScript", true);
+			BOOLEAN (U"Allow direct PostScript", TRUE);
 		#endif
 		RADIO_ENUM (U"Grey resolution", kGraphicsPostscript_spots, DEFAULT)
 		#if defined (UNIX)
@@ -296,9 +297,9 @@ int Printer_postScriptSettings () {
 			TranslateMessage (& msg);
 			DispatchMessage (& msg);
 		}
-		return true;
+		return TRUE;
 	}
-	HDC Printer_getDC () {
+	HDC Printer_getDC (void) {
 		if (! theWinPrint. hDevMode) {
 			memset (& theWinPrint, 0, sizeof (PRINTDLG));
 			theWinPrint. lStructSize = sizeof (PRINTDLG);
@@ -319,10 +320,9 @@ int Printer_postScriptSettings () {
 	- (void) drawRect: (NSRect) dirtyRect {
 		trace (U"printing ", dirtyRect. origin. x, U" ", dirtyRect. origin. y, U" ", dirtyRect. size. width, U" ", dirtyRect. size. height);
 		int currentPage = [[NSPrintOperation currentOperation] currentPage];
-		{// scope
-			autoGraphics graphics = Graphics_create_screenPrinter (nullptr, self);
-			theDraw (theBoss, graphics.get());
-		}
+		thePrinter. graphics = Graphics_create_screenPrinter (NULL, self);
+		theDraw (theBoss, thePrinter. graphics);
+		forget (thePrinter. graphics);
 	}
 	- (BOOL) isFlipped {
 		return YES;
@@ -351,11 +351,10 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			char tempPath_utf8 [] = "/tmp/picXXXXXX";
 			close (mkstemp (tempPath_utf8));
 			Melder_pathToFile (Melder_peek8to32 (tempPath_utf8), & tempFile);
-			{// scope
-				autoGraphics graphics = Graphics_create_postscriptjob (& tempFile, thePrinter. resolution,
-					thePrinter. spots, thePrinter. paperSize, thePrinter. orientation, thePrinter. magnification);
-				draw (boss, graphics.get());
-			}
+			thePrinter. graphics = Graphics_create_postscriptjob (& tempFile, thePrinter. resolution,
+				thePrinter. spots, thePrinter. paperSize, thePrinter. orientation, thePrinter. magnification);
+			draw (boss, thePrinter. graphics);
+			forget (thePrinter. graphics);
 			char command [500];
 			sprintf (command, Melder_peek32to8 (Site_getPrintCommand ()), tempPath_utf8);
 			system (command);
@@ -394,12 +393,12 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 				 */
 				if (op) {
 					[op setCanSpawnSeparateThread: NO];
-					NSView *pictureView = ((GraphicsScreen) Picture_peekGraphics ((Picture) boss)) -> d_macView;
+					NSView *pictureView = ((GraphicsScreen) Picture_getGraphics ((Picture) boss)) -> d_macView;
 					[op
 						runOperationModalForWindow: [pictureView window]
 						delegate: cocoaPrintingArea
 						didRunSelector: @selector(printOperationDidRun:success:contextInfo:)
-						contextInfo: nil
+						contextInfo: NULL
 					];
 				}
 			#endif
@@ -416,7 +415,7 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			}
 			if (Melder_backgrounding) {
 				theWinPrint. Flags = PD_RETURNDEFAULT | PD_RETURNDC;
-				if (! PrintDlg (& theWinPrint) || ! theWinPrint. hDC) {
+				if (! PrintDlg (& theWinPrint) || theWinPrint. hDC == NULL) {
 					Melder_throw (U"Cannot print from a script on this computer.");
 				}
 			} else {
@@ -426,7 +425,7 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			}
 			theWinDC = theWinPrint. hDC;
 			thePrinter. postScript = thePrinter. allowDirectPostScript &&
-				Escape (theWinDC, QUERYESCSUPPORT, sizeof (int), (LPSTR) & postScriptCode, nullptr);
+				Escape (theWinDC, QUERYESCSUPPORT, sizeof (int), (LPSTR) & postScriptCode, NULL);
 			/*
 			 * The HP colour inkjet printer returns in dmFields:
 			 * 0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 23, 24, 25, 26 = DM_ORIENTATION |
@@ -461,38 +460,36 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 				thePrinter. paperWidth = 1000;
 				thePrinter. paperHeight = 1000;
 			}
-			EnableWindow ((HWND) XtWindow (theCurrentPraatApplication -> topShell -> d_xmShell), false);
+			EnableWindow ((HWND) XtWindow (theCurrentPraatApplication -> topShell -> d_xmShell), FALSE);
 			SetAbortProc (theWinDC, AbortFunc);
 			memset (& docInfo, 0, sizeof (DOCINFO));
 			docInfo. cbSize = sizeof (DOCINFO);
 			docInfo. lpszDocName = L"Praatjes";
-			docInfo. lpszOutput = nullptr;
+			docInfo. lpszOutput = NULL;
 			if (thePrinter. postScript) {
 				StartDoc (theWinDC, & docInfo);
 				StartPage (theWinDC);
 				initPostScriptPage ();
-				{// scope
-					autoGraphics graphics = Graphics_create_postscriptprinter ();
-					draw (boss, graphics.get());
-				}
+				thePrinter. graphics = Graphics_create_postscriptprinter ();
+				draw (boss, thePrinter. graphics);
+				forget (thePrinter. graphics);
 				exitPostScriptPage ();
 				EndPage (theWinDC);
 				EndDoc (theWinDC);
 			} else {
 				StartDoc (theWinDC, & docInfo);
 				StartPage (theWinDC);
-				{// scope
-					autoGraphics graphics = Graphics_create_screenPrinter (nullptr, theWinDC);
-					draw (boss, graphics.get());
-				}
+				thePrinter. graphics = Graphics_create_screenPrinter (NULL, theWinDC);
+				draw (boss, thePrinter. graphics);
+				forget (thePrinter. graphics);
 				if (EndPage (theWinDC) < 0) {
 					Melder_throw (U"Cannot print page.");
 				} else {
 					EndDoc (theWinDC);
 				}
 			}
-			EnableWindow ((HWND) XtWindow (theCurrentPraatApplication -> topShell -> d_xmShell), true);
-			DeleteDC (theWinDC), theWinDC = nullptr;
+			EnableWindow ((HWND) XtWindow (theCurrentPraatApplication -> topShell -> d_xmShell), TRUE);
+			DeleteDC (theWinDC), theWinDC = NULL;
 		#elif defined (macintosh)
 			Boolean result;
 			initPrinter ();
@@ -518,7 +515,7 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			thePrinter. orientation = orientation == kPMLandscape ||
 				orientation == kPMReverseLandscape ? kGraphicsPostscript_orientation_LANDSCAPE : kGraphicsPostscript_orientation_PORTRAIT;
 			PMSessionBeginDocument (theMacPrintSession, theMacPrintSettings, theMacPageFormat);
-			PMSessionBeginPage (theMacPrintSession, theMacPageFormat, nullptr);
+			PMSessionBeginPage (theMacPrintSession, theMacPageFormat, NULL);
 			PMSessionGetGraphicsContext (theMacPrintSession, kPMGraphicsContextQuickdraw, (void **) & theMacPort);
 			/*
 			 * On PostScript, the point (0, 0) is the bottom left corner of the paper, which is fine.
@@ -533,14 +530,13 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			 */
 			SetPort (theMacPort);
 			SetOrigin (- paperSize. left, - paperSize. top);
-			{// scope
-				autoGraphics graphics = Graphics_create_screenPrinter (nullptr, theMacPort);
-				draw (boss, graphics.get());
-			}
+			thePrinter. graphics = Graphics_create_screenPrinter (NULL, theMacPort);
+			draw (boss, thePrinter. graphics);
+			forget (thePrinter. graphics);
 			if (theMacPort) {
 				PMSessionEndPage (theMacPrintSession);
 				PMSessionEndDocument (theMacPrintSession);
-				theMacPort = nullptr;
+				theMacPort = NULL;
 			}
 		#endif
 		return 1;
@@ -550,7 +546,7 @@ int Printer_print (void (*draw) (void *boss, Graphics g), void *boss) {
 			if (theMacPort) {
 				PMSessionEndPage (theMacPrintSession);
 				PMSessionEndDocument (theMacPrintSession);
-				theMacPort = nullptr;
+				theMacPort = NULL;
 			}
 		#endif
 		Melder_throw (U"Not printed.");
diff --git a/sys/Printer.h b/sys/Printer.h
index 2de3496..f3b6ba8 100644
--- a/sys/Printer.h
+++ b/sys/Printer.h
@@ -2,7 +2,7 @@
 #define _Printer_h_
 /* Printer.h
  *
- * Copyright (C) 1992-2011,2012,2015 Paul Boersma
+ * Copyright (C) 1992-2011,2012 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
 
 #include "Graphics.h"
 
-/* When changing the following structure, update its initialization in Printer.cpp */
+/* When changing the following structure, update its initialization in Printer.c */
 struct Printer {
 	enum kGraphicsPostscript_spots spots;
 	enum kGraphicsPostscript_paperSize paperSize;
@@ -30,6 +30,7 @@ struct Printer {
 	enum kGraphicsPostscript_fontChoiceStrategy fontChoiceStrategy;
 	long resolution, paperWidth, paperHeight;
 	double magnification;
+	Graphics graphics;
 };
 
 extern struct Printer thePrinter;
@@ -38,14 +39,14 @@ extern struct Printer thePrinter;
 	int Printer_postScript_printf (void *stream, const char *format, ... );
 #endif
 #ifdef _WIN32
-	HDC Printer_getDC ();
+	HDC Printer_getDC (void);
 #endif
-int Printer_pageSetup ();
-int Printer_postScriptSettings ();
-int Printer_print (void (*draw) (void *void_me, Graphics g), void *void_me);
-void Printer_nextPage ();
+int Printer_pageSetup (void);
+int Printer_postScriptSettings (void);
+int Printer_print (void (*draw) (I, Graphics g), I);
+void Printer_nextPage (void);
 
-void Printer_prefs ();
+void Printer_prefs (void);
 
 /* End of file Printer.h */
 #endif
diff --git a/sys/Script.cpp b/sys/Script.cpp
index 9a18e11..9cb5c88 100644
--- a/sys/Script.cpp
+++ b/sys/Script.cpp
@@ -1,6 +1,6 @@
 /* Script.cpp
  *
- * Copyright (C) 1997-2011,2015 Paul Boersma
+ * Copyright (C) 1997-2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,12 +19,12 @@
 
 #include "Script.h"
 
-Thing_implement (Script, Daata, 0);
+Thing_implement (Script, Data, 0);
 
-autoScript Script_createFromFile (MelderFile file) {
+Script Script_createFromFile (MelderFile file) {
 	autoScript me = Thing_new (Script);
 	MelderFile_copy (file, & my file);
-	return me;
+	return me.transfer();
 }
 
 /* End of file Script.cpp */
diff --git a/sys/Script.h b/sys/Script.h
index 67a2cb8..057fdbe 100644
--- a/sys/Script.h
+++ b/sys/Script.h
@@ -21,11 +21,11 @@
 
 #include "Data.h"
 
-Thing_define (Script, Daata) {
+Thing_define (Script, Data) {
 	structMelderFile file;
 };
 
-autoScript Script_createFromFile (MelderFile file);
+Script Script_createFromFile (MelderFile file);
 
 /* End of file Script.h */
 #endif
diff --git a/sys/ScriptEditor.cpp b/sys/ScriptEditor.cpp
index 26861a9..039987a 100644
--- a/sys/ScriptEditor.cpp
+++ b/sys/ScriptEditor.cpp
@@ -1,6 +1,6 @@
 /* ScriptEditor.cpp
  *
- * Copyright (C) 1997-2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1997-2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,20 +24,22 @@
 
 Thing_implement (ScriptEditor, TextEditor, 0);
 
-static CollectionOf <structScriptEditor> theReferencesToAllOpenScriptEditors;
+static Collection theScriptEditors;
 
-bool ScriptEditors_dirty () {
-	for (long i = 1; i <= theReferencesToAllOpenScriptEditors.size; i ++) {
-		ScriptEditor me = theReferencesToAllOpenScriptEditors.at [i];
-		if (my dirty) return true;
+int ScriptEditors_dirty (void) {
+	if (! theScriptEditors) return FALSE;
+	for (long i = 1; i <= theScriptEditors -> size; i ++) {
+		ScriptEditor me = (ScriptEditor) theScriptEditors -> item [i];
+		if (my dirty) return TRUE;
 	}
-	return false;
+	return FALSE;
 }
 
-void structScriptEditor :: v_destroy () noexcept {
+void structScriptEditor :: v_destroy () {
 	Melder_free (environmentName);
-	our argsDialog.reset();   // don't delay till delete
-	theReferencesToAllOpenScriptEditors. undangleItem (this);
+	forget (interpreter);
+	forget (argsDialog);
+	if (theScriptEditors) Collection_undangleItem (theScriptEditors, this);
 	ScriptEditor_Parent :: v_destroy ();
 }
 
@@ -62,10 +64,14 @@ void structScriptEditor :: v_goAway () {
 	}
 }
 
-static void args_ok (UiForm sendingForm, int /* narg */, Stackel /* args */, const char32 * /* sendingString */,
-	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, void *void_me)
-{
+static void args_ok (UiForm sendingForm, int narg_dummy, Stackel args_dummy, const char32 *sendingString_dummy, Interpreter interpreter_dummy, const char32 *invokingButtonTitle, bool modified_dummy, I) {
 	iam (ScriptEditor);
+	(void) narg_dummy;
+	(void) args_dummy;
+	(void) sendingString_dummy;
+	(void) interpreter_dummy;
+	(void) invokingButtonTitle;
+	(void) modified_dummy;
 	autostring32 text = GuiText_getString (my textWidget);
 	structMelderFile file = { 0 };
 	if (my name [0]) {
@@ -74,19 +80,23 @@ static void args_ok (UiForm sendingForm, int /* narg */, Stackel /* args */, con
 	}
 	Melder_includeIncludeFiles (& text);
 
-	Interpreter_getArgumentsFromDialog (my interpreter.get(), sendingForm);
+	Interpreter_getArgumentsFromDialog (my interpreter, sendingForm);
 
 	autoPraatBackground background;
 	if (my name [0]) MelderFile_setDefaultDir (& file);
-	Interpreter_run (my interpreter.get(), text.peek());
+	Interpreter_run (my interpreter, text.peek());
 }
 
-static void args_ok_selectionOnly (UiForm sendingForm, int /* narg */, Stackel /* args */, const char32 * /* sendingString */,
-	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, void *void_me)
-{
+static void args_ok_selectionOnly (UiForm sendingForm, int narg_dummy, Stackel args_dummy, const char32 *sendingString_dummy, Interpreter interpreter_dummy, const char32 *invokingButtonTitle, bool modified_dummy, I) {
 	iam (ScriptEditor);
+	(void) narg_dummy;
+	(void) args_dummy;
+	(void) sendingString_dummy;
+	(void) interpreter_dummy;
+	(void) invokingButtonTitle;
+	(void) modified_dummy;
 	autostring32 text = GuiText_getSelection (my textWidget);
-	if (! text.peek())
+	if (text.peek() == NULL)
 		Melder_throw (U"No text is selected any longer.\nPlease reselect or click Cancel.");
 	structMelderFile file = { 0 };
 	if (my name [0]) {
@@ -95,14 +105,15 @@ static void args_ok_selectionOnly (UiForm sendingForm, int /* narg */, Stackel /
 	}
 	Melder_includeIncludeFiles (& text);
 
-	Interpreter_getArgumentsFromDialog (my interpreter.get(), sendingForm);
+	Interpreter_getArgumentsFromDialog (my interpreter, sendingForm);
 
 	autoPraatBackground background;
 	if (my name [0]) MelderFile_setDefaultDir (& file);
-	Interpreter_run (my interpreter.get(), text.peek());
+	Interpreter_run (my interpreter, text.peek());
 }
 
-static void menu_cb_run (ScriptEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_run (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	if (my interpreter -> running)
 		Melder_throw (U"The script is already running (paused). Please close or continue the pause or demo window.");
 	autostring32 text = GuiText_getString (my textWidget);
@@ -113,26 +124,28 @@ static void menu_cb_run (ScriptEditor me, EDITOR_ARGS_DIRECT) {
 		MelderFile_setDefaultDir (& file);
 	}
 	Melder_includeIncludeFiles (& text);
-	int npar = Interpreter_readParameters (my interpreter.get(), text.peek());
+	int npar = Interpreter_readParameters (my interpreter, text.peek());
 	if (npar) {
 		/*
 		 * Pop up a dialog box for querying the arguments.
 		 */
-		my argsDialog = autoUiForm (Interpreter_createForm (my interpreter.get(), my d_windowForm, nullptr, args_ok, me, false));
-		UiForm_do (my argsDialog.get(), false);
+		forget (my argsDialog);
+		my argsDialog = Interpreter_createForm (my interpreter, my d_windowForm, NULL, args_ok, me, false);
+		UiForm_do (my argsDialog, false);
 	} else {
 		autoPraatBackground background;
 		if (my name [0]) MelderFile_setDefaultDir (& file);
 		trace (U"Running the following script (2):\n", text.peek());
-		Interpreter_run (my interpreter.get(), text.peek());
+		Interpreter_run (my interpreter, text.peek());
 	}
 }
 
-static void menu_cb_runSelection (ScriptEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_runSelection (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	if (my interpreter -> running)
 		Melder_throw (U"The script is already running (paused). Please close or continue the pause or demo window.");
 	autostring32 text = GuiText_getSelection (my textWidget);
-	if (! text.peek())
+	if (text.peek() == NULL)
 		Melder_throw (U"No text selected.");
 	structMelderFile file = { 0 };
 	if (my name [0]) {
@@ -140,21 +153,23 @@ static void menu_cb_runSelection (ScriptEditor me, EDITOR_ARGS_DIRECT) {
 		MelderFile_setDefaultDir (& file);
 	}
 	Melder_includeIncludeFiles (& text);
-	int npar = Interpreter_readParameters (my interpreter.get(), text.peek());
+	int npar = Interpreter_readParameters (my interpreter, text.peek());
 	if (npar) {
 		/*
 		 * Pop up a dialog box for querying the arguments.
 		 */
-		my argsDialog = autoUiForm (Interpreter_createForm (my interpreter.get(), my d_windowForm, nullptr, args_ok_selectionOnly, me, true));
-		UiForm_do (my argsDialog.get(), false);
+		forget (my argsDialog);
+		my argsDialog = Interpreter_createForm (my interpreter, my d_windowForm, NULL, args_ok_selectionOnly, me, true);
+		UiForm_do (my argsDialog, false);
 	} else {
 		autoPraatBackground background;
 		if (my name [0]) MelderFile_setDefaultDir (& file);
-		Interpreter_run (my interpreter.get(), text.peek());
+		Interpreter_run (my interpreter, text.peek());
 	}
 }
 
-static void menu_cb_addToMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_addToMenu (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	EDITOR_FORM (U"Add to menu", U"Add to fixed menu...")
 		WORD (U"Window", U"?")
 		SENTENCE (U"Menu", U"File")
@@ -177,7 +192,8 @@ static void menu_cb_addToMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_addToFixedMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_addToFixedMenu (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	EDITOR_FORM (U"Add to fixed menu", U"Add to fixed menu...");
 		RADIO (U"Window", 1)
 			RADIOBUTTON (U"Objects")
@@ -201,7 +217,8 @@ static void menu_cb_addToFixedMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_addToDynamicMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_addToDynamicMenu (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	EDITOR_FORM (U"Add to dynamic menu", U"Add to dynamic menu...")
 		WORD (U"Class 1", U"Sound")
 		INTEGER (U"Number 1", U"0")
@@ -228,13 +245,15 @@ static void menu_cb_addToDynamicMenu (ScriptEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_clearHistory (ScriptEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_clearHistory (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	UiHistory_clear ();
 }
 
-static void menu_cb_pasteHistory (ScriptEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_pasteHistory (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	char32 *history = UiHistory_get ();
-	if (! history || history [0] == U'\0')
+	if (history == NULL || history [0] == U'\0')
 		Melder_throw (U"No history.");
 	long length = str32len (history);
 	if (history [length - 1] != U'\n') {
@@ -254,7 +273,8 @@ static void menu_cb_pasteHistory (ScriptEditor me, EDITOR_ARGS_DIRECT) {
 	GuiText_scrollToSelection (my textWidget);
 }
 
-static void menu_cb_expandIncludeFiles (ScriptEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_expandIncludeFiles (EDITOR_ARGS) {
+	EDITOR_IAM (ScriptEditor);
 	structMelderFile file = { 0 };
 	autostring32 text = GuiText_getString (my textWidget);
 	if (my name [0]) {
@@ -265,16 +285,16 @@ static void menu_cb_expandIncludeFiles (ScriptEditor me, EDITOR_ARGS_DIRECT) {
 	GuiText_setString (my textWidget, text.peek());
 }
 
-static void menu_cb_AboutScriptEditor (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"ScriptEditor"); }
-static void menu_cb_ScriptingTutorial (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Scripting"); }
-static void menu_cb_ScriptingExamples (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Scripting examples"); }
-static void menu_cb_PraatScript (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Praat script"); }
-static void menu_cb_FormulasTutorial (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Formulas"); }
-static void menu_cb_DemoWindow (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Demo window"); }
-static void menu_cb_TheHistoryMechanism (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"History mechanism"); }
-static void menu_cb_InitializationScripts (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Initialization script"); }
-static void menu_cb_AddingToAFixedMenu (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Add to fixed menu..."); }
-static void menu_cb_AddingToADynamicMenu (ScriptEditor, EDITOR_ARGS_DIRECT) { Melder_help (U"Add to dynamic menu..."); }
+static void menu_cb_AboutScriptEditor (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"ScriptEditor"); }
+static void menu_cb_ScriptingTutorial (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Scripting"); }
+static void menu_cb_ScriptingExamples (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Scripting examples"); }
+static void menu_cb_PraatScript (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Praat script"); }
+static void menu_cb_FormulasTutorial (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Formulas"); }
+static void menu_cb_DemoWindow (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Demo window"); }
+static void menu_cb_TheHistoryMechanism (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"History mechanism"); }
+static void menu_cb_InitializationScripts (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Initialization script"); }
+static void menu_cb_AddingToAFixedMenu (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Add to fixed menu..."); }
+static void menu_cb_AddingToADynamicMenu (EDITOR_ARGS) { EDITOR_IAM (ScriptEditor); Melder_help (U"Add to dynamic menu..."); }
 
 void structScriptEditor :: v_createMenus () {
 	ScriptEditor_Parent :: v_createMenus ();
@@ -284,11 +304,11 @@ void structScriptEditor :: v_createMenus () {
 		Editor_addCommand (this, U"File", U"Add to fixed menu...", 0, menu_cb_addToFixedMenu);
 		Editor_addCommand (this, U"File", U"Add to dynamic menu...", 0, menu_cb_addToDynamicMenu);
 	}
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
-	Editor_addCommand (this, U"Edit", U"-- history --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
+	Editor_addCommand (this, U"Edit", U"-- history --", 0, 0);
 	Editor_addCommand (this, U"Edit", U"Clear history", 0, menu_cb_clearHistory);
 	Editor_addCommand (this, U"Edit", U"Paste history", 'H', menu_cb_pasteHistory);
-	Editor_addCommand (this, U"Convert", U"-- expand --", 0, nullptr);
+	Editor_addCommand (this, U"Convert", U"-- expand --", 0, 0);
 	Editor_addCommand (this, U"Convert", U"Expand include files", 0, menu_cb_expandIncludeFiles);
 	Editor_addMenu (this, U"Run", 0);
 	Editor_addCommand (this, U"Run", U"Run", 'R', menu_cb_run);
@@ -303,52 +323,58 @@ void structScriptEditor :: v_createHelpMenuItems (EditorMenu menu) {
 	EditorMenu_addCommand (menu, U"Praat script", 0, menu_cb_PraatScript);
 	EditorMenu_addCommand (menu, U"Formulas tutorial", 0, menu_cb_FormulasTutorial);
 	EditorMenu_addCommand (menu, U"Demo window", 0, menu_cb_DemoWindow);
-	EditorMenu_addCommand (menu, U"-- help history --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- help history --", 0, NULL);
 	EditorMenu_addCommand (menu, U"The History mechanism", 0, menu_cb_TheHistoryMechanism);
 	EditorMenu_addCommand (menu, U"Initialization scripts", 0, menu_cb_InitializationScripts);
-	EditorMenu_addCommand (menu, U"-- help add --", 0, nullptr);
+	EditorMenu_addCommand (menu, U"-- help add --", 0, NULL);
 	EditorMenu_addCommand (menu, U"Adding to a fixed menu", 0, menu_cb_AddingToAFixedMenu);
 	EditorMenu_addCommand (menu, U"Adding to a dynamic menu", 0, menu_cb_AddingToADynamicMenu);
 }
 
 void ScriptEditor_init (ScriptEditor me, Editor environment, const char32 *initialText) {
-	if (environment) {
+	if (environment != NULL) {
 		my environmentName = Melder_dup (environment -> name);
 		my editorClass = environment -> classInfo;
 	}
 	TextEditor_init (me, initialText);
 	my interpreter = Interpreter_createFromEnvironment (environment);
-	theReferencesToAllOpenScriptEditors. addItem_ref (me);
+	if (theScriptEditors == NULL) {
+		theScriptEditors = Collection_create (NULL, 10);
+		Collection_dontOwnItems (theScriptEditors);
+	}
+	Collection_addItem (theScriptEditors, me);
 }
 
-autoScriptEditor ScriptEditor_createFromText (Editor environment, const char32 *initialText) {
+ScriptEditor ScriptEditor_createFromText (Editor environment, const char32 *initialText) {
 	try {
 		autoScriptEditor me = Thing_new (ScriptEditor);
-		ScriptEditor_init (me.get(), environment, initialText);
-		return me;
+		ScriptEditor_init (me.peek(), environment, initialText);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Script window not created.");
 	}
 }
 
-autoScriptEditor ScriptEditor_createFromScript_canBeNull (Editor environment, Script script) {
+ScriptEditor ScriptEditor_createFromScript (Editor environment, Script script) {
 	try {
-		for (long ieditor = 1; ieditor <= theReferencesToAllOpenScriptEditors.size; ieditor ++) {
-			ScriptEditor editor = theReferencesToAllOpenScriptEditors.at [ieditor];
-			if (MelderFile_equal (& script -> file, & editor -> file)) {
-				Editor_raise (editor);
-				Melder_appendError (U"The script ", & script -> file, U" is already open and has been moved to the front.");
-				if (editor -> dirty)
-					Melder_appendError (U"Choose \"Reopen from disk\" if you want to revert to the old version.");
-				Melder_flushError ();
-				return autoScriptEditor();   // safe null
+		if (theScriptEditors) {
+			for (long ieditor = 1; ieditor <= theScriptEditors -> size; ieditor ++) {
+				ScriptEditor editor = (ScriptEditor) theScriptEditors -> item [ieditor];
+				if (MelderFile_equal (& script -> file, & editor -> file)) {
+					Editor_raise (editor);
+					Melder_appendError (U"The script ", & script -> file, U" is already open and has been moved to the front.");
+					if (editor -> dirty)
+						Melder_appendError (U"Choose \"Reopen from disk\" if you want to revert to the old version.");
+					Melder_flushError ();
+					return NULL;   // safe NULL
+				}
 			}
 		}
 		autostring32 text = MelderFile_readText (& script -> file);
 		autoScriptEditor me = ScriptEditor_createFromText (environment, text.peek());
 		MelderFile_copy (& script -> file, & my file);
-		Thing_setName (me.get(), Melder_fileToPath (& script -> file));
-		return me;
+		Thing_setName (me.peek(), Melder_fileToPath (& script -> file));
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Script window not created.");
 	}
diff --git a/sys/ScriptEditor.h b/sys/ScriptEditor.h
index 3f441af..036f042 100644
--- a/sys/ScriptEditor.h
+++ b/sys/ScriptEditor.h
@@ -26,10 +26,10 @@
 Thing_define (ScriptEditor, TextEditor) {
 	char32 *environmentName;
 	ClassInfo editorClass;
-	autoInterpreter interpreter;
-	autoUiForm argsDialog;
+	Interpreter interpreter;
+	UiForm argsDialog;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_nameChanged ()
 		override;
@@ -47,17 +47,17 @@ void ScriptEditor_init (ScriptEditor me,
 	Editor editor,
 	const char32 *initialText
 );
-autoScriptEditor ScriptEditor_createFromText (
-	Editor editor,   // the scripting environment; if null, the scripting environment consists of the global windows
-	const char32 *initialText   // may be null
+ScriptEditor ScriptEditor_createFromText (
+	Editor editor,   // the scripting environment; if NULL, the scripting environment consists of the global windows
+	const char32 *initialText   // may be NULL
 );
 
-autoScriptEditor ScriptEditor_createFromScript_canBeNull (
+ScriptEditor ScriptEditor_createFromScript (
 	Editor editor,
 	Script script
 );
 
-bool ScriptEditors_dirty ();   // are there any modified and unsaved scripts? Ask before quitting the program.
+int ScriptEditors_dirty (void);   // are there any modified and unsaved scripts? Ask before quitting the program.
 
 /* End of file ScriptEditor.h */
 #endif
diff --git a/sys/Simple.cpp b/sys/Simple.cpp
index db3b547..7399825 100644
--- a/sys/Simple.cpp
+++ b/sys/Simple.cpp
@@ -38,40 +38,36 @@
 #include "oo_DESCRIPTION.h"
 #include "Simple_def.h"
 
-Thing_implement (SimpleInt, Daata, 0);
+Thing_implement (SimpleInt, Data, 0);
 
-autoSimpleInt SimpleInt_create (int number) {
+SimpleInt SimpleInt_create (int number) {
 	autoSimpleInt me = Thing_new (SimpleInt);
 	my number = number;
-	return me;
+	return me.transfer();
 }
 
-Thing_implement (SimpleLong, Daata, 0);
+Thing_implement (SimpleLong, Data, 0);
 
-autoSimpleLong SimpleLong_create (long number) {
+SimpleLong SimpleLong_create (long number) {
 	autoSimpleLong me = Thing_new (SimpleLong);
 	my number = number;
-	return me;
+	return me.transfer();
 }
 
-Thing_implement (SimpleDouble, Daata, 0);
+Thing_implement (SimpleDouble, Data, 0);
 
-autoSimpleDouble SimpleDouble_create (double number) {
+SimpleDouble SimpleDouble_create (double number) {
 	autoSimpleDouble me = Thing_new (SimpleDouble);
 	my number = number;
-	return me;
+	return me.transfer();
 }
 
-Thing_implement (SimpleString, Daata, 0);
+Thing_implement (SimpleString, Data, 0);
 
-autoSimpleString SimpleString_create (const char32 *string) {
+SimpleString SimpleString_create (const char32 *string) {
 	autoSimpleString me = Thing_new (SimpleString);
 	my string = Melder_dup (string);
-	return me;
-}
-
-int SimpleString_compare (SimpleString me, SimpleString thee) noexcept {
-	return str32cmp (my string, thy string);
+	return me.transfer();
 }
 
 /* End of file Simple.cpp */
diff --git a/sys/Simple.h b/sys/Simple.h
index e75200a..e251d46 100644
--- a/sys/Simple.h
+++ b/sys/Simple.h
@@ -22,13 +22,15 @@
 #include "Data.h"
 
 #include "Simple_def.h"
+oo_CLASS_CREATE (SimpleInt, Data);
+oo_CLASS_CREATE (SimpleLong, Data);
+oo_CLASS_CREATE (SimpleDouble, Data);
+oo_CLASS_CREATE (SimpleString, Data);
 
-autoSimpleInt SimpleInt_create (int number);
-autoSimpleLong SimpleLong_create (long number);
-autoSimpleDouble SimpleDouble_create (double number);
-autoSimpleString SimpleString_create (const char32 *string);
-
-int SimpleString_compare (SimpleString me, SimpleString thee) noexcept;
+SimpleInt SimpleInt_create (int number);
+SimpleLong SimpleLong_create (long number);
+SimpleDouble SimpleDouble_create (double number);
+SimpleString SimpleString_create (const char32 *string);
 
 /* End of file Simple.h */
 #endif
diff --git a/sys/Simple_def.h b/sys/Simple_def.h
index a366460..c713a14 100644
--- a/sys/Simple_def.h
+++ b/sys/Simple_def.h
@@ -18,25 +18,25 @@
  */
 
 #define ooSTRUCT SimpleInt
-oo_DEFINE_CLASS (SimpleInt, Daata)
+oo_DEFINE_CLASS (SimpleInt, Data)
 	oo_INT (number)
 oo_END_CLASS (SimpleInt)
 #undef ooSTRUCT
 
 #define ooSTRUCT SimpleLong
-oo_DEFINE_CLASS (SimpleLong, Daata)
+oo_DEFINE_CLASS (SimpleLong, Data)
 	oo_LONG (number)
 oo_END_CLASS (SimpleLong)
 #undef ooSTRUCT
 
 #define ooSTRUCT SimpleDouble
-oo_DEFINE_CLASS (SimpleDouble, Daata)
+oo_DEFINE_CLASS (SimpleDouble, Data)
 	oo_DOUBLE (number)
 oo_END_CLASS (SimpleDouble)
 #undef ooSTRUCT
 
 #define ooSTRUCT SimpleString
-oo_DEFINE_CLASS (SimpleString, Daata)
+oo_DEFINE_CLASS (SimpleString, Data)
 	oo_STRING (string)
 oo_END_CLASS (SimpleString)
 #undef ooSTRUCT
diff --git a/sys/Strings.cpp b/sys/Strings.cpp
index e8be8c0..e3cee73 100644
--- a/sys/Strings.cpp
+++ b/sys/Strings.cpp
@@ -60,7 +60,7 @@
 #include "oo_DESCRIPTION.h"
 #include "Strings_def.h"
 
-Thing_implement (Strings, Daata, 0);
+Thing_implement (Strings, Data, 0);
 
 static long Strings_totalLength (Strings me) {
 	long totalLength = 0;
@@ -82,7 +82,7 @@ static long Strings_maximumLength (Strings me) {
 }
 
 void structStrings :: v_info () {
-	structDaata :: v_info ();
+	structData :: v_info ();
 	MelderInfo_writeLine (U"Number of strings: ", numberOfStrings);
 	MelderInfo_writeLine (U"Total length: ", Strings_totalLength (this), U" characters");
 	MelderInfo_writeLine (U"Longest string: ", Strings_maximumLength (this), U" characters");
@@ -91,17 +91,17 @@ void structStrings :: v_info () {
 const char32 * structStrings :: v_getVectorStr (long icol) {
 	if (icol < 1 || icol > our numberOfStrings) return U"";
 	char32 *stringValue = strings [icol];
-	return stringValue ? stringValue : U"";
+	return stringValue == NULL ? U"" : stringValue;
 }
 
 #define Strings_createAsFileOrDirectoryList_TYPE_FILE  0
 #define Strings_createAsFileOrDirectoryList_TYPE_DIRECTORY  1
-static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* cattable */, int type) {
+static Strings Strings_createAsFileOrDirectoryList (const char32 *path /* cattable */, int type) {
 	#if USE_STAT
 		/*
 		 * Initialize.
 		 */
-		DIR *d = nullptr;
+		DIR *d = NULL;
 		try {
 			autoMelderString filePath, searchDirectory, left, right;
 			/*
@@ -112,11 +112,11 @@ static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* ca
 			 */
 			MelderString_copy (& searchDirectory, path);
 			char32 *asterisk = str32rchr (searchDirectory. string, '*');
-			if (asterisk) {
+			if (asterisk != NULL) {
 				*asterisk = '\0';
 				searchDirectory. length = asterisk - searchDirectory. string;   // probably superfluous, but correct
 				char32 *lastSlash = str32rchr (searchDirectory. string, Melder_DIRECTORY_SEPARATOR);
-				if (lastSlash) {
+				if (lastSlash != NULL) {
 					*lastSlash = '\0';   // This fixes searchDirectory.
 					searchDirectory. length = lastSlash - searchDirectory. string;   // probably superfluous, but correct
 					MelderString_copy (& left, lastSlash + 1);
@@ -129,13 +129,13 @@ static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* ca
 			char buffer8 [1+kMelder_MAXPATH];
 			Melder_str32To8bitFileRepresentation_inline (searchDirectory. string, buffer8);
 			d = opendir (buffer8 [0] ? buffer8 : ".");
-			if (! d)
+			if (d == NULL)
 				Melder_throw (U"Cannot open directory ", searchDirectory. string, U".");
 			//Melder_casual (U"opened");
 			autoStrings me = Thing_new (Strings);
 			my strings = NUMvector <char32 *> (1, 1000000);
 			struct dirent *entry;
-			while (!! (entry = readdir (d))) {
+			while ((entry = readdir (d)) != NULL) {
 				MelderString_copy (& filePath, searchDirectory. string [0] ? searchDirectory. string : U".");
 				MelderString_appendCharacter (& filePath, Melder_DIRECTORY_SEPARATOR);
 				char32 buffer32 [1+kMelder_MAXPATH];
@@ -164,8 +164,8 @@ static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* ca
 				}
 			}
 			closedir (d);
-			Strings_sort (me.get());
-			return me;
+			Strings_sort (me.peek());
+			return me.transfer();
 		} catch (MelderError) {
 			if (d) closedir (d);   // "finally"
 			throw;
@@ -173,8 +173,7 @@ static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* ca
 	#elif defined (_WIN32)
 		try {
 			char32 searchPath [1+kMelder_MAXPATH];
-			int len = str32len (path);
-			bool hasAsterisk = !! str32chr (path, U'*');
+			int len = str32len (path), hasAsterisk = str32chr (path, U'*') != NULL;
 			bool endsInSeparator = ( len != 0 && path [len - 1] == U'\\' );
 			autoStrings me = Thing_new (Strings);
 			my strings = NUMvector <char32 *> (1, 1000000);
@@ -195,15 +194,15 @@ static autoStrings Strings_createAsFileOrDirectoryList (const char32 *path /* ca
 				} while (FindNextFileW (searchHandle, & findData));
 				FindClose (searchHandle);
 			}
-			Strings_sort (me.get());
-			return me;
+			Strings_sort (me.peek());
+			return me.transfer();
 		} catch (MelderError) {
 			throw;
 		}
 	#endif
 }
 
-autoStrings Strings_createAsFileList (const char32 *path /* cattable */) {
+Strings Strings_createAsFileList (const char32 *path /* cattable */) {
 	try {
 		return Strings_createAsFileOrDirectoryList (path, Strings_createAsFileOrDirectoryList_TYPE_FILE);
 	} catch (MelderError) {
@@ -211,7 +210,7 @@ autoStrings Strings_createAsFileList (const char32 *path /* cattable */) {
 	}
 }
 
-autoStrings Strings_createAsDirectoryList (const char32 *path /* cattable */) {
+Strings Strings_createAsDirectoryList (const char32 *path /* cattable */) {
 	try {
 		return Strings_createAsFileOrDirectoryList (path, Strings_createAsFileOrDirectoryList_TYPE_DIRECTORY);
 	} catch (MelderError) {
@@ -219,14 +218,14 @@ autoStrings Strings_createAsDirectoryList (const char32 *path /* cattable */) {
 	}
 }
 
-autoStrings Strings_readFromRawTextFile (MelderFile file) {
+Strings Strings_readFromRawTextFile (MelderFile file) {
 	try {
 		autoMelderReadText text = MelderReadText_createFromFile (file);
 
 		/*
 		 * Count number of strings.
 		 */
-		int64 n = MelderReadText_getNumberOfLines (text.peek());
+		int64_t n = MelderReadText_getNumberOfLines (text.peek());
 
 		/*
 		 * Create.
@@ -242,7 +241,7 @@ autoStrings Strings_readFromRawTextFile (MelderFile file) {
 			char32 *line = MelderReadText_readLine (text.peek());
 			my strings [i] = Melder_dup (line);
 		}
-		return me;
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings not read from raw text file ", file, U".");
 	}
diff --git a/sys/StringsEditor.cpp b/sys/StringsEditor.cpp
index f019df3..bf7ab32 100644
--- a/sys/StringsEditor.cpp
+++ b/sys/StringsEditor.cpp
@@ -1,6 +1,6 @@
 /* StringsEditor.cpp
  *
- * Copyright (C) 2007-2011,2015,2016 Paul Boersma
+ * Copyright (C) 2007-2011,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,11 +23,13 @@
 
 Thing_implement (StringsEditor, Editor, 0);
 
-void structStringsEditor :: v_destroy () noexcept {
+void structStringsEditor :: v_destroy () {
 	StringsEditor_Parent :: v_destroy ();
 }
 
-static void menu_cb_help (StringsEditor /* me */, EDITOR_ARGS_DIRECT) {
+static void menu_cb_help (EDITOR_ARGS) {
+	EDITOR_IAM (StringsEditor);
+	(void) me;
 	Melder_help (U"StringsEditor");
 }
 
@@ -43,13 +45,15 @@ static void updateList (StringsEditor me) {
 		GuiList_insertItem (my list, strings -> strings [i], 0);
 }
 
-static void gui_button_cb_insert (StringsEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_insert (I, GuiButtonEvent event) {
+	(void) event;
+	iam (StringsEditor);
 	Strings strings = (Strings) my data;
 	/*
 	 * Find the first selected item.
 	 */
 	long numberOfSelected, *selected = GuiList_getSelectedPositions (my list, & numberOfSelected);
-	long position = selected ? selected [1] : strings -> numberOfStrings + 1;
+	long position = selected == NULL ? strings -> numberOfStrings + 1 : selected [1];
 	NUMvector_free (selected, 1);
 	char32 *text = GuiText_getString (my text);
 	/*
@@ -69,7 +73,9 @@ static void gui_button_cb_insert (StringsEditor me, GuiButtonEvent /* event */)
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_button_cb_append (StringsEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_append (I, GuiButtonEvent event) {
+	(void) event;
+	iam (StringsEditor);
 	Strings strings = (Strings) my data;
 	char32 *text = GuiText_getString (my text);
 	/*
@@ -89,7 +95,9 @@ static void gui_button_cb_append (StringsEditor me, GuiButtonEvent /* event */)
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_button_cb_remove (StringsEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_remove (I, GuiButtonEvent event) {
+	(void) event;
+	iam (StringsEditor);
 	long numberOfSelected, *selected = GuiList_getSelectedPositions (my list, & numberOfSelected);
 	for (long iselected = numberOfSelected; iselected >= 1; iselected --) {
 		Strings_remove ((Strings) my data, selected [iselected]);
@@ -99,7 +107,9 @@ static void gui_button_cb_remove (StringsEditor me, GuiButtonEvent /* event */)
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_button_cb_replace (StringsEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_replace (I, GuiButtonEvent event) {
+	(void) event;
+	iam (StringsEditor);
 	Strings strings = (Strings) my data;
 	long numberOfSelected, *selected = GuiList_getSelectedPositions (my list, & numberOfSelected);
 	char32 *text = GuiText_getString (my text);
@@ -111,15 +121,17 @@ static void gui_button_cb_replace (StringsEditor me, GuiButtonEvent /* event */)
 	Editor_broadcastDataChanged (me);
 }
 
-static void gui_list_cb_doubleClick (StringsEditor me, GuiList_DoubleClickEvent /* event */) {
+static void gui_list_cb_doubleClick (GuiObject widget, void *void_me, long item) {
+	(void) widget;
+	iam (StringsEditor);
 	Strings strings = (Strings) my data;
-	//if (event -> position <= strings -> numberOfStrings)   // FIXME
-	//	GuiText_setString (my text, strings -> strings [event -> position]);
+	if (item <= strings -> numberOfStrings)
+		GuiText_setString (my text, strings -> strings [item]);
 }
 
 void structStringsEditor :: v_createChildren () {
-	list = GuiList_create (d_windowForm, 1, 0, Machine_getMenuBarHeight (), -70, true, nullptr);
-	GuiList_setDoubleClickCallback (list, gui_list_cb_doubleClick, this);
+	list = GuiList_create (d_windowForm, 1, 0, Machine_getMenuBarHeight (), -70, true, NULL);
+	//GuiList_setDoubleClickCallback (list, gui_list_cb_doubleClick, this);
 	GuiThing_show (list);
 
 	text = GuiText_createShown (d_windowForm, 0, 0, -40 - Gui_TEXTFIELD_HEIGHT, -40, 0);
@@ -133,12 +145,12 @@ void structStringsEditor :: v_dataChanged () {
 	updateList (this);
 }
 
-autoStringsEditor StringsEditor_create (const char32 *title, Strings data) {
+StringsEditor StringsEditor_create (const char32 *title, Strings data) {
 	try {
 		autoStringsEditor me = Thing_new (StringsEditor);
-		Editor_init (me.get(), 20, 40, 600, 600, title, data);
-		updateList (me.get());
-		return me;
+		Editor_init (me.peek(), 20, 40, 600, 600, title, data);
+		updateList (me.peek());
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Strings window not created.");
 	}
diff --git a/sys/StringsEditor.h b/sys/StringsEditor.h
index 5fed57e..634b833 100644
--- a/sys/StringsEditor.h
+++ b/sys/StringsEditor.h
@@ -26,7 +26,7 @@ Thing_define (StringsEditor, Editor) {
 	GuiList list;
 	GuiText text;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_createChildren ()
 		override;
@@ -36,7 +36,7 @@ Thing_define (StringsEditor, Editor) {
 		override;
 };
 
-autoStringsEditor StringsEditor_create (const char32 *title, Strings data);
+StringsEditor StringsEditor_create (const char32 *title, Strings data);
 
 /* End of file StringsEditor.h */
 #endif
diff --git a/sys/Strings_.h b/sys/Strings_.h
index 7289815..620c5ca 100644
--- a/sys/Strings_.h
+++ b/sys/Strings_.h
@@ -22,10 +22,11 @@
 #include "Data.h"
 
 #include "Strings_def.h"
+oo_CLASS_CREATE (Strings, Data);
 
-autoStrings Strings_createAsFileList (const char32 *path /* cattable */);
-autoStrings Strings_createAsDirectoryList (const char32 *path /* cattable */);
-autoStrings Strings_readFromRawTextFile (MelderFile file);
+Strings Strings_createAsFileList (const char32 *path /* cattable */);
+Strings Strings_createAsDirectoryList (const char32 *path /* cattable */);
+Strings Strings_readFromRawTextFile (MelderFile file);
 void Strings_writeToRawTextFile (Strings me, MelderFile file);
 
 void Strings_randomize (Strings me);
diff --git a/sys/Strings_def.h b/sys/Strings_def.h
index 2cd3c93..1ecafae 100644
--- a/sys/Strings_def.h
+++ b/sys/Strings_def.h
@@ -19,7 +19,7 @@
 
 
 #define ooSTRUCT Strings
-oo_DEFINE_CLASS (Strings, Daata)
+oo_DEFINE_CLASS (Strings, Data)
 
 	oo_LONG (numberOfStrings)
 	oo_STRING_VECTOR (strings, numberOfStrings)
diff --git a/sys/TextEditor.cpp b/sys/TextEditor.cpp
index 5e6a0ad..35e6c2a 100644
--- a/sys/TextEditor.cpp
+++ b/sys/TextEditor.cpp
@@ -1,6 +1,6 @@
 /* TextEditor.cpp
  *
- * Copyright (C) 1997-2012,2013,2015,2016 Paul Boersma, 2010 Franz Brausse
+ * Copyright (C) 1997-2012,2013,2015 Paul Boersma, 2010 Franz Brausse
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,14 +32,18 @@ Thing_implement (TextEditor, Editor, 0);
 #include "prefs_copyToInstance.h"
 #include "TextEditor_prefs.h"
 
-static CollectionOf <structTextEditor> theReferencesToAllOpenTextEditors;
+static Collection theOpenTextEditors = NULL;
 
 /***** TextEditor methods *****/
 
-void structTextEditor :: v_destroy () noexcept {
-	our openDialog.reset();   // don't delay till delete
-	our saveDialog.reset();   // don't delay till delete
-	theReferencesToAllOpenTextEditors. undangleItem (this);
+void structTextEditor :: v_destroy () {
+	forget (our openDialog);
+	forget (our saveDialog);
+	forget (our printDialog);
+	forget (our findDialog);
+	if (theOpenTextEditors) {
+		Collection_undangleItem (theOpenTextEditors, this);
+	}
 	TextEditor_Parent :: v_destroy ();
 }
 
@@ -65,37 +69,39 @@ void structTextEditor :: v_nameChanged () {
 }
 
 static void openDocument (TextEditor me, MelderFile file) {
-	for (long ieditor = 1; ieditor <= theReferencesToAllOpenTextEditors.size; ieditor ++) {
-		TextEditor editor = theReferencesToAllOpenTextEditors.at [ieditor];
-		if (editor != me && MelderFile_equal (file, & editor -> file)) {
-			Editor_raise (editor);
-			Melder_appendError (U"Text file ", file, U" is already open.");
-			forget (me);   // don't forget me before Melder_appendError, because "file" is owned by one of my dialogs
-			Melder_flushError ();
-			return;
+	if (theOpenTextEditors) {
+		for (long ieditor = 1; ieditor <= theOpenTextEditors -> size; ieditor ++) {
+			TextEditor editor = (TextEditor) theOpenTextEditors -> item [ieditor];
+			if (editor != me && MelderFile_equal (file, & editor -> file)) {
+				Editor_raise (editor);
+				Melder_appendError (U"Text file ", file, U" is already open.");
+				forget (me);   // don't forget me before Melder_appendError, because "file" is owned by one of my dialogs
+				Melder_flushError ();
+				return;
+			}
 		}
 	}
 	autostring32 text = MelderFile_readText (file);
 	GuiText_setString (my textWidget, text.peek());
 	/*
 	 * GuiText_setString has invoked the changeCallback,
-	 * which has set `my dirty` to `true`. Fix this.
+	 * which has set 'my dirty' to TRUE. Fix this.
 	 */
-	my dirty = false;
+	my dirty = FALSE;
 	MelderFile_copy (file, & my file);
 	Thing_setName (me, Melder_fileToPath (file));
 }
 
 static void newDocument (TextEditor me) {
-	GuiText_setString (my textWidget, U"");   // implicitly sets my dirty to `true`
-	my dirty = false;
+	GuiText_setString (my textWidget, U"");   // implicitly sets my dirty to TRUE
+	my dirty = FALSE;
 	if (my v_fileBased ()) Thing_setName (me, U"");
 }
 
 static void saveDocument (TextEditor me, MelderFile file) {
 	autostring32 text = GuiText_getString (my textWidget);
 	MelderFile_writeText (file, text.peek(), Melder_getOutputEncoding ());
-	my dirty = false;
+	my dirty = FALSE;
 	MelderFile_copy (file, & my file);
 	if (my v_fileBased ()) Thing_setName (me, Melder_fileToPath (file));
 }
@@ -105,37 +111,40 @@ static void closeDocument (TextEditor me) {
 }
 
 static void cb_open_ok (UiForm sendingForm, int /* narg */, Stackel /* args */, const char32 * /* sendingString */,
-	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, void *void_me)
+	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, I)
 {
 	iam (TextEditor);
 	MelderFile file = UiFile_getFile (sendingForm);
 	openDocument (me, file);
 }
 
-static void cb_showOpen (EditorCommand cmd) {
+static void cb_showOpen (EditorCommand cmd, UiForm /* sendingForm */, const char32 * /* sendingString */, Interpreter /* interpreter */) {
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	if (! my openDialog)
-		my openDialog = autoUiForm (UiInfile_create (my d_windowForm, U"Open", cb_open_ok, me, nullptr, nullptr, false));
-	UiInfile_do (my openDialog.get());
+		my openDialog = UiInfile_create (my d_windowForm, U"Open", cb_open_ok, me, NULL, NULL, false);
+	UiInfile_do (my openDialog);
 }
 
 static void cb_saveAs_ok (UiForm sendingForm, int /* narg */, Stackel /* args */, const char32 * /* sendingString */,
-	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, void *void_me)
+	Interpreter /* interpreter */, const char32 * /* invokingButtonTitle */, bool /* modified */, I)
 {
 	iam (TextEditor);
 	MelderFile file = UiFile_getFile (sendingForm);
 	saveDocument (me, file);
 }
 
-static void menu_cb_saveAs (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_saveAs (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	if (! my saveDialog)
-		my saveDialog = autoUiForm (UiOutfile_create (my d_windowForm, U"Save", cb_saveAs_ok, me, nullptr, nullptr));
+		my saveDialog = UiOutfile_create (my d_windowForm, U"Save", cb_saveAs_ok, me, NULL, NULL);
 	char32 defaultName [300];
 	Melder_sprint (defaultName,300, ! my v_fileBased () ? U"info.txt" : my name [0] ? MelderFile_name (& my file) : U"");
-	UiOutfile_do (my saveDialog.get(), defaultName);
+	UiOutfile_do (my saveDialog, defaultName);
 }
 
-static void gui_button_cb_saveAndOpen (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_saveAndOpen (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyOpenDialog);
 	if (my name [0]) {
@@ -145,32 +154,37 @@ static void gui_button_cb_saveAndOpen (EditorCommand cmd, GuiButtonEvent /* even
 			Melder_flushError ();
 			return;
 		}
-		cb_showOpen (cmd);
+		cb_showOpen (cmd, NULL, NULL, NULL);
 	} else {
-		menu_cb_saveAs (me, cmd, nullptr, 0, nullptr, nullptr, nullptr);
+		menu_cb_saveAs (me, cmd, NULL, 0, NULL, NULL, NULL);
 	}
 }
 
-static void gui_button_cb_cancelOpen (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancelOpen (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyOpenDialog);
 }
 
-static void gui_button_cb_discardAndOpen (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_discardAndOpen (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyOpenDialog);
-	cb_showOpen (cmd);
+	cb_showOpen (cmd, NULL, NULL, NULL);
 }
 
-static void menu_cb_open (TextEditor me, EDITOR_ARGS_CMD) {
+static void menu_cb_open (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	if (my dirty) {
-		if (! my dirtyOpenDialog) {
+		if (my dirtyOpenDialog == NULL) {
 			int buttonWidth = 120, buttonSpacing = 20;
 			my dirtyOpenDialog = GuiDialog_create (my d_windowForm,
 				150, 70,
 				Gui_LEFT_DIALOG_SPACING + 3 * buttonWidth + 2 * buttonSpacing + Gui_RIGHT_DIALOG_SPACING,
 				Gui_TOP_DIALOG_SPACING + Gui_TEXTFIELD_HEIGHT + Gui_VERTICAL_DIALOG_SPACING_SAME + 2 * Gui_BOTTOM_DIALOG_SPACING + Gui_PUSHBUTTON_HEIGHT,
-				U"Text changed", nullptr, nullptr, GuiDialog_MODAL);
+				U"Text changed", NULL, NULL, GuiDialog_MODAL);
 			GuiLabel_createShown (my dirtyOpenDialog,
 				Gui_LEFT_DIALOG_SPACING, - Gui_RIGHT_DIALOG_SPACING,
 				Gui_TOP_DIALOG_SPACING, Gui_TOP_DIALOG_SPACING + Gui_LABEL_HEIGHT,
@@ -190,11 +204,13 @@ static void menu_cb_open (TextEditor me, EDITOR_ARGS_CMD) {
 		}
 		GuiThing_show (my dirtyOpenDialog);
 	} else {
-		cb_showOpen (cmd);
+		cb_showOpen (cmd, sendingForm, sendingString, interpreter);
 	}
 }
 
-static void gui_button_cb_saveAndNew (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_saveAndNew (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyNewDialog);
 	if (my name [0]) {
@@ -206,29 +222,34 @@ static void gui_button_cb_saveAndNew (EditorCommand cmd, GuiButtonEvent /* event
 		}
 		newDocument (me);
 	} else {
-		menu_cb_saveAs (me, cmd, nullptr, 0, nullptr, nullptr, nullptr);
+		menu_cb_saveAs (me, cmd, NULL, 0, NULL, NULL, NULL);
 	}
 }
 
-static void gui_button_cb_cancelNew (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancelNew (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyNewDialog);
 }
 
-static void gui_button_cb_discardAndNew (EditorCommand cmd, GuiButtonEvent /* event */) {
+static void gui_button_cb_discardAndNew (I, GuiButtonEvent event) {
+	(void) event;
+	EditorCommand cmd = (EditorCommand) void_me;
 	TextEditor me = (TextEditor) cmd -> d_editor;
 	GuiThing_hide (my dirtyNewDialog);
 	newDocument (me);
 }
 
-static void menu_cb_new (TextEditor me, EDITOR_ARGS_CMD) {
+static void menu_cb_new (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	if (my v_fileBased () && my dirty) {
 		if (! my dirtyNewDialog) {
 			int buttonWidth = 120, buttonSpacing = 20;
 			my dirtyNewDialog = GuiDialog_create (my d_windowForm,
 				150, 70, Gui_LEFT_DIALOG_SPACING + 3 * buttonWidth + 2 * buttonSpacing + Gui_RIGHT_DIALOG_SPACING,
 					Gui_TOP_DIALOG_SPACING + Gui_TEXTFIELD_HEIGHT + Gui_VERTICAL_DIALOG_SPACING_SAME + 2 * Gui_BOTTOM_DIALOG_SPACING + Gui_PUSHBUTTON_HEIGHT,
-				U"Text changed", nullptr, nullptr, GuiDialog_MODAL);
+				U"Text changed", NULL, NULL, GuiDialog_MODAL);
 			GuiLabel_createShown (my dirtyNewDialog,
 				Gui_LEFT_DIALOG_SPACING, - Gui_RIGHT_DIALOG_SPACING,
 				Gui_TOP_DIALOG_SPACING, Gui_TOP_DIALOG_SPACING + Gui_LABEL_HEIGHT,
@@ -252,11 +273,13 @@ static void menu_cb_new (TextEditor me, EDITOR_ARGS_CMD) {
 	}
 }
 
-static void menu_cb_clear (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_clear (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	my v_clear ();
 }
 
-static void menu_cb_save (TextEditor me, EDITOR_ARGS_CMD) {
+static void menu_cb_save (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	if (my name [0]) {
 		try {
 			saveDocument (me, & my file);
@@ -265,11 +288,12 @@ static void menu_cb_save (TextEditor me, EDITOR_ARGS_CMD) {
 			return;
 		}
 	} else {
-		menu_cb_saveAs (me, cmd, nullptr, 0, nullptr, nullptr, nullptr);
+		menu_cb_saveAs (me, cmd, NULL, 0, NULL, NULL, NULL);
 	}
 }
 
-static void menu_cb_reopen (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_reopen (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	if (my name [0]) {
 		try {
 			openDocument (me, & my file);
@@ -282,7 +306,9 @@ static void menu_cb_reopen (TextEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void gui_button_cb_saveAndClose (TextEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_saveAndClose (I, GuiButtonEvent event) {
+	(void) event;
+	iam (TextEditor);
 	GuiThing_hide (my dirtyCloseDialog);
 	if (my name [0]) {
 		try {
@@ -293,15 +319,19 @@ static void gui_button_cb_saveAndClose (TextEditor me, GuiButtonEvent /* event *
 		}
 		closeDocument (me);
 	} else {
-		menu_cb_saveAs (me, Editor_getMenuCommand (me, U"File", U"Save as..."), nullptr, 0, nullptr, nullptr, nullptr);
+		menu_cb_saveAs (me, Editor_getMenuCommand (me, U"File", U"Save as..."), NULL, 0, NULL, NULL, NULL);
 	}
 }
 
-static void gui_button_cb_cancelClose (TextEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancelClose (I, GuiButtonEvent event) {
+	(void) event;
+	iam (TextEditor);
 	GuiThing_hide (my dirtyCloseDialog);
 }
 
-static void gui_button_cb_discardAndClose (TextEditor me, GuiButtonEvent /* event */) {
+static void gui_button_cb_discardAndClose (I, GuiButtonEvent event) {
+	(void) event;
+	iam (TextEditor);
 	GuiThing_hide (my dirtyCloseDialog);
 	closeDocument (me);
 }
@@ -313,7 +343,7 @@ void structTextEditor :: v_goAway () {
 			dirtyCloseDialog = GuiDialog_create (d_windowForm,
 				150, 70, Gui_LEFT_DIALOG_SPACING + 3 * buttonWidth + 2 * buttonSpacing + Gui_RIGHT_DIALOG_SPACING,
 					Gui_TOP_DIALOG_SPACING + Gui_TEXTFIELD_HEIGHT + Gui_VERTICAL_DIALOG_SPACING_SAME + 2 * Gui_BOTTOM_DIALOG_SPACING + Gui_PUSHBUTTON_HEIGHT,
-				U"Text changed", nullptr, nullptr, GuiDialog_MODAL);
+				U"Text changed", NULL, NULL, GuiDialog_MODAL);
 			GuiLabel_createShown (dirtyCloseDialog,
 				Gui_LEFT_DIALOG_SPACING, - Gui_RIGHT_DIALOG_SPACING,
 				Gui_TOP_DIALOG_SPACING, Gui_TOP_DIALOG_SPACING + Gui_LABEL_HEIGHT,
@@ -337,27 +367,33 @@ void structTextEditor :: v_goAway () {
 	}
 }
 
-static void menu_cb_undo (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_undo (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_undo (my textWidget);
 }
 
-static void menu_cb_redo (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_redo (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_redo (my textWidget);
 }
 
-static void menu_cb_cut (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_cut (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_cut (my textWidget);  // use ((XmAnyCallbackStruct *) call) -> event -> xbutton. time
 }
 
-static void menu_cb_copy (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_copy (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_copy (my textWidget);
 }
 
-static void menu_cb_paste (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_paste (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_paste (my textWidget);
 }
 
-static void menu_cb_erase (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_erase (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	GuiText_remove (my textWidget);
 }
 
@@ -389,13 +425,13 @@ static bool getSelectedLines (TextEditor me, long *firstLine, long *lastLine) {
 	return true;
 }
 
-static char32 *theFindString = nullptr, *theReplaceString = nullptr;
+static char32 *theFindString = NULL, *theReplaceString = NULL;
 static void do_find (TextEditor me) {
-	if (! theFindString) return;   // e.g. when the user does "Find again" before having done any "Find"
+	if (theFindString == NULL) return;   // e.g. when the user does "Find again" before having done any "Find"
 	long left, right;
 	autostring32 text = GuiText_getStringAndSelectionPosition (my textWidget, & left, & right);
 	char32 *location = str32str (& text [right], theFindString);
-	if (location) {
+	if (location != NULL) {
 		long index = location - text.peek();
 		GuiText_setSelection (my textWidget, index, index + str32len (theFindString));
 		GuiText_scrollToSelection (my textWidget);
@@ -405,7 +441,7 @@ static void do_find (TextEditor me) {
 	} else {
 		/* Try from the start of the document. */
 		location = str32str (text.peek(), theFindString);
-		if (location) {
+		if (location != NULL) {
 			long index = location - text.peek();
 			GuiText_setSelection (my textWidget, index, index + str32len (theFindString));
 			GuiText_scrollToSelection (my textWidget);
@@ -419,7 +455,7 @@ static void do_find (TextEditor me) {
 }
 
 static void do_replace (TextEditor me) {
-	if (! theReplaceString) return;   // e.g. when the user does "Replace again" before having done any "Replace"
+	if (theReplaceString == NULL) return;   // e.g. when the user does "Replace again" before having done any "Replace"
 	autostring32 selection = GuiText_getSelection (my textWidget);
 	if (! Melder_equ (selection.peek(), theFindString)) {
 		do_find (me);
@@ -435,12 +471,13 @@ static void do_replace (TextEditor me) {
 	#endif
 }
 
-static void menu_cb_find (TextEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_find (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	EDITOR_FORM (U"Find", 0)
 		LABEL (U"", U"Find:")
 		TEXTFIELD (U"findString", U"")
 	EDITOR_OK
-		if (theFindString) SET_STRING (U"findString", theFindString);
+		if (theFindString != NULL) SET_STRING (U"findString", theFindString);
 	EDITOR_DO
 		Melder_free (theFindString);
 		theFindString = Melder_dup_f (GET_STRING (U"findString"));
@@ -448,11 +485,13 @@ static void menu_cb_find (TextEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_findAgain (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_findAgain (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	do_find (me);
 }
 
-static void menu_cb_replace (TextEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_replace (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	EDITOR_FORM (U"Find", 0)
 		LABEL (U"", U"This is a \"slow\" find-and-replace method;")
 		LABEL (U"", U"if the selected text is identical to the Find string,")
@@ -464,8 +503,8 @@ static void menu_cb_replace (TextEditor me, EDITOR_ARGS_FORM) {
 		LABEL (U"", U"Replace with:")
 		TEXTFIELD (U"replaceString", U"")
 	EDITOR_OK
-		if (theFindString) SET_STRING (U"findString", theFindString);
-		if (theReplaceString) SET_STRING (U"replaceString", theReplaceString);
+		if (theFindString != NULL) SET_STRING (U"findString", theFindString);
+		if (theReplaceString != NULL) SET_STRING (U"replaceString", theReplaceString);
 	EDITOR_DO
 		Melder_free (theFindString);
 		theFindString = Melder_dup (GET_STRING (U"findString"));
@@ -475,11 +514,13 @@ static void menu_cb_replace (TextEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_replaceAgain (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_replaceAgain (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	do_replace (me);
 }
 
-static void menu_cb_whereAmI (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_whereAmI (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	long numberOfLinesLeft, numberOfLinesRight;
 	if (! getSelectedLines (me, & numberOfLinesLeft, & numberOfLinesRight)) {
 		Melder_information (U"The cursor is on line ", numberOfLinesLeft, U".");
@@ -490,7 +531,8 @@ static void menu_cb_whereAmI (TextEditor me, EDITOR_ARGS_DIRECT) {
 	}
 }
 
-static void menu_cb_goToLine (TextEditor me, EDITOR_ARGS_FORM) {
+static void menu_cb_goToLine (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	EDITOR_FORM (U"Go to line", 0)
 		NATURAL (U"Line", U"1")
 	EDITOR_OK
@@ -525,7 +567,8 @@ static void menu_cb_goToLine (TextEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void menu_cb_convertToCString (TextEditor me, EDITOR_ARGS_DIRECT) {
+static void menu_cb_convertToCString (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
 	autostring32 text = GuiText_getString (my textWidget);
 	char32 buffer [2] = U" ";
 	const char32 *hex [16] = { U"0", U"1", U"2", U"3", U"4", U"5", U"6", U"7", U"8", U"9", U"A", U"B", U"C", U"D", U"E", U"F" };
@@ -572,13 +615,14 @@ static void setFontSize (TextEditor me, int fontSize) {
 	updateSizeMenu (me);
 }
 
-static void menu_cb_10 (TextEditor me, EDITOR_ARGS_DIRECT) { setFontSize (me, 10); }
-static void menu_cb_12 (TextEditor me, EDITOR_ARGS_DIRECT) { setFontSize (me, 12); }
-static void menu_cb_14 (TextEditor me, EDITOR_ARGS_DIRECT) { setFontSize (me, 14); }
-static void menu_cb_18 (TextEditor me, EDITOR_ARGS_DIRECT) { setFontSize (me, 18); }
-static void menu_cb_24 (TextEditor me, EDITOR_ARGS_DIRECT) { setFontSize (me, 24); }
-static void menu_cb_fontSize (TextEditor me, EDITOR_ARGS_FORM) {
-	EDITOR_FORM (U"Text window: Font size", nullptr)
+static void menu_cb_10 (EDITOR_ARGS) { EDITOR_IAM (TextEditor); setFontSize (me, 10); }
+static void menu_cb_12 (EDITOR_ARGS) { EDITOR_IAM (TextEditor); setFontSize (me, 12); }
+static void menu_cb_14 (EDITOR_ARGS) { EDITOR_IAM (TextEditor); setFontSize (me, 14); }
+static void menu_cb_18 (EDITOR_ARGS) { EDITOR_IAM (TextEditor); setFontSize (me, 18); }
+static void menu_cb_24 (EDITOR_ARGS) { EDITOR_IAM (TextEditor); setFontSize (me, 24); }
+static void menu_cb_fontSize (EDITOR_ARGS) {
+	EDITOR_IAM (TextEditor);
+	EDITOR_FORM (U"Text window: Font size", 0)
 		NATURAL (U"Font size (points)", U"12")
 	EDITOR_OK
 		SET_INTEGER (U"Font size", (long) my p_fontSize);
@@ -587,21 +631,22 @@ static void menu_cb_fontSize (TextEditor me, EDITOR_ARGS_FORM) {
 	EDITOR_END
 }
 
-static void gui_text_cb_changed (TextEditor me, GuiTextEvent /* event */) {
+static void gui_text_cb_change (I, GuiTextEvent event) {
+	(void) event;
+	iam (TextEditor);
 	if (! my dirty) {
-		my dirty = true;
+		my dirty = TRUE;
 		my v_nameChanged ();
 	}
 }
 
 void structTextEditor :: v_createChildren () {
 	textWidget = GuiText_createShown (d_windowForm, 0, 0, Machine_getMenuBarHeight (), 0, GuiText_SCROLLED);
-	GuiText_setChangedCallback (textWidget, gui_text_cb_changed, this);
+	GuiText_setChangeCallback (textWidget, gui_text_cb_change, this);
 }
 
 void structTextEditor :: v_createMenus () {
 	TextEditor_Parent :: v_createMenus ();
-
 	if (v_fileBased ()) {
 		Editor_addCommand (this, U"File", U"New", 'N', menu_cb_new);
 		Editor_addCommand (this, U"File", U"Open...", 'O', menu_cb_open);
@@ -609,66 +654,71 @@ void structTextEditor :: v_createMenus () {
 	} else {
 		Editor_addCommand (this, U"File", U"Clear", 'N', menu_cb_clear);
 	}
-	Editor_addCommand (this, U"File", U"-- save --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- save --", 0, NULL);
 	if (v_fileBased ()) {
 		Editor_addCommand (this, U"File", U"Save", 'S', menu_cb_save);
 		Editor_addCommand (this, U"File", U"Save as...", 0, menu_cb_saveAs);
 	} else {
 		Editor_addCommand (this, U"File", U"Save as...", 'S', menu_cb_saveAs);
 	}
-	Editor_addCommand (this, U"File", U"-- close --", 0, nullptr);
+	Editor_addCommand (this, U"File", U"-- close --", 0, NULL);
 	GuiText_setUndoItem (textWidget, Editor_addCommand (this, U"Edit", U"Undo", 'Z', menu_cb_undo));
 	GuiText_setRedoItem (textWidget, Editor_addCommand (this, U"Edit", U"Redo", 'Y', menu_cb_redo));
-	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, nullptr);
+	Editor_addCommand (this, U"Edit", U"-- cut copy paste --", 0, NULL);
 	Editor_addCommand (this, U"Edit", U"Cut", 'X', menu_cb_cut);
 	Editor_addCommand (this, U"Edit", U"Copy", 'C', menu_cb_copy);
 	Editor_addCommand (this, U"Edit", U"Paste", 'V', menu_cb_paste);
 	Editor_addCommand (this, U"Edit", U"Erase", 0, menu_cb_erase);
-
 	Editor_addMenu (this, U"Search", 0);
 	Editor_addCommand (this, U"Search", U"Find...", 'F', menu_cb_find);
 	Editor_addCommand (this, U"Search", U"Find again", 'G', menu_cb_findAgain);
 	Editor_addCommand (this, U"Search", U"Replace...", GuiMenu_SHIFT + 'F', menu_cb_replace);
 	Editor_addCommand (this, U"Search", U"Replace again", GuiMenu_SHIFT + 'G', menu_cb_replaceAgain);
-	Editor_addCommand (this, U"Search", U"-- line --", 0, nullptr);
+	Editor_addCommand (this, U"Search", U"-- line --", 0, NULL);
 	Editor_addCommand (this, U"Search", U"Where am I?", 0, menu_cb_whereAmI);
 	Editor_addCommand (this, U"Search", U"Go to line...", 'L', menu_cb_goToLine);
-
 	Editor_addMenu (this, U"Convert", 0);
 	Editor_addCommand (this, U"Convert", U"Convert to C string", 0, menu_cb_convertToCString);
-
-	Editor_addMenu (this, U"Font", 0);
-	Editor_addCommand (this, U"Font", U"Font size...", 0, menu_cb_fontSize);
-	fontSizeButton_10 = Editor_addCommand (this, U"Font", U"10", GuiMenu_CHECKBUTTON, menu_cb_10);
-	fontSizeButton_12 = Editor_addCommand (this, U"Font", U"12", GuiMenu_CHECKBUTTON, menu_cb_12);
-	fontSizeButton_14 = Editor_addCommand (this, U"Font", U"14", GuiMenu_CHECKBUTTON, menu_cb_14);
-	fontSizeButton_18 = Editor_addCommand (this, U"Font", U"18", GuiMenu_CHECKBUTTON, menu_cb_18);
-	fontSizeButton_24 = Editor_addCommand (this, U"Font", U"24", GuiMenu_CHECKBUTTON, menu_cb_24);
+	#if defined (macintosh) || defined (UNIX) || defined (_WIN32)
+		Editor_addMenu (this, U"Font", 0);
+		Editor_addCommand (this, U"Font", U"Font size...", 0, menu_cb_fontSize);
+		fontSizeButton_10 = Editor_addCommand (this, U"Font", U"10", GuiMenu_CHECKBUTTON, menu_cb_10);
+		fontSizeButton_12 = Editor_addCommand (this, U"Font", U"12", GuiMenu_CHECKBUTTON, menu_cb_12);
+		fontSizeButton_14 = Editor_addCommand (this, U"Font", U"14", GuiMenu_CHECKBUTTON, menu_cb_14);
+		fontSizeButton_18 = Editor_addCommand (this, U"Font", U"18", GuiMenu_CHECKBUTTON, menu_cb_18);
+		fontSizeButton_24 = Editor_addCommand (this, U"Font", U"24", GuiMenu_CHECKBUTTON, menu_cb_24);
+	#endif
 }
 
 void TextEditor_init (TextEditor me, const char32 *initialText) {
-	Editor_init (me, 0, 0, 600, 400, U"", nullptr);
+	Editor_init (me, 0, 0, 600, 400, U"", NULL);
 	setFontSize (me, my p_fontSize);
 	if (initialText) {
 		GuiText_setString (my textWidget, initialText);
 		my dirty = false;   // was set to true in valueChanged callback
 		Thing_setName (me, U"");
 	}
-	theReferencesToAllOpenTextEditors. addItem_ref (me);
+	if (theOpenTextEditors == NULL) {
+		theOpenTextEditors = Collection_create (classTextEditor, 100);
+		Collection_dontOwnItems (theOpenTextEditors);
+	}
+	if (theOpenTextEditors != NULL) {
+		Collection_addItem (theOpenTextEditors, me);
+	}
 }
 
-autoTextEditor TextEditor_create (const char32 *initialText) {
+TextEditor TextEditor_create (const char32 *initialText) {
 	try {
 		autoTextEditor me = Thing_new (TextEditor);
-		TextEditor_init (me.get(), initialText);
-		return me;
+		TextEditor_init (me.peek(), initialText);
+		return me.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Text window not created.");
 	}
 }
 
 void TextEditor_showOpen (TextEditor me) {
-	cb_showOpen (Editor_getMenuCommand (me, U"File", U"Open..."));
+	cb_showOpen (Editor_getMenuCommand (me, U"File", U"Open..."), NULL, NULL, NULL);
 }
 
 /* End of file TextEditor.cpp */
diff --git a/sys/TextEditor.h b/sys/TextEditor.h
index 27c51eb..a45c835 100644
--- a/sys/TextEditor.h
+++ b/sys/TextEditor.h
@@ -24,12 +24,12 @@
 Thing_define (TextEditor, Editor) {
 	structMelderFile file;
 	GuiText textWidget;
-	autoUiForm openDialog, saveDialog;
-	bool dirty;
+	UiForm openDialog, saveDialog, printDialog, findDialog;
+	int dirty;
 	GuiDialog dirtyNewDialog, dirtyOpenDialog, dirtyCloseDialog;
 	GuiMenuItem fontSizeButton_10, fontSizeButton_12, fontSizeButton_14, fontSizeButton_18, fontSizeButton_24;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 	void v_nameChanged ()
 		override;
@@ -51,8 +51,8 @@ Thing_define (TextEditor, Editor) {
 void TextEditor_init (TextEditor me,
 	const char32 *initialText
 );
-autoTextEditor TextEditor_create (
-	const char32 *initialText   // may be null
+TextEditor TextEditor_create (
+	const char32 *initialText   // may be NULL
 );
 
 void TextEditor_showOpen (TextEditor me);
diff --git a/sys/Thing.cpp b/sys/Thing.cpp
index 2c4d0cb..786e2d8 100644
--- a/sys/Thing.cpp
+++ b/sys/Thing.cpp
@@ -21,13 +21,13 @@
 #include <time.h>
 #include "Thing.h"
 
-long theTotalNumberOfThings;
+static long theTotalNumberOfThings;
 
 void structThing :: v_info ()
 {
 	MelderInfo_writeLine (U"Object type: ", Thing_className (this));
 	MelderInfo_writeLine (U"Object name: ", this -> name ? this -> name : U"<no name>");
-	time_t today = time (nullptr);
+	time_t today = time (NULL);
 	MelderInfo_writeLine (U"Date: ", Melder_peek8to32 (ctime (& today)));   // includes a newline
 }
 
@@ -36,24 +36,24 @@ void structThing :: v_info ()
  */
 struct structClassInfo theClassInfo_Thing = {
 	U"Thing",
-	nullptr,   // no parent class
+	NULL,      // no parent class
 	sizeof (class structThing),
-	nullptr,   // no _new function (not needed, because Thing is never instantiated)
+	NULL,      // no _new function (not needed, because Thing is never instantiated)
 	0,         // version
 	0,         // sequentialUniqueIdOfReadableClass
-	nullptr    // dummyObject
+	NULL       // dummyObject
 };
 ClassInfo classThing = & theClassInfo_Thing;
 
 const char32 * Thing_className (Thing me) { return my classInfo -> className; }
 
-autoThing Thing_newFromClass (ClassInfo classInfo) {
-	autoThing me (classInfo -> _new ());
+Thing Thing_newFromClass (ClassInfo classInfo) {
+	Thing me = classInfo -> _new ();
 	trace (U"created ", classInfo -> className);
 	theTotalNumberOfThings += 1;
 	my classInfo = classInfo;
-	Melder_assert (my name == nullptr);   // confirm that _new called calloc, so that we see null pointers
-	if (Melder_debug == 40) Melder_casual (U"created ", classInfo -> className, U" (", Melder_pointer (classInfo), U", ", me.get(), U")");
+	Melder_assert (my name == NULL);   // confirm that _new called calloc
+	if (Melder_debug == 40) Melder_casual (U"created ", classInfo -> className, U" (", Melder_pointer (classInfo), U", ", me, U")");
 	return me;
 }
 
@@ -67,17 +67,17 @@ static void _Thing_addOneReadableClass (ClassInfo readableClass) {
 }
 void Thing_recognizeClassesByName (ClassInfo readableClass, ...) {
 	va_list arg;
-	if (! readableClass) return;
+	if (readableClass == NULL) return;
 	va_start (arg, readableClass);
 	_Thing_addOneReadableClass (readableClass);
 	ClassInfo klas;
-	while ((klas = va_arg (arg, ClassInfo)) != nullptr) {
+	while ((klas = va_arg (arg, ClassInfo)) != NULL) {
 		_Thing_addOneReadableClass (klas);
 	}
 	va_end (arg);
 }
 
-long Thing_listReadableClasses () {
+long Thing_listReadableClasses (void) {
 	Melder_clearInfo ();
 	MelderInfo_open ();
 	for (long iclass = 1; iclass <= theNumberOfReadableClasses; iclass ++) {
@@ -133,7 +133,7 @@ ClassInfo Thing_classFromClassName (const char32 *klas, int *p_formatVersion) {
 	Melder_throw (U"Class \"", buffer, U"\" not recognized.");
 }
 
-autoThing Thing_newFromClassName (const char32 *className, int *p_formatVersion) {
+Thing Thing_newFromClassName (const char32 *className, int *p_formatVersion) {
 	try {
 		ClassInfo classInfo = Thing_classFromClassName (className, p_formatVersion);
 		return Thing_newFromClass (classInfo);
@@ -143,19 +143,17 @@ autoThing Thing_newFromClassName (const char32 *className, int *p_formatVersion)
 }
 
 Thing _Thing_dummyObject (ClassInfo classInfo) {
-	if (! classInfo -> dummyObject) {
-		classInfo -> dummyObject = classInfo -> _new ();
+	if (classInfo -> dummyObject == NULL) {
+		classInfo -> dummyObject = (Thing) classInfo -> _new ();
 	}
-	Melder_assert (classInfo -> dummyObject);
+	Melder_assert (classInfo -> dummyObject != NULL);
 	return classInfo -> dummyObject;
 }
 
 void _Thing_forget_nozero (Thing me) {
 	if (! me) return;
 	if (Melder_debug == 40) Melder_casual (U"destroying ", my classInfo -> className);
-	//Melder_casual (U"_Thing_forget_nozero before");
 	my v_destroy ();
-	//Melder_casual (U"_Thing_forget_nozero after");
 	theTotalNumberOfThings -= 1;
 }
 
@@ -170,25 +168,25 @@ void _Thing_forget (Thing me) {
 }
 
 bool Thing_isSubclass (ClassInfo klas, ClassInfo ancestor) {
-	while (klas != ancestor && klas) klas = klas -> parent;
-	return !! klas;
+	while (klas != ancestor && klas != NULL) klas = klas -> parent;
+	return klas != NULL;
 }
 
 bool Thing_isa (Thing me, ClassInfo klas) {
-	if (! me) Melder_fatal (U"(Thing_isa:) Found null object.");
+	if (! me) Melder_fatal (U"(Thing_isa:) Found NULL object.");
 	return Thing_isSubclass (my classInfo, klas);
 }
 
 void * _Thing_check (Thing me, ClassInfo klas, const char *fileName, int line) {
 	if (! me)
 		Melder_fatal (U"(_Thing_check:)"
-			U" null object passed to a function\n"
+			U" NULL object passed to a function\n"
 			U"in file ", Melder_peek8to32 (fileName),
 			U" at line ", line,
 			U"."
 		);
 	ClassInfo classInfo = my classInfo;
-	while (classInfo != klas && classInfo) classInfo = classInfo -> parent;
+	while (classInfo != klas && classInfo != NULL) classInfo = classInfo -> parent;
 	if (! classInfo)
 		Melder_fatal (U"(_Thing_check:)"
 			U" Object of wrong class (", my classInfo -> className,
@@ -201,7 +199,7 @@ void * _Thing_check (Thing me, ClassInfo klas, const char *fileName, int line) {
 }
 
 void Thing_infoWithIdAndFile (Thing me, unsigned long id, MelderFile file) {
-	//Melder_assert (me);
+	//Melder_assert (me != NULL);
 	Melder_clearInfo ();
 	MelderInfo_open ();
 	if (id != 0) MelderInfo_writeLine (U"Object id: ", id);
@@ -211,7 +209,7 @@ void Thing_infoWithIdAndFile (Thing me, unsigned long id, MelderFile file) {
 }
 
 void Thing_info (Thing me) {
-	Thing_infoWithIdAndFile (me, 0, nullptr);
+	Thing_infoWithIdAndFile (me, 0, NULL);
 }
 
 char32 * Thing_getName (Thing me) { return my name; }
@@ -241,6 +239,8 @@ void Thing_setName (Thing me, const char32 *name /* cattable */) {
 	my v_nameChanged ();
 }
 
+long Thing_getTotalNumberOfThings (void) { return theTotalNumberOfThings; }
+
 void Thing_swap (Thing me, Thing thee) {
 	Melder_assert (my classInfo == thy classInfo);
 	int n = my classInfo -> size;
diff --git a/sys/Thing.h b/sys/Thing.h
index a96f70b..24fb67d 100644
--- a/sys/Thing.h
+++ b/sys/Thing.h
@@ -2,7 +2,7 @@
 #define _Thing_h_
 /* Thing.h
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@
 
 /* Anyone who uses Thing can also use: */
 	/* Arrays with any bounds and 1 or 2 indices, math, and numerics: */
-		#include "../num/NUM.h"   /* Including math.h */
+		#include "NUM.h"   /* Including math.h */
 	/* The messaging mechanism: */
 		#include "melder.h"   /* Including stdio.h string.h etc. */
 	/* The macros for struct and class definitions: */
@@ -31,20 +31,23 @@
 	/* The input/output mechanism: */
 		#include "abcio.h"
 
-//#include <string>
+/* Public. */
 
-#define _Thing_auto_DEBUG  0
+typedef void *Any;   /* Prevent compile-time type checking. */
 
 /*
-	Use the macro 'I' for an object in the formal parameter lists
+	Use the macros 'I' and 'thou' for objects in the formal parameter lists
 	(if the explicit type cannot be used).
-	Use the macro 'iam'
+	Use the macros 'iam' and 'thouart'
 	as the first declaration in a function definition.
-	After this, the object 'me' has the right class (for the compiler),
-	so that you can use the macro 'my' to refer to members.
+	After this, the object 'me' or 'thee' has the right class (for the compiler),
+	so that you can use the macros 'my' and 'thy' to refer to members.
 	Example: int Person_getAge (I) { iam (Person); return my age; }
 */
+#define I  Any void_me
+#define thou  Any void_thee
 #define iam(klas)  klas me = (klas) void_me
+#define thouart(klas)  klas thee = (klas) void_thee
 #define my  me ->
 #define thy  thee ->
 #define his  him ->
@@ -73,17 +76,17 @@ struct structClassInfo {
 #define Thing_declare(klas) \
 	typedef struct struct##klas *klas; \
 	typedef _Thing_auto <struct##klas> auto##klas; \
-	extern struct structClassInfo theClassInfo_##klas; \
 	extern ClassInfo class##klas
 
 #define Thing_define(klas,parentKlas) \
 	Thing_declare (klas); \
 	typedef struct##parentKlas klas##_Parent; \
+	extern struct structClassInfo theClassInfo_##klas; \
 	struct struct##klas : public struct##parentKlas
 
 #define Thing_implement(klas,parentKlas,version) \
 	static Thing _##klas##_new () { return new struct##klas; } \
-	struct structClassInfo theClassInfo_##klas = { U"" #klas, & theClassInfo_##parentKlas, sizeof (class struct##klas), _##klas##_new, version, 0, nullptr}; \
+	struct structClassInfo theClassInfo_##klas = { U"" #klas, & theClassInfo_##parentKlas, sizeof (class struct##klas), _##klas##_new, version, 0, NULL }; \
 	ClassInfo class##klas = & theClassInfo_##klas
 
 /*
@@ -99,16 +102,7 @@ struct structThing {
 	void * operator new (size_t size) { return Melder_calloc (char, (int64) size); }
 	void operator delete (void *ptr, size_t /* size */) { Melder_free (ptr); }
 
-	/*
-	 * If a Thing has members of type autoThing,
-	 * then we want the destructors of autoThing to be called automatically whenever Thing is `delete`d.
-	 * For this to happen, it is necessary that every Thing itself has a destructor.
-	 * We therefore define a destructor here,
-	 * and we make it virtual to ensure that every subclass has its own automatic version.
-	 */
-	virtual ~structThing () noexcept { }
-
-	virtual void v_destroy () noexcept { Melder_free (name); };
+	virtual void v_destroy () { Melder_free (name); };
 		/*
 		 * derived::v_destroy calls base::v_destroy at end
 		 */
@@ -134,12 +128,12 @@ struct structThing {
 		 */
 };
 
-#define forget(thing)  do { _Thing_forget (thing); thing = nullptr; } while (false)
+#define forget(thing)  do { _Thing_forget (thing); thing = NULL; } while (false)
 /*
 	Function:
 		free all memory associated with 'thing'.
 	Postcondition:
-		thing == nullptr;
+		thing == NULL;
 */
 #define forget_nozero(thing)  do { _Thing_forget_nozero (thing); delete thing; } while (false)
 /*
@@ -147,7 +141,7 @@ struct structThing {
 		free all memory associated with 'thing'.
 */
 
-/* All functions with 'Thing me' as the first argument assume that it is not null. */
+/* All functions with 'Thing me' as the first argument assume that it is not NULL. */
 
 const char32 * Thing_className (Thing me);
 /* Return your class name. */
@@ -169,13 +163,31 @@ bool Thing_isSubclass (ClassInfo klas, ClassInfo ancestor);
 void Thing_info (Thing me);
 void Thing_infoWithIdAndFile (Thing me, unsigned long id, MelderFile file);
 
+#define Thing_new(Klas)  static_cast<Klas> (Thing_newFromClass (class##Klas))
+/*
+	Function:
+		return a new object of class 'klas'.
+	Postconditions:
+		result -> classInfo == class'klas';
+		other members are 0.
+*/
+
+Thing Thing_newFromClass (ClassInfo klas);
+/*
+	Function:
+		return a new object of class 'klas'.
+	Postconditions:
+		result -> classInfo == 'klas';
+		other members are 0.
+*/
+
 void Thing_recognizeClassesByName (ClassInfo readableClass, ...);
 /*
 	Function:
 		make Thing_classFromClassName () and Thing_newFromClassName ()
 		recognize a class from its name (a string).
 	Arguments:
-		as many classes as you want; finish with a nullptr.
+		as many classes as you want; finish with a NULL.
 		It is not an error if a class occurs more than once in the list.
 	Behaviour:
 		calling this routine more than once, each time for different classes,
@@ -188,17 +200,28 @@ void Thing_recognizeClassesByName (ClassInfo readableClass, ...);
 		Calls to this routine should preferably be put in the beginning of main ().
 */
 void Thing_recognizeClassByOtherName (ClassInfo readableClass, const char32 *otherName);
-long Thing_listReadableClasses ();
+long Thing_listReadableClasses (void);
+
+Thing Thing_newFromClassName (const char32 *className, int *p_formatVersion);
+/*
+	Function:
+		return a new object of class 'className', or NULL if the class name is not recognized.
+	Postconditions:
+		result -> classInfo == class'className';
+		other members are 0.
+	Side effect:
+		see Thing_classFromClassName.
+*/
 
 ClassInfo Thing_classFromClassName (const char32 *className, int *formatVersion);
 /*
 	Function:
-		Return the class info table of class 'className', or null if it is not recognized.
+		Return the class info table of class 'className', or NULL if it is not recognized.
 		E.g. the value returned from Thing_classFromClassName (L"PietjePuk")
 		will be equal to classPietjePuk.
 	Side effect:
 		If 'className' equals L"PietjePuk 300", the value returned will be classPietjePuk,
-		and formatVersion (if not null) will be set to 300.
+		and formatVersion (if not NULL) will be set to 300.
 */
 
 #define Thing_dummyObject(klas) \
@@ -206,7 +229,7 @@ ClassInfo Thing_classFromClassName (const char32 *className, int *formatVersion)
 Thing _Thing_dummyObject (ClassInfo classInfo);
 
 char32 * Thing_getName (Thing me);
-/* Return a pointer to your internal name (which can be null). */
+/* Return a pointer to your internal name (which can be NULL). */
 char32 * Thing_messageName (Thing me);
 
 void Thing_setName (Thing me, const char32 *name /* cattable */);
@@ -219,7 +242,7 @@ void Thing_setName (Thing me, const char32 *name /* cattable */);
 
 #define Thing_cast(Klas,var,expr) \
 	Klas var = static_cast <Klas> (expr);   /* The compiler checks this. */ \
-	Melder_assert (! var || Thing_isa (var, class##Klas));
+	Melder_assert (var == NULL || Thing_isa (var, class##Klas));
 
 void Thing_swap (Thing me, Thing thee);
 /*
@@ -239,57 +262,35 @@ void Thing_swap (Thing me, Thing thee);
 void _Thing_forget (Thing me);
 void _Thing_forget_nozero (Thing me);
 void * _Thing_check (Thing me, ClassInfo table, const char *fileName, int line);
+	/* Macros 'iam', 'thouart', 'heis'. */
 
 /* For debugging. */
 
-extern long theTotalNumberOfThings;
+long Thing_getTotalNumberOfThings (void);
 /* This number is 0 initially, increments at every successful `new', and decrements at every `forget'. */
 
 template <class T>
 class _Thing_auto {
-	T *ptr;
+	T *d_ptr;
 public:
 	/*
-	 * The default constructor.
-	 * Things like
-	 *    autoPitch pitch;
-	 * should initialize the pointer to null.
-	 */
-	_Thing_auto () : ptr (nullptr) {
-		#if _Thing_auto_DEBUG
-			fprintf (stderr, "default constructor\n");
-		#endif
-	}
-	/*
 	 * Things like
 	 *    autoPitch pitch (Pitch_create (...));
 	 * and
 	 *    autoPitch pitch = Pitch_create (...);
 	 * should work.
 	 */
-	explicit _Thing_auto (T *newPtr) : ptr (newPtr) {
-		#if _Thing_auto_DEBUG
-			if (our ptr)
-				fprintf (stderr, "constructor %p %s\n",
-					our ptr, Melder_peek32to8 (our ptr -> classInfo -> className));
-		#endif
-	}
+	_Thing_auto (T *a_ptr) : d_ptr (a_ptr) { }
+	_Thing_auto () : d_ptr (NULL) { }
 	/*
 	 * pitch should be destroyed when going out of scope,
 	 * both at the end of the try block and when a throw occurs.
 	 */
-	~_Thing_auto () noexcept {
-		#if _Thing_auto_DEBUG
-			fprintf (stderr, "destructor %p %s\n",
-				our ptr, our ptr ? Melder_peek32to8 (our ptr -> classInfo -> className) : "(class unknown)");
-		#endif
-		if (our ptr) {
-			_Thing_forget (our ptr);
-			our ptr = nullptr;
-		}
+	~_Thing_auto () {
+		if (d_ptr) forget (d_ptr);
 	}
-	T* get () const noexcept {
-		return our ptr;
+	T* peek () const {
+		return d_ptr;
 	}
 	/*
 	 * The expression
@@ -297,57 +298,41 @@ public:
 	 * should be abbreviatable by
 	 *    pitch -> xmin
 	 */
-	T* operator-> () const noexcept {   // as r-value
-		return our ptr;
+	T* operator-> () const {   // as r-value
+		return d_ptr;
+	}
+	T& operator* () const {   // as l-value
+		return *d_ptr;
 	}
 	/*
-	T& operator* () const noexcept {   // as l-value
-		return *our ptr;
-	}*/
-	/*
-	 * After construction, there are two ways to access the pointer: with and without transfer of ownership.
+	 * There are two ways to access the pointer; with and without transfer of ownership.
 	 *
 	 * Without transfer:
-	 *    Pitch_draw (pitch.get());
+	 *    autoPitch pitch = Sound_to_Pitch (...);
+	 *    Pitch_draw (pitch.peek());
 	 *
 	 * With transfer:
-	 *    return thee;
+	 *    return thee.transfer();
 	 * and
-	 *    *out_pitch = pitch.move();
-	 *    *out_pulses = pulses.move();
+	 *    *out_pitch = pitch.transfer();
+	 *    *out_pulses = pulses.transfer();
 	 * and
-	 *    Collection_addItem_move (me, pitch.move());
+	 *    Collection_addItem (me, pitch.transfer());
 	 * and
-	 *    praat_new (pitch.move(), my name);
+	 *    praat_new (pitch.transfer(), my name);
 	 */
-	void releaseToUser () noexcept {
-		our ptr = nullptr;   // make the pointer non-automatic again
-	}
-	/*
-		Sometimes the ownership is determined by a flag such as _ownItems or _ownData or _ownSound.
-		In that case, the autoThing has be released as a raw Thing pointer,
-		and the ambiguous owner may become responsible for destruction the object.
-		In Praat, this happens with Collection items and with some editors.
-	*/
-	T* releaseToAmbiguousOwner () noexcept {
-		T* temp = our ptr;
-		our ptr = nullptr;   // make the pointer non-automatic again
+	T* transfer () {
+		T* temp = d_ptr;
+		d_ptr = NULL;   // make the pointer non-automatic again
 		return temp;
 	}
-	#if 0
-		operator T* () {
-			return our ptr;
-		}
-	#endif
+	//operator T* () { return d_ptr; }   // this way only if peek() and transfer() are the same, e.g. in case of reference counting
+	// template <class Y> Y* operator= (_Thing_auto<Y>& a) { }
 	/*
 	 * An autoThing can be cloned. This can be used for giving ownership without losing ownership.
 	 */
 	T* clone () const {
-		return static_cast<T *> (Data_copy (our ptr));
-	}
-	void reset () noexcept {
-		_Thing_forget (our ptr);
-		our ptr = nullptr;
+		return static_cast<T *> (Data_copy (d_ptr));
 	}
 	/*
 	 * Replacing a pointer in an existing autoThing should be an exceptional phenomenon,
@@ -355,209 +340,66 @@ public:
 	 * so that you can easily spot ugly places in your source code.
 	 * In order not to leak memory, the old object is destroyed.
 	 */
-	/*void reset (T* newPtr = nullptr) noexcept {
-		_Thing_forget (our ptr);
-		our ptr = newPtr;
-	}*/
-	void _zero () noexcept {
-		our ptr = nullptr;
-	}
-	explicit operator bool () const noexcept {
-		return !! our ptr;
-	}
-	bool operator== (_Thing_auto<T> other) const noexcept {
-		return other. ptr == our ptr;
-	}
-	bool operator!= (_Thing_auto<T> other) const noexcept {
-		return other. ptr != our ptr;
+	void reset (T* const ptr) {
+		if (d_ptr) forget (d_ptr);
+		d_ptr = ptr;
 	}
+private:
 	/*
-	 * The compiler should prevent initializations from _Thing_auto l-values, as in
+	 * The compiler should prevent initializations like
 	 *    autoPitch pitch2 = pitch;
-	 * This is because the syntax of this statement is *copy* syntax,
-	 * but the semantics of this statement has to be, confusingly, *move* semantics
-	 * (i.e., pitch.ptr should be set to null),
-	 * because if the semantics were copy semantics instead,
-	 * a destructor would be called at some point for both pitch and pitch 2,
-	 * twice deleting the same object, which is a run-time error.
 	 */
-	_Thing_auto<T> (const _Thing_auto<T>&) = delete;   // disable copy constructor from an l-value of class T*
-	template <class Y> _Thing_auto<T> (const _Thing_auto<Y>&) = delete;   // disable copy constructor from an l-value of a descendant class of T*
+	template <class Y> _Thing_auto (_Thing_auto<Y> &);   // copy constructor
+	//_Thing_auto (const _Thing_auto &);
 	/*
-	 * The compiler should prevent assignments from _Thing_auto l-values, as in
+	 * The compiler should prevent assignments like
 	 *    pitch2 = pitch;
-	 * This is because the syntax of this statement is *copy* syntax,
-	 * but the semantics of this statement has to be, confusingly, *move* semantics
-	 * (i.e., pitch.ptr should be set to null),
-	 * because if the semantics were copy semantics instead,
-	 * a destructor would be called at some point for both pitch and pitch 2,
-	 * twice deleting the same object, which is a run-time error.
 	 */
-	_Thing_auto<T>& operator= (const _Thing_auto<T>&) = delete;   // disable copy assignment from an l-value of class T*
-	template <class Y> _Thing_auto<T>& operator= (const _Thing_auto<Y>&) = delete;   // disable copy assignment from an l-value of a descendant class of T*
-	/*
-	 * The compiler should treat initializations from _Thing_auto r-values, as in
-	 *    extern autoPitch Pitch_create (...);
-	 *    autoPitch pitch = Pitch_create (...);
-	 * as move constructors.
-	 */
-	_Thing_auto<T> (_Thing_auto<T>&& other) noexcept : ptr (other. ptr) {
-		#if _Thing_auto_DEBUG
-			if (our ptr)
-				fprintf (stderr, "move constructor %p from same class %s\n",
-					our ptr, Melder_peek32to8 (our ptr -> classInfo -> className));
-		#endif
-		other. ptr = nullptr;
-	}
-	template <class Y> _Thing_auto<T> (_Thing_auto<Y>&& other) noexcept : ptr (other.get()) {
-		#if _Thing_auto_DEBUG
-			if (our ptr)
-				fprintf (stderr, "move constructor %p from other class %s\n",
-					our ptr, Melder_peek32to8 (our ptr -> classInfo -> className));
-		#endif
-		other. _zero();
-	}
-	/*
-	 * The compiler should treat assignments from _Thing_auto r-values, as in
-	 *    extern autoPitch Pitch_create (...);
-	 *    autoPitch pitch;
-	 *    pitch = Pitch_create (...);
-	 * as move assignments.
-	 */
-	_Thing_auto<T>& operator= (_Thing_auto<T>&& other) noexcept {
-		if (other. ptr != our ptr) {
-			#if _Thing_auto_DEBUG
-				fprintf (stderr, "move assignment before %p from same class %s\n",
-					our ptr, our ptr ? Melder_peek32to8 (our ptr -> classInfo -> className) : "(class unknown)");
-			#endif
-			if (our ptr) _Thing_forget (our ptr);
-			our ptr = other. ptr;
-			#if _Thing_auto_DEBUG
-				fprintf (stderr, "move assignment after %p from same class %s\n",
-					our ptr, our ptr ? Melder_peek32to8 (our ptr -> classInfo -> className) : "(class unknown)");
-			#endif
-			other. ptr = nullptr;
-		}
-		return *this;
-	}
-	template <class Y> _Thing_auto<T>& operator= (_Thing_auto<Y>&& other) noexcept {
-		if (other.get() != our ptr) {
-			#if _Thing_auto_DEBUG
-				fprintf (stderr, "move assignment before %p from other class %s\n",
-					our ptr, our ptr ? Melder_peek32to8 (our ptr -> classInfo -> className) : "(class unknown)");
-			#endif
-			if (our ptr) _Thing_forget (our ptr);
-			our ptr = other.get();
-			#if _Thing_auto_DEBUG
-				fprintf (stderr, "move assignment after %p from other class %s\n",
-					our ptr, our ptr ? Melder_peek32to8 (our ptr -> classInfo -> className) : "(class unknown)");
-			#endif
-			other. _zero();
-		}
-		return *this;
-	}
-	/*
-	 * Move semantics from l-values can be achieved with move syntax:
-	 *    autoPitch pitch2 = pitch.move();   // calls the move constructor and therefore nullifies pitch
-	 *
-	 *    pitch2 = pitch.move();   // performs move assignment and therefore nullifies pitch
-	 */
-	_Thing_auto<T>&& move () noexcept { return static_cast <_Thing_auto<T>&&> (*this); }
-	/*
-	 * Returning _Thing_auto from a function works as hoped for:
-	 *    autoPitch Sound_to_Pitch (Sound me) {
-	 *       autoPitch thee = Pitch_create (...);
-	 *       ...
-	 *       return thee;
-	 *    }
-	 *    autoPitch pitch = Sound_to_Pitch (sound);
-	 * returns a moved `thee` in `pitch`. This works because return values from automatic (i.e. non-static) variables are r-values.
-	 *
-	 * In function arguments, transfer of ownership works only explicitly:
-	 *    extern void Collection_addItem_move (Collection me, autoDaata item);
-	 *    autoPitch pitch = Pitch_create (...);
-	 *    Collection_addItem_move (collection, pitch.move());   // compiler error if you don't call move()
-	 */
-	template <class Y> _Thing_auto<Y> static_cast_move () noexcept {
-		return _Thing_auto<Y> (static_cast<Y*> (our releaseToAmbiguousOwner()));
-	}
+	_Thing_auto& operator= (const _Thing_auto&);   // copy assignment
+	//template <class Y> _Thing_auto& operator= (const _Thing_auto<Y>&);
 };
 
-typedef _Thing_auto<structThing> autoThing;
-
-#define Thing_new(Klas)  Thing_newFromClass (class##Klas).static_cast_move<struct##Klas>()
-/*
-	Function:
-		return a new object of class 'klas'.
-	Postconditions:
-		result -> classInfo == class'klas';
-		other members are 0.
-*/
-
-autoThing Thing_newFromClass (ClassInfo klas);
-/*
-	Function:
-		return a new object of class 'klas'.
-	Postconditions:
-		result -> classInfo == 'klas';
-		other members are 0.
-*/
-
-autoThing Thing_newFromClassName (const char32 *className, int *p_formatVersion);
-/*
-	Function:
-		return a new object of class 'className', or null if the class name is not recognized.
-	Postconditions:
-		result -> classInfo == class'className';
-		other members are 0.
-	Side effect:
-		see Thing_classFromClassName.
-*/
-
 template <class T>
 class autoThingVector {
-	_Thing_auto<T> *d_ptr;
+	T* d_ptr;
 	long d_from, d_to;
 public:
 	autoThingVector<T> (long from, long to) : d_from (from), d_to (to) {
-		d_ptr = static_cast <_Thing_auto<T>*> (NUMvector (sizeof (_Thing_auto<T>), from, to));
+		d_ptr = static_cast <T*> (NUMvector (sizeof (T), from, to));
 	}
-	autoThingVector (_Thing_auto<T> *ptr, long from, long to) : d_ptr (ptr), d_from (from), d_to (to) {
+	autoThingVector (T *ptr, long from, long to) : d_ptr (ptr), d_from (from), d_to (to) {
 	}
-	autoThingVector () : d_ptr (nullptr), d_from (1), d_to (0) {
+	autoThingVector () : d_ptr (NULL), d_from (1), d_to (0) {
 	}
 	~autoThingVector<T> () {
 		if (d_ptr) {
 			for (long i = d_from; i <= d_to; i ++)
-				d_ptr [i].reset();
-			NUMvector_free (sizeof (_Thing_auto<T>), d_ptr, d_from);
+				forget (d_ptr [i]);
+			NUMvector_free (sizeof (T), d_ptr, d_from);
 		}
 	}
-	_Thing_auto<T>& operator[] (long i) {
+	T& operator[] (long i) {
 		return d_ptr [i];
 	}
-	_Thing_auto<T>* peek () const {
+	T* peek () const {
 		return d_ptr;
 	}
-	/*
 	T* transfer () {
 		T* temp = d_ptr;
-		d_ptr = nullptr;   // make the pointer non-automatic again
+		d_ptr = NULL;   // make the pointer non-automatic again
 		return temp;
 	}
-
 	void reset (long from, long to) {
 		if (d_ptr) {
 			for (long i = d_from; i <= d_to; i ++)
 				forget (d_ptr [i]);
 			NUMvector_free (sizeof (T), d_ptr, d_from);
-			d_ptr = nullptr;
+			d_ptr = NULL;
 		}
-		d_from = from;   // this assignment is safe, because d_ptr is null
+		d_from = from;   // this assignment is safe, because d_ptr is NULL
 		d_to = to;
 		d_ptr = static_cast <T*> (NUMvector (sizeof (T), from, to));
 	}
-	*/
 };
 
 /* End of file Thing.h */
diff --git a/sys/Ui.cpp b/sys/Ui.cpp
index bb88158..4115f49 100644
--- a/sys/Ui.cpp
+++ b/sys/Ui.cpp
@@ -1,6 +1,6 @@
 /* Ui.cpp
  *
- * Copyright (C) 1992-2012,2013,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,11 +50,12 @@
 
 Thing_implement (UiField, Thing, 0);
 
-void structUiField :: v_destroy () noexcept {
+void structUiField :: v_destroy () {
 	Melder_free (formLabel);
 	Melder_free (stringValue);
 	Melder_free (stringValueA);
 	Melder_free (stringDefaultValue);
+	forget (options);
 	UiField_Parent :: v_destroy ();
 }
 
@@ -67,38 +68,54 @@ static UiField UiField_create (int type, const char32 *name) {
 	/*
 	 * Strip parentheses and colon off parameter name.
 	 */
-	if (!! (p = (char32 *) str32chr (shortName, U'('))) {
+	if ((p = (char32 *) str32chr (shortName, U'(')) != NULL) {
 		*p = U'\0';
 		if (p - shortName > 0 && p [-1] == U' ') p [-1] = U'\0';
 	}
 	p = shortName;
 	if (*p != U'\0' && p [str32len (p) - 1] == U':') p [str32len (p) - 1] = U'\0';
-	Thing_setName (me.get(), shortName);
-	return me.releaseToAmbiguousOwner();
+	Thing_setName (me.peek(), shortName);
+	return me.transfer();
+}
+static UiField UiField_create (int type, const char *name) {
+	return UiField_create (type, Melder_peek8to32 (name));
 }
 
 /***** class UiOption: radio buttons and menu options *****/
 
+Thing_define (UiOption, Thing) {
+	// new data:
+	public:
+		GuiRadioButton radioButton;
+		GuiObject menuItem;
+};
+
 Thing_implement (UiOption, Thing, 0);
 
-static UiOption UiOption_create (const char32 *label) {
-	autoUiOption me = Thing_new (UiOption);
-	Thing_setName (me.get(), label);
-	return me.releaseToAmbiguousOwner();
+static Any UiOption_create (const char32 *label) {
+	UiOption me = Thing_new (UiOption);
+	Thing_setName (me, label);
+	return me;
 }
 
-UiOption UiRadio_addButton (UiField me, const char32 *label) {
-	if (! me) return nullptr;
+Any UiRadio_addButton (I, const char32 *label) {
+	iam (UiField);
+	UiOption thee;
+	if (me == NULL) return NULL;
 	Melder_assert (my type == UI_RADIO || my type == UI_OPTIONMENU);
-	autoUiOption thee (UiOption_create (label));
-	return my options. addItem_move (thee.move());
+	thee = static_cast <UiOption> (UiOption_create (label));
+	Collection_addItem (my options, thee);
+	return thee;
 }
 
-UiOption UiOptionMenu_addButton (UiField me, const char32 *label) {
-	if (! me) return nullptr;
+Any UiOptionMenu_addButton (I, const char32 *label) {
+	iam (UiField);
+	UiOption thee;
+	if (me == NULL) return NULL;
 	Melder_assert (my type == UI_RADIO || my type == UI_OPTIONMENU);
-	autoUiOption thee (UiOption_create (label));
-	return my options. addItem_move (thee.move());
+	thee = static_cast <UiOption> (UiOption_create (label));
+	Collection_addItem (my options, thee);
+	return thee;
 }
 
 /***** Things to do with UiField objects. *****/
@@ -112,9 +129,9 @@ static void UiField_setDefault (UiField me) {
 		} break; case UI_BOOLEAN: {
 			GuiCheckButton_setValue (my checkButton, my integerDefaultValue);
 		} break; case UI_RADIO: {
-			for (int i = 1; i <= my options.size; i ++) {
+			for (int i = 1; i <= my options -> size; i ++) {
 				if (i == my integerDefaultValue) {
-					UiOption b = my options.at [i];
+					UiOption b = static_cast <UiOption> (my options -> item [i]);
 					GuiRadioButton_set (b -> radioButton);
 				}
 			}
@@ -134,10 +151,10 @@ static int colourToValue (UiField me, char32 *string) {
 	if (first == U'{') {
 		my colourValue. red = Melder_atof (++ p);
 		p = str32chr (p, U',');
-		if (! p) return 0;
+		if (p == NULL) return 0;
 		my colourValue. green = Melder_atof (++ p);
 		p = str32chr (p, U',');
-		if (! p) return 0;
+		if (p == NULL) return 0;
 		my colourValue. blue = Melder_atof (++ p);
 	} else {
 		*p = (char32) tolower ((int) *p);
@@ -168,7 +185,7 @@ static void UiField_widgetToValue (UiField me) {
 	switch (my type) {
 		case UI_REAL: case UI_REAL_OR_UNDEFINED: case UI_POSITIVE: {
 			autostring32 dirty = GuiText_getString (my text);   // the text as typed by the user
-			Interpreter_numericExpression (nullptr, dirty.peek(), & my realValue);
+			Interpreter_numericExpression (NULL, dirty.peek(), & my realValue);
 			/*
 			 * Put a clean version of the new value in the form.
 			 * If the value is equal to the default value, make sure that any default comments are included.
@@ -200,7 +217,7 @@ static void UiField_widgetToValue (UiField me) {
 				my integerValue = 2;
 			} else {
 				double realValue;
-				Interpreter_numericExpression (nullptr, dirty.peek(), & realValue);
+				Interpreter_numericExpression (NULL, dirty.peek(), & realValue);
 				my integerValue = lround (realValue);
 			}
 			if (my integerValue == Melder_atoi (my stringDefaultValue)) {
@@ -208,9 +225,8 @@ static void UiField_widgetToValue (UiField me) {
 			} else {
 				GuiText_setString (my text, Melder_integer (my integerValue));
 			}
-			if ((my type == UI_NATURAL || my type == UI_CHANNEL) && my integerValue < 1) {
+			if (my type == UI_NATURAL && my integerValue < 1)
 				Melder_throw (U_LEFT_DOUBLE_QUOTE, my name, U_RIGHT_DOUBLE_QUOTE U" must be a positive whole number.");
-			}
 		} break; case UI_WORD: {
 			Melder_free (my stringValue);
 			my stringValue = GuiText_getString (my text);
@@ -224,8 +240,8 @@ static void UiField_widgetToValue (UiField me) {
 			my integerValue = GuiCheckButton_getValue (my checkButton);
 		} break; case UI_RADIO: {
 			my integerValue = 0;
-			for (int i = 1; i <= my options.size; i ++) {
-				UiOption b = my options.at [i];
+			for (int i = 1; i <= my options -> size; i ++) {
+				UiOption b = static_cast <UiOption> (my options -> item [i]);
 				if (GuiRadioButton_getValue (b -> radioButton))
 					my integerValue = i;
 			}
@@ -237,7 +253,7 @@ static void UiField_widgetToValue (UiField me) {
 				Melder_throw (U"No option chosen for " U_LEFT_DOUBLE_QUOTE, my name, U_RIGHT_DOUBLE_QUOTE U".");
 		} break; case UI_LIST: {
 			long numberOfSelected, *selected = GuiList_getSelectedPositions (my list, & numberOfSelected);   // BUG memory
-			if (! selected) {
+			if (selected == NULL) {
 				Melder_warning (U"No items selected.");
 				my integerValue = 1;
 			} else {
@@ -250,7 +266,7 @@ static void UiField_widgetToValue (UiField me) {
 			if (colourToValue (me, string.peek())) {
 				// do nothing
 			} else {
-				Interpreter_numericExpression (nullptr, string.peek(), & my colourValue. red);
+				Interpreter_numericExpression (NULL, string.peek(), & my colourValue. red);
 				my colourValue. green = my colourValue. blue = my colourValue. red;
 			}
 		}
@@ -293,8 +309,8 @@ static void UiField_stringToValue (UiField me, const char32 *string, Interpreter
 				string [0] == U't' || string [0] == U'T';
 		} break; case UI_RADIO: case UI_OPTIONMENU: {
 			my integerValue = 0;
-			for (int i = 1; i <= my options.size; i ++) {
-				UiOption b = my options.at [i];
+			for (int i = 1; i <= my options -> size; i ++) {
+				UiOption b = static_cast <UiOption> (my options -> item [i]);
 				if (str32equ (string, b -> name))
 					my integerValue = i;
 			}
@@ -302,8 +318,8 @@ static void UiField_stringToValue (UiField me, const char32 *string, Interpreter
 				/*
 				 * Retry with different case.
 				 */
-				for (int i = 1; i <= my options.size; i ++) {
-					UiOption b = my options.at [i];
+				for (int i = 1; i <= my options -> size; i ++) {
+					UiOption b = static_cast <UiOption> (my options -> item [i]);
 					char32 name2 [100];
 					str32cpy (name2, b -> name);
 					if (islower ((int) name2 [0])) name2 [0] = (char32) toupper ((int) name2 [0]);
@@ -343,16 +359,16 @@ static void UiField_stringToValue (UiField me, const char32 *string, Interpreter
 
 /***** History mechanism. *****/
 
-static MelderString theHistory { 0 };
+static MelderString theHistory = { 0 };
 void UiHistory_write (const char32 *string) { MelderString_append (& theHistory, string); }
 void UiHistory_write_expandQuotes (const char32 *string) {
-	if (! string) return;
+	if (string == NULL) return;
 	for (const char32 *p = & string [0]; *p != U'\0'; p ++) {
 		if (*p == U'\"') MelderString_append (& theHistory, U"\"\""); else MelderString_appendCharacter (& theHistory, *p);
 	}
 }
 void UiHistory_write_colonize (const char32 *string) {
-	if (! string) return;
+	if (string == NULL) return;
 	for (const char32 *p = & string [0]; *p != U'\0'; p ++) {
 		if (*p == U'.' && p [1] == U'.' && p [2] == U'.') {
 			MelderString_append (& theHistory, U":");
@@ -362,22 +378,22 @@ void UiHistory_write_colonize (const char32 *string) {
 		}
 	}
 }
-char32 *UiHistory_get () { return theHistory.string; }
-void UiHistory_clear () { MelderString_empty (& theHistory); }
+char32 *UiHistory_get (void) { return theHistory.string; }
+void UiHistory_clear (void) { MelderString_empty (& theHistory); }
 
 /***** class UiForm: dialog windows *****/
 
 Thing_implement (UiForm, Thing, 0);
 
-bool (*theAllowExecutionHookHint) (void *closure) = nullptr;
-void *theAllowExecutionClosureHint = nullptr;
+bool (*theAllowExecutionHookHint) (void *closure) = NULL;
+void *theAllowExecutionClosureHint = NULL;
 
 void Ui_setAllowExecutionHook (bool (*allowExecutionHook) (void *closure), void *allowExecutionClosure) {
 	theAllowExecutionHookHint = allowExecutionHook;
 	theAllowExecutionClosureHint = allowExecutionClosure;
 }
 
-void structUiForm :: v_destroy () noexcept {
+void structUiForm :: v_destroy () {
 	for (int ifield = 1; ifield <= numberOfFields; ifield ++)
 		forget (field [ifield]);
 	if (d_dialogForm) {
@@ -389,23 +405,29 @@ void structUiForm :: v_destroy () noexcept {
 	UiForm_Parent :: v_destroy ();
 }
 
-static void gui_button_cb_revert (UiForm me, GuiButtonEvent /* event */) {
+static void gui_button_cb_revert (I, GuiButtonEvent event) {
+	(void) event;
+	iam (UiForm);
 	for (int ifield = 1; ifield <= my numberOfFields; ifield ++)
 		UiField_setDefault (my field [ifield]);
 }
 
-static void gui_dialog_cb_close (UiForm me) {
+static void gui_dialog_cb_close (I) {
+	iam (UiForm);
 	if (my cancelCallback) my cancelCallback (me, my buttonClosure);
 	GuiThing_hide (my d_dialogForm);
 	if (my destroyWhenUnmanaged) forget (me);
 }
-static void gui_button_cb_cancel (UiForm me, GuiButtonEvent /* event */) {
+static void gui_button_cb_cancel (I, GuiButtonEvent event) {
+	(void) event;
+	iam (UiForm);
 	if (my cancelCallback) my cancelCallback (me, my buttonClosure);
 	GuiThing_hide (my d_dialogForm);
 	if (my destroyWhenUnmanaged) forget (me);
 }
 
-void UiForm_widgetsToValues (UiForm me) {
+void UiForm_widgetsToValues (I) {
+	iam (UiForm);
 	try {
 		for (int ifield = 1; ifield <= my numberOfFields; ifield ++)
 			UiField_widgetToValue (my field [ifield]);
@@ -414,7 +436,8 @@ void UiForm_widgetsToValues (UiForm me) {
 	}
 }
 
-static void UiForm_okOrApply (UiForm me, GuiButton button, int hide) {
+static void UiForm_okOrApply (I, GuiButton button, int hide) {
+	iam (UiForm);
 	if (my allowExecutionHook && ! my allowExecutionHook (my allowExecutionClosure)) {
 		Melder_flushError (U"Cannot execute command window " U_LEFT_DOUBLE_QUOTE, my name, U_RIGHT_DOUBLE_QUOTE U".");
 		return;
@@ -447,7 +470,7 @@ static void UiForm_okOrApply (UiForm me, GuiButton button, int hide) {
 	 * Keep the gate for error handling.
 	 */
 	try {
-		my okCallback (me, 0, nullptr, nullptr, nullptr, nullptr, false, my buttonClosure);
+		my okCallback (me, 0, NULL, NULL, NULL, NULL, false, my buttonClosure);
 		/*
 		 * Write everything to history. Before destruction!
 		 */
@@ -474,7 +497,7 @@ static void UiForm_okOrApply (UiForm me, GuiButton button, int hide) {
 					} break; case UI_BOOLEAN: {
 						UiHistory_write (field -> integerValue ? (next -- ? U", \"yes\"" : U" \"yes\"") : (next -- ? U", \"no\"" : U" \"no\""));
 					} break; case UI_RADIO: case UI_OPTIONMENU: {
-						UiOption b = field -> options.at [field -> integerValue];
+						UiOption b = static_cast <UiOption> (field -> options -> item [field -> integerValue]);
 						UiHistory_write (next -- ? U", \"" : U" \"");
 						UiHistory_write_expandQuotes (b -> name);
 						UiHistory_write (U"\"");
@@ -527,15 +550,21 @@ static void UiForm_okOrApply (UiForm me, GuiButton button, int hide) {
 	if (my helpButton)   GuiThing_setSensitive (my helpButton,   true);
 }
 
-static void gui_button_cb_ok (UiForm me, GuiButtonEvent event) {
+static void gui_button_cb_ok (I, GuiButtonEvent event) {
+	(void) event;
+	iam (UiForm);
 	UiForm_okOrApply (me, event -> button, true);
 }
 
-static void gui_button_cb_apply (UiForm me, GuiButtonEvent event) {
+static void gui_button_cb_apply (I, GuiButtonEvent event) {
+	(void) event;
+	iam (UiForm);
 	UiForm_okOrApply (me, event -> button, false);
 }
 
-static void gui_button_cb_help (UiForm me, GuiButtonEvent /* event */) {
+static void gui_button_cb_help (I, GuiButtonEvent event) {
+	(void) event;
+	iam (UiForm);
 	Melder_help (my helpTitle);
 }
 
@@ -545,22 +574,23 @@ UiForm UiForm_create (GuiWindow parent, const char32 *title,
 {
 	autoUiForm me = Thing_new (UiForm);
 	my d_dialogParent = parent;
-	Thing_setName (me.get(), title);
+	Thing_setName (me.peek(), title);
 	my okCallback = okCallback;
 	my buttonClosure = buttonClosure;
 	my invokingButtonTitle = Melder_dup (invokingButtonTitle);
 	my helpTitle = Melder_dup (helpTitle);
-	return me.releaseToAmbiguousOwner();
+	return me.transfer();
 }
 
-void UiForm_setPauseForm (UiForm me,
+void UiForm_setPauseForm (I,
 	int numberOfContinueButtons, int defaultContinueButton, int cancelContinueButton,
 	const char32 *continue1, const char32 *continue2, const char32 *continue3,
 	const char32 *continue4, const char32 *continue5, const char32 *continue6,
 	const char32 *continue7, const char32 *continue8, const char32 *continue9,
 	const char32 *continue10,
-	void (*cancelCallback) (UiForm dia, void *closure))
+	void (*cancelCallback) (Any dia, void *closure))
 {
+	iam (UiForm);
 	my isPauseForm = true;
 	my numberOfContinueButtons = numberOfContinueButtons;
 	my defaultContinueButton = defaultContinueButton;
@@ -582,112 +612,134 @@ static void commonOkCallback (UiForm /* dia */, int /* narg */, Stackel /* args
 	Interpreter interpreter, const char32 * /* invokingButtonTitle */, bool /* modified */, void *closure)
 {
 	EditorCommand cmd = (EditorCommand) closure;
-	cmd -> commandCallback (cmd -> d_editor, cmd, cmd -> d_uiform.get(), 0, nullptr, nullptr, interpreter);
+	cmd -> commandCallback (cmd -> d_editor, cmd, cmd -> d_uiform, 0, NULL, NULL, interpreter);
 }
 
-autoUiForm UiForm_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle) {
-	Editor editor = cmd -> d_editor;
-	autoUiForm dia (UiForm_create (editor -> d_windowForm, title, commonOkCallback, cmd, invokingButtonTitle, helpTitle));
+UiForm UiForm_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle) {
+	Editor editor = (Editor) cmd -> d_editor;
+	UiForm dia = UiForm_create (editor -> d_windowForm, title, commonOkCallback, cmd, invokingButtonTitle, helpTitle);
 	dia -> command = cmd;
 	return dia;
 }
 
 static UiField UiForm_addField (UiForm me, int type, const char32 *label) {
 	if (my numberOfFields == MAXIMUM_NUMBER_OF_FIELDS)
-		Melder_throw (U"Cannot have more than ", MAXIMUM_NUMBER_OF_FIELDS, U"fields in a form.");
+		Melder_throw (U"Cannot have more than ", MAXIMUM_NUMBER_OF_FIELDS, U"in a form.");
+	return my field [++ my numberOfFields] = UiField_create (type, label);
+}
+static UiField UiForm_addField (UiForm me, int type, const char *label) {
+	if (my numberOfFields == MAXIMUM_NUMBER_OF_FIELDS)
+		Melder_throw (U"Cannot have more than ", MAXIMUM_NUMBER_OF_FIELDS, U"in a form.");
 	return my field [++ my numberOfFields] = UiField_create (type, label);
 }
 
-UiField UiForm_addReal (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_REAL, label));
+Any UiForm_addReal (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_REAL, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addRealOrUndefined (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_REAL_OR_UNDEFINED, label));
+Any UiForm_addRealOrUndefined (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_REAL_OR_UNDEFINED, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addPositive (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_POSITIVE, label));
+Any UiForm_addPositive (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_POSITIVE, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addInteger (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_INTEGER, label));
+Any UiForm_addInteger (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_INTEGER, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addNatural (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_NATURAL, label));
+Any UiForm_addNatural (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_NATURAL, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addWord (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_WORD, label));
+Any UiForm_addWord (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_WORD, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addSentence (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_SENTENCE, label));
+Any UiForm_addSentence (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_SENTENCE, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addLabel (UiForm me, const char32 *name, const char32 *label) {
-	autoUiField thee (UiForm_addField (me, UI_LABEL, name));
+Any UiForm_addLabel (I, const char32 *name, const char32 *label) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_LABEL, name);
 	thy stringValue = Melder_dup (label);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addBoolean (UiForm me, const char32 *label, int defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_BOOLEAN, label));
+Any UiForm_addBoolean (I, const char32 *label, int defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_BOOLEAN, label);
 	thy integerDefaultValue = defaultValue;
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addText (UiForm me, const char32 *name, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_TEXT, name));
+Any UiForm_addText (I, const char32 *name, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_TEXT, name);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addRadio (UiForm me, const char32 *label, int defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_RADIO, label));
+Any UiForm_addRadio (I, const char32 *label, int defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_RADIO, label);
 	thy integerDefaultValue = defaultValue;
-	return thee.releaseToAmbiguousOwner();
+	thy options = Ordered_create ();
+	return thee.transfer();
 }
 
-UiField UiForm_addOptionMenu (UiForm me, const char32 *label, int defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_OPTIONMENU, label));
+Any UiForm_addOptionMenu (I, const char32 *label, int defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_OPTIONMENU, label);
 	thy integerDefaultValue = defaultValue;
-	return thee.releaseToAmbiguousOwner();
+	thy options = Ordered_create ();
+	return thee.transfer();
 }
 
-UiField UiForm_addList (UiForm me, const char32 *label, long numberOfStrings, const char32 **strings, long defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_LIST, label));
+Any UiForm_addList (I, const char32 *label, long numberOfStrings, const char32 **strings, long defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_LIST, label);
 	thy numberOfStrings = numberOfStrings;
 	thy strings = strings;
 	thy integerDefaultValue = defaultValue;
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addColour (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_COLOUR, label));
+Any UiForm_addColour (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_COLOUR, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
-UiField UiForm_addChannel (UiForm me, const char32 *label, const char32 *defaultValue) {
-	autoUiField thee (UiForm_addField (me, UI_CHANNEL, label));
+Any UiForm_addChannel (I, const char32 *label, const char32 *defaultValue) {
+	iam (UiForm);
+	autoUiField thee = UiForm_addField (me, UI_CHANNEL, label);
 	thy stringDefaultValue = Melder_dup (defaultValue);
-	return thee.releaseToAmbiguousOwner();
+	return thee.transfer();
 }
 
 #define DIALOG_X  150
@@ -699,9 +751,9 @@ UiField UiForm_addChannel (UiForm me, const char32 *label, const char32 *default
 #define HELP_BUTTON_X  20
 #define LIST_HEIGHT  192
 
-static MelderString theFinishBuffer { 0 };
+static MelderString theFinishBuffer = { 0 };
 
-static void appendColon () {
+static void appendColon (void) {
 	long length = theFinishBuffer.length;
 	if (length < 1) return;
 	char32 lastCharacter = theFinishBuffer.string [length - 1];
@@ -709,7 +761,8 @@ static void appendColon () {
 	MelderString_appendCharacter (& theFinishBuffer, U':');
 }
 
-void UiForm_finish (UiForm me) {
+void UiForm_finish (I) {
+	iam (UiForm);
 	if (! my d_dialogParent && ! my isPauseForm) return;
 
 	int size = my numberOfFields;
@@ -734,8 +787,8 @@ void UiForm_finish (UiForm me) {
 		thy y = dialogHeight;
 		dialogHeight +=
 			thy type == UI_BOOLEAN ? Gui_CHECKBUTTON_HEIGHT :
-			thy type == UI_RADIO ? thy options.size * Gui_RADIOBUTTON_HEIGHT +
-				(thy options.size - 1) * Gui_RADIOBUTTON_SPACING :
+			thy type == UI_RADIO ? thy options -> size * Gui_RADIOBUTTON_HEIGHT +
+				(thy options -> size - 1) * Gui_RADIOBUTTON_SPACING :
 			thy type == UI_OPTIONMENU ? Gui_OPTIONMENU_HEIGHT :
 			thy type == UI_LIST ? LIST_HEIGHT :
 			thy type == UI_LABEL && thy stringValue [0] != U'\0' && thy stringValue [str32len (thy stringValue) - 1] != U'.' &&
@@ -812,14 +865,14 @@ void UiForm_finish (UiForm me) {
 				field -> label = GuiLabel_createShown (form, x, x + labelWidth, ylabel, ylabel + Gui_RADIOBUTTON_HEIGHT,
 					theFinishBuffer.string, GuiLabel_RIGHT);
 				GuiRadioGroup_begin ();
-				for (long ibutton = 1; ibutton <= field -> options.size; ibutton ++) {
-					UiOption button = field -> options.at [ibutton];
+				for (long ibutton = 1; ibutton <= field -> options -> size; ibutton ++) {
+					UiOption button = static_cast <UiOption> (field -> options -> item [ibutton]);
 					MelderString_copy (& theFinishBuffer, button -> name);
 					button -> radioButton = GuiRadioButton_createShown (form,
 						fieldX, dialogWidth /* allow to extend into the margin */,
 						y + (ibutton - 1) * (Gui_RADIOBUTTON_HEIGHT + Gui_RADIOBUTTON_SPACING),
 						y + (ibutton - 1) * (Gui_RADIOBUTTON_HEIGHT + Gui_RADIOBUTTON_SPACING) + Gui_RADIOBUTTON_HEIGHT,
-						theFinishBuffer.string, nullptr, nullptr, 0);
+						theFinishBuffer.string, NULL, NULL, 0);
 				}
 				GuiRadioGroup_end ();
 			} break; 
@@ -834,8 +887,8 @@ void UiForm_finish (UiForm me) {
 				field -> label = GuiLabel_createShown (form, x, x + labelWidth, ylabel, ylabel + Gui_OPTIONMENU_HEIGHT,
 					theFinishBuffer.string, GuiLabel_RIGHT);
 				field -> optionMenu = GuiOptionMenu_createShown (form, fieldX, fieldX + fieldWidth, y, y + Gui_OPTIONMENU_HEIGHT, 0);
-				for (long ibutton = 1; ibutton <= field -> options.size; ibutton ++) {
-					UiOption button = field -> options.at [ibutton];
+				for (long ibutton = 1; ibutton <= field -> options -> size; ibutton ++) {
+					UiOption button = static_cast <UiOption> (field -> options -> item [ibutton]);
 					MelderString_copy (& theFinishBuffer, button -> name);
 					GuiOptionMenu_addOption (field -> optionMenu, theFinishBuffer.string);
 				}
@@ -847,7 +900,7 @@ void UiForm_finish (UiForm me) {
 					theFinishBuffer.string, GuiLabel_RIGHT); */
 				field -> checkButton = GuiCheckButton_createShown (form,
 					fieldX, dialogWidth /* allow to extend into the margin */, y, y + Gui_CHECKBUTTON_HEIGHT,
-					theFinishBuffer.string, nullptr, nullptr, 0);
+					theFinishBuffer.string, NULL, NULL, 0);
 			} break;
 			case UI_LIST:
 			{
@@ -866,7 +919,7 @@ void UiForm_finish (UiForm me) {
 	}
 	for (long ifield = 1; ifield <= my numberOfFields; ifield ++)
 		UiField_setDefault (my field [ifield]);
-	/*separator = XmCreateSeparatorGadget (column, "separator", nullptr, 0);*/
+	/*separator = XmCreateSeparatorGadget (column, "separator", NULL, 0);*/
 	y = dialogHeight - Gui_BOTTOM_DIALOG_SPACING - Gui_PUSHBUTTON_HEIGHT;
 	if (my helpTitle) {
 		my helpButton = GuiButton_createShown (form, HELP_BUTTON_X, HELP_BUTTON_X + HELP_BUTTON_WIDTH, y, y + Gui_PUSHBUTTON_HEIGHT,
@@ -926,17 +979,19 @@ void UiForm_finish (UiForm me) {
 	/*GuiObject_show (separator);*/
 }
 
-void UiForm_destroyWhenUnmanaged (UiForm me) {
+void UiForm_destroyWhenUnmanaged (I) {
+	iam (UiForm);
 	my destroyWhenUnmanaged = true;
 }
 
-void UiForm_do (UiForm me, bool modified) {
+void UiForm_do (I, bool modified) {
+	iam (UiForm);
 	my allowExecutionHook = theAllowExecutionHookHint;
 	my allowExecutionClosure = theAllowExecutionClosureHint;
 	Melder_assert (my d_dialogForm);
 	GuiThing_show (my d_dialogForm);
 	if (modified)
-		UiForm_okOrApply (me, nullptr, true);
+		UiForm_okOrApply (me, NULL, true);
 }
 
 static void UiField_argToValue (UiField me, Stackel arg, Interpreter /* interpreter */) {
@@ -996,8 +1051,8 @@ static void UiField_argToValue (UiField me, Stackel arg, Interpreter /* interpre
 			if (arg -> which != Stackel_STRING)
 				Melder_throw (U"Option argument \"", my name, U"\" should be a string, not ", Stackel_whichText (arg), U".");
 			my integerValue = 0;
-			for (int i = 1; i <= my options.size; i ++) {
-				UiOption b = my options.at [i];
+			for (int i = 1; i <= my options -> size; i ++) {
+				UiOption b = static_cast <UiOption> (my options -> item [i]);
 				if (str32equ (arg -> string, b -> name))
 					my integerValue = i;
 			}
@@ -1005,8 +1060,8 @@ static void UiField_argToValue (UiField me, Stackel arg, Interpreter /* interpre
 				/*
 				 * Retry with different case.
 				 */
-				for (int i = 1; i <= my options.size; i ++) {
-					UiOption b = my options.at [i];
+				for (int i = 1; i <= my options -> size; i ++) {
+					UiOption b = static_cast <UiOption> (my options -> item [i]);
 					char32 name2 [100];
 					str32cpy (name2, b -> name);
 					if (iswlower ((int) name2 [0])) name2 [0] = (char32) towupper ((int) name2 [0]);
@@ -1044,7 +1099,8 @@ static void UiField_argToValue (UiField me, Stackel arg, Interpreter /* interpre
 	}
 }
 
-void UiForm_call (UiForm me, int narg, Stackel args, Interpreter interpreter) {
+void UiForm_call (I, int narg, Stackel args, Interpreter interpreter) {
+	iam (UiForm);
 	int size = my numberOfFields, iarg = 0;
 	while (size >= 1 && my field [size] -> type == UI_LABEL)
 		size --;   // ignore trailing fields without a value
@@ -1058,10 +1114,11 @@ void UiForm_call (UiForm me, int narg, Stackel args, Interpreter interpreter) {
 	}
 	if (iarg < narg)
 		Melder_throw (U"Command requires only ", iarg, U" arguments, not the ", narg, U" given.");
-	my okCallback (me, 0, nullptr, nullptr, interpreter, nullptr, false, my buttonClosure);
+	my okCallback (me, 0, NULL, NULL, interpreter, NULL, false, my buttonClosure);
 }
 
-void UiForm_parseString (UiForm me, const char32 *arguments, Interpreter interpreter) {
+void UiForm_parseString (I, const char32 *arguments, Interpreter interpreter) {
+	iam (UiForm);
 	int size = my numberOfFields;
 	while (size >= 1 && my field [size] -> type == UI_LABEL)
 		size --;   // ignore trailing fields without a value
@@ -1073,7 +1130,7 @@ void UiForm_parseString (UiForm me, const char32 *arguments, Interpreter interpr
 		/*
 		 * Skip spaces until next argument.
 		 */
-		while (*arguments == U' ' || *arguments == U'\t') arguments ++;
+		while (*arguments == ' ' || *arguments == '\t') arguments ++;
 		/*
 		 * The argument is everything up to the next space, or, if that starts with a double quote,
 		 * everything between this quote and the matching double quote;
@@ -1083,7 +1140,7 @@ void UiForm_parseString (UiForm me, const char32 *arguments, Interpreter interpr
 		 * will be passed to the dialog as a single argument containing the text
 		 *     I said "hello"
 		 */
-		if (*arguments == U'\"') {
+		if (*arguments == '\"') {
 			arguments ++;   // do not include leading double quote
 			for (;;) {
 				if (*arguments == U'\0')
@@ -1107,36 +1164,37 @@ void UiForm_parseString (UiForm me, const char32 *arguments, Interpreter interpr
 	 * Leading spaces are skipped, but trailing spaces are included.
 	 */
 	if (size > 0) {
-		while (*arguments == U' ' || *arguments == U'\t') arguments ++;
+		while (*arguments == ' ' || *arguments == '\t') arguments ++;
 		try {
 			UiField_stringToValue (my field [size], arguments, interpreter);
 		} catch (MelderError) {
 			Melder_throw (U"Don't understand contents of field \"", my field [size] -> name, U"\".");
 		}
 	}
-	my okCallback (me, 0, nullptr, nullptr, interpreter, nullptr, false, my buttonClosure);
+	my okCallback (me, 0, NULL, NULL, interpreter, NULL, false, my buttonClosure);
 }
 
 void UiForm_parseStringE (EditorCommand cmd, int narg, Stackel args, const char32 *arguments, Interpreter interpreter) {
 	if (args)
-		UiForm_call (cmd -> d_uiform.get(), narg, args, interpreter);
+		UiForm_call(cmd -> d_uiform, narg, args, interpreter);
 	else
-		UiForm_parseString (cmd -> d_uiform.get(), arguments, interpreter);
+		UiForm_parseString (cmd -> d_uiform, arguments, interpreter);
 }
 
 static UiField findField (UiForm me, const char32 *fieldName) {
 	for (int ifield = 1; ifield <= my numberOfFields; ifield ++)
 		if (str32equ (fieldName, my field [ifield] -> name)) return my field [ifield];
-	return nullptr;
+	return NULL;
 }
 
 static void fatalField (UiForm dia) {
 	Melder_fatal (U"Wrong field in command window \"", dia -> name, U"\".");
 }
 
-void UiForm_setReal (UiForm me, const char32 *fieldName, double value) {
+void UiForm_setReal (I, const char32 *fieldName, double value) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_setReal:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_setReal:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_REAL: case UI_REAL_OR_UNDEFINED: case UI_POSITIVE: {
 			if (value == Melder_atof (field -> stringDefaultValue)) {
@@ -1162,9 +1220,10 @@ void UiForm_setReal (UiForm me, const char32 *fieldName, double value) {
 	}
 }
 
-void UiForm_setInteger (UiForm me, const char32 *fieldName, long value) {
+void UiForm_setInteger (I, const char32 *fieldName, long value) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_setInteger:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_setInteger:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_INTEGER: case UI_NATURAL: case UI_CHANNEL: {
 			if (value == Melder_atoi (field -> stringDefaultValue)) {
@@ -1175,15 +1234,15 @@ void UiForm_setInteger (UiForm me, const char32 *fieldName, long value) {
 		} break; case UI_BOOLEAN: {
 			GuiCheckButton_setValue (field -> checkButton, value);
 		} break; case UI_RADIO: {
-			if (value < 1 || value > field -> options.size) value = 1;   // guard against incorrect prefs file
-			for (int i = 1; i <= field -> options.size; i ++) {
+			if (value < 1 || value > field -> options -> size) value = 1;   // guard against incorrect prefs file
+			for (int i = 1; i <= field -> options -> size; i ++) {
 				if (i == value) {
-					UiOption b = field -> options.at [i];
+					UiOption b = static_cast <UiOption> (field -> options -> item [i]);
 					GuiRadioButton_set (b -> radioButton);
 				}
 			}
 		} break; case UI_OPTIONMENU: {
-			if (value < 1 || value > field -> options.size) value = 1;   // guard against incorrect prefs file
+			if (value < 1 || value > field -> options -> size) value = 1;   // guard against incorrect prefs file
 			GuiOptionMenu_setValue (field -> optionMenu, value);
 		} break; case UI_LIST: {
 			if (value < 1 || value > field -> numberOfStrings) value = 1;   // guard against incorrect prefs file
@@ -1194,10 +1253,11 @@ void UiForm_setInteger (UiForm me, const char32 *fieldName, long value) {
 	}
 }
 
-void UiForm_setString (UiForm me, const char32 *fieldName, const char32 *value /* cattable */) {
+void UiForm_setString (I, const char32 *fieldName, const char32 *value /* cattable */) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_setString:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
-	if (! value) value = U"";   // accept null strings
+	if (field == NULL) Melder_fatal (U"(UiForm_setString:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (value == NULL) value = U"";   /* Accept NULL strings. */
 	switch (field -> type) {
 		case UI_REAL: case UI_REAL_OR_UNDEFINED: case UI_POSITIVE: case UI_INTEGER: case UI_NATURAL:
 			case UI_WORD: case UI_SENTENCE: case UI_COLOUR: case UI_CHANNEL: case UI_TEXT:
@@ -1206,8 +1266,8 @@ void UiForm_setString (UiForm me, const char32 *fieldName, const char32 *value /
 		} break; case UI_LABEL: {
 			GuiLabel_setText (field -> label, value);
 		} break; case UI_RADIO: {
-			for (int i = 1; i <= field -> options.size; i ++) {
-				UiOption b = field -> options.at [i];
+			for (int i = 1; i <= field -> options -> size; i ++) {
+				UiOption b = static_cast <UiOption> (field -> options -> item [i]);
 				if (str32equ (value, b -> name)) {
 					GuiRadioButton_set (b -> radioButton);
 				}
@@ -1215,8 +1275,8 @@ void UiForm_setString (UiForm me, const char32 *fieldName, const char32 *value /
 			/* If not found: do nothing (guard against incorrect prefs file). */
 		} break; case UI_OPTIONMENU: {
 			int integerValue = 0;
-			for (int i = 1; i <= field -> options.size; i ++) {
-				UiOption b = field -> options.at [i];
+			for (int i = 1; i <= field -> options -> size; i ++) {
+				UiOption b = static_cast <UiOption> (field -> options -> item [i]);
 				if (str32equ (value, b -> name)) {
 					integerValue = i;
 					break;
@@ -1238,7 +1298,7 @@ void UiForm_setString (UiForm me, const char32 *fieldName, const char32 *value /
 
 static UiField findField_check (UiForm me, const char32 *fieldName) {
 	UiField result = findField (me, fieldName);
-	if (! result) {
+	if (result == NULL) {
 		Melder_throw (U"Cannot find field \"", fieldName, U"\" in form.\n"
 			U"The script may have changed while the form was open.\n"
 			U"Please click Cancel in the form and try again.");
@@ -1246,9 +1306,10 @@ static UiField findField_check (UiForm me, const char32 *fieldName) {
 	return result;
 }
 
-double UiForm_getReal (UiForm me, const char32 *fieldName) {
+double UiForm_getReal (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_getReal:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_getReal:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_REAL: case UI_REAL_OR_UNDEFINED: case UI_POSITIVE: {
 			return field -> realValue;
@@ -1259,7 +1320,8 @@ double UiForm_getReal (UiForm me, const char32 *fieldName) {
 	return 0.0;
 }
 
-double UiForm_getReal_check (UiForm me, const char32 *fieldName) {
+double UiForm_getReal_check (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField_check (me, fieldName);
 	switch (field -> type) {
 		case UI_REAL: case UI_REAL_OR_UNDEFINED: case UI_POSITIVE: {
@@ -1273,9 +1335,10 @@ double UiForm_getReal_check (UiForm me, const char32 *fieldName) {
 	return 0.0;
 }
 
-long UiForm_getInteger (UiForm me, const char32 *fieldName) {
+long UiForm_getInteger (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_getInteger:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_getInteger:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_INTEGER: case UI_NATURAL: case UI_CHANNEL: case UI_BOOLEAN: case UI_RADIO:
 			case UI_OPTIONMENU: case UI_LIST:
@@ -1288,7 +1351,8 @@ long UiForm_getInteger (UiForm me, const char32 *fieldName) {
 	return 0L;
 }
 
-long UiForm_getInteger_check (UiForm me, const char32 *fieldName) {
+long UiForm_getInteger_check (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField_check (me, fieldName);
 	switch (field -> type) {
 		case UI_INTEGER: case UI_NATURAL: case UI_CHANNEL: case UI_BOOLEAN: case UI_RADIO:
@@ -1304,14 +1368,15 @@ long UiForm_getInteger_check (UiForm me, const char32 *fieldName) {
 	return 0L;
 }
 
-char32 * UiForm_getString (UiForm me, const char32 *fieldName) {
+char32 * UiForm_getString (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_getString:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_getString:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_WORD: case UI_SENTENCE: case UI_TEXT: {
 			return field -> stringValue;
 		} break; case UI_RADIO: case UI_OPTIONMENU: {
-			UiOption b = field -> options.at [field -> integerValue];
+			UiOption b = static_cast <UiOption> (field -> options -> item [field -> integerValue]);
 			return b -> name;
 		} break; case UI_LIST: {
 			return (char32 *) field -> strings [field -> integerValue];
@@ -1319,16 +1384,17 @@ char32 * UiForm_getString (UiForm me, const char32 *fieldName) {
 			fatalField (me);
 		}
 	}
-	return nullptr;
+	return NULL;
 }
 
-char32 * UiForm_getString_check (UiForm me, const char32 *fieldName) {
+char32 * UiForm_getString_check (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField_check (me, fieldName);
 	switch (field -> type) {
 		case UI_WORD: case UI_SENTENCE: case UI_TEXT: {
 			return field -> stringValue;
 		} break; case UI_RADIO: case UI_OPTIONMENU: {
-			UiOption b = field -> options.at [field -> integerValue];
+			UiOption b = static_cast <UiOption> (field -> options -> item [field -> integerValue]);
 			return b -> name;
 		} break; case UI_LIST: {
 			return (char32 *) field -> strings [field -> integerValue];
@@ -1338,12 +1404,13 @@ char32 * UiForm_getString_check (UiForm me, const char32 *fieldName) {
 				U"Please click Cancel in the form and try again.");
 		}
 	}
-	return nullptr;
+	return NULL;
 }
 
-Graphics_Colour UiForm_getColour (UiForm me, const char32 *fieldName) {
+Graphics_Colour UiForm_getColour (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField (me, fieldName);
-	if (! field) Melder_fatal (U"(UiForm_getColour:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
+	if (field == NULL) Melder_fatal (U"(UiForm_getColour:) No field \"", fieldName, U"\" in command window \"", my name, U"\".");
 	switch (field -> type) {
 		case UI_COLOUR: {
 			return field -> colourValue;
@@ -1354,7 +1421,8 @@ Graphics_Colour UiForm_getColour (UiForm me, const char32 *fieldName) {
 	return Graphics_BLACK;
 }
 
-Graphics_Colour UiForm_getColour_check (UiForm me, const char32 *fieldName) {
+Graphics_Colour UiForm_getColour_check (I, const char32 *fieldName) {
+	iam (UiForm);
 	UiField field = findField_check (me, fieldName);
 	switch (field -> type) {
 		case UI_COLOUR: {
@@ -1368,7 +1436,8 @@ Graphics_Colour UiForm_getColour_check (UiForm me, const char32 *fieldName) {
 	return Graphics_BLACK;
 }
 
-void UiForm_Interpreter_addVariables (UiForm me, Interpreter interpreter) {
+void UiForm_Interpreter_addVariables (I, Interpreter interpreter) {
+	iam (UiForm);
 	static MelderString lowerCaseFieldName { 0 };
 	for (int ifield = 1; ifield <= my numberOfFields; ifield ++) {
 		UiField field = my field [ifield];
@@ -1393,7 +1462,7 @@ void UiForm_Interpreter_addVariables (UiForm me, Interpreter interpreter) {
 				MelderString_appendCharacter (& lowerCaseFieldName, U'$');
 				var = Interpreter_lookUpVariable (interpreter, lowerCaseFieldName.string);
 				Melder_free (var -> stringValue);
-				UiOption b = field -> options.at [field -> integerValue];
+				UiOption b = static_cast <UiOption> (field -> options -> item [field -> integerValue]);
 				var -> stringValue = Melder_dup (b -> name);
 			} break; case UI_LIST: {
 				InterpreterVariable var = Interpreter_lookUpVariable (interpreter, lowerCaseFieldName.string);
diff --git a/sys/Ui.h b/sys/Ui.h
index cbfc61f..ae3ae91 100644
--- a/sys/Ui.h
+++ b/sys/Ui.h
@@ -28,20 +28,20 @@ Thing_declare (EditorCommand);
 
 /* Example of usage:
 {
-	static UiForm dia = nullptr;
-	if (! dia) {
-		UiField radio;
+	static Any dia = NULL;
+	if (dia == NULL) {
+		Any radio;
 		dia = UiForm_create
 		  (topShell,   // The parent GuiWindow of the dialog window.
 			U"Create a new person",   // The window title.
 			DO_Person_create,   // The routine to call when the user clicks OK.
-			nullptr,   // The last argument to the OK routine (also for the other buttons). Could be a ScriptEditor, or an EditorCommand, or an Interpreter, or null.
+			NULL,   // The last argument to the OK routine (also for the other buttons). Could be a ScriptEditor, or an EditorCommand, or an Interpreter, or NULL.
 			U"Create person...",   // The invoking button title.
-			U"Create person...");   // The help string; may be null.
+			U"Create person...");   // The help string; may be NULL.
 		UiForm_addNatural (dia, U"Age (years)", U"18");
 		UiForm_addPositive (dia, U"Length (metres)", U"1.68 (average)");
-		UiForm_addBoolean (dia, U"Beard", false);
-		radio = UiForm_addRadio (dia, U"Sex", 1);
+		UiForm_addBoolean (dia, U"Beard", FALSE);
+		radio = UiForm_addRadio (U"Sex", 1);
 			UiRadio_addButton (radio, U"Female");
 			UiRadio_addButton (radio, U"Male");
 		UiForm_addWord (dia, U"Colour", U"black");
@@ -71,11 +71,6 @@ Thing_declare (EditorCommand);
 	are restored to all items in the form.
 */
 
-Thing_define (UiOption, Thing) {
-	GuiRadioButton radioButton;
-	GuiObject menuItem;
-};
-
 Thing_define (UiField, Thing) {
 	int type;
 	const char32 *formLabel;
@@ -84,7 +79,7 @@ Thing_define (UiField, Thing) {
 	char32 *stringValue; const char32 *stringDefaultValue;
 	Graphics_Colour colourValue;
 	char *stringValueA;
-	OrderedOf<structUiOption> options;
+	Ordered options;
 	long numberOfStrings;
 	const char32 **strings;
 	GuiLabel label;
@@ -95,7 +90,7 @@ Thing_define (UiField, Thing) {
 	GuiOptionMenu optionMenu;
 	int y;
 
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
@@ -107,37 +102,22 @@ typedef void (*UiCallback) (UiForm sendingForm, int narg, Stackel args, const ch
 Thing_define (UiForm, Thing) {
 	EditorCommand command;
 	GuiWindow d_dialogParent;
-	const char32 *invokingButtonTitle, *helpTitle;
+	GuiDialog d_dialogForm;
 	UiCallback okCallback;
+	void (*applyCallback) (Any dia, void *closure);
+	void (*cancelCallback) (Any dia, void *closure);
 	void *buttonClosure;
-
-	/*
-	 * In case the validity of the form depends on the selected objects.
-	 */
-	bool (*allowExecutionHook) (void *closure);
-	void *allowExecutionClosure;
-
-	/*
-	 * In case the form is built by specifying buttons (rather than a system-built-in file dialog).
-	 */
-	GuiDialog d_dialogForm;
-	void (*applyCallback) (UiForm dia, void *closure);
-	void (*cancelCallback) (UiForm dia, void *closure);
+	const char32 *invokingButtonTitle, *helpTitle;
 	int numberOfContinueButtons, defaultContinueButton, cancelContinueButton, clickedContinueButton;
 	const char32 *continueTexts [1 + MAXIMUM_NUMBER_OF_CONTINUE_BUTTONS];
 	int numberOfFields;
 	UiField field [1 + MAXIMUM_NUMBER_OF_FIELDS];
 	GuiButton okButton, cancelButton, revertButton, helpButton, applyButton, continueButtons [1 + MAXIMUM_NUMBER_OF_CONTINUE_BUTTONS];
 	bool destroyWhenUnmanaged, isPauseForm;
+	bool (*allowExecutionHook) (void *closure);
+	void *allowExecutionClosure;
 
-	/*
-	 * In case the form contains a file.
-	 */
-	structMelderFile file;
-	int shiftKeyPressed;
-	bool allowMultipleFiles;   // for input
-
-	void v_destroy () noexcept
+	void v_destroy ()
 		override;
 };
 
@@ -145,46 +125,46 @@ Thing_define (UiForm, Thing) {
 UiForm UiForm_create (GuiWindow parent, const char32 *title,
 	UiCallback okCallback, void *buttonClosure,
 	const char32 *invokingButtonTitle, const char32 *helpTitle);
-UiField UiForm_addReal (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addRealOrUndefined (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addPositive (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addInteger (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addNatural (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addWord (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addSentence (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addLabel (UiForm me, const char32 *name, const char32 *label);
-UiField UiForm_addBoolean (UiForm me, const char32 *label, int defaultValue);
-UiField UiForm_addText (UiForm me, const char32 *name, const char32 *defaultValue);
-UiField UiForm_addRadio (UiForm me, const char32 *label, int defaultValue);
-UiOption UiRadio_addButton (UiField me, const char32 *label);
-UiField UiForm_addOptionMenu (UiForm me, const char32 *label, int defaultValue);
-UiOption UiOptionMenu_addButton (UiField me, const char32 *label);
-UiField UiForm_addList (UiForm me, const char32 *label, long numberOfStrings, const char32 **strings, long defaultValue);
-UiField UiForm_addColour (UiForm me, const char32 *label, const char32 *defaultValue);
-UiField UiForm_addChannel (UiForm me, const char32 *label, const char32 *defaultValue);
-void UiForm_finish (UiForm me);
-
-void UiForm_destroyWhenUnmanaged (UiForm me);
-void UiForm_setPauseForm (UiForm me,
+Any UiForm_addReal (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addRealOrUndefined (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addPositive (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addInteger (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addNatural (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addWord (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addSentence (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addLabel (I, const char32 *name, const char32 *label);
+Any UiForm_addBoolean (I, const char32 *label, int defaultValue);
+Any UiForm_addText (I, const char32 *name, const char32 *defaultValue);
+Any UiForm_addRadio (I, const char32 *label, int defaultValue);
+Any UiRadio_addButton (I, const char32 *label);
+Any UiForm_addOptionMenu (I, const char32 *label, int defaultValue);
+Any UiOptionMenu_addButton (I, const char32 *label);
+Any UiForm_addList (I, const char32 *label, long numberOfStrings, const char32 **strings, long defaultValue);
+Any UiForm_addColour (I, const char32 *label, const char32 *defaultValue);
+Any UiForm_addChannel (I, const char32 *label, const char32 *defaultValue);
+void UiForm_finish (I);
+
+void UiForm_destroyWhenUnmanaged (I);
+void UiForm_setPauseForm (I,
 	int numberOfContinueButtons, int defaultContinueButton, int cancelContinueButton,
 	const char32 *continue1, const char32 *continue2, const char32 *continue3,
 	const char32 *continue4, const char32 *continue5, const char32 *continue6,
 	const char32 *continue7, const char32 *continue8, const char32 *continue9,
 	const char32 *continue10,
-	void (*cancelCallback) (UiForm dia, void *closure));
+	void (*cancelCallback) (Any dia, void *closure));
 
 /* The following three routines set values in widgets. */
 /* Do not call from batch. */
 /* 'fieldName' is name from UiForm_addXXXXXX (), */
 /* without anything from and including the first " (" or ":". */
-void UiForm_setString (UiForm me, const char32 *fieldName, const char32 *text /* cattable */);
+void UiForm_setString (I, const char32 *fieldName, const char32 *text /* cattable */);
 	/* Real, Positive, Integer, Natural, Word, Sentence, Label, Text, Radio, List. */
-void UiForm_setReal (UiForm me, const char32 *fieldName, double value);
+void UiForm_setReal (I, const char32 *fieldName, double value);
 	/* Real, Positive. */
-void UiForm_setInteger (UiForm me, const char32 *fieldName, long value);
+void UiForm_setInteger (I, const char32 *fieldName, long value);
 	/* Integer, Natural, Boolean, Radio, List. */
 
-void UiForm_do (UiForm me, bool modified);
+void UiForm_do (I, bool modified);
 /*
 	Function:
 		put the form on the screen.
@@ -217,19 +197,19 @@ void UiForm_do (UiForm me, bool modified);
 /* The field names are the 'label' or 'name' arguments to UiForm_addXXXXXX (), */
 /* without anything from parentheses or from a colon. */
 /* These routines work from the screen and from batch. */
-double UiForm_getReal (UiForm me, const char32 *fieldName);	// Real, Positive
-long UiForm_getInteger (UiForm me, const char32 *fieldName);	// Integer, Natural, Boolean, Radio, List
-char32 * UiForm_getString (UiForm me, const char32 *fieldName);	// Word, Sentence, Text, Radio, List
-Graphics_Colour UiForm_getColour (UiForm me, const char32 *fieldName);   // Colour
-MelderFile UiForm_getFile (UiForm me, const char32 *fieldName); // FileIn, FileOut
+double UiForm_getReal (I, const char32 *fieldName);	// Real, Positive
+long UiForm_getInteger (I, const char32 *fieldName);	// Integer, Natural, Boolean, Radio, List
+char32 * UiForm_getString (I, const char32 *fieldName);	// Word, Sentence, Text, Radio, List
+Graphics_Colour UiForm_getColour (I, const char32 *fieldName);   // Colour
+MelderFile UiForm_getFile (I, const char32 *fieldName); // FileIn, FileOut
 
-double UiForm_getReal_check (UiForm me, const char32 *fieldName);
-long UiForm_getInteger_check (UiForm me, const char32 *fieldName);
-char32 * UiForm_getString_check (UiForm me, const char32 *fieldName);
-Graphics_Colour UiForm_getColour_check (UiForm me, const char32 *fieldName);
+double UiForm_getReal_check (I, const char32 *fieldName);
+long UiForm_getInteger_check (I, const char32 *fieldName);
+char32 * UiForm_getString_check (I, const char32 *fieldName);
+Graphics_Colour UiForm_getColour_check (I, const char32 *fieldName);
 
-void UiForm_call (UiForm me, int narg, Stackel args, Interpreter interpreter);
-void UiForm_parseString (UiForm me, const char32 *arguments, Interpreter interpreter);
+void UiForm_call (I, int narg, Stackel args, Interpreter interpreter);
+void UiForm_parseString (I, const char32 *arguments, Interpreter interpreter);
 
 UiForm UiInfile_create (GuiWindow parent, const char32 *title,
   UiCallback okCallback, void *okClosure,
@@ -239,13 +219,13 @@ UiForm UiOutfile_create (GuiWindow parent, const char32 *title,
   UiCallback okCallback, void *okClosure,
   const char32 *invokingButtonTitle, const char32 *helpTitle);
 
-void UiInfile_do (UiForm me);
+void UiInfile_do (Any dia);
 
-void UiOutfile_do (UiForm me, const char32 *defaultName);
+void UiOutfile_do (Any dia, const char32 *defaultName);
 
-MelderFile UiFile_getFile (UiForm me);
+MelderFile UiFile_getFile (Any dia);
 
-void UiFile_hide ();
+void UiFile_hide (void);
 /*
 	Hides the visible UiFile that was opened most recently.
 	Normally, file selectors stay open until their okCallback has completed.
@@ -259,13 +239,13 @@ void UiFile_hide ();
 void UiHistory_write (const char32 *string);
 void UiHistory_write_expandQuotes (const char32 *string);
 void UiHistory_write_colonize (const char32 *string);
-char32 *UiHistory_get ();
-void UiHistory_clear ();
+char32 *UiHistory_get (void);
+void UiHistory_clear (void);
 
 void Ui_setAllowExecutionHook (bool (*allowExecutionHook) (void *closure), void *allowExecutionClosure);
 
-void UiForm_widgetsToValues (UiForm me);
-void UiForm_Interpreter_addVariables (UiForm me, Interpreter interpreter);
+void UiForm_widgetsToValues (I);
+void UiForm_Interpreter_addVariables (I, Interpreter interpreter);
 int UiForm_getClickedContinueButton (UiForm me);
 
 /* End of file Ui.h */
diff --git a/sys/UiFile.cpp b/sys/UiFile.cpp
index 22f1bb6..8fff521 100644
--- a/sys/UiFile.cpp
+++ b/sys/UiFile.cpp
@@ -20,36 +20,67 @@
 #include "UiP.h"
 #include "Editor.h"
 
-static void UiFile_init (UiForm me, GuiWindow parent, const char32 *title) {
-	my d_dialogParent = parent;
+Thing_define (UiFile, Thing) {
+	EditorCommand command;
+	GuiWindow parent;
+	structMelderFile file;
+	const char32 *invokingButtonTitle, *helpTitle;
+	UiCallback okCallback;
+	void *okClosure;
+	int shiftKeyPressed;
+
+	void v_destroy ()
+		override;
+};
+
+void structUiFile :: v_destroy () {
+	Melder_free (invokingButtonTitle);
+	UiFile_Parent :: v_destroy ();
+}
+
+Thing_implement (UiFile, Thing, 0);
+
+static void UiFile_init (I, GuiWindow parent, const char32 *title) {
+	iam (UiFile);
+	my parent = parent;
 	Thing_setName (me, title);
 }
 
-MelderFile UiFile_getFile (UiForm me) {
+MelderFile UiFile_getFile (I) {
+	iam (UiFile);
 	return & my file;
 }
 
 /********** READING A FILE **********/
 
+Thing_define (UiInfile, UiFile) {
+	// new data:
+	public:
+		bool allowMultipleFiles;
+};
+
+Thing_implement (UiInfile, UiFile, 0);
+
 UiForm UiInfile_create (GuiWindow parent, const char32 *title,
 	UiCallback okCallback, void *okClosure,
 	const char32 *invokingButtonTitle, const char32 *helpTitle, bool allowMultipleFiles)
 {
-	autoUiForm me = Thing_new (UiForm);
+	UiInfile me = Thing_new (UiInfile);
 	my okCallback = okCallback;
-	my buttonClosure = okClosure;
+	my okClosure = okClosure;
 	my invokingButtonTitle = Melder_dup (invokingButtonTitle);
 	my helpTitle = helpTitle;
 	my allowMultipleFiles = allowMultipleFiles;
-	UiFile_init (me.get(), parent, title);
-	return me.releaseToAmbiguousOwner();
+	UiFile_init (me, parent, title);
+	return (UiForm) me;
 }
 
-void UiInfile_do (UiForm me) {
+void UiInfile_do (I) {
+	iam (UiInfile);
 	try {
-		autoStringSet infileNames = GuiFileSelect_getInfileNames (my d_dialogParent, my name, my allowMultipleFiles);
-		for (long ifile = 1; ifile <= infileNames->size; ifile ++) {
-			SimpleString infileName = infileNames->at [ifile];
+		autoSortedSetOfString infileNames = GuiFileSelect_getInfileNames (my parent, my name, my allowMultipleFiles);
+		for (long ifile = 1; ifile <= infileNames -> size; ifile ++) {
+			SimpleString infileName = (SimpleString) infileNames -> item [ifile];
 			Melder_pathToFile (infileName -> string, & my file);
 			UiHistory_write (U"\n");
 			UiHistory_write_colonize (my invokingButtonTitle);
@@ -59,7 +90,7 @@ void UiInfile_do (UiForm me) {
 			structMelderFile file;
 			MelderFile_copy (& my file, & file);
 			try {
-				my okCallback (me, 0, nullptr, nullptr, nullptr, my invokingButtonTitle, false, my buttonClosure);
+				my okCallback ((UiForm) me, 0, NULL, NULL, NULL, my invokingButtonTitle, false, my okClosure);
 			} catch (MelderError) {
 				Melder_throw (U"File ", & file, U" not finished.");
 			}
@@ -71,44 +102,54 @@ void UiInfile_do (UiForm me) {
 
 /********** WRITING A FILE **********/
 
+Thing_define (UiOutfile, UiFile) {
+	// new data:
+	public:
+		bool (*allowExecutionHook) (void *closure);
+		void *allowExecutionClosure;   // I am owner (see destroy)
+};
+
+Thing_implement (UiOutfile, UiFile, 0);
+
 UiForm UiOutfile_create (GuiWindow parent, const char32 *title,
 	UiCallback okCallback, void *okClosure, const char32 *invokingButtonTitle, const char32 *helpTitle)
 {
-	autoUiForm me = Thing_new (UiForm);
+	UiOutfile me = Thing_new (UiOutfile);
 	my okCallback = okCallback;
-	my buttonClosure = okClosure;
+	my okClosure = okClosure;
 	my invokingButtonTitle = Melder_dup (invokingButtonTitle);
 	my helpTitle = helpTitle;
-	UiFile_init (me.get(), parent, title);
+	UiFile_init (me, parent, title);
 	my allowExecutionHook = theAllowExecutionHookHint;
 	my allowExecutionClosure = theAllowExecutionClosureHint;
-	return me.releaseToAmbiguousOwner();
+	return (UiForm) me;
 }
 
-static void commonOutfileCallback (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString,
-	Interpreter interpreter, const char32 * /* invokingButtonTitle */, bool /* modified */, void *closure)
-{
+static void commonOutfileCallback (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *closure) {
 	EditorCommand command = (EditorCommand) closure;
+	(void) invokingButtonTitle;
+	(void) modified;
 	command -> commandCallback (command -> d_editor, command, sendingForm, narg, args, sendingString, interpreter);
 }
 
 UiForm UiOutfile_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle) {
-	Editor editor = cmd -> d_editor;
-	UiForm dia = UiOutfile_create (editor -> d_windowForm, title, commonOutfileCallback, cmd, invokingButtonTitle, helpTitle);
+	Editor editor = (Editor) cmd -> d_editor;
+	UiOutfile dia = (UiOutfile) UiOutfile_create (editor -> d_windowForm, title, commonOutfileCallback, cmd, invokingButtonTitle, helpTitle);
 	dia -> command = cmd;
-	return dia;
+	return (UiForm) dia;   // BUG
 }
 
 UiForm UiInfile_createE (EditorCommand cmd, const char32 *title, const char32 *invokingButtonTitle, const char32 *helpTitle) {
-	Editor editor = cmd -> d_editor;
-	UiForm dia = UiInfile_create (editor -> d_windowForm, title, commonOutfileCallback, cmd, invokingButtonTitle, helpTitle, false);
+	Editor editor = (Editor) cmd -> d_editor;
+	UiInfile dia = (UiInfile) UiInfile_create (editor -> d_windowForm, title, commonOutfileCallback, cmd, invokingButtonTitle, helpTitle, false);
 	dia -> command = cmd;
-	return dia;
+	return (UiForm) dia;   // BUG
 }
 
-void UiOutfile_do (UiForm me, const char32 *defaultName) {
-	char32 *outfileName = GuiFileSelect_getOutfileName (nullptr, my name, defaultName);
-	if (! outfileName) return;   // cancelled
+void UiOutfile_do (I, const char32 *defaultName) {
+	iam (UiOutfile);
+	char32 *outfileName = GuiFileSelect_getOutfileName (NULL, my name, defaultName);
+	if (outfileName == NULL) return;   // cancelled
 	if (my allowExecutionHook && ! my allowExecutionHook (my allowExecutionClosure)) {
 		Melder_flushError (U"Dialog \"", my name, U"\" cancelled.");
 		return;
@@ -119,7 +160,7 @@ void UiOutfile_do (UiForm me, const char32 *defaultName) {
 	UiHistory_write (U"\n");
 	UiHistory_write_colonize (my invokingButtonTitle);
 	try {
-		my okCallback (me, 0, nullptr, nullptr, nullptr, my invokingButtonTitle, false, my buttonClosure);
+		my okCallback ((UiForm) me, 0, NULL, NULL, NULL, my invokingButtonTitle, false, my okClosure);
 	} catch (MelderError) {
 		Melder_flushError (U"File ", & file, U" not finished.");
 	}
diff --git a/sys/UiPause.cpp b/sys/UiPause.cpp
index 3460047..9cd229f 100644
--- a/sys/UiPause.cpp
+++ b/sys/UiPause.cpp
@@ -29,8 +29,8 @@
 #include "UiPause.h"
 #include "praatP.h"
 
-static UiForm thePauseForm = nullptr;
-static UiField thePauseFormRadio = nullptr;
+static UiForm thePauseForm = NULL;
+static Any thePauseFormRadio = NULL;
 static int thePauseForm_clicked = 0;
 static int theCancelContinueButton = 0;
 static int theEventLoopDepth = 0;
@@ -46,7 +46,9 @@ static void thePauseFormOkCallback (UiForm /* sendingForm */, int /* narg */, St
 	if (thePauseForm_clicked != theCancelContinueButton)
 		UiForm_Interpreter_addVariables (thePauseForm, (Interpreter) closure);   // 'closure', not 'interpreter' or 'theInterpreter'!
 }
-static void thePauseFormCancelCallback (UiForm /* dia */, void * /* closure */) {
+static void thePauseFormCancelCallback (Any dia, void *closure) {
+	(void) dia;
+	(void) closure;
 	if (theCancelContinueButton != 0) {
 		thePauseForm_clicked = theCancelContinueButton;
 	} else {
@@ -59,69 +61,69 @@ void UiPause_begin (GuiWindow topShell, const char32 *title, Interpreter interpr
 	forget (thePauseForm);   // in case an earlier build-up of another pause window was interrupted
 	thePauseForm = UiForm_create (topShell, Melder_cat (U"Pause: ", title),
 		thePauseFormOkCallback, interpreter,   // pass interpreter as closure!
-		nullptr, nullptr);
+		NULL, NULL);
 }
 void UiPause_real (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"real\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addReal (thePauseForm, label, defaultValue);
 }
 void UiPause_positive (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"positive\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addPositive (thePauseForm, label, defaultValue);
 }
 void UiPause_integer (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"integer\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addInteger (thePauseForm, label, defaultValue);
 }
 void UiPause_natural (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"natural\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addNatural (thePauseForm, label, defaultValue);
 }
 void UiPause_word (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"word\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addWord (thePauseForm, label, defaultValue);
 }
 void UiPause_sentence (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"sentence\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addSentence (thePauseForm, label, defaultValue);
 }
 void UiPause_text (const char32 *label, const char32 *defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"text\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addText (thePauseForm, label, defaultValue);
 }
 void UiPause_boolean (const char32 *label, int defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"boolean\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addBoolean (thePauseForm, label, defaultValue);
 }
 void UiPause_choice (const char32 *label, int defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"choice\" has to be between a \"beginPause\" and an \"endPause\".");
 	thePauseFormRadio = UiForm_addRadio (thePauseForm, label, defaultValue);
 }
 void UiPause_optionMenu (const char32 *label, int defaultValue) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"optionMenu\" has to be between a \"beginPause\" and an \"endPause\".");
 	thePauseFormRadio = UiForm_addOptionMenu (thePauseForm, label, defaultValue);
 }
 void UiPause_option (const char32 *label) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"option\" has to be between a \"beginPause\" and an \"endPause\".");
-	if (! thePauseFormRadio) {
+	if (thePauseFormRadio == NULL) {
 		forget (thePauseForm);
 		Melder_throw (U"Found the function \"option\" without a preceding \"choice\" or \"optionMenu\".");
 	}
 	UiOptionMenu_addButton (thePauseFormRadio, label);
 }
 void UiPause_comment (const char32 *label) {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"The function \"comment\" has to be between a \"beginPause\" and an \"endPause\".");
 	UiForm_addLabel (thePauseForm, U"", label);
 }
@@ -131,7 +133,7 @@ int UiPause_end (int numberOfContinueButtons, int defaultContinueButton, int can
 	const char32 *continueText7, const char32 *continueText8, const char32 *continueText9,
 	const char32 *continueText10, Interpreter interpreter)
 {
-	if (! thePauseForm)
+	if (thePauseForm == NULL)
 		Melder_throw (U"Found the function \"endPause\" without a preceding \"beginPause\".");
 	UiForm_setPauseForm (thePauseForm, numberOfContinueButtons, defaultContinueButton, cancelContinueButton,
 		continueText1, continueText2, continueText3, continueText4, continueText5,
@@ -150,55 +152,57 @@ int UiPause_end (int numberOfContinueButtons, int defaultContinueButton, int can
 	/*
 	 * Wait for the user to click Stop or Continue.
 	 */
-	{// scope
-		autoMelderSaveDefaultDir saveDir;
-		thePauseForm_clicked = 0;
-		Melder_assert (theEventLoopDepth == 0);
-		theEventLoopDepth ++;
-		try {
-			#if gtk
-				do {
-					gtk_main_iteration ();
-				} while (! thePauseForm_clicked);
-			#elif cocoa
-				do {
-					NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-					//[theDemoEditor -> d_windowForm -> d_cocoaWindow   flushWindow];
-					NSEvent *nsEvent = [NSApp
-						nextEventMatchingMask: NSAnyEventMask
-						untilDate: [NSDate distantFuture]   // wait
-						inMode: NSDefaultRunLoopMode
-						dequeue: YES
-					];
-					Melder_assert (nsEvent);
-					[NSApp  sendEvent: nsEvent];
-					[NSApp  updateWindows];   // called automatically?
-					[pool release];
-				} while (! thePauseForm_clicked);
-			#elif motif
-				do {
-					XEvent event;
-					GuiNextEvent (& event);
-					XtDispatchEvent (& event);
-				} while (! thePauseForm_clicked);
-			#endif
-		} catch (MelderError) {
-			Melder_flushError (U"An error made it to the outer level in a pause window; should not occur! Please write to paul.boersma at uva.nl");
+	#ifndef CONSOLE_APPLICATION
+		{// scope
+			autoMelderSaveDefaultDir saveDir;
+			thePauseForm_clicked = 0;
+			Melder_assert (theEventLoopDepth == 0);
+			theEventLoopDepth ++;
+			try {
+				#if gtk
+					do {
+						gtk_main_iteration ();
+					} while (! thePauseForm_clicked);
+				#elif cocoa
+					do {
+						NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+						//[theDemoEditor -> d_windowForm -> d_cocoaWindow   flushWindow];
+						NSEvent *nsEvent = [NSApp
+							nextEventMatchingMask: NSAnyEventMask
+							untilDate: [NSDate distantFuture]   // wait
+							inMode: NSDefaultRunLoopMode
+							dequeue: YES
+						];
+						Melder_assert (nsEvent != NULL);
+						[NSApp  sendEvent: nsEvent];
+						[NSApp  updateWindows];   // called automatically?
+						[pool release];
+					} while (! thePauseForm_clicked);
+				#elif motif
+					do {
+						XEvent event;
+						GuiNextEvent (& event);
+						XtDispatchEvent (& event);
+					} while (! thePauseForm_clicked);
+				#endif
+			} catch (MelderError) {
+				Melder_flushError (U"An error made it to the outer level in a pause window; should not occur! Please write to paul.boersma at uva.nl");
+			}
+			theEventLoopDepth --;
 		}
-		theEventLoopDepth --;
-	}
-	if (wasBackgrounding) praat_background ();
-	/* BUG: should also restore praatP. editor. */
-	thePauseForm = nullptr;   // undangle
-	thePauseFormRadio = nullptr;   // undangle
-	if (thePauseForm_clicked == -1) {
-		Interpreter_stop (interpreter);
-		Melder_throw (U"You interrupted the script.");
-		//Melder_flushError ();
-		//Melder_clearError ();
-	} else {
-		//Melder_casual (U"Clicked ", thePauseForm_clicked);
-	}
+		if (wasBackgrounding) praat_background ();
+		/* BUG: should also restore praatP. editor. */
+		thePauseForm = NULL;   // undangle
+		thePauseFormRadio = NULL;   // undangle
+		if (thePauseForm_clicked == -1) {
+			Interpreter_stop (interpreter);
+			Melder_throw (U"You interrupted the script.");
+			//Melder_flushError ();
+			//Melder_clearError ();
+		} else {
+			//Melder_casual (U"Clicked ", thePauseForm_clicked);
+		}
+	#endif
 	return thePauseForm_clicked;
 }
 
diff --git a/sys/UiPause.h b/sys/UiPause.h
index 9c87524..b6ad968 100644
--- a/sys/UiPause.h
+++ b/sys/UiPause.h
@@ -20,7 +20,7 @@
  */
 
 #include "Gui.h"
-Thing_declare (Interpreter);
+#include "Interpreter_decl.h"
 
 void UiPause_begin (GuiWindow topShell, const char32 *title, Interpreter interpreter);
 
diff --git a/sys/abcio.cpp b/sys/abcio.cpp
index 5fa06e0..1491b76 100644
--- a/sys/abcio.cpp
+++ b/sys/abcio.cpp
@@ -25,7 +25,7 @@
  * pb 2006/02/20 corrected bingeti3, bingeti3LE, binputi3, binputi3LE
  * pb 2006/03/28 support for systems where a long is not 32 bits and a short is not 16 bits
  * pb 2007/07/21 MelderReadString
- * pb 2007/08/14 check for null pointer before Melder_isValidAscii
+ * pb 2007/08/14 check for NULL pointer before Melder_isValidAscii
  * pb 2009/03/18 modern enums
  * fb 2010/02/26 UTF-16 via bin(get|put)utf16()
  * pb 2010/03/09 more support for Unicode values above 0xFFFF
@@ -80,7 +80,7 @@ static long getInteger (MelderReadText me) {
 	if (i >= 40)
 		Melder_throw (U"Found long text while looking for an integer in text (line ", MelderReadText_getLineNumber (me), U").");
 	buffer [i + 1] = '\0';
-	return strtol (buffer, nullptr, 10);
+	return strtol (buffer, NULL, 10);
 }
 
 static unsigned long getUnsigned (MelderReadText me) {
@@ -119,7 +119,7 @@ static unsigned long getUnsigned (MelderReadText me) {
 	if (i >= 40)
 		Melder_throw (U"Found long text while searching for an unsigned integer in text (line ", MelderReadText_getLineNumber (me), U").");
 	buffer [i + 1] = '\0';
-	return strtoul (buffer, nullptr, 10);
+	return strtoul (buffer, NULL, 10);
 }
 
 static double getReal (MelderReadText me) {
@@ -379,45 +379,45 @@ void texputintro (MelderFile file, const char32 *s1, const char32 *s2, const cha
 
 void texputi1 (MelderFile file, int i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, i, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, i, file -> verbose ? U" " : NULL);
 }
 void texputi2 (MelderFile file, int i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, i, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, i, file -> verbose ? U" " : NULL);
 }
 void texputi4 (MelderFile file, long i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, i, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, i, file -> verbose ? U" " : NULL);
 }
 void texputu1 (MelderFile file, unsigned int u, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, u, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, u, file -> verbose ? U" " : NULL);
 }
 void texputu2 (MelderFile file, unsigned int u, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, u, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, u, file -> verbose ? U" " : NULL);
 }
 void texputu4 (MelderFile file, unsigned long u, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, u, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, u, file -> verbose ? U" " : NULL);
 }
 void texputr4 (MelderFile file, double x, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, Melder_single (x), file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, Melder_single (x), file -> verbose ? U" " : NULL);
 }
 void texputr8 (MelderFile file, double x, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, x, file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, x, file -> verbose ? U" " : NULL);
 }
 void texputc8 (MelderFile file, fcomplex z, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, Melder_single (z.re),
-		file -> verbose ? U" + " : U" ", Melder_single (z.im), file -> verbose ? U" i " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, Melder_single (z.re),
+		file -> verbose ? U" + " : U" ", Melder_single (z.im), file -> verbose ? U" i " : NULL);
 }
 void texputc16 (MelderFile file, dcomplex z, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, z.re,
-		file -> verbose ? U" + " : U" ", z.im, file -> verbose ? U" i " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, z.re,
+		file -> verbose ? U" + " : U" ", z.im, file -> verbose ? U" i " : NULL);
 }
 void texpute1 (MelderFile file, int i, const char32 * (*getText) (int), const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
@@ -429,20 +429,20 @@ void texpute2 (MelderFile file, int i, const char32 * (*getText) (int), const ch
 }
 void texputeb (MelderFile file, bool i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U" = " : nullptr, i ? U"<true>" : U"<false>", file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U" = " : NULL, i ? U"<true>" : U"<false>", file -> verbose ? U" " : NULL);
 }
 void texputeq (MelderFile file, bool i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U"? " : nullptr, i ? U"<yes>" : U"<no>", file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U"? " : NULL, i ? U"<yes>" : U"<no>", file -> verbose ? U" " : NULL);
 }
 void texputex (MelderFile file, bool i, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
-	MelderFile_write (file, file -> verbose ? U"? " : nullptr, i ? U"<exists>" : U"<absent>", file -> verbose ? U" " : nullptr);
+	MelderFile_write (file, file -> verbose ? U"? " : NULL, i ? U"<exists>" : U"<absent>", file -> verbose ? U" " : NULL);
 }
 void texputs1 (MelderFile file, const char *s, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
 	MelderFile_write (file, file -> verbose ? U" = \"" : U"\"");
-	if (s) {
+	if (s != NULL) {
 		char c;
 		while ((c = *s ++) != '\0') {
 			MelderFile_writeCharacter (file, (char32) (char8) c);
@@ -454,7 +454,7 @@ void texputs1 (MelderFile file, const char *s, const char32 *s1, const char32 *s
 void texputs2 (MelderFile file, const char *s, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
 	MelderFile_write (file, file -> verbose ? U" = \"" : U"\"");
-	if (s) {
+	if (s != NULL) {
 		char c;
 		while ((c = *s ++) != '\0') {
 			MelderFile_writeCharacter (file, (char32) (char8) c);
@@ -466,7 +466,7 @@ void texputs2 (MelderFile file, const char *s, const char32 *s1, const char32 *s
 void texputs4 (MelderFile file, const char *s, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
 	MelderFile_write (file, file -> verbose ? U" = \"" : U"\"");
-	if (s) {
+	if (s != NULL) {
 		char c;
 		while ((c = *s ++) != '\0') {
 			MelderFile_writeCharacter (file, (char32) (char8) c);
@@ -478,7 +478,7 @@ void texputs4 (MelderFile file, const char *s, const char32 *s1, const char32 *s
 void texputw2 (MelderFile file, const char32 *s, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
 	MelderFile_write (file, file -> verbose ? U" = \"" : U"\"");
-	if (s) {
+	if (s != NULL) {
 		char32 c;
 		while ((c = *s ++) != U'\0') {
 			MelderFile_writeCharacter (file, c);
@@ -490,11 +490,11 @@ void texputw2 (MelderFile file, const char32 *s, const char32 *s1, const char32
 void texputw4 (MelderFile file, const char32 *s, const char32 *s1, const char32 *s2, const char32 *s3, const char32 *s4, const char32 *s5, const char32 *s6) {
 	PUTLEADER
 	MelderFile_write (file, file -> verbose ? U" = \"" : U"\"");
-	if (s) {
+	if (s != NULL) {
 		char32 c;
-		while ((c = *s ++) != U'\0') {
+		while ((c = *s ++) != '\0') {
 			MelderFile_writeCharacter (file, c);
-			if (c == U'\"') MelderFile_writeCharacter (file, c);   // double any internal quotes
+			if (c == '\"') MelderFile_writeCharacter (file, c);   // double any internal quotes
 		}
 	}
 	MelderFile_write (file, file -> verbose ? U"\" " : U"\"");
@@ -756,7 +756,7 @@ int16 bingeti2LE (FILE *f) {
 	}
 }
 
-uint16 bingetu2 (FILE *f) {
+uint16_t bingetu2 (FILE *f) {
 	try {
 		if (binario_16bitBE && Melder_debug != 18) {
 			uint16 s;
@@ -774,7 +774,7 @@ uint16 bingetu2 (FILE *f) {
 	}
 }
 
-uint16 bingetu2LE (FILE *f) {
+uint16_t bingetu2LE (FILE *f) {
 	try {
 		if (binario_16bitLE && Melder_debug != 18) {
 			uint16 s;
@@ -1261,7 +1261,7 @@ void binputr4 (double x, FILE *f) {
 			int sign, exponent;
 			double fMantissa, fsMantissa;
 			uint32 mantissa;
-			if (x < 0.0) { sign = 0x0100; x *= -1.0; }
+			if (x < 0.0) { sign = 0x0100; x *= -1; }
 			else sign = 0;
 			if (x == 0.0) { exponent = 0; mantissa = 0; }
 			else {
@@ -1277,7 +1277,7 @@ void binputr4 (double x, FILE *f) {
 					exponent |= sign;
 					fMantissa = ldexp (fMantissa, 24);          
 					fsMantissa = floor (fMantissa); 
-					mantissa = (uint32) fsMantissa & 0x007FFFFF;
+					mantissa = (uint32_t) fsMantissa & 0x007FFFFF;
 				}
 			}
 			bytes [0] = (uint8) (exponent >> 1);   // truncate: bits 2 through 9 (bit 9 is the sign bit)
@@ -1301,7 +1301,7 @@ void binputr4LE (double x, FILE *f) {
 			int sign, exponent;
 			double fMantissa, fsMantissa;
 			uint32 mantissa;
-			if (x < 0.0) { sign = 0x0100; x *= -1.0; }
+			if (x < 0.0) { sign = 0x0100; x *= -1; }
 			else sign = 0;
 			if (x == 0.0) { exponent = 0; mantissa = 0; }
 			else {
@@ -1317,7 +1317,7 @@ void binputr4LE (double x, FILE *f) {
 					exponent |= sign;
 					fMantissa = ldexp (fMantissa, 24);          
 					fsMantissa = floor (fMantissa); 
-					mantissa = (uint32) fsMantissa & 0x007FFFFF;
+					mantissa = (uint32_t) fsMantissa & 0x007FFFFF;
 				}
 			}
 			bytes [3] = (uint8) (exponent >> 1);
@@ -1340,7 +1340,7 @@ void binputr8 (double x, FILE *f) {
 			int sign, exponent;
 			double fMantissa, fsMantissa;
 			uint32 highMantissa, lowMantissa;
-			if (x < 0.0) { sign = 0x0800; x *= -1.0; }
+			if (x < 0.0) { sign = 0x0800; x *= -1; }
 			else sign = 0;
 			if (x == 0.0) { exponent = 0; highMantissa = 0; lowMantissa = 0; }
 			else {
@@ -1356,10 +1356,10 @@ void binputr8 (double x, FILE *f) {
 					exponent |= sign;
 					fMantissa = ldexp (fMantissa, 21);          
 					fsMantissa = floor (fMantissa); 
-					highMantissa = (uint32) fsMantissa & 0x000FFFFF;
+					highMantissa = (uint32_t) fsMantissa & 0x000FFFFF;
 					fMantissa = ldexp (fMantissa - fsMantissa, 32); 
 					fsMantissa = floor (fMantissa); 
-					lowMantissa = (uint32) fsMantissa;
+					lowMantissa = (uint32_t) fsMantissa;
 				}
 			}
 			bytes [0] = (uint8) (exponent >> 4);
@@ -1384,7 +1384,7 @@ void binputr10 (double x, FILE *f) {
 		int sign, exponent;   // these should be uint16_t, but frexp() expects an int
 		double fMantissa, fsMantissa;
 		uint32_t highMantissa, lowMantissa;
-		if (x < 0.0) { sign = 0x8000; x *= -1.0; }
+		if (x < 0.0) { sign = 0x8000; x *= -1; }
 		else sign = 0;
 		if (x == 0.0) { exponent = 0; highMantissa = 0; lowMantissa = 0; }
 		else {
@@ -1400,10 +1400,10 @@ void binputr10 (double x, FILE *f) {
 				exponent |= sign;
 				fMantissa = ldexp (fMantissa, 32);          
 				fsMantissa = floor (fMantissa); 
-				highMantissa = (uint32) fsMantissa;
+				highMantissa = (uint32_t) fsMantissa;
 				fMantissa = ldexp (fMantissa - fsMantissa, 32); 
 				fsMantissa = floor (fMantissa); 
-				lowMantissa = (uint32) fsMantissa;
+				lowMantissa = (uint32_t) fsMantissa;
 			}
 		}
 		bytes [0] = (uint8) (exponent >> 8);
@@ -1482,7 +1482,7 @@ char * bingets1 (FILE *f) {
 char * bingets2 (FILE *f) {
 	try {
 		uint16_t length = bingetu2 (f);
-		autostring8 result = Melder_malloc (char, (int64) length + 1);
+		autostring8 result = Melder_malloc (char, (int64_t) length + 1);
 		if (fread (result.peek(), sizeof (char), length, f) != length)
 			Melder_throw (feof (f) ? U"Reached end of file" : U"Error in file", U" while trying to read ", length, U" one-byte characters.");
 		result [length] = 0;   // trailing null byte
@@ -1495,7 +1495,7 @@ char * bingets2 (FILE *f) {
 char * bingets4 (FILE *f) {
 	try {
 		uint32_t length = bingetu4 (f);
-		autostring8 result = Melder_malloc (char, (int64) length + 1);
+		autostring8 result = Melder_malloc (char, (int64_t) length + 1);
 		if (fread (result.peek(), sizeof (char), length, f) != length)
 			Melder_throw (feof (f) ? U"Reached end of file" : U"Error in file", U" while trying to read ", length, U" one-byte characters.");
 		result [length] = 0;   // trailing null byte
@@ -1507,23 +1507,23 @@ char * bingets4 (FILE *f) {
 
 char32 * bingetw1 (FILE *f) {
 	try {
-		autostring32 result;
+		autostring32 result = NULL;
 		unsigned short length = bingetu1 (f);
 		if (length == 0xFF) {   // an escape for encoding
 			/*
 			 * UTF-16
 			 */
 			length = bingetu1 (f);
-			result.reset (Melder_malloc (char32, (int64) length + 1));
+			result.reset (Melder_malloc (char32, (int64_t) length + 1));
 			for (unsigned short i = 0; i < length; i ++) {
-				char32 kar = bingetu2 (f);
-				if ((kar & 0x00F800) == 0x00D800) {
-					if (kar > 0x00DBFF)
+				uint16 kar = bingetu2 (f);
+				if ((kar & 0xF800) == 0xD800) {
+					if (kar > 0xDBFF)
 						Melder_throw (U"Incorrect Unicode value (first surrogate member ", kar, U").");
-					char32 kar2 = bingetu2 (f);
-					if (kar2 < 0x00DC00 || kar2 > 0x00DFFF)
+					uint16 kar2 = bingetu2 (f);
+					if (kar2 < 0xDC00 || kar2 > 0xDFFF)
 						Melder_throw (U"Incorrect Unicode value (second surrogate member ", kar2, U").");
-					result [i] = (((kar & 0x0003FF) << 10) | (kar2 & 0x0003FF)) + 0x010000;
+					result [i] = (((kar & 0x3FF) << 10) | (kar2 & 0x3FF)) + 0x10000;
 				} else {
 					result [i] = kar;
 				}
@@ -1532,7 +1532,7 @@ char32 * bingetw1 (FILE *f) {
 			/*
 			 * ASCII
 			 */
-			result.reset (Melder_malloc (char32, (int64) length + 1));
+			result.reset (Melder_malloc (char32, (int64_t) length + 1));
 			for (unsigned short i = 0; i < length; i ++) {
 				result [i] = bingetu1 (f);
 			}
@@ -1546,14 +1546,14 @@ char32 * bingetw1 (FILE *f) {
 
 char32 * bingetw2 (FILE *f) {
 	try {
-		autostring32 result;
+		autostring32 result = NULL;
 		uint16 length = bingetu2 (f);
 		if (length == 0xFFFF) {   // an escape for encoding
 			/*
 			 * UTF-16
 			 */
 			length = bingetu2 (f);
-			result.reset (Melder_malloc (char32, (int64) length + 1));
+			result.reset (Melder_malloc (char32, (int64_t) length + 1));
 			for (uint16 i = 0; i < length; i ++) {
 				char32 kar = (char32) (char16) bingetu2 (f);
 				if ((kar & 0x00F800) == 0x00D800) {
@@ -1585,23 +1585,23 @@ char32 * bingetw2 (FILE *f) {
 
 char32 * bingetw4 (FILE *f) {
 	try {
-		autostring32 result;
-		uint32 length = bingetu4 (f);
+		autostring32 result = NULL;
+		uint32_t length = bingetu4 (f);
 		if (length == 0xFFFFFFFF) {   // an escape for encoding
 			/*
 			 * UTF-16
 			 */
 			length = bingetu4 (f);
-			result.reset (Melder_malloc (char32, (int64) length + 1));
-			for (uint32 i = 0; i < length; i ++) {
-				char32 kar = bingetu2 (f);
-				if ((kar & 0x00F800) == 0x00D800) {
-					if (kar > 0x00DBFF)
+			result.reset (Melder_malloc (char32, (int64_t) length + 1));
+			for (uint32_t i = 0; i < length; i ++) {
+				uint16_t kar = bingetu2 (f);
+				if ((kar & 0xF800) == 0xD800) {
+					if (kar > 0xDBFF)
 						Melder_throw (U"Incorrect Unicode value (first surrogate member ", kar, U").");
-					char32 kar2 = bingetu2 (f);
-					if (kar2 < 0x00DC00 || kar2 > 0x00DFFF)
+					uint16_t kar2 = bingetu2 (f);
+					if (kar2 < 0xDC00 || kar2 > 0xDFFF)
 						Melder_throw (U"Incorrect Unicode value (second surrogate member ", kar2, U").");
-					result [i] = (((kar & 0x0003FF) << 10) | (kar2 & 0x0003FF)) + 0x010000;
+					result [i] = (((kar & 0x3FF) << 10) | (kar2 & 0x3FF)) + 0x10000;
 				} else {
 					result [i] = kar;
 				}
@@ -1610,12 +1610,12 @@ char32 * bingetw4 (FILE *f) {
 			/*
 			 * ASCII
 			 */
-			result.reset (Melder_malloc (char32, (int64) length + 1));
-			for (uint32 i = 0; i < length; i ++) {
+			result.reset (Melder_malloc (char32, (int64_t) length + 1));
+			for (uint32_t i = 0; i < length; i ++) {
 				result [i] = bingetu1 (f);
 			}
 		}
-		result [length] = U'\0';
+		result [length] = L'\0';
 		return result.transfer();
 	} catch (MelderError) {
 		Melder_throw (U"Text not read from a binary file.");
@@ -1624,7 +1624,7 @@ char32 * bingetw4 (FILE *f) {
 
 void binputs1 (const char *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu1 (0, f);
 		} else {
 			size_t length = strlen (s);
@@ -1643,7 +1643,7 @@ void binputs1 (const char *s, FILE *f) {
 
 void binputs2 (const char *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu2 (0, f);
 		} else {
 			size_t length = strlen (s);
@@ -1662,7 +1662,7 @@ void binputs2 (const char *s, FILE *f) {
 
 void binputs4 (const char *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu4 (0, f);
 		} else {
 			size_t length = strlen (s);
@@ -1693,7 +1693,7 @@ static inline void binpututf16 (char32 kar, FILE *f) {
 
 void binputw1 (const char32 *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu1 (0, f);
 		} else {
 			uint32 length = str32len (s);
@@ -1727,7 +1727,7 @@ void binputw1 (const char32 *s, FILE *f) {
 
 void binputw2 (const char32 *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu2 (0, f);
 		} else {
 			int64 length = str32len (s);
@@ -1761,7 +1761,7 @@ void binputw2 (const char32 *s, FILE *f) {
 
 void binputw4 (const char32 *s, FILE *f) {
 	try {
-		if (! s) {
+		if (s == NULL) {
 			binputu4 (0, f);
 		} else {
 			int64 length = str32len (s);
diff --git a/sys/abcio.h b/sys/abcio.h
index c0998ce..3ec951b 100644
--- a/sys/abcio.h
+++ b/sys/abcio.h
@@ -83,14 +83,14 @@ void texputw4 (MelderFile file, const char32 *s, const char32 *s1, const char32
 	The 42 routines are analogous to fgetc and fputc, who read or write one character:
 		int fgetc (FILE *f);   int fputc (int c, FILE *f);   // 0..255
 */
-unsigned int bingetu1 (FILE *f);   void binputu1 (unsigned int i, FILE *f);   // 0..255
-uint16 bingetu2 (FILE *f);   void binputu2 (uint16 i, FILE *f);   // 0..65535
-uint32 bingetu4 (FILE *f);   void binputu4 (uint32 i, FILE *f);   // 0..4294967295
+unsigned int bingetu1 (FILE *f);   void binputu1 (unsigned int i, FILE *f);   /* 0..255 */
+uint16_t bingetu2 (FILE *f);   void binputu2 (uint16_t i, FILE *f);   /* 0..65535 */
+uint32_t bingetu4 (FILE *f);   void binputu4 (uint32_t i, FILE *f);   /* 0..4294967295 */
 
 int bingeti1 (FILE *f);   void binputi1 (int i, FILE *f);   /* -128..127 */
-int16 bingeti2 (FILE *f);   void binputi2 (int16 i, FILE *f);   // -32768..32767
-int32 bingeti3 (FILE *f);   void binputi3 (int32 i, FILE *f);   // -8388608..8388607
-int32 bingeti32 (FILE *f);   void binputi32 (int32 i, FILE *f);   // -2147483648..2147483647
+int16_t bingeti2 (FILE *f);   void binputi2 (int16_t i, FILE *f);   /* -32768..32767 */
+int32_t bingeti3 (FILE *f);   void binputi3 (int32_t i, FILE *f);   /* -8388608..2148388607 */
+int32_t bingeti32 (FILE *f);   void binputi32 (int32_t i, FILE *f);   /* -2147483648..2147483647 */
 #define bingeti4 bingeti32
 #define binputi4 binputi32
 /*
@@ -99,38 +99,38 @@ int32 bingeti32 (FILE *f);   void binputi32 (int32 i, FILE *f);   // -2147483648
 	This is the native integer format on Macintosh and Silicon Graphics Iris.
 */
 
-int16 bingeti2LE (FILE *f);   void binputi2LE (int16 i, FILE *f);   // -32768..32767
-int32 bingeti3LE (FILE *f);   void binputi3LE (int32 i, FILE *f);   // -8388608..8388607
-int32 bingeti4LE (FILE *f);   void binputi4LE (int32 i, FILE *f);   // -2147483648..2147483647
-uint16 bingetu2LE (FILE *f);   void binputu2LE (uint16 i, FILE *f);   // 0..65535
-uint32 bingetu4LE (FILE *f);   void binputu4LE (uint32 i, FILE *f);   // 0..4294967295
+int16_t bingeti2LE (FILE *f);   void binputi2LE (int16_t i, FILE *f);   /* -32768..32767 */
+int32_t bingeti3LE (FILE *f);   void binputi3LE (int32_t i, FILE *f);   /* -8388608..2148388607 */
+int32_t bingeti4LE (FILE *f);   void binputi4LE (int32_t i, FILE *f);   /* -2147483648..2147483647 */
+uint16_t bingetu2LE (FILE *f);   void binputu2LE (uint16_t i, FILE *f);   /* 0..65535 */
+uint32_t bingetu4LE (FILE *f);   void binputu4LE (uint32_t i, FILE *f);   /* 0..4294967295 */
 /*
 	Read or write signed or unsigned integers from or to 2 or 4 bytes in the stream 'f',
 	in little-endian byte order (least significant byte first).
 	This is the native integer format on Vax and IBM PC.
 */
 
-unsigned int bingetb1 (FILE *f);   void binputb1 (unsigned int value, FILE *f);   // 0..1
-unsigned int bingetb2 (FILE *f);   void binputb2 (unsigned int value, FILE *f);   // 0..3
-unsigned int bingetb3 (FILE *f);   void binputb3 (unsigned int value, FILE *f);   // 0..7
-unsigned int bingetb4 (FILE *f);   void binputb4 (unsigned int value, FILE *f);   // 0..15
-unsigned int bingetb5 (FILE *f);   void binputb5 (unsigned int value, FILE *f);   // 0..31
-unsigned int bingetb6 (FILE *f);   void binputb6 (unsigned int value, FILE *f);   // 0..63
-unsigned int bingetb7 (FILE *f);   void binputb7 (unsigned int value, FILE *f);   // 0..127
+unsigned int bingetb1 (FILE *f);   void binputb1 (unsigned int value, FILE *f);   /* 0..1*/
+unsigned int bingetb2 (FILE *f);   void binputb2 (unsigned int value, FILE *f);   /* 0..3 */
+unsigned int bingetb3 (FILE *f);   void binputb3 (unsigned int value, FILE *f);   /* 0..7 */
+unsigned int bingetb4 (FILE *f);   void binputb4 (unsigned int value, FILE *f);   /* 0..15 */
+unsigned int bingetb5 (FILE *f);   void binputb5 (unsigned int value, FILE *f);   /* 0..31 */
+unsigned int bingetb6 (FILE *f);   void binputb6 (unsigned int value, FILE *f);   /* 0..63 */
+unsigned int bingetb7 (FILE *f);   void binputb7 (unsigned int value, FILE *f);   /* 0..127 */
 void bingetb (FILE *f);   void binputb (FILE *f);
 /*
 	Read or write an unsigned integer from or to a number of bits in the stream 'f'.
 	After an uninterrupted sequence of bingetbxxx or binputbxxx, call bingetb or binputb.
 	Not reentrant: uses a static one-byte buffer. Do not call from interrupt routines.
 	Example 1:
-		int hasTitle = bingetb1 (f);   // one bit
-		int category = bingetb3 (f);   // a number in the range 0..7
-		int sense = bingetb2 (f);   // a number in the range 0..3
+		int hasTitle = bingetb1 (f);   // One bit.
+		int category = bingetb3 (f);   // A number in the range 0..7.
+		int sense = bingetb2 (f);   // A number in the range 0..3.
 		bingetb (f);
 	Example 2:
-		binputb1 (hasTitle, f);   // one bit
-		binputb3 (category, f);   // a number in the range 0..7
-		binputb2 (sense, f);   // a number in the range 0..3
+		binputb1 (hasTitle, f);   // One bit.
+		binputb3 (category, f);   // A number in the range 0..7.
+		binputb2 (sense, f);   // A number in the range 0..3.
 		binputb (f);
 */
 
@@ -148,35 +148,35 @@ void binpute2 (int value, FILE *f);
 
 double bingetr4 (FILE *f);   void binputr4 (double x, FILE *f);
 /*
-	Read or write a real number from or to 4 bytes in the stream `f`,
+	Read or write a real number from or to 4 bytes in the stream 'f',
 	in IEEE single-precision binary real format, with the most significant bit first.
 	NaN's (Not-a-Numbers) and infinities get the value HUGE, which equals infinity on IEEE machines.
 	Absolute values of normalized numbers (23 bits precision): 1.2e-38 .. 3.4e38.
 	Denormalized: from 1.4e-45.
-	This is the native format of a `float` on Macintosh and Silicon Graphics Iris.
+	This is the native format of a 'float' on Macintosh and Silicon Graphics Iris.
 */
-double bingetr4LE (FILE *f);   void binputr4LE (double x, FILE *f);   // least significant bit first
+double bingetr4LE (FILE *f);   void binputr4LE (double x, FILE *f);   // Least significant bit first.
 
 double bingetr8 (FILE *f);   void binputr8 (double x, FILE *f);
 /*
-	Read or write a real number from or to 8 bytes in the stream `f`,
+	Read or write a real number from or to 8 bytes in the stream 'f',
 	in IEEE double-precision binary real format, with the most significant bit first.
 	NaN's (Not-a-Numbers) and infinities get the value HUGE, which equals infinity on IEEE machines.
 	Absolute values of normalized numbers (52 bits precision): 2.2e-308 .. 1.8e308.
 	Denormalized: from 4.9e-324.
-	This is the native format of a `double` on Silicon Graphics Iris and PowerMac.
+	This is the native format of a 'double' on Silicon Graphics Iris and PowerMac.
 */
 
 double bingetr10 (FILE *f);   void binputr10 (double x, FILE *f);
 /*
-	Read or write a real number from or to 10 bytes in the stream `f`,
+	Read or write a real number from or to 10 bytes in the stream 'f',
 	in IEEE extended-precision binary real format, with the most significant bit first,
 	as implemented in Motorola's MC68881 floating-point coprocessor.
 	NaN's (Not-a-Numbers) and infinities get the value HUGE, which equals infinity on IEEE machines.
 	Absolute values of normalized numbers (63 bits precision): 8e-4933 .. 6e4931.
 	Denormalized: from 9e-4952.
 	This format is used to encode the sampling rate in AIFF (Audio Interchange File Format) files,
-	and is the native format of a `double` on 68k Macintosh.
+	and is the native format of a 'double' on 68k Macintosh.
 */
 
 fcomplex bingetc8 (FILE *f);
@@ -184,15 +184,15 @@ dcomplex bingetc16 (FILE *f);
 void binputc8 (fcomplex z, FILE *f);
 void binputc16 (dcomplex z, FILE *f);
 
-char * bingets1 (FILE *f);   void binputs1 (const char *s, FILE *f);   // 0..255 characters
-char * bingets2 (FILE *f);   void binputs2 (const char *s, FILE *f);   // 0..65535 characters
-char * bingets4 (FILE *f);   void binputs4 (const char *s, FILE *f);   // 0..4294967295 characters
+char * bingets1 (FILE *f);   void binputs1 (const char *s, FILE *f);   /* 0..255 characters. */
+char * bingets2 (FILE *f);   void binputs2 (const char *s, FILE *f);   /* 0..65535 characters. */
+char * bingets4 (FILE *f);   void binputs4 (const char *s, FILE *f);   /* 0..4294967295 characters. */
 /*
-	Read or write a string from or to `str32len(s)` UTF-16LE or ASCII characters plus 1, 2, or 4 bytes in the stream `f`,
+	Read or write a string from or to str32len (s) UTF-16LE or ASCII characters + 1, 2, or 4 bytes in the stream 'f',
 	in a Pascal-style format: first the length, then the characters, without a trailing null byte.
-	bingetsxxx returns a new 'malloc'ed null-terminated C string (for the caller to `free` it).
-	Fail if out of memory.
-	binputsxxx expects a null-terminated C string whose `str32len` fits in 1, 2, or 4 bytes.
+	bingetsxxx returns a new 'malloc'ed null-terminated C string (for the caller to 'free' it),
+	or NULL if out of memory.
+	binputsxxx expects a null-terminated C string whose 'str32len' fits in 1, 2, or 4 bytes.
 */
 char32 * bingetw1 (FILE *f);   void binputw1 (const char32 *s, FILE *f);
 char32 * bingetw2 (FILE *f);   void binputw2 (const char32 *s, FILE *f);
diff --git a/sys/machine.cpp b/sys/machine.cpp
index 6947e79..e3b7886 100644
--- a/sys/machine.cpp
+++ b/sys/machine.cpp
@@ -40,7 +40,7 @@
 
 static int lookAndFeel;
 
-int Machine_getMenuBarHeight () {
+int Machine_getMenuBarHeight (void) {
 	static int heights [] = {
 		26,   /* Motif */
 		24,   /* SGI */
@@ -56,7 +56,7 @@ int Machine_getMenuBarHeight () {
 	return heights [lookAndFeel];
 }
 
-int Machine_getMainWindowMenuBarHeight () {
+int Machine_getMainWindowMenuBarHeight (void) {
 	#ifdef macintoshXXX
 		return 0;
 	#else
@@ -64,7 +64,7 @@ int Machine_getMainWindowMenuBarHeight () {
 	#endif
 }
 
-int Machine_getTitleBarHeight () {
+int Machine_getTitleBarHeight (void) {
 	static int heights [] = {   /* Mostly copied from menu-bar height. */
 		26,   /* Motif */
 		24,   /* SGI */
@@ -80,7 +80,7 @@ int Machine_getTitleBarHeight () {
 	return heights [lookAndFeel];
 }
 
-int Machine_getScrollBarWidth () {
+int Machine_getScrollBarWidth (void) {
 	static int widths [] = {
 		22,   /* Motif */
 		22,   /* SGI */
@@ -96,7 +96,7 @@ int Machine_getScrollBarWidth () {
 	return widths [lookAndFeel];
 }
 
-int Machine_getTextHeight () {
+int Machine_getTextHeight (void) {
 	static int heights [] = {
 		29,   /* Motif */
 		29,   /* SGI */
diff --git a/sys/machine.h b/sys/machine.h
index 080b6cf..518b50c 100644
--- a/sys/machine.h
+++ b/sys/machine.h
@@ -20,11 +20,11 @@
  */
 
 void Machine_initLookAndFeel (unsigned int argc, char **argv);
-int Machine_getMenuBarHeight ();
-int Machine_getMainWindowMenuBarHeight ();
-int Machine_getTitleBarHeight ();
-int Machine_getScrollBarWidth ();
-int Machine_getTextHeight ();
+int Machine_getMenuBarHeight (void);
+int Machine_getMainWindowMenuBarHeight (void);
+int Machine_getTitleBarHeight (void);
+int Machine_getScrollBarWidth (void);
+int Machine_getTextHeight (void);
 
 /* End of file machine.h */
 #endif
diff --git a/sys/melder.cpp b/sys/melder.cpp
index aeb1779..aa64be9 100644
--- a/sys/melder.cpp
+++ b/sys/melder.cpp
@@ -31,20 +31,20 @@
 	//#include <Sound.h>
 	#include "macport_off.h"
 #endif
-
-#include "Graphics.h"
-#include "machine.h"
-#ifdef macintosh
-	#include "macport_on.h"
-	#if useCarbon
-		#include <Carbon/Carbon.h>
-	#else
-		#include <AudioToolbox/AudioToolbox.h>
+#ifndef CONSOLE_APPLICATION
+	#include "Graphics.h"
+	#include "machine.h"
+	#ifdef macintosh
+		#include "macport_on.h"
+        #if useCarbon
+            #include <Carbon/Carbon.h>
+        #else
+            #include <AudioToolbox/AudioToolbox.h>
+        #endif
+		#include "macport_off.h"
 	#endif
-	#include "macport_off.h"
+	#include "Gui.h"
 #endif
-#include "Gui.h"
-
 #include "MelderThread.h"
 
 #include "enums_getText.h"
@@ -59,13 +59,15 @@ bool Melder_backgrounding;   // are we running a script?- Set and unset dynamica
 bool Melder_asynchronous;
 int32 Melder_systemVersion;
 
-GuiWindow Melder_topShell;
+#ifndef CONSOLE_APPLICATION
+	GuiWindow Melder_topShell;
+#endif
 
 static void defaultHelp (const char32 *query) {
 	Melder_flushError (U"Don't know how to find help on \"", query, U"\".");
 }
 
-static void defaultSearch () {
+static void defaultSearch (void) {
 	Melder_flushError (U"Do not know how to search.");
 }
 
@@ -81,6 +83,11 @@ static void defaultFatal (const char32 *message) {
 	Melder_writeToConsole (U"\n", true);
 }
 
+static int defaultPublish (void *anything) {
+	(void) anything;
+	return 0;   // nothing published
+}
+
 static int defaultRecord (double duration) {
 	(void) duration;
 	return 0;   // nothing recorded
@@ -91,11 +98,11 @@ static int defaultRecordFromFile (MelderFile file) {
 	return 0;   // nothing recorded
 }
 
-static void defaultPlay () {}
+static void defaultPlay (void) {}
 
-static void defaultPlayReverse () {}
+static void defaultPlayReverse (void) {}
 
-static int defaultPublishPlayed () {
+static int defaultPublishPlayed (void) {
 	return 0;   /* Nothing published. */
 }
 
@@ -103,18 +110,20 @@ static int defaultPublishPlayed () {
 
 static struct {
 	void (*help) (const char32 *query);
-	void (*search) ();
+	void (*search) (void);
 	void (*warning) (const char32 *message);
 	void (*fatal) (const char32 *message);
+	int (*publish) (void *anything);
 	int (*record) (double duration);
 	int (*recordFromFile) (MelderFile file);
-	void (*play) ();
-	void (*playReverse) ();
-	int (*publishPlayed) ();
+	void (*play) (void);
+	void (*playReverse) (void);
+	int (*publishPlayed) (void);
 }
 	theMelder = {
 		defaultHelp, defaultSearch,
 		defaultWarning, defaultFatal,
+		defaultPublish,
 		defaultRecord, defaultRecordFromFile, defaultPlay, defaultPlayReverse, defaultPublishPlayed
 	};
 
@@ -122,9 +131,10 @@ static struct {
 
 static int theProgressDepth = 0;
 static bool theProgressCancelled = false;
-void Melder_progressOff () { theProgressDepth --; }
-void Melder_progressOn () { theProgressDepth ++; }
+void Melder_progressOff (void) { theProgressDepth --; }
+void Melder_progressOn (void) { theProgressDepth ++; }
 
+#ifndef CONSOLE_APPLICATION
 static bool waitWhileProgress (double progress, const char32 *message, GuiDialog dia, GuiProgressBar scale, GuiLabel label1, GuiLabel label2, GuiButton cancelButton) {
 	#if gtk
 		// Wait for all pending events to be processed. If anybody knows how to inspect GTK's
@@ -214,7 +224,7 @@ static bool waitWhileProgress (double progress, const char32 *message, GuiDialog
 		if (progress <= 0.0) progress = 0.0;
 		GuiThing_show (dia);   // TODO: prevent raising to the front
 		const char32 *newline = str32chr (message, U'\n');
-		if (newline) {
+		if (newline != NULL) {
 			static MelderString buffer { 0 };
 			MelderString_copy (& buffer, message);
 			buffer.string [newline - message] = U'\0';
@@ -253,19 +263,22 @@ static bool waitWhileProgress (double progress, const char32 *message, GuiDialog
 	return true;
 }
 
-static GuiButton theProgressCancelButton = nullptr;
-
 #if gtk || macintosh
-static void progress_dia_close (Thing /* boss */) {
+static void progress_dia_close (void *cancelButton) {
 	theProgressCancelled = true;
 	#if gtk
-		g_object_set_data (G_OBJECT (theProgressCancelButton -> d_widget), "pressed", (gpointer) 1);
+		g_object_set_data (G_OBJECT ((* (GuiButton *) cancelButton) -> d_widget), "pressed", (gpointer) 1);
+	#else
+		(void) cancelButton;
 	#endif
 }
-static void progress_cancel_btn_press (Thing /* boss */, GuiButtonEvent /* event */) {
+static void progress_cancel_btn_press (void *cancelButton, GuiButtonEvent event) {
+	(void) event;
 	theProgressCancelled = true;
 	#if gtk
-		g_object_set_data (G_OBJECT (theProgressCancelButton -> d_widget), "pressed", (gpointer) 1);
+		g_object_set_data (G_OBJECT ((* (GuiButton *) cancelButton) -> d_widget), "pressed", (gpointer) 1);
+	#else
+		(void) cancelButton;
 	#endif
 }
 #endif
@@ -274,9 +287,9 @@ static void _Melder_dia_init (GuiDialog *dia, GuiProgressBar *scale, GuiLabel *l
 	trace (U"creating the dialog");
 	*dia = GuiDialog_create (Melder_topShell, 200, 100, 400, hasMonitor ? 430 : 200, U"Work in progress",
 		#if gtk || macintosh
-			progress_dia_close, nullptr,
+			progress_dia_close, cancelButton,
 		#else
-			nullptr, nullptr,
+			NULL, NULL,
 		#endif
 		0);
 
@@ -290,34 +303,37 @@ static void _Melder_dia_init (GuiDialog *dia, GuiProgressBar *scale, GuiLabel *l
 	trace (U"creating the cancel button");
 	*cancelButton = GuiButton_createShown (*dia, 0, 400, 170, 170 + Gui_PUSHBUTTON_HEIGHT,
 		U"Interrupt",
-		#if gtk
-			progress_cancel_btn_press, nullptr,
-		#elif macintosh
-			progress_cancel_btn_press, nullptr,
+		#if gtk || macintosh
+			progress_cancel_btn_press, cancelButton,
 		#else
-			nullptr, nullptr,
+			NULL, NULL,
 		#endif
 		0);
 	trace (U"end");
 }
+#endif
 
 static void _Melder_progress (double progress, const char32 *message) {
+	(void) progress;
+	#ifndef CONSOLE_APPLICATION
 	if (! Melder_batch && theProgressDepth >= 0 && Melder_debug != 14) {
 		static clock_t lastTime;
-		static GuiDialog dia = nullptr;
-		static GuiProgressBar scale = nullptr;
-		static GuiLabel label1 = nullptr, label2 = nullptr;
+		static GuiDialog dia = NULL;
+		static GuiProgressBar scale = NULL;
+		static GuiButton cancelButton = NULL;
+		static GuiLabel label1 = NULL, label2 = NULL;
 		clock_t now = clock ();
 		if (progress <= 0.0 || progress >= 1.0 ||
 			now - lastTime > CLOCKS_PER_SEC / 4)   // this time step must be much longer than the null-event waiting time
 		{
-			if (! dia)
-				_Melder_dia_init (& dia, & scale, & label1, & label2, & theProgressCancelButton, false);
-			if (! waitWhileProgress (progress, message, dia, scale, label1, label2, theProgressCancelButton))
+			if (dia == NULL)
+				_Melder_dia_init (& dia, & scale, & label1, & label2, & cancelButton, false);
+			if (! waitWhileProgress (progress, message, dia, scale, label1, label2, cancelButton))
 				Melder_throw (U"Interrupted!");
 			lastTime = now;
 		}
 	}
+	#endif
 }
 
 static MelderString theProgressBuffer = { 0 };
@@ -382,41 +398,35 @@ void Melder_progress (double progress, Melder_19_ARGS) {
 	_Melder_progress (progress, theProgressBuffer.string);
 }
 
-static autoGraphics graphics;
-
-static void gui_drawingarea_cb_expose (Thing /* boss */, GuiDrawingArea_ExposeEvent /* event */) {
-	if (! graphics) return;
-	Graphics_play (graphics.get(), graphics.get());
-}
-
-static Graphics _Melder_monitor (double progress, const char32 *message) {
+static void * _Melder_monitor (double progress, const char32 *message) {
+	#ifndef CONSOLE_APPLICATION
 	if (! Melder_batch && theProgressDepth >= 0) {
 		static clock_t lastTime;
-		static GuiDialog dia = nullptr;
-		static GuiProgressBar scale = nullptr;
-		static GuiDrawingArea drawingArea = nullptr;
-		static GuiButton cancelButton = nullptr;
-		static GuiLabel label1 = nullptr, label2 = nullptr;
+		static GuiDialog dia = NULL;
+		static GuiProgressBar scale = NULL;
+		static GuiDrawingArea drawingArea = NULL;
+		static GuiButton cancelButton = NULL;
+		static GuiLabel label1 = NULL, label2 = NULL;
 		clock_t now = clock ();
+		static Any graphics = NULL;
 		if (progress <= 0.0 || progress >= 1.0 ||
 			now - lastTime > CLOCKS_PER_SEC / 4)   // this time step must be much longer than the null-event waiting time
 		{
-			if (! dia) {
+			if (dia == NULL) {
 				_Melder_dia_init (& dia, & scale, & label1, & label2, & cancelButton, true);
-				drawingArea = GuiDrawingArea_createShown (dia, 0, 400, 230, 430, gui_drawingarea_cb_expose, nullptr, nullptr, nullptr, nullptr, 0);
+				drawingArea = GuiDrawingArea_createShown (dia, 0, 400, 230, 430, NULL, NULL, NULL, NULL, NULL, 0);
 				GuiThing_show (dia);
 				graphics = Graphics_create_xmdrawingarea (drawingArea);
 			}
-			if (graphics)
-				Graphics_flushWs (graphics.get());
 			if (! waitWhileProgress (progress, message, dia, scale, label1, label2, cancelButton))
 				Melder_throw (U"Interrupted!");
 			lastTime = now;
 			if (progress == 0.0)
-				return graphics.get();
+				return graphics;
 		}
 	}
-	return progress <= 0.0 ? nullptr /* no Graphics */ : (Graphics) -1 /* any non-null pointer */;
+	#endif
+	return progress <= 0.0 ? NULL /* no Graphics */ : (void *) -1 /* any non-NULL pointer */;
 }
 
 void * Melder_monitor (double progress) {
@@ -492,36 +502,36 @@ bool Melder_numberMatchesCriterion (double value, int which_kMelder_number, doub
 }
 
 bool Melder_stringMatchesCriterion (const char32 *value, int which_kMelder_string, const char32 *criterion) {
-	if (! value) {
+	if (value == NULL) {
 		value = U"";   // regard null strings as empty strings, as is usual in Praat
 	}
-	if (! criterion) {
+	if (criterion == NULL) {
 		criterion = U"";   // regard null strings as empty strings, as is usual in Praat
 	}
 	if (which_kMelder_string <= kMelder_string_NOT_EQUAL_TO) {
-		bool matchPositiveCriterion = str32equ (value, criterion);
-		return ( which_kMelder_string == kMelder_string_EQUAL_TO ) == matchPositiveCriterion;
+		int matchPositiveCriterion = str32equ (value, criterion);
+		return (which_kMelder_string == kMelder_string_EQUAL_TO) == matchPositiveCriterion;
 	}
 	if (which_kMelder_string <= kMelder_string_DOES_NOT_CONTAIN) {
-		bool matchPositiveCriterion = !! str32str (value, criterion);
-		return ( which_kMelder_string == kMelder_string_CONTAINS ) == matchPositiveCriterion;
+		int matchPositiveCriterion = str32str (value, criterion) != NULL;
+		return (which_kMelder_string == kMelder_string_CONTAINS) == matchPositiveCriterion;
 	}
 	if (which_kMelder_string <= kMelder_string_DOES_NOT_START_WITH) {
-		bool matchPositiveCriterion = str32nequ (value, criterion, str32len (criterion));
-		return ( which_kMelder_string == kMelder_string_STARTS_WITH ) == matchPositiveCriterion;
+		int matchPositiveCriterion = str32nequ (value, criterion, str32len (criterion));
+		return (which_kMelder_string == kMelder_string_STARTS_WITH) == matchPositiveCriterion;
 	}
 	if (which_kMelder_string <= kMelder_string_DOES_NOT_END_WITH) {
 		int criterionLength = str32len (criterion), valueLength = str32len (value);
-		bool matchPositiveCriterion = ( criterionLength <= valueLength && str32equ (value + valueLength - criterionLength, criterion) );
+		int matchPositiveCriterion = criterionLength <= valueLength && str32equ (value + valueLength - criterionLength, criterion);
 		return (which_kMelder_string == kMelder_string_ENDS_WITH) == matchPositiveCriterion;
 	}
 	if (which_kMelder_string == kMelder_string_MATCH_REGEXP) {
-		char32 *place = nullptr;
+		char32 *place = NULL;
 		regexp *compiled_regexp = CompileRE_throwable (criterion, 0);
-		if (ExecRE (compiled_regexp, nullptr, value, nullptr, 0, '\0', '\0', nullptr, nullptr, nullptr))
+		if (ExecRE (compiled_regexp, NULL, value, NULL, 0, '\0', '\0', NULL, NULL, NULL))
 			place = compiled_regexp -> startp [0];
 		free (compiled_regexp);
-		return !! place;
+		return place != NULL;
 	}
 	return false;   // should not occur
 }
@@ -530,15 +540,15 @@ void Melder_help (const char32 *query) {
 	theMelder. help (query);
 }
 
-void Melder_search () {
+void Melder_search (void) {
 	theMelder. search ();
 }
 
 /********** WARNING **********/
 
 static int theWarningDepth = 0;
-void Melder_warningOff () { theWarningDepth --; }
-void Melder_warningOn () { theWarningDepth ++; }
+void Melder_warningOff (void) { theWarningDepth --; }
+void Melder_warningOn (void) { theWarningDepth ++; }
 
 static MelderString theWarningBuffer = { 0 };
 
@@ -613,7 +623,7 @@ void Melder_warning (Melder_19_ARGS) {
 	theMelder. warning (theWarningBuffer.string);
 }
 
-void Melder_beep () {
+void Melder_beep (void) {
 	#ifdef macintosh
 		#if useCarbon
 			SysBeep (0);
@@ -1017,13 +1027,15 @@ void Melder_assert_ (const char *fileName, int lineNumber, const char *condition
 	abort ();
 }
 
+#ifndef CONSOLE_APPLICATION
+
 #if defined (macintosh)
 static void mac_message (NSAlertStyle macAlertType, const char32 *message32) {
 	static unichar messageU [4000];
 	int messageLength = str32len (message32);
 	int j = 0;
 	for (int i = 0; i < messageLength && j <= 4000 - 3; i ++) {
-		char32 kar = message32 [i];
+		char32 kar = message32 [i];   // change sign
 		if (kar <= 0x00FFFF) {
 			messageU [j ++] = kar;
 		} else if (kar <= 0x10FFFF) {
@@ -1054,10 +1066,10 @@ static void mac_message (NSAlertStyle macAlertType, const char32 *message32) {
 	}
 	#if useCarbon
         DialogRef dialog;
-		CFStringRef messageCF = CFStringCreateWithCharacters (nullptr, messageU, j);
-		CreateStandardAlert (macAlertType, messageCF, nullptr, nullptr, & dialog);
+		CFStringRef messageCF = CFStringCreateWithCharacters (NULL, messageU, j);
+		CreateStandardAlert (macAlertType, messageCF, NULL, NULL, & dialog);
 		CFRelease (messageCF);
-		RunStandardAlert (dialog, nullptr, nullptr);
+		RunStandardAlert (dialog, NULL, NULL);
 	#else
 		/*
 		 * Create an alert dialog with an icon that is appropriate for the level.
@@ -1092,7 +1104,7 @@ static void mac_message (NSAlertStyle macAlertType, const char32 *message32) {
 #endif
 
 #define theMessageFund_SIZE  100000
-static char * theMessageFund = nullptr;
+static char * theMessageFund = NULL;
 
 static void gui_fatal (const char32 *message) {
 	free (theMessageFund);
@@ -1110,7 +1122,7 @@ static void gui_fatal (const char32 *message) {
 			SysError (11);
 		#endif
 	#elif defined (_WIN32)
-		MessageBox (nullptr, Melder_peek32toW (message), L"Fatal error", MB_OK | MB_TOPMOST | MB_ICONSTOP);
+		MessageBox (NULL, Melder_peek32toW (message), L"Fatal error", MB_OK | MB_TOPMOST | MB_ICONSTOP);
 	#endif
 }
 
@@ -1135,11 +1147,11 @@ static void gui_error (const char32 *message) {
 			mac_message (NSWarningAlertStyle, message);
 		#endif
 	#elif defined (_WIN32)
-		MessageBox (nullptr, Melder_peek32toW (message), L"Message", MB_OK | MB_TOPMOST | MB_ICONWARNING);   // or (HWND) XtWindow ((GuiObject) Melder_topShell)
+		MessageBox (NULL, Melder_peek32toW (message), L"Message", MB_OK | MB_TOPMOST | MB_ICONWARNING);   // or (HWND) XtWindow ((GuiObject) Melder_topShell)
 	#endif
 	if (memoryIsLow) {
 		theMessageFund = (char *) malloc (theMessageFund_SIZE);
-		if (! theMessageFund) {
+		if (theMessageFund == NULL) {
 			#if gtk
 				GuiObject dialog = gtk_message_dialog_new (GTK_WINDOW (Melder_topShell -> d_gtkWindow), GTK_DIALOG_DESTROY_WITH_PARENT,
 					GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
@@ -1153,7 +1165,7 @@ static void gui_error (const char32 *message) {
 					mac_message (NSCriticalAlertStyle, U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 				#endif
 			#elif defined (_WIN32)
-				MessageBox (nullptr, L"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.", L"Message", MB_OK);
+				MessageBox (NULL, L"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.", L"Message", MB_OK);
 			#endif
 		}
 	}
@@ -1173,20 +1185,25 @@ static void gui_warning (const char32 *message) {
 			mac_message (NSInformationalAlertStyle, message);
 		#endif
 	#elif defined (_WIN32)
-		MessageBox (nullptr, Melder_peek32toW (message), L"Warning", MB_OK | MB_TOPMOST | MB_ICONINFORMATION);
+		MessageBox (NULL, Melder_peek32toW (message), L"Warning", MB_OK | MB_TOPMOST | MB_ICONINFORMATION);
 	#endif
 }
 
 void gui_information (const char32 *);   // BUG: no prototype
 void MelderGui_create (void *parent) {
 	theMessageFund = (char *) malloc (theMessageFund_SIZE);
-	assert (theMessageFund);
+	assert (theMessageFund != NULL);
 	Melder_topShell = (GuiWindow) parent;
 	Melder_setInformationProc (gui_information);
 	Melder_setFatalProc (gui_fatal);
 	Melder_setErrorProc (gui_error);
 	Melder_setWarningProc (gui_warning);
 }
+#endif
+
+int Melder_publish (void *anything) {
+	return theMelder. publish (anything);
+}
 
 int Melder_record (double duration) {
 	return theMelder. record (duration);
@@ -1196,15 +1213,15 @@ int Melder_recordFromFile (MelderFile file) {
 	return theMelder. recordFromFile (file);
 }
 
-void Melder_play () {
+void Melder_play (void) {
 	theMelder. play ();
 }
 
-void Melder_playReverse () {
+void Melder_playReverse (void) {
 	theMelder. playReverse ();
 }
 
-int Melder_publishPlayed () {
+int Melder_publishPlayed (void) {
 	return theMelder. publishPlayed ();
 }
 
@@ -1222,19 +1239,22 @@ void Melder_setWarningProc (void (*warning) (const char32 *))
 void Melder_setFatalProc (void (*fatal) (const char32 *))
 	{ theMelder. fatal = fatal ? fatal : defaultFatal; }
 
+void Melder_setPublishProc (int (*publish) (void *))
+	{ theMelder. publish = publish ? publish : defaultPublish; }
+
 void Melder_setRecordProc (int (*record) (double))
 	{ theMelder. record = record ? record : defaultRecord; }
 
 void Melder_setRecordFromFileProc (int (*recordFromFile) (MelderFile))
 	{ theMelder. recordFromFile = recordFromFile ? recordFromFile : defaultRecordFromFile; }
 
-void Melder_setPlayProc (void (*play) ())
+void Melder_setPlayProc (void (*play) (void))
 	{ theMelder. play = play ? play : defaultPlay; }
 
-void Melder_setPlayReverseProc (void (*playReverse) ())
+void Melder_setPlayReverseProc (void (*playReverse) (void))
 	{ theMelder. playReverse = playReverse ? playReverse : defaultPlayReverse; }
 
-void Melder_setPublishPlayedProc (int (*publishPlayed) ())
+void Melder_setPublishPlayedProc (int (*publishPlayed) (void))
 	{ theMelder. publishPlayed = publishPlayed ? publishPlayed : defaultPublishPlayed; }
 
 /* End of file melder.cpp */
diff --git a/sys/melder.h b/sys/melder.h
index 14dc6eb..5f6cdd5 100644
--- a/sys/melder.h
+++ b/sys/melder.h
@@ -34,7 +34,6 @@
 	#include <sys/types.h>   // for off_t
 #endif
 #include <stdbool.h>
-#include <functional>
 /*
  * The following two lines are for obsolete (i.e. C99) versions of stdint.h
  */
@@ -138,12 +137,12 @@ inline static int str32ncmp (const char32 *string1, const char32 *string2, int64
 inline static char32 * str32chr (const char32 *string, char32 kar) {
 	for (; *string != kar; ++ string) {
 		if (*string == U'\0')
-			return nullptr;
+			return NULL;
 	}
 	return (char32 *) string;
 }
 inline static char32 * str32rchr (const char32 *string, char32 kar) {
-	char32 *result = nullptr;
+	char32 *result = NULL;
 	for (; *string != U'\0'; ++ string) {
 		if (*string == kar) result = (char32 *) string;
 	}
@@ -157,7 +156,7 @@ inline static char32 * str32str (const char32 *string, const char32 *find) {
 		char32 kar;
 		do {
 			kar = * string ++;
-			if (kar == U'\0') return nullptr;
+			if (kar == U'\0') return NULL;
 		} while (kar != firstCharacter);
 	} while (str32ncmp (string, find, length - 1));
 	return (char32 *) (string - 1);
@@ -175,7 +174,7 @@ cont:
 extern "C" char * Melder_peek32to8 (const char32 *string);
 inline static long a32tol (const char32 *string) {
 	if (sizeof (wchar_t) == 4) {
-		return wcstol ((const wchar_t *) string, nullptr, 10);
+		return wcstol ((const wchar_t *) string, NULL, 10);
 	} else {
 		return atol (Melder_peek32to8 (string));
 	}
@@ -292,12 +291,12 @@ void Melder_writeToConsole (const char32 *message, bool useStderr);
 /* the f versions open up a rainy day fund or crash Praat. */
 /* These routines also maintain a count of the total number of blocks allocated. */
 
-void Melder_alloc_init ();   // to be called around program start-up
-void Melder_message_init ();   // to be called around program start-up
+void Melder_alloc_init (void);   // to be called around program start-up
+void Melder_message_init (void);   // to be called around program start-up
 void * _Melder_malloc (int64 size);
-#define Melder_malloc(type,numberOfElements)  (type *) _Melder_malloc ((numberOfElements) * (int64) sizeof (type))
+#define Melder_malloc(type,numberOfElements)  (type *) _Melder_malloc ((numberOfElements) * (int64_t) sizeof (type))
 void * _Melder_malloc_f (int64 size);
-#define Melder_malloc_f(type,numberOfElements)  (type *) _Melder_malloc_f ((numberOfElements) * (int64) sizeof (type))
+#define Melder_malloc_f(type,numberOfElements)  (type *) _Melder_malloc_f ((numberOfElements) * (int64_t) sizeof (type))
 void * Melder_realloc (void *pointer, int64 size);
 void * Melder_realloc_f (void *pointer, int64 size);
 void * _Melder_calloc (int64 numberOfElements, int64 elementSize);
@@ -308,17 +307,17 @@ char * Melder_strdup (const char *string);
 char * Melder_strdup_f (const char *string);
 
 int Melder_cmp (const char32 *string1, const char32 *string2);   // regards null string as empty string
-int Melder_ncmp (const char32 *string1, const char32 *string2, int64 n);
+int Melder_ncmp (const char32 *string1, const char32 *string2, int64_t n);
 char32 * Melder_tok (char32 *string, const char32 *delimiter);
 
 /**
  * Text encodings.
  */
-void Melder_textEncoding_prefs ();
+void Melder_textEncoding_prefs (void);
 void Melder_setInputEncoding (enum kMelder_textInputEncoding encoding);
-int Melder_getInputEncoding ();
+int Melder_getInputEncoding (void);
 void Melder_setOutputEncoding (enum kMelder_textOutputEncoding encoding);
-enum kMelder_textOutputEncoding Melder_getOutputEncoding ();
+enum kMelder_textOutputEncoding Melder_getOutputEncoding (void);
 
 /*
  * Some other encodings. Although not used in the above set/get functions,
@@ -376,7 +375,7 @@ extern "C" char16 * Melder_peek32to16 (const char32 *string);
 void Melder_str32To8bitFileRepresentation_inline (const char32 *string, char *utf8);
 void Melder_8bitFileRepresentationToStr32_inline (const char *utf8, char32 *string);
 const void * Melder_peek32toCfstring (const char32 *string);
-void Melder_fwrite32to8 (const char32 *ptr, FILE *f);
+void Melder_fwrite32to8 (const char32 *ptr, int64 n, FILE *f);
 
 
 /********** FILES **********/
@@ -434,8 +433,8 @@ void MelderFile_getParentDir (MelderFile file, MelderDir parent);
 void MelderDir_getParentDir (MelderDir file, MelderDir parent);
 bool MelderDir_isDesktop (MelderDir dir);
 void MelderDir_getSubdir (MelderDir parent, const char32 *subdirName, MelderDir subdir);
-void Melder_rememberShellDirectory ();
-char32 * Melder_getShellDirectory ();
+void Melder_rememberShellDirectory (void);
+char32 * Melder_getShellDirectory (void);
 void Melder_getHomeDir (MelderDir homeDir);
 void Melder_getPrefDir (MelderDir prefDir);
 void Melder_getTempDir (MelderDir tempDir);
@@ -448,7 +447,7 @@ void MelderFile_delete (MelderFile file);
 /* The following two should be combined with each other and with Windows extension setting: */
 FILE * Melder_fopen (MelderFile file, const char *type);
 void Melder_fclose (MelderFile file, FILE *stream);
-void Melder_files_cleanUp ();
+void Melder_files_cleanUp (void);
 
 /* Use the following functions to pass unchanged text or file names to Melder_* functions. */
 /* Backslashes are replaced by "\bs". */
@@ -660,33 +659,33 @@ void MelderFile_setDefaultDir (MelderFile file);
 void _Melder_free (void **pointer);
 /*
 	Preconditions:
-		none (*pointer may be null).
+		none (*pointer may be NULL).
 	Postconditions:
-		*pointer == nullptr;
+		*pointer == NULL;
 */
 
-int64 Melder_allocationCount ();
+int64 Melder_allocationCount (void);
 /*
 	Returns the total number of successful calls to
-	Melder_malloc, Melder_realloc (if 'ptr' is null), Melder_calloc, and Melder_strdup,
+	Melder_malloc, Melder_realloc (if 'ptr' is NULL), Melder_calloc, and Melder_strdup,
 	since the start of the process. Mainly for debugging purposes.
 */
 
-int64 Melder_deallocationCount ();
+int64 Melder_deallocationCount (void);
 /*
 	Returns the total number of successful calls to Melder_free,
 	since the start of the process. Mainly for debugging purposes.
 */
 
-int64 Melder_allocationSize ();
+int64 Melder_allocationSize (void);
 /*
 	Returns the total number of bytes allocated in calls to
 	Melder_malloc, Melder_realloc (if moved), Melder_calloc, and Melder_strdup,
 	since the start of the process. Mainly for debugging purposes.
 */
 
-int64 Melder_reallocationsInSituCount ();
-int64 Melder_movingReallocationsCount ();
+int64 Melder_reallocationsInSituCount (void);
+int64 Melder_movingReallocationsCount (void);
 
 /********** STRINGS **********/
 
@@ -747,10 +746,10 @@ void MelderString_append (MelderString *me, Melder_16_TO_19_ARGS);
 void MelderString16_appendCharacter (MelderString16 *me, char32 character);
 void MelderString_appendCharacter (MelderString *me, char32 character);
 void MelderString_get (MelderString *me, char32 *destination);   // performs no boundary checking
-int64 MelderString_allocationCount ();
-int64 MelderString_deallocationCount ();
-int64 MelderString_allocationSize ();
-int64 MelderString_deallocationSize ();
+int64 MelderString_allocationCount (void);
+int64 MelderString_deallocationCount (void);
+int64 MelderString_allocationSize (void);
+int64 MelderString_deallocationSize (void);
 
 struct structMelderReadText {
 	char32 *string32, *readPointer32;
@@ -812,14 +811,14 @@ bool Melder_stringMatchesCriterion (const char32 *value, int which_kMelder_strin
 	separated (and perhaps preceded and followed) by white space.
 	The tokens cannot contain spaces themselves (there are no escapes).
 	Typical use:
-		for (token = Melder_firstToken (string); token != nullptr; token = Melder_nextToken ()) {
+		for (token = Melder_firstToken (string); token != NULL; token = Melder_nextToken ()) {
 			... do something with the token ...
 		}
 */
 
 long Melder_countTokens (const char32 *string);
 char32 *Melder_firstToken (const char32 *string);
-char32 *Melder_nextToken ();
+char32 *Melder_nextToken (void);
 char32 ** Melder_getTokens (const char32 *string, long *n);
 void Melder_freeTokens (char32 ***tokens);
 long Melder_searchToken (const char32 *string, char32 **tokens, long n);
@@ -850,7 +849,7 @@ void Melder_casual (Melder_16_TO_19_ARGS);
 /**
 	Give information to stdout (batch), or to an "Info" window (interactive), or to a diverted string.
 */
-void MelderInfo_open ();   // clear the Info window in the background
+void MelderInfo_open (void);   // clear the Info window in the background
 
 void MelderInfo_write (Melder_1_ARG);
 void MelderInfo_write (Melder_2_ARGS);
@@ -882,8 +881,8 @@ void MelderInfo_writeLine (Melder_12_OR_13_ARGS);
 void MelderInfo_writeLine (Melder_14_OR_15_ARGS);
 void MelderInfo_writeLine (Melder_16_TO_19_ARGS);
 
-void MelderInfo_close ();   // drain the background info to the Info window, making sure there is a line break
-void MelderInfo_drain ();   // drain the background info to the Info window, without adding any extra line break
+void MelderInfo_close (void);   // drain the background info to the Info window, making sure there is a line break
+void MelderInfo_drain (void);   // drain the background info to the Info window, without adding any extra line break
 
 void Melder_information (Melder_1_ARG);
 void Melder_information (Melder_2_ARGS);
@@ -900,23 +899,23 @@ void Melder_information (Melder_12_OR_13_ARGS);
 void Melder_information (Melder_14_OR_15_ARGS);
 void Melder_information (Melder_16_TO_19_ARGS);
 
-void Melder_informationReal (double value, const char32 *units);   // %.17g or --undefined--; units may be null
+void Melder_informationReal (double value, const char32 *units);   // %.17g or --undefined--; units may be NULL
 
-void Melder_divertInfo (MelderString *buffer);   // nullptr = back to normal
+void Melder_divertInfo (MelderString *buffer);   // NULL = back to normal
 
 class autoMelderDivertInfo {
 	public:
 		autoMelderDivertInfo (MelderString *buffer) { Melder_divertInfo (buffer); }
-		~autoMelderDivertInfo () { Melder_divertInfo (nullptr); }
+		~autoMelderDivertInfo () { Melder_divertInfo (NULL); }
 };
 
-void Melder_clearInfo ();   // clear the Info window
-const char32 * Melder_getInfo ();
+void Melder_clearInfo (void);   // clear the Info window
+const char32 * Melder_getInfo (void);
 void Melder_help (const char32 *query);
 
-void Melder_search ();
+void Melder_search (void);
 	
-void Melder_beep ();
+void Melder_beep (void);
 
 extern int Melder_debug;
 
@@ -967,10 +966,10 @@ bool Melder_hasError ();
 bool Melder_hasError (const char32 *partialError);
 	/* Returns 1 if there is an error message in store, otherwise 0. */
 
-void Melder_clearError ();
+void Melder_clearError (void);
 	/* Cancel all stored error messages. */
 
-char32 * Melder_getError ();
+char32 * Melder_getError (void);
 	/* Returns the error string. Mainly used with str32str. */
 
 /********** WARNING: give warning to stderr (batch) or to a "Warning" dialog **********/
@@ -990,8 +989,8 @@ void Melder_warning (Melder_12_OR_13_ARGS);
 void Melder_warning (Melder_14_OR_15_ARGS);
 void Melder_warning (Melder_16_TO_19_ARGS);
 
-void Melder_warningOff ();
-void Melder_warningOn ();
+void Melder_warningOff (void);
+void Melder_warningOn (void);
 
 class autoMelderWarningOff {
 public:
@@ -1038,13 +1037,13 @@ void Melder_progress (double progress, Melder_12_OR_13_ARGS);
 void Melder_progress (double progress, Melder_14_OR_15_ARGS);
 void Melder_progress (double progress, Melder_16_TO_19_ARGS);
 
-void Melder_progressOff ();
-void Melder_progressOn ();
+void Melder_progressOff (void);
+void Melder_progressOn (void);
 /*
 	Function:
 		Show the progress of a time-consuming process.
 	Arguments:
-		Any of 'arg1' through 'arg19' may be null.
+		Any of 'arg1' through 'arg19' may be NULL.
 	Batch behaviour:
 		Does nothing, always returns 1.
 	Interactive behaviour:
@@ -1099,15 +1098,15 @@ void * Melder_monitor (double progress, Melder_16_TO_19_ARGS);
 	Function:
 		Show the progress of a time-consuming process.
 	Arguments:
-		Any of 'arg1' through 'arg19' may be null.
+		Any of 'arg1' through 'arg19' may be NULL.
 	Batch behaviour:
-		Does nothing, returns null if 'progress' <= 0.0 and a non-null pointer otherwise.
+		Does nothing, returns NULL if 'progress' <= 0.0 and a non-NULL pointer otherwise.
 	Interactive behaviour:
 		Shows the progress of a time-consuming process:
 		- if 'progress' <= 0.0, show a window with text and a Cancel button and
 		  room for a square drawing, and return a Graphics;
 		- if 0.0 < 'progress' < 1.0, show text and a partially filled progress bar,
-		  and return nullptr if user interrupts, else return a non-null pointer;
+		  and return NULL if user interrupts, else return a non-NULL pointer;
 		- if 'progress' >= 1, hide the window.
 	Usage:
 		- call with 'progress' = 0.0 before the process starts.
@@ -1129,8 +1128,8 @@ void * Melder_monitor (double progress, Melder_16_TO_19_ARGS);
 		          break;
 		      }
 		- after the process has finished, call with 'progress' = 1.0:
-		      (void) Melder_monitor (1.0, nullptr);
-		- showing and hiding can be automated by autoMelderMonitor:
+		      (void) Melder_monitor (1.0, NULL);
+		- the first and third steps can be automated by autoMelderMonitor:
 		      autoMelderMonitor monitor ("Starting work...");
 		      if (monitor.graphics()) {   // always check; might be batch
 		          Graphics_clearWs (monitor.graphics());   // only if you redraw all every time
@@ -1153,11 +1152,13 @@ public:
 
 /********** RECORD AND PLAY ROUTINES **********/
 
+int Melder_publish (void *anything);
+
 int Melder_record (double duration);
 int Melder_recordFromFile (MelderFile file);
-void Melder_play ();
-void Melder_playReverse ();
-int Melder_publishPlayed ();
+void Melder_play (void);
+void Melder_playReverse (void);
+int Melder_publishPlayed (void);
 
 /********** SYSTEM VERSION **********/
 
@@ -1195,53 +1196,61 @@ void Melder_setProgressProc (int (*progressProc) (double progress, const char32
 void Melder_setMonitorProc (void * (*monitorProc) (double progress, const char32 *message));
 void Melder_setInformationProc (void (*informationProc) (const char32 *message));
 void Melder_setHelpProc (void (*help) (const char32 *query));
-void Melder_setSearchProc (void (*search) ());
+void Melder_setSearchProc (void (*search) (void));
 void Melder_setWarningProc (void (*warningProc) (const char32 *message));
 void Melder_setErrorProc (void (*errorProc) (const char32 *message));
 void Melder_setFatalProc (void (*fatalProc) (const char32 *message));
+void Melder_setPublishProc (int (*publish) (void *));
 void Melder_setRecordProc (int (*record) (double));
 void Melder_setRecordFromFileProc (int (*recordFromFile) (MelderFile));
-void Melder_setPlayProc (void (*play) ());
-void Melder_setPlayReverseProc (void (*playReverse) ());
-void Melder_setPublishPlayedProc (int (*publishPlayed) ());
+void Melder_setPlayProc (void (*play) (void));
+void Melder_setPlayReverseProc (void (*playReverse) (void));
+void Melder_setPublishPlayedProc (int (*publishPlayed) (void));
 
-double Melder_stopwatch ();
-void Melder_sleep (double duration);
+double Melder_stopwatch (void);
 
 /********** AUDIO **********/
 
-void MelderAudio_setInputSoundSystem (enum kMelder_inputSoundSystem inputSoundSystem);
-enum kMelder_inputSoundSystem MelderAudio_getInputSoundSystem ();
-
-void MelderAudio_setOutputSoundSystem (enum kMelder_outputSoundSystem outputSoundSystem);
-enum kMelder_outputSoundSystem MelderAudio_getOutputSoundSystem ();
-
-#if defined (_WIN32)
-	#define kMelderAudio_outputSilenceBefore_DEFAULT  0.0
-	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.1
-		// in order to get rid of the click on some cards
-#elif defined (macintosh)
-	#define kMelderAudio_outputSilenceBefore_DEFAULT  0.0
-		// in order to switch off the BOING caused by the automatic gain control
-	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.0
-		// in order to reduce the BOING caused by the automatic gain control when the user replays immediately after a sound has finished
-#elif defined (linux)
-	#define kMelderAudio_outputSilenceBefore_DEFAULT  0.0
-	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.1
-		// in order to get rid of double playing of a sounding buffer (?)
+#if defined (macintosh) || defined (_WIN32) || defined (linux)
+	#define kMelderAudio_inputUsesPortAudio_DEFAULT  true
+		// Mac: in order to have CoreAudio
+		// Win: in order to allow recording for over 64 megabytes (paMME)
+		// Linux: in order to use ALSA and therefore be compatible with Ubuntu 10.10 and later
+#else
+	#define kMelderAudio_inputUsesPortAudio_DEFAULT  false
+#endif
+void MelderAudio_setInputUsesPortAudio (bool inputUsesPortAudio);
+bool MelderAudio_getInputUsesPortAudio (void);
+#if defined (macintosh) || defined (linux)
+	#define kMelderAudio_outputUsesPortAudio_DEFAULT  true
+		// Mac: in order to have CoreAudio
+		// Linux: in order to use ALSA and therefore be compatible with Ubuntu 10.10 and later
 #else
+	#define kMelderAudio_outputUsesPortAudio_DEFAULT  false
+		// Win: in order to reduce the long latencies of paMME and to avoid the incomplete implementation of paDirectSound
+#endif
+void MelderAudio_setOutputUsesPortAudio (bool outputUsesPortAudio);
+bool MelderAudio_getOutputUsesPortAudio (void);
+#if 1
 	#define kMelderAudio_outputSilenceBefore_DEFAULT  0.0
-	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.0
+		// Mac: in order to switch off the BOING caused by the automatic gain control
 #endif
 void MelderAudio_setOutputSilenceBefore (double silenceBefore);
-double MelderAudio_getOutputSilenceBefore ();
+double MelderAudio_getOutputSilenceBefore (void);
+#if defined (macintosh)
+	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.0
+		// Mac: in order to reduce the BOING caused by the automatic gain control when the user replays immediately after a sound has finished
+#else
+	#define kMelderAudio_outputSilenceAfter_DEFAULT  0.5
+		// Win: in order to get rid of the click on some cards
+		// Linux: in order to get rid of double playing of a sounding buffer
+#endif
 void MelderAudio_setOutputSilenceAfter (double silenceAfter);
-double MelderAudio_getOutputSilenceAfter ();
-
+double MelderAudio_getOutputSilenceAfter (void);
 void MelderAudio_setUseInternalSpeaker (bool useInternalSpeaker);   // for HP-UX and Sun
-bool MelderAudio_getUseInternalSpeaker ();
+bool MelderAudio_getUseInternalSpeaker (void);
 void MelderAudio_setOutputMaximumAsynchronicity (enum kMelder_asynchronicityLevel maximumAsynchronicity);
-enum kMelder_asynchronicityLevel MelderAudio_getOutputMaximumAsynchronicity ();
+enum kMelder_asynchronicityLevel MelderAudio_getOutputMaximumAsynchronicity (void);
 long MelderAudio_getOutputBestSampleRate (long fsamp);
 
 extern bool MelderAudio_isPlaying;
@@ -1251,10 +1260,10 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 bool MelderAudio_stopPlaying (bool isExplicit);   // returns true if sound was playing
 #define MelderAudio_IMPLICIT  false
 #define MelderAudio_EXPLICIT  true
-long MelderAudio_getSamplesPlayed ();
-bool MelderAudio_stopWasExplicit ();
+long MelderAudio_getSamplesPlayed (void);
+bool MelderAudio_stopWasExplicit (void);
 
-void Melder_audio_prefs ();   // in init file
+void Melder_audio_prefs (void);   // in init file
 
 /********** AUDIO FILES **********/
 
@@ -1328,7 +1337,7 @@ const char32 * MelderQuantity_getShortUnitText (int quantity);   // e.g. "s"
 
 char32 * Melder_getenv (const char32 *variableName);
 void Melder_system (const char32 *command);   // spawn a system command
-double Melder_clock ();   // seconds since 1969
+double Melder_clock (void);   // seconds since 1969
 
 struct autoMelderProgressOff {
 	autoMelderProgressOff () { Melder_progressOff (); }
@@ -1336,8 +1345,15 @@ struct autoMelderProgressOff {
 };
 
 struct autoMelderString : MelderString {
-	autoMelderString () { length = 0; bufferSize = 0; string = nullptr; }
+	autoMelderString () { length = 0; bufferSize = 0; string = NULL; }
 	~autoMelderString () { MelderString_free (this); }
+	char32 * transfer () {
+		char32 *tmp = string;
+		string = NULL;
+		length = 0;
+		bufferSize = 0;
+		return tmp;
+	}
 };
 
 struct autoMelderReadText {
@@ -1355,7 +1371,7 @@ struct autoMelderReadText {
 	}
 	MelderReadText transfer () {
 		MelderReadText tmp = text;
-		text = nullptr;
+		text = NULL;
 		return tmp;
 	}
 };
@@ -1365,7 +1381,7 @@ class autofile {
 public:
 	autofile (FILE *f) : ptr (f) {
 	}
-	autofile () : ptr (nullptr) {
+	autofile () : ptr (NULL) {
 	}
 	~autofile () {
 		if (ptr) fclose (ptr);   // no error checking, because this is a destructor, only called after a throw, because otherwise you'd use f.close(file)
@@ -1380,30 +1396,30 @@ public:
 	void close (MelderFile file) {
 		if (ptr) {
 			FILE *tmp = ptr;
-			ptr = nullptr;
+			ptr = NULL;
 			Melder_fclose (file, tmp);
 		}
 	}
 };
 
 class autoMelderFile {
-	MelderFile _file;
+	MelderFile file;
 public:
-	autoMelderFile (MelderFile file) : _file (file) {
+	autoMelderFile (MelderFile a_file) : file (a_file) {
 	}
 	~autoMelderFile () {
-		if (_file) MelderFile_close_nothrow (_file);
+		if (file) MelderFile_close_nothrow (file);
 	}
 	void close () {
-		if (_file && _file -> filePointer) {
-			MelderFile tmp = _file;
-			_file = nullptr;
+		if (file && file -> filePointer) {
+			MelderFile tmp = file;
+			file = NULL;
 			MelderFile_close (tmp);
 		}
 	}
 	MelderFile transfer () {
-		MelderFile tmp = _file;
-		_file = nullptr;
+		MelderFile tmp = file;
+		file = NULL;
 		return tmp;
 	}
 };
@@ -1445,20 +1461,15 @@ public:
 
 class autoMelderTokens {
 	char32 **tokens;
-	long numberOfTokens;
 public:
 	autoMelderTokens () {
-		tokens = nullptr;
+		tokens = NULL;
 	}
-	autoMelderTokens (const char32 *string) {
-		tokens = Melder_getTokens (string, & numberOfTokens);
+	autoMelderTokens (const char32 *string, long *n) {
+		tokens = Melder_getTokens (string, n);
 	}
 	~autoMelderTokens () {
-		if (tokens) {
-			for (long itoken = 1; itoken <= numberOfTokens; itoken ++)
-				Melder_free (tokens [itoken]);
-			Melder_freeTokens (& tokens);
-		}
+		if (tokens) Melder_freeTokens (& tokens);
 	}
 	char32*& operator[] (long i) {
 		return tokens [i];
@@ -1466,16 +1477,9 @@ public:
 	char32 ** peek () const {
 		return tokens;
 	}
-	long count () const {
-		return numberOfTokens;
-	}
-	void reset (const char32 *string) {
-		if (tokens) {
-			for (long itoken = 1; itoken <= numberOfTokens; itoken ++)
-				Melder_free (tokens [itoken]);
-			Melder_freeTokens (& tokens);
-		}
-		tokens = Melder_getTokens (string, & numberOfTokens);
+	void reset (const char32 *string, long *n) {
+		if (tokens) Melder_freeTokens (& tokens);
+		tokens = Melder_getTokens (string, n);
 	}
 };
 
@@ -1486,7 +1490,7 @@ public:
 	_autostring (T *string) : ptr (string) {
 		//if (Melder_debug == 39) Melder_casual (U"autostring: constructor from C-string ", Melder_pointer (ptr));
 	}
-	_autostring () : ptr (nullptr) {
+	_autostring () : ptr (0) {
 		//if (Melder_debug == 39) Melder_casual (U"autostring: zero constructor");
 	}
 	~_autostring () {
@@ -1513,7 +1517,7 @@ public:
 	}
 	T * transfer () {
 		T *tmp = ptr;
-		ptr = nullptr;
+		ptr = NULL;
 		return tmp;
 	}
 	void reset (T *string) {
@@ -1552,62 +1556,5 @@ struct autoMelderAsynchronous {
 	~autoMelderAsynchronous () { Melder_asynchronous = false; }
 };
 
-#if defined (macintosh) && useCarbon
-	#define Melder_ENABLE_IF_ISA(A,B)
-#else
-	#define Melder_ENABLE_IF_ISA(A,B)  , class = typename std::enable_if<std::is_base_of<B,A>::value>::type
-#endif
-
-template <typename Ret, typename T, typename... Args>
-class MelderCallback {
-	public:
-		typedef Ret* (*FunctionType) (T*, Args...);
-		MelderCallback (FunctionType f = nullptr) : _f (f) { }
-		template <typename T2  Melder_ENABLE_IF_ISA(T2,T), typename Ret2  Melder_ENABLE_IF_ISA(Ret2,Ret)>
-			MelderCallback (Ret2* (*f) (T2*, Args...)) : _f (reinterpret_cast<FunctionType> (f)) { };
-		Ret* operator () (T* data, Args ... args) { return _f (data, args...); }
-		explicit operator bool () const { return !! _f; }
-	private:
-		FunctionType _f;
-};
-template <typename T, typename... Args>
-class MelderCallback <void, T, Args...> {   // specialization
-	public:
-		typedef void (*FunctionType) (T*, Args...);
-		MelderCallback (FunctionType f = nullptr) : _f (f) { }
-		template <typename T2  Melder_ENABLE_IF_ISA(T2,T)>
-			MelderCallback (void (*f) (T2*, Args...)) : _f (reinterpret_cast<FunctionType> (f)) { };
-		void operator () (T* data, Args ... args) { _f (data, args...); }
-		explicit operator bool () const { return !! _f; }
-	private:
-		FunctionType _f;
-};
-template <typename T, typename... Args>
-class MelderCallback <int, T, Args...> {   // specialization
-	public:
-		typedef int (*FunctionType) (T*, Args...);
-		MelderCallback (FunctionType f = nullptr) : _f (f) { }
-		template <typename T2  Melder_ENABLE_IF_ISA(T2,T)>
-			MelderCallback (int (*f) (T2*, Args...)) : _f (reinterpret_cast<FunctionType> (f)) { };
-		int operator () (T* data, Args ... args) { return _f (data, args...); }
-		explicit operator bool () const { return !! _f; }
-	private:
-		FunctionType _f;
-};
-
-template <typename T>
-class MelderCompareHook {
-	public:
-		typedef int (*FunctionType) (T*, T*);
-		MelderCompareHook (FunctionType f = nullptr) : _f (f) { }
-		template <typename T2  Melder_ENABLE_IF_ISA(T2,T)>
-			MelderCompareHook (int (*f) (T2*, T2*)) : _f (reinterpret_cast<FunctionType> (f)) { };
-		int operator () (T* data1, T* data2) noexcept { return _f (data1, data2); }
-		explicit operator bool () const { return !! _f; }
-		FunctionType get () { return _f; }
-	private:
-		FunctionType _f;
-};
-
 /* End of file melder.h */
 #endif
diff --git a/sys/melder_alloc.cpp b/sys/melder_alloc.cpp
index bf0fed1..ada5001 100644
--- a/sys/melder_alloc.cpp
+++ b/sys/melder_alloc.cpp
@@ -27,7 +27,7 @@
  * pb 2009/07/31 tracing by Melder_debug 34
  * pb 2010/12/28 split into _e and _f versions, and created a rainy-day fund
  * pb 2011/04/05 C++
- * pb 2014/12/17 made everything int64
+ * pb 2014/12/17 made everything int64_t
  */
 
 #include "melder.h"
@@ -55,11 +55,11 @@ static int64 totalNumberOfAllocations = 0, totalNumberOfDeallocations = 0, total
  */
 
 #define theRainyDayFund_SIZE  3000000
-static char *theRainyDayFund = nullptr;
+static char *theRainyDayFund = NULL;
 
-void Melder_alloc_init () {
+void Melder_alloc_init (void) {
 	theRainyDayFund = (char *) malloc (theRainyDayFund_SIZE);   // called at application initialization, so cannot fail
-	assert (theRainyDayFund);
+	assert (theRainyDayFund != NULL);
 }
 
 void * _Melder_malloc (int64 size) {
@@ -68,7 +68,7 @@ void * _Melder_malloc (int64 size) {
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_throw (U"Can never allocate ", Melder_bigInteger (size), U" bytes. Use a 64-bit edition of Praat instead?");
 	void *result = malloc ((size_t) size);   // guarded cast
-	if (! result)
+	if (result == NULL)
 		Melder_throw (U"Out of memory: there is not enough room for another ", Melder_bigInteger (size), U" bytes.");
 	if (Melder_debug == 34) { Melder_casual (U"Melder_malloc\t", Melder_pointer (result), U"\t", Melder_bigInteger (size), U"\t1"); }
 	totalNumberOfAllocations += 1;
@@ -82,10 +82,10 @@ void * _Melder_malloc_f (int64 size) {
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_fatal (U"(Melder_malloc_f:) Can never allocate ", Melder_bigInteger (size), U" bytes.");
 	void *result = malloc ((size_t) size);
-	if (! result) {
-		if (theRainyDayFund) { free (theRainyDayFund); theRainyDayFund = nullptr; }
+	if (result == NULL) {
+		if (theRainyDayFund != NULL) { free (theRainyDayFund); theRainyDayFund = NULL; }
 		result = malloc ((size_t) size);
-		if (result) {
+		if (result != NULL) {
 			Melder_flushError (U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 		} else {
 			Melder_fatal (U"Out of memory: there is not enough room for another %s bytes.", Melder_bigInteger (size));
@@ -97,10 +97,10 @@ void * _Melder_malloc_f (int64 size) {
 }
 
 void _Melder_free (void **ptr) {
-	if (! *ptr) return;
+	if (*ptr == NULL) return;
 	if (Melder_debug == 34) { Melder_casual (U"Melder_free\t", Melder_pointer (*ptr), U"\t?\t?"); }
 	free (*ptr);
-	*ptr = nullptr;
+	*ptr = NULL;
 	totalNumberOfDeallocations += 1;
 }
 
@@ -110,9 +110,9 @@ void * Melder_realloc (void *ptr, int64 size) {
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_throw (U"Can never allocate ", Melder_bigInteger (size), U" bytes. Use a 64-bit edition of Praat instead?");
 	void *result = realloc (ptr, (size_t) size);   // will not show in the statistics...
-	if (result == nullptr)
+	if (result == NULL)
 		Melder_throw (U"Out of memory. Could not extend room to ", Melder_bigInteger (size), U" bytes.");
-	if (! ptr) {   // is it like malloc?
+	if (ptr == NULL) {   // is it like malloc?
 		if (Melder_debug == 34) { Melder_casual (U"Melder_realloc\t", Melder_pointer (result), U"\t", Melder_bigInteger (size), U"\t1"); }
 		totalNumberOfAllocations += 1;
 		totalAllocationSize += size;
@@ -134,16 +134,16 @@ void * Melder_realloc_f (void *ptr, int64 size) {
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_fatal (U"(Melder_realloc_f:) Can never allocate ", Melder_bigInteger (size), U" bytes.");
 	result = realloc (ptr, (size_t) size);   // will not show in the statistics...
-	if (! result) {
-		if (theRainyDayFund) { free (theRainyDayFund); theRainyDayFund = nullptr; }
+	if (result == NULL) {
+		if (theRainyDayFund != NULL) { free (theRainyDayFund); theRainyDayFund = NULL; }
 		result = realloc (ptr, (size_t) size);
-		if (result) {
+		if (result != NULL) {
 			Melder_flushError (U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 		} else {
 			Melder_fatal (U"Out of memory. Could not extend room to ", Melder_bigInteger (size), U" bytes.");
 		}
 	}
-	if (! ptr) {   // is it like malloc?
+	if (ptr == NULL) {   // is it like malloc?
 		totalNumberOfAllocations += 1;
 		totalAllocationSize += size;
 	} else if (result != ptr) {   // did realloc do a malloc-and-free?
@@ -164,9 +164,9 @@ void * _Melder_calloc (int64 nelem, int64 elsize) {
 		Melder_throw (U"Can never allocate elements whose size is ", Melder_bigInteger (elsize), U" bytes.");
 	if ((uint64_t) nelem > SIZE_MAX / (uint64_t) elsize)   // guarded casts to unsigned
 		Melder_throw (U"Can never allocate ", Melder_bigInteger (nelem), U" elements whose sizes are ", Melder_bigInteger (elsize), U" bytes each.",
-			sizeof (size_t) < 8 ? U" Use a 64-bit edition of Praat instead?" : nullptr);
+			sizeof (size_t) < 8 ? U" Use a 64-bit edition of Praat instead?" : NULL);
 	void *result = calloc ((size_t) nelem, (size_t) elsize);
-	if (! result)
+	if (result == NULL)
 		Melder_throw (U"Out of memory: there is not enough room for ", Melder_bigInteger (nelem), U" more elements whose sizes are ", elsize, U" bytes each.");
 	if (Melder_debug == 34) { Melder_casual (U"Melder_calloc\t", Melder_pointer (result), U"\t", Melder_bigInteger (nelem), U"\t", Melder_bigInteger (elsize)); }
 	totalNumberOfAllocations += 1;
@@ -182,10 +182,10 @@ void * _Melder_calloc_f (int64 nelem, int64 elsize) {
 	if ((uint64_t) nelem > SIZE_MAX / (uint64_t) elsize)
 		Melder_fatal (U"(Melder_calloc_f:) Can never allocate ", Melder_bigInteger (nelem), U" elements whose sizes are ", Melder_bigInteger (elsize), U" bytes each.");
 	void *result = calloc ((size_t) nelem, (size_t) elsize);
-	if (! result) {
-		if (theRainyDayFund) { free (theRainyDayFund); theRainyDayFund = nullptr; }
+	if (result == NULL) {
+		if (theRainyDayFund != NULL) { free (theRainyDayFund); theRainyDayFund = NULL; }
 		result = calloc ((size_t) nelem, (size_t) elsize);
-		if (result) {
+		if (result != NULL) {
 			Melder_flushError (U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 		} else {
 			Melder_fatal (U"Out of memory: there is not enough room for ", Melder_bigInteger (nelem),
@@ -198,12 +198,12 @@ void * _Melder_calloc_f (int64 nelem, int64 elsize) {
 }
 
 char * Melder_strdup (const char *string) {
-	if (! string) return nullptr;
+	if (! string) return NULL;
 	int64 size = (int64) strlen (string) + 1;
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_throw (U"Can never allocate ", Melder_bigInteger (size), U" bytes. Use a 64-bit edition of Praat instead?");
 	char *result = (char *) malloc ((size_t) size);
-	if (! result)
+	if (result == NULL)
 		Melder_throw (U"Out of memory: there is not enough room to duplicate a text of ", Melder_bigInteger (size - 1), U" characters.");
 	strcpy (result, string);
 	if (Melder_debug == 34) { Melder_casual (U"Melder_strdup\t", Melder_pointer (result), U"\t", Melder_bigInteger (size), U"\t1"); }
@@ -213,15 +213,15 @@ char * Melder_strdup (const char *string) {
 }
 
 char * Melder_strdup_f (const char *string) {
-	if (! string) return nullptr;
+	if (! string) return NULL;
 	int64 size = (int64) strlen (string) + 1;
 	if (sizeof (size_t) < 8 && size > SIZE_MAX)
 		Melder_fatal (U"(Melder_strdup_f:) Can never allocate ", Melder_bigInteger (size), U" bytes.");
 	char *result = (char *) malloc ((size_t) size);
-	if (! result) {
-		if (theRainyDayFund) { free (theRainyDayFund); theRainyDayFund = nullptr; }
+	if (result == NULL) {
+		if (theRainyDayFund != NULL) { free (theRainyDayFund); theRainyDayFund = NULL; }
 		result = (char *) malloc ((size_t) size * sizeof (char));
-		if (result) {
+		if (result != NULL) {
 			Melder_flushError (U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 		} else {
 			Melder_fatal (U"Out of memory: there is not enough room to duplicate a text of ", Melder_bigInteger (size - 1), U" characters.");
@@ -234,12 +234,12 @@ char * Melder_strdup_f (const char *string) {
 }
 
 char32 * Melder_dup (const char32 *string /* cattable */) {
-	if (! string) return nullptr;
+	if (! string) return NULL;
 	int64 size = (int64) str32len (string) + 1;   // guaranteed to be positive
 	if (sizeof (size_t) < 8 && size > SIZE_MAX / sizeof (char32))
 		Melder_throw (U"Can never allocate ", Melder_bigInteger (size), U" characters. Use a 64-bit edition of Praat instead?");
 	char32 *result = (char32 *) malloc ((size_t) size * sizeof (char32));   // guarded conversion
-	if (! result)
+	if (result == NULL)
 		Melder_throw (U"Out of memory: there is not enough room to duplicate a text of ", Melder_bigInteger (size - 1), U" characters.");
 	str32cpy (result, string);
 	if (Melder_debug == 34) { Melder_casual (U"Melder_dup\t", Melder_pointer (result), U"\t", Melder_bigInteger (size), U"\t4"); }
@@ -249,15 +249,15 @@ char32 * Melder_dup (const char32 *string /* cattable */) {
 }
 
 char32 * Melder_dup_f (const char32 *string /* cattable */) {
-	if (! string) return nullptr;
+	if (! string) return NULL;
 	int64 size = (int64) str32len (string) + 1;
 	if (sizeof (size_t) < 8 && size > SIZE_MAX / sizeof (char32))
 		Melder_fatal (U"(Melder_dup_f:) Can never allocate ", Melder_bigInteger (size), U" characters.");
 	char32 *result = (char32 *) malloc ((size_t) size * sizeof (char32));
-	if (! result) {
-		if (theRainyDayFund) { free (theRainyDayFund); theRainyDayFund = nullptr; }
+	if (result == NULL) {
+		if (theRainyDayFund != NULL) { free (theRainyDayFund); theRainyDayFund = NULL; }
 		result = (char32 *) malloc ((size_t) size * sizeof (char32));
-		if (result) {
+		if (result != NULL) {
 			Melder_flushError (U"Praat is very low on memory.\nSave your work and quit Praat.\nIf you don't do that, Praat may crash.");
 		} else {
 			Melder_fatal (U"Out of memory: there is not enough room to duplicate a text of ", Melder_bigInteger (size - 1), U" characters.");
@@ -269,41 +269,41 @@ char32 * Melder_dup_f (const char32 *string /* cattable */) {
 	return result;
 }
 
-int64 Melder_allocationCount () {
+int64 Melder_allocationCount (void) {
 	return totalNumberOfAllocations;
 }
 
-int64 Melder_deallocationCount () {
+int64 Melder_deallocationCount (void) {
 	return totalNumberOfDeallocations;
 }
 
-int64 Melder_allocationSize () {
+int64 Melder_allocationSize (void) {
 	return totalAllocationSize;
 }
 
-int64 Melder_reallocationsInSituCount () {
+int64 Melder_reallocationsInSituCount (void) {
 	return totalNumberOfReallocsInSitu;
 }
 
-int64 Melder_movingReallocationsCount () {
+int64 Melder_movingReallocationsCount (void) {
 	return totalNumberOfMovingReallocs;
 }
 
 int Melder_cmp (const char32 *string1, const char32 *string2) {
-	if (! string1) string1 = U"";
-	if (! string2) string2 = U"";
+	if (string1 == NULL) string1 = U"";
+	if (string2 == NULL) string2 = U"";
 	return str32cmp (string1, string2);
 }
 
-int Melder_ncmp (const char32 *string1, const char32 *string2, int64 n) {
-	if (! string1) string1 = U"";
-	if (! string2) string2 = U"";
+int Melder_ncmp (const char32 *string1, const char32 *string2, int64_t n) {
+	if (string1 == NULL) string1 = U"";
+	if (string2 == NULL) string2 = U"";
 	return str32ncmp (string1, string2, n);
 }
 
 bool Melder_str32equ_firstCharacterCaseInsensitive (const char32 *string1, const char32 *string2) {
-	if (! string1) string1 = U"";
-	if (! string2) string2 = U"";
+	if (string1 == NULL) string1 = U"";
+	if (string2 == NULL) string2 = U"";
 	if (*string1 == U'\0') return *string2 == U'\0';
 	if (*string1 == *string2)
 		return ! str32cmp (string1 + 1, string2 + 1);
@@ -323,8 +323,8 @@ char32 * Melder_tok (char32 *string, const char32 *delimiter) {
 	char32 *tok;
 	static char32 *last;
 
-	if (! string && (string = last) == nullptr)
-		return nullptr;
+	if (string == NULL && (string = last) == NULL)
+		return (NULL);
 
 cont:
 	c = * string ++;
@@ -334,8 +334,8 @@ cont:
 	}
 
 	if (c == U'\0') {
-		last = nullptr;
-		return nullptr;
+		last = NULL;
+		return NULL;
 	}
 	tok = string - 1;
 	for (;;) {
@@ -344,7 +344,7 @@ cont:
 		do {
 			if ((sc = * spanp ++) == c) {
 				if (c == U'\0')
-					string = nullptr;
+					string = NULL;
 				else
 					string [-1] = U'\0';
 				last = string;
diff --git a/sys/melder_atof.cpp b/sys/melder_atof.cpp
index a6e956e..ce0a41f 100644
--- a/sys/melder_atof.cpp
+++ b/sys/melder_atof.cpp
@@ -43,7 +43,7 @@ static const char32 *findEndOfNumericString_nothrow (const char32 *string) {
 	 * The next character must be a decimal digit.
 	 * So we don't allow things like ".5".
 	 */
-	if (*p < '0' || *p > '9') return nullptr;   // string is not numeric
+	if (*p < '0' || *p > '9') return NULL;   // string is not numeric
 	p ++;
 	/*
 	 * Then we accept any number of decimal digits.
@@ -72,7 +72,7 @@ static const char32 *findEndOfNumericString_nothrow (const char32 *string) {
 		 * The exponent must contain a decimal digit.
 		 * So we don't allow things like "+2.1E".
 		 */
-		if (*p < '0' || *p > '9') return nullptr;   // string is not numeric
+		if (*p < '0' || *p > '9') return NULL;   // string is not numeric
 		p ++;
 		/*
 		 * Then we accept any number of decimal digits.
@@ -104,7 +104,7 @@ static const char *findEndOfNumericString_nothrow (const char *string) {
 	 * The next character must be a decimal digit.
 	 * So we don't allow things like ".5".
 	 */
-	if (*p < '0' || *p > '9') return nullptr;   // string is not numeric
+	if (*p < '0' || *p > '9') return NULL;   // string is not numeric
 	p ++;
 	/*
 	 * Then we accept any number of decimal digits.
@@ -133,7 +133,7 @@ static const char *findEndOfNumericString_nothrow (const char *string) {
 		 * The exponent must contain a decimal digit.
 		 * So we don't allow things like "+2.1E".
 		 */
-		if (*p < '0' || *p > '9') return nullptr;   // string is not numeric
+		if (*p < '0' || *p > '9') return NULL;   // string is not numeric
 		p ++;
 		/*
 		 * Then we accept any number of decimal digits.
@@ -151,23 +151,23 @@ static const char *findEndOfNumericString_nothrow (const char *string) {
 }
 
 bool Melder_isStringNumeric_nothrow (const char32 *string) {
-	if (! string) return false;
+	if (string == NULL) return false;
 	const char32 *p = findEndOfNumericString_nothrow (string);
-	if (! p) return false;
+	if (p == NULL) return FALSE;
 	/*
 	 * We accept only white space after the numeric string.
 	 */
-	while (*p == U' ' || *p == U'\t' || *p == U'\n' || *p == U'\r')
+	while (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r')
 		p ++;
-	return *p == U'\0';
+	return *p == '\0';
 }
 
 double Melder_a8tof (const char *string) {
-	if (! string) return NUMundefined;
+	if (string == NULL) return NUMundefined;
 	const char *p = findEndOfNumericString_nothrow (string);
-	if (! p) return NUMundefined;
+	if (p == NULL) return NUMundefined;
 	Melder_assert (p - string > 0);
-	return p [-1] == '%' ? 0.01 * strtod (string, nullptr) : strtod (string, nullptr);
+	return p [-1] == '%' ? 0.01 * strtod (string, NULL) : strtod (string, NULL);
 }
 
 double Melder_atof (const char32 *string) {
@@ -175,7 +175,7 @@ double Melder_atof (const char32 *string) {
 }
 
 int64 Melder_atoi (const char32 *string) {
-	return strtoll (Melder_peek32to8 (string), nullptr, 10);
+	return strtoll (Melder_peek32to8 (string), NULL, 10);
 }
 
 /* End of file melder_atof.cpp */
diff --git a/sys/melder_audio.cpp b/sys/melder_audio.cpp
index 0922d6f..4e95454 100644
--- a/sys/melder_audio.cpp
+++ b/sys/melder_audio.cpp
@@ -1,6 +1,6 @@
 /* melder_audio.cpp
  *
- * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma, David Weenink
+ * Copyright (C) 1992-2011,2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,9 +57,6 @@
 	#include <sys/ioctl.h>
 	#include <fcntl.h>
 	#include <unistd.h>
-	#if defined HAVE_PULSEAUDIO
-		#include <pulse/pulseaudio.h>
-	#endif
 	#if defined (__OpenBSD__) || defined (__NetBSD__)
 		#include <soundcard.h>
 	#else
@@ -68,84 +65,64 @@
 	#include <errno.h>
 #endif
 
+#include "melder.h"
 #include "Gui.h"
 #include "Preferences.h"
 #include "NUM.h"
 #include <time.h>
-#define my me ->
+#define my  me ->
 
 #include "../external/portaudio/portaudio.h"
 
-#ifdef HAVE_PULSEAUDIO
-	void pulseAudio_initialize ();
-	void pulseAudio_cleanup ();
-	void pulseAudio_serverReport ();
-	void stream_state_cb (pa_stream *stream, void *userdata);
-	void stream_drain_complete_cb (pa_stream *stream, int success, void *userdata);
-	void context_state_cb (pa_context *context, void *userdata);
-	void context_drain_complete_cb (pa_context *context, void *userdata);
-	void stream_write_cb (pa_stream *stream, size_t length, void *userdata);
-	void stream_write_cb2 (pa_stream *stream, size_t length, void *userdata);
-	void pulseAudio_server_info_cb (pa_context *context, const pa_server_info *info, void *userdata);
-#endif
-
 static struct {
 	enum kMelder_asynchronicityLevel maximumAsynchronicity;
-	enum kMelder_inputSoundSystem inputSoundSystem;
-	enum kMelder_outputSoundSystem outputSoundSystem;
-	bool useInternalSpeaker;
+	bool useInternalSpeaker, inputUsesPortAudio, outputUsesPortAudio;
 	double silenceBefore, silenceAfter;
 } preferences;
 
-void Melder_audio_prefs () {
+void Melder_audio_prefs (void) {
 	Preferences_addEnum (U"Audio.maximumAsynchronicity", & preferences. maximumAsynchronicity, kMelder_asynchronicityLevel, kMelder_asynchronicityLevel_DEFAULT);
-	Preferences_addEnum (U"Audio.inputSoundSystem", & preferences. inputSoundSystem, kMelder_inputSoundSystem, kMelder_inputSoundSystem_DEFAULT);
-	Preferences_addEnum (U"Audio.outputSoundSystem", & preferences. outputSoundSystem, kMelder_outputSoundSystem, kMelder_outputSoundSystem_DEFAULT);
 	Preferences_addBool (U"Audio.useInternalSpeaker", & preferences. useInternalSpeaker, true);
-	Preferences_addDouble (U"Audio.silenceBefore2", & preferences. silenceBefore, kMelderAudio_outputSilenceBefore_DEFAULT);
-	Preferences_addDouble (U"Audio.silenceAfter2", & preferences. silenceAfter, kMelderAudio_outputSilenceAfter_DEFAULT);
+	Preferences_addBool (U"Audio.outputUsesPortAudio2", & preferences. outputUsesPortAudio, kMelderAudio_outputUsesPortAudio_DEFAULT);
+	Preferences_addDouble (U"Audio.silenceBefore", & preferences. silenceBefore, kMelderAudio_outputSilenceBefore_DEFAULT);
+	Preferences_addDouble (U"Audio.silenceAfter", & preferences. silenceAfter, kMelderAudio_outputSilenceAfter_DEFAULT);
+	Preferences_addBool (U"Audio.inputUsesPortAudio2", & preferences. inputUsesPortAudio, kMelderAudio_inputUsesPortAudio_DEFAULT);
 }
 
 void MelderAudio_setOutputMaximumAsynchronicity (enum kMelder_asynchronicityLevel maximumAsynchronicity) {
 	//MelderAudio_stopPlaying (MelderAudio_IMPLICIT);   // BUG
 	preferences. maximumAsynchronicity = maximumAsynchronicity;
 }
-enum kMelder_asynchronicityLevel MelderAudio_getOutputMaximumAsynchronicity () {
-	return preferences. maximumAsynchronicity;
-}
+enum kMelder_asynchronicityLevel MelderAudio_getOutputMaximumAsynchronicity (void) { return preferences. maximumAsynchronicity; }
 
-void MelderAudio_setInputSoundSystem (enum kMelder_inputSoundSystem inputSoundSystem) {
-	preferences. inputSoundSystem = inputSoundSystem;
-}
-enum kMelder_inputSoundSystem MelderAudio_getInputSoundSystem () {
-	return preferences. inputSoundSystem;
+void MelderAudio_setInputUsesPortAudio (bool inputUsesPortAudio) {
+	preferences. inputUsesPortAudio = inputUsesPortAudio;
 }
+bool MelderAudio_getInputUsesPortAudio (void) { return preferences. inputUsesPortAudio; }
 
-void MelderAudio_setOutputSoundSystem (enum kMelder_outputSoundSystem outputSoundSystem) {
+void MelderAudio_setOutputUsesPortAudio (bool outputUsesPortAudio) {
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
-	preferences. outputSoundSystem = outputSoundSystem;
-}
-enum kMelder_outputSoundSystem MelderAudio_getOutputSoundSystem () {
-	return preferences. outputSoundSystem;
+	preferences. outputUsesPortAudio = outputUsesPortAudio;
 }
+bool MelderAudio_getOutputUsesPortAudio (void) { return preferences. outputUsesPortAudio; }
 
 void MelderAudio_setUseInternalSpeaker (bool useInternalSpeaker) {
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	preferences. useInternalSpeaker = useInternalSpeaker;
 }
-bool MelderAudio_getUseInternalSpeaker () { return preferences. useInternalSpeaker; }
+bool MelderAudio_getUseInternalSpeaker (void) { return preferences. useInternalSpeaker; }
 
 void MelderAudio_setOutputSilenceBefore (double silenceBefore) {
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	preferences. silenceBefore = silenceBefore;
 }
-double MelderAudio_getOutputSilenceBefore () { return preferences. silenceBefore; }
+double MelderAudio_getOutputSilenceBefore (void) { return preferences. silenceBefore; }
 
 void MelderAudio_setOutputSilenceAfter (double silenceAfter) {
 	MelderAudio_stopPlaying (MelderAudio_IMPLICIT);
 	preferences. silenceAfter = silenceAfter;
 }
-double MelderAudio_getOutputSilenceAfter () { return preferences. silenceAfter; }
+double MelderAudio_getOutputSilenceAfter (void) { return preferences. silenceAfter; }
 
 long MelderAudio_getOutputBestSampleRate (long fsamp) {
 	#if defined (macintosh)
@@ -164,37 +141,6 @@ bool MelderAudio_isPlaying;
 
 static double theStartingTime = 0.0;
 
-#define PA_GETTINGINFO 1
-#define PA_GETTINGINFO_DONE 2
-#define PA_WRITING 4
-#define PA_WRITING_DONE 8
-#define PA_RECORDING 16
-#define PA_RECORDING_DONE 32
-
-#ifdef HAVE_PULSEAUDIO
-typedef struct pulseAudio {
-	pa_sample_spec sample_spec;
-	pa_threaded_mainloop *mainloop = nullptr;
-	pa_mainloop_api *mainloop_api = nullptr;
-	pa_context *context = nullptr;
-	pa_stream *stream = nullptr;
-	pa_operation *operation_drain = nullptr;
-	pa_operation *operation_info = nullptr;
-	pa_stream_flags_t stream_flags;
-	const pa_timing_info *timing_info = nullptr;
-	struct timeval startTime = {0, 0};
-	pa_usec_t timer_event_usec = 50000; // 50 ms
-	pa_time_event *timer_event = nullptr;
-	const pa_channel_map *channel_map = nullptr;
-	pa_usec_t r_usec;
-	pa_buffer_attr buffer_attr;
-	uint32_t latency = 0; // in bytes of buffer
-	int32_t latency_msec = 20;
-	bool pulseAudioInitialized = false;
-	unsigned int occupation = PA_WRITING;
-} pulseAudioStruct;
-#endif
-
 static struct MelderPlay {
 	int16_t *buffer;
 	long sampleRate, numberOfSamples, samplesLeft, samplesSent, samplesPlayed;
@@ -209,9 +155,9 @@ static struct MelderPlay {
 	#elif motif
 		XtWorkProcId workProcId_motif;
 	#elif gtk
-		gint workProcId_gtk = 0;
+		gint workProcId_gtk;
 	#endif
-	bool usePortAudio, supports_paComplete, usePulseAudio;
+	bool usePortAudio, supports_paComplete;
 	PaStream *stream;
 	double paStartingTime;
 	#if defined (macintosh)
@@ -222,16 +168,13 @@ static struct MelderPlay {
 		WAVEHDR waveHeader;
 		MMRESULT status;
 	#endif
-	#ifdef HAVE_PULSEAUDIO
-		pulseAudioStruct pulseAudio;
-	#endif
 } thePlay;
 
-long MelderAudio_getSamplesPlayed () {
+long MelderAudio_getSamplesPlayed (void) {
 	return thePlay. samplesPlayed;
 }
 
-bool MelderAudio_stopWasExplicit () {
+bool MelderAudio_stopWasExplicit (void) {
 	return thePlay. explicitStop;
 }
 
@@ -242,10 +185,10 @@ bool MelderAudio_stopWasExplicit () {
  * 3. After asynchronous play, by the workProc.
  * 4. After interruption of asynchronicity 3 by MelderAudio_stopPlaying ().
  */
-static bool flush () {
+static bool flush (void) {
 	struct MelderPlay *me = & thePlay;
 	if (my usePortAudio) {
-		if (my stream) {
+		if (my stream != NULL) {
 			#ifdef linux
 
 				Pa_Sleep (200);   // this reduces the chance of seeing the Alsa/PulseAudio deadlock:
@@ -336,32 +279,11 @@ static bool flush () {
 				*/
 			#endif
 			Pa_CloseStream (my stream);
-			my stream = nullptr;
-		}
-	#ifdef HAVE_PULSEAUDIO
-	} else if (my usePulseAudio) {
-		if (my pulseAudio.mainloop) {
-			pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-			if (my pulseAudio.stream) {
-				pa_operation *operation = pa_stream_flush (my pulseAudio.stream, stream_drain_complete_cb, me);
-				// wait because of a threaded_mainloop
-				if (operation) {
-					while (MelderAudio_isPlaying) {
-						pa_threaded_mainloop_wait (my pulseAudio.mainloop);
-						trace (U"wait");
-					}
-					pa_operation_unref (operation);
-				}
-			}
-			MelderAudio_isPlaying = false;
-			pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-			pulseAudio_cleanup ();
+			my stream = NULL;
 		}
-	#endif
 	} else {
 	#if defined (macintosh)
 	#elif defined (linux)
-		
 		/*
 		 * As on Sun.
 		 */
@@ -387,7 +309,7 @@ static bool flush () {
 	}
 	if (my fakeMono) {
 		NUMvector_free ((short *) my buffer, 0);
-		my buffer = nullptr;
+		my buffer = NULL;
 	}
 	MelderAudio_isPlaying = false;
 	if (my samplesPlayed >= my numberOfSamples)
@@ -410,17 +332,13 @@ bool MelderAudio_stopPlaying (bool explicitStop) {
 	//Melder_casual (U"stop playing!");
 	struct MelderPlay *me = & thePlay;
 	my explicitStop = explicitStop;
-	trace (U"playing = ", MelderAudio_isPlaying);
 	if (! MelderAudio_isPlaying || my asynchronicity < kMelder_asynchronicityLevel_ASYNCHRONOUS) return false;
 	#if cocoa
 		CFRunLoopRemoveTimer (CFRunLoopGetCurrent (), thePlay. cocoaTimer, kCFRunLoopCommonModes);
 	#elif motif
 		XtRemoveWorkProc (thePlay. workProcId_motif);
 	#elif gtk
-		if (thePlay.workProcId_gtk && ! my usePulseAudio) {
-			g_source_remove (thePlay.workProcId_gtk);
-		}
-		thePlay.workProcId_gtk = 0;
+		g_source_remove (thePlay. workProcId_gtk);
 	#endif
 	(void) flush ();
 	return true;
@@ -478,27 +396,6 @@ static bool workProc (void *closure) {
 			}
 			Pa_Sleep (10);
 		#endif
-	#ifdef HAVE_PULSEAUDIO
-	} else if (my usePulseAudio) {
-		if (my pulseAudio.mainloop) {
-			pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-			long samplesPlayed = 0;
-			pa_usec_t diff_usec = 0;
-			if (my pulseAudio.startTime.tv_usec != 0) {
-				diff_usec = pa_timeval_age (& my pulseAudio.startTime);
-				double timeElapsed = diff_usec / 1000000.0;
-				samplesPlayed = timeElapsed * my sampleRate;
-			}
-			pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-			trace (U"diff = ", diff_usec, U", samples played = ", samplesPlayed);
-			if (my callback && ! my callback (my closure, samplesPlayed)) {
-				my volatile_interrupted = 1;
-				return flush ();
-			} else if (my samplesLeft == 0 || samplesPlayed > my numberOfSamples) {
-				return flush ();
-			}
-		}
-	#endif
 	} else {
 	#if defined (macintosh)
 	#elif defined (linux)
@@ -590,7 +487,7 @@ static int thePaStreamCallback (const void *input, void *output,
 		long dsamples = my samplesLeft > (long) frameCount ? (long) frameCount : my samplesLeft;
 		if (Melder_debug == 20) Melder_casual (U"play ", dsamples, U" ", Pa_GetStreamCpuLoad (my stream));
 		memset (output, '\0', 2 * frameCount * my numberOfChannels);
-		Melder_assert (my buffer);
+		Melder_assert (my buffer != NULL);
 		memcpy (output, (char *) & my buffer [my samplesSent * my numberOfChannels], 2 * dsamples * my numberOfChannels);
 		my samplesLeft -= dsamples;
 		my samplesSent += dsamples;
@@ -604,416 +501,6 @@ static int thePaStreamCallback (const void *input, void *output,
 	return paContinue;
 }
 
-#ifdef HAVE_PULSEAUDIO
-void pulseAudio_initialize () {
-	struct MelderPlay *me = & thePlay;
-	if (! my pulseAudio.pulseAudioInitialized) {
-		my pulseAudio.mainloop = pa_threaded_mainloop_new ();
-		if (! my pulseAudio.mainloop) {
-			MelderAudio_isPlaying = false;
-			Melder_throw (U"No connection to pulse audio server.");
-		}
-		pa_threaded_mainloop_start (my pulseAudio.mainloop);
-		pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-		my pulseAudio.mainloop_api = pa_threaded_mainloop_get_api (my pulseAudio.mainloop);
-		my pulseAudio.context = pa_context_new (my pulseAudio.mainloop_api, "praat");
-		pa_context_set_state_callback (my pulseAudio.context, context_state_cb, me);
-		pa_context_connect (my pulseAudio.context, nullptr, PA_CONTEXT_NOFLAGS, nullptr);
-		trace (U"threading");
-		my pulseAudio.pulseAudioInitialized = true;
-		pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-	}
-}
-
-void pulseAudio_cleanup () {
-	struct MelderPlay *me = & thePlay;
-
-	pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-	trace (U"mainloop to be freed, occupation was ", my pulseAudio.occupation);
-
-	if (my pulseAudio.context) {
-		trace (U"still context");
-		pa_context_unref (my pulseAudio.context);
-		my pulseAudio.context = nullptr;
-	}
-	if (my pulseAudio.timer_event) {
-		my pulseAudio.mainloop_api -> time_free (my pulseAudio.timer_event);
-		my pulseAudio.timer_event = nullptr;
-	}
-	pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-	pa_threaded_mainloop_free (my pulseAudio.mainloop); // automatically frees the mainloop_api too!
-	my pulseAudio.mainloop = nullptr;
-	my pulseAudio.mainloop_api = nullptr;
-	my pulseAudio.r_usec = 0;
-	MelderAudio_isPlaying = false;
-	my pulseAudio.occupation = 0;
-	my pulseAudio.startTime = {0, 0};
-	my pulseAudio.pulseAudioInitialized = false;
-}
-
-void pulseAudio_server_info_cb (pa_context *context, const pa_server_info *info, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-	if (! info) {
-		return;
-	}
-	const pa_sample_spec *sp = & (info -> sample_spec);
-	long numberOfChannels = sp -> channels;
-	Melder_assert (context == my pulseAudio.context);
-	MelderInfo_open ();
-	MelderInfo_writeLine (U"PulseAudio Server characteristics:");
-	MelderInfo_writeLine (U"User name: ", Melder_peek8to32 (info -> user_name));
-	MelderInfo_writeLine (U"Host name: ", Melder_peek8to32 (info -> host_name));
-	MelderInfo_writeLine (U"Server version: ", Melder_peek8to32 (info -> server_version));
-	MelderInfo_writeLine (U"Server name: ", Melder_peek8to32 (info -> server_name));
-	MelderInfo_writeLine (U"Sample specification: ");
-		MelderInfo_writeLine (U"\tNumber of channels: ", numberOfChannels);
-		MelderInfo_writeLine (U"\tSampling frequency: ", sp->rate);
-		const char *sample_format_string = pa_sample_format_to_string (sp -> format);
-		MelderInfo_writeLine (U"\tSample format: ", Melder_peek8to32 (sample_format_string));
-	MelderInfo_writeLine (U"Default sink name: ", Melder_peek8to32 (info -> default_sink_name));
-	MelderInfo_writeLine (U"Default source name: ", Melder_peek8to32 (info -> default_source_name));
-	const pa_channel_map *cm = &(info -> channel_map);
-	MelderInfo_writeLine (U"Channel specification: ");
-	for (long channel = 1; channel <= cm -> channels; channel++) {
-		const char *channel_text = pa_channel_position_to_pretty_string (cm -> map[channel - 1]); // 0-..
-		MelderInfo_writeLine (U"\t Channel ", channel, U": ", Melder_peek8to32 (channel_text));
-	}
-	MelderInfo_close ();
-	trace (U"before signal");
-	my pulseAudio.occupation |= PA_GETTINGINFO_DONE;
-	 // We are done, signal it to pulseAudio_serverReport
-	pa_threaded_mainloop_signal (my pulseAudio.mainloop, 0);
-}
-
-void pulseAudio_serverReport () {
-	// TODO: initiaize context
-	struct MelderPlay *me = & thePlay;
-	if (my pulseAudio.mainloop) {
-		pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-		my pulseAudio.occupation |= PA_GETTINGINFO;
-		if (my pulseAudio.context) {
-			pa_operation *operation = pa_context_get_server_info (my pulseAudio.context, pulseAudio_server_info_cb, me);
-			trace (U"operation started");
-			if (! operation) {
-				Melder_throw (U"pulseAudioServer report: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-			}
-			while ((my pulseAudio.occupation & PA_GETTINGINFO_DONE) != PA_GETTINGINFO_DONE) {
-				pa_threaded_mainloop_wait (my pulseAudio.mainloop);
-			}
-			// Now it is save to unref because the server info operation has completed
-			pa_operation_unref (operation);
-			my pulseAudio.occupation ^= ~PA_GETTINGINFO_DONE;
-		}
-		my pulseAudio.occupation ^= ~PA_GETTINGINFO;
-		pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-	} else {
-		my pulseAudio.occupation |= PA_GETTINGINFO;
-		pulseAudio_initialize ();
-		/*
-		 * First acquire a lock because the operation to get server info (in context_state_cb) may not have started yet.
-		 * We therefore use our own signaling and wait until information has been acquired.
-		 */
-		pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-
-		while ((my pulseAudio.occupation & PA_GETTINGINFO_DONE) != PA_GETTINGINFO_DONE) {
-			pa_threaded_mainloop_wait (my pulseAudio.mainloop);
-		}
-		// Now we know that the operation to get server info has succeeded!
-		pa_operation_unref (my pulseAudio.operation_info);
-		my pulseAudio.operation_info = nullptr;
-		my pulseAudio.occupation ^= ~PA_GETTINGINFO;
-		my pulseAudio.occupation ^= ~PA_GETTINGINFO_DONE;
-		pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-		if (! MelderAudio_isPlaying) {
-			my pulseAudio.occupation = 0;
-			trace (U"before cleanup");
-			pulseAudio_cleanup ();
-		}
-	}
-}
-
-void context_drain_complete_cb (pa_context *context, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-	Melder_assert (context == my pulseAudio.context);
-	if (context) {
-		trace (U"context exists");
-		pa_context_disconnect (my pulseAudio.context);
-		pa_context_unref (my pulseAudio.context);
-		my pulseAudio.context = nullptr;
-	}
-	trace (U"after context test");
-	pulseAudio_cleanup ();
-}
-
-void stream_drain_complete_cb (pa_stream *stream, int success, void *userdata) {
-	(void) stream;
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-	// Melder_assert (stream == my pulseAudio.stream); // not always true
-
-	trace (U"succes = ", success);
-	if (stream == my pulseAudio.stream) {
-		trace (U"stream exists");
-		pa_stream_disconnect (my pulseAudio.stream);
-		pa_stream_unref (my pulseAudio.stream);
-		my pulseAudio.stream = nullptr;
-		my pulseAudio.occupation ^= ~PA_WRITING;
-		my pulseAudio.occupation |= PA_WRITING_DONE;
-		MelderAudio_isPlaying = false;
-		if (my pulseAudio.timer_event) {
-			my pulseAudio.mainloop_api -> time_free (my pulseAudio.timer_event);
-			my pulseAudio.timer_event = nullptr;
-		}
-		pa_threaded_mainloop_signal (my pulseAudio.mainloop, 0);
-	} else {
-		trace (U"??");
-	}
-}
-
-static void free_cb(void * /* p */) { // to prevent copying of data
-}
-
-// asynchronous version
-void stream_write_cb2 (pa_stream *stream, size_t length, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-	if (stream == my pulseAudio.stream) {
-		//length = my pulseAudio.latency; // overrule length given by server
-		long writeSize_samples = length / (2 * my numberOfChannels);
-		my samplesLeft = my numberOfSamples - my samplesSent;
-		trace (U"length = ", length, U" left = ", my samplesLeft);
-		MelderAudio_isPlaying = true;
-		if (my samplesLeft == my numberOfSamples) {
-			pa_gettimeofday (& my pulseAudio.startTime);
-		}
-		if (my samplesLeft > 0) {
-			if (my volatile_interrupted) {
-				my samplesPlayed = my numberOfSamples;
-				my samplesLeft = 0;
-				flush ();
-			} else {
-				writeSize_samples = my samplesLeft < writeSize_samples ? my samplesLeft : writeSize_samples;
-				if (pa_stream_write (stream, my buffer + my samplesSent * my numberOfChannels, 2 * writeSize_samples * my numberOfChannels, free_cb, 0, PA_SEEK_RELATIVE) < 0) {
-					 Melder_throw (U"pa_stream_write() failed: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-				}
-				long samplesSent = writeSize_samples;
-				my samplesSent += samplesSent;
-				my samplesPlayed = my samplesSent; // not true: use timer info
-				trace (U"written ", samplesSent, U" (samples), total ", my samplesSent);
-				if (my samplesSent == my numberOfSamples) {
-					// my samplesLeft = 0; not here because still playing
-					trace (U"nothing left 1");
-					//pa_stream_set_write_callback(my pulseAudio.stream, nullptr, nullptr);
-					my pulseAudio.operation_drain = pa_stream_drain (my pulseAudio.stream, stream_drain_complete_cb, me);
-					if (! my pulseAudio.operation_drain) {
-						pa_stream_disconnect (my pulseAudio.stream);
-						pa_stream_unref (my pulseAudio.stream);
-						my pulseAudio.stream = nullptr;
-						trace (U"stream exists");
-						my pulseAudio.occupation ^= ~PA_WRITING;
-						my pulseAudio.occupation |= PA_WRITING_DONE;
-						pa_threaded_mainloop_signal (my pulseAudio.mainloop, 0);
-						if (my pulseAudio.timer_event) {
-							my pulseAudio.mainloop_api -> time_free (my pulseAudio.timer_event);
-							my pulseAudio.timer_event = nullptr;
-						}
-					}
-				}
-			}
-		} else {
-			trace (U"nothing left");
-		}
-	} else {
-		trace (U"stream?");
-	}
-}
-
-void stream_write_cb (pa_stream *stream, size_t length, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-	if (stream == my pulseAudio.stream) {
-		my samplesLeft = my numberOfSamples - my samplesSent;
-		trace (U"length = ", length, U", left = ", my samplesLeft);
-		if (my samplesLeft > 0) {
-			if (my samplesLeft == my numberOfSamples) {
-				pa_gettimeofday (& my pulseAudio.startTime);
-			}
-			if (my volatile_interrupted) {
-				my samplesPlayed = my numberOfSamples;
-				my samplesLeft = 0;
-				flush ();
-			} else {
-				int16_t *pa_buffer; // an internal pa buffer to minimize the number of memory transfers between client and server
-				size_t nbytes_left = my samplesLeft * my numberOfChannels * 2; // how many bytes do we still need to write ?
-				size_t nbytes = nbytes_left;
-				// returns the address of an internal buffer and the number of bytes that can maximally be written to it.
-				if (pa_stream_begin_write (stream, (void **) & pa_buffer, & nbytes) < 0) {
-					trace (U"error: no memory");
-					Melder_throw (U"Pulseaudio has no internal memory left.");
-				}
-				trace (U"buffer size = ", nbytes);
-				// do we need the full buffer space ?
-				nbytes = nbytes <= nbytes_left ? nbytes : nbytes_left;
-				memcpy (pa_buffer, (void *)(my buffer + my samplesSent * my numberOfChannels), nbytes);
-				//memset (pa_buffer, 0, nbytes);
-				
-				if (pa_stream_write (stream, pa_buffer, nbytes, nullptr, 0, PA_SEEK_RELATIVE) < 0) {
-					 Melder_throw (U"pa_stream_write() failed: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-				}
-				Melder_assert (nbytes % (my numberOfChannels * 2) == 0);
-				long samplesSent = nbytes / (my numberOfChannels * 2);
-				my samplesSent += samplesSent;
-				my samplesPlayed = my samplesSent; // not true: use timer info
-				trace (U"written ", samplesSent, U" (samples), total ", my samplesSent, U", address = ", (long) pa_buffer);
-				if (my samplesSent == my numberOfSamples) {
-					// my samplesLeft = 0; not here because still playing
-					trace (U"nothing left 1");
-					pa_stream_set_write_callback (my pulseAudio.stream, nullptr, nullptr);
-					my pulseAudio.operation_drain = pa_stream_drain (my pulseAudio.stream, stream_drain_complete_cb, me);
-					if (! my pulseAudio.operation_drain) {
-						pa_stream_disconnect (my pulseAudio.stream);
-						pa_stream_unref (my pulseAudio.stream);
-						my pulseAudio.stream = nullptr;
-						trace (U"stream exists");
-						my pulseAudio.occupation ^= ~PA_WRITING;
-						my pulseAudio.occupation |= PA_WRITING_DONE;
-						pa_threaded_mainloop_signal (my pulseAudio.mainloop, 0);
-						if (my pulseAudio.timer_event) {
-							my pulseAudio.mainloop_api -> time_free (my pulseAudio.timer_event);
-							my pulseAudio.timer_event = nullptr;
-						}
-					}
-				}
-			}
-		} else {
-			trace (U"nothing left");
-		}
-	} else {
-		trace (U"stream?");
-	}
-}
-
-void stream_state_cb (pa_stream *stream, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-
-	if (stream == my pulseAudio.stream) {
-		switch (pa_stream_get_state (stream)) {
-			case PA_STREAM_UNCONNECTED:
-				trace (U"PA_STREAM_UNCONNECTED");
-				break;
-			case PA_STREAM_CREATING:
-				trace (U"PA_STREAM_CREATING");
-				break;
-			case PA_STREAM_TERMINATED:
-				trace (U"PA_STREAM_TERMINATED");
-				break;
-			case PA_STREAM_READY: {
-				const pa_buffer_attr* buffer_attr = pa_stream_get_buffer_attr (my pulseAudio.stream);
-				trace (U"PA_STREAM_READY : tlength = ", buffer_attr -> tlength, U", prebuf = ", buffer_attr -> prebuf, U", maxlength = ", buffer_attr -> maxlength);
-				break;
-			}
-			default:
-				trace (U"default");
-				break;
-			case PA_STREAM_FAILED:
-				trace (U"PA_STREAM_FAILED");
-				break;
-		}
-	}
-}
-
-static void stream_underflow_callback (pa_stream *s, void *userdata) {
-	(void) s;
-	(void) userdata;
-	trace (U"yes");
-}
-
-static void stream_overflow_callback(pa_stream *s, void *userdata) {
-	(void) s;
-	(void) userdata;
-	trace (U"yes");
-}
-
-void context_state_cb (pa_context *context, void *userdata) {
-	struct MelderPlay *me = (struct MelderPlay *) userdata;
-
-	pa_context_state context_state = pa_context_get_state (context);
-	switch (context_state) {
-		case PA_CONTEXT_UNCONNECTED:
-			trace (U"PA_CONTEXT_UNCONNECTED");
-			break;
-		case PA_CONTEXT_CONNECTING:
-			trace (U"PA_CONTEXT_CONNECTING");
-			break;
-		case PA_CONTEXT_AUTHORIZING:
-			trace (U"PA_CONTEXT_AUTHORIZING");
-			break;
-		case PA_CONTEXT_SETTING_NAME:
-			trace (U"PA_CONTEXT_SETTING_NAME");
-			break;
-		case PA_CONTEXT_FAILED:
-			trace (U"PA_CONTEXT_FAILED");
-			break;
-		case PA_CONTEXT_TERMINATED:
-			trace (U"PA_CONTEXT_TERMINATED");
-			break;
-		case PA_CONTEXT_READY: {
-			trace (U"PA_CONTEXT_READY");
-			if ((my pulseAudio.occupation & PA_GETTINGINFO) == PA_GETTINGINFO) {
-				my pulseAudio.operation_info = pa_context_get_server_info (my pulseAudio.context, pulseAudio_server_info_cb, me);
-				trace (U"operation started");
-				if (! my pulseAudio.operation_info) {
-					Melder_throw (U"pulseAudioServer report: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-				}
-			} else if ((my pulseAudio.occupation & PA_WRITING) == PA_WRITING) {
-				#if __BYTE_ORDER == __BIG_ENDIAN
-					my pulseAudio.sample_spec.format = PA_SAMPLE_S16BE;
-				#else
-					my pulseAudio.sample_spec.format = PA_SAMPLE_S16LE;
-				#endif
-				my samplesPlayed = my samplesSent = 0;
-				my pulseAudio.sample_spec.rate = my sampleRate;
-				my pulseAudio.sample_spec.channels = my numberOfChannels;
-				my pulseAudio.stream = pa_stream_new (my pulseAudio.context, "Praat", &(my pulseAudio.sample_spec), nullptr);
-				if (! my pulseAudio.stream) {
-					Melder_throw (U"Cannot connect to sound server: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-				}
-
-				//my pulseAudio.stream_flags = PA_STREAM_NOFLAGS;
-				my pulseAudio.stream_flags = (pa_stream_flags_t) (PA_STREAM_ADJUST_LATENCY | PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE);
-				my pulseAudio.latency = pa_usec_to_bytes (1000 * my pulseAudio.latency_msec, &(my pulseAudio.sample_spec));
-				
-				my pulseAudio.buffer_attr.maxlength = (uint32_t) -1;
-				my pulseAudio.buffer_attr.prebuf = (uint32_t) -1;
-				my pulseAudio.buffer_attr.minreq = (uint32_t) -1;
-				my pulseAudio.buffer_attr.prebuf = (uint32_t) -1;
-				my pulseAudio.buffer_attr.tlength = my pulseAudio.latency;
-				my pulseAudio.buffer_attr.fragsize = (uint32_t) -1;
-
-				pa_stream_set_state_callback (my pulseAudio.stream, stream_state_cb, me);
-				pa_stream_set_write_callback (my pulseAudio.stream, stream_write_cb, me);
-			    pa_stream_set_underflow_callback (my pulseAudio.stream, stream_underflow_callback, me);
-			    pa_stream_set_overflow_callback (my pulseAudio.stream, stream_overflow_callback, me);
-				
-				// BUG in pa 5.9  & 6.0: the server doesn't honour our wish for a reasonable tlength. Instead it uses some
-				//   ridiculously low value for tlength that will constantly give underflows.
-				//   audio playback was completely shit if in the stream_write_cb we used pa_stream_write instead of
-				// first pa_stream_begin_write followed by pa_stream_write.
-				//
-				my pulseAudio.stream_flags = PA_STREAM_NOFLAGS;
-				if (pa_stream_connect_playback (my pulseAudio.stream, nullptr, &(my pulseAudio.buffer_attr), my pulseAudio.stream_flags, nullptr, nullptr) < 0) {
-					Melder_throw (U"pa_stream_connect_playback() failed: ", Melder_peek8to32 (pa_strerror (pa_context_errno (my pulseAudio.context))));
-				}
-				trace (U"tlength = ", my pulseAudio.buffer_attr.tlength, U", channels = ", my numberOfChannels);
-			} else if ((my pulseAudio.occupation & PA_RECORDING) == PA_RECORDING) {
-				
-			}
-			break;
-		}
-		default:
-			trace (U"default");
-			break;
-	}
-}
-#endif
-
 void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples, int numberOfChannels,
 	bool (*playCallback) (void *playClosure, long numberOfSamplesPlayed), void *playClosure)
 {
@@ -1022,11 +509,6 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 		bool wasPlaying = MelderAudio_isPlaying;
 	#endif
 	if (MelderAudio_isPlaying) MelderAudio_stopPlaying (MelderAudio_IMPLICIT);   // otherwise, keep "explicitStop" tag
-	#ifdef HAVE_PULSEAUDIO
-		if (my usePulseAudio && my pulseAudio.mainloop) {
-			pulseAudio_cleanup ();
-		}
-	#endif
 	my buffer = buffer;
 	my sampleRate = sampleRate;
 	my numberOfSamples = numberOfSamples;
@@ -1040,16 +522,7 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 	if (my asynchronicity > preferences. maximumAsynchronicity)
 		my asynchronicity = preferences. maximumAsynchronicity;
 	trace (U"asynchronicity ", my asynchronicity);
-	my usePortAudio =
-		#if defined (_WIN32)
-			preferences. outputSoundSystem == kMelder_outputSoundSystem_MME_VIA_PORTAUDIO;
-		#elif defined (macintosh)
-			preferences. outputSoundSystem == kMelder_outputSoundSystem_COREAUDIO_VIA_PORTAUDIO;
-		#else
-			preferences. outputSoundSystem == kMelder_outputSoundSystem_ALSA_VIA_PORTAUDIO;
-		#endif
-	my usePulseAudio = ! my usePortAudio;
-
+	my usePortAudio = preferences. outputUsesPortAudio;
 	my explicitStop = MelderAudio_IMPLICIT;
 	my fakeMono = false;
 	my volatile_interrupted = 0;
@@ -1103,9 +576,9 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 		}
 		outputParameters. channelCount = my numberOfChannels;
 		outputParameters. sampleFormat = paInt16;
-		if (deviceInfo) outputParameters. suggestedLatency = deviceInfo -> defaultLowOutputLatency;
-		outputParameters. hostApiSpecificStreamInfo = nullptr;
-		err = Pa_OpenStream (& my stream, nullptr, & outputParameters, my sampleRate, paFramesPerBufferUnspecified,
+		if (deviceInfo != NULL) outputParameters. suggestedLatency = deviceInfo -> defaultLowOutputLatency;
+		outputParameters. hostApiSpecificStreamInfo = NULL;
+		err = Pa_OpenStream (& my stream, NULL, & outputParameters, my sampleRate, paFramesPerBufferUnspecified,
 			paDitherOff, thePaStreamCallback, me);
 		if (err) Melder_throw (U"PortAudio cannot open sound output: ", Melder_peek8to32 (Pa_GetErrorText (err)), U".");
 		theStartingTime = Melder_clock ();
@@ -1188,50 +661,19 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 			#endif
 		} else /* my asynchronicity == kMelder_asynchronicityLevel_ASYNCHRONOUS */ {
 			#if cocoa
-				CFRunLoopTimerContext context = { 0, nullptr, nullptr, nullptr, nullptr };
-				my cocoaTimer = CFRunLoopTimerCreate (nullptr, CFAbsoluteTimeGetCurrent () + 0.02,
+				CFRunLoopTimerContext context = { 0, NULL, NULL, NULL, NULL };
+				my cocoaTimer = CFRunLoopTimerCreate (NULL, CFAbsoluteTimeGetCurrent () + 0.02,
 					0.02, 0, 0, workProc_cocoa, & context);
 				CFRunLoopAddTimer (CFRunLoopGetCurrent (), my cocoaTimer, kCFRunLoopCommonModes);
 			#elif motif
-				my workProcId_motif = GuiAddWorkProc (workProc_motif, nullptr);
+				my workProcId_motif = GuiAddWorkProc (workProc_motif, NULL);
 			#elif gtk
-				trace (U"g_idle_add");
-				my workProcId_gtk = g_idle_add (workProc_gtk, nullptr);
+				my workProcId_gtk = g_idle_add (workProc_gtk, NULL);
 			#endif
 			return;
 		}
 		flush ();
 		return;
-	#ifdef HAVE_PULSEAUDIO
-	} if (my usePulseAudio) {
-		my pulseAudio.occupation |= PA_WRITING;
-		pulseAudio_initialize ();
-		if (my asynchronicity < kMelder_asynchronicityLevel_ASYNCHRONOUS) {
-			pa_threaded_mainloop_lock (my pulseAudio.mainloop);
-			trace (U"occupation ", my pulseAudio.occupation);
-			while ((my pulseAudio.occupation & PA_WRITING_DONE) != PA_WRITING_DONE) {
-				trace (U"waiting");
-				pa_threaded_mainloop_wait (my pulseAudio.mainloop);
-			}
-			// Now we know that the stream drain operation has succeeded !
-			if (my pulseAudio.operation_drain) {
-				pa_operation_unref (my pulseAudio.operation_drain);
-			}
-			my pulseAudio.operation_drain = nullptr;
-			my pulseAudio.occupation ^= ~PA_WRITING_DONE;
-
-			pa_threaded_mainloop_unlock (my pulseAudio.mainloop);
-			//pa_threaded_mainloop_accept (my pulseAudio.mainloop);
-			trace (U"before cleanup");
-			pulseAudio_cleanup ();
-		} else {
-			// my workProcId_gtk = g_timeout_add (ms, workProc_gtk, nullptr);
-			// without a timer, on my computer the workproc would be called almost once in every sampling period.
-			// Such frequent updates are not necessary, some 50 updates a second is fast enough for displayong a runnning cursor
-			// the timeout will be automatically stopped if workProc_gtk returns false.
-			my workProcId_gtk = g_timeout_add (20, workProc_gtk, nullptr);
-		}
-	#endif
 	} else {
 		#if defined (macintosh)
 		#elif defined (linux)
@@ -1307,14 +749,14 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 					}
 				} else /* my asynchronicity == kMelder_asynchronicityLevel_ASYNCHRONOUS */ {
 					#ifndef NO_GRAPHICS
-						my workProcId_gtk = g_idle_add (workProc_gtk, nullptr);
+						my workProcId_gtk = g_idle_add (workProc_gtk, NULL);
 					#endif
 					return;
 				}
 				flush ();
 				return;
 			} catch (MelderError) {
-			//struct MelderPlay *me = & thePlay;
+				struct MelderPlay *me = & thePlay;
 				if (my audio_fd) close (my audio_fd), my audio_fd = 0;
 				MelderAudio_isPlaying = false;
 				Melder_throw (U"16-bit audio not played.");
@@ -1394,7 +836,7 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 				my waveHeader. lpData = (char *) my buffer;
 				my waveHeader. dwBufferLength = my numberOfSamples * 2 * my numberOfChannels;
 				my waveHeader. dwLoops = 1;
-				my waveHeader. lpNext = nullptr;
+				my waveHeader. lpNext = NULL;
 				my waveHeader. reserved = 0;
 				err = waveOutPrepareHeader (my hWaveOut, & my waveHeader, sizeof (WAVEHDR));
 			//waveOutReset (my hWaveOut);
@@ -1443,7 +885,7 @@ void MelderAudio_play16 (int16_t *buffer, long sampleRate, long numberOfSamples,
 						}
 					}
 				} else {
-					my workProcId_motif = GuiAddWorkProc (workProc_motif, nullptr);
+					my workProcId_motif = GuiAddWorkProc (workProc_motif, NULL);
 					return;
 				}
 				flush ();
diff --git a/sys/melder_audiofiles.cpp b/sys/melder_audiofiles.cpp
index ea01601..786e2fd 100644
--- a/sys/melder_audiofiles.cpp
+++ b/sys/melder_audiofiles.cpp
@@ -66,7 +66,7 @@
 void MelderFile_writeAudioFileHeader (MelderFile file, int audioFileType, long sampleRate, long numberOfSamples, int numberOfChannels, int numberOfBitsPerSamplePoint) {
 	try {
 		FILE *f = file -> filePointer;
-		if (! f) return;
+		if (f == NULL) return;
 		const int numberOfBytesPerSamplePoint = (numberOfBitsPerSamplePoint + 7) / 8;
 		switch (audioFileType) {
 			case Melder_AIFF: {
@@ -143,11 +143,11 @@ void MelderFile_writeAudioFileHeader (MelderFile file, int audioFileType, long s
 					double dataSize_f = (double) numberOfSamples * (double) numberOfBytesPerSamplePoint * (double) numberOfChannels;
 					if (dataSize_f > INT54_MAX)
 						Melder_throw (U"Cannot save data over the 9-petabyte limit.");
-					int64 dataSize = (int64) dataSize_f;
+					int64_t dataSize = (int64_t) dataSize_f;
 
 					/* RIFF Chunk: contains all other chunks. */
 					if (fwrite ("RIFF", 1, 4, f) != 4) Melder_throw (U"Error in file while trying to write the RIFF statement.");
-					int64 sizeOfRiffChunk_i64 = 4 + (12 + formatSize) + (4 + dataSize);
+					int64_t sizeOfRiffChunk_i64 = 4 + (12 + formatSize) + (4 + dataSize);
 					if (sizeOfRiffChunk_i64 > UINT32_MAX)
 						Melder_throw (U"Cannot save a WAV file with more than ", UINT32_MAX, U" bytes.");
 					uint32_t sizeOfRiffChunk_u32 = (uint32_t) sizeOfRiffChunk_i64;
@@ -214,16 +214,16 @@ void MelderFile_writeAudioFileHeader (MelderFile file, int audioFileType, long s
 			} break;
 			case Melder_FLAC: {
 				try {
-					FLAC__StreamEncoder *encoder = nullptr;
+					FLAC__StreamEncoder *encoder = NULL;
 					if (numberOfChannels > (int) FLAC__MAX_CHANNELS)
 						Melder_throw (U"FLAC files cannot have more than 8 channels.");
-					if ((encoder = FLAC__stream_encoder_new ()) == nullptr)
+					if ((encoder = FLAC__stream_encoder_new ()) == NULL)
 						Melder_throw (U"Error creating FLAC stream encoder.");
 					FLAC__stream_encoder_set_bits_per_sample (encoder, numberOfBitsPerSamplePoint);
 					FLAC__stream_encoder_set_channels (encoder, numberOfChannels);
 					FLAC__stream_encoder_set_sample_rate (encoder, sampleRate);
 					FLAC__stream_encoder_set_total_samples_estimate (encoder, numberOfSamples);
-					if (FLAC__stream_encoder_init_FILE (encoder, file -> filePointer, nullptr, nullptr) != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
+					if (FLAC__stream_encoder_init_FILE (encoder, file -> filePointer, NULL, NULL) != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
 						FLAC__stream_encoder_delete (encoder);
 						Melder_throw (U"Error creating FLAC stream encoder");
 					}
@@ -724,7 +724,7 @@ int MelderFile_checkSoundFile (MelderFile file, int *numberOfChannels, int *enco
 {
 	char data [16];
 	FILE *f = file -> filePointer;
-	if (! f || fread (data, 1, 16, f) < 16) return 0;
+	if (f == NULL || fread (data, 1, 16, f) < 16) return 0;
 	rewind (f);
 	if (strnequ (data, "FORM", 4) && strnequ (data + 8, "AIFF", 4)) {
 		Melder_checkAiffFile (f, numberOfChannels, encoding, sampleRate, startOfData, numberOfSamples);
@@ -847,12 +847,12 @@ static void Melder_readFlacFile (FILE *f, int numberOfChannels, double **buffer,
 	}
 	c.numberOfSamples = numberOfSamples;
 
-	if ((decoder = FLAC__stream_decoder_new ()) == nullptr)
+	if ((decoder = FLAC__stream_decoder_new ()) == NULL)
 		goto end;
 	if (FLAC__stream_decoder_init_stream (decoder,
 				Melder_DecodeFlac_read,
-				nullptr, nullptr, nullptr, nullptr,
-				Melder_DecodeFlac_convert, nullptr,
+				NULL, NULL, NULL, NULL,
+				Melder_DecodeFlac_convert, NULL,
 				Melder_DecodeFlac_error, &c) != FLAC__STREAM_DECODER_INIT_STATUS_OK)
 		goto end;
 	result = FLAC__stream_decoder_process_until_end_of_stream (decoder);
@@ -1333,7 +1333,7 @@ void Melder_readAudioToShort (FILE *f, int numberOfChannels, int encoding, short
 void MelderFile_writeShortToAudio (MelderFile file, int numberOfChannels, int encoding, const short *buffer, long numberOfSamples) {
 	try {
 		FILE *f = file -> filePointer;
-		if (! f) Melder_throw (U"File not open.");
+		if (f == NULL) Melder_throw (U"File not open.");
 		long n = numberOfSamples * numberOfChannels, start = 0, step = 1, i;
 		if (numberOfChannels < 0) {
 			n = numberOfSamples * 2;   // stereo
@@ -1398,7 +1398,7 @@ void MelderFile_writeShortToAudio (MelderFile file, int numberOfChannels, int en
 void MelderFile_writeFloatToAudio (MelderFile file, int numberOfChannels, int encoding, double **buffer, long numberOfSamples, int warnIfClipped) {
 	try {
 		FILE *f = file -> filePointer;
-		if (! f) Melder_throw (U"File not open.");
+		if (f == NULL) Melder_throw (U"File not open.");
 		long nclipped = 0;
 		switch (encoding) {
 			case Melder_LINEAR_8_SIGNED:
diff --git a/sys/melder_console.cpp b/sys/melder_console.cpp
index 61814fa..d45c3bd 100644
--- a/sys/melder_console.cpp
+++ b/sys/melder_console.cpp
@@ -24,12 +24,43 @@
 
 #include "melder.h"
 #include "NUM.h"
+#ifdef _WIN32
+	#include <windows.h>
+#endif
+
+bool Melder_consoleIsAnsi = false;
+
+void Melder_writeToConsole (const char32 *message, bool useStderr) {
+	if (message == NULL) return;
+	#if defined (_WIN32)
+		(void) useStderr;
+		static HANDLE console = NULL;
+		if (console == NULL) {
+			console = CreateFileW (L"CONOUT$", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
+		}
+		if (Melder_consoleIsAnsi) {
+			size_t n = str32len (message);
+			for (long i = 0; i < n; i ++) {
+				unsigned int kar = (unsigned short) message [i];
+				fputc (kar, stdout);
+			}
+		//} else if (Melder_consoleIsUtf8) {
+			//char *messageA = Melder_peek32to8 (message);
+			//fprintf (stdout, "%s", messageA);
+		} else {
+			WCHAR *messageW = Melder_peek32toW (message);
+			WriteConsoleW (console, messageW, wcslen (messageW), NULL, NULL);
+		}
+	#else
+		Melder_fwrite32to8 (message, str32len (message), useStderr ? stderr : stdout);
+	#endif
+}
 
 #if defined (_WIN32) && defined (CONSOLE_APPLICATION)
 int main (int argc, char *argvA []);
 extern "C" int wmain (int argc, wchar_t *argvW []);
 extern "C" int wmain (int argc, wchar_t *argvW []) {
-	char **argvA = nullptr;
+	char **argvA = NULL;
 	if (argc > 0) {
 		argvA = NUMvector <char *> (0, argc - 1);
 		for (int iarg = 0; iarg < argc; iarg ++) {
diff --git a/sys/melder_debug.cpp b/sys/melder_debug.cpp
index c090ee8..f0377e1 100644
--- a/sys/melder_debug.cpp
+++ b/sys/melder_debug.cpp
@@ -26,7 +26,6 @@
 #include "praat_version.h"
 #ifdef _WIN32
 	#include "UnicodeData.h"
-	#include <windows.h>
 #endif
 
 int Melder_debug = 0;
@@ -98,20 +97,20 @@ the behaviour of that program changes in the following way:
  * also, we need no newline nativization, as Melder_32to8_inline() does.
  */
 static const char * peek32to8 (const char32 *string) {
-	if (! string) return "";
-	static char *buffer { nullptr };
+	if (string == NULL) return "";
+	static char *buffer { NULL };
 	static int64 bufferSize { 0 };
 	int64 n = str32len (string);
 	int64 sizeNeeded = n * 4 + 1;
 	if ((bufferSize - sizeNeeded) * (int64) sizeof (char) >= 10000) {
 		free (buffer);
-		buffer = nullptr;   // undangle
+		buffer = NULL;   // undangle
 		bufferSize = 0;
 	}
 	if (sizeNeeded > bufferSize) {
 		sizeNeeded = (int64) floor (sizeNeeded * 1.61803) + 100;
 		buffer = (char *) realloc (buffer, (size_t) sizeNeeded * sizeof (char));
-		if (buffer == nullptr) {
+		if (buffer == NULL) {
 			bufferSize = 0;
 			return "(out of memory during Melder_casual)";
 		}
@@ -141,8 +140,8 @@ static const char * peek32to8 (const char32 *string) {
 }
 #ifdef _WIN32
 static const char16 * peek32to16 (const char32 *string) {
-	if (! string) return u"";
-	static char16 *buffer { nullptr };
+	if (string == NULL) return u"";
+	static char16 *buffer { NULL };
 	static int64 bufferSize { 0 };
 	int64 n = str32len (string);
 	int64 sizeNeeded = n * 2 + 1;
@@ -153,7 +152,7 @@ static const char16 * peek32to16 (const char32 *string) {
 	if (sizeNeeded > bufferSize) {
 		sizeNeeded = (int64) floor (sizeNeeded * 1.61803) + 100;
 		buffer = (char16 *) realloc (buffer, (size_t) sizeNeeded * sizeof (char16));
-		if (! buffer) {
+		if (buffer == NULL) {
 			bufferSize = 0;
 			return u"(out of memory during trace)";
 		}
@@ -181,212 +180,162 @@ static const char16 * peek32to16 (const char32 *string) {
 }
 #endif
 
-bool Melder_consoleIsAnsi = false;
-
-//extern FILE *winstdout;
-void Melder_writeToConsole (const char32 *message, bool useStderr) {
-	if (! message) return;
-	#if defined (_WIN32)
-		(void) useStderr;
-		static HANDLE console = nullptr;
-		if (! console) {
-			console = CreateFileW (L"CONOUT$", GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, 0);
-			//freopen ("CONOUT$", "w", stdout);
-		}
-		if (Melder_consoleIsAnsi) {
-			size_t n = str32len (message);
-			for (long i = 0; i < n; i ++) {
-				unsigned int kar = (unsigned short) message [i];
-				fputc (kar, stdout);
-			}
-			//CHAR* messageA = (CHAR*) peek32to8 (message);
-			//WriteConsoleA (console, messageA, strlen (messageA), nullptr, nullptr);
-		//} else if (Melder_consoleIsUtf8) {
-			//char *messageA = Melder_peek32to8 (message);
-			//fprintf (stdout, "%s", messageA);
-		} else {
-			WCHAR* messageW = (WCHAR*) peek32to16 (message);
-			WriteConsoleW (console, messageW, wcslen (messageW), nullptr, nullptr);
-		}
-	#else
-		FILE *f = ( useStderr ? stderr : stdout );
-		for (const char32* p = message; *p != U'\0'; p ++) {
-			char32 kar = *p;
-			if (kar <= 0x00007F) {
-				fputc ((int) kar, f);   // because fputc wants an int instead of an uint8 (guarded conversion)
-			} else if (kar <= 0x0007FF) {
-				fputc (0xC0 | (kar >> 6), f);
-				fputc (0x80 | (kar & 0x00003F), f);
-			} else if (kar <= 0x00FFFF) {
-				fputc (0xE0 | (kar >> 12), f);
-				fputc (0x80 | ((kar >> 6) & 0x00003F), f);
-				fputc (0x80 | (kar & 0x00003F), f);
-			} else {
-				fputc (0xF0 | (kar >> 18), f);
-				fputc (0x80 | ((kar >> 12) & 0x00003F), f);
-				fputc (0x80 | ((kar >> 6) & 0x00003F), f);
-				fputc (0x80 | (kar & 0x00003F), f);
-			}
-		}
-	#endif
-}
-
 /********** CASUAL **********/
 
 void Melder_casual (Melder_1_ARG) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_2_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_3_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_4_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_5_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_6_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_7_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_8_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_9_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_10_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (arg10._arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg10._arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_11_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (arg10._arg, true);
-	Melder_writeToConsole (arg11._arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg10._arg));
+	fprintf (stderr, "%s", peek32to8 (arg11._arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_13_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (arg10._arg, true);
-	Melder_writeToConsole (arg11._arg, true);
-	Melder_writeToConsole (arg12._arg, true);
-	Melder_writeToConsole (arg13._arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg10._arg));
+	fprintf (stderr, "%s", peek32to8 (arg11._arg));
+	fprintf (stderr, "%s", peek32to8 (arg12._arg));
+	fprintf (stderr, "%s", peek32to8 (arg13._arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_15_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (arg10._arg, true);
-	Melder_writeToConsole (arg11._arg, true);
-	Melder_writeToConsole (arg12._arg, true);
-	Melder_writeToConsole (arg13._arg, true);
-	Melder_writeToConsole (arg14._arg, true);
-	Melder_writeToConsole (arg15._arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg10._arg));
+	fprintf (stderr, "%s", peek32to8 (arg11._arg));
+	fprintf (stderr, "%s", peek32to8 (arg12._arg));
+	fprintf (stderr, "%s", peek32to8 (arg13._arg));
+	fprintf (stderr, "%s", peek32to8 (arg14._arg));
+	fprintf (stderr, "%s", peek32to8 (arg15._arg));
+	fprintf (stderr, "\n");
 }
 void Melder_casual (Melder_19_ARGS) {
-	Melder_writeToConsole (arg1. _arg, true);
-	Melder_writeToConsole (arg2. _arg, true);
-	Melder_writeToConsole (arg3. _arg, true);
-	Melder_writeToConsole (arg4. _arg, true);
-	Melder_writeToConsole (arg5. _arg, true);
-	Melder_writeToConsole (arg6. _arg, true);
-	Melder_writeToConsole (arg7. _arg, true);
-	Melder_writeToConsole (arg8. _arg, true);
-	Melder_writeToConsole (arg9. _arg, true);
-	Melder_writeToConsole (arg10._arg, true);
-	Melder_writeToConsole (arg11._arg, true);
-	Melder_writeToConsole (arg12._arg, true);
-	Melder_writeToConsole (arg13._arg, true);
-	Melder_writeToConsole (arg14._arg, true);
-	Melder_writeToConsole (arg15._arg, true);
-	Melder_writeToConsole (arg16._arg, true);
-	Melder_writeToConsole (arg17._arg, true);
-	Melder_writeToConsole (arg18._arg, true);
-	Melder_writeToConsole (arg19._arg, true);
-	Melder_writeToConsole (U"\n", true);
+	fprintf (stderr, "%s", peek32to8 (arg1. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg2. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg3. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg4. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg5. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg6. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg7. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg8. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg9. _arg));
+	fprintf (stderr, "%s", peek32to8 (arg10._arg));
+	fprintf (stderr, "%s", peek32to8 (arg11._arg));
+	fprintf (stderr, "%s", peek32to8 (arg12._arg));
+	fprintf (stderr, "%s", peek32to8 (arg13._arg));
+	fprintf (stderr, "%s", peek32to8 (arg14._arg));
+	fprintf (stderr, "%s", peek32to8 (arg15._arg));
+	fprintf (stderr, "%s", peek32to8 (arg16._arg));
+	fprintf (stderr, "%s", peek32to8 (arg17._arg));
+	fprintf (stderr, "%s", peek32to8 (arg18._arg));
+	fprintf (stderr, "%s", peek32to8 (arg19._arg));
+	fprintf (stderr, "\n");
 }
 
 /********** TRACE **********/
@@ -401,7 +350,7 @@ void Melder_tracingToFile (MelderFile file) {
 
 static FILE * Melder_trace_open (const char *fileName, int lineNumber, const char *functionName) {
 	FILE *f;
-	#if defined (_WIN32) && ! defined (__CYGWIN__)
+	#ifdef _WIN32
 		f = _wfopen ((const wchar_t *) peek32to16 (theTracingFile. path), L"a");
 	#else
 		char utf8path [kMelder_MAXPATH+1];
@@ -609,24 +558,24 @@ void Melder_trace (const char *fileName, int lineNumber, const char *functionNam
 
 #ifdef linux
 static void theGtkLogHandler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) {
-	FILE *f = Melder_trace_open (nullptr, 0, "GTK");
+	FILE *f = Melder_trace_open (NULL, 0, "GTK");
 	fprintf (f, "%s", message);
 	Melder_trace_close (f);
 }
 static void theGlibLogHandler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) {
-	FILE *f = Melder_trace_open (nullptr, 0, "GLib");
+	FILE *f = Melder_trace_open (NULL, 0, "GLib");
 	fprintf (f, "%s", message);
 	Melder_trace_close (f);
 }
 static void theGlibGobjectLogHandler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) {
-	FILE *f = Melder_trace_open (nullptr, 0, "GLib-GObject");
+	FILE *f = Melder_trace_open (NULL, 0, "GLib-GObject");
 	fprintf (f, "%s", message);
 	Melder_trace_close (f);
 }
 #endif
 
 void Melder_setTracing (bool tracing) {
-	time_t today = time (nullptr);
+	time_t today = time (NULL);	
 	#define xstr(s) str(s)
 	#define str(s) #s
 	if (! tracing)
@@ -638,9 +587,9 @@ void Melder_setTracing (bool tracing) {
 	#ifdef linux
 		static guint handler_id1, handler_id2, handler_id3;
 		if (tracing) {
-			handler_id1 = g_log_set_handler ("Gtk",          (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGtkLogHandler,         nullptr);
-			handler_id2 = g_log_set_handler ("GLib",         (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGlibLogHandler,        nullptr);
-			handler_id3 = g_log_set_handler ("GLib-GObject", (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGlibGobjectLogHandler, nullptr);
+			handler_id1 = g_log_set_handler ("Gtk",          (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGtkLogHandler,         NULL);
+			handler_id2 = g_log_set_handler ("GLib",         (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGlibLogHandler,        NULL);
+			handler_id3 = g_log_set_handler ("GLib-GObject", (GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), theGlibGobjectLogHandler, NULL);
 		} else {
 			if (handler_id1) g_log_remove_handler ("Gtk",          handler_id1);
 			if (handler_id2) g_log_remove_handler ("GLib",         handler_id2);
diff --git a/sys/melder_enums.h b/sys/melder_enums.h
index 2ab1213..0671bf4 100644
--- a/sys/melder_enums.h
+++ b/sys/melder_enums.h
@@ -46,10 +46,10 @@ enums_begin (kMelder_textInputEncoding, 1)
 	enums_add (kMelder_textInputEncoding, 5, WINDOWS_LATIN1, U"Windows Latin-1")
 	enums_add (kMelder_textInputEncoding, 6, UTF8_THEN_MACROMAN, U"try UTF-8, then MacRoman")
 	enums_add (kMelder_textInputEncoding, 7, MACROMAN, U"MacRoman")
-#if defined (_WIN32)
-enums_end (kMelder_textInputEncoding, 7, UTF8_THEN_WINDOWS_LATIN1)
-#elif defined (macintosh)
+#if defined (macintosh)
 enums_end (kMelder_textInputEncoding, 7, UTF8_THEN_MACROMAN)
+#elif defined (_WIN32)
+enums_end (kMelder_textInputEncoding, 7, UTF8_THEN_WINDOWS_LATIN1)
 #else
 enums_end (kMelder_textInputEncoding, 7, UTF8_THEN_ISO_LATIN1)
 #endif
@@ -68,44 +68,4 @@ enums_begin (kMelder_asynchronicityLevel, 0)
 	enums_add (kMelder_asynchronicityLevel, 3, ASYNCHRONOUS, U"asynchronous (anything)")
 enums_end (kMelder_asynchronicityLevel, 3, ASYNCHRONOUS)
 
-#if defined (_WIN32)
-
-	enums_begin (kMelder_inputSoundSystem, 1)
-		enums_add (kMelder_inputSoundSystem, 1, MME_VIA_PORTAUDIO, U"MME via PortAudio")
-	enums_end (kMelder_inputSoundSystem, 1, MME_VIA_PORTAUDIO)
-			// in order to allow recording for over 64 megabytes (paMME)
-
-	enums_begin (kMelder_outputSoundSystem, 1)
-		enums_add (kMelder_outputSoundSystem, 1, MME, U"MME")
-		enums_add (kMelder_outputSoundSystem, 2, MME_VIA_PORTAUDIO, U"MME via PortAudio")
-	enums_end (kMelder_outputSoundSystem, 2, MME)
-			// in order to reduce the long latencies of paMME and to avoid the incomplete implementation of paDirectSound
-
-#elif defined (macintosh)
-
-	enums_begin (kMelder_inputSoundSystem, 1)
-		enums_add (kMelder_inputSoundSystem, 1, COREAUDIO_VIA_PORTAUDIO, U"CoreAudio via PortAudio")
-	enums_end (kMelder_inputSoundSystem, 1, COREAUDIO_VIA_PORTAUDIO)
-			// in order to have CoreAudio
-
-	enums_begin (kMelder_outputSoundSystem, 1)
-		enums_add (kMelder_outputSoundSystem, 1, COREAUDIO_VIA_PORTAUDIO, U"CoreAudio via PortAudio")
-	enums_end (kMelder_outputSoundSystem, 1, COREAUDIO_VIA_PORTAUDIO)
-			// in order to have CoreAudio
-
-#else
-
-	enums_begin (kMelder_inputSoundSystem, 1)
-		enums_add (kMelder_inputSoundSystem, 1, ALSA_VIA_PORTAUDIO, U"ALSA via PortAudio")
-	enums_end (kMelder_inputSoundSystem, 1, ALSA_VIA_PORTAUDIO)
-			// in order to use ALSA and therefore be compatible with Ubuntu 10.10 and later
-
-	enums_begin (kMelder_outputSoundSystem, 1)
-		enums_add (kMelder_outputSoundSystem, 1, PULSEAUDIO, U"PulseAudio")
-		enums_add (kMelder_outputSoundSystem, 2, ALSA_VIA_PORTAUDIO, U"ALSA via PortAudio")
-	enums_end (kMelder_outputSoundSystem, 2, PULSEAUDIO)
-			// because we prefer to try PulseAudio directly
-
-#endif
-
 /* End of file melder_enums.h */
diff --git a/sys/melder_error.cpp b/sys/melder_error.cpp
index febb043..77c1569 100644
--- a/sys/melder_error.cpp
+++ b/sys/melder_error.cpp
@@ -42,11 +42,11 @@ static void appendError (const char32 *message) {
 
 bool Melder_hasError () { return errors [0] != U'\0'; }
 
-bool Melder_hasError (const char32 *partialError) { return !! str32str (errors, partialError); }
+bool Melder_hasError (const char32 *partialError) { return str32str (errors, partialError) != NULL; }
 
-void Melder_clearError () { errors [0] = U'\0'; }
+void Melder_clearError (void) { errors [0] = U'\0'; }
 
-char32 * Melder_getError () { return & errors [0]; }
+char32 * Melder_getError (void) { return & errors [0]; }
 
 void Melder_appendError (Melder_1_ARG) {
 	appendError (arg1. _arg);
diff --git a/sys/melder_files.cpp b/sys/melder_files.cpp
index 42963f7..358ae87 100644
--- a/sys/melder_files.cpp
+++ b/sys/melder_files.cpp
@@ -81,17 +81,23 @@ extern "C" void FLAC__stream_encoder_delete (FLAC__StreamEncoder *);
 #endif
 
 static char32 theShellDirectory [kMelder_MAXPATH+1];
-void Melder_rememberShellDirectory () {
+void Melder_rememberShellDirectory (void) {
 	structMelderDir shellDir = { { 0 } };
 	Melder_getDefaultDir (& shellDir);
 	str32cpy (theShellDirectory, Melder_dirToPath (& shellDir));
 }
-char32 * Melder_getShellDirectory () {
+char32 * Melder_getShellDirectory (void) {
 	return & theShellDirectory [0];
 }
 
 void Melder_str32To8bitFileRepresentation_inline (const char32 *string, char *utf8) {
-	#if defined (macintosh)
+	#if defined (_WIN32)
+		int n = str32len (string), i, j;
+		for (i = 0, j = 0; i < n; i ++) {
+			utf8 [j ++] = string [i] <= 255 ? string [i] : '?';   // the usual replacement on Windows
+		}
+		utf8 [j] = '\0';
+	#elif defined (macintosh)
 		/*
 			On the Mac, the POSIX path name is stored in canonically decomposed UTF-8 encoding.
 			The path is probably in precomposed UTF-32.
@@ -112,31 +118,23 @@ void Melder_str32To8bitFileRepresentation_inline (const char32 *string, char *ut
 			}
 		}
 		unipath [n_utf16] = u'\0';
-		CFStringRef cfpath = CFStringCreateWithCharacters (nullptr, unipath, n_utf16);
-		CFMutableStringRef cfpath2 = CFStringCreateMutableCopy (nullptr, 0, cfpath);
+		CFStringRef cfpath = CFStringCreateWithCharacters (NULL, unipath, n_utf16);
+		CFMutableStringRef cfpath2 = CFStringCreateMutableCopy (NULL, 0, cfpath);
 		CFRelease (cfpath);
 		CFStringNormalize (cfpath2, kCFStringNormalizationFormD);   // Mac requires decomposed characters
 		CFStringGetCString (cfpath2, (char *) utf8, kMelder_MAXPATH+1, kCFStringEncodingUTF8);   // Mac POSIX requires UTF-8
 		CFRelease (cfpath2);
-	#elif defined (UNIX) || defined (__CYGWIN__)
-		Melder_32to8_inline (string, utf8);
-	#elif defined (_WIN32)
-		int n = str32len (string), i, j;
-		for (i = 0, j = 0; i < n; i ++) {
-			utf8 [j ++] = string [i] <= 255 ? string [i] : '?';   // the usual replacement on Windows
-		}
-		utf8 [j] = '\0';
 	#else
-		//#error Unsupported platform.
+		Melder_32to8_inline (string, utf8);
 	#endif
 }
 
-#if defined (UNIX)
+#if ! defined (_WIN32)
 void Melder_8bitFileRepresentationToStr32_inline (const char *path8, char32 *path32) {
 	#if defined (macintosh)
-		CFStringRef cfpath = CFStringCreateWithCString (nullptr, path8, kCFStringEncodingUTF8);
+		CFStringRef cfpath = CFStringCreateWithCString (NULL, path8, kCFStringEncodingUTF8);
 		Melder_assert (cfpath != 0);
-		CFMutableStringRef cfpath2 = CFStringCreateMutableCopy (nullptr, 0, cfpath);
+		CFMutableStringRef cfpath2 = CFStringCreateMutableCopy (NULL, 0, cfpath);
 		CFRelease (cfpath);
 		CFStringNormalize (cfpath2, kCFStringNormalizationFormC);   // Praat requires composed characters
 		long n_utf16 = CFStringGetLength (cfpath2);
@@ -177,8 +175,6 @@ const char32 * MelderFile_name (MelderFile file) {
 	#elif defined (_WIN32)
 		char32 *backslash = str32rchr (file -> path, U'\\');
 		return backslash ? backslash + 1 : file -> path;
-	#else
-		return nullptr;
 	#endif
 }
 
@@ -189,8 +185,6 @@ char32 * MelderDir_name (MelderDir dir) {
 	#elif defined (_WIN32)
 		char32 *backslash = str32rchr (dir -> path, U'\\');
 		return backslash ? backslash + 1 : dir -> path;
-	#else
-		return nullptr;
 	#endif
 }
 
@@ -247,7 +241,7 @@ void Melder_relativePathToFile (const char32 *path, MelderFile file) {
 			Melder_sprint (file -> path,kMelder_MAXPATH+1, dir. path, & path [1]);
 			for (;;) {
 				char32 *slash = str32chr (file -> path, U'/');
-				if (! slash) break;
+				if (slash == NULL) break;
 				*slash = U'\\';
 			}
 			return;
@@ -257,7 +251,7 @@ void Melder_relativePathToFile (const char32 *path, MelderFile file) {
 			Melder_sprint (winPath,kMelder_MAXPATH+1, path);
 			for (;;) {
 				char32 *slash = str32chr (winPath, U'/');
-				if (! slash) break;
+				if (slash == NULL) break;
 				*slash = U'\\';
 			}
 			Melder_relativePathToFile (winPath, file);
@@ -304,7 +298,7 @@ void MelderFile_setToNull (MelderFile file) {
 }
 
 bool MelderFile_isNull (MelderFile file) {
-	return ! file || file -> path [0] == U'\0';
+	return file == NULL || file -> path [0] == U'\0';
 }
 
 void MelderDir_setToNull (MelderDir dir) {
@@ -596,7 +590,7 @@ FILE * Melder_fopen (MelderFile file, const char *type) {
 		/* Handle errors. */
 		if (CURLreturn) {
 			Melder_appendError (Melder_peek8to32 (errorbuffer));
-			f = nullptr;
+			f = NULL;
 		};
 		/* Clean up session. */
 		curl_easy_cleanup (CURLhandle);
@@ -604,7 +598,7 @@ FILE * Melder_fopen (MelderFile file, const char *type) {
 		if (f) rewind (f);
 	#endif
 	} else {
-		#if defined (_WIN32) && ! defined (__CYGWIN__)
+		#ifdef _WIN32
 			f = _wfopen (Melder_peek32toW (file -> path), Melder_peek32toW (Melder_peek8to32 (type)));
 		#else
 			f = fopen ((char *) utf8path, type);
@@ -623,7 +617,7 @@ FILE * Melder_fopen (MelderFile file, const char *type) {
 		else if (str32chr (path, U'\n'))
 			Melder_appendError (U"Hint: file name contains a newline symbol.");
 		throw MelderError ();
-		return nullptr;
+		return NULL;
 	}
 	return f;
 }
@@ -672,7 +666,7 @@ void Melder_fclose (MelderFile file, FILE *f) {
 		/* Handle errors. */
 		if (CURLreturn) {
 			curl_easy_cleanup (CURLhandle);
-			f = nullptr;
+			f = NULL;
 			Melder_throw (Melder_peek8to32 (errorbuffer), U"\n");
 	    };
 		/* Clean up session */
@@ -683,7 +677,7 @@ void Melder_fclose (MelderFile file, FILE *f) {
 		Melder_throw (U"Error closing file ", file, U".");
 }
 
-void Melder_files_cleanUp () {
+void Melder_files_cleanUp (void) {
 	#if defined (CURLPRESENT)
 		if (curl_initialized) {
 			curl_global_cleanup ();
@@ -744,12 +738,12 @@ long MelderFile_length (MelderFile file) {
 
 void MelderFile_delete (MelderFile file) {
 	if (! file) return;
-	#if defined (UNIX)
+	#if defined (_WIN32)
+		DeleteFile (Melder_peek32toW (file -> path));
+	#else
 		char utf8path [kMelder_MAXPATH+1];
 		Melder_str32To8bitFileRepresentation_inline (file -> path, utf8path);
 		remove ((char *) utf8path);
-	#elif defined (_WIN32)
-		DeleteFile (Melder_peek32toW (file -> path));
 	#endif
 }
 
@@ -772,22 +766,22 @@ const char32 * MelderFile_messageName (MelderFile file) {
 }
 
 void Melder_getDefaultDir (MelderDir dir) {
-	#if defined (UNIX)
-		char path [kMelder_MAXPATH+1];
-		getcwd (path, kMelder_MAXPATH+1);
-		Melder_8bitFileRepresentationToStr32_inline (path, dir -> path);
-	#elif defined (_WIN32)
+	#if defined (_WIN32)
 		static WCHAR dirPathW [kMelder_MAXPATH+1];
 		GetCurrentDirectory (kMelder_MAXPATH+1, dirPathW);
 		Melder_sprint (dir -> path,kMelder_MAXPATH+1, Melder_peekWto32 (dirPathW));
+	#else
+		char path [kMelder_MAXPATH+1];
+		getcwd (path, kMelder_MAXPATH+1);
+		Melder_8bitFileRepresentationToStr32_inline (path, dir -> path);
 	#endif
 }
 
 void Melder_setDefaultDir (MelderDir dir) {
-	#if defined (UNIX)
-		chdir (Melder_peek32to8 (dir -> path));
-	#elif defined (_WIN32)
+	#if defined (_WIN32)
 		SetCurrentDirectory (Melder_peek32toW (dir -> path));
+	#else
+		chdir (Melder_peek32to8 (dir -> path));
 	#endif
 }
 
@@ -798,26 +792,13 @@ void MelderFile_setDefaultDir (MelderFile file) {
 }
 
 void Melder_createDirectory (MelderDir parent, const char32 *dirName, int mode) {
-#if defined (UNIX)
-	structMelderFile file = { 0 };
-	if (dirName [0] == U'/') {
-		Melder_sprint (file. path,kMelder_MAXPATH+1, dirName);   // absolute path
-	} else if (parent -> path [0] == U'/' && parent -> path [1] == U'\0') {
-		Melder_sprint (file. path,kMelder_MAXPATH+1, U"/", dirName);   // relative path in root directory
-	} else {
-		Melder_sprint (file. path,kMelder_MAXPATH+1, parent -> path, U"/", dirName);   // relative path
-	}
-	char utf8path [kMelder_MAXPATH+1];
-	Melder_str32To8bitFileRepresentation_inline (file. path, utf8path);
-	if (mkdir (utf8path, mode) == -1 && errno != EEXIST)   // ignore if directory already exists
-		Melder_throw (U"Cannot create directory ", & file, U".");
-#elif defined (_WIN32)
+#if defined (_WIN32)
 	structMelderFile file = { 0 };
 	SECURITY_ATTRIBUTES sa;
 	(void) mode;
 	sa. nLength = sizeof (SECURITY_ATTRIBUTES);
-	sa. lpSecurityDescriptor = nullptr;
-	sa. bInheritHandle = false;
+	sa. lpSecurityDescriptor = NULL;
+	sa. bInheritHandle = FALSE;
 	if (str32chr (dirName, U':') || dirName [0] == U'/' && dirName [1] == U'/') {
 		Melder_sprint (file. path,kMelder_MAXPATH+1, dirName);   // absolute path
 	} else {
@@ -826,7 +807,18 @@ void Melder_createDirectory (MelderDir parent, const char32 *dirName, int mode)
 	if (! CreateDirectoryW (Melder_peek32toW (file. path), & sa) && GetLastError () != ERROR_ALREADY_EXISTS)   // ignore if directory already exists
 		Melder_throw (U"Cannot create directory ", & file, U".");
 #else
-	//#error Unsupported operating system.
+	structMelderFile file = { 0 };
+	if (dirName [0] == U'/') {
+		Melder_sprint (file. path,kMelder_MAXPATH+1, dirName);   // absolute path
+	} else if (parent -> path [0] == U'/' && parent -> path [1] == U'\0') {
+		Melder_sprint (file. path,kMelder_MAXPATH+1, U"/", dirName);   // relative path in root directory
+	} else {
+		Melder_sprint (file. path,kMelder_MAXPATH+1, parent -> path, U"/", dirName);   // relative path
+	}
+	char utf8path [kMelder_MAXPATH+1];
+	Melder_str32To8bitFileRepresentation_inline (file. path, utf8path);
+	if (mkdir (utf8path, mode) == -1 && errno != EEXIST)   // ignore if directory already exists
+		Melder_throw (U"Cannot create directory ", & file, U".");
 #endif
 }
 
@@ -846,8 +838,8 @@ char * MelderFile_readLine (MelderFile me) {
 	long i;
 	static char *buffer;
 	static long capacity;
-	if (! my filePointer) return nullptr;
-	if (feof (my filePointer)) return nullptr;
+	if (! my filePointer) return NULL;
+	if (feof (my filePointer)) return NULL;
 	if (! buffer) {
 		buffer = Melder_malloc (char, capacity = 100);
 	}
@@ -892,7 +884,7 @@ void MelderFile_seek (MelderFile me, long position, int direction) {
 	if (! my filePointer) return;
 	if (fseek (my filePointer, position, direction)) {
 		fclose (my filePointer);
-		my filePointer = nullptr;
+		my filePointer = NULL;
 		Melder_throw (U"Cannot seek in file ", me, U".");
 	}
 }
@@ -902,7 +894,7 @@ long MelderFile_tell (MelderFile me) {
 	if (! my filePointer) return 0;
 	if ((result = ftell (my filePointer)) == -1) {
 		fclose (my filePointer);
-		my filePointer = nullptr;
+		my filePointer = NULL;
 		Melder_throw (U"Cannot tell in file ", me, U".");
 	}
 	return result;
@@ -919,7 +911,7 @@ static void _MelderFile_close (MelderFile me, bool mayThrow) {
 			FLAC__stream_encoder_finish (my flacEncoder);   // This already calls fclose! BUG: we cannot get any error messages out.
 			FLAC__stream_encoder_delete (my flacEncoder);
 		}
-	} else if (my filePointer) {
+	} else if (my filePointer != NULL) {
 		if (mayThrow) {
 			Melder_fclose (me, my filePointer);
 		} else {
@@ -927,10 +919,10 @@ static void _MelderFile_close (MelderFile me, bool mayThrow) {
 		}
 	}
 	/* Set everything to zero, except paths (they stay around for error messages and the like). */
-	my filePointer = nullptr;
+	my filePointer = NULL;
 	my openForWriting = my openForReading = false;
 	my indent = 0;
-	my flacEncoder = nullptr;
+	my flacEncoder = NULL;
 }
 void MelderFile_close (MelderFile me) {
 	_MelderFile_close (me, true);
diff --git a/sys/melder_ftoa.cpp b/sys/melder_ftoa.cpp
index 71980dc..e49a0fd 100644
--- a/sys/melder_ftoa.cpp
+++ b/sys/melder_ftoa.cpp
@@ -68,7 +68,7 @@ const char * Melder8_integer (int64 value) {
 		 * There are also buggy platforms (namely 32-bit gcc on Linux) that support long long and %I64d but that convert
 		 * the argument to a 32-bit long.
 		 */
-		static const char *formatString = nullptr;
+		static const char *formatString = NULL;
 		if (! formatString) {
 			char tryBuffer [MAXIMUM_NUMERIC_STRING_LENGTH + 1];
 			formatString = "%lld";
@@ -118,27 +118,27 @@ const char * Melder8_bigInteger (int64 value) {
 	bool firstDigitPrinted = false;
 	if (quintillions) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", quintillions);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	if (quadrillions || firstDigitPrinted) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", quadrillions);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	if (trillions || firstDigitPrinted) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", trillions);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	if (billions || firstDigitPrinted) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", billions);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	if (millions || firstDigitPrinted) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", millions);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	if (thousands || firstDigitPrinted) {
 		sprintf (text + strlen (text), firstDigitPrinted ? "%03d," : "%d,", thousands);
-		firstDigitPrinted = true;
+		firstDigitPrinted = TRUE;
 	}
 	sprintf (text + strlen (text), firstDigitPrinted ? "%03d" : "%d", units);
 	return text;
@@ -159,9 +159,9 @@ const char * Melder8_double (double value) {
 	if (value == NUMundefined) return "--undefined--";
 	if (++ ibuffer == NUMBER_OF_BUFFERS) ibuffer = 0;
 	sprintf (buffers8 [ibuffer], "%.15g", value);
-	if (strtod (buffers8 [ibuffer], nullptr) != value) {
+	if (strtod (buffers8 [ibuffer], NULL) != value) {
 		sprintf (buffers8 [ibuffer], "%.16g", value);
-		if (strtod (buffers8 [ibuffer], nullptr) != value) {
+		if (strtod (buffers8 [ibuffer], NULL) != value) {
 			sprintf (buffers8 [ibuffer], "%.17g", value);
 		}
 	}
@@ -253,25 +253,24 @@ const char32 * Melder_percent (double value, int precision) {
 
 const char32 * Melder_float (const char32 *number) {
 	if (++ ibuffer == NUMBER_OF_BUFFERS) ibuffer = 0;
-	if (! str32chr (number, 'e')) {
+	if (str32chr (number, 'e') == NULL) {
 		str32cpy (buffers32 [ibuffer], number);
 	} else {
 		char32 *b = buffers32 [ibuffer];
 		const char32 *n = number;
-		while (*n != U'e') *(b++) = *(n++); *b = U'\0';
+		while (*n != 'e') *(b++) = *(n++); *b = '\0';
 		if (number [0] == '1' && number [1] == 'e') {
 			str32cpy (buffers32 [ibuffer], U"10^^"); b = buffers32 [ibuffer] + 4;
 		} else {
-			str32cpy (buffers32 [ibuffer] + str32len (buffers32 [ibuffer]), U"·10^^"); b += 5;
+			str32cpy (buffers32 [ibuffer] + str32len (buffers32 [ibuffer]), U"·10^^"); b += 7;
 		}
-		Melder_assert (*n == U'e');
-		if (*++n == U'+') n ++;   // ignore leading plus sign in exponent
-		if (*n == U'-') *(b++) = *(n++);   // copy sign of negative exponent
-		while (*n == U'0') n ++;   // ignore leading zeroes in exponent
-		while (*n >= U'0' && *n <= U'9') *(b++) = *(n++);
-		*(b++) = U'^';
-		while (*n != U'\0') *(b++) = *(n++);
-		*b = U'\0';
+		Melder_assert (*n == 'e');
+		if (*++n == '+') n ++;   // ignore leading plus sign in exponent
+		if (*n == '-') *(b++) = *(n++);   // copy sign of negative exponent
+		while (*n == '0') n ++;   // ignore leading zeroes in exponent
+		while (*n >= '0' && *n <= '9') *(b++) = *(n++);
+		*(b++) = '^';
+		while (*n != '\0') *(b++) = *(n++); *b = '\0';
 	}
 	return buffers32 [ibuffer];
 }
@@ -280,19 +279,19 @@ const char * Melder8_naturalLogarithm (double lnNumber) {
 	if (lnNumber == NUMundefined) return "--undefined--";
 	if (lnNumber == -INFINITY) return "0";
 	double log10Number = lnNumber * NUMlog10e;
-	if (log10Number < -41.0) {
+	if (log10Number < -41) {
 		if (++ ibuffer == NUMBER_OF_BUFFERS) ibuffer = 0;
 		long ceiling = (long) ceil (log10Number);
 		double remainder = log10Number - ceiling;
-		double remainder10 = pow (10.0, remainder);
+		double remainder10 = pow (10, remainder);
 		while (remainder10 < 1.0) {
-			remainder10 *= 10.0;
+			remainder10 *= 10;
 			ceiling --;
 		}
 		sprintf (buffers8 [ibuffer], "%.15g", remainder10);
-		if (strtod (buffers8 [ibuffer], nullptr) != remainder10) {
+		if (strtod (buffers8 [ibuffer], NULL) != remainder10) {
 			sprintf (buffers8 [ibuffer], "%.16g", remainder10);
-			if (strtod (buffers8 [ibuffer], nullptr) != remainder10) sprintf (buffers8 [ibuffer], "%.17g", remainder10);
+			if (strtod (buffers8 [ibuffer], NULL) != remainder10) sprintf (buffers8 [ibuffer], "%.17g", remainder10);
 		}
 		sprintf (buffers8 [ibuffer] + strlen (buffers8 [ibuffer]), "e-%ld", ceiling);
 	} else {
diff --git a/sys/melder_info.cpp b/sys/melder_info.cpp
index a4fa8ec..11daa23 100644
--- a/sys/melder_info.cpp
+++ b/sys/melder_info.cpp
@@ -32,7 +32,7 @@ void Melder_setInformationProc (void (*information) (const char32 *)) {
 
 static MelderString theForegroundBuffer = { 0 }, *theInfos = & theForegroundBuffer;
 
-void MelderInfo_open () {
+void MelderInfo_open (void) {
 	MelderString_empty (theInfos);
 }
 
@@ -432,7 +432,7 @@ void MelderInfo_writeLine (Melder_19_ARGS) {
 	}
 }
 
-void MelderInfo_close () {
+void MelderInfo_close (void) {
 	if (theInfos == & theForegroundBuffer) {
 		/*
 			When writing to the Info window or the console, we must add a newline symbol,
@@ -452,7 +452,7 @@ void MelderInfo_close () {
 	}
 }
 
-void MelderInfo_drain () {
+void MelderInfo_drain (void) {
 	if (theInfos == & theForegroundBuffer) {
 		if (theInformation != defaultInformation) {
 			theInformation (theInfos -> string ? theInfos -> string : U"");
@@ -464,7 +464,7 @@ void Melder_informationReal (double value, const char32 *units) {
 	MelderInfo_open ();
 	if (value == NUMundefined)
 		MelderInfo_write (U"--undefined--");
-	else if (! units)
+	else if (units == NULL)
 		MelderInfo_write (value);
 	else
 		MelderInfo_write (value, U" ", units);
@@ -472,10 +472,10 @@ void Melder_informationReal (double value, const char32 *units) {
 }
 
 void Melder_divertInfo (MelderString *buffer) {
-	theInfos = ( buffer ? buffer : & theForegroundBuffer );
+	theInfos = buffer == NULL ? & theForegroundBuffer : buffer;
 }
 
-void Melder_clearInfo () {
+void Melder_clearInfo (void) {
 	if (theInfos == & theForegroundBuffer) {
 		MelderString_empty (theInfos);
 		if (theInformation != defaultInformation) {
@@ -484,7 +484,7 @@ void Melder_clearInfo () {
 	}
 }
 
-const char32 * Melder_getInfo () {
+const char32 * Melder_getInfo (void) {
 	return theInfos -> string ? theInfos -> string : U"";
 }
 
diff --git a/sys/melder_readtext.cpp b/sys/melder_readtext.cpp
index 9311e88..21d3715 100644
--- a/sys/melder_readtext.cpp
+++ b/sys/melder_readtext.cpp
@@ -23,7 +23,7 @@
  * pb 2010/03/09 support Unicode values above 0xFFFF
  * pb 2011/04/05 C++
  * pb 2011/07/03 C++
- * pb 2014/12/17 int64
+ * pb 2014/12/17 int64_t
  * pb 2015/05/26 char32
  */
 
@@ -33,11 +33,11 @@
 #define my  me ->
 
 char32 MelderReadText_getChar (MelderReadText me) {
-	if (my string32) {
-		if (* my readPointer32 == U'\0') return U'\0';
+	if (my string32 != NULL) {
+		if (* my readPointer32 == '\0') return 0;
 		return * my readPointer32 ++;
 	} else {
-		if (* my readPointer8 == '\0') return U'\0';
+		if (* my readPointer8 == '\0') return 0;
 		if (my input8Encoding == kMelder_textInputEncoding_UTF8) {
 			char32 kar1 = (char32) (char8) * my readPointer8 ++;
 			if (kar1 <= 0x00007F) {
@@ -69,37 +69,37 @@ char32 MelderReadText_getChar (MelderReadText me) {
 }
 
 char32 * MelderReadText_readLine (MelderReadText me) {
-	if (my string32) {
-		Melder_assert (my readPointer32);
-		Melder_assert (! my readPointer8);
-		if (*my readPointer32 == U'\0') {   // tried to read past end of file
-			return nullptr;
+	if (my string32 != NULL) {
+		Melder_assert (my readPointer32 != NULL);
+		Melder_assert (my readPointer8 == NULL);
+		if (*my readPointer32 == '\0') {   // tried to read past end of file
+			return NULL;
 		}
 		char32 *result = my readPointer32;
 		char32 *newline = str32chr (result, U'\n');
-		if (newline) {
-			*newline = U'\0';
+		if (newline != NULL) {
+			*newline = '\0';
 			my readPointer32 = newline + 1;
 		} else {
 			my readPointer32 += str32len (result);
 		}
 		return result;
 	} else {
-		Melder_assert (my string8);
-		Melder_assert (! my readPointer32);
-		Melder_assert (my readPointer8);
+		Melder_assert (my string8 != NULL);
+		Melder_assert (my readPointer32 == NULL);
+		Melder_assert (my readPointer8 != NULL);
 		if (*my readPointer8 == '\0') {   // tried to read past end of file
-			return nullptr;
+			return NULL;
 		}
 		char *result8 = my readPointer8;
 		char *newline = strchr (result8, '\n');
-		if (newline) {
+		if (newline != NULL) {
 			*newline = '\0';
 			my readPointer8 = newline + 1;
 		} else {
 			my readPointer8 += strlen (result8);
 		}
-		static char32 *text32 = nullptr;
+		static char32 *text32 = NULL;
 		static int64 size = 0;
 		int64 sizeNeeded = (int64) strlen (result8) + 1;
 		if (sizeNeeded > size) {
@@ -112,9 +112,9 @@ char32 * MelderReadText_readLine (MelderReadText me) {
 	}
 }
 
-int64 MelderReadText_getNumberOfLines (MelderReadText me) {
-	int64 n = 0;
-	if (my string32) {
+int64_t MelderReadText_getNumberOfLines (MelderReadText me) {
+	int64_t n = 0;
+	if (my string32 != NULL) {
 		char32 *p = & my string32 [0];
 		for (; *p != U'\0'; p ++) if (*p == U'\n') n ++;
 		if (p - my string32 > 1 && p [-1] != U'\n') n ++;
@@ -127,8 +127,8 @@ int64 MelderReadText_getNumberOfLines (MelderReadText me) {
 }
 
 const char32 * MelderReadText_getLineNumber (MelderReadText me) {
-	int64 result = 1;
-	if (my string32) {
+	int64_t result = 1;
+	if (my string32 != NULL) {
 		char32 *p = my string32;
 		while (my readPointer32 - p > 0) {
 			if (*p == U'\0' || *p == U'\n') result ++;
@@ -172,7 +172,7 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 			Melder_throw (U"Cannot count the bytes in the file.");
 		}
 		Melder_assert (sizeof (off_t) >= 8);
-		int64 length = ftello (f);
+		int64_t length = ftello (f);
 		rewind (f);
 		if (length >= 2) {
 			int firstByte = fgetc (f), secondByte = fgetc (f);
@@ -185,9 +185,9 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 		if (type == 0) {
 			rewind (f);   // length and type already set correctly.
 			autostring8 text8bit = Melder_malloc (char, length + 1);
-			Melder_assert (text8bit.peek());
+			Melder_assert (text8bit.peek() != NULL);
 			size_t numberOfBytesRead = fread_multi (text8bit.peek(), (size_t) length, f);
-			if ((int64) numberOfBytesRead < length)
+			if ((int64_t) numberOfBytesRead < length)
 				Melder_throw (U"The file contains ", length, U" bytes, but we could read only ",
 					numberOfBytesRead, U" of them.");
 			text8bit [length] = '\0';
@@ -195,14 +195,14 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 			 * Count and repair null bytes.
 			 */
 			if (length > 0) {
-				int64 numberOfNullBytes = 0;
-				for (char *p = & text8bit [length - 1]; (int64) (p - text8bit.peek()) >= 0; p --) {
+				int64_t numberOfNullBytes = 0;
+				for (char *p = & text8bit [length - 1]; (int64_t) (p - text8bit.peek()) >= 0; p --) {
 					if (*p == '\0') {
 						numberOfNullBytes += 1;
 						/*
 						 * Shift.
 						 */
-						for (char *q = p; (int64) (q - text8bit.peek()) < length; q ++) {
+						for (char *q = p; (int64_t) (q - text8bit.peek()) < length; q ++) {
 							*q = q [1];
 						}
 					}
@@ -211,10 +211,10 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 					Melder_warning (U"Ignored ", numberOfNullBytes, U" null bytes in text file ", file, U".");
 				}
 			}
-			if (string8) {
+			if (string8 != NULL) {
 				*string8 = text8bit.transfer();
 				(void) Melder_killReturns_inline (*string8);
-				return nullptr;   // OK
+				return NULL;   // OK
 			} else {
 				text.reset (Melder_8to32 (text8bit.peek(), 0));
 			}
@@ -222,7 +222,7 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 			length = length / 2 - 1;   // Byte Order Mark subtracted. Length = number of UTF-16 codes
 			text.reset (Melder_malloc (char32, length + 1));
 			if (type == 1) {
-				for (int64 i = 0; i < length; i ++) {
+				for (int64_t i = 0; i < length; i ++) {
 					char16 kar1 = bingetu2 (f);
 					if (kar1 < 0xD800) {
 						text [i] = (char32) kar1;   // convert up without sign extension
@@ -243,7 +243,7 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 					}
 				}
 			} else {
-				for (int64 i = 0; i < length; i ++) {
+				for (int64_t i = 0; i < length; i ++) {
 					char16 kar1 = bingetu2LE (f);
 					if (kar1 < 0xD800) {
 						text [i] = (char32) kar1;   // convert up without sign extension
@@ -277,16 +277,16 @@ static char32 * _MelderFile_readText (MelderFile file, char **string8) {
 }
 
 char32 * MelderFile_readText (MelderFile file) {
-	return _MelderFile_readText (file, nullptr);
+	return _MelderFile_readText (file, NULL);
 }
 
 MelderReadText MelderReadText_createFromFile (MelderFile file) {
 	autoMelderReadText me = Melder_calloc (struct structMelderReadText, 1);
 	my string32 = _MelderFile_readText (file, & my string8);
-	if (my string32) {
+	if (my string32 != NULL) {
 		my readPointer32 = & my string32 [0];
 	} else {
-		Melder_assert (my string8);
+		Melder_assert (my string8 != NULL);
 		my readPointer8 = & my string8 [0];
 		my input8Encoding = Melder_getInputEncoding ();
 		if (my input8Encoding == kMelder_textInputEncoding_UTF8 ||
@@ -313,7 +313,7 @@ MelderReadText MelderReadText_createFromFile (MelderFile file) {
 MelderReadText MelderReadText_createFromString (const char32 *string);
 
 void MelderReadText_delete (MelderReadText me) {
-	if (! me) return;
+	if (me == NULL) return;
 	Melder_free (my string32);
 	Melder_free (my string8);
 	Melder_free (me);
diff --git a/sys/melder_strings.cpp b/sys/melder_strings.cpp
index 108af95..90ad983 100644
--- a/sys/melder_strings.cpp
+++ b/sys/melder_strings.cpp
@@ -25,21 +25,21 @@
 static int64 totalNumberOfAllocations = 0, totalNumberOfDeallocations = 0, totalAllocationSize = 0, totalDeallocationSize = 0;
 
 void MelderString16_free (MelderString16 *me) {
-	if (! my string) return;
+	if (my string == NULL) return;
 	Melder_free (my string);
 	if (Melder_debug == 34) fprintf (stderr, "from MelderString16_free\t%p\t%lld\t%d\n", my string, (long long) my bufferSize, 2);
 	totalNumberOfDeallocations += 1;
-	totalDeallocationSize += my bufferSize * (int64) sizeof (char16_t);
+	totalDeallocationSize += my bufferSize * (int64_t) sizeof (char16_t);
 	my bufferSize = 0;
 	my length = 0;
 }
 
 void MelderString_free (MelderString *me) {
-	if (! my string) return;
+	if (my string == NULL) return;
 	Melder_free (my string);
 	if (Melder_debug == 34) fprintf (stderr, "from MelderString32_free\t%p\t%lld\t%d\n", my string, (long long) my bufferSize, 2);
 	totalNumberOfDeallocations += 1;
-	totalDeallocationSize += my bufferSize * (int64) sizeof (char32);
+	totalDeallocationSize += my bufferSize * (int64_t) sizeof (char32);
 	my bufferSize = 0;
 	my length = 0;
 }
@@ -97,7 +97,7 @@ void MelderString16_empty (MelderString16 *me) {
 	if (my bufferSize * (int64) sizeof (char16) >= FREE_THRESHOLD_BYTES) {
 		MelderString16_free (me);
 	}
-	int64 sizeNeeded = 1;
+	int64_t sizeNeeded = 1;
 	expandIfNecessary (char16)
 	my string [0] = '\0';
 	my length = 0;
@@ -419,7 +419,7 @@ void MelderString_copy (MelderString *me, Melder_19_ARGS) {
 void MelderString_ncopy (MelderString *me, const char32 *source, int64 n) {
 	if (my bufferSize * (int64) sizeof (char32) >= FREE_THRESHOLD_BYTES)
 		MelderString_free (me);
-	if (! source) source = U"";
+	if (source == NULL) source = U"";
 	int64 length = str32len (source);
 	if (length > n) length = n;
 	int64 sizeNeeded = length + 1;
@@ -753,19 +753,19 @@ void MelderString_get (MelderString *me, char32 *destination) {
 	}
 }
 
-int64 MelderString_allocationCount () {
+int64 MelderString_allocationCount (void) {
 	return totalNumberOfAllocations;
 }
 
-int64 MelderString_deallocationCount () {
+int64 MelderString_deallocationCount (void) {
 	return totalNumberOfDeallocations;
 }
 
-int64 MelderString_allocationSize () {
+int64 MelderString_allocationSize (void) {
 	return totalAllocationSize;
 }
 
-int64 MelderString_deallocationSize () {
+int64 MelderString_deallocationSize (void) {
 	return totalDeallocationSize;
 }
 
diff --git a/sys/melder_sysenv.cpp b/sys/melder_sysenv.cpp
index 261863d..308479e 100644
--- a/sys/melder_sysenv.cpp
+++ b/sys/melder_sysenv.cpp
@@ -40,22 +40,20 @@
 #include "melder.h"
 
 char32 * Melder_getenv (const char32 *variableName) {
-	#if defined (macintosh) || defined (UNIX) || defined (__MINGW32__) || defined (__CYGWIN__)
+	#if defined (macintosh) || defined (UNIX) || defined (__MINGW32__)
 		return Melder_peek8to32 (getenv (Melder_peek32to8 (variableName)));
 	#elif defined (_WIN32)
 		static char32 buffer [11] [255];
 		static int ibuffer = 0;
 		if (++ ibuffer == 11) ibuffer = 0;
-		long n = GetEnvironmentVariableW (variableName, buffer [ibuffer], 255);   BUG
-		if (n == ERROR_ENVVAR_NOT_FOUND) return nullptr;
+		long n = GetEnvironmentVariableW (variableName, buffer [ibuffer], 255);
+		if (n == ERROR_ENVVAR_NOT_FOUND) return NULL;
 		return & buffer [ibuffer] [0];
-	#else
-		return nullptr;
 	#endif
 }
 
 void Melder_system (const char32 *command) {
-	if (! command) command = U"";
+	if (command == NULL) command = U"";
 	#if defined (macintosh) || defined (UNIX)
 		if (system (Melder_peek32to8 (command)) != 0)
 			Melder_throw (U"System command failed.");
@@ -63,11 +61,11 @@ void Melder_system (const char32 *command) {
 		STARTUPINFO siStartInfo;
 		PROCESS_INFORMATION piProcInfo;
 		char32 *comspec = Melder_getenv (U"COMSPEC");   // e.g. "C:\WINDOWS\COMMAND.COM" or "C:\WINNT\windows32\cmd.exe"
-		if (! comspec) {
+		if (comspec == NULL) {
 			comspec = Melder_getenv (U"ComSpec");
 		}
 		autoMelderString buffer;
-		if (comspec) {
+		if (comspec != NULL) {
 			MelderString_copy (& buffer, comspec);
 		} else {
 			OSVERSIONINFOEX osVersionInfo;
@@ -91,7 +89,7 @@ void Melder_system (const char32 *command) {
 		MelderString_append (& buffer, U" /c ", command);
         memset (& siStartInfo, 0, sizeof (siStartInfo));
         siStartInfo. cb = sizeof (siStartInfo);
-		if (! CreateProcess (nullptr, Melder_peek32toW (buffer.string), nullptr, nullptr, true, CREATE_NO_WINDOW, nullptr, nullptr, & siStartInfo, & piProcInfo))
+		if (! CreateProcess (NULL, Melder_peek32toW (buffer.string), NULL, NULL, TRUE, 0, NULL, NULL, & siStartInfo, & piProcInfo))
 			Melder_throw (U"Cannot create subprocess.");
 		WaitForSingleObject (piProcInfo. hProcess, -1);
 		CloseHandle (piProcInfo. hProcess);
diff --git a/sys/melder_textencoding.cpp b/sys/melder_textencoding.cpp
index 0e7c7d2..64411ab 100644
--- a/sys/melder_textencoding.cpp
+++ b/sys/melder_textencoding.cpp
@@ -53,12 +53,12 @@ static struct {
 } preferences;
 
 void Melder_setInputEncoding (enum kMelder_textInputEncoding encoding) { preferences. inputEncoding = encoding; }
-int Melder_getInputEncoding () { return preferences. inputEncoding; }
+int Melder_getInputEncoding (void) { return preferences. inputEncoding; }
 
 void Melder_setOutputEncoding (enum kMelder_textOutputEncoding encoding) { preferences. outputEncoding = encoding; }
-enum kMelder_textOutputEncoding Melder_getOutputEncoding () { return preferences. outputEncoding; }
+enum kMelder_textOutputEncoding Melder_getOutputEncoding (void) { return preferences. outputEncoding; }
 
-void Melder_textEncoding_prefs () {
+void Melder_textEncoding_prefs (void) {
 	Preferences_addEnum (U"TextEncoding.inputEncoding", & preferences. inputEncoding, kMelder_textInputEncoding, kMelder_textInputEncoding_DEFAULT);
 	Preferences_addEnum (U"TextEncoding.outputEncoding", & preferences. outputEncoding, kMelder_textOutputEncoding, kMelder_textOutputEncoding_DEFAULT);
 }
@@ -207,7 +207,7 @@ size_t str32len_utf16 (const char32 *string, bool nativizeNewlines) {
 }
 
 char32 * Melder_peek8to32 (const char *textA) {
-	if (! textA) return nullptr;
+	if (textA == NULL) return NULL;
 	static MelderString buffers [19] { { 0 } };
 	static int ibuffer = 0;
 	if (++ ibuffer == 11) ibuffer = 0;
@@ -420,21 +420,21 @@ void Melder_8to32_inline (const char *string8, char32 *string32, int inputEncodi
 }
 
 char32 * Melder_8to32 (const char *string, int inputEncoding) {
-	if (! string) return nullptr;
+	if (string == NULL) return NULL;
 	autostring32 result = Melder_malloc (char32, (int64) strlen (string) + 1);
 	Melder_8to32_inline (string, result.peek(), inputEncoding);
 	return result.transfer();
 }
 
 char32 * Melder_8to32 (const char *string) {
-	if (! string) return nullptr;
+	if (string == NULL) return NULL;
 	autostring32 result = Melder_malloc (char32, (int64) strlen (string) + 1);
 	Melder_8to32_inline (string, result.peek(), kMelder_textInputEncoding_UTF8);
 	return result.transfer();
 }
 
 char32 * Melder_peek16to32 (const char16 *text) {
-	if (! text) return nullptr;
+	if (text == NULL) return nullptr;
 	static MelderString buffers [19] { { 0 } };
 	static int ibuffer = 0;
 	if (++ ibuffer == 19) ibuffer = 0;
@@ -493,16 +493,16 @@ void Melder_32to8_inline (const char32 *string, char *utf8) {
 }
 
 char * Melder_32to8 (const char32 *string) {
-	if (! string) return nullptr;
-	autostring8 result = Melder_malloc (char, (int64) str32len_utf8 (string, true) + 1);
+	if (string == NULL) return NULL;
+	autostring8 result = Melder_malloc (char, (int64_t) str32len_utf8 (string, true) + 1);
 	Melder_32to8_inline (string, result.peek());
 	return result.transfer();
 }
 
 char * Melder_peek32to8 (const char32 *text) {
-	if (! text) return nullptr;
-	static char *buffer [19] { nullptr };
-	static int64 bufferSize [19] { 0 };
+	if (text == NULL) return NULL;
+	static char *buffer [19] = { NULL };
+	static int64 bufferSize [19] = { 0 };
 	static int ibuffer = 0;
 	if (++ ibuffer == 19) ibuffer = 0;
 	int64 sizeNeeded = str32len (text) * 4 + 1;
@@ -520,14 +520,14 @@ char * Melder_peek32to8 (const char32 *text) {
 }
 
 char16 * Melder_peek32to16 (const char32 *text, bool nativizeNewlines) {
-	if (! text) return nullptr;
-	static MelderString16 buffers [19] { { 0 } };
+	if (text == NULL) return NULL;
+	static MelderString16 buffers [19] = { { 0 } };
 	static int ibuffer = 0;
 	if (++ ibuffer == 19) ibuffer = 0;
 	MelderString16_empty (& buffers [ibuffer]);
-	int64 n = str32len (text);
+	int64_t n = str32len (text);
 	if (nativizeNewlines) {
-		for (int64 i = 0; i <= n; i ++) {
+		for (int64_t i = 0; i <= n; i ++) {
 			#ifdef _WIN32
 				if (text [i] == U'\n')
 					MelderString16_appendCharacter (& buffers [ibuffer], (char32) 13);
@@ -535,7 +535,7 @@ char16 * Melder_peek32to16 (const char32 *text, bool nativizeNewlines) {
 			MelderString16_appendCharacter (& buffers [ibuffer], text [i]);
 		}
 	} else {
-		for (int64 i = 0; i <= n; i ++) {
+		for (int64_t i = 0; i <= n; i ++) {
 			MelderString16_appendCharacter (& buffers [ibuffer], text [i]);
 		}
 	}
@@ -555,12 +555,12 @@ char16 * Melder_32to16 (const char32 *text) {
 
 #if defined (macintosh)
 const void * Melder_peek32toCfstring (const char32 *text) {
-	if (! text) return nullptr;
+	if (text == NULL) return NULL;
 	static CFStringRef cfString [11];
 	static int icfString = 0;
 	if (++ icfString == 11) icfString = 0;
-	if (cfString [icfString]) CFRelease (cfString [icfString]);
-	cfString [icfString] = CFStringCreateWithCString (nullptr, (const char *) Melder_peek32to8 (text), kCFStringEncodingUTF8);
+	if (cfString [icfString] != NULL) CFRelease (cfString [icfString]);
+	cfString [icfString] = CFStringCreateWithCString (NULL, (const char *) Melder_peek32to8 (text), kCFStringEncodingUTF8);
 	return cfString [icfString];
 }
 #endif
diff --git a/sys/melder_time.cpp b/sys/melder_time.cpp
index 312ec1b..c09b4bc 100644
--- a/sys/melder_time.cpp
+++ b/sys/melder_time.cpp
@@ -29,7 +29,6 @@
 #if defined (macintosh) || defined (UNIX)
 	#include <time.h>
 	#include <sys/time.h>
-	#include <unistd.h>
 #elif defined (_WIN32)
 	#include <windows.h>
 #endif
@@ -88,7 +87,7 @@ uint64_t GetPIDTimeInNanoseconds(void)
 }
 */
 
-double Melder_clock () {
+double Melder_clock (void) {
 	#if defined (macintosh) || defined (UNIX)
 		/*
 		 * The clock counts the number of seconds elapsed since 1969.
@@ -118,7 +117,7 @@ double Melder_clock () {
 	#endif
 }
 
-double Melder_stopwatch () {
+double Melder_stopwatch (void) {
 	static double lastTime;
 	double now = Melder_clock ();
 	double timeElapsed = lastTime == 0 ? -1.0 : now - lastTime;
@@ -127,13 +126,4 @@ double Melder_stopwatch () {
 	return timeElapsed;
 }
 
-void Melder_sleep (double duration) {
-	if (duration <= 0.0) return;   // already past end time
-	#if defined (_WIN32)
-		Sleep (duration * 1e3);
-	#else
-		usleep (duration * 1e6);
-	#endif
-}
-
 /* End of file melder_time.cpp */
diff --git a/sys/melder_token.cpp b/sys/melder_token.cpp
index c942309..6f8f774 100644
--- a/sys/melder_token.cpp
+++ b/sys/melder_token.cpp
@@ -50,17 +50,17 @@ char32 *Melder_firstToken (const char32 *string) {
 	return Melder_tok (theMelderToken, U" \t\n\r");
 }
 
-char32 *Melder_nextToken () {
-	return Melder_tok (nullptr, U" \t\n\r");
+char32 *Melder_nextToken (void) {
+	return Melder_tok (NULL, U" \t\n\r");
 }
 
 char32 ** Melder_getTokens (const char32 *string, long *n) {
 	char32 *token;
 	long itoken = 0;
 	*n = Melder_countTokens (string);
-	if (*n == 0) return nullptr;
+	if (*n == 0) return NULL;
 	autostring32vector result (1, *n);
-	for (token = Melder_firstToken (string); token != nullptr; token = Melder_nextToken ()) {
+	for (token = Melder_firstToken (string); token != NULL; token = Melder_nextToken ()) {
 		result [++ itoken] = Melder_dup (token);
 	}
 	return result.transfer();
@@ -68,7 +68,7 @@ char32 ** Melder_getTokens (const char32 *string, long *n) {
 
 void Melder_freeTokens (char32 ***tokens) {
 	NUMvector_free (*tokens, 1);
-	*tokens = nullptr;
+	*tokens = NULL;
 }
 
 long Melder_searchToken (const char32 *string, char32 **tokens, long n) {
diff --git a/sys/melder_writetext.cpp b/sys/melder_writetext.cpp
index 32e77a8..25f26c0 100644
--- a/sys/melder_writetext.cpp
+++ b/sys/melder_writetext.cpp
@@ -44,7 +44,28 @@
 	#include "macport_off.h"
 #endif
 
-void Melder_fwrite32to8 (const char32 *string, FILE *f) {
+static void Melder_fwriteUnicodeAsUtf8 (char32 unicode, FILE *f) {
+	if (unicode <= 0x0000007F) {
+		#ifdef _WIN32
+			if (unicode == '\n') fputc (13, f);
+		#endif
+		fputc ((int) unicode, f);   // because fputc wants an int instead of an uint8_t (guarded conversion)
+	} else if (unicode <= 0x000007FF) {
+		fputc (0xC0 | (unicode >> 6), f);
+		fputc (0x80 | (unicode & 0x0000003F), f);
+	} else if (unicode <= 0x0000FFFF) {
+		fputc (0xE0 | (unicode >> 12), f);
+		fputc (0x80 | ((unicode >> 6) & 0x0000003F), f);
+		fputc (0x80 | (unicode & 0x0000003F), f);
+	} else {
+		fputc (0xF0 | (unicode >> 18), f);
+		fputc (0x80 | ((unicode >> 12) & 0x0000003F), f);
+		fputc (0x80 | ((unicode >> 6) & 0x0000003F), f);
+		fputc (0x80 | (unicode & 0x0000003F), f);
+	}
+}
+
+void Melder_fwrite32to8 (const char32 *ptr, int64 n, FILE *f) {
 	/*
 	 * Precondition:
 	 *    the string's encoding is UTF-32.
@@ -52,34 +73,16 @@ void Melder_fwrite32to8 (const char32 *string, FILE *f) {
 	 *    if the precondition does not hold, we don't crash,
 	 *    but the characters that are written may be incorrect.
 	 */
-	for (const char32* p = string; *p != U'\0'; p ++) {
-		char32 kar = *p;
-		if (kar <= 0x00007F) {
-			#ifdef _WIN32
-				if (kar == U'\n') fputc (13, f);
-			#endif
-			fputc ((int) kar, f);   // because fputc wants an int instead of an uint8_t (guarded conversion)
-		} else if (kar <= 0x0007FF) {
-			fputc (0xC0 | (kar >> 6), f);
-			fputc (0x80 | (kar & 0x00003F), f);
-		} else if (kar <= 0x00FFFF) {
-			fputc (0xE0 | (kar >> 12), f);
-			fputc (0x80 | ((kar >> 6) & 0x00003F), f);
-			fputc (0x80 | (kar & 0x00003F), f);
-		} else {
-			fputc (0xF0 | (kar >> 18), f);
-			fputc (0x80 | ((kar >> 12) & 0x00003F), f);
-			fputc (0x80 | ((kar >> 6) & 0x00003F), f);
-			fputc (0x80 | (kar & 0x00003F), f);
-		}
+	for (int64 i = 0; i < n; i ++) {
+		Melder_fwriteUnicodeAsUtf8 (ptr [i], f);
 	}
 }
 
 void MelderFile_writeText (MelderFile file, const char32 *text, enum kMelder_textOutputEncoding outputEncoding) {
-	if (! text) text = U"";
+	if (text == NULL) text = U"";
 	autofile f = Melder_fopen (file, "wb");
 	if (outputEncoding == kMelder_textOutputEncoding_UTF8) {
-		Melder_fwrite32to8 (text, f);
+		Melder_fwrite32to8 (text, str32len (text), f);
 	} else if ((outputEncoding == kMelder_textOutputEncoding_ASCII_THEN_UTF16 && Melder_isValidAscii (text)) ||
 		(outputEncoding == kMelder_textOutputEncoding_ISO_LATIN1_THEN_UTF16 && Melder_isEncodable (text, kMelder_textOutputEncoding_ISO_LATIN1)))
 	{
@@ -93,7 +96,7 @@ void MelderFile_writeText (MelderFile file, const char32 *text, enum kMelder_tex
 		for (size_t i = 0; i < n; i ++) {
 			char32 kar = text [i];
 			#ifdef _WIN32
-				if (kar == U'\n') putc_unlocked (13, f);
+				if (kar == '\n') putc_unlocked (13, f);
 			#endif
 			putc_unlocked (kar, f);
 		}
@@ -104,14 +107,14 @@ void MelderFile_writeText (MelderFile file, const char32 *text, enum kMelder_tex
 		for (size_t i = 0; i < n; i ++) {
 			char32 kar = text [i];
 			#ifdef _WIN32
-				if (kar == U'\n') binputu2 (13, f);
+				if (kar == '\n') binputu2 (13, f);
 			#endif
 			if (kar <= 0x00FFFF) {
-				binputu2 ((char16) kar, f);   // guarded conversion down
+				binputu2 ((char16_t) kar, f);   // guarded conversion down
 			} else if (kar <= 0x10FFFF) {
 				kar -= 0x010000;
-				binputu2 (0xD800 | (uint16) (kar >> 10), f);
-				binputu2 (0xDC00 | (uint16) ((char16) kar & 0x3ff), f);
+				binputu2 (0xD800 | (uint16_t) (kar >> 10), f);
+				binputu2 (0xDC00 | (uint16_t) ((char16) kar & 0x3ff), f);
 			} else {
 				binputu2 (UNICODE_REPLACEMENT_CHARACTER, f);
 			}
@@ -121,7 +124,7 @@ void MelderFile_writeText (MelderFile file, const char32 *text, enum kMelder_tex
 }
 
 void MelderFile_appendText (MelderFile file, const char32 *text) {
-	if (! text) text = U"";
+	if (text == NULL) text = U"";
 	autofile f1;
 	try {
 		f1.reset (Melder_fopen (file, "rb"));
@@ -145,7 +148,7 @@ void MelderFile_appendText (MelderFile file, const char32 *text) {
 		int outputEncoding = Melder_getOutputEncoding ();
 		if (outputEncoding == kMelder_textOutputEncoding_UTF8) {   // TODO: read as file's encoding
 			autofile f2 = Melder_fopen (file, "ab");
-			Melder_fwrite32to8 (text, f2);
+			Melder_fwrite32to8 (text, str32len (text), f2);
 			f2.close (file);
 		} else if ((outputEncoding == kMelder_textOutputEncoding_ASCII_THEN_UTF16 && Melder_isEncodable (text, kMelder_textOutputEncoding_ASCII))
 		    || (outputEncoding == kMelder_textOutputEncoding_ISO_LATIN1_THEN_UTF16 && Melder_isEncodable (text, kMelder_textOutputEncoding_ISO_LATIN1)))
@@ -190,7 +193,7 @@ void MelderFile_appendText (MelderFile file, const char32 *text) {
 			for (int64 i = 0; i < n; i ++) {
 				char32 kar = text [i];
 				#ifdef _WIN32
-					if (kar == U'\n') binputu2 (13, f2);
+					if (kar == '\n') binputu2 (13, f2);
 				#endif
 				if (kar <= 0x00FFFF) {
 					binputu2 ((uint16) kar, f2);   // guarded conversion down
@@ -243,7 +246,7 @@ void MelderFile_appendText (MelderFile file, const char32 *text) {
 }
 
 static void _MelderFile_write (MelderFile file, const char32 *string) {
-	if (! string) return;
+	if (string == NULL) return;
 	int64 length = str32len (string);
 	FILE *f = file -> filePointer;
 	if (file -> outputEncoding == kMelder_textOutputEncoding_ASCII || file -> outputEncoding == kMelder_textOutputEncoding_ISO_LATIN1) {
@@ -277,11 +280,11 @@ static void _MelderFile_write (MelderFile file, const char32 *string) {
 			char32 kar = string [i];
 			if (kar == U'\n' && file -> requiresCRLF) binputu2 (13, f);
 			if (kar <= 0x00FFFF) {
-				binputu2 ((char16) kar, f);
+				binputu2 ((char16_t) kar, f);
 			} else if (kar <= 0x10FFFF) {
 				kar -= 0x010000;
-				binputu2 (0xD800 | (char16) (kar >> 10), f);
-				binputu2 (0xDC00 | (char16) ((char16) kar & 0x03ff), f);
+				binputu2 (0xD800 | (char16_t) (kar >> 10), f);
+				binputu2 (0xDC00 | (char16_t) ((char16_t) kar & 0x03ff), f);
 			} else {
 				binputu2 (UNICODE_REPLACEMENT_CHARACTER, f);
 			}
@@ -326,29 +329,29 @@ void MelderFile_writeCharacter (MelderFile file, char32 kar) {
 }
 
 void MelderFile_write (MelderFile file, Melder_1_ARG) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_2_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_3_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_4_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
 	_MelderFile_write (file, arg4. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_5_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -356,7 +359,7 @@ void MelderFile_write (MelderFile file, Melder_5_ARGS) {
 	_MelderFile_write (file, arg5. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_6_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -365,7 +368,7 @@ void MelderFile_write (MelderFile file, Melder_6_ARGS) {
 	_MelderFile_write (file, arg6. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_7_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -375,7 +378,7 @@ void MelderFile_write (MelderFile file, Melder_7_ARGS) {
 	_MelderFile_write (file, arg7. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_8_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -386,7 +389,7 @@ void MelderFile_write (MelderFile file, Melder_8_ARGS) {
 	_MelderFile_write (file, arg8. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_9_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -398,7 +401,7 @@ void MelderFile_write (MelderFile file, Melder_9_ARGS) {
 	_MelderFile_write (file, arg9. _arg);
 }
 void MelderFile_write (MelderFile file, Melder_10_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -411,7 +414,7 @@ void MelderFile_write (MelderFile file, Melder_10_ARGS) {
 	_MelderFile_write (file, arg10._arg);
 }
 void MelderFile_write (MelderFile file, Melder_11_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -425,7 +428,7 @@ void MelderFile_write (MelderFile file, Melder_11_ARGS) {
 	_MelderFile_write (file, arg11._arg);
 }
 void MelderFile_write (MelderFile file, Melder_13_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -441,7 +444,7 @@ void MelderFile_write (MelderFile file, Melder_13_ARGS) {
 	_MelderFile_write (file, arg13._arg);
 }
 void MelderFile_write (MelderFile file, Melder_15_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
@@ -459,7 +462,7 @@ void MelderFile_write (MelderFile file, Melder_15_ARGS) {
 	_MelderFile_write (file, arg15._arg);
 }
 void MelderFile_write (MelderFile file, Melder_19_ARGS) {
-	if (! file -> filePointer) return;
+	if (file -> filePointer == NULL) return;
 	_MelderFile_write (file, arg1. _arg);
 	_MelderFile_write (file, arg2. _arg);
 	_MelderFile_write (file, arg3. _arg);
diff --git a/sys/motifEmulator.cpp b/sys/motifEmulator.cpp
index cdbcbd3..0e62c4c 100644
--- a/sys/motifEmulator.cpp
+++ b/sys/motifEmulator.cpp
@@ -59,7 +59,7 @@
 #include "machine.h"
 
 static void (*theOpenDocumentCallback) (MelderFile file);
-static int (*theQuitApplicationCallback) ();
+static int (*theQuitApplicationCallback) (void);
 
 #if defined (macintosh) && useCarbon || defined (_WIN32)
 
@@ -91,7 +91,7 @@ static int (*theQuitApplicationCallback) ();
 #define _motif_OPTION_MASK  4
 
 #if mac
-	void motif_mac_defaultFont () {
+	void motif_mac_defaultFont (void) {
 		TextFont (systemFont);
 		TextSize (13);
 		TextFace (0);
@@ -143,7 +143,7 @@ static const char *motif_resourceNames [] = {
 
 /* Modes. */
 
-struct Gui theGui;   // global variable
+struct Gui theGui;   /* Global variable. */
 
 /********** XWindows routines. **********/
 
@@ -211,9 +211,10 @@ void _Gui_callCallbacks (GuiObject w, XtCallbackList *callbacks, XtPointer call)
 #endif
 static GuiObject theMenus [1+MAXIMUM_NUMBER_OF_MENUS];   // we can freely use and reuse these menu ids
 #if win
+	static int theCommandShow = False;   // last argument of WinMain
 	static char32 theApplicationName [100], theWindowClassName [100], theDrawingAreaClassName [100], theApplicationClassName [100];
-	char32 * _GuiWin_getDrawingAreaClassName () { return theDrawingAreaClassName; }
-	static int (*theUserMessageCallback) ();
+	char32 * _GuiWin_getDrawingAreaClassName (void) { return theDrawingAreaClassName; }
+	static int (*theUserMessageCallback) (void);
 	#define MINIMUM_MENU_ITEM_ID  (MAXIMUM_NUMBER_OF_MENUS + 1)
 	#define MAXIMUM_MENU_ITEM_ID  32767
 	static short theMenuItems [1+MAXIMUM_MENU_ITEM_ID];   // we can freely use and reuse the item ids 4001..32767
@@ -229,15 +230,17 @@ static GuiObject theShells [MAXIMUM_NUMBER_OF_SHELLS];   // for XmUpdateDisplay
 static int theBackground = False;   // set by suspend and resume events; used by Motif-style activation methods
 static int theDialogHint = False;   // should the shell that is currently being created, have dialog or document looks?
 long numberOfWidgets = 0;
-long Gui_getNumberOfMotifWidgets () { return numberOfWidgets; }
+long Gui_getNumberOfMotifWidgets (void) { return numberOfWidgets; }
 
 static void _motif_addShell (GuiObject me) {
-	for (int i = 0; i < MAXIMUM_NUMBER_OF_SHELLS; i ++)
-		if (! theShells [i]) { theShells [i] = me; break; }
+	int i;
+	for (i = 0; i < MAXIMUM_NUMBER_OF_SHELLS; i ++)
+		if (theShells [i] == NULL) { theShells [i] = me; break; }
 }
 static void _motif_removeShell (GuiObject me) {
-	for (int i = 0; i < MAXIMUM_NUMBER_OF_SHELLS; i ++)
-		if (theShells [i] == me) { theShells [i] = nullptr; break; }
+	int i;
+	for (i = 0; i < MAXIMUM_NUMBER_OF_SHELLS; i ++)
+		if (theShells [i] == me) { theShells [i] = NULL; break; }
 }
 
 /* AppContext level */
@@ -266,7 +269,7 @@ static void cb_scroll (GuiObject scrollBar, XtPointer closure, XtPointer call) {
 	int horizontal = scrolledWindow -> motiff.scrolledWindow.horizontalBar == scrollBar;
 	(void) call;
 	if (! workWindow) return;
-	Melder_assert (scrolledWindow -> motiff.scrolledWindow.clipWindow);
+	Melder_assert (scrolledWindow -> motiff.scrolledWindow.clipWindow != NULL);
 	#if win
 		previousShift = horizontal ?
 			scrolledWindow -> motiff.scrolledWindow.clipWindow -> x - workWindow -> x :
@@ -282,7 +285,7 @@ static void cb_scroll (GuiObject scrollBar, XtPointer closure, XtPointer call) {
 		{ workWindow -> x += distance; Native_move (workWindow, distance, 0); }
 	else
 		{ workWindow -> y += distance; Native_move (workWindow, 0, distance); }
-	XmUpdateDisplay (nullptr);   // if dragging
+	XmUpdateDisplay (NULL);   // if dragging
 }
 
 /* These are like the toolkit's query_geometry methods: */
@@ -341,9 +344,9 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 	/*
 	 * Install me into my parent's list of children.
 	 */
-	if (! parent) {
+	if (parent == NULL) {
 		;
-	} else if (! parent -> firstChild) {
+	} else if (parent -> firstChild == NULL) {
 		parent -> firstChild = me;
 	} else {
 		GuiObject lastChild = parent -> firstChild;
@@ -363,12 +366,12 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 	if (MEMBER (me, Shell)) {
 		my shell = me;
 	} else {
-		my shell = parent ? parent -> shell : nullptr;
+		my shell = parent ? parent -> shell : NULL;
 		#if mac
 			/*
 			 * I am in the same shell as my parent, so I'll inherit my parent's Macintosh WindowRef.
 			 */
-			my macWindow = parent ? parent -> macWindow : nullptr;
+			my macWindow = parent ? parent -> macWindow : NULL;
 		#endif
 	}
 
@@ -425,7 +428,7 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 				my width = NativeButton_preferredWidth (me);
 				my height = NativeButton_preferredHeight (me) + 4;   // BUG: menu bar should be large enough
 			} else {
-				my motiff.cascadeButton.inBar = true;
+				my motiff.cascadeButton.inBar = TRUE;
 			}
 		} break; case xmToggleButtonWidgetClass: {
 			my x = 2;
@@ -519,7 +522,7 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 
 	if (my parent && MEMBER (my parent, ScrolledWindow) &&
 		! MEMBER (me, ScrollBar) &&   // 'me' is one of the two scroll bars, or a new one
-		my parent -> motiff.scrolledWindow.clipWindow)   // 'me' is probably the clip window now
+		my parent -> motiff.scrolledWindow.clipWindow != NULL)   // 'me' is probably the clip window now
 			my parent -> motiff.scrolledWindow.workWindow = me;   // install
 	return me;
 }
@@ -563,7 +566,7 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 		_motif_clipRect = clipRect;
 	}
 
-	void GuiMac_clipOff () { ClipRect (& _motif_wideRect); }
+	void GuiMac_clipOff (void) { ClipRect (& _motif_wideRect); }
 
 	void _GuiMac_clipOffValid (GuiObject me) {
 		Rect clipRect = _motif_clipRect;
@@ -596,7 +599,7 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 				if (MEMBER (me, ScrollBar)) {
 					parentRect = & my rect;
 				} else {
-					Melder_assert (parent -> motiff.scrolledWindow.clipWindow);
+					Melder_assert (parent -> motiff.scrolledWindow.clipWindow != NULL);
 					parentRect = & parent -> motiff.scrolledWindow.clipWindow -> rect;
 				}
 			}
@@ -617,7 +620,7 @@ GuiObject _Gui_initializeWidget (int widgetClass, GuiObject parent, const char32
 				if (MEMBER (me, ScrollBar)) {
 					parentRect = & my rect;
 				} else {
-					Melder_assert (parent -> motiff.scrolledWindow.clipWindow);
+					Melder_assert (parent -> motiff.scrolledWindow.clipWindow != NULL);
 					parentRect = & parent -> motiff.scrolledWindow.clipWindow -> rect;
 				}
 			}
@@ -779,7 +782,7 @@ static void NativeScrollBar_set (GuiObject me) {
 			scrollInfo. nPage = my sliderSize;
 			scrollInfo. nPos = my value;
 		#endif
-		if (my window) SetScrollInfo (my window, SB_CTL, & scrollInfo, true);
+		if (my window) SetScrollInfo (my window, SB_CTL, & scrollInfo, TRUE);
 	}
 	#elif mac
 		if (! my nat.control.handle) return;
@@ -990,7 +993,7 @@ static void _GuiNativizeWidget (GuiObject me) {
 				int id;
 				for (id = MINIMUM_MENU_ITEM_ID; id <= MAXIMUM_MENU_ITEM_ID; id ++) if (! theMenuItems [id]) break;
 				my nat.entry.id = id;   // install unique ID
-				theMenuItems [id] = true;
+				theMenuItems [id] = TRUE;
 			}
 			#endif
 		}
@@ -1063,7 +1066,7 @@ static void _GuiNativizeWidget (GuiObject me) {
 					/*
 					 * Insert the menu before the Help menu, if that exists; otherwise, at the end.
 					 */
-					for (menu = my parent -> firstChild; menu; menu = menu -> nextSibling) {
+					for (menu = my parent -> firstChild; menu != NULL; menu = menu -> nextSibling) {
 						if (MEMBER (menu, PulldownMenu) && str32equ (menu -> name, U"Help") && menu != me) {
 							beforeID = (UINT) menu -> nat.menu./*handle*/id;
 							break;
@@ -1134,15 +1137,15 @@ static void _GuiNativizeWidget (GuiObject me) {
 						WS_CHILD | BS_PUSHBUTTON | WS_CLIPSIBLINGS,
 						my x, my y, my width, my height, my parent -> window, (HMENU) 1, theGui.instance, NULL);
 					SetWindowLongPtr (my window, GWLP_USERDATA, (LONG_PTR) me);
-					SetWindowFont (my window, GetStockFont (ANSI_VAR_FONT), false);
+					SetWindowFont (my window, GetStockFont (ANSI_VAR_FONT), FALSE);
 				#elif mac
 					if (str32str (my name, U" -") || (my parent -> rowColumnType == XmMENU_BAR && my parent -> y < 5)) {
 						my nat.control.isBevel = true;
 						CreateBevelButtonControl (my macWindow, & my rect, NULL, kControlBevelButtonSmallBevel,
 							kControlBehaviorPushbutton, NULL, 1, kControlBehaviorCommandMenu, 0, & my nat.control.handle);
-						Melder_assert (my nat.control.handle);
+						Melder_assert (my nat.control.handle != NULL);
 						SetControlReference (my nat.control.handle, (long) me);
-						my isControl = true;
+						my isControl = TRUE;
 						_GuiNativeControl_setFont (me, 0, 13);
 						_GuiNativeControl_setTitle (me);
 					} else {
@@ -1150,9 +1153,9 @@ static void _GuiNativizeWidget (GuiObject me) {
 						//Melder_casual("my macWindow %ld, %d-%d x %d-%d", my macWindow, my rect.left, my rect.right, my rect.top, my rect.bottom);
 						CreatePopupButtonControl (my macWindow, & my rect, NULL, -12345, false,
 							0, teFlushLeft, 0, & my nat.control.handle);
-						Melder_assert (my nat.control.handle);
+						Melder_assert (my nat.control.handle != NULL);
 						SetControlReference (my nat.control.handle, (long) me);
-						my isControl = true;
+						my isControl = TRUE;
 						_GuiNativeControl_setFont (me, 0, 13);
 						_GuiNativeControl_setTitle (me);
 						SetControlMaximum (my nat.control.handle, 32767);   // the default seems to be 9 on MacOS X
@@ -1182,7 +1185,7 @@ static void _GuiNativizeWidget (GuiObject me) {
 				my nat.control.handle = NewControl (my macWindow, & my rect,
 					(const unsigned char *) "\000", false, 0, 0, 0, kControlScrollBarLiveProc, (long) me);
 				Melder_assert (my nat.control.handle);
-				my isControl = true;
+				my isControl = TRUE;
 			#endif
 			my minimum = 0;
 			my maximum = 100;
@@ -1308,12 +1311,12 @@ static void Native_move (GuiObject me, int dx, int dy) {
 		my nat.shell.duringMoveWindow = True;
 		if (my motiff.shell.isDialog)
 			MoveWindow (my window, my x, my y, my width + 2 * GetSystemMetrics (SM_CXFIXEDFRAME),
-				my height + 2 * GetSystemMetrics (SM_CYFIXEDFRAME) + GetSystemMetrics (SM_CYCAPTION), true);
+				my height + 2 * GetSystemMetrics (SM_CYFIXEDFRAME) + GetSystemMetrics (SM_CYCAPTION), TRUE);
 		else
 			MoveWindow (my window, my x, my y,
 				my width + 2 * GetSystemMetrics (SM_CXSIZEFRAME),
 				my height + 2 * GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION) +
-				( my nat.shell.menuBar ? GetSystemMetrics (SM_CYMENU) : 0 ), true);
+				( my nat.shell.menuBar != NULL ? GetSystemMetrics (SM_CYMENU) : 0 ), TRUE);
 	} else
 		MoveWindow (my window, my x, my y, my width, my height, True);
 #elif mac
@@ -1410,7 +1413,7 @@ static void shellResizeWidget (GuiObject me, int dx, int dy, int dw, int dh) {
 			if (rect.left!=my x||rect.right!=my x + my width||rect.top !=my y||rect.bottom!=my y +my height)
 			Melder_warning ("class %d x %d left %d y %d top %d width %d right %d height %d bottom %d",
 			my widgetClass, my x, rect.left, my y, rect.top, my width, rect.right, my height, rect.bottom);*/
-			MoveWindow (my window, my x, my y, my width, my height, true);
+			MoveWindow (my window, my x, my y, my width, my height, TRUE);
 			if (MEMBER (me, DrawingArea)) _GuiWinDrawingArea_shellResize (me);
 		}
 	#elif mac
@@ -1490,7 +1493,7 @@ static void resizeWidget (GuiObject me, int dw, int dh) {
 	GuiObject child;
 	#if win
 		if (my window && ! MEMBER (me, Shell)) {
-			MoveWindow (my window, my x, my y, my width, my height, true);
+			MoveWindow (my window, my x, my y, my width, my height, TRUE);
 			if (MEMBER (me, DrawingArea)) _GuiWinDrawingArea_shellResize (me);
 		}
 	#elif mac
@@ -1896,8 +1899,8 @@ static void _motif_setValues (GuiObject me, va_list arg) {
 
 #if mac
 static GuiObject _motif_findSubwidget (GuiObject me, int x, int y) {
-	if (! my managed) return nullptr;
-	if (! my firstChild && my parent) {
+	if (! my managed) return NULL;
+	if (my firstChild == NULL && my parent != NULL) {
 		Rect *rect;
 		if (MEMBER (my parent, MenuBar)) return NULL;
 		rect = ! MEMBER (me, ScrollBar) && my parent && MEMBER (my parent, ScrolledWindow) ?
@@ -1905,7 +1908,7 @@ static GuiObject _motif_findSubwidget (GuiObject me, int x, int y) {
 		if (x >= rect -> left && x <= rect -> right && y >= rect -> top && y <= rect -> bottom)
 			return me;
 		else
-			return nullptr;
+			return NULL;
 	} else {
 		GuiObject child = my firstChild;
 		for (child = my firstChild; child != NULL; child = child -> nextSibling) {
@@ -2301,7 +2304,7 @@ void XtDestroyWidget (GuiObject me) {
 		case xmPushButtonWidgetClass: {
 			if (my inMenu) {
 				#if win
-					if (my nat.entry.id) theMenuItems [my nat.entry.id] = false;
+					if (my nat.entry.id) theMenuItems [my nat.entry.id] = FALSE;
 				#elif mac
 					DeleteMenuItem (my nat.entry.handle, my nat.entry.item);
 					for (subview = my parent -> firstChild; subview; subview = subview -> nextSibling) {
@@ -2320,7 +2323,7 @@ void XtDestroyWidget (GuiObject me) {
 		case xmToggleButtonWidgetClass: {
 			if (my inMenu) {
 				#if win
-					if (my nat.entry.id) theMenuItems [my nat.entry.id] = false;
+					if (my nat.entry.id) theMenuItems [my nat.entry.id] = FALSE;
 				#elif mac
 					DeleteMenuItem (my nat.entry.handle, my nat.entry.item);
 					for (subview = my parent -> firstChild; subview; subview = subview -> nextSibling) {
@@ -2362,7 +2365,7 @@ void XtDestroyWidget (GuiObject me) {
 		case xmSeparatorWidgetClass: {
 			if (my inMenu) {
 				#if win
-					if (my nat.entry.id) theMenuItems [my nat.entry.id] = false;
+					if (my nat.entry.id) theMenuItems [my nat.entry.id] = FALSE;
 				#elif mac
 					DeleteMenuItem (my nat.entry.handle, my nat.entry.item);
 					for (subview = my parent -> firstChild; subview; subview = subview -> nextSibling) {
@@ -2418,7 +2421,7 @@ void XtMapWidget (GuiObject me) {
 	switch (my widgetClass) {
 		case xmShellWidgetClass:
 			#if win
-				ShowWindow (my window, theGui.commandShow);
+				ShowWindow (my window, theCommandShow);
 				//UpdateWindow (my window);
 			#elif mac
 				ShowWindow (my nat.window.ptr);
@@ -2517,7 +2520,7 @@ static void mapWidget (GuiObject me) {
 		#endif
 		case xmShellWidgetClass: {
 			#if win
-				ShowWindow (my window, theGui.commandShow);
+				ShowWindow (my window, theCommandShow);
 			#elif mac
 				SelectWindow (my nat.window.ptr);
 				ShowWindow (my nat.window.ptr);
@@ -2788,13 +2791,13 @@ void XtUnmanageChildren (GuiObjectList children, Cardinal num_children) {
 		return noErr;
 	}
 	static pascal OSErr _motif_processSignal8 (const AppleEvent *theAppleEvent, AppleEvent *reply, long handlerRefCon) {
-		static bool duringAppleEvent = false;
+		static int duringAppleEvent = FALSE;
 		(void) reply;
 		(void) handlerRefCon;
 		if (! duringAppleEvent) {
 			char *buffer;
 			long actualSize;
-			duringAppleEvent = true;
+			duringAppleEvent = TRUE;
 			//AEInteractWithUser (kNoTimeOut, NULL, NULL);   // use time out of 0 to execute immediately (without bringing to foreground)
 			ProcessSerialNumber psn;
 			GetCurrentProcess (& psn);
@@ -2807,18 +2810,18 @@ void XtUnmanageChildren (GuiObjectList children, Cardinal num_children) {
 				theUserMessageCallback (buffer32.peek());
 			}
 			free (buffer);
-			duringAppleEvent = false;
+			duringAppleEvent = FALSE;
 		}
 		return noErr;
 	}
 	static pascal OSErr _motif_processSignal16 (const AppleEvent *theAppleEvent, AppleEvent *reply, long handlerRefCon) {
-		static bool duringAppleEvent = false;
+		static int duringAppleEvent = FALSE;
 		(void) reply;
 		(void) handlerRefCon;
 		if (! duringAppleEvent) {
 			char16 *buffer;
 			long actualSize;
-			duringAppleEvent = true;
+			duringAppleEvent = TRUE;
 			//AEInteractWithUser (kNoTimeOut, NULL, NULL);   // use time out of 0 to execute immediately (without bringing to foreground)
 			ProcessSerialNumber psn;
 			GetCurrentProcess (& psn);
@@ -2831,7 +2834,7 @@ void XtUnmanageChildren (GuiObjectList children, Cardinal num_children) {
 				theUserMessageCallback (buffer32.peek());
 			}
 			free (buffer);
-			duringAppleEvent = false;
+			duringAppleEvent = FALSE;
 		}
 		return noErr;
 	}
@@ -2839,7 +2842,7 @@ void XtUnmanageChildren (GuiObjectList children, Cardinal num_children) {
 	static LRESULT CALLBACK windowProc (HWND window, UINT message, WPARAM wParam, LPARAM lParam);
 #endif
 
-void GuiAppInitialize (const char *name, unsigned int argc, char **argv)
+void GuiInitialize (const char *name, unsigned int *argc, char **argv)
 {
 	(void) argc;
 	#if mac
@@ -2859,7 +2862,7 @@ void GuiAppInitialize (const char *name, unsigned int argc, char **argv)
 	{
 		HWND window;
 		WNDCLASSEX windowClass;
-		Melder_sprint (theApplicationName,100, Melder_peek8to32 (argv [0]));
+		Melder_sprint (theApplicationName,100, argv [0] ? Melder_peek8to32 (argv [0]) : U"Unknown");
 		Melder_sprint (theApplicationClassName,100, U"PraatShell", PRAAT_WINDOW_CLASS_NUMBER, U" ", theApplicationName);
 		Melder_sprint (theWindowClassName,100, U"PraatChildWindow", PRAAT_WINDOW_CLASS_NUMBER, U" ", theApplicationName);
 		Melder_sprint (theDrawingAreaClassName,100, U"PraatDrawingArea", PRAAT_WINDOW_CLASS_NUMBER, U" ", theApplicationName);
@@ -2873,21 +2876,46 @@ void GuiAppInitialize (const char *name, unsigned int argc, char **argv)
 			 */
 			if (IsIconic (window)) ShowWindow (window, SW_RESTORE);
 			SetForegroundWindow (window);
-			if (theOpenDocumentCallback) {
-				for (unsigned int iarg = 1; iarg < argc; iarg ++) {
-					if (argv [iarg] [0] != '-') {
-						structMelderDir dir { 0 };
-						Melder_sprint (dir. path,kMelder_MAXPATH+1, Melder_getShellDirectory ());
-						Melder_setDefaultDir (& dir);
-						structMelderFile file = { 0 };
-						Melder_relativePathToFile (Melder_peek8to32 (argv [iarg]), & file);
-						theOpenDocumentCallback (& file);
+			if (theOpenDocumentCallback && argv [3] [0]) {
+				structMelderFile file = { 0 };
+				/*
+				 * The user dropped a file on the Praat icon or double-clicked a Praat file
+				 * while Praat was already running.
+				 * Windows may have enclosed the path between quotes;
+				 * this is especially likely to happen if the path contains spaces,
+				 * which on Windows XP is very usual.
+				 */
+				char32 *s = Melder_8to32 (argv [3]);
+				for (;;) {
+					bool endSeen = false;
+					while (*s == U' ' || *s == U'\n') s ++;
+					if (*s == U'\0') break;
+					char32 *path = s;
+					if (*s == U'\"') {
+						path = ++ s;
+						while (*s != U'\"' && *s != U'\0') s ++;
+						if (*s == U'\0') break;
+						Melder_assert (*s == U'\"');
+						*s = U'\0';
+					} else {
+						while (*s != U' ' && *s != U'\n' && *s != U'\0') s ++;
+						if (*s == U' ' || *s == U'\n') {
+							*s = U'\0';
+						} else {
+							endSeen = true;
+						}
 					}
+					Melder_sprint (file. path,kMelder_MAXPATH+1, path);
+					theOpenDocumentCallback (& file);
+					if (endSeen) break;
+					s ++;
 				}
 			}
 			exit (0);   // possible problem
 		}
 
+		sscanf (argv [1], "%p", & theGui.instance);
+
 		windowClass. cbSize = sizeof (WNDCLASSEX);
 		windowClass. style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS |
 			CS_OWNDC   // crucial: see GraphicsScreen_init ()
@@ -2909,10 +2937,19 @@ void GuiAppInitialize (const char *name, unsigned int argc, char **argv)
 		windowClass. lpszClassName = Melder_32toW (theApplicationClassName);
 		RegisterClassEx (& windowClass);
 		InitCommonControls ();
+		theCommandShow = atoi (argv [2]);
 	}
 	#endif
 }
 
+void GuiAppInitialize (const char *name,
+	void *dum2, int dum3, unsigned int *argc, char **argv, void *dum4, void *dum5)
+{
+	(void) dum4;
+	(void) dum5;
+	GuiInitialize (name, argc, argv);
+}
+
 void GuiApp_setApplicationShell (GuiObject shell) {
 	theApplicationShell = shell;
 }
@@ -4220,7 +4257,7 @@ void XtNextEvent (XEvent *xevent) {
 	#endif
 }
 
-static void processWorkProcsAndTimeOuts () {
+static void processWorkProcsAndTimeOuts (void) {
 	long i;
 	if (theNumberOfWorkProcs) for (i = 9; i >= 1; i --)
 		if (theWorkProcs [i])
@@ -4493,20 +4530,28 @@ void GuiMainLoop () {
 }
 
 #if win
-	#if defined (_WIN32)
-		#define main wingwmain
-	#endif
 	extern int main (int argc, char *argv []);
-	int APIENTRY WinMain (HINSTANCE instance, HINSTANCE /*previousInstance*/, LPSTR commandLine, int commandShow) {
-		theGui.instance = instance;
-		theGui.commandShow = commandShow;
-		int argc;
-		WCHAR** argvW = CommandLineToArgvW (GetCommandLineW (), & argc);
-		char** argv = Melder_malloc (char*, argc);
-		for (int iarg = 0; iarg < argc; iarg ++) {
-			argv [iarg] = Melder_32to8 (Melder_peekWto32 (argvW [iarg]));
+	int APIENTRY WinMain (HINSTANCE instance, HINSTANCE previousInstance, LPSTR commandLine, int commandShow) {
+		int argc = 4;
+		char instanceString [20], commandShowString [20];
+		const char *argv [4];
+		(void) previousInstance;
+		argv [0] = "dummy";
+		sprintf (instanceString, "%p", instance);
+		sprintf (commandShowString, "%d", commandShow);
+		argv [1] = & instanceString [0];
+		argv [2] = & commandShowString [0];
+		argv [3] = Melder_32to8 (Melder_peekWto32 (GetCommandLineW ()));   // it's OK to ignore the possibility of low memory
+		if (argv [3] [0] == '\"') {
+			argv [3] ++;   // skip quote
+			while (argv [3] [0] != '\"') { argv [3] ++; }
+			argv [3] ++;   // skip quote
+			if (argv [3] [0] == ' ') argv [3] ++;
+		} else {
+			while (argv [3] [0] != ' ' && argv [3] [0] != '\0')  { argv [3] ++; }
+			if (argv [3] [0] == ' ') argv [3] ++;
 		}
-		return main (argc, argv);
+		return main (argc, (char **) & argv [0]);
 	}
 
 	static void on_close (HWND window) {
@@ -4773,17 +4818,17 @@ void GuiMainLoop () {
 			default: return DefWindowProc (window, message, wParam, lParam);
 		}
 	}
-	bool motif_win_mouseStillDown () {
+	int motif_win_mouseStillDown (void) {
 		XEvent event;
 		if (! GetCapture ()) SetCapture (theApplicationShell -> window);
 		if (PeekMessage (& event, 0, 0, 0, PM_REMOVE)) {
 			if (event. message == WM_LBUTTONUP) {
 				DispatchMessage (& event);
 				ReleaseCapture ();
-				return false;
+				return False;
 			}
 		}
-		return true;
+		return True;
 	}
 	void motif_win_setUserMessageCallback (int (*userMessageCallback) (void)) {
 		theUserMessageCallback = userMessageCallback;
diff --git a/sys/oo.h b/sys/oo.h
index 7fa9764..697f72c 100644
--- a/sys/oo.h
+++ b/sys/oo.h
@@ -212,6 +212,15 @@
 #define oo_STRUCT_VECTOR(Type,x,n)  oo_STRUCT_VECTOR_FROM (Type, x, 1, n)
 #define oo_STRUCT_MATRIX(Type,x,nrow,ncol)  oo_STRUCT_MATRIX_FROM (Type, x, 1, nrow, 1, ncol)
 
+/*** Class declaration in header file. ***/
+
+#define oo_CLASS_CREATE(klas,parent) \
+	typedef _Thing_auto <struct##klas> auto##klas; \
+	extern struct structClassInfo theClassInfo_##klas; \
+	extern ClassInfo class##klas
+
+
+
 /********** Definitions for header files only. **********/
 /* These are undef'ed and redefined in the header files that implement methods, */
 /* like oo_DESTROY.h, oo_COPY.h, oo_EQUAL.h, oo_WRITE_TEXT.h, etc. */
@@ -240,9 +249,8 @@
 #define oo_STRUCT_VECTOR_FROM(Type,x,min,max)  Type x;
 #define oo_STRUCT_MATRIX_FROM(Type,x,row1,row2,col1,col2)  struct struct##Type **x;
 
-#define oo_AUTO_OBJECT(Class,version,x)  auto##Class x;
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  Class<struct##ItemClass> x;
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  auto##Class x;
+#define oo_OBJECT(Class,version,x)  Class x;
+#define oo_COLLECTION(Class,x,ItemClass,version)  Class x;
 #define oo_FILE(x)  structMelderFile x;
 #define oo_DIR(x)  structMelderDir x;
 
@@ -266,16 +274,13 @@
 
 #define oo_DEFINE_CLASS(klas,parent) \
 	typedef struct struct##klas *klas; \
-	typedef _Thing_auto <struct##klas> auto##klas; \
 	typedef struct##parent klas##_Parent; \
-	extern struct structClassInfo theClassInfo_##klas; \
-	extern ClassInfo class##klas; \
 	struct struct##klas : public struct##parent {
 
 #define oo_END_CLASS(Class) \
-		void v_destroy () noexcept override; \
-		void v_copy (Daata data_to) override; \
-		bool v_equal (Daata otherData) override; \
+		void v_destroy () override; \
+		void v_copy (Any data_to) override; \
+		bool v_equal (Any otherData) override; \
 		static Data_Description s_description; \
 		Data_Description v_description () override { return s_description; } \
 		bool v_canWriteAsEncoding (int outputEncoding) override; \
diff --git a/sys/oo_CAN_WRITE_AS_ENCODING.h b/sys/oo_CAN_WRITE_AS_ENCODING.h
index 5d05e33..c2a6292 100644
--- a/sys/oo_CAN_WRITE_AS_ENCODING.h
+++ b/sys/oo_CAN_WRITE_AS_ENCODING.h
@@ -91,16 +91,11 @@
 				if (! our x [i] [j]. canWriteAsEncoding (encoding)) return false; \
 	}
 
-#define oo_AUTO_OBJECT(Class,version,x)  \
-	if (our x && ! Data_canWriteAsEncoding (our x.get(), encoding)) return false;
+#define oo_OBJECT(Class,version,x)  \
+	if (our x && ! Data_canWriteAsEncoding (our x, encoding)) return false;
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  \
-	for (long i = 1; i <= x.size; i ++) { \
-		if (our x.at [i] && ! Data_canWriteAsEncoding (our x.at [i], encoding)) return false; \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  \
-	if (our x && ! Data_canWriteAsEncoding (our x.get(), encoding)) return false;
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	if (our x && ! Data_canWriteAsEncoding (our x, encoding)) return false;
 
 #define oo_FILE(x)  \
 	if (! Melder_isEncodable (our x. path, encoding)) return false;
diff --git a/sys/oo_COPY.h b/sys/oo_COPY.h
index 5fea8cc..63e375a 100644
--- a/sys/oo_COPY.h
+++ b/sys/oo_COPY.h
@@ -92,24 +92,11 @@
 				our x [i] [j]. copy (& thy x [i] [j]); \
 	}
 
-#define oo_AUTO_OBJECT(Class,version,x)  \
-	if (our x) thy x = Data_copy (our x.get());
-
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  \
-	if (our x._capacity > 0) { \
-		thy x.at._elements = Melder_calloc (ItemClass, our x._capacity); \
-		thy x.at._elements --; \
-	} \
-	thy x.size = our x.size; \
-	thy x._capacity = our x._capacity; \
-	thy x._ownItems = our x._ownItems; \
-	thy x._ownershipInitialized = our x._ownershipInitialized; \
-	for (long i = 1; i <= our x.size; i ++) { \
-		if (our x.at [i]) thy x.at [i] = Data_copy (our x.at [i]).releaseToAmbiguousOwner(); \
-	}
+#define oo_OBJECT(Class,version,x)  \
+	if (our x) thy x = Data_copy (our x);
 
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  \
-	if (our x) thy x = Data_copy (our x.get());
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	if (our x) thy x = Data_copy (our x);
 
 #define oo_FILE(x)  \
 	MelderFile_copy (& our x, & thy x);
@@ -124,8 +111,8 @@
 	}
 
 #define oo_DEFINE_CLASS(Class,Parent)  \
-	void struct##Class :: v_copy (Daata thee_Daata) { \
-		Class thee = static_cast <Class> (thee_Daata); \
+	void struct##Class :: v_copy (thou) { \
+		thouart (Class); \
 		Class##_Parent :: v_copy (thee);
 
 #define oo_END_CLASS(Class)  \
diff --git a/sys/oo_DESCRIPTION.h b/sys/oo_DESCRIPTION.h
index 20a30f3..51c2f6b 100644
--- a/sys/oo_DESCRIPTION.h
+++ b/sys/oo_DESCRIPTION.h
@@ -235,13 +235,21 @@
 
 #undef oo_STRING_SET
 #define oo_STRING_SET(x,setType)  { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 3, (const char32 *) setType##_getText, (const char32 *) setType##_getValue },
+#undef oo_STRING32_SET
+#define oo_STRING32_SET(x,setType)  { U"" #x, string32wa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 3, (const char32 *) setType##_getText, (const char32 *) setType##_getValue },
 #undef oo_LSTRING_SET
 #define oo_LSTRING_SET(x,setType)  { U"" #x, lstringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 3, (const char32 *) setType##_getText, (const char32 *) setType##_getValue },
+#undef oo_LSTRING32_SET
+#define oo_LSTRING32_SET(x,setType)  { U"" #x, lstring32wa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 3, (const char32 *) setType##_getText, (const char32 *) setType##_getValue },
 
 #undef oo_STRING_VECTOR_FROM
 #define oo_STRING_VECTOR_FROM(x,min,max)  { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 1, U"" #min, U"" #max },
+#undef oo_STRING32_VECTOR_FROM
+#define oo_STRING32_VECTOR_FROM(x,min,max)  { U"" #x, string32wa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 1, U"" #min, U"" #max },
 #undef oo_LSTRING_VECTOR_FROM
 #define oo_LSTRING_VECTOR_FROM(x,min,max)  { U"" #x, lstringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 1, U"" #min, U"" #max },
+#undef oo_LSTRING32_VECTOR_FROM
+#define oo_LSTRING32_VECTOR_FROM(x,min,max)  { U"" #x, lstring32wa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 1, U"" #min, U"" #max },
 
 #undef oo_STRING_VECTOR
 #define oo_STRING_VECTOR(x,n)  { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), 0, 0, 1, (const char32 *) 0, U"" #n },
@@ -258,9 +266,8 @@
 #undef oo_STRUCT_MATRIX
 #define oo_STRUCT_MATRIX(Type,x,nrow,ncol)  { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 2, (const char32 *) 0, U"" #nrow, (const char32 *) 0, U"" #ncol },
 
-#define oo_AUTO_OBJECT(Type,version,x)  { U"" #x, autoobjectwa, Melder_offsetof (ooSTRUCT, x), sizeof (Type), U"" #Type, & theClassInfo_##Type },
-#define oo_COLLECTION_OF(Type,x,ItemType,version)  { U"" #x, collectionofwa, Melder_offsetof (ooSTRUCT, x), sizeof (class struct##ItemType), U"" #Type, & theClassInfo_Collection, 0, (const char32 *) & theClassInfo_##ItemType },
-#define oo_AUTO_COLLECTION(Type,x,ItemType,version)  { U"" #x, autocollectionwa, Melder_offsetof (ooSTRUCT, x), sizeof (class struct##ItemType), U"" #Type, & theClassInfo_##Type, 0, (const char32 *) & theClassInfo_##ItemType },
+#define oo_OBJECT(Type,version,x)  { U"" #x, objectwa, Melder_offsetof (ooSTRUCT, x), sizeof (Type), U"" #Type, & theClassInfo_##Type },
+#define oo_COLLECTION(Type,x,ItemType,version)  { U"" #x, collectionwa, Melder_offsetof (ooSTRUCT, x), sizeof (class struct##ItemType), U"" #Type, & theClassInfo_##Type, 0, (const char32 *) & theClassInfo_##ItemType },
 #define oo_FILE(x)
 #define oo_DIR(x)
 
diff --git a/sys/oo_DESTROY.h b/sys/oo_DESTROY.h
index a16a300..ba6a1c3 100644
--- a/sys/oo_DESTROY.h
+++ b/sys/oo_DESTROY.h
@@ -1,6 +1,6 @@
 /* oo_DESTROY.h
  *
- * Copyright (C) 1994-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1994-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -85,11 +85,11 @@
 		NUMmatrix_free <struct##Type> (our x, row1, col1); \
 	}
 
-#define oo_AUTO_OBJECT(Class,version,x)
+#define oo_OBJECT(Class,version,x)  \
+	forget (our x);
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	forget (our x);
 
 #define oo_FILE(x)
 
@@ -102,7 +102,7 @@
 	}
 
 #define oo_DEFINE_CLASS(Class,Parent)  \
-	void struct##Class :: v_destroy () noexcept { \
+	void struct##Class :: v_destroy () { \
 
 #define oo_END_CLASS(Class)  \
 		Class##_Parent :: v_destroy (); \
diff --git a/sys/oo_EQUAL.h b/sys/oo_EQUAL.h
index a78bb3d..363ba99 100644
--- a/sys/oo_EQUAL.h
+++ b/sys/oo_EQUAL.h
@@ -95,16 +95,11 @@
 				if (! our x [i] [j]. equal (& thy x [i] [j])) return false; \
 	}
 
-#define oo_AUTO_OBJECT(Class,version,x)  \
-	if (! our x != ! thy x || (our x && ! Data_equal (our x.get(), thy x.get()))) return false;
+#define oo_OBJECT(Class,version,x)  \
+	if (! our x != ! thy x || (our x && ! Data_equal (our x, thy x))) return false;
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  \
-	for (long i = 1; i <= our x.size; i ++) { \
-		if (! our x.at [i] != ! thy x.at [i] || (our x.at [i] && ! Data_equal (our x.at [i], thy x.at [i]))) return false; \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  \
-	if (! our x != ! thy x || (our x && ! Data_equal (our x.get(), thy x.get()))) return false;
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	if (! our x != ! thy x || (our x && ! Data_equal (our x, thy x))) return false;
 
 #define oo_FILE(x)  \
 	if (! MelderFile_equal (& our x, & thy x)) return false;
@@ -120,8 +115,8 @@
 	}
 
 #define oo_DEFINE_CLASS(Class,Parent)  \
-	bool struct##Class :: v_equal (Daata thee_Daata) { \
-		Class thee = static_cast <Class> (thee_Daata); \
+	bool struct##Class :: v_equal (thou) { \
+		thouart (Class); \
 		if (! Class##_Parent :: v_equal (thee)) return false;
 
 #define oo_END_CLASS(Class)  \
diff --git a/sys/oo_READ_BINARY.h b/sys/oo_READ_BINARY.h
index 248b839..99bab7f 100644
--- a/sys/oo_READ_BINARY.h
+++ b/sys/oo_READ_BINARY.h
@@ -1,6 +1,6 @@
 /* oo_READ_BINARY.h
  *
- * Copyright (C) 1994-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1994-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -118,30 +118,20 @@
 		} \
 	}
 
-#define oo_AUTO_OBJECT(Class,formatVersion,x)  \
+#define oo_OBJECT(Class,formatVersion,x)  \
 	if (bingetex (f)) { \
 		our x = Thing_new (Class); \
 		our x -> v_readBinary (f, formatVersion); \
 	}
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,formatVersion)  \
+#define oo_COLLECTION(Class,x,ItemClass,formatVersion)  \
 	{ \
-		int32 n = bingeti4 (f); \
-		for (int32 i = 1; i <= n; i ++) { \
-			auto##ItemClass item = Thing_new (ItemClass); \
-			item -> v_readBinary (f, formatVersion); \
-			our x.addItem_move (item.move()); \
-		} \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,formatVersion)  \
-	{ \
-		int32 n = bingeti4 (f); \
+		int32_t n = bingeti4 (f); \
 		our x = Class##_create (); \
-		for (int32 i = 1; i <= n; i ++) { \
-			auto##ItemClass item = Thing_new (ItemClass); \
-			item -> v_readBinary (f, formatVersion); \
-			our x -> addItem_move (item.move()); \
+		for (int32_t i = 1; i <= n; i ++) { \
+			auto##ItemClass item = (ItemClass) Thing_new (ItemClass); \
+			item.peek() -> v_readBinary (f, formatVersion); \
+			Collection_addItem (our x, item.transfer()); \
 		} \
 	}
 
@@ -150,8 +140,7 @@
 #define oo_DIR(x)
 
 #define oo_DEFINE_STRUCT(Type)  \
-	void struct##Type :: readBinary (FILE *f, int formatVersion) { \
-		(void) formatVersion;
+	void struct##Type :: readBinary (FILE *f, int formatVersion) {
 
 #define oo_END_STRUCT(Type)  \
 	}
diff --git a/sys/oo_READ_TEXT.h b/sys/oo_READ_TEXT.h
index 01e1232..434be46 100644
--- a/sys/oo_READ_TEXT.h
+++ b/sys/oo_READ_TEXT.h
@@ -1,6 +1,6 @@
 /* oo_READ_TEXT.h
  *
- * Copyright (C) 1994-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1994-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -139,30 +139,20 @@
 		} \
 	}
 
-#define oo_AUTO_OBJECT(Class,formatVersion,x)  \
+#define oo_OBJECT(Class,formatVersion,x)  \
 	if (texgetex (a_text) == 1) { \
 		our x = Thing_new (Class); \
 		our x -> v_readText (a_text, formatVersion); \
 	}
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,formatVersion)  \
-	{ \
-		long n = texgeti4 (a_text); \
-		for (long i = 1; i <= n; i ++) { \
-			auto##ItemClass item = Thing_new (ItemClass); \
-			item -> v_readText (a_text, formatVersion); \
-			our x.addItem_move (item.move()); \
-		} \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,formatVersion)  \
+#define oo_COLLECTION(Class,x,ItemClass,formatVersion)  \
 	{ \
 		long n = texgeti4 (a_text); \
 		our x = Class##_create (); \
 		for (long i = 1; i <= n; i ++) { \
-			auto##ItemClass item = Thing_new (ItemClass); \
-			item -> v_readText (a_text, formatVersion); \
-			our x -> addItem_move (item.move()); \
+			auto##ItemClass item = (ItemClass) Thing_new (ItemClass); \
+			item.peek() -> v_readText (a_text, formatVersion); \
+			Collection_addItem (our x, item.transfer()); \
 		} \
 	}
 
@@ -171,8 +161,7 @@
 #define oo_DIR(x)
 
 #define oo_DEFINE_STRUCT(Type)  \
-	void struct##Type :: readText (MelderReadText a_text, int formatVersion) { \
-		(void) formatVersion;
+	void struct##Type :: readText (MelderReadText a_text, int formatVersion) {
 
 #define oo_END_STRUCT(Type)  \
 	}
diff --git a/sys/oo_WRITE_BINARY.h b/sys/oo_WRITE_BINARY.h
index 908616b..fd5ec6a 100644
--- a/sys/oo_WRITE_BINARY.h
+++ b/sys/oo_WRITE_BINARY.h
@@ -88,23 +88,16 @@
 		for (long j = col1; j <= col2; j ++) \
 			our x [i] [j]. writeBinary (f);
 
-#define oo_AUTO_OBJECT(Class,version,x)  \
-	binputex ((bool) our x, f); \
+#define oo_OBJECT(Class,version,x)  \
+	binputex (our x != NULL, f); \
 	if (our x) \
-		Data_writeBinary (our x.get(), f);
+		Data_writeBinary (our x, f);
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  \
-	binputi4 (our x.size, f); \
-	for (long i = 1; i <= our x.size; i ++) { \
-		ItemClass data = our x.at [i]; \
-		data -> struct##ItemClass :: v_writeBinary (f); \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  \
-	binputi4 (our x ? our x->size : 0, f); \
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	binputi4 (our x ? our x -> size : 0, f); \
 	if (our x) { \
-		for (long i = 1; i <= our x->size; i ++) { \
-			ItemClass data = our x->at [i]; \
+		for (long i = 1; i <= our x -> size; i ++) { \
+			ItemClass data = (ItemClass) our x -> item [i]; \
 			data -> struct##ItemClass :: v_writeBinary (f); \
 		} \
 	}
diff --git a/sys/oo_WRITE_TEXT.h b/sys/oo_WRITE_TEXT.h
index c42a4ee..5c98d3c 100644
--- a/sys/oo_WRITE_TEXT.h
+++ b/sys/oo_WRITE_TEXT.h
@@ -23,7 +23,7 @@
 	texput##storage (file, our x, U"" #x, 0,0,0,0,0);
 
 #define oo_ARRAY(type,storage,x,cap,n)  \
-	texputintro (file, U"" #x U" []: ", n ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", n ? NULL : U"(empty)", 0,0,0,0); \
 	for (int i = 0; i < n; i ++) \
 		texput##storage (file, our x [i], U"" #x " [", Melder_integer (i), U"]", 0,0,0); \
 	texexdent (file);
@@ -52,13 +52,13 @@
 	texexdent (file);
 
 #define oo_ENUMx_SET(type,storage,Type,x,setType)  \
-	texputintro (file, U"" #x U" []: ", n ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", n ? NULL : U"(empty)", 0,0,0,0); \
 	for (int i = 0; i <= setType##_MAX; i ++) \
 		texput##storage (file, our x [i], Type##_getText, U"" #x U" [", setType##_getText (i), U"]", 0,0,0); \
 	texexdent (file);
 
 #define oo_ENUMx_VECTOR(type,storage,Type,x,min,max)  \
-	texputintro (file, U"" #x U" []: ", max >= min ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", max >= min ? NULL : U"(empty)", 0,0,0,0); \
 	for (long i = min; i <= max; i ++) \
 		texput##storage (file, our x [i], Type##_getText, U"" #x U" [", Melder_integer (i), U"]", 0,0,0); \
 	texexdent (file);
@@ -67,7 +67,7 @@
 	texput##storage (file, our x, U""#x, 0,0,0,0,0);
 
 #define oo_STRINGx_ARRAY(storage,x,cap,n)  \
-	texputintro (file, U"" #x U" []: ", n ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", n ? NULL : U"(empty)", 0,0,0,0); \
 	for (int i = 0; i < n; i ++) \
 		texput##storage (file, our x [i], U"" #x U" [", Melder_integer (i), U"]", 0,0,0); \
 	texexdent (file);
@@ -79,7 +79,7 @@
 	texexdent (file);
 
 #define oo_STRINGx_VECTOR(storage,x,min,max)  \
-	texputintro (file, U"" #x U" []: ", max >= min ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", max >= min ? NULL : U"(empty)", 0,0,0,0); \
 	for (long i = min; i <= max; i ++) \
 		texput##storage (file, our x [i], U"" #x U" [", Melder_integer (i), U"]", 0,0,0); \
 	texexdent (file);
@@ -90,7 +90,7 @@
 	texexdent (file);
 
 #define oo_STRUCT_ARRAY(Type,x,cap,n)  \
-	texputintro (file, U"" #x U" []: ", n ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", n ? NULL : U"(empty)", 0,0,0,0); \
 	for (int i = 0; i < n; i ++) { \
 		texputintro (file, U"" #x " [", Melder_integer (i), U"]:", 0,0,0); \
 		our x [i]. writeText (file); \
@@ -108,7 +108,7 @@
 	texexdent (file);
 
 #define oo_STRUCT_VECTOR_FROM(Type,x,min,max)  \
-	texputintro (file, U"" #x U" []: ", max >= min ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" []: ", max >= min ? NULL : U"(empty)", 0,0,0,0); \
 	for (long i = min; i <= max; i ++) { \
 		texputintro (file, U"" #x U" [", Melder_integer (i), U"]:", 0,0,0); \
 		our x [i]. writeText (file); \
@@ -117,7 +117,7 @@
 	texexdent (file);
 
 #define oo_STRUCT_MATRIX_FROM(Type,x,row1,row2,col1,col2)  \
-	texputintro (file, U"" #x U" [] []: ", row2 >= row1 ? nullptr : U"(empty)", 0,0,0,0); \
+	texputintro (file, U"" #x U" [] []: ", row2 >= row1 ? NULL : U"(empty)", 0,0,0,0); \
 	for (long i = row1; i <= row2; i ++) { \
 		texputintro (file, U"" #x U" [", Melder_integer (i), U"]:", 0,0,0); \
 		for (long j = col1; j <= col2; j ++) { \
@@ -129,25 +129,16 @@
 	} \
 	texexdent (file);
 
-#define oo_AUTO_OBJECT(Class,version,x)  \
-	texputex (file, !! our x, U"" #x, 0,0,0,0,0); \
+#define oo_OBJECT(Class,version,x)  \
+	texputex (file, our x != NULL, U"" #x, 0,0,0,0,0); \
 	if (our x) \
-		Data_writeText (our x.get(), file);
+		Data_writeText (our x, file);
 
-#define oo_COLLECTION_OF(Class,x,ItemClass,version)  \
-	texputi4 (file, our x.size, U"" #x U": size", 0,0,0,0,0); \
-	for (long i = 1; i <= our x.size; i ++) { \
-		ItemClass data = our x.at [i]; \
-		texputintro (file, U"" #x U" [", Melder_integer (i), U"]:", 0,0,0); \
-		data -> struct##ItemClass :: v_writeText (file); \
-		texexdent (file); \
-	}
-
-#define oo_AUTO_COLLECTION(Class,x,ItemClass,version)  \
-	texputi4 (file, our x ? our x->size : 0, U"" #x U": size", 0,0,0,0,0); \
+#define oo_COLLECTION(Class,x,ItemClass,version)  \
+	texputi4 (file, our x ? our x -> size : 0, U"" #x U": size", 0,0,0,0,0); \
 	if (our x) { \
-		for (long i = 1; i <= our x->size; i ++) { \
-			ItemClass data = our x->at [i]; \
+		for (long i = 1; i <= our x -> size; i ++) { \
+			ItemClass data = (ItemClass) our x -> item [i]; \
 			texputintro (file, U"" #x U" [", Melder_integer (i), U"]:", 0,0,0); \
 			data -> struct##ItemClass :: v_writeText (file); \
 			texexdent (file); \
diff --git a/sys/oo_undef.h b/sys/oo_undef.h
index efb68ff..c56286d 100644
--- a/sys/oo_undef.h
+++ b/sys/oo_undef.h
@@ -39,9 +39,8 @@
 #undef oo_STRUCT_VECTOR_FROM
 #undef oo_STRUCT_MATRIX_FROM
 
-#undef oo_AUTO_OBJECT
-#undef oo_COLLECTION_OF
-#undef oo_AUTO_COLLECTION
+#undef oo_OBJECT
+#undef oo_COLLECTION
 #undef oo_FILE
 #undef oo_DIR
 
diff --git a/sys/praat.cpp b/sys/praat.cpp
index 6eb9f35..db5274c 100644
--- a/sys/praat.cpp
+++ b/sys/praat.cpp
@@ -37,15 +37,9 @@
 #if defined (UNIX)
 	#include <unistd.h>
 #endif
-#if defined (_WIN32)
-	#include <windows.h>
-	#include <fcntl.h>
-	#include <io.h>
-#endif
 
 #include "praatP.h"
 #include "praat_script.h"
-#include "praat_version.h"
 #include "site.h"
 #include "machine.h"
 #include "Printer.h"
@@ -56,8 +50,6 @@
 	#include <gdk/gdkx.h>
 #endif
 
-Thing_implement (Praat_Command, Thing, 0);
-
 #define EDITOR  theCurrentPraatObjects -> list [IOBJECT]. editors
 
 #define WINDOW_WIDTH 520
@@ -71,7 +63,7 @@ structPraatPicture theForegroundPraatPicture;
 PraatPicture theCurrentPraatPicture = & theForegroundPraatPicture;
 struct PraatP praatP;
 static char32 programName [64];
-static structMelderDir homeDir { { 0 } };
+static structMelderDir homeDir = { { 0 } };
 /*
  * praatDirectory: preferences file, buttons file, message files, tracing file, plugins.
  *    Unix:   /u/miep/.myProg-dir   (without slash)
@@ -80,7 +72,7 @@ static structMelderDir homeDir { { 0 } };
  *    Mac X:   /Users/Miep/Library/Preferences/MyProg Prefs
  */
 extern structMelderDir praatDir;
-structMelderDir praatDir { { 0 } };
+structMelderDir praatDir = { { 0 } };
 /*
  * prefsFile: preferences file.
  *    Unix:   /u/miep/.myProg-dir/prefs5
@@ -88,7 +80,7 @@ structMelderDir praatDir { { 0 } };
  *                       or:   C:\Users\Miep\MyProg\Preferences5.ini
  *    Mac X:   /Users/Miep/Library/Preferences/MyProg Prefs/Prefs5
  */
-static structMelderFile prefsFile { 0 };
+static structMelderFile prefsFile = { 0 };
 /*
  * buttonsFile: buttons file.
  *    Unix:   /u/miep/.myProg-dir/buttons
@@ -96,12 +88,12 @@ static structMelderFile prefsFile { 0 };
  *                    or:   C:\Users\Miep\MyProg\Buttons5.ini
  *    Mac X:   /Users/Miep/Library/Preferences/MyProg Prefs/Buttons5
  */
-static structMelderFile buttonsFile { 0 };
+static structMelderFile buttonsFile = { 0 };
 #if defined (UNIX)
-	static structMelderFile pidFile { 0 };   // like /u/miep/.myProg-dir/pid
-	static structMelderFile messageFile { 0 };   // like /u/miep/.myProg-dir/message
+	static structMelderFile pidFile = { 0 };   // like /u/miep/.myProg-dir/pid
+	static structMelderFile messageFile = { 0 };   // like /u/miep/.myProg-dir/message
 #elif defined (_WIN32)
-	static structMelderFile messageFile { 0 };   // like C:\Users\Miep\myProg\Message.txt
+	static structMelderFile messageFile = { 0 };   // like C:\Users\Miep\myProg\Message.txt
 #endif
 /*
  * tracingFile: tracing file.
@@ -110,7 +102,7 @@ static structMelderFile buttonsFile { 0 };
  *                    or:   C:\Users\Miep\MyProg\Tracing.txt
  *    Mac X:   /Users/Miep/Library/Preferences/MyProg Prefs/Tracing.txt
  */
-static structMelderFile tracingFile { 0 };
+static structMelderFile tracingFile = { 0 };
 
 static GuiList praatList_objects;
 
@@ -120,12 +112,12 @@ long praat_idOfSelected (ClassInfo klas, int inplace) {
 	int place = inplace, IOBJECT;
 	if (place == 0) place = 1;
 	if (place > 0) {
-		WHERE (SELECTED && (! klas || CLASS == klas)) {
+		WHERE (SELECTED && (klas == NULL || CLASS == klas)) {
 			if (place == 1) return ID;
 			place --;
 		}
 	} else {
-		WHERE_DOWN (SELECTED && (! klas || CLASS == klas)) {
+		WHERE_DOWN (SELECTED && (klas == NULL || CLASS == klas)) {
 			if (place == -1) return ID;
 			place ++;
 		}
@@ -142,13 +134,13 @@ char32 * praat_nameOfSelected (ClassInfo klas, int inplace) {
 	int place = inplace, IOBJECT;
 	if (place == 0) place = 1;
 	if (place > 0) {
-		WHERE (SELECTED && (! klas || CLASS == klas)) {
-			if (place == 1) return klas ? NAME : FULL_NAME;
+		WHERE (SELECTED && (klas == NULL || CLASS == klas)) {
+			if (place == 1) return klas == NULL ? FULL_NAME : NAME;
 			place --;
 		}
 	} else {
-		WHERE_DOWN (SELECTED && (! klas || CLASS == klas)) {
-			if (place == -1) return klas ? NAME : FULL_NAME;
+		WHERE_DOWN (SELECTED && (klas == NULL || CLASS == klas)) {
+			if (place == -1) return klas == NULL ? FULL_NAME : NAME;
 			place ++;
 		}
 	}
@@ -161,7 +153,7 @@ char32 * praat_nameOfSelected (ClassInfo klas, int inplace) {
 }
 
 int praat_numberOfSelected (ClassInfo klas) {
-	if (! klas) return theCurrentPraatObjects -> totalSelection;
+	if (klas == NULL) return theCurrentPraatObjects -> totalSelection;
 	long readableClassId = klas -> sequentialUniqueIdOfReadableClass;
 	if (readableClassId == 0) Melder_fatal (U"No sequential unique ID for class ", klas -> className, U".");
 	return theCurrentPraatObjects -> numberOfSelected [readableClassId];
@@ -169,26 +161,24 @@ int praat_numberOfSelected (ClassInfo klas) {
 
 void praat_deselect (int IOBJECT) {
 	if (! SELECTED) return;
-	SELECTED = false;
+	SELECTED = FALSE;
 	theCurrentPraatObjects -> totalSelection -= 1;
-	long readableClassId = theCurrentPraatObjects -> list [IOBJECT]. object -> classInfo -> sequentialUniqueIdOfReadableClass;
+	long readableClassId = ((Thing) theCurrentPraatObjects -> list [IOBJECT]. object) -> classInfo -> sequentialUniqueIdOfReadableClass;
 	Melder_assert (readableClassId != 0);
 	theCurrentPraatObjects -> numberOfSelected [readableClassId] -= 1;
 	if (! theCurrentPraatApplication -> batch && ! Melder_backgrounding) {
-		trace (U"deselecting object ", IOBJECT);
 		GuiList_deselectItem (praatList_objects, IOBJECT);
-		trace (U"deselected object ", IOBJECT);
 	}
 }
 
-void praat_deselectAll () { int IOBJECT; WHERE (1) praat_deselect (IOBJECT); }
+void praat_deselectAll (void) { int IOBJECT; WHERE (1) praat_deselect (IOBJECT); }
 
 void praat_select (int IOBJECT) {
 	if (SELECTED) return;
-	SELECTED = true;
+	SELECTED = TRUE;
 	theCurrentPraatObjects -> totalSelection += 1;
-	Thing object = theCurrentPraatObjects -> list [IOBJECT]. object;
-	Melder_assert (object);
+	Thing object = (Thing) theCurrentPraatObjects -> list [IOBJECT]. object;
+	Melder_assert (object != NULL);
 	long readableClassId = object -> classInfo -> sequentialUniqueIdOfReadableClass;
 	if (readableClassId == 0) Melder_fatal (U"No sequential unique ID for class ", object -> classInfo -> className, U".");
 	theCurrentPraatObjects -> numberOfSelected [readableClassId] += 1;
@@ -197,86 +187,87 @@ void praat_select (int IOBJECT) {
 	}
 }
 
-void praat_selectAll () { int IOBJECT; WHERE (1) praat_select (IOBJECT); }
+void praat_selectAll (void) { int IOBJECT; WHERE (1) praat_select (IOBJECT); }
 
-void praat_list_background () {
+void praat_list_background (void) {
 	int IOBJECT;
 	WHERE (SELECTED) GuiList_deselectItem (praatList_objects, IOBJECT);
 }
-void praat_list_foreground () {
+void praat_list_foreground (void) {
 	int IOBJECT;
 	WHERE (SELECTED) {
 		GuiList_selectItem (praatList_objects, IOBJECT);
 	}
 }
 
-Daata praat_onlyObject (ClassInfo klas) {
+Data praat_onlyObject (ClassInfo klas) {
 	int IOBJECT, result = 0, found = 0;
 	WHERE (SELECTED && CLASS == klas) { result = IOBJECT; found += 1; }
-	if (found != 1) return nullptr;
+	if (found != 1) return NULL;
 	return theCurrentPraatObjects -> list [result]. object;
 }
 
-Daata praat_firstObject (ClassInfo klas) {
+Data praat_firstObject (ClassInfo klas) {
 	int IOBJECT;
 	LOOP {
 		if (CLASS == klas) return theCurrentPraatObjects -> list [IOBJECT]. object;
 	}
-	return nullptr;   // this is often OK
+	return NULL;   // this is often OK
 }
 
-Daata praat_onlyObject_generic (ClassInfo klas) {
+Data praat_onlyObject_generic (ClassInfo klas) {
 	int IOBJECT, result = 0, found = 0;
 	WHERE (SELECTED && Thing_isSubclass (CLASS, klas)) { result = IOBJECT; found += 1; }
-	if (found != 1) return nullptr;
+	if (found != 1) return NULL;
 	return theCurrentPraatObjects -> list [result]. object;
 }
 
-Daata praat_firstObject_generic (ClassInfo klas) {
+Data praat_firstObject_generic (ClassInfo klas) {
 	int IOBJECT;
 	LOOP {
 		if (Thing_isSubclass (CLASS, klas)) return theCurrentPraatObjects -> list [IOBJECT]. object;
 	}
-	return nullptr;   // this is often OK
+	return NULL;   // this is often OK
 }
 
-praat_Object praat_onlyScreenObject () {
+praat_Object praat_onlyScreenObject (void) {
 	int IOBJECT, result = 0, found = 0;
 	WHERE (SELECTED) { result = IOBJECT; found += 1; }
 	if (found != 1) Melder_fatal (U"praat_onlyScreenObject: found ", found, U" objects instead of 1.");
 	return & theCurrentPraatObjects -> list [result];
 }
 
-Daata praat_firstObject_any () {
+Data praat_firstObject_any () {
 	int IOBJECT;
 	LOOP {
 		return theCurrentPraatObjects -> list [IOBJECT]. object;
 	}
-	return nullptr;   // this is often OK
+	return NULL;   // this is often OK
 }
 
-autoCollection praat_getSelectedObjects () {
-	autoCollection thee = Collection_create ();
+Collection praat_getSelectedObjects (void) {
+	autoCollection thee = Collection_create (NULL, 10);
+	Collection_dontOwnItems (thee.peek());
 	int IOBJECT;
 	LOOP {
-		iam_LOOP (Daata);
-		thy addItem_ref (me);
+		iam_LOOP (Data);
+		Collection_addItem (thee.peek(), me);
 	}
-	return thee;
+	return thee.transfer();
 }
 
 char32 *praat_name (int IOBJECT) { return str32chr (FULL_NAME, U' ') + 1; }
 
-void praat_write_do (UiForm dia, const char32 *extension) {
+void praat_write_do (Any dia, const char32 *extension) {
 	int IOBJECT, found = 0;
-	Daata data = nullptr;
+	Data data = NULL;
 	static MelderString defaultFileName { 0 };
-	WHERE (SELECTED) { if (! data) data = (Daata) OBJECT; found += 1; }
+	WHERE (SELECTED) { if (! data) data = (Data) OBJECT; found += 1; }
 	if (found == 1) {
 		MelderString_copy (& defaultFileName, data -> name);
 		if (defaultFileName.length > 50) { defaultFileName.string [50] = U'\0'; defaultFileName.length = 50; }
 		MelderString_append (& defaultFileName, U".", extension ? extension : Thing_className (data));
-	} else if (! extension) {
+	} else if (extension == NULL) {
 		MelderString_copy (& defaultFileName, U"praat.Collection");
 	} else {
 		MelderString_copy (& defaultFileName, U"praat.", extension);
@@ -284,55 +275,44 @@ void praat_write_do (UiForm dia, const char32 *extension) {
 	UiOutfile_do (dia, defaultFileName.string);
 }
 
-static void removeAllReferencesToMoribundEditor (Editor editor) {
+static void removeAllReferencesToEditor (Any editor) {
+	int iobject, ieditor;
 	/*
 	 * Remove all references to this editor.
 	 * It may be editing multiple objects.
 	 */
-	for (int iobject = 1; iobject <= theCurrentPraatObjects -> n; iobject ++)
-		for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
+	for (iobject = 1; iobject <= theCurrentPraatObjects -> n; iobject ++)
+		for (ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
 			if (theCurrentPraatObjects -> list [iobject]. editors [ieditor] == editor)
-				theCurrentPraatObjects -> list [iobject]. editors [ieditor] = nullptr;
+				theCurrentPraatObjects -> list [iobject]. editors [ieditor] = NULL;
 	if (praatP. editor == editor)
-		praatP. editor = nullptr;
+		praatP. editor = NULL;
 }
 
-/**
-	Remove the "object" from the list,
-	killing everything that has to do with the selection.
-*/
-static void praat_remove (int iobject, bool removeVisibly) {
-
+static void praat_remove (int iobject) {
+/* Remove the "object" from the list. */
+/* Kill everything to do with selection. */
+	int ieditor;
 	Melder_assert (iobject >= 1 && iobject <= theCurrentPraatObjects -> n);
 	if (theCurrentPraatObjects -> list [iobject]. isBeingCreated) {
-		theCurrentPraatObjects -> list [iobject]. isBeingCreated = false;
+		theCurrentPraatObjects -> list [iobject]. isBeingCreated = FALSE;
 		theCurrentPraatObjects -> totalBeingCreated --;
 	}
-	trace (U"deselect object ", iobject);
-	if (removeVisibly)
-		praat_deselect (iobject);
-	trace (U"deselected object ", iobject);
+	praat_deselect (iobject);
 
 	/*
 	 * To prevent synchronization problems, kill editors before killing the data.
 	 */
-	for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-		Editor editor = theCurrentPraatObjects -> list [iobject]. editors [ieditor];   // save this one reference
+	for (ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
+		Editor editor = (Editor) theCurrentPraatObjects -> list [iobject]. editors [ieditor];   /* Save this one reference. */
 		if (editor) {
-			trace (U"remove references to editor ", ieditor);
-			removeAllReferencesToMoribundEditor (editor);
-			trace (U"forget editor ", ieditor);
-			if (removeVisibly)
-				forget (editor);   // TODO: doesn't this call removeAllReferencesToMoribundEditor() again?
-			trace (U"forgeotten editor ", ieditor);
+			removeAllReferencesToEditor (editor);
+			forget (editor);
 		}
 	}
 	MelderFile_setToNull (& theCurrentPraatObjects -> list [iobject]. file);
-	trace (U"free name");
 	Melder_free (theCurrentPraatObjects -> list [iobject]. name);
-	trace (U"forget object");
-	forget (theCurrentPraatObjects -> list [iobject]. object);   // note: this might save a file-based object to file
-	trace (U"forgotten object");
+	forget (theCurrentPraatObjects -> list [iobject]. object);
 }
 
 void praat_cleanUpName (char32 *name) {
@@ -346,22 +326,29 @@ void praat_cleanUpName (char32 *name) {
 
 /***** objects + commands *****/
 
-static void praat_new_unpackCollection (autoCollection me, const char32* myName) {
-	for (long idata = 1; idata <= my size; idata ++) {
-		autoDaata object = autoDaata ((Daata) my at [idata]);
-		my at [idata] = nullptr;   // disown; once the elements are autoThings, the move will handle this
-		const char32 *name = object -> name ? object -> name : myName;
-		Melder_assert (name);
-		praat_new (object.move(), name);   // recurse
-	}
-}
-
-void praat_newWithFile (autoDaata me, MelderFile file, const char32 *myName) {
-	if (! me)
+void praat_newWithFile (Data me, MelderFile file, const char32 *myName) {
+	int IOBJECT, ieditor;   // must be local: praat_new can be called from within a loop!!!
+	if (me == NULL)
 		Melder_throw (U"No object was put into the list.");
-
+	/*
+	 * If my class is Collection, I'll have to be unpacked.
+	 */
 	if (my classInfo == classCollection) {
-		praat_new_unpackCollection (me.static_cast_move<structCollection>(), myName);
+		Collection list = (Collection) me;
+		try {
+			for (long idata = 1; idata <= list -> size; idata ++) {
+				Data object = (Data) list -> item [idata];
+				const char32 *name = object -> name ? object -> name : myName;
+				Melder_assert (name != NULL);
+				praat_new (object, name);   // recurse
+			}
+		} catch (MelderError) {
+			list -> size = 0;   // disown
+			forget (list);
+			throw;
+		}
+		list -> size = 0;   // disown
+		forget (list);
 		return;
 	}
 
@@ -377,15 +364,15 @@ void praat_newWithFile (autoDaata me, MelderFile file, const char32 *myName) {
 	} else {
 		MelderString_copy (& givenName, my name && my name [0] ? my name : U"untitled");
 	}
-	MelderString_append (& name, Thing_className (me.get()), U" ", givenName.string);
+	MelderString_append (& name, Thing_className (me), U" ", givenName.string);
 
 	if (theCurrentPraatObjects -> n == praat_MAXNUM_OBJECTS) {
-		//forget (me);
+		forget (me);
 		Melder_throw (U"The Object Window cannot contain more than ", praat_MAXNUM_OBJECTS, U" objects. You could remove some objects.");
 	}
 		
-	int IOBJECT = ++ theCurrentPraatObjects -> n;
-	Melder_assert (FULL_NAME == nullptr);
+	IOBJECT = ++ theCurrentPraatObjects -> n;
+	Melder_assert (FULL_NAME == NULL);
 	FULL_NAME = Melder_dup_f (name.string);   // all right to crash if out of memory
 	++ theCurrentPraatObjects -> uniqueId;
 
@@ -394,99 +381,98 @@ void praat_newWithFile (autoDaata me, MelderFile file, const char32 *myName) {
 			Melder_cat (theCurrentPraatObjects -> uniqueId, U". ", name.string),
 			theCurrentPraatObjects -> n);
 	}
+	OBJECT = me;
+	SELECTED = FALSE;
 	CLASS = my classInfo;
-	OBJECT = me.releaseToAmbiguousOwner();   // FIXME: should be move()
-	SELECTED = false;
-	for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
-		EDITOR [ieditor] = nullptr;
-	if (file) {
+	for (ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
+		EDITOR [ieditor] = NULL;
+	if (file != NULL) {
 		MelderFile_copy (file, & theCurrentPraatObjects -> list [IOBJECT]. file);
 	} else {
 		MelderFile_setToNull (& theCurrentPraatObjects -> list [IOBJECT]. file);
 	}
 	ID = theCurrentPraatObjects -> uniqueId;
-	theCurrentPraatObjects -> list [IOBJECT]. isBeingCreated = true;
-	Thing_setName (OBJECT, givenName.string);
+	theCurrentPraatObjects -> list [IOBJECT]. isBeingCreated = TRUE;
+	Thing_setName ((Thing) OBJECT, givenName.string);
 	theCurrentPraatObjects -> totalBeingCreated ++;
 }
 
 static MelderString thePraatNewName { 0 };
-void praat_new (autoDaata me) {
-	praat_newWithFile (me.move(), nullptr, U"");
+void praat_new (Data me) {
+	praat_newWithFile (me, NULL, U"");
 }
-void praat_new (autoDaata me, Melder_1_ARG) {
-	praat_newWithFile (me.move(), nullptr, Melder_1_ARG_CALL);
+void praat_new (Data me, Melder_1_ARG) {
+	praat_newWithFile (me, NULL, Melder_1_ARG_CALL);
 }
-void praat_new (autoDaata me, Melder_2_ARGS) {
+void praat_new (Data me, Melder_2_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_2_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_3_ARGS) {
+void praat_new (Data me, Melder_3_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_3_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_4_ARGS) {
+void praat_new (Data me, Melder_4_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_4_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_5_ARGS) {
+void praat_new (Data me, Melder_5_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_5_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_6_ARGS) {
+void praat_new (Data me, Melder_6_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_6_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_7_ARGS) {
+void praat_new (Data me, Melder_7_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_7_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_8_ARGS) {
+void praat_new (Data me, Melder_8_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_8_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
-void praat_new (autoDaata me, Melder_9_ARGS) {
+void praat_new (Data me, Melder_9_ARGS) {
 	MelderString_copy (& thePraatNewName, Melder_9_ARGS_CALL);
-	praat_new (me.move(), thePraatNewName.string);
+	praat_new (me, thePraatNewName.string);
 }
 
-void praat_updateSelection () {
+void praat_updateSelection (void) {
 	if (theCurrentPraatObjects -> totalBeingCreated) {
 		int IOBJECT;
 		praat_deselectAll ();
 		WHERE (theCurrentPraatObjects -> list [IOBJECT]. isBeingCreated) {
 			praat_select (IOBJECT);
-			theCurrentPraatObjects -> list [IOBJECT]. isBeingCreated = false;
+			theCurrentPraatObjects -> list [IOBJECT]. isBeingCreated = FALSE;
 		}
 		theCurrentPraatObjects -> totalBeingCreated = 0;
 		praat_show ();
 	}
 }
 
-static void gui_cb_list_selectionChanged (Thing /* boss */, GuiList_SelectionChangedEvent event) {
-	Melder_assert (event -> list == praatList_objects);
-	int IOBJECT;
-	bool first = true;
+static void gui_cb_list (void *void_me, GuiListEvent event) {
+	(void) event; (void) void_me;
+	int IOBJECT, first = TRUE;
 	WHERE (SELECTED) {
-		SELECTED = false;
-		long readableClassId = theCurrentPraatObjects -> list [IOBJECT]. object -> classInfo -> sequentialUniqueIdOfReadableClass;
+		SELECTED = FALSE;
+		long readableClassId = ((Thing) theCurrentPraatObjects -> list [IOBJECT]. object) -> classInfo -> sequentialUniqueIdOfReadableClass;
 		theCurrentPraatObjects -> numberOfSelected [readableClassId] --;
 		Melder_assert (theCurrentPraatObjects -> numberOfSelected [readableClassId] >= 0);
 	}
 	theCurrentPraatObjects -> totalSelection = 0;
 	long numberOfSelected;
 	long *selected = GuiList_getSelectedPositions (praatList_objects, & numberOfSelected);
-	if (selected) {
+	if (selected != NULL) {
 		for (long iselected = 1; iselected <= numberOfSelected; iselected ++) {
 			IOBJECT = selected [iselected];
-			SELECTED = true;
-			long readableClassId = theCurrentPraatObjects -> list [IOBJECT]. object -> classInfo -> sequentialUniqueIdOfReadableClass;
+			SELECTED = TRUE;
+			long readableClassId = ((Thing) theCurrentPraatObjects -> list [IOBJECT]. object) -> classInfo -> sequentialUniqueIdOfReadableClass;
 			theCurrentPraatObjects -> numberOfSelected [readableClassId] ++;
 			Melder_assert (theCurrentPraatObjects -> numberOfSelected [readableClassId] > 0);
 			UiHistory_write (first ? U"\nselectObject: \"" : U"\nplusObject: \"");
 			UiHistory_write_expandQuotes (FULL_NAME);
 			UiHistory_write (U"\"");
-			first = false;
+			first = FALSE;
 			theCurrentPraatObjects -> totalSelection += 1;
 		}
 		NUMvector_free <long> (selected, 1);
@@ -519,14 +505,14 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2) {
 
 void praat_removeObject (int i) {
 	int j, ieditor;
-	praat_remove (i, true);   // dangle
+	praat_remove (i);   /* Dangle. */
 	for (j = i; j < theCurrentPraatObjects -> n; j ++)
 		theCurrentPraatObjects -> list [j] = theCurrentPraatObjects -> list [j + 1];   // undangle but create second references
-	theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. name = nullptr;   // undangle or remove second reference
-	theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. object = nullptr;   // undangle or remove second reference
+	theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. name = NULL;   // undangle or remove second reference
+	theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. object = NULL;   // undangle or remove second reference
 	theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. isSelected = 0;
 	for (ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
-		theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. editors [ieditor] = nullptr;   // undangle or remove second reference
+		theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. editors [ieditor] = NULL;   // undangle or remove second reference
 	MelderFile_setToNull (& theCurrentPraatObjects -> list [theCurrentPraatObjects -> n]. file);   // undangle or remove second reference
 	-- theCurrentPraatObjects -> n;
 	if (! theCurrentPraatApplication -> batch) {
@@ -535,7 +521,6 @@ void praat_removeObject (int i) {
 }
 
 static void praat_exit (int exit_code) {
-//Melder_setTracing (true);
 	int IOBJECT;
 	#ifdef _WIN32
 		if (! theCurrentPraatApplication -> batch) {
@@ -600,21 +585,20 @@ static void praat_exit (int exit_code) {
 	}
 
 	trace (U"flush the file-based objects");
-	WHERE_DOWN (! MelderFile_isNull (& theCurrentPraatObjects -> list [IOBJECT]. file)) {
-		trace (U"removing object based on file ", & theCurrentPraatObjects -> list [IOBJECT]. file);
-		praat_remove (IOBJECT, false);
-	}
+	WHERE_DOWN (! MelderFile_isNull (& theCurrentPraatObjects -> list [IOBJECT]. file)) praat_remove (IOBJECT);
 	Melder_files_cleanUp ();   // in case a URL is open
 
 	trace (U"leave the program");
 	exit (exit_code);
 }
 
-static void cb_Editor_destruction (Editor me) {
-	removeAllReferencesToMoribundEditor (me);
+static void cb_Editor_destruction (Editor me, void *closure) {
+	(void) closure;
+	removeAllReferencesToEditor (me);   // remove reference(s) to moribund Editor
 }
 
-static void cb_Editor_dataChanged (Editor me) {
+static void cb_Editor_dataChanged (Editor me, void *closure) {
+	(void) closure;
 	for (int iobject = 1; iobject <= theCurrentPraatObjects -> n; iobject ++) {
 		bool editingThisObject = false;
 		/*
@@ -630,8 +614,8 @@ static void cb_Editor_dataChanged (Editor me) {
 			 * Notify all other editors associated with this object.
 			 */
 			for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-				Editor otherEditor = theCurrentPraatObjects -> list [iobject]. editors [ieditor];
-				if (otherEditor && otherEditor != me) {
+				Editor otherEditor = (Editor) theCurrentPraatObjects -> list [iobject]. editors [ieditor];
+				if (otherEditor != NULL && otherEditor != me) {
 					Editor_dataChanged (otherEditor);
 				}
 			}
@@ -639,13 +623,15 @@ static void cb_Editor_dataChanged (Editor me) {
 	}
 }
 
-static void cb_Editor_publication (Editor /* me */, autoDaata publication) {
+static void cb_Editor_publication (Editor me, void *closure, Data publication) {
 /*
    The default publish callback.
    Works nicely if the publisher invents a name.
 */
+	(void) me;
+	(void) closure;
 	try {
-		praat_new (publication.move(), U"");
+		praat_new (publication, U"");
 	} catch (MelderError) {
 		Melder_flushError ();
 	}
@@ -653,39 +639,39 @@ static void cb_Editor_publication (Editor /* me */, autoDaata publication) {
 }
 
 int praat_installEditor (Editor editor, int IOBJECT) {
-	if (! editor) return 0;
+	if (editor == NULL) return 0;
 	for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-		if (! EDITOR [ieditor]) {
+		if (EDITOR [ieditor] == NULL) {
 			EDITOR [ieditor] = editor;
-			Editor_setDestructionCallback (editor, cb_Editor_destruction);
-			Editor_setDataChangedCallback (editor, cb_Editor_dataChanged);
+			Editor_setDestructionCallback (editor, cb_Editor_destruction, NULL);
+			Editor_setDataChangedCallback (editor, cb_Editor_dataChanged, NULL);
 			if (! editor -> d_publicationCallback)
-				Editor_setPublicationCallback (editor, cb_Editor_publication);
+				Editor_setPublicationCallback (editor, cb_Editor_publication, NULL);
 			return 1;
 		}
 	}
-	//forget (editor);
+	forget (editor);
 	Melder_throw (U"(praat_installEditor:) Cannot have more than ", praat_MAXNUM_EDITORS, U" editors with one object.");
 }
 
 int praat_installEditor2 (Editor editor, int i1, int i2) {
-	if (! editor) return 0;
+	if (editor == NULL) return 0;
 	int ieditor1 = 0;
 	for (; ieditor1 < praat_MAXNUM_EDITORS; ieditor1 ++)
-		if (! theCurrentPraatObjects -> list [i1]. editors [ieditor1])
+		if (theCurrentPraatObjects -> list [i1]. editors [ieditor1] == NULL)
 			break;
 	int ieditor2 = 0;
 	for (; ieditor2 < praat_MAXNUM_EDITORS; ieditor2 ++)
-		if (! theCurrentPraatObjects -> list [i2]. editors [ieditor2])
+		if (theCurrentPraatObjects -> list [i2]. editors [ieditor2] == NULL)
 			break;
 	if (ieditor1 < praat_MAXNUM_EDITORS && ieditor2 < praat_MAXNUM_EDITORS) {
 		theCurrentPraatObjects -> list [i1]. editors [ieditor1] = theCurrentPraatObjects -> list [i2]. editors [ieditor2] = editor;
-		Editor_setDestructionCallback (editor, cb_Editor_destruction);
-		Editor_setDataChangedCallback (editor, cb_Editor_dataChanged);
+		Editor_setDestructionCallback (editor, cb_Editor_destruction, NULL);
+		Editor_setDataChangedCallback (editor, cb_Editor_dataChanged, NULL);
 		if (! editor -> d_publicationCallback)
-			Editor_setPublicationCallback (editor, cb_Editor_publication);
+			Editor_setPublicationCallback (editor, cb_Editor_publication, NULL);
 	} else {
-		//forget (editor);
+		forget (editor);
 		Melder_throw (U"(praat_installEditor2:) Cannot have more than ", praat_MAXNUM_EDITORS, U" editors with one object.");
 	}
 	return 1;
@@ -695,48 +681,48 @@ int praat_installEditor3 (Editor editor, int i1, int i2, int i3) {
 	if (! editor) return 0;
 	int ieditor1 = 0;
 	for (; ieditor1 < praat_MAXNUM_EDITORS; ieditor1 ++)
-		if (! theCurrentPraatObjects -> list [i1]. editors [ieditor1])
+		if (theCurrentPraatObjects -> list [i1]. editors [ieditor1] == NULL)
 			break;
 	int ieditor2 = 0;
 	for (; ieditor2 < praat_MAXNUM_EDITORS; ieditor2 ++)
-		if (! theCurrentPraatObjects -> list [i2]. editors [ieditor2])
+		if (theCurrentPraatObjects -> list [i2]. editors [ieditor2] == NULL)
 			break;
 	int ieditor3 = 0;
 	for (; ieditor3 < praat_MAXNUM_EDITORS; ieditor3 ++)
-		if (! theCurrentPraatObjects -> list [i3]. editors [ieditor3])
+		if (theCurrentPraatObjects -> list [i3]. editors [ieditor3] == NULL)
 			break;
 	if (ieditor1 < praat_MAXNUM_EDITORS && ieditor2 < praat_MAXNUM_EDITORS && ieditor3 < praat_MAXNUM_EDITORS) {
 		theCurrentPraatObjects -> list [i1]. editors [ieditor1] = theCurrentPraatObjects -> list [i2]. editors [ieditor2] = theCurrentPraatObjects -> list [i3]. editors [ieditor3] = editor;
-		Editor_setDestructionCallback (editor, cb_Editor_destruction);
-		Editor_setDataChangedCallback (editor, cb_Editor_dataChanged);
+		Editor_setDestructionCallback (editor, cb_Editor_destruction, NULL);
+		Editor_setDataChangedCallback (editor, cb_Editor_dataChanged, NULL);
 		if (! editor -> d_publicationCallback)
-			Editor_setPublicationCallback (editor, cb_Editor_publication);
+			Editor_setPublicationCallback (editor, cb_Editor_publication, NULL);
 	} else {
-		//forget (editor);
+		forget (editor);
 		Melder_throw (U"(praat_installEditor3:) Cannot have more than ", praat_MAXNUM_EDITORS, U" editors with one object.");
 	}
 	return 1;
 }
 
-int praat_installEditorN (Editor editor, DaataList objects) {
-	if (! editor) return 0;
+int praat_installEditorN (Editor editor, Ordered objects) {
+	long iOrderedObject, iPraatObject;
+	if (editor == NULL) return 0;
 	/*
 	 * First check whether all objects in the Ordered are also in the List of Objects (Praat crashes if not),
 	 * and check whether there is room to add an editor for each.
 	 */
-	for (long iOrderedObject = 1; iOrderedObject <= objects->size; iOrderedObject ++) {
-		Daata object = objects->at [iOrderedObject];
-		long iPraatObject = 1;
-		for (; iPraatObject <= theCurrentPraatObjects -> n; iPraatObject ++) {
+	for (iOrderedObject = 1; iOrderedObject <= objects -> size; iOrderedObject ++) {
+		Data object = (Data) objects -> item [iOrderedObject];
+		for (iPraatObject = 1; iPraatObject <= theCurrentPraatObjects -> n; iPraatObject ++) {
 			if (object == theCurrentPraatObjects -> list [iPraatObject]. object) {
 				int ieditor = 0;
 				for (; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-					if (! theCurrentPraatObjects -> list [iPraatObject]. editors [ieditor]) {
+					if (theCurrentPraatObjects -> list [iPraatObject]. editors [ieditor] == NULL) {
 						break;
 					}
 				}
 				if (ieditor >= praat_MAXNUM_EDITORS) {
-					//forget (editor);
+					forget (editor);
 					Melder_throw (U"Cannot view the same object in more than ", praat_MAXNUM_EDITORS, U" windows.");
 				}
 				break;
@@ -747,19 +733,18 @@ int praat_installEditorN (Editor editor, DaataList objects) {
 	/*
 	 * There appears to be room for all elements of the Ordered. The editor window can appear. Install the editor in all objects.
 	 */
-	for (long iOrderedObject = 1; iOrderedObject <= objects->size; iOrderedObject ++) {
-		Daata object = objects->at [iOrderedObject];
-		long iPraatObject = 1;
-		for (; iPraatObject <= theCurrentPraatObjects -> n; iPraatObject ++) {
+	for (iOrderedObject = 1; iOrderedObject <= objects -> size; iOrderedObject ++) {
+		Data object = (Data) objects -> item [iOrderedObject];
+		for (iPraatObject = 1; iPraatObject <= theCurrentPraatObjects -> n; iPraatObject ++) {
 			if (object == theCurrentPraatObjects -> list [iPraatObject]. object) {
 				int ieditor = 0;
 				for (; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-					if (! theCurrentPraatObjects -> list [iPraatObject]. editors [ieditor]) {
+					if (theCurrentPraatObjects -> list [iPraatObject]. editors [ieditor] == NULL) {
 						theCurrentPraatObjects -> list [iPraatObject]. editors [ieditor] = editor;
-						Editor_setDestructionCallback (editor, cb_Editor_destruction);
-						Editor_setDataChangedCallback (editor, cb_Editor_dataChanged);
+						Editor_setDestructionCallback (editor, cb_Editor_destruction, NULL);
+						Editor_setDataChangedCallback (editor, cb_Editor_dataChanged, NULL);
 						if (! editor -> d_publicationCallback)
-							Editor_setPublicationCallback (editor, cb_Editor_publication);
+							Editor_setPublicationCallback (editor, cb_Editor_publication, NULL);
 						break;
 					}
 				}
@@ -772,11 +757,11 @@ int praat_installEditorN (Editor editor, DaataList objects) {
 	return 1;
 }
 
-void praat_dataChanged (Daata object) {
+void praat_dataChanged (Any object) {
 	/*
 	 * This function can be called at error time, which is weird.
 	 */
-	char32 *saveError = nullptr;
+	char32 *saveError = NULL;
 	bool duringError = Melder_hasError ();
 	if (duringError) {
 		saveError = Melder_dup_f (Melder_getError ());
@@ -785,8 +770,8 @@ void praat_dataChanged (Daata object) {
 	int IOBJECT;
 	WHERE (OBJECT == object) {
 		for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-			Editor editor = EDITOR [ieditor];
-			if (editor) {
+			Editor editor = (Editor) EDITOR [ieditor];
+			if (editor != NULL) {
 				Editor_dataChanged (editor);
 			}
 		}
@@ -803,16 +788,15 @@ static void helpProc (const char32 *query) {
 		return;
 	}
 	try {
-		autoManual manual = Manual_create (query, theCurrentPraatApplication -> manPages, false);
-		manual.releaseToUser();
+		Manual_create (query, theCurrentPraatApplication -> manPages, false);
 	} catch (MelderError) {
 		Melder_flushError (U"help: no help on \"", query, U"\".");
 	}
 }
 
-static int publishProc (autoDaata me) {
+static int publishProc (void *anything) {
 	try {
-		praat_new (me.move(), U"");
+		praat_new ((Data) anything, U"");
 		praat_updateSelection ();
 		return 1;
 	} catch (MelderError) {
@@ -844,11 +828,11 @@ DO
 	praat_exit (0);
 END
 
-static void gui_cb_quit (Thing /* me */) {
-	DO_Quit (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+static void gui_cb_quit (void *) {
+	DO_Quit (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 }
 
-void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
+void praat_dontUsePictureWindow (void) { praatP.dontUsePictureWindow = true; }
 
 /********** INITIALIZATION OF THE PRAAT SHELL **********/
 
@@ -857,7 +841,7 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 		Melder_assert (signum == SIGUSR1);
 		#if 0
 			gboolean retval;
-			g_signal_emit_by_name (GTK_OBJECT (theCurrentPraatApplication -> topShell -> d_gtkWindow), "client-event", nullptr, & retval);
+			g_signal_emit_by_name (GTK_OBJECT (theCurrentPraatApplication -> topShell -> d_gtkWindow), "client-event", NULL, & retval);
 		#else
 			#if ALLOW_GDK_DRAWING && ! defined (NO_GRAPHICS)
 				GdkEventClient gevent;
@@ -875,7 +859,9 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 
 #if defined (UNIX)
 	#if ALLOW_GDK_DRAWING && ! defined (NO_GRAPHICS)
-		static gboolean cb_userMessage (GtkWidget /* widget */, GdkEventClient * /* event */, gpointer /* userData */) {
+		static gboolean cb_userMessage (GtkWidget widget, GdkEventClient *event, gpointer user_data) {
+			(void) widget;
+			(void) user_data;
 			//Melder_casual (U"client event called");
 			autofile f;
 			try {
@@ -890,7 +876,7 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 			{// scope
 				autoPraatBackground background;
 				try {
-					praat_executeScriptFromFile (& messageFile, nullptr);
+					praat_executeScriptFromFile (& messageFile, NULL);
 				} catch (MelderError) {
 					Melder_flushError (praatP.title, U": message not completely handled.");
 				}
@@ -900,10 +886,10 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 		}
 	#endif
 #elif defined (_WIN32)
-	static int cb_userMessage () {
+	static int cb_userMessage (void) {
 		autoPraatBackground background;
 		try {
-			praat_executeScriptFromFile (& messageFile, nullptr);
+			praat_executeScriptFromFile (& messageFile, NULL);
 		} catch (MelderError) {
 			Melder_flushError (praatP.title, U": message not completely handled.");
 		}
@@ -912,63 +898,65 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 	extern "C" char *sendpraat (void *display, const char *programName, long timeOut, const char *text);
 	extern "C" wchar_t *sendpraatW (void *display, const wchar_t *programName, long timeOut, const wchar_t *text);
 	static void cb_openDocument (MelderFile file) {
-		char32 text [kMelder_MAXPATH+25];
+		char32 text [500];
 		/*
 		 * The user dropped a file on the Praat icon, while Praat is already running.
+		 * Windows may have enclosed the path between quotes;
+		 * this is especially likely to happen for a path that contains spaces.
 		 */
 		Melder_sprint (text,500, U"Read from file... ", file -> path);
-		#ifdef __CYGWIN__
-			sendpraat (nullptr, Melder_peek32to8 (praatP.title), 0, Melder_peek32to8 (text));
-		#else
-			sendpraatW (nullptr, Melder_peek32toW (praatP.title), 0, Melder_peek32toW (text));
-		#endif
+		sendpraatW (NULL, Melder_peek32toW (praatP.title), 0, Melder_peek32toW (text));
 	}
 #elif cocoa
 	static int (*theUserMessageCallback) (char32 *message);
 	static void mac_setUserMessageCallback (int (*userMessageCallback) (char32 *message)) {
 		theUserMessageCallback = userMessageCallback;
 	}
-	static pascal OSErr mac_processSignal8 (const AppleEvent *theAppleEvent, AppleEvent * /* reply */, long /* handlerRefCon */) {
-		static bool duringAppleEvent = false;   // FIXME: may have to be atomic?
+	static pascal OSErr mac_processSignal8 (const AppleEvent *theAppleEvent, AppleEvent *reply, long handlerRefCon) {
+		static int duringAppleEvent = FALSE;
+		(void) reply;
+		(void) handlerRefCon;
 		if (! duringAppleEvent) {
 			char *buffer;
 			Size actualSize;
-			duringAppleEvent = true;
-			//AEInteractWithUser (kNoTimeOut, nullptr, nullptr);   // use time out of 0 to execute immediately (without bringing to foreground)
+			duringAppleEvent = TRUE;
+			//AEInteractWithUser (kNoTimeOut, NULL, NULL);   // use time out of 0 to execute immediately (without bringing to foreground)
 			ProcessSerialNumber psn;
 			GetCurrentProcess (& psn);
 			SetFrontProcess (& psn);
-			AEGetParamPtr (theAppleEvent, 1, typeUTF8Text, nullptr, nullptr, 0, & actualSize);
+			AEGetParamPtr (theAppleEvent, 1, typeUTF8Text, NULL, NULL, 0, & actualSize);
 			buffer = (char *) malloc ((size_t) actualSize);
-			AEGetParamPtr (theAppleEvent, 1, typeUTF8Text, nullptr, & buffer [0], actualSize, nullptr);
+			AEGetParamPtr (theAppleEvent, 1, typeUTF8Text, NULL, & buffer [0], actualSize, NULL);
 			if (theUserMessageCallback) {
 				autostring32 buffer32 = Melder_8to32 (buffer);
 				theUserMessageCallback (buffer32.peek());
 			}
 			free (buffer);
-			duringAppleEvent = false;
+			duringAppleEvent = FALSE;
 		}
 		return noErr;
 	}
-	static pascal OSErr mac_processSignal16 (const AppleEvent *theAppleEvent, AppleEvent * /* reply */, long /* handlerRefCon */) {
-		static bool duringAppleEvent = false;   // FIXME: may have to be atomic?
+	static pascal OSErr mac_processSignal16 (const AppleEvent *theAppleEvent, AppleEvent *reply, long handlerRefCon) {
+		static int duringAppleEvent = FALSE;
+		(void) reply;
+		(void) handlerRefCon;
 		if (! duringAppleEvent) {
 			char16 *buffer;
 			Size actualSize;
-			duringAppleEvent = true;
-			//AEInteractWithUser (kNoTimeOut, nullptr, nullptr);   // use time out of 0 to execute immediately (without bringing to foreground)
+			duringAppleEvent = TRUE;
+			//AEInteractWithUser (kNoTimeOut, NULL, NULL);   // use time out of 0 to execute immediately (without bringing to foreground)
 			ProcessSerialNumber psn;
 			GetCurrentProcess (& psn);
 			SetFrontProcess (& psn);
-			AEGetParamPtr (theAppleEvent, 1, typeUTF16ExternalRepresentation, nullptr, nullptr, 0, & actualSize);
+			AEGetParamPtr (theAppleEvent, 1, typeUTF16ExternalRepresentation, NULL, NULL, 0, & actualSize);
 			buffer = (char16 *) malloc ((size_t) actualSize);
-			AEGetParamPtr (theAppleEvent, 1, typeUTF16ExternalRepresentation, nullptr, & buffer [0], actualSize, nullptr);
+			AEGetParamPtr (theAppleEvent, 1, typeUTF16ExternalRepresentation, NULL, & buffer [0], actualSize, NULL);
 			if (theUserMessageCallback) {
 				autostring32 buffer32 = Melder_16to32 (buffer);
 				theUserMessageCallback (buffer32.peek());
 			}
 			free (buffer);
-			duringAppleEvent = false;
+			duringAppleEvent = FALSE;
 		}
 		return noErr;
 	}
@@ -981,8 +969,8 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 		}
 		return 0;
 	}
-	static int cb_quitApplication () {
-		DO_Quit (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+	static int cb_quitApplication (void) {
+		DO_Quit (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 		return 0;
 	}
 #elif defined (macintosh)
@@ -995,58 +983,31 @@ void praat_dontUsePictureWindow () { praatP.dontUsePictureWindow = true; }
 		}
 		return 0;
 	}
-	static int cb_quitApplication () {
-		DO_Quit (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+	static int cb_quitApplication (void) {
+		DO_Quit (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 		return 0;
 	}
 #endif
 
-static const char32 * thePraatStandAloneScriptText = nullptr;
+static const char32 * thePraatStandAloneScriptText = NULL;
 
 void praat_setStandAloneScriptText (const char32 *text) {
 	thePraatStandAloneScriptText = text;
 }
 
-static bool tryToAttachToTheCommandLine ()
-{
-	bool weHaveSucceeded = false;
-	#if defined (_WIN32)
-		/*
-		 * On Windows, console applications are automatically attached to the command line,
-		 * but Praat is always a Windows application instead, so command line attachment
-		 * has to be handled explicitly, as here.
-		 */
-		if (AttachConsole (ATTACH_PARENT_PROCESS)) {   // was Praat called from either a console window or a "system" command?
-			weHaveSucceeded = true;
-		}
-	#else
-		weHaveSucceeded = isatty (fileno (stdin)) || isatty (fileno (stdout)) || isatty (fileno (stderr));
-		/*
-			The result is `true` if Praat was called from a terminal window or some system() commands or Xcode,
-			and `false` if Praat was called from the Finder by double-clicking or dropping a file.
-			
-			FIXME:
-			The result is incorrectly `false` if the output is redirected to a file or pipe.
-			A proposed improvement is therefore:
-				isatty (fileno (stdin)) || isatty (fileno (stdout)) || isatty (fileno (stderr))
-			This might be incorrectly false only if all three streams are redirected, but this hasn't been tested yet.
-		*/
-	#endif
-	return weHaveSucceeded;
-}
-
-static void setThePraatLocale () {
+void praat_init (const char32 *title, unsigned int argc, char **argv) {
+	for (unsigned int iarg = 0; iarg < argc; iarg ++) {
+		//Melder_casual (U"arg ", iarg, U": <<", Melder_peek8to32 (argv [iarg]), U">>");
+	}
+	static char32 truncatedTitle [300];   // static because praatP.title will point into it
 	#if defined (UNIX)
 		setlocale (LC_ALL, "C");
-		//setenv ("PULSE_LATENCY_MSEC", "1", 0);   // Rafael Laboissiere, August 2014
+		setenv ("PULSE_LATENCY_MSEC", "1", 0);   // Rafael Laboissiere, August 2014
 	#elif defined (_WIN32)
 		setlocale (LC_ALL, "C");   // said to be superfluous
 	#elif defined (macintosh)
 		setlocale (LC_ALL, "en_US");   // required to make swprintf work correctly; the default "C" locale does not do that!
 	#endif
-}
-
-static void getSystemVersion () {
 	#ifdef macintosh
 		SInt32 sys1, sys2, sys3;
 		Gestalt ('sys1', & sys1);
@@ -1054,16 +1015,21 @@ static void getSystemVersion () {
 		Gestalt ('sys3', & sys3);
 		Melder_systemVersion = sys1 * 10000 + sys2 * 100 + sys3;
 	#endif
-}
-
-static void initializeNumericalLibraries () {
+	/*
+		Initialize numerical libraries.
+	*/
 	NUMmachar ();
 	NUMinit ();
 	Melder_alloc_init ();
 	Melder_message_init ();
-}
+	/*
+		Remember the current directory. Only useful for scripts run from batch.
+	*/
+	Melder_rememberShellDirectory ();
 
-static void installPraatShellPreferences () {
+	/*
+	 * Install the preferences of the Praat shell, and set the defaults.
+	 */
 	praat_statistics_prefs ();   // number of sessions, memory used...
 	praat_picture_prefs ();   // font...
 	Graphics_prefs ();
@@ -1074,157 +1040,106 @@ static void installPraatShellPreferences () {
 	Melder_textEncoding_prefs ();
 	Printer_prefs ();   // paper size, printer command...
 	structTextEditor :: f_preferences ();   // font size...
-}
-
-extern "C" void praatlib_init () {
-	setThePraatLocale ();   // FIXME: don't use the global locale
-	getSystemVersion ();
-	initializeNumericalLibraries ();
-	Melder_rememberShellDirectory ();
-	installPraatShellPreferences ();   // needed in the library, because this sets the defaults
-	praatP.argc = 0;
-	praatP.argv = nullptr;
-	praatP.argumentNumber = 1;
-	Melder_batch = true;
-	praatP.userWantsToOpen = false;
-	praatP.title = Melder_dup (U"Praatlib");
-	theCurrentPraatApplication -> batch = true;
-	Melder_getHomeDir (& homeDir);
-	praat_actions_init ();
-	praat_menuCommands_init ();
-	Thing_recognizeClassesByName (classCollection, classStrings, classManPages, classStringSet, nullptr);
-	Thing_recognizeClassByOtherName (classStringSet, U"SortedSetOfString");
-	Melder_backgrounding = true;
-	praat_addMenus (nullptr);
-	praat_addFixedButtons (nullptr);
-	praat_addMenus2 ();
-}
 
-void praat_init (const char32 *title, int argc, char **argv)
-{
-	bool weWereStartedFromTheCommandLine = tryToAttachToTheCommandLine ();
-
-	for (int iarg = 0; iarg < argc; iarg ++) {
-		//Melder_casual (U"arg ", iarg, U": <<", Melder_peek8to32 (argv [iarg]), U">>");
-	}
-	setThePraatLocale ();
-	getSystemVersion ();
-	initializeNumericalLibraries ();
-
-	/*
-		Remember the current directory. Useful only for scripts run from batch.
-	*/
-	Melder_rememberShellDirectory ();
-
-	installPraatShellPreferences ();
-
-	praatP.argc = argc;
-	praatP.argv = argv;
-	praatP.argumentNumber = 1;
+	uint32 iarg_batchName = 1;
 	const char32 *unknownCommandLineOption = nullptr;
 
-	/*
-	 * Running Praat from the command line.
-	 */
-	bool foundTheOpenOption = false, foundTheRunOption = false;
-	while (praatP.argumentNumber < argc && argv [praatP.argumentNumber] [0] == '-') {
-		if (strequ (argv [praatP.argumentNumber], "-")) {
-			praatP.hasCommandLineInput = true;
-		} else if (strequ (argv [praatP.argumentNumber], "--open")) {
-			foundTheOpenOption = true;
-			praatP.argumentNumber += 1;
-		} else if (strequ (argv [praatP.argumentNumber], "--run")) {
-			foundTheRunOption = true;
-			praatP.argumentNumber += 1;
-		} else if (strequ (argv [praatP.argumentNumber], "--no-pref-files")) {
-			praatP.ignorePreferenceFiles = true;
-			praatP.argumentNumber += 1;
-		} else if (strequ (argv [praatP.argumentNumber], "--no-plugins")) {
-			praatP.ignorePlugins = true;
-			praatP.argumentNumber += 1;
-		} else if (strnequ (argv [praatP.argumentNumber], "--pref-dir=", 11)) {
-			Melder_pathToDir (Melder_peek8to32 (argv [praatP.argumentNumber] + 11), & praatDir);
-			praatP.argumentNumber += 1;
-		} else if (strequ (argv [praatP.argumentNumber], "--version")) {
-			#define xstr(s) str(s)
-			#define str(s) #s
-			Melder_information (title, U" " xstr (PRAAT_VERSION_STR) " (" xstr (PRAAT_MONTH) " ", PRAAT_DAY, U" ", PRAAT_YEAR, U")");
-			exit (0);
-		} else if (strequ (argv [praatP.argumentNumber], "--help")) {
-			MelderInfo_open ();
-			MelderInfo_writeLine (U"Usage: praat [options] script-file-name [script-arguments]");
-			MelderInfo_writeLine (U"Options:");
-			MelderInfo_writeLine (U"  --open           regard the command line as files to be opened in the GUI");
-			MelderInfo_writeLine (U"  --run            regard the command line as a script to run, with its arguments");
-			MelderInfo_writeLine (U"                   (--run is superfluous when you use a Console or Terminal)");
-			MelderInfo_writeLine (U"  --no-pref-files  don't read or write the preferences file and the buttons file");
-			MelderInfo_writeLine (U"  --no-plugins     don't activate the plugins");
-			MelderInfo_writeLine (U"  --pref-dir=DIR   set the preferences directory to DIR");
-			MelderInfo_writeLine (U"  --version        print the Praat version");
-			MelderInfo_writeLine (U"  --help           print this list of command line options");
-			MelderInfo_writeLine (U"  -a, --ansi       Windows only: use ISO Latin-1 encoding instead of UTF-16LE");
-			MelderInfo_writeLine (U"                   (this option is needed when you redirect to a pipe or file");
-			MelderInfo_close ();
-			exit (0);
-		} else if (strequ (argv [praatP.argumentNumber], "-a") || strequ (argv [praatP.argumentNumber], "--ansi")) {
-			Melder_consoleIsAnsi = true;
-			praatP.argumentNumber += 1;
-		#if defined (macintosh)
-		} else if (strequ (argv [praatP.argumentNumber], "-NSDocumentRevisionsDebugMode")) {
-			(void) 0;   // ignore this option, which was added by Xcode
-			praatP.argumentNumber += 2;   // jump over the argument, which is usually "YES" (this jump works correctly even if this argument is missing)
-		} else if (strnequ (argv [praatP.argumentNumber], "-psn_", 5)) {
-			(void) 0;   // ignore this option, which was added by the Finder, perhaps when dragging a file on Praat (Process Serial Number)
-			praatP.argumentNumber += 1;
-		#endif
+	#if defined (UNIX) || defined (macintosh) || defined (_WIN32) && defined (CONSOLE_APPLICATION)
+		/*
+		 * Running the Praat shell from the Unix command line,
+		 * or running PRAATCON.EXE from the Windows command prompt:
+		 *    <programName> <scriptFileName>
+		 */
+		while (iarg_batchName < argc && argv [iarg_batchName] [0] == '-') {
+			if (strequ (argv [iarg_batchName], "-")) {
+				praatP.hasCommandLineInput = true;
+			} else if (strequ (argv [iarg_batchName], "-a") || strequ (argv [iarg_batchName], "--ansi")) {
+				Melder_consoleIsAnsi = true;
+				iarg_batchName += 1;
+			} else if (strequ (argv [iarg_batchName], "--no-pref-files")) {
+				praatP.ignorePreferenceFiles = true;
+				iarg_batchName += 1;
+			} else if (strequ (argv [iarg_batchName], "--no-plugins")) {
+				praatP.ignorePlugins = true;
+				iarg_batchName += 1;
+			} else if (strnequ (argv [iarg_batchName], "--pref-dir=", 11)) {
+				Melder_pathToDir (Melder_peek8to32 (argv [iarg_batchName] + 11), & praatDir);
+				iarg_batchName += 1;
+			#if defined (macintosh)
+			} else if (strequ (argv [iarg_batchName], "-NSDocumentRevisionsDebugMode")) {
+				(void) 0;   // ignore this option, which was added by Xcode
+				iarg_batchName += 2;   // jump over the argument, which is usually "YES" (this jump works correctly even if this argument is missing)
+			} else if (strnequ (argv [iarg_batchName], "-psn_", 5)) {
+				(void) 0;   // ignore this option, which was added by the Finder, perhaps when dragging a file on Praat (Process Serial Number)
+				iarg_batchName += 1;
+			#endif
+			} else {
+				unknownCommandLineOption = Melder_8to32 (argv [iarg_batchName]);
+				iarg_batchName = UINT32_MAX;   // ignore all other command line options
+				break;
+			}
+		}
+
+		/*
+		 * We now figure out the script file name, if there is any.
+		 * If there is a script file name, it is next on the command line
+		 * (not necessarily *last* on the line, because there may be script arguments after it).
+		 */
+		if (iarg_batchName < argc) {
+			MelderString_copy (& theCurrentPraatApplication -> batchName, Melder_peek8to32 (argv [iarg_batchName]));
+			if (praatP.hasCommandLineInput) Melder_throw (U"Cannot have both command line input and a script file.");
 		} else {
-			unknownCommandLineOption = Melder_8to32 (argv [praatP.argumentNumber]);
-			praatP.argumentNumber = INT32_MAX;   // ignore all other command line options
-			break;
+			MelderString_copy (& theCurrentPraatApplication -> batchName, U"");
 		}
-	}
-	weWereStartedFromTheCommandLine |= foundTheRunOption;   // some external system()-like commands don't make isatty return true, so we have to help
 
-	const bool thereIsAFileNameInTheArgumentList = ( praatP.argumentNumber < argc );
-	Melder_batch = weWereStartedFromTheCommandLine && thereIsAFileNameInTheArgumentList && ! foundTheOpenOption;
-	const bool fileNamesCameInByDropping = ( thereIsAFileNameInTheArgumentList && ! weWereStartedFromTheCommandLine );   // doesn't happen on the Mac
-	praatP.userWantsToOpen = foundTheOpenOption || fileNamesCameInByDropping;
+		Melder_batch = theCurrentPraatApplication -> batchName.string [0] != U'\0' || thePraatStandAloneScriptText != NULL;
 
-	if (Melder_batch) {
-		Melder_assert (praatP.argumentNumber < argc);
+		#if defined (_WIN32) && defined (CONSOLE_APPLICATION)
+			if (! Melder_batch) {
+				fprintf (stderr, "Usage: PRAATCON <scriptFileName>\n");
+				exit (0);
+			}
+		#endif
 		/*
-		 * We now get the script file name. It is next on the command line
-		 * (not necessarily *last* on the line, because there may be script arguments after it).
+		 * Running the Praat shell from the command line:
+		 *    praat -
 		 */
-		MelderString_copy (& theCurrentPraatApplication -> batchName, Melder_peek8to32 (argv [praatP.argumentNumber ++]));
-		if (praatP.hasCommandLineInput)
-			Melder_throw (U"Cannot have both command line input and a script file.");
-	} else {
-		MelderString_copy (& theCurrentPraatApplication -> batchName, U"");
-	}
-	//Melder_casual (U"Script file name <<", theCurrentPraatApplication -> batchName.string, U">>");
+		if (praatP.hasCommandLineInput) {
+			Melder_batch = true;
+		}
 
-	Melder_batch |= !! thePraatStandAloneScriptText;
+		/* Take from 'title' ("myProg 3.2" becomes "myProg") or from command line ("/ifa/praat" becomes "praat"). */
+		str32cpy (truncatedTitle, argc && argv [0] [0] ? Melder_peek8to32 (argv [0]) : title && title [0] ? title : U"praat");
+		//Melder_fatal (U"<", argv [0], U">");
+	#else
+		#if defined (_WIN32)
+			MelderString_copy (& theCurrentPraatApplication -> batchName,
+				argv [3] ? Melder_peek8to32 (argv [3]) : U"");   // the command line
+		#endif
+		Melder_batch = false;   // PRAAT.EXE on Windows is always interactive
+		str32cpy (truncatedTitle, title && title [0] ? title : U"praat");
+	#endif
+	theCurrentPraatApplication -> batch = Melder_batch;
 
 	/*
-	 * Running the Praat shell from the command line:
-	 *    praat -
+	 * Construct a program name like "myProg 3.2" by removing directory path.
 	 */
-	Melder_batch |= praatP.hasCommandLineInput;
-
-	praatP.title = Melder_dup (title && title [0] ? title : U"Praat");
-
-	theCurrentPraatApplication -> batch = Melder_batch;
+	char32 *p = str32rchr (truncatedTitle, Melder_DIRECTORY_SEPARATOR);
+	praatP.title = p ? p + 1 : truncatedTitle;
 
 	/*
 	 * Construct a program name like "myProg" for file and directory names.
 	 */
 	str32cpy (programName, praatP.title);
+	if ((p = str32chr (programName, U' ')) != NULL) *p = U'\0';
+	#if defined (_WIN32)
+		if ((p = str32chr (programName, U'.')) != NULL) *p = U'\0';   // chop off ".exe"
+	#endif
 
 	/*
 	 * Construct a main-window title like "MyProg 3.2".
 	 */
-	programName [0] = (char32) tolower ((int) programName [0]);
+	praatP.title [0] = (char32) toupper ((int) praatP.title [0]);
 
 	/*
 	 * Get home directory, e.g. "/home/miep/", or "/Users/miep/", or just "/".
@@ -1296,7 +1211,6 @@ void praat_init (const char32 *title, int argc, char **argv)
 		#endif
 		Melder_tracingToFile (& tracingFile);
 	}
-
 	#if defined (UNIX)
 		if (! Melder_batch) {
 			/*
@@ -1338,16 +1252,20 @@ void praat_init (const char32 *title, int argc, char **argv)
 	trace (U"initing menu commands");
 	praat_menuCommands_init ();
 
-	GuiWindow raam = nullptr;
+	GuiWindow raam = NULL;
 	if (Melder_batch) {
-		MelderString_empty (& theCurrentPraatApplication -> batchName);
-		for (unsigned int i = praatP.argumentNumber - 1; i < argc; i ++) {
-			if (i >= praatP.argumentNumber) MelderString_append (& theCurrentPraatApplication -> batchName, U" ");
-			bool needsQuoting = !! strchr (argv [i], ' ') && (i == praatP.argumentNumber - 1 || i < argc - 1);
-			if (needsQuoting) MelderString_append (& theCurrentPraatApplication -> batchName, U"\"");
-			MelderString_append (& theCurrentPraatApplication -> batchName, Melder_peek8to32 (argv [i]));
-			if (needsQuoting) MelderString_append (& theCurrentPraatApplication -> batchName, U"\"");
-		}
+		#if defined (UNIX) || defined (macintosh) || defined (_WIN32) && defined (CONSOLE_APPLICATION)
+			MelderString_empty (& theCurrentPraatApplication -> batchName);
+			for (unsigned int i = iarg_batchName; i < argc; i ++) {
+				int needsQuoting = strchr (argv [i], ' ') != NULL && (i == iarg_batchName || i < argc - 1);
+				if (i > 1) MelderString_append (& theCurrentPraatApplication -> batchName, U" ");
+				if (needsQuoting) MelderString_append (& theCurrentPraatApplication -> batchName, U"\"");
+				MelderString_append (& theCurrentPraatApplication -> batchName, Melder_peek8to32 (argv [i]));
+				if (needsQuoting) MelderString_append (& theCurrentPraatApplication -> batchName, U"\"");
+			}
+		#elif defined (_WIN32)
+			MelderString_copy (& theCurrentPraatApplication -> batchName, Melder_peek8to32 (argv [3]));
+		#endif
 	} else {
 		trace (U"starting the application");
 		Machine_initLookAndFeel (argc, argv);
@@ -1355,46 +1273,44 @@ void praat_init (const char32 *title, int argc, char **argv)
 		 * Start the application.
 		 */
 		#if gtk
-			trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+			trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 			g_set_application_name (Melder_peek32to8 (title));
-			trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+			trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		#elif cocoa
 			//[NSApplication sharedApplication];
 			[GuiCocoaApplication sharedApplication];
 		#elif defined (_WIN32)
 			argv [0] = Melder_32to8 (praatP. title);   // argc == 4
 			Gui_setOpenDocumentCallback (cb_openDocument);
-			GuiAppInitialize ("Praatwulg", argc, argv);
+			GuiAppInitialize ("Praatwulg", NULL, 0, & argc, argv, NULL, NULL);
 		#elif defined (macintosh)
-			GuiAppInitialize ("Praatwulg", argc, argv);
+			GuiAppInitialize ("Praatwulg", NULL, 0, & argc, argv, NULL, NULL);
 		#endif
 
 		trace (U"creating and installing the Objects window");
 		char32 objectWindowTitle [100];
 		Melder_sprint (objectWindowTitle,100, praatP.title, U" Objects");
 		double x, y;
-		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-		Gui_getWindowPositioningBounds (& x, & y, nullptr, nullptr);
-		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-		theCurrentPraatApplication -> topShell = raam =
-			GuiWindow_create (x + 10, y, WINDOW_WIDTH, WINDOW_HEIGHT, 450, 250,
-				objectWindowTitle, gui_cb_quit, nullptr, 0);
-		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
+		Gui_getWindowPositioningBounds (& x, & y, NULL, NULL);
+		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
+		theCurrentPraatApplication -> topShell = raam = GuiWindow_create (x + 10, y, WINDOW_WIDTH, WINDOW_HEIGHT, 450, 250,
+			objectWindowTitle, gui_cb_quit, NULL, 0);
+		trace (U"locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		#if motif
 			GuiApp_setApplicationShell (theCurrentPraatApplication -> topShell -> d_xmShell);
 		#endif
-		trace (U"before objects window shows locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"before objects window shows locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		GuiThing_show (raam);
-		trace (U"after objects window shows locale ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"after objects window shows locale ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 	}
-	Thing_recognizeClassesByName (classCollection, classStrings, classManPages, classStringSet, nullptr);
-	Thing_recognizeClassByOtherName (classStringSet, U"SortedSetOfString");
+	Thing_recognizeClassesByName (classCollection, classStrings, classManPages, classSortedSetOfString, NULL);
 	if (Melder_batch) {
 		Melder_backgrounding = true;
 		trace (U"adding menus without GUI");
-		praat_addMenus (nullptr);
+		praat_addMenus (NULL);
 		trace (U"adding fixed buttons without GUI");
-		praat_addFixedButtons (nullptr);
+		praat_addFixedButtons (NULL);
 	} else {
 
 		#ifdef macintosh
@@ -1402,7 +1318,7 @@ void praat_init (const char32 *title, int argc, char **argv)
 				AEInstallEventHandler (758934755, 0, (AEEventHandlerProcPtr) (mac_processSignal8), 0, false);   // for receiving sendpraat
 				AEInstallEventHandler (758934756, 0, (AEEventHandlerProcPtr) (mac_processSignal16), 0, false);   // for receiving sendpraatW
 			#endif
-			MelderGui_create (raam);   // BUG: default Melder_assert would call printf recursively!!!
+			MelderGui_create (raam);   /* BUG: default Melder_assert would call printf recursively!!! */
 		#endif
 		#if defined (macintosh) && useCarbon
 			trace (U"creating the menu bar along the top of the screen (Mac only)");
@@ -1416,7 +1332,7 @@ void praat_init (const char32 *title, int argc, char **argv)
 		trace (U"creating the object list in the Objects window");
 		GuiLabel_createShown (raam, 3, -250, Machine_getMainWindowMenuBarHeight () + 5, Machine_getMainWindowMenuBarHeight () + 5 + Gui_LABEL_HEIGHT, U"Objects:", 0);
 		praatList_objects = GuiList_create (raam, 0, -250, Machine_getMainWindowMenuBarHeight () + 26, -100, true, U" Objects ");
-		GuiList_setSelectionChangedCallback (praatList_objects, gui_cb_list_selectionChanged, nullptr);
+		GuiList_setSelectionChangedCallback (praatList_objects, gui_cb_list, 0);
 		GuiThing_show (praatList_objects);
 		praat_addFixedButtons (raam);
 
@@ -1443,19 +1359,19 @@ void praat_init (const char32 *title, int argc, char **argv)
 				Preferences_read (& prefsFile);
 			}
 		#endif
-		#if ! defined (macintosh)
+		#if ! defined (CONSOLE_APPLICATION) && ! defined (macintosh)
 			trace (U"initializing the Gui late");
 			MelderGui_create (theCurrentPraatApplication -> topShell);   // Mac: done this earlier
 		#endif
 		Melder_setHelpProc (helpProc);
 	}
-	Data_setPublishProc (publishProc);
-	theCurrentPraatApplication -> manPages = ManPages_create ().releaseToAmbiguousOwner();
+	Melder_setPublishProc (publishProc);
+	theCurrentPraatApplication -> manPages = ManPages_create ();
 
 	trace (U"creating the Picture window");
-	trace (U"before picture window shows: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+	trace (U"before picture window shows: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 	if (! praatP.dontUsePictureWindow) praat_picture_init ();
-	trace (U"after picture window shows: locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+	trace (U"after picture window shows: locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 
 	if (unknownCommandLineOption) {
 		Melder_fatal (U"Unrecognized command line option ", unknownCommandLineOption);
@@ -1471,7 +1387,7 @@ static void executeStartUpFile (MelderDir startUpDirectory, const char32 *fileNa
 		if (! MelderFile_readable (& startUp))
 			return;   // it's OK if the file doesn't exist
 		try {
-			praat_executeScriptFromFile (& startUp, nullptr);
+			praat_executeScriptFromFile (& startUp, NULL);
 		} catch (MelderError) {
 			Melder_flushError (praatP.title, U": start-up file ", & startUp, U" not completed.");
 		}
@@ -1485,11 +1401,7 @@ static void executeStartUpFile (MelderDir startUpDirectory, const char32 *fileNa
 			trace (U"keyval ", event -> keyval, U", type ", event -> type);
 			if ((event -> keyval == GDK_Tab || event -> keyval == GDK_ISO_Left_Tab) && event -> type == GDK_KEY_PRESS) {
 				trace (U"tab key pressed in window ", Melder_pointer (widget));
-				constexpr bool theTabKeyShouldWorkEvenIfNumLockIsOn = true;
-				constexpr uint32 theProbableNumLockModifierMask = GDK_MOD2_MASK;
-				constexpr uint32 modifiersToIgnore = ( theTabKeyShouldWorkEvenIfNumLockIsOn ? theProbableNumLockModifierMask : 0 );
-				constexpr uint32 modifiersNotToIgnore = GDK_MODIFIER_MASK & ~ modifiersToIgnore;
-				if ((event -> state & modifiersNotToIgnore) == 0) {
+				if ((event -> state & GDK_MODIFIER_MASK) == 0) {
 					if (GTK_IS_WINDOW (widget)) {
 						GtkWidget *shell = gtk_widget_get_toplevel (GTK_WIDGET (widget));
 						trace (U"tab pressed in GTK window ", Melder_pointer (shell));
@@ -1498,10 +1410,10 @@ static void executeStartUpFile (MelderDir startUpDirectory, const char32 *fileNa
 							trace (U"a tab callback exists");
 							void *tabClosure = g_object_get_data (G_OBJECT (widget), "tabClosure");
 							tabCallback (widget, tabClosure);
-							return true;
+							return TRUE;
 						}
 					}
-				} else if ((event -> state & modifiersNotToIgnore) == GDK_SHIFT_MASK) {
+				} else if ((event -> state & GDK_MODIFIER_MASK) == GDK_SHIFT_MASK) {
 					if (GTK_IS_WINDOW (widget)) {
 						GtkWidget *shell = gtk_widget_get_toplevel (GTK_WIDGET (widget));
 						trace (U"shift-tab pressed in GTK window ", Melder_pointer (shell));
@@ -1510,28 +1422,28 @@ static void executeStartUpFile (MelderDir startUpDirectory, const char32 *fileNa
 							trace (U"a shift tab callback exists");
 							void *tabClosure = g_object_get_data (G_OBJECT (widget), "shiftTabClosure");
 							tabCallback (widget, tabClosure);
-							return true;
+							return TRUE;
 						}
 					}
 				}
 			}
 			trace (U"end");
-			return false;   // pass event on
+			return FALSE;   // pass event on
 		}
 	#endif
 #endif
 
-void praat_run () {
+void praat_run (void) {
 	trace (U"adding menus, second round");
 	praat_addMenus2 ();
-	trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+	trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 
 	trace (U"adding the Quit command");
 	#if defined (macintosh) && useCarbon
-		praat_addMenuCommand (U"Objects", U"Praat", U"Quit", nullptr, praat_HIDDEN, DO_Quit);   // the Quit command is needed for scripts, not for the GUI
+		praat_addMenuCommand (U"Objects", U"Praat", U"Quit", 0, praat_HIDDEN, DO_Quit);   // the Quit command is needed for scripts, not for the GUI
 	#else
-		praat_addMenuCommand (U"Objects", U"Praat", U"-- quit --", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"Praat", U"Quit", nullptr, praat_UNHIDABLE + 'Q', DO_Quit);
+		praat_addMenuCommand (U"Objects", U"Praat", U"-- quit --", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"Praat", U"Quit", 0, praat_UNHIDABLE + 'Q', DO_Quit);
 	#endif
 
 	trace (U"read the preferences file, and notify those who want to be notified of this");
@@ -1565,7 +1477,7 @@ void praat_run () {
 
 	if (! MelderDir_isNull (& praatDir) && ! praatP.ignorePlugins) {
 		trace (U"install plug-ins");
-		trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		/* The Praat phase should remain praat_STARTING_UP,
 		 * because any added commands must not be included in the buttons file.
 		 */
@@ -1575,14 +1487,14 @@ void praat_run () {
 			autoStrings directoryNames = Strings_createAsDirectoryList (Melder_fileToPath (& searchPattern));
 			if (directoryNames -> numberOfStrings > 0) {
 				for (long i = 1; i <= directoryNames -> numberOfStrings; i ++) {
-					structMelderDir pluginDir { { 0 } };
-					structMelderFile plugin { 0 };
+					structMelderDir pluginDir = { { 0 } };
+					structMelderFile plugin = { 0 };
 					MelderDir_getSubdir (& praatDir, directoryNames -> strings [i], & pluginDir);
 					MelderDir_getFile (& pluginDir, U"setup.praat", & plugin);
 					if (MelderFile_readable (& plugin)) {
 						Melder_backgrounding = true;
 						try {
-							praat_executeScriptFromFile (& plugin, nullptr);
+							praat_executeScriptFromFile (& plugin, NULL);
 						} catch (MelderError) {
 							Melder_flushError (praatP.title, U": plugin ", & plugin, U" contains an error.");
 						}
@@ -1626,15 +1538,15 @@ void praat_run () {
 		Melder_assert (str32len (U"hello") == 5);
 		Melder_assert (str32ncmp (U"hellogoodbye", U"hellogee", 6) == 0);
 		Melder_assert (str32ncmp (U"hellogoodbye", U"hellogee", 7) > 0);
-		Melder_assert (str32str (U"hellogoodbye", U"ogo"));
-		Melder_assert (! str32str (U"hellogoodbye", U"oygo"));
+		Melder_assert (str32str (U"hellogoodbye", U"ogo") != NULL);
+		Melder_assert (str32str (U"hellogoodbye", U"oygo") == NULL);
 	}
 
 	if (sizeof (off_t) < 8)
 		Melder_fatal (U"sizeof(off_t) is less than 8. Compile Praat with -D_FILE_OFFSET_BITS=64.");
 
 	if (Melder_batch) {
-		if (thePraatStandAloneScriptText) {
+		if (thePraatStandAloneScriptText != NULL) {
 			try {
 				praat_executeScriptFromText (thePraatStandAloneScriptText);
 				praat_exit (0);
@@ -1652,12 +1564,22 @@ void praat_run () {
 			}
 		} else {
 			try {
-				//Melder_casual (U"Script <<", theCurrentPraatApplication -> batchName.string, U">>");
 				praat_executeScriptFromFileNameWithArguments (theCurrentPraatApplication -> batchName.string);
 				praat_exit (0);
 			} catch (MelderError) {
-				Melder_flushError (praatP.title, U": script command <<",
-					theCurrentPraatApplication -> batchName.string, U">> not completed.");
+				/*
+				 * Try to get the error message out; this is a bit complicated...
+				 */
+				structMelderFile batchFile { 0 };
+				try {
+					Melder_relativePathToFile (theCurrentPraatApplication -> batchName.string, & batchFile);
+				} catch (MelderError) {
+					praat_exit (-1);
+				}
+				#if defined (_WIN32) && ! defined (CONSOLE_APPLICATION)
+					MelderGui_create (NULL);
+				#endif
+				Melder_flushError (praatP.title, U": command file ", & batchFile, U" not completed.");
 				praat_exit (-1);
 			}
 		}
@@ -1680,11 +1602,11 @@ void praat_run () {
 						char32 *newline = str32chr (line, U'\n');
 						if (newline) *newline = U'\0';
 						try {
-							praat_executeCommand (nullptr, line);
+							praat_executeCommand (NULL, line);
 						} catch (MelderError) {
 							Melder_clearError ();   // ignore this line, but not necessarily the next
 						}
-						if (! newline) break;
+						if (newline == NULL) break;
 						line = newline + 1;
 					}
 				}
@@ -1692,43 +1614,69 @@ void praat_run () {
 		}
 
 		trace (U"sorting the commands");
-		trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+		trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 		praat_sortMenuCommands ();
 		praat_sortActions ();
 
-		if (praatP.userWantsToOpen) {
-			for (; praatP.argumentNumber < praatP.argc; praatP.argumentNumber ++) {
-				//Melder_casual (U"File to open <<", Melder_peek8to32 (theArgv [iarg]), U">>");
-				autostring32 text = Melder_dup (Melder_cat (U"Read from file... ",
-															Melder_peek8to32 (praatP.argv [praatP.argumentNumber])));
-				try {
-					praat_executeScriptFromText (text.peek());
-				} catch (MelderError) {
-					Melder_flushError ();
-				}
-			}
-		}
-
 		praatP.phase = praat_HANDLING_EVENTS;
 
 		#if gtk
 			//gtk_widget_add_events (G_OBJECT (theCurrentPraatApplication -> topShell), GDK_ALL_EVENTS_MASK);
 			trace (U"install GTK key snooper");
-			trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+			trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 			#if ALLOW_GDK_DRAWING
-				g_signal_connect (G_OBJECT (theCurrentPraatApplication -> topShell -> d_gtkWindow), "client-event",
-					G_CALLBACK (cb_userMessage), nullptr);
+				g_signal_connect (G_OBJECT (theCurrentPraatApplication -> topShell -> d_gtkWindow), "client-event", G_CALLBACK (cb_userMessage), NULL);
 			#endif
 			signal (SIGUSR1, cb_sigusr1);
 			#if ALLOW_GDK_DRAWING
 				gtk_key_snooper_install (theKeySnooper, 0);
 			#endif
 			trace (U"start the GTK event loop");
-			trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
+			trace (U"locale is ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 			gtk_main ();
 		#elif cocoa
 			[NSApp run];
 		#elif motif
+			#if defined (_WIN32)
+				if (theCurrentPraatApplication -> batchName.string [0] != U'\0') {
+					char32 text [500];
+					/*
+					 * The user dropped one or more files on the Praat icon, while Praat was not running yet.
+					 * Windows may have enclosed each path between quotes;
+					 * this is especially likely to happen for paths that contain spaces (which is usual).
+					 */
+
+					char32 *s = theCurrentPraatApplication -> batchName.string;
+					for (;;) {
+						bool endSeen = false;
+						while (*s == U' ' || *s == U'\n') s ++;
+						if (*s == '\0') break;
+						char32 *path = s;
+						if (*s == U'\"') {
+							path = ++ s;
+							while (*s != U'\"' && *s != U'\0') s ++;
+							if (*s == '\0') break;
+							Melder_assert (*s == U'\"');
+							*s = U'\0';
+						} else {
+							while (*s != U' ' && *s != U'\n' && *s != U'\0') s ++;
+							if (*s == U' ' || *s == U'\n') {
+								*s = U'\0';
+							} else {
+								endSeen = true;
+							}
+						}
+						autostring32 text = Melder_dup (Melder_cat (U"Read from file... ", path));
+						try {
+							praat_executeScriptFromText (text.peek());
+						} catch (MelderError) {
+							Melder_flushError ();
+						}
+						if (endSeen) break;
+						s ++;
+					}
+				}
+			#endif
 			for (;;) {
 				XEvent event;
 				GuiNextEvent (& event);
diff --git a/sys/praat.h b/sys/praat.h
index b0572c7..9035ed4 100644
--- a/sys/praat.h
+++ b/sys/praat.h
@@ -32,7 +32,7 @@
 
 /* Program example:
 // File main_Sybil.cpp: //
-int main (int argc, char **argv)
+int main (unsigned int argc, char **argv)
 {
 	praat_init (U"Praat_Sybil", argc, argv);   // Obligatory.
 	INCLUDE_LIBRARY (praat_Fon_init)   // Optional: inherit phonetic stuff.
@@ -56,14 +56,13 @@ To make any class string-readable, use Thing_recognizeClassesByName ().
 String-readable classes are known by Thing_newFromClassName () and can therefore
 be read by Data_readFromTextFile () and Data_readFromBinaryFile ().
 */
-void praat_init (const char32 *title, int argc, char **argv);
-void praat_run ();
+void praat_init (const char32 *title, unsigned int argc, char **argv);
+void praat_run (void);
 void praat_setStandAloneScriptText (const char32 *text);   // call before praat_init if you want to create a stand-alone application without Objects and Picture window
-extern "C" void praatlib_init ();   // for use in an application that uses Praatlib
 
 void praat_addAction (ClassInfo class1, int n1, ClassInfo class2, int n2, ClassInfo class3, int n3,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback);
-/* 'class2', 'class3', 'title', 'after', and 'callback' may be null; 'title' is reference-copied. */
+/* 'class2', 'class3', 'title', 'after', and 'callback' may be NULL; 'title' is reference-copied. */
 void praat_addAction1 (ClassInfo class1, int n1,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback);
 void praat_addAction2 (ClassInfo class1, int n1, ClassInfo class2, int n2,
@@ -80,7 +79,7 @@ void praat_addAction4 (ClassInfo class1, int n1, ClassInfo class2, int n2, Class
 		this function should throw an exception if the command failed,
 		and return 1 if the command was executed successfully;
 		this function will be called by 'praat' when the user clicks a menu command,
-		in which case 'sendingForm', 'args' and 'sendingString' and 'closure' will be null;
+		in which case 'sendingForm', 'args' and 'sendingString' and 'closure' will be NULL;
 		it is also called by scripts,
 		in which case 'args[1..n]' or 'sendingString' is the argument list (after the dots).
 		When called by Ui (after UiForm_create), 'sendingForm' is the UiForm, and 'closure'
@@ -114,18 +113,18 @@ void praat_addAction4 (ClassInfo class1, int n1, ClassInfo class2, int n2, Class
 #define praat_DEPTH_7  0x00070000
 #define praat_CTRL  0x00200000
 void praat_removeAction (ClassInfo class1, ClassInfo class2, ClassInfo class3, const char32 *title);
-	/* 'class2' and 'class3' may be null. */
-	/* 'title' may be null; reference-copied. */
+	/* 'class2' and 'class3' may be NULL. */
+	/* 'title' may be NULL; reference-copied. */
 
 GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, const char32 *title /* cattable */,
 	const char32 *after, unsigned long flags, UiCallback callback);
-/* All strings are reference-copied; 'title', 'after', and 'callback' may be null. */
+/* All strings are reference-copied; 'title', 'after', and 'callback' may be NULL. */
 
 #define praat_MAXNUM_EDITORS 5
 #include "Ui.h"
 typedef struct {
 	ClassInfo klas;   // the class
-	Daata object;   // the instance
+	Data object;   // the instance
 	char32 *name;   // the name of the object as it appears in the List
 	structMelderFile file;   // is this Object associated with a file?
 	long id;   // the unique number of the object
@@ -149,7 +148,7 @@ typedef struct {   /* Readonly */
 	int totalBeingCreated;
 	long uniqueId;
 } structPraatObjects, *PraatObjects;
-typedef struct {   // readonly
+typedef struct {   /* Readonly */
 	Graphics graphics;   /* The Graphics associated with the Picture window or HyperPage window or Demo window. */
 	int font, fontSize, lineType;
 	Graphics_Colour colour;
@@ -163,24 +162,24 @@ extern structPraatPicture theForegroundPraatPicture;
 extern PraatPicture theCurrentPraatPicture;
 	/* The global objects containing the state of the application; only reachable from interface files. */
 
-Daata praat_onlyObject (ClassInfo klas);
-	/* Returns a selected Daata of class 'klas'. */
-Daata praat_onlyObject_generic (ClassInfo klas);
-	/* Returns a selected Daata of class 'klas' or a subclass. */
-praat_Object praat_onlyScreenObject ();
+Data praat_onlyObject (ClassInfo klas);
+	/* Returns a selected Data of class 'klas'. */
+Data praat_onlyObject_generic (ClassInfo klas);
+	/* Returns a selected Data of class 'klas' or a subclass. */
+praat_Object praat_onlyScreenObject (void);
 char32 *praat_name (int iobject);
-void praat_write_do (UiForm dia, const char32 *extension);
-void praat_new (autoDaata me);
-void praat_new (autoDaata me, Melder_1_ARG);
-void praat_new (autoDaata me, Melder_2_ARGS);
-void praat_new (autoDaata me, Melder_3_ARGS);
-void praat_new (autoDaata me, Melder_4_ARGS);
-void praat_new (autoDaata me, Melder_5_ARGS);
-void praat_new (autoDaata me, Melder_6_ARGS);
-void praat_new (autoDaata me, Melder_7_ARGS);
-void praat_new (autoDaata me, Melder_8_ARGS);
-void praat_new (autoDaata me, Melder_9_ARGS);
-void praat_newWithFile (autoDaata me, MelderFile file, const char32 *name);
+void praat_write_do (Any dia, const char32 *extension);
+void praat_new (Data me);
+void praat_new (Data me, Melder_1_ARG);
+void praat_new (Data me, Melder_2_ARGS);
+void praat_new (Data me, Melder_3_ARGS);
+void praat_new (Data me, Melder_4_ARGS);
+void praat_new (Data me, Melder_5_ARGS);
+void praat_new (Data me, Melder_6_ARGS);
+void praat_new (Data me, Melder_7_ARGS);
+void praat_new (Data me, Melder_8_ARGS);
+void praat_new (Data me, Melder_9_ARGS);
+void praat_newWithFile (Data me, MelderFile file, const char32 *name);
 void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 
 /* Macros for description of forms (dialog boxes).
@@ -189,7 +188,7 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 	FORM (proc, title, helpString)
 		'proc' is the 'cb' argument of the corresponding VERB macro.
 		'title' is the title of the standard dialog, shown in its title bar.
-		'helpString' may be null.
+		'helpString' may be NULL.
 	INTEGER (name, initialString)
 	NATURAL (name, initialString)
 	REAL (name, initialString)
@@ -244,8 +243,8 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 #define FORM(proc,name,helpTitle) \
 	static void DO_##proc (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *buttonClosure) { \
 		static UiForm dia; \
-		if (! dia) { \
-			UiField radio = nullptr; \
+		if (dia == NULL) { \
+			Any radio = 0; \
 			(void) radio; \
 			dia = UiForm_create (theCurrentPraatApplication -> topShell, name, DO_##proc, buttonClosure, invokingButtonTitle, helpTitle);
 #define REAL(label,def)		UiForm_addReal (dia, label, def);
@@ -277,8 +276,8 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 #define FILE_OUT(label,def)	UiForm_addFileOut (dia, label, def);
 #define COLOUR(label,def)	UiForm_addColour (dia, label, def);
 #define CHANNEL(label,def)	UiForm_addChannel (dia, label, def);
-#define OK UiForm_finish (dia); } if (! sendingForm && ! args && ! sendingString) {
-#define OK2 } UiForm_finish (dia); } if (! sendingForm && ! args && ! sendingString) {
+#define OK UiForm_finish (dia); } if (sendingForm == NULL && args == NULL && sendingString == NULL) {
+#define OK2 } UiForm_finish (dia); } if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 #define SET_REAL(name,value)	UiForm_setReal (dia, name, value);
 #define SET_INTEGER(name,value)	UiForm_setInteger (dia, name, value);
 #define SET_STRING(name,value)	UiForm_setString (dia, name, value);
@@ -286,7 +285,7 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 
 #define DO \
 			UiForm_do (dia, modified); \
-		} else if (! sendingForm) { \
+		} else if (sendingForm == NULL) { \
 			trace (U"args ", Melder_pointer (args)); \
 			if (args) { \
 				UiForm_call (dia, narg, args, interpreter); \
@@ -301,7 +300,7 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 
 #define DO_ALTERNATIVE(alternative) \
 			UiForm_do (dia, modified); \
-		} else if (! sendingForm) { \
+		} else if (sendingForm == NULL) { \
 			trace (U"alternative args ", Melder_pointer (args)); \
 			try { \
 				if (args) { \
@@ -313,7 +312,7 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 				char32 *parkedError = Melder_dup_f (Melder_getError ()); \
 				Melder_clearError (); \
 				try { \
-					DO_##alternative (nullptr, narg, args, sendingString, interpreter, invokingButtonTitle, modified, buttonClosure); \
+					DO_##alternative (NULL, narg, args, sendingString, interpreter, invokingButtonTitle, modified, buttonClosure); \
 				} catch (MelderError) { \
 					Melder_clearError (); \
 					Melder_appendError (parkedError); \
@@ -366,17 +365,17 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 #define FORM_READ2(proc,title,help,allowMult) \
 	static void DO_##proc (UiForm sendingForm, int, Stackel args, const char32 *sendingString, Interpreter, const char32 *invokingButtonTitle, bool, void *okClosure) { \
 		static UiForm dia; \
-		if (! dia) \
+		if (dia == NULL) \
 			dia = UiInfile_create (theCurrentPraatApplication -> topShell, title, DO_##proc, okClosure, invokingButtonTitle, help, allowMult); \
-		if (! sendingForm && ! args && ! sendingString) { \
+		if (sendingForm == NULL && args == NULL && sendingString == NULL) { \
 			UiInfile_do (dia); \
 		} else { \
 			try { \
 				MelderFile file; \
 				int IOBJECT = 0; \
-				structMelderFile file2 { 0 }; \
+				structMelderFile file2 = { 0 }; \
 				(void) IOBJECT; \
-				if (! args && ! sendingString) { \
+				if (args == NULL && sendingString == NULL) { \
 					file = UiFile_getFile (dia); \
 				} else { \
 					Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); \
@@ -385,18 +384,18 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 
 #define FORM_WRITE(proc,title,help,ext) \
 	static void DO_##proc (UiForm sendingForm, int, Stackel args, const char32 *sendingString, Interpreter, const char32 *invokingButtonTitle, bool, void *okClosure) { \
-		static UiForm dia; \
-		if (! dia) \
+		static Any dia; \
+		if (dia == NULL) \
 			dia = UiOutfile_create (theCurrentPraatApplication -> topShell, title, DO_##proc, okClosure, invokingButtonTitle, help); \
-		if (! sendingForm && ! args && ! sendingString) { \
+		if (sendingForm == NULL && args == NULL && sendingString == NULL) { \
 			praat_write_do (dia, ext); \
 		} else { \
 			try { \
 				MelderFile file; \
 				int IOBJECT = 0; \
-				structMelderFile file2 { 0 }; \
+				structMelderFile file2 = { 0 }; \
 				(void) IOBJECT; \
-				if (! args && ! sendingString) { \
+				if (args == NULL && sendingString == NULL) { \
 					file = UiFile_getFile (dia); \
 				} else { \
 					Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); \
@@ -406,18 +405,18 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 
 #define FORM_WRITE2(proc,title,help,ext) \
 	static void DO_##proc (UiForm sendingForm, int, Stackel args, const char32 *sendingString, Interpreter, const char32 *invokingButtonTitle, bool, void *okClosure) { \
-		static UiForm dia; \
-		if (! dia) \
+		static Any dia; \
+		if (dia == NULL) \
 			dia = UiOutfile_create (theCurrentPraatApplication -> topShell, title, DO_##proc, okClosure, invokingButtonTitle, help); \
-		if (! sendingForm && ! args && ! sendingString) { \
+		if (sendingForm == NULL && args == NULL && sendingString == NULL) { \
 			praat_write_do (dia, ext); \
 		} else { \
 			try { \
 				MelderFile file; \
 				int IOBJECT = 0; \
-				structMelderFile file2 { 0 }; \
+				structMelderFile file2 = { 0 }; \
 				(void) IOBJECT; \
-				if (! args && ! sendingString) { \
+				if (args == NULL && sendingString == NULL) { \
 					file = UiFile_getFile (dia); \
 				} else { \
 					Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); \
@@ -460,9 +459,9 @@ void praat_name2 (char32 *name, ClassInfo klas1, ClassInfo klas2);
 #define ONLY(klas)  praat_onlyObject (klas)
 #define ONLY_GENERIC(klas)  praat_onlyObject_generic (klas)
 #define ONLY_OBJECT  (praat_onlyScreenObject () -> object)
-Daata praat_firstObject (ClassInfo klas);
-Daata praat_firstObject_generic (ClassInfo klas);
-Daata praat_firstObject_any ();
+Data praat_firstObject (ClassInfo klas);
+Data praat_firstObject_generic (ClassInfo klas);
+Data praat_firstObject_any ();
 #define FIRST(Klas)  (Klas) praat_firstObject (class##Klas)
 #define FIRST_GENERIC(Klas)  (Klas) praat_firstObject_generic (class##Klas)
 #define FIRST_ANY(Klas)  (Klas) praat_firstObject_any ()
@@ -472,14 +471,14 @@ Daata praat_firstObject_any ();
 
 /* Used by praat_Sybil.cpp, if you put an Editor on the screen: */
 int praat_installEditor (Editor editor, int iobject);
-/* This routine adds a reference to a new editor (unless it is null) to the screen object
+/* This routine adds a reference to a new editor (unless it is NULL) to the screen object
    which is in the list at position 'iobject'.
    It sets the destroyCallback and dataChangedCallback as appropriate for Praat:
-   the destroyCallback will set the now dangling reference to nullptr,
+   the destroyCallback will set the now dangling reference to NULL,
    so that a subsequent click on the "Edit" button will create a new editor;
    the dataChangedCallback will notify an open DataEditor with the same data,
    after that data will have changed.
-      Return value: normally 1, but 0 if 'editor' is null.
+      Return value: normally 1, but 0 if 'editor' is NULL.
    A typical calling sequence is:
 	DIRECT (Spectrogram_edit)
 		if (praat.batch) Melder_throw (U"Cannot edit a Spectrogram from batch.");
@@ -490,9 +489,9 @@ int praat_installEditor (Editor editor, int iobject);
 */
 int praat_installEditor2 (Editor editor, int iobject1, int iobject2);
 int praat_installEditor3 (Editor editor, int iobject1, int iobject2, int iobject3);
-int praat_installEditorN (Editor editor, DaataList objects);
+int praat_installEditorN (Editor editor, Ordered objects);
 
-void praat_dataChanged (Daata object);
+void praat_dataChanged (Any object);
 /* Call this after changing a screen object. */
 /* Associated editors and data editors will be notified (with Editor_dataChanged). */
 
@@ -506,7 +505,7 @@ void praat_picture_close ();
 /* For main.cpp */
 
 #define INCLUDE_LIBRARY(praat_xxx_init) \
-   { extern void praat_xxx_init (); praat_xxx_init (); }
+   { extern void praat_xxx_init (void); praat_xxx_init (); }
 #define INCLUDE_MANPAGES(manual_xxx_init) \
    { extern void manual_xxx_init (ManPages me); manual_xxx_init (theCurrentPraatApplication -> manPages); }
 
@@ -527,7 +526,7 @@ void praat_setLogo (double width_mm, double height_mm, void (*draw) (Graphics g)
 	praat_show ();   // Needed because the selection has changed.
 */
 void praat_removeObject (int i);   // i = 1..praat.n
-void praat_show ();   // forces an update of the dynamic menu
+void praat_show (void);   // forces an update of the dynamic menu
 void praat_updateSelection ();
 	/* If you require the correct selection immediately after calling praat_new. */
 
@@ -539,15 +538,11 @@ void praat_addCommandsToEditor (Editor me);
 #define heis_ONLY(klas)  klas him = static_cast<klas> (ONLY (class##klas))
 #define LOOP  for (IOBJECT = 1; IOBJECT <= theCurrentPraatObjects -> n; IOBJECT ++) if (SELECTED)
 
-autoCollection praat_getSelectedObjects ();
+Collection praat_getSelectedObjects ();
 
 struct autoPraatPicture {
 	autoPraatPicture () { praat_picture_open (); }
 	~autoPraatPicture () { praat_picture_close (); }
 };
 
-#if defined (_WIN32)
-	#define main wingwmain
-#endif
-
 /* End of file praat.h */
diff --git a/sys/praatP.h b/sys/praatP.h
index f8c2a45..a8ef294 100644
--- a/sys/praatP.h
+++ b/sys/praatP.h
@@ -21,10 +21,10 @@
 
 void praat_addActionScript (const char32 *className1, int n1, const char32 *className2, int n2, const char32 *className3, int n3,
 	const char32 *title, const char32 *after, int depth, const char32 *script);
-/* No strings may be null; unspecify them by giving an empty string. 'title' and 'script' are deep-copied. */
+/* No strings may be NULL; unspecify them by giving an empty string. 'title' and 'script' are deep-copied. */
 void praat_removeAction_classNames (const char32 *className1, const char32 *className2,
 	const char32 *className3, const char32 *title);
-/* No arguments may be null; unspecify them by giving an empty string. */
+/* No arguments may be NULL; unspecify them by giving an empty string. */
 /* 'title' is deep-copied. */
 void praat_hideAction (ClassInfo class1, ClassInfo class2, ClassInfo class3, const char32 *title);
 void praat_hideAction_classNames (const char32 *className1, const char32 *className2,
@@ -36,7 +36,7 @@ void praat_sortActions ();
 
 void praat_addMenuCommandScript (const char32 *window, const char32 *menu, const char32 *title,
 	const char32 *after, int depth, const char32 *script);
-/* All strings are deep-copied and may not be null; unspecify them by giving an empty string. */
+/* All strings are deep-copied and may not be NULL; unspecify them by giving an empty string. */
 /*
 	For the Praat objects window:
 	'window' is "Objects", 'menu' is "Praat", "New", "Open", "Help", "Preferences", "Goodies", or "Technical".
@@ -53,12 +53,12 @@ void praat_sortMenuCommands ();
 #define praat_MAXNUM_MENUS 20   /* Maximum number of added New, Open, Save, or Help menus. */
 #define praat_MAXNUM_FILE_TYPE_RECOGNIZERS 50   /* File types recognizable by 'Read from file...'. */
 
-Thing_define (Praat_Command, Thing) {
+typedef struct structPraat_Command {
 	ClassInfo class1, class2, class3, class4;   // selected classes
 	int32 n1, n2, n3, n4;   // number of selected objects of each class; 0 means "any number"
 	const char32 *title;   // button text = command text
 	UiCallback callback;   // multi-purpose
-		/* If both UiCallback::sendingForm and sendingString are null, this routine is an activate callback;
+		/* If both UiCallback::sendingForm and sendingString are NULL, this routine is an activate callback;
 			you should directly execute the command, or call UiForm_do(dialog) if you need arguments;
 			UiForm_do will call this routine again with sendingForm = dialog. */
 		/* If sendingForm exists, this routine is an ok callback,
@@ -78,10 +78,10 @@ Thing_define (Praat_Command, Thing) {
 	GuiThing button;
 	const char32 *window, *menu;
 	const char32 *script;   // if 'callback' equals DO_RunTheScriptFromAnyAddedMenuCommand
-	const char32 *after;   // title of previous command, often null
+	const char32 *after;   // title of previous command, often NULL
 	int32 uniqueID;   // for sorting the added commands
 	int32 sortingTail;
-};
+} *praat_Command;
 
 #define praat_STARTING_UP  1
 #define praat_READING_BUTTONS  2
@@ -121,7 +121,7 @@ void praat_foreground ();
 Editor praat_findEditorFromString (const char32 *string);
 Editor praat_findEditorById (long id);
 
-void praat_showLogo (bool autoPopDown);
+void praat_showLogo (int autoPopDown);
 
 /* Communication with praat_menuCommands.cpp: */
 void praat_menuCommands_init ();
@@ -129,7 +129,7 @@ void praat_menuCommands_exit ();
 int praat_doMenuCommand (const char32 *command, const char32 *arguments, Interpreter interpreter);   // 0 = not found
 int praat_doMenuCommand (const char32 *command, int narg, Stackel args, Interpreter interpreter);   // 0 = not found
 long praat_getNumberOfMenuCommands ();
-Praat_Command praat_getMenuCommand (long i);
+praat_Command praat_getMenuCommand (long i);
 
 /* Communication with praat_actions.cpp: */
 void praat_actions_show ();
@@ -140,14 +140,13 @@ void praat_saveAddedActions (MelderString *buffer);
 int praat_doAction (const char32 *command, const char32 *arguments, Interpreter interpreter);   // 0 = not found
 int praat_doAction (const char32 *command, int narg, Stackel args, Interpreter interpreter);   // 0 = not found
 long praat_getNumberOfActions ();   // for ButtonEditor
-Praat_Command praat_getAction (long i);   // for ButtonEditor
+praat_Command praat_getAction (long i);   // for ButtonEditor
 
 /* Communication with praat_statistics.cpp: */
 void praat_statistics_prefs ();   // at init time
 void praat_statistics_prefsChanged ();   // after reading prefs file
 void praat_statistics_exit ();   // at exit time
 void praat_reportMemoryUse ();
-void praat_reportSystemProperties ();
 void praat_reportGraphicalProperties ();
 void praat_reportIntegerProperties ();
 void praat_reportTextProperties ();
@@ -162,10 +161,6 @@ void praat_cleanUpName (char32 *name);
 void praat_list_renameAndSelect (int position, const char32 *name);
 
 extern struct PraatP {
-	int argc;
-	char **argv;
-	int argumentNumber;
-	bool userWantsToOpen;
 	bool dontUsePictureWindow;   // see praat_dontUsePictureWindow ()
 	bool ignorePreferenceFiles, ignorePlugins;
 	bool hasCommandLineInput;
diff --git a/sys/praat_actions.cpp b/sys/praat_actions.cpp
index 90e85de..c0a99f4 100644
--- a/sys/praat_actions.cpp
+++ b/sys/praat_actions.cpp
@@ -26,7 +26,9 @@
 #define BUTTON_LEFT  -240
 #define BUTTON_RIGHT -5
 
-static OrderedOf <structPraat_Command> theActions;
+#define praat_MAXNUM_LOOSE_COMMANDS  10000
+static long theNumberOfActions = 0;
+static struct structPraat_Command *theActions;
 static GuiMenu praat_writeMenu;
 static GuiMenuItem praat_writeMenuSeparator;
 static GuiForm praat_form;
@@ -35,10 +37,10 @@ static bool actionsInvisible = false;
 static void fixSelectionSpecification (ClassInfo *class1, int *n1, ClassInfo *class2, int *n2, ClassInfo *class3, int *n3) {
 /*
  * Function:
- *	sort the specification pairs *class(i), *n(i) according to class name, with null classes at the end.
+ *	sort the specification pairs *class(i), *n(i) according to class name, with NULL classes at the end.
  * Postconditions:
- *	if (*class2) !! *class1;
- *	if (*class3) !! *class2;
+ *	if (*class2 != NULL) *class1 != NULL;
+ *	if (*class3 != NULL) *class2 != NULL;
  *	(*class1) -> className <= (*class2) -> className <= (*class3) -> className;
  * Usage:
  *	Called by praat_addAction () and praat_removeAction ().
@@ -46,9 +48,9 @@ static void fixSelectionSpecification (ClassInfo *class1, int *n1, ClassInfo *cl
 
 	/* Fix unusual input bubblewise. */
 
-	if (! *class1 && *class2) { *class1 = *class2; *n1 = *n2; *class2 = nullptr; *n2 = 0; }
-	if (! *class2 && *class3) { *class2 = *class3; *n2 = *n3; *class3 = nullptr; *n3 = 0;
-		if (! *class1 && *class2) { *class1 = *class2; *n1 = *n2; *class2 = nullptr; *n2 = 0; } }
+	if (*class1 == NULL && *class2 != NULL) { *class1 = *class2; *n1 = *n2; *class2 = NULL; *n2 = 0; }
+	if (*class2 == NULL && *class3 != NULL) { *class2 = *class3; *n2 = *n3; *class3 = NULL; *n3 = 0;
+		if (*class1 == NULL && *class2 != NULL) { *class1 = *class2; *n1 = *n2; *class2 = NULL; *n2 = 0; } }
 
 	/* Now: if *class3, then *class2, and if *class2, then *class1.
 	 * Bubble-sort the input by class name.
@@ -73,37 +75,34 @@ static long lookUpMatchingAction (ClassInfo class1, ClassInfo class2, ClassInfo
  * Precondition:
  *	class1, class2, and class3 must be in sorted order.
  */
-	for (long i = 1; i <= theActions.size; i ++) {
-		Praat_Command action = theActions.at [i];
-		if (class1 == action -> class1 && class2 == action -> class2 &&
-		    class3 == action -> class3 && class4 == action -> class4 &&
-		    title && action -> title && str32equ (action -> title, title)) return i;
-	}
-	return 0;   // not found
+	for (long i = 1; i <= theNumberOfActions; i ++)
+		if (class1 == theActions [i]. class1 && class2 == theActions [i]. class2 &&
+		    class3 == theActions [i]. class3 && class4 == theActions [i]. class4 &&
+		    title && theActions [i]. title && str32equ (theActions [i]. title, title)) return i;
+	return 0;   /* Not found. */
 }
 
 void praat_addAction (ClassInfo class1, int n1, ClassInfo class2, int n2, ClassInfo class3, int n3,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback)
-{ praat_addAction4 (class1, n1, class2, n2, class3, n3, nullptr, 0, title, after, flags, callback); }
+{ praat_addAction4 (class1, n1, class2, n2, class3, n3, NULL, 0, title, after, flags, callback); }
 
 void praat_addAction1 (ClassInfo class1, int n1,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback)
-{ praat_addAction4 (class1, n1, nullptr, 0, nullptr, 0, nullptr, 0, title, after, flags, callback); }
+{ praat_addAction4 (class1, n1, NULL, 0, NULL, 0, NULL, 0, title, after, flags, callback); }
 
 void praat_addAction2 (ClassInfo class1, int n1, ClassInfo class2, int n2,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback)
-{ praat_addAction4 (class1, n1, class2, n2, nullptr, 0, nullptr, 0, title, after, flags, callback); }
+{ praat_addAction4 (class1, n1, class2, n2, NULL, 0, NULL, 0, title, after, flags, callback); }
 
 void praat_addAction3 (ClassInfo class1, int n1, ClassInfo class2, int n2, ClassInfo class3, int n3,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback)
-{ praat_addAction4 (class1, n1, class2, n2, class3, n3, nullptr, 0, title, after, flags, callback); }
+{ praat_addAction4 (class1, n1, class2, n2, class3, n3, NULL, 0, title, after, flags, callback); }
 
 void praat_addAction4 (ClassInfo class1, int n1, ClassInfo class2, int n2, ClassInfo class3, int n3, ClassInfo class4, int n4,
 	const char32 *title, const char32 *after, unsigned long flags, UiCallback callback)
 {
 	try {
-		int depth = flags, key = 0;
-		bool unhidable = false, hidden = false, attractive = false;
+		int depth = flags, unhidable = FALSE, hidden = FALSE, key = 0, attractive = 0;
 		unsigned long motifFlags = 0;
 		if (flags > 7) {
 			depth = ((flags & praat_DEPTH_7) >> 16);
@@ -136,66 +135,72 @@ void praat_addAction4 (ClassInfo class1, int n1, ClassInfo class2, int n2, Class
 					U"because the latter command does not exist.");
 			position = found + 1;   // after 'after'
 		} else {
-			position = theActions.size + 1;   // at end
+			position = theNumberOfActions + 1;   // at end
 		}
 
 		/*
-		 * Make new command.
+		 * Increment the command area.
+		 */
+		if (theNumberOfActions >= praat_MAXNUM_LOOSE_COMMANDS)
+			Melder_throw (U"Too many action commands (maximum ", praat_MAXNUM_LOOSE_COMMANDS, U").");
+		theNumberOfActions += 1;
+
+		/*
+		 * Make room for insertion.
 		 */
-		autoPraat_Command action = Thing_new (Praat_Command);
-		action -> class1 = class1;
-		action -> n1 = n1;
-		action -> class2 = class2;
-		action -> n2 = n2;
-		action -> class3 = class3;
-		action -> n3 = n3;
-		action -> class4 = class4;
-		action -> n4 = n4;
-		action -> title = Melder_dup_f (title);
-		action -> depth = depth;
-		action -> callback = callback;   // null for a separator
-		action -> button = nullptr;
-		action -> script = nullptr;
-		action -> hidden = hidden;
-		action -> unhidable = unhidable;
-		action -> attractive = attractive;
+		for (long i = theNumberOfActions; i > position; i --) theActions [i] = theActions [i - 1];
+		memset (& theActions [position], 0, sizeof (struct structPraat_Command));
 
 		/*
 		 * Insert new command.
 		 */
-		theActions. addItemAtPosition_move (action.move(), position);
+		theActions [position]. class1 = class1;
+		theActions [position]. n1 = n1;
+		theActions [position]. class2 = class2;
+		theActions [position]. n2 = n2;
+		theActions [position]. class3 = class3;
+		theActions [position]. n3 = n3;
+		theActions [position]. class4 = class4;
+		theActions [position]. n4 = n4;
+		theActions [position]. title = Melder_dup_f (title);
+		theActions [position]. depth = depth;
+		theActions [position]. callback = callback;   // NULL for a separator
+		theActions [position]. button = NULL;
+		theActions [position]. script = NULL;
+		theActions [position]. hidden = hidden;
+		theActions [position]. unhidable = unhidable;
+		theActions [position]. attractive = attractive;
 	} catch (MelderError) {
 		Melder_flushError ();
 	}
 }
 
-static void deleteDynamicMenu () {
+static void deleteDynamicMenu (void) {
 	if (praatP.phase != praat_HANDLING_EVENTS) return;
 	if (actionsInvisible) return;
 	static long numberOfDeletions;
 	trace (U"deletion #", ++ numberOfDeletions);
-	for (int i = 1; i <= theActions.size; i ++) {
-		Praat_Command action = theActions.at [i];
-		if (action -> button) {
-			trace (U"trying to destroy action ", i, U" of ", theActions.size, U": ", action -> title);
+	for (int i = 1; i <= theNumberOfActions; i ++) {
+		if (theActions [i]. button) {
+			trace (U"trying to destroy action ", i, U" of ", theNumberOfActions, U": ", theActions [i]. title);
 			#if gtk || cocoa
-				if (action -> button -> d_parent == praat_form) {
+				if (theActions [i]. button -> d_parent == praat_form) {
 					trace (U"destroy a label or a push button or a cascade button");
-					GuiObject_destroy (action -> button -> d_widget);
-				} else if (praat_writeMenu && action -> button -> d_parent == praat_writeMenu) {
+					GuiObject_destroy (theActions [i]. button -> d_widget);
+				} else if (praat_writeMenu && theActions [i]. button -> d_parent == praat_writeMenu) {
 					trace (U"destroying Save menu item");
-					GuiObject_destroy (action -> button -> d_widget);
+					GuiObject_destroy (theActions [i]. button -> d_widget);
 				}
 			#elif motif
-				if (action -> button -> classInfo == classGuiButton && action -> button -> d_widget -> subMenuId) {   // a cascade button (not a direct child of the form)?
+				if (theActions [i]. button -> classInfo == classGuiButton && theActions [i]. button -> d_widget -> subMenuId) {   // a cascade button (not a direct child of the form)?
 					trace (U"destroy the xm menu bar; this also destroys the xm button and the xm menu");
-					GuiObject_destroy (action -> button -> d_widget -> parent);   // the Motif parent, i.e. not d_parent -> d_widget !
-				} else if (action -> button -> d_parent == praat_form) {
+					GuiObject_destroy (theActions [i]. button -> d_widget -> parent);   // the Motif parent, i.e. not d_parent -> d_widget !
+				} else if (theActions [i]. button -> d_parent == praat_form) {
 					trace (U"destroy a label or a push button");
-					GuiObject_destroy (action -> button -> d_widget);
+					GuiObject_destroy (theActions [i]. button -> d_widget);
 				}
 			#endif
-			action -> button = nullptr;   // undangle
+			theActions [i]. button = NULL;
 		}
 	}
 	if (praat_writeMenu) {
@@ -210,12 +215,12 @@ static void deleteDynamicMenu () {
 			GuiObject_destroy (praat_writeMenu -> d_widget);
 			praat_writeMenu = GuiMenu_createInWindow (praatP.menuBar, U"Save", 0);
 		#endif
-		praat_writeMenuSeparator = nullptr;   // undangle
+		praat_writeMenuSeparator = NULL;
 	}
 	actionsInvisible = true;
 }
 
-static void updateDynamicMenu () {
+static void updateDynamicMenu (void) {
 	if (praatP.phase != praat_HANDLING_EVENTS) return;
 	praat_sortActions ();
 	deleteDynamicMenu ();
@@ -226,16 +231,16 @@ void praat_addActionScript (const char32 *className1, int n1, const char32 *clas
 	const char32 *title, const char32 *after, int depth, const char32 *script)
 {
 	try {
-		ClassInfo class1 = nullptr, class2 = nullptr, class3 = nullptr;
+		ClassInfo class1 = NULL, class2 = NULL, class3 = NULL;
 		Melder_assert (className1 && className2 && className3 && title && after && script);
 		if (str32len (className1)) {
-			class1 = Thing_classFromClassName (className1, nullptr);
+			class1 = Thing_classFromClassName (className1, NULL);
 		}
 		if (str32len (className2)) {
-			class2 = Thing_classFromClassName (className2, nullptr);
+			class2 = Thing_classFromClassName (className2, NULL);
 		}
 		if (str32len (className3)) {
-			class3 = Thing_classFromClassName (className3, nullptr);
+			class3 = Thing_classFromClassName (className3, NULL);
 		}
 		fixSelectionSpecification (& class1, & n1, & class2, & n2, & class3, & n3);
 
@@ -248,58 +253,66 @@ void praat_addActionScript (const char32 *className1, int n1, const char32 *clas
 		/*
 		 * If the button already exists, remove it.
 		 */
-		long found = lookUpMatchingAction (class1, class2, class3, nullptr, title);
+		long found = lookUpMatchingAction (class1, class2, class3, NULL, title);
 		if (found) {
-			theActions. removeItem (found);
+			theNumberOfActions --;
+			for (long i = found; i <= theNumberOfActions; i ++) theActions [i] = theActions [i + 1];
 		}
 
 		/*
 		 * Determine the position of the new command.
 		 */
 		long position;
-		if (str32len (after)) {   // search for existing command with same selection
-			long found = lookUpMatchingAction (class1, class2, class3, nullptr, after);
+		if (str32len (after)) {   /* Search for existing command with same selection. */
+			long found = lookUpMatchingAction (class1, class2, class3, NULL, after);
 			if (found) {
 				position = found + 1;   // after 'after'
 			} else {
-				position = theActions.size + 1;   // at end
+				position = theNumberOfActions + 1;   // at end
 			}
 		} else {
-			position = theActions.size + 1;   // at end
+			position = theNumberOfActions + 1;   // at end
 		}
 
 		/*
-		 * Create new command.
+		 * Increment the command area.
+		 */
+		if (theNumberOfActions >= praat_MAXNUM_LOOSE_COMMANDS)
+			Melder_throw (U"Too many actions (maximum is ", praat_MAXNUM_LOOSE_COMMANDS, U").");
+		theNumberOfActions += 1;
+
+		/*
+		 * Make room for insertion.
 		 */
-		autoPraat_Command action = Thing_new (Praat_Command);
-		action -> class1 = class1;
-		action -> n1 = n1;
-		action -> class2 = class2;
-		action -> n2 = n2;
-		action -> class3 = class3;
-		action -> n3 = n3;
-		action -> title = str32len (title) ? Melder_dup_f (title) : nullptr;   // allow old-fashioned untitled separators
-		action -> depth = depth;
-		action -> callback = str32len (script) ? DO_RunTheScriptFromAnyAddedMenuCommand : nullptr;   // null for a separator
-		action -> button = nullptr;
+		for (long i = theNumberOfActions; i > position; i --) theActions [i] = theActions [i - 1];
+		memset (& theActions [position], 0, sizeof (struct structPraat_Command));
+
+		/*
+		 * Insert new command.
+		 */
+		theActions [position]. class1 = class1;
+		theActions [position]. n1 = n1;
+		theActions [position]. class2 = class2;
+		theActions [position]. n2 = n2;
+		theActions [position]. class3 = class3;
+		theActions [position]. n3 = n3;
+		theActions [position]. title = str32len (title) ? Melder_dup_f (title) : NULL;   // allow old-fashioned untitled separators
+		theActions [position]. depth = depth;
+		theActions [position]. callback = str32len (script) ? DO_RunTheScriptFromAnyAddedMenuCommand : NULL;   // NULL for a separator
+		theActions [position]. button = NULL;
 		if (str32len (script) == 0) {
-			action -> script = nullptr;
+			theActions [position]. script = NULL;
 		} else {
 			structMelderFile file = { 0 };
 			Melder_relativePathToFile (script, & file);
-			action -> script = Melder_dup_f (Melder_fileToPath (& file));
+			theActions [position]. script = Melder_dup_f (Melder_fileToPath (& file));
 		}
-		action -> after = str32len (after) ? Melder_dup_f (after) : nullptr;
-		action -> phase = praatP.phase;
+		theActions [position]. after = str32len (after) ? Melder_dup_f (after) : NULL;
+		theActions [position]. phase = praatP.phase;
 		if (praatP.phase >= praat_READING_BUTTONS) {
 			static long uniqueID = 0;
-			action -> uniqueID = ++ uniqueID;
+			theActions [position]. uniqueID = ++ uniqueID;
 		}
-
-		/*
-		 * Insert new command.
-		 */
-		theActions. addItemAtPosition_move (action.move(), position);
 		updateDynamicMenu ();
 	} catch (MelderError) {
 		Melder_throw (U"Praat: script action not added.");
@@ -310,14 +323,16 @@ void praat_removeAction (ClassInfo class1, ClassInfo class2, ClassInfo class3, c
 	try {
 		int n1, n2, n3;
 		fixSelectionSpecification (& class1, & n1, & class2, & n2, & class3, & n3);
-		long found = lookUpMatchingAction (class1, class2, class3, nullptr, title);
+		long found = lookUpMatchingAction (class1, class2, class3, NULL, title);
 		if (! found) {
 			Melder_throw (U"Action command \"", class1 -> className,
 				class2 ? U" & ": U"", class2 -> className,
 				class3 ? U" & ": U"", class3 -> className,
 				U": ", title, U"\" not found.");
 		}
-		theActions. removeItem (found);
+		Melder_free (theActions [found]. title);
+		theNumberOfActions --;
+		for (long i = found; i <= theNumberOfActions; i ++) theActions [i] = theActions [i + 1];
 	} catch (MelderError) {
 		Melder_throw (U"Praat: action not removed.");
 	}
@@ -327,16 +342,16 @@ void praat_removeAction_classNames (const char32 *className1, const char32 *clas
 	const char32 *className3, const char32 *title)
 {
 	try {
-		ClassInfo class1 = nullptr, class2 = nullptr, class3 = nullptr;
+		ClassInfo class1 = NULL, class2 = NULL, class3 = NULL;
 		Melder_assert (className1 && className2 && className3 && title);
 		if (str32len (className1)) {
-			class1 = Thing_classFromClassName (className1, nullptr);
+			class1 = Thing_classFromClassName (className1, NULL);
 		}
 		if (str32len (className2)) {
-			class2 = Thing_classFromClassName (className2, nullptr);
+			class2 = Thing_classFromClassName (className2, NULL);
 		}
 		if (str32len (className3)) {
-			class3 = Thing_classFromClassName (className3, nullptr);
+			class3 = Thing_classFromClassName (className3, NULL);
 		}
 		praat_removeAction (class1, class2, class3, title);
 		updateDynamicMenu ();
@@ -349,17 +364,16 @@ void praat_hideAction (ClassInfo class1, ClassInfo class2, ClassInfo class3, con
 	try {
 		int n1, n2, n3;
 		fixSelectionSpecification (& class1, & n1, & class2, & n2, & class3, & n3);
-		long found = lookUpMatchingAction (class1, class2, class3, nullptr, title);
+		long found = lookUpMatchingAction (class1, class2, class3, NULL, title);
 		if (! found) {
-			Melder_throw (U"Praat: action command \"", class1 ? class1 -> className : nullptr,
-				class2 ? U" & ": nullptr, class2 ? class2 -> className : nullptr,
-				class3 ? U" & ": nullptr, class3 ? class3 -> className : nullptr,
+			Melder_throw (U"Praat: action command \"", class1 ? class1 -> className : NULL,
+				class2 ? U" & ": NULL, class2 ? class2 -> className : NULL,
+				class3 ? U" & ": NULL, class3 ? class3 -> className : NULL,
 				U": ", title, U"\" not found.");
 		}
-		Praat_Command action = theActions.at [found];
-		if (! action -> hidden) {
-			action -> hidden = true;
-			if (praatP.phase >= praat_READING_BUTTONS) action -> toggled = ! action -> toggled;
+		if (! theActions [found]. hidden) {
+			theActions [found]. hidden = TRUE;
+			if (praatP.phase >= praat_READING_BUTTONS) theActions [found]. toggled = ! theActions [found]. toggled;
 			updateDynamicMenu ();
 		}
 	} catch (MelderError) {
@@ -371,16 +385,16 @@ void praat_hideAction_classNames (const char32 *className1, const char32 *classN
 	const char32 *className3, const char32 *title)
 {
 	try {
-		ClassInfo class1 = nullptr, class2 = nullptr, class3 = nullptr;
+		ClassInfo class1 = NULL, class2 = NULL, class3 = NULL;
 		Melder_assert (className1 && className2 && className3 && title);
 		if (str32len (className1)) {
-			class1 = Thing_classFromClassName (className1, nullptr);
+			class1 = Thing_classFromClassName (className1, NULL);
 		}
 		if (str32len (className2)) {
-			class2 = Thing_classFromClassName (className2, nullptr);
+			class2 = Thing_classFromClassName (className2, NULL);
 		}
 		if (str32len (className3)) {
-			class3 = Thing_classFromClassName (className3, nullptr);
+			class3 = Thing_classFromClassName (className3, NULL);
 		}
 		praat_hideAction (class1, class2, class3, title);
 	} catch (MelderError) {
@@ -392,17 +406,16 @@ void praat_showAction (ClassInfo class1, ClassInfo class2, ClassInfo class3, con
 	try {
 		int n1, n2, n3;
 		fixSelectionSpecification (& class1, & n1, & class2, & n2, & class3, & n3);
-		long found = lookUpMatchingAction (class1, class2, class3, nullptr, title);
+		long found = lookUpMatchingAction (class1, class2, class3, NULL, title);
 		if (! found) {
-			Melder_throw (U"Action command \"", class1 ? class1 -> className : nullptr,
-				class2 ? U" & ": nullptr, class2 ? class2 -> className : nullptr,
-				class3 ? U" & ": nullptr, class3 ? class3 -> className : nullptr,
+			Melder_throw (U"Action command \"", class1 ? class1 -> className : NULL,
+				class2 ? U" & ": NULL, class2 ? class2 -> className : NULL,
+				class3 ? U" & ": NULL, class3 ? class3 -> className : NULL,
 				U": ", title, U"\" not found.");
 		}
-		Praat_Command action = theActions.at [found];
-		if (action -> hidden) {
-			action -> hidden = false;
-			if (praatP.phase >= praat_READING_BUTTONS) action -> toggled = ! action -> toggled;
+		if (theActions [found]. hidden) {
+			theActions [found]. hidden = FALSE;
+			if (praatP.phase >= praat_READING_BUTTONS) theActions [found]. toggled = ! theActions [found]. toggled;
 			updateDynamicMenu ();
 		}
 	} catch (MelderError) {
@@ -414,16 +427,16 @@ void praat_showAction_classNames (const char32 *className1, const char32 *classN
 	const char32 *className3, const char32 *title)
 {
 	try {
-		ClassInfo class1 = nullptr, class2 = nullptr, class3 = nullptr;
+		ClassInfo class1 = NULL, class2 = NULL, class3 = NULL;
 		Melder_assert (className1 && className2 && className3 && title);
 		if (str32len (className1)) {
-			class1 = Thing_classFromClassName (className1, nullptr);
+			class1 = Thing_classFromClassName (className1, NULL);
 		}
 		if (str32len (className2)) {
-			class2 = Thing_classFromClassName (className2, nullptr);
+			class2 = Thing_classFromClassName (className2, NULL);
 		}
 		if (str32len (className3)) {
-			class3 = Thing_classFromClassName (className3, nullptr);
+			class3 = Thing_classFromClassName (className3, NULL);
 		}
 		praat_showAction (class1, class2, class3, title);
 	} catch (MelderError) {
@@ -432,10 +445,10 @@ void praat_showAction_classNames (const char32 *className1, const char32 *classN
 }
 
 static int compareActions (const void *void_me, const void *void_thee) {
-	Praat_Command me = * (Praat_Command *) void_me, thee = * (Praat_Command *) void_thee;
+	praat_Command me = (praat_Command) void_me, thee = (praat_Command) void_thee;
 	int compare;
 	compare = str32cmp (my class1 -> className, thy class1 -> className);
-	if (compare) return my class1 == classDaata ? -1 : thy class1 == classDaata ? 1 : compare;
+	if (compare) return my class1 == classData ? -1 : thy class1 == classData ? 1 : compare;
 	if (my class2) {
 		if (! thy class2) return 1;
 		compare = str32cmp (my class2 -> className, thy class2 -> className);
@@ -450,19 +463,17 @@ static int compareActions (const void *void_me, const void *void_thee) {
 	return 1;
 }
 
-void praat_sortActions () {
-	for (long i = 1; i <= theActions.size; i ++) {
-		Praat_Command action = theActions.at [i];
-		action -> sortingTail = i;
-	}
-	qsort (& theActions.at [1], theActions.size, sizeof (Praat_Command), compareActions);
+void praat_sortActions (void) {
+	for (long i = 1; i <= theNumberOfActions; i ++)
+		theActions [i]. sortingTail = i;
+	qsort (& theActions [1], theNumberOfActions, sizeof (struct structPraat_Command), compareActions);
 }
 
 static const char32 *numberString (int number) {
 	return number == 1 ? U"one" : number == 2 ? U"two" : number == 3 ? U"three" : U"any number of";
 }
 static const char32 *classString (ClassInfo klas) {
-	return klas == classDaata ? U"" : klas -> className;
+	return klas == classData ? U"" : klas -> className;
 }
 static const char32 *objectString (int number) {
 	return number == 1 ? U"object" : U"objects";
@@ -471,14 +482,14 @@ static bool allowExecutionHook (void *closure) {
 	UiCallback callback = (UiCallback) closure;
 	Melder_assert (sizeof (callback) == sizeof (void *));
 	long numberOfMatchingCallbacks = 0, firstMatchingCallback = 0;
-	for (long i = 1; i <= theActions.size; i ++) {
-		Praat_Command me = theActions.at [i];
+	for (long i = 1; i <= theNumberOfActions; i ++) {
+		praat_Command me = & theActions [i];
 		if (my callback == callback) {
 			int sel1, sel2 = 0, sel3 = 0, sel4 = 0;
 			if (! my class1) Melder_throw (U"No class1???");
 			numberOfMatchingCallbacks += 1;
 			if (! firstMatchingCallback) firstMatchingCallback = i;
-			sel1 = my class1 == classDaata ? theCurrentPraatObjects -> totalSelection : praat_numberOfSelected (my class1);
+			sel1 = my class1 == classData ? theCurrentPraatObjects -> totalSelection : praat_numberOfSelected (my class1);
 			if (sel1 == 0) continue;
 			if (my class2 && (sel2 = praat_numberOfSelected (my class2)) == 0) continue;
 			if (my class3 && (sel3 = praat_numberOfSelected (my class3)) == 0) continue;
@@ -489,7 +500,7 @@ static bool allowExecutionHook (void *closure) {
 		}
 	}
 	if (numberOfMatchingCallbacks == 1) {
-		Praat_Command me = theActions.at [firstMatchingCallback];
+		praat_Command me = & theActions [firstMatchingCallback];
 		Melder_appendError (U"Selection changed! It should be:");
 		if (my class1) Melder_appendError (U"   ", numberString (my n1), U" ", classString (my class1), U" ", objectString (my n1));
 		if (my class2) Melder_appendError (U"   ", numberString (my n2), U" ", classString (my class2), U" ", objectString (my n2));
@@ -502,41 +513,58 @@ static bool allowExecutionHook (void *closure) {
 	return false;
 }
 
-static void do_menu (Praat_Command me, bool modified) {
-	if (my callback == DO_RunTheScriptFromAnyAddedMenuCommand) {
-		UiHistory_write (U"\nrunScript: ");
-		try {
-			DO_RunTheScriptFromAnyAddedMenuCommand (nullptr, 0, nullptr, my script, nullptr, nullptr, false, nullptr);
-		} catch (MelderError) {
-			Melder_flushError (U"Command \"", my title, U"\" not executed.");
+static void do_menu (I, bool modified) {
+/*
+ *	Convert a Gui callback into a Ui callback, and catch modifier keys and special mouse buttons.
+ *	Call that callback!
+ *	Catch the error queue for menu commands without dots (...).
+ */
+	UiCallback callback = (UiCallback) void_me;
+	for (long i = 1; i <= theNumberOfActions; i ++) {
+		praat_Command me = & theActions [i];
+		if (my callback == callback) {
+			if (my title != NULL && ! str32str (my title, U"...")) {
+				UiHistory_write (U"\n");
+				UiHistory_write_colonize (my title);
+			}
+			Ui_setAllowExecutionHook (allowExecutionHook, (void *) callback);   // BUG: one shouldn't assign a function pointer to a void pointer
+			try {
+				callback (NULL, 0, NULL, NULL, NULL, my title, modified, NULL);
+			} catch (MelderError) {
+				Melder_flushError (U"Command \"", my title, U"\" not executed.");
+			}
+			Ui_setAllowExecutionHook (NULL, NULL);
+			praat_updateSelection (); return;
+		}
+		if (my callback == DO_RunTheScriptFromAnyAddedMenuCommand && my script == (void *) void_me) {
+			if (my title != NULL && ! str32str (my title, U"...")) {
+				UiHistory_write (U"\nexecute ");
+				UiHistory_write (my script);
+			} else {
+				UiHistory_write (U"\nexecute \"");
+				UiHistory_write (my script);
+				UiHistory_write (U"\"");
+			}
+			try {
+				DO_RunTheScriptFromAnyAddedMenuCommand (NULL, 0, NULL, my script, NULL, NULL, false, NULL);
+			} catch (MelderError) {
+				Melder_flushError (U"Command \"", my title, U"\" not executed.");
+			}
+			praat_updateSelection (); return;
 		}
-		praat_updateSelection (); return;
-	} else {
-		if (my title && ! str32str (my title, U"...")) {
-			UiHistory_write (U"\n");
-			UiHistory_write (my title);
-		}
-		Ui_setAllowExecutionHook (allowExecutionHook, (void *) my callback);   // BUG: one shouldn't assign a function pointer to a void pointer
-		try {
-			my callback (nullptr, 0, nullptr, nullptr, nullptr, my title, modified, nullptr);
-		} catch (MelderError) {
-			Melder_flushError (U"Command \"", my title, U"\" not executed.");
-		}
-		Ui_setAllowExecutionHook (nullptr, nullptr);
-		praat_updateSelection (); return;
 	}
 }
 
-static void cb_menu (Praat_Command me, GuiMenuItemEvent event) {
+static void cb_menu (GUI_ARGS) {
 	bool modified = event -> shiftKeyPressed || event -> commandKeyPressed || event -> optionKeyPressed || event -> extraControlKeyPressed;
-	do_menu (me, modified);
+	do_menu (void_me, modified);
 }
 
-static void gui_button_cb_menu (Praat_Command me, GuiButtonEvent event) {
-	do_menu (me, event -> shiftKeyPressed | event -> commandKeyPressed | event -> optionKeyPressed | event -> extraControlKeyPressed);
+static void gui_button_cb_menu (I, GuiButtonEvent event) {
+	do_menu (void_me, event -> shiftKeyPressed | event -> commandKeyPressed | event -> optionKeyPressed | event -> extraControlKeyPressed);
 }
 
-void praat_actions_show () {
+void praat_actions_show (void) {
 	#if defined (macintosh)
 		const int BUTTON_VSPACING = 8;
 	#else
@@ -558,51 +586,50 @@ void praat_actions_show () {
 		if (theCurrentPraatObjects -> totalSelection != 0 && ! Melder_backgrounding)
 			GuiThing_setSensitive (praat_writeMenu, true);
 	}
-	for (long i = 1; i <= theActions.size; i ++) {
-		Praat_Command action = theActions.at [i];
+	for (long i = 1; i <= theNumberOfActions; i ++) {
 		int sel1 = 0, sel2 = 0, sel3 = 0, sel4 = 0;
-		int n1 = action -> n1, n2 = action -> n2, n3 = action -> n3, n4 = action -> n4;
+		int n1 = theActions [i]. n1, n2 = theActions [i]. n2, n3 = theActions [i]. n3, n4 = theActions [i]. n4;
 
 		/* Clean up from previous selection. */
 
-		action -> visible = false;
-		action -> executable = false;
+		theActions [i]. visible = FALSE;
+		theActions [i]. executable = FALSE;
 
 		/* Match the actually selected classes with the selection required for this visibility. */
 
-		if (! action -> class1) continue;   // at least one class selected
-		sel1 = action -> class1 == classDaata ? theCurrentPraatObjects -> totalSelection : praat_numberOfSelected (action -> class1);
+		if (! theActions [i]. class1) continue;   /* At least one class selected. */
+		sel1 = theActions [i]. class1 == classData ? theCurrentPraatObjects -> totalSelection : praat_numberOfSelected (theActions [i]. class1);
 		if (sel1 == 0) continue;
-		if (action -> class2 && (sel2 = praat_numberOfSelected (action -> class2)) == 0) continue;
-		if (action -> class3 && (sel3 = praat_numberOfSelected (action -> class3)) == 0) continue;
-		if (action -> class4 && (sel4 = praat_numberOfSelected (action -> class4)) == 0) continue;
-		if (sel1 + sel2 + sel3 + sel4 != theCurrentPraatObjects -> totalSelection) continue;   // other classes selected? Do not show
-		action -> visible = ! action -> hidden;
+		if (theActions [i]. class2 && (sel2 = praat_numberOfSelected (theActions [i]. class2)) == 0) continue;
+		if (theActions [i]. class3 && (sel3 = praat_numberOfSelected (theActions [i]. class3)) == 0) continue;
+		if (theActions [i]. class4 && (sel4 = praat_numberOfSelected (theActions [i]. class4)) == 0) continue;
+		if (sel1 + sel2 + sel3 + sel4 != theCurrentPraatObjects -> totalSelection) continue;   /* Other classes selected? Do not show. */
+		theActions [i]. visible = ! theActions [i]. hidden;
 
 		/* Match the actually selected objects with the selection required for this action. */
 
-		if (! action -> callback) continue;   // separators are not executable
+		if (! theActions [i]. callback) continue;   /* Separators are not executable. */
 		if ((n1 && sel1 != n1) || (n2 && sel2 != n2) || (n3 && sel3 != n3) || (n4 && sel4 != n4)) continue;
-		action -> executable = true;
+		theActions [i]. executable = TRUE;
 	}
 
 	/* Create a new column of buttons in the dynamic menu. */
 	if (! theCurrentPraatApplication -> batch && ! Melder_backgrounding) {
 		actionsInvisible = false;
-		GuiMenu currentSubmenu1 = nullptr, currentSubmenu2 = nullptr;
-		bool writeMenuGoingToSeparate = false;
+		GuiMenu currentSubmenu1 = NULL, currentSubmenu2 = NULL;
+		int writeMenuGoingToSeparate = FALSE;
 		int y = Machine_getMenuBarHeight () + 10;
-		for (long i = 1; i <= theActions.size; i ++) {   // add buttons or make existing buttons sensitive (executable)
-			Praat_Command me = theActions.at [i];
-			if (my depth == 0) currentSubmenu1 = nullptr, currentSubmenu2 = nullptr;   // prevent attachment of later deep actions to earlier submenus after removal of label
-			if (my depth == 1) currentSubmenu2 = nullptr;   // prevent attachment of later deep actions to earlier submenus after removal of label
+		for (long i = 1; i <= theNumberOfActions; i ++) {   /* Add buttons or make existing buttons sensitive (executable). */
+			praat_Command me = & theActions [i];
+			if (my depth == 0) currentSubmenu1 = NULL, currentSubmenu2 = NULL;   /* Prevent attachment of later deep actions to earlier submenus after removal of label. */
+			if (my depth == 1) currentSubmenu2 = NULL;   /* Prevent attachment of later deep actions to earlier submenus after removal of label. */
 			if (! my visible) continue;
 			if (my callback) {
 				/* Apparently a true command: create a button in the dynamic menu.
 				 * If it is a subcommand (depth > 0), put it in the current submenu,
 				 * but only if this exists (umbrella against stray submenu specifications).
 				 */
-				GuiMenu parentMenu = my depth > 1 && currentSubmenu2 ? currentSubmenu2 : my depth > 0 && currentSubmenu1 ? currentSubmenu1 : nullptr;
+				GuiMenu parentMenu = my depth > 1 && currentSubmenu2 ? currentSubmenu2 : my depth > 0 && currentSubmenu1 ? currentSubmenu1 : NULL;
 
 				if (str32nequ (my title, U"Save ", 5) || str32nequ (my title, U"Write ", 6) || str32nequ (my title, U"Append to ", 10)) {
 					parentMenu = praat_writeMenu;
@@ -610,18 +637,19 @@ void praat_actions_show () {
 						if (writeMenuGoingToSeparate)
 							praat_writeMenuSeparator = GuiMenu_addSeparator (parentMenu);
 						else if (str32equ (my title, U"Save as binary file..."))
-							writeMenuGoingToSeparate = true;
+							writeMenuGoingToSeparate = TRUE;
 					}
 				}
 				if (parentMenu) {
 					my button = GuiMenu_addItem (parentMenu, my title,
 						( my executable ? 0 : GuiMenu_INSENSITIVE ),
-						cb_menu, me);
+						cb_menu,
+						my callback == DO_RunTheScriptFromAnyAddedMenuCommand ? (void *) my script : (void *) my callback);
 				} else {
 					my button = GuiButton_createShown (praat_form,
 						BUTTON_LEFT, BUTTON_RIGHT, y, y + Gui_PUSHBUTTON_HEIGHT,
 						my title, gui_button_cb_menu,
-						me,
+						my callback == DO_RunTheScriptFromAnyAddedMenuCommand ? (void *) my script : (void *) my callback,
 							( my executable ? 0 : GuiButton_INSENSITIVE ) | ( my attractive ? GuiButton_ATTRACTIVE : 0 ));
 					y += Gui_PUSHBUTTON_HEIGHT + BUTTON_VSPACING;
 					#if gtk
@@ -629,17 +657,17 @@ void praat_actions_show () {
 						gtk_button_set_alignment (GTK_BUTTON (my button -> d_widget), 0.0f, 0.5f);
 					#endif
 				}
-			} else if (i == theActions.size || theActions.at [i + 1] -> depth == 0) {
+			} else if (i == theNumberOfActions || theActions [i + 1]. depth == 0) {
 				/*
 				 * Apparently a labelled separator.
 				 */
 				my button = GuiLabel_createShown (praat_form, BUTTON_LEFT, BUTTON_RIGHT, y, y + Gui_LABEL_HEIGHT, my title, 0);
 				y += Gui_LABEL_HEIGHT + BUTTON_VSPACING;
-			} else if (! my title || my title [0] == U'-') {
+			} else if (my title == NULL || my title [0] == '-') {
 				/*
 				 * Apparently a separator in a submenu.
 				 */
-				if (currentSubmenu2 || currentSubmenu1) {   // these separators are not shown in a flattened menu
+				if (currentSubmenu2 || currentSubmenu1) {   /* These separators are not shown in a flattened menu. */
 					my button = GuiMenu_addSeparator (currentSubmenu2 ? currentSubmenu2 : currentSubmenu1);
 					GuiThing_show (my button);
 				}
@@ -652,10 +680,10 @@ void praat_actions_show () {
 						BUTTON_LEFT, BUTTON_RIGHT, y, y + Gui_PUSHBUTTON_HEIGHT,
 						my title, 0);
 					y += Gui_PUSHBUTTON_HEIGHT + BUTTON_VSPACING;
-					my button = currentSubmenu1 -> d_cascadeButton.get();
+					my button = currentSubmenu1 -> d_cascadeButton;
 				} else {
 					currentSubmenu2 = GuiMenu_createInMenu (currentSubmenu1, my title, 0);
-					my button = currentSubmenu2 -> d_menuItem.get();
+					my button = currentSubmenu2 -> d_menuItem;
 				}
 				GuiThing_show (my button);
 			}
@@ -671,7 +699,8 @@ void praat_actions_createWriteMenu (GuiWindow window) {
 	#endif
 }
 
-void praat_actions_init () {
+void praat_actions_init (void) {
+	theActions = Melder_calloc_f (struct structPraat_Command, 1 + praat_MAXNUM_LOOSE_COMMANDS);
 }
 
 void praat_actions_createDynamicMenu (GuiWindow window) {
@@ -681,26 +710,25 @@ void praat_actions_createDynamicMenu (GuiWindow window) {
 
 void praat_saveAddedActions (MelderString *buffer) {
 	long maxID = 0;
-	for (long iaction = 1; iaction <= theActions.size; iaction ++) {
-		Praat_Command action = theActions.at [iaction];
-		if (action -> uniqueID > maxID)
-			maxID = action -> uniqueID;
+	for (long iaction = 1; iaction <= theNumberOfActions; iaction ++) {
+		if (theActions [iaction]. uniqueID > maxID)
+			maxID = theActions [iaction]. uniqueID;
 	}
 	for (long ident = 1; ident <= maxID; ident ++)
-		for (long iaction = 1; iaction <= theActions.size; iaction ++) {
-			Praat_Command me = theActions.at [iaction];
+		for (long iaction = 1; iaction <= theNumberOfActions; iaction ++) {
+			praat_Command me = & theActions [iaction];
 			if (my uniqueID == ident && ! my hidden && my title) {
 				MelderString_append (buffer, U"Add action command...",
 					U" ", my class1 -> className, U" ", my n1,
 					U" ", ( my class2 ? my class2 -> className : U"\"\"" ), U" ", my n2,
 					U" ", ( my class3 ? my class3 -> className : U"\"\"" ), U" ", my n3,
-					U" \"", my title, U"\" \"", ( my after ? my after : U"" ), U"\" ", my depth);
+					U" \"", my title, U"\" \"", ( my after ? my after : U"", U"\" " ), my depth);
 				MelderString_append (buffer, U" ", my script ? my script : U"", U"\n");
 				break;
 			}
 		}
-	for (long iaction = 1; iaction <= theActions.size; iaction ++) {
-		Praat_Command me = theActions.at [iaction];
+	for (long iaction = 1; iaction <= theNumberOfActions; iaction ++) {
+		praat_Command me = & theActions [iaction];
 		if (my toggled && my title && ! my uniqueID && ! my script) {
 			MelderString_append (buffer, ( my hidden ? U"Hide" : U"Show" ), U" action command...",
 				U" ", my class1 -> className,
@@ -713,26 +741,26 @@ void praat_saveAddedActions (MelderString *buffer) {
 
 int praat_doAction (const char32 *command, const char32 *arguments, Interpreter interpreter) {
 	long i = 1;
-	while (i <= theActions.size && (! theActions.at [i] -> executable || str32cmp (theActions.at [i] -> title, command))) i ++;
-	if (i > theActions.size) return 0;   // not found
-	theActions.at [i] -> callback (nullptr, 0, nullptr, arguments, interpreter, command, false, nullptr);
+	while (i <= theNumberOfActions && (! theActions [i]. executable || str32cmp (theActions [i]. title, command))) i ++;
+	if (i > theNumberOfActions) return 0;   // not found
+	theActions [i]. callback (NULL, 0, NULL, arguments, interpreter, command, false, NULL);
 	return 1;
 }
 
 int praat_doAction (const char32 *command, int narg, Stackel args, Interpreter interpreter) {
 	long i = 1;
-	while (i <= theActions.size && (! theActions.at [i] -> executable || str32cmp (theActions.at [i] -> title, command))) i ++;
-	if (i > theActions.size) return 0;   // not found
-	theActions.at [i] -> callback (nullptr, narg, args, nullptr, interpreter, command, false, nullptr);
+	while (i <= theNumberOfActions && (! theActions [i]. executable || str32cmp (theActions [i]. title, command))) i ++;
+	if (i > theNumberOfActions) return 0;   // not found
+	theActions [i]. callback (NULL, narg, args, NULL, interpreter, command, false, NULL);
 	return 1;
 }
 
-long praat_getNumberOfActions () { return theActions.size; }
+long praat_getNumberOfActions (void) { return theNumberOfActions; }
 
-Praat_Command praat_getAction (long i)
-	{ return i < 0 || i > theActions.size ? nullptr : theActions.at [i]; }
+praat_Command praat_getAction (long i)
+	{ return i < 0 || i > theNumberOfActions ? NULL : & theActions [i]; }
 
-void praat_background () {
+void praat_background (void) {
 	if (Melder_batch) return;
 	if (Melder_backgrounding) return;
 	deleteDynamicMenu ();
@@ -741,7 +769,7 @@ void praat_background () {
 	if (! praatP.dontUsePictureWindow) praat_picture_background ();
 }
 
-void praat_foreground () {
+void praat_foreground (void) {
 	if (Melder_batch) return;
 	if (! Melder_backgrounding) return;
 	Melder_backgrounding = false;
diff --git a/sys/praat_logo.cpp b/sys/praat_logo.cpp
index 0bfafff..a6a4ac3 100644
--- a/sys/praat_logo.cpp
+++ b/sys/praat_logo.cpp
@@ -1,6 +1,6 @@
 /* praat_logo.cpp
  *
- * Copyright (C) 1996-2012,2013,2014,2015,2016 Paul Boersma, 2008 Stefan de Konink
+ * Copyright (C) 1996-2012,2013,2014,2015 Paul Boersma, 2008 Stefan de Konink
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,11 +31,11 @@ static void logo_defaultDraw (Graphics g) {
 	Graphics_setFont (g, kGraphics_font_TIMES);
 	Graphics_setFontSize (g, 24);
 	Graphics_setFontStyle (g, Graphics_ITALIC);
-	Graphics_setUnderscoreIsSubscript (g, false);   // because program names may contain underscores
+	Graphics_setUnderscoreIsSubscript (g, FALSE);   // because program names may contain underscores
 	Graphics_text (g, 0.5, 0.6, praatP.title);
 	Graphics_setFontStyle (g, 0);
 	Graphics_setFontSize (g, 12);
-	Graphics_text (g, 0.5, 0.25, U"\\s{Built on the} %%Praat shell%\\s{,© Paul Boersma, 1992-2016");
+	Graphics_text (g, 0.5, 0.25, U"\\s{Built on the} %%Praat shell%\\s{,© Paul Boersma, 1992-2015");
 }
 
 static struct {
@@ -44,7 +44,7 @@ static struct {
 	GuiDialog dia;
 	GuiForm form;
 	GuiDrawingArea drawingArea;
-	autoGraphics graphics;
+	Graphics graphics;
 } theLogo = { 90, 40, logo_defaultDraw };
 
 #if motif
@@ -61,38 +61,42 @@ void praat_setLogo (double width_mm, double height_mm, void (*draw) (Graphics g)
 	theLogo.draw = draw;
 }
 
-static void gui_drawingarea_cb_expose (Thing /* me */, GuiDrawingArea_ExposeEvent event) {
-	if (! theLogo.graphics)
+static void gui_drawingarea_cb_expose (I, GuiDrawingAreaExposeEvent event) {
+	if (theLogo.graphics == NULL)
 		theLogo.graphics = Graphics_create_xmdrawingarea (theLogo.drawingArea);
 	#if gtk
 		#if ALLOW_GDK_DRAWING
-			Graphics_x_setCR (theLogo.graphics.get(), gdk_cairo_create (GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window)));
+			Graphics_x_setCR (theLogo.graphics, gdk_cairo_create (GDK_DRAWABLE (GTK_WIDGET (event -> widget -> d_widget) -> window)));
 		#else
-			Graphics_x_setCR (theLogo.graphics.get(), gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (event -> widget -> d_widget))));
+			Graphics_x_setCR (theLogo.graphics, gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (event -> widget -> d_widget))));
 		#endif
-		cairo_rectangle ((cairo_t *) Graphics_x_getCR (theLogo.graphics.get()), (double) event->x, (double) event->y, (double) event->width, (double) event->height);
-		cairo_clip ((cairo_t *) Graphics_x_getCR (theLogo.graphics.get()));
-		theLogo.draw (theLogo.graphics.get());
-		cairo_destroy ((cairo_t *) Graphics_x_getCR (theLogo.graphics.get()));
+		cairo_rectangle ((cairo_t *) Graphics_x_getCR (theLogo.graphics), (double) event->x, (double) event->y, (double) event->width, (double) event->height);
+		cairo_clip ((cairo_t *) Graphics_x_getCR (theLogo.graphics));
+		theLogo.draw (theLogo.graphics);
+		cairo_destroy ((cairo_t *) Graphics_x_getCR (theLogo.graphics));
 	#elif motif || cocoa
+		(void) void_me;
 		(void) event;
-		if (! theLogo.graphics)
+		if (theLogo.graphics == NULL)
 			theLogo.graphics = Graphics_create_xmdrawingarea (theLogo.drawingArea);
-		theLogo.draw (theLogo.graphics.get());
+		theLogo.draw (theLogo.graphics);
 	#endif
 }
 
-static void gui_drawingarea_cb_click (Thing /* me */, GuiDrawingArea_ClickEvent /* event */) {
+static void gui_drawingarea_cb_click (I, GuiDrawingAreaClickEvent event) {
+	(void) void_me;
+	(void) event;
  	GuiThing_hide (theLogo.form);
 }
 
-static void gui_cb_goAway (Thing /* boss */) {
+static void gui_cb_goAway (I) {
+	(void) void_me;
  	GuiThing_hide (theLogo.form);
 }
 
-void praat_showLogo (bool autoPopDown) {
+void praat_showLogo (int autoPopDown) {
 	#if gtk
-		static const gchar *authors [3] = { "Paul Boersma", "David Weenink", nullptr };
+		static const gchar *authors [3] = { "Paul Boersma", "David Weenink", NULL };
 
 		GuiObject dialog = gtk_about_dialog_new ();
 		#define xstr(s) str(s)
@@ -102,26 +106,26 @@ void praat_showLogo (bool autoPopDown) {
 		gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (dialog), "GPL");
 		gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (dialog), "http://www.praat.org");
 		//gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (dialog), authors);
-		g_signal_connect (GTK_DIALOG (dialog), "response", G_CALLBACK (gtk_widget_destroy), nullptr);
+		g_signal_connect (GTK_DIALOG (dialog), "response", G_CALLBACK (gtk_widget_destroy), NULL);
 
 		gtk_dialog_run (GTK_DIALOG (dialog));
 
 	#else
 		if (theCurrentPraatApplication -> batch || ! theLogo.draw) return;
 		if (! theLogo.dia) {
-			int width  = theLogo.width_mm  / 25.4 * Gui_getResolution (nullptr);
-			int height = theLogo.height_mm / 25.4 * Gui_getResolution (nullptr);
+			int width  = theLogo.width_mm  / 25.4 * Gui_getResolution (NULL);
+			int height = theLogo.height_mm / 25.4 * Gui_getResolution (NULL);
 			theLogo.dia = GuiDialog_create (theCurrentPraatApplication -> topShell, 100, 100, width, height,
-				U"About", gui_cb_goAway, nullptr, 0);
+				U"About", gui_cb_goAway, NULL, 0);
 			theLogo.form = theLogo.dia;
 			theLogo.drawingArea = GuiDrawingArea_createShown (theLogo.form, 0, width, 0, height,
-				gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, nullptr, nullptr, 0);
+				gui_drawingarea_cb_expose, gui_drawingarea_cb_click, NULL, NULL, NULL, 0);
 		}
 		GuiThing_show (theLogo.form);
 		GuiThing_show (theLogo.dia);
 		#if motif
 			if (autoPopDown)
-				GuiAddTimeOut (2000, logo_timeOut, (XtPointer) nullptr);
+				GuiAddTimeOut (2000, logo_timeOut, (XtPointer) NULL);
 		#endif
 	#endif
 }
diff --git a/sys/praat_menuCommands.cpp b/sys/praat_menuCommands.cpp
index 1e8c04e..68dac91 100644
--- a/sys/praat_menuCommands.cpp
+++ b/sys/praat_menuCommands.cpp
@@ -21,44 +21,45 @@
 #include "praat_script.h"
 #include "GuiP.h"
 
-static OrderedOf <structPraat_Command> theCommands;
+#define praat_MAXNUM_FIXED_COMMANDS  1000
+static long theNumberOfCommands = 0;
+static struct structPraat_Command *theCommands;
 
-void praat_menuCommands_init () {
+void praat_menuCommands_init (void) {
+	theCommands = Melder_calloc_f (struct structPraat_Command, praat_MAXNUM_FIXED_COMMANDS + 1);
 }
 
 static int compareMenuCommands (const void *void_me, const void *void_thee) {
-	Praat_Command me = * (Praat_Command *) void_me, thee = * (Praat_Command *) void_thee;
+	praat_Command me = (praat_Command) void_me, thee = (praat_Command) void_thee;
+	int compare;
 	if (my window) {
 		if (! thy window) return 1;
-		int compare = str32cmp (my window, thy window);
+		compare = str32cmp (my window, thy window);
 		if (compare) return compare;
 	} else if (thy window) return -1;
 	if (my menu) {
 		if (! thy menu) return 1;
-		int compare = str32cmp (my menu, thy menu);
+		compare = str32cmp (my menu, thy menu);
 		if (compare) return compare;
 	} else if (thy menu) return -1;
 	if (my sortingTail < thy sortingTail) return -1;
 	return 1;
 }
 
-void praat_sortMenuCommands () {
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		command -> sortingTail = i;
-	}
-	qsort (& theCommands.at [1], theCommands.size, sizeof (Praat_Command), compareMenuCommands);
+void praat_sortMenuCommands (void) {
+	for (long i = 1; i <= theNumberOfCommands; i ++)
+		theCommands [i]. sortingTail = i;
+	qsort (& theCommands [1], theNumberOfCommands, sizeof (struct structPraat_Command), compareMenuCommands);
 }
 
 static long lookUpMatchingMenuCommand (const char32 *window, const char32 *menu, const char32 *title) {
 /*
  * A menu command is fully specified by its environment (window + menu) and its title.
  */
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		const char32 *tryWindow = command -> window;
-		const char32 *tryMenu = command -> menu;
-		const char32 *tryTitle = command -> title;
+	for (long i = 1; i <= theNumberOfCommands; i ++) {
+		const char32 *tryWindow = theCommands [i]. window;
+		const char32 *tryMenu = theCommands [i]. menu;
+		const char32 *tryTitle = theCommands [i]. title;
 		if ((window == tryWindow || (window && tryWindow && str32equ (window, tryWindow))) &&
 		    (menu == tryMenu || (menu && tryMenu && str32equ (menu, tryMenu))) &&
 		    (title == tryTitle || (title && tryTitle && str32equ (title, tryTitle)))) return i;
@@ -66,50 +67,62 @@ static long lookUpMatchingMenuCommand (const char32 *window, const char32 *menu,
 	return 0;   // not found
 }
 
-static void do_menu (Praat_Command me, unsigned long modified) {
-	if (my callback == DO_RunTheScriptFromAnyAddedMenuCommand) {
-		UiHistory_write (U"\nrunScript: ");
-		try {
-			DO_RunTheScriptFromAnyAddedMenuCommand (nullptr, 0, nullptr, my script, nullptr, nullptr, false, nullptr);
-		} catch (MelderError) {
-			Melder_flushError (U"Command \"", my title, U"\" not executed.");
-		}
-		praat_updateSelection (); return;
-	} else {
-		if (my title && ! str32str (my title, U"...")) {
-			UiHistory_write (U"\n");
-			UiHistory_write (my title);
+static void do_menu (I, unsigned long modified) {
+	UiCallback callback = (UiCallback) void_me;
+	Melder_assert (callback != NULL);
+	for (long i = 1; i <= theNumberOfCommands; i ++) {
+		praat_Command me = & theCommands [i];
+		if (my callback == callback) {
+			if (my title != NULL && ! str32str (my title, U"...")) {
+				UiHistory_write (U"\n");
+				UiHistory_write_expandQuotes (my title);
+			}
+			try {
+				callback (NULL, 0, NULL, NULL, NULL, my title, modified, NULL);
+			} catch (MelderError) {
+				Melder_flushError (U"Command \"", my title, U"\" not executed.");
+			}
+			praat_updateSelection (); return;
 		}
-		try {
-			my callback (nullptr, 0, nullptr, nullptr, nullptr, my title, modified, nullptr);
-		} catch (MelderError) {
-			Melder_flushError (U"Command \"", my title, U"\" not executed.");
+		if (my callback == DO_RunTheScriptFromAnyAddedMenuCommand && my script == (void *) void_me) {
+			if (my title != NULL && ! str32str (my title, U"...")) {
+				UiHistory_write (U"\nexecute ");
+				UiHistory_write (my script);
+			} else {
+				UiHistory_write (U"\nexecute \"");
+				UiHistory_write (my script);
+				UiHistory_write (U"\"");
+			}
+			try {
+				DO_RunTheScriptFromAnyAddedMenuCommand (NULL, 0, NULL, my script, NULL, NULL, false, NULL);
+			} catch (MelderError) {
+				Melder_flushError (U"Command \"", my title, U"\" not executed.");
+			}
+			praat_updateSelection (); return;
 		}
-		praat_updateSelection (); return;
 	}
 }
 
-static void gui_button_cb_menu (Praat_Command me, GuiButtonEvent event) {
-	do_menu (me, event -> shiftKeyPressed | event -> commandKeyPressed | event -> optionKeyPressed | event -> extraControlKeyPressed);
+static void gui_button_cb_menu (I, GuiButtonEvent event) {
+	do_menu (void_me, event -> shiftKeyPressed | event -> commandKeyPressed | event -> optionKeyPressed | event -> extraControlKeyPressed);
 }
 
-static void gui_cb_menu (Praat_Command me, GuiMenuItemEvent event) {
+static void gui_cb_menu (GUI_ARGS) {
 	bool modified = event -> shiftKeyPressed || event -> commandKeyPressed || event -> optionKeyPressed || event -> extraControlKeyPressed;
-	do_menu (me, modified);
+	do_menu (void_me, modified);
 }
 
 static GuiMenu windowMenuToWidget (const char32 *window, const char32 *menu) {
 	return
 		str32equ (window, U"Picture") ? praat_picture_resolveMenu (menu) :
-		str32equ (window, U"Objects") ? praat_objects_resolveMenu (menu) : nullptr;
+		str32equ (window, U"Objects") ? praat_objects_resolveMenu (menu) : NULL;
 }
 
 GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, const char32 *title /* cattable */,
 	const char32 *after, unsigned long flags, UiCallback callback)
 {
 	long position;
-	int depth = flags, key = 0;
-	bool unhidable = false, hidden = false;
+	int depth = flags, unhidable = FALSE, hidden = FALSE, key = 0;
 	unsigned long guiFlags = 0;
 	if (flags > 7) {
 		depth = ((flags & praat_DEPTH_7) >> 16);
@@ -120,7 +133,7 @@ GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, cons
 	}
 	if (callback && ! title) {
 		Melder_flushError (U"praat_addMenuCommand: command with callback has no title. Window \"", window, U"\", menu \"", menu, U"\".");
-		return nullptr;
+		return NULL;
 	}
 
 	/*
@@ -134,30 +147,40 @@ GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, cons
 			Melder_flushError (U"praat_addMenuCommand: the command \"", title, U"\" cannot be put after \"", after, U"\",\n"
 				U"in the menu \"", menu, U"\" in the window \"", window, U"\"\n"
 				U"because the latter command does not exist.");
-			return nullptr;
+			return NULL;
 		}
 	} else {
-		position = theCommands.size + 1;   // at end
+		position = theNumberOfCommands + 1;   // at end
+	}
+
+	/*
+	 * Increment the command area.
+	 */
+	if (theNumberOfCommands >= praat_MAXNUM_FIXED_COMMANDS) {
+		Melder_flushError (U"praat_addMenuCommand: too many menu commands.");
+		return NULL;
 	}
+	theNumberOfCommands += 1;
 
 	/*
-	 * Make new command.
+	 * Make room for insertion.
 	 */
-	autoPraat_Command command = Thing_new (Praat_Command);
+	for (long i = theNumberOfCommands; i > position; i --) theCommands [i] = theCommands [i - 1];
+	memset (& theCommands [position], 0, sizeof (struct structPraat_Command));
 
-	command -> window = Melder_dup_f (window);
-	command -> menu = Melder_dup_f (menu);
-	command -> title = Melder_dup_f (title);
+	theCommands [position]. window = Melder_dup_f (window);
+	theCommands [position]. menu = Melder_dup_f (menu);
+	theCommands [position]. title = Melder_dup_f (title);
 	trace (U"insert new command \"", title, U"\"");
-	command -> depth = depth;
-	command -> callback = callback;   // null for a separator or cascade button
-	command -> executable = !! callback;
-	command -> script = nullptr;
-	command -> hidden = hidden;
-	command -> unhidable = unhidable;
+	theCommands [position]. depth = depth;
+	theCommands [position]. callback = callback;   // NULL for a separator or cascade button
+	theCommands [position]. executable = callback != NULL;
+	theCommands [position]. script = NULL;
+	theCommands [position]. hidden = hidden;
+	theCommands [position]. unhidable = unhidable;
 
 	if (! theCurrentPraatApplication -> batch) {
-		GuiMenu parentMenu = nullptr;
+		GuiMenu parentMenu = NULL;
 
 		/* WHERE TO PUT IT?
 		 * Determine parent menu widget.
@@ -175,15 +198,14 @@ GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, cons
 			 * The supermenu to put the new command in is the first menu that we find when going up.
 			 */
 			for (long parentPosition = position - 1; parentPosition > 0; parentPosition --) {
-				Praat_Command parentCommand = theCommands.at [parentPosition];
-				if (parentCommand -> depth == depth - 1) {
+				if (theCommands [parentPosition]. depth == depth - 1) {
 					/*
 					 * We found the supermenu.
 					 */
-					if (! parentCommand -> callback && parentCommand -> title && parentCommand -> title [0] != U'-') {
-						if (! parentCommand -> button)
+					if (theCommands [parentPosition]. callback == NULL && theCommands [parentPosition]. title != NULL && theCommands [parentPosition]. title [0] != '-') {
+						if (theCommands [parentPosition]. button == NULL)
 							Melder_fatal (U"No button for ", window, U"/", menu, U"/", title, U".");
-						Thing_cast (GuiMenuItem, parentButton_as_GuiMenuItem, parentCommand -> button);
+						Thing_cast (GuiMenuItem, parentButton_as_GuiMenuItem, theCommands [parentPosition]. button);
 						parentMenu = parentButton_as_GuiMenuItem -> d_menu;
 					}
 					break;
@@ -193,30 +215,29 @@ GuiMenuItem praat_addMenuCommand (const char32 *window, const char32 *menu, cons
 		}
 		if (! parentMenu) {
 			trace (U"WARNING: no parent menu for ", window, U"/", menu, U"/", title, U".");
-			return nullptr;
+			return NULL;
 		}
 
 		/*
 		 * WHAT TO PUT THERE?
 		 */
 
-		if (! title || title [0] == U'-') {
+		if (title == NULL || title [0] == U'-') {
 			trace (U"insert the command as a separator");
-			command -> button = GuiMenu_addSeparator (parentMenu);
-			Melder_assert (command -> button);
-		} else if (! callback) {
+			theCommands [position]. button = GuiMenu_addSeparator (parentMenu);
+			Melder_assert (theCommands [position]. button != NULL);
+		} else if (callback == NULL) {
 			trace (U"insert the command as a submenu");
-			command -> button = GuiMenu_createInMenu (parentMenu, title, 0) -> d_menuItem.get();
-			Melder_assert (command -> button);
+			theCommands [position]. button = GuiMenu_createInMenu (parentMenu, title, 0) -> d_menuItem;
+			Melder_assert (theCommands [position]. button != NULL);
 		} else {
 			trace (U"insert the command as a normal menu item");
-			command -> button = GuiMenu_addItem (parentMenu, title, guiFlags, gui_cb_menu, command.get());
-			Melder_assert (command -> button);
+			theCommands [position]. button = GuiMenu_addItem (parentMenu, title, guiFlags, gui_cb_menu, (void *) callback);
+			Melder_assert (theCommands [position]. button != NULL);
 		}
-		if (hidden) GuiThing_hide (command -> button);
+		if (hidden) GuiThing_hide (theCommands [position]. button);
 	}
-	Thing_cast (GuiMenuItem, button_as_GuiMenuItem, command -> button);
-	theCommands. addItemAtPosition_move (command.move(), position);
+	Thing_cast (GuiMenuItem, button_as_GuiMenuItem, theCommands [position]. button);
 	return button_as_GuiMenuItem;
 }
 
@@ -240,37 +261,49 @@ void praat_addMenuCommandScript (const char32 *window, const char32 *menu, const
 				/*Melder_throw (U"The menu command \"", title, U"\" cannot be put after \"", after, U"\",\n"
 					U"in the menu \"", menu, "\" in the window \"", window, U"\"\n"
 					U"because the latter command does not exist.");*/
-				position = theCommands.size + 1;   // default: at end
+				position = theNumberOfCommands + 1;   // default: at end
 			}
 		} else {
-			position = theCommands.size + 1;   // at end
+			position = theNumberOfCommands + 1;   /* At end. */
 		}
 
 		/*
-		 * Make new command.
+		 * Increment the command area.
+		 */
+		if (theNumberOfCommands >= praat_MAXNUM_FIXED_COMMANDS)
+			Melder_throw (U"Too many menu commands (maximum ", praat_MAXNUM_FIXED_COMMANDS, U").");
+		theNumberOfCommands += 1;
+
+		/*
+		 * Make room for insertion.
 		 */
-		autoPraat_Command command = Thing_new (Praat_Command);
-		command -> window = Melder_dup_f (window);
-		command -> menu = Melder_dup_f (menu);
-		command -> title = str32len (title) ? Melder_dup_f (title) : nullptr;   // allow old-fashioned untitled separators
-		command -> depth = depth;
-		command -> callback = str32len (script) ? DO_RunTheScriptFromAnyAddedMenuCommand : nullptr;   // null for a separator or cascade button
-		command -> executable = str32len (script) != 0;
+		for (long i = theNumberOfCommands; i > position; i --) theCommands [i] = theCommands [i - 1];
+		memset (& theCommands [position], 0, sizeof (struct structPraat_Command));
+
+		/*
+		 * Insert new command.
+		 */
+		theCommands [position]. window = Melder_dup_f (window);
+		theCommands [position]. menu = Melder_dup_f (menu);
+		theCommands [position]. title = str32len (title) ? Melder_dup_f (title) : NULL;   // allow old-fashioned untitled separators
+		theCommands [position]. depth = depth;
+		theCommands [position]. callback = str32len (script) ? DO_RunTheScriptFromAnyAddedMenuCommand : NULL;   // NULL for a separator or cascade button
+		theCommands [position]. executable = str32len (script) != 0;
 		if (str32len (script) == 0) {
-			command -> script = Melder_dup_f (U"");   // empty string, which will be needed to signal origin
+			theCommands [position]. script = Melder_dup_f (U"");   // Empty string, which will be needed to signal origin
 		} else {
 			structMelderFile file = { 0 };
 			Melder_relativePathToFile (script, & file);
-			command -> script = Melder_dup_f (Melder_fileToPath (& file));
+			theCommands [position]. script = Melder_dup_f (Melder_fileToPath (& file));
 		}
-		command -> after = str32len (after) ? Melder_dup_f (after) : nullptr;
+		theCommands [position]. after = str32len (after) ? Melder_dup_f (after) : NULL;
 		if (praatP.phase >= praat_READING_BUTTONS) {
 			static long uniqueID = 0;
-			command -> uniqueID = ++ uniqueID;
+			theCommands [position]. uniqueID = ++ uniqueID;
 		}
 
 		if (! theCurrentPraatApplication -> batch) {
-			GuiMenu parentMenu = nullptr;
+			GuiMenu parentMenu = NULL;
 
 			/* WHERE TO PUT IT?
 			 * Determine parent menu widget.
@@ -281,13 +314,12 @@ void praat_addMenuCommandScript (const char32 *window, const char32 *menu, const
 				parentMenu = windowMenuToWidget (window, menu);   // not a subitem: in the top menu
 			} else {
 				for (long parentPosition = position - 1; parentPosition > 0; parentPosition --) {
-					Praat_Command parentCommand = theCommands.at [parentPosition];
-					if (parentCommand -> depth == depth - 1) {
-						if (! parentCommand -> callback && parentCommand -> title && parentCommand -> title [0] != U'-') {
-							if (! parentCommand -> button)
+					if (theCommands [parentPosition]. depth == depth - 1) {
+						if (theCommands [parentPosition]. callback == NULL && theCommands [parentPosition]. title != NULL && theCommands [parentPosition]. title [0] != '-') {
+							if (theCommands [parentPosition]. button == NULL)
 								Melder_fatal (U"No button for ", window, U"/", menu, U"/", title, U".");
-							Melder_assert (parentCommand -> button -> classInfo == classGuiMenuItem);
-							parentMenu = (static_cast <GuiMenuItem> (parentCommand -> button)) -> d_menu;
+							Melder_assert (theCommands [parentPosition]. button -> classInfo == classGuiMenuItem);
+							parentMenu = (static_cast <GuiMenuItem> (theCommands [parentPosition]. button)) -> d_menu;
 						}
 						break;
 					}
@@ -297,16 +329,15 @@ void praat_addMenuCommandScript (const char32 *window, const char32 *menu, const
 			if (parentMenu) {
 				/* WHAT TO PUT THERE?
 				 */
-				if (title [0] == U'\0' || title [0] == U'-') {
-					command -> button = GuiMenu_addSeparator (parentMenu);
+				if (title [0] == '\0' || title [0] == '-') {
+					theCommands [position]. button = GuiMenu_addSeparator (parentMenu);
 				} else if (script [0] == '\0') {
-					command -> button = GuiMenu_createInMenu (parentMenu, title, 0) -> d_menuItem.get();
+					theCommands [position]. button = GuiMenu_createInMenu (parentMenu, title, 0) -> d_menuItem;
 				} else {
-					command -> button = GuiMenu_addItem (parentMenu, title, 0, gui_cb_menu, command.get());
+					theCommands [position]. button = GuiMenu_addItem (parentMenu, title, 0, gui_cb_menu, (void *) theCommands [position]. script);   // not just "script"!!
 				}
 			}
 		}
-		theCommands. addItemAtPosition_move (command.move(), position);
 
 		if (praatP.phase >= praat_HANDLING_EVENTS) praat_sortMenuCommands ();
 	} catch (MelderError) {
@@ -318,9 +349,9 @@ void praat_hideMenuCommand (const char32 *window, const char32 *menu, const char
 	if (theCurrentPraatApplication -> batch || ! window || ! menu || ! title) return;
 	long found = lookUpMatchingMenuCommand (window, menu, title);
 	if (! found) return;
-	Praat_Command command = theCommands.at [found];
+	praat_Command command = & theCommands [found];
 	if (! command -> hidden && ! command -> unhidable) {
-		command -> hidden = true;
+		command -> hidden = TRUE;
 		if (praatP.phase >= praat_READING_BUTTONS) command -> toggled = ! command -> toggled;
 		if (command -> button) GuiThing_hide (command -> button);
 	}
@@ -330,9 +361,9 @@ void praat_showMenuCommand (const char32 *window, const char32 *menu, const char
 	if (theCurrentPraatApplication -> batch || ! window || ! menu || ! title) return;
 	long found = lookUpMatchingMenuCommand (window, menu, title);
 	if (! found) return;
-	Praat_Command command = theCommands.at [found];
+	praat_Command command = & theCommands [found];
 	if (command -> hidden) {
-		command -> hidden = false;
+		command -> hidden = FALSE;
 		if (praatP.phase >= praat_READING_BUTTONS) command -> toggled = ! command -> toggled;
 		if (command -> button) GuiThing_show (command -> button);
 	}
@@ -340,22 +371,18 @@ void praat_showMenuCommand (const char32 *window, const char32 *menu, const char
 
 void praat_saveMenuCommands (MelderString *buffer) {
 	long maxID = 0;
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		if (command -> uniqueID > maxID)
-			maxID = command -> uniqueID;
-	}
+	for (long i = 1; i <= theNumberOfCommands; i ++) if (theCommands [i]. uniqueID > maxID) maxID = theCommands [i]. uniqueID;
 	for (long id = 1; id <= maxID; id ++)   // sorted
-		for (long i = 1; i <= theCommands.size; i ++) {
-			Praat_Command me = theCommands.at [i];
+		for (long i = 1; i <= theNumberOfCommands; i ++) {
+			praat_Command me = & theCommands [i];
 			if (my uniqueID == id && ! my hidden && my window && my menu && my title) {
 				MelderString_append (buffer, U"Add menu command... \"", my window, U"\" \"", my menu, U"\" \"", my title, U"\" \"",
 					( my after ? my after : U"" ), U"\" ", my depth, U" ", ( my script ? my script : U"" ), U"\n");
 				break;
 			}
 		}
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command me = theCommands.at [i];
+	for (long i = 1; i <= theNumberOfCommands; i ++) {
+		praat_Command me = & theCommands [i];
 		if (my toggled && my window && my menu && my title && ! my uniqueID && ! my script)
 			MelderString_append (buffer, my hidden ? U"Hide" : U"Show", U" menu command... \"",
 				my window, U"\" \"", my menu, U"\" ", my title, U"\n");
@@ -365,82 +392,58 @@ void praat_saveMenuCommands (MelderString *buffer) {
 /***** FIXED BUTTONS *****/
 
 void praat_addFixedButtonCommand (GuiForm parent, const char32 *title, UiCallback callback, int x, int y) {
-	autoPraat_Command me = Thing_new (Praat_Command);
+	praat_Command me = & theCommands [++ theNumberOfCommands];
 	my window = Melder_dup_f (U"Objects");
 	my title = title;
 	my callback = callback;
-	my unhidable = true;
+	my unhidable = TRUE;
 	if (theCurrentPraatApplication -> batch) {
-		my button = nullptr;
+		my button = NULL;
 	} else {
 		GuiThing button = my button = GuiButton_create (parent, x, x + 82, -y - Gui_PUSHBUTTON_HEIGHT, -y,
-			title, gui_button_cb_menu, me.get(), 0);
+			title, gui_button_cb_menu, (void *) callback, 0);   // BUG: shouldn't convert a function pointer to a void pointer
 		GuiThing_setSensitive (button, false);
 		GuiThing_show (button);
 	}
 	my executable = false;
-	theCommands. addItemAtPosition_move (me.move(), 0);
 }
 
 void praat_sensitivizeFixedButtonCommand (const char32 *title, int sensitive) {
-	Praat_Command commandFound = nullptr;
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		if (str32equ (command -> title, title)) {
-			commandFound = command;
-			break;
-		}
-	}
-	if (! commandFound) Melder_fatal (U"Unkown fixed button <<", title, U">>");
-	commandFound -> executable = sensitive;
+	long i = 1;
+	for (; i <= theNumberOfCommands; i ++)
+		if (str32equ (theCommands [i]. title, title)) break;   // search
+	theCommands [i]. executable = sensitive;
 	if (! theCurrentPraatApplication -> batch && ! Melder_backgrounding)
-		GuiThing_setSensitive (commandFound -> button, sensitive);
+		GuiThing_setSensitive (theCommands [i]. button, sensitive);
 }
 
-int praat_doMenuCommand (const char32 *title, const char32 *arguments, Interpreter interpreter) {
-	Praat_Command commandFound = nullptr;
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		if (command -> executable && str32equ (command -> title, title) &&
-			(str32equ (command -> window, U"Objects") || str32equ (command -> window, U"Picture")))
-		{
-			commandFound = command;
-			break;
-		}
-	}
-	if (! commandFound) return 0;
-	commandFound -> callback (nullptr, 0, nullptr, arguments, interpreter, title, false, nullptr);
+int praat_doMenuCommand (const char32 *command, const char32 *arguments, Interpreter interpreter) {
+	long i = 1;
+	while (i <= theNumberOfCommands && (! theCommands [i]. executable || ! str32equ (theCommands [i]. title, command) ||
+		(! str32equ (theCommands [i]. window, U"Objects") && ! str32equ (theCommands [i]. window, U"Picture")))) i ++;
+	if (i > theNumberOfCommands) return 0;
+	theCommands [i]. callback (NULL, 0, NULL, arguments, interpreter, command, false, NULL);
 	return 1;
 }
 
-int praat_doMenuCommand (const char32 *title, int narg, Stackel args, Interpreter interpreter) {
-	Praat_Command commandFound = nullptr;
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		if (command -> executable && str32equ (command -> title, title) &&
-			(str32equ (command -> window, U"Objects") || str32equ (command -> window, U"Picture")))
-		{
-			commandFound = command;
-			break;
-		}
-	}
-	if (! commandFound) return 0;
-	commandFound -> callback (nullptr, narg, args, nullptr, interpreter, title, false, nullptr);
+int praat_doMenuCommand (const char32 *command, int narg, Stackel args, Interpreter interpreter) {
+	long i = 1;
+	while (i <= theNumberOfCommands && (! theCommands [i]. executable || ! str32equ (theCommands [i]. title, command) ||
+		(! str32equ (theCommands [i]. window, U"Objects") && ! str32equ (theCommands [i]. window, U"Picture")))) i ++;
+	if (i > theNumberOfCommands) return 0;
+	theCommands [i]. callback (NULL, narg, args, NULL, interpreter, command, false, NULL);
 	return 1;
 }
 
-long praat_getNumberOfMenuCommands () { return theCommands.size; }
+long praat_getNumberOfMenuCommands (void) { return theNumberOfCommands; }
 
-Praat_Command praat_getMenuCommand (long i)
-	{ return i < 1 || i > theCommands.size ? nullptr : theCommands.at [i]; }
+praat_Command praat_getMenuCommand (long i)
+	{ return i < 1 || i > theNumberOfCommands ? NULL : & theCommands [i]; }
 
 void praat_addCommandsToEditor (Editor me) {
 	const char32 *windowName = my classInfo -> className;
-	for (long i = 1; i <= theCommands.size; i ++) {
-		Praat_Command command = theCommands.at [i];
-		if (str32equ (command -> window, windowName)) {
-			Editor_addCommandScript (me, command -> menu, command -> title, 0, command -> script);
-		}
+	for (long i = 1; i <= theNumberOfCommands; i ++) if (str32equ (theCommands [i]. window, windowName)) {
+		Editor_addCommandScript (me, theCommands [i]. menu, theCommands [i]. title, 0, theCommands [i]. script);
 	}
 }
 
diff --git a/sys/praat_objectMenus.cpp b/sys/praat_objectMenus.cpp
index 20a966b..bd92aa0 100644
--- a/sys/praat_objectMenus.cpp
+++ b/sys/praat_objectMenus.cpp
@@ -1,6 +1,6 @@
 /* praat_objectMenus.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@ FORM (Rename, U"Rename object", U"Rename...") {
 	LABEL (U"rename object", U"New name:")
 	TEXTFIELD (U"newName", U"")
 	OK2
-int IOBJECT; WHERE (SELECTED) SET_STRING (U"newName", NAME)
+{ int IOBJECT; WHERE (SELECTED) SET_STRING (U"newName", NAME) }
 DO
 	char32 *string = GET_STRING (U"newName");
 	if (theCurrentPraatObjects -> totalSelection == 0)
@@ -54,25 +54,25 @@ DO
 	WHERE (SELECTED) break;
 	praat_cleanUpName (string);   // this is allowed because "string" is local and dispensible
 	#if 0
-	std::u32string newFullName = std::u32string (Thing_className (OBJECT) + U" " + string;
+	std::u32string newFullName = std::u32string (Thing_className ((Thing) OBJECT)) + U" " + string;
 	if (newFullName != std::u32string (FULL_NAME)) {
 		Melder_free (FULL_NAME), FULL_NAME = Melder_dup_f (newFullName.c_str());
 		praat_list_renameAndSelect (IOBJECT, (std::u32string (Melder_integer (ID)) + U". " + newFullName). c_str());
 		for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
-			if (EDITOR [ieditor]) Thing_setName (EDITOR [ieditor], newFullName.c_str());
-		Thing_setName (OBJECT, string);
+			if (EDITOR [ieditor]) Thing_setName ((Thing) EDITOR [ieditor], newFullName.c_str());
+		Thing_setName ((Thing) OBJECT, string);
 	}
 	#else
 	static MelderString fullName { 0 };
-	MelderString_copy (& fullName, Thing_className (OBJECT), U" ", string);
+	MelderString_copy (& fullName, Thing_className ((Thing) OBJECT), U" ", string);
 	if (! str32equ (fullName.string, FULL_NAME)) {
 		Melder_free (FULL_NAME), FULL_NAME = Melder_dup_f (fullName.string);
 		autoMelderString listName;
 		MelderString_append (& listName, ID, U". ", fullName.string);
 		praat_list_renameAndSelect (IOBJECT, listName.string);
 		for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++)
-			if (EDITOR [ieditor]) Thing_setName (EDITOR [ieditor], fullName.string);
-		Thing_setName (OBJECT, string);
+			if (EDITOR [ieditor]) Thing_setName ((Thing) EDITOR [ieditor], fullName.string);
+		Thing_setName ((Thing) OBJECT, string);
 	}
 	#endif
 END2 }
@@ -89,7 +89,7 @@ DO
 		Melder_throw (U"Selection changed!\nCannot copy more than one object at a time.");
 	WHERE (SELECTED) {
 		char32 *name = GET_STRING (U"newName");
-		praat_new (Data_copy ((Daata) OBJECT), name);
+		praat_new (Data_copy ((Data) OBJECT), name);
 	}
 END2 }
 
@@ -98,7 +98,7 @@ DIRECT2 (Info) {
 		Melder_throw (U"Selection changed!\nNo object selected. Cannot query.");
 	if (theCurrentPraatObjects -> totalSelection > 1)
 		Melder_throw (U"Selection changed!\nCannot query more than one object at a time.");
-	WHERE (SELECTED) Thing_infoWithIdAndFile (OBJECT, ID, & theCurrentPraatObjects -> list [IOBJECT]. file);
+	WHERE (SELECTED) Thing_infoWithIdAndFile ((Thing) OBJECT, ID, & theCurrentPraatObjects -> list [IOBJECT]. file);
 END2 }
 
 DIRECT2 (Inspect) {
@@ -108,9 +108,7 @@ DIRECT2 (Inspect) {
 		Melder_throw (U"Cannot inspect data from batch.");
 	} else {
 		WHERE (SELECTED) {
-			autoDataEditor editor = DataEditor_create (ID_AND_FULL_NAME, OBJECT);
-			praat_installEditor (editor.get(), IOBJECT);
-			editor.releaseToUser();
+			praat_installEditor (DataEditor_create (ID_AND_FULL_NAME, OBJECT), IOBJECT);
 		}
 	}
 END2 }
@@ -137,40 +135,40 @@ GuiMenu praat_objects_resolveMenu (const char32 *menu) {
 		#else
 			str32equ (menu, U"ApplicationHelp") ? helpMenu :
 		#endif
-		newMenu;   // default
+		newMenu;   /* Default. */
 }
 
 /********** Callbacks of the Praat menu. **********/
 
 DIRECT2 (About) {
-	praat_showLogo (false);
+	praat_showLogo (FALSE);
 END2 }
 
 DIRECT2 (praat_newScript) {
-	autoScriptEditor editor = ScriptEditor_createFromText (nullptr, nullptr);
-	editor.releaseToUser();
+	autoScriptEditor editor = ScriptEditor_createFromText (NULL, NULL);
+	editor.transfer();   // the user becomes the owner
 END2 }
 
 DIRECT2 (praat_openScript) {
-	autoScriptEditor editor = ScriptEditor_createFromText (nullptr, nullptr);
-	TextEditor_showOpen (editor.get());
-	editor.releaseToUser();
+	autoScriptEditor editor = ScriptEditor_createFromText (NULL, NULL);
+	TextEditor_showOpen (editor.peek());
+	editor.transfer();   // the user becomes the owner
 END2 }
 
-static ButtonEditor theReferenceToTheOnlyButtonEditor;
+static ButtonEditor theButtonEditor;
 
-static void cb_ButtonEditor_destruction (Editor /* editor */) {
-	theReferenceToTheOnlyButtonEditor = nullptr;
+static void cb_ButtonEditor_destruction (Editor editor, void *closure) {
+	(void) editor;
+	(void) closure;
+	theButtonEditor = NULL;
 }
 
 DIRECT2 (praat_editButtons) {
-	if (theReferenceToTheOnlyButtonEditor) {
-		Editor_raise (theReferenceToTheOnlyButtonEditor);
+	if (theButtonEditor) {
+		Editor_raise (theButtonEditor);
 	} else {
-		autoButtonEditor editor = ButtonEditor_create ();
-		Editor_setDestructionCallback (editor.get(), cb_ButtonEditor_destruction);
-		theReferenceToTheOnlyButtonEditor = editor.get();
-		editor.releaseToUser();
+		theButtonEditor = ButtonEditor_create ();
+		Editor_setDestructionCallback (theButtonEditor, cb_ButtonEditor_destruction, NULL);
 	}
 END2 }
 
@@ -265,7 +263,7 @@ DO
 	Melder_setOutputEncoding (GET_ENUM (kMelder_textOutputEncoding, U"Output encoding"));
 END2 }
 
-FORM (GraphicsCjkFontStyleSettings, U"CJK font style preferences", nullptr) {
+FORM (GraphicsCjkFontStyleSettings, U"CJK font style preferences", 0) {
 	OPTIONMENU_ENUM (U"CJK font style", kGraphics_cjkFontStyle, DEFAULT)
 	OK2
 SET_ENUM (U"CJK font style", kGraphics_cjkFontStyle, theGraphicsCjkFontStyle)
@@ -284,9 +282,15 @@ FORM (praat_calculator, U"Calculator", U"Calculator") {
 	OK2
 DO
 	struct Formula_Result result;
-	if (! interpreter) {
-		autoInterpreter tempInterpreter = Interpreter_create (nullptr, nullptr);
-		Interpreter_anyExpression (tempInterpreter.get(), GET_STRING (U"expression"), & result);
+	if (interpreter == NULL) {
+		interpreter = Interpreter_create (NULL, NULL);
+		try {
+			Interpreter_anyExpression (interpreter, GET_STRING (U"expression"), & result);
+			forget (interpreter);
+		} catch (MelderError) {
+			forget (interpreter);
+			throw;
+		}
 	} else {
 		Interpreter_anyExpression (interpreter, GET_STRING (U"expression"), & result);
 	}
@@ -354,7 +358,7 @@ END2 }
 
 /********** Callbacks of the Technical menu. **********/
 
-FORM (praat_debug, U"Set debugging options", nullptr) {
+FORM (praat_debug, U"Set debugging options", 0) {
 	LABEL (U"", U"If you switch Tracing on, Praat will write lots of detailed ")
 	LABEL (U"", U"information about what goes on in Praat")
 	structMelderDir dir;
@@ -383,10 +387,6 @@ DIRECT2 (praat_listReadableTypesOfObjects) {
 	Thing_listReadableClasses ();
 END2 }
 
-DIRECT2 (praat_reportSystemProperties) {
-	praat_reportSystemProperties ();
-END2 }
-
 DIRECT2 (praat_reportGraphicalProperties) {
 	praat_reportGraphicalProperties ();
 END2 }
@@ -406,28 +406,22 @@ END2 }
 /********** Callbacks of the Open menu. **********/
 
 static void readFromFile (MelderFile file) {
-	autoDaata object = Data_readFromFile (file);
-	if (! object.get()) return;
-	if (Thing_isa (object.get(), classManPages) && ! Melder_batch) {
-		ManPages manPages = (ManPages) object.get();
-		ManPage firstPage = manPages -> pages.at [1];
-		autoManual manual = Manual_create (firstPage -> title, object.releaseToAmbiguousOwner(), true);
-		if (manPages -> executable)
+	autoData object = (Data) Data_readFromFile (file);
+	if (object.peek() == NULL) return;
+	if (Thing_isa (object.peek(), classManPages) && ! Melder_batch) {
+		ManPages pages = (ManPages) object.peek();
+		ManPage firstPage = static_cast<ManPage> (pages -> pages -> item [1]);
+		Manual_create (firstPage -> title, object.transfer(), true);
+		if (pages -> executable)
 			Melder_warning (U"These manual pages contain links to executable scripts.\n"
 				"Only navigate these pages if you trust their author!");
-		manual.releaseToUser();
 		return;
 	}
-	if (Thing_isa (object.get(), classScript) && ! Melder_batch) {
-		autoScriptEditor editor = ScriptEditor_createFromScript_canBeNull (nullptr, (Script) object.get());
-		if (! editor) {
-			(void) 0;   // the script was already open, and the user has been notified of that
-		} else {
-			editor.releaseToUser();
-		}
+	if (Thing_isa (object.peek(), classScript) && ! Melder_batch) {
+		ScriptEditor_createFromScript (NULL, (Script) object.peek());
 		return;
 	}
-	praat_newWithFile (object.move(), file, MelderFile_name (file));
+	praat_newWithFile (object.transfer(), file, MelderFile_name (file));
 	praat_updateSelection ();
 }
 
@@ -437,47 +431,47 @@ END2 }
 
 /********** Callbacks of the Save menu. **********/
 
-FORM_WRITE2 (Data_writeToTextFile, U"Save Object(s) as one text file", nullptr, nullptr) {
+FORM_WRITE2 (Data_writeToTextFile, U"Save Object(s) as one text file", 0, 0) {
 	if (theCurrentPraatObjects -> totalSelection == 1) {
 		LOOP {
-			iam (Daata);
+			iam (Data);
 			Data_writeToTextFile (me, file);
 		}
 	} else {
 		autoCollection set = praat_getSelectedObjects ();
-		Data_writeToTextFile (set.get(), file);
+		Data_writeToTextFile (set.peek(), file);
 	}
 END2 }
 
-FORM_WRITE2 (Data_writeToShortTextFile, U"Save Object(s) as one short text file", nullptr, nullptr) {
+FORM_WRITE2 (Data_writeToShortTextFile, U"Save Object(s) as one short text file", 0, 0) {
 	if (theCurrentPraatObjects -> totalSelection == 1) {
 		LOOP {
-			iam (Daata);
+			iam (Data);
 			Data_writeToShortTextFile (me, file);
 		}
 	} else {
 		autoCollection set = praat_getSelectedObjects ();
-		Data_writeToShortTextFile (set.get(), file);
+		Data_writeToShortTextFile (set.peek(), file);
 	}
 END2 }
 
-FORM_WRITE2 (Data_writeToBinaryFile, U"Save Object(s) as one binary file", nullptr, nullptr) {
+FORM_WRITE2 (Data_writeToBinaryFile, U"Save Object(s) as one binary file", 0, 0) {
 	if (theCurrentPraatObjects -> totalSelection == 1) {
 		LOOP {
-			iam (Daata);
+			iam (Data);
 			Data_writeToBinaryFile (me, file);
 		}
 	} else {
 		autoCollection set = praat_getSelectedObjects ();
-		Data_writeToBinaryFile (set.get(), file);
+		Data_writeToBinaryFile (set.peek(), file);
 	}
 END2 }
 
-FORM (ManPages_saveToHtmlDirectory, U"Save all pages as HTML files", nullptr) {
+FORM (ManPages_saveToHtmlDirectory, U"Save all pages as HTML files", 0) {
 	LABEL (U"", U"Type a directory name:")
 	TEXTFIELD (U"directory", U"")
 	OK2
-structMelderDir currentDirectory { { 0 } };
+structMelderDir currentDirectory = { { 0 } };
 Melder_getDefaultDir (& currentDirectory);
 SET_STRING (U"directory", Melder_dirToPath (& currentDirectory))
 DO
@@ -491,13 +485,12 @@ END2 }
 DIRECT2 (ManPages_view) {
 	LOOP {
 		iam (ManPages);
-		ManPage firstPage = my pages.at [1];
+		ManPage firstPage = static_cast<ManPage> (my pages -> item [1]);
 		autoManual manual = Manual_create (firstPage -> title, me, false);
 		if (my executable)
 			Melder_warning (U"These manual pages contain links to executable scripts.\n"
 				"Only navigate these pages if you trust their author!");
-		praat_installEditor (manual.get(), IOBJECT);
-		manual.releaseToUser();
+		praat_installEditor (manual.transfer(), IOBJECT);
 	}
 END2 }
 
@@ -510,12 +503,11 @@ FORM (SearchManual, U"Search manual", U"Manual") {
 DO
 	if (theCurrentPraatApplication -> batch)
 		Melder_throw (U"Cannot view a manual from batch.");
-	autoManual manual = Manual_create (U"Intro", theCurrentPraatApplication -> manPages, false);
-	Manual_search (manual.get(), GET_STRING (U"query"));
-	manual.releaseToUser();
+	Manual manPage = Manual_create (U"Intro", theCurrentPraatApplication -> manPages, false);
+	Manual_search (manPage, GET_STRING (U"query"));
 END2 }
 
-FORM (GoToManualPage, U"Go to manual page", nullptr) {
+FORM (GoToManualPage, U"Go to manual page", 0) {
 	{long numberOfPages;
 	const char32 **pages = ManPages_getTitles (theCurrentPraatApplication -> manPages, & numberOfPages);
 	LIST (U"Page", numberOfPages, pages, 1)}
@@ -523,16 +515,15 @@ FORM (GoToManualPage, U"Go to manual page", nullptr) {
 DO
 	if (theCurrentPraatApplication -> batch)
 		Melder_throw (U"Cannot view a manual from batch.");
-	autoManual manual = Manual_create (U"Intro", theCurrentPraatApplication -> manPages, false);
-	HyperPage_goToPage_i (manual.get(), GET_INTEGER (U"Page"));
-	manual.releaseToUser();
+	Manual manPage = Manual_create (U"Intro", theCurrentPraatApplication -> manPages, false);
+	HyperPage_goToPage_i (manPage, GET_INTEGER (U"Page"));
 END2 }
 
-FORM (WriteManualToHtmlDirectory, U"Save all pages as HTML files", nullptr) {
+FORM (WriteManualToHtmlDirectory, U"Save all pages as HTML files", 0) {
 	LABEL (U"", U"Type a directory name:")
 	TEXTFIELD (U"directory", U"")
 	OK2
-structMelderDir currentDirectory { { 0 } };
+structMelderDir currentDirectory = { { 0 } };
 Melder_getDefaultDir (& currentDirectory);
 SET_STRING (U"directory", Melder_dirToPath (& currentDirectory))
 DO
@@ -542,7 +533,7 @@ END2 }
 
 /********** Menu descriptions. **********/
 
-void praat_show () {
+void praat_show (void) {
 	/*
 	 * (De)sensitivize the fixed buttons as appropriate for the current selection.
 	 */
@@ -552,8 +543,8 @@ void praat_show () {
 	praat_sensitivizeFixedButtonCommand (U"Info", theCurrentPraatObjects -> totalSelection == 1);
 	praat_sensitivizeFixedButtonCommand (U"Inspect", theCurrentPraatObjects -> totalSelection != 0);
 	praat_actions_show ();
-	if (theCurrentPraatApplication == & theForegroundPraatApplication && theReferenceToTheOnlyButtonEditor)
-		Editor_dataChanged (theReferenceToTheOnlyButtonEditor);
+	if (theCurrentPraatApplication == & theForegroundPraatApplication && theButtonEditor)
+		Editor_dataChanged (theButtonEditor);
 }
 
 /********** Menu descriptions. **********/
@@ -566,21 +557,21 @@ void praat_addFixedButtons (GuiWindow window) {
 	praat_addFixedButtonCommand (window, U"Remove", DO_Remove, 8, 10);
 }
 
-static void searchProc () {
-	DO_SearchManual (nullptr, 0, nullptr, nullptr, nullptr, nullptr, false, nullptr);
+static void searchProc (void) {
+	DO_SearchManual (NULL, 0, NULL, NULL, NULL, NULL, false, NULL);
 }
 
 static MelderString itemTitle_about { 0 };
 
-static autoDaata scriptRecognizer (int nread, const char *header, MelderFile file) {
+static Any scriptRecognizer (int nread, const char *header, MelderFile file) {
 	const char32 *name = MelderFile_name (file);
-	if (nread < 2) return autoDaata ();
+	if (nread < 2) return NULL;
 	if ((header [0] == '#' && header [1] == '!') || str32str (name, U".praat") == name + str32len (name) - 6
 	    || str32str (name, U".html") == name + str32len (name) - 5)
 	{
 		return Script_createFromFile (file);
 	}
-	return autoDaata ();
+	return NULL;
 }
 
 static void cb_openDocument (MelderFile file) {
@@ -622,10 +613,10 @@ void praat_addMenus (GuiWindow window) {
 	 */
 	if (! theCurrentPraatApplication -> batch) {
 		#ifdef macintosh
-			praatMenu = GuiMenu_createInWindow (nullptr, U"\024", 0);
+			praatMenu = GuiMenu_createInWindow (NULL, U"\024", 0);
 			#if cocoa
-				editMenu = GuiMenu_createInWindow (nullptr, U"Edit", 0);
-				windowMenu = GuiMenu_createInWindow (nullptr, U"Window", 0);
+				editMenu = GuiMenu_createInWindow (NULL, U"Edit", 0);
+				windowMenu = GuiMenu_createInWindow (NULL, U"Window", 0);
 			#endif
 		#else
 			praatMenu = GuiMenu_createInWindow (window, U"Praat", 0);
@@ -634,88 +625,87 @@ void praat_addMenus (GuiWindow window) {
 		readMenu = GuiMenu_createInWindow (window, U"Open", 0);
 		praat_actions_createWriteMenu (window);
 		#ifdef macintosh
-			applicationHelpMenu = GuiMenu_createInWindow (nullptr, U"Help", 0);
+			applicationHelpMenu = GuiMenu_createInWindow (NULL, U"Help", 0);
 		#endif
 		helpMenu = GuiMenu_createInWindow (window, U"Help", 0);
 	}
 	
 	MelderString_append (& itemTitle_about, U"About ", praatP.title, U"...");
 	#ifdef macintosh
-		praat_addMenuCommand (U"Objects", U"Praat", itemTitle_about.string, nullptr, praat_UNHIDABLE, DO_About);
+		praat_addMenuCommand (U"Objects", U"Praat", itemTitle_about.string, 0, praat_UNHIDABLE, DO_About);
 		#if cocoa
 			/*
 			 * HACK: give the following command weird names,
 			 * because otherwise they may be called from a script.
 			 * (we add three alt-spaces)
 			 */
-			praat_addMenuCommand (U"Objects", U"Edit", U"Cut   ", nullptr, praat_UNHIDABLE + 'X', DO_praat_cut);
-			praat_addMenuCommand (U"Objects", U"Edit", U"Copy   ", nullptr, praat_UNHIDABLE + 'C', DO_praat_copy);
-			praat_addMenuCommand (U"Objects", U"Edit", U"Paste   ", nullptr, praat_UNHIDABLE + 'V', DO_praat_paste);
-			praat_addMenuCommand (U"Objects", U"Window", U"Minimize   ", nullptr, praat_UNHIDABLE, DO_praat_minimize);
-			praat_addMenuCommand (U"Objects", U"Window", U"Zoom   ", nullptr, praat_UNHIDABLE, DO_praat_zoom);
-			praat_addMenuCommand (U"Objects", U"Window", U"Close   ", nullptr, 'W', DO_praat_close);
+			praat_addMenuCommand (U"Objects", U"Edit", U"Cut   ", 0, praat_UNHIDABLE + 'X', DO_praat_cut);
+			praat_addMenuCommand (U"Objects", U"Edit", U"Copy   ", 0, praat_UNHIDABLE + 'C', DO_praat_copy);
+			praat_addMenuCommand (U"Objects", U"Edit", U"Paste   ", 0, praat_UNHIDABLE + 'V', DO_praat_paste);
+			praat_addMenuCommand (U"Objects", U"Window", U"Minimize   ", 0, praat_UNHIDABLE, DO_praat_minimize);
+			praat_addMenuCommand (U"Objects", U"Window", U"Zoom   ", 0, praat_UNHIDABLE, DO_praat_zoom);
+			praat_addMenuCommand (U"Objects", U"Window", U"Close   ", 0, 'W', DO_praat_close);
 		#endif
 	#endif
 	#ifdef UNIX
-		praat_addMenuCommand (U"Objects", U"Praat", itemTitle_about.string, nullptr, praat_UNHIDABLE, DO_About);
+		praat_addMenuCommand (U"Objects", U"Praat", itemTitle_about.string, 0, praat_UNHIDABLE, DO_About);
 	#endif
-	praat_addMenuCommand (U"Objects", U"Praat", U"-- script --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Praat", U"New Praat script", nullptr, 0, DO_praat_newScript);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Open Praat script...", nullptr, 0, DO_praat_openScript);
-	praat_addMenuCommand (U"Objects", U"Praat", U"-- buttons --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Add menu command...", nullptr, praat_HIDDEN, DO_praat_addMenuCommand);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Hide menu command...", nullptr, praat_HIDDEN, DO_praat_hideMenuCommand);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Show menu command...", nullptr, praat_HIDDEN, DO_praat_showMenuCommand);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Add action command...", nullptr, praat_HIDDEN, DO_praat_addAction);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Hide action command...", nullptr, praat_HIDDEN, DO_praat_hideAction);
-	praat_addMenuCommand (U"Objects", U"Praat", U"Show action command...", nullptr, praat_HIDDEN, DO_praat_showAction);
-
-	GuiMenuItem menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Goodies", nullptr, praat_UNHIDABLE, nullptr);
-	goodiesMenu = menuItem ? menuItem -> d_menu : nullptr;
-	praat_addMenuCommand (U"Objects", U"Goodies", U"Calculator...", nullptr, 'U', DO_praat_calculator);
-	praat_addMenuCommand (U"Objects", U"Goodies", U"Report difference of two proportions...", nullptr, 0, DO_praat_reportDifferenceOfTwoProportions);
-
-	menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Preferences", nullptr, praat_UNHIDABLE, nullptr);
-	preferencesMenu = menuItem ? menuItem -> d_menu : nullptr;
-	praat_addMenuCommand (U"Objects", U"Preferences", U"Buttons...", nullptr, praat_UNHIDABLE, DO_praat_editButtons);   /* Cannot be hidden. */
-	praat_addMenuCommand (U"Objects", U"Preferences", U"-- encoding prefs --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"Text reading preferences...", nullptr, 0, DO_TextInputEncodingSettings);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"Text writing preferences...", nullptr, 0, DO_TextOutputEncodingSettings);
-	praat_addMenuCommand (U"Objects", U"Preferences", U"CJK font style preferences...", nullptr, 0, DO_GraphicsCjkFontStyleSettings);
-
-	menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Technical", nullptr, praat_UNHIDABLE, nullptr);
-	technicalMenu = menuItem ? menuItem -> d_menu : nullptr;
-	praat_addMenuCommand (U"Objects", U"Technical", U"List readable types of objects", nullptr, 0, DO_praat_listReadableTypesOfObjects);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report memory use", nullptr, 0, DO_praat_reportMemoryUse);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report integer properties", nullptr, 0, DO_praat_reportIntegerProperties);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report text properties", nullptr, 0, DO_praat_reportTextProperties);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report system properties", nullptr, 0, DO_praat_reportSystemProperties);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Report graphical properties", nullptr, 0, DO_praat_reportGraphicalProperties);
-	praat_addMenuCommand (U"Objects", U"Technical", U"Debug...", nullptr, 0, DO_praat_debug);
-
-	praat_addMenuCommand (U"Objects", U"Open", U"Read from file...", nullptr, praat_ATTRACTIVE + 'O', DO_Data_readFromFile);
-
-	praat_addAction1 (classDaata, 0, U"Save as text file...", nullptr, 0, DO_Data_writeToTextFile);
-	praat_addAction1 (classDaata, 0, U"Write to text file...", nullptr, praat_HIDDEN, DO_Data_writeToTextFile);
-	praat_addAction1 (classDaata, 0, U"Save as short text file...", nullptr, 0, DO_Data_writeToShortTextFile);
-	praat_addAction1 (classDaata, 0, U"Write to short text file...", nullptr, praat_HIDDEN, DO_Data_writeToShortTextFile);
-	praat_addAction1 (classDaata, 0, U"Save as binary file...", nullptr, 0, DO_Data_writeToBinaryFile);
-	praat_addAction1 (classDaata, 0, U"Write to binary file...", nullptr, praat_HIDDEN, DO_Data_writeToBinaryFile);
-
-	praat_addAction1 (classManPages, 1, U"Save to HTML directory...", nullptr, 0, DO_ManPages_saveToHtmlDirectory);
-	praat_addAction1 (classManPages, 1, U"View", nullptr, 0, DO_ManPages_view);
+	praat_addMenuCommand (U"Objects", U"Praat", U"-- script --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Praat", U"New Praat script", 0, 0, DO_praat_newScript);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Open Praat script...", 0, 0, DO_praat_openScript);
+	praat_addMenuCommand (U"Objects", U"Praat", U"-- buttons --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Add menu command...", 0, praat_HIDDEN, DO_praat_addMenuCommand);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Hide menu command...", 0, praat_HIDDEN, DO_praat_hideMenuCommand);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Show menu command...", 0, praat_HIDDEN, DO_praat_showMenuCommand);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Add action command...", 0, praat_HIDDEN, DO_praat_addAction);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Hide action command...", 0, praat_HIDDEN, DO_praat_hideAction);
+	praat_addMenuCommand (U"Objects", U"Praat", U"Show action command...", 0, praat_HIDDEN, DO_praat_showAction);
+
+	GuiMenuItem menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Goodies", 0, praat_UNHIDABLE, 0);
+	goodiesMenu = menuItem ? menuItem -> d_menu : NULL;
+	praat_addMenuCommand (U"Objects", U"Goodies", U"Calculator...", 0, 'U', DO_praat_calculator);
+	praat_addMenuCommand (U"Objects", U"Goodies", U"Report difference of two proportions...", 0, 0, DO_praat_reportDifferenceOfTwoProportions);
+
+	menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Preferences", 0, praat_UNHIDABLE, 0);
+	preferencesMenu = menuItem ? menuItem -> d_menu : NULL;
+	praat_addMenuCommand (U"Objects", U"Preferences", U"Buttons...", 0, praat_UNHIDABLE, DO_praat_editButtons);   /* Cannot be hidden. */
+	praat_addMenuCommand (U"Objects", U"Preferences", U"-- encoding prefs --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"Text reading preferences...", 0, 0, DO_TextInputEncodingSettings);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"Text writing preferences...", 0, 0, DO_TextOutputEncodingSettings);
+	praat_addMenuCommand (U"Objects", U"Preferences", U"CJK font style preferences...", 0, 0, DO_GraphicsCjkFontStyleSettings);
+
+	menuItem = praat_addMenuCommand (U"Objects", U"Praat", U"Technical", 0, praat_UNHIDABLE, 0);
+	technicalMenu = menuItem ? menuItem -> d_menu : NULL;
+	praat_addMenuCommand (U"Objects", U"Technical", U"List readable types of objects", 0, 0, DO_praat_listReadableTypesOfObjects);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Report memory use", 0, 0, DO_praat_reportMemoryUse);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Report integer properties", 0, 0, DO_praat_reportIntegerProperties);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Report text properties", 0, 0, DO_praat_reportTextProperties);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Report graphical properties", 0, 0, DO_praat_reportGraphicalProperties);
+	praat_addMenuCommand (U"Objects", U"Technical", U"Debug...", 0, 0, DO_praat_debug);
+
+	praat_addMenuCommand (U"Objects", U"Open", U"Read from file...", 0, praat_ATTRACTIVE + 'O', DO_Data_readFromFile);
+
+	praat_addAction1 (classData, 0, U"Save as text file...", 0, 0, DO_Data_writeToTextFile);
+	praat_addAction1 (classData, 0, U"Write to text file...", 0, praat_HIDDEN, DO_Data_writeToTextFile);
+	praat_addAction1 (classData, 0, U"Save as short text file...", 0, 0, DO_Data_writeToShortTextFile);
+	praat_addAction1 (classData, 0, U"Write to short text file...", 0, praat_HIDDEN, DO_Data_writeToShortTextFile);
+	praat_addAction1 (classData, 0, U"Save as binary file...", 0, 0, DO_Data_writeToBinaryFile);
+	praat_addAction1 (classData, 0, U"Write to binary file...", 0, praat_HIDDEN, DO_Data_writeToBinaryFile);
+
+	praat_addAction1 (classManPages, 1, U"Save to HTML directory...", 0, 0, DO_ManPages_saveToHtmlDirectory);
+	praat_addAction1 (classManPages, 1, U"View", 0, 0, DO_ManPages_view);
 }
 
-void praat_addMenus2 () {
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"-- manual --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Go to manual page...", nullptr, 0, DO_GoToManualPage);
-	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Write manual to HTML directory...", nullptr, praat_HIDDEN, DO_WriteManualToHtmlDirectory);
+void praat_addMenus2 (void) {
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"-- manual --", 0, 0, 0);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Go to manual page...", 0, 0, DO_GoToManualPage);
+	praat_addMenuCommand (U"Objects", U"ApplicationHelp", U"Write manual to HTML directory...", 0, praat_HIDDEN, DO_WriteManualToHtmlDirectory);
 	praat_addMenuCommand (U"Objects", U"ApplicationHelp",
 		Melder_cat (U"Search ", praatP.title, U" manual..."),
-		nullptr, 'M', DO_SearchManual);
+		0, 'M', DO_SearchManual);
 	#ifdef _WIN32
-		praat_addMenuCommand (U"Objects", U"Help", U"-- about --", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Objects", U"Help", itemTitle_about.string, nullptr, praat_UNHIDABLE, DO_About);
+		praat_addMenuCommand (U"Objects", U"Help", U"-- about --", 0, 0, 0);
+		praat_addMenuCommand (U"Objects", U"Help", itemTitle_about.string, 0, praat_UNHIDABLE, DO_About);
 	#endif
 
 	#if defined (macintosh) || defined (_WIN32)
diff --git a/sys/praat_picture.cpp b/sys/praat_picture.cpp
index 3139d60..cebac92 100644
--- a/sys/praat_picture.cpp
+++ b/sys/praat_picture.cpp
@@ -1,6 +1,6 @@
 /* praat_picture.cpp
  *
- * Copyright (C) 1992-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2012,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 
 static bool praat_mouseSelectsInnerViewport;
 
-void praat_picture_prefs () {
+void praat_picture_prefs (void) {
 	Preferences_addEnum (U"Picture.font", & theCurrentPraatPicture -> font, kGraphics_font, kGraphics_font_DEFAULT);
 	Preferences_addInt (U"Picture.fontSize", & theCurrentPraatPicture -> fontSize, 10);
 	Preferences_addBool (U"Picture.mouseSelectsInnerViewport", & praat_mouseSelectsInnerViewport, false);
@@ -35,7 +35,7 @@ void praat_picture_prefs () {
 
 /***** static variable *****/
 
-static autoPicture praat_picture;
+static Picture praat_picture;
 
 /********** CALLBACKS OF THE PICTURE MENUS **********/
 
@@ -43,10 +43,10 @@ static autoPicture praat_picture;
 
 static GuiMenuItem praatButton_fonts [1 + kGraphics_font_MAX];
 
-static void updateFontMenu () {
+static void updateFontMenu (void) {
 	if (! theCurrentPraatApplication -> batch) {
 		if (theCurrentPraatPicture -> font < kGraphics_font_MIN) theCurrentPraatPicture -> font = kGraphics_font_MIN;
-		if (theCurrentPraatPicture -> font > kGraphics_font_MAX) theCurrentPraatPicture -> font = kGraphics_font_MAX;
+		if (theCurrentPraatPicture -> font > kGraphics_font_MAX) theCurrentPraatPicture -> font = kGraphics_font_MAX;   // we no longer have New Century Schoolbook
 		for (int i = kGraphics_font_MIN; i <= kGraphics_font_MAX; i ++) {
 			GuiMenuItem_check (praatButton_fonts [i], theCurrentPraatPicture -> font == i);
 		}
@@ -70,7 +70,7 @@ DIRECT (Courier)   { setFont (kGraphics_font_COURIER);   } END
 /***** "Font" MENU: size part *****/
 
 static GuiMenuItem praatButton_10, praatButton_12, praatButton_14, praatButton_18, praatButton_24;
-static void updateSizeMenu () {
+static void updateSizeMenu (void) {
 	if (! theCurrentPraatApplication -> batch) {
 		GuiMenuItem_check (praatButton_10, theCurrentPraatPicture -> fontSize == 10);
 		GuiMenuItem_check (praatButton_12, theCurrentPraatPicture -> fontSize == 12);
@@ -130,7 +130,7 @@ END2 }
 /***** "Select" MENU *****/
 
 static GuiMenuItem praatButton_innerViewport, praatButton_outerViewport;
-static void updateViewportMenu () {
+static void updateViewportMenu (void) {
 	if (! theCurrentPraatApplication -> batch) {
 		GuiMenuItem_check (praatButton_innerViewport, praat_mouseSelectsInnerViewport ? 1 : 0);
 		GuiMenuItem_check (praatButton_outerViewport, praat_mouseSelectsInnerViewport ? 0 : 1);
@@ -142,7 +142,7 @@ DIRECT (MouseSelectsInnerViewport) {
 		Melder_throw (U"Mouse commands are not available inside pictures.");
 	{// scope
 		autoPraatPicture picture;
-		Picture_setMouseSelectsInnerViewport (praat_picture.get(), praat_mouseSelectsInnerViewport = true);
+		Picture_setMouseSelectsInnerViewport (praat_picture, praat_mouseSelectsInnerViewport = true);
 	}
 	updateViewportMenu ();
 } END
@@ -152,7 +152,7 @@ DIRECT (MouseSelectsOuterViewport) {
 		Melder_throw (U"Mouse commands are not available inside pictures.");
 	{// scope
 		autoPraatPicture picture;
-		Picture_setMouseSelectsInnerViewport (praat_picture.get(), praat_mouseSelectsInnerViewport = false);
+		Picture_setMouseSelectsInnerViewport (praat_picture, praat_mouseSelectsInnerViewport = false);
 	}
 	updateViewportMenu ();
 } END
@@ -208,7 +208,7 @@ DO
 		if (top > bottom) { double temp; temp = top; top = bottom; bottom = temp; }
 		theCurrentPraatPicture -> y1NDC = 12-bottom - ymargin;
 		theCurrentPraatPicture -> y2NDC = 12-top + ymargin;
-		Picture_setSelection (praat_picture.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC, false);
+		Picture_setSelection (praat_picture, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC, false);
 		Graphics_updateWs (GRAPHICS);
 	} else if (theCurrentPraatObjects != & theForegroundPraatObjects) {   // in manual?
 		if (top > bottom) { double temp; temp = top; top = bottom; bottom = temp; }
@@ -261,7 +261,7 @@ DO
 		if (top > bottom) { double temp; temp = top; top = bottom; bottom = temp; }
 		theCurrentPraatPicture -> y1NDC = 12-bottom;
 		theCurrentPraatPicture -> y2NDC = 12-top;
-		Picture_setSelection (praat_picture.get(), theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC, false);
+		Picture_setSelection (praat_picture, theCurrentPraatPicture -> x1NDC, theCurrentPraatPicture -> x2NDC, theCurrentPraatPicture -> y1NDC, theCurrentPraatPicture -> y2NDC, false);
 		Graphics_updateWs (GRAPHICS);   // BUG: needed on Cocoa, but why?
 	} else if (theCurrentPraatObjects != & theForegroundPraatObjects) {   // in manual?
 		if (top > bottom) { double temp; temp = top; top = bottom; bottom = temp; }
@@ -312,7 +312,7 @@ static GuiMenuItem praatButton_black, praatButton_white, praatButton_red, praatB
 	praatButton_teal, praatButton_purple, praatButton_olive, praatButton_pink, praatButton_silver, praatButton_grey;
 
 
-static void updatePenMenu () {
+static void updatePenMenu (void) {
 	if (! theCurrentPraatApplication -> batch) {
 		for (int i = Graphics_DRAWN; i <= Graphics_DASHED; i ++) {
 			GuiMenuItem_check (praatButton_lines [i], theCurrentPraatPicture -> lineType == i);
@@ -438,75 +438,83 @@ END2 }
 /***** "File" MENU *****/
 
 FORM_READ2 (Picture_readFromPraatPictureFile, U"Read picture from praat picture file", 0, false) {
-	Picture_readFromPraatPictureFile (praat_picture.get(), file);
+	Picture_readFromPraatPictureFile (praat_picture, file);
 END2 }
 
-static void DO_Picture_writeToEpsFile (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToEpsFile (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as EPS file",
-		DO_Picture_writeToEpsFile, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToEpsFile, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.eps");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
-		Picture_writeToEpsFile (praat_picture.get(), file, true, false);
+		Picture_writeToEpsFile (praat_picture, file, TRUE, FALSE);
 	}
 }
 /*FORM_WRITE (Picture_writeToEpsFile, U"Save picture as Encapsulated PostScript file", 0, U"praat.eps")
-	if (! Picture_writeToEpsFile (praat_picture, fileName, true, false)) return 0;
+	if (! Picture_writeToEpsFile (praat_picture, fileName, TRUE)) return 0;
 END*/
 
-static void DO_Picture_writeToFontlessEpsFile_xipa (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToFontlessEpsFile_xipa (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as fontless EPS file",
-		DO_Picture_writeToFontlessEpsFile_xipa, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToFontlessEpsFile_xipa, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.eps");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
-		Picture_writeToEpsFile (praat_picture.get(), file, false, false);
+		Picture_writeToEpsFile (praat_picture, file, FALSE, FALSE);
 	}
 }
 
-static void DO_Picture_writeToFontlessEpsFile_silipa (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToFontlessEpsFile_silipa (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as fontless EPS file",
-		DO_Picture_writeToFontlessEpsFile_silipa, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToFontlessEpsFile_silipa, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.eps");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
-		Picture_writeToEpsFile (praat_picture.get(), file, false, true);
+		Picture_writeToEpsFile (praat_picture, file, FALSE, TRUE);
 	}
 }
 
-static void DO_Picture_writeToPdfFile (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToPdfFile (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as PDF file",
-		DO_Picture_writeToPdfFile, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToPdfFile, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.pdf");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
 		if (theCurrentPraatPicture == & theForegroundPraatPicture) {
-			Picture_writeToPdfFile (praat_picture.get(), file);
+			Picture_writeToPdfFile (praat_picture, file);
 		} else {
 			try {
 				//autoPraatPicture picture;
 				autoGraphics graphics = Graphics_create_pdffile (file, 300, NUMundefined, 10.24, NUMundefined, 7.68);
-				Graphics_play (GRAPHICS, graphics.get());
+				Graphics_play (GRAPHICS, graphics.peek());
 			} catch (MelderError) {
 				Melder_throw (U"Picture not written to PDF file ", file, U".");
 			}
@@ -514,23 +522,25 @@ static void DO_Picture_writeToPdfFile (UiForm sendingForm, int /* narg */, Stack
 	}
 }
 
-static void DO_Picture_writeToPngFile_300 (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToPngFile_300 (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as PNG file",
-		DO_Picture_writeToPngFile_300, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToPngFile_300, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.png");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
 		if (theCurrentPraatPicture == & theForegroundPraatPicture) {
-			Picture_writeToPngFile_300 (praat_picture.get(), file);
+			Picture_writeToPngFile_300 (praat_picture, file);
 		} else {
 			try {
 				autoGraphics graphics = Graphics_create_pngfile (file, 300, 0.0, 10.24, 0.0, 7.68);
-				Graphics_play (GRAPHICS, graphics.get());
+				Graphics_play (GRAPHICS, graphics.peek());
 			} catch (MelderError) {
 				Melder_throw (U"Picture not written to PNG file ", file, U".");
 			}
@@ -538,23 +548,25 @@ static void DO_Picture_writeToPngFile_300 (UiForm sendingForm, int /* narg */, S
 	}
 }
 
-static void DO_Picture_writeToPngFile_600 (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToPngFile_600 (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as PNG file",
-		DO_Picture_writeToPngFile_600, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToPngFile_600, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.png");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
 		if (theCurrentPraatPicture == & theForegroundPraatPicture) {
-			Picture_writeToPngFile_600 (praat_picture.get(), file);
+			Picture_writeToPngFile_600 (praat_picture, file);
 		} else {
 			try {
 				autoGraphics graphics = Graphics_create_pngfile (file, 600, 0.0, 10.24, 0.0, 7.68);
-				Graphics_play (GRAPHICS, graphics.get());
+				Graphics_play (GRAPHICS, graphics.peek());
 			} catch (MelderError) {
 				Melder_throw (U"Picture not written to PNG file ", file, U".");
 			}
@@ -562,18 +574,20 @@ static void DO_Picture_writeToPngFile_600 (UiForm sendingForm, int /* narg */, S
 	}
 }
 
-static void DO_Picture_writeToPraatPictureFile (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-	Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-{
-	static UiForm dia;
+static void DO_Picture_writeToPraatPictureFile (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+	static Any dia;
+	(void) narg;
+	(void) interpreter;
+	(void) modified;
+	(void) dummy;
 	if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as Praat picture file",
-		DO_Picture_writeToPraatPictureFile, nullptr, invokingButtonTitle, nullptr);
-	if (! sendingForm && ! args && ! sendingString) {
+		DO_Picture_writeToPraatPictureFile, NULL, invokingButtonTitle, NULL);
+	if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 		UiOutfile_do (dia, U"praat.prapic");
-	} else { MelderFile file; structMelderFile file2 { 0 };
-		if (! args && ! sendingString) file = UiFile_getFile (dia);
+	} else { MelderFile file; structMelderFile file2 = { 0 };
+		if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 		else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
-		Picture_writeToPraatPictureFile (praat_picture.get(), file);
+		Picture_writeToPraatPictureFile (praat_picture, file);
 	}
 }
 
@@ -588,29 +602,31 @@ DIRECT (PostScript_settings) {
 } END
 
 DIRECT (Print) {
-	Picture_print (praat_picture.get());
+	Picture_print (praat_picture);
 } END
 
 #ifdef _WIN32
-	static void DO_Picture_writeToWindowsMetafile (UiForm sendingForm, int /* narg */, Stackel args, const char32 *sendingString,
-		Interpreter /* interpreter */, const char32 *invokingButtonTitle, bool /* modified */, void *)
-	{
-		static UiForm dia;
+	static void DO_Picture_writeToWindowsMetafile (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter, const char32 *invokingButtonTitle, bool modified, void *dummy) {
+		static Any dia;
+		(void) narg;
+		(void) interpreter;
+		(void) modified;
+		(void) dummy;
 		if (! dia) dia = UiOutfile_create (theCurrentPraatApplication -> topShell, U"Save as Windows metafile",
-			DO_Picture_writeToWindowsMetafile, nullptr, invokingButtonTitle, nullptr);
-		if (! sendingForm && ! args && ! sendingString) {
+			DO_Picture_writeToWindowsMetafile, NULL, invokingButtonTitle, NULL);
+		if (sendingForm == NULL && args == NULL && sendingString == NULL) {
 			UiOutfile_do (dia, U"praat.emf");
-		} else { MelderFile file; structMelderFile file2 { 0 };
-			if (! args && ! sendingString) file = UiFile_getFile (dia);
+		} else { MelderFile file; structMelderFile file2 = { 0 };
+			if (args == NULL && sendingString == NULL) file = UiFile_getFile (dia);
 			else { Melder_relativePathToFile (args ? args [1]. string : sendingString, & file2); file = & file2; }
-			Picture_writeToWindowsMetafile (praat_picture.get(), file);
+			Picture_writeToWindowsMetafile (praat_picture, file);
 		}
 	}
 #endif
 
 #if defined (_WIN32) || defined (macintosh)
 	DIRECT (Copy_picture_to_clipboard) {
-		Picture_copyToClipboard (praat_picture.get());
+		Picture_copyToClipboard (praat_picture);
 	} END
 #endif
 
@@ -626,7 +642,7 @@ DIRECT (Undo) {
 
 DIRECT (Erase_all) {
 	if (theCurrentPraatPicture == & theForegroundPraatPicture) {
-		Picture_erase (praat_picture.get());   // this kills the recording
+		Picture_erase (praat_picture);   /* This kills the recording. */
 	} else {
 		Graphics_clearRecording (GRAPHICS);
 		Graphics_clearWs (GRAPHICS);
@@ -685,7 +701,7 @@ DO
 	Graphics_setFont (GRAPHICS, GET_ENUM (kGraphics_font, U"Font"));
 	Graphics_setFontSize (GRAPHICS, GET_INTEGER (U"Font size"));
 	char32 *rotation = GET_STRING (U"Rotation"), *semicolon;
-	if (!! (semicolon = str32chr (rotation, ';')))
+	if ((semicolon = str32chr (rotation, ';')) != NULL)
 		Graphics_setTextRotation_vector (GRAPHICS, Melder_atof (rotation), Melder_atof (semicolon + 1));
 	else
 		Graphics_setTextRotation (GRAPHICS, Melder_atof (rotation));
@@ -696,7 +712,7 @@ DO
 	Graphics_unsetInner (GRAPHICS);
 END2 }
 
-static void dia_line (UiForm dia) {
+static void dia_line (Any dia) {
 	REAL (U"From x", U"0.0")
 	REAL (U"From y", U"0.0")
 	REAL (U"To x", U"1.0")
@@ -735,7 +751,7 @@ DO
 	Graphics_unsetInner (GRAPHICS);
 END2 }
 
-Thing_define (PraatPictureFunction, Daata) {
+Thing_define (PraatPictureFunction, Data) {
 	// new data:
 	public:
 		double xmin, xmax, dx, x1;
@@ -747,7 +763,7 @@ Thing_define (PraatPictureFunction, Daata) {
 		virtual bool v_hasGetDx   () { return true; }   virtual double v_getDx   ()        { return dx; }
 		virtual bool v_hasGetX    () { return true; }   virtual double v_getX    (long ix) { return x1 + (ix - 1) * dx; }
 };
-Thing_implement (PraatPictureFunction, Daata, 0);
+Thing_implement (PraatPictureFunction, Data, 0);
 
 FORM (DrawFunction, U"Praat picture: Draw function", 0) {
 	LABEL (U"", U"This command assumes that the x and y axes")
@@ -773,7 +789,7 @@ DO
 	function -> nx = n;
 	function -> x1 = fromX;
 	function -> dx = (toX - fromX) / (n - 1);
-	Formula_compile (interpreter, function.get(), formula, kFormula_EXPRESSION_TYPE_NUMERIC, true);
+	Formula_compile (interpreter, function.peek(), formula, kFormula_EXPRESSION_TYPE_NUMERIC, TRUE);
 	for (long i = 1; i <= n; i ++) {
 		struct Formula_Result result;
 		Formula_run (1, i, & result);
@@ -785,7 +801,7 @@ DO
 	Graphics_unsetInner (GRAPHICS);
 END2 }
 
-static void dia_rectangle (UiForm dia) {
+static void dia_rectangle (Any dia) {
 	REAL (U"From x", U"0.0")
 	REAL (U"To x", U"1.0")
 	REAL (U"From y", U"0.0")
@@ -1006,14 +1022,14 @@ DO
 	Graphics_textBottom (GRAPHICS, GET_INTEGER (U"Far"), GET_STRING (U"text"));
 END2 }
 
-static void dia_marksEvery (UiForm dia) {
+static void dia_marksEvery (Any dia) {
 	POSITIVE (U"Units", U"1.0")
 	POSITIVE (U"Distance", U"0.1")
 	BOOLEAN (U"Write numbers", 1)
 	BOOLEAN (U"Draw ticks", 1)
 	BOOLEAN (U"Draw dotted lines", 1)
 }
-static void do_marksEvery (UiForm dia, void (*Graphics_marksEvery) (Graphics, double, double, bool, bool, bool)) {
+static void do_marksEvery (Any dia, void (*Graphics_marksEvery) (Graphics, double, double, bool, bool, bool)) {
 	autoPraatPicture picture;
 	Graphics_marksEvery (GRAPHICS, GET_REAL (U"Units"), GET_REAL (U"Distance"),
 		GET_INTEGER (U"Write numbers"),
@@ -1028,13 +1044,13 @@ FORM (Marks_bottom_every, U"Praat picture: Marks bottom every...", U"Marks left/
 FORM (Marks_top_every, U"Praat picture: Marks top every...", U"Marks left/right/top/bottom every...") {
 	dia_marksEvery (dia); OK2 DO do_marksEvery (dia, Graphics_marksTopEvery); END2 }
 
-static void dia_marks (UiForm dia) {
+static void dia_marks (Any dia) {
 	NATURAL (U"Number of marks", U"6")
 	BOOLEAN (U"Write numbers", 1)
 	BOOLEAN (U"Draw ticks", 1)
 	BOOLEAN (U"Draw dotted lines", 1)
 }
-static void do_marks (UiForm dia, void (*Graphics_marks) (Graphics, int, bool, bool, bool)) {
+static void do_marks (Any dia, void (*Graphics_marks) (Graphics, int, bool, bool, bool)) {
 	long numberOfMarks = GET_INTEGER (U"Number of marks");
 	REQUIRE (numberOfMarks >= 2, U"`Number of marks' must be at least 2.")
 	autoPraatPicture picture;
@@ -1050,13 +1066,13 @@ FORM (Marks_bottom, U"Praat picture: Marks bottom", U"Marks left/right/top/botto
 FORM (Marks_top, U"Praat picture: Marks top", U"Marks left/right/top/bottom...") {
 	dia_marks (dia); OK2 DO do_marks (dia, Graphics_marksTop); END2 }
 
-static void dia_marksLogarithmic (UiForm dia) {
+static void dia_marksLogarithmic (Any dia) {
 	NATURAL (U"Marks per decade", U"3")
 	BOOLEAN (U"Write numbers", 1)
 	BOOLEAN (U"Draw ticks", 1)
 	BOOLEAN (U"Draw dotted lines", 1)
 }
-static void do_marksLogarithmic (UiForm dia, void (*Graphics_marksLogarithmic) (Graphics, int, bool, bool, bool)) {
+static void do_marksLogarithmic (Any dia, void (*Graphics_marksLogarithmic) (Graphics, int, bool, bool, bool)) {
 	long numberOfMarksPerDecade = GET_INTEGER (U"Marks per decade");
 	autoPraatPicture picture;
 	Graphics_marksLogarithmic (GRAPHICS, numberOfMarksPerDecade, GET_INTEGER (U"Write numbers"),
@@ -1077,7 +1093,7 @@ static void sortBoundingBox (double *x1WC, double *x2WC, double *y1WC, double *y
 	if (*y1WC > *y2WC) temp = *y1WC, *y1WC = *y2WC, *y2WC = temp;
 }
 
-static void dia_oneMark (UiForm dia) {
+static void dia_oneMark (Any dia) {
 	REAL (U"Position", U"0.0")
 	BOOLEAN (U"Write number", 1)
 	BOOLEAN (U"Draw tick", 1)
@@ -1165,7 +1181,7 @@ DO
 		GET_STRING (U"text"));
 END2 }
 
-static void dia_oneLogarithmicMark (UiForm dia) {
+static void dia_oneLogarithmicMark (Any dia) {
 	REAL (U"Position", U"1.0")
 	BOOLEAN (U"Write number", 1)
 	BOOLEAN (U"Draw tick", 1)
@@ -1429,11 +1445,12 @@ DIRECT (Picture_settings_report) {
 
 /**********   **********/
 
-static void cb_selectionChanged (Picture p, void * /* closure */,
+static void cb_selectionChanged (Picture p, void *closure,
 	double selx1, double selx2, double sely1, double sely2)
 	/* The user selected a new viewport in the picture window. */
 {
-	Melder_assert (p == praat_picture.get());
+	(void) closure;
+	Melder_assert (p == praat_picture);
 	theCurrentPraatPicture -> x1NDC = selx1;
 	theCurrentPraatPicture -> x2NDC = selx2;
 	theCurrentPraatPicture -> y1NDC = sely1;
@@ -1482,11 +1499,11 @@ GuiMenu praat_picture_resolveMenu (const char32 *menu) {
 		editMenu;   // default
 }
 
-void praat_picture_exit () {
-	praat_picture.reset();
+void praat_picture_exit (void) {
+	Picture_remove (& praat_picture);
 }
 
-void praat_picture_open () {
+void praat_picture_open (void) {
 	Graphics_markGroup (GRAPHICS);   // we start a group of graphics output here
 	if (theCurrentPraatPicture == & theForegroundPraatPicture && ! theCurrentPraatApplication -> batch) {
 		#if gtk
@@ -1497,7 +1514,7 @@ void praat_picture_open () {
 			XtMapWidget (dialog -> d_xmShell);
 			XMapRaised (XtDisplay (dialog -> d_xmShell), XtWindow (dialog -> d_xmShell));
 		#endif
-		Picture_unhighlight (praat_picture.get());
+		Picture_unhighlight (praat_picture);
 	}
 	/* Foregoing drawing routines may have changed some of the output attributes */
 	/* that can be set by the user. */
@@ -1520,10 +1537,10 @@ void praat_picture_open () {
 	Graphics_setWindow (GRAPHICS, x1WC, x2WC, y1WC, y2WC);
 }
 
-void praat_picture_close () {
+void praat_picture_close (void) {
 	if (theCurrentPraatPicture != & theForegroundPraatPicture) return;
 	if (! theCurrentPraatApplication -> batch) {
-		Picture_highlight (praat_picture.get());
+		Picture_highlight (praat_picture);
 		#ifdef macintosh
 			//dialog -> f_drain ();
 		#endif
@@ -1531,27 +1548,27 @@ void praat_picture_close () {
 }
 
 Graphics praat_picture_editor_open (bool eraseFirst) {
-	if (eraseFirst) Picture_erase (praat_picture.get());
+	if (eraseFirst) Picture_erase (praat_picture);
 	praat_picture_open ();
 	return GRAPHICS;
 }
 
-void praat_picture_editor_close () {
+void praat_picture_editor_close (void) {
 	praat_picture_close ();
 }
 
-static autoDaata pictureRecognizer (int nread, const char *header, MelderFile file) {
-	if (nread < 2) return autoDaata ();
-	if (strnequ (header, "PraatPictureFile", 16)) {
-		Picture_readFromPraatPictureFile (praat_picture.get(), file);
-		return Thing_new (Daata);   // a dummy
+static Any pictureRecognizer (int nread, const char *header, MelderFile file) {
+	if (nread < 2) return NULL;
+	if (strnequ (header, "PraatPictureFile", 16))
+	{
+		Picture_readFromPraatPictureFile (praat_picture, file); return (Any) 1;
 	}
-	return autoDaata ();
+	return NULL;
 }
 
-void praat_picture_init () {
+void praat_picture_init (void) {
 	GuiScrolledWindow scrollWindow;
-	GuiDrawingArea drawingArea = nullptr;
+	GuiDrawingArea drawingArea = NULL;
 	int margin, width, height, resolution, x, y;
 	theCurrentPraatPicture -> lineType = Graphics_DRAWN;
 	theCurrentPraatPicture -> colour = Graphics_BLACK;
@@ -1568,7 +1585,7 @@ void praat_picture_init () {
 	if (! theCurrentPraatApplication -> batch) {
 		double screenX, screenY, screenWidth, screenHeight;
 		Gui_getWindowPositioningBounds (& screenX, & screenY, & screenWidth, & screenHeight);
-		resolution = Gui_getResolution (nullptr);
+		resolution = Gui_getResolution (NULL);
 		#if defined (macintosh)
 			margin = 2, width = 6 * resolution + 20;
 			height = 9 * resolution + Machine_getMenuBarHeight () + 24;
@@ -1587,7 +1604,7 @@ void praat_picture_init () {
 			y = screenY + 0;
 			width += margin * 2;
 		#endif
-		dialog = GuiWindow_create (x, y, width, height, 400, 200, Melder_cat (praatP.title, U" Picture"), nullptr, nullptr, 0);
+		dialog = GuiWindow_create (x, y, width, height, 400, 200, Melder_cat (praatP.title, U" Picture"), NULL, NULL, 0);
 		GuiWindow_addMenuBar (dialog);
 	}
 	if (! theCurrentPraatApplication -> batch) {
@@ -1601,192 +1618,192 @@ void praat_picture_init () {
 		helpMenu =    GuiMenu_createInWindow (dialog, U"Help", 0);
 	}
 
-	praat_addMenuCommand (U"Picture", U"File", U"Picture info", nullptr, 0, DO_Picture_settings_report);
-	praat_addMenuCommand (U"Picture", U"File", U"Picture settings report", nullptr, praat_HIDDEN, DO_Picture_settings_report);
-	praat_addMenuCommand (U"Picture", U"File", U"-- save --", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Picture", U"File", U"Picture info", 0, 0, DO_Picture_settings_report);
+	praat_addMenuCommand (U"Picture", U"File", U"Picture settings report", 0, praat_HIDDEN, DO_Picture_settings_report);
+	praat_addMenuCommand (U"Picture", U"File", U"-- save --", 0, 0, 0);
 	#if defined (macintosh) || defined (UNIX)
-		praat_addMenuCommand (U"Picture", U"File", U"Save as PDF file...", nullptr, 'S', DO_Picture_writeToPdfFile);
-		praat_addMenuCommand (U"Picture", U"File", U"Write to PDF file...", nullptr, praat_HIDDEN, DO_Picture_writeToPdfFile);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as PDF file...", 0, 'S', DO_Picture_writeToPdfFile);
+		praat_addMenuCommand (U"Picture", U"File", U"Write to PDF file...", 0, praat_HIDDEN, DO_Picture_writeToPdfFile);
 	#endif
-	praat_addMenuCommand (U"Picture", U"File", U"Save as 300-dpi PNG file...", nullptr, 0, DO_Picture_writeToPngFile_300);
+	praat_addMenuCommand (U"Picture", U"File", U"Save as 300-dpi PNG file...", 0, 0, DO_Picture_writeToPngFile_300);
 	#if defined (_WIN32)
-		praat_addMenuCommand (U"Picture", U"File", U"Save as 600-dpi PNG file...", nullptr, 'S', DO_Picture_writeToPngFile_600);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as 600-dpi PNG file...", 0, 'S', DO_Picture_writeToPngFile_600);
 	#endif
 	#if defined (macintosh) || defined (UNIX)
-		praat_addMenuCommand (U"Picture", U"File", U"Save as 600-dpi PNG file...", nullptr, 0, DO_Picture_writeToPngFile_600);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as 600-dpi PNG file...", 0, 0, DO_Picture_writeToPngFile_600);
 	#endif
-	praat_addMenuCommand (U"Picture", U"File", U"Save as EPS file", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Picture", U"File", U"PostScript settings...", nullptr, 1, DO_PostScript_settings);
-		praat_addMenuCommand (U"Picture", U"File", U"Save as EPS file...", nullptr, 1, DO_Picture_writeToEpsFile);
-		praat_addMenuCommand (U"Picture", U"File", U"Write to EPS file...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToEpsFile);
-		praat_addMenuCommand (U"Picture", U"File", U"Save as fontless EPS file (XIPA)...", nullptr, 1, DO_Picture_writeToFontlessEpsFile_xipa);
-		praat_addMenuCommand (U"Picture", U"File", U"Write to fontless EPS file (XIPA)...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToFontlessEpsFile_xipa);
-		praat_addMenuCommand (U"Picture", U"File", U"Save as fontless EPS file (SILIPA)...", nullptr, 1, DO_Picture_writeToFontlessEpsFile_silipa);
-		praat_addMenuCommand (U"Picture", U"File", U"Write to fontless EPS file (SILIPA)...", nullptr, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToFontlessEpsFile_silipa);
+	praat_addMenuCommand (U"Picture", U"File", U"Save as EPS file", 0, 0, NULL);
+		praat_addMenuCommand (U"Picture", U"File", U"PostScript settings...", 0, 1, DO_PostScript_settings);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as EPS file...", 0, 1, DO_Picture_writeToEpsFile);
+		praat_addMenuCommand (U"Picture", U"File", U"Write to EPS file...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToEpsFile);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as fontless EPS file (XIPA)...", 0, 1, DO_Picture_writeToFontlessEpsFile_xipa);
+		praat_addMenuCommand (U"Picture", U"File", U"Write to fontless EPS file (XIPA)...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToFontlessEpsFile_xipa);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as fontless EPS file (SILIPA)...", 0, 1, DO_Picture_writeToFontlessEpsFile_silipa);
+		praat_addMenuCommand (U"Picture", U"File", U"Write to fontless EPS file (SILIPA)...", 0, praat_HIDDEN + praat_DEPTH_1, DO_Picture_writeToFontlessEpsFile_silipa);
 	#ifdef _WIN32
-		praat_addMenuCommand (U"Picture", U"File", U"Save as Windows metafile...", nullptr, 0, DO_Picture_writeToWindowsMetafile);
-		praat_addMenuCommand (U"Picture", U"File", U"Write to Windows metafile...", nullptr, praat_HIDDEN, DO_Picture_writeToWindowsMetafile);
+		praat_addMenuCommand (U"Picture", U"File", U"Save as Windows metafile...", 0, 0, DO_Picture_writeToWindowsMetafile);
+		praat_addMenuCommand (U"Picture", U"File", U"Write to Windows metafile...", 0, praat_HIDDEN, DO_Picture_writeToWindowsMetafile);
 	#endif
-	praat_addMenuCommand (U"Picture", U"File", U"-- praat picture file --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"File", U"Read from praat picture file...", nullptr, 0, DO_Picture_readFromPraatPictureFile);
-	praat_addMenuCommand (U"Picture", U"File", U"Save as praat picture file...", nullptr, 0, DO_Picture_writeToPraatPictureFile);
-	praat_addMenuCommand (U"Picture", U"File", U"Write to praat picture file...", nullptr, praat_HIDDEN, DO_Picture_writeToPraatPictureFile);
-	praat_addMenuCommand (U"Picture", U"File", U"-- print --", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Picture", U"File", U"-- praat picture file --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"File", U"Read from praat picture file...", 0, 0, DO_Picture_readFromPraatPictureFile);
+	praat_addMenuCommand (U"Picture", U"File", U"Save as praat picture file...", 0, 0, DO_Picture_writeToPraatPictureFile);
+	praat_addMenuCommand (U"Picture", U"File", U"Write to praat picture file...", 0, praat_HIDDEN, DO_Picture_writeToPraatPictureFile);
+	praat_addMenuCommand (U"Picture", U"File", U"-- print --", 0, 0, 0);
 	#if defined (macintosh)
-		praat_addMenuCommand (U"Picture", U"File", U"Page setup...", nullptr, 0, DO_Page_setup);
+		praat_addMenuCommand (U"Picture", U"File", U"Page setup...", 0, 0, DO_Page_setup);
 	#endif
-	praat_addMenuCommand (U"Picture", U"File", U"Print...", nullptr, 'P', DO_Print);
+	praat_addMenuCommand (U"Picture", U"File", U"Print...", 0, 'P', DO_Print);
 
-	praat_addMenuCommand (U"Picture", U"Edit", U"Undo", nullptr, 'Z', DO_Undo);
+	praat_addMenuCommand (U"Picture", U"Edit", U"Undo", 0, 'Z', DO_Undo);
 	#if defined (macintosh) || defined (_WIN32)
-		praat_addMenuCommand (U"Picture", U"Edit", U"-- clipboard --", nullptr, 0, nullptr);
-		praat_addMenuCommand (U"Picture", U"Edit", U"Copy to clipboard", nullptr, 'C', DO_Copy_picture_to_clipboard);
+		praat_addMenuCommand (U"Picture", U"Edit", U"-- clipboard --", 0, 0, 0);
+		praat_addMenuCommand (U"Picture", U"Edit", U"Copy to clipboard", 0, 'C', DO_Copy_picture_to_clipboard);
 	#endif
-	praat_addMenuCommand (U"Picture", U"Edit", U"-- erase --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Edit", U"Erase all", nullptr, 'E', DO_Erase_all);
-
-	praat_addMenuCommand (U"Picture", U"Margins", U"Draw inner box", nullptr, 0, DO_DrawInnerBox);
-	praat_addMenuCommand (U"Picture", U"Margins", U"-- text --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Text left...", nullptr, 0, DO_Text_left);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Text right...", nullptr, 0, DO_Text_right);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Text top...", nullptr, 0, DO_Text_top);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Text bottom...", nullptr, 0, DO_Text_bottom);
-	praat_addMenuCommand (U"Picture", U"Margins", U"-- marks every --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks left every...", nullptr, 0, DO_Marks_left_every);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks right every...", nullptr, 0, DO_Marks_right_every);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks bottom every...", nullptr, 0, DO_Marks_bottom_every);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks top every...", nullptr, 0, DO_Marks_top_every);
-	praat_addMenuCommand (U"Picture", U"Margins", U"-- one mark --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One mark left...", nullptr, 0, DO_Mark_left);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One mark right...", nullptr, 0, DO_Mark_right);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One mark bottom...", nullptr, 0, DO_Mark_bottom);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One mark top...", nullptr, 0, DO_Mark_top);
-	praat_addMenuCommand (U"Picture", U"Margins", U"-- marks --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks left...", nullptr, 1, DO_Marks_left);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks right...", nullptr, 1, DO_Marks_right);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks bottom...", nullptr, 1, DO_Marks_bottom);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Marks top...", nullptr, 1, DO_Marks_top);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks left...", nullptr, 1, DO_marksLeftLogarithmic);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks right...", nullptr, 1, DO_marksRightLogarithmic);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks bottom...", nullptr, 1, DO_marksBottomLogarithmic);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks top...", nullptr, 1, DO_marksTopLogarithmic);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark left...", nullptr, 1, DO_LogarithmicMark_left);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark right...", nullptr, 1, DO_LogarithmicMark_right);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark bottom...", nullptr, 1, DO_LogarithmicMark_bottom);
-	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark top...", nullptr, 1, DO_LogarithmicMark_top);
-	praat_addMenuCommand (U"Picture", U"Margins", U"-- axes --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Margins", U"Axes...", nullptr, 0, DO_Axes);
-
-	praat_addMenuCommand (U"Picture", U"World", U"Text...", nullptr, 0, DO_Text);
-	praat_addMenuCommand (U"Picture", U"World", U"Text special...", nullptr, 0, DO_Text_special);
-	praat_addMenuCommand (U"Picture", U"World", U"-- line --", nullptr, 0, 0);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw line...", nullptr, 0, DO_DrawLine);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw arrow...", nullptr, 0, DO_DrawArrow);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw two-way arrow...", nullptr, 0, DO_DrawDoubleArrow);
-	praat_addMenuCommand (U"Picture", U"World", U"-- function --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw function...", nullptr, 0, DO_DrawFunction);
-	praat_addMenuCommand (U"Picture", U"World", U"-- rectangle --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw rectangle...", nullptr, 0, DO_DrawRectangle);
-	praat_addMenuCommand (U"Picture", U"World", U"Paint rectangle...", nullptr, 0, DO_PaintRectangle);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw rounded rectangle...", nullptr, 0, DO_DrawRoundedRectangle);
-	praat_addMenuCommand (U"Picture", U"World", U"Paint rounded rectangle...", nullptr, 0, DO_PaintRoundedRectangle);
-	praat_addMenuCommand (U"Picture", U"World", U"-- arc --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw arc...", nullptr, 0, DO_DrawArc);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw ellipse...", nullptr, 0, DO_DrawEllipse);
-	praat_addMenuCommand (U"Picture", U"World", U"Paint ellipse...", nullptr, 0, DO_PaintEllipse);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw circle...", nullptr, 0, DO_DrawCircle);
-	praat_addMenuCommand (U"Picture", U"World", U"Paint circle...", nullptr, 0, DO_PaintCircle);
-	praat_addMenuCommand (U"Picture", U"World", U"Draw circle (mm)...", nullptr, 0, DO_DrawCircle_mm);
-	praat_addMenuCommand (U"Picture", U"World", U"Paint circle (mm)...", nullptr, 0, DO_PaintCircle_mm);
-	praat_addMenuCommand (U"Picture", U"World", U"-- picture --", nullptr, 0, 0);
-	praat_addMenuCommand (U"Picture", U"World", U"Insert picture from file...", nullptr, 0, DO_InsertPictureFromFile);
-	praat_addMenuCommand (U"Picture", U"World", U"-- axes --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Axes...", nullptr, 0, DO_Axes);
-	praat_addMenuCommand (U"Picture", U"World", U"Measure", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Horizontal mm to wc...", nullptr, 1, DO_dxMMtoWC);
-	praat_addMenuCommand (U"Picture", U"World", U"Horizontal wc to mm...", nullptr, 1, DO_dxWCtoMM);
-	praat_addMenuCommand (U"Picture", U"World", U"Vertical mm to wc...", nullptr, 1, DO_dyMMtoWC);
-	praat_addMenuCommand (U"Picture", U"World", U"Vertical wc to mm...", nullptr, 1, DO_dyWCtoMM);
-	praat_addMenuCommand (U"Picture", U"World", U"-- text measure --", nullptr, 1, nullptr);
-	praat_addMenuCommand (U"Picture", U"World", U"Text width (wc)...", nullptr, 1, DO_textWidth_wc);
-	praat_addMenuCommand (U"Picture", U"World", U"Text width (mm)...", nullptr, 1, DO_textWidth_mm);
-	praat_addMenuCommand (U"Picture", U"World", U"PostScript text width (wc)...", nullptr, 1, DO_textWidth_ps_wc);
-	praat_addMenuCommand (U"Picture", U"World", U"PostScript text width (mm)...", nullptr, 1, DO_textWidth_ps_mm);
-
-	praatButton_innerViewport = praat_addMenuCommand (U"Picture", U"Select", U"Mouse selects inner viewport", nullptr, praat_RADIO_FIRST, DO_MouseSelectsInnerViewport);
-	praatButton_outerViewport = praat_addMenuCommand (U"Picture", U"Select", U"Mouse selects outer viewport", nullptr, praat_RADIO_NEXT, DO_MouseSelectsOuterViewport);
-	praat_addMenuCommand (U"Picture", U"Select", U"-- select --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Select", U"Select inner viewport...", nullptr, 0, DO_SelectInnerViewport);
-	praat_addMenuCommand (U"Picture", U"Select", U"Select outer viewport...", nullptr, 0, DO_SelectOuterViewport);
-	praat_addMenuCommand (U"Picture", U"Select", U"Viewport...", nullptr, praat_HIDDEN, DO_SelectOuterViewport);
-	praat_addMenuCommand (U"Picture", U"Select", U"-- viewport drawing --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Select", U"Viewport text...", nullptr, 0, DO_ViewportText);
-
-	praatButton_lines [Graphics_DRAWN] = praat_addMenuCommand (U"Picture", U"Pen", U"Solid line", nullptr, praat_RADIO_FIRST, DO_Solid_line);
-	praat_addMenuCommand (U"Picture", U"Pen", U"Plain line", nullptr, praat_RADIO_NEXT | praat_HIDDEN, DO_Solid_line);
-	praatButton_lines [Graphics_DOTTED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dotted line", nullptr, praat_RADIO_NEXT, DO_Dotted_line);
-	praatButton_lines [Graphics_DASHED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dashed line", nullptr, praat_RADIO_NEXT, DO_Dashed_line);
-	praatButton_lines [Graphics_DASHED_DOTTED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dashed-dotted line", nullptr, praat_RADIO_NEXT, DO_Dashed_dotted_line);
-	praat_addMenuCommand (U"Picture", U"Pen", U"-- line width --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Pen", U"Line width...", nullptr, 0, DO_Line_width);
-	praat_addMenuCommand (U"Picture", U"Pen", U"Arrow size...", nullptr, 0, DO_Arrow_size);
-	praat_addMenuCommand (U"Picture", U"Pen", U"Speckle size...", nullptr, 0, DO_Speckle_size);
-	praat_addMenuCommand (U"Picture", U"Pen", U"-- colour --", nullptr, 0, nullptr);
-	praat_addMenuCommand (U"Picture", U"Pen", U"Colour...", nullptr, 0, DO_Colour);
-	praatButton_black = praat_addMenuCommand (U"Picture", U"Pen", U"Black", nullptr, praat_CHECKBUTTON, DO_Black);
-	praatButton_white = praat_addMenuCommand (U"Picture", U"Pen", U"White", nullptr, praat_CHECKBUTTON, DO_White);
-	praatButton_red = praat_addMenuCommand (U"Picture", U"Pen", U"Red", nullptr, praat_CHECKBUTTON, DO_Red);
-	praatButton_green = praat_addMenuCommand (U"Picture", U"Pen", U"Green", nullptr, praat_CHECKBUTTON, DO_Green);
-	praatButton_blue = praat_addMenuCommand (U"Picture", U"Pen", U"Blue", nullptr, praat_CHECKBUTTON, DO_Blue);
-	praatButton_yellow = praat_addMenuCommand (U"Picture", U"Pen", U"Yellow", nullptr, praat_CHECKBUTTON, DO_Yellow);
-	praatButton_cyan = praat_addMenuCommand (U"Picture", U"Pen", U"Cyan", nullptr, praat_CHECKBUTTON, DO_Cyan);
-	praatButton_magenta = praat_addMenuCommand (U"Picture", U"Pen", U"Magenta", nullptr, praat_CHECKBUTTON, DO_Magenta);
-	praatButton_maroon = praat_addMenuCommand (U"Picture", U"Pen", U"Maroon", nullptr, praat_CHECKBUTTON, DO_Maroon);
-	praatButton_lime = praat_addMenuCommand (U"Picture", U"Pen", U"Lime", nullptr, praat_CHECKBUTTON, DO_Lime);
-	praatButton_navy = praat_addMenuCommand (U"Picture", U"Pen", U"Navy", nullptr, praat_CHECKBUTTON, DO_Navy);
-	praatButton_teal = praat_addMenuCommand (U"Picture", U"Pen", U"Teal", nullptr, praat_CHECKBUTTON, DO_Teal);
-	praatButton_purple = praat_addMenuCommand (U"Picture", U"Pen", U"Purple", nullptr, praat_CHECKBUTTON, DO_Purple);
-	praatButton_olive = praat_addMenuCommand (U"Picture", U"Pen", U"Olive", nullptr, praat_CHECKBUTTON, DO_Olive);
-	praatButton_pink = praat_addMenuCommand (U"Picture", U"Pen", U"Pink", nullptr, praat_CHECKBUTTON, DO_Pink);
-	praatButton_silver = praat_addMenuCommand (U"Picture", U"Pen", U"Silver", nullptr, praat_CHECKBUTTON, DO_Silver);
-	praatButton_grey = praat_addMenuCommand (U"Picture", U"Pen", U"Grey", nullptr, praat_CHECKBUTTON, DO_Grey);
-
-	praat_addMenuCommand (U"Picture", U"Font", U"Font size...", nullptr, 0, DO_Font_size);
-	praatButton_10 = praat_addMenuCommand (U"Picture", U"Font", U"10", nullptr, praat_CHECKBUTTON, DO_10);
-	praatButton_12 = praat_addMenuCommand (U"Picture", U"Font", U"12", nullptr, praat_CHECKBUTTON, DO_12);
-	praatButton_14 = praat_addMenuCommand (U"Picture", U"Font", U"14", nullptr, praat_CHECKBUTTON, DO_14);
-	praatButton_18 = praat_addMenuCommand (U"Picture", U"Font", U"18", nullptr, praat_CHECKBUTTON, DO_18);
-	praatButton_24 = praat_addMenuCommand (U"Picture", U"Font", U"24", nullptr, praat_CHECKBUTTON, DO_24);
-	praat_addMenuCommand (U"Picture", U"Font", U"-- font ---", nullptr, 0, nullptr);
-	praatButton_fonts [kGraphics_font_TIMES] = praat_addMenuCommand (U"Picture", U"Font", U"Times", nullptr, praat_RADIO_FIRST, DO_Times);
-	praatButton_fonts [kGraphics_font_HELVETICA] = praat_addMenuCommand (U"Picture", U"Font", U"Helvetica", nullptr, praat_RADIO_NEXT, DO_Helvetica);
-	praatButton_fonts [kGraphics_font_PALATINO] = praat_addMenuCommand (U"Picture", U"Font", U"Palatino", nullptr, praat_RADIO_NEXT, DO_Palatino);
-	praatButton_fonts [kGraphics_font_COURIER] = praat_addMenuCommand (U"Picture", U"Font", U"Courier", nullptr, praat_RADIO_NEXT, DO_Courier);
-
-	praat_addMenuCommand (U"Picture", U"Help", U"Picture window help", nullptr, '?', DO_PictureWindowHelp);
-	praat_addMenuCommand (U"Picture", U"Help", U"About special symbols", nullptr, 0, DO_AboutSpecialSymbols);
-	praat_addMenuCommand (U"Picture", U"Help", U"About text styles", nullptr, 0, DO_AboutTextStyles);
-	praat_addMenuCommand (U"Picture", U"Help", U"Phonetic symbols", nullptr, 0, DO_PhoneticSymbols);
-	praat_addMenuCommand (U"Picture", U"Help", U"-- manual --", nullptr, 0, nullptr);
+	praat_addMenuCommand (U"Picture", U"Edit", U"-- erase --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Edit", U"Erase all", 0, 'E', DO_Erase_all);
+
+	praat_addMenuCommand (U"Picture", U"Margins", U"Draw inner box", 0, 0, DO_DrawInnerBox);
+	praat_addMenuCommand (U"Picture", U"Margins", U"-- text --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Text left...", 0, 0, DO_Text_left);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Text right...", 0, 0, DO_Text_right);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Text top...", 0, 0, DO_Text_top);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Text bottom...", 0, 0, DO_Text_bottom);
+	praat_addMenuCommand (U"Picture", U"Margins", U"-- marks every --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks left every...", 0, 0, DO_Marks_left_every);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks right every...", 0, 0, DO_Marks_right_every);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks bottom every...", 0, 0, DO_Marks_bottom_every);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks top every...", 0, 0, DO_Marks_top_every);
+	praat_addMenuCommand (U"Picture", U"Margins", U"-- one mark --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One mark left...", 0, 0, DO_Mark_left);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One mark right...", 0, 0, DO_Mark_right);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One mark bottom...", 0, 0, DO_Mark_bottom);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One mark top...", 0, 0, DO_Mark_top);
+	praat_addMenuCommand (U"Picture", U"Margins", U"-- marks --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks left...", 0, 1, DO_Marks_left);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks right...", 0, 1, DO_Marks_right);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks bottom...", 0, 1, DO_Marks_bottom);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Marks top...", 0, 1, DO_Marks_top);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks left...", 0, 1, DO_marksLeftLogarithmic);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks right...", 0, 1, DO_marksRightLogarithmic);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks bottom...", 0, 1, DO_marksBottomLogarithmic);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Logarithmic marks top...", 0, 1, DO_marksTopLogarithmic);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark left...", 0, 1, DO_LogarithmicMark_left);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark right...", 0, 1, DO_LogarithmicMark_right);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark bottom...", 0, 1, DO_LogarithmicMark_bottom);
+	praat_addMenuCommand (U"Picture", U"Margins", U"One logarithmic mark top...", 0, 1, DO_LogarithmicMark_top);
+	praat_addMenuCommand (U"Picture", U"Margins", U"-- axes --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Margins", U"Axes...", 0, 0, DO_Axes);
+
+	praat_addMenuCommand (U"Picture", U"World", U"Text...", 0, 0, DO_Text);
+	praat_addMenuCommand (U"Picture", U"World", U"Text special...", 0, 0, DO_Text_special);
+	praat_addMenuCommand (U"Picture", U"World", U"-- line --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw line...", 0, 0, DO_DrawLine);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw arrow...", 0, 0, DO_DrawArrow);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw two-way arrow...", 0, 0, DO_DrawDoubleArrow);
+	praat_addMenuCommand (U"Picture", U"World", U"-- function --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw function...", 0, 0, DO_DrawFunction);
+	praat_addMenuCommand (U"Picture", U"World", U"-- rectangle --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw rectangle...", 0, 0, DO_DrawRectangle);
+	praat_addMenuCommand (U"Picture", U"World", U"Paint rectangle...", 0, 0, DO_PaintRectangle);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw rounded rectangle...", 0, 0, DO_DrawRoundedRectangle);
+	praat_addMenuCommand (U"Picture", U"World", U"Paint rounded rectangle...", 0, 0, DO_PaintRoundedRectangle);
+	praat_addMenuCommand (U"Picture", U"World", U"-- arc --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw arc...", 0, 0, DO_DrawArc);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw ellipse...", 0, 0, DO_DrawEllipse);
+	praat_addMenuCommand (U"Picture", U"World", U"Paint ellipse...", 0, 0, DO_PaintEllipse);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw circle...", 0, 0, DO_DrawCircle);
+	praat_addMenuCommand (U"Picture", U"World", U"Paint circle...", 0, 0, DO_PaintCircle);
+	praat_addMenuCommand (U"Picture", U"World", U"Draw circle (mm)...", 0, 0, DO_DrawCircle_mm);
+	praat_addMenuCommand (U"Picture", U"World", U"Paint circle (mm)...", 0, 0, DO_PaintCircle_mm);
+	praat_addMenuCommand (U"Picture", U"World", U"-- picture --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Insert picture from file...", 0, 0, DO_InsertPictureFromFile);
+	praat_addMenuCommand (U"Picture", U"World", U"-- axes --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Axes...", 0, 0, DO_Axes);
+	praat_addMenuCommand (U"Picture", U"World", U"Measure", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Horizontal mm to wc...", 0, 1, DO_dxMMtoWC);
+	praat_addMenuCommand (U"Picture", U"World", U"Horizontal wc to mm...", 0, 1, DO_dxWCtoMM);
+	praat_addMenuCommand (U"Picture", U"World", U"Vertical mm to wc...", 0, 1, DO_dyMMtoWC);
+	praat_addMenuCommand (U"Picture", U"World", U"Vertical wc to mm...", 0, 1, DO_dyWCtoMM);
+	praat_addMenuCommand (U"Picture", U"World", U"-- text measure --", 0, 1, 0);
+	praat_addMenuCommand (U"Picture", U"World", U"Text width (wc)...", 0, 1, DO_textWidth_wc);
+	praat_addMenuCommand (U"Picture", U"World", U"Text width (mm)...", 0, 1, DO_textWidth_mm);
+	praat_addMenuCommand (U"Picture", U"World", U"PostScript text width (wc)...", 0, 1, DO_textWidth_ps_wc);
+	praat_addMenuCommand (U"Picture", U"World", U"PostScript text width (mm)...", 0, 1, DO_textWidth_ps_mm);
+
+	praatButton_innerViewport = praat_addMenuCommand (U"Picture", U"Select", U"Mouse selects inner viewport", 0, praat_RADIO_FIRST, DO_MouseSelectsInnerViewport);
+	praatButton_outerViewport = praat_addMenuCommand (U"Picture", U"Select", U"Mouse selects outer viewport", 0, praat_RADIO_NEXT, DO_MouseSelectsOuterViewport);
+	praat_addMenuCommand (U"Picture", U"Select", U"-- select --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Select", U"Select inner viewport...", 0, 0, DO_SelectInnerViewport);
+	praat_addMenuCommand (U"Picture", U"Select", U"Select outer viewport...", 0, 0, DO_SelectOuterViewport);
+	praat_addMenuCommand (U"Picture", U"Select", U"Viewport...", 0, praat_HIDDEN, DO_SelectOuterViewport);
+	praat_addMenuCommand (U"Picture", U"Select", U"-- viewport drawing --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Select", U"Viewport text...", 0, 0, DO_ViewportText);
+
+	praatButton_lines [Graphics_DRAWN] = praat_addMenuCommand (U"Picture", U"Pen", U"Solid line", 0, praat_RADIO_FIRST, DO_Solid_line);
+	praat_addMenuCommand (U"Picture", U"Pen", U"Plain line", 0, praat_RADIO_NEXT | praat_HIDDEN, DO_Solid_line);
+	praatButton_lines [Graphics_DOTTED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dotted line", 0, praat_RADIO_NEXT, DO_Dotted_line);
+	praatButton_lines [Graphics_DASHED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dashed line", 0, praat_RADIO_NEXT, DO_Dashed_line);
+	praatButton_lines [Graphics_DASHED_DOTTED] = praat_addMenuCommand (U"Picture", U"Pen", U"Dashed-dotted line", 0, praat_RADIO_NEXT, DO_Dashed_dotted_line);
+	praat_addMenuCommand (U"Picture", U"Pen", U"-- line width --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Pen", U"Line width...", 0, 0, DO_Line_width);
+	praat_addMenuCommand (U"Picture", U"Pen", U"Arrow size...", 0, 0, DO_Arrow_size);
+	praat_addMenuCommand (U"Picture", U"Pen", U"Speckle size...", 0, 0, DO_Speckle_size);
+	praat_addMenuCommand (U"Picture", U"Pen", U"-- colour --", 0, 0, 0);
+	praat_addMenuCommand (U"Picture", U"Pen", U"Colour...", 0, 0, DO_Colour);
+	praatButton_black = praat_addMenuCommand (U"Picture", U"Pen", U"Black", 0, praat_CHECKBUTTON, DO_Black);
+	praatButton_white = praat_addMenuCommand (U"Picture", U"Pen", U"White", 0, praat_CHECKBUTTON, DO_White);
+	praatButton_red = praat_addMenuCommand (U"Picture", U"Pen", U"Red", 0, praat_CHECKBUTTON, DO_Red);
+	praatButton_green = praat_addMenuCommand (U"Picture", U"Pen", U"Green", 0, praat_CHECKBUTTON, DO_Green);
+	praatButton_blue = praat_addMenuCommand (U"Picture", U"Pen", U"Blue", 0, praat_CHECKBUTTON, DO_Blue);
+	praatButton_yellow = praat_addMenuCommand (U"Picture", U"Pen", U"Yellow", 0, praat_CHECKBUTTON, DO_Yellow);
+	praatButton_cyan = praat_addMenuCommand (U"Picture", U"Pen", U"Cyan", 0, praat_CHECKBUTTON, DO_Cyan);
+	praatButton_magenta = praat_addMenuCommand (U"Picture", U"Pen", U"Magenta", 0, praat_CHECKBUTTON, DO_Magenta);
+	praatButton_maroon = praat_addMenuCommand (U"Picture", U"Pen", U"Maroon", 0, praat_CHECKBUTTON, DO_Maroon);
+	praatButton_lime = praat_addMenuCommand (U"Picture", U"Pen", U"Lime", 0, praat_CHECKBUTTON, DO_Lime);
+	praatButton_navy = praat_addMenuCommand (U"Picture", U"Pen", U"Navy", 0, praat_CHECKBUTTON, DO_Navy);
+	praatButton_teal = praat_addMenuCommand (U"Picture", U"Pen", U"Teal", 0, praat_CHECKBUTTON, DO_Teal);
+	praatButton_purple = praat_addMenuCommand (U"Picture", U"Pen", U"Purple", 0, praat_CHECKBUTTON, DO_Purple);
+	praatButton_olive = praat_addMenuCommand (U"Picture", U"Pen", U"Olive", 0, praat_CHECKBUTTON, DO_Olive);
+	praatButton_pink = praat_addMenuCommand (U"Picture", U"Pen", U"Pink", 0, praat_CHECKBUTTON, DO_Pink);
+	praatButton_silver = praat_addMenuCommand (U"Picture", U"Pen", U"Silver", 0, praat_CHECKBUTTON, DO_Silver);
+	praatButton_grey = praat_addMenuCommand (U"Picture", U"Pen", U"Grey", 0, praat_CHECKBUTTON, DO_Grey);
+
+	praat_addMenuCommand (U"Picture", U"Font", U"Font size...", 0, 0, DO_Font_size);
+	praatButton_10 = praat_addMenuCommand (U"Picture", U"Font", U"10", 0, praat_CHECKBUTTON, DO_10);
+	praatButton_12 = praat_addMenuCommand (U"Picture", U"Font", U"12", 0, praat_CHECKBUTTON, DO_12);
+	praatButton_14 = praat_addMenuCommand (U"Picture", U"Font", U"14", 0, praat_CHECKBUTTON, DO_14);
+	praatButton_18 = praat_addMenuCommand (U"Picture", U"Font", U"18", 0, praat_CHECKBUTTON, DO_18);
+	praatButton_24 = praat_addMenuCommand (U"Picture", U"Font", U"24", 0, praat_CHECKBUTTON, DO_24);
+	praat_addMenuCommand (U"Picture", U"Font", U"-- font ---", 0, 0, 0);
+	praatButton_fonts [kGraphics_font_TIMES] = praat_addMenuCommand (U"Picture", U"Font", U"Times", 0, praat_RADIO_FIRST, DO_Times);
+	praatButton_fonts [kGraphics_font_HELVETICA] = praat_addMenuCommand (U"Picture", U"Font", U"Helvetica", 0, praat_RADIO_NEXT, DO_Helvetica);
+	praatButton_fonts [kGraphics_font_PALATINO] = praat_addMenuCommand (U"Picture", U"Font", U"Palatino", 0, praat_RADIO_NEXT, DO_Palatino);
+	praatButton_fonts [kGraphics_font_COURIER] = praat_addMenuCommand (U"Picture", U"Font", U"Courier", 0, praat_RADIO_NEXT, DO_Courier);
+
+	praat_addMenuCommand (U"Picture", U"Help", U"Picture window help", 0, '?', DO_PictureWindowHelp);
+	praat_addMenuCommand (U"Picture", U"Help", U"About special symbols", 0, 0, DO_AboutSpecialSymbols);
+	praat_addMenuCommand (U"Picture", U"Help", U"About text styles", 0, 0, DO_AboutTextStyles);
+	praat_addMenuCommand (U"Picture", U"Help", U"Phonetic symbols", 0, 0, DO_PhoneticSymbols);
+	praat_addMenuCommand (U"Picture", U"Help", U"-- manual --", 0, 0, 0);
 	praat_addMenuCommand (U"Picture", U"Help",
 		Melder_cat (U"Search ", praatP.title, U" manual..."),
-		nullptr, 'M', DO_SearchManual);
+		0, 'M', DO_SearchManual);
 
 	if (! theCurrentPraatApplication -> batch) {
 		width = height = resolution * 12;
 		scrollWindow = GuiScrolledWindow_createShown (dialog, margin, 0, Machine_getMenuBarHeight () + margin, 0, 1, 1, 0);
-		drawingArea = GuiDrawingArea_createShown (scrollWindow, width, height, nullptr, nullptr, nullptr, nullptr, nullptr, 0);
+		drawingArea = GuiDrawingArea_createShown (scrollWindow, width, height, NULL, NULL, NULL, NULL, NULL, 0);
 		GuiThing_show (dialog);
 	}
 
 	// TODO: Paul: deze moet VOOR de update functies anders krijgen die void_me 0x0
-	praat_picture = Picture_create (drawingArea, ! theCurrentPraatApplication -> batch);
+	praat_picture = Picture_create (drawingArea, ! theCurrentPraatApplication -> batch);	
 	// READ THIS!
-	Picture_setSelectionChangedCallback (praat_picture.get(), cb_selectionChanged, nullptr);
-	theCurrentPraatPicture -> graphics = static_cast<Graphics> (Picture_peekGraphics (praat_picture.get()));
+	Picture_setSelectionChangedCallback (praat_picture, cb_selectionChanged, NULL);
+	theCurrentPraatPicture -> graphics = static_cast<Graphics> (Picture_getGraphics (praat_picture));
 
 	updatePenMenu ();
 	updateFontMenu ();
@@ -1794,31 +1811,31 @@ void praat_picture_init () {
 	updateViewportMenu ();
 }
 
-void praat_picture_prefsChanged () {
+void praat_picture_prefsChanged (void) {
 	updateFontMenu ();
 	updateSizeMenu ();
 	updateViewportMenu ();
 	Graphics_setFontSize (theCurrentPraatPicture -> graphics, theCurrentPraatPicture -> fontSize);   // so that the thickness of the selection rectangle is correct
-	Picture_setMouseSelectsInnerViewport (praat_picture.get(), praat_mouseSelectsInnerViewport);
+	Picture_setMouseSelectsInnerViewport (praat_picture, praat_mouseSelectsInnerViewport);
 }
 
-void praat_picture_background () {
+void praat_picture_background (void) {
 	if (theCurrentPraatPicture != & theForegroundPraatPicture) return;   // Demo window and pictures ignore this
 	if (! theCurrentPraatApplication -> batch) {
-		//Picture_unhighlight (praat_picture.get());
+		//Picture_unhighlight (praat_picture);
 		#if cocoa
-			Picture_background (praat_picture.get());   // prevent Cocoa's very slow highlighting until woken up by Picture_foreground()
+			Picture_background (praat_picture);   // prevent Cocoa's very slow highlighting until woken up by Picture_foreground()
 		#endif
 	}
 }
 
-void praat_picture_foreground () {
+void praat_picture_foreground (void) {
 	if (theCurrentPraatPicture != & theForegroundPraatPicture) return;   // Demo window and pictures ignore this
 	if (! theCurrentPraatApplication -> batch) {
 		#if cocoa
-			Picture_foreground (praat_picture.get());   // wake up from the highlighting sleep caused by Picture_background()
+			Picture_foreground (praat_picture);   // wake up from the highlighting sleep caused by Picture_background()
 		#endif
-		//Picture_highlight (praat_picture.get());
+		//Picture_highlight (praat_picture);
 	}
 }
 
diff --git a/sys/praat_script.cpp b/sys/praat_script.cpp
index e7a6c6d..7d8fc4e 100644
--- a/sys/praat_script.cpp
+++ b/sys/praat_script.cpp
@@ -1,6 +1,6 @@
 /* praat_script.cpp
  *
- * Copyright (C) 1993-2012,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1993-2012,2013,2014,2015 Paul Boersma
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,13 +36,13 @@ static int praat_findObjectFromString (Interpreter interpreter, const char32 *st
 			static MelderString buffer { 0 };
 			MelderString_copy (& buffer, string);
 			char32 *space = str32chr (buffer.string, U' ');
-			if (! space)
+			if (space == NULL)
 				Melder_throw (U"Missing space in name.");
 			*space = U'\0';
 			char32 *className = & buffer.string [0], *givenName = space + 1;
 			WHERE_DOWN (1) {
-				Daata object = (Daata) OBJECT;
-				if (str32equ (className, Thing_className (OBJECT)) && str32equ (givenName, object -> name))
+				Data object = (Data) OBJECT;
+				if (str32equ (className, Thing_className ((Thing) OBJECT)) && str32equ (givenName, object -> name))
 					return IOBJECT;
 			}
 			/*
@@ -50,8 +50,8 @@ static int praat_findObjectFromString (Interpreter interpreter, const char32 *st
 			 */
 			ClassInfo klas = Thing_classFromClassName (className, NULL);
 			WHERE_DOWN (1) {
-				Daata object = (Daata) OBJECT;
-				if (str32equ (klas -> className, Thing_className (OBJECT)) && str32equ (givenName, object -> name))
+				Data object = (Data) OBJECT;
+				if (str32equ (klas -> className, Thing_className ((Thing) OBJECT)) && str32equ (givenName, object -> name))
 					return IOBJECT;
 			}
 			Melder_throw (U"No object with that name.");
@@ -77,21 +77,17 @@ Editor praat_findEditorFromString (const char32 *string) {
 	if (*string >= U'A' && *string <= U'Z') {
 		WHERE_DOWN (1) {
 			for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-				Editor editor = theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
-				if (editor) {
-					Melder_assert (editor -> name);
-					const char32 *space = str32chr (editor -> name, U' ');   // editors tend to be called like "3. Sound kanweg"
-					if (space) {   // but not all
-						const char32 *name = space + 1;
-						if (str32equ (name, string)) return editor;
-					}
+				Editor editor = (Editor) theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
+				if (editor != NULL) {
+					const char32 *name = str32chr (editor -> name, U' ') + 1;
+					if (str32equ (name, string)) return editor;
 				}
 			}
 		}
 	} else {
 		WHERE_DOWN (1) {
 			for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-				Editor editor = theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
+				Editor editor = (Editor) theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
 				if (editor && str32equ (editor -> name, string)) return editor;
 			}
 		}
@@ -104,7 +100,7 @@ Editor praat_findEditorById (long id) {
 	WHERE (1) {
 		if (ID == id) {
 			for (int ieditor = 0; ieditor < praat_MAXNUM_EDITORS; ieditor ++) {
-				Editor editor = theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
+				Editor editor = (Editor) theCurrentPraatObjects -> list [IOBJECT]. editors [ieditor];
 				if (editor) return editor;
 			}
 		}
@@ -431,11 +427,11 @@ int praat_executeCommand (Interpreter interpreter, char32 *command) {
 			colon [0] = colon [1] = colon [2] = U'.';
 			colon [3] = U'\0';
 		}
-		if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor) {
+		if (theCurrentPraatObjects == & theForegroundPraatObjects && praatP. editor != NULL) {
 			if (hasColon) {
-				Editor_doMenuCommand (praatP. editor, command2, narg, args, NULL, interpreter);
+				Editor_doMenuCommand ((Editor) praatP. editor, command2, narg, args, NULL, interpreter);
 			} else {
-				Editor_doMenuCommand (praatP. editor, command, 0, NULL, arguments, interpreter);
+				Editor_doMenuCommand ((Editor) praatP. editor, command, 0, NULL, arguments, interpreter);
 			}
 		} else if (theCurrentPraatObjects != & theForegroundPraatObjects &&
 		    (str32nequ (command, U"Save ", 5) ||
@@ -505,10 +501,7 @@ int praat_executeCommand (Interpreter interpreter, char32 *command) {
 }
 
 void praat_executeCommandFromStandardInput (const char32 *programName) {
-	char command8 [1000];   // can be recursive
-	/*
-	 * FIXME: implement for Windows.
-	 */
+	char command8 [1000]; // can be recursive
 	for (;;) {
 		printf ("%s > ", Melder_peek32to8 (programName));
 		if (! fgets (command8, 999, stdin))
@@ -517,7 +510,7 @@ void praat_executeCommandFromStandardInput (const char32 *programName) {
 		if (newLine) *newLine = '\0';
 		autostring32 command32 = Melder_8to32 (command8);
 		try {
-			praat_executeCommand (nullptr, command32.peek());
+			praat_executeCommand (NULL, command32.peek());
 		} catch (MelderError) {
 			Melder_flushError (programName, U": command \"", Melder_peek8to32 (command8), U"\" not executed.");
 		}
@@ -531,10 +524,10 @@ void praat_executeScriptFromFile (MelderFile file, const char32 *arguments) {
 		Melder_includeIncludeFiles (& text);
 		autoInterpreter interpreter = Interpreter_createFromEnvironment (praatP.editor);
 		if (arguments) {
-			Interpreter_readParameters (interpreter.get(), text.peek());
-			Interpreter_getArgumentsFromString (interpreter.get(), arguments);
+			Interpreter_readParameters (interpreter.peek(), text.peek());
+			Interpreter_getArgumentsFromString (interpreter.peek(), arguments);
 		}
-		Interpreter_run (interpreter.get(), text.peek());
+		Interpreter_run (interpreter.peek(), text.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Script ", file, U" not completed.");
 	}
@@ -544,16 +537,16 @@ void praat_executeScriptFromFileName (const char32 *fileName, int narg, Stackel
 	/*
 	 * The argument 'fileName' is unsafe. Duplicate its contents.
 	 */
-	structMelderFile file { 0 };
+	structMelderFile file = { 0 };
 	Melder_relativePathToFile (fileName, & file);
 	try {
 		autostring32 text = MelderFile_readText (& file);
 		autoMelderFileSetDefaultDir dir (& file);   // so that relative file names can be used inside the script
 		Melder_includeIncludeFiles (& text);
 		autoInterpreter interpreter = Interpreter_createFromEnvironment (praatP.editor);
-		Interpreter_readParameters (interpreter.get(), text.peek());
-		Interpreter_getArgumentsFromArgs (interpreter.get(), narg, args);
-		Interpreter_run (interpreter.get(), text.peek());
+		Interpreter_readParameters (interpreter.peek(), text.peek());
+		Interpreter_getArgumentsFromArgs (interpreter.peek(), narg, args);
+		Interpreter_run (interpreter.peek(), text.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Script ", & file, U" not completed.");   // don't refer to 'fileName', because its contents may have changed
 	}
@@ -562,7 +555,7 @@ void praat_executeScriptFromFileName (const char32 *fileName, int narg, Stackel
 void praat_executeScriptFromFileNameWithArguments (const char32 *nameAndArguments) {
 	char32 path [256];
 	const char32 *p, *arguments;
-	structMelderFile file { 0 };
+	structMelderFile file = { 0 };
 	/*
 	 * Split into file name and arguments.
 	 */
@@ -587,38 +580,28 @@ void praat_executeScriptFromFileNameWithArguments (const char32 *nameAndArgument
 	praat_executeScriptFromFile (& file, arguments);
 }
 
-extern "C" void praatlib_executeScript (const char *text8) {
-	try {
-		autoInterpreter interpreter = Interpreter_create (nullptr, nullptr);
-		autostring32 string = Melder_8to32 (text8);
-		Interpreter_run (interpreter.get(), string.peek());
-	} catch (MelderError) {
-		Melder_throw (U"Script not completed.");
-	}
-}
-
 void praat_executeScriptFromText (const char32 *text) {
 	try {
-		autoInterpreter interpreter = Interpreter_create (nullptr, nullptr);
-		autostring32 string = Melder_dup (text);   // copy, because Interpreter will change it (UGLY)
-		Interpreter_run (interpreter.get(), string.peek());
+		autoInterpreter interpreter = Interpreter_create (NULL, NULL);
+		autostring32 string = Melder_dup (text);
+		Interpreter_run (interpreter.peek(), string.peek());
 	} catch (MelderError) {
 		Melder_throw (U"Script not completed.");
 	}
 }
 
-void praat_executeScriptFromDialog (UiForm dia) {
+void praat_executeScriptFromDialog (Any dia) {
 	char32 *path = UiForm_getString (dia, U"$file");
-	structMelderFile file { 0 };
+	structMelderFile file = { 0 };
 	Melder_pathToFile (path, & file);
 	autostring32 text = MelderFile_readText (& file);
 	autoMelderFileSetDefaultDir dir (& file);
 	Melder_includeIncludeFiles (& text);
 	autoInterpreter interpreter = Interpreter_createFromEnvironment (praatP.editor);
-	Interpreter_readParameters (interpreter.get(), text.peek());
-	Interpreter_getArgumentsFromDialog (interpreter.get(), dia);
+	Interpreter_readParameters (interpreter.peek(), text.peek());
+	Interpreter_getArgumentsFromDialog (interpreter.peek(), dia);
 	autoPraatBackground background;
-	Interpreter_run (interpreter.get(), text.peek());
+	Interpreter_run (interpreter.peek(), text.peek());
 }
 
 static void secondPassThroughScript (UiForm sendingForm, int /* narg */, Stackel /* args */,
@@ -636,15 +619,15 @@ static void firstPassThroughScript (MelderFile file) {
 			Melder_includeIncludeFiles (& text);
 		}
 		autoInterpreter interpreter = Interpreter_createFromEnvironment (praatP.editor);
-		if (Interpreter_readParameters (interpreter.get(), text.peek()) > 0) {
-			UiForm form = Interpreter_createForm (interpreter.get(),
-				praatP.editor ? praatP.editor -> d_windowForm : theCurrentPraatApplication -> topShell,
+		if (Interpreter_readParameters (interpreter.peek(), text.peek()) > 0) {
+			Any form = Interpreter_createForm (interpreter.peek(),
+				praatP.editor ? ((Editor) praatP.editor) -> d_windowForm : theCurrentPraatApplication -> topShell,
 				Melder_fileToPath (file), secondPassThroughScript, NULL, false);
 			UiForm_destroyWhenUnmanaged (form);
 			UiForm_do (form, false);
 		} else {
 			autoPraatBackground background;
-			praat_executeScriptFromFile (file, nullptr);
+			praat_executeScriptFromFile (file, NULL);
 		}
 	} catch (MelderError) {
 		Melder_throw (U"Script ", file, U" not completed.");
@@ -669,8 +652,8 @@ void DO_RunTheScriptFromAnyAddedMenuCommand (UiForm /* sendingForm_dummy */, int
 
 void DO_RunTheScriptFromAnyAddedEditorCommand (Editor editor, const char32 *script) {
 	praatP.editor = editor;
-	DO_RunTheScriptFromAnyAddedMenuCommand (nullptr, 0, nullptr, script, nullptr, nullptr, false, nullptr);
-	/*praatP.editor = nullptr;*/
+	DO_RunTheScriptFromAnyAddedMenuCommand (NULL, 0, NULL, script, NULL, NULL, false, NULL);
+	/*praatP.editor = NULL;*/
 }
 
 /* End of file praat_script.cpp */
diff --git a/sys/praat_script.h b/sys/praat_script.h
index 22f4ffd..4358971 100644
--- a/sys/praat_script.h
+++ b/sys/praat_script.h
@@ -2,7 +2,7 @@
 #define _praat_script_h_
 /* praat_script.h
  *
- * Copyright (C) 1992-2011,2013,2014,2015,2016 Paul Boersma
+ * Copyright (C) 1992-2011,2013,2014,2015 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,8 +27,7 @@ void praat_executeScriptFromFile (MelderFile file, const char32 *arguments);
 void praat_executeScriptFromFileName (const char32 *fileName, int narg, Stackel args);
 void praat_executeScriptFromFileNameWithArguments (const char32 *nameAndArguments);
 void praat_executeScriptFromText (const char32 *text);
-void praat_executeScriptFromDialog (UiForm dia);
-extern "C" void praatlib_executeScript (const char *text8);
+void praat_executeScriptFromDialog (Any dia);
 void DO_praat_runScript (UiForm sendingForm, int narg, Stackel args, const char32 *sendingString, Interpreter interpreter_dummy, const char32 *invokingButtonTitle, bool modified, void *dummy);
 void DO_RunTheScriptFromAnyAddedMenuCommand (UiForm sendingForm_dummy, int narg, Stackel args, const char32 *scriptPath, Interpreter interpreter_dummy, const char32 *invokingButtonTitle, bool modified, void *dummy);
 void DO_RunTheScriptFromAnyAddedEditorCommand (Editor editor, const char32 *script);
diff --git a/sys/praat_statistics.cpp b/sys/praat_statistics.cpp
index 28b0f2c..941aeda 100644
--- a/sys/praat_statistics.cpp
+++ b/sys/praat_statistics.cpp
@@ -36,10 +36,10 @@ void praat_statistics_prefs () {
 
 void praat_statistics_prefsChanged () {
 	if (! statistics.dateOfFirstSession [0]) {
-		time_t today = time (nullptr);
+		time_t today = time (NULL);
 		char32 *newLine;
 		str32cpy (statistics.dateOfFirstSession, Melder_peek8to32 (ctime (& today)));
-		newLine = str32chr (statistics.dateOfFirstSession, U'\n');
+		newLine = str32chr (statistics.dateOfFirstSession, '\n');
 		if (newLine) *newLine = '\0';
 	}
 	if (theCurrentPraatApplication -> batch)
@@ -68,43 +68,7 @@ void praat_reportIntegerProperties () {
 void praat_reportTextProperties () {
 	MelderInfo_open ();
 	MelderInfo_writeLine (U"Text properties of this edition of Praat on this computer:\n");
-	MelderInfo_writeLine (U"Locale: ", Melder_peek8to32 (setlocale (LC_ALL, nullptr)));
-	MelderInfo_writeLine (U"A \"char\" is ",                                      8, U" bits.");
-	MelderInfo_writeLine (U"A \"char16_t\" is ",           sizeof (char16_t)    * 8, U" bits.");
-	MelderInfo_writeLine (U"A \"wchar_t\" is ",            sizeof (wchar_t)     * 8, U" bits.");
-	MelderInfo_writeLine (U"A \"char32_t\" is ",           sizeof (char32_t)    * 8, U" bits.");
-	MelderInfo_close ();
-}
-
-void praat_reportSystemProperties () {
-	#define xstr(s) str(s)
-	#define str(s) #s
-	MelderInfo_open ();
-	MelderInfo_writeLine (U"System properties of this edition of Praat on this computer:\n");
-	#ifdef _WIN32
-		MelderInfo_writeLine (U"_WIN32 is \"" xstr (_WIN32) "\".");
-	#endif
-	#ifdef WINVER
-		MelderInfo_writeLine (U"WINVER is \"" xstr (WINVER) "\".");
-	#endif
-	#ifdef _WIN32_WINNT
-		MelderInfo_writeLine (U"_WIN32_WINNT is \"" xstr (_WIN32_WINNT) "\".");
-	#endif
-	#ifdef _WIN32_IE
-		MelderInfo_writeLine (U"_WIN32_IE is \"" xstr (_WIN32_IE) "\".");
-	#endif
-	#ifdef UNICODE
-		MelderInfo_writeLine (U"UNICODE is \"" xstr (UNICODE) "\".");
-	#endif
-	#ifdef _FILE_OFFSET_BITS
-		MelderInfo_writeLine (U"_FILE_OFFSET_BITS is \"" xstr (_FILE_OFFSET_BITS) "\".");
-	#endif
-	#ifdef macintosh
-		MelderInfo_writeLine (U"macintosh is \"" xstr (macintosh) "\".");
-	#endif
-	#ifdef linux
-		MelderInfo_writeLine (U"linux is \"" xstr (linux) "\".");
-	#endif
+	MelderInfo_writeLine (U"Locale: ", Melder_peek8to32 (setlocale (LC_ALL, NULL)));
 	MelderInfo_close ();
 }
 
@@ -140,20 +104,22 @@ void praat_reportMemoryUse () {
 	MelderInfo_writeLine (U"Currently in use:\n"
 		U"   Strings: ", MelderString_allocationCount () - MelderString_deallocationCount ());
 	MelderInfo_writeLine (U"   Arrays: ", NUM_getTotalNumberOfArrays ());
-	MelderInfo_writeLine (U"   Things: ", theTotalNumberOfThings,
+	MelderInfo_writeLine (U"   Things: ", Thing_getTotalNumberOfThings (),
 		U" (objects in list: ", theCurrentPraatObjects -> n, U")");
 	long numberOfMotifWidgets =
-	#if motif
-		Gui_getNumberOfMotifWidgets ();
+		#if motif && (defined (_WIN32) || defined (macintosh))
+			Gui_getNumberOfMotifWidgets ();
+		#else
+			0;
+		#endif
+	if (numberOfMotifWidgets > 0) {
 		MelderInfo_writeLine (U"   Motif widgets: ", numberOfMotifWidgets);
-	#else
-		0;
-	#endif
+	}
 	MelderInfo_writeLine (U"   Other: ",
-		Melder_allocationCount () - Melder_deallocationCount ()
-		- theTotalNumberOfThings - NUM_getTotalNumberOfArrays ()
-		- (MelderString_allocationCount () - MelderString_deallocationCount ())
-		- numberOfMotifWidgets);
+		Melder_bigInteger (Melder_allocationCount () - Melder_deallocationCount ()
+			- Thing_getTotalNumberOfThings () - NUM_getTotalNumberOfArrays ()
+			- (MelderString_allocationCount () - MelderString_deallocationCount ())
+			- numberOfMotifWidgets));
 	MelderInfo_writeLine (
 		U"\nMemory history of this session:\n"
 		U"   Total created: ", Melder_bigInteger (Melder_allocationCount ()), U" (", Melder_bigInteger (Melder_allocationSize ()), U" bytes)");
diff --git a/sys/praat_version.h b/sys/praat_version.h
index 1223757..fbae654 100644
--- a/sys/praat_version.h
+++ b/sys/praat_version.h
@@ -1,5 +1,5 @@
-#define PRAAT_VERSION_STR 6.0.17
-#define PRAAT_VERSION_NUM 6017
-#define PRAAT_YEAR 2016
-#define PRAAT_MONTH April
-#define PRAAT_DAY 21
+#define PRAAT_VERSION_STR 5.4.18
+#define PRAAT_VERSION_NUM 5418
+#define PRAAT_YEAR 2015
+#define PRAAT_MONTH September
+#define PRAAT_DAY 7
diff --git a/sys/sendpraat.c b/sys/sendpraat.c
index 65d724d..4d79e64 100644
--- a/sys/sendpraat.c
+++ b/sys/sendpraat.c
@@ -313,7 +313,6 @@ char *sendpraat (void *display, const char *programName, long timeOut, const cha
 	return errorMessage [0] == '\0' ? NULL : errorMessage;
 }
 
-#ifndef __CYGWIN__
 wchar_t *sendpraatW (void *display, const wchar_t *programName, long timeOut, const wchar_t *text) {
 	wchar_t nativeProgramName [100];
 	#if gtk
@@ -535,7 +534,6 @@ wchar_t *sendpraatW (void *display, const wchar_t *programName, long timeOut, co
 	 */
 	return errorMessageW [0] == '\0' ? NULL : errorMessageW;
 }
-#endif
 
 /*
  * To compile sendpraat as a stand-alone program, use the -DSTAND_ALONE option to the C compiler:
diff --git a/sys/site.cpp b/sys/site.cpp
index 0b6c2c5..604df50 100644
--- a/sys/site.cpp
+++ b/sys/site.cpp
@@ -32,11 +32,11 @@
 
 static char32 printCommand [Preferences_STRING_BUFFER_SIZE];
 
-char32 * Site_getPrintCommand () { return printCommand; }
+char32 * Site_getPrintCommand (void) { return printCommand; }
 
 void Site_setPrintCommand (const char32 *text) { str32cpy (printCommand, text); }
 
-void Site_prefs () {
+void Site_prefs (void) {
 	Preferences_addString (U"Site.printCommand", printCommand, U"lp -c %s");
 }
 
diff --git a/sys/site.h b/sys/site.h
index c75714d..1a6cae0 100644
--- a/sys/site.h
+++ b/sys/site.h
@@ -19,10 +19,10 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-char32 *Site_getPrintCommand ();
+char32 *Site_getPrintCommand (void);
 void Site_setPrintCommand (const char32 *text);
 
-void Site_prefs ();
+void Site_prefs (void);
 
 /* End of file site.h */
 #endif
diff --git a/sys/winport_off.h b/sys/winport_off.h
index 26a6691..adc6aef 100644
--- a/sys/winport_off.h
+++ b/sys/winport_off.h
@@ -1,6 +1,6 @@
 /* winport_off.h
  *
- * Copyright (C) 2011,2015 Paul Boersma
+ * Copyright (C) 2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
  */
 
 #undef Graphics
+#undef Data
 #undef Polygon
 
 /* End of file winport_off.h */
diff --git a/sys/winport_on.h b/sys/winport_on.h
index 5a2d794..26ce31d 100644
--- a/sys/winport_on.h
+++ b/sys/winport_on.h
@@ -1,6 +1,6 @@
 /* winport_on.h
  *
- * Copyright (C) 2011,2015 Paul Boersma
+ * Copyright (C) 2011 Paul Boersma
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
  */
 
 #define Graphics WindowsGraphics
+#define Data WindowsData
 #define Polygon WindowsPolygon
 
 /* End of file winport_on.h */
diff --git a/test/dwtools/Discriminant.praat b/test/dwtools/Discriminant.praat
deleted file mode 100644
index c03d999..0000000
--- a/test/dwtools/Discriminant.praat
+++ /dev/null
@@ -1,41 +0,0 @@
-# Discriminant.praat
-# Paul Boersma 2016-01-01
-
-#
-# This test follows the Praat manual page on "Discriminant analysis"
-#
-writeInfoLine: "test discriminant analysis"
-
-table = Create TableOfReal (Pols 1973): "no"
-Formula: "if col <= 3 then log10 (self) else self fi"
-Standardize columns
-Set column label (index): 1, "standardized log (%F__1_)"
-Set column label (index): 2, "standardized log (%F__2_)"
-Set column label (index): 3, "standardized log (%F__3_)"
-;Set column label (index): 4, "standardized %L__1_"
-;Set column label (index): 5, "standardized %L__2_"
-;Set column label (index): 6, "standardized %L__3_"
-
-Erase all
-Select outer viewport: 0.0, 5.0, 0.0, 5.0
-Draw scatter plot: 1, 2, 0, 0, -2.9, 2.9, -2.9, 2.9, 10, "yes", "+", "yes"
-
-discriminant = To Discriminant
-test = Read from file: "Pols.text.Discriminant"
-if macintosh
-	assert objectsAreIdentical (test, discriminant)
-endif
-Remove
-test = Read from file: "Pols.binary.Discriminant"
-if macintosh
-	assert objectsAreIdentical (test, discriminant)
-endif
-
-plusObject: table
-configuration = To Configuration: 0
-Erase all
-Draw: 1, 2, -2.9, 2.9, -2.9, 2.9, 12, "yes", "+", "yes"
-
-removeObject: table, discriminant, test, configuration
-
-appendInfoLine: "OK"
diff --git a/test/dwtools/KlattSlope.praat b/test/dwtools/KlattSlope.praat
index 70d9433..f91f850 100644
--- a/test/dwtools/KlattSlope.praat
+++ b/test/dwtools/KlattSlope.praat
@@ -33,7 +33,6 @@ endfor
 spectrum = To Spectrum... yes
 slope1 = Get band density difference... 0 1000 2000 4000
 echo 'slope1:6' dB
-removeObject: pitchTier, pulses, sound, spectrum
 
 klatt = Create KlattGrid... a 0 duration numberOfFormants 0 0 0 0 0 0
 Add voicing amplitude point... 0 90.0
@@ -56,4 +55,4 @@ To Sound
 To Spectrum... yes
 slope2 = Get band density difference... 0 1000 2000 4000
 printline 'slope2:6' dB
-removeObject: klatt, "Sound a", "Spectrum a"
+
diff --git a/test/dwtools/Pols.binary.Discriminant b/test/dwtools/Pols.binary.Discriminant
deleted file mode 100644
index 9fbbe97..0000000
Binary files a/test/dwtools/Pols.binary.Discriminant and /dev/null differ
diff --git a/test/dwtools/Pols.text.Discriminant b/test/dwtools/Pols.text.Discriminant
deleted file mode 100644
index 098f512..0000000
--- a/test/dwtools/Pols.text.Discriminant
+++ /dev/null
@@ -1,389 +0,0 @@
-File type = "ooTextFile"
-Object class = "Discriminant"
-
-numberOfEigenvalues = 3 
-dimension = 3 
-eigenvalues []: 
-    eigenvalues [1] = 21.13900155332588 
-    eigenvalues [2] = 4.355295817120757 
-    eigenvalues [3] = 0.6828853876561901 
-eigenvectors [] []: 
-    eigenvectors [1]:
-        eigenvectors [1] [1] = -0.5095945937147207 
-        eigenvectors [1] [2] = 0.8585858858717419 
-        eigenvectors [1] [3] = -0.056068053636316735 
-    eigenvectors [2]:
-        eigenvectors [2] [1] = 0.8327148188826573 
-        eigenvectors [2] [2] = 0.5085421803078853 
-        eigenvectors [2] [3] = 0.21902255879458013 
-    eigenvectors [3]:
-        eigenvectors [3] [1] = -0.21656264791037227 
-        eigenvectors [3] [2] = -0.06492401273441402 
-        eigenvectors [3] [3] = 0.9741075362096885 
-numberOfGroups = 12 
-groups? <exists> 
-size = 12 
-item []: 
-    item [1]:
-        class = "SSCP" 
-        name = "\as" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	7.1833085796074	3.0973300339498984	-1.778956400510678
-row [2]: "standardized log (%F__2_)"	3.0973300339498984	3.3039876126517393	-0.29125922448881625
-row [3]: "standardized log (%F__3_)"	-1.778956400510678	-0.29125922448881625	20.172428956740347
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 1.2736938484743832 
-            centroid [2] = -0.7980324268009621 
-            centroid [3] = 0.5220895358036678 
-    item [2]:
-        class = "SSCP" 
-        name = "\ct" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	4.74966673603357	1.7690171500295429	1.7501030793290941
-row [2]: "standardized log (%F__2_)"	1.7690171500295429	2.86437294506022	-1.1734401148458038
-row [3]: "standardized log (%F__3_)"	1.7501030793290941	-1.1734401148458038	23.404624379496475
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 0.4589868093363671 
-            centroid [2] = -1.3517394277634003 
-            centroid [3] = 0.7838758634621341 
-    item [3]:
-        class = "SSCP" 
-        name = "\ep" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	6.45619219629371	0.379683706446424	2.36347332352118
-row [2]: "standardized log (%F__2_)"	0.379683706446424	3.5702296082868155	7.3635748850159315
-row [3]: "standardized log (%F__3_)"	2.36347332352118	7.3635748850159315	36.64260597216438
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 0.796695878213569 
-            centroid [2] = 0.6155709107830938 
-            centroid [3] = -0.054943633520376844 
-    item [4]:
-        class = "SSCP" 
-        name = "\ic" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	9.244235715784095	-0.9820105168212977	-0.9152576701472442
-row [2]: "standardized log (%F__2_)"	-0.9820105168212977	3.2262490649322806	7.241190360568182
-row [3]: "standardized log (%F__3_)"	-0.9152576701472442	7.241190360568182	25.166342943866937
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -0.49244087467028463 
-            centroid [2] = 1.0434578136051678 
-            centroid [3] = 0.3408123049009498 
-    item [5]:
-        class = "SSCP" 
-        name = "\o/" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	5.190475238923345	0.7396990707845176	2.2127653907239027
-row [2]: "standardized log (%F__2_)"	0.7396990707845176	2.4512575586423897	3.7246820649617605
-row [3]: "standardized log (%F__3_)"	2.2127653907239027	3.7246820649617605	17.377966252491277
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -0.06611599614665901 
-            centroid [2] = 0.21489702324228913 
-            centroid [3] = -0.8937572629988408 
-    item [6]:
-        class = "SSCP" 
-        name = "\yc" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	6.078893644563736	0.22074613549497363	2.286551884697916
-row [2]: "standardized log (%F__2_)"	0.22074613549497363	3.853359342917027	8.425393204522171
-row [3]: "standardized log (%F__3_)"	2.286551884697916	8.425393204522171	29.326003094517013
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -0.10308759884807804 
-            centroid [2] = 0.20958314569196473 
-            centroid [3] = -0.518024953180044 
-    item [7]:
-        class = "SSCP" 
-        name = "a" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	7.005522628945998	2.090280751104148	1.5234216789426005
-row [2]: "standardized log (%F__2_)"	2.090280751104148	3.107213048517132	2.619238367558207
-row [3]: "standardized log (%F__3_)"	1.5234216789426005	2.619238367558207	28.064397805934117
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 1.766873453008115 
-            centroid [2] = -0.18850368599908385 
-            centroid [3] = 0.3137871302348877 
-    item [8]:
-        class = "SSCP" 
-        name = "e" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	8.484623546640918	0.1093890960686289	2.0246126475151707
-row [2]: "standardized log (%F__2_)"	0.1093890960686289	2.6621911497906914	6.007252897802115
-row [3]: "standardized log (%F__3_)"	2.0246126475151707	6.007252897802115	21.291223183115658
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -0.3393907223669106 
-            centroid [2] = 1.0651938747025158 
-            centroid [3] = 0.2780166917028312 
-    item [9]:
-        class = "SSCP" 
-        name = "i" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	8.081690218264786	0.6318778113546372	1.9790354205211995
-row [2]: "standardized log (%F__2_)"	0.6318778113546372	2.400453182312953	5.524087378886765
-row [3]: "standardized log (%F__3_)"	1.9790354205211995	5.524087378886765	24.658806925271662
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -1.3625596113923537 
-            centroid [2] = 1.324168217255274 
-            centroid [3] = 1.0457830819885658 
-    item [10]:
-        class = "SSCP" 
-        name = "o" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	3.5939776313049356	1.6702307126016387	-0.3792009934910652
-row [2]: "standardized log (%F__2_)"	1.6702307126016387	3.9012822191233245	0.9504479893814077
-row [3]: "standardized log (%F__3_)"	-0.3792009934910652	0.9504479893814077	37.9311618767852
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = 0.23540526426270175 
-            centroid [2] = -1.2107919088306225 
-            centroid [3] = -0.018039991648729478 
-    item [11]:
-        class = "SSCP" 
-        name = "u" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	8.90499995860324	1.0416292261007127	2.588462200258334
-row [2]: "standardized log (%F__2_)"	1.0416292261007127	4.495561429410957	-0.2921211626145905
-row [3]: "standardized log (%F__3_)"	2.588462200258334	-0.2921211626145905	37.14543437527775
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -0.913759763320551 
-            centroid [2] = -1.548526013942444 
-            centroid [3] = -0.6503310662476521 
-    item [12]:
-        class = "SSCP" 
-        name = "y" 
-        numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-        numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	9.905167008234274	0.6668046403405669	3.256505877716595
-row [2]: "standardized log (%F__2_)"	0.6668046403405669	3.178145328787027	8.007415551311649
-row [3]: "standardized log (%F__3_)"	3.256505877716595	8.007415551311649	43.4763710843399
-        numberOfObservations = 50 
-        centroid []: 
-            centroid [1] = -1.254300686550502 
-            centroid [2] = 0.6247224780561871 
-            centroid [3] = -1.1492677004961254 
-total? <exists> 
-numberOfColumns = 3 
-columnLabels []: 
-"standardized log (%F__1_)"	"standardized log (%F__2_)"	"standardized log (%F__3_)"	
-numberOfRows = 3 
-row [1]: "standardized log (%F__1_)"	599.0000000000015	-180.9945547854731	116.52712787173058
-row [2]: "standardized log (%F__2_)"	-180.9945547854731	598.9999999999997	71.98818443063027
-row [3]: "standardized log (%F__3_)"	116.52712787173058	71.98818443063027	598.999999999999
-numberOfObservations = 600 
-centroid []: 
-    centroid [1] = -1.6514937565640745e-14 
-    centroid [2] = -1.6405395560544397e-15 
-    centroid [3] = 1.0549080127949158e-13 
-aprioriProbabilities []: 
-    aprioriProbabilities [1] = 0.08333333333333333 
-    aprioriProbabilities [2] = 0.08333333333333333 
-    aprioriProbabilities [3] = 0.08333333333333333 
-    aprioriProbabilities [4] = 0.08333333333333333 
-    aprioriProbabilities [5] = 0.08333333333333333 
-    aprioriProbabilities [6] = 0.08333333333333333 
-    aprioriProbabilities [7] = 0.08333333333333333 
-    aprioriProbabilities [8] = 0.08333333333333333 
-    aprioriProbabilities [9] = 0.08333333333333333 
-    aprioriProbabilities [10] = 0.08333333333333333 
-    aprioriProbabilities [11] = 0.08333333333333333 
-    aprioriProbabilities [12] = 0.08333333333333333 
-costs [] []: 
-    costs [1]:
-        costs [1] [1] = 0 
-        costs [1] [2] = 1 
-        costs [1] [3] = 1 
-        costs [1] [4] = 1 
-        costs [1] [5] = 1 
-        costs [1] [6] = 1 
-        costs [1] [7] = 1 
-        costs [1] [8] = 1 
-        costs [1] [9] = 1 
-        costs [1] [10] = 1 
-        costs [1] [11] = 1 
-        costs [1] [12] = 1 
-    costs [2]:
-        costs [2] [1] = 1 
-        costs [2] [2] = 0 
-        costs [2] [3] = 1 
-        costs [2] [4] = 1 
-        costs [2] [5] = 1 
-        costs [2] [6] = 1 
-        costs [2] [7] = 1 
-        costs [2] [8] = 1 
-        costs [2] [9] = 1 
-        costs [2] [10] = 1 
-        costs [2] [11] = 1 
-        costs [2] [12] = 1 
-    costs [3]:
-        costs [3] [1] = 1 
-        costs [3] [2] = 1 
-        costs [3] [3] = 0 
-        costs [3] [4] = 1 
-        costs [3] [5] = 1 
-        costs [3] [6] = 1 
-        costs [3] [7] = 1 
-        costs [3] [8] = 1 
-        costs [3] [9] = 1 
-        costs [3] [10] = 1 
-        costs [3] [11] = 1 
-        costs [3] [12] = 1 
-    costs [4]:
-        costs [4] [1] = 1 
-        costs [4] [2] = 1 
-        costs [4] [3] = 1 
-        costs [4] [4] = 0 
-        costs [4] [5] = 1 
-        costs [4] [6] = 1 
-        costs [4] [7] = 1 
-        costs [4] [8] = 1 
-        costs [4] [9] = 1 
-        costs [4] [10] = 1 
-        costs [4] [11] = 1 
-        costs [4] [12] = 1 
-    costs [5]:
-        costs [5] [1] = 1 
-        costs [5] [2] = 1 
-        costs [5] [3] = 1 
-        costs [5] [4] = 1 
-        costs [5] [5] = 0 
-        costs [5] [6] = 1 
-        costs [5] [7] = 1 
-        costs [5] [8] = 1 
-        costs [5] [9] = 1 
-        costs [5] [10] = 1 
-        costs [5] [11] = 1 
-        costs [5] [12] = 1 
-    costs [6]:
-        costs [6] [1] = 1 
-        costs [6] [2] = 1 
-        costs [6] [3] = 1 
-        costs [6] [4] = 1 
-        costs [6] [5] = 1 
-        costs [6] [6] = 0 
-        costs [6] [7] = 1 
-        costs [6] [8] = 1 
-        costs [6] [9] = 1 
-        costs [6] [10] = 1 
-        costs [6] [11] = 1 
-        costs [6] [12] = 1 
-    costs [7]:
-        costs [7] [1] = 1 
-        costs [7] [2] = 1 
-        costs [7] [3] = 1 
-        costs [7] [4] = 1 
-        costs [7] [5] = 1 
-        costs [7] [6] = 1 
-        costs [7] [7] = 0 
-        costs [7] [8] = 1 
-        costs [7] [9] = 1 
-        costs [7] [10] = 1 
-        costs [7] [11] = 1 
-        costs [7] [12] = 1 
-    costs [8]:
-        costs [8] [1] = 1 
-        costs [8] [2] = 1 
-        costs [8] [3] = 1 
-        costs [8] [4] = 1 
-        costs [8] [5] = 1 
-        costs [8] [6] = 1 
-        costs [8] [7] = 1 
-        costs [8] [8] = 0 
-        costs [8] [9] = 1 
-        costs [8] [10] = 1 
-        costs [8] [11] = 1 
-        costs [8] [12] = 1 
-    costs [9]:
-        costs [9] [1] = 1 
-        costs [9] [2] = 1 
-        costs [9] [3] = 1 
-        costs [9] [4] = 1 
-        costs [9] [5] = 1 
-        costs [9] [6] = 1 
-        costs [9] [7] = 1 
-        costs [9] [8] = 1 
-        costs [9] [9] = 0 
-        costs [9] [10] = 1 
-        costs [9] [11] = 1 
-        costs [9] [12] = 1 
-    costs [10]:
-        costs [10] [1] = 1 
-        costs [10] [2] = 1 
-        costs [10] [3] = 1 
-        costs [10] [4] = 1 
-        costs [10] [5] = 1 
-        costs [10] [6] = 1 
-        costs [10] [7] = 1 
-        costs [10] [8] = 1 
-        costs [10] [9] = 1 
-        costs [10] [10] = 0 
-        costs [10] [11] = 1 
-        costs [10] [12] = 1 
-    costs [11]:
-        costs [11] [1] = 1 
-        costs [11] [2] = 1 
-        costs [11] [3] = 1 
-        costs [11] [4] = 1 
-        costs [11] [5] = 1 
-        costs [11] [6] = 1 
-        costs [11] [7] = 1 
-        costs [11] [8] = 1 
-        costs [11] [9] = 1 
-        costs [11] [10] = 1 
-        costs [11] [11] = 0 
-        costs [11] [12] = 1 
-    costs [12]:
-        costs [12] [1] = 1 
-        costs [12] [2] = 1 
-        costs [12] [3] = 1 
-        costs [12] [4] = 1 
-        costs [12] [5] = 1 
-        costs [12] [6] = 1 
-        costs [12] [7] = 1 
-        costs [12] [8] = 1 
-        costs [12] [9] = 1 
-        costs [12] [10] = 1 
-        costs [12] [11] = 1 
-        costs [12] [12] = 0 
diff --git a/test/fon Exp/Sounds/M1F1-float32-AFsp.wav b/test/fon Exp/Sounds/M1F1-float32-AFsp.wav
deleted file mode 100644
index 4f4efec..0000000
Binary files a/test/fon Exp/Sounds/M1F1-float32-AFsp.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/again.wav b/test/fon Exp/Sounds/again.wav
deleted file mode 100644
index 7134c81..0000000
Binary files a/test/fon Exp/Sounds/again.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/heed.wav b/test/fon Exp/Sounds/heed.wav
deleted file mode 100644
index abc1313..0000000
Binary files a/test/fon Exp/Sounds/heed.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/hid.wav b/test/fon Exp/Sounds/hid.wav
deleted file mode 100644
index 86f95a7..0000000
Binary files a/test/fon Exp/Sounds/hid.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/hood.wav b/test/fon Exp/Sounds/hood.wav
deleted file mode 100644
index 36fd0af..0000000
Binary files a/test/fon Exp/Sounds/hood.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/hud.wav b/test/fon Exp/Sounds/hud.wav
deleted file mode 100644
index 92f67aa..0000000
Binary files a/test/fon Exp/Sounds/hud.wav and /dev/null differ
diff --git a/test/fon Exp/Sounds/weSayTheWord.wav b/test/fon Exp/Sounds/weSayTheWord.wav
deleted file mode 100644
index 3354bf6..0000000
Binary files a/test/fon Exp/Sounds/weSayTheWord.wav and /dev/null differ
diff --git a/test/fon Exp/continuousGoodness.ExperimentMFC b/test/fon Exp/continuousGoodness.ExperimentMFC
deleted file mode 100644
index c3dc4c4..0000000
--- a/test/fon Exp/continuousGoodness.ExperimentMFC	
+++ /dev/null
@@ -1,144 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "heed"  "a|rty|hgjg"
-    "hid"   "aaa"
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0.0 0.0 0.01 0.07 "click here (or press the space bar) to play again" " "
-okButton = 0.0 0.0 0.1 0.2 "OK" ""
-oopsButton = 0.0 0.0 0.1 0.2 "oops" ""
-
-responsesAreSounds? <no>
-responseFileNameHead = ""
-responseFileNameTail = ""
-responseCarrierBefore = ""
-responseCarrierAfter = ""
-responseInitialSilenceDuration = 0 seconds
-responseMedialSilenceDuration = 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "" "hud"
-
-numberOfGoodnessCategories = 100
-    0.250 0.252 0.20 0.30 ""
-    0.252 0.254 0.20 0.30 ""
-    0.254 0.256 0.20 0.30 ""
-    0.256 0.258 0.20 0.30 ""
-    0.258 0.260 0.20 0.30 ""
-    0.260 0.262 0.20 0.30 ""
-    0.262 0.264 0.20 0.30 ""
-    0.264 0.266 0.20 0.30 ""
-    0.266 0.268 0.20 0.30 ""
-    0.268 0.270 0.20 0.30 ""
-    0.270 0.272 0.20 0.30 ""
-    0.272 0.274 0.20 0.30 ""
-    0.274 0.276 0.20 0.30 ""
-    0.276 0.278 0.20 0.30 ""
-    0.278 0.280 0.20 0.30 ""
-    0.280 0.282 0.20 0.30 ""
-    0.282 0.284 0.20 0.30 ""
-    0.284 0.286 0.20 0.30 ""
-    0.286 0.288 0.20 0.30 ""
-    0.288 0.290 0.20 0.30 ""
-    0.290 0.292 0.20 0.30 ""
-    0.292 0.294 0.20 0.30 ""
-    0.294 0.296 0.20 0.30 ""
-    0.296 0.298 0.20 0.30 ""
-    0.298 0.300 0.20 0.30 ""
-    0.300 0.302 0.20 0.30 ""
-    0.302 0.304 0.20 0.30 ""
-    0.304 0.306 0.20 0.30 ""
-    0.306 0.308 0.20 0.30 ""
-    0.308 0.310 0.20 0.30 ""
-    0.310 0.312 0.20 0.30 ""
-    0.312 0.314 0.20 0.30 ""
-    0.314 0.316 0.20 0.30 ""
-    0.316 0.318 0.20 0.30 ""
-    0.318 0.320 0.20 0.30 ""
-    0.320 0.322 0.20 0.30 ""
-    0.322 0.324 0.20 0.30 ""
-    0.324 0.326 0.20 0.30 ""
-    0.326 0.328 0.20 0.30 ""
-    0.328 0.330 0.20 0.30 ""
-    0.330 0.332 0.20 0.30 ""
-    0.332 0.334 0.20 0.30 ""
-    0.334 0.336 0.20 0.30 ""
-    0.336 0.338 0.20 0.30 ""
-    0.338 0.340 0.20 0.30 ""
-    0.340 0.342 0.20 0.30 ""
-    0.342 0.344 0.20 0.30 ""
-    0.344 0.346 0.20 0.30 ""
-    0.346 0.348 0.20 0.30 ""
-    0.348 0.350 0.20 0.30 ""
-    0.350 0.352 0.20 0.30 ""
-    0.352 0.354 0.20 0.30 ""
-    0.354 0.356 0.20 0.30 ""
-    0.356 0.358 0.20 0.30 ""
-    0.358 0.360 0.20 0.30 ""
-    0.360 0.362 0.20 0.30 ""
-    0.362 0.364 0.20 0.30 ""
-    0.364 0.366 0.20 0.30 ""
-    0.366 0.368 0.20 0.30 ""
-    0.368 0.370 0.20 0.30 ""
-    0.370 0.372 0.20 0.30 ""
-    0.372 0.374 0.20 0.30 ""
-    0.374 0.376 0.20 0.30 ""
-    0.376 0.378 0.20 0.30 ""
-    0.378 0.380 0.20 0.30 ""
-    0.380 0.382 0.20 0.30 ""
-    0.382 0.384 0.20 0.30 ""
-    0.384 0.386 0.20 0.30 ""
-    0.386 0.388 0.20 0.30 ""
-    0.388 0.390 0.20 0.30 ""
-    0.390 0.392 0.20 0.30 ""
-    0.392 0.394 0.20 0.30 ""
-    0.394 0.396 0.20 0.30 ""
-    0.396 0.398 0.20 0.30 ""
-    0.398 0.400 0.20 0.30 ""
-    0.400 0.402 0.20 0.30 ""
-    0.402 0.404 0.20 0.30 ""
-    0.404 0.406 0.20 0.30 ""
-    0.406 0.408 0.20 0.30 ""
-    0.408 0.410 0.20 0.30 ""
-    0.410 0.412 0.20 0.30 ""
-    0.412 0.414 0.20 0.30 ""
-    0.414 0.416 0.20 0.30 ""
-    0.416 0.418 0.20 0.30 ""
-    0.418 0.420 0.20 0.30 ""
-    0.420 0.422 0.20 0.30 ""
-    0.422 0.424 0.20 0.30 ""
-    0.424 0.426 0.20 0.30 ""
-    0.426 0.428 0.20 0.30 ""
-    0.428 0.430 0.20 0.30 ""
-    0.430 0.432 0.20 0.30 ""
-    0.432 0.434 0.20 0.30 ""
-    0.434 0.436 0.20 0.30 ""
-    0.436 0.438 0.20 0.30 ""
-    0.438 0.440 0.20 0.30 ""
-    0.440 0.442 0.20 0.30 ""
-    0.442 0.444 0.20 0.30 ""
-    0.444 0.446 0.20 0.30 ""
-    0.446 0.448 0.20 0.30 ""
-    0.448 0.450 0.20 0.30 ""
diff --git a/test/fon Exp/csl.ExperimentMFC b/test/fon Exp/csl.ExperimentMFC
deleted file mode 100644
index af47103..0000000
--- a/test/fon Exp/csl.ExperimentMFC	
+++ /dev/null
@@ -1,35 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ""
-stimulusCarrierBefore = ""
-stimulusCarrierAfter = ""
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 3
-    "S4CAP.NSP"   ""
-    "S4COP.NSP"   ""
-    "S4CUP.NSP"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 3
-    0.25 0.35 0.8 0.9 "a" "" "a"
-    0.35 0.45 0.6 0.7 "o" "" "o"
-    0.45 0.55 0.4 0.5 "u" "" "u"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/experimentMFC.praat b/test/fon Exp/experimentMFC.praat
deleted file mode 100644
index 12ccee6..0000000
--- a/test/fon Exp/experimentMFC.praat	
+++ /dev/null
@@ -1,15 +0,0 @@
-writeInfoLine: "ExperimentMFC"
-
-Read from file: "simplest.ExperimentMFC"
-Run
-Remove
-
-ex = Read from file: "simplest.ExperimentMFC"
-Run
-editor: "simplest"
-	Close
-endeditor
-
-removeObject: ex
-
-appendInfoLine: "OK"
diff --git a/test/fon Exp/hoofdletters.ExperimentMFC b/test/fon Exp/hoofdletters.ExperimentMFC
deleted file mode 100644
index c8edd97..0000000
--- a/test/fon Exp/hoofdletters.ExperimentMFC	
+++ /dev/null
@@ -1,43 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "Heed"  ""
-    "Hid"   ""
-    "Hood"  ""
-    "Hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, you choose the vowel that is most similar.
-
-Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like.
-
-Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "u" "hud"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/pictures.ExperimentMFC b/test/fon Exp/pictures.ExperimentMFC
deleted file mode 100644
index be1458e..0000000
--- a/test/fon Exp/pictures.ExperimentMFC	
+++ /dev/null
@@ -1,40 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "heed"  ""
-    "hid"   ""
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, you choose the speaker that is most similar.
-
-Click to start."
-runText = "Choose the speaker that you heard."
-pauseText = "You can have a short break if you like.
-
-Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 2
-    0.35 0.45 0.48 0.7 "\FIpictures/paul.jpg" "p" "Paul"
-    0.55 0.65 0.48 0.7 "\FIpictures/silke.jpg" "s" "Silke"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/pictures/paul.jpg b/test/fon Exp/pictures/paul.jpg
deleted file mode 100755
index e8cc55f..0000000
Binary files a/test/fon Exp/pictures/paul.jpg and /dev/null differ
diff --git a/test/fon Exp/pictures/silke.jpg b/test/fon Exp/pictures/silke.jpg
deleted file mode 100755
index 067294f..0000000
Binary files a/test/fon Exp/pictures/silke.jpg and /dev/null differ
diff --git a/test/fon Exp/simplest.ExperimentMFC b/test/fon Exp/simplest.ExperimentMFC
deleted file mode 100644
index 5a2371f..0000000
--- a/test/fon Exp/simplest.ExperimentMFC	
+++ /dev/null
@@ -1,45 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 6"
-
-blankWhilePlaying? <no>
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-stimulusFinalSilenceDuration = 0.5 seconds
-numberOfDifferentStimuli = 4
-    "heed"  ""
-    "hid"   ""
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, you choose the vowel that is most similar.
-
-Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like.
-
-Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" 40 "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" 40 "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" 40 "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" 40 "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" 40 "u" "hud"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/simplest_broken.ExperimentMFC b/test/fon Exp/simplest_broken.ExperimentMFC
deleted file mode 100644
index 9e9ca42..0000000
--- a/test/fon Exp/simplest_broken.ExperimentMFC	
+++ /dev/null
@@ -1,45 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-! This file is broken, in order to check the error message.
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-!stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "heedXXX"  ""
-    "hid"   ""
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, you choose the vowel that is most similar.
-
-Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like.
-
-Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "u" "hud"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/simplest_missing.ExperimentMFC b/test/fon Exp/simplest_missing.ExperimentMFC
deleted file mode 100644
index 2127602..0000000
--- a/test/fon Exp/simplest_missing.ExperimentMFC	
+++ /dev/null
@@ -1,45 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-! This file refers to a missing sound, in order to check the error message.
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "heedXXX"  ""
-    "hid"   ""
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, you choose the vowel that is most similar.
-
-Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like.
-
-Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "u" "hud"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/stereo.ExperimentMFC b/test/fon Exp/stereo.ExperimentMFC
deleted file mode 100644
index 4a18890..0000000
--- a/test/fon Exp/stereo.ExperimentMFC	
+++ /dev/null
@@ -1,38 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = ""
-stimulusCarrierAfter = ""
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "M1F1-float32-AFspTTT"  ""
-    "M1F1-float32-AFsp"   ""
-    "M1F1-float32-AFsp"  ""
-    "M1F1-float32-AFsp"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0 0 0 0 "" ""
-okButton = 0 0 0 0 "" ""
-oopsButton = 0 0 0 0 "" ""
-
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "" "hud"
-
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/test.ExperimentMFC b/test/fon Exp/test.ExperimentMFC
deleted file mode 100644
index 880de1c..0000000
--- a/test/fon Exp/test.ExperimentMFC	
+++ /dev/null
@@ -1,33 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = ""
-stimulusCarrierAfter = ""
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 3
-"heed" ""
-"hid" ""
-"hood" ""
-numberOfReplicationsPerStimulus = 1
-breakAfterEvery = 0
-randomize = <PermuteBalancedNoDoublets>
-startText = "This is a listening experiment.
-After hearing a sound, choose the vowel that is most similar to what you heard.
-
-Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment has finished."
-maximumNumberOfReplays = 0
-replayButton = 0 0 0 0 "" ""
-!okButton = 0 0 0 0 "" ""
-okButton = 0.80 0.90 0.05 0.15 "OK" ""
-oopsButton = 0 0 0 0 "" ""
-responsesAreSounds? <no> "" "" "" "" 0 0
-numberOfDifferentResponses = 2
-	0.40 0.60 0.70 0.50 "1" "1" "1"    
-	0.40 0.60 0.40 0.20 "2" "2" "2"
-numberOfGoodnessCategories = 0
diff --git a/test/fon Exp/version3.ExperimentMFC b/test/fon Exp/version3.ExperimentMFC
deleted file mode 100644
index 4813255..0000000
--- a/test/fon Exp/version3.ExperimentMFC	
+++ /dev/null
@@ -1,32 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 3"
-fileNameHead = "Sounds/"
-fileNameTail = ".wav"
-carrierBefore = "weSayTheWord"
-carrierAfter = "again"
-initialSilenceDuration = 0.5 seconds
-interStimulusInterval = 0
-numberOfDifferentStimuli = 4
-    "heed"
-    "hid"
-    "hood"
-    "hud"
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 0
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment has finished."
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "" "i"
-    0.35 0.45 0.6 0.7 "h E d" "" "e"
-    0.45 0.55 0.4 0.5 "h A d" "" "a"
-    0.55 0.65 0.6 0.7 "h O d" "" "o"
-    0.65 0.75 0.8 0.9 "h U d" "" "u"
-numberOfGoodnessCategories = 5
-    0.25 0.35 0.20 0.30 "1 (poor)"
-    0.35 0.45 0.20 0.30 "2"
-    0.45 0.55 0.20 0.30 "3"
-    0.55 0.65 0.20 0.30 "4"
-    0.65 0.75 0.20 0.30 "5 (good)"
diff --git a/test/fon Exp/version4.ExperimentMFC b/test/fon Exp/version4.ExperimentMFC
deleted file mode 100644
index dbed7fd..0000000
--- a/test/fon Exp/version4.ExperimentMFC	
+++ /dev/null
@@ -1,50 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 4"
-
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-numberOfDifferentStimuli = 4
-    "heed"  "a|rty|hgjg"
-    "hid"   "aaa
-    bbb"
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0.2 0.8 0.01 0.07 "click here (or press the space bar) to play again" " "
-okButton = 0.7 0.9 0.1 0.2 "OK" ""
-oopsButton = 0.1 0.3 0.1 0.2 "oops" "b"
-
-responsesAreSounds? <yes>
-responseFileNameHead = "Sounds/"
-responseFileNameTail = ".wav"
-responseCarrierBefore = ""
-responseCarrierAfter = ""
-responseInitialSilenceDuration = 0.1 seconds
-responseMedialSilenceDuration = 0
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "u" "hud"
-
-numberOfGoodnessCategories = 5
-    0.25 0.35 0.20 0.30 "1 (poor)"
-    0.35 0.45 0.20 0.30 "2"
-    0.45 0.55 0.20 0.30 "3"
-    0.55 0.65 0.20 0.30 "4"
-    0.65 0.75 0.20 0.30 "5 (good)"
diff --git a/test/fon Exp/version6.ExperimentMFC b/test/fon Exp/version6.ExperimentMFC
deleted file mode 100644
index e1af842..0000000
--- a/test/fon Exp/version6.ExperimentMFC	
+++ /dev/null
@@ -1,53 +0,0 @@
-"ooTextFile"
-"ExperimentMFC 6"
-
-blankWhilePlaying? <yes>
-stimuliAreSounds? <yes>
-stimulusFileNameHead = "Sounds/"
-stimulusFileNameTail = ".wav"
-stimulusCarrierBefore = "weSayTheWord"
-stimulusCarrierAfter = "again"
-stimulusInitialSilenceDuration = 0.5 seconds
-stimulusMedialSilenceDuration = 0
-stimulusFinalSilenceDuration = 0.5
-numberOfDifferentStimuli = 4
-    "heed"  "a|rty|hgjg"
-    "hid"   "aaa
-    bbb"
-    "hood"  ""
-    "hud"   ""
-
-numberOfReplicationsPerStimulus = 3
-breakAfterEvery = 4
-randomize = <PermuteBalancedNoDoublets>
-startText = "Click to start."
-runText = "Choose the vowel that you heard."
-pauseText = "You can have a short break if you like. Click to proceed."
-endText = "The experiment
-has finished."
-maximumNumberOfReplays = 1
-replayButton = 0.2 0.8 0.01 0.07 "click here (or press the space bar) to play again" " "
-okButton = 0.7 0.9 0.1 0.2 "OK" ""
-oopsButton = 0.1 0.3 0.1 0.2 "oops" ""
-
-responsesAreSounds? <yes>
-responseFileNameHead = "Sounds/"
-responseFileNameTail = ".wav"
-responseCarrierBefore = ""
-responseCarrierAfter = ""
-responseInitialSilenceDuration = 0.1 seconds
-responseMedialSilenceDuration = 0
-responseFinalSilenceDuration = 0.5
-numberOfDifferentResponses = 5
-    0.25 0.35 0.8 0.9 "h I d" "i" "hid"
-    0.35 0.45 0.6 0.7 "h E d" "e" "hid"
-    0.45 0.55 0.4 0.5 "h A d" "a" "hud"
-    0.55 0.65 0.6 0.7 "h O d" "o" "hood"
-    0.65 0.75 0.8 0.9 "h U d" "u" "hud"
-
-numberOfGoodnessCategories = 5
-    0.25 0.35 0.20 0.30 "1 (poor)"
-    0.35 0.45 0.20 0.30 "2"
-    0.45 0.55 0.20 0.30 "3"
-    0.55 0.65 0.20 0.30 "4"
-    0.65 0.75 0.20 0.30 "5 (good)"
diff --git a/test/fon/PitchTier.praat b/test/fon/PitchTier.praat
deleted file mode 100644
index 3843e1e..0000000
--- a/test/fon/PitchTier.praat
+++ /dev/null
@@ -1,40 +0,0 @@
-# PitchTier.praat
-# Paul Boersma 2015-12-21
-
-writeInfoLine: "PitchTier test"
-
-tier = Create PitchTier: "tier", -1.0, 1.8
-Add point: 0.5, 150.0
-Add point: 0.6, 178.0
-Add point: 0.6, 180.0   ; shouldn't do anything
-Add point: 0.3, 200.0   ; should be inserted as the first point
-
-#
-# Check time domain.
-#
-tmin = Get starting time
-assert tmin = -1.0
-tmax = Get end time
-assert tmax = 1.8
-duration = Get duration
-assert duration = 2.8
-
-n = Get number of points
-assert n = 3
-
-#
-# Check values and sorting.
-#
-for i to n
-	time [i] = Get time from index: i
-	pitch [i] = Get value at index: i
-endfor
-assert time [1] = 0.3
-assert time [2] = 0.5
-assert time [3] = 0.6
-assert pitch [1] = 200.0
-assert pitch [2] = 150.0
-assert pitch [3] = 178.0
-
-removeObject: tier
-appendInfoLine: "OK"
diff --git a/test/fon/Spectrum_draw.praat b/test/fon/Spectrum_draw.praat
deleted file mode 100644
index 33f8224..0000000
--- a/test/fon/Spectrum_draw.praat
+++ /dev/null
@@ -1,12 +0,0 @@
-# test/fon/Spectrum_draw.praat
-# Paul Boersma 2016-01-15
-
-# There used to be a bug that caused Praat to crash with an assert message
-# if you drew a Spectrum that contained undefined values.
-
-sound = Create Sound as pure tone: "tone", 1, 0, 0.4, 44100, 440, 0.2, 0.01, 0.01
-spec = To Spectrum: "yes"
-Formula: "self/0"
-Draw: 0, 0, 0, 0, "yes"
-
-removeObject: sound, spec
diff --git a/test/fon/TextGrid_Sound_extractIntervals.praat b/test/fon/TextGrid_Sound_extractIntervals.praat
deleted file mode 100644
index 4505f03..0000000
--- a/test/fon/TextGrid_Sound_extractIntervals.praat
+++ /dev/null
@@ -1,11 +0,0 @@
-sound = Create Sound from formula: "sineWithNoise", 1, 0, 1, 44100, "1/2 * sin(2*pi*377*x) + randomGauss(0,0.1)"
-textgrid = To TextGrid: "Mary John bell", "bell"
-Insert boundary: 1, 0.5
-Insert boundary: 1, 0.7
-Set interval text: 1, 1, "a"
-Set interval text: 1, 2, "b"
-Set interval text: 1, 3, "c"
-selectObject: sound, textgrid
-Extract all intervals: 1, "no"
-
-removeObject: sound, textgrid, "Sound a", "Sound b", "Sound c"
\ No newline at end of file
diff --git a/test/fon/data.praat b/test/fon/data.praat
index e376fd7..a475bc9 100644
Binary files a/test/fon/data.praat and b/test/fon/data.praat differ
diff --git a/test/fon/endian.praat b/test/fon/endian.praat
index 21f7e8e..c1c43c8 100644
--- a/test/fon/endian.praat
+++ b/test/fon/endian.praat
@@ -68,7 +68,6 @@ procedure do
 		t4 = stopwatch
 		printline 't1:2' 't2:2' 't3:2' 't4:2'
 	endfor
-	Remove
 
 	Create Sound... test 0 1 22050 exp(-x*1000)
 	Write to binary file... kanweg.Sound
diff --git a/test/fon/examples/OTGrammar/Infant.OTGrammar b/test/fon/examples/OTGrammar/Infant.OTGrammar
deleted file mode 100644
index 3e31cb9..0000000
--- a/test/fon/examples/OTGrammar/Infant.OTGrammar
+++ /dev/null
@@ -1,198 +0,0 @@
-File type = "ooTextFile"
-Object class = "OTGrammar 2"
-
-<ExponentialHG>
-0 ! leak
-5 constraints
-constraint [1]: "*[rtr / hi]" 100 100 1 ! *[rtr / hi]
-constraint [2]: "*[atr / lo]" 100 100 1 ! *[atr / lo]
-constraint [3]: "P\s{ARSE}
-(rtr)" 50 50 1 ! PARSE (rtr)
-constraint [4]: "P\s{ARSE}
-(atr)" 50 50 1 ! PARSE (atr)
-constraint [5]: "*G\s{ESTURE}
-(contour)" 100 100 1 ! *GESTURE (contour)
-
-0 fixed rankings
-
-36 tableaus
-input [1]: "iti" 4
-   candidate [1]: "iti" 0 0 0 0 0
-   candidate [2]: "\icti" 1 0 0 1 1
-   candidate [3]: "it\ic" 1 0 0 1 1
-   candidate [4]: "\ict\ic" 2 0 0 2 0
-input [2]: "ite" 4
-   candidate [1]: "ite" 0 0 0 0 0
-   candidate [2]: "\icte" 1 0 0 1 1
-   candidate [3]: "it\ep" 0 0 0 1 1
-   candidate [4]: "\ict\ep" 1 0 0 2 0
-input [3]: "it\sw" 4
-   candidate [1]: "it\sw" 0 1 0 0 0
-   candidate [2]: "\ict\sw" 1 1 0 1 1
-   candidate [3]: "ita" 0 0 0 1 1
-   candidate [4]: "\icta" 1 0 0 2 0
-input [4]: "it\ic" 4
-   candidate [1]: "it\ic" 1 0 0 0 1
-   candidate [2]: "\ict\ic" 2 0 0 1 0
-   candidate [3]: "iti" 0 0 1 0 0
-   candidate [4]: "\icti" 1 0 1 1 1
-input [5]: "it\ep" 4
-   candidate [1]: "it\ep" 0 0 0 0 1
-   candidate [2]: "\ict\ep" 1 0 0 1 0
-   candidate [3]: "ite" 0 0 1 0 0
-   candidate [4]: "\icte" 1 0 1 1 1
-input [6]: "ita" 4
-   candidate [1]: "ita" 0 0 0 0 1
-   candidate [2]: "\icta" 1 0 0 1 0
-   candidate [3]: "it\sw" 0 1 1 0 0
-   candidate [4]: "\ict\sw" 1 1 1 1 1
-input [7]: "eti" 4
-   candidate [1]: "eti" 0 0 0 0 0
-   candidate [2]: "\epti" 0 0 0 1 1
-   candidate [3]: "et\ic" 1 0 0 1 1
-   candidate [4]: "\ept\ic" 1 0 0 2 0
-input [8]: "ete" 4
-   candidate [1]: "ete" 0 0 0 0 0
-   candidate [2]: "\epte" 0 0 0 1 1
-   candidate [3]: "et\ep" 0 0 0 1 1
-   candidate [4]: "\ept\ep" 0 0 0 2 0
-input [9]: "et\sw" 4
-   candidate [1]: "et\sw" 0 1 0 0 0
-   candidate [2]: "\ept\sw" 0 1 0 1 1
-   candidate [3]: "eta" 0 0 0 1 1
-   candidate [4]: "\epta" 0 0 0 2 0
-input [10]: "et\ic" 4
-   candidate [1]: "et\ic" 1 0 0 0 1
-   candidate [2]: "\ept\ic" 1 0 0 1 0
-   candidate [3]: "eti" 0 0 1 0 0
-   candidate [4]: "\epti" 0 0 1 1 1
-input [11]: "et\ep" 4
-   candidate [1]: "et\ep" 0 0 0 0 1
-   candidate [2]: "\ept\ep" 0 0 0 1 0
-   candidate [3]: "ete" 0 0 1 0 0
-   candidate [4]: "\epte" 0 0 1 1 1
-input [12]: "eta" 4
-   candidate [1]: "eta" 0 0 0 0 1
-   candidate [2]: "\epta" 0 0 0 1 0
-   candidate [3]: "et\sw" 0 1 1 0 0
-   candidate [4]: "\ept\sw" 0 1 1 1 1
-input [13]: "\swti" 4
-   candidate [1]: "\swti" 0 1 0 0 0
-   candidate [2]: "ati" 0 0 0 1 1
-   candidate [3]: "\swt\ic" 1 1 0 1 1
-   candidate [4]: "at\ic" 1 0 0 2 0
-input [14]: "\swte" 4
-   candidate [1]: "\swte" 0 1 0 0 0
-   candidate [2]: "ate" 0 0 0 1 1
-   candidate [3]: "\swt\ep" 0 1 0 1 1
-   candidate [4]: "at\ep" 0 0 0 2 0
-input [15]: "\swt\sw" 4
-   candidate [1]: "\swt\sw" 0 2 0 0 0
-   candidate [2]: "at\sw" 0 1 0 1 1
-   candidate [3]: "\swta" 0 1 0 1 1
-   candidate [4]: "ata" 0 0 0 2 0
-input [16]: "\swt\ic" 4
-   candidate [1]: "\swt\ic" 1 1 0 0 1
-   candidate [2]: "at\ic" 1 0 0 1 0
-   candidate [3]: "\swti" 0 1 1 0 0
-   candidate [4]: "ati" 0 0 1 1 1
-input [17]: "\swt\ep" 4
-   candidate [1]: "\swt\ep" 0 1 0 0 1
-   candidate [2]: "at\ep" 0 0 0 1 0
-   candidate [3]: "\swte" 0 1 1 0 0
-   candidate [4]: "ate" 0 0 1 1 1
-input [18]: "\swta" 4
-   candidate [1]: "\swta" 0 1 0 0 1
-   candidate [2]: "ata" 0 0 0 1 0
-   candidate [3]: "\swt\sw" 0 2 1 0 0
-   candidate [4]: "at\sw" 0 1 1 1 1
-input [19]: "\icti" 4
-   candidate [1]: "\icti" 1 0 0 0 1
-   candidate [2]: "iti" 0 0 1 0 0
-   candidate [3]: "\ict\ic" 2 0 0 1 0
-   candidate [4]: "it\ic" 1 0 1 1 1
-input [20]: "\icte" 4
-   candidate [1]: "\icte" 1 0 0 0 1
-   candidate [2]: "ite" 0 0 1 0 0
-   candidate [3]: "\ict\ep" 1 0 0 1 0
-   candidate [4]: "it\ep" 0 0 1 1 1
-input [21]: "\ict\sw" 4
-   candidate [1]: "\ict\sw" 1 1 0 0 1
-   candidate [2]: "it\sw" 0 1 1 0 0
-   candidate [3]: "\icta" 1 0 0 1 0
-   candidate [4]: "ita" 0 0 1 1 1
-input [22]: "\ict\ic" 4
-   candidate [1]: "\ict\ic" 2 0 0 0 0
-   candidate [2]: "it\ic" 1 0 1 0 1
-   candidate [3]: "\icti" 1 0 1 0 1
-   candidate [4]: "iti" 0 0 2 0 0
-input [23]: "\ict\ep" 4
-   candidate [1]: "\ict\ep" 1 0 0 0 0
-   candidate [2]: "it\ep" 0 0 1 0 1
-   candidate [3]: "\icte" 1 0 1 0 1
-   candidate [4]: "ite" 0 0 2 0 0
-input [24]: "\icta" 4
-   candidate [1]: "\icta" 1 0 0 0 0
-   candidate [2]: "ita" 0 0 1 0 1
-   candidate [3]: "\ict\sw" 1 1 1 0 1
-   candidate [4]: "it\sw" 0 1 2 0 0
-input [25]: "\epti" 4
-   candidate [1]: "\epti" 0 0 0 0 1
-   candidate [2]: "eti" 0 0 1 0 0
-   candidate [3]: "\ept\ic" 1 0 0 1 0
-   candidate [4]: "et\ic" 1 0 1 1 1
-input [26]: "\epte" 4
-   candidate [1]: "\epte" 0 0 0 0 1
-   candidate [2]: "ete" 0 0 1 0 0
-   candidate [3]: "\ept\ep" 0 0 0 1 0
-   candidate [4]: "et\ep" 0 0 1 1 1
-input [27]: "\ept\sw" 4
-   candidate [1]: "\ept\sw" 0 1 0 0 1
-   candidate [2]: "et\sw" 0 1 1 0 0
-   candidate [3]: "\epta" 0 0 0 1 0
-   candidate [4]: "eta" 0 0 1 1 1
-input [28]: "\ept\ic" 4
-   candidate [1]: "\ept\ic" 1 0 0 0 0
-   candidate [2]: "et\ic" 1 0 1 0 1
-   candidate [3]: "\epti" 0 0 1 0 1
-   candidate [4]: "eti" 0 0 2 0 0
-input [29]: "\ept\ep" 4
-   candidate [1]: "\ept\ep" 0 0 0 0 0
-   candidate [2]: "et\ep" 0 0 1 0 1
-   candidate [3]: "\epte" 0 0 1 0 1
-   candidate [4]: "ete" 0 0 2 0 0
-input [30]: "\epta" 4
-   candidate [1]: "\epta" 0 0 0 0 0
-   candidate [2]: "eta" 0 0 1 0 1
-   candidate [3]: "\ept\sw" 0 1 1 0 1
-   candidate [4]: "et\sw" 0 1 2 0 0
-input [31]: "ati" 4
-   candidate [1]: "ati" 0 0 0 0 1
-   candidate [2]: "\swti" 0 1 1 0 0
-   candidate [3]: "at\ic" 1 0 0 1 0
-   candidate [4]: "\swt\ic" 1 1 1 1 1
-input [32]: "ate" 4
-   candidate [1]: "ate" 0 0 0 0 1
-   candidate [2]: "\swte" 0 1 1 0 0
-   candidate [3]: "at\ep" 0 0 0 1 0
-   candidate [4]: "\swt\ep" 0 1 1 1 1
-input [33]: "at\sw" 4
-   candidate [1]: "at\sw" 0 1 0 0 1
-   candidate [2]: "\swt\sw" 0 2 1 0 0
-   candidate [3]: "ata" 0 0 0 1 0
-   candidate [4]: "\swta" 0 1 1 1 1
-input [34]: "at\ic" 4
-   candidate [1]: "at\ic" 1 0 0 0 0
-   candidate [2]: "\swt\ic" 1 1 1 0 1
-   candidate [3]: "ati" 0 0 1 0 1
-   candidate [4]: "\swti" 0 1 2 0 0
-input [35]: "at\ep" 4
-   candidate [1]: "at\ep" 0 0 0 0 0
-   candidate [2]: "\swt\ep" 0 1 1 0 1
-   candidate [3]: "ate" 0 0 1 0 1
-   candidate [4]: "\swte" 0 1 2 0 0
-input [36]: "ata" 4
-   candidate [1]: "ata" 0 0 0 0 0
-   candidate [2]: "\swta" 0 1 1 0 1
-   candidate [3]: "at\sw" 0 1 1 0 1
-   candidate [4]: "\swt\sw" 0 2 2 0 0
diff --git a/test/fon/examples/OTGrammar/Infant2.OTGrammar b/test/fon/examples/OTGrammar/Infant2.OTGrammar
deleted file mode 100644
index 3e31cb9..0000000
--- a/test/fon/examples/OTGrammar/Infant2.OTGrammar
+++ /dev/null
@@ -1,198 +0,0 @@
-File type = "ooTextFile"
-Object class = "OTGrammar 2"
-
-<ExponentialHG>
-0 ! leak
-5 constraints
-constraint [1]: "*[rtr / hi]" 100 100 1 ! *[rtr / hi]
-constraint [2]: "*[atr / lo]" 100 100 1 ! *[atr / lo]
-constraint [3]: "P\s{ARSE}
-(rtr)" 50 50 1 ! PARSE (rtr)
-constraint [4]: "P\s{ARSE}
-(atr)" 50 50 1 ! PARSE (atr)
-constraint [5]: "*G\s{ESTURE}
-(contour)" 100 100 1 ! *GESTURE (contour)
-
-0 fixed rankings
-
-36 tableaus
-input [1]: "iti" 4
-   candidate [1]: "iti" 0 0 0 0 0
-   candidate [2]: "\icti" 1 0 0 1 1
-   candidate [3]: "it\ic" 1 0 0 1 1
-   candidate [4]: "\ict\ic" 2 0 0 2 0
-input [2]: "ite" 4
-   candidate [1]: "ite" 0 0 0 0 0
-   candidate [2]: "\icte" 1 0 0 1 1
-   candidate [3]: "it\ep" 0 0 0 1 1
-   candidate [4]: "\ict\ep" 1 0 0 2 0
-input [3]: "it\sw" 4
-   candidate [1]: "it\sw" 0 1 0 0 0
-   candidate [2]: "\ict\sw" 1 1 0 1 1
-   candidate [3]: "ita" 0 0 0 1 1
-   candidate [4]: "\icta" 1 0 0 2 0
-input [4]: "it\ic" 4
-   candidate [1]: "it\ic" 1 0 0 0 1
-   candidate [2]: "\ict\ic" 2 0 0 1 0
-   candidate [3]: "iti" 0 0 1 0 0
-   candidate [4]: "\icti" 1 0 1 1 1
-input [5]: "it\ep" 4
-   candidate [1]: "it\ep" 0 0 0 0 1
-   candidate [2]: "\ict\ep" 1 0 0 1 0
-   candidate [3]: "ite" 0 0 1 0 0
-   candidate [4]: "\icte" 1 0 1 1 1
-input [6]: "ita" 4
-   candidate [1]: "ita" 0 0 0 0 1
-   candidate [2]: "\icta" 1 0 0 1 0
-   candidate [3]: "it\sw" 0 1 1 0 0
-   candidate [4]: "\ict\sw" 1 1 1 1 1
-input [7]: "eti" 4
-   candidate [1]: "eti" 0 0 0 0 0
-   candidate [2]: "\epti" 0 0 0 1 1
-   candidate [3]: "et\ic" 1 0 0 1 1
-   candidate [4]: "\ept\ic" 1 0 0 2 0
-input [8]: "ete" 4
-   candidate [1]: "ete" 0 0 0 0 0
-   candidate [2]: "\epte" 0 0 0 1 1
-   candidate [3]: "et\ep" 0 0 0 1 1
-   candidate [4]: "\ept\ep" 0 0 0 2 0
-input [9]: "et\sw" 4
-   candidate [1]: "et\sw" 0 1 0 0 0
-   candidate [2]: "\ept\sw" 0 1 0 1 1
-   candidate [3]: "eta" 0 0 0 1 1
-   candidate [4]: "\epta" 0 0 0 2 0
-input [10]: "et\ic" 4
-   candidate [1]: "et\ic" 1 0 0 0 1
-   candidate [2]: "\ept\ic" 1 0 0 1 0
-   candidate [3]: "eti" 0 0 1 0 0
-   candidate [4]: "\epti" 0 0 1 1 1
-input [11]: "et\ep" 4
-   candidate [1]: "et\ep" 0 0 0 0 1
-   candidate [2]: "\ept\ep" 0 0 0 1 0
-   candidate [3]: "ete" 0 0 1 0 0
-   candidate [4]: "\epte" 0 0 1 1 1
-input [12]: "eta" 4
-   candidate [1]: "eta" 0 0 0 0 1
-   candidate [2]: "\epta" 0 0 0 1 0
-   candidate [3]: "et\sw" 0 1 1 0 0
-   candidate [4]: "\ept\sw" 0 1 1 1 1
-input [13]: "\swti" 4
-   candidate [1]: "\swti" 0 1 0 0 0
-   candidate [2]: "ati" 0 0 0 1 1
-   candidate [3]: "\swt\ic" 1 1 0 1 1
-   candidate [4]: "at\ic" 1 0 0 2 0
-input [14]: "\swte" 4
-   candidate [1]: "\swte" 0 1 0 0 0
-   candidate [2]: "ate" 0 0 0 1 1
-   candidate [3]: "\swt\ep" 0 1 0 1 1
-   candidate [4]: "at\ep" 0 0 0 2 0
-input [15]: "\swt\sw" 4
-   candidate [1]: "\swt\sw" 0 2 0 0 0
-   candidate [2]: "at\sw" 0 1 0 1 1
-   candidate [3]: "\swta" 0 1 0 1 1
-   candidate [4]: "ata" 0 0 0 2 0
-input [16]: "\swt\ic" 4
-   candidate [1]: "\swt\ic" 1 1 0 0 1
-   candidate [2]: "at\ic" 1 0 0 1 0
-   candidate [3]: "\swti" 0 1 1 0 0
-   candidate [4]: "ati" 0 0 1 1 1
-input [17]: "\swt\ep" 4
-   candidate [1]: "\swt\ep" 0 1 0 0 1
-   candidate [2]: "at\ep" 0 0 0 1 0
-   candidate [3]: "\swte" 0 1 1 0 0
-   candidate [4]: "ate" 0 0 1 1 1
-input [18]: "\swta" 4
-   candidate [1]: "\swta" 0 1 0 0 1
-   candidate [2]: "ata" 0 0 0 1 0
-   candidate [3]: "\swt\sw" 0 2 1 0 0
-   candidate [4]: "at\sw" 0 1 1 1 1
-input [19]: "\icti" 4
-   candidate [1]: "\icti" 1 0 0 0 1
-   candidate [2]: "iti" 0 0 1 0 0
-   candidate [3]: "\ict\ic" 2 0 0 1 0
-   candidate [4]: "it\ic" 1 0 1 1 1
-input [20]: "\icte" 4
-   candidate [1]: "\icte" 1 0 0 0 1
-   candidate [2]: "ite" 0 0 1 0 0
-   candidate [3]: "\ict\ep" 1 0 0 1 0
-   candidate [4]: "it\ep" 0 0 1 1 1
-input [21]: "\ict\sw" 4
-   candidate [1]: "\ict\sw" 1 1 0 0 1
-   candidate [2]: "it\sw" 0 1 1 0 0
-   candidate [3]: "\icta" 1 0 0 1 0
-   candidate [4]: "ita" 0 0 1 1 1
-input [22]: "\ict\ic" 4
-   candidate [1]: "\ict\ic" 2 0 0 0 0
-   candidate [2]: "it\ic" 1 0 1 0 1
-   candidate [3]: "\icti" 1 0 1 0 1
-   candidate [4]: "iti" 0 0 2 0 0
-input [23]: "\ict\ep" 4
-   candidate [1]: "\ict\ep" 1 0 0 0 0
-   candidate [2]: "it\ep" 0 0 1 0 1
-   candidate [3]: "\icte" 1 0 1 0 1
-   candidate [4]: "ite" 0 0 2 0 0
-input [24]: "\icta" 4
-   candidate [1]: "\icta" 1 0 0 0 0
-   candidate [2]: "ita" 0 0 1 0 1
-   candidate [3]: "\ict\sw" 1 1 1 0 1
-   candidate [4]: "it\sw" 0 1 2 0 0
-input [25]: "\epti" 4
-   candidate [1]: "\epti" 0 0 0 0 1
-   candidate [2]: "eti" 0 0 1 0 0
-   candidate [3]: "\ept\ic" 1 0 0 1 0
-   candidate [4]: "et\ic" 1 0 1 1 1
-input [26]: "\epte" 4
-   candidate [1]: "\epte" 0 0 0 0 1
-   candidate [2]: "ete" 0 0 1 0 0
-   candidate [3]: "\ept\ep" 0 0 0 1 0
-   candidate [4]: "et\ep" 0 0 1 1 1
-input [27]: "\ept\sw" 4
-   candidate [1]: "\ept\sw" 0 1 0 0 1
-   candidate [2]: "et\sw" 0 1 1 0 0
-   candidate [3]: "\epta" 0 0 0 1 0
-   candidate [4]: "eta" 0 0 1 1 1
-input [28]: "\ept\ic" 4
-   candidate [1]: "\ept\ic" 1 0 0 0 0
-   candidate [2]: "et\ic" 1 0 1 0 1
-   candidate [3]: "\epti" 0 0 1 0 1
-   candidate [4]: "eti" 0 0 2 0 0
-input [29]: "\ept\ep" 4
-   candidate [1]: "\ept\ep" 0 0 0 0 0
-   candidate [2]: "et\ep" 0 0 1 0 1
-   candidate [3]: "\epte" 0 0 1 0 1
-   candidate [4]: "ete" 0 0 2 0 0
-input [30]: "\epta" 4
-   candidate [1]: "\epta" 0 0 0 0 0
-   candidate [2]: "eta" 0 0 1 0 1
-   candidate [3]: "\ept\sw" 0 1 1 0 1
-   candidate [4]: "et\sw" 0 1 2 0 0
-input [31]: "ati" 4
-   candidate [1]: "ati" 0 0 0 0 1
-   candidate [2]: "\swti" 0 1 1 0 0
-   candidate [3]: "at\ic" 1 0 0 1 0
-   candidate [4]: "\swt\ic" 1 1 1 1 1
-input [32]: "ate" 4
-   candidate [1]: "ate" 0 0 0 0 1
-   candidate [2]: "\swte" 0 1 1 0 0
-   candidate [3]: "at\ep" 0 0 0 1 0
-   candidate [4]: "\swt\ep" 0 1 1 1 1
-input [33]: "at\sw" 4
-   candidate [1]: "at\sw" 0 1 0 0 1
-   candidate [2]: "\swt\sw" 0 2 1 0 0
-   candidate [3]: "ata" 0 0 0 1 0
-   candidate [4]: "\swta" 0 1 1 1 1
-input [34]: "at\ic" 4
-   candidate [1]: "at\ic" 1 0 0 0 0
-   candidate [2]: "\swt\ic" 1 1 1 0 1
-   candidate [3]: "ati" 0 0 1 0 1
-   candidate [4]: "\swti" 0 1 2 0 0
-input [35]: "at\ep" 4
-   candidate [1]: "at\ep" 0 0 0 0 0
-   candidate [2]: "\swt\ep" 0 1 1 0 1
-   candidate [3]: "ate" 0 0 1 0 1
-   candidate [4]: "\swte" 0 1 2 0 0
-input [36]: "ata" 4
-   candidate [1]: "ata" 0 0 0 0 0
-   candidate [2]: "\swta" 0 1 1 0 1
-   candidate [3]: "at\sw" 0 1 1 0 1
-   candidate [4]: "\swt\sw" 0 2 2 0 0
diff --git a/test/fon/examples/OTGrammar/Infant_binary.OTGrammar b/test/fon/examples/OTGrammar/Infant_binary.OTGrammar
deleted file mode 100644
index 74deb98..0000000
Binary files a/test/fon/examples/OTGrammar/Infant_binary.OTGrammar and /dev/null differ
diff --git a/test/fon/examples/OTGrammar/Infant_binary2.OTGrammar b/test/fon/examples/OTGrammar/Infant_binary2.OTGrammar
deleted file mode 100644
index 74deb98..0000000
Binary files a/test/fon/examples/OTGrammar/Infant_binary2.OTGrammar and /dev/null differ
diff --git a/test/fon/examples/banner.praat b/test/fon/examples/banner.praat
deleted file mode 100644
index d8c77c2..0000000
--- a/test/fon/examples/banner.praat
+++ /dev/null
@@ -1,11 +0,0 @@
-demoWindowTitle ("Praat banner")
-demo Times
-demo Font size... 300
-demo Select inner viewport... 0 100 0 100
-demo Axes... 0 100 0 100
-demo Erase all
-demo Paint rectangle... Maroon 0 100 0 100
-demo Colour... Yellow
-demo Text... 50 centre 30 bottom Praat
-demo Insert picture from file... www/paul.jpg 2 15 16 16
-demo Insert picture from file... www/david.gif 84 98 16 16
diff --git a/test/fon/examples/example.wav b/test/fon/examples/example.wav
deleted file mode 100644
index 0154915..0000000
Binary files a/test/fon/examples/example.wav and /dev/null differ
diff --git a/test/fon/examples/sineWithNoise.TextGrid b/test/fon/examples/sineWithNoise.TextGrid
deleted file mode 100644
index 2942df0..0000000
--- a/test/fon/examples/sineWithNoise.TextGrid
+++ /dev/null
@@ -1,10 +0,0 @@
-"Praat chronological TextGrid text file"
-0 1   ! Time domain.
-3   ! Number of tiers.
-"IntervalTier" "Mary" 0 1
-"IntervalTier" "John" 0 1
-"TextTier" "bell" 0 1
-1 0 1
-""
-2 0 1
-""
\ No newline at end of file
diff --git a/test/fon/examples/sounds/aaaa02.nsp b/test/fon/examples/sounds/aaaa02.nsp
deleted file mode 100644
index 384c462..0000000
Binary files a/test/fon/examples/sounds/aaaa02.nsp and /dev/null differ
diff --git a/test/fon/examples/sounds/aaaa02.wav b/test/fon/examples/sounds/aaaa02.wav
deleted file mode 100644
index eef0830..0000000
Binary files a/test/fon/examples/sounds/aaaa02.wav and /dev/null differ
diff --git a/test/fon/examples/sounds/cl_F1_2b_egg.wav b/test/fon/examples/sounds/cl_F1_2b_egg.wav
deleted file mode 100644
index 7b59bea..0000000
Binary files a/test/fon/examples/sounds/cl_F1_2b_egg.wav and /dev/null differ
diff --git a/test/fon/examples/sounds/elephant calls/27_Ella.wav b/test/fon/examples/sounds/elephant calls/27_Ella.wav
deleted file mode 100644
index 3dcea89..0000000
Binary files a/test/fon/examples/sounds/elephant calls/27_Ella.wav and /dev/null differ
diff --git a/test/fon/texio.praat b/test/fon/texio.praat
index b125d18..0f6cece 100644
Binary files a/test/fon/texio.praat and b/test/fon/texio.praat differ
diff --git a/test/fon/textioSpeed.praat b/test/fon/textioSpeed.praat
index 192d207..8a02be2 100644
--- a/test/fon/textioSpeed.praat
+++ b/test/fon/textioSpeed.praat
@@ -1,5 +1,5 @@
 # textioSpeed.praat
-# Paul Boersma, 2015-11-18
+# Paul Boersma, 9 November 2008
 
 echo Text I/O speed:
 
@@ -27,6 +27,5 @@ Remove
 select Sound sound30
 mean = Get mean... All 0 0
 assert mean = 30 ;   'mean'
-Remove
 deleteFile ("kanweg.Collection")
 printline OK
diff --git "a/test/kar/\303\245b\303\247\303\251\303\274.wav" "b/test/kar/a\314\212bc\314\247e\314\201u\314\210.wav"
similarity index 100%
rename from "test/kar/\303\245b\303\247\303\251\303\274.wav"
rename to "test/kar/a\314\212bc\314\247e\314\201u\314\210.wav"
diff --git a/test/kar/unicode.praat b/test/kar/unicode.praat
index d870dc0..51bfc6c 100644
Binary files a/test/kar/unicode.praat and b/test/kar/unicode.praat differ
diff --git a/test/manually/Demo_recording_problem.praat b/test/manually/Demo_recording_problem.praat
deleted file mode 100644
index a0678f6..0000000
--- a/test/manually/Demo_recording_problem.praat
+++ /dev/null
@@ -1,36 +0,0 @@
-	# Initialize
-    demo Erase all
-
-	demo Select inner viewport... 5 95 5 95
-	demo Axes... 0 100 0 100
-
-	# Recording text
-	demo Font size: 24
-	demo Colour: "Black"
-	demo Text: 50, "Centre", 50, "Bottom", "Recording started: You should see a red disk during recording"
-    demoShow()
-    
-	# Recording light
-    demo Paint circle: "Red", 5, 95, 2
-    demoShow()
-    
-	.sound = Record Sound (fixed time): "Microphone", 0.99, 0.5, "44100", 5
-	Remove
-	
-	# Clear text
-	demo Paint rectangle: "White", 0, 100, 45, 60
-
- 	# Finish light
-	demo Paint circle: "Blue", 10, 95, 2
-
-	# Finish text
-	demo Font size: 24
-	demo Colour: "Black"
-	demo Text: 50, "Centre", 50, "Bottom", "Recording stopped: Now you should see a red and a blue disk"
-	demo Text: 50, "Centre", 45, "Bottom", "(Click anywhere in the window or hit any key to exit)"
-
-	# Wait and exit
-	demoWaitForInput()
-	demo Erase all
-	
-	exit
diff --git a/test/manually/PairDistributions_append.praat b/test/manually/PairDistributions_append.praat
deleted file mode 100644
index 63d2404..0000000
--- a/test/manually/PairDistributions_append.praat
+++ /dev/null
@@ -1,44 +0,0 @@
-# Praat script PairDistributions_append.praat
-# Paul Boersma, 7 May 2011
-
-if numberOfSelected ( ) < 1 or numberOfSelected ("PairDistribution") <> numberOfSelected ( )
-	exit Select one or more PairDistribution objects.
-endif
-numberOfDistributions = numberOfSelected ( )
-for i to numberOfDistributions
-	distribution [i] = selected (i)
-endfor
-#
-# Write header.
-#
-fileName$ = temporaryDirectory$ + "/appended.PairDistribution"
-deleteFile (fileName$)
-fileappend "'fileName$'" "ooTextFile"'newline$'
-fileappend "'fileName$'" "PairDistribution"'newline$'
-#
-# How many pairs do all the distributions together have?
-#
-totalNumberOfPairs = 0
-for i to numberOfDistributions
-	select distribution [i]
-	numberOfPairs [i] = Get number of pairs
-	totalNumberOfPairs += numberOfPairs [i]
-endfor
-fileappend "'fileName$'" 'totalNumberOfPairs''newline$'
-#
-# Write the data.
-#
-for i to numberOfDistributions
-	select distribution [i]
-	for j to numberOfPairs [i]
-		string1$ = Get string1... j
-		string2$ = Get string2... j
-		weight = Get weight... j
-		fileappend "'fileName$'" "'string1$'" "'string2$'" 'weight''newline$'
-	endfor
-endfor
-#
-# Read the result.
-#
-Read from file... 'fileName$'
-deleteFile (fileName$)
diff --git a/test/manually/testCommandLineCalls.praat b/test/manually/testCommandLineCalls.praat
deleted file mode 100644
index a306a70..0000000
--- a/test/manually/testCommandLineCalls.praat
+++ /dev/null
@@ -1,33 +0,0 @@
-form Test command line calls
-	sentence First_text I love you
-	real Beep_duration 0.4
-	sentence Second_text Me too
-endform
-
-writeInfoLine: "She: """, first_text$, """"
-appendInfoLine: "He: """, second_text$, """"
-
-synth1 = Create SpeechSynthesizer: "English", "f1"
-Play text: first_text$
-Create Sound as pure tone: "beep", 1, 0.0, beep_duration,
-... 44100, 440, 0.2, 0.01, 0.01
-Play
-Remove
-synth2 = Create SpeechSynthesizer: "English", "m1"
-Play text: second_text$
-
-exit
-
-Praat.exe c:\Users\pboersma\Desktop\testCommandLineCalls.praat "I love you" 0.4 Me too
-
-Praat.exe c:\Users\pboersma\Desktop\testCommandLineCalls.praat "I love you" 0.4 "Me too"
-
-import os
-os.system('Praat.exe c:\\Users\\pboersma\\Desktop\\testCommandLineCalls.praat "I love you" 0.4 Me too')
-
-import subprocess
-subprocess.call('Praat.exe c:\\Users\\pboersma\\Desktop\\testCommandLineCalls.praat "I love you" 0.4 Me too')
-
-subprocess.call(['Praat.exe', 'c:\\Users\\pboersma\\Desktop\\testCommandLineCalls.praat', 'I love you', '0.4', 'Me too'])
-
-subprocess.call(['Praat.exe', 'c:\\Users\\pboersma\\Desktop\\testCommandLineCalls.praat', 'I love you', '0.4', 'Me', 'too'])exit
diff --git a/test/menuSpeed.praat b/test/menuSpeed.praat
deleted file mode 100644
index dc06be1..0000000
--- a/test/menuSpeed.praat
+++ /dev/null
@@ -1,19 +0,0 @@
-pitch = Create TextGrid: 0, 1, "Mary John bell", "bell"
-sound = Create Sound as pure tone: "tone", 1, 0, 0.4, 44100, 440, 0.2, 0.01, 0.01
-intens = To Intensity: 100, 0, "yes"
-Down to IntensityTier
-To AmplitudeTier
-selectObject: sound
-;harm = To Harmonicity (cc): 0.01, 75, 0.1, 1
-stopwatch
-for i to 1000000
-	x = i
-endfor
-t1 = stopwatch
-stopwatch
-for i to 1000000
-	x = Get duration
-endfor
-t2 = stopwatch
-writeInfoLine: round ((t2 - t1) * 1000), " nanoseconds"
-removeObject: pitch, sound, intens, "IntensityTier tone", "AmplitudeTier tone"
\ No newline at end of file
diff --git a/test/num/fisherQ.praat b/test/num/fisherQ.praat
index ec596bf..f0bf602 100644
--- a/test/num/fisherQ.praat
+++ b/test/num/fisherQ.praat
@@ -88,7 +88,7 @@ assert fisherQ (1, 1e19, 1e19) = undefined
 #
 Debug... no 29   ; set invFisherQ to GSL
 f = invFisherQ (0.01, 1, 10000)   ; not such an unusual case
-assert "'f'" = "nan" or "'f'" = "NaN" or index ("'f'", "NAN") or "'f:5'" = "6.63743"
+assert "'f'" = "nan" or "'f'" = "NaN"
 Debug... no 0   ; use our corrected NUMridders again
 f = invFisherQ (0.01, 1, 10000)   ; same case
 assert "'f:5'" = "6.63743"
diff --git a/test/num/mathFunctions.praat b/test/num/mathFunctions.praat
index e568fcd..db17744 100644
--- a/test/num/mathFunctions.praat
+++ b/test/num/mathFunctions.praat
@@ -9,10 +9,10 @@ assert sqrt (123456789^2) = 123456789
 assert abs (sqrt (2) ^ 2 - 2) < 1e-15
 
 printline exp
-# Paul Boersma, September 13, 2015
+# Paul Boersma, September 20, 2006
 assert exp (-10000) = 0
 assert exp (0) = 1
-assert abs (exp (1) - e) < 1e-15
+assert exp (1) = e
 assert abs (1 - exp (100) / e ^ 100) < 1e-13
 assert abs (1 - exp (100) * exp (-100)) < 1e-15
 assert abs (1 - e ^ 100 * e ^ -100) < 1e-14
diff --git a/test/runAllTests.praat b/test/runAllTests.praat
index b0c19a5..d712323 100644
--- a/test/runAllTests.praat
+++ b/test/runAllTests.praat
@@ -14,89 +14,65 @@ else
 	exitScript: "Unknown operating system."
 endif
 
-writeInfoLine: "Running all tests..."
-
-memoryReport$ = Report memory use
-strings_before = extractNumber (memoryReport$, "Strings:")
-arrays_before  = extractNumber (memoryReport$, "Arrays:")
-things_before  = extractNumber (memoryReport$, "Things:")
-other_before   = extractNumber (memoryReport$, "Other:")
-
 directories = Create Strings as directory list: "directories", "."
 numberOfDirectories = Get number of strings
 for directory to numberOfDirectories
+	appendInfoLine: directory
 	selectObject: directories
 	directory$ = Get string: directory
+	appendInfoLine: directory$
 	if directory$ <> "manually"
 		files = Create Strings as file list: "files", directory$ + "/*.praat"
 		numberOfFiles = Get number of strings
 		for file to numberOfFiles
 			selectObject: files
 			file$ = Get string: file
-			path$ = directory$ + "/" + file$
-			appendInfoLine: "### executing ", path$, ":"
-			runScript: path$
+			appendInfoLine: "### executing ", directory$, "/", file$, ":"
+			runScript: directory$ + "/" + file$
 		endfor
-		removeObject: files
 	endif
 endfor
-removeObject: directories
 
-directories1 = Create Strings as directory list: "directories1", "."
+directories1 = Create Strings as directory list... directories1 .
 numberOfDirectories1 = Get number of strings
 for directory1 to numberOfDirectories1
-	selectObject: directories1
-	directory1$ = Get string: directory1
+	select Strings directories1
+	directory1$ = Get string... directory1
 	if directory1$ <> "manually"
-		directories2 = Create Strings as directory list: "directories2", directory1$ + "/*"
+		directories2 = Create Strings as directory list... directories2 'directory1$'/*
 		numberOfDirectories2 = Get number of strings
 		for directory2 to numberOfDirectories2
-			selectObject: directories2
-			directory2$ = Get string: directory2
-			files = Create Strings as file list: "files", directory1$ + "/" + directory2$ + "/*.praat"
+			select Strings directories2
+			directory2$ = Get string... directory2
+			files = Create Strings as file list... files 'directory1$'/'directory2$'/*.praat
 			numberOfFiles = Get number of strings
 			for file to numberOfFiles
-				selectObject: files
-				file$ = Get string: file
-				path$ = directory1$ + "/" + directory2$ + "/" + file$
-				appendInfoLine: "### executing ", path$, ":"
-				runScript: path$
+				select files
+				file$ = Get string... file
+				printline ### executing 'directory1$'/'directory2$'/'file$':
+				execute 'directory1$'/'directory2$'/'file$'
 			endfor
-			removeObject: files
 		endfor
-		removeObject: directories2
 	endif
 endfor
-removeObject: directories1
 
-writeInfoLine: "                 ALL PRAAT TESTS WENT OK"
-appendInfoLine: ""
-line$ [5] = "        #####          #####        #####   #####"
-line$ [8] = "        #####          #####        #######"
-line$ [1] = "               ######               #####           #####"
-line$ [2] = "           ##############           #####         #####"
-line$ [4] = "        #####          #####        #####     #####"
-line$ [7] = "        #####          #####        #########"
-line$ [9] = "        #####          #####        #####"
-line$ [3] = "         #####        #####         #####       #####"
-line$ [6] = "        #####          #####        ##### #####"
+echo                  ALL PRAAT TESTS WENT OK
+printline
+line5$ = "        #####          #####        #####   #####"
+line8$ = "        #####          #####        #######"
+line1$ = "               ######               #####           #####"
+line2$ = "           ##############           #####         #####"
+line4$ = "        #####          #####        #####     #####"
+line7$ = "        #####          #####        #########"
+line9$ = "        #####          #####        #####"
+line3$ = "         #####        #####         #####       #####"
+line6$ = "        #####          #####        ##### #####"
 for line from 1 to 9
-	appendInfoLine: line$ [line]
+	line$ = line'line'$
+	printline 'line$'
 endfor
-for line from 1 to 8
-	appendInfoLine: line$ [9 - line]
+for line2 from 1 to 8
+	line = 9 - line2
+	line$ = line'line'$
+	printline 'line$'
 endfor
-
-memoryReport$ = Report memory use
-strings_after = extractNumber (memoryReport$, "Strings:")
-arrays_after  = extractNumber (memoryReport$, "Arrays:")
-things_after  = extractNumber (memoryReport$, "Things:")
-other_after   = extractNumber (memoryReport$, "Other:")
-
-appendInfoLine ()
-appendInfoLine: "Leaking:"
-appendInfoLine: "   Strings: ", strings_after - strings_before
-appendInfoLine: "   Arrays: ", arrays_after - arrays_before
-appendInfoLine: "   Things: ", things_after - things_before
-appendInfoLine: "   Other: ", other_after - other_before
-
diff --git a/test/runAllTests_leak.praat b/test/runAllTests_leak.praat
deleted file mode 100644
index d2dc890..0000000
--- a/test/runAllTests_leak.praat
+++ /dev/null
@@ -1,128 +0,0 @@
-# Praat script runAlltests_leak.praat
-# Paul Boersma, 2016-02-02
-#
-# This script runs all Praat scripts in its subdirectories.
-
-Text writing preferences: "try ASCII, then UTF-16"
-if macintosh
-	Text reading preferences: "try UTF-8, then MacRoman"
-elif windows
-	Text reading preferences: "try UTF-8, then Windows Latin-1"
-elif unix
-	Text reading preferences: "try UTF-8, then ISO Latin-1"
-else
-	exitScript: "Unknown operating system."
-endif
-
-writeInfoLine: "Running all tests twice..."
-
-# Warm up.
-strings_before = 0
-arrays_before  = 0
-things_before  = 0
-other_before   = 0
-strings_after = 0
-arrays_after  = 0
-things_after  = 0
-other_after   = 0
-
-leakReport$ = ""
-
-procedure runScript (.path$)
-	runScript: .path$
-	Erase all
-	writeInfo ()
-
-	memoryReport$ = Report memory use
-	memoryReport$ = Report memory use
-	strings_before = extractNumber (memoryReport$, "Strings:")
-	arrays_before  = extractNumber (memoryReport$, "Arrays:")
-	things_before  = extractNumber (memoryReport$, "Things:")
-	other_before   = extractNumber (memoryReport$, "Other:")
-
-	runScript: .path$
-	Erase all
-	writeInfo ()
-
-	memoryReport$ = Report memory use
-	strings_after = extractNumber (memoryReport$, "Strings:")
-	arrays_after  = extractNumber (memoryReport$, "Arrays:")
-	things_after  = extractNumber (memoryReport$, "Things:")
-	other_after   = extractNumber (memoryReport$, "Other:")
-
-	if strings_after <> strings_before or arrays_after <> arrays_before or
-	... things_after <> things_before or other_after <> other_before
-		appendInfoLine ()
-		leakReport$ = leakReport$ + "Leaking in " + .path$ + ":" + newline$
-		leakReport$ = leakReport$ + "   Strings: " + string$ (strings_before) + " " + string$ (strings_after) + newline$
-		leakReport$ = leakReport$ + "   Arrays: " + string$ (arrays_before) + " " + string$ (arrays_after) + newline$
-		leakReport$ = leakReport$ + "   Things: " + string$ (things_before) + " " + string$ (things_after) + newline$
-		leakReport$ = leakReport$ + "   Other: " + string$ (other_before) + " " + string$ (other_after) + newline$
-	endif
-endproc
-
-directories = Create Strings as directory list: "directories", "."
-numberOfDirectories = Get number of strings
-for directory to numberOfDirectories
-	selectObject: directories
-	directory$ = Get string: directory
-	if directory$ <> "manually"
-		files = Create Strings as file list: "files", directory$ + "/*.praat"
-		numberOfFiles = Get number of strings
-		for file to numberOfFiles
-			selectObject: files
-			file$ = Get string: file
-			path$ = directory$ + "/" + file$
-			appendInfoLine: "### executing ", path$, ":"
-			@runScript: path$
-		endfor
-		removeObject: files
-	endif
-endfor
-removeObject: directories
-
-directories1 = Create Strings as directory list: "directories1", "."
-numberOfDirectories1 = Get number of strings
-for directory1 to numberOfDirectories1
-	selectObject: directories1
-	directory1$ = Get string: directory1
-	if directory1$ <> "manually"
-		directories2 = Create Strings as directory list: "directories2", directory1$ + "/*"
-		numberOfDirectories2 = Get number of strings
-		for directory2 to numberOfDirectories2
-			selectObject: directories2
-			directory2$ = Get string: directory2
-			files = Create Strings as file list: "files", directory1$ + "/" + directory2$ + "/*.praat"
-			numberOfFiles = Get number of strings
-			for file to numberOfFiles
-				selectObject: files
-				file$ = Get string: file
-				path$ = directory1$ + "/" + directory2$ + "/" + file$
-				appendInfoLine: "### executing ", path$, ":"
-				@runScript: path$
-			endfor
-			removeObject: files
-		endfor
-		removeObject: directories2
-	endif
-endfor
-removeObject: directories1
-
-writeInfoLine: "                 ALL PRAAT TESTS WENT OK"
-appendInfoLine: ""
-line$ [5] = "        #####          #####        #####   #####"
-line$ [8] = "        #####          #####        #######"
-line$ [1] = "               ######               #####           #####"
-line$ [2] = "           ##############           #####         #####"
-line$ [4] = "        #####          #####        #####     #####"
-line$ [7] = "        #####          #####        #########"
-line$ [9] = "        #####          #####        #####"
-line$ [3] = "         #####        #####         #####       #####"
-line$ [6] = "        #####          #####        ##### #####"
-for line from 1 to 9
-	appendInfoLine: line$ [line]
-endfor
-for line from 1 to 8
-	appendInfoLine: line$ [9 - line]
-endfor
-appendInfoLine: leakReport$
diff --git a/test/stat/Table.praat b/test/stat/Table.praat
index f230b9b..1e0d3a7 100644
--- a/test/stat/Table.praat
+++ b/test/stat/Table.praat
@@ -13,13 +13,4 @@ for cycle to 300
 	endfor
 endfor
 t = stopwatch
-echo 't:3' 'z'
-Remove
-
-pb1 = Create formant table (Peterson & Barney 1952)
-pb2 = Read from file: "pb.Table"
-assert objectsAreIdentical: pb1, pb2
-
-removeObject: pb1, pb2
-
-appendInfoLine: "OK"
+echo 't:3' 'z'
\ No newline at end of file
diff --git a/test/stat/linearRegression.praat b/test/stat/linearRegression.praat
deleted file mode 100644
index cfde2ad..0000000
--- a/test/stat/linearRegression.praat
+++ /dev/null
@@ -1,19 +0,0 @@
-echo Linear regression
-# Paul Boersma, 23 November 2015
-
-printline Spec & Dur table
-Read Table from table file... logisticRegression/rh.Table
-To linear regression
-info$ = Info
-intercept = extractNumber (info$, "Intercept: ")
-assert fixed$ (intercept, 4) = "10.0000"   ; 'intercept'
-spec = extractNumber (info$, "Coefficient of factor Spec: ")
-assert left$ (fixed$ (abs (spec), 4), 6) = "0.0000"   ; 'spec'
-dur = extractNumber (info$, "Coefficient of factor Dur: ")
-assert left$ (fixed$ (abs (dur), 4), 6) = "0.0000"   ; 'dur'
-i = extractNumber (info$, "Coefficient of factor /I/: ")
-assert fixed$ (i, 4) = "-1.0000"   ; 'i'
-plus Table rh
-Remove
-
-printline OK
diff --git a/test/stat/logisticRegression.praat b/test/stat/logisticRegression.praat
index eb6bfdf..b2e8075 100644
--- a/test/stat/logisticRegression.praat
+++ b/test/stat/logisticRegression.praat
@@ -1,11 +1,9 @@
 echo Logistic regression
-# Paul Boersma, 16 December 2015
+# Paul Boersma, 30 November 2009
 
 printline Spec & Dur table
-table = Read Table from table file... logisticRegression/rh.Table
-logreg = To logistic regression: "Spec Dur", "/I/", "/i/"
-logreg2 = Read from file: "logisticRegression/rh.logisticRegression"
-assert objectsAreIdentical (logreg, logreg2)
+Read Table from table file... logisticRegression/rh.Table
+To logistic regression... "Spec Dur" /I/ /i/
 info$ = Info
 intercept = extractNumber (info$, "Intercept: ")
 assert fixed$ (intercept, 4) = "-8.7028"   ; 'intercept'
@@ -13,6 +11,7 @@ spec = extractNumber (info$, "Coefficient of factor Spec: ")
 assert fixed$ (spec, 4) = "1.6587"   ; 'spec'
 dur = extractNumber (info$, "Coefficient of factor Dur: ")
 assert fixed$ (dur, 4) = "0.6041"   ; 'dur'
-removeObject: table, logreg, logreg2
+plus Table rh
+Remove
 
 printline OK
diff --git a/test/stat/logisticRegression/rh.LogisticRegression b/test/stat/logisticRegression/rh.LogisticRegression
deleted file mode 100644
index 5296d07..0000000
--- a/test/stat/logisticRegression/rh.LogisticRegression
+++ /dev/null
@@ -1,17 +0,0 @@
-File type = "ooTextFile"
-Object class = "LogisticRegression"
-
-intercept = -8.702787857509811 
-parameters: size = 2 
-parameters [1]:
-    label = "Spec" 
-    minimum = 1 
-    maximum = 7 
-    value = 1.658716046208673 
-parameters [2]:
-    label = "Dur" 
-    minimum = 1 
-    maximum = 7 
-    value = 0.6041395474038707 
-dependent1 = "/I/" 
-dependent2 = "/i/" 
diff --git a/test/stat/pb.Table b/test/stat/pb.Table
deleted file mode 100644
index 5be3524..0000000
--- a/test/stat/pb.Table
+++ /dev/null
@@ -1,31944 +0,0 @@
-File type = "ooTextFile"
-Object class = "Table"
-
-numberOfColumns = 9 
-columnHeaders []: 
-    columnHeaders [1]:
-        label = "Type" 
-    columnHeaders [2]:
-        label = "Sex" 
-    columnHeaders [3]:
-        label = "Speaker" 
-    columnHeaders [4]:
-        label = "Vowel" 
-    columnHeaders [5]:
-        label = "IPA" 
-    columnHeaders [6]:
-        label = "F0" 
-    columnHeaders [7]:
-        label = "F1" 
-    columnHeaders [8]:
-        label = "F2" 
-    columnHeaders [9]:
-        label = "F3" 
-rows: size = 1520 
-rows [1]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2280" 
-        cells [9]:
-            string = "2850" 
-rows [2]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "186" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "2790" 
-rows [3]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "2030" 
-        cells [9]:
-            string = "2640" 
-rows [4]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2550" 
-rows [5]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "161" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1870" 
-        cells [9]:
-            string = "2420" 
-rows [6]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "155" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2600" 
-rows [7]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2660" 
-rows [8]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2550" 
-rows [9]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "144" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "2620" 
-rows [10]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2530" 
-rows [11]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "2490" 
-rows [12]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2640" 
-rows [13]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "161" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2280" 
-rows [14]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "158" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2220" 
-rows [15]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "163" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2210" 
-rows [16]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "2280" 
-rows [17]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2150" 
-rows [18]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "930" 
-        cells [9]:
-            string = "2280" 
-rows [19]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "177" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1520" 
-        cells [9]:
-            string = "1670" 
-rows [20]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "1" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "164" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "1590" 
-rows [21]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "147" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2910" 
-rows [22]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "210" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "3250" 
-rows [23]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "1890" 
-        cells [9]:
-            string = "2680" 
-rows [24]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "139" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2500" 
-rows [25]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1760" 
-        cells [9]:
-            string = "2590" 
-rows [26]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2380" 
-rows [27]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1610" 
-        cells [9]:
-            string = "2560" 
-rows [28]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1690" 
-        cells [9]:
-            string = "2580" 
-rows [29]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2420" 
-rows [30]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "625" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2490" 
-rows [31]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2450" 
-rows [32]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2430" 
-rows [33]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "149" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "580" 
-        cells [9]:
-            string = "2470" 
-rows [34]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "560" 
-        cells [9]:
-            string = "2410" 
-rows [35]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "1910" 
-rows [36]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "830" 
-        cells [9]:
-            string = "2240" 
-rows [37]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "650" 
-        cells [9]:
-            string = "3300" 
-rows [38]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "137" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "660" 
-        cells [9]:
-            string = "3300" 
-rows [39]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "1570" 
-rows [40]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "2" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1130" 
-        cells [9]:
-            string = "1510" 
-rows [41]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "2180" 
-        cells [9]:
-            string = "2680" 
-rows [42]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "244" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2780" 
-rows [43]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1930" 
-        cells [9]:
-            string = "2610" 
-rows [44]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "104" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1990" 
-        cells [9]:
-            string = "2700" 
-rows [45]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1810" 
-        cells [9]:
-            string = "2500" 
-rows [46]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "95" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1810" 
-        cells [9]:
-            string = "2480" 
-rows [47]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "93" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2400" 
-rows [48]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "94" 
-        cells [7]:
-            string = "658" 
-        cells [8]:
-            string = "1755" 
-        cells [9]:
-            string = "2305" 
-rows [49]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2320" 
-rows [50]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "612" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2350" 
-rows [51]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "91" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2140" 
-rows [52]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "94" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1090" 
-        cells [9]:
-            string = "2230" 
-rows [53]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "92" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "870" 
-        cells [9]:
-            string = "2300" 
-rows [54]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2280" 
-rows [55]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2290" 
-rows [56]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "456" 
-        cells [8]:
-            string = "1030" 
-        cells [9]:
-            string = "2300" 
-rows [57]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2240" 
-rows [58]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "326" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2190" 
-rows [59]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "1780" 
-rows [60]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "3" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "1800" 
-rows [61]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2240" 
-        cells [9]:
-            string = "3400" 
-rows [62]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "156" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "3200" 
-rows [63]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "156" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1960" 
-        cells [9]:
-            string = "2400" 
-rows [64]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2050" 
-        cells [9]:
-            string = "2360" 
-rows [65]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2410" 
-rows [66]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "555" 
-        cells [8]:
-            string = "1890" 
-        cells [9]:
-            string = "2440" 
-rows [67]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1610" 
-        cells [9]:
-            string = "2340" 
-rows [68]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2350" 
-rows [69]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2330" 
-rows [70]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "675" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "2380" 
-rows [71]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2550" 
-rows [72]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2500" 
-rows [73]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2320" 
-rows [74]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "555" 
-        cells [8]:
-            string = "890" 
-        cells [9]:
-            string = "2370" 
-rows [75]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2210" 
-rows [76]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "156" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2350" 
-rows [77]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2050" 
-rows [78]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "385" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2330" 
-rows [79]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "1840" 
-rows [80]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "4" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "555" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "1730" 
-rows [81]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "2310" 
-        cells [9]:
-            string = "2820" 
-rows [82]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "2850" 
-rows [83]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "137" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2640" 
-rows [84]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "134" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1880" 
-        cells [9]:
-            string = "2450" 
-rows [85]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1910" 
-        cells [9]:
-            string = "2500" 
-rows [86]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "137" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1770" 
-        cells [9]:
-            string = "2400" 
-rows [87]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "2180" 
-rows [88]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1690" 
-        cells [9]:
-            string = "2320" 
-rows [89]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1950" 
-rows [90]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2000" 
-rows [91]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2140" 
-rows [92]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "126" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2020" 
-rows [93]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "1980" 
-rows [94]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "880" 
-        cells [9]:
-            string = "1950" 
-rows [95]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "1990" 
-rows [96]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "1920" 
-rows [97]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2140" 
-rows [98]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2130" 
-rows [99]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1510" 
-        cells [9]:
-            string = "1800" 
-rows [100]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "5" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "1700" 
-rows [101]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "312" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "2800" 
-rows [102]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "2430" 
-        cells [9]:
-            string = "2870" 
-rows [103]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2660" 
-rows [104]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "313" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2750" 
-rows [105]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2500" 
-rows [106]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1830" 
-        cells [9]:
-            string = "2570" 
-rows [107]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "676" 
-        cells [8]:
-            string = "1670" 
-        cells [9]:
-            string = "2540" 
-rows [108]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "725" 
-        cells [8]:
-            string = "1687" 
-        cells [9]:
-            string = "2500" 
-rows [109]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2560" 
-rows [110]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "726" 
-        cells [8]:
-            string = "1270" 
-        cells [9]:
-            string = "2560" 
-rows [111]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2680" 
-rows [112]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "113" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2650" 
-rows [113]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1030" 
-        cells [9]:
-            string = "2690" 
-rows [114]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2700" 
-rows [115]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "456" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2520" 
-rows [116]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "2600" 
-rows [117]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "313" 
-        cells [8]:
-            string = "838" 
-        cells [9]:
-            string = "2340" 
-rows [118]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "288" 
-        cells [8]:
-            string = "938" 
-        cells [9]:
-            string = "2450" 
-rows [119]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "503" 
-        cells [8]:
-            string = "1305" 
-        cells [9]:
-            string = "1775" 
-rows [120]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "6" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "505" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "1750" 
-rows [121]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "186" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2320" 
-        cells [9]:
-            string = "3120" 
-rows [122]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "172" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "2280" 
-        cells [9]:
-            string = "3020" 
-rows [123]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2660" 
-rows [124]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2040" 
-        cells [9]:
-            string = "2715" 
-rows [125]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2860" 
-rows [126]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "614" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2770" 
-rows [127]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2450" 
-rows [128]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "162" 
-        cells [7]:
-            string = "775" 
-        cells [8]:
-            string = "1810" 
-        cells [9]:
-            string = "2200" 
-rows [129]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2410" 
-rows [130]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "2400" 
-rows [131]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "162" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2580" 
-rows [132]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "163" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2350" 
-rows [133]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2450" 
-rows [134]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "171" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2500" 
-rows [135]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2150" 
-rows [136]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "493" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2300" 
-rows [137]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2260" 
-rows [138]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2350" 
-rows [139]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1750" 
-rows [140]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "7" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "565" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "1710" 
-rows [141]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "230" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3200" 
-rows [142]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "109" 
-        cells [7]:
-            string = "218" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3100" 
-rows [143]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2680" 
-rows [144]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "206" 
-        cells [8]:
-            string = "2130" 
-        cells [9]:
-            string = "2570" 
-rows [145]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2630" 
-rows [146]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "515" 
-        cells [8]:
-            string = "1760" 
-        cells [9]:
-            string = "2470" 
-rows [147]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "514" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2600" 
-rows [148]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "552" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2500" 
-rows [149]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2300" 
-rows [150]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "104" 
-        cells [7]:
-            string = "624" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "2410" 
-rows [151]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "714" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2420" 
-rows [152]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "97" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2350" 
-rows [153]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "965" 
-        cells [9]:
-            string = "2500" 
-rows [154]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "109" 
-        cells [7]:
-            string = "578" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2460" 
-rows [155]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "467" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2400" 
-rows [156]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "475" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2310" 
-rows [157]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "910" 
-        cells [9]:
-            string = "2200" 
-rows [158]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "975" 
-        cells [9]:
-            string = "2320" 
-rows [159]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "1790" 
-rows [160]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "8" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "425" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "1760" 
-rows [161]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "316" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2800" 
-rows [162]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2275" 
-        cells [9]:
-            string = "2775" 
-rows [163]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2475" 
-rows [164]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "434" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2425" 
-rows [165]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "582" 
-        cells [8]:
-            string = "1725" 
-        cells [9]:
-            string = "2375" 
-rows [166]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "158" 
-        cells [7]:
-            string = "586" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2425" 
-rows [167]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2375" 
-rows [168]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "582" 
-        cells [8]:
-            string = "1775" 
-        cells [9]:
-            string = "2375" 
-rows [169]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "626" 
-        cells [8]:
-            string = "1125" 
-        cells [9]:
-            string = "2200" 
-rows [170]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "641" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2225" 
-rows [171]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "144" 
-        cells [7]:
-            string = "708" 
-        cells [8]:
-            string = "1054" 
-        cells [9]:
-            string = "2420" 
-rows [172]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "705" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2375" 
-rows [173]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "614" 
-        cells [8]:
-            string = "848" 
-        cells [9]:
-            string = "2200" 
-rows [174]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2175" 
-rows [175]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2325" 
-rows [176]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2325" 
-rows [177]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "334" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2200" 
-rows [178]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "183" 
-        cells [7]:
-            string = "312" 
-        cells [8]:
-            string = "1020" 
-        cells [9]:
-            string = "2300" 
-rows [179]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "518" 
-        cells [8]:
-            string = "1305" 
-        cells [9]:
-            string = "1570" 
-rows [180]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "9" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "1510" 
-rows [181]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "129" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "2260" 
-        cells [9]:
-            string = "2820" 
-rows [182]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2825" 
-rows [183]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2040" 
-        cells [9]:
-            string = "2500" 
-rows [184]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "144" 
-        cells [7]:
-            string = "389" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2425" 
-rows [185]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "126" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1870" 
-        cells [9]:
-            string = "2500" 
-rows [186]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1775" 
-        cells [9]:
-            string = "2450" 
-rows [187]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "2500" 
-rows [188]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "624" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2475" 
-rows [189]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2550" 
-rows [190]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "672" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2500" 
-rows [191]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2680" 
-rows [192]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "777" 
-        cells [8]:
-            string = "1026" 
-        cells [9]:
-            string = "2625" 
-rows [193]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2650" 
-rows [194]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "585" 
-        cells [8]:
-            string = "819" 
-        cells [9]:
-            string = "2625" 
-rows [195]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2500" 
-rows [196]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "461" 
-        cells [8]:
-            string = "993" 
-        cells [9]:
-            string = "2350" 
-rows [197]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2300" 
-rows [198]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "266" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2300" 
-rows [199]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "1700" 
-rows [200]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "10" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "532" 
-        cells [8]:
-            string = "1275" 
-        cells [9]:
-            string = "1600" 
-rows [201]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "248" 
-        cells [8]:
-            string = "2225" 
-        cells [9]:
-            string = "3100" 
-rows [202]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "238" 
-        cells [8]:
-            string = "2175" 
-        cells [9]:
-            string = "3075" 
-rows [203]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "405" 
-        cells [8]:
-            string = "1925" 
-        cells [9]:
-            string = "2550" 
-rows [204]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "416" 
-        cells [8]:
-            string = "1940" 
-        cells [9]:
-            string = "2600" 
-rows [205]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "147" 
-        cells [7]:
-            string = "588" 
-        cells [8]:
-            string = "1790" 
-        cells [9]:
-            string = "2500" 
-rows [206]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "586" 
-        cells [8]:
-            string = "1725" 
-        cells [9]:
-            string = "2650" 
-rows [207]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "725" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2425" 
-rows [208]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "2220" 
-rows [209]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "586" 
-        cells [8]:
-            string = "1078" 
-        cells [9]:
-            string = "2300" 
-rows [210]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "627" 
-        cells [8]:
-            string = "1038" 
-        cells [9]:
-            string = "2360" 
-rows [211]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "725" 
-        cells [8]:
-            string = "1046" 
-        cells [9]:
-            string = "2325" 
-rows [212]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "746" 
-        cells [8]:
-            string = "1018" 
-        cells [9]:
-            string = "2300" 
-rows [213]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2500" 
-rows [214]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "924" 
-        cells [9]:
-            string = "2350" 
-rows [215]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "495" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2275" 
-rows [216]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1030" 
-        cells [9]:
-            string = "2275" 
-rows [217]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "162" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "760" 
-        cells [9]:
-            string = "2300" 
-rows [218]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "315" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2025" 
-rows [219]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "511" 
-        cells [8]:
-            string = "1561" 
-        cells [9]:
-            string = "1876" 
-rows [220]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "11" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "1887" 
-rows [221]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2410" 
-        cells [9]:
-            string = "3000" 
-rows [222]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2440" 
-        cells [9]:
-            string = "3280" 
-rows [223]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1880" 
-        cells [9]:
-            string = "2450" 
-rows [224]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1930" 
-        cells [9]:
-            string = "2420" 
-rows [225]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "2300" 
-rows [226]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "123" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "2300" 
-rows [227]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "2330" 
-rows [228]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "2280" 
-rows [229]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "2250" 
-rows [230]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1390" 
-        cells [9]:
-            string = "2240" 
-rows [231]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "2260" 
-rows [232]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2280" 
-rows [233]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2080" 
-rows [234]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "910" 
-        cells [9]:
-            string = "2000" 
-rows [235]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2210" 
-rows [236]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2230" 
-rows [237]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2130" 
-rows [238]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "123" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "1010" 
-        cells [9]:
-            string = "2240" 
-rows [239]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "1650" 
-rows [240]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "12" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "1640" 
-rows [241]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "142" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "2290" 
-        cells [9]:
-            string = "2600" 
-rows [242]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "2290" 
-        cells [9]:
-            string = "2700" 
-rows [243]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2550" 
-rows [244]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2450" 
-rows [245]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1740" 
-        cells [9]:
-            string = "2500" 
-rows [246]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2430" 
-rows [247]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2500" 
-rows [248]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2380" 
-rows [249]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2530" 
-rows [250]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2430" 
-rows [251]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2630" 
-rows [252]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2700" 
-rows [253]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2450" 
-rows [254]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "710" 
-        cells [9]:
-            string = "2540" 
-rows [255]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "910" 
-        cells [9]:
-            string = "2350" 
-rows [256]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1030" 
-        cells [9]:
-            string = "2400" 
-rows [257]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2750" 
-rows [258]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "740" 
-        cells [9]:
-            string = "2880" 
-rows [259]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "1610" 
-rows [260]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "13" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1360" 
-        cells [9]:
-            string = "1600" 
-rows [261]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "228" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "2860" 
-rows [262]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "2920" 
-rows [263]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "407" 
-        cells [8]:
-            string = "2070" 
-        cells [9]:
-            string = "2500" 
-rows [264]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2450" 
-rows [265]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "445" 
-        cells [8]:
-            string = "2020" 
-        cells [9]:
-            string = "2420" 
-rows [266]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "2020" 
-        cells [9]:
-            string = "2500" 
-rows [267]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "721" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "2400" 
-rows [268]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "109" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2440" 
-rows [269]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "104" 
-        cells [7]:
-            string = "552" 
-        cells [8]:
-            string = "1122" 
-        cells [9]:
-            string = "2500" 
-rows [270]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2600" 
-rows [271]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "98" 
-        cells [7]:
-            string = "686" 
-        cells [8]:
-            string = "1078" 
-        cells [9]:
-            string = "2570" 
-rows [272]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2680" 
-rows [273]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "102" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "665" 
-        cells [9]:
-            string = "2620" 
-rows [274]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "650" 
-        cells [9]:
-            string = "2700" 
-rows [275]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "448" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2370" 
-rows [276]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "104" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "2370" 
-rows [277]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "232" 
-        cells [8]:
-            string = "696" 
-        cells [9]:
-            string = "2200" 
-rows [278]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "222" 
-        cells [8]:
-            string = "665" 
-        cells [9]:
-            string = "2080" 
-rows [279]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "432" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1400" 
-rows [280]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "14" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1570" 
-rows [281]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "230" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2850" 
-rows [282]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2980" 
-rows [283]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "365" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2340" 
-rows [284]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2040" 
-        cells [9]:
-            string = "2560" 
-rows [285]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2310" 
-rows [286]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2050" 
-        cells [9]:
-            string = "2500" 
-rows [287]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2110" 
-rows [288]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2150" 
-rows [289]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2380" 
-rows [290]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2450" 
-rows [291]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "830" 
-        cells [9]:
-            string = "2250" 
-rows [292]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "820" 
-        cells [9]:
-            string = "2400" 
-rows [293]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "620" 
-        cells [9]:
-            string = "2250" 
-rows [294]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "700" 
-        cells [9]:
-            string = "2550" 
-rows [295]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "730" 
-        cells [9]:
-            string = "2180" 
-rows [296]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "740" 
-        cells [9]:
-            string = "2200" 
-rows [297]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2100" 
-rows [298]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "740" 
-        cells [9]:
-            string = "2040" 
-rows [299]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "1600" 
-rows [300]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "15" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1650" 
-rows [301]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2355" 
-        cells [9]:
-            string = "3250" 
-rows [302]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2460" 
-        cells [9]:
-            string = "3280" 
-rows [303]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "385" 
-        cells [8]:
-            string = "2242" 
-        cells [9]:
-            string = "2805" 
-rows [304]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "407" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "2780" 
-rows [305]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "2090" 
-        cells [9]:
-            string = "2720" 
-rows [306]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "543" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2640" 
-rows [307]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1958" 
-        cells [9]:
-            string = "2542" 
-rows [308]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "708" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2535" 
-rows [309]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "675" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "2550" 
-rows [310]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "704" 
-        cells [8]:
-            string = "1393" 
-        cells [9]:
-            string = "2550" 
-rows [311]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "137" 
-        cells [7]:
-            string = "825" 
-        cells [8]:
-            string = "1168" 
-        cells [9]:
-            string = "2750" 
-rows [312]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2680" 
-rows [313]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "671" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2670" 
-rows [314]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "147" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "968" 
-        cells [9]:
-            string = "2660" 
-rows [315]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "443" 
-        cells [8]:
-            string = "1273" 
-        cells [9]:
-            string = "2430" 
-rows [316]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "153" 
-        cells [7]:
-            string = "459" 
-        cells [8]:
-            string = "1286" 
-        cells [9]:
-            string = "2410" 
-rows [317]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "395" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2160" 
-rows [318]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "153" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "2150" 
-rows [319]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "532" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "1890" 
-rows [320]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "16" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "538" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "1818" 
-rows [321]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "264" 
-        cells [8]:
-            string = "2290" 
-        cells [9]:
-            string = "2700" 
-rows [322]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "256" 
-        cells [8]:
-            string = "2305" 
-        cells [9]:
-            string = "2635" 
-rows [323]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1880" 
-        cells [9]:
-            string = "2440" 
-rows [324]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "346" 
-        cells [8]:
-            string = "1930" 
-        cells [9]:
-            string = "2390" 
-rows [325]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2300" 
-rows [326]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1730" 
-        cells [9]:
-            string = "2275" 
-rows [327]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1770" 
-        cells [9]:
-            string = "2350" 
-rows [328]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1642" 
-        cells [9]:
-            string = "2170" 
-rows [329]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "601" 
-        cells [8]:
-            string = "1273" 
-        cells [9]:
-            string = "2130" 
-rows [330]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1283" 
-        cells [9]:
-            string = "2150" 
-rows [331]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2440" 
-rows [332]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "95" 
-        cells [7]:
-            string = "703" 
-        cells [8]:
-            string = "1092" 
-        cells [9]:
-            string = "2320" 
-rows [333]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "97" 
-        cells [7]:
-            string = "565" 
-        cells [8]:
-            string = "780" 
-        cells [9]:
-            string = "2350" 
-rows [334]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "584" 
-        cells [8]:
-            string = "849" 
-        cells [9]:
-            string = "2460" 
-rows [335]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2140" 
-rows [336]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "422" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2175" 
-rows [337]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "315" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2260" 
-rows [338]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "326" 
-        cells [8]:
-            string = "1125" 
-        cells [9]:
-            string = "2210" 
-rows [339]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "444" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1625" 
-rows [340]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "17" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "109" 
-        cells [7]:
-            string = "469" 
-        cells [8]:
-            string = "1288" 
-        cells [9]:
-            string = "1600" 
-rows [341]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "210" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "3090" 
-rows [342]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2080" 
-        cells [9]:
-            string = "3180" 
-rows [343]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2710" 
-rows [344]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2670" 
-rows [345]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1910" 
-        cells [9]:
-            string = "2580" 
-rows [346]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "129" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1930" 
-        cells [9]:
-            string = "2650" 
-rows [347]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1620" 
-        cells [9]:
-            string = "2200" 
-rows [348]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2360" 
-rows [349]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2230" 
-rows [350]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "126" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2330" 
-rows [351]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2240" 
-rows [352]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2220" 
-rows [353]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2180" 
-rows [354]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "690" 
-        cells [9]:
-            string = "2200" 
-rows [355]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "129" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "770" 
-        cells [9]:
-            string = "1860" 
-rows [356]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "790" 
-        cells [9]:
-            string = "1920" 
-rows [357]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "210" 
-        cells [8]:
-            string = "670" 
-        cells [9]:
-            string = "1900" 
-rows [358]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "730" 
-        cells [9]:
-            string = "1850" 
-rows [359]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "1550" 
-rows [360]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "18" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "1510" 
-rows [361]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "129" 
-        cells [7]:
-            string = "190" 
-        cells [8]:
-            string = "2650" 
-        cells [9]:
-            string = "3280" 
-rows [362]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "190" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3170" 
-rows [363]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2700" 
-rows [364]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2750" 
-rows [365]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "2560" 
-rows [366]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "375" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2500" 
-rows [367]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1570" 
-        cells [9]:
-            string = "2600" 
-rows [368]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1610" 
-        cells [9]:
-            string = "2650" 
-rows [369]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2500" 
-rows [370]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2480" 
-rows [371]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2870" 
-rows [372]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2900" 
-rows [373]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "113" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2900" 
-rows [374]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "820" 
-        cells [9]:
-            string = "2820" 
-rows [375]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2500" 
-rows [376]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2370" 
-rows [377]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2100" 
-rows [378]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "210" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "1940" 
-rows [379]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1920" 
-rows [380]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "19" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1760" 
-rows [381]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "2180" 
-        cells [9]:
-            string = "2660" 
-rows [382]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "260" 
-        cells [8]:
-            string = "2210" 
-        cells [9]:
-            string = "2780" 
-rows [383]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2440" 
-rows [384]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2480" 
-rows [385]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1670" 
-        cells [9]:
-            string = "2310" 
-rows [386]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2380" 
-rows [387]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "2280" 
-rows [388]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2320" 
-rows [389]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2390" 
-rows [390]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2370" 
-rows [391]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2330" 
-rows [392]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "2380" 
-rows [393]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "790" 
-        cells [9]:
-            string = "2480" 
-rows [394]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2420" 
-rows [395]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2200" 
-rows [396]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2200" 
-rows [397]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "670" 
-        cells [9]:
-            string = "2140" 
-rows [398]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "126" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2190" 
-rows [399]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "1760" 
-rows [400]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "20" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "121" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "1700" 
-rows [401]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "155" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "2910" 
-rows [402]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2320" 
-        cells [9]:
-            string = "2960" 
-rows [403]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "142" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2680" 
-rows [404]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "2050" 
-        cells [9]:
-            string = "2670" 
-rows [405]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2530" 
-rows [406]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1920" 
-        cells [9]:
-            string = "2520" 
-rows [407]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2440" 
-rows [408]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2480" 
-rows [409]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2600" 
-rows [410]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1290" 
-        cells [9]:
-            string = "2600" 
-rows [411]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2500" 
-rows [412]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2720" 
-rows [413]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2570" 
-rows [414]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "880" 
-        cells [9]:
-            string = "2660" 
-rows [415]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "142" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1130" 
-        cells [9]:
-            string = "2440" 
-rows [416]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2420" 
-rows [417]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "142" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "2330" 
-rows [418]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2300" 
-rows [419]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "1600" 
-rows [420]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "21" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "1600" 
-rows [421]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2800" 
-rows [422]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "2240" 
-        cells [9]:
-            string = "2760" 
-rows [423]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2680" 
-rows [424]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2080" 
-        cells [9]:
-            string = "2520" 
-rows [425]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1870" 
-        cells [9]:
-            string = "2320" 
-rows [426]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2400" 
-rows [427]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1920" 
-        cells [9]:
-            string = "2480" 
-rows [428]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2560" 
-rows [429]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "139" 
-        cells [7]:
-            string = "810" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2100" 
-rows [430]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2100" 
-rows [431]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2120" 
-rows [432]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2080" 
-rows [433]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2240" 
-rows [434]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "142" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2250" 
-rows [435]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2200" 
-rows [436]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "141" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "870" 
-        cells [9]:
-            string = "2240" 
-rows [437]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "600" 
-        cells [9]:
-            string = "2300" 
-rows [438]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "230" 
-        cells [8]:
-            string = "570" 
-        cells [9]:
-            string = "2100" 
-rows [439]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1520" 
-        cells [9]:
-            string = "2100" 
-rows [440]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "22" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1570" 
-        cells [9]:
-            string = "2050" 
-rows [441]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2900" 
-rows [442]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2150" 
-        cells [9]:
-            string = "2860" 
-rows [443]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1870" 
-        cells [9]:
-            string = "2450" 
-rows [444]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2350" 
-rows [445]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1770" 
-        cells [9]:
-            string = "2500" 
-rows [446]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2400" 
-rows [447]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2440" 
-rows [448]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "715" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2300" 
-rows [449]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "880" 
-        cells [9]:
-            string = "2500" 
-rows [450]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "124" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2520" 
-rows [451]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "119" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2520" 
-rows [452]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2520" 
-rows [453]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "610" 
-        cells [9]:
-            string = "2500" 
-rows [454]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "710" 
-        cells [9]:
-            string = "2500" 
-rows [455]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2100" 
-rows [456]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2140" 
-rows [457]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "690" 
-        cells [9]:
-            string = "2080" 
-rows [458]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "650" 
-        cells [9]:
-            string = "2050" 
-rows [459]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "1720" 
-rows [460]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "23" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "1650" 
-rows [461]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "148" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "2700" 
-rows [462]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "288" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "2880" 
-rows [463]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2080" 
-        cells [9]:
-            string = "2530" 
-rows [464]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "153" 
-        cells [7]:
-            string = "384" 
-        cells [8]:
-            string = "2110" 
-        cells [9]:
-            string = "2500" 
-rows [465]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2200" 
-rows [466]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "153" 
-        cells [7]:
-            string = "583" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2250" 
-rows [467]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2400" 
-rows [468]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "685" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2160" 
-rows [469]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "2110" 
-rows [470]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2100" 
-rows [471]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2120" 
-rows [472]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "135" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "2020" 
-rows [473]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "1850" 
-rows [474]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "132" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2000" 
-rows [475]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "1950" 
-rows [476]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2150" 
-rows [477]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "162" 
-        cells [7]:
-            string = "324" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2220" 
-rows [478]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "139" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2150" 
-rows [479]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "1780" 
-rows [480]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "24" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "1820" 
-rows [481]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "2190" 
-        cells [9]:
-            string = "3000" 
-rows [482]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "106" 
-        cells [7]:
-            string = "254" 
-        cells [8]:
-            string = "2085" 
-        cells [9]:
-            string = "2890" 
-rows [483]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "1967" 
-        cells [9]:
-            string = "2670" 
-rows [484]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1940" 
-        cells [9]:
-            string = "2590" 
-rows [485]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "464" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2700" 
-rows [486]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "1995" 
-        cells [9]:
-            string = "2780" 
-rows [487]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "94" 
-        cells [7]:
-            string = "595" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2700" 
-rows [488]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2500" 
-rows [489]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "96" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2420" 
-rows [490]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1127" 
-        cells [9]:
-            string = "2420" 
-rows [491]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "100" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2360" 
-rows [492]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "96" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1155" 
-        cells [9]:
-            string = "2330" 
-rows [493]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "101" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "740" 
-        cells [9]:
-            string = "2300" 
-rows [494]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "494" 
-        cells [8]:
-            string = "789" 
-        cells [9]:
-            string = "2420" 
-rows [495]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "113" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1020" 
-        cells [9]:
-            string = "2200" 
-rows [496]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1028" 
-        cells [9]:
-            string = "2160" 
-rows [497]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "392" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2120" 
-rows [498]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "898" 
-        cells [9]:
-            string = "2140" 
-rows [499]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "547" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "1688" 
-rows [500]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "25" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "512" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "1570" 
-rows [501]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "123" 
-        cells [7]:
-            string = "246" 
-        cells [8]:
-            string = "2185" 
-        cells [9]:
-            string = "2730" 
-rows [502]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "267" 
-        cells [8]:
-            string = "2280" 
-        cells [9]:
-            string = "2800" 
-rows [503]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2800" 
-rows [504]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "384" 
-        cells [8]:
-            string = "2110" 
-        cells [9]:
-            string = "2620" 
-rows [505]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1920" 
-        cells [9]:
-            string = "2540" 
-rows [506]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "551" 
-        cells [8]:
-            string = "1788" 
-        cells [9]:
-            string = "2450" 
-rows [507]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "628" 
-        cells [8]:
-            string = "1837" 
-        cells [9]:
-            string = "2570" 
-rows [508]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "622" 
-        cells [8]:
-            string = "1890" 
-        cells [9]:
-            string = "2560" 
-rows [509]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "628" 
-        cells [8]:
-            string = "1254" 
-        cells [9]:
-            string = "2470" 
-rows [510]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "617" 
-        cells [8]:
-            string = "1255" 
-        cells [9]:
-            string = "2480" 
-rows [511]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1072" 
-        cells [9]:
-            string = "2660" 
-rows [512]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "103" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2530" 
-rows [513]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "700" 
-        cells [9]:
-            string = "2650" 
-rows [514]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "756" 
-        cells [9]:
-            string = "2540" 
-rows [515]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "465" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "2440" 
-rows [516]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "462" 
-        cells [8]:
-            string = "976" 
-        cells [9]:
-            string = "2450" 
-rows [517]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "324" 
-        cells [8]:
-            string = "708" 
-        cells [9]:
-            string = "2440" 
-rows [518]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "387" 
-        cells [8]:
-            string = "786" 
-        cells [9]:
-            string = "2518" 
-rows [519]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "488" 
-        cells [8]:
-            string = "1468" 
-        cells [9]:
-            string = "1712" 
-rows [520]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "26" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "472" 
-        cells [8]:
-            string = "1465" 
-        cells [9]:
-            string = "1725" 
-rows [521]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "275" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2800" 
-rows [522]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "2020" 
-        cells [9]:
-            string = "2790" 
-rows [523]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "349" 
-        cells [8]:
-            string = "2030" 
-        cells [9]:
-            string = "2760" 
-rows [524]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "136" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "1940" 
-        cells [9]:
-            string = "2560" 
-rows [525]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "444" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2500" 
-rows [526]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2440" 
-rows [527]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "688" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "2300" 
-rows [528]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "122" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1570" 
-        cells [9]:
-            string = "2380" 
-rows [529]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "565" 
-        cells [8]:
-            string = "1157" 
-        cells [9]:
-            string = "2310" 
-rows [530]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2250" 
-rows [531]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "712" 
-        cells [8]:
-            string = "1024" 
-        cells [9]:
-            string = "2250" 
-rows [532]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2300" 
-rows [533]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "913" 
-        cells [9]:
-            string = "2360" 
-rows [534]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "126" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "890" 
-        cells [9]:
-            string = "2280" 
-rows [535]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "1028" 
-        cells [9]:
-            string = "2160" 
-rows [536]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2150" 
-rows [537]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "294" 
-        cells [8]:
-            string = "930" 
-        cells [9]:
-            string = "2050" 
-rows [538]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2160" 
-rows [539]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "1625" 
-rows [540]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "27" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "1520" 
-rows [541]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "2900" 
-rows [542]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "267" 
-        cells [8]:
-            string = "2230" 
-        cells [9]:
-            string = "3000" 
-rows [543]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2400" 
-rows [544]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2450" 
-rows [545]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "525" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2480" 
-rows [546]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "110" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2390" 
-rows [547]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "2400" 
-rows [548]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "2430" 
-rows [549]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "2300" 
-rows [550]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "575" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2240" 
-rows [551]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2340" 
-rows [552]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2470" 
-rows [553]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "810" 
-        cells [9]:
-            string = "2290" 
-rows [554]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "584" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2280" 
-rows [555]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "455" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2140" 
-rows [556]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "456" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2038" 
-rows [557]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "820" 
-        cells [9]:
-            string = "2130" 
-rows [558]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "366" 
-        cells [8]:
-            string = "772" 
-        cells [9]:
-            string = "2058" 
-rows [559]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "1870" 
-rows [560]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "28" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "118" 
-        cells [7]:
-            string = "472" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "1840" 
-rows [561]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "333" 
-        cells [8]:
-            string = "2305" 
-        cells [9]:
-            string = "3200" 
-rows [562]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "326" 
-        cells [8]:
-            string = "2260" 
-        cells [9]:
-            string = "3030" 
-rows [563]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "375" 
-        cells [8]:
-            string = "2188" 
-        cells [9]:
-            string = "2750" 
-rows [564]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2150" 
-        cells [9]:
-            string = "2680" 
-rows [565]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2480" 
-rows [566]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2340" 
-rows [567]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2450" 
-rows [568]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "123" 
-        cells [7]:
-            string = "615" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "2220" 
-rows [569]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "583" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2360" 
-rows [570]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "608" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2700" 
-rows [571]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "777" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2600" 
-rows [572]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1175" 
-        cells [9]:
-            string = "2820" 
-rows [573]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "105" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "891" 
-        cells [9]:
-            string = "2519" 
-rows [574]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "572" 
-        cells [8]:
-            string = "924" 
-        cells [9]:
-            string = "2660" 
-rows [575]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "438" 
-        cells [8]:
-            string = "975" 
-        cells [9]:
-            string = "2300" 
-rows [576]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "938" 
-        cells [9]:
-            string = "2300" 
-rows [577]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "333" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2130" 
-rows [578]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2150" 
-rows [579]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "1870" 
-rows [580]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "29" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "127" 
-        cells [7]:
-            string = "483" 
-        cells [8]:
-            string = "1335" 
-        cells [9]:
-            string = "1844" 
-rows [581]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "166" 
-        cells [7]:
-            string = "267" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2940" 
-rows [582]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "156" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2900" 
-rows [583]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "154" 
-        cells [7]:
-            string = "431" 
-        cells [8]:
-            string = "2040" 
-        cells [9]:
-            string = "2460" 
-rows [584]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "155" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "2010" 
-        cells [9]:
-            string = "2400" 
-rows [585]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "565" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2500" 
-rows [586]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2450" 
-rows [587]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2570" 
-rows [588]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2460" 
-rows [589]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "157" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "2200" 
-rows [590]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "186" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2280" 
-rows [591]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1048" 
-        cells [9]:
-            string = "2450" 
-rows [592]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "155" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1130" 
-        cells [9]:
-            string = "2320" 
-rows [593]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2400" 
-rows [594]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "178" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "890" 
-        cells [9]:
-            string = "2280" 
-rows [595]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "448" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2200" 
-rows [596]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "196" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2180" 
-rows [597]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "333" 
-        cells [8]:
-            string = "835" 
-        cells [9]:
-            string = "2170" 
-rows [598]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "198" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2170" 
-rows [599]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "163" 
-        cells [7]:
-            string = "488" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "1600" 
-rows [600]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "30" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "163" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1380" 
-        cells [9]:
-            string = "1620" 
-rows [601]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "312" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "2900" 
-rows [602]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "3000" 
-rows [603]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2620" 
-rows [604]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1960" 
-        cells [9]:
-            string = "2600" 
-rows [605]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2620" 
-rows [606]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "111" 
-        cells [7]:
-            string = "555" 
-        cells [8]:
-            string = "1870" 
-        cells [9]:
-            string = "2540" 
-rows [607]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "697" 
-        cells [8]:
-            string = "1610" 
-        cells [9]:
-            string = "2540" 
-rows [608]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "684" 
-        cells [8]:
-            string = "1634" 
-        cells [9]:
-            string = "2510" 
-rows [609]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "633" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2530" 
-rows [610]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1213" 
-        cells [9]:
-            string = "2460" 
-rows [611]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1203" 
-        cells [9]:
-            string = "2700" 
-rows [612]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "107" 
-        cells [7]:
-            string = "752" 
-        cells [8]:
-            string = "1125" 
-        cells [9]:
-            string = "2620" 
-rows [613]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "108" 
-        cells [7]:
-            string = "507" 
-        cells [8]:
-            string = "755" 
-        cells [9]:
-            string = "2420" 
-rows [614]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "116" 
-        cells [7]:
-            string = "538" 
-        cells [8]:
-            string = "816" 
-        cells [9]:
-            string = "2450" 
-rows [615]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "114" 
-        cells [7]:
-            string = "456" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2300" 
-rows [616]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "120" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2160" 
-rows [617]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "123" 
-        cells [7]:
-            string = "344" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2150" 
-rows [618]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2250" 
-rows [619]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "112" 
-        cells [7]:
-            string = "539" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "1800" 
-rows [620]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "31" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "549" 
-        cells [8]:
-            string = "1353" 
-        cells [9]:
-            string = "1728" 
-rows [621]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "292" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3150" 
-rows [622]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "266" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "3100" 
-rows [623]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "372" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2640" 
-rows [624]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "2130" 
-        cells [9]:
-            string = "2610" 
-rows [625]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "574" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2260" 
-rows [626]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "563" 
-        cells [8]:
-            string = "1960" 
-        cells [9]:
-            string = "2450" 
-rows [627]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "1738" 
-        cells [9]:
-            string = "2400" 
-rows [628]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "663" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2400" 
-rows [629]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "137" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "2180" 
-rows [630]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "625" 
-        cells [8]:
-            string = "1312" 
-        cells [9]:
-            string = "2250" 
-rows [631]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "735" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "2100" 
-rows [632]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "117" 
-        cells [7]:
-            string = "713" 
-        cells [8]:
-            string = "1180" 
-        cells [9]:
-            string = "2200" 
-rows [633]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "625" 
-        cells [8]:
-            string = "875" 
-        cells [9]:
-            string = "2180" 
-rows [634]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "115" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2250" 
-rows [635]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2000" 
-rows [636]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2100" 
-rows [637]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2200" 
-rows [638]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "918" 
-        cells [9]:
-            string = "2100" 
-rows [639]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "554" 
-        cells [8]:
-            string = "1480" 
-        cells [9]:
-            string = "1800" 
-rows [640]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "32" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "128" 
-        cells [7]:
-            string = "484" 
-        cells [8]:
-            string = "1505" 
-        cells [9]:
-            string = "1890" 
-rows [641]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "286" 
-        cells [8]:
-            string = "2415" 
-        cells [9]:
-            string = "2860" 
-rows [642]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2415" 
-        cells [9]:
-            string = "2860" 
-rows [643]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "140" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2500" 
-rows [644]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "407" 
-        cells [8]:
-            string = "2095" 
-        cells [9]:
-            string = "2620" 
-rows [645]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "125" 
-        cells [7]:
-            string = "525" 
-        cells [8]:
-            string = "1988" 
-        cells [9]:
-            string = "2610" 
-rows [646]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "144" 
-        cells [7]:
-            string = "553" 
-        cells [8]:
-            string = "1935" 
-        cells [9]:
-            string = "2530" 
-rows [647]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1773" 
-        cells [9]:
-            string = "2490" 
-rows [648]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "133" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2560" 
-rows [649]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "672" 
-        cells [8]:
-            string = "1272" 
-        cells [9]:
-            string = "2640" 
-rows [650]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "146" 
-        cells [7]:
-            string = "658" 
-        cells [8]:
-            string = "1241" 
-        cells [9]:
-            string = "2560" 
-rows [651]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "130" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2640" 
-rows [652]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "131" 
-        cells [7]:
-            string = "788" 
-        cells [8]:
-            string = "1115" 
-        cells [9]:
-            string = "2645" 
-rows [653]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "138" 
-        cells [7]:
-            string = "633" 
-        cells [8]:
-            string = "891" 
-        cells [9]:
-            string = "2500" 
-rows [654]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "935" 
-        cells [9]:
-            string = "2550" 
-rows [655]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1102" 
-        cells [9]:
-            string = "2420" 
-rows [656]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "154" 
-        cells [7]:
-            string = "492" 
-        cells [8]:
-            string = "1077" 
-        cells [9]:
-            string = "2306" 
-rows [657]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2240" 
-rows [658]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2290" 
-rows [659]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "143" 
-        cells [7]:
-            string = "543" 
-        cells [8]:
-            string = "1310" 
-        cells [9]:
-            string = "1643" 
-rows [660]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "m" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "33" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "145" 
-        cells [7]:
-            string = "508" 
-        cells [8]:
-            string = "1309" 
-        cells [9]:
-            string = "1600" 
-rows [661]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "2670" 
-        cells [9]:
-            string = "3100" 
-rows [662]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3060" 
-rows [663]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "468" 
-        cells [8]:
-            string = "2330" 
-        cells [9]:
-            string = "2930" 
-rows [664]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "2950" 
-rows [665]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2880" 
-rows [666]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "191" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "3040" 
-rows [667]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2810" 
-rows [668]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1920" 
-        cells [9]:
-            string = "2850" 
-rows [669]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "227" 
-        cells [7]:
-            string = "635" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "3250" 
-rows [670]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "3100" 
-rows [671]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "880" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2870" 
-rows [672]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2880" 
-rows [673]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "207" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "830" 
-        cells [9]:
-            string = "3300" 
-rows [674]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "3130" 
-rows [675]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "3040" 
-rows [676]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "3190" 
-rows [677]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "955" 
-        cells [9]:
-            string = "2960" 
-rows [678]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "395" 
-        cells [8]:
-            string = "810" 
-        cells [9]:
-            string = "2900" 
-rows [679]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2100" 
-rows [680]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "34" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2100" 
-rows [681]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3550" 
-rows [682]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3350" 
-rows [683]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3220" 
-rows [684]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "3240" 
-rows [685]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3200" 
-rows [686]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3170" 
-rows [687]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "2180" 
-        cells [9]:
-            string = "2850" 
-rows [688]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "195" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "2120" 
-        cells [9]:
-            string = "3070" 
-rows [689]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2900" 
-rows [690]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2830" 
-rows [691]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2620" 
-rows [692]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "880" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2850" 
-rows [693]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "228" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2830" 
-rows [694]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "880" 
-        cells [9]:
-            string = "2850" 
-rows [695]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2750" 
-rows [696]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2720" 
-rows [697]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "2720" 
-rows [698]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2700" 
-rows [699]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1560" 
-        cells [9]:
-            string = "1750" 
-rows [700]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "35" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "1750" 
-rows [701]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3020" 
-rows [702]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "215" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2630" 
-        cells [9]:
-            string = "3240" 
-rows [703]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2950" 
-rows [704]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2980" 
-rows [705]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "207" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "2120" 
-        cells [9]:
-            string = "2900" 
-rows [706]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "221" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2900" 
-rows [707]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "1830" 
-        cells [9]:
-            string = "2820" 
-rows [708]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "204" 
-        cells [7]:
-            string = "980" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2820" 
-rows [709]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "2720" 
-rows [710]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "2750" 
-rows [711]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2600" 
-rows [712]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "870" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2740" 
-rows [713]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2710" 
-rows [714]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2700" 
-rows [715]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2780" 
-rows [716]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2740" 
-rows [717]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2500" 
-rows [718]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2740" 
-rows [719]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "1720" 
-rows [720]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "36" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1560" 
-        cells [9]:
-            string = "1900" 
-rows [721]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "294" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3100" 
-rows [722]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "2880" 
-        cells [9]:
-            string = "3160" 
-rows [723]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "202" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2430" 
-        cells [9]:
-            string = "3030" 
-rows [724]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "2930" 
-rows [725]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2180" 
-        cells [9]:
-            string = "2770" 
-rows [726]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "2770" 
-rows [727]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1970" 
-        cells [9]:
-            string = "2620" 
-rows [728]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2700" 
-rows [729]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2900" 
-rows [730]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "201" 
-        cells [7]:
-            string = "666" 
-        cells [8]:
-            string = "1206" 
-        cells [9]:
-            string = "2900" 
-rows [731]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2920" 
-rows [732]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "2850" 
-rows [733]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "760" 
-        cells [9]:
-            string = "2800" 
-rows [734]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "207" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "770" 
-        cells [9]:
-            string = "3000" 
-rows [735]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "215" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1075" 
-        cells [9]:
-            string = "2580" 
-rows [736]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "213" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2700" 
-rows [737]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2550" 
-rows [738]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "213" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2500" 
-rows [739]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "1930" 
-rows [740]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "37" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1740" 
-        cells [9]:
-            string = "1960" 
-rows [741]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3160" 
-rows [742]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "338" 
-        cells [8]:
-            string = "2870" 
-        cells [9]:
-            string = "3300" 
-rows [743]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2540" 
-        cells [9]:
-            string = "3200" 
-rows [744]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2680" 
-        cells [9]:
-            string = "3000" 
-rows [745]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "518" 
-        cells [8]:
-            string = "2470" 
-        cells [9]:
-            string = "3200" 
-rows [746]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "3150" 
-rows [747]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "171" 
-        cells [7]:
-            string = "773" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2870" 
-rows [748]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "875" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2970" 
-rows [749]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "183" 
-        cells [7]:
-            string = "733" 
-        cells [8]:
-            string = "1468" 
-        cells [9]:
-            string = "2700" 
-rows [750]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2900" 
-rows [751]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "178" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2740" 
-rows [752]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "735" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2850" 
-rows [753]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "160" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2850" 
-rows [754]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "536" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2850" 
-rows [755]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "424" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2780" 
-rows [756]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2670" 
-rows [757]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "770" 
-        cells [9]:
-            string = "2900" 
-rows [758]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2780" 
-rows [759]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "177" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "2120" 
-        cells [9]:
-            string = "2480" 
-rows [760]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "38" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "197" 
-        cells [7]:
-            string = "493" 
-        cells [8]:
-            string = "1930" 
-        cells [9]:
-            string = "2300" 
-rows [761]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "325" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3100" 
-rows [762]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3225" 
-rows [763]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "2580" 
-        cells [9]:
-            string = "3000" 
-rows [764]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3200" 
-rows [765]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "2330" 
-        cells [9]:
-            string = "2800" 
-rows [766]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3000" 
-rows [767]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "171" 
-        cells [7]:
-            string = "806" 
-        cells [8]:
-            string = "1970" 
-        cells [9]:
-            string = "2600" 
-rows [768]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "825" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2550" 
-rows [769]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "186" 
-        cells [7]:
-            string = "708" 
-        cells [8]:
-            string = "1485" 
-        cells [9]:
-            string = "2760" 
-rows [770]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "676" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2590" 
-rows [771]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2800" 
-rows [772]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "714" 
-        cells [8]:
-            string = "1154" 
-        cells [9]:
-            string = "2850" 
-rows [773]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "800" 
-        cells [9]:
-            string = "2780" 
-rows [774]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "485" 
-        cells [8]:
-            string = "810" 
-        cells [9]:
-            string = "2750" 
-rows [775]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "2550" 
-rows [776]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "467" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2450" 
-rows [777]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2350" 
-rows [778]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2400" 
-rows [779]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "193" 
-        cells [7]:
-            string = "524" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2130" 
-rows [780]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "39" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "507" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2380" 
-rows [781]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "3100" 
-        cells [9]:
-            string = "3400" 
-rows [782]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "3100" 
-        cells [9]:
-            string = "3500" 
-rows [783]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "428" 
-        cells [8]:
-            string = "2570" 
-        cells [9]:
-            string = "3000" 
-rows [784]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2640" 
-        cells [9]:
-            string = "3080" 
-rows [785]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "528" 
-        cells [8]:
-            string = "2540" 
-        cells [9]:
-            string = "3170" 
-rows [786]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "2520" 
-        cells [9]:
-            string = "3200" 
-rows [787]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "940" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "2760" 
-rows [788]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2920" 
-rows [789]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "204" 
-        cells [7]:
-            string = "816" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "2700" 
-rows [790]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "858" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2700" 
-rows [791]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "960" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "3000" 
-rows [792]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "1040" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "3000" 
-rows [793]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "880" 
-        cells [9]:
-            string = "2500" 
-rows [794]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "574" 
-        cells [8]:
-            string = "890" 
-        cells [9]:
-            string = "2510" 
-rows [795]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "466" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "2750" 
-rows [796]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "466" 
-        cells [8]:
-            string = "1165" 
-        cells [9]:
-            string = "2800" 
-rows [797]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2800" 
-rows [798]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "840" 
-        cells [9]:
-            string = "2750" 
-rows [799]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "432" 
-        cells [8]:
-            string = "1790" 
-        cells [9]:
-            string = "2060" 
-rows [800]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "40" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2320" 
-rows [801]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "337" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3300" 
-rows [802]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2720" 
-        cells [9]:
-            string = "3200" 
-rows [803]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "474" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "3095" 
-rows [804]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "475" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "3090" 
-rows [805]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "229" 
-        cells [7]:
-            string = "526" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "3090" 
-rows [806]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "3150" 
-rows [807]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "2185" 
-        cells [9]:
-            string = "2990" 
-rows [808]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "3020" 
-rows [809]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "675" 
-        cells [8]:
-            string = "1551" 
-        cells [9]:
-            string = "2923" 
-rows [810]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2900" 
-rows [811]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "845" 
-        cells [8]:
-            string = "1334" 
-        cells [9]:
-            string = "2890" 
-rows [812]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "888" 
-        cells [8]:
-            string = "1290" 
-        cells [9]:
-            string = "2800" 
-rows [813]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "631" 
-        cells [8]:
-            string = "923" 
-        cells [9]:
-            string = "2250" 
-rows [814]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "543" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2300" 
-rows [815]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "537" 
-        cells [8]:
-            string = "1360" 
-        cells [9]:
-            string = "2920" 
-rows [816]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1345" 
-        cells [9]:
-            string = "2680" 
-rows [817]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1180" 
-        cells [9]:
-            string = "2760" 
-rows [818]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "396" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2560" 
-rows [819]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1640" 
-        cells [9]:
-            string = "2250" 
-rows [820]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "41" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "489" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2090" 
-rows [821]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "225" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3900" 
-rows [822]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "230" 
-        cells [8]:
-            string = "2850" 
-        cells [9]:
-            string = "3800" 
-rows [823]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "429" 
-        cells [8]:
-            string = "2560" 
-        cells [9]:
-            string = "3200" 
-rows [824]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "2575" 
-        cells [9]:
-            string = "3100" 
-rows [825]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "579" 
-        cells [8]:
-            string = "2570" 
-        cells [9]:
-            string = "3300" 
-rows [826]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "536" 
-        cells [8]:
-            string = "2570" 
-        cells [9]:
-            string = "3100" 
-rows [827]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "823" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2870" 
-rows [828]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2900" 
-rows [829]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2750" 
-rows [830]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "738" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2820" 
-rows [831]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "3100" 
-rows [832]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "990" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "3100" 
-rows [833]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "579" 
-        cells [8]:
-            string = "856" 
-        cells [9]:
-            string = "2790" 
-rows [834]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "545" 
-        cells [8]:
-            string = "905" 
-        cells [9]:
-            string = "2750" 
-rows [835]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "2610" 
-rows [836]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "513" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2650" 
-rows [837]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "2500" 
-rows [838]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "405" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2500" 
-rows [839]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "466" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2260" 
-rows [840]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "42" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2220" 
-rows [841]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "3000" 
-        cells [9]:
-            string = "3840" 
-rows [842]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "325" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3500" 
-rows [843]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "3120" 
-rows [844]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "476" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3090" 
-rows [845]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3205" 
-rows [846]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "746" 
-        cells [8]:
-            string = "2290" 
-        cells [9]:
-            string = "3030" 
-rows [847]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "1008" 
-        cells [8]:
-            string = "1990" 
-        cells [9]:
-            string = "2870" 
-rows [848]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "1040" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2800" 
-rows [849]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "2860" 
-rows [850]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "1510" 
-        cells [9]:
-            string = "2840" 
-rows [851]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "1343" 
-        cells [9]:
-            string = "3018" 
-rows [852]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "592" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2600" 
-rows [853]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2920" 
-rows [854]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "229" 
-        cells [7]:
-            string = "687" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2780" 
-rows [855]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "512" 
-        cells [8]:
-            string = "1211" 
-        cells [9]:
-            string = "2630" 
-rows [856]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "467" 
-        cells [8]:
-            string = "1167" 
-        cells [9]:
-            string = "2595" 
-rows [857]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "875" 
-        cells [9]:
-            string = "2750" 
-rows [858]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "935" 
-        cells [9]:
-            string = "2710" 
-rows [859]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "622" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2070" 
-rows [860]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "43" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "652" 
-        cells [8]:
-            string = "1710" 
-        cells [9]:
-            string = "2043" 
-rows [861]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "255" 
-        cells [7]:
-            string = "275" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3310" 
-rows [862]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "245" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3300" 
-rows [863]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "534" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3250" 
-rows [864]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "264" 
-        cells [7]:
-            string = "528" 
-        cells [8]:
-            string = "2640" 
-        cells [9]:
-            string = "3370" 
-rows [865]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3250" 
-rows [866]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3000" 
-rows [867]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "1020" 
-        cells [8]:
-            string = "1900" 
-        cells [9]:
-            string = "2960" 
-rows [868]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "1005" 
-        cells [8]:
-            string = "2050" 
-        cells [9]:
-            string = "2870" 
-rows [869]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2850" 
-rows [870]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2750" 
-rows [871]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "978" 
-        cells [8]:
-            string = "1290" 
-        cells [9]:
-            string = "2840" 
-rows [872]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "246" 
-        cells [7]:
-            string = "935" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2730" 
-rows [873]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2750" 
-rows [874]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "632" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2850" 
-rows [875]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1170" 
-        cells [9]:
-            string = "2750" 
-rows [876]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "266" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2800" 
-rows [877]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "358" 
-        cells [8]:
-            string = "640" 
-        cells [9]:
-            string = "2560" 
-rows [878]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2500" 
-rows [879]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1560" 
-        cells [9]:
-            string = "1820" 
-rows [880]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "44" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "1750" 
-rows [881]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "236" 
-        cells [8]:
-            string = "2790" 
-        cells [9]:
-            string = "3760" 
-rows [882]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "242" 
-        cells [8]:
-            string = "2770" 
-        cells [9]:
-            string = "3800" 
-rows [883]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "444" 
-        cells [8]:
-            string = "2555" 
-        cells [9]:
-            string = "3110" 
-rows [884]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3120" 
-rows [885]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "226" 
-        cells [7]:
-            string = "634" 
-        cells [8]:
-            string = "2325" 
-        cells [9]:
-            string = "2940" 
-rows [886]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "608" 
-        cells [8]:
-            string = "2475" 
-        cells [9]:
-            string = "3100" 
-rows [887]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "1010" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2900" 
-rows [888]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "980" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "2920" 
-rows [889]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "818" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "2500" 
-rows [890]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2650" 
-rows [891]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2640" 
-rows [892]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2900" 
-rows [893]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "749" 
-        cells [9]:
-            string = "2640" 
-rows [894]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "567" 
-        cells [8]:
-            string = "752" 
-        cells [9]:
-            string = "2600" 
-rows [895]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "204" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1045" 
-        cells [9]:
-            string = "2504" 
-rows [896]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1105" 
-        cells [9]:
-            string = "2400" 
-rows [897]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2500" 
-rows [898]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2400" 
-rows [899]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "487" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "1780" 
-rows [900]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "45" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "467" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "1640" 
-rows [901]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "2920" 
-        cells [9]:
-            string = "3400" 
-rows [902]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2840" 
-        cells [9]:
-            string = "3300" 
-rows [903]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "257" 
-        cells [7]:
-            string = "514" 
-        cells [8]:
-            string = "2570" 
-        cells [9]:
-            string = "3070" 
-rows [904]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2680" 
-        cells [9]:
-            string = "3260" 
-rows [905]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "2495" 
-        cells [9]:
-            string = "3090" 
-rows [906]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3030" 
-rows [907]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "1020" 
-        cells [8]:
-            string = "2030" 
-        cells [9]:
-            string = "2700" 
-rows [908]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2770" 
-rows [909]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "788" 
-        cells [8]:
-            string = "1462" 
-        cells [9]:
-            string = "2920" 
-rows [910]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "736" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2900" 
-rows [911]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "987" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "2830" 
-rows [912]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "1009" 
-        cells [8]:
-            string = "1415" 
-        cells [9]:
-            string = "3080" 
-rows [913]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "226" 
-        cells [7]:
-            string = "672" 
-        cells [8]:
-            string = "1084" 
-        cells [9]:
-            string = "2495" 
-rows [914]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "209" 
-        cells [7]:
-            string = "627" 
-        cells [8]:
-            string = "1045" 
-        cells [9]:
-            string = "2504" 
-rows [915]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2450" 
-rows [916]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2880" 
-rows [917]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "2860" 
-rows [918]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "893" 
-        cells [9]:
-            string = "2920" 
-rows [919]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "246" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2020" 
-rows [920]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "46" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "585" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "1850" 
-rows [921]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "285" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3500" 
-rows [922]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3400" 
-rows [923]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "297" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "2670" 
-        cells [9]:
-            string = "3260" 
-rows [924]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2620" 
-        cells [9]:
-            string = "3380" 
-rows [925]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "173" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "3140" 
-rows [926]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "2340" 
-        cells [9]:
-            string = "3040" 
-rows [927]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "790" 
-        cells [8]:
-            string = "2180" 
-        cells [9]:
-            string = "3020" 
-rows [928]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "3020" 
-rows [929]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2750" 
-rows [930]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "2950" 
-rows [931]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "252" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "1290" 
-        cells [9]:
-            string = "2750" 
-rows [932]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "3110" 
-rows [933]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "175" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2750" 
-rows [934]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "3030" 
-rows [935]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2860" 
-rows [936]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2970" 
-rows [937]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "328" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "2630" 
-rows [938]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "2900" 
-rows [939]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "2480" 
-rows [940]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "47" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2350" 
-rows [941]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3120" 
-rows [942]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "238" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3120" 
-rows [943]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "2390" 
-        cells [9]:
-            string = "2950" 
-rows [944]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "3000" 
-rows [945]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "2520" 
-        cells [9]:
-            string = "2920" 
-rows [946]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "2440" 
-        cells [9]:
-            string = "2880" 
-rows [947]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "1110" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "2700" 
-rows [948]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "1070" 
-        cells [8]:
-            string = "1960" 
-        cells [9]:
-            string = "2750" 
-rows [949]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2600" 
-rows [950]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2670" 
-rows [951]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "150" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2930" 
-rows [952]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "2850" 
-rows [953]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "700" 
-        cells [9]:
-            string = "2930" 
-rows [954]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "720" 
-        cells [9]:
-            string = "2700" 
-rows [955]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "2820" 
-rows [956]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2680" 
-rows [957]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "196" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "760" 
-        cells [9]:
-            string = "2870" 
-rows [958]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "710" 
-        cells [9]:
-            string = "2760" 
-rows [959]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "182" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1780" 
-        cells [9]:
-            string = "2080" 
-rows [960]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "48" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "201" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2000" 
-rows [961]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "2980" 
-rows [962]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "304" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3050" 
-rows [963]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "444" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2740" 
-rows [964]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2090" 
-        cells [9]:
-            string = "2780" 
-rows [965]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "2830" 
-rows [966]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2700" 
-rows [967]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "845" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2300" 
-rows [968]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1724" 
-        cells [9]:
-            string = "2530" 
-rows [969]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1440" 
-        cells [9]:
-            string = "2380" 
-rows [970]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "191" 
-        cells [7]:
-            string = "707" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "2440" 
-rows [971]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2420" 
-rows [972]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "767" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2590" 
-rows [973]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2410" 
-rows [974]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2400" 
-rows [975]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "546" 
-        cells [8]:
-            string = "1090" 
-        cells [9]:
-            string = "2400" 
-rows [976]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "462" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2310" 
-rows [977]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "257" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "930" 
-        cells [9]:
-            string = "2260" 
-rows [978]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2300" 
-rows [979]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "1800" 
-rows [980]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "49" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "204" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "1560" 
-rows [981]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "406" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "2945" 
-rows [982]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "3100" 
-rows [983]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2800" 
-rows [984]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2305" 
-        cells [9]:
-            string = "2835" 
-rows [985]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "190" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2720" 
-rows [986]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "207" 
-        cells [7]:
-            string = "538" 
-        cells [8]:
-            string = "2175" 
-        cells [9]:
-            string = "2880" 
-rows [987]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "189" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1853" 
-        cells [9]:
-            string = "2685" 
-rows [988]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "193" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2620" 
-rows [989]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2560" 
-rows [990]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2420" 
-rows [991]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "915" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2530" 
-rows [992]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "723" 
-        cells [8]:
-            string = "1196" 
-        cells [9]:
-            string = "2600" 
-rows [993]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "192" 
-        cells [7]:
-            string = "575" 
-        cells [8]:
-            string = "1073" 
-        cells [9]:
-            string = "2490" 
-rows [994]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2600" 
-rows [995]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "202" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2420" 
-rows [996]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "468" 
-        cells [8]:
-            string = "1275" 
-        cells [9]:
-            string = "2550" 
-rows [997]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "207" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2470" 
-rows [998]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2460" 
-rows [999]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "1900" 
-rows [1000]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "50" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "514" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "1955" 
-rows [1001]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "2880" 
-        cells [9]:
-            string = "3360" 
-rows [1002]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "2820" 
-        cells [9]:
-            string = "3300" 
-rows [1003]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "514" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "2930" 
-rows [1004]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "473" 
-        cells [8]:
-            string = "2660" 
-        cells [9]:
-            string = "2970" 
-rows [1005]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "223" 
-        cells [7]:
-            string = "567" 
-        cells [8]:
-            string = "2460" 
-        cells [9]:
-            string = "3122" 
-rows [1006]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "224" 
-        cells [7]:
-            string = "521" 
-        cells [8]:
-            string = "2460" 
-        cells [9]:
-            string = "2920" 
-rows [1007]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "218" 
-        cells [7]:
-            string = "808" 
-        cells [8]:
-            string = "2070" 
-        cells [9]:
-            string = "2880" 
-rows [1008]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "678" 
-        cells [8]:
-            string = "2420" 
-        cells [9]:
-            string = "3080" 
-rows [1009]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "2700" 
-rows [1010]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "772" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2660" 
-rows [1011]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "183" 
-        cells [7]:
-            string = "843" 
-        cells [8]:
-            string = "1190" 
-        cells [9]:
-            string = "2860" 
-rows [1012]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2780" 
-rows [1013]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "623" 
-        cells [8]:
-            string = "1022" 
-        cells [9]:
-            string = "2700" 
-rows [1014]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "594" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "2640" 
-rows [1015]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2820" 
-rows [1016]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "484" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2640" 
-rows [1017]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "933" 
-        cells [9]:
-            string = "2520" 
-rows [1018]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "325" 
-        cells [8]:
-            string = "750" 
-        cells [9]:
-            string = "2500" 
-rows [1019]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "2050" 
-rows [1020]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "51" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "466" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "1865" 
-rows [1021]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3100" 
-rows [1022]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "178" 
-        cells [7]:
-            string = "356" 
-        cells [8]:
-            string = "2755" 
-        cells [9]:
-            string = "3200" 
-rows [1023]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "388" 
-        cells [8]:
-            string = "2622" 
-        cells [9]:
-            string = "3050" 
-rows [1024]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "426" 
-        cells [8]:
-            string = "2460" 
-        cells [9]:
-            string = "3040" 
-rows [1025]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "592" 
-        cells [8]:
-            string = "2242" 
-        cells [9]:
-            string = "2765" 
-rows [1026]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "191" 
-        cells [7]:
-            string = "535" 
-        cells [8]:
-            string = "2290" 
-        cells [9]:
-            string = "2870" 
-rows [1027]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "2060" 
-        cells [9]:
-            string = "2770" 
-rows [1028]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "162" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "2110" 
-        cells [9]:
-            string = "2618" 
-rows [1029]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "618" 
-        cells [8]:
-            string = "1518" 
-        cells [9]:
-            string = "2700" 
-rows [1030]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "183" 
-        cells [7]:
-            string = "624" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "2660" 
-rows [1031]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "163" 
-        cells [7]:
-            string = "766" 
-        cells [8]:
-            string = "1180" 
-        cells [9]:
-            string = "2340" 
-rows [1032]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "167" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1065" 
-        cells [9]:
-            string = "2640" 
-rows [1033]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "170" 
-        cells [7]:
-            string = "595" 
-        cells [8]:
-            string = "918" 
-        cells [9]:
-            string = "2600" 
-rows [1034]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "176" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "985" 
-        cells [9]:
-            string = "2630" 
-rows [1035]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2600" 
-rows [1036]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "2640" 
-rows [1037]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "375" 
-        cells [8]:
-            string = "1124" 
-        cells [9]:
-            string = "2685" 
-rows [1038]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "375" 
-        cells [8]:
-            string = "1143" 
-        cells [9]:
-            string = "2700" 
-rows [1039]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "180" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "1565" 
-        cells [9]:
-            string = "1835" 
-rows [1040]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "52" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "183" 
-        cells [7]:
-            string = "513" 
-        cells [8]:
-            string = "1578" 
-        cells [9]:
-            string = "1830" 
-rows [1041]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "357" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3360" 
-rows [1042]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2860" 
-        cells [9]:
-            string = "3350" 
-rows [1043]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "3060" 
-rows [1044]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "292" 
-        cells [7]:
-            string = "465" 
-        cells [8]:
-            string = "2598" 
-        cells [9]:
-            string = "3060" 
-rows [1045]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "2980" 
-rows [1046]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "737" 
-        cells [8]:
-            string = "2325" 
-        cells [9]:
-            string = "3100" 
-rows [1047]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "960" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "3000" 
-rows [1048]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "1030" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "3260" 
-rows [1049]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "920" 
-        cells [8]:
-            string = "1512" 
-        cells [9]:
-            string = "2950" 
-rows [1050]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "910" 
-        cells [8]:
-            string = "1688" 
-        cells [9]:
-            string = "3050" 
-rows [1051]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "990" 
-        cells [8]:
-            string = "1237" 
-        cells [9]:
-            string = "2360" 
-rows [1052]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "987" 
-        cells [8]:
-            string = "1172" 
-        cells [9]:
-            string = "3180" 
-rows [1053]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "587" 
-        cells [8]:
-            string = "1068" 
-        cells [9]:
-            string = "3270" 
-rows [1054]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "293" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "990" 
-        cells [9]:
-            string = "3150" 
-rows [1055]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "3190" 
-rows [1056]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1415" 
-        cells [9]:
-            string = "3130" 
-rows [1057]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1045" 
-        cells [9]:
-            string = "3060" 
-rows [1058]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "3030" 
-rows [1059]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2250" 
-rows [1060]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "53" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "504" 
-        cells [8]:
-            string = "1820" 
-        cells [9]:
-            string = "2290" 
-rows [1061]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "240" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3700" 
-rows [1062]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "220" 
-        cells [8]:
-            string = "2850" 
-        cells [9]:
-            string = "3800" 
-rows [1063]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "228" 
-        cells [7]:
-            string = "319" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3020" 
-rows [1064]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "324" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3010" 
-rows [1065]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "616" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "2900" 
-rows [1066]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "615" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2800" 
-rows [1067]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "2120" 
-        cells [9]:
-            string = "2600" 
-rows [1068]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "2680" 
-rows [1069]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "221" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1520" 
-        cells [9]:
-            string = "2380" 
-rows [1070]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "2400" 
-rows [1071]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "199" 
-        cells [7]:
-            string = "995" 
-        cells [8]:
-            string = "1392" 
-        cells [9]:
-            string = "2290" 
-rows [1072]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2440" 
-rows [1073]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "656" 
-        cells [8]:
-            string = "944" 
-        cells [9]:
-            string = "2250" 
-rows [1074]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "960" 
-        cells [9]:
-            string = "2380" 
-rows [1075]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "223" 
-        cells [7]:
-            string = "335" 
-        cells [8]:
-            string = "1049" 
-        cells [9]:
-            string = "2470" 
-rows [1076]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1009" 
-        cells [9]:
-            string = "2300" 
-rows [1077]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "329" 
-        cells [8]:
-            string = "877" 
-        cells [9]:
-            string = "2550" 
-rows [1078]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2530" 
-rows [1079]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1380" 
-        cells [9]:
-            string = "1560" 
-rows [1080]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "54" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "201" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "1480" 
-rows [1081]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "286" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3550" 
-rows [1082]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "241" 
-        cells [7]:
-            string = "289" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3400" 
-rows [1083]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "383" 
-        cells [8]:
-            string = "2420" 
-        cells [9]:
-            string = "3080" 
-rows [1084]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "384" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "3050" 
-rows [1085]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "209" 
-        cells [7]:
-            string = "418" 
-        cells [8]:
-            string = "2430" 
-        cells [9]:
-            string = "3110" 
-rows [1086]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3050" 
-rows [1087]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "187" 
-        cells [7]:
-            string = "861" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2800" 
-rows [1088]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "224" 
-        cells [7]:
-            string = "896" 
-        cells [8]:
-            string = "2040" 
-        cells [9]:
-            string = "3000" 
-rows [1089]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "218" 
-        cells [7]:
-            string = "654" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2800" 
-rows [1090]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1195" 
-        cells [9]:
-            string = "2770" 
-rows [1091]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1103" 
-        cells [9]:
-            string = "2700" 
-rows [1092]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "806" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2850" 
-rows [1093]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "202" 
-        cells [7]:
-            string = "606" 
-        cells [8]:
-            string = "910" 
-        cells [9]:
-            string = "2900" 
-rows [1094]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "201" 
-        cells [7]:
-            string = "583" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "2840" 
-rows [1095]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2650" 
-rows [1096]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2560" 
-rows [1097]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "308" 
-        cells [8]:
-            string = "1025" 
-        cells [9]:
-            string = "2650" 
-rows [1098]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "329" 
-        cells [8]:
-            string = "1151" 
-        cells [9]:
-            string = "2560" 
-rows [1099]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "213" 
-        cells [7]:
-            string = "533" 
-        cells [8]:
-            string = "1425" 
-        cells [9]:
-            string = "1830" 
-rows [1100]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "55" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "535" 
-        cells [8]:
-            string = "1412" 
-        cells [9]:
-            string = "1800" 
-rows [1101]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "307" 
-        cells [8]:
-            string = "2670" 
-        cells [9]:
-            string = "3150" 
-rows [1102]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3250" 
-rows [1103]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "231" 
-        cells [7]:
-            string = "417" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3000" 
-rows [1104]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "239" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "2200" 
-        cells [9]:
-            string = "2910" 
-rows [1105]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "644" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "3000" 
-rows [1106]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "224" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2880" 
-rows [1107]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "224" 
-        cells [7]:
-            string = "784" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2750" 
-rows [1108]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "2890" 
-rows [1109]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "765" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "2700" 
-rows [1110]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "221" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1390" 
-        cells [9]:
-            string = "2790" 
-rows [1111]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "834" 
-        cells [8]:
-            string = "1282" 
-        cells [9]:
-            string = "2800" 
-rows [1112]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1270" 
-        cells [9]:
-            string = "2760" 
-rows [1113]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "229" 
-        cells [7]:
-            string = "688" 
-        cells [8]:
-            string = "1029" 
-        cells [9]:
-            string = "2750" 
-rows [1114]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1040" 
-        cells [9]:
-            string = "2640" 
-rows [1115]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "251" 
-        cells [7]:
-            string = "427" 
-        cells [8]:
-            string = "1506" 
-        cells [9]:
-            string = "2640" 
-rows [1116]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "2610" 
-rows [1117]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "378" 
-        cells [8]:
-            string = "1416" 
-        cells [9]:
-            string = "2580" 
-rows [1118]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "239" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "2610" 
-rows [1119]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "1909" 
-rows [1120]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "56" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "1800" 
-rows [1121]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "384" 
-        cells [8]:
-            string = "2860" 
-        cells [9]:
-            string = "3210" 
-rows [1122]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "375" 
-        cells [8]:
-            string = "3000" 
-        cells [9]:
-            string = "3400" 
-rows [1123]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2665" 
-        cells [9]:
-            string = "3140" 
-rows [1124]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "467" 
-        cells [8]:
-            string = "2680" 
-        cells [9]:
-            string = "3150" 
-rows [1125]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "229" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "2860" 
-rows [1126]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "2530" 
-        cells [9]:
-            string = "3030" 
-rows [1127]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2560" 
-        cells [9]:
-            string = "3150" 
-rows [1128]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "675" 
-        cells [8]:
-            string = "2510" 
-        cells [9]:
-            string = "3145" 
-rows [1129]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "768" 
-        cells [8]:
-            string = "1440" 
-        cells [9]:
-            string = "2855" 
-rows [1130]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "794" 
-        cells [8]:
-            string = "1447" 
-        cells [9]:
-            string = "2920" 
-rows [1131]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "227" 
-        cells [7]:
-            string = "978" 
-        cells [8]:
-            string = "1362" 
-        cells [9]:
-            string = "2724" 
-rows [1132]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "933" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "2610" 
-rows [1133]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2810" 
-rows [1134]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1090" 
-        cells [9]:
-            string = "2840" 
-rows [1135]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1215" 
-        cells [9]:
-            string = "2870" 
-rows [1136]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "239" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1240" 
-        cells [9]:
-            string = "2860" 
-rows [1137]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2820" 
-rows [1138]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "272" 
-        cells [7]:
-            string = "378" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "2990" 
-rows [1139]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "1700" 
-rows [1140]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "57" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "493" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "1775" 
-rows [1141]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "268" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3200" 
-rows [1142]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3050" 
-rows [1143]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "2940" 
-rows [1144]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "251" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "2260" 
-        cells [9]:
-            string = "2980" 
-rows [1145]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "246" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "2220" 
-        cells [9]:
-            string = "2900" 
-rows [1146]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "2250" 
-        cells [9]:
-            string = "2960" 
-rows [1147]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1970" 
-        cells [9]:
-            string = "2890" 
-rows [1148]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "244" 
-        cells [7]:
-            string = "980" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "2920" 
-rows [1149]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "251" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "2760" 
-rows [1150]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "2800" 
-rows [1151]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1130" 
-        cells [9]:
-            string = "3160" 
-rows [1152]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "2940" 
-rows [1153]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "870" 
-        cells [9]:
-            string = "2680" 
-rows [1154]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "2770" 
-rows [1155]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1225" 
-        cells [9]:
-            string = "2500" 
-rows [1156]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "264" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "2560" 
-rows [1157]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "1290" 
-        cells [9]:
-            string = "2530" 
-rows [1158]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "269" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2640" 
-rows [1159]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "2000" 
-rows [1160]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "58" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "254" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "1520" 
-        cells [9]:
-            string = "1950" 
-rows [1161]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2690" 
-        cells [9]:
-            string = "3040" 
-rows [1162]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "261" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2740" 
-        cells [9]:
-            string = "2980" 
-rows [1163]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3400" 
-rows [1164]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3240" 
-rows [1165]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3100" 
-rows [1166]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "2340" 
-        cells [9]:
-            string = "3120" 
-rows [1167]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "2070" 
-        cells [9]:
-            string = "2880" 
-rows [1168]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "890" 
-        cells [8]:
-            string = "1920" 
-        cells [9]:
-            string = "2710" 
-rows [1169]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "257" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "2840" 
-rows [1170]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "257" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "2860" 
-rows [1171]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "790" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3080" 
-rows [1172]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "241" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2960" 
-rows [1173]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "408" 
-        cells [8]:
-            string = "695" 
-        cells [9]:
-            string = "3040" 
-rows [1174]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "246" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "590" 
-        cells [9]:
-            string = "3100" 
-rows [1175]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "251" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2520" 
-rows [1176]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2750" 
-rows [1177]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "419" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2850" 
-rows [1178]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "2800" 
-rows [1179]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "1900" 
-rows [1180]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "59" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "255" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "1890" 
-rows [1181]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "208" 
-        cells [7]:
-            string = "270" 
-        cells [8]:
-            string = "2820" 
-        cells [9]:
-            string = "3450" 
-rows [1182]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "250" 
-        cells [8]:
-            string = "2880" 
-        cells [9]:
-            string = "3350" 
-rows [1183]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "2530" 
-        cells [9]:
-            string = "3060" 
-rows [1184]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "3120" 
-rows [1185]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "3020" 
-rows [1186]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "2430" 
-        cells [9]:
-            string = "3040" 
-rows [1187]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "2090" 
-        cells [9]:
-            string = "3000" 
-rows [1188]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "2870" 
-rows [1189]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "2800" 
-rows [1190]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1530" 
-        cells [9]:
-            string = "2780" 
-rows [1191]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "195" 
-        cells [7]:
-            string = "920" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "2550" 
-rows [1192]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "920" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "2690" 
-rows [1193]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "2420" 
-rows [1194]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2780" 
-rows [1195]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2900" 
-rows [1196]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "237" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1190" 
-        cells [9]:
-            string = "2800" 
-rows [1197]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "980" 
-        cells [9]:
-            string = "3100" 
-rows [1198]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "188" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "3050" 
-rows [1199]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1670" 
-        cells [9]:
-            string = "2050" 
-rows [1200]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "60" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1720" 
-        cells [9]:
-            string = "1900" 
-rows [1201]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "2740" 
-        cells [9]:
-            string = "3200" 
-rows [1202]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "262" 
-        cells [8]:
-            string = "2680" 
-        cells [9]:
-            string = "3170" 
-rows [1203]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "2310" 
-        cells [9]:
-            string = "3020" 
-rows [1204]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "472" 
-        cells [8]:
-            string = "2270" 
-        cells [9]:
-            string = "2950" 
-rows [1205]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1980" 
-        cells [9]:
-            string = "2920" 
-rows [1206]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2110" 
-        cells [9]:
-            string = "2940" 
-rows [1207]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "194" 
-        cells [7]:
-            string = "810" 
-        cells [8]:
-            string = "1860" 
-        cells [9]:
-            string = "2620" 
-rows [1208]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "234" 
-        cells [7]:
-            string = "890" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2700" 
-rows [1209]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "2780" 
-rows [1210]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "2940" 
-rows [1211]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1020" 
-        cells [9]:
-            string = "2650" 
-rows [1212]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1095" 
-        cells [9]:
-            string = "2610" 
-rows [1213]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2760" 
-rows [1214]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "253" 
-        cells [7]:
-            string = "455" 
-        cells [8]:
-            string = "810" 
-        cells [9]:
-            string = "2750" 
-rows [1215]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "282" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "2530" 
-rows [1216]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2450" 
-rows [1217]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "290" 
-        cells [8]:
-            string = "670" 
-        cells [9]:
-            string = "2380" 
-rows [1218]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "630" 
-        cells [9]:
-            string = "2460" 
-rows [1219]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2040" 
-rows [1220]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "w" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "61" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2190" 
-rows [1221]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "228" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "3300" 
-        cells [9]:
-            string = "3950" 
-rows [1222]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "3400" 
-        cells [9]:
-            string = "3850" 
-rows [1223]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2550" 
-        cells [9]:
-            string = "4000" 
-rows [1224]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "4100" 
-rows [1225]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3600" 
-rows [1226]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3850" 
-rows [1227]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3900" 
-rows [1228]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "4050" 
-rows [1229]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "1750" 
-        cells [9]:
-            string = "3550" 
-rows [1230]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "223" 
-        cells [7]:
-            string = "1110" 
-        cells [8]:
-            string = "1690" 
-        cells [9]:
-            string = "4040" 
-rows [1231]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "1220" 
-        cells [8]:
-            string = "1560" 
-        cells [9]:
-            string = "3650" 
-rows [1232]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "1300" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "3450" 
-rows [1233]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "3850" 
-rows [1234]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "217" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1090" 
-        cells [9]:
-            string = "3900" 
-rows [1235]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "206" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "3700" 
-rows [1236]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "3520" 
-rows [1237]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "900" 
-        cells [9]:
-            string = "3900" 
-rows [1238]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "650" 
-        cells [9]:
-            string = "3800" 
-rows [1239]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "2900" 
-rows [1240]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "62" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "200" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "2150" 
-        cells [9]:
-            string = "2550" 
-rows [1241]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "3500" 
-        cells [9]:
-            string = "4260" 
-rows [1242]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "305" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "3400" 
-        cells [9]:
-            string = "4100" 
-rows [1243]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "322" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "3200" 
-        cells [9]:
-            string = "3660" 
-rows [1244]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "325" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "3000" 
-        cells [9]:
-            string = "3800" 
-rows [1245]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3680" 
-rows [1246]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "3120" 
-        cells [9]:
-            string = "3750" 
-rows [1247]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "1130" 
-        cells [8]:
-            string = "2560" 
-        cells [9]:
-            string = "3500" 
-rows [1248]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "1140" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "3560" 
-rows [1249]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "1130" 
-        cells [8]:
-            string = "1740" 
-        cells [9]:
-            string = "3670" 
-rows [1250]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "3450" 
-rows [1251]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "265" 
-        cells [7]:
-            string = "1170" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3440" 
-rows [1252]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "283" 
-        cells [7]:
-            string = "980" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "3100" 
-rows [1253]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "265" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1060" 
-        cells [9]:
-            string = "3450" 
-rows [1254]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "272" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "3000" 
-rows [1255]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1440" 
-        cells [9]:
-            string = "3500" 
-rows [1256]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "294" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "3500" 
-rows [1257]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "333" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "3650" 
-rows [1258]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2950" 
-rows [1259]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "1740" 
-        cells [9]:
-            string = "2460" 
-rows [1260]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "63" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "302" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2200" 
-rows [1261]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "3140" 
-        cells [9]:
-            string = "3700" 
-rows [1262]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "3350" 
-        cells [9]:
-            string = "3650" 
-rows [1263]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3400" 
-rows [1264]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2660" 
-        cells [9]:
-            string = "3500" 
-rows [1265]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "3400" 
-rows [1266]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "672" 
-        cells [8]:
-            string = "2550" 
-        cells [9]:
-            string = "3400" 
-rows [1267]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3370" 
-rows [1268]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "215" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "2850" 
-        cells [9]:
-            string = "3300" 
-rows [1269]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "880" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3200" 
-rows [1270]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "243" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "3250" 
-rows [1271]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "940" 
-        cells [8]:
-            string = "1380" 
-        cells [9]:
-            string = "2400" 
-rows [1272]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "276" 
-        cells [7]:
-            string = "1200" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3160" 
-rows [1273]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3450" 
-rows [1274]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "675" 
-        cells [8]:
-            string = "950" 
-        cells [9]:
-            string = "3240" 
-rows [1275]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3300" 
-rows [1276]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "3500" 
-rows [1277]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "3150" 
-rows [1278]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "3700" 
-rows [1279]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "1700" 
-rows [1280]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "64" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "1620" 
-        cells [9]:
-            string = "1790" 
-rows [1281]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "291" 
-        cells [7]:
-            string = "410" 
-        cells [8]:
-            string = "3200" 
-        cells [9]:
-            string = "3800" 
-rows [1282]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "264" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "3400" 
-        cells [9]:
-            string = "3900" 
-rows [1283]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "291" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3820" 
-rows [1284]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "2840" 
-        cells [9]:
-            string = "3900" 
-rows [1285]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "292" 
-        cells [7]:
-            string = "810" 
-        cells [8]:
-            string = "2640" 
-        cells [9]:
-            string = "4200" 
-rows [1286]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "2720" 
-        cells [9]:
-            string = "4100" 
-rows [1287]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "1080" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3950" 
-rows [1288]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "1050" 
-        cells [8]:
-            string = "2420" 
-        cells [9]:
-            string = "4000" 
-rows [1289]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "3950" 
-rows [1290]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1680" 
-        cells [9]:
-            string = "3800" 
-rows [1291]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "1040" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "3850" 
-rows [1292]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "1100" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "4250" 
-rows [1293]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1150" 
-        cells [9]:
-            string = "3950" 
-rows [1294]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "273" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "3900" 
-rows [1295]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "3800" 
-rows [1296]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "3950" 
-rows [1297]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "3640" 
-rows [1298]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "505" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "3400" 
-rows [1299]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "320" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1940" 
-        cells [9]:
-            string = "2820" 
-rows [1300]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "65" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "265" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "2100" 
-        cells [9]:
-            string = "2600" 
-rows [1301]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "330" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2800" 
-        cells [9]:
-            string = "3550" 
-rows [1302]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "333" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "2730" 
-        cells [9]:
-            string = "3550" 
-rows [1303]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "560" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3450" 
-rows [1304]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3450" 
-rows [1305]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3750" 
-rows [1306]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "835" 
-        cells [8]:
-            string = "2420" 
-        cells [9]:
-            string = "3740" 
-rows [1307]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "282" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "2150" 
-        cells [9]:
-            string = "3650" 
-rows [1308]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "2150" 
-        cells [9]:
-            string = "3700" 
-rows [1309]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "293" 
-        cells [7]:
-            string = "880" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "3750" 
-rows [1310]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "340" 
-        cells [7]:
-            string = "900" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "3650" 
-rows [1311]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "299" 
-        cells [7]:
-            string = "990" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "3750" 
-rows [1312]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "1050" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "3730" 
-rows [1313]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "940" 
-        cells [9]:
-            string = "3750" 
-rows [1314]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "333" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "1020" 
-        cells [9]:
-            string = "3700" 
-rows [1315]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "322" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1195" 
-        cells [9]:
-            string = "3750" 
-rows [1316]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "350" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "3500" 
-rows [1317]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "316" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "3600" 
-rows [1318]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "345" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "3470" 
-rows [1319]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "805" 
-        cells [8]:
-            string = "1705" 
-        cells [9]:
-            string = "2420" 
-rows [1320]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "66" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "2400" 
-rows [1321]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "210" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "3400" 
-        cells [9]:
-            string = "4320" 
-rows [1322]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "227" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "3610" 
-        cells [9]:
-            string = "4220" 
-rows [1323]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "680" 
-        cells [8]:
-            string = "3250" 
-        cells [9]:
-            string = "4380" 
-rows [1324]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "440" 
-        cells [8]:
-            string = "3000" 
-        cells [9]:
-            string = "3790" 
-rows [1325]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3610" 
-rows [1326]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3650" 
-rows [1327]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "1240" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3640" 
-rows [1328]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "215" 
-        cells [7]:
-            string = "1050" 
-        cells [8]:
-            string = "2550" 
-        cells [9]:
-            string = "3550" 
-rows [1329]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "820" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "3500" 
-rows [1330]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "3200" 
-rows [1331]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "218" 
-        cells [7]:
-            string = "1090" 
-        cells [8]:
-            string = "1380" 
-        cells [9]:
-            string = "3050" 
-rows [1332]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "2800" 
-rows [1333]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1220" 
-        cells [9]:
-            string = "3700" 
-rows [1334]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "640" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "3000" 
-rows [1335]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "219" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1360" 
-        cells [9]:
-            string = "3700" 
-rows [1336]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "214" 
-        cells [7]:
-            string = "730" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3600" 
-rows [1337]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "3250" 
-rows [1338]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1280" 
-        cells [9]:
-            string = "3650" 
-rows [1339]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "222" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "2130" 
-        cells [9]:
-            string = "2360" 
-rows [1340]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "67" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "205" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "2240" 
-        cells [9]:
-            string = "2460" 
-rows [1341]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "253" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "3250" 
-        cells [9]:
-            string = "3720" 
-rows [1342]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "3100" 
-        cells [9]:
-            string = "3400" 
-rows [1343]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3640" 
-rows [1344]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "2630" 
-        cells [9]:
-            string = "3640" 
-rows [1345]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "255" 
-        cells [7]:
-            string = "710" 
-        cells [8]:
-            string = "2550" 
-        cells [9]:
-            string = "3560" 
-rows [1346]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3470" 
-rows [1347]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "1140" 
-        cells [8]:
-            string = "2260" 
-        cells [9]:
-            string = "3640" 
-rows [1348]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "1110" 
-        cells [8]:
-            string = "2230" 
-        cells [9]:
-            string = "3380" 
-rows [1349]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "3500" 
-rows [1350]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "257" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "1490" 
-        cells [9]:
-            string = "3300" 
-rows [1351]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "940" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "3400" 
-rows [1352]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "930" 
-        cells [8]:
-            string = "1370" 
-        cells [9]:
-            string = "3120" 
-rows [1353]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "860" 
-        cells [9]:
-            string = "3400" 
-rows [1354]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "910" 
-        cells [9]:
-            string = "3420" 
-rows [1355]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "255" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3320" 
-rows [1356]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "3320" 
-rows [1357]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "274" 
-        cells [7]:
-            string = "360" 
-        cells [8]:
-            string = "660" 
-        cells [9]:
-            string = "3050" 
-rows [1358]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "310" 
-        cells [8]:
-            string = "730" 
-        cells [9]:
-            string = "3500" 
-rows [1359]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "1800" 
-rows [1360]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "68" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "239" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "1960" 
-rows [1361]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "2950" 
-        cells [9]:
-            string = "3600" 
-rows [1362]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "320" 
-        cells [8]:
-            string = "3210" 
-        cells [9]:
-            string = "3600" 
-rows [1363]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "2610" 
-        cells [9]:
-            string = "3560" 
-rows [1364]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "2570" 
-        cells [9]:
-            string = "3600" 
-rows [1365]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "2500" 
-        cells [9]:
-            string = "3580" 
-rows [1366]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2360" 
-        cells [9]:
-            string = "3400" 
-rows [1367]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "2400" 
-        cells [9]:
-            string = "3200" 
-rows [1368]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "2270" 
-        cells [9]:
-            string = "3200" 
-rows [1369]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "3350" 
-rows [1370]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3240" 
-rows [1371]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "2950" 
-rows [1372]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "920" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2770" 
-rows [1373]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "790" 
-        cells [8]:
-            string = "1050" 
-        cells [9]:
-            string = "2900" 
-rows [1374]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "750" 
-        cells [8]:
-            string = "1000" 
-        cells [9]:
-            string = "2500" 
-rows [1375]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1430" 
-        cells [9]:
-            string = "3320" 
-rows [1376]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "263" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "3200" 
-rows [1377]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "295" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3010" 
-rows [1378]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1330" 
-        cells [9]:
-            string = "2840" 
-rows [1379]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "272" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1880" 
-        cells [9]:
-            string = "2400" 
-rows [1380]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "69" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "255" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1610" 
-        cells [9]:
-            string = "1910" 
-rows [1381]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "2820" 
-        cells [9]:
-            string = "3400" 
-rows [1382]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "244" 
-        cells [7]:
-            string = "317" 
-        cells [8]:
-            string = "3125" 
-        cells [9]:
-            string = "3500" 
-rows [1383]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "2520" 
-        cells [9]:
-            string = "3300" 
-rows [1384]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "420" 
-        cells [8]:
-            string = "2480" 
-        cells [9]:
-            string = "3140" 
-rows [1385]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "657" 
-        cells [8]:
-            string = "2300" 
-        cells [9]:
-            string = "3300" 
-rows [1386]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "232" 
-        cells [7]:
-            string = "672" 
-        cells [8]:
-            string = "2275" 
-        cells [9]:
-            string = "3300" 
-rows [1387]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "231" 
-        cells [7]:
-            string = "808" 
-        cells [8]:
-            string = "1950" 
-        cells [9]:
-            string = "3300" 
-rows [1388]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "870" 
-        cells [8]:
-            string = "2000" 
-        cells [9]:
-            string = "3200" 
-rows [1389]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "706" 
-        cells [8]:
-            string = "1410" 
-        cells [9]:
-            string = "3200" 
-rows [1390]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "211" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1480" 
-        cells [9]:
-            string = "2880" 
-rows [1391]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "3100" 
-rows [1392]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "227" 
-        cells [7]:
-            string = "910" 
-        cells [8]:
-            string = "1360" 
-        cells [9]:
-            string = "2950" 
-rows [1393]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "203" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1120" 
-        cells [9]:
-            string = "3070" 
-rows [1394]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2760" 
-rows [1395]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "475" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3150" 
-rows [1396]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "212" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "2750" 
-rows [1397]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "244" 
-        cells [7]:
-            string = "403" 
-        cells [8]:
-            string = "1100" 
-        cells [9]:
-            string = "2950" 
-rows [1398]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "363" 
-        cells [8]:
-            string = "920" 
-        cells [9]:
-            string = "2900" 
-rows [1399]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "226" 
-        cells [7]:
-            string = "452" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "1810" 
-rows [1400]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "70" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "232" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1550" 
-        cells [9]:
-            string = "1740" 
-rows [1401]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "280" 
-        cells [8]:
-            string = "3140" 
-        cells [9]:
-            string = "3830" 
-rows [1402]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "3400" 
-        cells [9]:
-            string = "3950" 
-rows [1403]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "2700" 
-        cells [9]:
-            string = "3650" 
-rows [1404]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "2840" 
-        cells [9]:
-            string = "3700" 
-rows [1405]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "215" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "2650" 
-        cells [9]:
-            string = "3550" 
-rows [1406]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "220" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "2660" 
-        cells [9]:
-            string = "3770" 
-rows [1407]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "910" 
-        cells [8]:
-            string = "2370" 
-        cells [9]:
-            string = "3160" 
-rows [1408]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "930" 
-        cells [8]:
-            string = "2350" 
-        cells [9]:
-            string = "3450" 
-rows [1409]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "770" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "3420" 
-rows [1410]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "690" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "3350" 
-rows [1411]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "242" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "1450" 
-        cells [9]:
-            string = "3260" 
-rows [1412]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "1010" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "3150" 
-rows [1413]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "232" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "3550" 
-rows [1414]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "225" 
-        cells [7]:
-            string = "720" 
-        cells [8]:
-            string = "1260" 
-        cells [9]:
-            string = "3400" 
-rows [1415]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "216" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1640" 
-        cells [9]:
-            string = "3580" 
-rows [1416]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1440" 
-        cells [9]:
-            string = "3500" 
-rows [1417]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "3260" 
-rows [1418]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "273" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "1090" 
-        cells [9]:
-            string = "3350" 
-rows [1419]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "240" 
-        cells [7]:
-            string = "430" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2400" 
-rows [1420]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "71" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "233" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1840" 
-        cells [9]:
-            string = "2400" 
-rows [1421]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "330" 
-        cells [8]:
-            string = "3050" 
-        cells [9]:
-            string = "3800" 
-rows [1422]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "2860" 
-        cells [9]:
-            string = "3610" 
-rows [1423]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "2720" 
-        cells [9]:
-            string = "3360" 
-rows [1424]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "230" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3550" 
-rows [1425]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "735" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "3300" 
-rows [1426]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "2560" 
-        cells [9]:
-            string = "3300" 
-rows [1427]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "235" 
-        cells [7]:
-            string = "940" 
-        cells [8]:
-            string = "2020" 
-        cells [9]:
-            string = "2580" 
-rows [1428]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "232" 
-        cells [7]:
-            string = "1070" 
-        cells [8]:
-            string = "2320" 
-        cells [9]:
-            string = "2900" 
-rows [1429]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "268" 
-        cells [7]:
-            string = "860" 
-        cells [8]:
-            string = "1530" 
-        cells [9]:
-            string = "3100" 
-rows [1430]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "256" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3050" 
-rows [1431]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "245" 
-        cells [7]:
-            string = "780" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3180" 
-rows [1432]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "236" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "3120" 
-rows [1433]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "258" 
-        cells [7]:
-            string = "825" 
-        cells [8]:
-            string = "1210" 
-        cells [9]:
-            string = "3100" 
-rows [1434]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "930" 
-        cells [8]:
-            string = "930" 
-        cells [9]:
-            string = "2900" 
-rows [1435]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "490" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "2860" 
-rows [1436]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1320" 
-        cells [9]:
-            string = "2840" 
-rows [1437]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "470" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "2800" 
-rows [1438]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "1160" 
-        cells [9]:
-            string = "2800" 
-rows [1439]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "268" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1660" 
-        cells [9]:
-            string = "2100" 
-rows [1440]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "72" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "480" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "1830" 
-rows [1441]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "295" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "3200" 
-        cells [9]:
-            string = "4000" 
-rows [1442]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "3250" 
-        cells [9]:
-            string = "3700" 
-rows [1443]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "294" 
-        cells [7]:
-            string = "380" 
-        cells [8]:
-            string = "2960" 
-        cells [9]:
-            string = "3800" 
-rows [1444]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3600" 
-rows [1445]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "670" 
-        cells [8]:
-            string = "2790" 
-        cells [9]:
-            string = "3600" 
-rows [1446]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "620" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3500" 
-rows [1447]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "1070" 
-        cells [8]:
-            string = "2380" 
-        cells [9]:
-            string = "3100" 
-rows [1448]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "1130" 
-        cells [8]:
-            string = "2320" 
-        cells [9]:
-            string = "3110" 
-rows [1449]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "700" 
-        cells [8]:
-            string = "1730" 
-        cells [9]:
-            string = "2960" 
-rows [1450]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "725" 
-        cells [8]:
-            string = "1570" 
-        cells [9]:
-            string = "2900" 
-rows [1451]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "1110" 
-        cells [8]:
-            string = "1630" 
-        cells [9]:
-            string = "2780" 
-rows [1452]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "1130" 
-        cells [8]:
-            string = "1400" 
-        cells [9]:
-            string = "3000" 
-rows [1453]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "292" 
-        cells [7]:
-            string = "580" 
-        cells [8]:
-            string = "930" 
-        cells [9]:
-            string = "2950" 
-rows [1454]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1070" 
-        cells [9]:
-            string = "3000" 
-rows [1455]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "450" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "3000" 
-rows [1456]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "320" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "3150" 
-rows [1457]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "307" 
-        cells [7]:
-            string = "460" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "3070" 
-rows [1458]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "400" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "3000" 
-rows [1459]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1770" 
-        cells [9]:
-            string = "2040" 
-rows [1460]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "73" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "2050" 
-        cells [9]:
-            string = "2300" 
-rows [1461]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "300" 
-        cells [8]:
-            string = "3250" 
-        cells [9]:
-            string = "3850" 
-rows [1462]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "275" 
-        cells [8]:
-            string = "3280" 
-        cells [9]:
-            string = "3800" 
-rows [1463]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "2850" 
-        cells [9]:
-            string = "3400" 
-rows [1464]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "267" 
-        cells [7]:
-            string = "485" 
-        cells [8]:
-            string = "2630" 
-        cells [9]:
-            string = "3450" 
-rows [1465]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "264" 
-        cells [7]:
-            string = "650" 
-        cells [8]:
-            string = "2880" 
-        cells [9]:
-            string = "3500" 
-rows [1466]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "284" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3600" 
-rows [1467]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "1300" 
-        cells [8]:
-            string = "2280" 
-        cells [9]:
-            string = "3130" 
-rows [1468]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "260" 
-        cells [7]:
-            string = "1300" 
-        cells [8]:
-            string = "2160" 
-        cells [9]:
-            string = "3300" 
-rows [1469]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "3020" 
-rows [1470]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "840" 
-        cells [8]:
-            string = "1580" 
-        cells [9]:
-            string = "2880" 
-rows [1471]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "250" 
-        cells [7]:
-            string = "1230" 
-        cells [8]:
-            string = "1300" 
-        cells [9]:
-            string = "3200" 
-rows [1472]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "1090" 
-        cells [8]:
-            string = "1230" 
-        cells [9]:
-            string = "2980" 
-rows [1473]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "265" 
-        cells [7]:
-            string = "850" 
-        cells [8]:
-            string = "850" 
-        cells [9]:
-            string = "2920" 
-rows [1474]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "285" 
-        cells [7]:
-            string = "685" 
-        cells [8]:
-            string = "1030" 
-        cells [9]:
-            string = "2900" 
-rows [1475]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "283" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "3050" 
-rows [1476]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "600" 
-        cells [8]:
-            string = "1440" 
-        cells [9]:
-            string = "2900" 
-rows [1477]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "390" 
-        cells [8]:
-            string = "1340" 
-        cells [9]:
-            string = "2830" 
-rows [1478]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "284" 
-        cells [7]:
-            string = "340" 
-        cells [8]:
-            string = "1110" 
-        cells [9]:
-            string = "3080" 
-rows [1479]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1650" 
-        cells [9]:
-            string = "1740" 
-rows [1480]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "74" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "286" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1660" 
-        cells [9]:
-            string = "1770" 
-rows [1481]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "265" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "2950" 
-        cells [9]:
-            string = "3400" 
-rows [1482]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "370" 
-        cells [8]:
-            string = "2910" 
-        cells [9]:
-            string = "3480" 
-rows [1483]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "271" 
-        cells [7]:
-            string = "515" 
-        cells [8]:
-            string = "2740" 
-        cells [9]:
-            string = "3280" 
-rows [1484]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "290" 
-        cells [7]:
-            string = "485" 
-        cells [8]:
-            string = "2600" 
-        cells [9]:
-            string = "3200" 
-rows [1485]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "2520" 
-        cells [9]:
-            string = "3150" 
-rows [1486]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "272" 
-        cells [7]:
-            string = "565" 
-        cells [8]:
-            string = "2440" 
-        cells [9]:
-            string = "3120" 
-rows [1487]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "262" 
-        cells [7]:
-            string = "970" 
-        cells [8]:
-            string = "2030" 
-        cells [9]:
-            string = "2880" 
-rows [1488]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "915" 
-        cells [8]:
-            string = "2130" 
-        cells [9]:
-            string = "2900" 
-rows [1489]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "810" 
-        cells [8]:
-            string = "1600" 
-        cells [9]:
-            string = "3230" 
-rows [1490]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "280" 
-        cells [7]:
-            string = "760" 
-        cells [8]:
-            string = "1530" 
-        cells [9]:
-            string = "3180" 
-rows [1491]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "810" 
-        cells [8]:
-            string = "1350" 
-        cells [9]:
-            string = "2940" 
-rows [1492]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "1000" 
-        cells [8]:
-            string = "1360" 
-        cells [9]:
-            string = "3000" 
-rows [1493]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "270" 
-        cells [7]:
-            string = "535" 
-        cells [8]:
-            string = "970" 
-        cells [9]:
-            string = "2960" 
-rows [1494]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1080" 
-        cells [9]:
-            string = "2850" 
-rows [1495]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "275" 
-        cells [7]:
-            string = "550" 
-        cells [8]:
-            string = "1420" 
-        cells [9]:
-            string = "3040" 
-rows [1496]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "295" 
-        cells [7]:
-            string = "570" 
-        cells [8]:
-            string = "1500" 
-        cells [9]:
-            string = "3000" 
-rows [1497]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "283" 
-        cells [7]:
-            string = "510" 
-        cells [8]:
-            string = "1700" 
-        cells [9]:
-            string = "3020" 
-rows [1498]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "278" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1640" 
-        cells [9]:
-            string = "3050" 
-rows [1499]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "261" 
-        cells [7]:
-            string = "522" 
-        cells [8]:
-            string = "1830" 
-        cells [9]:
-            string = "2350" 
-rows [1500]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "m" 
-        cells [3]:
-            string = "75" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "282" 
-        cells [7]:
-            string = "530" 
-        cells [8]:
-            string = "1800" 
-        cells [9]:
-            string = "2250" 
-rows [1501]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "320" 
-        cells [7]:
-            string = "350" 
-        cells [8]:
-            string = "3240" 
-        cells [9]:
-            string = "3760" 
-rows [1502]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "iy" 
-        cells [5]:
-            string = "i" 
-        cells [6]:
-            string = "344" 
-        cells [7]:
-            string = "344" 
-        cells [8]:
-            string = "3120" 
-        cells [9]:
-            string = "3640" 
-rows [1503]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "308" 
-        cells [7]:
-            string = "590" 
-        cells [8]:
-            string = "2760" 
-        cells [9]:
-            string = "3500" 
-rows [1504]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ih" 
-        cells [5]:
-            string = "\ic" 
-        cells [6]:
-            string = "320" 
-        cells [7]:
-            string = "540" 
-        cells [8]:
-            string = "2900" 
-        cells [9]:
-            string = "3500" 
-rows [1505]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "307" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "2750" 
-        cells [9]:
-            string = "3650" 
-rows [1506]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "eh" 
-        cells [5]:
-            string = "\ef" 
-        cells [6]:
-            string = "308" 
-        cells [7]:
-            string = "800" 
-        cells [8]:
-            string = "2640" 
-        cells [9]:
-            string = "3540" 
-rows [1507]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "294" 
-        cells [7]:
-            string = "1140" 
-        cells [8]:
-            string = "2450" 
-        cells [9]:
-            string = "3230" 
-rows [1508]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ae" 
-        cells [5]:
-            string = "\ae" 
-        cells [6]:
-            string = "239" 
-        cells [7]:
-            string = "1130" 
-        cells [8]:
-            string = "2550" 
-        cells [9]:
-            string = "3150" 
-rows [1509]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "310" 
-        cells [7]:
-            string = "930" 
-        cells [8]:
-            string = "1540" 
-        cells [9]:
-            string = "3120" 
-rows [1510]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ah" 
-        cells [5]:
-            string = "\vt" 
-        cells [6]:
-            string = "315" 
-        cells [7]:
-            string = "950" 
-        cells [8]:
-            string = "1670" 
-        cells [9]:
-            string = "3150" 
-rows [1511]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "350" 
-        cells [7]:
-            string = "1190" 
-        cells [8]:
-            string = "1470" 
-        cells [9]:
-            string = "3150" 
-rows [1512]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "aa" 
-        cells [5]:
-            string = "\as" 
-        cells [6]:
-            string = "314" 
-        cells [7]:
-            string = "1070" 
-        cells [8]:
-            string = "1460" 
-        cells [9]:
-            string = "2950" 
-rows [1513]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "300" 
-        cells [7]:
-            string = "910" 
-        cells [8]:
-            string = "1200" 
-        cells [9]:
-            string = "3180" 
-rows [1514]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "ao" 
-        cells [5]:
-            string = "\ct" 
-        cells [6]:
-            string = "330" 
-        cells [7]:
-            string = "830" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3250" 
-rows [1515]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "327" 
-        cells [7]:
-            string = "630" 
-        cells [8]:
-            string = "1310" 
-        cells [9]:
-            string = "3270" 
-rows [1516]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "uh" 
-        cells [5]:
-            string = "\hs" 
-        cells [6]:
-            string = "322" 
-        cells [7]:
-            string = "610" 
-        cells [8]:
-            string = "1550" 
-        cells [9]:
-            string = "3400" 
-rows [1517]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "345" 
-        cells [7]:
-            string = "520" 
-        cells [8]:
-            string = "1250" 
-        cells [9]:
-            string = "3460" 
-rows [1518]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "uw" 
-        cells [5]:
-            string = "u" 
-        cells [6]:
-            string = "334" 
-        cells [7]:
-            string = "500" 
-        cells [8]:
-            string = "1140" 
-        cells [9]:
-            string = "3380" 
-rows [1519]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "308" 
-        cells [7]:
-            string = "740" 
-        cells [8]:
-            string = "1850" 
-        cells [9]:
-            string = "2160" 
-rows [1520]:
-    numberOfColumns = 9 
-    cells []: 
-        cells [1]:
-            string = "c" 
-        cells [2]:
-            string = "f" 
-        cells [3]:
-            string = "76" 
-        cells [4]:
-            string = "er" 
-        cells [5]:
-            string = "\er\hr" 
-        cells [6]:
-            string = "328" 
-        cells [7]:
-            string = "660" 
-        cells [8]:
-            string = "1830" 
-        cells [9]:
-            string = "2200" 
diff --git a/test/sys/graphics.praat b/test/sys/graphics.praat
index 430e45c..85d26a6 100644
Binary files a/test/sys/graphics.praat and b/test/sys/graphics.praat differ
diff --git a/test/sys/progress.praat b/test/sys/progress.praat
index 175cd9f..0c20998 100644
Binary files a/test/sys/progress.praat and b/test/sys/progress.praat differ
diff --git a/test/sys/script2.praat b/test/sys/script2.praat
index 1033bc9..e468d1e 100644
Binary files a/test/sys/script2.praat and b/test/sys/script2.praat differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/praat.git



More information about the debian-med-commit mailing list